#!/usr/bin/env php 
<?php

$web = 'exakat';

if (in_array('phar', stream_get_wrappers()) && class_exists('Phar', 0)) {
Phar::interceptFileFuncs();
set_include_path('phar://' . __FILE__ . PATH_SEPARATOR . get_include_path());
Phar::webPhar(null, $web);
include 'phar://' . __FILE__ . '/' . Extract_Phar::START;
return;
}

if (@(isset($_SERVER['REQUEST_URI']) && isset($_SERVER['REQUEST_METHOD']) && ($_SERVER['REQUEST_METHOD'] == 'GET' || $_SERVER['REQUEST_METHOD'] == 'POST'))) {
Extract_Phar::go(true);
$mimes = array(
'phps' => 2,
'c' => 'text/plain',
'cc' => 'text/plain',
'cpp' => 'text/plain',
'c++' => 'text/plain',
'dtd' => 'text/plain',
'h' => 'text/plain',
'log' => 'text/plain',
'rng' => 'text/plain',
'txt' => 'text/plain',
'xsd' => 'text/plain',
'php' => 1,
'inc' => 1,
'avi' => 'video/avi',
'bmp' => 'image/bmp',
'css' => 'text/css',
'gif' => 'image/gif',
'htm' => 'text/html',
'html' => 'text/html',
'htmls' => 'text/html',
'ico' => 'image/x-ico',
'jpe' => 'image/jpeg',
'jpg' => 'image/jpeg',
'jpeg' => 'image/jpeg',
'js' => 'application/x-javascript',
'midi' => 'audio/midi',
'mid' => 'audio/midi',
'mod' => 'audio/mod',
'mov' => 'movie/quicktime',
'mp3' => 'audio/mp3',
'mpg' => 'video/mpeg',
'mpeg' => 'video/mpeg',
'pdf' => 'application/pdf',
'png' => 'image/png',
'swf' => 'application/shockwave-flash',
'tif' => 'image/tiff',
'tiff' => 'image/tiff',
'wav' => 'audio/wav',
'xbm' => 'image/xbm',
'xml' => 'text/xml',
);

header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");

$basename = basename(__FILE__);
if (!strpos($_SERVER['REQUEST_URI'], $basename)) {
chdir(Extract_Phar::$temp);
include $web;
return;
}
$pt = substr($_SERVER['REQUEST_URI'], strpos($_SERVER['REQUEST_URI'], $basename) + strlen($basename));
if (!$pt || $pt == '/') {
$pt = $web;
header('HTTP/1.1 301 Moved Permanently');
header('Location: ' . $_SERVER['REQUEST_URI'] . '/' . $pt);
exit;
}
$a = realpath(Extract_Phar::$temp . DIRECTORY_SEPARATOR . $pt);
if (!$a || strlen(dirname($a)) < strlen(Extract_Phar::$temp)) {
header('HTTP/1.0 404 Not Found');
echo "<html>\n <head>\n  <title>File Not Found<title>\n </head>\n <body>\n  <h1>404 - File Not Found</h1>\n </body>\n</html>";
exit;
}
$b = pathinfo($a);
if (!isset($b['extension'])) {
header('Content-Type: text/plain');
header('Content-Length: ' . filesize($a));
readfile($a);
exit;
}
if (isset($mimes[$b['extension']])) {
if ($mimes[$b['extension']] === 1) {
include $a;
exit;
}
if ($mimes[$b['extension']] === 2) {
highlight_file($a);
exit;
}
header('Content-Type: ' .$mimes[$b['extension']]);
header('Content-Length: ' . filesize($a));
readfile($a);
exit;
}
}

class Extract_Phar
{
static $temp;
static $origdir;
const GZ = 0x1000;
const BZ2 = 0x2000;
const MASK = 0x3000;
const START = 'exakat';
const LEN = 6637;

static function go($return = false)
{
$fp = fopen(__FILE__, 'rb');
fseek($fp, self::LEN);
$L = unpack('V', $a = fread($fp, 4));
$m = '';

do {
$read = 8192;
if ($L[1] - strlen($m) < 8192) {
$read = $L[1] - strlen($m);
}
$last = fread($fp, $read);
$m .= $last;
} while (strlen($last) && strlen($m) < $L[1]);

if (strlen($m) < $L[1]) {
die('ERROR: manifest length read was "' .
strlen($m) .'" should be "' .
$L[1] . '"');
}

$info = self::_unpack($m);
$f = $info['c'];

if ($f & self::GZ) {
if (!function_exists('gzinflate')) {
die('Error: zlib extension is not enabled -' .
' gzinflate() function needed for zlib-compressed .phars');
}
}

if ($f & self::BZ2) {
if (!function_exists('bzdecompress')) {
die('Error: bzip2 extension is not enabled -' .
' bzdecompress() function needed for bz2-compressed .phars');
}
}

$temp = self::tmpdir();

if (!$temp || !is_writable($temp)) {
$sessionpath = session_save_path();
if (strpos ($sessionpath, ";") !== false)
$sessionpath = substr ($sessionpath, strpos ($sessionpath, ";")+1);
if (!file_exists($sessionpath) || !is_dir($sessionpath)) {
die('Could not locate temporary directory to extract phar');
}
$temp = $sessionpath;
}

$temp .= '/pharextract/'.basename(__FILE__, '.phar');
self::$temp = $temp;
self::$origdir = getcwd();
@mkdir($temp, 0777, true);
$temp = realpath($temp);

if (!file_exists($temp . DIRECTORY_SEPARATOR . md5_file(__FILE__))) {
self::_removeTmpFiles($temp, getcwd());
@mkdir($temp, 0777, true);
@file_put_contents($temp . '/' . md5_file(__FILE__), '');

foreach ($info['m'] as $path => $file) {
$a = !file_exists(dirname($temp . '/' . $path));
@mkdir(dirname($temp . '/' . $path), 0777, true);
clearstatcache();

if ($path[strlen($path) - 1] == '/') {
@mkdir($temp . '/' . $path, 0777);
} else {
file_put_contents($temp . '/' . $path, self::extractFile($path, $file, $fp));
@chmod($temp . '/' . $path, 0666);
}
}
}

chdir($temp);

if (!$return) {
include self::START;
}
}

static function tmpdir()
{
if (strpos(PHP_OS, 'WIN') !== false) {
if ($var = getenv('TMP') ? getenv('TMP') : getenv('TEMP')) {
return $var;
}
if (is_dir('/temp') || mkdir('/temp')) {
return realpath('/temp');
}
return false;
}
if ($var = getenv('TMPDIR')) {
return $var;
}
return realpath('/tmp');
}

static function _unpack($m)
{
$info = unpack('V', substr($m, 0, 4));
 $l = unpack('V', substr($m, 10, 4));
$m = substr($m, 14 + $l[1]);
$s = unpack('V', substr($m, 0, 4));
$o = 0;
$start = 4 + $s[1];
$ret['c'] = 0;

for ($i = 0; $i < $info[1]; $i++) {
 $len = unpack('V', substr($m, $start, 4));
$start += 4;
 $savepath = substr($m, $start, $len[1]);
$start += $len[1];
   $ret['m'][$savepath] = array_values(unpack('Va/Vb/Vc/Vd/Ve/Vf', substr($m, $start, 24)));
$ret['m'][$savepath][3] = sprintf('%u', $ret['m'][$savepath][3]
& 0xffffffff);
$ret['m'][$savepath][7] = $o;
$o += $ret['m'][$savepath][2];
$start += 24 + $ret['m'][$savepath][5];
$ret['c'] |= $ret['m'][$savepath][4] & self::MASK;
}
return $ret;
}

static function extractFile($path, $entry, $fp)
{
$data = '';
$c = $entry[2];

while ($c) {
if ($c < 8192) {
$data .= @fread($fp, $c);
$c = 0;
} else {
$c -= 8192;
$data .= @fread($fp, 8192);
}
}

if ($entry[4] & self::GZ) {
$data = gzinflate($data);
} elseif ($entry[4] & self::BZ2) {
$data = bzdecompress($data);
}

if (strlen($data) != $entry[0]) {
die("Invalid internal .phar file (size error " . strlen($data) . " != " .
$stat[7] . ")");
}

if ($entry[3] != sprintf("%u", crc32($data) & 0xffffffff)) {
die("Invalid internal .phar file (checksum error)");
}

return $data;
}

static function _removeTmpFiles($temp, $origdir)
{
chdir($temp);

foreach (glob('*') as $f) {
if (file_exists($f)) {
is_dir($f) ? @rmdir($f) : @unlink($f);
if (file_exists($f) && is_dir($f)) {
self::_removeTmpFiles($f, getcwd());
}
}
}

@rmdir($temp);
clearstatcache();
chdir($origdir);
}
}

Extract_Phar::go();
__HALT_COMPILER(); ?>
 d         exakat.phar       library/.DS_Store   E^   5         library/Exakat/Container.php  E^  ߐ         library/Exakat/Tasks/Update.phpf  E^f  !         library/Exakat/Tasks/Load.php E^ S3          library/Exakat/Tasks/Catalog.phpQ  E^Q  A         library/Exakat/Tasks/Server.phpc	  E^c	  Ϥ         library/Exakat/Tasks/.DS_Store(  E^(  +ʞ          library/Exakat/Tasks/Install.php]  E^]  z0Q         library/Exakat/Tasks/Diff.php'  E^'  Qo         library/Exakat/Tasks/Dump.php  E^  z}          library/Exakat/Tasks/Analyze.php*  E^*  ^d          library/Exakat/Tasks/Results.php!  E^!  <         library/Exakat/Tasks/Show.php  E^  'U      !   library/Exakat/Tasks/Baseline.phpL  E^L  ^K         library/Exakat/Tasks/Files.php-4  E^-4        "   library/Exakat/Tasks/Anonymize.php:  E^:  '혌         library/Exakat/Tasks/Export.php  E^  2         library/Exakat/Tasks/Doctor.phpA  E^A  Ͽ         library/Exakat/Tasks/Tasks.php  E^  /w      .   library/Exakat/Tasks/FindExternalLibraries.php%  E^%  n      $   library/Exakat/Tasks/Initproject.php#  E^#  @         library/Exakat/Tasks/Config.php~  E^~  o8         library/Exakat/Tasks/Queue.php!  E^!  \)R          library/Exakat/Tasks/Upgrade.php  E^            library/Exakat/Tasks/Project.phpF  E^F  c1ݤ         library/Exakat/Tasks/Test.phpR  E^R  c"<         library/Exakat/Tasks/Help.phpR  E^R  Z         library/Exakat/Tasks/Status.php  E^  Lhɤ         library/Exakat/Tasks/Clean.php  E^  z      "   library/Exakat/Tasks/EmptyTask.php  E^  <}w%         library/Exakat/Tasks/Fetch.php  E^  H         library/Exakat/Tasks/Proxy.phpd  E^d  }:         library/Exakat/Tasks/Remove.php  E^        !   library/Exakat/Tasks/Jobqueue.php$  E^$  *         library/Exakat/Tasks/Api.php	  E^	  .l      "   library/Exakat/Tasks/Extension.php  E^  E醤      1   library/Exakat/Tasks/LoadFinal/IsInIgnoredDir.php
  E^
  >ݤ      (   library/Exakat/Tasks/LoadFinal/.DS_Store  E^  j m      9   library/Exakat/Tasks/LoadFinal/SpotPHPNativeConstants.php  E^  w	      9   library/Exakat/Tasks/LoadFinal/FixFullnspathConstants.php  E^  _򍫤      3   library/Exakat/Tasks/LoadFinal/FinishIsModified.phpX  E^X  Oʜ      9   library/Exakat/Tasks/LoadFinal/SpotPHPNativeFunctions.php-  E^-  Hʤ      ?   library/Exakat/Tasks/LoadFinal/SpotExtensionNativeFunctions.php  E^  *:      ,   library/Exakat/Tasks/LoadFinal/LoadFinal.php3  E^3  ٤      .   library/Exakat/Tasks/Helpers/BaselineStash.php  E^  A      )   library/Exakat/Tasks/Helpers/Constant.php  E^  CФ      *   library/Exakat/Tasks/Helpers/AtomGroup.php  E^  z
u;      +   library/Exakat/Tasks/Helpers/IsModified.php  E^         (   library/Exakat/Tasks/Helpers/Nullval.phpI  E^I        %   library/Exakat/Tasks/Helpers/Lock.php*  E^*  w=y7      &   library/Exakat/Tasks/Helpers/Php72.php  E^  v      &   library/Exakat/Tasks/Helpers/Php73.php  E^  %_      &   library/Exakat/Tasks/Helpers/Php71.php  E^  ^      '   library/Exakat/Tasks/Helpers/Plugin.php  E^  ˹      0   library/Exakat/Tasks/Helpers/NestedCollector.php  E^  <r      &   library/Exakat/Tasks/Helpers/Php70.php  E^        &   library/Exakat/Tasks/Helpers/Php74.php  E^  BФ      &   library/Exakat/Tasks/Helpers/Calls.php  E^        &   library/Exakat/Tasks/Helpers/Php53.php  E^  ^.M      +   library/Exakat/Tasks/Helpers/Precedence.php\  E^\  LE`      (   library/Exakat/Tasks/Helpers/Context.phpX	  E^X	  Ѥ      %   library/Exakat/Tasks/Helpers/Atom.php}%  E^}%  |o      )   library/Exakat/Tasks/Helpers/Property.php@  E^@        &   library/Exakat/Tasks/Helpers/Php55.php"  E^"  [      &   library/Exakat/Tasks/Helpers/Php54.php  E^  /I      '   library/Exakat/Tasks/Helpers/Strval.phpz*  E^z*  S      &   library/Exakat/Tasks/Helpers/Php56.php  E^  O.      '   library/Exakat/Tasks/Helpers/Intval.php6#  E^6#  ]wX      &   library/Exakat/Tasks/Helpers/Php80.php  E^  縓K      '   library/Exakat/Tasks/Helpers/IsRead.php.  E^.  f2      (   library/Exakat/Tasks/Helpers/Boolval.phpa%  E^a%  zv      $   library/Exakat/Tasks/Helpers/Php.php
  E^
  bT      -   library/Exakat/Tasks/Helpers/ReportConfig.php  E^  .      ,   library/Exakat/Tasks/Helpers/Fullnspaths.php  E^  x      *   library/Exakat/Tasks/Helpers/Sequences.php  E^  ^Ho         library/Exakat/Tasks/Report.php  E^  p:ؤ         library/Exakat/Tasks/Stat.phpj	  E^j	  ۤ          library/Exakat/Tasks/CleanDb.php  E^  0WbҤ         library/Exakat/Dump/Dump1.phpn  E^n  g]@Τ         library/Exakat/Dump/Dump2.phpq  E^q  rkl         library/Exakat/Dump/Dump.php  E^  |         library/Exakat/.DS_StoreH  E^H  X          library/Exakat/GraphElements.php_  E^_  Qt         library/Exakat/Datastore.php=  E^=  ac      $   library/Exakat/Graph/Tinkergraph.php<(  E^<(  =U{R         library/Exakat/Graph/.DS_Store  E^  !U      #   library/Exakat/Graph/Janusgraph.php[   E^[         "   library/Exakat/Graph/NoGremlin.php  E^        "   library/Exakat/Graph/GSNeo4jV3.php%  E^%  ̤         library/Exakat/Graph/Graph.phpP
  E^P
            library/Exakat/Graph/GSNeo4j.phpP*  E^P*        &   library/Exakat/Graph/TinkergraphV3.php*%  E^*%  ڗJ      *   library/Exakat/Graph/Helpers/Websocket.phpB  E^B        -   library/Exakat/Graph/Helpers/GraphResults.php  E^  &ܤ      +   library/Exakat/Graph/Helpers/GraphsonV3.phpD  E^D  I>      !   library/Exakat/Graph/Orientdb.php-&  E^-&  g-̤      -   library/Exakat/Configsource/DefaultConfig.php"  E^"  t      /   library/Exakat/Configsource/DatastoreConfig.php  E^  6<ؤ      +   library/Exakat/Configsource/CommandLine.php8  E^8  B'      +   library/Exakat/Configsource/EmptyConfig.php  E^  `YŤ      3   library/Exakat/Configsource/DotExakatYamlConfig.php.  E^.        ,   library/Exakat/Configsource/RemoteConfig.php~  E^~  <{      -   library/Exakat/Configsource/RulesetConfig.php  E^  a      &   library/Exakat/Configsource/Config.php  E^  Ur      -   library/Exakat/Configsource/ProjectConfig.php5  E^5  SHf      ,   library/Exakat/Configsource/ExakatConfig.php"  E^"        /   library/Exakat/Configsource/DotExakatConfig.php  E^  6;ڴ      )   library/Exakat/Configsource/EnvConfig.phpE  E^E  f         library/Exakat/Remote.php{  E^{  ._      1   library/Exakat/Exceptions/NoStructureForTable.php;  E^;  rT      5   library/Exakat/Exceptions/AnotherProcessIsRunning.php  E^  L}      $   library/Exakat/Exceptions/NoDump.php  E^        *   library/Exakat/Exceptions/NoSuchLoader.php  E^  SD      )   library/Exakat/Exceptions/NoPhpBinary.php?  E^?  Jq      .   library/Exakat/Exceptions/ProjectNotInited.php  E^  )s      (   library/Exakat/Exceptions/NoSuchFile.phpf  E^f  `      *   library/Exakat/Exceptions/DSLException.php  E^  -􆼤      +   library/Exakat/Exceptions/ProjectNeeded.phpc  E^c  A      -   library/Exakat/Exceptions/ProjectTooLarge.php  E^   5D      0   library/Exakat/Exceptions/InvalidProjectName.phpd  E^d  s      7   library/Exakat/Exceptions/WrongNumberOfColsForAHash.phpp  E^p  dO      0   library/Exakat/Exceptions/NoRecognizedTokens.php  E^  L      (   library/Exakat/Exceptions/UnknownDsl.php  E^  ?Ƥ      '   library/Exakat/Exceptions/NoSuchDir.phpa  E^a  "A      +   library/Exakat/Exceptions/NoSuchProject.phpd  E^d  >      .   library/Exakat/Exceptions/InvalidPHPBinary.php  E^  k      0   library/Exakat/Exceptions/NeedsAnalyzerThema.phpO  E^O  IsCĤ      '   library/Exakat/Exceptions/NoDumpYet.php  E^  ~B      ,   library/Exakat/Exceptions/InaptPHPBinary.phpv  E^v  ŀރ      .   library/Exakat/Exceptions/GremlinException.phpw  E^w  b      ,   library/Exakat/Exceptions/QueryException.phpd  E^d  "      '   library/Exakat/Exceptions/LoadError.phpX  E^X  Fe      /   library/Exakat/Exceptions/NotProjectInGraph.php  E^  |      (   library/Exakat/Exceptions/MustBeADir.phpv  E^v  WB.      -   library/Exakat/Exceptions/HelperException.php  E^  0פ      3   library/Exakat/Exceptions/UnknownGremlinVersion.phpC  E^C  RbO      0   library/Exakat/Exceptions/WrongParameterType.phpm  E^m  Y      -   library/Exakat/Exceptions/NoFileToProcess.php  E^  I5      +   library/Exakat/Exceptions/NoSuchRuleset.php  E^   7      )   library/Exakat/Exceptions/UnknownCase.phpK  E^K  Ճ      -   library/Exakat/Exceptions/NoCodeInProject.phpc  E^c  U*      &   library/Exakat/Exceptions/VcsError.phpc  E^c  83      )   library/Exakat/Exceptions/MustBeAFile.phpr  E^r  I|      ,   library/Exakat/Exceptions/NoSuchAnalyzer.php>  E^>  tY פ      *   library/Exakat/Exceptions/NoPrecedence.phpZ  E^Z  ֤      *   library/Exakat/Exceptions/NoSuchReport.php*  E^*  `
      )   library/Exakat/Exceptions/MissingFile.php  E^        ,   library/Exakat/Exceptions/MissingGremlin.php[  E^[  3      /   library/Exakat/Exceptions/NoJobqueueStarted.php[  E^[  FHɤ      *   library/Exakat/Exceptions/NoSuchFormat.php  E^  W#ͤ         library/Exakat/Config.phpS/  E^S/  Ɗ      '   library/Exakat/Extensions/Extension.php  E^  -YH         library/Exakat/Stats.phpo  E^o  HEФ         library/Exakat/Project.phpD  E^D            library/Exakat/Vcs/Mercurial.php  E^  f%         library/Exakat/Vcs/Bazaar.phpn  E^n  ؤ         library/Exakat/Vcs/Git.phpH!  E^H!  Ro         library/Exakat/Vcs/Svn.php  E^  h         library/Exakat/Vcs/Zip.php!	  E^!	  =%u         library/Exakat/Vcs/SevenZ.php	  E^	           library/Exakat/Vcs/Rar.php	  E^	  n         library/Exakat/Vcs/Symlink.phpM  E^M  q         library/Exakat/Vcs/Cvs.php$  E^$           library/Exakat/Vcs/Tarbz.phpq  E^q  [
         library/Exakat/Vcs/Composer.phph  E^h  NJH         library/Exakat/Vcs/Vcs.php  E^  vBM*         library/Exakat/Vcs/None.php}  E^}  0(         library/Exakat/Vcs/Targz.php  E^  ]i         library/Exakat/Vcs/Copy.phpu  E^u  q-          library/Exakat/Loader/Loader.php  E^        #   library/Exakat/Loader/Collector.php  E^  39      '   library/Exakat/Loader/SplitGraphson.php:  E^:           library/Exakat/Loader/None.php  E^  o         library/Exakat/Log.php	  E^	  vr      $   library/Exakat/Autoload/Autoload.phpz  E^z  
D]      '   library/Exakat/Autoload/AutoloadDev.php3  E^3  A}cФ      '   library/Exakat/Autoload/AutoloadExt.php  E^  J      &   library/Exakat/Autoload/Autoloader.php  E^  @%         library/Exakat/Exakat.php"  E^"  Bhy         library/Exakat/Query/.DS_Store   E^   J      !   library/Exakat/Query/QueryDoc.php2  E^2  ¤         library/Exakat/Query/Query.phpf#  E^f#  lͤ      (   library/Exakat/Query/DSL/IsLowercase.php  E^  8\>      ,   library/Exakat/Query/DSL/GoToInstruction.php{  E^{  g      ,   library/Exakat/Query/DSL/IsNotEmptyArray.php  E^  %,      +   library/Exakat/Query/DSL/AtomFunctionIs.phpm  E^m         (   library/Exakat/Query/DSL/FollowParAs.php	  E^	  R      0   library/Exakat/Query/DSL/GoToFirstExpression.php  E^  fR      +   library/Exakat/Query/DSL/CollectExtends.php  E^  e3&      ,   library/Exakat/Query/DSL/IsNotLocalClass.php  E^  C      +   library/Exakat/Query/DSL/SamePropertyAs.php>  E^>  L4$      .   library/Exakat/Query/DSL/AtomInsideNoBlock.php  E^  p_!      ,   library/Exakat/Query/DSL/FullnspathIsNot.phpQ  E^Q  W9fФ      #   library/Exakat/Query/DSL/HasOut.php  E^  㨤      1   library/Exakat/Query/DSL/ProcessDereferencing.phpC  E^C  h\      /   library/Exakat/Query/DSL/FullcodeVariableIs.php  E^  OA      &   library/Exakat/Query/DSL/IsLiteral.php  E^  wgˤ      %   library/Exakat/Query/DSL/GoToFile.php&  E^&  9S      '   library/Exakat/Query/DSL/HasNoTrait.php*  E^*  N+      #   library/Exakat/Query/DSL/Ignore.php  E^  ˩A       ,   library/Exakat/Query/DSL/NotImplementing.php-  E^-  9X      .   library/Exakat/Query/DSL/GoToAllImplements.php  E^  7L      4   library/Exakat/Query/DSL/HasNoFunctionDefinition.phpc  E^c  #      4   library/Exakat/Query/DSL/HasNoCountedInstruction.php  E^   wr      *   library/Exakat/Query/DSL/IsNotArgument.php  E^  ,ˤ      -   library/Exakat/Query/DSL/NoAnalyzerInside.php  E^  Jh      )   library/Exakat/Query/DSL/IsGlobalCode.php  E^  w¤      8   library/Exakat/Query/DSL/NoAtomWithoutPropertyInside.php  E^  "      '   library/Exakat/Query/DSL/IsLessHash.php  E^  UM      $   library/Exakat/Query/DSL/TokenIs.phph  E^h  0      "   library/Exakat/Query/DSL/.DS_Store  E^  j m      1   library/Exakat/Query/DSL/NoAtomPropertyInside.phpr  E^r  u4      +   library/Exakat/Query/DSL/IsNotEmptyBody.phpk  E^k  afo      2   library/Exakat/Query/DSL/NoInterfaceDefinition.php$  E^$  ہ      2   library/Exakat/Query/DSL/HasNoNamedInstruction.php  E^  eC      %   library/Exakat/Query/DSL/HasNoOut.php"  E^"  A!      +   library/Exakat/Query/DSL/SaveNullableAs.php   E^   8u      #   library/Exakat/Query/DSL/Values.phpY  E^Y  O8ڤ      1   library/Exakat/Query/DSL/IsNotPropertyDefined.php  E^  s}~Ҥ      -   library/Exakat/Query/DSL/HasChildWithRank.php  E^  WU      (   library/Exakat/Query/DSL/GoToExtends.php	  E^	  8ˤ      (   library/Exakat/Query/DSL/OutWithRank.php  E^  x      2   library/Exakat/Query/DSL/HasConstantDefinition.php  E^  g7D      +   library/Exakat/Query/DSL/HasNextSibling.phpu  E^u  kG^      0   library/Exakat/Query/DSL/CountArrayDimension.php  E^  |:      %   library/Exakat/Query/DSL/HasTrait.php%  E^%  RK      &   library/Exakat/Query/DSL/GoToClass.phpT  E^T   {      *   library/Exakat/Query/DSL/HasNoTryCatch.php+  E^+  y      "   library/Exakat/Query/DSL/HasNo.phpZ  E^Z  C{r      )   library/Exakat/Query/DSL/GoToFunction.php  E^  vOtU      ,   library/Exakat/Query/DSL/ClassDefinition.php  E^  XѤ          library/Exakat/Query/DSL/Has.php  E^  B      5   library/Exakat/Query/DSL/HasNoClassInterfaceTrait.php\  E^\  9      /   library/Exakat/Query/DSL/HasClassDefinition.php  E^  ͑      )   library/Exakat/Query/DSL/IsLocalClass.php  E^  36V      '   library/Exakat/Query/DSL/GoToParent.php  E^  9hד      !   library/Exakat/Query/DSL/InIs.php  E^  s      %   library/Exakat/Query/DSL/OutIsNot.php[  E^[  ^n      3   library/Exakat/Query/DSL/HasInterfaceDefinition.php  E^  &      /   library/Exakat/Query/DSL/GoToAllDefinitions.php^  E^^  XAs      #   library/Exakat/Query/DSL/IsUsed.php  E^  h|Mפ      '   library/Exakat/Query/DSL/HasNoUsage.phpk  E^k  a6      #   library/Exakat/Query/DSL/AtomIs.php  E^  Z]      2   library/Exakat/Query/DSL/HasFunctionDefinition.php:  E^:  ͻ      .   library/Exakat/Query/DSL/NotSameTypehintAs.php  E^  SK`      ,   library/Exakat/Query/DSL/GoToAllChildren.php.  E^.  C      *   library/Exakat/Query/DSL/IsNotNullable.php  E^  c      #   library/Exakat/Query/DSL/Unique.php  E^  pQE      -   library/Exakat/Query/DSL/PreviousSiblings.php  E^  ZIHi      .   library/Exakat/Query/DSL/HasPropertyInside.php  E^  #n      .   library/Exakat/Query/DSL/CollectImplements.phpQ  E^Q        -   library/Exakat/Query/DSL/CollectVariables.php  E^        '   library/Exakat/Query/DSL/GroupCount.php  E^        +   library/Exakat/Query/DSL/FunctionInside.phpZ  E^Z  v%      +   library/Exakat/Query/DSL/IsNotMixedcase.php}  E^}  kK 0      *   library/Exakat/Query/DSL/AnalyzerIsNot.php  E^  5      *   library/Exakat/Query/DSL/NoDelimiterIs.php  E^  q      (   library/Exakat/Query/DSL/FollowAlias.php  E^  M      "   library/Exakat/Query/DSL/HasIn.php  E^  42)      "   library/Exakat/Query/DSL/Dedup.php  E^  n<S      2   library/Exakat/Query/DSL/HasNoVariadicArgument.php)  E^)        &   library/Exakat/Query/DSL/HasNoLoop.phpS  E^S  ^D      -   library/Exakat/Query/DSL/GoToLiteralValue.php  E^  \      #   library/Exakat/Query/DSL/IsHash.php9  E^9  bG)      (   library/Exakat/Query/DSL/GroupFilter.php  E^        $   library/Exakat/Query/DSL/RegexIs.phpw  E^w  a      (   library/Exakat/Query/DSL/HasFunction.php`  E^`  $g      /   library/Exakat/Query/DSL/FunctionDefinition.php:  E^:  ;٤          library/Exakat/Query/DSL/Raw.php  E^  n*      )   library/Exakat/Query/DSL/FullnspathIs.php  E^  T      -   library/Exakat/Query/DSL/NoFullcodeInside.php  E^  K      0   library/Exakat/Query/DSL/HasNoClassInterface.phpY  E^Y        (   library/Exakat/Query/DSL/HasNoIfthen.php,  E^,  4      "   library/Exakat/Query/DSL/OutIs.php  E^  pMˬ      ,   library/Exakat/Query/DSL/PreviousSibling.phpk  E^k  Hء/      #   library/Exakat/Query/DSL/InIsIE.php  E^  k      ,   library/Exakat/Query/DSL/NoUseDefinition.php"  E^"  Lγ      +   library/Exakat/Query/DSL/FunctioncallIs.php  E^  ^-'      2   library/Exakat/Query/DSL/CodeIsPositiveInteger.php-  E^-  \~      0   library/Exakat/Query/DSL/HasVariadicArgument.php"  E^"  bˤ      &   library/Exakat/Query/DSL/HasParent.phpO  E^O  q^      $   library/Exakat/Query/DSL/HasLoop.phpX  E^X  /r      0   library/Exakat/Query/DSL/IsComplexExpression.php  E^  lP}M      *   library/Exakat/Query/DSL/PreviousCalls.php  E^  ,p          library/Exakat/Query/DSL/DSL.php7  E^7  Id      4   library/Exakat/Query/DSL/HasNoConstantDefinition.php  E^  L`      (   library/Exakat/Query/DSL/HasChildren.php1  E^1  .b      )   library/Exakat/Query/DSL/IsNotLiteral.php  E^  X:      -   library/Exakat/Query/DSL/HasNoInstruction.php  E^  i      -   library/Exakat/Query/DSL/FollowExpression.php  E^  a      .   library/Exakat/Query/DSL/IsPropertyDefined.phpn  E^n  Z      &   library/Exakat/Query/DSL/GoToArray.phpc  E^c  O1      +   library/Exakat/Query/DSL/HasNoInterface.php1  E^1  <      4   library/Exakat/Query/DSL/ProcessIndentingAverage.php
  E^
  !:O      /   library/Exakat/Query/DSL/HasTraitDefinition.php  E^  -m7      !   library/Exakat/Query/DSL/Trim.php  E^  "M      $   library/Exakat/Query/DSL/OutIsIE.php  E^  };      *   library/Exakat/Query/DSL/PropertyIsNot.php	  E^	        1   library/Exakat/Query/DSL/IsNotInheritedMethod.php  E^  -D!      )   library/Exakat/Query/DSL/NotExtending.php  E^  pB      %   library/Exakat/Query/DSL/AddEFrom.phpq  E^q  4r      &   library/Exakat/Query/DSL/SaveOutAs.php  E^  ]A      *   library/Exakat/Query/DSL/HasClassTrait.phpL  E^L  hФ      +   library/Exakat/Query/DSL/FullcodeLength.php  E^  ,"      &   library/Exakat/Query/DSL/IsVisible.php  E^  `      #   library/Exakat/Query/DSL/CodeIs.phpX	  E^X	  5      *   library/Exakat/Query/DSL/GoToInterface.php0  E^0  x^      +   library/Exakat/Query/DSL/IsNotUppercase.php  E^  .4      *   library/Exakat/Query/DSL/CollectTraits.php  E^  #A      +   library/Exakat/Query/DSL/HasInstruction.php  E^  8~      %   library/Exakat/Query/DSL/GoToLoop.phpQ  E^Q  >      *   library/Exakat/Query/DSL/GoToNamespace.phpF  E^F  _=Τ      (   library/Exakat/Query/DSL/ReturnCount.php  E^  J      %   library/Exakat/Query/DSL/Optional.phpl  E^l  0U      0   library/Exakat/Query/DSL/SamePropertyAsArray.php	  E^	        (   library/Exakat/Query/DSL/IsUppercase.php  E^  '}"      &   library/Exakat/Query/DSL/NextCalls.php  E^  t0ڤ      0   library/Exakat/Query/DSL/InterfaceDefinition.php  E^  L^      &   library/Exakat/Query/DSL/AtomIsNot.php  E^  %;f
      &   library/Exakat/Query/DSL/ToResults.php  E^  l      1   library/Exakat/Query/DSL/AtomInsideExpression.php  E^  <`X      #   library/Exakat/Query/DSL/IsMore.php  E^  8p      ,   library/Exakat/Query/DSL/HasNoComparison.php4  E^4  fؤ      '   library/Exakat/Query/DSL/FullcodeIs.php  E^        &   library/Exakat/Query/DSL/Extending.php  E^  *h      $   library/Exakat/Query/DSL/IsEqual.php  E^        .   library/Exakat/Query/DSL/FunctioncallIsNot.php  E^  +}[      +   library/Exakat/Query/DSL/FullcodeInside.php  E^  hP      '   library/Exakat/Query/DSL/AnalyzerIs.php  E^  `,      ,   library/Exakat/Query/DSL/HasNoDefinition.php  E^  CI      4   library/Exakat/Query/DSL/GoToClassInterfaceTrait.phpZ  E^Z  3Ϥ      .   library/Exakat/Query/DSL/NotSamePropertyAs.php
  E^
  `٤         library/Exakat/Query/DSL/Is.php
  E^
  P[Ĥ      (   library/Exakat/Query/DSL/HasTryCatch.php0  E^0  R      /   library/Exakat/Query/DSL/OutWithoutLastRank.phpW  E^W  `      *   library/Exakat/Query/DSL/ProcessLevels.php  E^  \      *   library/Exakat/Query/DSL/OtherSiblings.php  E^  V +      %   library/Exakat/Query/DSL/Property.php  E^  k      '   library/Exakat/Query/DSL/TokenIsNot.phpr  E^r  pn      '   library/Exakat/Query/DSL/IsArgument.php  E^  o      "   library/Exakat/Query/DSL/Count.php  E^        *   library/Exakat/Query/DSL/HasAtomInside.php=  E^=  zQ      3   library/Exakat/Query/DSL/IsNotExtendingComposer.phpC  E^C  z|      1   library/Exakat/Query/DSL/GoToAllParentsTraits.php  E^  W      (   library/Exakat/Query/DSL/NextSibling.php  E^  [      ,   library/Exakat/Query/DSL/IsMissingOrNull.php  E^  X5      2   library/Exakat/Query/DSL/AtomInsideNoAnonymous.php  E^  S),      /   library/Exakat/Query/DSL/GoToClassInterface.phpW  E^W  :      .   library/Exakat/Query/DSL/CheckTypeWithAtom.phpv  E^v  Tt      )   library/Exakat/Query/DSL/NoAtomInside.php  E^  "3      '   library/Exakat/Query/DSL/IsMoreHash.php  E^  g^      #   library/Exakat/Query/DSL/Filter.phpj  E^j  b@      *   library/Exakat/Query/DSL/GoToAllTraits.phpN  E^N  ՞ۤ      -   library/Exakat/Query/DSL/NoDelimiterIsNot.php  E^  bg      )   library/Exakat/Query/DSL/IsReassigned.php  E^  ˃      .   library/Exakat/Query/DSL/NoTraitDefinition.php  E^        +   library/Exakat/Query/DSL/GoToAllParents.php  E^  ?'      ,   library/Exakat/Query/DSL/GetStringLength.php  E^        (   library/Exakat/Query/DSL/GoToAllElse.php  E^        #   library/Exakat/Query/DSL/IsThis.php  E^  PԺ      )   library/Exakat/Query/DSL/GetNameInFNP.php  E^  y      $   library/Exakat/Query/DSL/Command.php
  E^
  	fH      -   library/Exakat/Query/DSL/NoFunctionInside.php"  E^"  'E      +   library/Exakat/Query/DSL/CollectMethods.php(  E^(  ۤ      "   library/Exakat/Query/DSL/IsNot.php
  E^
  3      (   library/Exakat/Query/DSL/GetVariable.php%  E^%        '   library/Exakat/Query/DSL/DSLFactory.phpj  E^j  "#*      ,   library/Exakat/Query/DSL/NoChildWithRank.phpH  E^H  h      )   library/Exakat/Query/DSL/Implementing.php#  E^#  a[      -   library/Exakat/Query/DSL/MakeVariableName.phpA  E^A  "      /   library/Exakat/Query/DSL/AtomInsideMoreThan.php  E^  &*Bh      &   library/Exakat/Query/DSL/GoToTrait.php'  E^'  i-:      +   library/Exakat/Query/DSL/GoToExpression.php  E^  /x٤      %   library/Exakat/Query/DSL/HasClass.php[  E^[  Ev      '   library/Exakat/Query/DSL/HasNoCatch.php*  E^*  f      '   library/Exakat/Query/DSL/AtomInside.phph  E^h  j'      $   library/Exakat/Query/DSL/HasNoIn.php   E^          -   library/Exakat/Query/DSL/SaveMethodNameAs.php^  E^^  Ӵl      .   library/Exakat/Query/DSL/HasClassInterface.phpT  E^T  Lۤ      #   library/Exakat/Query/DSL/Select.phpo  E^o  d      *   library/Exakat/Query/DSL/HasNoChildren.php  E^  N      )   library/Exakat/Query/DSL/InitVariable.php  E^  A	t      (   library/Exakat/Query/DSL/SetProperty.php  E^  OV      /   library/Exakat/Query/DSL/AtomInsideWithCall.php  E^  og      "   library/Exakat/Query/DSL/Range.php>  E^>  ̌8      )   library/Exakat/Query/DSL/NextSiblings.phpi  E^i  :h<      &   library/Exakat/Query/DSL/HasIfthen.php1  E^1  z      +   library/Exakat/Query/DSL/AnalyzerInside.php  E^  d      +   library/Exakat/Query/DSL/GoToClassTrait.php\  E^\  7R      -   library/Exakat/Query/DSL/CollectArguments.phpP  E^P  Q{캤      /   library/Exakat/Query/DSL/VariableIsAssigned.php  E^  K?      1   library/Exakat/Query/DSL/IsReferencedArgument.php  E^  5R      (   library/Exakat/Query/DSL/HasNoParent.phpN  E^N  }h      3   library/Exakat/Query/DSL/AnalyzerInsideMoreThan.php  E^  5dˤ          library/Exakat/Query/DSL/_As.php`  E^`  p      +   library/Exakat/Query/DSL/SameTypehintAs.php  E^  Nܝ      -   library/Exakat/Query/DSL/HasNoNextSibling.php~  E^~  0g"      '   library/Exakat/Query/DSL/PropertyIs.php  E^  3x       3   library/Exakat/Query/DSL/AtomInsideNoDefinition.phpY  E^Y  #           library/Exakat/Query/DSL/Not.php
  E^
  с      $   library/Exakat/Query/DSL/NoQuery.php  E^  ۶\      #   library/Exakat/Query/DSL/AddETo.phpm  E^m  $mV      '   library/Exakat/Query/DSL/HasNoClass.phpU  E^U        .   library/Exakat/Query/DSL/CollectContainers.php  E^  _l      *   library/Exakat/Query/DSL/FullcodeIsNot.php  E^  #Ȥ      &   library/Exakat/Query/DSL/StopQuery.php  E^  c      +   library/Exakat/Query/DSL/SavePropertyAs.php	  E^	  `Ƥ      &   library/Exakat/Query/DSL/CodeIsNot.php	  E^	  |A      !   library/Exakat/Query/DSL/Back.php  E^  #      (   library/Exakat/Query/DSL/FollowCalls.php  E^  >\      $   library/Exakat/Query/DSL/CountBy.php,  E^,  ㆤ      -   library/Exakat/Query/DSL/GoToCurrentScope.phpL  E^L        )   library/Exakat/Query/DSL/NoCodeInside.php  E^  ]      ,   library/Exakat/Query/DSL/HasNoClassTrait.phpj  E^j  :      '   library/Exakat/Query/DSL/RegexIsNot.php  E^  BI      )   library/Exakat/Query/DSL/HasInterface.php7  E^7  ;      '   library/Exakat/Query/DSL/IsNullable.php  E^        (   library/Exakat/Query/DSL/FollowValue.php  E^  Bn
      .   library/Exakat/Query/DSL/NoClassDefinition.php  E^  v      +   library/Exakat/Query/DSL/IsNotLowercase.php  E^  N      #   library/Exakat/Query/DSL/IsLess.php  E^  iG      &   library/Exakat/Query/DSL/IsNotHash.php  E^  C+      )   library/Exakat/Query/DSL/IsNotIgnored.php  E^    ΰ      $   library/Exakat/Query/DSL/InIsNot.php  E^  Ĭ2      9   library/Exakat/Query/DSL/NoAnalyzerInsideWithProperty.php  E^  8T      +   library/Exakat/Query/DSL/GoToImplements.php  E^        *   library/Exakat/Query/DSL/HasNoFunction.phpZ  E^Z  5         library/Exakat/Data/CakePHP.php`  E^`  pa      "   library/Exakat/Data/Dictionary.php  E^  +      !   library/Exakat/Data/Collector.php  E^  U5         library/Exakat/Data/ZendF.php  E^  X         library/Exakat/Data/ZendF3.php  E^  d
v          library/Exakat/Data/Composer.phpj  E^j  i         library/Exakat/Data/ZendF2.php  E^  ᱤ         library/Exakat/Data/Data.php  E^  2q9         library/Exakat/Data/Methods.php"  E^"  #f         library/Exakat/Data/Slim.php  E^  GAI         library/Exakat/Helpers/Path.php  E^  v.W      3   library/Exakat/Analyzer/Performances/Autoappend.php  E^  .b      7   library/Exakat/Analyzer/Performances/AvoidArrayPush.phpF  E^F  }      4   library/Exakat/Analyzer/Performances/MakeOneCall.php4  E^4  84Dv      7   library/Exakat/Analyzer/Performances/NoConcatInLoop.php  E^  h@`      :   library/Exakat/Analyzer/Performances/ArrayMergeInLoops.php	  E^	  [0E      7   library/Exakat/Analyzer/Performances/MbStringInLoop.php  E^  6p      6   library/Exakat/Analyzer/Performances/StrposTooMuch.php  E^  sȤ      8   library/Exakat/Analyzer/Performances/IssetWholeArray.phpM  E^M        <   library/Exakat/Analyzer/Performances/Php74ArrayKeyExists.php  E^        /   library/Exakat/Analyzer/Performances/NoGlob.php  E^  WtI      9   library/Exakat/Analyzer/Performances/RegexOnCollector.php  E^  ;      9   library/Exakat/Analyzer/Performances/LogicalToInArray.php  E^  %g      6   library/Exakat/Analyzer/Performances/RegexOnArrays.php  E^        >   library/Exakat/Analyzer/Performances/ArrayKeyExistsSpeedup.php  E^  Ya      5   library/Exakat/Analyzer/Performances/NotCountNull.php  E^  }sT      6   library/Exakat/Analyzer/Performances/SlowFunctions.php  E^  /}      9   library/Exakat/Analyzer/Performances/PrePostIncrement.php  E^   Ȥ      <   library/Exakat/Analyzer/Performances/PHP7EncapsedStrings.php@  E^@  T      3   library/Exakat/Analyzer/Performances/CsvInLoops.php  E^  JN      :   library/Exakat/Analyzer/Performances/FetchOneRowFormat.php  E^  Yd      1   library/Exakat/Analyzer/Performances/DoInBase.php  E^  $⯤      8   library/Exakat/Analyzer/Performances/DoubleArrayFlip.php  E^  1      A   library/Exakat/Analyzer/Performances/CacheVariableOutsideLoop.phpP	  E^P	  *d      1   library/Exakat/Analyzer/Performances/JoinFile.php6  E^6  }+      4   library/Exakat/Analyzer/Performances/UseBlindVar.php  E^  hF      8   library/Exakat/Analyzer/Performances/timeVsstrtotime.php  E^  18      4   library/Exakat/Analyzer/Performances/SubstrFirst.php
  E^
  i      9   library/Exakat/Analyzer/Performances/MemoizeMagicCall.php  E^  |      5   library/Exakat/Analyzer/Performances/SimpleSwitch.php  E^  L~TҤ      6   library/Exakat/Analyzer/Performances/UseArraySlice.phpr  E^r  >      +   library/Exakat/Analyzer/Vendors/Symfony.php$  E^$  C0~      &   library/Exakat/Analyzer/Vendors/Ez.php  E^  f層      *   library/Exakat/Analyzer/Vendors/Joomla.php"  E^"  m      (   library/Exakat/Analyzer/Vendors/Fuel.php  E^  K/      -   library/Exakat/Analyzer/Vendors/Concrete5.php(  E^(  A      *   library/Exakat/Analyzer/Vendors/Drupal.php"  E^"  !Q"      +   library/Exakat/Analyzer/Vendors/Phalcon.php$  E^$  `      )   library/Exakat/Analyzer/Vendors/Typo3.php   E^   ܭ      '   library/Exakat/Analyzer/Vendors/Yii.php  E^  E      -   library/Exakat/Analyzer/Vendors/Wordpress.php(  E^(  lEȤ      /   library/Exakat/Analyzer/Vendors/Codeigniter.php,  E^,        +   library/Exakat/Analyzer/Vendors/Laravel.php$  E^$  ֮$      $   library/Exakat/Analyzer/Rulesets.php  E^  v~      5   library/Exakat/Analyzer/Dump/CollectClassChildren.php  E^  hͤ      4   library/Exakat/Analyzer/Dump/CollectMethodCounts.php  E^  }̤      .   library/Exakat/Analyzer/Dump/AnalyzerTable.php
  E^
  E      -   library/Exakat/Analyzer/Dump/AnalyzerDump.php  E^  w̤      2   library/Exakat/Analyzer/Dump/IndentationLevels.php  E^  y      )   library/Exakat/Analyzer/Dump/NewOrder.php9  E^9  ǿݤ      5   library/Exakat/Analyzer/Dump/AnalyzerHashAnalyzer.php
  E^
   h*      .   library/Exakat/Analyzer/Dump/ConstantOrder.php#	  E^#	  ae      ;   library/Exakat/Analyzer/Dump/CollectLocalVariableCounts.php  E^  X      .   library/Exakat/Analyzer/Dump/Typehintorder.php	  E^	  IyU      +   library/Exakat/Analyzer/Dump/Inclusions.php  E^  LT5      7   library/Exakat/Analyzer/Dump/CollectForeachFavorite.phpd  E^d  D)X      <   library/Exakat/Analyzer/Dump/CollectClassInterfaceCounts.php  E^  s      9   library/Exakat/Analyzer/Dump/CollectMbstringEncodings.php  E^  Kd"      ;   library/Exakat/Analyzer/Dump/CollectClassConstantCounts.php  E^  Ф      0   library/Exakat/Analyzer/Dump/CollectLiterals.php  E^  ƙ      7   library/Exakat/Analyzer/Dump/EnvironnementVariables.php  E^  oĤ      4   library/Exakat/Analyzer/Dump/AnalyzerHashResults.phpT	  E^T	        2   library/Exakat/Analyzer/Dump/CollectClassDepth.php!  E^!  6?|      7   library/Exakat/Analyzer/Dump/CollectParameterCounts.php  E^  3      8   library/Exakat/Analyzer/Dump/AnalyzerHashHashResults.phpP
  E^P
  )      5   library/Exakat/Analyzer/Dump/CyclomaticComplexity.php  E^  j*Ȥ      6   library/Exakat/Analyzer/Dump/CollectPropertyCounts.php  E^        4   library/Exakat/Analyzer/Dump/DereferencingLevels.php  E^  Xs      0   library/Exakat/Analyzer/Dump/AnalyzerResults.php+
  E^+
  MIӤ      8   library/Exakat/Analyzer/Dump/ParameterArgumentsLinks.php  E^  V      1   library/Exakat/Analyzer/Dump/TypehintingStats.php  E^  ؤ      9   library/Exakat/Analyzer/Dump/AnalyzerArrayHashResults.php	  E^	  G      '   library/Exakat/Analyzer/RulesetsExt.php  E^         !   library/Exakat/Analyzer/.DS_StoreH  E^H  y      ,   library/Exakat/Analyzer/Patterns/Factory.phpr  E^r  3N      8   library/Exakat/Analyzer/Patterns/DependencyInjection.php  E^  c8ݤ      8   library/Exakat/Analyzer/Patterns/CourrierAntiPattern.php  E^        ;   library/Exakat/Analyzer/Structures/MultipleTypeVariable.php  E^        3   library/Exakat/Analyzer/Structures/SubstrToTrim.php  E^  }C      7   library/Exakat/Analyzer/Structures/ObjectReferences.php  E^  H      5   library/Exakat/Analyzer/Structures/SameConditions.php  E^  (OTZ      :   library/Exakat/Analyzer/Structures/EmptyWithExpression.php  E^  n      9   library/Exakat/Analyzer/Structures/ConstantConditions.php  E^  cf      6   library/Exakat/Analyzer/Structures/PrintfArguments.php/  E^/  F/      :   library/Exakat/Analyzer/Structures/ForgottenWhiteSpace.php  E^  S@^      >   library/Exakat/Analyzer/Structures/FunctionPreSubscripting.phpJ  E^J  Ӿ      6   library/Exakat/Analyzer/Structures/TernaryInConcat.phpH  E^H  eS      2   library/Exakat/Analyzer/Structures/MergeIfThen.php  E^  ,V      5   library/Exakat/Analyzer/Structures/RegexDelimiter.phpU  E^U  ̨X      2   library/Exakat/Analyzer/Structures/pregOptionE.php0  E^0  Ϥ      3   library/Exakat/Analyzer/Structures/NewLineStyle.php  E^  q$      /   library/Exakat/Analyzer/Structures/Noscream.phpV  E^V  8      7   library/Exakat/Analyzer/Structures/BreakOutsideLoop.php  E^  2t}      ;   library/Exakat/Analyzer/Structures/CanCountNonCountable.php/  E^/  Rä      ;   library/Exakat/Analyzer/Structures/SuspiciousComparison.php  E^  }      :   library/Exakat/Analyzer/Structures/CouldUseArrayUnique.php  E^        8   library/Exakat/Analyzer/Structures/InfiniteRecursion.php3  E^3        3   library/Exakat/Analyzer/Structures/BailOutEarly.phpf  E^f  \Ĥ      8   library/Exakat/Analyzer/Structures/CouldUseStrrepeat.php  E^  l:k      >   library/Exakat/Analyzer/Structures/MbstringUnknownEncoding.php  E^  Ҥ      5   library/Exakat/Analyzer/Structures/Unpreprocessed.php  E^  ZO      3   library/Exakat/Analyzer/Structures/NoEmptyRegex.php
  E^
  =G*      0   library/Exakat/Analyzer/Structures/OnceUsage.php  E^  ^`      2   library/Exakat/Analyzer/Structures/DynamicCode.php	  E^	  ̍      ;   library/Exakat/Analyzer/Structures/ShouldChainException.php'  E^'  6'      ;   library/Exakat/Analyzer/Structures/MaxLevelOfIdentation.php  E^  ;K      8   library/Exakat/Analyzer/Structures/NoReferenceOnLeft.phpd  E^d  ]      >   library/Exakat/Analyzer/Structures/FailingSubstrComparison.phpW  E^W  'Ꞥ      3   library/Exakat/Analyzer/Structures/VardumpUsage.php-	  E^-	  ELz      3   library/Exakat/Analyzer/Structures/UseSystemTmp.php'
  E^'
  ݜ      2   library/Exakat/Analyzer/Structures/PlusEgalOne.php
  E^
  S      D   library/Exakat/Analyzer/Structures/ComparedButNotAssignedStrings.php?  E^?  tO      >   library/Exakat/Analyzer/Structures/DoubleObjectAssignation.php  E^  c      4   library/Exakat/Analyzer/Structures/UselessSwitch.php  E^  Ԋy      9   library/Exakat/Analyzer/Structures/DieExitConsistance.php  E^  c溤      4   library/Exakat/Analyzer/Structures/WhileListEach.php  E^  x8ä      9   library/Exakat/Analyzer/Structures/InconsistentElseif.php  E^  MM      H   library/Exakat/Analyzer/Structures/NoParenthesisForLanguageConstruct.phpC  E^C  WO      6   library/Exakat/Analyzer/Structures/NoHardcodedPath.php  E^  j      >   library/Exakat/Analyzer/Structures/DanglingArrayReferences.phpF  E^F  e      2   library/Exakat/Analyzer/Structures/Bracketless.php  E^  ➤      =   library/Exakat/Analyzer/Structures/OneLineTwoInstructions.php  E^  
M      ;   library/Exakat/Analyzer/Structures/DifferencePreference.php	  E^	  {Wc      ?   library/Exakat/Analyzer/Structures/CouldUseShortAssignation.phpt  E^t  iiΤ      9   library/Exakat/Analyzer/Structures/UselessInstruction.php(  E^(  >֤      C   library/Exakat/Analyzer/Structures/AlternativeConsistenceByFile.php  E^  Ϫ      2   library/Exakat/Analyzer/Structures/EmptyBlocks.php  E^  h      7   library/Exakat/Analyzer/Structures/ShouldUseForeach.php  E^  .      -   library/Exakat/Analyzer/Structures/IsZero.phpB  E^B  a}      ,   library/Exakat/Analyzer/Structures/OrDie.phpN  E^N  _Y      5   library/Exakat/Analyzer/Structures/DuplicateCalls.phpv  E^v  E0      6   library/Exakat/Analyzer/Structures/DontMixPlusPlus.php  E^  K      8   library/Exakat/Analyzer/Structures/CoalesceAndConcat.php  E^  -Jܤ      D   library/Exakat/Analyzer/Structures/ConstantComparisonConsistance.php
  E^
        8   library/Exakat/Analyzer/Structures/NoReturnInFinally.php  E^  Hq      ;   library/Exakat/Analyzer/Structures/SGVariablesConfusion.php.  E^.  -J      >   library/Exakat/Analyzer/Structures/toStringThrowsException.php  E^  j      6   library/Exakat/Analyzer/Structures/UnreachableCode.php%  E^%  A      2   library/Exakat/Analyzer/Structures/AlwaysFalse.phpX  E^X  cGIQ      >   library/Exakat/Analyzer/Structures/SetlocaleNeedsConstants.phpV  E^V  ~      B   library/Exakat/Analyzer/Structures/ForeachNeedReferencedSource.php3  E^3  ~?      4   library/Exakat/Analyzer/Structures/NoArrayUnique.php  E^  `      7   library/Exakat/Analyzer/Structures/ShouldPreprocess.phpo  E^o  *u<5      -   library/Exakat/Analyzer/Structures/Break0.php  E^  ̀      5   library/Exakat/Analyzer/Structures/YodaComparison.php  E^  ĒQ      3   library/Exakat/Analyzer/Structures/PhpinfoUsage.phpO  E^O  at      @   library/Exakat/Analyzer/Structures/PropertyVariableConfusion.php  E^  S      ;   library/Exakat/Analyzer/Structures/IfWithSameConditions.phpI  E^I  }      >   library/Exakat/Analyzer/Structures/NoAssignationInFunction.php  E^  aq      <   library/Exakat/Analyzer/Structures/OneLevelOfIndentation.php4  E^4  7       3   library/Exakat/Analyzer/Structures/NestedIfthen.phpC  E^C  L      ;   library/Exakat/Analyzer/Structures/ShouldUseExplodeArgs.php
  E^
  &      >   library/Exakat/Analyzer/Structures/UnsupportedOperandTypes.php  E^  E7X      5   library/Exakat/Analyzer/Structures/JsonWithOption.php  E^  4      F   library/Exakat/Analyzer/Structures/AlteringForeachWithoutReference.php
  E^
        /   library/Exakat/Analyzer/Structures/NotOrNot.php  E^  i      =   library/Exakat/Analyzer/Structures/NoVariableIsACondition.phpv  E^v  ^      2   library/Exakat/Analyzer/Structures/CouldUseDir.php  E^  x       G   library/Exakat/Analyzer/Structures/OneExpressionBracketsConsistency.php;
  E^;
  :
齤      4   library/Exakat/Analyzer/Structures/CouldBeStatic.php5	  E^5	  {_<      6   library/Exakat/Analyzer/Structures/DontLoopOnYield.php  E^  aLʤ      9   library/Exakat/Analyzer/Structures/UselessParenthesis.php<  E^<  bV      4   library/Exakat/Analyzer/Structures/RepeatedPrint.php0  E^0  =      >   library/Exakat/Analyzer/Structures/StripTagsSkipsClosedTag.php  E^  OƤ      2   library/Exakat/Analyzer/Structures/PrintAndDie.php  E^  cH      5   library/Exakat/Analyzer/Structures/EvalWithoutTry.phph  E^h  5@      <   library/Exakat/Analyzer/Structures/ConditionalStructures.php  E^  Gۤ      0   library/Exakat/Analyzer/Structures/LongBlock.php)  E^)  ?]      :   library/Exakat/Analyzer/Structures/DropElseAfterReturn.phpz  E^z        7   library/Exakat/Analyzer/Structures/CryptWithoutSalt.php  E^  W      ?   library/Exakat/Analyzer/Structures/HeredocDelimiterFavorite.php~  E^~  H      8   library/Exakat/Analyzer/Structures/DoubleAssignation.php  E^  _      4   library/Exakat/Analyzer/Structures/LongArguments.php  E^  M      0   library/Exakat/Analyzer/Structures/MailUsage.php  E^  OS      4   library/Exakat/Analyzer/Structures/NeverNegative.phpj  E^j  >      4   library/Exakat/Analyzer/Structures/NoDirectUsage.phpk  E^k  _y      8   library/Exakat/Analyzer/Structures/BuriedAssignation.php  E^  1      8   library/Exakat/Analyzer/Structures/OneIfIsSufficient.phpb  E^b  ez
Ƥ      5   library/Exakat/Analyzer/Structures/ImplicitGlobal.php)	  E^)	  fvv      6   library/Exakat/Analyzer/Structures/ThrowsAndAssign.php  E^        8   library/Exakat/Analyzer/Structures/ShouldUseOperator.php	  E^	  f.      8   library/Exakat/Analyzer/Structures/ComplexExpression.php  E^  (      4   library/Exakat/Analyzer/Structures/NoNeedForElse.php#  E^#  ߕ      1   library/Exakat/Analyzer/Structures/ReturnVoid.php  E^  1      1   library/Exakat/Analyzer/Structures/EmptyLines.php  E^  
      4   library/Exakat/Analyzer/Structures/SequenceInFor.php  E^  !      9   library/Exakat/Analyzer/Structures/MissingParenthesis.php#  E^#  `C      9   library/Exakat/Analyzer/Structures/CommonAlternatives.php  E^  )      6   library/Exakat/Analyzer/Structures/CouldUseCompact.php1  E^1  R?      6   library/Exakat/Analyzer/Structures/ForeachWithList.php  E^  ʂ4      1   library/Exakat/Analyzer/Structures/MissingNew.php6  E^6  Zr      8   library/Exakat/Analyzer/Structures/ShouldMakeTernary.phpK  E^K  yA7      1   library/Exakat/Analyzer/Structures/StaticLoop.php  E^  }פ      :   library/Exakat/Analyzer/Structures/IdenticalConditions.phpv  E^v  gL      @   library/Exakat/Analyzer/Structures/ErrorReportingWithInteger.php  E^  ;      <   library/Exakat/Analyzer/Structures/CouldUseArrayFillKeys.php  E^  Kͤ      7   library/Exakat/Analyzer/Structures/NoIssetWithEmpty.php  E^  w)      ;   library/Exakat/Analyzer/Structures/PossibleInfiniteLoop.php  E^  &      ;   library/Exakat/Analyzer/Structures/IdenticalOnBothSides.php  E^  W!C      5   library/Exakat/Analyzer/Structures/NoGetClassNull.php  E^        8   library/Exakat/Analyzer/Structures/PossibleIncrement.php  E^  "n      4   library/Exakat/Analyzer/Structures/EmptyTryCatch.php  E^  )D      ?   library/Exakat/Analyzer/Structures/MixedConcatInterpolation.php9  E^9  %f      D   library/Exakat/Analyzer/Structures/ForeachReferenceIsNotModified.phpr  E^r  [ͤ      8   library/Exakat/Analyzer/Structures/GlobalOutsideLoop.php  E^  fb      3   library/Exakat/Analyzer/Structures/ElseIfElseif.php  E^        4   library/Exakat/Analyzer/Structures/NoHardcodedIp.php	  E^	  [`      G   library/Exakat/Analyzer/Structures/OpensslRandomPseudoByteSecondArg.php  E^  P      5   library/Exakat/Analyzer/Structures/CurlVersionNow.php  E^  5      2   library/Exakat/Analyzer/Structures/Iffectation.php  E^  7į      4   library/Exakat/Analyzer/Structures/ErrorMessages.php&
  E^&
  xA      6   library/Exakat/Analyzer/Structures/NoHardcodedPort.php  E^  ǽm      I   library/Exakat/Analyzer/Structures/ConcatenationInterpolationFavorite.php	  E^	  ~ua
      >   library/Exakat/Analyzer/Structures/CalltimePassByReference.php  E^  "Ϥ      7   library/Exakat/Analyzer/Structures/MbstringThirdArg.php*  E^*  (      6   library/Exakat/Analyzer/Structures/NoHardcodedHash.phpG  E^G  Juڤ      4   library/Exakat/Analyzer/Structures/CheckAllTypes.php  E^  ќ6      6   library/Exakat/Analyzer/Structures/GoToKeyDirectly.php  E^  ~      7   library/Exakat/Analyzer/Structures/NoAppendOnSource.php  E^  [A      2   library/Exakat/Analyzer/Structures/PHP7Dirname.php  E^  ;*      8   library/Exakat/Analyzer/Structures/DoubleInstruction.php	  E^	  +Ԥ      /   library/Exakat/Analyzer/Structures/NoChoice.phpW
  E^W
  v);      3   library/Exakat/Analyzer/Structures/TestThenCast.php0  E^0  )٤      6   library/Exakat/Analyzer/Structures/ReturnTrueFalse.php,  E^,  Ie?      ?   library/Exakat/Analyzer/Structures/NonBreakableSpaceInNames.php  E^  I      4   library/Exakat/Analyzer/Structures/ShouldUseMath.php  E^        =   library/Exakat/Analyzer/Structures/VariableMayBeNonGlobal.php*  E^*  ^DJ      ;   library/Exakat/Analyzer/Structures/UnconditionLoopBreak.php  E^  $      5   library/Exakat/Analyzer/Structures/UnsetInForeach.php  E^  T      4   library/Exakat/Analyzer/Structures/NextMonthTrap.php  E^        7   library/Exakat/Analyzer/Structures/RandomWithoutTry.php  E^  =j      ;   library/Exakat/Analyzer/Structures/EchoPrintConsistance.php
  E^
  nf      6   library/Exakat/Analyzer/Structures/DereferencingAS.php	  E^	  WG`      9   library/Exakat/Analyzer/Structures/ComparisonFavorite.php&
  E^&
  0QJ      F   library/Exakat/Analyzer/Structures/OnlyVariableReturnedByReference.php  E^  +      3   library/Exakat/Analyzer/Structures/UselessCheck.php,  E^,        7   library/Exakat/Analyzer/Structures/Htmlentitiescall.php  E^  b\?      3   library/Exakat/Analyzer/Structures/MissingCases.php
  E^
  '2      0   library/Exakat/Analyzer/Structures/ShortTags.phpc  E^c  J;      6   library/Exakat/Analyzer/Structures/UselessBrackets.php  E^        4   library/Exakat/Analyzer/Structures/UseInstanceof.php  E^  p      8   library/Exakat/Analyzer/Structures/MismatchedTernary.php

  E^

        <   library/Exakat/Analyzer/Structures/IndicesAreIntOrString.php
  E^
  R      ;   library/Exakat/Analyzer/Structures/FunctionSubscripting.php  E^  &E      9   library/Exakat/Analyzer/Structures/ForeachSourceValue.php  E^  ny      5   library/Exakat/Analyzer/Structures/CastingTernary.php  E^  Β      /   library/Exakat/Analyzer/Structures/SetAside.phpr  E^r  q      5   library/Exakat/Analyzer/Structures/BasenameSuffix.php  E^  %      0   library/Exakat/Analyzer/Structures/CheckJson.php  E^  Bу      0   library/Exakat/Analyzer/Structures/EvalUsage.php  E^  #e      6   library/Exakat/Analyzer/Structures/LogicalMistakes.php  E^  J      4   library/Exakat/Analyzer/Structures/QueriesInLoop.php@  E^@  4=      5   library/Exakat/Analyzer/Structures/NoDirectAccess.php  E^  @      1   library/Exakat/Analyzer/Structures/ShellUsage.php  E^  EU      4   library/Exakat/Analyzer/Structures/SubstrLastArg.php  E^  f      -   library/Exakat/Analyzer/Structures/NotNot.php  E^  4      ;   library/Exakat/Analyzer/Structures/IdenticalConsecutive.php  E^  Zs      1   library/Exakat/Analyzer/Structures/TryFinally.phpv  E^v  ~ĩ      3   library/Exakat/Analyzer/Structures/DynamicCalls.phpC  E^C        :   library/Exakat/Analyzer/Structures/AssignedInOneBranch.php  E^  PY>
      0   library/Exakat/Analyzer/Structures/ImpliedIf.php  E^  r@      4   library/Exakat/Analyzer/Structures/ListOmissions.phpE  E^E  &      2   library/Exakat/Analyzer/Structures/NestedLoops.php  E^        8   library/Exakat/Analyzer/Structures/UseCountRecursive.php  E^        9   library/Exakat/Analyzer/Structures/ResultMayBeMissing.php  E^  =      3   library/Exakat/Analyzer/Structures/InvalidRegex.php^  E^^  ͒      4   library/Exakat/Analyzer/Structures/MultiplyByOne.php(  E^(  ^M      2   library/Exakat/Analyzer/Structures/GlobalUsage.php  E^  E      6   library/Exakat/Analyzer/Structures/FileUploadUsage.php  E^  0g'      9   library/Exakat/Analyzer/Structures/UncheckedResources.php  E^  vv      3   library/Exakat/Analyzer/Structures/IncludeUsage.phpU  E^U  ;]      ;   library/Exakat/Analyzer/Structures/UsePositiveCondition.phph  E^h  v^      9   library/Exakat/Analyzer/Structures/UseListWithForeach.php  E^  vl      9   library/Exakat/Analyzer/Structures/DontChangeBlindKey.php1  E^1        ;   library/Exakat/Analyzer/Structures/CatchShadowsVariable.php  E^  3      3   library/Exakat/Analyzer/Structures/UselessUnset.php  E^  ~qK      5   library/Exakat/Analyzer/Structures/ResourcesUsage.php  E^  d      6   library/Exakat/Analyzer/Structures/DirectlyUseFile.php	  E^	  .{      :   library/Exakat/Analyzer/Structures/ForWithFunctioncall.php  E^  A
      8   library/Exakat/Analyzer/Structures/AssigneAndCompare.php  E^  t4      3   library/Exakat/Analyzer/Structures/UseCaseValue.php  E^  x\L      5   library/Exakat/Analyzer/Structures/GtOrLtFavorite.php
  E^
  }h      ?   library/Exakat/Analyzer/Structures/ConstantScalarExpression.php  E^  &(      @   library/Exakat/Analyzer/Structures/SwitchWithMultipleDefault.php  E^  P      4   library/Exakat/Analyzer/Structures/UselessGlobal.php  E^  .      8   library/Exakat/Analyzer/Structures/UnknownPregOption.phpK  E^K  R-      F   library/Exakat/Analyzer/Structures/DontReadAndWriteInOneExpression.php_  E^_   \Y      7   library/Exakat/Analyzer/Structures/AutoUnsetForeach.php  E^  ցI      D   library/Exakat/Analyzer/Structures/OneDotOrObjectOperatorPerLine.php[  E^[  m      /   library/Exakat/Analyzer/Structures/UseDebug.php  E^  n      3   library/Exakat/Analyzer/Structures/DirThenSlash.php1  E^1  wT      4   library/Exakat/Analyzer/Structures/ReuseVariable.phpN
  E^N
  Kb      8   library/Exakat/Analyzer/Structures/ContinueIsForLoop.php[  E^[  &b      4   library/Exakat/Analyzer/Structures/MultipleCatch.phpU  E^U  Ϥ      5   library/Exakat/Analyzer/Structures/GlobalInGlobal.php   E^   V      0   library/Exakat/Analyzer/Structures/ElseUsage.php  E^  7p      4   library/Exakat/Analyzer/Structures/CastToBoolean.phpM  E^M  xu!      4   library/Exakat/Analyzer/Structures/MultipleUnset.php,  E^,  xS      2   library/Exakat/Analyzer/Structures/NegativePow.php  E^  F      2   library/Exakat/Analyzer/Structures/UseConstant.php  E^  냤      0   library/Exakat/Analyzer/Structures/ExitUsage.php  E^        4   library/Exakat/Analyzer/Structures/NestedTernary.php  E^  x      7   library/Exakat/Analyzer/Structures/ImplodeArgsOrder.phpk  E^k  E      .   library/Exakat/Analyzer/Structures/AddZero.php	  E^	  p6      6   library/Exakat/Analyzer/Structures/BreakNonInteger.php  E^  YPФ      9   library/Exakat/Analyzer/Structures/ComparedComparison.php  E^        1   library/Exakat/Analyzer/Structures/NamedRegex.php  E^  Ť      2   library/Exakat/Analyzer/Structures/NoSubstrOne.php  E^  "p      8   library/Exakat/Analyzer/Structures/InvalidPackFormat.php  E^  +Es      2   library/Exakat/Analyzer/Structures/ConcatEmpty.php	  E^	  ž      @   library/Exakat/Analyzer/Structures/InconsistentConcatenation.php  E^  }      5   library/Exakat/Analyzer/Structures/SwitchToSwitch.phpP  E^P  pC      2   library/Exakat/Analyzer/Structures/ModernEmpty.php  E^  _z      8   library/Exakat/Analyzer/Structures/UseArrayFunctions.php	  E^	  J,      2   library/Exakat/Analyzer/Structures/Fallthrough.phpU  E^U        5   library/Exakat/Analyzer/Structures/VariableGlobal.php@  E^@  oD      B   library/Exakat/Analyzer/Structures/McryptcreateivWithoutOption.php  E^  6|      >   library/Exakat/Analyzer/Structures/BooleanStrictComparison.php  E^        :   library/Exakat/Analyzer/Structures/ConstDefineFavorite.php
  E^
  h      2   library/Exakat/Analyzer/Structures/CouldBeElse.php8
  E^8
  0       6   library/Exakat/Analyzer/Structures/DontBeTooManual.php  E^  	nEФ      5   library/Exakat/Analyzer/Structures/EchoWithConcat.php  E^  ]̤      1   library/Exakat/Analyzer/Structures/WrongRange.php  E^  9vݤ      =   library/Exakat/Analyzer/Structures/ArrayMergeWithEllipsis.phpq  E^q        ;   library/Exakat/Analyzer/Structures/SwitchWithoutDefault.php  E^  >      @   library/Exakat/Analyzer/Structures/NoChangeIncomingVariables.php  E^  1      /   library/Exakat/Analyzer/Structures/NotEqual.php-  E^-  AUI      3   library/Exakat/Analyzer/Structures/UnusedGlobal.php  E^  ToY      <   library/Exakat/Analyzer/Structures/ArrayMergeAndVariadic.phpl  E^l  Ф      4   library/Exakat/Analyzer/Structures/RepeatedRegex.php<  E^<  .?      4   library/Exakat/Analyzer/Structures/StrposCompare.phpm  E^m  9Z      :   library/Exakat/Analyzer/Structures/TimestampDifference.php  E^  ׎&0      >   library/Exakat/Analyzer/Structures/PrintWithoutParenthesis.php  E^  Ґ      2   library/Exakat/Analyzer/Structures/UnusedLabel.phpy  E^y  6T}      5   library/Exakat/Analyzer/Structures/UselessCasting.php  E^  %      1   library/Exakat/Analyzer/Structures/SimplePreg.php  E^  -qŤ      0   library/Exakat/Analyzer/Structures/FileUsage.php  E^  W
      :   library/Exakat/Analyzer/Structures/MultipleDefinedCase.php  E^  6F      0   library/Exakat/Analyzer/Structures/LoneBlock.php  E^  Jw7      8   library/Exakat/Analyzer/Structures/IssetWithConstant.php]  E^]  B      ;   library/Exakat/Analyzer/Structures/UseUrlQueryFunctions.php  E^  K      5   library/Exakat/Analyzer/Structures/NoNeedGetClass.php  E^  2ä      (   library/Exakat/Analyzer/RulesetsMain.php   E^   ֡g      3   library/Exakat/Analyzer/Traits/UnusedClassTrait.phpT  E^T  K@      6   library/Exakat/Analyzer/Traits/LocallyUsedProperty.php  E^  اPz      5   library/Exakat/Analyzer/Traits/UndefinedInsteadof.php"  E^"  u      1   library/Exakat/Analyzer/Traits/UndefinedTrait.phpj  E^j  3*      0   library/Exakat/Analyzer/Traits/MultipleUsage.php  E^  '      /   library/Exakat/Analyzer/Traits/UselessAlias.php  E^  戮|      .   library/Exakat/Analyzer/Traits/TraitMethod.phpo  E^o        .   library/Exakat/Analyzer/Traits/UnusedTrait.php  E^  W      0   library/Exakat/Analyzer/Traits/TraitNotFound.php  E^  (      -   library/Exakat/Analyzer/Traits/Traitnames.phpb  E^b  p|      1   library/Exakat/Analyzer/Traits/DependantTrait.php
  E^
  72      1   library/Exakat/Analyzer/Traits/SelfUsingTrait.php7  E^7  -QΤ      6   library/Exakat/Analyzer/Traits/AlreadyParentsTrait.php+  E^+  *	[      -   library/Exakat/Analyzer/Traits/TraitUsage.php  E^  j      8   library/Exakat/Analyzer/Traits/MethodCollisionTraits.php  E^  L8      -   library/Exakat/Analyzer/Traits/IsExtTrait.php  E^  
,      -   library/Exakat/Analyzer/Traits/EmptyTrait.php  E^        ,   library/Exakat/Analyzer/Traits/UsedTrait.phpo  E^o  |T      0   library/Exakat/Analyzer/Traits/CouldUseTrait.php  E^  P$      &   library/Exakat/Analyzer/Traits/Php.php1  E^1  x0      *   library/Exakat/Analyzer/RulesetsIgnore.php  E^  MM      6   library/Exakat/Analyzer/Complete/CreateMagicMethod.php  E^  dJ9      C   library/Exakat/Analyzer/Complete/SetClassMethodRemoteDefinition.php  E^  #֤      J   library/Exakat/Analyzer/Complete/SetClassRemoteDefinitionWithInjection.php  E^   y      6   library/Exakat/Analyzer/Complete/SolveTraitMethods.php	  E^	  ςSI      9   library/Exakat/Analyzer/Complete/OverwrittenConstants.php  E^  <V      >   library/Exakat/Analyzer/Complete/SetStringMethodDefinition.php/  E^/  Ĥ      9   library/Exakat/Analyzer/Complete/CreateForeachDefault.php	  E^	  @Ѥ      -   library/Exakat/Analyzer/Complete/Complete.php  E^  A      <   library/Exakat/Analyzer/Complete/FollowClosureDefinition.php	  E^	  $We      *   library/Exakat/Analyzer/Complete/.DS_Store  E^  Q֤      8   library/Exakat/Analyzer/Complete/CreateMagicProperty.php{  E^{  yWФ      B   library/Exakat/Analyzer/Complete/MakeFunctioncallWithReference.php[  E^[  kA      I   library/Exakat/Analyzer/Complete/SetClassRemoteDefinitionWithLocalNew.php  E^  KF      L   library/Exakat/Analyzer/Complete/SetClassRemoteDefinitionWithParenthesis.phpz  E^z        ;   library/Exakat/Analyzer/Complete/CreateCompactVariables.php  E^  G      8   library/Exakat/Analyzer/Complete/CreateDefaultValues.php  E^  kC      G   library/Exakat/Analyzer/Complete/SetClassRemoteDefinitionWithGlobal.php}  E^}  Zί      7   library/Exakat/Analyzer/Complete/OverwrittenMethods.php	  E^	  Ȥ      >   library/Exakat/Analyzer/Complete/MakeClassMethodDefinition.php<  E^<  A      @   library/Exakat/Analyzer/Complete/MakeClassConstantDefinition.php  E^  H       8   library/Exakat/Analyzer/Complete/SetParentDefinition.php  E^  U      7   library/Exakat/Analyzer/Complete/PropagateConstants.phpZ  E^Z  VѤ      K   library/Exakat/Analyzer/Complete/SetClassPropertyDefinitionWithTypehint.php  E^  `z?      I   library/Exakat/Analyzer/Complete/SetClassRemoteDefinitionWithTypehint.php  E^  8:      1   library/Exakat/Analyzer/Complete/SetCloneLink.php  E^  tդ      :   library/Exakat/Analyzer/Complete/OverwrittenProperties.php6  E^6  䫤      <   library/Exakat/Analyzer/Complete/SetArrayClassDefinition.phpQ  E^Q  k      <   library/Exakat/Analyzer/Complete/SetClassAliasDefinition.php  E^  K      3   library/Exakat/Analyzer/Complete/PropagateCalls.phpc  E^c  NIPb      6   library/Exakat/Analyzer/Complete/ExtendedTypehints.php  E^  mȤ      7   library/Exakat/Analyzer/Complete/PhpNativeReference.phpZ  E^Z  XѤ      O   library/Exakat/Analyzer/Complete/SetClassRemoteDefinitionWithReturnTypehint.php  E^  ,}T      6   library/Exakat/Analyzer/Security/IntegerConversion.php2  E^2  Ƥ      4   library/Exakat/Analyzer/Security/CryptoKeyLength.php"  E^"  8p^      @   library/Exakat/Analyzer/Security/Sqlite3RequiresSingleQuotes.php
  E^
        6   library/Exakat/Analyzer/Security/FilterInputSource.php  E^  ,p      4   library/Exakat/Analyzer/Security/SafeHttpHeaders.php	  E^	  6      ,   library/Exakat/Analyzer/Security/NoSleep.phpk  E^k  J      9   library/Exakat/Analyzer/Security/UnserializeSecondArg.php  E^  }$      4   library/Exakat/Analyzer/Security/NoWeakSSLCrypto.php
  E^
  `#      2   library/Exakat/Analyzer/Security/SetCookieArgs.phpn  E^n  V;      4   library/Exakat/Analyzer/Security/DirectInjection.phpc  E^c        6   library/Exakat/Analyzer/Security/IndirectInjection.php  E^  :      ?   library/Exakat/Analyzer/Security/ShouldUsePreparedStatement.php  E^  Ӥ      1   library/Exakat/Analyzer/Security/MkdirDefault.php  E^  tI      5   library/Exakat/Analyzer/Security/SessionLazyWrite.php  E^  -3l      4   library/Exakat/Analyzer/Security/RegisterGlobals.php  E^  ؤ      8   library/Exakat/Analyzer/Security/KeepFilesRestricted.phpg  E^g  ,q      .   library/Exakat/Analyzer/Security/DynamicDl.php7  E^7  R      <   library/Exakat/Analyzer/Security/UploadFilenameInjection.php  E^  V      >   library/Exakat/Analyzer/Security/parseUrlWithoutParameters.php  E^        8   library/Exakat/Analyzer/Security/CantDisableFunction.php  E^  zX      5   library/Exakat/Analyzer/Security/MoveUploadedFile.phpI  E^I  =[z      5   library/Exakat/Analyzer/Security/ConfigureExtract.php  E^        5   library/Exakat/Analyzer/Security/AvoidThoseCrypto.php  E^  cT>      6   library/Exakat/Analyzer/Security/SensitiveArgument.php  E^  L      0   library/Exakat/Analyzer/Security/AnchorRegex.php#  E^#  ʳV:      0   library/Exakat/Analyzer/Security/CurlOptions.php  E^  9      /   library/Exakat/Analyzer/Security/GPRAliases.phpl  E^l  8pT      0   library/Exakat/Analyzer/Security/NoEntIgnore.php  E^  ;-      2   library/Exakat/Analyzer/Security/DontEchoError.php  E^  -?n      4   library/Exakat/Analyzer/Security/NoNetForXmlLoad.php:  E^:  s      0   library/Exakat/Analyzer/Security/CompareHash.phph  E^h  e"      9   library/Exakat/Analyzer/Security/SuperGlobalContagion.php	  E^	  ;(      A   library/Exakat/Analyzer/Security/ShouldUseSessionRegenerateId.php  E^  F}u      3   library/Exakat/Analyzer/Security/EncodedLetters.php2  E^2  OA>      5   library/Exakat/Analyzer/Security/CantDisableClass.php  E^  2{      4   library/Exakat/Analyzer/Security/MinusOneOnError.php  E^  4L      7   library/Exakat/Analyzer/Classes/LocallyUsedProperty.phpM  E^M  EBh      2   library/Exakat/Analyzer/Classes/NormalProperty.php  E^  1iؘ      .   library/Exakat/Analyzer/Classes/AvoidUsing.php
  E^
        :   library/Exakat/Analyzer/Classes/DependantAbstractClass.php
  E^
  nJ      1   library/Exakat/Analyzer/Classes/AccessPrivate.php%  E^%  ?Y      5   library/Exakat/Analyzer/Classes/IsInterfaceMethod.phpx	  E^x	  
n^      /   library/Exakat/Analyzer/Classes/MakeDefault.phpm  E^m  ڔȤ      3   library/Exakat/Analyzer/Classes/MutualExtension.php  E^  M/(      3   library/Exakat/Analyzer/Classes/TooManyChildren.php  E^  t      @   library/Exakat/Analyzer/Classes/NonStaticMethodsCalledStatic.php
  E^
  h      0   library/Exakat/Analyzer/Classes/CloningUsage.php1  E^1        5   library/Exakat/Analyzer/Classes/NoPSSOutsideClass.php@  E^@  l}      ;   library/Exakat/Analyzer/Classes/IncompatibleSignature74.php  E^  	      3   library/Exakat/Analyzer/Classes/DefinedProperty.phpk  E^k  =@J      =   library/Exakat/Analyzer/Classes/NoSelfReferencingConstant.php  E^  !      7   library/Exakat/Analyzer/Classes/DynamicPropertyCall.php  E^  e:      ;   library/Exakat/Analyzer/Classes/CouldBePrivateConstante.php  E^  ༶      :   library/Exakat/Analyzer/Classes/ScalarOrObjectProperty.php  E^  קv      ,   library/Exakat/Analyzer/Classes/WeakType.php  E^  Iwⶤ      .   library/Exakat/Analyzer/Classes/DynamicNew.php  E^        4   library/Exakat/Analyzer/Classes/OverwrittenConst.php  E^  q      4   library/Exakat/Analyzer/Classes/DefinedConstants.php  E^   V      3   library/Exakat/Analyzer/Classes/ShouldDeepClone.php  E^  >A      8   library/Exakat/Analyzer/Classes/UnresolvedInstanceof.phpX	  E^X	  T      3   library/Exakat/Analyzer/Classes/PssWithoutClass.php  E^  N~Ť      0   library/Exakat/Analyzer/Classes/TooManyFinds.php  E^  G      1   library/Exakat/Analyzer/Classes/ShouldUseSelf.php
  E^
  'M      9   library/Exakat/Analyzer/Classes/MissingAbstractMethod.php  E^  -      7   library/Exakat/Analyzer/Classes/MakeGlobalAProperty.phpC  E^C  >ܤ      9   library/Exakat/Analyzer/Classes/AmbiguousVisibilities.phpG  E^G  ;rsX      6   library/Exakat/Analyzer/Classes/CloneWithNonObject.php  E^  Ҳ!      /   library/Exakat/Analyzer/Classes/ParentFirst.php  E^        6   library/Exakat/Analyzer/Classes/ConstantDefinition.php  E^  6      2   library/Exakat/Analyzer/Classes/UnusedConstant.phpB  E^B  s鏤      5   library/Exakat/Analyzer/Classes/OnlyStaticMethods.php  E^  s继      5   library/Exakat/Analyzer/Classes/UnresolvedClasses.phpk
  E^k
  1!      9   library/Exakat/Analyzer/Classes/UnusedPrivateProperty.phpv  E^v  *      5   library/Exakat/Analyzer/Classes/RedefinedProperty.php  E^        .   library/Exakat/Analyzer/Classes/Finalclass.phpm  E^m  ܼ      1   library/Exakat/Analyzer/Classes/Abstractclass.phpu  E^u  ҉      1   library/Exakat/Analyzer/Classes/CouldBeStatic.php  E^        4   library/Exakat/Analyzer/Classes/HasMagicProperty.php  E^  B      >   library/Exakat/Analyzer/Classes/TypehintCyclicDependencies.php  E^  Vs      7   library/Exakat/Analyzer/Classes/UsedProtectedMethod.php  E^        -   library/Exakat/Analyzer/Classes/WrongCase.php  E^  {E{      <   library/Exakat/Analyzer/Classes/CouldBeProtectedConstant.php
  E^
        3   library/Exakat/Analyzer/Classes/AmbiguousStatic.php
  E^
  ĵr      .   library/Exakat/Analyzer/Classes/ClassUsage.php  E^        8   library/Exakat/Analyzer/Classes/UndefinedStaticclass.php,  E^,  Gz      2   library/Exakat/Analyzer/Classes/SameNameAsFile.phpq  E^q  u󀥤      <   library/Exakat/Analyzer/Classes/MultipleTraitOrInterface.php	  E^	  WI      8   library/Exakat/Analyzer/Classes/CouldBeClassConstant.php  E^  5      4   library/Exakat/Analyzer/Classes/StaticProperties.php?  E^?  KK      1   library/Exakat/Analyzer/Classes/UnusedMethods.php	  E^	  UϤ      7   library/Exakat/Analyzer/Classes/MethodIsOverwritten.phpZ  E^Z  	      2   library/Exakat/Analyzer/Classes/NoPublicAccess.php
  E^
  $v      0   library/Exakat/Analyzer/Classes/CouldBeFinal.phpg  E^g  -s/      3   library/Exakat/Analyzer/Classes/FinalByOcramius.php"  E^"  u      7   library/Exakat/Analyzer/Classes/DynamicConstantCall.php  E^        4   library/Exakat/Analyzer/Classes/ThisIsNotAnArray.php  E^        8   library/Exakat/Analyzer/Classes/PropertyCouldBeLocal.php_  E^_  rQ      -   library/Exakat/Analyzer/Classes/UsedClass.php?  E^?  ՚      8   library/Exakat/Analyzer/Classes/ShouldHaveDestructor.php  E^  *      /   library/Exakat/Analyzer/Classes/UsedMethods.php
  E^
  b-#      .   library/Exakat/Analyzer/Classes/IsExtClass.php  E^  |	      6   library/Exakat/Analyzer/Classes/StaticContainsThis.php  E^  m,X      .   library/Exakat/Analyzer/Classes/EmptyClass.phpq  E^q  D      7   library/Exakat/Analyzer/Classes/UsedPrivateProperty.php  E^        9   library/Exakat/Analyzer/Classes/IncompatibleSignature.php  E^  *M      8   library/Exakat/Analyzer/Classes/ConstVisibilityUsage.php  E^  ̔Ԥ      4   library/Exakat/Analyzer/Classes/UndefinedClasses.php  E^  U<Ť      /   library/Exakat/Analyzer/Classes/MagicMethod.php  E^  yL      3   library/Exakat/Analyzer/Classes/MagicProperties.php  E^  Hjڤ      =   library/Exakat/Analyzer/Classes/DontSendThisInConstructor.php  E^  Y      5   library/Exakat/Analyzer/Classes/ConstantUsedBelow.phpV  E^V  Uw      1   library/Exakat/Analyzer/Classes/StaticMethods.php  E^  *      5   library/Exakat/Analyzer/Classes/PropertyUsedAbove.php  E^  d徤      8   library/Exakat/Analyzer/Classes/MultipleDeclarations.phpx  E^x   &      /   library/Exakat/Analyzer/Classes/toStringPss.phpB  E^B  !Vۤ      8   library/Exakat/Analyzer/Classes/AbstractOrImplements.phpL  E^L  k      5   library/Exakat/Analyzer/Classes/UndefinedProperty.php  E^  >      /   library/Exakat/Analyzer/Classes/IsNotFamily.php  E^  ӆm      3   library/Exakat/Analyzer/Classes/MethodUsedBelow.php  E^  W'      ?   library/Exakat/Analyzer/Classes/ImplementedMethodsArePublic.php  E^  =      9   library/Exakat/Analyzer/Classes/LocallyUnusedProperty.php  E^  |S7      1   library/Exakat/Analyzer/Classes/ConstantClass.php  E^  󆾤      6   library/Exakat/Analyzer/Classes/RedefinedConstants.php.  E^.  F      C   library/Exakat/Analyzer/Classes/MethodSignatureMustBeCompatible.php  E^  &\      4   library/Exakat/Analyzer/Classes/CyclicReferences.php=  E^=        >   library/Exakat/Analyzer/Classes/InstantiatingAbstractClass.php.  E^.  hc      7   library/Exakat/Analyzer/Classes/OldStyleConstructor.php  E^  齤      1   library/Exakat/Analyzer/Classes/IsUpperFamily.php  E^  4      3   library/Exakat/Analyzer/Classes/DefinedParentMP.php  E^        ;   library/Exakat/Analyzer/Classes/DirectCallToMagicMethod.phpt  E^t  &ʤ      8   library/Exakat/Analyzer/Classes/TooManyDereferencing.php  E^  48#      3   library/Exakat/Analyzer/Classes/ThrowInDestruct.php  E^  rؤ      5   library/Exakat/Analyzer/Classes/TooManyInjections.php  E^  3<[      4   library/Exakat/Analyzer/Classes/UninitedProperty.php#  E^#        6   library/Exakat/Analyzer/Classes/OrderOfDeclaration.php	  E^	  Hq      5   library/Exakat/Analyzer/Classes/UsedPrivateMethod.php
  E^
        3   library/Exakat/Analyzer/Classes/UnresolvedCatch.php  E^  j
      4   library/Exakat/Analyzer/Classes/DynamicSelfCalls.php  E^  e      :   library/Exakat/Analyzer/Classes/WrongTypedPropertyInit.php%  E^%  &E      <   library/Exakat/Analyzer/Classes/RedefinedPrivateProperty.php  E^  P      6   library/Exakat/Analyzer/Classes/ThisIsNotForStatic.php  E^  <:J      1   library/Exakat/Analyzer/Classes/UseInstanceof.php  E^  |      8   library/Exakat/Analyzer/Classes/CouldBeAbstractClass.php  E^  ʫ`      -   library/Exakat/Analyzer/Classes/Anonymous.php\  E^\        ;   library/Exakat/Analyzer/Classes/ImplementIsForInterface.php  E^  H67      4   library/Exakat/Analyzer/Classes/IsaMagicProperty.php  E^  а      5   library/Exakat/Analyzer/Classes/PropertyUsedBelow.php}	  E^}	  :      6   library/Exakat/Analyzer/Classes/UndefinedConstants.php  E^  >      0   library/Exakat/Analyzer/Classes/UselessFinal.php  E^  `g      7   library/Exakat/Analyzer/Classes/DontUnsetProperties.php  E^  0D=H      ;   library/Exakat/Analyzer/Classes/AvoidOptionalProperties.php  E^  Ϸ      5   library/Exakat/Analyzer/Classes/IntegerAsProperty.phpO  E^O  _      =   library/Exakat/Analyzer/Classes/CantInheritAbstractMethod.php  E^  wtߤ      3   library/Exakat/Analyzer/Classes/AccessProtected.php  E^  .      4   library/Exakat/Analyzer/Classes/NoMagicWithArray.php  E^  !W      .   library/Exakat/Analyzer/Classes/Classnames.phpn  E^n  f;      4   library/Exakat/Analyzer/Classes/UseClassOperator.php  E^  nC      <   library/Exakat/Analyzer/Classes/CouldBeProtectedProperty.php  E^  [      <   library/Exakat/Analyzer/Classes/UndeclaredStaticProperty.php
  E^
  Zhg      3   library/Exakat/Analyzer/Classes/VariableClasses.php  E^  0Hפ      9   library/Exakat/Analyzer/Classes/MultipleClassesInFile.php  E^  !       3   library/Exakat/Analyzer/Classes/ClassAliasUsage.php9  E^9  Gfz      7   library/Exakat/Analyzer/Classes/UnusedPrivateMethod.php  E^  yP      /   library/Exakat/Analyzer/Classes/UnusedClass.phpS  E^S        4   library/Exakat/Analyzer/Classes/ThisIsForClasses.php   E^    N      /   library/Exakat/Analyzer/Classes/StrangeName.phpH  E^H  X2      <   library/Exakat/Analyzer/Classes/OneObjectOperatorPerLine.phpK
  E^K
  [b      1   library/Exakat/Analyzer/Classes/NormalMethods.php  E^        5   library/Exakat/Analyzer/Classes/DynamicMethodCall.php  E^  {\SE      @   library/Exakat/Analyzer/Classes/InsufficientPropertyTypehint.php  E^  YB?"      2   library/Exakat/Analyzer/Classes/CouldBePrivate.php  E^  H      /   library/Exakat/Analyzer/Classes/Constructor.php  E^  e EL      A   library/Exakat/Analyzer/Classes/StaticMethodsCalledFromObject.php!  E^!  {@P      3   library/Exakat/Analyzer/Classes/Abstractmethods.php  E^  YҤ      :   library/Exakat/Analyzer/Classes/UsingThisOutsideAClass.php  E^  =Vڤ      5   library/Exakat/Analyzer/Classes/AvoidOptionArrays.php  E^  k0z      5   library/Exakat/Analyzer/Classes/UndefinedStaticMP.php	  E^	  1      +   library/Exakat/Analyzer/Classes/UseThis.php	  E^	  
      6   library/Exakat/Analyzer/Classes/UselessConstructor.php  E^  Za      *   library/Exakat/Analyzer/Classes/NonPpp.php  E^  w      -   library/Exakat/Analyzer/Classes/NullOnNew.phpw  E^w  C3      7   library/Exakat/Analyzer/Classes/ChildRemoveTypehint.php  E^  i      /   library/Exakat/Analyzer/Classes/Finalmethod.php  E^  &6=      9   library/Exakat/Analyzer/Classes/UnitializedProperties.php  E^  \p      :   library/Exakat/Analyzer/Classes/PropertyUsedInternally.phpl  E^l  ՞R      6   library/Exakat/Analyzer/Classes/HasFluentInterface.php  E^  Kо      5   library/Exakat/Analyzer/Classes/PropertyNeverUsed.php
  E^
  ۾      4   library/Exakat/Analyzer/Classes/UsedOnceProperty.php{  E^{  Fk\      ,   library/Exakat/Analyzer/Classes/NoParent.php|  E^|  ᾤ      -   library/Exakat/Analyzer/Classes/WrongName.php  E^  J8      4   library/Exakat/Analyzer/Classes/CheckOnCallUsage.php	  E^	  :Pῤ      8   library/Exakat/Analyzer/Classes/CouldBePrivateMethod.phpv  E^v  s      6   library/Exakat/Analyzer/Classes/ImmutableSignature.php  E^  #ݤ      ?   library/Exakat/Analyzer/Classes/PropertyUsedInOneMethodOnly.php  E^  od      A   library/Exakat/Analyzer/Classes/NewOnFunctioncallOrIdentifier.php	  E^	  !֤      7   library/Exakat/Analyzer/Classes/DisconnectedClasses.phpO  E^O  d      /   library/Exakat/Analyzer/Classes/OldStyleVar.phpp  E^p  `J      /   library/Exakat/Analyzer/Classes/CitSameName.php  E^  BJ      4   library/Exakat/Analyzer/Classes/IdenticalMethods.php  E^  ?      5   library/Exakat/Analyzer/Classes/MakeMagicConcrete.php  E^  x!U      3   library/Exakat/Analyzer/Classes/DefinedStaticMP.php  E^  9jɤ      6   library/Exakat/Analyzer/Classes/NonNullableSetters.php(  E^(  ST      4   library/Exakat/Analyzer/Classes/RedefinedMethods.php  E^  W8      7   library/Exakat/Analyzer/Classes/UnreachableConstant.php}  E^}  6U      4   library/Exakat/Analyzer/Classes/FossilizedMethod.php  E^        5   library/Exakat/Analyzer/Classes/UndefinedParentMP.php|  E^|   6      :   library/Exakat/Analyzer/Classes/CouldBeProtectedMethod.php  E^  @f      7   library/Exakat/Analyzer/Classes/PPPDeclarationStyle.phpH
  E^H
  VIm      2   library/Exakat/Analyzer/Classes/HiddenNullable.php  E^  H      0   library/Exakat/Analyzer/Classes/DynamicClass.php  E^        5   library/Exakat/Analyzer/Classes/RaisedAccessLevel.php  E^  %A      6   library/Exakat/Analyzer/Classes/PropertyDefinition.php  E^  [      .   library/Exakat/Analyzer/Classes/DemeterLaw.php  E^  ݤ      2   library/Exakat/Analyzer/Classes/AbstractStatic.php  E^  uʤ      8   library/Exakat/Analyzer/Classes/CantInstantiateClass.php^	  E^^	        4   library/Exakat/Analyzer/Classes/RedefinedDefault.php,	  E^,	  X      3   library/Exakat/Analyzer/Classes/CantExtendFinal.php  E^  :.,>      1   library/Exakat/Analyzer/Classes/ShouldUseThis.php	  E^	  FW"d      -   library/Exakat/Analyzer/Classes/TestClass.phpE  E^E  N      3   library/Exakat/Analyzer/Classes/UselessAbstract.php  E^  >      :   library/Exakat/Analyzer/Classes/UnusedProtectedMethods.php  E^  FŤ      $   library/Exakat/Analyzer/Analyzer.phpQu  E^Qu  $      6   library/Exakat/Analyzer/Constants/PhpConstantUsage.phph  E^h  )A      3   library/Exakat/Analyzer/Constants/IsPhpConstant.phpr  E^r  >
      3   library/Exakat/Analyzer/Constants/IsExtConstant.php	  E^	        :   library/Exakat/Analyzer/Constants/ConditionedConstants.php  E^  )      6   library/Exakat/Analyzer/Constants/ConstRecommended.php5  E^5  =-      1   library/Exakat/Analyzer/Constants/InvalidName.phpz  E^z  A      3   library/Exakat/Analyzer/Constants/Constantnames.php  E^  㳬      >   library/Exakat/Analyzer/Constants/CaseInsensitiveConstants.php  E^  zI      @   library/Exakat/Analyzer/Constants/MultipleConstantDefinition.php  E^  w      6   library/Exakat/Analyzer/Constants/InconsistantCase.php
  E^
        6   library/Exakat/Analyzer/Constants/BadConstantnames.php  E^  l      @   library/Exakat/Analyzer/Constants/CreatedOutsideItsNamespace.phpB  E^B  9      9   library/Exakat/Analyzer/Constants/CustomConstantUsage.php  E^  2ʤ      5   library/Exakat/Analyzer/Constants/CouldBeConstant.php  E^  a-      5   library/Exakat/Analyzer/Constants/DynamicCreation.php  E^  
@$      A   library/Exakat/Analyzer/Constants/DefineInsensitivePreference.phpM	  E^M	  t	      6   library/Exakat/Analyzer/Constants/VariableConstant.php  E^        8   library/Exakat/Analyzer/Constants/UndefinedConstants.php  E^  }X	M      1   library/Exakat/Analyzer/Constants/StrangeName.phpi  E^i  Y,      :   library/Exakat/Analyzer/Constants/ConstantStrangeNames.php  E^  *ڤ      6   library/Exakat/Analyzer/Constants/IsGlobalConstant.php  E^  ""V      ;   library/Exakat/Analyzer/Constants/ConstDefinePreference.phpW	  E^W	  Q      5   library/Exakat/Analyzer/Constants/UnusedConstants.php  E^  &
      3   library/Exakat/Analyzer/Constants/ConstantUsage.php  E^  t      8   library/Exakat/Analyzer/Constants/MagicConstantUsage.php]  E^]  ZA#      -   library/Exakat/Analyzer/Composer/Autoload.php  E^        8   library/Exakat/Analyzer/Composer/IsComposerInterface.php  E^  їU      0   library/Exakat/Analyzer/Composer/UseComposer.php  E^  (ڤ      5   library/Exakat/Analyzer/Composer/IsComposerNsname.php  E^  h      4   library/Exakat/Analyzer/Composer/UseComposerLock.php  E^        4   library/Exakat/Analyzer/Composer/IsComposerClass.php  E^  b      2   library/Exakat/Analyzer/Composer/PackagesNames.php  E^  D      )   library/Exakat/Analyzer/MissingResult.php  E^        -   library/Exakat/Analyzer/Php/CoalesceEqual.php  E^  jG      -   library/Exakat/Analyzer/Php/UseCovariance.php/  E^/  0ʕ$      0   library/Exakat/Analyzer/Php/TryMultipleCatch.php  E^  K      1   library/Exakat/Analyzer/Php/Php74NewConstants.php  E^  *v_ߤ      5   library/Exakat/Analyzer/Php/Php70RemovedFunctions.php	  E^	  #:      2   library/Exakat/Analyzer/Php/Php7RelaxedKeyword.php.  E^.  wl      6   library/Exakat/Analyzer/Php/ParenthesisAsParameter.php  E^  FX]      6   library/Exakat/Analyzer/Php/UseSessionStartOptions.phpx  E^x  d      ,   library/Exakat/Analyzer/Php/UsortSorting.phpV  E^V  e%      4   library/Exakat/Analyzer/Php/ShouldUseArrayColumn.php  E^  g      1   library/Exakat/Analyzer/Php/DirectCallToClone.php2  E^2  v࿤      2   library/Exakat/Analyzer/Php/FilterToAddSlashes.php  E^  %      &   library/Exakat/Analyzer/Php/UseCli.php!  E^!         1   library/Exakat/Analyzer/Php/Php70NewFunctions.php  E^  ?t      5   library/Exakat/Analyzer/Php/Php73RemovedFunctions.php{  E^{  fHF      5   library/Exakat/Analyzer/Php/Php80RemovedFunctions.php  E^  }&k      0   library/Exakat/Analyzer/Php/Php72Deprecation.phpp	  E^p	  9{k      -   library/Exakat/Analyzer/Php/IsAWithString.php  E^  }^ŏ      4   library/Exakat/Analyzer/Php/Php74ReservedKeyword.php  E^  ~      1   library/Exakat/Analyzer/Php/UpperCaseFunction.php]  E^]  z      2   library/Exakat/Analyzer/Php/Php70NewInterfaces.php  E^        -   library/Exakat/Analyzer/Php/ImplodeOneArg.phps  E^s        1   library/Exakat/Analyzer/Php/Php54NewFunctions.php  E^  l1      5   library/Exakat/Analyzer/Php/Php72RemovedFunctions.php3  E^3  y%      1   library/Exakat/Analyzer/Php/Php71microseconds.php  E^   o      3   library/Exakat/Analyzer/Php/CouldUseIsCountable.php6  E^6  4      5   library/Exakat/Analyzer/Php/Php74RemovedFunctions.php  E^  u֤      0   library/Exakat/Analyzer/Php/CookiesVariables.php^  E^^  -      2   library/Exakat/Analyzer/Php/Php80UnionTypehint.php  E^  fu      .   library/Exakat/Analyzer/Php/SerializeMagic.php  E^  &猤      8   library/Exakat/Analyzer/Php/AssertFunctionIsReserved.php  E^  -      *   library/Exakat/Analyzer/Php/Password55.phpZ  E^Z  &f      5   library/Exakat/Analyzer/Php/InternalParameterType.phpX  E^X  nd      1   library/Exakat/Analyzer/Php/IssetMultipleArgs.php  E^  G!      0   library/Exakat/Analyzer/Php/ShouldPreprocess.php  E^  Uno      9   library/Exakat/Analyzer/Php/ArrayKeyExistsWithObjects.php!
  E^!
  :Ȥ      *   library/Exakat/Analyzer/Php/ThrowUsage.php,  E^,  a2      +   library/Exakat/Analyzer/Php/SafePhpvars.php  E^  (/      0   library/Exakat/Analyzer/Php/SuperGlobalUsage.php  E^  ~,      +   library/Exakat/Analyzer/Php/UnsetOrCast.php	  E^	  >L      -   library/Exakat/Analyzer/Php/DeclareStrict.php:  E^:  H      >   library/Exakat/Analyzer/Php/AvoidSetErrorHandlerContextArg.php
  E^
  jh      1   library/Exakat/Analyzer/Php/ShouldUseCoalesce.php/  E^/  TK6      3   library/Exakat/Analyzer/Php/ScalarTypehintUsage.php  E^  }      2   library/Exakat/Analyzer/Php/Php80OnlyTypeHints.php\  E^\        /   library/Exakat/Analyzer/Php/PathinfoReturns.php  E^  {2      1   library/Exakat/Analyzer/Php/Php80NewFunctions.php  E^  gt      0   library/Exakat/Analyzer/Php/Php74Deprecation.php  E^  ^      4   library/Exakat/Analyzer/Php/Crc32MightBeNegative.php]  E^]  j      6   library/Exakat/Analyzer/Php/SpreadOperatorForArray.php  E^  -      1   library/Exakat/Analyzer/Php/CompactInexistant.php  E^  +.Ƥ      -   library/Exakat/Analyzer/Php/ForeachObject.phpa  E^a  Rͤ      (   library/Exakat/Analyzer/Php/IdnUts46.php  E^  d      ,   library/Exakat/Analyzer/Php/ListWithKeys.php  E^  |      )   library/Exakat/Analyzer/Php/AssignAnd.php  E^  B      1   library/Exakat/Analyzer/Php/Php74NewDirective.php  E^  ?ä      ,   library/Exakat/Analyzer/Php/UseObjectApi.php  E^  =      3   library/Exakat/Analyzer/Php/ReturnTypehintUsage.php  E^  0+      *   library/Exakat/Analyzer/Php/CaseForPSS.php  E^  	X      .   library/Exakat/Analyzer/Php/AssertionUsage.php  E^        0   library/Exakat/Analyzer/Php/StaticclassUsage.php\  E^\  zo      4   library/Exakat/Analyzer/Php/CloseTagsConsistency.php4
  E^4
  ^l      +   library/Exakat/Analyzer/Php/DateFormats.php\  E^\  GM      0   library/Exakat/Analyzer/Php/oldAutoloadUsage.php  E^  k/      )   library/Exakat/Analyzer/Php/FopenMode.php  E^  AH      <   library/Exakat/Analyzer/Php/NoReferenceForStaticProperty.php@  E^@  3w      '   library/Exakat/Analyzer/Php/DlUsage.php?  E^?  _-ʤ      +   library/Exakat/Analyzer/Php/HashAlgos71.php  E^  n&u      /   library/Exakat/Analyzer/Php/Php71NewClasses.php  E^   <Ȥ      +   library/Exakat/Analyzer/Php/UsePathinfo.phpt  E^t  %      +   library/Exakat/Analyzer/Php/UseBrowscap.php_  E^_        -   library/Exakat/Analyzer/Php/NotScalarType.php!  E^!        /   library/Exakat/Analyzer/Php/FailingAnalysis.php"  E^"  'i-      /   library/Exakat/Analyzer/Php/HashUsesObjects.php  E^  `k      5   library/Exakat/Analyzer/Php/IntegerSeparatorUsage.php  E^  i      1   library/Exakat/Analyzer/Php/Php72NewConstants.php  E^  f说      ,   library/Exakat/Analyzer/Php/EchoTagUsage.php\  E^\  m"u      /   library/Exakat/Analyzer/Php/Php72NewClasses.phpq  E^q  ?      )   library/Exakat/Analyzer/Php/HashAlgos.phpa  E^a  j      +   library/Exakat/Analyzer/Php/HashAlgos74.phpf  E^f  ¤      /   library/Exakat/Analyzer/Php/DefineWithArray.php  E^  Za~      /   library/Exakat/Analyzer/Php/NoClassInGlobal.php  E^  g      ,   library/Exakat/Analyzer/Php/UseSetCookie.phpn  E^n  Ѳ      4   library/Exakat/Analyzer/Php/UnicodeEscapePartial.php(  E^(  /      1   library/Exakat/Analyzer/Php/IsnullVsEqualNull.php>  E^>  I       0   library/Exakat/Analyzer/Php/NoSubstrMinusOne.phpy  E^y  `3픤      3   library/Exakat/Analyzer/Php/UnicodeEscapeSyntax.php  E^  bmn̤      5   library/Exakat/Analyzer/Php/NoReferenceForTernary.php  E^        3   library/Exakat/Analyzer/Php/Php80VariableSyntax.php  E^  n      1   library/Exakat/Analyzer/Php/Php71NewFunctions.phpw  E^w  y      )   library/Exakat/Analyzer/Php/Gotonames.phpG  E^G        4   library/Exakat/Analyzer/Php/ShouldUseArrayFilter.php~  E^~  m      6   library/Exakat/Analyzer/Php/SignatureTrailingComma.php  E^  l      +   library/Exakat/Analyzer/Php/Argon2Usage.php  E^  K      1   library/Exakat/Analyzer/Php/DeclareStrictType.php  E^  
OL      .   library/Exakat/Analyzer/Php/ConstWithArray.php  E^  at      ;   library/Exakat/Analyzer/Php/GlobalWithoutSimpleVariable.php  E^  v6      4   library/Exakat/Analyzer/Php/UseDateTimeImmutable.php1  E^1  :&;      4   library/Exakat/Analyzer/Php/ShortOpenTagRequired.php  E^  O5      1   library/Exakat/Analyzer/Php/Php55NewFunctions.php  E^  *      6   library/Exakat/Analyzer/Php/PHP73LastEmptyArgument.php  E^  :      4   library/Exakat/Analyzer/Php/PHP70scalartypehints.php  E^  GE<      ,   library/Exakat/Analyzer/Php/Haltcompiler.php,  E^,  P      2   library/Exakat/Analyzer/Php/ScalarAreNotArrays.php  E^        0   library/Exakat/Analyzer/Php/PregMatchAllFlag.php  E^  Se      /   library/Exakat/Analyzer/Php/ListWithAppends.phpW  E^W  L      &   library/Exakat/Analyzer/Php/Prints.php  E^  0      :   library/Exakat/Analyzer/Php/LetterCharsLogicalFavorite.php  E^  fP      /   library/Exakat/Analyzer/Php/MethodCallOnNew.php!  E^!        +   library/Exakat/Analyzer/Php/SetHandlers.phpe  E^e  IM      5   library/Exakat/Analyzer/Php/Php55RemovedFunctions.php  E^  d      1   library/Exakat/Analyzer/Php/Php74NewFunctions.php_  E^_  DD3      2   library/Exakat/Analyzer/Php/Php72ObjectKeyword.php  E^  M      1   library/Exakat/Analyzer/Php/ShouldUseFunction.php  E^  L:      +   library/Exakat/Analyzer/Php/HashAlgos53.php  E^        5   library/Exakat/Analyzer/Php/Php54RemovedFunctions.php  E^  h\"Ѥ      4   library/Exakat/Analyzer/Php/Php80RemovedConstant.php_  E^_  x      +   library/Exakat/Analyzer/Php/CryptoUsage.php  E^  MB      2   library/Exakat/Analyzer/Php/TypedPropertyUsage.php"  E^"        '   library/Exakat/Analyzer/Php/UsesEnv.phpn  E^n  `פ      1   library/Exakat/Analyzer/Php/TriggerErrorUsage.php  E^  h      2   library/Exakat/Analyzer/Php/ClosureThisSupport.php  E^  xT      0   library/Exakat/Analyzer/Php/UpperCaseKeyword.php  E^  }*      5   library/Exakat/Analyzer/Php/ReturnWithParenthesis.phpu  E^u  Ԙt      1   library/Exakat/Analyzer/Php/ReservedKeywords7.phpx  E^x        -   library/Exakat/Analyzer/Php/TrailingComma.phpy  E^y  p      4   library/Exakat/Analyzer/Php/PHP71scalartypehints.phpA  E^A  '@n      )   library/Exakat/Analyzer/Php/CloseTags.phpM  E^M  .q      1   library/Exakat/Analyzer/Php/UseContravariance.php  E^  ڤ      %   library/Exakat/Analyzer/Php/IsNAN.phpE  E^E  X      .   library/Exakat/Analyzer/Php/debugInfoUsage.php  E^  {ڤ      -   library/Exakat/Analyzer/Php/ErrorLogUsage.phpJ  E^J  <-K      /   library/Exakat/Analyzer/Php/GlobalsVsGlobal.php	  E^	  Ժ      +   library/Exakat/Analyzer/Php/UseStdclass.phpA  E^A  ŭֲ      3   library/Exakat/Analyzer/Php/GroupUseDeclaration.phpz  E^z  y       )   library/Exakat/Analyzer/Php/EmptyList.php  E^  Fݤ      -   library/Exakat/Analyzer/Php/ShellFavorite.php
  E^
        7   library/Exakat/Analyzer/Php/SetExceptionHandlerPHP7.php  E^  !      +   library/Exakat/Analyzer/Php/HashAlgos54.php  E^  "1٤      -   library/Exakat/Analyzer/Php/TryCatchUsage.phpM  E^M  P"cΤ      *   library/Exakat/Analyzer/Php/UseCookies.php  E^  *Q9      4   library/Exakat/Analyzer/Php/PHP72scalartypehints.php  E^        1   library/Exakat/Analyzer/Php/MissingSubpattern.php  E^  Tq      /   library/Exakat/Analyzer/Php/Php74NewClasses.php  E^  &      ,   library/Exakat/Analyzer/Php/CastingUsage.php-  E^-        8   library/Exakat/Analyzer/Php/ConstantScalarExpression.phpC  E^C  \`      ,   library/Exakat/Analyzer/Php/Incompilable.phpL
  E^L
  R      *   library/Exakat/Analyzer/Php/Labelnames.phpR  E^R  ςXʤ      .   library/Exakat/Analyzer/Php/StrtrArguments.php  E^  vyǤ      1   library/Exakat/Analyzer/Php/OveriddenFunction.php  E^  &F      /   library/Exakat/Analyzer/Php/Php70NewClasses.php  E^  .      <   library/Exakat/Analyzer/Php/ReflectionExportIsDeprecated.php  E^   tY      0   library/Exakat/Analyzer/Php/SessionVariables.php  E^  G{[      1   library/Exakat/Analyzer/Php/Php73NewFunctions.php|  E^|  67Ƥ      @   library/Exakat/Analyzer/Php/CantUseReturnValueInWriteContext.php  E^  L\      0   library/Exakat/Analyzer/Php/RawPostDataUsage.php  E^  |(      -   library/Exakat/Analyzer/Php/ExponentUsage.php  E^  ɖ      3   library/Exakat/Analyzer/Php/ClassConstWithArray.php  E^  A(      5   library/Exakat/Analyzer/Php/Php70RemovedDirective.php  E^  7l      %   library/Exakat/Analyzer/Php/IsINF.phpN  E^N  y      2   library/Exakat/Analyzer/Php/UnknownPcre2Option.phpn  E^n  mX_      -   library/Exakat/Analyzer/Php/ReservedNames.php  E^  1mCX      -   library/Exakat/Analyzer/Php/DirectiveName.php  E^        4   library/Exakat/Analyzer/Php/Php74mbstrrpos3rdArg.php  E^  ץ      &   library/Exakat/Analyzer/Php/UseWeb.php	  E^	  d      2   library/Exakat/Analyzer/Php/DetectCurrentClass.php  E^  G㽤      6   library/Exakat/Analyzer/Php/AvoidMbDectectEncoding.phpl  E^l  D#      5   library/Exakat/Analyzer/Php/Php71RemovedDirective.php?  E^?        8   library/Exakat/Analyzer/Php/ForeachDontChangePointer.php  E^  8N¤      .   library/Exakat/Analyzer/Php/YieldFromUsage.phpV  E^V  ~      /   library/Exakat/Analyzer/Php/FlexibleHeredoc.php  E^  d5      +   library/Exakat/Analyzer/Php/NoCastToInt.php]  E^]  Gݣ      2   library/Exakat/Analyzer/Php/NoStringWithAppend.php  E^  )       1   library/Exakat/Analyzer/Php/Php56NewFunctions.php  E^  M      /   library/Exakat/Analyzer/Php/DeclareEncoding.phpo  E^o  vǤ      -   library/Exakat/Analyzer/Php/EllipsisUsage.php~  E^~  \Ϥ      1   library/Exakat/Analyzer/Php/Php72NewFunctions.php	  E^	  y6      1   library/Exakat/Analyzer/Php/ListWithReference.php  E^  ,G      2   library/Exakat/Analyzer/Php/TooManyNativeCalls.php|	  E^|	  zS-      5   library/Exakat/Analyzer/Php/GroupUseTrailingComma.php  E^        1   library/Exakat/Analyzer/Php/AlternativeSyntax.php  E^  
      )   library/Exakat/Analyzer/Php/PearUsage.phpP  E^P  ڒ      1   library/Exakat/Analyzer/Php/NoMoreCurlyArrays.php  E^  3B      /   library/Exakat/Analyzer/Php/UsePathinfoArgs.php	  E^	  :&      1   library/Exakat/Analyzer/Php/IncomingVariables.php  E^  V      1   library/Exakat/Analyzer/Php/ConcatAndAddition.php  E^  ~>      (   library/Exakat/Analyzer/Php/Coalesce.php  E^  #b      4   library/Exakat/Analyzer/Php/NoReturnForGenerator.php	  E^	  gY      0   library/Exakat/Analyzer/Php/LogicalInLetters.php  E^  %=ݤ      0   library/Exakat/Analyzer/Php/NoListWithString.php  E^  o      )   library/Exakat/Analyzer/Php/AvoidReal.php  E^  Jh      +   library/Exakat/Analyzer/Php/NewExponent.phpY  E^Y  G@      9   library/Exakat/Analyzer/Php/MustCallParentConstructor.php  E^  iC      5   library/Exakat/Analyzer/Php/Php74RemovedDirective.php  E^  4j      .   library/Exakat/Analyzer/Php/IncomingValues.php  E^  ý      5   library/Exakat/Analyzer/Php/UnpackingInsideArrays.php  E^  z$      /   library/Exakat/Analyzer/Php/UseNullableType.php:  E^:  y/      *   library/Exakat/Analyzer/Php/BetterRand.phpc  E^c  @鈋      6   library/Exakat/Analyzer/Php/ClassFunctionConfusion.php  E^  yU      -   library/Exakat/Analyzer/Php/AutoloadUsage.php|  E^|  ͮߤ      *   library/Exakat/Analyzer/Php/YieldUsage.phpN  E^N        4   library/Exakat/Analyzer/Php/ThrowWasAnExpression.php  E^  )e      /   library/Exakat/Analyzer/Php/ListShortSyntax.php  E^  ʤ      ,   library/Exakat/Analyzer/Php/DeclareTicks.php`  E^`  sߤ      -   library/Exakat/Analyzer/Php/MiddleVersion.php  E^  8¤      *   library/Exakat/Analyzer/Php/Deprecated.php<  E^<  ^fۗ      ?   library/Exakat/Analyzer/Php/NestedTernaryWithoutParenthesis.php  E^  N'/      /   library/Exakat/Analyzer/Php/DirectivesUsage.phpv  E^v        /   library/Exakat/Analyzer/Exceptions/Rethrown.php
  E^
  ä      5   library/Exakat/Analyzer/Exceptions/IsPhpException.php#  E^#  B      /   library/Exakat/Analyzer/Exceptions/Unthrown.php  E^        8   library/Exakat/Analyzer/Exceptions/ThrowFunctioncall.php  E^  c      7   library/Exakat/Analyzer/Exceptions/ThrownExceptions.php  E^  %      7   library/Exakat/Analyzer/Exceptions/CaughtExceptions.phpV  E^V  <g      6   library/Exakat/Analyzer/Exceptions/ForgottenThrown.php  E^  )U      4   library/Exakat/Analyzer/Exceptions/AlreadyCaught.php  E^  i      0   library/Exakat/Analyzer/Exceptions/CantThrow.php  E^  ܆      -   library/Exakat/Analyzer/Exceptions/CatchE.php  E^  FQ      3   library/Exakat/Analyzer/Exceptions/UselessCatch.phpc  E^c  =      2   library/Exakat/Analyzer/Exceptions/CouldUseTry.php  E^  Ƥ      8   library/Exakat/Analyzer/Exceptions/DefinedExceptions.php  E^  p      4   library/Exakat/Analyzer/Exceptions/MultipleCatch.phpV  E^V  J      9   library/Exakat/Analyzer/Exceptions/UncaughtExceptions.php  E^  ,E      9   library/Exakat/Analyzer/Exceptions/CaughtButNotThrown.phpQ  E^Q  Mwy      9   library/Exakat/Analyzer/Exceptions/OverwriteException.php  E^  w      -   library/Exakat/Analyzer/Extensions/Extdba.php8  E^8  <       .   library/Exakat/Analyzer/Extensions/Extjudy.php:  E^:  WY      -   library/Exakat/Analyzer/Extensions/Extlua.php7  E^7  эN      1   library/Exakat/Analyzer/Extensions/Extmsgpack.php@  E^@        1   library/Exakat/Analyzer/Extensions/Extgettext.php@  E^@  cΤ      0   library/Exakat/Analyzer/Extensions/Extbcmath.php>  E^>  .      0   library/Exakat/Analyzer/Extensions/Extmcrypt.php>  E^>  `C      -   library/Exakat/Analyzer/Extensions/Extpdo.php8  E^8  2ޤ      .   library/Exakat/Analyzer/Extensions/Extpcov.php:  E^:  ˱      .   library/Exakat/Analyzer/Extensions/Exthttp.php9  E^9        .   library/Exakat/Analyzer/Extensions/Extkdm5.php:  E^:  ֶȤ      .   library/Exakat/Analyzer/Extensions/Extcurl.php:  E^:  &      -   library/Exakat/Analyzer/Extensions/Extapc.php\  E^\  bڤ      /   library/Exakat/Analyzer/Extensions/Extpgsql.php<  E^<  g      0   library/Exakat/Analyzer/Extensions/Extlibxml.php>  E^>  FL      -   library/Exakat/Analyzer/Extensions/Extpsr.php\  E^\  /v      1   library/Exakat/Analyzer/Extensions/Extopenssl.php@  E^@  {vD      -   library/Exakat/Analyzer/Extensions/Extfam.php8  E^8  ZԤ      2   library/Exakat/Analyzer/Extensions/Extpassword.phpB  E^B  Se      .   library/Exakat/Analyzer/Extensions/Extintl.php:  E^:  zn&      4   library/Exakat/Analyzer/Extensions/Extopencensus.phpF  E^F  -'      -   library/Exakat/Analyzer/Extensions/Extxsl.php8  E^8  "      .   library/Exakat/Analyzer/Extensions/Extgrpc.php9  E^9  GR      2   library/Exakat/Analyzer/Extensions/Extcalendar.phpB  E^B  7'o      .   library/Exakat/Analyzer/Extensions/Exttidy.php:  E^:  l      .   library/Exakat/Analyzer/Extensions/Extfile.php:  E^:  ꡱ      .   library/Exakat/Analyzer/Extensions/Extereg.php9  E^9  V      /   library/Exakat/Analyzer/Extensions/Extshmop.php<  E^<  !)v      .   library/Exakat/Analyzer/Extensions/Extwddx.php:  E^:  =/      .   library/Exakat/Analyzer/Extensions/Extuuid.php:  E^:  ဤ      -   library/Exakat/Analyzer/Extensions/Extzip.php8  E^8  m;      -   library/Exakat/Analyzer/Extensions/Extdb2.php8  E^8  0      1   library/Exakat/Analyzer/Extensions/Extinotify.php@  E^@  :
      .   library/Exakat/Analyzer/Extensions/Extming.php:  E^:  u      3   library/Exakat/Analyzer/Extensions/Extxmlreader.phpE  E^E  %Yi      .   library/Exakat/Analyzer/Extensions/Extapcu.php:  E^:        0   library/Exakat/Analyzer/Extensions/Extexpect.php>  E^>  oǤ      0   library/Exakat/Analyzer/Extensions/Extcrypto.php>  E^>  Gln      1   library/Exakat/Analyzer/Extensions/Extsqlite3.php@  E^@  r-'      /   library/Exakat/Analyzer/Extensions/Extmssql.php<  E^<  -s      -   library/Exakat/Analyzer/Extensions/Extsvm.php8  E^8  ;)i      2   library/Exakat/Analyzer/Extensions/Extzbarcode.phpf  E^f  R<      .   library/Exakat/Analyzer/Extensions/Extamqp.php:  E^:  OgQE      /   library/Exakat/Analyzer/Extensions/Extgnupg.php<  E^<  r      .   library/Exakat/Analyzer/Extensions/Extnewt.php:  E^:  A|      /   library/Exakat/Analyzer/Extensions/Extxxtea.php<  E^<  ے      2   library/Exakat/Analyzer/Extensions/Extfileinfo.phpB  E^B  e      .   library/Exakat/Analyzer/Extensions/Extmail.php:  E^:  woڤ      0   library/Exakat/Analyzer/Extensions/Extapache.php>  E^>  #r?      -   library/Exakat/Analyzer/Extensions/Extffi.php\  E^\  ߸v      /   library/Exakat/Analyzer/Extensions/Extposix.php<  E^<  Ȓ      /   library/Exakat/Analyzer/Extensions/Exticonv.php<  E^<  v4      -   library/Exakat/Analyzer/Extensions/Extsdl.php8  E^8  
U,      /   library/Exakat/Analyzer/Extensions/Extcairo.php<  E^<  -      /   library/Exakat/Analyzer/Extensions/Extctype.php<  E^<  _      1   library/Exakat/Analyzer/Extensions/Extimagick.php@  E^@  Y      /   library/Exakat/Analyzer/Extensions/Extredis.php<  E^<  *      6   library/Exakat/Analyzer/Extensions/Exteaccelerator.phpJ  E^J  ]o      .   library/Exakat/Analyzer/Extensions/Extjson.php:  E^:  `t      /   library/Exakat/Analyzer/Extensions/Extparle.php<  E^<  XӤ      0   library/Exakat/Analyzer/Extensions/Exttrader.php>  E^>        1   library/Exakat/Analyzer/Extensions/Extenchant.php@  E^@        -   library/Exakat/Analyzer/Extensions/Extsem.php8  E^8  g      3   library/Exakat/Analyzer/Extensions/Extxmlwriter.phpE  E^E  ?Oړ      /   library/Exakat/Analyzer/Extensions/Extmysql.php`  E^`  "      0   library/Exakat/Analyzer/Extensions/Exthrtime.php<  E^<  Qc      .   library/Exakat/Analyzer/Extensions/Exthash.php:  E^:  ɀl      -   library/Exakat/Analyzer/Extensions/Extfdf.php8  E^8  "      .   library/Exakat/Analyzer/Extensions/Extphar.php:  E^:  W\Ϥ      ,   library/Exakat/Analyzer/Extensions/Extgd.php6  E^6  M      -   library/Exakat/Analyzer/Extensions/Extspl.php8  E^8  0|      0   library/Exakat/Analyzer/Extensions/Extpspell.php>  E^>  Ĉ      -   library/Exakat/Analyzer/Extensions/Extrar.php8  E^8  )On      1   library/Exakat/Analyzer/Extensions/Extdecimal.phpd  E^d  d      -   library/Exakat/Analyzer/Extensions/Extyis.php8  E^8  \      3   library/Exakat/Analyzer/Extensions/Extmailparse.phpD  E^D  :      .   library/Exakat/Analyzer/Extensions/Extinfo.php:  E^:  qۤ      -   library/Exakat/Analyzer/Extensions/Extxml.php8  E^8  Z      1   library/Exakat/Analyzer/Extensions/Extweakref.php@  E^@  h      .   library/Exakat/Analyzer/Extensions/Extoci8.php:  E^:  Fzc      1   library/Exakat/Analyzer/Extensions/Extmongodb.phpd  E^d  X      .   library/Exakat/Analyzer/Extensions/Extssh2.php:  E^:  ֭      4   library/Exakat/Analyzer/Extensions/Extreflection.phpF  E^F  M      0   library/Exakat/Analyzer/Extensions/Extxmlrpc.php>  E^>  |      /   library/Exakat/Analyzer/Extensions/Extstats.php;  E^;  Kd      /   library/Exakat/Analyzer/Extensions/Extxattr.php;  E^;  Ui)      1   library/Exakat/Analyzer/Extensions/Extgearman.php@  E^@  #M:      5   library/Exakat/Analyzer/Extensions/Extzendmonitor.phpH  E^H        0   library/Exakat/Analyzer/Extensions/Extlapack.php>  E^>  hf      0   library/Exakat/Analyzer/Extensions/Extxdebug.php>  E^>  @V      .   library/Exakat/Analyzer/Extensions/Extodbc.php:  E^:  HȤ      1   library/Exakat/Analyzer/Extensions/Extopcache.php@  E^@  N/      1   library/Exakat/Analyzer/Extensions/Extleveldb.php@  E^@  '      .   library/Exakat/Analyzer/Extensions/Extimap.php:  E^:  _!l<      0   library/Exakat/Analyzer/Extensions/Extmysqli.php>  E^>        0   library/Exakat/Analyzer/Extensions/Extffmpeg.php>  E^>  j      -   library/Exakat/Analyzer/Extensions/Extgmp.php8  E^8  -<Y      2   library/Exakat/Analyzer/Extensions/Extparsekit.phpB  E^B  G      0   library/Exakat/Analyzer/Extensions/Extfilter.php>  E^>  R      0   library/Exakat/Analyzer/Extensions/Extrunkit.php>  E^>  4y      -   library/Exakat/Analyzer/Extensions/Extfpm.php8  E^8  )9      1   library/Exakat/Analyzer/Extensions/Extgmagick.php@  E^@  5*Ƥ      -   library/Exakat/Analyzer/Extensions/Extdio.php8  E^8  =n7      0   library/Exakat/Analyzer/Extensions/Extxhprof.php>  E^>  K5      ,   library/Exakat/Analyzer/Extensions/Extds.php6  E^6  _X      0   library/Exakat/Analyzer/Extensions/Extstring.php=  E^=  6O      /   library/Exakat/Analyzer/Extensions/Extmongo.php<  E^<  8      /   library/Exakat/Analyzer/Extensions/Extibase.php<  E^<  ٍ
      ,   library/Exakat/Analyzer/Extensions/Extev.php6  E^6  Ԥ      3   library/Exakat/Analyzer/Extensions/Extproctitle.phpD  E^D  	%̤      .   library/Exakat/Analyzer/Extensions/Extwasm.php9  E^9  ~      .   library/Exakat/Analyzer/Extensions/Extsoap.php:  E^:  qZ      -   library/Exakat/Analyzer/Extensions/Extzmq.php8  E^8  Ť      2   library/Exakat/Analyzer/Extensions/Extigbinary.phpB  E^B  $       .   library/Exakat/Analyzer/Extensions/Extzlib.php:  E^:  F      /   library/Exakat/Analyzer/Extensions/Extasync.phpb  E^b  6'`      0   library/Exakat/Analyzer/Extensions/Extsphinx.php=  E^=  2鞤      -   library/Exakat/Analyzer/Extensions/Extcom.php8  E^8  
~      /   library/Exakat/Analyzer/Extensions/Extcmark.php<  E^<  iA      /   library/Exakat/Analyzer/Extensions/Extarray.php<  E^<  >g      .   library/Exakat/Analyzer/Extensions/Extpcre.php:  E^:  r      1   library/Exakat/Analyzer/Extensions/Extvarnish.php@  E^@  O&f      .   library/Exakat/Analyzer/Extensions/Extuopz.php:  E^:  A      2   library/Exakat/Analyzer/Extensions/Extmemcache.phpB  E^B  I      1   library/Exakat/Analyzer/Extensions/Extncurses.php@  E^@  bz      0   library/Exakat/Analyzer/Extensions/Extxcache.php>  E^>  ͢ߝ      2   library/Exakat/Analyzer/Extensions/Extstandard.phpB  E^B  t      1   library/Exakat/Analyzer/Extensions/Extsuhosin.php>  E^>        3   library/Exakat/Analyzer/Extensions/Extwikidiff2.phpD  E^D  ZW"      2   library/Exakat/Analyzer/Extensions/Extwincache.phpB  E^B  \      -   library/Exakat/Analyzer/Extensions/Extftp.php8  E^8  |M      3   library/Exakat/Analyzer/Extensions/Extsimplexml.phpD  E^D  xj      3   library/Exakat/Analyzer/Extensions/Extmemcached.phpD  E^D  Y,y      0   library/Exakat/Analyzer/Extensions/Extcsprng.php>  E^>  s      -   library/Exakat/Analyzer/Extensions/Exteio.php8  E^8  c      0   library/Exakat/Analyzer/Extensions/Extswoole.php=  E^=  Yq      -   library/Exakat/Analyzer/Extensions/Extlzf.php8  E^8  ~ě      /   library/Exakat/Analyzer/Extensions/Extgeoip.php<  E^<  a"W      1   library/Exakat/Analyzer/Extensions/Extsockets.php@  E^@  uQΤ      ,   library/Exakat/Analyzer/Extensions/Extob.php6  E^6  J      0   library/Exakat/Analyzer/Extensions/Extsqlite.php>  E^>  33      2   library/Exakat/Analyzer/Extensions/Extmbstring.phpB  E^B  m{      .   library/Exakat/Analyzer/Extensions/Extyaml.php:  E^:  ?Ф      1   library/Exakat/Analyzer/Extensions/Extrdkafka.php@  E^@  	      2   library/Exakat/Analyzer/Extensions/Extlibevent.phpB  E^B  zL      /   library/Exakat/Analyzer/Extensions/Extbzip2.php<  E^<  U!      1   library/Exakat/Analyzer/Extensions/Extsession.php@  E^@  *I      /   library/Exakat/Analyzer/Extensions/Extxdiff.php<  E^<  o      0   library/Exakat/Analyzer/Extensions/Extrecode.php>  E^>  7      0   library/Exakat/Analyzer/Extensions/Extgender.php>  E^>  uB<      3   library/Exakat/Analyzer/Extensions/Extlibsodium.phpC  E^C  -},      -   library/Exakat/Analyzer/Extensions/Extdom.php8  E^8  :4      3   library/Exakat/Analyzer/Extensions/Exttokenizer.phpD  E^D        1   library/Exakat/Analyzer/Extensions/Extseaslog.php@  E^@  s      .   library/Exakat/Analyzer/Extensions/Extldap.php:  E^:  )A      -   library/Exakat/Analyzer/Extensions/Extast.php\  E^\  2'      1   library/Exakat/Analyzer/Extensions/Extphalcon.php@  E^@        .   library/Exakat/Analyzer/Extensions/Extexif.php:  E^:        -   library/Exakat/Analyzer/Extensions/Extiis.php8  E^8  V7      .   library/Exakat/Analyzer/Extensions/Extsnmp.php:  E^:  BA      /   library/Exakat/Analyzer/Extensions/Extevent.php<  E^<  HǤ      2   library/Exakat/Analyzer/Extensions/Extreadline.phpB  E^B  g       /   library/Exakat/Analyzer/Extensions/Extcyrus.php<  E^<  v<      .   library/Exakat/Analyzer/Extensions/Extfann.php9  E^9  eŤ      .   library/Exakat/Analyzer/Extensions/Extvips.php:  E^:  x      .   library/Exakat/Analyzer/Extensions/Extdate.php:  E^:  {+      0   library/Exakat/Analyzer/Extensions/Extsqlsrv.php>  E^>  E      /   library/Exakat/Analyzer/Extensions/Extnsapi.php<  E^<  ,      3   library/Exakat/Analyzer/Extensions/Extzookeeper.phpD  E^D  &      .   library/Exakat/Analyzer/Extensions/Extv8js.php9  E^9  +S      .   library/Exakat/Analyzer/Extensions/Extmath.php:  E^:  7c/      /   library/Exakat/Analyzer/Extensions/Extpcntl.php<  E^<  ץy      5   library/Exakat/Analyzer/Extensions/Exttokyotyrant.phpG  E^G  Ǌ      /   library/Exakat/Analyzer/Extensions/Extmhash.php<  E^<  ٢_Ť      .   library/Exakat/Analyzer/Namespaces/UsedUse.php  E^  rn      5   library/Exakat/Analyzer/Namespaces/NamespaceUsage.php;  E^;  "      >   library/Exakat/Analyzer/Namespaces/UseWithFullyQualifiedNS.php  E^  _      0   library/Exakat/Analyzer/Namespaces/WrongCase.php  E^  )BĤ      5   library/Exakat/Analyzer/Namespaces/AliasConfusion.php  E^  ;d      4   library/Exakat/Analyzer/Namespaces/UnresolvedUse.php  E^  'Y      0   library/Exakat/Analyzer/Namespaces/HiddenUse.php  E^  b      ?   library/Exakat/Analyzer/Namespaces/MultipleAliasDefinitions.php  E^  ݆Z      <   library/Exakat/Analyzer/Namespaces/UseFunctionsConstants.php  E^  [%Oo      0   library/Exakat/Analyzer/Namespaces/UnusedUse.php0  E^0  0	      3   library/Exakat/Analyzer/Namespaces/GlobalImport.php  E^  Ǥ      =   library/Exakat/Analyzer/Namespaces/ConstantFullyQualified.php"  E^"  +      ,   library/Exakat/Analyzer/Namespaces/Alias.php  E^  Ҧ      5   library/Exakat/Analyzer/Namespaces/EmptyNamespace.php  E^  ɓ`      E   library/Exakat/Analyzer/Namespaces/MultipleAliasDefinitionPerFile.phpO  E^O  =2@      4   library/Exakat/Analyzer/Namespaces/CouldUseAlias.phpV  E^V  Akv      6   library/Exakat/Analyzer/Namespaces/Namespacesnames.phpY  E^Y         6   library/Exakat/Analyzer/Namespaces/ShouldMakeAlias.php  E^  Ǥ      -   library/Exakat/Analyzer/Project/IsLibrary.php  E^  U      1   library/Exakat/Analyzer/Common/NamespaceUsage.php  E^  A{      '   library/Exakat/Analyzer/Common/Type.php  E^  Bޤ      5   library/Exakat/Analyzer/Common/ConstantDefinition.php  E^   7      3   library/Exakat/Analyzer/Common/PhpFunctionUsage.php  E^  }ƺ      2   library/Exakat/Analyzer/Common/ClassDefinition.php  E^  e      1   library/Exakat/Analyzer/Common/InterfaceUsage.php
  E^
  1      -   library/Exakat/Analyzer/Common/ClassUsage.php	  E^	  
      -   library/Exakat/Analyzer/Common/WithoutTry.php  E^  7m      5   library/Exakat/Analyzer/Common/FunctionDefinition.php  E^  g@      7   library/Exakat/Analyzer/Common/MultipleDeclarations.php:  E^:  AjΤ      0   library/Exakat/Analyzer/Common/UsedDirective.php  E^  nݰ(      0   library/Exakat/Analyzer/Common/PropertyUsage.php  E^        7   library/Exakat/Analyzer/Common/FunctionDefaultValue.phpT  E^T  aT      6   library/Exakat/Analyzer/Common/InterfaceDefinition.php  E^  Ṽn      -   library/Exakat/Analyzer/Common/TraitUsage.php  E^  52      2   library/Exakat/Analyzer/Common/MethodcallUsage.phpa  E^a  Fդ      5   library/Exakat/Analyzer/Common/ClassConstantUsage.php  E^        /   library/Exakat/Analyzer/Common/IsSubclassOf.php2  E^2  =S      8   library/Exakat/Analyzer/Common/UsesFrameworkFunction.php8  E^8  љ      0   library/Exakat/Analyzer/Common/UsesFramework.php\  E^\  G	-      ,   library/Exakat/Analyzer/Common/Extension.php  E^  o      '   library/Exakat/Analyzer/Common/Slim.php  E^  ŝ      0   library/Exakat/Analyzer/Common/ConstantUsage.phpU  E^U  'Ф      8   library/Exakat/Analyzer/Common/UsesFrameworkConstant.phpC  E^C        0   library/Exakat/Analyzer/Common/FunctionUsage.php  E^  Oji      .   library/Exakat/Analyzer/Common/MethodUsage.php=  E^=  k<ڤ      )   library/Exakat/Analyzer/RulesetsExtra.php  E^  |      &   library/Exakat/Analyzer/Type/Email.php  E^  @)      1   library/Exakat/Analyzer/Type/NoRealComparison.php  E^  yۻ      .   library/Exakat/Analyzer/Type/OpensslCipher.php  E^  7x݈      +   library/Exakat/Analyzer/Type/HttpHeader.php  E^  <Pdͤ      4   library/Exakat/Analyzer/Type/SilentlyCastInteger.phpP  E^P  'l      +   library/Exakat/Analyzer/Type/HttpStatus.php  E^  :      (   library/Exakat/Analyzer/Type/Integer.php  E^  }K      &   library/Exakat/Analyzer/Type/Octal.php`  E^`  
      &   library/Exakat/Analyzer/Type/Regex.php)  E^)  HL      )   library/Exakat/Analyzer/Type/MimeType.php0  E^0  b*ؤ      2   library/Exakat/Analyzer/Type/HexadecimalString.phpH  E^H  IOD      0   library/Exakat/Analyzer/Type/SpecialIntegers.php"  E^"  rT      3   library/Exakat/Analyzer/Type/OneVariableStrings.php  E^  1      +   library/Exakat/Analyzer/Type/CharString.php  E^  \k$      %   library/Exakat/Analyzer/Type/Sapi.php  E^  Pۤ      $   library/Exakat/Analyzer/Type/Sql.php  E^  rO      /   library/Exakat/Analyzer/Type/ShouldTypecast.php  E^  hd`      %   library/Exakat/Analyzer/Type/Path.php3	  E^3	        $   library/Exakat/Analyzer/Type/Url.php  E^  ^L      ,   library/Exakat/Analyzer/Type/Hexadecimal.php  E^  h~Ȥ      *   library/Exakat/Analyzer/Type/Md5String.php  E^  %Ѥ      1   library/Exakat/Analyzer/Type/DuplicateLiteral.phpQ  E^Q  Zδl      '   library/Exakat/Analyzer/Type/Printf.php  E^  ɤ      *   library/Exakat/Analyzer/Type/Protocols.php  E^  &@h      .   library/Exakat/Analyzer/Type/OctalInString.php  E^  ۨ      4   library/Exakat/Analyzer/Type/ShouldBeSingleQuote.php  E^  j      '   library/Exakat/Analyzer/Type/Binary.php  E^  /d      +   library/Exakat/Analyzer/Type/Continents.php  E^  oIۤ      %   library/Exakat/Analyzer/Type/Pack.phpZ  E^Z  mT      &   library/Exakat/Analyzer/Type/Ports.php&  E^&  !      (   library/Exakat/Analyzer/Type/Heredoc.php  E^        -   library/Exakat/Analyzer/Type/UnicodeBlock.php  E^  GFO      4   library/Exakat/Analyzer/Type/StringInterpolation.phpY  E^Y  k      .   library/Exakat/Analyzer/Type/Shellcommands.php  E^  \O      %   library/Exakat/Analyzer/Type/Pcre.php0  E^0  Ф      +   library/Exakat/Analyzer/Type/ArrayIndex.php  E^  "w,r      +   library/Exakat/Analyzer/Type/UdpDomains.php  E^  ض      /   library/Exakat/Analyzer/Type/MalformedOctal.php  E^  {U      '   library/Exakat/Analyzer/Type/Nowdoc.php  E^  <Ԥ      )   library/Exakat/Analyzer/Type/GPCIndex.phpw  E^w  Ҥ      4   library/Exakat/Analyzer/Type/StringHoldAVariable.php  E^  J      7   library/Exakat/Analyzer/Type/StringWithStrangeSpace.phpH  E^H  o      0   library/Exakat/Analyzer/Type/SimilarIntegers.php  E^  \      7   library/Exakat/Analyzer/Variables/VariableUppercase.php  E^  ɍ捻      9   library/Exakat/Analyzer/Variables/AssignedTwiceOrMore.phpg  E^g  ):      8   library/Exakat/Analyzer/Variables/InterfaceArguments.phpB  E^B  8+H      7   library/Exakat/Analyzer/Variables/InconsistentUsage.php  E^  )      1   library/Exakat/Analyzer/Variables/Overwriting.php  E^  /      4   library/Exakat/Analyzer/Variables/LostReferences.php  E^  4Ԥ      ;   library/Exakat/Analyzer/Variables/UndefinedConstantName.php  E^  L$      7   library/Exakat/Analyzer/Variables/VariableOneLetter.php  E^  >      +   library/Exakat/Analyzer/Variables/Blind.php  E^  Ƥ      6   library/Exakat/Analyzer/Variables/VariableUsedOnce.php  E^  @٤      ?   library/Exakat/Analyzer/Variables/VariableUsedOnceByContext.php  E^         6   library/Exakat/Analyzer/Variables/VariableNonascii.php  E^  m      9   library/Exakat/Analyzer/Variables/OverwrittenLiterals.php  E^  ^      2   library/Exakat/Analyzer/Variables/VariableLong.php  E^  NƝ      2   library/Exakat/Analyzer/Variables/LocalGlobals.php  E^  j٤      0   library/Exakat/Analyzer/Variables/References.phpY  E^Y  Ei      3   library/Exakat/Analyzer/Variables/SelfTransform.php  E^  m      <   library/Exakat/Analyzer/Variables/Php5IndirectExpression.php  E^   2Q      -   library/Exakat/Analyzer/Variables/Globals.php  E^  j!R      1   library/Exakat/Analyzer/Variables/StrangeName.phpC  E^C  ܯf      9   library/Exakat/Analyzer/Variables/ComplexDynamicNames.php  E^  6      <   library/Exakat/Analyzer/Variables/Php7IndirectExpression.php  E^  i      4   library/Exakat/Analyzer/Variables/UncommonEnvVar.php  E^  Ay      7   library/Exakat/Analyzer/Variables/VariableVariables.php  E^  =      9   library/Exakat/Analyzer/Variables/WrittenOnlyVariable.php	  E^	  <      1   library/Exakat/Analyzer/Variables/UniqueUsage.php  E^  剹      3   library/Exakat/Analyzer/Variables/RealVariables.phpW  E^W  23      1   library/Exakat/Analyzer/Variables/CloseNaming.php  E^  rN'      5   library/Exakat/Analyzer/Variables/StaticVariables.phpl  E^l  uߤ      7   library/Exakat/Analyzer/Variables/UndefinedVariable.php  E^  T      1   library/Exakat/Analyzer/Variables/VariablePhp.php  E^  5      /   library/Exakat/Analyzer/Arrays/WithCallback.php  E^        7   library/Exakat/Analyzer/Arrays/StringInitialization.phph
  E^h
  AV      -   library/Exakat/Analyzer/Arrays/EmptySlots.php  E^        3   library/Exakat/Analyzer/Arrays/ShouldPreprocess.phpH  E^H  Ȥߤ      3   library/Exakat/Analyzer/Arrays/NonConstantArray.php<  E^<  ij      -   library/Exakat/Analyzer/Arrays/EmptyFinal.php	  E^	  HƤ      0   library/Exakat/Analyzer/Arrays/Phparrayindex.php  E^         /   library/Exakat/Analyzer/Arrays/MassCreation.php  E^  ۤ      :   library/Exakat/Analyzer/Arrays/ArrayBracketConsistence.php	  E^	  X      9   library/Exakat/Analyzer/Arrays/RandomlySortedLiterals.phpS  E^S  s*      -   library/Exakat/Analyzer/Arrays/WeirdIndex.php
  E^
  ɩӤ      2   library/Exakat/Analyzer/Arrays/NoSpreadForHash.php
  E^
        5   library/Exakat/Analyzer/Arrays/GettingLastElement.php	  E^	  N      4   library/Exakat/Analyzer/Arrays/TooManyDimensions.php  E^  ؐ'      /   library/Exakat/Analyzer/Arrays/ArrayNSUsage.phpy  E^y  Өߤ      8   library/Exakat/Analyzer/Arrays/MistakenConcatenation.phpk  E^k  9x      8   library/Exakat/Analyzer/Arrays/MultipleIdenticalKeys.phpA
  E^A
  xu"3      3   library/Exakat/Analyzer/Arrays/Multidimensional.php  E^  ̳k      0   library/Exakat/Analyzer/Arrays/AmbiguousKeys.phpN
  E^N
  "      -   library/Exakat/Analyzer/Arrays/SliceFirst.php|  E^|  T1^      -   library/Exakat/Analyzer/Arrays/Arrayindex.php)	  E^)	  h      ,   library/Exakat/Analyzer/Arrays/MixedKeys.php(  E^(  w<      .   library/Exakat/Analyzer/Arrays/NullBoolean.php  E^  K& E      4   library/Exakat/Analyzer/Files/InclusionWrongCase.php  E^  a      -   library/Exakat/Analyzer/Files/IsCliScript.php1  E^1  BNϤ      *   library/Exakat/Analyzer/Files/Services.php  E^  dY      0   library/Exakat/Analyzer/Files/MissingInclude.php  E^  Kl      0   library/Exakat/Analyzer/Files/GlobalCodeOnly.php  E^        -   library/Exakat/Analyzer/Files/IsComponent.phpo  E^o  H3j      4   library/Exakat/Analyzer/Files/NotDefinitionsOnly.phpS  E^S  b(פ      1   library/Exakat/Analyzer/Files/DefinitionsOnly.phps  E^s  ?(7      <   library/Exakat/Analyzer/Portability/WindowsOnlyConstants.phpX  E^X  QT      1   library/Exakat/Analyzer/Portability/FopenMode.php  E^  q      6   library/Exakat/Analyzer/Portability/LinuxOnlyFiles.php<  E^<  i	      8   library/Exakat/Analyzer/Functions/MismatchedTypehint.php?  E^?  cQѤ      7   library/Exakat/Analyzer/Functions/WrongReturnedType.php$  E^$  $d      7   library/Exakat/Analyzer/Functions/ExceedingTypehint.phpt  E^t  MϤ      :   library/Exakat/Analyzer/Functions/AvoidBooleanArgument.php  E^        7   library/Exakat/Analyzer/Functions/CouldTypeWithBool.php  E^  P      7   library/Exakat/Analyzer/Functions/TooManyParameters.php  E^  2      6   library/Exakat/Analyzer/Functions/BadTypehintRelay.php	  E^	  ܤ      ;   library/Exakat/Analyzer/Functions/GeneratorCannotReturn.php  E^  1      ;   library/Exakat/Analyzer/Functions/CouldTypeWithIterable.phpZ
  E^Z
  ,      <   library/Exakat/Analyzer/Functions/UseConstantAsArguments.phpO!  E^O!  ՠ      8   library/Exakat/Analyzer/Functions/UndefinedFunctions.phpJ  E^J  Ϡ2{      3   library/Exakat/Analyzer/Functions/Functionnames.php  E^  |      7   library/Exakat/Analyzer/Functions/UseArrowFunctions.php  E^  t
?Ĥ      4   library/Exakat/Analyzer/Functions/Closure2String.php  E^  +>      7   library/Exakat/Analyzer/Functions/NoClassAsTypehint.php  E^  !z      8   library/Exakat/Analyzer/Functions/funcGetArgModified.php  E^  k{      5   library/Exakat/Analyzer/Functions/AddDefaultValue.phps  E^s  */:      9   library/Exakat/Analyzer/Functions/CallbackNeedsReturn.php  E^  .C      6   library/Exakat/Analyzer/Functions/CouldTypeWithInt.php  E^  D      7   library/Exakat/Analyzer/Functions/VariableArguments.php  E^  *ς      >   library/Exakat/Analyzer/Functions/MultipleIdenticalClosure.php  E^  *      :   library/Exakat/Analyzer/Functions/CouldBeStaticClosure.php  E^  aͤ      0   library/Exakat/Analyzer/Functions/MustReturn.php(	  E^(	  b      /   library/Exakat/Analyzer/Functions/Recursive.php	  E^	  @%      8   library/Exakat/Analyzer/Functions/HardcodedPasswords.php  E^  ?u%*      /   library/Exakat/Analyzer/Functions/WrongCase.phpF
  E^F
  0lڤ      7   library/Exakat/Analyzer/Functions/WrongTypeWithCall.php  E^  e9      8   library/Exakat/Analyzer/Functions/NeverUsedParameter.php  E^  $Z      >   library/Exakat/Analyzer/Functions/OnlyVariableForReference.php  E^  &-       ;   library/Exakat/Analyzer/Functions/MultipleSameArguments.php_  E^_  滎      3   library/Exakat/Analyzer/Functions/IsExtFunction.php  E^  G      5   library/Exakat/Analyzer/Functions/ParameterHiding.php  E^  bJ      3   library/Exakat/Analyzer/Functions/RelayFunction.php  E^  eФ      9   library/Exakat/Analyzer/Functions/UnusedReturnedValue.phpg  E^g  _"^g      5   library/Exakat/Analyzer/Functions/CouldCentralize.phpL  E^L  U      <   library/Exakat/Analyzer/Functions/WrongOptionalParameter.php  E^  ®      A   library/Exakat/Analyzer/Functions/FunctionCalledWithOtherCase.php  E^  1g      4   library/Exakat/Analyzer/Functions/UselessDefault.php  E^  {      <   library/Exakat/Analyzer/Functions/WrongNumberOfArguments.php?  E^?  J      5   library/Exakat/Analyzer/Functions/UnusedFunctions.phpL  E^L  P?      5   library/Exakat/Analyzer/Functions/UsingDeprecated.php  E^  lbǤ      ;   library/Exakat/Analyzer/Functions/RedeclaredPhpFunction.php  E^        5   library/Exakat/Analyzer/Functions/CouldBeCallable.php  E^  l[      3   library/Exakat/Analyzer/Functions/CouldTypehint.php  E^  Y      6   library/Exakat/Analyzer/Functions/UselessTypeCheck.php	  E^	  U7      :   library/Exakat/Analyzer/Functions/MultipleDeclarations.php}  E^}  Ɓ       9   library/Exakat/Analyzer/Functions/WrongTypehintedName.php  E^         .   library/Exakat/Analyzer/Functions/KillsApp.php  E^  .}      6   library/Exakat/Analyzer/Functions/UnsetOnArguments.php  E^  0x      4   library/Exakat/Analyzer/Functions/SemanticTyping.php	  E^	  q      1   library/Exakat/Analyzer/Functions/DontUseVoid.php  E^  {      4   library/Exakat/Analyzer/Functions/MultipleReturn.php  E^  s/Ϥ      -   library/Exakat/Analyzer/Functions/CantUse.php   E^   ݤ      1   library/Exakat/Analyzer/Functions/IsGenerator.php  E^        A   library/Exakat/Analyzer/Functions/FnArgumentVariableConfusion.php  E^  *s      3   library/Exakat/Analyzer/Functions/RealFunctions.phpR  E^R  _      3   library/Exakat/Analyzer/Functions/WithoutReturn.php  E^  վ8k      :   library/Exakat/Analyzer/Functions/InsufficientTypehint.php  E^  ,㻤      3   library/Exakat/Analyzer/Functions/UselessReturn.php  E^  h      :   library/Exakat/Analyzer/Functions/ConditionedFunctions.php  E^  W      <   library/Exakat/Analyzer/Functions/TypehintMustBeReturned.php  E^  -      9   library/Exakat/Analyzer/Functions/CouldTypeWithString.php"  E^"  &p      2   library/Exakat/Analyzer/Functions/AliasesUsage.php  E^  ׿      1   library/Exakat/Analyzer/Functions/Dynamiccall.php  E^  m#9      3   library/Exakat/Analyzer/Functions/UsedFunctions.php8  E^8  2      3   library/Exakat/Analyzer/Functions/EmptyFunction.php  E^  ɤ      5   library/Exakat/Analyzer/Functions/UnusedArguments.php  E^  8      @   library/Exakat/Analyzer/Functions/MismatchedDefaultArguments.php!  E^!  V}Ѥ      8   library/Exakat/Analyzer/Functions/CouldTypeWithArray.php  E^  ?a]L      7   library/Exakat/Analyzer/Functions/OptionalParameter.php   E^   ג\      C   library/Exakat/Analyzer/Functions/OnlyVariablePassedByReference.phpu  E^u  &,xŤ      C   library/Exakat/Analyzer/Functions/WrongNumberOfArgumentsMethods.phpQ  E^Q  cr      <   library/Exakat/Analyzer/Functions/MismatchTypeAndDefault.php  E^  MQ՜      :   library/Exakat/Analyzer/Functions/NullableWithoutCheck.phpX  E^X  :o      ;   library/Exakat/Analyzer/Functions/NoLiteralForReference.php  E^  5$g٤      .   library/Exakat/Analyzer/Functions/Closures.phpI  E^I  ֏t      >   library/Exakat/Analyzer/Functions/UselessReferenceArgument.phpV  E^V  ]ٹ      8   library/Exakat/Analyzer/Functions/ShouldYieldWithKey.php  E^  B      5   library/Exakat/Analyzer/Functions/MissingTypehint.php	  E^	  _Aդ      8   library/Exakat/Analyzer/Functions/HasFluentInterface.php  E^  6l̤      ;   library/Exakat/Analyzer/Functions/TooManyLocalVariables.phpt  E^t  ~      :   library/Exakat/Analyzer/Functions/UsesDefaultArguments.php  E^  _5s      8   library/Exakat/Analyzer/Functions/ShouldBeTypehinted.phpA
  E^A
  5h      2   library/Exakat/Analyzer/Functions/PrefixToType.php  E^        5   library/Exakat/Analyzer/Functions/UselessArgument.phps  E^s  
HǤ      ;   library/Exakat/Analyzer/Functions/HasNotFluentInterface.php  E^  e      2   library/Exakat/Analyzer/Functions/MarkCallable.php}  E^}  "濤      =   library/Exakat/Analyzer/Functions/UnusedInheritedVariable.php  E^  m      5   library/Exakat/Analyzer/Functions/CouldReturnVoid.php  E^  *Ȥ      /   library/Exakat/Analyzer/Functions/Typehints.php  E^  AA      .   library/Exakat/Analyzer/Functions/IsGlobal.php  E^  %;q      5   library/Exakat/Analyzer/Functions/DeepDefinitions.php  E^  ?a      5   library/Exakat/Analyzer/Functions/TooMuchIndented.phpg  E^g  DdiǤ      8   library/Exakat/Analyzer/Functions/OneLetterFunctions.php  E^        8   library/Exakat/Analyzer/Functions/ShouldUseConstants.php  E^        1   library/Exakat/Analyzer/Functions/LoopCalling.phpl  E^l  m%ݤ      2   library/Exakat/Analyzer/Functions/NoReturnUsed.php~  E^~  i      :   library/Exakat/Analyzer/Functions/TypehintedReferences.phpS  E^S  դ      =   library/Exakat/Analyzer/Functions/FunctionsUsingReference.php  E^  Aת      6   library/Exakat/Analyzer/Functions/FallbackFunction.php  E^  T      8   library/Exakat/Analyzer/Functions/NoBooleanAsDefault.php  E^  z<      7   library/Exakat/Analyzer/Functions/UnbindingClosures.phpz  E^z  Mk      -   library/Exakat/Analyzer/RulesetsInterface.phpY  E^Y  Y)      *   library/Exakat/Analyzer/Psr/Psr13Usage.php+  E^+  /X8      )   library/Exakat/Analyzer/Psr/Psr6Usage.php)  E^)  :^      )   library/Exakat/Analyzer/Psr/Psr7Usage.php)  E^)  4l|      *   library/Exakat/Analyzer/Psr/Psr11Usage.php+  E^+  6      *   library/Exakat/Analyzer/Psr/Psr16Usage.php+  E^+        )   library/Exakat/Analyzer/Psr/Psr3Usage.php)  E^)  <=      2   library/Exakat/Analyzer/Typehints/CouldBeArray.phpP  E^P  \      0   library/Exakat/Analyzer/Typehints/CouldBeCIT.php  E^  ){      4   library/Exakat/Analyzer/Typehints/CouldBeBoolean.php,  E^,  
      3   library/Exakat/Analyzer/Typehints/CouldBeString.php9  E^9  uK      1   library/Exakat/Analyzer/Typehints/CouldBeVoid.php  E^  @:!      2   library/Exakat/Analyzer/Typehints/CouldNotType.php`  E^`  {Ϥ      5   library/Exakat/Analyzer/Modules/NativeReplacement.php%  E^%  ƨ      3   library/Exakat/Analyzer/Modules/DefinedProperty.php  E^   $lc      1   library/Exakat/Analyzer/Modules/DefinedTraits.php  E^  |<P      0   library/Exakat/Analyzer/Modules/IncomingData.php  E^  ]Dۤ      2   library/Exakat/Analyzer/Modules/DefinedClasses.php  E^  Dפ      4   library/Exakat/Analyzer/Modules/DefinedFunctions.php  E^  +Ϥ      2   library/Exakat/Analyzer/Modules/CalledByModule.php&  E^&  e`_+      5   library/Exakat/Analyzer/Modules/DefinedInterfaces.php  E^  w<      2   library/Exakat/Analyzer/Modules/DefinedMethods.php  E^        9   library/Exakat/Analyzer/Modules/DefinedClassConstants.php  E^        2   library/Exakat/Analyzer/Modules/IncomingValues.php  E^  ,1Վ      )   library/Exakat/Analyzer/Custom/readme.txt%   E^%   	NHN      '   library/Exakat/Analyzer/RulesetsDev.php  E^  Lr      >   library/Exakat/Analyzer/Interfaces/AlreadyParentsInterface.php  E^  +Ť      5   library/Exakat/Analyzer/Interfaces/EmptyInterface.phpn  E^n  Rvt      5   library/Exakat/Analyzer/Interfaces/InterfaceUsage.phpj  E^j  &ᤤ      8   library/Exakat/Analyzer/Interfaces/RepeatedInterface.php'  E^'  dry      9   library/Exakat/Analyzer/Interfaces/ConcreteVisibility.php  E^  :g      ;   library/Exakat/Analyzer/Interfaces/AvoidSelfInInterface.php'  E^'  î      5   library/Exakat/Analyzer/Interfaces/IsExtInterface.php  E^  .B      D   library/Exakat/Analyzer/Interfaces/NoGaranteeForPropertyConstant.php  E^  }      8   library/Exakat/Analyzer/Interfaces/UselessInterfaces.phpK  E^K  dn      6   library/Exakat/Analyzer/Interfaces/InterfaceMethod.php{  E^{  K2s      8   library/Exakat/Analyzer/Interfaces/CouldUseInterface.php  E^  -xv      :   library/Exakat/Analyzer/Interfaces/UndefinedInterfaces.php
  E^
  v<.      5   library/Exakat/Analyzer/Interfaces/Interfacenames.phpX  E^X  *y:      7   library/Exakat/Analyzer/Interfaces/UnusedInterfaces.php  E^  eZ8      ?   library/Exakat/Analyzer/Interfaces/CantImplementTraversable.php  E^  8      9   library/Exakat/Analyzer/Interfaces/PossibleInterfaces.php  E^  '      *   library/Exakat/Analyzer/Interfaces/Php.phpd  E^d  
      7   library/Exakat/Analyzer/Interfaces/IsNotImplemented.php  E^  ۤ      5   library/Exakat/Analyzer/Interfaces/UsedInterfaces.php  E^  ^          library/Exakat/Reports/Top10.php  E^  b      #   library/Exakat/Reports/Topology.php@  E^@  UN#̤      !   library/Exakat/Reports/Grade.yamlh  E^h  FV=      %   library/Exakat/Reports/Exakatyaml.php@	  E^@	  (O|      %   library/Exakat/Reports/Codeflower.phpW  E^W  +      "   library/Exakat/Reports/Perfile.php1	  E^1	  ʼe      $   library/Exakat/Reports/Emissary.yaml6  E^6  e"      "   library/Exakat/Reports/Phpcity.php1  E^1  	      !   library/Exakat/Reports/Weekly.phpC  E^C  ԃo      '   library/Exakat/Reports/Typehint4all.php  E^  $      &   library/Exakat/Reports/Codesniffer.php  E^  o      '   library/Exakat/Reports/Migration74.yaml  E^  \O          library/Exakat/Reports/.DS_Store  E^  $U      &   library/Exakat/Reports/Scrutinizer.phpY  E^Y  	7B      &   library/Exakat/Reports/Simpletable.phpq  E^q  g         library/Exakat/Reports/Json.php
  E^
  5Az      '   library/Exakat/Reports/ClassReview.yaml  E^  d      (   library/Exakat/Reports/Exakatvendors.php  E^  N-      "   library/Exakat/Reports/Reports.php  E^  8G0      *   library/Exakat/Reports/Dependencywheel.php  E^  R      &   library/Exakat/Reports/Ambassador.yamlE  E^E  Ƥ         library/Exakat/Reports/Sarb.php  E^  Sq$         library/Exakat/Reports/All.php  E^  G83K          library/Exakat/Reports/Grade.php15  E^15  ۄ)      '   library/Exakat/Reports/Migration73.yaml  E^  \ Q          library/Exakat/Reports/Owasp.php~Q  E^~Q  a      !   library/Exakat/Reports/Meters.php  E^  !(      &   library/Exakat/Reports/Facetedjson.php  E^  Գe      &   library/Exakat/Reports/BeautyCanon.php  E^  +m      #   library/Exakat/Reports/Marmelab.phpy  E^y  Ga         library/Exakat/Reports/Xml.php  E^  Ԥ      $   library/Exakat/Reports/Circlevis.phpp  E^p  .N      &   library/Exakat/Reports/Typechecks.yaml  E^  ǐ      &   library/Exakat/Reports/ClassReview.php  E^        %   library/Exakat/Reports/Phpcsfixer.php_  E^_  	Q      "   library/Exakat/Reports/Section.php  E^  aݤ      ,   library/Exakat/Reports/Classdependencies.php  E^  L3      %   library/Exakat/Reports/Simplehtml.php  E^  gĤ      !   library/Exakat/Reports/Rector.php  E^  P      &   library/Exakat/Reports/Migration73.php  E^  w<Q          library/Exakat/Reports/Stats.php  E^  w2=      &   library/Exakat/Reports/Onepagejson.php	  E^	   ֤      "   library/Exakat/Reports/History.php  E^  Ob      %   library/Exakat/Reports/Ambassador.phpI
  E^I
  >t      #   library/Exakat/Reports/Composer.php  E^  ֻ      #   library/Exakat/Reports/Diplomat.php  E^  8Ƥ      #   library/Exakat/Reports/Plantuml.php(  E^(  sw      !   library/Exakat/Reports/Top10.yaml  E^  3	Ƥ      *   library/Exakat/Reports/Drillinstructor.php  E^  Zؤ      +   library/Exakat/Reports/Ambassadornomenu.php  E^  6      +   library/Exakat/Reports/Filedependencies.php  E^  g`P      $   library/Exakat/Reports/Diplomat.yaml  E^  "      !   library/Exakat/Reports/Manual.phpB  E^B  $      +   library/Exakat/Reports/Phpconfiguration.php  E^  .%      &   library/Exakat/Reports/Migration74.php  E^  Fy       !   library/Exakat/Reports/Owasp.yaml  E^  G      $   library/Exakat/Reports/Dailytodo.php  E^        #   library/Exakat/Reports/Emissary.php E^ jϒ      /   library/Exakat/Reports/Filedependencieshtml.php  E^  YZ$      $   library/Exakat/Reports/StubsJson.php4!  E^4!  T         library/Exakat/Reports/Yaml.php*  E^*  K:H          library/Exakat/Reports/Stubs.php$  E^$  Ǥ         library/Exakat/Reports/Uml.php  E^  2ܤ      "   library/Exakat/Reports/Weekly.yaml7  E^7  2         library/Exakat/Reports/None.phpy  E^y  t2      '   library/Exakat/Reports/Dependencies.phpp,  E^p,  za      )   library/Exakat/Reports/TypeSuggestion.php  E^  W      $   library/Exakat/Reports/Favorites.php  E^  t"      %   library/Exakat/Reports/Typechecks.php  E^  Ig      $   library/Exakat/Reports/Data/Data.php  E^  v8b$      '   library/Exakat/Reports/Data/Appinfo.phpfo  E^fo  }      +   library/Exakat/Reports/Data/CloseNaming.php  E^  :x,      +   library/Exakat/Reports/Drillinstructor.yamlr  E^r  {      ,   library/Exakat/Reports/Ambassadornomenu.yaml@  E^@  ڤ      )   library/Exakat/Reports/Clustergrammer.phpk  E^k  l0      &   library/Exakat/Reports/Helpers/Dot.phpD  E^D  8      *   library/Exakat/Reports/Helpers/Results.php  E^  (      .   library/Exakat/Reports/Helpers/PhpCodeTree.php  E^  Q      ,   library/Exakat/Reports/Helpers/Highchart.php^  E^^  Ԥ      '   library/Exakat/Reports/Helpers/Docs.phpx  E^x  k%ɤ      &   library/Exakat/Reports/Inventories.php  E^  4̤      )   library/Exakat/Reports/Phpcompilation.php  E^  :      &   library/Exakat/Reports/Radwellcode.phpX  E^X  /         library/Exakat/Reports/Text.php   E^   w         library/Exakat/Phpexec.php9G  E^9G  Mb         library/helpers.phpJ  E^J  4H         data/directives/filter.json  E^  _         data/directives/fileupload.json  E^  ْ      &   data/directives/disable_functions.json  E^  -oV         data/directives/curl.json   E^   5         data/directives/date.json   E^   =qI         data/directives/ldap.json   E^   C#H         data/directives/session.json  E^  齄         data/directives/bcmath.json   E^   u|R         data/directives/apache.jsonB  E^B  8Z@         data/directives/errorlog.jsoni  E^i  I         data/directives/pdo.json   E^   '         data/directives/pcre.json   E^   hD         data/directives/trader.json   E^   i         data/directives/xcache.json4  E^4  Gb         data/directives/openssl.json   E^    פ         data/directives/file.json  E^  IƤ         data/directives/opcache.jsonz  E^z  %=         data/directives/mbstring.jsone  E^e  Y         data/directives/mailparse.json   E^   	         data/directives/env.json   E^   nj         data/directives/imagick.json   E^   OОf         data/directives/apc.json7  E^7  B螤         data/directives/amqp.json  E^  )g*         data/directives/assertion.jsonY  E^Y  bK         data/directives/mail.json  E^  <_         data/directives/sqlite3.json   E^   r"         data/directives/ob.jsonw  E^w  t         data/directives/pgsql.json   E^   !.F         data/directives/enable_dl.json   E^   U         data/directives/sqlite.json   E^   ^O         data/directives/com.json9  E^9  wȿ         data/directives/mongo.json)  E^)  kw         data/directives/dba.jsong   E^g   cL         data/directives/standard.json:  E^:  4sl      !   data/directives/eaccelerator.jsont  E^t  ~ʇ         data/directives/intl.json  E^  [{y         data/directives/browscap.json   E^   +@         data/directives/geoip.json;  E^;  nD         data/directives/wincache.json  E^  6w         data/directives/ibase.json%  E^%  H         data/odbc.ini
  E^
           data/ast.inip  E^p  ҧr         data/sqlKeywords.inib   E^b   ͤ         data/pgsql.ini  E^  >_         data/swoole.ini  E^  Ѝ         data/imap.ini  E^  H֤         data/externallibraries.json$  E^$   r         data/sqlite.iniW	  E^W	  U         data/iis.ini  E^   )         data/mongodb.ini=  E^=  lù         data/extraWords.txt
  E^
  ^         data/gearman.inii  E^i  !=         data/proctitle.ini   E^   9n         data/methods.sqlite 4 E^ 4 Ӷ         data/ob.ini  E^  L         data/wp_private_functions.ini  E^  ct)         data/csprng.ini   E^            data/mime_types.ini   E^   r9         data/errorMessageFunctions.ini  E^  z         data/recode.ini   E^   8	         data/gender.ini|   E^|   zWd         data/disable_functions.ini	  E^	  "Ta         data/weirdSpaces.ini  E^  ~Vl         data/zendf.sqlite  E^  n         data/vendors/laravel.inie   E^e   Oj         data/vendors/codeigniter.ini  E^  PА         data/vendors/typo3.init   E^t   h<         data/vendors/wordpress.iniY  E^Y  KL         data/vendors/yii.ini   E^   .         data/vendors/drupal.iniH   E^H   ZǤ         data/vendors/phalcon.iniI   E^I   h         data/vendors/joomla.iniX  E^X  ר         data/vendors/fuel.iniF   E^F   b         data/vendors/ez.iniD   E^D   a         data/vendors/concrete5.inim   E^m   '         data/vendors/symfony.inic   E^c   ~w         data/php_unittest.inik  E^k  8.~         data/deprecated.inih  E^h  ^Z         data/zendmonitor.ini  E^  ʁ6ɤ         data/weakref.ini   E^   )	m         data/wasm.ini  E^  p$         data/php_classes.ini\  E^\           data/php_strange_names.inia  E^a  5K]         data/decimal.ini   E^   <u         data/protocols.json3  E^3  14Ȥ         data/php_incoming.ini   E^   $         data/ftp.ini  E^  2         data/fileinfo.ini-  E^-  H         data/soap.ini
  E^
  N      '   data/php_may_return_boolean_or_zero.ini  E^  芋         data/composer.sqlite A E^ A Bb         data/Continents_en.ini  E^  a          data/.DS_Store  E^  j m         data/zlib.ini  E^  ~         data/imagick.iniE  E^E  3e         data/php_no_extension.ini   E^   cX         data/eio.ini  E^  ޱ         data/lzf.ini   E^   ]         data/mssql.ini,  E^,  ,         data/enchant.ini{  E^{  Ӥ         data/NotHash.ini E^ ZfC         data/slim.sqlite   E^   ׹mO         data/pcre.ini  E^  0դ         data/drupal.sqlite ` E^ ` o_         data/php_argument_port.ini E^ 82         data/native_replacement.json   E^   C         data/php_functions.ini<  E^<  :,         data/php_keywords.ini  E^  Lf          data/php_interfaces_methods.json  E^  r         data/uopz.ini  E^  fY@n         data/Files2OS.ini   E^   Z          data/shmop.ini   E^   P         data/dom.ini  E^  r         data/sqlsrv.ini  E^  uP}         data/functions_minus_one.ini  E^  h         data/zmq.ini   E^   Pƒ         data/php_interfaces.ini(  E^(  v❱         data/ffmpeg.ini1  E^1  h         data/php_filenames_arg.jsonL  E^L  ;Wͤ         data/redis.ini   E^   ~+         data/calendar.ini  E^  6Dm         data/inotify.iniy  E^y  s@4         data/filter.ini`  E^`  zt         data/runkit.ini  E^  Ф         data/iconv.ini4  E^4  ,͵         data/ctype.ini}  E^}  z         data/cairo.ini7  E^7  $         data/php_prints.ini  E^  H         data/sqlite3.ini  E^  m-         data/tokenizer.iniA  E^A  j         data/aliases.inij  E^j  Ҥ         data/shouldDisableFunction.json  E^  s?{}         data/xdebug.ini	  E^	  B#         data/lapack.ini   E^   !st         data/environment_vars.iniu   E^u   #a         data/pear.iniF  E^F  ʤ      &   data/security_vulnerable_functions.iniK  E^K  ˬS         data/mysqli.ini  E^  ]         data/libsodium.ini  E^  Qkk٤         data/parle.ini  E^  ZP         data/php_web_variables.ini}   E^}   ⺤         data/com.iniz	  E^z	  oIj         data/resource_creation.ini`  E^`  5+         data/ports.ini(  E^(  6         data/yaml.ini  E^  #.B         data/php_distribution_53.inie  E^e  {!         data/audit_names.ini)Y  E^)Y  aߤ         data/ds.inig  E^g  M         data/memcached.iniZ  E^Z           data/php7_relaxed_keyword.ini  E^  e*         data/gnupg.ini  E^  b         data/configure.json  E^  O         data/simplexml.ini   E^            data/xxtea.ini   E^   |         data/xmlreader.json5  E^5  ,i         data/php_scalar_types.ini   E^   &?         data/wikidiff2.ini   E^            data/hash_length.jsonW  E^W  GmG         data/string.ini  E^  .         data/xhprof.iniB  E^B  y3         data/php_variables.ini@  E^@  	         data/thankyou.ini\  E^\  ަ뭤         data/posix.iniJ  E^J           data/mbstring_encodings.iniy  E^y  ]         data/zbarcode.ini   E^   .a<         data/ev.iniu  E^u  p         data/zookeeper.ini  E^  ѼnŤ         data/exif.ini  E^  op         data/unicode_blocks.json  E^  z^         data/stats.ini	  E^	  ލi         data/ldap.ini  E^  )         data/snmp.iniP  E^P  N	퓤         data/sphinx.ini3  E^3  阤         data/openssl.ini  E^  rd         data/hash_algos.iniq  E^q   ᮹         data/gmp.ini  E^  IF%         data/ignore_files.ini  E^  Rj         data/fpm.ini   E^   Kt         data/xattr.iniM  E^M  gh         data/xmlwriter.json  E^  !5         data/xcache.ini  E^  U         data/vips.ini  E^  ס         data/dio.iniK  E^K  P@         data/zendf2.sqlite P E^ P =         data/gettext.ini_  E^_  }         data/fann.ini   E^   $ˤ         data/msgpack.ini  E^           data/license.inia   E^a   ;I         data/owasp.top10.jsonp  E^p           data/eaccelerator.ini  E^  ٳ         data/date.ini9  E^9  tvI         data/mysql.ini  E^  ZS         data/math.iniw  E^w  DÁ         data/v8js.iniB  E^B  T         data/password.ini  E^  0         data/sem.ini  E^  !         data/php_traits.ini   E^   }         data/apache.iniO  E^O  ʦ         data/ibase.inif  E^f  $         data/judy.ini   E^   S         data/fdf.ini  E^  ܤ         data/mongo.ini@  E^@  1?(         data/spl.ini@  E^@  i۬         data/rar.iniG  E^G  /         data/php_logins.jsone  E^e  wr         data/yis.ini,  E^,  B         data/phpcsfixer.json  E^  CS]         data/kdm5.ini  E^  Q         data/xml.inih  E^h  ֤         data/reflection.ini  E^  Ƣ         data/pcov.ini$  E^$  U         data/http.ini  E^  oP         data/directives.ini?t  E^?t  8b9         data/special_ip.ini   E^    Ѥ         data/readline.iniN  E^N  ^+         data/curl.ini=  E^=  A/         data/throw_exceptions.json!  E^!  /-Dv         data/seaslog.ini3  E^3  Hڞ         data/trader.ini@  E^@  k         data/phalcon.ini3  E^3  l         data/resource_usage.json  E^  a         data/tokyotyrant.ini   E^   L̤         data/debug.inia  E^a  eѠ         data/intl.ini)  E^)  z¤         data/php_superglobals.ini   E^   $         data/grpc.ini  E^  u]a         data/session.ini  E^  W)Ĥ         data/wincache.ini  E^  }         data/gd.ini&  E^&           data/NoDirectUsage.ini   E^   [g         data/tidy.ini  E^  z$ߤ         data/file.inir  E^r  bin         data/ereg.ini   E^   QK         data/rdkafka.ini  E^  ~uM         data/incoming_data.json   E^   C         data/hrtime.ini   E^            data/SpecialIntegers.ini	  E^	  dw         data/wddx.ini  E^  W^M         data/ffi.ini   E^            data/pspell.ini  E^  V         data/async.ini  E^  YN         data/mbstring.ini  E^  N         data/sdl.ini  E^  Xi         data/libevent.ini  E^  
         data/uuid.iniM  E^M  
          data/php_constants.iniEb  E^Eb           data/ming.ini<  E^<  v         data/suhosin.ini:  E^:  <ǌ         data/apcu.ini  E^           data/sockets.ini,  E^,  \U˞         data/array.ini  E^  X         data/cmark.ini  E^           data/xmlrpc.inir  E^r  f         data/varnish.inir  E^r  pM         data/newt.inin  E^n  H#         data/mcrypt.inib  E^b  3g         data/psr/psr-11.json  E^           data/psr/psr-16.json	  E^	  ݿǤ         data/psr/psr-7.json^[  E^^[  m,         data/psr/psr-6.json  E^  *F         data/psr/psr-3.json~  E^~  EL         data/psr/psr-13.json  E^  .o         data/igbinary.ini  E^  p*         data/amqp.ini  E^  <ݤ         data/bcmath.ini.  E^.  Bj7         data/function_to_oop.ini	R  E^	R  qM         data/mail.ini   E^   2         data/bzip2.iniB  E^B  m7         data/constant_usage.ini  E^  $F?         data/php_reserved_types.ini   E^   E7         data/mailer.ini   E^            data/http_headers.ini  E^  I         data/ncurses.ini>$  E^>$  ݤ         data/xdiff.ini  E^  n1v         data/db2.ini  E^  هX
         data/zip.ini  E^  P<         data/php_with_callback.ini	  E^	  V         data/libxml.ini~  E^~  w         data/php_exception.ini`  E^`  e:         data/php_sapi.ini  E^  2p         data/memcache.ini$  E^$  7V         data/json.ini  E^  }ƕ         data/geoip.iniX  E^X  <         data/php_safe.ini   E^   wE         data/password_keys.json  E^  ,x4         data/svm.ini   E^   n~q         data/standard.iniH  E^H  S3^         data/dba.ini  E^  &s         data/phar.ini   E^   K         data/nsapi.ini   E^   6U,q         data/hash.ini  E^  ],         data/opencensus.inih  E^h  g         data/php_manual_values.json  E^           data/analyzers.sqlite  E^  'qߤ         data/spip/_dist.iniH  E^H  N         data/HttpStatus.ini  E^  C         data/lua.inij  E^j  X6         data/htmlentities_constants.ini\  E^\  L         data/serviceConfig.json#  E^#  VL         data/mhash.ini  E^  (Ž         data/pcntl.iniC  E^C  nM8         data/parsekit.ini  E^  \         data/zendf3.sqlite  E^  7         data/php_internet_domains.ini  E^  i         data/pdo.ini   E^   n h         data/displayFunctions.ini   E^   %         data/php_handlers.ini   E^   w&0         data/info.ini  E^  vޣ         data/ssh2.ini  E^  /i۪          data/php_constant_arguments.json/#  E^/#  /ؤ         data/crypto.ini  E^  o4         data/opcache.ini@  E^@  lu         data/oci8.ini  E^  k         data/expect.ini.  E^.  zܤ         data/apc.ini  E^  <         data/leveldb.ini  E^           data/cakephp.sqlite   E^            data/psr.ini  E^  s         data/libraries.sqlite    E^    %9         data/cyrus.ini  E^  f<ۤ         data/php_magic_methods.ini  E^  Q         data/gmagick.ini   E^   c         data/mailparse.ini  E^  :j         data/fam.iniJ  E^J  z'         data/event.ini  E^  5pj         data/php_directives.ini}  E^}  ڔ~         data/xsl.ini|  E^|  A         human/.DS_Store   E^   u      *   human/en/Performances/MemoizeMagicCall.ini  E^  v[\       '   human/en/Performances/UseArraySlice.ini  E^  +G      &   human/en/Performances/SimpleSwitch.ini  E^  pKvV      )   human/en/Performances/timeVsstrtotime.ini$  E^$  :      %   human/en/Performances/SubstrFirst.ini  E^        )   human/en/Performances/DoubleArrayFlip.ini]  E^]  _      2   human/en/Performances/CacheVariableOutsideLoop.ini  E^   פ      "   human/en/Performances/DoInBase.iniT  E^T  +:q      %   human/en/Performances/UseBlindVar.iniI  E^I  y      "   human/en/Performances/JoinFile.ini  E^  #Ԥ      +   human/en/Performances/FetchOneRowFormat.ini4  E^4  M      /   human/en/Performances/ArrayKeyExistsSpeedup.ini  E^  b      &   human/en/Performances/NotCountNull.ini  E^  2"Ǥ      $   human/en/Performances/CsvInLoops.ini  E^        '   human/en/Performances/SlowFunctions.ini  E^  EX?      -   human/en/Performances/PHP7EncapsedStrings.iniD  E^D  9ɤ      *   human/en/Performances/PrePostIncrement.iniP  E^P  ;      *   human/en/Performances/RegexOnCollector.ini  E^  Sቤ          human/en/Performances/NoGlob.ini
  E^
  0Ǥ      -   human/en/Performances/Php74ArrayKeyExists.ini  E^  j      '   human/en/Performances/RegexOnArrays.ini  E^  f8-      *   human/en/Performances/LogicalToInArray.inin  E^n  Br      '   human/en/Performances/StrposTooMuch.iniB  E^B  m      (   human/en/Performances/MbStringInLoop.ini  E^  󤚤      +   human/en/Performances/ArrayMergeInLoops.ini  E^  Nv      (   human/en/Performances/NoConcatInLoop.ini]	  E^]	        )   human/en/Performances/IssetWholeArray.ini  E^  'cy      $   human/en/Performances/Autoappend.ini  E^  M      %   human/en/Performances/MakeOneCall.ini  E^        (   human/en/Performances/AvoidArrayPush.ini  E^  d         human/en/Vendors/Laravel.iniH  E^H  lQN          human/en/Vendors/Codeigniter.ini  E^  l1         human/en/Vendors/Typo3.ini  E^  ]         human/en/Vendors/Wordpress.ini  E^  +ۤ         human/en/Vendors/Yii.ini  E^  =3          human/en/Vendors/Drupal.inif  E^f  ;n9         human/en/Vendors/Phalcon.inio  E^o  r         human/en/Vendors/Joomla.ini  E^  yf         human/en/Vendors/Fuel.ini  E^  o          human/en/Vendors/Ez.ini  E^  :_         human/en/Vendors/Concrete5.ini  E^  cK         human/en/Vendors/Symfony.ini  E^  5?      %   human/en/Dump/DereferencingLevels.ini  E^  1      '   human/en/Dump/CollectPropertyCounts.ini)  E^)  BS76      )   human/en/Dump/ParameterArgumentsLinks.ini  E^        "   human/en/Dump/TypehintingStats.ini  E^         (   human/en/Dump/CollectParameterCounts.ini  E^  yfb      &   human/en/Dump/CyclomaticComplexity.ini  E^        (   human/en/Dump/EnvironnementVariables.ini  E^  oO      #   human/en/Dump/CollectClassDepth.ini
  E^
  y      -   human/en/Dump/CollectClassInterfaceCounts.ini$  E^$        (   human/en/Dump/CollectForeachFavorite.ini  E^  M      ,   human/en/Dump/CollectClassConstantCounts.ini  E^  M W      *   human/en/Dump/CollectMbstringEncodings.ini!  E^!  9	o      !   human/en/Dump/CollectLiterals.ini  E^  g         human/en/Dump/Inclusions.ini  E^  J={         human/en/Dump/TypehintOrder.ini  E^  S¤         human/en/Dump/NewOrder.ini  E^  S         human/en/Dump/ConstantOrder.inil  E^l  @!      ,   human/en/Dump/CollectLocalVariableCounts.ini  E^  VO-      #   human/en/Dump/IndentationLevels.ini  E^  aҝ      &   human/en/Dump/EnvironmentVariables.ini  E^  ѝX      %   human/en/Dump/CollectMethodCounts.iniG  E^G  N      &   human/en/Dump/CollectClassChildren.iniN  E^N           human/en/.DS_Store8  E^8  4      )   human/en/Patterns/CourrierAntiPattern.ini  E^  ^/      )   human/en/Patterns/DependencyInjection.ini  E^  I         human/en/Patterns/Factory.ini  E^  s*          human/en/Structures/NotEqual.ini-  E^-  ˤ      -   human/en/Structures/ArrayMergeAndVariadic.ini  E^  ]vP      $   human/en/Structures/UnusedGlobal.ini  E^        1   human/en/Structures/NoChangeIncomingVariables.ini  E^  #@      +   human/en/Structures/TimestampDifference.ini  E^  ܤ      %   human/en/Structures/RepeatedRegex.ini  E^  6h      %   human/en/Structures/StrposCompare.ini  E^  |er      "   human/en/Structures/WrongRange.iniv  E^v  x	      &   human/en/Structures/EchoWithConcat.iniZ  E^Z  ^_      ,   human/en/Structures/SwitchWithoutDefault.ini[  E^[  '      .   human/en/Structures/ArrayMergeWithEllipsis.ini  E^  b      !   human/en/Structures/LoneBlock.ini
  E^
  `Ȣ      +   human/en/Structures/MultipleDefinedCase.ini`  E^`  uC      "   human/en/Structures/SimplePreg.ini  E^  D=k      !   human/en/Structures/FileUsage.ini|  E^|  ao      &   human/en/Structures/NoNeedGetClass.ini  E^  nqs      ,   human/en/Structures/UseUrlQueryFunctions.ini#  E^#  iYh      )   human/en/Structures/IssetWithConstant.iniM  E^M  BKff      &   human/en/Structures/UselessCasting.ini  E^  ֤      #   human/en/Structures/UnusedLabel.ini  E^  (      /   human/en/Structures/PrintWithoutParenthesis.ini  E^  B      #   human/en/Structures/NegativePow.ini  E^  H9      #   human/en/Structures/UseConstant.ini  E^  Q
|      '   human/en/Structures/BreakNonInteger.ini~  E^~  1X      *   human/en/Structures/ComparedComparison.ini%  E^%  [      (   human/en/Structures/UseCoalesceEqual.ini  E^  P         human/en/Structures/AddZero.ini}  E^}        (   human/en/Structures/ImplodeArgsOrder.ini  E^  BC      %   human/en/Structures/NestedTernary.iniR  E^R  !P      !   human/en/Structures/ExitUsage.ini	  E^	  ڋ      &   human/en/Structures/GlobalInGlobal.init  E^t  $t      %   human/en/Structures/MultipleCatch.inij  E^j  wGt      %   human/en/Structures/MultipleUnset.ini  E^  m{      %   human/en/Structures/CastToBoolean.ini  E^  7	      !   human/en/Structures/ElseUsage.ini  E^        #   human/en/Structures/ModernEmpty.ini  E^  *       #   human/en/Structures/Fallthrough.ini  E^  طޤ      )   human/en/Structures/UseArrayFunctions.ini  E^  qh      &   human/en/Structures/SwitchToSwitch.ini  E^  g      '   human/en/Structures/DontBeTooManual.ini$  E^$  3      #   human/en/Structures/CouldBeElse.ini<	  E^<	  I.      /   human/en/Structures/BooleanStrictComparison.ini;  E^;  s¬      3   human/en/Structures/McryptcreateivWithoutOption.ini  E^  
:a      &   human/en/Structures/VariableGlobal.ini  E^  
8      +   human/en/Structures/ConstDefineFavorite.inig  E^g  a2      #   human/en/Structures/NoSubstrOne.inib  E^b        "   human/en/Structures/NamedRegex.ini	  E^	  b\      1   human/en/Structures/InconsistentConcatenation.ini  E^  g.5      #   human/en/Structures/ConcatEmpty.inia  E^a  Q      )   human/en/Structures/InvalidPackFormat.ini"  E^"        *   human/en/Structures/DontChangeBlindKey.ini  E^  "gC      *   human/en/Structures/UseListWithForeach.ini	  E^	  KW      ,   human/en/Structures/UsePositiveCondition.ini  E^  ЎCo      $   human/en/Structures/IncludeUsage.iniB  E^B  Ϥ      *   human/en/Structures/UncheckedResources.ini  E^  :@      +   human/en/Structures/ForWithFunctioncall.ini*  E^*  ߵ      '   human/en/Structures/DirectlyUseFile.inim  E^m  Eq      &   human/en/Structures/ResourcesUsage.iniq  E^q        ,   human/en/Structures/CatchShadowsVariable.ini5  E^5  X      $   human/en/Structures/UselessUnset.ini  E^  h      $   human/en/Structures/InvalidRegex.ini  E^  qK      )   human/en/Structures/UseCountRecursive.ini  E^  #u      *   human/en/Structures/ResultMayBeMissing.ini  E^  W_w      #   human/en/Structures/NestedLoops.ini  E^        %   human/en/Structures/ListOmissions.ini  E^  k      !   human/en/Structures/ImpliedIf.ini  E^  ;Q      '   human/en/Structures/FileUploadUsage.ini  E^  y      #   human/en/Structures/GlobalUsage.ini5  E^5  쌤      %   human/en/Structures/MultiplyByOne.inio  E^o  HYA      5   human/en/Structures/OneDotOrObjectOperatorPerLine.inix  E^x  =g      (   human/en/Structures/AutoUnsetForeach.ini$  E^$  2+      7   human/en/Structures/DontReadAndWriteInOneExpression.inip  E^p  <sz      )   human/en/Structures/UnknownPregOption.inih  E^h  	       )   human/en/Structures/ContinueIsForLoop.iniF
  E^F
  tB"      %   human/en/Structures/ReuseVariable.iniG  E^G        $   human/en/Structures/DirThenSlash.ini  E^  y          human/en/Structures/UseDebug.ini  E^  \      $   human/en/Structures/UseCaseValue.ini  E^  Ь      )   human/en/Structures/AssigneAndCompare.ini  E^  I9      %   human/en/Structures/UselessGlobal.ini  E^  <      1   human/en/Structures/SwitchWithMultipleDefault.ini  E^  1a      0   human/en/Structures/ConstantScalarExpression.ini,  E^,  7el      &   human/en/Structures/GtOrLtFavorite.ini  E^  Ip0      &   human/en/Structures/UnsetInForeach.ini  E^  ~JR      '   human/en/Structures/DereferencingAS.ini  E^  j:      ,   human/en/Structures/EchoPrintConsistance.ini$  E^$  ͞`      %   human/en/Structures/NextMonthTrap.ini[  E^[  ,9Ĥ      (   human/en/Structures/RandomWithoutTry.ini:  E^:         %   human/en/Structures/ShouldUseMath.ini  E^  m      0   human/en/Structures/NonBreakableSpaceInNames.ini  E^  n=z      '   human/en/Structures/ReturnTrueFalse.ini  E^  h	      $   human/en/Structures/TestThenCast.ini  E^  %          human/en/Structures/NoChoice.ini  E^  Is٤      ,   human/en/Structures/UnconditionLoopBreak.ini
  E^
  Q      .   human/en/Structures/VariableMayBeNonGlobal.ini  E^  @8t      &   human/en/Structures/BasenameSuffix.inio  E^o  ~1      &   human/en/Structures/CastingTernary.ini  E^  4A          human/en/Structures/SetAside.ini  E^  #R,X      !   human/en/Structures/EvalUsage.ini	  E^	  vMɤ      !   human/en/Structures/CheckJson.ini  E^  YuѤ      ,   human/en/Structures/FunctionSubscripting.ini~  E^~  ū      -   human/en/Structures/IndicesAreIntOrString.ini  E^  eh      *   human/en/Structures/ForeachSourceValue.inih	  E^h	  cf}      )   human/en/Structures/MismatchedTernary.iniK  E^K  j      +   human/en/Structures/AssignedInOneBranch.ini  E^  $      "   human/en/Structures/TryFinally.ini  E^  	%Ϥ      $   human/en/Structures/DynamicCalls.ini  E^  7       ,   human/en/Structures/IdenticalConsecutive.iniX  E^X  VW      %   human/en/Structures/QueriesInLoop.iniQ  E^Q  ♅      '   human/en/Structures/LogicalMistakes.ini  E^  d      %   human/en/Structures/SubstrLastArg.ini  E^  <Uְ         human/en/Structures/NotNot.ini  E^  ]¤      "   human/en/Structures/ShellUsage.ini  E^  <%      &   human/en/Structures/NoDirectAccess.ini   E^   \'      $   human/en/Structures/UselessCheck.ini  E^  Hh$      7   human/en/Structures/OnlyVariableReturnedByReference.iniJ  E^J        *   human/en/Structures/ComparisonFavorite.ini  E^  *	      %   human/en/Structures/UseInstanceof.iniy  E^y  \|      '   human/en/Structures/UselessBrackets.ini  E^  j      !   human/en/Structures/ShortTags.ini  E^  (¤      $   human/en/Structures/MissingCases.ini  E^  3j      (   human/en/Structures/Htmlentitiescall.ini  E^  v7      )   human/en/Structures/PossibleIncrement.iniF  E^F  3˗      &   human/en/Structures/NoGetClassNull.ini  E^  x      ,   human/en/Structures/IdenticalOnBothSides.ini(  E^(  E=扤      (   human/en/Structures/NoIssetWithEmpty.ini>  E^>  &^      ,   human/en/Structures/PossibleInfiniteLoop.ini  E^  Q      %   human/en/Structures/NoHardcodedIp.ini
  E^
        $   human/en/Structures/ElseIfElseif.ini  E^  1      5   human/en/Structures/ForeachReferenceIsNotModified.ini#  E^#  S$      0   human/en/Structures/MixedConcatInterpolation.inii  E^i        )   human/en/Structures/GlobalOutsideLoop.ini  E^  \Ƥ      %   human/en/Structures/EmptyTryCatch.ini  E^  7m      1   human/en/Structures/ErrorReportingWithInteger.ini2  E^2  W      +   human/en/Structures/IdenticalConditions.ini  E^  3      -   human/en/Structures/CouldUseArrayFillKeys.ini  E^         '   human/en/Structures/NoHardcodedHash.ini  E^  dt\      (   human/en/Structures/MbstringThirdArg.ini	  E^	  I      /   human/en/Structures/CalltimePassByReference.ini  E^  뺂Ĥ      :   human/en/Structures/ConcatenationInterpolationFavorite.ini  E^  b      )   human/en/Structures/DoubleInstruction.iniH  E^H  N]      #   human/en/Structures/PHP7Dirname.ini  E^  S      (   human/en/Structures/NoAppendOnSource.ini  E^  t(      %   human/en/Structures/CheckAllTypes.ini  E^        '   human/en/Structures/GoToKeyDirectly.iniN  E^N  *Z¤      #   human/en/Structures/Iffectation.iniC  E^C        %   human/en/Structures/ErrorMessages.ini$  E^$  EHgU      &   human/en/Structures/CurlVersionNow.ini  E^        8   human/en/Structures/OpensslRandomPseudoByteSecondArg.iniE  E^E  =*      '   human/en/Structures/NoHardcodedPort.ini  E^  a      +   human/en/Structures/DropElseAfterReturn.ini  E^  
~      !   human/en/Structures/LongBlock.ini  E^  %ߋ      -   human/en/Structures/ConditionalStructures.ini`  E^`        %   human/en/Structures/NoDirectUsage.iniA  E^A  @cw      )   human/en/Structures/BuriedAssignation.iniE  E^E  9;      %   human/en/Structures/NeverNegative.ini  E^  1z      !   human/en/Structures/MailUsage.ini
  E^
  gm      %   human/en/Structures/LongArguments.inid  E^d  \      0   human/en/Structures/HeredocDelimiterFavorite.inib  E^b  yx      (   human/en/Structures/CryptWithoutSalt.ini  E^  Iݤ      )   human/en/Structures/DoubleAssignation.ini}  E^}  Ny_!      #   human/en/Structures/PrintAndDie.iniU  E^U  5*      /   human/en/Structures/StripTagsSkipsClosedTag.iniG  E^G  c      %   human/en/Structures/RepeatedPrint.ini=  E^=  %3      &   human/en/Structures/EvalWithoutTry.ini  E^  ᷤ      *   human/en/Structures/CommonAlternatives.ini,  E^,        *   human/en/Structures/MissingParenthesis.ini  E^  -)      %   human/en/Structures/SequenceInFor.ini  E^  a      "   human/en/Structures/EmptyLines.ini{  E^{  1,      )   human/en/Structures/ShouldMakeTernary.ini  E^  vg_      "   human/en/Structures/StaticLoop.inix  E^x  MfȤ      '   human/en/Structures/ForeachWithList.iniC  E^C  ͗ﺤ      "   human/en/Structures/MissingNew.ini  E^        '   human/en/Structures/CouldUseCompact.inib  E^b  S9      &   human/en/Structures/ImplicitGlobal.ini  E^        )   human/en/Structures/OneIfIsSufficient.ini  E^  Ć      "   human/en/Structures/ReturnVoid.iniQ  E^Q  V~''      %   human/en/Structures/NoNeedForElse.iniw  E^w  gI)      )   human/en/Structures/ShouldUseOperator.ini  E^  ]      )   human/en/Structures/ComplexExpression.ini  E^  <٤      '   human/en/Structures/ThrowsAndAssign.ini8  E^8  'j      %   human/en/Structures/NoArrayUnique.inih  E^h  k      (   human/en/Structures/ShouldPreprocess.ini  E^  ?b      &   human/en/Structures/YodaComparison.ini  E^  O ˤ         human/en/Structures/Break0.ini  E^  r>T         human/en/Structures/OrDie.ini  E^  A      4   human/en/Structures/AlternativeConsistenceByFile.ini`  E^`  #h      #   human/en/Structures/EmptyBlocks.ini  E^  &T      (   human/en/Structures/ShouldUseForeach.ini
  E^
  Ⱦ
^         human/en/Structures/IsZero.ini  E^  m      '   human/en/Structures/UnreachableCode.ini  E^  Y      #   human/en/Structures/AlwaysFalse.ini  E^  ˮ      3   human/en/Structures/ForeachNeedReferencedSource.ini  E^        /   human/en/Structures/SetlocaleNeedsConstants.ini  E^        /   human/en/Structures/toStringThrowsException.iniN  E^N  Ӥ      )   human/en/Structures/NoReturnInFinally.ini  E^  ܧ      5   human/en/Structures/ConstantComparisonConsistance.ini  E^  Sf*      ,   human/en/Structures/SGVariablesConfusion.iniS  E^S  xZ      &   human/en/Structures/DuplicateCalls.ini  E^        '   human/en/Structures/DontMixPlusPlus.ini-  E^-  +4      )   human/en/Structures/CoalesceAndConcat.iniK  E^K  M      8   human/en/Structures/OneExpressionBracketsConsistency.ini  E^  Dh      %   human/en/Structures/CouldBeStatic.ini
  E^
  Τ      #   human/en/Structures/CouldUseDir.ini  E^  +?          human/en/Structures/NotOrNot.iniD  E^D  6      .   human/en/Structures/NoVariableIsACondition.inia  E^a  <      7   human/en/Structures/AlteringForeachWithoutReference.ini  E^  _      &   human/en/Structures/JsonWithOption.ini  E^        *   human/en/Structures/UselessParenthesis.iniO  E^O  K      '   human/en/Structures/DontLoopOnYield.ini  E^  -      ,   human/en/Structures/IfWithSameConditions.ini	  E^	  !cȤ      1   human/en/Structures/PropertyVariableConfusion.ini  E^  l9      $   human/en/Structures/PhpinfoUsage.ini#  E^#  2      /   human/en/Structures/UnsupportedOperandTypes.ini-  E^-  	      $   human/en/Structures/NestedIfthen.iniN  E^N  Oʮ      ,   human/en/Structures/ShouldUseExplodeArgs.ini  E^  "D      -   human/en/Structures/OneLevelOfIndentation.ini  E^        /   human/en/Structures/NoAssignationInFunction.ini  E^  g@      $   human/en/Structures/NewLineStyle.ini  E^  O㑈      (   human/en/Structures/BreakOutsideLoop.ini  E^  Id          human/en/Structures/Noscream.ini&  E^&  Yuؤ      #   human/en/Structures/pregOptionE.ini1  E^1  tn      &   human/en/Structures/RegexDelimiter.ini  E^  cʢb      #   human/en/Structures/MergeIfThen.ini  E^  L      /   human/en/Structures/FunctionPreSubscripting.ini   E^   k      '   human/en/Structures/TernaryInConcat.iniv  E^v        &   human/en/Structures/Unpreprocessed.ini   E^   9      /   human/en/Structures/MbstringUnknownEncoding.ini  E^  .      )   human/en/Structures/CouldUseStrrepeat.ini  E^  Gs>      #   human/en/Structures/DynamicCode.ini  E^  w      !   human/en/Structures/OnceUsage.ini  E^        $   human/en/Structures/NoEmptyRegex.iniP  E^P  )_      $   human/en/Structures/BailOutEarly.ini  E^  (af      )   human/en/Structures/InfiniteRecursion.ini  E^  UV      ,   human/en/Structures/SuspiciousComparison.ini  E^  Q?      ,   human/en/Structures/CanCountNonCountable.ini^  E^^  Rx      +   human/en/Structures/CouldUseArrayUnique.ini
  E^
  -%P[      &   human/en/Structures/SameConditions.ini  E^  (QN      *   human/en/Structures/ConstantConditions.iniR  E^R  #ڤ      +   human/en/Structures/EmptyWithExpression.ini  E^  I:>      (   human/en/Structures/ObjectReferences.ini  E^  iCF      $   human/en/Structures/SubstrToTrim.inie  E^e  hz      ,   human/en/Structures/MultipleTypeVariable.ini  E^  :      +   human/en/Structures/ForgottenWhiteSpace.iniP  E^P  Fĳ      '   human/en/Structures/PrintfArguments.ini  E^  ˤvn      .   human/en/Structures/OneLineTwoInstructions.ini	  E^	  iy      #   human/en/Structures/Bracketless.inif  E^f  8      9   human/en/Structures/NoParenthesisForLanguageConstruct.ini  E^  I$      /   human/en/Structures/DanglingArrayReferences.iniD  E^D  rϷ      '   human/en/Structures/NoHardcodedPath.ini
  E^
  SLf      *   human/en/Structures/InconsistentElseif.iniE  E^E  dl.      0   human/en/Structures/CouldUseShortAssignation.inif  E^f  $?      *   human/en/Structures/UselessInstruction.iniQ  E^Q  q:;*      ,   human/en/Structures/DifferencePreference.ini  E^   n      $   human/en/Structures/UseSystemTmp.ini  E^        $   human/en/Structures/VardumpUsage.ini	  E^	  T5Ĥ      5   human/en/Structures/ComparedButNotAssignedStrings.ini>  E^>  Ϊ      #   human/en/Structures/PlusEgalOne.ini  E^  2a      /   human/en/Structures/FailingSubstrComparison.ini  E^  >      ,   human/en/Structures/MaxLevelOfIdentation.ini  E^  B      ,   human/en/Structures/ShouldChainException.ini		  E^		  d      )   human/en/Structures/NoReferenceOnLeft.ini  E^  e.Ԥ      *   human/en/Structures/DieExitConsistance.ini  E^  ~k      %   human/en/Structures/UselessSwitch.iniK  E^K        %   human/en/Structures/WhileListEach.ini	  E^	  CJ      /   human/en/Structures/DoubleObjectAssignation.ini  E^  F>F      !   human/en/Traits/CouldUseTrait.ini.  E^.  kpW         human/en/Traits/Php.ini   E^    R!         human/en/Traits/EmptyTrait.ini  E^  @r         human/en/Traits/IsExtTrait.ini   E^   W#wW         human/en/Traits/UsedTrait.ini  E^  7Ƥ      "   human/en/Traits/SelfUsingTrait.ini  E^           human/en/Traits/TraitUsage.iniS  E^S        '   human/en/Traits/AlreadyParentsTrait.ini(  E^(        "   human/en/Traits/DependantTrait.ini  E^  e      )   human/en/Traits/MethodCollisionTraits.ini  E^  :N      !   human/en/Traits/TraitNotFound.ini  E^  z@z         human/en/Traits/Traitnames.ini  E^  #`          human/en/Traits/UselessAlias.ini  E^  "      !   human/en/Traits/MultipleUsage.ini  E^  p'}         human/en/Traits/UnusedTrait.ini  E^  [oڤ         human/en/Traits/TraitMethod.inik  E^k  כ#      $   human/en/Traits/UnusedClassTrait.ini  E^  S      '   human/en/Traits/LocallyUsedProperty.ini  E^  l      &   human/en/Traits/UndefinedInsteadof.ini  E^  e}T      "   human/en/Traits/UndefinedTrait.ini  E^  2p      $   human/en/Complete/PropagateCalls.ini  E^  Sk      @   human/en/Complete/SetClassRemoteDefinitionWithReturnTypehint.ini  E^  ýȤ      (   human/en/Complete/PhpNativeReference.ini  E^  zҤ      '   human/en/Complete/ExtendedTypehints.inib  E^b  y      +   human/en/Complete/OverwrittenProperties.ini{  E^{  }Ǥ      "   human/en/Complete/SetCloneLink.ini  E^  f      -   human/en/Complete/SetClassAliasDefinition.ini  E^        -   human/en/Complete/SetArrayClassDefinition.ini  E^   O(      :   human/en/Complete/SetClassRemoteDefinitionWithTypehint.ini  E^  0'      (   human/en/Complete/OverwrittenMethods.ini  E^        )   human/en/Complete/SetParentDefinition.ini  E^  ڤ      (   human/en/Complete/PropagateConstants.ini  E^  Mi      <   human/en/Complete/SetClassPropertyDefinitionWithTypehint.ini  E^  /!      /   human/en/Complete/MakeClassMethodDefinition.ini~  E^~  Q      1   human/en/Complete/MakeClassConstantDefinition.inim  E^m  Lz5      =   human/en/Complete/SetClassRemoteDefinitionWithParenthesis.ini  E^  ,      8   human/en/Complete/SetClassRemoteDefinitionWithGlobal.ini  E^  -<֤      )   human/en/Complete/CreateDefaultValues.ini  E^  c܊      ,   human/en/Complete/CreateCompactVariables.ini  E^  .tŽ      :   human/en/Complete/SetClassRemoteDefinitionWithLocalNew.ini  E^  Ct-      3   human/en/Complete/MakeFunctioncallWithReference.ini/  E^/  DWE      -   human/en/Complete/FollowClosureDefinition.ini   E^   Ƥ      )   human/en/Complete/CreateMagicProperty.ini  E^  ̤      '   human/en/Complete/SolveTraitMethods.ini  E^        '   human/en/Complete/CreateMagicMethod.ini|  E^|  Z,      ;   human/en/Complete/SetClassRemoteDefinitionWithInjection.ini  E^  F      4   human/en/Complete/SetClassMethodRemoteDefinition.ini  E^  6ޤ      *   human/en/Complete/CreateForeachDefault.ini  E^  {j      /   human/en/Complete/SetStringMethodDefinition.ini7  E^7  -      *   human/en/Complete/OverwrittenConstants.ini}  E^}  D      &   human/en/Security/CantDisableClass.ini  E^  ՟      %   human/en/Security/MinusOneOnError.ini  E^  f%      2   human/en/Security/ShouldUseSessionRegenerateId.ini  E^  Z      *   human/en/Security/SuperGlobalContagion.ini   E^   +V      $   human/en/Security/EncodedLetters.ini  E^  z          human/en/Security/GPRAliases.ini  E^  B      !   human/en/Security/NoEntIgnore.ini  E^  	J*      %   human/en/Security/NoNetForXmlLoad.ini~  E^~  6P}      #   human/en/Security/DontEchoError.ini?  E^?  ya      '   human/en/Security/SensitiveArgument.iniG  E^G  5      !   human/en/Security/AnchorRegex.ini(  E^(  7;դ      !   human/en/Security/CurlOptions.iniI  E^I  n9z      !   human/en/Security/CompareHash.inis	  E^s	  +      &   human/en/Security/ConfigureExtract.iniL  E^L  Ӥ      &   human/en/Security/AvoidThoseCrypto.ini  E^  r<      &   human/en/Security/MoveUploadedFile.ini  E^  U{      )   human/en/Security/CantDisableFunction.ini  E^  1̤      /   human/en/Security/parseUrlWithoutParameters.ini
  E^
  _w      -   human/en/Security/UploadFilenameInjection.ini  E^  }KI      "   human/en/Security/MkdirDefault.ini  E^        %   human/en/Security/RegisterGlobals.ini	  E^	  "      &   human/en/Security/SessionLazyWrite.ini  E^  x'      0   human/en/Security/ShouldUsePreparedStatement.ini  E^  Hʤ      )   human/en/Security/KeepFilesRestricted.ini\  E^\  R         human/en/Security/DynamicDl.ini  E^  0#H      %   human/en/Security/DirectInjection.ini  E^  R|      %   human/en/Security/NoWeakSSLCrypto.ini  E^  <      #   human/en/Security/SetCookieArgs.iniP
  E^P
  x]ݹ      '   human/en/Security/IndirectInjection.ini  E^  A+      %   human/en/Security/SafeHttpHeaders.ini  E^  fN$      '   human/en/Security/FilterInputSource.ini  E^  ep      1   human/en/Security/Sqlite3RequiresSingleQuotes.ini  E^  ^      '   human/en/Security/IntegerConversion.ini^  E^^  ]k      %   human/en/Security/CryptoKeyLength.ini@  E^@  S^Q         human/en/Security/NoSleep.ini  E^  A      *   human/en/Security/UnserializeSecondArg.ini5	  E^5	  6`      )   human/en/Classes/CantInstantiateClass.ini  E^  Z         human/en/Classes/DemeterLaw.iniK  E^K  :q]      #   human/en/Classes/AbstractStatic.ini  E^  ƅ      (   human/en/Classes/PPPDeclarationStyle.ini}  E^}  I      +   human/en/Classes/CouldBeProtectedMethod.ini@  E^@  Uf      %   human/en/Classes/FossilizedMethod.inih  E^h  E      &   human/en/Classes/UndefinedParentMP.ini
  E^
  U      (   human/en/Classes/UnreachableConstant.ini  E^  ~r      &   human/en/Classes/RaisedAccessLevel.ini  E^        '   human/en/Classes/PropertyDefinition.ini  E^  7      !   human/en/Classes/DynamicClass.ini   E^   a}ߤ      #   human/en/Classes/HiddenNullable.ini  E^  sl      $   human/en/Classes/UselessAbstract.ini   E^   (֤      +   human/en/Classes/UnusedProtectedMethods.ini3  E^3  ŉ      $   human/en/Classes/CantExtendFinal.ini  E^  Wc      %   human/en/Classes/RedefinedDefault.iniy  E^y  V%55      "   human/en/Classes/ShouldUseThis.ini  E^  yF         human/en/Classes/TestClass.ini   E^   Xv      &   human/en/Classes/PropertyNeverUsed.ini  E^  LV      '   human/en/Classes/HasFluentInterface.iniM  E^M  9      %   human/en/Classes/UsedOnceProperty.ini  E^  }      (   human/en/Classes/ChildRemoveTypehint.ini  E^  'Ѥ      +   human/en/Classes/PropertyUsedInternally.ini!  E^!  U>ڤ      *   human/en/Classes/UnitializedProperties.ini  E^  8v          human/en/Classes/Finalmethod.ini  E^  8      &   human/en/Classes/NotSameNameAsFile.ini   E^   Wi      %   human/en/Classes/IdenticalMethods.ini  E^  Iq          human/en/Classes/CitSameName.ini  E^  y          human/en/Classes/OldStyleVar.ini  E^  ۹      (   human/en/Classes/DisconnectedClasses.ini  E^  ?      %   human/en/Classes/RedefinedMethods.ini  E^  `      $   human/en/Classes/DefinedStaticMP.ini  E^  5W7      &   human/en/Classes/MakeMagicConcrete.ini|  E^|  v酤      '   human/en/Classes/NonNullableSetters.ini	  E^	  J      %   human/en/Classes/CheckOnCallUsage.ini  E^  GK         human/en/Classes/WrongName.ini_  E^_  "Μ         human/en/Classes/NoParent.ini{  E^{  I)^,      0   human/en/Classes/PropertyUsedInOneMethodOnly.ini  E^  ?jԤ      '   human/en/Classes/ImmutableSignature.ini
  E^
  }M{      2   human/en/Classes/NewOnFunctioncallOrIdentifier.inie  E^e  :r      )   human/en/Classes/CouldBePrivateMethod.iniB  E^B  "a      %   human/en/Classes/ThisIsForClasses.ini  E^  -          human/en/Classes/UnusedClass.ini  E^  5Aɤ      1   human/en/Classes/InsufficientPropertyTypehint.ini  E^  x5ڤ      &   human/en/Classes/DynamicMethodCall.ini  E^  ~b          human/en/Classes/StrangeName.ini4  E^4  $      -   human/en/Classes/OneObjectOperatorPerLine.ini  E^  :^      "   human/en/Classes/NormalMethods.ini  E^  wlդ      %   human/en/Classes/NoMagicWithArray.iniW  E^W  !i.      $   human/en/Classes/AccessProtected.iniE  E^E  ʓ      &   human/en/Classes/IntegerAsProperty.ini  E^  2J       .   human/en/Classes/CantInheritAbstractMethod.ini  E^  ]f      (   human/en/Classes/UnusedPrivateMethod.ini  E^  L1      $   human/en/Classes/ClassAliasUsage.ini'  E^'  q5_      *   human/en/Classes/MultipleClassesInFile.inig  E^g  [      $   human/en/Classes/VariableClasses.ini8  E^8  ]ʤ         human/en/Classes/Classnames.ini  E^  ͂      -   human/en/Classes/UndeclaredStaticProperty.ini  E^  U      -   human/en/Classes/CouldBeProtectedProperty.ini<  E^<  ^X      %   human/en/Classes/UseClassOperator.iniT  E^T  4*Ȥ      '   human/en/Classes/UselessConstructor.ini  E^  LA{         human/en/Classes/NonPpp.ini  E^  ]E         human/en/Classes/UseThis.iniw  E^w  Jn      &   human/en/Classes/UndefinedStaticMP.ini  E^  9C̈́      &   human/en/Classes/AvoidOptionArrays.ini  E^  wp      +   human/en/Classes/UsingThisOutsideAClass.ini  E^  u`I         human/en/Classes/NullOnNew.ini}  E^}  Fm      2   human/en/Classes/StaticMethodsCalledFromObject.ini  E^  w'Ҥ          human/en/Classes/Constructor.ini!  E^!  Z@      #   human/en/Classes/CouldBePrivate.ini  E^  @)ʤ      $   human/en/Classes/Abstractmethods.ini  E^  .Gs      &   human/en/Classes/TooManyInjections.ini  E^  Ԟ      $   human/en/Classes/ThrowInDestruct.ini  E^        )   human/en/Classes/TooManyDereferencing.ini  E^  =      ,   human/en/Classes/DirectCallToMagicMethod.ini  E^  
      '   human/en/Classes/OrderOfDeclaration.iniD  E^D  ᫶      &   human/en/Classes/UsedPrivateMethod.ini  E^  KAn      %   human/en/Classes/UninitedProperty.ini  E^  Mn      4   human/en/Classes/MethodSignatureMustBeCompatible.ini  E^  -k      %   human/en/Classes/CyclicReferences.ini  E^  *;      $   human/en/Classes/DefinedParentMP.ini  E^  Ý`      "   human/en/Classes/IsUpperFamily.ini  E^        (   human/en/Classes/OldStyleConstructor.ini  E^        /   human/en/Classes/InstantiatingAbstractClass.ini  E^  `KN      %   human/en/Classes/IsaMagicProperty.ini  E^  b      ,   human/en/Classes/ImplementIsForInterface.ini  E^  Xr         human/en/Classes/Anonymous.ini&  E^&  =r      ,   human/en/Classes/AvoidOptionalProperties.ini  E^  q      (   human/en/Classes/DontUnsetProperties.iniV	  E^V	  v
`      '   human/en/Classes/UndefinedConstants.iniS  E^S  >v      !   human/en/Classes/UselessFinal.ini  E^  QRĤ      &   human/en/Classes/PropertyUsedBelow.ini  E^  Y      %   human/en/Classes/DynamicSelfCalls.ini  E^        $   human/en/Classes/UnresolvedCatch.inix  E^x  [p/      "   human/en/Classes/UseInstanceof.ini  E^  {Uޤ      )   human/en/Classes/CouldBeAbstractClass.ini7  E^7  ]M      -   human/en/Classes/RedefinedPrivateProperty.ini  E^  |      '   human/en/Classes/ThisIsNotForStatic.ini  E^  _b      +   human/en/Classes/WrongTypedPropertyInit.ini  E^  A      .   human/en/Classes/DontSendThisInConstructor.ini  E^  z      )   human/en/Classes/AbstractOrImplements.ini  E^        )   human/en/Classes/MultipleDeclarations.ini  E^  N#ߤ      &   human/en/Classes/PropertyUsedAbove.ini  E^  e      "   human/en/Classes/StaticMethods.ini  E^  LeI          human/en/Classes/toStringPss.ini  E^  t3D      &   human/en/Classes/ConstantUsedBelow.ini  E^  aڤ      *   human/en/Classes/IncompatibleSignature.ini-  E^-  di      )   human/en/Classes/ConstVisibilityUsage.ini  E^        (   human/en/Classes/UsedPrivateProperty.ini)  E^)  XK3      $   human/en/Classes/MagicProperties.ini  E^   q          human/en/Classes/MagicMethod.init  E^t  O      %   human/en/Classes/UndefinedClasses.ini  E^  o-h      0   human/en/Classes/ImplementedMethodsArePublic.ini  E^  aᶤ      '   human/en/Classes/RedefinedConstants.ini   E^   Gl      *   human/en/Classes/LocallyUnusedProperty.ini  E^  fƤ      "   human/en/Classes/ConstantClass.iniJ  E^J  w      &   human/en/Classes/UndefinedProperty.inin  E^n  	=          human/en/Classes/IsNotFamily.ini  E^        $   human/en/Classes/MethodUsedBelow.ini  E^  X?      )   human/en/Classes/CouldBeClassConstant.iniG  E^G  פ      %   human/en/Classes/StaticProperties.ini  E^  -      -   human/en/Classes/MultipleTraitOrInterface.ini  E^  Qt"      #   human/en/Classes/NoPublicAccess.ini
  E^
  m      (   human/en/Classes/MethodIsOverwritten.ini	  E^	  #aA      "   human/en/Classes/UnusedMethods.ini;  E^;  Sp	      $   human/en/Classes/AmbiguousStatic.ini  E^  (PG      #   human/en/Classes/SameNameAsFile.ini6  E^6  'ͤ      )   human/en/Classes/UndefinedStaticclass.ini  E^  u&         human/en/Classes/ClassUsage.ini6  E^6            human/en/Classes/UsedMethods.ini  E^  e      )   human/en/Classes/ShouldHaveDestructor.ini5  E^5  .{         human/en/Classes/UsedClass.iniD  E^D  b         human/en/Classes/EmptyClass.ini  E^  '      '   human/en/Classes/StaticContainsThis.ini	  E^	  tDҤ         human/en/Classes/IsExtClass.ini  E^  >p      $   human/en/Classes/FinalByOcramius.ini  E^  Pf      !   human/en/Classes/CouldBeFinal.inio  E^o  zS      )   human/en/Classes/PropertyCouldBeLocal.ini  E^  Yv|      %   human/en/Classes/ThisIsNotAnArray.iniZ  E^Z        (   human/en/Classes/DynamicConstantCall.ini  E^  r	      *   human/en/Classes/AmbiguousVisibilities.iniW  E^W  }@      (   human/en/Classes/MakeGlobalAProperty.ini  E^  Y      #   human/en/Classes/UnusedConstant.ini  E^  a          human/en/Classes/ParentFirst.ini:
  E^:
  E      '   human/en/Classes/ConstantDefinition.ini  E^  届      '   human/en/Classes/CloneWithNonObject.ini  E^  *k      "   human/en/Classes/ShouldUseSelf.ini  E^  F      !   human/en/Classes/TooManyFinds.ini  E^  Do      $   human/en/Classes/PssWithoutClass.ini  E^  Ko      )   human/en/Classes/UnresolvedInstanceof.init  E^t  네      $   human/en/Classes/ShouldDeepClone.ini   E^   瘤      *   human/en/Classes/MissingAbstractMethod.ini  E^  /	d      "   human/en/Classes/CouldBeStatic.ini  E^  ?      %   human/en/Classes/HasMagicProperty.ini  E^  z\      "   human/en/Classes/Abstractclass.ini  E^  s^      -   human/en/Classes/CouldBeProtectedConstant.ini}  E^}  \0J      (   human/en/Classes/UsedProtectedMethod.inix  E^x  tu         human/en/Classes/WrongCase.ini  E^  ]      /   human/en/Classes/TypehintCyclicDependencies.inis  E^s  E19      &   human/en/Classes/OnlyStaticMethods.ini   E^   П         human/en/Classes/Finalclass.ini  E^  w0X|      &   human/en/Classes/RedefinedProperty.inix  E^x  @旨      *   human/en/Classes/UnusedPrivateProperty.ini  E^  Y      &   human/en/Classes/UnresolvedClasses.ini  E^  $      $   human/en/Classes/TooManyChildren.ini		  E^		  ޤ      1   human/en/Classes/NonStaticMethodsCalledStatic.ini4
  E^4
  p      "   human/en/Classes/AccessPrivate.iniT  E^T  2Ł      #   human/en/Classes/NormalProperty.ini   E^   +1:      +   human/en/Classes/DependantAbstractClass.ini]  E^]  8Ӥ         human/en/Classes/AvoidUsing.ini   E^    ɤ      (   human/en/Classes/LocallyUsedProperty.ini  E^  )U#      $   human/en/Classes/MutualExtension.ini  E^  W㱤          human/en/Classes/MakeDefault.ini   E^   E6      &   human/en/Classes/IsInterfaceMethod.ini  E^        +   human/en/Classes/ScalarOrObjectProperty.ini  E^  kޚn         human/en/Classes/WeakType.ini  E^  f      ,   human/en/Classes/CouldBePrivateConstante.ini  E^  H֤      (   human/en/Classes/DynamicPropertyCall.ini  E^  ۰F      .   human/en/Classes/NoSelfReferencingConstant.iniJ  E^J  ZN      %   human/en/Classes/DefinedConstants.ini  E^  ڤ      %   human/en/Classes/OverwrittenConst.ini  E^           human/en/Classes/DynamicNew.ini   E^   j0      !   human/en/Classes/CloningUsage.ini0  E^0  6.]      $   human/en/Classes/DefinedProperty.inip  E^p  +k      ,   human/en/Classes/IncompatibleSignature74.ini  E^  9H      &   human/en/Classes/NoPSSOutsideClass.ini`  E^`  +h      )   human/en/Constants/MagicConstantUsage.iniS  E^S  /      +   human/en/Constants/ConstantStrangeNames.ini  E^        '   human/en/Constants/IsGlobalConstant.ini  E^  ry      &   human/en/Constants/UnusedConstants.ini"  E^"  fgs      $   human/en/Constants/ConstantUsage.ini  E^  A#      ,   human/en/Constants/ConstDefinePreference.ini  E^  |pH      "   human/en/Constants/StrangeName.ini&  E^&  !      &   human/en/Constants/DynamicCreation.iniK  E^K  5      2   human/en/Constants/DefineInsensitivePreference.ini  E^  Ђ_      )   human/en/Constants/UndefinedConstants.ini  E^  aB      '   human/en/Constants/VariableConstant.ini"  E^"  [      *   human/en/Constants/CustomConstantUsage.ini  E^  qD      &   human/en/Constants/CouldBeConstant.ini3  E^3  v.[      1   human/en/Constants/MultipleConstantDefinition.ini  E^  58ڤ      '   human/en/Constants/InconsistantCase.ini  E^        /   human/en/Constants/CaseInsensitiveConstants.inil  E^l  FyA+      1   human/en/Constants/CreatedOutsideItsNamespace.init  E^t  9a      '   human/en/Constants/BadConstantnames.ini  E^  MY      "   human/en/Constants/InvalidName.inis  E^s        '   human/en/Constants/ConstRecommended.ini  E^        $   human/en/Constants/Constantnames.ini   E^   R      '   human/en/Constants/PhpConstantUsage.inix  E^x  FC      $   human/en/Constants/IsPhpConstant.ini  E^  `A      +   human/en/Constants/ConditionedConstants.ini9  E^9  =      $   human/en/Constants/IsExtConstant.ini  E^  %      %   human/en/Composer/UseComposerLock.ini   E^   B      %   human/en/Composer/IsComposerClass.ini   E^   tc      &   human/en/Composer/IsComposerNsname.ini  E^  }      !   human/en/Composer/UseComposer.ini   E^   ф1?         human/en/Composer/Autoload.ini   E^   	      )   human/en/Composer/IsComposerInterface.ini   E^   6l      &   human/en/Php/Php74RemovedDirective.iniL  E^L  &>s          human/en/Php/UsePathinfoArgs.inis  E^s  Q<      "   human/en/Php/IncomingVariables.ini   E^   !Ф      *   human/en/Php/MustCallParentConstructor.inil  E^l           human/en/Php/NewExponent.inis  E^s  mO      !   human/en/Php/NoListWithString.iniS  E^S  {^.         human/en/Php/AvoidReal.ini  E^  e-      %   human/en/Php/NoReturnForGenerator.ini  E^  %\r      !   human/en/Php/LogicalInLetters.ini  E^  Tm         human/en/Php/Coalesce.ini  E^  `Τ      "   human/en/Php/ConcatAndAddition.ini  E^  4qg          human/en/Php/ListShortSyntax.iniz  E^z  JA      %   human/en/Php/ThrowWasAnExpression.ini&  E^&  ZZ         human/en/Php/YieldUsage.ini  E^  8         human/en/Php/AutoloadUsage.ini  E^  +      '   human/en/Php/ClassFunctionConfusion.ini  E^  :8          human/en/Php/DirectivesUsage.ini2  E^2  情ݤ      0   human/en/Php/NestedTernaryWithoutParenthesis.inim  E^m  %         human/en/Php/Deprecated.ini  E^  XB         human/en/Php/DeclareTicks.ini  E^  [         human/en/Php/MiddleVersion.ini   E^   H         human/en/Php/IncomingValues.ini  E^  @0l          human/en/Php/UseNullableType.ini%  E^%  "<5         human/en/Php/BetterRand.ini	  E^	  xDϤ      &   human/en/Php/UnpackingInsideArrays.ini  E^  V'         human/en/Php/UseWeb.iniQ  E^Q  h      &   human/en/Php/Php71RemovedDirective.ini   E^   {I      '   human/en/Php/AvoidMbDectectEncoding.ini   E^   okǤ      #   human/en/Php/DetectCurrentClass.iniH  E^H  U/Ӥ      )   human/en/Php/ForeachDontChangePointer.ini  E^  ^Q         human/en/Php/DirectiveName.ini  E^  T         human/en/Php/ReservedNames.ini  E^  ʪ      #   human/en/Php/UnknownPcre2Option.ini.  E^.  g         human/en/Php/IsINF.ini  E^  .      &   human/en/Php/Php70RemovedDirective.ini   E^   ++      !   human/en/Php/RawPostDataUsage.ini  E^  *      $   human/en/Php/ClassConstWithArray.ini)  E^)  s)         human/en/Php/ExponentUsage.inif  E^f  Y      %   human/en/Php/Php74mbstrrpos3rdArg.ini6  E^6  :      #   human/en/Php/TooManyNativeCalls.ini  E^  w:T      "   human/en/Php/ListWithReference.ini  E^  .9t      &   human/en/Php/GroupUseTrailingComma.ini  E^  h((      "   human/en/Php/Php72NewFunctions.ini  E^  p씤         human/en/Php/EllipsisUsage.iniW  E^W  7z      "   human/en/Php/NoMoreCurlyArrays.ini"  E^"  |         human/en/Php/PearUsage.ini`  E^`  K      "   human/en/Php/AlternativeSyntax.ini  E^  ]l      #   human/en/Php/NoStringWithAppend.inin  E^n  |u          human/en/Php/FlexibleHeredoc.iniy  E^y  Bal         human/en/Php/NoCastToInt.ini*  E^*  {         human/en/Php/YieldFromUsage.ini  E^            human/en/Php/DeclareEncoding.ini/  E^/  d*      "   human/en/Php/Php56NewFunctions.ini[  E^[  l         human/en/Php/HashAlgos54.ini  E^  xו      (   human/en/Php/SetExceptionHandlerPHP7.ini  E^  I)      %   human/en/Php/PHP72scalartypehints.inim  E^m           human/en/Php/TryCatchUsage.ini9  E^9  V         human/en/Php/UseCookies.ini  E^  Te      $   human/en/Php/GroupUseDeclaration.ini  E^  q+q         human/en/Php/UseStdclass.iniq  E^q  r         human/en/Php/ShellFavorite.iniv  E^v  \ʈ         human/en/Php/EmptyList.ini  E^  Nפ          human/en/Php/Php70NewClasses.ini	  E^	  |?      "   human/en/Php/OveriddenFunction.iniR  E^R  «         human/en/Php/StrtrArguments.ini  E^        1   human/en/Php/CantUseReturnValueInWriteContext.ini  E^  ^e      "   human/en/Php/Php73NewFunctions.ini  E^  E      !   human/en/Php/SessionVariables.ini  E^  }࢖      -   human/en/Php/ReflectionExportIsDeprecated.ini[  E^[  xנ          human/en/Php/Php74NewClasses.ini  E^  K3      "   human/en/Php/MissingSubpattern.ini	  E^	  ,<         human/en/Php/Labelnames.ini   E^   `         human/en/Php/Incompilable.ini  E^  b.         human/en/Php/CastingUsage.ini  E^  !!      )   human/en/Php/ConstantScalarExpression.inid  E^d  R      %   human/en/Php/Php80RemovedConstant.ini  E^  F9k      &   human/en/Php/Php54RemovedFunctions.ini  E^  n      #   human/en/Php/TypedPropertyUsage.ini  E^  tRh         human/en/Php/UsesEnv.ini2  E^2           human/en/Php/CryptoUsage.ini  E^  9}$      #   human/en/Php/Php72ObjectKeyword.ini  E^  g¤      "   human/en/Php/Php74NewFunctions.ini  E^  m"         human/en/Php/SetHandlers.ini  E^  v0W          human/en/Php/MethodCallOnNew.ini  E^  3A      &   human/en/Php/Php55RemovedFunctions.ini`  E^`  ۽         human/en/Php/Prints.iniU  E^U  u          human/en/Php/ListWithAppends.ini  E^  פ      +   human/en/Php/LetterCharsLogicalFavorite.ini  E^  3~      "   human/en/Php/ShouldUseFunction.ini-  E^-  l.         human/en/Php/HashAlgos53.ini  E^  WL`         human/en/Php/CloseTags.iniq  E^q  I          human/en/Php/GlobalsVsGlobal.ini,  E^,  sFʪ         human/en/Php/debugInfoUsage.ini  E^  J         human/en/Php/ErrorLogUsage.ini  E^  Wi         human/en/Php/IsNAN.ini  E^  Z      "   human/en/Php/UseContravariance.inio  E^o  P
eh      &   human/en/Php/ReturnWithParenthesis.ini  E^  B      #   human/en/Php/ClosureThisSupport.ini  E^  Sݤ      !   human/en/Php/UpperCaseKeyword.iniM  E^M  )T      "   human/en/Php/TriggerErrorUsage.inij  E^j  Ϥ      %   human/en/Php/PHP71scalartypehints.ini1  E^1  G6         human/en/Php/TrailingComma.ini  E^  KŤ      "   human/en/Php/ReservedKeywords7.ini%  E^%  }q         human/en/Php/UseSetCookie.inio  E^o  
v      %   human/en/Php/UnicodeEscapePartial.ini  E^  9ʤ          human/en/Php/NoClassInGlobal.ini  E^        "   human/en/Php/IsnullVsEqualNull.ini]  E^]  a^          human/en/Php/DefineWithArray.ini  E^  oKS         human/en/Php/HashAlgos74.inir  E^r  fͦ         human/en/Php/HashAlgos.ini  E^  /          human/en/Php/Php72NewClasses.iniX  E^X  &         human/en/Php/EchoTagUsage.ini   E^         "   human/en/Php/Php55NewFunctions.ini[  E^[  .~P      %   human/en/Php/ShortOpenTagRequired.iniO  E^O  Z?R      ,   human/en/Php/GlobalWithoutSimpleVariable.ini  E^  5D9      %   human/en/Php/UseDateTimeImmutable.ini  E^  wa      #   human/en/Php/ScalarAreNotArrays.ini  E^  WxǤ      !   human/en/Php/PregMatchAllFlag.ini  E^  ?{      '   human/en/Php/PHP73LastEmptyArgument.ini  E^  $l         human/en/Php/Haltcompiler.ini  E^  zR*      %   human/en/Php/PHP70scalartypehints.ini  E^  q      &   human/en/Php/NoReferenceForTernary.inik  E^k  )E      !   human/en/Php/NoSubstrMinusOne.ini  E^  tp      $   human/en/Php/UnicodeEscapeSyntax.iniV  E^V  	5S         human/en/Php/ConstWithArray.ini  E^        "   human/en/Php/DeclareStrictType.ini  E^  Ĥ         human/en/Php/Argon2Usage.ini  E^  !@      '   human/en/Php/SignatureTrailingComma.ini  E^  n7E      %   human/en/Php/ShouldUseArrayFilter.ini  E^  t         human/en/Php/Gotonames.ini  E^  vϤ      "   human/en/Php/Php71NewFunctions.ini  E^  U      $   human/en/Php/Php80VariableSyntax.iniX  E^X           human/en/Php/UseObjectApi.ini	  E^	  +      $   human/en/Php/ReturnTypehintUsage.iniI  E^I         "   human/en/Php/Php74NewDirective.ini  E^  *z         human/en/Php/AssignAnd.ini  E^  ĉ         human/en/Php/ListWithKeys.ini+  E^+  Z;      %   human/en/Php/CloseTagsConsistency.iniZ  E^Z  vJ      !   human/en/Php/StaticclassUsage.ini  E^           human/en/Php/AssertionUsage.ini  E^  sߤ         human/en/Php/CaseForPSS.iniH  E^H  5D      '   human/en/Php/SpreadOperatorForArray.ini  E^  &Ѥ      %   human/en/Php/Crc32MightBeNegative.ini  E^  s         human/en/Php/IdnUts46.ini|  E^|           human/en/Php/ForeachObject.ini&  E^&  ck      "   human/en/Php/CompactInexistant.iniz  E^z  d         human/en/Php/NotScalarType.ini  E^  ݼ
         human/en/Php/UseBrowscap.iniy  E^y  t0Ϥ         human/en/Php/UsePathinfo.iniy  E^y  0          human/en/Php/HashUsesObjects.ini  E^  AH#֤      "   human/en/Php/Php72NewConstants.iniN  E^N  -      &   human/en/Php/IntegerSeparatorUsage.ini  E^  fk¤          human/en/Php/FailingAnalysis.init   E^t   b         human/en/Php/NullCoalesce.inix  E^x  Y      !   human/en/Php/oldAutoloadUsage.ini  E^  cs         human/en/Php/FopenMode.ini3  E^3  u*         human/en/Php/DateFormats.ini3  E^3  5$E          human/en/Php/Php71NewClasses.inia  E^a  Ȥ         human/en/Php/DlUsage.ini  E^  J%         human/en/Php/HashAlgos71.inir  E^r  T=      -   human/en/Php/NoReferenceForStaticProperty.ini  E^  w      &   human/en/Php/InternalParameterType.iniT  E^T  ({o         human/en/Php/Password55.ini  E^  ~e0      )   human/en/Php/AssertFunctionIsReserved.ini>  E^>  E?K         human/en/Php/SerializeMagic.ini  E^  K      #   human/en/Php/Php80UnionTypehint.ini  E^  ;      !   human/en/Php/ShouldPreprocess.iniM  E^M  M      "   human/en/Php/IssetMultipleArgs.iniG  E^G  Y      $   human/en/Php/CouldUseIsCountable.ini  E^  SBT      "   human/en/Php/Php71microseconds.ini  E^  HdX      !   human/en/Php/CookiesVariables.ini  E^  '֤      &   human/en/Php/Php74RemovedFunctions.ini   E^         #   human/en/Php/Php80OnlyTypeHints.ini  E^  */      $   human/en/Php/ScalarTypehintUsage.ini  E^  =xP      "   human/en/Php/ShouldUseCoalesce.inid  E^d  3K1         human/en/Php/DeclareStrict.ini  E^  g         human/en/Php/UnsetOrCast.ini  E^  :{      /   human/en/Php/AvoidSetErrorHandlerContextArg.inir  E^r  ܐ)}      "   human/en/Php/Php80NewFunctions.ini  E^  6
      !   human/en/Php/Php74Deprecation.inir  E^r  /R*          human/en/Php/PathinfoReturns.ini0  E^0  P8*         human/en/Php/SafePhpvars.iniZ  E^Z            human/en/Php/ThrowUsage.ini  E^        *   human/en/Php/ArrayKeyExistsWithObjects.iniF  E^F  $;      !   human/en/Php/SuperGlobalUsage.iniQ  E^Q        '   human/en/Php/UseSessionStartOptions.iniD  E^D  M      &   human/en/Php/Php70RemovedFunctions.ini  E^  `      #   human/en/Php/Php7RelaxedKeyword.iniF  E^F   c      '   human/en/Php/ParenthesisAsParameter.ini!  E^!  3Ґk      %   human/en/Php/ShouldUseArrayColumn.ini  E^  ,I       "   human/en/Php/DirectCallToClone.ini=  E^=  Ƥ         human/en/Php/UsortSorting.ini  E^  o         human/en/Php/UseCovariance.ini^  E^^  WQx         human/en/Php/CoalesceEqual.ini  E^  Ĥ      "   human/en/Php/Php74NewConstants.ini  E^  .[䓤      !   human/en/Php/TryMultipleCatch.ini  E^        "   human/en/Php/UpperCaseFunction.ini  E^  k"      %   human/en/Php/Php74ReservedKeyword.inig  E^g  a         human/en/Php/IsAWithString.ini  E^  FФ      "   human/en/Php/Php54NewFunctions.iniM  E^M  5d      &   human/en/Php/Php72RemovedFunctions.ini  E^  N[x         human/en/Php/ImplodeOneArg.ini4  E^4  R      #   human/en/Php/Php70NewInterfaces.ini   E^   'פ         human/en/Php/UseCli.ini   E^   ]C      #   human/en/Php/FilterToAddSlashes.ini  E^  bGҤ      "   human/en/Php/Php70NewFunctions.ini  E^  jl<      !   human/en/Php/Php72Deprecation.ini  E^  E햤      &   human/en/Php/Php80RemovedFunctions.ini  E^  u      &   human/en/Php/Php73RemovedFunctions.ini(  E^(  ѱ+      *   human/en/Exceptions/CaughtButNotThrown.inia  E^a  @bW      *   human/en/Exceptions/OverwriteException.ini5  E^5  Ĥ      %   human/en/Exceptions/MultipleCatch.ini  E^  RG      *   human/en/Exceptions/UncaughtExceptions.inin  E^n        $   human/en/Exceptions/UselessCatch.ini  E^  wi      )   human/en/Exceptions/DefinedExceptions.ini  E^  WB      #   human/en/Exceptions/CouldUseTry.iniH  E^H  %         human/en/Exceptions/CatchE.ini  E^  -      %   human/en/Exceptions/AlreadyCaught.ini  E^  
      '   human/en/Exceptions/ForgottenThrown.ini  E^  fФ      !   human/en/Exceptions/CantThrow.ini  E^  UjƤ      (   human/en/Exceptions/CaughtExceptions.iniI  E^I  -          human/en/Exceptions/Unthrown.ini&  E^&  pJK      (   human/en/Exceptions/ThrownExceptions.ini  E^        )   human/en/Exceptions/ThrowFunctioncall.ini  E^  Fh      &   human/en/Exceptions/IsPhpException.ini  E^  ;	qޤ          human/en/Exceptions/Rethrown.ini  E^  蠤          human/en/Extensions/Extevent.ini  E^  k          human/en/Extensions/Extcyrus.ini  E^  1T      #   human/en/Extensions/Extreadline.ini  E^  =Bߤ         human/en/Extensions/Extexif.ini  E^  Ó      "   human/en/Extensions/Extphalcon.ini  E^  '1         human/en/Extensions/Extldap.inis  E^s  :xڤ         human/en/Extensions/Extast.ini  E^  T&i      "   human/en/Extensions/Extseaslog.ini  E^  t!#         human/en/Extensions/Extsnmp.ini  E^           human/en/Extensions/Extiis.ini  E^           human/en/Extensions/Extmath.ini  E^  i         human/en/Extensions/Extv8js.ini  E^  K          human/en/Extensions/Extmhash.ini@  E^@  :      &   human/en/Extensions/Exttokyotyrant.ini  E^  a-{          human/en/Extensions/Extpcntl.ini+  E^+  V         human/en/Extensions/Extvips.ini^  E^^  5         human/en/Extensions/Extfann.ini>  E^>  Ϣj      $   human/en/Extensions/Extzookeeper.ini  E^  ^Z          human/en/Extensions/Extnsapi.ini  E^  b      !   human/en/Extensions/Extsqlsrv.ini  E^  1         human/en/Extensions/Extdate.ini"  E^"  W(P         human/en/Extensions/Extlzf.ini  E^  c<      !   human/en/Extensions/Extswoole.ini  E^  蚤      !   human/en/Extensions/Extsqlite.ini  E^  IH         human/en/Extensions/Extob.ini  E^        "   human/en/Extensions/Extsockets.inin  E^n            human/en/Extensions/Extgeoip.iniy  E^y  Cr      $   human/en/Extensions/Extsimplexml.ini  E^  iR         human/en/Extensions/Extftp.iniD  E^D  K0Ҥ      #   human/en/Extensions/Extwincache.ini  E^  OƤ      $   human/en/Extensions/Extwikidiff2.ini  E^        "   human/en/Extensions/Extsuhosin.ini  E^  g7         human/en/Extensions/Exteio.ini  E^  }	      !   human/en/Extensions/Extcsprng.ini}  E^}  pդ      $   human/en/Extensions/Extmemcached.ini  E^  B      $   human/en/Extensions/Extlibsodium.ini%  E^%            human/en/Extensions/Extxdiff.iniK  E^K  m?R      !   human/en/Extensions/Extgender.ini  E^  
      !   human/en/Extensions/Extrecode.ini(  E^(  |bS|      $   human/en/Extensions/Exttokenizer.ini  E^           human/en/Extensions/Extdom.ini  E^  C          human/en/Extensions/Extbzip2.iniF  E^F  sBlh      #   human/en/Extensions/Extlibevent.ini  E^  M8      "   human/en/Extensions/Extrdkafka.ini  E^  XZ         human/en/Extensions/Extyaml.ini  E^  פ      #   human/en/Extensions/Extmbstring.ini  E^  W9      "   human/en/Extensions/Extsession.ini  E^  ܤ          human/en/Extensions/Extarray.ini]  E^]  +          human/en/Extensions/Extcmark.iniz  E^z  n겭         human/en/Extensions/Extcom.ini  E^        !   human/en/Extensions/Extsphinx.ini   E^   mɤ      #   human/en/Extensions/Extigbinary.ini  E^  -A         human/en/Extensions/Extsoap.ini  E^  CTj         human/en/Extensions/Extzmq.ini  E^  4k          human/en/Extensions/Extasync.iniB  E^B  m         human/en/Extensions/Extzlib.ini  E^        !   human/en/Extensions/Extxcache.ini'  E^'  3&u      "   human/en/Extensions/Extncurses.iniD  E^D  ?T         human/en/Extensions/Extuopz.ini  E^  M      #   human/en/Extensions/Extmemcache.ini  E^  }      #   human/en/Extensions/Extstandard.ini8  E^8  F}         human/en/Extensions/Extpcre.ini9  E^9  Vj      "   human/en/Extensions/Extvarnish.ini  E^  Q      #   human/en/Extensions/Extparsekit.inio  E^o  YFj         human/en/Extensions/Extgmp.ini#  E^#  0[      !   human/en/Extensions/Extffmpeg.ini  E^  >ώ      "   human/en/Extensions/Extgmagick.inix  E^x  2{C         human/en/Extensions/Extfpm.ini  E^  Q 2      !   human/en/Extensions/Extrunkit.ini  E^  j%      !   human/en/Extensions/Extfilter.ini  E^  '֤         human/en/Extensions/Extodbc.ini  E^  b      !   human/en/Extensions/Extlapack.ini  E^  uկ      !   human/en/Extensions/Extxdebug.iniK  E^K  AHڤ      !   human/en/Extensions/Extmysqli.ini,  E^,           human/en/Extensions/Extimap.ini  E^  O'^      "   human/en/Extensions/Extleveldb.ini  E^  	      "   human/en/Extensions/Extopcache.ini  E^  .ꖤ         human/en/Extensions/Extwasm.ini  E^            human/en/Extensions/Extev.iniO  E^O  {VФ      $   human/en/Extensions/Extproctitle.ini  E^  =;      !   human/en/Extensions/Extstring.ini  E^  ve         human/en/Extensions/Extds.ini  E^  k         human/en/Extensions/Extdio.ini  E^  3s      !   human/en/Extensions/Extxhprof.iniY  E^Y  K          human/en/Extensions/Extibase.ini\  E^\  W4          human/en/Extensions/Extmongo.ini  E^            human/en/Extensions/Extyis.iniE  E^E  @      "   human/en/Extensions/Extdecimal.ini  E^  /      "   human/en/Extensions/Extweakref.ini]  E^]  e       $   human/en/Extensions/Extmailparse.ini  E^  7         human/en/Extensions/Extxml.ini  E^  \3Τ         human/en/Extensions/Extinfo.ini  E^  ,Ȥ         human/en/Extensions/Extspl.ini  E^  W         human/en/Extensions/Extfdf.ini  E^  jD      !   human/en/Extensions/Exthrtime.ini  E^  C         human/en/Extensions/Exthash.ini(  E^(  ?         human/en/Extensions/Extgd.ini  E^  7/         human/en/Extensions/Extphar.ini  E^  `          human/en/Extensions/Extmysql.ini  E^  w@`      $   human/en/Extensions/Extxmlwriter.ini  E^  c|         human/en/Extensions/Extsem.ini  E^  <         human/en/Extensions/Extrar.ini  E^  o      !   human/en/Extensions/Extpspell.ini  E^  6~]          human/en/Extensions/Extxattr.iniw  E^w        &   human/en/Extensions/Extzendmonitor.ini  E^  "zܤ      "   human/en/Extensions/Extgearman.ini  E^  (      %   human/en/Extensions/Extreflection.ini.  E^.  DAF      "   human/en/Extensions/Extmongodb.ini  E^  §         human/en/Extensions/Extoci8.ini  E^  ¤         human/en/Extensions/Extssh2.ini  E^  7T      !   human/en/Extensions/Extxmlrpc.ini  E^  $          human/en/Extensions/Extstats.ini  E^  ül      !   human/en/Extensions/Extapache.ini  E^  Y6!9          human/en/Extensions/Extposix.ini?  E^?  drU         human/en/Extensions/Extffi.ini  E^            human/en/Extensions/Extxxtea.ini
  E^
  sj      #   human/en/Extensions/Extfileinfo.ini$  E^$  Z[          human/en/Extensions/Extgnupg.init  E^t  P         human/en/Extensions/Extnewt.ini  E^  xJF         human/en/Extensions/Extamqp.ini  E^  
         human/en/Extensions/Extmail.ini  E^  Z          human/en/Extensions/Extparle.inin  E^n  w _         human/en/Extensions/Extjson.ini  E^  }Ȥ      '   human/en/Extensions/Exteaccelerator.iniR  E^R  ݒ      "   human/en/Extensions/Extenchant.ini  E^  J      !   human/en/Extensions/Exttrader.ini  E^  ׵1      "   human/en/Extensions/Extimagick.ini?  E^?  }K          human/en/Extensions/Extcairo.ini  E^  @          human/en/Extensions/Extctype.inik  E^k  g         human/en/Extensions/Extsdl.ini  E^  6          human/en/Extensions/Exticonv.ini  E^  s          human/en/Extensions/Extredis.ini  E^            human/en/Extensions/Extshmop.ini  E^  8+         human/en/Extensions/Extwddx.ini  E^  ¥Q         human/en/Extensions/Extgrpc.ini?  E^?           human/en/Extensions/Extereg.ini  E^  "M         human/en/Extensions/Extfile.ini  E^  !_         human/en/Extensions/Exttidy.ini  E^        #   human/en/Extensions/Extcalendar.ini  E^  NM      !   human/en/Extensions/Extexpect.iniY  E^Y  9      !   human/en/Extensions/Extcrypto.iniK  E^K  ij6      #   human/en/Extensions/Extzbarcode.ini  E^  <
         human/en/Extensions/Extsvm.ini}  E^}  ?          human/en/Extensions/Extmssql.ini/  E^/  뤛Ԥ      "   human/en/Extensions/Extsqlite3.ini  E^  Xە      "   human/en/Extensions/Extinotify.ini  E^  k_Ѥ         human/en/Extensions/Extming.iniq  E^q  Ҥ         human/en/Extensions/Extzip.iniF  E^F  #         human/en/Extensions/Extuuid.ini  E^  Ҥ         human/en/Extensions/Extdb2.iniD  E^D           human/en/Extensions/Extapcu.ini  E^  f}      $   human/en/Extensions/Extxmlreader.ini  E^  ҳ         human/en/Extensions/Extpdo.ini  E^  s      !   human/en/Extensions/Extmcrypt.ini
  E^
  Qx       !   human/en/Extensions/Extbcmath.ini  E^  D         human/en/Extensions/Exthttp.ini  E^  |         human/en/Extensions/Extpcov.inio  E^o  i;         human/en/Extensions/Extkdm5.ini  E^  w+         human/en/Extensions/Extjudy.ini'  E^'  فrA         human/en/Extensions/Extdba.iniJ  E^J  e,      "   human/en/Extensions/Extmsgpack.ini  E^  ɤ      "   human/en/Extensions/Extgettext.ini=  E^=   $         human/en/Extensions/Extlua.ini  E^  QU         human/en/Extensions/Extpsr.ini  E^  u:{      !   human/en/Extensions/Extlibxml.ini   E^   ̧nΤ         human/en/Extensions/Extxsl.ini  E^  FȤ      %   human/en/Extensions/Extopencensus.ini  E^  0         human/en/Extensions/Extintl.iniy  E^y  A      #   human/en/Extensions/Extpassword.ini  E^  ~hX         human/en/Extensions/Extfam.ini  E^  V       "   human/en/Extensions/Extopenssl.ini  E^           human/en/Extensions/Extapc.ini  E^  p          human/en/Extensions/Extcurl.ini  E^  	;          human/en/Extensions/Extpgsql.ini  E^  q      &   human/en/Namespaces/EmptyNamespace.ini  E^  Τ      6   human/en/Namespaces/MultipleAliasDefinitionPerFile.ini  E^  i      '   human/en/Namespaces/ShouldMakeAlias.ini  E^  	0v      '   human/en/Namespaces/Namespacesnames.ini  E^        %   human/en/Namespaces/CouldUseAlias.ini  E^  lҤ      .   human/en/Namespaces/ConstantFullyQualified.ini  E^  lQ         human/en/Namespaces/Alias.ini  E^  L      $   human/en/Namespaces/GlobalImport.ini  E^  IĤ      !   human/en/Namespaces/UnusedUse.inix  E^x  匌      !   human/en/Namespaces/HiddenUse.ini  E^  𭓤      -   human/en/Namespaces/UseFunctionsConstants.ini  E^  |P}      0   human/en/Namespaces/MultipleAliasDefinitions.iniX  E^X  $Ǥ      %   human/en/Namespaces/UnresolvedUse.ini  E^  )3      &   human/en/Namespaces/AliasConfusion.ini  E^  ,;Ƥ      /   human/en/Namespaces/UseWithFullyQualifiedNS.ini  E^  UN      !   human/en/Namespaces/WrongCase.ini  E^  g-         human/en/Namespaces/UsedUse.ini  E^  X      &   human/en/Namespaces/NamespaceUsage.ini   E^            human/en/Project/IsLibrary.ini   E^   C         human/en/Type/Nowdoc.ini  E^  g}          human/en/Type/MalformedOctal.ini  E^  lm         human/en/Type/ArrayIndex.inip  E^p  ;         human/en/Type/UdpDomains.ini  E^  4      !   human/en/Type/SimilarIntegers.ini  E^  <N      %   human/en/Type/StringHoldAVariable.ini  E^  Ӭ_E         human/en/Type/GPCIndex.inim  E^m  {8      (   human/en/Type/StringWithStrangeSpace.ini  E^  =GS         human/en/Type/Heredoc.ini~  E^~  7a         human/en/Type/Pcre.iniR  E^R  
f         human/en/Type/Shellcommands.ini  E^        %   human/en/Type/StringInterpolation.ini  E^  H Ƥ         human/en/Type/UnicodeBlock.inij  E^j  x<         human/en/Type/OctalInString.ini  E^         %   human/en/Type/ShouldBeSingleQuote.iniu  E^u  6         human/en/Type/Protocols.ini  E^  o         human/en/Type/Ports.ini  E^  ey7         human/en/Type/Pack.ini'  E^'  ݤ         human/en/Type/String.ini   E^   1;         human/en/Type/Binary.ini   E^   d          human/en/Type/Continents.ini   E^   (?      "   human/en/Type/DuplicateLiteral.ini  E^  ٖK
         human/en/Type/Md5String.ini  E^  9ͤ         human/en/Type/Url.iniv  E^v  k:         human/en/Type/Hexadecimal.inia  E^a  Ue         human/en/Type/Printf.ini  E^  ֹ9         human/en/Type/Path.ini  E^  :EK          human/en/Type/ShouldTypecast.ini  E^  Ĥ         human/en/Type/CharString.ini   E^   24L      !   human/en/Type/SpecialIntegers.ini  E^  Dh      $   human/en/Type/OneVariableStrings.ini>  E^>  3bM4         human/en/Type/Sql.ini  E^           human/en/Type/Sapi.inig  E^g  h{         human/en/Type/MimeType.ini  E^  #b)         human/en/Type/Regex.inil  E^l  y-밤      #   human/en/Type/HexadecimalString.inim  E^m  \F)         human/en/Type/HttpStatus.iniY  E^Y        %   human/en/Type/SilentlyCastInteger.ini  E^  .y      "   human/en/Type/NoRealComparison.ini	  E^	  (         human/en/Type/Email.iniX  E^X  z;Ѥ         human/en/Type/HttpHeader.ini:  E^:  ۤ         human/en/Type/OpensslCipher.ini%  E^%           human/en/Type/Octal.ini  E^  %      "   human/en/Variables/CloseNaming.ini  E^  z}      $   human/en/Variables/RealVariables.ini  E^  Vʱ2      "   human/en/Variables/VariablePhp.ini.  E^.  RNL      &   human/en/Variables/StaticVariables.iniU  E^U  C-      (   human/en/Variables/UndefinedVariable.ini}  E^}  oƤ      *   human/en/Variables/WrittenOnlyVariable.iniX  E^X  3      "   human/en/Variables/UniqueUsage.ini]  E^]           human/en/Variables/Globals.ini   E^   K       *   human/en/Variables/ComplexDynamicNames.ini#  E^#  ;JK      "   human/en/Variables/StrangeName.inig  E^g  g      %   human/en/Variables/UncommonEnvVar.ini  E^  !mW      (   human/en/Variables/VariableVariables.ini  E^        -   human/en/Variables/Php7IndirectExpression.ini  E^  y      *   human/en/Variables/OverwrittenLiterals.ini  E^  "\      #   human/en/Variables/VariableLong.ini1  E^1  n      $   human/en/Variables/SelfTransform.ini  E^  l      -   human/en/Variables/Php5IndirectExpression.iniJ  E^J  W      !   human/en/Variables/References.ini  E^  s      #   human/en/Variables/LocalGlobals.ini  E^  ;Ȥ      '   human/en/Variables/VariableUsedOnce.ini  E^  O!         human/en/Variables/Blind.ini1  E^1  tФ      '   human/en/Variables/VariableNonascii.ini  E^  {ߤ      0   human/en/Variables/VariableUsedOnceByContext.inia  E^a        (   human/en/Variables/VariableOneLetter.iniT  E^T  (|      ,   human/en/Variables/UndefinedConstantName.ini,  E^,  'F      "   human/en/Variables/Overwriting.iniQ  E^Q  #O      (   human/en/Variables/InconsistentUsage.ini)  E^)  cXG      %   human/en/Variables/LostReferences.ini  E^  x      *   human/en/Variables/AssignedTwiceOrMore.ini  E^  `@      (   human/en/Variables/VariableUppercase.ini  E^  	t      )   human/en/Variables/InterfaceArguments.ini  E^  <7         human/en/Arrays/NullBoolean.inik  E^k           human/en/Arrays/Arrayindex.ini   E^   b         human/en/Arrays/MixedKeys.ini  E^  :         human/en/Arrays/SliceFirst.ini  E^  l      !   human/en/Arrays/AmbiguousKeys.ini  E^  R      $   human/en/Arrays/Multidimensional.ini  E^  
n      )   human/en/Arrays/MultipleIdenticalKeys.ini  E^  C      )   human/en/Arrays/MistakenConcatenation.ini  E^  tpU          human/en/Arrays/ArrayNSUsage.ini  E^  8}      %   human/en/Arrays/TooManyDimensions.iniC  E^C        *   human/en/Arrays/RandomlySortedLiterals.ini	  E^	  
      +   human/en/Arrays/ArrayBracketConsistence.ini  E^  :          human/en/Arrays/MassCreation.ini  E^  Qx      &   human/en/Arrays/GettingLastElement.iniL  E^L  S$      #   human/en/Arrays/NoSpreadForHash.ini<  E^<  P         human/en/Arrays/WeirdIndex.iniI  E^I  p         human/en/Arrays/EmptyFinal.ini  E^  "      $   human/en/Arrays/NonConstantArray.iniv  E^v   #      !   human/en/Arrays/Phparrayindex.ini4  E^4  d`nW      $   human/en/Arrays/ShouldPreprocess.iniJ  E^J  8ڤ         human/en/Arrays/EmptySlots.ini   E^   (̤      (   human/en/Arrays/StringInitialization.ini  E^  }          human/en/Arrays/WithCallback.ini  E^  5JM      %   human/en/Files/NotDefinitionsOnly.ini7  E^7  XOB      "   human/en/Files/DefinitionsOnly.ini  E^  ML         human/en/Files/IsComponent.inig  E^g  ^ѱ      !   human/en/Files/GlobalCodeOnly.ini   E^   K      !   human/en/Files/MissingInclude.ini  E^  *         human/en/Files/Services.ini  E^  #e          human/en/Files/IsCliScript.ini   E^   O
=      %   human/en/Files/InclusionWrongCase.ini  E^  k      '   human/en/Portability/LinuxOnlyFiles.inic  E^c  5\      "   human/en/Portability/FopenMode.ini  E^  ¤      -   human/en/Portability/WindowsOnlyConstants.ini  E^  Wm      )   human/en/Functions/OneLetterFunctions.ini  E^  SU들      )   human/en/Functions/ShouldUseConstants.ini]  E^]  ҥX      &   human/en/Functions/DeepDefinitions.ini
  E^
   T ͤ      &   human/en/Functions/TooMuchIndented.ini	  E^	  z      '   human/en/Functions/FallbackFunction.iniF  E^F  [      .   human/en/Functions/FunctionsUsingReference.ini-  E^-  Ng5      (   human/en/Functions/UnbindingClosures.ini,  E^,  a      )   human/en/Functions/NoBooleanAsDefault.ini  E^  I      #   human/en/Functions/NoReturnUsed.ini  E^  ^      "   human/en/Functions/LoopCalling.ini  E^  *<      +   human/en/Functions/TypehintedReferences.ini_  E^_  $~      )   human/en/Functions/HasFluentInterface.inid  E^d  䱸      &   human/en/Functions/MissingTypehint.ini  E^  	B      +   human/en/Functions/UsesDefaultArguments.ini  E^  l8      ,   human/en/Functions/TooManyLocalVariables.ini  E^  DΚ.      ,   human/en/Functions/NoLiteralForReference.ini  E^  x      )   human/en/Functions/ShouldYieldWithKey.inil  E^l  kjz      /   human/en/Functions/UselessReferenceArgument.ini	  E^	  G         human/en/Functions/Closures.iniV  E^V  [W/      &   human/en/Functions/CouldReturnVoid.ini  E^  r      ,   human/en/Functions/HasNotFluentInterface.ini   E^   9S      .   human/en/Functions/UnusedInheritedVariable.inix	  E^x	  I#      #   human/en/Functions/MarkCallable.ini   E^   Ƥ         human/en/Functions/IsGlobal.ini   E^   W          human/en/Functions/Typehints.ini  E^  B8o      &   human/en/Functions/UselessArgument.ini  E^  [      )   human/en/Functions/ShouldBeTypehinted.ini  E^  >      #   human/en/Functions/PrefixToType.ini  E^  ZT      &   human/en/Functions/UnusedArguments.init  E^t        "   human/en/Functions/Dynamiccall.iniZ  E^Z  *I_      $   human/en/Functions/EmptyFunction.ini  E^  +      $   human/en/Functions/UsedFunctions.ini  E^  6,      -   human/en/Functions/MismatchTypeAndDefault.ini  E^  N㚤      4   human/en/Functions/WrongNumberOfArgumentsMethods.ini  E^        +   human/en/Functions/NullableWithoutCheck.ini  E^  .Ӥ      1   human/en/Functions/MismatchedDefaultArguments.ini  E^  N6      (   human/en/Functions/OptionalParameter.ini  E^  }b      4   human/en/Functions/OnlyVariablePassedByReference.ini  E^  a燤      )   human/en/Functions/CouldTypeWithArray.ini  E^  *      $   human/en/Functions/RealFunctions.ini  E^  .      $   human/en/Functions/WithoutReturn.ini  E^  <ѣ      2   human/en/Functions/FnArgumentVariableConfusion.ini%  E^%  Hcy      "   human/en/Functions/IsGenerator.ini?  E^?  H      +   human/en/Functions/InsufficientTypehint.iniP  E^P  fa      "   human/en/Functions/DontUseVoid.ini  E^  7      %   human/en/Functions/SemanticTyping.ini	  E^	  C֤      '   human/en/Functions/UnsetOnArguments.inin  E^n  ~         human/en/Functions/CantUse.ini  E^  Ҍ      %   human/en/Functions/MultipleReturn.ini1  E^1  79%      -   human/en/Functions/TypehintMustBeReturned.ini  E^  X7      #   human/en/Functions/AliasesUsage.ini3  E^3  	      *   human/en/Functions/CouldTypeWithString.ini  E^  D      $   human/en/Functions/UselessReturn.ini  E^  9      +   human/en/Functions/ConditionedFunctions.ini  E^  1¤      $   human/en/Functions/CouldTypehint.ini  E^  a      &   human/en/Functions/CouldBeCallable.ini
  E^
  ~d      +   human/en/Functions/MultipleDeclarations.ini  E^  rɤ      '   human/en/Functions/UselessTypeCheck.ini  E^  >q      &   human/en/Functions/UsingDeprecated.ini-  E^-  #<      ,   human/en/Functions/RedeclaredPhpFunction.iniq  E^q  8Z      *   human/en/Functions/WrongTypehintedName.ini  E^           human/en/Functions/KillsApp.ini  E^  Y      &   human/en/Functions/ParameterHiding.ini;  E^;        $   human/en/Functions/IsExtFunction.inil  E^l  g      /   human/en/Functions/OnlyVariableForReference.ini`  E^`  "      )   human/en/Functions/NeverUsedParameter.ini  E^  +      ,   human/en/Functions/MultipleSameArguments.ini/  E^/  ?      &   human/en/Functions/UnusedFunctions.ini	  E^	  '      %   human/en/Functions/UselessDefault.ini  E^  H~V      -   human/en/Functions/WrongNumberOfArguments.ini  E^  mS:      $   human/en/Functions/RelayFunction.ini  E^  >4      2   human/en/Functions/FunctionCalledWithOtherCase.iniT  E^T  r      -   human/en/Functions/WrongOptionalParameter.ini;  E^;  扆      &   human/en/Functions/CouldCentralize.iniN  E^N  T      *   human/en/Functions/UnusedReturnedValue.iniS  E^S  [W]      /   human/en/Functions/MultipleIdenticalClosure.ini  E^  =d&      (   human/en/Functions/NoClassAsTypehint.ini  E^  3k      )   human/en/Functions/funcGetArgModified.ini  E^  \      '   human/en/Functions/CouldTypeWithInt.ini  E^  aY      (   human/en/Functions/VariableArguments.ini}  E^}  'd      *   human/en/Functions/CallbackNeedsReturn.ini  E^        &   human/en/Functions/AddDefaultValue.ini  E^  z
c          human/en/Functions/Recursive.inia  E^a  ic      !   human/en/Functions/MustReturn.ini  E^        (   human/en/Functions/WrongTypeWithCall.ini  E^  $          human/en/Functions/WrongCase.ini  E^  s<f      )   human/en/Functions/HardcodedPasswords.ini  E^  <;      +   human/en/Functions/CouldBeStaticClosure.ini  E^  ϭ      (   human/en/Functions/CouldTypeWithBool.ini  E^  N      +   human/en/Functions/AvoidBooleanArgument.ini  E^  VIR      '   human/en/Functions/BadTypehintRelay.inil  E^l        (   human/en/Functions/TooManyParameters.ini  E^  ߤ      (   human/en/Functions/WrongReturnedType.iniE  E^E  	      )   human/en/Functions/MismatchedTypehint.ini4  E^4  [=      (   human/en/Functions/ExceedingTypehint.ini\  E^\  Oa7      $   human/en/Functions/Functionnames.iniF  E^F  X`8      )   human/en/Functions/UndefinedFunctions.ini  E^  ?:      %   human/en/Functions/Closure2String.ini  E^  (L      (   human/en/Functions/UseArrowFunctions.iniT  E^T  Ĥw      ,   human/en/Functions/GeneratorCannotReturn.ini  E^  _      -   human/en/Functions/UseConstantAsArguments.ini  E^  ?      ,   human/en/Functions/CouldTypeWithIterable.ini~  E^~  Um茤         human/en/Psr/Psr3Usage.iniW  E^W  ]P         human/en/Psr/Psr16Usage.ini  E^  C         human/en/Psr/Psr11Usage.ini  E^  S]         human/en/Psr/Psr7Usage.ini  E^  O|         human/en/Psr/Psr6Usage.ini  E^  xgi         human/en/Psr/Psr13Usage.ini  E^  lA      (   human/en/Rulesets/CompatibilityPHP72.iniv   E^v   pby      (   human/en/Rulesets/CompatibilityPHP73.iniv   E^v   }      (   human/en/Rulesets/CompatibilityPHP71.iniv   E^v   z@>      (   human/en/Rulesets/CompatibilityPHP70.iniv   E^v   Ÿ      (   human/en/Rulesets/CompatibilityPHP74.iniv   E^v   V'         human/en/Rulesets/Security.iniG   E^G   B9          human/en/Rulesets/Typechecks.ini   E^   Q         human/en/Rulesets/Semantics.ini   E^   1_      "   human/en/Rulesets/Performances.ini{   E^{   e      "   human/en/Rulesets/php-cs-fixer.ini"  E^"  $-36         human/en/Rulesets/Rector.ini   E^   e(tJ      (   human/en/Rulesets/Coding Conventions.ini   E^   ^A      !   human/en/Rulesets/ClassReview.ini   E^   f      $   human/en/Rulesets/php-cs-fixable.ini"  E^"  k      %   human/en/Rulesets/LintButWontExec.ini   E^   
?      (   human/en/Rulesets/CompatibilityPHP53.iniv   E^v   ~`      !   human/en/Rulesets/Suggestions.ini   E^   B%M         human/en/Rulesets/Analyze.iniu   E^u   ?      (   human/en/Rulesets/CompatibilityPHP55.iniv   E^v   ܁         human/en/Rulesets/Top10.ini   E^         (   human/en/Rulesets/CompatibilityPHP54.iniv   E^v   lҠ      (   human/en/Rulesets/CompatibilityPHP56.iniv   E^v   uƤ         human/en/Rulesets/Dead code.ini   E^   *v"      (   human/en/Rulesets/CompatibilityPHP80.iniv   E^v   X      #   human/en/Typehints/CouldNotType.ini^  E^^  (2      "   human/en/Typehints/CouldBeVoid.ini  E^         $   human/en/Typehints/CouldBeString.ini;  E^;  !PϤ      %   human/en/Typehints/CouldBeBoolean.ini=  E^=  3      !   human/en/Typehints/CouldBeCIT.ini\  E^\  Z=5      #   human/en/Typehints/CouldBeArray.ini^  E^^  kK      #   human/en/Modules/DefinedClasses.ini{  E^{  WU      !   human/en/Modules/IncomingData.ini  E^  Zo      &   human/en/Modules/NativeReplacement.ini  E^  F      !   human/en/Custom/NotInThisList.ini  E^  :         human/en/Custom/.gitignoreF   E^F   @         human/en/DSL/Back.inix   E^x   !*+         human/en/DSL/CodeIsNot.ini   E^   a&W         human/en/DSL/CountBy.ini^   E^^   4n7x         human/en/DSL/FollowCalls.ini   E^   >l         human/en/DSL/HasNoClass.ini   E^   {[         human/en/DSL/AddETo.ini   E^   ]b!         human/en/DSL/Not.ini  E^  X         human/en/DSL/NoQuery.ini   E^   .         human/en/DSL/IsInCatchBlock.inis   E^s   Pa         human/en/DSL/SavePropertyAs.inis   E^s   Q      "   human/en/DSL/CollectContainers.ini|   E^|   4         human/en/DSL/FullcodeIsNot.ini  E^  F          human/en/DSL/StopQuery.ini   E^   \|         human/en/DSL/FollowValue.ini5  E^5  x      "   human/en/DSL/NoClassDefinition.ini|   E^|   ]S         human/en/DSL/IsNotLowercase.inis   E^s   03         human/en/DSL/HasNoFunction.inip   E^p   iՕ      -   human/en/DSL/NoAnalyzerInsideWithProperty.ini   E^   4         human/en/DSL/GoToImplements.inis   E^s   /_         human/en/DSL/InIsNot.inix   E^x   . Τ         human/en/DSL/IsNotIgnored.ini   E^   0v֤         human/en/DSL/IsNotHash.inid   E^d   i Y         human/en/DSL/IsLess.ini[   E^[   *          human/en/DSL/HasNoClassTrait.ini   E^   Ϥy         human/en/DSL/NoCodeInside.inim   E^m    Ӥ      !   human/en/DSL/GoToCurrentScope.iniy   E^y   *<]g         human/en/DSL/IsNullable.ini   E^            human/en/DSL/HasInterface.ini   E^   1=         human/en/DSL/RegexIsNot.ini   E^   6         human/en/DSL/InitVariable.inim   E^m   )         human/en/DSL/HasNoChildren.inip   E^p   Ftv         human/en/DSL/NextSiblings.inim   E^m   #]$>         human/en/DSL/Range.ini   E^   nL      #   human/en/DSL/AtomInsideWithCall.ini   E^   ܁{         human/en/DSL/SetProperty.inij   E^j   ʲ}ܤ         human/en/DSL/HasNoIn.ini   E^            human/en/DSL/AtomInside.ini   E^            human/en/DSL/HasClass.ini   E^   bޤ         human/en/DSL/GoToExpression.inis   E^s   @|         human/en/DSL/GoToTrait.inid   E^d   `c      #   human/en/DSL/AtomInsideMoreThan.ini   E^   54
         human/en/DSL/HasNoCatch.ini   E^   5         human/en/DSL/Select.ini  E^  ?./      !   human/en/DSL/SaveMethodNameAs.iniy   E^y   %      "   human/en/DSL/HasClassInterface.ini|   E^|   g         human/en/DSL/SameTypehintAs.ini   E^   ֛       '   human/en/DSL/AtomInsideNoDefinition.ini  E^  ۉ         human/en/DSL/PropertyIs.inig   E^g   \c      !   human/en/DSL/HasNoNextSibling.iniy   E^y   m;]	         human/en/DSL/AnalyzerInside.ini   E^            human/en/DSL/GoToClassTrait.ini   E^   2=         human/en/DSL/HasIfthen.ini   E^   3|H         human/en/DSL/_As.ini   E^   ~B         human/en/DSL/HasNoParent.inij   E^j   S      '   human/en/DSL/AnalyzerInsideMoreThan.ini   E^   O      %   human/en/DSL/IsReferencedArgument.ini   E^   PXb      #   human/en/DSL/VariableIsAssigned.ini   E^   E<      !   human/en/DSL/CollectArguments.iniu  E^u  7         human/en/DSL/NoAtomInside.ini   E^         #   human/en/DSL/GoToClassInterface.ini   E^   4F:      "   human/en/DSL/CheckTypeWithAtom.ini  E^  _|          human/en/DSL/IsMissingOrNull.ini   E^   4N?      &   human/en/DSL/AtomInsideNoAnonymous.ini   E^   jo         human/en/DSL/Filter.ini[   E^[            human/en/DSL/Count.iniX   E^X   ]T         human/en/DSL/IsArgument.ini   E^   z         human/en/DSL/NextSibling.inij   E^j   $2       %   human/en/DSL/GoToAllParentsTraits.ini   E^   1      '   human/en/DSL/IsNotExtendingComposer.ini   E^   PkE         human/en/DSL/HasAtomInside.inip   E^p   te         human/en/DSL/Command.ini^   E^^   1	         human/en/DSL/Implementing.inim   E^m   Jm          human/en/DSL/NoChildWithRank.ini   E^   5K      !   human/en/DSL/MakeVariableName.iniy   E^y   o         human/en/DSL/DSLFactory.inig   E^g   ~ʦ         human/en/DSL/IsNot.ini   E^   X         human/en/DSL/GetVariable.ini'  E^'  Q      !   human/en/DSL/NoFunctionInside.iniy   E^y   qK         human/en/DSL/CollectMethods.iniV  E^V  bP      "   human/en/DSL/NoTraitDefinition.ini|   E^|   Զc         human/en/DSL/IsReassigned.inim   E^m   *         human/en/DSL/GoToAllParents.inis   E^s   d9!      !   human/en/DSL/NoDelimiterIsNot.ini   E^   w?         human/en/DSL/GoToAllTraits.inip   E^p   uS          human/en/DSL/GoToTraits.inig   E^g            human/en/DSL/GetNameInFNP.inim   E^m   (ы         human/en/DSL/IsThis.ini   E^            human/en/DSL/GoToAllElse.inij   E^j   =9          human/en/DSL/GetStringLength.iniv   E^v   o/&         human/en/DSL/AtomIsNot.ini}   E^}   El      $   human/en/DSL/InterfaceDefinition.ini   E^   )         human/en/DSL/Extending.inid   E^d            human/en/DSL/FullcodeIs.inig   E^g   R6          human/en/DSL/HasNoComparison.iniv   E^v   "         human/en/DSL/IsMore.ini[   E^[   uϤ      %   human/en/DSL/AtomInsideExpression.ini   E^   _ J         human/en/DSL/Optional.ini  E^  XI         human/en/DSL/ReturnCount.inij   E^j            human/en/DSL/GoToNamespace.inip   E^p   Б         human/en/DSL/GoToLoop.ini   E^            human/en/DSL/HasInstruction.inis   E^s   kz      $   human/en/DSL/SamePropertyAsArray.ini   E^   c         human/en/DSL/IsUppercase.inij   E^j   %      #   human/en/DSL/OutWithoutLastRank.ini   E^   ¤         human/en/DSL/TokenIsNot.ini   E^   }[         human/en/DSL/OtherSiblings.inip   E^p            human/en/DSL/Property.inia   E^a   5      "   human/en/DSL/FunctioncallIsNot.ini|   E^|   =	d         human/en/DSL/FullcodeInside.inis   E^s   6w&`         human/en/DSL/IsVisible.php   E^   y         human/en/DSL/IsEqual.ini^   E^^   ?         human/en/DSL/Is.inil   E^l   Ӷ8         human/en/DSL/HasTryCatch.ini   E^   I      "   human/en/DSL/NotSamePropertyAs.ini|   E^|   >4          human/en/DSL/HasNoDefinition.iniv   E^v   }Wgw      (   human/en/DSL/GoToClassInterfaceTrait.ini   E^   iZ¤         human/en/DSL/AnalyzerIs.ini   E^   -W         human/en/DSL/HasChildren.inij   E^j   VS      (   human/en/DSL/HasNoConstantDefinition.ini   E^   c      !   human/en/DSL/HasNoInstruction.iniy   E^y   1I         human/en/DSL/IsNotLiteral.inim   E^m   IT         human/en/DSL/FunctioncallIs.inis   E^s   ʗ          human/en/DSL/PreviousSibling.iniv   E^v   H         human/en/DSL/OutIs.inia   E^a   e          human/en/DSL/NoUseDefinition.iniv   E^v   ؤ         human/en/DSL/InIsIE.inix   E^x         $   human/en/DSL/HasNoClassInterface.ini   E^   T|%      !   human/en/DSL/NoFullcodeInside.iniy   E^y   cV         human/en/DSL/HasNoIfthen.ini   E^   *         human/en/DSL/FullnspathIs.inim   E^m   8xI      $   human/en/DSL/IsComplexExpression.ini   E^   m         human/en/DSL/PreviousCalls.ini  E^  ԋ         human/en/DSL/HasParent.inid   E^d   7T         human/en/DSL/HasLoop.ini   E^   A      $   human/en/DSL/HasVariadicArgument.ini   E^   ¤      &   human/en/DSL/CodeIsPositiveInteger.ini   E^            human/en/DSL/FullcodeLength.inis   E^s   e:         human/en/DSL/CollectTraits.ini   E^   *9ä         human/en/DSL/IsNotUppercase.inis   E^s   7Ҥ         human/en/DSL/GoToInterface.inip   E^p   56         human/en/DSL/CodeIs.ini}   E^}         %   human/en/DSL/IsNotInheritedMethod.ini   E^   5O?         human/en/DSL/PropertyIsNot.inip   E^p   '         human/en/DSL/OutIsIE.ini   E^   
JФ         human/en/DSL/Trim.ini  E^  Nr<2      #   human/en/DSL/HasTraitDefinition.ini   E^   -̤         human/en/DSL/CodeLength.ini   E^   >3      !   human/en/DSL/FollowExpression.iniy   E^y   Nv      "   human/en/DSL/IsPropertyDefined.ini   E^   wϤ         human/en/DSL/HasNoInterface.ini   E^   %toA         human/en/DSL/FetchContext.inim   E^m   ;         human/en/DSL/GoToArray.inid   E^d   $9         human/en/DSL/HasClassTrait.inip   E^p   *         human/en/DSL/SaveOutAs.inid   E^d   ;ޤ         human/en/DSL/NotExtending.inim   E^m   bTte         human/en/DSL/AddEFrom.ini   E^   NjҤ         human/en/DSL/Unique.ini[   E^[         !   human/en/DSL/PreviousSiblings.iniy   E^y   OB         human/en/DSL/IsNotNullable.ini   E^            human/en/DSL/GroupCount.inig   E^g   4gW         human/en/DSL/FunctionInside.inis   E^s   k\      !   human/en/DSL/CollectVariables.iniy   E^y   t	      "   human/en/DSL/CollectImplements.ini|   E^|   K<B      "   human/en/DSL/HasPropertyInside.ini|   E^|   S      &   human/en/DSL/HasFunctionDefinition.ini   E^   B         human/en/DSL/AtomIs.init   E^t   8Al         human/en/DSL/HasNoUsage.inig   E^g   J){          human/en/DSL/GoToAllChildren.iniv   E^v   V      "   human/en/DSL/NotSameTypehintAs.ini   E^   lwʤ         human/en/DSL/IsHash.ini[   E^[   r      !   human/en/DSL/GoToLiteralValue.iniy   E^y   B      &   human/en/DSL/HasNoVariadicArgument.ini   E^   9-3         human/en/DSL/HasNoLoop.ini   E^   j48         human/en/DSL/Raw.ini   E^   sI^      #   human/en/DSL/FunctionDefinition.ini   E^   ^         human/en/DSL/RegexIs.inil   E^l            human/en/DSL/HasFunction.inij   E^j   M         human/en/DSL/GroupFilter.inij   E^j   e         human/en/DSL/NoDelimiterIs.ini   E^   @$         human/en/DSL/AnalyzerIsNot.ini   E^   Ҥ         human/en/DSL/IsNotMixedcase.inis   E^s   f&Ƥ         human/en/DSL/Side.iniU   E^U   ?J         human/en/DSL/Dedup.iniX   E^X   mb         human/en/DSL/HasIn.ini   E^            human/en/DSL/FollowAlias.ini  E^  z =      &   human/en/DSL/HasNoNamedInstruction.ini   E^         &   human/en/DSL/NoInterfaceDefinition.ini   E^   Q[w         human/en/DSL/Values.ini[   E^[   #e      %   human/en/DSL/IsNotPropertyDefined.ini   E^   yߤ         human/en/DSL/HasNoOut.ini   E^   p      ,   human/en/DSL/NoAtomWithoutPropertyInside.ini   E^   _@         human/en/DSL/IsGlobalCode.inim   E^m   =?       !   human/en/DSL/NoAnalyzerInside.iniy   E^y   yۤ      %   human/en/DSL/NoAtomPropertyInside.ini   E^            human/en/DSL/IsNotEmptyBody.inis   E^s   hDeb         human/en/DSL/TokenIs.iniz   E^z   5ͤ      '   human/en/DSL/HasInterfaceDefinition.ini   E^   	D顤         human/en/DSL/OutIsNot.ini   E^   ,l[         human/en/DSL/GoToParent.inig   E^g   x\@         human/en/DSL/InIs.inik   E^k   1e         human/en/DSL/IsLocalClass.inim   E^m   a      )   human/en/DSL/HasNoClassInterfaceTrait.ini   E^   U      #   human/en/DSL/HasClassDefinition.ini   E^   a         human/en/DSL/IsUsed.ini[   E^[   <         human/en/DSL/OutWithRank.ini   E^   FФ         human/en/DSL/HasNextSibling.inis   E^s   `W&      &   human/en/DSL/HasConstantDefinition.ini   E^   Fä      !   human/en/DSL/HasChildWithRank.iniy   E^y   \b         human/en/DSL/GoToExtends.inij   E^j   p&ۤ         human/en/DSL/Has.ini~   E^~   Ns7          human/en/DSL/ClassDefinition.ini   E^   	gWm         human/en/DSL/GoToFunction.inim   E^m   wk=ʤ         human/en/DSL/HasNo.iniX   E^X   dMb         human/en/DSL/GoToClass.inid   E^d   LX         human/en/DSL/HasTrait.ini|   E^|   BO[Y         human/en/DSL/HasNoTryCatch.ini   E^   x_         human/en/DSL/SamePropertyAs.inis   E^s   Y          human/en/DSL/IsNotLocalClass.iniv   E^v   Wa         human/en/DSL/CollectExtends.inis   E^s             human/en/DSL/HasOut.ini   E^   , 1I          human/en/DSL/FullnspathIsNot.iniv   E^v   (s      "   human/en/DSL/AtomInsideNoBlock.ini   E^   =         human/en/DSL/AtomFunctionIs.ini   E^   F          human/en/DSL/IsNotEmptyArray.iniv   E^v   &         human/en/DSL/IsLowercase.inij   E^j   ^;4          human/en/DSL/GoToInstruction.iniv   E^v   ]F      $   human/en/DSL/GoToFirstExpression.ini   E^   
,`         human/en/DSL/FollowParAs.ini  E^  D!;̤      (   human/en/DSL/HasNoFunctionDefinition.ini   E^   [|         human/en/DSL/VariableIsRead.inis   E^s   ƬǤ      "   human/en/DSL/GoToAllImplements.ini|   E^|   K          human/en/DSL/NotImplementing.iniv   E^v   w         human/en/DSL/IsNotArgument.ini   E^   р      (   human/en/DSL/HasNoCountedInstruction.ini   E^            human/en/DSL/IsLiteral.iniv   E^v   PG      #   human/en/DSL/FullcodeVariableIs.ini   E^            human/en/DSL/HasNoTrait.ini   E^   p         human/en/DSL/Ignore.ini[   E^[   k7o         human/en/DSL/GoToFile.ini   E^   p       &   human/en/Interfaces/UsedInterfaces.ini  E^  Ѥ      (   human/en/Interfaces/IsNotImplemented.ini  E^  _      (   human/en/Interfaces/UnusedInterfaces.inid  E^d  D
F         human/en/Interfaces/Php.ini  E^  q      *   human/en/Interfaces/PossibleInterfaces.ini  E^  ;      0   human/en/Interfaces/CantImplementTraversable.ini  E^  n@[      &   human/en/Interfaces/Interfacenames.ini  E^  PԤ      '   human/en/Interfaces/InterfaceMethod.ini   E^   9kl      )   human/en/Interfaces/UselessInterfaces.ini  E^  z      5   human/en/Interfaces/NoGaranteeForPropertyConstant.inim  E^m  di      +   human/en/Interfaces/UndefinedInterfaces.ini  E^  S1ä      )   human/en/Interfaces/CouldUseInterface.ini{  E^{  _Ћ      ,   human/en/Interfaces/AvoidSelfInInterface.ini  E^  ^,      &   human/en/Interfaces/IsExtInterface.ini  E^  :p1      &   human/en/Interfaces/InterfaceUsage.iniZ  E^Z  M      *   human/en/Interfaces/ConcreteVisibility.ini  E^  (Ĥ      )   human/en/Interfaces/RepeatedInterface.ini  E^  !f      &   human/en/Interfaces/EmptyInterface.ini  E^  L      /   human/en/Interfaces/AlreadyParentsInterface.ini  E^  gm          human/en/Reports/RadwellCode.ini  E^  x'      #   human/en/Reports/PhpCompilation.iniw  E^w  E}          human/en/Reports/Inventories.iniD  E^D  n+      #   human/en/Reports/Clustergrammer.ini  E^  ?/0         human/en/Reports/Text.ini  E^  ?o6         human/en/Reports/.DS_Store  E^  j m         human/en/Reports/None.ini7  E^7  \         human/en/Reports/Uml.ini1  E^1  Ӥq         human/en/Reports/Stubs.ini  E^  H*         human/en/Reports/TypeChecks.ini  E^  t.      %   human/en/Reports/PhpConfiguration.iniv  E^v  sL         human/en/Reports/Yaml.ini(  E^(  ;DY         human/en/Reports/StubsJson.ini  E^  3)௤      )   human/en/Reports/Filedependencieshtml.ini  E^  Ƙ`L         human/en/Reports/Stats.init  E^t  m*         human/en/Reports/Composer.inia  E^a  `1Z         human/en/Reports/Ambassador.ini  E^  U         human/en/Reports/History.ini  E^   z      &   human/en/Reports/Classdependencies.ini  E^  '{n         human/en/Reports/Rector.ini  E^  >V      %   human/en/Reports/Filedependencies.ini  E^  fʫ         human/en/Reports/Plantuml.ini  E^  s҂         human/en/Reports/Diplomat.ini`  E^`  |x+         human/en/Reports/Xml.ini?  E^?  4-S         human/en/Reports/Marmelab.ini  E^  }{         human/en/Reports/Phpcsfixer.ini	  E^	  VJp          human/en/Reports/ClassReview.ini  E^           human/en/Reports/Owasp.ini  E^  JвT         human/en/Reports/Meters.ini  E^  +2         human/en/Reports/Sarb.ini  E^  <"
o          human/en/Reports/BeautyCanon.ini  E^  b5          human/en/Reports/SimpleTable.ini  E^  <          human/en/Reports/CodeSniffer.ini  E^  .      $   human/en/Reports/DependencyWheel.ini  E^   6sa         human/en/Reports/Json.ini(  E^(  Z         human/en/Reports/Perfile.ini  E^  ԥ         human/en/Reports/CodeFlower.ini  E^  zW         human/en/Reports/Exakatyaml.ini  E^  s̀         human/en/Reports/Top10.ini'  E^'  ,j         human/en/Reports/Topology.inin  E^n  ? F         human/en/Reports/Phpcity.iniG  E^G           media/tidy.txt1  E^1  |Tj         media/clang/index.htmlJ  E^J  Aۛ         media/clang/sorttable.jsA  E^A  %Ҥ         media/clang/scanview.css  E^  q         media/.DS_Store(  E^(  m"         media/simpletable/index.html  E^  ,         media/simpletable/css/style.css  E^           media/simpletable/js/index.js   E^   4p         media/simpletable/README.txt`   E^`   #Z         media/simpletable/license.txtV  E^V  NS      .   media/dependencies/graphalchemy/alchemy.min.js E^ =      *   media/dependencies/graphalchemy/alchemy.js= E^= x      1   media/dependencies/graphalchemy/alchemy-white.css6  E^6  N      /   media/dependencies/graphalchemy/alchemy.min.cssU.  E^U.  Ȩ(x      1   media/dependencies/graphalchemy/styles/vendor.css# E^# 6	      <   media/dependencies/graphalchemy/styles/images/maze-black.png  E^  [<      D   media/dependencies/graphalchemy/styles/fonts/fontawesome-webfont.svg/ E^/ }
      <   media/dependencies/graphalchemy/styles/fonts/FontAwesome.otf% E^% Xy      D   media/dependencies/graphalchemy/styles/fonts/fontawesome-webfont.ttf( E^( $F      E   media/dependencies/graphalchemy/styles/fonts/fontawesome-webfont.woff0G E^0G D֤      D   media/dependencies/graphalchemy/styles/fonts/fontawesome-webfont.eot E^ <w      +   media/dependencies/graphalchemy/alchemy.css7  E^7  O      1   media/dependencies/graphalchemy/scripts/vendor.jscz E^cz ci         media/dependencies/index.html:	  E^:	  qWR         media/dependencies/.DS_Store  E^  yn         media/faceted/index.html	  E^	  곆         media/faceted/faceted.css  E^  ;ꦤ         media/faceted/docs.html-  E^-  8         media/faceted/app.jsZ  E^Z  ɟ          media/dependencywheel/index.htmlI  E^I  Bzp         media/dependencywheel/LICENSE&  E^&  }      +   media/dependencywheel/css/bootstrap.min.cssՊ E^Պ G      .   media/dependencywheel/js/d3.dependencyWheel.js;  E^;  u      %   media/dependencywheel/js/d3.v4.min.jsD E^D >      +   media/dependencywheel/js/composerBuilder.js  E^           media/dependencywheel/README.md  E^  Y"5      .   media/dependencywheel/img/dependency_chord.gif E^ P      "   media/dependencywheel/package.json  E^         (   media/dependencywheel/data/composer.lock0 E^0 h}ZE      (   media/dependencywheel/data/composer.json  E^  $         media/devfaceted/index.html  E^  󲒤         media/devfaceted/.DS_Store   E^   N1դ      )   media/devfaceted/data/sortable_table.html  E^  ox+      "   media/devfaceted/data/appinfo.html3  E^3  Ӥ      !   media/devfaceted/data/level1.htmlU  E^U  ?e      ,   media/devfaceted/data/foreach_favorites.html  E^  ¤      (   media/devfaceted/data/classes_depth.html  E^  *k      !   media/devfaceted/data/levels.html  E^  2jL      ,   media/devfaceted/data/external_services.html[  E^[  wؤ      !   media/devfaceted/data/weekly.html  E^  zX      .   media/devfaceted/data/favorites_dashboard.htmlL  E^L  )z      0   media/devfaceted/data/local_variable_counts.html  E^  C$      *   media/devfaceted/data/deadcode_issues.html  E^            media/devfaceted/data/stats.html  E^  OF1      &   media/devfaceted/data/index_melis.htmlC
  E^C
  UMޤ      *   media/devfaceted/data/menuMigration73.html  E^  1C      )   media/devfaceted/data/annex_settings.html  E^  DƏ(          media/devfaceted/data/index.html  E^  Ƞ          media/devfaceted/data/.DS_Store  E^  K譗      !   media/devfaceted/data/review.html  E^  6턤      %   media/devfaceted/data/proc_files.html`  E^`  YҤ      *   media/devfaceted/data/php_compilation.htmlB  E^B           media/devfaceted/data/base.html   E^   ^eǤ      '   media/devfaceted/data/annex_config.html  E^  JN      )   media/devfaceted/data/directive_list.html2  E^2  U3      )   media/devfaceted/data/extension_list.html  E^  M      +   media/devfaceted/data/fixes_phpcsfixer.html  E^  *      %   media/devfaceted/data/images/logo.png!T  E^!T  Ĥ      *   media/devfaceted/data/index_migration.html/	  E^/	        '   media/devfaceted/data/dynamic_code.html  E^  =!Ƥ      0   media/devfaceted/data/local_property_counts.html  E^  3"+      $   media/devfaceted/data/neoissues.htmlM  E^M  uq      .   media/devfaceted/data/local_method_counts.html	  E^	  w      &   media/devfaceted/data/inventories.html  E^  Ф      '   media/devfaceted/data/analyses_doc.html  E^  ä      /   media/devfaceted/data/compatibility_issues.html  E^  i      !   media/devfaceted/data/issues.html  E^  6턤      )   media/devfaceted/data/typehint_stats.htmll  E^l  -Լˤ         media/devfaceted/data/menu.html  E^   U          media/devfaceted/data/files.htmlj  E^j  
      *   media/devfaceted/data/identical_files.html  E^  bɤ         media/devfaceted/data/pmb.html  E^  6턤      -   media/devfaceted/data/indentation_levels.html  E^  NDŤ          media/devfaceted/data/codes.html  E^  7      /   media/devfaceted/data/dereferencing_levels.html  E^  ƒm      +   media/devfaceted/data/favorites_issues.html  E^  J<v      #   media/devfaceted/data/bugfixes.htmlS  E^S  *,      '   media/devfaceted/data/styles/vendor.cssσ E^σ uh      %   media/devfaceted/data/styles/main.cssO E^O 39ݤ      '   media/devfaceted/data/styles/exakat.css~   E^~   F;      %   media/devfaceted/data/styles/tree.css  E^  m:      &   media/devfaceted/data/suggestions.html8  E^8        .   media/devfaceted/data/complex_expressions.htmlL  E^L  p%ؤ      *   media/devfaceted/data/security_issues.html  E^  %B      (   media/devfaceted/data/used_settings.htmlT  E^T  #G      (   media/devfaceted/data/compatibility.html  E^  CW      $   media/devfaceted/data/no_issues.html  E^  !      !   media/devfaceted/data/level4.htmlN  E^N  4      /   media/devfaceted/data/scripts/highlight.pack.js:1  E^:1  Dä      .   media/devfaceted/data/scripts/clipboard.min.js*  E^*  q7      '   media/devfaceted/data/scripts/exakat.js!   E^!   ={z      '   media/devfaceted/data/scripts/vendor.js
 E^
 7N      +   media/devfaceted/data/scripts/datatables.js  E^  gi      .   media/devfaceted/data/scripts/facetedsearch.js4  E^4  T?ݤ      *   media/devfaceted/data/scripts/dashboard.jsj  E^j  Bl:      .   media/devfaceted/data/performances_issues.html  E^  .p      .   media/devfaceted/data/variables_confusing.html
  E^
  ؤ      -   media/devfaceted/data/altered_directives.html  E^  ͤ      1   media/devfaceted/data/compatibility_shopware.htmly  E^y  b      "   media/devfaceted/data/ext_lib.html  E^  OQ      +   media/devfaceted/data/parameter_counts.html  E^  ]}      *   media/devfaceted/data/changed_classes.html  E^  
mޤ      !   media/devfaceted/data/level3.htmlN  E^N  $ؤ      #   media/devfaceted/data/analyses.html3  E^3  g      (   media/devfaceted/data/annex_ruleset.html  E^  ϱ      '   media/devfaceted/data/index_weekly.html  E^  jˤ      #   media/devfaceted/data/cit_size.html  E^  ~!      '   media/devfaceted/data/menuShopware.html  E^  Tˤ          media/devfaceted/data/robots.txt+   E^+   i      "   media/devfaceted/data/credits.html  E^  >      (   media/devfaceted/data/proc_analyses.html  E^  9a      .   media/devfaceted/data/concentrated_issues.html  E^  )wŤ      3   media/devfaceted/data/fonts/fontawesome-webfont.svg E^ Jt      +   media/devfaceted/data/fonts/FontAwesome.otf< E^< CǤ      =   media/devfaceted/data/fonts/glyphicons-halflings-regular.woff[  E^[  {      <   media/devfaceted/data/fonts/glyphicons-halflings-regular.eotN  E^N  XǱ      %   media/devfaceted/data/fonts/.DS_Store  E^  j m      <   media/devfaceted/data/fonts/sourcesanspro-bold-webfont.woff2[  E^[  GǤ      ?   media/devfaceted/data/fonts/sourcesanspro-regular-webfont.woff2\  E^\  S      >   media/devfaceted/data/fonts/glyphicons-halflings-regular.woff2lF  E^lF  va      <   media/devfaceted/data/fonts/glyphicons-halflings-regular.ttf\  E^\  <      5   media/devfaceted/data/fonts/fontawesome-webfont.woff2 E^ ȗȤ      3   media/devfaceted/data/fonts/fontawesome-webfont.ttfT E^T _      4   media/devfaceted/data/fonts/fontawesome-webfont.woff,a E^,a ,kq#      <   media/devfaceted/data/fonts/glyphicons-halflings-regular.svg¨ E^¨ |ɤ      ;   media/devfaceted/data/fonts/sourcesanspro-bold-webfont.woffr  E^r  dzp      3   media/devfaceted/data/fonts/fontawesome-webfont.eot* E^* ^      >   media/devfaceted/data/fonts/sourcesanspro-regular-webfont.woffdt  E^dt  2      5   media/devfaceted/data/compatibility_compilations.html  E^  5!          media/devfaceted/data/empty.html  E^  w      )   media/devfaceted/data/error_messages.html  E^  A      "   media/devfaceted/data/globals.htmll  E^l  !      '   media/devfaceted/data/fixes_rector.html  E^  ;^      !   media/devfaceted/data/level2.html  E^  ##+         media/codeflower/favicon.ico~  E^~  
je         media/codeflower/index.html  E^  {Τ         media/codeflower/LICENSE&  E^&  }      -   media/codeflower/javascripts/dataConverter.js  E^  F      ,   media/codeflower/javascripts/d3/d3.layout.js2  E^2  15      +   media/codeflower/javascripts/d3/detector.js-  E^-  hפ      %   media/codeflower/javascripts/d3/d3.js$ E^$ DY      *   media/codeflower/javascripts/d3/d3.geom.jsIV  E^IV  DL      *   media/codeflower/javascripts/CodeFlower.js  E^  3          media/codeflower/data/empty.json   E^   2      .   media/codeflower/stylesheets/bootstrap.min.cssӝ E^ӝ '       9   media/codeflower/stylesheets/bootstrap-responsive.min.cssA  E^A  Ȣ      &   media/codeflower/stylesheets/style.css   E^   q         media/hartija.cssE  E^E           media/template.odt  E^  q         server/gsneo4j/gsneo4j.3.2.yaml  E^  #q6u          server/gsneo4j/exakat.properties  E^  ]         server/gsneo4j/gsneo4j.3.3.yaml  E^  5         server/gsneo4j/gsneo4j.3.4.yaml  E^  5          server/gsneo4j/gremlin-server.sh  E^  9s         server/lint_short_tags.php  E^  }xb         server/exakat.ini  E^  Eqi         server/.DS_Store   E^   ~Ť         server/dump.php  E^  w         server/index.php0  E^0  Bw         server/gsneo4jv3/.DS_Store  E^  j m      "   server/gsneo4jv3/exakat.properties  E^  ]      #   server/gsneo4jv3/gsneo4jv3.3.4.yaml  E^  D[      "   server/gsneo4jv3/gremlin-server.sh  E^  9s         server/tinkergraphv3/.DS_Store  E^  j m      +   server/tinkergraphv3/tinkergraphv3.3.4.yamlL
  E^L
  v      &   server/tinkergraphv3/gremlin-server.sh  E^  9s      '   server/tinkergraph/tinkergraph.3.3.yamlK
  E^K
  P         server/tinkergraph/.DS_Store  E^  j m      '   server/tinkergraph/tinkergraph.3.2.yaml  E^  `      '   server/tinkergraph/tinkergraph.3.4.yamlK
  E^K
  P      $   server/tinkergraph/gremlin-server.sh  E^  9s         server/proxy.php(  E^(  `5-Ϥ         server/api.php$  E^$  7k      1   server/janusgraph/conf/gremlin-server/exakat.yaml,	  E^,	           server/orientdb/.DS_Store  E^  j m      !   server/orientdb/orientdb.3.4.yamlL
  E^L
  v      !   server/orientdb/gremlin-server.sh  E^  9s         server/lint.php  E^  "         vendor/autoload.php   E^   fl      &   vendor/php-cs-fixer/diff/LICENSE_GECKO.  E^.  E          vendor/php-cs-fixer/diff/LICENSE  E^  AW      %   vendor/php-cs-fixer/diff/LICENSE_DIFF  E^  i      %   vendor/php-cs-fixer/diff/ChangeLog.md   E^   Ƥ      "   vendor/php-cs-fixer/diff/README.md  E^  Ť      &   vendor/php-cs-fixer/diff/composer.json  E^  Z      *   vendor/php-cs-fixer/diff/src/v2_0/Diff.phpZ  E^Z  {      ,   vendor/php-cs-fixer/diff/src/v2_0/Parser.phpw  E^w  }SM      U   vendor/php-cs-fixer/diff/src/v2_0/TimeEfficientLongestCommonSubsequenceCalculator.php  E^  I      B   vendor/php-cs-fixer/diff/src/v2_0/Output/DiffOnlyOutputBuilder.phpj  E^j  b5      G   vendor/php-cs-fixer/diff/src/v2_0/Output/DiffOutputBuilderInterface.php  E^  ;      E   vendor/php-cs-fixer/diff/src/v2_0/Output/UnifiedDiffOutputBuilder.php  E^  W?      G   vendor/php-cs-fixer/diff/src/v2_0/Output/AbstractChunkOutputBuilder.php)  E^)  xK      H   vendor/php-cs-fixer/diff/src/v2_0/LongestCommonSubsequenceCalculator.php  E^  M       +   vendor/php-cs-fixer/diff/src/v2_0/Chunk.php3  E^3  $$      ,   vendor/php-cs-fixer/diff/src/v2_0/Differ.php#  E^#  [      *   vendor/php-cs-fixer/diff/src/v2_0/Line.php  E^  ``      H   vendor/php-cs-fixer/diff/src/v2_0/Exception/InvalidArgumentException.phpg  E^g  &:      9   vendor/php-cs-fixer/diff/src/v2_0/Exception/Exception.php%  E^%  M-)      W   vendor/php-cs-fixer/diff/src/v2_0/MemoryEfficientLongestCommonSubsequenceCalculator.php-  E^-  }      *   vendor/php-cs-fixer/diff/src/v3_0/Diff.phpZ  E^Z  -k      ,   vendor/php-cs-fixer/diff/src/v3_0/Parser.phpw  E^w  ɻ      U   vendor/php-cs-fixer/diff/src/v3_0/TimeEfficientLongestCommonSubsequenceCalculator.php  E^  ;ʤ      B   vendor/php-cs-fixer/diff/src/v3_0/Output/DiffOnlyOutputBuilder.php  E^  F6      G   vendor/php-cs-fixer/diff/src/v3_0/Output/DiffOutputBuilderInterface.php  E^  |ót      E   vendor/php-cs-fixer/diff/src/v3_0/Output/UnifiedDiffOutputBuilder.php  E^        K   vendor/php-cs-fixer/diff/src/v3_0/Output/StrictUnifiedDiffOutputBuilder.php(  E^(  ~      G   vendor/php-cs-fixer/diff/src/v3_0/Output/AbstractChunkOutputBuilder.php)  E^)  H¤      H   vendor/php-cs-fixer/diff/src/v3_0/LongestCommonSubsequenceCalculator.php  E^  PѤ      +   vendor/php-cs-fixer/diff/src/v3_0/Chunk.php3  E^3  ޣ      ,   vendor/php-cs-fixer/diff/src/v3_0/Differ.php$  E^$  y1      *   vendor/php-cs-fixer/diff/src/v3_0/Line.php  E^  2p      F   vendor/php-cs-fixer/diff/src/v3_0/Exception/ConfigurationException.php  E^  P      H   vendor/php-cs-fixer/diff/src/v3_0/Exception/InvalidArgumentException.phpg  E^g   
       9   vendor/php-cs-fixer/diff/src/v3_0/Exception/Exception.php%  E^%  ׮M      W   vendor/php-cs-fixer/diff/src/v3_0/MemoryEfficientLongestCommonSubsequenceCalculator.php-  E^-        *   vendor/php-cs-fixer/diff/src/v1_4/Diff.php  E^  q;E      ,   vendor/php-cs-fixer/diff/src/v1_4/Parser.php  E^  zä      ]   vendor/php-cs-fixer/diff/src/v1_4/LCS/TimeEfficientLongestCommonSubsequenceImplementation.php  E^  Aãä      B   vendor/php-cs-fixer/diff/src/v1_4/LCS/LongestCommonSubsequence.phph  E^h  S      _   vendor/php-cs-fixer/diff/src/v1_4/LCS/MemoryEfficientLongestCommonSubsequenceImplementation.phpP	  E^P	  WdO      +   vendor/php-cs-fixer/diff/src/v1_4/Chunk.php  E^        ,   vendor/php-cs-fixer/diff/src/v1_4/Differ.php)  E^)  =      *   vendor/php-cs-fixer/diff/src/v1_4/Line.php  E^  ͤ      Y   vendor/php-cs-fixer/diff/src/GeckoPackages/DiffOutputBuilder/UnifiedDiffOutputBuilder.php"  E^"  lU      W   vendor/php-cs-fixer/diff/src/GeckoPackages/DiffOutputBuilder/ConfigurationException.phph  E^h  1         vendor/.DS_Store  E^  O      -   vendor/friendsofphp/php-cs-fixer/php-cs-fixer  E^  <殳      (   vendor/friendsofphp/php-cs-fixer/LICENSES  E^S  RMS      -   vendor/friendsofphp/php-cs-fixer/CHANGELOG.md E^ z      2   vendor/friendsofphp/php-cs-fixer/ci-integration.sh  E^  |U{      F   vendor/friendsofphp/php-cs-fixer/tests/Test/IntegrationCaseFactory.php  E^  ހY      ?   vendor/friendsofphp/php-cs-fixer/tests/Test/IntegrationCase.php  E^  *      E   vendor/friendsofphp/php-cs-fixer/tests/Test/AbstractFixerTestCase.php"  E^"  QH&      K   vendor/friendsofphp/php-cs-fixer/tests/Test/AbstractIntegrationTestCase.php1  E^1        H   vendor/friendsofphp/php-cs-fixer/tests/Test/Assert/AssertTokensTrait.php(  E^(  5捻      E   vendor/friendsofphp/php-cs-fixer/tests/Test/IsIdenticalConstraint.php  E^  C&      N   vendor/friendsofphp/php-cs-fixer/tests/Test/AbstractIntegrationCaseFactory.php  E^  1/       O   vendor/friendsofphp/php-cs-fixer/tests/Test/IntegrationCaseFactoryInterface.php9  E^9   8      N   vendor/friendsofphp/php-cs-fixer/tests/Test/InternalIntegrationCaseFactory.phpW  E^W        3   vendor/friendsofphp/php-cs-fixer/tests/TestCase.php  E^  
(^      0   vendor/friendsofphp/php-cs-fixer/CONTRIBUTING.md
  E^
  h      3   vendor/friendsofphp/php-cs-fixer/doc/checkstyle.xsd!  E^!  9h      7   vendor/friendsofphp/php-cs-fixer/doc/COOKBOOK-FIXERS.md9  E^9  ũ"      1   vendor/friendsofphp/php-cs-fixer/doc/junit-10.xsd  E^  M	      0   vendor/friendsofphp/php-cs-fixer/doc/schema.jsonh  E^h  T      ,   vendor/friendsofphp/php-cs-fixer/doc/xml.xsdd
  E^d
        +   vendor/friendsofphp/php-cs-fixer/UPGRADE.md2  E^2  *Mv      +   vendor/friendsofphp/php-cs-fixer/README.rst?< E^?< ̤      .   vendor/friendsofphp/php-cs-fixer/composer.json  E^  zS      /   vendor/friendsofphp/php-cs-fixer/src/Finder.php  E^        T   vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/ProtectedToPrivateFixer.php$  E^$  +      Q   vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/ClassDefinitionFixer.php!=  E^!=  zӢ      S   vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/FinalStaticAccessFixer.php  E^  dӤ      `   vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/SingleClassElementPerStatementFixer.php.  E^.  	隤      V   vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/OrderedClassElementsFixer.php8  E^8        S   vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/OrderedInterfacesFixer.php  E^  *V      S   vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/NoPhp4ConstructorFixer.php5  E^5  }      T   vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/FinalInternalClassFixer.php  E^  ;n      ^   vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/NoNullPropertyInitializationFixer.php  E^  ,,      L   vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/FinalClassFixer.php  E^  )6.      _   vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/NoBlankLinesAfterClassOpeningFixer.php	  E^	  l2Ҥ      W   vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/NoUnneededFinalMethodFixer.php  E^  l       [   vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/ClassAttributesSeparationFixer.php5  E^5  <UW      N   vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/SelfAccessorFixer.phpu  E^u  ɮ      c   vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/FinalPublicMethodForAbstractClassFixer.php  E^  /\`      T   vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/SelfStaticAccessorFixer.phpo  E^o  C┤      R   vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/MethodSeparationFixer.php5  E^5  ~      T   vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/VisibilityRequiredFixer.php  E^  '鬤      _   vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/SingleTraitInsertPerStatementFixer.php  E^  '      Z   vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoUnneededCurlyBracesFixer.php  E^  ̺T'      X   vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoAlternativeSyntaxFixer.php~  E^~   1J      N   vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/YodaStyleFixer.phpZ  E^Z  "      _   vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/SwitchCaseSemicolonToColonFixer.php	  E^	  (9      X   vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoSuperfluousElseifFixer.php  E^  <p      T   vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/SwitchCaseSpaceFixer.php0	  E^0	  hr      R   vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoUselessElseFixer.php  E^  JZ      K   vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/ElseifFixer.php  E^  kǤ      L   vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/IncludeFixer.php#  E^#        ^   vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoTrailingCommaInListCallFixer.php  E^  F~ߤ      a   vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoUnneededControlParenthesesFixer.php  E^  [^&      S   vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoBreakCommentFixer.phpy/  E^y/  i`^      O   vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/VoidReturnFixer.php  E^        Q   vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/StaticLambdaFixer.phpT  E^T  {V      Z   vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/ReturnTypeDeclarationFixer.php  E^  3'      Z   vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/FunctionTypehintSpaceFixer.phpd
  E^d
  
      X   vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/MethodArgumentSpaceFixer.phpE  E^E  щU      S   vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/FopenFlagOrderFixer.php  E^  /      Y   vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/CombineNestedDirnameFixer.phpZ  E^Z  7'#      ^   vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/NoSpacesAfterFunctionNameFixer.php  E^  `-HZ      W   vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/PhpdocToReturnTypeFixer.php*  E^*  E      ]   vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/NativeFunctionInvocationFixer.php3  E^3  ?z      O   vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/FopenFlagsFixer.php  E^  TI      o   vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/NullableTypeDeclarationForDefaultNullValueFixer.php  E^  \hlŤ      f   vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/NoUnreachableDefaultArgumentValueFixer.php  E^        V   vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/PhpdocToParamTypeFixer.php2  E^2  3YW      P   vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/ImplodeCallFixer.phpi  E^i        T   vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/SingleLineThrowFixer.phpm  E^m  b      X   vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/FunctionDeclarationFixer.php  E^  i      T   vendor/friendsofphp/php-cs-fixer/src/Fixer/ConfigurationDefinitionFixerInterface.php  E^  e      T   vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocReturnSelfReferenceFixer.phpx  E^x  Mwܤ      Z   vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocAddMissingParamAnnotationFixer.php[  E^[  p蹤      c   vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocTrimConsecutiveBlankLineSeparationFixer.php  E^  #Y      J   vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocInlineTagFixer.phpy  E^y         H   vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocSummaryFixer.php
  E^
  K      J   vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocNoPackageFixer.php^  E^^  9ڤ      H   vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/NoEmptyPhpdocFixer.php  E^  T      I   vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocNoAccessFixer.phpN  E^N  h      G   vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocScalarFixer.phpv  E^v  _      X   vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/GeneralPhpdocAnnotationRemoveFixer.php  E^  /{      U   vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocAnnotationWithoutDotFixer.phpI  E^I  !ʭ      I   vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocLineSpanFixer.php  E^  N      P   vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/AlignMultilineCommentFixer.php  E^  ky      K   vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocNoAliasTagFixer.phpp  E^p  u      K   vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocTypesOrderFixer.php  E^        E   vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocTrimFixer.php  E^        Z   vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocVarAnnotationCorrectOrderFixer.php  E^  ]Ȣ      U   vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocSingleLineVarSpacingFixer.php  E^  %̧      R   vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/NoBlankLinesAfterPhpdocFixer.php  E^        F   vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocTypesFixer.php  E^  PO٤      N   vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocNoEmptyReturnFixer.php  E^  \S*      K   vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocSeparationFixer.php  E^  iS      F   vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocOrderFixer.php  E^  }8T      T   vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocNoUselessInheritdocFixer.phpt  E^t  xbޤ      O   vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocVarWithoutNameFixer.php^  E^^  ꮍ5      F   vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocAlignFixer.phpN5  E^N5  2`/      J   vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocToCommentFixer.phpi  E^i  &      R   vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/NoSuperfluousPhpdocTagsFixer.php<  E^<  	/      G   vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocIndentFixer.php  E^  , g      P   vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassUsage/DateTimeImmutableFixer.php  E^  D-0      =   vendor/friendsofphp/php-cs-fixer/src/Fixer/FixerInterface.php  E^  ;~      ^   vendor/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/CombineConsecutiveIssetsFixer.php~  E^~  K;(      ^   vendor/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/ExplicitIndirectVariableFixer.php	  E^	  L      V   vendor/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/ErrorSuppressionFixer.php  E^  {Z      [   vendor/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/DeclareEqualNormalizeFixer.phpN  E^N  <귤      X   vendor/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/FunctionToConstantFixer.php'  E^'  ç      L   vendor/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/IsNullFixer.php  E^  <n      ^   vendor/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/CombineConsecutiveUnsetsFixer.php  E^  {      ^   vendor/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/SilencedDeprecationErrorFixer.php0  E^0  EO튤      Q   vendor/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/DirConstantFixer.phpx  E^x  =ܤ      X   vendor/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/ClassKeywordRemoveFixer.php  E^  ;P\      W   vendor/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/NoUnsetOnPropertyFixer.php  E^  2O      M   vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/BacktickToShellExecFixer.php  E^  uYܤ      G   vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/SetTypeToCastFixer.phpx   E^x   
      L   vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/RandomApiMigrationFixer.phpW  E^W  tV:&      H   vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/MbStrFunctionsFixer.php  E^  Ss      J   vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/NoMixedEchoPrintFixer.phpT  E^T        J   vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/NoAliasFunctionsFixer.php  E^  _f      M   vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/PowToExponentiationFixer.phpQ  E^Q  1~      D   vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/EregToPregFixer.php   E^   )3      D   vendor/friendsofphp/php-cs-fixer/src/Fixer/DefinedFixerInterface.php  E^  '^      ]   vendor/friendsofphp/php-cs-fixer/src/Fixer/NamespaceNotation/BlankLineAfterNamespaceFixer.php  E^  o      b   vendor/friendsofphp/php-cs-fixer/src/Fixer/NamespaceNotation/NoLeadingNamespaceWhitespaceFixer.php#  E^#  `|      d   vendor/friendsofphp/php-cs-fixer/src/Fixer/NamespaceNotation/SingleBlankLineBeforeNamespaceFixer.php  E^  >Ě@      a   vendor/friendsofphp/php-cs-fixer/src/Fixer/NamespaceNotation/NoBlankLinesBeforeNamespaceFixer.php  E^  c      L   vendor/friendsofphp/php-cs-fixer/src/Fixer/CastNotation/NoUnsetCastFixer.php	  E^	  Bs      K   vendor/friendsofphp/php-cs-fixer/src/Fixer/CastNotation/CastSpacesFixer.php  E^   W      P   vendor/friendsofphp/php-cs-fixer/src/Fixer/CastNotation/NoShortBoolCastFixer.php	  E^	  U      P   vendor/friendsofphp/php-cs-fixer/src/Fixer/CastNotation/ShortScalarCastFixer.php
  E^
  &      V   vendor/friendsofphp/php-cs-fixer/src/Fixer/CastNotation/ModernizeTypesCastingFixer.php  E^        N   vendor/friendsofphp/php-cs-fixer/src/Fixer/CastNotation/LowercaseCastFixer.php  E^  	D-      G   vendor/friendsofphp/php-cs-fixer/src/Fixer/Casing/ConstantCaseFixer.php  E^  6      S   vendor/friendsofphp/php-cs-fixer/src/Fixer/Casing/LowercaseStaticReferenceFixer.php  E^  (Ț      L   vendor/friendsofphp/php-cs-fixer/src/Fixer/Casing/LowercaseKeywordsFixer.php  E^  Iɴ      ^   vendor/friendsofphp/php-cs-fixer/src/Fixer/Casing/NativeFunctionTypeDeclarationCasingFixer.php&  E^&  ۜmL      N   vendor/friendsofphp/php-cs-fixer/src/Fixer/Casing/MagicConstantCasingFixer.php	  E^	  |0-      L   vendor/friendsofphp/php-cs-fixer/src/Fixer/Casing/MagicMethodCasingFixer.php  E^  .l:      M   vendor/friendsofphp/php-cs-fixer/src/Fixer/Casing/LowercaseConstantsFixer.php  E^  h      O   vendor/friendsofphp/php-cs-fixer/src/Fixer/Casing/NativeFunctionCasingFixer.php  E^        N   vendor/friendsofphp/php-cs-fixer/src/Fixer/Comment/HashToSlashCommentFixer.phpV  E^V  	vc      J   vendor/friendsofphp/php-cs-fixer/src/Fixer/Comment/NoEmptyCommentFixer.php  E^  P      Y   vendor/friendsofphp/php-cs-fixer/src/Fixer/Comment/NoTrailingWhitespaceInCommentFixer.php7	  E^7	  zbl      I   vendor/friendsofphp/php-cs-fixer/src/Fixer/Comment/HeaderCommentFixer.phpJ;  E^J;  2^      K   vendor/friendsofphp/php-cs-fixer/src/Fixer/Comment/CommentToPhpdocFixer.php  E^  x      R   vendor/friendsofphp/php-cs-fixer/src/Fixer/Comment/SingleLineCommentStyleFixer.phpW  E^W  F      Z   vendor/friendsofphp/php-cs-fixer/src/Fixer/Comment/MultilineCommentOpeningClosingFixer.phpP	  E^P	  ڤ      S   vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpTag/LinebreakAfterOpeningTagFixer.php  E^  
      S   vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpTag/BlankLineAfterOpeningTagFixer.phpR
  E^R
  I]<      I   vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpTag/NoShortEchoTagFixer.php  E^  mz`      I   vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpTag/FullOpeningTagFixer.php  E^  9W6      G   vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpTag/NoClosingTagFixer.php  E^   [[      X   vendor/friendsofphp/php-cs-fixer/src/Fixer/ReturnNotation/BlankLineBeforeReturnFixer.php  E^        W   vendor/friendsofphp/php-cs-fixer/src/Fixer/ReturnNotation/SimplifiedNullReturnFixer.php  E^  :      S   vendor/friendsofphp/php-cs-fixer/src/Fixer/ReturnNotation/ReturnAssignmentFixer.phpm1  E^m1  F5eA      R   vendor/friendsofphp/php-cs-fixer/src/Fixer/ReturnNotation/NoUselessReturnFixer.php  E^  V      G   vendor/friendsofphp/php-cs-fixer/src/Fixer/DeprecatedFixerInterface.php,  E^,  :7@      >   vendor/friendsofphp/php-cs-fixer/src/Fixer/Basic/Psr0Fixer.php  E^  g      B   vendor/friendsofphp/php-cs-fixer/src/Fixer/Basic/EncodingFixer.php  E^  .      O   vendor/friendsofphp/php-cs-fixer/src/Fixer/Basic/NonPrintableCharacterFixer.php  E^  v[W      >   vendor/friendsofphp/php-cs-fixer/src/Fixer/Basic/Psr4Fixer.php  E^  XQ      @   vendor/friendsofphp/php-cs-fixer/src/Fixer/Basic/BracesFixer.phpB  E^B  }vw      M   vendor/friendsofphp/php-cs-fixer/src/Fixer/WhitespacesAwareFixerInterface.php#  E^#  |      `   vendor/friendsofphp/php-cs-fixer/src/Fixer/StringNotation/SimpleToComplexStringVariableFixer.php  E^  01      Q   vendor/friendsofphp/php-cs-fixer/src/Fixer/StringNotation/NoBinaryStringFixer.phpX  E^X  l|      Y   vendor/friendsofphp/php-cs-fixer/src/Fixer/StringNotation/ExplicitStringVariableFixer.php  E^  }      R   vendor/friendsofphp/php-cs-fixer/src/Fixer/StringNotation/HeredocToNowdocFixer.php1  E^1  $c      N   vendor/friendsofphp/php-cs-fixer/src/Fixer/StringNotation/SingleQuoteFixer.php  E^        \   vendor/friendsofphp/php-cs-fixer/src/Fixer/StringNotation/EscapeImplicitBackslashesFixer.php  E^  w󡯤      S   vendor/friendsofphp/php-cs-fixer/src/Fixer/StringNotation/StringLineEndingFixer.php  E^  Ɯg      d   vendor/friendsofphp/php-cs-fixer/src/Fixer/DoctrineAnnotation/DoctrineAnnotationIndentationFixer.php'  E^'  rm      h   vendor/friendsofphp/php-cs-fixer/src/Fixer/DoctrineAnnotation/DoctrineAnnotationArrayAssignmentFixer.php#  E^#  Cl      _   vendor/friendsofphp/php-cs-fixer/src/Fixer/DoctrineAnnotation/DoctrineAnnotationSpacesFixer.php3  E^3  .;Ԥ      _   vendor/friendsofphp/php-cs-fixer/src/Fixer/DoctrineAnnotation/DoctrineAnnotationBracesFixer.php  E^  9      K   vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitTargetVersion.php  E^  l,A      I   vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitStrictFixer.phpi  E^i  g$      Q   vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitDedicateAssertFixer.php;  E^;        L   vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitConstructFixer.php  E^  I      Z   vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitSetUpTearDownVisibilityFixer.php  E^  D:      Q   vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitTestAnnotationFixer.php>  E^>  *      P   vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitOrderedCoversFixer.php5  E^5  lPR      L   vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitSizeClassFixer.php  E^  Jo8      Z   vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitNoExpectationAnnotationFixer.php{#  E^{#  7ϝ      ]   vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitDedicateAssertInternalTypeFixer.php  E^        G   vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitMockFixer.phpi  E^i         P   vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitInternalClassFixer.php  E^  lj      N   vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitExpectationFixer.phpi#  E^i#  7-      Q   vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitFqcnAnnotationFixer.php  E^  ;L`      M   vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitNamespacedFixer.php$  E^$  ,      Z   vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitTestClassRequiresCoversFixer.php  E^  }#      \   vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitTestCaseStaticMethodCallsFixer.php?  E^?  AcϤ      V   vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitMockShortWillReturnFixer.php  E^  ,      O   vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitMethodCasingFixer.php?  E^?        I   vendor/friendsofphp/php-cs-fixer/src/Fixer/ConfigurableFixerInterface.php@  E^@  BY      V   vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/CompactNullableTypehintFixer.phpj  E^j  Œ>L      I   vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/LineEndingFixer.php
  E^
  uϛ      S   vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/SingleBlankLineAtEofFixer.phpQ  E^Q         N   vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/IndentationTypeFixer.php  E^  ڋ$      O   vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/ArrayIndentationFixer.php,2  E^,2  b`d      S   vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/NoSpacesAroundOffsetFixer.php   E^   PA      V   vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/NoWhitespaceInBlankLineFixer.php  E^  , b      W   vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/BlankLineBeforeStatementFixer.php#  E^#  9      Q   vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/HeredocIndentationFixer.php  E^  :      X   vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/NoSpacesInsideParenthesisFixer.php  E^  ò      S   vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/NoTrailingWhitespaceFixer.php6  E^6  s      [   vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/NoExtraConsecutiveBlankLinesFixer.php  E^  mEڂ      X   vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/MethodChainingIndentationFixer.phpb  E^b  r+O٤      P   vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/NoExtraBlankLinesFixer.php2  E^2  k      K   vendor/friendsofphp/php-cs-fixer/src/Fixer/Naming/NoHomoglyphNamesFixer.php  E^  j¤      M   vendor/friendsofphp/php-cs-fixer/src/Fixer/Strict/DeclareStrictTypesFixer.php`  E^`  ٮM      K   vendor/friendsofphp/php-cs-fixer/src/Fixer/Strict/StrictComparisonFixer.php  E^  ö%D      F   vendor/friendsofphp/php-cs-fixer/src/Fixer/Strict/StrictParamFixer.php  E^  p      d   vendor/friendsofphp/php-cs-fixer/src/Fixer/Semicolon/NoSinglelineWhitespaceBeforeSemicolonsFixer.php  E^  /4      N   vendor/friendsofphp/php-cs-fixer/src/Fixer/Semicolon/NoEmptyStatementFixer.php  E^  eE      Q   vendor/friendsofphp/php-cs-fixer/src/Fixer/Semicolon/SpaceAfterSemicolonFixer.php~  E^~  CӤ      c   vendor/friendsofphp/php-cs-fixer/src/Fixer/Semicolon/NoMultilineWhitespaceBeforeSemicolonsFixer.php}  E^}  Λ7      a   vendor/friendsofphp/php-cs-fixer/src/Fixer/Semicolon/MultilineWhitespaceBeforeSemicolonsFixer.php("  E^("  X8      W   vendor/friendsofphp/php-cs-fixer/src/Fixer/Semicolon/SemicolonAfterInstructionFixer.php  E^  {'      T   vendor/friendsofphp/php-cs-fixer/src/Fixer/Import/FullyQualifiedStrictTypesFixer.php  E^  \$      J   vendor/friendsofphp/php-cs-fixer/src/Fixer/Import/NoUnusedImportsFixer.phps#  E^s#  H      P   vendor/friendsofphp/php-cs-fixer/src/Fixer/Import/GlobalNamespaceImportFixer.php[  E^[  ,|Ǥ      I   vendor/friendsofphp/php-cs-fixer/src/Fixer/Import/OrderedImportsFixer.php`I  E^`I  5#N      S   vendor/friendsofphp/php-cs-fixer/src/Fixer/Import/SingleImportPerStatementFixer.php  E^  N      O   vendor/friendsofphp/php-cs-fixer/src/Fixer/Import/NoLeadingImportSlashFixer.php]
  E^]
  Lwe      Q   vendor/friendsofphp/php-cs-fixer/src/Fixer/Import/SingleLineAfterImportsFixer.php  E^  A      M   vendor/friendsofphp/php-cs-fixer/src/Fixer/ArrayNotation/ArraySyntaxFixer.php  E^  GyR      Q   vendor/friendsofphp/php-cs-fixer/src/Fixer/ArrayNotation/TrimArraySpacesFixer.php  E^  ""      `   vendor/friendsofphp/php-cs-fixer/src/Fixer/ArrayNotation/NoWhitespaceBeforeCommaInArrayFixer.php  E^  Τ      h   vendor/friendsofphp/php-cs-fixer/src/Fixer/ArrayNotation/NoMultilineWhitespaceAroundDoubleArrowFixer.php  E^  ܤ      b   vendor/friendsofphp/php-cs-fixer/src/Fixer/ArrayNotation/NoTrailingCommaInSinglelineArrayFixer.php	  E^	  &XT      ]   vendor/friendsofphp/php-cs-fixer/src/Fixer/ArrayNotation/WhitespaceAfterCommaInArrayFixer.phpF  E^F  (r      U   vendor/friendsofphp/php-cs-fixer/src/Fixer/ArrayNotation/NormalizeIndexBraceFixer.php  E^  	!Τ      _   vendor/friendsofphp/php-cs-fixer/src/Fixer/ArrayNotation/TrailingCommaInMultilineArrayFixer.php  E^  pN      K   vendor/friendsofphp/php-cs-fixer/src/Fixer/ListNotation/ListSyntaxFixer.php  E^  ^B,i      H   vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/ConcatSpaceFixer.php  E^  :Vˤ      N   vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/AlignEqualsFixerHelper.php  E^  WY      Z   vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/NotOperatorWithSuccessorSpaceFixer.php  E^  Ko      Q   vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/BinaryOperatorSpacesFixer.phpFp  E^Fp  WZO      R   vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/TernaryOperatorSpacesFixer.phpU  E^U  P      T   vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/TernaryToNullCoalescingFixer.php9  E^9  _!      P   vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/UnaryOperatorSpacesFixer.php  E^  nN	      K   vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/IncrementStyleFixer.php[  E^[  CPP      M   vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/LogicalOperatorsFixer.php  E^        J   vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/NewWithBracesFixer.php  E^  -      I   vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/PreIncrementFixer.php  E^  6b      \   vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/ObjectOperatorWithoutWhitespaceFixer.php3  E^3  Vwr      S   vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/AlignDoubleArrowFixerHelper.phpb  E^b  .f      Q   vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/StandardizeIncrementFixer.php  E^  ȋ      Q   vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/StandardizeNotEqualsFixer.php  E^  u#       Q   vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/NotOperatorWithSpaceFixer.php=  E^=  9Ĥ      ]   vendor/friendsofphp/php-cs-fixer/src/Fixer/ConstantNotation/NativeConstantInvocationFixer.php$  E^$  8      c   vendor/friendsofphp/php-cs-fixer/src/ConfigurationException/RequiredFixerConfigurationException.php  E^  K      h   vendor/friendsofphp/php-cs-fixer/src/ConfigurationException/InvalidForEnvFixerConfigurationException.php  E^   5      ]   vendor/friendsofphp/php-cs-fixer/src/ConfigurationException/InvalidConfigurationException.php  E^  䮤      b   vendor/friendsofphp/php-cs-fixer/src/ConfigurationException/InvalidFixerConfigurationException.php  E^  ~      C   vendor/friendsofphp/php-cs-fixer/src/AbstractNoUselessElseFixer.phpj  E^j        9   vendor/friendsofphp/php-cs-fixer/src/RuleSetInterface.php  E^  ڤ      K   vendor/friendsofphp/php-cs-fixer/src/Indicator/PhpUnitTestCaseIndicator.php	  E^	        :   vendor/friendsofphp/php-cs-fixer/src/Cache/FileHandler.php7	  E^7	  %4      ?   vendor/friendsofphp/php-cs-fixer/src/Cache/FileCacheManager.php
  E^
  
-      4   vendor/friendsofphp/php-cs-fixer/src/Cache/Cache.php  E^  5W      =   vendor/friendsofphp/php-cs-fixer/src/Cache/CacheInterface.php  E^  qS      ?   vendor/friendsofphp/php-cs-fixer/src/Cache/NullCacheManager.phpG  E^G  ¤      D   vendor/friendsofphp/php-cs-fixer/src/Cache/CacheManagerInterface.php  E^  /z      C   vendor/friendsofphp/php-cs-fixer/src/Cache/FileHandlerInterface.php]  E^]  ]      8   vendor/friendsofphp/php-cs-fixer/src/Cache/Directory.phpo  E^o  LK      A   vendor/friendsofphp/php-cs-fixer/src/Cache/SignatureInterface.php  E^  k4      A   vendor/friendsofphp/php-cs-fixer/src/Cache/DirectoryInterface.php  E^  (!      8   vendor/friendsofphp/php-cs-fixer/src/Cache/Signature.php=	  E^=	  Ą      =   vendor/friendsofphp/php-cs-fixer/src/Test/IntegrationCase.php8  E^8  4Fפ      >   vendor/friendsofphp/php-cs-fixer/src/Test/AccessibleObject.php	  E^	  U0Ǥ      C   vendor/friendsofphp/php-cs-fixer/src/Test/AbstractFixerTestCase.php  E^  pФ      I   vendor/friendsofphp/php-cs-fixer/src/Test/AbstractIntegrationTestCase.php  E^        D   vendor/friendsofphp/php-cs-fixer/src/Linter/ProcessLintingResult.php  E^  e      F   vendor/friendsofphp/php-cs-fixer/src/Linter/LintingResultInterface.php  E^  	      =   vendor/friendsofphp/php-cs-fixer/src/Linter/ProcessLinter.php  E^  Lo      F   vendor/friendsofphp/php-cs-fixer/src/Linter/TokenizerLintingResult.php  E^  bY      J   vendor/friendsofphp/php-cs-fixer/src/Linter/UnavailableLinterException.php  E^  a      @   vendor/friendsofphp/php-cs-fixer/src/Linter/LintingException.php  E^  Xd      K   vendor/friendsofphp/php-cs-fixer/src/Linter/ProcessLinterProcessBuilder.php  E^  XY      ?   vendor/friendsofphp/php-cs-fixer/src/Linter/LinterInterface.phpA  E^A  1N      6   vendor/friendsofphp/php-cs-fixer/src/Linter/Linter.php  E^  z      ?   vendor/friendsofphp/php-cs-fixer/src/Linter/TokenizerLinter.php  E^  nʤ      =   vendor/friendsofphp/php-cs-fixer/src/Linter/CachingLinter.php  E^   Q:      6   vendor/friendsofphp/php-cs-fixer/src/PregException.php  E^  _E      8   vendor/friendsofphp/php-cs-fixer/src/ConfigInterface.phpw  E^w  ND      3   vendor/friendsofphp/php-cs-fixer/src/FileReader.phpI  E^I  0yx      A   vendor/friendsofphp/php-cs-fixer/src/AbstractPhpdocTypesFixer.php  E^  cJG      A   vendor/friendsofphp/php-cs-fixer/src/Tokenizer/TokensAnalyzer.phppX  E^pX  DKH      9   vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Tokens.php  E^  *K      8   vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Token.phpA  E^A  1e      =   vendor/friendsofphp/php-cs-fixer/src/Tokenizer/CodeHasher.php  E^  ޅ      W   vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Transformer/ArrayTypehintTransformer.phpN  E^N  d#       P   vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Transformer/ImportTransformer.php  E^  :      U   vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Transformer/SquareBraceTransformer.phpo  E^o  7      S   vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Transformer/TypeColonTransformer.phpp  E^p  ",      S   vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Transformer/ReturnRefTransformer.phpa  E^a  G3      [   vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Transformer/WhitespacyCommentTransformer.php  E^  	9f      [   vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Transformer/NamespaceOperatorTransformer.phpi  E^i        V   vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Transformer/NullableTypeTransformer.php2  E^2  x      T   vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Transformer/CurlyBraceTransformer.php  E^  O      Y   vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Transformer/TypeAlternationTransformer.php  E^  h#      a   vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Transformer/BraceClassInstantiationTransformer.php  E^  d~      W   vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Transformer/ClassConstantTransformer.php  E^  B0      M   vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Transformer/UseTransformer.php
  E^
  DԤ      [   vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Generator/NamespacedStringTokenGenerator.php  E^  >      ?   vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Transformers.php
  E^
  <Zl      G   vendor/friendsofphp/php-cs-fixer/src/Tokenizer/TransformerInterface.php  E^  Оʤ      F   vendor/friendsofphp/php-cs-fixer/src/Tokenizer/AbstractTransformer.phpA  E^A  T      Y   vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Analyzer/Analysis/NamespaceUseAnalysis.php
  E^
  z\YG      _   vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Analyzer/Analysis/StartEndTokenAwareAnalysis.php  E^  Pq      Q   vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Analyzer/Analysis/TypeAnalysis.php\	  E^\	  Q      V   vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Analyzer/Analysis/NamespaceAnalysis.php	  E^	  @)U      U   vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Analyzer/Analysis/ArgumentAnalysis.php  E^  @)      J   vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Analyzer/BlocksAnalyzer.php  E^  2      M   vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Analyzer/FunctionsAnalyzer.phpr"  E^r"  vp      N   vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Analyzer/NamespacesAnalyzer.phpH  E^H  :      M   vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Analyzer/ArgumentsAnalyzer.php  E^        Q   vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Analyzer/NamespaceUsesAnalyzer.phpM  E^M  'ܤ      J   vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Analyzer/ClassyAnalyzer.php,
  E^,
  /aӤ      L   vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Analyzer/CommentsAnalyzer.phpN!  E^N!  "ͱ      Q   vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Resolver/TypeShortNameResolver.php  E^  ]&i      5   vendor/friendsofphp/php-cs-fixer/src/Tokenizer/CT.php	  E^	  )q      H   vendor/friendsofphp/php-cs-fixer/src/AbstractDoctrineAnnotationFixer.phpU  E^U  5S      B   vendor/friendsofphp/php-cs-fixer/src/Runner/FileFilterIterator.php  E^  I      C   vendor/friendsofphp/php-cs-fixer/src/Runner/FileLintingIterator.php  E^  wĠ      6   vendor/friendsofphp/php-cs-fixer/src/Runner/Runner.php"  E^"  6α      J   vendor/friendsofphp/php-cs-fixer/src/Runner/FileCachingLintingIterator.php  E^  @<      A   vendor/friendsofphp/php-cs-fixer/src/AbstractAlignFixerHelper.php  E^  +      N   vendor/friendsofphp/php-cs-fixer/src/FixerConfiguration/AllowedValueSubset.php3  E^3  76h      V   vendor/friendsofphp/php-cs-fixer/src/FixerConfiguration/FixerConfigurationResolver.php5  E^5  ]_Ay      Z   vendor/friendsofphp/php-cs-fixer/src/FixerConfiguration/DeprecatedFixerOptionInterface.php  E^  Z	      G   vendor/friendsofphp/php-cs-fixer/src/FixerConfiguration/FixerOption.php  E^  Y      P   vendor/friendsofphp/php-cs-fixer/src/FixerConfiguration/FixerOptionInterface.php  E^  d      N   vendor/friendsofphp/php-cs-fixer/src/FixerConfiguration/FixerOptionBuilder.phpR
  E^R
  _&      Y   vendor/friendsofphp/php-cs-fixer/src/FixerConfiguration/InvalidOptionsForEnvException.php"  E^"  q      N   vendor/friendsofphp/php-cs-fixer/src/FixerConfiguration/AliasedFixerOption.php  E^  
      ^   vendor/friendsofphp/php-cs-fixer/src/FixerConfiguration/FixerConfigurationResolverRootless.phpp
  E^p
  B      U   vendor/friendsofphp/php-cs-fixer/src/FixerConfiguration/AliasedFixerOptionBuilder.php  E^  <b      _   vendor/friendsofphp/php-cs-fixer/src/FixerConfiguration/FixerConfigurationResolverInterface.phpc  E^c  Mm      Q   vendor/friendsofphp/php-cs-fixer/src/FixerConfiguration/DeprecatedFixerOption.php&  E^&  [N      @   vendor/friendsofphp/php-cs-fixer/src/FixerFileProcessedEvent.phpJ  E^J  3Ȥ      0   vendor/friendsofphp/php-cs-fixer/src/RuleSet.phpJ  E^J  ?U#      J   vendor/friendsofphp/php-cs-fixer/src/AbstractLinesBeforeNamespaceFixer.php~  E^~  L@      ?   vendor/friendsofphp/php-cs-fixer/src/AbstractFopenFlagFixer.phpK  E^K  K      4   vendor/friendsofphp/php-cs-fixer/src/PharChecker.phpn  E^n  *>      :   vendor/friendsofphp/php-cs-fixer/src/Differ/FullDiffer.php  E^  cs      D   vendor/friendsofphp/php-cs-fixer/src/Differ/DiffConsoleFormatter.phpl  E^l  j$A      ?   vendor/friendsofphp/php-cs-fixer/src/Differ/DifferInterface.php  E^  ɖR      G   vendor/friendsofphp/php-cs-fixer/src/Differ/SebastianBergmannDiffer.php  E^  7GӤ      L   vendor/friendsofphp/php-cs-fixer/src/Differ/SebastianBergmannShortDiffer.php  E^  Ӥ      :   vendor/friendsofphp/php-cs-fixer/src/Differ/NullDiffer.php  E^  Q1      =   vendor/friendsofphp/php-cs-fixer/src/Differ/UnifiedDiffer.phpn  E^n  l~L      ;   vendor/friendsofphp/php-cs-fixer/src/FixerNameValidator.php  E^  G|7      /   vendor/friendsofphp/php-cs-fixer/src/Config.php?  E^?  i;T      D   vendor/friendsofphp/php-cs-fixer/src/AbstractPsrAutoloadingFixer.php  E^  GĤ      C   vendor/friendsofphp/php-cs-fixer/src/Doctrine/Annotation/Tokens.php(  E^(  	      B   vendor/friendsofphp/php-cs-fixer/src/Doctrine/Annotation/Token.php  E^        4   vendor/friendsofphp/php-cs-fixer/src/WordMatcher.phpz  E^z  p      ;   vendor/friendsofphp/php-cs-fixer/src/AbstractProxyFixer.phpm
  E^m
  X      6   vendor/friendsofphp/php-cs-fixer/src/StdinFileInfo.php+  E^+  -铤      5   vendor/friendsofphp/php-cs-fixer/src/DocBlock/Tag.php	  E^	  Z7Τ      ?   vendor/friendsofphp/php-cs-fixer/src/DocBlock/TagComparator.php  E^  &b      <   vendor/friendsofphp/php-cs-fixer/src/DocBlock/Annotation.php  E^  L      B   vendor/friendsofphp/php-cs-fixer/src/DocBlock/ShortDescription.php[  E^[  qd      :   vendor/friendsofphp/php-cs-fixer/src/DocBlock/DocBlock.php  E^  7      6   vendor/friendsofphp/php-cs-fixer/src/DocBlock/Line.php  E^  mb      C   vendor/friendsofphp/php-cs-fixer/src/FixerDefinition/CodeSample.php  E^  -      L   vendor/friendsofphp/php-cs-fixer/src/FixerDefinition/CodeSampleInterface.php1  E^1  Aap      [   vendor/friendsofphp/php-cs-fixer/src/FixerDefinition/VersionSpecificCodeSampleInterface.php,  E^,  xf      H   vendor/friendsofphp/php-cs-fixer/src/FixerDefinition/FixerDefinition.php  E^        O   vendor/friendsofphp/php-cs-fixer/src/FixerDefinition/FileSpecificCodeSample.php  E^  A%      V   vendor/friendsofphp/php-cs-fixer/src/FixerDefinition/VersionSpecificationInterface.php  E^  26S      Q   vendor/friendsofphp/php-cs-fixer/src/FixerDefinition/FixerDefinitionInterface.php  E^  q      R   vendor/friendsofphp/php-cs-fixer/src/FixerDefinition/VersionSpecificCodeSample.phpe  E^e  ڤ      M   vendor/friendsofphp/php-cs-fixer/src/FixerDefinition/VersionSpecification.php  E^  y=N      X   vendor/friendsofphp/php-cs-fixer/src/FixerDefinition/FileSpecificCodeSampleInterface.php#  E^#  6J      5   vendor/friendsofphp/php-cs-fixer/src/FixerFactory.php  E^  Ô      =   vendor/friendsofphp/php-cs-fixer/src/Report/JunitReporter.php  E^  E!a      ;   vendor/friendsofphp/php-cs-fixer/src/Report/XmlReporter.php=  E^=  2ah      =   vendor/friendsofphp/php-cs-fixer/src/Report/ReportSummary.phpR  E^R  aɤ      >   vendor/friendsofphp/php-cs-fixer/src/Report/GitlabReporter.php  E^  ~^      B   vendor/friendsofphp/php-cs-fixer/src/Report/CheckstyleReporter.php  E^        <   vendor/friendsofphp/php-cs-fixer/src/Report/TextReporter.php
  E^
  ~*8      <   vendor/friendsofphp/php-cs-fixer/src/Report/JsonReporter.phpr  E^r  ?Q      ?   vendor/friendsofphp/php-cs-fixer/src/Report/ReporterFactory.php	  E^	        A   vendor/friendsofphp/php-cs-fixer/src/Report/ReporterInterface.phpn  E^n  B      .   vendor/friendsofphp/php-cs-fixer/src/Utils.php  E^  z      :   vendor/friendsofphp/php-cs-fixer/src/ToolInfoInterface.phpi  E^i  2      ?   vendor/friendsofphp/php-cs-fixer/src/WhitespacesFixerConfig.php  E^  Oh      6   vendor/friendsofphp/php-cs-fixer/src/AbstractFixer.phpa  E^a  w'      -   vendor/friendsofphp/php-cs-fixer/src/Preg.php  E^  ލ\r      4   vendor/friendsofphp/php-cs-fixer/src/Error/Error.phph  E^h        <   vendor/friendsofphp/php-cs-fixer/src/Error/ErrorsManager.php  E^  S      4   vendor/friendsofphp/php-cs-fixer/src/Event/Event.php  E^        G   vendor/friendsofphp/php-cs-fixer/src/AbstractFunctionReferenceFixer.php  E^  L      1   vendor/friendsofphp/php-cs-fixer/src/ToolInfo.php  E^  #      <   vendor/friendsofphp/php-cs-fixer/src/Console/Application.php  E^  ة^Ǥ      V   vendor/friendsofphp/php-cs-fixer/src/Console/SelfUpdate/NewVersionCheckerInterface.php  E^  c-      Q   vendor/friendsofphp/php-cs-fixer/src/Console/SelfUpdate/GithubClientInterface.php  E^  \TG      H   vendor/friendsofphp/php-cs-fixer/src/Console/SelfUpdate/GithubClient.php  E^  ]      M   vendor/friendsofphp/php-cs-fixer/src/Console/SelfUpdate/NewVersionChecker.phpD
  E^D
  *      A   vendor/friendsofphp/php-cs-fixer/src/Console/WarningsDetector.phpU  E^U  >      E   vendor/friendsofphp/php-cs-fixer/src/Console/Output/ProcessOutput.phpt  E^t  N      C   vendor/friendsofphp/php-cs-fixer/src/Console/Output/ErrorOutput.phpi  E^i  ߧ      N   vendor/friendsofphp/php-cs-fixer/src/Console/Output/ProcessOutputInterface.php  E^  Jh@      B   vendor/friendsofphp/php-cs-fixer/src/Console/Output/NullOutput.php  E^  =      F   vendor/friendsofphp/php-cs-fixer/src/Console/ConfigurationResolver.phpKj  E^Kj        V   vendor/friendsofphp/php-cs-fixer/src/Console/Command/DescribeNameNotFoundException.php  E^  =d      F   vendor/friendsofphp/php-cs-fixer/src/Console/Command/ReadmeCommand.phpe"  E^e"  vf      D   vendor/friendsofphp/php-cs-fixer/src/Console/Command/HelpCommand.php"Z  E^"Z  h      W   vendor/friendsofphp/php-cs-fixer/src/Console/Command/FixCommandExitStatusCalculator.phpT  E^T  Pɤ      C   vendor/friendsofphp/php-cs-fixer/src/Console/Command/FixCommand.php'  E^'  '      J   vendor/friendsofphp/php-cs-fixer/src/Console/Command/SelfUpdateCommand.php  E^  ,      H   vendor/friendsofphp/php-cs-fixer/src/Console/Command/DescribeCommand.php&7  E^&7  @      4   vendor/friendsofphp/php-cs-fixer/src/FileRemoval.php  E^  l      =   vendor/friendsofphp/php-cs-fixer/src/PharCheckerInterface.php  E^   H[       K   vendor/guiguiboy/php-cli-progress-bar/test/ProgressBar/Test/ManagerTest.php  E^  Ϧ      L   vendor/guiguiboy/php-cli-progress-bar/test/ProgressBar/Test/RegistryTest.php  E^  #      6   vendor/guiguiboy/php-cli-progress-bar/test/AllTest.phpN  E^N  8      >   vendor/guiguiboy/php-cli-progress-bar/ProgressBar/Registry.php  E^  @V=      =   vendor/guiguiboy/php-cli-progress-bar/ProgressBar/Manager.php  E^        /   vendor/guiguiboy/php-cli-progress-bar/README.md  E^  Nw      0   vendor/guiguiboy/php-cli-progress-bar/.gitignore8   E^8   ,ȗ      4   vendor/guiguiboy/php-cli-progress-bar/.git/ORIG_HEAD)   E^)   [      1   vendor/guiguiboy/php-cli-progress-bar/.git/config   E^   M      i   vendor/guiguiboy/php-cli-progress-bar/.git/objects/pack/pack-f59e7c3192719a6566ac81d0b8f1502fe4e44048.idx  E^  !A$      j   vendor/guiguiboy/php-cli-progress-bar/.git/objects/pack/pack-f59e7c3192719a6566ac81d0b8f1502fe4e44048.packO  E^O  e$      =   vendor/guiguiboy/php-cli-progress-bar/.git/objects/info/packs6   E^6   UzF#      /   vendor/guiguiboy/php-cli-progress-bar/.git/HEAD)   E^)   [      7   vendor/guiguiboy/php-cli-progress-bar/.git/info/exclude   E^   w=!      4   vendor/guiguiboy/php-cli-progress-bar/.git/info/refs   E^   y?      4   vendor/guiguiboy/php-cli-progress-bar/.git/logs/HEAD  E^  >3      A   vendor/guiguiboy/php-cli-progress-bar/.git/logs/refs/heads/master   E^   3~      L   vendor/guiguiboy/php-cli-progress-bar/.git/logs/refs/remotes/composer/master   E^   Q      H   vendor/guiguiboy/php-cli-progress-bar/.git/logs/refs/remotes/origin/HEAD   E^   3~      6   vendor/guiguiboy/php-cli-progress-bar/.git/descriptionI   E^I   7      B   vendor/guiguiboy/php-cli-progress-bar/.git/hooks/commit-msg.sample  E^        B   vendor/guiguiboy/php-cli-progress-bar/.git/hooks/pre-rebase.sampleW  E^W  ,.      B   vendor/guiguiboy/php-cli-progress-bar/.git/hooks/pre-commit.samplej  E^j  %0\      F   vendor/guiguiboy/php-cli-progress-bar/.git/hooks/applypatch-msg.sample  E^  O	      C   vendor/guiguiboy/php-cli-progress-bar/.git/hooks/pre-receive.sample   E^         J   vendor/guiguiboy/php-cli-progress-bar/.git/hooks/prepare-commit-msg.sample  E^        C   vendor/guiguiboy/php-cli-progress-bar/.git/hooks/post-update.sample   E^         F   vendor/guiguiboy/php-cli-progress-bar/.git/hooks/pre-applypatch.sample  E^  L      @   vendor/guiguiboy/php-cli-progress-bar/.git/hooks/pre-push.sampleD  E^D  ؏      >   vendor/guiguiboy/php-cli-progress-bar/.git/hooks/update.sample  E^  !D%      <   vendor/guiguiboy/php-cli-progress-bar/.git/refs/heads/master)   E^)   [      G   vendor/guiguiboy/php-cli-progress-bar/.git/refs/remotes/composer/master)   E^)   [      C   vendor/guiguiboy/php-cli-progress-bar/.git/refs/remotes/origin/HEAD    E^    %Ԡ      0   vendor/guiguiboy/php-cli-progress-bar/.git/index{  E^{  Mt5      6   vendor/guiguiboy/php-cli-progress-bar/.git/packed-refsk   E^k   ʯ      5   vendor/guiguiboy/php-cli-progress-bar/.git/FETCH_HEAD|   E^|   V+p      3   vendor/guiguiboy/php-cli-progress-bar/composer.json.  E^.  %
      '   vendor/composer/autoload_namespaces.php   E^   vbƤ      &   vendor/composer/xdebug-handler/LICENSE)  E^)  #;^      +   vendor/composer/xdebug-handler/CHANGELOG.md  E^  i      (   vendor/composer/xdebug-handler/README.mdF2  E^F2  껤      ,   vendor/composer/xdebug-handler/composer.json  E^  N      0   vendor/composer/xdebug-handler/src/PhpConfig.php5  E^5  j$      -   vendor/composer/xdebug-handler/src/Status.php  E^  f      4   vendor/composer/xdebug-handler/src/XdebugHandler.php5B  E^5B  VqԤ      .   vendor/composer/xdebug-handler/src/Process.php  E^  q;         vendor/composer/LICENSE.  E^.         K   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/ChangeLog-8.1.md  E^  ?.je      F   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/phpunit.xml  E^  >+      B   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/LICENSE  E^  4&       K   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/ChangeLog-8.0.md)  E^)  O      D   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/build.xmlY  E^Y  ;r      J   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/tests/README.md  E^  蜤      o   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/tests/_files/BeforeClassWithOnlyDataProviderTest.phpQ  E^Q  JL      \   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/tests/_files/BankAccountTest2.php  E^  ˤ      \   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/tests/_files/AssertionExample.phpd  E^d  J$<?      P   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/tests/_files/3194.php  E^  ^h      Q   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/tests/_files/3530.wsdl  E^  D      k   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/tests/_files/ClassThatImplementsSerializable.phpA  E^A  D      P   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/tests/_files/Book.phpw  E^w         \   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/tests/_files/AnotherInterface.phpC  E^C  3      k   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/tests/_files/ClassWithAllPossibleReturnTypes.php}  E^}  Ł|      k   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/tests/_files/ClassWithScalarTypeDeclarations.phpk  E^k  $      h   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/tests/_files/ClassWithNonPublicAttributes.php  E^  <*Τ      `   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/tests/_files/BankAccountTest.test.php&  E^&  :'"      m   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/tests/_files/ChangeCurrentWorkingDirectoryTest.php  E^  0      [   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/tests/_files/ConcreteTest.my.php  E^  zb      W   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/tests/_files/AnInterface.php:  E^:  <^B      X   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/tests/_files/AbstractTest.php  E^        h   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/tests/_files/BeforeClassAndAfterClassTest.php  E^  {ڤ      `   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/tests/_files/AssertionExampleTest.php  E^  K⛤      a   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/tests/_files/AbstractMockTestClass.php  E^  2ۤ      [   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/tests/_files/ArrayAccessible.php  E^  @       ]   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/tests/_files/ClassWithToString.php  E^  PaT      V   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/tests/_files/Calculator.php  E^        k   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/tests/_files/ClassWithVariadicArgumentMethod.php  E^  h(MM      a   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/tests/_files/ClassWithStaticMethod.phpY  E^Y  ;&ɤ      Y   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/tests/_files/AbstractTrait.php  E^  V?9f      ^   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/tests/_files/BeforeAndAfterTest.phpU  E^U  >      X   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/tests/_files/ConcreteTest.phpz  E^z  k      [   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/tests/_files/BankAccountTest.php  E^  #yҙ      W   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/tests/_files/BankAccount.php'  E^'  2=      R   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/tests/_files/Author.php  E^  a/      O   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/tests/_files/Bar.phpV  E^V  %%      a   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/tests/_files/ClassWithSelfTypeHint.phpR  E^R  `      e   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/tests/_files/AnInterfaceWithReturnType.phpQ  E^Q  =      M   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/.phpstorm.meta.phpV  E^V  E(      N   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/.psalm/baseline.xml5T  E^5T  qǤ      L   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/.psalm/config.xmlC  E^C  Z	8ͤ      U   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/.psalm/static-analysis.xml  E^  "y(      H   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/.editorconfig   E^   V       D   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/README.md
  E^
  @      B   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/phpunit  E^  9      F   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/phpunit.xsdB  E^B  D^ޤ      E   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/.gitignorew  E^w  v      N   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/.github/FUNDING.yml;   E^;   pN
      U   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/.github/CODE_OF_CONDUCT.mdZ	  E^Z	  uI1      T   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/.github/ISSUE_TEMPLATE.mde  E^e        R   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/.github/CONTRIBUTING.md	
  E^	
  01      I   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/.gitattributes;   E^;   (      D   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/phive.xml?  E^?   <*      K   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/ChangeLog-8.2.mdp
  E^p
  
      F   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/.travis.yml   E^   2 m      H   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/composer.json3	  E^3	  'K      G   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/.php_cs.dist   E^   Di      K   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/ChangeLog-7.5.md)  E^)  y      W   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/TextUI/ResultPrinter.php.;  E^.;  쥤      T   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/TextUI/TestRunner.php  E^  ?xؤ      N   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/TextUI/Help.phpo0  E^o0  ~,      Q   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/TextUI/Command.php  E^  )      S   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/TextUI/Exception.php  E^  ۤ      Y   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Util/RegularExpression.php?  E^?  Qqg      L   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Util/Type.php  E^  z#M      L   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Util/Json.php"
  E^"
  .y      R   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Util/FileLoader.php-	  E^-	  z      R   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Util/Filesystem.php  E^  ~F      ^   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Util/ConfigurationGenerator.phpe  E^e         Q   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Util/Blacklist.php  E^  F%      N   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Util/Getopt.php  E^  g      K   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Util/Xml.php !  E^ !  xӤ      ]   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Util/InvalidArgumentHelper.php  E^  f      U   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Util/Configuration.phpC  E^C  =      V   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Util/PHP/eval-stdin.php-  E^-  -rX      ]   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Util/PHP/WindowsPhpProcess.phpt  E^t  2K      ^   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Util/PHP/AbstractPhpProcess.php(  E^(  5      f   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Util/PHP/Template/PhptTestCase.tpl.distb  E^b  ̤      g   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Util/PHP/Template/TestCaseClass.tpl.dist  E^  3/Q      h   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Util/PHP/Template/TestCaseMethod.tpl.distW  E^W  i      ]   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Util/PHP/DefaultPhpProcess.php  E^  f¤      L   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Util/Test.phpR  E^R        S   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Util/GlobalState.phpA  E^A  Ȥ      M   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Util/Color.php  E^  ROh.      ]   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Util/TestDox/ResultPrinter.php  E^  Hw      a   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Util/TestDox/HtmlResultPrinter.php
  E^
  w      a   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Util/TestDox/TextResultPrinter.php$  E^$  zi>      `   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Util/TestDox/XmlResultPrinter.php  E^  뾪      a   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Util/TestDox/CliTestDoxPrinter.php<*  E^<*  ӥ      ^   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Util/TestDox/NamePrettifier.php  E^  .D      ^   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Util/TestDox/TestDoxPrinter.php)  E^)  ub      N   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Util/Filter.phph
  E^h
  O       [   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Util/XmlTestListRenderer.php%
  E^%
  `B      T   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Util/Log/TeamCity.php(  E^(  A2      Q   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Util/Log/JUnit.php=+  E^=+  UT      T   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Util/ErrorHandler.php3  E^3  DsҤ      Q   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Util/Exception.php  E^  #!>      O   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Util/Printer.php  E^  SD      c   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Util/XdebugFilterScriptGenerator.php  E^  >C      \   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Util/TextTestListRenderer.php@  E^@  7      Y   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/TestListener.php  E^  `O&      W   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/TestResult.phpHu  E^Hu  S      n   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/TestListenerDefaultImplementation.php  E^  T]Ꙥ      ^   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/TestSuiteIterator.phpF  E^F  "      V   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/TestSuite.phpS  E^S  I      [   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/SelfDescribing.php  E^  F      [   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/IncompleteTest.php  E^  #9d      X   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/TestBuilder.php  E^        ]   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/ExceptionWrapper.php:  E^:  \F      ]   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Assert/Functions.php E^ 1`      b   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/DataProviderTestSuite.php  E^  <S      S   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Assert.phpi E^i -'      X   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/SkippedTest.php  E^  )ً      Q   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Test.php  E^  8      a   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/MockClass.phpy  E^y  6      b   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/MockObject.php  E^  <_      h   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/InvocationMocker.phpR  E^R  1      `   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/MockType.php  E^  '5      a   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Invokable.php  E^        b   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Invocation.phpG  E^G  W69      c   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/MockBuilder.php  E^        e   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/MockMethodSet.php  E^  <)      j   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Matcher/MethodName.php)  E^)  FE      u   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Matcher/ConsecutiveParameters.php  E^  fr      m   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Matcher/DeferredError.php  E^  t      o   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Matcher/InvokedRecorder.php  E^  Z      j   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Matcher/Invocation.php  E^  Jۤ      o   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Matcher/AnyInvokedCount.phpW  E^W  Ǉ      r   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Matcher/InvokedAtLeastOnce.php:  E^:  =q      s   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Matcher/StatelessInvocation.php  E^  QO      m   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Matcher/AnyParameters.php  E^  GO      r   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Matcher/InvokedAtMostCount.php  E^  ֥Z      n   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Matcher/InvokedAtIndex.php  E^  K]      s   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Matcher/InvokedAtLeastCount.php  E^  52      j   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Matcher/Parameters.php&  E^&  Ѥ      l   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Matcher/InvokedCount.php
  E^
  k      t   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Generator/mocked_method.tpl.distL  E^L  V      u   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Generator/proxied_method.tpl.dist  E^  a      r   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Generator/deprecation.tpl.dist;   E^;   O5s      q   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Generator/wsdl_class.tpl.dist   E^         z   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Generator/mocked_class_method.tpl.dist   E^   d      y   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Generator/mocked_method_void.tpl.dist  E^  *      r   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Generator/trait_class.tpl.distQ   E^Q   <Ȥ      u   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Generator/unmocked_clone.tpl.dist   E^   8W}ؤ      r   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Generator/wsdl_method.tpl.dist<   E^<   i      s   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Generator/mocked_clone.tpl.dist   E^   aT      z   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Generator/proxied_method_void.tpl.dist|  E^|  |򦺤      s   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Generator/mocked_class.tpl.distj  E^j  8      {   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Generator/mocked_static_method.tpl.dist   E^    4R      j   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/ConfigurableMethod.php  E^        _   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Matcher.php!  E^!        k   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/ConfigurableMethods.php  E^  mä      g   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Stub/ReturnStub.php  E^        m   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Stub/ConsecutiveCalls.php  E^  aؤ      k   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Stub/ReturnArgument.php  E^        l   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Stub/ReturnReference.php  E^        n   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Stub/MatcherCollection.php  E^  5*      k   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Stub/ReturnValueMap.php  E^  'ؤ      k   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Stub/ReturnCallback.php  E^  񳲤      g   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Stub/ReturnSelf.php7  E^7  n      f   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Stub/Exception.php#  E^#  D	C;      \   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Stub.php   E^   U      b   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/MockMethod.php/  E^/  [w      a   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Generator.phpQ}  E^Q}        n   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Builder/NamespaceMatch.php  E^  ё      p   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Builder/InvocationMocker.php  E^  2k^      o   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Builder/ParametersMatch.php  E^        h   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Builder/Identity.php  E^  }"      e   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Builder/Match.php  E^  E      d   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Builder/Stub.php  E^  JT      o   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Builder/MethodNameMatch.phpC  E^C  }k         vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Exception/ConfigurableMethodsAlreadyInitializedException.php   E^   }-      r   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Exception/RuntimeException.php  E^  "bB         vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Exception/IncompatibleReturnValueException.php  E^  t      x   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Exception/BadMethodCallException.php  E^  i      k   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Exception/Exception.php  E^  "      b   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/Verifiable.php  E^  /v      a   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/MockObject/MockTrait.php  E^  l      Z   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Error/Warning.php  E^  Jߤ      X   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Error/Error.php  E^  ;      Y   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Error/Notice.php  E^  
H      ]   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Error/Deprecated.php  E^  ʼW      U   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/TestCase.php E^ 8      ^   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Exception/Warning.phpc  E^c   J      v   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Exception/UnintentionallyCoveredCodeError.php  E^  it      q   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Exception/ExpectationFailedException.php  E^  ݘ      l   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Exception/SyntheticSkippedError.php  E^  ӏ      l   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Exception/SkippedTestSuiteError.php  E^  f      b   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Exception/OutputError.php  E^  :t      j   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Exception/IncompleteTestError.php  E^  )R      e   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Exception/RiskyTestError.php  E^  9d      g   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Exception/SkippedTestError.php  E^  =@      e   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Exception/SyntheticError.php&  E^&  i ٤      o   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Exception/PHPTAssertionFailedError.php   E^   >G      l   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Exception/CodeCoverageException.php  E^  <߆]      v   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Exception/CoveredCodeNotExecutedException.php  E^  p      s   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Exception/InvalidDataProviderException.php  E^  R      s   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Exception/InvalidCoversTargetException.php  E^  U      w   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Exception/MissingCoversAnnotationException.php  E^  1Ȥ      `   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Exception/Exception.phpD	  E^D	  C4]      k   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Exception/AssertionFailedError.phpj  E^j  ZY      \   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/WarningTestCase.phpE  E^E  $d      i   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/RegularExpression.php5  E^5  FgC      d   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/IsInstanceOf.php  E^  	]8      b   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/IsReadable.phpd  E^d        _   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/IsFalse.php1  E^1        `   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/LessThan.php  E^  
4      y   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/ExceptionMessageRegularExpression.php]  E^]         g   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/DirectoryExists.phpj  E^j  ޤ      a   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/LogicalOr.php
  E^
  "0l      b   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/IsAnything.php  E^  t      h   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/ExceptionMessage.php-  E^-  L8      o   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/TraversableContainsOnly.php  E^  {(/      o   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/ClassHasStaticAttribute.php  E^  ?~      ^   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/IsTrue.php-  E^-  2Đ      b   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/LogicalAnd.phpY  E^Y  2/      c   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/ArrayHasKey.php  E^  ~y      a   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/Composite.phpN  E^N  7      h   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/StringStartsWith.php  E^  ,JI      ^   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/IsJson.php   E^   g      c   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/JsonMatches.php:  E^:  \F      a   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/Attribute.php  E^        b   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/LogicalXor.php@  E^@  3n      ^   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/IsType.php  E^  K      _   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/IsEmpty.phpG  E^G  'Y      k   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/TraversableContains.php`  E^`  \m      _   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/IsEqual.php  E^  zΤ      v   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/StringMatchesFormatDescription.phpe
  E^e
  n G      ]   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/IsNan.php*  E^*  _hۤ      i   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/ClassHasAttribute.phpl  E^l  ='      b   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/Constraint.php  E^  o      ]   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/Count.php  E^  XL      j   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/ObjectHasAttribute.phpb  E^b  t`      b   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/IsInfinite.php>  E^>        f   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/StringContains.php  E^  N0T      c   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/IsIdentical.php  E^  㯳c      w   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/JsonMatchesErrorMessageProvider.php@  E^@        ^   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/IsNull.php-  E^-  ɭw      c   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/ArraySubset.php  E^  k      `   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/SameSize.php  E^  i*      a   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/Exception.php  E^  h_      b   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/IsWritable.phpd  E^d  _P      e   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/ExceptionCode.php;  E^;        `   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/Callback.php  E^        b   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/LogicalNot.php  E^  ?ʤ      c   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/GreaterThan.php  E^  Ǥ      f   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/StringEndsWith.phpO  E^O  
      `   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/IsFinite.php6  E^6  {0jR      b   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/Constraint/FileExists.php[  E^[  zEPe      _   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/IncompleteTestCase.php  E^  )HM      X   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/TestFailure.php  E^  9      \   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Framework/SkippedTestCase.php  E^        Y   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Runner/TestResultCache.php  E^  Y)ɤ      X   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Runner/BaseTestRunner.phpP  E^P  !O      ^   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Runner/ResultCacheExtension.php*  E^*        V   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Runner/PhptTestCase.phpHQ  E^HQ  ss0      a   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Runner/StandardTestSuiteLoader.php  E^  
%,5      Q   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Runner/Version.php  E^  hlf      Y   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Runner/TestSuiteLoader.php8  E^8  +$ˤ      `   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Runner/DefaultTestResultCache.php   E^   aƖ      Y   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Runner/TestSuiteSorter.php-  E^-  kj      X   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Runner/Filter/Factory.phpQ  E^Q  W      k   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Runner/Filter/IncludeGroupFilterIterator.phpA  E^A  a      d   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Runner/Filter/GroupFilterIterator.php  E^  /      c   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Runner/Filter/NameFilterIterator.phpl  E^l  ;
h      k   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Runner/Filter/ExcludeGroupFilterIterator.phpB  E^B  ċ      ]   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Runner/NullTestResultCache.phpv  E^v  r      S   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Runner/Exception.php  E^  m]      a   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Runner/Hook/AfterRiskyTestHook.php  E^  jYM      c   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Runner/Hook/AfterSkippedTestHook.php  E^  J      a   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Runner/Hook/AfterTestErrorHook.php  E^  LXǤ      S   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Runner/Hook/Hook.php+  E^+  kXM      ]   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Runner/Hook/BeforeTestHook.php  E^  zݤ      b   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Runner/Hook/TestListenerAdapter.php  E^  >P      c   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Runner/Hook/AfterTestWarningHook.php  E^  ֆ      W   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Runner/Hook/TestHook.php<  E^<  xᤸ      \   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Runner/Hook/AfterTestHook.phpQ  E^Q        `   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Runner/Hook/AfterLastTestHook.phpw  E^w  ~F      c   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Runner/Hook/AfterTestFailureHook.php  E^  zc      b   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Runner/Hook/BeforeFirstTestHook.php{  E^{  .      f   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Runner/Hook/AfterIncompleteTestHook.php  E^  *K      f   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Runner/Hook/AfterSuccessfulTestHook.php  E^  j3      L   vendor/composer/c8e9bd88/sebastianbergmann-phpunit-c1b8534/src/Exception.php  E^  楷         vendor/composer/ClassLoader.php4  E^4  z      !   vendor/composer/autoload_psr4.php  E^  ii      %   vendor/composer/autoload_classmap.phpW  E^W  -      #   vendor/composer/autoload_static.php9  E^9  }^Ȥ      !   vendor/composer/autoload_real.php	  E^	  5         vendor/composer/installed.json  E^  -         vendor/composer/semver/LICENSE  E^  Bh      #   vendor/composer/semver/CHANGELOG.md  E^  r[9          vendor/composer/semver/README.mdU  E^U  w7e      $   vendor/composer/semver/composer.jsonD  E^D  %۵s      )   vendor/composer/semver/src/Comparator.php	  E^	  g3	      %   vendor/composer/semver/src/Semver.php  E^        ,   vendor/composer/semver/src/VersionParser.php9M  E^9M  <G      <   vendor/composer/semver/src/Constraint/AbstractConstraint.phpn  E^n  ;      9   vendor/composer/semver/src/Constraint/EmptyConstraint.php3  E^3  ޤ      =   vendor/composer/semver/src/Constraint/ConstraintInterface.php^  E^^  )X      9   vendor/composer/semver/src/Constraint/MultiConstraint.php!
  E^!
  j      4   vendor/composer/semver/src/Constraint/Constraint.php  E^  (I      "   vendor/composer/autoload_files.php9  E^9  W         vendor/psy/.DS_Store   E^   HA      &   vendor/paragonie/random_compat/LICENSEJ  E^J  >       =   vendor/paragonie/random_compat/dist/random_compat.phar.pubkey   E^   *A|      A   vendor/paragonie/random_compat/dist/random_compat.phar.pubkey.asc  E^  ١i      3   vendor/paragonie/random_compat/other/build_phar.phpa  E^a  k}4      ,   vendor/paragonie/random_compat/build-phar.sh   E^   t8Q      1   vendor/paragonie/random_compat/psalm-autoload.php   E^         -   vendor/paragonie/random_compat/lib/random.php/  E^/  &      ,   vendor/paragonie/random_compat/composer.jsond  E^d        (   vendor/paragonie/random_compat/psalm.xmlT  E^T  D         vendor/doctrine/lexer/LICENSE)  E^)  `XQ         vendor/doctrine/lexer/README.md`  E^`  ꕤ      A   vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php  E^  Ջ      #   vendor/doctrine/lexer/composer.json  E^  K      .   vendor/doctrine/annotations/phpbench.json.dist   E^   В       #   vendor/doctrine/annotations/LICENSE)  E^)  ``      (   vendor/doctrine/annotations/CHANGELOG.md#  E^#  "KW      (   vendor/doctrine/annotations/phpstan.neon  E^  rV      .   vendor/doctrine/annotations/docs/en/custom.rst  E^  ͌W      -   vendor/doctrine/annotations/docs/en/index.rst+  E^+  `T*      3   vendor/doctrine/annotations/docs/en/annotations.rst(  E^(  :D*      /   vendor/doctrine/annotations/docs/en/sidebar.rstA   E^A   
\      %   vendor/doctrine/annotations/README.md  E^  T      I   vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/PhpParser.php  E^  !      S   vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php  E^  `ۖ      O   vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/FileCacheReader.php"  E^"  ф¤      [   vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/IgnoreAnnotation.phpE  E^E  $ߊ      U   vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attributes.phpj  E^j  6      O   vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Enum.php"
  E^"
  ̤      T   vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attribute.php  E^        Q   vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Target.php  E^  @lO      S   vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Required.php  E^  M      M   vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/IndexedReader.php  E^  0      F   vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Reader.php  E^  ޤ      J   vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation.php	  E^	  X\      V   vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/SimpleAnnotationReader.phpI  E^I  nT      I   vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.phpK  E^K  ϋ      L   vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/CachedReader.php  E^  3+      K   vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/TokenParser.php  E^  /'Y      P   vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationReader.php2  E^2  -      R   vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php  E^  x      H   vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocLexer.php  E^  /      2   vendor/doctrine/annotations/.doctrine-project.jsons  E^s  tY      )   vendor/doctrine/annotations/composer.json  E^  F         vendor/psr/container/LICENSEy  E^y  Op         vendor/psr/container/README.md  E^  !%         vendor/psr/container/.gitignore%   E^%   ӷ}d      "   vendor/psr/container/composer.json  E^  U\      7   vendor/psr/container/src/NotFoundExceptionInterface.php   E^   -      /   vendor/psr/container/src/ContainerInterface.phpJ  E^J  "x      8   vendor/psr/container/src/ContainerExceptionInterface.php   E^   N>K         vendor/psr/log/LICENSE=  E^=  pO         vendor/psr/log/README.mdB  E^B  '      /   vendor/psr/log/Psr/Log/LoggerAwareInterface.php)  E^)  j      #   vendor/psr/log/Psr/Log/LogLevel.phpP  E^P        3   vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php)  E^)  I\      *   vendor/psr/log/Psr/Log/Test/TestLogger.php  E^         )   vendor/psr/log/Psr/Log/Test/DummyTest.php   E^   HTg      +   vendor/psr/log/Psr/Log/LoggerAwareTrait.php  E^  z%      3   vendor/psr/log/Psr/Log/InvalidArgumentException.php`   E^`    X1      %   vendor/psr/log/Psr/Log/NullLogger.php  E^  I      *   vendor/psr/log/Psr/Log/LoggerInterface.php*  E^*  1b!q      &   vendor/psr/log/Psr/Log/LoggerTrait.phpW  E^W  Wj      )   vendor/psr/log/Psr/Log/AbstractLogger.php  E^  Gl         vendor/psr/log/composer.json1  E^1  ܤ         vendor/brightzone/.DS_Store  E^  ̨      +   vendor/brightzone/gremlin-php/composer.lockٓ E^ٓ eH6      *   vendor/brightzone/gremlin-php/CHANGELOG.md  E^  ,      (   vendor/brightzone/gremlin-php/.simplecov   E^   "{      '   vendor/brightzone/gremlin-php/build.xml&  E^&  B      0   vendor/brightzone/gremlin-php/tests/AuthTest.php  E^  9U{ʤ      3   vendor/brightzone/gremlin-php/tests/AuthGS3Test.php  E^  e      8   vendor/brightzone/gremlin-php/tests/Stubs/Connection.php  E^  3Ĥ      I   vendor/brightzone/gremlin-php/tests/Stubs/IncorrectlyFormattedMessage.php  E^  F      L   vendor/brightzone/gremlin-php/tests/Stubs/IncorrectlyFormattedConnection.php  E^  >y      <   vendor/brightzone/gremlin-php/tests/Stubs/TestSerializer.phpb  E^b        5   vendor/brightzone/gremlin-php/tests/GraphSon3Test.php  E^  C'      9   vendor/brightzone/gremlin-php/tests/GremlinServerTest.phpV%  E^V%  ou      3   vendor/brightzone/gremlin-php/tests/RexsterTest.php_  E^_  +ʤ      >   vendor/brightzone/gremlin-php/tests/RexsterExamplesGS3Test.php  E^  ן|      <   vendor/brightzone/gremlin-php/tests/GremlinServerGS3Test.phpU  E^U   >      :   vendor/brightzone/gremlin-php/tests/RexsterWithGS3Test.php  E^  ^Ft      >   vendor/brightzone/gremlin-php/tests/RexsterTransactionTest.php;  E^;  |m      /   vendor/brightzone/gremlin-php/tests/webtest.phpF  E^F  ~Ea      6   vendor/brightzone/gremlin-php/tests/RexsterGS3Test.php  E^  ?@{      1   vendor/brightzone/gremlin-php/tests/bootstrap.php:   E^:   X<      7   vendor/brightzone/gremlin-php/tests/RexsterTestCase.php  E^  J!      ;   vendor/brightzone/gremlin-php/tests/RexsterTestExamples.phpT  E^T  da      ;   vendor/brightzone/gremlin-php/tests/RexsterExamplesTest.phpl  E^l  ay6      :   vendor/brightzone/gremlin-php/tests/RexsterTestWithGS3.php.  E^.  '%      A   vendor/brightzone/gremlin-php/tests/RexsterTransactionGS3Test.phpH  E^H  Jtߤ      '   vendor/brightzone/gremlin-php/README.md0  E^0  rl      (   vendor/brightzone/gremlin-php/.gitignore`   E^`   6      .   vendor/brightzone/gremlin-php/.scrutinizer.yml  E^  Hp      /   vendor/brightzone/gremlin-php/build/phpunit.xmlm  E^m  R[O      5   vendor/brightzone/gremlin-php/build/server/install.shM  E^M  :      H   vendor/brightzone/gremlin-php/build/server/3.2.x/gremlin-server-php.yaml
  E^
  OI      Q   vendor/brightzone/gremlin-php/build/server/3.2.x/gremlin-php-script-secure.groovy	  E^	  ./c      G   vendor/brightzone/gremlin-php/build/server/3.2.x/neo4j-empty.properties  E^        O   vendor/brightzone/gremlin-php/build/server/3.2.x/gremlin-server-php-secure.yaml   E^   P      J   vendor/brightzone/gremlin-php/build/server/3.2.x/gremlin-php-script.groovyQ  E^Q  IP      :   vendor/brightzone/gremlin-php/build/server/jdk8-install.sh  E^  !      H   vendor/brightzone/gremlin-php/build/server/3.3.x/gremlin-server-php.yaml  E^  m7      Q   vendor/brightzone/gremlin-php/build/server/3.3.x/gremlin-php-script-secure.groovy	  E^	  ./c      X   vendor/brightzone/gremlin-php/build/server/3.3.x/gremlin-server-php-secure-graphson.yaml  E^  BO      Q   vendor/brightzone/gremlin-php/build/server/3.3.x/gremlin-server-php-graphson.yaml  E^  ۡVѤ      G   vendor/brightzone/gremlin-php/build/server/3.3.x/neo4j-empty.propertiesV  E^V  /      O   vendor/brightzone/gremlin-php/build/server/3.3.x/gremlin-server-php-secure.yaml  E^  ^      J   vendor/brightzone/gremlin-php/build/server/3.3.x/gremlin-php-script.groovyQ  E^Q  IP      M   vendor/brightzone/gremlin-php/build/server/janusGraph/gremlin-server-php.yamlg	  E^g	        V   vendor/brightzone/gremlin-php/build/server/janusGraph/gremlin-php-script-secure.groovy	  E^	  ./c      L   vendor/brightzone/gremlin-php/build/server/janusGraph/neo4j-empty.properties  E^        T   vendor/brightzone/gremlin-php/build/server/janusGraph/gremlin-server-php-secure.yaml  E^  36      O   vendor/brightzone/gremlin-php/build/server/janusGraph/gremlin-php-script.groovyQ  E^Q  IP      H   vendor/brightzone/gremlin-php/build/server/3.4.x/gremlin-server-php.yaml  E^  m7      Q   vendor/brightzone/gremlin-php/build/server/3.4.x/gremlin-php-script-secure.groovy	  E^	  ./c      X   vendor/brightzone/gremlin-php/build/server/3.4.x/gremlin-server-php-secure-graphson.yamlZ  E^Z  $k      Q   vendor/brightzone/gremlin-php/build/server/3.4.x/gremlin-server-php-graphson.yaml  E^  ۡVѤ      G   vendor/brightzone/gremlin-php/build/server/3.4.x/neo4j-empty.propertiesV  E^V  /      O   vendor/brightzone/gremlin-php/build/server/3.4.x/gremlin-server-php-secure.yamlZ  E^Z  
      J   vendor/brightzone/gremlin-php/build/server/3.4.x/gremlin-php-script.groovyQ  E^Q  IP      .   vendor/brightzone/gremlin-php/build/phpdox.xml  E^  d4      -   vendor/brightzone/gremlin-php/build/phpmd.xml  E^  ;Rl      -   vendor/brightzone/gremlin-php/build/phpcs.xml  E^  c*[      -   vendor/brightzone/gremlin-php/build/deploy.sh=  E^=  0Ԇ      )   vendor/brightzone/gremlin-php/LICENSE.txt0  E^0  1Ts       )   vendor/brightzone/gremlin-php/.travis.ymlM  E^M  &      +   vendor/brightzone/gremlin-php/composer.json  E^  '=      0   vendor/brightzone/gremlin-php/src/Connection.phpm  E^m  4ڤ      .   vendor/brightzone/gremlin-php/src/Workload.php  E^  Zb      5   vendor/brightzone/gremlin-php/src/ServerException.php  E^  	c      4   vendor/brightzone/gremlin-php/src/RequestMessage.php  E^  hϤ      E   vendor/brightzone/gremlin-php/src/Serializers/SerializerInterface.php4  E^4  :E      6   vendor/brightzone/gremlin-php/src/Serializers/Json.phpJ  E^J  ؤ      7   vendor/brightzone/gremlin-php/src/Serializers/Gson3.phpM=  E^M=  
      ,   vendor/brightzone/gremlin-php/src/Helper.php^  E^^  w      -   vendor/brightzone/gremlin-php/src/Message.php   E^   A      7   vendor/brightzone/gremlin-php/src/InternalException.php|  E^|  A(      %   vendor/symfony/polyfill-php73/LICENSE)  E^)  `e0      '   vendor/symfony/polyfill-php73/Php73.phpg  E^g  /n      ?   vendor/symfony/polyfill-php73/Resources/stubs/JsonException.php  E^  <F      +   vendor/symfony/polyfill-php73/bootstrap.php  E^  ?y      '   vendor/symfony/polyfill-php73/README.md1  E^1  	c      +   vendor/symfony/polyfill-php73/composer.json  E^  ]Y      %   vendor/symfony/polyfill-php80/LICENSE$  E^$  LO!
      <   vendor/symfony/polyfill-php80/Resources/stubs/ValueError.php*   E^*   *      <   vendor/symfony/polyfill-php80/Resources/stubs/Stringable.phph   E^h   7      +   vendor/symfony/polyfill-php80/bootstrap.php  E^  u^"      '   vendor/symfony/polyfill-php80/README.md  E^  x{      '   vendor/symfony/polyfill-php80/Php80.php-  E^-  5      +   vendor/symfony/polyfill-php80/composer.jsonA  E^A  (܍      %   vendor/symfony/polyfill-ctype/LICENSE)  E^)  `e0      +   vendor/symfony/polyfill-ctype/bootstrap.php  E^  -      '   vendor/symfony/polyfill-ctype/README.md`  E^`  j      '   vendor/symfony/polyfill-ctype/Ctype.php}  E^}  \谤      +   vendor/symfony/polyfill-ctype/composer.json  E^  W      %   vendor/symfony/polyfill-php72/LICENSE)  E^)  \      '   vendor/symfony/polyfill-php72/Php72.php  E^  }9      +   vendor/symfony/polyfill-php72/bootstrap.php  E^  LR      '   vendor/symfony/polyfill-php72/README.mdi  E^i  !>      +   vendor/symfony/polyfill-php72/composer.json5  E^5  O      <   vendor/symfony/event-dispatcher/EventDispatcherInterface.php
  E^
        )   vendor/symfony/event-dispatcher/Event.php  E^  Má      '   vendor/symfony/event-dispatcher/LICENSE)  E^)  =      ,   vendor/symfony/event-dispatcher/CHANGELOG.md  E^  s      >   vendor/symfony/event-dispatcher/LegacyEventDispatcherProxy.php  E^  И      3   vendor/symfony/event-dispatcher/EventDispatcher.php*  E^*        )   vendor/symfony/event-dispatcher/README.md\  E^\  ⼗n      <   vendor/symfony/event-dispatcher/EventSubscriberInterface.php  E^        <   vendor/symfony/event-dispatcher/ImmutableEventDispatcher.php	  E^	  =פ      4   vendor/symfony/event-dispatcher/LegacyEventProxy.php  E^  A?      0   vendor/symfony/event-dispatcher/GenericEvent.phpr  E^r  Ԯ      M   vendor/symfony/event-dispatcher/DependencyInjection/RegisterListenersPass.php  E^  5Xm      K   vendor/symfony/event-dispatcher/DependencyInjection/AddEventAliasesPass.php  E^  _      -   vendor/symfony/event-dispatcher/composer.json  E^  Y      B   vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php4  E^4  C繩      9   vendor/symfony/event-dispatcher/Debug/WrappedListener.php  E^  f      K   vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcherInterface.php  E^  )bȖ      !   vendor/symfony/filesystem/LICENSE)  E^)  =      &   vendor/symfony/filesystem/CHANGELOG.md*  E^*  ?      (   vendor/symfony/filesystem/Filesystem.phpt  E^t  s      #   vendor/symfony/filesystem/README.md  E^  -J      <   vendor/symfony/filesystem/Exception/IOExceptionInterface.php  E^  i      :   vendor/symfony/filesystem/Exception/ExceptionInterface.php  E^  nj      3   vendor/symfony/filesystem/Exception/IOException.php  E^  HD      @   vendor/symfony/filesystem/Exception/InvalidArgumentException.php  E^  *      =   vendor/symfony/filesystem/Exception/FileNotFoundException.php  E^  Fʹ      '   vendor/symfony/filesystem/composer.json)  E^)  lB      6   vendor/symfony/options-resolver/OptionConfigurator.php  E^  R      '   vendor/symfony/options-resolver/LICENSE)  E^)  =      ,   vendor/symfony/options-resolver/CHANGELOG.md  E^        3   vendor/symfony/options-resolver/OptionsResolver.php  E^  Uɤ      )   vendor/symfony/options-resolver/README.mdw  E^w  U#      +   vendor/symfony/options-resolver/Options.php  E^        E   vendor/symfony/options-resolver/Exception/InvalidOptionsException.php4  E^4  y̻      E   vendor/symfony/options-resolver/Exception/MissingOptionsException.php  E^  ,      =   vendor/symfony/options-resolver/Exception/AccessException.php?  E^?  N+      G   vendor/symfony/options-resolver/Exception/OptionDefinitionException.php  E^  c      @   vendor/symfony/options-resolver/Exception/ExceptionInterface.php  E^  F      F   vendor/symfony/options-resolver/Exception/InvalidArgumentException.php  E^  1Τ      C   vendor/symfony/options-resolver/Exception/NoSuchOptionException.php?  E^?  䐅      F   vendor/symfony/options-resolver/Exception/NoConfigurationException.php  E^  Y>      G   vendor/symfony/options-resolver/Exception/UndefinedOptionsException.php>  E^>        -   vendor/symfony/options-resolver/composer.json  E^        E   vendor/symfony/options-resolver/Debug/OptionsResolverIntrospector.php^  E^^  ^      F   vendor/symfony/event-dispatcher-contracts/EventDispatcherInterface.php  E^        3   vendor/symfony/event-dispatcher-contracts/Event.php&  E^&  ^      1   vendor/symfony/event-dispatcher-contracts/LICENSE)  E^)  `e0      3   vendor/symfony/event-dispatcher-contracts/README.md^  E^^  hI      4   vendor/symfony/event-dispatcher-contracts/.gitignore"   E^"   U      7   vendor/symfony/event-dispatcher-contracts/composer.json  E^  '      %   vendor/symfony/finder/SplFileInfo.php  E^  L }      5   vendor/symfony/finder/Comparator/NumberComparator.php
  E^
        /   vendor/symfony/finder/Comparator/Comparator.php  E^  ~4ؤ      3   vendor/symfony/finder/Comparator/DateComparator.php  E^  is          vendor/symfony/finder/Finder.phpZ  E^Z  BkW         vendor/symfony/finder/LICENSE)  E^)  =      "   vendor/symfony/finder/CHANGELOG.md]  E^]  e         vendor/symfony/finder/Glob.php  E^  {         vendor/symfony/finder/README.md  E^  #L      <   vendor/symfony/finder/Iterator/FilecontentFilterIterator.php  E^  r~      =   vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php{  E^{  ӹ      :   vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php  E^  =̤      9   vendor/symfony/finder/Iterator/FilenameFilterIterator.php  E^  p      :   vendor/symfony/finder/Iterator/DateRangeFilterIterator.php  E^  )      7   vendor/symfony/finder/Iterator/CustomFilterIterator.php  E^  d)      =   vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.phpQ  E^Q  |@u      A   vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php	  E^	  za      3   vendor/symfony/finder/Iterator/SortableIterator.php  E^  @˙X      ;   vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php  E^  h      9   vendor/symfony/finder/Iterator/FileTypeFilterIterator.phpC  E^C  QN      5   vendor/symfony/finder/Iterator/PathFilterIterator.php  E^  }      #   vendor/symfony/finder/Gitignore.php{  E^{  Nm      9   vendor/symfony/finder/Exception/AccessDeniedException.php  E^  cWޤ      >   vendor/symfony/finder/Exception/DirectoryNotFoundException.php  E^  RI      #   vendor/symfony/finder/composer.json  E^  /      %   vendor/symfony/polyfill-php70/LICENSE)  E^)  \      X   vendor/symfony/polyfill-php70/Resources/stubs/SessionUpdateTimestampHandlerInterface.php  E^  J22      ;   vendor/symfony/polyfill-php70/Resources/stubs/TypeError.php)   E^)   O_      <   vendor/symfony/polyfill-php70/Resources/stubs/ParseError.php*   E^*   ᤤ      A   vendor/symfony/polyfill-php70/Resources/stubs/ArithmeticError.php/   E^/   |mͤ      @   vendor/symfony/polyfill-php70/Resources/stubs/AssertionError.php.   E^.   &8y      E   vendor/symfony/polyfill-php70/Resources/stubs/DivisionByZeroError.php3   E^3   h;      7   vendor/symfony/polyfill-php70/Resources/stubs/Error.php)   E^)   [k	      '   vendor/symfony/polyfill-php70/Php70.php  E^  mW      +   vendor/symfony/polyfill-php70/bootstrap.phpj  E^j  `}      '   vendor/symfony/polyfill-php70/README.mdR  E^R  a3դ      +   vendor/symfony/polyfill-php70/composer.json  E^  \'      &   vendor/symfony/stopwatch/Stopwatch.php  E^  g          vendor/symfony/stopwatch/LICENSE)  E^)  =      %   vendor/symfony/stopwatch/CHANGELOG.md  E^  qQFѤ      $   vendor/symfony/stopwatch/Section.php2  E^2  3rU      ,   vendor/symfony/stopwatch/StopwatchPeriod.phpQ  E^Q  TsҤ      "   vendor/symfony/stopwatch/README.md  E^  
      +   vendor/symfony/stopwatch/StopwatchEvent.php/  E^/  $2      &   vendor/symfony/stopwatch/composer.json,  E^,  Qդ         vendor/symfony/yaml/LICENSE)  E^)  =         vendor/symfony/yaml/Parser.php  E^  fwk          vendor/symfony/yaml/CHANGELOG.md  E^  Z¤         vendor/symfony/yaml/Escaper.php  E^  ʭ         vendor/symfony/yaml/README.md  E^  p      !   vendor/symfony/yaml/Unescaper.php"  E^"  ԰         vendor/symfony/yaml/Dumper.phpR  E^R  H         vendor/symfony/yaml/Inline.phpz  E^z  c>n         vendor/symfony/yaml/Yaml.php  E^  3JU      +   vendor/symfony/yaml/Command/LintCommand.php;"  E^;"  !      /   vendor/symfony/yaml/Exception/DumpException.php  E^        4   vendor/symfony/yaml/Exception/ExceptionInterface.php  E^  B9      2   vendor/symfony/yaml/Exception/RuntimeException.php  E^  _q      0   vendor/symfony/yaml/Exception/ParseException.phpt  E^t  S      '   vendor/symfony/yaml/Tag/TaggedValue.php  E^  n%      !   vendor/symfony/yaml/composer.json   E^   -      ,   vendor/symfony/deprecation-contracts/LICENSE$  E^$  LO!
      1   vendor/symfony/deprecation-contracts/CHANGELOG.md   E^         1   vendor/symfony/deprecation-contracts/function.php  E^  ro      .   vendor/symfony/deprecation-contracts/README.md  E^  3      /   vendor/symfony/deprecation-contracts/.gitignore"   E^"   U      2   vendor/symfony/deprecation-contracts/composer.json  E^  Jۤ      ?   vendor/symfony/service-contracts/ServiceSubscriberInterface.php  E^  SRܤ      (   vendor/symfony/service-contracts/LICENSE)  E^)  i8z      <   vendor/symfony/service-contracts/Test/ServiceLocatorTest.phpO  E^O  !      -   vendor/symfony/service-contracts/CHANGELOG.md   E^         *   vendor/symfony/service-contracts/README.mdN  E^N  M      +   vendor/symfony/service-contracts/.gitignore"   E^"   U      3   vendor/symfony/service-contracts/ResetInterface.php  E^  v      =   vendor/symfony/service-contracts/ServiceProviderInterface.php  E^  mX¤      ;   vendor/symfony/service-contracts/ServiceSubscriberTrait.php  E^         8   vendor/symfony/service-contracts/ServiceLocatorTrait.php`  E^`        .   vendor/symfony/service-contracts/composer.json  E^  ߌ         vendor/symfony/process/LICENSE)  E^)  =      +   vendor/symfony/process/ExecutableFinder.php
  E^
  .ly;      #   vendor/symfony/process/CHANGELOG.mdu  E^u  mZ          vendor/symfony/process/README.md  E^  
ߤ      *   vendor/symfony/process/Pipes/UnixPipes.phpR  E^R  '      -   vendor/symfony/process/Pipes/WindowsPipes.php  E^  ޤ      .   vendor/symfony/process/Pipes/AbstractPipes.php  E^  e]      /   vendor/symfony/process/Pipes/PipesInterface.php  E^  6      &   vendor/symfony/process/InputStream.php	  E^	  $fä      %   vendor/symfony/process/PhpProcess.php>  E^>  $?      .   vendor/symfony/process/PhpExecutableFinder.phpZ
  E^Z
  )      =   vendor/symfony/process/Exception/ProcessSignaledException.php  E^        3   vendor/symfony/process/Exception/LogicException.php  E^  W      7   vendor/symfony/process/Exception/ExceptionInterface.php  E^  +      ;   vendor/symfony/process/Exception/ProcessFailedException.php  E^  P5      5   vendor/symfony/process/Exception/RuntimeException.php  E^  >H      =   vendor/symfony/process/Exception/ProcessTimedOutException.php  E^  "      =   vendor/symfony/process/Exception/InvalidArgumentException.php  E^  ˅      $   vendor/symfony/process/composer.json  E^  >      '   vendor/symfony/process/ProcessUtils.phpF  E^F   ax      "   vendor/symfony/process/Process.php  E^  w6      (   vendor/symfony/console/ConsoleEvents.php,  E^,  ~HG      &   vendor/symfony/console/Application.phpr  E^r  ts-Ҥ      /   vendor/symfony/console/Logger/ConsoleLogger.php  E^  Ap3         vendor/symfony/console/LICENSE)  E^)  =      #   vendor/symfony/console/CHANGELOG.md  E^  P      9   vendor/symfony/console/Input/StreamableInputInterface.phpi  E^i        +   vendor/symfony/console/Input/ArrayInput.phpg  E^g        *   vendor/symfony/console/Input/ArgvInput.php,  E^,  yjq      .   vendor/symfony/console/Input/InputArgument.phpN  E^N  4t      4   vendor/symfony/console/Input/InputAwareInterface.php:  E^:   '      ,   vendor/symfony/console/Input/InputOption.php  E^  Ĥ      0   vendor/symfony/console/Input/InputDefinition.phpS+  E^S+  C      ,   vendor/symfony/console/Input/StringInput.php  E^  ӮY      &   vendor/symfony/console/Input/Input.phpr  E^r  Ujx      /   vendor/symfony/console/Input/InputInterface.php  E^  Έڤ      #   vendor/symfony/console/Terminal.php  E^  4      4   vendor/symfony/console/Resources/bin/hiddeninput.exe $  E^ $  v      8   vendor/symfony/console/Output/ConsoleOutputInterface.php4  E^4  }      0   vendor/symfony/console/Output/BufferedOutput.phpH  E^H  9Ԥ      1   vendor/symfony/console/Output/OutputInterface.php$  E^$  w;      (   vendor/symfony/console/Output/Output.php  E^  \j      6   vendor/symfony/console/Output/ConsoleSectionOutput.phpD  E^D  0ǘ      /   vendor/symfony/console/Output/ConsoleOutput.php  E^        ,   vendor/symfony/console/Output/NullOutput.phpn  E^n  tD      .   vendor/symfony/console/Output/StreamOutput.php  E^  Bl$      ,   vendor/symfony/console/Style/OutputStyle.php  E^  1kz      -   vendor/symfony/console/Style/SymfonyStyle.php7  E^7  Nڤ      /   vendor/symfony/console/Style/StyleInterface.php(  E^(  5       2   vendor/symfony/console/Question/ChoiceQuestion.php  E^  =|W      ,   vendor/symfony/console/Question/Question.php  E^  *ͤ      8   vendor/symfony/console/Question/ConfirmationQuestion.php  E^  ?uȤ          vendor/symfony/console/README.md  E^  ]j/      9   vendor/symfony/console/Formatter/OutputFormatterStyle.php  E^  ܻؤ      B   vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php<  E^<  Z      =   vendor/symfony/console/Formatter/OutputFormatterInterface.phpH  E^H        4   vendor/symfony/console/Formatter/OutputFormatter.phpS  E^S  l״      F   vendor/symfony/console/Formatter/WrappableOutputFormatterInterface.php  E^  `K>      >   vendor/symfony/console/Formatter/OutputFormatterStyleStack.php	  E^	  ;2      ?   vendor/symfony/console/CommandLoader/CommandLoaderInterface.php  E^        ?   vendor/symfony/console/CommandLoader/ContainerCommandLoader.php  E^  @פ      =   vendor/symfony/console/CommandLoader/FactoryCommandLoader.php7  E^7  m_      4   vendor/symfony/console/Descriptor/TextDescriptor.php31  E^31  g(      <   vendor/symfony/console/Descriptor/ApplicationDescription.php  E^  mJ
      3   vendor/symfony/console/Descriptor/XmlDescriptor.php6#  E^6#  !pP      9   vendor/symfony/console/Descriptor/DescriptorInterface.php  E^  PZ      0   vendor/symfony/console/Descriptor/Descriptor.phpd  E^d  T      4   vendor/symfony/console/Descriptor/JsonDescriptor.php  E^  +      8   vendor/symfony/console/Descriptor/MarkdownDescriptor.php  E^  Y\      /   vendor/symfony/console/Tester/CommandTester.phpg	  E^g	  x3       -   vendor/symfony/console/Tester/TesterTrait.php  E^  פh      3   vendor/symfony/console/Tester/ApplicationTester.phpt  E^t  S      0   vendor/symfony/console/Command/LockableTrait.php  E^  ܫǒ      .   vendor/symfony/console/Command/HelpCommand.phpR	  E^R	  P¤      .   vendor/symfony/console/Command/ListCommand.php	  E^	  y3      *   vendor/symfony/console/Command/Command.phpK  E^K  ,M      ,   vendor/symfony/console/Helper/TableStyle.php<  E^<  K      +   vendor/symfony/console/Helper/TableRows.phpU  E^U  $      7   vendor/symfony/console/Helper/SymfonyQuestionHelper.phpy  E^y  O      1   vendor/symfony/console/Helper/HelperInterface.phpp  E^p  n      +   vendor/symfony/console/Helper/TableCell.php  E^  B%      /   vendor/symfony/console/Helper/ProcessHelper.php  E^  N^      0   vendor/symfony/console/Helper/TableSeparator.php  E^  &      1   vendor/symfony/console/Helper/FormatterHelper.php
  E^
  U      -   vendor/symfony/console/Helper/ProgressBar.phpE  E^E  |ۤ      6   vendor/symfony/console/Helper/DebugFormatterHelper.php  E^  ΉI      +   vendor/symfony/console/Helper/HelperSet.php}	  E^}	  |      (   vendor/symfony/console/Helper/Dumper.php  E^  +'f      2   vendor/symfony/console/Helper/InputAwareHelper.php  E^        0   vendor/symfony/console/Helper/QuestionHelper.php#B  E^#B  @KZ      (   vendor/symfony/console/Helper/Helper.php  E^  }Ku      '   vendor/symfony/console/Helper/Table.phpj  E^j  +Q|@      3   vendor/symfony/console/Helper/ProgressIndicator.phpt  E^t  PT      2   vendor/symfony/console/Helper/DescriptorHelper.php	  E^	        D   vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php)  E^)  8~      3   vendor/symfony/console/Exception/LogicException.php  E^  SML      ;   vendor/symfony/console/Exception/InvalidOptionException.php  E^  ;      7   vendor/symfony/console/Exception/ExceptionInterface.php  E^  l      5   vendor/symfony/console/Exception/RuntimeException.php  E^  *b      ?   vendor/symfony/console/Exception/NamespaceNotFoundException.php  E^  BLH      =   vendor/symfony/console/Exception/InvalidArgumentException.php  E^  u i      :   vendor/symfony/console/Exception/MissingInputException.php  E^  Qg;      =   vendor/symfony/console/Exception/CommandNotFoundException.php  E^  N      6   vendor/symfony/console/Event/ConsoleTerminateEvent.php  E^  o      2   vendor/symfony/console/Event/ConsoleErrorEvent.php  E^  a      4   vendor/symfony/console/Event/ConsoleCommandEvent.phpD  E^D  BTC      -   vendor/symfony/console/Event/ConsoleEvent.php  E^  xS*      $   vendor/symfony/console/composer.json  E^  EG       6   vendor/symfony/console/EventListener/ErrorListener.php
  E^
  s      (   vendor/symfony/polyfill-mbstring/LICENSE)  E^)  \      @   vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php_  E^_  Z      F   vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php9  E^9  >|zK      @   vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php`  E^`  S      -   vendor/symfony/polyfill-mbstring/Mbstring.phpm  E^m  '      .   vendor/symfony/polyfill-mbstring/bootstrap.php  E^  )~Τ      *   vendor/symfony/polyfill-mbstring/README.mdt  E^t  SH      .   vendor/symfony/polyfill-mbstring/composer.json  E^  2MdG         exakati  E^i  w         Bud1                                                                      a tbwspblob                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          @                                              @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  E x a k a tbwspblob   bplist00	
			]ShowStatusBar_SidebarWidthTenElevenOrLater[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar[ShowPathbar	#@k`     		_{{575, 165}, {1049, 736}}	'FR^u                                E x a k a tdsclbool    E x a k a tlsvCblob  bplist00	
IJ
L_viewOptionsVersion_showIconPreview_calculateAllSizesWcolumnsXtextSizeZsortColumn_useRelativeDatesXiconSize 	#',16;@E

WvisibleUwidthYascendingZidentifier		TnameWvisibleUwidthYascending#Xubiquity
 "	\dateModified &[dateCreated
)+	aTsize
.
0	s	Tkind3
5d	Ulabel8
:K	Wversion=
?,	XcommentsBD^dateLastOpened HYdateAdded#@(      Tname	#@0         . @ T \ e p                       	
#$%1:;=>CLMOPU^_abhqrtu}             M                  E x a k a tlsvpblob  ^bplist00	
EF
H_viewOptionsVersion_showIconPreview_calculateAllSizesWcolumnsXtextSizeZsortColumn_useRelativeDatesXiconSize 	$).38=AXcomments^dateLastOpened[dateCreatedTsizeUlabelTkindWversionTname\dateModified
UindexUwidthYascendingWvisible,	 !%&*+
a	/0
d	45

s		9:
K		>

		B&
	#@(      Tname	#@0         . @ T \ e p                 (*,-.79;<=FHJKLUWYZ[dfhijsuwxy             I                  E x a k a tvSrnlong                                                                                                                                                                                                                                                                                                                                                                                                                   E                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         DSDB                                 `                                                  @                                                @                                                @       
UindexUwidthYascendingWvisible,	 !%&*+
a	/0
d	45

s		9:
K		>

		B&
	#@(      Tname	#@0         . @ T \ e p                 (*,-.79;<=FHJKLUWYZ[dfhijsuwxy             I                  E x a k a tvSrnlong                                                                                                                                                                                                                                                                                                                                                                                                       <?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat;

use Exakat\Data\Dictionary;
use Exakat\Graph\Graph;
use Exakat\Reports\Helpers\Docs;
use Exakat\Data\Methods;
use Exakat\Analyzer\Rulesets;

class Container {
    private $verbose    = 0;
    private $phar       = 0;

    private $config     = null;
    private $graphdb    = null;
    private $datastore  = null;
    private $dictionary = null;
    private $docs       = null;
    private $methods    = null;
    private $rulesets   = null;
    private $php        = null;

    public function init(array $argv = array()) {
        $this->config = new Config($argv);

        $this->verbose = $this->config->verbose;
        $this->phar    = $this->config->isPhar;
    }

    public function __get(string $what) {
        assert(property_exists($this, $what), "No such element in the container : '$what'\n");

        if ($this->$what === null) {
            $this->$what();
        }

        return $this->$what;
    }

    private function graphdb() {
        $this->graphdb    = Graph::getConnexion();
        $this->graphdb->init();
    }

    private function datastore() {
        $this->datastore  = new Datastore();
    }

    private function dictionary() {
        $this->dictionary = new Dictionary();
    }

    private function methods() {
        $this->methods    = new Methods($this->config);
    }

    private function docs() {
        $this->docs = new Docs($this->config->dir_root,
                               $this->config->ext,
                               $this->config->dev
                               );
    }

    private function rulesets() {
        $this->rulesets = new Rulesets("{$this->config->dir_root}/data/analyzers.sqlite",
                                       $this->config->ext,
                                       $this->config->dev,
                                       $this->config->rulesets,
                                       $this->config->ignore_rules
                                       );
    }

    private function php() {
        $phpVersion = 'php' . str_replace('.', '', $this->config->phpversion);
        $this->php = new Phpexec($this->config->phpversion, $this->config->{$phpVersion});
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks;

use Exakat\Config;
use Exakat\Exceptions\InvalidProjectName;
use Exakat\Exceptions\NoCodeInProject;
use Exakat\Exceptions\NoSuchProject;
use Exakat\Exceptions\NoFileToProcess;
use Exakat\Vcs\Vcs;

class Update extends Tasks {
    const CONCURENCE = self::ANYTIME;

    protected $logname = self::LOG_NONE;

    public function run() {
        $project = $this->config->project;

        if (!$project->validate()) {
            throw new InvalidProjectName($project->getError());
        }

        if ($this->config->project->isDefault()) {
            $this->runDefault();
        } else {
            $this->runProject($this->config->project);
        }
    }

    private function runDefault() {
        if (!file_exists("{$this->config->projects_root}/projects")) {
            display("This installation has no projects directory. Aborting all update. Provide .exakat.ini to enable update in this folder.\n");
            return;
        }

        $paths = glob("{$this->config->projects_root}/projects/*");
        $projects = array_map('basename', $paths);
        $projects = array_diff($projects, array('test'));

        echo 'Updating ' . count($projects) . ' projects' . PHP_EOL;
        sleep(3); // This is letting the user understand the command.
        shuffle($projects);
        foreach ($projects as $project) {
            display("updating $project\n");

            $args = array(1 => 'update',
                          2 => '-p',
                          3 => $project,
            );
            $updateConfig = new Config($args);

            $this->update($updateConfig);
        }
    }

    private function runProject($project) {
        if (!file_exists($this->config->project_dir)) {
            throw new NoSuchProject($this->config->project);
        }

        if (!is_dir($this->config->project_dir)) {
            throw new NoSuchProject($this->config->project);
        }

        if (!file_exists($this->config->code_dir)) {
            throw new NoCodeInProject($this->config->project);
        }

        $this->update($this->config);
    }

    private function update(Config $updateConfig) {
        $vcs = Vcs::getVcs($updateConfig);
        $vcs = new $vcs($updateConfig->project, $updateConfig->code_dir);

        display("Code update $updateConfig->project with " . $vcs->getName());
        $new = $vcs->update();
        if ($new === Vcs::NO_UPDATE) {
            display('No update available. Skipping');

            return;
        }

        display($vcs->getName() . " updated to $new");

        display('Running files');
        $updateCache = new Files();
        try {
            $updateCache->run();
        } catch (NoFileToProcess $e) {
            display("No file to process\n");
            // OK, just carry on.
        }
    }
}
<?php
/*
 * Copyright 2012-2019 Damien Seguy  Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

declare(strict_types = 1);

namespace Exakat\Tasks;

use Exakat\GraphElements;
use Exakat\Graph\Graph;
use Exakat\Project;
use Exakat\Exceptions\InvalidPHPBinary;
use Exakat\Exceptions\LoadError;
use Exakat\Exceptions\MustBeAFile;
use Exakat\Exceptions\MustBeADir;
use Exakat\Exceptions\NoFileToProcess;
use Exakat\Exceptions\NoSuchLoader;
use Exakat\Exceptions\UnknownCase;
use Exakat\Tasks\LoadFinal\LoadFinal;
use Exakat\Tasks\Helpers\Fullnspaths;
use Exakat\Tasks\Helpers\Atom;
use Exakat\Tasks\Helpers\AtomGroup;
use Exakat\Tasks\Helpers\Calls;
use Exakat\Tasks\Helpers\Context;
use Exakat\Tasks\Helpers\Intval;
use Exakat\Tasks\Helpers\Strval;
use Exakat\Tasks\Helpers\Boolval;
use Exakat\Tasks\Helpers\Nullval;
use Exakat\Tasks\Helpers\Constant;
use Exakat\Tasks\Helpers\Precedence;
use Exakat\Tasks\Helpers\IsRead;
use Exakat\Tasks\Helpers\IsModified;
use Exakat\Tasks\Helpers\Php;
use Exakat\Tasks\Helpers\Sequences;
use Exakat\Tasks\Helpers\NestedCollector;
use ProgressBar\Manager as ProgressBar;
use Exakat\Loader\Collector;

class Load extends Tasks {
    const CONCURENCE = self::NONE;

    private $SCALAR_TYPE = array('int',
                                 'bool',
                                 'void',
                                 'float',
                                 'string',
                                 'array',
                                 'callable',
                                 'iterable',
                                 'object',
                                 'false',
                                 'null',
                                 );
    private $PHP_SUPERGLOBALS = array('$GLOBALS',
                                      '$_SERVER',
                                      '$_GET',
                                      '$_POST',
                                      '$_FILES',
                                      '$_REQUEST',
                                      '$_SESSION',
                                      '$_ENV',
                                      '$_COOKIE',
                                      '$php_errormsg',
                                      '$HTTP_RAW_POST_DATA',
                                      '$http_response_header',
                                      '$argc',
                                      '$argv',
                                      '$HTTP_POST_VARS',
                                      '$HTTP_GET_VARS',
                                      );

    private $assignations = array();

    private $php    = null;
    private $loader = null;
    private $loaderList = array('SplitGraphson',
                                'Collector',
                                'None',
                                );

    private $precedence   = null;
    private $phptokens    = null;

    private $atomGroup = null;
    private $calls = null;
    private $theGlobals = array();

    private $namespace = '\\';
    private $uses       = null;
    private $filename   = null;

    private $links   = array();
    private $relicat = array();
    private $minId   = \PHP_INT_MAX;

    private $logTimeFile   = null;

    private $sequences = array();

    private $currentMethod           = array();
    private $currentFunction         = array();
    private $currentVariables        = array();
    private $currentReturn           = null;
    private $currentClassTrait       = array();
    private $currentProperties       = array();
    private $currentPropertiesCalls  = array();
    private $cases                   = null; // NestedCollector

    private $tokens = array();
    private $id     = 0;
    private $id0    = null;

    private $phpDocs    = array();
    private $attributes = array();

//    private $sqliteLocation = '/tmp/load.sqlite';
// for debug purpose
    private $sqliteLocation = ':memory:';

    const ALTERNATIVE_SYNTAX = true;
    const NORMAL_SYNTAX      = false;

    const FULLCODE_SEQUENCE = ' /**/ ';
    const FULLCODE_BLOCK    = ' { /**/ } ';
    const FULLCODE_VOID     = ' ';

    const ALIASED           = 1;
    const NOT_ALIASED       = '';

    const NO_LINE           = -1;

    const VARIADIC          = 1;
    const NOT_VARIADIC      = '';

    const FLEXIBLE          = 1;
    const NOT_FLEXIBLE      = false;

    const REFERENCE         = 1;
    const NOT_REFERENCE     = '';

    const BRACKET          = true;
    const NOT_BRACKET      = false;

    const ENCLOSING        = true;
    const NO_ENCLOSING     = false;

    const ALTERNATIVE      = true;
    const NOT_ALTERNATIVE  = false;

    const TRAILING         = true;
    const NOT_TRAILING     = false;

    const NULLABLE         = true;
    const NOT_NULLABLE     = false;

    const ELLIPSIS         = true;
    const NOT_ELLIPSIS     = false;

    const CLOSING_TAG      = true;
    const NO_CLOSING_TAG   = false;

    const NO_VALUE          = -1;
    const NOT_BINARY        = ''; // other values b, B (binary)

    const ABSOLUTE     = true;
    const NOT_ABSOLUTE = false;

    const WITH_FULLNSPATH      = true;
    const WITHOUT_FULLNSPATH   = false;

    const CONSTANT_EXPRESSION       = true;
    const NOT_CONSTANT_EXPRESSION   = false;

    const FULLNSPATH_UNDEFINED = 'undefined';

    const WITHOUT_TYPEHINT_SUPPORT = false;
    const WITH_TYPEHINT_SUPPORT    = true;

    const STANDALONE_BLOCK         = true;
    const RELATED_BLOCK            = false;

    const NO_NAMESPACE = '';

    const CASE_SENSITIVE         = true;
    const CASE_INSENSITIVE       = false;

    const COMPILE_CHECK    = true;
    const COMPILE_NO_CHECK = false;

    const PROMOTED     = true;
    const PROMOTED_NOT = false;

    private $contexts              = null;

    private $expressions         = array();
    private $atoms               = array();
    private $argumentsId         = array();
    private $sequence            = null;
    private $callsDatabase       = null;

    private $processing = array();

    private $plugins = array();

    private $stats = array('loc'       => 0,
                           'totalLoc'  => 0,
                           'files'     => 0,
                           'tokens'    => 0);

    public function __construct(bool $subtask = self::IS_NOT_SUBTASK) {
        parent::__construct($subtask);

        $this->atomGroup = new AtomGroup();

        $this->contexts  = new Context();

        $this->php = exakat('php');
        if (!$this->php->isValid()) {
            throw new InvalidPHPBinary($this->php->getConfiguration('phpversion'));
        }
        $tokens = $this->php->getTokens();
        $this->phptokens  = Php::getInstance($tokens);

        $this->assignations = array($this->phptokens::T_EQUAL,
                                    $this->phptokens::T_PLUS_EQUAL,
                                    $this->phptokens::T_AND_EQUAL,
                                    $this->phptokens::T_CONCAT_EQUAL,
                                    $this->phptokens::T_DIV_EQUAL,
                                    $this->phptokens::T_MINUS_EQUAL,
                                    $this->phptokens::T_MOD_EQUAL,
                                    $this->phptokens::T_MUL_EQUAL,
                                    $this->phptokens::T_OR_EQUAL,
                                    $this->phptokens::T_POW_EQUAL,
                                    $this->phptokens::T_SL_EQUAL,
                                    $this->phptokens::T_SR_EQUAL,
                                    $this->phptokens::T_XOR_EQUAL,
                                    $this->phptokens::T_COALESCE_EQUAL,
                                   );

        // Init all plugins here
        $this->plugins[] = new Boolval();
        $this->plugins[] = new Intval();
        $this->plugins[] = new Strval();
        $this->plugins[] = new Nullval();
        $this->plugins[] = new Constant();
        $this->plugins[] = new IsRead();
        $this->plugins[] = new IsModified();

        $this->sequences = new Sequences();

        $this->precedence = new Precedence(get_class($this->phptokens));

        $this->processing = array(
            $this->phptokens::T_OPEN_TAG                 => 'processOpenTag',
            $this->phptokens::T_OPEN_TAG_WITH_ECHO       => 'processOpenTag',

            $this->phptokens::T_DOLLAR                   => 'processDollar',
            $this->phptokens::T_VARIABLE                 => 'processVariable',
            $this->phptokens::T_LNUMBER                  => 'processInteger',
            $this->phptokens::T_DNUMBER                  => 'processFloat',

            $this->phptokens::T_OPEN_PARENTHESIS         => 'processParenthesis',

            $this->phptokens::T_PLUS                     => 'processAddition',
            $this->phptokens::T_MINUS                    => 'processAddition',
            $this->phptokens::T_STAR                     => 'processMultiplication',
            $this->phptokens::T_SLASH                    => 'processMultiplication',
            $this->phptokens::T_PERCENTAGE               => 'processMultiplication',
            $this->phptokens::T_POW                      => 'processPower',
            $this->phptokens::T_INSTANCEOF               => 'processInstanceof',
            $this->phptokens::T_SL                       => 'processBitshift',
            $this->phptokens::T_SR                       => 'processBitshift',

            $this->phptokens::T_DOUBLE_COLON             => 'processDoubleColon',
            $this->phptokens::T_OBJECT_OPERATOR          => 'processObjectOperator',
            $this->phptokens::T_NEW                      => 'processNew',

            $this->phptokens::T_DOT                      => 'processDot',
            $this->phptokens::T_OPEN_CURLY               => 'processBlock',

            $this->phptokens::T_IS_SMALLER_OR_EQUAL      => 'processComparison',
            $this->phptokens::T_IS_GREATER_OR_EQUAL      => 'processComparison',
            $this->phptokens::T_GREATER                  => 'processComparison',
            $this->phptokens::T_SMALLER                  => 'processComparison',

            $this->phptokens::T_IS_EQUAL                 => 'processComparison',
            $this->phptokens::T_IS_NOT_EQUAL             => 'processComparison',
            $this->phptokens::T_IS_IDENTICAL             => 'processComparison',
            $this->phptokens::T_IS_NOT_IDENTICAL         => 'processComparison',
            $this->phptokens::T_SPACESHIP                => 'processComparison',

            $this->phptokens::T_OPEN_BRACKET             => 'processArrayLiteral',
            $this->phptokens::T_ARRAY                    => 'processArrayLiteral',
            $this->phptokens::T_UNSET                    => 'processIsset',
            $this->phptokens::T_ISSET                    => 'processIsset',
            $this->phptokens::T_EMPTY                    => 'processIsset',
            $this->phptokens::T_LIST                     => 'processArray', // Can't move to processEcho, because of omissions
            $this->phptokens::T_EVAL                     => 'processIsset',
            $this->phptokens::T_ECHO                     => 'processEcho',
            $this->phptokens::T_EXIT                     => 'processExit',
            $this->phptokens::T_DOUBLE_ARROW             => 'processKeyvalue',

            $this->phptokens::T_HALT_COMPILER            => 'processHalt',
            $this->phptokens::T_PRINT                    => 'processPrint',
            $this->phptokens::T_INCLUDE                  => 'processPrint',
            $this->phptokens::T_INCLUDE_ONCE             => 'processPrint',
            $this->phptokens::T_REQUIRE                  => 'processPrint',
            $this->phptokens::T_REQUIRE_ONCE             => 'processPrint',
            $this->phptokens::T_RETURN                   => 'processReturn',
            $this->phptokens::T_THROW                    => 'processThrow',
            $this->phptokens::T_YIELD                    => 'processYield',
            $this->phptokens::T_YIELD_FROM               => 'processYieldfrom',

            $this->phptokens::T_EQUAL                    => 'processAssignation',
            $this->phptokens::T_PLUS_EQUAL               => 'processAssignation',
            $this->phptokens::T_AND_EQUAL                => 'processAssignation',
            $this->phptokens::T_CONCAT_EQUAL             => 'processAssignation',
            $this->phptokens::T_DIV_EQUAL                => 'processAssignation',
            $this->phptokens::T_MINUS_EQUAL              => 'processAssignation',
            $this->phptokens::T_MOD_EQUAL                => 'processAssignation',
            $this->phptokens::T_MUL_EQUAL                => 'processAssignation',
            $this->phptokens::T_OR_EQUAL                 => 'processAssignation',
            $this->phptokens::T_POW_EQUAL                => 'processAssignation',
            $this->phptokens::T_SL_EQUAL                 => 'processAssignation',
            $this->phptokens::T_SR_EQUAL                 => 'processAssignation',
            $this->phptokens::T_XOR_EQUAL                => 'processAssignation',
            $this->phptokens::T_COALESCE_EQUAL           => 'processAssignation',

            $this->phptokens::T_CONTINUE                 => 'processBreak',
            $this->phptokens::T_BREAK                    => 'processBreak',

            $this->phptokens::T_LOGICAL_AND              => 'processLogical',
            $this->phptokens::T_LOGICAL_XOR              => 'processLogical',
            $this->phptokens::T_LOGICAL_OR               => 'processLogical',
            $this->phptokens::T_XOR                      => 'processLogical',
            $this->phptokens::T_OR                       => 'processLogical',
            $this->phptokens::T_AND                      => 'processAnd',

            $this->phptokens::T_BOOLEAN_AND              => 'processLogical',
            $this->phptokens::T_BOOLEAN_OR               => 'processLogical',

            $this->phptokens::T_QUESTION                 => 'processTernary',
            $this->phptokens::T_NS_SEPARATOR             => 'processNsname',
            $this->phptokens::T_COALESCE                 => 'processCoalesce',

            $this->phptokens::T_INLINE_HTML              => 'processInlinehtml',

            $this->phptokens::T_INC                      => 'processPlusplus',
            $this->phptokens::T_DEC                      => 'processPlusplus',

            $this->phptokens::T_WHILE                    => 'processWhile',
            $this->phptokens::T_DO                       => 'processDo',
            $this->phptokens::T_IF                       => 'processIfthen',
            $this->phptokens::T_FOREACH                  => 'processForeach',
            $this->phptokens::T_FOR                      => 'processFor',
            $this->phptokens::T_TRY                      => 'processTry',
            $this->phptokens::T_CONST                    => 'processConst',
            $this->phptokens::T_SWITCH                   => 'processSwitch',
            $this->phptokens::T_DEFAULT                  => 'processDefault',
            $this->phptokens::T_CASE                     => 'processCase',
            $this->phptokens::T_DECLARE                  => 'processDeclare',

            $this->phptokens::T_AT                       => 'processNoscream',
            $this->phptokens::T_CLONE                    => 'processClone',
            $this->phptokens::T_GOTO                     => 'processGoto',

            $this->phptokens::T_STRING                   => 'processString',
            $this->phptokens::T_STRING_VARNAME           => 'processString', // ${x} x is here
            $this->phptokens::T_CONSTANT_ENCAPSED_STRING => 'processLiteral',
            $this->phptokens::T_ENCAPSED_AND_WHITESPACE  => 'processLiteral',
            $this->phptokens::T_NUM_STRING               => 'processLiteral',

            $this->phptokens::T_ARRAY_CAST               => 'processCast',
            $this->phptokens::T_BOOL_CAST                => 'processCast',
            $this->phptokens::T_DOUBLE_CAST              => 'processCast',
            $this->phptokens::T_INT_CAST                 => 'processCast',
            $this->phptokens::T_OBJECT_CAST              => 'processCast',
            $this->phptokens::T_STRING_CAST              => 'processCast',
            $this->phptokens::T_UNSET_CAST               => 'processCast',

            $this->phptokens::T_FILE                     => 'processMagicConstant',
            $this->phptokens::T_CLASS_C                  => 'processMagicConstant',
            $this->phptokens::T_FUNC_C                   => 'processMagicConstant',
            $this->phptokens::T_LINE                     => 'processMagicConstant',
            $this->phptokens::T_DIR                      => 'processMagicConstant',
            $this->phptokens::T_METHOD_C                 => 'processMagicConstant',
            $this->phptokens::T_NS_C                     => 'processMagicConstant',
            $this->phptokens::T_TRAIT_C                  => 'processMagicConstant',

            $this->phptokens::T_BANG                     => 'processNot',
            $this->phptokens::T_TILDE                    => 'processNot',
            $this->phptokens::T_ELLIPSIS                 => 'processEllipsis',

            $this->phptokens::T_SEMICOLON                => 'processSemicolon',
            $this->phptokens::T_CLOSE_TAG                => 'processClosingTag',

            $this->phptokens::T_FUNCTION                 => 'processFunction',
            $this->phptokens::T_FN                       => 'processFn',
            $this->phptokens::T_CLASS                    => 'processClass',
            $this->phptokens::T_TRAIT                    => 'processTrait',
            $this->phptokens::T_INTERFACE                => 'processInterface',
            $this->phptokens::T_NAMESPACE                => 'processNamespace',
            $this->phptokens::T_USE                      => 'processUse',

            $this->phptokens::T_ABSTRACT                 => 'processAbstract',
            $this->phptokens::T_FINAL                    => 'processFinal',
            $this->phptokens::T_PRIVATE                  => 'processPPP',
            $this->phptokens::T_PROTECTED                => 'processPPP',
            $this->phptokens::T_PUBLIC                   => 'processPPP',
            $this->phptokens::T_VAR                      => 'processVar',

            $this->phptokens::T_QUOTE                    => 'processQuote',
            $this->phptokens::T_START_HEREDOC            => 'processQuote',
            $this->phptokens::T_BACKTICK                 => 'processQuote',
            $this->phptokens::T_DOLLAR_OPEN_CURLY_BRACES => 'processDollarCurly',
            $this->phptokens::T_STATIC                   => 'processStatic',
            $this->phptokens::T_GLOBAL                   => 'processGlobalVariable',

            $this->phptokens::T_DOC_COMMENT              => 'processPhpdoc',
        );

        $this->cases = new NestedCollector();
     }

    public function __destruct() {
        $this->callsDatabase = null;
        $this->loader        = null;

        if (file_exists("{$this->config->projects_root}/projects/.exakat/calls.sqlite")) {
            unlink("{$this->config->projects_root}/projects/.exakat/calls.sqlite");
        }
    }

    public function runPlugins(Atom $atom, array $linked = array()): void {
        try {
            foreach($this->plugins as $plugin) {
                $plugin->run($atom, $linked);
            }
        } catch (\Throwable $t) {
            $this->log->log('Runplugin error : ' . $t->getMessage() . ' ' . $t->getFile() . ' ' . $t->getLine());
        }
    }

    public function run(): void {
        $this->logTime('Start');
        // Clean tmp folder
        $files = glob("{$this->config->tmp_dir}/*.csv");

        foreach($files as $file) {
            unlink($file);
        }

        $this->checkTokenLimit();

        // Reset Atom.
        $this->id0 = $this->addAtom('Project');
        $this->id0->code      = 'Whole';
        $this->id0->atom      = 'Project';
        $this->id0->code      = (string) $this->config->project;
        $this->id0->fullcode  = $this->config->project_name;
        $this->id0->token     = 'T_WHOLE';
        $this->atoms          = array();
        $this->minId          = \PHP_INT_MAX;

        // Cleaning the databases
        $this->datastore->cleanTable('tokenCounts');
        $this->datastore->cleanTable('dictionary');
        $this->logTime('Init');

        if ($filename = $this->config->filename) {
            if (!is_file($filename)) {
                throw new MustBeAFile($filename);
            }

            try {
                $this->callsDatabase = new \Sqlite3($this->sqliteLocation);
                $this->calls = new Calls($this->callsDatabase);

                $clientClass = "\\Exakat\\Loader\\{$this->config->loader}";
                display("Loading with $clientClass\n");
                if (!class_exists($clientClass)) {
                    throw new NoSuchLoader($clientClass, $this->loaderList);
                }
                $this->loader = new $clientClass($this->callsDatabase, $this->id0);

                ++$this->stats['files'];
                if ($this->processFile($filename, '')) {
//                    var_dump($this->processFile('/Users/famille/Desktop/analyzeG3/stub.php', ''));
                    $this->loader->finalize($this->relicat);
                } else {
                    print "Error while loading the file.\n";
                }
            } catch (NoFileToProcess $e) {
                $this->datastore->ignoreFile($filename, $e->getMessage());
                $this->log->log('Process File error : ' . $e->getMessage() . ' ' . $e->getFile() . ' ' . $e->getLine());
            }
        } elseif ($dirName = $this->config->dirname) {
            if (!is_dir($dirName)) {
                throw new MustBeADir($dirName);
            }
            $this->processDir($dirName);
        } elseif (($project = $this->config->project) !== 'default') {
            $this->processProject($project);
        } else {
            throw new NoFileToProcess($filename, 'non-existent');
        }

        $this->logTime('Load in graph');

        $stats = array(array('key' => 'loc',         'value' => $this->stats['loc']),
                       array('key' => 'locTotal',    'value' => $this->stats['totalLoc']),
                       array('key' => 'files',       'value' => $this->stats['files']),
                       array('key' => 'tokens',      'value' => $this->stats['tokens']),
                       );
        $this->datastore->addRow('hash', $stats);

        $this->datastore->addRow('hash', array('status' => 'Load'));

        $loadFinal = new LoadFinal();
        $this->logTime('LoadFinal new');
        $loadFinal->run();
        $this->logTime('The End');
    }

    private function processProject(Project $project): array {
        $files = $this->datastore->getCol('files', 'file');

        if (empty($files)) {
            throw new NoFileToProcess($project, "No file to load.\n");
        }

        $stubs = $this->config->stubs;

        if ($this->config->parallel_processing === true) {
            display('Parallel processing');
            $pid = pcntl_fork();
            if ($pid === 0 ) {
                $this->runCollector($stubs);
                display('Child finished working');
                exit(0);
            } else {
                $this->gremlin = Graph::getConnexion();

                $nbTokens = $this->runProjectCore($files);
                $b = microtime(true);
                display('Waiting for child');
                pcntl_wait($pid);
                $e = microtime(true);
                display('Finished waiting for child : ' . (($e - $b) * 1000) . ' ms');
            }
        } else {
            display('Sequential processing');
            $this->runCollector($stubs);

            $this->gremlin = Graph::getConnexion();

            $nbTokens = $this->runProjectCore($files);
        }

        return array('files'  => count($files),
                     'tokens' => $nbTokens);
    }

    private function runProjectCore(array $files): int {
        $clientClass = "\\Exakat\\Loader\\{$this->config->loader}";
        display("Loading with $clientClass\n");
        if (!class_exists($clientClass)) {
            throw new NoSuchLoader($clientClass, $this->loaderList);
        }

        $this->callsDatabase = new \Sqlite3($this->sqliteLocation);
        $this->loader = new $clientClass($this->callsDatabase, $this->id0);
        $this->calls = new Calls($this->callsDatabase);

        $version = $this->php->getVersion();
        $this->datastore->addRow('hash', array('notCompilable' . $version[0] . $version[2] => 0));

        $nbTokens = 0;
        if ($this->config->verbose && !$this->config->quiet) {
           $progressBar = new Progressbar(0, count($files) + 1, $this->config->screen_cols);
        }

        foreach($files as $file) {
            try {
                ++$this->stats['files'];
                $r = $this->processFile($file, $this->config->code_dir);
                $nbTokens += $r;
                if (isset($progressBar)) {
                    echo $progressBar->advance();
                }
            } catch (NoFileToProcess $e) {
                $this->datastore->ignoreFile($file, $e->getMessage());
                if (isset($progressBar)) {
                    echo $progressBar->advance();
                }
            }
        }
        $this->loader->finalize($this->relicat);

        return $nbTokens;
    }

    private function runCollector(array $omittedFiles): void {
        $this->callsDatabase = new \Sqlite3($this->sqliteLocation);
        $this->loader = new Collector($this->callsDatabase, $this->id0);
        $this->calls = new Calls($this->callsDatabase);

        $fileExtensions = $this->config->file_extensions;
        $atomGroup = clone $this->atomGroup;

        $stats = $this->stats;
        foreach($omittedFiles as $file) {
            try {
                $ext = pathinfo($file, PATHINFO_EXTENSION);
                if (!in_array($ext, $fileExtensions, \STRICT_COMPARISON)) {
                    continue;
                }

                $this->processFile($file, $this->config->code_dir, self::COMPILE_NO_CHECK);
            } catch (NoFileToProcess $e2) {
                // Ignore
            }
        }
        $this->loader->finalize($this->relicat);
        $this->atomGroup = $atomGroup;

        $this->theGlobals = array();

        $this->stats = $stats;
    }

    private function processDir(string $dir): array {
        if (!file_exists($dir)) {
            return array('files'  => -1,
                         'tokens' => -1);
        }

        $files = array();
        $ignoredFiles = array();
        $dir = rtrim($dir, '/');
        Files::findFiles($dir, $files, $ignoredFiles, $this->config);

        $clientClass = "\\Exakat\\Loader\\{$this->config->loader}";
        display("Loading with $clientClass\n");
        if (!class_exists($clientClass)) {
            throw new NoSuchLoader($clientClass, $this->loaderList);
        }
        $this->callsDatabase = new \Sqlite3($this->sqliteLocation);
        $this->calls = new Calls($this->callsDatabase);
        $this->loader = new $clientClass($this->callsDatabase, $this->id0);

        $nbTokens = 0;
        foreach($files as $file) {
            try {
                ++$this->stats['files'];
                $r = $this->processFile($file, $dir);
                $nbTokens += $r;
            } catch (NoFileToProcess $e) {
                $this->datastore->ignoreFile($file, $e->getMessage());
            }
        }
        $this->loader->finalize($this->relicat);

        $this->loader = new Collector($this->callsDatabase, $this->id0);
        $stats = $this->stats;
        foreach($ignoredFiles as $file) {
            try {
                $this->processFile($file, $dir);
            } catch (NoFileToProcess $e) {
                $this->datastore->ignoreFile($file, $e->getMessage());
            }
        }
        $this->loader->finalize($this->relicat);
        $this->stats = $stats;

        return array('files'  => count($files),
                     'tokens' => $nbTokens);
    }

    private function reset(): void {
        $this->atoms   = array();
        $this->links   = array();
        $this->minId  = \PHP_INT_MAX;

        $this->contexts    = new Context();
        $this->expressions = array();
        $this->uses        = new Fullnspaths();

        $this->currentMethod           = array();
        $this->currentFunction         = array();
        $this->currentClassTrait       = array();
        $this->currentVariables        = array();

        $this->tokens                  = array();
        $this->phpDocs                 = array();
        $this->attributes              = array();
    }

    public function initDiff(): void {
        $clientClass = "\\Exakat\\Loader\\{$this->config->loader}";
        display("Loading with $clientClass\n");
        if (!class_exists($clientClass)) {
            throw new NoSuchLoader($clientClass, $this->loaderList);
        }

        $res = $this->gremlin->query('g.V().id().max()');
        $this->atomGroup = new AtomGroup($res->toInt() + 1);

        $this->id0 = $this->addAtom('Project');
        $this->id0->code      = 'Whole';
        $this->id0->atom      = 'Project';
        $this->id0->code      = (string) $this->config->project;
        $this->id0->fullcode  = $this->config->project_name;
        $this->id0->token     = 'T_WHOLE';
        $this->atoms          = array();
        $this->minId         = \PHP_INT_MAX;

        $this->loader = new $clientClass($this->callsDatabase, $this->id0);
    }

    public function finishDiff(): void {
        $this->loader->finalize(array());

        $loadFinal = new LoadFinal();
        $this->logTime('LoadFinal new');
        $loadFinal->run();
        $this->logTime('The End');

        $this->reset();
    }

    public function processDiffFile(string $filename, string $path): void {
        try {
            $this->processFile($filename, $path);
        } catch(NoFileToProcess $e ) {
            $this->datastore->ignoreFile($filename, $e->getMessage());
        }
    }

    private function processFile(string $filename, string $path, bool $compileCheck = self::COMPILE_CHECK): int {
        $begin = microtime(\TIME_AS_NUMBER);
        $fullpath = $path . $filename;

        $this->filename = $filename;

        $log = array();

        if (is_link($fullpath)) {
            return 0;
        }
        if (!file_exists($fullpath)) {
            throw new NoFileToProcess($filename, 'unreachable file');
        }

        if (filesize($fullpath) === 0) {
            throw new NoFileToProcess($filename, 'empty file');
        }

        if ($compileCheck === self::COMPILE_CHECK && !$this->php->compile($fullpath)) {
            $error = $this->php->getError();
            $error['file'] = $filename;

            $version = $this->php->getVersion();
            $this->datastore->addRow('compilation' . $version[0] . $version[2], array($error));

            $count = $this->datastore->gethash('notCompilable' . $version[0] . $version[2]);
            $this->datastore->addRow('hash', array('notCompilable' . $version[0] . $version[2] => intval($count) + 1));

            return 0;
        }

        $tokens = $this->php->getTokenFromFile($fullpath);
        $log['token_initial'] = count($tokens);

        if (count($tokens) < 3) {
            throw new NoFileToProcess($filename, 'Only ' . count($tokens) . ' tokens');
        }

        $comments     = 0;
        $this->tokens = array();
        $total        = 0;
        $line         = 0;
        foreach($tokens as $t) {
            if (is_array($t)) {
                switch($t[0]) {
                    case $this->phptokens::T_WHITESPACE:
                        $line += substr_count($t[1], "\n");
                        break;

                    case $this->phptokens::T_COMMENT :
                        $line += substr_count($t[1], "\n");
                        $comments += substr_count($t[1], "\n") + 1;
                        break;

                    case $this->phptokens::T_DOC_COMMENT:
                        $this->tokens[] = $t;
                        $comments += substr_count($t[1], "\n") + 1;
                        break;

                    default :
                        $line = $t[2];
                        $this->tokens[] = $t;
                        ++$total;
                    }
            } elseif (is_string($t)) {
                $this->tokens[] = array(0 => $this->phptokens::TOKENS[$t],
                                        1 => $t,
                                        2 => $line);
                ++$total;
            } else {
                assert(false, "$t is in a wrong token type : " . gettype($t));
            }
        }
        $this->stats['loc'] -= $comments;

        // Final token
        $this->tokens[] = array(0 => $this->phptokens::T_END,
                                1 => '/* END */',
                                2 => $line);
        $this->stats['tokens'] += count($tokens);
        unset($tokens);

        $this->uses   = new Fullnspaths();

        $id1 = $this->addAtom('File');
        $id1->code     = $filename;
        $id1->fullcode = $filename;
        $id1->token    = 'T_FILENAME';

        $this->currentMethod           = array($id1);
        $this->currentFunction         = array($id1);

        try {
            $n = count($this->tokens) - 2;
            $this->id = 0; // set to 0 so as to calculate line in the next call.
            $this->startSequence(); // At least, one sequence available
            $this->id = -1;
            do {
                $theExpression = $this->processNext();
                $this->addToSequence($theExpression);
            } while ($this->id < $n);

            $sequence = $this->sequence;
            $this->endSequence();

            $this->addLink($id1, $sequence, 'FILE');
            $sequence->root = true;
        } catch (LoadError $e) {
            if ($compileCheck === self::COMPILE_CHECK) {
                $this->log->log('Can\'t process file \'' . $this->filename . '\' during load (\'' . $this->tokens[$this->id][0] . '\', line \'' . $this->tokens[$this->id][2] . '\'). Ignoring' . PHP_EOL . $e->getMessage() . PHP_EOL);
            }
            $this->reset();
            $this->calls->reset();
            throw new NoFileToProcess($filename, 'empty (1)', 0, $e);
        } finally {
            try {
                $this->checkTokens($filename);
                $this->calls->save();
            } catch (LoadError $e) {
                $this->log->log('Can\'t process file \'' . $this->filename . '\' during load (finally) (\'' . $this->tokens[$this->id][0] . '\', line \'' . $this->tokens[$this->id][2] . '\'). Ignoring' . PHP_EOL . $e->getMessage() . PHP_EOL);
                $this->reset();
                $this->calls->reset();
                throw new NoFileToProcess($filename, 'empty (2)', 0, $e);
            }

            $this->stats['totalLoc'] += $line;
            $this->stats['loc'] += $line;
        }

        $end = microtime(\TIME_AS_NUMBER);
        $load = ($end - $begin) * 1000;

        $atoms = count($this->atoms);
        $links = count($this->links);
        $begin = microtime(\TIME_AS_NUMBER);
        $this->saveFiles();
        $end = microtime(\TIME_AS_NUMBER);
        $save = ($end - $begin) * 1000;

        $this->log->log("$filename\t$load\t$save\t$log[token_initial]\t$atoms\t$links");

        return $log['token_initial'];
    }

    private function processNext(): Atom {
        ++$this->id;

        if ($this->tokens[$this->id][0] === $this->phptokens::T_END ||
            !isset($this->processing[ $this->tokens[$this->id][0] ])) {
            display("Can't process file '$this->filename' during load ('{$this->tokens[$this->id][0]}', line {$this->tokens[$this->id][2]}). Ignoring\n");
            $this->log->log("Can't process file '$this->filename' during load ('{$this->tokens[$this->id][0]}', line {$this->tokens[$this->id][2]}). Ignoring\n");

            throw new LoadError('Processing error (processNext end)');
        }
        $method = $this->processing[ $this->tokens[$this->id][0] ];

//        print "  $method in".PHP_EOL;
        $atom = $this->$method();
//        print "  $method out ".PHP_EOL;

        return $atom;
    }

    private function processColon(): Atom {
        --$this->id;
        $tag = $this->processNextAsIdentifier(self::WITHOUT_FULLNSPATH);
        ++$this->id;

        $label = $this->addAtom('Gotolabel', $this->id);
        $this->addLink($label, $tag, 'GOTOLABEL');
        $label->fullcode = $tag->fullcode . ' :';

        if (empty($this->currentClassTrait)) {
            $class = '';
        } else {
            $class = end($this->currentClassTrait)->fullcode;
        }

        $method = empty($this->currentFunction) ? '' : end($this->currentFunction)->fullnspath;

        $this->calls->addDefinition('goto', "$class::$method..$tag->fullcode", $label);

        $this->addToSequence($label);

        return $label;
    }

    //////////////////////////////////////////////////////
    /// processing complex tokens
    //////////////////////////////////////////////////////
    private function processQuote(): Atom {
        $current = $this->id;
        $fullcode = array();
        $rank = -1;
        $elements = array();

        if ($this->tokens[$current][0] === $this->phptokens::T_QUOTE) {
            $string = $this->addAtom('String', $current);
            $finalToken = $this->phptokens::T_QUOTE;
            $closeQuote = '"';
            $type = $this->phptokens::T_QUOTE;

            $openQuote = $this->tokens[$this->id][1];
            if ($this->tokens[$current][1][0] === 'b' || $this->tokens[$current][1][0] === 'B') {
                $string->binaryString = $openQuote[0];
                $openQuote = '"';
            }
        } elseif ($this->tokens[$current][0] === $this->phptokens::T_BACKTICK) {
            $string = $this->addAtom('Shell', $current);
            $finalToken = $this->phptokens::T_BACKTICK;
            $openQuote = '`';
            $closeQuote = '`';
            $type = $this->phptokens::T_BACKTICK;
        } elseif ($this->tokens[$current][0] === $this->phptokens::T_START_HEREDOC) {
            $string = $this->addAtom('Heredoc', $current);
            $finalToken = $this->phptokens::T_END_HEREDOC;
            $openQuote = $this->tokens[$this->id][1];
            if (strtolower($openQuote[0]) === 'b') {
                $string->binaryString = $openQuote[0];
                $openQuote = substr($openQuote, 1);
            }

            $closeQuote = $openQuote[3] === "'" ? substr($openQuote, 4, -2) : substr($openQuote, 3);

            $type = $this->phptokens::T_START_HEREDOC;
        } else {
            throw new LoadError(__METHOD__ . ' : unsupported type of open quote : ' . $this->tokens[$current][0]);
        }

        // Set default, in case the whole loop is skipped
        $string->noDelimiter = '';
        $string->delimiter   = '';

        while ($this->tokens[$this->id + 1][0] !== $finalToken) {
            $currentVariable = $this->id + 1;
            if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_CURLY_OPEN) {
                $open = $this->id + 1;
                ++$this->id; // Skip {
                do {
                    $part = $this->processNext();
                } while ($this->tokens[$this->id + 1][0] !== $this->phptokens::T_CLOSE_CURLY);
                ++$this->id; // Skip }

                $this->popExpression();

                $part->enclosing = self::ENCLOSING;
                $part->fullcode  = $this->tokens[$open][1] . $part->fullcode . '}';
                $part->token     = $this->getToken($this->tokens[$currentVariable][0]);

                $this->pushExpression($part);

                $elements[] = $part;
            } elseif ($this->tokens[$this->id + 1][0] === $this->phptokens::T_DOLLAR_OPEN_CURLY_BRACES) {
                $part = $this->processDollarCurly();

                $part->enclosing = self::ENCLOSING;
                $part->token     = $this->getToken($this->tokens[$currentVariable][0]);
                $this->pushExpression($part);

                $elements[] = $part;
            } elseif ($this->tokens[$this->id + 1][0] === $this->phptokens::T_VARIABLE) {
                if ($this->tokens[$this->id + 1][1] === '$this') {
                    $atom = 'This';
                } elseif (in_array($this->tokens[$this->id + 1][1], $this->PHP_SUPERGLOBALS, \STRICT_COMPARISON)) {
                            $atom = 'Phpvariable';
                } elseif ($this->tokens[$this->id + 2][0] === $this->phptokens::T_OBJECT_OPERATOR) {
                    $atom = 'Variableobject';
                } elseif ($this->tokens[$this->id + 2][0] === $this->phptokens::T_OPEN_BRACKET) {
                    $atom = 'Variablearray';
                } else {
                    $atom = 'Variable';
                }
                ++$this->id;
                $variable = $this->processSingle($atom);

                if ($atom === 'This' && ($class = end($this->currentClassTrait))) {
                    $variable->fullnspath = $class->fullnspath;
                    $this->calls->addCall('class', $class->fullnspath, $variable);
                }

                if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_OBJECT_OPERATOR) {
                    $property = $this->addAtom('Member', $this->id);

                    ++$this->id;
                    $propertyName = $this->processNextAsIdentifier();

                    $property->fullcode  = "{$variable->fullcode}->{$propertyName->fullcode}";
                    $property->enclosing = self::NO_ENCLOSING;

                    $this->addLink($property, $variable, 'OBJECT');
                    $this->addLink($property, $propertyName, 'MEMBER');
                    $this->runPlugins($property, array('OBJECT' => $variable,
                                                       'MEMBER' => $propertyName,
                                                       ));

                    if ($variable->atom === 'This' &&
                        $propertyName->token   === 'T_STRING') {
                        $this->calls->addCall('property', "{$variable->fullnspath}::{$propertyName->code}", $property);
                        array_collect_by($this->currentPropertiesCalls, $propertyName->code, $property);
                    }

                    $this->pushExpression($property);
                    $elements[] = $property;
                } elseif ($this->tokens[$this->id + 1][0] === $this->phptokens::T_OPEN_BRACKET) {
                    ++$this->id; // Skip $a
                    $array = $this->addAtom('Array', $this->id);
                    ++$this->id; // Skip [

                    if ($this->tokens[$this->id][0] === $this->phptokens::T_NUM_STRING) {
                        $index = $this->processSingle('Integer');
                        $this->runPlugins($index);
                    } elseif ($this->tokens[$this->id][0] === $this->phptokens::T_MINUS) {
                        ++$this->id;
                        if ($this->tokens[$this->id][1][0] === '0') {
                            $index            = $this->processSingle('String');
                            $index->code      = "-{$index->code}";
                            $index->fullcode  = "-{$index->fullcode}";
                        } else {
                            $index            = $this->processSingle('Integer');
                            $index->code     *= -1;
                            $index->fullcode *= -1;
                        }
                    } elseif ($this->tokens[$this->id][0] === $this->phptokens::T_STRING) {
                        $index = $this->processSingle('String');
                    } elseif ($this->tokens[$this->id][0] === $this->phptokens::T_VARIABLE) {
                        $index = $this->processVariable();
                        $this->popExpression();
                    } else {
                        throw new UnknownCase('Couldn\'t read that token inside quotes : ' . $this->tokens[$this->id][0]);
                    }
                    ++$this->id; // Skip ]

                    $array->fullcode  = "{$variable->fullcode}[{$index->fullcode}]";
                    $array->enclosing = self::NO_ENCLOSING;

                    $this->addLink($array, $variable, 'VARIABLE');
                    $this->addLink($array, $index, 'INDEX');
                    $this->runPlugins($array, array('VARIABLE' => $variable,
                                                    'INDEX'    => $index,
                                                     ));

                    $this->pushExpression($array);
                    $elements[] = $array;
                } else {
                    $this->pushExpression($variable);
                }
            } else {
                $this->processNext();
            }

            $part = $this->popExpression();
            if ($part->atom === 'String') {
                $part->noDelimiter = $part->code;
                $part->delimiter   = '';
            } else {
                $part->noDelimiter = '';
                $part->delimiter   = '';
            }
            $part->rank = ++$rank;
            $fullcode[] = $part->fullcode;
            $elements[] = $part;

            $this->addLink($string, $part, 'CONCAT');
        }

        if ($type === $this->phptokens::T_START_HEREDOC) {
            if (!empty($elements)) {
                // This is the last part
                $part = array_pop($elements);
                $part->noDelimiter = rtrim($part->noDelimiter, "\n");
                $part->code        = rtrim($part->code,        "\n");
                $part->fullcode    = rtrim($part->fullcode,    "\n");
                $elements[]        = $part;
            }
            // Get the closing quote for flexibility
            $closeQuote = $this->tokens[$this->id + 1][1];
            if (trim($closeQuote) !== $closeQuote) {
                $string->flexible = 1;
            }
        }

        ++$this->id;
        $string->fullcode    = $string->binaryString . $openQuote . implode('', $fullcode) . $closeQuote;
        $string->count       = $rank + 1;

        if ($type === $this->phptokens::T_START_HEREDOC) {
            $string->delimiter = trim($closeQuote);
            $string->heredoc   = $openQuote[3] !== "'";
        }

        $this->runPlugins($string, $elements);
        $this->pushExpression($string);

        if ($type === $this->phptokens::T_QUOTE) {
            $string = $this->processFCOA($string);
        }

        $this->checkExpression();

        return $string;
    }

    private function processDollarCurly(): Atom {
        $current = $this->id;
        $atom = ($this->tokens[$this->id - 1][0] === $this->phptokens::T_GLOBAL) ? 'Globaldefinition' : 'Variable';
        $variable = $this->addAtom($atom, $current);

        ++$this->id; // Skip ${
        do {
            $name = $this->processNext();
        } while ($this->tokens[$this->id + 1][0] !== $this->phptokens::T_CLOSE_CURLY);
        ++$this->id; // Skip }

        $this->popExpression();
        $this->addLink($variable, $name, 'NAME');

        if ($atom === 'Identifier') {
            $this->getFullnspath($name, 'const', $name);
            $this->calls->addCall('const', $name->fullnspath, $name);
        }

        $variable->fullcode  = '${' . $name->fullcode . '}';
        $variable->enclosing = self::ENCLOSING;

        $this->runPlugins($variable, array('NAME' => $name));

        $this->checkExpression();

        return $variable;
    }

    private function processTry(): Atom {
        $current = $this->id;
        $try = $this->addAtom('Try', $current);

        $block = $this->processFollowingBlock(array($this->phptokens::T_CLOSE_CURLY));
        $this->addLink($try, $block, 'BLOCK');
        $extras = array('BLOCK' => $block);

        $rank = 0;
        $fullcode = array();
        $this->checkPhpdoc();
        while ($this->tokens[$this->id + 1][0] === $this->phptokens::T_CATCH) {
            $catchId = $this->id + 1;
            ++$this->id; // Skip catch
            ++$this->id; // Skip (

            $catch = $this->addAtom('Catch', $catchId);
            $catchFullcode = array();
            $extrasCatch = array();
            $rankCatch = -1;
            while ($this->tokens[$this->id + 1][0] !== $this->phptokens::T_VARIABLE) {
                $class = $this->processOneNsname();
                $this->addLink($catch, $class, 'CLASS');
                $catch->rank = ++$rankCatch;

                $this->calls->addCall('class', $class->fullnspath, $class);
                $catchFullcode[] = $class->fullcode;
                $extrasCatch['CLASS' . $rankCatch] = $class;

                if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_OR) {
                    ++$this->id; // Skip |
                }
            }
            $catch->count = $rankCatch + 1;
            $catchFullcode = implode(' | ', $catchFullcode);

            // Process variable
            $variable = $this->processNext();

            $this->popExpression();
            $this->addLink($catch, $variable, 'VARIABLE');
            $extrasCatch['VARIABLE'] = $variable;

            // Skip )
            ++$this->id;

            // Skip }
            $blockCatch = $this->processFollowingBlock(array($this->phptokens::T_CLOSE_CURLY));
            $this->addLink($catch, $blockCatch, 'BLOCK');
            $extrasCatch['BLOCK'] = $variable;

            $catch->fullcode = $this->tokens[$catchId][1] . ' (' . $catchFullcode . ' ' . $variable->fullcode . ')' . static::FULLCODE_BLOCK;
            $catch->rank     = ++$rank;

            $this->addLink($try, $catch, 'CATCH');
            $fullcode[] = $catch->fullcode;

            $extras['CATCH' . $rank] = $catch;
            $this->runPlugins($catch, $extrasCatch);
            $this->checkPhpdoc();
        }

        $this->checkPhpdoc();
        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_FINALLY) {
            $finallyId = $this->id + 1;
            $finally = $this->addAtom('Finally', $finallyId);

            ++$this->id;
            $finallyBlock = $this->processFollowingBlock(array($this->phptokens::T_CLOSE_CURLY));
            $this->addLink($try, $finally, 'FINALLY');
            $this->addLink($finally, $finallyBlock, 'BLOCK');

            $finally->fullcode = $this->tokens[$finallyId][1] . static::FULLCODE_BLOCK;

            $extras['FINALLY'] = $finally;
            $this->runPlugins($finally, array('BLOCK' => $finallyBlock));
        }

        $try->fullcode = $this->tokens[$current][1] . static::FULLCODE_BLOCK . implode('', $fullcode) . ( isset($finally) ? $finally->fullcode : '');
        $try->count    = $rank;

        $this->addToSequence($try);

        $this->runPlugins($try, $extras);
        return $try;
    }

    private function processFn(): Atom {
        $current = $this->id;

        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_AND) {
            ++$this->id;
            $reference = self::REFERENCE;
        } else {
            $reference = self::NOT_REFERENCE;
        }

        ++$this->id;
        $atom     = 'Arrowfunction';

        // Keep a copy of the current variables, to remove the arguments when we are done
        $previousContextVariables = $this->currentVariables;

        $fn       = $this->processParameters($atom);
        $fn->reference = $reference;

        // Process return type
        $returnTypeFullcode = $this->processTypehint($fn);

        ++$this->id; // skip =>

        $this->contexts->nestContext(Context::CONTEXT_FUNCTION);
        $this->contexts->toggleContext(Context::CONTEXT_FUNCTION);

        // arrowfunction may be static
        if ($this->tokens[$current - 1][0] === $this->phptokens::T_STATIC) {
            $this->currentClassTrait[] = '';
        }

        do {
           $block = $this->processNext();
        } while (!in_array($this->tokens[$this->id + 1][0], array($this->phptokens::T_COMMA,
                                                                $this->phptokens::T_CLOSE_PARENTHESIS,
                                                                $this->phptokens::T_CLOSE_CURLY,
                                                                $this->phptokens::T_SEMICOLON,
                                                                $this->phptokens::T_CLOSE_BRACKET,
                                                                $this->phptokens::T_CLOSE_TAG,
                                                                $this->phptokens::T_COLON,
                                                                ),
               \STRICT_COMPARISON));

        $this->popExpression();

       // arrowfunction may be static
       if ($this->tokens[$current - 1][0] === $this->phptokens::T_STATIC) {
           array_pop($this->currentClassTrait);
       }

        $this->contexts->exitContext(Context::CONTEXT_FUNCTION);

        $this->addLink($fn, $block, 'BLOCK');
        $this->makeAttributes($fn);

        $fn->token    = $this->getToken($this->tokens[$current][0]);
        $fn->fullcode = $this->tokens[$current][1] . ' ' .
                        ($fn->reference ? '&' : '') .
                        '(' . $fn->fullcode . ')' .
                        $returnTypeFullcode .
                        ' => ' . $block->fullcode;
        $fn->fullnspath = $this->makeAnonymous('arrowfunction');
        $fn->aliased    = self::NOT_ALIASED;

        $this->currentVariables = $previousContextVariables;

        $this->pushExpression($fn);
        $this->checkExpression();

        return $fn;
    }

    private function processFunction(): Atom {
        $current = $this->id;

        if ( $this->contexts->isContext(Context::CONTEXT_CLASS) &&
             !$this->contexts->isContext(Context::CONTEXT_FUNCTION)) {

            if (in_array(mb_strtolower($this->tokens[$this->id + 1][1]),
                         array('__construct',
                               '__destruct',
                               '__call',
                               '__callstatic',
                               '__get',
                               '__set',
                               '__isset',
                               '__unset',
                               '__sleep',
                               '__wakeup',
                               '__tostring',
                               '__invoke',
                               '__set_state',
                               '__clone',
                               '__debuginfo',
                               '__serialize',
                               '__unserialize',
                               ),
                            \STRICT_COMPARISON)) {
                $atom = 'Magicmethod';

            } else {
                $atom = 'Method';
            }
        } elseif ($this->tokens[$this->id + 1][0] === $this->phptokens::T_OPEN_PARENTHESIS) {
            $atom = 'Closure';
        } elseif ($this->tokens[$this->id + 1][0] === $this->phptokens::T_AND &&
                  $this->tokens[$this->id + 2][0] === $this->phptokens::T_OPEN_PARENTHESIS) {
            $atom = 'Closure';
        } else {
            $atom = 'Function';
        }

        $this->contexts->nestContext(Context::CONTEXT_CLASS);
        $this->contexts->nestContext(Context::CONTEXT_FUNCTION);
        $this->contexts->toggleContext(Context::CONTEXT_FUNCTION);

        $previousContextVariables = $this->currentVariables;
        $this->currentVariables = array();

        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_AND) {
            ++$this->id;
            $reference = self::REFERENCE;
        } else {
            $reference = self::NOT_REFERENCE;
        }

        if ($atom !== 'Closure') {
            $name = $this->processNextAsIdentifier(self::WITHOUT_FULLNSPATH);
        }
        ++$this->id;

        $fullcode = array();

        // Process arguments
        $function       = $this->processParameters($atom);
        $function->code = $function->atom === 'Closure' ? 'function' : $name->fullcode;
        $this->makePhpdoc($function);
        $this->makeAttributes($function);

        if ($function->atom === 'Function') {
            $this->getFullnspath($name, 'function', $function);
            $this->calls->addDefinition('function', $function->fullnspath, $function);

            $this->addLink($function, $name, 'NAME');
        } elseif ($function->atom === 'Closure') {
            $function->fullnspath = $this->makeAnonymous('function');
            $function->aliased    = self::NOT_ALIASED;

            // closure may be static
            if ($this->tokens[$current - 1][0] === $this->phptokens::T_STATIC) {
                $this->currentClassTrait[] = '';
            }
        } elseif (in_array($function->atom, array('Method', 'Magicmethod'), \STRICT_COMPARISON)) {
            $function->fullnspath = end($this->currentClassTrait)->fullnspath . '::' . mb_strtolower($name->code);
            $function->aliased    = self::NOT_ALIASED;

            if (empty($function->visibility)) {
                $function->visibility = 'none';
            }

            $this->addLink($function, $name, 'NAME');
        } else {
            throw new LoadError(__METHOD__ . ' : wrong type of function ' . $function->atom);
        }

        $function->token      = $this->getToken($this->tokens[$current][0]);

        $argumentsFullcode = $function->fullcode;
        $function->reference = $reference;

        // Process use
        $useFullcode = array();
        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_USE) {
            ++$this->id; // Skip use
            ++$this->id; // Skip (

            $rank = 0;
            $uses = array();
            do {
                ++$this->id; // Skip ( or ,
                if ($this->tokens[$this->id][0] === $this->phptokens::T_AND) {
                    ++$this->id;
                    $arg = $this->processSingle('Parameter');
                    $arg->reference = self::REFERENCE;
                    $arg->fullcode = "&$arg->fullcode";
                } else {
                    $arg = $this->processSingle('Parameter');
                }
                ++$this->id;

                $useFullcode[] = $arg->fullcode;
                $arg->rank = ++$rank;

                $this->addLink($function, $arg, 'USE');
                $this->currentVariables[$arg->code] = $arg;
                if (isset($previousContextVariables[$arg->code])) {
                    $this->addLink($previousContextVariables[$arg->code], $arg, 'DEFINITION');
                }
            } while ($this->tokens[$this->id][0] === $this->phptokens::T_COMMA);

            $this->runPlugins($function, $uses);
        }

        // Process return type
        $returnTypes = $this->processTypehint($function);

        // Process block
        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_SEMICOLON) {
            $block = $this->addAtomVoid();
            $this->addLink($function, $block, 'BLOCK');
            ++$this->id; // skip the next ;
            $blockFullcode = ' ;';
            $this->runPlugins($block);
        } else {
            $block = $this->processFollowingBlock(array($this->phptokens::T_CLOSE_CURLY));
            $this->addLink($function, $block, 'BLOCK');
            $blockFullcode = self::FULLCODE_BLOCK;
        }

        $function->fullcode   = (empty($fullcode) ? '' : implode(' ', $fullcode) . ' ' ) .
                                $this->tokens[$current][1] . ' ' . ($function->reference ? '&' : '') .
                                ($function->atom === 'Closure' ? '' : $name->fullcode) . '(' . $argumentsFullcode . ')' .
                                (empty($useFullcode) ? '' : ' use (' . implode(', ', $useFullcode) . ')') . // No space before use
                                $returnTypes .
                                $blockFullcode;

       if ($function->atom === 'Closure' &&
           $this->tokens[$current - 1][0] === $this->phptokens::T_STATIC) {
           array_pop($this->currentClassTrait);
       }

        $this->contexts->exitContext(Context::CONTEXT_CLASS);
        $this->contexts->exitContext(Context::CONTEXT_FUNCTION);
        $this->runPlugins($function, array('BLOCK' => $block));

        array_pop($this->currentFunction);
        array_pop($this->currentMethod);
        $this->currentVariables = $previousContextVariables;

        $this->pushExpression($function);

        if ($function->atom === 'Function') {
            $this->processSemicolon();
        } elseif ($function->atom === 'Closure' &&
                  $this->tokens[$current  - 1][0] !== $this->phptokens::T_EQUAL          &&
                  $this->tokens[$this->id + 1][0] === $this->phptokens::T_CLOSE_TAG) {
            $this->processSemicolon();
        } elseif ($function->atom === 'Method' && !empty(preg_grep('/^static$/i', $fullcode))) {
            $this->calls->addDefinition('staticmethod', $function->fullnspath, $function);
        } elseif ($function->atom === 'Method') {
            $this->calls->addDefinition('method', $function->fullnspath, $function);
            // double call for internal reference
            $this->calls->addDefinition('staticmethod', $function->fullnspath, $function);
        } elseif ($function->atom === 'Magicmethod') {
            if (mb_strtolower($this->tokens[$current + 1][1]) === '__construct' &&
                end($this->currentClassTrait)->atom === 'Classanonymous') {
                    $this->addLink(end($this->currentClassTrait), $function, 'DEFINITION');
            }
        }

        return $function;
    }

    private function processOneNsname(bool $getFullnspath = self::WITH_FULLNSPATH): Atom {
        ++$this->id;
        if ($this->tokens[$this->id][0] === $this->phptokens::T_NAMESPACE) {
            ++$this->id;
        }
        $nsname = $this->makeNsname();

        if ($getFullnspath === self::WITH_FULLNSPATH) {
            $this->getFullnspath($nsname, 'class', $nsname);
            $this->calls->addCall('class', $nsname->fullnspath, $nsname);
        }

        return $nsname;
    }

    private function processTrait(): Atom {
        $current = $this->id;
        $trait = $this->addAtom('Trait', $current);
        $this->currentClassTrait[] = $trait;
        $this->makePhpdoc($trait);

        $this->contexts->nestContext(Context::CONTEXT_CLASS);
        $this->contexts->toggleContext(Context::CONTEXT_CLASS);

        $name = $this->processNextAsIdentifier(self::WITHOUT_FULLNSPATH);
        $this->addLink($trait, $name, 'NAME');

        $this->getFullnspath($name, 'class', $trait);
        $this->calls->addDefinition('class', $trait->fullnspath, $trait);

        // Process block
        $this->makeCitBody($trait);

        $trait->fullcode   = $this->tokens[$current][1] . ' ' . $name->fullcode . static::FULLCODE_BLOCK;

        $this->addToSequence($trait);

        $this->contexts->exitContext(Context::CONTEXT_CLASS);

        array_pop($this->currentClassTrait);

        return $trait;
    }

    private function processInterface(): Atom {
        $current = $this->id;
        $interface = $this->addAtom('Interface', $current);
        $this->currentClassTrait[] = $interface;
        $this->makePhpdoc($interface);

        $this->contexts->nestContext(Context::CONTEXT_CLASS);
        $this->contexts->toggleContext(Context::CONTEXT_CLASS);

        $name = $this->processNextAsIdentifier(self::WITHOUT_FULLNSPATH);
        $this->addLink($interface, $name, 'NAME');

        $this->getFullnspath($name, 'class', $interface);

        $this->calls->addDefinition('class', $interface->fullnspath, $interface);

        $this->checkPhpdoc();

        // Process extends
        $rank = 0;
        $fullcode= array();
        $extendsKeyword = '';
        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_EXTENDS) {
            $extendsKeyword = $this->tokens[$this->id + 1][1];
            do {
                ++$this->id; // Skip extends or ,
                $extends = $this->processOneNsname(self::WITH_FULLNSPATH);
                $extends->rank = $rank;

                $this->addLink($interface, $extends, 'EXTENDS');
                $this->calls->addCall('class', $extends->fullnspath, $extends);

                $fullcode[] = $extends->fullcode;
            } while ($this->tokens[$this->id + 1][0] === $this->phptokens::T_COMMA);
        }

        $this->checkPhpdoc();

        // Process block
        $this->makeCitBody($interface);

        $interface->fullcode   = $this->tokens[$current][1] . ' ' . $name->fullcode . (empty($extendsKeyword) ? '' : ' ' . $extendsKeyword . ' ' . implode(', ', $fullcode)) . static::FULLCODE_BLOCK;

        $this->addToSequence($interface);

        $this->contexts->exitContext(Context::CONTEXT_CLASS);
        array_pop($this->currentClassTrait);

        return $interface;
    }

    private function makeCitBody(Atom $class): void {
        ++$this->id;
        $rank = -1;

        $this->currentProperties      = array();
        $this->currentPropertiesCalls = array();

        $this->checkPhpdoc();
        while($this->tokens[$this->id + 1][0] !== $this->phptokens::T_CLOSE_CURLY) {
            if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_SL) {
                // It is an attribute
                $this->processNext();
                continue;
            }
            $cpm = $this->processNext();

            $this->popExpression();

            switch ($cpm->atom) {
                case 'Usetrait':
                    $link = 'USE';
                    break;

                case 'Phpdoc':
                    // Skip everything for phpdocs
                    continue 2;
                    break;

                default:
                    $link = strtoupper($cpm->atom);
                    break;
            }
            $cpm->rank = ++$rank;

            if ($class->atom === 'Interface' && in_array($cpm->atom, array('Method', 'Magicethod'))) {
                $cpm->abstract = 1;
            }

            $this->addLink($class, $cpm, $link);
            if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_SEMICOLON) {
                ++$this->id;
            }
            $this->checkPhpdoc();
        }

        $diff = array_diff(array_keys($this->currentPropertiesCalls), array_keys($this->currentProperties));
        $currentClass = $this->currentClassTrait[count($this->currentClassTrait) - 1];

        foreach($diff as $missing) {
            $ppp = $this->addAtom('Ppp');
            $ppp->fullcode     = 'public $' . $missing;
            $ppp->visibility   = 'none';
            $ppp->code         = $missing;
            $ppp->line         = -1;
            $this->addLink($currentClass, $ppp, 'PPP');

            $virtual = $this->addAtom('Virtualproperty');
            $virtual->fullcode     = '$' . $missing;
            $virtual->propertyname = $missing;
            $virtual->line         = -1;
            $this->addLink($ppp, $virtual, 'PPP');
            $this->addLink($virtual, $this->addAtomVoid(), 'DEFAULT');

            foreach($this->currentPropertiesCalls[$missing] as $member) {
                $this->addLink($virtual, $member, 'DEFINITION');
            }

            $this->currentProperties[$missing] = $virtual;
        }

        $this->currentProperties      = array();
        $this->currentPropertiesCalls = array();

        ++$this->id;
    }

    private function processClass(): Atom {
        $current = $this->id;

        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_STRING) {
            $class = $this->addAtom('Class', $current);

            $name = $this->processNextAsIdentifier(self::WITHOUT_FULLNSPATH);

            $this->getFullnspath($name, 'class', $class);

            $this->calls->addDefinition('class', $class->fullnspath, $class);
            $this->addLink($class, $name, 'NAME');
        } else {
            if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_OPEN_PARENTHESIS) {
                // Process arguments
                ++$this->id; // Skip arguments
                $class = $this->processArguments('Classanonymous', array());
                $argumentsFullcode = $class->fullcode;
            } else {
                $class = $this->addAtom('Classanonymous', $current);
            }

            $class->fullnspath = $this->makeAnonymous();
            $class->aliased    = self::NOT_ALIASED;
            $this->calls->addDefinition('class', $class->fullnspath, $class);
        }
        $this->makePhpdoc($class);
        $this->makeAttributes($class);

        $this->currentClassTrait[] = $class;

        $this->contexts->nestContext(Context::CONTEXT_CLASS);
        $this->contexts->toggleContext(Context::CONTEXT_CLASS);
        $this->contexts->nestContext(Context::CONTEXT_NEW);
        $this->contexts->nestContext(Context::CONTEXT_FUNCTION);

        $previousContextVariables = $this->currentVariables;
        $this->currentVariables = array();

        // Process extends
        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_EXTENDS) {
            $extendsKeyword = $this->tokens[$this->id + 1][1];
            ++$this->id; // Skip extends

            $extends = $this->processOneNsname(self::WITHOUT_FULLNSPATH);

            $this->addLink($class, $extends, 'EXTENDS');
            $this->getFullnspath($extends, 'class', $extends);

            $this->calls->addCall('class', $extends->fullnspath, $extends);
        } else {
            $extends = '';
        }
        $this->checkPhpdoc();

        // Process implements
        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_IMPLEMENTS) {
            $implementsKeyword = $this->tokens[$this->id + 1][1];
            $fullcodeImplements = array();
            do {
                ++$this->id; // Skip implements
                $implements = $this->processOneNsname(self::WITHOUT_FULLNSPATH);
                $this->addLink($class, $implements, 'IMPLEMENTS');
                $fullcodeImplements[] = $implements->fullcode;

                $this->getFullnspath($implements, 'class', $implements);
                $this->calls->addCall('class', $implements->fullnspath, $implements);
            } while ($this->tokens[$this->id + 1][0] === $this->phptokens::T_COMMA);
        } else {
            $implements = '';
        }
        $this->checkPhpdoc();

        // Process block
        $this->makeCitBody($class);

        $class->fullcode   = $this->tokens[$current][1] . ($class->atom === 'Classanonymous' ? '' : ' ' . $name->fullcode)
                             . (isset($argumentsFullcode) ? ' (' . $argumentsFullcode . ')' : '')
                             . (empty($extends) ? '' : ' ' . $extendsKeyword . ' ' . $extends->fullcode)
                             . (empty($implements) ? '' : ' ' . $implementsKeyword . ' ' . implode(', ', $fullcodeImplements))
                             . static::FULLCODE_BLOCK;

        $this->pushExpression($class);

        // Case of anonymous classes
        if ($this->tokens[$current - 1][0] !== $this->phptokens::T_NEW) {
            $this->processSemicolon();
        }

        $this->contexts->exitContext(Context::CONTEXT_CLASS);
        $this->contexts->exitContext(Context::CONTEXT_NEW);
        $this->contexts->exitContext(Context::CONTEXT_FUNCTION);

        array_pop($this->currentClassTrait);

        $this->currentVariables = $previousContextVariables;
        return $class;
    }

    private function processOpenTag(): Atom {
        $current = $this->id;
        $phpcode = $this->addAtom('Php', $current);

        $this->startSequence();

        // Special case for pretty much empty script (<?php .... END)
        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_END) {
            $void = $this->addAtomVoid();
            $this->addToSequence($void);

            $this->addLink($phpcode, $this->sequence, 'CODE');
            $this->endSequence();
            $closing = '';

            $phpcode->code       = $this->tokens[$current][1];
            $phpcode->close_tag  = self::NO_CLOSING_TAG;

            return $phpcode;
        }

        $n = count($this->tokens) - 2;
        if ($this->tokens[$n][0] === $this->phptokens::T_INLINE_HTML) {
            --$n;
        }

        while ($this->id < $n) {
            if ($this->tokens[$this->id][0] === $this->phptokens::T_OPEN_TAG_WITH_ECHO) {
                --$this->id;
                $echo = $this->processOpenWithEcho();
                /// processing the first expression as an echo
                $this->addToSequence($echo);
                if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_END) {
                    --$this->id;
                }
            } elseif ($this->tokens[$this->id][0] === $this->phptokens::T_CLOSE_TAG) {
                --$this->id;
            }
            $this->processNext();
        }

        if ($this->tokens[$this->id][0] === $this->phptokens::T_INLINE_HTML) {
            --$this->id;
        }

        if ($this->tokens[$this->id - 1][0] === $this->phptokens::T_CLOSE_TAG) {
            $closeTag = self::CLOSING_TAG;
            $closing = '?>';
        } elseif ($this->tokens[$this->id][0] === $this->phptokens::T_HALT_COMPILER) {
            $closeTag = self::NO_CLOSING_TAG;
            ++$this->id; // Go to HaltCompiler
            $this->processHalt();
            $closing = '';
        } else {
            $closeTag = self::NO_CLOSING_TAG;
            $closing = '';
        }

        if ($this->tokens[$this->id - 1][0] === $this->phptokens::T_OPEN_TAG) {
            $void = $this->addAtomVoid();
            $this->addToSequence($void);
        }
        $this->addLink($phpcode, $this->sequence, 'CODE');
        $this->endSequence();

        $phpcode->code         = $this->tokens[$current][1];
        $phpcode->fullcode     = '<?php ' . self::FULLCODE_SEQUENCE . ' ' . $closing;
        $phpcode->token        = $this->getToken($this->tokens[$current][0]);
        $phpcode->close_tag    = $closeTag;

        return $phpcode;
    }

    private function processSemicolon(): Atom {
        $atom = $this->popExpression();
        $this->addToSequence($atom);

        return $atom;
    }

    private function processClosingTag(): Atom {
        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_INLINE_HTML &&
            in_array($this->tokens[$this->id + 2][0], array($this->phptokens::T_OPEN_TAG,
                                                            $this->phptokens::T_OPEN_TAG_WITH_ECHO,
                                                            $this->phptokens::T_INLINE_HTML,
                                                            ),
                     \STRICT_COMPARISON)) {

            // it is possible to have multiple INLINE_HTML in a row : <?php//b ? >
            do {
                ++$this->id;
                $return = $this->processInlinehtml();
                $this->addToSequence($return);
            } while( $this->tokens[$this->id + 1][0] === $this->phptokens::T_INLINE_HTML);

            if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_OPEN_TAG_WITH_ECHO) {
                $return = $this->processOpenWithEcho();
                if ($this->tokens[$this->id + 1][0] !== $this->phptokens::T_SEMICOLON) {
                    $this->addToSequence($return);
                }
            } else {
                $return = $this->addAtomVoid();
                $this->addToSequence($return);

                ++$this->id; // set to opening tag
            }
        } elseif (in_array($this->tokens[$this->id + 1][0], array($this->phptokens::T_OPEN_TAG,
                                                                  $this->phptokens::T_OPEN_TAG_WITH_ECHO,
                                                                  ),
                     \STRICT_COMPARISON)) {
            if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_OPEN_TAG_WITH_ECHO) {

                $return = $this->processOpenWithEcho();
                if ($this->tokens[$this->id + 1][0] !== $this->phptokens::T_SEMICOLON) {
                    $this->addToSequence($return);
                }
            } else {
                $return = $this->addAtomVoid();
                $this->addToSequence($return);

                ++$this->id; // set to opening tag
            }
        } else {
            ++$this->id;
            $return = $this->addAtomVoid();
        }

        return $return;
    }

    private function processOpenWithEcho(): Atom {
        // Processing ECHO
        $echo = $this->processNextAsIdentifier(self::WITHOUT_FULLNSPATH);

        $noSequence = $this->contexts->isContext(Context::CONTEXT_NOSEQUENCE);
        if ($noSequence === false) {
            $this->contexts->toggleContext(Context::CONTEXT_NOSEQUENCE);
        }
        $functioncall = $this->processArguments('Echo',
                                                array($this->phptokens::T_SEMICOLON,
                                                      $this->phptokens::T_CLOSE_TAG,
                                                      $this->phptokens::T_END,
                                                      ));
        $argumentsFullcode = $functioncall->fullcode;

        if ($noSequence === false) {
            $this->contexts->toggleContext(Context::CONTEXT_NOSEQUENCE);
        }

        //processArguments goes too far, up to ;
        if ($this->tokens[$this->id][0] === $this->phptokens::T_CLOSE_TAG) {
            --$this->id;
        }

        $functioncall->code       = $echo->code;
        $functioncall->fullcode   = '<?= ' . $argumentsFullcode;
        $functioncall->token      = 'T_OPEN_TAG_WITH_ECHO';
        $functioncall->fullnspath = '\echo';

        $this->addLink($functioncall, $echo, 'NAME');

        return $functioncall;
    }

    private function makeNsname(): Atom {
        $token = 'T_NS_SEPARATOR';

        if ($this->tokens[$this->id][0]     === $this->phptokens::T_NS_SEPARATOR                   &&
            $this->tokens[$this->id + 1][0] === $this->phptokens::T_STRING                         &&
            in_array(mb_strtolower($this->tokens[$this->id + 1][1]), array('true', 'false'), \STRICT_COMPARISON) &&
            $this->tokens[$this->id + 2][0] !== $this->phptokens::T_NS_SEPARATOR
            ) {
            $atom = 'Boolean';

        } elseif ($this->tokens[$this->id][0]     === $this->phptokens::T_NS_SEPARATOR &&
                  $this->tokens[$this->id + 1][0] === $this->phptokens::T_STRING       &&
                  mb_strtolower($this->tokens[$this->id + 1][1]) === 'null'            &&
                  $this->tokens[$this->id + 2][0] !== $this->phptokens::T_NS_SEPARATOR ) {

            $atom = 'Null';
        } elseif (mb_strtolower($this->tokens[$this->id][1]) === 'parent') {
            $atom = 'Parent';
        } elseif (mb_strtolower($this->tokens[$this->id][1]) === 'self') {
            $atom = 'Self';
        } elseif ($this->tokens[$this->id][0]     === $this->phptokens::T_NS_SEPARATOR &&
                  $this->tokens[$this->id + 1][0] === $this->phptokens::T_STRING       &&
                  mb_strtolower($this->tokens[$this->id + 1][1]) === 'self'            &&
                  $this->tokens[$this->id + 2][0] !== $this->phptokens::T_NS_SEPARATOR ) {

            $atom = 'Self';
        } elseif ($this->contexts->isContext(Context::CONTEXT_NEW)) {
            $atom = 'Newcall';
        } else {
            $atom = 'Nsname';
            $token = 'T_STRING';
        }

        $fullcode = array();

        if ($this->tokens[$this->id][0] === $this->phptokens::T_STRING) {
            $fullcode[] = $this->tokens[$this->id][1];
            ++$this->id;

            $absolute = self::NOT_ABSOLUTE;
        } elseif ($this->tokens[$this->id - 1][0] === $this->phptokens::T_NAMESPACE) {
            $fullcode[] = $this->tokens[$this->id - 1][1];

            $absolute = self::ABSOLUTE;
        } elseif ($this->tokens[$this->id][0] === $this->phptokens::T_NS_SEPARATOR) {
            $fullcode[] = '';

            $absolute = self::ABSOLUTE;
        } else {
            $fullcode[] = $this->tokens[$this->id][1];
            ++$this->id;

            $absolute = self::NOT_ABSOLUTE;
        }

        while ($this->tokens[$this->id][0]     === $this->phptokens::T_NS_SEPARATOR    &&
               $this->tokens[$this->id + 1][0] !== $this->phptokens::T_OPEN_CURLY
               ) {
            ++$this->id; // skip \
            $fullcode[] = $this->tokens[$this->id][1];

            // Go to next
            ++$this->id; // skip \
            $token = 'T_NS_SEPARATOR';
        }

        if ($atom === 'Newcall') {
            if ($this->tokens[$this->id][0] === $this->phptokens::T_OPEN_PARENTHESIS) {
                $atom = 'Newcallname';
            } elseif ($this->tokens[$this->id][0] === $this->phptokens::T_DOUBLE_COLON) {
                // Finally, it is D::$D
                $atom = 'Identifier';
            }
        }

        // Back up a bit
        --$this->id;

        $nsname = $this->addAtom($atom);
        $nsname->code     = implode('\\', $fullcode);
        $nsname->fullcode = $nsname->code;
        $nsname->token    = $token;
        $nsname->absolute = $absolute;
        $this->runPlugins($nsname);

        return $nsname;
    }

    private function processNsname(): Atom {
        $current = $this->id;
        $nsname = $this->makeNsname();

        // Review this : most nsname will end up as constants!

        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_DOUBLE_COLON ||
            $this->tokens[$this->id - 2][0] === $this->phptokens::T_INSTANCEOF) {

            $this->getFullnspath($nsname, 'class', $nsname);

            $this->calls->addCall('class', $nsname->fullnspath, $nsname);
        } elseif ($this->tokens[$this->id + 1][0] === $this->phptokens::T_VARIABLE ||
            (isset($this->tokens[$current - 2]) && $this->tokens[$current - 2][0] === $this->phptokens::T_INSTANCEOF)
            ) {

            $this->getFullnspath($nsname, 'class', $nsname);

            $this->calls->addCall('class', $nsname->fullnspath, $nsname);

        } elseif ($this->contexts->isContext(Context::CONTEXT_NEW) &&
                  $this->tokens[$this->id + 1][0] !== $this->phptokens::T_OPEN_PARENTHESIS) {
            $this->getFullnspath($nsname, 'class', $nsname);
            $this->calls->addCall('class', $nsname->fullnspath, $nsname);

        } elseif ($this->tokens[$this->id + 1][0] === $this->phptokens::T_OPEN_PARENTHESIS) {
            // DO nothing

        } else {
            $this->calls->addCall('const', $nsname->fullnspath, $nsname);

        }

        $this->pushExpression($nsname);

        return $this->processFCOA($nsname);
    }

    private function processTypehint(Atom $holder): string {
        $nonTypehintToken = array($this->phptokens::T_NS_SEPARATOR,
                                  $this->phptokens::T_STRING,
                                  $this->phptokens::T_NAMESPACE,
                                  $this->phptokens::T_ARRAY,
                                  $this->phptokens::T_CALLABLE,
                                  $this->phptokens::T_QUESTION,
        );

        // return type allows for static. Not valid for arguments.
        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_COLON) {
            ++$this->id;

            $nonTypehintToken[] = $this->phptokens::T_STATIC;
            $link = 'RETURNTYPE';
        } else {
            if (in_array($this->tokens[$this->id + 1][0], array($this->phptokens::T_OPEN_CURLY,
                                                                $this->phptokens::T_DOUBLE_ARROW,
                                                        ), \STRICT_COMPARISON)) {
                $link = 'RETURNTYPE';
            } else {
                $link = 'TYPEHINT';
            }
        }

        if (!in_array($this->tokens[$this->id + 1][0], $nonTypehintToken, \STRICT_COMPARISON)) {
            if ($this->tokens[$this->id + 1][0] === T_ELLIPSIS) {
                $typehint = $this->addAtom('Scalartypehint', $this->id + 1);
                $typehint->fullnspath = '\\array';
                $typehint->fullcode = '';
            } else {
                $typehint = $this->addAtomVoid();
            }

            $this->addLink($holder, $typehint, $link);
            return '';
        }

        $return = array();

        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_QUESTION) {
            $null = $this->addAtom('Null');
            $null->code        = '?';
            $null->fullcode    = '?';
            $null->token       = $this->phptokens::T_STRING;
            $null->noDelimiter = '';
            $null->delimiter   = '';
            $null->fullnspath   = '\\null';

            $return[] = $null;
            ++$this->id;
        }

        --$this->id;
        do {
            ++$this->id;
            if (in_array(mb_strtolower($this->tokens[$this->id + 1][1]), $this->SCALAR_TYPE, \STRICT_COMPARISON) &&
                 $this->tokens[$this->id + 2][0] !== $this->phptokens::T_NS_SEPARATOR) {
                ++$this->id;
                $nsname = $this->processSingle('Scalartypehint');
                $nsname->fullnspath = '\\' . mb_strtolower($nsname->code);
            } elseif (mb_strtolower($this->tokens[$this->id + 1][1]) === 'null') {
                ++$this->id;
                $nsname = $this->processSingle('Null');
                $nsname->fullnspath = '\\null';
            } else {
                $nsname = $this->processOneNsname(self::WITHOUT_FULLNSPATH);
                $this->getFullnspath($nsname, 'class', $nsname);
                $this->calls->addCall('class', $nsname->fullnspath, $nsname);
            }

            $return[] = $nsname;
        } while ($this->tokens[$this->id + 1][0] === $this->phptokens::T_OR);

        if ($this->tokens[$this->id + 1][1] === ',') {
            ++$this->id;
        }

        $returnTypeFullcode = array();
        if ($return[0]->code === '?') {
            $this->addLink($holder, $return[0], $link);
            $this->addLink($holder, $return[1], $link);

            $return[0]->rank = 0;
            $return[1]->rank = 1;

            $returnTypeFullcode = '?' . $return[1]->fullcode;
        } else {
            $rank = -1;
            foreach($return as $returnType) {
                $this->addLink($holder, $returnType, $link);
                $returnType->rank = ++$rank;

                if (!$returnType->isA(array('Void'))) {
                    $returnTypeFullcode[] = $returnType->fullcode;
                } elseif ($returnType->code === '?') {
                    array_unshift('?', $returnTypeFullcode);
                    $returnTypeFullcode = array_values($returnTypeFullcode);
                }
            }
            $returnTypeFullcode = implode('|', $returnTypeFullcode);
        }

        switch($link) {
            case 'RETURNTYPE':
                $returnTypeFullcode = ' : ' . $returnTypeFullcode;
                break;

            case 'TYPEHINT':
                $returnTypeFullcode .= ' ';
                break;

            default:
                die(__METHOD__);
        }

        return $returnTypeFullcode;
    }

    private function processParameters(string $atom): Atom {
        $current = $this->id;
        $arguments = $this->addAtom($atom, $current);

        $this->currentFunction[] = $arguments;
        $this->currentMethod[]   = $arguments;

        $argumentsList  = array();

        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_CLOSE_PARENTHESIS) {
            $void = $this->addAtomVoid();
            $void->rank = 0;
            $this->addLink($arguments, $void, 'ARGUMENT');

            $arguments->code     = $this->tokens[$current][1];
            $arguments->fullcode = self::FULLCODE_VOID;
            $arguments->token    = $this->getToken($this->tokens[$current][0]);
            $arguments->args_max = 0;
            $arguments->args_min = 0;
            $arguments->count    = 0;

            $this->runPlugins($arguments, array($void));

            $argumentsList[] = $void;

            // Skip the )
            ++$this->id;
            return $arguments;
        }

        $fullcode       = array();
        $argsMax        = 0;
        $argsMin        = 0;
        $rank       = -1;
        $default    = 0;
        $variadic   = self::NOT_ELLIPSIS;

        do {
            do {
                $this->checkPhpdoc();
                // PHP 8.0's trailing comma in signature
                if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_CLOSE_PARENTHESIS) {
                    $fullcode[] = ' ';
                    ++$this->id;
                    break 1;
                }

                if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_SL) {
                    // attributes
                    $this->processNext();

                    continue;
                }

                ++$argsMax;
                if (in_array($this->tokens[$this->id + 1][0], array($this->phptokens::T_PUBLIC,
                                                                    $this->phptokens::T_PRIVATE,
                                                                    $this->phptokens::T_PROTECTED,
                    ), \STRICT_COMPARISON)
                ) {
                    ++$this->id;
                    $index = $this->processPPP(self::PROMOTED);

                    ++$this->id;

                    $this->addLink(end($this->currentClassTrait), $index, 'PPP');

                    $index->rank = ++$rank;
                    $this->popExpression();
                    $fullcode[] = $index->fullcode;
                    $this->addLink($arguments, $index, 'ARGUMENT');
                    $argumentsList[] = $index;

                    continue;
                }

                $index = $this->addAtom('Parameter');
                $variable = $this->addAtom('Parametername');
                $typehints = $this->processTypehint($index);
                $this->makeAttributes($index);
                $this->makePhpdoc($index);
                ++$this->id;

                if ($this->tokens[$this->id][0] === $this->phptokens::T_AND) {
                    $reference = self::REFERENCE;
                    ++$this->id;
                } else {
                    $reference = self::NOT_REFERENCE;
                }

                if ($this->tokens[$this->id][0] === $this->phptokens::T_ELLIPSIS) {
                    $variadic = self::ELLIPSIS;
                    ++$this->id;
                }

                $variable->code     = $this->tokens[$this->id][1];
                $variable->fullcode = $this->tokens[$this->id][1];
                $variable->token    = $this->getToken($this->tokens[$this->id][0]);
                $this->runPlugins($variable);

                $index->code     = $variable->fullcode;
                $index->fullcode = $variable->fullcode;
                $index->token    = 'T_VARIABLE';

                if ($variadic === self::ELLIPSIS) {
                    $index->fullcode  = '...' . $index->fullcode;
                    $index->variadic = self::ELLIPSIS;
                }

                if ($reference === self::REFERENCE) {
                    $index->fullcode  = '&' . $index->fullcode;
                    $index->reference = self::REFERENCE;
                }

                $this->addLink($index, $variable, 'NAME');
                $this->currentVariables[$variable->code] = $variable;

                if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_EQUAL) {
                    ++$this->id; // Skip =
                    do {
                        $default = $this->processNext();
                    } while (!in_array($this->tokens[$this->id + 1][0], array($this->phptokens::T_COMMA,
                                                                              $this->phptokens::T_CLOSE_PARENTHESIS,
                                                                              $this->phptokens::T_CLOSE_CURLY,
                                                                              $this->phptokens::T_SEMICOLON,
                                                                              $this->phptokens::T_CLOSE_BRACKET,
                                                                              $this->phptokens::T_CLOSE_TAG,
                                                                              $this->phptokens::T_COLON,
                                                                              ),
                            \STRICT_COMPARISON));

                    $this->popExpression();
                } else {
                    if ($index->variadic === self::ELLIPSIS) {
                        $argsMax = \MAX_ARGS;
                    } else {
                        ++$argsMin;
                    }
                    $default = $this->addAtomVoid();
                }
                $this->addLink($index, $default, 'DEFAULT');
                if ($default->atom !== 'Void') {
                    $index->fullcode .= ' = ' . $default->fullcode;

                    if ($default->atom === 'Null' &&
                        strpos($typehints, '?') === false &&
                        preg_match('/\bnull\b/i', $typehints) === 0
                        ) {
                        $null = $this->addAtom('Null', $this->id);
                        $null->fullnspath = '\\null';
                        $null->aliased    = self::NOT_ALIASED;

                        $this->addLink($index, $null, 'TYPEHINT');
                    }
                }

                $index->rank = ++$rank;

                $index->fullcode = $typehints . $index->fullcode;
                $fullcode[] = $index->fullcode;
                $this->addLink($arguments, $index, 'ARGUMENT');
                $argumentsList[] = $index;

                ++$this->id;
            } while ($this->tokens[$this->id][0] === $this->phptokens::T_COMMA);

            --$this->id;
        } while ($this->tokens[$this->id + 1][0] !== $this->phptokens::T_CLOSE_PARENTHESIS);
        $arguments->count    = $rank + 1;

        // Skip the )
        ++$this->id;

        $arguments->fullcode = implode(', ', $fullcode);
        $arguments->token    = 'T_COMMA';
        $arguments->args_max = $argsMax;
        $arguments->args_min = $argsMin;
        $this->runPlugins($arguments, $argumentsList);

        return $arguments;
    }

    private function processArguments(string $atom,array $finals = array(), array &$argumentsList = array()): Atom {
        if (empty($finals)) {
            $finals = array($this->phptokens::T_CLOSE_PARENTHESIS);
        }
        $current = $this->id;
        $arguments = $this->addAtom($atom, $current);
        $argumentsId = array();

        $this->contexts->nestContext(Context::CONTEXT_NEW);
        $this->contexts->nestContext(Context::CONTEXT_NOSEQUENCE);
        $this->contexts->toggleContext(Context::CONTEXT_NOSEQUENCE);
        $fullcode = array();

        if (in_array($this->tokens[$this->id + 1][0], array($this->phptokens::T_CLOSE_PARENTHESIS,
                                                            $this->phptokens::T_CLOSE_BRACKET,
                                                            ),
                     \STRICT_COMPARISON)) {
            $void = $this->addAtomVoid();
            $void->rank = 0;
            $this->addLink($arguments, $void, 'ARGUMENT');

            $arguments->code     = $this->tokens[$current][1];
            $arguments->fullcode = self::FULLCODE_VOID;
            $arguments->token    = $this->getToken($this->tokens[$current][0]);
            $arguments->args_max = 0;
            $arguments->args_min = 0;
            $arguments->count    = 0;
            $argumentsId[]       = $void;

            $argumentsList = array($void);
            $this->runPlugins($arguments, $argumentsList);

            ++$this->id;
        } else {
            $index      = 0;
            $argsMax    = 0;
            $argsMin    = 0;
            $rank       = -1;
            $argumentsList  = array();

            while (!in_array($this->tokens[$this->id + 1][0], $finals, \STRICT_COMPARISON)) {
                $initialId = $this->id;
                ++$argsMax;

                while (!in_array($this->tokens[$this->id + 1][0], array($this->phptokens::T_COMMA,
                                                                        $this->phptokens::T_CLOSE_PARENTHESIS,
                                                                        $this->phptokens::T_CLOSE_CURLY,
                                                                        $this->phptokens::T_SEMICOLON,
                                                                        $this->phptokens::T_CLOSE_BRACKET,
                                                                        $this->phptokens::T_CLOSE_TAG,
                                                                        $this->phptokens::T_COLON,
                                                                        ),
                                \STRICT_COMPARISON)) {
                    $index = $this->processNext();
                }
                $this->popExpression();

                while ($this->tokens[$this->id + 1][0] === $this->phptokens::T_COMMA) {
                    if ($index === 0) {
                        $index = $this->addAtomVoid();
                    }

                    $index->rank = ++$rank;

                    $this->addLink($arguments, $index, 'ARGUMENT');
                    $argumentsId[] = $index;
                    // array($this, 'b'); for Callback syntax.
                    if ($index->atom === 'Variable' &&
                        $index->code === '$this'    &&
                        $index->rank === 0 ) {
                        $this->calls->addCall('class', end($this->currentClassTrait)->fullnspath, $index);
                    }

                    $fullcode[] = $index->fullcode;
                    $argumentsList[] = $index;

                    ++$this->id; // Skipping the comma ,
                    $index = 0;
                }

                if ($initialId === $this->id) {
                    throw new NoFileToProcess($this->filename, 'not processable with the current code');
                }
            }

            if ($index === 0) {
                if ($atom === 'List') {
                    $index = $this->addAtomVoid();

                    $index->rank = ++$rank;
                    $argumentsId[] = $index;
                    $this->argumentsId = $argumentsId; // This avoid overwriting when nesting functioncall

                    $this->addLink($arguments, $index, 'ARGUMENT');

                    $fullcode[] = $index->fullcode;
                    $argumentsList[] = $index;
                } else {
                    $fullcode[] = ' ';
                }
            } else {
                $index->rank = ++$rank;
                $argumentsId[] = $index;
                $this->argumentsId = $argumentsId; // This avoid overwriting when nesting functioncall

                $this->addLink($arguments, $index, 'ARGUMENT');

                $fullcode[] = $index->fullcode;
                $argumentsList[] = $index;
            }

            // Skip the )
            ++$this->id;

            $arguments->fullcode = implode(', ', $fullcode);
            $arguments->token    = 'T_COMMA';
            $arguments->count    = $rank + 1;
            $arguments->args_max = $argsMax;
            $arguments->args_min = $argsMin;
            $this->runPlugins($arguments, $argumentsList);
        }

        $this->contexts->exitContext(Context::CONTEXT_NOSEQUENCE);
        $this->contexts->exitContext(Context::CONTEXT_NEW);

        return $arguments;
    }

    private function processNextAsIdentifier(bool $getFullnspath = self::WITH_FULLNSPATH): Atom {
        ++$this->id;

        $identifier = $this->addAtom($getFullnspath === self::WITH_FULLNSPATH ? 'Identifier' : 'Name', $this->id);
        $identifier->fullcode   = $this->tokens[$this->id][1];

        if ($getFullnspath === self::WITH_FULLNSPATH) {
            $this->getFullnspath($identifier, 'const', $identifier);
        }
        $this->runPlugins($identifier);

        return $identifier;
    }

    private function processConst(): Atom {
        $current = $this->id;
        $const = $this->addAtom('Const', $current);
        $this->makePhpdoc($const);
        $this->makeAttributes($const);

        $rank = -1;
        --$this->id; // back one step for the init in the next loop

        if (empty($const->visibility)) {
            $const->visibility = 'none';
        }

        $fullcode = array();
        do {
            ++$this->id;
            $constId = $this->id;
            $this->checkPhpdoc();
            $name = $this->processNextAsIdentifier();

            ++$this->id; // Skip =
            do {
                $value = $this->processNext();
            } while (!in_array($this->tokens[$this->id + 1][0], array($this->phptokens::T_SEMICOLON,
                                                                      $this->phptokens::T_COMMA,
                                                                      $this->phptokens::T_DOC_COMMENT,
                                                                    ),
                    \STRICT_COMPARISON));
            $this->popExpression();

            $def = $this->addAtom('Constant', $constId);
            $this->addLink($def, $name, 'NAME');
            $this->addLink($def, $value, 'VALUE');

            $def->fullcode = $name->fullcode . ' = ' . $value->fullcode;
            $def->rank     = ++$rank;

            $fullcode[] = $def->fullcode;
            $this->runPlugins($def, array('VALUE' => $value,
                                          'NAME'  => $name,
                                          ));

            $this->getFullnspath($name, 'const', $name);

            $this->addLink($const, $def, 'CONST');

            if ($this->contexts->isContext(Context::CONTEXT_CLASS)) {
                $this->calls->addDefinition('staticconstant',   end($this->currentClassTrait)->fullnspath . '::' . $name->fullcode, $def);
            } else {
                $this->calls->addDefinition('const', $name->fullnspath, $def);
            }
            $this->makePhpdoc($def);
            $this->checkPhpdoc();
        } while ($this->tokens[$this->id + 1][0] !== $this->phptokens::T_SEMICOLON);

        $const->fullcode = $this->tokens[$current][1] . ' ' . implode(', ', $fullcode);
        $const->count    = $rank + 1;

        $this->pushExpression($const);

        return $this->processFCOA($const);
    }

    private function processAbstract(): Atom {
        $current = $this->id;
        $abstract = $this->tokens[$this->id][1];

        $next = $this->processNext();

        $next->abstract = 1;
        $next->fullcode = "$abstract $next->fullcode";
        $this->makePhpdoc($next);

        return $next;
    }

    private function processFinal(): Atom {
        $current = $this->id;
        $final = $this->tokens[$this->id][1];

        $next = $this->processNext();

        $next->final    = 1;
        $next->fullcode = "$final $next->fullcode";
        $this->makePhpdoc($next);

        return $next;
    }

    private function processVar(): Atom {
        $current = $this->id;
        $visibility = $this->tokens[$this->id][1];
        $ppp = $this->addAtom('Ppp', $current);
        $returnTypes = $this->processTypehint($ppp);

        $this->processSGVariable($ppp);

        $ppp->visibility = 'none';
        $ppp->fullcode   = "$visibility {$returnTypes}$ppp->fullcode";
        $this->makePhpdoc($ppp);

        return $ppp;
    }

    private function processPPP(bool $promoted = self::PROMOTED_NOT): Atom {
        $current = $this->id;
        $visibility = $this->tokens[$this->id][1];

        if (in_array($this->tokens[$this->id + 1][0], array($this->phptokens::T_STATIC,
                                                            $this->phptokens::T_FUNCTION,
                                                            $this->phptokens::T_FINAL,
                                                            $this->phptokens::T_ABSTRACT,
                                                            $this->phptokens::T_CONST,
                                                           ),
                     \STRICT_COMPARISON)) {
            $ppp = $this->processNext();
            $this->makePhpdoc($ppp);
            $returnTypes = '';
        } else {
            $ppp = $this->addAtom('Ppp', $current);
            $this->makePhpdoc($ppp);
            $returnTypes = $this->processTypehint($ppp);

            $this->processSGVariable($ppp, $promoted);
        }

        $ppp->visibility = strtolower($visibility);
        $ppp->fullcode   = "$visibility {$returnTypes}$ppp->fullcode";
        $this->makeAttributes($ppp);

        return $ppp;
    }

    private function processDefineConstant(Atom $namecall): Atom {
        $current = $this->id;
        $namecall->atom = 'Defineconstant';
        $namecall->fullnspath = '\\define';
        $namecall->aliased    = self::NOT_ALIASED;
        $this->makePhpdoc($namecall);

        // Empty call
        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_CLOSE_PARENTHESIS) {

            $namecall->fullcode   = $namecall->code . '( )';
            $this->pushExpression($namecall);

            $this->runPlugins($namecall, array());
            ++$this->id; // Skip )

            $this->checkExpression();
            return $namecall;
        }

        // First argument : constant name
        ++$this->id;
        if ($this->tokens[$this->id][0]     === $this->phptokens::T_CONSTANT_ENCAPSED_STRING &&
            $this->tokens[$this->id + 1][0] === $this->phptokens::T_COMMA
            ) {
            $name = $this->processSingle('Identifier');
            $this->runPlugins($name);
            $name->delimiter   = $name->code[0];
            if (strtolower($name->delimiter) === 'b') {
                $name->binaryString = $name->delimiter;
                $name->delimiter    = $name->code[1];
                $name->noDelimiter  = substr($name->code, 2, -1);
            } else {
                $name->noDelimiter = substr($name->code, 1, -1);
            }
            $this->getFullnspath($name, 'const', $name);

            if (function_exists('mb_detect_encoding')) {
                $name->encoding = mb_detect_encoding($name->noDelimiter);
                if ($name->encoding === 'UTF-8') {
                    $blocks = unicode_blocks($name->noDelimiter);
                    $name->block = array_keys($blocks)[0];
                }
                if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_OPEN_BRACKET) {
                    $name = $this->processBracket();
                }
            }
        } else {
            // back one step
            --$this->id;
            while (!in_array($this->tokens[$this->id + 1][0], array($this->phptokens::T_COMMA,
                                                                    $this->phptokens::T_CLOSE_PARENTHESIS // In case of missing arguments...
                                                                    ),
                    \STRICT_COMPARISON)) {
                $name = $this->processNext();
            }
            $this->popExpression();
        }
        $this->addLink($namecall, $name, 'NAME');

        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_CLOSE_PARENTHESIS) {
            $namecall->fullcode   = "{$namecall->code}({$name->code})";
            $this->pushExpression($namecall);

            $this->runPlugins($namecall, array('NAME'  => $name, ));
            ++$this->id; // Skip )

            $this->checkExpression();
            return $namecall;
        }

        // Second argument constant value
        ++$this->id; // Skip ,
        while (!in_array($this->tokens[$this->id + 1][0], array($this->phptokens::T_COMMA,
                                                                $this->phptokens::T_CLOSE_PARENTHESIS // In case of missing arguments...
                                                                ),
                \STRICT_COMPARISON)) {
            $value = $this->processNext();
        }
        $this->popExpression();
        $this->addLink($namecall, $value, 'VALUE');

        // Most common point of exit
        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_CLOSE_PARENTHESIS) {
            $namecall->fullcode   = "{$namecall->code}({$name->fullcode}, {$value->fullcode})";
            $this->pushExpression($namecall);

            $this->runPlugins($namecall, array('NAME'  => $name,
                                               'VALUE' => $value,
                                               ));
            ++$this->id; // Skip )

            $this->processDefineAsConstants($namecall, $name, self::CASE_INSENSITIVE);

            $this->checkExpression();
            return $namecall;
        }

        // Third argument : case sensitive
        ++$this->id; // Skip ,
        while (!in_array($this->tokens[$this->id + 1][0], array($this->phptokens::T_COMMA,
                                                                $this->phptokens::T_CLOSE_PARENTHESIS // In case of missing arguments...
                                                                ),
                \STRICT_COMPARISON)) {
            $case = $this->processNext();
        }
        $this->popExpression();
        $this->addLink($namecall, $case, 'CASE');

        $this->processDefineAsConstants($namecall, $name, (bool) $case->boolean);

        $namecall->fullcode   = $namecall->code . '(' . $name->fullcode . ', ' . $value->fullcode . ', ' . $case->fullcode . ')';
        $this->pushExpression($namecall);

        $this->runPlugins($namecall, array('NAME'  => $name,
                                           'VALUE' => $value,
                                           'CASE'  => $case,
                                           ));

        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_CLOSE_PARENTHESIS) {
            ++$this->id; // Skip )

            $this->checkExpression();
            return $namecall;
        }

        // Ignore everything else
        $parenthese = 1;
        while ($parenthese > 0) {
            ++$this->id;

            if ($this->tokens[$this->id][0] === $this->phptokens::T_CLOSE_PARENTHESIS) {
                --$parenthese;
            } elseif ($this->tokens[$this->id][0] === $this->phptokens::T_OPEN_PARENTHESIS) {
                ++$parenthese;
            }
        }

        $this->checkExpression();
        return $namecall;
    }

    private function processFunctioncall(bool $getFullnspath = self::WITH_FULLNSPATH) {
        $name = $this->popExpression();
        ++$this->id; // Skipping the name, set on (

        if ($this->contexts->isContext(Context::CONTEXT_NEW)) {
            if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_DOUBLE_COLON) {
                $atom = 'Identifier';
            } else {
                $atom = 'Newcall';
            }
        } elseif ($getFullnspath === self::WITH_FULLNSPATH) {
            if (strtolower($name->code) === '\\define') {
                return $this->processDefineConstant($name);
            } elseif (strtolower($name->code) === 'define') {
                return $this->processDefineConstant($name);
            } elseif (strtolower($name->code) === '\\class_alias') {
                $atom = 'Classalias';
            } elseif (strtolower($name->code) === 'class_alias') {
                $atom = 'Classalias';
            } elseif ($name->fullnspath === '\\list') {
                $atom = 'List';
            } else {
                $atom = 'Functioncall';
            }
        } else {
            $atom = 'Methodcallname';
        }

        $argumentsList = array();
        $functioncall = $this->processArguments($atom, array($this->phptokens::T_CLOSE_PARENTHESIS), $argumentsList);
        $argumentsFullcode       = $functioncall->fullcode;

        $functioncall->code      = $name->code;
        $functioncall->fullcode  = "{$name->fullcode}({$argumentsFullcode})";
        $functioncall->token     = $name->token;

        if ($atom === 'Newcall') {
            $this->getFullnspath($name, 'class', $functioncall);

            $this->calls->addCall('class', $functioncall->fullnspath, $functioncall);
        } elseif ($atom === 'Classalias') {
            $functioncall->fullnspath = '\\classalias';
            $functioncall->aliased    = self::NOT_ALIASED;

            $this->processDefineAsClassalias($argumentsList);
        } elseif (in_array($atom, array('Methodcallname', 'List'), \STRICT_COMPARISON)) {
            // literally, nothing
        } elseif (in_array(mb_strtolower($name->code), array('defined', 'constant'), \STRICT_COMPARISON)) {
            if ($argumentsList[0]->constant === true &&
                !empty($argumentsList[0]->noDelimiter   )) {

                $fullnspath = makeFullNsPath($argumentsList[0]->noDelimiter, \FNP_CONSTANT);
                if ($argumentsList[0]->noDelimiter[0] === '\\') {
                    $fullnspath = "\\$fullnspath";
                }
                $argumentsList[0]->fullnspath = $fullnspath;
                $this->calls->addCall('const', $fullnspath, $argumentsList[0]);
            }

            $functioncall->fullnspath = '\\' . mb_strtolower($name->code);
            $functioncall->aliased    = self::NOT_ALIASED;

        } elseif ($getFullnspath === self::WITH_FULLNSPATH) { // A functioncall
            $this->getFullnspath($name, 'function', $functioncall);
            $functioncall->absolute   = $name->absolute;

            $this->calls->addCall('function', $functioncall->fullnspath, $functioncall);
        } else {
            throw new LoadError("Unprocessed atom in functioncall definition (its name) : $atom->atom : $this->filename : " . __LINE__);
        }

        $this->addLink($functioncall, $name, 'NAME');
        if ($name->atom === 'Name') {
            $this->runPlugins($name);
        }
        $this->pushExpression($functioncall);

        if ( $functioncall->atom === 'Methodcallname') {
            $argumentsList[] = $name;
            $this->runPlugins($functioncall, $argumentsList);
        } elseif ( !$this->contexts->isContext(Context::CONTEXT_NOSEQUENCE) &&
                   $this->tokens[$this->id + 1][0] === $this->phptokens::T_CLOSE_TAG &&
                   $getFullnspath === self::WITH_FULLNSPATH ) {
             $this->processSemicolon();
        } else {
            $argumentsList[] = $name;
            $this->runPlugins($functioncall, $argumentsList);
            $functioncall = $this->processFCOA($functioncall);
        }

        return $functioncall;
    }

    private function processString(): Atom {
        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_NS_SEPARATOR ) {
            return $this->processNsname();
        } elseif (in_array($this->tokens[$this->id - 1][0], array($this->phptokens::T_SEMICOLON,
                                                                  $this->phptokens::T_OPEN_CURLY,
                                                                  $this->phptokens::T_CLOSE_CURLY,
                                                                  $this->phptokens::T_COLON,
                                                                  $this->phptokens::T_OPEN_TAG,
                                                                  ),
                    \STRICT_COMPARISON) &&
                   $this->tokens[$this->id + 1][0] === $this->phptokens::T_COLON       ) {
            return $this->processColon();
        } elseif (mb_strtolower($this->tokens[$this->id][1]) === 'self') {
            $string = $this->addAtom('Self', $this->id);
        } elseif (mb_strtolower($this->tokens[$this->id][1]) === 'parent') {
            $string = $this->addAtom('Parent', $this->id);
        } elseif (mb_strtolower($this->tokens[$this->id][1]) === 'list') {
            $string = $this->addAtom('Name', $this->id);
            $string->fullnspath = '\\list';
        } elseif ($this->contexts->isContext(Context::CONTEXT_NEW)) {
            // This catchs new A and new A()
            if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_OPEN_PARENTHESIS ) {
                $string = $this->addAtom('Newcallname', $this->id);
            } else {
                $string = $this->addAtom('Newcall', $this->id);
            }
        } elseif ($this->tokens[$this->id + 1][0] === $this->phptokens::T_OPEN_PARENTHESIS ) {
            $string = $this->addAtom('Name', $this->id);
         } elseif (in_array(mb_strtolower($this->tokens[$this->id][1]), array('true', 'false'), \STRICT_COMPARISON)) {
            $string = $this->addAtom('Boolean', $this->id);

            $string->noDelimiter = mb_strtolower($string->code) === 'true' ? 1 : '';
            $string->fullnspath = '\\boolean';
            $string->aliased    = self::NOT_ALIASED;
        } elseif (mb_strtolower($this->tokens[$this->id][1]) === 'null') {
            $string = $this->addAtom('Null', $this->id);
            $string->fullnspath = '\\null';
            $string->aliased    = self::NOT_ALIASED;
        } else {
            $string = $this->addAtom('Identifier', $this->id);
        }

        $string->fullcode   = $this->tokens[$this->id][1];
        $string->absolute   = self::NOT_ABSOLUTE;
        $this->runPlugins($string);

        $this->pushExpression($string);

        if ($string->isA(array('Parent', 'Self', 'Static', 'Newcall'))) {
            if ($this->tokens[$this->id + 1][0] !== $this->phptokens::T_OPEN_PARENTHESIS) {
                $this->getFullnspath($string, 'class', $string);

                $this->calls->addCall('class', $string->fullnspath, $string);
            }

            if ($this->contexts->isContext(Context::CONTEXT_NEW)) {
                $string->count = 0;
            }
        } elseif ($this->tokens[$this->id + 1][0] === $this->phptokens::T_DOUBLE_COLON ||
                  $this->tokens[$this->id - 1][0] === $this->phptokens::T_INSTANCEOF   ||
                  $this->tokens[$this->id - 1][0] === $this->phptokens::T_NEW
            ) {
            if ($this->tokens[$this->id + 1][0] !== $this->phptokens::T_OPEN_PARENTHESIS) {
                $this->calls->addCall('class', $string->fullnspath, $string);
            }
        } elseif ($this->tokens[$this->id + 1][0] === $this->phptokens::T_OPEN_PARENTHESIS) {
            // Nothing to do
        } else {
            $this->getFullnspath($string, 'const', $string);
            $this->calls->addCall('const', $string->fullnspath, $string);
        }

        if ( !$this->contexts->isContext(Context::CONTEXT_NOSEQUENCE) && $this->tokens[$this->id + 1][0] === $this->phptokens::T_CLOSE_TAG) {
            $this->processSemicolon();
        } else {
            $string = $this->processFCOA($string);
        }

        return $string;
    }

    private function processPlusplus(): Atom {
        if ($this->hasExpression()) {
            $previous = $this->popExpression();
            // postplusplus
            $plusplus = $this->addAtom('Postplusplus', $this->id);

            $this->addLink($plusplus, $previous, 'POSTPLUSPLUS');

            $plusplus->fullcode = $previous->fullcode . $this->tokens[$this->id][1];

            $this->pushExpression($plusplus);
            $this->runPlugins($plusplus, array('POSTPLUSPLUS' => $previous));

            $this->checkExpression();

            return $plusplus;
        } else {
            // preplusplus
            $operator = $this->addAtom('Preplusplus', $this->id);
            $this->processSingleOperator($operator, $this->precedence->get($this->tokens[$this->id][0]), 'PREPLUSPLUS');
            $operator = $this->popExpression();
            $this->pushExpression($operator);

            $this->checkExpression();

            return $operator;
        }
    }

    private function processStatic(): Atom {
        $current = $this->id;
        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_DOUBLE_COLON ||
            $this->tokens[$this->id - 1][0] === $this->phptokens::T_INSTANCEOF    ) {

            $identifier = $this->processSingle('Static');
            $this->pushExpression($identifier);
            $this->getFullnspath($identifier, 'class', $identifier);
            $this->calls->addCall('class', $identifier->fullnspath, $identifier);

            return $identifier;
        }

        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_OPEN_PARENTHESIS ) {
            $name = $this->addAtom('Static', $this->id);
            $name->fullcode   = $this->tokens[$this->id][1];

            $this->getFullnspath($name, 'class', $name);

            $this->pushExpression($name);

            return $this->processFunctioncall();
         }

         if (in_array($this->tokens[$this->id + 1][0], array($this->phptokens::T_NS_SEPARATOR,
                                                             $this->phptokens::T_QUESTION,
                                                             $this->phptokens::T_STRING,
                                                             $this->phptokens::T_NAMESPACE,
                                                             $this->phptokens::T_ARRAY,
                                                             $this->phptokens::T_CALLABLE,
                                                             ),
                            \STRICT_COMPARISON)) {
            $current = $this->id;
            $option = $this->tokens[$this->id][1];

            $ppp = $this->addAtom('Ppp', $current);
            $returnTypes = $this->processTypehint($ppp);

            $this->processSGVariable($ppp);

            $ppp->static = 1;
            $ppp->visibility = 'none';
            $ppp->fullcode   = "$option {$returnTypes}$ppp->fullcode";
            $this->makePhpdoc($ppp);

            return $ppp;
        }

        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_VARIABLE) {
            if ($this->contexts->isContext(Context::CONTEXT_CLASS) &&
                !$this->contexts->isContext(Context::CONTEXT_FUNCTION)) {

                // something like public static
                $option = $this->tokens[$this->id][1];

                $ppp = $this->addAtom('Ppp', $current);
                $this->processSGVariable($ppp);

                $void = $this->addAtomVoid();
                $this->addLink($ppp, $void, 'TYPEHINT');

                if (empty($ppp->visibility)) {
                    $ppp->visibility = 'none';
                }
                $this->popExpression();

                $ppp->static = 1;
                $ppp->fullcode = "$option $ppp->fullcode";

                return $ppp;
            } else {
                $ppp = $this->processStaticVariable();
                $void = $this->addAtomVoid();
                $this->addLink($ppp, $void, 'TYPEHINT');

                return $ppp;
            }
        }

        if ($this->contexts->isContext(Context::CONTEXT_NEW)) {
            // new static;
            $name = $this->addAtom('Newcall', $this->id);
            $name->fullcode   = $this->tokens[$this->id][1];
            $name->count      = 0;

            $this->getFullnspath($name, 'class', $name);

            $this->calls->addCall('class', $name->fullnspath, $name);

            $this->pushExpression($name);
            return $name;
        }

        $static = $this->tokens[$this->id][1];

        $next = $this->processNext();
        $void = $this->addAtomVoid();
        $this->addLink($next, $void, 'TYPEHINT');

        $next->static   = 1;
        $next->fullcode = "$static $next->fullcode";
        $this->makePhpdoc($next);
        return $next;
    }

    private function processSGVariable(Atom $static, bool $promoted = self::PROMOTED_NOT): void {
        $current = $this->id;
        $rank = 0;

        $this->makePhpdoc($static);
        if (in_array($static->atom, array('Global', 'Static'), \STRICT_COMPARISON)) {
            $fullcodePrefix = $this->tokens[$this->id][1];
            $link = strtoupper($static->atom);
            $atom = $static->atom . 'definition';
        } else {
            $fullcodePrefix= array();
            $link = 'PPP';
            $atom = 'Propertydefinition';

            if (!isset($static->visibility)) {
                $static->visibility = 'none';
            }
            $fullcodePrefix = implode(' ', $fullcodePrefix);
        }

        if (!isset($fullcodePrefix)) {
            $fullcodePrefix = $this->tokens[$current][1];
        }

        $finals = array($this->phptokens::T_SEMICOLON,
                        $this->phptokens::T_CLOSE_TAG,
                        $this->phptokens::T_CLOSE_PARENTHESIS,
                        );
        // This is only for promoted properties. Only one definition per PPP
        if ($promoted === self::PROMOTED) {
            $finals[] = $this->phptokens::T_COMMA;
        }

        $fullcode = array();
        $extras = array();
        --$this->id;
        do {
            ++$this->id;
            $this->checkPhpdoc();
            if ($this->tokens[$this->id][0] === $this->phptokens::T_AND) {
                $reference = self::REFERENCE;
                ++$this->id;
            } else {
                $reference = self::NOT_REFERENCE;
            }

            if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_VARIABLE) {
                ++$this->id;
                if (isset($this->currentVariables[$this->tokens[$this->id][1]])) {
                    $element = $this->currentVariables[$this->tokens[$this->id][1]];
                } else {
                    $element = $this->processSingle($atom);
                }
                $this->makePhpdoc($element);

                if ($element->isA(array('Globaldefinition', 'Staticdefinition', 'Variabledefinition')) &&
                    !isset($this->currentVariables[$element->code])) {
                    $this->addLink($this->currentMethod[count($this->currentMethod) - 1], $element, 'DEFINITION');
                    $this->currentVariables[$element->code] = $element;
                }

                if ($element->atom === 'Globaldefinition') {
                    $this->makeGlobal($element);

                    $this->calls->addGlobal($this->theGlobals[$element->code]->id, $element->id);
                }

                if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_EQUAL) {
                    ++$this->id;
                    do {
                        $default = $this->processNext();
                    } while (!in_array($this->tokens[$this->id + 1][0],
                                       array($this->phptokens::T_SEMICOLON,
                                             $this->phptokens::T_CLOSE_TAG,
                                             $this->phptokens::T_COMMA,
                                             $this->phptokens::T_CLOSE_PARENTHESIS,
                                             $this->phptokens::T_DOC_COMMENT,
                                             ),
                                        \STRICT_COMPARISON));

                    $this->popExpression();
                } else {
                    $default = $this->addAtomVoid();
                }
            } else {
                // global $a[2] = 2 ?
                $element = $this->processNext();
                $this->makePhpdoc($element);
                $this->popExpression();
                $default = $this->addAtomVoid();
            }

            if ($reference === self::REFERENCE) {
                $element->fullcode  = '&' . $index->fullcode;
                $element->reference = self::REFERENCE;
            }

            $element->rank = ++$rank;
            $this->addLink($static, $element, $link);

            if ($atom === 'Propertydefinition') {
                // drop $
                $element->propertyname = ltrim($element->code, '$');
                $this->currentProperties[$element->propertyname] = $element;

                $currentFNP = $this->currentClassTrait[count($this->currentClassTrait) - 1]->fullnspath;
                $this->calls->addDefinition('staticproperty', $currentFNP . '::' . $element->code, $element);
                $this->calls->addDefinition('property', $currentFNP . '::' . ltrim($element->code, '$'), $element);
            }

            $this->addLink($element, $default, 'DEFAULT');
            if ($default->atom !== 'Void') {
                $element->fullcode .= " = {$default->fullcode}";
                $this->runPlugins($element, array('DEFAULT' => $default));
            } else {
                $this->runPlugins($element);
            }
            $fullcode[] = $element->fullcode;
            $extras[] = $element;
            $this->checkPhpdoc();
        }  while (!in_array($this->tokens[$this->id + 1][0], $finals, \STRICT_COMPARISON));

        $static->fullcode = (!empty($fullcodePrefix) ? $fullcodePrefix . ' ' : '') . implode(', ', $fullcode);
        $static->count    = $rank;
        $this->runPlugins($static, $extras);

        $this->pushExpression($static);

        $this->checkExpression();
    }

    private function processStaticVariable(): Atom {
        $variable = $this->addAtom('Static');
        $this->processSGVariable($variable);

        return $variable;
    }

    private function processGlobalVariable(): Atom {
        $variable = $this->addAtom('Global');
        $this->processSGVariable($variable);

        return $variable;
    }

    private function processBracket(): Atom {
        $current = $this->id;
        $bracket = $this->addAtom('Array', $current);

        $variable = $this->popExpression();
        $this->addLink($bracket, $variable, 'VARIABLE');

        // Skip opening bracket
        $opening = $this->tokens[$this->id + 1][0];
        if ($opening === '{') {
            $closing = '}';
        } else {
            $closing = ']';
        }

        ++$this->id;
        $resetContext = false;
        if ($this->contexts->isContext(Context::CONTEXT_NEW)) {
            $resetContext = true;
            $this->contexts->toggleContext(Context::CONTEXT_NEW);
        }
        do {
            $index = $this->processNext();
        } while (!in_array($this->tokens[$this->id + 1][0], array($this->phptokens::T_CLOSE_BRACKET,
                                                                  $this->phptokens::T_CLOSE_CURLY,
                                                                  ),
                 \STRICT_COMPARISON));
        if ($resetContext === true) {
            $this->contexts->toggleContext(Context::CONTEXT_NEW);
        }

        // Skip closing bracket
        ++$this->id;

        $this->popExpression();
        $this->addLink($bracket, $index, 'INDEX');

        if ($variable->code === '$GLOBALS' && !empty($index->noDelimiter)) {
            // Build the name of the global, dropping the fi
            $bracket->globalvar = '$' . $index->noDelimiter;

            $this->makeGlobal($index);
            $this->calls->addGlobal($this->theGlobals[$bracket->globalvar]->id, $bracket->id);
        }

        $bracket->fullcode  = $variable->fullcode . $opening . $index->fullcode . $closing ;
        $bracket->enclosing = self::NO_ENCLOSING;
        $this->pushExpression($bracket);
        $this->runPlugins($bracket, array('VARIABLE' => $variable,
                                          'INDEX'    => $index));

        $bracket = $this->processFCOA($bracket);
        $this->checkExpression();

        return $bracket;
    }

    private function processBlock(bool $standalone = self::STANDALONE_BLOCK): Atom {
        $this->startSequence();

        // Case for {}
        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_CLOSE_CURLY) {
            $void = $this->addAtomVoid();
            $this->addToSequence($void);
        } else {
            $this->contexts->nestContext(Context::CONTEXT_NOSEQUENCE);
            while ($this->tokens[$this->id + 1][0] !== $this->phptokens::T_CLOSE_CURLY) {
                $this->processNext();
            }
            $this->contexts->exitContext(Context::CONTEXT_NOSEQUENCE);

            $this->checkExpression();
        }

        $block = $this->sequence;
        $this->endSequence();

        $block->code     = '{}';
        $block->fullcode = static::FULLCODE_BLOCK;
        $block->token    = $this->getToken($this->tokens[$this->id][0]);
        $block->bracket  = self::BRACKET;

        ++$this->id; // skip }

        $this->pushExpression($block);
        if ($standalone === self::STANDALONE_BLOCK) {
            $this->processSemicolon();
        }

        return $block;
    }

    private function processForblock(array $finals = array()): Atom {
        $this->startSequence();
        $block = $this->sequence;

        if (in_array($this->tokens[$this->id + 1][0], $finals, \STRICT_COMPARISON)) {
            $element = $this->addAtomVoid();
        } else {
            do {
                $element = $this->processNext();

                if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_COMMA) {
                    $element = $this->popExpression();
                    $this->addToSequence($element);

                    ++$this->id;
                }
            } while (!in_array($this->tokens[$this->id + 1][0], $finals, \STRICT_COMPARISON));
        }
        $this->popExpression();
        $this->addToSequence($element);

        ++$this->id;
        $current = $this->sequence;
        $this->endSequence();
        $block->code     = $current->code;
        $block->fullcode = self::FULLCODE_SEQUENCE;
        $block->token    = $this->getToken($this->tokens[$this->id][0]);

        if ($current->count === 1) {
            $block->fullcode = $element->fullcode;
        }

        return $block;
    }

    private function processFor(): Atom {
        $current = $this->id;
        $for = $this->addAtom('For', $current);
        ++$this->id; // Skip for

        $init = $this->processForblock(array($this->phptokens::T_SEMICOLON));
        $this->addLink($for, $init, 'INIT');

        $final = $this->processForblock(array($this->phptokens::T_SEMICOLON));
        $this->addLink($for, $final, 'FINAL');

        $increment = $this->processForblock(array($this->phptokens::T_CLOSE_PARENTHESIS));
        $this->addLink($for, $increment, 'INCREMENT');

        $isColon = $this->whichSyntax($current, $this->id + 1);

        $block = $this->processFollowingBlock($isColon === self::ALTERNATIVE_SYNTAX ? array($this->phptokens::T_ENDFOR) : array());
        $this->addLink($for, $block, 'BLOCK');

        if ($isColon === self::ALTERNATIVE_SYNTAX) {
            $fullcode = $this->tokens[$current][1] . '(' . $init->fullcode . ' ; ' . $final->fullcode . ' ; ' . $increment->fullcode . ') : ' . self::FULLCODE_SEQUENCE . ' ' . $this->tokens[$this->id + 1][1];
        } else {
            $fullcode = $this->tokens[$current][1] . '(' . $init->fullcode . ' ; ' . $final->fullcode . ' ; ' . $increment->fullcode . ')' . ($block->bracket === self::BRACKET ? self::FULLCODE_BLOCK : self::FULLCODE_SEQUENCE);
        }

        $for->fullcode    = $fullcode;
        $for->alternative = $isColon;

        $this->runPlugins($for, array('INIT'      => $init,
                                      'FINAL'     => $final,
                                      'INCREMENT' => $increment,
                                      'BLOCK'     => $block));

        $this->pushExpression($for);
        $this->finishWithAlternative($isColon);

        return $for;
    }

    private function processForeach(): Atom {
        $current = $this->id;
        $foreach = $this->addAtom('Foreach', $current);
        ++$this->id; // Skip foreach

        do {
            $source = $this->processNext();
        } while ($this->tokens[$this->id + 1][0] !== $this->phptokens::T_AS);

        $this->popExpression();
        $this->addLink($foreach, $source, 'SOURCE');

        $as = $this->tokens[$this->id + 1][1];
        ++$this->id; // Skip as
        $variablesStart = max(array_keys($this->atoms));

        while (!in_array($this->tokens[$this->id + 1][0], array($this->phptokens::T_CLOSE_PARENTHESIS,
                                                                $this->phptokens::T_DOUBLE_ARROW,
                                                                ),
                    \STRICT_COMPARISON)) {
            $value = $this->processNext();
        }
        $this->popExpression();
        $valueFullcode = $value->fullcode;

        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_DOUBLE_ARROW) {
            $this->addLink($foreach, $value, 'INDEX');
            $variablesStart = max(array_keys($this->atoms));
            $index = $value;
            ++$this->id;
            while (!in_array($this->tokens[$this->id + 1][0], array($this->phptokens::T_CLOSE_PARENTHESIS,
                                                                    ),
                        \STRICT_COMPARISON)) {
                $value = $this->processNext();
            }
            $this->popExpression();
            $valueFullcode .= " => {$value->fullcode}";
        }
        $this->addLink($foreach, $value, 'VALUE');

        // Warning : this is also connecting variables used for reading : foreach($a as [$b => $c]) { }
        $max = max(array_keys($this->atoms));
        $double = array($value->code => 1);
        for($i = $variablesStart + 1; $i < $max; ++$i) {
            if ($this->atoms[$i]->atom === 'Variable' && !isset($double[$this->atoms[$i]->code])) {
                $double[$this->atoms[$i]->code] = 1;
                $this->addLink($foreach, $this->atoms[$i], 'VALUE');
            }
        }
        unset($double);

        ++$this->id; // Skip )
        $isColon = $this->whichSyntax($current, $this->id + 1);

        $block = $this->processFollowingBlock($isColon === true ? array($this->phptokens::T_ENDFOREACH) : array());
        $this->addLink($foreach, $block, 'BLOCK');

        if ($isColon === self::ALTERNATIVE_SYNTAX) {
            $fullcode = $this->tokens[$current][1] . '(' . $source->fullcode . ' ' . $as . ' ' . $valueFullcode . ') : ' . self::FULLCODE_SEQUENCE . ' endforeach';
        } else {
            $fullcode = $this->tokens[$current][1] . '(' . $source->fullcode . ' ' . $as . ' ' . $valueFullcode . ')' . ($block->bracket === self::BRACKET ? self::FULLCODE_BLOCK : self::FULLCODE_SEQUENCE);
        }

        $foreach->fullcode    = $fullcode;
        $foreach->alternative = $isColon;

        $extras = array('SOURCE'    => $source,
                        'VALUE'     => $value,
                        'BLOCK'     => $block);
        if (isset($index)) {
            $extras['INDEX'] = $index;
        }
        $this->runPlugins($foreach, $extras);

        $this->pushExpression($foreach);
        $this->finishWithAlternative($isColon);

        return $foreach;
    }

    private function processFollowingBlock(array $finals = array()): Atom {
        $this->checkPhpdoc();
        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_OPEN_CURLY) {
            ++$this->id;
            $block = $this->processBlock(self::RELATED_BLOCK);
            $block->bracket = self::BRACKET;
            $this->popExpression(); // drop it

        } elseif ($this->tokens[$this->id + 1][0] === $this->phptokens::T_COLON) {
            $this->startSequence();
            $block = $this->sequence;
            ++$this->id; // skip :

            while (!in_array($this->tokens[$this->id + 1][0], $finals, \STRICT_COMPARISON)) {
                $this->processNext();
            }

            $this->endSequence();

        } elseif ($this->tokens[$this->id + 1][0] === $this->phptokens::T_SEMICOLON) {
            // void; One epxression block, with ;
            $this->startSequence();
            $block = $this->sequence;

            $void = $this->addAtomVoid();
            $this->addToSequence($void);
            $this->endSequence();
            ++$this->id;

        } elseif (in_array($this->tokens[$this->id + 1][0], array($this->phptokens::T_CLOSE_TAG,
                                                                  $this->phptokens::T_CLOSE_CURLY,
                                                                  $this->phptokens::T_CLOSE_PARENTHESIS,
                                                                  ),
                  \STRICT_COMPARISON)) {
            // Completely void (not even ;)
            $this->startSequence();
            $block = $this->sequence;

            $void = $this->addAtomVoid();
            $this->addToSequence($void);
            $this->endSequence();

        } else {
            // One expression only
            $this->startSequence();
            $block = $this->sequence;
            $current = $this->id;

            // This may include WHILE in the list of finals for do....while
            $finals = array_merge(array($this->phptokens::T_SEMICOLON,
                                        $this->phptokens::T_CLOSE_TAG,
                                        $this->phptokens::T_ELSE,
                                        $this->phptokens::T_END,
                                        $this->phptokens::T_CLOSE_CURLY,
                                        ), $finals);
            $specials = array($this->phptokens::T_IF,
                              $this->phptokens::T_FOREACH,
                              $this->phptokens::T_SWITCH,
                              $this->phptokens::T_FOR,
                              $this->phptokens::T_TRY,
                              $this->phptokens::T_WHILE,
                              );
            if (in_array($this->tokens[$this->id + 1][0], $specials, \STRICT_COMPARISON)) {
                $this->processNext();
            } else {
                do {
                    $expression = $this->processNext();
                } while (!in_array($this->tokens[$this->id + 1][0], $finals, \STRICT_COMPARISON));
                $this->popExpression();
                if ($this->tokens[$this->id + 1][0] !== $this->phptokens::T_CLOSE_TAG) {
                    $this->addToSequence($expression);
                }
                $this->runPlugins($block, array($expression));
            }

            $this->endSequence();

            if (!in_array($this->tokens[$current + 1][0], $specials, \STRICT_COMPARISON)) {
                ++$this->id;
            }
        }

        return $block;
    }

    private function processDo(): Atom {
        $current = $this->id;
        $dowhile = $this->addAtom('Dowhile', $this->id);

        $block = $this->processFollowingBlock(array($this->phptokens::T_WHILE));
        $this->addLink($dowhile, $block, 'BLOCK');

        $while = $this->tokens[$this->id + 1][1];
        ++$this->id; // Skip while
        ++$this->id; // Skip (

        while ($this->tokens[$this->id + 1][0] !== $this->phptokens::T_CLOSE_PARENTHESIS) {
            $condition = $this->processNext();
        }
        ++$this->id; // skip )
        $this->popExpression();
        $this->addLink($dowhile, $condition, 'CONDITION');

        $dowhile->fullcode = $this->tokens[$current][1] . ( $block->bracket === self::BRACKET ? self::FULLCODE_BLOCK : self::FULLCODE_SEQUENCE) . $while . '(' . $condition->fullcode . ')';

        $this->runPlugins($dowhile, array('CONDITION' => $condition,
                                          'BLOCK'     => $block));
        $this->pushExpression($dowhile);

        $this->checkExpression();

        return $dowhile;
    }

    private function processWhile(): Atom {
        $current = $this->id;
        $while = $this->addAtom('While', $current);

        ++$this->id; // Skip while

        while ($this->tokens[$this->id + 1][0] !== $this->phptokens::T_CLOSE_PARENTHESIS) {
            $condition = $this->processNext();
        }
        $this->popExpression();
        $this->addLink($while, $condition, 'CONDITION');

        ++$this->id; // Skip )
        $isColon = $this->whichSyntax($current, $this->id + 1);
        $block = $this->processFollowingBlock($isColon === self::ALTERNATIVE_SYNTAX ? array($this->phptokens::T_ENDWHILE) : array());
        $this->addLink($while, $block, 'BLOCK');

        if ($isColon === self::ALTERNATIVE_SYNTAX) {
            $fullcode = $this->tokens[$current][1] . ' (' . $condition->fullcode . ') : ' . self::FULLCODE_SEQUENCE . ' ' . $this->tokens[$this->id + 1][1];
        } else {
            $fullcode = $this->tokens[$current][1] . ' (' . $condition->fullcode . ')' . ($block->bracket === self::BRACKET ? self::FULLCODE_BLOCK : self::FULLCODE_SEQUENCE);
        }

        $while->fullcode    = $fullcode;
        $while->alternative = $isColon;

        $this->runPlugins($while, array('CONDITION' => $condition,
                                        'BLOCK'     => $block));

        $this->pushExpression($while);
        $this->finishWithAlternative($isColon);

        return $while;
    }

    private function processDeclare(): Atom {
        $current = $this->id;
        $declare = $this->addAtom('Declare', $current);
        $fullcode = array();

        ++$this->id; // Skip declare
        $strictTypes = false;
        do {
            ++$this->id; // Skip ( or ,
            $name = $this->processSingle('Name');

            ++$this->id; // Skip =
            $config = $this->processNext();
            $this->popExpression();

            $declaredefinition = $this->addAtom('Declaredefinition');
            $this->addLink($declaredefinition, $name, 'NAME');
            $this->addLink($declaredefinition, $config, 'VALUE');

            $strictTypes |= strtolower($name->code) === 'strict_types';

            $this->addLink($declare, $declaredefinition, 'DECLARE');
            $declaredefinition->fullcode = $name->fullcode . ' = ' . $config->fullcode;
            $fullcode[] = $declaredefinition->fullcode;

            ++$this->id; // Skip value
        } while ($this->tokens[$this->id][0] === $this->phptokens::T_COMMA);

        if ($strictTypes === true) {
            $fullcode = $this->tokens[$current][1] . ' (' . implode(', ', $fullcode) . ') ';

            ++$this->id;
            $isColon = false;
        } else {
            $isColon = $this->whichSyntax($current, $this->id + 1);

            $block = $this->processFollowingBlock($isColon === self::ALTERNATIVE_SYNTAX ? array($this->phptokens::T_ENDDECLARE) : array());
            $this->addLink($declare, $block, 'BLOCK');

            if ($isColon === self::ALTERNATIVE_SYNTAX) {
                $fullcode = $this->tokens[$current][1] . ' (' . implode(', ', $fullcode) . ') : ' . self::FULLCODE_SEQUENCE . ' ' . $this->tokens[$this->id + 1][1];
            } else {
                $fullcode = $this->tokens[$current][1] . ' (' . implode(', ', $fullcode) . ') ' . self::FULLCODE_BLOCK;
            }
        }

        $declare->fullcode    = $fullcode;
        $declare->alternative = $isColon ;

        $this->pushExpression($declare);
        $this->finishWithAlternative($isColon);

        return $declare;
    }

    private function processDefault(): Atom {
        $current = $this->id;
        $default = $this->addAtom('Default', $current);

        if  (in_array($this->tokens[$this->id + 1][0], array($this->phptokens::T_COLON,
                                                             $this->phptokens::T_SEMICOLON,
                                                             ),
            \STRICT_COMPARISON)) {
            ++$this->id; // Skip :
        }

        $default->fullcode = $this->tokens[$current][1] . ' : ' . self::FULLCODE_SEQUENCE;

        if (in_array($this->tokens[$this->id + 1][0], array($this->phptokens::T_CLOSE_CURLY,
                                                            $this->phptokens::T_CASE,
                                                            $this->phptokens::T_DEFAULT,
                                                            $this->phptokens::T_ENDSWITCH))) {
            $this->cases->add(array($default, null));

            return $default ;
        }

        $this->startSequence();
        while (!in_array($this->tokens[$this->id + 1][0], array($this->phptokens::T_CLOSE_CURLY,
                                                                $this->phptokens::T_CASE,
                                                                $this->phptokens::T_DEFAULT,
                                                                $this->phptokens::T_ENDSWITCH),
                \STRICT_COMPARISON)) {
            $this->processNext();
        }
        $code = $this->sequence;
        $this->endSequence();

        foreach($this->cases->getAll() as $aCase) {
            $this->addLink($aCase[0], $code, 'CODE');

            if ($aCase[0]->atom === 'Default') {
                $this->runPlugins($aCase[0], array('CODE' => $code));
            } else {
                $this->runPlugins($aCase[0], array('CASE' => $aCase[1],
                                                   'CODE' => $code));
            }
        }

        $this->addLink($default, $code, 'CODE');
        $this->runPlugins($default, array('CODE' => $code));

        return $default;
    }

    private function processCase(): Atom {
        $current = $this->id;
        $case = $this->addAtom('Case', $current);

        $this->contexts->nestContext(Context::CONTEXT_NOSEQUENCE);
        while (!in_array($this->tokens[$this->id + 1][0], array($this->phptokens::T_COLON,
                                                                $this->phptokens::T_SEMICOLON,
                                                                $this->phptokens::T_CLOSE_TAG,
                                                                ),
                \STRICT_COMPARISON)) {
            $item = $this->processNext();
        }
        $this->contexts->exitContext(Context::CONTEXT_NOSEQUENCE);

        $this->popExpression();
        $this->addLink($case, $item, 'CASE');

        if  (in_array($this->tokens[$this->id + 1][0], array($this->phptokens::T_COLON,
                                                             $this->phptokens::T_SEMICOLON,
                                                             ),
                \STRICT_COMPARISON)) {
            ++$this->id; // Skip :
        }

        $case->fullcode = $this->tokens[$current][1] . ' ' . $item->fullcode . ' : ' . self::FULLCODE_SEQUENCE . ' ';

        if (in_array($this->tokens[$this->id + 1][0], array($this->phptokens::T_CLOSE_CURLY,
                                                            $this->phptokens::T_CASE,
                                                            $this->phptokens::T_DEFAULT,
                                                            $this->phptokens::T_ENDSWITCH))) {
            $this->cases->add(array($case, $item));

            return $case;
        }

        $this->startSequence();
        while (!in_array($this->tokens[$this->id + 1][0], array($this->phptokens::T_CLOSE_CURLY,
                                                                $this->phptokens::T_CASE,
                                                                $this->phptokens::T_DEFAULT,
                                                                $this->phptokens::T_ENDSWITCH),
                \STRICT_COMPARISON)) {
            $this->processNext();
        }

        $code = $this->sequence;
        $this->endSequence();

        foreach($this->cases->getAll() as $aCase) {
            $this->addLink($aCase[0], $code, 'CODE');

            if ($aCase[0]->atom === 'Default') {
                $this->runPlugins($aCase[0], array( 'CODE' => $code));
            } else {
                $this->runPlugins($aCase[0], array('CASE' => $aCase[1],
                                                   'CODE' => $code));
            }
        }

        $this->addLink($case, $code, 'CODE');

        $this->runPlugins($case, array( 'CASE' => $item,
                                        'CODE' => $code));

        return $case;
    }

    private function processSwitch(): Atom {
        $current = $this->id;
        $switch = $this->addAtom('Switch', $current);
        ++$this->id; // Skip (
        $this->cases->push();

        do {
            $name = $this->processNext();
        } while ($this->tokens[$this->id + 1][0] !== $this->phptokens::T_CLOSE_PARENTHESIS);
        $this->popExpression();
        $this->addLink($switch, $name, 'CONDITION');

        $cases = $this->addAtom('Sequence', $current);
        $cases->code     = self::FULLCODE_SEQUENCE;
        $cases->fullcode = self::FULLCODE_SEQUENCE;
        $cases->bracket  = self::BRACKET;

        $this->addLink($switch, $cases, 'CASES');
        $extraCases = array();
        ++$this->id;

        $isColon = $this->whichSyntax($current, $this->id + 1);

        $rank = -1;
        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_CLOSE_PARENTHESIS) {
            $void = $this->addAtomVoid();
            $this->addLink($cases, $void, 'EXPRESSION');
            $void->rank = $rank;
            $extraCases[] = $void;

            ++$this->id;
        } else {
            if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_OPEN_CURLY) {
                ++$this->id;
                $finals = array($this->phptokens::T_CLOSE_CURLY);
            } else {
                ++$this->id; // skip :
                $finals = array($this->phptokens::T_ENDSWITCH);
            }
            while (!in_array($this->tokens[$this->id + 1][0], $finals, \STRICT_COMPARISON)) {
                $case = $this->processNext();

                $this->popExpression();
                $this->addLink($cases, $case, 'EXPRESSION');
                $case->rank = ++$rank;
                $extraCases[] = $case;
            }
        }
        ++$this->id;
        $cases->count = $rank + 1;

        if ($isColon === self::ALTERNATIVE_SYNTAX) {
            $fullcode = $this->tokens[$current][1] . ' (' . $name->fullcode . ') :' . self::FULLCODE_SEQUENCE . ' ' . $this->tokens[$this->id][1];
        } else {
            $fullcode = $this->tokens[$current][1] . ' (' . $name->fullcode . ')' . self::FULLCODE_BLOCK;
        }

        $switch->fullcode    = $fullcode;
        $switch->alternative = $isColon;

        $this->runPlugins($cases, $extraCases);

        $this->runPlugins($switch, array('CONDITION' => $name,
                                         'CASES'     => $cases, ));

        $this->pushExpression($switch);
        $this->finishWithAlternative($isColon);

        $this->cases->pop();

        return $switch;
    }

    private function processIfthen(): Atom {
        $current = $this->id;
        $ifthen = $this->addAtom('Ifthen', $current);
        ++$this->id; // Skip (

        do {
            $condition = $this->processNext();
        } while ($this->tokens[$this->id + 1][0] !== $this->phptokens::T_CLOSE_PARENTHESIS);

        $this->popExpression();
        $this->addLink($ifthen, $condition, 'CONDITION');
        $extras = array('CONDITION' => $condition);

        ++$this->id; // Skip )
        $isInitialIf = $this->tokens[$current][0] === $this->phptokens::T_IF;
        $isColon = $this->whichSyntax($current, $this->id + 1);

        $then = $this->processFollowingBlock(array($this->phptokens::T_ENDIF,
                                                   $this->phptokens::T_ELSE,
                                                   $this->phptokens::T_ELSEIF,
                                                   ));
        $this->addLink($ifthen, $then, 'THEN');
        $extras['THEN'] = $then;

        $this->checkPhpdoc();
        // Managing else case
        if (in_array($this->tokens[$this->id][0], array($this->phptokens::T_END,
                                                        $this->phptokens::T_CLOSE_TAG),
            \STRICT_COMPARISON)) {
            $elseFullcode = '';
            // No else, end of a script
            --$this->id;
            // Back up one unit to allow later processing for sequence
        } elseif ($this->tokens[$this->id + 1][0] === $this->phptokens::T_ELSEIF){
            ++$this->id;

            $elseif = $this->processIfthen();
            $this->addLink($ifthen, $elseif, 'ELSE');
            $extras['ELSE'] = $elseif;

            $elseFullcode = $elseif->fullcode;

        } elseif ($this->tokens[$this->id + 1][0] === $this->phptokens::T_ELSE){
            $elseFullcode = $this->tokens[$this->id + 1][1];
            ++$this->id; // Skip else

            $else = $this->processFollowingBlock(array($this->phptokens::T_ENDIF));
            $this->addLink($ifthen, $else, 'ELSE');
            $extras['ELSE'] = $else;

            if ($isColon === self::ALTERNATIVE_SYNTAX) {
                $elseFullcode .= ' :';
            }
            $elseFullcode .= $else->fullcode;
        } else {
            $elseFullcode = '';
        }

        if ($isInitialIf === true && $isColon === self::ALTERNATIVE_SYNTAX) {
            if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_SEMICOLON) {
                ++$this->id; // skip ;
            }
            ++$this->id; // skip ;
        }

        if ($isColon === self::ALTERNATIVE_SYNTAX) {
            $fullcode = $this->tokens[$current][1] . '(' . $condition->fullcode . ') : ' . $then->fullcode . $elseFullcode . ($isInitialIf === true ? ' endif' : '');
        } else {
            $fullcode = $this->tokens[$current][1] . '(' . $condition->fullcode . ')' . $then->fullcode . $elseFullcode;
        }

        $ifthen->fullcode    = $fullcode;
        $ifthen->alternative = $isColon;

        $this->runPlugins($ifthen, $extras);

        if ($this->tokens[$current][0] === $this->phptokens::T_IF) {
            if ($this->tokens[$this->id][0] === $this->phptokens::T_ENDIF) {
                --$this->id; // otherwise, ifthen : endif doesn't end on endif.
            }
            $this->pushExpression($ifthen);
            $this->finishWithAlternative($isColon);
        }

        return $ifthen;
    }

    private function checkPhpdoc(): void {
        while($this->tokens[$this->id + 1][0] === $this->phptokens::T_DOC_COMMENT){
            ++$this->id;
            $this->processPhpdoc();
        }
    }

    private function processParenthesis(): Atom {
        $current = $this->id;
        $parenthese = $this->addAtom('Parenthesis', $current);

        while ($this->tokens[$this->id + 1][0] !== $this->phptokens::T_CLOSE_PARENTHESIS) {
            $code = $this->processNext();
        }

        $this->popExpression();
        $this->addLink($parenthese, $code, 'CODE');

        $parenthese->fullcode    = '(' . $code->fullcode . ')';
        $parenthese->noDelimiter = $code->noDelimiter;
        $this->runPlugins($parenthese, array('CODE' => $code));

        $this->pushExpression($parenthese);
        ++$this->id; // Skipping the )

        if ( !$this->contexts->isContext(Context::CONTEXT_NOSEQUENCE) && $this->tokens[$this->id + 1][0] === $this->phptokens::T_CLOSE_TAG) {
            $this->processSemicolon();
        } else {
            $parenthese = $this->processFCOA($parenthese);
        }

        return $parenthese;
    }

    private function processExit(): Atom {
        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_OPEN_PARENTHESIS) {
            $current = $this->id;

            ++$this->id;

            $functioncall = $this->processArguments('Exit',
                                                    array($this->phptokens::T_SEMICOLON,
                                                          $this->phptokens::T_CLOSE_TAG,
                                                          $this->phptokens::T_CLOSE_PARENTHESIS,
                                                          $this->phptokens::T_CLOSE_BRACKET,
                                                          $this->phptokens::T_CLOSE_CURLY,
                                                          $this->phptokens::T_COLON,
                                                          $this->phptokens::T_END,
                                                          ));
            $argumentsFullcode = $functioncall->fullcode;
            $argumentsFullcode = "($argumentsFullcode)";

            $functioncall->code       = $this->tokens[$current][1];
            $functioncall->fullcode   = $this->tokens[$current][1] . $argumentsFullcode;
            $functioncall->fullnspath = '\\' . mb_strtolower($this->tokens[$current][1]);
            $this->pushExpression($functioncall);
            $this->runPlugins($functioncall);

            $this->checkExpression();

            return $functioncall;
        } else {
            $functioncall = $this->addAtom('Exit', $this->id);

            $functioncall->fullcode   = $this->tokens[$this->id][1] . ' ';
            $functioncall->count      = 0;
            $functioncall->fullnspath = '\\' . mb_strtolower($functioncall->code);

            $void = $this->addAtomVoid();
            $void->rank = 0;

            $this->addLink($functioncall, $void, 'ARGUMENT');

            if ( !$this->contexts->isContext(Context::CONTEXT_NOSEQUENCE) &&
                 in_array($this->tokens[$this->id + 1][0],
                         array($this->phptokens::T_CLOSE_TAG,
                               $this->phptokens::T_COMMA,
                              ), \STRICT_COMPARISON)
                ) {
                $this->processSemicolon();
            }

            $this->pushExpression($functioncall);
            $this->checkExpression();

            return $functioncall;
        }
    }

    private function processArrayLiteral(): Atom {
        $current = $this->id;

        $argumentsList = array();
        if ($this->tokens[$current][0] === $this->phptokens::T_ARRAY) {
            ++$this->id; // Skipping the name, set on (
            $array = $this->processArguments('Arrayliteral', array(), $argumentsList);
            $argumentsFullcode = $array->fullcode;
            $array->token    = 'T_ARRAY';
            $array->fullcode = $this->tokens[$current][1] . '(' . $argumentsFullcode . ')';
        } else {
            $bracket = 1;
            $id = $this->id;
            while($bracket > 0) {
                ++$id;
                if ($this->tokens[$id][0] === $this->phptokens::T_CLOSE_BRACKET) {
                    --$bracket;
                } elseif ($this->tokens[$id][0] === $this->phptokens::T_OPEN_BRACKET) {
                    ++$bracket;
                }
            }

            if ($this->tokens[$id + 1][0] === $this->phptokens::T_EQUAL) {
                $array = $this->processArguments('List', array($this->phptokens::T_CLOSE_BRACKET), $argumentsList);
                $argumentsFullcode = $array->fullcode;

                // This is a T_LIST !
                $array->token      = 'T_OPEN_BRACKET';
                $array->fullnspath = '\list';
                $array->fullcode   = "[$argumentsFullcode]";
            } else {
                $array = $this->processArguments('Arrayliteral', array($this->phptokens::T_CLOSE_BRACKET), $argumentsList);
                $argumentsFullcode = $array->fullcode;

                $array->token     = 'T_OPEN_BRACKET';
                $array->fullcode  = "[$argumentsFullcode]";
            }
        }

        $array->code      = $this->tokens[$current][1];
        $this->runPlugins($array, $argumentsList);

        $this->pushExpression($array);

        if ( !$this->contexts->isContext(Context::CONTEXT_NOSEQUENCE) && $this->tokens[$this->id + 1][0] === $this->phptokens::T_CLOSE_TAG) {
            $this->processSemicolon();
        } else {
            $array = $this->processFCOA($array);
        }

        return $array;
    }

    private function processArray(): Atom {
        return $this->processString();
    }

    private function processTernary(): Atom {
        $current = $this->id;
        $condition = $this->popExpression();
        $ternary = $this->addAtom('Ternary', $current);

        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_STRING &&
            $this->tokens[$this->id + 2][0] === $this->phptokens::T_COLON) {
            if (in_array(mb_strtolower($this->tokens[$this->id + 1][1]), array('true', 'false'), \STRICT_COMPARISON)) {
                ++$this->id;
                $then = $this->processSingle('Boolean');
                $this->runPlugins($then);
            } elseif (mb_strtolower($this->tokens[$this->id + 1][1]) === 'null') {
                ++$this->id;
                $then = $this->processSingle('Null');
                $this->runPlugins($then);
            } else {
                $then = $this->processNextAsIdentifier();
            }
        } else {
            $this->contexts->nestContext(Context::CONTEXT_NOSEQUENCE);
            if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_COLON) {
                $then = $this->addAtomVoid();
            } else {
                do {
                    $then = $this->processNext();
                } while ($this->tokens[$this->id + 1][0] !== $this->phptokens::T_COLON);
            }

            $this->contexts->exitContext(Context::CONTEXT_NOSEQUENCE);
            $this->popExpression();
        }

        ++$this->id; // Skip colon

        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_STRING &&
            $this->tokens[$this->id + 2][0] === $this->phptokens::T_COLON) {
            if (in_array(mb_strtolower($this->tokens[$this->id + 1][1]), array('true', 'false'), \STRICT_COMPARISON)) {
                ++$this->id;
                $else = $this->processSingle('Boolean');
                $this->runPlugins($else);
            } elseif (mb_strtolower($this->tokens[$this->id + 1][1]) === 'null') {
                ++$this->id;
                $else = $this->processSingle('Null');
                $this->runPlugins($else);
            } else {
                $else = $this->processNextAsIdentifier();
            }
        } else {
            $finals = $this->precedence->get($this->tokens[$this->id][0]);
            $finals[] = $this->phptokens::T_COLON; // Added from nested Ternary
            $finals[] = $this->phptokens::T_CLOSE_TAG;

            $this->contexts->nestContext(Context::CONTEXT_NOSEQUENCE);
            $this->contexts->toggleContext(Context::CONTEXT_NOSEQUENCE);
            do {
                $else = $this->processNext();
            } while (!in_array($this->tokens[$this->id + 1][0], $finals, \STRICT_COMPARISON) );
            $this->contexts->exitContext(Context::CONTEXT_NOSEQUENCE);

            $this->popExpression();
        }

        if ($then->isA(array('Identifier', 'Nsname'))) {
            $this->calls->addCall('const', $then->fullnspath, $then);
        }
        $this->addLink($ternary, $condition, 'CONDITION');
        $this->addLink($ternary, $then, 'THEN');
        $this->addLink($ternary, $else, 'ELSE');

        $ternary->fullcode = $condition->fullcode . ' ?' . ($then->atom === 'Void' ? '' : ' ' . $then->fullcode . ' ' ) . ': ' . $else->fullcode;
        $this->runPlugins($ternary, array('CONDITION' => $condition,
                                          'THEN'      => $then,
                                          'ELSE'      => $else,
                                          ));

        $this->pushExpression($ternary);

        $this->checkExpression();

        return $ternary;
    }

    //////////////////////////////////////////////////////
    /// processing single tokens
    //////////////////////////////////////////////////////
    private function processSingle(string $atomName): Atom {
        $atom = $this->addAtom($atomName, $this->id);
        if (strlen($this->tokens[$this->id][1]) > 100000) {
            $this->tokens[$this->id][1] = substr($this->tokens[$this->id][1], 0, 100000) . PHP_EOL . '[.... 100000 / ' . strlen($this->tokens[$this->id][1]) . ']' . PHP_EOL;
        }
        $atom->fullcode = $this->tokens[$this->id][1];

        if ($atomName === 'Phpvariable' && in_array($atom->code, array('$GLOBALS', '$_SERVER', '$_REQUEST', '$_POST', '$_GET', '$_FILES', '$_ENV', '$_COOKIE', '$_SESSION'), \STRICT_COMPARISON)) {
            $this->makeGlobal($atom);
            $this->calls->addGlobal($this->theGlobals[$atom->code]->id, $atom->id);
        } elseif (!in_array($atomName, array('Parametername', 'Parameter', 'Staticpropertyname', 'Propertydefinition', 'Globaldefinition', 'Staticdefinition', 'This'), \STRICT_COMPARISON) &&
            $this->tokens[$this->id][0] === $this->phptokens::T_VARIABLE) {
            if (isset($this->currentVariables[$atom->code])) {
                $this->addLink($this->currentVariables[$atom->code], $atom, 'DEFINITION');
            } else {
                $definition = $this->addAtom('Variabledefinition');
                $definition->code = $atom->code;
                $definition->fullcode = $atom->fullcode;
                $this->addLink($this->currentMethod[count($this->currentMethod) - 1], $definition, 'DEFINITION');
                $this->currentVariables[$atom->code] = $definition;

                $this->addLink($definition, $atom, 'DEFINITION');

                if (!$this->contexts->isContext(Context::CONTEXT_FUNCTION)) {
                    $this->makeGlobal($definition);
                    $this->calls->addGlobal($this->theGlobals[$definition->code]->id, $definition->id);
                }
            }
        }

        return $atom;
    }

    private function processInlinehtml(): Atom {
        $inlineHtml = $this->processSingle('Inlinehtml');
        return $inlineHtml;
    }

    private function processNamespaceBlock(): Atom {
        $this->startSequence();

        while (!in_array($this->tokens[$this->id + 1][0], array($this->phptokens::T_CLOSE_TAG,
                                                                $this->phptokens::T_NAMESPACE,
                                                                $this->phptokens::T_END,
                                                                ),
                \STRICT_COMPARISON)) {
            $this->processNext();

            if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_NAMESPACE &&
                $this->tokens[$this->id + 2][0] === $this->phptokens::T_NS_SEPARATOR) {
                $this->processNext();
            }
        }
        $block = $this->sequence;
        $this->endSequence();

        $block->code     = ' ';
        $block->fullcode = ' ' . self::FULLCODE_SEQUENCE . ' ';
        $block->token    = $this->getToken($this->tokens[$this->id][0]);

        return $block;
    }

    private function processNamespace(): Atom {
        $current = $this->id;

        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_NS_SEPARATOR) {
            $nsname = $this->processOneNsname();

            $this->getFullnspath($nsname, 'class', $nsname);
            $this->pushExpression($nsname);

            return $this->processFCOA($nsname);
        }

        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_OPEN_CURLY) {
            $name = $this->addAtomVoid();
        } else {
            $name = $this->processOneNsname();
        }

        $namespace = $this->addAtom('Namespace', $current);
        $this->makePhpdoc($namespace);
        $this->addLink($namespace, $name, 'NAME');
        $this->setNamespace($name);

        // Here, we make sure namespace is encompassing the next elements.
        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_SEMICOLON) {
            // Process block

            ++$this->id; // Skip ; to start actual sequence
            if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_END) {
                $void = $this->addAtomVoid();
                $block = $this->addAtom('Sequence', $this->id);
                $block->code       = '{}';
                $block->fullcode   = self::FULLCODE_BLOCK;
                $block->bracket    = self::NOT_BRACKET;

                $this->addLink($block, $void, 'EXPRESSION');
            } else {
                $block = $this->processNamespaceBlock();
            }
            $this->addLink($namespace, $block, 'BLOCK');
            $this->addToSequence($namespace);
            $block = ';';
        } else {
            // Process block
            $block = $this->processFollowingBlock(array($this->phptokens::T_CLOSE_CURLY));
            $this->addLink($namespace, $block, 'BLOCK');

            $this->addToSequence($namespace);

            $block = self::FULLCODE_BLOCK;
        }
        $this->setNamespace(self::NO_NAMESPACE);

        $namespace->fullcode   = $this->tokens[$current][1] . ' ' . $name->fullcode . $block;
        $namespace->fullnspath = $name->atom === 'Void' ? '\\' : $name->fullnspath;

        return $namespace;
    }

    private function processAlias(string $useType): Atom {
        $current = $this->id;
        $as = $this->addAtom('As', $current);

        $left = $this->popExpression();
        $this->addLink($as, $left, 'NAME');

        $right = $this->processNextAsIdentifier(self::WITHOUT_FULLNSPATH);
        $right->fullnspath = '\\' . mb_strtolower($right->code);
        $this->addLink($as, $right, 'AS');

        $as->fullcode = $left->fullcode . ' ' . $this->tokens[$this->id - 1][1] . ' ' . $right->fullcode;

        $this->addNamespaceUse($left, $as, $useType, $as);

        return $as;
    }

    private function processAsTrait(): Atom {
        $current = $this->id;
        $as = $this->addAtom('As', $current);

        // special case for use t, t2 { as as yes; }
        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_AS) {
            $left = $this->processNextAsIdentifier();
        } else {
            $left = $this->popExpression();
        }

        $this->getFullnspath($left, 'staticmethod', $left);
        $this->calls->addCall('staticmethod', $left->fullnspath, $left);

        $this->addLink($as, $left, 'NAME');
        $fullcode = array($left->fullcode, $this->tokens[$current][1]);

        if (in_array($this->tokens[$this->id + 1][0], array($this->phptokens::T_PRIVATE,
                                                            $this->phptokens::T_PUBLIC,
                                                            $this->phptokens::T_PROTECTED,
                                                            ),
                \STRICT_COMPARISON)) {
            $fullcode[] = $this->tokens[$this->id + 1][1];
            $as->visibility = strtolower($this->tokens[$this->id + 1][1]);
            ++$this->id;
        }

        if ($this->tokens[$this->id + 1][0] !== $this->phptokens::T_SEMICOLON) {
            $alias = $this->processNextAsIdentifier();
            $this->addLink($as, $alias, 'AS');
            $fullcode[] = $alias->fullcode;
        }

        $as->fullcode = implode(' ', $fullcode);

        $this->pushExpression($as);

        return $as;
    }

    private function processInsteadof(): Atom {
        $insteadof = $this->processOperator('Insteadof', $this->precedence->get($this->tokens[$this->id][0]), array('NAME', 'INSTEADOF'));
        while ($this->tokens[$this->id + 1][0] === $this->phptokens::T_COMMA) {
            ++$this->id;
            $nsname = $this->processOneNsname();

            $this->addLink($insteadof, $nsname, 'INSTEADOF');
        }
        return $insteadof;
    }

    private function processUse(): Atom {
        if (empty($this->currentClassTrait)) {
            return $this->processUseNamespace();
        } else {
            return $this->processUseTrait();
        }
    }

    private function processUseNamespace(): Atom {
        $current = $this->id;
        $use = $this->addAtom('Usenamespace', $current);
        $useType = 'class';

        $fullcode = array();

        // use const
        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_CONST) {
            ++$this->id;

            $const = $this->processSingle('Identifier');
            $this->addLink($use, $const, 'CONST');
            $useType = 'const';
        }

        // use function
        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_FUNCTION) {
            ++$this->id;

            $const = $this->processSingle('Identifier');
            $this->addLink($use, $const, 'FUNCTION');
            $useType = 'function';
        }

        --$this->id;
        do {
            $prefix = '';
            ++$this->id;
            $this->checkPhpdoc();
            $namespace = $this->processOneNsname(self::WITHOUT_FULLNSPATH);
            // Default case : use A\B
            $alias = $namespace;
            $origin = $namespace;

            if ($useType === 'const') {
                $fullnspath = $namespace->fullcode;
            } else {
                $fullnspath = mb_strtolower($namespace->fullcode);
            }
            if ($fullnspath[0] !== '\\') {
                list($prefix, ) = explode('\\', $fullnspath);
                $fullnspath = "\\$fullnspath";
            }

            $this->calls->addCall('class', $fullnspath, $namespace);

            if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_AS) {
                // use A\B as C
                ++$this->id;

                $this->pushExpression($namespace);
                $as = $this->processAlias($useType);
                $as->fullnspath = makeFullNsPath($namespace->fullcode, $useType === 'const');
                $fullcode[] = $as->fullcode;
                $as->alias = mb_strtolower(substr($as->fullcode, strrpos($as->fullcode, ' as ') + 4));

                $alias = $this->addNamespaceUse($origin, $as, $useType, $as);

                if (($use2 = $this->uses->get('class', $prefix)) instanceof Atom) {
                    $this->addLink($as, $use2, 'DEFINITION');
                }
                $this->addLink($use, $as, 'USE');

                $namespace = $as;
            } elseif ($this->tokens[$this->id + 1][0] === $this->phptokens::T_NS_SEPARATOR) {
                //use A\B\ {}
                $this->addLink($use, $namespace, 'GROUPUSE');
                $prefix = makeFullNsPath($namespace->fullcode);
                if ($prefix[0] !== '\\') {
                    $prefix = "\\$prefix";
                }
                $prefix .= '\\';

                ++$this->id; // Skip \

                $useTypeGeneric = $useType;
                $useTypeAtom = 0;
                do {
                    ++$this->id; // Skip {

                    $useType = $useTypeGeneric;
                    $useTypeAtom = 0;
                    if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_CONST) {
                        // use const
                        ++$this->id;

                        $useTypeAtom = $this->processSingle('Identifier');
                        $useType = 'const';
                    }

                    if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_FUNCTION) {
                        // use function
                        ++$this->id;

                        $useTypeAtom = $this->processSingle('Identifier');
                        $useType = 'function';
                    }

                    if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_CLOSE_CURLY) {
                        $use->trailing = self::TRAILING;
                    } else {
                        $nsname = $this->processOneNsname();

                        if ($useTypeAtom !== 0) {
                            $this->addLink($nsname, $useTypeAtom, strtoupper($useType));
                        }

                        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_AS) {
                            // A\B as C
                            ++$this->id;
                            $this->pushExpression($nsname);
                            $alias = $this->processAlias($useType);

                            if ($useType === 'const') {
                                $nsname->fullnspath = $prefix . $nsname->fullcode;
                                $nsname->origin     = $prefix . $nsname->fullcode;

                                $alias->fullnspath  = $nsname->fullnspath;
                                $alias->origin      = $nsname->origin;
                            } else {
                                $nsname->fullnspath = $prefix . mb_strtolower($nsname->fullcode);
                                $nsname->origin     = $prefix . mb_strtolower($nsname->fullcode);

                                $alias->fullnspath  = $nsname->fullnspath;
                                $alias->origin      = $nsname->origin;
                            }

                            $aliasName = $this->addNamespaceUse($nsname, $alias, $useType, $alias);
                            $alias->alias = $aliasName;
                            $this->addLink($use, $alias, 'USE');
                        } else {
                            $this->addLink($use, $nsname, 'USE');
                            if ($useType === 'const') {
                                $nsname->fullnspath = $prefix . $nsname->fullcode;
                                $nsname->origin     = $prefix . $nsname->fullcode;
                            } else {
                                $nsname->fullnspath = $prefix . mb_strtolower($nsname->fullcode);
                                $nsname->origin     = $prefix . mb_strtolower($nsname->fullcode);
                            }

                            $alias = $this->addNamespaceUse($nsname, $nsname, $useType, $nsname);

                            $nsname->alias = $alias;
                        }
                    }
                } while ( $this->tokens[$this->id + 1][0] === $this->phptokens::T_COMMA);

                $fullcode[] = $namespace->fullcode . self::FULLCODE_BLOCK;

                ++$this->id; // Skip }
            } else {
                $this->addLink($use, $namespace, 'USE');

                $fullnspath = makeFullNsPath($namespace->fullcode, $useType === 'const' ? \FNP_CONSTANT : \FNP_NOT_CONSTANT);
                $namespace->fullnspath = $fullnspath;
                $namespace->origin     = $fullnspath;

                if (($use2 = $this->uses->get('class', $prefix)) instanceof Atom) {
                    $this->addLink($namespace, $use2, 'DEFINITION');
                }

                $namespace->fullnspath = $fullnspath;

                $alias = $this->addNamespaceUse($alias, $alias, $useType, $namespace);

                $namespace->alias = $alias;
                $origin->alias = $alias;

                $fullcode[] = $namespace->fullcode;
            }
            // No Else. Default will be dealt with by while() condition

        } while ($this->tokens[$this->id + 1][0] === $this->phptokens::T_COMMA);

        $use->fullcode = $this->tokens[$current][1] . (isset($const) ? ' ' . $const->code : '') . ' ' . implode(', ', $fullcode);

        $this->pushExpression($use);

        $this->checkExpression();

        return $use;
    }

    private function processUseTrait(): Atom {
        $current = $this->id;
        $use = $this->addAtom('Usetrait', $current);

        $fullcode = array();

        --$this->id;
        do {
            ++$this->id;
            $namespace = $this->processOneNsname(self::WITHOUT_FULLNSPATH);

            $fullcode[] = $namespace->fullcode;

            $this->getFullnspath($namespace, 'class', $namespace);

            $this->calls->addCall('class', $namespace->fullnspath, $namespace);

            $this->addLink($use, $namespace, 'USE');
        } while ($this->tokens[$this->id + 1][0] === $this->phptokens::T_COMMA);
        $fullcode = implode(', ', $fullcode);

        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_OPEN_CURLY) {
            //use A\B{} // Group
            $block = $this->processUseBlock();

            $this->addLink($use, $block, 'BLOCK');
            $fullcode .= ' ' . $block->fullcode;

            // Several namespaces ? This has to be recalculated inside the block!!
            $namespace->fullnspath = makeFullNsPath($namespace->fullcode);

            // No ; at the end
            $this->processSemicolon();
        }

        $use->fullcode = $this->tokens[$current][1] . ' ' . $fullcode;
        $this->pushExpression($use);

        return $use;
    }

    private function processUseBlock(): Atom {
        $this->startSequence();

        // Case for {}
        ++$this->id;
        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_CLOSE_CURLY) {
            $void = $this->addAtomVoid();
            $this->addToSequence($void);

            ++$this->id; // skip }
        } else {
            $this->contexts->nestContext(Context::CONTEXT_NOSEQUENCE);
            do {
                $origin = $this->processOneNsname();
                if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_DOUBLE_COLON) {
                    ++$this->id; // skip ::
                    $method =  $this->processNextAsIdentifier();

                    $class = $origin;
                    $this->getFullnspath($class, 'class', $class);
                    $this->calls->addCall('class', $class->fullnspath, $class);

                    $origin = $this->addAtom('Staticmethod', $this->id);
                    $this->addLink($origin, $class, 'CLASS');
                    $this->addLink($origin, $method, 'METHOD');

                    $origin->fullcode = "{$class->fullcode}::{$method->fullcode}";
                }
                $this->pushExpression($origin);

                ++$this->id;
                // instead of ?
                if ($this->tokens[$this->id][0] === $this->phptokens::T_AS) {
                    $this->processAsTrait();
                } elseif ($this->tokens[$this->id][0] === $this->phptokens::T_INSTEADOF) {
                    $this->processInsteadof();
                } else {
                    throw new UnknownCase('Usetrait without as or insteadof : ' . $this->tokens[$this->id + 1][1]);
                }

                $this->processSemicolon(); // ;
                ++$this->id;
            } while ($this->tokens[$this->id + 1][0] !== $this->phptokens::T_CLOSE_CURLY);
            $this->contexts->exitContext(Context::CONTEXT_NOSEQUENCE);
            ++$this->id;
        }

        $this->checkExpression();

        $block = $this->sequence;
        $this->endSequence();

        $block->code     = '{}';
        $block->fullcode = static::FULLCODE_BLOCK;
        $block->bracket  = self::BRACKET;

        return $block;
    }

    private function processVariable(): Atom {
        if ($this->tokens[$this->id][1] === '$this') {
            $atom = 'This';
        } elseif (in_array($this->tokens[$this->id][1], $this->PHP_SUPERGLOBALS,
                \STRICT_COMPARISON)) {
            $atom = 'Phpvariable';
        } elseif ($this->tokens[$this->id + 1][0] === $this->phptokens::T_OBJECT_OPERATOR) {
            $atom = 'Variableobject';
        } elseif ($this->tokens[$this->id + 1][0] === $this->phptokens::T_OPEN_BRACKET) {
            $atom = 'Variablearray';
        } else {
            $atom = 'Variable';
        }
        $variable = $this->processSingle($atom);
        $this->pushExpression($variable);

        if ($atom === 'This' && ($class = end($this->currentClassTrait))) {
            $variable->fullnspath = $class->fullnspath;
            $this->calls->addCall('class', $class->fullnspath, $variable);
        }
        $this->runPlugins($variable);

        if (in_array($atom, array('Variable', 'Variableobject', 'Variablearray'), \STRICT_COMPARISON) &&
            $this->currentReturn !== null) {
            $this->addLink($this->currentReturn, $variable, 'RETURNED');
        }

        if ( !$this->contexts->isContext(Context::CONTEXT_NOSEQUENCE) && $this->tokens[$this->id + 1][0] === $this->phptokens::T_CLOSE_TAG) {
            $this->processSemicolon();
        } else {
             $variable = $this->processFCOA($variable);
        }

        return $variable;
    }

    private function processFCOA(Atom $nsname): Atom {
        // For functions and constants
        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_OPEN_PARENTHESIS) {
            return $this->processFunctioncall();
        }

        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_OPEN_BRACKET &&
            $this->tokens[$this->id + 2][0] === $this->phptokens::T_CLOSE_BRACKET) {
            return $this->processAppend();
        }

        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_OPEN_BRACKET ||
            $this->tokens[$this->id + 1][0] === $this->phptokens::T_OPEN_CURLY) {
            return $this->processBracket();
        }

        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_DOUBLE_COLON ||
            $this->tokens[$this->id + 1][0] === $this->phptokens::T_NS_SEPARATOR ||
            $this->tokens[$this->id - 1][0] === $this->phptokens::T_INSTANCEOF   ||
            $this->tokens[$this->id - 1][0] === $this->phptokens::T_AS) {
            return $nsname;
        }

        if ($nsname->atom === 'Newcall' &&
            !isset($nsname->count)) {
            // New call, but no () : it still requires an argument count
            $nsname->count = 0;
            return $nsname;
        }

        if ($nsname->isA(array('Nsname', 'Identifier'))) {
            $type = $this->contexts->isContext(Context::CONTEXT_NEW) ? 'class' : 'const';
            $this->getFullnspath($nsname, $type, $nsname);

            if ($type === 'const') {
                $this->calls->addCall('const', $nsname->fullnspath, $nsname);
            }
        }

        return $nsname;
    }

    private function processAppend(): Atom {
        $current = $this->id;
        $append = $this->addAtom('Arrayappend', $current);

        $left = $this->popExpression();
        $this->addLink($append, $left, 'APPEND');

        $append->fullcode = $left->fullcode . '[]';

        $this->pushExpression($append);
        $this->runPlugins($append, array('APPEND' => $left));

        ++$this->id;
        ++$this->id;

        if ( !$this->contexts->isContext(Context::CONTEXT_NOSEQUENCE) && $this->tokens[$this->id + 1][0] === $this->phptokens::T_CLOSE_TAG) {
            $this->processSemicolon();
        } else {
            // Mostly for arrays
            $append = $this->processFCOA($append);
        }

        return $append;
    }

    private function processInteger(): Atom {
        $integer = $this->addAtom('Integer', $this->id);

        $integer->fullcode = $this->tokens[$this->id][1];

        $this->pushExpression($integer);
        $this->runPlugins($integer);
        $this->checkExpression();

        return $integer;
    }

    private function processFloat(): Atom {
        $float = $this->addAtom('Float', $this->id);

        $float->fullcode = $this->tokens[$this->id][1];

        $this->pushExpression($float);
        // (int) is for loading into the database
        $this->runPlugins($float);

        $this->checkExpression();

        return $float;
    }

    private function processLiteral(): Atom {
        $literal = $this->processSingle('String');
        $this->pushExpression($literal);

        if ($this->tokens[$this->id][0] === $this->phptokens::T_CONSTANT_ENCAPSED_STRING) {
            $literal->delimiter   = $literal->code[0];
            if ($literal->delimiter === 'b' || $literal->delimiter === 'B') {
                $literal->binaryString = $literal->delimiter;
                $literal->delimiter    = $literal->code[1];
                $literal->noDelimiter  = substr($literal->code, 2, -1);
            } else {
                $literal->noDelimiter = substr($literal->code, 1, -1);
            }

            if (in_array(mb_strtolower($literal->noDelimiter),  array('parent', 'self', 'static'), \STRICT_COMPARISON)) {
                $this->getFullnspath($literal, 'class', $literal);

                $this->calls->addCall('class', $literal->fullnspath, $literal);
            } else {
                $this->calls->addNoDelimiterCall($literal);
            }
        } elseif ($this->tokens[$this->id][0] === $this->phptokens::T_NUM_STRING) {
            $literal->delimiter   = '';
            $literal->noDelimiter = $literal->code;

            $this->calls->addNoDelimiterCall($literal);
        } else {
            $literal->delimiter   = '';
            $literal->noDelimiter = '';
        }
        $this->runPlugins($literal);

        if (function_exists('mb_detect_encoding')) {
            $literal->encoding = mb_detect_encoding($literal->noDelimiter);
            if ($literal->encoding === 'UTF-8') {
                $blocks = unicode_blocks($literal->noDelimiter);
                $literal->block = array_keys($blocks)[0];
            }
            if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_OPEN_BRACKET) {
                $literal = $this->processBracket();
            }
        }

        if ( !$this->contexts->isContext(Context::CONTEXT_NOSEQUENCE) && $this->tokens[$this->id + 1][0] === $this->phptokens::T_CLOSE_TAG) {
            $this->processSemicolon();
        } else {
            $literal = $this->processFCOA($literal);
        }

        return $literal;
    }

    private function processMagicConstant(): Atom {
        $constant = $this->processSingle('Magicconstant');
        $this->pushExpression($constant);

        if (mb_strtolower($constant->fullcode) === '__dir__') {
            $path = dirname($this->filename);
            $constant->noDelimiter = $path === '/' ? '' : $path;
        } elseif (mb_strtolower($constant->fullcode) === '__file__') {
            $constant->noDelimiter = $this->filename;
        } elseif (mb_strtolower($constant->fullcode) === '__function__') {
            if (empty($this->currentFunction)) {
                $constant->noDelimiter = '';
            } else {
                $constant->noDelimiter = $this->currentFunction[count($this->currentFunction) - 1]->code;
            }
        } elseif (mb_strtolower($constant->fullcode) === '__class__') {
            if (empty($this->currentClassTrait)) {
                $constant->noDelimiter = '';
            } elseif ($this->currentClassTrait[count($this->currentClassTrait) - 1]->atom === 'Class') {
                $constant->noDelimiter = $this->currentClassTrait[count($this->currentClassTrait) - 1]->fullnspath;
            } else {
                $constant->noDelimiter = '';
            }
        } elseif (mb_strtolower($constant->fullcode) === '__trait__') {
            if (empty($this->currentClassTrait)) {
                $constant->noDelimiter = '';
            } elseif ($this->currentClassTrait[count($this->currentClassTrait) - 1]->atom === 'Trait') {
                $constant->noDelimiter = $this->currentClassTrait[count($this->currentClassTrait) - 1]->fullnspath;
            } else {
                $constant->noDelimiter = '';
            }
        } elseif (mb_strtolower($constant->fullcode) === '__line__') {
            $constant->noDelimiter = $this->tokens[$this->id][2];
        } elseif (mb_strtolower($constant->fullcode) === '__method__') {
            if (empty($this->currentClassTrait)) {
                if (count($this->currentMethod) === 1) {
                    $constant->noDelimiter = '';
                } else {
                    $constant->noDelimiter = $this->currentMethod[count($this->currentMethod) - 1]->code;
                }
            } elseif (count($this->currentMethod) === 1) {
                $constant->noDelimiter = '';
            } else {
                $constant->noDelimiter = $this->currentClassTrait[count($this->currentClassTrait) - 1]->fullnspath .
                                         '::' .
                                         $this->currentMethod[count($this->currentMethod) - 1]->code;
            }
        }

        $constant->intval  = (int) $constant->noDelimiter;
        $constant->boolean = (int) (bool) $constant->intval;
        $this->runPlugins($constant);

        $constant = $this->processFCOA($constant);

        return $constant;
    }

    //////////////////////////////////////////////////////
    /// processing single operators
    //////////////////////////////////////////////////////
    private function processSingleOperator(Atom $operator, array $finals = array(), string $link = '', string $separator = ''): Atom {
        assert($link !== '', 'Link cannot be empty');

        $current = $this->id;

        $this->contexts->nestContext(Context::CONTEXT_NOSEQUENCE);
        $this->contexts->toggleContext(Context::CONTEXT_NOSEQUENCE);
        // Do while, so that AT least one loop is done.
        do {
            $operand = $this->processNext();
        } while (!in_array($this->tokens[$this->id + 1][0], $finals, \STRICT_COMPARISON));
        $this->contexts->exitContext(Context::CONTEXT_NOSEQUENCE);

        $this->popExpression();
        $this->addLink($operator, $operand, $link);

        $operator->fullcode = $this->tokens[$current][1] . $separator . $operand->fullcode;

        $this->runPlugins($operator, array($link => $operand));
        $this->pushExpression($operator);

        $this->checkExpression();

        return $operand;
    }

    private function processCast(): Atom {
        $operator = $this->addAtom('Cast', $this->id);
        $this->processSingleOperator($operator, $this->precedence->get($this->tokens[$this->id][0]), 'CAST', ' ');
        $this->popExpression();
        if (strtolower($operator->code) === '(binary)') {
            $operator->binaryString = $operator->code[1];
        }
        $this->pushExpression($operator);

        return $operator;
    }

    private function processReturn(): Atom {
        $current = $this->id;
        // Case of return ;
        $return = $this->addAtom('Return', $current);

        if (in_array($this->tokens[$this->id + 1][0], array($this->phptokens::T_CLOSE_TAG,
                                                            $this->phptokens::T_SEMICOLON,
                                                            ),
                \STRICT_COMPARISON)) {


            $returnArg = $this->addAtomVoid();
            $this->addLink($return, $returnArg, 'RETURN');

            $return->fullcode = $this->tokens[$current][1] . ' ;';

            $this->runPlugins($return, array('RETURN' => $returnArg) );

            $this->pushExpression($return);
            if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_CLOSE_TAG) {
                $this->processSemicolon();
            }

            if (!empty($this->currentMethod) !== null) {
                $this->addLink($this->currentMethod[count($this->currentMethod) - 1], $returnArg, 'RETURNED');
            }

            return $return;
        }

        if (!empty($this->currentMethod)) {
            $this->currentReturn = $this->currentMethod[count($this->currentMethod) - 1];
        }

        $return = $this->addAtom('Return', $current);

        $this->contexts->nestContext(Context::CONTEXT_NOSEQUENCE);
        $this->contexts->toggleContext(Context::CONTEXT_NOSEQUENCE);
        $finals =  $this->precedence->get($this->tokens[$this->id][0]);
        do {
            $returned = $this->processNext();
        } while (!in_array($this->tokens[$this->id + 1][0], $finals, \STRICT_COMPARISON));
        $this->popExpression();

        $this->contexts->exitContext(Context::CONTEXT_NOSEQUENCE);

        $this->addLink($return, $returned, 'RETURN');

        $return->fullcode = $this->tokens[$current][1] . ' ' . $returned->fullcode;

        // raw variables are done
        if (!$returned->isA(array('Variable', 'Variableobject', 'Variablearray')) &&
            $this->currentReturn !== null) {
            $this->addLink($this->currentReturn, $returned, 'RETURNED');
       }
        $this->currentReturn = null;

       $this->runPlugins($return, array('RETURN' => $returned) );

       $this->pushExpression($return);
       $this->checkExpression();

        return $return;
    }

    private function processThrow(): Atom {
        $operator = $this->addAtom('Throw', $this->id);
        $this->processSingleOperator($operator, $this->precedence->get($this->tokens[$this->id][0]), 'THROW', ' ');
        $operator = $this->popExpression();
        $this->pushExpression($operator);

        $this->checkExpression();

        return $operator;
    }

    private function makeAttributes(Atom $node): void {
        foreach($this->attributes as $attribute) {
            $this->addLink($node, $attribute, 'ATTRIBUTE');
        }

        $this->attributes = array();
    }

    private function makePhpdoc(Atom $node): void {
        foreach($this->phpDocs as $phpdoc) {
            $this->addLink($node, $phpdoc, 'PHPDOC');
        }

        $this->phpDocs = array();
    }

    private function processYield(): Atom {
        if (in_array($this->tokens[$this->id + 1][0], array($this->phptokens::T_CLOSE_PARENTHESIS,
                                                            $this->phptokens::T_CLOSE_BRACKET,
                                                            $this->phptokens::T_COMMA,
                                                            $this->phptokens::T_SEMICOLON,
                                                            $this->phptokens::T_CLOSE_TAG,
                                   ),
                    \STRICT_COMPARISON)) {
            $current = $this->id;

            // Case of return ;
            $yieldArg = $this->addAtomVoid();
            $yield = $this->addAtom('Yield', $current);

            $this->addLink($yield, $yieldArg, 'YIELD');

            $yield->fullcode = $this->tokens[$current][1] . ' ;';

            $this->pushExpression($yield);
            $this->runPlugins($yield, array('YIELD' => $yieldArg) );

            if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_CLOSE_TAG) {
                $this->processSemicolon();
            }

            return $yield;
        } else {
            // => is actually a lower priority
            $finals = $this->precedence->get($this->tokens[$this->id][0]);
            $id = array_search($this->phptokens::T_DOUBLE_ARROW, $finals);
            unset($finals[$id]);
            $operator = $this->addAtom('Yield', $this->id);
            $operand = $this->processSingleOperator($operator, $finals, 'YIELD', ' ');

            return $operator;
        }
    }

    private function processYieldfrom(): Atom {
        $operator = $this->addAtom('Yieldfrom', $this->id);
        $yieldfrom = $this->processSingleOperator($operator, $this->precedence->get($this->tokens[$this->id][0]), 'YIELD', ' ');

        $this->checkExpression();

        return $operator;
    }

    private function processNot(): Atom {
        $finals = array_diff($this->precedence->get($this->tokens[$this->id][0]),
                             $this->assignations
                             );
        $operator = $this->addAtom('Not', $this->id);
        $this->processSingleOperator($operator, $finals, 'NOT');

        $this->checkExpression();

        return $operator;
    }

    private function processCurlyExpression(): Atom {
        ++$this->id;
        while ($this->tokens[$this->id + 1][0] !== $this->phptokens::T_CLOSE_CURLY) {
            $code = $this->processNext();
        }

        $this->popExpression();
        $block = $this->addAtom('Block', $this->id);
        $block->code     = '{}';
        $block->fullcode = '{' . $code->fullcode . '}';

        $this->addLink($block, $code, 'CODE');

        $this->runPlugins($block, array('CODE' => $code));

        ++$this->id; // Skip }

        return $block;
    }

    private function processDollar(): Atom {
        $this->contexts->nestContext(Context::CONTEXT_NOSEQUENCE);
        $this->contexts->toggleContext(Context::CONTEXT_NOSEQUENCE);

        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_OPEN_CURLY) {
            $current = $this->id;

            $variable = $this->addAtom('Variable', $current);

            ++$this->id;
            while ($this->tokens[$this->id + 1][0] !== $this->phptokens::T_CLOSE_CURLY) {
                $this->processNext();
            }

            // Skip }
            ++$this->id;

            $expression = $this->popExpression();
            $this->addLink($variable, $expression, 'NAME');

            $variable->fullcode = $this->tokens[$current][1] . '{' . $expression->fullcode . '}';
            $this->runPlugins($variable, array('NAME' => $expression));
            $this->pushExpression($variable);

            if ( !$this->contexts->isContext(Context::CONTEXT_NOSEQUENCE) && $this->tokens[$this->id + 1][0] === $this->phptokens::T_CLOSE_TAG) {
                $this->processSemicolon();
            } elseif (!in_array($this->tokens[$current - 1][0], array($this->phptokens::T_OBJECT_OPERATOR,
                                                                       $this->phptokens::T_DOUBLE_COLON,
                                                                       ),
                        \STRICT_COMPARISON)) {
                $variable = $this->processFCOA($variable);
            }
        } else {
            $operator = $this->addAtom('Variable', $this->id);
            $this->processSingleOperator($operator, $this->precedence->get($this->tokens[$this->id][0]), 'NAME');
            $variable = $this->popExpression();

            $this->pushExpression($variable);
        }

        $this->contexts->exitContext(Context::CONTEXT_NOSEQUENCE);
        $this->checkExpression();

        return $variable;
    }

    private function processClone(): Atom {
        $operator = $this->addAtom('Clone', $this->id);
        $this->processSingleOperator($operator, $this->precedence->get($this->tokens[$this->id][0]), 'CLONE', ' ' );
        $operatorId = $this->popExpression();
        $this->pushExpression($operatorId);

        return $operatorId;
    }

    private function processGoto(): Atom {
        $current = $this->id;

        $label = $this->processNextAsIdentifier(self::WITHOUT_FULLNSPATH);

        $goto = $this->addAtom('Goto', $current);
        $goto->fullcode  = $this->tokens[$current][1] . ' ' . $label->fullcode;

        $this->addLink($goto, $label, 'GOTO');

        if (empty($this->currentClassTrait)) {
            $class = '';
        } else {
            $class = end($this->currentClassTrait)->fullcode;
        }

        if (empty($this->currentFunction)) {
            $method = '';
        } else {
            $method = end($this->currentFunction)->fullnspath;
        }

        $this->runPlugins($goto, array('GOTO' => $label));
        $this->calls->addCall('goto', $class . '::' . $method . '..' . $this->tokens[$this->id][1], $goto);
        $this->pushExpression($goto);

        return $goto;
    }

    private function processNoscream(): Atom {
        $atom = $this->processNext();
        $atom->noscream = 1;
        $atom->fullcode = "@$atom->fullcode";

        return $atom;
    }

    private function processNew(): Atom {
        $current = $this->id;

        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_SL) {
            ++$this->id;
            $this->processBitshift();
        }

        $this->contexts->toggleContext(Context::CONTEXT_NEW);
        $noSequence = $this->contexts->isContext(Context::CONTEXT_NOSEQUENCE);
        if ($noSequence === false) {
            $this->contexts->toggleContext(Context::CONTEXT_NOSEQUENCE);
        }

        $operator = $this->addAtom('New', $current);
        $operator->fullcode = $this->tokens[$current][1];
        $this->processSingleOperator($operator, $this->precedence->get($this->tokens[$current][0]), 'NEW', ' ');

        $this->contexts->toggleContext(Context::CONTEXT_NEW);
        if ($noSequence === false) {
            $this->contexts->toggleContext(Context::CONTEXT_NOSEQUENCE);
        }

        $operatorId = $this->popExpression();
        $this->pushExpression($operatorId);

        $this->checkExpression();

        return $operatorId;
    }

    //////////////////////////////////////////////////////
    /// processing binary operators
    //////////////////////////////////////////////////////
    private function processSign(): Atom {
        $current = $this->id;
        $signExpression = $this->tokens[$this->id][1];
        $code = $signExpression . '1';
        while (in_array($this->tokens[$this->id + 1][0], array($this->phptokens::T_PLUS,
                                                               $this->phptokens::T_MINUS,
                                                              ),
                    \STRICT_COMPARISON)) {
            ++$this->id;
            $signExpression = $this->tokens[$this->id][1] . $signExpression;
            $code *= $this->tokens[$this->id][1] . '1';
        }

        if (($this->tokens[$this->id + 1][0] === $this->phptokens::T_LNUMBER ||
             $this->tokens[$this->id + 1][0] === $this->phptokens::T_DNUMBER) &&
             $this->tokens[$this->id + 2][0] !== $this->phptokens::T_POW) {
            $operand = $this->processNext();

            $operand->code     = $signExpression . $operand->code;
            $operand->fullcode = $signExpression . $operand->fullcode;
            $operand->token    = $this->getToken($this->tokens[$this->id][0]);
            $this->runPlugins($operand);

            return $operand;
        }

        $finals = $this->precedence->get($this->tokens[$this->id][0]);
        $finals[] = '-';
        $finals[] = '+';

        $noSequence = $this->contexts->isContext(Context::CONTEXT_NOSEQUENCE);
        if ($noSequence === false) {
            $this->contexts->toggleContext(Context::CONTEXT_NOSEQUENCE);
        }
        do {
            $this->processNext();
        } while (!in_array($this->tokens[$this->id + 1][0], $finals, \STRICT_COMPARISON));
        if ($noSequence === false) {
            $this->contexts->toggleContext(Context::CONTEXT_NOSEQUENCE);
        }
        $signed = $this->popExpression();
        $firstSigned = $signed;

        for($i = strlen($signExpression) - 1; $i >= 0; --$i) {
            $sign = $this->addAtom('Sign', $current);
            $this->addLink($sign, $signed, 'SIGN');

            $sign->code     = $signExpression[$i];
            $sign->fullcode = $signExpression[$i] . $signed->fullcode;

            $signed = $sign;
        }
        $this->runPlugins($sign, array('SIGN' => $firstSigned));

        $this->pushExpression($signed);

        $this->checkExpression();
        return $signed;
    }

    private function processAddition(): Atom {
        if (!$this->hasExpression() ||
            $this->tokens[$this->id - 1][0] === $this->phptokens::T_DOT
            ) {
            return $this->processSign();
        }

        $finals = $this->precedence->get($this->tokens[$this->id][0], Precedence::WITH_SELF);
        $finals = array_diff($finals, $this->assignations);
        $finals = array_unique($finals);

        return $this->processOperator('Addition', $finals, array('LEFT', 'RIGHT'));
    }

    private function processBreak(): Atom {
        $current = $this->id;
        $break = $this->addAtom($this->tokens[$this->id][0] === $this->phptokens::T_BREAK ? 'Break' : 'Continue', $current);

        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_LNUMBER) {
            $noSequence = $this->contexts->isContext(Context::CONTEXT_NOSEQUENCE);
            if ($noSequence === false) {
                $this->contexts->toggleContext(Context::CONTEXT_NOSEQUENCE);
            }

            ++$this->id;
            $breakLevel = $this->processInteger();
            $this->popExpression();

            if ($noSequence === false) {
                $this->contexts->toggleContext(Context::CONTEXT_NOSEQUENCE);
            }

        } elseif ($this->tokens[$this->id + 1][0] === $this->phptokens::T_OPEN_PARENTHESIS) {
            ++$this->id; // skip (
            $this->processNext();
            ++$this->id; // skip )

            $breakLevel = $this->popExpression();
        } elseif ($this->tokens[$this->id + 1][0] === $this->phptokens::T_CLOSE_TAG ||
                  $this->tokens[$this->id + 1][0] === $this->phptokens::T_SEMICOLON ) {
            $breakLevel = $this->addAtomVoid();
        } else {
            $this->processNext();

            $breakLevel = $this->popExpression();
        }

        $link = $this->tokens[$current][0] === $this->phptokens::T_BREAK ? 'BREAK' : 'CONTINUE';
        $this->addLink($break, $breakLevel, $link);
        $break->fullcode = $this->tokens[$current][1] . ( $breakLevel->atom !== 'Void' ? ' ' . $breakLevel->fullcode : '');

        $this->runPlugins($break, array($link => $breakLevel));
        $this->pushExpression($break);

        $this->checkExpression();

        return $break;
    }

    private function processDoubleColon(): Atom {
        $current = $this->id;

        $left = $this->popExpression();

        $this->contexts->nestContext(Context::CONTEXT_NEW);
        $this->contexts->nestContext(Context::CONTEXT_NOSEQUENCE);
        $this->contexts->toggleContext(Context::CONTEXT_NOSEQUENCE);
        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_OPEN_CURLY) {
            $right = $this->processCurlyExpression();
        } elseif ($this->tokens[$this->id + 1][0] === $this->phptokens::T_DOLLAR) {
            ++$this->id; // Skip ::
            $right = $this->processDollar();
            $this->popExpression();
        } elseif ($this->tokens[$this->id + 1][0] === $this->phptokens::T_CLASS) {
            if ($this->tokens[$this->id + 2][0] === $this->phptokens::T_OPEN_PARENTHESIS) {
                ++$this->id;
                $right = $this->processSingle('Name');
            } else {
                $right = $this->tokens[$this->id + 1][1];
                ++$this->id; // Skip ::
            }
        } elseif ($this->tokens[$this->id + 1][0] === $this->phptokens::T_VARIABLE) {
            ++$this->id;
            $right = $this->processSingle('Staticpropertyname');
        } else {
            $right = $this->processNextAsIdentifier(self::WITHOUT_FULLNSPATH);
        }

        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_OPEN_PARENTHESIS) {
            $this->pushExpression($right);
            $right = $this->processFunctioncall(self::WITHOUT_FULLNSPATH);
            $this->popExpression();
        }

        $this->contexts->exitContext(Context::CONTEXT_NEW);
        $this->contexts->exitContext(Context::CONTEXT_NOSEQUENCE);

        if (is_string($right) && mb_strtolower($right) === 'class') {
            $static = $this->addAtom('Staticclass', $current);
            $fullcode = "$left->fullcode::$right";
            if (!$left->isA(array('Functioncall', 'Methodcall', 'Staticmethodcall'))) {
                $this->getFullnspath($left, 'class', $left);
                $this->calls->addCall('class', $left->fullnspath, $left);
            }
            // We are not sending $left, as it has no impact
            $this->runPlugins($left);
            $this->runPlugins($static, array('CLASS' => $left));
            // This should actually be the value of any USE statement
            if (($use = $this->uses->get('class', mb_strtolower($left->fullcode))) instanceof Atom) {
                $noDelimiter = $use->fullcode;
                if (($length = strpos($noDelimiter, ' ')) !== false) {
                    $noDelimiter = substr($noDelimiter, 0, $length);
                }
                $static->noDelimiter = $noDelimiter;
            } else {
                $static->noDelimiter = $left->fullcode;
            }
        } elseif ($right->atom === 'Name') {
            $static = $this->addAtom('Staticconstant', $current);
            $this->addLink($static, $right, 'CONSTANT');
            $fullcode = "{$left->fullcode}::{$right->fullcode}";

            if (!$left->isA(array('Functioncall', 'Methodcall', 'Staticmethodcall'))) {
                $this->getFullnspath($left, 'class', $left);
                $this->calls->addCall('class', $left->fullnspath, $left);
            }
            $static->fullnspath = "{$left->fullnspath}::{$right->fullcode}";
            $static->aliased = self::NOT_ALIASED;
            $this->runPlugins($static, array('CLASS'    => $left,
                                             'CONSTANT' => $right));
        } elseif ($right->isA(array('Variable',
                                    'Array',
                                    'Arrayappend',
                                    'MagicConstant',
                                    'Concatenation',
                                    'Block',
                                    'Boolean',
                                    'Null',
                                    'Staticpropertyname',
                                    ))) {
            $static = $this->addAtom('Staticproperty', $current);

            if (!$left->isA(array('Functioncall', 'Methodcall', 'Staticmethodcall'))) {
                $this->getFullnspath($left, 'class', $left);
                $this->calls->addCall('class', $left->fullnspath, $left);
            }
            $this->addLink($static, $right, 'MEMBER');
            $fullcode = "{$left->fullcode}::{$right->fullcode}";
            $this->runPlugins($static, array('CLASS'  => $left,
                                             'MEMBER' => $right));
        } elseif ($right->atom === 'Methodcallname') {
            $static = $this->addAtom('Staticmethodcall', $current);
            $this->addLink($static, $right, 'METHOD');

            if (!$left->isA(array('Functioncall', 'Methodcall', 'Staticmethodcall'))) {
                $this->getFullnspath($left, 'class', $left);
                $this->calls->addCall('class', $left->fullnspath, $left);
            }
            $fullcode = "{$left->fullcode}::{$right->fullcode}";
            $this->runPlugins($static, array('CLASS'  => $left,
                                             'METHOD' => $right));
        } else {
            throw new LoadError('Unprocessed atom in static call (right) : ' . $right->atom . ':' . $this->filename . ':' . __LINE__);
        }

        $this->addLink($static, $left, 'CLASS');
        if ($static->atom  === 'Staticproperty'                                      &&
            in_array($left->token, array('T_STRING', 'T_STATIC'), \STRICT_COMPARISON) &&
            !empty($this->currentClassTrait)                                         &&
            !empty($this->currentClassTrait[count($this->currentClassTrait) - 1])    &&
            $left->fullnspath === $this->currentClassTrait[count($this->currentClassTrait) - 1]->fullnspath) {

            $name = ltrim($right->code, '$');
            if (!empty($name)) {
                array_collect_by($this->currentPropertiesCalls, $name, $static);
            }
        }

        $static->fullcode = $fullcode;

        if (!empty($left->fullnspath)){
            if ($static->isA(array('Staticmethodcall', 'Staticmethod'))) {
                $name = mb_strtolower($right->code);
                $this->calls->addCall('staticmethod',  "$left->fullnspath::$name", $static);
            } elseif ($static->atom === 'Staticconstant') {
                $this->calls->addCall('staticconstant',  "$left->fullnspath::$right->code", $static);
            } elseif ($static->atom === 'Staticproperty' && ($right->token === 'T_VARIABLE')) {
                $this->calls->addCall('staticproperty', "$left->fullnspath::$right->code", $static);
            }
        }

        $this->pushExpression($static);

        if ( !$this->contexts->isContext(Context::CONTEXT_NOSEQUENCE) && $this->tokens[$this->id + 1][0] === $this->phptokens::T_CLOSE_TAG) {
            $this->processSemicolon();
        } else {
            $static = $this->processFCOA($static);
        }

        return $static;
    }

    private function processOperator(string $atom, array $finals, array $links = array('LEFT', 'RIGHT')): Atom {
        $current = $this->id;
        $operator = $this->addAtom($atom, $current);

        $left = $this->popExpression();
        $this->addLink($operator, $left, $links[0]);

        $this->contexts->nestContext(Context::CONTEXT_NOSEQUENCE);
        $this->contexts->toggleContext(Context::CONTEXT_NOSEQUENCE);
        do {
            $right = $this->processNext();

            if (in_array($this->tokens[$this->id + 1][0], $this->assignations, \STRICT_COMPARISON)) {
                $right = $this->processNext();
            }
        } while (!in_array($this->tokens[$this->id + 1][0], $finals, \STRICT_COMPARISON) );

        $this->contexts->exitContext(Context::CONTEXT_NOSEQUENCE);
        $this->popExpression();

        $this->addLink($operator, $right, $links[1]);

        $operator->fullcode  = $left->fullcode . ' ' . $this->tokens[$current][1] . ' ' . $right->fullcode;

        $extras = array($links[0] => $left, $links[1] => $right);
        $this->runPlugins($operator, $extras);

        $this->pushExpression($operator);
        $this->checkExpression();

        return $operator;
    }

    private function processObjectOperator(): Atom {
        $current = $this->id;

        $left = $this->popExpression();

        $this->contexts->nestContext(Context::CONTEXT_NEW);
        $this->contexts->nestContext(Context::CONTEXT_NOSEQUENCE);
        $this->contexts->toggleContext(Context::CONTEXT_NOSEQUENCE);
        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_OPEN_CURLY) {
            $right = $this->processCurlyExpression();
        } elseif ($this->tokens[$this->id + 1][0] === $this->phptokens::T_VARIABLE) {
            ++$this->id;
            $right = $this->processSingle('Variable');
        } elseif ($this->tokens[$this->id + 1][0] === $this->phptokens::T_DOLLAR) {
            ++$this->id;
            $right = $this->processDollar();
            $this->popExpression();
        } else {
            $right = $this->processNextAsIdentifier(self::WITHOUT_FULLNSPATH);
        }

        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_OPEN_PARENTHESIS) {
            $this->pushExpression($right);
            $right = $this->processFunctioncall(self::WITHOUT_FULLNSPATH);
            $this->popExpression();
        }

        $this->contexts->exitContext(Context::CONTEXT_NEW);
        $this->contexts->exitContext(Context::CONTEXT_NOSEQUENCE);

        if ($right->isA(array('Variable',
                              'Array',
                              'Name',
                              'Concatenation',
                              'Arrayappend',
                              'Member',
                              'MagicConstant',
                              'Block',
                              'Boolean',
                              'Null',
                              ))) {
            $static = $this->addAtom('Member', $current);
            $links = 'MEMBER';
            $static->enclosing = self::NO_ENCLOSING;
        } elseif ($right->isA(array('Methodcallname', 'Methodcall'))) {
            $static = $this->addAtom('Methodcall', $current);
            $links = 'METHOD';
        } else {
            throw new LoadError('Unprocessed atom in object call (right) : ' . $right->atom . ':' . $this->filename . ':' . __LINE__);
        }

        $this->addLink($static, $left, 'OBJECT');
        $this->addLink($static, $right, $links);

        $static->fullcode  = $left->fullcode . '->' . $right->fullcode;

        if ($left->atom === 'This' ){
            if ($static->atom === 'Methodcall') {
                $this->calls->addCall('method', $left->fullnspath . '::' . mb_strtolower($right->code), $static);
            } elseif ($static->atom  === 'Member'   &&
                      $right->token  === 'T_STRING') {

                $this->calls->addCall('property', "{$left->fullnspath}::{$right->code}", $static);
                array_collect_by($this->currentPropertiesCalls, $right->code, $static);
            }
        }
        $this->runPlugins($static, array('OBJECT' => $left,
                                         $links   => $right,
                                         ));
        $this->pushExpression($static);

        if ( !$this->contexts->isContext(Context::CONTEXT_NOSEQUENCE) && $this->tokens[$this->id + 1][0] === $this->phptokens::T_CLOSE_TAG) {
            $this->processSemicolon();
        } else {
            $static = $this->processFCOA($static);
        }

        return $static;
    }

    private function processAssignation(): Atom {
        $finals = $this->precedence->get($this->tokens[$this->id][0]);
        $finals = array_merge($finals, $this->assignations);

        return $this->processOperator('Assignation', $finals);
    }

    private function processCoalesce(): Atom {
        return $this->processOperator('Coalesce', $this->precedence->get($this->tokens[$this->id][0], Precedence::WITH_SELF));
    }

    private function processEllipsis(): Atom {
        // Simply skipping the ...
        $finals = $this->precedence->get($this->phptokens::T_ELLIPSIS);
        while (!in_array($this->tokens[$this->id + 1][0], $finals, \STRICT_COMPARISON)) {
            $this->processNext();
        }

        $operand = $this->popExpression();
        $operand->fullcode  = '...' . $operand->fullcode;
        $operand->variadic  = self::VARIADIC;

        $this->pushExpression($operand);

        return $operand;
    }

    private function processAnd(): Atom {
        if ($this->hasExpression()) {
            return $this->processOperator('Logical', $this->precedence->get($this->tokens[$this->id][0]));
        }

        // Simply skipping the &
        $this->processNext();

        $operand = $this->popExpression();
        $operand->fullcode  = '&' . $operand->fullcode;
        $operand->reference = self::REFERENCE;

        $this->pushExpression($operand);

        return $operand;
    }

    private function processLogical(): Atom {
        return $this->processOperator('Logical', $this->precedence->get($this->tokens[$this->id][0]));
    }

    private function processMultiplication(): Atom {
        return $this->processOperator('Multiplication', $this->precedence->get($this->tokens[$this->id][0], Precedence::WITH_SELF));
    }

    private function processPower(): Atom {
        return $this->processOperator('Power', $this->precedence->get($this->tokens[$this->id][0], Precedence::WITH_SELF));
    }

    private function processComparison(): Atom {
        return $this->processOperator('Comparison', $this->precedence->get($this->tokens[$this->id][0]));
    }

    private function processDot(): Atom {
        $concatenation = $this->addAtom('Concatenation', $this->id);
        $fullcode      = array();
        $concat        = array();
        $noDelimiter   = '';
        $rank          = -1;

        $contains       = $this->popExpression();
        $contains->rank = ++$rank;
        $fullcode[]     = $contains->fullcode;
        $concat[]       = $contains;
        $noDelimiter   .= $contains->noDelimiter;
        $this->addLink($concatenation, $contains, 'CONCAT');

        $this->contexts->nestContext(Context::CONTEXT_NOSEQUENCE);
        $this->contexts->toggleContext(Context::CONTEXT_NOSEQUENCE);

        $finals = $this->precedence->get($this->tokens[$this->id][0]);
        $finals = array_diff($finals, array($this->phptokens::T_REQUIRE,
                                            $this->phptokens::T_REQUIRE_ONCE,
                                            $this->phptokens::T_INCLUDE,
                                            $this->phptokens::T_INCLUDE_ONCE,
                                            $this->phptokens::T_PRINT,
                                            $this->phptokens::T_ECHO,
                                            // This is for 'a' . -$y
                                            $this->phptokens::T_PLUS,
                                            $this->phptokens::T_MINUS,
                                            ));

        while (!in_array($this->tokens[$this->id + 1][0], $finals, \STRICT_COMPARISON)) {
            $contains = $this->processNext();

            if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_DOT) {
                $this->popExpression();
                $this->addLink($concatenation, $contains, 'CONCAT');
                $fullcode[]     = $contains->fullcode;
                $concat[]       = $contains;
                $noDelimiter   .= $contains->noDelimiter;
                $contains->rank = ++$rank;

                ++$this->id;
            }
        }

        $this->contexts->exitContext(Context::CONTEXT_NOSEQUENCE);

        $this->popExpression();
        $this->addLink($concatenation, $contains, 'CONCAT');
        $fullcode[]     = $contains->fullcode;
        $concat[]       = $contains;
        $noDelimiter   .= $contains->noDelimiter;
        $contains->rank = ++$rank;

        $concatenation->fullcode    = implode(' . ', $fullcode);
        $concatenation->noDelimiter = $noDelimiter;
        $concatenation->count       = $rank + 1;

        $this->pushExpression($concatenation);
        $this->runPlugins($concatenation, $concat);
        $this->calls->addNoDelimiterCall($concatenation);

        $this->checkExpression();

        return $concatenation;
    }

    private function processInstanceof(): Atom {
        $current = $this->id;
        $instanceof = $this->addAtom('Instanceof', $current);

        $left = $this->popExpression();
        $this->addLink($instanceof, $left, 'VARIABLE');

        $finals = $this->precedence->get($this->tokens[$this->id][0]);
        while (!in_array($this->tokens[$this->id + 1][0], $finals, \STRICT_COMPARISON)) {
            $this->processNext();
        }
        $right = $this->popExpression();

        $this->addLink($instanceof, $right, 'CLASS');

        $this->getFullnspath($right, 'class', $right);
        $this->calls->addCall('class', $right->fullnspath, $right);

        $instanceof->fullcode = $left->fullcode . ' ' . $this->tokens[$current][1] . ' ' . $right->fullcode;

        $this->runPlugins($instanceof, array('VARIABLE' => $left,
                                             'CLASS'    => $right));
        $this->pushExpression($instanceof);

        return $instanceof;
    }

    private function processKeyvalue(): Atom {
        return $this->processOperator('Keyvalue', $this->precedence->get($this->tokens[$this->id][0]), array('INDEX', 'VALUE'));
    }

    private function processPhpdoc(): Atom {
        if (isset($this->phpDocs[0])) {
            $phpDoc = $this->phpDocs[0];
            $phpDoc->fullcode = $this->tokens[$this->id][1];
        } else {
            $phpDoc = $this->addAtom('Phpdoc', $this->id);
            $phpDoc->fullcode = $this->tokens[$this->id][1];

            $this->phpDocs[0] = $phpDoc;
        }

        return $phpDoc;
    }

    private function processBitshift(): Atom {
        if ($this->hasExpression() ){
            // Classic bitshift expression
            return $this->processOperator('Bitshift', $this->precedence->get($this->tokens[$this->id][0]));
        } else {
            // PHP 8.0 attributes
            do {
                $attribute = $this->processNext();
            } while (!in_array($this->tokens[$this->id + 1][0], array($this->phptokens::T_SR), \STRICT_COMPARISON));

            // skip >>
            ++$this->id;
            $this->popExpression();

            $attribute->fullcode = '<< ' . $attribute->fullcode . ' >>';

            $this->attributes[] = $attribute;
        }

        return $attribute;
    }

    private function processIsset(): Atom {
        $current = $this->id;

        $atom = ucfirst(mb_strtolower($this->tokens[$current][1]));
        ++$this->id;
        $argumentsList = array();
        $functioncall = $this->processArguments($atom, array(), $argumentsList);

        $argumentsFullcode = $functioncall->fullcode;

        $functioncall->code       = $this->tokens[$current][1];
        $functioncall->fullcode   = $this->tokens[$current][1] . '(' . $argumentsFullcode . ')';
        $functioncall->token      = $this->getToken($this->tokens[$current][0]);
        $functioncall->fullnspath = '\\' . mb_strtolower($this->tokens[$current][1]);
        $functioncall->aliased    = self::NOT_ALIASED;

        $this->runPlugins($functioncall, $argumentsList);

        $this->pushExpression($functioncall);

        $this->checkExpression();

        return $functioncall;
    }

    private function processEcho(): Atom {
        $current = $this->id;

        $argumentsList = array();
        $functioncall = $this->processArguments('Echo',
                                                array($this->phptokens::T_SEMICOLON,
                                                      $this->phptokens::T_CLOSE_TAG,
                                                      $this->phptokens::T_END,
                                                     ),
                                                $argumentsList);
        $argumentsFullcode = $functioncall->fullcode;

        $functioncall->code       = $this->tokens[$current][1];
        $functioncall->fullcode   = $this->tokens[$current][1] . ' ' . $argumentsFullcode;
        $functioncall->token      = $this->getToken($this->tokens[$current][0]);
        $functioncall->fullnspath = '\\' . mb_strtolower($this->tokens[$current][1]);
        $functioncall->aliased    = self::NOT_ALIASED;

        $this->pushExpression($functioncall);

        $this->runPlugins($functioncall, $argumentsList);

        // processArguments goes too far, up to ;
        --$this->id;

        if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_CLOSE_TAG) {
            $this->processSemicolon();
        }

        return $functioncall;
    }

    private function processHalt(): Atom {
        $halt = $this->addAtom('Halt', $this->id);
        $halt->fullcode = $this->tokens[$this->id][1];

        ++$this->id; // skip halt
        ++$this->id; // skip (
        // Skipping all arguments. This is not a function!

        $this->pushExpression($halt);
        ++$this->id; // skip (
        $this->processSemicolon();

        return $halt;
    }

    private function processPrint(): Atom {
        $current = $this->id;

        $noSequence = $this->contexts->isContext(Context::CONTEXT_NOSEQUENCE);
        if ($noSequence === false) {
            $this->contexts->toggleContext(Context::CONTEXT_NOSEQUENCE);
        }

        $finals = $this->precedence->get($this->tokens[$this->id][0]);
        while (!in_array($this->tokens[$this->id + 1][0], $finals, \STRICT_COMPARISON)) {
            $this->processNext();
        }
        if ($noSequence === false) {
            $this->contexts->toggleContext(Context::CONTEXT_NOSEQUENCE);
        }

        if (in_array($this->tokens[$current][0], array($this->phptokens::T_INCLUDE,
                                                       $this->phptokens::T_INCLUDE_ONCE,
                                                       $this->phptokens::T_REQUIRE,
                                                       $this->phptokens::T_REQUIRE_ONCE,
                                                       ),
                \STRICT_COMPARISON)) {
            $functioncall = $this->addAtom('Include', $current);
        } else {
            $functioncall = $this->addAtom('Print', $current);
        }
        $index = $this->popExpression();
        $index->rank = 0;
        $this->addLink($functioncall, $index, 'ARGUMENT');

        $functioncall->fullcode   = $this->tokens[$current][1] . ' ' . $index->fullcode;
        $functioncall->count      = 1; // Only one argument for print
        $functioncall->fullnspath = '\\' . mb_strtolower($this->tokens[$current][1]);

        $this->pushExpression($functioncall);
        $this->runPlugins($functioncall, array('ARGUMENT' => $index));

        $this->checkExpression();

        return $functioncall;
    }

    //////////////////////////////////////////////////////
    /// generic methods
    //////////////////////////////////////////////////////
    private function addAtom(string $atomName, int $id = null): Atom {
        if (!in_array($atomName, GraphElements::$ATOMS, \STRICT_COMPARISON)) {
            throw new LoadError('Undefined atom ' . $atomName . ':' . $this->filename . ':' . __LINE__);
        }

        $line = $this->tokens[$this->id][2] ?? $this->tokens[$this->id - 1][2] ?? $this->tokens[$this->id - 2][2] ?? -1;
        $atom = $this->atomGroup->factory($atomName, $line);

        if ($id !== null) {
            $atom->code  = $this->tokens[$id][1];
            $atom->token = $this->getToken($this->tokens[$id][0]);
        }

        $this->atoms[$atom->id] = $atom;
        if ($atom->id < $this->minId) {
            $this->minId = $atom->id;
        }

        return $atom;
    }

    private function addAtomVoid(): Atom {
        $void = $this->addAtom('Void');
        $void->code        = 'Void';
        $void->fullcode    = self::FULLCODE_VOID;
        $void->token       = $this->phptokens::T_VOID;
        $void->noDelimiter = '';
        $void->delimiter   = '';
        $void->fullnspath  = '0';

        $this->runPlugins($void);

        return $void;
    }

    private function addLink(Atom $origin, Atom $destination, string $label): void {
        if (!in_array($label, array_merge(GraphElements::$LINKS, GraphElements::$LINKS_EXAKAT), \STRICT_COMPARISON)) {
            throw new LoadError('Undefined link ' . $label . ' for atom ' . $origin->atom . ' : ' . $this->filename . ':' . $origin->line);
        }

        if ($origin->id < $this->minId) {
            $this->relicat[] = array($origin->id, $destination->id);
        } elseif ($destination->id < $this->minId) {
            $this->relicat[] = array($origin->id, $destination->id);
        } else {
            $this->links[] = array($label, $origin->id, $destination->id);
        }
    }

    private function pushExpression(Atom $atom): void {
        $this->expressions[] = $atom;
    }

    private function hasExpression(): bool {
        return !empty($this->expressions);
    }

    private function popExpression(): Atom {
        if (empty($this->expressions)) {
            $id = $this->addAtomVoid();
        } else {
            $id = array_pop($this->expressions);
        }

        return $id;
    }

    private function checkTokens(string $filename): void {
        if (!empty($this->expressions)) {
            throw new LoadError( "Warning : expression is not empty in $filename : " . count($this->expressions));
        }

        if (!empty($this->options)) {
            throw new LoadError( "Warning : options is not empty in $filename : " . count($this->options));
        }

        if (($count = $this->contexts->getCount(Context::CONTEXT_NOSEQUENCE)) !== false) {
            throw new LoadError( "Warning : context for sequence is not back to 0 in $filename : it is $count\n");
        }

        if (($count = $this->contexts->getCount(Context::CONTEXT_NEW)) !== false) {
            throw new LoadError( "Warning : context for new is not back to 0 in $filename : it is $count\n");
        }

        if (($count = $this->contexts->getCount(Context::CONTEXT_FUNCTION)) !== false) {
            throw new LoadError( "Warning : context for function is not back to 0 in $filename : it is $count\n");
        }

        if (($count = $this->contexts->getCount(Context::CONTEXT_CLASS)) !== false) {
            throw new LoadError( "Warning : context for class is not back to 0 in $filename : it is $count\n");
        }

/*
        // All node has one incoming or one outgoing link (outgoing or incoming).
        // Except Variabledefinition
        $D = array();
        foreach($this->links as $label => $origins) {
            if ($label === 'DEFINITION') {
                continue;
            }
            foreach($origins as $destinations) {
                foreach($destinations as $links) {
                    $D[] = array_column($links, 'destination');
                }
            }
        }

        $D = array_merge(...$D);
        $D = array_count_values($D);

        foreach($this->atoms as $id => $atom) {
            if ($id === 1) { continue; }
            if ($atom->atom === 'Variabledefinition') { continue; }

            if (!isset($D[$id]) && $atom->atom !== 'File' && $atom->atom !== 'Virtualglobal') {
                throw new LoadError("Warning : forgotten atom $id in $this->filename : $atom->atom");
            }

            if (!isset($atom->line)) {
                throw new LoadError("Warning : missing line atom $id  in $this->filename");
            }

            if (!isset($atom->code)) {
                throw new LoadError("Warning : missing code atom $id  in $this->filename");
            }

            if (!isset($atom->token)) {
                throw new LoadError("Warning : missing token atom $id  in $this->filename");
            }
        }
        */
    }

    private function processDefineAsClassalias(array $argumentsId): void {
        if (empty($this->argumentsId[0]->noDelimiter) ||
            empty($this->argumentsId[1]->noDelimiter)   ) {
            $this->argumentsId[0]->fullnspath = '\\'; // cancels it all
            $this->argumentsId[1]->fullnspath = '\\';
            return;
        }

        if (preg_match('/[$ #?;%^\*\'\"\. <>~&,|\(\){}\[\]\/\s=+!`@\-]/is', $this->argumentsId[0]->noDelimiter)) {
            $this->argumentsId[0]->fullnspath = '\\'; // cancels it all
            $this->argumentsId[1]->fullnspath = '\\';
            return; // Can't be a class anyway.
        }

        if (preg_match('/[$ #?;%^\*\'\"\. <>~&,|\(\){}\[\]\/\s=+!`@\-]/is', $this->argumentsId[1]->noDelimiter)) {
            $this->argumentsId[0]->fullnspath = '\\'; // cancels it all
            $this->argumentsId[1]->fullnspath = '\\';
            return; // Can't be a class anyway.
        }

        $fullnspathClass = makeFullNsPath($this->argumentsId[0]->noDelimiter, \FNP_NOT_CONSTANT);
        $this->argumentsId[0]->fullnspath = $fullnspathClass;

        $fullnspathAlias = makeFullNsPath($this->argumentsId[1]->noDelimiter, \FNP_NOT_CONSTANT);
        $this->argumentsId[1]->fullnspath = $fullnspathAlias;

        $this->calls->addCall('class', $fullnspathClass, $argumentsId[0]);
        $this->calls->addDefinition('class', $fullnspathAlias, $argumentsId[1]);
    }

    private function processDefineAsConstants(Atom $const, Atom $name, bool $caseInsensitive = self::CASE_INSENSITIVE): void {
        if (empty($name->noDelimiter)) {
            $name->fullnspath = '\\';
            return;
        }

        if (preg_match('/[$ #?;%^\*\'\"\. <>~&,|\(\){}\[\]\/\s=+!`@\-]/is', $name->noDelimiter)) {
            return; // Can't be a constant anyway.
        }

        $fullnspath = makeFullNsPath($name->noDelimiter, \FNP_CONSTANT);
        if ($name->noDelimiter[0] === '\\') {
            // Added a second \\ when the string already has one. Actual PHP behavior
            $fullnspath = "\\$fullnspath";
        }

        $this->calls->addDefinition('const', $fullnspath, $const);
        $name->fullnspath = $fullnspath;

        if ($caseInsensitive === true) {
            $this->calls->addDefinition('const', mb_strtolower($fullnspath), $const);
        }
    }

    private function saveFiles(): void {
        $this->loader->saveFiles($this->config->tmp_dir, $this->atoms, $this->links); // , $this->id0
        $this->reset();
    }

    private function startSequence(): void {
        $this->sequence = $this->addAtom('Sequence');
        $this->sequence->code      = ';';
        $this->sequence->fullcode  = ' ' . self::FULLCODE_SEQUENCE . ' ';
        $this->sequence->token     = 'T_SEMICOLON';
        $this->sequence->bracket   = self::NOT_BRACKET;

        $this->sequences->start($this->sequence);
    }

    private function addToSequence(Atom $element): void {
        $this->addLink($this->sequence, $element, 'EXPRESSION');

        $this->sequences->add($element);
    }

    private function endSequence(): void {
        $elements = $this->sequences->getElements();
        $this->runPlugins($this->sequence, $elements);

        $this->sequence = $this->sequences->end();
    }

    // token may be string or int
    private function getToken($token): string {
        return $this->php->getTokenName($token);
    }

    private function getFullnspath(Atom $name, string $type = 'class', Atom $apply = null): void {
        assert($apply !== null, "\$apply can't be null in " . __METHOD__);

        // Handle static, self, parent and PHP natives function
        if (isset($name->absolute) && ($name->absolute === self::ABSOLUTE)) {
            if ($type === 'const') {
                if (($use = $this->uses->get('class', mb_strtolower($name->fullnspath))) instanceof Atom) {
                    $apply->fullnspath = mb_strtolower($name->fullnspath);
                    $apply->aliased = self::NOT_ALIASED;
                    return;
                } else {
                    $fullnspath = preg_replace_callback('/^(.*)\\\\([^\\\\]+)$/', function (array $r): string {
                        return mb_strtolower($r[1]) . '\\' . $r[2];
                    }, $name->fullcode);
                    $apply->fullnspath = $fullnspath;
                    $apply->aliased = self::NOT_ALIASED;
                    return;
                }
            } else {
                $apply->fullnspath = mb_strtolower($name->fullcode);
                    $apply->aliased = self::NOT_ALIASED;
                    return;
            }
        } elseif (!$name->isA(array('Nsname', 'Identifier', 'Name', 'String', 'Null', 'Boolean', 'Static', 'Parent', 'Self', 'Newcall', 'Newcallname', 'This'))) {
            // No fullnamespace for non literal namespaces
            $apply->fullnspath = '';
                    $apply->aliased = self::NOT_ALIASED;
                    return;
        } elseif (in_array($name->token, array('T_ARRAY', 'T_EVAL', 'T_ISSET', 'T_EXIT', 'T_UNSET', 'T_ECHO', 'T_PRINT', 'T_LIST', 'T_EMPTY'), \STRICT_COMPARISON)) {
            // For language structures, it is always in global space, like eval or list
            $apply->fullnspath = '\\' . mb_strtolower($name->code);
                    $apply->aliased = self::NOT_ALIASED;
                    return;
        } elseif (mb_strtolower(substr($name->fullcode, 0, 10)) === 'namespace\\') {
            // namespace\A\B
            $apply->fullnspath = substr($this->namespace, 0, -1) . mb_strtolower(substr($name->fullcode, 9));
                    $apply->aliased = self::NOT_ALIASED;
                    return;
        } elseif ($name->isA(array('Static', 'Self', 'This'))) {
            if (empty($this->currentClassTrait) || empty($this->currentClassTrait[count($this->currentClassTrait) - 1])) {
                $apply->fullnspath = self::FULLNSPATH_UNDEFINED;
                    $apply->aliased = self::NOT_ALIASED;
                    return;
            } else {
                $apply->fullnspath = $this->currentClassTrait[count($this->currentClassTrait) - 1]->fullnspath;
                    $apply->aliased = self::NOT_ALIASED;
                    return;
            }
        } elseif ($name->atom === 'Newcall' && mb_strtolower($name->code) === 'static') {
            if (empty($this->currentClassTrait)) {
                $apply->fullnspath = self::FULLNSPATH_UNDEFINED;
                    $apply->aliased = self::NOT_ALIASED;
                    return;
            } else {
                $apply->fullnspath = $this->currentClassTrait[count($this->currentClassTrait) - 1]->fullnspath;
                    $apply->aliased = self::NOT_ALIASED;
                    return;
            }
        } elseif ($name->atom === 'Parent') {
            $apply->fullnspath = '\\parent';
            $apply->aliased = self::NOT_ALIASED;
            return;
        } elseif ($name->isA(array('Boolean', 'Null'))) {
            $apply->fullnspath = '\\' . mb_strtolower($name->fullcode);
                    $apply->aliased = self::NOT_ALIASED;
                    return;
        } elseif ($name->isA(array('Identifier', 'Name', 'Newcall'))) {
            if ($name->isA(array('Newcall', 'Name'))) {
               $fnp = mb_strtolower($name->code);
            } else {
               $fnp = $name->code;
            }
            if (($offset = strpos($fnp, '\\')) === false) {
                $prefix = $fnp;
            } else {
                $prefix = substr($fnp, 0, $offset);
            }

            // This is an identifier, self or parent
            if ($type === 'class' && ($use = $this->uses->get('class',mb_strtolower($fnp) )) instanceof Atom) {
                $this->addLink($name, $use, 'DEFINITION');
                $apply->fullnspath = $use->fullnspath;
                $apply->aliased = self::ALIASED;
                return;

            } elseif ($type === 'class' && ($use = $this->uses->get('class', $prefix)) instanceof Atom) {
                $this->addLink($name, $use, 'DEFINITION');
                $apply->fullnspath = $use->fullnspath . str_replace($prefix, '', $fnp);
                    $apply->aliased = self::ALIASED;
                    return;

            } elseif ($type === 'const') {
                if (($use = $this->uses->get('const', $name->code)) instanceof Atom) {
                    $this->addLink($use, $name, 'DEFINITION');
                    $apply->fullnspath = $use->fullnspath;
                    $apply->aliased = self::ALIASED;
                    return;
                } elseif (($use = $this->uses->get('class', mb_strtolower($name->fullnspath))) instanceof Atom) {
                    $apply->fullnspath = mb_strtolower($name->fullnspath);
                    $apply->aliased = self::NOT_ALIASED;
                    return;
                } else {
                    $apply->fullnspath = $this->namespace . $name->fullcode;
                    $apply->aliased = self::NOT_ALIASED;
                    return;
                }

            } elseif ($type === 'function' && ($use = $this->uses->get('function', $prefix)) instanceof Atom) {
                $this->addLink($use, $name, 'DEFINITION');
                $apply->fullnspath = $use->fullnspath;
                $apply->aliased = self::ALIASED;
                return;

            } else {
                $apply->fullnspath = $this->namespace . mb_strtolower($name->fullcode);
                $apply->aliased = self::NOT_ALIASED;
                return;
            }

        } elseif ($name->atom === 'String' && isset($name->noDelimiter)) {
            if (in_array(mb_strtolower($name->noDelimiter), array('self', 'static'), \STRICT_COMPARISON)) {
                if (empty($this->currentClassTrait)) {
                    $apply->fullnspath = self::FULLNSPATH_UNDEFINED;
                    $apply->aliased = self::NOT_ALIASED;
                    return;
                } elseif ($this->currentClassTrait[count($this->currentClassTrait) - 1] instanceof Atom) {
                    $apply->fullnspath = $this->currentClassTrait[count($this->currentClassTrait) - 1]->fullnspath;
                    $apply->aliased = self::NOT_ALIASED;
                    return;
                } else {
                    // inside a closure
                    $apply->fullnspath = self::FULLNSPATH_UNDEFINED;
                    $apply->aliased = self::NOT_ALIASED;
                    return;
                }
            }

            $prefix =  str_replace('\\\\', '\\', mb_strtolower($name->noDelimiter));
            $prefix = "\\$prefix";

            // define doesn't care about use...
            $apply->fullnspath = $prefix;
            $apply->aliased = self::NOT_ALIASED;
            return;
        } else {
            // Finally, the case for a nsname
            $prefix = mb_strtolower( substr($name->code, 0, strpos($name->code . '\\', '\\')) );

            if (($use = $this->uses->get($type, $prefix)) instanceof Atom) {
                $this->addLink( $name, $use, 'DEFINITION');
                $apply->fullnspath = $use->fullnspath . mb_strtolower( substr($name->fullcode, strlen($prefix)) ) ;
                    $apply->aliased = self::NOT_ALIASED;
                    return;
            } elseif ($type === 'const') {
                $parts = explode('\\', $name->fullcode);
                $last = array_pop($parts);
                $fullnspath = $this->namespace . mb_strtolower(implode('\\', $parts)) . '\\' . $last;
                $apply->fullnspath = $fullnspath;
                    $apply->aliased = self::NOT_ALIASED;
                    return;
            } else {
                $apply->fullnspath = $this->namespace . mb_strtolower($name->fullcode);
                    $apply->aliased = self::NOT_ALIASED;
                    return;
            }
        }
    }

    private function setNamespace($namespace = self::NO_NAMESPACE): void {
        if ($namespace === self::NO_NAMESPACE) {
            $this->namespace = '\\';
            $this->uses = new Fullnspaths();
        } elseif ($namespace->atom === 'Void') {
            $this->namespace = '\\';
        } else {
            $this->namespace = mb_strtolower($namespace->fullcode) . '\\';
            if ($this->namespace[0] !== '\\') {
                $this->namespace = '\\' . $this->namespace;
            }
        }
    }

    private function addNamespaceUse(Atom $origin, Atom $alias, string $useType, Atom $use): string {
        if ($origin !== $alias) { // Case of A as B
            // Alias is the 'As' expression.
            $offset = strrpos($alias->fullcode, ' as ');
            if ($useType === 'const') {
                $alias = substr($alias->fullcode, $offset + 4);
            } else {
                $alias = mb_strtolower(substr($alias->fullcode, $offset + 4));
            }
        } elseif (($offset = strrpos($alias->code, '\\')) !== false) {
            // namespace with \
            $alias = substr($alias->code, $offset + 1);
        } else {
            // namespace without \
            $alias = $alias->code;
        }

        if ($useType !== 'const') {
            $alias = mb_strtolower($alias);
        }

        $this->uses->set($useType, $alias, $use);

        return $alias;
    }

    private function logTime(string $step): void {
        static $begin, $end, $start;

        if ($this->logTimeFile === null) {
            $this->logTimeFile = fopen("{$this->config->log_dir}/load.timing.csv", 'w+');
        }

        $end = microtime(\TIME_AS_NUMBER);
        if ($begin === null) {
            $begin = $end;
            $start = $end;
        }

        fwrite($this->logTimeFile, $step . "\t" . ($end - $begin) . "\t" . ($end - $start) . PHP_EOL);
        $begin = $end;
    }

    private function makeAnonymous(string $type = 'class'): string {
        static $anonymous = 'a';

        if (!in_array($type, array('class', 'function', 'arrowfunction'), \STRICT_COMPARISON)) {
            throw new LoadError('Classes, Functions and ArrowFunctions are the only anonymous');
        }

        ++$anonymous;
        return "$type@$anonymous";
    }

    private function finishWithAlternative(bool $isColon): void {
        if ($isColon === self::ALTERNATIVE_SYNTAX) {
            ++$this->id; // Skip endforeach
            if ($this->tokens[$this->id][0] === $this->phptokens::T_CLOSE_TAG) {
                --$this->id;
            }
            $this->processSemicolon();
            if ($this->tokens[$this->id + 1][0] === $this->phptokens::T_SEMICOLON) {
                ++$this->id;
            }
        } else {
            if ($this->tokens[$this->id][0] === $this->phptokens::T_CLOSE_TAG) {
                --$this->id;
            }
            $this->processSemicolon();
        }
    }

    private function checkExpression(): void {
        if ( !$this->contexts->isContext(Context::CONTEXT_NOSEQUENCE) && $this->tokens[$this->id + 1][0] === $this->phptokens::T_CLOSE_TAG) {
            $this->processSemicolon();
        }
    }

    private function whichSyntax(int $current, int $colon): bool {
        return in_array($this->tokens[$current][0], array($this->phptokens::T_FOR,
                                                          $this->phptokens::T_FOREACH,
                                                          $this->phptokens::T_WHILE,
                                                          $this->phptokens::T_DO,
                                                          $this->phptokens::T_DECLARE,
                                                          $this->phptokens::T_SWITCH,
                                                          $this->phptokens::T_IF,
                                                          $this->phptokens::T_ELSEIF,
                                                         ), \STRICT_COMPARISON) &&
               ($this->tokens[$colon][0] === $this->phptokens::T_COLON) ?
                self::ALTERNATIVE_SYNTAX :
                self::NORMAL_SYNTAX;
    }

    private function makeGlobal(Atom $element): void {
        if ($element->atom === 'Globaldefinition') {
            $name = $element->code;
        } elseif ($element->atom === 'Variabledefinition') {
            $name = $element->code;
        } elseif ($element->atom === 'Phpvariable') {
            $name = $element->code;
        } elseif (!empty($element->noDelimiter)) {
            $name = '$' . $element->noDelimiter;
        } else {
            return;
        }

        if (!isset($this->theGlobals[$name])) {
            $this->theGlobals[$name] = $this->addAtom('Virtualglobal');
            $this->theGlobals[$name]->fullcode = "[global {$element->code}]";
            $this->theGlobals[$name]->code = $element->code;
            $this->theGlobals[$name]->lccode = $element->code;
            $this->theGlobals[$name]->line = -1;
            $this->theGlobals[$name]->globalvar = ltrim($name, '$');
        }
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks;

use Exakat\Reports\Reports;

class Catalog extends Tasks {
    const CONCURENCE = self::ANYTIME;

    public function run() {
        $data = array();

        // List of analysis
        $rulesets = $this->rulesets->listAllRulesets();
        sort($rulesets);
        $rulesets = array_map( function ($x) {
            if (strpos($x, ' ') !== false) {
                $x = '"' . $x . '"';
            }
            return $x;
        }, $rulesets);
        $data['rulesets'] = $rulesets;

        // List of reports
        $reports = Reports::$FORMATS;
        sort($reports);
        $data['reports'] = $reports;

        if ($this->config->json === true) {
            print json_encode($data);
        } else {
            $display = '';

            foreach($data as $section => $list) {
                $display .= count($list) . " $section : \n";
                $display .= '   ' . implode("\n   ", $list) . "\n";
            }

            print $display;
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks;

class Server extends Tasks {
    const CONCURENCE = self::ANYTIME;

    public function run() {
        if ($this->config->stop    === true ||
            $this->config->restart === true
            ) {
            $display = @file_get_contents('http://localhost:7447/stop/');
            if (empty($display)) {
                $display = 'No server found';
            }
            display("Shut down server ($display)");

            if ($this->config->stop === true) {
                return;
            }
        }

        if (file_exists("{$this->config->dir_root}/projects/index.php")) {
            display('A server is already installed. Aborting.');
            return;
        }

        display('Copy router server');
        $php = file_get_contents("{$this->config->dir_root}/server/index.php");
        $php = str_replace('__PHP__', $this->config->php, $php);
        $php = str_replace('__EXAKAT__', $this->config->executable, $php);
        file_put_contents("{$this->config->projects_root}/projects/index.php", $php);

        if (!file_exists("{$this->config->projects_root}/projects/server.log")) {
            file_put_contents("{$this->config->projects_root}/projects/server.log", date('r') . "\tCreated file\n");
        }

        display('Start server');
        exec($this->config->php . ' -S 0.0.0.0:7447 -t ' . $this->config->projects_root . '/projects/ ' . $this->config->projects_root . '/projects/index.php > /dev/null 2 > /dev/null &');
        display('Started server');
    }
}

?>
   Bud1                                                                        e r sbwspbl                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          @                                              @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  H e l p e r sbwspblob   bplist00	
			]ShowStatusBar_SidebarWidthTenElevenOrLater[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar[ShowPathbar	#@k`     		_{{-1127, 239}, {1107, 767}}	'FR^u                                H e l p e r slsvCblob  bplist00	
GHGIJ_viewOptionsVersion_showIconPreview_calculateAllSizesWcolumns_scrollPositionYXtextSize_scrollPositionXZsortColumnXiconSize_useRelativeDates 	"&+05:?CWvisibleUwidthYascendingZidentifier		Tname#Xubiquity!	\dateModified%[dateCreated(*	aTsize-/	s	Tkind24d	Ulabel79K	Wversion<>,	XcommentsB^dateLastOpenedFYdateAdded#        #@(      Tname#@0      	   2 D X ` r {                 )234@IJLMR[\^_dmnpqw             L                  H e l p e r slsvpblob  bplist00	
FGFHI_viewOptionsVersion_showIconPreview_calculateAllSizesWcolumns_scrollPositionYXtextSize_scrollPositionXZsortColumnXiconSize_useRelativeDates 	!&*.38=BXcomments^dateLastOpened\dateModified[dateCreatedTsizeUlabelTkindWversionTnameUindexUwidthYascendingWvisible,	"#'#	+#/0a	45d	9:s		>?K	C		#        #@(      Tname#@0      	   2 D X ` r {            "(.8@BEFGPRTUV_abclnopy{}~             K                  H e l p e r svSrnlong      	 L o a d F i n a lbwspblob   bplist00		]ShowStatusBar[ShowPathbar[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar			_{{-1855, 23}, {1052, 882}}	%1=I`myz{|}~                               	 L o a d F i n a llsvCblob  bplist00	
GHGIJ_viewOptionsVersion_showIconPreview_calculateAllSizesWcolumns_scrollPositionYXtextSize_scrollPositionXZsortColumnXiconSize_useRelativeDates 	"&+05:?CWvisibleUwidthYascendingZidentifier		Tname#Xubiquity!	\dateModified%[dateCreated(*	aTsize-/	s	Tkind24d	Ulabel79K	Wversion<>,	XcommentsB^dateLastOpenedFYdateAdded#        #@(      Tname#@0      	   2 D X ` r {                 *345AJKMNS\]_`enoqrx             L                 	 L o a d F i n a llsvpblob  bplist00	
FGFHI_viewOptionsVersion_showIconPreview_calculateAllSizesWcolumns_scrollPositionYXtextSize_scrollPositionXZsortColumnXiconSize_useRelativeDates 	!&*.38=BXcomments^dateLastOpened\dateModified[dateCreatedTsizeUlabelTkindWversionTnameUindexUwidthYascendingWvisible,	"#'#	+#/0a	45d	9:s		>?K	C		#        #@(      Tname#@0      	   2 D X ` r {            "(.8@BEFGPRTUV_abclnopy{}~             K                 	 L o a d F i n a lvSrnlong                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             E                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         DSDB                                 `                                    (      0          @                                                @                                                @       atedTsizeUlabelTkindWversionTnameUindexUwidthYascendingWvisible,	"#'#	+#/0a	45d	9:s		>?K	C		#        #@(      Tname#@0      	   2 D X ` r {            "(.8@BEFGPRTUV_abclnopy{}~             K                  H e l p e r svSrnlong      	 L o a d F i n a lbwspblob   bplist00		]ShowStatusBar[ShowPathbar[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar			_{{-1855, 23}, {1052, 882}}	%1=I`myz{|}~                               	 L o a d F i n a llsvCblob  bplist00	
GHGIJ_viewOptionsVersion_showIconP<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks;

class Install extends Tasks {
    const CONCURENCE = self::NONE;

    const TINKERGRAPH_VERSION = '3.4.4';

    public function run(): void {
        $error = array();

        $res = shell_exec('java -version 2>&1');
        if (strpos($res, 'java version') === false) {
            $error = 'Please install Java 1.8';
        } else {
            print "Java 1.8 : OK\n";
        }

        $res = shell_exec('zip -help 2>&1');
        if (strpos($res, 'Zip 3.0') === false) {
            $error[] = 'Please install Zip 3.0';
        } else {
            print "Zip 3.0 : OK\n";
        }

        if (!empty($error)) {
            $errors[] = 'Fix the above ' . count($error) . " and try again\n";
            print implode(PHP_EOL, $error) . PHP_EOL;
            die();
        }

        if (file_exists('./tinkergraph') && is_dir('./tinkergraph')) {
            print "Tinkergraph is already installed. Omitting\n";
        } else {
            $tinkerpop = file_get_contents('https://www.exakat.io/versions/apache-tinkerpop-gremlin-server-' . self::TINKERGRAPH_VERSION . '-bin.zip');
            file_put_contents('./apache-tinkerpop-gremlin-server-' . self::TINKERGRAPH_VERSION . '-bin.zip', $tinkerpop);

            // Install tinkergraph
            shell_exec('unzip apache-tinkerpop-gremlin-server-' . self::TINKERGRAPH_VERSION . '-bin.zip; mv apache-tinkerpop-gremlin-server-' . self::TINKERGRAPH_VERSION . ' tinkergraph; rm -rf apache-tinkerpop-gremlin-server-' . self::TINKERGRAPH_VERSION . '-bin.zip');
            print "Tinkergraph installed\n";
        }

        if (file_exists('./tinkergraph/ext/neo4j-gremlin')) {
            print "Neo4j for gremlin is already installed. Omitting\n";
        } else {
            // Install neo4j
            shell_exec('cd tinkergraph; ./bin/gremlin-server.sh install org.apache.tinkerpop neo4j-gremlin ' . self::TINKERGRAPH_VERSION);
            print "Neo4j for Tinkergraph installed\n";
        }

        print shell_exec('php exakat.phar doctor');
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks;

use Exakat\Vcs\Vcs;
use Exakat\GraphElements;

class Diff extends Tasks {
    const CONCURENCE = self::NONE;

    public function run() {
        print $this->config->branch;
        print "Drop files\n";

        $vcsClass = Vcs::getVcs($this->config);
        $vcs = new $vcsClass($this->config->project, $this->config->code_dir);

        // Get files to drop
        $toRemoveFiles = $vcs->getDiffFile($this->config->branch);
        print_r($toRemoveFiles);

        $linksDown = GraphElements::linksAsList();

        $res = $this->gremlin->query('g.V().count()');

        $this->gremlin->query("g.V().hasLabel('File').has('fullcode', within(" . makeList($toRemoveFiles) . ")).emit().repeat(__.out($linksDown)).barrier().drop()");

        $res = $this->gremlin->query('g.V().count()');

        // Get the new files to load
        $newFiles = $vcs->checkOut($this->config->branch);
        print_r($newFiles);

        if (!empty($newFiles)) {
            $load = new Load(self::IS_SUBTASK);
            $load->initDiff();
            // This must be done one by one
            foreach($newFiles as $file) {
                $res = $load->processDiffFile($file, $this->config->code_dir);
            }

            $load->finishDiff();
            unset($load);
        }

        //Fix Functioncalls
        $this->fixFunctioncall();
        $this->fixClassesDefinition();
        $this->fixInterfacesDefinition();
        $this->fixConstantsDefinition();

        // read the analysis that should be rerun again
        $res = $this->gremlin->query("g.V().hasLabel(\"Analysis\").not(where(__.out(\"ANALYZED\").hasLabel(\"Noresult\"))).filter{ it.get().property('count').value() != it.get().vertices(OUT, \"ANALYZED\").size(); }.values('analyzer')");
        $analyzers =  $res->toArray();

        foreach($analyzers as $analyzer) {
            $this->analyzeOne($analyzer, $this->config->verbose);
        }

        $dumpConfig = $this->config->duplicate(array('update'    => true,
                                                     'program'   => $analyzers,
                                                     ));

        $dump = new Dump(self::IS_SUBTASK);
        $dump->run();
        unset($dump);
        unset($dumpConfig);

        try {
            $report = new Report(self::IS_SUBTASK);

            $report->run();
        } catch (\Throwable $e) {
            display( "Error while building $format : " . $e->getMessage() . "\n");
        }
        display('Reported project' . PHP_EOL);
    }

    private function analyzeOne($analyzers, $verbose) {
        print $analyzers . PHP_EOL;
        try {
            $analyzeConfig = $this->config->duplicate(array('noRefresh' => false,
                                                            'update'    => true,
                                                            'program'   => $analyzers,
                                                            'verbose'   => $verbose,
                                                            'quiet'     => !$verbose,
                                                            ));

            $analyze = new Analyze(self::IS_SUBTASK);
            $analyze->run();
            unset($analyze);
            unset($analyzeConfig);
//            $this->logTime('Analyze : ' . (is_array($analyzers) ? implode(', ', $analyzers) : $analyzers));

            $dumpConfig = $this->config->duplicate(array('update'    => true,
                                                         'program'   => $analyzers,
                                                         ));

            $audit_end = time();
            $query = 'g.V().count()';
            $res = $this->gremlin->query($query);
            if ($res instanceof \stdClass) {
                $nodes = $res->results[0];
            } else {
                $nodes = $res[0];
            }
            $query = 'g.E().count()';
            $res = $this->gremlin->query($query);
            if ($res instanceof \stdClass) {
                $links = $res->results[0];
            } else {
                $links = $res[0];
            }

            $this->datastore->addRow('hash', array('graphNodes'   => $nodes,
                                                   'graphLinks'   => $links));

            unset($dumpConfig);
        } catch (\Exception $e) {
            echo "Error while running the Analyzer {$this->config->project}.\nTrying next analysis.\n";
            file_put_contents("{$this->config->log_dir}/analyze.final.log", $e->getMessage());
        }
    }

    private function fixFunctioncall() {
        $res = $this->gremlin->query('g.V().hasLabel("Function", "Functioncall").as("a").as("b").as("c").select("a", "b", "c").by(id).by("fullnspath").by(label)');
        $calls = array();
        $definitions = array();
        foreach($res->toArray() as $dc) {
            if ($dc['c'] === 'Function') {
                array_collect_by($definitions, $dc['b'], $dc['a']);
            } else {
                array_collect_by($calls, $dc['b'], $dc['a']);
            }
        }

        $total = 0;
        foreach($definitions as $fnp => $def) {
            if (!isset($calls[$fnp])) {
                continue;
            }

            foreach($calls[$fnp] as $call) {
                $res = $this->gremlin->query('g.V(' . $def[0] . ').addE("DEFINITION").to(g.V(' . $call . '))');
                ++$total;
            }
        }

        display("Fixed $total DEFINITION for Functions\n");
    }

    private function fixClassesDefinition() {
        $res = $this->gremlin->query('g.V().hasLabel("Class", "Newcall").as("a").as("b").as("c").select("a", "b", "c").by(id).by("fullnspath").by(label)');
        $calls = array();
        $definitions = array();
        foreach($res->toArray() as $dc) {
            if ($dc['c'] === 'Class') {
                array_collect_by($definitions, $dc['b'], $dc['a']);
            } else {
                array_collect_by($calls, $dc['b'], $dc['a']);
            }
        }

        $total = 0;
        foreach($definitions as $fnp => $def) {
            if (!isset($calls[$fnp])) { continue; }

            foreach($calls[$fnp] as $call) {
                $res = $this->gremlin->query('g.V(' . $def[0] . ').addE("DEFINITION").to(g.V(' . $call . '))');
                ++$total;
            }
        }

        display("Fixed $total DEFINITION for Classes\n");
    }

    private function fixInterfacesDefinition() {
        $res = $this->gremlin->query('g.V().hasLabel("Interface", "Identifier", "Nsname").as("a").as("b").as("c").select("a", "b", "c").by(id).by("fullnspath").by(label)');
        $calls = array();
        $definitions = array();
        foreach($res->toArray() as $dc) {
            print_r($dc);
            if ($dc['c'] === 'Interface') {
                array_collect_by($definitions, $dc['b'], $dc['a']);
            } else {
                array_collect_by($calls, $dc['b'], $dc['a']);
            }
        }

        $total = 0;
        foreach($definitions as $fnp => $def) {
            if (!isset($calls[$fnp])) { continue; }

            foreach($calls[$fnp] as $call) {
                $res = $this->gremlin->query('g.V(' . $def[0] . ').addE("DEFINITION").to(g.V(' . $call . '))');
                ++$total;
            }
        }

        display("Fixed $total DEFINITION for Interfaces\n");
    }

    private function fixTraitsDefinition() {
        $res = $this->gremlin->query('g.V().hasLabel("Trait", "Identifier", "Nsname").has("fullnspath").as("a").as("b").as("c").select("a", "b", "c").by(id).by("fullnspath").by(label)');
        $calls = array();
        $definitions = array();
        foreach($res->toArray() as $dc) {
            print_r($dc);
            if ($dc['c'] === 'Interface') {
                array_collect_by($definitions, $dc['b'], $dc['a']);
            } else {
                array_collect_by($calls, $dc['b'], $dc['a']);
            }
        }

        $total = 0;
        foreach($definitions as $fnp => $def) {
            if (!isset($calls[$fnp])) { continue; }

            foreach($calls[$fnp] as $call) {
                $res = $this->gremlin->query('g.V(' . $def[0] . ').addE("DEFINITION").to(g.V(' . $call . '))');
                ++$total;
            }
        }

        display("Fixed $total DEFINITION for Traits\n");
    }

    private function fixConstantsDefinition() {
        $res = $this->gremlin->query('g.V().hasLabel("Constant", "Identifier", "Nsname").has("fullnspath").as("a").as("b").as("c").select("a", "b", "c").by(id).by("fullnspath").by(label)');
        $calls = array();
        $definitions = array();
        foreach($res->toArray() as $dc) {
            print_r($dc);
            if ($dc['c'] === 'Constntt') {
                array_collect_by($definitions, $dc['b'], $dc['a']);
            } else {
                array_collect_by($calls, $dc['b'], $dc['a']);
            }
        }

        $total = 0;
        foreach($definitions as $fnp => $def) {
            if (!isset($calls[$fnp])) { continue; }

            foreach($calls[$fnp] as $call) {
                $res = $this->gremlin->query('g.V(' . $def[0] . ').addE("DEFINITION").to(g.V(' . $call . '))');
                ++$total;
            }
        }

        display("Fixed $total DEFINITION for Constants\n");
    }
}

?><?php
/*
 * Copyright 2012-2019 Damien Seguy - Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

declare(strict_types = 1);

namespace Exakat\Tasks;

use Exakat\Analyzer\Analyzer;
use Exakat\Analyzer\Dump\AnalyzerDump;
use Exakat\Config;
use Exakat\Exceptions\MissingGremlin;
use Exakat\Exceptions\NoSuchAnalyzer;
use Exakat\Exceptions\NoSuchProject;
use Exakat\Exceptions\NoSuchRuleset;
use Exakat\Exceptions\NotProjectInGraph;
use Exakat\GraphElements;
use Exakat\Log;
use Exakat\Query\Query;
use Exakat\Dump\Dump as DumpDb;

class Dump extends Tasks {
    const CONCURENCE = self::DUMP;

    private $files = array();

    protected $logname = self::LOG_NONE;

    private $linksDown = '';
    private $dump      = null;

    const WAITING_LOOP = 1000;

    public function __construct(bool $subTask = self::IS_NOT_SUBTASK) {
        parent::__construct($subTask);

        $this->log = new Log('dump',
                             $this->config->project_dir);

        $this->linksDown = GraphElements::linksAsList();
    }

    public function setConfig(Config $config): void {
        $this->config = $config;
    }

    public function run(): void {

        if (!file_exists($this->config->project_dir)) {
            throw new NoSuchProject($this->config->project);
        }

        if ($this->config->gremlin === 'NoGremlin') {
            throw new MissingGremlin();
        }

        $projectInGraph = $this->gremlin->query('g.V().hasLabel("Project").values("code")');
        if (empty($projectInGraph)) {
            throw new NoSuchProject($this->config->project);
        }
        $projectInGraph = $projectInGraph[0];

        if ($projectInGraph !== (string) $this->config->project) {
            throw new NotProjectInGraph($this->config->project, $projectInGraph);
        }
// TODO
//        $this->sqliteFilePrevious = $this->config->dump_previous;
// also baseline

        // move this to .dump.sqlite then rename at the end, or any imtermediate time
        // Mention that some are not yet arrived in the snitch
        $this->addSnitch();

        if ($this->config->update !== true && file_exists($this->config->dump)) {
            unlink($this->config->dump);
        }
        $this->dump = DumpDb::factory($this->config->dump, DumpDb::INIT);

        if ($this->config->collect === true) {
            display('Collecting data');

            $this->collect();
        }

        $this->loadSqlDump();

        $counts = array();
        $datastore = new \Sqlite3($this->config->datastore, \SQLITE3_OPEN_READONLY);
        $datastore->busyTimeout(\SQLITE3_BUSY_TIMEOUT);
        $res = $datastore->query('SELECT * FROM analyzed');
        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            $counts[$row['analyzer']] = (int) $row['counts'];
        }
        $this->log->log('count analyzed : ' . count($counts) . "\n");
        $this->log->log('counts ' . implode(', ', $counts) . "\n");
        $datastore->close();
        unset($datastore);

        if (!empty($this->config->project_rulesets)) {
            $ruleset = $this->config->project_rulesets;
            if ($ruleset === array('None')) {
                $rulesets = array();
            } else {
                $rulesets = $this->rulesets->getRulesetsAnalyzers($ruleset);
                if (empty($rulesets)) {
                    $r = $this->rulesets->getSuggestionRuleset($ruleset);
                    if (!empty($r)) {
                        echo 'did you mean : ', implode(', ', str_replace('_', '/', $r)), "\n";
                    }

                    throw new NoSuchRuleset(implode(', ', $ruleset));
                }
                $missing = $this->processResultsRuleset($ruleset, $counts);
                $this->expandRulesets();
                $this->collectHashAnalyzer();

                if ($missing === 0) {
                    $this->storeToDumpArray('themas', array_map(function (string $x) { return array('', $x); }, $ruleset));
                    $rulesets = array();
                }
            }

        } elseif (!empty($this->config->program)) {
            $analyzer = $this->config->program;
            if(is_array($analyzer)) {
                $rulesets = $analyzer;
            } else {
                $rulesets = array($analyzer);
            }

            $rulesets = array_unique($rulesets);
            foreach($rulesets as $id => $ruleset) {
                if (!$this->rulesets->getClass($ruleset)) {
                    display('No such analyzer as ' . $ruleset . '. Omitting.');
                    unset($rulesets[$id]);
                }
            }
            display('Processing ' . count($rulesets) . ' analyzer' . (count($rulesets) > 1 ? 's' : '') . ' : ' . implode(', ', $rulesets));

            if(count($rulesets) > 1) {
                $this->processResultsList($rulesets, $counts);
                $this->expandRulesets();
                $this->collectHashAnalyzer();
            } elseif (empty($rulesets)) {
                throw new NoSuchAnalyzer($ruleset, $this->rulesets);
            } else {
                $analyzer = array_pop($rulesets);
                if (isset($counts[$analyzer])) {
                    $this->processMultipleResults(array($analyzer), $counts);
                    $this->collectHashAnalyzer();
                    $rulesets = array();
                } else {
                    display("$analyzer is not run yet.");
                }
            }

        } else {
            $rulesets = array();
        }

        $this->log->log('Still ' . count($rulesets) . " to be processed\n");
        display('Still ' . count($rulesets) . " to be processed\n");

        $this->finish();
    }

    public function finalMark(array $finalMark): void {
        $sqlite = new \Sqlite3($this->config->dump);
        $sqlite->busyTimeout(\SQLITE3_BUSY_TIMEOUT);

        $values = array();
        foreach($finalMark as $key => $value) {
            $values[] = "(null, '$key', '$value')";
        }

        $sqlite->query('REPLACE INTO hash VALUES ' . implode(', ', $values));
    }

    private function processResultsRuleset(array $ruleset, array $counts = array()): int {
        $analyzers = $this->rulesets->getRulesetsAnalyzers($ruleset);

        return $this->processMultipleResults($analyzers, $counts);
    }

    private function processResultsList(array $rulesetList, array $counts = array()): int {
        return $this->processMultipleResults($rulesetList, $counts);
    }

    private function processMultipleResults(array $analyzers, array $counts): int {
        $specials = array('Php/Incompilable',
                          'Composer/UseComposer',
                          'Composer/UseComposerLock',
                          'Composer/Autoload',
                          );
        $diff = array_intersect($specials, $analyzers);
        if (!empty($diff)) {
            $this->dump->removeResults($diff);
            foreach($diff as $d) {
                $this->processResults($d, $counts[$d] ?? -3);
            }
            $analyzers = array_diff($analyzers, $diff);
        }

        $saved = 0;
        $docs = exakat('docs');
        $severities = array();
        $readCounts = array();

        $skipAnalysis = array();
        $analyzers = array_filter($analyzers, function (string $s): bool { return substr($s, 0, 9) !== 'Complete/' && substr($s, 0, 5) !== 'Dump/'; });
        // Remove analysis that are not exported via dump
        foreach($analyzers as $id => $analyzer) {
            $a = $this->rulesets->getInstance($analyzer);
            if ($a instanceof AnalyzerDump) {
                unset($analyzers[$id]);
                $skipAnalysis[] = $analyzer;
            }
        }
        $this->dump->removeResults($analyzers);

        $chunks = array_chunk($analyzers, 200);
        // Gremlin only accepts chunks of 255 maximum

        foreach($chunks as $chunk) {
            $query = $this->newQuery('processMultipleResults');
            $query->atomIs('Analysis', Analyzer::WITHOUT_CONSTANTS)
                  ->is('analyzer', $chunk)
                  ->savePropertyAs('analyzer', 'analyzer')
                  ->outIs('ANALYZED')
                  ->atomIsNot('Noresult')
                  ->initVariable(array('ligne',                  'fullcode_',                  'file', 'theFunction', 'theClass', 'theNamespace'),
                                 array('it.get().value("line")', 'it.get().value("fullcode")', '"None"', '""', '""', '""'),
                                )
            ->raw(<<<GREMLIN
where( __.until( hasLabel("Project") ).repeat( 
    __.in($this->linksDown)
      .sideEffect{ if (it.get().label() in ["Function", "Closure", "Arrayfunction", "Magicmethod", "Method"]) { theFunction = it.get().value("fullcode")} }
      .sideEffect{ if (it.get().label() in ["Class", "Trait", "Interface", "Classanonymous"]) { theClass = it.get().value("fullcode")} }
      .sideEffect{ if (it.get().label() == "File") { file = it.get().value("fullcode")} }
       ).fold()
)
GREMLIN
)
            ->getVariable(array('fullcode_', 'file', 'ligne', 'theNamespace', 'theClass', 'theFunction', 'analyzer'),
                          array('fullcode',  'file', 'line' , 'namespace',    'class',    'function',    'analyzer'));
            $query->prepareRawQuery();
            $res = $this->gremlin->query($query->getQuery(), $query->getArguments())->toArray();

            $toDump = array();
            foreach($res as $result) {
                if (empty($result)) {
                    continue;
                }

                if (isset($severities[$result['analyzer']])) {
                    $severity = $severities[$result['analyzer']];
                } else {
                    $severity = $docs->getDocs($result['analyzer'])['severity'];
                    $severities[$result['analyzer']] = $severity;
                }

                $toDump[] = array($result['fullcode'],
                                  $result['file'],
                                  $result['line'],
                                  $result['namespace'],
                                  $result['class'],
                                  $result['function'],
                                  $result['analyzer'],
                                  $severity,
                                  );
            }

            $readCounts[] = $this->dump->addResults($toDump);
        }
        $readCounts = array_merge(...$readCounts);

        $this->log->log(implode(', ', $analyzers) . " : dumped $saved");

        $error = 0;
        $emptyResults = $skipAnalysis;
        foreach($analyzers as $class) {
            if (!isset($counts[$class]) || $counts[$class] < 0) {
                $emptyResults[] = $class;
                continue;
            }

            if ($counts[$class] === 0 && !isset($readCounts[$class])) {
                display("No results saved for $class\n");
                $emptyResults[] = $class;
            } elseif ($counts[$class] === ($readCounts[$class] ?? 0)) {
                display("All $counts[$class] results saved for $class\n");
            } else {
                assert(($counts[$class] ?? 0) === ($readCounts[$class] ?? 0), "'results were not correctly dumped in $class : $readCounts[$class]/$counts[$class]");
                ++$error;
            }
        }

        $this->dump->addEmptyResults($emptyResults);

        return $error;
    }

    private function processResults(string $class, int $count): void {
        $this->log->log( "$class : $count\n");
        // No need to go further
        if ($count <= 0) {
            $saved = $this->dump->addEmptyResults(array($class));
            return;
        }

        $analyzer = $this->rulesets->getInstance($class, $this->gremlin, $this->config);
        $res = $analyzer->getDump();

        $saved = 0;
        $docs = exakat('docs');
        $severity = $docs->getDocs($class)['severity'];

        $toDump = array();
        foreach($res as $result) {
            if (empty($result)) {
                continue;
            }

            $toDump[] = array($result['fullcode'],
                              $result['file'],
                              $result['line'],
                              $result['namespace'],
                              $result['class'],
                              $result['function'],
                              $class,
                              $severity,
                              );
        }

        if (empty($toDump)) {
            $saved = $this->dump->addEmptyResults(array($class));
            return;
        }

        $saved = $this->dump->addResults($toDump);
        $saved = $saved[$class];

        $this->log->log("$class : dumped " . $saved);

        if ($count === $saved) {
            display("All $saved results saved for $class\n");
        } else {
            assert($count === $saved, "'results were not correctly dumped in $class : $saved/$count");
            display("$saved results saved, $count expected for $class\n");
        }
    }

    private function getAtomCounts(): void {
        $query = 'g.V().groupCount("b").by(label).cap("b").next();';
        $atomsCount = $this->gremlin->query($query);
        $atomsCount->deHash();

        $this->dump->storeInTable('atomsCounts', $atomsCount);

        display(count($atomsCount) . " atoms\n");
    }

    private function finish(): void {
        $this->dump->close();
        $this->removeSnitch();
    }

    private function collectHashAnalyzer(): void {
        $tables = array('hashAnalyzer',
                       );
        $this->dump->collectTables($tables);
    }

    private function collectVariables(): void {
        $query = $this->newQuery('collectVariables');
        $query->atomIs(array('Variable', 'Variablearray', 'Variableobject'), Analyzer::WITHOUT_CONSTANTS)
              ->tokenIs('T_VARIABLE')
              ->initVariable(array('name',                       'type'),
                             array('it.get().value("fullcode")', 'it.get().label()'))
              ->getVariable(array('name', 'type'));
        $query->prepareRawQuery();
        $variables = $this->gremlin->query($query->getQuery(), $query->getArguments())->toArray();

        $toDump = array();

        $types = array('Variable'       => 'var',
                       'Variablearray'  => 'array',
                       'Variableobject' => 'object',
                      );
        $unique = array();
        foreach($variables as $row) {
            if (isset($unique[$row['name'] . $row['type']])) {
                continue;
            }
            $name = str_replace(array('&', '...', '@'), '', $row['name']);
            $unique[$name . $row['type']] = 1;
            $type = $types[$row['type']];
            $toDump[] = array('',
                              mb_strtolower($name),
                              $type,
                             );
        }
        $total = $this->storeToDumpArray('variables', $toDump);
        display("$total variables\n");
    }

    private function collectStructures(): void {
        $namespacesId = $this->collectStructures_namespaces();

        $MAX_LOOPING = Analyzer::MAX_LOOPING;
        $query = $this->newQuery('cit classes');
        $query->atomIs('Class', Analyzer::WITHOUT_CONSTANTS)
              ->raw(<<<GREMLIN
 sideEffect{ extendList = ""; }.where(__.out("EXTENDS").optional(__.out("DEFINITION").where(__.in("USE"))).sideEffect{ extendList = it.get().value("fullnspath"); }.fold() )
.sideEffect{ implementList = []; }.where(__.out("IMPLEMENTS").optional(__.out("DEFINITION").where(__.in("USE"))).sideEffect{ implementList.push( it.get().value("fullnspath"));}.fold() )
.sideEffect{ useList = []; }.where(__.out("USE").hasLabel("Usetrait").out("USE").optional(__.out("DEFINITION").where(__.in("USE"))).sideEffect{ useList.push( it.get().value("fullnspath"));}.fold() )
.sideEffect{ usesOptions = []; }.where(__.out("USE").hasLabel("Usetrait").out("BLOCK").out("EXPRESSION").sideEffect{ usesOptions.push( it.get().value("fullcode"));}.fold() )
.sideEffect{ lines = [];}.where( __.out("METHOD", "USE", "PPP", "CONST").emit().repeat( __.out($this->linksDown)).times($MAX_LOOPING).sideEffect{ lines.add(it.get().value("line")); }.fold())
.sideEffect{ file = "";}.where( __.in().emit().repeat( __.inE().not(hasLabel("DEFINITION")).outV() ).until(hasLabel("File")).hasLabel("File").sideEffect{ file = it.get().value("fullcode"); }.fold() )
.sideEffect{ phpdoc = ""; }.where(__.out("PHPDOC").sideEffect{ phpdoc = it.get().value("fullcode"); }.fold() )
.map{ 
        ["id" : "",
         "fullnspath":it.get().value("fullnspath"),
         "name": it.get().vertices(OUT, "NAME").next().value("fullcode"),
         "namespace": 1,
         "type":"class",
         "abstract":it.get().properties("abstract").any(),
         "final":it.get().properties("final").any(),
         "phpdoc":phpdoc,
         "begin":lines.min(),
         "end":lines.max(),
         "file":file,
         "line":it.get().value("line"),

         "extends":extendList,
         "implements":implementList,
         "uses":useList.unique(),
         "usesOptions":usesOptions.join(";")
         ];
}
GREMLIN
);
        $query->prepareRawQuery();
        $classes = $this->gremlin->query($query->getQuery(), $query->getArguments());

        $total = 0;

        $cit = array();
        $citId = array();
        $cit_implements = array();
        $cit_use = array();
        $citCount = $this->dump->getTableCount('cit');

        foreach($classes as $row) {
            $namespace = preg_replace('#\\\\[^\\\\]*?$#is', '', $row['fullnspath']) . '\\';

            if (isset($namespacesId[$namespace])) {
                $namespaceId = $namespacesId[$namespace];
            } else {
                $namespaceId = 1;
            }

            $cit_implements[$row['line'] . $row['fullnspath']] = $row['implements'];
            unset($row['implements']);
            $cit_use[$row['line'] . $row['fullnspath']] = array('uses'    => $row['uses'],
                                                                'options' => $row['usesOptions'],
                                                                );
            unset($row['uses']);
            unset($row['usesOptions']);
            $citId[$row['line'] . $row['fullnspath']] = ++$citCount;
            unset($row['fullnspath']);
            $row['namespace'] = $namespaceId;
            $cit[] = $row;

            ++$total;
        }

        // Interfaces
        $query = $this->newQuery('cit interfaces');
        $query->atomIs('Interface', Analyzer::WITHOUT_CONSTANTS)
              ->raw(<<<GREMLIN
 sideEffect{ extendList = ''; }.where(__.out("EXTENDS").sideEffect{ extendList = it.get().value("fullnspath"); }.fold() )
.sideEffect{ lines = [];}.where( __.out("METHOD", "CONST").emit().repeat( __.out($this->linksDown)).times($MAX_LOOPING).sideEffect{ lines.add(it.get().value("line")); }.fold())
.sideEffect{ file = [];}.where( __.in().emit().repeat( __.inE().not(hasLabel("DEFINITION")).outV()).until(hasLabel("File")).hasLabel("File").sideEffect{ file = it.get().value("fullcode"); }.fold() )
.sideEffect{ phpdoc = ''; }.where(__.out("PHPDOC").sideEffect{ phpdoc = it.get().value("fullcode"); }.fold() )
.map{ 
        ['id' : '',
         'fullnspath':it.get().value("fullnspath"),
         'name': it.get().vertices(OUT, "NAME").next().value("fullcode"),
         'namespace': 1,
         'type':'interface',
         'abstract':0,
         'final':0,
         'phpdoc':phpdoc,
         'begin':lines.min(),
         'end':lines.max(),
         'file':file,
         'line':it.get().value("line"),

         'extends':extendList,
         ];
}

GREMLIN
);
        $query->prepareRawQuery();
        $interfaces = $this->gremlin->query($query->getQuery(), $query->getArguments());

        $total = 0;
        foreach($interfaces as $row) {
            $namespace = preg_replace('#\\\\[^\\\\]*?$#is', '', $row['fullnspath']) . '\\';

            if (isset($namespacesId[$namespace])) {
                $namespaceId = $namespacesId[$namespace];
            } else {
                $namespaceId = 1;
            }

            $citId[$row['line'] . $row['fullnspath']] = ++$citCount;
            unset($row['fullnspath']);
            $row['namespace'] = $namespaceId;

            $cit[] = $row;

            ++$total;
        }

        display("$total interfaces\n");

        // Traits
        $query = $this->newQuery('cit traits');
        $query->atomIs('Trait', Analyzer::WITHOUT_CONSTANTS)
              ->raw(<<<GREMLIN
 sideEffect{ useList = []; }.where(__.out("USE").hasLabel("Usetrait").out("USE").sideEffect{ useList.push( it.get().value("fullnspath"));}.fold() )
.sideEffect{ usesOptions = []; }.where(__.out("USE").hasLabel("Usetrait").out("BLOCK").out("EXPRESSION").sideEffect{ usesOptions.push( it.get().value("fullcode"));}.fold() )
.sideEffect{ lines = [];}.where( __.out("METHOD", "USE", "PPP").emit().repeat( __.out($this->linksDown)).times($MAX_LOOPING).sideEffect{ lines.add(it.get().value("line")); }.fold())
.sideEffect{ file = "";}.where( __.in().emit().repeat( __.inE().not(hasLabel("DEFINITION")).outV()).until(hasLabel("File")).hasLabel("File").sideEffect{ file = it.get().value("fullcode"); }.fold() )
.sideEffect{ phpdoc = ""; }.where(__.out("PHPDOC").sideEffect{ phpdoc = it.get().value("fullcode"); }.fold() )
.map{ 
        ["id" : "",
         "fullnspath":it.get().value("fullnspath"),
         "name": it.get().vertices(OUT, "NAME").next().value("fullcode"),
         "namespace": 1,
         "type":"trait",
         "abstract":0,
         "final":0,
         "phpdoc":phpdoc,
         "begin":lines.min(),
         "end":lines.max(),
         "file":file,
         "line":it.get().value("line"),
         
         "extends":"",
         "implements":[],
         "uses":useList.unique(),
         "usesOptions":usesOptions.join(";")
         ];
}

GREMLIN
);
        $query->prepareRawQuery();
        $traits = $this->gremlin->query($query->getQuery(), $query->getArguments());

        $total = 0;
        foreach($traits as $row) {
            $namespace = preg_replace('#\\\\[^\\\\]*?$#is', '', $row['fullnspath']) . '\\';

            if (isset($namespacesId[$namespace])) {
                $namespaceId = $namespacesId[$namespace];
            } else {
                $namespaceId = 1;
            }

            $row['implements'] = array(); // always empty

            unset($row['implements']);
            $cit_use[$row['line'] . $row['fullnspath']] = array('uses'    => $row['uses'],
                                                                'options' => $row['usesOptions'],
                                                                );
            unset($row['uses']);
            unset($row['usesOptions']);
            $citId[$row['line'] . $row['fullnspath']] = ++$citCount;
            unset($row['fullnspath']);
            $row['namespace'] = $namespaceId;

            $cit[] = $row;

            ++$total;
        }
        display("$total traits\n");

        if (!empty($cit)) {
            foreach($cit as &$aCit) {
                if (empty($aCit['extends'])) {
                    continue;
                }

                $citIds = preg_grep('/^\d+' . preg_quote($aCit['extends'], '/') . '$/i', array_keys($citId));

                if (!empty($citIds)) {
                    $aCit['extends'] = intval($citId[array_pop($citIds)]);
                }
            }
            $this->storeToDumpArray('cit', $cit);

            $toDump = array();
            foreach($cit_implements as $id => $impl) {
                foreach($impl as $implements) {
                    $citIds = preg_grep('/^\d+' . addslashes(mb_strtolower($implements)) . '$/', array_keys($citId));

                    if (empty($citIds)) {
                        $toDump[] = array('', $citId[$id], $implements, 'implements', '');
                    } else {
                        // Here, we are missing the one that are not found
                        foreach($citIds as $c) {
                            $toDump[] = array('', $citId[$id], $citId[$c], 'implements', '');
                        }
                    }
                }
            }

            $total = $this->storeToDumpArray('cit_implements', $toDump);
            display("$total implements \n");

            $toDump = array();
            foreach($cit_use as $id => $use1) {
                $options = $use1['options'];

                foreach($use1['uses'] as $uses) {
                    $citIds = preg_grep('/^\d+\\\\' . addslashes(mb_strtolower($uses)) . '$/', array_keys($citId));

                    if (empty($citIds)) {
                        $toDump[] = array('', $citId[$id], $uses, 'use', $options);
                    } else {
                        // Here, we are missing the one that are not found
                        foreach($citIds as $c) {
                            $toDump[] = array('', $citId[$id], $uses, 'use', $options);
                        }
                    }
                    
                    // Options are stored only one for all. PHP doesn't care.
                    $options = '';
                }
            }
            $total = $this->storeToDumpArray('cit_implements', $toDump);
            display("$total uses\n");
        }

        // Methods
        $methodCount = 0;
        $methodIds = array();
        $query = $this->newQuery('cit methods');
        $query->atomIs(array('Method', 'Magicmethod'), Analyzer::WITHOUT_CONSTANTS)
              ->raw(<<<GREMLIN
     coalesce( 
            __.out("BLOCK").out("EXPRESSION").hasLabel("As"),
            __.hasLabel("Method", "Magicmethod")
     )
     .sideEffect{ 
        returntype = [];
        returntype_fnp = [];
        phpdoc     = '';
      }
     .where(
        __.coalesce( 
            __.out("AS").sideEffect{alias = it.get().value("fullcode")}.in("AS")
              .out("NAME").in("DEFINITION").hasLabel("Method", "Magicmethod"), 
            __.sideEffect{ alias = false; }
          )
         .as("method")
         .in("METHOD", "MAGICMETHOD").hasLabel("Class", "Interface", "Trait").sideEffect{classe = it.get().value("fullnspath"); classline =  it.get().value("line"); }
         .select("method")
         .where( __.sideEffect{ lines = [it.get().value("line")];}
                   .out("BLOCK").out("EXPRESSION")
                   .emit().repeat( __.out($this->linksDown)).times($MAX_LOOPING)
                   .sideEffect{ lines.add(it.get().value("line")); }
                   .fold()
          )
          .where( __.out('RETURNTYPE').not(hasLabel('Void')).sideEffect{ returntype.add(it.get().value("fullcode"));  
                                                                         returntype_fnp.add(it.get().value("fullnspath"));}.fold())
          .where( __.out('PHPDOC').sideEffect{ phpdoc = it.get().value("fullcode")}.fold())
          .where( __.out('NAME').sideEffect{ name = it.get().value("fullcode")}.fold())
          .map{ 

    if (alias == false) {
        signature = it.get().value("fullcode");
    } else {
        signature = it.get().value("fullcode").replaceFirst("function .*?\\\\(", "function "+alias+"(" );
    }
        }
      ) 
.map{["signature": signature,
         "name":name,
         "abstract":it.get().properties("abstract").any(),
         "final":it.get().properties("final").any(),
         "static":it.get().properties("static").any(),
         "reference":it.get().properties("reference").any(),
         "returntype": returntype.join("|").replaceAll('\\\\?\\\\|', '?'),
         "returntype_fnp": returntype_fnp.join("|"),

         "public":    it.get().value("visibility") == "public",
         "protected": it.get().value("visibility") == "protected",
         "private":   it.get().value("visibility") == "private",
         "class":     classe,
         "phpdoc":    phpdoc,
         "begin":     lines.min(),
         "end":       lines.max(),
         "classline": classline
         ];}

GREMLIN
);
        $query->prepareRawQuery();
        $methods = $this->gremlin->query($query->getQuery(), $query->getArguments());

        $total = 0;
        $toDump = array();
        $unique = array();
        foreach($methods as $row) {
            if ($row['public']) {
                $visibility = 'public';
            } elseif ($row['protected']) {
                $visibility = 'protected';
            } elseif ($row['private']) {
                $visibility = 'private';
            } else {
                $visibility = '';
            }

            if (!isset($citId[$row['classline'] . $row['class']])) {
                continue;
            }
            $methodId = $row['class'] . '::' . mb_strtolower($row['name']);
            if (isset($methodIds[$methodId])) {
                continue; // skip double
            }
            $methodIds[$methodId] = ++$methodCount;

            assert(isset($citId[$row['classline'] . $row['class']]));

            $toDump[] = array($methodCount,
                             $row['name'],
                             $citId[$row['classline'] . $row['class']],
                             (int) $row['static'],
                             (int) $row['final'],
                             (int) $row['abstract'],
                             (int) $row['reference'],
                             $visibility,
                             $row['returntype'],
                             $row['returntype_fnp'],
                             $row['phpdoc'],
                             (int) $row['begin'],
                             (int) $row['end']
                             );
            ++$total;
        }
        $this->dump->cleanTable('methods');
        $total = $this->storeToDumpArray('methods', $toDump);

        // Arguments
        $query = $this->newQuery('Method parameters');
        $query->atomIs('Parameter', Analyzer::WITHOUT_CONSTANTS)
              ->inIs('ARGUMENT')
              ->atomIs(array('Method', 'Magicmethod'), Analyzer::WITHOUT_CONSTANTS)
              ->raw(<<<'GREMLIN'
where( __.out('NAME').sideEffect{ methode = it.get().value("fullcode").toString().toLowerCase() }.fold())
GREMLIN
)
             ->inIs(array('METHOD', 'MAGICMETHOD'))
             ->atomIs(array('Class', 'Interface', 'Trait'), Analyzer::WITHOUT_CONSTANTS)
             ->savePropertyAs('fullnspath', 'classe')
             ->savePropertyAs('line', 'classline')
             ->back('first')
             ->raw(<<<'GREMLIN'
sideEffect{
    init = '';
    typehint = [];
    typehint_fnp = [];
    phpdoc = '';
}
.where( __.out('NAME').sideEffect{ name = it.get().value("fullcode")}.fold())
.where( __.out('TYPEHINT').not(hasLabel('Void')).sideEffect{ typehint.add(it.get().value("fullcode")); typehint_fnp.add(it.get().value("fullnspath"));}.fold())
.where( __.out('DEFAULT').not(hasLabel('Void')).not(where(__.in("RIGHT"))).sideEffect{ init = it.get().value("fullcode")}.fold())
.where( __.out('PHPDOC').sideEffect{ phpdoc = it.get().value("fullcode")}.fold())
.map{ 
    x = ["name": name,
         "rank":it.get().value("rank"),
         "variadic":it.get().properties("variadic").any(),
         "reference":it.get().properties("reference").any(),

         "classe":classe,
         "methode":methode,
         "line": it.get().value("line"),
         "classline": classline,

         "init": init,
         "typehint":typehint.join('|').replaceAll('\\?\\|', '?'),
         "typehint_fnp": typehint_fnp.join('|'),
         "phpdoc": phpdoc,
         ];
}

GREMLIN
);
        $query->prepareRawQuery();
        $result = $this->gremlin->query($query->getQuery(), $query->getArguments());

        $total = 0;
        $toDump = array();
        foreach($result->toArray() as $row) {
            assert(isset($methodIds[$row['classe'] . '::' . mb_strtolower($row['methode'])]));
            $toDump[] = array('',
                              $row['name'],
                              (int) $citId[$row['classline'] . $row['classe']],
                              $methodIds[$row['classe'] . '::' . mb_strtolower($row['methode'])],
                              (int) $row['rank'],
                              (int) $row['reference'],
                              (int) $row['variadic'],
                              $row['init'],
                              (int) $row['line'],
                              $row['typehint'],
                              $row['typehint_fnp'],
                              $row['phpdoc'],
            );
        }

        $total = $this->storeToDumpArray('arguments', $toDump);
        display("$total arguments\n");

        // Properties
        $query = <<<'GREMLIN'
g.V().hasLabel("Propertydefinition").as("property")
     .in("PPP")
.sideEffect{ 
    x_static = it.get().properties("static").any();
    x_public = it.get().value("visibility") == "public";
    x_protected = it.get().value("visibility") == "protected";
    x_private = it.get().value("visibility") == "private";
    x_var = it.get().value("token") == "T_VAR";
    phpdoc = '';
    init = '';
    typehint = [];
    typehint_fnp = [];
}
     .where( __.out('TYPEHINT').not(hasLabel('Void')).sideEffect{ typehint.add(it.get().value("fullcode")); typehint_fnp.add(it.get().value("fullnspath"));}.fold())
     .where( __.out('DEFAULT').not(hasLabel('Void')).not(where( __.in("RIGHT"))).sideEffect{ init = it.get().value("fullcode")}.fold())
     .where( __.out('PHPDOC').sideEffect{ phpdoc = it.get().value("fullcode")}.fold())
     .in("PPP").hasLabel("Class", "Interface", "Trait")
     .sideEffect{classe = it.get().value("fullnspath"); }
     .sideEffect{classline = it.get().value("line"); }
     .select("property")
.map{ 
    b = it.get().value("fullcode").tokenize(' = ');
    name = b[0];

   ["class":classe,
    "static":x_static,
    "public":x_public,
    "protected":x_protected,
    "private":x_private,
    "var":x_var,
    "name": name,
    "value": init,
    "phpdoc":phpdoc,
    "classline":classline,
    "typehint":typehint.join('|').replaceAll('\\?\\|', '?'),
    "typehint_fnp": typehint_fnp.join('|')
    ];
}

GREMLIN;
        $result = $this->gremlin->query($query);

        $total = 0;
        $toDump = array();
        $propertyIds = array();
        $propertyCount = 0;
        foreach($result->toArray() as $row) {
            if ($row['public']) {
                $visibility = 'public';
            } elseif ($row['protected']) {
                $visibility = 'protected';
            } elseif ($row['private']) {
                $visibility = 'private';
            } elseif ($row['var']) {
                $visibility = '';
            } else {
                continue;
            }

            // If we haven't found any definition for this class, just ignore it.
            if (!isset($citId[$row['classline'] . $row['class']])) {
                continue;
            }
            $propertyId = $row['class'] . '::' . $row['name'];
            if (isset($propertyIds[$propertyId])) {
                continue; // skip double
            }
            $propertyIds[$propertyId] = ++$propertyCount;

            $toDump[] = array('',
                              $row['name'],
                              (int) $citId[$row['classline'] . $row['class']],
                              $visibility,
                              (int) $row['static'],
                              $row['phpdoc'],
                              $row['value'],
                              $row['typehint'],
                              $row['typehint_fnp'],
            );
        }
        $total = $this->storeToDumpArray('properties', $toDump);
        display("$total properties\n");

        // Class Constant
        $query = $this->newQuery('cit constants');
        $query->atomIs(array('Class', 'Classanonymous', 'Interface'), Analyzer::WITHOUT_CONSTANTS)
              ->savePropertyAs('line', 'ligne')
              ->savePropertyAs('line', 'classline')
              ->savePropertyAs('fullnspath', 'classe')
              ->outIs('CONST')
              ->savePropertyAs('visibility', 'visibilite')
              ->initVariable('phpdoc', '""')
              ->raw(<<<'GREMLIN'
      where( __.out('PHPDOC').sideEffect{ phpdoc = it.get().value("fullcode")}.fold())
     .where( __.out('CONST').out('NAME').sideEffect{ name = it.get().value("fullcode")}.fold())
     .where( __.out('CONST').out('VALUE').sideEffect{ valeur = it.get().value("fullcode")}.fold())
     .map{ 
    x = ["name": name,
         "value": valeur,
         "visibility": visibilite,
         "class": classe,
         "phpdoc": phpdoc,
         "line": ligne,
         "classline": classline
         ];
}

GREMLIN
);
        $query->prepareRawQuery();
        $classConstants = $this->gremlin->query($query->getQuery(), $query->getArguments());

        $total = 0;
        $toDump = array();

        $classConstIds = array();
        $classConstCount = 0;
        foreach($classConstants as $row) {
            $row['visibility'] = $row['visibility'] === 'none' ? '' : $row['visibility'];

            // If we haven't found any definition for this class, just ignore it.
            if (!isset($citId[$row['classline'] . $row['class']])) {
                continue;
            }
            $classConstId = $row['class'] . '::' . $row['name'];
            if (isset($classConstIds[$classConstId])) {
                continue; // skip double
            }
            $classConstIds[$classConstId] = ++$classConstCount;

            $toDump[] = array('',
                              $row['name'],
                              (int) $citId[$row['classline'] . $row['class']],
                              $row['visibility'],
                              $row['value'],
                              $row['phpdoc'],
            );
        }

        $total = $this->storeToDumpArray('classconstants', $toDump);
        display("$total class constants\n");

        // Global Constants
        $query = $this->newQuery('Constants define()');
        $query->atomIs('Defineconstant', Analyzer::WITHOUT_CONSTANTS)
              ->raw(<<<'GREMLIN'
 sideEffect{ 
    file = ""; 
    namespace = "\\"; 
    phpdoc = "";
}
.where( __.out("PHPDOC").sideEffect{ phpdoc = it.get().value("fullcode"); }.fold())
.where( 
    __.in().emit().repeat( __.inE().not(hasLabel("DEFINITION")).outV()).until(hasLabel("File"))
           .coalesce( 
                __.hasLabel("File").sideEffect{ file = it.get().value("fullcode"); },
                __.hasLabel("Namespace").sideEffect{ namespace = it.get().value("fullnspath"); }
                )
           .fold() 
)
GREMLIN
)
              ->filter(
                $query->side()
                     ->outIs('NAME')
                     ->is('constant', true)
                     ->savePropertyAs('fullcode', 'name')
              )
              ->filter(
                $query->side()
                     ->outIs('VALUE')
                     ->is('constant', true)
                     ->savePropertyAs('fullcode', 'v')
              )
              ->raw(<<<'GREMLIN'
map{ ["name":name, 
      "value":v, 
      "namespace": namespace, 
      "file": file, 
      "type":"define",
      "phpdoc":phpdoc
    ]; 
}
GREMLIN
);
        $query->prepareRawQuery();
        $result = $this->gremlin->query($query->getQuery(), $query->getArguments());

        $total = 0;
        $toDump = array();
        foreach($result->toArray() as $row) {
            if (isset($namespacesId[$row['namespace'] . '\\'])) {
                $namespaceId = $namespacesId[$row['namespace'] . '\\'];
            } else {
                $namespaceId = 1;
            }

            $toDump[] = array('',
                              trim($row['name'], "'\""),
                              $namespaceId,
                              $this->files[$row['file']],
                              $row['value'],
                              $row['phpdoc'],
                              $row['type'],
            );
        }
        $total = $this->storeToDumpArray('constants', $toDump);
        display("$total global constants\n");

        $query = $this->newQuery('Constants const');
        $query->atomIs('Const', Analyzer::WITHOUT_CONSTANTS)
              ->raw(<<<'GREMLIN'
 sideEffect{ 
    file = ""; 
    namespace = "\\"; 
    phpdoc = "";
}
.where( 
    __.in().emit().repeat( __.inE().not(hasLabel("DEFINITION")).outV()).until(hasLabel("File"))
           .coalesce( 
                __.hasLabel("File").sideEffect{ file = it.get().value("fullcode"); },
                __.hasLabel("Namespace").sideEffect{ namespace = it.get().value("fullnspath"); }
                )
           .fold() 
)
.where( __.out("PHPDOC").sideEffect{ phpdoc = it.get().value("fullcode"); }.fold())
GREMLIN
)
              ->hasNoIn('CONST') // Not class or interface
              ->outIs('CONST')
              ->atomIs('Constant', Analyzer::WITHOUT_CONSTANTS)
              ->filter(
                $query->side()
                     ->outIs('NAME')
                     ->is('constant', true)
                     ->savePropertyAs('fullcode', 'name')
              )
              ->filter(
                $query->side()
                     ->outIs('VALUE')
                     ->is('constant', true)
                     ->savePropertyAs('fullcode', 'v')
              )

              ->raw('map{ ["name":name, 
                           "value":v, 
                           "namespace": namespace, 
                           "file": file, 
                           "type":"const",
                           "phpdoc": phpdoc
                           ]; }');
        $query->prepareRawQuery();
        $result = $this->gremlin->query($query->getQuery(), $query->getArguments());

        $toDump = array();
        foreach($result->toArray() as $row) {
            $toDump[] = array('',
                              $row['name'],
                              $namespacesId[$row['namespace'] . '\\'] ?? 1,
                              $this->files[$row['file']],
                              $row['value'],
                              $row['phpdoc'],
                              $row['type'],
                            );
        }

        $total = $this->storeToDumpArray('constants', $toDump);
        display("$total const constants\n");

        // Collect Functions
        // Functions
        $query = $this->newQuery('Functions');
        $query->atomIs(array('Function', 'Closure', 'Arrowfunction'), Analyzer::WITHOUT_CONSTANTS)
              ->raw(<<<GREMLIN
 sideEffect{ 
    lines = []; 
    reference = it.get().properties("reference").any(); 
    fullnspath = it.get().value("fullnspath"); 
    returntype = []; 
    returntype_fnp = []; 
    name = it.get().label();
    phpdoc = '';
}
.where( 
    __.out("BLOCK").out("EXPRESSION").emit().repeat( __.out({$this->linksDown})).times($MAX_LOOPING)
      .sideEffect{ lines.add(it.get().value("line")); }
      .fold()
 )
.where( __.out('RETURNTYPE').not(hasLabel('Void')).sideEffect{ returntype.add(it.get().value("fullcode"));returntype_fnp.add(it.get().value("fullnspath"));}.fold())
.where( __.out("NAME").sideEffect{ name = it.get().value("fullcode"); }.fold())
.where( __.out("PHPDOC").sideEffect{ phpdoc = it.get().value("fullcode"); }.fold())
GREMLIN
)
              ->raw(<<<'GREMLIN'
 sideEffect{ 
    file = ""; 
    namespace = "\\"; 
}
.where( 
    __.in().emit().repeat( __.inE().not(hasLabel("DEFINITION")).outV()).until(hasLabel("File"))
           .coalesce( 
                __.hasLabel("File").sideEffect{ file = it.get().value("fullcode"); },
                __.hasLabel("Namespace").sideEffect{ namespace = it.get().value("fullnspath"); }
                )
           .fold() 
)
GREMLIN
)
              ->raw(<<<'GREMLIN'
map{ ["name":name, 
      "type":it.get().label().toString().toLowerCase(),
      "line":it.get().value("line"),
      "file":file, 
      "namespace":namespace, 
      "fullnspath":fullnspath, 
      "reference":reference,
      "returntype":returntype.join('|').replaceAll('\\?\\|', '?'),
      "returntype_fnp":returntype_fnp.join('|'),
      "begin": lines.min(), 
      "end":lines.max(),
      "phpdoc":phpdoc
      ]; 
}
GREMLIN
);
        $query->prepareRawQuery();
        $result = $this->gremlin->query($query->getQuery(), $query->getArguments());

        $toDump = array();
        $unique = array();
        foreach($result->toArray() as $row) {
            if (isset($unique[$row['name'] . $row['line']])) {
                continue;  // Skipping double definitions until we can differentiate them.
            }
            $unique[$row['name'] . $row['line']] = 1;

            if (strpos($row['fullnspath'], '@') !== false) {
                // case of closure or arrow function
                $ns = '';
                ++$methodCount;
            } else {
                $methodIds[$row['fullnspath']] = ++$methodCount;
                $n = $row['namespace'];
                if ($n[-1] !== '\\') {
                    $n .= '\\';
                }
                $ns = preg_grep('%^' . addslashes($n) . '$%i', array_keys($namespacesId));
                $k = array_pop($ns);

                $ns = $namespacesId[$k];
            }

            $toDump[] = array($methodCount,
                              $row['name'],
                              $row['type'],
                              $ns,
                              $row['returntype'],
                              $row['returntype_fnp'],
                              (int) $row['reference'],
                              $this->files[$row['file']],
                              $row['phpdoc'],
                              (int) $row['begin'],
                              (int) $row['end'],
                              );
        }

        $this->dump->cleanTable('functions');
        $total = $this->storeToDumpArray('functions', $toDump);
        display("$total functions\n");

        $query = $this->newQuery('Function parameters');
        $query->atomIs('Parameter', Analyzer::WITHOUT_CONSTANTS)
              ->inIs('ARGUMENT')
              ->atomIs(array('Function', 'Closure', 'Arrowfunction'), Analyzer::WITHOUT_CONSTANTS)
              ->raw(<<<'GREMLIN'
where( __.sideEffect{ fonction = it.get().label().toString().toLowerCase(); 
                      fullnspath = it.get().value("fullnspath");  
                    }.fold() 
      )
.where( __.out('NAME')
         .sideEffect{ fonction = it.get().value("fullcode").toString().toLowerCase();}
         .fold()
     )
.sideEffect{ classe = it.get().value("fullnspath")}

.select('first')

.sideEffect{
    init = '';
    typehint = [];
    typehint_fnp = [];
    phpdoc = '';
}
.where( __.out('NAME').sideEffect{ name = it.get().value("fullcode")}.fold())
.where( __.out('TYPEHINT').not(hasLabel('Void')).sideEffect{ typehint.add(it.get().value("fullcode")); typehint_fnp.add(it.get().value("fullnspath"));}.fold())
.where( __.out('DEFAULT').not(hasLabel('Void')).not(where(__.in("RIGHT"))).sideEffect{ init = it.get().value("fullcode")}.fold())
.where( __.out("PHPDOC").sideEffect{ phpdoc = it.get().value("fullcode"); }.fold())
.map{ 
    x = ["name": name,
         "fullnspath":fullnspath,
         "rank":it.get().value("rank"),
         "variadic":it.get().properties("variadic").any(),
         "reference":it.get().properties("reference").any(),
         "line":it.get().properties("line"),

         "function":fonction,

         "init": init,
         "typehint":typehint.join('|').replaceAll('\\?\\|', '?'),
         "typehint_fnp":typehint_fnp.join('|'),
         "phpdoc":phpdoc,
         ];
}

GREMLIN
);
        $query->prepareRawQuery();
        $result = $this->gremlin->query($query->getQuery(), $query->getArguments());

        $toDump = array();
        foreach($result->toArray() as $row) {
            // Those were skipped in the previous loop
            if (!isset($methodIds[$row['fullnspath']])) {
                continue;
            }

            $toDump[] = array( '',
                               $row['name'],
                               0,
                               $methodIds[$row['fullnspath']],
                               (int) $row['rank'],
                               (int) $row['reference'],
                               (int) $row['variadic'],
                               $row['init'],
                               (int) $row['line'],
                               $row['typehint'],
                               $row['typehint_fnp'],
                               $row['phpdoc'],
            );
        }
        $total = $this->storeToDumpArray('arguments', $toDump);
        display("$total function arguments\n");
    }

    private function collectStructures_namespaces(): array {
        $query = $this->newQuery('collectStructures_namespaces');
        $query->atomIs('Namespace', Analyzer::WITHOUT_CONSTANTS)
              ->outIs('NAME')
              ->initVariable('name', 'it.get().value("fullcode") == " " ? "\\\\" : "\\\\" + it.get().value("fullcode") + "\\\\"')
              ->getVariable('name')
              ->unique();
        $query->prepareRawQuery();
        $namespaces = $this->gremlin->query($query->getQuery(), $query->getArguments());
        $namespaces->string2Array();

        $this->dump->storeInTable('namespaces', $namespaces);

        $namespacesId = $this->dump->fetchTable('namespaces');
        $namespacesId->map(function (array $x): array { $x['namespace'] = mb_strtolower($x['namespace']); return $x; });
        return $namespacesId->toHash('namespace', 'id');
    }

    private function collectFiles(): void {
        $this->files = $this->dump->fetchTable('files')->toHash('file', 'id');
    }

    private function collectPhpStructures(): void {
        $this->collectPhpStructures2('Functioncall', 'Functions/IsExtFunction', 'function');
        $this->collectPhpStructures2('Identifier", "Nsname', 'Constants/IsExtConstant', 'constant');
        $this->collectPhpStructures2('Identifier", "Nsname', 'Interfaces/IsExtInterface', 'interface');
        $this->collectPhpStructures2('Identifier", "Nsname', 'Traits/IsExtTrait', 'trait');
        $this->collectPhpStructures2('Newcall", "Identifier", "Nsname', 'Classes/IsExtClass', 'class');
    }

    private function collectPhpStructures2(string $label, string $analyzer, string $type): int {
        $query = <<<GREMLIN
g.V().hasLabel("$label").where( __.in("ANALYZED").has("analyzer", "$analyzer"))
.coalesce( __.out("NAME"), __.filter{true;})
.groupCount("m").by("fullcode").cap("m").next().sort{ it.value.toInteger() };
GREMLIN;
        $res = $this->gremlin->query($query);
        $res->deHash(array($type));

        $total = $this->dump->storeInTable('atomsCounts', $res);
        display("$total PHP {$type}s\n");

        return $total;
    }

    private function collectDefinitionsStats(): void {
        $toDump = array();
        $types = array('Staticconstant'   => 'staticconstants',
                       'Staticmethodcall' => 'staticmethodcalls',
                       'Staticproperty'   => 'staticproperty',

                       'Methodcall'       => 'methodcalls',
                       'Member'           => 'members',
                        );

        foreach($types as $label => $name) {
            $query = <<<GREMLIN
g.V().hasLabel("$label").count();
GREMLIN;
            $res = $this->gremlin->query($query);
            $toDump[] = array('',
                              $name,
                              $res->toInt(),
                              );

            $query = <<<GREMLIN
g.V().hasLabel("$label").where(__.in("DEFINITION").not(hasLabel("Virtualproperty"))).count();
GREMLIN;
            $res = $this->gremlin->query($query);
            $toDump[] = array('',
                              "$name defined",
                              $res->toInt(),
                              );
        }

        $count = $this->storeToDumpArray('hash', $toDump);
        display("$count Definitions Stats");
    }

    private function collectFilesDependencies(): void {
        // Direct inclusion
        $query = $this->newQuery('Inclusions');
        $query->atomIs('Include', Analyzer::WITHOUT_CONSTANTS)
              ->outIs('ARGUMENT')
              ->outIsIE('CODE')
              ->_as('include')
              ->goToInstruction('File')
              ->_as('file')
              ->_as('id')
              ->_as('type')
              ->select(array('id'      => '',
                             'file'    => 'fullcode',
                             'include' => 'fullcode',
                             'type'    => 'include'
                             ));
        $count = $this->storeToDump('filesDependencies', $query);

        // Finding extends and implements
        $query = $this->newQuery('Extensions');
        $query->atomIs(array('Class', 'Interface'), Analyzer::WITHOUT_CONSTANTS)
              ->goToInstruction('File')
              ->savePropertyAs('fullcode', 'calling')
              ->back('first')

              ->raw('outE().hasLabel("EXTENDS", "IMPLEMENTS").sideEffect{ type = it.get().label().toLowerCase(); }.inV()')
              ->inIs('DEFINITION')
              ->atomIs(array('Class', 'Interface'), Analyzer::WITHOUT_CONSTANTS)

              ->goToInstruction('File')
              ->savePropertyAs('fullcode', 'called')

              ->raw('map{ ["id": "", "file":calling, "include":called, "type":type]; }');
        $count = $this->storeToDump('filesDependencies', $query);
        display($count . ' extends for classes');

        // Finding extends for interfaces
        $query = $this->newQuery('Interfaces');
        $query->atomIs('Interface', Analyzer::WITHOUT_CONSTANTS)
              ->_as('classe')
              ->_as('id')
              ->_as('type')
              ->raw(<<<'GREMLIN'
repeat( __.inE().not(hasLabel("DEFINITION")).outV() ).until(hasLabel("File"))
GREMLIN
)
                ->_as('file')
              ->raw(<<<'GREMLIN'
select("classe").out("EXTENDS")
.repeat( __.inE().not(hasLabel("DEFINITION")).outV() ).until(hasLabel("File"))
GREMLIN
)
              ->_as('include')
              ->select(array('id'      => '',
                             'file'    => 'fullcode',
                             'include' => 'fullcode',
                             'type'    => 'extends'
                             ));
        $count = $this->storeToDump('filesDependencies', $query);
        display($count . ' extends for interfaces');

        // Finding typehint
        $query = $this->newQuery('Typehint');
        $query->atomIs(Analyzer::FUNCTIONS_ALL, Analyzer::WITHOUT_CONSTANTS)
              ->outIs('ARGUMENT')
              ->outIs('TYPEHINT')
              ->fullnspathIsNot(array('\\int', '\\\float', '\\object', '\\boolean', '\\string', '\\array', '\\callable', '\\iterable', '\\void'))
              ->inIs('DEFINITION')
              ->goToInstruction('File')
              ->_as('include')

              ->back('first')
              ->_as('id')
              ->_as('type')
              ->goToInstruction('File')
              ->_as('file')
              ->select(array('id'      => '',
                             'file'    => 'fullcode',
                             'include' => 'fullcode',
                             'type'    => 'use'
                             ));
        $count1 = $this->storeToDump('filesDependencies', $query);

        $query = $this->newQuery('Return Typehint');
        $query->atomIs(Analyzer::FUNCTIONS_ALL, Analyzer::WITHOUT_CONSTANTS)
              ->outIs('RETURNTYPE')
              ->fullnspathIsNot(array('\\int', '\\\float', '\\object', '\\boolean', '\\string', '\\array', '\\callable', '\\iterable', '\\void'))
              ->inIs('DEFINITION')
              ->goToInstruction('File')
              ->_as('include')

              ->back('first')
              ->_as('id')
              ->_as('type')
              ->goToInstruction('File')
              ->_as('file')
              ->select(array('id'      => '',
                             'file'    => 'fullcode',
                             'include' => 'fullcode',
                             'type'    => 'use'
                             ));
        $count2 = $this->storeToDump('filesDependencies', $query);
        display(($count1 + $count2) . ' typehint ');

        // Finding trait use
        $query = $this->newQuery('Trait use');
        $query->atomIs('Usetrait', Analyzer::WITHOUT_CONSTANTS)
              ->outIs('USE')
              ->_as('use')
              ->goToFile()
              ->_as('file')
              ->_as('id')
              ->_as('type')
              ->back('use')
              ->inIs('DEFINITION')
              ->goToFile()
              ->_as('include')
              ->select(array('id'      => '',
                             'file'    => 'fullcode',
                             'include' => 'fullcode',
                             'type'    => 'use',
                             ));
        $count = $this->storeToDump('filesDependencies', $query);
        display($count . ' traits ');

        // Functioncall()
        $query = $this->newQuery('Functioncall');
        $query->atomIs('Functioncall', Analyzer::WITHOUT_CONSTANTS)
              ->_as('functioncall')
              ->goToFile()
              ->_as('file')
              ->_as('id')
              ->_as('type')
              ->back('functioncall')
              ->inIs('DEFINITION')
              ->goToFile()
              ->_as('include')
              ->select(array('id'      => '',
                             'file'    => 'fullcode',
                             'include' => 'fullcode',
                             'type'    => 'use'
                             ));
        $count = $this->storeToDump('filesDependencies', $query);
        display($count . ' functioncall');

        // constants
        $query = $this->newQuery('Constant');
        $query->atomIs('Identifier', Analyzer::WITHOUT_CONSTANTS)
              ->hasNoIn(array('NAME', 'CLASS', 'MEMBER', 'AS', 'CONSTANT', 'TYPEHINT', 'EXTENDS', 'USE', 'IMPLEMENTS', 'INDEX'))
              ->_as('constant')
              ->goToFile()
              ->_as('file')
              ->_as('id')
              ->_as('type')
              ->back('constant')
              ->inIs('DEFINITION')
              ->goToFile()
              ->_as('include')
              ->select(array('id'      => '',
                             'file'    => 'fullcode',
                             'include' => 'fullcode',
                             'type'    => 'use'
                             ));
        $count = $this->storeToDump('filesDependencies', $query);
        display($count . ' constants');

        // New
        $query = $this->newQuery('New');
        $query->atomIs(array('New', 'Clone'), Analyzer::WITHOUT_CONSTANTS)
              ->outIs(array('NEW', 'CLONE'))
              ->_as('new')
              ->goToFile()
              ->_as('file')
              ->_as('id')
              ->_as('type')
              ->back('new')
              ->inIs('DEFINITION')
              ->goToFile()
              ->_as('include')
              ->select(array('id'      => '',
                             'file'    => 'fullcode',
                             'include' => 'fullcode',
                             'type'    => 'use'
                             ));
        $count = $this->storeToDump('filesDependencies', $query);
        display($count . ' new and clone');

        // static calls (property, constant, method)
        $query = $this->newQuery('static calls');
        $query->atomIs(array('Staticconstant', 'Staticmethodcall', 'Staticproperty'), Analyzer::WITHOUT_CONSTANTS)
              ->outIs('CLASS')
              ->_as('call')
              ->goToFile()
              ->_as('file')
              ->_as('id')
              ->_as('type')
              ->back('call')
              ->inIs('DEFINITION')
              ->goToFile()
              ->_as('include')
              ->select(array('id'      => '',
                             'file'    => 'fullcode',
                             'include' => 'fullcode',
                             'type'    => 'use'
                             ));
        $count = $this->storeToDump('filesDependencies', $query);
        display($count . ' static call');

        // Skipping normal method/property call : They actually depends on new
        // Magic methods : todo!
        // instanceof ?
    }

    private function collectClassesDependencies(): void {
        // Finding extends and implements
        $query = $this->newQuery('Extensions of classes');
        $query->atomIs(array('Class', 'Interface'), Analyzer::WITHOUT_CONSTANTS)
              ->raw('sideEffect{ calling_type = it.get().label().toLowerCase(); }')
              ->outIs('NAME')
              ->savePropertyAs('fullcode', 'calling_name')
              ->back('first')
              ->savePropertyAs('fullnspath', 'calling')

              ->raw('outE().hasLabel("EXTENDS", "IMPLEMENTS").sideEffect{ type = it.get().label().toLowerCase(); }.inV()')
              ->inIs('DEFINITION')
              ->atomIs(array('Class', 'Interface'), Analyzer::WITHOUT_CONSTANTS)
              ->raw('sideEffect{ called_type = it.get().label().toLowerCase(); }')
              ->outIs('NAME')
              ->savePropertyAs('fullcode', 'called_name')

              ->savePropertyAs('fullnspath', 'called')

              ->raw(<<<'GREMLIN'
map{ ["calling":calling, 
      "calling_name":calling_name, 
      "calling_type":calling_type, 
      "type":type, 
      "called":called, 
      "called_name":called_name, 
      "called_type":called_type, 
           ]; }
GREMLIN
);
        $query->prepareRawQuery();
        $count = $this->storeToDump('classesDependencies', $query);
        display($count . ' extends for classes');

        // Finding extends for interfaces
        $query = $this->newQuery('Interfaces extensions');
        $query->atomIs('Interface', Analyzer::WITHOUT_CONSTANTS)
              ->savePropertyAs('fullnspath', 'calling')
              ->outIs('NAME')
              ->savePropertyAs('fullcode', 'calling_name')
              ->back('first')

              ->outIs('EXTENDS')
              ->inIs('DEFINITION')
              ->atomIs('Interface', Analyzer::WITHOUT_CONSTANTS)

              ->savePropertyAs('fullnspath', 'called')
              ->outIs('NAME')
              ->savePropertyAs('fullcode', 'called_name')

              ->raw(<<<'GREMLIN'
map{ ["id": "",
      "calling":calling, 
      "calling_name":calling_name, 
      "calling_type":"interface", 
      "type":"extends", 
      "called":called, 
      "called_name":called_name, 
      "called_type":"interface", 
           ]; }
GREMLIN
);
        $query->prepareRawQuery();
        $count = $this->storeToDump('classesDependencies', $query);
        display($count . ' extends for interfaces');

        // Finding typehint
        $query = $this->newQuery('Typehint');
        $query->atomIs('Parameter', Analyzer::WITHOUT_CONSTANTS)
              ->outIs('TYPEHINT')
              ->fullnspathIsNot(array('\\int', '\\\float', '\\object', '\\boolean', '\\string', '\\array', '\\callable', '\\iterable', '\\void'))
              ->inIs('DEFINITION')
              ->raw('sideEffect{ called_type = it.get().label().toLowerCase(); }')
              ->savePropertyAs('fullnspath', 'called')
              ->outIs('NAME')
              ->savePropertyAs('fullcode', 'called_name')

              ->back('first')
              ->goToInstruction(Analyzer::CIT)

              ->savePropertyAs('fullnspath', 'calling')
              ->raw('sideEffect{ calling_type = it.get().label().toLowerCase(); }')
              ->outIs('NAME')
              ->savePropertyAs('fullcode', 'calling_name')

              ->raw(<<<'GREMLIN'
map{ ["id": "",
      "calling":calling, 
      "calling_name":calling_name, 
      "calling_type":calling_type, 
      "type":"typehint", 
      "called":called, 
      "called_name":called_name, 
      "called_type":called_type, 
           ]; }
GREMLIN
);
        $query->prepareRawQuery();
        $count1 = $this->storeToDump('classesDependencies', $query);

        $query = $this->newQuery('Return Typehint');
        $query->atomIs(array('Method', 'Magicmethod'), Analyzer::WITHOUT_CONSTANTS)
              ->outIs('RETURNTYPE')
              ->fullnspathIsNot(array('\\int', '\\\float', '\\object', '\\boolean', '\\string', '\\array', '\\callable', '\\iterable', '\\void'))
              ->inIs('DEFINITION')
              ->atomIs(array('Class', 'Interface'), Analyzer::WITHOUT_CONSTANTS)
              ->raw('sideEffect{ called_type = it.get().label().toLowerCase(); }')
              ->savePropertyAs('fullnspath', 'called')
              ->outIs('NAME')
              ->savePropertyAs('fullcode', 'called_name')
              ->back('first')

              ->goToInstruction(Analyzer::CIT)

              ->savePropertyAs('fullnspath', 'calling')
              ->raw('sideEffect{ calling_type = it.get().label().toLowerCase(); }')
              ->outIs('NAME')
              ->savePropertyAs('fullcode', 'calling_name')

              ->raw(<<<'GREMLIN'
map{ ["id": "",
      "calling":calling, 
      "calling_name":calling_name, 
      "calling_type":calling_type, 
      "type":"typehint", 
      "called":called, 
      "called_name":called_name, 
      "called_type":called_type, 
           ]; }
GREMLIN
);
        $query->prepareRawQuery();
        $count2 = $this->storeToDump('classesDependencies', $query);

        display(($count1 + $count2) . ' typehint ');

        // Finding trait use
        $query = $this->newQuery('Traits');
        $query->atomIs(array('Class', 'Trait'), Analyzer::WITHOUT_CONSTANTS)
              ->savePropertyAs('fullnspath', 'calling')
              ->raw('sideEffect{ calling_type = it.get().label().toLowerCase(); }')
              ->outIs('NAME')
              ->savePropertyAs('fullcode', 'calling_name')
              ->back('first')

              ->outIs('USE')
              ->outIs('USE')

              ->savePropertyAs('fullnspath', 'called')
              ->outIs('NAME')
              ->savePropertyAs('fullcode', 'called_name')
              ->raw(<<<'GREMLIN'
map{ ["id": "",
      "calling":calling, 
      "calling_name":calling_name, 
      "calling_type":calling_type, 
      "type":"use", 
      "called":called, 
      "called_name":called_name, 
      "called_type":"trait", 
           ]; }
GREMLIN
);
        $query->prepareRawQuery();
        $count = $this->storeToDump('classesDependencies', $query);
        display($count . ' trait use ');

        // New
        $query = $this->newQuery('New');
        $query->atomIs('New', Analyzer::WITHOUT_CONSTANTS)
              ->outIs('NEW')
              ->inIs('DEFINITION')
              ->atomIs(array('Class'), Analyzer::WITHOUT_CONSTANTS)
              ->savePropertyAs('fullnspath', 'called')
              ->outIs('NAME')
              ->savePropertyAs('fullcode', 'called_name')

              ->back('first')
              ->goToInstruction('Class') // no trait?

              ->savePropertyAs('fullnspath', 'calling')
              ->raw('sideEffect{ calling_type = it.get().label().toLowerCase(); }')
              ->outIs('NAME')
              ->savePropertyAs('fullcode', 'calling_name')

              ->raw(<<<'GREMLIN'
map{ ["id": "",
      "calling":calling, 
      "calling_name":calling_name, 
      "calling_type":calling_type, 
      "type":"new", 
      "called":called, 
      "called_name":called_name, 
      "called_type":"class", 
           ]; }
GREMLIN
);
        $query->prepareRawQuery();
        $count = $this->storeToDump('classesDependencies', $query);
        display($count . ' new ');

        // Clone
        $query = $this->newQuery('Clone');
        $query->atomIs('Clone', Analyzer::WITHOUT_CONSTANTS)
              ->goToInstruction(Analyzer::CIT)
              ->savePropertyAs('fullnspath', 'calling')
              ->raw('sideEffect{ calling_type = it.get().label().toLowerCase(); }')
              ->outIs('NAME')
              ->savePropertyAs('fullcode', 'calling_name')
              ->back('first')

              ->outIs('CLONE')
              ->inIs('DEFINITION')
              ->atomIs(array('Class'), Analyzer::WITHOUT_CONSTANTS)
              ->savePropertyAs('fullnspath', 'called')
              ->raw('sideEffect{ called_type = it.get().label().toLowerCase(); }')
              ->outIs('NAME')
              ->savePropertyAs('fullcode', 'called_name')

              ->raw(<<<'GREMLIN'
map{ ["id": "",
      "calling":calling, 
      "calling_name":calling_name, 
      "calling_type":calling_type, 
      "type":"clone", 
      "called":called, 
      "called_name":called_name, 
      "called_type":called_type, 
           ]; }
GREMLIN
);
        $query->prepareRawQuery();
        $count = $this->storeToDump('classesDependencies', $query);
        display($count . ' clone');

        // static calls (property, constant, method)
        $query = $this->newQuery('Static calls');
        $query->atomIs(array('Staticconstant', 'Staticmethodcall', 'Staticproperty'), Analyzer::WITHOUT_CONSTANTS)
              ->raw('sideEffect{ type = it.get().label().toLowerCase(); }')

              ->goToInstruction(Analyzer::CIT)
              ->savePropertyAs('fullnspath', 'calling')
              ->raw('sideEffect{ calling_type = it.get().label().toLowerCase(); }')
              ->outIs('NAME')
              ->savePropertyAs('fullcode', 'calling_name')
              ->back('first')

              ->outIs('CLASS')
              ->inIs('DEFINITION')
              ->atomIs(array('Class', 'Trait'), Analyzer::WITHOUT_CONSTANTS)
              ->savePropertyAs('fullnspath', 'called')
              ->raw('sideEffect{ called_type = it.get().label().toLowerCase(); }')
              ->outIs('NAME')
              ->savePropertyAs('fullcode', 'called_name')

              ->raw(<<<'GREMLIN'
map{ ["id": "",
      "calling":calling, 
      "calling_name":calling_name, 
      "calling_type":calling_type, 
      "type":type, 
      "called":called, 
      "called_name":called_name, 
      "called_type":called_type, 
           ]; }
GREMLIN
);
        $query->prepareRawQuery();
        $count = $this->storeToDump('classesDependencies', $query);
        display($count . ' static calls CPM');

        // Skipping normal method/property call : They actually depends on new
        // Magic methods : todo!
        // instanceof ?
    }

    private function collectHashCounts($query, string $name): void {
        if ($query instanceof Query) {
            $result = $this->gremlin->query($query->getQuery(), $query->getArguments());
            $index = $result->toArray()[0];
        } else {
            $index = $this->gremlin->query($query);
            $index = $index->toArray()[0];
        }

        $toDump = array();
        foreach($index as $number => $count) {
            $toDump[] = array('',
                              $name,
                              $number,
                              $count,
                             );
        }

        if (!empty($toDump)) {
            $total = $this->storeToDumpArray('hashResults', $toDump);
        } else {
            $total = 0;
        }

        display( "$name : $total");
    }

    private function collectMissingDefinitions(): void {
        $toDump = array();

        $functioncallCount  = $this->gremlin->query('g.V().hasLabel("Functioncall").count()')[0];
        $functioncallMissed = $this->gremlin->query('g.V().hasLabel("Functioncall")
             .has("token", within("T_STRING", "T_NS_SEPARATOR"))
             .not(where(__.in("DEFINITION")))
             .not(where(__.in("ANALYZED").has("analyzer", "Functions/IsExtFunction")))
             .where( __.out("NAME").hasLabel("Identifier", "Nsname", "Name"))
        ');
        if ($functioncallMissed === 0) {
            file_put_contents("{$this->config->log_dir}/functions.missing.txt", 'Nothing found');
            $functioncallMissed = 0;
        } else {
            file_put_contents("{$this->config->log_dir}/functions.missing.txt", implode(PHP_EOL, array_column($functioncallMissed->toArray(), 'fullcode')));
            $functioncallMissed = $functioncallMissed->toInt();
        }
        $toDump[] = array('',
                          'functioncall total',
                          $functioncallCount,
                          );
        $toDump[] = array('',
                          'functioncall missed',
                          $functioncallMissed,
                          );

        $methodCount  = $this->gremlin->query('g.V().hasLabel("Methodcall").count()')[0];
        $methodMissed = $this->gremlin->query('g.V().hasLabel("Methodcall")
             .not(where(__.in("DEFINITION")))
             .where( __.out("METHOD").has("token", "T_STRING"))
        ');
        if (is_array($methodMissed)) {
            file_put_contents("{$this->config->log_dir}/methodcall.missing.txt", implode(PHP_EOL, array_column($methodMissed->toArray(), 'fullcode')));
            $methodMissed = $methodMissed->toInt();
        } else {
            file_put_contents("{$this->config->log_dir}/methodcall.missing.txt", 'Nothing found');
            $methodMissed = 0;
        }
        $toDump[] = array('',
                          'methodcall total',
                          $methodCount,
                          );
        $toDump[] = array('',
                          'methodcall missed',
                          $methodMissed,
                          );

        $memberCount  = $this->gremlin->query('g.V().hasLabel("Member").count()')[0];
        $memberMissed = $this->gremlin->query('g.V().hasLabel("Member")
             .not(where(__.in("DEFINITION")))
             .where( __.out("MEMBER").has("token", "T_STRING"))
        ');
        if (is_array($memberMissed)) {
            file_put_contents("{$this->config->log_dir}/members.missing.txt", implode(PHP_EOL, array_column($memberMissed->toArray(), 'fullcode')));
            $memberMissed = $memberMissed->toInt();
        } else {
            file_put_contents("{$this->config->log_dir}/members.missing.txt", 'Nothing found');
            $memberMissed = 0;
        }
        $toDump[] = array('',
                          'member total',
                          $memberCount,
                          );
        $toDump[] = array('',
                          'member missed',
                          $memberMissed,
                          );

        $staticMethodCount  = $this->gremlin->query('g.V().hasLabel("Staticmethodcall").count()')[0];
        $staticMethodMissed = $this->gremlin->query('g.V().hasLabel("Staticmethodcall")
             .not(where(__.in("DEFINITION")))
             .where( __.out("CLASS").hasLabel("Identifier", "Nsname", "Self", "Parent", "Static"))
             .not(where( __.out("CLASS").in("ANALYZED").has("analyzer", "Classes/IsExtClass")))
             .where( __.out("METHOD").has("token", "T_STRING"))
        ');
        if (is_array($staticMethodMissed)) {
            file_put_contents("{$this->config->log_dir}/staticmethodcall.missing.txt", implode(PHP_EOL, array_column($staticMethodMissed->toArray(), 'fullcode')));
            $staticMethodMissed = $staticMethodMissed->count();
        } else {
            file_put_contents("{$this->config->log_dir}/staticmethodcall.missing.txt", 'Nothing found');
            $staticMethodMissed = 0;
        }
        $toDump[] = array('',
                          'static methodcall total',
                          $staticMethodCount,
                          );
        $toDump[] = array('',
                          'static methodcall missed',
                          $staticMethodMissed,
                          );

        $staticConstantCount  = $this->gremlin->query('g.V().hasLabel("Staticonstant").count()')[0];
        $staticConstantMissed = $this->gremlin->query('g.V().hasLabel("Staticonstant")
             .not(where(__.in("DEFINITION")))
             .not(where( __.out("CLASS").in("ANALYZED").has("analyzer", "Classes/IsExtClass")))
             .where( __.out("METHOD").has("token", "T_STRING"))
        ');
        if (is_array($staticConstantMissed)) {
            file_put_contents("{$this->config->log_dir}/staticconstant.missing.txt", implode(PHP_EOL, array_column($staticConstantMissed->toArray(), 'fullcode')));
            $staticConstantMissed = $staticConstantMissed->toInt();
        } else {
            file_put_contents("{$this->config->log_dir}/staticconstant.missing.txt", 'Nothing found');
            $staticConstantMissed = 0;
        }
        $toDump[] = array('',
                          'static constant total',
                          $staticConstantCount,
                          );
        $toDump[] = array('',
                          'static constant missed',
                          $staticConstantMissed,
                          );

        $staticPropertyCount  = $this->gremlin->query('g.V().hasLabel("Staticproperty").count()')[0];
        $staticPropertyMissed = $this->gremlin->query('g.V().hasLabel("Staticproperty")
             .not(where(__.in("DEFINITION")))
             .not(where( __.out("CLASS").in("ANALYZED").has("analyzer", "Classes/IsExtClass")))
             .where( __.out("MEMBER").has("token", "T_VARIABLE"))
        ');
        if (is_array($staticPropertyMissed)) {
            file_put_contents("{$this->config->log_dir}/staticproperty.missing.txt", implode(PHP_EOL, array_column($staticPropertyMissed->toArray(), 'fullcode')));
            $staticPropertyMissed = $staticPropertyMissed->toInt();
        } else {
            file_put_contents("{$this->config->log_dir}/staticproperty.missing.txt", 'Nothing found');
            $staticPropertyMissed = 0;
        }
        $toDump[] = array('',
                          'static property total',
                          $staticPropertyCount,
                          );
        $toDump[] = array('',
                          'static property missed',
                          $staticPropertyMissed,
                          );

        $constantCounts = $this->gremlin->query('g.V().hasLabel("Identifier", "Nsname").count()')[0];
        $constantMissed = $this->gremlin->query('g.V().hasLabel("Identifier", "Nsname")
             .not(has("token", within("T_CONST", "T_FUNCTION")))
             .not(where(__.in("DEFINITION")))
             .not(where(__.in("ANALYZED").has("analyzer", "Constants/IsExtConstant")))
             .not(where(__.in("NAME").hasLabel("Class", "Defineconstant", "Namespace", "As")))
             .not(where(__.in("EXTENDS", "IMPLEMENTS").hasLabel("Class", "Classanonymous", "Interface")))
             .not(where(__.in().hasLabel("Analysis", "Instanceof", "As", "Staticmethod", "Usetrait", "Usenamespace", "Member", "Constant", "Functioncall", "Methodcallname", "Staticmethodcall", "Staticproperty", "Staticclass", "Staticconstant", "Catch", "Parameter")))
             ') ?: array();
        if (is_array($constantMissed)) {
            file_put_contents("{$this->config->log_dir}/constant.missing.txt", implode(PHP_EOL, array_column($constantMissed->toArray(), 'fullcode')));
            $constantMissed = $constantMissed->toInt();
        } else {
            file_put_contents("{$this->config->log_dir}/constant.missing.txt", 'Nothing found');
            $constantMissed = 0;
        }
        $toDump[] = array('',
                          'constant total',
                          $constantCounts,
                          );
        $toDump[] = array('',
                          'constant missed',
                          $constantMissed,
                          );

        $this->storeToDumpArray('hash', $toDump);
    }

    private function collectClassTraitsCounts(): void {
        $query = <<<'GREMLIN'
g.V().hasLabel("Class").groupCount("m").by( __.out("USE").out("USE").count() ).cap("m"); 
GREMLIN;
        $this->collectHashCounts($query, 'ClassTraits');
    }

    private function collectNativeCallsPerExpressions(): void {
        $MAX_LOOPING = Analyzer::MAX_LOOPING;

        $query = $this->newQuery('collectNativeCallsPerExpressions');
        $query->atomIs('Sequence', Analyzer::WITHOUT_CONSTANTS)
              ->outIs('EXPRESSION')
              ->atomIsNot(array('Assignation', 'Case', 'Catch', 'Class', 'Classanonymous', 'Closure', 'Concatenation', 'Default', 'Dowhile', 'Finally', 'For', 'Foreach', 'Function', 'Ifthen', 'Include', 'Method', 'Namespace', 'Php', 'Return', 'Switch', 'Trait', 'Try', 'While'), Analyzer::WITHOUT_CONSTANTS)
              ->_as('results')
              ->raw(<<<GREMLIN
groupCount("m").by( __.emit( ).repeat( __.out({$this->linksDown}).not(hasLabel("Closure", "Classanonymous")) ).times($MAX_LOOPING).hasLabel("Functioncall")
      .where( __.in("ANALYZED").has("analyzer", "Functions/IsExtFunction"))
      .count()
).cap("m")
GREMLIN
);
        $query->prepareRawQuery();
        $this->collectHashCounts($query, 'NativeCallPerExpression');
    }

    private function collectGlobalVariables(): int {
        $query = $this->newQuery('Global Variables');
        $query->atomIs('Virtualglobal', Analyzer::WITHOUT_CONSTANTS)
              ->codeIsNot('$GLOBALS', Analyzer::TRANSLATE, Analyzer::CASE_SENSITIVE)
              ->outIs('DEFINITION')
              ->savePropertyAs('label', 'type')
              ->outIsIE('DEFINITION')
              ->_as('variable')
              ->goToInstruction('File')
              ->savePropertyAs('fullcode', 'path')
              ->back('variable')
              ->raw(<<<'GREMLIN'
map{['id': '',
     'file':path,
     'line' : it.get().value('line'),
     'variable' : it.get().value('fullcode'),
     'isRead' : 'isRead' in it.get().keys() ? 1 : 0,
     'isModified' : 'isModified' in it.get().keys() ? 1 : 0,
     'type' : type == 'Variabledefinition' ? 'implicit' : type == 'Globaldefinition' ? 'global' : '$GLOBALS'
     ];

}
GREMLIN
);
        $this->dump->cleanTable('globalVariables');
        $total = $this->storeToDump('globalVariables', $query);

        return $total;
    }

    private function collectReadability(): void {
        $loops = 20;
        $query = <<<GREMLIN
g.V().sideEffect{ functions = 0; name=""; expression=0;}
    .hasLabel("Function", "Closure", "Method", "Magicmethod", "File")
    .not(where( __.out("BLOCK").hasLabel("Void")))
    .sideEffect{ ++functions; }
    .where(__.coalesce( __.out("NAME").sideEffect{ name=it.get().value("fullcode"); }.in("NAME"),
                        __.filter{true; }.sideEffect{ name="global"; file = it.get().value("fullcode");} )
    .sideEffect{ total = 0; expression = 0; type=it.get().label();}
    .coalesce( __.out("BLOCK"), __.out("FILE").out("EXPRESSION").out("EXPRESSION") )
    .repeat( __.out($this->linksDown).not(hasLabel("Class", "Function", "Closure", "Interface", "Trait", "Void")) ).emit().times($loops)
    .sideEffect{ ++total; }
    .not(hasLabel("Void"))
    .where( __.in("EXPRESSION", "CONDITION").sideEffect{ expression++; })
    .where( __.repeat( __.inE().hasLabel($this->linksDown).outV() ).until(hasLabel("File")).sideEffect{ file = it.get().value("fullcode"); })
    .fold()
    )
    .map{ if (expression > 0) {
        ["name":name, "type":type, "total":total, "expression":expression, "index": 102 - expression - total / expression, "file":file];
    } else {
        ["name":name, "type":type, "total":total, "expression":0, "index": 100, "file":file];
    }
}    
GREMLIN;
        $index = $this->gremlin->query($query);

        $toDump = array();
        foreach($index as $row) {
            $toDump[] = array('',
                              $row['name'],
                              $row['type'],
                              $row['total'],
                              $row['expression'],
                              $row['file'],
                             );
        }
        $total = $this->storeToDumpArray('readability', $toDump);
        display("$total readability index");
    }

    public function checkRulesets($ruleset, array $analyzers): void {
        $sqliteFile = $this->config->dump;

        $sqlite = new \Sqlite3($sqliteFile);
        $sqlite->busyTimeout(\SQLITE3_BUSY_TIMEOUT);

        $query = 'SELECT analyzer FROM resultsCounts WHERE analyzer IN (' . makeList($analyzers) . ')';
        $ran = array();
        $res = $sqlite->query($query);
        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            $ran[] = $row['analyzer'];
        }

        if (empty(array_diff($analyzers, $ran))) {
            $query = "INSERT INTO themas (\"id\", \"thema\") VALUES (null, \"$ruleset\")";
            $sqlite->query($query);
        }
    }

    private function expandRulesets(): void {
        $res = $this->dump->fetchTable('resultsCounts', array('analyzer'));
        $analyzers = $res->toList('analyzer');

        $res = $this->dump->fetchTable('themas', array('thema'));
        $ran = $res->toList('thema');

        $rulesets = $this->rulesets->listAllRulesets();
        $rulesets = array_diff($rulesets, $ran);

        $add = array();
        foreach($rulesets as $ruleset) {
            $analyzerList = $this->rulesets->getRulesetsAnalyzers(array($ruleset));

            $diff = array_diff($analyzerList, $analyzers);
            $diff = array_filter($diff, function (string $x): bool { return (substr($x, 0, 5) !== 'Dump/') && (substr($x, 0, 9) !== 'Complete/');  });
            if (empty($diff)) {
                $add[] = array('', $ruleset);
            }
        }

        if (!empty($add)) {
            $this->dump->storeInTable('themas', $add);
        }
    }

    private function newQuery(string $title): Query {
        return new Query(0, $this->config->project, $title, $this->config->executable);
    }

    public function collect(): void {
        $begin = microtime(\TIME_AS_NUMBER);
        $this->collectClassChanges();
        $end = microtime(\TIME_AS_NUMBER);
        $this->log->log( 'Collected Class Changes: ' . number_format(1000 * ($end - $begin), 2) . "ms\n");
        $begin = $end;
        $this->collectFiles();
        $end = microtime(\TIME_AS_NUMBER);
        $this->log->log( 'Collected Files: ' . number_format(1000 * ($end - $begin), 2) . "ms\n");
        $begin = $end;

        $this->collectFilesDependencies();
        $end = microtime(\TIME_AS_NUMBER);
        $this->log->log( 'Collected Files Dependencies: ' . number_format(1000 * ($end - $begin), 2) . "ms\n");
        $begin = $end;
        $this->collectClassesDependencies();
        $end = microtime(\TIME_AS_NUMBER);
        $this->log->log( 'Collected Classes Dependencies: ' . number_format(1000 * ($end - $begin), 2) . "ms\n");
        $begin = $end;
        $this->getAtomCounts();
        $end = microtime(\TIME_AS_NUMBER);
        $this->log->log( 'Collected Atom Counts: ' . number_format(1000 * ($end - $begin), 2) . "ms\n");
        $begin = $end;

        $this->collectPhpStructures();
        $end = microtime(\TIME_AS_NUMBER);
        $this->log->log( 'Collected Php Structures: ' . number_format(1000 * ($end - $begin), 2) . "ms\n");
        $begin = $end;
        $this->collectStructures();
        $end = microtime(\TIME_AS_NUMBER);
        $this->log->log( 'Collected Structures: ' . number_format(1000 * ($end - $begin), 2) . "ms\n");
        $begin = $end;
        $this->collectVariables();

        $end = microtime(\TIME_AS_NUMBER);
        $this->log->log( 'Collected Variables: ' . number_format(1000 * ($end - $begin), 2) . "ms\n");
        $begin = $end;

        $this->collectReadability();
        $end = microtime(\TIME_AS_NUMBER);
        $this->log->log( 'Collected Readability: ' . number_format(1000 * ($end - $begin), 2) . "ms\n");
        $begin = $end;

        $this->collectNativeCallsPerExpressions();
        $end = microtime(\TIME_AS_NUMBER);
        $this->log->log( 'Collected Native Calls Per Expression: ' . number_format(1000 * ($end - $begin), 2) . "ms\n");

        $begin = $end;
        $this->collectClassTraitsCounts();
        $end = microtime(\TIME_AS_NUMBER);
        $this->log->log( 'Collected Trait counts per Class: ' . number_format(1000 * ($end - $begin), 2) . "ms\n");

        $begin = $end;
        $this->collectDefinitionsStats();
        $end = microtime(\TIME_AS_NUMBER);
        $this->log->log( 'Collected Definitions stats : ' . number_format(1000 * ($end - $begin), 2) . "ms\n");

        $begin = microtime(\TIME_AS_NUMBER);
        $this->collectGlobalVariables();
        $end = microtime(\TIME_AS_NUMBER);
        $this->log->log( 'Collected Global Variables : ' . number_format(1000 * ($end - $begin), 2) . "ms\n");

        // Dev only
        if ($this->config->is_phar === Config::IS_NOT_PHAR) {
            $begin = microtime(\TIME_AS_NUMBER);
            $this->collectMissingDefinitions();
            $end = microtime(\TIME_AS_NUMBER);
            $this->log->log( 'Collected Missing definitions : ' . number_format(1000 * ($end - $begin), 2) . "ms\n");
        }
    }

    private function collectClassChanges(): void {
        $total = 0;

        // TODO : Constant visibility and value

        $query = $this->newQuery('Constant Value');
        $query->atomIs('Constant', Analyzer::WITHOUT_CONSTANTS)
              ->outIs('NAME')
              ->savePropertyAs('fullcode', 'name')
              ->inIs('NAME')
              ->outIs('VALUE')
              ->savePropertyAs('fullcode', 'default1')
              ->inIs('VALUE')

              ->inIs('CONST')
              ->inIs('CONST')
              ->atomIs(array('Class', 'Classanonymous'), Analyzer::WITHOUT_CONSTANTS)

              ->savePropertyAs('fullcode', 'class1')
              ->goToAllParents(Analyzer::EXCLUDE_SELF)
              ->savePropertyAs('fullcode', 'class2') // another class

              ->outIs('CONST')
              ->outIs('CONST')

              ->outIs('NAME')
              ->samePropertyAs('fullcode', 'name', Analyzer::CASE_SENSITIVE)
              ->inIs('NAME')

              ->outIs('VALUE')
              ->notSamePropertyAs('fullcode', 'default1', Analyzer::CASE_SENSITIVE) // test
              ->savePropertyAs('fullcode', 'default2') // collect

              ->raw(<<<'GREMLIN'
map{[ "id": "",
      "type": 'Constant Value',
      "name":name,
      "parent":class2,
      "parentValue":name + " = " + default2,
      "class":class1,
      "classValue":name + " = " + default1];
}
GREMLIN
);
        $total += $this->storeToDump('classChanges', $query);

        $query = $this->newQuery('Constant visibility');
        $query->atomIs('Constant', Analyzer::WITHOUT_CONSTANTS)
              ->outIs('NAME')
              ->savePropertyAs('fullcode', 'name')
              ->inIs('NAME')

              ->inIs('CONST')
              ->savePropertyAs('visibility', 'visibility1')
              ->inIs('CONST')
              ->atomIs(array('Class', 'Classanonymous'), Analyzer::WITHOUT_CONSTANTS)

              ->savePropertyAs('fullcode', 'class1')
              ->goToAllParents(Analyzer::EXCLUDE_SELF)
              ->savePropertyAs('fullcode', 'class2') // another class

              ->outIs('CONST')
              ->notSamePropertyAs('visibility', 'visibility1', Analyzer::CASE_SENSITIVE) // test
              ->savePropertyAs('visibility', 'visibility2') // collect
              ->outIs('CONST')

              ->outIs('NAME')
              ->samePropertyAs('fullcode', 'name', Analyzer::CASE_SENSITIVE)
              ->inIs('NAME')

              ->raw(<<<'GREMLIN'
map{[ "id": "",
      "type": "Constant visibility",
      "name":name,
      "parent":class2,
      "parentValue":visibility2 + ' ' + name,
      "class":class1,
      "classValue":visibility1 + ' ' + name];
}
GREMLIN
);
        $total += $this->storeToDump('classChanges', $query);

        $query = $this->newQuery('Method Signature');
        $query->atomIs('Method', Analyzer::WITHOUT_CONSTANTS)
              ->outIs('NAME')
              ->savePropertyAs('fullcode', 'name')
              ->inIs('NAME')
              ->raw('sideEffect{ signature1 = []; it.get().vertices(OUT, "ARGUMENT").sort{it.value("rank")}.each{ signature1.add(it.value("fullcode"));} }')
              ->inIs('METHOD')
              ->atomIs(array('Class', 'Classanonymous'), Analyzer::WITHOUT_CONSTANTS)

              ->savePropertyAs('fullcode', 'class1')
              ->goToAllParents(Analyzer::EXCLUDE_SELF)
              ->savePropertyAs('fullcode', 'class2') // another class

              ->outIs('NAME')
              ->samePropertyAs('fullcode', 'name', Analyzer::CASE_SENSITIVE)
              ->inIs('NAME')
              ->raw('sideEffect{ signature2 = []; it.get().vertices(OUT, "ARGUMENT").sort{it.value("rank")}.each{ signature1.add(it.value("fullcode"));} }.filter{ signature2 != signature1; }')
              ->raw(<<<'GREMLIN'
map{[ "id": "",
      "type": "Method Signature",
      "name":name,
      "parent":class2,
      "parentValue":"function " + name + "(" + signature2.join(", ") + ")",
      "class":class1,
      "classValue":"function " + name + "(" + signature1.join(", ") + ")"];
}
GREMLIN
);
        $total += $this->storeToDump('classChanges', $query);

         $query = $this->newQuery('Method Visibility');
         $query->atomIs(array('Method', 'Magicmethod'), Analyzer::WITHOUT_CONSTANTS)
              ->savePropertyAs('fullnspath', 'fnp')
              ->savePropertyAs('visibility', 'visibility1')
              ->inIs(array('METHOD', 'MAGICMETHOD'))
              ->savePropertyAs('fullcode', 'name1')
              ->back('first')
              ->inIs('OVERWRITE')
              ->savePropertyAs('visibility', 'visibility2')
              ->raw('filter{visibility1  != visibility2;}')
              ->inIs('METHOD')
              ->savePropertyAs('fullcode', 'name2')
              ->raw(<<<'GREMLIN'
map{ ["id": "",
      "type": "Method Visibility",
      "name":fnp.tokenize('::')[1],
      "parent":name1,
      "parentValue":visibility2 + ' ' + fnp.tokenize('::')[1],
      "class":name2,
      "classValue":visibility1 + ' ' + fnp.tokenize('::')[1]];
}
GREMLIN
);
        $total += $this->storeToDump('classChanges', $query);

        $query = $this->newQuery('Member Default');
        $query->atomIs('Propertydefinition', Analyzer::WITHOUT_CONSTANTS)
              ->isNot('virtual', true)
              ->savePropertyAs('fullcode', 'name')
              ->outIs('DEFAULT')
              ->hasNoIn('RIGHT') // find an explicit default
              ->savePropertyAs('fullcode', 'default1')
              ->inIs('DEFAULT')
              ->inIs('PPP')
              ->inIs('PPP')
              ->atomIs(array('Class', 'Classanonymous'), Analyzer::WITHOUT_CONSTANTS)
              ->savePropertyAs('fullcode', 'class1')
              ->goToAllParents(Analyzer::EXCLUDE_SELF)
              ->savePropertyAs('fullcode', 'class2')

              ->outIs('PPP')
              ->outIs('PPP')
              ->samePropertyAs('fullcode', 'name', Analyzer::CASE_SENSITIVE)

              ->outIs('DEFAULT')
              ->notSamePropertyAs('fullcode', 'default1', Analyzer::CASE_SENSITIVE)
              ->savePropertyAs('fullcode', 'default2')
              ->inIs('DEFAULT')
              ->raw(<<<'GREMLIN'
map{ ["id": "",
      "type": "Member Default",
      "name":name,
      "parent":class2,
      "parentValue":name + ' = ' + default2,
      "class":class1,
      "classValue":name + ' = ' + default1];
}
GREMLIN
);
        $total += $this->storeToDump('classChanges', $query);

        $query = $this->newQuery('Member Visibility');
        $query->atomIs('Propertydefinition', Analyzer::WITHOUT_CONSTANTS)
              ->isNot('virtual', true)
              ->savePropertyAs('fullcode', 'name')
              ->inIs('PPP')
              ->savePropertyAs('visibility', 'visibility1')
              ->inIs('PPP')
              ->atomIs(array('Class', 'Classanonymous'), Analyzer::WITHOUT_CONSTANTS)
              ->savePropertyAs('fullcode', 'class1')
              ->goToAllParents(Analyzer::EXCLUDE_SELF)
              ->savePropertyAs('fullcode', 'class2')

              ->outIs('PPP')
              ->notSamePropertyAs('visibility', 'visibility1', Analyzer::CASE_SENSITIVE)
              ->savePropertyAs('visibility', 'visibility2')
              ->outIs('PPP')
              ->samePropertyAs('fullcode', 'name', Analyzer::CASE_SENSITIVE)

              ->raw(<<<'GREMLIN'
map{ ["id": "",
      "type": "Member Visibility",
      "name":name,
      "parent":class2,
      "parentValue":visibility2 + ' ' + name,
      "class":class1,
      "classValue":visibility1 + ' ' + name];
}
GREMLIN
);
        $total += $this->storeToDump('classChanges', $query);

        display("Found $total class changes\n");
    }

    private function storeToDump(string $table, Query $query): int {
        $query->prepareRawQuery();
        if ($query->canSkip()) {
            return 0;
        }
        $result = $this->gremlin->query($query->getQuery(), $query->getArguments());

        return $this->dump->storeInTable($table, $result);
    }

    private function storeToDumpArray(string $table, array $result): int {
        return $this->dump->storeInTable($table, $result);
    }

    private function loadSqlDump(): void {
        $dumps = glob($this->config->tmp_dir . '/dump-*.php');
        display('Loading ' . count($dumps) . ' dumped SQL files');

        foreach($dumps as $dump) {
            include $dump;

            $this->dump->storeQueries($queries);
            unlink($dump);
        }
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks;

use Exakat\Analyzer\Analyzer;
use Exakat\Tasks\Helpers\Lock;
use Exakat\Exceptions\NeedsAnalyzerThema;
use Exakat\Exceptions\NoSuchAnalyzer;
use Exakat\Exceptions\NoSuchProject;
use Exakat\Exceptions\InvalidProjectName;
use Exakat\Exceptions\NoSuchRuleset;
use Exakat\Exceptions\ProjectNeeded;
use Exakat\Exceptions\QueryException;
use Exakat\Exceptions\MissingGremlin;
use Exakat\Exceptions\DSLException;
use ProgressBar\Manager as ProgressBar;
use Exception;
use Exakat\Log;

class Analyze extends Tasks {
    const CONCURENCE = self::ANYTIME;

    private $progressBar = null;
    private $php = null;
    private $analyzed = array();

    public function setConfig($config) {
        $this->config = $config;
    }

    public function run() {
        if (!$this->config->project->validate()) {
            throw new InvalidProjectName($this->config->project->getError());
        }

        if ($this->config->project->isDefault()) {
            throw new ProjectNeeded();
        }

        if ($this->config->gremlin === 'NoGremlin') {
            throw new MissingGremlin();
        }

        if (!file_exists($this->config->project_dir)) {
            throw new NoSuchProject((string) $this->config->project);
        }

        $this->checkTokenLimit();

        // Take this before we clean it up
        $this->checkAnalyzed();

        if (!empty($this->config->program)) {
            if (is_array($this->config->program)) {
                $analyzersClass = $this->config->program;
            } else {
                $analyzersClass = array($this->config->program);
            }

            foreach($analyzersClass as $analyzer) {
                if (!$this->rulesets->getClass($analyzer)) {
                    throw new NoSuchAnalyzer($analyzer, $this->rulesets);
                }
            }
        } elseif (!empty($this->config->project_rulesets)) {
            $ruleset = $this->config->project_rulesets;

            if ((!$analyzersClass = $this->rulesets->getRulesetsAnalyzers($ruleset)) && ($ruleset[0] !== 'None')) {
                throw new NoSuchRuleset(implode(', ', $ruleset), $this->rulesets->getSuggestionRuleset($ruleset));
            }

            $this->datastore->addRow('hash', array(implode('-', $this->config->project_rulesets) => count($analyzersClass) ) );

            $this->logname = 'analyze.' . strtolower(str_replace(' ', '_', implode('-', $this->config->project_rulesets)));
            $this->log = new Log('analyze.' . strtolower(str_replace(' ', '_', implode('-', $this->config->project_rulesets))),
                                 "{$this->config->projects_root}/projects/{$this->config->project}");
        } else {
            throw new NeedsAnalyzerThema();
        }

        $this->log->log('Analyzing project ' . (string) $this->config->project);
        $this->log->log("Runnable analyzers\t" . count($analyzersClass));

        $this->php = exakat('php');

        $analyzers = array();
        $dependencies = array();
        foreach($analyzersClass as $analyzer_class) {
            $this->fetchAnalyzers($analyzer_class, $analyzers, $dependencies);
        }

        $analyzerList = sort_dependencies($dependencies);
        if (empty($analyzerList)) {
            display("Done\n");
            return;
        }
        if ($this->config->verbose && !$this->config->quiet) {
            $this->progressBar = new Progressbar(0, count($analyzerList) + 1, $this->config->screen_cols);
        }

        foreach($analyzerList as $analyzer_class) {
            if ($this->config->verbose && !$this->config->quiet) {
                echo $this->progressBar->advance();
            }

            assert($analyzers[$analyzer_class] !== null, "Unknown analyzer $analyzer_class from dependsOn()\n");
            $this->analyze($analyzers[$analyzer_class], $analyzer_class);
        }

        if ($this->config->verbose && !$this->config->quiet) {
            echo $this->progressBar->advance();
        }

        display("Done\n");
    }

    private function fetchAnalyzers(string $analyzer_class, array &$analyzers, array &$dependencies): void {
        if (isset($analyzers[$analyzer_class])) {
            return;
        }

        $analyzers[$analyzer_class] = $this->rulesets->getInstance($analyzer_class);

        if ($analyzers[$analyzer_class] === null) {
            display("No such analyzer as $analyzer_class\n");
            return;
        }

        if (isset($this->analyzed[$analyzer_class]) &&
            $this->config->noRefresh === true) {
            display("$analyzer_class is already processed\n");
            return ;
        }

        if ($this->config->noDependencies === true) {
            $dependencies[$analyzer_class] = array();
        } else {
            $dependencies[$analyzer_class] = $analyzers[$analyzer_class]->dependsOn();
            $diff = array_diff($dependencies[$analyzer_class], array_keys($analyzers));
            foreach($diff as $d) {
                if (!isset($analyzers[$d])) {
                    $this->fetchAnalyzers($d, $analyzers, $dependencies);
                }
            }
        }
    }

    private function analyze(Analyzer $analyzer, string $analyzer_class) {
        $begin = microtime(true);

        $lock = new Lock($this->config->tmp_dir, $analyzer_class);
        if (!$lock->check()) {
            display("Concurency lock activated for $analyzer_class\n");
            return false;
        }

        if (isset($this->analyzed[$analyzer_class]) && $this->config->noRefresh === true) {
                display( "$analyzer_class is already processed (1)\n");
                return $this->analyzed[$analyzer_class];
        }

        $analyzer->init();

        if (!(!isset($this->analyzed[$analyzer_class]) ||
              $this->config->noRefresh !== true)         ) {
            display("$analyzer_class is already processed (2)\n");

            return $this->analyzed[$analyzer_class];
        }

        $total_results = 0;
        if (!$analyzer->checkPhpVersion($this->config->phpversion)) {
            $analyzerQuoted = $analyzer->getInBaseName();

            $analyzer->storeError('Not Compatible With PHP Version', Analyzer::VERSION_INCOMPATIBLE);

            display("$analyzerQuoted is not compatible with PHP version {$this->config->phpversion}. Ignoring\n");
        } elseif (!$analyzer->checkPhpConfiguration($this->php)) {
            $analyzerQuoted = $analyzer->getInBaseName();

            $analyzer->storeError('Not Compatible With PHP Configuration', Analyzer::CONFIGURATION_INCOMPATIBLE);

            display( "$analyzerQuoted is not compatible with PHP configuration of this version. Ignoring\n");
        } else {
            display( "$analyzer_class running\n");
            try {
                $analyzer->run();
            } catch(DSLException $e) {
                $end = microtime(true);
                display( "$analyzer_class : DSL building exception\n");
                display($e->getMessage() . ' in ' . $e->getFile() . ':' . $e->getLine());
                $this->log->log("$analyzer_class\t" . ($end - $begin) . "\terror : " . $e->getMessage());
                $this->datastore->addRow('analyzed', array($analyzer_class => 0 ) );
                $this->checkAnalyzed();

            } catch(QueryException $e) {
                $end = microtime(true);
                display("$analyzer_class : Query running exception\n");
                display($e->getMessage());
                $this->log->log("$analyzer_class\t" . ($end - $begin) . "\terror : " . $e->getMessage());
                $counts = $this->gremlin->query('g.V().hasLabel("Analysis").has("analyzer", "' . $analyzer->getInBaseName() . '").property("count", __.out("ANALYZED").count()).values("count")')->toInt();
                $this->datastore->addRow('analyzed', array($analyzer_class => $counts ) );
                $this->checkAnalyzed();

            } catch(Exception $e) {
                $end = microtime(true);
                display( "$analyzer_class : generic exception \n");
                $this->log->log("$analyzer_class\t" . ($end - $begin) . "\texception : " . get_class($e) . "\terror : " . $e->getMessage());
                if (strpos($e->getMessage(), 'The server exceeded one of the timeout settings ') !== false) {
                    $counts = $this->gremlin->query('g.V().hasLabel("Analysis").has("analyzer", "' . $analyzer->getInBaseName() . '").property("count", __.out("ANALYZED").count()).values("count")')->toInt();
                    $this->datastore->addRow('analyzed', array($analyzer_class => $counts ) );
                } else {
                    display($e->getMessage());
                    $this->datastore->addRow('analyzed', array($analyzer_class => 0 ) );
                }
                $this->checkAnalyzed();

                return 0;
            }

            $total_results = $analyzer->getRowCount();
            $processed     = $analyzer->getProcessedCount();
            $queries       = $analyzer->getQueryCount();
            $rawQueries    = $analyzer->getRawQueryCount();

            display( "$analyzer_class run ($total_results / $processed)\n");
            $end = microtime(true);
            $this->log->log("$analyzer_class\t" . ($end - $begin) . "\t$total_results\t$processed\t$queries\t$rawQueries");
            // storing the number of row found in Hash table (datastore)
            $this->datastore->addRow('analyzed', array($analyzer_class => $total_results ) );
        }

        $this->checkAnalyzed();

        return $total_results;
    }

    private function checkAnalyzed() {
        $query = <<<'GREMLIN'
g.V().hasLabel("Analysis").as("analyzer", "count").select("analyzer", "count").by("analyzer").by("count");
GREMLIN;
        $res = $this->gremlin->query($query);

        foreach($res as list('analyzer' => $analyzer, 'count' => $count)) {
            if ($count != -1 && !isset($this->analyzed[$analyzer])) {
                $this->analyzed[$analyzer] = $count;
            }
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks;

use Exakat\Exceptions\NoSuchAnalyzer;
use Exakat\Exceptions\NoSuchProject;
use Exakat\Exceptions\ProjectNeeded;
use Exakat\Exceptions\InvalidProjectName;
use Exakat\Exceptions\ProjectNotInited;
use Exakat\Exceptions\NoDump;
use Exakat\Exceptions\NeedsAnalyzerThema;

class Results extends Tasks {
    const CONCURENCE = self::ANYTIME;

    public function run() {
        if ($this->config->project->isDefault()) {
            throw new ProjectNeeded();
        }

        if (!$this->config->project->validate()) {
            throw new InvalidProjectName($this->config->project->getError());
        }

        if (!file_exists($this->config->project_dir)) {
            throw new NoSuchProject($this->config->project);
        }

        if (!file_exists($this->config->datastore)) {
            throw new ProjectNotInited($this->config->project);
        }

        if (!file_exists($this->config->dump)) {
            throw new NoDump($this->config->project);
        }

        if (!empty($this->config->program)) {
            if (is_array($this->config->program)) {
                $analyzersClass = $this->config->program;
            } else {
                $analyzersClass = array($this->config->program);
            }

            foreach($analyzersClass as $analyzer) {
                if (!$this->rulesets->getClass($analyzer)) {
                    throw new NoSuchAnalyzer($analyzer, $this->rulesets);
                }
            }
        } elseif (!empty($this->config->project_rulesets)) {
            $project_rulesets = $this->config->project_rulesets;

            if (!$analyzersClass = $this->rulesets->getRulesetsAnalyzers($project_rulesets)) {
                throw new NoSuchAnalyzer($project_rulesets, $this->rulesets);
            }
        } else {
            throw new NeedsAnalyzerThema();
        }

        foreach($analyzersClass as $id => $analyzerClass) {
            if (substr($analyzerClass, 0, 4) === 'Ext/') {
                $analyzer = $this->rulesets->getInstance($analyzerClass, $this->gremlin, $this->config);
                $analyzerList = $analyzer->getAnalyzerList();

                unset($analyzersClass[$id]);
                if (!empty($analyzerList)) {
                    $analyzersClass = array_merge($analyzersClass, $analyzerList);
                }
            }
        }

        $return = array();
        if ($this->config->style === 'BOOLEAN') {
            $queryTemplate = <<<GREMLIN
g.V().hasLabel("Analysis").has("analyzer", "$analyzer").out().count().is(gt(0))
GREMLIN;
            $vertices = $this->gremlin->query($queryTemplate);

            $return[] = $vertices[0];
        } elseif ($this->config->style === 'COUNTED_ALL') {
            $queryTemplate = <<<GREMLIN
g.V().hasLabel("Analysis").has("analyzer", "$analyzer").out().count()
GREMLIN;
            $vertices = $this->gremlin->query($queryTemplate)->results;

            $return[] = $vertices[0];
        } elseif ($this->config->style === 'ALL') {
            $results = array();

            foreach($analyzersClass as $oneAnalyzerClass) {
                $analyzer =  $this->rulesets->getInstance($oneAnalyzerClass, null, $this->config);
                $results[] = $analyzer->getDump();
            }

            $return = array_merge(...$results);
        } elseif ($this->config->style === 'DISTINCT') {
            $queryTemplate = 'g.V().hasLabel("Analysis").has("analyzer", "' . $analyzer . '").out("ANALYZED").values("code").unique()';
            $vertices = $this->gremlin->query($queryTemplate)->results;

            $return = array();
            foreach($vertices as $values) {
                $return[] = array($values);
            }
        } elseif ($this->config->style === 'COUNTED') {
            $queryTemplate = 'g.V().hasLabel("Analysis").has("analyzer", "' . $analyzer . '").out("ANALYZED").groupCount("m").by("code").cap("m")';
            $vertices = $this->gremlin->query($queryTemplate)->results;

            $return = array();
            foreach($vertices[0] as $k => $values) {
                $return[$k] = $values;
            }
        }

        if ($this->config->json === true) {
            $text = json_encode($return);
        } elseif ($this->config->csv === true) {
            $text = array(array('Code', 'File', 'Namespace', 'Class', 'Function'));
            foreach($return as $k => $v) {
                if (is_array($v)) {
                    $text[] = $v;
                } else {
                    $text[] = array($k, $v);
                }
            }
        } elseif ($this->config->html === true || $this->config->odt === true) {
            $text = '';
            foreach($return as $k => $r) {
                if ($this->config->style === 'COUNTED') {
                    $text .= "+ $k => $r\n";
                } else {
                    $text .= "+ $k\n";
                    if (is_array($r)) {
                        $text .= '  + ' . implode("\n  + ", $r) . "\n";
                    } else {
                        $text .= "+ $r\n";
                    }
                }
            }
        } else {
            // count also for $this->config->text == 1
            $text = '';
            foreach($return as $k => $v) {
                if ($this->config->style === 'COUNTED') {
                    $text .= "$k => $v\n";
                } else {
                    $text .= implode(', ', $v) . "\n";
                }
            }
        }

        if ($this->config->output) {
            echo $text;
        }

        switch (1) {
            case $this->config->json :
                $extension = 'json';
                break 1;
            case $this->config->odt :
                $extension = 'odt';
                break 1;
            case $this->config->html :
                $extension = 'html';
                break 1;
            case $this->config->csv :
                $extension = 'csv';
                break 1;
            case $this->config->text :
            default :
                $extension = 'txt';
                break 1;
        }

        if ($this->config->file != '') {
            $name = $this->config->file . '.' . $extension;
            if (file_exists($name)) {
                die( "$name already exists. Aborting\n");
            }

            if ($this->config->format === 'CSV') {
                $csvFile = fopen($name, 'w');
                if (is_resource($csvFile)) {
                    foreach($text as $t) {
                        fputcsv($csvFile, $t);
                    }
                    fclose($csvFile);
                } else {
                    die( "Couldn't open $name file for writing. Aborting\n");
                }
            } else {
                file_put_contents($name, $text);
            }
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks;

use Exakat\Exceptions\InvalidProjectName;
use Exakat\Exceptions\ProjectNeeded;

class Show extends Tasks {
    const CONCURENCE = self::ANYTIME;

    public function run() {
        $project = $this->config->project;

        if (!$project->validate()) {
            throw new InvalidProjectName($project->getError());
        }

        if ($this->config->project === 'default') {
            throw new ProjectNeeded();
        }

        print "Create project '$project' with : 
    {$this->config->php} {$this->config->executable} init -p $project -R {$this->config->project_url} -{$this->config->project_vcs} -v\n";
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks;

use Exakat\Exceptions\NoSuchProject;
use Exakat\Tasks\Helpers\BaselineStash;
use Exakat\Exceptions\ProjectNeeded;
use Exakat\Exceptions\InvalidProjectName;

class Baseline extends Tasks {
    const CONCURENCE = self::ANYTIME;

    private const FORMAT = "+ %-4s %10s %12s\n";

    public const ACTIONS = array('list', 'remove', 'save');

    //install, list, local, uninstall, upgrade
    public function run() {
        if (!$this->config->project->validate()) {
            throw new InvalidProjectName($this->config->project->getError());
        }

        if ($this->config->project->isDefault()) {
            throw new ProjectNeeded();
        }

        if (!file_exists($this->config->project_dir)) {
            throw new NoSuchProject((string) $this->config->project);
        }

        if (in_array($this->config->subcommand, self::ACTIONS)) {
            $this->{$this->config->subcommand}();
        } else {
            $this->list();
        }
    }

    private function list() {
        if (!file_exists($this->config->project_dir)) {
            throw new NoSuchProject($this->config->project);
        }

        $list = glob($this->config->project_dir . '/baseline/*.sqlite');
        sort($list);

        print PHP_EOL;
        printf(self::FORMAT, '#', 'Name', 'Date');
        print str_repeat('-', 40) . PHP_EOL;
        foreach($list as $l) {
            if (preg_match('/^dump-(\d+)-(.*?)$/', basename($l, '.sqlite'), $r) ) {
                list(, $id, $name) = $r;
            } else {
                $id = ' ';
                $name = basename($l, '.sqlite');
            }
            $date = date('Y-m-d', filemtime($l));
            printf(self::FORMAT, $id, $name, $date);
        }

        print PHP_EOL . 'Total : ' . count($list) . ' baseline' . (count($list) > 1 ? 's' : '') . PHP_EOL;
    }

    private function remove() {
        $baselineStash = new BaselineStash($this->config);
        $baselineStash->removeBaseline($this->config->baseline_id);
    }

    private function save() {
        $baselineStash = new BaselineStash($this->config);
        $baselineStash->copyPrevious($this->config->dump, $this->config->baseline_set);
        display('Save current audit to ' . $this->config->baseline_set);
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks;

use Exakat\Phpexec;
use Exakat\Config;
use Exakat\Exceptions\MissingFile;
use Exakat\Exceptions\NoCodeInProject;
use Exakat\Exceptions\NoSuchProject;
use Exakat\Exceptions\ProjectNeeded;
use Exakat\Vcs\Vcs;

class Files extends Tasks {
    const CONCURENCE = self::ANYTIME;

    private $tmpFileName = '';

    public function run(): void {
        $stats = array();
        foreach(Config::PHP_VERSIONS as $version) {
            $stats["notCompilable$version"] = 'N/C';
        }

        if ($this->config->inside_code === Config::INSIDE_CODE) {
            // OK
        } elseif ($this->config->project === 'default') {
            throw new ProjectNeeded();
        } elseif (!file_exists($this->config->project_dir)) {
            throw new NoSuchProject($this->config->project);
        } elseif (!file_exists($this->config->code_dir)) {
            throw new NoCodeInProject($this->config->project);
        }

        $this->checkComposer($this->config->code_dir);
        $this->checkLicence($this->config->code_dir);

        $ignoredFiles = array();
        $files = array();

        display("Searching for files \n");
        self::findFiles($this->config->code_dir, $files, $ignoredFiles, $this->config);
        display('Found ' . count($files) . " files.\n");

        $filesRows = array();
        $hashes = array();
        $duplicates = 0;
        foreach($files as $id => $file) {
            $fnv132 = hash_file('fnv132', $this->config->code_dir . $file);
            if (isset($hashes[$fnv132])) {
                $ignoredFiles[$file] = "Duplicate ({$hashes[$fnv132]})";
                ++$duplicates;
                unset($files[$id]);
                continue;
            } else {
                $hashes[$fnv132] = $file;
            }
            $modifications = $fileModifications[trim($file, '/')] ?? 0;
            $filesRows[] = compact('file', 'fnv132', 'modifications');
        }
        display("Removed $duplicates duplicates files\n");

        if (empty($files)) {
            $this->datastore->addRow('hash', array('files'           => 0,
                                                   'filesIgnored'    => count($ignoredFiles),
                                                   'tokens'          => 0,
                                                   'file_extensions' => json_encode($this->config->file_extensions),
                                                   'ignore_dirs'     => json_encode($this->config->ignore_dirs),
                                                   'include_dirs'    => json_encode($this->config->include_dirs),
                                               )
                                            );
            return;
        }

        $this->tmpFileName = "{$this->config->tmp_dir}/files{$this->config->pid}.txt";
        $tmpFiles = array_map(function (string $file): string {
            return str_replace(array('\\', '(', ')', ' ', '$', '<', "'", '"', ';', '&', '`', '|', "\t"),
                               array('\\\\', '\\(', '\\)', '\\ ', '\\$', '\\<', "\\'", '\\"', '\\;', '\\&', '\\`', '\\|', "\\\t", ),
                               ".$file");
                               }, $files);
        file_put_contents($this->tmpFileName, implode("\n", $tmpFiles));

        $vcsClass = Vcs::getVcs($this->config);
        $vcs = new $vcsClass($this->config->project, $this->config->code_dir);
        $fileModifications = $vcs->getFileModificationLoad();

        $SQLresults = $this->checkCompilations();

        $SQLresults += $this->checkShortTags();

        $i = array();
        foreach($ignoredFiles as $file => $reason) {
            $i[] = compact('file', 'reason');
        }
        $ignoredFiles = $i;
        $this->datastore->cleanTable('ignoredFiles');
        $this->datastore->addRow('ignoredFiles', $ignoredFiles);

        $this->datastore->cleanTable('files');

        $this->datastore->addRow('files', $filesRows);
        $this->datastore->addRow('hash', array('files'           => count($files),
                                               'filesIgnored'    => count($ignoredFiles),
                                               'tokens'          => 0,
                                               'file_extensions' => json_encode($this->config->file_extensions),
                                               'ignore_dirs'     => json_encode($this->config->ignore_dirs),
                                               'include_dirs'    => json_encode($this->config->include_dirs),
                                               )
                                            );
        $this->datastore->reload();

        $stats['php'] = count($files);
        $this->datastore->addRow('hash', $stats);

        // check for special files
        display('Check config files');
        $files = glob("{$this->config->code_dir}/{,.}*", GLOB_BRACE);
        $files = array_map('basename', $files);

        $services = json_decode(file_get_contents("{$this->config->dir_root}/data/serviceConfig.json"));

        $configFiles = array();
        foreach($services as $name => $service) {
            $diff = array_intersect((array) $service->file, $files);
            foreach($diff as $d) {
                $configFiles[] = array('file'     => $d,
                                       'name'     => $name,
                                       'homepage' => $service->homepage);
            }
        }
        $this->datastore->addRow('configFiles', $configFiles);
        // Composer is checked previously

        $files = array();
        $i = 0;
        while(count($files) != $SQLresults) {
            $files = glob("{$this->config->project_dir}/.exakat/dump-*.php");
            usleep(random_int(0,1000) * 1000);

            ++$i;
            if ($i >= 60) {
                break 1;
            }
        }
        // TODO : log it when

        foreach($files as $file) {
            include $file;

            $this->datastore->storeQueries($queries);
            unlink($file);
        }

        display('Done');

        if ($this->config->json) {
            echo json_encode($stats);
        }
        $this->datastore->addRow('hash', array('status' => 'Initproject'));
        $this->checkTokenLimit();
    }

    private function checkComposer(string $dir): void {
        // composer.json
        display('Check composer');
        $composerInfo = array();
        if ($composerInfo['composer.json'] = file_exists("{$dir}/composer.json")) {
            $composerInfo['composer.lock'] = file_exists("{$dir}/composer.lock");

            $composer = json_decode(file_get_contents("{$dir}/composer.json"));

            if (isset($composer->autoload)) {
                $composerInfo['autoload'] = isset($composer->autoload->{'psr-0'}) ? 'psr-0' : 'psr-4';
            } else {
                $composerInfo['autoload'] = false;
            }

            if (isset($composer->require)) {
                $this->datastore->addRow('composer', (array) $composer->require);
            }
        }

        $this->datastore->addRow('hash', $composerInfo);
    }

    private function checkLicence(string $dir): bool {
        $licenses = parse_ini_file($this->config->dir_root . '/data/license.ini');
        $licenses = $licenses['files'];

        foreach($licenses as $file) {
            if (file_exists("$dir/$file")) {
                $this->datastore->addRow('hash', array('licence_file' => 'unknown'));

                return true;
            }
        }
        $this->datastore->addRow('hash', array('licence_file' => 'unknown'));

        return false;
    }

    public static function findFiles(string $path, array &$files, array &$ignoredFiles, Config $config): void {
        $ignoreFileNames = parse_ini_file("{$config->dir_root}/data/ignore_files.ini");
        $ignoreFileNames = array_flip($ignoreFileNames['files']);

        // Regex to ignore files and folders
        $ignoreDirs = array();
        foreach($config->ignore_dirs as $ignore) {
            // ignore mis configuration
            if (empty($ignore)) {
                continue;
            }

            if ($ignore[0] === '/') {
                $ignoreDirs[] = "$ignore*";
            } else {
                $ignoreDirs[] = "*$ignore*";
            }
        }

        // Regex to include files and folders
        $includeDirs = array();
        foreach($config->include_dirs as $include) {
            if (empty($include)) {
                continue;
            }

            if ($include === '/') {
                $includeDirs[] = '/.*';
            } elseif ($include[0] === '/') {
                $includeDirs[] = "$include*";
            } else {
                $includeDirs[] = "*$include*'";
            }
        }

        $d = getcwd();
        if (!file_exists($path)) {
            display( "No such file as '$path' when looking for files\n");
            $files = array();
            $ignoredFiles = array();
            return ;
        }
        chdir($path);
        $allFiles = rglob('.');
        $allFiles = array_map(function (string $path): string { return ltrim($path, '.'); }, $allFiles);
        chdir($d);

        $exts = $config->file_extensions;

        foreach($allFiles as $file) {
            foreach($ignoreDirs as $ignore) {
                if (fnmatch($ignore, $file)) {
                    $ignoredFiles[] = $file;
                    continue 2;
                }
            }

            $files[] = $file;
        }

        foreach($ignoredFiles as $id => $file) {
            foreach($includeDirs as $ignore) {
                if (fnmatch($ignore, $file)) {
                    $files[] = $file;
                    unset($ignoredFiles[$id]);
                    continue 2;
                }
            }
        }

        foreach($files as $id => $file) {
            if (is_link($path . $file)) {
                unset($files[$id]);
                $ignoredFiles[$file] = "Symbolic link ($f)";
                continue;
            }
            $f = basename($file);
            if (isset($ignoreFileNames[mb_strtolower($f)])) {
                unset($files[$id]);
                $ignoredFiles[$file] = "Ignored file ($f)";
                continue;
            }
            $ext = pathinfo($file, PATHINFO_EXTENSION);
            if (!in_array(mb_strtolower($ext), $exts)) {
                // selection of extensions
                unset($files[$id]);
                $ignoredFiles[$file] = "Ignored extension ($ext)";
                continue;
            }
        }
    }

    public function __destruct() {
        if (file_exists($this->tmpFileName)) {
            unlink($this->tmpFileName);
        }
        if (file_exists($this->config->tmp_dir . '/lint.php')) {
            unlink($this->config->tmp_dir . '/lint.php');
        }
        if (file_exists($this->config->tmp_dir . '/lint_short_tags.php')) {
            unlink($this->config->tmp_dir . '/lint_short_tags.php');
        }
    }
    
    private function checkCompilations() : int {
        $versions = Config::PHP_VERSIONS;
        $SQLresults = 0;

        $analyzingVersion = $this->config->phpversion[0] . $this->config->phpversion[2];
        $this->datastore->cleanTable("compilation$analyzingVersion");
        if ($this->is_subtask === self::IS_SUBTASK) {
            $id = array_search($analyzingVersion, $versions);
            unset($versions[$id]);
        }

        foreach($versions as $version) {
            $phpVersion = "php$version";

            if (empty($this->config->{$phpVersion})) {
                // This version is not defined
                continue;
            }

            display("Check compilation for $version");
            $stats["notCompilable$version"] = -1;

            $php = new Phpexec($phpVersion, $this->config->{$phpVersion});
            $php->compileFiles($this->config->code_dir, $this->tmpFileName, $this->config->dir_root);
            ++$SQLresults;
        }
        
        return $SQLresults;
    }
    
    private function checkShortTags() : int {
        copy("{$this->config->dir_root}/server/lint_short_tags.php", "{$this->config->project_dir}/.exakat/lint_short_tags.php");
        $shell = "nohup php {$this->config->project_dir}/.exakat/lint_short_tags.php {$this->config->php} {$this->config->project_dir} {$this->tmpFileName} 2>&1 >/dev/null & echo $!";
        shell_exec($shell);
        
        return 1;
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks;

use Exakat\Exceptions\NoSuchDir;
use Exakat\Exceptions\NoSuchFile;
use Exakat\Exceptions\NoSuchProject;
use Exakat\Exceptions\NoCodeInProject;

class Anonymize extends Tasks {
    const CONCURENCE = self::ANYTIME;

    private $lnumberValues = array();
    private $lnumber = 0;
    private $dnumberValues = array();
    private $dnumber = 0;
    private $variableNames = array();
    private $variables = 'a';
    private $stringsNames = array();
    private $strings = 'A';

    public function run() {

        if (($file = $this->config->file) === 'stdout') {
            $dir = $this->config->dirname;
            if (!empty($dir)) {
                $dir = rtrim($dir, '/');

                if (!file_exists($dir)) {
                    throw new NoSuchDir($file);
                }

                display("Anonymizing directory $dir\n");

                $files = rglob($dir);
                $total = 0;
                if (file_exists($dir . '.anon')) {
                    rmdirRecursive($dir . '.anon');
                }
                mkdir($dir . '.anon', 0755);
                foreach($files as $file) {
                    if ($this->checkCompilation($file)) {
                        ++$this->strings;
                        $total += (int) $this->processFile($file, $dir . '.anon/' . $this->strings . '.php');
                    }
                }
                display("Anonymized $total files\n");
            } elseif (($project = $this->config->project) !== 'default') {
                display("Anonymizing project $project\n");
                $dir = $this->config->projects_root . '/projects/' . $project . '/' . $project;

                if (!file_exists($this->config->projects_root . '/projects/' . $project)) {
                    throw new NoSuchProject($project);
                }

                if (!file_exists($this->config->projects_root . '/projects/' . $project . '/code')) {
                    throw new NoCodeInProject($project);
                }

                $files = $this->datastore->getCol('files', 'file');

                $path = $this->config->projects_root . '/projects/' . $this->config->project . '/code';

                $total = 0;
                if (file_exists($dir . '.anon')) {
                    rmdirRecursive($dir . '.anon');
                }
                mkdir($dir . '.anon', 0755);
                foreach($files as $file) {
                    if ($this->checkCompilation($path . $file)) {
                        ++$this->strings;
                        $total += (int) $this->processFile($path . $file, $dir . '.anon/' . $this->strings . '.php');
                    }
                }
                display("Anonymized $total files\n");
            } else {
                die("Usage : php exakat anonymize -file <filename>
                                 -d <dirname>
                                 -p <project>\n");
            }
        } else {
            display("Anonymizing file $file\n");

            if (!file_exists($file)) {
                throw new NoSuchFile($file);
            }

            if (!$this->checkCompilation($file)) {
                die('Can\'t anonymize ' . $file . ' as it doesn\'t compile with PHP ' . PHP_VERSION . "\n");
            }
            $this->processFile($file);
        }

        display( 'Processing file ' . $file . ' into ' . $file . ".anon\n");
    }

    private function processFile($file, $anonFile = null) {
        $php = file_get_contents($file);
        $tokens = token_get_all($php);
        if (count($tokens) < 3) {
            display( "Ignoring $file, no PHP-code.\n");
            return false;
        }

        $checks = array('T_TRAIT',
                        'T_FINALLY',
                        'T_YIELD',
                        'T_YIELD_FROM',
                        'T_COALESCE',
                        'T_CHARACTER',
                        'T_BAD_CHARACTER',
                        'T_SPACESHIP',
                        );
        foreach($checks as $check) {
            if (!defined($check)) {
                define($check, 1);
            }
        }

        $php = '';
        foreach($tokens as $t) {
            if (is_array($t)) {
                switch($t[0]) {
                    case T_LNUMBER:  // integers
                        if (isset($this->lnumberValues[$t[1]])) {
                            $t[1] = $this->lnumberValues[$t[1]];
                        } else {
                            $this->lnumberValues[$t[1]] = ++$this->lnumber;
                            $t[1] = $this->lnumberValues[$t[1]];
                        }
                        break;
                    case T_DNUMBER:  // real numbers
                        if (isset($this->dnumberValues[$t[1]])) {
                            $t[1] = floor(random_int(0, PHP_INT_MAX) ) / 100;
                        } else {
                            $this->dnumberValues[$t[1]] = ++$this->dnumber;
                            $t[1] = floor(random_int(0, PHP_INT_MAX) ) / 100;
                        }
                        break;
                    case T_VARIABLE:
                        if ($t[1] != '$this') {
                            if (isset($this->variableNames[$t[1]])) {
                                $t[1] = $this->variableNames[$t[1]];
                            } else {
                                $this->variableNames[$t[1]] = '$' . ++$this->variables;
                                $t[1] = $this->variableNames[$t[1]];
                            }
                        }
                        break;
                    case T_CONSTANT_ENCAPSED_STRING:
                        ++$this->strings;
                        if (in_array($this->strings, array('IF', 'AS', 'DO', 'OR'))) {
                            ++$this->strings;
                        }
                        if (isset($this->stringsNames[$t[1]])) {
                            $t[1] = $this->stringsNames[$t[1]];
                        } else {
                            $this->stringsNames[$t[1]] = "'" . $this->strings . "'";
                            $t[1] = $this->stringsNames[$t[1]];
                        }
                        break;
                    case T_STRING:
                    case T_NUM_STRING:
                        if (strtolower($t[1]) == 'null') { break ; }
                        // otherwise, fall through!
                    case T_ENCAPSED_AND_WHITESPACE :
                        ++$this->strings;
                        if (in_array($this->strings, array('IF', 'AS', 'DO', 'OR'))) {
                            ++$this->strings;
                        }
                        if (isset($this->stringsNames[$t[1]])) {
                            $t[1] = $this->stringsNames[$t[1]];
                        } else {
                            $this->stringsNames[$t[1]] = $this->strings;
                            $t[1] = $this->stringsNames[$t[1]];
                        }
                        break;
                    case T_DOC_COMMENT:
                    case T_COMMENT:
                        $t[1] = "\n";
                        break;

                    case T_INLINE_HTML :
                        ++$this->strings;
                        if (isset($this->stringsNames[$t[1]])) {
                            $t[1] = $this->stringsNames[$t[1]];
                        } else {
                            $this->stringsNames[$t[1]] = $this->strings;
                            $t[1] = $this->stringsNames[$t[1]];
                        }
                        break;

                    case T_START_HEREDOC:
                        ++$this->strings;
                        $short = substr($t[1], 3);

                        if (!isset($this->stringsNames[$short])) {
                            $this->stringsNames[$short] = $this->strings;
                        }

                        if ($short[0] == "'") {
                            $t[1] = "<<<'" . $this->stringsNames[$short] . "'\n";
                        } else {
                            $t[1] = '<<<' . $this->stringsNames[$short] . "\n";
                        }

                        $heredoc = "\n" . $this->stringsNames[$short];

                        break;

                    case T_END_HEREDOC:
                        $t[1] = $heredoc;
                        unset($heredoc);

                        break;

                    case T_ISSET :
                    case T_EXIT :

                    case T_ARRAY_CAST :
                    case T_BOOL_CAST :
                    case T_DOUBLE_CAST :
                    case T_OBJECT_CAST :
                    case T_UNSET_CAST :
                    case T_INT_CAST :
                    case T_STRING_CAST :

                    case T_CONST :
                    case T_LIST :

                    case T_NAMESPACE :
                    case T_IMPLEMENTS :

                    case T_MUL_EQUAL :
                    case T_DIV_EQUAL :

                    case T_RETURN :
                    case T_SWITCH :
                    case T_CASE :
                    case T_DEFAULT :
                    case T_ENDSWITCH :
                    case T_ECHO :
                    case T_PRINT :
                    case T_EMPTY :
                    case T_ARRAY :
                    case T_GLOBAL :
                    case T_TRY :
                    case T_CATCH :
                    case T_DOUBLE_ARROW :
                    case T_CURLY_OPEN:
                    case T_ELSE :
                    case T_PUBLIC :
                    case T_PROTECTED :
                    case T_PRIVATE :
                    case T_FINAL :

                    case T_SL :
                    case T_SR :
                    case T_IS_EQUAL :
                    case T_IS_SMALLER_OR_EQUAL :
                    case T_MINUS_EQUAL :
                    case T_WHILE :
                    case T_ENDWHILE :
                    case T_IS_GREATER_OR_EQUAL :
                    case T_PLUS_EQUAL :
                    case T_POW :
                    case T_CLASS :
                    case T_INTERFACE :
                    case T_CONTINUE :
                    case T_WHITESPACE :
                    case T_AS :
                    case T_BOOLEAN_OR :
                    case T_BOOLEAN_AND :
                    case T_BREAK :
                    case T_DEC :
                    case T_DO :
                    case T_IS_NOT_IDENTICAL :
                    case T_SR_EQUAL :
                    case T_XOR_EQUAL :
                    case T_OR_EQUAL :
                    case T_IS_NOT_EQUAL :
                    case T_COALESCE :

                    case T_OPEN_TAG_WITH_ECHO :
                    case T_CALLABLE :
                    case T_UNSET :
                    case T_EVAL :

                    case T_DOLLAR_OPEN_CURLY_BRACES :

                    case T_FINALLY :
                    case T_YIELD :
                    case T_YIELD_FROM :

                    case T_FOR :
                    case T_ENDFOR :
                    case T_FOREACH :
                    case T_ENDFOREACH :

                    case T_FUNCTION :
                    case T_INC:
                    case T_DOUBLE_COLON:
                    case T_THROW:
                    case T_NEW:
                    case T_CLONE:
                    case T_ELLIPSIS:
                    case T_NS_SEPARATOR:
                    case T_OBJECT_OPERATOR:
                    case T_DIR:
                    case T_STATIC:
                    case T_VAR :
                    case T_OPEN_TAG:
                    case T_CLOSE_TAG:
                    case T_INSTANCEOF:

                    case T_INCLUDE :
                    case T_INCLUDE_ONCE :
                    case T_REQUIRE :
                    case T_REQUIRE_ONCE :

                    case T_TRAIT :
                    case T_EXTENDS :
                    case T_USE :
                    case T_INSTEADOF :

                    case T_LOGICAL_AND :
                    case T_LOGICAL_OR :
                    case T_LOGICAL_XOR :

                    case T_IF:
                    case T_ELSEIF:
                    case T_ENDIF :

                    case T_FILE :
                    case T_CLASS_C :
                    case T_FUNC_C :
                    case T_LINE :
                    case T_METHOD_C :
                    case T_NS_C :

                    case T_POW_EQUAL :
                    case T_SL_EQUAL :
                    case T_AND_EQUAL :
                    case T_MOD_EQUAL :

                    case T_DECLARE :
                    case T_ENDDECLARE :
                    case T_GOTO :
                    case T_ABSTRACT :
                    case T_HALT_COMPILER :
                    case T_TRAIT_C :
                    case T_PAAMAYIM_NEKUDOTAYIM :

                    case T_STRING_VARNAME : //complex variable parsed syntax
                    case T_CHARACTER :      // Not used
                    case T_BAD_CHARACTER :  //anything below ASCII 32 except \t (0x09), \n (0x0a) and \r (0x0d)

                    case T_IS_IDENTICAL:
                    case T_CONCAT_EQUAL:
                        // simply ignore
                        break;

                    default:
                        echo token_name($t[0]), " is unknown token\n", print_r($t, true);
                }

                $php .= $t[1];
            } else {
                $php .= $t;
            }
        }
        if ($anonFile === null) {
            $anonFile = $file . '.anon';
        }

        file_put_contents($anonFile, $php);

        return true;
    }

    private function checkCompilation($file) {
        $res = shell_exec($this->config->php . ' -l ' . $file . ' 2>&1');
        //@todo : differentiate fatal error and non-fatal ones.
        return substr($res, 0, 28) == 'No syntax errors detected in';
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks;

class Export extends Tasks {
    const CONCURENCE = self::ANYTIME;

    public function run() {
        $gremlinVersion = $this->gremlin->serverInfo()->toString()[0];

        if (version_compare($gremlinVersion, '3.4.0') <= 0) {
            $queryTemplate = 'g.V().valueMap().with(WithOptions.tokens).by(unfold())';
        } else {
            $queryTemplate = 'g.V()';
        }

        $vertices = $this->gremlin->query($queryTemplate, array());

        $V = array();
        $root = 0;
        foreach($vertices as $v) {
            if ($v['label'] === 'Project') {
                $root = $v['id'];
            }
            $V[$v['id']] =  $v;
        }

        $gremlinVersion = $this->gremlin->serverInfo()->toArray()[0];
        if (version_compare($gremlinVersion, '3.4.0') <= 0) {
            $queryTemplate = 'g.E().as("e").outV().as("outV").select("e").inV().as("inV").select("e", "inV", "outV").by(valueMap(true).by(unfold())).by(id()).by(id())';
        } else {
            $queryTemplate = 'g.E()';
        }
        $edges = $this->gremlin->query($queryTemplate);

        $E = array();
        foreach($edges as $e) {
            // Special for version 3.4
            if (isset($e['e'])) {
                $e = array_merge($e, $e['e']);
            }
            $id = $e['outV'];

            if (!isset($E[$id])) {
                $E[$id] = array();
            }

            $endNodeId = $e['inV'];
            if(isset($E[$id][$endNodeId])) {
                $E[$id][$endNodeId] .= ', ' . $e['label'];
            } else {
                $E[$id][$endNodeId] = $e['label'];
            }
        }

        if (in_array('Dot', $this->config->project_reports)) {
            $text = $this->display_dot($V, $E, $root);
        } elseif (in_array('Table', $this->config->project_reports)) {
            $text = $this->display_table($V, $E, $root);
        } else {
            $text = $this->display_text($V, $E, $root);
        }

        if ($this->config->filename) {
            if (in_array('Dot', $this->config->project_reports)) {
                $fp = fopen($this->config->filename . '.dot', 'w+');
            } else {
                $fp = fopen($this->config->filename, 'w+');
            }
            fwrite($fp, $text);
            fclose($fp);
        } else {
            echo $text;
        }
    }

    private function display_text($V, $E, $root, $level = 0) {
        $r = '';

        if (isset($V[$root])) {
            $r .= str_repeat('  ', $level) . $V[$root]['code'] . "\n";
        }

        if (isset($E[$root])) {
            asort($E[$root]);
            uksort($E[$root], function ($a, $b) use ($V) {
                if (!isset($V[$a]['rank'])) { return 0; }
                if (!isset($V[$b]['rank'])) { return 0; }
                return $V[$a]['rank'] > $V[$b]['rank']; });

            foreach($E[$root] as $id => $label) {
                $r .= str_repeat('  ', $level) . 'Label : ' . $label . "\n" . $this->display_text($V, $E, $id, $level + 1);
            }
        }

        return $r;
    }

    private function display_dot($V, $E, $root) {
        $r = '';

        foreach($V as $id => $v) {
            if (!isset($v['fullcode'])) {
                if (isset($v['code'])) {
                    $v['fullcode'] =  $v['code'];
                } elseif (isset($v['analyzer'])) {
                    $v['fullcode'] =  $v['analyzer'];
                } else {
                    $v['fullcode'] =  'NO CODE PROVIDED';
                }
            }
            $R = $id . ' [label="' . addslashes($v['fullcode']) . '"';

        //https://sashat.me/2017/01/11/list-of-20-simple-distinct-colors/
        //        #e6194B, #3cb44b, #ffe119, #4363d8, #f58231, #911eb4, #42d4f4, #f032e6, #bfef45, #fabebe, #469990, #e6beff, #9A6324, #fffac8, #800000, #aaffc3, #808000, #ffd8b1, #000075, #a9a9a9, #ffffff, #000000

            switch($v['label']) {
                case 'Variable' :
                case 'This' :
                case 'Variableobject' :
                case 'Variablearray' :
                    $R .= ' style="filled" fillcolor="#e6194B"';
                    break;

                case 'Functioncall' :
                case 'Methodcall' :
                case 'Staticmethodcall' :
                    $R .= ' style="filled" fillcolor="#3cb44b"';
                    break;

                case 'Class' :
                    $R .= ' style="filled" fillcolor="#ffe119"';
                    break;

                case 'Interface' :
                    $R .= ' style="filled" fillcolor="#4363d8"';
                    break;

                case 'Trait' :
                    $R .= ' style="filled" fillcolor="#911eb4"';
                    break;

                case 'Method' :
                case 'Magicmethod' :
                    $R .= ' style="filled" fillcolor="#42d4f4"';
                    break;

                default:
                    // nothing, really
            }

            if (isset($v['atom'])) {
                $R .= ' shape=box ';
            }
            $R .= "];\n";

            $r .= $R;
        }

        foreach($E as $start => $e) {
            foreach($e as $end => $label) {
                $r .= "$start -> $end [label=\"$label\"];\n";
            }
        }

        $r = " digraph graphname {
    $r
     }";

        return $r;
    }

    private function display_table($V, $E, $root) {
        $r = '<table>';

        foreach($V as $v) {
            $row = array(highlight_string($v['code'], \RETURN_VALUE));
            if (isset($v['atom'])) {
                $row[] = $v['atom'];
            } else {
                $row[] = 'No atom';
            }
            if (isset($v['token'])) {
                $row[] = $v['token'];
            } else {
                $row[] = 'No token';
            }
            if (isset($v['file'])) {
                $row[] = $v['file'];
            } else {
                $row[] = 'No file';
            }
            if (isset($v['order'])) {
                $row[] = $v['order'];
            } else {
                $row[] = '';
            }

            $row = '<td>' . implode('</td><td>', $row) . '</td>';
            $r .= "<tr>$row</tr>\n";
        }
        $r .= '</table>';

        return $r;
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks;

use Exakat\Exakat;
use Exakat\Config;
use Exakat\Phpexec;
use Exakat\Graph\Graph;
use Exakat\Tasks\Helpers\Php;
use Exakat\Exceptions\NoPhpBinary;
use Exakat\Exceptions\HelperException;
use Exakat\Exceptions\NoSuchReport;
use Exakat\Tasks\Helpers\ReportConfig;

class Doctor extends Tasks {
    const CONCURENCE = self::ANYTIME;

    protected $logname = self::LOG_NONE;

    private $reportList = array();

    public function __construct() {
        $this->config  = exakat('config');
        $this->gremlin = exakat('graphdb');
        // Ignoring everything else
    }

    public function run() {
        $stats = array_merge($this->checkPreRequisite(),
                             $this->checkAutoInstall());

        $phpBinaries = array('php' . str_replace('.', '', substr(PHP_VERSION, 0, 3)) => PHP_BINARY);
        foreach(Config::PHP_VERSIONS as $shortVersion) {
            $configName = "php$shortVersion";
            if (!empty($this->config->$configName)) {
                $phpBinaries[$configName] = $this->config->$configName;
            }
        }

        $stats = array_merge($stats,
                             $this->checkPHPs($phpBinaries));

        if ($this->config->verbose === true) {
            $stats = array_merge($stats, $this->checkOptional());
        }

        if ($this->config->json === true) {
            print json_encode($stats);
            return;
        }

        $doctor = '';
        foreach($stats as $section => $details) {
            $doctor .= $section . ' : ' . PHP_EOL;
            foreach($details as $k => $v) {
                $doctor .= '    ' . substr("$k                          ", 0, 20) . ' : ' . $v . PHP_EOL;
            }
            $doctor .= PHP_EOL;
        }
        print $doctor;
    }

    private function checkPreRequisite() {
        $stats = array();

        // Compulsory
        $stats['exakat']['executable']  = $this->config->executable;
        $stats['exakat']['version']     = Exakat::VERSION;
        $stats['exakat']['build']       = Exakat::BUILD;
        $stats['exakat']['exakat.ini']  = $this->array2list($this->config->configFiles);
        $stats['exakat']['graphdb']     = $this->config->graphdb;
        $reportList = array();
        foreach($this->config->project_reports as $project_report) {
            try {
                $reportConfig = new ReportConfig($project_report, $this->config);
            } catch (NoSuchReport $e) {
                display($e->getMessage());
                continue;
            }
            $this->reportList[] = $reportConfig->getName();
        }
        sort($this->reportList);
        $stats['exakat']['reports']      = $this->array2list($reportList);

        $stats['exakat']['rulesets']       = $this->array2list($this->config->project_rulesets);
        $stats['exakat']['extra rulesets'] = $this->array2list(array_keys($this->config->rulesets));
        $stats['exakat']['ignored rules']  = $this->array2list($this->config->ignore_rules);

        $stats['exakat']['tokenslimit'] = number_format((int) $this->config->token_limit, 0, '', ' ');
        if ($list = $this->config->ext->getPharList()) {
            $stats['exakat']['extensions']  = $this->array2list($list);
        }

        // check for running PHP
        $stats['PHP']['binary']                 = phpversion();
        $stats['PHP']['memory_limit']           = ini_get('memory_limit');
        $stats['PHP']['short_open_tags']        = (ini_get('short_open_tags') ? 'On' : 'Off');
        $stats['PHP']['ext/curl']               = extension_loaded('curl') ? 'Yes' : 'No (Compulsory, please install it with --with-curl)';
        $stats['PHP']['ext/hash']               = extension_loaded('hash') ? 'Yes' : 'No (Compulsory, please install it with --enable-hash)';
        $stats['PHP']['ext/phar']               = extension_loaded('phar') ? 'Yes' : 'No (Needed to run exakat.phar. please install by default)';
        $stats['PHP']['ext/sqlite3']            = extension_loaded('sqlite3') ? 'Yes' : 'No (Compulsory, please install it by default (remove --without-sqlite3))';
        $stats['PHP']['ext/tokenizer']          = extension_loaded('tokenizer') ? 'Yes' : 'No (Compulsory, please install it by default (remove --disable-tokenizer))';
        $stats['PHP']['ext/mbstring']           = extension_loaded('mbstring') ? 'Yes' : 'No (Compulsory, add --enable-mbstring to configure)';
        $stats['PHP']['ext/json']               = extension_loaded('json') ? 'Yes' : 'No';
        $stats['PHP']['ext/xmlwriter']          = extension_loaded('xmlwriter') ? 'Yes' : 'No (Optional, used by XML reports)';
        $stats['PHP']['ext/pcntl']              = extension_loaded('pcntl') ? 'Yes' : 'No (Optional)';

        if (extension_loaded('xdebug') === true) {
            $stats['PHP']['xdebug.max_nesting_level']            = (ini_get('xdebug.max_nesting_level') ) . ' (Must be -1 or more than 1000)';
        }
        $stats['PHP']['parallel_processing']    = $this->config->parallel_processing ? 'Yes' : 'No (Optional)';
        $stats['PHP']['pcre.jit']               = (ini_get('pcre.jit') ? 'On' : 'Off') . ' (Must be off on PHP 7.3 and OSX)';

        // java
        $res = shell_exec('java -version 2>&1');
        if (stripos($res, 'command not found') !== false) {
            $stats['java']['installed'] = 'No';
            $stats['java']['installation'] = 'No java found. Please, install Java Runtime (SRE) 1.7 or above from java.com web site.';
        } elseif (preg_match('/(java|openjdk) version "(.*)"/is', $res, $r)) {
            $lines = explode(PHP_EOL, $res);
            $line2 = $lines[1];
            $stats['java']['installed'] = 'Yes';
            $stats['java']['type'] = trim($line2);
            $stats['java']['version'] = $r[1];
        } else {
            $stats['java']['error'] = $res;
            $stats['java']['installation'] = 'No java found. Please, install Java Runtime (SRE) 1.7 or above from java.com web site.';
        }
        $stats['java']['$JAVA_HOME'] = getenv('JAVA_HOME') ? getenv('JAVA_HOME') : '<none>';
        $stats['java']['$JAVA_OPTIONS'] = getenv('JAVA_OPTIONS') ?? ' (set $JAVA_OPTIONS="-Xms32m -Xmx****m", with **** = RAM in Mb. The more the better.';

        $stats['tinkergraph']   = Graph::getConnexion('Tinkergraph')->getInfo();
        $stats['tinkergraphv3'] = Graph::getConnexion('TinkergraphV3')->getInfo();
        $stats['gsneo4j']       = Graph::getConnexion('GSNeo4j')->getInfo();
        $stats['nogremlin']     = Graph::getConnexion('NoGremlin')->getInfo();

        if ($this->config->project !== null) {
            $stats['project']['name']             = $this->config->project_name;
            $stats['project']['url']              = $this->config->project_url;
            $stats['project']['phpversion']       = $this->config->phpversion;
            $stats['project']['reports']          = makeList($this->reportList);
            $stats['project']['rulesets']         = makeList($this->config->project_rulesets  ?? array(), '');
            $stats['project']['included dirs']    = makeList($this->config->include_dirs      ?? array(), '');
            $stats['project']['ignored dirs']     = makeList($this->config->ignore_dirs       ?? array(), '');
            $stats['project']['file extensions']  = makeList($this->config->file_extensions   ?? array(), '');
        }

        return $stats;
    }

    private function checkAutoInstall() {
        $stats = array();

        // config
        if (!file_exists("{$this->config->projects_root}/config")) {
            mkdir("{$this->config->projects_root}/config", 0755);
        }

        if (!file_exists("{$this->config->projects_root}/ext")) {
            mkdir("{$this->config->projects_root}/ext", 0755);
            file_put_contents("{$this->config->projects_root}/ext/README.txt", <<<'TEXT'
This is the extension folder for exakat. Use the 'extension' command to add or remove extensions in this folder.

# list local extensions (default)
php exakat.phar extension local

# list available extensions from exakat.io
php exakat.phar extension remote

# install an extension from exakat.io
php exakat.phar extension install

# uninstall an extension from exakat.io
php exakat.phar extension uninstall

TEXT
);
        }

        if (file_exists("{$this->config->projects_root}/config/exakat.ini")) {
            $graphdb = $this->config->graphdb;
            $folder = '';
        } else {
            $ini = file_get_contents("{$this->config->dir_root}/server/exakat.ini");
            $version = PHP_MAJOR_VERSION . PHP_MINOR_VERSION;

            if (file_exists("{$this->config->projects_root}/tinkergraph")) {
                $folder = 'tinkergraph';
                // tinkergraph or gsneo4j
                if (file_exists("{$this->config->projects_root}/tinkergraph/ext/neo4j-gremlin/")) {
                    $graphdb = 'gsneo4j';
                } else {
                    $graphdb = 'tinkergraph';
                }
            } else {
                $folder = '';
                $graphdb = 'nogremlin';
            }

            $ini = str_replace(array('{VERSION}', '{VERSION_PATH}',   '{GRAPHDB}', ";$graphdb", '{GRAPHDB}_path', ),
                               array( $version,    $this->config->php, $graphdb,    $graphdb,    $folder),
                               $ini);

            file_put_contents("{$this->config->projects_root}/config/exakat.ini", $ini);
        }

        $this->checkInstall($graphdb);

        // projects
        if (file_exists("{$this->config->projects_root}/projects/")) {
            $stats['folders']['projects folder'] = 'Yes';
        } else {
            mkdir("{$this->config->projects_root}/projects/", 0755);
            if (file_exists("{$this->config->projects_root}/projects/")) {
                $stats['folders']['projects folder'] = 'Yes';
            } else {
                $stats['folders']['projects folder'] = 'No';
            }
        }

        // projects
        if (file_exists('./projects') &&
            !file_exists("{$this->config->projects_root}/projects/test")) {

            $i = 0;
            do {
                ++$i;
                $id = random_int(0, PHP_INT_MAX);
            } while (file_exists("{$this->config->projects_root}/projects/test$id") && $i < 100);

            $args = array ( 1 => 'init',
                            2 => '-p',
                            3 => "test$id",
                          );
            $initConfig = new Config($args);
            $init = new Initproject(self::IS_SUBTASK);
            $init->run();
            rename("{$this->config->projects_root}/projects/test$id", "{$this->config->projects_root}/projects/test");
            unset($init);
            unset($initConfig);
        }

        $stats['folders']['projects/test']    = file_exists("{$this->config->projects_root}/projects/test/") ? 'Yes' : 'No';
        $stats['folders']['projects/default'] = file_exists("{$this->config->projects_root}/projects/default/") ? 'Yes' : 'No';
        $stats['folders']['projects/onepage'] = file_exists("{$this->config->projects_root}/projects/onepage/") ? 'Yes' : 'No';

        return $stats;
    }

    private function checkInstall($graphdb) {
        if ($graphdb === 'gsneo4j') {
            if (file_exists("{$this->config->projects_root}/{$this->config->gsneo4j_folder}/conf/neo4j-empty.properties")) {
                $properties = file_get_contents("{$this->config->projects_root}/{$this->config->gsneo4j_folder}/conf/neo4j-empty.properties");
                $properties = preg_replace("#gremlin.neo4j.directory=.*\n#s", "gremlin.neo4j.directory=db/neo4j\n", $properties);
                file_put_contents("{$this->config->projects_root}/{$this->config->gsneo4j_folder}/conf/neo4j-empty.properties", $properties);
            }

            $this->checkGremlinServer("{$this->config->projects_root}/{$this->config->gsneo4j_folder}");
        } elseif ($graphdb === 'tinkergraph') {
            $this->checkGremlinServer("{$this->config->projects_root}/{$this->config->tinkergraph_folder}");
        } elseif ($graphdb === 'nogremlin') {
            // Nothing to do
        }
    }

    private function checkGremlinServer($path) {
        if (!file_exists($path)) {
            return;
        }

        if (!file_exists("$path/db")) {
            mkdir("$path/db", 0755);
        }

        $gremlinJar = glob("{$this->config->gsneo4j_folder}/lib/gremlin-core-*.jar");
        $gremlinVersion = basename(array_pop($gremlinJar));

        $gremlinVersion = substr($gremlinVersion, 13, -4);
        if (version_compare('3.4.0', $gremlinVersion) < 0) {
            $version = '.3.4';
        } elseif (version_compare('3.3.0', $gremlinVersion) < 0) {
            $version = '.3.3';
        } elseif (version_compare('3.2.0', $gremlinVersion) < 0) {
            $version = '.3.2';
        } else {
            print "Warning : Wrong Gremlin version found : $gremlinVersion read. Possible version range from 3.2.0 to 3.4.0.";
            return;
        }

        if (!copy("{$this->config->dir_root}/server/gsneo4j/gsneo4j{$version}.yaml",
             "$path/conf/gsneo4j.yaml")) {
            display("Error while copying gsneo4j{$version}.yaml config file to tinkergraph.");
        }
        if (!copy("{$this->config->dir_root}/server/tinkergraph/tinkergraph{$version}.yaml",
             "$path/tinkergraph.yaml")) {
            display("Error while copying tinkergraph{$version}.yaml config file to tinkergraph.");
        }
    }

    private function checkPHPs($config) {
        $stats = array();

        foreach(Config::PHP_VERSIONS as $shortVersion) {
            $configVersion = "php$shortVersion";
            $version = "$shortVersion[0].$shortVersion[1]";
            if (isset($config[$configVersion])) {
                $stats[$configVersion] = $this->checkPHP($config[$configVersion], $version);
            } else {
                $stats[$configVersion] = array('configured' => 'No');
            }
        }

        return $stats;
    }

    private function checkOptional() {
        $stats = array();

        $optionals = array('Git'       => 'git',
                           'Mercurial' => 'hg',
                           'Svn'       => 'svn',
                           'Cvs'       => 'cvs',
                           'Bazaar'    => 'bzr',
                           'Composer'  => 'composer',
                           'Zip'       => 'zip',
                           'Rar'       => 'rar',
                           'Tarbz'     => 'tbz',
                           'Targz'     => 'tgz',
                           'SevenZ'    => '7z',
                          );

        foreach($optionals as $class => $section) {
            try {
                $fullClass = "\Exakat\Vcs\\$class";
                $vcs = new $fullClass($this->config->project, $this->config->code_dir);
                $stats[$section] = $vcs->getInstallationInfo();
            } catch (HelperException $e) {
                $stats[$section] = array('installed' => 'No');
            }
        }

        return $stats;
    }

    private function checkPHP($pathToBinary, $displayedVersion) {
        $stats = array();

        $stats['configured'] = 'Yes (' . $pathToBinary . ')';

        try {
            $php = new Phpexec($displayedVersion, $pathToBinary);
            $stats['actual version'] = $php->getActualVersion();
            if (substr($stats['actual version'], 0, 3) === $this->config->phpversion) {
                $stats['auditing'] = 'with this version';
            }
        } catch (NoPhpBinary $e) {
            $stats['installed'] = 'Invalid path : ' . $pathToBinary;
        }
        return $stats;
    }

    private function array2list(array $array) {
        return implode(",\n                           ", $array);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks;

use Exakat\Config;
use Exakat\Exceptions\AnotherProcessIsRunning;
use Exakat\Exceptions\ProjectTooLarge;
use Exakat\Log;

abstract class Tasks {
    protected $log        = null;
    protected $logname    = self::LOG_AUTONAMING;
    protected $datastore  = null;

    protected $gremlin    = null;
    protected $config     = null;

    protected $is_subtask   = self::IS_NOT_SUBTASK;

    public static $semaphore      = null;
    public static $semaphorePort  = null;

    protected $rulesets = null;

    const  NONE    = 1;
    const  ANYTIME = 2;
    const  DUMP    = 3;
    const  QUEUE   = 4;
    const  SERVER  = 5;

    const IS_SUBTASK     = true;
    const IS_NOT_SUBTASK = false;

    const LOG_NONE = null;
    const LOG_AUTONAMING = '';

    public function __construct(bool $subTask = self::IS_NOT_SUBTASK) {
        $this->gremlin    = exakat('graphdb');
        $this->config     = exakat('config');
        $this->datastore  = exakat('datastore');
        $this->datastore->reuse();
        $this->is_subtask = $subTask;

        assert(defined('static::CONCURENCE'), get_class($this) . " is missing CONCURENCE\n");

        if (static::CONCURENCE !== self::ANYTIME && $subTask === self::IS_NOT_SUBTASK) {
            if (self::$semaphore === null) {
                if (static::CONCURENCE === self::QUEUE) {
                    self::$semaphorePort = $this->config->concurencyCheck;
                } elseif (static::CONCURENCE === self::SERVER) {
                    self::$semaphorePort = $this->config->concurencyCheck + 1;
                } elseif (static::CONCURENCE === self::DUMP) {
                    self::$semaphorePort = $this->config->concurencyCheck + 2;
                } else {
                    self::$semaphorePort = $this->config->concurencyCheck + 3;
                }

                if ($socket = @stream_socket_server('udp://0.0.0.0:' . self::$semaphorePort, $errno, $errstr, STREAM_SERVER_BIND)) {
                    self::$semaphore = $socket;
                } else {
                    throw new AnotherProcessIsRunning();
                }
            }
        }

        if ($this->logname === self::LOG_AUTONAMING) {
            $a = get_class($this);
            $this->logname = strtolower(substr($a, strrpos($a, '\\') + 1));
        }

        if ($this->logname !== self::LOG_NONE) {
            $this->log = new Log($this->logname,
                                 "{$this->config->projects_root}/projects/{$this->config->project}");
        }

        if ($this->config->inside_code === Config::INSIDE_CODE ||
            $this->config->project !== 'default') {
                if (!file_exists($this->config->tmp_dir) &&
                     file_exists(dirname($this->config->tmp_dir)) ) {
                    mkdir($this->config->tmp_dir, 0700);
            }
        } elseif (!file_exists("{$this->config->projects_root}/projects/")) {
            mkdir("{$this->config->projects_root}/projects/", 0700);
        }

        if ($this->config->project !== 'default') {
            $this->datastore = exakat('datastore');
        }

        $this->rulesets = exakat('rulesets');
    }

    public function __destruct() {
        if (static::CONCURENCE !== self::ANYTIME       &&
            $this->is_subtask === self::IS_NOT_SUBTASK &&
            !empty(self::$semaphore)) {
            fclose(self::$semaphore);
            self::$semaphore = null;
            self::$semaphorePort = -1;
        }
    }

    protected function checkTokenLimit() {
        $nb_tokens = $this->datastore->getHash('tokens');

        if ($nb_tokens > $this->config->token_limit) {
            $this->datastore->addRow('hash', array('token error' => "Project too large ($nb_tokens / {$this->config->token_limit})"));
            throw new ProjectTooLarge($nb_tokens, $this->config->token_limit);
        }
    }

    abstract public function run();

    protected function cleanLogForProject($project) {
        $logs = glob("{$this->config->log_dir}/*");
        foreach($logs as $log) {
            unlink($log);
        }
    }

    protected function addSnitch($values = array()) {
        static $snitch, $pid, $path;

        if ($snitch === null) {
            $snitch = str_replace('Exakat\\Tasks\\', '', get_class($this));
            $pid = getmypid();
            $path = "{$this->config->tmp_dir}/$snitch.json";
        }

        $values['pid'] = $pid;
        file_put_contents($path, json_encode($values));
    }

    protected function removeSnitch() {
        static $snitch, $path;

        if ($snitch === null) {
            $snitch = str_replace('Exakat\\Tasks\\', '', get_class($this));
            $path = "{$this->config->tmp_dir}/$snitch.json";
        }

        unlink($path);
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks;

use Exakat\Exceptions\MissingFile;
use Exakat\Exceptions\NoCodeInProject;
use Exakat\Exceptions\ProjectNeeded;
use Exakat\Exceptions\NoSuchProject;

class FindExternalLibraries extends Tasks {
    const CONCURENCE = self::ANYTIME;

    const WHOLE_DIR   = 1;
    const FILE_ONLY   = 2;
    const PARENT_DIR  = 3; // Whole_dir and parent.

    private $php               = null;
    private $phpTokens         = array();
    private $whiteSpace        = array();

    private $classicTestsNames = array();
    private $classicTests      = array();
    private $classic           = array();

    public function __construct($subTask = self::IS_NOT_SUBTASK) {
        parent::__construct($subTask);

        $json = json_decode(file_get_contents("{$this->config->dir_root}/data/externallibraries.json"));
        foreach((array) $json as $name => $o) {
            if ($o->type === 'classic') {
                foreach($o->classes as $class) {
                    $this->classic[$class] = constant("self::$o->ignore");
                }
            } elseif ($o->type === 'test') {
                foreach($o->classes as $class) {
                    $this->classicTests[$class] = constant("self::$o->ignore");
                    $this->classicTestsNames[$class] = $o->name;
                }
            } else {
                assert(false, "[External libraries] : Wrong type for $name : $o->type\n");
            }
        }
    }

    public function run() {
        $project = $this->config->project;
        if ($project === 'default') {
            throw new ProjectNeeded();
        }

        if (!file_exists($this->config->project_dir)) {
            throw new NoSuchProject($project);
        }

        if (!file_exists($this->config->code_dir)) {
            throw new NoCodeInProject($project);
        }

        $cacheFile = "{$this->config->project_dir}/config.cache";

        display('Processing files');
        Files::findFiles($this->config->code_dir, $files, $ignoredFiles, $this->config);

        if (empty($files)) {
            display('No files to process. Aborting');
            return;
        }

        $missing = array();
        foreach($files as $file) {
            if (!file_exists($this->config->code_dir . $file)) {
                $missing[] = $file;
            }
        }
        if (!empty($missing)) {
            throw new MissingFile($missing);
        }

        $this->php = exakat('php');

        $this->phpTokens = array_flip($this->php->getTokens());
        $this->whiteSpace = array($this->phpTokens['T_WHITESPACE']  => 1,
                                  $this->phpTokens['T_DOC_COMMENT'] => 1,
                                  $this->phpTokens['T_COMMENT']     => 1,
                                 );

        $r = array();
        rsort($files);
        $ignore = 'None';
        $ignoreLength = 0;
        $regex = '$^(' . implode('|', $this->config->include_dirs) . ')$';
        $toCheckFiles = preg_grep($regex, $files, PREG_GREP_INVERT);

        foreach($toCheckFiles as $file) {
            if (substr($file, 0, $ignoreLength) === $ignore) {
                display( "Ignore $file ($ignore)\n");
                continue;
            }
            $s = $this->process($file);

            if (!empty($s)) {
                $r[] = $s;
                $ignore = array_pop($s);
                $ignoreLength = strlen($ignore);
            }
        }

        if (empty($r)) {
            $newConfigs = array();
        } else {
            $newConfigs = array_merge(...$r);
        }

        $newConfigs = array_diff($newConfigs, $this->config->include_dirs);

        if (count($newConfigs) === 1) {
            display('One external library is going to be omitted : ' . implode(', ', array_keys($newConfigs)));
        } elseif (!empty($newConfigs)) {
            display(count($newConfigs) . ' external libraries are going to be omitted : ' . implode(', ', array_keys($newConfigs)));
        }

        $store = array();
        foreach($newConfigs as $library => $file) {
            $store[] = compact('library', 'file');
        }

        $this->datastore->cleanTable('externallibraries');
        $this->datastore->addRow('externallibraries', $store);

        if ($this->config->update === true) {
            if (file_exists($cacheFile)) {
                display("$project has already a file cache. Omitting.");
                return; //Cancel task
            }

             display("'Updating $project/config.cache");
             $ini = '; This file contains configuration auto-generated by exakat. ' . PHP_EOL .
                    '; Do not edit this file manually : in case of doubt, remove it to regenerate it. ' . PHP_EOL .
                    '; This file was auto-generated on ' . date('r') . PHP_EOL;
            if (empty($newConfigs)) {
                $ini .= PHP_EOL . '; This file is intentionally left blank' . PHP_EOL;
            } else {
                $ini .= PHP_EOL . '; This file is contains ' . count($newConfigs) . ' lines' . PHP_EOL
                               . 'ignore_dirs[] = ' . implode("\n" . 'ignore_dirs[] = ', $newConfigs) . PHP_EOL;
            }

             file_put_contents($cacheFile, $ini);
        } else {
            display('Not updating ' . $project . '/config.cache. ' . count($newConfigs) . ' external libraries found');
        }
    }

    private function process($filename) {
        $return = array();

        $tokens = $this->php->getTokenFromFile($filename);
        if (count($tokens) === 1) {
            return $return;
        }
        $this->log->log("$filename : " . count($tokens));

        foreach($tokens as $id => $token) {
            if (is_string($token)) { continue; }

            if (isset($this->whiteSpace[$token[0]])) { continue; }

            // If we find a namespace, it is not the global space, and we may skip the rest.
            if ($token[0] === $this->phpTokens['T_NAMESPACE']) {
                return;
            }

            if ($token[0] === $this->phpTokens['T_CLASS']) {
                if (!isset($tokens[$id + 2]) ||
                    !is_array($tokens[$id + 2])) { continue; }
                $class = $tokens[$id + 2][1];
                if (!is_string($class)) {
                    // ignoring errors in the parsed code. Should go to log.
                    continue;
                }

                $lclass = strtolower($class);
                $returnPath = '';
                if (isset($this->classic[$lclass])) {
                    if ($this->classic[$lclass] === static::WHOLE_DIR) {
                        $returnPath = dirname(preg_replace('#.*projects/.*?/code/#', '/', $filename));
                    } elseif ($this->classic[$lclass] === static::PARENT_DIR) {
                        $returnPath = dirname(preg_replace('#.*projects/.*?/code/#', '/', $filename), 2);
                    } elseif ($this->classic[$lclass] === static::FILE_ONLY) {
                        $returnPath = preg_replace('#.*projects/.*?/code/#', '/', $filename);
                    }
                    if ($returnPath != '/') {
                        $return[$class] = $returnPath;
                    }
                }

                if (isset($tokens[$id + 4])    &&
                    is_array($tokens[$id + 4]) &&
                    $tokens[$id + 4][0] === $this->phpTokens['T_EXTENDS']) {
                    $ix = $id + 6;
                    $extends = '';

                    while($tokens[$ix][0] === T_NS_SEPARATOR || $tokens[$ix][0] === $this->phpTokens['T_STRING'] ) {
                        $extends .= $tokens[$ix][1];
                        ++$ix;
                    }

                    $extends = strtolower(trim($extends, '\\'));
                    if (isset($this->classicTests[$extends])) {
                        if ($this->classicTests[$extends] === static::WHOLE_DIR) {
                            $returnPath = dirname(preg_replace('#.*projects/.*?/code/#', '/', $filename));
                        } elseif ($this->classicTests[$extends] === static::PARENT_DIR) {
                            $returnPath = dirname(preg_replace('#.*projects/.*?/code/#', '/', $filename), 2);
                        } elseif ($this->classicTests[$extends] === static::FILE_ONLY) {
                            $returnPath = preg_replace('#.*projects/.*?/code/#', '/', $filename);
                        }
                        if ($returnPath !== '/') {
                            $class = $this->classicTestsNames[$extends];
                            $return[$class] = $returnPath;
                        }
                    }
                }
            }
        }

        return $return;
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks;

use Exakat\Config;
use Exakat\Configsource\ProjectConfig;
use Exakat\Exceptions\InvalidProjectName;
use Exakat\Exceptions\ProjectNeeded;
use Exakat\Exceptions\VcsError;
use Exakat\Project;
use Exakat\Vcs\Vcs;
use Exakat\Vcs\None;

class Initproject extends Tasks {
    const CONCURENCE = self::ANYTIME;

    public function run() {
        if ($this->config->project === 'default') {
            throw new ProjectNeeded();
        }

        if ($this->config->project === 'test') {
            throw new InvalidProjectName('Can\t use test as project name.');
        }

        if (!$this->config->project->validate()) {
            throw new InvalidProjectName($this->config->project->getError());
        }

        $repositoryURL = $this->config->repository;

        if ($this->config->delete === true) {
            display("Deleting {$this->config->project}");

            // final wait..., just in case
            sleep(2);

            rmdirRecursive("{$this->config->projects_root}/projects/{$this->config->project}");
        }

        display("Initializing {$this->config->project}" . (!empty($repositoryURL) ? " with $repositoryURL" : '') );
        $this->init_project($this->config->project, $repositoryURL);

        display('Done');
    }

    private function init_project($project, $repositoryURL) {
        $finalPath = "{$this->config->projects_root}/projects/$project";

        if (file_exists($finalPath)) {
            display( "$finalPath already exists. Reusing it.\n");

            return;
        }

        $tmpPath = "{$this->config->projects_root}/projects/$project";
        if (file_exists($tmpPath)) {
            display("Removing tmpPath : $tmpPath\n");
            rmdirRecursive($tmpPath);
        }

        if (!file_exists("{$this->config->projects_root}/projects/")) {
            mkdir("{$this->config->projects_root}/projects/", 0755);
        }

        if (!mkdir($tmpPath, 0755)) {
            die("Could not create project directory '$project'");
        }

        if (!mkdir("{$tmpPath}/log/", 0755)) {
            die("Could not finalyze project directory '$project'");
        }

        $repositoryBranch    = '';
        $repositoryTag       = '';
        $include_dirs        = $this->config->include_dirs;

        $dotProject          = ".$project";
        if (empty($repositoryURL)) {
            $vcs = new None($dotProject, "$tmpPath/code");
            $projectName = $project;
        } else {
            $vcsClass = Vcs::getVcs($this->config);
            $vcs = new $vcsClass($dotProject, "$tmpPath/code");

            switch($vcs->getName()) {
                case 'symlink' :
                    $projectName = basename($repositoryURL);
                    break;

                case 'svn' :
                    $projectName = basename($repositoryURL);
                    if (in_array($projectName, array('trunk', 'code'))) {
                        $projectName = basename(dirname($repositoryURL));
                        if (in_array($projectName, array('trunk', 'code'))) {
                            $projectName = basename(dirname($repositoryURL, 2));
                        }
                    }
                    break;

                case 'git' :
                    $projectName = basename($repositoryURL);
                    $projectName = str_replace('.git', '', $projectName);

                    if (!empty($this->config->branch) &&
                        $this->config->branch !== 'master') {
                        $repositoryBranch =  $this->config->branch;
                        $repositoryTag =  '';
                    } elseif (!empty($this->config->tag)) {
                        $repositoryBranch =  '';
                        $repositoryTag =  $this->config->tag;
                    } else {
                        $repositoryBranch =  '';
                        $repositoryTag =  '';
                    }
                    break;

                case 'cvs' :
                    $projectName = basename($repositoryURL);
                    break;

                case 'copy' :
                    $projectName = basename($repositoryURL);
                    break;

                case 'mercurial' :
                    $projectName = basename($repositoryURL);
                    break;

                case 'bazaar' :
                    list(, $projectName) = explode(':', $repositoryURL);
                    break;

                case 'zip' :
                    $projectName = basename($repositoryURL);
                    $projectName = str_replace('.zip', '', $projectName);
                    break;

                case 'rar' :
                    $projectName = basename($repositoryURL);
                    $projectName = str_replace('.rar', '', $projectName);
                    break;

                case 'targz' :
                    $projectName = basename($repositoryURL);
                    $projectName = str_replace(array('.tgz', '.tar.gz'), '', $projectName);
                    break;

                case 'tarbz' :
                    $projectName = basename($repositoryURL);
                    $projectName = str_replace(array('.tbz', '.tar.bz'), '', $projectName);
                    break;

                case 'composer' :
                    $projectName = str_replace('/', '_', $repositoryURL);

                    // Updating config.ini to include the vendor directory
                    $include_dirs[] = "/vendor/$repositoryURL";
                    break;

                default :
                    $projectName = basename($repositoryURL);
                    $projectName = str_replace('/\.git/', '', $projectName);
                    break;
            }
        }

        // default initial config. Found in test project.
        $phpversion = $this->config->phpversion;
        if ($this->config->composer === true) {
            $ignore_dirs = $this->config->ignore_dirs;
        } else {
            $ignore_dirs = array_merge($this->config->ignore_dirs, array('/vendor'));
        }

        $projectConfig = new ProjectConfig($this->config->projects_root);
        $projectConfig->setProject($project);
        $projectConfig->setConfig('phpversion',     $phpversion);
        $projectConfig->setConfig('project_name',   $projectName);
        $projectConfig->setConfig('project_url',    $repositoryURL);
        $projectConfig->setConfig('project_vcs',    $vcs->getName());
        $projectConfig->setConfig('project_tag',    $repositoryTag);
        $projectConfig->setConfig('project_branch', $repositoryBranch);

        $projectConfig->setConfig('ignore_dirs',    $ignore_dirs);
        $projectConfig->setConfig('include_dirs',   $include_dirs);

        shell_exec("chmod -R g+w $tmpPath");

        if (!empty($this->config->branch)){
            $vcs->setBranch($this->config->branch);
        }

        if (!empty($this->config->tag)){
            $vcs->setTag($this->config->tag);
        }

        try {
            $vcs->clone((string) $repositoryURL);
        } catch (VcsError $e) {
            rename($tmpPath, $finalPath);

            $this->datastore = exakat('datastore');
            $this->datastore->create();

            $errorMessage = $e->getMessage();
            $this->datastore->addRow('hash', array('init error' => $errorMessage,
                                                   'inited'     => date('r')));
            display("An error prevented code initialization : '$errorMessage'\n.No code was loaded.");

            file_put_contents("{$this->config->project_dir}/config.ini", $projectConfig->getConfig($this->config->dir_root));

            return;
        }

        rename($tmpPath, $finalPath);
        file_put_contents("{$this->config->project_dir}/config.ini", $projectConfig->getConfig($this->config->dir_root));
        $this->datastore = exakat('datastore');
        $this->datastore->create();

        $this->datastore->addRow('hash', array('status' => 'Cloned',
                                              ));

        $this->datastore->addRow('hash', array('status' => 'Initproject',
                                               'inited' => date('r')));
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks;

use Exakat\Configsource\ProjectConfig;
use Exakat\Configsource\DotExakatYamlConfig;
use Exakat\Exceptions\NoSuchProject;
use Exakat\Config as Configuration;

class Config extends Tasks {
    const CONCURENCE = self::ANYTIME;

    public function run() {
        $project = $this->config->project;

        // May be in-code!!
        if ($this->config->inside_code === Configuration::INSIDE_CODE) {
            $projectConfig = new DotExakatYamlConfig();
            $projectConfig->loadConfig($project);
        } elseif ($this->config->project === null) {
            $projectConfig = new ProjectConfig($this->config->projects_root);
        } else {
            if (!file_exists("{$this->config->projects_root}/projects/$project")) {
                throw new NoSuchProject($this->config->project);
            }

            $projectConfig = new ProjectConfig($this->config->projects_root);
            $projectConfig->loadConfig($project);
        }

        print $projectConfig->getConfig($this->config->dir_root);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks;

use Exakat\Exceptions\NoJobqueueStarted;

class Queue extends Tasks {
    const CONCURENCE = self::ANYTIME;

    private $pipefile = Jobqueue::PATH;

    public function run() {
        if (!file_exists($this->pipefile)) {
            throw new NoJobqueueStarted();
        }

        if ($this->config->stop === true) {
            display('Stopping queue');
            $queuePipe = fopen($this->pipefile, 'w');
            fwrite($queuePipe, "quit\n");
            fclose($queuePipe);

            return;
        }

        if ($this->config->ping === true) {
            display('Ping queue');
            $queuePipe = fopen($this->pipefile, 'w');
            fwrite($queuePipe, "ping\n");
            fclose($queuePipe);

            return;
        }

        $queue = $this->config->commandlineJson();
        $queuePipe = fopen($this->pipefile, 'w');
        fwrite($queuePipe, "$queue\n");
        fclose($queuePipe);
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks;

use Exakat\Config;
use Exakat\Exakat;

class Upgrade extends Tasks {
    const CONCURENCE = self::ANYTIME;

    public function run() {
        // Avoid downloading when it is not a phar
        if ($this->config->is_phar === Config::IS_NOT_PHAR) {
            print 'This can only update a .phar version of exakat. Aborting.' . PHP_EOL;
            return;
        }

        $options = array(
            'http'=>array(
                'method' => 'GET',
                'header' => 'User-Agent: exakat-' . Exakat::VERSION
            )
        );

        $context = stream_context_create($options);
        $html = file_get_contents('https://www.exakat.io/versions/index.php', true, $context);

        if (empty($html)) {
            print 'Unable to reach server to fetch the last version. Try again later.' . PHP_EOL;
            return;
        }

        if (empty($this->config->version)) {
            if (preg_match('/Download exakat version (\d+\.\d+\.\d+) \(Latest\)/s', $html, $r) == 0) {
                print 'Unable to find the requested version. Make sure the version number is valid. ' . PHP_EOL;
                return;
            }

            $version = $r[1];
        } else {
            $version = $this->config->version;
            if (preg_match('/^\d+\.\d+\.\d+$/s', $version, $r) == 0) {
                print 'Version number could not be recognized. Remove the option -version, or provide a valid version number, like "1.8.7".' . PHP_EOL;
                return;
            }

            if (preg_match('/>exakat-' . $version . '.phar<\/a>/s', $html) !== 1) {
                print 'Unable to find last version. Try again later.' . PHP_EOL;
                return;
            }
        }

        if (version_compare(Exakat::VERSION, $version) !== 0) {
            echo 'This version may be updated from the current version ' , Exakat::VERSION , ' to ' , $version  , PHP_EOL;

            if ($this->config->update === true) {

                echo '  Updating to version ' , $version , PHP_EOL;
                preg_match('#<pre id="sha256"><a href="index.php\?file=exakat-' . $version . '.phar.sha256">(.*?)</pre>#', $html, $r);
                $sha256 = strip_tags($r[1]);

                // Read what we can
                $phar = (string) @file_get_contents('https://www.exakat.io/versions/index.php?file=exakat-' . $version . '.phar');

                if (hash('sha256', $phar) !== $sha256) {
                    print 'Error while checking exakat.phar\'s checksum. Aborting update. Please, try again' . PHP_EOL;
                    return;
                }

                $path = sys_get_temp_dir() . '/exakat.1.phar';
                file_put_contents($path, $phar);
                print 'Setting up exakat.phar' . PHP_EOL;
                rename($path, 'exakat.phar');

                return;
            } else {
                print '  You may run this command with -u option to upgrade to the latest exakat version.' . PHP_EOL;
                return;
            }
        } elseif (version_compare(Exakat::VERSION, $r[1]) === 0) {
            print 'This is the latest version (' . Exakat::VERSION . ')' . PHP_EOL;
            return;
        } else {
            print 'This version is ahead of the latest publication (Current : ' . Exakat::VERSION . ', Latest: ' . $r[1] . ')' . PHP_EOL;
            return;
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks;

use Exakat\Analyzer\Rulesets;
use Exakat\Datastore;
use Exakat\Exakat;
use Exakat\Exceptions\MissingGremlin;
use Exakat\Exceptions\InvalidProjectName;
use Exakat\Exceptions\NoCodeInProject;
use Exakat\Exceptions\NoFileToProcess;
use Exakat\Exceptions\NoSuchProject;
use Exakat\Exceptions\NoSuchReport;
use Exakat\Exceptions\ProjectNeeded;
use Exakat\Tasks\Helpers\BaselineStash;
use Exakat\Tasks\Helpers\ReportConfig;
use Exception;

use Exakat\Vcs\Vcs;

class Project extends Tasks {
    const CONCURENCE = self::NONE;

    protected $rulesetsToRun = array('Analyze',
                                     'Preferences',
                                    );

    protected $reports       = array();
    protected $reportConfigs = array();

    public function __construct(bool $subTask = self::IS_NOT_SUBTASK) {
        parent::__construct($subTask);

        if (empty($this->reports)) {
            $this->reports = makeArray($this->config->project_reports);
        }
    }

    public function run(): void {
        if ($this->config->project->isDefault()) {
            throw new ProjectNeeded();
        }

        if (!$this->config->project->validate()) {
            throw new InvalidProjectName($this->config->project->getError());
        }

        if ($this->config->gremlin === 'NoGremlin') {
            throw new MissingGremlin();
        }

        if (!file_exists($this->config->project_dir)) {
            throw new NoSuchProject((string) $this->config->project);
        }

        if (!file_exists($this->config->code_dir)) {
            throw new NoCodeInProject((string) $this->config->project);
        }

        // Baseline is always the previous audit done, not the current one!
        $baselinestash = new BaselineStash($this->config);
        $baselinestash->copyPrevious($this->config->dump);

        display("Cleaning project\n");
        $clean = new Clean(self::IS_SUBTASK);
        $clean->run();
        $this->datastore = exakat('datastore');
        // Reset datastore for the others

        $this->logTime('Start');
        $this->addSnitch(array('step'    => 'Start',
                               'project' => $this->config->project));

        $audit_start = time();
        $this->datastore->addRow('hash', array('audit_start'     => $audit_start,
                                               'exakat_version'  => Exakat::VERSION,
                                               'exakat_build'    => Exakat::BUILD,
                                               'php_version'     => $this->config->phpversion,
                                               'audit_name'      => $this->generateName(),
                                         ));

        $info = array();
        if (($vcsClass = Vcs::getVcs($this->config)) === 'None') {
            $info['vcs_type'] = 'Standalone archive';
        } else {
            $info['vcs_type'] = strtolower($vcsClass);
            $info['vcs_url']  = $this->config->project_url;

            $vcs = new $vcsClass($this->config->project, $this->config->code_dir);
            if (method_exists($vcs, 'getBranch')) {
                $info['vcs_branch']      = $vcs->getBranch();
            }
            if (method_exists($vcs, 'getRevision')) {
                $info['vcs_revision']      = $vcs->getRevision();
                $this->getLineDiff($info['vcs_revision'], $vcs);
            }
        }

        $info['stubs_config'] = json_encode($this->config->stubs);
        $this->datastore->addRow('hash', $info);

        $rulesetsToRun = array($this->config->project_rulesets);
        $reportToRun   = array();
        $namesToRun    = array();

        foreach($this->reports as $format) {
            try {
                $report = new ReportConfig($format, $this->config);
            } catch (NoSuchReport $e) {
                // Simple ignore
                display($e->getMessage());
                continue;
            }
            $this->reportConfigs[$report->getName()] = $report;

            $rulesets = $report->getRulesets();
            if (empty($rulesets)) {
                $rulesets = $report->getRulesets();
            }
            $rulesetsToRun[] = $rulesets;
            $namesToRun[] = $report->getName();

            unset($report);
            gc_collect_cycles();
        }

        $rulesetsToRun = array_merge(...$rulesetsToRun);
        $rulesetsToRun = array_filter($rulesetsToRun);
        $rulesetsToRun = array_unique($rulesetsToRun);

        $availableRulesets = $this->rulesets->listAllRulesets();
        $availableRulesets = array_map('strtolower', $availableRulesets);

        $diff = array();
        $rulesetsToRunShort = array();
        foreach($rulesetsToRun as $rule) {
            if (in_array(strtolower($rule), $availableRulesets, \STRICT_COMPARISON)) {
                $rulesetsToRunShort[] = $rule;
            } else {
                $diff[] = $rule;
            }
        }

        if (!empty($diff)) {
            display('Ignoring the following unknown rulesets : ' . implode(', ', $diff) . PHP_EOL);
        }

        $rulesetsToRun = array_unique($rulesetsToRunShort);
        if (empty($rulesetsToRun)) {
            // Default values
            $rulesetsToRun = $this->rulesetsToRun;
        }

        display("Running project '" . (string) $this->config->project . "'" . PHP_EOL);
        display('Running the following analysis : ' . implode(', ', $rulesetsToRun));
        display('Producing the following reports : ' . implode(', ', $namesToRun));

        display('Running files' . PHP_EOL);
        $analyze = new Files(self::IS_SUBTASK);
        $analyze->run();
        unset($analyze);
        $this->logTime('Files');
        $this->addSnitch(array('step'    => 'Files',
                               'project' => $this->config->project));

        $nb_files = (int) $this->datastore->getHash('files');
        if ($nb_files === 0) {
            throw new NoCodeInProject($this->config->project);
        }

        display('Cleaning DB' . PHP_EOL);
        $analyze = new CleanDb(self::IS_SUBTASK);
        $analyze->run();
        unset($analyze);
        $this->logTime('CleanDb');
        $this->addSnitch(array('step'    => 'Clean DB',
                               'project' => $this->config->project));
        $this->gremlin->init();

        $this->checkTokenLimit();

        $load = new Load(self::IS_SUBTASK);
        try {
            $load->run();
        } catch (NoFileToProcess $e) {
            $this->datastore->addRow('hash', array('init error' => $e->getMessage(),
                                                   'status'     => 'Error',
                                           ));
        }
        unset($load);
        display("Project loaded\n");
        $this->logTime('Loading');

        // Always run this one first
        $this->analyzeRulesets(array('First'), $audit_start, $this->config->verbose);

        // Dump is a child process
        // initialization and first collection (action done once)
        display('Initial dump');
        $dumpConfig = $this->config->duplicate(array('collect'            => true,
                                                     'load_dump'          => true,
                                                     'project_rulesets'   => array('First')));
        $firstDump = new Dump(self::IS_SUBTASK);
        $firstDump->setConfig($dumpConfig);
        $firstDump->run();
        unset($firstDump);
        $this->logTime('Initial dump');

        if (empty($this->config->program)) {
            $this->analyzeRulesets($rulesetsToRun, $audit_start, $this->config->verbose);
        } else {
            $this->analyzeOne($this->config->program, $audit_start, $this->config->verbose);
        }

        display('Analyzed project' . PHP_EOL);
        $this->logTime('Analyze');
        $this->addSnitch(array('step'    => 'Analyzed',
                               'project' => $this->config->project));

        $this->logTime('Analyze');

        $dump = new Dump(self::IS_SUBTASK);
        foreach($this->config->rulesets as $name => $analyzers) {
            $dump->checkRulesets($name, $analyzers);
        }

        $this->logTime('Reports');
        try {
            $report = new Report(self::IS_SUBTASK);

            $report->run();
        } catch (\Throwable $e) {
            display( 'Error while building the reports : ' . $e->getMessage() . "\n");
        }
        display('Reported project' . PHP_EOL);

        // Reset cache from Rulesets
        Rulesets::resetCache();
        $this->logTime('Final');
        $this->removeSnitch();
        display('End' . PHP_EOL);
    }

    private function logTime(string $step): void {
        static $log, $begin, $end, $start;

        if ($log === null) {
            $log = fopen("{$this->config->log_dir}/project.timing.csv", 'w+');
        }

        $end = microtime(true);
        if ($begin === null) {
            $begin = $end;
            $start = $end;
        }

        fwrite($log, $step . "\t" . ($end - $begin) . "\t" . ($end - $start) . PHP_EOL);
        $begin = $end;
    }

    private function analyzeOne(string $analyzers, int $audit_start, bool $verbose): void {
        $this->addSnitch(array('step'    => 'Analyzer',
                               'project' => $this->config->project));

        try {
            $analyzeConfig = $this->config->duplicate(array('noRefresh' => true,
                                                            'update'    => true,
                                                            'program'   => $analyzers,
                                                            'verbose'   => $verbose,
                                                            'quiet'     => !$verbose,
                                                            ));

            $analyze = new Analyze(self::IS_SUBTASK);
            $analyze->run();
            unset($analyze);
            unset($analyzeConfig);
            $this->logTime('Analyze : ' . makeList($analyzers, ''));

            $dumpConfig = $this->config->duplicate(array('update'    => true,
                                                         'load_dump' => true,
                                                         'program'   => $analyzers,
                                                         ));

            $audit_end = time();
            $query = 'g.V().count()';
            $res = $this->gremlin->query($query);
            if ($res instanceof \stdClass) {
                $nodes = $res->results[0];
            } else {
                $nodes = $res[0];
            }
            $query = 'g.E().count()';
            $res = $this->gremlin->query($query);
            if ($res instanceof \stdClass) {
                $links = $res->results[0];
            } else {
                $links = $res[0];
            }

            $this->datastore->addRow('hash', array('audit_end'    => $audit_end,
                                                   'audit_length' => $audit_end - $audit_start,
                                                   'graphNodes'   => $nodes,
                                                   'graphLinks'   => $links));

            $dump = new Dump(self::IS_SUBTASK);
            $dump->run();
            unset($dump);
            unset($dumpConfig);
        } catch (\Exception $e) {
            echo "Error while running the Analyzer {$this->config->project}.\nTrying next analysis.\n";
            file_put_contents("{$this->config->log_dir}/analyze.final.log", $e->getMessage());
        }
    }

    private function analyzeRulesets($rulesets, int $audit_start,bool $verbose): void {
        if (empty($rulesets)) {
            $rulesets = $this->config->project_rulesets;
        }

        if (!is_array($rulesets)) {
            $rulesets = array($rulesets);
        }

        display('Running the following rulesets : ' . implode(', ', $rulesets) . PHP_EOL);

        global $VERBOSE;
        $oldVerbose = $VERBOSE;
        $VERBOSE = false;
        foreach($rulesets as $ruleset) {
            $this->addSnitch(array('step'    => 'Analyze : ' . $ruleset,
                                   'project' => $this->config->project));
            $rulesetForFile = strtolower(str_replace(' ', '_', trim($ruleset, '"')));

            try {
                $analyzeConfig = $this->config->duplicate(array('noRefresh'        => true,
                                                                'update'           => true,
                                                                'project_rulesets' => array($ruleset),
                                                                'verbose'          => $verbose,
                                                                'quiet'            => !$verbose,
                                                                ));

                $analyze = new Analyze(self::IS_SUBTASK);
                $analyze->setConfig($analyzeConfig);
                $analyze->run();
                unset($analyze);
                unset($analyzeConfig);
                $this->logTime("Analyze : $ruleset");

                $audit_end = time();
                $query = 'g.V().count()';
                $res = $this->gremlin->query($query);
                if (isset($res->results)) {
                    $nodes = $res->results[0];
                } else {
                    $nodes = $res[0];
                }
                $query = 'g.E().count()';
                $res = $this->gremlin->query($query);
                if (isset($res->results)) {
                    $links = $res->results[0];
                } else {
                    $links = $res[0];
                }

                $finalMark = array('audit_end'    => $audit_end,
                                   'audit_length' => $audit_end - $audit_start,
                                   'graphNodes'   => $nodes,
                                   'graphLinks'   => $links);
                $this->datastore->addRow('hash', $finalMark);

                // Skip Dump, as it is auto-saving itself.
                $dumpConfig = $this->config->duplicate(array('update'               => true,
                                                             'project_rulesets'     => array($ruleset),
                                                             'load_dump'            => true,
                                                             'verbose'              => false,
                                                             ));
/*
                $shell = "nohup php exakat dump -p {$this->config->project} -T $ruleset -load-dump -u >/dev/null & echo $!";
                $pid = shell_exec($shell);
                print "New PID : $pid\n";
                print "Slept for PID : $pid\n";
*/
                $dump = new Dump(self::IS_SUBTASK);
                $dump->setConfig($dumpConfig);
                $dump->run();
                $dump->finalMark($finalMark);
                unset($dump);
                unset($dumpConfig);

                gc_collect_cycles();
                $this->logTime("Dumped : $ruleset");
            } catch (Exception $e) {
                display("Error while running the ruleset $ruleset.\nTrying next ruleset.\n");
                file_put_contents("{$this->config->log_dir}/analyze.$rulesetForFile.final.log", $e->getMessage(), FILE_APPEND);
            }
        }
        $VERBOSE = $oldVerbose;
    }

    private function generateName(): string {
        $ini = parse_ini_file("{$this->config->dir_root}/data/audit_names.ini");

        $names = $ini['names'];
        $adjectives = $ini['adjectives'];

        shuffle($names);
        shuffle($adjectives);

        try {
            $x = random_int(0, PHP_INT_MAX);
        } catch (\Throwable $t) {
            $x = (int) microtime(true) * 1000000;
        }
        $name = $names[ $x % (count($names) - 1)];

        try {
            $x = random_int(0, PHP_INT_MAX);
        } catch (\Throwable $t) {
            $x = (int) microtime(true) * 1000000;
        }
        $adjective = $adjectives[ $x % (count($adjectives) - 1)];

        return ucfirst($adjective) . ' ' . $name;
    }

    private function getLineDiff(string $current, VCS $vcs): void {
        if ($this->config->dump_previous === null) {
            return ;
        }

        if (!file_exists($this->config->dump_previous)) {
            return ;
        }

        $sqlite = new \Sqlite3($this->config->dump_previous);
        $res = $sqlite->query('SELECT name FROM sqlite_master WHERE type="table" AND name="hash"');
        if ($res === false || !$res->numColumns() || $res->columnType(0) == SQLITE3_NULL) {
            return;
        }

        $res = $sqlite->query('SELECT value FROM hash WHERE key="vcs_revision"');
        if (!$res->numColumns() || $res->columnType(0) == SQLITE3_NULL) {
            return;
        }
        $revision = $res->fetchArray(\SQLITE3_ASSOC)['value'];

        $diff = $vcs->getDiffLines($revision, $current);
        if (!empty($diff)) {
            $this->datastore->addRow('linediff', $diff);
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks;

use Exakat\Config;
use Exakat\Exceptions\NoSuchFile;
use Exakat\Exceptions\NoSuchDir;
use Exakat\Exceptions\NoSuchAnalyzer;

class Test extends Tasks {
    const CONCURENCE = self::NONE;

    public function run() {
        // Check for requested file
        if (!empty($this->config->filename) && !file_exists($this->config->filename)) {
            throw new NoSuchFile($this->config->filename);
        } elseif (!empty($this->config->dirname) && !file_exists($this->config->dirname)) {
            throw new NoSuchDir($this->config->filename);
        }

        // Check for requested analyze
        $analyzerName = $this->config->program;
        if (!$this->rulesets->getClass($analyzerName)) {
            throw new NoSuchAnalyzer($analyzerName, $this->rulesets);
        }

        display("Cleaning DB\n");
        $args = array ( 1 => 'cleandb',
                        2 => '-p',
                        3 => 'test',
                        4 => '-stop',
                        );
        $configThema = new Config($args);

        $analyze = new CleanDb(self::IS_SUBTASK);
        $analyze->run();

        display("Cleaning project\n");
        $clean = new Clean(self::IS_SUBTASK);
        $clean->run();

        $load = new Load(self::IS_SUBTASK);
        $load->run();
        unset($load);
        display("Project loaded\n");

        $analyze = new Analyze(self::IS_SUBTASK);
        $analyze->run();
        unset($analyze);

        display("Dumping results\n");
        $args = array ( 1 => 'dump',
                        2 => '-p',
                        3 => 'test',
                        4 => '-load-dump',
                        5 => '-u',
                        );
        $configThema = new Config($args);

        $analyze = new Dump(self::IS_SUBTASK);
        $analyze->setConfig($configThema);
        $analyze->run();

        $results = new Results(self::IS_SUBTASK);
        $results->run();
        unset($results);

        display("Analyzed project\n");
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks;

class Help extends Tasks {
    const CONCURENCE = self::ANYTIME;

    public function run() {
        print <<<HELP
[Usage] :   php {$this->config->executable} version (default)
            php {$this->config->executable} doctor
            php {$this->config->executable} init -p <Project name> -R <Repository>
            php {$this->config->executable} project -p <Project name>

Check all commands : http://exakat.readthedocs.io/en/latest/Commands.html

HELP;

    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks;

use Exakat\Exceptions\NoSuchProject;
use Exakat\Reports\Reports;
use Exakat\Vcs\Vcs;
use Exakat\Exakat;

class Status extends Tasks {
    const CONCURENCE = self::ANYTIME;

    public function run() {
        $project = $this->config->project;

        if ($project->isDefault()) {
            $status = array();

            if (file_exists("{$this->config->tmp_dir}/Project.json")) {
                if (file_exists("{$this->config->tmp_dir}/Project.json")) {
                    $json = file_get_contents("{$this->config->tmp_dir}/Project.json");
                    if (empty($json)) {
                        $projectStatus = '';
                        $projectStep = '';
                    } else {
                        $json = json_decode($json);
                        $projectStatus = $json->project;
                        $projectStep = $json->step;
                    }
                } else {
                    $projectStatus = '';
                    $projectStep = '';
                }

                $status = array('Running'  => 'Project',
                                'project'  => $projectStatus,
                                'step'     => $projectStep, );
            } else {
                $status['Running'] = 'idle';
            }

            $this->display($status, $this->config->json);
            return;
        }

        if (!file_exists($this->config->project_dir)) {
            throw new NoSuchProject($project);
        }

        if ($this->datastore->getHash('exakat_version') === null) {
            $this->datastore->create();
            $this->datastore->addRow('hash', array('exakat_version'  => Exakat::VERSION,
                                                   'exakat_build'    => Exakat::BUILD,
                                                   'php_version'     => $this->config->phpversion,
                                                   'file_extensions' => json_encode($this->config->file_extensions),
                                                   'ignore_dirs'     => json_encode($this->config->ignore_dirs),
                                                   'include_dirs'    => json_encode($this->config->include_dirs),
                                                   'vcs_url'         => $this->config->project_url,
                                                   'project'         => (string) $this->config->project,
                                                ));
        }

        $status = array('project'          => (string) $project,
                        'files'            => $this->datastore->getHash('files')         ?? '',
                        'filesIgnored'     => $this->datastore->getHash('filesIgnored')  ?? '',
                        'loc'              => $this->datastore->getHash('loc')           ?? '',
                        'loc_all'          => $this->datastore->getHash('locTotal')      ?? '',
                        'tokens'           => $this->datastore->getHash('tokens')        ?? '',
                        'vcs'              => $this->datastore->getHash('vcs_type')      ?? '',
                        'url'              => $this->datastore->getHash('vcs_url')       ?? '',
                        'branch'           => $this->datastore->getHash('vcs_branch')    ?? '',
                        'revision'         => $this->datastore->getHash('vcs_revision')  ?? '',
                        'php'              => $this->datastore->getHash('php_version')   ?? '',
                        'include_dirs'     => join(', ', json_decode($this->datastore->getHash('include_dirs') ?? '[]')),
                        'ignore_dirs'      => join(', ', json_decode($this->datastore->getHash('ignore_dirs')  ?? '[]')),
                        'file_extensions'  => join(', ', json_decode($this->datastore->getHash('file_extensions')  ?? '[]')),
                        );
        if (file_exists("{$this->config->tmp_dir}/Project.json")) {
            $text = file_get_contents("{$this->config->tmp_dir}/Project.json");
            if (empty($text)) {
                 $inited = $this->datastore->getHash('inited');
                 $status['status'] = empty($inited) ? 'Init phase' : 'Not running';
            } else {
             $json = json_decode($text);
             if ($json->project === $project) {
                 $status['status'] = $json->step;
             } else {
                 $inited = $this->datastore->getHash('inited');
                 $status['status'] = empty($inited) ? 'Init phase' : 'Not running';
             }
            }
        } else {
            $inited = $this->datastore->getHash('inited');
            $status['status'] = empty($inited) ? 'Init phase' : 'Not running';
        }

        if (($vcsClass = Vcs::getVcs($this->config)) === 'None') {
            $status['hash']      = 'None';
            $status['updatable'] = 'N/A';
        } else {
            $vcs = new $vcsClass($this->config->project, $this->config->code_dir);
            $status = array_merge($status, $vcs->getStatus());
        }

        $status['updatable'] = $status['updatable'] === true ? 'Yes' : 'No';

        // Check the logs
        $errors = $this->getErrors($this->config->project_dir);
        if (!empty($errors)) {
            $status['errors'] = $errors;
        }

        // Status of progress
        // errors?

        $formats = array();
        foreach(Reports::$FORMATS as $format) {
            $a = $this->datastore->getHash($format);
            if (!empty($a)) {
                $formats[$format] = $a;
            }
        }
        // Always have formats, even if empty
        $status['formats'] = $formats;

        $this->display($status, $this->config->json);
    }

    private function display(array $status, bool $json = false) {
        // Json publication
        if ($json === true) {
            print json_encode($status);
            return;
        }

        // commandline publication
        $text = '';
        $size = 0;
        foreach($status as $k => $v) {
            $size = max($size, strlen($k));
        }

        foreach($status as $field => $value) {
            if (is_array($value)) {
                $sub = str_pad($field, $size, ' ') . ' : ' . PHP_EOL;

                $sizea = 0;
                foreach($value as $k => $v) {
                    $sizea = max($sizea, strlen($k));
                }
                foreach($value as $k => $v) {
                    $sub .= '    ' . str_pad($k, $sizea, ' ') . " : $v" . PHP_EOL;
                }
                $text .= PHP_EOL . $sub . PHP_EOL;
            } else {
                $text .= str_pad($field, $size, ' ') . ' : ' . $value . PHP_EOL;
            }
        }

        print $text;
    }

    private function getErrors(string $path): array {
        $errors = array();

        // Init error
        $e = $this->datastore->getHash('init error');
        if (!empty($e)) {
            $errors['init error'] = $e;
            return $errors;
        }

        // Size error
        $e = $this->datastore->getHash('token error');
        if (!empty($e)) {
            $errors['init error'] = $e;
            return $errors;
        }

        return $errors;
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks;

use Exakat\Exceptions\ProjectNeeded;
use Exakat\Exceptions\NoSuchProject;

class Clean extends Tasks {
    const CONCURENCE = self::ANYTIME;

    protected $logname = self::LOG_NONE;

    private $filesToErase = array('Flat-html.html',
                                  'Flat-markdown.md',
                                  'Flat-sqlite.sqlite',
                                  'Flat-text.txt',
                                  'Premier-ace.zip',
                                  'Premier-html.html',
                                  'Premier-markdown.md',
                                  'Premier-sqlite.sqlite',
                                  'Premier-text.txt',
                                  'datastore.sqlite',
                                  'magicnumber.sqlite',
                                  'report.html',
                                  'report.md',
                                  'report.odt',
                                  'report.pdf',
                                  'report.json',
                                  'report.xml',
                                  'report.sqlite',
                                  'report.txt',
                                  'report.zip',
                                  'EchoWithConcat.json',
                                  'PhpFunctions.json',
                                  'bigArrays.txt',
                                  'counts.sqlite',
                                  'stats.txt',
                                  'dump.sqlite',
                                  'faceted.zip',
                                  'faceted2.zip',
                                 );

    public function run() {
        if ($this->config->project === 'default') {
            throw new ProjectNeeded();
        }

        if (!file_exists(dirname($this->config->code_dir))) {
            throw new NoSuchProject($this->config->project);
        }

        display( "Cleaning project {$this->config->project}\n");

        $dirsToErase = array('report',
                             'diplomat',
                             );
        foreach($dirsToErase as $dir) {
            $dirPath = "{$this->config->project_dir}/$dir";
            if (file_exists($dirPath)) {
                display("removing $dir");
                rmdirRecursive($dirPath);
            }
        }

        // rebuild tmp
        rmdirRecursive($this->config->tmp_dir);
        mkdir($this->config->tmp_dir, 0755);

        // rebuild log
        rmdirRecursive($this->config->log_dir);
        if (!file_exists($this->config->log_dir)) {
            mkdir($this->config->log_dir, 0755);
        }

        $total = 0;
        foreach($this->filesToErase as $file) {
            $filePath = "{$this->config->project_dir}/$file";
            if (file_exists($filePath)) {
                display("removing $file");
                unlink($filePath);
                ++$total;
            }
        }
        display("Removed $total files\n");

        $this->datastore->create();
        display("Recreating database\n");
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks;

class EmptyTask extends Tasks {
    const CONCURENCE = self::ANYTIME;

    public function run() {

    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks;

use Exakat\Exceptions\NoSuchProject;
use Exakat\Exceptions\NoDump;
use Exakat\Exceptions\ProjectNeeded;

class Fetch extends Tasks {
    const CONCURENCE = self::ANYTIME;

    public function run() {
        $project = $this->config->project;
        if ($project === 'default') {
            throw new ProjectNeeded();
        }

        $json = @file_get_contents("{$this->config->tmp_dir}/Project.json");
        $json = json_decode($json);
        if (isset($json->project) && $project === $json->project) {
            // Too early
            throw new NoDump($project);
        }

        if (!file_exists($this->config->project_dir)) {
            throw new NoSuchProject($project);
        }

        if (!file_exists($this->config->dump)) {
            throw new NoDump($project);
        }

        // transmits the dump sqlite database
        readfile($this->config->dump);
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks;

use Exakat\Config;

class Proxy extends Tasks {
    const CONCURENCE = self::ANYTIME;
    const PORT =  7448;

    public function run() {
        if ($this->config->stop    === true ||
            $this->config->restart === true
            ) {
            $display = @file_get_contents('http://localhost:' . self::PORT . '?json=["stop"]');
            if (empty($display)) {
                $display = 'No proxy found';
            }
            display('Shut proxy server (' . $display . ')');

            if ($this->config->stop === true) {
                return;
            }
        }

        if (file_exists($this->config->dir_root . '/projects/proxy.php')) {
            display('A server is already installed. Aborting.');
            return;
        }

        $slaves = $this->config->remotes;
        unset($slaves['proxy']); // remove self
        unset($slaves['ici']);   // remove queue, but why ?

        display('Copy router server');
        $php = file_get_contents($this->config->dir_root . '/server/proxy.php');
        $php = str_replace('__PHP__', $this->config->php, $php);
        $php = str_replace('__EXAKAT__', $this->config->executable, $php);
        $php = str_replace('__SLAVES__', var_export($slaves, true), $php);
        file_put_contents($this->config->projects_root . '/projects/proxy.php', $php);

        if (!file_exists($this->config->projects_root . '/projects/server.log')) {
            file_put_contents($this->config->projects_root . '/projects/server.log', date('r') . "\tCreated file\n");
        }

        display('Start server');
//        exec($this->config->php.' -S 0.0.0.0:'.self::PORT.' -t '.$this->config->projects_root.'/projects/ '.$this->config->projects_root.'/projects/proxy.php > /dev/null 2 > /dev/null &');
        exec($this->config->php . ' -S 0.0.0.0:' . self::PORT . ' -t ' . $this->config->projects_root . '/projects/ ' . $this->config->projects_root . '/projects/proxy.php > /dev/null 2>&1 > /dev/null & ');
        display('Started server');
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks;

use Exakat\Exceptions\InvalidProjectName;
use Exakat\Exceptions\NoSuchProject;
use Exakat\Exceptions\ProjectNeeded;

class Remove extends Tasks {
    const CONCURENCE = self::NONE;

    public function run() {
        $project = $this->config->project;

        if (!$project->validate()) {
            throw new InvalidProjectName($project->getError());
        }

        if ($this->config->project === 'default') {
            throw new ProjectNeeded();
        }

        if (!file_exists($this->config->projects_root . '/projects/' . $this->config->project)) {
            throw new NoSuchProject($this->config->project);
        }

        rmdirRecursive($this->config->projects_root . '/projects/' . $this->config->project);
        display('Project ' . $this->config->project . ' removed.');
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks;

use Exakat\Config as ConfigExakat;
use Exakat\Datastore;

class Jobqueue extends Tasks {
    const CONCURENCE = self::QUEUE;
    const PATH = '/tmp/queue.exakat';

    const COMMANDS = array('quit', 'config', 'ping', 'project', 'onepage', 'report', 'init');

    private $pipefile = self::PATH;
    private $jobQueueLog = null;

    public function __destruct() {
        $this->log->log('Closed jobQueue');

        unlink($this->pipefile);
        fclose($this->jobQueueLog);

        parent::__destruct();
    }

    public function run() {
        if (!file_exists("{$this->config->projects_root}/projects/log/")) {
            mkdir("{$this->config->projects_root}/projects/log/", 0700);
        }
        $this->jobQueueLog = fopen("{$this->config->projects_root}/projects/log/jobqueue.log", 'a');
        $this->log('Open Job Queue ' . date('r') . "\n");

        $this->log->log('Started jobQueue : ' . time() . "\n");

        $queue = array();

        if (!file_exists($this->config->projects_root . '/projects/onepage')) {
            mkdir($this->config->projects_root . '/projects/onepage/', 0755);
            mkdir($this->config->projects_root . '/projects/onepage/code', 0755);
            mkdir($this->config->projects_root . '/projects/onepage/log', 0755);
        }
        if (!file_exists($this->config->projects_root . '/projects/onepage/reports')) {
            mkdir($this->config->projects_root . '/projects/onepage/reports', 0755);
        }

        //////// setup our named pipe ////////
        // @todo put this in config
        print "Opening $this->pipefile\n";
        if(file_exists($this->pipefile)) {
            if(!unlink($this->pipefile)) {
                die('unable to remove existing PipeFile "' . $this->pipefile . '". Aborting.' . "\n");
            }
        }

        umask(0);
        if(!posix_mkfifo($this->pipefile,0666)) {
            die('unable to create named pipe');
        }

        $pipe = fopen($this->pipefile,'r+');
        if(!$pipe) {
            die('unable to open the named pipe');
        }
        stream_set_blocking($pipe, false);

        //////// process the queue ////////
        while(1) {
            while($input = trim((string) fgets($pipe))) {
                stream_set_blocking($pipe, false);
                $queue[] = $input;
            }

            $job = current($queue);
            $jobkey = key($queue);

            if(empty($job)) {
                display( "no jobs to do - waiting...\n");
                stream_set_blocking($pipe, true);
            } else {
                $command = json_decode(trim($job));

                if ($command === null) {
                    $this->log('Unknown command : ' . $job . "\t" . time() . "\n");
                    next($queue);
                    unset($job, $queue[$jobkey]);
                    continue;
                }

                $command = array_merge(array('exakat'), $command);
                switch($command[1]) {
                    case 'init' :
                        $this->processInit($command);
                        break;

                    case 'project' :
                        $this->processProject($command);
                        break;

                    case 'report' :
                        $this->processReport($command);
                        break;

                    case 'remove' :
                        $this->processRemove($command);
                        break;

                    case 'config' :
                        $this->processConfig($command);
                        break;

                    default :
                        echo 'Unknown command "', $command[1], '"', PHP_EOL;
                        $this->log("Unknown command '$command[1]'");
                }

                next($queue);
                unset($job, $queue[$jobkey]);
            }
        }
    }

    private function processQuit($job) {
        display( "Received quit command. Bye\n");
        $this->log('Quit command');
        $this->log->log('Quit jobQueue : ' . time() . "\n");
        die();
    }

    private function processInit($job) {
        $config = new ConfigExakat($job);
        $analyze = new Initproject(self::IS_SUBTASK);

        display( 'processing init job ' . $job[2] . PHP_EOL);
        $this->log('start init : ' . $job[2]);
        $begin = microtime(true);
        try {
            $analyze->run();
        } catch (\Exception $e) {
            $datastore = new Datastore();
            $datastore->addRow('hash', array('init error' => $e->getMessage() ));
        } finally {
            unset($analyze);
        }
        $end = microtime(true);
        $this->log('end init : ' . $job[2] . ' (' . number_format($end -$begin, 2) . ' s)');
        display( 'processing init job ' . $job[2] . ' done (' . number_format($end -$begin, 2) . ' s)' . PHP_EOL);
    }

    private function processPing($job) {
        print 'pong' . PHP_EOL;
    }

    private function processReport($job) {
        $config = new ConfigExakat($job);
        if (!file_exists("{$this->config->projects_root}/projects/{$config->project}")) {
            $this->log("No such project as {$config->project}. Ignoring\n");
            return;
        }
        $analyze = new Report(self::IS_SUBTASK);

        display( 'processing report job ' . $job[2] . PHP_EOL);
        $this->log('start report : ' . $job[2]);
        $begin = microtime(true);
        $analyze->run();
        $end = microtime(true);
        unset($analyze);
        display( 'processing report job ' . $job[2] . ' done (' . number_format($end -$begin, 2) . ' s)' . PHP_EOL);
    }

    private function processProject($job) {
        $config = new ConfigExakat($job);
        if (!file_exists("{$this->config->projects_root}/projects/{$config->project}")) {
            $this->log("No such project as {$config->project}. Ignoring\n");
            return;
        }
        $analyze = new Project(self::IS_SUBTASK);

        display( 'processing project job ' . $job[2] . PHP_EOL);
        $this->log('start project : ' . $job[2]);
        $begin = microtime(true);
        try {
            $analyze->run();
        } catch (\Exception $e) {
            $datastore = new Datastore();
            $datastore->addRow('hash', array('init error' => $e->getMessage() ));
        } finally {
            unset($analyze);
        }
        $end = microtime(true);
        $this->log('end project : ' . $job[2] . ' (' . number_format($end -$begin, 2) . ' s)');
        display( 'processing project job ' . $job[2] . ' done (' . number_format($end -$begin, 2) . ' s)' . PHP_EOL);
    }

    private function processConfig($job) {
        $config = new ConfigExakat($job);
        if (!file_exists("{$this->config->projects_root}/projects/{$config->project}")) {
            $this->log("No such project as {$config->project}. Ignoring\n");
            return;
        }
        $analyze = new Config(self::IS_SUBTASK);

        display( 'processing config job ' . $job[2] . PHP_EOL);
        $this->log('start config : ' . $job[2]);
        $begin = microtime(true);
        try {
            $analyze->run();
        } catch (\Exception $e) {
        }
        $end = microtime(true);
        $this->log('end config : ' . $job[2] . ' (' . number_format($end -$begin, 2) . ' s)');
        unset($analyze);
        display( 'processing config job ' . $job[2] . ' done (' . number_format($end -$begin, 2) . ' s)' . PHP_EOL);
    }

    private function processRemove($job) {
        $config = new ConfigExakat($job);
        if (!file_exists("{$this->config->projects_root}/projects/{$config->project}")) {
            $this->log("No such project as {$config->project}. Ignoring\n");
            return;
        }
        $analyze = new Remove(self::IS_SUBTASK);

        display( 'processing remove job ' . $job[2] . PHP_EOL);
        $this->log('start report : ' . $job[2]);
        $begin = microtime(true);
        try {
            $analyze->run();
        } catch (\Exception $e) {
            $datastore = new Datastore();
            $datastore->addRow('hash', array('init error' => $e->getMessage() ));
        }
        $end = microtime(true);
        unset($analyze);
        display( 'processing remove job ' . $job[2] . ' done (' . number_format($end -$begin, 2) . ' s)' . PHP_EOL);
    }

    private function log($message) {
        fwrite($this->jobQueueLog, date('r') . "\t{$message}\n");
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks;

class Api extends Tasks {
    const CONCURENCE = self::ANYTIME;

    const PORT = 8447;

    public function run() {
        if ($this->config->stop    === true ||
            $this->config->restart === true
            ) {
            $display = @file_get_contents('http://localhost:' . self::PORT . '/?json=["stop"]');
            if (empty($display)) {
                $display = 'No server found';
            }
            display('Shut down server (' . $display . ')');

            if ($this->config->stop === true) {
                return;
            }
        }

        if (file_exists($this->config->dir_root . '/projects/api.php')) {
            display('An API is already installed. Aborting.');
            return;
        }

        display('Copy router server');
        $php = file_get_contents($this->config->dir_root . '/server/api.php');

        $tags = array('__PHP__', '__EXAKAT__', '__SECRET_KEY__');
        $values = array($this->config->php, $this->config->executable, $this->config->transit_key);
        $php = str_replace($tags, $values, $php);

        file_put_contents("{$this->config->projects_root}/projects/api.php", $php);

        if (!file_exists("{$this->config->projects_root}/projects/api.log")) {
            file_put_contents("{$this->config->projects_root}/projects/api.log", date('r') . "\tCreated file\n");
        }

        display('Start api');
        exec($this->config->php . ' -S 0.0.0.0:' . self::PORT . ' -t ' . $this->config->projects_root . '/projects/ ' . $this->config->projects_root . '/projects/api.php > /dev/null 2 > /dev/null &');
        display('Started api');
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks;

class Extension extends Tasks {
    const CONCURENCE = self::ANYTIME;

    private $extensionList = array();

    const FORMAT = "+ %-20s %8s %5s\n";
    public const ACTIONS = array('install',
                                 'uninstall',
                                 'list',
                                 'local',
                                 'update',
                                 );

    //install, list, local, uninstall, upgrade
    public function run() {
        if (in_array($this->config->subcommand, self::ACTIONS)) {
            $this->{$this->config->subcommand}();
        } else {
            $this->local();
        }
    }

    private function install() {
        if (file_exists("{$this->config->ext_root}/{$this->config->extension}.phar")) {
            print "This extension already exists in the ext folder. Remove it manually, or with 'uninstall' command.\n";
            return;
        }

        $this->fetchExtensionList();

        if (!isset($this->extensionList[$this->config->extension])) {
            print "Couldn't find that extension on the remote server. Aborting\n";
            return;
        }

        $query = http_build_query(array('file' => $this->config->extension));
        $raw = file_get_contents('https://www.exakat.io/extensions/index.php?' . $query);

        if (hash('sha256', $raw) !== $this->extensionList[$this->config->extension]->sha256) {
            print "Error while downloading the extension : the security signatures don't match. Aborting\n";
            return;
        }

        if (!file_exists("{$this->config->ext_root}/")) {
            mkdir("{$this->config->ext_root}/", 0700);
        }

        $extensionPhar = "{$this->config->ext_root}/{$this->config->extension}.phar";
        file_put_contents($extensionPhar, $raw);

        print "{$this->config->extension} installed with success!\n";
    }

    private function update() {
        if (!file_exists("{$this->config->ext_root}/{$this->config->extension}.phar")) {
            print "No such extension to update.\n" . "{$this->config->ext_root}/{$this->config->extension}.phar";
            return;
        }

        $this->fetchExtensionList();

        if (!isset($this->extensionList[$this->config->extension])) {
            print "Couldn't find that extension on the remote server. Aborting\n";
            return;
        }

        $ini = parse_ini_file("phar://{$this->config->ext_root}/{$this->config->extension}.phar/config.ini");
        if ($this->extensionList[$this->config->extension]->build < $ini['build']) {
            print "The current extension is newer than the remote one. Remove with 'uninstall' first. Keeping previous version and aborting\n";
            return;
        } elseif ($this->extensionList[$this->config->extension]->build > $ini['build']) {
            print "The current extension is the same as the remote one. Remove with 'uninstall' first. Keeping previous version and aborting\n";
            return;
        }

        $query = http_build_query(array('file' => $this->config->extension));
        $raw = file_get_contents('https://www.exakat.io/extensions/index.php?' . $query);

        if (hash('sha256', $raw) !== $this->extensionList[$this->config->extension]->sha256) {
            print "Error while downloading the extension : the security signatures don't match. Keeping previous version. Aborting\n";
            return;
        }

        if (!file_exists("{$this->config->ext_root}/")) {
            mkdir("{$this->config->ext_root}/", 0700);
        }

        $extensionPhar = "{$this->config->ext_root}/{$this->config->extension}.phar";
        file_put_contents($extensionPhar, $raw);

        print "{$this->config->extension} upgraded to " . $this->extensionList[$this->config->extension]->version . " with success!\n";
    }

    private function uninstall() {
        if (!file_exists("{$this->config->ext_root}/{$this->config->extension}.phar")) {
            print "No such extension to remove.\n";
            return;
        }

        print "Uninstalling the extension from exakat\n";
        unlink("{$this->config->ext_root}/{$this->config->extension}.phar");
        print "Done\n";
    }

    private function list() {
        $json = @file_get_contents('https://www.exakat.io/extensions/index.json');
        if (empty($json)) {
            print "Couldn't reach the remote server.\n";
            return;
        }

        $list = json_decode($json);
        if (empty($list)) {
            print "Couldn't read the remote list.\n";
            return;
        }

        print PHP_EOL;
        printf(self::FORMAT, 'Extension', 'Version', 'Build');
        print str_repeat('-', 40) . PHP_EOL;

        foreach($list as $extension) {
            printf(self::FORMAT, $extension->name, $extension->version, '(' . $extension->build . ')');
        }

        print PHP_EOL . 'Total : ' . count($list) . ' extensions' . PHP_EOL;
    }

    private function local() {
        $list = $this->config->ext->getPharList();
        sort($list);

        print PHP_EOL;
        printf(self::FORMAT, 'Extension', 'Version', 'Build');
        print str_repeat('-', 40) . PHP_EOL;
        foreach($list as $l) {
            // drop the .phar
            if (file_exists("phar://{$this->config->ext_root}/$l/config.ini")) {
                $ini = parse_ini_file("phar://{$this->config->ext_root}/$l/config.ini");
            } else {
                $ini = array('version' => '',
                             'build'   => '',
                             );
            }
            printf(self::FORMAT, substr($l, 0, -5), $ini['version'], '(' . $ini['build'] . ')');
        }

        print PHP_EOL . 'Total : ' . count($list) . ' extensions' . PHP_EOL;
    }

    private function fetchExtensionList() {
        $json = @file_get_contents('https://www.exakat.io/extensions/index.json');
        if (empty($json)) {
            print "Couldn't reach the remote server.\n";
            return;
        }

        $list = json_decode($json);
        if (empty($list)) {
            print "Couldn't read the remote list.\n";
            return;
        }

        foreach($list as $e) {
            $this->extensionList[$e->name] = $e;
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks\LoadFinal;

use Exakat\Analyzer\Analyzer;

class IsInIgnoredDir extends LoadFinal {
    public function run() {
        $ignoredfunctions = $this->datastore->getCol('ignoredfunctions', 'fullnspath');

        $countF = 0;
        if (!empty($ignoredfunctions)) {
            $query = $this->newQuery('IsInIgnoredDir functions');
            $query->atomIs('Functioncall', Analyzer::WITHOUT_CONSTANTS)
                  ->fullnspathIs($ignoredfunctions, Analyzer::CASE_SENSITIVE)
                  ->property('ignored_dir', true)
                  ->returnCount();
            $query->prepareRawQuery();
            $result = $this->gremlin->query($query->getQuery(), $query->getArguments());
            $countF = $result->toInt();
        }

        $ignoredconstants = $this->datastore->getCol('ignoredconstants', 'fullnspath');
        $ignoredcit       = $this->datastore->getCol('ignoredcit', 'fullnspath');
        $ignored          = array_values(array_merge($ignoredcit, $ignoredconstants));

        $countC = 0;
        if (!empty($ignoredfunctions)) {
            $query = $this->newQuery('IsInIgnoredDir constants + cit');
            $query->atomIs(array('Identifier', 'Nsname'), Analyzer::WITHOUT_CONSTANTS)
                  ->fullnspathIs($ignored, Analyzer::CASE_SENSITIVE)
                  ->property('ignored_dir', true)
                  ->returnCount();
            $query->prepareRawQuery();
            $result = $this->gremlin->query($query->getQuery(), $query->getArguments());
            $countC = $result->toInt();
        }

        $count = $countF + $countC;
        display("Set $count functions, constants and class with ignored_dir");
    }
}

?>
   Bud1            %                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 @                                              @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   E   %                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       DSDB                             `                                                     @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              <?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks\LoadFinal;

use Exakat\Analyzer\Analyzer;

class SpotPHPNativeConstants extends LoadFinal {
    private $PHPconstants = array();

    public function run() {
        if (empty($this->PHPconstants)) {
            return;
        }
        $constants = array_merge(...$this->PHPconstants);
        $constants = array_filter($constants, function ($x) { return strpos($x, '\\') === false;});
        $constantsPHP = array_values($constants);
        $constantsPHP = makeFullNsPath($constantsPHP, \FNP_CONSTANT);

        // Constants like A\E_ALL are ignored here

        // Constants like \E_ALL
        $query = $this->newQuery('SpotPHPNativeConstants nsname');
        $query->atomIs('Nsname', Analyzer::WITHOUT_CONSTANTS)
              ->is('absolute', true)
              ->has('fullnspath')
              ->hasNoIn('DEFINITION')
              ->fullnspathIs($constantsPHP, Analyzer::CASE_SENSITIVE)
              ->property('isPhp', true)
              ->returnCount();
        $query->prepareRawQuery();
        $result = $this->gremlin->query($query->getQuery(), $query->getArguments());
        display($result->toInt() . ' SpotPHPNativeConstants like \E_ALL');

        // constants like E_ALL 
        $query = $this->newQuery('SpotPHPNativeConstants');
        $query->atomIs('Identifier', Analyzer::WITHOUT_CONSTANTS)
              ->has('fullnspath')
              ->values('fullnspath')
              ->unique();
        $query->prepareRawQuery();
        if ($query->canSkip()) {
            $usedConstants = array();
        } else {
            $result = $this->gremlin->query($query->getQuery(), $query->getArguments());
            $usedConstants = $result->toArray();
        }

        if (empty($usedConstants)) {
            display('No Constants');
            return;
        }

        $found = array();
        foreach($usedConstants as $constant) {
            if (!preg_match('/(\\\\[^\\\\]+)$/', $constant, $r)) {
                continue;
            }
            array_collect_by($found, $r[1], $constant);
        }

        $used = array_intersect(array_keys($found), $constantsPHP);
        if (empty($used)) {
            display('No PHP Constants');
            return;
        }

        $search = array();
        foreach($used as $key) {
            $search[] = $found[$key];
        }
        $search = array_merge(...$search);

        $query = $this->newQuery('SpotPHPNativeConstants');
        $query->atomIs('Identifier', Analyzer::WITHOUT_CONSTANTS)
              ->has('fullnspath')
              ->hasNoIn('DEFINITION')
              ->fullnspathIs($search, Analyzer::CASE_SENSITIVE)
              ->raw(<<<'GREMLIN'
sideEffect{ fnp = it.get().value("fullnspath").tokenize("\\").last();  
                it.get().property("fullnspath", "\\"  + fnp);
                it.get().property("isPhp", true);}
GREMLIN)
              ->returnCount();
        $query->prepareRawQuery();
        $result = $this->gremlin->query($query->getQuery(), $query->getArguments());
        display($result->toInt() . ' SpotPHPNativeConstants');

        $query = $this->newQuery('SpotPHPNativeConstants in Usenamespace');
        $query->atomIs('Usenamespace', Analyzer::WITHOUT_CONSTANTS)
              ->hasOut('CONST')
              ->outIs('USE')
              ->fullnspathIs($search, Analyzer::CASE_SENSITIVE)
              ->raw(<<<'GREMLIN'
sideEffect{ 
    fnp = it.get().value("fullnspath").tokenize("\\").last();  
    it.get().property("fullnspath", "\\"  + fnp);
    it.get().property("isPhp", true);
}
GREMLIN)
              // propagate to all usage of this constant
              ->outIs('DEFINITION')
              ->raw(<<<'GREMLIN'
sideEffect{     
    it.get().property("fullnspath", "\\"  + fnp);
    it.get().property("isPhp", true);}
GREMLIN)
              ->returnCount();
        $query->prepareRawQuery();
        $result = $this->gremlin->query($query->getQuery(), $query->getArguments());
        display($result->toInt() . ' SpotPHPNativeConstants in Use');
    }

    public function setPHPconstants(array $PHPconstants = array()) {
        $this->PHPconstants = $PHPconstants;
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks\LoadFinal;

use Exakat\Analyzer\Analyzer;

class FixFullnspathConstants extends LoadFinal {
    public function run() {
        $query = $this->newQuery('fixFullnspathConstants');
        $query->atomIs(array('Identifier', 'Nsname'), Analyzer::WITHOUT_CONSTANTS)
              ->has('fullnspath')
              ->_as('identifier')
              ->savePropertyAs('fullnspath', 'cc')
              ->inIs('DEFINITION')
              ->atomIs(array('Class', 'Trait', 'Interface', 'Constant', 'Defineconstant'), Analyzer::WITHOUT_CONSTANTS)
              ->raw(<<<'GREMLIN'
coalesce( __.out("ARGUMENT").has("rank", 0), 
          __.hasLabel("Constant").out('NAME'), 
          filter{ true; })
GREMLIN)
              ->savePropertyAs('fullnspath', 'actual')
              ->raw('filter{ actual != cc; }')
              ->back('identifier')
              ->setProperty('fullnspath', 'actual')
              ->returnCount();
        $query->prepareRawQuery();
        if (!$query->canSkip()) {
            $this->gremlin->query($query->getQuery(), $query->getArguments());
        }

        display('Fixed Fullnspath for Constants');
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks\LoadFinal;

use Exakat\Analyzer\Analyzer;

class FinishIsModified extends LoadFinal {
    protected $methods = null;

    public function __construct() {
        parent::__construct();

        $this->methods = exakat('methods');
    }

    public function run() {
        $variables = array('Variable',
                           'Variableobject',
                           'Variablearray',
                           'Array',
                           'Member',
                           'Staticproperty',
                           'Phpvariable',
                          );

        // No support for old style constructors
        $query = $this->newQuery('isModified with New');
        $query->atomIs('New', Analyzer::WITHOUT_CONSTANTS)
              ->inIs('DEFINITION')
              ->outIs('ARGUMENT')
              ->is('reference', true)
              ->savePropertyAs('rank', 'r')
              ->back('first')
              ->outIs('NEW')
              ->outIs('ARGUMENT')
              ->samePropertyAs('rank', 'r', Analyzer::CASE_SENSITIVE)
              ->atomIs($variables, Analyzer::WITHOUT_CONSTANTS)
              ->setProperty('isModified', true)
              ->returnCount();
        $query->prepareRawQuery();
        if ($query->canSkip()) {
            $countNew = 0;
        } else {
            $result = $this->gremlin->query($query->getQuery(), $query->getArguments());
            $countNew = $result->toInt();
        }

        $query = $this->newQuery('isModified with function calls');
        $query->atomIs(array('Functioncall', 'Methodcall', 'Staticmethodcall'), Analyzer::WITHOUT_CONSTANTS)
              ->inIs('DEFINITION')
              ->outIs('ARGUMENT')
              ->is('reference', true)
              ->savePropertyAs('rank', 'r')
              ->back('first')
              ->outIsIE('METHOD')
              ->outIs('ARGUMENT')
              ->samePropertyAs('rank', 'r', Analyzer::CASE_INSENSITIVE)
              ->atomIs($variables, Analyzer::WITHOUT_CONSTANTS)
              ->setProperty('isModified', true)
              ->returnCount();
        $query->prepareRawQuery();
        if ($query->canSkip()) {
            $countFunction = 0;
        } else {
            $result = $this->gremlin->query($query->getQuery(), $query->getArguments());
            $countFunction = $result->toInt();
        }

        $count = $countNew + $countFunction;
        display("Created $count isModified values");

        // Managing Appends and its descendants
        // TODO : this should be a loop
        $query = $this->newQuery('isModified with append $a[]');
        $query->atomIs('Arrayappend', Analyzer::WITHOUT_CONSTANTS)
              ->outIs('APPEND')
              ->atomIs($variables, Analyzer::WITHOUT_CONSTANTS)
              ->setProperty('isModified', true)
              ->returnCount();
        $query->prepareRawQuery();
        if ($query->canSkip()) {
            $countAppend0 = 0;
        } else {
            $result = $this->gremlin->query($query->getQuery(), $query->getArguments());
            $countAppend0 = $result->toInt();
        }

        $query = $this->newQuery('isModified with append $a[1][]');
        $query->atomIs('Arrayappend', Analyzer::WITHOUT_CONSTANTS)
              ->outIs('APPEND')
              ->outIs('VARIABLE')
              ->atomIs($variables, Analyzer::WITHOUT_CONSTANTS)
              ->setProperty('isModified', true)
              ->returnCount();
        $query->prepareRawQuery();
        if ($query->canSkip()) {
            $countAppend1 = 0;
        } else {
            $result = $this->gremlin->query($query->getQuery(), $query->getArguments());
            $countAppend1 = $result->toInt();
        }

        $query = $this->newQuery('isModified with append $a[1][2][]');
        $query->atomIs('Arrayappend', Analyzer::WITHOUT_CONSTANTS)
              ->outIs('APPEND')
              ->outIs('VARIABLE')
              ->outIs('VARIABLE')
              ->atomIs($variables, Analyzer::WITHOUT_CONSTANTS)
              ->setProperty('isModified', true)
              ->returnCount();
        $query->prepareRawQuery();
        if ($query->canSkip()) {
            $countAppend2 = 0;
        } else {
            $result = $this->gremlin->query($query->getQuery(), $query->getArguments());
            $countAppend2 = $result->toInt();
        }

        $count = $countAppend0 + $countAppend1 + $countAppend2;
        display("Created $count isModified values with array append");

        // Managing Unset()
        $query = $this->newQuery('isModified with unset function');
        $query->atomIs('Unset', Analyzer::WITHOUT_CONSTANTS)
              ->outIs('ARGUMENT')
              ->atomIs('Array', Analyzer::WITHOUT_CONSTANTS)
              ->outIs('VARIABLE')
              ->atomIs($variables, Analyzer::WITHOUT_CONSTANTS)
              ->setProperty('isModified', true)
              ->returnCount();
        $query->prepareRawQuery();
        if ($query->canSkip()) {
            $countFunction = 0;
        } else {
            $result = $this->gremlin->query($query->getQuery(), $query->getArguments());
            $countFunction = $result->toInt();
        }

        $query = $this->newQuery('isModified with unset operator');
        $query->atomIs('Cast', Analyzer::WITHOUT_CONSTANTS)
              ->tokenIs('T_UNSET_CAST')
              ->outIs('CAST')
              ->atomIs('Array', Analyzer::WITHOUT_CONSTANTS)
              ->outIs('VARIABLE')
              ->atomIs($variables, Analyzer::WITHOUT_CONSTANTS)
              ->setProperty('isModified', true)
              ->returnCount();
        $query->prepareRawQuery();
        if ($query->canSkip()) {
            $countOperator = 0;
        } else {
            $result = $this->gremlin->query($query->getQuery(), $query->getArguments());
            $countOperator = $result->toInt();
        }

        $count = $countFunction + $countOperator;
        display("Created $count isModified values with unset");

        $query = $this->newQuery('isModified with list() or foreach()');
        $query->atomIs('Keyvalue', Analyzer::WITHOUT_CONSTANTS)
              ->inIs(array('VALUE', 'ARGUMENT'))
              ->atomIs(array('Foreach', 'List'), Analyzer::WITHOUT_CONSTANTS)
              ->back('first')
              ->outIs(array('INDEX', 'VALUE'))
              ->atomIs($variables, Analyzer::WITHOUT_CONSTANTS)
              ->setProperty('isModified', true)
              ->returnCount();
        $query->prepareRawQuery();
        if ($query->canSkip()) {
            $countOperator = 0;
        } else {
            $result = $this->gremlin->query($query->getQuery(), $query->getArguments());
            $countOperator = $result->toInt();
        }

        $count = $countFunction + $countOperator;
        display("Created $count isModified values with => ");
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks\LoadFinal;

use Exakat\Analyzer\Analyzer;

class SpotPHPNativeFunctions extends LoadFinal {
    private $PHPfunctions = array();

    public function run() {
        $count = 0;

        $query = $this->newQuery('SpotPHPNativeFunctions fallingback');
        $query->atomIs('Functioncall', Analyzer::WITHOUT_CONSTANTS)
              ->isNot('absolute', true)
              ->tokenIs('T_STRING')
              ->has('fullnspath')
              ->hasNoIn('DEFINITION')
              ->not(
                $query->side()
                      ->outIs('NAME')
                      ->inIs('DEFINITION')
                      ->inIs('USE')
                      ->atomIs('Usenamespace', Analyzer::WITHOUT_CONSTANTS)
              )
              ->raw('map{ parts = it.get().value("fullnspath").tokenize("\\\\"); name = parts.last().toLowerCase();}')
              ->unique();
        $query->prepareRawQuery();
        if ($query->canSkip()) {
            $fallingback = array();
        } else {
            $result = $this->gremlin->query($query->getQuery(), $query->getArguments());
            $fallingback = $result->toArray();
        }

        if (!empty($fallingback)) {
            $phpfunctions = array_merge(...$this->PHPfunctions);
            $phpfunctions = array_map('strtolower', $phpfunctions);
            $phpfunctions = array_values($phpfunctions);

            $diff = array_values(array_intersect($fallingback, $phpfunctions));

            $query = $this->newQuery('SpotPHPNativeFunctions update');
            $query->atomIs('Functioncall', Analyzer::WITHOUT_CONSTANTS)
                  ->has('fullnspath')
                  ->isNot('absolute', true)
                  ->tokenIs('T_STRING')
                  ->hasNoIn('DEFINITION')
                  ->not(
                    $query->side()
                         ->outIs('NAME')
                         ->inIs('DEFINITION')
                         ->inIs('USE')
                         ->atomIs('Usenamespace', Analyzer::WITHOUT_CONSTANTS)
                  )
                  ->raw('filter{ name = it.get().value("fullnspath").tokenize("\\\\").last().toLowerCase(); name in *** }', $diff)
                  ->raw('sideEffect{
         fullnspath = "\\\\" + name;
         it.get().property("fullnspath", fullnspath);
         it.get().property("is_php", true); 
     }')
                  ->returnCount();
            $query->prepareRawQuery();
            $result = $this->gremlin->query($query->getQuery(), $query->getArguments());
            $count = $result->toInt();
        }

        display("Set $count functioncall fallingback");
    }

    public function setPHPfunctions(array $phpfunctions) {
        $this->PHPfunctions = $phpfunctions;
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks\LoadFinal;

use Exakat\Analyzer\Analyzer;

class SpotExtensionNativeFunctions extends LoadFinal {
    public function run() {
        $query = $this->newQuery('SpotExtensionNativeFunctions fallingback');
        $query->atomIs('Functioncall', Analyzer::WITHOUT_CONSTANTS)
              ->isNot('absolute', true)
              ->tokenIs('T_STRING')
              ->has('fullnspath')
              ->hasNoIn('DEFINITION')
              ->raw('filter{ parts = it.get().value("fullnspath").tokenize("\\\\"); parts.size() > 1 }')
              ->raw('map{ name = "\\\\" + parts.last().toLowerCase();}')
              ->unique();
        $query->prepareRawQuery();
        if ($query->canSkip()) {
            $fallingback = array();
        } else {
            $result = $this->gremlin->query($query->getQuery(), $query->getArguments());
            $fallingback = $result->toArray();
        }

        if (empty($fallingback)) {
            display('Set 0 extension functioncall fallingback');
            return;
        }

        $functionsDev = $this->config->dev->loadIni('functions.ini', 'functions');
        $functionsExt = $this->config->ext->loadIni('functions.ini', 'functions');
        $functionsAll = array_unique(array_merge($functionsDev, $functionsExt));
        $diff = array_values(array_intersect($fallingback, $functionsAll));

        $query = $this->newQuery('SpotExtensionNativeFunctions update');
        $query->atomIs('Functioncall', Analyzer::WITHOUT_CONSTANTS)
              ->has('fullnspath')
              ->isNot('absolute', true)
              ->tokenIs('T_STRING')
              ->hasNoIn('DEFINITION')
              ->raw('filter{ parts = it.get().value("fullnspath").tokenize("\\\\"); parts.size() > 1 }')
              ->raw('filter{ name = "\\\\" + parts.last().toLowerCase(); name in *** }', $diff)
              ->raw('sideEffect{
         it.get().property("fullnspath", name); 
     }')
                  ->returnCount();
         $query->prepareRawQuery();
         $result = $this->gremlin->query($query->getQuery(), $query->getArguments());
         $count = $result->toInt();

        display("Set $count extension functioncall fallingback");
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks\LoadFinal;

use Exakat\Query\Query;
use Exakat\Exceptions\GremlinException;
use Exakat\Log;

class LoadFinal {
    protected $gremlin    = null;
    protected $config     = null;
    protected $datastore  = null;

    private $PHPconstants = array();
    private $PHPfunctions = array();

    protected $log        = null;

    public function __construct() {
        $this->gremlin    = exakat('graphdb');
        $this->config     = exakat('config');
        $this->datastore  = exakat('datastore');
        $this->datastore->reuse();

        $this->log = new Log(strtolower(substr(static::class, strrpos(self::class, '\\') + 1)),
                             "{$this->config->projects_root}/projects/{$this->config->project}");
    }

    protected function newQuery($title): Query {
        return new Query(0,
                         $this->config->project,
                         $title,
                         $this->config->executable
                         );
    }

    public function run() {
        $this->log('Start');
        display('Start load final');

        $this->init();

        $this->addReturnedVoid();
        $this->log('addReturnedVoid');

        $this->removeInterfaceToClassExtends();
        $this->log('removeInterfaceToClassExtends');

        $this->fixFullnspathFunctions();
        $this->log('fixFullnspathFunctions');

        $task = new SpotPHPNativeFunctions();
        $task->setPHPfunctions($this->PHPfunctions);
        $task->run();
        $this->log('SpotPHPNativeFunctions');

        $task = new SpotExtensionNativeFunctions();
        $task->run();
        $this->log('Spot Extensions Native Functions');

        // stats calculation : it will fill the functioncall list
        $query = <<<'GREMLIN'
g.V().hasLabel("Functioncall")
     .has("fullnspath")
     .groupCount("m")
     .by("fullnspath")
     .cap("m")
GREMLIN;
        $fixed = $this->gremlin->query($query)->toArray();
        if (!empty($fixed)) {
            $this->datastore->addRow('functioncalls', $fixed[0]);
        }

        // This is needed AFTER functionnames are found
        $this->spotFallbackConstants();
        $this->log('spotFallbackConstants');
        $task = new FixFullnspathConstants();
        $task->run();
        $this->log('FixFullnspathConstants');

        $task = new SpotPHPNativeConstants();
        $task->setPHPconstants($this->PHPconstants);
        $task->run();
        $this->log('spotPHPNativeConstants');

        $task = new FinishIsModified();
        $task->run();
        $this->log('FinishIsModified');

        $task = new IsInIgnoredDir();
        $task->run();
        $this->log('IsInIgnoredDir');

        display('End load final');
        $this->logTime('Final');
    }

    private function log($step) {
        $this->logTime($step);
        $this->log->log($step);
    }

    private function logTime($step) {
        static $log, $begin, $end, $start;

        if ($log === null) {
            $log = fopen("{$this->config->log_dir}/loadfinal.timing.csv", 'w+');
            if ($log === false) {
                return;
            }
        }

        $end = microtime(true);
        if ($begin === null) {
            $begin = $end;
            $start = $end;
        }

        fwrite($log, $step . "\t" . ($end - $begin) . "\t" . ($end - $start) . "\n");
        $begin = $end;
    }

    private function addReturnedVoid() {
        display('add Returned void');

        $query = <<<'GREMLIN'
g.V().hasLabel("Function", "Method", "Magicmethod", "Closure", "Arrowfunction")
     .as('first')
     .not(
        __.where(
            __.out("RETURNED")
        )
     )
     .addV('Void')
        .property('code', 'Void')
        .property('fullcode', '')
        .property('token', 'T_VOID')
        .property('noDelimiter', '')
        .property('delimiter', '')
        .property('fullnspath', '0')
        .property('line', -1)
    .addE('RETURNED')
    .from('first')
    .count()
GREMLIN;
        $result = $this->gremlin->query($query);

        display($result->toInt() . ' added returned to Void');
        $this->log->log(__METHOD__);
    }

    private function removeInterfaceToClassExtends() {
        display('fixing Definitions for traits and interfaces');

        $query = <<<'GREMLIN'
g.V().hasLabel("Interface")
     .out("EXTENDS")
     .inE()
     .hasLabel("DEFINITION")
     .where(__.outV().hasLabel("Class", "Trait", "Classanonymous"))
     .drop()
     .count();
GREMLIN;
        $result = $this->gremlin->query($query);

        display($result->toInt() . ' removed interface extends link');
        $this->log->log(__METHOD__);

        $query = <<<'GREMLIN'
g.V().hasLabel("Class")
     .out("EXTENDS")
     .inE()
     .hasLabel("DEFINITION")
     .where(__.outV().hasLabel("Interface", "Trait"))
     .drop()
     .count();
GREMLIN;
        $result = $this->gremlin->query($query);

        display($result->toInt() . ' removed class extends link');
        $this->log->log(__METHOD__);

        $query = <<<'GREMLIN'
g.V().hasLabel("Class")
     .out("IMPLEMENTS")
     .inE()
     .hasLabel("DEFINITION")
     .where(__.outV().hasLabel("Class", "Trait", "Classanonymous"))
     .drop()
     .count();
GREMLIN;
        $result = $this->gremlin->query($query);

        display($result->toInt() . ' removed class implements link');
        $this->log->log(__METHOD__);

        $query = <<<'GREMLIN'
g.V().hasLabel("Usetrait")
     .out("USE")
     .inE()
     .hasLabel("DEFINITION")
     .where(__.outV().hasLabel("Class", "Interface", "Classanonymous"))
     .drop()
     .count();
GREMLIN;
        $result = $this->gremlin->query($query);

        display($result->toInt() . ' removed class implements link');
        $this->log->log(__METHOD__);
    }

    // Can't move this to Query, because atoms and functioncall dictionaries are still unloaded
    private function fixFullnspathFunctions() {
        display('fixing Fullnspath for Functions');

        $query = <<<'GREMLIN'
g.V().hasLabel("Functioncall")
     .not(has('absolute', true))
     .has('token', 'T_STRING')
     .has("fullnspath")
     .as("identifier")
     .sideEffect{ cc = it.get().value("fullnspath");}
     .in("DEFINITION")
     .hasLabel("Function")
     .sideEffect{ actual = it.get().value("fullnspath");}
     .filter{ actual != cc; }
     .select("identifier")
     .sideEffect{ it.get().property("fullnspath", actual); }
     .count();
GREMLIN;
        $result = $this->gremlin->query($query);

        display($result->toInt() . ' fixed Fullnspath for Functions');
        $this->log->log(__METHOD__);
    }

    private function runQuery($query, $title, $args = array(), $method = __METHOD__) {
        display($title);

        $this->logTime($title);

        try {
            $this->gremlin->query($query, $args);
        } catch (GremlinException $e) {
            // This should be handled nicely!!!
        }

        display('   /' . $title);
        $this->logTime('end ' . $title);
        $this->log->log($method);
    }

    private function spotFallbackConstants() {
        $this->logTime('spotFallbackConstants');
        display("spotFallbackConstants\n");

        // Define-style constant definitions
        $query = <<<'GREMLIN'
g.V().hasLabel("Defineconstant")
     .out("NAME")
     .hasLabel("String").has("noDelimiter").not( has("noDelimiter", '') )
     .filter{ (it.get().value("noDelimiter") =~ "(\\\\\\\\)\$").getCount() == 0 }
     .values('fullnspath').unique();
GREMLIN;
        $defineConstants = $this->gremlin->query($query)
                                         ->toArray();

        $query = <<<'GREMLIN'
g.V().hasLabel("Const")
     .not( where( __.in("CONST") ) )  // Not a class or an interface
     .out("CONST")
     .out("NAME")
     .filter{ (it.get().value("fullnspath") =~ "^\\\\\\\\[^\\\\\\\\]+\$").getCount() == 1 }
     .values('fullnspath').unique();

GREMLIN;
        $constConstants = $this->gremlin->query($query)
                                        ->toArray();

        $constants = array_merge($constConstants, $defineConstants);
        $this->logTime('constants : ' . count($constants));

        if (empty($constants)) {
            display('Link constant definitions : skipping.');
            return;
        }
        if (!empty($defineConstants)) {
            // This only works with define() and case sensitivity
            $query = <<<'GREMLIN'
g.V().hasLabel("Identifier", "Nsname")
     .not( where( __.in("NAME", "METHOD", "MEMBER", "EXTENDS", "IMPLEMENTS", "CONSTANT", "AS", "CLASS", "DEFINITION", "GROUPUSE") ) )
     .has("token", without("T_CONST", "T_FUNCTION"))
     .sideEffect{name = it.get().value("fullnspath"); }
     .filter{ name in arg1 }
     .addE("DEFINITION")
     .from( 
        __.V().hasLabel("Defineconstant")
             .as("a").out("NAME").hasLabel("String")
             .has("fullnspath")
             .filter{ it.get().value("fullnspath") == name}.select("a")
      ).count();

GREMLIN;
            $this->gremlin->query($query, array('arg1' => $defineConstants));

            // Second round, with fallback to global constants
            // Based on define() definitions
            $this->logTime('constants define : ' . count($defineConstants));

            $query = <<<'GREMLIN'
g.V().hasLabel("Identifier", "Nsname")
     .not( where( __.in("NAME", "METHOD", "MEMBER", "EXTENDS", "IMPLEMENTS", "CONSTANT", "AS", "CLASS", "DEFINITION", "GROUPUSE") ) )
     .filter{ name = "\\\\" + it.get().value("fullcode"); name in arg1 }
     .sideEffect{
        fullnspath = "\\\\" + it.get().value("code");
        it.get().property("fullnspath", fullnspath); 
     }
     .addE('DEFINITION')
     .from( 
        __.V().hasLabel("Defineconstant")
             .as("a").out("NAME").hasLabel("String").has('fullnspath')
             .filter{ it.get().value("fullnspath") == name}.select('a')
      ).count()

GREMLIN;
            $this->gremlin->query($query, array('arg1' => $defineConstants));
        }

        $this->logTime('constants const : ' . count($constConstants));
        if (!empty($constConstants)) {
            // Based on const definitions
            $query = <<<'GREMLIN'
g.V().hasLabel("Identifier", "Nsname")
     .not( where( __.in("NAME", "DEFINITION", "EXTENDS", "IMPLEMENTS") ) )
     .filter{ name = "\\\\" + it.get().value("fullcode"); 
              name in arg1; }
     .sideEffect{
         it.get().property("fullnspath", name); 
     }
     .addE('DEFINITION')
     .from( 
        __.V().hasLabel("Const")
             .not( where( __.in("CONST") ) ) 
             .out("CONST")
             .out("NAME")
             .filter{ (it.get().value("fullnspath") =~ "^\\\\\\\\[^\\\\\\\\]+\$").getCount() == 1 }
       )
       .count()

GREMLIN;
            $this->gremlin->query($query, array('arg1' => $constConstants));
        }

        // TODO : handle case-insensitive
        $this->logTime('Constant definitions');
        display('Link constant definitions');
        $this->log->log(__METHOD__);
    }

    private function init() {
        // fallback for PHP and ext, class, function, constant
        // update fullnspath with fallback for functions

        $themes = exakat('rulesets');

        $exts = $themes->listAllAnalyzer('Extensions');
        $exts[] = 'php_constants';
        $exts[] = 'php_functions';

        foreach($exts as $ext) {
            $inifile = str_replace('Extensions\Ext', '', $ext) . '.ini';
            $fullpath = "{$this->config->dir_root}/data/$inifile";

            if (file_exists($fullpath)) {
                $iniFile = parse_ini_file($fullpath);
            } else {
                $inifile = str_replace('Extensions\Ext', '', $ext) . '.json';
                $fullpath = "{$this->config->dir_root}/data/$inifile";
                if (file_exists($fullpath)) {
                    $jsonFile = file_get_contents($fullpath);
                    $iniFile = json_decode($jsonFile, \JSON_ASSOCIATIVE);
                } else {
                    continue;
                }
            }

            if (!empty($iniFile['constants'][0])) {
                $this->PHPconstants[] = $iniFile['constants'];
            }

            if (!empty($iniFile['functions'][0])) {
                $this->PHPfunctions[] = $iniFile['functions'];
            }
        }
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks\Helpers;

use Exakat\Config;

class BaselineStash {
    const STRATEGIES = array('none', 'always');

    // 'none', 'always', '<Name>'
    private $baseline_strategy = 'none';
    private $baseline_dir       = '';
    private $use               = 'none';

    const NO_BASELINE          = '';

    public function __construct(Config $config) {
        $this->baseline_strategy = $config->baseline_set;
        $this->baseline_dir      = $config->project_dir . '/baseline';
        $this->use               = $config->baseline_use;

        if (!file_exists($this->baseline_dir)) {
            if (!mkdir($this->baseline_dir,0700)) {
                display('Could not create the baseline directory. No baseline will be saved.');
            }
        }
    }

    public function copyPrevious(string $previous, string $name = ''): void {
        if (!file_exists($previous)) {
            display("No previous audit found. Omitting baseline\n");

            return;
        }

        if (!empty($name) && !in_array($name, self::STRATEGIES)) {
            // overwrite
            if (!copy($previous, $this->baseline_dir . '/' . $name . '.sqlite')) {
                display('Could not save the baseline with the name ' . $name);
            }

            return;
        }

        if ($this->baseline_strategy === 'none') {
            // Nothing to do
            return;
        }

        if ($this->baseline_strategy === 'always') {
            $baselines = glob("{$this->baseline_dir}/dump-*.sqlite");
            if (empty($baselines)) {
                $last_id = 1;
            } else {
                usort($baselines, function (string $a, string $b) { return $b <=> $a;} ); // simplistic reverse sorting
                $last = $baselines[0];
                $last_id = preg_match('/dump-(\d+)-/', $last, $r) ? (int) $r[1] : 1;
            }

            if ($this->baseline_strategy === 'always') {
                // Create a new
                // md5 is here for uuid purpose.
                $sqliteFilePrevious = $this->baseline_dir . '/dump-' . ($last_id + 1) . '-' . substr(md5($this->baseline_dir . ($last_id + 1)), 0, 7) . '.sqlite';
                if (!copy($previous, $sqliteFilePrevious)) {
                    display('Could not save the baseline with the name ' . $name);
                }

                return;
            }
        }
    }

    public function removeBaseline(string $id): void {
        $id = basename($id);
        if (file_exists("{$this->baseline_dir}/$id.sqlite")) {
            display("Removing baseline '$id'\n");
            unlink("{$this->baseline_dir}/$id.sqlite");

            return;
        }

        $baselines = glob("{$this->baseline_dir}/dump-*-$id.sqlite");
        if (!empty($baselines) && count($baselines) === 1) {
            $baseline = basename($baselines[0], '.sqlite');
            display("Removing baseline '$baseline'\n");

            unlink($baselines[0]);

            return;
        }

        display("Could not find $id baseline\n");
    }

    public function getBaseline(): string {
        if ($this->baseline_strategy === 'none') {
            return self::NO_BASELINE;
        }

        if ($this->baseline_strategy === 'always') {
            $baselines = glob("{$this->baseline_dir}//dump-*-*.sqlite");
            if (empty($baselines)) {
                return self::NO_BASELINE;
            }

            // Get the last one
            sort($baselines);
            return array_pop($baselines);
        }

        // full name in use
        if (file_exists("{$this->baseline_dir}/{$this->baseline_strategy}.sqlite")) {
            return "{$this->baseline_dir}/{$this->baseline_strategy}.sqlite";
        }

        // dump-xxx-AAAAAAA.sqlite name
        if (file_exists("{$this->baseline_dir}/dump-\d+-{$this->baseline_strategy}.sqlite")) {
            return "{$this->baseline_dir}/{$this->baseline_strategy}.sqlite";
        }

        return self::NO_BASELINE;
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

declare( strict_types = 1);

namespace Exakat\Tasks\Helpers;

use Exakat\Tasks\Load;

class Constant extends Plugin {
    public $name = 'constant';
    public $type = 'boolean';

    private $deterministFunctions = array();

    public function __construct() {
        parent::__construct();

        $deterministFunctions = exakat('methods')->getDeterministFunctions();
        $this->deterministFunctions = array_map(function ($x) { return "\\$x";}, $deterministFunctions);
    }

    public function run(Atom $atom, array $extras = array()): void {
        foreach($extras as $extra) {
            if ($extra->constant === null)  {
                $atom->constant = null;
                return ;
            }
        }

        switch ($atom->atom) {
            case 'Integer' :
            case 'Float' :
            case 'Boolean' :
            case 'Null' :
            case 'Void' :
            case 'Nsname' :
            case 'Identifier' :
            case 'Staticclass' :
            case 'Name' :
                $atom->constant = true;
                break;

            case 'Addition' :
            case 'Multiplication' :
            case 'Logical' :
            case 'Coalesce' :
            case 'Bitshift' :
            case 'Comparison' :
                $atom->constant = $extras['LEFT']->constant && $extras['RIGHT']->constant;
                break;

            case 'Heredoc' :
                if ($atom->heredoc !== true) { // it is a now doc
                    $atom->constant = true;
                    break;
                }
                $constants = array_column($extras, 'constant');
                $atom->constant = array_reduce($constants, function ($carry, $item) { return $carry && $item; }, true);
                break;

            case 'String' :
            case 'Arrayliteral' :
            case 'Concatenation' :
            case 'Argument' :
            case 'Classalias':
            case 'Sequence' :
                $constants = array_column($extras, 'constant');
                $atom->constant = array_reduce($constants, function ($carry, $item) { return $carry && $item; }, true);
                break;

            case 'Return' :
                $atom->constant = $extras['RETURN']->constant;
                break;

            case 'Staticconstant' :
                $atom->constant = $extras['CLASS']->constant;
                break;

            case 'Not' :
                $atom->constant = $extras['NOT']->constant;
                break;

            case 'Keyvalue' :
                $atom->constant = $extras['INDEX']->constant && $extras['VALUE']->constant;
                break;

            case 'Parenthesis' :
                $atom->constant = $extras['CODE']->constant;
                break;

            case 'Yield' :
                $atom->constant = $extras['YIELD']->constant;
                break;

            case 'Defineconstant' :
                $atom->constant = $extras['NAME']->constant && ($extras['VALUE']->constant ?? false);
                break;

            case 'Ternary' :
                $atom->constant = $extras['CONDITION']->constant &&
                                  $extras['THEN']->constant      &&
                                  $extras['ELSE']->constant;
                break;

            case 'Closure' :
                $atom->constant = true;
                break;

            case 'Assignation' :
                $atom->constant = $extras['RIGHT']->constant && $atom->code === '=';
                break;

            case 'Functioncall' :
                if (empty($atom->fullnspath)) {
                    $atom->constant  = Load::NOT_CONSTANT_EXPRESSION;
                } elseif (in_array($atom->fullnspath, $this->deterministFunctions)) {
                    if (isset($extras[0])) {
                        $constants = array_column($extras, 'constant');
                        $atom->constant = array_reduce($constants, function ($carry, $item) { return $carry && $item; }, true);
                    } else {
                        $atom->constant  = Load::CONSTANT_EXPRESSION;
                    }
                } else {
                    $atom->constant  = Load::NOT_CONSTANT_EXPRESSION;
                }
                break;

            default :
                $atom->constant = Load::NOT_CONSTANT_EXPRESSION;
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks\Helpers;

class AtomGroup {
    private $atomCount = 0;

    public function __construct(int $init = 0) {
        $this->atomCount = $init;
    }

    public function factory(string $atom, int $line): Atom {
        return new Atom(++$this->atomCount, $atom, $line);
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

declare( strict_types = 1);

namespace Exakat\Tasks\Helpers;

class IsModified extends Plugin {
    public $name = 'isModified';
    public $type = 'boolean';
    private $variables = array('Variable', 'Array', 'Member', 'Staticproperty', 'Phpvariable', );

    public function run(Atom $atom, array $extras): void {
        switch ($atom->atom) {
            case 'Assignation' :
                if (in_array($extras['LEFT']->atom, $this->variables)) {
                    $extras['LEFT']->isModified = true;
                }
                break;

            case 'Cast' :
                if ($atom->token === 'T_UNSET_CAST' &&
                    in_array($extras['CAST']->atom, $this->variables)) {
                    $extras['CAST']->isModified = true;
                }
                break;

            case 'Catch' :
                if (in_array($extras['VARIABLE']->atom, $this->variables)) {
                    $extras['VARIABLE']->isModified = true;
                }
                break;

            case 'Foreach' :
                if (in_array($extras['VALUE']->atom, $this->variables)) {
                    $extras['VALUE']->isModified = true;
                }
                if (isset($extras['INDEX']) && in_array($extras['INDEX']->atom, $this->variables)) {
                    $extras['INDEX']->isModified = true;
                }
                if (!empty(array_filter($extras, function ($x) { return (int) $x->reference; }))) {
                    $extras['SOURCE']->isModified = true;
                }
                break;

            case 'List' :
            case 'Unset' :
                foreach($extras as $extra) {
                    if (in_array($extra->atom, $this->variables)) {
                        $extra->isModified = true;
                    }
                }
                break;

            case 'Parametername' :
                $atom->isModified = true;
                break;

            case 'Arrayappend' :
                if (in_array($extras['APPEND']->atom, $this->variables)) {
                    $extras['APPEND']->isModified = true;
                }
                break;

            case 'Preplusplus' :
                if (in_array($extras['PREPLUSPLUS']->atom, $this->variables)) {
                    $extras['PREPLUSPLUS']->isModified = true;
                }
                break;

            case 'Postplusplus' :
                if (in_array($extras['POSTPLUSPLUS']->atom, $this->variables)) {
                    $extras['POSTPLUSPLUS']->isModified = true;
                }
                break;

            default :
//                print $atom->atom.PHP_EOL;
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

declare( strict_types = 1);

namespace Exakat\Tasks\Helpers;

class Nullval extends Plugin {
    const NO_VALUE = null;

    public $name = 'isNull';
    public $type = 'boolean';

    public function run(Atom $atom, array $extras): void {
        // Ignoring $extras['LEFT'] === null
        if ($atom->atom === 'Assignation') {
            if ($atom->code === '=') {
                $atom->isNull =  $extras['RIGHT']->isNull;
            }

            return;
        }

        switch ($atom->atom) {
            case 'Boolean' :
            case 'Integer' :
            case 'Float' :
            case 'String' :
            case 'Addition' :
            case 'Multiplication' :
            case 'Power' :
            case 'Arrayliteral' :
            case 'Not' :
            case 'Logical' :
            case 'Heredoc' :
            case 'Concatenation' :
            case 'Bitshift' :
            case 'Comparison' :
            case 'Staticclass' :
            case 'Sequence' :
            case 'Magicconstant' :
            case 'Identifier' :
                $atom->isNull = 0;
                break;

            case 'Null' :
            case 'Void' :
                $atom->isNull = 1;
                break;

            case 'Parenthesis' :
                $atom->isNull = $extras['CODE']->isNull;
                break;

            case 'Ternary' :
                if ($extras['CONDITION']->isNull) {
                    $atom->isNull = $extras['THEN']->isNull;
                } else {
                    $atom->isNull = $extras['ELSE']->isNull;
                }
                break;

            case 'Constant' :
                $atom->isNull = $extras['VALUE']->isNull;
                break;

            case 'Coalesce' :
                if ($extras['LEFT']->isNull) {
                    $atom->isNull = $extras['LEFT']->isNull;
                } else {
                    $atom->isNull = $extras['RIGHT']->isNull;
                }
                break;

        default :

        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

declare( strict_types = 1);

namespace Exakat\Tasks\Helpers;

class Lock {
    private $path = null;

    public function __construct(string $path, string $name) {
        $b = array_reverse(explode('/', $name));

        $name = $b[1] . '-' . $b[0];
        $this->path = $path . '/' . $name;
    }

    public function check(): bool {
        $fp = @fopen($this->path, 'x');
        if ($fp === false) {
            $this->path = null;
            return false;
        }
        if (flock($fp, LOCK_EX | LOCK_NB)) {
            fwrite($fp, (string) getmypid());
            return true;
        } else {
            $this->path = null;
            return false;
        }
    }

    public function __destruct() {
        if (!empty($this->path) && file_exists($this->path)) {
            $pid = file_get_contents($this->path);

            assert($pid == getmypid(), "Alert : removing wrong pid for $this->path");

            unlink($this->path);
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks\Helpers;

class Php72 extends Php {

    // PHP tokens
    const T_REQUIRE_ONCE                  = 262;
    const T_REQUIRE                       = 261;
    const T_EVAL                          = 260;
    const T_INCLUDE_ONCE                  = 259;
    const T_INCLUDE                       = 258;
    const T_LOGICAL_OR                    = 263;
    const T_LOGICAL_XOR                   = 264;
    const T_LOGICAL_AND                   = 265;
    const T_PRINT                         = 266;
    const T_YIELD                         = 267;
    const T_DOUBLE_ARROW                  = 268;
    const T_YIELD_FROM                    = 269;
    const T_POW_EQUAL                     = 281;
    const T_SR_EQUAL                      = 280;
    const T_SL_EQUAL                      = 279;
    const T_XOR_EQUAL                     = 278;
    const T_OR_EQUAL                      = 277;
    const T_AND_EQUAL                     = 276;
    const T_MOD_EQUAL                     = 275;
    const T_CONCAT_EQUAL                  = 274;
    const T_DIV_EQUAL                     = 273;
    const T_MUL_EQUAL                     = 272;
    const T_MINUS_EQUAL                   = 271;
    const T_PLUS_EQUAL                    = 270;
    const T_COALESCE                      = 282;
    const T_BOOLEAN_OR                    = 283;
    const T_BOOLEAN_AND                   = 284;
    const T_SPACESHIP                     = 289;
    const T_IS_NOT_IDENTICAL              = 288;
    const T_IS_IDENTICAL                  = 287;
    const T_IS_NOT_EQUAL                  = 286;
    const T_IS_EQUAL                      = 285;
    const T_IS_GREATER_OR_EQUAL           = 291;
    const T_IS_SMALLER_OR_EQUAL           = 290;
    const T_SR                            = 293;
    const T_SL                            = 292;
    const T_INSTANCEOF                    = 294;
    const T_UNSET_CAST                    = 303;
    const T_BOOL_CAST                     = 302;
    const T_OBJECT_CAST                   = 301;
    const T_ARRAY_CAST                    = 300;
    const T_STRING_CAST                   = 299;
    const T_DOUBLE_CAST                   = 298;
    const T_INT_CAST                      = 297;
    const T_DEC                           = 296;
    const T_INC                           = 295;
    const T_POW                           = 304;
    const T_CLONE                         = 306;
    const T_NEW                           = 305;
    const T_ELSEIF                        = 308;
    const T_ELSE                          = 309;
    const T_ENDIF                         = 310;
    const T_PUBLIC                        = 316;
    const T_PROTECTED                     = 315;
    const T_PRIVATE                       = 314;
    const T_FINAL                         = 313;
    const T_ABSTRACT                      = 312;
    const T_STATIC                        = 311;
    const T_LNUMBER                       = 317;
    const T_DNUMBER                       = 318;
    const T_STRING                        = 319;
    const T_VARIABLE                      = 320;
    const T_INLINE_HTML                   = 321;
    const T_ENCAPSED_AND_WHITESPACE       = 322;
    const T_CONSTANT_ENCAPSED_STRING      = 323;
    const T_STRING_VARNAME                = 324;
    const T_NUM_STRING                    = 325;
    const T_EXIT                          = 326;
    const T_IF                            = 327;
    const T_ECHO                          = 328;
    const T_DO                            = 329;
    const T_WHILE                         = 330;
    const T_ENDWHILE                      = 331;
    const T_FOR                           = 332;
    const T_ENDFOR                        = 333;
    const T_FOREACH                       = 334;
    const T_ENDFOREACH                    = 335;
    const T_DECLARE                       = 336;
    const T_ENDDECLARE                    = 337;
    const T_AS                            = 338;
    const T_SWITCH                        = 339;
    const T_ENDSWITCH                     = 340;
    const T_CASE                          = 341;
    const T_DEFAULT                       = 342;
    const T_BREAK                         = 343;
    const T_CONTINUE                      = 344;
    const T_GOTO                          = 345;
    const T_FUNCTION                      = 346;
    const T_CONST                         = 347;
    const T_RETURN                        = 348;
    const T_TRY                           = 349;
    const T_CATCH                         = 350;
    const T_FINALLY                       = 351;
    const T_THROW                         = 352;
    const T_USE                           = 353;
    const T_INSTEADOF                     = 354;
    const T_GLOBAL                        = 355;
    const T_VAR                           = 356;
    const T_UNSET                         = 357;
    const T_ISSET                         = 358;
    const T_EMPTY                         = 359;
    const T_HALT_COMPILER                 = 360;
    const T_CLASS                         = 361;
    const T_TRAIT                         = 362;
    const T_INTERFACE                     = 363;
    const T_EXTENDS                       = 364;
    const T_IMPLEMENTS                    = 365;
    const T_OBJECT_OPERATOR               = 366;
    const T_LIST                          = 367;
    const T_ARRAY                         = 368;
    const T_CALLABLE                      = 369;
    const T_LINE                          = 370;
    const T_FILE                          = 371;
    const T_DIR                           = 372;
    const T_CLASS_C                       = 373;
    const T_TRAIT_C                       = 374;
    const T_METHOD_C                      = 375;
    const T_FUNC_C                        = 376;
    const T_COMMENT                       = 377;
    const T_DOC_COMMENT                   = 378;
    const T_OPEN_TAG                      = 379;
    const T_OPEN_TAG_WITH_ECHO            = 380;
    const T_CLOSE_TAG                     = 381;
    const T_WHITESPACE                    = 382;
    const T_START_HEREDOC                 = 383;
    const T_END_HEREDOC                   = 384;
    const T_DOLLAR_OPEN_CURLY_BRACES      = 385;
    const T_CURLY_OPEN                    = 386;
    const T_PAAMAYIM_NEKUDOTAYIM          = 387;
    const T_NAMESPACE                     = 388;
    const T_NS_C                          = 389;
    const T_NS_SEPARATOR                  = 390;
    const T_ELLIPSIS                      = 391;
    const T_DOUBLE_COLON                  = 387;

    const T_COALESCE_EQUAL                = 1000;
    const T_FN                            = 1000;
    const T_BAD_CHARACTER                 = 1000;
    const T_CHARACTER                     = 1000;
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks\Helpers;

class Php73 extends Php {

    // PHP tokens
    const T_REQUIRE_ONCE                  = 258;
    const T_REQUIRE                       = 259;
    const T_EVAL                          = 260;
    const T_INCLUDE_ONCE                  = 261;
    const T_INCLUDE                       = 262;
    const T_LOGICAL_OR                    = 263;
    const T_LOGICAL_XOR                   = 264;
    const T_LOGICAL_AND                   = 265;
    const T_PRINT                         = 266;
    const T_YIELD                         = 267;
    const T_DOUBLE_ARROW                  = 268;
    const T_YIELD_FROM                    = 269;
    const T_POW_EQUAL                     = 270;
    const T_SR_EQUAL                      = 271;
    const T_SL_EQUAL                      = 272;
    const T_XOR_EQUAL                     = 273;
    const T_OR_EQUAL                      = 274;
    const T_AND_EQUAL                     = 275;
    const T_MOD_EQUAL                     = 276;
    const T_CONCAT_EQUAL                  = 277;
    const T_DIV_EQUAL                     = 278;
    const T_MUL_EQUAL                     = 279;
    const T_MINUS_EQUAL                   = 280;
    const T_PLUS_EQUAL                    = 281;
    const T_COALESCE                      = 282;
    const T_BOOLEAN_OR                    = 283;
    const T_BOOLEAN_AND                   = 284;
    const T_SPACESHIP                     = 285;
    const T_IS_NOT_IDENTICAL              = 286;
    const T_IS_IDENTICAL                  = 287;
    const T_IS_NOT_EQUAL                  = 288;
    const T_IS_EQUAL                      = 289;
    const T_IS_GREATER_OR_EQUAL           = 290;
    const T_IS_SMALLER_OR_EQUAL           = 291;
    const T_SR                            = 292;
    const T_SL                            = 293;
    const T_INSTANCEOF                    = 294;
    const T_UNSET_CAST                    = 295;
    const T_BOOL_CAST                     = 296;
    const T_OBJECT_CAST                   = 297;
    const T_ARRAY_CAST                    = 298;
    const T_STRING_CAST                   = 299;
    const T_DOUBLE_CAST                   = 300;
    const T_INT_CAST                      = 301;
    const T_DEC                           = 302;
    const T_INC                           = 303;
    const T_POW                           = 304;
    const T_CLONE                         = 305;
    const T_NEW                           = 306;
    const T_ELSEIF                        = 308;
    const T_ELSE                          = 309;
    const T_ENDIF                         = 310;
    const T_PUBLIC                        = 311;
    const T_PROTECTED                     = 312;
    const T_PRIVATE                       = 313;
    const T_FINAL                         = 314;
    const T_ABSTRACT                      = 315;
    const T_STATIC                        = 316;
    const T_LNUMBER                       = 317;
    const T_DNUMBER                       = 318;
    const T_STRING                        = 319;
    const T_VARIABLE                      = 320;
    const T_INLINE_HTML                   = 321;
    const T_ENCAPSED_AND_WHITESPACE       = 322;
    const T_CONSTANT_ENCAPSED_STRING      = 323;
    const T_STRING_VARNAME                = 324;
    const T_NUM_STRING                    = 325;
    const T_EXIT                          = 326;
    const T_IF                            = 327;
    const T_ECHO                          = 328;
    const T_DO                            = 329;
    const T_WHILE                         = 330;
    const T_ENDWHILE                      = 331;
    const T_FOR                           = 332;
    const T_ENDFOR                        = 333;
    const T_FOREACH                       = 334;
    const T_ENDFOREACH                    = 335;
    const T_DECLARE                       = 336;
    const T_ENDDECLARE                    = 337;
    const T_AS                            = 338;
    const T_SWITCH                        = 339;
    const T_ENDSWITCH                     = 340;
    const T_CASE                          = 341;
    const T_DEFAULT                       = 342;
    const T_BREAK                         = 343;
    const T_CONTINUE                      = 344;
    const T_GOTO                          = 345;
    const T_FUNCTION                      = 346;
    const T_CONST                         = 347;
    const T_RETURN                        = 348;
    const T_TRY                           = 349;
    const T_CATCH                         = 350;
    const T_FINALLY                       = 351;
    const T_THROW                         = 352;
    const T_USE                           = 353;
    const T_INSTEADOF                     = 354;
    const T_GLOBAL                        = 355;
    const T_VAR                           = 356;
    const T_UNSET                         = 357;
    const T_ISSET                         = 358;
    const T_EMPTY                         = 359;
    const T_HALT_COMPILER                 = 360;
    const T_CLASS                         = 361;
    const T_TRAIT                         = 362;
    const T_INTERFACE                     = 363;
    const T_EXTENDS                       = 364;
    const T_IMPLEMENTS                    = 365;
    const T_OBJECT_OPERATOR               = 366;
    const T_LIST                          = 367;
    const T_ARRAY                         = 368;
    const T_CALLABLE                      = 369;
    const T_LINE                          = 370;
    const T_FILE                          = 371;
    const T_DIR                           = 372;
    const T_CLASS_C                       = 373;
    const T_TRAIT_C                       = 374;
    const T_METHOD_C                      = 375;
    const T_FUNC_C                        = 376;
    const T_COMMENT                       = 377;
    const T_DOC_COMMENT                   = 378;
    const T_OPEN_TAG                      = 379;
    const T_OPEN_TAG_WITH_ECHO            = 380;
    const T_CLOSE_TAG                     = 381;
    const T_WHITESPACE                    = 382;
    const T_START_HEREDOC                 = 383;
    const T_END_HEREDOC                   = 384;
    const T_DOLLAR_OPEN_CURLY_BRACES      = 385;
    const T_CURLY_OPEN                    = 386;
    const T_PAAMAYIM_NEKUDOTAYIM          = 387;
    const T_NAMESPACE                     = 388;
    const T_NS_C                          = 389;
    const T_NS_SEPARATOR                  = 390;
    const T_ELLIPSIS                      = 391;
    const T_DOUBLE_COLON                  = 387;

    const T_COALESCE_EQUAL                = 1000;
    const T_FN                            = 1000;
    const T_BAD_CHARACTER                 = 1000;
    const T_CHARACTER                     = 1000;
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks\Helpers;

class Php71 extends Php {

    // PHP tokens
    const T_REQUIRE_ONCE                  = 262;
    const T_REQUIRE                       = 261;
    const T_EVAL                          = 260;
    const T_INCLUDE_ONCE                  = 259;
    const T_INCLUDE                       = 258;
    const T_LOGICAL_OR                    = 263;
    const T_LOGICAL_XOR                   = 264;
    const T_LOGICAL_AND                   = 265;
    const T_PRINT                         = 266;
    const T_YIELD                         = 267;
    const T_DOUBLE_ARROW                  = 268;
    const T_YIELD_FROM                    = 269;
    const T_POW_EQUAL                     = 281;
    const T_SR_EQUAL                      = 280;
    const T_SL_EQUAL                      = 279;
    const T_XOR_EQUAL                     = 278;
    const T_OR_EQUAL                      = 277;
    const T_AND_EQUAL                     = 276;
    const T_MOD_EQUAL                     = 275;
    const T_CONCAT_EQUAL                  = 274;
    const T_DIV_EQUAL                     = 273;
    const T_MUL_EQUAL                     = 272;
    const T_MINUS_EQUAL                   = 271;
    const T_PLUS_EQUAL                    = 270;
    const T_COALESCE                      = 282;
    const T_BOOLEAN_OR                    = 283;
    const T_BOOLEAN_AND                   = 284;
    const T_SPACESHIP                     = 289;
    const T_IS_NOT_IDENTICAL              = 288;
    const T_IS_IDENTICAL                  = 287;
    const T_IS_NOT_EQUAL                  = 286;
    const T_IS_EQUAL                      = 285;
    const T_IS_GREATER_OR_EQUAL           = 291;
    const T_IS_SMALLER_OR_EQUAL           = 290;
    const T_SR                            = 293;
    const T_SL                            = 292;
    const T_INSTANCEOF                    = 294;
    const T_UNSET_CAST                    = 303;
    const T_BOOL_CAST                     = 302;
    const T_OBJECT_CAST                   = 301;
    const T_ARRAY_CAST                    = 300;
    const T_STRING_CAST                   = 299;
    const T_DOUBLE_CAST                   = 298;
    const T_INT_CAST                      = 297;
    const T_DEC                           = 296;
    const T_INC                           = 295;
    const T_POW                           = 304;
    const T_CLONE                         = 306;
    const T_NEW                           = 305;
    const T_ELSEIF                        = 308;
    const T_ELSE                          = 309;
    const T_ENDIF                         = 310;
    const T_PUBLIC                        = 316;
    const T_PROTECTED                     = 315;
    const T_PRIVATE                       = 314;
    const T_FINAL                         = 313;
    const T_ABSTRACT                      = 312;
    const T_STATIC                        = 311;
    const T_LNUMBER                       = 317;
    const T_DNUMBER                       = 318;
    const T_STRING                        = 319;
    const T_VARIABLE                      = 320;
    const T_INLINE_HTML                   = 321;
    const T_ENCAPSED_AND_WHITESPACE       = 322;
    const T_CONSTANT_ENCAPSED_STRING      = 323;
    const T_STRING_VARNAME                = 324;
    const T_NUM_STRING                    = 325;
    const T_EXIT                          = 326;
    const T_IF                            = 327;
    const T_ECHO                          = 328;
    const T_DO                            = 329;
    const T_WHILE                         = 330;
    const T_ENDWHILE                      = 331;
    const T_FOR                           = 332;
    const T_ENDFOR                        = 333;
    const T_FOREACH                       = 334;
    const T_ENDFOREACH                    = 335;
    const T_DECLARE                       = 336;
    const T_ENDDECLARE                    = 337;
    const T_AS                            = 338;
    const T_SWITCH                        = 339;
    const T_ENDSWITCH                     = 340;
    const T_CASE                          = 341;
    const T_DEFAULT                       = 342;
    const T_BREAK                         = 343;
    const T_CONTINUE                      = 344;
    const T_GOTO                          = 345;
    const T_FUNCTION                      = 346;
    const T_CONST                         = 347;
    const T_RETURN                        = 348;
    const T_TRY                           = 349;
    const T_CATCH                         = 350;
    const T_FINALLY                       = 351;
    const T_THROW                         = 352;
    const T_USE                           = 353;
    const T_INSTEADOF                     = 354;
    const T_GLOBAL                        = 355;
    const T_VAR                           = 356;
    const T_UNSET                         = 357;
    const T_ISSET                         = 358;
    const T_EMPTY                         = 359;
    const T_HALT_COMPILER                 = 360;
    const T_CLASS                         = 361;
    const T_TRAIT                         = 362;
    const T_INTERFACE                     = 363;
    const T_EXTENDS                       = 364;
    const T_IMPLEMENTS                    = 365;
    const T_OBJECT_OPERATOR               = 366;
    const T_LIST                          = 367;
    const T_ARRAY                         = 368;
    const T_CALLABLE                      = 369;
    const T_LINE                          = 370;
    const T_FILE                          = 371;
    const T_DIR                           = 372;
    const T_CLASS_C                       = 373;
    const T_TRAIT_C                       = 374;
    const T_METHOD_C                      = 375;
    const T_FUNC_C                        = 376;
    const T_COMMENT                       = 377;
    const T_DOC_COMMENT                   = 378;
    const T_OPEN_TAG                      = 379;
    const T_OPEN_TAG_WITH_ECHO            = 380;
    const T_CLOSE_TAG                     = 381;
    const T_WHITESPACE                    = 382;
    const T_START_HEREDOC                 = 383;
    const T_END_HEREDOC                   = 384;
    const T_DOLLAR_OPEN_CURLY_BRACES      = 385;
    const T_CURLY_OPEN                    = 386;
    const T_PAAMAYIM_NEKUDOTAYIM          = 387;
    const T_NAMESPACE                     = 388;
    const T_NS_C                          = 389;
    const T_NS_SEPARATOR                  = 390;
    const T_ELLIPSIS                      = 391;
    const T_DOUBLE_COLON                  = 387;

    const T_COALESCE_EQUAL                = 1000;
    const T_FN                            = 1000;
    const T_BAD_CHARACTER                 = 1000;
    const T_CHARACTER                     = 1000;
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/



namespace Exakat\Tasks\Helpers;

abstract class Plugin {
    public function __construct() {}

    abstract public function run(Atom $atom, array $extras): void;
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks\Helpers;

class NestedCollector {
    const THE_END = 1234;

    private $previous = array();
    private $current = array(self::THE_END);

    public function push(): void {
        $this->previous[] = $this->current;
        $this->current = array();
    }

    public function pop(): void {
        $this->current = array_pop($this->previous);
    }

    public function add($arg): void {
        $this->current[] = $arg;
    }

    public function getAll(): array {
        $return = $this->current;
        $this->current = array();

        return $return;
    }

}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks\Helpers;

class Php70 extends Php {

    // PHP tokens
    const T_REQUIRE_ONCE                  = 262;
    const T_REQUIRE                       = 261;
    const T_EVAL                          = 260;
    const T_INCLUDE_ONCE                  = 259;
    const T_INCLUDE                       = 258;
    const T_LOGICAL_OR                    = 263;
    const T_LOGICAL_XOR                   = 264;
    const T_LOGICAL_AND                   = 265;
    const T_PRINT                         = 266;
    const T_YIELD                         = 267;
    const T_DOUBLE_ARROW                  = 268;
    const T_YIELD_FROM                    = 269;
    const T_POW_EQUAL                     = 281;
    const T_SR_EQUAL                      = 280;
    const T_SL_EQUAL                      = 279;
    const T_XOR_EQUAL                     = 278;
    const T_OR_EQUAL                      = 277;
    const T_AND_EQUAL                     = 276;
    const T_MOD_EQUAL                     = 275;
    const T_CONCAT_EQUAL                  = 274;
    const T_DIV_EQUAL                     = 273;
    const T_MUL_EQUAL                     = 272;
    const T_MINUS_EQUAL                   = 271;
    const T_PLUS_EQUAL                    = 270;
    const T_COALESCE                      = 282;
    const T_BOOLEAN_OR                    = 283;
    const T_BOOLEAN_AND                   = 284;
    const T_SPACESHIP                     = 289;
    const T_IS_NOT_IDENTICAL              = 288;
    const T_IS_IDENTICAL                  = 287;
    const T_IS_NOT_EQUAL                  = 286;
    const T_IS_EQUAL                      = 285;
    const T_IS_GREATER_OR_EQUAL           = 291;
    const T_IS_SMALLER_OR_EQUAL           = 290;
    const T_SR                            = 293;
    const T_SL                            = 292;
    const T_INSTANCEOF                    = 294;
    const T_UNSET_CAST                    = 303;
    const T_BOOL_CAST                     = 302;
    const T_OBJECT_CAST                   = 301;
    const T_ARRAY_CAST                    = 300;
    const T_STRING_CAST                   = 299;
    const T_DOUBLE_CAST                   = 298;
    const T_INT_CAST                      = 297;
    const T_DEC                           = 296;
    const T_INC                           = 295;
    const T_POW                           = 304;
    const T_CLONE                         = 306;
    const T_NEW                           = 305;
    const T_ELSEIF                        = 308;
    const T_ELSE                          = 309;
    const T_ENDIF                         = 310;
    const T_PUBLIC                        = 316;
    const T_PROTECTED                     = 315;
    const T_PRIVATE                       = 314;
    const T_FINAL                         = 313;
    const T_ABSTRACT                      = 312;
    const T_STATIC                        = 311;
    const T_LNUMBER                       = 317;
    const T_DNUMBER                       = 318;
    const T_STRING                        = 319;
    const T_VARIABLE                      = 320;
    const T_INLINE_HTML                   = 321;
    const T_ENCAPSED_AND_WHITESPACE       = 322;
    const T_CONSTANT_ENCAPSED_STRING      = 323;
    const T_STRING_VARNAME                = 324;
    const T_NUM_STRING                    = 325;
    const T_EXIT                          = 326;
    const T_IF                            = 327;
    const T_ECHO                          = 328;
    const T_DO                            = 329;
    const T_WHILE                         = 330;
    const T_ENDWHILE                      = 331;
    const T_FOR                           = 332;
    const T_ENDFOR                        = 333;
    const T_FOREACH                       = 334;
    const T_ENDFOREACH                    = 335;
    const T_DECLARE                       = 336;
    const T_ENDDECLARE                    = 337;
    const T_AS                            = 338;
    const T_SWITCH                        = 339;
    const T_ENDSWITCH                     = 340;
    const T_CASE                          = 341;
    const T_DEFAULT                       = 342;
    const T_BREAK                         = 343;
    const T_CONTINUE                      = 344;
    const T_GOTO                          = 345;
    const T_FUNCTION                      = 346;
    const T_CONST                         = 347;
    const T_RETURN                        = 348;
    const T_TRY                           = 349;
    const T_CATCH                         = 350;
    const T_FINALLY                       = 351;
    const T_THROW                         = 352;
    const T_USE                           = 353;
    const T_INSTEADOF                     = 354;
    const T_GLOBAL                        = 355;
    const T_VAR                           = 356;
    const T_UNSET                         = 357;
    const T_ISSET                         = 358;
    const T_EMPTY                         = 359;
    const T_HALT_COMPILER                 = 360;
    const T_CLASS                         = 361;
    const T_TRAIT                         = 362;
    const T_INTERFACE                     = 363;
    const T_EXTENDS                       = 364;
    const T_IMPLEMENTS                    = 365;
    const T_OBJECT_OPERATOR               = 366;
    const T_LIST                          = 367;
    const T_ARRAY                         = 368;
    const T_CALLABLE                      = 369;
    const T_LINE                          = 370;
    const T_FILE                          = 371;
    const T_DIR                           = 372;
    const T_CLASS_C                       = 373;
    const T_TRAIT_C                       = 374;
    const T_METHOD_C                      = 375;
    const T_FUNC_C                        = 376;
    const T_COMMENT                       = 377;
    const T_DOC_COMMENT                   = 378;
    const T_OPEN_TAG                      = 379;
    const T_OPEN_TAG_WITH_ECHO            = 380;
    const T_CLOSE_TAG                     = 381;
    const T_WHITESPACE                    = 382;
    const T_START_HEREDOC                 = 383;
    const T_END_HEREDOC                   = 384;
    const T_DOLLAR_OPEN_CURLY_BRACES      = 385;
    const T_CURLY_OPEN                    = 386;
    const T_PAAMAYIM_NEKUDOTAYIM          = 387;
    const T_NAMESPACE                     = 388;
    const T_NS_C                          = 389;
    const T_NS_SEPARATOR                  = 390;
    const T_ELLIPSIS                      = 391;
    const T_DOUBLE_COLON                  = 387;

    const T_COALESCE_EQUAL                = 1000;
    const T_FN                            = 1000;
    const T_BAD_CHARACTER                 = 1000;
    const T_CHARACTER                     = 1000;
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks\Helpers;

class Php74 extends Php {

    // PHP tokens
    const T_INCLUDE                       = 259;
    const T_INCLUDE_ONCE                  = 260;
    const T_REQUIRE                       = 261;
    const T_REQUIRE_ONCE                  = 262;
    const T_LOGICAL_OR                    = 263;
    const T_LOGICAL_XOR                   = 264;
    const T_LOGICAL_AND                   = 265;
    const T_PRINT                         = 266;
    const T_YIELD                         = 267;
    const T_DOUBLE_ARROW                  = 268;
    const T_YIELD_FROM                    = 269;
    const T_PLUS_EQUAL                    = 270;
    const T_MINUS_EQUAL                   = 271;
    const T_MUL_EQUAL                     = 272;
    const T_DIV_EQUAL                     = 273;
    const T_CONCAT_EQUAL                  = 274;
    const T_MOD_EQUAL                     = 275;
    const T_AND_EQUAL                     = 276;
    const T_OR_EQUAL                      = 277;
    const T_XOR_EQUAL                     = 278;
    const T_SL_EQUAL                      = 279;
    const T_SR_EQUAL                      = 280;
    const T_POW_EQUAL                     = 281;
    const T_COALESCE_EQUAL                = 282;
    const T_COALESCE                      = 283;
    const T_BOOLEAN_OR                    = 284;
    const T_BOOLEAN_AND                   = 285;
    const T_IS_EQUAL                      = 286;
    const T_IS_NOT_EQUAL                  = 287;
    const T_IS_IDENTICAL                  = 288;
    const T_IS_NOT_IDENTICAL              = 289;
    const T_SPACESHIP                     = 290;
    const T_IS_SMALLER_OR_EQUAL           = 291;
    const T_IS_GREATER_OR_EQUAL           = 292;
    const T_SL                            = 293;
    const T_SR                            = 294;
    const T_INSTANCEOF                    = 295;
    const T_INT_CAST                      = 296;
    const T_DOUBLE_CAST                   = 297;
    const T_STRING_CAST                   = 298;
    const T_ARRAY_CAST                    = 299;
    const T_OBJECT_CAST                   = 300;
    const T_BOOL_CAST                     = 301;
    const T_UNSET_CAST                    = 302;
    const T_POW                           = 303;
    const T_NEW                           = 304;
    const T_CLONE                         = 305;
    const T_ELSEIF                        = 307;
    const T_ELSE                          = 308;
    const T_LNUMBER                       = 309;
    const T_DNUMBER                       = 310;
    const T_STRING                        = 311;
    const T_VARIABLE                      = 312;
    const T_INLINE_HTML                   = 313;
    const T_ENCAPSED_AND_WHITESPACE       = 314;
    const T_CONSTANT_ENCAPSED_STRING      = 315;
    const T_STRING_VARNAME                = 316;
    const T_NUM_STRING                    = 317;
    const T_EVAL                          = 318;
    const T_INC                           = 319;
    const T_DEC                           = 320;
    const T_EXIT                          = 321;
    const T_IF                            = 322;
    const T_ENDIF                         = 323;
    const T_ECHO                          = 324;
    const T_DO                            = 325;
    const T_WHILE                         = 326;
    const T_ENDWHILE                      = 327;
    const T_FOR                           = 328;
    const T_ENDFOR                        = 329;
    const T_FOREACH                       = 330;
    const T_ENDFOREACH                    = 331;
    const T_DECLARE                       = 332;
    const T_ENDDECLARE                    = 333;
    const T_AS                            = 334;
    const T_SWITCH                        = 335;
    const T_ENDSWITCH                     = 336;
    const T_CASE                          = 337;
    const T_DEFAULT                       = 338;
    const T_BREAK                         = 339;
    const T_CONTINUE                      = 340;
    const T_GOTO                          = 341;
    const T_FUNCTION                      = 342;
    const T_FN                            = 343;
    const T_CONST                         = 344;
    const T_RETURN                        = 345;
    const T_TRY                           = 346;
    const T_CATCH                         = 347;
    const T_FINALLY                       = 348;
    const T_THROW                         = 349;
    const T_USE                           = 350;
    const T_INSTEADOF                     = 351;
    const T_GLOBAL                        = 352;
    const T_STATIC                        = 353;
    const T_ABSTRACT                      = 354;
    const T_FINAL                         = 355;
    const T_PRIVATE                       = 356;
    const T_PROTECTED                     = 357;
    const T_PUBLIC                        = 358;
    const T_VAR                           = 359;
    const T_UNSET                         = 360;
    const T_ISSET                         = 361;
    const T_EMPTY                         = 362;
    const T_HALT_COMPILER                 = 363;
    const T_CLASS                         = 364;
    const T_TRAIT                         = 365;
    const T_INTERFACE                     = 366;
    const T_EXTENDS                       = 367;
    const T_IMPLEMENTS                    = 368;
    const T_OBJECT_OPERATOR               = 369;
    const T_LIST                          = 370;
    const T_ARRAY                         = 371;
    const T_CALLABLE                      = 372;
    const T_LINE                          = 373;
    const T_FILE                          = 374;
    const T_DIR                           = 375;
    const T_CLASS_C                       = 376;
    const T_TRAIT_C                       = 377;
    const T_METHOD_C                      = 378;
    const T_FUNC_C                        = 379;
    const T_COMMENT                       = 380;
    const T_DOC_COMMENT                   = 381;
    const T_OPEN_TAG                      = 382;
    const T_OPEN_TAG_WITH_ECHO            = 383;
    const T_CLOSE_TAG                     = 384;
    const T_WHITESPACE                    = 385;
    const T_START_HEREDOC                 = 386;
    const T_END_HEREDOC                   = 387;
    const T_DOLLAR_OPEN_CURLY_BRACES      = 388;
    const T_CURLY_OPEN                    = 389;
    const T_PAAMAYIM_NEKUDOTAYIM          = 390;
    const T_NAMESPACE                     = 391;
    const T_NS_C                          = 392;
    const T_NS_SEPARATOR                  = 393;
    const T_ELLIPSIS                      = 394;
    const T_BAD_CHARACTER                 = 395;
    const T_DOUBLE_COLON                  = 390;
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks\Helpers;

class Calls {
    private $callsSqlite   = null;

    private $definitions = array();
    private $calls       = array();
    private $globals     = array();

    public function __construct(\Sqlite3 $sqlite) {
        $this->callsSqlite = $sqlite;

        $calls = <<<'SQL'
CREATE TABLE IF NOT EXISTS calls (
    type STRING,
    fullnspath STRING,
    globalpath STRING,
    atom STRING,
    id INTEGER
)
SQL;
        $this->callsSqlite->query($calls);

        $definitions = <<<'SQL'
CREATE TABLE IF NOT EXISTS definitions (
    type STRING,
    fullnspath STRING,
    globalpath STRING,
    atom STRING,
    id INTEGER
)
SQL;
        $this->callsSqlite->query($definitions);

        $definitions = <<<'SQL'
CREATE TABLE IF NOT EXISTS globals (
    origin INTEGER,
    destination INTEGER
)
SQL;
        $this->callsSqlite->query($definitions);
    }

    public function reset(): void {
        $this->calls       = array();
        $this->definitions = array();
        $this->globals     = array();
    }

    public function save(): void {
        if (!empty($this->calls)) {
            $chunks = array_chunk($this->calls, SQLITE_CHUNK_SIZE);
            foreach($chunks as $chunk) {
                $query = 'INSERT INTO calls VALUES ' . implode(', ', $chunk);
                $this->callsSqlite->query($query);
            }
            $this->calls = array();
        }

        if (!empty($this->definitions)) {
            $chunks = array_chunk($this->definitions, SQLITE_CHUNK_SIZE);
            foreach($chunks as $chunk) {
                $query = 'INSERT INTO definitions VALUES ' . implode(', ', $chunk);
                $this->callsSqlite->query($query);
            }
            $this->definitions = array();
        }

        if (!empty($this->globals)) {
            $chunks = array_chunk($this->globals, SQLITE_CHUNK_SIZE);
            foreach($chunks as $chunk) {
                $query = 'INSERT INTO globals VALUES ' . implode(', ', $chunk);
                $this->callsSqlite->query($query);
            }
            $this->globals = array();
        }
    }

    public function addGlobal(int $origin, int $destination): void {
        $this->globals[] = "('{$origin}','{$destination}')";
    }

    public function addCall(string $type, string $fullnspath, Atom $call): void {
        if (empty($fullnspath)) {
            return;
        }

        // No need for This
        if (in_array($call->atom, array('Parent',
                                        'Isset',
                                        'List',
                                        'Empty',
                                        'Eval',
                                        'Exit',
                                        ))) {
            return;
        }

        if ($type === 'class') {
            $globalpath = $fullnspath;
        } else {
            $globalpath = $this->makeGlobalPath($fullnspath);
        }

        $this->calls[] = "('{$type}',
                           '{$this->callsSqlite->escapeString($fullnspath)}',
                           '{$this->callsSqlite->escapeString($globalpath)}',
                           '{$call->atom}',
                           '{$call->id}')";
    }

    public function addNoDelimiterCall(Atom $call): void {
        if (empty($call->noDelimiter)) {
            return; // Can't be a class anyway.
        }
        if ((int) $call->noDelimiter !== 0) {
            return; // Can't be a class anyway.
        }
        // single : is OK
        // \ is OK (for hardcoded path)
        if (preg_match_all('/[$ #?;%^\*\'\"\. <>~&,|\(\){}\[\]\/\s=\+!`@\-]/is', $call->noDelimiter, $r)) {
            return; // Can't be a class anyway.
        }

        if (strpos($call->noDelimiter, '::') === false) {
            $types = array('function', 'class');

            $fullnspath = mb_strtolower($call->noDelimiter);
            if (empty($fullnspath) || $fullnspath[0] !== '\\') {
                $fullnspath = '\\' . $fullnspath;
            }
            if (strpos($fullnspath, '\\\\') !== false) {
                $fullnspath = stripslashes($fullnspath);
            }
        } else {
            $fullnspath = mb_strtolower($call->noDelimiter);

            if (empty($fullnspath)) {
                return;
            } elseif ($fullnspath[0] === ':') {
                return;
            } elseif ($fullnspath[0] !== '\\') {
                $fullnspath = '\\' . $fullnspath;
            }

            $types = array('staticmethod', 'staticconstant');
        }

        $atom = 'String';

        foreach($types as $type) {
            $globalpath = $this->makeGlobalPath($fullnspath);

            $this->calls[] = "('$type',
                               '{$this->callsSqlite->escapeString($fullnspath)}',
                               '{$this->callsSqlite->escapeString($globalpath)}',
                               '{$atom}',
                               '{$call->id}')";
        }
    }

    public function addDefinition(string $type, string $fullnspath, Atom $definition): void {
        if (empty($fullnspath)) {
            return;
        }

        $globalpath = $this->makeGlobalPath($fullnspath);

        $this->definitions[] = "('{$type}',
                                 '{$this->callsSqlite->escapeString($fullnspath)}',
                                 '{$this->callsSqlite->escapeString($globalpath)}',
                                 '{$definition->atom}',
                                 '{$definition->id}')";
    }

    private function makeGlobalPath(string $fullnspath): string {
        if ($fullnspath === 'undefined') {
            $globalpath = '';
        } elseif (preg_match('/(\\\\[^\\\\]+)$/', $fullnspath, $r)) {
            $globalpath = $r[1];
        } else {
            $globalpath = substr($fullnspath, (int) strrpos($fullnspath, '\\'));
        }

        return $globalpath;
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks\Helpers;

class Php53 extends Php {
    // PHP tokens
    const T_REQUIRE_ONCE                  = 258;
    const T_REQUIRE                       = 259;
    const T_EVAL                          = 260;
    const T_INCLUDE_ONCE                  = 261;
    const T_INCLUDE                       = 262;
    const T_LOGICAL_OR                    = 263;
    const T_LOGICAL_XOR                   = 264;
    const T_LOGICAL_AND                   = 265;
    const T_PRINT                         = 266;
    const T_SR_EQUAL                      = 267;
    const T_SL_EQUAL                      = 268;
    const T_XOR_EQUAL                     = 269;
    const T_OR_EQUAL                      = 270;
    const T_AND_EQUAL                     = 271;
    const T_MOD_EQUAL                     = 272;
    const T_CONCAT_EQUAL                  = 273;
    const T_DIV_EQUAL                     = 274;
    const T_MUL_EQUAL                     = 275;
    const T_MINUS_EQUAL                   = 276;
    const T_PLUS_EQUAL                    = 277;
    const T_BOOLEAN_OR                    = 278;
    const T_BOOLEAN_AND                   = 279;
    const T_IS_NOT_IDENTICAL              = 280;
    const T_IS_IDENTICAL                  = 281;
    const T_IS_NOT_EQUAL                  = 282;
    const T_IS_EQUAL                      = 283;
    const T_IS_GREATER_OR_EQUAL           = 284;
    const T_IS_SMALLER_OR_EQUAL           = 285;
    const T_SR                            = 286;
    const T_SL                            = 287;
    const T_INSTANCEOF                    = 288;
    const T_UNSET_CAST                    = 289;
    const T_BOOL_CAST                     = 290;
    const T_OBJECT_CAST                   = 291;
    const T_ARRAY_CAST                    = 292;
    const T_STRING_CAST                   = 293;
    const T_DOUBLE_CAST                   = 294;
    const T_INT_CAST                      = 295;
    const T_DEC                           = 296;
    const T_INC                           = 297;
    const T_CLONE                         = 298;
    const T_NEW                           = 299;
    const T_EXIT                          = 300;
    const T_IF                            = 301;
    const T_ELSEIF                        = 302;
    const T_ELSE                          = 303;
    const T_ENDIF                         = 304;
    const T_LNUMBER                       = 305;
    const T_DNUMBER                       = 306;
    const T_STRING                        = 307;
    const T_STRING_VARNAME                = 308;
    const T_VARIABLE                      = 309;
    const T_NUM_STRING                    = 310;
    const T_INLINE_HTML                   = 311;
    const T_CHARACTER                     = 312;
    const T_BAD_CHARACTER                 = 313;
    const T_ENCAPSED_AND_WHITESPACE       = 314;
    const T_CONSTANT_ENCAPSED_STRING      = 315;
    const T_ECHO                          = 316;
    const T_DO                            = 317;
    const T_WHILE                         = 318;
    const T_ENDWHILE                      = 319;
    const T_FOR                           = 320;
    const T_ENDFOR                        = 321;
    const T_FOREACH                       = 322;
    const T_ENDFOREACH                    = 323;
    const T_DECLARE                       = 324;
    const T_ENDDECLARE                    = 325;
    const T_AS                            = 326;
    const T_SWITCH                        = 327;
    const T_ENDSWITCH                     = 328;
    const T_CASE                          = 329;
    const T_DEFAULT                       = 330;
    const T_BREAK                         = 331;
    const T_CONTINUE                      = 332;
    const T_GOTO                          = 333;
    const T_FUNCTION                      = 334;
    const T_CONST                         = 335;
    const T_RETURN                        = 336;
    const T_TRY                           = 337;
    const T_CATCH                         = 338;
    const T_THROW                         = 339;
    const T_USE                           = 340;
    const T_GLOBAL                        = 341;
    const T_PUBLIC                        = 342;
    const T_PROTECTED                     = 343;
    const T_PRIVATE                       = 344;
    const T_FINAL                         = 345;
    const T_ABSTRACT                      = 346;
    const T_STATIC                        = 347;
    const T_VAR                           = 348;
    const T_UNSET                         = 349;
    const T_ISSET                         = 350;
    const T_EMPTY                         = 351;
    const T_HALT_COMPILER                 = 352;
    const T_CLASS                         = 353;
    const T_INTERFACE                     = 354;
    const T_EXTENDS                       = 355;
    const T_IMPLEMENTS                    = 356;
    const T_OBJECT_OPERATOR               = 357;
    const T_DOUBLE_ARROW                  = 358;
    const T_LIST                          = 359;
    const T_ARRAY                         = 360;
    const T_CLASS_C                       = 361;
    const T_METHOD_C                      = 362;
    const T_FUNC_C                        = 363;
    const T_LINE                          = 364;
    const T_FILE                          = 365;
    const T_COMMENT                       = 366;
    const T_DOC_COMMENT                   = 367;
    const T_OPEN_TAG                      = 368;
    const T_OPEN_TAG_WITH_ECHO            = 369;
    const T_CLOSE_TAG                     = 370;
    const T_WHITESPACE                    = 371;
    const T_START_HEREDOC                 = 372;
    const T_END_HEREDOC                   = 373;
    const T_DOLLAR_OPEN_CURLY_BRACES      = 374;
    const T_CURLY_OPEN                    = 375;
    const T_PAAMAYIM_NEKUDOTAYIM          = 376;
    const T_NAMESPACE                     = 377;
    const T_NS_C                          = 378;
    const T_DIR                           = 379;
    const T_NS_SEPARATOR                  = 380;
    const T_DOUBLE_COLON                  = 376;

    const T_SPACESHIP                     = 1000;
    const T_YIELD_FROM                    = 1000;
    const T_COALESCE                      = 1000;
    const T_COALESCE_EQUAL                = 1000;
    const T_FN                            = 1000;
    const T_POW_EQUAL                     = 1000;
    const T_POW                           = 1000;
    const T_ELLIPSIS                      = 1000;
}
?>
<?php
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

declare (strict_types = 1);

namespace Exakat\Tasks\Helpers;

use Exakat\Exceptions\NoPrecedence;

class Precedence {
    public const WITH_SELF = true;
    public const WITHOUT_SELF = false;

    private $precedence  = array();
    private $definitions = array(
                        'T_OBJECT_OPERATOR'             => 0,
                        'T_DOUBLE_COLON'                => 0,
                        'T_DOLLAR'                      => 0,
                        'T_STATIC'                      => 0,
                        'T_EXIT'                        => 0,

                        'T_CLONE'                       => 1,
                        'T_NEW'                         => 1,

                        'T_OPEN_BRACKET'                => 2,

                        'T_POW'                         => 3,

                        'T_INC'                         => 4,
                        'T_DEC'                         => 4,
                        'T_ARRAY_CAST'                  => 4,
                        'T_BOOL_CAST'                   => 4,
                        'T_DOUBLE_CAST'                 => 4,
                        'T_INT_CAST'                    => 4,
                        'T_OBJECT_CAST'                 => 4,
                        'T_STRING_CAST'                 => 4,
                        'T_UNSET_CAST'                  => 4,
                        'T_AT'                          => 4,

                        'T_INSTANCEOF'                  => 5,

                        'T_TILDE'                       => 6,
                        'T_BANG'                        => 6,
                        'T_REFERENCE'                   => 6, // Special for reference's usage of &

                        'T_YIELD'                       => 9,
                        'T_YIELD_FROM'                  => 9,

                        'T_SLASH'                       => 10,
                        'T_STAR'                        => 10,
                        'T_PERCENTAGE'                  => 10,

                        'T_PLUS'                        => 18,
                        'T_MINUS'                       => 18,
                        'T_DOT'                         => 18, // Changed at constructor time for 21

                        'T_SR'                          => 20,
                        'T_SL'                          => 20,

                        'T_IS_SMALLER_OR_EQUAL'         => 30,
                        'T_IS_GREATER_OR_EQUAL'         => 30,
                        'T_GREATER'                     => 30,
                        'T_SMALLER'                     => 30,

                        'T_IS_EQUAL'                    => 37,
                        'T_IS_NOT_EQUAL'                => 37, // Double operator
                        'T_IS_IDENTICAL'                => 37,
                        'T_IS_NOT_IDENTICAL'            => 37,
                        'T_SPACESHIP'                   => 37,

                        'T_AND'                         => 42,    // &

                        'T_XOR'                         => 43,    // ^

                        'T_OR'                          => 54,     // |

                        'T_BOOLEAN_AND'                 => 65, // &&

                        'T_BOOLEAN_OR'                  => 76, // ||

                        'T_COALESCE'                    => 87,

                        'T_QUESTION'                    => 98,

                        'T_EQUAL'                       => 99,
                        'T_PLUS_EQUAL'                  => 99,
                        'T_AND_EQUAL'                   => 99,
                        'T_CONCAT_EQUAL'                => 99,
                        'T_DIV_EQUAL'                   => 99,
                        'T_MINUS_EQUAL'                 => 99,
                        'T_MOD_EQUAL'                   => 99,
                        'T_MUL_EQUAL'                   => 99,
                        'T_OR_EQUAL'                    => 99,
                        'T_POW_EQUAL'                   => 99,
                        'T_SL_EQUAL'                    => 99,
                        'T_SR_EQUAL'                    => 99,
                        'T_XOR_EQUAL'                   => 99,
                        'T_COALESCE_EQUAL'              => 99,

                        'T_LOGICAL_AND'                 => 100, // and

                        'T_LOGICAL_XOR'                 => 101, // xor

                        'T_LOGICAL_OR'                  => 102, // or

                        'T_ECHO'                        => 110,
                        'T_HALT_COMPILER'               => 110,
                        'T_PRINT'                       => 110,
                        'T_INCLUDE'                     => 110,
                        'T_INCLUDE_ONCE'                => 110,
                        'T_REQUIRE'                     => 110,
                        'T_REQUIRE_ONCE'                => 110,
                        'T_DOUBLE_ARROW'                => 110,

                        'T_RETURN'                      => 121,
                        'T_THROW'                       => 121,
                        'T_COLON'                       => 121,
                        'T_COMMA'                       => 121,
                        'T_CLOSE_TAG'                   => 121,
                        'T_CLOSE_PARENTHESIS'           => 121,
                        'T_CLOSE_BRACKET'               => 121,
                        'T_CLOSE_CURLY'                 => 121,
                        'T_AS'                          => 121,
                        'T_CONTINUE'                    => 121,
                        'T_BREAK'                       => 121,
                        'T_ELLIPSIS'                    => 121,
                        'T_GOTO'                        => 121,
                        'T_INSTEADOF'                   => 121,

                        'T_SEMICOLON'                   => 132,
    );

    private static $cache = array();

    public function __construct($phpVersion) {
        foreach($this->definitions as $name => $priority) {
            // Skip unknown tokens from other versions
            if (defined("$phpVersion::$name")) {
                $this->precedence[constant("$phpVersion::$name")] = $priority;
            }
        }

        if (substr($phpVersion, -2) === '80') {
            $this->precedence[constant("$phpVersion::T_DOT")] = 21;
        }

        foreach($this->precedence as $k1 => $p1) {
            self::$cache[$k1] = array();
            foreach($this->precedence as $k2 => $p2) {
                if ($p1 <= $p2 && $k1 !== $k2) {
                    self::$cache[$k1][] = $k2;
                }
            }
        }
    }

    public function get($token, bool $itself = self::WITHOUT_SELF): array {
        if (!isset(self::$cache[$token])) {
            throw new NoPrecedence($token);
        }

        if ($itself === self::WITH_SELF) {
            return array_merge(self::$cache[$token], array($token));
        } else {
            return self::$cache[$token];
        }
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks\Helpers;

class Context {
    const CONTEXT_CLASS        = 'Class';
    const CONTEXT_INTERFACE    = 'Interface';
    const CONTEXT_TRAIT        = 'Trait';
    const CONTEXT_FUNCTION     = 'Function';
    const CONTEXT_NEW          = 'New';
    const CONTEXT_NOSEQUENCE   = 'NoSequence';
    private $contexts = array(self::CONTEXT_CLASS        => array(0),
                              self::CONTEXT_INTERFACE    => array(0),
                              self::CONTEXT_TRAIT        => array(0),
                              self::CONTEXT_FUNCTION     => array(0),
                              self::CONTEXT_NEW          => array(0),
                              self::CONTEXT_NOSEQUENCE   => array(0),
                         );

    public function getCount($context = self::CONTEXT_NOSEQUENCE) {
        return $this->contexts[$context] !== array(0 => 0);
    }

    public function nestContext($context = self::CONTEXT_NOSEQUENCE) {
        $this->contexts[$context][] = 0;
    }

    public function exitContext($context = self::CONTEXT_NOSEQUENCE) {
        array_pop($this->contexts[$context]);
    }

    public function toggleContext($context) {
        $toggled = 1 - $this->contexts[$context][count($this->contexts[$context]) - 1];
        $this->contexts[$context][count($this->contexts[$context]) - 1] = $toggled;
        return $toggled;
    }

    public function isContext($context) {
        return (boolean) $this->contexts[$context][count($this->contexts[$context]) - 1];
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks\Helpers;

use Exakat\Tasks\Load;

class Atom {
    const STRING_MAX_SIZE = 500;

    public $id           = 0;
    public $atom         = 'No Atom Set';
    public $code         = '';
    public $lccode       = '';
    public $fullcode     = '';
    public $line         = Load::NO_LINE;
    public $token        = '';
    public $rank         = ''; // Not 0
    public $alternative  = Load::NOT_ALTERNATIVE;
    public $reference    = Load::NOT_REFERENCE;
    public $heredoc      = false;
    public $delimiter    = '';
    public $noDelimiter  = null;
    public $variadic     = Load::NOT_VARIADIC;
    public $count        = null;
    public $fullnspath   = '';
    public $absolute     = Load::NOT_ABSOLUTE;
    public $alias        = '';
    public $origin       = '';
    public $encoding     = '';
    public $block        = '';
    public $intval       = Intval::NO_VALUE;
    public $strval       = Strval::NO_VALUE;
    public $boolean      = Boolval::NO_VALUE;
    public $enclosing    = Load::NO_ENCLOSING;
    public $args_max     = '';
    public $args_min     = '';
    public $bracket      = Load::NOT_BRACKET;
    public $flexible     = Load::NOT_FLEXIBLE;
    public $close_tag    = Load::NO_CLOSING_TAG;
    public $aliased      = Load::NOT_ALIASED;
    public $propertyname = '';
    public $constant     = Load::NOT_CONSTANT_EXPRESSION;
    public $root         = false;  // false is on purpose.
    public $globalvar    = false;
    public $binaryString = Load::NOT_BINARY;
    public $isNull       = false;
    public $visibility   = '';
    public $final        = '';
    public $abstract     = '';
    public $static       = '';
    public $noscream     = 0;
    public $trailing     = 0;
    public $isRead       = 0;
    public $isModified   = 0;

    public function __construct(int $id, string $atom, int $line) {
        $this->id   = $id;
        $this->atom = $atom;
        $this->line = $line;
    }

    public function __set($name, $value) {
        die("Fatal error : trying to set '$name' property on " . self::class);
    }

    public function __get($name) {
        die("Fatal error : trying to get '$name' property on " . self::class);
    }

    public function toArray() : array {
        if (strlen($this->code) > self::STRING_MAX_SIZE) {
            $this->code = substr($this->code, 0, self::STRING_MAX_SIZE) . '...[ total ' . strlen($this->code) . ' chars]';
        }
        if (strlen($this->lccode) > self::STRING_MAX_SIZE) {
            $this->lccode = substr($this->lccode, 0, self::STRING_MAX_SIZE) . '...[ total ' . strlen($this->lccode) . ' chars]';
        }
        if (strlen($this->fullcode) > self::STRING_MAX_SIZE) {
            $this->fullcode = substr($this->fullcode, 0, self::STRING_MAX_SIZE) . '...[ total ' . strlen($this->fullcode) . ' chars]';
        }

        $this->code          = $this->protectString($this->code       );
        $this->lccode        = $this->protectString($this->lccode     );
        $this->fullcode      = $this->protectString($this->fullcode   );
        $this->fullnspath    = $this->protectString($this->fullnspath );
        $this->strval        = $this->protectString($this->strval     );
        $this->noDelimiter   = $this->protectString($this->noDelimiter);
        $this->visibility    = $this->protectString($this->visibility );

        $this->alternative   = $this->alternative ? 1 : null;
        $this->reference     = $this->reference ? 1 : null;
        $this->heredoc       = $this->heredoc ? 1 : null;
        $this->variadic      = $this->variadic ? 1 : null;
        $this->final         = $this->final ? 1 : null;
        $this->abstract      = $this->abstract ? 1 : null;
        $this->static        = $this->static ? 1 : null;
        $this->absolute      = $this->absolute ? 1 : null;
        $this->constant      = $this->constant ? 1 : null;
        $this->boolean       = $this->boolean ? 1 : null;
        $this->enclosing     = $this->enclosing ? 1 : null;
        $this->bracket       = $this->bracket ? 1 : null;
        $this->flexible      = $this->flexible ? 1 : null;
        $this->close_tag     = $this->close_tag ? 1 : null;
        $this->aliased       = $this->aliased ? 1 : null;

        if ($this->intval > 2147483647) {
            $this->intval = 2147483647;
        }
        if ($this->intval < -2147483648) {
            $this->intval = -2147483648;
        }

        $this->globalvar     = !$this->globalvar ? null : $this->globalvar;

        return (array) $this;
    }

    public function toGraphsonLine(int &$id) {
        $booleanValues = array(
                               );
        $integerValues = array('args_max',
                               'args_min',
                               'count',
                               'intval',
                               );

        $falseValues = array('aliased',
                             'alternative',
                             'enclosing',
                             'globalvar',
                             'heredoc',
                             'noscream',
                             'trailing',
                             'isRead',
                             'isModified',
                             'reference',
//                             'variadic',
                             );

        $properties = array();
        $list = array_diff_key((array) $this, array(
                               'id', 
                               'atom', 
                               'noscream', 
                               'reference', 
                               'variadic', 
                               'heredoc', 
                               'flexible',
                               'constant',
                               'enclosing',
                               'final',
                               'boolean',
                               'bracket',
                               'close_tag',
                               'trailing',
                               'alternative',
                               'absolute',
                               'abstract',
                               'aliased',
                               'isRead',
                               'isModified',
                               'static',
                               'isNull',
                               ));
        foreach($list as $l => $value) {
            if ($value === null) { continue; }
            
            if (in_array($l, $falseValues) &&
                !$value) {
                continue;
            }

            if ($l === 'lccode') {
                $this->lccode = mb_strtolower((string) $this->code);
                $value = $this->lccode;
            }

            if (!in_array($l, array('noDelimiter', 'lccode', 'code', 'fullcode' )) &&
                $value === '') {
                continue;
            }

            if ($value === false) {
                continue;
            }

            if (in_array($l, $booleanValues)) {
                $value = (boolean) $value;
            } elseif (in_array($l, $integerValues)) {
                $value = (integer) $value;
            }

            $properties[$l] = array( new Property($id++, $value) );
        }

        $object = array('id'         => $this->id,
                        'label'      => $this->atom,
                        'inE'        => new \stdClass(),
                        'outE'       => new \stdClass(),
                        'properties' => $properties,
                        );

        return (object) $object;
    }

    public function boolProperties() : array {
        $return = array();
        foreach(array(
                 'noscream', 
                 'reference', 
                 'variadic', 
                 'heredoc', 
                 'flexible',
                 'constant',
                 'enclosing',
                 'final',
                 'boolean',
                 'bracket',
                 'close_tag',
                 'trailing',
                 'alternative',
                 'absolute',
                 'abstract',
                 'aliased',
                 'isRead',
                 'isModified',
                 'static',
                 'isNull',
                               ) as $property) {
            if ($this->$property == true) {
                $return[] = $property;
            }
        }

        return $return;
    }

    private function protectString(string $code) : string {
        return addcslashes($code , '\\"');
    }

    public function isA(array $atoms): bool {
        return in_array($this->atom, $atoms, \STRICT_COMPARISON);
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks\Helpers;

class Property {
    public $id    = 0;
    public $value = 'No value set';

    public function __construct($id, $value) {
        $this->id    = $id;
        $this->value = $value;
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks\Helpers;

class Php55 extends Php {

    // PHP tokens
    const T_REQUIRE_ONCE                  = 258;
    const T_REQUIRE                       = 259;
    const T_EVAL                          = 260;
    const T_INCLUDE_ONCE                  = 261;
    const T_INCLUDE                       = 262;
    const T_LOGICAL_OR                    = 263;
    const T_LOGICAL_XOR                   = 264;
    const T_LOGICAL_AND                   = 265;
    const T_PRINT                         = 266;
    const T_SR_EQUAL                      = 268;
    const T_SL_EQUAL                      = 269;
    const T_XOR_EQUAL                     = 270;
    const T_OR_EQUAL                      = 271;
    const T_AND_EQUAL                     = 272;
    const T_MOD_EQUAL                     = 273;
    const T_CONCAT_EQUAL                  = 274;
    const T_DIV_EQUAL                     = 275;
    const T_MUL_EQUAL                     = 276;
    const T_MINUS_EQUAL                   = 277;
    const T_PLUS_EQUAL                    = 278;
    const T_BOOLEAN_OR                    = 279;
    const T_BOOLEAN_AND                   = 280;
    const T_IS_NOT_IDENTICAL              = 281;
    const T_IS_IDENTICAL                  = 282;
    const T_IS_NOT_EQUAL                  = 283;
    const T_IS_EQUAL                      = 284;
    const T_IS_GREATER_OR_EQUAL           = 285;
    const T_IS_SMALLER_OR_EQUAL           = 286;
    const T_SR                            = 287;
    const T_SL                            = 288;
    const T_INSTANCEOF                    = 289;
    const T_UNSET_CAST                    = 290;
    const T_BOOL_CAST                     = 291;
    const T_OBJECT_CAST                   = 292;
    const T_ARRAY_CAST                    = 293;
    const T_STRING_CAST                   = 294;
    const T_DOUBLE_CAST                   = 295;
    const T_INT_CAST                      = 296;
    const T_DEC                           = 297;
    const T_INC                           = 298;
    const T_CLONE                         = 299;
    const T_NEW                           = 300;
    const T_EXIT                          = 301;
    const T_IF                            = 302;
    const T_ELSEIF                        = 303;
    const T_ELSE                          = 304;
    const T_ENDIF                         = 305;
    const T_LNUMBER                       = 306;
    const T_DNUMBER                       = 307;
    const T_STRING                        = 308;
    const T_STRING_VARNAME                = 309;
    const T_VARIABLE                      = 310;
    const T_NUM_STRING                    = 311;
    const T_INLINE_HTML                   = 312;
    const T_CHARACTER                     = 313;
    const T_BAD_CHARACTER                 = 314;
    const T_ENCAPSED_AND_WHITESPACE       = 315;
    const T_CONSTANT_ENCAPSED_STRING      = 316;
    const T_ECHO                          = 317;
    const T_DO                            = 318;
    const T_WHILE                         = 319;
    const T_ENDWHILE                      = 320;
    const T_FOR                           = 321;
    const T_ENDFOR                        = 322;
    const T_FOREACH                       = 323;
    const T_ENDFOREACH                    = 324;
    const T_DECLARE                       = 325;
    const T_ENDDECLARE                    = 326;
    const T_AS                            = 327;
    const T_SWITCH                        = 328;
    const T_ENDSWITCH                     = 329;
    const T_CASE                          = 330;
    const T_DEFAULT                       = 331;
    const T_BREAK                         = 332;
    const T_CONTINUE                      = 333;
    const T_GOTO                          = 334;
    const T_FUNCTION                      = 335;
    const T_CONST                         = 336;
    const T_RETURN                        = 337;
    const T_YIELD                         = 267;
    const T_TRY                           = 338;
    const T_CATCH                         = 339;
    const T_FINALLY                       = 340;
    const T_THROW                         = 341;
    const T_USE                           = 342;
    const T_INSTEADOF                     = 343;
    const T_GLOBAL                        = 344;
    const T_PUBLIC                        = 345;
    const T_PROTECTED                     = 346;
    const T_PRIVATE                       = 347;
    const T_FINAL                         = 348;
    const T_ABSTRACT                      = 349;
    const T_STATIC                        = 350;
    const T_VAR                           = 351;
    const T_UNSET                         = 352;
    const T_ISSET                         = 353;
    const T_EMPTY                         = 354;
    const T_HALT_COMPILER                 = 355;
    const T_CLASS                         = 356;
    const T_TRAIT                         = 357;
    const T_INTERFACE                     = 358;
    const T_EXTENDS                       = 359;
    const T_IMPLEMENTS                    = 360;
    const T_OBJECT_OPERATOR               = 361;
    const T_DOUBLE_ARROW                  = 362;
    const T_LIST                          = 363;
    const T_ARRAY                         = 364;
    const T_CALLABLE                      = 365;
    const T_CLASS_C                       = 366;
    const T_TRAIT_C                       = 367;
    const T_METHOD_C                      = 368;
    const T_FUNC_C                        = 369;
    const T_LINE                          = 370;
    const T_FILE                          = 371;
    const T_COMMENT                       = 372;
    const T_DOC_COMMENT                   = 373;
    const T_OPEN_TAG                      = 374;
    const T_OPEN_TAG_WITH_ECHO            = 375;
    const T_CLOSE_TAG                     = 376;
    const T_WHITESPACE                    = 377;
    const T_START_HEREDOC                 = 378;
    const T_END_HEREDOC                   = 379;
    const T_DOLLAR_OPEN_CURLY_BRACES      = 380;
    const T_CURLY_OPEN                    = 381;
    const T_PAAMAYIM_NEKUDOTAYIM          = 382;
    const T_NAMESPACE                     = 383;
    const T_NS_C                          = 384;
    const T_DIR                           = 385;
    const T_NS_SEPARATOR                  = 386;
    const T_DOUBLE_COLON                  = 382;

    const T_SPACESHIP                     = 1000;
    const T_YIELD_FROM                    = 1000;
    const T_COALESCE                      = 1000;
    const T_COALESCE_EQUAL                = 1000;
    const T_FN                            = 1000;
    const T_POW_EQUAL                     = 1000;
    const T_POW                           = 1000;
    const T_ELLIPSIS                      = 1000;
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks\Helpers;

class Php54 extends Php {
    // PHP tokens
    const T_REQUIRE_ONCE                  = 258;
    const T_REQUIRE                       = 259;
    const T_EVAL                          = 260;
    const T_INCLUDE_ONCE                  = 261;
    const T_INCLUDE                       = 262;
    const T_LOGICAL_OR                    = 263;
    const T_LOGICAL_XOR                   = 264;
    const T_LOGICAL_AND                   = 265;
    const T_PRINT                         = 266;
    const T_SR_EQUAL                      = 267;
    const T_SL_EQUAL                      = 268;
    const T_XOR_EQUAL                     = 269;
    const T_OR_EQUAL                      = 270;
    const T_AND_EQUAL                     = 271;
    const T_MOD_EQUAL                     = 272;
    const T_CONCAT_EQUAL                  = 273;
    const T_DIV_EQUAL                     = 274;
    const T_MUL_EQUAL                     = 275;
    const T_MINUS_EQUAL                   = 276;
    const T_PLUS_EQUAL                    = 277;
    const T_BOOLEAN_OR                    = 278;
    const T_BOOLEAN_AND                   = 279;
    const T_IS_NOT_IDENTICAL              = 280;
    const T_IS_IDENTICAL                  = 281;
    const T_IS_NOT_EQUAL                  = 282;
    const T_IS_EQUAL                      = 283;
    const T_IS_GREATER_OR_EQUAL           = 284;
    const T_IS_SMALLER_OR_EQUAL           = 285;
    const T_SR                            = 286;
    const T_SL                            = 287;
    const T_INSTANCEOF                    = 288;
    const T_UNSET_CAST                    = 289;
    const T_BOOL_CAST                     = 290;
    const T_OBJECT_CAST                   = 291;
    const T_ARRAY_CAST                    = 292;
    const T_STRING_CAST                   = 293;
    const T_DOUBLE_CAST                   = 294;
    const T_INT_CAST                      = 295;
    const T_DEC                           = 296;
    const T_INC                           = 297;
    const T_CLONE                         = 298;
    const T_NEW                           = 299;
    const T_EXIT                          = 300;
    const T_IF                            = 301;
    const T_ELSEIF                        = 302;
    const T_ELSE                          = 303;
    const T_ENDIF                         = 304;
    const T_LNUMBER                       = 305;
    const T_DNUMBER                       = 306;
    const T_STRING                        = 307;
    const T_STRING_VARNAME                = 308;
    const T_VARIABLE                      = 309;
    const T_NUM_STRING                    = 310;
    const T_INLINE_HTML                   = 311;
    const T_CHARACTER                     = 312;
    const T_BAD_CHARACTER                 = 313;
    const T_ENCAPSED_AND_WHITESPACE       = 314;
    const T_CONSTANT_ENCAPSED_STRING      = 315;
    const T_ECHO                          = 316;
    const T_DO                            = 317;
    const T_WHILE                         = 318;
    const T_ENDWHILE                      = 319;
    const T_FOR                           = 320;
    const T_ENDFOR                        = 321;
    const T_FOREACH                       = 322;
    const T_ENDFOREACH                    = 323;
    const T_DECLARE                       = 324;
    const T_ENDDECLARE                    = 325;
    const T_AS                            = 326;
    const T_SWITCH                        = 327;
    const T_ENDSWITCH                     = 328;
    const T_CASE                          = 329;
    const T_DEFAULT                       = 330;
    const T_BREAK                         = 331;
    const T_CONTINUE                      = 332;
    const T_GOTO                          = 333;
    const T_FUNCTION                      = 334;
    const T_CONST                         = 335;
    const T_RETURN                        = 336;
    const T_TRY                           = 337;
    const T_CATCH                         = 338;
    const T_THROW                         = 339;
    const T_USE                           = 340;
    const T_INSTEADOF                     = 341;
    const T_GLOBAL                        = 342;
    const T_PUBLIC                        = 343;
    const T_PROTECTED                     = 344;
    const T_PRIVATE                       = 345;
    const T_FINAL                         = 346;
    const T_ABSTRACT                      = 347;
    const T_STATIC                        = 348;
    const T_VAR                           = 349;
    const T_UNSET                         = 350;
    const T_ISSET                         = 351;
    const T_EMPTY                         = 352;
    const T_HALT_COMPILER                 = 353;
    const T_CLASS                         = 354;
    const T_TRAIT                         = 355;
    const T_INTERFACE                     = 356;
    const T_EXTENDS                       = 357;
    const T_IMPLEMENTS                    = 358;
    const T_OBJECT_OPERATOR               = 359;
    const T_DOUBLE_ARROW                  = 360;
    const T_LIST                          = 361;
    const T_ARRAY                         = 362;
    const T_CALLABLE                      = 363;
    const T_CLASS_C                       = 364;
    const T_TRAIT_C                       = 365;
    const T_METHOD_C                      = 366;
    const T_FUNC_C                        = 367;
    const T_LINE                          = 368;
    const T_FILE                          = 369;
    const T_COMMENT                       = 370;
    const T_DOC_COMMENT                   = 371;
    const T_OPEN_TAG                      = 372;
    const T_OPEN_TAG_WITH_ECHO            = 373;
    const T_CLOSE_TAG                     = 374;
    const T_WHITESPACE                    = 375;
    const T_START_HEREDOC                 = 376;
    const T_END_HEREDOC                   = 377;
    const T_DOLLAR_OPEN_CURLY_BRACES      = 378;
    const T_CURLY_OPEN                    = 379;
    const T_PAAMAYIM_NEKUDOTAYIM          = 380;
    const T_NAMESPACE                     = 381;
    const T_NS_C                          = 382;
    const T_DIR                           = 383;
    const T_NS_SEPARATOR                  = 384;
    const T_DOUBLE_COLON                  = 380;

    const T_SPACESHIP                     = 1000;
    const T_YIELD_FROM                    = 1000;
    const T_COALESCE                      = 1000;
    const T_COALESCE_EQUAL                = 1000;
    const T_FN                            = 1000;
    const T_POW_EQUAL                     = 1000;
    const T_POW                           = 1000;
    const T_ELLIPSIS                      = 1000;
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
declare( strict_types = 1);

namespace Exakat\Tasks\Helpers;

class Strval extends Plugin {
    const NO_VALUE = null;

    public $name = 'noDelimiter';
    public $type = 'string';

    public function run(Atom $atom, array $extras): void {
        // Ignoring $extras['LEFT'] === null
        if ($atom->atom === 'Assignation') {
            if ($atom->code === '=') {
                $atom->noDelimiter =  $extras['RIGHT']->noDelimiter;
            }

            return;
        }

        foreach($extras as $extra) {
            if ($extra->noDelimiter === self::NO_VALUE)  {
                $atom->noDelimiter = self::NO_VALUE;
                return ;
            }
        }

        switch ($atom->atom) {
            case 'Integer' :
                $value = $atom->code;

                if (strtolower(substr($value, 0, 2)) === '0b') {
                    $actual = bindec(substr($value, 2));
                } elseif (strtolower(substr($value, 0, 2)) === '0x') {
                    $actual = hexdec(substr($value, 2));
                } elseif (strtolower($value[0]) === '0') {
                    // PHP 7 will just stop.
                    // PHP 5 will work until it fails
                    $actual = octdec(substr($value, 1));
                } elseif ($value[0] === '+' || $value[0] === '-') {
                    $actual = (string) (int) pow(-1, substr_count($value, '-')) * (int) strtr($value, '+-', '  ');
                } else {
                    $actual = (string) (int) $value;
                }

                $atom->noDelimiter = $actual;
                break;

            case 'Float' :
            case 'String' :
            case 'Identifier': // Nsname creates a fatal error
                if (empty($extra)) {
                    $atom->noDelimiter = trimOnce($atom->code);
                } else {
                    $noDelimiters = array_column($extras, 'noDelimiter');
                    $atom->noDelimiter = implode('', $noDelimiters);
                }
                break;

            case 'Constant' :
                $atom->noDelimiter = $extras['VALUE']->noDelimiter;
                break;

            case 'Boolean' :
                $atom->noDelimiter = (string) (mb_strtolower($atom->code) === 'true');
                break;

            case 'Null' :
            case 'Void' :
                $atom->noDelimiter = '';
                break;

            case 'Staticclass' :
                $atom->noDelimiter = $atom->fullcode;
                break;

            case 'Parenthesis' :
                $atom->noDelimiter = $extras['CODE']->noDelimiter;
                break;

            case 'Addition' :
                if ($atom->code === '+') {
                    $atom->noDelimiter = (int) $extras['LEFT']->noDelimiter +
                                         (int) $extras['RIGHT']->noDelimiter;
                } elseif ($atom->code === '-') {
                    $atom->noDelimiter = (int) $extras['LEFT']->noDelimiter -
                                         (int) $extras['RIGHT']->noDelimiter;
                }
                break;

            case 'Multiplication' :
                if ($atom->code === '*') {
                    $atom->noDelimiter = (string) ((int) $extras['LEFT']->noDelimiter * (int) $extras['RIGHT']->noDelimiter);
                } elseif ($atom->code === '/' && (int) $extras['RIGHT']->noDelimiter != 0) {
                    $atom->noDelimiter = (string) ((int) $extras['LEFT']->noDelimiter / (int) $extras['RIGHT']->noDelimiter);
                } elseif ($atom->code === '%' && (int) $extras['RIGHT']->noDelimiter != 0) {
                    $atom->noDelimiter = (string) ((int) $extras['LEFT']->noDelimiter % (int) $extras['RIGHT']->noDelimiter);
                }
                break;

            case 'Power' :
                $atom->noDelimiter = ((int) $extras['LEFT']->noDelimiter) ** (int) $extras['RIGHT']->noDelimiter;
                if (is_nan($atom->noDelimiter) || is_infinite($atom->noDelimiter)) {
                    $atom->noDelimiter = '';
                }
                break;

            case 'Arrayliteral' :
                $atom->noDelimiter    = 'Array';
                break;

            case 'Not' :
                if ($atom->code === '!') {
                    $atom->noDelimiter = !$extras['NOT']->noDelimiter;
                } elseif ($atom->code === '~') {
                    $atom->noDelimiter = ~$extras['NOT']->noDelimiter;
                }
                break;

            case 'Logical' :
                if ($atom->code === '|') {
                    if (is_string($extras['LEFT']->noDelimiter) && is_string($extras['RIGHT']->noDelimiter)) {
                        $atom->noDelimiter = $extras['LEFT']->noDelimiter | $extras['RIGHT']->noDelimiter;
                    } else {
                        $atom->noDelimiter = (string) ((int) $extras['LEFT']->noDelimiter | (int) $extras['RIGHT']->noDelimiter);
                    }
                } elseif ($atom->code === '&') {
                    if (is_string($extras['LEFT']->noDelimiter) && is_string($extras['RIGHT']->noDelimiter)) {
                        $atom->noDelimiter = $extras['LEFT']->noDelimiter & $extras['RIGHT']->noDelimiter;
                    } else {
                        $atom->noDelimiter = (string) ((int) $extras['LEFT']->noDelimiter & (int) $extras['RIGHT']->noDelimiter);
                    }
                } elseif ($atom->code === '^') {
                    if (is_string($extras['LEFT']->noDelimiter) && is_string($extras['RIGHT']->noDelimiter)) {
                        $atom->noDelimiter = $extras['LEFT']->noDelimiter ^ $extras['RIGHT']->noDelimiter;
                    } else {
                        $atom->noDelimiter = (string) ((int) $extras['LEFT']->noDelimiter ^ (int) $extras['RIGHT']->noDelimiter);
                    }
                } elseif ($atom->code === '&&' || mb_strtolower($atom->code) === 'and') {
                    $atom->noDelimiter = (int) $extras['LEFT']->noDelimiter && (int) $extras['RIGHT']->noDelimiter;
                } elseif ($atom->code === '||' || mb_strtolower($atom->code) === 'or') {
                    $atom->noDelimiter = (int) $extras['LEFT']->noDelimiter && (int) $extras['RIGHT']->noDelimiter;
                } elseif (mb_strtolower($atom->code) === 'xor') {
                    $atom->noDelimiter = ((int) $extras['LEFT']->noDelimiter xor (int) $extras['RIGHT']->noDelimiter);
                }
                break;

            case 'Heredoc' :
            case 'Concatenation' :
                $noDelimiters = array_column($extras, 'noDelimiter');
                $atom->noDelimiter = implode('', $noDelimiters);
                break;

            case 'Ternary' :
                if ($extras['CONDITION']->noDelimiter) {
                    $atom->noDelimiter = $extras['THEN']->noDelimiter;
                } else {
                    $atom->noDelimiter = $extras['ELSE']->noDelimiter;
                }
                break;

            case 'Coalesce' :
                if ($extras['LEFT']->noDelimiter) {
                    $atom->noDelimiter = $extras['LEFT']->noDelimiter;
                } else {
                    $atom->noDelimiter = $extras['RIGHT']->noDelimiter;
                }
                break;

            case 'Bitshift' :
                if ((int) $extras['RIGHT']->noDelimiter <= 0) {
                    // This would generate an error
                    $atom->noDelimiter = '';
                } elseif ($atom->code === '>>') {
                    $atom->noDelimiter = (int) $extras['LEFT']->noDelimiter >> (int) $extras['RIGHT']->noDelimiter;
                } elseif ($atom->code === '<<') {
                    $atom->noDelimiter = (int) $extras['LEFT']->noDelimiter << (int) $extras['RIGHT']->noDelimiter;
                }
                break;

            case 'Comparison' :
                if ($atom->code === '==') {
                    $atom->noDelimiter = $extras['LEFT']->noDelimiter == $extras['RIGHT']->noDelimiter;
                } elseif ($atom->code === '===') {
                    $atom->noDelimiter = $extras['LEFT']->noDelimiter === $extras['RIGHT']->noDelimiter;
                } elseif ($atom->code === '!=' || $atom->code === '<>') {
                    $atom->noDelimiter = $extras['LEFT']->noDelimiter != $extras['RIGHT']->noDelimiter;
                } elseif ($atom->code === '!==') {
                    $atom->noDelimiter = $extras['LEFT']->noDelimiter !== $extras['RIGHT']->noDelimiter;
                } elseif ($atom->code === '>') {
                    $atom->noDelimiter = $extras['LEFT']->noDelimiter > $extras['RIGHT']->noDelimiter;
                } elseif ($atom->code === '<') {
                    $atom->noDelimiter = $extras['LEFT']->noDelimiter < $extras['RIGHT']->noDelimiter;
                } elseif ($atom->code === '>=') {
                    $atom->noDelimiter = $extras['LEFT']->noDelimiter >= $extras['RIGHT']->noDelimiter;
                } elseif ($atom->code === '<=') {
                    $atom->noDelimiter = $extras['LEFT']->noDelimiter <= $extras['RIGHT']->noDelimiter;
                } elseif ($atom->code === '<=>') {
                    $atom->noDelimiter = $extras['LEFT']->noDelimiter <=> $extras['RIGHT']->noDelimiter;
                }
                break;

            case 'Functioncall' :
                if (in_array($atom->fullnspath, array('\basename', '\dirname'))) {
                    $function = $atom->fullnspath;
                    $atom->noDelimiter = $function($extras[0]->noDelimiter);
                } // else, ignore it
                break;

            case 'Self' :
            case 'Parent' :
                $atom->noDelimiter = strtolower($atom->atom);
                break;

            case 'Magicconstant' :
                $atom->noDelimiter = $atom->fullcode;
                break;

        default :
            // Nothing, really
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks\Helpers;

class Php56 extends Php {

    // PHP tokens
    const T_REQUIRE_ONCE                  = 258;
    const T_REQUIRE                       = 259;
    const T_EVAL                          = 260;
    const T_INCLUDE_ONCE                  = 261;
    const T_INCLUDE                       = 262;
    const T_LOGICAL_OR                    = 263;
    const T_LOGICAL_XOR                   = 264;
    const T_LOGICAL_AND                   = 265;
    const T_PRINT                         = 266;
    const T_YIELD                         = 267;
    const T_POW_EQUAL                     = 268;
    const T_SR_EQUAL                      = 269;
    const T_SL_EQUAL                      = 270;
    const T_XOR_EQUAL                     = 271;
    const T_OR_EQUAL                      = 272;
    const T_AND_EQUAL                     = 273;
    const T_MOD_EQUAL                     = 274;
    const T_CONCAT_EQUAL                  = 275;
    const T_DIV_EQUAL                     = 276;
    const T_MUL_EQUAL                     = 277;
    const T_MINUS_EQUAL                   = 278;
    const T_PLUS_EQUAL                    = 279;
    const T_BOOLEAN_OR                    = 280;
    const T_BOOLEAN_AND                   = 281;
    const T_IS_NOT_IDENTICAL              = 282;
    const T_IS_IDENTICAL                  = 283;
    const T_IS_NOT_EQUAL                  = 284;
    const T_IS_EQUAL                      = 285;
    const T_IS_GREATER_OR_EQUAL           = 286;
    const T_IS_SMALLER_OR_EQUAL           = 287;
    const T_SR                            = 288;
    const T_SL                            = 289;
    const T_INSTANCEOF                    = 290;
    const T_UNSET_CAST                    = 291;
    const T_BOOL_CAST                     = 292;
    const T_OBJECT_CAST                   = 293;
    const T_ARRAY_CAST                    = 294;
    const T_STRING_CAST                   = 295;
    const T_DOUBLE_CAST                   = 296;
    const T_INT_CAST                      = 297;
    const T_DEC                           = 298;
    const T_INC                           = 299;
    const T_POW                           = 300;
    const T_CLONE                         = 301;
    const T_NEW                           = 302;
    const T_EXIT                          = 303;
    const T_IF                            = 304;
    const T_ELSEIF                        = 305;
    const T_ELSE                          = 306;
    const T_ENDIF                         = 307;
    const T_LNUMBER                       = 308;
    const T_DNUMBER                       = 309;
    const T_STRING                        = 310;
    const T_STRING_VARNAME                = 311;
    const T_VARIABLE                      = 312;
    const T_NUM_STRING                    = 313;
    const T_INLINE_HTML                   = 314;
    const T_CHARACTER                     = 315;
    const T_BAD_CHARACTER                 = 316;
    const T_ENCAPSED_AND_WHITESPACE       = 317;
    const T_CONSTANT_ENCAPSED_STRING      = 318;
    const T_ECHO                          = 319;
    const T_DO                            = 320;
    const T_WHILE                         = 321;
    const T_ENDWHILE                      = 322;
    const T_FOR                           = 323;
    const T_ENDFOR                        = 324;
    const T_FOREACH                       = 325;
    const T_ENDFOREACH                    = 326;
    const T_DECLARE                       = 327;
    const T_ENDDECLARE                    = 328;
    const T_AS                            = 329;
    const T_SWITCH                        = 330;
    const T_ENDSWITCH                     = 331;
    const T_CASE                          = 332;
    const T_DEFAULT                       = 333;
    const T_BREAK                         = 334;
    const T_CONTINUE                      = 335;
    const T_GOTO                          = 336;
    const T_FUNCTION                      = 337;
    const T_CONST                         = 338;
    const T_RETURN                        = 339;
    const T_TRY                           = 340;
    const T_CATCH                         = 341;
    const T_FINALLY                       = 342;
    const T_THROW                         = 343;
    const T_USE                           = 344;
    const T_INSTEADOF                     = 345;
    const T_GLOBAL                        = 346;
    const T_PUBLIC                        = 347;
    const T_PROTECTED                     = 348;
    const T_PRIVATE                       = 349;
    const T_FINAL                         = 350;
    const T_ABSTRACT                      = 351;
    const T_STATIC                        = 352;
    const T_VAR                           = 353;
    const T_UNSET                         = 354;
    const T_ISSET                         = 355;
    const T_EMPTY                         = 356;
    const T_HALT_COMPILER                 = 357;
    const T_CLASS                         = 358;
    const T_TRAIT                         = 359;
    const T_INTERFACE                     = 360;
    const T_EXTENDS                       = 361;
    const T_IMPLEMENTS                    = 362;
    const T_OBJECT_OPERATOR               = 363;
    const T_DOUBLE_ARROW                  = 364;
    const T_LIST                          = 365;
    const T_ARRAY                         = 366;
    const T_CALLABLE                      = 367;
    const T_CLASS_C                       = 368;
    const T_TRAIT_C                       = 369;
    const T_METHOD_C                      = 370;
    const T_FUNC_C                        = 371;
    const T_LINE                          = 372;
    const T_FILE                          = 373;
    const T_COMMENT                       = 374;
    const T_DOC_COMMENT                   = 375;
    const T_OPEN_TAG                      = 376;
    const T_OPEN_TAG_WITH_ECHO            = 377;
    const T_CLOSE_TAG                     = 378;
    const T_WHITESPACE                    = 379;
    const T_START_HEREDOC                 = 380;
    const T_END_HEREDOC                   = 381;
    const T_DOLLAR_OPEN_CURLY_BRACES      = 382;
    const T_CURLY_OPEN                    = 383;
    const T_PAAMAYIM_NEKUDOTAYIM          = 384;
    const T_NAMESPACE                     = 385;
    const T_NS_C                          = 386;
    const T_DIR                           = 387;
    const T_NS_SEPARATOR                  = 388;
    const T_ELLIPSIS                      = 389;
    const T_DOUBLE_COLON                  = 384;

    const T_SPACESHIP                     = 1000;
    const T_YIELD_FROM                    = 1000;
    const T_COALESCE                      = 1000;
    const T_COALESCE_EQUAL                = 1000;
    const T_FN                            = 1000;
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

declare(strict_types = 1);

namespace Exakat\Tasks\Helpers;

class Intval extends Plugin {
    const NO_VALUE = '';

    public $name = 'intval';
    public $type = 'integer';

    public function run(Atom $atom, array $extras): void {
        // Ignoring $extras['LEFT'] === null
        if ($atom->atom === 'Assignation') {
            if ($atom->code === '=') {
                $atom->intval =  $extras['RIGHT']->intval;
            }

            return;
        }

        foreach($extras as $extra) {
            if ($extra->intval === self::NO_VALUE)  {
                $atom->intval = self::NO_VALUE;
                return ;
            }
        }

        switch ($atom->atom) {
            case 'Integer' :
                $value = (string) $atom->code;

                if (strtolower(substr($value, 0, 2)) === '0b') {
                    $actual = bindec(substr($value, 2));
                } elseif (strtolower(substr($value, 0, 2)) === '0x') {
                    $actual = hexdec(substr($value, 2));
                } elseif (strtolower($value[0]) === '0') {
                    // PHP 7 will just stop.
                    // PHP 5 will work until it fails
                    $actual = octdec(substr($value, 1));
                } elseif ($value[0] === '+' || $value[0] === '-') {
                    $actual = (int) pow(-1, substr_count($value, '-')) * (int) strtr($value, '+-', '  ');
                } else {
                    $actual = (int) $value;
                }

                $atom->intval = $actual == PHP_INT_MIN ? 0 : $actual;
                break;

            case 'Float' :
            case 'String' :
            case 'Heredoc' :
                if (empty($extras)) {
                    $atom->intval   = (int) trimOnce($atom->code);
                } else {
                    $atom->intval   = array_sum(array_column($extras, 'intval'));
                }
                break;

            case 'Boolean' :
                $atom->intval = (int) (mb_strtolower(trim($atom->code, '\\')) === 'true');
                break;

            case 'Staticclass' :
            case 'Identifier'  :
//            case 'Nsname'      : This leads to a fatal error
            case 'Self'        :
            case 'Parent'      :
            case 'Magicconstant' :
                $atom->intval = self::NO_VALUE;
                break;

            case 'Null'        :
            case 'Void'        :
                $atom->intval = 0;
                break;

            case 'Parenthesis' :
                $atom->intval = $extras['CODE']->intval;
                break;

            case 'Addition' :
                if ($atom->code === '+') {
                    $atom->intval = $extras['LEFT']->intval + $extras['RIGHT']->intval;
                } elseif ($atom->code === '-') {
                    $atom->intval = $extras['LEFT']->intval - $extras['RIGHT']->intval;
                }
                break;

            case 'Multiplication' :
                if ($atom->code === '*') {
                    $atom->intval = (int) ($extras['LEFT']->intval * $extras['RIGHT']->intval);
                } elseif ($atom->code === '/') {
                    if ($extras['RIGHT']->intval === 0) {
                        $atom->intval = 0;
                    } else {
                        $atom->intval = intdiv($extras['LEFT']->intval, $extras['RIGHT']->intval);
                    }
                } elseif ($atom->code === '%' && $extras['RIGHT']->intval !== 0) {
                    $atom->intval = ($extras['LEFT']->intval % $extras['RIGHT']->intval);
                }
                break;

            case 'Power' :
                $atom->intval = ((int) $extras['LEFT']->intval) ** (int) $extras['RIGHT']->intval;
                if (is_nan($atom->intval) || is_infinite($atom->intval)) {
                    $atom->intval = 0;
                }
                break;

            case 'Arrayliteral' :
                $atom->intval    = (int) (bool) $atom->count;
                break;

            case 'Constant' :
                $atom->intval    = $extras['VALUE']->intval;
                break;

            case 'Not' :
                if ($atom->code === '!') {
                    $atom->intval = !$extras['NOT']->intval;
                } elseif ($atom->code === '~') {
                    $atom->intval = ~$extras['NOT']->intval;
                }
                break;

            case 'Logical' :
                if ($atom->code === '|') {
                    $atom->intval = $extras['LEFT']->intval | $extras['RIGHT']->intval;
                } elseif ($atom->code === '&') {
                    $atom->intval = $extras['LEFT']->intval & $extras['RIGHT']->intval;
                } elseif ($atom->code === '^') {
                    $atom->intval = $extras['LEFT']->intval ^ $extras['RIGHT']->intval;
                } elseif ($atom->code === '&&' || mb_strtolower($atom->code) === 'and') {
                    $atom->intval = $extras['LEFT']->intval && $extras['RIGHT']->intval;
                } elseif ($atom->code === '||' || mb_strtolower($atom->code) === 'or') {
                    $atom->intval = $extras['LEFT']->intval && $extras['RIGHT']->intval;
                } elseif (mb_strtolower($atom->code) === 'xor') {
                    $atom->intval = ($extras['LEFT']->intval xor $extras['RIGHT']->intval);
                } elseif ($atom->code === '<=>') {
                    $atom->intval = $extras['LEFT']->intval <=> $extras['RIGHT']->intval;
                }
                break;

            case 'Concatenation' :
                $intval = array_column($extras, 'noDelimiter');
                $atom->intval = (int) implode('', $intval);
                break;

            case 'Ternary' :
                if ($extras['CONDITION']->intval) {
                    $atom->intval = (int) $extras['THEN']->intval;
                } else {
                    $atom->intval = (int) $extras['ELSE']->intval;
                }
                break;

            case 'Coalesce' :
                if ($extras['LEFT']->intval) {
                    $atom->intval = (int) $extras['LEFT']->intval;
                } else {
                    $atom->intval = (int) $extras['RIGHT']->intval;
                }
                break;

            case 'Bitshift' :
                if ($extras['RIGHT']->intval <= 0) {
                    // This would generate an error anyway
                    $atom->intval = 0;
                } elseif ($atom->code === '>>') {
                    $atom->intval = $extras['LEFT']->intval >> $extras['RIGHT']->intval;
                } elseif ($atom->code === '<<') {
                    $atom->intval = $extras['LEFT']->intval << $extras['RIGHT']->intval;
                }
                break;

            case 'Comparison' :
                if ($atom->code === '==') {
                    $atom->intval = $extras['LEFT']->intval == $extras['RIGHT']->intval;
                } elseif ($atom->code === '===') {
                    $atom->intval = $extras['LEFT']->intval === $extras['RIGHT']->intval;
                } elseif ($atom->code === '!=' || $atom->code === '<>') {
                    $atom->intval = $extras['LEFT']->intval != $extras['RIGHT']->intval;
                } elseif ($atom->code === '!==') {
                    $atom->intval = $extras['LEFT']->intval !== $extras['RIGHT']->intval;
                } elseif ($atom->code === '>') {
                    $atom->intval = $extras['LEFT']->intval > $extras['RIGHT']->intval;
                } elseif ($atom->code === '<') {
                    $atom->intval = $extras['LEFT']->intval < $extras['RIGHT']->intval;
                } elseif ($atom->code === '>=') {
                    $atom->intval = $extras['LEFT']->intval >= $extras['RIGHT']->intval;
                } elseif ($atom->code === '<=') {
                    $atom->intval = $extras['LEFT']->intval <= $extras['RIGHT']->intval;
                }
                break;

        default :
//            case 'Name'        :
//        case 'Sequence' :
            // Nothing, really
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks\Helpers;


class Php80 extends Php {

    // PHP tokens
    const T_THROW                         = 258;
    const T_INCLUDE                       = 260;
    const T_INCLUDE_ONCE                  = 261;
    const T_REQUIRE                       = 262;
    const T_REQUIRE_ONCE                  = 263;
    const T_LOGICAL_OR                    = 264;
    const T_LOGICAL_XOR                   = 265;
    const T_LOGICAL_AND                   = 266;
    const T_PRINT                         = 267;
    const T_YIELD                         = 268;
    const T_DOUBLE_ARROW                  = 269;
    const T_YIELD_FROM                    = 270;
    const T_PLUS_EQUAL                    = 271;
    const T_MINUS_EQUAL                   = 272;
    const T_MUL_EQUAL                     = 273;
    const T_DIV_EQUAL                     = 274;
    const T_CONCAT_EQUAL                  = 275;
    const T_MOD_EQUAL                     = 276;
    const T_AND_EQUAL                     = 277;
    const T_OR_EQUAL                      = 278;
    const T_XOR_EQUAL                     = 279;
    const T_SL_EQUAL                      = 280;
    const T_SR_EQUAL                      = 281;
    const T_POW_EQUAL                     = 282;
    const T_COALESCE_EQUAL                = 283;
    const T_COALESCE                      = 284;
    const T_BOOLEAN_OR                    = 285;
    const T_BOOLEAN_AND                   = 286;
    const T_IS_EQUAL                      = 287;
    const T_IS_NOT_EQUAL                  = 288;
    const T_IS_IDENTICAL                  = 289;
    const T_IS_NOT_IDENTICAL              = 290;
    const T_SPACESHIP                     = 291;
    const T_IS_SMALLER_OR_EQUAL           = 292;
    const T_IS_GREATER_OR_EQUAL           = 293;
    const T_SL                            = 294;
    const T_SR                            = 295;
    const T_INSTANCEOF                    = 296;
    const T_INT_CAST                      = 297;
    const T_DOUBLE_CAST                   = 298;
    const T_STRING_CAST                   = 299;
    const T_ARRAY_CAST                    = 300;
    const T_OBJECT_CAST                   = 301;
    const T_BOOL_CAST                     = 302;
    const T_UNSET_CAST                    = 303;
    const T_POW                           = 304;
    const T_CLONE                         = 305;
    const T_ELSEIF                        = 307;
    const T_ELSE                          = 308;
    const T_LNUMBER                       = 309;
    const T_DNUMBER                       = 310;
    const T_STRING                        = 311;
    const T_VARIABLE                      = 312;
    const T_INLINE_HTML                   = 313;
    const T_ENCAPSED_AND_WHITESPACE       = 314;
    const T_CONSTANT_ENCAPSED_STRING      = 315;
    const T_STRING_VARNAME                = 316;
    const T_NUM_STRING                    = 317;
    const T_EVAL                          = 318;
    const T_INC                           = 379;
    const T_DEC                           = 380;
    const T_NEW                           = 319;
    const T_EXIT                          = 320;
    const T_IF                            = 321;
    const T_ENDIF                         = 322;
    const T_ECHO                          = 323;
    const T_DO                            = 324;
    const T_WHILE                         = 325;
    const T_ENDWHILE                      = 326;
    const T_FOR                           = 327;
    const T_ENDFOR                        = 328;
    const T_FOREACH                       = 329;
    const T_ENDFOREACH                    = 330;
    const T_DECLARE                       = 331;
    const T_ENDDECLARE                    = 332;
    const T_AS                            = 333;
    const T_SWITCH                        = 334;
    const T_ENDSWITCH                     = 335;
    const T_CASE                          = 336;
    const T_DEFAULT                       = 337;
    const T_BREAK                         = 338;
    const T_CONTINUE                      = 339;
    const T_GOTO                          = 340;
    const T_FUNCTION                      = 341;
    const T_FN                            = 342;
    const T_CONST                         = 343;
    const T_RETURN                        = 344;
    const T_TRY                           = 345;
    const T_CATCH                         = 346;
    const T_FINALLY                       = 347;
    const T_USE                           = 348;
    const T_INSTEADOF                     = 349;
    const T_GLOBAL                        = 350;
    const T_STATIC                        = 351;
    const T_ABSTRACT                      = 352;
    const T_FINAL                         = 353;
    const T_PRIVATE                       = 354;
    const T_PROTECTED                     = 355;
    const T_PUBLIC                        = 356;
    const T_VAR                           = 357;
    const T_UNSET                         = 358;
    const T_ISSET                         = 359;
    const T_EMPTY                         = 360;
    const T_HALT_COMPILER                 = 361;
    const T_CLASS                         = 362;
    const T_TRAIT                         = 363;
    const T_INTERFACE                     = 364;
    const T_EXTENDS                       = 365;
    const T_IMPLEMENTS                    = 366;
    const T_OBJECT_OPERATOR               = 381;
    const T_LIST                          = 368;
    const T_ARRAY                         = 369;
    const T_CALLABLE                      = 370;
    const T_LINE                          = 371;
    const T_FILE                          = 372;
    const T_DIR                           = 373;
    const T_CLASS_C                       = 374;
    const T_TRAIT_C                       = 375;
    const T_METHOD_C                      = 376;
    const T_FUNC_C                        = 377;
    const T_COMMENT                       = 382;
    const T_DOC_COMMENT                   = 383;
    const T_OPEN_TAG                      = 384;
    const T_OPEN_TAG_WITH_ECHO            = 385;
    const T_CLOSE_TAG                     = 386;
    const T_WHITESPACE                    = 387;
    const T_START_HEREDOC                 = 388;
    const T_END_HEREDOC                   = 389;
    const T_DOLLAR_OPEN_CURLY_BRACES      = 390;
    const T_CURLY_OPEN                    = 391;
    const T_PAAMAYIM_NEKUDOTAYIM          = 392;
    const T_NAMESPACE                     = 367;
    const T_NS_C                          = 378;
    const T_NS_SEPARATOR                  = 393;
    const T_ELLIPSIS                      = 394;
    const T_BAD_CHARACTER                 = 395;
    const T_DOUBLE_COLON                  = 392;
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

declare( strict_types = 1);

namespace Exakat\Tasks\Helpers;

class IsRead extends Plugin {
    public $name = 'isRead';
    public $type = 'boolean';
    private $variables = array('Variable', 'Variableobject', 'Variablearray',
                               'Member', 'Staticproperty',
                               'Phpvariable', 'This',
                               'Array', );

    public function run(Atom $atom, array $extras): void {
        switch ($atom->atom) {
            case 'Assignation' :
                if (in_array($extras['RIGHT']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['RIGHT']->isRead = true;
                }
                break;

            case 'Not' :
                if (in_array($extras['NOT']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['NOT']->isRead = true;
                }
                break;

            case 'Sign' :
                if (in_array($extras['SIGN']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['SIGN']->isRead = true;
                }
                break;

            case 'Throw' :
                if (in_array($extras['THROW']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['THROW']->isRead = true;
                }
                break;

            case 'Return' :
                if (in_array($extras['RETURN']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['RETURN']->isRead = true;
                }
                break;

            case 'Block' :
            case 'Parenthesis' :
                if (in_array($extras['CODE']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['CODE']->isRead = true;
                }
                break;

            case 'Clone' :
                if (in_array($extras['CLONE']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['CLONE']->isRead = true;
                }
                break;

            case 'Foreach' :
                if (in_array($extras['SOURCE']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['SOURCE']->isRead = true;
                }
                break;

            case 'Ifthen' :
                if (in_array($extras['CONDITION']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['CONDITION']->isRead = true;
                }
                break;

            case 'For' :
                if (in_array($extras['INIT']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['INIT']->isRead = true;
                }
                if (in_array($extras['FINAL']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['FINAL']->isRead = true;
                }
                if (in_array($extras['INCREMENT']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['INCREMENT']->isRead = true;
                }
                break;

            case 'Switch' :
                if (in_array($extras['CONDITION']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['CONDITION']->isRead = true;
                }
                break;

            case 'Case' :
                if (in_array($extras['CASE']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['CASE']->isRead = true;
                }
                break;

            case 'Coalesce' :
                if (in_array($extras['LEFT']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['LEFT']->isRead = true;
                }
                if (in_array($extras['RIGHT']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['RIGHT']->isRead = true;
                }
                break;

            case 'Ternary' :
                if (in_array($extras['CONDITION']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['CONDITION']->isRead = true;
                }
                if (in_array($extras['THEN']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['THEN']->isRead = true;
                }
                if (in_array($extras['ELSE']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['ELSE']->isRead = true;
                }
                break;

            case 'Cast' :
                if (in_array($extras['CAST']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['CAST']->isRead = true;
                }
                break;

            case 'Keyvalue' :
                if (in_array($extras['INDEX']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['INDEX']->isRead = true;
                }
                if (in_array($extras['VALUE']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['VALUE']->isRead = true;
                }
                break;

            case 'Preplusplus' :
                if (in_array($extras['PREPLUSPLUS']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['PREPLUSPLUS']->isRead = true;
                }
                break;

            case 'Postplusplus' :
                if (in_array($extras['POSTPLUSPLUS']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['POSTPLUSPLUS']->isRead = true;
                }
                break;

            case 'Addition':
            case 'Multiplication':
            case 'Logical' :
            case 'Comparison' :
            case 'Bitshift':
            case 'Power':
                if (in_array($extras['RIGHT']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['RIGHT']->isRead = true;
                }
                if (in_array($extras['LEFT']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['LEFT']->isRead = true;
                }
                break;

            case 'New' :
                if (in_array($extras['NEW']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['NEW']->isRead = true;
                }
                break;

            case 'Yield':
            case 'Yieldfrom':
                if (in_array($extras['YIELD']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['YIELD']->isRead = true;
                }
                break;

            case 'Dowhile':
            case 'While':
                if (in_array($extras['CONDITION']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['CONDITION']->isRead = true;
                }
                break;

            case 'Include':
                if (in_array($extras['ARGUMENT']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['ARGUMENT']->isRead = true;
                }
                break;

            case 'Defineconstant':
                if (isset($extras['NAME']) &&
                    in_array($extras['NAME']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['NAME']->isRead = true;
                }
                if (isset($extras['VALUE']) &&
                    in_array($extras['VALUE']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['VALUE']->isRead = true;
                }
                if (isset($extras['CASE']) &&
                    in_array($extras['CASE']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['CASE']->isRead = true;
                }
                break;

            case 'Array':
                if (in_array($extras['VARIABLE']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['VARIABLE']->isRead = true;
                }
                if (in_array($extras['INDEX']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['INDEX']->isRead = true;
                }
                break;

            case 'Instanceof':
                if (in_array($extras['VARIABLE']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['VARIABLE']->isRead = true;
                }
                if (in_array($extras['CLASS']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['CLASS']->isRead = true;
                }
                break;

            case 'Variable':
                if (isset($extras['NAME']) &&
                    in_array($extras['NAME']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['NAME']->isRead = true;
                }
                break;

            case 'Member':
                if (in_array($extras['OBJECT']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['OBJECT']->isRead = true;
                }
                if (in_array($extras['MEMBER']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['MEMBER']->isRead = true;
                }
                break;

            case 'Methodcall':
                if (in_array($extras['OBJECT']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['OBJECT']->isRead = true;
                }
                if (in_array($extras['METHOD']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['METHOD']->isRead = true;
                }
                break;

            case 'Staticproperty':
            case 'Staticmethodcall':
            case 'Staticclass':
            case 'Staticconstant':
                if (in_array($extras['CLASS']->atom, $this->variables, STRICT_COMPARISON)) {
                    $extras['CLASS']->isRead = true;
                }
                break;

            case 'Methodcallname' :
            case 'Arrayliteral' :
            case 'Functioncall' :
            case 'Newcall' :
            case 'Echo' :
            case 'Exit' :
            case 'Eval' :
            case 'Empty' :
            case 'Print' :
            case 'Sequence' :
                foreach($extras as $extra) {
                    if (in_array($extra->atom, $this->variables, STRICT_COMPARISON)) {
                        $extra->isRead = true;
                    }
                }
                break;

            case 'This' :
                $atom->isRead = true;
                break;

            case 'Closure' :
                foreach($extras as $extra) {
                    if (in_array($extra->atom, $this->variables, STRICT_COMPARISON)) {
                        $extra->isRead = true;
                    }
                }
                break;

            case 'Concatenation' :
            case 'Heredoc' :
            case 'String' :
            case 'Shell' :
                foreach($extras as $extra) {
                    if (in_array($extra->atom, $this->variables, STRICT_COMPARISON)) {
                        $extra->isRead = true;
                    }
                }
                break;

//            case 'Isset' : isset() doesn't read the variable. Just checks its existence
            default :
//            print $atom->atom.PHP_EOL;
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

declare( strict_types = 1);

namespace Exakat\Tasks\Helpers;

class Boolval extends Plugin {
    const NO_VALUE = null;

    public $name = 'boolean';
    public $type = 'boolean';

    public function run(Atom $atom, array $extras): void {
        // Special case for Arraylist, so it won't be blocked by the filter behind.
        switch ($atom->atom) {
            case 'Arrayliteral' :
                $atom->boolean = (int) (bool) $atom->count;
                return;

            case 'Assignation' :
                $atom->boolean = $extras['RIGHT']->boolean;
                return;

        }

        foreach($extras as $extra) {
            if ($extra->intval === self::NO_VALUE)  {
                $atom->intval = self::NO_VALUE;
                return ;
            }
        }

        // Ignoring $extras['LEFT'] === null
        if ($atom->atom === 'Assignation') {

            return;
        }

        switch ($atom->atom) {
            case 'Staticclass'   :
            case 'Self'          :
            case 'Parent'        :
            case 'Closure'       :
            case 'Sequence'      :
            case 'Magicconstant' :
                $atom->boolean = true;
                break;

            case 'Identifier' :
                // $atom->code is a string
                $atom->boolean = (int) (bool) (string) $atom->code;
                break;

            case 'Constant' :
                $atom->boolean    = (int) $extras['VALUE']->boolean;
                break;

            case 'Nsname' :
                // when it is a string, there is no fallback
                $atom->boolean = 0;
                break;

            case 'Float' :
                // $atom->code is a string
                $atom->boolean = (int) (bool) (float) $atom->code;
                break;

            case 'Integer' :
                $atom->boolean = (int) (bool) (int) $atom->code;
                break;

            case 'Boolean' :
                $atom->boolean = (int) (mb_strtolower(trim($atom->code, '\\')) === 'true');
                break;

            case 'String' :
            case 'Heredoc' :
                $atom->boolean = (int) (trimOnce($atom->code) !== '');
                break;

            case 'Null' :
            case 'Void' :
                $atom->boolean = 0;
                break;

            case 'Parenthesis' :
                $atom->boolean = $extras['CODE']->boolean;
                break;

            case 'Addition' :
                if ($atom->code === '+') {
                    $atom->boolean = (int) (bool) ((int) $extras['LEFT']->boolean + (int) $extras['RIGHT']->boolean);
                } elseif ($atom->code === '-') {
                    $atom->boolean = (int) (bool) ((int) $extras['LEFT']->boolean - (int) $extras['RIGHT']->boolean);
                }
                break;

            case 'Multiplication' :
                if ($atom->code === '*') {
                    $atom->boolean = (int) (bool) ((int) $extras['LEFT']->boolean * (int) $extras['RIGHT']->boolean);
                } elseif ($atom->code === '/') {
                    if ((int) $extras['RIGHT']->boolean === 0) {
                        $atom->boolean = false;
                    } else {
                        $atom->boolean = (int) (bool) ((int) $extras['LEFT']->boolean / (int) $extras['RIGHT']->boolean);
                    }
                } elseif ($atom->code === '%') {
                    if ((int) $extras['RIGHT']->boolean === 0) {
                        $atom->boolean = false;
                    } else {
                        $atom->boolean = (int) (bool) ((int) $extras['LEFT']->boolean % (int) $extras['RIGHT']->boolean);
                    }
                }
                break;

            case 'Power' :
                $atom->boolean = (int) (bool) (((bool) $extras['LEFT']->boolean) ** (bool) $extras['RIGHT']->boolean);
                break;

            case 'Keyvalue' :
                $atom->boolean = (int) (bool) $extras['INDEX']->boolean && $extras['VALUE']->boolean;
                break;

            case 'Not' :
                if ($atom->code === '!') {
                    $atom->boolean = !$extras['NOT']->boolean;
                } elseif ($atom->code === '~') {
                    $atom->boolean = ~$extras['NOT']->intval;
                }
                break;

            case 'Logical' :
                if ($atom->code === '|') {
                    if (is_string($extras['LEFT']->boolean) && is_string($extras['RIGHT']->boolean)) {
                        $atom->boolean = $extras['LEFT']->boolean | $extras['RIGHT']->boolean;
                    } else {
                        $atom->boolean = (int) $extras['LEFT']->boolean | (int) $extras['RIGHT']->boolean;
                    }
                } elseif ($atom->code === '&') {
                    if (is_string($extras['LEFT']->boolean) && is_string($extras['RIGHT']->boolean)) {
                        $atom->boolean = $extras['LEFT']->boolean & $extras['RIGHT']->boolean;
                    } else {
                        $atom->boolean = (int) $extras['LEFT']->boolean & (int) $extras['RIGHT']->boolean;
                    }
                } elseif ($atom->code === '^') {
                    if (is_string($extras['LEFT']->boolean) && is_string($extras['RIGHT']->boolean)) {
                        $atom->boolean = $extras['LEFT']->boolean ^ $extras['RIGHT']->boolean;
                    } else {
                        $atom->boolean = (int) $extras['LEFT']->boolean ^ (int) $extras['RIGHT']->boolean;
                    }
                } elseif ($atom->code === '&&' || mb_strtolower($atom->code) === 'and') {
                    $atom->boolean = $extras['LEFT']->boolean && $extras['RIGHT']->boolean;
                } elseif ($atom->code === '||' || mb_strtolower($atom->code) === 'or') {
                    $atom->boolean = $extras['LEFT']->boolean && $extras['RIGHT']->boolean;
                } elseif (mb_strtolower($atom->code) === 'xor') {
                    $atom->boolean = ($extras['LEFT']->boolean xor $extras['RIGHT']->boolean);
                } elseif ($atom->code === '<=>') {
                    $atom->boolean = $extras['LEFT']->boolean <=> $extras['RIGHT']->boolean;
                }
                break;

            case 'Concatenation' :
                $boolean = array_column($extras, 'boolean');
                $atom->boolean = (bool) implode('', $boolean);
                break;

            case 'Ternary' :
                if ($extras['CONDITION']->boolean) {
                    $atom->boolean = $extras['THEN']->boolean;
                } else {
                    $atom->boolean = $extras['ELSE']->boolean;
                }
                break;

            case 'Bitshift' :
                if ($atom->code === '>>') {
                    $atom->boolean = (int) $extras['LEFT']->boolean >> (int) $extras['RIGHT']->boolean;
                } elseif ($atom->code === '<<') {
                    $atom->boolean = (int) $extras['LEFT']->boolean << (int) $extras['RIGHT']->boolean;
                }
                break;

            case 'Comparison' :
                if ($atom->code === '==') {
                    $atom->boolean = (int) ($extras['LEFT']->boolean == $extras['RIGHT']->boolean);
                } elseif ($atom->code === '===') {
                    $atom->boolean = (int) ($extras['LEFT']->boolean === $extras['RIGHT']->boolean);
                } elseif ($atom->code === '!=' || $atom->code === '<>') {
                    $atom->boolean = (int) ($extras['LEFT']->boolean != $extras['RIGHT']->boolean);
                } elseif ($atom->code === '!==') {
                    $atom->boolean = (int) ($extras['LEFT']->boolean !== $extras['RIGHT']->boolean);
                } elseif ($atom->code === '>') {
                    $atom->boolean = (int) ($extras['LEFT']->boolean > $extras['RIGHT']->boolean);
                } elseif ($atom->code === '<') {
                    $atom->boolean = (int) ($extras['LEFT']->boolean < $extras['RIGHT']->boolean);
                } elseif ($atom->code === '>=') {
                    $atom->boolean = (int) ($extras['LEFT']->boolean >= $extras['RIGHT']->boolean);
                } elseif ($atom->code === '<=') {
                    $atom->boolean = (int) ($extras['LEFT']->boolean <= $extras['RIGHT']->boolean);
                }
                break;

            case 'Assignation' :
                if ($atom->code === '=') {
                    $atom->boolean =  $extras['RIGHT']->boolean;
                }
                break;

        default :
            $atom->boolean = '';
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks\Helpers;

use Exakat\Exceptions\NoRecognizedTokens;

abstract class Php {

// Exakat home-made tokens
    const T_BANG                         = '!';
    const T_CLOSE_BRACKET                = ']';
    const T_CLOSE_PARENTHESIS            = ')';
    const T_CLOSE_CURLY                  = '}';
    const T_COMMA                        = ',';
    const T_DOT                          = '.';
    const T_EQUAL                        = '=';
    const T_MINUS                        = '-';
    const T_AT                           = '@';
    const T_OPEN_BRACKET                 = '[';
    const T_OPEN_CURLY                   = '{';
    const T_OPEN_PARENTHESIS             = '(';
    const T_PERCENTAGE                   = '%';
    const T_PLUS                         = '+';
    const T_QUESTION                     = '?';
    const T_COLON                        = ':';
    const T_SEMICOLON                    = ';';
    const T_SLASH                        = '/';
    const T_STAR                         = '*';
    const T_SMALLER                      = '<';
    const T_GREATER                      = '>';
    const T_TILDE                        = '~';
    const T_QUOTE                        = '"';
    const T_DOLLAR                       = '$';
    const T_AND                          = '&';
    const T_BACKTICK                     = '`';
    const T_OR                           = '|';
    const T_XOR                          = '^';
    const T_ANDAND                       = '&&';
    const T_OROR                         = '||';
    const T_QUOTE_CLOSE                  = '"_CLOSE';
    const T_SHELL_QUOTE                  = '`';
    const T_SHELL_QUOTE_CLOSE            = '`_CLOSE';

    const T_END                          = 'The End';
    const T_REFERENCE                    = 'r';
    const T_VOID                         = 'v';

    const TOKENS = array(
                     ';'  => self::T_SEMICOLON,
                     '+'  => self::T_PLUS,
                     '-'  => self::T_MINUS,
                     '/'  => self::T_SLASH,
                     '*'  => self::T_STAR,
                     '.'  => self::T_DOT,
                     '['  => self::T_OPEN_BRACKET,
                     ']'  => self::T_CLOSE_BRACKET,
                     '('  => self::T_OPEN_PARENTHESIS,
                     ')'  => self::T_CLOSE_PARENTHESIS,
                     '{'  => self::T_OPEN_CURLY,
                     '}'  => self::T_CLOSE_CURLY,
                     '='  => self::T_EQUAL,
                     ','  => self::T_COMMA,
                     '!'  => self::T_BANG,
                     '~'  => self::T_TILDE,
                     '@'  => self::T_AT,
                     '?'  => self::T_QUESTION,
                     ':'  => self::T_COLON,
                     '<'  => self::T_SMALLER,
                     '>'  => self::T_GREATER,
                     '%'  => self::T_PERCENTAGE,
                     '"'  => self::T_QUOTE,
                     'b"' => self::T_QUOTE,
                     '$'  => self::T_DOLLAR,
                     '&'  => self::T_AND,
                     '|'  => self::T_OR,
                     '^'  => self::T_XOR,
                     '`'  => self::T_BACKTICK,
                   );

    public static function getInstance($tokens) {
        $errors = array();

        if (empty($tokens)) {
            throw new NoRecognizedTokens($tokens);
        }

        //'Php80',
        $versions = array('Php80', 'Php74', 'Php73', 'Php72', 'Php71', 'Php70', 'Php56', 'Php55', );

        foreach($versions as $version) {
            $errors = array();
            foreach($tokens as $k => $v) {
                if (constant(__NAMESPACE__ . "\\$version::$v") !== $k) {
                    $errors[$k] = $v;
                }
            }

            if (empty($errors)) {
                $className = __NAMESPACE__ . "\\$version";
                return new $className();
            }
        }

        throw new NoRecognizedTokens();
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks\Helpers;

use Exakat\Config;
use Exakat\Exceptions\NoSuchReport;

class ReportConfig {
    private $name        = 'None';
    private $format      = 'None';
    private $config      = null;
    private $rulesets    = array();
    private $destination = null;

    public function __construct($config, Config $exakat_config) {
        if (is_array($config)) {
            $this->name = key($config);
            $config = array_pop($config);

            if (!isset($config['format'])) {
                throw new NoSuchReport("Undefined format for $this->name\n");
            }

            $this->name       .= " ($config[format])";
            $this->format      = $config['format'];
            if (!class_exists($this->getFormatClass())) {
                throw new NoSuchReport($this->format);
            }

            // Check for array of string
            $this->rulesets    = $config['rulesets'] ?? array();
            $this->rulesets    = makeArray($this->rulesets);
            $this->destination = $config['file']     ?? constant("\Exakat\Reports\\$config[format]::FILE_FILENAME");
        } elseif (is_string($config)) {
            $this->format      = $config;
            if (!class_exists($this->getFormatClass())) {
                throw new NoSuchReport($this->format);
            }

            $this->name        = $config;
            $this->rulesets    = $exakat_config->project_rulesets ?? array();
            $this->destination = $exakat_config->file ?: constant("\Exakat\Reports\\$config::FILE_FILENAME");
        } else {
            throw new NoSuchReport($config);
        }

        $this->config = $exakat_config;
    }

    public function getName() {
        return $this->name;
    }

    public function getFormatClass() {
        return '\Exakat\Reports\\' . ucfirst(strtolower($this->format));
    }

    public function getFormat() {
        return $this->format;
    }

    public function getFile() {
        return $this->destination;
    }

    public function getConfig() {
        return $this->config->duplicate(array('file'             => $this->destination,
                                              'format'           => array($this->format),
                                              'project_rulesets' => $this->rulesets,
                                              ));
    }

    public function getRulesets() {
        $class = $this->getFormatClass();
        $report = new $class($this->config);

        $rulesets = $report->dependsOnAnalysis();
        if (empty($rulesets)) {
            $rulesets = $this->rulesets;
        }

        return $rulesets;
    }
}
?>
<?php
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

declare(strict_types = 1);

namespace Exakat\Tasks\Helpers;


class Fullnspaths {
    private $uses   = array('function'       => array(),
                            'staticmethod'   => array(),
                            'method'         => array(),  // @todo : handling of parents ? of multiple definition?
                            'staticconstant' => array(),
                            'property'       => array(),
                            'staticproperty' => array(),
                            'const'          => array(),
                            'define'         => array(),
                            'class'          => array(),
                            );

    public function set(string $type, string $name, Atom $path): void {
        $this->uses[$type][$name] = $path;
    }

    public function get(string $type, string $name): ?Atom {
        return $this->uses[$type][$name] ?? null;
    }
}<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks\Helpers;

class Sequences {
    private const START_RANK = -1;

    private $sequences           = array();
    private $rank                = self::START_RANK;
    private $elements            = array();

    private $level               = 0;

    private $ranksPile           = array();
    private $elementsPile        = array();

    public function start($sequence) {
        ++$this->level;

        $this->sequences[$this->level]    = $sequence;
        $this->ranksPile[$this->level]    = $this->rank;
        $this->elementsPile[$this->level] = $this->elements;

        $this->rank                    = self::START_RANK;
        $this->elements                = array();
    }

    public function add(Atom $element) {
        ++$this->rank;
        $element->rank                        = $this->rank;
        $this->elements[]                     = $element;
        $this->sequences[$this->level]->count = $element->rank + 1;
    }

    public function getElements() {
        return $this->elements;
    }

    public function end() {
        assert($this->level > 0, "Trying to pop a non-existing sequence ($this->level)\n");

        array_pop($this->sequences);
        $this->rank     = array_pop($this->ranksPile);
        $this->elements = array_pop($this->elementsPile);

        --$this->level;

        return $this->sequences[$this->level] ?? null;
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks;

use Exakat\Exceptions\NoSuchProject;
use Exakat\Exceptions\ProjectNeeded;
use Exakat\Exceptions\InvalidProjectName;
use Exakat\Exceptions\ProjectNotInited;
use Exakat\Exceptions\NoDump;
use Exakat\Exceptions\NoDumpYet;
use Exakat\Reports\Reports as Reports;
use Exakat\Tasks\Helpers\ReportConfig;
use Exakat\Dump\Dump;

class Report extends Tasks {
    const CONCURENCE = self::ANYTIME;

    public function run() {
        if ($this->config->project->isDefault()) {
            throw new ProjectNeeded();
        }

        if (!$this->config->project->validate()) {
            throw new InvalidProjectName($this->config->project->getError());
        }

        if (!file_exists($this->config->project_dir)) {
            throw new NoSuchProject($this->config->project);
        }

        if (!file_exists($this->config->datastore)) {
            throw new ProjectNotInited($this->config->project);
        }

        if (!file_exists($this->config->dump)) {
            throw new NoDump($this->config->project);
        }

        $dump = Dump::factory($this->config->dump, Dump::READ);
        $res = $dump->fetchAnalysersCounts(array('Project/Dump'));

        if ($res->toInt('count') !== 1) {
            throw new NoDumpYet($this->config->project);
        }

        foreach($this->config->project_reports as $format) {
            $reportConfig = new ReportConfig($format, $this->config);
            $reportClass = $reportConfig->getFormatClass();
            if (!class_exists($reportClass)) {
                display('No such format as ' . $reportConfig->getFormat() . '. Omitting.');
                continue;
            }

            $report = new $reportClass($reportConfig->getConfig());

            $this->format($report, $reportConfig);
        }
    }

    private function format(Reports $report, $reportConfig) {
        $begin = microtime(true);

        if ($reportConfig->getFile() === Reports::STDOUT) {
            display("Building report for project {$this->config->project_name} to stdout, with report " . $reportConfig->getFormat() . "\n");
            $report->generate($this->config->project_dir, Reports::STDOUT);
        } elseif (empty($reportConfig->getFile())) {
            display("Building report for project {$this->config->project_name} in '" . $reportConfig->getFile() . "', with report " . $reportConfig->getFormat() . "\n");
            $report->generate($this->config->project_dir, $report::FILE_FILENAME);
        } else {
            // to files + extension
            $filename = basename($reportConfig->getFile());
            if (in_array($filename, array('.', '..'))) {
                $filename = $report::FILE_FILENAME;
            }
            display('Building report for project ' . $this->config->project . ' in "' . $reportConfig->getFile() . ($report::FILE_EXTENSION ? '.' . $report::FILE_EXTENSION : '') . "', with format " . $reportConfig->getFormat() . "\n");
            $report->generate( $this->config->project_dir, $filename);
        }
        display('Reported ' . $report->getCount() . ' messages in ' . $reportConfig->getFormat());

        $end = microtime(true);
        display('Processing time : ' . number_format($end - $begin, 2) . 's');

        $this->datastore->addRow('hash', array($reportConfig->getFormat() => $reportConfig->getFile() ));
        display('Done');
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks;

use Exakat\Stats;

class Stat extends Tasks {
    const CONCURENCE = self::ANYTIME;

    public function run() {
        $stats = new Stats();
        if ($this->config->filename) {
            $stats->setFileFilter($this->config->filename);
        }
        $stats->collect();
        $stats = $stats->toArray();

        if ($this->config->json) {
            $output = json_encode($stats);
        } elseif ($this->config->table) {
            $output = $this->table_encode($stats);
        } else {
            $output = $this->text_encode($stats);
        }

        if ($this->config->output) {
            $outputFile = fopen($this->config->filename, 'w+');
            if (empty($outputFile)) {
                print "Couldn't open file '{$this->config->filename}' for writing. No report saved.\n";
                return;
            } else {
                fwrite($outputFile, $output);
                fclose($outputFile);
            }
        } else {
            echo $output;
        }
    }

    private function table_encode($stats) {
        $html = '<html><body>';

        foreach($stats as $name => $value) {
            $html .= "<tr><td>$name</td><td>$value</td></tr>\n";
        }

        $html .= '</body></html>';
        return $html;
    }

    private function text_encode($stats) {
        $html = "Statistics for the whole server\n\n";

        foreach($stats as $name => $value) {
            $html .= "$name : $value\n";
        }

        $html .= "\n";
        return $html;
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Tasks;

class CleanDb extends Tasks {
    const CONCURENCE = self::ANYTIME;

    protected $logname = self::LOG_NONE;

    public function run() {
         if (self::$semaphore === null) {
            $this->manageServer();
        } else {
            fclose(self::$semaphore);
            try {
                $this->manageServer();
            } finally {
                self::$semaphore = @stream_socket_server('udp://0.0.0.0:' . self::$semaphorePort, $errno, $errstr, STREAM_SERVER_BIND);
            }
        }

    }

    private function manageServer() {
        if ($this->config->stop === true) {
            display('Stop gremlin server');
            $this->gremlin->stop();
        } elseif ($this->config->start === true) {
            display('Start gremlin server');
            $this->gremlin->start();
        } elseif ($this->config->restart === true) {
            display('Restart gremlin server');
            $this->gremlin->clean();
        } else {
            display('Restart gremlin server');
            $this->gremlin->clean();
        }
    }
}

?>
<?php declare(strict_types = 1);

namespace Exakat\Dump;

use Exakat\Reports\Helpers\Results;

class Dump1 extends Dump {
    protected function initDump(): void {
        $query = <<<'SQL'
CREATE TABLE themas (  id    INTEGER PRIMARY KEY AUTOINCREMENT,
                       thema STRING,
                       CONSTRAINT "themas" UNIQUE (thema) ON CONFLICT IGNORE
                    )
SQL;
        $this->sqlite->query($query);

        $query = <<<'SQL'
CREATE TABLE results (  id INTEGER PRIMARY KEY AUTOINCREMENT,
                        fullcode STRING,
                        file STRING,
                        line INTEGER,
                        namespace STRING,
                        class STRING,
                        function STRING,
                        analyzer STRING,
                        severity STRING
                     )
SQL;
        $this->sqlite->query($query);

        $query = <<<'SQL'
CREATE TABLE resultsCounts ( id INTEGER PRIMARY KEY AUTOINCREMENT,
                             analyzer STRING,
                             count INTEGER DEFAULT -6,
                             CONSTRAINT "analyzers" UNIQUE (analyzer) ON CONFLICT REPLACE
                           )
SQL;
        $this->sqlite->query($query);

        $query = <<<'SQL'
CREATE TABLE hashAnalyzer ( id INTEGER PRIMARY KEY,
                            analyzer STRING,
                            key STRING UNIQUE,
                            value STRING
                          );
SQL;
        $this->sqlite->query($query);

        $query = <<<'SQL'
CREATE TABLE hashResults ( id INTEGER PRIMARY KEY AUTOINCREMENT,
                            name STRING,
                            key STRING,
                            value STRING
                          );
SQL;
        $this->sqlite->query($query);

        $query = <<<'SQL'
CREATE TABLE classChanges (  
    id           INTEGER PRIMARY KEY AUTOINCREMENT,
    changeType   STRING,
    name         STRING,
    parentClass  STRING,
    parentValue  STRING,
    childClass   STRING,
    childValue   STRING
                    )
SQL;
        $this->sqlite->query($query);

        $query = <<<'SQL'
CREATE TABLE filesDependencies ( id INTEGER PRIMARY KEY AUTOINCREMENT,
                                 including STRING,
                                 included STRING,
                                 type STRING
                                )
SQL;
        $this->sqlite->query($query);

        $query = <<<'SQL'
CREATE TABLE classesDependencies ( id INTEGER PRIMARY KEY AUTOINCREMENT,
                                   including STRING,
                                   including_name STRING,
                                   including_type STRING,
                                   included STRING,
                                   included_name STRING,
                                   included_type STRING,
                                   type STRING
                                  )
SQL;
        $this->sqlite->query($query);

        $query = <<<'SQL'
CREATE TABLE atomsCounts (  id INTEGER PRIMARY KEY AUTOINCREMENT,
                            atom STRING,
                            count INTEGER
                         )
SQL;
        $this->sqlite->query($query);

        $query = <<<'SQL'
CREATE TABLE phpStructures (  id INTEGER PRIMARY KEY AUTOINCREMENT,
                              name STRING,
                              type STRING,
                              count INTEGER
)
SQL;
        $this->sqlite->query($query);

        // Name spaces
        $query = <<<'SQL'
CREATE TABLE namespaces (  id INTEGER PRIMARY KEY AUTOINCREMENT,
                           namespace STRING
                        )
SQL;
        $this->sqlite->query($query);
        $this->sqlite->query("INSERT INTO namespaces VALUES (1, '\\')");

        $query = <<<'SQL'
CREATE TABLE cit (  id INTEGER PRIMARY KEY AUTOINCREMENT,
                    name STRING,
                    namespaceId INTEGER DEFAULT 1,
                    type STRING,
                    abstract INTEGER,
                    final INTEGER,
                    phpdoc STRING,
                    begin INTEGER,
                    end INTEGER,
                    file INTEGER,
                    line INTEGER,
                    extends STRING DEFAULT ""
                  )
SQL;
        $this->sqlite->query($query);

        $query = <<<'SQL'
CREATE TABLE cit_implements (  id INTEGER PRIMARY KEY AUTOINCREMENT,
                               implementing INTEGER,
                               implements STRING,
                               type    STRING
                            )
SQL;
        $this->sqlite->query($query);

        $query = <<<'SQL'
CREATE TABLE methods (  id INTEGER PRIMARY KEY AUTOINCREMENT,
                        method INTEGER,
                        citId INTEGER,
                        static INTEGER,
                        final INTEGER,
                        abstract INTEGER,
                        visibility STRING,
                        returntype STRING,
                        phpdoc STRING,
                        begin INTEGER,
                        end INTEGER
                     )
SQL;
        $this->sqlite->query($query);

        $query = <<<'SQL'
CREATE TABLE arguments (id INTEGER PRIMARY KEY AUTOINCREMENT,
                        name STRING,
                        citId INTEGER,
                        methodId INTEGER,
                        rank INTEGER,
                        reference INTEGER,
                        variadic INTEGER,
                        init STRING,
                        line INTEGER,
                        typehint STRING
                     )
SQL;
        $this->sqlite->query($query);

        $query = <<<'SQL'
CREATE TABLE properties (  id INTEGER PRIMARY KEY AUTOINCREMENT,
                           property INTEGER,
                           citId INTEGER,
                           visibility STRING,
                           static INTEGER,
                           phpdoc STRING,
                           value STRING
                           )
SQL;
        $this->sqlite->query($query);

        $query = <<<'SQL'
CREATE TABLE classconstants ( id INTEGER PRIMARY KEY AUTOINCREMENT,
                              constant INTEGER,
                              citId INTEGER,
                              visibility STRING,
                              phpdoc STRING,
                              value STRING
                            )
SQL;
        $this->sqlite->query($query);

        $query = <<<'SQL'
CREATE TABLE constants (  id INTEGER PRIMARY KEY AUTOINCREMENT,
                          constant INTEGER,
                          namespaceId INTEGER,
                          file STRING,
                          value STRING,
                          phpdoc STRING,
                          type STRING
                       )
SQL;
        $this->sqlite->query($query);

        $query = <<<'SQL'
CREATE TABLE functions (  id INTEGER PRIMARY KEY AUTOINCREMENT,
                          function STRING,
                          type STRING,
                          namespaceId INTEGER,
                          returntype STRING,
                          reference INTEGER,
                          file STRING,
                          phpdoc STRING,
                          begin INTEGER,
                          end INTEGER,
                          line INTEGER,
                          CONSTRAINT "unique" UNIQUE (function, line)
)
SQL;
        $this->sqlite->query($query);

        $query = <<<'SQL'
CREATE TABLE readability ( id      INTEGER PRIMARY KEY AUTOINCREMENT,
                           name    STRING,
                           type    STRING,
                           tokens  INTEGER,
                           expressions INTEGER,
                           file        STRING
                         )
SQL;
        $this->sqlite->query($query);


        $query = <<<'SQL'
CREATE TABLE variables (  id INTEGER PRIMARY KEY AUTOINCREMENT,
                          variable STRING,
                          type STRING
                       )
SQL;
        $this->sqlite->query($query);

        $query = <<<'SQL'
CREATE TABLE globalVariables ( id INTEGER PRIMARY KEY AUTOINCREMENT,
                               variable STRING,
                               file STRING,
                               line INTEGER,
                               isRead INTEGER,
                               isModified INTEGER,
                               type STRING
                             )
SQL;
        $this->sqlite->query($query);

        $this->collectDatastore();
        $this->initTablesList();

        $time   = time();
        try {
            $id     = random_int(0, PHP_INT_MAX);
        } catch (\Throwable $e) {
            die("Couldn't generate an id for the current dump file. Aborting");
        }

        if (file_exists($this->sqliteFilePrevious)) {
            $sqliteOld = new \Sqlite3($this->sqliteFilePrevious);
            $sqliteOld->busyTimeout(\SQLITE3_BUSY_TIMEOUT);

            $presence = $sqliteOld->querySingle('SELECT count(*) FROM sqlite_master WHERE type="table" AND name="hash"');
            if ($presence == 1) {
                $serial = $sqliteOld->querySingle('SELECT value FROM hash WHERE key="dump_serial"') + 1;
            } else {
                $serial = 0;
            }
        } else {
            $serial = 1;
        }

        $toDump = array(array('', 'dump_time',   $time),
                        array('', 'dump_id',     $id),
                        array('', 'dump_serial', $serial),
                        );

        $this->storeInTable('hash', $toDump);
        display('Inited tables');
    }

    public function fetchAnalysers(array $analysers): Results {
        $query = 'SELECT fullcode, file, line, analyzer, class, namespace FROM results WHERE analyzer IN (' . makeList($analysers) . ')';
        $res = $this->sqlite->query($query);

        return new Results($res, array('phpsyntax' => array('fullcode' => 'htmlcode')));
    }

    public function fetchAnalysersCounts(array $analysers): Results {
        $query = 'SELECT analyzer, count FROM resultsCounts WHERE analyzer IN (' . makeList($analysers) . ')';
        $res = $this->sqlite->query($query);

        return new Results($res);
    }

    public function fetchTable(string $table, array $cols = array()): Results {
        if (empty($cols)) {
            $cols = '*';
        } else {
            $list = array();
            foreach($cols as $k => $col) {
                if (is_int($k)) {
                    $list[] = $col;
                } else {
                    $list[] = "$col as $k";
                }
            }
            $cols = implode(', ', $cols);
        }

        if (!in_array($table, $this->tablesList)) {
            return new Results();
        }

        $query = "SELECT $cols FROM $table";
        $res = $this->sqlite->query($query);

        return new Results($res);
    }

    public function getExtensionList(): Results {
        $query = <<<'SQL'
SELECT analyzer, count(*) AS count FROM results 
    WHERE analyzer LIKE "Extensions/Ext%"
    GROUP BY analyzer
    ORDER BY count(*) DESC
SQL;

        return $this->query($query);
    }

    public function fetchHash(string $key): Results {
        $query = <<<SQL
SELECT value FROM hash WHERE key = "$key"
SQL;

        return $this->query($query);
    }

    public function fetchHashResults(string $key): Results {
        $query = <<<SQL
SELECT key, value FROM hashResults
WHERE name = "$key"
ORDER BY key + 0
SQL;

        return $this->query($query);
    }

    public function getCit($type = 'class'): Results {
        assert(in_array($type, array('class', 'trait', 'interface')));

        $query = "SELECT name FROM cit WHERE type='$type' ORDER BY name";

        return $this->query($query);
    }

    private function query(string $query): Results {
        $res = $this->sqlite->query($query);

        return new Results($res);
    }

    public function fetchTableFunctions(): Results {
        $res = $this->sqlite->query(<<<'SQL'
SELECT functions.*, 
GROUP_CONCAT((CASE arguments.typehint WHEN ' ' THEN '' ELSE arguments.typehint || ' ' END ) || 
              CASE arguments.reference WHEN 0 THEN '' ELSE '&' END || 
              CASE arguments.variadic WHEN 0 THEN '' ELSE '...' END  || arguments.name || 
              (CASE arguments.init WHEN ' ' THEN '' ELSE ' = ' || arguments.init END),
             ', ' ) AS signature

FROM functions

LEFT JOIN arguments
    ON functions.id = arguments.methodId AND
       arguments.citId = 0
GROUP BY functions.id

SQL
        );

        return new Results($res);
    }

    public function fetchTableMethods(): Results {
        $res = $this->sqlite->query(<<<'SQL'
SELECT methods.*, 
       GROUP_CONCAT((CASE arguments.typehint WHEN ' ' THEN '' ELSE arguments.typehint || ' ' END ) || 
                     CASE arguments.reference WHEN 0 THEN '' ELSE '&' END || 
                     CASE arguments.variadic WHEN 0 THEN '' ELSE '...' END  || arguments.name || 
                     (CASE arguments.init WHEN ' ' THEN '' ELSE ' = ' || arguments.init END),
                    ', ' ) AS signature,
       cit.type AS type,
       namespaces.namespace || "\\" || lower(cit.name) AS fullnspath,
       cit.name AS class

    FROM methods
    LEFT JOIN arguments
        ON methods.id = arguments.methodId
    JOIN cit
        ON methods.citId = cit.id
    JOIN namespaces 
        ON cit.namespaceId = namespaces.id
    GROUP BY methods.id
SQL
        );

        return new Results($res);
    }

    public function fetchTableMethodsByArgument(): Results {
        $res = $this->sqlite->query(<<<'SQL'
SELECT cit.type || ' ' || cit.name AS theClass, 
       namespaces.namespace || "\\" || lower(cit.name) || '::' || lower(methods.method) AS fullnspath,
       methods.method,
       arguments.name AS argument,
       init,
       typehint
FROM cit
JOIN methods 
    ON methods.citId = cit.id
JOIN arguments 
    ON methods.id = arguments.methodId AND
       arguments.citId != 0
JOIN namespaces 
    ON cit.namespaceId = namespaces.id
WHERE type in ("class", "trait", "interface")
ORDER BY fullnspath
SQL
        );

        return new Results($res);
    }

    public function fetchTableMethodsByReturnType(): Results {
        $res = $this->sqlite->query(<<<'SQL'
SELECT cit.type || ' ' || cit.name AS theClass, 
       namespaces.namespace || "\\" || lower(cit.name) AS fullnspath,
       returntype, 
       methods.method
FROM cit
JOIN methods 
    ON methods.citId = cit.id
JOIN namespaces 
    ON cit.namespaceId = namespaces.id
WHERE type in ("class", "trait", "interface")
ORDER BY fullnspath
SQL
        );

        return new Results($res);
    }

    public function fetchTableClassConstants(): Results {
        $res = $this->sqlite->query(<<<'SQL'
SELECT cit.name AS class, 
       classconstants.constant AS constant, 
       value, 
       namespaces.namespace || "\\" || lower(cit.name) AS fullnspath,
       visibility,
       constant,
       cit.type AS type

FROM classconstants 
JOIN cit 
    ON cit.id = classconstants.citId
JOIN namespaces 
    ON cit.namespaceId = namespaces.id

    ORDER BY cit.name, classconstants.constant, value

SQL
        );

        return new Results($res);
    }

    public function fetchTableProperty(): Results {
        $res = $this->sqlite->query(<<<'SQL'
SELECT cit.name AS class, 
       namespaces.namespace || "\\" || lower(cit.name) AS fullnspath,
       visibility, 
       property, 
       value,
       cit.type AS type

    FROM cit
    JOIN properties 
        ON properties.citId = cit.id
    JOIN namespaces 
        ON cit.namespaceId = namespaces.id

SQL
        );

        return new Results($res);
    }

    public function fetchTableCit(): Results {
        $res = $this->sqlite->query(<<<'SQL'
SELECT cit.*, 
       cit.type AS type, 
       namespace,

       ( SELECT GROUP_CONCAT(CASE WHEN cit5.id IS NULL THEN traits.implements ELSE cit5.name END, ',') 
       
       FROM cit_implements AS traits
LEFT JOIN cit cit5
    ON traits.implements = cit5.id
    WHERE traits.implementing = cit.id AND
       traits.type = 'use') AS use,

       (SELECT GROUP_CONCAT(CASE WHEN cit4.id IS NULL THEN implements.implements ELSE cit4.name END, ',') FROM cit_implements AS implements
LEFT JOIN cit cit4
    ON implements.implements = cit4.id
    WHERE implements.implementing = cit.id AND
       implements.type = 'implements') AS implements,

        CASE WHEN cit2.extends IS NULL THEN cit.extends ELSE cit2.name END AS extends 
        
        FROM cit

LEFT JOIN cit cit2 
    ON cit.extends = cit2.id

LEFT JOIN cit_implements AS interfaces
    ON interfaces.implementing = cit.id AND
       interfaces.type = 'implements'
LEFT JOIN cit cit4
    ON interfaces.implements = cit4.id
LEFT JOIN namespaces
    ON namespaces.id = cit.namespaceId


GROUP BY cit.id
SQL
        );

        return new Results($res);
    }

    public function fetchTablePhpcity(): Results {
        $query = <<<'SQL'
SELECT
     cit.id,
     files.file AS file,
     namespaces.namespace AS namespace,
     name,
     extends,
     (SELECT GROUP_CONCAT(implements) FROM cit_implements WHERE cit_implements.implementing = cit.id) AS implements,
     end - begin + 1 AS no_lines,
     (SELECT COUNT(*) FROM properties WHERE properties.citId = cit.id) AS no_attrs,
     (SELECT COUNT(*) FROM methods WHERE methods.citId = cit.id) AS no_methods,
     CASE type 
           WHEN 'trait' 
               THEN 1 
           ELSE 0 END AS trait,
     abstract,
     final,
     'class' AS type
        
     FROM cit
     JOIN namespaces
        ON namespaces.id = cit.namespaceId
     JOIN files
       ON cit.file = files.id
SQL;
        $res = $this->sqlite->query($query);

        return new Results($res);
    }

    public function fetchTableUml(): Results {
        $query = <<<'SQL'
SELECT name, cit.id, extends, type, namespace, 
       (SELECT GROUP_CONCAT(method,   "||")   FROM methods    WHERE citId = cit.id) AS methods,
       (SELECT GROUP_CONCAT( case when value != '' then property || " = " || substr(value, 0, 40) else property end, "||") FROM properties WHERE citId = cit.id) AS properties
    FROM cit
    JOIN namespaces
        ON namespaces.id = cit.namespaceId
SQL;
        $res = $this->sqlite->query($query);

        return new Results($res);
    }

    public function getAnalyzedFiles(array $list): int {
        $list = makeList($list);

        $query = <<<SQL
SELECT COUNT(DISTINCT results.file) 
                            FROM results 
                            JOIN files 
                                ON files.file = results.file
                            WHERE results.file != 'None'               AND 
                                  results.file LIKE '/%'               AND 
                                  analyzer IN ($list)
SQL;
        $result = $this->sqlite->querySingle($query) ?? '';

        return $result;
    }

    public function getTotalAnalyzer(): array {
        $query = <<<'SQL'
SELECT COUNT(*) AS total, 
       COUNT(CASE WHEN rc.count != 0 THEN 1 ELSE null END) AS yielding 
    FROM resultsCounts AS rc
    WHERE rc.count >= 0
SQL;
        $result = $this->sqlite->query($query);

        return $result->fetchArray(\SQLITE3_ASSOC);
    }

    public function getSeverityBreakdown(array $list): Results {
        $list = makeList($list);
        $query = <<<SQL
SELECT severity AS label, count(*) AS value
    FROM results
    WHERE analyzer IN ($list)
    GROUP BY severity
    ORDER BY value DESC
SQL;
        $result = $this->sqlite->query($query);

        return new Results($result);
    }

    public function getFileBreakdown(array $list): Results {
        $list = makeList($list);
        $query = <<<SQL
SELECT file, count(*) AS value
    FROM results
    WHERE analyzer IN ($list)
    GROUP BY file
    ORDER BY value DESC
SQL;
        $result = $this->sqlite->query($query);

        return new Results($result);
    }

    public function getTopAnalyzers(array $list, int $limit): Results {
        $listSQL = makeList($list);

        $query = <<<SQL
SELECT analyzer, count(*) AS number
    FROM results
    WHERE analyzer IN ($listSQL)
    GROUP BY analyzer
    ORDER BY number DESC
    LIMIT $limit
SQL;
        $result = $this->sqlite->query($query);

        return new Results($result);
    }

    public function getSeveritiesNumberBy(array $list, string $type): Results {
        $listSQL = makeList($list);

        $query = <<<SQL
SELECT $type, severity, count(*) AS count
    FROM results
    WHERE analyzer IN ($listSQL)
    GROUP BY $type, severity
SQL;
        $result = $this->sqlite->query($query);

        return new Results($result);
    }

    public function getAnalyzersCount(array $list): Results {
        $listSQL = makeList($list);

        $query = <<<SQL
SELECT analyzer, count(*) AS value
    FROM results
    WHERE analyzer in ($listSQL)
    GROUP BY analyzer
    ORDER BY value DESC
SQL;
        $result = $this->sqlite->query($query);

        return new Results($result);
    }

    public function fetchPlantUml(): Results {
        $query = <<<SQL
SELECT name, cit.id, extends, type, namespace, 
       (SELECT GROUP_CONCAT(method,   "\n")   FROM methods    WHERE citId = cit.id) AS methods,
       (SELECT GROUP_CONCAT(visibility || ' ' || case when static != 0 then 'static ' else '' end ||  case when value != '' then property || " = " || substr(value, 0, 40) else property end, "\n") 
            FROM properties WHERE citId = cit.id) AS properties
    FROM cit
    JOIN namespaces
        ON namespaces.id = cit.namespaceId
SQL;
        $result = $this->sqlite->query($query);

        return new Results($result);
    }

    public function getFilesResultsCounts(array $list): Results {
        $listSQL = makeList($list);

        $query = <<<SQL
SELECT file AS file, 
       line AS loc, 
       count(*) AS issues, 
       COUNT(DISTINCT analyzer) AS analyzers 
    FROM results
    WHERE line != -1 AND
          analyzer IN ($listSQL)
    GROUP BY file
SQL;
        $result = $this->sqlite->query($query);

        return new Results($result);
    }

    public function getAnalyzersResultsCounts(array $list): Results {
        $listSQL = makeList($list);

        $query = <<<SQL
SELECT analyzer, count(*) AS issues, COUNT(DISTINCT file) AS files, 
       severity AS severity 
    FROM results
    WHERE analyzer IN ($listSQL)
    GROUP BY analyzer
SQL;
        $result = $this->sqlite->query($query);

        return new Results($result);
    }

    public function getCountFileByAnalyzers(array $list): Results {
        $listSQL = makeList($list);

        $query = <<<SQL
SELECT count(*)  AS number
    FROM (SELECT DISTINCT file FROM results WHERE analyzer in ($listSQL))
SQL;
        $result = $this->sqlite->querySingle($query) ?? '';

        return new Results($result);
    }

    public function getFunctionsFromAnalyzer(string $analyzer): array {
        $query = <<<SQL
SELECT GROUP_CONCAT(DISTINCT REPLACE(SUBSTR(fullcode, 0, instr(fullcode, '(')), '@', ''))  AS functions FROM results 
    WHERE analyzer = "$analyzer";
SQL;
        $res = $this->sqlite->querySingle($query) ?? '';

        return explode(',', $res);
    }

    public function getCitBySize(string $type = 'class'): Results {
        $query = <<<SQL
SELECT namespaces.namespace || name AS name, 
       name AS shortName, 
       (cit.end - cit.begin + 1) AS size 
    FROM cit 
    JOIN namespaces 
        ON namespaces.id = cit.namespaceId
    WHERE
       cit.type = '$type'
    ORDER BY (cit.end - cit.begin) DESC
SQL;
        $result = $this->sqlite->query($query);

        return new Results($result);
    }

    public function getMethodsBySize(): Results {
        $query = <<<'SQL'
SELECT namespaces.namespace || CASE namespaces.namespace WHEN '\' THEN '' ELSE '\' END || name || '::' || method AS name, 
       method AS shortName, 
       files.file, 
       (methods.end - methods.begin + 1) AS size
    FROM methods 
    JOIN cit
        on methods.citId = cit.id AND
           cit.type = 'class'
    LEFT JOIN files 
        ON files.id = cit.file
    LEFT JOIN namespaces 
        ON namespaces.id = cit.namespaceId
    ORDER BY (methods.end - methods.begin) DESC
SQL;
        $result = $this->sqlite->query($query);

        return new Results($result);
    }

    public function getConcentratedIssues(array $list = array(), int $count = 5): Results {
        $sqlList = makeList($list);

        $query = <<<SQL
SELECT file, 
       line, 
       COUNT(*) AS count, 
       GROUP_CONCAT(DISTINCT analyzer) AS list 
    FROM results
    WHERE analyzer IN ($sqlList)
    GROUP BY file, line
    HAVING count(DISTINCT analyzer) > $count
    ORDER BY count(*) DESC
SQL;
        $result = $this->sqlite->query($query);

        return new Results($result);
    }

    public function getIdenticalFiles(): Results {
        $query = <<<'SQL'
SELECT GROUP_CONCAT(file) AS list, 
       count(*) AS count 
    FROM files 
    GROUP BY fnv132 
    HAVING COUNT(*) > 1 
    ORDER BY COUNT(*), file
SQL;
        $result = $this->sqlite->query($query);

        return new Results($result);
    }

    public function getCitTree(string $type = 'class'): Results {
        if ($type === 'trait') {
            // Missing when raw FQN is used
            $query = <<<'SQL'
    SELECT ns.namespace || cit.name AS child, 
           ttu.implements AS parent
        FROM cit 
        JOIN
          cit_implements AS ttu 
          ON ttu.implementing = cit.id AND
             ttu.type = 'use' 
        JOIN namespaces ns
            ON cit.namespaceId = ns.id
        WHERE cit.type="trait" AND
             ttu.implements + 0 = 0
             
UNION

    SELECT ns.namespace || cit.name AS child, 
           ns2.namespace || cit2.name AS parent 
        FROM cit 
        JOIN
          cit_implements AS ttu 
          ON ttu.implementing = cit.id AND
             ttu.type = 'use'
        JOIN cit cit2 
            ON ttu.implementing = cit.id
        JOIN namespaces ns
            ON cit.namespaceId = ns.id
        JOIN namespaces ns2
            ON cit2.namespaceId = ns2.id
        WHERE cit.type="trait" AND
              cit2.type="trait"
SQL;
        } else {
            $query = <<<SQL
SELECT ns.namespace || cit.name AS child, 
       ns2.namespace || cit2.name AS parent 
    FROM cit 
    LEFT JOIN cit cit2 
        ON cit.extends = cit2.id
    JOIN namespaces ns
        ON cit.namespaceId = ns.id
    JOIN namespaces ns2
        ON cit2.namespaceId = ns2.id
    WHERE cit.type="$type" AND
          cit2.type="$type"
SQL;
        }
        $result = $this->sqlite->query($query);

        return new Results($result);
    }

    public function getTraitConflicts(): Results {
        $query = <<<'SQL'
SELECT
   t1.name AS t1,
   t2.name AS t2,
   LOWER(SUBSTR(m1.METHOD, INSTR(m1.METHOD, 'function ') + 9, INSTR(m1.METHOD, '(') - (INSTR(m1.METHOD, 'function ') + 9))) AS method 
FROM
   cit AS t1 
   JOIN
      methods AS m1 
      ON m1.citId = t1.id 
   JOIN
      methods AS m2 
      ON m1.id != m2.id 
      AND LOWER(SUBSTR(m1.METHOD, INSTR(m1.METHOD, 'function ') + 9, INSTR(m1.METHOD, '(') - (INSTR(m1.METHOD, 'function ') + 9))) = LOWER(SUBSTR(m2.METHOD, INSTR(m2.METHOD, 'function ') + 9, INSTR(m2.METHOD, '(') - (INSTR(m2.METHOD, 'function ') + 9))) 
   JOIN
      cit AS t2 
      ON m2.citId = t2.id 
WHERE
   t1.type = 'trait' 
   AND t2.type = 'trait'
SQL;
        $result = $this->sqlite->query($query);

        return new Results($result);
    }

    public function getTraitUsage(): Results {
        $query = <<<'SQL'
SELECT
   t1.name AS t1,
   t2.name AS t2
FROM
   cit AS t1 
   JOIN
      cit_implements AS ttu 
      ON ttu.implementing = t1.id AND
         ttu.type = 'use'
   JOIN
      cit AS t2 
      ON ttu.implements = t2.id 
WHERE
   t1.type = 'trait' 
   AND t2.type = 'trait'
SQL;
        $result = $this->sqlite->query($query);

        return new Results($result);
    }

}

?><?php declare(strict_types = 1);

namespace Exakat\Dump;

use Exakat\Reports\Helpers\Results;

class Dump2 extends Dump1 {
    private const VERSION = 2;

    protected function initDump(): void {
        $query = <<<'SQL'
CREATE TABLE themas (  id    INTEGER PRIMARY KEY AUTOINCREMENT,
                       thema STRING,
                       CONSTRAINT "themas" UNIQUE (thema) ON CONFLICT IGNORE
                    )
SQL;
        $this->sqlite->query($query);

        $query = <<<'SQL'
CREATE TABLE results (  id INTEGER PRIMARY KEY AUTOINCREMENT,
                        fullcode STRING,
                        file STRING,
                        line INTEGER,
                        namespace STRING,
                        class STRING,
                        function STRING,
                        analyzer STRING,
                        severity STRING
                     )
SQL;
        $this->sqlite->query($query);

        $query = <<<'SQL'
CREATE TABLE resultsCounts ( id INTEGER PRIMARY KEY AUTOINCREMENT,
                             analyzer STRING,
                             count INTEGER DEFAULT -6,
                             CONSTRAINT "analyzers" UNIQUE (analyzer) ON CONFLICT REPLACE
                           )
SQL;
        $this->sqlite->query($query);

        $query = <<<'SQL'
CREATE TABLE hashAnalyzer ( id INTEGER PRIMARY KEY,
                            analyzer STRING,
                            key STRING UNIQUE,
                            value STRING
                          );
SQL;
        $this->sqlite->query($query);

        $query = <<<'SQL'
CREATE TABLE hashResults ( id INTEGER PRIMARY KEY AUTOINCREMENT,
                            name STRING,
                            key STRING,
                            value STRING
                          );
SQL;
        $this->sqlite->query($query);

        $query = <<<'SQL'
CREATE TABLE classChanges (  
    id           INTEGER PRIMARY KEY AUTOINCREMENT,
    changeType   STRING,
    name         STRING,
    parentClass  STRING,
    parentValue  STRING,
    childClass   STRING,
    childValue   STRING
                    )
SQL;
        $this->sqlite->query($query);

        $query = <<<'SQL'
CREATE TABLE filesDependencies ( id INTEGER PRIMARY KEY AUTOINCREMENT,
                                 including STRING,
                                 included STRING,
                                 type STRING
                                )
SQL;
        $this->sqlite->query($query);

        $query = <<<'SQL'
CREATE TABLE classesDependencies ( id INTEGER PRIMARY KEY AUTOINCREMENT,
                                   including STRING,
                                   including_name STRING,
                                   including_type STRING,
                                   included STRING,
                                   included_name STRING,
                                   included_type STRING,
                                   type STRING
                                  )
SQL;
        $this->sqlite->query($query);

        $query = <<<'SQL'
CREATE TABLE atomsCounts (  id INTEGER PRIMARY KEY AUTOINCREMENT,
                            atom STRING,
                            count INTEGER
                         )
SQL;
        $this->sqlite->query($query);

        $query = <<<'SQL'
CREATE TABLE phpStructures (  id INTEGER PRIMARY KEY AUTOINCREMENT,
                              name STRING,
                              type STRING,
                              count INTEGER
)
SQL;
        $this->sqlite->query($query);

        // Name spaces
        $query = <<<'SQL'
CREATE TABLE namespaces (  id INTEGER PRIMARY KEY AUTOINCREMENT,
                           namespace STRING
                        )
SQL;
        $this->sqlite->query($query);
        $this->sqlite->query("INSERT INTO namespaces VALUES (1, '\\')");

        $query = <<<'SQL'
CREATE TABLE cit (  id INTEGER PRIMARY KEY AUTOINCREMENT,
                    name STRING,
                    namespaceId INTEGER DEFAULT 1,
                    type STRING,
                    abstract INTEGER,
                    final INTEGER,
                    phpdoc STRING,
                    begin INTEGER,
                    end INTEGER,
                    file INTEGER,
                    line INTEGER,
                    extends STRING DEFAULT ""
                  )
SQL;
        $this->sqlite->query($query);

        $query = <<<'SQL'
CREATE TABLE cit_implements (  id INTEGER PRIMARY KEY AUTOINCREMENT,
                               implementing INTEGER,
                               implements STRING,
                               type    STRING,
                               options STRING
                            )
SQL;
        $this->sqlite->query($query);

        $query = <<<'SQL'
CREATE TABLE methods (  id INTEGER PRIMARY KEY AUTOINCREMENT,
                        method INTEGER,
                        citId INTEGER,
                        static INTEGER,
                        final INTEGER,
                        abstract INTEGER,
                        reference INTEGER,
                        visibility STRING,
                        returntype STRING,
                        returntype_fnp STRING,
                        phpdoc STRING,
                        begin INTEGER,
                        end INTEGER
                     )
SQL;
        $this->sqlite->query($query);

        $query = <<<'SQL'
CREATE TABLE arguments (id INTEGER PRIMARY KEY AUTOINCREMENT,
                        name STRING,
                        citId INTEGER,
                        methodId INTEGER,
                        rank INTEGER,
                        reference INTEGER,
                        variadic INTEGER,
                        init STRING,
                        line INTEGER,
                        typehint STRING,
                        typehint_fnp STRING,
                        phpdoc STRING
                     )
SQL;
        $this->sqlite->query($query);

        $query = <<<'SQL'
CREATE TABLE properties (  id INTEGER PRIMARY KEY AUTOINCREMENT,
                           property INTEGER,
                           citId INTEGER,
                           visibility STRING,
                           static INTEGER,
                           phpdoc STRING,
                           value STRING,
                           typehint STRING,
                           typehint_fnp STRING
                           )
SQL;
        $this->sqlite->query($query);

        $query = <<<'SQL'
CREATE TABLE classconstants ( id INTEGER PRIMARY KEY AUTOINCREMENT,
                              constant INTEGER,
                              citId INTEGER,
                              visibility STRING,
                              value STRING,
                              phpdoc STRING
                            )
SQL;
        $this->sqlite->query($query);

        $query = <<<'SQL'
CREATE TABLE constants (  id INTEGER PRIMARY KEY AUTOINCREMENT,
                          constant INTEGER,
                          namespaceId INTEGER,
                          file STRING,
                          value STRING,
                          phpdoc STRING,
                          type STRING
                       )
SQL;
        $this->sqlite->query($query);

        $query = <<<'SQL'
CREATE TABLE functions (  id INTEGER PRIMARY KEY AUTOINCREMENT,
                          function STRING,
                          type STRING,
                          namespaceId INTEGER,
                          returntype STRING,
                          returntype_fnp STRING,
                          reference INTEGER,
                          file STRING,
                          phpdoc STRING,
                          begin INTEGER,
                          end INTEGER,
                          CONSTRAINT "unique" UNIQUE (function, begin)
)
SQL;
        $this->sqlite->query($query);

        $query = <<<'SQL'
CREATE TABLE readability ( id      INTEGER PRIMARY KEY AUTOINCREMENT,
                           name    STRING,
                           type    STRING,
                           tokens  INTEGER,
                           expressions INTEGER,
                           file        STRING
                         )
SQL;
        $this->sqlite->query($query);


        $query = <<<'SQL'
CREATE TABLE variables (  id INTEGER PRIMARY KEY AUTOINCREMENT,
                          variable STRING,
                          type STRING
                       )
SQL;
        $this->sqlite->query($query);

        $query = <<<'SQL'
CREATE TABLE globalVariables ( id INTEGER PRIMARY KEY AUTOINCREMENT,
                               variable STRING,
                               file STRING,
                               line INTEGER,
                               isRead INTEGER,
                               isModified INTEGER,
                               type STRING
                             )
SQL;
        $this->sqlite->query($query);

        $this->collectDatastore();
        $this->initTablesList();

        $time   = time();
        try {
            $id     = random_int(0, PHP_INT_MAX);
        } catch (\Throwable $e) {
            die("Couldn't generate an id for the current dump file. Aborting");
        }

        if (file_exists($this->sqliteFilePrevious)) {
            $sqliteOld = new \Sqlite3($this->sqliteFilePrevious);
            $sqliteOld->busyTimeout(\SQLITE3_BUSY_TIMEOUT);

            $presence = $sqliteOld->querySingle('SELECT count(*) FROM sqlite_master WHERE type="table" AND name="hash"');
            if ($presence == 1) {
                $serial = $sqliteOld->querySingle('SELECT value FROM hash WHERE key="dump_serial"') + 1;
            } else {
                $serial = 0;
            }
        } else {
            $serial = 1;
        }

        $toDump = array(array('', 'dump_time',   $time),
                        array('', 'dump_id',     $id),
                        array('', 'dump_serial', $serial),
                        array('', 'dump_version', self::VERSION)
                        );

        $this->storeInTable('hash', $toDump);
        display('Inited tables');
    }

    public function fetchAnalysers(array $analysers): Results {
        $query = 'SELECT fullcode, file, line, analyzer, class, namespace FROM results WHERE analyzer IN (' . makeList($analysers) . ')';
        $res = $this->sqlite->query($query);

        return new Results($res, array('phpsyntax' => array('fullcode' => 'htmlcode')));
    }

    public function fetchAnalysersCounts(array $analysers): Results {
        $query = 'SELECT analyzer, count FROM resultsCounts WHERE analyzer IN (' . makeList($analysers) . ')';
        $res = $this->sqlite->query($query);

        return new Results($res);
    }

    public function fetchTable(string $table, array $cols = array()): Results {
        if (empty($cols)) {
            $cols = '*';
        } else {
            $list = array();
            foreach($cols as $k => $col) {
                if (is_int($k)) {
                    $list[] = $col;
                } else {
                    $list[] = "$col as $k";
                }
            }
            $cols = implode(', ', $cols);
        }

        if (!in_array($table, $this->tablesList)) {
            return new Results();
        }

        $query = "SELECT $cols FROM $table";
        $res = $this->sqlite->query($query);

        return new Results($res);
    }

    public function getExtensionList(): Results {
        $query = <<<'SQL'
SELECT analyzer, count(*) AS count FROM results 
    WHERE analyzer LIKE "Extensions/Ext%"
    GROUP BY analyzer
    ORDER BY count(*) DESC
SQL;

        return $this->query($query);
    }

    public function fetchHash(string $key): Results {
        $query = <<<SQL
SELECT value FROM hash WHERE key = "$key"
SQL;

        return $this->query($query);
    }

    public function fetchHashResults(string $key): Results {
        $query = <<<SQL
SELECT key, value FROM hashResults
WHERE name = "$key"
ORDER BY key + 0
SQL;

        return $this->query($query);
    }

    public function fetchHashAnalyzer(string $analyzer): Results {
        $query = <<<SQL
SELECT key, value FROM hashAnalyzer
WHERE analyzer = "$analyzer"
SQL;

        return $this->query($query);
    }

    public function getCit($type = 'class'): Results {
        assert(in_array($type, array('class', 'trait', 'interface')));

        $query = "SELECT name FROM cit WHERE type='$type' ORDER BY name";

        return $this->query($query);
    }

    private function query(string $query): Results {
        $res = $this->sqlite->query($query);

        return new Results($res);
    }

    public function fetchTableFunctions(): Results {
        $res = $this->sqlite->query(<<<'SQL'
SELECT functions.*, 
GROUP_CONCAT((CASE arguments.typehint WHEN ' ' THEN '' ELSE arguments.typehint || ' ' END ) || 
              CASE arguments.reference WHEN 0 THEN '' ELSE '&' END || 
              CASE arguments.variadic WHEN 0 THEN '' ELSE '...' END  || arguments.name || 
              (CASE arguments.init WHEN ' ' THEN '' ELSE ' = ' || arguments.init END),
             ', ' ) AS signature

FROM functions

LEFT JOIN arguments
    ON functions.id = arguments.methodId AND
       arguments.citId = 0
GROUP BY functions.id

SQL
        );

        return new Results($res);
    }

    public function fetchTableMethods(): Results {
        $res = $this->sqlite->query(<<<'SQL'
SELECT methods.*, 
       GROUP_CONCAT((CASE arguments.typehint WHEN ' ' THEN '' ELSE arguments.typehint || ' ' END ) || 
                     CASE arguments.reference WHEN 0 THEN '' ELSE '&' END || 
                     CASE arguments.variadic WHEN 0 THEN '' ELSE '...' END  || arguments.name || 
                     (CASE arguments.init WHEN ' ' THEN '' ELSE ' = ' || arguments.init END),
                    ', ' ) AS signature,
       cit.type AS type,
       namespaces.namespace || "\\" || lower(cit.name) AS fullnspath,
       cit.name AS class,
       cit.file AS file,
       methods.begin AS line

    FROM methods
    LEFT JOIN arguments
        ON methods.id = arguments.methodId
    JOIN cit
        ON methods.citId = cit.id
    JOIN namespaces 
        ON cit.namespaceId = namespaces.id
    GROUP BY methods.id
SQL
        );

        return new Results($res);
    }

    public function fetchTableMethodsByArgument(): Results {
        $res = $this->sqlite->query(<<<'SQL'
SELECT cit.type || ' ' || cit.name AS theClass, 
       cit.type AS citType,
       cit.name AS citName, 
       lower(namespaces.namespace) || lower(cit.name) || '::' || lower(methods.method) AS fullnspath,
       methods.method,
       arguments.name AS argument,
       init,
       typehint,
       typehint_fnp,
       rank,
       arguments.line,
       cit.file
FROM cit
JOIN methods 
    ON methods.citId = cit.id
JOIN arguments 
    ON methods.id = arguments.methodId AND
       arguments.citId != 0
JOIN namespaces 
    ON cit.namespaceId = namespaces.id
WHERE type in ("class", "trait", "interface")
ORDER BY fullnspath
SQL
        );

        return new Results($res);
    }

    public function fetchTableMethodsByReturnType(): Results {
        $res = $this->sqlite->query(<<<'SQL'
SELECT cit.type || ' ' || cit.name AS theClass, 
       namespaces.namespace || "\\" || lower(cit.name) AS fullnspath,
       returntype, 
       methods.method
FROM cit
JOIN methods 
    ON methods.citId = cit.id
JOIN namespaces 
    ON cit.namespaceId = namespaces.id
WHERE type in ("class", "trait", "interface")
ORDER BY fullnspath
SQL
        );

        return new Results($res);
    }

    public function fetchTableClassConstants(): Results {
        $res = $this->sqlite->query(<<<'SQL'
SELECT cit.name AS class, 
       classconstants.constant AS constant, 
       value, 
       namespaces.namespace || "\\" || lower(cit.name) AS fullnspath,
       visibility,
       constant,
       cit.type AS type

FROM classconstants 
JOIN cit 
    ON cit.id = classconstants.citId
JOIN namespaces 
    ON cit.namespaceId = namespaces.id

    ORDER BY cit.name, classconstants.constant, value

SQL
        );

        return new Results($res);
    }

    public function fetchTableProperty(): Results {
        $res = $this->sqlite->query(<<<'SQL'
SELECT cit.name AS class, 
       namespaces.namespace || "\\" || lower(cit.name) AS fullnspath,
       visibility, 
       property, 
       value,
       cit.type AS type

    FROM cit
    JOIN properties 
        ON properties.citId = cit.id
    JOIN namespaces 
        ON cit.namespaceId = namespaces.id

SQL
        );

        return new Results($res);
    }

    public function fetchTableCit(): Results {
        $res = $this->sqlite->query(<<<'SQL'
SELECT cit.*, 
       cit.type AS type, 
       namespace,

       ( SELECT GROUP_CONCAT(CASE WHEN cit5.id IS NULL THEN traits.implements ELSE cit5.name END, ',') 
       
       FROM cit_implements AS traits
LEFT JOIN cit cit5
    ON traits.implements = cit5.id
    WHERE traits.implementing = cit.id AND
       traits.type = 'use') AS use,

       (SELECT GROUP_CONCAT(CASE WHEN cit4.id IS NULL THEN implements.implements ELSE cit4.name END, ',') FROM cit_implements AS implements
LEFT JOIN cit cit4
    ON implements.implements = cit4.id
    WHERE implements.implementing = cit.id AND
       implements.type = 'implements') AS implements,

        CASE WHEN cit2.extends IS NULL THEN cit.extends ELSE cit2.name END AS extends 
        
        FROM cit

LEFT JOIN cit cit2 
    ON cit.extends = cit2.id

LEFT JOIN cit_implements AS interfaces
    ON interfaces.implementing = cit.id AND
       interfaces.type = 'implements'
LEFT JOIN cit cit4
    ON interfaces.implements = cit4.id
LEFT JOIN namespaces
    ON namespaces.id = cit.namespaceId


GROUP BY cit.id
SQL
        );

        return new Results($res);
    }

    public function fetchTablePhpcity(): Results {
        $query = <<<'SQL'
SELECT
     cit.id,
     files.file AS file,
     namespaces.namespace AS namespace,
     name,
     extends,
     (SELECT GROUP_CONCAT(implements) FROM cit_implements WHERE cit_implements.implementing = cit.id) AS implements,
     end - begin + 1 AS no_lines,
     (SELECT COUNT(*) FROM properties WHERE properties.citId = cit.id) AS no_attrs,
     (SELECT COUNT(*) FROM methods WHERE methods.citId = cit.id) AS no_methods,
     CASE type 
           WHEN 'trait' 
               THEN 1 
           ELSE 0 END AS trait,
     abstract,
     final,
     'class' AS type
        
     FROM cit
     JOIN namespaces
        ON namespaces.id = cit.namespaceId
     JOIN files
       ON cit.file = files.id
SQL;
        $res = $this->sqlite->query($query);

        return new Results($res);
    }

    public function fetchTableUml(): Results {
        $query = <<<'SQL'
SELECT name, cit.id, extends, type, namespace, 
       (SELECT GROUP_CONCAT(method,   "||")   FROM methods    WHERE citId = cit.id) AS methods,
       (SELECT GROUP_CONCAT( case when value != '' then property || " = " || substr(value, 0, 40) else property end, "||") FROM properties WHERE citId = cit.id) AS properties
    FROM cit
    JOIN namespaces
        ON namespaces.id = cit.namespaceId
SQL;
        $res = $this->sqlite->query($query);

        return new Results($res);
    }

    public function getAnalyzedFiles(array $list): int {
        $list = makeList($list);

        $query = <<<SQL
SELECT COUNT(DISTINCT results.file) 
                            FROM results 
                            JOIN files 
                                ON files.file = results.file
                            WHERE results.file != 'None'               AND 
                                  results.file LIKE '/%'               AND 
                                  analyzer IN ($list)
SQL;
        $result = $this->sqlite->querySingle($query) ?? '';

        return $result;
    }

    public function getTotalAnalyzer(): array {
        $query = <<<'SQL'
SELECT COUNT(*) AS total, 
       COUNT(CASE WHEN rc.count != 0 THEN 1 ELSE null END) AS yielding 
    FROM resultsCounts AS rc
    WHERE rc.count >= 0
SQL;
        $result = $this->sqlite->query($query);

        return $result->fetchArray(\SQLITE3_ASSOC);
    }

    public function getSeverityBreakdown(array $list): Results {
        $list = makeList($list);
        $query = <<<SQL
SELECT severity AS label, count(*) AS value
    FROM results
    WHERE analyzer IN ($list)
    GROUP BY severity
    ORDER BY value DESC
SQL;
        $result = $this->sqlite->query($query);

        return new Results($result);
    }

    public function getFileBreakdown(array $list): Results {
        $list = makeList($list);
        $query = <<<SQL
SELECT file, count(*) AS value
    FROM results
    WHERE analyzer IN ($list)
    GROUP BY file
    ORDER BY value DESC
SQL;
        $result = $this->sqlite->query($query);

        return new Results($result);
    }

    public function getTopAnalyzers(array $list, int $limit): Results {
        $listSQL = makeList($list);

        $query = <<<SQL
SELECT analyzer, count(*) AS number
    FROM results
    WHERE analyzer IN ($listSQL)
    GROUP BY analyzer
    ORDER BY number DESC
    LIMIT $limit
SQL;
        $result = $this->sqlite->query($query);

        return new Results($result);
    }

    public function getSeveritiesNumberBy(array $list, string $type): Results {
        $listSQL = makeList($list);

        $query = <<<SQL
SELECT $type, severity, count(*) AS count
    FROM results
    WHERE analyzer IN ($listSQL)
    GROUP BY $type, severity
SQL;
        $result = $this->sqlite->query($query);

        return new Results($result);
    }

    public function getAnalyzersCount(array $list): Results {
        $listSQL = makeList($list);

        $query = <<<SQL
SELECT analyzer, count(*) AS value
    FROM results
    WHERE analyzer in ($listSQL)
    GROUP BY analyzer
    ORDER BY value DESC
SQL;
        $result = $this->sqlite->query($query);

        return new Results($result);
    }

    public function fetchPlantUml(): Results {
        $query = <<<SQL
SELECT name, cit.id, extends, type, namespace, 
       (SELECT GROUP_CONCAT(method,   "\n")   FROM methods    WHERE citId = cit.id) AS methods,
       (SELECT GROUP_CONCAT(visibility || ' ' || case when static != 0 then 'static ' else '' end ||  case when value != '' then property || " = " || substr(value, 0, 40) else property end, "\n") 
            FROM properties WHERE citId = cit.id) AS properties
    FROM cit
    JOIN namespaces
        ON namespaces.id = cit.namespaceId
SQL;
        $result = $this->sqlite->query($query);

        return new Results($result);
    }

    public function getFilesResultsCounts(array $list): Results {
        $listSQL = makeList($list);

        $query = <<<SQL
SELECT file AS file, 
       line AS loc, 
       count(*) AS issues, 
       COUNT(DISTINCT analyzer) AS analyzers 
    FROM results
    WHERE line != -1 AND
          analyzer IN ($listSQL)
    GROUP BY file
SQL;
        $result = $this->sqlite->query($query);

        return new Results($result);
    }

    public function getAnalyzersResultsCounts(array $list): Results {
        $listSQL = makeList($list);

        $query = <<<SQL
SELECT analyzer, count(*) AS issues, COUNT(DISTINCT file) AS files, 
       severity AS severity 
    FROM results
    WHERE analyzer IN ($listSQL)
    GROUP BY analyzer
SQL;
        $result = $this->sqlite->query($query);

        return new Results($result);
    }

    public function getCountFileByAnalyzers(array $list): Results {
        $listSQL = makeList($list);

        $query = <<<SQL
SELECT count(*)  AS number
    FROM (SELECT DISTINCT file FROM results WHERE analyzer in ($listSQL))
SQL;
        $result = $this->sqlite->querySingle($query) ?? '';

        return new Results($result);
    }

    public function getFunctionsFromAnalyzer(string $analyzer): array {
        $query = <<<SQL
SELECT GROUP_CONCAT(DISTINCT REPLACE(SUBSTR(fullcode, 0, instr(fullcode, '(')), '@', ''))  AS functions FROM results 
    WHERE analyzer = "$analyzer";
SQL;
        $res = $this->sqlite->querySingle($query) ?? '';

        return explode(',', $res);
    }

    public function getCitBySize(string $type = 'class'): Results {
        $query = <<<SQL
SELECT namespaces.namespace || name AS name, 
       name AS shortName, 
       (cit.end - cit.begin + 1) AS size 
    FROM cit 
    JOIN namespaces 
        ON namespaces.id = cit.namespaceId
    WHERE
       cit.type = '$type'
    ORDER BY (cit.end - cit.begin) DESC
SQL;
        $result = $this->sqlite->query($query);

        return new Results($result);
    }

    public function getMethodsBySize(): Results {
        $query = <<<'SQL'
SELECT namespaces.namespace || CASE namespaces.namespace WHEN '\' THEN '' ELSE '\' END || name || '::' || method AS name, 
       method AS shortName, 
       files.file, 
       (methods.end - methods.begin + 1) AS size
    FROM methods 
    JOIN cit
        on methods.citId = cit.id AND
           cit.type = 'class'
    LEFT JOIN files 
        ON files.id = cit.file
    LEFT JOIN namespaces 
        ON namespaces.id = cit.namespaceId
    ORDER BY (methods.end - methods.begin) DESC
SQL;
        $result = $this->sqlite->query($query);

        return new Results($result);
    }

    public function getConcentratedIssues(array $list = array(), int $count = 5): Results {
        $sqlList = makeList($list);

        $query = <<<SQL
SELECT file, 
       line, 
       COUNT(*) AS count, 
       GROUP_CONCAT(DISTINCT analyzer) AS list 
    FROM results
    WHERE analyzer IN ($sqlList)
    GROUP BY file, line
    HAVING count(DISTINCT analyzer) > $count
    ORDER BY count(*) DESC
SQL;
        $result = $this->sqlite->query($query);

        return new Results($result);
    }

    public function getIdenticalFiles(): Results {
        $query = <<<'SQL'
SELECT GROUP_CONCAT(file) AS list, 
       count(*) AS count 
    FROM files 
    GROUP BY fnv132 
    HAVING COUNT(*) > 1 
    ORDER BY COUNT(*), file
SQL;
        $result = $this->sqlite->query($query);

        return new Results($result);
    }

    public function getCitTree(string $type = 'class'): Results {
        if ($type === 'trait') {
            // Missing when raw FQN is used
            $query = <<<'SQL'
    SELECT ns.namespace || cit.name AS child, 
           ttu.implements AS parent
        FROM cit 
        JOIN
          cit_implements AS ttu 
          ON ttu.implementing = cit.id AND
             ttu.type = 'use' 
        JOIN namespaces ns
            ON cit.namespaceId = ns.id
        WHERE cit.type="trait" AND
             ttu.implements + 0 = 0
             
UNION

    SELECT ns.namespace || cit.name AS child, 
           ns2.namespace || cit2.name AS parent 
        FROM cit 
        JOIN
          cit_implements AS ttu 
          ON ttu.implementing = cit.id AND
             ttu.type = 'use'
        JOIN cit cit2 
            ON ttu.implementing = cit.id
        JOIN namespaces ns
            ON cit.namespaceId = ns.id
        JOIN namespaces ns2
            ON cit2.namespaceId = ns2.id
        WHERE cit.type="trait" AND
              cit2.type="trait"
SQL;
        } else {
            $query = <<<SQL
SELECT ns.namespace || cit.name AS child, 
       ns2.namespace || cit2.name AS parent 
    FROM cit 
    LEFT JOIN cit cit2 
        ON cit.extends = cit2.id
    JOIN namespaces ns
        ON cit.namespaceId = ns.id
    JOIN namespaces ns2
        ON cit2.namespaceId = ns2.id
    WHERE cit.type="$type" AND
          cit2.type="$type"
SQL;
        }
        $result = $this->sqlite->query($query);

        return new Results($result);
    }

    public function getTraitConflicts(): Results {
        $query = <<<'SQL'
SELECT
   t1.name AS t1,
   t2.name AS t2,
   LOWER(SUBSTR(m1.METHOD, INSTR(m1.METHOD, 'function ') + 9, INSTR(m1.METHOD, '(') - (INSTR(m1.METHOD, 'function ') + 9))) AS method 
FROM
   cit AS t1 
   JOIN
      methods AS m1 
      ON m1.citId = t1.id 
   JOIN
      methods AS m2 
      ON m1.id != m2.id 
      AND LOWER(SUBSTR(m1.METHOD, INSTR(m1.METHOD, 'function ') + 9, INSTR(m1.METHOD, '(') - (INSTR(m1.METHOD, 'function ') + 9))) = LOWER(SUBSTR(m2.METHOD, INSTR(m2.METHOD, 'function ') + 9, INSTR(m2.METHOD, '(') - (INSTR(m2.METHOD, 'function ') + 9))) 
   JOIN
      cit AS t2 
      ON m2.citId = t2.id 
WHERE
   t1.type = 'trait' 
   AND t2.type = 'trait'
SQL;
        $result = $this->sqlite->query($query);

        return new Results($result);
    }

    public function getTraitUsage(): Results {
        $query = <<<'SQL'
SELECT
   t1.name AS t1,
   t2.name AS t2
FROM
   cit AS t1 
   JOIN
      cit_implements AS ttu 
      ON ttu.implementing = t1.id AND
         ttu.type = 'use'
   JOIN
      cit AS t2 
      ON ttu.implements = t2.id 
WHERE
   t1.type = 'trait' 
   AND t2.type = 'trait'
SQL;
        $result = $this->sqlite->query($query);

        return new Results($result);
    }

}

?><?php declare(strict_types = 1);

namespace Exakat\Dump;

use Sqlite3;

abstract class Dump {
    const READ  = 1;
    const INIT  = 0;

    protected $project          = null;
    protected $phpexcutable     = null;
    protected $sqlite           = null;
    protected $sqliteFileFinal    = '';
    protected $sqliteFile         = null;
    protected $sqliteFilePrevious = null;

    protected $tablesList = array();

    public function __construct(string $path, int $init = self::READ, string $project = '', string $phpexecutable = '') {
        $this->sqliteFileFinal    = $path;
        $this->sqliteFile         = str_replace('/dump', '/.dump', $this->sqliteFileFinal);
        $this->sqliteFilePrevious = str_replace('/dump', '/dump-1', $this->sqliteFileFinal);

        $this->project        = $project;
        $this->phpexcutable   = $phpexecutable;

        if ($init === self::INIT) {
            if (file_exists($this->sqliteFile)) {
                unlink($this->sqliteFile);
                display('Removing old .dump.sqlite');
            }

            if (file_exists($this->sqliteFileFinal)) {
                $this->reuse();
            } else {
                $this->init();
            }
        } else {
            $this->openForRead();
        }
    }

    private function reuse(): void {
        copy($this->sqliteFileFinal, $this->sqliteFile);
        $this->sqlite = new \Sqlite3($this->sqliteFile, \SQLITE3_OPEN_READWRITE);
        $this->sqlite->busyTimeout(\SQLITE3_BUSY_TIMEOUT);

        $this->initTablesList();
    }

    private function init(): void {
        $this->sqlite = new Sqlite3($this->sqliteFile, \SQLITE3_OPEN_READWRITE | \SQLITE3_OPEN_CREATE);
        $this->sqlite->busyTimeout(\SQLITE3_BUSY_TIMEOUT);

        $this->initDump();
    }

    private function openForRead(): void {
        if (file_exists($this->sqliteFile)) {
            unlink($this->sqliteFile);
            display('Removing old .dump.sqlite');
        }

        $this->sqlite = new \Sqlite3($this->sqliteFileFinal,  \SQLITE3_OPEN_READONLY);
        $this->sqlite->busyTimeout(\SQLITE3_BUSY_TIMEOUT);

        $this->initTablesList();
    }

    protected function initTablesList(): void {
        $res = $this->sqlite->query("SELECT name FROM sqlite_master WHERE type ='table' AND name NOT LIKE 'sqlite_%'");
        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            $this->tablesList[] = $row['name'];
        }
    }

    public static function factory(string $path, int $init = self::READ): self {
        return new Dump2($path, $init);
    }

    protected function collectDatastore(): void {
        $tables = array(//'analyzed',
                        'compilation52',
                        'compilation53',
                        'compilation54',
                        'compilation55',
                        'compilation56',
                        'compilation70',
                        'compilation71',
                        'compilation72',
                        'compilation73',
                        'compilation74',
                        'compilation80',
                        'composer',
                        'configFiles',
                        'externallibraries',
                        'files',
                        'hash',
                        'ignoredFiles',
                        'shortopentag',
                        'tokenCounts',
                        'linediff',
                        );
        $this->collectTables($tables);
    }

    public function removeResults(array $analyzers): void {
        $classesList = makeList($analyzers);

        $this->sqlite->query("DELETE FROM results WHERE analyzer IN ($classesList)");
        $this->sqlite->query("DELETE FROM resultsCounts WHERE analyzer IN ($classesList)");
    }

    public function addResults(array $toDump): array {
        if (empty($toDump)) {
            return array();
        }

        $chunks = array_chunk($toDump, SQLITE_CHUNK_SIZE);
        foreach($chunks as $chunk) {
            foreach($chunk as &$c) {
                assert(count($c) === 8, 'Wrong column count for results : ' . print_r($c, true));
                $c = array_map(array($this->sqlite, 'escapeString'), $c);
                $c = '(NULL, \'' . implode('\', \'', $c) . '\')';
            }
            $sql = 'REPLACE INTO results ("id", "fullcode", "file", "line", "namespace", "class", "function", "analyzer", "severity") VALUES ' . implode(', ', $chunk);
            $this->sqlite->query($sql);
        }

        $return = array_column($toDump, 6);
        $return = array_count_values($return);

        $query = array();
        foreach($return as $k => $v) {
            $query[] = "(NULL, '$k', $v)";
        }

        $this->sqlite->query('INSERT INTO resultsCounts ("id", "analyzer", "count") VALUES ' . implode(', ', $query));

        // Pretty sneaaaaky, as it doesn't count the stored rows
        return $return;
    }

    public function addEmptyResults(array $toDump): void {
        $chunks = array_chunk($toDump, SQLITE_CHUNK_SIZE);
        foreach($chunks as $chunk) {
            foreach($chunk as &$c) {
                $c = "(NULL, '" . $c . "', 0)";
            }
            $sql = 'REPLACE INTO resultsCounts ("id", "analyzer", "count") VALUES ' . implode(', ', $chunk);
            $this->sqlite->query($sql);
        }
    }

    public function getTableCount(string $table): int {
        return $this->sqlite->querySingle('SELECT count(*) FROM ' . $table);
    }

    public function collectTables($tables): void {
        $config = exakat('config');
        $this->sqlite->query("ATTACH '{$config->datastore}' AS datastore");

        $query = "SELECT name, sql FROM datastore.sqlite_master WHERE type='table' AND name in ('" . implode("', '", $tables) . "');";
        $existingTables = $this->sqlite->query($query);

        while($table = $existingTables->fetchArray(\SQLITE3_ASSOC)) {
            $createTable = $table['sql'];
            $createTable = str_replace('CREATE TABLE ', 'CREATE TABLE IF NOT EXISTS ', $createTable);

            $this->sqlite->query($createTable);
            $this->sqlite->query('REPLACE INTO ' . $table['name'] . ' SELECT * FROM datastore.' . $table['name']);
        }

        $this->sqlite->query('DETACH datastore');
    }

    public function close(): void {
        $this->sqlite->query('REPLACE INTO resultsCounts ("id", "analyzer", "count") VALUES (NULL, \'Project/Dump\', 1)');

        rename($this->sqliteFile, $this->sqliteFileFinal);
    }

    public function cleanTable(string $table): void {
        $query = 'DELETE FROM ' . $table;
        $this->sqlite->query($query);
    }

    public function storeInTable(string $table, Iterable $results): int {
        $values = array();
        $total  = 0;
        foreach($results as $change) {
            $first = array_shift($change);
            $values[] = '('. (empty($first) ? 'null' : $first) . ',' . makeList(array_map(array($this->sqlite, 'escapeString'), $change), "'" ). ')';
            // str_replace is an ugly hack for id, which should be null.
            ++$total;
        }

        if (!empty($values)) {
            $chunks = array_chunk($values, SQLITE_CHUNK_SIZE);
            foreach($chunks as $chunk) {
                $query = 'REPLACE INTO ' . $table . ' VALUES ' . implode(', ', $chunk);
                $this->sqlite->query($query);
            }
        }

        return count($values);
    }

    public function storeQueries(array $queries): int {
        $this->sqlite->lastErrorCode();
        foreach($queries as $query) {
            $res = $this->sqlite->query($query);
            if ($this->sqlite->lastErrorCode()) {
                print  $query . PHP_EOL . PHP_EOL;
            }
        }

        return count($queries);
    }
}

?>   Bud1  @      @     
     0                                              m pvSrnlong                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             D u m pvSrnlong          R e p o r t slsvCblob  bplist00	
GHIJL_viewOptionsVersion_showIconPreview_calculateAllSizesWcolumns_scrollPositionYXtextSize_scrollPositionXZsortColumn_useRelativeDatesXiconSize 	"&+05:?CWvisibleUwidthYascendingZidentifier		Tname#Xubiquity\dateModified	%[dateCreated'(Tsizea		-/	s	Tkind24d	Ulabel79K	Wversion<>,	XcommentsB^dateLastOpenedFYdateAdded#@j     #@(      #        Tsize	#@0         2 D X ` r {                 &()*345AJOQRS\]_`enoqrx             M              teModified#@0      	   . @ T \ e p y                       
!"$%*3467<EFHIOXY[\dmnqr{             J                 
 E x c e p t i o n slsvpblob  ebplist00	
EF                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          @                                              @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
    R e p o r t slsvpblob  bplist00	
FGHIK_viewOptionsVersion_showIconPreview_calculateAllSizesWcolumns_scrollPositionYXtextSize_scrollPositionXZsortColumn_useRelativeDatesXiconSize 	!&*.38=BXcomments^dateLastOpened\dateModified[dateCreatedTsizeUlabelTkindWversionTnameUindexUwidthYascendingWvisible,	"##)	+#02	a	45d	9:s		>?K	C		#@j     #@(      #        Tsize	#@0         2 D X ` r {            "(.8@BEFGPRTUV_`aclnopyz|}             L                  R e p o r t svSrnlong       T a s k sbwspblob   bplist00	
			]ShowStatusBar_SidebarWidthTenElevenOrLater[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar[ShowPathbar	#@k`     		_{{-781, 506}, {770, 436}}	'FR^u                                T a s k slsvCblob  bplist00	
HIJKMXiconSize_showIconPreview_calculateAllSizesWcolumns_scrollPositionYXtextSize_scrollPositionXZsortColumn_useRelativeDates_viewOptionsVersion#@0      	"&+05:?DWvisibleUwidthYascendingZidentifier		TnameXubiquity#!	\dateModified%[dateCreated(*	aTsize-/	s	Tkind24d	Ulabel79K	Wversion<>,	XcommentsAC^dateLastOpenedEYdateAdded#@y     #@(      #        Tname	    & 8 L T f o                 	 "#09:;GPQSTYbcefktuwx~             N                  T a s k slsvpblob  bplist00	
HIJKDXiconSize_showIconPreview_calculateAllSizesWcolumns_scrollPositionYXtextSize_scrollPositionXZsortColumn_useRelativeDates_viewOptionsVersion#@0      	!&+/49>CXcomments^dateLastOpened\dateModified[dateCreatedTsizeUlabelTkindWversionTnameUindexUwidthYascendingWvisible,	"#'(	,(01a	56d	:;s		?@K	DE 		#@y     #@(      #        Tname	   & 8 L T f o            )/5?GILMNWY[\]fhjkluwxy             M                  T a s k svSrnlong       V c sbwspblob   bplist00		]ShowStatusBar[ShowPathbar[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar			_{{-1920, 82}, {871, 636}}	%1=I`myz{|}~                                V c slsvCblob  bplist00	
GH
J_viewOptionsVersion_showIconPreview_calculateAllSizesWcolumnsXtextSizeZsortColumn_useRelativeDatesXiconSize 	#',16;?C

WvisibleUwidthYascendingZidentifier	,	TnameUwidthYascendingWvisibleXubiquity# 
\dateModified	$ [dateCreated()
Tsizea	-.

Tkinds		23
Ulabeld	78
WversionK	<
Xcomments	@ ^dateLastOpenedD YdateAdded#@(      Tname	#@0         . @ T \ e p                       	#/01:?ABCLQSTU^dfghqy{|}             K                  V c slsvpblob  Ubplist00	
CD
F_viewOptionsVersion_showIconPreview_calculateAllSizesWcolumnsXtextSizeZsortColumn_useRelativeDatesXiconSize 	$(-27<?Xcomments^dateLastOpened[dateCreatedTsizeUlabelTkindWversionTname\dateModified
WvisibleUwidthYascendingUindex,	!#!'
*,	a/
1d	
4
6	s	9
;K		

		
!B	#@(      Tname	#@0         . @ T \ e p                ()+,.789;DEGHJSTVWYbcefhqrtuw             G                  V c svSrnlong                                                                                                                  A n a l y z e rbwspblob   bplist00		]ShowStatusBar[ShowPathbar[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar			_{{-1717, 25}, {992, 629}}	%1=I`myz{|}~                                A n a l y z e rlsvCblob  bplist00	
GHIJLXiconSize_showIconPreview_calculateAllSizesWcolumns_scrollPositionYXtextSize_scrollPositionXZsortColumn_useRelativeDates_viewOptionsVersion#@0      	"&+05:?CWvisibleUwidthYascendingZidentifier	5	TnameXubiquity#\dateModified	#[dateCreated'(Tsizea	,-Tkinds		12Ulabeld	67WversionK	;<Xcomments,	@^dateLastOpenedDYdateAdded#@U@     #@(      #        Tname	    & 8 L T f o                
 -/01:FGHQVXYZchjklu{}~             M                  A n a l y z e rlsvpblob  bplist00	
GHIJCXiconSize_showIconPreview_calculateAllSizesWcolumns_scrollPositionYXtextSize_scrollPositionXZsortColumn_useRelativeDates_viewOptionsVersion#@0      	!&*.38=BXcomments^dateLastOpened\dateModified[dateCreatedTsizeUlabelTkindWversionTname WvisibleUwidthYascendingUindex,	#%#)	#-02	a57d	:<	s	?AK	CD 5		#@U@     #@(      #        Tname	   & 8 L T f o            )17AGHKLNWXZ[]fghjstuw             L                  A n a l y z e rvSrnlong       A u t o l o a dbwspblob   bplist00		]ShowStatusBar[ShowPathbar[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar			_{{575, 165}, {1049, 736}}	%1=I`myz{|}~                                A u t o l o a dlsvCblob  bplist00		IJKL_useRelativeDates_showIconPreview_calculateAllSizesWcolumnsXtextSizeZsortColumnXiconSize_viewOptionsVersion		#',16;@E		ZidentifierUwidthYascendingWvisibleTname		UwidthYascendingWvisibleXubiquity#	 "	\dateModified &[dateCreated	)+	aTsize	.	0	s	Tkind3	5d	Ulabel8	:K	Wversion=	?,	XcommentsBD^dateLastOpenedF YdateAdded#@(      \dateModified#@0          , > R Z c n w                      	"#$09:<=BKLNOT]^`agpqst|             M                  A u t o l o a dlsvpblob  fbplist00		FGHA_useRelativeDates_showIconPreview_calculateAllSizesWcolumnsXtextSizeZsortColumnXiconSize_viewOptionsVersion		$).38=BXcomments^dateLastOpened[dateCreatedTsizeUlabelTkindWversionTname\dateModified	UindexUwidthYascendingWvisible,	 !%&*+	a	/0	d	45		s		9:	K		?	A		 C&		#@(      \dateModified#@0         , > R Z c n w                ')+,-68:;<EGIJKTVXYZceghirtvwx             I                  A u t o l o a dvSrnlong       D a t abwspblob   bplist00		]ShowStatusBar[ShowPathbar[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar			_{{-859, 67}, {815, 709}}	%1=I`myz{|}~                                D a t avSrnlong       D u m pbwspblob   bplist00	
			]ShowStatusBar_SidebarWidthTenElevenOrLater[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar[ShowPathbar	#@j     		_{{-1697, 198}, {770, 436}}	'FR^u                                  ()+,.789;DEGHJSTVWYbcefhqrtuw             G                  V c svSrnlong                                                                                                                 
 E x c e p t i o n sbwspblob   bplist00	
			]ShowStatusBar_SidebarWidthTenElevenOrLater[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar[ShowPathbar	#@k`     		_{{-913, 52}, {770, 436}}	'FR^u                               
 E x c e p t i o n slsvCblob  bplist00	
FGH
_viewOptionsVersion_showIconPreview_calculateAllSizesWcolumnsXtextSizeZsortColumnXiconSize_useRelativeDates 	 $).38=B

WvisibleUwidthYascendingZidentifier		TnameXubiquity#
	\dateModified#[dateCreated
&(	aTsize
+
-	s	Tkind0
2d	Ulabel5
7K	Wversion:
<,	Xcomments?A^dateLastOpenedCYdateAdded#@(      \dateModified#@0      	   . @ T \ e p y                       
!"$%*3467<EFHIOXY[\dmnqr{             J                 
 E x c e p t i o n slsvpblob  ebplist00	
EFG
_viewOptionsVersion_showIconPreview_calculateAllSizesWcolumnsXtextSizeZsortColumnXiconSize_useRelativeDates 	$)-27<AXcomments^dateLastOpened\dateModified[dateCreatedTsizeUlabelTkindWversionTname
UindexUwidthYascendingWvisible,	 !%&
	*&./
a	34
d	89

s		=>
K		B

		#@(      \dateModified#@0      	   . @ T \ e p y                (*,-.79;<=FHIJSUWXYbdfghqsuvw             I                 
 E x c e p t i o n svSrnlong       G r a p hbwspblob   bplist00	
			]ShowStatusBar_SidebarWidthTenElevenOrLater[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar[ShowPathbar	#@k`     		_{{-789, 359}, {770, 436}}	'FR^u                                G r a p hvSrnlong       R e p o r t sbwspblob   bplist00		]ShowStatusBar[ShowPathbar[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar			_{{0, 248}, {1054, 761}}	%1=I`myz{|}~                            UwidthYascendingWvisibleXubiquity#	 "	\dateModified &[dateCreated	)+	aTsize	.	0	s	Tkind3	5d	Ulabel8	:K	Wversion=	?,	XcommentsBD^dateLastOpenedF YdateAdded#@(      \dateModified#@0          , > R Z c n w                      	"#$09:<=BKLNOT]^`agpqst|             M                  A u t o l o a dlsvpblob  fbplist00		FGHA_useRelativeDates_showIconPreview_calculateAllSizesWcolumnsXtextSizeZsortColumnXiconSize_viewOptionsVersion		$).38=BXcomments^dateLastOpened[dateCreatedTsizeUlabelTkindWversionTname\dateModified	UindexUwidthYascendingWvisible,	 !%&*+	a	/0	d	45		s		9:	K		?	A		 C&		#@(      \dateModified#@0         , > R Z c n w                ')+,-68:;<EGIJKTVXYZceghirtvwx             I                  A u t o l o a dvSrnlong       D a t abwspblob   bplist00		]ShowStatusBar[ShowPathbar[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar			_{{-859, 67}, {815, 709}}	%1=I`myz{|}~                                D a t avSrnlong       D u m pbwspblob   bplist00	
			]ShowStatusBar_SidebarWidthTenElevenOrLater[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar[ShowPathbar	#@j     		_{{-1697, 198}, {770, 436}}	'FR^u                                  ()+,.789;DEGHJSTVWYbcefhqrtuw             G                  V c svSrnlong                                                                                                                @   E    
     0                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           DSDB                                 `                                  H      P      `                                                    @                                                @       Wvisible,	 !%&
	*&./
a	34
d	89

s		=>
K		B

		#@(      \dateModified#@0      	   . @ T \ e p y                (*,-.79;<=FHIJSUWXYbdfghqsuvw             I                 
 E x c e p t i o n svSrnlong       G r a p hbwspblob   bplist00	
			]ShowStatusBar_SidebarWidthTenElevenOrLater[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar[ShowPathbar	#@k`     		_{{-789, 359}, {770, 436}}	'FR^u                                G r a p hvSrnlong       R e p o r t sbwspblob   bplist00		]ShowStatusBar[ShowPathbar[ShowToolbar[ShowTabV<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat;

abstract class GraphElements {
    public static $ATOMS = array('Addition',
                                 'Array',
                                 'Arrayappend',
                                 'Arrayliteral',
                                 'Arrowfunction',
                                 'As',
                                 'Assignation',
                                 'Attribute',
                                 'Bitshift',
                                 'Block',
                                 'Boolean',
                                 'Break',
                                 'Case',
                                 'Cast',
                                 'Catch',
                                 'Class',
                                 'Classalias',
                                 'Classanonymous',
                                 'Clone',
                                 'Closure',
                                 'Coalesce',
                                 'Comparison',
                                 'Concatenation',
                                 'Const',
                                 'Constant',
                                 'Continue',
                                 'Declare',
                                 'Declaredefinition',
                                 'Default',
                                 'Defineconstant',
                                 'Dowhile',
                                 'Echo',
                                 'Empty',
                                 'Eval',
                                 'Exit',
                                 'File',
                                 'Finally',
                                 'For',
                                 'Foreach',
                                 'Function',
                                 'Functioncall',
                                 'Global',
                                 'Globaldefinition',
                                 'Goto',
                                 'Gotolabel',
                                 'Halt',
                                 'Heredoc',
                                 'Identifier',
                                 'Ifthen',
                                 'Include',
                                 'Inlinehtml',
                                 'Instanceof',
                                 'Insteadof',
                                 'Integer',
                                 'Interface',
                                 'Isset',
                                 'Keyvalue',
                                 'List',
                                 'Logical',
                                 'Magicconstant',
                                 'Member',
                                 'Magicmethod',
                                 'Method',
                                 'Methodcall',
                                 'Methodcallname',
                                 'Multiplication',
                                 'Name',
                                 'Namespace',
                                 'New',
                                 'Newcall',
                                 'Newcallname',
                                 'Not',
                                 'Nsname',
                                 'Null',
                                 'Parameter',
                                 'Parametername',
                                 'Parent',
                                 'Parenthesis',
                                 'Php',
                                 'Phpvariable',
                                 'Phpdoc',
                                 'Postplusplus',
                                 'Power',
                                 'Ppp',
                                 'Preplusplus',
                                 'Print',
                                 'Project',
                                 'Propertydefinition',
                                 'Float',
                                 'Return',
                                 'Scalartypehint',
                                 'Self',
                                 'Sequence',
                                 'Shell',
                                 'Sign',
                                 'Static',
                                 'Staticclass',
                                 'Staticconstant',
                                 'Staticdefinition',
                                 'Staticmethod',
                                 'Staticmethodcall',
                                 'Staticproperty',
                                 'Staticpropertyname',
                                 'String',
                                 'Switch',
                                 'Ternary',
                                 'This',
                                 'Throw',
                                 'Trait',
                                 'Try',
                                 'Unset',
                                 'Usenamespace',
                                 'Usetrait',
                                 'Var',
                                 'Variable',
                                 'Variabledefinition',
                                 'Variablearray',
                                 'Variableobject',
                                 'Virtualglobal',
                                 'Virtualproperty',
                                 'Void',
                                 'While',
                                 'Yield',
                                 'Yieldfrom',
                                );
    public static $ATOMS_EXAKAT = array('Analysis',
                                        'Noresult',
                                       );

    public static $LINKS = array('APPEND',
                                 'ARGUMENT',
                                 'AS',
                                 'ATTRIBUTE',
                                 'BLOCK',
                                 'BREAK',
                                 'CASE',
                                 'CASES',
                                 'CAST',
                                 'CATCH',
                                 'CLASS',
                                 'CLONE',
                                 'CODE',
                                 'CONCAT',
                                 'CONDITION',
                                 'CONST',
                                 'CONSTANT',
                                 'CONTINUE',
                                 'DEFAULT',
                                 'DECLARE',
                                 'EXPRESSION',
                                 'ELSE',
                                 'EXTENDS',
                                 'FILE',
                                 'FINAL',
                                 'FINALLY',
                                 'FUNCTION',
                                 'GLOBAL',
                                 'GOTO',
                                 'GROUPUSE',
                                 'IMPLEMENTS',
                                 'INCREMENT',
                                 'INDEX',
                                 'INIT',
                                 'INSTEADOF',
                                 'GOTOLABEL',
                                 'LEFT',
                                 'METHOD',
                                 'NAME',
                                 'NEW',
                                 'NOT',
                                 'OBJECT',
                                 'PPP',
                                 'POSTPLUSPLUS',
                                 'PHPDOC',
                                 'PREPLUSPLUS',
                                 'PROJECT',
                                 'MAGICMETHOD',
                                 'MEMBER',
                                 'RETURN',
                                 'RETURNTYPE',
                                 'RIGHT',
                                 'SIGN',
                                 'SOURCE',
                                 'STATIC',
                                 'THEN',
                                 'THROW',
                                 'TYPEHINT',
                                 'USE',
                                 'VALUE',
                                 'VAR',
                                 'VARIABLE',
                                 'YIELD',
//                                 'DEFINITION',
                                );
    public static $LINKS_EXAKAT = array('DEFINITION',
                                        'ANALYZED',
                                        'RETURNED',
                                        'OVERWRITE'
                                       );
    public static $LINKS_DOWN = array('APPEND',
                                      'ARGUMENT',
                                      'AS',
                                      'BLOCK',
                                      'CASE',
                                      'CASES',
                                      'CAST',
                                      'CATCH',
                                      'CLASS',
                                      'CLONE',
                                      'CODE',
                                      'CONCAT',
                                      'CONDITION',
                                      'CONST',
                                      'CONSTANT',
                                      'CONTINUE',
                                      'DEFAULT',
                                      'EXPRESSION',
                                      'ELSE',
                                      'FILE',
                                      'FINALLY',
                                      'FUNCTION',
                                      'GLOBAL',
                                      'GOTO',
                                      'GROUPUSE',
                                      'IMPLEMENTS',
                                      'INCREMENT',
                                      'INDEX',
                                      'INIT',
                                      'GOTOLABEL',
                                      'LEFT',
                                      'METHOD',
                                      'NAME',
                                      'NEW',
                                      'NOT',
                                      'OBJECT',
                                      'POSTPLUSPLUS',
                                      'PREPLUSPLUS',
                                      'PROJECT',
                                      'MEMBER',
                                      'RETURN',
                                      'RIGHT',
                                      'SIGN',
                                      'SOURCE',
                                      'STATIC',
                                      'THEN',
                                      'THROW',
                                      'USE',
                                      'VALUE',
                                      'VARIABLE',
                                      'YIELD',
                                );

    public static $ATOMS_VIRTUAL = array('Project', 'File', 'Virtualproperty', 'Virtualglobal', 'Void');
    public static $LINKS_VIRTUAL = array('PROJECT', 'FILE', 'RETURNED');

    public static $ATOMS_LINKS = array('Addition'                  => array('LEFT', 'RIGHT'),
                                       'Array'                     => array('VARIABLE', 'INDEX'),
                                       'Arrayappend'               => array('APPEND'),
                                       'Arrayliteral'              => array('ARGUMENT', 'DEFINITION'),
                                       'As'                        => array('NAME', 'AS', 'DEFINITION'),
                                       'Assignation'               => array('LEFT', 'RIGHT'),
                                       'Bitshift'                  => array('LEFT', 'RIGHT'),
                                       'Block'                     => array('EXPRESSION', 'CODE'),
                                       'Boolean'                   => array(),
                                       'Break'                     => array('BREAK'),
                                       'Case'                      => array('CASE', 'CODE'),
                                       'Cast'                      => array('CAST'),
                                       'Catch'                     => array('CLASS', 'VARIABLE', 'BLOCK'),
                                       'Class'                     => array('NAME', 'IMPLEMENTS', 'EXTENDS', 'METHOD', 'MAGICMETHOD', 'CONST', 'PPP', 'DEFINITION', 'USE'),
                                       'Classalias'                => array('ARGUMENT', 'USE', 'NAME'),
                                       'Classanonymous'            => array('IMPLEMENTS', 'EXTENDS', 'METHOD', 'MAGICMETHOD', 'CONST', 'PPP', 'DEFINITION', 'ARGUMENT', 'USE'),
                                       'Clone'                     => array('CLONE'),
                                       'Closure'                   => array('BLOCK', 'USE', 'ARGUMENT', 'RETURNTYPE', 'DEFINITION', 'RETURNED'),
                                       'Coalesce'                  => array('LEFT', 'RIGHT'),
                                       'Comparison'                => array('LEFT', 'RIGHT'),
                                       'Concatenation'             => array('CONCAT'),
                                       'Const'                     => array('CONST'),
                                       'Constant'                  => array('NAME', 'VALUE', 'DEFINITION', 'OVERWRITE'),
                                       'Continue'                  => array('CONTINUE'),
                                       'Declare'                   => array('BLOCK', 'DECLARE'),
                                       'Declaredefinition'         => array('NAME', 'VALUE'),
                                       'Default'                   => array('CODE'),
                                       'Defineconstant'            => array('NAME', 'VALUE', 'ARGUMENT', 'DEFINITION'),
                                       'Dowhile'                   => array('CONDITION', 'BLOCK'),
                                       'Echo'                      => array('ARGUMENT', 'NAME'),
                                       'Empty'                     => array('ARGUMENT'),
                                       'Eval'                      => array('ARGUMENT'),
                                       'Exit'                      => array('ARGUMENT'),
                                       'File'                      => array('FILE', 'DEFINITION'),
                                       'Finally'                   => array('BLOCK'),
                                       'For'                       => array('INIT', 'FINAL', 'INCREMENT', 'BLOCK'),
                                       'Foreach'                   => array('SOURCE', 'VALUE', 'INDEX', 'BLOCK'),
                                       'Function'                  => array('NAME', 'ARGUMENT', 'RETURNTYPE', 'BLOCK', 'DEFINITION', 'RETURNED'),
                                       'Functioncall'              => array('NAME', 'ARGUMENT'),
                                       'Global'                    => array('GLOBAL'),
                                       'Globaldefinition'          => array('DEFAULT', 'DEFINITION'),
                                       'Goto'                      => array('GOTO'),
                                       'Gotolabel'                 => array('GOTOLABEL'),
                                       'Halt'                      => array(),
                                       'Heredoc'                   => array('CONCAT'),
                                       'Identifier'                => array('DEFINITION'),
                                       'Ifthen'                    => array('CONDITION', 'THEN', 'ELSE'),
                                       'Include'                   => array('ARGUMENT'),
                                       'Inlinehtml'                => array(),
                                       'Instanceof'                => array('VARIABLE', 'CLASS'),
                                       'Insteadof'                 => array('NAME', 'INSTEADOF'),
                                       'Integer'                   => array(),
                                       'Interface'                 => array('NAME', 'IMPLEMENTS', 'METHOD', 'MAGICMETHOD', 'DEFINITION', 'EXTENDS', 'CONST'),
                                       'Isset'                     => array('ARGUMENT'),
                                       'Keyvalue'                  => array('INDEX', 'VALUE'),
                                       'List'                      => array('ARGUMENT', 'NAME'),
                                       'Logical'                   => array('LEFT', 'RIGHT'),
                                       'Magicconstant'             => array(),
                                       'Member'                    => array('OBJECT', 'MEMBER'),
                                       'Magicmethod'               => array('NAME',  'ARGUMENT', 'RETURNTYPE', 'BLOCK', 'DEFINITION', 'RETURNED', 'OVERWRITE'),
                                       'Method'                    => array('NAME',  'ARGUMENT', 'RETURNTYPE', 'BLOCK', 'DEFINITION', 'RETURNED', 'OVERWRITE'),
                                       'Methodcall'                => array('OBJECT', 'METHOD'),
                                       'Methodcallname'            => array('NAME', 'ARGUMENT', 'DEFINITION'),
                                       'Multiplication'            => array('LEFT', 'RIGHT'),
                                       'Name'                      => array('DEFINITION'),
                                       'Namespace'                 => array('NAME', 'BLOCK'),
                                       'New'                       => array('NEW'),
                                       'Newcall'                   => array('ARGUMENT', 'NAME', 'DEFINITION'),
                                       'Newcallname'               => array('DEFINITION'),
                                       'Not'                       => array('NOT'),
                                       'Nsname'                    => array('DEFINITION', 'FUNCTION', 'CONST'),
                                       'Null'                      => array(),
                                       'Parameter'                 => array('TYPEHINT', 'DEFAULT', 'NAME', 'DEFINITION'),
                                       'Parametername'             => array('DEFINITION', 'DEFAULT'),
                                       'Parent'                    => array(),
                                       'Parenthesis'               => array('CODE'),
                                       'Php'                       => array('CODE'),
                                       'Phpvariable'               => array(),
                                       'Postplusplus'              => array('POSTPLUSPLUS'),
                                       'Power'                     => array('LEFT', 'RIGHT'),
                                       'Ppp'                       => array('PPP'),
                                       'Preplusplus'               => array('PREPLUSPLUS'),
                                       'Print'                     => array('ARGUMENT'),
                                       'Project'                   => array('PROJECT'),
                                       'Propertydefinition'        => array('DEFAULT', 'NAME', 'DEFINITION', 'OVERWRITE'),
                                       'Float'                     => array(),
                                       'Return'                    => array('RETURN'),
                                       'Scalartypehint'            => array(),
                                       'Self'                      => array(),
                                       'Sequence'                  => array('EXPRESSION'),
                                       'Shell'                     => array('CONCAT'),
                                       'Sign'                      => array('SIGN'),
                                       'Static'                    => array('STATIC'),
                                       'Staticclass'               => array('CLASS', 'DEFINITION'),
                                       'Staticconstant'            => array('CLASS', 'CONSTANT'),
                                       'Staticdefinition'          => array('DEFINITION', 'DEFAULT', 'NAME'),
                                       'Staticmethod'              => array('CLASS', 'METHOD'),
                                       'Staticmethodcall'          => array('CLASS', 'METHOD'),
                                       'Staticproperty'            => array('CLASS', 'MEMBER'),
                                       'Staticpropertyname'        => array(),
                                       'String'                    => array('CONCAT'),
                                       'Switch'                    => array('CONDITION', 'CASES'),
                                       'Ternary'                   => array('CONDITION', 'THEN', 'ELSE'),
                                       'This'                      => array(),
                                       'Throw'                     => array('THROW'),
                                       'Trait'                     => array('NAME', 'USE', 'METHOD', 'MAGICMETHOD', 'PPP', 'DEFINITION'),
                                       'Try'                       => array('CATCH', 'FINALLY', 'BLOCK'),
                                       'Unset'                     => array('ARGUMENT'),
                                       'Usenamespace'              => array('USE', 'GROUPUSE', 'CONST', 'FUNCTION'),
                                       'Usetrait'                  => array('USE', 'BLOCK'),
                                       'Var'                       => array('PPP'),
                                       'Variable'                  => array('NAME'),
                                       'Variabledefinition'        => array('DEFINITION', 'DEFAULT'),
                                       'Variablearray'             => array(),
                                       'Variableobject'            => array(),
                                       'Virtualproperty'           => array('DEFINITION', 'DEFAULT', 'OVERWRITE'),
                                       'Void'                      => array(),
                                       'While'                     => array('CONDITION', 'BLOCK'),
                                       'Yield'                     => array('YIELD'),
                                       'Yieldfrom'                 => array('YIELD'),
                                );

    public static function linksAsList() {
        return makeList(self::$LINKS);
    }

    public static function linksDownAsList() {
        return makeList(self::$LINKS_DOWN);
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat;

use Exakat\Exceptions\WrongNumberOfColsForAHash;
use Exakat\Exceptions\NoStructureForTable;

class Datastore {
    private $sqliteRead  = null;
    private $sqliteWrite = null;
    private $config      = null;

    const CREATE = 1;
    const REUSE = 2;
    const TIMEOUT_WRITE = 5000;
    const TIMEOUT_READ = 6000;

    public function __construct() {
        $this->config = exakat('config');
    }

    public function create(): void {
        if (file_exists($this->config->datastore)) {
            unlink($this->config->datastore);
        }
        
        if ($this->config->project->isDefault()) {
            die("Could not create datastore for a project without name. Aborting\n");
        }

        // force creation
        $this->sqliteWrite = new \Sqlite3($this->config->datastore, \SQLITE3_OPEN_READWRITE | \SQLITE3_OPEN_CREATE);

        $this->cleanTable('hash');
        $this->addRow('hash', array('exakat_version'       => Exakat::VERSION,
                                    'exakat_build'         => Exakat::BUILD,
                                    'datastore_creation'   => date('r', time()),
                                    'project'              => $this->config->project,
                                    'project_description'  => $this->config->project_description,
                                    'write_acces'          => 0,
                                    ));

        $this->cleanTable('hashAnalyzer');
        $this->cleanTable('analyzed');
        $this->cleanTable('tokenCounts');
        $this->cleanTable('functioncalls');
        $this->cleanTable('externallibraries');
        $this->cleanTable('ignoredFiles');
        $this->cleanTable('files');
        $this->cleanTable('shortopentag');
        $this->cleanTable('composer');
        $this->cleanTable('configFiles');
        $this->cleanTable('dictionary');
        $this->cleanTable('linediff');

        $this->cleanTable('ignoredCit');
        $this->cleanTable('ignoredFunctions');
        $this->cleanTable('ignoredConstants');

        $this->sqliteWrite->close();
        $this->sqliteWrite = null;

        $this->reuse();
    }

    public function reuse(): void {
        try {
            $this->sqliteWrite = new \Sqlite3($this->config->datastore, \SQLITE3_OPEN_READWRITE | \SQLITE3_OPEN_CREATE);
        } catch(\Throwable $e) {
            return;
        }

        try {
            $this->sqliteWrite->enableExceptions(true);
            $this->sqliteWrite->busyTimeout(self::TIMEOUT_WRITE);

            $this->sqliteWrite->query('UPDATE hash SET value = value + 1 WHERE key IN ("write_access")');
        } catch(\Throwable $e) {
            // ignore
        }

       // open the read connexion AFTER the write, to have the sqlite database created
       $this->sqliteRead = new \Sqlite3($this->config->datastore, \SQLITE3_OPEN_READONLY);
       $this->sqliteRead->enableExceptions(true);
       $this->sqliteRead->busyTimeout(self::TIMEOUT_READ);
    }

    public function addRow(string $table, array $data): bool {
        if (empty($data)) {
            return true;
        }

        $this->checkTable($table);

        $first = current($data);
        if (is_array($first)) {
            $cols = array_keys($first);
        } else {
            $query = "PRAGMA table_info($table)";
            $res = $this->sqliteWrite->query($query);

            $cols = array();
            while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
                if ($row['name'] === 'id') {
                    continue;
                }
                $cols[] = $row['name'];
            }

            if (count($cols) !== 2) {
                throw new WrongNumberOfColsForAHash($table, count($cols));
            }
        }

        $colList = makeList($cols, '');
        $values = array();
        $total = 0;
        foreach($data as $key => $row) {
            ++$total;
            if (is_array($row)) {
                $d = array_values($row);
                foreach($d as &$e) {
                    $e = \Sqlite3::escapeString((string) $e);
                }
                unset($e);
            } else {
                $d = array(\Sqlite3::escapeString((string) $key), \Sqlite3::escapeString((string) $row));
            }

            $values[] = '(' . makeList($d, "'") . ')';

            if (count($values) > 10) {
                $query = "REPLACE INTO $table ($colList) VALUES " . makeList($values, '');
                $this->sqliteWrite->querySingle($query);

                $values = array();
            }
        }

        if (!empty($values)) {
            $query = "REPLACE INTO $table ($colList) VALUES " . makeList($values, '');
            $this->sqliteWrite->querySingle($query);
        }

        return true;
    }

    public function deleteRow(string $table, array $data): bool {
        if (empty($data)) {
            return true;
        }

        $this->checkTable($table);

        foreach($data as $col => $row) {
            if (is_array($row)) {
                $d = array_values($row);
                foreach($d as &$e) {
                    $e = \Sqlite3::escapeString($e);
                }
                unset($e);
            } else {
                $d = array(\Sqlite3::escapeString($row));
            }

            $list = makeList($d);
            $query = "DELETE FROM $table WHERE $col IN (makeList($d))";
            $this->sqliteWrite->querySingle($query);
        }

        return true;
    }

    public function getRow(string $table): array {
        try {
            $query = "SELECT * FROM $table";
            $res = $this->sqliteRead->query($query);
        } catch (\Exception $e) {
        }
        $return = array();

        if (isset($res)) {
            while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
                $return[] = $row;
            }
        }

        return $return;
    }

    public function getCol(string $table, string $col): array {
        $query = "SELECT $col FROM $table";
        try {
            $res = $this->sqliteRead->query($query);
        } catch (\Throwable $e) {
            // This also catch when the datastore is not available
        }

        $return = array();

        if (isset($res)) {
            while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
                $return[] = $row[$col];
            }
        }

        return $return;
    }

    public function getHash(string $key): ?string {
        $query = 'SELECT value FROM hash WHERE key=:key';
        try {
            $stmt = $this->sqliteRead->prepare($query);
        } catch (\Exception $e) {
            $stmt = null;
        }
        if ($stmt === null) {
            return null;
        }
        $stmt->bindValue(':key', $key, \SQLITE3_TEXT);

        $res = $stmt->execute();

        if ($res === false) {
            return null;
        }

        $row = $res->fetchArray(\SQLITE3_ASSOC);
        if (isset($row['value'])) {
            return $row['value'];
        } else {
            return null;
        }
    }

    public function getAllHash(string $table = 'hash'): array {
        $query = "SELECT key, value FROM $table";
        $stmt = $this->sqliteRead->prepare($query);
        $res = $stmt->execute();

        if ($res === false) {
            return array();
        }

        $return = array();
        while($row = $res->fetchArray(\SQLITE3_NUM)) {
            $return[$row[0]] = (int) $row[1];
        }
        return $return;
    }

    public function getHashAnalyzer(string $analyzer): array {
        $query = 'SELECT key, value FROM hashAnalyzer WHERE analyzer=:analyzer';
        $stmt = $this->sqliteRead->prepare($query);
        $stmt->bindValue(':analyzer', $analyzer, \SQLITE3_TEXT);
        $res = $stmt->execute();

        if ($res === false) {
            return array();
        }

        $return = array();
        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            $return[$row['key']] = $row['value'];
        }

        return $return;
    }

    public function addRowAnalyzer(string $analyzer, $key, string $value = ''): bool {
        if (is_array($key)) {
            foreach($key as &$v) {
                $v['analyzer'] = $analyzer;
            }
            unset($v);
            return $this->addRow('hashAnalyzer', $key);
        } else {
            return $this->addRow('hashAnalyzer', array('analyzer' => $analyzer,
                                                        $key      => $value));
        }
    }

    public function hasResult(string $table): bool {
        $query = "SELECT * FROM $table LIMIT 1";
        $r = $this->sqliteRead->querySingle($query);

        return !empty($r);
    }

    public function cleanTable(string $table): bool {
        // Total destroy table
        $query = "DROP TABLE IF EXISTS $table";
        $this->sqliteWrite->querySingle($query);
        $this->checkTable($table);

        return true;
    }

    private function checkTable(string $table): bool {
        $res = $this->sqliteWrite->querySingle("SELECT count(*) FROM sqlite_master WHERE name=\"$table\"");

        if ($res === 1) {
            return true;
        }

        switch($table) {
            case 'compilation80' :
            case 'compilation74' :
            case 'compilation73' :
            case 'compilation72' :
            case 'compilation71' :
            case 'compilation70' :
            case 'compilation56' :
            case 'compilation55' :
            case 'compilation54' :
            case 'compilation53' :
            case 'compilation52' :
                $createTable = <<<SQLITE
CREATE TABLE $table (
  id INTEGER PRIMARY KEY,
  file TEXT,
  error TEXT,
  line id
);
SQLITE;
                break;

            case 'shortopentag' :
                $createTable = <<<'SQLITE'
CREATE TABLE shortopentag (
  id INTEGER PRIMARY KEY,
  file TEXT
);
SQLITE;
                break;

            case 'files' :
                $createTable = <<<'SQLITE'
CREATE TABLE files (
  id INTEGER PRIMARY KEY,
  file TEXT,
  fnv132 TEXT,
  modifications INTEGER
);
SQLITE;
                break;

            case 'ignoredFiles' :
                $createTable = <<<'SQLITE'
CREATE TABLE ignoredFiles (
  id INTEGER PRIMARY KEY,
  file TEXT,
  reason INTEGER DEFAULT 1
);
SQLITE;
                break;

            case 'hash' :
                $createTable = <<<'SQLITE'
CREATE TABLE hash (
  id INTEGER PRIMARY KEY,
  key TEXT UNIQUE,
  value TEXT
);
SQLITE;
                break;

            case 'hashAnalyzer' :
                $createTable = <<<'SQLITE'
CREATE TABLE hashAnalyzer (
  id INTEGER PRIMARY KEY,
  analyzer TEXT,
  key TEXT UNIQUE,
  value TEXT
);
SQLITE;
                break;

            case 'analyzed' :
                $createTable = <<<'SQLITE'
CREATE TABLE analyzed (
  id INTEGER PRIMARY KEY,
  analyzer TEXT UNIQUE,
  counts TEXT
);
SQLITE;
                break;

            case 'tokenCounts' :
                $createTable = <<<'SQLITE'
CREATE TABLE tokenCounts (
  id INTEGER PRIMARY KEY,
  token TEXT UNIQUE,
  counts INTEGER
);
SQLITE;
                break;

            case 'functioncalls' :
                $createTable = <<<'SQLITE'
CREATE TABLE functioncalls (
  id INTEGER PRIMARY KEY,
  functioncall TEXT UNIQUE,
  counts INTEGER
);
SQLITE;
                break;

            case 'externallibraries' :
                $createTable = <<<'SQLITE'
CREATE TABLE externallibraries (
  id INTEGER PRIMARY KEY,
  library TEXT UNIQUE,
  file TEXT
);
SQLITE;
                break;

            case 'composer' :
                $createTable = <<<'SQLITE'
CREATE TABLE composer (
  id INTEGER PRIMARY KEY,
  component TEXT UNIQUE,
  version TEXT
);
SQLITE;
                break;

            case 'configFiles' :
                $createTable = <<<'SQLITE'
CREATE TABLE configFiles (
  id INTEGER PRIMARY KEY,
  file TEXT UNIQUE,
  name TEXT UNIQUE,
  homepage TEXT UNIQUE
);
SQLITE;
                break;

            case 'dictionary' :
                $createTable = <<<'SQLITE'
CREATE TABLE dictionary (
  id INTEGER PRIMARY KEY,
  key TEXT UNIQUE,
  value TEXT
);
SQLITE;
                break;

            case 'linediff' :
                $createTable = <<<'SQLITE'
CREATE TABLE linediff (
  id INTEGER PRIMARY KEY,
  file TEXT UNIQUE,
  line INTEGER,
  diff INTEGER
);
SQLITE;
                break;

            case 'ignoredCit' :
                $createTable = <<<'SQLITE'
CREATE TABLE ignoredCit (  id INTEGER PRIMARY KEY AUTOINCREMENT,
                           name TEXT,
                           fullnspath TEXT,
                           fullcode TEXT,
                           type TEXT
                )
SQLITE;
                break;

            case 'ignoredFunctions' :
                $createTable = <<<'SQLITE'
CREATE TABLE ignoredFunctions (  id INTEGER PRIMARY KEY AUTOINCREMENT,
                                 name TEXT,
                                 fullnspath TEXT,
                                 fullcode TEXT
                )
SQLITE;
                break;

            case 'ignoredConstants' :
                $createTable = <<<'SQLITE'
CREATE TABLE ignoredConstants (  id INTEGER PRIMARY KEY AUTOINCREMENT,
                                 name TEXT,
                                 fullnspath TEXT,
                                 fullcode TEXT,
                                 value TEXT
                )
SQLITE;
                break;

            default :
                throw new NoStructureForTable($table);
        }

        $this->sqliteWrite->query($createTable);

        return true;
    }

    public function reload(): void {
        $this->sqliteRead->close();
        $this->sqliteWrite->close();

        $this->sqliteWrite = new \Sqlite3($this->config->datastore, \SQLITE3_OPEN_READWRITE | \SQLITE3_OPEN_CREATE);
        $this->sqliteWrite->busyTimeout(self::TIMEOUT_WRITE);
        // open the read connexion AFTER the write, to have the sqlite databse created
        $this->sqliteRead = new \Sqlite3($this->config->datastore, \SQLITE3_OPEN_READONLY);
        $this->sqliteWrite->busyTimeout(self::TIMEOUT_READ);
    }

    public function ignoreFile(string $file, string $reason = 'unknown'): void {
        $this->sqliteWrite->query('DELETE FROM files WHERE file = \'' . $this->sqliteWrite->escapeString($file) . '\'');
        $this->sqliteWrite->query('INSERT INTO ignoredFiles VALUES (NULL, \'' . $this->sqliteWrite->escapeString($file) . '\', "' . $reason . '")');
    }

    public function storeQueries(array $queries) : int {
        $this->sqliteWrite->lastErrorCode();
        foreach($queries as $query) {
            $res = $this->sqliteWrite->query($query);
            if ($this->sqliteWrite->lastErrorCode()) {
                print  $query.PHP_EOL.PHP_EOL;
            }
        }

        return count($queries);
    }

}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Graph;

use Exakat\Graph\Helpers\GraphResults;
use Exakat\Exceptions\GremlinException;
use Exakat\Exceptions\UnknownGremlinVersion;
use Brightzone\GremlinDriver\Connection;

class Tinkergraph extends Graph {
    const CHECKED = true;
    const UNCHECKED = false;
    const UNAVAILABLE = 1;

    private $status     = self::UNCHECKED;
    private $db         = null;

    private $gremlinVersion = '3.4';

    public function init(): void {
        if (!file_exists("{$this->config->tinkergraph_folder}/lib/")) {
            // No local production, just skip init.
            $this->status = self::UNAVAILABLE;
            return;
        }

        $gremlinJar = glob("{$this->config->tinkergraph_folder}/lib/gremlin-core-*.jar");
        $gremlinVersion = basename(array_pop($gremlinJar));

        $this->gremlinVersion = substr($gremlinVersion, 13, -6);
        if (in_array($this->gremlinVersion, array('3.4'), STRICT_COMPARISON)) {
            throw new UnknownGremlinVersion($this->gremlinVersion);
        }

        $this->db = new Connection(array( 'host'  => $this->config->tinkergraph_host,
                                          'port'  => $this->config->tinkergraph_port,
                                          'graph' => 'graph',
                                          'emptySet' => true,
                                   ) );
        $this->status = self::UNCHECKED;
    }

    private function checkConfiguration(): void {
        ini_set('default_socket_timeout', '1600');
        $this->db->open();
    }

    public function getInfo(): array {
        $stats = array();

        if (empty($this->config->tinkergraphv3_folder)) {
            $stats['configured'] = 'No tinkergraph configured in config/exakat.ini.';
        } elseif (!file_exists($this->config->tinkergraphv3_folder)) {
            $stats['installed'] = 'No (folder : ' . $this->config->tinkergraphv3_folder . ')';
        } else {
            $stats['installed'] = 'Yes (folder : ' . $this->config->tinkergraphv3_folder . ')';
            $stats['host'] = $this->config->tinkergraph_host;
            $stats['port'] = $this->config->tinkergraph_port;

            $gremlinJar = glob("{$this->config->tinkergraphv3_folder}/lib/gremlin-core-*.jar");
            $gremlinVersion = basename(array_pop($gremlinJar));
            //example : gremlin-core-3.2.5.jar
            $gremlinVersion = substr($gremlinVersion, 13, -4);

            $stats['gremlin version'] = $gremlinVersion;

            if (file_exists("{$this->config->tinkergraph_port}/db/tinkergraph.pid")) {
                $stats['running'] = 'Yes (PID : ' . trim(file_get_contents("{$this->config->tinkergraph_port}/db/tinkergraph.pid")) . ')';
            }
        }

        return $stats;
    }

    public function query(string $query, array $params = array(),array $load = array()): GraphResults {
        if ($this->status === self::UNAVAILABLE) {
            return new GraphResults();
        } elseif ($this->status === self::UNCHECKED) {
            $this->checkConfiguration();
        }

        $b = microtime(true);
        $params['#jsr223.groovy.engine.keep.globals'] = 'phantom';
        foreach ($params as $name => $value) {
            $this->db->message->bindValue($name, $value);
        }

        $result = $this->db->send($query);

        if (empty($result)) {
            return new GraphResults();
        } elseif ($result[0] === null) {
            return new GraphResults();
        } elseif (is_array($result[0])) {
            if (isset($result[0]['type'])) {
                $result = $this->simplifyArray($result);
            }

            return new GraphResults($result);
        } elseif (is_array($result)) {
            return new GraphResults($result);
        } elseif ($result instanceof \stdClass) {
            return new GraphResults($result);
        } else {
            print 'Processing unknown type ' . gettype($result) . PHP_EOL;
            var_dump($result);
            die();
        }
    }

    public function queryOne(string $query, array $params = array(),array $load = array()): GraphResults {
        if ($this->status === self::UNCHECKED) {
            $this->checkConfiguration();
        }

        return $this->query($query, $params, $load);
    }

    public function checkConnection() {
        $res = @stream_socket_client('tcp://' . $this->config->tinkergraph_host . ':' . $this->config->tinkergraph_port,
                                     $errno,
                                     $errorMessage,
                                     1,
                                     STREAM_CLIENT_CONNECT
                                     );

        return is_resource($res);
    }

    public function serverInfo() {
        if ($this->status === self::UNCHECKED) {
            $this->checkConfiguration();
        }

        $res = $this->query('Gremlin.version();');

        return $res;
    }

    public function clean() {
        // This is memory only Database
        $this->stop();
        $this->start();
    }

    public function start(): void {
        if (!file_exists("{$this->config->tinkergraph_folder}/conf")) {
            throw new GremlinException('No tinkgergraph configuration folder found.');
        }

        if (!file_exists("{$this->config->tinkergraph_folder}/conf/tinkergraph.{$this->gremlinVersion}.yaml")) {
            copy("{$this->config->dir_root}/server/tinkergraph/tinkergraph.{$this->gremlinVersion}.yaml",
                 "{$this->config->tinkergraph_folder}/conf/tinkergraph.{$this->gremlinVersion}.yaml");
        }

        if (in_array($this->gremlinVersion, array('3.3', '3.4'), STRICT_COMPARISON)) {
            putenv("GREMLIN_YAML=conf/tinkergraph.{$this->gremlinVersion}.yaml");
            putenv('PID_DIR=db');
            exec("GREMLIN_YAML=conf/tinkergraph.{$this->gremlinVersion}.yaml; PID_DIR=db; cd {$this->config->tinkergraph_folder}; rm -rf db/neo4j; ./bin/gremlin-server.sh start > gremlin.log 2>&1 &");
        } elseif ($this->gremlinVersion === '3.2') {
            exec("cd {$this->config->tinkergraph_folder}; rm -rf db/neo4j; ./bin/gremlin-server.sh conf/tinkergraph.yaml  > gremlin.log 2>&1 & echo $! > db/tinkergraph.{$this->gremlinVersion}.pid ");
        } else {
            throw new GremlinException("Wrong version for tinkergraph : $this->gremlinVersion");
        }
        $this->init();
        sleep(1);

        $b = microtime(true);
        $round = -1;
        do {
            $res = $this->checkConnection();
            ++$round;
            usleep(100000 * $round);
        } while (empty($res) && $round < 20);
        $e = microtime(true);

        display("Restarted in $round rounds\n");

        if (file_exists("{$this->config->tinkergraph_folder}/run/gremlin.pid")) {
            $pid = trim(file_get_contents("{$this->config->tinkergraph_folder}/run/gremlin.pid"));
        } elseif (file_exists("{$this->config->tinkergraph_folder}/db/tinkergraph.pid")) {
            $pid = trim(file_get_contents("{$this->config->tinkergraph_folder}/db/tinkergraph.pid"));
        } else {
            $pid = 'Not yet';
        }

        display('started [' . $pid . '] in ' . number_format(($e - $b) * 1000, 2) . ' ms' );
    }

    public function stop(): void {
        if (file_exists("{$this->config->tinkergraph_folder}/db/gremlin.pid")) {
            display("stop gremlin server {$this->gremlinVersion}");
            putenv("GREMLIN_YAML=conf/tinkergraph.{$this->gremlinVersion}.yaml");
            putenv('PID_DIR=db');
            shell_exec("cd {$this->config->tinkergraph_folder}; ./bin/gremlin-server.sh stop");
            if (file_exists("{$this->config->tinkergraph_folder}/db/gremlin.pid")) {
                unlink("{$this->config->tinkergraph_folder}/db/gremlin.pid");
            }
        }

        if (file_exists("{$this->config->tinkergraph_folder}/db/tinkergraph.pid")) {
            display('stop gremlin server 3.2');
            shell_exec("kill -9 $(cat {$this->config->tinkergraph_folder}/db/tinkergraph.pid) 2>> gremlin.log; rm -f {$this->config->tinkergraph_folder}/db/tinkergraph.pid");
        }
    }

    private function simplifyArray($result) {
        $return = array();

        if (!isset($result[0]['properties'])) {
            return $result;
        }

        foreach ($result as $r) {
            $row = array('id'    => $r['id'],
                         'label' => $r['label']);
            foreach ($r['properties'] as $property => $value) {
                $row[$property] = $value[0]['value'];
            }

            $return[] = $row;
        }

        return $return;
    }

    public function getDefinitionSQL() {
        // Optimize loading by sorting the results
        return <<<'SQL'
SELECT DISTINCT CASE WHEN definitions.id IS NULL THEN definitions2.id ELSE definitions.id END AS definition, GROUP_CONCAT(DISTINCT calls.id) AS call, count(calls.id) AS id
FROM calls
LEFT JOIN definitions 
    ON definitions.type       = calls.type       AND
       definitions.fullnspath = calls.fullnspath
LEFT JOIN definitions definitions2
    ON definitions2.type       = calls.type       AND
       definitions2.fullnspath = calls.globalpath 
WHERE (definitions.id IS NOT NULL OR definitions2.id IS NOT NULL)
GROUP BY definition
SQL;
    }

    public function getGlobalsSql() {
        return 'SELECT origin, destination FROM globals';
    }
}

?>
   Bud1           	                                                           e r sbwspbl                                                                                                                                                                                                                                                                                                                                                                                                                                           H e l p e r sbwspblob   bplist00	
			]ShowStatusBar_SidebarWidthTenElevenOrLater[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar[ShowPathbar	#@j     		_{{-834, 141}, {770, 436}}	'FR^u                                H e l p e r svSrnlong                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   @                                              @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   E  	                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       DSDB                                 `                                                   @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              <?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Graph;

use Exakat\Graph\Helpers\GraphResults;
use Exakat\Exceptions\GremlinException;
use Brightzone\GremlinDriver\Connection;
use stdClass;

class Janusgraph extends Graph {
    const CHECKED     = true;
    const UNCHECKED   = false;
    const UNAVAILABLE = 2;

    private $status     = self::UNCHECKED;

    private $db         = null;

    private $gremlinVersion = '3.4';

    public function init() {

        if (!file_exists("{$this->config->janusgraph_folder}/lib/")) {
            // No local production, just skip init.
            $this->status = self::UNAVAILABLE;
            return;
        }

        $gremlinJar = glob("{$this->config->janusgraph_folder}/lib/gremlin-core-*.jar");
        $gremlinVersion = basename(array_pop($gremlinJar));
        // 3.4 or 3.3 or 3.2
        $this->gremlinVersion = substr($gremlinVersion, 13, -6);
        assert(in_array($this->gremlinVersion, array('3.2', '3.3', '3.4')), "Unknown Gremlin version : $this->gremlinVersion\n");

        $this->db = new Connection(array( 'host'     => $this->config->janusgraph_host,
                                          'port'     => $this->config->janusgraph_port,
                                          'graph'    => 'graph',
                                          'emptySet' => true,
                                   ) );
        $this->db->message->registerSerializer('\Brightzone\GremlinDriver\Serializers\Json', true);

        $this->status = self::UNCHECKED;
    }

    private function checkConfiguration() {
        ini_set('default_socket_timeout', '1600');
        $this->db->open();
    }

    public function query(string $query, array $params = array(),array $load = array()): GraphResults {
        if ($this->status === self::UNAVAILABLE) {
            return new GraphResults();
        }

        if ($this->status === self::UNCHECKED) {
            $this->checkConfiguration();
        }
        print_r($query);
        print_r(file_get_contents('/Users/famille/Desktop/analyzeG3/projects/test/.exakat/graphdb.graphson'));
//        $params['#jsr223.groovy.engine.keep.globals'] = 'phantom';
        foreach ($params as $name => $value) {
            $this->db->message->bindValue($name, $value);
        }

//        static $query_count = 0;
//        ++$query_count;
//        $b = hrtime(true);
        $result = $this->db->send($query);
//        $e = hrtime(true);
//        $d = ( ($e - $b) / 1000000 );
//        file_put_contents('./gremlin.query.log', "$query_count\t$d\t".hash('fnv132', $query)."\t$query\n", \FILE_APPEND);

        if (empty($result)) {
            return new GraphResults();
        } elseif ($result[0] === null) {
            return new GraphResults();
        } elseif (is_array($result[0])) {
            if (isset($result[0]['processed'])) {
                $result = array('processed' => empty($result[0]['processed']) ? 0 : array_shift($result[0]['processed']),
                                'total'     => empty($result[0]['total']) ? 0 : array_shift($result[0]['total']));
            }

            if (isset($result[0]['type'])) {
                $result = $this->simplifyArray($result);
            }

            return new GraphResults($result);
        } elseif (is_array($result)) {
            return new GraphResults($result);
        } elseif ($result instanceof stdClass) {
            return new GraphResults($result);
        } else {
            print 'Processing unknown type ' . gettype($result) . PHP_EOL;
            die(__METHOD__);
        }
    }

    public function queryOne(string $query, array $params = array(),array $load = array()): GraphResults {
        if ($this->status === self::UNCHECKED) {
            $this->checkConfiguration();
        }

        $res = $this->query($query, $params, $load);
        if (!($res instanceof stdClass) || !isset($res->results)) {
            throw new GremlinException('Server is not responding');
        }

        if (is_array($res->results)) {
            return $res->results[0];
        } else {
            return $res->results;
        }
    }

    public function checkConnection(): bool {
        $res = @stream_socket_client("tcp://{$this->config->janusgraph_host}:{$this->config->janusgraph_port}",
                                     $errno,
                                     $errorMessage,
                                     1,
                                     STREAM_CLIENT_CONNECT
                                     );

        return is_resource($res);
    }

    public function serverInfo() {
        if ($this->status === self::UNCHECKED) {
            $this->checkConfiguration();
        }

        $res = $this->query('Gremlin.version();');

        return $res;
    }

    public function clean() {
        $this->stop();
        $this->start();
    }

    public function start() {
        if (!file_exists("{$this->config->janusgraph_folder}/conf")) {
            throw new GremlinException('No graphdb found.');
        }

        if (!file_exists("{$this->config->janusgraph_folder}/conf/gsneo4j.{$this->gremlinVersion}.yaml")) {
            copy( "{$this->config->dir_root}/server/gsneo4j/gsneo4j.{$this->gremlinVersion}.yaml",
                  "{$this->config->janusgraph_folder}/conf/gsneo4j.{$this->gremlinVersion}.yaml");
            copy( "{$this->config->dir_root}/server/gsneo4j/exakat.properties",
                  "{$this->config->janusgraph_folder}/conf/exakat.properties");
        }

        display("start gremlin server {$this->gremlinVersion}.x");
        putenv("GREMLIN_YAML=conf/gsneo4j.{$this->gremlinVersion}.yaml");
        exec("cd {$this->config->janusgraph_folder};sh ./bin/gremlin-server.sh conf/janusgraph.0.5.1.yaml start > gremlin.log 2>&1 &");

        display('started gremlin server');
        $this->resetConnection();
        sleep(2);

        $b = microtime(true);
        $round = -1;
        $pid = false;
        do {
            $connexion = $this->checkConnection();
            if (empty($connexion)) {
                ++$round;
                usleep(100000 * $round);
            }
        } while ( empty($connexion) && $round < 20);
        $e = microtime(true);

        display("Restarted in $round rounds\n");

        if (file_exists("{$this->config->janusgraph_folder}/run/janusgraph.pid")) {
            $pid = trim(file_get_contents("{$this->config->janusgraph_folder}/run/janusgraph.pid"));
        } else {
            $pid = false;
        }

        $ms = number_format(($e - $b) * 1000, 2);
        $pid = $pid === false ? 'Not yet' : $pid;
        display("started [$pid] in $ms ms");
    }

    public function stop() {
        if (file_exists("{$this->config->janusgraph_folder}/run/janusgraph.pid")) {
            display('stop janusgraph server 0.5.1');
            shell_exec("cd {$this->config->janusgraph_folder};sh ./bin/gremlin-server.sh stop");
        }
    }

    private function simplifyArray($result) {
        $return = array();

        if (!isset($result[0]['properties'])) {
            return $result;
        }

        foreach ($result as $r) {
            $row = array('id'    => $r['id'],
                         'label' => $r['label']);
            foreach ($r['properties'] as $property => $value) {
                $row[$property] = $value[0]['value'];
            }

            $return[] = $row;
        }

        return $return;
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Graph;

use Exakat\Graph\Helpers\GraphResults;

class NoGremlin extends Graph {
    public function query(string $query, array $params = array(),array $load = array()): GraphResults {
        return new GraphResults();
    }

    public function queryOne(string $query, array $params = array(),array $load = array()): GraphResults {
        return new GraphResults();
    }

    public function init(): void {
    }

    public function start(): void {
    }

    public function stop(): void {
    }

    public function serverInfo() {
        return array('Server' => 'None');
    }

    public function checkConnection() {
        return true;
    }

    public function clean() {
        return true;
    }

    public function getDefinitionSQL() {
        return 'PRAGMA no_sql;';
    }

    public function getInfo(): array {
        return array('installed' => 'Always',
                    );
    }

}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Graph;

use Exakat\Graph\Helpers\GraphResults;
use Exakat\Exceptions\GremlinException;
use Exakat\Exceptions\UnkownGremlinVersion;
use Brightzone\GremlinDriver\Connection;

class GSNeo4jV3 extends Graph {
    const CHECKED     = true;
    const UNCHECKED   = false;
    const UNAVAILABLE = 2;

    private $status     = self::UNCHECKED;

    private $db         = null;

    private $gremlinVersion = '3.4';

    public function getInfo(): array {
        $stats = array();

        if (empty($this->config->gsneo4jv3_folder)) {
            $stats['configured'] = 'No gsneo4jv3_folder configured in config/exakat.ini.';
        } elseif (!file_exists($this->config->gsneo4jv3_folder)) {
            $stats['installed'] = 'No (folder : ' . $this->config->gsneo4jv3_folder . ')';
        } elseif (!file_exists($this->config->gsneo4jv3_folder . '/ext/neo4j-gremlin/')) {
            $stats['installed'] = 'Partially (missing neo4j folder : ' . $this->config->gsneo4jv3_folder . ')';
        } else {
            $stats['installed'] = "Yes (folder : {$this->config->gsneo4jv3_folder})";
            $stats['host'] = $this->config->gsneo4jv3_host;
            $stats['port'] = $this->config->gsneo4jv3_port;

            $plugins = glob("{$this->config->gsneo4jv3_folder}/ext/neo4j-gremlin/plugin/*.jar");
            if (count($plugins) !== 72) {
                $stats['grapes failed'] = 'Partially installed neo4j plugin. Please, check installation docs, and "grab" again : some of the files are missing for neo4j.';
            }

            $gremlinJar = glob("{$this->config->gsneo4jv3_folder}/lib/gremlin-core-*.jar");
            $gremlinVersion = basename(array_pop($gremlinJar));
            //gremlin-core-3.2.5.jar
            $gremlinVersion = substr($gremlinVersion, 13, -4);
            $stats['gremlin version'] = $gremlinVersion;

            $neo4jJar = glob("{$this->config->gsneo4jv3_folder}/ext/neo4j-gremlin/lib/neo4j-*.jar");
            $neo4jJar = array_filter($neo4jJar, function ($x) { return preg_match('#/neo4j-\d\.\d\.\d\.jar#', $x); });
            $neo4jVersion = basename(array_pop($neo4jJar));

            //neo4j-2.3.3.jar
            $neo4jVersion = substr($neo4jVersion, 6, -4);
            $stats['neo4j version'] = $neo4jVersion;

            if (file_exists("{$this->config->gsneo4jv3_folder}/db/gsneo4j.pid")) {
                $stats['running'] = 'Yes (PID : ' . trim(file_get_contents("{$this->config->gsneo4jv3_folder}/db/gsneo4j.pid")) . ')';
            }
        }

        return $stats;
    }

    public function init(): void {
        if (!file_exists("{$this->config->gsneo4jv3_folder}/lib/")) {
            // No local production, just skip init.
            $this->status = self::UNAVAILABLE;
            return;
        }

        $gremlinJar = glob("{$this->config->gsneo4jv3_folder}/lib/gremlin-core-*.jar");
        $gremlinVersion = basename(array_pop($gremlinJar));
        // 3.4 only
        $this->gremlinVersion = substr($gremlinVersion, 13, -6);
        if(!in_array($this->gremlinVersion, array('3.4'), STRICT_COMPARISON)) {
            throw new UnkownGremlinVersion($this->gremlinVersion);
        }

        $this->db = new Connection(array( 'host'     => $this->config->gsneo4jv3_host,
                                          'port'     => $this->config->gsneo4jv3_port,
                                          'graph'    => 'graph',
                                          'emptySet' => true,
                                   ) );
                                           $this->db = new Connection(array( 'host'     => $this->config->gsneo4jv3_host,
                                          'port'     => $this->config->gsneo4jv3_port,
                                          'graph'    => 'graph',
                                          'emptySet' => true,
                                   ) );
        $this->status = self::UNCHECKED;
    }

    private function checkConfiguration() {
        ini_set('default_socket_timeout', '1600');
        $this->db->open();
    }

    public function query(string $query, array $params = array(),array $load = array()): GraphResults {
        if ($this->status === self::UNAVAILABLE) {
            return new GraphResults();
        }

        if ($this->status === self::UNCHECKED) {
            $this->checkConfiguration();
        }

        $params['#jsr223.groovy.engine.keep.globals'] = 'phantom';
        foreach ($params as $name => $value) {
            $this->db->message->bindValue($name, $value);
        }

        $result = $this->db->send($query);


        return new GraphResults($result);
    }

    public function queryOne(string $query, array $params = array(),array $load = array()): GraphResults {
        if ($this->status === self::UNCHECKED) {
            $this->checkConfiguration();
        }

        return $this->query($query, $params, $load);
    }

    public function checkConnection(): bool {
        $res = @stream_socket_client("tcp://{$this->config->gsneo4jv3_host}:{$this->config->gsneo4jv3_port}",
                                     $errno,
                                     $errorMessage,
                                     1,
                                     STREAM_CLIENT_CONNECT
                                     );

        return is_resource($res);
    }

    public function serverInfo() {
        if ($this->status === self::UNCHECKED) {
            $this->checkConfiguration();
        }

        $res = $this->query('Gremlin.version();');

        return $res;
    }

    public function clean() {
        $this->stop();
        $this->start();
    }

    public function start(): void {
        if (!file_exists("{$this->config->gsneo4jv3_folder}/conf")) {
            throw new GremlinException('No graphdb found.');
        }

        if (!file_exists("{$this->config->gsneo4jv3_folder}/conf/gsneo4j.{$this->gremlinVersion}.yaml")) {
            copy( "{$this->config->dir_root}/server/gsneo4j/gsneo4j.{$this->gremlinVersion}.yaml",
                  "{$this->config->gsneo4jv3_folder}/conf/gsneo4j.{$this->gremlinVersion}.yaml");
            copy( "{$this->config->dir_root}/server/gsneo4j/exakat.properties",
                  "{$this->config->gsneo4jv3_folder}/conf/exakat.properties");
        }

        if (in_array($this->gremlinVersion, array('3.4'))) {
            display("start gremlin server {$this->gremlinVersion}.x");
            putenv("GREMLIN_YAML=conf/gsneo4j.{$this->gremlinVersion}.yaml");
            putenv('PID_DIR=db');
            exec("GREMLIN_YAML=conf/gsneo4j.{$this->gremlinVersion}.yaml; PID_DIR=db; cd {$this->config->gsneo4jv3_folder}; rm -rf db/neo4j; ./bin/gremlin-server.sh start > gremlin.log 2>&1 &");
        }
        display('started gremlin server');
        $this->init();
        sleep(2);

        $b = microtime(true);
        $round = -1;
        $pid = false;
        do {
            $connexion = $this->checkConnection();
            if (empty($connexion)) {
                ++$round;
                usleep(100000 * $round);
            }
        } while ( empty($connexion) && $round < 20);
        $e = microtime(true);

        display("Restarted in $round rounds\n");

        if (file_exists("{$this->config->gsneo4jv3_folder}/db/gremlin.pid")) {
            $pid = trim(file_get_contents("{$this->config->gsneo4jv3_folder}/db/gremlin.pid"));
        } elseif ( file_exists("{$this->config->gsneo4jv3_folder}/db/gsneo4j.pid")) {
            $pid = trim(file_get_contents("{$this->config->gsneo4jv3_folder}/db/gsneo4j.pid"));
        } else {
            $pid = false;
        }

        $ms = number_format(($e - $b) * 1000, 2);
        $pid = $pid === false ? 'Not yet' : $pid;
        display("started [$pid] in $ms ms");
    }

    public function stop(): void {
        if (file_exists("{$this->config->gsneo4jv3_folder}/db/gremlin.pid")) {
            display('stop gremlin server 3.4.x');
            putenv('GREMLIN_YAML=conf/gsneo4jv3.3.4.yaml');
            putenv('PID_DIR=db');
            shell_exec("GREMLIN_YAML=conf/gsneo4jv3.3.4.yaml; PID_DIR=db; cd {$this->config->gsneo4jv3_folder}; ./bin/gremlin-server.sh stop; rm -rf db/gremlin.pid");
        }
    }

    private function simplifyArray($result) {
        $return = array();

        if (!isset($result[0]['properties'])) {
            return $result;
        }

        foreach ($result as $r) {
            $row = array('id'    => $r['id'],
                         'label' => $r['label']);
            foreach ($r['properties'] as $property => $value) {
                $row[$property] = $value[0]['value'];
            }

            $return[] = $row;
        }

        return $return;
    }

    public function fixId($id) {
        return $id - 1;
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Graph;

use Exakat\Graph\Helpers\GraphResults;

abstract class Graph {
    protected $config = null;

    public const GRAPHDB = array('nogremlin',
                                 'gsneo4j',
                                 'gsneo4jV3',
                                 'tinkergraph',
                                 'tinkergraphv3',
                                 'janusgraph',
                                 'orientdb',
                                 );

    public function __construct() {
        $this->config = exakat('config');
    }

    abstract public function query(string $query, array $params = array(),array $load = array()): GraphResults;

    abstract public function queryOne(string $query, array $params = array(),array $load = array()): GraphResults;

    abstract public function init(): void;

    abstract public function getInfo(): array;

    abstract public function start(): void;

    abstract public function stop(): void;

    public function restart(): void {
        $this->stop();
        $this->start();
    }

    abstract public function serverInfo();

    abstract public function checkConnection();

    abstract public function clean();

    // Produces an id for storing a new value.
    // null means that the graph will handle it.
    // This is not the case of all graph : tinkergraph doesn't.
    public function getId() {
        return 'null';
    }

    public function fixId($id) {
        return $id;
    }

    public static function getConnexion(string $gremlin = null): self {
        if ($gremlin === null) {
            $config = exakat('config');
            $gremlin = $config->gremlin;
        }

        $graphDBClass = "\\Exakat\\Graph\\$gremlin";

        return new $graphDBClass();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Graph;

use Exakat\Graph\Helpers\GraphResults;
use Exakat\Exceptions\GremlinException;
use Exakat\Exceptions\UnkownGremlinVersion;
use Brightzone\GremlinDriver\Connection;
use stdClass;

class GSNeo4j extends Graph {
    const CHECKED     = true;
    const UNCHECKED   = false;
    const UNAVAILABLE = 2;

    private $status     = self::UNCHECKED;

    private $db         = null;

    private $gremlinVersion = '3.4';

    public function getInfo(): array {
        $stats = array();

        if (empty($this->config->gsneo4j_folder)) {
            $stats['configured'] = 'No gsneo4j_folder configured in config/exakat.ini.';
        } elseif (!file_exists($this->config->gsneo4j_folder)) {
            $stats['installed'] = 'No (folder : ' . $this->config->gsneo4j_folder . ')';
        } elseif (!file_exists($this->config->gsneo4j_folder . '/ext/neo4j-gremlin/')) {
            $stats['installed'] = 'Partially (missing neo4j folder : ' . $this->config->gsneo4j_folder . ')';
        } else {
            $stats['installed'] = "Yes (folder : {$this->config->gsneo4j_folder})";
            $stats['host'] = $this->config->gsneo4j_host;
            $stats['port'] = $this->config->gsneo4j_port;

            $plugins = glob("{$this->config->gsneo4j_folder}/ext/neo4j-gremlin/plugin/*.jar");
            if (count($plugins) !== 72) {
                $stats['grapes failed'] = 'Partially installed neo4j plugin. Please, check installation docs, and "grab" again : some of the files are missing for neo4j.';
            }

            $gremlinJar = glob("{$this->config->gsneo4j_folder}/lib/gremlin-core-*.jar");
            $gremlinVersion = basename(array_pop($gremlinJar));
            //gremlin-core-3.2.5.jar
            $gremlinVersion = substr($gremlinVersion, 13, -4);
            $stats['gremlin version'] = $gremlinVersion;

            $neo4jJar = glob("{$this->config->gsneo4j_folder}/ext/neo4j-gremlin/lib/neo4j-*.jar");
            $neo4jJar = array_filter($neo4jJar, function ($x) { return preg_match('#/neo4j-\d\.\d\.\d\.jar#', $x); });
            $neo4jVersion = basename(array_pop($neo4jJar));

            //neo4j-2.3.3.jar
            $neo4jVersion = substr($neo4jVersion, 6, -4);
            $stats['neo4j version'] = $neo4jVersion;

            if (file_exists("{$this->config->gsneo4j_folder}/db/gsneo4j.pid")) {
                $stats['running'] = 'Yes (PID : ' . trim(file_get_contents("{$this->config->gsneo4j_folder}/db/gsneo4j.pid")) . ')';
            }
        }

        return $stats;
    }

    public function init(): void {
        if (!file_exists("{$this->config->gsneo4j_folder}/lib/")) {
            // No local production, just skip init.
            $this->status = self::UNAVAILABLE;
            return;
        }

        $gremlinJar = glob("{$this->config->gsneo4j_folder}/lib/gremlin-core-*.jar");
        $gremlinVersion = basename(array_pop($gremlinJar));
        // 3.4 or 3.3 or 3.2
        $this->gremlinVersion = substr($gremlinVersion, 13, -6);
        if(!in_array($this->gremlinVersion, array('3.2', '3.3', '3.4'), STRICT_COMPARISON)) {
            throw new UnkownGremlinVersion($this->gremlinVersion);
        }

        $this->db = new Connection(array( 'host'     => $this->config->gsneo4j_host,
                                          'port'     => $this->config->gsneo4j_port,
                                          'graph'    => 'graph',
                                          'emptySet' => true,
                                   ) );
                                           $this->db = new Connection(array( 'host'     => $this->config->gsneo4j_host,
                                          'port'     => $this->config->gsneo4j_port,
                                          'graph'    => 'graph',
                                          'emptySet' => true,
                                   ) );
        $this->status = self::UNCHECKED;
    }

    private function checkConfiguration() {
        ini_set('default_socket_timeout', '1600');
        $this->db->open();
    }

    public function query(string $query, array $params = array(),array $load = array()): GraphResults {
        if ($this->status === self::UNAVAILABLE) {
            return new GraphResults();
        }

        if ($this->status === self::UNCHECKED) {
            $this->checkConfiguration();
        }

        $params['#jsr223.groovy.engine.keep.globals'] = 'phantom';
        foreach ($params as $name => $value) {
            $this->db->message->bindValue($name, $value);
        }

        $result = $this->db->send($query);

        if (empty($result)) {
            return new GraphResults();
        } elseif ($result[0] === null) {
            return new GraphResults();
        } elseif (is_array($result[0])) {
            if (isset($result[0]['type'])) {
                $result = $this->simplifyArray($result);
            }

            return new GraphResults($result);
        } elseif (is_array($result)) {
            return new GraphResults($result);
        } elseif ($result instanceof stdClass) {
            return new GraphResults($result);
        } else {
            print 'Processing unknown type ' . gettype($result) . PHP_EOL;
            die(__METHOD__);
        }
    }

    public function queryOne(string $query, array $params = array(),array $load = array()): GraphResults {
        if ($this->status === self::UNCHECKED) {
            $this->checkConfiguration();
        }

        return $this->query($query, $params, $load);
    }

    public function checkConnection(): bool {
        $res = @stream_socket_client("tcp://{$this->config->gsneo4j_host}:{$this->config->gsneo4j_port}",
                                     $errno,
                                     $errorMessage,
                                     1,
                                     STREAM_CLIENT_CONNECT
                                     );

        return is_resource($res);
    }

    public function serverInfo() {
        if ($this->status === self::UNCHECKED) {
            $this->checkConfiguration();
        }

        $res = $this->query('Gremlin.version();');

        return $res;
    }

    public function clean() {
        $this->stop();
        $this->start();
    }

    public function start(): void {
        if (!file_exists("{$this->config->gsneo4j_folder}/conf")) {
            throw new GremlinException('No graphdb found.');
        }

        if (!file_exists("{$this->config->gsneo4j_folder}/conf/gsneo4j.{$this->gremlinVersion}.yaml")) {
            copy( "{$this->config->dir_root}/server/gsneo4j/gsneo4j.{$this->gremlinVersion}.yaml",
                  "{$this->config->gsneo4j_folder}/conf/gsneo4j.{$this->gremlinVersion}.yaml");
            copy( "{$this->config->dir_root}/server/gsneo4j/exakat.properties",
                  "{$this->config->gsneo4j_folder}/conf/exakat.properties");
        }

        if (in_array($this->gremlinVersion, array('3.3', '3.4'))) {
            display("start gremlin server {$this->gremlinVersion}.x");
            putenv("GREMLIN_YAML=conf/gsneo4j.{$this->gremlinVersion}.yaml");
            putenv('PID_DIR=db');
            exec("GREMLIN_YAML=conf/gsneo4j.{$this->gremlinVersion}.yaml; PID_DIR=db; cd {$this->config->gsneo4j_folder}; rm -rf db/neo4j; ./bin/gremlin-server.sh start > gremlin.log 2>&1 &");
        } elseif ($this->gremlinVersion === '3.2') {
            display('start gremlin server 3.2.x');
            exec("cd {$this->config->gsneo4j_folder}; rm -rf db/neo4j; ./bin/gremlin-server.sh conf/gsneo4j.3.2.yaml  > gremlin.log 2>&1 & echo $! > db/gsneo4j.pid ");
        }
        display('started gremlin server');
        $this->init();
        sleep(2);

        $b = microtime(true);
        $round = -1;
        $pid = false;
        do {
            $connexion = $this->checkConnection();
            if (empty($connexion)) {
                ++$round;
                usleep(100000 * $round);
            }
        } while ( empty($connexion) && $round < 20);
        $e = microtime(true);

        display("Restarted in $round rounds\n");

        if (file_exists("{$this->config->gsneo4j_folder}/db/gremlin.pid")) {
            $pid = trim(file_get_contents("{$this->config->gsneo4j_folder}/db/gremlin.pid"));
        } elseif ( file_exists("{$this->config->gsneo4j_folder}/db/gsneo4j.pid")) {
            $pid = trim(file_get_contents("{$this->config->gsneo4j_folder}/db/gsneo4j.pid"));
        } else {
            $pid = false;
        }

        $ms = number_format(($e - $b) * 1000, 2);
        $pid = $pid === false ? 'Not yet' : $pid;
        display("started [$pid] in $ms ms");
    }

    public function stop(): void {
        if (file_exists("{$this->config->gsneo4j_folder}/db/gremlin.pid")) {
            display('stop gremlin server 3.3.x');
            putenv('GREMLIN_YAML=conf/gsneo4j.3.3.yaml');
            putenv('PID_DIR=db');
            shell_exec("GREMLIN_YAML=conf/gsneo4j.3.3.yaml; PID_DIR=db; cd {$this->config->gsneo4j_folder}; ./bin/gremlin-server.sh stop; rm -rf db/gremlin.pid");
        }

        if (file_exists("{$this->config->gsneo4j_folder}/db/gsneo4j.pid")) {
            display('stop gremlin server 3.2.x');
            shell_exec("kill -9 \$(cat {$this->config->gsneo4j_folder}/db/gsneo4j.pid) 2>> gremlin.log; rm -f {$this->config->gsneo4j_folder}/db/gsneo4j.pid");
        }
    }

    private function simplifyArray($result) {
        $return = array();

        if (!isset($result[0]['properties'])) {
            return $result;
        }

        foreach ($result as $r) {
            $row = array('id'    => $r['id'],
                         'label' => $r['label']);
            foreach ($r['properties'] as $property => $value) {
                $row[$property] = $value[0]['value'];
            }

            $return[] = $row;
        }

        return $return;
    }

    public function fixId($id) {
        return $id - 1;
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Graph;

use Exakat\Graph\Helpers\GraphResults;
use Exakat\Exceptions\GremlinException;
use Brightzone\GremlinDriver\Connection;

class TinkergraphV3 extends Graph {
    const CHECKED     = true;
    const UNCHECKED   = false;
    const UNAVAILABLE = 1;

    private $status   = self::UNCHECKED;
    private $db       = null;

    private $gremlinVersion = '3.4';

    public function init(): void {
        if (!file_exists("{$this->config->tinkergraphv3_folder}/lib/")) {
            // No local production, just skip init.
            $this->status = self::UNAVAILABLE;
            return;
        }

        $gremlinJar = glob("{$this->config->tinkergraphv3_folder}/lib/gremlin-core-*.jar");
        $gremlinVersion = basename(array_pop($gremlinJar));
        // 3.4 only
        $this->gremlinVersion = substr($gremlinVersion, 13, -6);
        if(!in_array($this->gremlinVersion, array('3.4'), STRICT_COMPARISON)) {
            throw new UnkownGremlinVersion($this->gremlinVersion);
        }

        $this->db = new Connection(array( 'host'  => $this->config->tinkergraphv3_host,
                                          'port'  => $this->config->tinkergraphv3_port,
                                          'graph' => 'graph',
                                          'emptySet' => true,
                                   ) );
        $this->db->message->registerSerializer('\Exakat\Graph\Helpers\GraphsonV3', true);
        $this->status = self::UNCHECKED;
    }

    public function getInfo(): array {
        $stats = array();

        if (empty($this->config->tinkergraphv3_folder)) {
            $stats['configured'] = 'No tinkergraph configured in config/exakat.ini.';
        } elseif (!file_exists($this->config->tinkergraphv3_folder)) {
            $stats['installed'] = 'No (folder : ' . $this->config->tinkergraphv3_folder . ')';
        } else {
            $stats['installed'] = 'Yes (folder : ' . $this->config->tinkergraphv3_folder . ')';
            $stats['host'] = $this->config->tinkergraph_host;
            $stats['port'] = $this->config->tinkergraph_port;

            $gremlinJar = glob("{$this->config->tinkergraphv3_folder}/lib/gremlin-core-*.jar");
            $gremlinVersion = basename(array_pop($gremlinJar));
            //example : gremlin-core-3.2.5.jar
            $gremlinVersion = substr($gremlinVersion, 13, -4);

            $stats['gremlin version'] = $gremlinVersion;

            if (file_exists("{$this->config->tinkergraph_port}/db/tinkergraph.pid")) {
                $stats['running'] = 'Yes (PID : ' . trim(file_get_contents("{$this->config->tinkergraph_port}/db/tinkergraph.pid")) . ')';
            }
        }

        return $stats;
    }

    private function checkConfiguration(): void {
        ini_set('default_socket_timeout', '1600');
        $this->db->open();
    }

    public function query(string $query, array $params = array(),array $load = array()): GraphResults {
        if ($this->status === self::UNAVAILABLE) {
            return new GraphResults();
        } elseif ($this->status === self::UNCHECKED) {
            $this->checkConfiguration();
        }

        $b = microtime(true);
        $params['#jsr223.groovy.engine.keep.globals'] = 'phantom';
        foreach ($params as $name => $value) {
            $this->db->message->bindValue($name, $value);
        }

        $result = $this->db->send($query);

        return new GraphResults($result);
    }

    public function queryOne(string $query, array $params = array(),array $load = array()): GraphResults {
        if ($this->status === self::UNCHECKED) {
            $this->checkConfiguration();
        }

        return $this->query($query, $params, $load);
    }

    public function checkConnection() {
        $res = @stream_socket_client('tcp://' . $this->config->tinkergraph_host . ':' . $this->config->tinkergraph_port,
                                     $errno,
                                     $errorMessage,
                                     1,
                                     STREAM_CLIENT_CONNECT
                                     );

        return is_resource($res);
    }

    public function serverInfo() {
        if ($this->status === self::UNCHECKED) {
            $this->checkConfiguration();
        }

        $res = $this->query('Gremlin.version();');

        return $res;
    }

    public function clean() {
        // This is memory only Database
        $this->stop();
        $this->start();
    }

    public function start(): void {
        if (!file_exists("{$this->config->tinkergraphv3_folder}/conf")) {
            throw new GremlinException('No tinkgergraph configuration folder found.');
        }

        if (!file_exists("{$this->config->tinkergraphv3_folder}/conf/tinkergraphv3.{$this->gremlinVersion}.yaml")) {
            copy("{$this->config->dir_root}/server/tinkergraphv3/tinkergraphv3.{$this->gremlinVersion}.yaml",
                 "{$this->config->tinkergraphv3_folder}/conf/tinkergraphv3.{$this->gremlinVersion}.yaml");
        }

        if (in_array($this->gremlinVersion, array('3.4'), STRICT_COMPARISON)) {
            putenv("GREMLIN_YAML=conf/tinkergraphv3.{$this->gremlinVersion}.yaml");
            putenv('PID_DIR=db');
            exec("GREMLIN_YAML=conf/tinkergraphv3.{$this->gremlinVersion}.yaml; PID_DIR=db; cd {$this->config->tinkergraphv3_folder}; rm -rf db/neo4j; ./bin/gremlin-server.sh start > gremlin.log 2>&1 &");
        } else {
            throw new GremlinException("Wrong version for tinkergraph : $this->gremlinVersion");
        }
        $this->init();
        sleep(1);

        $b = microtime(true);
        $round = -1;
        do {
            $res = $this->checkConnection();
            ++$round;
            usleep(100000 * $round);
        } while (empty($res) && $round < 20);
        $e = microtime(true);

        display("Restarted in $round rounds\n");

        if (file_exists("{$this->config->tinkergraphv3_folder}/run/gremlin.pid")) {
            $pid = trim(file_get_contents("{$this->config->tinkergraphv3_folder}/run/gremlin.pid"));
        } elseif (file_exists("{$this->config->tinkergraphv3_folder}/db/tinkergraph.pid")) {
            $pid = trim(file_get_contents("{$this->config->tinkergraphv3_folder}/db/tinkergraph.pid"));
        } else {
            $pid = 'Not yet';
        }

        display('started [' . $pid . '] in ' . number_format(($e - $b) * 1000, 2) . ' ms' );
    }

    public function stop(): void {
        if (file_exists("{$this->config->tinkergraphv3_folder}/db/gremlin.pid")) {
            display("stop gremlin server {$this->gremlinVersion}");
            putenv("GREMLIN_YAML=conf/tinkergraphv3.{$this->gremlinVersion}.yaml");
            putenv('PID_DIR=db');
            shell_exec("cd {$this->config->tinkergraphv3_folder}; ./bin/gremlin-server.sh stop");
            if (file_exists("{$this->config->tinkergraphv3_folder}/db/gremlin.pid")) {
                unlink("{$this->config->tinkergraphv3_folder}/db/gremlin.pid");
            }
        }

        if (file_exists("{$this->config->tinkergraphv3_folder}/db/tinkergraph.pid")) {
            display('stop gremlin server 3.2');
            shell_exec("kill -9 $(cat {$this->config->tinkergraphv3_folder}/db/tinkergraph.pid) 2>> gremlin.log; rm -f {$this->config->tinkergraphv3_folder}/db/tinkergraph.pid");
        }
    }

    private function simplifyArray($result) {
        $return = array();

        if (!isset($result[0]['properties'])) {
            return $result;
        }

        foreach ($result as $r) {
            $row = array('id'    => $r['id'],
                         'label' => $r['label']);
            foreach ($r['properties'] as $property => $value) {
                $row[$property] = $value[0]['value'];
            }

            $return[] = $row;
        }

        return $return;
    }

    public function getDefinitionSQL() {
        // Optimize loading by sorting the results
        return <<<'SQL'
SELECT DISTINCT CASE WHEN definitions.id IS NULL THEN definitions2.id ELSE definitions.id END AS definition, GROUP_CONCAT(DISTINCT calls.id) AS call, count(calls.id) AS id
FROM calls
LEFT JOIN definitions 
    ON definitions.type       = calls.type       AND
       definitions.fullnspath = calls.fullnspath
LEFT JOIN definitions definitions2
    ON definitions2.type       = calls.type       AND
       definitions2.fullnspath = calls.globalpath 
WHERE (definitions.id IS NOT NULL OR definitions2.id IS NOT NULL)
GROUP BY definition
SQL;
    }

    public function getGlobalsSql() {
        return 'SELECT origin, destination FROM globals';
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*//**
 * Original work from Ignas Bernotas
 * Modification and reduction by Damien Seguy
 * Copyright (C) 2014, 2015 Textalk
 * Copyright (C) 2015 Ignas Bernotas - added context options and handling
 *
 * This file is part of Websocket PHP and is free software under the ISC License.
 * License text: https://raw.githubusercontent.com/Textalk/websocket-php/master/COPYING
 */

namespace Exakat\Graph\Helpers;

class Websocket {
    protected $socket, $is_connected = false, $is_closing = false, $last_opcode = null,
    $close_status = null, $huge_payload = null;

    protected static $opcodes = array(
    'continuation' => 0,
    'text'         => 1,
    'binary'       => 2,
    'close'        => 8,
    'ping'         => 9,
    'pong'         => 10,
  );

    public function getLastOpcode() {
        return $this->last_opcode;
    }
    public function getCloseStatus() {
        return $this->close_status;
    }
    public function isConnected() {
        return $this->is_connected;
    }

    public function setTimeout($timeout) {
        $this->options['timeout'] = $timeout;

        if ($this->socket && get_resource_type($this->socket) === 'stream') {
            stream_set_timeout($this->socket, $timeout);
        }
    }

    public function setFragmentSize($fragment_size) {
        $this->options['fragment_size'] = $fragment_size;
        return $this;
    }

    public function getFragmentSize() {
        return $this->options['fragment_size'];
    }

    public function send($payload, $opcode = 'text', $masked = true) {
        if (!$this->is_connected) {
            $this->connect();
        } /// @todo This is a client function, fixme!

        if (!in_array($opcode, array_keys(self::$opcodes))) {
            throw new \Exception("Bad opcode '$opcode'.  Try 'text' or 'binary'.");
        }

        // record the length of the payload
        $payload_length = strlen($payload);

        $fragment_cursor = 0;
        // while we have data to send
        while ($payload_length > $fragment_cursor) {
            // get a fragment of the payload
            $sub_payload = substr($payload, $fragment_cursor, $this->options['fragment_size']);

            // advance the cursor
            $fragment_cursor += $this->options['fragment_size'];

            // is this the final fragment to send?
            $final = $payload_length <= $fragment_cursor;

            // send the fragment
            $this->send_fragment($final, $sub_payload, $opcode, $masked);

            // all fragments after the first will be marked a continuation
            $opcode = 'continuation';
        }
    }

    protected function send_fragment($final, $payload, $opcode, $masked) {
        // Binary string for header.
        $frame_head_binstr = '';

        // Write FIN, final fragment bit.
        $frame_head_binstr .= (bool) $final ? '1' : '0';

        // RSV 1, 2, & 3 false and unused.
        $frame_head_binstr .= '000';

        // Opcode rest of the byte.
        $frame_head_binstr .= sprintf('%04b', self::$opcodes[$opcode]);

        // Use masking?
        $frame_head_binstr .= $masked ? '1' : '0';

        // 7 bits of payload length...
        $payload_length = strlen($payload);
        if ($payload_length > 65535) {
            $frame_head_binstr .= decbin(127);
            $frame_head_binstr .= sprintf('%064b', $payload_length);
        } elseif ($payload_length > 125) {
            $frame_head_binstr .= decbin(126);
            $frame_head_binstr .= sprintf('%016b', $payload_length);
        } else {
            $frame_head_binstr .= sprintf('%07b', $payload_length);
        }

        $frame = '';

        // Write frame head to frame.
        foreach (str_split($frame_head_binstr, 8) as $binstr) {
            $frame .= chr(bindec($binstr));
        }

        // Handle masking
        if ($masked) {
            // generate a random mask:
            $mask = '';
            for ($i = 0; $i < 4; ++$i) {
                $mask .= chr(rand(0, 255));
            }
            $frame .= $mask;
        }

        // Append payload to frame:
        for ($i = 0; $i < $payload_length; ++$i) {
            $frame .= ($masked === true) ? $payload[$i] ^ $mask[$i % 4] : $payload[$i];
        }

        $this->write($frame);
    }

    public function receive() {
        if (!$this->is_connected) {
            $this->connect();
        } /// @todo This is a client function, fixme!

        $this->huge_payload = '';

        $response = null;
        while (is_null($response)) {
            $response = $this->receive_fragment();
        }

        return $response;
    }

    protected function receive_fragment() {

    // Just read the main fragment information first.
        $data = $this->read(2);

        // Is this the final fragment?  // Bit 0 in byte 0
        /// @todo Handle huge payloads with multiple fragments.
        $final = (boolean) (ord($data[0]) & 1 << 7);

        // Should be unused, and must be false…  // Bits 1, 2, & 3
        $rsv1  = (boolean) (ord($data[0]) & 1 << 6);
        $rsv2  = (boolean) (ord($data[0]) & 1 << 5);
        $rsv3  = (boolean) (ord($data[0]) & 1 << 4);

        // Parse opcode
    $opcode_int = ord($data[0]) & 31; // Bits 4-7
    $opcode_ints = array_flip(self::$opcodes);
        if (!array_key_exists($opcode_int, $opcode_ints)) {
            throw new \Exception("Bad opcode in websocket frame: $opcode_int");
        }
        $opcode = $opcode_ints[$opcode_int];

        // record the opcode if we are not receiving a continutation fragment
        if ($opcode !== 'continuation') {
            $this->last_opcode = $opcode;
        }

        // Masking?
    $mask = (boolean) (ord($data[1]) >> 7);  // Bit 0 in byte 1

    $payload = '';

        // Payload length
    $payload_length = (integer) ord($data[1]) & 127; // Bits 1-7 in byte 1
    if ($payload_length > 125) {
        if ($payload_length === 126) {
            $data = $this->read(2);
        } // 126: Payload is a 16-bit unsigned int
      else {
          $data = $this->read(8);
      } // 127: Payload is a 64-bit unsigned int
      $payload_length = bindec(self::sprintB($data));
    }

        // Get masking key.
        if ($mask) {
            $masking_key = $this->read(4);
        }

        // Get the actual payload, if any (might not be for e.g. close frames.
        if ($payload_length > 0) {
            $data = $this->read($payload_length);

            if ($mask) {
                // Unmask payload.
                for ($i = 0; $i < $payload_length; ++$i) {
                    $payload .= ($data[$i] ^ $masking_key[$i % 4]);
                }
            } else {
                $payload = $data;
            }
        }

        if ($opcode === 'close') {
            // Get the close status.
            if ($payload_length >= 2) {
                $status_bin = $payload[0] . $payload[1];
                $status = bindec(sprintf('%08b%08b', ord($payload[0]), ord($payload[1])));
                $this->close_status = $status;
                $payload = substr($payload, 2);

                if (!$this->is_closing) {
                    $this->send($status_bin . 'Close acknowledged: ' . $status, 'close', true);
                } // Respond.
            }

            if ($this->is_closing) {
                $this->is_closing = false;
            } // A close response, all done.

            // And close the socket.
            fclose($this->socket);
            $this->is_connected = false;
        }

        // if this is not the last fragment, then we need to save the payload
        if (!$final) {
            $this->huge_payload .= $payload;
            return null;
        }
        // this is the last fragment, and we are processing a huge_payload
        elseif ($this->huge_payload) {
            // sp we need to retreive the whole payload
            $payload = $this->huge_payload .= $payload;
            $this->huge_payload = null;
        }

        return $payload;
    }

    /**
     * Tell the socket to close.
     *
     * @param integer $status  http://tools.ietf.org/html/rfc6455#section-7.4
     * @param string  $message A closing message, max 125 bytes.
     */
    public function close($status = 1000, $message = 'ttfn') {
        $status_binstr = sprintf('%016b', $status);
        $status_str = '';
        foreach (str_split($status_binstr, 8) as $binstr) {
            $status_str .= chr(bindec($binstr));
        }
        $this->send($status_str . $message, 'close', true);

        $this->is_closing = true;
        $response = $this->receive(); // Receiving a close frame will close the socket now.

        return $response;
    }

    protected function write($data) {
        $written = fwrite($this->socket, $data);

        if ($written < strlen($data)) {
            throw new \Exception(
        "Could only write $written out of " . strlen($data) . ' bytes.'
      );
        }
    }

    protected function read($length) {
        $data = '';
        while (strlen($data) < $length) {
            $buffer = fread($this->socket, $length - strlen($data));
            if ($buffer === false) {
                $metadata = stream_get_meta_data($this->socket);
                throw new \Exception(
          'Broken frame, read ' . strlen($data) . ' of stated '
          . $length . ' bytes.  Stream state: '
          . json_encode($metadata)
        );
            }
            if ($buffer === '') {
                $metadata = stream_get_meta_data($this->socket);
                throw new \Exception(
          'Empty read; connection dead?  Stream state: ' . json_encode($metadata)
        );
            }
            $data .= $buffer;
        }

        return $data;
    }


    /**
     * Helper to convert a binary to a string of '0' and '1'.
     */
    protected static function sprintB($string) {
        $return = '';
        for ($i = 0; $i < strlen($string); ++$i) {
            $return .= sprintf('%08b', ord($string[$i]));
        }
        return $return;
    }

    protected $socket_uri;

    /**
     * @param string  $uri      A ws/wss-URI
     * @param array   $options
     *   Associative array containing:
     *   - context:      Set the stream context. Default: empty context
     *   - timeout:      Set the socket timeout in seconds.  Default: 5
     *   - headers:      Associative array of headers to set/override.
     */
    public function __construct($uri, $options = array()) {
        $this->options = $options;

        if (!array_key_exists('timeout', $this->options)) {
            $this->options['timeout'] = 5;
        }

        // the fragment size
        if (!array_key_exists('fragment_size', $this->options)) {
            $this->options['fragment_size'] = 4096;
        }

        $this->socket_uri = $uri;
    }

    public function __destruct() {
        if ($this->socket) {
            if (get_resource_type($this->socket) === 'stream') {
                fclose($this->socket);
            }
            $this->socket = null;
        }
    }

    /**
     * Perform WebSocket handshake
     */
    protected function connect() {
        $url_parts = parse_url($this->socket_uri);
        $scheme    = $url_parts['scheme'];
        $host      = $url_parts['host'];
        $user      = isset($url_parts['user']) ? $url_parts['user'] : '';
        $pass      = isset($url_parts['pass']) ? $url_parts['pass'] : '';
        $port      = isset($url_parts['port']) ? $url_parts['port'] : ($scheme === 'wss' ? 443 : 80);
        $path      = isset($url_parts['path']) ? $url_parts['path'] : '/';
        $query     = isset($url_parts['query']) ? $url_parts['query'] : '';
        $fragment  = isset($url_parts['fragment']) ? $url_parts['fragment'] : '';

        $path_with_query = $path;
        if (!empty($query)) {
            $path_with_query .= '?' . $query;
        }
        if (!empty($fragment)) {
            $path_with_query .= '#' . $fragment;
        }

        if (!in_array($scheme, array('ws', 'wss'))) {
            throw new \Exception(
        "Url should have scheme ws or wss, not '$scheme' from URI '$this->socket_uri' ."
      );
        }

        $host_uri = ($scheme === 'wss' ? 'ssl' : 'tcp') . '://' . $host;

        // Set the stream context options if they're already set in the config
        if (isset($this->options['context'])) {
            // Suppress the error since we'll catch it below
            if (@get_resource_type($this->options['context']) === 'stream-context') {
                $context = $this->options['context'];
            } else {
                throw new \InvalidArgumentException(
          "Stream context in \$options['context'] isn't a valid context"
        );
            }
        } else {
            $context = stream_context_create();
        }

        // Open the socket.  @ is there to supress warning that we will catch in check below instead.
        $this->socket = @stream_socket_client(
      $host_uri . ':' . $port,
      $errno,
      $errstr,
      $this->options['timeout'],
      STREAM_CLIENT_CONNECT,
      $context
    );

        if ($this->socket === false) {
            throw new \Exception(
        "Could not open socket to \"$host:$port\": $errstr ($errno)."
      );
        }

        // Set timeout on the stream as well.
        stream_set_timeout($this->socket, $this->options['timeout']);

        // Generate the WebSocket key.
        $key = self::generateKey();

        // Default headers (using lowercase for simpler array_merge below).
        $headers = array(
      'host'                  => $host . ':' . $port,
      'user-agent'            => 'websocket-client-php',
      'connection'            => 'Upgrade',
      'upgrade'               => 'websocket',
      'sec-websocket-key'     => $key,
      'sec-websocket-version' => '13',
    );

        // Handle basic authentication.
        if ($user || $pass) {
            $headers['authorization'] = 'Basic ' . base64_encode($user . ':' . $pass) . "\r\n";
        }

        // Deprecated way of adding origin (use headers instead).
        if (isset($this->options['origin'])) {
            $headers['origin'] = $this->options['origin'];
        }

        // Add and override with headers from options.
        if (isset($this->options['headers'])) {
            $headers = array_merge($headers, array_change_key_case($this->options['headers']));
        }

        $header =
      'GET ' . $path_with_query . " HTTP/1.1\r\n"
      . implode(
        "\r\n", array_map(
          function ($key, $value) {
              return "$key: $value";
          }, array_keys($headers), $headers
        )
      )
      . "\r\n\r\n";

        // Send headers.
        $this->write($header);

        // Get server response header (terminated with double CR+LF).
        $response = stream_get_line($this->socket, 1024, "\r\n\r\n");

        /// @todo Handle version switching

        // Validate response.
        if (!preg_match('#Sec-WebSocket-Accept:\s(.*)$#mUi', $response, $matches)) {
            $address = $scheme . '://' . $host . $path_with_query;
            throw new \Exception(
        "Connection to '{$address}' failed: Server sent invalid upgrade response:\n"
        . $response
      );
        }

        $keyAccept = trim($matches[1]);
        $expectedResonse
      = base64_encode(pack('H*', sha1($key . '258EAFA5-E914-47DA-95CA-C5AB0DC85B11')));

        if ($keyAccept !== $expectedResonse) {
            throw new \Exception('Server sent bad upgrade response.');
        }

        $this->is_connected = true;
    }

    /**
     * Generate a random string for WebSocket key.
     * @return string Random string
     */
    protected static function generateKey() {
        $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"$&/()=[]{}0123456789';
        $key = '';
        $chars_length = strlen($chars);
        for ($i = 0; $i < 16; ++$i) {
            $key .= $chars[mt_rand(0, $chars_length-1)];
        }
        return base64_encode($key);
    }
}
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Graph\Helpers;

use stdClass;

class GraphResults implements \ArrayAccess, \Iterator, \Countable {
    const EMPTY   = 0;
    const SCALAR  = 1;
    const ARRAY   = 2;

    private $type = self::EMPTY;
    private $data  = null;

    public function __construct($data = null) {
        // Case of empty result set.

//        print "\nExtracted from JSON\n";
//        var_dump($data);
//        print "\nExtracted from JSON------\n";

// A garder. Aucun résultat.
        if ($data === null) {
            $this->type = self::EMPTY;
            $this->data = $data;

            return;
        }

// A garder. liste de résultats
        if (is_array($data)) {
            if (!isset($data[0]) || ($data[0] === null)) {
                $this->type = self::EMPTY;
                $this->data = null;

            } else {
                $this->type = self::ARRAY;
                $this->data = $data;
                $this->checkArray();
            }

            return;
        }

        assert(false, 'Could not understand GraphResults incoming data');
    }

    private function checkArray(): void {
        if (empty($this->data)) {
            return;
        }
        $data = array_values($this->data);
        if (!($data[0] instanceof stdClass)) {
            return;
        }

        foreach ($this->data as &$data) {
            $data = (array) $data;
        }
        unset($data);
    }

    public function deHash(array $extra = null) {
        if (empty($this->data)) {
            return;
        }

        $result = array();
        foreach($this->data as $value) {
            foreach($value as $k => $v) {
                $result[] = array('', $k, $v);
            }
        }
        if ($extra !== null) {
            $results = array_map(function ($x) use ($extra) { return array_merge($x, $extra); }, $result);
        }

        $this->data = $result;
    }

    public function string2Array(array $extra = null) {
        if (empty($this->data)) {
            return;
        }

        $result = array();
        foreach($this->data as $value) {
            $result[] = array('', array_pop($value));
        }
        if ($extra !== null) {
            $results = array_map($result, function ($x) use ($extra) { return array_merge($x, $extra); });
        }

        $this->data = $result;
    }

    public function toArray(): array {
        if ($this->type === self::EMPTY) {
            return array();
        } else {
            return $this->data;
        }
    }

    public function toString() {
        return (string) $this->data[0];
    }

    public function toInt() {
        if ($this->data === null) {
            return 0;
        }

        return (int) $this->data[0];
    }

    public function isType($type) {
        return $this->type === $type;
    }

    public function offsetExists($offset) {
        return isset($this->data[$offset]);
    }

    public function offsetGet($offset) {
        return $this->data[$offset];
    }

    public function offsetSet($offset, $value) {
        // Nothing. No update on that result

    }

    public function offsetUnset($offset) {
        // Nothing. No update on that result

    }

    public function rewind() {
        if ($this->type === self::ARRAY) {
            return reset($this->data);
        }

        return true;
    }

    public function current() {
        return current($this->data);
    }

    public function key() {
        if ($this->type === self::ARRAY) {
            return key($this->data);
        }

        return null;
    }

    public function next() {
        return next($this->data);
    }

    public function valid() {
        if ($this->type === self::ARRAY) {
            return key($this->data) !== null;
        }

        return false;
    }

    public function count() {
        if ($this->type === self::ARRAY) {
            return count($this->data);
        }
        return 0;
    }
}

?>
<?php declare(strict_types = 1);

namespace Exakat\Graph\Helpers;

use Brightzone\GremlinDriver\Serializers\SerializerInterface;
use Brightzone\GremlinDriver\InternalException;
use Brightzone\GremlinDriver\RequestMessage;

/**
 * Gremlin-server PHP JSON Serializer class
 * Builds and parses message body for Messages class
 *
 * @category DB
 * @package  Serializers
 * @author   Dylan Millikin <dylan.millikin@brightzone.fr>
 * @author   Damien Seguy <dseguy@exakat.io>
 * @license  http://www.apache.org/licenses/LICENSE-2.0 apache2
 */
class GraphsonV3 implements SerializerInterface
{
    /**
     * @var string the name of the serializer
     */
    public static $name = 'GRAPHSON3';

    /**
     * @var int Value of this serializer. Will be deprecated in TP3
     */
    public static $mimeType = 'application/json';

    /**
     * @var array The native supported types that the serializer can convert to graphson
     */
    protected static $supportedFromTypes = array(
        'string',
        'boolean',
        'double',
        'integer',
        'array',
        'object',
        'NULL',
    );

    /**
     * @var array The GraphSON supported types that the serializer can deconvert from
     */
    protected static $supportedGSTypes = array(
        'g:Int32',
        'g:Int64',
        'g:Date',
        'g:Timestamp',
        'g:UUID',
        'g:Float',
        'g:Double',
        'g:List',
        'g:Map',
        'g:Set',
        'g:Class',
        'g:Path',
        'g:Tree',
        'g:Vertex',
        'g:VertexProperty',
        'tinker:graph',
        'g:Edge',
        'g:Property',
        'g:T',
        'gx:BigDecimal',
    );

    /**
     * Serializes the data
     *
     * @param array &$data data to be serialized
     *
     * @return int length of generated string
     * @throws InternalException
     */
    public function serialize(&$data)
    {
        //convert the array into the correct format
        $data = $this->convert($data);
        $jsonEncoder = new Json();

        return $jsonEncoder->serialize($data);
    }

    /**
     * Unserializes the data
     *
     * @param mixed $data data to be unserialized
     *
     * @return array unserialized message
     * @throws InternalException
     */
    public function unserialize($data)
    {
        $jsonEncoder = new Json();
        $data = $jsonEncoder->unserialize($data);

        return $this->deconvert($data);
    }

    /**
     * Get this serializer's Name
     *
     * @return string name of serializer
     */
    public function getName()
    {
        return self::$name;
    }

    /**
     * Get this serializer's value
     * This will be deprecated with TP3 Gremlin-server
     *
     * @return string name of serializer
     */
    public function getMimeType()
    {
        return self::$mimeType;
    }

    /**
     * Transforms a variable into it's graphson 3.0 counterpart structure
     *
     * @param mixed $item the variable to convert to the graphson 3 structure
     *
     * @return array|string The same element in it's new form.
     * @throws InternalException
     */
    public function convert($item)
    {
        $converted = array();
        $type = gettype($item);
        if(in_array($type, self::$supportedFromTypes))
        {
            //use the type name to run the proper method
            $method = 'convert' . ucfirst($type);
            $converted = $this->$method($item);
        }
        else
        {
            throw new InternalException("Item type '{$type}' is not currently supported by the serializer (" . __CLASS__ . ')', 500);
        }

        return $converted;
    }

    /**
     * Convert a string into it's graphson 3.0 form
     *
     * @param string $string The string to convert
     *
     * @return string converted string (same as original currently)
     */
    public function convertString($string)
    {
        return $string;
    }

    /**
     * Convert an integer into it's graphson 3.0 form
     *
     * @param int $int The integer to convert
     *
     * @return array converted integer
     */
    public function convertInteger($int)
    {
        $intSize = array(
            4 => 'g:Int32',
            8 => 'g:Int64',
        );

        return array(
            '@type'  => $intSize[PHP_INT_SIZE],
            '@value' => $int,
        );
    }

    /**
     * Convert a NULL into it's graphson 3.0 form
     *
     * @param null $null The NULL to convert
     *
     * @return null converted NULL
     */
    public function convertNULL($null)
    {
        return $null;
    }

    /**
     * Convert an float/double into it's graphson 3.0 form
     *
     * @param double $double The float/double to convert
     *
     * @return array converted double
     */
    public function convertDouble($double)
    {
        return array(
            '@type'  => 'g:Double',
            '@value' => $double,
        );
    }

    /**
     * Convert a boolean into it's graphson 3.0 form
     *
     * @param bool $bool The boolean to convert
     *
     * @return bool converted boolean (same as original)
     */
    public function convertBoolean($bool)
    {
        return $bool;
    }

    /**
     * Convert an array into it's corresponding graphson 3.0 form(List or Map)
     * This differentiates between Maps and Lists (we do not convert to Set)
     *
     * @param array $array The array to convert
     *
     * @return array converted array
     * @throws InternalException
     */
    public function convertArray($array)
    {
        $isList = (empty($array) || array_keys($array) === range(0, count($array) - 1));

        return $isList ? $this->convertList($array) : $this->convertMap($array);
    }

    /**
     * Convert an array into a graphson 3.0 List
     *
     * @param array $array The array to convert
     *
     * @return array converted to GS3 List
     * @throws InternalException
     */
    public function convertList($array)
    {
        $converted = array(
            '@type'  => 'g:List',
            '@value' => array(),
        );

        foreach($array as $value)
        {
            $converted['@value'][] = $this->convert($value);
        }

        return $converted;
    }

    /**
     * Convert an array into a graphson 3.0 Map
     *
     * @param array $array The array to convert
     *
     * @return array converted to GS3 Map
     * @throws InternalException
     */
    public function convertMap($array)
    {
        $converted = array(
            '@type'  => 'g:Map',
            '@value' => array(),
        );
        foreach($array as $key => $value)
        {
            $converted['@value'][] = $this->convert($key);
            $converted['@value'][] = $this->convert($value);
        }

        return $converted;
    }

    /**
     * Convert an object into a graphson 3.0 Map
     * Currently unsuported
     *
     * @param object $object The array to convert
     *
     * @return array the converted object
     * @throws InternalException
     */
    public function convertObject($object)
    {
        if($object instanceof RequestMessage)
        {
            $converted = array();
            foreach($object->jsonSerialize() as $key => $value)
            {
                $converted[$key] = $this->convert($value);
            }

            return $converted;
        }
        else
        {
            throw new InternalException("Objects other than RequestMessage aren't currently supported by the " . self::$name . ' serializer (' . __CLASS__ . '). Error produced by: ' . get_class($object), 500);
        }
    }

    /**
     * Transforms a graphson 3.0 "variable" into it's native structure
     *
     * @param mixed $item the variable to convert to php native
     *
     * @return mixed The same element in it's new form.
     * @throws InternalException
     */
    public function deconvert($item)
    {
        $deconverted = array();

        if(is_array($item) && isset($item['@type']) && in_array($item['@type'], self::$supportedGSTypes))
        {
            //type exists in array and is found in our supported types
            $method = 'deconvert' . ucfirst(str_replace(array('g:', 'gx:', ':'), '', $item['@type']));
            $deconverted = $this->$method($item['@value']);
        }
        elseif(is_array($item) && isset($item['@type']) && !in_array($item['@type'], self::$supportedGSTypes))
        {
            //type exists in array but is not currently supported
            throw new InternalException("Item type '{$item['@type']}' is not currently supported by the serializer (" . __CLASS__ . ')', 500);
        }
        elseif(is_array($item) && !isset($item['@type']))
        {
            //regular array, just pass it along
            foreach($item as $key => $value)
            {
                $deconverted[$key] = $this->deconvert($value);
            }
        }
        else
        {
            //regular variable, just pass it along.
            $deconverted = $item;
        }

        return $deconverted;
    }

    /**
     * Deconvert an Int32 into it's native form
     *
     * @param int $int The int to convert
     *
     * @return int deconverted Int32
     */
    public function deconvertBigDecimal($int)
    {
        return $int;
    }

    /**
     * Deconvert an Int32 into it's native form
     *
     * @param int $int The int to convert
     *
     * @return int deconverted Int32
     */
    public function deconvertInt32($int)
    {
        return $int;
    }

    /**
     * Deconvert an Int64 into it's native form
     *
     * @param int $int The int to convert
     *
     * @return int deconverted Int64
     * @throws InternalException
     */
    public function deconvertInt64($int)
    {
        if(PHP_INT_SIZE == 4)
        {
            throw new InternalException('You are running a 32bit PHP and cannot convert the 64bit Int provided in the GraphSON 3.0');
        }

        return $int;
    }

    /**
     * Deconvert a Double into it's native form
     *
     * @param double $double The double to convert
     *
     * @return double deconverted Double
     */
    public function deconvertDouble($double)
    {
        return $double;
    }

    /**
     * Deconvert a Float into it's native form
     *
     * @param double $float The float to convert
     *
     * @return double deconverted Float
     */
    public function deconvertFloat($float)
    {
        return $this->deconvertDouble($float);
    }

    /**
     * Deconvert a Timestamp into it's native form
     *
     * @param int $timestamp The Timestamp to convert
     *
     * @return int deconverted Timestamp
     */
    public function deconvertTimestamp($timestamp)
    {
        return $this->deconvertInt32($timestamp);
    }

    /**
     * Deconvert a Date into it's native form
     *
     * @param int $date The date to convert
     *
     * @return int deconverted Date
     */
    public function deconvertDate($date)
    {
        return $this->deconvertInt32($date);
    }

    /**
     * Deconvert a UUID into it's native form
     *
     * @param string $uuid The UUID to convert
     *
     * @return string deconverted UUID
     */
    public function deconvertUUID($uuid)
    {
        return $uuid;
    }

    /**
     * Deconvert a List into it's native form (Array)
     *
     * @param array $list The List to convert
     *
     * @return array deconverted List
     * @throws InternalException
     */
    public function deconvertList($list)
    {
        $deconverted = array();
        foreach($list as $value)
        {
            $deconverted[] = $this->deconvert($value);
        }

        return $deconverted;
    }

    /**
     * Deconvert a Set into it's native form (Array)
     *
     * @param array $set The Set to convert
     *
     * @return array deconverted Set
     * @throws InternalException
     */
    public function deconvertSet($set)
    {
        return $this->deconvertList($set);
    }

    /**
     * Deconvert a Map into it's native form (Array)
     *
     * @param array $map The Map to convert
     *
     * @return array deconverted Map
     * @throws InternalException
     */
    public function deconvertMap($map)
    {
        if (empty($map)) {
            return array();
        }

        $deconverted = array();

        if(count($map) % 2 != 0)
        {
            throw new InternalException('Failed to deconvert Map item from graphson 3.0. Odd number of elements found (should be even)', 500);
        }

        $i = 0;
        while(0 < count($map))
        {
            $key = $this->deconvert(array_shift($map));
            $value = $this->deconvert(array_shift($map));

            if(!is_numeric($key) && !is_string($key))
            {

                throw new InternalException('Failed to deconvert Map item from graphson 3.0. A key was of type [' . gettype($key) . '], only Integers and Strings are supported', 500);
            }
            $deconverted[$key] = $value;

            ++$i;
        }

        return $deconverted;
    }

    /**
     * Deconvert a Property into it's native form
     *
     * @param array $prop The Property to convert
     *
     * @return mixed deconverted Property
     * @throws InternalException
     */
    public function deconvertProperty($prop)
    {
        return $this->deconvert($prop);
    }

    /**
     * Deconvert a VertexProperty into it's native form
     *
     * @param array $vertexProp The VertexProperty to convert
     *
     * @return mixed deconverted VertexProperty
     * @throws InternalException
     */
    public function deconvertVertexProperty($vertexProp)
    {
        return $this->deconvert($vertexProp);
    }

    /**
     * Deconvert a Path into it's native form
     *
     * @param array $path The Path to convert
     *
     * @return array deconverted Path
     * @throws InternalException
     */
    public function deconvertPath($path)
    {
        return $this->deconvert($path);
    }

    /**
     * Deconvert a TinkerGraph into it's native form
     *
     * @param array $tinkergraph The TinkerGraph to convert
     *
     * @return array deconverted TinkerGraph
     * @throws InternalException
     */
    public function deconvertTinkergraph($tinkergraph)
    {
        return $this->deconvert($tinkergraph);
    }

    /**
     * Deconvert a Tree into it's native form
     *
     * @param array $tree The Tree to convert
     *
     * @return array deconverted Tree
     * @throws InternalException
     */
    public function deconvertTree($tree)
    {
        $deconvert = array();
        $result = $this->deconvert($tree);
        foreach($result as $value)
        {
            if(isset($value['key']) && isset($value['key']['id']))
            {
                $deconvert[$value['key']['id']] = $value;
            }
            else
                $deconvert[] = $value;
        }

        return $deconvert;
    }

    /**
     * Deconvert a Class into it's native form
     *
     * @param string $classname The class to convert
     *
     * @return void
     * @throws InternalException
     */
    public function deconvertClass($classname)
    {
        throw new InternalException("The GraphSON 3.0 contained a Class element ({$classname}). Classes are not currently supported");
    }

    /**
     * Deconvert a Vertex into it's native form
     *
     * @param array $vertex The Vertex to convert
     *
     * @return array deconverted Vertex
     * @throws InternalException
     */
    public function deconvertVertex($vertex)
    {
        $vertex['type'] = 'vertex';

        return $this->deconvert($vertex);
    }

    /**
     * Deconvert a Edge into it's native form
     *
     * @param array $edge The Edge to convert
     *
     * @return array deconverted Edge
     * @throws InternalException
     */
    public function deconvertEdge($edge)
    {
        $edge['type'] = 'edge';

        return $this->deconvert($edge);
    }

    /**
     * Deconvert a Token (T) into it's string form
     *
     * @param string $t the token to deconvert
     *
     * @return string either "id" or "label"
     */
    public function deconvertT($t)
    {
        return $t;
    }
}

class Json implements SerializerInterface
{
    /**
     * @var string the name of the serializer
     */
    public static $name = 'JSON';

    /**
     * @var int Value of this serializer. Will be deprecated in TP3
     */
    public static $mimeType = 'application/json';

    /**
     * Serializes the data
     *
     * @param array &$data data to be serialized
     *
     * @return int length of generated string
     */
    public function serialize(&$data)
    {
        $data = json_encode($data, JSON_UNESCAPED_UNICODE);

        return mb_strlen($data, 'ISO-8859-1');
    }

    /**
     * Unserializes the data
     *
     * @param array $data data to be unserialized
     *
     * @return array unserialized message
     */
    public function unserialize($data)
    {
        $mssg = json_decode($data, true, JSON_UNESCAPED_UNICODE);

        return $mssg;
    }

    /**
     * Get this serializer's Name
     *
     * @return string name of serializer
     */
    public function getName()
    {
        return self::$name;
    }

    /**
     * Get this serializer's value
     * This will be deprecated with TP3 Gremlin-server
     *
     * @return string name of serializer
     */
    public function getMimeType()
    {
        return self::$mimeType;
    }
}
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Graph;

use Exakat\Graph\Helpers\GraphResults;
use Exakat\Exceptions\GremlinException;
use Exakat\Exceptions\UnkownGremlinVersion;
use Brightzone\GremlinDriver\Connection;

class Orientdb extends Graph {
    const CHECKED     = true;
    const UNCHECKED   = false;
    const UNAVAILABLE = 2;

    private $status     = self::UNCHECKED;

    private $db         = null;

    private $gremlinVersion = '3.4';

    public function getInfo(): array {
        $stats = array();

        if (empty($this->config->orientdb_folder)) {
            $stats['configured'] = 'No orientdb_folder configured in config/exakat.ini.';
        } elseif (!file_exists($this->config->orientdb_folder)) {
            $stats['installed'] = 'No (folder : ' . $this->config->orientdb_folder . ')';
        } elseif (!file_exists($this->config->orientdb_folder . '/ext/neo4j-gremlin/')) {
            $stats['installed'] = 'Partially (missing neo4j folder : ' . $this->config->orientdb_folder . ')';
        } else {
            $stats['installed'] = "Yes (folder : {$this->config->orientdb_folder})";
            $stats['host'] = $this->config->orientdb_host;
            $stats['port'] = $this->config->orientdb_port;

            $plugins = glob("{$this->config->orientdb_folder}/ext/neo4j-gremlin/plugin/*.jar");
            if (count($plugins) !== 72) {
                $stats['grapes failed'] = 'Partially installed neo4j plugin. Please, check installation docs, and "grab" again : some of the files are missing for neo4j.';
            }

            $gremlinJar = glob("{$this->config->orientdb_folder}/lib/gremlin-core-*.jar");
            $gremlinVersion = basename(array_pop($gremlinJar));
            //gremlin-core-3.2.5.jar
            $gremlinVersion = substr($gremlinVersion, 13, -4);
            $stats['gremlin version'] = $gremlinVersion;

            $neo4jJar = glob("{$this->config->orientdb_folder}/ext/neo4j-gremlin/lib/neo4j-*.jar");
            $neo4jJar = array_filter($neo4jJar, function ($x) { return preg_match('#/neo4j-\d\.\d\.\d\.jar#', $x); });
            $neo4jVersion = basename(array_pop($neo4jJar));

            //neo4j-2.3.3.jar
            $neo4jVersion = substr($neo4jVersion, 6, -4);
            $stats['neo4j version'] = $neo4jVersion;

            if (file_exists("{$this->config->orientdb_folder}/db/gsneo4j.pid")) {
                $stats['running'] = 'Yes (PID : ' . trim(file_get_contents("{$this->config->orientdb_folder}/db/gsneo4j.pid")) . ')';
            }
        }

        return $stats;
    }

    public function init(): void {
        if (!file_exists("{$this->config->orientdb_folder}/lib/")) {
            // No local production, just skip init.
            $this->status = self::UNAVAILABLE;
            return;
        }

        $gremlinJar = glob("{$this->config->orientdb_folder}/lib/gremlin-core-*.jar");
        $gremlinVersion = basename(array_pop($gremlinJar));
        // 3.4 only
        $this->gremlinVersion = substr($gremlinVersion, 13, -6);
        if(!in_array($this->gremlinVersion, array('3.4'), STRICT_COMPARISON)) {
            throw new UnkownGremlinVersion($this->gremlinVersion);
        }

        $this->db = new Connection(array( 'host'     => $this->config->orientdb_host,
                                          'port'     => $this->config->orientdb_port,
                                          'graph'    => 'graph',
                                          'emptySet' => true,
                                   ) );
                                           $this->db = new Connection(array( 'host'     => $this->config->orientdb_host,
                                          'port'     => $this->config->orientdb_port,
                                          'graph'    => 'graph',
                                          'emptySet' => true,
                                   ) );
        $this->status = self::UNCHECKED;
    }

    private function checkConfiguration() {
        ini_set('default_socket_timeout', '1600');
        $this->db->open();
    }

    public function query(string $query, array $params = array(),array $load = array()): GraphResults {
        if ($this->status === self::UNAVAILABLE) {
            return new GraphResults();
        }

        if ($this->status === self::UNCHECKED) {
            $this->checkConfiguration();
        }

        $params['#jsr223.groovy.engine.keep.globals'] = 'phantom';
        foreach ($params as $name => $value) {
            $this->db->message->bindValue($name, $value);
        }

        $result = $this->db->send($query);


        return new GraphResults($result);
    }

    public function queryOne(string $query, array $params = array(),array $load = array()): GraphResults {
        if ($this->status === self::UNCHECKED) {
            $this->checkConfiguration();
        }

        return $this->query($query, $params, $load);
    }

    public function checkConnection(): bool {
        $res = @stream_socket_client("tcp://{$this->config->orientdb_host}:{$this->config->orientdb_port}",
                                     $errno,
                                     $errorMessage,
                                     1,
                                     STREAM_CLIENT_CONNECT
                                     );

        return is_resource($res);
    }

    public function serverInfo() {
        if ($this->status === self::UNCHECKED) {
            $this->checkConfiguration();
        }

        $res = $this->query('Gremlin.version();');

        return $res;
    }

    public function clean() {
        $this->stop();
        $this->start();
    }

    public function start(): void {
        // Here, $this->config->orientdb_folder might be false... Beware!
        if (!file_exists("{$this->config->orientdb_folder}/config")) {
            throw new GremlinException('No graphdb found.');
        }

        if (!file_exists("{$this->config->orientdb_folder}/config/orientdb.{$this->gremlinVersion}.yaml")) {
            copy( "{$this->config->dir_root}/server/orientdb/orientdb.{$this->gremlinVersion}.yaml",
                  "{$this->config->orientdb_folder}/config/orientdb.{$this->gremlinVersion}.yaml");
                  /*
            copy( "{$this->config->dir_root}/server/orientdb/exakat.properties",
                  "{$this->config->orientdb_folder}/config/exakat.properties");
                  */
        }

        if (in_array($this->gremlinVersion, array('3.4'))) {
            display("start gremlin server {$this->gremlinVersion}.x");
            putenv("GREMLIN_YAML=config/orientdb.{$this->gremlinVersion}.yaml");
            putenv('PID_DIR=db');
            exec("GREMLIN_YAML=config/orientdb.{$this->gremlinVersion}.yaml; PID_DIR=db; cd {$this->config->orientdb_folder}; rm -rf db/neo4j; ./bin/gremlin-server.sh start > gremlin.log 2>&1 &");
        }
        display('started gremlin server');
        $this->init();
        sleep(2);

        $b = microtime(true);
        $round = -1;
        $pid = false;
        do {
            $connexion = $this->checkConnection();
            if (empty($connexion)) {
                ++$round;
                usleep(100000 * $round);
            }
        } while ( empty($connexion) && $round < 20);
        $e = microtime(true);

        display("Restarted in $round rounds\n");

        if (file_exists("{$this->config->orientdb_folder}/db/gremlin.pid")) {
            $pid = trim(file_get_contents("{$this->config->orientdb_folder}/db/gremlin.pid"));
        } elseif ( file_exists("{$this->config->orientdb_folder}/db/orientdb.pid")) {
            $pid = trim(file_get_contents("{$this->config->orientdb_folder}/db/orientdb.pid"));
        } else {
            $pid = false;
        }

        $ms = number_format(($e - $b) * 1000, 2);
        $pid = $pid === false ? 'Not yet' : $pid;
        display("started [$pid] in $ms ms");
    }

    public function stop(): void {
        if (file_exists("{$this->config->orientdb_folder}/db/gremlin.pid")) {
            display('stop gremlin server 3.4.x');
            putenv('GREMLIN_YAML=config/orientdb.3.4.yaml');
            putenv('PID_DIR=db');
            shell_exec("GREMLIN_YAML=config/orientdb.3.4.yaml; PID_DIR=db; cd {$this->config->orientdb_folder}; ./bin/gremlin-server.sh stop; rm -rf db/gremlin.pid");
        }
    }

    private function simplifyArray($result) {
        $return = array();

        if (!isset($result[0]['properties'])) {
            return $result;
        }

        foreach ($result as $r) {
            $row = array('id'    => $r['id'],
                         'label' => $r['label']);
            foreach ($r['properties'] as $property => $value) {
                $row[$property] = $value[0]['value'];
            }

            $return[] = $row;
        }

        return $return;
    }

    public function fixId($id) {
        return $id - 1;
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Configsource;

use Exakat\Config as Configuration;
use Exakat\Project;

class DefaultConfig extends Config {
    protected $config  = array( // directives with boolean value
                               'verbose'        => false,
                               'quick'          => false,
                               'quiet'          => false,
                               'help'           => false,
                               'recursive'      => false,
                               'update'         => false,
                               'delete'         => false,
                               'lint'           => false,
                               'json'           => false,
                               'array'          => false,
                               'dot'            => false,
                               'noDependencies' => false,
                               'noRefresh'      => false,
                               'today'          => false,
                               'none'           => false,
                               'table'          => false,
                               'text'           => false,
                               'output'         => false,
                               'debug'          => false,

                               'collect'        => false,

                               'git'            => true,
                               'svn'            => false,
                               'bzr'            => false,
                               'hg'             => false,
                               'composer'       => false,
                               'tgz'            => false,
                               'tbz'            => false,
                               'zip'            => false,
                               'rar'            => false,
                               'seven7'         => false,

                                // directives with literal value
                               'filename'           => '',
                               'dirname'            => '',
                               'program'            => '',
                               'repository'         => false,
                               'analyzers'          => array(),
                               'report'             => 'Diplomat',
                               'file'               =>  '',
                               'style'              => 'ALL',

                               'gsneo4j_host'       => '127.0.0.1',
                               'gsneo4j_port'       => '7474',
                               'gsneo4j_folder'     => 'tinkergraph',

                               'tinkergraph_host'   => '127.0.0.1',
                               'tinkergraph_port'   => '7474',
                               'tinkergraph_folder' => 'tinkergraph',

                               'branch'         => '',
                               'tag'            => '',

                               'php'           => PHP_BINARY,
                               'php52'         => '',
                               'php53'         => '',
                               'php54'         => '',
                               'php55'         => '',
                               'php56'         => '',
                               'php70'         => '',
                               'php71'         => '',
                               'php72'         => '',
                               'php73'         => '',
                               'php74'         => '',
                               'php80'         => '',

                               'phpversion'    => '7.4',
                               'token_limit'   => '1000000',

                               'baseline_use'  => 'last',    // none, last, name, number
                               'baseline_set'  => 'one',   // none, one, always

                               'concurencyCheck' => 7610,

                               'command'       => 'version',

                               'include_dirs'        => array('',
                                                             ),
                               'ignore_dirs'         => array('/assets',
                                                              '/cache',
                                                              '/css',
                                                              '/data',
                                                              '/doc',
                                                              '/docker',
                                                              '/docs',
                                                              '/example',
                                                              '/examples',
                                                              '/images',
                                                              '/js',
                                                              '/lang',
                                                              '/spec',
                                                              '/sql',
                                                              '/test',
                                                              '/tests',
                                                              '/tmp',
                                                              '/version',
                                                              '/var',
                                                             ),
                               'file_extensions'     => array('php', 'php3', 'inc', 'tpl', 'phtml', 'tmpl', 'phps', 'ctp', 'module'),
                               'project_name'        => '',
                               'project_url'         => '',
                               'project_vcs'         => 'git',
                               'project_description' => '',
                               'project_packagist'   => '',
                               'other_php_versions'  => array(),

                               'ignore_rules'        => array(),

                               'remote'              => 'none',

                               'project_reports'     => array('Diplomat',
                                                             ),
                               'project_rulesets'    => array('CompatibilityPHP70',
                                                              'CompatibilityPHP71',
                                                              'CompatibilityPHP72',
                                                              'CompatibilityPHP73',
                                                              'CompatibilityPHP74',
                                                              'CompatibilityPHP80',
                                                              'Suggestions',
                                                              'Dead code',
                                                              'Security',
                                                              'Analyze',
                                                              'Top10',
                                                              'Preferences',
                                                              'Appinfo',
                                                              'Appcontent',
                                                              'Suggestions',
                                                              ),

                                'inside_code'          => Configuration::WITH_PROJECTS,

                                'parallel_processing'  => false,
                              );

    public function __construct() {
        $this->config['project'] = new Project();

        $this->config['parallel_processing'] = function_exists('pcntl_fork');
    }

    public function loadConfig($args) {
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Configsource;

use Exakat\Phpexec;
use Exakat\Project;
use Exakat\Vcs\Vcs;

class DatastoreConfig extends Config {
    private $datastore             = null;
    protected $ignore_dirs         = array();
    protected $include_dirs        = array();
    protected $ignore_rules        = array();
    protected $project_name        = '';
    protected $project_url         = '';
    protected $project_vcs         = '';
    protected $project_description = '';
    protected $project_branch      = '';
    protected $project_tag         = '';
    protected $project             = '';
    protected $file_extensions     = array();
    protected $stubs               = array();

    protected $options = array('phpversion'          => '',
                               'project_name'        => '',
                               'project_url'         => '',
                               'project_vcs'         => '',
                               'project_description' => '',
                               'project_branch'      => '',
                               'project_tag'         => '',
                               'file_extensions'     => array(),
                               );

    public function __construct() {
        $this->datastore = exakat('datastore');
        
        $this->loadConfig('');
    }

    public function setProject(Project $project) {
        $this->project = $project;
    }

    public function loadConfig($project) {
        $this->options['phpversion'] = $this->datastore->getHash('php_version');
        $this->ignore_dirs           = json_decode($this->datastore->getHash('ignore_dirs')     ?? "[]");
        $this->include_dirs          = json_decode($this->datastore->getHash('include_dirs')    ?? "[]");
        $this->file_extensions       = json_decode($this->datastore->getHash('file_extensions') ?? '[]');
        $this->stubs                 = json_decode($this->datastore->getHash('stubs_config')    ?? '[]');

        $this->project_name        = $this->datastore->getHash('project');
        $this->project_url         = $this->datastore->getHash('vcs_url');
        $this->project_vcs         = $this->datastore->getHash('vcs_type');
        $this->project_description = $this->datastore->getHash('project_description');
        $this->project_branch      = $this->datastore->getHash('vcs_branch');
        $this->project_tag         = $this->datastore->getHash('vcs_tag');

        return "datastore";
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy  Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Configsource;

use Exakat\Vcs\Vcs;
use Exakat\Tasks\Baseline;
use Exakat\Tasks\Extension;
use Exakat\Project;
use Exakat\Graph\Graph;

class CommandLine extends Config {
    private $booleanOptions = array(
                                 '-v'         => 'verbose',
                                 '-Q'         => 'quick',
                                 '-q'         => 'quiet',
                                 '-h'         => 'help',
                                 '-r'         => 'recursive',
                                 '-u'         => 'update',
                                 '-D'         => 'delete',
                                 '-l'         => 'lint',
                                 '-json'      => 'json',
                                 '-array'     => 'array',
                                 '-dot'       => 'dot',

                                 '-debug'     => 'debug',

                                 '-nodep'     => 'noDependencies',
                                 '-norefresh' => 'noRefresh',
                                 '-text'      => 'text',
                                 '-o'         => 'output',
                                 '-stop'      => 'stop',
                                 '-ping'      => 'ping',
                                 '-restart'   => 'restart',
                                 '-start'     => 'start',
                                 '-collect'   => 'collect',
                                 '-load-dump' => 'load_dump', // for Dump

    // Vcs
                                 '-svn'       => 'svn',
                                 '-bzr'       => 'bzr',
                                 '-hg'        => 'hg',
                                 '-composer'  => 'composer',
                                 '-copy'      => 'copy',    // Copy the local dir
                                 '-symlink'   => 'symlink', // make a symlink
                                 '-tgz'       => 'tgz',
                                 '-tbz'       => 'tbz',
                                 '-zip'       => 'zip',
                                 '-rar'       => 'rar',
                                 '-7z'        => 'sevenz',
                                 '-git'       => 'git',
                                 '-cvs'       => 'cvs',
                                 '-none'      => 'none',
                                 );

    private $valueOptions   = array('-f'            => 'filename',
                                    '-d'            => 'dirname',
                                    '-p'            => 'project',
                                    '-P'            => 'program',
                                    '-R'            => 'repository',
                                    '-T'            => 'project_rulesets',
                                    '-report'       => 'report',
                                    '-format'       => 'format',
                                    '-file'         => 'file',
                                    '-style'        => 'style',
                                    '-token_limit'  => 'token_limit',
                                    '-branch'       => 'branch',
                                    '-tag'          => 'tag',
                                    '-remote'       => 'remote',
                                    '-graphdb'      => 'gremlin',
                                    '-version'      => 'version',

                                    '-baseline-set' => 'baseline_set',
                                    '-baseline-use' => 'baseline_use',

                                    // This one is finally an array
                                    '-c'            => 'configuration',
                                 );

    public static $commands = array('analyze'       => 1,
                                    'anonymize'     => 1,
                                    'constantes'    => 1,
                                    'clean'         => 1,
                                    'cleandb'       => 1,
                                    'dump'          => 1,
                                    'doctor'        => 1,
                                    'errors'        => 1,
                                    'export'        => 1,
                                    'files'         => 1,
                                    'findextlib'    => 1,
                                    'help'          => 1,
                                    'init'          => 1,
                                    'catalog'       => 1,
                                    'remove'        => 1,
                                    'server'        => 1,
                                    'api'           => 1,
                                    'jobqueue'      => 1,
                                    'queue'         => 1,
                                    'load'          => 1,
                                    'diff'          => 1,
                                    'project'       => 1,
                                    'report'        => 1,
                                    'results'       => 1,
                                    'stat'          => 1,
                                    'status'        => 1,
                                    'version'       => 1,
                                    'onepage'       => 1,
                                    'onepagereport' => 1,
                                    'test'          => 1,
                                    'update'        => 1,
                                    'upgrade'       => 1,
                                    'fetch'         => 1,
                                    'proxy'         => 1,
                                    'config'        => 1,
                                    'extension'     => 1,
                                    'show'          => 1,
                                    'baseline'      => 1,
                                    'install'       => 1,
                                    );

    public function __construct() {
        $this->config['command'] = '<no-command>';
    }

    public function loadConfig($args = array()) {
        if (empty($args)) {
            return false;
        }

        // TODO : move this to VCS
        foreach($this->booleanOptions as $key => $config) {
            $id = array_search($key, $args);
            if ($id !== false) {
                // git is default, so it should be unset if another is set
                if (in_array($config, Vcs::SUPPORTED_VCS)) {
                    $this->config = $this->config + array_fill_keys(Vcs::SUPPORTED_VCS, false);
                }
                $this->config[$config] = true;

                unset($args[$id]);
            }
        }

        foreach($this->valueOptions as $key => $config) {
            while( ($id = array_search($key, $args)) !== false ) {
                if (!isset($args[$id + 1])) {
                    // case of a name, without a following name
                    // We just ignore it
                    unset($args[$id]);
                    continue;
                }

                if (is_string($args[$id + 1]) && isset($this->valueOptions[$args[$id + 1]])) {
                    // in case this option value is actually the next option (exakat -p -T)
                    // We just ignore it
                    unset($args[$id]);
                    continue;
                }

                // Normal case is here
                switch ($config) {
                    case 'project' :
                        if (!isset($this->config['project'])) {
                            $this->config['project'] = new Project($args[$id + 1]);
                        }
                        // Multiple -p are ignored : keep the first
                        break;

                    case 'configuration' :
                        if (empty($this->config['configuration'])) {
                            $this->config['configuration'] = array();
                        }
                        if (strpos($args[$id + 1], '=') === false) {
                            $name = trim($args[$id + 1]);
                            $value = '';
                        } else {
                            list($name, $value) = explode('=', trim($args[$id + 1]));
                        }
                        if (in_array($name, array('ignore_dirs', 'include_dirs', 'file_extensions'), STRICT_COMPARISON)) {
                            if (!isset($this->config['configuration'][$name])) {
                                $this->config['configuration'][$name] = array();
                            }
                            $this->config['configuration'][$name][] = $value;
                        } else {
                            $this->config['configuration'][$name] = $value;
                        }
                        break;

                    case 'gremlin' :
                        $this->config['gremlin'] = $args[$id + 1];
                        if (!in_array($this->config['gremlin'], Graph::GRAPHDB, LOOSE_COMPARISON)) {
                            $this->config['gremlin'] = 'nogremlin';
                        }
                        break;

                    case 'format' :
                        if (isset($this->config['project_reports'])) {
                            $this->config['project_reports'][] = $args[$id + 1];
                        } else {
                            $this->config['project_reports'] = array($args[$id + 1]);
                        }
                        break;

                    case 'program' :
                        if (isset($this->config['project_rulesets'])) {
                            // program and project_rulesets are mutually exclusive
                            break;
                        } elseif (!isset($this->config['program'])) {
                            $this->config['program'] = $args[$id + 1];
                        } elseif (is_string($this->config['program'])) {
                            $this->config['program'] = array($this->config['program'],
                                                             $args[$id + 1],
                                                            );
                        } else {
                            $this->config['program'][] = $args[$id + 1];
                        }
                        break;

                    case 'project_rulesets' :
                        if (isset($this->config['program'])) {
                            // program and project_rulesets are mutually exclusive
                            break;
                        } elseif (isset($this->config['project_rulesets'])) {
                            $this->config['project_rulesets'][] = $args[$id + 1];
                        } else {
                            $this->config['project_rulesets'] = array($args[$id + 1]);
                        }
                        break;

                    default:
                        $this->config[$config] = $args[$id + 1];
                }

                unset($args[$id]);
                unset($args[$id + 1]);
            }
        }

        $command = array_shift($args);
        if (isset($command, self::$commands[$command])) {
            $this->config['command'] = $command;

            if ($this->config['command'] === 'extension') {
                $subcommand = array_shift($args);
                if (!in_array($subcommand, Extension::ACTIONS, STRICT_COMPARISON)) {
                    $subcommand = 'local';
                }
                $this->config['subcommand'] = $subcommand;

                if (in_array($subcommand, array('install', 'uninstall', 'update'), STRICT_COMPARISON)) {
                    $this->config['extension'] = array_shift($args);
                }
            } elseif ($this->config['command'] === 'baseline') {
                $subcommand = array_shift($args);
                if (!in_array($subcommand, Baseline::ACTIONS, STRICT_COMPARISON)) {
                    $subcommand = 'list';
                }
                $this->config['subcommand'] = $subcommand;

                if (in_array($subcommand, array('remove'), STRICT_COMPARISON)) {
                    $this->config['baseline_id'] = array_shift($args);
                } elseif (in_array($subcommand, array('save'), STRICT_COMPARISON)) {
                    $this->config['baseline_set'] = array_shift($args);
                }
            }
        } else {
            $this->config['command']       = 'unknown';
            $this->config['command_value'] = $command ?? '<no-command>';
        }

        if (!empty($args)) {
            $c = count($args);
            if (isset($this->config['verbose'])) {
                display( 'Found ' . $c . ' argument' . ($c > 1 ? 's' : '') . ' that ' . ($c > 1 ? 'are' : 'is') . " not understood.\n\n\"" . implode('", "', $args) . "\"\n\nIgnoring " . ($c > 1 ? 'them all' : 'it' . ".\n"));
            }
        }

        // Special case for onepage command. It will only work on 'onepage' project
        if ($this->config['command'] == 'onepage') {

            $this->config['project']   = 'onepage';
            $this->config['ruleset']   = 'OneFile';

            $this->config['format']    = array('OnepageJson');
            $this->config['file']      = str_replace('/code/', '/reports/', substr($this->config['filename'], 0, -4));
            $this->config['quiet']     = true;
            $this->config['norefresh'] = true;
        }

        return true;
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Configsource;

class EmptyConfig extends Config {

    public function loadConfig($args) {

    }
}

?><?php
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
declare(strict_types = 1);

namespace Exakat\Configsource;

use Exakat\Phpexec;
use Exakat\Project;
use Exakat\Config as Configuration;
use Symfony\Component\Yaml\Yaml;
use Symfony\Component\Yaml\Exception\ParseException;
use Exakat\Configsource\RulesetConfig;

class DotExakatYamlConfig extends Config {
    const YAML_FILE = '.exakat.yml';
    private $dotExakatYaml = '';
    private $rulesets = array();

    public function __construct() {
        $this->dotExakatYaml = getcwd() . '/' . self::YAML_FILE;

        if (!file_exists($this->dotExakatYaml)) {
            $secondary = substr($this->dotExakatYaml, 0, -3) . 'yaml';
            if (file_exists($secondary)) {
                $this->dotExakatYaml = $secondary;
            }
        }
    }

    public function loadConfig($project) {
        if (!file_exists($this->dotExakatYaml)) {
            $this->config['inside_code'] = Configuration::WITH_PROJECTS;
            return self::NOT_LOADED;
        }

        try {
            $tmp_config = Yaml::parseFile($this->dotExakatYaml);
        } catch (ParseException $exception) {
            print 'Error while parsing ' . basename($this->dotExakatYaml).'. Configuration ignored.'.PHP_EOL;

            return self::NOT_LOADED;
        }
        
        if (!is_array($tmp_config)) {
            // Can't use display while in config phase
            display("Failed to parse YAML file. Please, check its syntax.\n");
            return self::NOT_LOADED;
        }

        // removing empty values in the INI file
        foreach($tmp_config as &$value) {
            if (is_array($value) && empty($value[0])) {
                unset($value[0]);
            }
        }
        unset($value);

        $other_php_versions = array();
        foreach(Configuration::PHP_VERSIONS as $version) {
            $phpVersion = "php$version";
            if (empty($this->config->{$phpVersion})) {
                continue;
            }
            $php = new Phpexec($version[0] . '.' . $version[1], $this->config->{$phpVersion});
            if ($php->isValid()) {
                $other_php_versions[] = $version;
            }
        }

        // check and default values
        $defaults = array( 'other_php_versions' => $other_php_versions,
                           'phpversion'         => substr(PHP_VERSION, 0, 3),
                           'file_extensions'    => array('php', 'php3', 'inc', 'tpl', 'phtml', 'tmpl', 'phps', 'ctp', 'module'),
                           'project_rulesets'   => 'CompatibilityPHP53,CompatibilityPHP54,CompatibilityPHP55,CompatibilityPHP56,CompatibilityPHP70,CompatibilityPHP71,CompatibilityPHP72,CompatibilityPHP73,CompatibilityPHP74,Dead code,Security,Analyze,Preferences,Appinfo,Appcontent',
                           'project_reports'    => array('Text'),
                           'ignore_dirs'        => array('/assets',
                                                         '/cache',
                                                         '/css',
                                                         '/data',
                                                         '/doc',
                                                         '/docker',
                                                         '/docs',
                                                         '/example',
                                                         '/examples',
                                                         '/images',
                                                         '/js',
                                                         '/lang',
                                                         '/spec',
                                                         '/sql',
                                                         '/test',
                                                         '/tests',
                                                         '/tmp',
                                                         '/version',
                                                         '/var',
                                                        ),
                           'include_dirs'        => array(),
                           'rulesets'            => array(),
                           'project'             => null,
                           'project_name'        => '',
                           'project_url'         => '',
                           'project_vcs'         => '',
                           'project_description' => '',
                           'project_branch'      => '',
                           'project_tag'         => '',
                           
                           'stubs'               => array(),
                           
                           'ignore_rules'        => array(),
                        );

        $this->config['inside_code'] = Configuration::INSIDE_CODE;

        foreach($defaults as $name => $default_value) {
            $this->config[$name] = empty($tmp_config[$name]) ? $default_value : $tmp_config[$name];
            unset($tmp_config[$name]);
        }

        if (isset($tmp_config['project_themes'])) {
            display("please, rename project_themes into project_rulesets in your .exakat.yaml file\n");

            if (empty($this->config['project_rulesets'])) {
                $this->config['project_rulesets'] = $this->config['project_themes'];
            }
        }

        if (is_string($this->config['other_php_versions'])) {
            $this->config['other_php_versions'] = listToArray($this->config['other_php_versions']);
            foreach($this->config['other_php_versions'] as &$version) {
                $version = str_replace('.', '', trim($version));
            }
            unset($version);
        }

        if (is_string($this->config['file_extensions'])) {
            $this->config['file_extensions'] = listToArray($this->config['file_extensions']);
            foreach($this->config['file_extensions'] as &$ext) {
                $ext = trim($ext, '. ');
            }
            unset($ext);
        }

        if (is_string($this->config['project_reports'])) {
            $this->config['project_reports'] = listToArray($this->config['project_reports']);
            foreach($this->config['project_reports'] as &$ext) {
                $ext = trim($ext);
            }
            unset($ext);
        }

        if (is_string($this->config['project_rulesets'])) {
            $this->config['project_rulesets'] = listToArray($this->config['project_rulesets']);
            foreach($this->config['project_rulesets'] as &$ext) {
                $ext = trim($ext);
            }
            unset($ext);
        }

        if (isset($this->config['project'])) {
            $this->config['project'] = new Project($this->config['project']);
        } elseif (isset($this->config['project_name'])) {
            $this->config['project'] = new Project(mb_strtolower(preg_replace('/\W/', '_', $this->config['project_name'] )));
        } else {
            $this->config['project'] = new Project('in-code-audit');
        }
        if (isset($this->config['rulesets'])) {
            // clean the read 
            $this->rulesets = RulesetConfig::cleanRulesets($this->config['rulesets']);
            
            unset($this->config['rulesets']);
        }

        foreach($tmp_config as $name => $tmp) {
            if (class_exists('Exakat\\Analyzer\\' . str_replace('/', '\\', $name))) {
                $this->config[$name] = $tmp;
                unset($tmp_config[$name]);
            }
        }

        if (!empty($tmp_config)) {
            display('Ignoring ' . count($tmp_config) . ' unkown directives : ' . implode(', ', array_keys($tmp_config)));
        }

        // Collect stubs. Stubs MUST be in the same code repository, so they are chrooted with the current directory.
        $stubs = array();
        $code_dir = getcwd();
        $this->config['stubs'] = makeArray($this->config['stubs']);
        foreach($this->config['stubs'] as $stub) {
            $d = getcwd();
            $path = realpath($code_dir.$stub);
            if ($path === false) {
                continue;
            }

            if (!file_exists($path)) {
                $stubs[$stub] = array();

                continue;
            }

            if (is_file($path)) {
                $stubs[$stub] = array($stub);

                continue;
            }

            if (is_dir($path)) {
                chdir($path);
                $allFiles = rglob('.');
                $allFiles = array_map(function ($path) use ($stub) { return $stub.ltrim($path, '.'); }, $allFiles);
                chdir($d);
            
                $stubs[$stub] = $allFiles;
            }
        }
        $this->config['stubs'] = array_unique(array_merge(...array_values($stubs)));

        return self::YAML_FILE;
    }

    public function getRulesets() {
        return $this->rulesets;
    }

    public function getConfig($dir_root = '') {
        // $vendor
        if ($this->config['include_dirs'] === array('/')) {
            $include_dirs = 'include_dirs[] = "";';
        } else {
            $include_dirs = 'include_dirs[] = "' . implode("\";\ninclude_dirs[] = \"", $this->config['include_dirs']) . "\";\n";
        }
        $ignore_dirs  = 'ignore_dirs[] = "' . implode("\";\nignore_dirs[] = \"", $this->config['ignore_dirs']) . "\";\n";
        $file_extensions  = implode(',', $this->config['file_extensions']);

        $custom_configs = array();

        $iniFiles = glob("$dir_root/human/en/*/*.ini");
        foreach($iniFiles as $file) {
            $ini = parse_ini_file($file, \INI_PROCESS_SECTIONS);
            if (isset($ini['parameter1'])) {
                $default[basename(dirname($file)) . '/' . basename($file, '.ini')][$ini['parameter1']['name']] = $ini['parameter1']['default'];
            }
        }

        foreach($this->config as $key => $value) {
            if (strpos($key, '/') === false) {
                continue;
            }

            foreach($value as $name => $values) {
                if (isset($default[$key])) {
                    $default[$key][$name] = $values;
                }
            }
        }

        $custom_configs = implode('', $custom_configs);

        $configIni = array(
'project'             => "{$this->config['project']}",
'project_name'        => "{$this->config['project_name']}",
'project_url'         => "{$this->config['project_url']}",
'project_vcs'         => "{$this->config['project_vcs']}",
'project_description' => "{$this->config['project_description']}",
'project_branch'      => "{$this->config['project_branch']}",
'project_tag'         => "{$this->config['project_tag']}",
'include_dirs'        => $this->config['include_dirs'],
'ignore_dirs'         => $this->config['ignore_dirs'],
'ignore_rules'        => $this->config['ignore_rules'],
'file_extensions'     => $file_extensions,
'custom'              => $default,
        );

        return Yaml::dump($configIni);
    }

}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Configsource;

class RemoteConfig extends Config {
    private $remoteJsonFile = 'config/remotes.json';

    public function __construct($projects_root) {
        $this->remoteJsonFile = $projects_root . '/config/remotes.json';
    }

    public function loadConfig($project) {
        if (!file_exists($this->remoteJsonFile)) {
            return self::NOT_LOADED;
        }

        $json = file_get_contents($this->remoteJsonFile);
        if (empty($json)) {
            return self::NOT_LOADED;
        }

        $remotes = json_decode($json);
        if (empty($remotes)) {
            return self::NOT_LOADED;
        }

        foreach($remotes as $remote) {
            $this->config[$remote->name] = $remote->URI;
        }

        return 'config/remotes.json';
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Configsource;

class RulesetConfig extends Config {
    private $remoteIniFile = false;

    public function __construct(string $exakat_root) {
        // Normal case : rulesets.ini
        $this->remoteIniFile = "{$exakat_root}/config/rulesets.ini";
        if (file_exists($this->remoteIniFile)) {
            return;
        }

        // Old case : rulesets.ini
        $this->remoteIniFile = "{$exakat_root}/config/themes.ini";
        if (file_exists($this->remoteIniFile)) {
            display("Warning : config/themes.ini is obsolete, and will be replaced by config/rulesets.ini. Please, rename it.\n");

            return;
        }

        $this->remoteIniFile = false;
    }

    public function loadConfig($project) {
        if (empty($this->remoteIniFile)) {
            return self::NOT_LOADED;
        }

        $ini = parse_ini_file($this->remoteIniFile, \INI_PROCESS_SECTIONS);
        if (empty($ini)) {
            return self::NOT_LOADED;
        }

        foreach($ini as $name => $values) {
            if (!isset($values['analyzer'])) {
                continue;
            }

            if (!is_array($values['analyzer'])) {
                continue;
            }

            $list = array_filter(array_unique($values['analyzer']), 'filter_analyzer');

            if (empty($list)) {
                continue;
            }

            // Check for actual existence and drop unknown
            $this->config[$name] = $list;
        }

        $this->config = self::cleanRulesets($this->config);

        return 'config/rulesets.ini';
    }
    
    public static function cleanRulesets(array $rulesets) {
        // hash=>array
        $rulesets = array_map('array_values', $rulesets);
        
        $rulesets = array_map(function (array $rules) : array {
            return preg_grep('#^[^/]+/[^/]+$#', $rules);
        }, $rulesets);


        $rulesets = array_filter($rulesets);
        $rulesets = array_map('array_filter', $rulesets);

        $rulesets = array_map('array_unique', $rulesets);

        return $rulesets;
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Configsource;

use Symfony\Component\Yaml\Yaml as Symfony_Yaml;

abstract class Config {
    const LOADED     = true;
    const NOT_LOADED = false;

    protected $config = array();
    protected $options = array();

    abstract public function loadConfig($args) ;

    public function toArray() {
        return $this->config;
    }

    public function get($index) {
        return $this->config[$index] ?? null;
    }

    public function toIni(): string {
        $ini = array();

        $ini[] = ';Main PHP version for this code.';
        $ini[] = "phpversion = {$this->options['phpversion']}";
        $ini[] = '';

        $ini[] = ';Ignored dirs and files, relative to code source root.';
        foreach($this->ignore_dirs as $ignore_dir) {
            $ini[] = "ignore_dirs[] = \"$ignore_dir\"";
        }
        $ini[] = '';

        $ini[] = ';Included dirs or files, relative to code source root. Default to all.';
        $ini[] = ';Those are added after ignoring directories';
        foreach($this->include_dirs as $include_dir) {
            $ini[] = "include_dirs[] = \"$include_dir\"";
        }
        $ini[] = '';

        $ini[] = ';Accepted file extensions';
        $ini[] = 'file_extensions = "' . implode(',', $this->file_extensions) . '"';
        $ini[] = '';

        $ini[] = ';Stub files and folders';
        if (empty($this->stubs)) {
            $ini[] = "stub[] = '';";
        } else {
            foreach($this->stubs as $stub) {
                $ini[] = "stub[] = \"$stub\"";
            }
        
        }
        $ini[] = '';

        $ini[] = ';Ignored rules';
        foreach($this->ignore_rules as $ignore_rule) {
            $ini[] = "ignore_rules[] = \"$ignore_rule\"";
        }
        $ini[] = '';

        $ini[] = ';Description of the project';
        $ini[] = "project_name        = \"{$this->project_name}\";";
        $ini[] = "project_url         = \"{$this->project_url}\";";
        $ini[] = "project_vcs         = \"{$this->project_vcs}\";";
        $ini[] = "project_description = \"{$this->project_description}\";";
        $ini[] = "project_branch      = \"{$this->project_branch}\";";
        $ini[] = "project_tag         = \"{$this->project_tag}\";";
        $ini[] = '';

        $parameters = preg_grep('#^[A-Z][^/]+/[A-Z].+$#', array_keys($this->options));
        foreach($parameters as $parameter) {
            $class = "\Exakat\Analyzer\\" . str_replace('/', '\\', $parameter);
            if (!class_exists($class)) {
                continue;
            }
            $ini[] = "[$parameter]";
            foreach($this->options[$parameter] as $name => $value) {
                if (!property_exists($class, $name)) {
                    continue;
                }
                $ini[] = "$name = $value;";
            }
            $ini[] = '';
        }

        return implode(PHP_EOL, $ini);
    }

    public function toYaml(): string {
        $yaml = array('phpversion'          => $this->options['phpversion'],
                      'ignore_dirs'         => $this->ignore_dirs,
                      'include_dirs'        => $this->include_dirs,
                      'ignore_rules'        => $this->ignore_rules,
                      'file_extensions'     => $this->file_extensions,
                      'stub'                => $this->stubs,
                      'project_name'        => $this->project_name,
                      'project_url'         => $this->project_url,
                      'project_vcs'         => $this->project_vcs,
                      'project_description' => $this->project_description,
                      'project_branch'      => $this->project_branch,
                      'project_tag'         => $this->project_tag,
                      );

        $parameters = preg_grep('#^[A-Z][^/]+/[A-Z].+$#', array_keys($this->options));
        foreach($parameters as $parameter) {
            $class = "\Exakat\Analyzer\\" . str_replace('/', '\\', $parameter);
            if (!class_exists($class)) {
                continue;
            }
            $yaml[$parameter] = array();
            foreach($this->options[$parameter] as $name => $value) {
                if (!property_exists($class, $name)) {
                    continue;
                }
                $yaml[$parameter][$name] = $value;
            }
        }

        return Symfony_Yaml::dump($yaml);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Configsource;

use Exakat\Phpexec;
use Exakat\Project;
use Exakat\Vcs\Vcs;

class ProjectConfig extends Config {
    private $projects_root = '.';
    private $project       = '';

    protected $config = array('phpversion'          => PHP_MAJOR_VERSION . '.' . PHP_MINOR_VERSION,
                              'project_name'        => '',
                              'project_url'         => '',
                              'project_vcs'         => 'git',
                              'project_description' => '',
                              'project_branch'      => '',
                              'project_tag'         => '',
// No default value,
//                              'project_rulesets'    => array(),
                              'file_extensions'     => array('php',
                                                             'php3',
                                                             'inc',
                                                             'tpl',
                                                             'phtml',
                                                             'tmpl',
                                                             'phps',
                                                             'ctp',
                                                             'module',
                                                             ),
                              'include_dirs'        => array('/',
                                                            ),
                              'ignore_dirs'         => array('/assets',
                                                             '/cache',
                                                             '/css',
                                                             '/data',
                                                             '/doc',
                                                             '/docker',
                                                             '/docs',
                                                             '/example',
                                                             '/examples',
                                                             '/images',
                                                             '/js',
                                                             '/lang',
                                                             '/spec',
                                                             '/sql',
                                                             '/test',
                                                             '/tests',
                                                             '/tmp',
                                                             '/version',
                                                             '/var',
                                                            ),
                                'stubs'              => array(),
                              );

    public function __construct($projects_root) {
        $this->projects_root = "$projects_root/projects/";
    }

    public function setProject(Project $project) {
        $this->project = $project;
    }

    public function loadConfig($project) {
        $this->project = $project;

        $pathToIni = "{$this->projects_root}{$project}/config.ini";
        if (!file_exists($pathToIni)) {
            return self::NOT_LOADED;
        }

        $ini = parse_ini_file($pathToIni, \INI_PROCESS_SECTIONS);
        if (!is_array($ini)) {
            $error = error_get_last();
            print "Couldn't parse $pathToIni : $error[message]\nIgnoring file\n";
            return self::NOT_LOADED;
        }

        foreach(array_keys($this->config) as $key) {
            if (!isset($ini[$key])) {
                $ini[$key] = $this->config[$key];
            }
        }

        // Aliasing project_themes into rulesets
        if (isset($ini['project_themes'])) {
            print "rename project_themes in project_rulesets, in your config.ini file\n";

            if (empty($this->config['project_rulesets'])) {
                $this->config['project_rulesets'] = $ini['project_themes'];
            }
        }
        $this->config = $ini;

        $pathToCache = "{$this->projects_root}{$project}/config.cache";
        if (file_exists($pathToCache)) {
            $iniCache = parse_ini_file($pathToCache);
            if (isset($iniCache['ignore_dirs'])) {
                $this->config['ignore_dirs'] = array_merge($this->config['ignore_dirs'],
                                                           $iniCache['ignore_dirs']);
            }
        }

        $this->config['project_vcs'] = $this->config['project_vcs'] ?? '';

        // Default behavior to keep exakat running until everyone has a filled file_extension option in config.ini
        if (empty($this->config['file_extensions'])) {
            $this->config['file_extensions'] = 'php,php3,inc,tpl,phtml,tmpl,phps,ctp,module';
        }

        // Converting the string format to arrays when necessary
        if (isset($this->config['other_php_versions']) &&
            is_string($this->config['other_php_versions'])) {
            $this->config['other_php_versions'] = listToArray($this->config['other_php_versions']);
            foreach($this->config['other_php_versions'] as &$version) {
                $version = trim($version, '. ');
            }
            unset($version);
        }

        if (isset($this->config['file_extensions']) &&
            is_string($this->config['file_extensions'])) {
            $this->config['file_extensions'] = listToArray($this->config['file_extensions']);
            foreach($this->config['file_extensions'] as &$ext) {
                $ext = trim($ext, '. ');
            }
            unset($ext);
        }

        if (!isset($this->config['phpversion']) ||
             $this->config['phpversion'] === 'PHP' ||
             !in_array($this->config['phpversion'], Phpexec::VERSIONS)) {
            $this->config['phpversion'] = PHP_MAJOR_VERSION . '.' . PHP_MINOR_VERSION;
        }
        // else ALL is good

        if (isset($this->config['project_reports']) &&
            is_string($this->config['project_reports'])) {
            $this->config['project_reports'] = listToArray($this->config['project_reports']);
            foreach($this->config['project_reports'] as &$ext) {
                $ext = trim($ext);
            }
            unset($ext);
        }

        if (isset($this->config['project_rulesets'])) {
            if (is_string($this->config['project_rulesets'])) {
                $this->config['project_rulesets'] = listToArray($this->config['project_rulesets']);
            }

            $this->config['project_rulesets'] = array_filter($this->config['project_rulesets'] ?? array());
            $this->config['project_rulesets'] = array_map('trim', $this->config['project_rulesets']);
            $this->config['project_rulesets'] = array_unique($this->config['project_rulesets']);
        }

        if (in_array($this->config['project_vcs'], Vcs::SUPPORTED_VCS)) {
            $this->config['git'] = false; // remove Git, which is by default
            $this->config[$this->config['project_vcs']] = true; // potentially, revert git
        }

        // Calculate the stubs recursivement if it is a folder
        // all path are relative to the project_dir/code, cannot be outside.
        $stubs = array(array());
        $code_dir="{$this->projects_root}{$project}/code/";
        $this->config['stubs'] = makeArray($this->config['stubs']);
        foreach($this->config['stubs'] as $stub) {
            $d = getcwd();
            $path = realpath($code_dir.$stub);

            if ($path === false) {
                continue;
            }

            if (!file_exists($path)) {
                $stubs[$stub] = array();

                continue;
            }

            if (is_file($path)) {
                $stubs[$stub] = array($stub);

                continue;
            }

            if (is_dir($path)) {
                chdir($path);
                $allFiles = rglob('.');
                $allFiles = array_map(function ($path) use ($stub) { return $stub.ltrim($path, '.'); }, $allFiles);
                chdir($d);
            
                $stubs[$stub] = $allFiles;
            }
        }
        $this->config['stubs'] = array_unique(array_merge(...array_values($stubs)));

        return "$project/config.ini";
    }

    // requiered for Init Project
    public function setConfig($name, $value) {
        $this->config[$name] = $value;
    }

    public function getConfig($dir_root = '') {
        // $vendor
        if ($this->config['include_dirs'] === array('/')) {
            $include_dirs = 'include_dirs[] = "";';
        } else {
            $include_dirs = 'include_dirs[] = "' . implode("\";\ninclude_dirs[] = \"", $this->config['include_dirs']) . "\";\n";
        }
        $ignore_dirs   = $this->makeIniArray('ignore_dirs', $this->config['ignore_dirs']);
        $ignore_rules  = $this->makeIniArray('ignore_rules', $this->config['ignore_rules'] ?? array());

        $file_extensions  = implode(',', $this->config['file_extensions']);

        $custom_configs = array();

        $iniFiles = glob("$dir_root/human/en/*/*.ini");
        $default = array();
        foreach($iniFiles as $file) {
            $ini = parse_ini_file($file, \INI_PROCESS_SECTIONS);
            if (isset($ini['parameter1'])) {
                $default[basename(dirname($file)) . '/' . basename($file, '.ini')][$ini['parameter1']['name']] = $ini['parameter1']['default'];
            }
        }

        foreach($this->config as $key => $value) {
            if (strpos($key, '/') === false) {
                continue;
            }

            $cc = "[$key]\n";
            foreach($value as $name => $values) {
                if (is_array($values)) {
                    $cc .= "{$name}[] = " . implode(";\n{$name}[] = ", $values) . ";\n; default = {$default[$key][$name]}\n";
                } elseif (is_string($values)) {
                    if (intval($values) === 0) {
                        $cc .= "{$name} = \"$values\";\n; default = {$default[$key][$name]}\n";
                    } else {
                        $cc .= "{$name} = $values;\n; default = {$default[$key][$name]}\n";
                    }
                } elseif (is_int($values)) {
                    $cc .= "{$name} = $values;\n; default = {$default[$key][$name]}\n";
                } else {
                    assert(false, 'Unknown type for INI creation : ' . gettype($values));
                }

                unset($default[$key]);
            }
            $cc .= PHP_EOL;

            $custom_configs[] = $cc;
        }

        foreach($default as $key => $value) {
            $cc2 = "[$key]\n";
            foreach($value as $name => $values) {
                if (is_array($values)) {
                    $cc2 .= "{$name}[] = " . implode(";\n{$name}[] = ", $values) . ";\n; default value\n\n";
                } elseif (is_string($values)) {
                    if (intval($values) === 0) {
                        $cc2 .= "{$name} = \"$values\";\n; default value\n\n";
                    } else {
                        $cc2 .= "{$name} = $values;\n; default value\n\n";
                    }
                } elseif (is_int($values)) {
                    $cc2 .= "{$name} = $values;\n; default value\n\n";
                } else {
                    assert(false, 'Unknown type for INI creation : ' . gettype($values));
                }
            }
            $custom_configs[] = $cc2;
        }

        $custom_configs = implode('', $custom_configs);

        $configIni = <<<INI
;Main PHP version for this code.
;default is to use config/exakat.ini
;phpversion = {$this->config['phpversion']}

;Ignored dirs and files, relative to code source root.
$ignore_dirs

;Ignored rules.
$ignore_rules

;Included dirs or files, relative to code source root. Default to all.
;Those are added after ignoring directories
$include_dirs

;Accepted file extensions
file_extensions = $file_extensions

;Description of the project
project_name        = "{$this->config['project_name']}";
project_url         = "{$this->config['project_url']}";
project_vcs         = "{$this->config['project_vcs']}";
project_description = "{$this->config['project_description']}";
project_branch      = "{$this->config['project_branch']}";
project_tag         = "{$this->config['project_tag']}";

$custom_configs

INI;

        return $configIni;
    }
    
    private static function makeIniArray(string $name, array $array) : string {
        return $name.'[] = "' . implode("\";\n{$name}[] = \"", $array) . "\";\n";
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Configsource;

use Exakat\Phpexec;
use Exakat\Config as MainConfig;
use Exakat\Exceptions\NoPhpBinary;

class ExakatConfig extends Config {
    private $projects_root = '';

    private $gremlins = array( 'tinkergraph'   => 'Tinkergraph',
                               'tinkergraphv3' => 'TinkergraphV3',
                               'gsneo4j'       => 'GSNeo4j',
                               'gsneo4jv3'     => 'GSNeo4jV3',
                               'janusgraph'    => 'Janusgraph',
                               'nogremlin'     => 'NoGremlin',
                               'orientdb'      => 'Orientdb',
                               );

    private $loaders = array( 'tinkergraph'   => 'SplitGraphson',
                              'tinkergraphv3' => 'SplitGraphson',
                              'gsneo4j'       => 'SplitGraphson',
                              'gsneo4jv3'     => 'SplitGraphson',
                              'janusgraph'    => 'SplitGraphson',
                              'orientdb'      => 'SplitGraphson',
                              'nogremlin'     => 'None',
                              );

    public function __construct($projects_root) {
        $this->projects_root = $projects_root;
    }

    public function loadConfig($args) {
        // Default values
        $inis =  array(
                    array('graphdb'            => 'gsneo4j',
                          'gremlin'            => $this->gremlins['gsneo4j'],
                          'loader'             => $this->loaders['gsneo4j'],
                          'other_php_versions' => array(),
                          'transit_key'        => '',
                       )
                    );

        $configFiles = array("{$this->projects_root}/config/exakat.ini",
                             '/etc/exakat/exakat.ini',
                             '/etc/exakat.ini',
                             '', // This is the canary : when all fail, this will be used and returned
                             );

        // Attempt each init path, and stop at the first file we find
        $ini = null;
        foreach($configFiles as $configFile) {
            if (file_exists($configFile)) {
                // overwrite existing with the new, keep the default values
                $ini = @parse_ini_file($configFile);
                if (is_array($ini)) {
                    $inis = $ini + $inis[0];
                    break 1;
                } else {
                    $error = error_get_last();
                    print "Invalid config file '$configFile' : $error[message]Ignoring '$configFile'\n\n";
                }
            }
        }

        // Aliasing project_themes into rulesets
        if (isset($inis['project_themes'])) {
            print "Rename project_themes in project_rulesets, in your config/exakat.ini file\n";

            if (empty($inis['project_rulesets'])) {
                $inis['project_rulesets'] = $inis['project_themes'];
            }
        }
        $this->config = $inis;

        // Validation
        if (!isset($this->config['graphdb']) ||
            !in_array($this->config['graphdb'], array_keys($this->gremlins)) ) {
            $this->config['graphdb'] = 'nogremlin';
        }

        foreach(array_keys($this->gremlins) as $gdb) {
            $folder = "{$gdb}_folder";
            if (isset($this->config[$folder])) {
                if ($this->config[$folder][0] !== '/') {
                    $this->config[$folder] = "{$this->projects_root}/{$this->config[$folder]}";
                }
                $this->config[$folder] = realpath($this->config[$folder]);
            }
        }

        // Update values with actual loaders and gremlin
        $this->config['gremlin'] = $this->gremlins[$this->config['graphdb']];
        $this->config['loader']  = $this->loaders[$this->config['graphdb']];

        if (isset($this->config['concurencyCheck'])) {
            $this->config['concurencyCheck'] = (int) $this->config['concurencyCheck'];
            if ($this->config['concurencyCheck'] < 1024) {
                $this->config['concurencyCheck'] = 7610;
            } elseif ($this->config['concurencyCheck'] > 49150) {
                $this->config['concurencyCheck'] = 7610;
            }
        }

        foreach(MainConfig::PHP_VERSIONS as $version) {
            if (empty($this->config["php$version"])) {
                continue;
            }
            try {
                $php = new Phpexec("$version[0].$version[1]", $this->config["php$version"]);
            } catch (NoPhpBinary $e) {
                continue;
            }

            if ($php->isValid()) {
                $this->config['other_php_versions'][] = $version;
            }
        }

        if (isset($this->config['parallel_processing'])) {
            $this->config['parallel_processing'] = ((bool) $this->config['parallel_processing']) && function_exists('pcntl_fork');
        }

        // Calculate the stubs recursivement if it is a folder
        // all path are absolute, may be placed anywhere
        if (!isset($this->config['stubs'])) {
            $this->config['stubs'] = array();
        } else {
            $stubs = array();
            $this->config['stubs'] = makeArray($this->config['stubs']);
            foreach($this->config['stubs'] as $stub) {
                $d = getcwd();
                $path = realpath($stub);

                if ($path === false) {
                    continue;
                }

                if (!file_exists($path)) {
                    $stubs[$stub] = array();
    
                    continue;
                }
    
                if (is_file($path)) {
                    $stubs[$stub] = array($stub);
    
                    continue;
                }
    
                if (is_dir($path)) {
                    chdir($path);
                    $allFiles = rglob('.');
                    $allFiles = array_map(function ($path) use ($stub) { return $stub.ltrim($path, '.'); }, $allFiles);
                    chdir($d);
                
                    $stubs[$stub] = $allFiles;
                }
            }
            $this->config['stubs'] = array_unique(array_merge(...array_values($stubs))); 
        }

        return str_replace(getcwd(), '.', $configFile);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Configsource;

use Exakat\Phpexec;
use Exakat\Config as Configuration;

class DotExakatConfig extends Config {
    private $dotExakat = '';

    public function __construct() {
        $this->dotExakat = getcwd() . '/.exakat.ini';
        // also support json?
    }

    public function loadConfig($project) {
        if (!file_exists($this->dotExakat)) {
            $this->config['inside_code'] = Configuration::WITH_PROJECTS;
            return self::NOT_LOADED;
        }

        $this->config = parse_ini_file($this->dotExakat);

        // removing empty values in the INI file
        foreach($this->config as &$value) {
            if (is_array($value) && empty($value[0])) {
                unset($value[0]);
            }
        }
        unset($value);

        if (isset($this->config['project_themes'])) {
            display("please, rename project_themes into project_rulesets in your .exakat.ini file\n");

            if (empty($this->config['project_rulesets'])) {
                $this->config['project_rulesets'] = $this->config['project_themes'];
            }
        }

        $other_php_versions = array();
        foreach(Configuration::PHP_VERSIONS as $version) {
            if (empty($this->config['php' . $version])) {
                continue;
            }
            $php = new Phpexec($version[0] . '.' . $version[1], $this->config["php$version"]);
            if ($php->isValid()) {
                $other_php_versions[] = $version;
            }
        }

        // check and default values
        $defaults = array( 'ignore_dirs'        => array('/test', '/tests', '/Tests', '/Test', '/example', '/examples', '/docs', '/doc', '/tmp', '/version', '/vendor', '/js', '/lang', '/data', '/css', '/cache', '/vendor', '/assets', '/spec', '/sql'),
                           'other_php_versions' => $other_php_versions,
                           'phpversion'         => substr(PHP_VERSION, 0, 3),
                           'file_extensions'    => array('php', 'php3', 'inc', 'tpl', 'phtml', 'tmpl', 'phps', 'ctp', 'module'),
                           'project_rulesets'   => 'CompatibilityPHP53,CompatibilityPHP54,CompatibilityPHP55,CompatibilityPHP56,CompatibilityPHP70,CompatibilityPHP71,CompatibilityPHP72,CompatibilityPHP73,CompatibilityPHP74,Dead code,Security,Analyze,Preferences,Appinfo,Appcontent',
                           'project_reports'    => array('Text'),
                        );

        $this->config['inside_code'] = Configuration::INSIDE_CODE;

        foreach($defaults as $name => $value) {
            if (empty($this->config[$name])) {
                $this->config[$name] = $value;
            }
        }

        if (is_string($this->config['other_php_versions'])) {
            $this->config['other_php_versions'] = listToArray($this->config['other_php_versions']);
            foreach($this->config['other_php_versions'] as &$version) {
                $version = str_replace('.', '', trim($version));
            }
            unset($version);
        }

        if (is_string($this->config['file_extensions'])) {
            $this->config['file_extensions'] = listToArray($this->config['file_extensions']);
            foreach($this->config['file_extensions'] as &$ext) {
                $ext = trim($ext, '. ');
            }
            unset($ext);
        }

        if (is_string($this->config['project_reports'])) {
            $this->config['project_reports'] = listToArray($this->config['project_reports']);
            foreach($this->config['project_reports'] as &$ext) {
                $ext = trim($ext);
            }
            unset($ext);
        }

        if (is_string($this->config['project_rulesets'])) {
            $this->config['project_rulesets'] = listToArray($this->config['project_rulesets']);
            foreach($this->config['project_rulesets'] as &$ext) {
                $ext = trim($ext);
            }
            unset($ext);
        }

        return '.exakat.ini';
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Configsource;

class EnvConfig extends Config {
    public function loadConfig($args) {
        // Which ENV variable are worth using ?

        return self::NOT_LOADED;

        // return 'ENVIRONNMENT';
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat;

class Remote {
    private $bits = array();
    private $key  = '';

    public function __construct($url = '/tmp/exakat.queue', $key = '') {
        $bits = parse_url($url);
        $this->bits = array( 'scheme' => $bits['scheme'] ?? 'http',
                             'host'   => $bits['host']   ?? 'localhost',
                             'port'   => $bits['port']   ?? '8447',
                             'path'   => $bits['path']   ?? '/tmp/exakat.queue',
                           );
        $this->key = $key;
    }

    public function send($json) {
        if ($this->bits['scheme'] === 'file') {
            return $this->sendWithPipe($json);
        } elseif ($this->bits['scheme'] === 'http') {
            return $this->sendWithHTTP($json);
        } else {
            // Throw error
        }
    }

    private function sendWithPipe($json) {
        $queuePipe = fopen($this->bits['path'], 'w');
        fwrite($queuePipe, $json . PHP_EOL);
        fclose($queuePipe);
    }

    private function sendWithHTTP($json) {
        if (!empty($this->key)) {
            $json = $this->safeEncrypt($json, $this->key);
        }
        $json = urlencode($json);

        // use key 'http' even if you send the request to https://...
        $options = array(
            'http' => array(
                'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
                'method'  => 'POST',
                'content' => "json=$json",
                           ),
        );

        $context  = stream_context_create($options);
        $html = file_get_contents($this->bits['scheme'] . '://' . $this->bits['host'] . ':' . $this->bits['port'], false, $context);

        return $html;
    }

    /**
    * Encrypt a message
    *
    * @param string $message - message to encrypt
    * @param string $key - encryption key
    * @return string
    */
    private function safeEncrypt($message, $key)
    {
        $nonce = random_bytes(
            SODIUM_CRYPTO_SECRETBOX_NONCEBYTES
        );

        $cipher = base64_encode(
            $nonce .
            sodium_crypto_secretbox(
                $message,
                $nonce,
                $key
            )
        );
        sodium_memzero($message);
        sodium_memzero($key);
        return $cipher;
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;

class NoStructureForTable extends \RuntimeException {
    public function __construct(string $table) {

        parent::__construct( "No SQL structure exists for table $table.\n");
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;

class AnotherProcessIsRunning extends \RuntimeException {
    public function __construct($code = 0, \Exception $previous = null) {

        parent::__construct( "Another exakat is running. Wait until it finishes to launch this command again.\n", $code, $previous);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;

class NoDump extends \Exception {
    public function __construct($project = '', $code = 0, \Exception $previous = null) {

        parent::__construct("No results database was found for project '$project'.\nRun php exakat.phar project -p $project first\n", $code, $previous);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;

class NoSuchLoader extends \RuntimeException {
    public function __construct($loader = '', $loaderList = array(), $code = 0, \Exception $previous = null) {
        parent::__construct('No such loader as "' . $loader . '". Use one of ' . implode(', ', $loaderList) . "\n", $code, $previous);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;

class NoPhpBinary extends \Exception {
    public function __construct($message = '', $code = 0, \Exception $previous = null) {
        parent::__construct($message, $code, $previous);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;

class ProjectNotInited extends \RuntimeException {
    public function __construct($project = '', $code = 0, \Exception $previous = null) {
        parent::__construct("Project $project hasn't been initialized. Run exakat init first.", $code, $previous);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;

class NoSuchFile extends \RuntimeException {
    public function __construct($filename = '', $code = 0, \Exception $previous = null) {
        parent::__construct('No such file as "' . $filename . "\"\n", $code, $previous);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;

class DSLException extends \Exception {
    public function __construct($message, $level = 1) {
        parent::__construct($message);

        // Setting error in the previous file
        $trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
        $this->file = $trace[$level]['file'];
        $this->line = $trace[$level]['line'];
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;

class ProjectNeeded extends \RuntimeException {
    public function __construct() {

        parent::__construct( "This command requires a project name. Pass the -p option, or use .exakat.yaml config file.\nAborting\n");
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;

class ProjectTooLarge extends \RuntimeException {
    public function __construct($nb_tokens, $limit) {
        parent::__construct("Project too large ($nb_tokens tokens found, $limit tokens limit). Check config/exakat.ini to change this limit.\n", 0, null);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;

class InvalidProjectName extends \Exception {
    public function __construct($message = '', $code = 0, $previous = null) {

        parent::__construct("Can't use a project with that name. $message\n", $code, $previous);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;

class WrongNumberOfColsForAHash extends \RuntimeException {
    public function __construct(string $table, int $provided) {

        parent::__construct( "Wrong number of cols provided for table $table : $provided cols provided.\n");
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;

class NoRecognizedTokens extends \Exception {
    public function __construct($message = '', $code = 0, \Exception $previous = null) {
        parent::__construct('Tokens \'' . $message . '\' were not recognized. Please, check with @exakat on twitter.', $code, $previous);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;

class UnknownDsl extends \RuntimeException {
    public function __construct($name) {
        parent::__construct( "Unknown DSL command '$name'\n");
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;

class NoSuchDir extends \RuntimeException {
    public function __construct($filename = '', $code = 0, \Exception $previous = null) {
        parent::__construct('No such dir as "' . $filename . '"', $code, $previous);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;

class NoSuchProject extends \RuntimeException {
    public function __construct($project = '', $code = 0, \Exception $previous = null) {
        parent::__construct("No such project as \"$project\".\n", $code, $previous);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;

class InvalidPHPBinary extends \Exception {
    public function __construct($message = '', $code = 0, \Exception $previous = null) {

        parent::__construct("This PHP version ($message) is not valid for running Exakat. You need PHP 7.0 or later.\n", $code, $previous);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;

class NeedsAnalyzerThema extends \RuntimeException {
    public function __construct() {

        parent::__construct( "One of the options -P <One/rule>|-T <\"Thema\"> is required. None provided.\n");
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;

class NoDumpYet extends \Exception {
    public function __construct($project = '', $code = 0, \Exception $previous = null) {

        parent::__construct("No results are available for project '$project' yet. May be the analysis is still running.\n", $code, $previous);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;

class InaptPHPBinary extends \Exception {
    public function __construct($message = '', $code = 0, \Exception $previous = null) {

        parent::__construct("The PHP version cannot be used to run Exakat : $message\n", $code, $previous);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;

class GremlinException extends \Exception {
    public function __construct($message = '', $query = '', \Exception $previous = null) {

        parent::__construct("Error during Gremlin query : '$message'.\nQuery : $query\n", 1, $previous);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;

class QueryException extends \RuntimeException {
    public function __construct($message, $code = 0, \Exception $previous = null) {

        parent::__construct( "Gremlin Query Exception : $message\n", $code, $previous);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;

class LoadError extends \Exception {
    public function __construct($message, $code = 0, \Exception $previous = null) {

        parent::__construct("Load task met an error : '$message'\n", $code, $previous);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;

class NotProjectInGraph extends \RuntimeException {
    public function __construct($project = '', $inGraph = '') {
        parent::__construct('The analyzed project is not the same as the requested one : "' . $project . '" / "' . $inGraph . '". You probably want to use  -p ' . $inGraph . '.', 0, null);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;

class MustBeADir extends \Exception {
    public function __construct($message = '', $code = 0, \Exception $previous = null) {

        parent::__construct("$message must be a directory, or use -f option. \nAborting.\n", $code, $previous);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;

class HelperException extends \Exception {
    public function __construct($helper = '', $code = 0, \Exception $previous = null) {

        parent::__construct($helper . ' not found. Please, check exakat doctor to ensure all helpers are available', $code, $previous);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;

class UnknownGremlinVersion extends \RuntimeException {
    public function __construct(string $version) {
        parent::__construct( "Unknown Gremlin version installed : '$version'\n");
    }
}

?><?php
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

declare(strict_types = 1);

namespace Exakat\Exceptions;

class WrongParameterType extends \RuntimeException {
    public function __construct(string $vcs = '', string $message = '') {
        parent::__construct("$vcs reported an error and no code could be loaded : $message.", 0, null);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;

use Exception;

class NoFileToProcess extends \RuntimeException {
    public function __construct(string $filename = '', string $type = 'empty or doesn\'t compile', int $code = 0, Exception $previous = null) {
        parent::__construct($filename . ' ' . $type, $code, $previous);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;

class NoSuchRuleset extends \RuntimeException {
    public function __construct(string $message = '',array $rulesets = array()) {
        $exception = "No such ruleset as '$message'. \n";

        if (!empty($rulesets)) {
            $exception .= 'You can try : ' . implode(', ', array_unique($rulesets)) . PHP_EOL;
        }

        parent::__construct($exception);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;

class UnknownCase extends \RuntimeException {
    public function __construct(string $message) {

        parent::__construct("An unexpected situation was met while processing Load : $message\n");
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;

class NoCodeInProject extends \RuntimeException {
    public function __construct($project = '', $code = 0, \Exception $previous = null) {
        parent::__construct("No code in project '$project'\n", $code, $previous);
    }
}

?><?php
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

declare(strict_types = 1);

namespace Exakat\Exceptions;

class VcsError extends \RuntimeException {
    public function __construct(string $vcs = '', string $message = '') {
        parent::__construct("$vcs reported an error and no code could be loaded : $message.", 0, null);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;

class MustBeAFile extends \Exception {
    public function __construct($message = '', $code = 0, \Exception $previous = null) {

        parent::__construct("$message must be a file, or use -d option. \nAborting.\n", $code, $previous);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;


class NoSuchAnalyzer extends \RuntimeException {
    public function __construct($analyzer, $themes) {
        $die = "Couldn't find '$analyzer'. Aborting\n";

        if (preg_match('#[a-z0-9_]+/[a-z0-9_]+$#i', $analyzer) === 0) {
            $die .= "Analyzers use the format Folder/Rule, for example Structures/UselessInstructions. Check the documentation http://exakat.readthedocs.io/\n";
        } else {
            $r = $themes->getSuggestionClass($analyzer);
            if (empty($r)) {
                $die .= "Couldn't find a suggestion. Check the documentation http://exakat.readthedocs.io/\n";
            } else {
                $die .= 'Did you mean : ' . str_replace('\\', '/', implode(', ', array_slice($r, 0, 5)));
                if (count($r) > 5) {
                    $die .= ' (' . (count($r) - 5) . ' more possible)';
                }
                $die .= "\n";
            }
        }

        parent::__construct($die);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;

class NoPrecedence extends \Exception {
    public function __construct($message = '', $code = 0, \Exception $previous = null) {

        parent::__construct("No precedence for '$message'.\n", $code, $previous);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;

class NoSuchReport extends \RuntimeException {
    public function __construct(string $report = '') {
        parent::__construct("No such report as '$report'\n");
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;

class MissingFile extends \Exception {
    public function __construct(array $missing = array(), int $code = 0, \Exception $previous = null) {

        $c = count($missing);
        if ($c > 3) {
            $display = array_slice($missing, 0, 3);
            $displayNames = implode(', ', $display) . '...';
        } else {
            $displayNames = implode(', ', $missing);
        }
        parent::__construct($c . ' file' . ($c > 1 ? 's are' : ' is') . ' missing from the cache (' . $displayNames . '). Please, run "files" command to refresh the cache. ' . PHP_EOL . 'Aborting' . PHP_EOL, $code, $previous);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;

class MissingGremlin extends \RuntimeException {
    public function __construct(string $gremlin = '') {
        parent::__construct("Gremlin server could not be found in '$gremlin'. Check config/exakat.ini.\n");
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;

class NoJobqueueStarted extends \RuntimeException {
    public function __construct() {

        parent::__construct( 'No Jobqueue server was found on this server. Start the queue (exakat queue) and try again.');
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Exceptions;

class NoSuchFormat extends \RuntimeException {
    public function __construct($requested, $formats, $code = 0, \Exception $previous = null) {
        parent::__construct("Format '" . $requested . "' doesn't exist. Choose among : " . implode(', ', $formats), $code, $previous);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat;

use Exakat\Configsource\{CommandLine, DefaultConfig, DotExakatConfig, DotExakatYamlConfig, EmptyConfig, EnvConfig, ExakatConfig, ProjectConfig, RemoteConfig, RulesetConfig, Config as Configsource };
use Exakat\Exceptions\InaptPHPBinary;
use Exakat\Autoload\AutoloadDev;
use Exakat\Autoload\AutoloadExt;
use Phar;

class Config extends Configsource {
    const PHP_VERSIONS = array('52', '53', '54', '55', '56', '70', '71', '72', '73', '74', '80', );

    const INSIDE_CODE   = true;
    const WITH_PROJECTS = false;

    const IS_PHAR      = true;
    const IS_NOT_PHAR  = false;

    public $dir_root              = '.';
    public $ext_root              = '.';
    public $projects_root         = '.';
    public $is_phar               = true;
    public $executable            = '';
    public $ext                   = null;
    public $dev                   = null;

    private $projectConfig         = null;
    private $commandLineConfig     = null;
    private $defaultConfig         = null;
    private $exakatConfig          = null;
    private $dotExakatConfig       = null;
    private $dotExakatYamlConfig   = null;
    private $envConfig             = null;
    private $argv                  = null;
    private $screen_cols           = 100;

    private $configFiles = array();
    private $remotes     = array();
    private $rulesets    = array();

    public function __construct(array $argv) {
        $this->argv = $argv;

        $this->is_phar  = class_exists('\\Phar') && !empty(phar::running()) ? self::IS_PHAR : self::IS_NOT_PHAR;
        if ($this->is_phar === self::IS_PHAR) {
            $this->executable    = $_SERVER['SCRIPT_NAME'];
            $this->projects_root = substr(dirname(phar::running()), 7);
            $this->dir_root      = phar::running();
            $this->ext_root      = substr(dirname(phar::running()) . '/ext', 5);

            if (!file_exists("{$this->projects_root}/projects")) {
                mkdir("{$this->projects_root}/projects", 0755);
            }
            ini_set('error_log', "{$this->projects_root}/projects/php_error.log");
        } else {
            $this->executable    = $_SERVER['SCRIPT_NAME'];
            $this->dir_root      = dirname(__DIR__, 2);
            // Run projects in the working directory
            if (dirname($_SERVER['SCRIPT_FILENAME']) === 'bin'      &&
                dirname($_SERVER['SCRIPT_FILENAME'], 2) === 'vendor') {
                $this->projects_root = getcwd();
            } else {
                $this->projects_root = dirname(__DIR__, 2);
            }
            $this->ext_root      = "{$this->dir_root}/ext";

            assert_options(ASSERT_ACTIVE, 1);
            assert_options(ASSERT_BAIL, 1);

            error_reporting(E_ALL);
            ini_set('display_errors', '1');
        }
        
        $this->loadConfig(array());
    }

    public function loadConfig($args) {
        unset($this->argv[0]);

        $this->defaultConfig = new DefaultConfig();

        $this->exakatConfig = new ExakatConfig($this->projects_root);
        if ($file = $this->exakatConfig->loadConfig(null)) {
            $this->configFiles[] = $file;
        }

        // then read the config from the commandline (if any)
        $this->commandLineConfig = new CommandLine();
        $this->commandLineConfig->loadConfig($this->argv);

        $this->envConfig = new EnvConfig();
        if ($file = $this->envConfig->loadConfig(null)) {
            $this->configFiles[] = $file;
        }

        // then read the config for the project in its folder
        if ($this->commandLineConfig->get('project') === null) {

            $this->projectConfig   = new EmptyConfig();

            $this->dotExakatConfig = new DotExakatConfig();
            if (($file = $this->dotExakatConfig->loadConfig(null)) === Configsource::NOT_LOADED) {
                $this->dotExakatYamlConfig = new DotExakatYamlConfig();
                $file = $this->dotExakatYamlConfig->loadConfig(null);
                if ($file !== Configsource::NOT_LOADED) {
                    $this->configFiles[] = $file;
                }
            } else {
                $this->configFiles[] = $file;
                $this->dotExakatYamlConfig = new EmptyConfig();
            }

            $this->projectConfig = new EmptyConfig();
        } else {
            $this->projectConfig = new ProjectConfig($this->projects_root);
            if ($file = $this->projectConfig->loadConfig($this->commandLineConfig->get('project'))) {
                $this->configFiles[] = $file;
            }

            $this->dotExakatConfig     = new EmptyConfig();
            $this->dotExakatYamlConfig = new EmptyConfig();
        }

        // build the actual config. Project overwrite commandline overwrites config, if any.
        $this->options = array_merge($this->defaultConfig->toArray(),
                                     $this->exakatConfig->toArray(),
                                     $this->envConfig->toArray(),
                                     $this->projectConfig->toArray(),
                                     $this->dotExakatConfig->toArray(),
                                     $this->dotExakatYamlConfig->toArray(),
                                     $this->commandLineConfig->toArray()
                                     );
        unset($this->options['project_themes']);
        $this->options['configFiles'] = $this->configFiles;

        if ($this->options['debug'] === true) {
            display("Debug mode\n");
            assert_options(ASSERT_ACTIVE, 1);
            assert_options(ASSERT_BAIL, 1);

            error_reporting(E_ALL);
            ini_set('display_errors', "1");
        }

        //program has precedence over rulesets
        if (isset($this->commandLineConfig->toArray()['program'])) {
            $this->options['project_rulesets'] = array();
        }

        $remote = new RemoteConfig($this->projects_root);
        if ($file = $remote->loadConfig($this->commandLineConfig->get('project'))) {
            $this->configFiles[] = $file;
            $this->remotes = $remote->toArray();
        }

        $rulesets = new RulesetConfig($this->dir_root);
        if ($file = $rulesets->loadConfig($this->commandLineConfig->get('project'))) {
            $this->configFiles[] = $file;
            $this->rulesets = $rulesets->toArray();
        }

        // Local configuration replaces server configuration
        if ($this->dotExakatYamlConfig instanceof DotExakatYamlConfig) {
            $this->rulesets = array_merge($this->rulesets, $this->dotExakatYamlConfig->getRulesets());
        }

        if ($this->options['command'] !== 'doctor') {
            $this->checkSelf();
        }

        $this->config['stubs'] = array_unique(array_merge($this->projectConfig->toArray()['stubs']        ?? array(),
                                                          $this->exakatConfig->toArray()['stubs']         ?? array(),
                                                          $this->dotExakatYamlConfig->toArray()['stubs']  ?? array()
                                            ));

        // autoload dev
        $this->dev = new AutoloadDev($this->extension_dev);
        $this->dev->registerAutoload();

        // autoload extensions
        $this->ext = new AutoloadExt($this->ext_root);
        $this->ext->registerAutoload();

        $this->finishConfigs();
    }

    private function finishConfigs(): void {
        $this->options['pid'] = getmypid();

        if ($this->options['inside_code'] === self::INSIDE_CODE) {
            $this->options['project_dir']   = getcwd();
            $this->options['code_dir']      = getcwd();
            $this->options['log_dir']       = getcwd() . '/.exakat';
            $this->options['tmp_dir']       = getcwd() . '/.exakat';
            $this->options['datastore']     = getcwd() . '/.exakat/datastore.sqlite';
            $this->options['dump']          = getcwd() . '/.exakat/dump.sqlite';
            $this->options['dump_tmp']      = getcwd() . '/.exakat/.dump.sqlite';
            $this->options['dump_previous'] = 'none';
        } else {
            $this->options['project_dir']   = $this->projects_root . '/projects/' . ($this->options['project'] ?? '');
            $this->options['code_dir']      = $this->options['project_dir'] . '/code';
            $this->options['log_dir']       = $this->options['project_dir'] . '/log';
            $this->options['tmp_dir']       = $this->options['project_dir'] . '/.exakat';
            $this->options['datastore']     = $this->options['project_dir'] . '/datastore.sqlite';
            $this->options['dump']          = $this->options['project_dir'] . '/dump.sqlite';
            $this->options['dump_tmp']      = $this->options['project_dir'] . '/.dump.sqlite';
        }
    }

    public function __isset($name): bool {
        return isset($this->options[$name]);
    }

    public function __get($name) {
        if ($name === 'configFiles') {
            $return = $this->configFiles;
        } elseif ($name === 'remotes') {
            $return = $this->remotes;
        } elseif ($name === 'rulesets') {
            $return = $this->rulesets;
        } elseif ($name === 'themas') {
            $return = $this->rulesets;
        } elseif (isset($this->options[$name])) {
            $return = $this->options[$name];
        } elseif ($name === 'screen_cols') {
            $return = $this->screen_cols;
        } else {
            $return = null;
        }

        return $return;
    }

    public function __set($name, $value) {
        display("It is not possible to modify configuration $name with value '" . var_export($value, true) . "'\n");
    }

    private function checkSelf(): void {
        if (version_compare(PHP_VERSION, '7.0.0') < 0) {
            throw new InaptPHPBinary('PHP needs to be version 7.0.0 or more to run exakat.(' . PHP_VERSION . ' provided)');
        }
        $extensions = array('curl', 'mbstring', 'sqlite3', 'hash', 'json');

        $missing = array();
        foreach($extensions as $extension) {
            if (!extension_loaded($extension)) {
                $missing[] = $extension;
            }
        }

        if (!empty($missing)) {
           throw new InaptPHPBinary('PHP needs ' . (count($missing) == 1 ? 'one' : count($missing)) . ' extension' . (count($missing) > 1 ? 's' : '') . ' with the current version : ' . implode(', ', $missing));
        }
    }

    public function commandLineJson(): string {
        $return = $this->argv;

        $id = array_search('-remote', $return);
        unset($return[$id]);
        unset($return[$id + 1]);
        unset($return[0]);
        return json_encode(array_values($return));
    }

    public function duplicate($options): self {
        $return = clone $this;

        // Only update existing values : ignoring the rest
        foreach($options as $key => $value) {
            if (isset($return->options[$key])) {
                $return->options[$key] = $value;
                continue;
            }

            if (isset($this->$key)) {
                $return->rulesets = makeArray($value);
            }
        }

        return $return;
    }
}

?><?php
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Extensions;

abstract class Extension {
    const VERSION_ALL     = 'none';
    
    const NO_DEPENDENCIES = array();
    
    public function __construct() {}

    public function dependsOnExtensions() : array {
        return array();
    }

    public function dependsOnExakat() : string {
        return self::VERSION_ALL;
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat;


class Stats {
    private $stats       = array();
    private $file_filter = '';
    private $gremlin     = null;

    public function __construct() {
        $this->gremlin = exakat('graphdb');
    }

    public function toArray() {
        return $this->stats;
    }

    public function setFileFilter($file) {
        $this->file_filter = ".has('file', '$file')";

        return true;
    }

    public function __get($name) {
        if (isset($this->stats[$name])) {
            return $this->stats[$name];
        } else {
            return null;
        }
    }

    public function collect() {
        $this->stats['tokens_count']        = $this->gremlin->queryOne('g.V().has(id, neq(0))' . $this->file_filter . '.count()');//'.has("atom",not(within("Index")))
        $this->stats['relations_count']     = $this->gremlin->queryOne('g.E().has(id, neq(0))' . $this->file_filter . '.count()');
        $this->stats['atoms_count']         = $this->gremlin->queryOne('g.V().label().unique()' . $this->file_filter . '.size()');
        $this->stats['LINK_count']          = $this->gremlin->queryOne('g.E().label().unique()' . $this->file_filter . '.size()');
        $this->stats['file_count']          = $this->gremlin->queryOne('g.V().inE("FILE").count(); ');
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat;

class Project {
    public const IS_DEFAULT = '/unnamed/';

    private $project  = self::IS_DEFAULT;
    private $error    = '';

    public function __construct(string $project = self::IS_DEFAULT) {
        $this->project = $project;
    }

    public function validate() {
        if ($this->project === self::IS_DEFAULT) {
            return true;
        }

        if (strpos($this->project, DIRECTORY_SEPARATOR) !== false) {
            $this->error = 'Project name can\'t use ' . DIRECTORY_SEPARATOR;
            return false;
        }

        if (in_array(mb_strtolower($this->project), array('onepage', '.', '..', '...'))) {
            $this->error = 'Project name can\'t use reserved keyword ' . $this->project;
            return false;
        }

        if (preg_match_all('/[^\w_\.\-]/u', $this->project, $r)) {
            $this->error = 'Project name can\'t use those chars : "' . implode('", "', $r[0]) . '"';
            return false;
        }

        return true;
    }

    public function __toString() {
        return $this->project;
    }

    public function getError() {
        return $this->error;
    }

    public function isDefault() {
        return $this->project === self::IS_DEFAULT;
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Vcs;

use Exakat\Exceptions\HelperException;

class Mercurial extends Vcs {
    private $executable = 'hg';

    protected function selfCheck() {
        $res = shell_exec("{$this->executable} --version 2>&1");
        if (strpos($res, 'Mercurial') === false) {
            throw new HelperException('Mercurial');
        }
    }

    public function clone(string $source): void {
        $this->check();

        $sourceArg = escapeshellarg($source);
        shell_exec("cd {$this->destinationFull}; {$this->executable} clone $sourceArg code");
    }

    public function update() {
        $this->check();

        $res = shell_exec("cd {$this->destinationFull}; {$this->executable} pull 2>&1; {$this->executable} update; {$this->executable} log -l 1");
        preg_match('/changeset:\s+(\S+)/', $res, $changeset);
        preg_match("/date:\s+([^\n]+)/", $res, $date);

        return "$changeset[1] ($date[1])";
    }

    public function getInstallationInfo() {
        $stats = array();

        $res = trim(shell_exec('hg --version 2>&1'));
        if (preg_match('/Mercurial Distributed SCM \(version ([0-9\.]+)\)/', $res, $r)) {//
            $stats['installed'] = 'Yes';
            $stats['version'] = $r[1];
        } else {
            $stats['installed'] = 'No';
            $stats['optional'] = 'Yes';
        }

        return $stats;
    }

    public function getBranch() {
        $res = shell_exec("cd {$this->destinationFull}; {$this->executable} summary 2>&1 | grep branch");
        return trim(substr($res, 8), " *\n");
    }

    public function getRevision() {
        $res = shell_exec("cd {$this->destinationFull}; {$this->executable} summary 2>&1 | grep parent");
        return trim(substr($res, 8), " *\n");
    }

    public function getStatus() {
        $status = array('vcs'       => 'hg',
                        'branch'    => $this->getBranch(),
                        'revision'  => $this->getRevision(),
                        'updatable' => true
                       );

        return $status;
    }

    public function getDiffLines($r1, $r2) {
        display("No support for line diff in Hg.\n");
        return array();
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Vcs;

use Exakat\Exceptions\HelperException;

class Bazaar extends Vcs {
    private $executable = 'bzr';

    public function __construct($destination, $project_root) {
        parent::__construct($destination, $project_root);
    }

    protected function selfCheck() {
        $res = shell_exec("{$this->executable} --version 2>&1");
        if (strpos($res, 'Bazaar') === false) {
            throw new HelperException('Bazar');
        }
    }

    public function clone(string $source): void {
        $this->check();

        $source = escapeshellarg($source);
        shell_exec("cd {$this->destinationFull}; {$this->executable} branch $source code") ?? '';
    }

    public function update() {
        $this->check();

        $res = shell_exec("cd {$this->destinationFull}; {$this->executable} update 2>&1") ?? '';
        if (preg_match('/revision (\d+)/', $res, $r)) {
            return $r[1];
        } else {
            return '';
        }
    }

    public function getBranch() {
        $this->check();

        $res = shell_exec("cd {$this->destinationFull}; {$this->executable} version-info 2>&1 | grep branch-nick") ?? '';
        return trim(substr($res, 13), " *\n");
    }

    public function getRevision() {
        $this->check();

        $res = shell_exec("cd {$this->destinationFull}; {$this->executable} version-info 2>&1 | grep revno") ?? '';
        return trim(substr($res, 7), " *\n");
    }

    public function getInstallationInfo() {
        $stats = array();

        $res = trim(shell_exec("{$this->executable} --version 2>&1"));
        if (preg_match('/Bazaar \(bzr\) ([0-9\.]+) /', $res, $r)) {//
            $stats['installed'] = 'Yes';
            $stats['version'] = $r[1];
        } else {
            $stats['installed'] = 'No';
            $stats['optional'] = 'Yes';
        }

        return $stats;
    }

    public function getStatus() {
        $status = array('vcs'       => 'bzr',
                        'branch'    => $this->getBranch(),
                        'revision'  => $this->getRevision(),
                        'updatable' => true,
                       );

        return $status;
    }

    public function getDiffLines($r1, $r2) {
        display("No support yet for line diff in Bazaar.\n");
        return array();
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Vcs;

use Exakat\Exceptions\HelperException;
use Exakat\Exceptions\VcsError;

class Git extends Vcs {
    private $installed  = false;
    private $version    = 'unknown';
    private $executable = 'git';

    protected function selfCheck(): void {
        $res = shell_exec("{$this->executable} --version 2>&1");
        if (strpos($res, 'git') === false) {
            throw new HelperException('git');
        }

        if (preg_match('/git version ([0-9\.]+)/', trim($res), $r)) {
            $this->installed = true;
            $this->version   = $r[1];
        } else {
            $this->installed = false;
        }
    }

    public function clone(string $source): void {
        $this->check();
        $repositoryDetails = parse_url($source);

        if (isset($repositoryDetails['user'])) {
            $repositoryDetails['user'] = urlencode($repositoryDetails['user']);
        } else {
            $repositoryDetails['user'] = '';
        }
        if (isset($repositoryDetails['pass'])) {
            $repositoryDetails['pass'] = urlencode($repositoryDetails['pass']);
        } else {
            $repositoryDetails['pass'] = '';
        }

        unset($repositoryDetails['query']);
        unset($repositoryDetails['fragment']);
        $repositoryNormalizedURL = unparse_url($repositoryDetails);

        $codePath = dirname($this->destinationFull);
        $shell = "cd $codePath;GIT_TERMINAL_PROMPT=0 {$this->executable} clone -q ";

        if (!empty($this->branch)) {
            display("Check out with branch '$this->branch'");
            $shell .= " -b $this->branch ";
        } elseif (!empty($this->tag)) {
            display("Check out with tag '$this->tag'");
            $shell .= " -b $this->tag ";
        } else {
            display('Check out with default branch');
        }

        $shell .= $repositoryNormalizedURL . ' code 2>&1 ';
        $shellResult = shell_exec($shell) ?? '';

        if (($offset = strpos($shellResult, 'fatal: ')) !== false) {
            $errorMessage = str_replace($repositoryNormalizedURL, $source, $shellResult);
            $errorMessage = trim(substr($shellResult, $offset + 7));

            throw new VcsError('Git', $errorMessage);
        }
    }

    public function update(): string {
        $this->check();

        if (!file_exists($this->destinationFull . '/.git')) {
            display("This doesn't seem to be a git repository. Aborting\n");

            return self::NO_UPDATE;
        }

        $res = shell_exec("cd {$this->destinationFull}/; {$this->executable} branch | grep \\* 2>&1") ?? '';
        $branch = substr(trim($res), 2);

        if (strpos($branch, ' detached at ') === false) {
            $resInitial = shell_exec("cd {$this->destinationFull}/; {$this->executable} show-ref --heads $branch");
        } else {
            $resInitial = shell_exec("cd {$this->destinationFull}/; {$this->executable} checkout --quiet; {$this->executable} pull; {$this->executable} branch | grep '* '");
            $branch = '';
        }

        trim(shell_exec("cd {$this->destinationFull}/;GIT_TERMINAL_PROMPT=0  {$this->executable} checkout $branch --quiet; {$this->executable} pull --quiet") ?? '');
        $resFinal = shell_exec("cd {$this->destinationFull}/; {$this->executable} show-ref --heads $branch");
        if (strpos($resFinal, ' ') !== false) {
            list($resFinal, ) = explode(' ', $resFinal);
        }

        return $resFinal;
    }

    public function setBranch(string $branch = ''): void {
        $this->branch = $branch;
    }

    public function setTag(string $tag = ''): void {
        $this->tag = $tag;
    }

    public function getBranch() {
        if (!file_exists("{$this->destinationFull}/")) {
            return '';
        }
        $res = shell_exec("cd {$this->destinationFull}; {$this->executable} branch | grep \* 2>&1");
        return trim($res, " *\n");
    }

    public function getRevision() {
        if (!file_exists($this->destinationFull)) {
            return '';
        }
        $res = shell_exec("cd {$this->destinationFull}; {$this->executable} rev-parse HEAD 2>&1");
        return trim($res);
    }

    public function getInstallationInfo() {
        $stats = array('installed' => $this->installed === true ? 'Yes' : 'No',
                      );

        if ($this->installed === true) {
            $stats['version'] = $this->version;
            if (version_compare($this->version, '2.3') < 0) {
                $stats['version 2.3'] = 'It is recommended to use git version 2.3 or more recent (' . $this->version . ' detected), for security reasons and the support of GIT_TERMINAL_PROMPT';
            }
        } else {
            $stats['optional'] = 'Yes';
        }

        return $stats;
    }

    public function getStatus() {
        $status = array('vcs'       => 'git',
                        'branch'    => $this->getBranch(),
                        'revision'  => $this->getRevision(),
                        'updatable' => true,
                       );

        return $status;
    }

    public function getDiffLines($r1, $r2) {
        $res = shell_exec("cd {$this->destinationFull}; {$this->executable} diff -U0 -r $r1 -r $r2");

        $file    = '';
        $changes = array();

        $lines = explode(PHP_EOL, $res);
        foreach ($lines as $line) {
            if (preg_match('#diff --git a(/.*?) b(/.*)#', $line, $r)) {
                $file = $r[1];
                continue;
            }

            if (preg_match('#@@ \-(\d+)(,(\d+))? \+(\d+)(,(\d+))?( )@@#', $line, $r, PREG_UNMATCHED_AS_NULL)) {
                $c = ($r[6] ?? 1) - ($r[3] ?? 1);
                if ($c !== 0) {
                    $changes[] = array('file' => $file,
                                       'line' => $r[1],
                                       'diff' => $c,
                                       );
                }
            }
        }

        return $changes;
    }

    public function getFileModificationLoad(): array {
        $res = shell_exec("cd {$this->destinationFull}; {$this->executable} log --name-only --pretty=format:");

        $files = array();
        $rows = explode(PHP_EOL, $res);
        foreach ($rows as $row) {
            if (empty($row)) {
                continue;
            }
            if (isset($files[$row])) {
                ++$files[$row];
            } else {
                $files[$row] = 1 ;
            }
        }

        return $files;
    }

    public function getDiffFile(string $next): string {
        // Added and removed ?
         $res = shell_exec("cd {$this->destinationFull}; {$this->executable} diff --diff-filter=a --name-only $next -- . ");

        if ($res === null) {
            return array();
        }

        $return = explode("\n", trim($res));
        $return = array_map(function ($x) { return "/$x"; }, $return);

         return $return;
    }

    public function checkOut($next) {
        //--diff-filter=[(A|C|D|M|R|T|U|X|B)…​[*]]
        // Some situations are not supported yet.
        // We keep Added, Modified. Deleted are ignored, as non-treatable.
        $res = shell_exec("cd {$this->destinationFull}; {$this->executable} diff --diff-filter=d --name-only $next -- . ");

        // No chane, may be, but we still need to update the code
        shell_exec("cd {$this->destinationFull}; {$this->executable} checkout $next");

        if ($res === null) {
            return array();
        }

        $return = explode("\n", trim($res));
        $return = array_map(function ($x) { return "/$x"; }, $return);

        return $return;
    }

}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Vcs;

use Exakat\Exceptions\HelperException;

class Svn extends Vcs {
    private $info = array();
    private $executable = 'svn';

    public function __construct($destination, $project_root) {
        parent::__construct($destination, $project_root);
    }

    protected function selfCheck() {
        $res = shell_exec("{$this->executable} --version 2>&1");
        if (strpos($res, 'svn') === false) {
            throw new HelperException('SVN');
        }
    }

    public function clone(string $source): void {
        $this->check();

        $source = escapeshellarg($source);
        $codePath = dirname($this->destinationFull);
        shell_exec("cd {$codePath}; {$this->executable} checkout --quiet $source code");
    }

    public function update() {
        $this->check();

        $res = shell_exec("cd {$this->destinationFull}; {$this->executable} update") ?? '';
        if (preg_match('/Updated to revision (\d+)\./', $res, $r)) {
            return $r[1];
        }

        if (preg_match('/At revision (\d+)/', $res, $r)) {
            return $r[1];
        }

        return 'Error : ' . $res;
    }

    private function getInfo() {
        $res = trim(shell_exec("cd {$this->destinationFull}; {$this->executable} info") ?? '');

        if (empty($res)) {
            $this->info['svn'] = '';

            return;
        }
        foreach (explode("\n", $res) as $info) {
            list($name, $value) = explode(': ', trim($info));
            $this->info[$name] = $value;
        }
    }

    public function getBranch() {
        if (empty($this->info)) {
            $this->getInfo();
        }

        return $this->info['Relative URL'] ?? 'trunk';
    }

    public function getRevision() {
        if (empty($this->info)) {
            $this->getInfo();
        }

        return $this->info['Revision'] ?? 'No Revision';
    }

    public function getInstallationInfo() {
        $stats = array();

        $res = trim(shell_exec("{$this->executable} --version 2>&1"));
        if (preg_match('/svn, version ([0-9\.]+) /', $res, $r)) {//
            $stats['installed'] = 'Yes';
            $stats['version'] = $r[1];
        } else {
            $stats['installed'] = 'No';
            $stats['optional'] = 'Yes';
        }

        return $stats;
    }

    public function getStatus() {
        $status = array('vcs'       => 'svn',
                        'revision'  => $this->getRevision(),
                        'updatable' => false
                       );

        return $status;
    }

    public function getDiffLines($r1, $r2) {
        display("No support for line diff in SVN.\n");
        return array();
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Vcs;

use Exakat\Exceptions\HelperException;

class Zip extends Vcs {
    private $executable = 'unzip';

    protected function selfCheck() {
        $res = shell_exec("{$this->executable} --version  2>&1") ?? '';
        if (strpos($res, 'Zip') === false) {
            throw new HelperException('zip');
        }

        if (ini_get('allow_url_fopen') != true) {
            throw new HelperException('allow_url_fopen');
        }
    }

    public function clone(string $source): void {
        $this->check();

        $binary = file_get_contents($source);
        $archiveFile = tempnam(sys_get_temp_dir(), 'archiveZip') . '.zip';
        file_put_contents($archiveFile, $binary);

        shell_exec("{$this->executable} $archiveFile -d {$this->destinationFull}");

        unlink($archiveFile);
    }

    public function getInstallationInfo() {
        $stats = array();

        $res = shell_exec("{$this->executable} -v  2>&1");
        if (stripos($res, 'not found') !== false) {
            $stats['installed'] = 'No';
        } elseif (preg_match('/Zip\s+([0-9\.]+)/is', $res, $r)) {
            $stats['installed'] = 'Yes';
            $stats['version'] = $r[1];
        } else {
            $stats['error'] = $res;
        }

        return $stats;
    }

    public function getStatus() {
        $status = array('vcs'       => 'zip',
                        'updatable' => false
                       );

        return $status;
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Vcs;

use Exakat\Exceptions\HelperException;

class SevenZ extends Vcs {
    private $executable = '7z';

    public function __construct($destination, $project_root) {
        parent::__construct($destination, $project_root);
    }

    protected function selfCheck() {
        $res = shell_exec("{$this->executable}  2>&1");
        if (strpos($res, '7-Zip') === false) {
            throw new HelperException('7z');
        }

        if (ini_get('allow_url_fopen') != true) {
            throw new HelperException('allow_url_fopen');
        }
    }

    public function clone(string $source): void {
        $this->check();

        $binary = file_get_contents($source);
        $archiveFile = tempnam(sys_get_temp_dir(), 'archive7Z') . '.7z';
        file_put_contents($archiveFile, $binary);

        shell_exec("{$this->executable} x $archiveFile -oc:{$this->destinationFull}");

        unlink($archiveFile);
    }

    public function getInstallationInfo() {
        $stats = array();

        $res = shell_exec("{$this->executable}  2>&1");
        if (stripos($res, 'not found') !== false) {
            $stats['installed'] = 'No';
        } elseif (preg_match('/p7zip Version ([0-9\.]+)/is', $res, $r)) {
            $stats['installed'] = 'Yes';
            $stats['version'] = $r[1];
        } else {
            $stats['error'] = $res;
        }

        return $stats;
    }

    public function getStatus() {
        $status = array('vcs'       => '7z',
                        'updatable' => false
                       );

        return $status;
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Vcs;

use Exakat\Exceptions\HelperException;

class Rar extends Vcs {
    private $executable = 'unrar';

    public function __construct($destination, $project_root) {
        parent::__construct($destination, $project_root);
    }

    protected function selfCheck() {
        $res = shell_exec("{$this->executable} 2>&1");
        if (strpos($res, 'UNRAR') === false) {
            throw new HelperException('rar');
        }

        if (ini_get('allow_url_fopen') != true) {
            throw new HelperException('allow_url_fopen');
        }
    }

    public function clone(string $source): void {
        $this->check();

        $binary = file_get_contents($source);
        $archiveFile = tempnam(sys_get_temp_dir(), 'archiveRar') . '.rar';
        file_put_contents($archiveFile, $binary);

        shell_exec("{$this->executable} x $archiveFile {$this->destinationFull}");

        unlink($archiveFile);
    }

    public function getInstallationInfo() {
        $stats = array();

        $res = shell_exec("{$this->executable} 2>&1");
        if (stripos($res, 'not found') !== false) {
            $stats['installed'] = 'No';
        } elseif (preg_match('/UNRAR\s+([0-9\.]+)/is', $res, $r)) {
            $stats['installed'] = 'Yes';
            $stats['version'] = $r[1];
        } else {
            $stats['error'] = $res;
        }

        return $stats;
    }

    public function getStatus() {
        $status = array('vcs'       => 'rar',
                        'updatable' => false
                       );

        return $status;
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Vcs;

use Exakat\Exceptions\NoSuchDir;

class Symlink extends Vcs {
    public function clone(string $source): void {
        $source = realpath($source);

        if (empty($source)) {
            throw new NoSuchDir();
        }

        symlink($source, $this->destinationFull);
    }

    public function getStatus() {
        $status = array('vcs'       => 'symlink',
                        'updatable' => false
                       );

        return $status;
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Vcs;

use Exakat\Exceptions\HelperException;

class Cvs extends Vcs {
    private $info = array();
    private $executable = 'cvs';

    protected function selfCheck() {
        $res = shell_exec("{$this->executable} --version 2>&1");
        if (strpos($res, 'CVS') === false) {
            throw new HelperException('Cvs');
        }
    }

    public function clone(string $source): void {
        $this->check();

        $source = escapeshellarg($source);
        shell_exec("cd {$this->destinationFull}; {$this->executable} checkout --quiet $source code");
    }

    public function update() {
        $this->check();

        $res = shell_exec("cd {$this->destinationFull}; {$this->executable} update");
        if (preg_match('/Updated to revision (\d+)\./', $res, $r)) {
            return $r[1];
        }

        return 'CSV updated to last revision';
    }

    private function getInfo() {
        $res = trim(shell_exec("cd {$this->destinationFull}; {$this->executable} info"));

        if (empty($res)) {
            $this->info['cvs'] = '';

            return;
        }
        foreach (explode("\n", $res) as $info) {
            list($name, $value) = explode(': ', trim($info));
            $this->info[$name] = $value;
        }
    }

    public function getBranch() {
        return 'No branch';
    }

    public function getRevision() {
        return 'No revision';
    }

    public function getInstallationInfo() {
        $stats = array();

        $res = trim(shell_exec("{$this->executable} --version 2>&1"));
        if (preg_match('/Concurrent Versions System \(CVS\) ([0-9\.]+) /', $res, $r)) {//
            $stats['installed'] = 'Yes';
            $stats['version'] = $r[1];
        } else {
            $stats['installed'] = 'No';
            $stats['optional'] = 'Yes';
        }

        return $stats;
    }

    public function getStatus() {
        $status = array('vcs'       => 'cvs',
                        'revision'  => $this->getRevision(),
                        'updatable' => false
                       );

        return $status;
    }

    public function getDiffLines($r1, $r2) {
        display("No support for line diff in CVS.\n");
        return array();
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Vcs;

use Exakat\Exceptions\HelperException;

class Tarbz extends Vcs {
    private $executableTar   = 'tar';
    private $executableBzip2 = 'bzip2';

    protected function selfCheck() {
        $res = shell_exec("{$this->executableTar} --version 2>&1") ?? '';
        if (!preg_match('#\d+\.\d+(\.\d+)?#s', $res)) {
            throw new HelperException('Tar');
        }

        $res = shell_exec("{$this->executableBzip2} --help 2>&1") ?? '';
        if (strpos($res, 'bzip2') === false) {
            throw new HelperException('bzip2');
        }

        if (ini_get('allow_url_fopen') != true) {
            throw new HelperException('allow_url_fopen');
        }
    }

    public function clone(string $source): void {
        $this->check();

        $binary = file_get_contents($source);
        $archiveFile = tempnam(sys_get_temp_dir(), 'archiveTgz') . '.tar.bz2';
        file_put_contents($archiveFile, $binary);

        $res = shell_exec("{$this->executableTar} -tjf $archiveFile 2>&1 >/dev/null");
        if (!empty($res)) {
            list($l, ) = explode("\n", $res);
            print "Error while loading tar.bz archive : \"$l\". Aborting\n";
            return;
        }

        shell_exec("mkdir {$this->destinationFull}; {$this->executableTar} -jxf $archiveFile --directory $this->destinationFull");

        unlink($archiveFile);
    }

    public function getInstallationInfo() {
        $stats = array();

        $res = trim(shell_exec("{$this->executableTar} --version 2>&1"));
        if (preg_match('/^(\w+) ([0-9\.]+) /', $res, $r)) {//
            $stats['tar'] = 'Yes';
            $stats['tar version'] = $r[0];
        } else {
            $stats['tar'] = 'No';
            $stats['tar optional'] = 'Yes';
        }

        $res = trim(shell_exec("{$this->executableBzip2} --help 2>&1"));
        if (preg_match('/Version ([0-9\.]+),/', $res, $r)) {//
            $stats['bzip2'] = 'Yes';
            $stats['bzip2 version'] = $r[1];
        } else {
            $stats['bzip2'] = 'No';
            $stats['bzip2 optional'] = 'Yes';
        }

        return $stats;
    }

    public function getStatus() {
        $status = array('vcs'       => 'tar.bz2',
                        'updatable' => false
                       );

        return $status;
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Vcs;

use Exakat\Exceptions\HelperException;

class Composer extends Vcs {
    private $executable = 'composer';

    public function __construct($destination, $project_root) {
        parent::__construct($destination, $project_root);
    }

    protected function selfCheck() {
        $res = shell_exec("{$this->executable} --version 2>&1");
        if (strpos($res, 'Composer') === false) {
            throw new HelperException('Composer');
        }
    }

    public function clone(string $source): void {
        $this->check();

        // composer install
        $composer = new \stdClass();
        $composer->{'minimum-stability'} = 'dev';
        $composer->require = new \stdClass();
        $composer->require->$source = 'dev-master';
        $json = json_encode($composer, JSON_PRETTY_PRINT);

        mkdir("{$this->destinationFull}", 0755);
        file_put_contents("{$this->destinationFull}/composer.json", $json);
        shell_exec("cd {$this->destinationFull}; {$this->executable} -q install");
    }

    public function update() {
        $this->check();

        shell_exec("cd {$this->destinationFull}; {$this->executable} -q update");

        $composerPath = "{$this->destinationFull}/composer.json";
        if (!file_exists($composerPath)) {
            return '';
        }

        $jsonText = file_get_contents($composerPath);
        if (empty($jsonText)) {
            return '';
        }
        $json = json_decode($jsonText);
        $component = array_keys( (array) $json->require)[0];

        $jsonLockText = file_get_contents("{$this->destinationFull}/composer.lock");
        if (empty($jsonLockText)) {
            return $jsonLockText;
        }
        $jsonLock = json_decode($jsonLockText);

        $return = '';
        foreach ($jsonLock->packages as $package) {
            if ($package->name === $component) {
                $return = "{$package->source->reference} (version : {$package->version})";
            }
        }

        return $return;
    }

    public function getInstallationInfo() {
        $stats = array();

        $res = trim(shell_exec("{$this->executable} -V 2>&1"));
        // remove colors from shell syntax
        $res = preg_replace('/\e\[[\d;]*m/', '', $res);
        if (preg_match('/Composer version ([0-9\.a-z@_\(\)\-]+) /', $res, $r)) {//
            $stats['installed'] = 'Yes';
            $stats['version'] = $r[1];
        } else {
            $stats['installed'] = 'No';
        }

        return $stats;
    }

    public function getStatus() {
        $composerLockPath = "{$this->destinationFull}/composer.lock";
        if (!file_exists($composerLockPath)) {
            $status = array( 'vcs'       => 'composer',
                             'updatable' => true,
                             'hash'      => 'No composer.lock',
                             );

            return $status;
        }

        $status = array( 'vcs'       => 'composer',
                         'updatable' => true,
                         );
        $composerLock = file_get_contents($composerLockPath);

        $json = json_decode($composerLock);
        if (isset($json->hash)) {
            $status['hash'] = $json->hash;
        } else {
            $status['hash'] = 'Can\'t read hash';
        }

        return $status;
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Vcs;

use Exakat\Config;

abstract class Vcs {
    const SUPPORTED_VCS = array('git', 'svn', 'cvs', 'bzr', 'hg',
                                'composer',
                                'tgz', 'tbz', 'zip', 'rar', 'sevenz',
                                'none', 'symlink', 'copy');

    protected $destination     = '';
    protected $destinationFull = '';

    protected $branch = '';
    protected $tag    = '';

    protected $checked = false;

    const NO_UPDATE = 'No update';

    public function __construct($destination, $code_dir) {
        $this->destination     = $destination;
        $this->destinationFull = $code_dir;
    }

    abstract public function clone(string $source): void;

    public function getDiffLines($r1, $r2) {
        return array();
    }

    public function getName() {
        $path = explode('\\', static::class);
        return strtolower(array_pop($path));
    }

    protected function check() {
        if ($this->checked === true) {
            return true;
        }

        $this->selfCheck();
        $this->checked = true;

        return true;
    }

    protected function selfCheck() {
    }

    public function getLineChanges() {
        return array();
    }

    public function update() {
        return self::NO_UPDATE;
    }

    public static function getVcs(Config $config) {
        if ($config->svn === true) {
            return Svn::class;
        } elseif ($config->hg === true) {
            return Mercurial::class;
        } elseif ($config->bzr === true) {
            return Bazaar::class;
        } elseif ($config->composer === true) {
            return Composer::class;
        } elseif ($config->symlink === true) {
            return Symlink::class;
        } elseif ($config->tbz === true) {
            return Tarbz::class;
        } elseif ($config->tgz === true) {
            return Targz::class;
        } elseif ($config->zip === true) {
            return Zip::class;
        } elseif ($config->copy === true) {
            return Copy::class;
        } elseif ($config->rar === true) {
            return Rar::class;
        } elseif ($config->sevenz === true) {
            return SevenZ::class;
        } elseif ($config->cvs === true) {
            return Cvs::class;
        } elseif ($config->none === true) {
            return None::class;
        } elseif ($config->git === true) {
            return Git::class;
        } else {
            return None::class;
        }
    }

    public function getStatus() {
        $status = array('updatable' => false,
                       );

        return $status;
    }

    public function setBranch(string $branch = ''): void {
        $this->branch = $branch;
    }

    public function setTag(string $tag = ''): void {
        $this->tag = $tag;
    }

    public function getFileModificationLoad(): array {
        return array();
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Vcs;

class None extends Vcs {
    public function clone(string $source): void { }

    public function getStatus() {
        $status = array('vcs'       => 'none',
                        'updatable' => false
                       );

        return $status;
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Vcs;

use Exakat\Exceptions\HelperException;

class Targz extends Vcs {
    protected function selfCheck() {
        $res = shell_exec('tar --version 2>&1') ?? '';
        if (!preg_match('#\d+\.\d+(\.\d+)?#s', $res)) {
            throw new HelperException('Tar');
        }

        $res = shell_exec('gzip -V 2>&1') ?? '';
        if (strpos($res, 'gzip') === false) {
            throw new HelperException('gzip');
        }

        if (ini_get('allow_url_fopen') != true) {
            throw new HelperException('allow_url_fopen');
        }
    }

    public function clone(string $source): void {
        $this->check();

        $binary = file_get_contents($source);
        $archiveFile = tempnam(sys_get_temp_dir(), 'archiveTgz') . '.tar.gz';
        file_put_contents($archiveFile, $binary);

        $res = shell_exec("tar -tzf $archiveFile 2>&1 >/dev/null");
        if (!empty($res)) {
            list($l, ) = explode("\n", $res);
            print "Error while loading tar.gz archive : \"$l\". Aborting\n";
            return;
        }

        shell_exec("mkdir {$this->destinationFull}; tar -zxf $archiveFile -C {$this->destinationFull}");

        unlink($archiveFile);
    }

    public function getInstallationInfo() {
        $stats = array();

        $res = trim(shell_exec('tar --version 2>&1') ?? '');
        if (preg_match('/^(\w+) ([0-9\.]+) /', $res, $r)) {//
            $stats['tar'] = 'Yes';
            $stats['tar version'] = $r[0];
        } else {
            $stats['tar'] = 'No';
            $stats['tar optional'] = 'Yes';
        }

        $res = trim(shell_exec('gzip -V 2>&1') ?? '');
        if (preg_match('/gzip (\d+),/', $res, $r)) {//
            $stats['gzip'] = 'Yes';
            $stats['gzip version'] = $r[1];
        } else {
            $stats['gzip'] = 'No';
            $stats['gzip optional'] = 'Yes';
        }

        return $stats;
    }

    public function getStatus() {
        $status = array('vcs'       => 'tar.gz',
                        'updatable' => false
                       );

        return $status;
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Vcs;

use Exakat\Exceptions\NoSuchDir;

class Copy extends Vcs {
    public function clone(string $source): void {
        $source = realpath($source);
        if (empty($source)) {
            throw new NoSuchDir();
        }

        copyDir($source, $this->destinationFull);
    }

    public function getStatus() {
        $status = array('vcs'       => 'copy',
                        'revision'  => 'N/A',
                        'updatable' => false,
                       );

        return $status;
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Loader;

use Exakat\Tasks\Helpers\Atom;

abstract class Loader {
    abstract public function __construct(\Sqlite3 $sqlite3, Atom $id0) ;

    public function finalize(array $relicat): bool {}

    public function saveFiles(string $exakatDir, array $atoms, array $links): void {}
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Loader;

use Exakat\Tasks\Helpers\Atom;

class Collector extends Loader {
    private $cit        = array();
    private $functions  = array();
    private $constants  = array();

    private $datastore  = null;

    public function __construct(\Sqlite3 $sqlite3, Atom $id0) {
        $this->datastore = exakat('datastore');
    }

    public function finalize(array $relicat): bool {
        $this->datastore->addRow('ignoredCit',       $this->cit);
        $this->datastore->addRow('ignoredFunctions', $this->functions);
        $this->datastore->addRow('ignoredConstants', $this->constants);

        return true;
    }

    public function saveFiles(string $exakatDir, array $atoms, array $links): void {
        $isDefine = false;

        $lastConst = array();
        foreach($atoms as $atom) {
            if (in_array($atom->atom, array('Class', 'Interface', 'Trait'))) {
                $this->cit[] = array('name'        => $atom->fullcode,
                                     'fullnspath'  => $atom->fullnspath,
                                     'fullcode'    => $atom->fullcode,
                                     'type'        => strtolower($atom->atom),
                              );
                continue;
            }

            if (in_array($atom->atom, array('Function'))) {
                $this->functions[] = array('name'        => $atom->fullcode,
                                           'fullnspath'  => $atom->fullnspath,
                                           'fullcode'    => $atom->fullcode
                              );
                continue;
            }

            if (in_array($atom->atom, array('Identifier'))) {
                if ($isDefine === true) {
                    $this->constants[] = array('name'        => $atom->fullcode,
                                               'fullnspath'  => $atom->fullnspath,
                                               'fullcode'    => $atom->fullcode,
                                               'value'       => strtolower($atom->atom),
                                          );
                    $isDefine = false;
                } else {
                    $lastConst = array('name'        => $atom->fullcode,
                                       'fullnspath'  => $atom->fullnspath,
                                       'fullcode'    => $atom->fullcode,
                                       'value'       => strtolower($atom->atom),
                                  );
                }
                continue;
            }

            if (in_array($atom->atom, array('Constant'))) {
                if (!empty($lastConst)) {
                    $this->constants[] = $lastConst;
                }
                $lastConst = array();
                continue;
            }

            if (in_array($atom->atom, array('Defineconstant'))) {
                $isDefine = true;
            }
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Loader;

use Exakat\Data\Collector;
use Exakat\Tasks\Helpers\Atom;
use stdClass;

class SplitGraphson extends Loader {
    private const CSV_SEPARATOR = ',';
    private const LOAD_CHUNK      = 10000;
    private $load_chunk = 20000;
    private const LOAD_CHUNK_LINK = 20000;

    private $tokenCounts   = array('Project' => 1);
    private $functioncalls = array();

    private $config = null;

    private $id        = 1;

    private $graphdb        = null;
    private $path           = '';
    private $pathLink       = '';
    private $pathProperties = '';
    private $pathDef        = '';
    private $total          = 0;

    private $dictCode = null;

    private $datastore = null;
    private $sqlite3   = null;

    private $log = null;

    public function __construct(\Sqlite3 $sqlite3, Atom $id0) {
        $this->config         = exakat('config');
        $this->graphdb        = exakat('graphdb');

        $this->sqlite3        = $sqlite3;
        $this->path           = "{$this->config->tmp_dir}/graphdb.graphson";
        $this->pathLink       = "{$this->config->tmp_dir}/graphdb.link.graphson";
        $this->pathProperties = "{$this->config->tmp_dir}/graphdb.properties.graphson";
        $this->pathDef        = "{$this->config->tmp_dir}/graphdb.def";

        $this->dictCode  = new Collector();
        $this->datastore = exakat('datastore');

        $this->log = fopen($this->config->log_dir . '/loader.timing.csv', 'w+');

        $this->cleanCsv();

        $jsonText = json_encode($id0->toGraphsonLine($this->id)) . PHP_EOL;
        assert(!json_last_error(), 'Error encoding ' . $id0->atom . ' : ' . json_last_error_msg());

        file_put_contents($this->path, $jsonText, \FILE_APPEND);

        ++$this->total;
    }

    public function __destruct() {
        $this->cleanCsv();
    }

    public function finalize(array $relicat): bool {
        if ($this->total !== 0) {
            $this->saveNodes();
        }

        display("Init finalize\n");
        
        $this->saveProperties();
        
        $begin = microtime(true);
        $query = 'g.V().hasLabel("Project").id();';
        $res = $this->graphdb->query($query);
        $project_id = $res->toInt();

        $query = 'g.V().hasLabel("File").not(where( __.in("PROJECT"))).addE("PROJECT").from(__.V(' . $project_id . '));';
        $this->graphdb->query($query);

        $query = 'g.V().hasLabel("Virtualglobal").not(where( __.in("GLOBAL"))).addE("GLOBAL").from(__.V(' . $project_id . '));';
        $this->graphdb->query($query);

        $f = fopen('php://memory', 'r+');
        $total = 0;
        $chunk = 0;

        foreach($relicat as $row) {
            fputcsv($f, $row);
            ++$total;
            ++$chunk;
        }
        if ($chunk > $this->load_chunk) {
            $f = $this->saveLinks($f);
            $chunk = 0;
            $this->load_chunk = self::LOAD_CHUNK / 100 * rand(1, 100);
        }

        $res = $this->sqlite3->query('SELECT origin, destination FROM globals');
        while($row = $res->fetchArray(\SQLITE3_NUM)) {
            $row = array_map(array($this->graphdb, 'fixId'), $row);
            fputcsv($f, $row);
            ++$total;
            ++$chunk;
        }
        unset($res);
        if ($chunk > $this->load_chunk) {
            $f = $this->saveLinks($f);
            $chunk = 0;
            $this->load_chunk = self::LOAD_CHUNK / 100 * rand(1, 100);
        }

        $definitionSQL = <<<'SQL'
SELECT DISTINCT CASE WHEN definitions.id IS NULL THEN definitions2.id ELSE definitions.id END AS definition, GROUP_CONCAT(DISTINCT calls.id) AS call, count(calls.id) AS id
FROM calls
LEFT JOIN definitions 
    ON definitions.type       = calls.type       AND
       definitions.fullnspath = calls.fullnspath
LEFT JOIN definitions definitions2
    ON definitions2.type       = calls.type       AND
       definitions2.fullnspath = calls.globalpath 
WHERE (definitions.id IS NOT NULL OR definitions2.id IS NOT NULL)
GROUP BY definition
SQL;
        $res = $this->sqlite3->query($definitionSQL);
        // Fast dump, with a write to memory first
        while($row = $res->fetchArray(\SQLITE3_NUM)) {
            // Skip reflexive definitions, which never exist.
            if ($row[0] === $row[1]) { continue; }
            $total += $row[2];
            $chunk += $row[2];
            unset($row[2]);
            $row[0] = $this->graphdb->fixId($row[0]);
            $r = explode(',', $row[1]);
            $r = array_map(array($this->graphdb, 'fixId'), $r);
            $row[1] = implode('-', $r);
            fputcsv($f, $row);

            if ($chunk > $this->load_chunk) {
                $f = $this->saveLinks($f);
                $chunk = 0;
                $this->load_chunk = self::LOAD_CHUNK / 100 * rand(1, 100);
            }
        }

        if (empty($total)) {
            display('no definitions');
        } else {
            display("loading $total definitions");
            $this->saveLinks($f);
            display("loaded $total definitions");
        }
        $end = microtime(true);

        $this->saveTokenCounts();

        display('loaded nodes (duration : ' . number_format( ($end - $begin) * 1000, 2) . ' ms)');

        $this->cleanCsv();
        display('Cleaning CSV');

        return true;
    }

    private function saveProperties() {
        if (file_exists($this->pathProperties)) {
            $count = count(file($this->pathProperties));
            
            if ($count === 0) {
                $this->log("properties\t$count\t0");

                return;
            }

            $begin = hrtime(true);
            $query = <<<GREMLIN
new File('$this->pathProperties').eachLine {
    (property, targets) = it.split('-');
    vertices = targets.split(',');

    g.V(vertices).property(property, true).iterate();
}

GREMLIN;
            $this->graphdb->query($query);
            $end = hrtime(true);

            unlink($this->pathProperties);

            $this->log("properties\t$count\t" . ($end - $begin));
        }
    }

    private function saveLinks($f) {
        rewind($f);
        $fp = fopen($this->pathDef, 'w+');
        $length = fwrite($fp, stream_get_contents($f));
        fclose($fp);
        fclose($f);

        if ($length > 0) {
            $begin = hrtime(true);
            $query = <<<GREMLIN
new File('$this->pathDef').eachLine {
    (fromVertex, target) = it.split(',')

    toVertices = target.split('-');

    g.V(toVertices).addE('DEFINITION').from(V(fromVertex)).iterate();
}

GREMLIN;
            $this->graphdb->query($query);
            $end = hrtime(true);

            $this->log("links finalize\t" . ($end - $begin));
        }

        return fopen('php://memory', 'r+');
    }

    private function cleanCsv(): void {
        if (file_exists($this->path)) {
            unlink($this->path);
        }

        if (file_exists($this->pathLink)) {
            unlink($this->pathLink);
        }

        if (file_exists($this->pathProperties)) {
            unlink($this->pathProperties);
        }

        if (file_exists($this->pathDef)) {
            unlink($this->pathDef);
        }
    }

    private function saveTokenCounts(): void {
        $datastore = exakat('datastore');

        $datastore->addRow('tokenCounts', $this->tokenCounts);
    }

    public function saveFiles(string $exakatDir, array $atoms, array $links): void {
        $fileName = 'unknown';

        $json     = array();
        $properties = array('noscream'     => array(),
                            'reference'    => array(),
                            'variadic'     => array(),
                            'heredoc'      => array(),
                            'flexible'     => array(),
                            'constant'     => array(),
                            'enclosing'    => array(),
                            'final'        => array(),
                            'boolean'      => array(),
                            'bracket'      => array(),
                            'close_tag'    => array(),
                            'trailing'     => array(),
                            'alternative'  => array(),
                            'absolute'     => array(),
                            'abstract'     => array(),
                            'aliased'      => array(),
                            'isRead'       => array(),
                            'isModified'   => array(),
                            'static'       => array(),
                            'isNull'       => array(),
                            );
        foreach($atoms as $atom) {
            if ($atom->atom === 'File') {
                $fileName = $atom->code;
            }
            $json[$atom->id] = $atom->toGraphsonLine($this->id);
            foreach($atom->boolProperties() as $property) {
                $properties[$property][] = $atom->id;
            }

            if ($atom->atom === 'Functioncall' &&
                !empty($atom->fullnspath)) {
                if (isset($this->functioncalls[$atom->fullnspath])) {
                    ++$this->functioncalls[$atom->fullnspath];
                } else {
                    $this->functioncalls[$atom->fullnspath] = 1;
                }
            }
        }

        foreach($links as &$link) {
            if (isset($this->tokenCounts[$link[0]])) {
                ++$this->tokenCounts[$link[0]];
            } else {
                $this->tokenCounts[$link[0]] = 1;
            }

            $link[1] = $this->graphdb->fixId($link[1]);
            $link[2] = $this->graphdb->fixId($link[2]);
            $link = implode('-', $link);
        }

        $total = 0; // local total
        $append = array();
        foreach($json as $j) {
            $V = $j->properties['code'][0]->value;
            $j->properties['code'][0]->value = $this->dictCode->get($V);

            $j->properties['lccode'][0]->value = $this->dictCode->get($j->properties['lccode'][0]->value);

            if (isset($j->properties['propertyname']) ) {
                $j->properties['propertyname'][0]->value = $this->dictCode->get($j->properties['propertyname'][0]->value);
            }

            if (isset($j->properties['globalvar']) ) {
                $j->properties['globalvar'][0]->value = $this->dictCode->get($j->properties['globalvar'][0]->value);
            }

            $X = $this->json_encode($j);
            assert(!json_last_error(), $fileName . ' : error encoding normal ' . $j->label . ' : ' . json_last_error_msg() . "\n" . print_r($j, true));
            $append[] = $X;

            if (isset($this->tokenCounts[$j->label])) {
                ++$this->tokenCounts[$j->label];
            } else {
                $this->tokenCounts[$j->label] = 1;
            }
            ++$this->total;

            ++$total;
        }

        file_put_contents($this->path, implode(PHP_EOL, $append) . PHP_EOL, \FILE_APPEND);
        file_put_contents($this->pathLink, implode(PHP_EOL, $links) . PHP_EOL, \FILE_APPEND);
        foreach($properties as $property => $targets) {
            if (!empty($targets)) {
                file_put_contents($this->pathProperties, $property.'-'.implode(',', $targets) . PHP_EOL, \FILE_APPEND);
            }
        }

        if ($this->total > $this->load_chunk) {
            $this->saveNodes();
            $this->load_chunk = self::LOAD_CHUNK / 100 * rand(1, 100);
        }

        $this->datastore->addRow('dictionary', $this->dictCode->getRecent());
    }

    private function saveNodes(): void {
        $begin = hrtime(true);
        $this->graphdb->query("graph.io(IoCore.graphson()).readGraph(\"$this->path\");");
        unlink($this->path);
        $end = hrtime(true);
        $this->log("path\t{$this->total}\t" . ($end - $begin));

        if (file_exists($this->pathLink)) {
            $count = count(file($this->pathLink));
            $begin = hrtime(true);
            $query = <<<GREMLIN
new File('$this->pathLink').eachLine {
    (theLabel, fromVertex, toVertex) = it.split('-');

    g.V(fromVertex).addE(theLabel).to(V(toVertex)).iterate();
}

GREMLIN;
            $this->graphdb->query($query);
            $end = hrtime(true);

            unlink($this->pathLink);

            $this->log("links\t$count\t" . ($end - $begin));
        }

        $this->total = 0;
    }

    private function json_encode(Stdclass $object): string {
        // in case the function name is full of non-encodable characters.
        if (isset($object->properties['fullnspath']) && !mb_check_encoding($object->properties['fullnspath'][0]->value, 'UTF-8')) {
            $object->properties['fullnspath'][0]->value = utf8_encode($object->properties['fullnspath'][0]->value);
        }
        if (isset($object->properties['propertyname']) && !mb_check_encoding((string) $object->properties['propertyname'][0]->value, 'UTF-8')) {
            $object->properties['propertyname'][0]->value = utf8_encode($object->properties['propertyname'][0]->value);
        }
        if (isset($object->properties['fullcode']) && !mb_check_encoding((string) $object->properties['fullcode'][0]->value, 'UTF-8')) {
            $object->properties['fullcode'][0]->value = utf8_encode($object->properties['fullcode'][0]->value);
        }
        if (isset($object->properties['code']) && !mb_check_encoding((string) $object->properties['code'][0]->value, 'UTF-8')) {
            $object->properties['code'][0]->value = utf8_encode($object->properties['code'][0]->value);
        }
        if (isset($object->properties['noDelimiter']) && !mb_check_encoding((string) $object->properties['noDelimiter'][0]->value, 'UTF-8')) {
            $object->properties['noDelimiter'][0]->value = utf8_encode($object->properties['noDelimiter'][0]->value);
        }
        if (isset($object->properties['globalvar']) && !mb_check_encoding((string) $object->properties['globalvar'][0]->value, 'UTF-8')) {
            $object->properties['globalvar'][0]->value = utf8_encode($object->properties['globalvar'][0]->value);
        }
        return json_encode($object);
    }

    private function log(string $message): void {
        fwrite($this->log, $message . PHP_EOL);
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Loader;

use Exakat\Tasks\Helpers\Atom;
use Sqlite3;

class None extends Loader {
    public function __construct(Sqlite3 $sqlite3, Atom $id0) {}
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat;

class Log {
    private $name  = null;
    private $log   = null;
    private $begin = 0;
    private $first = null;

    public function __construct($name = null, $dir = '.') {
        $this->name = $name;

        if (!file_exists("$dir/log/")) { return ; }
        if (!is_dir("$dir/log/")) { return ; }
        if (file_exists("$dir/log/{$this->name}.log")) {
            $this->log = fopen("$dir/log/{$this->name}.log", 'a');
            $this->first = "$this->name resuming on " . date('r');
        } else {
            $this->log = fopen("$dir/log/{$this->name}.log", 'w+');
            $this->first = "{$this->name} created on " . date('r');
        }
        if (!$this->log) {
            display("Couldn\'t create log in $dir/log/");
            $this->log = null;
        }

        $this->begin = microtime(true);
    }

    public function __destruct() {
        if ($this->log === null) {
            return;
        }

        $this->log('Duration : ' . number_format(1000 * (microtime(true) - $this->begin), 2, '.', ''));
        $this->log('Memory : ' . memory_get_usage(true));
        $this->log('Memory peak : ' . memory_get_peak_usage(true));
        $this->log("{$this->name} closed on " . date('r'));

        fclose($this->log);
        unset($this->log);
    }

    public function log($message) {
        if ($this->log === null) { return true; }

        if ($this->first !== null) {
            fwrite($this->log, "{$this->first}\n");
            $this->first = null;
        }

        fwrite($this->log, "$message\n");
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Autoload;

include __DIR__ . '/Autoloader.php';

class Autoload implements Autoloader {
    public function autoload($name) {
        $file = dirname(__DIR__, 2) . '/' . str_replace('\\', DIRECTORY_SEPARATOR, $name) . '.php';

        if (file_exists($file)) {
            include $file;
        }
    }

    public static function autoload_test($name) {
        $file = dirname(__DIR__, 3) . '/tests/analyzer/' . str_replace('\\', DIRECTORY_SEPARATOR, $name) . '.php';

        if (file_exists($file)) {
            include $file;
        }
    }

    public static function autoload_phpunit($name) {
        $fileName = preg_replace('/^([^_]+?)_(.*)$/', '$1' . DIRECTORY_SEPARATOR . '$2', $name);
        $fileName = str_replace('\\', DIRECTORY_SEPARATOR, $fileName);
        $file = dirname(__DIR__, 3) . "/tests/analyzer/{$fileName}.php";

        if (file_exists($file)) {
            include $file;
        }
    }

    public function registerAutoload() {
        spl_autoload_register(array(self::class, 'autoload'));
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Autoload;

use Phar;

class AutoloadDev implements Autoloader {
    const LOAD_ALL = null;

    private $path = '';

    public function __construct($path) {
        if (class_exists('\\Phar') && phar::running()) {
            // No autoloadDev with phar
            // Ignoring it all
            return;
        }

        $this->path = $path;
    }

    public function autoload($name): void {
        if (empty($this->path)) {
            return;
        }

        $fileName = str_replace(array('Exakat\\', '\\'), array('', DIRECTORY_SEPARATOR), $name) . '.php';

        if (file_exists("{$this->path}/$fileName")) {
            include "{$this->path}/$fileName";
        }
    }

    public function registerAutoload() {
        spl_autoload_register(array($this, 'autoload'));
    }

    public function getAllAnalyzers() {
        $fullPath = "{$this->path}/Analyzer/analyzers.ini";

        if (!file_exists($fullPath)) {
            return array();
        }

        $ini = parse_ini_file($fullPath);

        return $ini === false ? array() : $ini;
    }

    public function loadIni($name, $libel = self::LOAD_ALL) {
        $fullPath = "{$this->path}/data/$name";

        if (!file_exists($fullPath)) {
            return array();
        }

        $ini = parse_ini_file($fullPath, \INI_PROCESS_SECTIONS);
        if (empty($ini)) {
            return array();
        }

        if ($libel === self::LOAD_ALL) {
            $return = $ini;
        } else {
            $return = $ini[$libel];
        }

        return array_merge($return);
    }

    public function loadJson($name, $libel = self::LOAD_ALL) {
        $fullPath = "{$this->path}/data/$name";

        if (!file_exists($fullPath)) {
            return array();
        }

        $json = file_get_contents($fullPath);
        if (empty($json)) {
            return array();
        }

        $return = json_decode($json, true);
        if (empty($return)) {
            return array();
        }

        return $return;
    }

    public function loadData($path) {
        $fullPath = "{$this->path}/$path";

        if (file_exists($fullPath)) {
            return file_get_contents($fullPath);
        } else {
            return null;
        }
    }

}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Autoload;

use Exakat\Exakat;
use Exakat\Extensions\Extension;

class AutoloadExt implements Autoloader {
    const LOAD_ALL = null;

    private $pharList   = array();
    private $extensions = array();

    public function __construct($path) {
        if (!extension_loaded('phar')) {
            // Ignoring it all
            return;
        }
        $list = glob("$path/*.phar", GLOB_NOSORT);

        foreach($list as $phar) {
            $this->pharList[basename($phar, '.phar')] = $phar;
        }

        // Add a list of check on the phars
        // Could we autoload everything ?
    }

    public function autoload($name) {
        $fileName = str_replace('\\', DIRECTORY_SEPARATOR, $name);
        $file = "{$fileName}.php";

        foreach($this->pharList as $phar) {
            $fullPath = "phar://$phar/$file";
            if (file_exists($fullPath)) {
                include $fullPath;
                return;
            }
        }
    }

    public function registerAutoload() {
        spl_autoload_register(array($this, 'autoload'));

        $this->checkExtensions();
    }

    private function checkExtensions() {
        foreach($this->pharList as $name => $phar) {
            $className = "\Exakat\Extensions\\$name";

            if (class_exists($className)) {
                $extension = new $className();

                // Check version requiremements
                $versionCheck = $extension->dependsOnExakat();

                if ($versionCheck === Extension::VERSION_ALL) {
                    $this->extensions[$name] = $extension;
                    $this->checkDependencies();

                    continue;
                }

                if (version_compare(Exakat::VERSION, $versionCheck) < 0) {
                    print "$name extension is not compatible with this version of Exakat. It needs $versionCheck or more recent";
                    unset($this->pharList[$name]);

                    continue;
                }

                $this->extensions[$name] = $extension;
                $this->checkDependencies();
            }
        }
    }

    private function checkDependencies() {
        // Report missing extensions, but don't prevent them (some rules may still work, others will be ignored)
        foreach($this->extensions as $name => $extension) {
            $diff = array_diff($extension->dependsOnExtensions(), array_keys($this->pharList));
            if (!empty($diff)) {
                // This is displayed for extensions and also for their dependencies, leading to repetition.
                display("$name extension requires the following missing extension : " . implode(', ', $diff) . "\nProcessing may be impacted.\nDownload the missing extensions with the 'extension' command.\n");
            }
         }
    }

    public function getPharList() {
        return array_map('basename', $this->pharList);
    }

    public function getRulesets() {
        $return = array();

        foreach($this->pharList as $name => $phar) {
            $fullPath = "phar://$phar/Exakat/Analyzer/analyzers.ini";

            if (!file_exists($fullPath)) {
                $return[] = array();
                continue;
            }
            $ini = parse_ini_file($fullPath);
            unset($ini['All']); // And other pre-defined themes ?

            $return[$name] = array_keys($ini);
        }

        return $return;
    }

    public function getAnalyzers(string $theme = 'All') {
        $return = array();

        foreach($this->pharList as $name => $phar) {
            $fullPath = "phar://$phar/Exakat/Analyzer/analyzers.ini";

            if (!file_exists($fullPath)) {
                $return[] = array();
                continue;
            }
            $ini = parse_ini_file($fullPath);

            $return[$name] = $ini[$theme] ?? array();
        }

        return $return;
    }

    public function getAllAnalyzers() {
        $return = array();

        foreach($this->pharList as $name => $phar) {
            $fullPath = "phar://$phar/Exakat/Analyzer/analyzers.ini";

            if (!file_exists($fullPath)) {
                display("Missing analyzers.ini in $name\n");
                $return[] = array();
                continue;
            }
            $ini = parse_ini_file($fullPath);

            $return[$name] = $ini;
        }

        return $return;
    }

    public function loadIni($name, $libel = self::LOAD_ALL) {
        $return = array();

        foreach($this->pharList as $phar) {
            $fullPath = "phar://$phar/data/$name";

            if (!file_exists($fullPath)) {
                continue;
            }

            $ini = parse_ini_file($fullPath, \INI_PROCESS_SECTIONS);
            if (empty($ini)) {
                continue;
            }

            if ($libel === self::LOAD_ALL) {
                $return[] = $ini;
            } else {
                $return[] = $ini[$libel];
            }
        }

        if (empty($return)) {
            return array();
        }

        return array_merge(...$return);
    }

    public function loadJson($name, $libel = self::LOAD_ALL) {
        $return = array(array());

        foreach($this->pharList as $phar) {
            $fullPath = "phar://$phar/data/$name";

            if (!file_exists($fullPath)) {
                continue;
            }

            $json = file_get_contents($fullPath);
            if (empty($json)) {
                continue;
            }

            $data = json_decode($json, \JSON_ASSOCIATIVE);

            if(json_last_error() !== \JSON_ERROR_NONE) {
                continue;
            }
            if (empty($data)) {
                continue;
            }

            if ($libel === self::LOAD_ALL) {
                $return[] = array_column($data, $libel);
            } else {
                $return[] = $data;
            }
        }

        return array_merge(...$return);
    }

    public function loadData($path) {
        $return = array();
        foreach($this->pharList as $phar) {
            $fullPath = "phar://$phar/$path";

            if (file_exists($fullPath)) {
                $return[] = file_get_contents($fullPath);
            }
        }

        return implode('', $return);
    }

    public function fileExists($path) {
        foreach($this->pharList as $phar) {
            $fullPath = "phar://$phar/$path";

            if (file_exists($fullPath)) {
                return true;
            }
        }

        return false;
    }

    public function copyFile($path, $to) {
        foreach($this->pharList as $phar) {
            $fullPath = "phar://$phar/$path";

            if (file_exists($fullPath)) {
                copy($fullPath, $to);
            }
        }

        return null;
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Autoload;

interface Autoloader {
    public function autoload($name);

    public function registerAutoload();

}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat;

use Exakat\Configsource\Commandline;

class Exakat {
    const VERSION = '2.1.3';
    const BUILD = 1079;

    private $config  = null;

    public function __construct() {
        $this->config = exakat('config');
    }

    public function execute(): void {
        if ($this->config->remote === 'none') {
            $this->local();
        } else {
            $this->remote();
        }
    }

    private function remote(): void {
        $json = $this->config->commandLineJson();

        $remote = new Remote($this->config->remotes[$this->config->remote], $this->config->transit_key);

        switch ($this->config->command) {
            case 'init' :
                // replicate init, because we'll need later
                $task = new Tasks\Initproject();
                $task->run();

                // Local load before remote, in case both are identical.
                $res = $remote->send($json);
                break;

            case 'fetch' :
                $res = $remote->send($json);

                if (strlen($res) < 1024) {
                    // This is an error
                    $json = json_decode($res);
                    if (empty($json)) {
                        print "Couldn't read an answer from remote.\n";
                        return;
                    }

                    if (empty($json->error)) {
                        print "Couldn't read an error from remote.\n";
                        return;
                    }

                    print "Error: $json->error\n";
                    return;
                }

                file_put_contents("{$this->config->projects_root}/projects/{$this->config->project}/dump.zip", $res);
                if (file_exists("{$this->config->projects_root}/projects/{$this->config->project}/dump.sqlite")) {
                    unlink("{$this->config->projects_root}/projects/{$this->config->project}/dump.sqlite");
                }
                shell_exec("cd {$this->config->projects_root}/projects/{$this->config->project}; unzip dump.zip && rm dump.zip");
                display("Fetched\n");

                break;

            case 'status' :
                $res = $remote->send($json);
                print $res;
                break;

            default :
                $res = $remote->send($json);
                print $res;
                break;
        }
    }

    private function local(): void {
        switch ($this->config->command) {
            case 'doctor' :
                $doctor = new Tasks\Doctor();
                $doctor->run();
                break;

            case 'init' :
                $task = new Tasks\Initproject();
                $task->run();
                break;

            case 'anonymize' :
                $task = new Tasks\Anonymize();
                $task->run();
                break;

            case 'files' :
                $task = new Tasks\Files();
                $task->run();
                break;

            case 'load' :
                $task = new Tasks\Load();
                $task->run();
                break;

            case 'diff' :
                $task = new Tasks\Diff();
                $task->run();
                break;

            case 'stat' :
                $task = new Tasks\Stat();
                $task->run();
                break;

            case 'catalog' :
                $task = new Tasks\Catalog();
                $task->run();
                break;

            case 'analyze' :
                $task = new Tasks\Analyze();
                $task->run();
                break;

            case 'results' :
                $task = new Tasks\Results();
                $task->run();
                break;

            case 'export' :
                $task = new Tasks\Export();
                $task->run();
                break;

            case 'report' :
                $task = new Tasks\Report();
                $task->run();
                break;

            case 'project' :
                $task = new Tasks\Project();
                $task->run();
                break;

            case 'clean' :
                $task = new Tasks\Clean();
                $task->run();
                break;

            case 'status' :
                $task = new Tasks\Status();
                $task->run();
                break;

            case 'help' :
                $task = new Tasks\Help();
                $task->run();
                break;

            case 'cleandb' :
                $task = new Tasks\CleanDb();
                $task->run();
                break;

            case 'update' :
                $task = new Tasks\Update();
                $task->run();
                break;

            case 'findextlib' :
                $task = new Tasks\FindExternalLibraries();
                $task->run();
                break;

            case 'dump' :
                $task = new Tasks\Dump();
                $task->run();
                break;

            case 'jobqueue' :
                $task = new Tasks\Jobqueue();
                $task->run();
                break;

            case 'queue' :
                $task = new Tasks\Queue();
                $task->run();
                break;

            case 'test' :
                $task = new Tasks\Test();
                $task->run();
                break;

            case 'remove' :
                $task = new Tasks\Remove();
                $task->run();
                break;

            case 'server' :
                $task = new Tasks\Server();
                $task->run();
                break;

            case 'api' :
                $task = new Tasks\Api();
                $task->run();
                break;

            case 'upgrade' :
                $task = new Tasks\Upgrade();
                $task->run();
                break;

            case 'fetch' :
                $task = new Tasks\Fetch();
                $task->run();
                break;

            case 'proxy' :
                $task = new Tasks\Proxy();
                $task->run();
                break;

            case 'extension' :
                $task = new Tasks\Extension();
                $task->run();
                break;

            case 'baseline' :
                $task = new Tasks\Baseline();
                $task->run();
                break;

            case 'config' :
                $task = new Tasks\Config();
                $task->run();
                break;

            case 'show' :
                $task = new Tasks\Show();
                $task->run();
                break;

            case 'install' :
                $task = new Tasks\Install();
                $task->run();
                break;

            default :
                $command_value = $this->config->command_value;
                $suggestions = array_filter(array_keys(Commandline::$commands), function ($x) use ($command_value) { similar_text((string) $command_value, $x, $percentage); return $percentage > 60; });

                print (!empty($command_value) ? "Unknown command '{$this->config->command_value}'. See https://exakat.readthedocs.io/en/latest/Commands.html" . PHP_EOL : '') .
                      (!empty($suggestions) ? 'Did you mean : ' . implode(', ', $suggestions) . ' ? ' : '') . PHP_EOL;

                // fallthrough

            case 'version' :
                $version = self::VERSION;
                $build = self::BUILD;
                $date = date('r', filemtime(__FILE__));
                echo "
 ________                 __              _    
|_   __  |               [  |  _         / |_  
  | |_ \_| _   __  ,--.   | | / ]  ,--. `| |-' 
  |  _| _ [ \ [  ]`'_\ :  | '' <  `'_\ : | |   
 _| |__/ | > '  < // | |, | |`\ \ // | |,| |,  
|________|[__]`\_]\'-;__/[__|  \_]\'-;__/\__/  
                                               

Exakat : @ 2014-2020 Damien Seguy. 
Version : ", $version, ' - Build ', $build, ' - ', $date, "\n";

                break;
        }
    }
}

?>
   Bud1                                                                     spblob   bp                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          @                                              @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  D S Lbwspblob   bplist00	
			]ShowStatusBar_SidebarWidthTenElevenOrLater[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar[ShowPathbar	#@k`     		_{{-840, 481}, {840, 546}}	'FR^u                                D S LlsvCblob  bplist00	
GHIJLXiconSize_showIconPreview_calculateAllSizesWcolumns_scrollPositionYXtextSize_scrollPositionXZsortColumn_useRelativeDates_viewOptionsVersion#@0      	"&+05:?CZidentifierUwidthYascendingWvisibleTname	#Xubiquity!	\dateModified%[dateCreated(*	aTsize-/	s	Tkind24d	Ulabel79K	Wversion<>,	XcommentsB^dateLastOpenedFYdateAdded#@     #@(      #        Tname	    & 8 L T f o                 	
 "#09:;GPQSTYbcefktuwx~             M                  D S Llsvpblob  bplist00	
GHIJFXiconSize_showIconPreview_calculateAllSizesWcolumns_scrollPositionYXtextSize_scrollPositionXZsortColumn_useRelativeDates_viewOptionsVersion#@0      	!&*.38=BXcomments^dateLastOpened\dateModified[dateCreatedTsizeUlabelTkindWversionTnameUindexUwidthYascendingWvisible,	"#'#	+#/0a	45d	9:s		>?K	DF	 #@     #@(      #        Tname	   & 8 L T f o            )/5?GILMNWY[\]fhijsuvw             L                  D S LvSrnlong                                                                                                                                                                                                                                                                                                                                                                        E                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         DSDB                                 `                                                  @                                                @                                                @       TsizeUlabelTkindWversionTnameUindexUwidthYascendingWvisible,	"#'#	+#/0a	45d	9:s		>?K	DF	 #@     #@(      #        Tname	   & 8 L T f o            )/5?GILMNWY[\]fhijsuvw             L                  D S LvSrnlong                                                                                                                                                                                                                                                                                                                                                            <?php
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

declare(strict_types = 1);

namespace Exakat\Query;


class QueryDoc {
    private $stopped = null;
    private $commands = null;
    private $arguments = null;
    private $query = null;
    private $stats = array();

    private $steps = array();

    private $cursor    = 1;
    private $cursors   = array();
    private $nodes     = array(1=> 'root');
    private $links     = array();
    private $labels    = array('first' => 1, );

    public function __construct() {    }

    public function __call($name, $args) {
        if (in_array($name, array('not', 'filter', 'optional'))) {
            $chain = $this->prepareSide();
            $this->steps[] = $name . '[ ' . $chain . ' ]';
            print "$name\n";

            $next = array_pop($this->head);
            $this->nodes[$next] = "Node $name";
            $this->cursor = array_pop($this->cursors);

            $this->links[] = array($this->cursor, $next, $name);
            $this->cursor = $next;
        } elseif (in_array($name, array('back'))) {
            $this->steps[] = $name;
            print "$name\n";

            $this->cursor = $this->labels[$args[0]];
        } elseif (in_array($name, array('as'))) {
            $this->steps[] = $name;
            print "$name\n";

            $this->labels[$args[0]] = $this->cursor;
        } else {
            $this->steps[] = $name;
            print "$name\n";

            $this->nodes[] = "Node $name";
            $next = count($this->nodes);
            $this->links[] = array($this->cursor, $next, $name);
            $this->cursor = $next;
        }


        $this->stats[$name] = ($this->stats[$name] ?? 0) + 1;

    }

    public function side(): self {
        $this->sides[] = $this->steps;
        $this->steps = array('side');

        $this->cursors[] = $this->cursor;
        $this->nodes[] = 'Node SIDE';
        $next = count($this->nodes);
        $this->head[]    = $next;
        $this->cursor    = $next;

        $this->stats['side'] = ($this->stats['side'] ?? 0) + 1;

        print "  Side\n";

        return $this;
    }

    public function prepareSide() {
        print "  prepareSide\n";
        $chain = implode('-', $this->steps);
        $this->steps = array_pop($this->sides);

        return $chain;
    }

    public function prepareQuery(): bool {
        if ($this->stopped === self::QUERY_STOPPED) {
            return true;
        }

        assert($this->query === null, 'query is already ready');
        assert(empty($this->sides), 'sides are not empty : left ' . count($this->sides) . ' element');

        // @doc This is when the object is a placeholder for others.
        if (empty($this->commands)) {
            return true;
        }

        /*
        Sack is ignored ATM
        $sack = $this->prepareSack($this->commands);
        if (is_array($sack)) {
            $sack['processed'] = 0;
            $sack['total'] = 0;
        } else {
            $sack = array('processed' => 0,
                          'total' => 0,
                          );
        }
        $sack = $this->sackToGremlin($sack);
        */
        $sack = self::SACK;
        $this->query = "g{$sack}.V()";

        $commands  = array_column($this->commands, 'gremlin');
        $arguments = array_column($this->commands, 'arguments');

        if (in_array(self::STOP_QUERY, $commands) !== false) {
            // any 'stop_query' is blocking
            $this->query = '';
            return false;
        }

        foreach($commands as $id => $command) {
            if ($command === self::NO_QUERY) {
                unset($commands[$id], $arguments[$id]);
            }
        }

        $this->query .= '.' . implode(".\n", $commands);

        if (empty($arguments)) {
            $this->arguments = array();
        } else {
            $this->arguments = array_merge(...$arguments);
        }

        return true;
    }

    public function prepareRawQuery() {
        if ($this->stopped === self::QUERY_STOPPED) {
            return true;
        }

        $commands = array_column($this->commands, 'gremlin');
        $arguments = array_column($this->commands, 'arguments');

        if (in_array(self::STOP_QUERY, $commands) !== false) {
            // any 'stop_query' is blocking
            return $this->query = "// Query with STOP_QUERY\n";
        }

        foreach($commands as $id => $command) {
            if ($command === self::NO_QUERY) {
                unset($commands[$id], $arguments[$id]);
            }
        }

        $commands = implode('.', $commands);
        $this->arguments = array_merge(...$arguments);

        $sack = self::SACK;

        $this->query = <<<GREMLIN
g{$sack}.V().as('first').$commands

// Query (#{$this->id}) for {$this->analyzer}
// php {$this->php} analyze -p {$this->project} -P {$this->analyzer} -v\n

GREMLIN;

    }

    public function printRawQuery() {
        $this->prepareRawQuery();

        print $this->query . PHP_EOL;
        print_r($this->arguments);
        die(__METHOD__);
    }

    public function getQuery() {
        assert($this->query !== null, 'Null Query found!');
        return $this->query;
    }

    public function getArguments() {
        return $this->arguments;
    }

    public function printQuery() {
        $this->prepareQuery();

        var_dump($this->query);
        print_r($this->arguments);
        die(__METHOD__);
    }

    private function prepareSack(array $commands) {
        foreach($commands as $command) {
            if ($command->getSack() === Command::SACK_NONE) {
                continue;
            }

            return $command->getSack();
        }

        return Command::SACK_NONE;
    }

    private function sackToGremlin(array $sack): string {
        if (empty($sack)) {
            return '';
        }

        $return = array();
        foreach($sack as $name => $init) {
            $return[] = "\"$name\":" . trim((string) $init, ' {}');
        }

        $return = '.withSack{[' . implode(', ', $return) . ']}';
        return $return;
    }

    public function canSkip(): bool {
        return $this->stopped !== self::QUERY_RUNNING;
    }

    public function display(): void {
        print '(' . implode('-', $this->steps) . ')';

//        print_r($this->stats);
        $graph = array();

        foreach($this->nodes as $id => $node) {
            $graph[] = "$id [label=\"$node\"];\n";
        }

        foreach($this->links as list($a, $b, $label)) {
            $graph[] = "$a -> $b [label = \"$label\"];\n";
        }

        file_put_contents('/tmp/docs.dot', 'digraph{ ' . implode('', $graph) . '}');
    }
}
?><?php
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

declare(strict_types = 1);

namespace Exakat\Query;

use Exakat\Analyzer\Analyzer;
use Exakat\Query\DSL\DSLFactory;
use Exakat\Query\DSL\Command;
use Exakat\Project;

class Query {
    public const STOP_QUERY = 'filter{ false; }';
    public const NO_QUERY   = 'filter{ true;  }';

    const TO_GREMLIN = true;
    const NO_GREMLIN = false;

    const QUERY_RUNNING = true;
    const QUERY_STOPPED = false;

    private const SACK = '.withSack(["m":[], "processed":0, "total":0])';

    private $id         = null;
    private $project    = null;
    private $analyzer   = null;
    private $php        = null;

    private $commands         = array();
    private $arguments        = array();
    private $query            = null;
    private $queryFactory     = null;
    private $sides            = array();
    private $stopped          = self::QUERY_RUNNING;

    public function __construct(int $id, Project $project, string $analyzer, string $php, ?array $dependsOn = array()) {
        $this->id        = $id;
        $this->project   = $project;
        $this->analyzer  = $analyzer;
        $this->php       = $php;

        $this->queryFactory = new DSLFactory($analyzer, $dependsOn);
    }

    public function __call(string $name, array $args): self {
        if ($this->stopped === self::QUERY_STOPPED) {
            return $this;
        }

        assert(!(empty($this->commands) && empty($this->sides)) || in_array(strtolower($name), array('atomis', 'analyzeris', 'atomfunctionis')), "First step in Query must be atomIs, atomFunctionIs or analyzerIs ($name used)");

        $command = $this->queryFactory->factory($name);
        if (in_array($name, array('not', 'filter', 'optional'))) {
            $chain = $this->prepareSide();
            $last = $command->run($chain);
        } else {
            $last = $command->run(...$args);
        }
        $this->commands[] = $last;

        if ($last->gremlin === self::STOP_QUERY && empty($this->sides)) {
            $this->query = "// Query with STOP_QUERY\n";
            $this->commands = array();

            $this->stopped = self::QUERY_STOPPED;

            return $this;
        }

        if (count($this->commands) === 1 && empty($this->sides)) {
            switch(strtolower($name)) {
                case 'atomis' :
                case 'atomfunctionis' :
                    $this->_as('first');
                    $this->raw('sack{m,v -> ++m["processed"]; m;}');
                    break;

                case 'analyzeris' :
                    $this->atomIs('Analysis', Analyzer::WITHOUT_CONSTANTS);
                    $this->commands = array($this->commands[1]);

                    $this->propertyIs('analyzer', $args[0], Analyzer::CASE_SENSITIVE);
                    $this->outIs('ANALYZED');
                    $this->_as('first');
                    $this->raw('sack{m,v -> ++m["processed"]; m;}');

                    $this->raw('groupCount("processed").by(count())');

                    break;

                default :
                    if ($this->commands[0]->gremlin === self::STOP_QUERY) {
                        $this->_as('first');
                        // Keep going
                    } else {
                        assert(false, 'No gremlin optimization : gremlin query "' . $name . '" in analyzer should have use g.V. ! ' . $this->commands[0]->gremlin);
                    }
            }
        }

        return $this;
    }

    public function side(): self {
        if ($this->stopped === self::QUERY_STOPPED) {
            return $this;
        }

        $this->sides[] = $this->commands;
        $this->commands = array();

        return $this;
    }

    public function prepareSide(): Command {
        if ($this->stopped === self::QUERY_STOPPED) {
            return new Command(Query::NO_QUERY);
        }

        $commands = array_column($this->commands, 'gremlin');

        assert(!empty($this->sides), 'No side was started! Missing $this->side() ? ');
        assert(!empty($commands), 'No command in side query');

        if (in_array(self::STOP_QUERY, $commands) !== false) {
            $this->commands = array_pop($this->sides);
            return new Command(Query::STOP_QUERY);
        }

        $query = '__.' . implode(".\n", $commands);
        $args = array_column($this->commands, 'arguments');
        $args = array_merge(...$args);

        $query = str_replace(array_keys($args), '***', $query);

        $sack = $this->prepareSack($this->commands);

        $return = new Command($query, array_values($args));
        $return->setSack($sack);

        $this->commands = array_pop($this->sides);

        return $return;
    }

    public function prepareQuery(): bool {
        if ($this->stopped === self::QUERY_STOPPED) {
            return true;
        }

        assert($this->query === null, 'query is already ready');
        assert(empty($this->sides), 'sides are not empty : left ' . count($this->sides) . ' element');

        // @doc This is when the object is a placeholder for others.
        if (empty($this->commands)) {
            return true;
        }

        $sack = self::SACK;
        $this->query = "g{$sack}.V()";

        $commands  = array_column($this->commands, 'gremlin');
        $arguments = array_column($this->commands, 'arguments');

        if (in_array(self::STOP_QUERY, $commands) !== false) {
            // any 'stop_query' is blocking
            $this->query = '';
            return false;
        }

        foreach($commands as $id => $command) {
            if ($command === self::NO_QUERY) {
                unset($commands[$id], $arguments[$id]);
            }
        }

        $this->query .= '.' . implode(".\n", $commands);

        if (empty($arguments)) {
            $this->arguments = array();
        } else {
            $this->arguments = array_merge(...$arguments);
        }

        return true;
    }

    public function prepareRawQuery(): void {
        if ($this->stopped === self::QUERY_STOPPED) {
            return;
        }

        $commands = array_column($this->commands, 'gremlin');
        $arguments = array_column($this->commands, 'arguments');

        if (in_array(self::STOP_QUERY, $commands) !== false) {
            // any 'stop_query' is blocking
            $this->query = "// Query with STOP_QUERY\n";
            return ;
        }

        foreach($commands as $id => $command) {
            if ($command === self::NO_QUERY) {
                unset($commands[$id], $arguments[$id]);
            }
        }

        $commands = implode('.', $commands);
        $this->arguments = array_merge(...$arguments);

        $sack = self::SACK;

        $this->query = <<<GREMLIN
g{$sack}.V().as('first').$commands

// Query (#{$this->id}) for {$this->analyzer}
// php {$this->php} analyze -p {$this->project} -P {$this->analyzer} -v\n

GREMLIN;

    }

    public function printRawQuery(): void {
        $this->prepareRawQuery();

        print $this->query . PHP_EOL;
        print_r($this->arguments);
        die(__METHOD__);
    }

    public function getQuery(): string {
        assert($this->query !== null, 'Null Query found!');
        return $this->query;
    }

    public function getArguments(): array {
        return $this->arguments;
    }

    public function printQuery(): void {
        $this->prepareQuery();

        var_dump($this->query);
        print_r($this->arguments);
        die(__METHOD__);
    }

    private function prepareSack(array $commands) {
        foreach($commands as $command) {
            if ($command->getSack() === Command::SACK_NONE) {
                continue;
            }

            return $command->getSack();
        }

        return Command::SACK_NONE;
    }

    private function sackToGremlin(array $sack): string {
        if (empty($sack)) {
            return '';
        }

        $return = array();
        foreach($sack as $name => $init) {
            $return[] = "\"$name\":" . trim((string) $init, ' {}');
        }

        $return = '.withSack{[' . implode(', ', $return) . ']}';
        return $return;
    }

    public function canSkip(): bool {
        return $this->stopped !== self::QUERY_RUNNING;
    }
}
?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class IsLowercase extends DSL {
    public function run() {
        if (func_num_args() === 1) {
            list($property) = func_get_args();
        } else {
            $property = 'fullcode';
        }

        return new Command('filter{it.get().value("' . $property . '") == it.get().value("' . $property . '").toLowerCase()}');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class GoToInstruction extends DSL {
    public function run() {
        if (func_num_args() === 1) {
            list($atoms) = func_get_args();
        } else {
            $atoms = 'Namespaces';
        }

        $this->assertAtom($atoms);
        $diff = $this->normalizeAtoms($atoms);

        if (empty($diff)) {
            return new Command(Query::STOP_QUERY);
        }

        $atomAndFile = $diff;
        $atomAndFile[] = 'File';
        $atomAndFile = array_unique($atomAndFile);

        $linksDown = self::$linksDown;

        $gremlin = <<<GREMLIN
repeat( __.in({$linksDown})).until(hasLabel(within(***)) )
          .hasLabel(within(***))
GREMLIN;
        return new Command($gremlin, array($atomAndFile, $diff));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class IsNotEmptyArray extends DSL {
    public function run() {
        return new Command('not( where( __.hasLabel("Arrayliteral").has("count", 0)))');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class AtomFunctionIs extends DSL {
    public function run() {
        list($fullnspath) = func_get_args();

        $functioncallIs = $this->dslfactory->factory('functioncallIs');
        return $functioncallIs->run($fullnspath);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class FollowParAs extends DSL {
    const FOLLOW_ALL  = 0;
    const FOLLOW_NONE = 1;

    public function run(): Command {

        assert(func_num_args() === 1, 'Wrong number of arguments for ' . self::class);
        list($out) = func_get_args();

        if ($out === self::FOLLOW_ALL) {
            $out = 'out(' . self::$linksDown . ').';
        } elseif ($out === self::FOLLOW_NONE) { // To be used in-place
            $out = 'identity().';
        } else {
            $this->assertLink($out);
            $out = $this->normalizeLinks($out);

            if (empty($out)) {
                return new Command(Query::STOP_QUERY);
            }

            $out = 'out(' . makeList($out) . ').';
        }

         $TIME_LIMIT = self::$TIME_LIMIT;
        return new Command(<<<GREMLIN
 {$out}emit().repeat( 
    __.timeLimit(10000)
      .coalesce(__.hasLabel("Parenthesis").out("CODE"), 
                __.hasLabel("Assignation").out("RIGHT"), 
                __.hasLabel("Ternary").where(__.out("THEN").not(hasLabel("Void"))).out("THEN", "ELSE"), 
                __.hasLabel("Ternary").where(__.out("THEN").    hasLabel("Void" )).out("CONDITION", "ELSE"), 
                __.hasLabel("Coalesce").out("RIGHT", "LEFT")
      )
).until(__.not(hasLabel("Parenthesis", "Assignation", "Ternary", "Coalesce")))
.not(hasLabel("Parenthesis", "Assignation", "Ternary", "Coalesce"))
GREMLIN
);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Analyzer\Analyzer;

class GoToFirstExpression extends DSL {
    public function run(): Command {
        $linksDown = self::$linksDown;

        return new Command(<<<GREMLIN
until( __.in($linksDown).not(hasLabel(within(***))) ).repeat( __.in($linksDown) )

GREMLIN
, array(Analyzer::EXPRESSION_ATOMS));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class CollectExtends extends DSL {
    public function run(): Command {
        if (func_num_args() === 1) {
            list($variable) = func_get_args();
        } else {
            $variable = 'classes';
        }

        $this->assertVariable($variable, self::VARIABLE_WRITE);

        $MAX_LOOPING = self::$MAX_LOOPING;

        return new Command(<<<GREMLIN
where( 
    __.sideEffect{ $variable = []; }
      .repeat( __.out("IMPLEMENTS", "EXTENDS").in("DEFINITION") ).emit().times($MAX_LOOPING)
      .hasLabel("Class")
      .sideEffect{ $variable.add(it.get().value("fullnspath")) ; }
      .fold() 
) 

GREMLIN
);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class IsNotLocalClass extends DSL {
    public function run(): Command {
        $linksDown = self::$linksDown;

        $gremlin = <<<GREMLIN
sideEffect{ inside = it.get().value("fullnspath"); }
.where(  __.repeat( __.in({$linksDown}) ).until( hasLabel("Class") ).filter{ it.get().value("fullnspath") == inside; }.count().is(eq(0)) )

GREMLIN;

        return new Command($gremlin);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Analyzer\Analyzer;

class SamePropertyAs extends DSL {
    public function run() {
        if (func_num_args() === 2) {
            list($property, $name) = func_get_args();
            $caseSensitive = Analyzer::CASE_SENSITIVE;
        } else {
            list($property, $name, $caseSensitive) = func_get_args();
        }

        $this->assertProperty($property);
        $this->assertVariable($name);

        if ($property === 'label') {
            return new Command('filter{ it.get().label() == ' . $name . '}');
        } elseif ($property === 'id') {
            return new Command('filter{ it.get().id() == ' . $name . '}');
        } elseif ($property === 'self') {
            return new Command('filter{ it.get() == ' . $name . '}');
        } elseif (in_array($property, self::BOOLEAN_PROPERTY, \STRICT_COMPARISON)) {
            return new Command('filter{ if ( it.get().properties("' . $property . '").any()) { ' . $name . ' == it.get().value("' . $property . '")} else {' . $name . ' == false; }; }');
        } elseif ($property === 'intval') {
            return new Command('has("intval").filter{ it.get().value("intval") == ' . $name . '}');
        } elseif (in_array($property, array('reference'), \STRICT_COMPARISON) ) {
            return new Command('filter{ if (it.get().properties("' . $property . '").any()) { ' . $name . ' == it.get().value("' . $property . '");} else { ' . $name . ' == false; }}');
        } elseif ($property === 'code' || $property === 'lccode') {
            if ($caseSensitive === Analyzer::CASE_SENSITIVE) {
                return new Command('filter{ it.get().value("code") == ' . $name . '}');
            } else {
                return new Command('filter{ it.get().value("lccode") == ' . $name . '}');
            }
        } elseif (in_array($property, self::INTEGER_PROPERTY, \STRICT_COMPARISON)) {
            return new Command('filter{ it.get().value("' . $property . '") == ' . $name . '}');
        } else {
            $caseSensitive = $caseSensitive === Analyzer::CASE_SENSITIVE ? '' : '.toLowerCase()';

            return new Command('filter{ it.get().value("' . $property . '")' . $caseSensitive . ' == ' . $name . $caseSensitive . '}');
        }
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class AtomInsideNoBlock extends DSL {
    public function run(): Command {
        list($atoms) = func_get_args();

        assert($this->assertAtom($atoms));
        $diff = $this->normalizeAtoms($atoms);
        if (empty($diff)) {
            return new Command(Query::STOP_QUERY);
        }

        $gremlin = 'emit( ).repeat( __.out(' . self::$linksDown . ').not(hasLabel("Sequence")) ).times(' . self::$MAX_LOOPING . ').hasLabel(within(***))';
        return new Command($gremlin, array($diff));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Analyzer\Analyzer;

class FullnspathIsNot extends DSL {
    public function run() {
        if (func_num_args() === 1) {
            list($code) = func_get_args();
            $caseSensitive = Analyzer::CASE_SENSITIVE;
        } else {
            list($code, $caseSensitive) = func_get_args();
        }

        $has = $this->dslfactory->factory('has');
        $return = $has->run('fullnspath');

        $propertyIs = $this->dslfactory->factory('propertyIsNot');
        if (!in_array($code, $this->availableVariables, STRICT_COMPARISON)) {
            $code = makeArray($code);
        }

        $return->add($propertyIs->run('fullnspath', $code, Analyzer::CASE_SENSITIVE));
        return $return;
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class HasOut extends DSL {
    public function run(): Command {
        list($link) = func_get_args();

        $this->assertLink($link);
        $diff = $this->normalizeLinks($link);

        if (empty($diff)) {
            return new Command(Query::STOP_QUERY);
        } else {
            return new Command('where( __.out(' . $this->SorA($diff) . ') )');
        }
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class ProcessDereferencing extends DSL {
    public function run(): Command {
        list($tooManyDereferencing) = func_get_args();

        $command = new Command(<<<GREMLIN
where(
__.sideEffect{levels=0;}
        .repeat( __.sideEffect{levels += ["Array", "Arrayappend", "Member", "Methodcall", "Staticmethodcall"].contains( it.get().label() ) ? 1 : 0; } 
               .out("CLASS", "OBJECT", "VARIABLE", "APPEND", "CODE", "RIGHT"))
               .until(__.not(hasLabel("Array", "Arrayappend", "Member", "Staticproperty", "Methodcall", "Staticmethodcall", "Staticconstant", "Assignation", "Parenthesis")))
        .filter{ levels > $tooManyDereferencing}

)
GREMLIN
);

        return $command;
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class FullcodeVariableIs extends DSL {
    public function run(): Command {
        assert(func_num_args() === 1, 'Wrong number of argument for ' . __METHOD__ . '. 1 is expected, ' . func_num_args() . ' provided');
        list($variable) = func_get_args();

        return new Command("filter{it.get().value(\"fullcode\") == $variable; }");
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class IsLiteral extends DSL {
    public function run() {
        // Closures are literal if not using a variable from the context
        return new Command(<<<'GREMLIN'
hasLabel("Integer", "Boolean", "Null", "Magicconstant", "Float", "String", "Heredoc", "Closure", "Arrayliteral").has("constant", true)

GREMLIN
);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class GoToFile extends DSL {
    public function run() {
        $return = $this->dslfactory->factory('goToInstruction');

        return $return->run('File');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class HasNoTrait extends DSL {
    public function run() {
        $return = $this->dslfactory->factory('hasNoInstruction');

        return $return->run('Trait');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class Ignore extends DSL {
    public function run() {
        return new Command(Query::NO_QUERY);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class NotImplementing extends DSL {
    public function run(): Command {
        list($fullnspath) = func_get_args();

        $MAX_LOOPING = self::$MAX_LOOPING;
        return new Command(<<<GREMLIN
not(
    where( __.emit().repeat( __.out("IMPLEMENTS", "EXTENDS").in("DEFINITION")).times({$MAX_LOOPING})
                               .out("IMPLEMENTS").has("fullnspath", within(***)) ) 
)
GREMLIN
, array($fullnspath));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Analyzer\Analyzer;

class GoToAllImplements extends DSL {
    public function run(): Command {
        if (func_num_args() === 1) {
            list($self) = func_get_args();
        } else {
            $self = Analyzer::INCLUDE_SELF;
        }

        $MAX_LOOPING = self::$MAX_LOOPING;

        if ($self === Analyzer::EXCLUDE_SELF) {
            $command = new Command(<<<GREMLIN
 as("gotoallimplements")
.repeat( __.out("EXTENDS", "IMPLEMENTS")
          .in("DEFINITION")
          .hasLabel("Class", "Classanonymous", "Interface")
          .simplePath().from("gotoallimplements")
       ).emit( )
        .times($MAX_LOOPING).hasLabel("Class", "Classanonymous", "Interface")
GREMLIN
);
            return $command;
        } else {
            $command = new Command(<<<GREMLIN
 as("gotoallimplements")
.emit( )
.repeat( __.out("EXTENDS", "IMPLEMENTS")
           .in("DEFINITION")
           .hasLabel("Class", "Classanonymous", "Interface")
           .simplePath().from("gotoallimplements")
           )
           .times($MAX_LOOPING)
           .hasLabel("Class", "Classanonymous", "Interface")
GREMLIN
);
            return $command;
        }
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class HasNoFunctionDefinition extends DSL {
    public function run(): Command {
        return new Command('not( where( __.in("DEFINITION").hasLabel("Function", "Method", "Magicmethod", "Closure", "Arrowfunction") ) )');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class HasNoCountedInstruction extends DSL {
    public function run() {
        switch (func_num_args()) {
            case 2:
                list($atom, $count) = func_get_args();
                break;

            case 1:
                list($atom) = func_get_args();
                $count = '0';
                break;

            case 0:
            default:
                $atom = 'Function';
                $count = '0';
                break;
        }

        assert($this->assertAtom($atom));
        assert($count >= 0);
        $atom = makeArray($atom);

        // $count is an integer or a variable

        $stop = array('File', 'Closure', 'Function', 'Method', 'Class', 'Trait', 'Classanonymous');
        $stop = array_unique(array_diff($stop, $atom));
        $linksDown = self::$linksDown;

        return new Command(<<<GREMLIN
where( 
 __.sideEffect{ c = 0; }
   .emit( ).repeat(__.in($linksDown)) )
   .until(hasLabel(within(***)))
   .hasLabel(within(***))
   .sideEffect{ c = c + 1; }.fold()
).filter{ c < $count}
GREMLIN
, array($stop, $atom));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class IsNotArgument extends DSL {
    public function run() {
        return new Command('not( where( __.in("DEFINITION").where( __.in("NAME"))) )');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class NoAnalyzerInside extends DSL {
    public function run() {
        list($atoms, $analyzer) = func_get_args();

        $this->assertAnalyzer($analyzer);
        $this->assertAtom($atoms);
        $diff = $this->normalizeAtoms($atoms);

        if (empty($diff)) {
            return new Command(Query::NO_QUERY);
        }

        $MAX_LOOPING = self::$MAX_LOOPING;
        $linksDown = self::$linksDown;

$gremlin = <<<GREMLIN
not( 
    where( __.emit( ).repeat( __.out({$linksDown}) ).times($MAX_LOOPING)
             .hasLabel(within(***))
             .where( __.in("ANALYZED").has("analyzer", within(***)))
          )     
)
GREMLIN;
        return new Command($gremlin,
                           array($diff, makeArray($analyzer)));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class IsGlobalCode extends DSL {
    public function run() {
        $linksDown = self::$linksDown;

        $gremlin = <<<GREMLIN
not( 
    where( 
        __.repeat(__.in({$linksDown}))
          .emit().until(hasLabel("File"))
          .hasLabel("Function", "Method", "Closure", "Magicmethod") 
          ) 
    )
GREMLIN;
        return new Command($gremlin);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class NoAtomWithoutPropertyInside extends DSL {
    public function run() {
        list($atoms, $property, $values) = func_get_args();

        assert($this->assertAtom($atoms));
        assert($this->assertProperty($property));
        $MAX_LOOPING = self::$MAX_LOOPING;
        $linksDown = self::$linksDown;

$gremlin = <<<GREMLIN
not(
    where( __.emit( ).repeat( __.out($linksDown).not(hasLabel("Closure", "Classanonymous", "Closure", "Function", "Trait", "Interface")) )
                     .times($MAX_LOOPING)
                     .hasLabel(within(***))
                     .has("$property")
                     .has("$property", without(***)) 
        ) 
    )
GREMLIN;
        return new Command($gremlin,
                           array(makeArray($atoms), makeArray($values) ) );
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class IsLessHash extends DSL {
    public function run() {
        assert(func_num_args() === 3, 'Wrong number of argument for ' . __METHOD__ . '. 3 are expected, ' . func_num_args() . ' provided');
        list($property, $hash, $index) = func_get_args();

        if (empty($hash)) {
            return new Command(Query::STOP_QUERY);
        }

        assert($this->assertProperty($property));

        return new Command("has(\"$property\").filter{ it.get().value(\"$property\") < ***[$index]; }", array($hash));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class TokenIs extends DSL {
    public function run() {
        list($token) = func_get_args();

        assert($this->assertTokens($token));
        return new Command('has("token", within(***))', array(makeArray($token)) );
    }
}
?>
   Bud1            %                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 @                                              @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   E   %                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       DSDB                             `                                                     @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              <?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class NoAtomPropertyInside extends DSL {
    public function run() {
        list($atom, $property, $values) = func_get_args();

        assert($this->assertAtom($atom));
        assert($this->assertProperty($property));
        $MAX_LOOPING = self::$MAX_LOOPING;
        $linksDown = self::$linksDown;

        // Check with Structures/Unpreprocessed
        $gremlin = <<<GREMLIN
not(
    where( __.emit( ).repeat( __.out($linksDown).not(hasLabel("Closure", "Classanonymous")) )
                     .times($MAX_LOOPING).hasLabel(within(***))
                     .has("$property")
                     .has("$property", within(***))
          ) 
    )
GREMLIN;

        return new Command($gremlin, array(makeArray($atom), makeArray($values)));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class IsNotEmptyBody extends DSL {
    public function run() {
        $gremlin = <<<'GREMLIN'
not(
    where( 
        __.out("EXPRESSION")
          .not(hasLabel("Void", "Global", "Static"))
          .not(
            where( 
                __.hasLabel("Return")
                  .out("RETURN")
                  .hasLabel("Void", "Null")
                )
            )
        )
)
GREMLIN;

/*
          .not(
            where( 
                __.map( 
                    __.out("EXPRESSION").order().by("rank").tail(1)
                  )
                  .hasLabel("Return")
                  .out("RETURN")
                  .hasLabel("Void", "Null")
                )
            )

*/

        return new Command($gremlin);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class NoInterfaceDefinition extends DSL {
    public function run() {
        return new Command('not( where(__.in("DEFINITION").hasLabel("Interface") ) )');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class HasNoNamedInstruction extends DSL {
    public function run() {
        list($atom, $name) = func_get_args();

        assert($this->assertAtom($atom));
        if ($name === null) {
            return $this->hasNoInstruction($atom);
        }

        $gremlin = <<<'GREMLIN'
not( 
    where( 
        __.repeat( __.inE().not(hasLabel("DEFINITION", "ANALYZED")).outV()).until(hasLabel("File"))
          .hasLabel(within(***))
          .has("code", ***)
          ) 
    )
GREMLIN
;

        return new Command($gremlin, array(makeArray($atom), $name));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class HasNoOut extends DSL {
    public function run(): Command {
        list($links) = func_get_args();

        assert($this->assertLink($links));
        $diff = $this->normalizeLinks($links);

        if (empty($diff)) {
            return new Command(Query::NO_QUERY);
        } else {
            return new Command('not( where( __.out(' . $this->SorA($diff) . ') ) )');
        }
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class SaveNullableAs extends DSL {
    public function run() {
        assert(func_num_args() <= 1, __METHOD__ . ' should get 1 arguments max, ' . func_num_args() . ' provided.');

        list($variable) = func_get_args();

        $this->assertVariable($variable, self::VARIABLE_WRITE);

        return new Command(<<<GREMLIN
choose(__.or(__.where( __.out("RETURNTYPE", "TYPEHINT").hasLabel("Null") ),
                      __.where( __.out("DEFAULT").hasLabel("Null").not(__.in("LEFT"))) 
                     ),
                      __.sideEffect{ {$variable} = true;},
                      __.sideEffect{ {$variable} = false;}
                   )
GREMLIN
);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class Values extends DSL {
    public function run(): Command {
        list($property) = func_get_args();

        assert($this->assertProperty($property));

        return new Command("values(\"$property\")");
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class IsNotPropertyDefined extends DSL {
    public function run(): Command {
        // check for DEFINTION link and the Virtualproperty atom
        return new Command('where( __.in("DEFINITION").hasLabel("Virtualproperty").not( __.out("OVERWRITE").hasLabel("Propertydefinition")))');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class HasChildWithRank extends DSL {
    public function run() {
        if (func_num_args() === 2) {
            list($links, $rank) = func_get_args();
        } else {
            list($links) = func_get_args();
            $rank = 0;
        }

        $this->assertLink($links);
        $diff = $this->normalizeLinks($links);
        if (empty($diff)) {
            return new Command(Query::STOP_QUERY);
        }

        return new Command('where( __.out(' . $this->SorA($diff) . ').has("rank", ***).not(hasLabel("Void")) )', array(abs((int) $rank)));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class GoToExtends extends DSL {
    public function run(): Command {
        return new Command('out("EXTENDS").in("DEFINITION")');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class OutWithRank extends DSL {
    public function run() {
        assert(func_num_args() === 2, 'Wrong number of argument for ' . __METHOD__ . '. 2 are expected, ' . func_num_args() . ' provided');
        list($link, $rank) = func_get_args();

        if ($rank === 'first') {
            return new Command('out("' . $link . '").has("rank", eq(0))');
        } elseif ($rank === 'last') {
            return new Command('map( __.out("' . $link . '").order().by("rank").tail(1) )');
        } elseif ($rank === '2last') {
            return new Command('map( __.out("' . $link . '").order().by("rank").tail(2) )');
        } elseif (is_string($rank) && preg_match('/\D/', $rank)) {
            $this->assertVariable($rank, self::VARIABLE_READ);
            return new Command('out("' . $link . '").filter{ it.get().value("rank") == ' . $rank . '; }');
        } else { // abs((int) $rank) always works, and default to 0
            return new Command('out("' . $link . '").has("rank", eq(' . abs((int) $rank) . '))');
        }
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class HasConstantDefinition extends DSL {
    public function run() {
        return new Command('where( __.in("DEFINITION"))');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class HasNextSibling extends DSL {
    public function run(): Command {
        if (func_num_args() === 1) {
            list($link) = func_get_args();
        } else {
            $link = 'EXPRESSION';
        }

        $hasIn = $this->dslfactory->factory('hasIn');
        $return = $hasIn->run($link);

        return $return->add(new Command('where( __.sideEffect{sibling = it.get().value("rank");}.in("' . $link . '").out("' . $link . '").filter{sibling + 1 == it.get().value("rank")})'));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class CountArrayDimension extends DSL {
    public function run(): Command {
        list($variable) = func_get_args();

        $this->assertVariable($variable, self::VARIABLE_WRITE);

        $command = new Command('sideEffect{ ' . $variable . ' = 0; }
.repeat( __.in("VARIABLE", "APPEND").hasLabel("Array", "Arrayappend").sideEffect{ l = l + 1;}).emit()');

        return $command;
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class HasTrait extends DSL {
    public function run() {
        $return = $this->dslfactory->factory('hasInstruction');

        return $return->run('Trait');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Analyzer\Analyzer;

class GoToClass extends DSL {
    public function run() {
        $return = $this->dslfactory->factory('goToInstruction');

        return $return->run(Analyzer::CLASSES_ALL);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class HasNoTryCatch extends DSL {
    public function run() {
        $return = $this->dslfactory->factory('hasNoInstruction');

        return $return->run('Try');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class HasNo extends DSL {
    public function run() {
        list($property) = func_get_args();

        assert($this->assertProperty($property));

        return new Command('not(has(***))', array($property));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Analyzer\Analyzer;

class GoToFunction extends DSL {
    public function run(): Command {
        if (func_num_args() === 1) {
            list($atoms) = func_get_args();
        } else {
            $atoms = Analyzer::FUNCTIONS_ALL;
        }

        $this->assertAtom($atoms);
        $linksDown = self::$linksDown;
        $diff = $this->normalizeAtoms($atoms);

        $gremlin = <<<GREMLIN
repeat( __.in($linksDown) ).until(hasLabel(within(***)) )
GREMLIN;

        return new Command($gremlin, array($diff));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class ClassDefinition extends DSL {
    public function run() {
        return new Command('in("DEFINITION")');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class Has extends DSL {
    public function run() {
        assert(func_num_args() === 1, 'Wrong number of arguments with ' . __METHOD__ . func_num_args() . ' provided.' . PHP_EOL . print_r(debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS), true));

        list($property) = func_get_args();

        assert($this->assertProperty($property));

        return new Command('has(***)', array($property));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Analyzer\Analyzer;

class HasNoClassInterfaceTrait extends DSL {
    public function run() {
        $return = $this->dslfactory->factory('hasNoInstruction');

        return $return->run(Analyzer::CIT);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class HasClassDefinition extends DSL {
    public function run() {
        assert(func_num_args() === 1, 'Wrong number of argument for ' . __METHOD__ . '. 1 is expected, ' . func_num_args() . ' provided');
        list($type) = func_get_args();

        return new Command('where(__.in("DEFINITION").hasLabel(within(***)) )', makeArray($type) );
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class IsLocalClass extends DSL {
    public function run(): Command {
        $linksDown = self::$linksDown;

        $gremlin = <<<GREMLIN
sideEffect{ inside = it.get().value("fullnspath"); }
.where(  __.repeat( __.in({$linksDown}) ).until( hasLabel("Class") ).filter{ it.get().value("fullnspath") == inside; }.count().is(eq(1)) )

GREMLIN;

        return new Command($gremlin);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class GoToParent extends DSL {
    public function run(): Command {
        return new Command('out("EXTENDS").in("DEFINITION")');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class InIs extends DSL {
    public function run() {
        if (func_num_args() === 1) {
            list($link) = func_get_args();
        } else {
            $link = array();
        }

        $this->assertLink($link);

        if (empty($link)) {
            return new Command('in( )');
        }

        $diff = $this->normalizeLinks($link);
        if (empty($diff)) {
            return new Command(Query::STOP_QUERY);
        } else {
            return new Command('in(' . $this->SorA($diff) . ')');
        }
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class OutIsNot extends DSL {
    public function run() {
        assert(func_num_args() <= 1, 'Too many arguments for ' . __METHOD__);
        list($link) = func_get_args();

        $this->assertLink($link);
        $diff = $this->normalizeLinks($link);

        if (empty($diff)) {
            return new Command(Query::NO_QUERY);
        } else {
            return new Command('not( where( __.out(' . $this->SorA($diff) . ')) )');
        }
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class HasInterfaceDefinition extends DSL {
    public function run() {
        return new Command('where(__.in("DEFINITION").hasLabel("Interface") )');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class GoToAllDefinitions extends DSL {
    public function run() {
        return new Command('emit( ).repeat( __.in("OVERWRITE").not(__.in("PPP").has("visibility", "private")) ).times(' . self::$MAX_LOOPING . ')');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class IsUsed extends DSL {
    public function run() {
        if (func_num_args() === 1) {
            list($times) = func_get_args();
        } else {
            $times = 1;
        }

        $gremlin = <<<GREMLIN
where(
    __.out("DEFINITION").hasLabel("Variable", "Variableobject", "Variablearray", "Parameter", "String").count().is(eq($times))
     )
GREMLIN;

        return new Command($gremlin);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class HasNoUsage extends DSL {
    public function run(): Command {
        return new Command(<<<'GREMLIN'
not(
    where(                  
        __.out("DEFINITION").not(hasLabel("Usenamespace"))
    ) 
)
GREMLIN
);
    }
}
/*

*/

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;
use Exakat\Analyzer\Analyzer;

class AtomIs extends DSL {
    public function run() {
        if (func_num_args() === 2) {
            list($atoms, $flags) = func_get_args();
        } else {
            $atoms = func_get_arg(0);
            $flags = Analyzer::WITHOUT_CONSTANTS;
        }

        assert($this->assertAtom($atoms));
        $TIME_LIMIT = self::$TIME_LIMIT;
        $MAX_LOOPING = self::$MAX_LOOPING;

        $diff = $this->normalizeAtoms($atoms);
        if (empty($diff)) {
            return new Command(Query::STOP_QUERY);
        } elseif ($flags === Analyzer::WITH_VARIABLES) {
            // arrays, members, static members are not supported
            $gremlin = <<<GREMLIN
union( __.identity(), 
       __.repeat(
            __.timeLimit($TIME_LIMIT).hasLabel(within(["Variable", "Phpvariable", "Ternary", "Coalesce", "Parenthesis"]))
              .union( 
                 // literal local value
                  __.hasLabel(within(["Variable", "Phpvariable"])).in("DEFINITION").hasLabel("Variabledefinition").out("DEFAULT"),

                 // literal value, passed as an argument (Method, closure, function)
                  __.hasLabel(within(["Variable", "Phpvariable"])).in("DEFINITION").in("NAME").hasLabel('Parameter').as("p1").in("ARGUMENT").out("DEFINITION").optional(__.out("METHOD", "NEW")).out("ARGUMENT").as("p2").where("p1", eq("p2")).by("rank"),

                 // literal value, passed as an argument
                  __.hasLabel(within(["Ternary"])).out("THEN", "ELSE").not(hasLabel('Void')),

                // \$a ?? 'b'
                  __.hasLabel(within(["Coalesce"])).out("LEFT", "RIGHT"),

                // (\$a)
                  __.hasLabel(within(["Parenthesis"])).out("CODE")
                )
            ).times($MAX_LOOPING).emit()
    )
.hasLabel(within(***))
GREMLIN;
            return new Command($gremlin, array($diff));
        } elseif ($flags === Analyzer::WITH_CONSTANTS &&
                 array_intersect($diff, array('String', 'Concatenation', 'Ternary', 'Arrayliteral', 'Integer', 'Null', 'Boolean', 'Magicmethod', 'Float'))) {
            // arrays, members, static members are not supported
            $gremlin = <<<GREMLIN
union( __.identity(), 
       __.repeat(
            __.timeLimit($TIME_LIMIT).hasLabel(within(["Identifier", "Nsname", "Staticconstant", "Variable" , "Ternary", "Coalesce", "Parenthesis", "Functioncall", "Methodcall", "Staticmethodcall"]))
            .union( __.hasLabel(within(["Identifier", "Nsname", "Staticconstant"])).in("DEFINITION").out("VALUE"),
            
                      // local variable
                      __.hasLabel(within(["Variable"])).in("DEFINITION").hasLabel('Variabledefinition', 'Staticdefinition').out("DEFAULT"),
                      
                      // literal value, passed as an argument (Method, closure, function)
                      __.hasLabel(within(["Variable"])).in("DEFINITION").in("NAME").hasLabel("Parameter", "Ppp").out("DEFAULT"),
            
                      __.hasLabel(within(["Variable"])).in("DEFINITION").in("NAME").hasLabel("Parameter", "Ppp").as("p1").timeLimit($TIME_LIMIT).in("ARGUMENT").out("DEFINITION").optional(__.out("METHOD", "NEW")).out("ARGUMENT").as("p2").where("p1", eq("p2")).by("rank"),
            
                      // literal value, passed as an argument
                      __.hasLabel(within(["Ternary"])).out("THEN", "ELSE").not(hasLabel('Void')),
            
                      __.hasLabel(within(["Coalesce"])).out("LEFT", "RIGHT"),
            
                      __.hasLabel(within(["Parenthesis"])).out("CODE"),
            
                      __.hasLabel(within(["Functioncall", "Methodcall", "Staticmethodcall"])).in('DEFINITION').out('RETURNED')
                      )
            ).times(2).emit()
)
.hasLabel(within(***))
GREMLIN;
            return new Command($gremlin, array($atoms));
        } else {
            // WITHOUT_CONSTANTS or non-constant atoms
            return new Command('hasLabel(within(***))', array($diff));
        }
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class HasFunctionDefinition extends DSL {
    public function run(): Command {
        return new Command('where( __.in("DEFINITION").hasLabel("Function", "Method", "Closure") )');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class NotSameTypehintAs extends DSL {
    public function run() {
        assert(func_num_args() === 1, 'One argument ncessary for ' . __METHOD__);
        list($variable) = func_get_args();

        $this->assertVariable($variable);

        return new Command('not(where( __.out("RETURNTYPE", "TYPEHINT").filter{it.get().value("fullnspath") == ' . $variable . '} ) )');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Analyzer\Analyzer;

class GoToAllChildren extends DSL {
    public function run() {
        if (func_num_args() === 1) {
            list($self) = func_get_args();
        }  else {
            $self = Analyzer::INCLUDE_SELF;
        }

        $MAX_LOOPING = self::$MAX_LOOPING;

        if ($self === Analyzer::EXCLUDE_SELF) {
            $command = new Command(<<<GREMLIN
 as("gotoallchildren")
.repeat( __.out("DEFINITION")
           .in("EXTENDS", "IMPLEMENTS")
           .simplePath().from("gotoallchildren")
          )
          .emit( )
          .times($MAX_LOOPING)
GREMLIN
);
            return $command;
        } else {
            $command = new Command(<<<GREMLIN
 as("gotoallchildren")
.emit( )
.repeat( __.out("DEFINITION")
           .in("EXTENDS", "IMPLEMENTS")
           .simplePath().from("gotoallchildren")
          )
          .times($MAX_LOOPING)
GREMLIN
);
            return $command;
        }
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class IsNotNullable extends DSL {
    public function run(): Command {
        return new Command(<<<'GREMLIN'
 not( __.where( __.out("RETURNTYPE", "TYPEHINT").hasLabel("Null")))
.not( __.where( __.out("DEFAULT").hasLabel("Null").not(__.in("LEFT")) ))
GREMLIN
);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class Unique extends DSL {
    public function run(): Command {
        return new Command('unique()');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class PreviousSiblings extends DSL {
    public function run(): Command {
        if (func_num_args() === 1) {
            list($link) = func_get_args();
        } else {
            $link = 'EXPRESSION';
        }

        $hasIn = $this->dslfactory->factory('hasIn');
        $return = $hasIn->run($link);

        return $return->add(new Command('filter{it.get().value("rank") > 0}.sideEffect{sibling = it.get().value("rank");}.in("' . $link . '").out("' . $link . '").filter{sibling + 1 <= it.get().value("rank") }'));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class HasPropertyInside extends DSL {
    public function run() {
        list($property, $values) = func_get_args();

        assert($this->assertProperty($property));
        return new Command('where( __.emit( ).repeat( out(' . self::$linksDown . ') ).times(' . self::$MAX_LOOPING . ').has("' . $property . '", within(***)) )',
                           makeArray($values));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class CollectImplements extends DSL {
    public function run(): Command {
        if (func_num_args() === 1) {
            list($variable) = func_get_args();
        } else {
            $variable = 'interfaces';
        }

        $this->assertVariable($variable, self::VARIABLE_WRITE);

        $MAX_LOOPING = self::$MAX_LOOPING;
        $command = new Command(<<<GREMLIN
where( 
    __.sideEffect{ {$variable} = []; }
      .as("collectimplements")
      .emit( )
      .repeat( __.out("EXTENDS", "IMPLEMENTS")
                 .in("DEFINITION")
                 .hasLabel("Class", "Classanonymous", "Interface")
                 .simplePath().from("collectimplements")
              )
              .times($MAX_LOOPING)
              .hasLabel("Class", "Classanonymous", "Interface")
              .out("EXTENDS", "IMPLEMENTS")
              .sideEffect{ {$variable}.add(it.get().value("fullnspath")) ; }
              .fold() 
)
GREMLIN
);
        return $command;
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class CollectVariables extends DSL {
    public function run(): Command {
        switch(func_num_args()) {
            case 2:
                list($variable, $type) = func_get_args();
                break;

            case 1 :
                list($variable) = func_get_args();
                $type = 'fullcode';
                break;

            default:
                $variables = 'variables';
                $type = 'fullcode';
        }

        assert(in_array($type, array('fullcode', 'code')), 'collectVariable type should be code or fullcode');
        $this->assertVariable($variable, self::VARIABLE_WRITE);

        $CONTAINERS = makeList(array('Variable', 'Variableobject', 'Variablearray', 'Phpvariable', 'Member', 'Staticproperty', 'Array', 'This', ));
        $LINKS_DOWN = self::$linksDown;

        return new Command(<<<GREMLIN
sideEffect{ $variable = []; }.where(
    __.repeat( __.out($LINKS_DOWN)).emit()
      .hasLabel($CONTAINERS)
      .sideEffect{ 
          $variable.add(it.get().value("$type")); 
      }
      .fold()
)

GREMLIN
);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class GroupCount extends DSL {
    public function run(): Command {
        assert(func_num_args() === 1, 'Wrong number of argument for ' . __METHOD__ . '. 1 is expected, ' . func_num_args() . ' provided');
        list($column) = func_get_args();

        $this->assertProperty($column);
        return new Command("groupCount('m').by('$column')");
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class FunctionInside extends DSL {
    public function run(): Command {
        list($fullnspath) = func_get_args();

        // $fullcode is a name of a variable
        $gremlin = 'emit( ).repeat( __.out(' . self::$linksDown . ').not(hasLabel("Closure", "Classanonymous", "Function", "Class", "Trait")) ).times(' . self::$MAX_LOOPING . ').hasLabel("Functioncall").has("fullnspath", within(***))';
        return new Command($gremlin, array(makeArray($fullnspath)));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class IsNotMixedcase extends DSL {
    public function run() {
        if (func_num_args() === 1) {
            list($property) = func_get_args();
        } else {
            $property = 'fullcode';
        }

        assert($this->assertProperty($property));
        return new Command('filter{it.get().value("' . $property . '") == it.get().value("' . $property . '").toString().toLowerCase() || it.get().value("' . $property . '") == it.get().value("' . $property . '").toString().toUpperCase()}');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Analyzer\Analyzer;

class AnalyzerIsNot extends DSL {
    public function run() {
        list($analyzer) = func_get_args();

        $analyzer = makeArray($analyzer);

        if (($id = array_search('self', $analyzer)) !== false) {
            $analyzer[$id] = $this->analyzerQuoted;
        }
        $analyzer = array_map(Analyzer::class . '::getName', $analyzer);

        assert($this->assertAnalyzer($analyzer));

        return new Command('not( where( __.in("ANALYZED").has("analyzer", within(***))) )', array($analyzer));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Analyzer\Analyzer;

class NoDelimiterIs extends DSL {
    public function run() {
        assert(func_num_args() <= 2, 'Too many arguments for ' . __METHOD__);

        switch (func_num_args()) {
            case 2:
                list($code, $caseSensitive) = func_get_args();
                break;

            case 1:
                list($code) = func_get_args();
                $caseSensitive = Analyzer::CASE_INSENSITIVE;
                break;

            default:
                assert(false, 'No enought arguments for ' . __METHOD__);
        }

        $return = new Command('has("noDelimiter")');
        $propertyIs = $this->dslfactory->factory('propertyIs');
        $code = makeArray($code);

        return $return->add($propertyIs->run('noDelimiter', $code, $caseSensitive));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class FollowAlias extends DSL {
    public function run(): Command {

        $TIME_LIMIT = self::$TIME_LIMIT;

        switch(func_num_args()) {
            case 1:
                $loopings = (int) func_get_arg(0);
                break;

           default:
                $loopings = self::$MAX_LOOPING;
                break;
        }

        // Coalesce is not supported
        return new Command(<<<GREMLIN
emit().repeat(
    __.out("DEFINITION").in("DEFAULT").hasLabel("Variabledefinition")
).times($loopings)
GREMLIN
);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class HasIn extends DSL {
    public function run(): Command {
        list($links) = func_get_args();

        assert($this->assertLink($links));
        $diff = $this->normalizeLinks($links);

        if (empty($diff)) {
            return new Command(Query::STOP_QUERY);
        } else {
            return new Command('where( __.in(' . $this->SorA($diff) . ') )');
        }
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class Dedup extends DSL {
    public function run() {
        if (func_num_args() === 1) {
            list($by) = func_get_args();
        } else {
            $by = '';
        }

        if (empty($by)) {
            return new Command('dedup()');
        }

        if (is_array($by)) {
            foreach($by as $b) {
                assert($this->assertLabel($b));
            }
            return new Command('dedup(' . makeList($by) . ')');
        }

        assert($this->assertProperty($by));
        return new Command("dedup().by('$by')");
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class HasNoVariadicArgument extends DSL {
    public function run(): Command {
        return new Command('not(where(__.out("ARGUMENT").has("variadic", true)))');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Analyzer\Analyzer;

class HasNoLoop extends DSL {
    public function run() {
        $return = $this->dslfactory->factory('hasNoInstruction');

        return $return->run(Analyzer::LOOPS_ALL);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class GoToLiteralValue extends DSL {
    public function run() {
        return new Command('coalesce(__.in("DEFINITION").in("NAME").out("VALUE"), 
                                     __.in("DEFINITION").out("VALUE"), 
                                        __.filter{ true; })');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;
use Exakat\Analyzer\Analyzer;

class IsHash extends DSL {
    public function run() {
        switch (func_num_args()) {
            case 3 :
                list($property, $hash, $index) = func_get_args();
                $case = Analyzer::CASE_SENSITIVE;
                break;

            case 4 :
                list($property, $hash, $index, $case) = func_get_args();
                assert(in_array($case, array(Analyzer::CASE_INSENSITIVE, Analyzer::CASE_SENSITIVE)));
                break;

            default:
                assert(false, 'Wrong number of arguments for ' . __METHOD__);
        }

        if (empty($hash)) {
            return new Command(Query::STOP_QUERY);
        }

        assert($this->assertProperty($property));

        if ($case === Analyzer::CASE_INSENSITIVE) {
            return new Command("has(\"$property\").filter{ x = ***[$index]; x != null; }.filter{ [it.get().value(\"$property\").toLowerCase()].intersect(x) != []; }", array($hash));
        } else {
            return new Command("has(\"$property\").filter{ x = ***[$index]; x != null; }.filter{ [it.get().value(\"$property\")].intersect(x) != []}", array($hash));
        }
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class GroupFilter extends DSL {
    public function run() {
        assert(func_num_args() === 2, 'Wrong number of argument for ' . __METHOD__ . '. 2 are expected, ' . func_num_args() . ' provided');
        list($characteristic, $percentage) = func_get_args();

        if (substr(trim($characteristic), 0, 3) === 'it.') {
            $by = "by{ $characteristic }";
        } else {
            $by = "by{ \"$characteristic\" }";
        }

        $gremlin = <<<GREMLIN
groupCount("gf").$by.cap("gf").sideEffect{ s = it.get().values().sum(); }.next().findAll{ it.value < s * $percentage; }.keySet()
GREMLIN;
        return new Command($gremlin);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class RegexIs extends DSL {
    public function run() {
        assert(func_num_args() === 2, 'Wrong number of argument for ' . __METHOD__ . '. 2 are expected, ' . func_num_args() . ' provided');
        list($property, $regex) = func_get_args();

        $this->assertProperty($property);

        if ($property === 'code') {
            $values = $this->dictCode->grep($regex);

            if (empty($values)) {
                return new Command(Query::NO_QUERY);
            }

            return new Command('has("code", within(***) )', array($values));
        }

        return new Command(<<<GREMLIN
has("$property")
.filter{ (it.get().value("$property") =~ "$regex").asBoolean(); }
GREMLIN
                          );
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Analyzer\Analyzer;

class HasFunction extends DSL {
    public function run(): Command {
        $return = $this->dslfactory->factory('hasInstruction');

        return $return->run(Analyzer::FUNCTIONS_ALL);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class FunctionDefinition extends DSL {
    public function run(): Command {
        return new Command('in("DEFINITION").hasLabel("Function", "Method", "Magicmethod", "Closure")');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class Raw extends DSL {
    public function run() {
        $args = func_get_args();
        $query = array_shift($args);

        $query = trim($this->cleanAnalyzerName($query, $this->dependsOn));
        assert($query[0] !== '.', 'Raw() step shall not start with a . in the Gremlin Code');

        return new Command($query, $args);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Analyzer\Analyzer;

class FullnspathIs extends DSL {
    public function run() {
        if (func_num_args() === 2) {
            list($code, $caseSensitive) = func_get_args();
        } else {
            list($code) = func_get_args();
            $caseSensitive = Analyzer::CASE_INSENSITIVE;
        }

        $has = $this->dslfactory->factory('has');
        $return = $has->run('fullnspath');

        $propertyIs = $this->dslfactory->factory('propertyIs');
        $code = makeArray($code);

        return $return->add($propertyIs->run('fullnspath', $code, $caseSensitive));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class NoFullcodeInside extends DSL {
    public function run(): Command {
        list($fullcode) = func_get_args();

        // $fullcode is a name of a variable
        $gremlin = 'not( where( __.emit( ).repeat( out(' . self::$linksDown . ') ).times(' . self::$MAX_LOOPING . ').filter{ it.get().value("fullcode") == ' . $fullcode . '}) )';
        return new Command($gremlin);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class HasNoClassInterface extends DSL {
    public function run() {
        $return = $this->dslfactory->factory('hasNoInstruction');

        return $return->run(array('Class', 'Classanonymous', 'Interface'));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class HasNoIfthen extends DSL {
    public function run() {
        $return = $this->dslfactory->factory('hasNoInstruction');

        return $return->run('Ifthen');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class OutIs extends DSL {
    public function run() {
        assert(func_num_args() <= 1, 'Too many arguments for ' . __METHOD__);
        list($link) = func_get_args();

        if (empty($link)) {
            return new Command('out( )');
        }

        $this->assertLink($link);
        $diff = $this->normalizeLinks($link);

        if (empty($diff)) {
            return new Command(Query::STOP_QUERY);
        } else {
            return new Command('out(' . $this->SorA($diff) . ')');
        }
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class PreviousSibling extends DSL {
    public function run(): Command {
        if (func_num_args() === 1) {
            list($link) = func_get_args();
        } else {
            $link = 'EXPRESSION';
        }

        $hasIn = $this->dslfactory->factory('hasIn');
        $return = $hasIn->run($link);

        return $return->add(new Command('sideEffect{sibling = it.get().value("rank");}.in("' . $link . '").out("' . $link . '").filter{sibling - 1 == it.get().value("rank")}'));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class InIsIE extends DSL {
    public function run(): Command {
        assert(func_num_args() === 1, 'Wrong number of argument for ' . __METHOD__ . '. 1 is expected, ' . func_num_args() . ' provided');
        list($links) = func_get_args();

        assert($this->assertLink($links));

        $diff = $this->normalizeLinks($links);
        if (empty($diff)) {
            return new Command(Query::NO_QUERY);
        } else {
            return new Command('until(__.not(__.inE(' . $this->SorA($diff) . '))).repeat(__.in(' . $this->SorA($diff) . '))');
        }
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class NoUseDefinition extends DSL {
    public function run() {
        return new Command('not( where(__.out("DEFINITION").in("USE").hasLabel("Use")) )');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;
use Exakat\Analyzer\Analyzer;

class FunctioncallIs extends DSL {
    public function run() {
        list($fullnspath) = func_get_args();

        assert(func_num_args() === 1, 'Too many arguments for ' . __METHOD__);
        assert($fullnspath !== null, 'fullnspath can\'t be null in ' . __METHOD__);

        $diff = $this->normalizeFunctioncalls($fullnspath);

        if (empty($diff)) {
            return new Command(Query::STOP_QUERY);
        }

        $atomIs = $this->dslfactory->factory('atomIs');
        $return = $atomIs->run('Functioncall', Analyzer::WITHOUT_CONSTANTS);

        $has = $this->dslfactory->factory('has');
        $return->add($has->run('fullnspath'));

        $fullnspathIs = $this->dslfactory->factory('fullnspathIs');
        $return->add($fullnspathIs->run(array_values($diff), Analyzer::CASE_INSENSITIVE));

        return $return;
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class CodeIsPositiveInteger extends DSL {
    public function run() {
        return new Command('filter{ if( it.code.isInteger()) { it.code > 0; } else { true; }}');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class HasVariadicArgument extends DSL {
    public function run(): Command {
        return new Command('where(__.out("ARGUMENT").has("variadic", true))');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class HasParent extends DSL {
    public function run(): Command {
        assert(func_num_args() === 2, 'Wrong number of argument for ' . __METHOD__ . '. 2 are expected, ' . func_num_args() . ' provided');
        list($parentClass, $ins) = func_get_args();

        if (empty($ins)){
            return new Command(Query::NO_QUERY);
        }

        $this->assertAtom($parentClass);
        $this->assertLink($ins);
        $diff = $this->normalizeAtoms($parentClass);

        if (empty($diff)){
            return new Command(Query::STOP_QUERY);
        }

        $in = $this->makeLinks($ins, 'in');

        return new Command("where( __$in.hasLabel(within(***)))", array($diff));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Analyzer\Analyzer;

class HasLoop extends DSL {
    public function run(): Command {
        $return = $this->dslfactory->factory('hasInstruction');

        return $return->run(Analyzer::LOOPS_ALL);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class IsComplexExpression extends DSL {
    public function run() {
        if (func_num_args() === 1) {
            list($threshold) = func_get_args();
        } else {
            $threshold = 30;
        }

        $MAX_LOOPING = self::$MAX_LOOPING;
        $linksDown = self::$linksDown;

        $gremlin = <<<GREMLIN
not( where( __.has("constant", true ) ) )
.where(
  __.emit().repeat( __.not(hasLabel("Closure", "Classanonymous") ).out({$linksDown})).times($MAX_LOOPING)
    .not(hasLabel("Closure", "Classanonymous") )
    .count().is(gt({$threshold})) 
)

GREMLIN;
        return new Command($gremlin);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class PreviousCalls extends DSL {
    public function run(): Command {

        if(func_num_args() === 1) {
            $times = abs((int) func_get_arg(0));
        } else {
            $times = 1;
        }
        // Starting from Parameter, going to next parameter
        // Need a number of executions?

        if ($times === 0) {
            return new Command(Query::NO_QUERY);
        } else {
            $TIME_LIMIT = self::$TIME_LIMIT;

            return new Command(<<<GREMLIN
emit().repeat(
     __
     .timeLimit($TIME_LIMIT)
     .sideEffect{ ranked = it.get().value('rank');}
     .in('ARGUMENT')
     .out('DEFINITION')
     .out('ARGUMENT')
     .filter{ it.get().value('rank') == ranked;}
     .in('DEFINITION')
     .in("NAME")

).times($times)
GREMLIN
);
        }
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Exceptions\DSLException;
use Exakat\Tasks\Helpers\Atom;
use Exakat\GraphElements;
use Exakat\Analyzer\Analyzer;

abstract class DSL {
    const VARIABLE_WRITE = true;
    const VARIABLE_READ  = false;

    const LABEL_SET  = true;
    const LABEL_GO   = false;

    const LEVELS_TO_ANALYSE = 4;

    const PROPERTIES = array('id',
                             'atom',
                             'code',
                             'lccode',
                             'fullcode',
                             'line',
                             'token',
                             'rank',
                             'alternative',
                             'reference',
                             'heredoc',
                             'delimiter',
                             'noDelimiter',
                             'variadic',
                             'count',
                             'fullnspath',
                             'absolute',
                             'alias',
                             'origin',
                             'encoding',
                             'block',
                             'intval',
                             'strval',
                             'boolean',
                             'enclosing',
                             'args_max',
                             'args_min',
                             'bracket',
                             'flexible',
                             'close_tag',
                             'aliased',
                             'propertyname',
                             'constant',
                             'root',
                             'globalvar',
                             'binaryString',
                             'isNull',
                             'visibility',
                             'final',
                             'abstract',
                             'static',
                             'noscream',
                             'trailing',
                             'isPhp',
                             );

    protected const BOOLEAN_PROPERTY = array('abstract',
                                             'absolute',
                                             'aliased',
                                             'alternative',
                                             'bracket',
                                             'constant',
                                             'enclosing',
                                             'final',
                                             'heredoc',
                                             'isModified',
                                             'isRead',
                                             'noscream',
                                             'reference',
                                             'static',
                                             'trailing',
                                             'variadic',
                                             'isPhp',
                                             );

    protected const INTEGER_PROPERTY = array('line',
                                             'rank',
                                             'propertyname',
                                             'boolean',
                                             'count',
                                             'code',
                                             'lccode',
                                             );

    protected $dslfactory             = null;
    protected $availableAtoms         = array();
    protected $availableLinks         = array();
    protected $availableFunctioncalls = array();
    protected $availableVariables     = array(); // This one is per query
    protected $availableLabels        = array(); // This one is per query
    protected $dictCode               = null;
    protected $ignoredcit             = null;
    protected $ignoredfunctions       = null;
    protected $ignoredconstants       = null;
    protected $dependsOn              = array();
    protected $analyzerQuoted         = '';

    protected static $linksDown     = '';
    protected static $MAX_LOOPING   = Analyzer::MAX_LOOPING;
    protected static $TIME_LIMIT    = Analyzer::TIME_LIMIT;

    public function __construct(DSLfactory $dslfactory,
                                array $availableAtoms = array(),
                                array $availableLinks,
                                array $availableFunctioncalls,
                                array &$availableVariables,
                                array &$availableLabels,
                                $ignoredcit,
                                $ignoredfunctions,
                                $ignoredconstants,
                                $dependsOn,
                                $analyzerQuoted) {
        $this->dslfactory             = $dslfactory;
        $this->dictCode               = exakat('dictionary');
        $this->availableAtoms         = $availableAtoms;
        $this->availableLinks         = $availableLinks;
        $this->availableFunctioncalls = $availableFunctioncalls;
        $this->availableVariables     = &$availableVariables;
        $this->availableLabels        = &$availableLabels;
        $this->ignoredcit             = $ignoredcit;
        $this->ignoredfunctions       = $ignoredfunctions;
        $this->ignoredconstants       = $ignoredconstants;
        $this->dependsOn              = $dependsOn;
        $this->analyzerQuoted         = $analyzerQuoted;

        if (empty(self::$linksDown)) {
            self::$linksDown = GraphElements::linksAsList();
        }
    }

    abstract public function run();

    protected function normalizeAtoms($atoms): array {
        $atoms = makeArray($atoms);
        return array_values(array_intersect($atoms, $this->availableAtoms));
    }

    protected function normalizeLinks($links): array {
        $links = makeArray($links);
        return array_values(array_intersect($links, $this->availableLinks));
    }

    protected function normalizeFunctioncalls($fullnspaths): array {
        $fullnspaths = makeArray($fullnspaths);
        return array_values(array_intersect($fullnspaths, $this->availableFunctioncalls));
    }

    protected function SorA($value) {
        if (is_array($value)) {
            return makeList($value);
        } elseif (is_string($value)) {
            return '"' . $value . '"';
        } else {
            assert(false, '$v is not a string or an array');
        }
    }

    protected function assertLabel($name, $read = self::LABEL_GO): bool {
        if (is_array($name)) {
            foreach($name as $n) {
                $this->assertLabel($n, $read);
            }
            return true;
        }

        if ($read === self::LABEL_SET) {
            assert(!in_array($name, $this->availableLabels), "Label '$name' is already set : " . join(', ', $this->availableLabels));
            $this->availableLabels[] = $name;
        } else {
            assert(in_array($name, $this->availableLabels), "Label '$name' is not set");
        }
        return true;
    }

    protected function isVariable(string $name): bool {
        return in_array($name, $this->availableVariables);
    }

    protected function assertVariable(string $name, bool $write = self::VARIABLE_READ): bool {
        if ($write === self::VARIABLE_WRITE) {
            assert(!$this->isVariable($name), "Variable '$name' is already taken : " . print_r(debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS), true) . PHP_EOL . print_r($this, true));
            assert(!in_array($name, self::PROPERTIES), "Don't use a property name as a variable ($name)");
            $this->availableVariables[] = $name;
        } else {
            assert($this->isVariable($name), "Variable '$name' is not defined");
        }
        return true;
    }

    protected function assertLink($link): bool {
        if (is_string($link)) {
            if(in_array($link, array('KEY', 'ELEMENT', 'PROPERTY')) ) {
                throw new DSLException("$link is no more", self::LEVELS_TO_ANALYSE);
            }
            if($link !== strtoupper($link)) {
                throw new DSLException("Wrong format for LINK name : $link", self::LEVELS_TO_ANALYSE);
            }
            if(preg_match('/[^A-Z]/', $link)) {
                throw new DSLException("Not a link : $link", self::LEVELS_TO_ANALYSE);
            }
        } elseif (is_array($link)) {
            foreach($link as $l) {
                $this->assertLink($l);
            }
        } else {
            assert(false, 'Unsupported type for link : ' . gettype($link));
        }
        return true;
    }

    protected function assertTokens($token): bool {
        if (is_string($token)) {
            assert(substr($token, 0, 2) === 'T_', "Wrong prefix for TOKEN name : $token");
            assert($token === strtoupper($token), "Wrong format for TOKEN name : $token");
        } elseif (is_array($token)) {
            foreach($token as $t) {
                assert(substr($t, 0, 2) === 'T_', "Wrong prefix for TOKEN name : $t");
                assert($t === strtoupper($t), "Wrong format for TOKEN name : $t");
            }
        } else {
            assert(false, 'Unsupported type for token : ' . gettype($token));
        }
        return true;
    }

    protected function assertAtom($atom): bool {
        if (is_string($atom)) {
            assert($atom === ucfirst(strtolower($atom)), "Wrong format for Atom name : $atom");
        } elseif (is_array($atom)) {
            foreach($atom as $a) {
                assert($a === ucfirst(strtolower($a)), "Wrong format for Atom name : $a");
            }
        } else {
            assert(false, 'Unsupported type for atom : ' . gettype($atom));
        }

        return true;
    }

    protected function assertAnalyzer($analyzer): bool {
        if (is_string($analyzer)) {
            assert(preg_match('#^[A-Z]\w+/[A-Z]\w+$#', $analyzer) !== false, "Wrong format for Analyzer : $analyzer");
            assert(class_exists('\\Exakat\\Analyzer\\' . str_replace('/', '\\', $analyzer)), "No such analyzer as $analyzer");
        } elseif (is_array($analyzer)) {
            foreach($analyzer as $a) {
                assert(preg_match('#^[A-Z]\W\w+/[A-Z]\W\w+$#', $a) !== false, "Wrong format for Analyzer : $a");
                assert(class_exists('\\Exakat\\Analyzer\\' . str_replace('/', '\\', $a)), "No such analyzer as $a");
            }
        } else {
            assert(false, 'Unsupported type for analyzer : ' . gettype($analyzer));
        }

        return true;
    }

    protected function isProperty($property): bool {
        return property_exists(Atom::class, $property) || in_array($property, array('label', 'self', 'ignored_dir', 'virtual', 'analyzer', 'propagated', 'isPhp'));
    }

    protected function assertProperty($property): bool {
        if (is_string($property)) {
            assert( ($property === mb_strtolower($property)) || in_array($property, array('noDelimiter', 'isRead', 'isModified', 'isPhp')) , 'Wrong format for property name : "' . $property . '"');
            assert($this->isProperty($property), 'No such property in Atom : "' . $property . '"');
        } elseif (is_array($property)) {
            $properties = $property;
            foreach($properties as $property) {
                assert( ($property === mb_strtolower($property)) || in_array($property, array('noDelimiter', 'isRead', 'isModified', 'isPhp')), "Wrong format for property name : '$property'");
                assert($this->isProperty($property), "No such property in Atom : '$property'");
            }
        } else {
            assert(false, 'Unsupported type for property : ' . gettype($property));
        }
        return true;
    }

    protected function cleanAnalyzerName(string $gremlin, array $dependencies = array()): string {
        $fullNames = array_map(array($this, 'makeBaseName'), $dependencies);

        return str_replace($dependencies, $fullNames, $gremlin);
    }

    public static function makeBaseName(string $className): string {
        // No Exakat, no Analyzer, using / instead of \
        return $className;
    }

    protected function tolowercase($code) {
        if (is_array($code)) {
            $code = array_map('mb_strtolower', $code);
        } elseif (is_scalar($code)) {
            $code = mb_strtolower($code);
        } else {
            assert(false, __METHOD__ . ' received an unprocessable object ' . gettype($code));
        }

        return $code;
    }

    protected function makeLinks($links, string $direction = 'in'): string {
        if (empty($links)) {
            return '.out( )';
        }

        $return = array();

        $links = makeArray($links);
        foreach($links as $l) {
            if (empty($l)) {
                $return[] = ".$direction( )";
            } elseif (is_array($l)) {
                $list = implode('", "', $l);
                $return[] = ".$direction(\"$list\")";
            } elseif (is_string($l)) {
                $return[] = ".$direction(\"$l\")";
            } else {
                assert(false, __METHOD__ . ' received an unprocessable object ' . gettype($l));
            }
        }

        return implode('', $return);
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class HasNoConstantDefinition extends DSL {
    public function run() {
        return new Command('not(where( __.in("DEFINITION") ) )');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class HasChildren extends DSL {
    public function run() {
        assert(func_num_args() === 2, 'Wrong number of argument for ' . __METHOD__ . '. 2 are expected, ' . func_num_args() . ' provided');
        list($childrenClass, $outs) = func_get_args();

        if (empty($outs)){
            return new Command(Query::NO_QUERY);
        }

        $this->assertAtom($childrenClass);
        $diff = $this->normalizeAtoms($childrenClass);
        if (empty($diff)){
            return new Command(Query::NO_QUERY);
        }

        $out = $this->makeLinks($outs, 'out');

        return new Command("where( __$out.hasLabel(within(***)) )", array($diff));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class IsNotLiteral extends DSL {
    public function run() {
        // Closures are literal if not using a variable from the context
        return new Command(<<<'GREMLIN'
not( 
    __.hasLabel("Integer", "Boolean", "Null", "Magicconstant", "Float", "String", "Heredoc", "Closure", "Arrayliteral")
      .has("constant", true) 
)

GREMLIN
);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class HasNoInstruction extends DSL {
    public function run() {
        if (func_num_args() === 1) {
            list($atoms) = func_get_args();
        } else {
            $atoms = 'Namespaces';
        }

        assert($this->assertAtom($atoms));
        $diff = $this->normalizeAtoms($atoms);
        if (empty($diff)) {
            return new Command(Query::NO_QUERY);
        }

        $stop = array('File');
        $stop = array_unique(array_merge($stop, $diff));

        $linksDown = self::$linksDown;

        $gremlin = <<<GREMLIN
not( 
    where( 
         __.emit( ).repeat(__.in({$linksDown}))
                   .until(hasLabel(within(***)))
                   .hasLabel(within(***))
         ) 
    )
GREMLIN;
        return new Command($gremlin, array($stop, $diff));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class FollowExpression extends DSL {
    public function run(): Command {
        $MAX_LOOPING = self::$MAX_LOOPING;
        $linksDown = self::$linksDown;

        // Coalesce is not supported
        return new Command(<<<GREMLIN
emit( ).repeat( 
    __.coalesce(__.out("THEN", "ELSE", "CODE"), 
                __.filter{true})
      .out({$linksDown}) 
      )
.times($MAX_LOOPING) 
GREMLIN
);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class IsPropertyDefined extends DSL {
    public function run(): Command {
        // check for DEFINTION link and the Propertydefinition atom
        return new Command('where( __.in("DEFINITION").hasLabel("Propertydefinition"))');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class GoToArray extends DSL {
    public function run(): Command {
        return new Command('emit( ).repeat( __.in("VARIABLE", "INDEX")).until( where(__.in("VARIABLE", "INDEX").hasLabel("Array").count().is(eq(0)) ) )');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class HasNoInterface extends DSL {
    public function run() {
        $return = $this->dslfactory->factory('hasNoInstruction');
        return $return->run('Interface');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class ProcessIndentingAverage extends DSL {
    public function run(): Command {
        assert(func_num_args() === 2, 'Wrong number of argument for ' . __METHOD__ . '. 2 is expected, ' . func_num_args() . ' provided');

        $indentationThreshold = abs((float) func_get_arg(0));
        $minimumSize          = abs((int) func_get_arg(1));

        if ($indentationThreshold === 0) {
            return self::NO_QUERY;
        }

        $MAX_LOOPING = self::$MAX_LOOPING;

        // round() is used for lone blocks in the code
        // it may be excessive
        $command = new Command(<<<GREMLIN
where(
    __.sideEffect{ levels = []; }
      .repeat( __.out("BLOCK", "EXPRESSION", "THEN", "ELSE", "CASES")).emit().times($MAX_LOOPING)
      .not(hasLabel("Sequence", "Block", "Void"))
      .path()
      .sideEffect{ levels.add(Math.round((it.get().size() - 1 ) / 2 - 1)); }
      .fold()
      .filter{ levels != [];}
).filter{ levels.size() >= $minimumSize && levels.sum() / levels.size() >= $indentationThreshold}
GREMLIN
);

        return $command;
    }
}

/* debugging purposes
.sideEffect{ name = it.get().value('fullcode'); }
.where(
    __.sideEffect{ levels = []; fullcodes = [];}
      .repeat( __.out('BLOCK', 'EXPRESSION', 'THEN', 'ELSE', 'CASES')).emit().times(100)
      .not(hasLabel('Sequence', 'Block', "Void"))
      .sideEffect{ fullcodes.add(it.get().value('fullcode'));}
      .path()
      .sideEffect{ levels.add(Math.round((it.get().size() - 1 ) / 2 - 1)); }
      .fold()
)
//.filter{ levels.sum() / levels.size() > 1}
.map{['name':name, 'levels':levels, 'average':levels.sum() / levels.size(), 'max':levels.max(), 'fullcode':fullcodes ];}

*/
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class HasTraitDefinition extends DSL {
    public function run() {
        return new Command('where(__.in("DEFINITION").hasLabel("Trait") )');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class Trim extends DSL {
    public function run() {
        switch (func_get_args()) {
            case 2:
                list($variable, $chars) = func_get_args();
                break 1;

            case 1:
                $variable = func_get_arg(0);
                $chars = '\'\"';
                break 1;

            default:
                assert(false, 'Not enough arguments for ' . __METHOD__);
        }

        $this->assertVariable($variable);

        return new Command('sideEffect{' . $variable . '.replaceFirst("^[' . $chars . ']?(.*?)[' . $chars . ']?\$", "\$1"); }');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class OutIsIE extends DSL {
    public function run(): Command {
        assert(func_num_args() === 1, 'Too many arguments for ' . __METHOD__);
        list($links) = func_get_args();
        assert($this->assertLink($links));

        $diff = $this->normalizeLinks($links);
        if (empty($diff)) {
            return new Command(Query::NO_QUERY);
        }

        return new Command('until( __.not(outE(' . $this->SorA($diff) . ')) ).repeat(out(' . $this->SorA($diff) . '))');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;
use Exakat\Analyzer\Analyzer;

class PropertyIsNot extends DSL {
    public function run() {
        list($property, $code, $caseSensitive) = func_get_args();

        assert($this->assertProperty($property));

        if (is_array($code) && empty($code) ) {
            return new Command(Query::NO_QUERY);
        }

        if ($caseSensitive === Analyzer::CASE_SENSITIVE) {
            $caseSensitive = '';
        } elseif ($caseSensitive === Analyzer::CASE_INSENSITIVE) {
            $code = $this->tolowercase($code);
            $caseSensitive = '.toString().toLowerCase()';
        } else {
            assert(false, 'No such case sensitivity');
        }

        if (is_array($code) && !empty(array_intersect($code, $this->availableVariables))) {
            return new Command('filter{it.get().value("' . $property . '")' . $caseSensitive . ' != ' . $code[0] . '}', array());
        } elseif (is_string($code) && in_array($code, $this->availableVariables)) {
            return new Command(<<<GREMLIN
filter{
    if ($code instanceof java.util.List) {
        !(it.get().value("$property")$caseSensitive in $code);
    } else {
        it.get().value("$property")$caseSensitive != $code;
    }
}
GREMLIN
, array());
        } elseif (is_array($code)) {
            return new Command('filter{ !(it.get().value("' . $property . '")' . $caseSensitive . ' in ***); }', array($code));
        } else {
            return new Command('filter{it.get().value("' . $property . '")' . $caseSensitive . ' != ***}', array($code));
        }
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class IsNotInheritedMethod extends DSL {
    public function run() {
        $gremlin = <<<'GREMLIN'
not( 
    where( __.out("OVERWRITE")
             .not( where( __.has("abstract", true) ) ) 
             .not( where( __.has("visibility", "private") ) ) 
             .not( where( __.in("METHOD", "MAGICMETHOD").hasLabel("Interface") ) ) 
    )
)
GREMLIN;

        return new Command($gremlin);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class NotExtending extends DSL {
    public function run(): Command {
        list($fullnspath) = func_get_args();

        $MAX_LOOPING = self::$MAX_LOOPING;
        return new Command(<<<GREMLIN
not(
    where( __.emit().repeat( __.out("EXTENDS").in("DEFINITION")).times($MAX_LOOPING)
                    .out("EXTENDS").has("fullnspath", within(***)) ) 
)
GREMLIN
, array($fullnspath));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class AddEFrom extends DSL {
    public function run() {
        list($edgeName, $from) = func_get_args();

        assert($this->assertLabel($from, self::LABEL_GO));

        return new Command("addE(\"$edgeName\").from(\"$from\")");
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class SaveOutAs extends DSL {
    public function run() {
        switch(func_num_args()) {
            case 3:
                list($name, $out, $sort) = func_get_args();
                break 1;

            case 2:
                list($name, $out) = func_get_args();
                $sort = 'rank';
                break 1;

            case 1:
                list($name) = func_get_args();
                $sort = 'rank';
                $out = 'ARGUMENT';
                break 1;

            default:
                assert(false, 'Wrong number of argument for ' . __METHOD__ . '. 1 to 3 are expected, ' . func_num_args() . ' provided');
        }

        // Calculate the arglist, normalized it, then put it in a variable
        // This needs to be in Arguments, (both Functioncall or Function)
        if (empty($sort)) {
            $sortStep = '';
        } else {
            $sortStep = ".sort{it.value(\"$sort\")}";
        }

        $check = $this->dslfactory->factory('initVariable');
        $return = $check->run($name);

        $gremlin = <<<GREMLIN
sideEffect{ 
    s = [];
    it.get().vertices(OUT, "$out")$sortStep.each{ 
        s.push(it.value('code'));
    };
    $name = s.join(', ');
    true;
}

GREMLIN;
        return $return->add(new Command($gremlin));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class HasClassTrait extends DSL {
    public function run() {
        $return = $this->dslfactory->factory('hasInstruction');

        return $return->run(array('Class', 'Classanonymous', 'Trait'));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class FullcodeLength extends DSL {
    public function run(): Command {
        assert(func_num_args() === 1, 'Wrong number of argument for ' . __METHOD__ . '. 1 is expected, ' . func_num_args() . ' provided');
        list($length) = func_get_args();

        return new Command('filter{it.get().value("fullcode").length() ' . $length . '}');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class IsVisible extends DSL {
    const VISIBLE_ABOVE = 1;
    const VISIBLE_BELOW = 2;
    const ALL_VISIBLE   = array(self::VISIBLE_ABOVE, self::VISIBLE_BELOW);

    public function run() {
        switch (func_num_args()) {
            case 2:
                list($variable, $by) = func_get_args();
                break;

            case 1:
                list($variable) = func_get_args();
                $by = self::VISIBLE_ABOVE;
                break;

            default:
                assert(false, 'wrong number of argument for ' . __METHOD__);
        }

        $this->assertVariable($variable, self::VARIABLE_READ);

        if (!in_array($by, self::ALL_VISIBLE)) {
            $by = self::VISIBLE_ABOVE;
        }

        if ($by === self::VISIBLE_ABOVE) {
            // The incoming variable is located above the current one
            // This is covariant :
            return new Command(<<<GREMLIN
filter{ 
    if (it.get().properties("visibility").any()) { 
        if ($variable == "private") {
            it.get().value("visibility") in ["private", "protected", "public", "none"];
        } else if ($variable == "protected") {
            it.get().value("visibility") in ["protected", "public", "none"];
        } else if ($variable == "public") {
            it.get().value("visibility") in ["public", "none"];
        } else if ($variable == "none") {
            it.get().value("visibility") in ["public", "none"];
        } else {
            false;
        }
    } else { 
        false; 
    }
}
GREMLIN
            );
        } elseif ($by === self::VISIBLE_BELOW) {
            // The incoming variable is located below the current one
            // This is contravariant : it only accepts lesser visibilities
            return new Command(<<<GREMLIN
filter{ 
    if (it.get().properties("visibility").any()) { 
        if ($variable == "private") {
            it.get().value("visibility") in ["private"];
        } else if ($variable == "protected") {
            it.get().value("visibility") in ["private", "protected"];
        } else if ($variable == "public") {
            it.get().value("visibility") in ["private", "protected", "public", "none"];
        } else if ($variable == "none") {
            it.get().value("visibility") in ["private", "protected", "public", "none"];
        } else {
            false;
        }
    } else { 
        false; 
    }
}
GREMLIN
            );
        }
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;
use Exakat\Analyzer\Analyzer;
use Exakat\Data\Dictionary;

class CodeIs extends DSL {
    public function run() {
        switch(func_num_args()) {
            case 1 :
                $code = func_get_arg(0);
                $translate = Analyzer::TRANSLATE;
                $caseSensitive = Analyzer::CASE_INSENSITIVE;
                break;

            case 2:
                $code = func_get_arg(0);
                $translate = func_get_arg(1);
                $caseSensitive = Analyzer::CASE_INSENSITIVE;
                break;

            default:
            case 3:
                list($code,$translate, $caseSensitive) = func_get_args();
        }

        if (is_array($code) && empty($code)) {
            return new Command(Query::STOP_QUERY);
        }

        $col = $caseSensitive === Analyzer::CASE_INSENSITIVE ? 'lccode' : 'code';

        if ($translate === Analyzer::TRANSLATE) {
            $translatedCode = array();
            $code = makeArray($code);
            $translatedCode = $this->dictCode->translate($code, $caseSensitive === Analyzer::CASE_INSENSITIVE ? Dictionary::CASE_INSENSITIVE : Dictionary::CASE_SENSITIVE);

            if (empty($translatedCode)) {
                return new Command(Query::STOP_QUERY);
            }

            return new Command("has(\"$col\", within(***))", array($translatedCode));
        } else {
            return new Command("has(\"$col\", within(***))", array(makeArray($code)));
        }
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class GoToInterface extends DSL {
    public function run() {
        $return = $this->dslfactory->factory('goToInstruction');

        return $return->run('Interface');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class IsNotUppercase extends DSL {
    public function run() {
        if (func_num_args() === 1) {
            list($property) = func_get_args();
        } else {
            $property = 'fullcode';
        }

        assert($this->assertProperty($property));
        if ($property === 'code') {
            return new Command('filter{it.get().value("code") != it.get().value("lccode").toUpperCase()}');
        } else {
            return new Command('filter{it.get().value("' . $property . '") != it.get().value("' . $property . '").toUpperCase()}');
        }
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class CollectTraits extends DSL {
    public function run(): Command {
        if (func_num_args() === 1) {
            list($variable) = func_get_args();
        } else {
            $variable = 'classes';
        }

        $this->assertVariable($variable, self::VARIABLE_WRITE);

        $command = new Command('where( 
__.sideEffect{ ' . $variable . ' = []; }
  .out("USE")
  .out("USE")
  .sideEffect{ ' . $variable . '.add(it.get().value("fullnspath")) ; }
  .fold() 
)
');
        return $command;
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class HasInstruction extends DSL {
    public function run() {
        if (func_num_args() === 1) {
            list($atoms) = func_get_args();
        } else {
            $atoms = 'Namespaces';
        }

        $this->assertAtom($atoms);
        $diff = $this->normalizeAtoms($atoms);

        if (empty($diff)) {
            return new Command(Query::STOP_QUERY);
        }

        $linksDown = self::$linksDown;

        return new Command(<<<GREMLIN
where( 
__.repeat( __.in({$linksDown}) ).until(hasLabel("File")).emit( ).hasLabel(within(***))
    )
GREMLIN
, array($diff) );
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Analyzer\Analyzer;

class GoToLoop extends DSL {
    public function run() {
        $return = $this->dslfactory->factory('goToInstruction');

        return $return->run(Analyzer::LOOPS_ALL);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class GoToNamespace extends DSL {
    public function run(): Command {
        $return = $this->dslfactory->factory('goToInstruction');

        return $return->run(array('Namespace', 'Php'));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class ReturnCount extends DSL {
    public function run() {
        return new Command('count()');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class Optional extends DSL {
    public function run(): Command {
        assert(func_num_args() === 1, 'Wrong number of arguments with ' . __METHOD__ . '. ' . func_num_args() . ' provided, while 1 is expected.');
        list($filter) = func_get_args();

        if (!$filter instanceof Command) {
            assert(false, 'Not requires a Command object, it received a ' . gettype($filter));
        }

        $filter->gremlin = "optional($filter->gremlin)";
        return $filter;
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Analyzer\Analyzer;

class SamePropertyAsArray extends DSL {
    public function run() {
        if (func_num_args() === 2) {
            list($property, $name) = func_get_args();
            $caseSensitive = Analyzer::CASE_SENSITIVE;
        } else {
            list($property, $name, $caseSensitive) = func_get_args();
        }

        $this->assertProperty($property);
        $this->assertVariable($name);

        if ($property === 'label') {
            return new Command('filter{ it.get().label() in ' . $name . '}');
        } elseif ($property === 'id') {
            return new Command('filter{ it.get().id() in ' . $name . '}');
        } elseif ($property === 'self') {
            return new Command('filter{ it.get() in ' . $name . '}');
        } elseif ($property === 'code' || $property === 'lccode') {
            if ($caseSensitive === Analyzer::CASE_SENSITIVE) {
                return new Command('filter{ it.get().value("code") in ' . $name . '}');
            } else {
                return new Command('filter{ it.get().value("lccode") in ' . $name . '}');
            }
        } elseif (in_array($property, self::INTEGER_PROPERTY, \STRICT_COMPARISON)) {
            return new Command('filter{ it.get().value("' . $property . '") in ' . $name . '}');
        } else {
            $caseSensitive = $caseSensitive === Analyzer::CASE_SENSITIVE ? '' : '.toLowerCase()';

            return new Command('filter{ it.get().value("' . $property . '")' . $caseSensitive . ' in ' . $name . $caseSensitive . '}');
        }
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class IsUppercase extends DSL {
    public function run() {
        if (func_num_args() === 1) {
            list($property) = func_get_args();
        } else {
            $property = 'fullcode';
        }

        return new Command('filter{it.get().value("' . $property . '") == it.get().value("' . $property . '").toUpperCase()}');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class NextCalls extends DSL {
    public function run(): Command {

        if(func_num_args() === 1) {
            $times = abs((int) func_get_arg(0));
        } else {
            $times = 1;
        }

        // Starting from Parameter, going to next parameter
        // Need a number of executions?

        if ($times === 0) {
            return new Command(Query::NO_QUERY);
        } else {
            return new Command(<<<GREMLIN
emit().repeat(
     __
     .out("NAME")
     .out("DEFINITION")
     .has("rank")
    // .as("ranked")
     .sideEffect{ ranked = it.get().value('rank');}
     .in("ARGUMENT")
     .in("DEFINITION")
     .out("ARGUMENT")
     .filter{ it.get().value('rank') == ranked;}
    // .where("rank", is(eq("ranked")).by("rank"))
).times($times)
GREMLIN
);
        }
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class InterfaceDefinition extends DSL {
    public function run() {
        return new Command('in("DEFINITION")');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;
use Exakat\Analyzer\Analyzer;

class AtomIsNot extends DSL {
    public function run() {
        if (func_num_args() === 2) {
            list($atoms, $flags) = func_get_args();
        } else {
            list($atoms) = func_get_args();
            $flags = Analyzer::WITHOUT_CONSTANTS;
        }

        assert(func_num_args() <= 2, 'Too many arguments for ' . __METHOD__);
        $this->assertAtom($atoms);
        $diff = $this->normalizeAtoms($atoms);
        if (empty($diff)) {
            return new Command(Query::NO_QUERY);
        }

        if ($flags === Analyzer::WITH_CONSTANTS &&
                 array_intersect($diff, array('String', 'Concatenation', 'Ternary', 'Arrayliteral', 'Integer', 'Null', 'Boolean', 'Magicmethod', 'Float'))) {
            // Ternary are unsupported
            // arrays, members, static members are not supported
            $gremlin = <<<'GREMLIN'
coalesce( __.hasLabel(within(["Identifier", "Nsname", "Staticconstant"])).in("DEFINITION").out("VALUE"),
            // Local constant
          __.hasLabel(within(["Variable"])).in("DEFINITION").out("DEFAULT"),

          // local variable
          __.hasLabel(within(["Variable"])).in("DEFINITION").hasLabel('Variabledefinition', 'Staticdefinition').out("DEFAULT"),
          
          // literal value, passed as an argument (Method, closure, function)
          __.hasLabel(within(["Variable"])).in("DEFINITION").in("NAME").hasLabel('Parameter').sideEffect{ rank = it.get().value('rank');}.in("ARGUMENT").out("DEFINITION").optional(__.out("METHOD")).out("ARGUMENT").filter{ rank == it.get().value('rank');},

          // literal value, passed as an argument
          __.hasLabel(within(["Ternary"])).out("THEN", "ELSE").not(hasLabel('Void')),

          __.hasLabel(within(["Coalesce"])).out("LEFT", "RIGHT"),
          
          // default case, will be filtered by hasLabel()
          __.filter{true})
.not(hasLabel(within(***)))
GREMLIN;
            return new Command($gremlin, array($diff));
        } else {
            // WITHOUT_CONSTANTS or non-constant atoms
            return new Command('not(hasLabel(within(***)))', array($diff));
        }
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class ToResults extends DSL {
    public function run(): Command {
        $linksDown = self::$linksDown;
        return new Command(<<<GREMLIN
sideEffect{ line = it.get().value("line");
             fullcode = it.get().value("fullcode");
             file = "None"; 
             theFunction = ""; 
             theClass = ""; 
             theNamespace = ""; 
             }
.where( __.until( hasLabel("Project") ).repeat( 
    __.in({$linksDown})
      .sideEffect{ if (theFunction == "" && it.get().label() in ["Function", "Closure", "Arrayfunction", "Magicmethod", "Method"]) { theFunction = it.get().value("fullcode")} }
      .sideEffect{ if (theClass == ""    && it.get().label() in ["Class", "Trait", "Interface", "Classanonymous"]                ) { theClass = it.get().value("fullcode")   } }
      .sideEffect{ if (it.get().label() == "File") { file = it.get().value("fullcode")} }
       ).fold()
)
.map{ ["fullcode":fullcode, 
       "file":file, 
       "line":line, 
       "namespace":theNamespace, 
       "class":theClass, 
       "function":theFunction,
       "analyzer":"xxxx"];}
GREMLIN
);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class AtomInsideExpression extends DSL {
    public function run(): Command {
        list($atoms) = func_get_args();

        assert($this->assertAtom($atoms));
        $diff = $this->normalizeAtoms($atoms);
        if (empty($diff)) {
            return new Command(Query::STOP_QUERY);
        }

        $MAX_LOOPING  = self::$MAX_LOOPING;

        $gremlin = <<<GREMLIN
emit().repeat(
            __.coalesce( __.hasLabel(within(***)).out(),
                         __.hasLabel("Parenthesis").out("CODE"),
                         __.hasLabel("Assignation").out("RIGHT")
                       )
              )
      .times($MAX_LOOPING)
      .hasLabel(within(***))
GREMLIN;
        return new Command($gremlin, array($diff, $diff));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class IsMore extends DSL {
    public function run() {
        switch(func_num_args()) {
            case 2:
                list($value1, $value2) = func_get_args();

                $g1 = $this->makeGremlin($value1);
                $g2 = $this->makeGremlin($value2);

                return new Command("filter{ {$g1} > {$g2};}");

            case 1:
                list($value1) = func_get_args();

                $g1 = $this->makeGremlin($value1);

                return new Command("is(gt($g1))");

                break;

            default:
                assert(false, 'Wrong number of argument for ' . __METHOD__ . '. 2 or 1 are expected, ' . func_num_args() . ' provided');
        }
    }

    private function makeGremlin($value) {
        // It is an integer
        if (is_int($value)) {
            return $value;
        }

        // It is a gremlin variable
        if ($this->isVariable($value)) {
            assert($this->assertVariable($value));
            return $value;
        }

        // It is a gremlin property
        if ($this->isProperty($value)) {
            assert($this->assertProperty($value));
            return " it.get().value(\"{$value}\").toLong()";
        }

        assert(false, '$value must be int or gremlin variable or property in ' . __METHOD__);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class HasNoComparison extends DSL {
    public function run() {
        $return = $this->dslfactory->factory('HasNoInstruction');

        return $return->run('Comparison');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Analyzer\Analyzer;

class FullcodeIs extends DSL {
    public function run() {
        assert(func_num_args() <= 2, 'Too many arguments for ' . __METHOD__);

        switch (func_num_args()) {
            case 2:
                list($code, $caseSensitive) = func_get_args();
                break;

            case 1:
                list($code) = func_get_args();
                $caseSensitive = Analyzer::CASE_INSENSITIVE;
                break;

            default:
                assert(false, 'No enought arguments for ' . __METHOD__);
        }

        $return = new Command('has("fullcode")');
        $propertyIs = $this->dslfactory->factory('propertyIs');
        $code = makeArray($code);

        return $return->add($propertyIs->run('fullcode', $code, $caseSensitive));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class Extending extends DSL {
    public function run(): Command {
        list($fullnspath) = func_get_args();

        $MAX_LOOPING = self::$MAX_LOOPING;
        return new Command(<<<GREMLIN
where( __.emit().repeat( __.out("EXTENDS").in("DEFINITION")).times($MAX_LOOPING)
                .out("EXTENDS").has("fullnspath", within(***)) ) 
GREMLIN
, array($fullnspath));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class IsEqual extends DSL {
    public function run() {
        switch(func_num_args()) {
            case 2:
                list($value1, $value2) = func_get_args();

                $g1 = $this->makeGremlin($value1);
                $g2 = $this->makeGremlin($value2);

                return new Command("filter{ {$g1} == {$g2};}");

            case 1:
                list($value1) = func_get_args();

                $g1 = $this->makeGremlin($value1);

                return new Command("is(eq($g1))");

                break;

            default:
                assert(false, 'Wrong number of argument for ' . __METHOD__ . '. 2 or 1 are expected, ' . func_num_args() . ' provided');
        }
    }

    private function makeGremlin($value) {
        // It is an integer
        if (is_int($value)) {
            return $value;
        }

        // It is a gremlin variable
        if ($this->isVariable($value)) {
            assert($this->assertVariable($value));
            return $value;
        }

        // It is a gremlin property
        if ($this->isProperty($value)) {
            assert($this->assertProperty($value));
            return " it.get().value(\"{$value}\").toLong()";
        }

        assert(false, $value . ' must be an integer, atom property or gremlin variable in ' . __METHOD__);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;
use Exakat\Analyzer\Analyzer;

class FunctioncallIsNot extends DSL {
    public function run() {
        list($fullnspath) = func_get_args();

        assert(func_num_args() === 1, 'Too many arguments for ' . __METHOD__);
        assert($fullnspath !== null, 'fullnspath can\'t be null in ' . __METHOD__);

        $diff = $this->normalizeFunctioncalls($fullnspath);

        if (empty($diff)) {
            return new Command(Query::NO_QUERY);
        }

        $atomIs = $this->dslfactory->factory('atomIs');
        $return = $atomIs->run('Functioncall', Analyzer::WITHOUT_CONSTANTS);

        $has = $this->dslfactory->factory('has');
        $return->add($has->run('fullnspath'));

        $fullnspathIs = $this->dslfactory->factory('fullnspathIsNot');
        $return->add($fullnspathIs->run(array_values($diff)));

        return $return;
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class FullcodeInside extends DSL {
    public function run(): Command {
        list($fullcode) = func_get_args();

        // $fullcode is a name of a variable
        $gremlin = 'emit( ).repeat( out(' . self::$linksDown . ') ).times(' . self::$MAX_LOOPING . ').filter{ it.get().value("fullcode") == ' . $fullcode . '}';
        return new Command($gremlin);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Analyzer\Analyzer;

class AnalyzerIs extends DSL {
    public function run() {
        list($analyzer) = func_get_args();

        $analyzer = makeArray($analyzer);

        if (($id = array_search('self', $analyzer)) !== false) {
            $analyzer[$id] = $this->analyzerQuoted;
        }
        $analyzer = array_map(Analyzer::class . '::getName', $analyzer);

        assert($this->assertAnalyzer($analyzer));

        return new Command('where( __.in("ANALYZED").has("analyzer", within(***)))', array($analyzer));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class HasNoDefinition extends DSL {
    public function run(): Command {
        return new Command(<<<'GREMLIN'
not( 
    where(                  // Not a use expression
        __.out("DEFINITION").not( where(__.coalesce( __.in("NAME").in("USE"), __.in("USE"), __.in("USE")).hasLabel("Usenamespace") ) ) 
                            // Not a recursive expression
                            .where( 
                                __.repeat( __.inE().not(hasLabel("DEFINITION")).outV()).until(hasLabel("File", "Function")).where(neq("first"))
                            )
                            // Not a recursive level 2 expression
                            /*
                            .where(
                                __.repeat( __.inE().not(hasLabel("DEFINITION")).outV()).until(hasLabel("File", "Function")).where(neq("first")).as('second')
                                  .out("DEFINITION").repeat( __.inE().not(hasLabel("DEFINITION")).outV()).until(hasLabel("File", "Function"))
                            )
                            */
    )
)
GREMLIN
);
    }
}
/*

*/

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Analyzer\Analyzer;

class GoToClassInterfaceTrait extends DSL {
    public function run() {
        $return = $this->dslfactory->factory('goToInstruction');

        return $return->run(Analyzer::CIT);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Analyzer\Analyzer;

class NotSamePropertyAs extends DSL {
    public function run() {
        if (func_num_args() === 2) {
            list($property, $name) = func_get_args();
            $caseSensitive = Analyzer::CASE_SENSITIVE;
        } else {
            list($property, $name, $caseSensitive) = func_get_args();
        }

        assert($this->assertProperty($property));
        assert($this->assertVariable($name));

        switch ($property) {
            case 'label':
                return new Command("filter{ it.get().label() != $name }");

            case 'id':
                return new Command("filter{ it.get().id() != $name }");

            case 'self':
                return new Command("filter{ it.get() != $name }");

            case 'reference':
                return new Command('filter{ if (it.get().properties("reference").any()) { ' . $name . ' != it.get().value("reference");} else { ' . $name . ' != false; }}');

            default :
                if (in_array($property, self::BOOLEAN_PROPERTY, \STRICT_COMPARISON)) {
                    return new Command('filter{ if ( it.get().properties("' . $property . '").any()) { ' . $name . ' != it.get().value("' . $property . '")} else {' . $name . ' != false; }; }');
                } elseif (in_array($property, self::INTEGER_PROPERTY, \STRICT_COMPARISON)) {
                    return new Command("has(\"$property\").filter{ it.get().value(\"$property\") != $name}");
                } else {
                    if ($caseSensitive === Analyzer::CASE_SENSITIVE) {
                        $caseSensitive = '';
                    } else {
                        $caseSensitive = '.toLowerCase()';
                    }

                    return new Command("has(\"$property\").filter{ it.get().value(\"$property\")$caseSensitive != $name$caseSensitive}");
                }
        }
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class Is extends DSL {
    public function run() {
        assert(func_num_args() === 2, 'Wrong number of argument for ' . __METHOD__ . '. 2 are expected, ' . func_num_args() . ' provided');
        list($property, $value) = func_get_args();

        $this->assertProperty($property);

        if ($value === null) {
            return new Command('has("' . $property . '", null)');
        } elseif ($property === 'rank') {
            if ($value === 'last') {
                return new Command('filter{ it.get().vertices(IN, "ARGUMENT").next().value("count") == it.get().value("rank") + 1}');
            } elseif ($value === '2last') {
                return new Command('filter{ it.get().vertices(IN, "ARGUMENT").next().value("count") == it.get().value("rank") + 2}');
            } else {
                return new Command('has("rank", ' . (int) $value . ')');
            }
        } elseif (in_array($property, self::BOOLEAN_PROPERTY, \STRICT_COMPARISON)) {
            $value = $value === true ? 'true' : 'false';

            return new Command('filter{ if ( it.get().properties("' . $property . '").any()) { ' . $value . ' == it.get().value("' . $property . '")} else {' . $value . ' == false; }; }');
        } elseif ($value === true) {
            return new Command('has("' . $property . '", true)');
        } elseif ($value === false) {
            return new Command('has("' . $property . '", false)');
        } elseif (is_int($value)) {
            return new Command('has("' . $property . '", ' . $value . ')');
        } elseif (is_string($value)) {
            return new Command('has("' . $property . '", ***)', array($value));
        } elseif (is_array($value)) {
            return new Command('has("' . $property . '", within(***))', array($value));
        } else {
            assert(false, 'Not understood type for is : ' . gettype($value));
        }
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class HasTryCatch extends DSL {
    public function run(): Command {
        $return = $this->dslfactory->factory('hasInstruction');

        return $return->run('Try');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class OutWithoutLastRank extends DSL {
    public function run() {
        return new Command('sideEffect{dernier = it.get().value("count") - 1;}.out("EXPRESSION").filter{ it.get().value("rank") < dernier}');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class ProcessLevels extends DSL {
    public function run(): Command {
        if (func_num_args() === 1) {
            list($maxLevel) = func_get_args();
            $filter = ".filter{ levels.max() > $maxLevel}";
        } else {
            $filter = 'map{levels.max();}';
        }

        $MAX_LOOPING = self::$MAX_LOOPING;

        // round() is used for lone blocks in the code
        // it may be excessive
        $command = new Command(<<<GREMLIN
where(
    __.sideEffect{ levels = []; }
      .repeat( __.out('BLOCK', 'EXPRESSION', 'THEN', 'ELSE', 'CASES')).emit().times($MAX_LOOPING)
      .not(hasLabel('Sequence', 'Block'))
      .path()
      .sideEffect{ levels.add(Math.round((it.get().size() - 1 ) / 2 - 1));}
      .count()
)$filter
GREMLIN
);

        return $command;
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Analyzer\Analyzer;

class OtherSiblings extends DSL {
    private static $sibling = 0;

    public function run(): Command {
        switch (func_num_args()) {
            case 2:
                list($link, $self) = func_get_args();
                break;

            case 1:
                list($link) = func_get_args();
                $self = Analyzer::EXCLUDE_SELF;
                break;

            default:
                $link = 'EXPRESSION';
                $self = Analyzer::EXCLUDE_SELF;
                break;
        }

        ++self::$sibling;

        if ($self === Analyzer::EXCLUDE_SELF) {
            return new Command('as("sibling' . self::$sibling . '").in("' . $link . '").out("' . $link . '").where(neq("sibling' . self::$sibling . '"))');
        } else {
            return new Command('in("' . $link . '").out("' . $link . '")');
        }
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class Property extends DSL {
    public function run() {
        list($property, $value) = func_get_args();

        assert($this->assertProperty($property));

        // special case for boolean
        if (is_bool($value)) {
            return new Command('sideEffect{ it.get().property("' . $property . '", ' . ($value === true ? 'true' : 'false') . '); }', array());
        } elseif (is_int($value)) {
            return new Command('sideEffect{ it.get().property("' . $property . '", ' . $value . '); }', array());
        } else {
            assert($this->assertVariable($value, self::VARIABLE_READ), "$value is not a variable");
            // Default, a gremlin variable
            return new Command('sideEffect{ it.get().property("' . $property . '", ' . $value . '); }', array());
        }
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class TokenIsNot extends DSL {
    public function run() {
        list($token) = func_get_args();

        assert($this->assertTokens($token));
        return new Command('not( has("token", within(***)) )', array(makeArray($token)) );
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class IsArgument extends DSL {
    public function run() {
        return new Command('where( __.in("DEFINITION").where( __.in("NAME")))');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class Count extends DSL {
    public function run(): Command {
        return new Command('count()');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class HasAtomInside extends DSL {
    public function run() {
        list($atoms) = func_get_args();

        assert($this->assertAtom($atoms));
        $MAX_LOOPING = self::$MAX_LOOPING;
        $linksDown = self::$linksDown;
        $diff = $this->normalizeAtoms($atoms);

        $gremlin = "where( __.emit( ).repeat( out($linksDown) ).times($MAX_LOOPING).hasLabel(within(***)) )";

        return new Command($gremlin, array($diff));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class IsNotExtendingComposer extends DSL {
    public function run() {
        $MAX_LOOPING = self::$MAX_LOOPING;

        $gremlin = <<<GREMLIN
not( 
    where( __.out("EXTENDS")
             .repeat( __.coalesce(__.in("DEFINITION"), __.filter{true}).out("EXTENDS") ).emit().times($MAX_LOOPING)
             .where( __.in("ANALYZED").has("analyzer", "Composer/IsComposerNsname") )
          ) 
)
GREMLIN;

        return new Command($gremlin);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Analyzer\Analyzer;

class GoToAllParentsTraits extends DSL {
    public function run(): Command {
        if (func_num_args() === 1) {
            list($self) = func_get_args();
        } else {
            $self = Analyzer::EXCLUDE_SELF;
        }

        $MAX_LOOPING = self::$MAX_LOOPING;
        if ($self === Analyzer::EXCLUDE_SELF) {
            $command = new Command(<<<GREMLIN
as("gotoallparentstraits").repeat( 
    __.union( __.out("USE").out("USE"), __.out("EXTENDS"))
      .in("DEFINITION")
      .hasLabel("Class", "Classanonymous", "Trait")
      .simplePath().from("gotoallparentstraits")
)
.emit( )
.times($MAX_LOOPING)
.hasLabel("Class", "Classanonymous", "Trait")
GREMLIN
);
        } else {
            $command = new Command(<<<GREMLIN
union(
__.as("gotoallparentstraits").repeat( 
    __.union( __.out("USE").out("USE"), __.out("EXTENDS"))
      .in("DEFINITION")
      .hasLabel("Class", "Classanonymous", "Trait")
      .simplePath().from("gotoallparentstraits")
)
.emit( )
.times($MAX_LOOPING)
.hasLabel("Class", "Classanonymous", "Trait"),
identity()
)

GREMLIN
);
        }

        return $command;
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class NextSibling extends DSL {
    public function run(): Command {
        if (func_num_args() === 1) {
            list($link) = func_get_args();
        } else {
            $link = 'EXPRESSION';
        }

        $hasIn = $this->dslfactory->factory('hasIn');
        $return = $hasIn->run($link); // Extra command

        $nextSibling = new Command('sideEffect{sibling = it.get().value("rank");}.in("' . $link . '").out("' . $link . '").filter{sibling + 1 == it.get().value("rank")}');
        $return->add($nextSibling);

        return $return;
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class IsMissingOrNull extends DSL {
    public function run(): Command {
        // check for DEFINTION link and the Virtualproperty atom
        return new Command(<<<'GREMLIN'
 where( __.out("DEFAULT").hasLabel("Void", "Null").not(__.in("RIGHT") ))
GREMLIN
);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class AtomInsideNoAnonymous extends DSL {
    public function run(): Command {
        list($atoms) = func_get_args();

        assert($this->assertAtom($atoms));
        $diff = $this->normalizeAtoms($atoms);
        if (empty($diff)) {
            return new Command(Query::STOP_QUERY);
        }

        $gremlin = 'emit( ).repeat( __.out(' . self::$linksDown . ').not(hasLabel("Closure", "Classanonymous")) ).times(' . self::$MAX_LOOPING . ').hasLabel(within(***))';
        return new Command($gremlin, array($diff));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class GoToClassInterface extends DSL {
    public function run() {
        $return = $this->dslfactory->factory('goToInstruction');

        return $return->run(array('Interface', 'Class', 'Classanonymous'));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class CheckTypeWithAtom extends DSL {
    public function run() {
        assert(func_num_args() === 1, 'Wrong number of argument for ' . __METHOD__);
        list($var) = func_get_args();

        assert($this->assertVariable($var, self::VARIABLE_READ));

        $gremlin = <<<GREMLIN
filter{
    if ($var == "\\\\int") {
        !((it.get().label() in ["Integer", "Addition", "Multiplication", "Bitshift", "Power"]) ||
           (it.get().label() == "Cast" &&  it.get().value("token") == "T_INT_CAST"));
    } else if ($var == "\\\\string") {
        !((it.get().label() in ["String", "Heredoc", "Concatenation"]) ||
           (it.get().label() == "Cast" &&  it.get().value("token") == "T_STRING_CAST"));
    } else if ($var == "\\\\array") {
        !((it.get().label() in ["Arrayliteral"]) ||
           (it.get().label() == "Cast" &&  it.get().value("token") == "T_ARRAY_CAST"));
    } else if ($var == "\\\\float") {
        !((it.get().label() in ["Float", "Integer"]) ||
           (it.get().label() == "Cast" &&  it.get().value("token") in ["T_DOUBLE_CAST", "T_INT_CAST"]));
    } else if ($var == "\\\\bool") {
        !((it.get().label() in ["Boolean", "Comparison"]) ||
           (it.get().label() == "Cast" &&  it.get().value("token") == "T_BOOL_CAST"));
    } else if ($var == "\\\\object") {
        !((it.get().label() in ["Variable", "New", "Clone"]) ||
           (it.get().label() == "Cast" &&  it.get().value("token") == "T_OBJECT_CAST"));
    } else if ($var == "\\\\void") {
        !(it.get().label() in ["Void"]);
    } else if ($var == "\\\\callable") {
        !(it.get().label() in ["Closure", "Arrowfunction"]);
    } else if ($var == "\\\\iterable") {
        if (it.get().label() in ["Arrayliteral"]) {
            false;
        } else if("fullnspath" in it.get().properties() && it.get().value("fullnspath") in ["\\\\arrayobject", "\\\\iterator"]) {
            false;
        } else {
            true;
        }
    } else {
        true;
    }
}
GREMLIN;
        return new Command($gremlin);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class NoAtomInside extends DSL {
    public function run() {
        list($atoms) = func_get_args();

        assert($this->assertAtom($atoms));
        $diff = $this->normalizeAtoms($atoms);

        $MAX_LOOPING = self::$MAX_LOOPING;
        $linksDown = self::$linksDown;

        $gremlin = <<<GREMLIN
not(
    where( __.repeat( __.out($linksDown).not(hasLabel("Closure", "Arrowfunction", "Class", "Function", "Classanonymous")) ).emit( )
                     .times($MAX_LOOPING)
                     .hasLabel(within(***)) 
          )
)
GREMLIN;
        return new Command($gremlin, array($diff) );
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class IsMoreHash extends DSL {
    public function run() {
        assert(func_num_args() === 3, 'Wrong number of argument for ' . __METHOD__ . '. 3 are expected, ' . func_num_args() . ' provided');
        list($property, $hash, $index) = func_get_args();

        if (empty($hash)) {
            return new Command(Query::STOP_QUERY);
        }

        assert($this->assertProperty($property));

        return new Command("has(\"$property\").filter{ x = ***[$index]; x != null; }.filter{ it.get().value(\"$property\") > x}", array($hash));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class Filter extends DSL {
    public function run(): Command {
        assert(func_num_args() === 1, 'Wrong number of arguments with ' . __METHOD__ . '. ' . func_num_args() . ' provided, while 1 is expected.');
        list($filter) = func_get_args();

        if (!$filter instanceof Command) {
            assert(false, 'Not requires a Command object, it received a ' . gettype($filter));
        }

        $filter->gremlin = "where( {$filter->gremlin} )";
        return $filter;
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Analyzer\Analyzer;

class GoToAllTraits extends DSL {
    public function run(): Command {
        if (func_num_args() === 1) {
            list($self) = func_get_args();
        } else {
            $self = Analyzer::INCLUDE_SELF;
        }

        $MAX_LOOPING = self::$MAX_LOOPING;

        if ($self === Analyzer::EXCLUDE_SELF) {
            $command = new Command(<<<GREMLIN
 as("gotoalltraits")
.repeat( __.out("USE")
          .hasLabel("Usetrait")
          .out("USE")
          .in("DEFINITION")
          //.hasLabel("Trait")
          .simplePath().from("gotoalltraits")
      ).emit( )
      .times($MAX_LOOPING)
      .hasLabel("Trait")
GREMLIN
);
        } elseif ($self === Analyzer::INCLUDE_SELF) {
            $command = new Command(<<<GREMLIN
 as("gotoalltraits")
.emit( )
.repeat( __.out("USE")
          .hasLabel("Usetrait")
          .out("USE")
          .in("DEFINITION")
          .hasLabel("Trait")
          .simplePath().from("gotoalltraits")
        )
        .times($MAX_LOOPING)
        .hasLabel("Trait")
GREMLIN
);
        } else {
            assert(false, 'No such configuration for ' . self::class . ' : use EXCLUDE_SELF or INCLUDE_SELF');
        }

        return $command;
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Analyzer\Analyzer;

class NoDelimiterIsNot extends DSL {
    public function run() {
        assert(func_num_args() <= 2, 'Too many arguments for ' . __METHOD__);

        switch (func_num_args()) {
            case 2:
                list($code, $caseSensitive) = func_get_args();
                break;

            case 1:
                list($code) = func_get_args();
                $caseSensitive = Analyzer::CASE_INSENSITIVE;
                break;

            default:
                assert(false, 'No enought arguments for ' . __METHOD__);
        }

        $return = new Command('has("noDelimiter")');
        $propertyIsNot = $this->dslfactory->factory('propertyIsNot');

        return $return->add($propertyIsNot->run('noDelimiter', $code, $caseSensitive));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class IsReassigned extends DSL {
    public function run() {
        assert(func_num_args() === 1, 'Wrong number of argument for ' . __METHOD__ . '. 1 is expected, ' . func_num_args() . ' provided');
        list($name) = func_get_args();

        $linksDown = self::$linksDown;
        $MAX_LOOPING = self::$MAX_LOOPING;

        $gremlin = <<<GREMLIN
not(
    where( 
        __.repeat( __.out($linksDown) ).emit(hasLabel("Variable", "Array", "Member", "Staticproperty")).times($MAX_LOOPING)
                     .filter{ it.get().value("fullcode") == $name}
         )
)
GREMLIN;

        return new Command($gremlin);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class NoTraitDefinition extends DSL {
    public function run() {
        return new Command('not( where(__.in("DEFINITION").hasLabel("Trait") ) )');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Analyzer\Analyzer;

class GoToAllParents extends DSL {
    public function run(): Command {
        list($self) = func_get_args();

        $MAX_LOOPING = self::$MAX_LOOPING;
        if ($self === Analyzer::EXCLUDE_SELF) {
            $command = new Command(<<<GREMLIN
as("gotoallparents").repeat( __.out("EXTENDS", "IMPLEMENTS")
          .in("DEFINITION")
          .hasLabel("Class", "Classanonymous", "Interface", "Trait")
          .simplePath().from("gotoallparents")
).emit( )
 .times($MAX_LOOPING)
 .hasLabel("Class", "Classanonymous", "Interface", "Trait")
GREMLIN
);

        } else {
            $command = new Command(<<<GREMLIN
as("gotoallparents").emit( )
.repeat( __.out("EXTENDS", "IMPLEMENTS")
           .in("DEFINITION")
           .hasLabel("Class", "Classanonymous", "Interface", "Trait")
           .simplePath().from("gotoallparents")
        )
        .times($MAX_LOOPING)
        .hasLabel("Class", "Classanonymous", "Interface", "Trait")
GREMLIN
);
        }

        return $command;
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class GetStringLength extends DSL {
    public function run() {
        // Calculate The length of a string in a property, and report it in the named string
        switch (func_num_args()) {
            case 2:
                list($property, $variable) = func_get_args();
                break;

            case 1:
                list($property) = func_get_args();
                $variable = 1;
                break;

            case 0:
                $property = 'noDelimiter';
                $variable = 1;
                break;

            default:
                assert(false, 'No enought arguments for ' . __METHOD__);
        }

        $gremlin = <<<'GREMLIN'
sideEffect{
    s = it.get().value("PROPERTY");
    
    // Replace all special chars by a single char
    s = s.replaceAll(/\\"/, "A");
    s = s.replaceAll(/\\[\\aefnRrt]/, "A");
    s = s.replaceAll(/\\[012]\d\d/, "A");
    s = s.replaceAll(/\\0/, "A");
    s = s.replaceAll(/\\u\{[^\}]+\}/, "A");
    s = s.replaceAll(/\\[pP]\{^?[A-Z][a-z]?\}/, "A");
    s = s.replaceAll(/\\[pP][A-Z]/, "A");
    s = s.replaceAll(/\\X[A-Z][a-z]/, "A");
    s = s.replaceAll(/\\x[a-fA-F0-9]{2}/, "A");

    VARIABLE = s.length();
}

GREMLIN;

        $gremlin = str_replace(array('PROPERTY', 'VARIABLE'), array($property, $variable), $gremlin);

        return new Command($gremlin);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class GoToAllElse extends DSL {
    public function run() {
        $MAX_LOOPING = self::$MAX_LOOPING;

        $gremlin = <<<GREMLIN
repeat( __.out("ELSE")).emit().times($MAX_LOOPING).hasLabel("Ifthen")
GREMLIN;

        return new Command($gremlin);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class IsThis extends DSL {
    public function run() {
        return new Command(<<<'GREMLIN'
or( __.hasLabel("This"),

    // Typehinted variable
    __.hasLabel("Variableobject", "Variable").in("DEFINITION").in("NAME").as("definition").out("TYPEHINT").in("DEFINITION").as("typehint").select("definition").in("ARGUMENT").in("METHOD", "MAGICMETHOD").as("classe").where("typehint", eq("classe") ),

    // Typehinted property
    __.hasLabel("Member").in("DEFINITION").in("PPP").as("definition").out("TYPEHINT").in("DEFINITION").as("typehint").select("definition").in("PPP").as("classe").where("typehint", eq("classe") )
  )
GREMLIN
);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class GetNameInFNP extends DSL {
    public function run() {
        list($variable) = func_get_args();

        return new Command(<<<GREMLIN
sideEffect{
    if ($variable.contains("\\\\") ) {
        $variable = $variable.tokenize("\\\\\\\\").last(); 
    }
    if ($variable.contains("(") ) {
        $variable = $variable.tokenize("(").first(); 
    }
}
GREMLIN
                          );
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class Command {
    public const SACK_NONE    = '';
    public const SACK_ARRAY   = '{ [] }{it.clone()}';
    public const SACK_HASH    = '{ [:] }{it.clone()}';
    public const SACK_INTEGER = '{ 0 }';

    private static $id = 0;
    public $gremlin    = '';
    public $arguments  = array();
    private $sack      = self::SACK_NONE;

    public function __construct(string $command, array $args = array()) {
        $c = substr_count($command, '***');

        assert(is_array($args), "Args is not an array : ($command)." . print_r($args, true));
        assert($c === count($args), "Wrong number of arguments for Command : $c placeholders, " . count($args) . " provided. ($command)\n" . print_r(debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS), true));

        $arguments = array();
        foreach($args as $arg) {
            ++self::$id;
            $arguments['arg' . self::$id] = $arg;
        }

        $command = str_replace(array('%', '***'), array('%%', '%s'), $command);
        $command = sprintf($command, ...array_keys($arguments));

        $this->gremlin = $command;
        $this->arguments = $arguments;
    }

    public function setSack($default = self::SACK_NONE) {
        assert(in_array($default, array(self::SACK_NONE,
                                        self::SACK_ARRAY,
                                        self::SACK_HASH,
                                        self::SACK_INTEGER,
                                        ), \STRICT_COMPARISON),
              'Sack must be one of the allowed constant : "' . $default . '" provided');
        $this->sack = $default;
    }

    public function getSack() {
        return $this->sack;
    }

    public function add(Command $other) {
        $this->gremlin   .= ".{$other->gremlin}";
        $this->arguments += $other->arguments;

        return $this;
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class NoFunctionInside extends DSL {
    public function run(): Command {
        list($fullnspath) = func_get_args();

        // $fullcode is a name of a variable
        $gremlin = 'not( where( __.emit( ).repeat( out(' . self::$linksDown . ') ).times(' . self::$MAX_LOOPING . ').hasLabel("Functioncall").has("fullnspath", within(***))) )';
        return new Command($gremlin, array(makeArray($fullnspath)));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class CollectMethods extends DSL {
    public function run(): Command {
        list($variable) = func_get_args();

        $this->assertVariable($variable, self::VARIABLE_WRITE);

        $command = new Command('where( 
__.sideEffect{ ' . $variable . ' = []; }
  .out("METHOD", "MAGICMETHOD")
  .out("NAME")
  .sideEffect{ ' . $variable . '.add(it.get().value("lccode")) ; }
  .fold() 
)
');
        return $command;
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Exceptions\QueryException;

class IsNot extends DSL {
    public function run() {
        assert(func_num_args() === 2, 'Wrong number of argument for ' . __METHOD__ . '. 2 are expected, ' . func_num_args() . ' provided');
        list($property, $value) = func_get_args();

        $this->assertProperty($property);

        if ($value === null) {
            return new Command("has(\"$property\").or( __.not(has(\"$property\")), __.not(has(\"$property\", null)))");
        } elseif (in_array($property, self::BOOLEAN_PROPERTY, \STRICT_COMPARISON)) {
            $value = $value === true ? 'true' : 'false';

            return new Command('filter{ if ( it.get().properties("' . $property . '").any()) { ' . $value . ' != it.get().value("' . $property . '")} else {' . $value . ' != false; }; }');
        } elseif ($value === true) {
            return new Command("has(\"$property\", false)");
        } elseif ($value === false) {
            return new Command("has(\"$property\", true)");
        } elseif (is_int($value)) {
            return new Command("has(\"$property\").not(has(\"$property\", ***))", array($value));
        } elseif (is_string($value)) {
            if (empty($value)) {
                return new Command("has(\"$property\").not(has(\"$property\", ''))");
            } else {
                return new Command("has(\"$property\").not(has(\"$property\", ***))", array($value));
            }
        } elseif (is_array($value)) {
            if (empty($value)) {
                return new Command("has(\"$property\").not(has(\"$property\", ''))");
            } else {
                return new Command("has(\"$property\").not(has(\"$property\", within(***)))", array($value));
            }
        } else {
            throw new QueryException('Not understood type for isNot : ' . gettype($value));
        }
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class GetVariable extends DSL {
    public function run() {
        // getVariable($variable => $name of the variable)
        if (func_num_args() === 1) {
            list($variable) = func_get_args();
            $name = $variable;
        } else {
            list($variable, $name) = func_get_args();
        }

        if (is_string($variable) && is_string($name)) {
            // Value should not be a direct groovy code!!!
            $this->assertVariable($variable, self::VARIABLE_READ);
            return new Command('map{ [' . $name . ':' . $variable . ']; }');
        } elseif (is_array($variable) && is_array($name)) {
            $name = array_values($name);
            $gremlin = array();

            foreach(array_values($variable) as $id => $v) {
                // Value should not be a direct groovy code!!!
                $this->assertVariable($v, self::VARIABLE_READ);
                $gremlin[] = "\"{$name[$id]}\" :  $v";
            }
            return new Command('map{ [' . implode(',' . PHP_EOL, $gremlin) . '] }');
        } else {
            assert(false, 'Wrong format for ' . __METHOD__ . '. Either string/value or array()/array()');
        }
    }
}
?>
<?php
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
declare(strict_types = 1);

namespace Exakat\Query\DSL;

use Exakat\Exceptions\UnknownDsl;
use Exakat\GraphElements;
use Exakat\Analyzer\Analyzer;

class DSLFactory {
    const VARIABLE_WRITE = true;
    const VARIABLE_READ  = false;

    public $availableAtoms         = array();
    public $availableLinks         = array();
    public $availableFunctioncalls = array();
    private $availableVariables     = array(); // This one is per query
    protected $availableLabels        = array(); // This one is per query
    protected $ignoredcit             = array();
    protected $ignoredfunctions       = array();
    protected $ignoredconstants       = array();
    protected $dictCode               = null;
    protected $datastore              = null;
    protected $linksDown              = '';
    protected $dependsOn              = array();
    protected $analyzerQuoted         = '';
    protected $MAX_LOOPING            = Analyzer::MAX_LOOPING;

    public function __construct(string $analyzer,
                                array $dependsOn = array()) {
        $this->dependsOn = $dependsOn;
        $this->analyzerQuoted = $analyzer;


        $this->dictCode  = exakat('dictionary');
        $this->datastore = exakat('datastore');

        $this->linksDown = GraphElements::linksAsList();

        if (empty($this->availableAtoms)) {
            $data = $this->datastore->getCol('TokenCounts', 'token');

            $this->availableAtoms = array('Project',
                                          'File',
                                          'Virtualproperty',
                                          'Analysis',
                                          'Noresult',
                                          'Void',
                                          );
            $this->availableLinks = array('DEFINITION',
                                          'ANALYZED',
                                          'PROJECT',
                                          'FILE',
                                          'OVERWRITE',
                                          'PPP',
                                          'DEFAULT',
                                          'RETURNED',
                                          );

            foreach($data as $token){
                if ($token === strtoupper($token)) {
                    $this->availableLinks[] = $token;
                } else {
                    $this->availableAtoms[] = $token;
                }
            }

            $this->availableFunctioncalls = $this->datastore->getCol('functioncalls', 'functioncall');

            $this->ignoredcit       = $this->datastore->getCol('ignoredcit',       'fullnspath');
            $this->ignoredfunctions = $this->datastore->getCol('ignoredfunctions', 'fullnspath');
            $this->ignoredconstants = $this->datastore->getCol('ignoredconstants', 'fullnspath');
        }
    }

    public function factory(string $name): Dsl {
        if (strtolower($name) === '_as') {
            $className = __NAMESPACE__ . '\\_As';
        } else {
            $className = __NAMESPACE__ . '\\' . ucfirst($name);
        }

        if (!class_exists($className)) {
            throw new UnknownDsl($name);
        }

        return new $className($this,
                              $this->availableAtoms,
                              $this->availableLinks,
                              $this->availableFunctioncalls,
                              $this->availableVariables,
                              $this->availableLabels,
                              $this->ignoredcit,
                              $this->ignoredfunctions,
                              $this->ignoredconstants,
                              $this->dependsOn,
                              $this->analyzerQuoted,
                              );
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class NoChildWithRank extends DSL {
    public function run() {
        if (func_num_args() === 2) {
            list($links, $rank) = func_get_args();
        } else {
            list($links) = func_get_args();
            $rank = 0;
        }

        $this->assertLink($links);

        if (is_int($rank)) {
            return new Command('not( where( __.out(' . $this->SorA($links) . ').has("rank", ***) ) )', array(abs($rank)));
        } elseif ($this->isVariable($rank)) {
            assert($this->assertVariable($rank), "$rank is not a variable");

            return new Command('not( where( __.out(' . $this->SorA($links) . ').filter{it.get().value("rank") == ' . $rank . '; } ) )');
        }
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class Implementing extends DSL {
    public function run(): Command {
        list($fullnspath) = func_get_args();

        $MAX_LOOPING = self::$MAX_LOOPING;
        return new Command(<<<GREMLIN
where( __.emit().repeat( __.out("IMPLEMENTS", "EXTENDS").in("DEFINITION")).times({$MAX_LOOPING})
                        .out("IMPLEMENTS", "EXTENDS").has("fullnspath", within(***)) ) 
GREMLIN
, array($fullnspath));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class MakeVariableName extends DSL {
    public function run() {
        list($variable) = func_get_args();

        return new Command("sideEffect{ $variable = \"\\$\" + $variable; }");
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class AtomInsideMoreThan extends DSL {
    public function run(): Command {
        if (func_get_args() === 2) {
            list($atoms, $times) = func_get_args();
        } else {
            $atoms = func_get_arg(0);
            $times = 1;
        }

        $this->assertAtom($atoms);
        $diff = $this->normalizeAtoms($atoms);
        if (empty($diff)) {
            return new Command(Query::STOP_QUERY);
        }

        $linksDown = self::$linksDown;
        $MAX_LOOPING  = self::$MAX_LOOPING;

        $gremlin = <<<GREMLIN
where(
    __.emit( ).repeat( __.out({$linksDown}).not(hasLabel("Closure", "Classanonymous", "Function", "Class", "Trait", "Interface")) ).times($MAX_LOOPING)
      .hasLabel(within(***))
      .count().is(gt($times))
)
GREMLIN;
        return new Command($gremlin, array($diff));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class GoToTrait extends DSL {
    public function run() {
        $return = $this->dslfactory->factory('goToInstruction');

        return $return->run('Trait');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class GoToExpression extends DSL {
    public function run(): Command {
        $linksDown = self::$linksDown;

        return new Command(<<<GREMLIN
coalesce( __.where( __.in("EXPRESSION")), 
          __.repeat( __.in({$linksDown})).emit( ).until( where(__.in("EXPRESSION") ) ).where( __.in("EXPRESSION") )
        )
GREMLIN
);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Analyzer\Analyzer;

class HasClass extends DSL {
    public function run(): Command {
        $return = $this->dslfactory->factory('hasInstruction');

        return $return->run(Analyzer::CLASSES_ALL);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class HasNoCatch extends DSL {
    public function run() {
        $return = $this->dslfactory->factory('hasNoInstruction');

        return $return->run('Catch');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class AtomInside extends DSL {
    public function run(): Command {
        list($atoms) = func_get_args();

        $this->assertAtom($atoms);
        $diff = $this->normalizeAtoms($atoms);
        if (empty($diff)) {
            return new Command(Query::STOP_QUERY);
        }

        $gremlin = 'emit().repeat( out(' . self::$linksDown . ') ).times(' . self::$MAX_LOOPING . ').hasLabel(within(***))';
        return new Command($gremlin, array($diff));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class HasNoIn extends DSL {
    public function run(): Command {
        list($links) = func_get_args();

        assert($this->assertLink($links));

        $diff = $this->normalizeLinks($links);
        if (empty($diff)) {
            return new Command(Query::NO_QUERY);
        } else {
            return new Command('not( where( __.in(' . $this->SorA($diff) . ') ) )');
        }
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class SaveMethodNameAs extends DSL {
    public function run() {
        assert(func_num_args() === 1, 'Wrong number of argument for ' . __METHOD__ . '. 1 is expected, ' . func_num_args() . ' provided');
        list($name) = func_get_args();

        $this->assertVariable($name, self::VARIABLE_WRITE);

        $gremlin = <<<GREMLIN
sideEffect{ 
    x = it.get().value("fullnspath").tokenize("::"); 
    $name = x[1]; 
}

GREMLIN;

        return new Command($gremlin);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class HasClassInterface extends DSL {
    public function run() {
        $return = $this->dslfactory->factory('hasInstruction');

        return $return->run(array('Class', 'Classanonymous', 'Interface'));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class Select extends DSL {
    public function run(): Command {
        list($values) = func_get_args();

        $by     = array();
        $select = array();
        foreach($values as $k => $v) {
            assert(in_array($k, $this->availableLabels, \STRICT_COMPARISON), "No such step as '$k'");

            if (is_int($k)) {
                $select[] = "by(constant($v))";
            } elseif ($v === 'id') {
                $select[] = $k;
                $by[]     = 'by(id())';
            } elseif (in_array($v, self::PROPERTIES, \STRICT_COMPARISON)) {
                // Use a local property
                $select[] = $k;
                $by[]     = "by(\"$v\")";
            } elseif (substr(trim($v), 0, 2) === '__') {
                // __.out('BLOCK').count()
                $select[] = $k;
                $by[]     = "by($v)";
            } else {
                // Turn value into a constant
                $select[] = $k;
                $by[]     = "by(constant(\"$v\"))";
            }
        }

        if (empty($by)) {
            $command = 'select(' . makeList($select) . ')';
        } else {
            $command = 'select(' . makeList($select) . ').' . implode('.', $by);
        }

        return new Command($command);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class HasNoChildren extends DSL {
    public function run() {
        assert(func_num_args() === 2, 'Wrong number of argument for ' . __METHOD__ . '. 2 are expected, ' . func_num_args() . ' provided');
        list($childrenClass, $outs) = func_get_args();

        $this->assertAtom($childrenClass);
        $diff = $this->normalizeAtoms($childrenClass);
        if (empty($diff)){
            return new Command(Query::NO_QUERY);
        }

        $out = $this->makeLinks($outs, 'out');

        return new Command("not( where( __$out.hasLabel(within(***)) ) )", array($diff));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class InitVariable extends DSL {
    public function run() {
        if (func_num_args() === 2) {
            list($name, $value) = func_get_args();
        } else {
            list($name) = func_get_args();
            $value = '[]';
        }


        if (is_string($name)) {
            // Value should not be a direct groovy code!!!
            $this->assertVariable($name, self::VARIABLE_WRITE);
            return new Command('sideEffect{ ' . $name . ' = ' . $value . ' }');
        } elseif (is_array($name) && is_array($value)) {
            $value = array_values($value);
            $gremlin = array();

            foreach(array_values($name) as $id => $n) {
                // Value should not be a direct groovy code!!!
                $this->assertVariable($n, self::VARIABLE_WRITE);
                $gremlin[] = "$n  =  {$value[$id]};";
            }
            return new Command('sideEffect{ ' . implode(PHP_EOL, $gremlin) . ' }');
        } else {
            assert(false, 'Wrong format for ' . __METHOD__ . '. Either string/value or array()/array()');
        }
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class SetProperty extends DSL {
    public function run(): Command {
        list($property, $value) = func_get_args();

        $this->assertProperty($property);
        if ($value === true) {
            return new Command("sideEffect{ it.get().property(\"$property\", true); }");
        } elseif ($value === false) {
            return new Command("sideEffect{ it.get().property(\"$property\", false); }");
        } else {
            return new Command("sideEffect{ it.get().property(\"$property\", $value); }");
        }
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class AtomInsideWithCall extends DSL {
    public function run(): Command {
        list($atoms) = func_get_args();

        assert($this->assertAtom($atoms));
        $diff = $this->normalizeAtoms($atoms);
        if (empty($diff)) {
            return new Command(Query::STOP_QUERY);
        }

        $linksDown = self::$linksDown;
        $MAX_LOOPING  = self::$MAX_LOOPING;

        $gremlin = <<<GREMLIN
emit( ).repeat( __.out($linksDown)
                  .coalesce( __.hasLabel("Functioncall").in("DEFINITION").out("BLOCK").out("EXPRESSION"), 
                             __.filter{true})
                  .not(hasLabel("Closure", "Classanonymous", "Function", "Class", "Trait", "Interface")) 
            )
            .times($MAX_LOOPING)
            .hasLabel(within(***))
GREMLIN;
        return new Command($gremlin, array($diff));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class Range extends DSL {
    public function run(): Command {
        list($min, $max) = func_get_args();

        return new Command('range(' . (int) $min . ', ' . (int) $max . ')');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class NextSiblings extends DSL {
    public function run(): Command {
        if (func_num_args() === 1) {
            list($link) = func_get_args();
        } else {
            $link = 'EXPRESSION';
        }

        $hasIn = $this->dslfactory->factory('hasIn');
        $return = $hasIn->run($link);

        return $return->add(new Command('sideEffect{sibling = it.get().value("rank");}.in("' . $link . '").out("' . $link . '").filter{sibling + 1 <= it.get().value("rank") }'));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class HasIfThen extends DSL {
    public function run(): Command {
        $return = $this->dslfactory->factory('hasInstruction');

        return $return->run('Ifthen');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class AnalyzerInside extends DSL {
    public function run(): Command {
        list($analyzers) = func_get_args();

//        $this->assertAtom($atoms);
//        $diff = $this->normalizeAtoms($atoms);
//        if (empty($diff)) {
//            return new Command(Query::STOP_QUERY);
//        }

        $gremlin = 'emit().repeat( out(' . self::$linksDown . ') ).times(' . self::$MAX_LOOPING . ').where( __.in("ANALYZED").has("analyzer", within(***)))';
        return new Command($gremlin, array($analyzers));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Analyzer\Analyzer;

class GoToClassTrait extends DSL {
    public function run() {
        $return = $this->dslfactory->factory('goToInstruction');

        return $return->run(Analyzer::CLASSES_TRAITS);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class CollectArguments extends DSL {
    public function run(): Command {
        list($variable) = func_get_args();

        $this->assertVariable($variable, self::VARIABLE_WRITE);

        $command = new Command(<<<GREMLIN
where( 
__.sideEffect{ $variable = []; }
  .out("ARGUMENT")
  .order().by("rank")
  .coalesce(__.out("NAME"), filter{ true; })
  .sideEffect{ $variable.add(it.get().value("code")) ; }
  .fold() 
)
GREMLIN
);
        return $command;
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class VariableIsAssigned extends DSL {
    public function run(): Command {
        assert(func_num_args() === 1, 'Wrong number of argument for ' . __METHOD__ . '. 1 is expected, ' . func_num_args() . ' provided');
        list($times) = func_get_args();

        $gremlin = <<<GREMLIN
where(
   __.out("DEFINITION").in("LEFT")
     .hasLabel("Assignation").has("token", "T_EQUAL")
     .not(where(__.in("EXPRESSION").in("INIT")))
     .out("RIGHT").hasLabel("Integer", "String", "Float", "Null", "Boolean")
     .count().is(gte($times))
)
GREMLIN;

        return new Command($gremlin);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class IsReferencedArgument extends DSL {
    public function run() {
        switch (func_num_args()) {
            case 1:
                list($variable) = func_get_args();
                break;

            case 0:
                $variable = 'variable';
                break;
        }

        $gremlin = <<<GREMLIN
not(
    where(
        __.repeat( __.in()).until(hasLabel("Function")).out("ARGUMENT").filter{it.get().value("code") == $variable}.has("reference", true)
    )
)

GREMLIN;

        return new Command($gremlin);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class HasNoParent extends DSL {
    public function run() {
        assert(func_num_args() === 2, 'Wrong number of argument for ' . __METHOD__ . '. 2 are expected, ' . func_num_args() . ' provided');
        list($parentClass, $ins) = func_get_args();

        if (empty($ins)){
            return new Command(Query::NO_QUERY);
        }

        $this->assertAtom($parentClass);
        $this->assertLink($ins);
        $diff = $this->normalizeAtoms($parentClass);

        if (empty($diff)){
            return new Command(Query::NO_QUERY);
        }

        $in = $this->makeLinks($ins, 'in');

        return new Command("not( where( __$in.hasLabel(within(***)) ) )", array($diff));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class AnalyzerInsideMoreThan extends DSL {
    public function run(): Command {
        list($analyzer, $atoms, $times) = func_get_args();

        assert($this->assertAtom($atoms));
        assert($this->assertAnalyzer($analyzer));
        $diff = $this->normalizeAtoms($atoms);
        if (empty($diff)) {
            return new Command(Query::STOP_QUERY);
        }

        $linksDown = self::$linksDown;
        $MAX_LOOPING  = self::$MAX_LOOPING;

        $gremlin = <<<GREMLIN
where(
    __.emit( ).repeat( __.out({$linksDown}).not(hasLabel("Closure", "Classanonymous", "Function", "Class", "Trait", "Interface")) ).times($MAX_LOOPING)
      .hasLabel(within(***))
      .where( __.in("ANALYZED").has("analyzer", within(***)))
      .count().is(gt($times))
)
GREMLIN;
        return new Command($gremlin, array($diff, makeArray($analyzer)));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class _As extends DSL {
    public function run() {
        assert(func_num_args() === 1, 'Wrong number of argument for ' . __METHOD__ . '. 1 is expected, ' . func_num_args() . ' provided');
        list($name) = func_get_args();

        assert($this->assertLabel($name, self::LABEL_SET));

        if (is_array($name)) {
            return new Command('as("' . implode('").as("', $name) . '")');
        } else {
            return new Command("as(\"$name\")");
        }
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class SameTypehintAs extends DSL {
    public function run() {
        assert(func_num_args() === 1, 'One argument ncessary for ' . __METHOD__);
        list($variable) = func_get_args();

        $this->assertVariable($variable);

        return new Command('where( __.out("RETURNTYPE", "TYPEHINT").filter{it.get().value("fullnspath") == ' . $variable . '} )');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class HasNoNextSibling extends DSL {
    public function run(): Command {
        if (func_num_args() === 1) {
            list($link) = func_get_args();
        } else {
            $link = 'EXPRESSION';
        }

        $hasIn = $this->dslfactory->factory('hasIn');
        $return = $hasIn->run($link);

        return $return->add(new Command('not( where( __.sideEffect{sibling = it.get().value("rank");}.in("' . $link . '").out("' . $link . '").filter{sibling + 1 == it.get().value("rank")}) )'));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;
use Exakat\Analyzer\Analyzer;

class PropertyIs extends DSL {
    public function run() {
        list($property, $code, $caseSensitive) = func_get_args();

        assert($this->assertProperty($property));

        if (is_array($code) && empty($code) ) {
            return new Command(Query::NO_QUERY);
        }

        if ($caseSensitive === Analyzer::CASE_SENSITIVE) {
            $caseSensitive = '';
        } else {
            $code = $this->tolowercase($code);
            $caseSensitive = '.toString().toLowerCase()';
        }

        // code is a variable. We don't know if it is an array
        if (is_array($code) && !empty(array_intersect($code, $this->availableVariables))) {
            return new Command('filter{it.get().value("' . $property . '")' . $caseSensitive . ' == ' . $code[0] . '}', array());
        } elseif (is_string($code) && in_array($code, $this->availableVariables)) {
            return new Command('filter{it.get().value("' . $property . '")' . $caseSensitive . ' == ' . $code . '}', array());
        } elseif (is_array($code)) {
            return new Command('filter{ it.get().value("' . $property . '")' . $caseSensitive . ' in ***; }', array($code));
        } else {
            return new Command('filter{it.get().value("' . $property . '")' . $caseSensitive . ' == ***}', array($code));
        }
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class AtomInsideNoDefinition extends DSL {
    public function run(): Command {
        list($atoms) = func_get_args();

        assert($this->assertAtom($atoms));
        $diff = $this->normalizeAtoms($atoms);
        if (empty($diff)) {
            return new Command(Query::STOP_QUERY);
        }

        $linksDown = self::$linksDown;
        $MAX_LOOPING  = self::$MAX_LOOPING;

        $gremlin = <<<GREMLIN
emit( ).repeat( __.out($linksDown)
                  .not(hasLabel("Closure", "Classanonymous", "Function", "Class", "Trait", "Interface")) 
            )
            .times($MAX_LOOPING)
            .hasLabel(within(***))
GREMLIN;
        return new Command($gremlin, array($diff));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class Not extends DSL {
    public function run(): Command {
        assert(func_num_args() === 1, 'Wrong number of arguments with ' . __METHOD__ . '. ' . func_num_args() . ' provided, while 1 is expected.');
        list($filter) = func_get_args();

        if (!$filter instanceof Command) {
            assert(false, 'Not requires a Command object, it received a ' . gettype($filter));
        }

        if ($filter->gremlin === Query::STOP_QUERY) {
            $filter->gremlin = Query::NO_QUERY;
        } else {
            $filter->gremlin = "not( __.where($filter->gremlin))";
        }
        return $filter;
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class NoQuery extends DSL {
    public function run() {
        return new Command(Query::NO_QUERY);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class AddETo extends DSL {
    public function run() {
        list($edgeName, $from) = func_get_args();

        assert($this->assertLabel($from, self::LABEL_GO));

        return new Command("addE(\"$edgeName\").to(\"$from\")");
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Analyzer\Analyzer;

class HasNoClass extends DSL {
    public function run() {
        $return = $this->dslfactory->factory('hasNoInstruction');
        return $return->run(Analyzer::CLASSES_ALL);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Analyzer\Analyzer;

class CollectContainers extends DSL {
    public function run(): Command {
        if (func_num_args() === 1) {
            list($variable) = func_get_args();
        } else {
            $variable = 'containers';
        }

        $CONTAINERS = makeList(Analyzer::CONTAINERS);
        $LINKS_DOWN = self::$linksDown;

        return new Command(<<<GREMLIN
where(
    __.sideEffect{ $variable = []; }
      .repeat( __.out($LINKS_DOWN)).emit()
      .hasLabel($CONTAINERS)
      .sideEffect{ 
          $variable.add(it.get().value("code")); 
      }
      .fold()
)

GREMLIN
);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Analyzer\Analyzer;

class FullcodeIsNot extends DSL {
    public function run() {
        assert(func_num_args() <= 2, 'Too many arguments for ' . __METHOD__);

        switch (func_num_args()) {
            case 2:
                list($code, $caseSensitive) = func_get_args();
                break;

            case 1:
                list($code) = func_get_args();
                $caseSensitive = Analyzer::CASE_INSENSITIVE;
                break;

            default:
                assert(false, 'Not enough arguments for ' . __METHOD__);
        }

        $return = new Command('has("fullcode")');
        $propertyIsNot = $this->dslfactory->factory('propertyIsNot');

        return $return->add($propertyIsNot->run('fullcode', $code, $caseSensitive));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class StopQuery extends DSL {
    public function run() {
        return new Command(Query::STOP_QUERY);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class SavePropertyAs extends DSL {
    public function run() {
        assert(func_num_args() <= 2, __METHOD__ . ' should get 2 arguments max, ' . func_num_args() . ' provided.');

        if (func_num_args() === 1) {
            $property = 'whole';
            list($name) = func_get_args();
        } else {
            list($property, $name) = func_get_args();
            $this->assertProperty($property);
        }

        $this->assertVariable($name, self::VARIABLE_WRITE);

        if ($property === 'whole') {
            return new Command('sideEffect{ ' . $name . ' = it.get(); }');
        } elseif ($property === 'label') {
            return new Command('sideEffect{ ' . $name . ' = it.get().label(); }');
        } elseif ($property === 'id') {
            return new Command('sideEffect{ ' . $name . ' = it.get().id(); }');
        } elseif ($property === 'self') {
            return new Command('sideEffect{ ' . $name . ' = it.get(); }');
        } elseif (in_array($property, array('reference'), \STRICT_COMPARISON) ) {
            return new Command('sideEffect{ if (it.get().properties("' . $property . '").any()) { ' . $name . ' = it.get().value("' . $property . '");} else { ' . $name . ' = false; }}');
        } elseif (in_array($property, self::BOOLEAN_PROPERTY, \STRICT_COMPARISON)) {
            return new Command('sideEffect{ if ( it.get().properties("' . $property . '").any()) { ' . $name . ' = it.get().value("' . $property . '")} else {' . $name . ' = false; }; }');
        } else {
            return new Command('has("' . $property . '").sideEffect{ ' . $name . ' = it.get().value("' . $property . '"); }');
        }
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;
use Exakat\Analyzer\Analyzer;
use Exakat\Data\Dictionary;

class CodeIsNot extends DSL {
    public function run() {
        switch(func_num_args()) {
            case 1 :
                $code = func_get_arg(0);
                $translate = Analyzer::TRANSLATE;
                $caseSensitive = Analyzer::CASE_INSENSITIVE;
                break;

            case 2:
                $code = func_get_arg(0);
                $translate = func_get_arg(1);
                $caseSensitive = Analyzer::CASE_INSENSITIVE;
                break;

            default:
            case 3:
                list($code,$translate, $caseSensitive) = func_get_args();
        }

        if (is_array($code) && empty($code)) {
            return new Command(Query::NO_QUERY);
        }

        $col = $caseSensitive === Analyzer::CASE_INSENSITIVE ? 'lccode' : 'code';

        if ($translate === Analyzer::TRANSLATE) {
            $translatedCode = array();
            $code = makeArray($code);
            $translatedCode = $this->dictCode->translate($code, $caseSensitive === Analyzer::CASE_INSENSITIVE ? Dictionary::CASE_INSENSITIVE : Dictionary::CASE_SENSITIVE);

            if (empty($translatedCode)) {
                // Couldn't find anything in the dictionary : OK!
                return new Command(Query::NO_QUERY);
            }

            return new Command("not(has(\"$col\", within(***)))", array($translatedCode));
        } else {
            return new Command("not(has(\"$col\", within(***)))", array(makeArray($code)));
        }
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class Back extends DSL {
    public function run() {
        assert(func_num_args() === 1, 'Wrong number of argument for ' . __METHOD__ . '. 1 is expected, ' . func_num_args() . ' provided');
        list($name) = func_get_args();

        assert($this->assertLabel($name, self::LABEL_GO));
        return new Command("select(\"$name\")");
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class FollowCalls extends DSL {
    public function run(): Command {

        $TIME_LIMIT = self::$TIME_LIMIT;

        switch(func_num_args()) {
            case 1:
                $loopings = (int) func_get_arg(0);
                break;

           default:
                $loopings = self::$MAX_LOOPING;
                break;
        }

        // Coalesce is not supported
        return new Command(<<<GREMLIN
emit().repeat(
    __.timeLimit($TIME_LIMIT).out("NAME").out("DEFINITION")
      .union(__.identity(),
            // local assignation to variable
            __.emit().repeat(
                 __.in("DEFAULT").hasLabel("Variabledefinition").out("DEFINITION")
             ).times(4)
      )
      .as("a").in("ARGUMENT").in("DEFINITION").out("ARGUMENT").as("b")
      .where("a", eq("b") ).by("rank")
).times($loopings)
GREMLIN
);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class CountBy extends DSL {
    public function run() {
        switch (func_num_args()) {
            case 3:
                list($link, $property, $variable) = func_get_args();
                break;

            case 2:
                list($link, $property) = func_get_args();
                $variable = 'v';
                break;

            case 1:
                list($link) = func_get_args();
                $variable = 'v';
                $property = 'fullcode';
                break;

            case 0:
            default:
                $variable = 'v';
                $property = 'fullcode';
                $link = 'EXPRESSION';
                break;
        }

        $this->assertLink($link);
        $this->assertProperty($property);
        $this->assertVariable($variable, self::VARIABLE_WRITE);

        $gremlin = <<<GREMLIN
where(  
    __.sideEffect{ {$variable} = [:]; }
      .out("$link")
      .sideEffect{
        s = it.get().value("$property"); 
        if ({$variable}[s] != null) { 
            {$variable}[s]++; 
        } else { 
            {$variable}[s] = 1;
        } 
      }.fold()
     )
GREMLIN;
        return new Command($gremlin);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class GoToCurrentScope extends DSL {
    public function run(): Command {
        $return = $this->dslfactory->factory('goToInstruction');

        return $return->run(array('Function', 'Phpcode'));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class NoCodeInside extends DSL {
    public function run(): Command {
        list($atom, $values) = func_get_args();

        $atomFilter = makeList(makeArray($atom));

        assert($this->assertAtom($atom));
        $MAX_LOOPING = self::$MAX_LOOPING;
        $linksDown = self::$linksDown;

        // $fullcode is a name of a variable
        $gremlin = <<<GREMLIN
not(
    __.where( 
        __.repeat( __.out({$linksDown})).emit().times($MAX_LOOPING)
          .hasLabel($atomFilter)
          .filter{ it.get().value("code") in $values; }
    )
)

GREMLIN;
        return new Command($gremlin);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class HasNoClassTrait extends DSL {
    public function run() {
        $return = $this->dslfactory->factory('hasNoInstruction');

        return $return->run(array('Class', 'Classanonymous', 'Trait', 'Method', 'Magicmethod'));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class RegexIsNot extends DSL {
    public function run() {
        assert(func_num_args() === 2, 'Wrong number of argument for ' . __METHOD__ . '. 2 are expected, ' . func_num_args() . ' provided');
        list($property, $regex) = func_get_args();

        $this->assertProperty($property);

        if ($property === 'code') {
            $values = $this->dictCode->grep($regex);

            if (empty($values)) {
                return new Command(Query::NO_QUERY);
            }

            return new Command('not( has("code", within(***) ) )', array($values));
        }

        return new Command(<<<GREMLIN
has("$property")
.filter{ !(it.get().value("$property") =~ "$regex" ).asBoolean() }
GREMLIN
                          );
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class HasInterface extends DSL {
    public function run(): Command {
        $return = $this->dslfactory->factory('hasInstruction');

        return $return->run('Interface');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class IsNullable extends DSL {
    public function run(): Command {
        return new Command('or(__.where( __.out("RETURNTYPE", "TYPEHINT").hasLabel("Null") ),
                               __.where( __.out("DEFAULT").hasLabel("Null").not(__.in("LEFT"))) 
                                )');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class FollowValue extends DSL {
    public function run(): Command {

        $TIME_LIMIT = self::$TIME_LIMIT;

        switch(func_num_args()) {
            case 1:
                $loopings = (int) func_get_arg(0);
                break;

           default:
                $loopings = self::$MAX_LOOPING;
                break;
        }

        // Coalesce is not supported
        return new Command(<<<GREMLIN
repeat(
    __.timeLimit($TIME_LIMIT).union(
        // \$b = \$a; => \$b
        __.in("DEFAULT").out("DEFINITION"),
        // foo(\$a) => function (\$c)
        __.as('a').in("ARGUMENT").in("DEFINITION").out("ARGUMENT").as("b").where("a", eq("b") ).by("rank").out("NAME").out("DEFINITION"),
        // foo(bar(\$a)) => function foo(\$c)
        __.in("RETURNED").out("DEFINITION"),
        // global
        __.hasLabel("Variable").in('DEFINITION').as('c').in('DEFINITION').hasLabel('Virtualglobal').out('DEFINITION').out('DEFINITION'),
        // property, static or not
        __.hasLabel("Property", "Staticproperty").in('DEFINITION').hasLabel('Propertydefinition').out('DEFINITION')
    )
).emit().times($loopings)
GREMLIN
);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Analyzer\Analyzer;

class NoClassDefinition extends DSL {
    public function run() {
        if (func_num_args() === 1) {
            list($type) = func_get_args();
        } else {
            $type = array(Analyzer::CLASSES_ALL);
        }

        return new Command('not(where(__.in("DEFINITION").hasLabel(within(***)) ) )', makeArray($type) );
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class IsNotLowercase extends DSL {
    public function run() {
        if (func_num_args() === 1) {
            list($property) = func_get_args();
        } else {
            $property = 'fullcode';
        }

        assert($this->assertProperty($property));
        if ($property === 'code') {
            return new Command('filter{it.get().value("code") != it.get().value("lccode")}');
        } else {
            return new Command('filter{it.get().value("' . $property . '") != it.get().value("' . $property . '").toLowerCase()}');
        }
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class IsLess extends DSL {
    public function run() {
        switch(func_num_args()) {
            case 2:
                list($value1, $value2) = func_get_args();

                $g1 = $this->makeGremlin($value1);
                $g2 = $this->makeGremlin($value2);

                return new Command("filter{ {$g1} < {$g2};}");

            case 1:
                list($value1) = func_get_args();

                $g1 = $this->makeGremlin($value1);

                return new Command("is(lt($g1))");

                break;

            default:
                assert(false, 'Wrong number of argument for ' . __METHOD__ . '. 2 or 1 are expected, ' . func_num_args() . ' provided');
        }
    }

    private function makeGremlin($value) {
        // It is an integer
        if (is_int($value)) {
            return $value;
        }

        // It is a gremlin variable
        if ($this->isVariable($value)) {
            assert($this->assertVariable($value));
            return $value;
        }

        // It is a gremlin property
        if ($this->isProperty($value)) {
            assert($this->assertProperty($value));
            return " it.get().value(\"{$value}\").toLong()";
        }

        assert(false, '$value must be int or gremlin variable or property in ' . __METHOD__);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;
use Exakat\Analyzer\Analyzer;

class IsNotHash extends DSL {
    public function run() {
        switch (func_num_args()) {
            case 3 :
                list($property, $hash, $index) = func_get_args();
                $case = Analyzer::CASE_SENSITIVE;
                break;

            case 4 :
                list($property, $hash, $index, $case) = func_get_args();
                assert(in_array($case, array(Analyzer::CASE_INSENSITIVE, Analyzer::CASE_SENSITIVE)));
                break;

            default:
                assert(false, 'Wrong number of arguments for ' . __METHOD__);
        }

        if (empty($hash)) {
            return new Command(Query::NO_QUERY);
        }

        assert($this->assertProperty($property));

        // Cannot make this to work with contains / in (Classes/CouldBeProtectedProperty)
        if ($case === Analyzer::CASE_INSENSITIVE) {
            return new Command("has(\"$property\").filter{ x = ***[$index].collect{ it.toLowerCase() }; [it.get().value(\"$property\").toLowerCase()].intersect(x) == []; }", array($hash));
        } else {
            return new Command("has(\"$property\").filter{ [it.get().value(\"$property\")].intersect(***[$index]) == []}", array($hash));
        }
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;


class IsNotIgnored extends DSL {
    public function run(): Command {
        return new Command('not(has("ignored_dir", true))', array() );
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class InIsNot extends DSL {
    public function run() {
        assert(func_num_args() === 1, 'Wrong number of argument for ' . __METHOD__ . '. 1 is expected, ' . func_num_args() . ' provided');
        list($link) = func_get_args();

        $this->assertLink($link);

        $diff = $this->normalizeLinks($link);
        if (empty($diff)) {
            return new Command(Query::NO_QUERY);
        } else {
            return new Command('not( where( __.inE(' . $this->SorA($diff) . ')) )');
        }
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Query\Query;

class NoAnalyzerInsideWithProperty extends DSL {
    public function run() {
        list($atoms, $analyzer, $property, $value) = func_get_args();

        $this->assertProperty($property);
        $this->assertAtom($atoms);
        $this->assertAnalyzer($analyzer);

        $diff = $this->normalizeAtoms($atoms);

        if (empty($diff)) {
            return new Command(Query::STOP_QUERY);
        }

        $MAX_LOOPING = self::$MAX_LOOPING;
        $linksDown = self::$linksDown;

$gremlin = <<<GREMLIN
not( 
    where( __.emit( ).repeat( __.out({$linksDown}) ).times($MAX_LOOPING)
             .hasLabel(within(***))
             .filter{ it.get().value("$property") == $value}
             .where( __.in("ANALYZED").has("analyzer", within(***)))
          )     
)
GREMLIN;
        return new Command($gremlin,
                           array($diff, makeArray($analyzer)));
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

class GoToImplements extends DSL {
    public function run(): Command {
        return new Command('out("IMPLEMENTS").in("DEFINITION")');
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Query\DSL;

use Exakat\Analyzer\Analyzer;

class HasNoFunction extends DSL {
    public function run() {
        $return = $this->dslfactory->factory('hasNoInstruction');
        return $return->run(Analyzer::FUNCTIONS_ALL);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Data;


class CakePHP {
    private $sqlite = null;
    private $phar_tmp = null;

    public function __construct($path, $is_phar) {
        if ($is_phar) {
            $this->phar_tmp = tempnam(sys_get_temp_dir(), 'excakephp') . '.sqlite';
            copy($path . '/cakephp.sqlite', $this->phar_tmp);
            $docPath = $this->phar_tmp;
        } else {
            $docPath = $path . '/cakephp.sqlite';
        }
        $this->sqlite = new \Sqlite3($docPath, \SQLITE3_OPEN_READONLY);
    }

    public function __destruct() {
        if ($this->phar_tmp !== null) {
            unlink($this->phar_tmp);
        }
    }

    public function getVersions() {
        $query = 'SELECT DISTINCT replace(release, "release-","") AS version FROM releases ORDER BY 1';
        $res = $this->sqlite->query($query);

        $return = array();
        while($row = $res->fetchArray(\SQLITE3_NUM)) {
            $return[] = $row[0];
        }

        return $return;
    }

    public function getClasses($component = 'cakephp', $release = null) {
        $query = 'SELECT namespaces.namespace || "\" || class AS class, release FROM classes 
                    JOIN namespaces 
                      ON classes.namespace_id = namespaces.id
                    JOIN releases 
                      ON namespaces.release_id = releases.id 
                    JOIN components 
                      ON releases.component_id = components.id 
                    WHERE components.component = "' . $component . '"';
        if ($release !== null) {
            $query .= " AND releases.release = \"$release.0\"";
        }

        $res = $this->sqlite->query($query);

        $return = array();
        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            if (isset($return[$row['release']])) {
                $return[$row['release']][] = $row['class'];
            } else {
                $return[$row['release']] = array($row['class']);
            }
        }

        return $return;
    }

    public function getInterfaces($component = 'cakephp', $release = null) {
        $query = 'SELECT namespaces.namespace || "\" || interface AS interface, release FROM interfaces 
                    JOIN namespaces 
                      ON interfaces.namespace_id = namespaces.id
                    JOIN releases 
                      ON namespaces.release_id = releases.id
                    JOIN components 
                      ON releases.component_id = components.id 
                    WHERE components.component = "' . $component . '"';
        if ($release !== null) {
            $query .= " AND releases.release = \"$release.0\"";
        }

        $res = $this->sqlite->query($query);
        $return = array();

        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            if (isset($return[$row['release']])) {
                $return[$row['release']][] = $row['interface'];
            } else {
                $return[$row['release']] = array($row['interface']);
            }
        }


        return $return;
    }

    public function getTraits($component = 'cakephp', $release = null) {
        $query = 'SELECT namespaces.namespace || "\" || trait AS trait, release FROM traits 
                    JOIN namespaces 
                      ON traits.namespace_id = namespaces.id
                    JOIN releases 
                      ON namespaces.release_id = releases.id
                    JOIN components 
                      ON releases.component_id = components.id 
                    WHERE components.component = "' . $component . '"';
        if ($release !== null) {
            $query .= " AND releases.release = \"$release.0\"";
        }
        $res = $this->sqlite->query($query);
        $return = array();

        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            if (isset($return[$row['release']])) {
                $return[$row['release']][] = $row['trait'];
            } else {
                $return[$row['release']] = array($row['trait']);
            }
        }

        return $return;
    }

}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
declare(strict_types = 1);

namespace Exakat\Data;


class Dictionary {
    const CASE_SENSITIVE   = true;
    const CASE_INSENSITIVE = false;

    private $datastore  = null;
    private $dictionary = array();
    private $lcindex    = array();

    public function __construct() {
        $this->datastore = exakat('datastore');
    }

    private function init(): void {
        $this->dictionary = $this->datastore->getAllHash('dictionary');
        foreach(array_keys($this->dictionary) as $key) {
            $this->lcindex[mb_strtolower((string) $key)] = 1;
        }
    }

    public function translate(array $code, bool $case = self::CASE_SENSITIVE): array {
        if (empty($this->dictionary)) {
            $this->init();
        }
        $return = array();

        $code = makeArray($code);

        if ($case === self::CASE_SENSITIVE) {
            $caseClosure = function (string $x) { return $x; };
        } else {
            $caseClosure = function (string $x) { return mb_strtolower($x); };
        }

        foreach($code as $c) {
            $d = $caseClosure($c);
            if (isset($this->dictionary[$d])) {
                $return[] = $this->dictionary[$d];
            }
        }

        return $return;
    }

    public function grep(string $regex): array {
        $keys = preg_grep($regex, array_keys($this->dictionary));

        $return = array();
        foreach($keys as $k) {
            $return[] = $this->dictionary[$k];
        }

        return $return;
    }

    public function source(array $code): array {
        $return = array();

        $reverse = array_flip($this->dictionary);

        foreach($code as $c) {
            if (isset($reverse[$c])) {
                $return[] = $reverse[$c];
            }
        }

        return $return;
    }

    public function length(string $length): array {
        $return = array();

        if (preg_match('/ > (\d+)/', $length, $r)) {
            $closure = function (string $s) use ($r) { return strlen($s) > $r[1]; };
        } elseif (preg_match('/ == (\d+)/', $length, $r)) {
            $closure = function (string $s) use ($r) { return strlen($s) === (int) $r[1]; };
        } elseif (preg_match('/ < (\d+)/', $length, $r)) {
            $closure = function (string $s) use ($r) { return strlen($s) < $r[1]; };
        } else {
            assert(false, "codeLength didn't understand $length");
        }

        $return = array_filter($this->dictionary, $closure, ARRAY_FILTER_USE_KEY);

        return array_values($return);
    }

    public function staticMethodStrings(): array {
        $doublecolon = array_filter($this->dictionary, function ($x) { return strlen($x) > 6 &&
                                                                              strpos($x,' ') === false &&
                                                                              strpos($x,'::') !== false &&
                                                                              mb_strtolower($x) === $x;},
                                                                              ARRAY_FILTER_USE_KEY );

        $return = array();
        foreach($doublecolon as $key => $value) {
            // how can this regex fail ?
            if (preg_match('/^[\'"](.+?)::(.+?)/', $key, $r)) {
                $return['\\' . $r[1]] = $value;
            }
        }

        return $return;
    }
}
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Data;

class Collector {
    private $dictionary = array();
    private $last       = array();
    private $count = 0;

    public function get($v) {
        if (isset($this->dictionary[$v])) {
            return $this->dictionary[$v];
        }

        ++$this->count;
        $this->dictionary[$v] = $this->count;
        $this->last[$v] = $this->count;

        return $this->count;
    }

    public function getDictionary() {
        return $this->dictionary;
    }

    public function getRecent() {
        $last = $this->last;
        $this->last = array();

        return $last;
    }
}
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Data;


class ZendF {
    private $sqlite = null;
    private $phar_tmp = null;

    public function __construct($path, $is_phar) {
        if ($is_phar) {
            $this->phar_tmp = tempnam(sys_get_temp_dir(), 'exzendf') . '.sqlite';
            copy("$path/zendf.sqlite", $this->phar_tmp);
            $docPath = $this->phar_tmp;
        } else {
            $docPath = "$path/zendf.sqlite";
        }
        $this->sqlite = new \Sqlite3($docPath, \SQLITE3_OPEN_READONLY);
    }

    public function __destruct() {
        if ($this->phar_tmp !== null) {
            unlink($this->phar_tmp);
        }
    }

    public function getClassByRelease($release = null) {
        $query = 'SELECT class, release FROM classes 
                    JOIN namespaces 
                      ON classes.namespace_id = namespaces.id
                    JOIN releases 
                      ON namespaces.release_id = releases.id';
        if ($release !== null) {
            $query .= " WHERE releases.release = \"release-$release.0\"";
        }

        $res = $this->sqlite->query($query);
        $return = array();

        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            if (isset($return[$row['release']])) {
                $return[$row['release']][] = $row['class'];
            } else {
                $return[$row['release']] = array($row['class']);
            }
        }

        return $return;
    }

    public function getInterfaceByRelease($release = null) {
        $query = 'SELECT interface, release FROM interfaces 
                    JOIN namespaces 
                      ON interfaces.namespace_id = namespaces.id
                    JOIN releases 
                      ON namespaces.release_id = releases.id';
        $res = $this->sqlite->query($query);
        $return = array();

        if ($release !== null) {
            $return = array($release => array());
            $query .= " WHERE releases.release = \"release-$release.0\"";
        }

        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            if (isset($return[$row['release']])) {
                $return[$row['release']][] = $row['interface'];
            } else {
                $return[$row['release']] = array($row['interface']);
            }
        }

        return $return;
    }

    public function getTraitByRelease($release = null) {
        $query = 'SELECT trait, release FROM traits 
                    JOIN namespaces 
                      ON traits.namespace_id = namespaces.id
                    JOIN releases 
                      ON namespaces.release_id = releases.id';
        $res = $this->sqlite->query($query);
        $return = array();

        if ($release !== null) {
            $return = array($release => array());
            $query .= " WHERE releases.release = \"release-$release.0\"";
        }

        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            if (isset($return[$row['release']])) {
                $return[$row['release']][] = $row['trait'];
            } else {
                $return[$row['release']] = array($row['trait']);
            }
        }

        return $return;
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Data;


class ZendF3 {
    private $sqlite = null;
    private $phar_tmp = null;

    public function __construct($path, $is_phar) {
        if ($is_phar) {
            $this->phar_tmp = tempnam(sys_get_temp_dir(), 'exzendf3') . '.sqlite';
            copy($path . '/zendf3.sqlite', $this->phar_tmp);
            $docPath = $this->phar_tmp;
        } else {
            $docPath = $path . '/zendf3.sqlite';
        }
        $this->sqlite = new \Sqlite3($docPath, \SQLITE3_OPEN_READONLY);
    }

    public function __destruct() {
        if ($this->phar_tmp !== null) {
            unlink($this->phar_tmp);
        }
    }

    public function getVersions($component = null) {
        $query = 'SELECT DISTINCT replace(release, "release-","") AS version FROM releases';
        if ($component !== null) {
            $query .= '  JOIN components 
                      ON releases.component_id = components.id 
 WHERE components.component = "' . $component . '"';
        }
        $query .= ' ORDER BY 1';
        $res = $this->sqlite->query($query);

        $return = array();
        while($row = $res->fetchArray(\SQLITE3_NUM)) {
            $return[] = $row[0];
        }

        return $return;
    }

    public function getClasses($component, $release = null) {
        $query = 'SELECT namespaces.namespace || "\" || class AS class, release FROM classes 
                    JOIN namespaces 
                      ON classes.namespace_id = namespaces.id
                    JOIN releases 
                      ON namespaces.release_id = releases.id 
                    JOIN components 
                      ON releases.component_id = components.id 
                    WHERE components.component = "' . $component . '"';
        if ($release !== null) {
            $query .= " AND releases.release = \"release-$release.0\"";
        }

        $res = $this->sqlite->query($query);

        $return = array();
        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            if (isset($return[$row['release']])) {
                $return[$row['release']][] = $row['class'];
            } else {
                $return[$row['release']] = array($row['class']);
            }
        }

        return $return;
    }

    public function getInterfaces($component, $release = null) {
        $query = 'SELECT namespaces.namespace || "\" || interface AS interface, release FROM interfaces 
                    JOIN namespaces 
                      ON interfaces.namespace_id = namespaces.id
                    JOIN releases 
                      ON namespaces.release_id = releases.id
                    JOIN components 
                      ON releases.component_id = components.id 
                    WHERE components.component = "' . $component . '"';
        if ($release !== null) {
            $query .= " AND releases.release = \"release-$release.0\"";
        }

        $res = $this->sqlite->query($query);
        $return = array();

        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            if (isset($return[$row['release']])) {
                $return[$row['release']][] = $row['interface'];
            } else {
                $return[$row['release']] = array($row['interface']);
            }
        }

        return $return;
    }

    public function getTraits($component, $release = null) {
        $query = 'SELECT namespaces.namespace || "\" || trait AS trait, release FROM traits 
                    JOIN namespaces 
                      ON traits.namespace_id = namespaces.id
                    JOIN releases 
                      ON namespaces.release_id = releases.id
                    JOIN components 
                      ON releases.component_id = components.id 
                    WHERE components.component = "' . $component . '"';
        if ($release !== null) {
            $query .= " AND releases.release = \"release-$release.0\"";
        }

        $res = $this->sqlite->query($query);
        $return = array();

        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            if (isset($return[$row['release']])) {
                $return[$row['release']][] = $row['trait'];
            } else {
                $return[$row['release']] = array($row['trait']);
            }
        }

        return $return;
    }

    public function getDeprecated($component = null, $release = null) {
        $where = array();
        if ($component !== null) {
            $where[] = 'components.component = "' . $component . '"';
        }

        if ($release !== null) {
            $where[] = "releases.release = \"release-$release.0\"";
        }

        if (empty($where)) {
            $whereSQL = '';
        } else {
            $whereSQL = ' WHERE ' . implode(' AND ', $where);
        }


        $query = <<<SQL
SELECT type, cit, name, namespaces.namespace, release FROM deprecated 
    JOIN namespaces 
      ON deprecated.namespace_id = namespaces.id
    JOIN releases 
      ON namespaces.release_id = releases.id
    JOIN components 
      ON releases.component_id = components.id 
    $whereSQL
    GROUP BY type, cit, name
SQL;

        $res = $this->sqlite->query($query);
        $return = array();

        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            $type = $row['type'];
            unset($row['type']);

            $release = $row['release'];
            unset($row['release']);

            if (isset($return[$type][$release])) {
                $return[$type][$release][] = $row;
            } elseif (isset($return[$type])) {
                $return[$type][$release] = array($row);
            } else {
                $return[$type] = array($release => array($row));
            }
        }

        return $return;
    }

}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Data;

class Composer {
    private $sqlite = null;
    private $phar_tmp = null;

    public function __construct($config) {
        if ($config->is_phar) {
            $this->phar_tmp = tempnam(sys_get_temp_dir(), 'exMethods') . '.sqlite';
            copy($config->dir_root . '/data/composer.sqlite', $this->phar_tmp);
            $docPath = $this->phar_tmp;
        } else {
            $docPath = $config->dir_root . '/data/composer.sqlite';
        }
        $this->sqlite = new \Sqlite3($docPath, \SQLITE3_OPEN_READONLY);
    }

    public function __destruct() {
        if ($this->phar_tmp !== null) {
            unlink($this->phar_tmp);
        }
    }

    public function getComposerNamespaces($vendor = null) {
        $query = "SELECT namespace AS namespace FROM namespaces WHERE namespace != 'global' ";
        if ($vendor !== null) {
            list($vendor, $component) = explode('/', $vendor);
            $query .= " AND vendor = '$vendor' AND component = '$component'";

        }
        $res = $this->sqlite->query($query);
        $return = array();

        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            $return[] = strtolower($row['namespace']);
        }

        return $return;
    }

    public function getComposerClasses() {
        // global namespace is stored with 'global' keyword, so we remove it.
        $query = "SELECT DISTINCT CASE namespace WHEN 'global' THEN classname ELSE namespace || '\\' || classname END AS classname 
        FROM namespaces 
        JOIN classes 
            ON classes.namespace_id = namespaces.id";

        $res = $this->sqlite->query($query);
        $return = array();

        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            $return[] = strtolower($row['classname']);
        }

        return $return;
    }

    public function getComposerInterfaces($vendor = null) {
        // global namespace is stored with 'global' keyword, so we remove it.
        $query = "SELECT CASE namespace WHEN 'global' THEN interfacename ELSE namespace || '\\' || interfacename END AS interfacename FROM namespaces 
JOIN interfaces ON interfaces.namespace_id = namespaces.id";
        if ($vendor !== null) {
            list($vendor, $component) = explode('/', $vendor);
            $query .= " WHERE vendor = '$vendor' and component = '$component'";

        }
        $res = $this->sqlite->query($query);
        $return = array();

        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            $return[] = strtolower($row['interfacename']);
        }

        return $return;
    }

    public function getComposerTraits($vendor = null) {
        // global namespace is stored with 'global' keyword, so we remove it.
        $query = "SELECT CASE namespace WHEN 'global' THEN traitname ELSE namespace || '\\' || traitname END AS traitname FROM namespaces 
JOIN traits ON traits.namespace_id = namespaces.id";
        if ($vendor !== null) {
            list($vendor, $component) = explode('/', $vendor);
            $query .= " WHERE vendor = '$vendor' and component = '$component'";

        }
        $res = $this->sqlite->query($query);
        $return = array();

        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            $return[] = strtolower($row['traitname']);
        }

        return $return;
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Data;


class ZendF2 {
    private $sqlite = null;
    private $phar_tmp = null;

    public function __construct($path, $config) {
        if ($config->is_phar) {
            $this->phar_tmp = tempnam(sys_get_temp_dir(), 'exzendf2') . '.sqlite';
            copy($path . '/zendf2.sqlite', $this->phar_tmp);
            $docPath = $this->phar_tmp;
        } else {
            $docPath = $path . '/zendf2.sqlite';
        }
        $this->sqlite = new \Sqlite3($docPath, \SQLITE3_OPEN_READONLY);
    }

    public function __destruct() {
        if ($this->phar_tmp !== null) {
            unlink($this->phar_tmp);
        }
    }

    public function getClassByRelease($release = null) {
        $query = 'SELECT namespaces.namespace || "\" || class AS class, release FROM classes 
                    JOIN namespaces 
                      ON classes.namespace_id = namespaces.id
                    JOIN releases 
                      ON namespaces.release_id = releases.id';
        if ($release !== null) {
            $query .= " WHERE releases.release = \"release-$release.0\"";
        }

        $res = $this->sqlite->query($query);
        $return = array();

        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            if (isset($return[$row['release']])) {
                $return[$row['release']][] = $row['class'];
            } else {
                $return[$row['release']] = array($row['class']);
            }
        }

        return $return;
    }

    public function getInterfaceByRelease($release = null) {
        $query = 'SELECT namespaces.namespace || "\" || interface AS interface, release FROM interfaces 
                    JOIN namespaces 
                      ON interfaces.namespace_id = namespaces.id
                    JOIN releases 
                      ON namespaces.release_id = releases.id';
        $res = $this->sqlite->query($query);
        $return = array();

        if ($release !== null) {
            $query .= " WHERE releases.release = \"release-$release.0\"";
        }

        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            if (isset($return[$row['release']])) {
                $return[$row['release']][] = $row['interface'];
            } else {
                $return[$row['release']] = array($row['interface']);
            }
        }

        return $return;
    }

    public function getTraitByRelease($release = null) {
        $query = 'SELECT namespaces.namespace || "\" || trait AS trait, release FROM traits 
                    JOIN namespaces 
                      ON traits.namespace_id = namespaces.id
                    JOIN releases 
                      ON namespaces.release_id = releases.id';
        $res = $this->sqlite->query($query);
        $return = array();

        if ($release !== null) {
            $query .= " WHERE releases.release = \"release-$release.0\"";
        }

        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            if (isset($return[$row['release']])) {
                $return[$row['release']][] = $row['trait'];
            } else {
                $return[$row['release']] = array($row['trait']);
            }
        }

        return $return;
    }

}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Data;


abstract class Data {
    private $config = null;

    protected $name = '';

    private $sqlite = null;
    private $phar_tmp = null;

    public function __construct(string $name) {
        $this->name = $name;
        $this->config = exakat('config');

        $fullpath = $this->config->dir_root . "/data/$name.sqlite";
        if ($this->config->is_phar) {
            $this->phar_tmp = tempnam(sys_get_temp_dir(), $name) . '.sqlite';
            if (file_exists($fullpath)) {
                copy($fullpath, $this->phar_tmp);
            } elseif (($this->config->ext !== null) && $this->config->ext->fileExists("data/$name.sqlite") ) {
                $this->config->ext->copyFile("data/$name.sqlite", $this->phar_tmp);
            } else {
                assert(false, "No database for '$name.sqlite'.");
            }
            $docPath = $this->phar_tmp;
        } elseif (file_exists($fullpath)) {
            $docPath = $fullpath;
        } elseif (($this->config->ext !== null) && $this->config->ext->fileExists("data/$name.sqlite") ) {
            $this->phar_tmp = tempnam(sys_get_temp_dir(), $name) . '.sqlite';
            $this->config->ext->copyFile("data/$name.sqlite", $this->phar_tmp);
            $docPath = $this->phar_tmp;
        } else {
            assert(false, "No database for '$name.sqlite'.");
        }
        $this->sqlite = new \Sqlite3($docPath, \SQLITE3_OPEN_READONLY);
    }

    public function __destruct() {
        if ($this->phar_tmp !== null) {
            unlink($this->phar_tmp);
        }
    }

    public function getVersions($component = null) {
        $query = 'SELECT version AS version FROM versions ORDER BY 1';
        $res = $this->sqlite->query($query);

        $return = array();
        while($row = $res->fetchArray(\SQLITE3_NUM)) {
            $return[] = $row[0];
        }

        return $return;
    }

    public function getCIT($component, $version = null) {
        $query = 'SELECT namespaces.name || "\" || cit.name AS className, version FROM cit 
                    JOIN namespaces 
                      ON cit.namespaceId = namespaces.id
                    JOIN versions 
                      ON namespaces.versionId = versions.id ';
        if ($version !== null) {
            $query .= " WHERE versions.version = \"$version\"";
        }

        $res = $this->sqlite->query($query);

        $return = array();
        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            if (isset($return[$row['version']])) {
                $return[$row['version']][] = $row['className'];
            } else {
                $return[$row['version']] = array($row['className']);
            }
        }

        return $return;
    }

    public function getClasses($component, $version = null) {
        $query = 'SELECT namespaces.name || "\" || cit.name AS className, version FROM cit 
                    JOIN namespaces 
                      ON cit.namespaceId = namespaces.id
                    JOIN versions 
                      ON namespaces.versionId = versions.id 
                    WHERE cit.type = "class"';
        if ($version !== null) {
            $query .= " AND versions.version = \"$version\"";
        }

        $res = $this->sqlite->query($query);

        $return = array();
        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            if (isset($return[$row['version']])) {
                $return[$row['version']][] = $row['className'];
            } else {
                $return[$row['version']] = array($row['className']);
            }
        }

        return $return;
    }

    public function getInterfaces($component, $version = null) {
        $query = 'SELECT namespaces.name || "\" || cit.name AS interfaceName, version FROM cit 
                    JOIN namespaces 
                      ON cit.namespaceId = namespaces.id
                    JOIN versions 
                      ON namespaces.versionId = versions.id 
                    WHERE cit.type = "interface"';
        if ($version !== null) {
            $query .= " AND versions.version = \"$version\"";
        }

        $res = $this->sqlite->query($query);
        $return = array();

        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            if (isset($return[$row['version']])) {
                $return[$row['version']][] = $row['interfaceName'];
            } else {
                $return[$row['version']] = array($row['interfaceName']);
            }
        }

        return $return;
    }

    public function getTraits($component, $version = null) {
        $query = 'SELECT namespaces.name || "\" || cit.name AS traitName, version FROM cit 
                    JOIN namespaces 
                      ON cit.namespaceId = namespaces.id
                    JOIN versions 
                      ON namespaces.versionId = versions.id 
                    WHERE cit.type = "trait" AND
                          namespaces.name != "" ';
        if ($version !== null) {
            $query .= " AND versions.version = \"$version\"";
        }

        $res = $this->sqlite->query($query);
        $return = array();

        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            if (isset($return[$row['version']])) {
                $return[$row['version']][] = $row['traitName'];
            } else {
                $return[$row['version']] = array($row['traitName']);
            }
        }

        return $return;
    }

    public function getNamespaces($component, $version = null) {
        $query = 'SELECT namespaces.name as namespaceName, version FROM namespaces 
                    JOIN versions 
                      ON namespaces.versionId = versions.id 
                  WHERE namespaces.name != "" ';
        if ($version !== null) {
            $query .= " AND versions.version = \"$version\"";
        }

        $res = $this->sqlite->query($query);
        $return = array();

        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            if (isset($return[$row['version']])) {
                $return[$row['version']][] = $row['namespaceName'];
            } else {
                $return[$row['version']] = array($row['namespaceName']);
            }
        }

        return $return;
    }

}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Data;

class Methods {
    private $sqlite = null;
    private $phar_tmp = null;

    const STRICT = true;
    const LOOSE  = false;

    public function __construct($config) {
        if ($config->is_phar) {
            $this->phar_tmp = tempnam(sys_get_temp_dir(), 'exMethods') . '.sqlite';
            copy($config->dir_root . '/data/methods.sqlite', $this->phar_tmp);
            $docPath = $this->phar_tmp;
        } else {
            $docPath = $config->dir_root . '/data/methods.sqlite';
        }
        $this->sqlite = new \Sqlite3($docPath, \SQLITE3_OPEN_READONLY);
    }

    public function __destruct() {
        if ($this->phar_tmp !== null && file_exists($this->phar_tmp)) {
            unlink($this->phar_tmp);
        }
    }

    public function getMethodsArgsInterval() {
        $query = 'SELECT class, name, args_min, args_max FROM methods WHERE class != "PHP"';
        $res = $this->sqlite->query($query);
        $return = array();

        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            $return[] = $row;
        }

        return $return;
    }

    public function getFunctionsArgsInterval() {
        $query = 'SELECT class, name, args_min, args_max FROM methods WHERE Class = "PHP"';
        $res = $this->sqlite->query($query);
        $return = array();

        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            $return[] = $row;
        }

        return $return;
    }

    public function getFunctionsLastArgsNotBoolean() {
        $query = <<<'SQL'
SELECT '\' || lower(methods.name) AS fullnspath, args_max - 1 AS position FROM methods 
JOIN args_type ON args_type.name = methods.name
WHERE methods.class = "PHP" AND
      (args_max = 1 AND not instr(arg0, 'bool') AND arg0 != '') OR   
      (args_max = 2 AND not instr(arg1, 'bool') AND arg1 != '') OR 
      (args_max = 3 AND not instr(arg2, 'bool') AND arg2 != '') OR 
      (args_max = 4 AND not instr(arg3, 'bool') AND arg3 != '')	
SQL;
        $res = $this->sqlite->query($query);
        $return = array();

        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            $return[] = $row['fullnspath'];
        }

        return $return;
    }

    public function getFunctionsReferenceArgs() {
        $query = <<<'SQL'
SELECT name AS function, 0 AS position FROM args_is_ref WHERE Class = 'PHP' AND arg0 = 'reference' UNION
SELECT name AS function, 1 AS position FROM args_is_ref WHERE Class = 'PHP' AND arg1 = 'reference' UNION
SELECT name AS function, 2 AS position FROM args_is_ref WHERE Class = 'PHP' AND arg2 = 'reference' UNION
SELECT name AS function, 3 AS position FROM args_is_ref WHERE Class = 'PHP' AND arg3 = 'reference' UNION
SELECT name AS function, 4 AS position FROM args_is_ref WHERE Class = 'PHP' AND arg4 = 'reference' UNION
SELECT name AS function, 5 AS position FROM args_is_ref WHERE Class = 'PHP' AND arg5 = 'reference'
SQL;
        $res = $this->sqlite->query($query);
        $return = array();

        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            $return[] = $row;
        }

        return $return;
    }

    public function getFunctionsValueArgs() {
        $query = <<<'SQL'
SELECT name AS function, 0 AS position FROM args_is_ref WHERE Class = 'PHP' AND arg0 = 'value' UNION
SELECT name AS function, 1 AS position FROM args_is_ref WHERE Class = 'PHP' AND arg1 = 'value' UNION
SELECT name AS function, 2 AS position FROM args_is_ref WHERE Class = 'PHP' AND arg2 = 'value' UNION
SELECT name AS function, 3 AS position FROM args_is_ref WHERE Class = 'PHP' AND arg3 = 'value' UNION
SELECT name AS function, 4 AS position FROM args_is_ref WHERE Class = 'PHP' AND arg4 = 'value' UNION
SELECT name AS function, 5 AS position FROM args_is_ref WHERE Class = 'PHP' AND arg5 = 'value'
SQL;
        $res = $this->sqlite->query($query);
        $return = array();

        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            $return[] = $row;
        }

        return $return;
    }

    public function getDeterministFunctions() {
        $query = 'SELECT name FROM methods WHERE determinist = 1';
        $res = $this->sqlite->query($query);
        $return = array();

        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            $return[] = $row['name'];
        }

        return $return;
    }

    public function getNonDeterministFunctions() {
        $query = 'SELECT name FROM methods WHERE determinist = 0';
        $res = $this->sqlite->query($query);
        $return = array();

        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            $return[] = $row['name'];
        }

        return $return;
    }

    public function getInternalParameterType() {
        $return = array();

        $args = array('arg0', 'arg1');
        foreach($args as $id => $arg) {
            $query = <<<SQL
SELECT $arg, lower(GROUP_CONCAT('\' || name)) AS functions FROM args_type WHERE class='PHP' AND $arg IN ('int', 'array', 'bool','string') GROUP BY $arg
SQL;
            $res = $this->sqlite->query($query);

            $position = array();
            while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
                $position[$row[$arg]] = explode(',', $row['functions']);
            }

            $return[$id] = $position;
        }

        return $return;
    }

    public function getFunctionsByArgType($typehint = 'int', $strict = self::STRICT) {
        $return = array_fill(0, 5, array());

        if ($strict === self::LOOSE) {
            $search = " LIKE '%$typehint%'";
        } elseif ($strict === self::STRICT) {
            $search = " = '$typehint'";
        } else {
            // Default is strict
            $search = " = '$typehint'";
        }

        $query = <<<SQL
SELECT name AS function, 0 AS position FROM args_type WHERE Class = 'PHP' AND arg0 $search UNION
SELECT name AS function, 1 AS position FROM args_type WHERE Class = 'PHP' AND arg1 $search UNION
SELECT name AS function, 2 AS position FROM args_type WHERE Class = 'PHP' AND arg2 $search UNION
SELECT name AS function, 3 AS position FROM args_type WHERE Class = 'PHP' AND arg3 $search UNION
SELECT name AS function, 4 AS position FROM args_type WHERE Class = 'PHP' AND arg4 $search UNION
SELECT name AS function, 5 AS position FROM args_type WHERE Class = 'PHP' AND arg5 $search 
SQL;
        $res = $this->sqlite->query($query);

        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            array_collect_by($return, (int) $row['position'], '\\' . mb_strtolower($row['function']));
        }

        return $return;
    }

    public function getBugFixes() {
        $return = array();

        $query = <<<'SQL'
SELECT * FROM bugfixes ORDER BY SUBSTR(solvedIn72, 5) + 0 DESC, SUBSTR(solvedIn71, 5) + 0 DESC, SUBSTR(solvedIn70, 5) + 0 DESC, SUBSTR(56, 5) + 0 DESC 
SQL;
        $res = $this->sqlite->query($query);

        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            $return[] = $row;
        }

        return $return;
    }

    public function getFunctionsByReturn(bool $singleTypeOnly = false) {
        $return = array();

        if ($singleTypeOnly === true) {
            $where = ' AND return NOT LIKE "%,%"';
        } else {
            $where = '';
        }

        $query = <<<SQL
SELECT return, lower(GROUP_CONCAT('\' || name)) AS functions 
    FROM args_type 
    WHERE class='PHP'         AND 
          return IS NOT NULL $where
    GROUP BY return
SQL;
        $res = $this->sqlite->query($query);

        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            $types = explode(',', $row['return']);
            foreach($types as $type) {
                array_collect_by($return, $type, explode(',', $row['functions']));
            }
        }

        foreach($return as $type => &$list) {
            $list = array_merge(...$list);
        }

        return $return;
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Data;


class Slim {
    private $sqlite = null;
    private $phar_tmp = null;

    public function __construct($path, $config) {
        if ($config->is_phar) {
            $this->phar_tmp = tempnam(sys_get_temp_dir(), 'exslim') . '.sqlite';
            copy($path . '/slim.sqlite', $this->phar_tmp);
            $docPath = $this->phar_tmp;
        } else {
            $docPath = $path . '/slim.sqlite';
        }
        $this->sqlite = new \Sqlite3($docPath, \SQLITE3_OPEN_READONLY);
    }

    public function __destruct() {
        if ($this->phar_tmp !== null) {
            unlink($this->phar_tmp);
        }
    }

    public function getVersions() {
        $query = 'SELECT DISTINCT release AS version FROM releases  ORDER BY 1';
        $res = $this->sqlite->query($query);

        $return = array();
        while($row = $res->fetchArray(\SQLITE3_NUM)) {
            $return[] = $row[0];
        }

        return $return;
    }

    public function getClasses($release = null) {
        $query = 'SELECT namespaces.namespace || "\" || class AS class, release FROM classes 
                    JOIN namespaces 
                      ON classes.namespace_id = namespaces.id
                    JOIN releases 
                      ON namespaces.release_id = releases.id 
                    JOIN components 
                      ON releases.component_id = components.id 
                    WHERE components.component = "slim"';
        if ($release !== null) {
            $query .= " AND releases.release = \"$release.0\"";
        }

        $res = $this->sqlite->query($query);

        $return = array();
        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            if (isset($return[$row['release']])) {
                $return[$row['release']][] = $row['class'];
            } else {
                $return[$row['release']] = array($row['class']);
            }
        }

        return $return;
    }

    public function getInterfaces($release = null) {
        $query = 'SELECT namespaces.namespace || "\" || interface AS interface, release FROM interfaces 
                    JOIN namespaces 
                      ON interfaces.namespace_id = namespaces.id
                    JOIN releases 
                      ON namespaces.release_id = releases.id
                    JOIN components 
                      ON releases.component_id = components.id 
                    WHERE components.component = "slim"';
        if ($release !== null) {
            $query .= " AND releases.release = \"$release.0\"";
        }

        $res = $this->sqlite->query($query);
        $return = array();

        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            if (isset($return[$row['release']])) {
                $return[$row['release']][] = $row['interface'];
            } else {
                $return[$row['release']] = array($row['interface']);
            }
        }

        return $return;
    }

    public function getTraits($release = null) {
        $query = 'SELECT namespaces.namespace || "\" || trait AS trait, release FROM traits 
                    JOIN namespaces 
                      ON traits.namespace_id = namespaces.id
                    JOIN releases 
                      ON namespaces.release_id = releases.id
                    JOIN components 
                      ON releases.component_id = components.id 
                    WHERE components.component = "slim"';
        if ($release !== null) {
            $query .= " AND releases.release = \"$release.0\"";
        }

        $res = $this->sqlite->query($query);
        $return = array();

        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            if (isset($return[$row['release']])) {
                $return[$row['release']][] = $row['trait'];
            } else {
                $return[$row['release']] = array($row['trait']);
            }
        }

        return $return;
    }

}

?>
<?php declare(strict_types = 1);

namespace Exakat\Dump;


class Path {
    private $path  = '';

    public function __construct(string $path) {
        $this->path = $path;
    }

    public function __toString(): string {
        return $path;
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Performances;

use Exakat\Analyzer\Analyzer;

class Autoappend extends Analyzer {
    public function analyze() {
        // $a[] = $a;
        $this->atomIs('Arrayappend')
             ->outIs('APPEND')
             ->savePropertyAs('fullcode', 'name')
             ->back('first')
             ->inIs('LEFT')
             ->atomIs('Assignation')
             ->as('results')
             ->outIs('RIGHT')
             ->samePropertyAs('fullcode', 'name')
             ->back('results');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Performances;

use Exakat\Analyzer\Analyzer;

class AvoidArrayPush extends Analyzer {
    public function analyze() {
        $this->atomFunctionIs('\\array_push');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Performances;

use Exakat\Analyzer\Analyzer;

class MakeOneCall extends Analyzer {
    public function analyze() {
        // the second argument must match between calls
        $functionsArg2 = array('\\str_replace',
                               '\\str_ireplace',
                               '\\preg_replace_callback',
                               '\\preg_replace',
                              );

        // preg_replace( **, **, x); called several times
        // str_replace( **, **, x); called several times
        $this->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomFunctionIs($functionsArg2)
             ->savePropertyAs('fullnspath', 'fnp')
             ->back('first')
             ->outIs('LEFT')
             ->atomIs(self::CONTAINERS)
             ->savePropertyAs('fullcode', 'string')
             ->back('first')
             ->nextSibling()
             ->atomIs('Assignation')
             ->outIs('RIGHT')
             ->functioncallIs($functionsArg2)
             ->samePropertyAs('fullnspath', 'fnp')
             ->outWithRank('ARGUMENT', 2)
             ->samePropertyAs('fullcode', 'string')
             ->back('first');
        $this->prepareQuery();

        // Nesting str_replace calls
        // First level calling
        $this->atomFunctionIs($functionsArg2)
             ->hasIn('ARGUMENT')
             ->savePropertyAs('fullnspath', 'function')
             ->inIs('ARGUMENT')
             ->atomIs('Functioncall')
             ->has('fullnspath')
             ->samePropertyAs('fullnspath', 'function')
             ->hasNoIn('ARGUMENT');
        $this->prepareQuery();

        //Calling from another functioncall
        // Second level calling
        $this->atomFunctionIs($functionsArg2)
             ->hasIn('ARGUMENT')
             ->inIs('ARGUMENT')
             ->atomIs('Functioncall')
             ->has('fullnspath')
             ->savePropertyAs('fullnspath', 'function')
             ->inIs('ARGUMENT')
             ->atomIs('Functioncall')
             ->has('fullnspath')
             ->samePropertyAs('fullnspath', 'function')
             ->hasIn('ARGUMENT');
        $this->prepareQuery();

        // same functions, in a foreach?
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Performances;

use Exakat\Analyzer\Analyzer;

class NoConcatInLoop extends Analyzer {
    public function analyze() {
        //'foreach($a as $b) { $d .= $b; } ',
        $this->atomIs(array('Foreach', 'For'))
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Assignation')
             ->codeIs('.=')
             ->back('first');
        $this->prepareQuery();

        $this->atomIs(array('Foreach', 'For'))
             ->analyzerIsNot('self')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Concatenation')
             ->outIs('CONCAT')
             ->savePropertyAs('fullcode', 'variable')
             ->inIs('CONCAT')
             ->inIs('RIGHT')
             ->atomIs('Assignation')
             ->codeIs('=')
             ->outIs('LEFT')
             ->samePropertyAs('fullcode', 'variable')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Performances;

use Exakat\Analyzer\Analyzer;

class ArrayMergeInLoops extends Analyzer {
    public function analyze() {
        $functions = array('\\array_merge',
                           '\\array_merge_recursive',
//                           '\\file_put_contents',
                           );

        // foreach($a as $b) { $c = array_merge($c, $b); };
        $this->atomFunctionIs($functions)
             ->hasLoop()
             ->atomInsideNoDefinition(self::CONTAINERS)
             ->savePropertyAs('fullcode', 'var')
             ->back('first')
             ->inIs('RIGHT')
             ->atomIs('Assignation')
             ->codeIs('=')
             ->outIs('LEFT')
             ->atomIs(self::CONTAINERS)
             ->samePropertyAs('fullcode', 'var')
             ->goToLoop();
        $this->prepareQuery();

        // with one level of functioncall : foreach($a as $b) { foo($a); }; function foo(c) { return array_merge($c); }
        $this->atomFunctionIs($functions)
             ->hasNoLoop()
             ->hasIn('RETURN')
             ->goToFunction()
             ->outIs('DEFINITION')
             ->goToLoop();
        $this->prepareQuery();

        // with one level of functioncall : array_map($array, 'foo'); function foo(c) { array_merge($c); }
        $this->atomFunctionIs($functions)
             ->hasNoLoop()
             ->goToFunction()
             ->outIs('DEFINITION')
             ->atomIs(self::STRINGS_ALL, self::WITH_CONSTANTS)
             ->inIs('ARGUMENT')
             ->functioncallIs('\\array_map');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Performances;

use Exakat\Analyzer\Analyzer;

class MbStringInLoop extends Analyzer {
    public function analyze() {
        //foreach( as $i) { mb_substr(1, $i, 3);}
        $this->atomFunctionIs('\mb_substr')
             //in a foreach
             ->filter(
                $this->side()
                     ->outWithRank('ARGUMENT', 1)
                     ->inIs('DEFINITION')
                     ->outIs('DEFINITION')
                     ->inIs(array('VALUE', 'INDEX'))
             );
        $this->prepareQuery();

        //for( ; ++$i) { mb_substr(1, $i, 3);}
        $this->atomFunctionIs('\mb_substr')
             ->analyzerIsNot('self')
             //in a foreach
             ->filter(
                $this->side()
                     ->outWithRank('ARGUMENT', 1)
                     ->inIs('DEFINITION')
                     ->outIs('DEFINITION')
                     ->goToInstruction('Sequence')
                     ->inIs('INCREMENT')
             );
        $this->prepareQuery();

        // dowhile, loop ?
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Performances;

use Exakat\Analyzer\Analyzer;

class StrposTooMuch extends Analyzer {
    public function analyze() {
        // strpos($a, $b) === 0
        $this->atomFunctionIs(array('\\strpos', '\\stripos', '\\strrpos', '\\strripos'))
             ->inIs(array('LEFT', 'RIGHT'))
             ->atomIs('Comparison')
             ->codeIs(array('==', '==='))
             ->outIs('RIGHT')
             ->has('intval')
             ->codeIs(array('0'))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Performances;

use Exakat\Analyzer\Analyzer;

class IssetWholeArray extends Analyzer {
    public function analyze() {
        // isset($a) || isset($a[1])
        $this->atomIs('Isset')
             ->outIs('ARGUMENT')
             ->atomIs('Array')
             ->outIs('VARIABLE')
             ->atomIs('Variablearray')
             ->savePropertyAs('fullcode', 'array')
             ->back('first')
             ->inIsIE('NOT') // Skip not
             ->inIs(array('LEFT', 'RIGHT'))
             ->as('results')
             ->outIs(array('LEFT', 'RIGHT'))
             ->outIsIE('NOT')
             ->atomIs('Isset')
             ->outIs('ARGUMENT')
             ->atomIs('Variable')
             ->samePropertyAs('fullcode', 'array')
             ->back('results');
        $this->prepareQuery();

        // isset($a[1][2]) || isset($a[1])
        $this->atomIs('Isset')
             ->outIs('ARGUMENT')
             ->atomIs('Array')
             ->outIs('VARIABLE')
             ->atomIsNot('Variablearray')
             ->savePropertyAs('fullcode', 'array')
             ->back('first')
             ->inIsIE('NOT') // Skip not
             ->inIs(array('LEFT', 'RIGHT'))
             ->as('results')
             ->outIs(array('LEFT', 'RIGHT'))
             ->outIsIE('NOT')
             ->atomIs('Isset')
             ->outIs('ARGUMENT')
             ->atomIs('Array')
             ->samePropertyAs('fullcode', 'array')
             ->back('results');
        $this->prepareQuery();

        // isset($a, $a[1])
        $this->atomIs('Isset')
             ->isNot('count', 1)
             ->outIs('ARGUMENT')
             ->atomIs('Array')
             ->outIs('VARIABLE')
             ->atomIs(array('Variablearray', 'Phpvariable', 'Member', 'Staticproperty'))
             ->savePropertyAs('fullcode', 'array')
             ->back('first')
             ->outIs('ARGUMENT')
             ->atomIs(array('Variable', 'Phpvariable', 'Member', 'Staticproperty'))
             ->samePropertyAs('fullcode', 'array')
             ->back('first');
        $this->prepareQuery();

        // isset($a[1][2], $a[1])
        $this->atomIs('Isset')
             ->isNot('count', 1)
             ->outIs('ARGUMENT')
             ->atomIs('Array')
             ->savePropertyAs('rank', 'ranked')
             ->outIs('VARIABLE')
             ->atomIsNot(array('Variablearray', 'Phpvariable'))
             ->savePropertyAs('fullcode', 'array')
             ->back('first')
             ->outIs('ARGUMENT')
             ->notSamePropertyAs('rank', 'ranked')
             ->atomIs('Array')
             ->atomIsNot(array('Variablearray', 'Phpvariable'))
             ->samePropertyAs('fullcode', 'array')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Performances;

use Exakat\Analyzer\Analyzer;

class Php74ArrayKeyExists extends Analyzer {
    protected $phpVersion = '7.4+';

    public function analyze() {
        // array_key_exists() : No initial \, no use definition
        $this->atomFunctionIs('\\array_key_exists')
             ->tokenIsNot('T_NS_SEPARATOR')  // Not a \array_keys_exists
             ->not(
                $this->side()
                     ->outIs('NAME')
                     ->inIs('DEFINITION')
                     ->atomIs(array('Nsname', 'Identifier', 'As'))
                     ->inIs('USE')
                     ->atomIs('Usenamespace')
                     ->hasOut('FUNCTION')
             )
             ->goToInstruction('Namespace')
             ->outIs('NAME')
             ->atomIsNot('Void')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Performances;

use Exakat\Analyzer\Analyzer;

class NoGlob extends Analyzer {
    public function analyze() {
        // glob() with no second argument (without GLOB_NOSORT)
        $this->atomFunctionIs('\\glob')
             ->noChildWithRank('ARGUMENT', 1)
             ->back('first');
        $this->prepareQuery();

        // glob() with second argument (without GLOB_NOSORT)
        $this->atomFunctionIs('\\glob')
             ->outWithRank('ARGUMENT', 1)
             ->atomIs(array('Identifier', 'Nsname'))
             ->fullnspathIsNot('\GLOB_NOSORT')
             ->back('first');
        $this->prepareQuery();

        // glob() with second argument (without GLOB_NOSORT)
        $this->atomFunctionIs('\\glob')
             ->outWithRank('ARGUMENT', 1)
             ->atomIs('Logical')
             ->not(
                $this->side()
                     ->outIs(array('LEFT', 'RIGHT'))
                     ->atomis(array('Identifier', 'Nsname'))
                     ->fullnspathIs('\\GLOB_NOSORT')
             )
             ->back('first');
        $this->prepareQuery();

        // scandir() wit no second argument (without GLOB_NOSORT)
        $this->atomFunctionIs('\\scandir')
             ->noChildWithRank('ARGUMENT', 1)
             ->back('first');
        $this->prepareQuery();

    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Performances;

use Exakat\Analyzer\Analyzer;

class RegexOnCollector extends Analyzer {
    public function analyze() {
        //foreach ($a as $b) {
        //    $c .= $b;
        //    foo($b);
        //}
        $this->atomIs('Foreach')
             ->outIs(array('INDEX', 'VALUE'))
             ->savePropertyAs('fullcode', 'increment')
             ->back('first')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Assignation')
             ->tokenIs('T_CONCAT_EQUAL')

             ->as('collection')
             ->outIs('RIGHT')
             ->samePropertyAs('fullcode', 'increment')
             ->back('collection')

             ->outIs('LEFT')
             ->savePropertyAs('fullcode', 'collector')

             ->back('first')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Functioncall')
             ->outIs('ARGUMENT')
             ->samePropertyAs('fullcode', 'collector')

             ->back('first');
        $this->prepareQuery();

        //foreach ($a as $b) {
        //    $c []= $b;
        //    foo($b);
        //}
        $this->atomIs('Foreach')
             ->outIs(array('INDEX', 'VALUE'))
             ->savePropertyAs('fullcode', 'increment')
             ->back('first')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Assignation')
             ->tokenIs('T_EQUAL')

             ->as('collection')
             ->outIs('RIGHT')
             ->samePropertyAs('fullcode', 'increment')
             ->back('collection')

             ->outIs('LEFT')
             ->atomIs('Arrayappend')
             ->outIs('APPEND')
             ->savePropertyAs('fullcode', 'collector')

             ->back('first')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Functioncall')
             ->outIs('ARGUMENT')
             ->samePropertyAs('fullcode', 'collector')

             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Performances;

use Exakat\Analyzer\Analyzer;

class LogicalToInArray extends Analyzer {
    public function analyze() {
        // $a == 'a' || $a == 'b'
        // ($a == 'a') || ($a == 'b')
        // $a == 'a' || $b == 'b' || $a == 'c'
        $this->atomIs('Logical')
             ->tokenIs(array('T_LOGICAL_OR', 'T_BOOLEAN_OR'))

             ->outIs('LEFT')
             ->outIsIE('CODE')
             ->atomIs('Comparison')
             ->codeIs(array('==', '==='))
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs(self::CONTAINERS)
             ->savePropertyAs('fullcode', 'name')
             ->inIs(array('LEFT', 'RIGHT'))
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs(self::LITERALS)
             ->back('first')

             ->atomInside('Logical')
             ->tokenIs(array('T_LOGICAL_OR', 'T_BOOLEAN_OR'))

             ->outIs('RIGHT')
             ->outIsIE('CODE')
             ->atomIs('Comparison')
             ->codeIs(array('==', '==='))
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs(self::CONTAINERS)
             ->samePropertyAs('fullcode', 'name')
             ->inIs(array('LEFT', 'RIGHT'))
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs(self::LITERALS)

             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Performances;

use Exakat\Analyzer\Analyzer;

class RegexOnArrays extends Analyzer {
    public function analyze() {
        // foreach($a as $b) { preg_match()}
        $this->atomIs('Foreach')
             ->outIs('VALUE')
             ->savePropertyAs('fullcode', 'blinds')
             ->back('first')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Functioncall')
             ->functioncallIs('\\preg_match')
             ->outWithRank('ARGUMENT', 1)
             ->samePropertyAs('fullcode', 'blinds')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Performances;

use Exakat\Analyzer\Analyzer;

class ArrayKeyExistsSpeedup extends Analyzer {
    protected $phpVersion = '7.4+';

    public function analyze() {
        // isset($a) || array_search_keys()
        $this->atomIs('Logical')
             ->codeIs('||')
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs('Isset')
             ->inIs(array('LEFT', 'RIGHT'))
             ->outIs(array('LEFT', 'RIGHT'))
             ->functioncallIs('\\array_key_exists')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Performances;

use Exakat\Analyzer\Analyzer;

class NotCountNull extends Analyzer {
    public function analyze() {
        $functions = array('\\count',
                           '\\sizeof',
                           '\\strlen',
                           '\\mb_strlen',
                           );

        // if (count($x) == 0)
        $this->atomFunctionIs($functions)
             ->inIs(array('LEFT', 'RIGHT'))
             ->atomIs('Comparison')
             ->codeIs(array('==', '===', '!=', '!==', '>', '>=', '<', '<='))
             ->as('results')
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs('Integer')
             ->codeIs('0')
             ->back('results');
        $this->prepareQuery();

        // if (count($x))
        $this->atomFunctionIs($functions)
             ->inIs('CONDITION')
             ->atomIsNot('Switch')
             ->back('first');
        $this->prepareQuery();

        // if (count($x) && $x > 2)
        $this->atomFunctionIs($functions)
             ->inIs(array('LEFT', 'RIGHT'))
             ->atomIs('Logical')
             ->back('first');
        $this->prepareQuery();

    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Performances;

use Exakat\Analyzer\Common\FunctionUsage;

class SlowFunctions extends FunctionUsage {
    public function analyze() {
        $this->functions = array(
'array_diff',
'array_intersect',
'array_key_exists',
'array_map',
'array_search',
'array_udiff',
'array_uintersect',
'array_unshift',
'array_walk',
'in_array',
'preg_replace',
'strstr',
'uasort',
'uksort',
'usort',
);

        // array_unique was upgraded in PHP 7.2
        if (version_compare('7.2', $this->config->phpversion) > 1) {
            $this->functions[] = 'array_unique';
        }

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Performances;

use Exakat\Analyzer\Analyzer;

class PrePostIncrement extends Analyzer {
    public function analyze() {
        $this->atomIs('Postplusplus')
             ->hasNoIn(array('RIGHT', 'ARGUMENT'))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Performances;

use Exakat\Analyzer\Analyzer;

class PHP7EncapsedStrings extends Analyzer {
    public function analyze() {
        $ignoreAtom = array('Functioncall',    // calls
                            'Methodcall',
                            'Staticproperty',
                            'Staticmethodcall',
                            'Staticconstant',  // constants
                            'Identifier',
                            'Nsname',
                            'Magicconstant',
                            );
        // "a $b c"
        // No calls,
        $this->atomIs('Concatenation')
             ->hasNoChildren($ignoreAtom, array('CONCAT'));
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Performances;

use Exakat\Analyzer\Analyzer;

class CsvInLoops extends Analyzer {
    public function analyze() {
        // $fp = fopen('/to/path/', 'r+');
        // foreach($array as $r) { fputcsv($fp, $r); }

        $this->atomFunctionIs('\fputcsv')
             ->filter(
                $this->side()
                     ->outWithRank('ARGUMENT', 0)
                     ->inIs('DEFINITION')
                     ->outIs('DEFINITION')
                     ->inIs('LEFT')
                     ->outIs('RIGHT')
                     ->functioncallIs('\\fopen')
                     ->outWithRank('ARGUMENT', 0)
                     ->regexIsNot('noDelimiter', '(?i)^php://(memory|temp)')
             )
             ->hasInstruction(self::LOOPS_ALL)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Performances;

use Exakat\Analyzer\Analyzer;

class FetchOneRowFormat extends Analyzer {
    public function analyze() {
        // $res->fetchRow() : Default is slow
        $this->atomIs('Methodcall')
             ->outIs('METHOD')
             ->tokenIs('T_STRING')
             ->codeIs('fetchRow')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('Void')
             ->back('first');
        $this->prepareQuery();

        // $res->fetchRow(SQLITE3_BOTH) : SQLITE3_BOTH is the worst.
        $this->atomIs('Methodcall')
             ->outIs('METHOD')
             ->tokenIs('T_STRING')
             ->codeIs('fetchRow')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs(array('Identifier', 'Nsname'))
             ->fullnspathIs('\\sqlite3_both')
             ->back('first');
        $this->prepareQuery();

        // $res->fetchRow(SQLITE3_NUM), $res->fetchRow(SQLITE3_ASSOC) : OK
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Performances;

use Exakat\Analyzer\Analyzer;

class DoInBase extends Analyzer {
    public function analyze() {
        // TODO : Also extends to ++/-- and .

        // TODO : add more databases (methods and functions)

        $readingMethods = array('fetchArray',           // SQLITE3
                                'fetch', 'fetchobject', // PDO
                                'fetch_object', 'fetch_row', 'fetch_field', 'fetch_array', 'fetch_field', // mysqli
                                );

        // while($row = $res->fetchArray()) { $c += $row['e']}
        $this->atomIs('While')

             ->outIs('CONDITION')
             ->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomIs('Methodcall')
             ->outIs('METHOD')
             ->outIs('NAME')
             ->codeIs($readingMethods, self::TRANSLATE, self::CASE_INSENSITIVE)
             ->inIs('NAME')
             ->inIs('METHOD')
             ->inIs('RIGHT')
             ->outIs('LEFT')
             ->atomIs('Variable')
             ->savePropertyAs('code', 'row')
             ->back('first')

             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Assignation')
             ->codeIs('+=')
             ->outIs('RIGHT')
             ->atomInsideNoDefinition(self::VARIABLES_USER)
             ->samePropertyAs('code', 'row')

             ->back('first');
        $this->prepareQuery();

        $readingFunctions = array('pg_fetch_result', 'pg_fetch_row', 'pg_fetch_object', 'pg_fetch_assoc',    // PostGreSQL
                                  'oci_fetch_array', 'oci_fetch_row', 'oci_fetch_object', 'oci_fetch_assoc', // Oracle
                                  'sqlsrv_fetch', 'sqlsrv_fetch_object', 'sqlsrv_fetch_array',               //SQL_SRV
                                 );
        $readingFunctions = makeFullNsPath($readingFunctions);

        // while($row = $res->fetchArray()) { $c += $row['e']}
        $this->atomIs('While')

             ->outIs('CONDITION')
             ->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomIs('Functioncall')
             ->fullnspathIs($readingFunctions)
             ->inIs('RIGHT')
             ->outIs('LEFT')
             ->atomIs('Variable')
             ->savePropertyAs('code', 'row')
             ->back('first')

             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Assignation')
             ->codeIs(array('+='), self::TRANSLATE, self::CASE_SENSITIVE)
             ->outIs('RIGHT')
             ->atomInsideNoDefinition(self::VARIABLES_USER)
             ->samePropertyAs('code', 'row')

             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Performances;

use Exakat\Analyzer\Analyzer;

class DoubleArrayFlip extends Analyzer {
    public function analyze() {
        //$a = array_flip($b);
        //unset($a['c']);
        //$c = array_flip($a);
        $this->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomFunctionIs('\array_flip')
             ->inIs('RIGHT')
             ->atomIs('Assignation')
             ->outIs('LEFT')
             ->atomIs(self::CONTAINERS)
             ->savePropertyAs('fullcode', 'container')
             ->inIs('LEFT')
             ->nextSiblings()
             ->atomIs('Assignation')
             ->outIs('RIGHT')
             ->functioncallIs('\array_flip')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs(self::CONTAINERS)
             ->samePropertyAs('fullcode', 'container')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Performances;

use Exakat\Analyzer\Analyzer;

class CacheVariableOutsideLoop extends Analyzer {
    public function analyze() {
        $MAX_LOOPING = self::MAX_LOOPING;

        // foreach($a as $b) { $c = }
        // qui n'est jamais modifiée
        $this->atomIs('Foreach')
             ->outIs('BLOCK')
             ->raw(<<<GREMLIN
where(
    __.sideEffect{ x = [:]; }
      .where(
        __.in("BLOCK").out("VALUE").coalesce( __.out("INDEX", "VALUE"), filter{ true; })
          .sideEffect{ x[it.get().value("code")] = 0;}
          .fold()
      )
      .emit().repeat( __.out({$this->linksDown})).times($MAX_LOOPING).hasLabel("Variable", "Variableobject", "Variablearray")
      .sideEffect{ 
        if (x[it.get().value("code")] == null) {
            x[it.get().value("code")] = 1;
        }
      }
      .has("isModified", true)
      .sideEffect{ x[it.get().value("code")] = 0;}
      .fold()
)
.sideEffect{ written = x.findAll{ a,b -> b == 0 }.keySet();}
.filter{ x.findAll{ a,b -> b > 0}.size() > 0}
GREMLIN
                )
                ->atomInsideNoDefinition(self::FUNCTIONS_CALLS)
                ->hasNoChildren('Void', array('ARGUMENT'))
                ->raw(<<<GREMLIN
      not(
        where(
          __.emit().repeat(__.out({$this->linksDown})).times($MAX_LOOPING).hasLabel("Variable", "Variableobject", "Variablearray")
            .filter{ it.get().value("code") in written;}
      ))
GREMLIN
                  );
        $this->prepareQuery();
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Performances;

use Exakat\Analyzer\Analyzer;

class JoinFile extends Analyzer {
    public function analyze() {
        $this->atomFunctionIs(array('\\join', '\\implode'))
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String')
             ->noDelimiterIs('')
             ->back('first')
             ->outWithRank('ARGUMENT', 1)
             ->functioncallIs('\\file')
             ->back('first');
        $this->prepareQuery();

        //$lines = file($file);
        //echo implode('',$lines);
        $this->atomFunctionIs('\\file')
             ->inIs('RIGHT')
             ->atomIs('Assignation')
             ->codeIs('=')
             ->outIs('LEFT')
             ->savePropertyAs('fullcode', 'variable')
             ->inIs('LEFT')
             ->nextSibling()
             ->atomInsideNoDefinition('Functioncall')
             ->functioncallIs(array('\\join', '\\implode'))
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String')
             ->noDelimiterIs('')
             ->inIs('ARGUMENT')
             ->outWithRank('ARGUMENT', 1)
             ->samePropertyAs('fullcode', 'variable')
             ->back('first');
        $this->prepareQuery();

    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Performances;

use Exakat\Analyzer\Analyzer;

class UseBlindVar extends Analyzer {
    public function analyze() {
        // foreach($a as $k => $b) { $c = $a[$k] + 2;}
        $this->atomIs('Foreach')

             ->outIs('SOURCE')
             ->savePropertyAs('fullcode', 'source')
             ->back('first')

             ->outIs('INDEX')
             ->savePropertyAs('fullcode', 'index')
             ->back('first')

             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Array')

             ->as('array')
             ->isNot('isModified', true)
             ->outIs('INDEX')
             ->samePropertyAs('fullcode', 'index')
             ->back('array')

             ->outIs('VARIABLE')
             ->samePropertyAs('fullcode', 'source')
             ->inIs('VARIABLE');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Performances;

use Exakat\Analyzer\Analyzer;

class timeVsstrtotime extends Analyzer {
    public function analyze() {
        $this->atomFunctionIs('\\strtotime')
             ->outWithRank('ARGUMENT',0)
             ->noDelimiterIs('now')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Performances;

use Exakat\Analyzer\Analyzer;

class SubstrFirst extends Analyzer {
      private $substrFunctions = array('\substr', '\stristr', '\strstr', '\iconv_substr', '\mb_substr', '\basename', '\dirname',
                                        '\\chop', '\\trim', '\\rtrim', '\\ltrim', );
      private $replacingFunctions = array('\\strtolower', '\\strtoupper', '\\strtr', '\\htmlentities', '\\htmlspecialchars', '\\str_replace', '\\str_ireplace', '\\ucfirst', '\\ucwords',
                                    '\\iconv',
                                    '\\mb_string_convert', '\\mb_strtoupper', '\\mb_strtolower', '\\mb_ereg_replace_callback', '\\mb_ereg_replace', '\\mb_eregi_replace', '\\mb_strcut', '\\mb_strimwidth',
                                    '\\preg_replace', '\\preg_relace_callback', '\\preg_replace_calback_array',
                                    );

    public function analyze() {
        // substr(strtolower('a'), 1, 100);
        $this->atomFunctionIs($this->substrFunctions)
             ->outWithRank('ARGUMENT', 0)
             ->atomIsNot('Concatenation')
             ->atomInsideNoDefinition('Functioncall')
             ->fullnspathIs($this->replacingFunctions)
             ->back('first');
        $this->prepareQuery();

        // $a = strtolower('a'); substr($a, 1, 100);
        $this->atomFunctionIs($this->replacingFunctions)
             ->inIs('RIGHT')
             ->atomIs('Assignation')
             ->codeIs('=')
             ->as('results')
             ->outIs('LEFT')
             ->savePropertyAs('fullcode', 'tmp')
             ->inIs('LEFT')
             ->nextSibling()
             ->atomIsNot(array('Ifthen')) // possibly others
             ->atomInsideNoDefinition('Functioncall')
             ->functioncallIs($this->substrFunctions)
             ->outIs('ARGUMENT')
             ->samePropertyAs('fullcode', 'tmp')
             ->back('results');
        $this->prepareQuery();

        // substr('a'.$b, 0, 100);
        $this->atomFunctionIs($this->substrFunctions)
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('Concatenation')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Performances;

use Exakat\Analyzer\Analyzer;

class MemoizeMagicCall extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/CreateMagicProperty',
                    );
    }

    public function analyze() {
        // function foo() { $a = $this->a; $b = $this->a; } // $this->a is routed to __get();
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('BLOCK')
             ->initVariable('members', '[:]')
             ->filter(
                $this->side()
                     ->atomInsideNoDefinition('Member')
                     ->is('isRead', true)
                     ->filter(
                        $this->side()
                             ->inIs('DEFINITION')
                             ->atomIs('Magicmethod')
                             ->outIs('NAME')
                             ->codeIs('__get')
                     )
                     ->raw(<<<'GREMLIN'
sideEffect{ 
   m = it.get().value("fullcode");
   if (members[m] != null) {
     ++members[m]; 
   } else {
     members[m] = 1; 
   }
}
.fold()

GREMLIN
                )
             )
             ->atomInsideNoDefinition('Member')
             ->raw('filter {members[it.get().value("fullcode")] > 1;}')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Performances;

use Exakat\Analyzer\Analyzer;

class SimpleSwitch extends Analyzer {
    protected $phpVersion = '7.2+';

    public function analyze() {
        // switch($a) { case 1 + 1 : break; }
        $this->atomIs('Switch')
             ->outIs('CASES')
             ->outIs('EXPRESSION')
             ->atomIs('Case')
             ->outIs('CASE')
             ->not(
                $this->side()
                     ->atomIs(array('Integer', 'String', 'Nsname', 'Identifier', 'Staticconstant'))
                     ->hasNoOut('CONCAT')
             )
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Performances;

use Exakat\Analyzer\Analyzer;

class UseArraySlice extends Analyzer {
    public function analyze() {
        // while($cdg) { array_pop($c); }
        $this->atomIs(self::LOOPS_ALL)
             ->outIs('BLOCK')
             ->is('count', 1)
             ->outIs('EXPRESSION')
             ->functioncallIs(array('\\array_shift',
                                    '\\array_pop',
                                   ))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Vendors;

use Exakat\Analyzer\Common\UsesFramework;

class Symfony extends UsesFramework {
    public function analyze() {
        $detections = $this->loadIni('vendors/symfony.ini');

        $this->classes    = $detections->classes;
        $this->interfaces = $detections->interfaces;
        $this->traits     = $detections->traits;
        $this->namespaces = $detections->namespaces;

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Vendors;

use Exakat\Analyzer\Common\UsesFramework;

class Ez extends UsesFramework {
    public function analyze() {
        $detections = $this->loadIni('vendors/ez.ini');

        $this->classes    = $detections->classes;
        $this->interfaces = $detections->interfaces;
        $this->traits     = $detections->traits;
        $this->namespaces = $detections->namespaces;

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Vendors;

use Exakat\Analyzer\Common\UsesFramework;

class Joomla extends UsesFramework {
    public function analyze() {
        $detections = $this->loadIni('vendors/joomla.ini');

        $this->classes    = $detections->classes;
        $this->interfaces = $detections->interfaces;
        $this->traits     = $detections->traits;
        $this->namespaces = $detections->namespaces;

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Vendors;

use Exakat\Analyzer\Common\UsesFramework;

class Fuel extends UsesFramework {
    public function analyze() {
        $detections = $this->loadIni('vendors/fuel.ini');

        $this->classes    = $detections->classes;
        $this->interfaces = $detections->interfaces;
        $this->traits     = $detections->traits;
        $this->namespaces = $detections->namespaces;

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Vendors;

use Exakat\Analyzer\Common\UsesFramework;

class Concrete5 extends UsesFramework {
    public function analyze() {
        $detections = $this->loadIni('vendors/concrete5.ini');

        $this->classes    = $detections->classes;
        $this->interfaces = $detections->interfaces;
        $this->traits     = $detections->traits;
        $this->namespaces = $detections->namespaces;

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Vendors;

use Exakat\Analyzer\Common\UsesFramework;

class Drupal extends UsesFramework {
    public function analyze() {
        $detections = $this->loadIni('vendors/drupal.ini');

        $this->classes    = $detections->classes;
        $this->interfaces = $detections->interfaces;
        $this->traits     = $detections->traits;
        $this->namespaces = $detections->namespaces;

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Vendors;

use Exakat\Analyzer\Common\UsesFramework;

class Phalcon extends UsesFramework {
    public function analyze() {
        $detections = $this->loadIni('vendors/phalcon.ini');

        $this->classes    = $detections->classes;
        $this->interfaces = $detections->interfaces;
        $this->traits     = $detections->traits;
        $this->namespaces = $detections->namespaces;

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Vendors;

use Exakat\Analyzer\Common\UsesFramework;

class Typo3 extends UsesFramework {
    public function analyze() {
        $detections = $this->loadIni('vendors/typo3.ini');

        $this->classes    = $detections->classes;
        $this->interfaces = $detections->interfaces;
        $this->traits     = $detections->traits;
        $this->namespaces = $detections->namespaces;

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Vendors;

use Exakat\Analyzer\Common\UsesFramework;

class Yii extends UsesFramework {
    public function analyze() {
        $detections = $this->loadIni('vendors/yii.ini');

        $this->classes    = $detections->classes;
        $this->interfaces = $detections->interfaces;
        $this->traits     = $detections->traits;
        $this->namespaces = $detections->namespaces;

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Vendors;

use Exakat\Analyzer\Common\UsesFramework;

class Wordpress extends UsesFramework {
    public function analyze() {
        $detections = $this->loadIni('vendors/wordpress.ini');

        $this->classes    = $detections->classes;
        $this->interfaces = $detections->interfaces;
        $this->traits     = $detections->traits;
        $this->namespaces = $detections->namespaces;

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Vendors;

use Exakat\Analyzer\Common\UsesFramework;

class Codeigniter extends UsesFramework {
    public function analyze() {
        $detections = $this->loadIni('vendors/codeigniter.ini');

        $this->classes    = $detections->classes;
        $this->interfaces = $detections->interfaces;
        $this->traits     = $detections->traits;
        $this->namespaces = $detections->namespaces;

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Vendors;

use Exakat\Analyzer\Common\UsesFramework;

class Laravel extends UsesFramework {
    public function analyze() {
        $detections = $this->loadIni('vendors/laravel.ini');

        $this->classes    = $detections->classes;
        $this->interfaces = $detections->interfaces;
        $this->traits     = $detections->traits;
        $this->namespaces = $detections->namespaces;

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer;

use Exakat\Autoload\Autoloader;

class Rulesets implements RulesetsInterface {
    private $main   = null;
    private $ext    = null;
    private $extra  = null;
    private $dev    = null;

    private static $instanciated = array();

    public function __construct($path, Autoloader $ext, Autoloader $dev, array $extra_rulesets = array(), array $ignore_rulesets = array()) {
        $this->main   = new RulesetsMain($path);
        $this->ext    = new RulesetsExt($ext);
        $this->extra  = new RulesetsExtra($extra_rulesets);
        $this->dev    = new RulesetsDev($dev);
        $this->ignore = new RulesetsIgnore($ignore_rulesets);
    }

    public function __destruct() {
        $this->main   = null;
        $this->ext    = null;
        $this->extra  = null;
        $this->dev    = null;
        $this->ignore = null;
    }

    public function getRulesetsAnalyzers(array $theme = array()): array {
        $main     = $this->main   ->getRulesetsAnalyzers($theme);
        $extra    = $this->extra  ->getRulesetsAnalyzers($theme);
        $ext      = $this->ext    ->getRulesetsAnalyzers($theme);
        $dev      = $this->dev    ->getRulesetsAnalyzers($theme);
        $ignore   = $this->ignore ->getRulesetsAnalyzers($theme);

        return array_udiff(array_merge($main, $extra, $ext, $dev), $ignore, 'strcasecmp');
    }

    public function getRulesetForAnalyzer(string $analyzer = ''): array {
        $main = $this->main  ->getRulesetForAnalyzer($analyzer);
        $extra = $this->extra->getRulesetForAnalyzer($analyzer);
        $ext   = $this->ext  ->getRulesetForAnalyzer($analyzer);
        $dev   = $this->dev  ->getRulesetForAnalyzer($analyzer);

        return array_merge($main, $extra, $ext, $dev);
    }

    public function getRulesetsForAnalyzer(array $list = array()): array {
        $main  = $this->main ->getRulesetsForAnalyzer($list);
        $extra = $this->extra->getRulesetsForAnalyzer($list);
        $ext   = $this->ext  ->getRulesetsForAnalyzer($list);
        $dev   = $this->dev  ->getRulesetsForAnalyzer($list);

        return array_merge($main, $extra, $ext, $dev);
    }

    public function getSeverities(): array {
        $main  = $this->main ->getSeverities();
        $extra = $this->extra->getSeverities();
        $ext   = $this->ext  ->getSeverities();
        $dev   = $this->dev  ->getSeverities();

        return array_merge($main, $extra, $ext, $dev);
    }

    public function getTimesToFix(): array {
        $main  = $this->main ->getTimesToFix();
        $extra = $this->extra->getTimesToFix();
        $ext   = $this->ext  ->getTimesToFix();
        $dev   = $this->dev  ->getTimesToFix();

        return array_merge($main, $extra, $ext, $dev);
    }

    public function getFrequences(): array {
        $main = $this->main->getFrequences();

        return array_merge($main);
    }

    public function listAllAnalyzer(string $folder = ''): array {
        $main  = $this->main ->listAllAnalyzer($folder);
        $extra = $this->extra->listAllAnalyzer($folder);
        $ext   = $this->ext  ->listAllAnalyzer($folder);
        $dev   = $this->dev  ->listAllAnalyzer($folder);

        return array_merge($main, $extra, $ext, $dev);
    }

    public function listAllRulesets(array $ruleset = array()): array {
        $main  = $this->main ->listAllRulesets($ruleset);
        $extra = $this->extra->listAllRulesets($ruleset);
        $ext   = $this->ext  ->listAllRulesets($ruleset);
        $dev   = $this->dev  ->listAllRulesets($ruleset);

        return array_merge($main, $extra, $ext, $dev);
    }

    public function getClass(string $name): string {
        if ($class = $this->main->getClass($name)) {
            return $class;
        }

        if ($class = $this->extra->getClass($name)) {
            return $class;
        }

        if ($class = $this->ext->getClass($name)) {
            return $class;
        }

        if ($class = $this->dev->getClass($name)) {
            return $class;
        }

        return '';
    }

    public function getSuggestionRuleset(array $ruleset = array()): array {
        $main  = $this->main ->getSuggestionRuleset($ruleset);
        $extra = $this->extra->getSuggestionRuleset($ruleset);
        $ext   = $this->ext  ->getSuggestionRuleset($ruleset);
        $dev   = $this->dev  ->getSuggestionRuleset($ruleset);

        return array_merge($main, $extra, $ext, $dev);
    }

    public function getSuggestionClass(string $name): array {
        $main  = $this->main ->getSuggestionClass($name);
        $extra = $this->extra->getSuggestionClass($name);
        $ext   = $this->ext  ->getSuggestionClass($name);
        $dev   = $this->dev  ->getSuggestionClass($name);

        return array_merge($main, $extra, $ext, $dev);
    }

    public function getAnalyzerInExtension(string $name): array {
        $main  = $this->main ->getAnalyzerInExtension($name);
        $extra = $this->extra->getAnalyzerInExtension($name);
        $ext   = $this->ext  ->getAnalyzerInExtension($name);
        $dev   = $this->dev  ->getAnalyzerInExtension($name);

        return array_merge($main, $extra, $ext, $dev);
    }

    public static function resetCache(): void {
        self::$instanciated = array();
    }

    public function getInstance(string $name) {
        if ($analyzer = $this->getClass($name)) {
            if (!isset(self::$instanciated[$analyzer])) {
                self::$instanciated[$analyzer] = new $analyzer();
            }
            return self::$instanciated[$analyzer];
        } else {
            display("No such class as '$name'");
            return null;
        }
    }

}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Dump;


class CollectClassChildren extends AnalyzerHashHashResults {
    protected $analyzerName = 'Class Children';

    public function analyze() {
        // class a {} class b extends a;
        $this->atomIs('Class')
             ->raw('groupCount("m").by( __.out("DEFINITION").in("EXTENDS").hasLabel("Class").count() ).cap("m")');

        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Dump;


class CollectMethodCounts extends AnalyzerHashHashResults {
    protected $analyzerName = 'CIT method counts';

    public function analyze() {
        // class x {function foo() {} }
        $this->atomIs(self::CIT)
             ->raw('groupCount("m").by( __.out("METHOD", "MAGICMETHOD").count() ).cap("m")');

        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Dump;

use Exakat\Dump\Dump;

abstract class AnalyzerTable extends AnalyzerDump {
    protected $storageType = self::QUERY_TABLE;

    protected $dumpQueries = array();

    public function prepareQuery(): void {
        ++$this->queryId;

        $result = $this->rawQuery();

        if (count($result) === 0) {
            return ;
        }

        ++$this->queryCount;

        $c = $result->toArray();
        if (!is_array($c) || !isset($c[0])) {
            return ;
        }

        $this->processedCount += count($c);
        $this->rowCount       += count($c);

        $valuesSQL = array();
        foreach($c as $row) {
            $valuesSQL[] = "(NULL, '" . implode("', '", array_map(array('\\Sqlite3', 'escapeString'), $row)) . "') \n";
        }

        $chunks = array_chunk($valuesSQL, SQLITE_CHUNK_SIZE);
        foreach($chunks as $chunk) {
            $query = 'INSERT INTO ' . $this->analyzerTable . ' VALUES ' . implode(', ', $chunk);
            $this->dumpQueries[] = $query;
        }
    }

    public function execQuery(): int {
        assert($this->analyzerTable != 'no analyzer table name', 'No table name for ' . static::class);
        assert($this->analyzerSQLTable != 'no analyzer sql creation', 'No table name for ' . static::class);
        // table always created, may be empty
        array_unshift($this->dumpQueries, $this->analyzerSQLTable);
        array_unshift($this->dumpQueries, "DROP TABLE IF EXISTS {$this->analyzerTable}");

        if (count($this->dumpQueries) >= 3) {
            $this->prepareForDump($this->dumpQueries);
        }

        $this->dumpQueries = array();

        return 0;
    }

    public function getDump(): array {
        $dump      = Dump::factory($this->config->dump);

        $res = $dump->fetchTable($this->analyzerTable);
        return $res->toArray();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Dump;

use Exakat\Analyzer\Analyzer;

abstract class AnalyzerDump extends Analyzer {
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Dump;


class IndentationLevels extends AnalyzerHashAnalyzer {
    protected $analyzerName = 'Indentation Levels';

    public function analyze() {
        //function foo() { if (1) { /* level 2 */}}
        $this->atomIs(self::FUNCTIONS_ALL)
             ->processLevels();

        $results = $this->rawQuery();
        $counts = array_count_values($results->toArray());
        foreach($counts  as $key => $value) {
            $this->analyzerValues[] = array($this->shortAnalyzer, $key, $value);
        }
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Dump;

class NewOrder extends AnalyzerTable {
    protected $analyzerName = 'newOrder';

    protected $analyzerTable = 'newOrder';

    // Store inclusionss of files within each other
    protected $analyzerSQLTable = <<<'SQL'
CREATE TABLE newOrder (  id INTEGER PRIMARY KEY AUTOINCREMENT,
                         calling STRING,
                         called STRING,
                         CONSTRAINT "unique" UNIQUE (calling, called)  ON CONFLICT IGNORE
                        )
SQL;

    public function analyze() {
        $this ->atomIs('New', self::WITHOUT_CONSTANTS)
              ->outIs('NEW')
              ->inIs('DEFINITION')
              ->atomIs('Class')
              ->as('called')
              ->back('first')
              ->goToInstruction('Class')
              ->as('calling')
              ->select(array('calling' => 'fullnspath',
                             'called'  => 'fullnspath'));
        $this->prepareQuery();
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Dump;

use Exakat\Dump\Dump;
use Exakat\Reports\Helpers\Results;

abstract class AnalyzerHashAnalyzer extends AnalyzerDump {
    protected $storageType = self::QUERY_HASH_ANALYZER;

    protected $dumpQueries = array();

    protected $analyzerValues = array();

    public function prepareQuery(): void {
        $this->processedCount += count($this->analyzerValues);
        $this->rowCount       += count($this->analyzerValues);

        $valuesSQL = array();
        $chunk = 0;
        foreach($this->analyzerValues as $values) {
            $values = array_map(array('\\Sqlite3', 'escapeString'), $values);
            $valuesSQL[] = "('" . join("', '", $values) . "') \n";
        }

        $chunks = array_chunk($valuesSQL, SQLITE_CHUNK_SIZE);
        foreach($chunks as $chunk) {
            $query = 'INSERT INTO hashResults ("name", "key", "value") VALUES ' . implode(', ', $chunk);
            $this->dumpQueries[] = $query;
        }

        $this->prepareForDump($this->dumpQueries);
        $this->dumpQueries = array();
    }

    public function execQuery(): int {
        array_unshift($this->dumpQueries, "DELETE FROM hashAnalyzer WHERE analyzer = '{$this->analyzerName}'");

        if (count($this->dumpQueries) >= 3) {
            $this->prepareForDump($this->dumpQueries);
        }

        $this->dumpQueries = array();

        return 0;
    }

    public function getDump(): array {
        $dump      = Dump::factory($this->config->dump);

        $res = $dump->fetchHashResults($this->analyzerName);
        return $res->toArray();
    }

    public function getResults(Dump $dump): Results {
        return $dump->fetchHashResults($this->shortAnalyzer);
    }

}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Dump;


class ConstantOrder extends AnalyzerTable {
    protected $analyzerName = 'constantOrder';

    protected $analyzerTable = 'constantOrder';

    // Store inclusionss of files within each other
    protected $analyzerSQLTable = <<<'SQL'
CREATE TABLE constantOrder (  id INTEGER PRIMARY KEY AUTOINCREMENT,
                            built STRING,
                            built_fullcode STRING,
                            building STRING,
                            building_fullcode STRING,
                            CONSTRAINT "unique" UNIQUE (built, building)  ON CONFLICT IGNORE
                        )
SQL;

    public function analyze() {
        $this ->atomIs('Constant', self::WITHOUT_CONSTANTS)
              ->outIs('NAME')
              ->as('built')
              ->as('built_fullcode')
              ->back('first')
              ->outIs('VALUE')
              ->atomIsNot(array('Integer', 'String'))
              ->atomInside(array('Nsname', 'Identifier', 'Staticconstant'))
              ->hasNoIn(array('CLASS'))
              ->as('building')
              ->as('building_fullcode')
              ->select(array('built'             => 'fullnspath',
                             'built_fullcode'    => 'fullcode',
                             'building'          => 'fullnspath',
                             'building_fullcode' => 'fullcode',
                             ));
        $this->prepareQuery();
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Dump;


class CollectLocalVariableCounts extends AnalyzerHashHashResults {
    protected $analyzerName = 'Local Variable Counts';

    public function analyze() {
        // foo() {$t ; }
        $this->atomIs(self::FUNCTIONS_ALL)
             ->raw('groupCount("m").by(__.out("DEFINITION").hasLabel("Variabledefinition", "Staticdefinition").count()).cap("m")');

        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Dump;


class Typehintorder extends AnalyzerTable {
    protected $analyzerName = 'typehintOrder';

    protected $analyzerTable = 'typehintOrder';

    protected $analyzerSQLTable = <<<'SQL'
CREATE TABLE typehintOrder (  id INTEGER PRIMARY KEY AUTOINCREMENT,
                              host STRING,
                              argument STRING,
                              returned STRING
                        )
SQL;

    public function analyze() {
        $this ->atomIs(self::FUNCTIONS_ALL, self::WITHOUT_CONSTANTS)
              ->outIs('RETURNTYPE')
              ->as('returned')
              ->atomIsNot(array('Void', 'Scalartypehint'), self::WITHOUT_CONSTANTS)
              ->back('first')
              ->outIs('ARGUMENT')
              ->outIs('TYPEHINT')
              ->atomIsNot(array('Void', 'Scalartypehint'), self::WITHOUT_CONSTANTS)
              ->as('argument')
              ->select(array('first'    => 'fullnspath',
                             'argument' => 'fullnspath',
                             'returned' => 'fullnspath'));
        $this->prepareQuery();

        $this ->atomIs(self::FUNCTIONS_ALL, self::WITHOUT_CONSTANTS)
              ->outIs('RETURNTYPE')
              ->as('returned')
              ->atomIsNot(array('Void', 'Scalartypehint'), self::WITHOUT_CONSTANTS)
              ->back('first')
              ->outIs('ARGUMENT')
              ->atomIs('Void')
              ->as('argument')
              ->select(array('first'    => 'fullnspath',
                             'argument' => '\\\\void',
                             'returned' => 'fullnspath'));
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Dump;


class Inclusions extends AnalyzerTable {
    protected $analyzerName = 'inclusions';

    protected $analyzerTable = 'inclusions';

    protected $analyzerSQLTable = <<<'SQL'
CREATE TABLE inclusions (  id INTEGER PRIMARY KEY AUTOINCREMENT,
                           including STRING,
                           included STRING
                        )
SQL;

    public function analyze() {
        $this ->atomIs('Include', self::WITHOUT_CONSTANTS)
              ->outIs('ARGUMENT')
              ->has('noDelimiter')
              ->as('included')
              ->goToInstruction('File')
              ->as('including')
              ->select(array('included'  => 'noDelimiter',
                             'including' => 'fullcode'));

        $res = $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Dump;

class CollectForeachFavorite extends AnalyzerArrayHashResults {
    protected $analyzerName = 'Foreach Names';

    public function analyze() {
        // Foreach, values only
        $this->atomIs('Foreach')
             ->outIs('VALUE')
             ->atomIsNot('Keyvalue')
             ->values('fullcode');
        $valuesOnly = $this->rawQuery();

        // Foreach, index only
        $this->atomIs('Foreach')
             ->outIs('VALUE')
             ->atomIs('Keyvalue')
             ->outIs('INDEX')
             ->values('fullcode');
        $values = $this->rawQuery();

        $this->atomIs('Foreach')
             ->outIs('VALUE')
             ->atomIs('Keyvalue')
             ->values('fullcode');
        $keys = $this->rawQuery();

        $statsKeys = array_count_values($keys->toArray());
        $statsKeys['None'] = count($valuesOnly);

        $statsValues = array_count_values(array_merge($values->toArray(), $valuesOnly->toArray()));

        $valuesSQL = array();
        foreach($statsValues as $name => $count) {
            $valuesSQL[] = array($name, $count);
        }

        if (empty($valuesSQL)) {
            return;
        }

        $this->analyzerValues = $valuesSQL;

        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Dump;


class CollectClassInterfaceCounts extends AnalyzerHashHashResults {
    protected $analyzerName = 'ClassInterfaces';

    public function analyze() {
        //class x implements i,j,k {}
        $this->atomIs(self::CLASSES_ALL)
             ->raw('groupCount("m").by( __.out("IMPLEMENTS").count() ).cap("m")');

        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Dump;

class CollectMbstringEncodings extends AnalyzerArrayHashResults {
    protected $analyzerName = 'Mbstring Encodings';

    public function analyze() {
        // mb_stotolower('PHP', 'utf-8');
        $encodings = $this->loadIni('mbstring_encodings.ini', 'encodings');

        $this->atomIs(array('String', 'Concatenation', 'Heredoc'))
             ->noDelimiterIs($encodings, self::CASE_INSENSITIVE)
             ->values('noDelimiter');
        $encodings = $this->rawQuery()->toArray();

        $stats = array_count_values($encodings);

        $valuesSQL = array();
        foreach($stats as $name => $count) {
            $valuesSQL[] = array($name, $count);
        }

        if (empty($valuesSQL)) {
            return;
        }

        $this->analyzerValues = $valuesSQL;

        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Dump;


class CollectClassConstantCounts extends AnalyzerHashHashResults {
    protected $analyzerName = 'CIT class constant counts';

    public function analyze() {
        // foo() {const A=1, B=2; }
        $this->atomIs(array('Class', 'Classanonymous', 'Interface'))
             ->raw('groupCount("m").by(__.out("CONST").out("CONST").count()).cap("m")');

        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Dump;


class CollectLiterals extends AnalyzerTable {
    protected $analyzerName = 'Local Variable Counts';

    public function analyze() {
        $types = array('Integer', 'Float', 'String', 'Heredoc', 'Arrayliteral');

        foreach($types as $type) {
            $b = microtime(\TIME_AS_NUMBER);
            $this->analyzerTable = "literal$type";
            $this->analyzerSQLTable = <<<SQL
CREATE TABLE literal{$type} (  
                              id INTEGER PRIMARY KEY AUTOINCREMENT,
                              name STRING,
                              file STRING,
                              line INTEGER
                            )
SQL;

            $this->atomIs($type)
                 ->is('constant', true)
                 ->raw(<<<'GREMLIN'
sideEffect{ name = it.get().value("fullcode");
            line = it.get().value('line');
          }
GREMLIN
)
                 ->goToFile()
                 ->savePropertyAs('fullcode', 'file')
                 ->raw(<<<'GREMLIN'
map{ 
  x = ['name': name,
       'file': file,
       'line': line
       ];
}
GREMLIN
);
            $res = $this->prepareQuery();
            $this->execQuery();
        }
/*
       $otherTypes = array('Null', 'Boolean', 'Closure');
       foreach($otherTypes as $type) {
            $query = <<<GREMLIN
g.V().hasLabel("$type").count();
GREMLIN;
            $total = $this->gremlin->query($query)->toInt();

            $query = "INSERT INTO resultsCounts (analyzer, count) VALUES (\"$type\", $total)";
            $this->sqlite->query($query);
            display( "Other $type : $total\n");
       }
*/

            $this->analyzerTable = 'stringEncodings';
            $this->analyzerSQLTable = <<<'SQL'
CREATE TABLE stringEncodings (  id INTEGER PRIMARY KEY AUTOINCREMENT,
                                encoding STRING,
                                block STRING,
                                CONSTRAINT "encoding" UNIQUE (encoding, block)
                              )
SQL;

//, 'Concatenation', 'Heredoc' too
        $this->atomIs('String')
             ->raw(<<<'GREMLIN'
map{ 
    x = ['encoding':it.get().values('encoding')[0]];
    if (it.get().values('block').size() != 0) {
        x['block'] = it.get().values('block')[0];
    } else {
        x['block'] = '';
    }
    x;
}
.unique()

GREMLIN
);
        $res = $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Dump;


class EnvironnementVariables extends AnalyzerHashHashResults {
    protected $analyzerName = 'Environment Variables via Function';

    public function analyze() {
        //$_ENV['name']
        $this->atomIs('Phpvariable')
              ->codeIs('$_ENV', self::TRANSLATE, self::CASE_SENSITIVE)
              ->inIs('VARIABLE')
              ->outIs('INDEX')
              ->has('noDelimiter')
              ->raw(<<<'GREMLIN'
groupCount("m").by("noDelimiter").cap("m")
GREMLIN
);
        $this->analyzerName = 'Environment Variables';
        $this->prepareQuery();

        //$_ENV['name']
        $this->atomFunctionIs(array('\\putenv', '\\getenv'))
              ->outWithRank('ARGUMENT', 0)
              ->has('noDelimiter')
              ->raw(<<<'GREMLIN'
groupCount("m").by("noDelimiter").cap("m")
GREMLIN
);
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Dump;

use Exakat\Dump\Dump;

abstract class AnalyzerHashResults extends AnalyzerDump {
    protected $storageType = self::QUERY_ARRAYS;

    protected $dumpQueries = array();

    public function prepareQuery(): void {
        ++$this->queryId;

        $result = $this->rawQuery();

        if (count($result) === 0) {
            return ;
        }

        $this->processedCount += count($result->toArray());
        $this->rowCount       += count($result->toArray());

        $valuesSQL = array();
        $chunk = 0;
        foreach($result->toArray() as $row) {
            list($name, $count) = array_values($row);
            $valuesSQL[] = "('{$this->analyzerName}', '$name', '$count') \n";
        }

        $chunks = array_chunk($valuesSQL, SQLITE_CHUNK_SIZE);
        foreach($chunks as $chunk) {
            $query = 'INSERT INTO hashResults ("name", "key", "value") VALUES ' . implode(', ', $chunk);
            $this->dumpQueries[] = $query;
        }
    }

    public function execQuery(): int {
        array_unshift($this->dumpQueries, "DELETE FROM hashResults WHERE name = '{$this->analyzerName}'");

        if (count($this->dumpQueries) >= 1) {
            $this->prepareForDump($this->dumpQueries);
        }

        $this->dumpQueries = array();

        return 0;
    }

    public function getDump(): array {
        $dump      = Dump::factory($this->config->dump);

        $res = $dump->fetchHashResults($this->analyzerName);
        return $res->toArray();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Dump;


class CollectClassDepth extends AnalyzerHashHashResults {
    protected $analyzerName = 'Class Depth';

    public function analyze() {
        // class a {} class b extends a;
        $this->atomIs(self::CLASSES_ALL)
             ->raw('groupCount("m").by(__.repeat( __.as("x").out("EXTENDS").in("DEFINITION") ).emit( ).times(' . self::MAX_LOOPING . ').count()).cap("m")');

        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Dump;


class CollectParameterCounts extends AnalyzerHashHashResults {
    protected $analyzerName = 'ParameterCounts';

    public function analyze() {
        // foo($a, $b, ...$c) : 3 parameter
        $this->atomIs(self::FUNCTIONS_ALL)
             ->raw('groupCount("m").by("count").cap("m")');

        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Dump;

use Exakat\Dump\Dump;

abstract class AnalyzerHashHashResults extends AnalyzerDump {
    protected $storageType = self::QUERY_HASH;

    protected $dumpQueries = array();

    public function prepareQuery(): void {
        ++$this->queryId;

        $result = $this->rawQuery();

        ++$this->queryCount;

        $c = $result->toArray();
        if (!is_array($c) || !isset($c[0])) {
            return ;
        }
        $c = $c[0];
        if (!is_array($c) || count($c) === 0) {
            return ;
        }

        $this->processedCount += count($c);
        $this->rowCount       += count($c);

        $valuesSQL = array();
        foreach($c as $name => $count) {
            $valuesSQL[] = "('{$this->analyzerName}', '$name', '$count') \n";
        }

        $dumpQueries = array("DELETE FROM hashResults WHERE name = '{$this->analyzerName}'");

        $chunks = array_chunk($valuesSQL, SQLITE_CHUNK_SIZE);
        foreach($chunks as $chunk) {
            $query = 'INSERT INTO hashResults ("name", "key", "value") VALUES ' . implode(', ', $chunk);
            $dumpQueries[] = $query;
        }

        if (count($dumpQueries) >= 2) {
            $this->prepareForDump($dumpQueries);
        }
    }

    public function execQuery(): int {
        array_unshift($this->dumpQueries, "DELETE FROM hashResults WHERE name = '{$this->analyzerName}'");

        if (count($this->dumpQueries) >= 2) {
            $this->prepareForDump($this->dumpQueries);
        }

        $this->dumpQueries = array();

        return 0;
    }

    public function getDump(): array {
        $dump      = Dump::factory($this->config->dump);

        $res = $dump->fetchHashResults($this->analyzerName);
        return $res->toArray();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Dump;


class CyclomaticComplexity extends AnalyzerHashResults {
    protected $analyzerName = 'CyclomaticComplexity';

    public function analyze() {
        $MAX_LOOPING = self::MAX_LOOPING;
        $this->atomIs(self::FUNCTIONS_ALL, self::WITHOUT_CONSTANTS)
              ->outIs('NAME')
              ->as('name')
              ->back('first')
              ->outIs('BLOCK')
              ->raw(<<<GREMLIN
project("cc").by(
    __.emit().repeat( __.out($this->linksDown)).times($MAX_LOOPING).coalesce(
        __.hasLabel(
            "Ifthen", "Case", "Default", "Foreach", "For" ,"Dowhile", "While", "Continue", 
            "Catch", "Finally", "Throw", 
            "Ternary", "Coalesce"
            ),
    __.hasLabel("Ifthen").out("THEN", "ELSE"),
    __.hasLabel("Return").sideEffect{ ranked = it.get().value("rank");}.in("EXPRESSION").coalesce( __.filter{ it.get().value("count") != ranked + 1;},
                                                                                                   __.not(where(__.in("BLOCK").hasLabel("Function"))))
    ).count()
).select("first","cc").by("fullnspath").by()
GREMLIN
);

        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Dump;


class CollectPropertyCounts extends AnalyzerHashHashResults {
    protected $analyzerName = 'CIT property counts';

    public function analyze() {
        // foo() {$t ; }
        $this->atomIs(self::CIT)
             ->raw('groupCount("m").by(__.out("PPP").out("PPP").count()).cap("m")');

        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Dump;


class DereferencingLevels extends AnalyzerHashAnalyzer {
    protected $analyzerName = 'Dereferencing Levels';

    public function analyze() {
        //$a->b->c()::d()->e::F (only -> and ::)
        $this->atomIs(array('Member', 'Staticproperty', 'Methodcall', 'Staticmethodcall', 'Staticconstant'))
             ->not(
                $this->side()
                     ->inIsIE(array('RIGHT', 'CODE'))
                     ->hasIn(array('VARIABLE', 'OBJECT'))
             )
             ->processDereferencing(0)
             ->raw('map{levels}');

        $results = $this->rawQuery();
        $counts = array_count_values($results->toArray());
        foreach($counts  as $key => $value) {
            $this->analyzerValues[] = array($this->shortAnalyzer, $key, $value);
        }
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Dump;

use Exakat\Dump\Dump;

abstract class AnalyzerResults extends AnalyzerDump {
    protected $storageType = self::QUERY_RESULTS;

    protected $dumpQueries = array();

    public function prepareQuery(): void {
        ++$this->queryId;

        $result = $this->rawQuery();

        ++$this->queryCount;

        $c = $result->toArray();
        if (!is_array($c) || !isset($c[0])) {
            return ;
        }

        $this->processedCount += count($c);
        $this->rowCount       += count($c);

        $valuesSQL = array();
        foreach($c as $row) {
            $row = array_map(array('\\Sqlite3', 'escapeString'), $row);
            $row['analyzer']  = $this->shortAnalyzer;
            $valuesSQL[] = "(NULL, '" . implode("', '", $row) . "', 0) \n";
        }

        $chunks = array_chunk($valuesSQL, SQLITE_CHUNK_SIZE);
        foreach($chunks as $chunk) {
            $query = 'INSERT INTO results VALUES ' . implode(', ', $chunk);
            $this->dumpQueries[] = $query;
        }

        $this->dumpQueries[] = "INSERT INTO resultsCounts (\"id\", \"analyzer\", \"count\") VALUES (NULL, '{$this->shortAnalyzer}', " . (count($valuesSQL)) . ')';

    }

    public function execQuery(): int {
        array_unshift($this->dumpQueries, "DELETE FROM results WHERE analyzer = '{$this->shortAnalyzer}'");

        if (count($this->dumpQueries) >= 2) {
            $this->prepareForDump($this->dumpQueries);
        }

        $this->dumpQueries = array();

        return 0;
    }

    public function getDump(): array {
        $dump      = Dump::factory($this->config->dump);

        $res = $dump->fetchAnalysers(array($this->shortAnalyzer));
        return $res->toArray();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Dump;

class ParameterArgumentsLinks extends AnalyzerArrayHashResults {
    protected $analyzerName = 'Parameter Arguments';

    public function analyze() {
        $this->analyzerValues = array();

        // Total parameter usage
        $this->atomIs('Parameter')
             ->savePropertyAs('rank', 'ranked')
             ->back('first')

             ->inIs('ARGUMENT')
             ->outIs('DEFINITION')
             ->outIsIE('METHOD')
             ->outWithRank('ARGUMENT', 'ranked')
             ->count();
        $total = $this->rawQuery()->toInt();
        $this->analyzerValues[] = array('total', $total);

        // identical parameter usage
        $this->atomIs('Parameter')
             ->savePropertyAs('rank', 'ranked')
             ->outIs('NAME')
             ->savePropertyAs('code', 'name')
             ->back('first')

             ->inIs('ARGUMENT')
             ->outIs('DEFINITION')
             ->outIsIE('METHOD')
             ->outWithRank('ARGUMENT', 'ranked')
             ->atomIs('Variable')
             ->samePropertyAs('code', 'name')
             ->count();
        $identical = $this->rawQuery()->toInt();
        $this->analyzerValues[] = array('identical', $identical);

        // different variable parameter usage
        $this->atomIs('Parameter')
             ->savePropertyAs('rank', 'ranked')
             ->outIs('NAME')
             ->savePropertyAs('code', 'name')
             ->back('first')

             ->inIs('ARGUMENT')
             ->outIs('DEFINITION')
             ->outIsIE('METHOD')
             ->outWithRank('ARGUMENT', 'ranked')
             ->atomIs('Variable')
             ->notSamePropertyAs('code', 'name')
             ->count();
        $different = $this->rawQuery()->toInt();
        $this->analyzerValues[] = array('different', $different);

        // expression parameter usage
        $this->atomIs('Parameter')
             ->savePropertyAs('rank', 'ranked')
             ->outIs('NAME')
             ->back('first')

             ->inIs('ARGUMENT')
             ->outIs('DEFINITION')
             ->outIsIE('METHOD')
             ->outWithRank('ARGUMENT', 'ranked')
             ->atomIsNot(array('Variable', 'Array', 'Member', 'Staticproperty'))
             ->count();
        $build = $this->rawQuery()->toInt();
        $this->analyzerValues[] = array('expression', $build);

        // constant parameter usage
        $this->atomIs('Parameter')
             ->savePropertyAs('rank', 'ranked')
             ->outIs('NAME')
             ->back('first')

             ->inIs('ARGUMENT')
             ->outIs('DEFINITION')
             ->outIsIE('METHOD')
             ->outWithRank('ARGUMENT', 'ranked')
             ->is('constant', true)
             ->count();
        $constant = $this->rawQuery()->toInt();
        $this->analyzerValues[] = array('constant', $constant);

        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Dump;


class TypehintingStats extends AnalyzerArrayHashResults {
     protected $analyzerName   = 'Typehinting stats';

    public function analyze() {
        //total parameters
        $this->atomIs('Parameter')
             ->count();
        $totalArguments = $this->rawQuery()->toInt();

        //total fonctions, closures, etc.
        $this->atomIs(self::FUNCTIONS_ALL)
             ->not(
                $this->side()
                     ->atomIs('Magicmethod')
                     ->outIs('NAME')
                     ->codeIs(array('__destruct', '__construct', '__unset', '__wakeup'), self::TRANSLATE, self::CASE_INSENSITIVE)
             )
             ->count();
        $totalFunctions = $this->rawQuery()->toInt();

        //typehinted
        $this->atomIs('Parameter')
             ->filter(
                $this->side()
                     ->outIs('TYPEHINT')
                     ->atomIsNot('Void')
             )
             ->count();
        $withTypehint = $this->rawQuery()->toInt();

        //typehinted
        $this->atomIs(self::FUNCTIONS_ALL)
             ->filter(
                $this->side()
                     ->outIs('RETURNTYPE')
                     ->atomIsNot('Void')
             )
             ->count();
        $withReturnTypehint = $this->rawQuery()->toInt();

        //nullable typehinted
        $this->atomIs('Parameter')
             ->filter(
                $this->side()
                     ->outIs('TYPEHINT')
                     ->atomIsNot('Void')
             )
             ->isNullable()
             ->count();
        $argNullable = $this->rawQuery()->toInt();

        //nullable typehinted
        $this->atomIs(self::FUNCTIONS_ALL)
             ->isNullable()
             ->filter(
                $this->side()
                     ->outIs('RETURNTYPE')
                     ->atomIsNot('Void')
             )
             ->count();
        $returnNullable = $this->rawQuery()->toInt();

        //scalar typehint used
        $this->atomIs('Scalartypehint')
             ->count();
        $scalartype = $this->rawQuery()->toInt();

        //typehinted
        $this->atomIs('Scalartypehint')
             ->groupCount('fullnspath')
             ->raw('cap("m")');
        $scalartypes1 = $this->rawQuery()->toArray();

        //typehinted 2
        $this->atomIs(array('Identifier', 'Nsname'))
             ->fullnspathIs(array('\\resource', '\\mixed', '\\numeric', '\\false'))
             ->groupCount('fullnspath')
             ->raw('cap("m")');
        $scalartypes2 = $this->rawQuery()->toArray();

        $scalartypes = ($scalartypes1[0] ?? array()) + ($scalartypes2[0] ?? array());

        //typehinted object
        $this->atomIs('Parameter')
             ->outIs('TYPEHINT')
             ->atomIs(array('Identifier', 'Nsname'))
             ->groupCount('fullnspath')
             ->raw('cap("m")');
        $objecttypes1 = $this->rawQuery()->toArray();

        //typehinted object2
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('RETURNTYPE')
             ->atomIs(array('Identifier', 'Nsname'))
             ->groupCount('fullnspath')
             ->raw('cap("m")');
        $objecttypes2 = $this->rawQuery()->toArray();

        $objecttypes = ($objecttypes1[0] ?? array()) + ($objecttypes1[0] ?? array());

        $return = compact('totalArguments', 'totalFunctions', 'withTypehint','withReturnTypehint', 'scalartype', 'returnNullable', 'argNullable');
        $return = $return + $scalartypes + $objecttypes;

        $atoms = array('all'            => self::FUNCTIONS_ALL,
                       'function'       => 'Function',
                       'method'         => array('Method', 'Magicmethod'),
                       'closure'        => 'Closure',
                       'arrowfunction'  => 'Arrowfunction',
                       );

        foreach($atoms as $name => $atom) {
            //total
            $this->atomIs($atom)
                 ->count();
            $return["{$name}Total"] = $this->rawQuery()->toInt();

            //parameter typehinted
            $this->atomIs($atom)
                 ->filter(
                    $this->side()
                         ->outIs('ARGUMENT')
                         ->outIs('TYPEHINT')
                         ->atomIsNot('Void')
                 )
                 ->count();
            $return["{$name}WithTypehint"] = $this->rawQuery()->toInt();

            //return typehinted
            $this->atomIs($atom)
                 ->filter(
                    $this->side()
                         ->outIs('RETURNTYPE')
                         ->atomIsNot('Void')
                 )
                 ->count();
            $return["{$name}WithReturnTypehint"] = $this->rawQuery()->toInt();
        }

        array_walk($return, function (&$value, $key) { $value = array($key, $value); });
        $return = array_values($return);
        $this->analyzerValues = $return;

        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Dump;

use Exakat\Dump\Dump;

abstract class AnalyzerArrayHashResults extends AnalyzerDump {
    protected $storageType = self::QUERY_PHP_ARRAYS;

    protected $analyzerValues = array();

    protected $dumpQueries = array();

    public function prepareQuery(): void {
        ++$this->queryId;

        $this->processedCount += count($this->analyzerValues);
        $this->rowCount       += count($this->analyzerValues);

        $valuesSQL = array();
        foreach($this->analyzerValues as list($key, $value)) {
            if (empty($key)) { continue; }
            $valuesSQL[] = "('{$this->analyzerName}', '" . \Sqlite3::escapeString((string) $key) . "', '" . \Sqlite3::escapeString((string) $value) . "') \n";
        }

        $chunks = array_chunk($valuesSQL, SQLITE_CHUNK_SIZE);
        foreach($chunks as $chunk) {
            $query = 'INSERT INTO hashResults ("name", "key", "value") VALUES ' . implode(', ', $chunk);
            $this->dumpQueries[] = $query;
        }

        if (count($this->dumpQueries) >= 2) {
            $this->prepareForDump($this->dumpQueries);
        }
    }

    public function execQuery(): int {
        array_unshift($this->dumpQueries, "DELETE FROM hashResults WHERE name = '{$this->analyzerName}'");

        if (count($this->dumpQueries) >= 2) {
            $this->prepareForDump($this->dumpQueries);
        }

        $this->dumpQueries = array();

        return 0;
    }

    public function getDump(): array {
        $dump      = Dump::factory($this->config->dump);

        $res = $dump->fetchHashResults($this->analyzerName);
        return $res->toArray();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer;

use Exakat\Autoload\Autoloader;

class RulesetsExt implements RulesetsInterface {
    private $ext           = null;
    private $all           = array();
    private $rulesets      = array();

    public function __construct(Autoloader $ext) {
        $this->ext = $ext;

        foreach($ext->getAllAnalyzers() as $name => $list) {
            if (!isset($list['All'])) {
                continue; // ignore
            }
            $this->all[$name] = $list['All'];

            $this->rulesets[$name] = new RulesetsExtra($list);
        }
    }

    public function getRulesetsAnalyzers(array $ruleset = array()): array {
        if (empty($this->rulesets)) {
            return array();
        }

        $return = array(array());
        foreach($this->rulesets as $t) {
            $return[] = $t->getRulesetsAnalyzers($ruleset);
        }

        return array_merge(...$return);
    }

    public function getRulesetForAnalyzer(string $analyzer = ''): array {
        if (empty($this->rulesets)) {
            return array();
        }

        $return = array(array());
        foreach($this->rulesets as $t) {
            $return[] = $t->getRulesetForAnalyzer($analyzer);
        }

        return array_merge(...$return);
    }

    public function getRulesetsForAnalyzer(array $analyzer = array()): array {
        $return = array(array());
        foreach($this->rulesets as $extension) {
            $return[] = $extension->getRulesetsForAnalyzer($analyzer);
        }

        return array_merge(...$return);
    }

    public function getSeverities(): array {
        $return = array(array());

        foreach($this->all as $name => $list) {
            $severities = array();

            foreach($list as $analyse) {
                $ini = $this->ext->loadData("human/en/$analyse.ini");
                $ini = parse_ini_string($ini);

                if (isset($ini['severity'])) {
                    $severities[$analyse] = constant(Analyzer::class . '::' . $ini['severity']) ?? Analyzer::S_NONE;
                } else {
                    $severities[$analyse] = Analyzer::S_NONE;
                }
            }
            $return[] = $severities;
        }

        return array_merge(...$return);
    }

    public function getTimesToFix(): array {
        $return = array(array());

        foreach($this->all as $name => $list) {
            $timesToFix = array();

            foreach($list as $analyse) {
                $ini = $this->ext->loadData("human/en/$analyse.ini");
                $ini = parse_ini_string($ini);

                if (isset($ini['timetofix'])) {
                    $timesToFix[$analyse] = constant(Analyzer::class . '::' . $ini['timetofix']) ?? Analyzer::T_NONE;
                } else {
                    $timesToFix[$analyse] = Analyzer::T_NONE;
                }
            }
            $return[] = $timesToFix;
        }

        return array_merge(...$return);
    }

    public function getFrequences(): array {
        $return = array(array());
        foreach($this->rulesets as $extension) {
            $return[] = $extension->getFrequences();
        }

        return array_merge(...$return);
    }

    public function listAllAnalyzer(string $folder = ''): array {
        if (empty($this->all)) {
            return array();
        }

        $return = array_merge(...array_values($this->all));
        if (empty($folder)) {
            return $return;
        }

        return preg_grep("#$folder/#", $return);
    }

    public function listAllRulesets(array $ruleset = array()): array {
        if (empty($this->rulesets)) {
            return array();
        }

        $return = array(array());

        foreach($this->rulesets as $ruleset) {
            $return[] = $ruleset->listAllRulesets();
        }

        return array_merge(...$return);
    }

    public function getClass(string $name): string {
        // accepted names :
        // PHP full name : Analyzer\\Type\\Class
        // PHP short name : Type\\Class
        // Human short name : Type/Class
        // Human shortcut : Class (must be unique among the classes)

        if (strpos($name, '\\') !== false) {
            if (substr($name, 0, 16) === 'Exakat\\Analyzer\\') {
                $class = $name;
            } else {
                $class = "Exakat\\Analyzer\\$name";
            }
        } elseif (strpos($name, '/') !== false) {
            $class = 'Exakat\\Analyzer\\' . str_replace('/', '\\', $name);
        } elseif (strpos($name, '/') === false) {
            $found = $this->getSuggestionClass($name);

            if (empty($found)) {
                return ''; // no class found
            }

            if (count($found) > 1) {
                return '';
            }

            $class = $found[0];
        } else {
            $class = $name;
        }

        if ($class === null) {
            return '';
        }

        if (!class_exists($class)) {
            return '';
        }

        $actualClassName = new \ReflectionClass($class);
        if ($class === $actualClassName->getName()) {
            return $class;
        } else {
            // problems with the case
            return '';
        }
    }

    public function getSuggestionRuleset(array $rulesets = array()): array {
        $list = $this->listAllRulesets();

        return array_filter($list, function ($c) use ($rulesets) {
            foreach($rulesets as $r) {
                $l = levenshtein($c, $r);
                if ($l < 8) {
                    return true;
                }
            }
            return false;
        });
    }

    public function getSuggestionClass(string $name): array {
        if (empty($this->all)) {
            return array();
        }

        return array_filter($this->listAllAnalyzer(), function ($c) use ($name) {
            $l = levenshtein($c, $name);

            return $l < 8;
        });
    }

    public function getAnalyzerInExtension(string $name): array {
        $return = array(array());

        foreach($this->all as $ext) {
            $return[] = preg_grep("#/$name\$#", $ext);
        }

        return array_merge(...$return);
    }

}
?>
   Bud1  @      @     
     0                                       !       m p l e t e                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             C o m p l e t elsvCblob  ubplist00		EFGH_useRelativeDates_showIconPreview_calculateAllSizesWcolumnsXtextSizeZsortColumnXiconSize_viewOptionsVersion		 $).38=A		WvisibleUwidthYascendingZidentifier		Tname#Xubiquity	\dateModified	![dateCreated%&	Tsizea	*+		Tkinds		/0	Ulabeld	45	WversionK	9:	Xcomments,	>^dateLastOpenedDYdateAdded#@(      Tname#@0          , > R Z c n w                       
!&()*38:;<EKMNOX`bcdmvyz{             I                     P h pvSrnlong     bplist00	
			]ShowStatusBar_SidebarWidthTenElevenOrLater[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar[ShowPathbar	#@k`     		_{{-1733, 363}, {770, 436}}	'FR^u                                C u s t o mvSrnlong       D u m pbwspblob   bplist00		                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          @                                              @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  T y p ebwspblob   bplist00	
			]ShowStatusBar_SidebarWidthTenElevenOrLater[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar[ShowPathbar	#@k`     		_{{-1717, 25}, {992, 629}}	'FR^u                                T y p elsvCblob  bplist00	
HIJKMXiconSize_showIconPreview_calculateAllSizesWcolumns_scrollPositionYXtextSize_scrollPositionXZsortColumn_useRelativeDates_viewOptionsVersion#@0      	"&+05:?DWvisibleUwidthYascendingZidentifier	l	Tname#Xubiquity !	\dateModified %[dateCreated)*	aTsize./		sTkind34	dUlabel89	KWversion=>	,XcommentsBC^dateLastOpened GYdateAdded#@q     #@(      #        \dateModified	    & 8 L T f o                
 !"$1:;<HQRSUZcdegluvwy             N                  T y p elsvpblob  bplist00	
HIJKDXiconSize_showIconPreview_calculateAllSizesWcolumns_scrollPositionYXtextSize_scrollPositionXZsortColumn_useRelativeDates_viewOptionsVersion#@0      	!&+/49>CXcomments^dateLastOpened\dateModified[dateCreatedTsizeUlabelTkindWversionTnameUindexYascendingUwidthWvisible	,"$')	,)02a	57	d:<	s	?A	KDE l		#@q     #@(      #        \dateModified	   & 8 L T f o            )/9?GIJMNWYZ\]fhikluwxy             M                  T y p evSrnlong      	 T y p e h i n t sbwspblob   bplist00		]ShowStatusBar[ShowPathbar[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar			_{{-1717, 25}, {992, 629}}	%1=I`myz{|}~                               	 T y p e h i n t slg1Scomp           	 T y p e h i n t slsvCblob  bplist00	
IJ
LXiconSize_showIconPreview_calculateAllSizesWcolumnsXtextSizeZsortColumn_useRelativeDates_viewOptionsVersion#@0      	#',16;@E

WvisibleYascendingUwidthZidentifier		{TnameWvisibleUwidthYascending#Xubiquity
!"	\dateModified!&[dateCreated
*+	aTsize

/0		sTkind
45	dUlabel
9:	KWversion
>?	,XcommentsCD^dateLastOpened!HYdateAdded#@(      Tname	    " 4 H P Y d w                     !*+,8ABCEJSTUW\efgioxyz|             M                 	 T y p e h i n t slsvpblob  ^bplist00	
FG
>XiconSize_showIconPreview_calculateAllSizesWcolumnsXtextSizeZsortColumn_useRelativeDates_viewOptionsVersion#@0      	$).38=BXcomments^dateLastOpened[dateCreatedTsizeUlabelTkindWversionTname\dateModified
UindexYascendingUwidthWvisible	, "%'*,
a	/
1	d4
6
	s	9
;	K>
@
 	{	C'
	#@(      Tname	   " 4 H P Y d w              !"%&/1245>@ACDMOPRS\^_abkmnpqz|}             I                 	 T y p e h i n t smoDDblob   U`dNA   	 T y p e h i n t smodDblob   U`dNA   	 T y p e h i n t sph1Scomp           	 T y p e h i n t svSrnlong                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	    A r r a y sbwspblob   bplist00		]ShowStatusBar[ShowPathbar[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar			_{{-1183, 469}, {1178, 558}}	%1=I`myz{|}~                                A r r a y slsvCblob  bplist00		IJKL_useRelativeDates_showIconPreview_calculateAllSizesWcolumnsXtextSizeZsortColumnXiconSize_viewOptionsVersion		#',16;@E		WvisibleYascendingUwidthZidentifier		5TnameWvisibleUwidthYascending#Xubiquity	!"	\dateModified!&[dateCreated	*+	aTsize		/0		sTkind	45	dUlabel	9:	KWversion	>?	,XcommentsCD^dateLastOpened!HYdateAdded#@(      Tname#@0          , > R Z c n w                      	
"#$09:;=BKLMOT]^_agpqrt|             M                  A r r a y slsvpblob  ^bplist00		FGH>_useRelativeDates_showIconPreview_calculateAllSizesWcolumnsXtextSizeZsortColumnXiconSize_viewOptionsVersion		$).38=BXcomments^dateLastOpened[dateCreatedTsizeUlabelTkindWversionTname\dateModified	UindexYascendingUwidthWvisible	, "%'*,	a	/	1	d4	6		s	9	;	K>	@	 	5	C'		#@(      Tname#@0         , > R Z c n w                	')*,-689;<EGHJKTVWYZcefhirtuwx             I                  A r r a y svSrnlong       C o m m o nbwspblob   bplist00		]ShowStatusBar[ShowPathbar[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar			_{{-1345, 242}, {992, 629}}	%1=I`myz{|}~                                C o m m o nlsvCblob  bplist00	
HIHJKL_useRelativeDates_showIconPreview_calculateAllSizesWcolumns_scrollPositionYXtextSize_scrollPositionXZsortColumnXiconSize_viewOptionsVersion		"&+05:?DWvisibleUwidthYascendingZidentifier	{	TnameXubiquity#\dateModified	#[dateCreated'(Tsizea	,-Tkinds		12Ulabeld	67WversionK	;<Xcomments,	@A^dateLastOpenedEYdateAdded#        #@(      \dateModified#@0          0 B V ^ p y                 %'()2>?@INPQR[`bcdmsuvw             M                  C o m m o nlsvpblob  bplist00	
HIHJKD_useRelativeDates_showIconPreview_calculateAllSizesWcolumns_scrollPositionYXtextSize_scrollPositionXZsortColumnXiconSize_viewOptionsVersion		!&+/49>CXcomments^dateLastOpened\dateModified[dateCreatedTsizeUlabelTkindWversionTname WvisibleUwidthYascendingUindex,	#%(*	(.13	a68d	;=	s	@BK	DE {		#        #@(      \dateModified#@0         0 B V ^ p y             !)/9?@CDFOPRSU^_abdmnoqz{}~             L                  C o m m o nvSrnlong       C o m p l e t ebwspblob   bplist00		]ShowStatusBar[ShowPathbar[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar			_{{0, 276}, {1115, 674}}	%1=I`myz{|}~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
    C o m p l e t elsvpblob  Zbplist00		EFGA_useRelativeDates_showIconPreview_calculateAllSizesWcolumnsXtextSizeZsortColumnXiconSize_viewOptionsVersion		$(,16;@Xcomments^dateLastOpened\dateModified[dateCreatedTsizeUlabelTkindWversionTname	WvisibleUwidthYascendingUindex,	!#	!'	!+	.0	a3	5d		8	:	s	=	?K	AB		 		#@(      Tname#@0         , > R Z c n w               '(*+-678:CDEGPQSTV_`bcenoqrt}~             H                  C o m p l e t evSrnlong       C u s t o mbwspblob   bplist00	
			]ShowStatusBar_SidebarWidthTenElevenOrLater[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar[ShowPathbar	#@k`     		_{{-1733, 363}, {770, 436}}	'FR^u                                C u s t o mvSrnlong       D u m pbwspblob   bplist00		]ShowStatusBar[ShowPathbar[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar			_{{-1717, 25}, {992, 629}}	%1=I`myz{|}~                                D u m plsvCblob  bplist00	
FG
IXiconSize_showIconPreview_calculateAllSizesWcolumnsXtextSizeZsortColumn_useRelativeDates_viewOptionsVersion#@0      	 $).38=B

ZidentifierUwidthYascendingWvisibleTname5		Xubiquity#
	\dateModified#[dateCreated
&(	aTsize
+
-	s	Tkind0
2d	Ulabel5
7K	Wversion:
<,	Xcomments?A^dateLastOpenedCYdateAdded#@(      \dateModified	    " 4 H P Y d w                       	 )*,-2;<>?DMNPQW`acdluvyz             J                  D u m plsvpblob  fbplist00	
FG
EXiconSize_showIconPreview_calculateAllSizesWcolumnsXtextSizeZsortColumn_useRelativeDates_viewOptionsVersion#@0      	$)-27<AXcomments^dateLastOpened\dateModified[dateCreatedTsizeUlabelTkindWversionTname
UindexUwidthYascendingWvisible,	 !%&
	*&./
a	34
d	89

s		=>
K	
C
E	5	 #@(      \dateModified	   " 4 H P Y d w              !$%&/1345>@BCDMOPQZ\^_`ikmnoxz|}~             I                  D u m pvSrnlong       P h plsvCblob  bplist00	
JKLMNO_useRelativeDates_showIconPreview_calculateAllSizesWcolumns_scrollPositionYXtextSize_scrollPositionXZsortColumnXiconSize_viewOptionsVersion		 %).38=AFWvisibleUwidthYascendingZidentifier	,	TnameUwidthYascendingWvisibleXubiquity#"$	\dateModified"([dateCreated+-	aTsize02	s	Tkind57d	Ulabel:<K	Wversion@	XcommentsCE^dateLastOpenedG"YdateAdded#@     #@(      #        Tname#@0          0 B V ^ p y                 #%&'0134AJKLXabdejstvw|	             P                  P h plsvpblob  bplist00	
GHIJK@_useRelativeDates_showIconPreview_calculateAllSizesWcolumns_scrollPositionYXtextSize_scrollPositionXZsortColumnXiconSize_viewOptionsVersion		!&+05:?CXcomments^dateLastOpened[dateCreatedTsizeUlabelTkindWversionTname\dateModifiedUindexUwidthYascendingWvisible,	"#'(,-a	12d	67s		;<K	@ 		D(	#@     #@(      #        Tname#@0         0 B V ^ p y              !'-7?ADEFOQSTU^`bcdmoqrs|~             L                                                                                                                                                          @   E    
     0                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           DSDB                                 `                                  H      P      `                                                    @                                                @       review_calculateAllSizesWcolumnsXtextSizeZsortColumn_useRelativeDates_viewOptionsVersion#@0      	 $).38=B

ZidentifierUwidthYascendingWvisibleTname5		Xubiquity#
	\dateModified#[dateCreated
&(	aTsize
+
-	s	Tkind0
2d	Ulabel5
7K	Wversion:
<,	Xcomments?A^dateLastOpenedCYdateAdded#@(      \dateModified	    " 4 H P Y d w                       	 )*,-2;<>?DMNPQW`acdluvyz             J                  D u m plsvpblob  fbplist00	
FG
EXiconSize_showIconPreview_calculateAllSizesWcolumnsXtextSizeZsortColumn_useRelativeDates_viewOptionsVersion#@0      	<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Patterns;

use Exakat\Analyzer\Analyzer;

class Factory extends Analyzer {
    public function analyze() {
        // function foo() { return new A(); }
        $this->atomIs('Return')
             ->outIs('RETURN')
             ->atomIs('New')
             ->goToFunction();
        $this->prepareQuery();

        // function foo() { $a = new A(); return $a; }
        $this->atomIs('Return')
             ->outIs('RETURN')
             ->atomIs('Variable')
             ->inIs('DEFINITION')
             ->outIs('DEFINITION')
             ->inIs('LEFT')
             ->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomIs('New')
             ->goToFunction()
             ->analyzerIsNot('self');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Patterns;

use Exakat\Analyzer\Analyzer;

class DependencyInjection extends Analyzer {
    public function dependsOn(): array {
        return array('Classes/Constructor',
                    );
    }

    public function analyze() {
        $scalars = $this->loadIni('php_scalar_types.ini', 'types');

        // Assigned to a property at constructor
        $this->atomIs('Magicmethod')
             ->analyzerIs('Classes/Constructor')
             ->outIs('ARGUMENT')
             ->as('result')
             ->outIs('TYPEHINT')
             ->atomIsNot('Void')
             ->fullnspathIsNot($scalars)
             ->inIs('TYPEHINT')
             ->outIsIE('LEFT')
             ->savePropertyAs('code', 'arg')
             ->back('first')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Variable')
             ->samePropertyAs('code', 'arg')
             ->inIs('RIGHT')
             ->atomIs('Assignation')
             ->outIs('LEFT')
             ->atomIs('Member')
             ->outIs('OBJECT')
             ->atomIs('This')
             ->back('result');
        $this->prepareQuery();

        // Assigned to a static property at constructor
        $this->atomIs('Magicmethod')
             ->analyzerIs('Classes/Constructor')
             ->outIs('ARGUMENT')
             ->as('result')
             ->outIs('TYPEHINT')
             ->atomIsNot('Void')
             ->fullnspathIsNot($scalars)
             ->inIs('TYPEHINT')
             ->outIsIE('LEFT')
             ->savePropertyAs('code', 'arg')
             ->back('first')
             ->inIs('MAGICMETHOD')
             ->savePropertyAs('fullnspath', 'fnp')
             ->back('first')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Variable')
             ->samePropertyAs('code', 'arg')
             ->inIs('RIGHT')
             ->atomIs('Assignation')
             ->outIs('LEFT')
             ->atomIs('Staticproperty')
             ->outIs('CLASS')
             ->samePropertyAs('fullnspath', 'fnp')
             ->back('result');
        $this->prepareQuery();

    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Patterns;

use Exakat\Analyzer\Analyzer;

class CourrierAntiPattern extends Analyzer {
    public function dependsOn(): array {
        return array('Patterns/DependencyInjection',
                    );
    }

    public function analyze() {
        $this->analyzerIs('Patterns/DependencyInjection')
             ->outIsIE('LEFT')
             ->savePropertyAs('code', 'arg')
             ->goToFunction()
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Variable')
             ->samePropertyAs('code', 'arg')
             ->inIs('RIGHT')
             ->outIs('LEFT')
             ->atomIs('Member')
             ->outIs('MEMBER')
             ->savePropertyAs('code', 'property')
             ->goToClass()
             ->outIs(array('METHOD', 'MAGICMETHOD'))
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('New')
             ->outIs('NEW')
             ->outIs('ARGUMENT')
             ->atomIs('Member')
             ->outIs('MEMBER')
             ->samePropertyAs('code', 'property')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class MultipleTypeVariable extends Analyzer {
    public function analyze() {
        // $a = count('', $a);
        $this->atomFunctionIs('\\count')
             ->outWithRank('ARGUMENT', 0)
             ->savePropertyAs('fullcode', 'variable')
             ->back('first')
             ->inIs('RIGHT')
             ->atomIs('Assignation')
             ->codeIs('=')
             ->outIs('LEFT')
             ->samePropertyAs('fullcode', 'variable')
             ->inIs('LEFT');
        $this->prepareQuery();

        // $a = join('', $a);
        $this->atomFunctionIs(array('\\join', '\\implode', '\\split', '\\explode', '\\unserialize', '\\urldecode', '\\parse_ini_string', '\\http_build_query'))
             ->outIs('ARGUMENT')
             ->savePropertyAs('fullcode', 'variable')
             ->back('first')
             ->inIs('RIGHT')
             ->atomIs('Assignation')
             ->codeIs('=')
             ->outIs('LEFT')
             ->samePropertyAs('fullcode', 'variable', self::CASE_SENSITIVE)
             ->inIs('LEFT');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class SubstrToTrim extends Analyzer {
    public function analyze() {
        //$b = substr($a, 1); //ltrim
        $this->atomFunctionIs('\substr')
             ->outWithRank('ARGUMENT', 1)
             ->atomIs('Integer', self::WITH_CONSTANTS)
             ->is('intval', 1)
             ->back('first')
             ->noChildWithRank('ARGUMENT', 2)
             ->back('first');
        $this->prepareQuery();

        //$b = substr($a, 0, -1); // rtrim
        $this->atomFunctionIs('\substr')
             ->outWithRank('ARGUMENT', 1)
             ->atomIs('Integer', self::WITH_CONSTANTS)
             ->is('intval', 0)
             ->back('first')
             ->outWithRank('ARGUMENT', 2)
             ->atomIs('Integer', self::WITH_CONSTANTS)
             ->is('intval', -1)
             ->back('first');
        $this->prepareQuery();

        //$b = substr($a, 1, -1); // trim
        $this->atomFunctionIs('\substr')
             ->outWithRank('ARGUMENT', 1)
             ->atomIs('Integer', self::WITH_CONSTANTS)
             ->is('intval', 1)
             ->back('first')
             ->outWithRank('ARGUMENT', 2)
             ->atomIs('Integer', self::WITH_CONSTANTS)
             ->is('intval', -1)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ObjectReferences extends Analyzer {
    public function analyze() {
        $scalars = $this->loadIni('php_scalar_types.ini', 'types');

        // f(stdclass &$x)
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->is('reference', true)
             ->outIs('TYPEHINT')
             ->atomIsNot(array('Void', 'Null'))
             ->fullnspathIsNot($scalars)
             ->back('first');
        $this->prepareQuery();

        // f(&$x) and $x->y();
        // f(&$x) and $x->y;
        // No assignation with new inside
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->is('reference', true)
             ->savePropertyAs('code', 'variable') // Avoid &
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->outIs('NAME')
                             ->outIs('DEFINITION')
                             ->inIs('LEFT')
                             ->atomIs('Assignation') // any assignation will break the reference
                )
             )
             ->inIs('ARGUMENT')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition(array('Methodcall', 'Member'))
             ->outIs('OBJECT')
             ->samePropertyAs('code', 'variable')
             ->back('first');
        $this->prepareQuery();

        // foreach($a as &$b) { $b->method;}
        $this->atomIs('Foreach')
             ->outIs('VALUE')
             ->is('reference', true)
             ->savePropertyAs('code', 'variable')
             ->back('first')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition(array('Methodcall', 'Member'))
             ->outIs('OBJECT')
             ->samePropertyAs('code', 'variable');
        $this->prepareQuery();

        // todo $x = new object; then &$x;
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class SameConditions extends Analyzer {
    public function analyze() {
        // if ($a) {} elseif ($a1) {} else {}
        $this->atomIs('Ifthen')
             ->outIs('CONDITION')
             ->savePropertyAs('fullcode', 'condition')
             ->as('results')
             ->inIs('CONDITION')
             ->outIs(array('THEN', 'ELSE'))
             ->atomInsideNoDefinition('Ifthen')
             ->outIs('CONDITION')
             ->samePropertyAs('fullcode', 'condition')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class EmptyWithExpression extends Analyzer {
    protected $phpVersion = '5.5+';

    public function analyze() {
        // $a = 2; empty($a) ; in a row
        // only works for variables
        $this->atomIs(array('Functioncall',
                            'Methodcall',
                            'Staticmethodcall',
                            'Addition',
                            'Multiplication',
                            'Power',
                            'Bitshift',
                            'Comparison',
                            'Not',
                            ))
            ->inIsIE(array('CODE', 'RIGHT'))
            ->inIs('ARGUMENT')
            ->atomIs('Empty');
        $this->prepareQuery();

        // extends this to array, property, static property

    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ConstantConditions extends Analyzer {
    public function analyze() {
        $this->atomIs('While')
             ->outIs('CONDITION')
             ->is('constant', true)
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('Dowhile')
             ->outIs('CONDITION')
             ->is('constant', true)
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('Ifthen')
             // constant shouldn't be PHP's
             ->outIs('CONDITION')
             ->is('constant', true)
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('Ternary')
             ->outIs('CONDITION')
             ->is('constant', true)
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('For')
             ->outIs(array('FINAL', 'INCREMENT'))
             ->is('constant', true)
             ->back('first');
        $this->prepareQuery();

/*
    One of the variable inside the condition should be modified at some point : in the condition, or in the loop.

    Function calls are kept, but they should be characterized as non-determinist
    (calling with the same arguments may yield different result, such as random or fread)
*/
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class PrintfArguments extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/PropagateConstants',
                    );
    }

    public function analyze() {
        //The %2$s contains %1$04d monkeys
        //The %02s contains %-'.3d monkeys

        $countParameters = <<<REGEX
    d2 = it.get().value("fullcode").toString().findAll("(?<!%)%(?:\\\d+\\\\\\$)?[+-]?(?:[ 0-9\']*\\\.\\\d+)?(?:\\\d\\\d)?[bcdeEufFgGosxX]"); 
    d = [:];
    d2.each{
        x = it =~ "^%(\\\\d+)\\\\\\$"; 
        if (x.asBoolean() == true) {
            d[x[0][1]] = x[0][0];
        } else {
            d[d.size()] = it;
        }
    }
REGEX;

        // printf(' a %s %s', $a1, ...$a2);
        $this->atomFunctionIs(array('\\printf', '\\sprintf'))
             ->savePropertyAs('count', 'c')
             ->filter(
                $this->side()
                     ->outIs('ARGUMENT')
                     ->is('variadic', true)
             )
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String', self::WITH_CONSTANTS)
             ->hasNoOut('CONCAT')
             // Count the number of ...variadic
             //(?:[ 0]|\'.{1})?-?\\\d*%(?:\\\.\\\d+)?
             ->raw(<<<GREMLIN
filter{
$countParameters
    c - 1 > d.size();
}
GREMLIN
)
             ->back('first');
        $this->prepareQuery();

        // printf(' a %s ', $a1, $a2);
        $this->atomFunctionIs(array('\\printf', '\\sprintf'))
             ->savePropertyAs('count', 'c')
             ->not(
                $this->side()
                     ->outIs('ARGUMENT')
                     ->is('variadic', true)
             )
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String', self::WITH_CONSTANTS)
             ->hasNoOut('CONCAT')
             // Count the number of ...variadic
             //(?:[ 0]|\'.{1})?-?\\\d*%(?:\\\.\\\d+)?
             ->raw(<<<GREMLIN
filter{
$countParameters
    c - 1 != d.size();
}
GREMLIN
)
             ->back('first');
        $this->prepareQuery();

        // vsprintf(' a %s ',array( $a1, $a2));
        $this->atomFunctionIs('\\vsprintf')
             ->outWithRank('ARGUMENT', 1)
             ->atomIs('Arrayliteral', self::WITH_CONSTANTS)
             ->savePropertyAs('count', 'c')
             ->back('first')

             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String', self::WITH_CONSTANTS)
             ->hasNoOut('CONCAT')
             //(?:[ 0]|\'.{1})?-?\\\d*%(?:\\\.\\\d+)?
             // + 0 is silly but actually works. :(
             ->raw(<<<GREMLIN
filter{
$countParameters
    c + 0 != d.size();
}
GREMLIN
)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ForgottenWhiteSpace extends Analyzer {
    public function analyze() {
        // spot the first element
        $this->atomIs('File')
             ->outIs('FILE')
             ->outWithRank('EXPRESSION', 0)
             ->regexIs('fullcode', '^\\\s+\\$');
        $this->prepareQuery();

        // Spot the last element
        $this->atomIs('File')
             ->outIs('FILE')
             ->outWithRank('EXPRESSION', 'last')
             ->regexIs('fullcode', '^\\\s+\\$');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class FunctionPreSubscripting extends Analyzer {
    protected $phpVersion = '5.4+';

    public function dependsOn(): array {
        return array('Variables/SelfTransform',
                    );
    }

    public function analyze() {
        // $x = f();
        // $x['e']
        // instead of f()['e']
        $this->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomIs(self::FUNCTIONS_CALLS)
             ->back('first')

             ->outIs('LEFT')
             ->analyzerIsNot('Variables/SelfTransform')
             ->atomIs('Variable') // variable
             ->filter(
                $this->side()
                     ->inIs('DEFINITION')
                     ->outIs('DEFINITION')
                     ->inIs('VARIABLE')
                     ->atomIs('Array')
                     ->raw('count().is(eq(1))')
              )
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class TernaryInConcat extends Analyzer {
    public function analyze() {
        // 'a'. 'b'.$c > 1 ? 'd' : 'e'; Ternary has priority
        $this->atomIs(array('Ternary', 'Coalesce'))
             ->outIs(array('CONDITION', 'LEFT'))
             //->atomIs('Comparison')// Skip
             ->outIsIE('LEFT')
             ->atomIs('Concatenation')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class MergeIfThen extends Analyzer {
    public function analyze() {
        // if () { if () { }}
        $this->atomIs('Ifthen')
             ->outIs('THEN')
             ->is('count', 1)
             ->outIs('EXPRESSION')
             ->atomIs('Ifthen')
             ->back('first')
             ->hasNoOut('ELSE');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class RegexDelimiter extends Analyzer {
    public function analyze() {
        $pregFunctions = array('\\preg_match_all',
                               '\\preg_match',
                               '\\preg_replace',
                               '\\preg_replace_callback',
                               '\\preg_relace_callback_array',
                               );

        $this->atomFunctionIs($pregFunctions)
             ->outWithRank('ARGUMENT', 0)
             ->outIsIE('CONCAT')
             ->is('rank', 0) // useful if previous is used
             ->atomIs('String')
             ->tokenIs(array('T_CONSTANT_ENCAPSED_STRING', 'T_ENCAPSED_AND_WHITESPACE'))
             ->noDelimiterIsNot('')
             ->raw(pregOptionE::FETCH_DELIMITER)
             ->raw('map{ delimiter; }')
             ->raw('groupCount("gf").cap("gf").sideEffect{ s = it.get().values().sum(); }');
        $types = $this->rawQuery()->toArray();

        if (empty($types)) {
            return;
        }
        $types = $types[0];

        $storage = array_combine(array_keys($types), array_keys($types));

        $store = array();
        $total = 0;
        foreach($storage as $key => $v) {
            $c = empty($types[$v]) ? 0 : $types[$v];
            $store[] = array('key'   => $key,
                             'value' => $c);
            $total += $c;
        }
        $this->datastore->addRowAnalyzer($this->analyzerQuoted, $store);

        if ($total === 0) {
            return;
        }

        $types = array_filter($types, function ($x) use ($total) { return $x > 0 && $x / $total < 0.1; });
        $types =  array_keys($types);
        if (empty($types)) {
            return;
        }

        $this->atomFunctionIs($pregFunctions)
             ->outWithRank('ARGUMENT', 0)
             ->outIsIE('CONCAT')
             ->is('rank', 0) // useful if previous is used
             ->atomIs('String')
             ->tokenIs(array('T_CONSTANT_ENCAPSED_STRING', 'T_ENCAPSED_AND_WHITESPACE'))
             ->noDelimiterIsNot('')
             ->raw(pregOptionE::FETCH_DELIMITER)
             ->raw('filter{ delimiter in *** }', $types)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class pregOptionE extends Analyzer {
    const FETCH_DELIMITER = <<<'GREMLIN'
filter{ 
    base = it.get().value("noDelimiter").replaceAll("\\s", "");
    
    if (base.length() == 0) {
        false;
    } else {
        delimiter = base[0];
        if (delimiter == '\\\\') {
            false;
        } else {
            true;
        }
    }
}
GREMLIN;

    const MAKE_DELIMITER_FINAL = <<<'GREMLIN'
sideEffect{ 
         if (delimiter == "{") { delimiter = "\\{";   delimiterFinal = "\\}"; } 
    else if (delimiter == "}") { delimiter = "\\}";   delimiterFinal = "\\}"; } 
    else if (delimiter == "(") { delimiter = "\\(";   delimiterFinal = "\\)"; } 
    else if (delimiter == ")") { delimiter = "\\)";   delimiterFinal = "\\)"; } 
    else if (delimiter == "[") { delimiter = "\\[";   delimiterFinal = "\\]"; } 
    else if (delimiter == "]") { delimiter = "\\]";   delimiterFinal = "\\]"; } 
    else if (delimiter == "*") { delimiter = "\\*";   delimiterFinal = "\\*"; } 
    else if (delimiter == "|") { delimiter = "\\|";   delimiterFinal = "\\|"; } 
    else if (delimiter == "?") { delimiter = "\\?";   delimiterFinal = "\\?"; } 
    else if (delimiter == "+") { delimiter = "\\+";   delimiterFinal = "\\+"; } 
    else if (delimiter == '$') { delimiter = "\\\$";  delimiterFinal = "\\\$"; } 
    else if (delimiter == ".") { delimiter = "\\.";   delimiterFinal = "\\." ; } 
    
    // default case : accept
    else { delimiterFinal = delimiter; } 
}
// Remove any invalid delimiter
.filter{ !(delimiter in ["\\", 
                         "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z",
                         "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z",
                         "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"
                         ]); }

GREMLIN;

    public function analyze() {
        $functions = '\\preg_replace';

        // preg_match with a string
        $this->atomFunctionIs($functions)
             ->outWithRank('ARGUMENT', 0)
             ->tokenIs('T_CONSTANT_ENCAPSED_STRING')
             ->isNot('noDelimiter', '')
             ->raw(self::FETCH_DELIMITER)
             ->raw(self::MAKE_DELIMITER_FINAL)
             ->regexIs('noDelimiter', '^\\\\s*(" + delimiter + ").*(" + delimiterFinal + ")([a-df-zA-Z]*?e[a-df-zA-Z]*?)\$')
             ->back('first');
        $this->prepareQuery();

        // With an interpolated string "a $x b"
        $this->atomFunctionIs($functions)
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String')
             ->outWithRank('CONCAT', 0)
             ->isNot('noDelimiter', '')
             ->raw(self::FETCH_DELIMITER)
             ->inIs('CONCAT')
             ->raw(self::MAKE_DELIMITER_FINAL)
             ->regexIs('fullcode', '^.\\\\s*(" + delimiter + ").*(" + delimiterFinal + ")([a-df-zA-Z]*?e[a-df-zA-Z]*?).\$')
             ->back('first');
        $this->prepareQuery();

        // with a concatenation
        $this->atomFunctionIs($functions)
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('Concatenation')
             ->outWithRank('CONCAT', 0)
             ->atomIs('String')
             ->outIsIE('CONCAT')
             ->atomIs('String')
             ->is('rank', 0)
             ->isNot('noDelimiter', '')
             ->raw(self::FETCH_DELIMITER)
             ->inIsIE('CONCAT')
             ->raw(self::MAKE_DELIMITER_FINAL)
             ->regexIs('fullcode', '^.\\\\s*(" + delimiter + ").*(" + delimiterFinal + ")([a-df-zA-Z]*?e[a-df-zA-Z]*?).\$')
             ->back('first');
        $this->prepareQuery();
// Actual letters used for Options in PHP imsxeuADSUXJ (others may yield an error) case is important

        $this->atomFunctionIs(array('\\mb_eregi_replace',
                                    '\\mb_ereg_replace',
                                    ))
             ->outWithRank('ARGUMENT', 3)
             ->atomIs('String')
             ->tokenIs('T_CONSTANT_ENCAPSED_STRING')
             ->regexIs('noDelimiter', 'e')
             ->back('first');
         $this->prepareQuery();
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class NewLineStyle extends Analyzer {

    public function analyze() {
        $mapping = <<<'GREMLIN'
if (it.get().label() == "String") {
    x2 = "slash-n"
} else {
    x2 = "PHP_EOL"
}

GREMLIN;
        $storage = array('\\n'     => 'slash-n',
                         'PHP_EOL' => 'PHP_EOL');

        $this->atomIs(array('String', 'Identifier', 'Nsname'))
             ->raw('coalesce( __.hasLabel("Identifier", "Nsname").has("fullnspath").has("fullnspath", "\\\\PHP_EOL"), 
                              __.hasLabel("String").has("noDelimiter", "\\\\n")
                             )')
             ->raw('map{ ' . $mapping . ' }')
             ->raw('groupCount("gf").cap("gf").sideEffect{ s = it.get().values().sum(); }');
        $types = $this->rawQuery()->toArray();

        if (empty($types)) {
            return;
        }
        $types = $types[0];

        $store = array();
        $total = 0;
        foreach($storage as $key => $v) {
            $c = empty($types[$v]) ? 0 : $types[$v];
            $store[] = array('key'   => $key,
                             'value' => $c);
            $total += $c;
        }
        $this->datastore->addRowAnalyzer($this->analyzerQuoted, $store);

        if ($total == 0) {
            return;
        }

        $types = array_filter($types, function ($x) use ($total) { return $x > 0 && $x  < 0.1 *  $total; });
        if (empty($types)) {
            return;
        }

        $this->atomIs(array('String', 'Identifier', 'Nsname'))
             ->raw('coalesce( __.hasLabel("Identifier", "Nsname").has("fullnspath").has("fullnspath", "\\\\PHP_EOL"), 
                              __.hasLabel("String").has("noDelimiter", "\\\\n")
                             )')
             ->raw('sideEffect{ ' . $mapping . ' }')
             ->raw('filter{ x2 in ***}', $types)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class Noscream extends Analyzer {
    public function analyze() {
        $authorized = array( '\fopen',
                             '\token_get_all',
                             '\stream_socket_server',
        );

        $list = array('Addition',
                      'Array',
                      'Arrayappend',
                      'Arrayliteral',
                      //'Assignation',  Not possible
                      'Bitshift',
                      'Boolean',
                      'Break',
                      'Cast',
                      'Clone',
                      'Closure',
                      'Coalesce',
                      'Comparison',
                      'Concatenation',
                      'Constant',
                      'Continue',
                      'Declare',
                      'Declaredefinition',
                      'Defineconstant',
                      'Echo',
                      'Empty',
                      'Eval',
                      'Exit',
                      'Function',
                      'Global',
                      'Heredoc',
                      'Identifier',
                      'Include',
                      'Instanceof',
                      'Insteadof',
                      'Integer',
                      'Isset',
                      'List',
                      //'Logical', Not possible
                      'Magicconstant',
                      'Member',
                      'Methodcall',
                      'Methodcallname',
                      'Multiplication',
                      'Name',
                      'New',
                      'Newcall',
                      'Not',
                      'Nsname',
                      'Null',
                      'Parent',
                      'Parenthesis',
                      'Phpvariable',
                      'Postplusplus',
                      'Power',
                      'Preplusplus',
                      'Print',
                      'Propertydefinition',
                      'Float',
                      'Return',
                      'Self',
                      'Shell',
                      'Sign',
                      'Static',
                      'Staticclass',
                      'Staticconstant',
                      'Staticdefinition',
                      'Staticmethodcall',
                      'Staticproperty',
                      'String',
                      'This',
                      'Throw',
                      'Unset',
                      'Variable',
                      'Yield',
                      'Yieldfrom',
                      );

        // @$s
        $this->atomIs($list)
             ->is('noscream', true);
        $this->prepareQuery();

        // @fopen($s, 'r')
        $this->atomIs('Functioncall')
             ->fullnspathIsNot($authorized)
             ->is('noscream', true);
        $this->prepareQuery();

    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class BreakOutsideLoop extends Analyzer {
    protected $phpVersion = '7.0-';

    public function analyze() {
        $breakable = array('Dowhile', 'For', 'Foreach', 'While', 'Switch');

        // break (null)
        $this->atomIs('Break')
             ->outIs('BREAK')
             ->atomIs('Void')
             ->hasNoInstruction($breakable)
             ->back('first');
        $this->prepareQuery();

        // break 1
        $this->atomIs('Break')
             ->outIs('BREAK')
             ->atomIs('Integer')
             ->savePropertyAs('intval', 'counter')
             ->hasNoCountedInstruction($breakable, 'counter') // really count temps
             ->back('first');
        $this->prepareQuery();

        // continue (null)
        $this->atomIs('Continue')
             ->outIs('CONTINUE')
             ->atomIs('Void')
             ->hasNoInstruction($breakable)
             ->back('first');
        $this->prepareQuery();

        // continue 1
        $this->atomIs('Continue')
             ->outIs('CONTINUE')
             ->atomIs('Integer')
             ->savePropertyAs('intval', 'counter')
             ->hasNoCountedInstruction($breakable, 'counter') // really count temps
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class CanCountNonCountable extends Analyzer {
    public function analyze() {
        // count('abc');
        $this->atomFunctionIs('\\count')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs(array('String', 'Boolean', 'Integer', 'Float', 'Null'))
             ->back('first');
        $this->prepareQuery();

        // todo : use types to do the same with variables.
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class SuspiciousComparison extends Analyzer {
    public function analyze() {
        $functions = $this->methods->getFunctionsLastArgsNotBoolean();

        // intval($c === 3);
        $this->atomIs('Functioncall')
             ->hasNoIn('METHOD')
             ->tokenIs(array('T_STRING', 'T_NS_SEPARATOR'))
             ->fullnspathIs($functions)
             ->outWithRank('ARGUMENT', 'last')
             ->atomIs('Comparison')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class CouldUseArrayUnique extends Analyzer {
    public function analyze() {
        //foreach ($a as $b) {
        //    if (!in_array($b, $c)) {
        //        $c[] = $b;
        //        }
        //}
        $this->atomIs('Foreach')
             ->outIs(array('INDEX', 'VALUE'))
             ->savePropertyAs('fullcode', 'increment')
             ->back('first')
             ->outIs('BLOCK')

             ->atomInsideNoDefinition('Ifthen')
             ->as('ifthen')
             ->outIs('CONDITION')

             ->atomInsideNoDefinition('Functioncall')
             ->functioncallIs('\\in_array')
             ->outWithRank('ARGUMENT', 0)
             ->samePropertyAs('fullcode', 'increment')
             ->inIs('ARGUMENT')

             ->outWithRank('ARGUMENT', 1)
             ->savePropertyAs('fullcode', 'collector')
             ->back('ifthen')

             ->outIs(array('THEN', 'ELSE'))
             ->atomInsideNoDefinition('Arrayappend')
             ->outIs('APPEND')
             ->samePropertyAs('fullcode', 'collector')
             ->inIs('APPEND')
             ->inIs('LEFT')
             ->atomIs('Assignation')
             ->outIs('RIGHT')
             ->samePropertyAs('fullcode', 'increment')

             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class InfiniteRecursion extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/SetClassPropertyDefinitionWithTypehint',
                     'Functions/Recursive',
                    );
    }

    public function analyze() {
        // foo($a, $b) { foo($a, $b); }
        $this->atomIs('Function')
             ->analyzerIs('Functions/Recursive')
             ->isNot('count', 0) //Except at least one parameter
             ->not(
                $this->side()
                     ->outIs('ARGUMENT')
                     ->outIs('NAME')
                     ->outIs('DEFINITION')
                     ->is('isModified', true)
             )
             ->collectArguments('args')
             ->outIs('DEFINITION')
             ->atomIs(self::FUNCTIONS_CALLS)
             ->outIsIE('METHOD')
             ->collectArguments('called')
             ->raw('filter{args.equals(called)}')
             ->back('first');
        $this->prepareQuery();

        // foo($a, $b) { foo($a, $b); }
        $this->atomIs(self::FUNCTIONS_ALL)
             ->analyzerIs('Functions/Recursive')
             ->isNot('count', 0) //Except at least one parameter
             ->not(
                $this->side()
                     ->outIs('ARGUMENT')
                     ->outIs('NAME')
                     ->outIs('DEFINITION')
                     ->is('isModified', true)
             )
             ->collectArguments('args')
             ->outIs('DEFINITION')
             ->atomIs(self::FUNCTIONS_CALLS)
             ->outIs(array('OBJECT', 'CLASS')) // Only works on static calls, if the class is a variable : $a::foo();
             ->isThis()
             ->inIs(array('OBJECT', 'CLASS'))
             ->outIsIE('METHOD')
             ->collectArguments('called')
             ->raw('filter{args.equals(called)}')
             ->back('first');
        $this->prepareQuery();

        // foo() { foo(); } // No argument
        $this->atomIs(self::FUNCTIONS_ALL)
             ->savePropertyAs('id', 'start')
             ->analyzerIs('Functions/Recursive')
             ->is('count', 0)
             ->outIs('DEFINITION')
             ->atomIs(self::FUNCTIONS_CALLS)
             ->outIsIE('METHOD')
             ->is('count', 0)
             ->goToFunction()
             ->samePropertyAs('id', 'start');
        $this->prepareQuery();

        // foo($a, $b) { foo($a, $b); } // No condition of any kind...
        $this->atomIs(self::FUNCTIONS_ALL)
             ->analyzerIsNot('self')
             ->analyzerIs('Functions/Recursive')
             ->noAtomInside(array('Ifthen', 'Ternary'));
        $this->prepareQuery();

        // recursion level 2?
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class BailOutEarly extends Analyzer {
    public function analyze() {
        $bailout = array('Return', 'Continue', 'Break', 'Throw', 'Goto');

        // if ($a) { return; } else { not return; }
        $this->atomIs('Ifthen')
             ->tokenIsNot('T_ELSEIF')
             ->outIs('THEN')
             ->outWithRank('EXPRESSION', 'last')
             ->atomIs($bailout)
             ->back('first')
             ->outIs('ELSE')
             ->outWithRank('EXPRESSION', 'last')
             ->atomIsNot($bailout)
             ->back('first')
             ->inIs('EXPRESSION')
             ->isNot('count', 1)
             ->back('first');
        $this->prepareQuery();

        // if ($a) { not return; } else { return; }
        $this->atomIs('Ifthen')
             ->tokenIsNot('T_ELSEIF')
             ->outIs('THEN')
             ->outWithRank('EXPRESSION', 'last')
             ->atomIsNot($bailout)
             ->back('first')
             ->outIs('ELSE')
             ->outWithRank('EXPRESSION', 'last')
             ->atomIs($bailout)
             ->back('first')
             ->inIs('EXPRESSION')
             ->isNot('count', 1)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class CouldUseStrrepeat extends Analyzer {
    public function analyze() {
        // for() { $a .= A; }
        $this->atomIs('Assignation')
             ->tokenIs('T_CONCAT_EQUAL')
             ->outIs('RIGHT')
             ->atomIs(array('String', 'Heredoc', 'Concatenation', 'Identifier', 'Nsname'))
             ->is('constant', true)
             ->inIs('RIGHT')
             ->is('rank', 0)
             ->inIs('EXPRESSION')
             ->is('count', 1)
             ->inIs('BLOCK')
             ->atomIs(array('For', 'Foreach'))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;
use Exakat\Query\DSL\FollowParAs;

class MbstringUnknownEncoding extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/PropagateConstants',
                     'Complete/PropagateCalls',
                    );
    }

    public function analyze() {
        $encodings = $this->loadIni('mbstring_encodings.ini', 'encodings');

        $positions = array('\\mb_preferred_mime_name'  => array(0),
                           '\\mb_regex_encoding'       => array(0),

                           '\\mb_check_encoding'       => array(1),
                           '\\mb_chr'                  => array(1),
                           '\\mb_ord'                  => array(1),
                           '\\mb_scrub'                => array(1),
                           '\\mb_strlen'               => array(1),

                           '\\mb_convert_case'         => array(2),
                           '\\mb_convert_encoding'     => array(2),
                           '\\mb_convert_kana'         => array(2),
                           '\\mb_decode_numericentity' => array(2),
                           '\\mb_encode_numericentity' => array(2),
                           '\\mb_internal_encoding'    => array(2),
                           '\\mb_strcut'               => array(2),
                           '\\mb_strtolower'           => array(2),
                           '\\mb_strtoupper'           => array(2),
                           '\\mb_strwidth'             => array(2),
                           '\\mb_substr_count'         => array(2),

                           '\\mb_stripos'              => array(3),
                           '\\mb_stristr'              => array(3),
                           '\\mb_strpos'               => array(3),
                           '\\mb_strripos'             => array(3),
                           '\\mb_strrpos'              => array(3),
                           '\\mb_strrchr'              => array(3),
                           '\\mb_strrichr'             => array(3),
                           '\\mb_strstr'               => array(3),
                           '\\mb_substr'               => array(3),

                           '\\mb_strimwidth'           => array(4),
                          );

        //mb_check_encoding($x, 'UTF9');
        $this->atomFunctionIs(array_keys($positions))
             ->savePropertyAs('fullnspath', 'fnp')
             ->outIs('ARGUMENT')
             ->isHash('rank', $positions, 'fnp')
             ->followParAs(FollowParAs::FOLLOW_NONE)
             ->atomIs(array('String', 'Concatenation', 'Integer', 'Boolean', 'Null'), self::WITH_CONSTANTS)
             ->noDelimiterIsNot($encodings, self::CASE_INSENSITIVE)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class Unpreprocessed extends Analyzer {
    public function analyze() {
        // avoid initialization build on function call. Use directly values or outsource them.
        // $x = explode(',', 'a,b,c,d,e,f') => array('a', 'b', 'c',...)
        $this->atomFunctionIs(array('\\explode',
                                    '\\split',
                                    '\\spliti',
                                    '\\implode',
                                    '\\join',
                                    ))
             ->noAtomInside(array('Variable',
                                  'Variablearray',
                                  'Variableobject',
                                  'Array',
                                  'Member',
                                  'Staticproperty',
                                  'Methodcall',
                                  'Staticmethodcall',
                                  'Functioncall',
                                  ))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class NoEmptyRegex extends Analyzer {
    public static $pregFunctions = array('\\preg_match_all',
                                         '\\preg_match',
                                         '\\preg_replace',
                                         '\\preg_replace_callback',
                                         '\\preg_relace_callback_array',
                                         );

    public function analyze() {
        // preg_match(''.$b, $d, $d); Empty delimiter
        $this->atomFunctionIs(self::$pregFunctions)
             ->outWithRank('ARGUMENT', 0)
             ->atomIs(self::STRINGS_ALL, self::WITH_CONSTANTS)
             ->outIsIE('CONCAT')
             ->tokenIs(array('T_CONSTANT_ENCAPSED_STRING', 'T_ENCAPSED_AND_WHITESPACE'))
             ->noDelimiterIs('')
             ->back('first');
        $this->prepareQuery();

        // preg_match('a'.$b, $d, $d); Non-alpha numerical delimiter
        $this->atomFunctionIs(self::$pregFunctions)
             ->outWithRank('ARGUMENT', 0)
             ->atomIs(self::STRINGS_ALL, self::WITH_CONSTANTS)
             ->outWithRank('CONCAT', 0)
             ->outIsIE('CONCAT') // keep going in case
             ->is('rank', 0)
             ->tokenIs(array('T_CONSTANT_ENCAPSED_STRING', 'T_ENCAPSED_AND_WHITESPACE'))
             ->noDelimiterIsNot('')
             ->regexIs('noDelimiter', '^[A-Za-z0-9]')
             ->back('first');
        $this->prepareQuery();

        // preg_match('abc', $d, $d); Non-alpha numerical delimiter
        $this->atomFunctionIs(self::$pregFunctions)
             ->outWithRank('ARGUMENT', 0)
             ->atomIs(self::STRINGS_ALL, self::WITH_CONSTANTS)
             ->hasNoOut('CONCAT')
             ->noDelimiterIsNot('')
             ->regexIs('noDelimiter', '^[A-Za-z0-9]')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class OnceUsage extends Analyzer {
    public function analyze() {
        // include_once 'file.php';
        $this->atomIs('Include')
             ->tokenIs(array('T_REQUIRE_ONCE', 'T_INCLUDE_ONCE'))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class DynamicCode extends Analyzer {
    public function analyze() {

        // $$v
        $this->atomIs('Variable')
             ->outIs('NAME')
             ->tokenIsNot('T_STRING')
             ->back('first');
        $this->prepareQuery();

        // $o->$p
        $this->atomIs('Member')
             ->outIs('MEMBER')
             ->tokenIsNot(array('T_STRING', 'T_NS_SEPARATOR'))
             ->back('first');
        $this->prepareQuery();

        // $o->$p();
        $this->atomIs('Methodcall')
             ->outIs('METHOD')
             ->tokenIsNot(array('T_STRING', 'T_NS_SEPARATOR'))
             ->back('first');
        $this->prepareQuery();

        //$classname::methodcall();
        $this->atomIs('Staticmethodcall')
             ->outIs(array('CLASS', 'METHOD'))
             ->tokenIsNot(self::STATICCALL_TOKEN)
             ->codeIsNot(array('self', 'parent', 'static'))
             ->back('first');
        $this->prepareQuery();

        //$functioncall(2,3,3);
        //new $classname(); (also done here)
        $this->atomIs(array('Functioncall', 'Newcall'))
             ->outIs('NAME')
             ->tokenIsNot(self::FUNCTIONS_TOKENS)
             ->back('first');
        $this->prepareQuery();

        // class_alias, extract and parse_url
        $this->atomFunctionIs('\\extract');
        $this->prepareQuery();

        $this->atomFunctionIs(array('\parse_str', '\mb_parse_str'))
             ->noChildWithRank('ARGUMENT', 1);
        $this->prepareQuery();

        $this->atomIs('Classalias')
             ->isNot('constant', true);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ShouldChainException extends Analyzer {
    public function analyze() {
        // Throw again, but not the caught variable
        $this->atomIs('Catch')
             ->outIs('VARIABLE')
             ->savePropertyAs('code', 'caught')
             ->inIs('VARIABLE')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Throw')
             ->outIs('THROW')
             ->outIs('NEW')
             ->not(
                $this->side()
                     ->outIs('ARGUMENT')
                     ->samePropertyAs('code', 'caught')
             )
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class MaxLevelOfIdentation extends Analyzer {
    protected $maxLevel = 4;

    public function analyze() {
        // if (a) { if (b) { }}
        // only reporting the method, not each line.
        $this->atomIs(self::FUNCTIONS_ALL)
             ->processLevels($this->maxLevel)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class NoReferenceOnLeft extends Analyzer {
    public function analyze() {
        $this->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomIs(array('Addition', 'Multiplication', 'Bitshift', 'Power', 'Concatenation', 'Instanceof', 'Logical', 'Comparison'))
             ->outIs('LEFT')
             ->outIsIE('OBJECT')
             ->is('reference', true)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class FailingSubstrComparison extends Analyzer {

    public function analyze() {
        // substr($a, 0, 3) === 'abcdef';
        $this->atomIs('Comparison')
             ->codeIs(array('==', '==='), self::TRANSLATE, self::CASE_SENSITIVE)
             ->outIs(array('LEFT', 'RIGHT'))
             ->functioncallIs('\substr')
             ->outWithRank('ARGUMENT', 2)
             ->atomIs('Integer', self::WITH_CONSTANTS)
             ->isMore('intval', 0)
             ->savePropertyAs('intval', 'length')
             ->back('first')
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs(array('String', 'Concatenation', 'Heredoc'), self::WITH_CONSTANTS)
             ->has('noDelimiter')
             ->getStringLength('noDelimiter', 's')
             // Substring is actually as long as length
             ->raw('filter{ s != length.toInteger().abs(); }')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class VardumpUsage extends Analyzer {
    public function analyze() {
        $debugFunctions       = array('var_dump', 'print_r', 'var_export');
        $returnDebugFunctions = array('\\print_r', '\\var_export');

        // print_r (but not print_r($a, 1))
        $this->atomFunctionIs($debugFunctions)
             ->outWithRank('ARGUMENT', 1)
             ->is('boolean', false)
             ->atomIsNot(self::CONTAINERS)
             ->back('first');
        $this->prepareQuery();

        $this->atomFunctionIs('\\var_dump')
             ->back('first');
        $this->prepareQuery();

        // (well, we need to check if the result string is not printed now...)
        $this->atomFunctionIs($returnDebugFunctions)
             ->noChildWithRank('ARGUMENT', 1)
             ->back('first');
        $this->prepareQuery();

        // echo '<pre>'.print_r($a, 1);
        $this->atomIs(array('Echo', 'Print'))
             ->atomInsideNoDefinition('Functioncall')
             ->functioncallIs($returnDebugFunctions)
             ->back('first');
        $this->prepareQuery();

//         call_user_func_array('var_dump', )
        $this->atomIs('Functioncall')
             ->functioncallIs(array('\\call_user_func_array', '\\call_user_func'))
             ->outWithRank('ARGUMENT', 0)
             ->noDelimiterIs($debugFunctions)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class UseSystemTmp extends Analyzer {
    public function analyze() {
        $functions = array('\\glob',
                           '\\fopen',
                           '\\file',
                           '\\file_get_contents',
                           '\\file_put_contents',
                           '\\unlink',
                           '\\opendir',
                           '\\rmdir',
                           '\\mkdir',
                           );
        $regexStartWithTmp = '^(/tmp/|C:\\\\\\\\WINDOWS\\\\\\\\TEMP|C:\\\\\\\\WINDOWS)';

        // string literal fopen('a', 'r');
        $this->atomFunctionIs($functions)
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String')
             ->regexIs('noDelimiter', $regexStartWithTmp)
             ->back('first');
        $this->prepareQuery();

        // string literal fopen("a$b", 'r');
        // may need some regex to exclude http...
        $this->atomFunctionIs($functions)
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String')
             ->is('constant', true)
             ->outWithRank('CONCAT', 0)
             ->regexIs('noDelimiter', $regexStartWithTmp)
             ->back('first');
        $this->prepareQuery();

        // string literal fopen('a'.$b, 'r');
        // may need some regex to exclude http...
        $this->atomFunctionIs($functions)
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('Concatenation')
             ->is('constant', true)
             ->outWithRank('CONCAT', 0)
             ->regexIs('noDelimiter', $regexStartWithTmp)
             ->back('first');
        $this->prepareQuery();
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class PlusEgalOne extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/PropagateConstants',
                    );
    }

    public function analyze() {
        // $a += 1; $b -= -1;
        $this->atomIs('Assignation')
             ->codeIs(array('+=', '-='), self::TRANSLATE, self::CASE_SENSITIVE)
             ->outIs('RIGHT')
             ->atomIs('Integer', self::WITH_CONSTANTS)
             ->codeIs(array('1', '-1'), self::TRANSLATE, self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();

        // $a = 1 + $a;
        $this->atomIs('Assignation')
             ->codeIs('=', self::TRANSLATE, self::CASE_SENSITIVE)
             ->outIs('LEFT')
             ->savePropertyAs('fullcode', 'A')
             ->back('first')
             ->outIs('RIGHT')
             ->atomIs('Addition')
             ->as('B')
             ->outIs('LEFT')
             ->atomIs('Integer', self::WITH_CONSTANTS)
             ->codeIs(array('1', '-1'), self::TRANSLATE, self::CASE_SENSITIVE)
             ->back('B')
             ->outIs('RIGHT')
             ->samePropertyAs('fullcode', 'A')
             ->back('first');
        $this->prepareQuery();

        // $b = -1 + $b;
        $this->atomIs('Assignation')
             ->codeIs('=', self::TRANSLATE, self::CASE_SENSITIVE)
             ->outIs('LEFT')
             ->savePropertyAs('fullcode', 'A')
             ->back('first')
             ->outIs('RIGHT')
             ->atomIs('Addition')
             ->as('B')
             ->outIs('RIGHT')
             ->atomIs('Integer', self::WITH_CONSTANTS)
             ->codeIs(array('1', '-1'), self::TRANSLATE, self::CASE_SENSITIVE)
             ->back('B')
             ->outIs('LEFT')
             ->samePropertyAs('fullcode', 'A')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ComparedButNotAssignedStrings extends Analyzer {
    public function analyze() {
        // $a === 'b'
        $this->atomIs('Comparison')
             ->codeIs(array('==', '===', '!=', '!=='))
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs('String')
             ->hasNoOut('CONCAT')
             ->isNot('noDelimiter', '')
             ->values('noDelimiter')
             ->unique();
        $comparedStrings = $this->rawQuery()->toArray();

        $this->atomIs('Assignation')
             ->codeIs(array('='))
             ->outIs('RIGHT')
             ->atomIs('String')
             ->hasNoOut('CONCAT')
             ->isNot('noDelimiter', '')
             ->values('noDelimiter')
             ->unique();
        $assignedStrings = $this->rawQuery()->toArray();

        $unassigned = array_diff($comparedStrings, $assignedStrings);

        if (empty($unassigned)) {
            return;
        }

        $this->atomIs('Comparison')
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs('String')
             ->hasNoOut('CONCAT')
             ->noDelimiterIs(array_values($unassigned));
        $this->prepareQuery();
    }
}

?>
<?php
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class DoubleObjectAssignation extends Analyzer {
    public function analyze() {
        // $a = $b = new C;
        $this->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomIs(array('New', 'Clone'))
             ->back('first');
        $this->prepareQuery();

        // $a = $b = foo(); function foo() : A
        $this->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomIs(self::FUNCTIONS_CALLS)
             ->inIs('DEFINITION')
             ->outIs('RETURNTYPE')
             ->atomIsNot(array('Scalartypehint', 'Void', 'Null'))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class UselessSwitch extends Analyzer {
    public function analyze() {
        $this->atomIs('Switch')
             ->outIs('CASES')
             ->isLess('count', 2)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class DieExitConsistance extends Analyzer {

    public function analyze() {
        $mapping = <<<'GREMLIN'
x2 = it.get().value("fullnspath");
GREMLIN;
        $storage = array('die'  => '\die',
                         'exit' => '\exit');

        $this->atomIs('Exit')
             ->raw('map{ ' . $mapping . ' }')
             ->raw('groupCount("gf").cap("gf").sideEffect{ s = it.get().values().sum(); }');
        $types = $this->rawQuery()->toArray();

        if (empty($types)) {
            return;
        }

        $types = $types[0];

        $store = array();
        $total = 0;
        foreach($storage as $key => $v) {
            $c = empty($types[$v]) ? 0 : $types[$v];
            $store[] = array('key'   => $key,
                             'value' => $c);
            $total += $c;
        }
        $this->datastore->addRowAnalyzer($this->analyzerQuoted, $store);
        if ($total === 0) {
            return;
        }

        $types = array_filter($types, function ($x) use ($total) { return $x > 0 && $x / $total < 0.1; });
        if (empty($types)) {
            return;
        }
        $types = array_keys($types);

        $this->atomIs('Exit')
             ->raw('sideEffect{ ' . $mapping . ' }')
             ->raw('filter{ x2 in ***}', $types)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class WhileListEach extends Analyzer {
    public function analyze() {
        // while (list($a, $b) = each($c)) {}
        $this->atomIs('While')
             ->outIs('CONDITION')
             ->atomIs('Assignation')
             ->as('assignation')
             ->outIs('LEFT')
             ->atomIs('List')
             ->back('assignation')
             ->outIs('RIGHT')
             ->functioncallIs('\\each')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class InconsistentElseif extends Analyzer {
    public function analyze() {
        // if ($a == 1) {} elseif ($b == 2) {}
        $this->atomIs('Ifthen')
             ->isNot('token', 'T_ELSEIF')
             ->outIs('CONDITION')
             ->collectVariables('variables')
             ->back('first')
             ->goToAllElse()
             ->outIs('CONDITION')
             ->collectVariables('variables2')

             ->raw('filter{variables.intersect(variables2) == []}')

             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class NoParenthesisForLanguageConstruct extends Analyzer {
    public function analyze() {
        // inclusions
        // throw
        // return
        // print, echo
        $this->atomIs(array('Echo', 'Print', 'Include', 'Throw', 'Return'))
             ->outIs(array('ARGUMENT', 'THROW', 'RETURN'))
             ->atomIs('Parenthesis')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class NoHardcodedPath extends Analyzer {
    public function analyze() {
        $functions = array('\\fopen',
                           '\\file',
                           '\\file_get_contents',
                           '\\file_put_contents',
                           '\\unlink',
                           '\\opendir',
                           '\\rmdir',
                           '\\mkdir',
                           );
                           //'glob',  is a special case, with wild chars

        $regexPhpProtocol = '^php://(input|output|fd|memory|filter|stdin|stdout|stderr)';
        $regexAllowedProtocol = '^(https|http|php|ssh2|ftp):\\\/\\\/';

        // string literal fopen('a', 'r');
        // may need some regex to exclude protocol...
        $this->atomFunctionIs($functions)
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String')
             ->tokenIs('T_CONSTANT_ENCAPSED_STRING')
             ->regexIsNot('noDelimiter', $regexPhpProtocol)
             ->regexIsNot('noDelimiter', $regexAllowedProtocol)
             ->back('first');
        $this->prepareQuery();

        $this->atomFunctionIs('\\glob')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String')
             ->tokenIs('T_CONSTANT_ENCAPSED_STRING')
             ->regexIsNot('noDelimiter', $regexPhpProtocol)
             ->regexIsNot('noDelimiter', $regexAllowedProtocol)
             ->regexIsNot('noDelimiter', '[\\\?\\\*]')
             ->back('first');
        $this->prepareQuery();

        // string literal fopen("a$b", 'r');
        // may need some regex to exclude http...
        $this->atomFunctionIs($functions)
             ->outWithRank('ARGUMENT', 0)
             ->atomIs(array('String', 'Concatenation'))
             ->tokenIs('T_QUOTE')
             ->outWithRank('CONCAT', 0)
             ->is('constant', true)
             ->tokenIs('T_ENCAPSED_AND_WHITESPACE')
             ->regexIsNot('noDelimiter', $regexPhpProtocol)
             ->regexIsNot('noDelimiter', $regexAllowedProtocol)
             ->back('first');
        $this->prepareQuery();

        // string literal fopen('a'.$b, 'r');
        // may need some regex to exclude http...
        $this->atomFunctionIs($functions)
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('Concatenation')
             ->is('constant', true)
             ->outWithRank('CONCAT', 0)
             ->tokenIs('T_CONSTANT_ENCAPSED_STRING')
             ->regexIsNot('noDelimiter', $regexPhpProtocol)
             ->regexIsNot('noDelimiter', $regexAllowedProtocol)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class DanglingArrayReferences extends Analyzer {
    public function analyze() {
        //foreach($a as &$b) {}
        // No following unset()
        $this->atomIs('Foreach')
             ->outIs('VALUE')
             ->is('reference', true)
             ->savePropertyAs('code', 'array')
             ->back('first')
             ->nextSibling()

            // is it unset($x); ?
            ->not(
                $this->side()
                     ->atomIs('Unset')
                     ->outIs('ARGUMENT')
                     ->samePropertyAs('code', 'array')
            )

            // is is (unset) $x;?
            ->not(
                $this->side()
                     ->atomIs('Cast')
                     ->tokenIs('T_UNSET_CAST')
                     ->outIs('CAST')
                     ->samePropertyAs('code', 'array')
            )

            ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class Bracketless extends Analyzer {

    public function analyze() {
        $this->atomIs('Ifthen')
             ->isNot('alternative', true)
             ->outIs(array('ELSE', 'THEN'))
             ->isNot('bracket', true)
             ->not(
                $this->side()
                     ->is('count', 1)
                     ->outIs('EXPRESSION')
                     ->atomIs('Ifthen')
             )
             ->tokenIsNot('T_ELSEIF')
             ->back('first');
        $this->prepareQuery();

        $this->atomIs(self::LOOPS_ALL)
             ->isNot('alternative', true)
             ->outIs('BLOCK')
             ->isNot('bracket', true)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class OneLineTwoInstructions extends Analyzer {
    public function analyze() {
        // Two expressions in a row
        // except for break, continue, void and inlineHtml
        $this->atomIs('Sequence')
             ->raw(<<<'GREMLIN'
where(
        __.sideEffect{ lines = [:]; }
          .out("EXPRESSION")
          .not(hasLabel("Global", "Const", "Inlinehtml", "Void", "Break", "Continue"))
          .sideEffect{ 
            if (lines[it.get().value("line")] == null) {
               lines[it.get().value("line")] = 1;
            } else {
               ++lines[it.get().value("line")];
            }
          }
          .fold()
          .filter{lines = lines.findAll{ a, b -> b > 1}; lines.size() > 0 ; } 
)
.local(
    __.sideEffect{ prems = [:];}
    .where( 
        __.out('EXPRESSION')
          .not(hasLabel("Global", "Const", "Inlinehtml", "Void", "Break", "Continue"))
          .filter{ it.get().value("line") in lines}
          .sideEffect{ 
        if (prems[it.get().value("line")] == null) { 
            prems[it.get().value("line")] = it.get();
        } else if (prems[it.get().value("line")].value("rank") > it.get().value("rank")) {
            prems[it.get().value("line")] = it.get();
        }
            }.fold()
    )
    .map{prems.values();}.unfold()
)
GREMLIN
);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class DifferencePreference extends Analyzer {
    public function analyze() {
        $different = $this->dictCode->translate(array('!='));

        if (empty($different)) {
            $different = array(-1); // always false
        }

        $mapping = <<<GREMLIN
if (it.get().value("code") == $different[0]) {
    x2 = "!=";
} else {
    x2 = "<>";
}
GREMLIN;
        $storage = array('!='  => '!=',
                         '<>'  => '<>');

        $this->atomIs('Comparison')
             ->codeIs(array('!=', '<>'))
             ->raw('map{ ' . $mapping . ' }')
             ->raw('groupCount("gf").cap("gf").sideEffect{ s = it.get().values().sum(); }');
        $types = $this->rawQuery()->toArray();

        if (empty($types)) {
            return;
        }

        $types = $types[0];

        $store = array();
        $total = 0;
        foreach($storage as $key => $v) {
            $c = empty($types[$v]) ? 0 : $types[$v];
            $store[] = array('key'   => $key,
                             'value' => $c);
            $total += $c;
        }

        $this->datastore->addRowAnalyzer($this->analyzerQuoted, $store);
        if ($total == 0) {
            return;
        }

        $types = array_filter($types, function ($x) use ($total) { return $x > 0 && $x / $total < 0.1; });
        if (empty($types)) {
            return;
        }

        $this->atomIs('Comparison')
             ->codeIs(array('!=', '<>'))
             ->raw('map{ ' . $mapping . ' }')
             ->raw('filter{ x2 in ***}', $types)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class CouldUseShortAssignation extends Analyzer {
    public function analyze() {
        // Commutative operation : Addition
        $this->atomIs('Assignation')
             ->codeIs('=')
             ->outIs('LEFT')
             ->savePropertyAs('fullcode', 'receiver')
             ->inIs('LEFT')
             ->outIs('RIGHT')
             ->atomInsideExpression('Addition')
             ->tokenIs('T_PLUS')
             ->hasNoChildren('Arrayliteral', array( array('LEFT', 'RIGHT')) )
             ->outIsIE(array('LEFT', 'RIGHT', 'CODE'))
             ->samePropertyAs('fullcode', 'receiver', self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();

        // Commutative operation : Multiplication
        $this->atomIs('Assignation')
             ->codeIs('=')
             ->outIs('LEFT')
             ->savePropertyAs('fullcode', 'receiver')
             ->inIs('LEFT')
             ->outIs('RIGHT')
             ->atomInsideExpression('Multiplication')
             ->tokenIs('T_STAR')
             ->outIsIE(array('LEFT', 'RIGHT', 'CODE'))
             ->samePropertyAs('fullcode', 'receiver', self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();

        // Non-Commutative operation
        $this->atomIs('Assignation')
             ->codeIs('=')
             ->outIs('LEFT')
             ->savePropertyAs('fullcode', 'receiver')
             ->inIs('LEFT')
             ->outIs('RIGHT')
             ->outIsIE('CODE') // skip ()
             ->codeIs(array('-', '/', '%', '<<', '>>', '**', '&', '^', '|', '??'))
             ->outIs('LEFT')
             ->outIsIE('CODE') // skip ()
             ->samePropertyAs('fullcode', 'receiver', self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();

        // Special case for .
        $this->atomIs('Assignation')
             ->codeIs('=')
             ->outIs('LEFT')
             ->savePropertyAs('fullcode', 'receiver')
             ->inIs('LEFT')
             ->outIs('RIGHT')
             ->atomIs('Concatenation')
             ->outWithRank('CONCAT', 0)
             ->samePropertyAs('fullcode', 'receiver', self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class UselessInstruction extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/SetClassMethodRemoteDefinition',
                     'Classes/IsaMagicProperty',
                    );
    }

    public function analyze() {
        // Structures that should be put somewhere, and never left alone
        $this->atomIs('Sequence')
             ->hasNoIn('FINAL')
             ->outIs('EXPRESSION')
             ->analyzerIsNot('Classes/IsaMagicProperty')
             ->atomIs(array('Array', 'Addition', 'Multiplication', 'Member', 'Staticproperty', 'Boolean',
                            'Magicconstant', 'Staticconstant', 'Integer', 'Float', 'Sign', 'Nsname',
                            'Identifier', 'String', 'Instanceof', 'Bitshift', 'Comparison', 'Null', 'Logical',
                            'Heredoc', 'Power', 'Spaceship', 'Coalesce', 'Variable', 'Arrayliteral', 'New'))
             ->noAtomInside(array('Functioncall', 'Staticmethodcall', 'Methodcall', 'Assignation', 'Defineconstant', ));
        $this->prepareQuery();

        // foreach($i = 0; $i < 10, $j < 20; $i++)
        $this->atomIs('For')
             ->outIs('FINAL')
             ->outWithoutLastRank()
             ->atomIs(array('Array', 'Addition', 'Multiplication', 'Member', 'Staticproperty', 'Boolean',
                            'Magicconstant', 'Staticconstant', 'Integer', 'Float', 'Sign', 'Nsname',
                            'Identifier', 'String', 'Instanceof', 'Bitshift', 'Comparison', 'Null', 'Logical',
                            'Heredoc', 'Power', 'Spaceship', 'Coalesce', 'New'))
             ->noAtomInside(array('Functioncall', 'Staticmethodcall', 'Methodcall', 'Assignation', ));
        $this->prepareQuery();

        $methods = $this->methods->getFunctionsReferenceArgs();
        $functions = array();
        foreach($methods as $method) {
            $functions[$method['function']] = 1;
        }

        /*
        // foo(1) // except for functions with references
        // Too soon : this must skip functions with side effects : ini_set, echo, rmdir, unlink, etc.
        $this->atomIs('Sequence')
             ->hasNoIn('FINAL')
             ->outIs('EXPRESSION')
             ->atomIs('Functioncall')
             ->fullnspathIsNot(makeFullnspath(array_keys($functions)))
             ->hasIn('DEFINITION')
             ->not(
                $this->side()
                     ->inIs('DEFINITION')
                     ->outIs('ARGUMENT')
                     ->is('reference', true)
             )
             ->noAtomInside(array('Functioncall', 'Staticmethodcall', 'Methodcall', 'Assignation', 'New', ));
        $this->prepareQuery();
        */

/*
        // too soon
        // s::foo(1)
        $this->atomIs('Sequence')
             ->hasNoIn('FINAL')
             ->outIs('EXPRESSION')
             ->atomIs(array('Methodcall', 'Staticmethodcall'))
             ->hasIn('DEFINITION')
             ->not(
                $this->side()
                     ->inIs('DEFINITION')
                     ->outIs('ARGUMENT')
                     ->is('reference', true)
             )
             ->noAtomInside(array('Functioncall', 'Staticmethodcall', 'Methodcall', 'Assignation', 'New', ));
        $this->prepareQuery();
*/

        // -$x = 3
        $this->atomIs('Assignation')
             ->outIs('LEFT')
             ->atomIs('Sign');
        $this->prepareQuery();

        // closures that are not assigned to something (argument or variable)
        $this->atomIs('Sequence')
             ->outIs('EXPRESSION')
             ->atomIs(array('Closure', 'Arrowfunction'));
        $this->prepareQuery();

        // return $a++; (unless it is an argument/use by reference)
        // May also check if it is static or global (those stays).
        $this->atomIs('Return')
             ->outIs('RETURN')
             ->atomIs('Postplusplus')
             ->outIs('POSTPLUSPLUS')
             ->atomIsNot(array('Member', 'Staticproperty'))
             ->not(
                $this->side()
                     ->atomIs('Variable')
                     ->inIs('DEFINITION')
                     ->atomIs(array('Staticdefinition', 'Globaldefinition'))
              )
             ->not(
                $this->side()
                     ->atomIs('Variable')
                     ->inIs('DEFINITION')
                     ->inIsIE('NAME')
                     ->is('reference', true)
              )
             ->back('first');
        $this->prepareQuery();

        // return an argument that is also a reference
        $this->atomIs('Return')
             ->analyzerIsNot('self')
             ->outIs('RETURN')
             ->atomIs('Postplusplus')
             ->outIs('POSTPLUSPLUS')
             ->atomIs('Variable')
             ->not(
                $this->side()
                     ->inIs('DEFINITION')
                     ->atomIs(array('Staticdefinition', 'Globaldefinition'))
              )
             ->not(
                $this->side()
                     ->inIs('DEFINITION')
                     ->inIsIE('NAME')
                     ->is('reference', true)
             )
             ->back('first');
        $this->prepareQuery();

        // return an assigned variable
        // todo : add support for static, referenc argument, global
        $this->atomIs('Return')
             ->analyzerIsNot('self')
             ->atomInsideNoDefinition('Assignation')
             ->outIs('LEFT')
             ->atomIsNot(array('Member', 'Staticproperty', 'Phpvariable'))
             ->hasNoChildren(array('Member', 'Staticproperty', 'Phpvariable'), array('VARIABLE'))
             ->hasNoChildren(array('Member', 'Staticproperty', 'Phpvariable'), array('VARIABLE', 'VARIABLE'))
             ->savePropertyAs('code', 'variable')
            // It is not an argument with reference
             ->isReferencedArgument('variable')
            // it is not a global nor a static
             ->not(
                $this->side()
                     ->atomIs('Variable')
                     ->inIs('DEFINITION')
                     ->atomIs(array('Staticdefinition', 'Globaldefinition'))
              )
             ->back('first');
        $this->prepareQuery();

        // array_merge($a); one argument is useless.
        $this->atomFunctionIs('\\array_replace')
             ->isLess('count', 2)
             ->outWithRank('ARGUMENT',0)
             ->isNot('variadic', true)
             ->back('first');
        $this->prepareQuery();

        // foreach(@$a as $b);
        $this->atomIs('Foreach')
             ->outIs('SOURCE')
             ->is('noscream', true);
        $this->prepareQuery();

        // @$x = 3;
        $this->atomIs('Assignation')
             ->outIs('LEFT')
             ->is('noscream', true);
        $this->prepareQuery();

        // Closure with some operations
        $this->atomIs('Function')
             ->inIs('LEFT')
             ->atomIs(array('Addition', 'Multiplication', 'Power'))
             ->back('first');
        $this->prepareQuery();

        // $x = 'a' . function ($a) {} (Concatenating a closure...)
        $this->atomIs('Function')
             ->inIs('CONCAT')
             ->atomIs('Concatenation')
             ->back('first');
        $this->prepareQuery();

        // New in a instanceof (with/without parenthesis)
        $this->atomIs('New')
             ->inIsIE(array('CODE', 'RIGHT'))
             ->inIs('VARIABLE')
             ->atomIs('Instanceof')
             ->back('first');
        $this->prepareQuery();

        // New in a clone
        $this->atomIs('New')
             ->inIsIE(array('CODE', 'CLONE'))
             ->atomIs('Clone');
        $this->prepareQuery();

        // Empty string in a concatenation
        $this->atomIs('Concatenation')
             ->outIs('CONCAT')
             ->outIsIE('CODE') // skip parenthesis
             ->codeIs(array("''", '""'))
             ->back('first');
        $this->prepareQuery();

        // array_unique(array_keys())
        $this->atomFunctionIs('\\array_unique')
             ->outWithRank('ARGUMENT', 0)
             ->functioncallIs('\\array_keys')
             ->back('first');
        $this->prepareQuery();

        $this->atomFunctionIs('\\count')
             ->outWithRank('ARGUMENT', 0)
             ->functioncallIs(array('\\array_keys',
                                    '\\array_values',
                                    '\\array_flip',
                                    '\\array_fill',
                                    '\\array_walk',
                                    '\\array_map',
                                    '\\array_change_key_case',
                                    '\\array_combine',
                                    '\\array_multisort',
                                    '\\array_replace',
                                    '\\array_reverse',
                                    ))
             ->back('first');
        $this->prepareQuery();

        // $a = $b ? 'c' : $a = 3;
        $this->atomIs('Assignation')
             ->outIs('LEFT')
             ->savePropertyAs('fullcode', 'var')
             ->back('first')

             ->outIs('RIGHT')
             ->atomIs(array('Ternary', 'Coalesce'))
             ->outIs(array('THEN', 'ELSE', 'RIGHT'))
             ->atomIs('Assignation')
             ->outIs('LEFT')
             ->samePropertyAs('fullcode', 'var')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class AlternativeConsistenceByFile extends Analyzer {
    public function analyze() {
        $atoms = array('Ifthen', 'Foreach', 'For', 'Switch', 'While', 'Declare');
        // Do...While has no alternative syntax.

        // $this->linksDown is important here.
        $this->atomIs('File')
             ->initVariable('normal', 0)
             ->initVariable('alt', 0)
             ->filter(
                $this->side()
                     ->atomInside($atoms)
                     ->raw(<<<'GREMLIN'
or( __.has("alternative").sideEffect{ alt = alt + 1; },
    __.sideEffect{ normal = normal + 1; })
GREMLIN
)
                     ->raw('fold()')
             )
            ->raw('filter{ normal > 0 && alt > 0 }')
            ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class EmptyBlocks extends Analyzer {
    public function analyze() {
        // Block with only one empty expression
        // Block with only empty expressions
        $this->atomIs(array('For', 'While', 'Foreach', 'Dowhile', 'Declare', 'Namespace', 'Declare', 'Switch'))
             ->not(
                $this->side()
                     ->outIs('DECLARE')
                     ->outIs('NAME')
                     ->codeIs('strict_types')
             )
             ->outIs(array('CASES', 'BLOCK'))
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->outIs('EXPRESSION')
                             ->atomIsNot('Void')
                     )
             )
             ->back('first');
        $this->prepareQuery();

        // Empty block on ifthen
        $this->atomIs('Ifthen')
             ->outIs(array('THEN', 'ELSE'))
             ->atomIs('Sequence')
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->outIs('EXPRESSION')
                             ->atomIsNot('Void')
                     )
             )
             ->back('first')
             ->inIsIE('ELSE');
        $this->prepareQuery();

    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ShouldUseForeach extends Analyzer {
    public function analyze() {
        // for($i = 0; $i < $n; ++$i) {}
        $this->atomIs('For')

             ->outIs('INIT')
             ->outIs('EXPRESSION')
             ->atomIs('Assignation')
             ->as('init')
             ->outIs('RIGHT')
             ->codeIs('0')
             ->back('init')
             ->outIs('LEFT')
             ->atomIs('Variable')
             ->savePropertyAs('code', 'blind')
             ->back('first')

             ->outIs('INCREMENT')
             ->outIs('EXPRESSION')
             ->atomIs(array('Postplusplus', 'Preplusplus'))
             ->outIs(array('POSTPLUSPLUS', 'PREPLUSPLUS'))
             ->samePropertyAs('code', 'blind')
             ->back('first')

             ->outIs('BLOCK')
             ->outIs('EXPRESSION')
             ->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomIs('Array')
             ->outIs('INDEX')
             ->atomIs('Variable')
             ->samePropertyAs('code', 'blind')
             ->back('first');
        $this->prepareQuery();

        //while($value = array_shift($array))
        $this->atomIs(array('Dowhile', 'While'))
             ->outIs('CONDITION')
             ->atomIs('Assignation')
             ->outIs('RIGHT')
             ->functioncallIs(array('\\array_shift',
                                    '\\array_pop',
                                    ))
             ->back('first');
        $this->prepareQuery();

        //while(!empty($array)) {$value = array_shift($array)}
        $this->atomIs(array('Dowhile', 'While'))
             ->outIs('CONDITION')
             ->atomIs('Not')
             ->outIs('NOT')
             ->atomIs('Empty')
             ->outIs('ARGUMENT')
             ->atomIs('Variable')
             ->savePropertyAs('code', 'variable')
             ->back('first')
             ->outIs('BLOCK')
             ->atomInside('Functioncall')
             ->functioncallIs(array('\\array_shift',
                                    '\\array_pop',
                                    ))
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('Variable')
             ->samePropertyAs('code', 'variable')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class IsZero extends Analyzer {
    public function analyze() {
        // $a = $c - $c;
        // $a = $c + $d - $c;
        // $a = $c + $d -$e - $c;
        // $a = $d + $c -$e - $c;
        $minus = $this->dictCode->translate(array('-'));

        if (empty($minus)) {
            return;
        }

        $MAX_LOOPING = self::MAX_LOOPING;
        $labels = array('Variable',
                        'Integer',
                        'Member',
                        'Float',
                        'Staticproperty',
                        'Array',
                        'Functioncall',
                        'Staticmethodcall',
                        'Methodcall',
                        );
        $labelsList = makeList($labels);

        $this->atomIs('Addition')
             ->hasNoParent('Addition', array('LEFT'))
             ->hasNoParent('Addition', array('RIGHT'))
             ->raw(<<<GREMLIN
sideEffect{x = [:]; id2 = it.get().id();}
.where(
   __.sideEffect{ previous = 1; supervious = 1;}
     .repeat(
       __.where( __.sideEffect{ if (it.get().value("code") == $minus[0]) { p = -1; } else { p = 1;}}.out("LEFT", "RIGHT").hasLabel("Addition").sideEffect{ previous = p;}.fold())
         .where( __.sideEffect{ if (it.get().value("code") == $minus[0]) { p = -1; } else { p = 1;}}.out("SIGN").sideEffect{ previous = p;}.fold())
         .where( __.sideEffect{ if (it.get().value("code") == $minus[0]) { p = -1; } else { p = 1;}}.out("LEFT", "RIGHT", "CODE", "SIGN").hasLabel("Assignation", "Parenthesis", "Sign").sideEffect{ previous = 1; supervious *= p;}.fold())
         .not(hasLabel("Multiplication"))
         .out("LEFT", "RIGHT", "CODE", "SIGN")
   )
    .emit().times($MAX_LOOPING)
    .hasLabel($labelsList).not(where( __.in("LEFT").hasLabel("Assignation")))
    .sideEffect{ v = it.get().value("fullcode");}

    .where(__.in("RIGHT").sideEffect{ if (it.get().value("token") == 'T_MINUS') { inc = -1; } else { inc = 1;} }.fold())
    .where(__.in("LEFT").not(where(__.in("RIGHT"))).sideEffect{ inc = 1;}.fold())
    .where(__.in("LEFT").in("RIGHT").sideEffect{ if (it.get().value("token") == 'T_MINUS') { inc = -1; } else { inc = 1;} }.fold())
    .where(__.in("SIGN").sideEffect{ inc = previous * supervious;}.fold())
    .where(__.in("CODE").sideEffect{ inc = supervious;}.fold())

    .sideEffect{ 
        if ((v =~ "-" ).getCount() != 0 ) {
            inc *=  -1;
        }
        
        v = v.replaceAll('\\\+', '').replaceAll('\\\-', ''); 
        
        if (x[v] == null) {
           x[v] = 0;
        }
        
        x[v] += inc; 
    
    }
    .fold()
)
.filter{ x.findAll{a,b -> b == 0} != [:]; }

GREMLIN
);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class OrDie extends Analyzer {
    public function dependsOn(): array {
        return array('Structures/NoDirectAccess');
    }

    public function analyze() {
        $this->atomIs('Logical')
             ->analyzerIsNot('Structures/NoDirectAccess')
             ->codeIs(array('or', '||'))
             ->outIs('RIGHT')
             ->atomIs('Exit')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class DuplicateCalls extends Analyzer {
    public function analyze() {
        // This is counting ALL occurences as itself.
        $atoms = array('Methodcall', 'Functioncall');

        foreach($atoms as $atom) {
            $calls = $this->query('g.V().hasLabel("' . $atom . '").not( where( __.in("METHOD") ) )
                                      .groupCount("m").by("fullcode").cap("m").next().findAll{ it.value >= 2; }.keySet()');
            $calls = $calls->toArray();
            if (empty($calls)) {
                continue;
            }

            $this->atomIs($atom)
                 ->hasNoIn('METHOD')
                 ->is('fullcode', $calls);
            $this->prepareQuery();
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class DontMixPlusPlus extends Analyzer {
    public function analyze() {
        // $a[$i++] = --$o + $b--;
        $this->atomIs(array('Postplusplus', 'Preplusplus'))
             ->inIs()
             ->atomIsNot(array('Array', 'Sequence', 'Analysis'));
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class CoalesceAndConcat extends Analyzer {
    public function analyze() {
        // 'a' . $b ?? 'c'
        $this->atomIs('Coalesce')
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs('Concatenation')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ConstantComparisonConsistance extends Analyzer {

    public function analyze() {
        $literalsList = makeList(self::LITERALS);
        $mapping = <<<GREMLIN
if (it.get().vertices(OUT, "LEFT").next().label() in [$literalsList]) { 
    x2 = "left"; 
} else if (it.get().vertices(OUT, "RIGHT").next().label() in [$literalsList]) { 
    x2 = "right"; 
} else {
    x2 = it.get().value("fullcode");
}

GREMLIN;
        $storage = array('To the left'  => 'left',
                         'To the right' => 'right');

        $this->atomIs('Comparison')
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs(self::LITERALS)
             ->back('first')
             ->raw('map{ ' . $mapping . ' }')
             ->raw('groupCount("gf").cap("gf").sideEffect{ s = it.get().values().sum(); }');
        $types = $this->rawQuery()->toArray();

        if (empty($types)) {
            return;
        }

        $types = $types[0];

        $store = array();
        $total = 0;
        foreach($storage as $key => $v) {
            $c = empty($types[$v]) ? 0 : $types[$v];
            $store[] = array('key'   => $key,
                             'value' => $c);
            $total += $c;
        }
        $this->datastore->addRowAnalyzer($this->analyzerQuoted, $store);

        if ($total == 0) {
            return;
        }

        $types = array_filter($types, function ($x) use ($total) { return $x > 0 && $x / $total < 0.1; });
        if (empty($types)) {
            return;
        }
        $types = array_keys($types);

        $this->atomIs('Comparison')
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs(self::LITERALS)
             ->back('first')
             ->raw('sideEffect{ ' . $mapping . '; }')
             ->raw('filter{ x2 in *** ; }', $types)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class NoReturnInFinally extends Analyzer {
    public function analyze() {
        // try {} catch () {} finally { return 1; }
        $this->atomIs('Finally')
             ->hasAtomInside(array('Return', 'Throw'));
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class SGVariablesConfusion extends Analyzer {
    /* PHP version restrictions
    protected $phpVersion = '7.4-';
    */

    /* List dependencies 
    public function dependsOn() : array {
        return array('Category/Analyzer',
                     '',
                    );
    }
    */

    public function analyze() {
        // function foo() { $a = 1; global $a; static $a; }
        $this->atomIs('Variabledefinition')
             ->filter(
                $this->side()
                     ->inIs(array('STATIC', 'GLOBAL'))
                     ->raw('count().is(gt(0))')
             )
             ->inIs(array('STATIC', 'GLOBAL'));
        $this->prepareQuery();

        // function foo() { global $a; static $a; }
        $this->atomIs(array('Staticdefinition', 'Globaldefinition'))
             ->hasIn('STATIC')
             ->hasIn('GLOBAL');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class toStringThrowsException extends Analyzer {
    protected $phpVersion = '7.4-';

    public function analyze() {
        // class x { function __tostring() { throw new Exception(); }}
        $this->atomIs('Magicmethod')
             ->outIs('NAME')
             ->codeIs('__toString', self::TRANSLATE, self::CASE_INSENSITIVE)
             ->inIs('NAME')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Throw')
             ->hasNoTryCatch()
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class UnreachableCode extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/PropagateConstants',
                     'Functions/KillsApp',
                     'Structures/AlwaysFalse',
                    );
    }

    public function analyze() {
        // code after a halt_compiler is expected to be unreachable.
        $finalTokens = array('Gotolabel', 'Class', 'Function', 'Interface', 'Trait');

        // anything directly after those
        $this->atomIs(array('Return', 'Throw', 'Break', 'Continue', 'Goto', 'Exit'))
             ->nextSiblings()
             ->atomIsNot($finalTokens);
        $this->prepareQuery();

        // anything directly after the try of a finally
        $this->atomIs(array('Return', 'Throw', 'Break', 'Continue', 'Goto', 'Exit'))
             ->inIs('EXPRESSION')
             ->inIs('BLOCK')
             ->atomIs('Finally')
             ->inIs('FINALLY')
             ->atomIs('Try')
             ->nextSiblings()
             ->atomIsNot($finalTokens);
        $this->prepareQuery();

        $this->atomFunctionIs('\\assert')
             ->outWithRank('ARGUMENT', 0)
             ->is('constant', true)
             ->is('boolean', false)
             ->inIs('ARGUMENT')
             ->nextSiblings()
             ->atomIsNot($finalTokens);
        $this->prepareQuery();

        $this->atomIs('Functioncall')
             ->hasNoIn('METHOD')
             ->tokenIs(array('T_STRING', 'T_NS_SEPARATOR'))
             ->functionDefinition()
             ->analyzerIs('Functions/KillsApp')
             ->back('first')
             ->nextSibling()
             ->atomIsNot($finalTokens);
        $this->prepareQuery();

        $this->atomIs('Ifthen')
             ->outIs('THEN')
             ->outIs('EXPRESSION')
             ->atomIs(array('Return', 'Continue', 'Break', 'Exit'))
             ->back('first')
             ->outIs('ELSE')
             ->outIs('EXPRESSION')
             ->atomIs(array('Return', 'Continue', 'Break', 'Exit'))
             ->back('first')
             ->nextSibling()
             ->atomIsNot($finalTokens)
             ->back('first');
        $this->prepareQuery();

        // function foo(array $a) { if ($a === 3) { }}
        $this->atomIs('Ifthen')
             ->outIs('CONDITION')
             ->analyzerIs('Structures/AlwaysFalse')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class AlwaysFalse extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/PropagateConstants',
                    );
    }

    public function analyze() {
        $conf = array('\\array'   => array('Boolean', 'String', 'Integer', 'Float'),
                      '\\int'     => array('Boolean', 'String', 'Arrayliteral', 'Float'),
                      '\\float'   => array('Boolean', 'String', 'Arrayliteral', 'Integer'),
                      '\\bool'    => array('Float', 'String', 'Arrayliteral', 'Integer'),
                      '\\string'  => array('Float', 'Boolean', 'Arrayliteral', 'Integer'),
                    );

        foreach($conf as $typehint => $atoms) {

            // function foo(array $a) { if ($a === 'b')}
            $this->atomIs('Parameter')
                 ->isNullable()
                 ->outIs('TYPEHINT')
                 ->fullnspathIs($typehint)
                 ->back('first')

                 ->outIs('NAME')
                 ->outIs('DEFINITION')
                 ->inIs(array('LEFT', 'RIGHT'))
                 ->atomIs('Comparison')
                 ->as('results')
                 ->codeIs(array('===', '!=='), self::CASE_SENSITIVE)
                 ->outIs(array('LEFT', 'RIGHT'))
                 ->atomIs($atoms, self::WITH_CONSTANTS)
                 ->back('results');
            $this->prepareQuery();

            $atomsWithNull = array_merge($atoms, array('Null'));
            // function foo(array $a) { if ($a === 'b')}
            $this->atomIs('Parameter')
                 ->isNotNullable()
                 ->not(
                    $this->side()
                         ->outIs('DEFAULT')
                         ->hasNoIn('RIGHT')
                         ->atomIs('Null')
                 )
                 ->outIs('TYPEHINT')
                 ->fullnspathIs($typehint)
                 ->back('first')

                 ->outIs('NAME')
                 ->outIs('DEFINITION')
                 ->inIs(array('LEFT', 'RIGHT'))
                 ->atomIs('Comparison')
                 ->as('results')
                 ->codeIs(array('===', '!=='), self::CASE_SENSITIVE)
                 ->outIs(array('LEFT', 'RIGHT'))
                 ->atomIs($atomsWithNull, self::WITH_CONSTANTS)
                 ->back('results');
            $this->prepareQuery();
        }

        $functions = array('\is_array', '\is_int', '\is_float', '\is_bool', '\is_string', '\is_scalar');
        // function foo(array $a) { if (is_array($a))}
        $this->atomIs('Parameter')
             ->isNotNullable()
             ->not(
                $this->side()
                     ->outIs('DEFAULT')
                     ->hasNoIn('RIGHT')
                     ->atomIs('Null')
             )
             ->outIs('TYPEHINT')
             ->fullnspathIs(array_keys($conf))
             ->back('first')

             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->inIs('ARGUMENT')
             ->functioncallIs($functions)
             ;
        $this->prepareQuery();

        $functionsWithNull = array_merge($functions, array('is_null'));
        $this->atomIs('Parameter')
                ->isNullable()
             ->outIs('TYPEHINT')
             ->fullnspathIs(array_keys($conf))
             ->back('first')

             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->inIs('ARGUMENT')
             ->functioncallIs($functionsWithNull);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class SetlocaleNeedsConstants extends Analyzer {
    public function analyze() {
        $allowedConstants = array('\\LC_ALL',
                                  '\\LC_COLLATE',
                                  '\\LC_CTYPE',
                                  '\\LC_MONETARY',
                                  '\\LC_NUMERIC',
                                  '\\LC_TIME',
                                  '\\LC_MESSAGES');

        // something else than a constant
        $this->atomFunctionIs('\\setlocale')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs(array('String', 'Heredoc', 'Concatenation'))
             ->back('first');
        $this->prepareQuery();

        $this->atomFunctionIs('\\setlocale')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs(array('Identifier', 'Nsname'))
             ->fullnspathIsNot($allowedConstants)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ForeachNeedReferencedSource extends Analyzer {
    public function analyze() {
        $this->atomIs('Foreach')
             ->outIs('SOURCE')
             ->atomIsNot(array('Variable', 'Array', 'Staticproperty', 'Member'))
             ->inIs('SOURCE')
             ->outIs('VALUE')
             ->is('reference', true)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class NoArrayUnique extends Analyzer {
    protected $phpVersion = '7.2-';

    public function analyze() {
        // array_unique();
        $this->atomFunctionIs('\\array_unique');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ShouldPreprocess extends Analyzer {
    public function dependsOn(): array {
        return array('Constants/IsPhpConstant',
                    );
    }

    public function analyze() {
        $dynamicAtoms = array('Variable',
                              'Array',
                              'Member',
                              'Magicconstant',
                              'Staticmethodcall',
                              'Staticproperty',
                              'Methodcall',
                              );
        //'Functioncall' : if they also have only constants.

        $functionList = $this->methods->getDeterministFunctions();
        $functionList = makeFullNsPath($functionList);

        // Operator only working on constants
        $this->atomIs(array('Addition',
                            'Multiplication',
                            'Concatenation',
                            'Power',
                            'Bitshift',
                            'Logical',
                            'Not',
                            'Comparison',
                            ))
             ->hasNoInstruction('Constant')

            // Filter functioncalls, that are not authorized
             ->noAtomWithoutPropertyInside('Functioncall', 'fullnspath', $functionList)

            // Filter php constants
             ->noAnalyzerInside(array('Identifier', 'Nsname'), 'Constants/IsPhpConstant')

            // PHP Constants are not authorized
             ->noAtomInside($dynamicAtoms);
        $this->prepareQuery();

        $functionListNoArray = array_diff($functionList,
                array('\\defined',
                      '\\error_reporting',
                      '\\extension_loaded',
                      '\\get_defined_vars',
                      '\\print',
                      '\\echo',
                      '\\set_time_limit',
                      ));
        $functionListNoArray = array_values($functionListNoArray);

        // Function only applied to constants
        $this->atomFunctionIs($functionListNoArray)
             ->is('constant', true)
             ->back('first');
        $this->prepareQuery();

        // Concatenations of literals
        $this->atomIs('Assignation')
             ->codeIs(array('=', '.='), self::TRANSLATE, self::CASE_SENSITIVE)
             ->outIs('RIGHT')
             ->isLiteral()
             ->is('constant', true)
             ->back('first')
             ->outIs('LEFT')
             ->savePropertyAs('fullcode', 'variable')
             ->back('first')
             ->nextSibling('EXPRESSION')
             ->atomIs('Assignation')
             ->codeIs('.=', self::TRANSLATE, self::CASE_SENSITIVE)
             ->outIs('LEFT')
             ->samePropertyAs('fullcode', 'variable', self::CASE_SENSITIVE)
             ->inIs('LEFT')
             ->outIs('RIGHT')
             ->isLiteral()
             ->is('constant', true)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
declare(strict_types = 1);

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class Break0 extends Analyzer {
    protected $phpVersion = '5.4-';

    public function analyze() {
        $this->atomIs('Break')
             ->outIs('LEVEL')
             ->atomIs('Integer')
             ->codeIs('0')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class YodaComparison extends Analyzer {
    public function analyze() {
        $literals = array('String', 'Integer', 'Float', 'Boolean', 'Null', 'Identifier', 'Nsname');

        $this->atomIs('Comparison')
             ->codeIs(array('==', '==='))
             ->outIs('RIGHT')
             ->atomIs($literals)
             ->inIs('RIGHT')
             ->outIs('LEFT')
             ->atomIs(array_merge(self::VARIABLES_ALL, array('Array')))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Common\FunctionUsage;

class PhpinfoUsage extends FunctionUsage {
    public function analyze() {
        $this->functions = array('phpinfo');

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class PropertyVariableConfusion extends Analyzer {
    public function analyze() {
        // public $x = 3; static or not
        $this->atomIs('Propertydefinition')
             ->savePropertyAs('code', 'name')
             ->inIs('PPP')
             ->inIs('PPP')
             ->atomIs(self::CLASSES_TRAITS)
             ->outIs(array('METHOD', 'MAGICMETHOD'))
             ->outIs('DEFINITION')
             ->atomIs('Variabledefinition')
             ->samePropertyAs('code', 'name')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class IfWithSameConditions extends Analyzer {
    public function analyze() {
        $this->atomIs('Ifthen')
             ->outIs('CONDITION')
             ->savePropertyAs('fullcode', 'condition')
             ->inIs('CONDITION')
             ->nextSibling()
             ->outIs('CONDITION')
             ->samePropertyAs('fullcode', 'condition')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class NoAssignationInFunction extends Analyzer {
    public function analyze() {
        // function foo() { $a = array(1, ... 2000);}
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Arrayliteral')
             ->isMore('count', 10)
             ->inIs('RIGHT')
             ->atomIs('Assignation')
             ->outIs('LEFT')
             ->atomIs('Variable')
             // Check that variable is local
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class OneLevelOfIndentation extends Analyzer {
    public function analyze() {
        $atoms = array('Ifthen', 'Foreach', 'For', 'While', 'Dowhile', 'Switch');
        $blocks = array('THEN', 'ELSE', 'BLOCK', 'CASES');

        // function foo() { if ($a === 1) { if ($b === 2) {}}}
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('BLOCK')
             ->outIs('EXPRESSION')
             ->atomIs($atoms)
             ->outIs($blocks)
             ->outIs('EXPRESSION')
             ->outIsIE('CODE')
             ->outIsIE('EXPRESSION')
             ->atomIs($atoms)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class NestedIfthen extends Analyzer {
    protected $nestedIfthen = 3;

    public function analyze() {
        $this->nestedIfthen = abs((int) $this->nestedIfthen);
        $this->nestedIfthen = $this->nestedIfthen === 0 ? 1 : $this->nestedIfthen;

        // 3 level of ifthen (2 is OK)
        $this->atomIs('Ifthen')
             ->tokenIsNot('T_ELSEIF');

        // Skip the first one
        for ($i = 1; $i < $this->nestedIfthen; ++$i) {
            $this->outIs(array('THEN', 'ELSE'))
                 ->atomInsideNoDefinition('Ifthen')
                 ->tokenIsNot('T_ELSEIF');
        }

        $this->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ShouldUseExplodeArgs extends Analyzer {
    public function analyze() {
        // $c = explode('a', $string); array_pop($c)
        $this->atomFunctionis('\\explode')
             ->NoChildWithRank('ARGUMENT', 2)
             ->inIs('RIGHT')
             ->atomIs('Assignation')

             ->outIs('LEFT')
             ->atomIs('Variable')
             ->savePropertyAs('code', 'name')
             ->inIs('LEFT')

             ->nextSibling('EXPRESSION')
             ->functioncallIs('\\array_pop')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('Variable')
             ->samePropertyAs('code', 'name')
             ->back('first');
        $this->prepareQuery();

        // $c = explode('a', $string); array_slice($c, 0, -3)
        $this->atomFunctionis('\\explode')
             ->NoChildWithRank('ARGUMENT', 2)
             ->inIs('RIGHT')
             ->atomIs('Assignation')

             ->outIs('LEFT')
             ->atomIs('Variable')
             ->savePropertyAs('code', 'name')
             ->inIs('LEFT')

             ->nextSibling('EXPRESSION')
             ->atomIs('Assignation')
             ->outIs('RIGHT')
             ->functioncallIs('\\array_slice')
             ->outWithRank('ARGUMENT', 2)
             ->atomIs('Integer', self::WITH_CONSTANTS)
             ->isLess('intval', 0)
             ->back('first');
        $this->prepareQuery();

        // list($a, $b, ) = explode('a', $string);
        $this->atomFunctionis('\\explode')
             ->NoChildWithRank('ARGUMENT', 2)
             ->inIs('RIGHT')
             ->atomIs('Assignation')

             ->outIs('LEFT')
             ->atomIs('List')
             ->outWithRank('ARGUMENT', 'last')
             ->atomIs('Void')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class UnsupportedOperandTypes extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/PropagateConstants',
                     'Complete/SetClassPropertyDefinitionWithTypehint',
                     'Complete/SetClassRemoteDefinitionWithLocalNew',
                    );
    }

    public function analyze() {
        // const A = 1; $b = A + array();
        $this->atomIs('Addition')
             ->analyzerIsNot('self')
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs('Arrayliteral')
             ->back('first')
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs(array('Identifier', 'Nsname', 'Staticconstant'))
             ->goToLiteralValue()
             ->atomIsNot('Arrayliteral')
             ->back('first');
        $this->prepareQuery();

        // const A = array(); $b = 1 + array();
        $this->atomIs('Addition')
             ->analyzerIsNot('self')
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs(array('String', 'Integer', 'Float', 'Boolean'))
             ->back('first')
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs(array('Identifier', 'Nsname', 'Staticconstant'))
             ->goToLiteralValue()
             ->atomIs('Arrayliteral')
             ->back('first');
        $this->prepareQuery();

        // $b = 1 + foo(); function foo() : array {}
        $this->atomIs('Addition')
             ->analyzerIsNot('self')
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs(array('String', 'Integer', 'Float', 'Boolean'))
             ->back('first')
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs(self::CALLS)
             ->inIs('DEFINITION')
             ->outIs('RETURNTYPE')
             ->atomIs('Scalartypehint')
             ->fullnspathIs('\\array')
             ->back('first');
        $this->prepareQuery();

        // $b = 1 + $o->p; class b { public array $p; }
        $this->atomIs('Addition')
             ->analyzerIsNot('self')
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs(array('String', 'Integer', 'Float', 'Boolean'))
             ->back('first')
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs(array('Member', 'Staticmember'))
             ->inIs('DEFINITION')
             ->inIs('PPP')
             ->outIs('TYPEHINT')
             ->atomIs('Scalartypehint')
             ->fullnspathIs('\\array')
             ->back('first');
        $this->prepareQuery();

        // function foo(array $a) { $b = 1 + $a; }
        $this->atomIs('Addition')
             ->analyzerIsNot('self')
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs(array('String', 'Integer', 'Float', 'Boolean'))
             ->back('first')
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs('Variable')
             ->inIs('DEFINITION')
             ->inIs('NAME')
             ->outIs('TYPEHINT')
             ->atomIs('Scalartypehint')
             ->fullnspathIs('\\array')
             ->back('first');
        $this->prepareQuery();

        // function foo($a = array()) { $b = 1 + $a; }
        $this->atomIs('Addition')
             ->analyzerIsNot('self')
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs(array('String', 'Integer', 'Float', 'Boolean'))
             ->back('first')
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs('Variable')
             ->inIs('DEFINITION')
             ->inIs('NAME')
             ->outIs('DEFAULT')
             ->atomIs('Arrayliteral', self::WITH_CONSTANTS)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class JsonWithOption extends Analyzer {
    // (array) json_decode()
    public function analyze() {
        $this->atomFunctionIs('\json_decode')
             ->inIs('CAST')
             ->tokenIs(array('T_OBJECT_CAST', 'T_ARRAY_CAST'));
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class AlteringForeachWithoutReference extends Analyzer {
    public function analyze() {
        // foreach($a as $k => $v) { $a[$k] += 1;}
        $this->atomIs('Foreach')
             ->outIs('SOURCE')
             ->atomIs('Variable')
             ->savePropertyAs('code', 'source')
             ->inIs('SOURCE')

             ->outIs('INDEX')
             ->savePropertyAs('code', 'k')
             ->back('first')

             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Array')
             ->not(
                $this->side()
                     ->inIs('CAST')
                     ->atomIs('Cast')
                     ->tokenIs('T_UNSET_CAST')
             )
             ->not(
                $this->side()
                     ->inIs('ARGUMENT')
                     ->atomIs('Unset')
             )
             ->is('isModified', true)

             ->outIs('VARIABLE')
             ->samePropertyAs('code', 'source')
             ->inIs('VARIABLE')

             ->outIs('INDEX')
             ->samePropertyAs('code', 'k')

             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class NotOrNot extends Analyzer {

    public function analyze() {
        $mapping = <<<'GREMLIN'
x2 = it.get().value("token");
GREMLIN;
        $storage = array('bang'  => 'T_BANG',
                         'tilde' => 'T_TILDE');

        $this->atomIs('Not')
             ->raw('map{ ' . $mapping . ' }')
             ->raw('groupCount("gf").cap("gf").sideEffect{ s = it.get().values().sum(); }');
        $types = $this->rawQuery()->toArray();

        if (empty($types)) {
            return;
        }

        $types = $types[0];

        $store = array();
        $total = 0;
        foreach($storage as $key => $v) {
            $c = empty($types[$v]) ? 0 : $types[$v];
            $store[] = array('key'   => $key,
                             'value' => $c);
            $total += $c;
        }
        $this->datastore->addRowAnalyzer($this->analyzerQuoted, $store);
        if ($total === 0) {
            return;
        }

        $types = array_filter($types, function ($x) use ($total) { return $x > 0 && $x / $total < 0.1; });
        if (empty($types)) {
            return;
        }
        $types = array_keys($types);

        $this->atomIs('Not')
             ->raw('sideEffect{ ' . $mapping . ' }')
             ->raw('filter{ x2 in ***}', $types)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class NoVariableIsACondition extends Analyzer {
    public function analyze() {
        // if ($a) {}
        $this->atomIs(self::VARIABLES_ALL)
             ->inIsIE('CODE')
             ->inIs('CONDITION')
             ->atomIsNot('Switch');
        $this->prepareQuery();

        $this->atomIs(self::VARIABLES_ALL)
             ->inIsIE('CODE')
             ->inIs('EXPRESSION')
             ->inIs('FINAL')
             ->atomIs('For');
        $this->prepareQuery();

        $this->atomIs(self::VARIABLES_ALL)
             ->inIsIE('CODE')
             ->inIs(array('LEFT', 'RIGHT'))
             ->atomIs('Logical')
             ->tokenIs(array('T_LOGICAL_AND', 'T_LOGICAL_OR', 'T_LOGICAL_XOR'))
             ->hasNoIn('CONDITION');
        $this->prepareQuery();

        $this->atomIs(self::VARIABLES_ALL)
             ->inIsIE('CODE')
             ->inIs('NOT')
             ->atomIs('Not')
             ->tokenIs('T_BANG');
        $this->prepareQuery();

    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class CouldUseDir extends Analyzer {
    public function analyze() {
        $this->atomFunctionIs('\\dirname')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('Magicconstant')
             ->codeIs('__FILE__')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class OneExpressionBracketsConsistency extends Analyzer {

    public function analyze() {
        $mapping = <<<'GREMLIN'
if (it.get().properties('bracket').size() > 0) {
    x2 = 'with'; 
} else {
    x2 = 'without'; 
}
GREMLIN;
        $storage = array('Bracketed'   => 'with',
                         'Bracketless' => 'without');

        $this->atomIs(array('For', 'Foreach', 'While', 'Dowhile', 'Ifthen'))
             ->outIs(array('BLOCK', 'THEN', 'ELSE'))
             ->atomIs('Sequence')
             ->is('count', 1)
             ->raw('map{ ' . $mapping . ' }')
             ->raw('groupCount("gf").cap("gf").sideEffect{ s = it.get().values().sum(); }');
        $types = $this->rawQuery()->toArray();

        if (empty($types)) {
            return;
        }
        $types = $types[0];

        $store = array();
        $total = 0;
        foreach($storage as $key => $v) {
            $c = empty($types[$v]) ? 0 : $types[$v];
            $store[] = array('key'   => $key,
                             'value' => $c);
            $total += $c;
        }
        $this->datastore->addRowAnalyzer($this->analyzerQuoted, $store);

        if ($total == 0) {
            return;
        }

        $types = array_filter($types, function ($x) use ($total) { return $x > 0 && $x / $total < 0.1; });
        if (empty($types)) {
            return;
        }

        $this->atomIs(array('For', 'Foreach'))
             ->outIs('BLOCK')
             ->atomIs('Sequence')
             ->is('count', 1)
             ->raw('sideEffect{ ' . $mapping . ' }')
             ->raw('filter{ x2 in ***}', $types)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class CouldBeStatic extends Analyzer {
    public function dependsOn(): array {
        return array('Structures/GlobalInGlobal',
                    );
    }

    public function analyze() {
        $this->atomIs('Globaldefinition')
             ->raw('groupCount("m").by("code").cap("m").next().findAll{ a,b -> b == 1}.keySet()');
        $result = $this->rawQuery();
        $uniqueGlobals = $result->toArray();

        $this->atomIs('Array')
             ->values('globalvar');
        $result = $this->rawQuery();
        $globalvar = $result->toArray();

        $this->atomIs(array('Variable', 'Globaldefinition'))
             ->analyzerIs('Structures/GlobalInGlobal')
             ->values('code');
        $result = $this->rawQuery();
        $implicitvar = $result->toArray();

        $uniqueGlobals = array_values(array_diff($uniqueGlobals, $globalvar, $implicitvar));
        $superglobals = $this->loadIni('php_superglobals.ini', 'superglobal');

        $this->atomIs('Globaldefinition')
             ->codeIsNot($superglobals, self::TRANSLATE, self::CASE_SENSITIVE)
             ->codeIs($uniqueGlobals, self::NO_TRANSLATE, self::CASE_SENSITIVE)
             ->codeIsNot($globalvar, self::NO_TRANSLATE, self::CASE_SENSITIVE)
             ->savePropertyAs('code', 'theGlobal')
             ->hasFunction()
             ->back('first')
             ->inIs('GLOBAL');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class DontLoopOnYield extends Analyzer {
    public function analyze() {
        // foreach($g as $h) { yield $h; }
        $this->atomIs('Foreach')
             ->outIs('SOURCE')
             ->atomIs(self::CALLS)
             ->back('first')
             ->hasAtomInside('Yield')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class UselessParenthesis extends Analyzer {
    // if ( ($condition) )
    public function analyze() {
        $this->atomIs('Ifthen')
             ->outIs('CONDITION')
             ->atomIs('Parenthesis');
        $this->prepareQuery();

        // clone
        $this->atomIs('Clone')
             ->outIs('CLONE')
             ->atomIs('Parenthesis')
             ->back('first');
        $this->prepareQuery();

        // yield
        $this->atomIs(array('Yield', 'Yieldfrom'))
             ->outIs('YIELD')
             ->atomIs('Parenthesis')
             ->back('first');
        $this->prepareQuery();

        // while
        $this->atomIs('While')
             ->outIs('CONDITION')
             ->atomIs('Parenthesis');
        $this->prepareQuery();

        // dowhile
        $this->atomIs('Dowhile')
             ->outIs('CONDITION')
             ->atomIs('Parenthesis');
        $this->prepareQuery();

        // switch
        $this->atomIs('Switch')
             ->outIs('CONDITION')
             ->atomIs('Parenthesis');
        $this->prepareQuery();

        // $y = (1);
        $this->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomIs('Parenthesis')
             ->not(
                $this->side()
                     ->outIs('CODE')
                     ->atomIs('Logical')
                     ->tokenIs(array('T_LOGICAL_XOR', 'T_LOGICAL_AND', 'T_LOGICAL_OR'))
             );
        $this->prepareQuery();

        // ($y) == (1);
        $this->atomIs('Comparison')
             ->outIs(array('RIGHT', 'LEFT'))
             ->atomIs('Parenthesis')
             ->outIs('CODE')
             ->atomIsNot('Assignation')
             ->inIs('CODE');
        $this->prepareQuery();

        // ($a = $b) == $c : NOT A CASE
        $this->atomIs('Comparison')
             ->outIs('RIGHT')
             ->atomIs('Parenthesis')
             ->outIs('CODE')
             ->atomIs('Assignation')
             ->inIs('CODE');
        $this->prepareQuery();

        // f(($x))
        $this->atomIs('Functioncall')
             ->outIs('ARGUMENT')
             ->atomIs('Parenthesis')
             ->back('first');
        $this->prepareQuery();

        // (expression);
        $this->atomIs('Parenthesis')
             ->hasIn('EXPRESSION');
        $this->prepareQuery();

        // (literal);
        $this->atomIs('Parenthesis')
             ->analyzerIsNot('self')
             ->outIs('CODE')
             ->atomIs(array('Integer', 'Float', 'Boolean', 'Identifier', 'Variable',
                            'Magicconstant', 'Null', 'Functioncall', 'Member', 'Methodcall',
                            'Staticmethodcall', 'Staticconstant', 'Staticproperty'))
             ->back('first');
        $this->prepareQuery();

        //$d = ((($a)+$b)+$c);
        $this->atomIs('Addition')
             ->analyzerIsNot('self')
             ->inIs('CODE')
             ->atomIs('Parenthesis')
             ->inIs(array('LEFT', 'RIGHT'))
             ->atomIs('Addition')
             ->back('first');
        $this->prepareQuery();

        //$d = ((($a)*$b)*$c);
        $this->atomIs('Multiplication')
             ->analyzerIsNot('self')
             ->inIs('CODE')
             ->atomIs('Parenthesis')
             ->as('results')
             ->inIs(array('LEFT', 'RIGHT'))
             ->atomIs('Multiplication')
             ->back('results');
        $this->prepareQuery();

        //function foo($c = (PHP_OS == 1 ? 1 : 2) ){}
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->outIs('DEFAULT')
             ->atomIs('Parenthesis')
             ->hasNoIn('RIGHT')
             ->back('first');
        $this->prepareQuery();

    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class RepeatedPrint extends Analyzer {
    public function analyze() {
        // first one in sequence
        $this->atomIs(array('Print', 'Echo'))
             ->is('rank', 0)
             ->nextSibling()
             ->atomIs(array('Print', 'Echo'))
             ->back('first');
        $this->prepareQuery();

        $this->atomIs(array('Print', 'Echo'))
             ->isNot('rank', 0)
             ->nextSibling()
             ->atomIs(array('Print', 'Echo'))
             ->back('first')
             ->previousSibling()
             ->atomIsNot(array('Print', 'Echo'))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class StripTagsSkipsClosedTag extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/PropagateConstants',
                    );
    }

    public function analyze() {
        // strip_tags($a, '<br />'); (br will not be ignored)
        $this->atomFunctionIs('\\strip_tags')
             ->outWithRank('ARGUMENT', 1)
             ->atomIs(array('String', 'Heredoc', 'Concatenation'), self::WITH_CONSTANTS)
             ->regexIs('noDelimiter', '/>')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class PrintAndDie extends Analyzer {
    public function analyze() {
        // print 'ok'; die();
        $this->atomIs(array('Echo', 'Print'))
             ->nextSibling()
             ->atomIs('Exit')
             ->outIs('ARGUMENT')
             ->atomIs('Void')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Common\WithoutTry;

class EvalWithoutTry extends WithoutTry {
    protected $phpVersion = '7.0+';

    public function analyze() {
        $this->atoms = array('Eval');
        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ConditionalStructures extends Analyzer {
    public function analyze() {
        // classes, interfaces, Traits
        $this->atomIs(array('Class', 'Interface', 'Trait'))
             ->hasIfthen()
             ->back('first');
        $this->prepareQuery();

        // functions
        $this->atomIs('Function')
             ->hasIfthen()
             ->back('first');
        $this->prepareQuery();

       // constants
        $this->atomIs('Defineconstant')
             ->hasIfthen()
             ->back('first')
             ->outIs('NAME');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class LongBlock extends Analyzer {
    protected $longBlock = 200;

    public function analyze() {
        // do { <may lines> } while();
        $this->atomIs(array('While', 'Dowhile', 'For', 'Foreach', 'Ifthen'))
             ->outIs(array('BLOCK', 'THEN', 'ELSE'))
             ->outWithRank('EXPRESSION', 'first')
             ->savePropertyAs('line', 'begin')
             ->inIs('EXPRESSION')

             ->outWithRank('EXPRESSION', 'last')
             ->savePropertyAs('line', 'finish')

             ->raw('filter{ finish - begin > ' . $this->longBlock . ' }')

             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class DropElseAfterReturn extends Analyzer {
    public function analyze() {
        //if ($a) { return $a; } else { doSomething(); }
        $this->atomIs('Ifthen')
             ->tokenIsNot('T_ELSEIF')
             ->raw(<<<'GREMLIN'
not(
    where(
        __.in("EXPRESSION")
          .has("count", 1)
          .in("ELSE")
          .hasLabel("Ifthen")
    )
)
GREMLIN
)
             ->outIs('THEN')
             ->outIs('EXPRESSION')
             ->atomIs('Return')
             ->back('first')
             ->outIs('ELSE')
             ->hasNoChildren('Return', array('EXPRESSION'))
             ->back('first');
        $this->prepareQuery();

        //if ($a) { doSomething(); } else { return $a; }
        $this->atomIs('Ifthen')
             ->tokenIsNot('T_ELSEIF')
             ->raw(<<<'GREMLIN'
not(
    where(
        __.in("EXPRESSION")
          .has("count", 1)
          .in("ELSE")
          .hasLabel("Ifthen")
    )
)
GREMLIN
)
             ->outIs('ELSE')
             ->outIs('EXPRESSION')
             ->atomIs('Return')
             ->back('first')
             ->outIs('THEN')
             ->hasNoChildren('Return', array('EXPRESSION'))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Common\FunctionDefaultValue;

class CryptWithoutSalt extends FunctionDefaultValue {
    protected $phpVersion = '5.6-';

    public function analyze() {
        $this->code = 'crypt';
        $this->rank = 1;

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class HeredocDelimiterFavorite extends Analyzer {
    public function analyze() {
        $this->atomIs(array('Heredoc', 'Nowdoc'))
             ->raw('map{ it.get().value("delimiter").trim(); }')
             ->raw('groupCount("gf").cap("gf").sideEffect{ s = it.get().values().sum(); }');
        $types = $this->rawQuery()->toArray();

        if (empty($types)) {
            return;
        }

        $types = $types[0];
        $storage = array_combine(array_keys($types), array_keys($types));

        $store = array();
        $total = 0;
        foreach($storage as $key => $v) {
            $c = empty($types[$v]) ? 0 : $types[$v];
            $store[] = array('key'   => $key,
                             'value' => $c);
            $total += $c;
        }
        $this->datastore->addRowAnalyzer($this->analyzerQuoted, $store);

        if ($total == 0) {
            return;
        }

        $types = array_filter($types, function ($x) use ($total) { return $x > 0 && $x / $total < 0.1; });
        if (empty($types)) {
            return;
        }

        $this->atomIs(array('Heredoc', 'Nowdoc'))
             ->raw('filter{ it.get().value("delimiter").trim() in *** }', $types);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class DoubleAssignation extends Analyzer {
    public function analyze() {
        // $a = 1; $a = 2;
        $this->atomIs('Sequence')
             ->raw(<<<'GREMLIN'
where(
    __.sideEffect{ doubles = [:]; }
      .out("EXPRESSION")
      .hasLabel("Assignation")
      .out("LEFT")
      .hasLabel("Variable", "Array", "Member", "Staticproperty")
      .sideEffect{
         rank = it.get().vertices(IN, "LEFT").next().value("rank");
         if (doubles[it.get().value("fullcode")] == null) {
           doubles[it.get().value("fullcode")] = [rank];
         } else {
           doubles[it.get().value("fullcode")].add(rank);
         }
      }
      .fold()
      .filter{
              // check that doubles has expression in multiple lines and lines are following each other
              doubles = doubles.findAll{ a, b -> b.size() > 1}
                               .findAll{a,b -> b.intersect( b.collect{it2 -> it2 + 1}).size() > 0}
                               .values();
              following = doubles.collect{it3 -> it3.collect{ it4 -> it4 + 1}.intersect(it3)}
                               .flatten(); 
              doubles = doubles.collect{it3 -> it3 - it3.collect{ it4 -> it4 + 1}}
                               .flatten(); 
              // check if there are any result finally
              doubles.size() > 0 ; 
             }  
)

GREMLIN
)
             ->outIs('EXPRESSION')
             ->atomIs('Assignation')
             ->raw('filter{ it.get().value("rank") in doubles }')
             ->initVariable('ranked')
             ->raw('sideEffect{ranked = it.get().value("rank") + 1}')
             ->codeIs('=')
             ->as('results')
             ->outIs('LEFT')
             ->atomIs(array('Variable', 'Array', 'Member', 'Staticproperty'))
             ->savePropertyAs('fullcode', 'name')
             ->inIs('LEFT')
             ->inIs('EXPRESSION')
             ->outWithRank('EXPRESSION', 'ranked')
             ->codeIs('=')
             ->outIs('RIGHT')
             ->isReassigned('name')
             ->back('results');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class LongArguments extends Analyzer {
    protected $codeTooLong = 100;

    public function analyze() {
        // foo('123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 (120)');
        $this->atomIs(array('Functioncall', 'Methodcallname'))
             ->outIs('ARGUMENT')
             ->atomIs(array('String', 'Heredoc'))
             ->fullcodeLength(" > $this->codeTooLong")
             ->back('first')
             ->inIsIE('METHOD');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class MailUsage extends Analyzer {
    public function analyze() {
        $mailerFunctions = $this->loadIni('mailer.ini', 'functions');
        $this->atomFunctionIs($mailerFunctions)
             ->back('first');
        $this->prepareQuery();

        $mailerClasses = $this->loadIni('mailer.ini', 'classes');
        $this->atomIs('New')
             ->outIs('NEW')
             ->atomIs('Newcall')
             ->has('fullnspath')
             ->fullnspathIs($mailerClasses);
        $this->prepareQuery();

        $this->atomIs(array('Staticmethodcall', 'Staticproperty', 'Staticconstant'))
             ->outIs('CLASS')
             ->has('fullnspath')
             ->fullnspathIs($mailerClasses);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class NeverNegative extends Analyzer {
    public function analyze() {
        // count($a) >= 0 (always true)
        $this->atomIs('Comparison')
             ->codeIs(array('>=', '<'))
             ->outIs('RIGHT')
             ->codeIs('0')
             ->inIs('RIGHT')
             ->outIs('LEFT')
             ->functioncallIs(array('\\count', '\\sizeof', '\\strlen', '\\abs'))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class NoDirectUsage extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/PhpNativeReference',
                    );
    }

    public function analyze() {
        $functions = $this->loadIni('NoDirectUsage.ini', 'functions');
        $functionsFullNsPath = makeFullNsPath($functions);

        // foreach(glob() as $x) {}
        $this->atomIs('Foreach')
             ->outIs('SOURCE')
             ->functioncallIs($functionsFullNsPath)
             ->back('first');
        $this->prepareQuery();

        // Direct call with a function without check
        $this->atomFunctionIs($functionsFullNsPath)
             ->hasIn('ARGUMENT');
        $this->prepareQuery();

        // Direct usage in an operation +, *, **
        $this->atomFunctionIs($functionsFullNsPath)
             ->inIs(array('LEFT', 'RIGHT'))
             ->atomIs(array('Addition', 'Multiplication', 'Power'));
        $this->prepareQuery();

    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class BuriedAssignation extends Analyzer {
    public function analyze() {
        // ($x = new b)->c
        $this->atomIs('Assignation')
             ->hasNoParent('Declare', array('ARGUMENT'))
             ->hasNoParent('For', array('EXPRESSION', 'INIT', 'FINAL', 'INCREMENT'))

             ->codeIs('=')

             // avoid chained assignation
             ->hasNoParent('Assignation', 'RIGHT')

             // in a property definition
             ->inIsIE('CODE')
             ->hasNoIn('EXPRESSION')
             ->hasNoIn(array('CONST', 'CONDITION', 'PPP', 'STATIC'))
             ->goToExpression()
             ->atomIsNot('For');
        $this->prepareQuery();

        // Special for for(;;) : only if several instructions with comma
        $this->atomIs('For')
             ->outIs(array('INIT', 'FINAL', 'INCREMENT'))
             ->isMore('count', 1)
             ->outIs('EXPRESSION')
             ->outIsIE('CODE')
             ->atomIs('Assignation')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class OneIfIsSufficient extends Analyzer {
    public function analyze() {
        $this->atomIs('Ifthen')
             ->outIs('THEN')
             ->is('count', 1)
             ->outIs('EXPRESSION')
             ->atomIs('Ifthen')
             ->hasNoOut('ELSE')
             ->outIs('CONDITION')
             ->savePropertyAs('fullcode', 'condition')
             ->back('first')

             ->outIs('ELSE')
             ->is('count', 1)
             ->outIs('EXPRESSION')
             ->atomIs('Ifthen')
             ->hasNoOut('ELSE')
             ->outIs('CONDITION')
             ->samePropertyAs('fullcode', 'condition')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ImplicitGlobal extends Analyzer {
    public function analyze() {
        // no Global $x;
        // function foo() { global $x; }
        $this->atomIs('Global')
             ->isGlobalCode()
             ->outIs('GLOBAL')
             ->values('code')
             ->unique();
        $globalGlobal = $this->rawQuery()
                             ->toArray();

        $superglobals = $this->loadIni('php_superglobals.ini', 'superglobal');

        // can't bail out here : if $globalGlobal is empty, no global was declared outside functions.
        // This is still useful

        $this->atomIs('Global')
             ->hasFunction()
             ->outIs('GLOBAL')
             ->tokenIs('T_VARIABLE')
             ->codeIsNot($superglobals, self::TRANSLATE, self::CASE_SENSITIVE)
             ->codeIsNot($globalGlobal, self::NO_TRANSLATE, self::CASE_SENSITIVE);
        $this->prepareQuery();

        // Those are variables in the global space,
        $this->atomIs(self::VARIABLES_USER)
             ->hasNoIn('GLOBAL')
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->inIs('DEFINITION')
                             ->atomIs('Globaldefinition')
                     )
             )
             ->isGlobalCode()
             ->tokenIs('T_VARIABLE');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ThrowsAndAssign extends Analyzer {
    public function analyze() {
        // throw $e = new Exception();
        $this->atomIs('Throw')
             ->outIs('THROW')
             ->atomIs('Assignation');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ShouldUseOperator extends Analyzer {
    public function analyze() {
        // array_push($array, $value)
        $this->atomFunctionIs(array('\\array_push',
                                    '\\function_get_arg',
                                    '\\function_get_args',
                                    '\\call_user_func',
                                    '\\is_null',
                                    '\\php_version',
                                    ));
        $this->prepareQuery();

        $this->atomFunctionIs('\\chr')
             ->outWithRank('ARGUMENT', 0)
             ->is('constant', true)
             ->back('first');
        $this->prepareQuery();

        // array_push($array, $value)
        $this->atomFunctionIs(array('\\is_int',
                                    '\\is_object',
                                    '\\is_array',
                                    '\\is_string',
                                    ))
            ->outWithRank('ARGUMENT', 0)
            ->atomIs('Variable')
            ->savePropertyAs('code', 'argument')
            ->goToFunction()
            ->outIs('ARGUMENT')
            ->outIs('TYPEHINT')
            ->atomIs('Void')
            ->inIs('TYPEHINT')
            ->outIsIE('NAME')
            ->samePropertyAs('code', 'argument')
            ->back('first');
        $this->prepareQuery();

    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ComplexExpression extends Analyzer {
    protected $complexExpressionThreshold = 30;

    public function analyze() {
        // if (Condition);
        $this->atomIs(array('Ifthen', 'Dowhile', 'While'))
             ->outIs('CONDITION')
             ->IsComplexExpression($this->complexExpressionThreshold)
             ->back('first');
        $this->prepareQuery();

        // foreach($source...)
        $this->atomIs('Foreach')
             ->outIs('SOURCE')
             ->IsComplexExpression($this->complexExpressionThreshold)
             ->back('first');
        $this->prepareQuery();

        // for($i = 3; ; )
        $this->atomIs('For')
             ->outIs(array('INCREMENT', 'INIT', 'FINAL'))
             ->IsComplexExpression($this->complexExpressionThreshold)
             ->back('first');
        $this->prepareQuery();

        // $a = expression;
        $this->atomIs('Assignation')
             ->outIs('RIGHT')
             ->IsComplexExpression($this->complexExpressionThreshold)
             ->back('first');
        $this->prepareQuery();

        // foo($a)
        $this->atomIs('Functioncall')
             ->outIs('ARGUMENT')
             ->IsComplexExpression($this->complexExpressionThreshold)
             ->back('first');
        $this->prepareQuery();
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class NoNeedForElse extends Analyzer {
    public function analyze() {
        $breaks = array('Return', 'Break', 'Continue', 'Break');
        // if () { return; } else  { no-return; }
        $this->atomIs('Ifthen')
             ->hasOut('ELSE')
             ->outIs('THEN')
             ->outIs('EXPRESSION')
             ->atomIs($breaks)
             ->back('first')
             ->outIs('ELSE')
             ->not(
                $this->side()
                     ->outIs('EXPRESSION')
                     ->atomIs(array('Return', 'Break', 'Continue'))
             )
             ->back('first');
        $this->prepareQuery();

        // if () { no-return; } else  { return; }
        $this->atomIs('Ifthen')
             ->hasOut('ELSE')
             ->outIs('ELSE')
             ->outIs('EXPRESSION')
             ->atomIs($breaks)
             ->back('first')
             ->outIs('THEN')
             ->not(
                $this->side()
                     ->outIs('EXPRESSION')
                     ->atomIs(array('Return', 'Break', 'Continue'))
             )
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ReturnVoid extends Analyzer {
    public function analyze() {
        $this->atomIs('Return')
             ->outIs('RETURN')
             ->atomIs('Void')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class EmptyLines extends Analyzer {
    public function analyze() {
        // one void in the sequence
        $this->atomIs('Void')
             ->hasIn('EXPRESSION')
             ->isNot('rank', 0);
        $this->prepareQuery();

        // if the void is only one, we must check if this is a condition
        $this->atomIs('Void')
             ->is('rank', 0)
             ->inIs('EXPRESSION')
             ->isNot('count', 1)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class SequenceInFor extends Analyzer {
    public function analyze() {
        $this->atomIs('For')
             ->outIs(array('INIT', 'INCREMENT', 'FINAL'))
             ->isNot('count', 1)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class MissingParenthesis extends Analyzer {
    public function analyze() {
        // -$a + $b
        $this->atomIs('Addition')
             ->codeIs('+')
             ->outIs('LEFT')
             ->atomIs('Sign')
             ->codeIs('-')
             ->outIs('SIGN')
             ->atomIsNot('Parenthesis')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;
use Exakat\Query\DSL\FollowParAs;

class CommonAlternatives extends Analyzer {
        // some expressions are common between two then / else block
        public function analyze() {

        $omit = array('For',
                      'Foreach',
                      'Ifthen',
                      'Dowhile',
                      'While',
                      'Switch',
                      'Closure',
                      'Arrowfunction',
                      'Continue',
                      'Break',
                      );

        // if ($c) { $a = 1; } else { $a = 1; $b = 2;}
        $this->atomIs('Ifthen')
             ->tokenIs('T_IF')
             ->outIs('THEN')
             ->atomIs('Sequence')
             ->outIs('EXPRESSION')
             ->as('results')
             ->followParAs(FollowParAs::FOLLOW_NONE)
             ->atomIsNot($omit)
             ->savePropertyAs('fullcode', 'expression')

             ->back('first')
             ->outIs('ELSE')
             ->atomIs('Sequence')
             ->outIs('EXPRESSION')
             ->followParAs(FollowParAs::FOLLOW_NONE)
             ->atomIsNot($omit)
             ->samePropertyAs('fullcode', 'expression')
             ->back('results');
        $this->prepareQuery();

        // if ($c) { $a = 1; } elseif () { $a = 1; } else { $a = 1; $b = 2;}
        // two levels only
        $this->atomIs('Ifthen')
             ->tokenIs('T_IF')
             ->outIs('THEN')
             ->atomIs('Sequence')
             ->outIs('EXPRESSION')
             ->as('results')
             ->followParAs(FollowParAs::FOLLOW_NONE)
             ->atomIsNot($omit)
             ->savePropertyAs('fullcode', 'expression')

             ->back('first')
             ->outIs('ELSE')
             ->tokenIs('T_ELSEIF')
             ->as('second')
             ->outIs('THEN')
             ->atomIs('Sequence')
             ->outIs('EXPRESSION')
             ->followParAs(FollowParAs::FOLLOW_NONE)
             ->atomIsNot($omit)
             ->samePropertyAs('fullcode', 'expression')

             ->back('second')
             ->outIs('ELSE')
             ->atomIs('Sequence')
             ->outIs('EXPRESSION')
             ->followParAs(FollowParAs::FOLLOW_NONE)
             ->atomIsNot($omit)
             ->samePropertyAs('fullcode', 'expression')
             ->back('results');
        $this->prepareQuery();

        // switch()
        // two levels only
        $this->atomIs('Switch')
             ->outIs('CASES')
             ->as('cases')
             ->savePropertyAs('count', 'c')
             ->outWithRank('EXPRESSION', 0)
             ->outIs('CODE')
             ->outIs('EXPRESSION')
             ->followParAs(FollowParAs::FOLLOW_NONE)
             ->atomIsNot($omit)
             ->as('results')
             ->savePropertyAs('fullcode', 'expression')
             ->back('cases')

             ->filter(
                $this->side()
                     ->outIs('EXPRESSION')
                     ->outIs('CODE')
                     ->outIs('EXPRESSION')
                     ->followParAs(FollowParAs::FOLLOW_NONE)
                     ->atomIsNot($omit)
                     ->samePropertyAs('fullcode', 'expression')
                     ->raw('count().filter{ it.get() == c;}')
             )
             ->back('results');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class CouldUseCompact extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/CreateCompactVariables',
                     'Complete/PropagateConstants',
                    );
    }

    public function analyze() {
        // $a = array('a' => $a, 'b' => $b);
        $this->atomIs('Arrayliteral')
            // Only keep Keyvalue and void
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->outIs('ARGUMENT')
                             ->atomIsNot(array('Keyvalue', 'Void'))
                     )
             )
            // At least one Keyvalue
             ->filter(
                $this->side()
                     ->outIs('ARGUMENT')
                     ->atomIs('Keyvalue')
             )
            // Only keep String as name
            ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->outIs('ARGUMENT')
                             ->atomIs('Keyvalue')
                             ->outIs('INDEX')
                             ->not(
                                $this->side()
                                     ->filter(
                                        $this->side()
                                             ->atomIs(self::STRINGS_ALL, self::WITH_CONSTANTS)
                                             ->has('noDelimiter')
                                     )
                             )
                     )
            )
            ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->outIs('ARGUMENT')
                             ->atomIs('Keyvalue')
                             ->outIs('VALUE')
                             ->not(
                                $this->side()
                                     ->filter(
                                        $this->side()
                                             ->atomIs('Variable')
                                     )
                             )
                     )
            )

            // Only string = variable name
            ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->outIs('ARGUMENT')
                             ->atomIs('Keyvalue')
                             ->filter(
                                $this->side()
                                     ->outIs('INDEX')
                                     ->atomIs(self::STRINGS_ALL)
                                     ->savePropertyAs('noDelimiter', 'name')
                                     ->makeVariableName('name')
                                     ->inIs('INDEX')
                                     ->outIs('VALUE')
                                     ->atomIs('Variable')
                                     ->raw('filter{it.get().value("fullcode") != name}')
                             )
                     )
             )
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ForeachWithList extends Analyzer {
    protected $phpVersion = '5.5+';

    public function analyze() {
        // foreach($a as ['a' => $b]) {}
        $this->atomIs('Foreach')
             ->outIs('VALUE')
             ->atomIs('List')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class MissingNew extends Analyzer {
    public function dependsOn(): array {
        return array('Functions/IsExtFunction',
                     'Constants/IsExtConstant',
                    );
    }

    public function analyze() {
        $this->atomIs(self::CLASSES_ALL)
             ->values('fullnspath')
             ->unique();
        $customClasses = $this->rawQuery();

        $phpClasses = $this->loadIni('php_classes.ini', 'classes');

        $classes = array_unique(array_merge($phpClasses, $customClasses->toArray()));
        $classes = makeFullnspath($classes);

        // $a = file();
        $this->atomIs('Functioncall')
             ->analyzerIsNot('Functions/IsExtFunction')
             ->tokenIs(array('T_STRING', 'T_NS_SEPARATOR'))
             ->hasNoFunctionDefinition()
             ->fullnspathIs($classes, self::CASE_INSENSITIVE);
        $this->prepareQuery();

        // $a = C;
        $this->atomIs(array('Identifier', 'Nsname'))
             ->analyzerIsNot('Constants/IsExtConstant')
             ->hasNoConstantDefinition()
             ->fullnspathIs($classes, self::CASE_INSENSITIVE);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ShouldMakeTernary extends Analyzer {
    public function analyze() {
        // if ($a) $b = 2; else $b = 3;
        $this->atomIs('Ifthen')
             ->outIs('THEN')
             ->is('count', 1)
             ->outWithRank('EXPRESSION', 0)
             ->atomIs('Assignation')
             ->outIs('LEFT')
             ->savePropertyAs('fullcode', 'a')
             ->back('first')
             ->outIs('ELSE')
             ->is('count', 1)
             ->outWithRank('EXPRESSION', 0)
             ->atomIs('Assignation')
             ->outIs('LEFT')
             ->samePropertyAs('fullcode', 'a')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class StaticLoop extends Analyzer {
    public function analyze() {
        // foreach with only one value
        $this->atomIs('Foreach')
             ->collectVariable()
             ->outIs('BLOCK')

             // Check that blind variable are not mentionned
             ->checkBlindVariable()

             // check if there are non-deterministic function : calling them in a loop is non-static.
             ->whereNonDeterminist()
             ->back('first');
        $this->prepareQuery();

        // for
        $this->atomIs('For')
             ->outIs('INCREMENT')
             ->atomIs('Void')
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('For')
             ->collectVariable()

             ->outIs('BLOCK')
             // check if the variables are used here
             ->checkBlindVariable()

             // check if there are non-deterministic function : calling them in a loop is non-static.
             ->whereNonDeterminist()

             ->back('first');
        $this->prepareQuery();

        // for with complex structures (property, static property, arrays, references... ?)

        // do...while
        $this->atomIs('Dowhile')
             // collect all variables
             ->collectVariable()

             ->outIs('BLOCK')
             // check if the variables are used here
             ->checkBlindVariable()

             // check if there are non-deterministic function : calling them in a loop is non-static.
             ->whereNonDeterminist()

             ->back('first');
        $this->prepareQuery();

        // do while with complex structures (property, static property, arrays, references... ?)

        // while
        $this->atomIs('While')

             // collect all variables
             ->collectVariable()
             //->raw($collectVariables)

             ->outIs('BLOCK')
             // check if the variables are used here
             ->checkBlindVariable()

             // check if there are non-deterministic function : calling them in a loop is non-static.
             ->whereNonDeterminist()
             ->back('first');
        $this->prepareQuery();

        // while with complex structures (property, static property, arrays, references... ?)

        // TODO : handle the case of compact
        // TODO : handle the case of localproperties used in the conditions : with a method call, they may be also updated
        // TODO : same for references
    }

    private function whereNonDeterminist(): self {
        $nonDeterminist = $this->methods->getNonDeterministFunctions();
        $nonDeterminist = makeFullnspath($nonDeterminist);

        $this->not(
            $this->side()
                 ->filter(
                    $this->side()
                         ->atomInsideNoDefinition('Functioncall')
                         ->has('fullnspath')
                         ->fullnspathIs($nonDeterminist)
                 )
        );

        return $this;
    }

    private function checkBlindVariable(): self {
        $this->not(
            $this->side()
                 ->atomInsideNoDefinition(array('Variable', 'Staticproperty', 'Member', 'Array', 'Variableobject', 'Variablearray'))
                 ->raw('filter{ it.get().value("fullcode").replaceAll("&", "") in blind }')
        );

        return $this;
    }

    private function collectVariable(): self {
        $this->filter(
            $this->side()
                 ->initVariable('blind', '[]')
                 ->outIs(array('CONDITION', 'INCREMENT', 'INIT', 'VALUE', 'INDEX'))
                 ->atomInsideNoDefinition(array('Variable', 'Staticproperty', 'Member', 'Array'))
                 ->raw('sideEffect{ blind.push(it.get().value("fullcode").replaceAll("&", "")) }.fold()')
        );

        return $this;
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class IdenticalConditions extends Analyzer {
    public function analyze() {

        // $a || $a
        // ($a) && ($a)
        $this->atomIs('Logical')
             ->analyzerIsNot('self')
             ->hasNoIn(array('LEFT', 'RIGHT'))
             ->outIs('RIGHT')
             ->outIsIE('CODE')
             ->atomIsNot('Logical')
             ->savePropertyAs('fullcode', 'left')
             ->inIsIE('CODE')
             ->inIs('RIGHT')
             ->outIs('LEFT')
             ->outIsIE('CODE')
             ->atomIsNot('Logical')
             ->samePropertyAs('fullcode', 'left', self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();

        // $a || $a || $a
        // ($a) && ($a)
        // two levels
        $this->atomIs('Logical')
             ->analyzerIsNot('self')
             ->outIs('RIGHT')
             ->outIsIE('CODE')
             ->savePropertyAs('fullcode', 'right')
             ->inIsIE('CODE')
             ->inIs('RIGHT')
             ->outIs('LEFT')
             ->outIsIE('CODE')
             ->atomIs('Logical')
             ->outIs(array('RIGHT', 'LEFT'))
             ->outIsIE('CODE')
             ->samePropertyAs('fullcode', 'right', self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('Logical')
             ->analyzerIsNot('self')
             ->outIs('LEFT')
             ->outIsIE('CODE')
             ->savePropertyAs('fullcode', 'left')
             ->inIsIE('CODE')
             ->inIs('LEFT')
             ->outIs('RIGHT')
             ->outIsIE('CODE')
             ->atomIs('Logical')
             ->outIs(array('RIGHT', 'LEFT'))
             ->outIsIE('CODE')
             ->samePropertyAs('fullcode', 'left', self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();

        // case for $a || $b || $b
        $this->atomIs('Logical')
             ->analyzerIsNot('self')
             // Ignore LEFT
             ->outIs('RIGHT')
             ->outIsIE('CODE')
             ->atomIs('Logical')

             ->outIs('RIGHT')
             ->outIsIE('CODE')
             ->savePropertyAs('fullcode', 'right')
             ->inIsIE('CODE')
             ->inIs('RIGHT')

             ->outIs('LEFT')
             ->outIsIE('CODE')
             ->samePropertyAs('fullcode', 'right', self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();

        // $a || $a || $a
        // ($a) && ($a)
        // three levels
        // straight structure
        $this->atomIs('Logical')
             ->analyzerIsNot('self')
             ->outIs('RIGHT')
             ->outIsIE('CODE')
             ->savePropertyAs('fullcode', 'left')
             ->inIsIE('CODE')
             ->inIs('RIGHT')
             ->outIs('LEFT')
             ->outIsIE('CODE')
             ->atomIs('Logical')
             ->outIs(array('RIGHT', 'LEFT'))
             ->outIsIE('CODE')
             ->atomIs('Logical')
             ->outIs(array('RIGHT', 'LEFT'))
             ->samePropertyAs('fullcode', 'left', self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();

        // reverse structure
        $this->atomIs('Logical')
             ->analyzerIsNot('self')
             ->outIs('LEFT')
             ->outIsIE('CODE')
             ->savePropertyAs('fullcode', 'left')
             ->inIsIE('CODE')
             ->inIs('LEFT')
             ->outIs('RIGHT')
             ->outIsIE('CODE')
             ->atomIs('Logical')
             ->outIs(array('RIGHT', 'LEFT'))
             ->outIsIE('CODE')
             ->atomIs('Logical')
             ->outIs(array('RIGHT', 'LEFT'))
             ->samePropertyAs('fullcode', 'left', self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();

        // $a || $a || $a
        // ($a) && ($a)
        // four levels
        $this->atomIs('Logical')
             ->analyzerIsNot('self')
             ->outIs('LEFT')
             ->outIsIE('CODE')
             ->savePropertyAs('fullcode', 'left')
             ->inIsIE('CODE')
             ->inIs('LEFT')
             ->outIs('RIGHT')
             ->outIsIE('CODE')
             ->atomIs('Logical')
             ->outIs(array('RIGHT', 'LEFT'))
             ->outIsIE('CODE')
             ->atomIs('Logical')
             ->outIs(array('RIGHT', 'LEFT'))
             ->outIsIE('CODE')
             ->atomIs('Logical')
             ->outIs(array('RIGHT', 'LEFT'))
             ->samePropertyAs('fullcode', 'left', self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();

        // $a || $a || $a
        // ($a) && ($a)
        // four levels
        $this->atomIs('Logical')
             ->analyzerIsNot('self')
             ->outIs('LEFT')
             ->outIsIE('CODE')
             ->savePropertyAs('fullcode', 'left')
             ->inIsIE('CODE')
             ->inIs('LEFT')
             ->outIs('RIGHT')
             ->outIsIE('CODE')
             ->atomIs('Logical')
             ->outIs(array('RIGHT', 'LEFT'))
             ->outIsIE('CODE')
             ->atomIs('Logical')
             ->outIs(array('RIGHT', 'LEFT'))
             ->outIsIE('CODE')
             ->atomIs('Logical')
             ->outIs(array('RIGHT', 'LEFT'))
             ->outIsIE('CODE')
             ->atomIs('Logical')
             ->outIs(array('RIGHT', 'LEFT'))
             ->samePropertyAs('fullcode', 'left', self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();

        // TODO : also adding situations like ($a and !$a) ?
    }
}

?>
<?php
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
declare(strict_types = 1);

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ErrorReportingWithInteger extends Analyzer {
    public function analyze() {
        $allowedIntegers = array('-1', '0');

        $this->atomFunctionIs('\\error_reporting')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs(array('Integer', 'Addition'))
             ->codeIsNot($allowedIntegers)
             ->back('first');
        $this->prepareQuery();

        $this->atomFunctionIs('\\ini_set')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String')
             ->tokenIsNot('T_QUOTE')
             ->noDelimiterIs('error_reporting')
             ->inIs('ARGUMENT')
             ->outWithRank('ARGUMENT', 1)
             ->atomIs('Integer')
             ->codeIsNot('0')
             ->codeIsNot($allowedIntegers)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class CouldUseArrayFillKeys extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/SetArrayClassDefinition',
                    );
    }

    public function analyze() {
        // foreach($a as $b) { $c[$b] = 3; }
        $this->atomIs('Foreach')
             ->outIs(array('INDEX', 'VALUE'))
             ->savePropertyAs('fullcode', 'index')
             ->back('first')

             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Array')
             ->outIs('INDEX')
             ->samePropertyAs('fullcode', 'index')
             ->inIs('INDEX')
             ->inIs('LEFT')
             ->atomIs('Assignation')
             ->codeIs('=')
             ->outIs('RIGHT')
             ->noFullcodeInside('index')
             ->atomIsNot('Variable')
             ->back('first');
        $this->prepareQuery();

        //foreach($a as &$v) { $v = constant}
        $this->atomIs('Foreach')
             ->outIs('VALUE')
             ->is('reference', true)
             ->savePropertyAs('code', 'blind')
             ->back('first')

             ->outIs('BLOCK')
             ->is('count', 1)
             ->outIs('EXPRESSION')
             ->as('block')
             ->atomIs('Assignation')
             ->codeIs('=')
             ->outIs('LEFT')
             ->samePropertyAs('code', 'blind')
             ->back('block')
             ->outIs('RIGHT')
             ->is('constant', true)
             ->back('first');
        $this->prepareQuery();

        //array_map(function() { return 1}, $a)
        $this->atomFunctionIs('\\array_map')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('Closure')
             ->outIs('BLOCK')
             ->atomInside('Return')
             ->is('constant', true)
             ->back('first');
        $this->prepareQuery();

        //array_map(function() {}, $a)
        $this->atomFunctionIs('\\array_map')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('Closure')
             ->outIs('BLOCK')
             ->noAtomInside('Return')
             ->back('first');
        $this->prepareQuery();

        //array_map('foo', $a)
        $this->atomFunctionIs('\\array_map')
             ->outWithRank('ARGUMENT', 0)
             // array, string, identifier...
             ->inIs('DEFINITION')
             // method, function...
             ->outIs('BLOCK')
             ->atomInside('Return')
             ->is('constant', true)
             ->back('first');
        $this->prepareQuery();

    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class NoIssetWithEmpty extends Analyzer {
    public function analyze() {
        $this->atomIs('Logical')
             ->tokenIs('T_BOOLEAN_AND')
             ->outIs('LEFT')
             ->atomIs('Isset')
             ->outIs('ARGUMENT')
             ->savePropertyAs('fullcode', 'variable')
             ->back('first')
             ->outIs('RIGHT')
             ->outIsIE('NOT')            // optional !
             ->atomIs('Empty')
             ->outIs('ARGUMENT')
             ->samePropertyAs('fullcode', 'variable')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class PossibleInfiniteLoop extends Analyzer {
    public function analyze() {
        $readFunctions = array('\fgets',
                               '\fgetc',
                               '\fgetss',
                               '\fgetcsv',
                              );

        //while($line = fgets($fp1) != 'a') {}
        $this->atomIs('Dowhile')
             ->outIs('CONDITION')
             ->outIsIE(array('LEFT', 'RIGHT')) // outIsIE goes directly to the comparison operands
             ->functioncallIs($readFunctions)
             ->inIs(array('LEFT', 'RIGHT'))
             ->atomIs('Comparison')
             ->codeIs('!=')
             ->outIs(array('LEFT', 'RIGHT'))
             ->isLiteral()
             ->is('boolean', true)
             ->back('first');
        $this->prepareQuery();

        //while($line = fgets($fp1) != 'a') {}
        $this->atomIs('While')
             ->outIs('CONDITION')
             ->outIsIE(array('LEFT', 'RIGHT')) // outIsIE goes directly to the comparison operands
             ->functioncallIs($readFunctions)
             ->inIs(array('LEFT', 'RIGHT'))
             ->atomIs('Comparison')
             ->codeIs('!=')
             ->outIs(array('LEFT', 'RIGHT'))
             ->isLiteral()
             ->is('boolean', true)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class IdenticalOnBothSides extends Analyzer {
    public function analyze() {
        // $a && $a
        // $b == $b
        $this->atomIs(array('Comparison', 'Logical'))
             ->outIs('LEFT')
             ->savePropertyAs('fullcode', 'left')
             ->inIs('LEFT')
             ->outIs('RIGHT')
             ->samePropertyAs('fullcode', 'left', self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();

        // substractions are done with IsZero
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class NoGetClassNull extends Analyzer {
    public function analyze() {
        // get_class(NULL)
        $this->atomFunctionIs('\\get_class')
             ->outIs('ARGUMENT')
             ->atomIs('Null')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class PossibleIncrement extends Analyzer {
    public function analyze() {
        // $a = +$b;
        $this->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomIs('Sign')
             ->codeIs('+')
             ->back('first');
        $this->prepareQuery();

        // foo(+$b);
        $this->atomIs('Sign')
             ->codeIs('+')
             ->hasIn(array('ARGUMENT', 'INDEX', 'VALUE'))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class EmptyTryCatch extends Analyzer {

    public function analyze() {
        $this->atomIs('Try')
             ->outIs('CATCH')
             ->outIs('BLOCK')
             ->outIs('EXPRESSION')
             ->atomIs('Void')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class MixedConcatInterpolation extends Analyzer {
    public function analyze() {
        // $a."b$c";
        $this->atomIs('Concatenation')
            // constant, methodcall and functioncall are ignored as not interpolable.
             ->raw(<<<'GREMLIN'
where( __.out("CONCAT").coalesce( __.hasLabel("Variable"),
                                  __.hasLabel("Array").where( __.out("INDEX").hasLabel("Integer", "String"))
                                                      .where( __.out("VARIABLE").hasLabel("Variablearray")),
                                  __.hasLabel("Member").where(__.out("MEMBER").hasLabel("Name"))
                                                       .where(__.out("OBJECT").hasLabel("Variableobject", "Member")),
                                  __.hasLabel("Identifier").has("fullnspath", "\\PHP_EOL")
                                 )
     )
GREMLIN
             )
             ->outIs('CONCAT')
             ->atomIs('String')
             ->hasOut('CONCAT')
             ->back('first');
        $this->prepareQuery();

        // This analysis is currently missing the 2nd level of evertyhing : $a->{$b . $c}->$d....
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ForeachReferenceIsNotModified extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/MakeFunctioncallWithReference',
                    );
    }

    public function analyze() {
        // case of a variable
        // foreach($a as &$b) { $c += $b; } // $b is not modified
        $this->atomIs('Foreach')
             ->outIs('VALUE')
             ->outIsIE('RIGHT')
             ->is('reference', true)
             ->atomIs('Variable')
             ->savePropertyAs('code', 'name')
             ->inIs('VALUE')
             ->outIs('BLOCK')
             ->not(
                $this->side()
                     ->atomInsideNoDefinition(self::VARIABLES_USER)
                     ->samePropertyAs('code', 'name', self::CASE_SENSITIVE)
                     ->inIsIE(array('VARIABLE', 'OBJECT'))
                     ->is('isModified', true)
             )
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class GlobalOutsideLoop extends Analyzer {
    public function analyze() {
        // inside a For//
        $this->atomIs(self::LOOPS_ALL)
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Global');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ElseIfElseif extends Analyzer {
    // if () {} else  if {}
    // but not if () {} elseif {}
    public function analyze() {
        $this->atomIs('Ifthen')
             ->outIs('ELSE')
             ->is('count', 1)
             ->outIs('EXPRESSION')
             ->atomIs('Ifthen')
             ->tokenIsNot('T_ELSEIF');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class NoHardcodedIp extends Analyzer {
    public function analyze() {
        $specials = $this->loadIni('special_ip.ini');
        // IPv4
        $this->atomIs('String')
             ->hasNoOut('CONCAT')
             ->noDelimiterIsNot($specials->ipv4)
             ->regexIs('noDelimiter', '^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(:\\\\d+)?\\$');
        $this->prepareQuery();

        // IPv6
        $this->atomIs('String')
             ->hasNoOut('CONCAT')
             ->noDelimiterIsNot($specials->ipv6)
             ->regexIs('noDelimiter', '^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\$');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class OpensslRandomPseudoByteSecondArg extends Analyzer {
    public function analyze() {
        // openssl_random_pseudo_bytes(1, $d);
        $this->atomFunctionIs('\\openssl_random_pseudo_bytes')
             ->hasChildWithRank('ARGUMENT', 1);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class CurlVersionNow extends Analyzer {
    public function analyze() {
        // only CURLVERSION_NOW is allowed
        $this->atomFunctionIs('\\curl_version')
             ->outWithRank('ARGUMENT', 0)
             ->atomIsNot('Void')
             ->not(
                $this->side()
                     ->atomIs(self::CONSTANTS_ALL)
                     ->fullnspathIs('\\CURLVERSION_NOW')
             )
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class Iffectation extends Analyzer {
    public function analyze() {
        // if ( 2 == ($a = 1)) {} (deeper inside)
        $this->atomIs('Ifthen')
             ->outIs('CONDITION')
             ->atomInsideNoDefinition('Assignation')
             ->hasNoIn('ARGUMENT');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ErrorMessages extends Analyzer {
    public function dependsOn(): array {
        return array('Exceptions/DefinedExceptions',
                     'Exceptions/IsPhpException',
                    );
    }

    public function analyze() {
        $messages = array('String', 'Concatenation', 'Integer', 'Functioncall', 'Heredoc', 'Magicconstant');

        // die('true')
        // exit ('30');
        $this->atomIs('Exit')
             ->outWithRank('ARGUMENT', 0)
             ->outIsIE('CODE') // parenthesis for exit
             ->atomIs($messages);
        $this->prepareQuery();

        //  new \Exception('Message');
        $this->atomIs('New')
             ->hasNoIn('THROW')
             ->outIs('NEW')
             ->atomIs('Newcall')
             ->analyzerIs('Exceptions/IsPhpException')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs($messages);
        $this->prepareQuery();

        //  new $exception('Message');
        $this->atomIs('Throw')
             ->outIs('THROW')
             ->atomIs('New')
             ->outIs('NEW')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs($messages);
        $this->prepareQuery();

        //  new myException('Message');
        $this->atomIs('New')
             ->hasNoIn('THROW')
             ->outIs('NEW')
             ->as('new')
             ->tokenIs(array('T_STRING', 'T_NS_SEPARATOR'))
             ->isNot('fullnspath', null)
             ->classDefinition()
             ->analyzerIs('Exceptions/DefinedExceptions')
             ->back('new')
             ->outIs('ARGUMENT')
             ->atomIs($messages);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class NoHardcodedPort extends Analyzer {
    public function analyze() {
        $functions = $this->loadIni('php_argument_port.ini');

        $positions = array(0, 1, 2, 3, 4, 5);
        foreach($positions as $position) {
            $this->atomFunctionIs(makeFullNsPath($functions->{"functions$position"}))
                 ->outIs('ARGUMENT')
                 ->is('rank', $position)
                 ->atomIs(array('Integer', 'String'))
                 ->back('first');
            $this->prepareQuery();
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ConcatenationInterpolationFavorite extends Analyzer {
    public function analyze() {
        $mapping = <<<'GREMLIN'
x2 = it.get().label();
GREMLIN;
        $storage = array('concatenation'  => 'Concatenation',
                         'string'         => 'String');

        $this->atomIs(array('Concatenation', 'String'))
             ->hasOut('CONCAT') // Obvious for concat, selective for String
             ->raw('map{ ' . $mapping . ' }')
             ->raw('groupCount("gf").cap("gf").sideEffect{ s = it.get().values().sum(); }');
        $types = $this->rawQuery()->toArray();

        if (empty($types)) {
            return;
        }

        $types = $types[0];

        $store = array();
        $total = 0;
        foreach($storage as $key => $v) {
            $c = empty($types[$v]) ? 0 : $types[$v];
            $store[] = array('key'   => $key,
                             'value' => $c);
            $total += $c;
        }
        $this->datastore->addRowAnalyzer($this->analyzerQuoted, $store);
        if ($total == 0) {
            return;
        }

        $types = array_filter($types, function ($x) use ($total) { return $x > 0 && $x / $total < 0.1; });
        if (empty($types)) {
            return;
        }
        $types = array_keys($types);

        $this->atomIs(array('Concatenation', 'String'))
             ->hasOut('CONCAT') // Obvious for concat, selective for String
             ->raw("sideEffect{ $mapping }")
             ->raw('filter{ x2 in ***}', $types)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class CalltimePassByReference extends Analyzer {
    protected $phpVersion = '5.4-';

    public function analyze() {
        // foo(&$d);
        $this->atomIs('Functioncall')
             ->atomIsNot('Arrayliteral')
             ->outIs('ARGUMENT')
             ->is('reference', true);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;
use Exakat\Query\DSL\FollowParAs;

class MbstringThirdArg extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/PropagateConstants',
                     'Complete/PropagateCalls',
                    );
    }

    public function analyze() {
        $encodings = $this->loadIni('mbstring_encodings.ini', 'encodings');

        $functions = array('\\mb_strrichr',
                           '\\mb_stripos' ,
                           '\\mb_strrpos' ,
                           '\\mb_strstr'  ,
                           '\\mb_stristr' ,
                           '\\mb_strpos'  ,
                           '\\mb_strripos',
                           '\\mb_strrchr' ,
                           '\\mb_strrichr',
                           '\\mb_substr'  ,
        );

        $this->atomFunctionIs($functions)
             ->outWithRank('ARGUMENT', 2)
             ->followParAs(FollowParAs::FOLLOW_NONE)
             ->atomIs(array('String', 'Concatenation'), self::WITH_CONSTANTS)
             ->noDelimiterIs($encodings, self::CASE_INSENSITIVE)
             ->back('first');
        $this->prepareQuery();
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class NoHardcodedHash extends Analyzer {
    public function analyze() {
        $algos = $this->loadJson('hash_length.json');
        $stopwords = $this->loadIni('NotHash.ini', 'ignore');

        $regexDate = '^\\\\d{4}(0?[1-9]|1[012])(0?[1-9]|[12][0-9]|3[01])\$';

        $sizes = array_keys((array) $algos);
        // Find common hashes, based on hexadecimal and length
        $this->atomIs(self::STRINGS_ALL)
             ->has('noDelimiter')
             ->raw('filter{ it.get().value("noDelimiter").toString().length().toLong() in ***}', $sizes)
             ->regexIs('noDelimiter', '^[a-fA-Z0-9]+\\$')
             ->isNotMixedcase('noDelimiter')
             ->noDelimiterIsNot($stopwords)
             ->regexIsNot('noDelimiter', $regexDate)
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->inIs('ARGUMENT')
                             ->atomIs('Functioncall')
                             ->fullnspathIs(array('\\hexdec',
                                                  '\\hex2bin',
                                                  '\\intval',
                                                  '\\decbin',
                                                  '\\bindec',
                                                  '\\dechex',
                                                  '\\decoct',
                                                  '\\octdec',
                                                  )))
              );
        $this->prepareQuery();

        // Crypt (some salts are missing)
        $this->atomIs(self::STRINGS_ALL)
             ->regexIs('noDelimiter', '^\\\\\\$(1|2a|2x|2y|5|6)\\\\\\$.+')
             ->noDelimiterIsNot($stopwords)
             ->regexIsNot('noDelimiter', $regexDate);
        $this->prepareQuery();

        // Base64 encode
        $this->atomIs(self::STRINGS_ALL)
             ->regexIs('noDelimiter', '^[a-zA-Z0-9]+={0,2}\\$')
             ->raw('filter{ it.get().value("noDelimiter").toString().length() % 4 == 0}')
             ->isNotMixedcase('noDelimiter')
             ->fullcodeLength(' > 101');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class CheckAllTypes extends Analyzer {
    public function analyze() {
        $this->atomIs('Ifthen')
             ->hasOut('ELSE')
             ->outIs('CONDITION')
             ->outIsIE('NOT')     // Skip the ! if available
             ->atomIs('Functioncall')
             ->fullnspathIs(array('\\is_string', '\\is_array', '\\is_int', '\\is_real', '\\is_bool', '\\is_resource',
                                  '\\is_long', '\\is_float', '\\is_integer', '\\is_double', '\\is_object', 'is_scalar'))
             ->back('first');
        $this->prepareQuery();
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class GoToKeyDirectly extends Analyzer {
    public function analyze() {
        //foreach($a as $k => $v) {    if ($k === 'abc') { } else { }}
        $this->atomIs('Foreach')
             ->outIs('VALUE')
             ->outIsIE('VALUE')
             ->savePropertyAs('fullcode', 'blind')
             ->savePropertyAs('label', 'blindType')
             ->back('first')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Comparison')
             ->codeIs(array('==', '==='))
             ->outIs(array('LEFT', 'RIGHT'))
             ->samePropertyAs('label', 'blindType')
             ->samePropertyAs('fullcode', 'blind')
             ->inIs(array('LEFT', 'RIGHT'))
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs(array('String', 'Integer'))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class NoAppendOnSource extends Analyzer {
    public function analyze() {
        // foreach($a as $b) { $a[] = 1;}
        $this->atomIs('Foreach')
             ->outIs('SOURCE')
             ->atomIs(self::CONTAINERS)
             ->savePropertyAs('fullcode', 'source')
             ->back('first')

             ->outIs('VALUE')
             ->is('reference', true)
             ->back('first')

             ->outIs('BLOCK')
             ->atomInside('Arrayappend')
             ->outIs('APPEND')
             ->samePropertyAs('fullcode', 'source')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class PHP7Dirname extends Analyzer {
    protected $phpVersion = '7.0+';

    // dirname(dirname($path))
    public function analyze() {
        $this->atomFunctionIs('\\dirname')
             ->not(
                $this->side()
                     ->inIs('ARGUMENT')
                     ->fullnspathIs('\\dirname')
             )
             ->noChildWithRank('ARGUMENT', 1)
             ->outWithRank('ARGUMENT', 0)
             ->functioncallIs('\\dirname')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class DoubleInstruction extends Analyzer {
    public function analyze() {
        $this->atomIs('Sequence')
             ->raw(<<<'GREMLIN'
where(
    __.sideEffect{ doubles = [:]; }
      .out("EXPRESSION")
      .not(hasLabel('Ifthen', 'Function', 'Class', 'Postplusplus', 'Preplusplus', 'Void'))
      .sideEffect{ 
         if (doubles[it.get().value("fullcode")] == null) {
           doubles[it.get().value("fullcode")] = [it.get().value("rank")];
         } else {
           doubles[it.get().value("fullcode")].add(it.get().value("rank"));
         }
      }
      .fold()
      .filter{
              // check that doubles has expression in multiple lines and lines are following each other
              doubles = doubles.findAll{ a, b -> b.size() > 1}
                               .findAll{a,b -> b.intersect( b.collect{it2 -> it2 + 1}).size() > 0}
                               .values()
                               .collect{it3 -> it3 - it3.collect{ it4 -> it4 + 1}}
                               .flatten(); 
              // check if there are any result finally
              doubles.size() > 0 ; 
             }  
)
GREMLIN
)
             ->outIs('EXPRESSION')
             ->atomIsNot(array('Ifthen', 'Function', 'Class', 'Postplusplus', 'Preplusplus', 'Void'))
             ->raw('filter{ it.get().value("rank") in doubles; }');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class NoChoice extends Analyzer {
    public function analyze() {
        // $a == 2 ? doThis() : doThis();
        $this->atomIs('Ternary')
             ->outIs('THEN')
             ->savePropertyAs('fullcode', 'cdt')
             ->inIs('THEN')
             ->outIs('ELSE')
             ->samePropertyAs('fullcode', 'cdt', self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();

        // $a == 2 ?: doThis();
        $this->atomIs('Ternary')
             ->filter(
                $this->side()
                     ->outIs('THEN')
                     ->atomIs('Void')
                     ->count()
                     ->isEqual(1)
              )
             ->outIs('CONDITION')
             ->atomIs(self::CONTAINERS)
             ->savePropertyAs('fullcode', 'cdt')
             ->inIs('CONDITION')
             ->outIs('ELSE')
             ->atomIs(self::CONTAINERS)
             ->samePropertyAs('fullcode', 'cdt', self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();

        // if ($a == 2) Then doThis(); else doThis();
        $this->atomIs('Ifthen')
             ->outIs('THEN')
             ->atomIs('Sequence')
             ->raw('sideEffect{ sthen = []; it.get().vertices(OUT, "EXPRESSION").sort{it.value("rank")}.each{ sthen.add(it.value("fullcode"));} }')
             ->inIs('THEN')
             ->outIs('ELSE')
             ->atomIs('Sequence')
             ->raw('sideEffect{ selse = []; it.get().vertices(OUT, "EXPRESSION").sort{it.value("rank")}.each{ selse.add(it.value("fullcode"));} }')
             ->raw('filter{ sthen.join(";") == selse.join(";") }')
             ->back('first');
        $this->prepareQuery();

    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class TestThenCast extends Analyzer {
    public function analyze() {
        // if ($a != 0) { return 4 / (int) $a; }
        $this->atomIs('Ifthen')
             ->outIs('CONDITION')
             ->atomInsideNoDefinition('Comparison')
             ->codeIs(array('==', '!=', '===', '!==')) // Avoid < and >
             ->outIs(array('LEFT', 'RIGHT'))
             ->is('intval', 0)
             ->inIs(array('LEFT', 'RIGHT'))
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs(self::CONTAINERS)
             ->savePropertyAs('fullcode', 'name')
             ->back('first')
             ->outIs(array('THEN', 'ELSE'))
             ->atomIsNot('Ifthen')
             ->fullcodeInside('name')
             ->inIs('CAST')
             ->tokenIsNot(array('T_UNSET_CAST', 'T_STRING_CAST', 'T_ARRAY_CAST', 'T_OBJECT_CAST'))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ReturnTrueFalse extends Analyzer {
    public function analyze() {

        // If ($a == 2) { return true; } else { return false; }
        // If ($a == 2) { return false; } else { return true; }
        $this->atomIs('Ifthen')

             ->outIs('THEN')
             ->is('count', 1)
             ->outIs('EXPRESSION')
             ->atomIs('Return')
             ->outIs('RETURN')
             ->atomIs(array('Boolean', 'Null', 'Integer'))
             ->savePropertyAs('boolean', 'a')
             ->inIs('RETURN')
             ->inIs('EXPRESSION')
             ->inIs('THEN')

             ->outIs('ELSE')
             ->is('count', 1)
             ->outIs('EXPRESSION')
             ->atomIs('Return')
             ->outIs('RETURN')
             ->atomIs(array('Boolean', 'Null', 'Integer'))
             ->notSamePropertyAs('boolean', 'a')

             ->back('first');
        $this->prepareQuery();

        // If ($a == 2) { $b = true; } else { $b = false; }
        // If ($a == 2) { $b = false; } else { $b = true; }
        $this->atomIs('Ifthen')
             ->outIs('THEN')
             ->is('count', 1)
             ->outIs('EXPRESSION')
             ->atomIs('Assignation')

             ->outIs('LEFT')
             ->savePropertyAs('fullcode', 'container')
             ->inIs('LEFT')

             ->outIs('RIGHT')
             ->atomIs(array('Boolean', 'Null', 'Integer'))
             ->savePropertyAs('boolean', 'valeur')
             ->back('first')

             ->outIs('ELSE')
             ->is('count', 1)
             ->outIs('EXPRESSION')
             ->atomIs('Assignation')

             ->outIs('LEFT')
             ->samePropertyAs('fullcode', 'container')
             ->inIs('LEFT')

             ->outIs('RIGHT')
             ->atomIs(array('Boolean', 'Null', 'Integer'))
             ->notSamePropertyAs('boolean', 'valeur')

             ->back('first');
        $this->prepareQuery();

        // $a = ($b == 2) ? true : false;
        // $a = ($b == 2) ? false : true;
        $this->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomIs('Ternary')

             ->outIs('THEN')
             ->atomIs('Boolean')
             ->savePropertyAs('boolean', 'a')
             ->inIs('THEN')

             ->outIs('ELSE')
             ->atomIs('Boolean')
             ->notSamePropertyAs('boolean', 'a')

             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class NonBreakableSpaceInNames extends Analyzer {
    public function analyze() {
        // class This has non breakable spaces {}
        $this->atomIs(array('Identifier', 'Nsname', 'Name'))
             ->regexIs('fullcode', ' '); // <- This is a non-breakable space in there
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ShouldUseMath extends Analyzer {
    /* Remove this if useless
    public function dependsOn() : array {
        return array('MethodDefinition');
    }
    */

    public function analyze() {
        // $a += $a;
        $this->atomIs('Assignation')
             ->codeIs(array('+=', '*=', '/=', '%=', '-='))
             ->outIs('LEFT')
             ->savePropertyAs('fullcode', 'name')
             ->back('first')
             ->outIs('RIGHT')
             ->samePropertyAs('fullcode', 'name')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class VariableMayBeNonGlobal extends Analyzer {
    public function analyze() {
        // function foo() { $s = 1; static $s; }
        // function foo() { $g = 1; global $g; }
        $this->atomIs(array('Static', 'Global'))
             ->outIs(array('STATIC', 'GLOBAL'))
             ->atomIs('Variabledefinition')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class UnconditionLoopBreak extends Analyzer {

    public function analyze() {
        // foreach($a as $b) { $c++; continue; }
        $this->atomIs(self::LOOPS_ALL)
             ->outIs('BLOCK')
             ->outIs('EXPRESSION')
             ->atomIs(self::BREAKS)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class UnsetInForeach extends Analyzer {
    public function analyze() {
        // foreach($a as $v) { unset($v); }
        // Only valid : Objects (unset on properties) or arrays (if the blind variable is reference)
        $this->atomIs('Foreach')
             ->outIs(array('INDEX', 'VALUE'))
             ->atomIs('Variable')
             ->is('reference', true)
             ->savePropertyAs('code', 'blind')
             ->back('first')

             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Unset')
             ->outIs('ARGUMENT')
             ->outIsIE(array('VARIABLE', 'OBJECT'))
             ->samePropertyAs('code', 'blind', self::CASE_SENSITIVE)
             ->inIsIE(array('VARIABLE', 'OBJECT'))
             ->atomIsNot(array('Member', 'Array'))
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('Foreach')
             ->outIs(array('INDEX', 'VALUE'))
             ->atomIs('Variable')
             ->isNot('reference', true)
             ->savePropertyAs('code', 'blind')
             ->back('first')

             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Unset')
             ->outIs('ARGUMENT')
             ->atomIs('Variable')
             ->samePropertyAs('code', 'blind', self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();

////////////////////////////////////////////////////////////
// same but with (unset) instead of unset()
////////////////////////////////////////////////////////////
        $this->atomIs('Foreach')
             ->outIs(array('INDEX', 'VALUE'))
             ->atomIs('Variable')
             ->savePropertyAs('code', 'blind')
             ->is('reference', true)
             ->back('first')

             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Cast')
             ->tokenIs('T_UNSET_CAST')
             ->outIs('CAST')
             ->outIsIE(array('VARIABLE', 'OBJECT'))
             ->samePropertyAs('code', 'blind', self::CASE_SENSITIVE)
             ->inIsIE(array('VARIABLE', 'OBJECT'))
             ->atomIsNot(array('Member', 'Array'))
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('Foreach')
             ->outIs(array('INDEX', 'VALUE'))
             ->atomIs('Variable')
             ->savePropertyAs('code', 'blind')
             ->isNot('reference', true)
             ->back('first')

             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Cast')
             ->tokenIs('T_UNSET_CAST')
             ->outIs('CAST')
             ->outIsIE(array('VARIABLE', 'OBJECT'))
             ->samePropertyAs('code', 'blind', self::CASE_SENSITIVE)
             ->inIsIE(array('VARIABLE', 'OBJECT'))
             ->atomIsNot('Member')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class NextMonthTrap extends Analyzer {
    public function analyze() {
        $this->atomFunctionIs('\strtotime')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String')
             ->regexIs('fullcode', '(\\\\+|-|\\\\\$)[0-9a-zA-Z_]+ month')
             ->back('first');
        $this->prepareQuery();

        $this->atomFunctionIs('\strtotime')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String')
             ->regexIs('noDelimiter', '(?i)(?<!of )next month')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Common\WithoutTry;

class RandomWithoutTry extends WithoutTry {
    protected $phpVersion = '7.0+';

    public function analyze() {
        $this->functions = array('\\random_bytes',
                                 '\\random_int',
                                 '\\openssl_random_pseudo_bytes',
                                );
        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class EchoPrintConsistance extends Analyzer {

    public function analyze() {
        $mapping = <<<'GREMLIN'
x2 = it.get().value("token");
GREMLIN;
        $storage = array('print'  => 'T_PRINT',
                         'echo'   => 'T_ECHO',
                         'printf' => 'T_STRING',
                         '<?='    => 'T_OPEN_TAG_WITH_ECHO');

        $this->atomIs(array('Echo', 'Print', 'Functioncall'))
             ->raw('coalesce( has("token", "T_PRINT"), has("token", "T_ECHO"), has("token", "T_OPEN_TAG_WITH_ECHO"), has("fullnspath", "\\\\printf"))')
             ->raw('map{ ' . $mapping . ' }')
             ->raw('groupCount("gf").cap("gf").sideEffect{ s = it.get().values().sum(); }');
        $types = $this->rawQuery()->toArray();

        if (empty($types)) {
            return;
        }
        $types = $types[0];

        $store = array();
        $total = 0;
        foreach($storage as $key => $v) {
            $c = empty($types[$v]) ? 0 : $types[$v];
            $store[] = array('key'   => $key,
                             'value' => $c);
            $total += $c;
        }
        $this->datastore->addRowAnalyzer($this->analyzerQuoted, $store);

        if ($total == 0) {
            return;
        }

        $types = array_filter($types, function ($x) use ($total) { return $x > 0 && $x / $total < 0.1; });
        if (empty($types)) {
            return;
        }

        $this->atomIs(array('Echo', 'Print', 'Functioncall'))
             ->raw('coalesce( has("token", "T_PRINT"), has("token", "T_ECHO"), has("token", "T_OPEN_TAG_WITH_ECHO"), has("fullnspath", "\\\\printf"))')
             ->raw('sideEffect{ ' . $mapping . ' }')
             ->raw('filter{ x2 in ***}', $types)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class DereferencingAS extends Analyzer {
    protected $phpVersion = '5.3-';

    public function analyze() {
        // $x = array(1,2,3)
        // $x[3];
        $this->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomIs('Arrayliteral') // or some array-returning function
             ->raw('filter{ it.out("ARGUMENT").has("atom", "Void").any() == false}')
             ->inIs('RIGHT')
             ->outIs('LEFT')
             ->savePropertyAs('code', 'storage')
             ->inIs('LEFT')
             ->nextSibling()
             ->atomIsNot(self::LOOPS_ALL)
             ->atomInsideNoDefinition('Variable')
             ->samePropertyAs('code', 'storage')
             ->inIs('VARIABLE')
             ->atomIs('Array')
             ->back('first')
             ->outIs('LEFT');
        $this->prepareQuery();

        // $x = "abc"
        // $x[3];
        $this->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomIs('String') // or some array-returning function ?
             ->fullcodeIsNot(array("''", '""'))
             ->inIs('RIGHT')
             ->outIs('LEFT')
             ->savePropertyAs('code', 'storage')
             ->inIs('LEFT')
             ->nextSibling()
             ->atomIsNot(self::LOOPS_ALL)
             ->atomInsideNoDefinition('Variable')
             ->samePropertyAs('code', 'storage')
             ->inIs('VARIABLE')
             ->atomIs('Array')
             ->back('first')
             ->outIs('LEFT');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ComparisonFavorite extends Analyzer {

    public function analyze() {
        $codeInt = array_values($this->dictCode->translate(array('!==', '===')));
        if (empty($codeInt)) {
            return;
        }

        $mapping = <<<'GREMLIN'
if (it.get().value("code").toLong() in ***) {
    x2 = 'strict';
} else {
    x2 = 'relaxed';
}
GREMLIN;
        $storage = array('strict'  => 'strict',
                         'relaxed' => 'relaxed',
                         );

        $comparators = array('==', '===', '!==', '!=');
        $this->atomIs('Comparison')
             ->codeIs($comparators)
             ->raw('map{ ' . $mapping . ' }', $codeInt)
             ->raw('groupCount("gf").cap("gf").sideEffect{ s = it.get().values().sum(); }');
        $types = $this->rawQuery()->toArray()[0];

        $store = array();
        $total = 0;
        foreach($storage as $key => $v) {
            $c = empty($types[$v]) ? 0 : $types[$v];
            $store[] = array('key'   => $key,
                             'value' => $c);
            $total += $c;
        }
        $this->datastore->addRowAnalyzer($this->analyzerQuoted, $store);

        if ($total === 0) {
            return;
        }

        $types = array_filter($types, function ($x) use ($total) { return $x > 0 && $x / $total < 0.1; });
        if (empty($types)) {
            return;
        }
        $types = array_keys($types);

        $this->atomIs('Comparison')
             ->codeIs($comparators)
             ->raw('map{ ' . $mapping . ' }', $codeInt)
             ->raw('filter{ x2 in ***}', $types)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class OnlyVariableReturnedByReference extends Analyzer {
    public function analyze() {
        // function &returnRef() { return $a;}
        $this->atomIs('Function')
             ->is('reference', true)
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Return')
             ->outIs('RETURN')
             ->outIsIE('CODE') // ignore parenthesis
             ->atomIsNot(array('Staticproperty', 'Variable', 'Array', 'Member'));
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class UselessCheck extends Analyzer {
    public function analyze() {
        // No check on empty() and isset(), as they also check the variable existence
        //    if (count($anArray) > 0){    foreach ($anArray as $el){
        $this->atomIs('Ifthen')
             ->hasNoOut('ELSE')
             ->outIs('CONDITION')
             ->atomInsideNoDefinition('Functioncall')
             // count($a) > 0, sizeof($a) != 0, !empty($a)
             ->functioncallIs(array('\\count', '\\sizeof'))
             ->outWithRank('ARGUMENT', 0)
             ->savePropertyAs('fullcode', 'var')
             ->back('first')
             ->outIs('THEN')
             ->is('count', 1)
             ->outWithRank('EXPRESSION', 0)
             ->atomIs('Foreach')
             ->outIs('SOURCE')
             ->samePropertyAs('fullcode', 'var')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class Htmlentitiescall extends Analyzer {
    public function analyze() {
        $html_functions = array('\\htmlentities',
                                '\\htmlspecialchars',
                               );

        // Case with no 2nd argument (using default)
        $this->atomFunctionIs($html_functions)
             ->noChildWithRank('ARGUMENT', 1)
             ->back('first');
        $this->prepareQuery();

        // Case with no 3rd argument (using default)
        $this->atomFunctionIs($html_functions)
             ->hasChildWithRank('ARGUMENT', 1)
             ->noChildWithRank('ARGUMENT', 2)
             ->back('first');
        $this->prepareQuery();

        $constants = $this->loadIni('htmlentities_constants.ini', 'constants');
        $constants = makeFullNsPath($constants, \FNP_CONSTANT);

        // Case 2nd argument is a constant
        $this->atomFunctionIs($html_functions)
             ->outWithRank('ARGUMENT', 1)
             ->atomIs(array('Identifier', 'Nsname'))
             ->hasChildWithRank('ARGUMENT', 2)
             ->fullnspathIsNot($constants)
             ->back('first');
        $this->prepareQuery();

        // Case 2nd argument is a combinaison
        $this->atomFunctionIs($html_functions)
             ->hasChildWithRank('ARGUMENT', 2)
             ->outWithRank('ARGUMENT', 1)
             ->atomIs(array('Logical', 'Parenthesis'))
             ->outIsIE(array('LEFT', 'RIGHT', 'CODE'))
             ->atomIs(array('Identifier', 'Nsname'))
             ->fullnspathIsNot($constants)
             ->back('first');
        $this->prepareQuery();

        // Case 3rd argument is one of the following value
        $htmlentities_constants = $this->loadIni('htmlentities_constants.ini', 'encoding');
        $this->atomFunctionIs($html_functions)
             ->hasChildWithRank('ARGUMENT', 2)
             ->outWithRank('ARGUMENT', 2)
             ->atomIs('String')
             ->noDelimiterIsNot($htmlentities_constants, self::CASE_INSENSITIVE)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class MissingCases extends Analyzer {
    public function analyze() {
        $this->atomIs('Switch')
             ->initVariable('x', '[]')
             ->raw('sideEffect( __.out("CASES").out("EXPRESSION").out("CASE").hasLabel("String").not(where(out("CONCAT"))).sideEffect{x.add(it.get().value("noDelimiter"));})')
             ->raw('filter{x != [];}.map{x.sort();}');
        $switches = $this->rawQuery()->toArray();

        if (empty($switches)) {
            return;
        }

        // Compare switches together.
        $commons = array();
        foreach($switches as $s) {
            foreach($switches as $a) {
                $diff = array_intersect($a, $s);
                // No common ground
                if (empty($diff)) { continue; }
                $diff = array_merge( array_diff($s, $a), array_diff($a, $s));

                // No differences between the lists
                if (empty($diff)) { continue; }

                // Estimation of the common elements
                $score = 100 * count($diff) / count(array_unique(array_merge($a, $s)));
                if ($score > 25) { continue; }

                $commons[] = $s;
                $commons[] = $a;
            }
        }

        if (empty($commons)) {
            return;
        }

        $commons = array_array_unique($commons);

        $this->atomIs('Switch')
             ->raw('sideEffect{ x = []; }.sideEffect( __.out("CASES").out("EXPRESSION").out("CASE").hasLabel("String").not(where(out("CONCAT"))).sideEffect{x.add(it.get().value("noDelimiter"));}).filter{x != [];}.map{x.sort();}')
             ->raw('filter{ y = ***; if (y.getClass() == "java.util.ArrayList") { x in y.values();} else { x in y; } }', $commons)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ShortTags extends Analyzer {
    protected $phpVersion = '7.0-';

    protected $phpConfiguration = array('short_open_tag' => true,
                                        'asp_tags'       => true);

    public function analyze() {
        // <? code
        $this->atomIs('Phpcode')
             ->codeIs(array('<?', '<script language="php">', '<%=', '<%'), self::TRANSLATE, self::CASE_SENSITIVE);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class UselessBrackets extends Analyzer {
    public function analyze() {
        // $a++; {$b++; }
        $this->atomIs('Sequence')
             ->is('bracket', true)
             ->hasNoIn(array('THEN', 'CASES', 'ELSE', 'BLOCK')) ;
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class UseInstanceof extends Analyzer {
    public function analyze() {
        // get_class($x) == 'Function'
        $this->atomIs('Comparison')
             ->analyzerIsNot('self')
             ->outIs('LEFT')
             ->functioncallIs('\\get_class')
             ->back('first');
        $this->prepareQuery();

        // 'Function' == get_class($x)
        $this->atomIs('Comparison')
             ->analyzerIsNot('self')
             ->outIs('RIGHT')
             ->functioncallIs('\\get_class')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class MismatchedTernary extends Analyzer {
    public function analyze() {
         $excludedAtoms = array('Array',
                                'Functioncall',
                                'Member',
                                'Methodcall',
                                'Staticmethodcall',
                                'Staticproperty',
                                'Ternary',
                                'Void',
                                'Variable',
                              );

        $this->atomIs('Ternary')
             ->codeIs('?')
             ->outIs('THEN')
             ->outIsIE('CODE')
             ->atomIsNot($excludedAtoms)
             ->savePropertyAs('label', 'then')
             ->back('first')
             ->outIs('ELSE')
             ->outIsIE('CODE')
             ->atomIsNot($excludedAtoms)
             ->raw('sideEffect{ if (then == "Concatenation") { then = "String"; } else 
                                if (then == "Addition")      { then = "Integer"; } else 
                                if (then == "Cast")          { then = "Integer"; } 
                                 }')
             ->savePropertyAs('label', 'notthen')
             ->raw('sideEffect{ if (notthen == "Concatenation") { notthen = "String"; } else 
                                if (notthen == "Addition")      { notthen = "Integer"; } else 
                                if (notthen == "Cast")          { notthen = "Integer"; } 
                                 }')
             ->raw('filter{ then != notthen; } ')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class IndicesAreIntOrString extends Analyzer {
    public function analyze() {
        // $x[1.2], $x[true], $x[null];
        $this->atomIs('Array')
             ->outIs('INDEX')
             ->atomIs(array('Boolean', 'Null', 'Float'))
             ->back('first');
        $this->prepareQuery();

        // $x['12'] but not $x['012']
        $this->atomIs('Array')
             ->outIs('INDEX')
             ->atomIs('String')
             ->tokenIsNot('T_NUM_STRING')  // a string but a real integer
             ->hasNoOut('CONCAT')
             ->regexIs('noDelimiter', '^[1-9][0-9]*\\$')
             ->back('first');
        $this->prepareQuery();

        // $x[a] and const a = 2.3
        $this->atomIs('Array')
             ->outIs('INDEX')
             ->atomIs(array('Identifier', 'Nsname'))
             ->inIs('DEFINITION')
             ->outIs('VALUE')
             ->atomIs(array('Boolean', 'Float', 'Null', 'Arrayliteral')) // Functioncall is for array
             ->back('first');
        $this->prepareQuery();

        // $x[a::constant] and class a { const constant = 2.3}
        $this->atomIs('Array')
             ->outIs('INDEX')
             ->atomIs('Staticconstant')
             ->inIs('DEFINITION')
             ->outIs('VALUE')
             ->atomIs(array('Boolean', 'Float', 'Null', 'Arrayliteral')) // Functioncall is for array
             ->back('first');
        $this->prepareQuery();

        // $x[a] and define('a', 2.3)
        $this->atomIs('Array')
             ->outIs('INDEX')
             ->atomIs(array('Identifier', 'Nsname'))
             ->inIs('DEFINITION')
             ->outWithRank('ARGUMENT', 1)
             ->atomIs(array('Boolean', 'Float', 'Null', 'Arrayliteral'))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class FunctionSubscripting extends Analyzer {
    protected $phpVersion = '5.4+';

    public function analyze() {
        $this->atomIs('Array')
             ->outIs('VARIABLE')
             ->atomIs(self::FUNCTIONS_CALLS)
             ->back('first')
             ->inIsIE(array('MEMBER', 'VARIABLE'));
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ForeachSourceValue extends Analyzer {
    public function analyze() {
        // foreach($a as $a)
        // foreach($a as $b => $a)
        $this->atomIs('Foreach')
             ->outIs('SOURCE')
             ->atomIs('Variable')
             ->savePropertyAs('code', 'name')
             ->back('first')
             ->outIs(array('VALUE', 'INDEX'))
             ->atomIs('Variable')
             ->samePropertyAs('code', 'name', self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class CastingTernary extends Analyzer {
    public function analyze() {
        // $a = (string) $b ? 3 : 4;
        // $a = (string) $b ?: 4;
        // $a = (string) $b ?? 4;
        $this->atomIs('Cast')
             ->inIs(array('CONDITION', 'LEFT'))
             ->atomIs(array('Ternary', 'Coalesce'));
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class SetAside extends Analyzer {
    public function analyze() {
        // $b = $a; $a = 3; $a = $b;
        // local variable
        $this->atomIs(self::FUNCTIONS_ALL)
             ->analyzerIsNot('self')
             ->outIs('DEFINITION')
             ->atomIs('Variabledefinition')
             ->savePropertyAs('code', 'name')
             ->filter(
                $this->side()
                     ->outIs('DEFINITION')
                     ->inIs('LEFT')
                     ->atomIs('Assignation')
                     ->raw('count().is(gte(2))')
             )
             ->outIs('DEFINITION')
             ->inIs('LEFT')
             ->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomIs('Variable')
             ->inIs('DEFINITION')

             // second variable
             ->outIs('DEFINITION')
             ->inIs('LEFT')
             ->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomIs('Variable')
             ->samePropertyAs('code', 'name', self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();

        // $b = $this->a; $this->a = 3; $this->a = $b;
        // property
        $this->atomIs(self::CLASSES_ALL)
             ->outIs('PPP')
             ->outIs('PPP')
             ->atomIs('Propertydefinition')
             ->savePropertyAs('propertyname', 'property')
             ->filter(
                $this->side()
                     ->outIs('DEFINITION')
                     ->inIs('LEFT')
                     ->atomIs('Assignation')
                     ->raw('count().is(gte(2))')
             )
             ->outIs('DEFINITION')
             ->inIs('LEFT')
             ->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomIs('Variable')
             ->inIs('DEFINITION')

             // local variable
             ->outIs('DEFINITION')
             ->inIs('LEFT')
             ->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomIs('Member')
             ->outIs('MEMBER')
             ->tokenIs('T_STRING')
             ->samePropertyAs('code', 'property', self::CASE_SENSITIVE)
             ->goToFunction()
             ->analyzerIsNot('self');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class BasenameSuffix extends Analyzer {
    public function analyze() {
        $substringFunctions = array('\substr', '\mb_substring', '\iconv_substr');

        // substr(basename($path), -4);
        $this->atomFunctionIs($substringFunctions)
             ->outWithRank('ARGUMENT', 0)
             ->functioncallIs('\basename')
             ->noChildWithRank('ARGUMENT', 1)
             ->back('first');
        $this->prepareQuery();

        // basename(substr($path, -4));
        $this->atomFunctionIs('\basename')
             ->noChildWithRank('ARGUMENT', 1)
             ->outWithRank('ARGUMENT', 0)
             ->functioncallIs($substringFunctions)
             ->back('first');
        $this->prepareQuery();

        // str_replace('.php', '', basename($path));
        $this->atomFunctionIs(array('\str_replace', '\str_ireplace'))
             ->outWithRank('ARGUMENT', 2)
             ->functioncallIs('\basename')
             ->noChildWithRank('ARGUMENT', 1)
             ->back('first');
        $this->prepareQuery();

        // str_replace('.php', '', basename($path));
        $this->atomFunctionIs('\basename')
             ->noChildWithRank('ARGUMENT', 1)
             ->outWithRank('ARGUMENT', 0)
             ->functioncallIs(array('\str_replace', '\str_ireplace'))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class CheckJson extends Analyzer {
    public function analyze() {
        // json_decode() (no checks)
        $this->atomFunctionIs(array('\\json_encode', '\\json_decode'))
             ->hasNoTryCatch()
             ->goToExpression()
             ->hasNoNextSibling('EXPRESSION')
             ->back('first');
        $this->prepareQuery();

        // json_decode() (no checks)
        $this->atomFunctionIs(array('\\json_encode', '\\json_decode'))
             ->analyzerIsNot('self')
             ->hasNoTryCatch()
             ->goToExpression()
             ->nextSibling('EXPRESSION')
             ->noFunctionInside(array('\\json_last_error', '\\json_last_error_msg'))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class EvalUsage extends Analyzer {
    public function dependsOn(): array {
        return array('Constants/ConstantUsage',
                    );
    }

    public function analyze() {
        // eval($a . ' -s la');
        // OK for constants
        $this->atomFunctionIs('\\create_function')
             ->outIs('ARGUMENT')
             ->is('rank', 0)
             ->atomIsNot(array('Identifier', 'Nsname'))
             ->analyzerIsNot('Constants/ConstantUsage')
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('Eval')
             ->outIs('ARGUMENT')
             ->is('rank', 0)
             ->atomIsNot(array('Identifier', 'Nsname'))
             ->analyzerIsNot('Constants/ConstantUsage')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class LogicalMistakes extends Analyzer {
    public function analyze() {
        // Note : support for parenthesis is added.

        //if ( $a != 1 || $a != 2)
        $this->atomIs('Logical')
             ->codeIs(array('||', 'or'))
             ->outIs('LEFT')
             ->outIsIE('CODE')
             ->atomIs('Comparison')
             ->codeIs(array('!=', '!=='))
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs(self::CONTAINERS)
             ->savePropertyAs('fullcode', 'var')
             ->inIs(array('LEFT', 'RIGHT'))
             ->inIsIE('CODE')
             ->inIs('LEFT')

             ->outIs('RIGHT')
             ->outIsIE('CODE')
             ->atomIs('Comparison')
             ->codeIs(array('!=', '!=='))
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs(self::CONTAINERS)
             ->samePropertyAs('fullcode', 'var')
             ->back('first');
        $this->prepareQuery();

        //if ( $a == 1 || $a != 2)
        $this->atomIs('Logical')
             ->codeIs(array('||', 'or'))
             ->outIs('LEFT')
             ->outIsIE('CODE')
             ->atomIs('Comparison')
             ->codeIs(array('==', '==='))
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs(self::CONTAINERS)
             ->savePropertyAs('fullcode', 'var')
             ->inIs(array('LEFT', 'RIGHT'))
             ->inIsIE('CODE')
             ->inIs('LEFT')

             ->outIs('RIGHT')
             ->outIsIE('CODE')
             ->atomIs('Comparison')
             ->codeIs(array('!=', '!=='))
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs(self::CONTAINERS)
             ->samePropertyAs('fullcode', 'var')
             ->back('first');
        $this->prepareQuery();

        //if ( $a == 1 && $a == 2)
        $this->atomIs('Logical')
             ->codeIs(array('&&', 'and'))
             ->outIs('LEFT')
             ->outIsIE('CODE')
             ->atomIs('Comparison')
             ->codeIs(array('==', '==='))
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs(self::CONTAINERS)
             ->savePropertyAs('fullcode', 'var')
             ->inIs(array('LEFT', 'RIGHT'))
             ->inIsIE('CODE')
             ->inIs('LEFT')

             ->outIs('RIGHT')
             ->outIsIE('CODE')
             ->atomIs('Comparison')
             ->codeIs(array('==', '==='))
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs(self::CONTAINERS)
             ->samePropertyAs('fullcode', 'var')
             ->back('first');
        $this->prepareQuery();

        //if ( $a == 1 && $a != 2)
        $this->atomIs('Logical')
             ->codeIs(array('&&', 'and'))
             ->outIs('LEFT')
             ->outIsIE('CODE')
             ->atomIs('Comparison')
             ->codeIs(array('==', '==='))
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs(self::CONTAINERS)
             ->savePropertyAs('fullcode', 'var')
             ->inIs(array('LEFT', 'RIGHT'))
             ->inIsIE('CODE')
             ->inIs('LEFT')

             ->outIs('RIGHT')
             ->outIsIE('CODE')
             ->atomIs('Comparison')
             ->codeIs(array('!=', '!=='))
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs(self::CONTAINERS)
             ->samePropertyAs('fullcode', 'var')
             ->back('first');
        $this->prepareQuery();

        // Extension to this rule :
        // Check for methodcalls, function calls
        // add support for xor (although, it is rare)
        // may be invert == and != ?
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class QueriesInLoop extends Analyzer {
    public function analyze() {
        // for() { mysql_query(); }
        $this->atomIs(self::LOOPS_ALL)
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Functioncall')
             ->codeIs(array('cubrid_query',
                            'cubrid_prepare',
                            'cubrid_execute',
                            'cubrid_bind',

                            'mssql_query',

                            'mysqli_query',
                            'mysqli_unbuffered_query',
                            'mysqli_db_query',

                            'mysqli_stmt_bind_param',
                            'mysqli_stmt_execute',
                            'mysqli_prepare',

                            'mysql_query',
                            'mysql_unbuffered_query',
                            'mysql_db_query',

                            'oci_execute',
                            'oci_parse',
                            'oci_bind_array_by_name',
                            'oci_bin_by_name',

                            'pg_query',
                            'pg_prepare',
                            'pg_execute',

                            'sqlsrv_execute',
                            'sqlsrv_prepare',
                            'sqlsrv_query',

                            'sqlite_array_query',
                            'sqlite_single_query',
                            'sqlite_unbuffered_query',

                            ))
             ->back('first');
        $this->prepareQuery();

        // for() { $pdo->query(); }
        $this->atomIs(self::LOOPS_ALL)
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Functioncall')
             ->hasIn('METHOD')
             ->codeIs('query') // PDO, cyrus
             ->back('first');
        $this->prepareQuery();

        // for() { somefunction(query()); }

    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class NoDirectAccess extends Analyzer {
    public function analyze() {
        //defined('AJXP_EXEC') or die('Access not allowed'); : Constant used!
        $this->atomIs('Logical')
             ->tokenIs(array('T_BOOLEAN_AND', 'T_BOOLEAN_OR', 'T_LOGICAL_AND', 'T_LOGICAL_OR'))
             // find !defined and defined
             ->atomInsideNoDefinition('Functioncall')
             ->functioncallIs('\\defined')
             ->back('first')
             ->atomInsideNoDefinition('Exit')
             ->back('first');
        $this->prepareQuery();

        //if(!defined('CMS')) die/exit
        $this->atomIs('Ifthen')
             ->outIs('CONDITION')
             // find !defined and defined
             ->atomIs('Not')
             ->outIs('NOT')
             ->atomIs('Functioncall')
             ->functioncallIs('\\defined')
             ->back('first')
             ->outIs('THEN')
             ->atomInsideNoDefinition('Exit')
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('Ifthen')
             ->outIs('CONDITION')
             // find !defined and defined
             ->atomIs('Functioncall')
             ->functioncallIs('\\defined')
             ->back('first')
             ->outIs('THEN')
             ->atomInsideNoDefinition('Exit')
             ->back('first');
        $this->prepareQuery();

        //if (defined('_ECRIRE_INC_VERSION')) return;
        $this->atomIs('Ifthen')
             ->outIs('CONDITION')
             ->atomIs('Functioncall')
             ->functioncallIs('\\defined')
             ->back('first')
             ->outIs('THEN')
             ->outWithRank('EXPRESSION', 0)
             ->atomIs('Return')
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('Ifthen')
             ->outIs('CONDITION')
             ->atomIs('Not')
             ->outIs('NOT')
             ->atomIs('Functioncall')
             ->functioncallIs('\\defined')
             ->back('first')
             ->outIs('THEN')
             ->outWithRank('EXPRESSION', 0)
             ->atomIs('Return')
             ->back('first');
        $this->prepareQuery();

        //if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) die("no access");
        $this->atomIs('Ifthen')
             ->outIs('CONDITION')
             ->functioncallIs(array('\\stristr', '\\strstr'))
             ->back('first')
             ->outIs('THEN')
             ->outWithRank('EXPRESSION', 0)
             ->atomIs('Exit')
             ->back('first');
        $this->prepareQuery();

    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ShellUsage extends Analyzer {
    public function analyze() {
        // backtick shell calls
        $this->atomIs('Shell');
        $this->prepareQuery();

        // function calls with exec, etc
        $this->atomFunctionIs(array('\\exec',
                                    '\\shell_exec',
                                    '\\system',
                                    '\\passthru',
                                    '\\pcntl_exec',
                                    '\\popen',
                                    '\\pcntl_fork',
                                    ));
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class SubstrLastArg extends Analyzer {
    public function analyze() {
        //substr($fileFrom, strlen($unzip_dir), strlen($fileFrom)
        $this->atomFunctionIs('\\substr')
             ->outWithRank('ARGUMENT', 0)
             ->savePropertyAs('fullcode', 'target')
             ->back('first')
             ->outWithRank('ARGUMENT', 2)
             ->functioncallIs('\\strlen')
             ->outWithRank('ARGUMENT', 0)
             ->samePropertyAs('fullcode', 'target')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class NotNot extends Analyzer {
    public function analyze() {
        // !!
        $this->atomIs('Not')
             ->hasNoIn('NOT')
             ->outIs('NOT')
             ->outIsIE('CODE')  // Parenthesis
             ->atomIs('Not')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class IdenticalConsecutive extends Analyzer {
    public function analyze() {
        // $a = $c + 1;
        // $b = $c + 1;
        $this->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomIsNot(array_merge(self::LITERALS, self::CONTAINERS, array('Identifier', 'Nsname', 'Arrayliteral')))
             ->savePropertyAs('fullcode', 'right')
             ->back('first')
             ->nextSibling()
             ->outIs('RIGHT')
             ->samePropertyAs('fullcode', 'right')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class TryFinally extends Analyzer {
    protected $phpVersion = '5.5+';

    public function analyze() {
        $this->atomIs('Try')
             ->hasOut('FINALLY');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class DynamicCalls extends Analyzer {
    public function analyze() {
        // dynamic constants
        $this->atomFunctionIs('\\constant');
        $this->prepareQuery();

        // $$v variable variables
        $this->atomIs('Variable')
             ->outIs('NAME')
             ->tokenIsNot('T_STRING')
             ->back('first');
        $this->prepareQuery();

        // dynamic functioncall
        $this->atomIs('Functioncall')
             ->analyzerIsNot('self')
             ->outIs('NAME')
             ->tokenIsNot(self::FUNCTIONS_TOKENS)
             ->back('first');
        $this->prepareQuery();

        // dynamic new
        $this->atomIs('New')
             ->analyzerIsNot('self')
             ->outIs('NEW')
             ->outIs('NAME')
             ->atomIs('Variable')
             ->back('first');
        $this->prepareQuery();

        // $$o->p or $$o->m() are variable variable, not variable object
        // property
        // $o->{$p}
        $this->atomIs('Member')
             ->analyzerIsNot('self')
             ->outIs('MEMBER')
             ->tokenIsNot(array('T_STRING', 'T_OPEN_BRACKET'))
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('Member')
             ->analyzerIsNot('self')
             ->outIs('MEMBER')
             ->atomIs('Block')
             ->back('first');
        $this->prepareQuery();

        // $o->{$m}()
        $this->atomIs('Methodcall')
             ->analyzerIsNot('self')
             ->outIs('METHOD')
             ->tokenIsNot('T_STRING')
             ->back('first');
        $this->prepareQuery();

        // static constants
        // use constant() or reflexion

        // static property
        $this->atomIs('Staticproperty')
             ->analyzerIsNot('self')
             ->outIs('CLASS')
             ->tokenIsNot(array('T_STRING', 'T_NS_SEPARATOR', 'T_OPEN_BRACKET'))
             ->atomIsNot(self::RELATIVE_CLASS)
             ->back('first');
        $this->prepareQuery();

        // static methods (class part)
        $this->atomIs('Staticmethodcall')
             ->analyzerIsNot('self')
             ->outIs('CLASS')
             ->atomIsNot(array('Identifier', 'Nsname', 'Static', 'Parent', 'Self'))
             ->back('first');
        $this->prepareQuery();

        // static methods (method part)
        $this->atomIs('Staticmethodcall')
             ->analyzerIsNot('self')
             ->outIs('METHOD')
             ->atomIs('Methodcallname')
             ->outIs('NAME')
             ->atomIsNot('Name')
             ->back('first');
        $this->prepareQuery();

// class_alias
// call_user_func_array and co
// classes in names
// support reflection
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class AssignedInOneBranch extends Analyzer {
    public function analyze() {
        // if() {$b = 1; } else { }
        $this->atomIs('Ifthen')
             ->isNot('token', 'T_ELSEIF')
             ->hasOut('ELSE')
             ->outIs('THEN')
             ->atomInsideNoDefinition('Assignation')
             ->codeIs('=')
             ->outIs('RIGHT')
             ->atomIs(self::LITERALS)
             ->inIs('RIGHT')
             ->outIs('LEFT')
             ->atomIs(self::CONTAINERS)
             ->savePropertyAs('fullcode', 'variable')
             ->back('first')
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->outIs('ELSE')
                             ->tokenIsNot('T_ELSEIF')
                             ->atomInsideNoDefinition('Assignation')
                             ->codeIs('=')
                             ->outIs('LEFT')
                             ->atomIs(array('Variable', 'Staticproperty', 'Member', 'Array'))
                             ->samePropertyAs('fullcode', 'variable', self::CASE_INSENSITIVE)
                     )
             )
             ->back('first');
        $this->prepareQuery();

        // if() {} else {$b = 1;  }
        $this->atomIs('Ifthen')
             ->analyzerIsNot('self')
             ->isNot('token', 'T_ELSEIF')
             ->outIs('ELSE')
             ->atomInsideNoDefinition('Assignation')
             ->codeIs('=')
             ->outIs('RIGHT')
             ->atomIs(self::LITERALS)
             ->inIs('RIGHT')
             ->outIs('LEFT')
             ->atomIs(self::CONTAINERS)
             ->savePropertyAs('fullcode', 'variable')
             ->back('first')
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->outIs('THEN')
                             ->tokenIsNot('T_ELSEIF')
                             ->atomInsideNoDefinition('Assignation')
                             ->codeIs('=')
                             ->outIs('LEFT')
                             ->atomIs(array('Variable', 'Staticproperty', 'Member', 'Array'))
                             ->samePropertyAs('fullcode', 'variable', self::CASE_INSENSITIVE)
                     )
             )
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ImpliedIf extends Analyzer {
    public function analyze() {
        // defined() or die
        $this->atomIs('Logical')
             ->codeIs(array('or', '||', 'and', '&&'))

             ->outIs('LEFT')
             ->atomIsNot('Assignation')
             ->inIs('LEFT')

             ->inIsIE('CODE')
             ->inIs('EXPRESSION') // Necessary
             ->hasNoParent('For', 'FINAL')
             ->hasNoParent('For', 'INCREMENT')
             ->hasNoParent('For', 'INIT')

             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ListOmissions extends Analyzer {
    public function dependsOn(): array {
        return array('Variables/VariableUsedOnceByContext',
                    );
    }

    public function analyze() {
        // list($a, $b, $c) = array(1,2,3);
        $this->atomIs('List')
             ->outIs('ARGUMENT')
             ->analyzerIs('Variables/VariableUsedOnceByContext');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class NestedLoops extends Analyzer {
    public function analyze() {
        // foreach() { foreach() {}}
        $this->atomIs(self::LOOPS_ALL)
             ->outIs('BLOCK')
             ->atomInsideNoDefinition(self::LOOPS_ALL)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class UseCountRecursive extends Analyzer {
    public function analyze() {
        // foreach($a as $b) { $d = $d + count($b); }
        $this->atomIs('Foreach')
             ->outIs('VALUE')
             ->outIsIE('VALUE')
             ->savePropertyAs('fullcode', 'blind')
             ->back('first')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Functioncall')
             ->functioncallIs('\\count')
             ->outIs('ARGUMENT')
             ->samePropertyAs('fullcode', 'blind')
             ->inIs('ARGUMENT')
             ->inIs(array('LEFT', 'RIGHT'))
             ->atomIs('Addition')
             ->codeIs('+')
             ->back('first');
        $this->prepareQuery();

        // foreach($a as $b) { $d += count($b); }
        $this->atomIs('Foreach')
             ->outIs('VALUE')
             ->outIsIE('VALUE')
             ->savePropertyAs('fullcode', 'blind')
             ->back('first')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Functioncall')
             ->functioncallIs('\\count')
             ->outIs('ARGUMENT')
             ->samePropertyAs('fullcode', 'blind')
             ->inIs('ARGUMENT')
             ->inIs('RIGHT')
             ->atomIs('Assignation')
             ->codeIs('+=')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ResultMayBeMissing extends Analyzer {
    public function analyze() {
        $this->atomFunctionIs('\\preg_match')
             ->outWithRank('ARGUMENT', 2)
             ->savePropertyAs('code', 'results')
             ->back('first')
             ->hasIn('EXPRESSION')
             ->nextSibling()
             ->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomIs('Array')
             ->outIsIE('VARIABLE')
             ->samePropertyAs('code', 'results')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class InvalidRegex extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/PropagateConstants',
                    );
    }

    public function analyze() {
        $functionList = makeFullnspath(UnknownPregOption::$functions);

        $this->atomFunctionIs($functionList)
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String', self::WITH_CONSTANTS)
             ->hasNoOut('CONCAT')
             ->raw(<<<'GREMLIN'
map{
     if (it.get().value("delimiter") == "'") {
       regex = it.get().value('noDelimiter').replaceAll("\\\\([\$'\\\\])", "\$1");
     } else {
       regex = it.get().value('noDelimiter').replaceAll('\\\\([\$"\\\\])', "\$1");
     }
     
     [regex, it.get().value('fullcode')]
}

GREMLIN
);
        $regexSimple = $this->rawQuery();

        $this->atomFunctionIs($functionList)
             ->outWithRank('ARGUMENT', 0)
             ->atomIs(array('String', 'Concatenation'), self::WITH_CONSTANTS)
             ->hasOut('CONCAT')
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->outWithRank('ARGUMENT', 0)
                             ->atomIs(array('String', 'Identifier', 'Nsname', 'Staticconstant'))
                     )
             )
             ->not(
                $this->side()
                     ->outIs('CONCAT')
                     ->outIs('CONCAT')
             )
             ->raw(<<<'GREMLIN'
 where( 
    __.sideEffect{ c = it.get().value("count") - 1;}
      .out("CONCAT")
      .filter{ it.get().value("rank") == c;}
      .hasLabel("String", "Identifier", "Nsname", "Staticconstant")
      .not(where(__.out("CONCAT")))
)
.not( where( __.out("CONCAT").hasLabel("String", "Identifier", "Nsname", "Staticconstant").not(has("noDelimiter"))) )
.where( __.sideEffect{ liste = [];}
          .out("CONCAT").order().by('rank')
          .hasLabel("String", "Variable", "Array", "Functioncall", "Methodcall", "Staticmethodcall", "Member", "Staticproperty", "Identifier", "Nsname", "Staticconstant", 'Parenthesis')
          .sideEffect{ 
               if ('noDelimiter' in it.get().keys()) {
                   liste.add(it.get().value("noDelimiter").toString().replaceAll('\\\\([\$\\\'"\\\\])', "\$1"));
                } else {
                   liste.add("smi"); // smi is compatible with flags
                }
          }
          .fold()
)
.map{[liste.join(''), it.get().value('fullcode')]};
GREMLIN
);
        $regexComplex = $this->rawQuery();

        $regexList = array_merge($regexSimple->toArray(), $regexComplex->toArray());

        $invalid = array();
        foreach($regexList as list($regex, $fullcode)) {
            // @ is important here : we want preg_match to fail silently.
            if (false === @preg_match($regex, '')) {
                $invalid[] = $fullcode;
            }
        }

        if (empty($invalid)) {
            return;
        }

        $this->atomFunctionIs(UnknownPregOption::$functions)
             ->outWithRank('ARGUMENT', 0)
             ->atomIs(self::STRINGS_ALL, self::WITH_CONSTANTS)
             ->fullcodeIs($invalid)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class MultiplyByOne extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/PropagateConstants',
                    );
    }

    public function analyze() {
        $atoms = array('String', 'Integer', 'Boolean', 'Float', 'Identifier', 'Nsname', 'Assignation', 'Parenthesis', 'Multiplication');

        // $x *= 1;
        $this->atomIs('Assignation')
             ->codeIs(array('*=', '/=', '%=', '**='))
             ->outIs('RIGHT')
             ->atomIs($atoms, self::WITH_CONSTANTS)
             ->is('intval', 1)
             ->regexIs('noDelimiter', '^1\\\\.?0*\\$')
             ->back('first');
        $this->prepareQuery();

        // $x = $y * 1
        $this->atomIs('Multiplication')
             ->codeIs('*')
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs($atoms, self::WITH_CONSTANTS)
             ->is('intval', 1)
             ->regexIs('noDelimiter', '^1\\\\.?0*\\$')
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('Multiplication')
             ->codeIs(array('/', '%'))
             ->outIs('RIGHT')
             ->atomIs($atoms, self::WITH_CONSTANTS)
             ->is('intval', 1)
             ->regexIs('noDelimiter', '^1\\\\.?0*\\$')
             ->back('first');
        $this->prepareQuery();

        // $b * 12 / 12
        $this->atomIs('Multiplication')
             ->codeIs('/')
             ->outIs('RIGHT')
             ->atomIs($atoms, self::WITH_CONSTANTS)
             ->isNot('intval', 1)
             ->savePropertyAs('intval', 'operand')
             ->back('first')

             ->outIs('LEFT')
             ->atomIs('Multiplication')
             ->codeIs('*')
             ->outIs('RIGHT')
             ->samePropertyAs('intval', 'operand')

             ->back('first');
        $this->prepareQuery();

        // $b / 12 * 12
        $this->atomIs('Multiplication')
             ->codeIs('*')
             ->outIs('RIGHT')
             ->atomIs($atoms, self::WITH_CONSTANTS)
             ->isNot('intval', 1)
             ->savePropertyAs('intval', 'operand')
             ->back('first')

             ->outIs('LEFT')
             ->atomIs('Multiplication')
             ->codeIs('/')
             ->outIs('RIGHT')
             ->samePropertyAs('intval', 'operand')

             ->back('first');
        $this->prepareQuery();

        // $x = $y ** 1
        $this->atomIs('Power')
             ->outIs('RIGHT')
             ->atomIs($atoms, self::WITH_CONSTANTS)
             ->is('intval', 1)
             ->regexIs('noDelimiter', '^1\\\\.?0*\\$')
             ->back('first');
        $this->prepareQuery();

        // 1 ** $a;
        $this->atomIs('Power')
             ->outIs('LEFT')
             ->atomIs($atoms, self::WITH_CONSTANTS)
             ->is('intval', 1)
             ->regexIs('noDelimiter', '^1\\\\.?0*\\$')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class GlobalUsage extends Analyzer {
    public function analyze() {
        // global
        $this->atomIs('Globaldefinition');
        $this->prepareQuery();

        // $GLOBALS as a whole
        $this->atomIs('Phpvariable')
             ->hasNoIn('VARIABLE')
             ->codeIs('$GLOBALS', self::TRANSLATE, self::CASE_SENSITIVE);
        $this->prepareQuery();

        // $GLOBALS as a whole
        $this->atomIs('Array')
             ->outIs('VARIABLE')
             ->codeIs('$GLOBALS', self::TRANSLATE, self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class FileUploadUsage extends Analyzer {
    public function analyze() {
        $this->atomIs(self::VARIABLES_ALL)
             ->codeIs('$_FILES', true);
        $this->prepareQuery();

        $this->atomFunctionIs(array('\is_uploaded_file', '\move_uploaded_file'));
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class UncheckedResources extends Analyzer {
    // fread(fopen('path/to/file', 'r'));
    public function analyze() {
        $resourceUsage = $this->loadJson('resource_usage.json');

        $positions = array(0);
        foreach($resourceUsage as $creation => $usage) {
            $creation = makeFullNsPath($creation);
            foreach($positions as $pos) {
                $position = "function$pos";
                if (!isset($usage->{$position})) {
                    continue;
                }
                $functions = makeFullNsPath((array) $usage->{$position});

                //direct usage of the resource :
                // readdir(opendir('uncheckedDir4'));
                $this->atomFunctionIs($creation)
                     ->inIs('ARGUMENT')
                     ->atomIs('Functioncall')
                     ->fullnspathIs($functions);
                $this->prepareQuery();

                // deferred usage of the resource
                //$dir = opendir('uncheckedDir4'); readdir($dir);
                $this->atomFunctionIs($creation)
                     ->inIs('RIGHT')
                     ->atomIs('Assignation')
                     // checked with a if ($resource) or while($resource)
                     ->hasNoIn('CONDITION')
                     ->as('result')
                     ->outIs('LEFT')
                     ->atomIs(self::CONTAINERS)
                     ->savePropertyAs('fullcode', 'tmpvar')
                     ->inIs('LEFT')
                     ->nextSibling()
                     ->atomInsideNoBlock(self::CONTAINERS)
                     ->samePropertyAs('fullcode', 'tmpvar')

                     // checked with a is_resource
                     ->raw('not( where( __.in("ARGUMENT").has("fullnspath", "\\\\is_resource") ) )')
                     // checked with a !$variable
                     ->hasNoIn('NOT')

                     // checked as the condition in a if/then or while
                     ->hasNoParent(array('Ifthen', 'While'), array('CONDITION'))

                     // checked with a $variable &&
                     ->hasNoChildren('Logical', array('LEFT', 'RIGHT'))

                     // checked with a if ($resource == false) or while($resource == false)
                     ->hasNoComparison()

                     ->back('result');
                $this->prepareQuery();
            }
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class IncludeUsage extends Analyzer {
    public function analyze() {
        // Include 'file.php';
        $this->atomIs('Include');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class UsePositiveCondition extends Analyzer {
    public function analyze() {
        // if ($a != $b) {}
        $this->atomIs('Ifthen')
             ->hasOut('THEN')
             ->outIs('ELSE')
             ->tokenIsNot('T_ELSEIF')
             ->raw('not( where( has("count", 1).out("EXPRESSION").hasLabel("Ifthen")) )')
             ->inIs('ELSE')
             ->outIs('CONDITION')
             ->codeIs(array('!=', '!=='))
             ->back('first')
             ->hasNoIn('ELSE');
        $this->prepareQuery();

        // if (!empty($a)) {}
        $this->atomIs('Ifthen')
             ->hasOut('THEN')
             ->outIs('ELSE')
             ->tokenIsNot('T_ELSEIF')
             ->raw('not( where( has("count", 1).out("EXPRESSION").hasLabel("Ifthen")) )')
             ->inIs('ELSE')
             ->outIs('CONDITION')
             ->atomIs('Not')
             ->back('first')
             ->hasNoIn('ELSE');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class UseListWithForeach extends Analyzer {
    public function analyze() {
        // foreach($a as $b) { list($d) = $b; }
        $this->atomIs('Foreach')
             ->analyzerIsNot('self')
             ->not(
                $this->side()
                     ->outIs('VALUE')
                     ->atomIs('List')
             )
             ->outIs('VALUE')
             ->atomIs('Variable')
             ->savePropertyAs('fullcode', 'blind')
             ->back('first')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Variable')
             ->samePropertyAs('fullcode', 'blind')
             ->inIs('RIGHT')
             ->atomIs('Assignation')
             ->outIs('LEFT')
             ->atomIs('List')
             ->back('first');
        $this->prepareQuery();

        // foreach($a as list($b, $c)) { list($e, $f) = $b; }
        $this->atomIs('Foreach')
             ->analyzerIsNot('self')
             ->outIs('VALUE')
             ->atomIs('List')
             ->atomInsideNoDefinition('Variable')
             ->savePropertyAs('fullcode', 'blind')
             ->back('first')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Variable')
             ->samePropertyAs('fullcode', 'blind')
             ->inIs('RIGHT')
             ->atomIs('Assignation')
             ->outIs('LEFT')
             ->atomIs('List')
             ->back('first');
        $this->prepareQuery();

        // foreach($a as $b) { $b[2]; }
        $this->atomIs('Foreach')
             ->analyzerIsNot('self')
             ->not(
                $this->side()
                     ->outIs('VALUE')
                     ->atomIs('List')
             )
             ->outIs('VALUE')
             ->atomIs('Variable')
             ->savePropertyAs('fullcode', 'blind')
             ->back('first')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Array')
             ->is('isRead', true)
             ->outIs('VARIABLE')
             ->atomIs('Variablearray')
             ->samePropertyAs('fullcode', 'blind')
             ->inIs('VARIABLE')
             ->outIs('INDEX')
             ->atomIs(array('Integer', 'String'))
             ->hasNoOut('CONCAT') // Avoid built strings.
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class DontChangeBlindKey extends Analyzer {
    public function analyze() {
        // foreach($a as $b) { $b +=3 ; }
        $this->atomIs('Foreach')
             ->outIs(array('INDEX', 'VALUE'))
             ->isNot('reference', true) // That won't happen to INDEX, but may to VALUE
             ->savePropertyAs('fullcode', 'blind') // use fullcode to handle arrays or properties
             ->back('first')

             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Variable')
             ->samePropertyAs('fullcode', 'blind')
             ->is('isModified', true)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class CatchShadowsVariable extends Analyzer {
    public function analyze() {
        // Catch inside a function
        $this->atomIs('Catch')
             ->hasFunction()
             ->outIs('VARIABLE')
             ->savePropertyAs('code', 'catchVariable')
             ->goToFunction()
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Variable')
             ->samePropertyAs('code', 'catchVariable')
             ->hasNoIn('VARIABLE')
             ->hasNoCatch()
             ->back('first');
        $this->prepareQuery();

        // Catch outside a function
        $this->atomIs('Catch')
             ->hasNoFunction(self::FUNCTIONS_ALL)
             ->outIs('VARIABLE')
             ->savePropertyAs('code', 'catchVariable')
             ->goToFile()
             ->outIs('FILE')
             ->atomInsideNoDefinition('Variable')
             ->samePropertyAs('code', 'catchVariable')
             ->hasNoIn('VARIABLE')
             ->hasNoCatch()
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class UselessUnset extends Analyzer {
    public function analyze() {
        // unset on arguments, reference or value
        $this->atomIs('Unset')
             ->outIs('ARGUMENT')
             ->atomIs('Variable')
             ->isArgument()
             ->back('first');
        $this->prepareQuery();

        // unset on global
        $this->atomIs('Unset')
             ->outIs('ARGUMENT')
             ->atomIs('Variable')
             ->savePropertyAs('code', 'varname')
             ->goToFunction()
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Global')
             ->outIs('GLOBAL')
             ->samePropertyAs('code', 'varname', self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();

        // unset on static
        $this->atomIs('Unset')
             ->outIs('ARGUMENT')
             ->atomIs('Variable')
             ->savePropertyAs('code', 'varname')
             ->goToFunction()
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Static')
             ->outIs('STATIC')
             ->samePropertyAs('code', 'varname', self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();

        // unset on foreach (variable or property)
        $this->atomIs('Foreach')
             ->outIs('VALUE')
             ->atomIs(array('Variable', 'Member'))
             ->outIsIE('OBJECT')
             ->savePropertyAs('code', 'varname')
             ->inIsIE('OBJECT')
             ->inIs('VALUE')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Unset')
             ->as('result')
             ->outIs('ARGUMENT')
             ->outIsIE('OBJECT')
             ->samePropertyAs('code', 'varname', self::CASE_SENSITIVE)
             ->inIsIE('OBJECT')
             ->not(
                $this->side()
                     ->outIs('OBJECT')
                     ->atomIs('Member')
             )
             ->back('result');
        $this->prepareQuery();

        // unset on foreach (KeyVal -> value)
        $this->atomIs('Foreach')
             ->outIs('INDEX')
             ->atomIs(array('Variable', 'Member'))
             ->outIsIE('OBJECT')        // Case it is a property...
             ->savePropertyAs('code', 'varname')
             ->inIsIE('OBJECT')
             ->inIs('VALUE')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Unset')
             ->as('result')
             ->outIs('ARGUMENT')
             ->outIsIE('OBJECT')
             ->samePropertyAs('code', 'varname', self::CASE_SENSITIVE)
             ->inIsIE('OBJECT')
             ->not(
                $this->side()
                     ->outIs('OBJECT')
                     ->atomIs('Member')
             )
             ->back('result');
        $this->prepareQuery();

    // unset as operator
        // unset on arguments, reference or value
        $this->atomIs('Cast')
             ->tokenIs('T_UNSET_CAST')
             ->outIs('CAST')
             ->atomIs('Variable')
             ->isArgument()
             ->back('first');
        $this->prepareQuery();

        // unset on global
        $this->atomIs('Cast')
             ->tokenIs('T_UNSET_CAST')
             ->outIs('CAST')
             ->atomIs('Variable')
             ->savePropertyAs('code', 'varname')
             ->goToFunction()
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Global')
             ->outIs('GLOBAL')
             ->samePropertyAs('code', 'varname', self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();

        // unset on static
        $this->atomIs('Cast')
             ->tokenIs('T_UNSET_CAST')
             ->outIs('CAST')
             ->atomIs('Variable')
             ->savePropertyAs('code', 'varname')
             ->goToFunction()
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Static')
             ->outIs('STATIC')
             ->samePropertyAs('code', 'varname', self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();

        // unset on foreach (variable)
        $this->atomIs('Foreach')
             ->outIs('VALUE')
             ->atomIs('Variable')
             ->savePropertyAs('code', 'varname')
             ->inIs('VALUE')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Cast')
             ->tokenIs('T_UNSET_CAST')
             ->as('result')
             ->outIs('CAST')
             ->samePropertyAs('code', 'varname', self::CASE_SENSITIVE)
             ->back('result');
        $this->prepareQuery();

        // unset on foreach (KeyVal)
        $this->atomIs('Foreach')
             ->outIs('VALUE')
             ->atomIs('Keyvalue')
             ->outIs('VALUE')
             ->savePropertyAs('code', 'varname')
             ->inIs('VALUE')
             ->inIs('VALUE')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Cast')
             ->tokenIs('T_UNSET_CAST')
             ->as('result')
             ->outIs('CAST')
             ->samePropertyAs('code', 'varname', self::CASE_SENSITIVE)
             ->back('result');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Common\Extension;

class ResourcesUsage extends Extension {

    public function analyze() {
        // use of Common\Extension, but only really care for functions
        $this->source = 'resource_creation.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class DirectlyUseFile extends Analyzer {
    public function analyze() {
        // md5(file_get_contents('path));
        $functions = array(0 => array('\\md5',
                                      '\\highlight_string',
                                      '\\parsekit_compile_string',
                                      '\\parse_ini_string',
                                      '\\sha1',
                                      '\\simplexml_load_string',
                                      '\\yaml_parse',
                                     ),
                           1 => array('\\hash',
                                      '\\hash_hmac_file',
                                      '\\hash_update',
                                      '\\recode',
                                      '\\recode_string',
                                     ),
                           );

/*
        This works with file_put_contents()
                                      '\\openssl_pkcs12_export',
                                      '\\openssl_pkcs12_export',
                                      '\\openssl_pkey_export',
                                      '\\openssl_x509_export'
*/

        foreach($functions as $position => $function) {
            $this->atomFunctionIs($function)
                 ->outWithRank('ARGUMENT', $position)
                 ->functioncallIs('\\file_get_contents')
                 ->back('first');
            $this->prepareQuery();
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ForWithFunctioncall extends Analyzer {
    public function analyze() {
        //for(; $b < 10; $a++)
        $this->atomIs('For')
             ->analyzerIsNot('self')
            // This looks for variables inside the INCREMENT
             ->outIs('INCREMENT')
             ->collectVariables('variables')
             ->back('first')
             ->outIs('FINAL')
             ->atomInsideNoDefinition('Functioncall')
            // This checks for usage of increment variables inside the FINAL
             ->noCodeInside('Variable', 'variables')
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('For')
             ->analyzerIsNot('self')
             ->outIs('INCREMENT')
             ->atomInsideNoDefinition('Functioncall')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class AssigneAndCompare extends Analyzer {
    public function analyze() {
        // if ($a = strpos($b, $c) > 0)
        $this->atomIs('Assignation')
             ->hasNoIn('EXPRESSION')
             ->outIs('RIGHT')
             ->atomIs('Comparison')

             //Skip comparison that yield boolean
             ->not(
                $this->side()
                     ->codeIs(array('==', '==='))
                     ->outIs(array('LEFT', 'RIGHT'))
                     ->atomIs('Boolean')
             )
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class UseCaseValue extends Analyzer {
    public function analyze() {
        // switch ($x) { case 'd' : echo $x; }
        $this->atomIs('Switch')
             ->outIs('CONDITION')
             ->atomIs('Variable')
             ->savePropertyAs('code', 'variable')
             ->back('first')

             ->outIs('CASES')
             ->outIs('EXPRESSION')

             ->atomIs('Case')
             ->as('results')
             ->outIs('CODE')
             // code is not shared with previous case or default
             ->filter(
                $this->side()
                     ->inIs('CODE')
                     ->count()
                     ->isEqual(1)
             )
             ->atomInsideNoDefinition('Variable')
             ->samePropertyAs('code', 'variable')
             ->is('isRead', true)
             ->back('results')

             // previous is not fallthrough
             ->not(
                $this->side()
                     ->previousSibling('EXPRESSION')
                     ->outIs('CODE')
                     ->noAtomInside(self::BREAKS)
             );
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class GtOrLtFavorite extends Analyzer {

    public function analyze() {
        $codeInt = $this->dictCode->translate(array('>', '>='));
        if (empty($codeInt)) {
            return;
        }

        $mapping = <<<'GREMLIN'
if (it.get().value("code").toLong() in ***) {
    x2 = '>';
} else {
    x2 = '<';
}
GREMLIN;
        $storage = array('>'  => '>',
                         '<'  => '<',
                         );

        $this->atomIs('Comparison')
             ->codeIs(array('>=', '>', '<', '<='))
             ->raw('map{ ' . $mapping . ' }', $codeInt)
             ->raw('groupCount("gf").cap("gf").sideEffect{ s = it.get().values().sum(); }');
        $types = $this->rawQuery()->toArray()[0];

        $store = array();
        $total = 0;
        foreach($storage as $key => $v) {
            $c = empty($types[$v]) ? 0 : $types[$v];
            $store[] = array('key'   => $key,
                             'value' => $c);
            $total += $c;
        }
        $this->datastore->addRowAnalyzer($this->analyzerQuoted, $store);
        if ($total === 0) {
            return;
        }

        $types = array_filter($types, function ($x) use ($total) { return $x > 0 && $x / $total < 0.1; });
        if (empty($types)) {
            return;
        }
        $types = array_keys($types);

        if (empty($types)) {
            return;
        }

        $this->atomIs('Comparison')
             ->codeIs(array('>=', '>', '<', '<='))
             ->raw('map{ ' . $mapping . ' }', $codeInt)
             ->raw('filter{ x2 in ***}', $types)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ConstantScalarExpression extends Analyzer {
    protected $phpVersion = '5.6+';

    public function analyze() {
        $authorizedAtoms = array('Integer', 'String', 'Float', 'Boolean', 'Void', 'Staticconstant', 'Null', 'Identifier');

        // in constants
        $this->atomIs('Const')
             ->outIs('CONST')
             ->outIs('VALUE')
             ->atomIsNot($authorizedAtoms)
             ->back('first');
        $this->prepareQuery();

        // in argument's default value
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->outIs('DEFAULT')
             ->hasNoIn('RIGHT')
             ->atomIsNot($authorizedAtoms)
             ->back('first');
        $this->prepareQuery();

        // in property's default value
        $this->atomIs(array('Class', 'Trait'))
             ->outIs('PPP')
             ->atomIs('Ppp')
             ->outIs('PPP')
             ->atomIs('Propertydefinition')
             ->outIs('DEFAULT')
             ->hasNoIn('RIGHT')
             ->atomIsNot($authorizedAtoms)
             ->inIs('DEFAULT');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class SwitchWithMultipleDefault extends Analyzer {
    protected $phpVersion = '7.0-';

    public function analyze() {
        $this->atomIs('Switch')
             ->raw('where( __.out("CASES").out("EXPRESSION").hasLabel("Default").count().is(gt(1)) )')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class UselessGlobal extends Analyzer {
    public function analyze() {
        // Global are unused if used only once
        $this->atomIs('Globaldefinition')
             ->values('code');
        $inglobal = $this->rawQuery()
                         ->toArray();

        $this->atomIs('Phpvariable')
             ->codeIs('$GLOBALS', self::TRANSLATE, self::CASE_SENSITIVE )
             ->inIs('VARIABLE')
             ->atomIs('Array')
             ->values('globalvar');
        $inGlobals = $this->rawQuery()
                          ->toArray();

        $this->atomIs('Php')
             ->outIs('CODE')
             ->atomInsideNoDefinition(array('Variable', 'Variablearray', 'Variableobject', 'Globaldefinition'))
             ->values('code');
        $implicitGLobals = $this->rawQuery()
                                ->toArray();

        $counts = array_count_values(array_merge($inGlobals, $inglobal, $implicitGLobals));
        $loneGlobal = array_filter($counts, function ($x) { return $x === 1; });
        $loneGlobal = array_keys($loneGlobal);

        if (!empty($loneGlobal)) {
            $this->atomIs('Globaldefinition')
                 ->codeIs($loneGlobal, self::NO_TRANSLATE, self::CASE_SENSITIVE);
            $this->prepareQuery();

            $this->atomIs('Phpvariable')
                 ->codeIs('$GLOBALS', self::TRANSLATE, self::CASE_SENSITIVE)
                 ->inIs('VARIABLE')
                 ->atomIs('Array')
                 ->is('globalvar', $loneGlobal);
            $this->prepareQuery();
        }

        $superglobals = $this->loadIni('php_superglobals.ini', 'superglobal');
        $superglobals = $this->dictCode->translate($superglobals);
        if (!empty($superglobals)) {
            $this->atomIs('Globaldefinition')
                 ->analyzerIsNot('self')
                 ->codeIs($superglobals, self::NO_TRANSLATE, self::CASE_SENSITIVE);
            $this->prepareQuery();
        }

        // used only once

        // written only
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class UnknownPregOption extends Analyzer {
    public static $functions = array('\preg_match',
                                     '\preg_match_all',
                                     '\preg_replace',
                                     '\preg_replace_callback',
                                     '\preg_filter',
                                     '\preg_grep',
                                     '\preg_split',
                                     );

    public function analyze() {
        // Options list : eimsuxADJSUX (we use all letters, as unknown options are ignored or yield an error)
        $options = 'eimsuxADJSUX';

        // preg_match with a string
        $this->atomFunctionIs(self::$functions)
             ->outWithRank('ARGUMENT', 0)
             ->tokenIs('T_CONSTANT_ENCAPSED_STRING')
             ->isNot('noDelimiter', '')
             ->raw(pregOptionE::FETCH_DELIMITER)
             ->raw(pregOptionE::MAKE_DELIMITER_FINAL)
             ->raw('filter{ it.get().value("noDelimiter") != delimiter + delimiterFinal ; }')
             ->regexIs('noDelimiter', '^(" + delimiter + ").*(?<!\\\\\\\\)(" + delimiterFinal + ")([a-zA-Z]*[^ ' . $options . '" + delimiterFinal + "][a-zA-Z]*)\$')
             ->back('first');
        $this->prepareQuery();

        // With an interpolated string "a $x b"
        $this->atomFunctionIs(self::$functions)
             ->outWithRank('ARGUMENT', 0)
             ->tokenIs('T_QUOTE')
             ->hasOut('CONCAT')
             ->outWithRank('CONCAT', 0)
             ->atomIs('String')
             ->isNot('noDelimiter', '')
             ->raw(pregOptionE::FETCH_DELIMITER)
             ->inIs('CONCAT')
             ->outWithRank('CONCAT', 'last')
             ->atomIs('String')
             ->isNot('noDelimiter', '')
             ->inIs('CONCAT')
             ->raw(pregOptionE::MAKE_DELIMITER_FINAL)
             ->regexIs('fullcode', '^.(" + delimiter + ").*(?<!\\\\\\\\)(" + delimiterFinal + ")([a-zA-Z]*[^ ' . $options . '" + delimiterFinal + "][a-zA-Z]*).\$')
             ->back('first');
        $this->prepareQuery();

        // with a concatenation
        $this->atomFunctionIs(self::$functions)
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('Concatenation')
             ->as('concat')
             ->outWithRank('CONCAT', 0)
             ->atomIs('String')
             ->outIsIE('CONCAT') // In case it is an interpolated string
             ->is('rank', 0)     // Same as above, but may be double when there is no interpolation
             ->atomIs('String')
             ->isNot('noDelimiter', '')
             ->raw(pregOptionE::FETCH_DELIMITER)
             ->raw(pregOptionE::MAKE_DELIMITER_FINAL)
             ->back('concat')
             ->regexIs('fullcode', '^.(" + delimiter + ").*(?<!\\\\\\\\)(" + delimiterFinal + ")([a-zA-Z]*[^ ' . $options . '" + delimiterFinal + "][a-zA-Z]*).\$')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class DontReadAndWriteInOneExpression extends Analyzer {
    public function analyze() {
        //$a + ($a = 2);
        $this->atomIs('Assignation')
             ->outIs('LEFT')
             ->savePropertyAs('fullcode', 'variable')
             ->savePropertyAs('self', 'assigned')
             ->inIs('LEFT')
             ->goToFirstExpression()
             ->atomIs(self::EXPRESSION_ATOMS) // This is needed for the previous step!!
             ->atomInsideNoDefinition('Variable')
             ->notSamePropertyAs('self', 'assigned')
             ->samePropertyAs('fullcode', 'variable')
             ->is('isRead', true)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class AutoUnsetForeach extends Analyzer {
    public function analyze() {
        // foreach($a as $a) {}
        $this->atomIs('Foreach')
             ->outIs('SOURCE')
             ->atomIs('Variable')
             ->savePropertyAs('code', 'source')
             ->back('first')
             ->outIs(array('INDEX', 'VALUE'))
             ->atomInsideNoDefinition('Variable')
             ->samePropertyAs('code', 'source')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class OneDotOrObjectOperatorPerLine extends Analyzer {
    public function analyze() {
        // Two expressions in a row
        $this->atomIs(array('Member', 'Methodcall'))
             ->hasNoIn('OBJECT')
             ->savePropertyAs('line', 'row')
             ->outIs('OBJECT')
             ->atomIs(array('Member', 'Methodcall'))
             ->samePropertyAs('line', 'row')
             ->back('first');
        $this->prepareQuery();

        // Two expressions with HTML between
        $this->atomIs('Concatenation')
             ->outIs('CONCAT')
             ->savePropertyAs('line', 'row')
             ->nextSibling('CONCAT')
             ->samePropertyAs('line', 'row')
             ->nextSibling('CONCAT')
             ->samePropertyAs('line', 'row')
             ->back('first');
        $this->prepareQuery();

        // f('a'.'b', $c->d);
        $this->atomIs('Concatenation')
             ->hasIn('ARGUMENT')
             ->savePropertyAs('line', 'row')
             ->nextSibling('ARGUMENT')
             ->atomIs(array('Concatenation', 'Methodcall', 'Member'))
             ->samePropertyAs('line', 'row')
             ->inIs('ARGUMENT');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class UseDebug extends Analyzer {
    public function analyze() {
        $debug = $this->loadIni('debug.ini');

        // Using functioncalls
        $this->atomIs('Functioncall')
             ->fullnspathIs($debug->functions);
        $this->prepareQuery();

        // Using classes
        $this->atomIs('Staticmethodcall')
             ->outIs('CLASS')
             ->fullnspathIs($debug->classes);
        $this->prepareQuery();

        $this->atomIs('New')
             ->outIs('NEW')
             ->atomIs('Newcall')
             ->fullnspathIs($debug->classes);
        $this->prepareQuery();

        // Using constants
        $this->atomIs('Defineconstant')
             ->outIs('NAME')
             ->atomIs('Identifier')
             ->hasNoOut('CONCAT')
             ->noDelimiterIs($debug->constants);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class DirThenSlash extends Analyzer {
    public function analyze() {
        // $a = __DIR__.'asb' : __DIR__ must be followed by /
        $this->atomIs('Concatenation')
             ->outIs('CONCAT')
             ->atomIs('Magicconstant')
             ->is('fullcode', '__DIR__')
             ->nextSibling('CONCAT')
             ->atomIs('String', self::WITH_CONSTANTS)
             ->hasNoOut('CONCAT')
             ->regexIs('noDelimiter', '^[^/]')
             ->back('first');
        $this->prepareQuery();

        // $a = __DIR__."as$b" : __DIR__ must be followed by /
        $this->atomIs('Concatenation')
             ->outIs('CONCAT')
             ->atomIs('Magicconstant')
             ->is('fullcode', '__DIR__')
             ->nextSibling('CONCAT')
             ->atomIs('String')
             ->hasOut('CONCAT')
             ->outWithRank('CONCAT', 0)
             ->atomIs('String')
             ->hasNoOut('CONCAT')
             ->regexIs('noDelimiter', '^[^/]')
             ->back('first');
        $this->prepareQuery();

        // $a = __DIR__.'asb' : __DIR__ must be followed by /
        $this->atomIs('Concatenation')
             ->outIs('CONCAT')
             ->functioncallIs('\\dirname')
             ->nextSibling('CONCAT')
             ->atomIs('String')
             ->hasNoOut('CONCAT')
             ->regexIs('noDelimiter', '^[^/]')
             ->back('first');
        $this->prepareQuery();

        // $a = __DIR__."as$b" : __DIR__ must be followed by /
        $this->atomIs('Concatenation')
             ->outIs('CONCAT')
             ->functioncallIs('\\dirname')
             ->nextSibling('CONCAT')
             ->atomIs('String')
             ->hasOut('CONCAT')
             ->outWithRank('CONCAT', 0)
             ->atomIs('String')
             ->hasNoOut('CONCAT')
             ->regexIs('noDelimiter', '^[^/]')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ReuseVariable extends Analyzer {
    public function analyze() {
        $expressions = array('Functioncall',
                             'Methodcall',
                             'Staticmethodcall',
                             'Concatenation',
                             'Parenthesis',
                             'Addition',
                             'Multiplication',
                             'Bitshift',
                             'Power',
                             'Logical',
                             'Not',
                             'Cast',
                             'Arrayliteral',
                             'Sign',
                             'Comparison',
                             'Ternary',
                             'Postplusplus',
                             'Preplusplus',
                             'Coalesce',
                             'Isset',
                             'Empty',
                            );
        // $a = foo($b);
        // if (foo($b)) {}
        $this->atomIs('Assignation')
             ->codeIs('=', self::TRANSLATE, self::CASE_SENSITIVE)
             ->outIs('RIGHT')
             ->atomIs($expressions)
             ->analyzerIsNot('self')
             ->savePropertyAs('fullcode', 'expression')
             ->savePropertyAs('id', 'unique')
             ->savePropertyAs('line', 'row')
             ->isNotEmptyArray()
             ->goToFunction()
             ->outIs('BLOCK')
             ->atomInsideNoDefinition($expressions)
             ->fullcodeVariableIs('expression')
             ->notSamePropertyAs('id', 'unique')
             ->isMore('line', 'row');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ContinueIsForLoop extends Analyzer {
    public function analyze() {
        $switchAndLoop = array('Switch', 'Foreach', 'For', 'While', 'Dowhile');

        // foreach() { switch () { case 1 : continue; } }
        $this->atomIs('Continue')
             ->outIs('CONTINUE')
             ->is('intval', array(0, 1))
             ->back('first')
             ->goToInstruction($switchAndLoop)
             ->atomIs('Switch');
        $this->prepareQuery();

        // foreach() { switch () { case 1 : continue; } }
        $this->atomIs('Continue')
             ->outIs('CONTINUE')
             ->is('intval', 2)
             ->back('first')
             ->goToInstruction($switchAndLoop)
             ->goToInstruction($switchAndLoop)
             ->atomIs('Switch');
        $this->prepareQuery();

        // foreach() { switch () { case 1 : continue; } }
        $this->atomIs('Continue')
             ->outIs('CONTINUE')
             ->is('intval', 3)
             ->back('first')
             ->goToInstruction($switchAndLoop)
             ->goToInstruction($switchAndLoop)
             ->goToInstruction($switchAndLoop)
             ->atomIs('Switch');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class MultipleCatch extends Analyzer {
    public function analyze() {
        $this->atomIs('Try')
             ->isMore('count', 1);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class GlobalInGlobal extends Analyzer {
    public function analyze() {
        // any variable outside anything else (except namespaces)
        $this->atomIs(array('Variable', 'Globaldefinition'))
             ->hasNoFunction(self::FUNCTIONS_ALL)
             ->hasNoClass()
             ->hasNoTrait()
             ->hasNoInterface();
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ElseUsage extends Analyzer {
    public function analyze() {
        $this->atomIs('Ifthen')
             ->hasNoIn('ELSE')
             ->outIs('ELSE')
             ->tokenIsNot('T_ELSEIF')
             ->is('count', 1)
             ->outIs('EXPRESSION')
             ->tokenIsNot('T_IF')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
declare (strict_types = 1);

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class CastToBoolean extends Analyzer {
    public function analyze() {
        // $a == 1 ? 1 : 0
        $this->atomIs('Ternary')
             ->outIs('THEN')
             ->atomIs('Integer')
             ->codeIs(array('0', '1'))
             ->inIs('THEN')
             ->outIs('ELSE')
             ->codeIs(array('0', '1'))
             ->back('first');
        $this->prepareQuery();

        // $a == 1 ? true : false
        $this->atomIs('Ternary')
             ->outIs('THEN')
             ->atomIs('Boolean')
             ->inIs('THEN')
             ->outIs('ELSE')
             ->atomIs('Boolean')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class MultipleUnset extends Analyzer {
    public function analyze() {
        // unset($a); unset($b);
        $this->atomIs('Unset')
             ->nextSibling('EXPRESSION')
             ->atomIs('Unset')
             ->back('first')
             ->previousSibling('EXPRESSION')
             ->atomIsNot('Unset')
             ->back('first');
        $this->prepareQuery();

        // ++$a; unset($a); unset($b);
        $this->atomIs('Unset')
             ->is('rank', 0)
             ->nextSibling('EXPRESSION')
             ->atomIs('Unset')
             ->back('first')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class NegativePow extends Analyzer {
    public function analyze() {
        // -3 * 2 == -(3 ** 2) == 9 (not -9)
        $this->atomIs('Sign')
             ->codeIs('-')
             ->outIs('SIGN')
             ->atomIs('Power')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class UseConstant extends Analyzer {
    public function analyze() {
        $this->atomFunctionIs(array('\\php_version',
                                    '\\php_sapi_name',
                                    '\\pi',
                                    ))
             ->back('first');
        $this->prepareQuery();

        $this->atomFunctionIs('\\fopen')
             ->outWithRank('ARGUMENT', 0)
             ->noDelimiterIs(array('php://stdin', 'php://stdout', 'php://stderr'))
             ->back('first');
        $this->prepareQuery();

        // dirname(__FILE__) => __DIR__
        $this->atomFunctionIs('\\dirname')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('Magicconstant')
             ->codeIs('__file__', self::TRANSLATE, self::CASE_INSENSITIVE)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ExitUsage extends Analyzer {
    public function dependsOn(): array {
        return array('Structures/NoDirectAccess',
                     'Files/IsCliScript',
                    );
    }

    public function analyze() {
        // while (list($a, $b) = each($c)) {}
        $this->atomIs('Exit')
             ->goToInstruction('Ifthen')
             ->analyzerIsNot('Structures/NoDirectAccess')
             ->goToFile()
             ->analyzerIsNot('Files/IsCliScript')
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('Exit')
             ->hasNoInstruction('Ifthen')
             ->goToFile()
             ->analyzerIsNot('Files/IsCliScript')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class NestedTernary extends Analyzer {
    public function analyze() {
        //$a ? $b : $c ? $d : $e
        $this->atomIs('Ternary')
             ->outIs(array('THEN', 'ELSE'))
             ->outIsIE('CODE') // for parenthesis
             ->atomIs('Ternary')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ImplodeArgsOrder extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/CreateDefaultValues',
                     'Complete/PropagateConstants',
                    );
    }

    public function analyze() {
        $functions = array('\\join', '\\implode');

        // detect an array in first arg
        // Constants
        $this->atomFunctionIs($functions)
             ->analyzerIsNot('self')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('Arrayliteral', self::WITH_CONSTANTS)
             ->back('first');
        $this->prepareQuery();

        // Local variable, argument 0
        $this->atomFunctionIs($functions)
             ->analyzerIsNot('self')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('Variable')
             ->inIs('DEFINITION')
             ->inIsIE('NAME')
             ->outIs('DEFAULT')
             ->atomIs('Arrayliteral', self::WITH_CONSTANTS)
             ->back('first');
        $this->prepareQuery();

        // Returntype
        $this->atomFunctionIs($functions)
             ->analyzerIsNot('self')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs(self::FUNCTIONS_CALLS)
             ->inIs('DEFINITION')
             ->outIs('RETURNYTPE')
             ->fullnspathIs('\\array')
             ->back('first');
        $this->prepareQuery();

        // detect a string in second arg
        $this->atomFunctionIs($functions)
             ->analyzerIsNot('self')
             ->outWithRank('ARGUMENT', 1)
             ->atomIs(array('String', 'Heredoc', 'Concatenation'), self::WITH_CONSTANTS)
             ->back('first');
        $this->prepareQuery();
return;
        // Local variable, argument 1
        $this->atomFunctionIs($functions)
             ->analyzerIsNot('self')
             ->outWithRank('ARGUMENT', 1)
             ->atomIs('Variable')
             ->inIs('DEFINITION')
             ->inIsIE('NAME')
             ->outIs('DEFAULT')
             ->atomIs(array('String', 'Heredoc', 'Concatenation'), self::WITH_CONSTANTS)
             ->back('first');
        $this->prepareQuery();

        // Returntype
        $this->atomFunctionIs($functions)
             ->analyzerIsNot('self')
             ->outWithRank('ARGUMENT', 1)
             ->atomIs(self::FUNCTIONS_CALLS)
             ->inIs('DEFINITION')
             ->outIs('RETURNYTPE')
             ->fullnspathIs('\\string')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class AddZero extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/PropagateConstants',
                    );
    }

    public function analyze(): void {
        // $x += 0
        $this->atomIs('Assignation')
             ->codeIs(array('+=', '-='), self::TRANSLATE, self::CASE_SENSITIVE)
             ->outIs('RIGHT')
             ->is('intval', 0)
             ->is('boolean', false)
             ->atomIsNot('Arrayliteral')
             ->back('first');
        $this->prepareQuery();

        // 0 + ($c = 2)
        $this->atomIs('Addition')
             ->outIs(array('LEFT', 'RIGHT'))
             ->is('intval', 0)
             ->is('boolean', false)
             ->atomIsNot('Arrayliteral')
             ->back('first');
        $this->prepareQuery();

        // $a = 0; $c = $a + 2;
        $this->atomIs('Assignation')
             ->codeIs('=')
             ->outIs('RIGHT')
             ->is('intval', 0)
             ->is('boolean', false)
             ->atomIsNot(array('Arrayliteral'))
             ->back('first')
             ->outIs('LEFT')
             ->atomIs('Variable')
             ->savePropertyAs('fullcode', 'varname')
             ->back('first')
             ->nextSibling()
             ->atomIsNot(array('Function', 'Class', 'Trait', 'Interface', 'Dowhile', 'While', 'Foreach', 'For'))
             ->atomInsideNoDefinition('Addition')
             ->as('results')
             ->outIs(array('LEFT', 'RIGHT'))
             ->samePropertyAs('fullcode', 'varname')
             ->back('results');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class BreakNonInteger extends Analyzer {
    protected $phpVersion = '5.4-';

    public function analyze() {
        $this->atomIs('Break')
             ->outIs('LEVEL')
             ->atomIsnot(array('Integer', 'Void'))
             ->codeIsPositiveInteger();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ComparedComparison extends Analyzer {
    public function analyze() {
        //if ($a === strpos($string, $needle) > 2) {}
        $this->atomIs('Comparison')
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs('Comparison')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class NamedRegex extends Analyzer {
    public function analyze() {
        // preg_match_all('/(?<name>a)/', $x, $r); echo $r['name'][0]
        $this->atomFunctionIs(array('\\preg_match', '\\preg_match_all'))
             ->outWithRank('ARGUMENT', 2)
             ->inIs('DEFINITION')
             ->outIs('DEFINITION')
             ->atomIs('Variablearray')
             ->inIs('VARIABLE')
             ->as('results')
             ->outIs('INDEX')
             ->atomIs('Integer')
             ->back('results');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class NoSubstrOne extends Analyzer {
    public function analyze() {
        // Don't use substr($x, $y, 1) but $x[$y];
        $this->atomFunctionIs('\\substr')
             ->outWithRank('ARGUMENT', 2)
             ->is('intval', 1)
             ->back('first');
        $this->prepareQuery();

        // Don't use substr($x, -1) but $x[-1];
        $this->atomFunctionIs('\\substr')
             ->noChildWithRank('ARGUMENT', 2)
             ->outWithRank('ARGUMENT', 1)
             ->is('intval', -1)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class InvalidPackFormat extends Analyzer {
    public function analyze() {
        // pack('nvcT', $s)
        $this->atomFunctionIs('\\unpack')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String')
             ->hasNoOut('CONCAT')
             // This regex include names in the format string, for unpacking
             ->regexIsNot('noDelimiter', '^([@0-9aAhHcCsSnviIlLNVqQJPfgGdeExXZ](\\\\*|\\\\d+)?(\\\\w+\\\\/?)?)+\$')
             ->back('first');
        $this->prepareQuery();

        $this->atomFunctionIs('\\pack')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String')
             ->hasNoOut('CONCAT')
             ->regexIsNot('noDelimiter', '^([@0-9aAhHcCsSnviIlLNVqQJPfgGdeExXZ](\\\\*|\\\\d+)?)+\$')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ConcatEmpty extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/PropagateConstants',
                    );
    }

    public function analyze() {
        // '' . $a
        $this->atomIs('Concatenation')
             ->outWithRank('CONCAT', 'first')
             ->atomIs(array('Identifier', 'Nsname', 'String', 'Null'))
             ->hasNoOut('CONCAT')
             ->atomIs(array('String', 'Null', 'Concatenation'), self::WITH_CONSTANTS)
             ->noDelimiterIs('')
             ->back('first');
        $this->prepareQuery();

        // $a . ''
        $this->atomIs('Concatenation')
             ->analyzerIsNot('self')
             ->outWithRank('CONCAT', 'last')
             ->atomIs(array('Identifier', 'Nsname', 'String', 'Null'))
             ->hasNoOut('CONCAT')
             ->atomIs(array('String', 'Null', 'Concatenation'), self::WITH_CONSTANTS)
             ->noDelimiterIs('')
             ->back('first');
        $this->prepareQuery();

        // $a .= ''
        $this->atomIs('Assignation')
             ->tokenIs('T_CONCAT_EQUAL')
             ->outIs('RIGHT')
             ->atomIs(array('Identifier', 'Nsname', 'String', 'Null'))
             ->atomIs(array('String', 'Null', 'Concatenation'), self::WITH_CONSTANTS)
             ->noDelimiterIs('')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class InconsistentConcatenation extends Analyzer {
    public function analyze() {
        // "a$b".$c.PHP_EOL;
        $this->atomIs('Concatenation')
            // constant, methodcall and functioncall are ignored as not interpolable.
             ->filter(
                $this->side()
                     ->outIs('CONCAT')
                     ->atomIs(array('Variable', 'Array', 'Member'))
             )
             ->outIs('CONCAT')
             ->atomIs('String')
             ->hasOut('CONCAT')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class SwitchToSwitch extends Analyzer {
    public function analyze() {
        // 3 ifthen chained with elseif
        $this->atomIs('Ifthen')
             ->outIs('CONDITION')
             ->atomIs('Comparison')
             ->inIs('CONDITION')
             ->tokenIs('T_IF')
             ->outIs('ELSE')
             ->raw('coalesce( __.hasLabel("Sequence").has("count", 1).out("EXPRESSION"), __.filter{ true; } )')

             ->atomIs('Ifthen')
             ->outIs('CONDITION')
             ->atomIs('Comparison')
             ->inIs('CONDITION')
             ->outIs('ELSE')
             ->outIsIE('EXPRESSION')
             ->raw('coalesce( __.hasLabel("Sequence").has("count", 1).out("EXPRESSION"), __.filter{ true; } )')

             ->atomIs('Ifthen')
             ->outIs('CONDITION')
             ->atomIs('Comparison')
             ->inIs('CONDITION')

             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ModernEmpty extends Analyzer {
    protected $phpVersion = '5.5+';

    public function analyze() {
        // $a = 2; empty($a) ; in a row
        // only works for variables
        $this->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomIsNot(array('Null', 'Boolean', 'Integer', 'Float', 'Identifier', 'Nsname'))
             ->hasAtomInside(array('Functioncall', 'Methodcall', 'Staticmethodcall', 'Addition', 'Multiplication', 'Bitshift', 'Power', 'Logical', 'Comparison'))
             ->inIs('RIGHT')
             ->outIs('LEFT')
             ->atomIs(self::CONTAINERS)
             ->savePropertyAs('fullcode', 'storage')
             ->inIs('LEFT')
             ->nextSiblings()
             ->as('sibling')
             ->atomInsideNoDefinition('Empty')
             ->outIs('ARGUMENT')
             ->atomIs(self::CONTAINERS)
             ->samePropertyAs('fullcode', 'storage', self::CASE_SENSITIVE)
             ->back('sibling')
             ->not(
                $this->side()
                     ->atomInsideNoDefinition(self::CONTAINERS)
                     ->samePropertyAs('fullcode', 'storage', self::CASE_SENSITIVE)
                     ->hasNoParent('Empty', array('ARGUMENT'))
                     ->is('isRead', true)
             )
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class UseArrayFunctions extends Analyzer {
    public function analyze() {
        // foreach($a as $b) { $c[] = $b};
        $this->atomIs(array('For', 'Foreach'))
             ->outIs('BLOCK')
             ->is('count', 1)
             ->outIs('EXPRESSION')
             ->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomIs(array('Addition', 'Multiplication', 'Variable', 'Array', 'Concatenation'))
             ->back('first');
        $this->prepareQuery();

        // foreach($a as $b) { $c = array_slice($b);};
        $this->atomIs(array('For', 'Foreach'))
             ->outIs('BLOCK')
             ->is('count', 1)
             ->outIs('EXPRESSION')
             ->atomIs('Assignation')
             ->outIs('RIGHT')
             ->functioncallIs(array('\\array_slice'))
             ->back('first');
        $this->prepareQuery();

        // foreach($a as $b) { array_push($c, $b);};
        $this->atomIs(array('For', 'Foreach'))
             ->outIs('BLOCK')
             ->is('count', 1)
             ->outIs('EXPRESSION')
             ->functioncallIs(array('\\array_push'))
             ->back('first');
        $this->prepareQuery();

        // foreach($a as $b) { if ($b == 1) { $c[] = 1;} else { $d[] = $b;}};
        $this->atomIs(array('For', 'Foreach'))
             ->outIs('BLOCK')
             ->is('count', 1)
             ->outIs('EXPRESSION')
             ->atomIs('Ifthen')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class Fallthrough extends Analyzer {
    public function analyze() {
        // switch($x) { case 1 : /* no break but something done */; case 2 }
        $this->atomIs('Switch')
             ->outIs('CASES')
             ->outIs('EXPRESSION')
             ->savePropertyAs('fullcode', 'theCase')
             ->outIs('CODE')
             ->hasOut('EXPRESSION')
             ->noAtomInside(array('Break', 'Continue', 'Return', 'Throw', 'Goto', 'Exit', ))
             ->back('first')
             ->outIs('CASES')
             ->outWithRank('EXPRESSION', 'last')
             ->notSamePropertyAs('fullcode', 'theCase')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class VariableGlobal extends Analyzer {
    protected $phpVersion = '7.0-';

    public function analyze() {
        $this->atomIs('Global')
             ->outIs('GLOBAL')
             ->atomIs('Variable')
             ->tokenIs('T_DOLLAR')
             ->isNot('bracket', true)
             ->outIs('NAME')
             ->atomIs('Member')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Common\FunctionDefaultValue;

class McryptcreateivWithoutOption extends FunctionDefaultValue {
    protected $phpVersion = '5.6-';

    public function analyze() {
        $this->code = 'mcrypt_create_iv';
        $this->rank = 1;

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class BooleanStrictComparison extends Analyzer {
    public function analyze() {
        // while (list($a, $b) = each($c)) {}
        $this->atomIs('Comparison')
             ->codeIsNot(array('===', '!=='))
             ->outIs(array('RIGHT', 'LEFT'))
             ->atomIs('Boolean')
             ->back('first');
        $this->prepareQuery();

        // in_array ($array, $value);
        $this->atomFunctionIs('\\in_array')
             ->noChildWithRank('ARGUMENT', 2);
        $this->prepareQuery();

        // in_array ($array, $value, false);
        $this->atomFunctionIs('\\in_array')
             ->outWithRank('ARGUMENT', 2)
             ->is('boolean', false)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ConstDefineFavorite extends Analyzer {

    public function analyze() {
        $mapping = <<<'GREMLIN'
x2 = it.get().label();
GREMLIN;
        $storage = array('const'    => 'Const',
                         'define()' => 'Defineconstant');

        $this->atomIs(array('Const', 'Defineconstant'))
             ->raw(<<<'GREMLIN'
or( __.hasLabel("Defineconstant"), 
    __.hasLabel("Const").not( where( __.in("CONST") ) ) 
  )
GREMLIN
)
             ->raw("map{ $mapping }")
             ->raw('groupCount("gf").cap("gf").sideEffect{ s = it.get().values().sum(); }');
        $types = $this->rawQuery()->toArray();

        if (empty($types)){
            return;
        }

        $types = $types[0];

        $store = array();
        $total = 0;
        foreach($storage as $key => $v) {
            $c = empty($types[$v]) ? 0 : $types[$v];
            $store[] = array('key'   => $key,
                             'value' => $c);
            $total += $c;
        }
        $this->datastore->addRowAnalyzer($this->analyzerQuoted, $store);

        if ($total == 0) {
            return;
        }

        $types = array_filter($types, function ($x) use ($total) { return $x > 0 && $x / $total < 0.1; });
        if (empty($types)) {
            return;
        }

        $this->atomIs(array('Const', 'Defineconstant'))
             ->raw(<<<'GREMLIN'
or( __.hasLabel("Defineconstant"), 
    __.hasLabel("Const").not( where( __.in("CONST") ) ) 
  )
GREMLIN
)
             ->raw("map{ $mapping }")
             ->raw('filter{ x2 in ***}', $types)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class CouldBeElse extends Analyzer {
    public function analyze() {
        // if ($a) {}; if (!$a) {}
        $this->atomIs('Ifthen')
             ->outIs('CONDITION')
             ->atomIsNot('Not')
             ->savePropertyAs('fullcode', 'condition')
             ->back('first')
             ->nextSibling()
             ->atomIs('Ifthen')
             ->outIs('CONDITION')
             ->atomIs('Not')
             ->outIs('NOT')
             ->samePropertyAs('fullcode', 'condition')
             ->back('first');
        $this->prepareQuery();

        // if (!$a) {}; if ($a) {}
        $this->atomIs('Ifthen')
             ->outIs('CONDITION')
             ->atomIs('Not')
             ->outIs('NOT')
             ->savePropertyAs('fullcode', 'condition')
             ->back('first')
             ->nextSibling()
             ->atomIs('Ifthen')
             ->outIs('CONDITION')
             ->atomIsNot('Not')
             ->samePropertyAs('fullcode', 'condition')
             ->back('first');
        $this->prepareQuery();

        // if ($a == 1) {}; if ($a != 1) {}
        $normalize = '.replaceAll("!=", "==")
                      .replaceAll("<", ">") ';
        $this->atomIs('Ifthen')
             ->outIs('CONDITION')
             ->atomIs('Comparison')
             ->savePropertyAs('fullcode', 'condition')
             ->back('first')
             ->nextSibling()
             ->atomIs('Ifthen')
             ->outIs('CONDITION')
             ->atomIs('Comparison')
             ->raw('filter{ it.get().value("fullcode").toString()' . $normalize . ' == condition' . $normalize . '}')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class DontBeTooManual extends Analyzer {
    public function analyze() {
        // preg_match('/a/', $x, $matches);
        $values = $this->loadJson('php_manual_values.json');

        foreach($values as $value) {
            $this->atomFunctionIs($value->function)
                 ->outWithRank('ARGUMENT', $value->position)
                 ->codeIs($value->name, self::TRANSLATE, self::CASE_INSENSITIVE)
                 ->back('first');
            $this->prepareQuery();
        }

        // catch (Exception $e)
        $this->atomIs('Catch')
             ->outIs('VARIABLE')
             ->codeIs('$e')
             ->back('first');
        $this->prepareQuery();

        // for($i = 0; ...)
        $this->atomIs('For')
             ->outIs('INIT')
             ->outIs('EXPRESSION')
             ->atomIs('Assignation')
             ->outIs('LEFT')
             ->atomIs('Variable')
             ->codeIs('$i')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class EchoWithConcat extends Analyzer {
    public function analyze() {

        //echo 'should'.'also'.$be.' with comma';
        $this->atomIs(array('Echo', 'Print'))
             ->outIs('ARGUMENT')
             ->outIsIE('CODE') // Skipping parenthesis if any
             ->atomIs('Concatenation')
             ->back('first');
        $this->prepareQuery();

        //echo "should also $be with comma";
        $this->atomIs(array('Echo', 'Print'))
             ->outIs('ARGUMENT')
             ->outIsIE('CODE') // Skipping parenthesis if any
             ->atomIs('String')
             ->hasOut('CONCAT')
             ->back('first');
        $this->prepareQuery();

        //echo <<<NOWDOC should also $be with comma NOWDOC;
        $this->atomIs(array('Echo', 'Print'))
             ->outIs('ARGUMENT')
             ->outIsIE('CODE') // Skipping parenthesis if any
             ->atomIs('Heredoc')
             ->is('heredoc', true)
             ->outIs('CONCAT')
             ->atomIsNot('String')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class WrongRange extends Analyzer {
    public function analyze() {
        // if ($a > 1 || $a < 1000)
        $this->atomIs('Logical')
             ->codeIs(array('||', 'or'))

             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs('Comparison')
             ->codeIs(array('>', '>='))
             ->outIs('LEFT')
             ->atomIs(self::CONTAINERS)
             ->savePropertyAs('fullcode', 'variable')
             ->inIs('LEFT')
             ->outIs('RIGHT')
             ->has('intval')
             ->savePropertyAs('intval', 'lowerbound')

             ->back('first')

             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs('Comparison')
             ->codeIs(array('<', '<='))
             ->outIs('LEFT')
             ->atomIs(self::CONTAINERS)
             ->samePropertyAs('fullcode', 'variable')
             ->inIs('LEFT')

             ->outIs('RIGHT')
             ->has('intval')
             ->savePropertyAs('intval', 'upperbound')

             ->raw('filter{lowerbound <= upperbound;}')

             ->back('first');
        $this->prepareQuery();

        // if ($a < 1 && $a > 1000)
        $this->atomIs('Logical')
             ->codeIs(array('&&', 'and'))

             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs('Comparison')
             ->codeIs(array('>', '>='))
             ->outIs('LEFT')
             ->atomIs(self::CONTAINERS)
             ->savePropertyAs('fullcode', 'variable')
             ->inIs('LEFT')
             ->outIs('RIGHT')
             ->has('intval')
             ->savePropertyAs('intval', 'lowerbound')

             ->back('first')

             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs('Comparison')
             ->codeIs(array('<', '<='))
             ->outIs('LEFT')
             ->atomIs(self::CONTAINERS)
             ->samePropertyAs('fullcode', 'variable')
             ->inIs('LEFT')
             ->outIs('RIGHT')
             ->has('intval')
             ->savePropertyAs('intval', 'upperbound')

             ->raw('filter{lowerbound >= upperbound;}')

             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ArrayMergeWithEllipsis extends Analyzer {
    public function analyze() {
        $functions = array('\\array_merge',
                           '\\array_merge_recursive',
                           '\\array_diff',
                           '\\array_​diff_​assoc',
                           '\\array_​diff_​key',
                           '\\array_​diff_​uassoc',
                          );

        // array_merge(...$x) => ellipsis may be null => warning
        $this->atomFunctionIs($functions)
             ->outIs('ARGUMENT')
             ->is('variadic', true)
             ->atomIsNot(array('Coalesce', 'Ternary'))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class SwitchWithoutDefault extends Analyzer {
    public function analyze() {
        // switch($x) { case 4 : break; }
        $this->atomIs('Switch')
             ->outIs('CASES')
             ->noAtomInside('Default')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class NoChangeIncomingVariables extends Analyzer {
    public function analyze() {
        $incomingVariables = array('$_GET', '$_POST', '$_REQUEST', '$_FILES',
                                   '$_ENV', '$_SERVER',
                                   '$PHP_SELF', '$HTTP_RAW_POST_DATA');
        //'$_COOKIE', '$_SESSION' : those are OK

        // $_POST
        $this->atomIs('Phpvariable')
             ->hasNoIn('VARIABLE') // avoid double counting Arrays
             ->codeIs($incomingVariables)
             ->is('isModified', true);
        $this->prepareQuery();

        // $_POST['s']
        $this->atomIs('Array')
             ->hasNoIn('VARIABLE') // avoid double counting Arrays
             ->is('isModified', true)
             ->outIsIE('VARIABLE')
             ->codeIs($incomingVariables)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class NotEqual extends Analyzer {
    public function analyze() {
        // !$a == 'b'
        $this->atomIs('Comparison')
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs('Not')
             ->back('first')
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs(array('String', 'Integer'))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class UnusedGlobal extends Analyzer {
    public function analyze() {
        // global in a function or in the global space
        $this->atomIs(array('Globaldefinition', 'Staticdefinition'))
             ->hasNoOut('DEFINITION');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class ArrayMergeAndVariadic extends Analyzer {
    protected $phpVersion = '7.4-';

    public function dependsOn(): array {
        return array('Complete/PropagateConstants',
                    );
    }

    public function analyze() {
        // array_merge(...$x); (without check on $x empty => error!)
        $this->atomFunctionIs(array('\\array_merge',
                                    '\\array_merge_recursive'))
             // Skip any other argument
             ->not(
                $this->side()
                     ->outIs('ARGUMENT')
                     ->isNot('variadic', true)
                  )
             ->outIs('ARGUMENT')
             ->is('variadic', true) // actually tested just above
             ->atomIsNot('Arrayliteral', self::WITH_CONSTANTS)
             // empty($array), isset($array[0]) : check on content
             ->not(
                $this->side()
                     ->inIs('DEFINITION')
                     ->outIs('DEFINITION')
                     ->inIsIE('VARIABLE') // for arrays
                     ->inIs('ARGUMENT')
                     ->atomIs(array('Empty', 'Isset'))
             )
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class RepeatedRegex extends Analyzer {
    public function analyze() {
        // pcre_last_error is too much here
        $functions = $this->loadIni('pcre.ini', 'functions');
        $functionsList = '"\\\\' . implode('", "\\\\', $functions) . '"';

        $repeatedRegex = $this->query(<<<GREMLIN
g.V().hasLabel("Functioncall").has("fullnspath", within($functionsList))
     .out("ARGUMENT")
     .hasLabel("String").not(where(__.out("CONCAT")))
     .groupCount("m").by("code").cap("m").next().findAll{ a,b -> b > 1}.keySet()
GREMLIN
)->toArray();

        if (empty($repeatedRegex)) {
            return;
        }

        // regex
        $this->atomFunctionIs(array('\\preg_match'))
             ->outIs('ARGUMENT')
             ->atomIs('String')
             ->hasNoOut('CONCAT')
             ->codeIs($repeatedRegex, self::NO_TRANSLATE)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class StrposCompare extends Analyzer {
    public function analyze() {
        $operator = $this->loadIni('php_may_return_boolean_or_zero.ini', 'functions');
        $fullnspaths = makeFullnspath($operator);

        // if (.. == strpos(..)) {}
        $this->atomFunctionIs($fullnspaths)
             ->inIs('RIGHT')
             ->atomIs('Comparison')
             ->codeIs(array('==', '!='))
             ->outIs('LEFT')
             ->codeIs(array('0', "''", '""', 'null', 'false'))
             ->back('first')
             ->not(
                $this->side()
                     ->fullnspathIs('\preg_match')
                     ->outWithRank('ARGUMENT', 0)
                     ->not(
                        $this->side()
                             ->outIs('CONCAT')
                             ->atomIs(array('Variable', 'Array', 'Member', 'Functioncall', 'Methodcall', 'Staticmethodcall'))
                     )
             );
        $this->prepareQuery();

        // if (strpos(..) == ..) {}
        $this->atomFunctionIs($fullnspaths)
             ->inIs('LEFT')
             ->atomIs('Comparison')
             ->codeIs(array('==', '!='))
             ->outIs('RIGHT')
             ->codeIs(array('0', "''", '""', 'null', 'false'))
             ->back('first')
             ->not(
                $this->side()
                     ->fullnspathIs('\preg_match')
                     ->outWithRank('ARGUMENT', 0)
                     ->not(
                        $this->side()
                             ->outIs('CONCAT')
                             ->atomIs(array('Variable', 'Array', 'Member', 'Functioncall', 'Methodcall', 'Staticmethodcall'))
                     )
             );
        $this->prepareQuery();

        // if (strpos(..)) {}
        $this->atomFunctionIs($fullnspaths)
             ->inIsIE('CODE')  // parenthesis
             ->inIs('CONDITION')
             ->atomIs(array('Ifthen', 'While', 'Dowhile'))
             ->back('first')
             ->not(
                $this->side()
                     ->fullnspathIs('\preg_match')
                     ->outWithRank('ARGUMENT', 0)
                     ->not(
                        $this->side()
                             ->outIs('CONCAT')
                             ->atomIs(array('Variable', 'Array', 'Member', 'Functioncall', 'Methodcall', 'Staticmethodcall'))
                     )
             );
        $this->prepareQuery();

        // if ($x = strpos(..)) {}
        $this->atomFunctionIs($fullnspaths)
             ->inIs('RIGHT')
             ->atomIs('Assignation')
             ->inIsIE('CODE')  // parenthesis
             ->inIs('CONDITION')
             ->atomIs(array('Ifthen', 'While', 'Dowhile'))
             ->back('first')
             ->not(
                $this->side()
                     ->fullnspathIs('\preg_match')
                     ->outWithRank('ARGUMENT', 0)
                     ->not(
                        $this->side()
                             ->outIs('CONCAT')
                             ->atomIs(array('Variable', 'Array', 'Member', 'Functioncall', 'Methodcall', 'Staticmethodcall'))
                     )
             );
        $this->prepareQuery();

        // if (($x = strpos(..)) == false) {}
        $this->atomFunctionIs($fullnspaths)
             ->inIs('RIGHT')
             ->as('result')
             ->atomIs('Assignation')
             ->inIs('CODE')
             ->inIs(array('RIGHT', 'LEFT'))
             ->atomIs('Comparison')
             ->outIs(array('RIGHT', 'LEFT'))
             ->codeIs(array('0', "''", '""', 'null', 'false'))
             ->inIs(array('RIGHT', 'LEFT'))
             ->codeIs(array('==', '!='))
             ->inIs('CONDITION')
             ->atomIs(array('Ifthen', 'While', 'Dowhile'))
             ->back('first')
             ->not(
                $this->side()
                     ->fullnspathIs('\preg_match')
                     ->outWithRank('ARGUMENT', 0)
                     ->not(
                        $this->side()
                             ->outIs('CONCAT')
                             ->atomIs(array('Variable', 'Array', 'Member', 'Functioncall', 'Methodcall', 'Staticmethodcall'))
                     )
             );
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class TimestampDifference extends Analyzer {
    public function analyze() {
        $this->atomIs('Addition')
             ->codeIs('-')
             ->outIs(array('LEFT', 'RIGHT'))
             ->functioncallIs(array('\\time', '\\microtime'))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class PrintWithoutParenthesis extends Analyzer {
    public function analyze() {
        // print(1);
        $this->atomIs('Print')
             ->outIs('ARGUMENT')
             ->atomIs('Parenthesis')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class UnusedLabel extends Analyzer {
    public function analyze() {
        // inside functions
        $this->atomIs('Gotolabel')
             ->hasNoOut('DEFINITION');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class UselessCasting extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/PropagateCalls',
                    );
    }

    public function analyze() {
        // Function returning a type, then casted to that type
        $casts = array('T_STRING_CAST'  => 'string',
                       'T_BOOL_CAST'    => 'bool',
                       'T_INT_CAST'     => 'int',
                       'T_ARRAY_CAST'   => 'array',
                       'T_DOUBLE_CAST'  => 'float'
                  );

        $returnTypes = $this->methods->getFunctionsByReturn(true);

        foreach($casts as $token => $type) {
            if (is_array($type)) {
                $returned = array();
                foreach($type as $t) {
                    $returned[] = $returnTypes[$t];
                }
                $returned = array_merge(...$returned);
            } else {
                $returned = $returnTypes[$type];
            }

            // native PHP functions
            $this->atomIs('Cast')
                 ->analyzerIsNot('self')
                 ->tokenIs($token)
                 ->outIs('CAST')
                 ->outIsIE('CODE') // In case there are some parenthesis
                 ->atomIs('Functioncall')
                 ->fullnspathIs($returned)
                 ->back('first');
            $this->prepareQuery();

            // custom user methods
            $this->atomIs('Cast')
                 ->analyzerIsNot('self')
                 ->tokenIs($token)
                 ->outIs('CAST')
                 ->outIsIE('CODE') // In case there are some parenthesis
                 ->atomIs(self::CALLS)
                 ->inIs('DEFINITION')
                 ->not(
                    $this->side()
                         ->outIs('RETURNTYPE')
                         ->count()
                         ->isMore(1)
                 )
                 ->outIs('RETURNTYPE')
                 ->is('fullnspath', makeFullnspath($type))
                 ->back('first');
            $this->prepareQuery();
        }

        // (bool) ($a > 2)
        $this->atomIs('Cast')
             ->tokenIs('T_BOOL_CAST')
             ->followParAs('CAST')
             ->atomIs('Comparison')
             ->back('first');
        $this->prepareQuery();

        // (int) 100
        $this->atomIs('Cast')
             ->tokenIs('T_INT_CAST')
             ->followParAs('CAST')
             ->atomIs('Integer')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class SimplePreg extends Analyzer {
    public function analyze() {
        // almost data/pcre.ini but not preg_last_error
        $functions = array('\preg_match', '\preg_match_all', '\preg_replace', '\preg_replace_callback',
                           '\preg_filter', '\preg_split', '\preg_quote', '\preg_grep');

        // preg_match('/abc/', $x);
        $this->atomFunctionIs($functions)
             ->outWithRank('ARGUMENT', 0)
             ->atomIs(array('String', 'Heredoc'), self::WITH_CONSTANTS)
             ->hasNoOut('CONCAT')
             // Normal delimiters
             ->regexIsNot('noDelimiter', '(?<!\\\\\\\\)[.?*+\\\\\$\\\\^|()\\\\[\\\\]|]')
             ->regexIsNot('noDelimiter', '[^uU]\\\\{')
             // Simple assertions
             ->regexIsNot('noDelimiter', '\\\\\\\\[bBAZzSsDdWwsSG]')
             ->not(
                $this->side()
                     ->back('first')
                     ->outWithRank('ARGUMENT', 1)
                     ->atomIs(array('Closure', 'Arrowfunction'))
             )
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class FileUsage extends Analyzer {
    public function analyze() {
        $this->atomFunctionIs(array('\\fopen',
                                    '\\file_get_contents',
                                    '\\file_put_contents',
                                    ));
        $this->prepareQuery();

        $fileClasses = array('\\SplFileObject',
                             '\\SplTempFileObject',
                             '\\SplFileInfo',
                             );

        $this->atomIs('New')
             ->outIs('NEW')
             ->atomIs('Newcall')
             ->fullnspathIs($fileClasses);
        $this->prepareQuery();

        $this->atomIs('New')
             ->outIs('NEW')
             ->atomIs(array('Identifier', 'Nsname'))
             ->has('fullnspath')
             ->fullnspathIs($fileClasses);
        $this->prepareQuery();

        $this->atomIs(array('Staticmethodcall', 'Staticproperty', 'Staticconstant'))
             ->outIs('CLASS')
             ->has('fullnspath')
             ->fullnspathIs($fileClasses);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class MultipleDefinedCase extends Analyzer {
    public function analyze() {
        // Check that fullcode is the same or not for integers
        $this->atomIs('Switch')
             ->filter(
                $this->side()
                     ->outIs('CASES')
                     ->outIs('EXPRESSION')
                     ->atomIs('Case')
                     ->outIs('CASE')
                     ->atomIs(array('Integer', 'Null', 'Boolean'), self::WITH_CONSTANTS)
                     ->raw('groupCount().by("intval").map{ it.get().findAll{ it.value > 1}.size()}.is(gte(1))')
             );
        $this->prepareQuery();

        // Special case for strings (avoiding ' and ")
        $this->atomIs('Switch')
             ->analyzerIsNot('self')
             ->filter(
                $this->side()
                     ->outIs('CASES')
                     ->outIs('EXPRESSION')
                     ->atomIs('Case')
                     ->outIs('CASE')
                     ->atomIs(array('String', 'Concatenation', 'Heredoc'), self::WITH_CONSTANTS)
                     ->has('noDelimiter')
                     ->raw('groupCount().by("noDelimiter").map{ it.get().findAll{ it.value > 1}.size()}.is(gte(1))')
             );
        $this->prepareQuery();

        // Check that fullcode is the same or not for constants, based on fullnspath
        $this->atomIs('Switch')
             ->analyzerIsNot('self')
             ->filter(
                $this->side()
                     ->outIs('CASES')
                     ->outIs('EXPRESSION')
                     ->atomIs('Case')
                     ->outIs('CASE')
                     ->atomIs(array('Nsname', 'Identifier'), self::WITHOUT_CONSTANTS)
                     ->raw('groupCount().by("fullnspath").map{ it.get().findAll{ it.value > 1}.size()}.is(gte(1))')
             );
        $this->prepareQuery();

        // Check that fullcode which are expressions  $a == 1
        $this->atomIs('Switch')
             ->analyzerIsNot('self')
             ->filter(
                $this->side()
                     ->outIs('CASES')
                     ->outIs('EXPRESSION')
                     ->atomIs('Case')
                     ->outIs('CASE')
                     ->atomIsNot(array('Nsname', 'Identifier', 'Integer', 'Null', 'Boolean', 'String', 'Concatenation', 'Heredoc' ), self::WITHOUT_CONSTANTS)
                     ->raw('groupCount().by("fullcode").map{ it.get().findAll{ it.value > 1}.size()}.is(gte(1))')
             );
        $this->prepareQuery();

        // Special case for mix of strings and constants
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class LoneBlock extends Analyzer {
    public function analyze() {
        // if (1) {{ $b++; }}
        $this->atomIs('Sequence')
             ->is('bracket', true)
             ->hasIn('EXPRESSION');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class IssetWithConstant extends Analyzer {
    protected $phpVersion = '7.0+';

    public function analyze() {
        // isset(X[$a]) or isset(Y::X[$a])
        $this->atomIs('Isset')
             ->outIs('ARGUMENT')
             ->atomIs('Array')
             ->outIs('VARIABLE')
             ->outIsIE('CONSTANT')
             ->atomIs(array('Identifier', 'Name'))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class UseUrlQueryFunctions extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/PropagateConstants',
                    );
    }

    public function analyze() {
        // explode('&', $string);
        $this->atomFunctionIs(array('\\explode', '\\implode', '\\join', '\\split', ))
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String', self::WITH_CONSTANTS)
             ->noDelimiterIs('&')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Structures;

use Exakat\Analyzer\Analyzer;

class NoNeedGetClass extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/CreateDefaultValues',
                    );
    }

    public function analyze() {
        // get_class($a->b)::$c   => $a->b::$c
        $this->atomIs(array('Staticmethodcall', 'Staticproperty', 'Staticconstant'))
             ->outIs('CLASS')
             ->outIsIE('CODE') // Skip parenthesis
             ->atomIs('Functioncall', self::WITH_VARIABLES)
//             ->fullnspathIs('\\get_class')
//             ->back('first')
             ;
        $this->prepareQuery();
    }
}

?>
<?php
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
declare(strict_types = 1);

namespace Exakat\Analyzer;


class RulesetsMain implements RulesetsInterface {
    private static $sqlite = null;
    private $phar_tmp      = null;

    public function __construct(string $path) {
        if (substr($path, 0, 4) == 'phar') {
            $this->phar_tmp = tempnam(sys_get_temp_dir(), 'exDocs') . '.sqlite';
            copy($path, $this->phar_tmp);
            $docPath = $this->phar_tmp;
        } else {
            $docPath = $path;
        }
        self::$sqlite = new \SQLite3($docPath, \SQLITE3_OPEN_READONLY);
    }

    public function __destruct() {
        if ($this->phar_tmp !== null && file_exists($this->phar_tmp)) {
            unlink($this->phar_tmp);
        }
    }

    public function getRulesetsAnalyzers(array $ruleset = array()): array {
        // Main installation
        if (empty($ruleset)) {
            // Default is ALL of ruleset
            $where = 'WHERE a.folder != "Common" ';
        } else {
            $ruleset = array_map(function (string $x): string { return trim($x, '"'); }, $ruleset);
            $where = 'WHERE a.folder != "Common" AND c.name in (' . makeList($ruleset) . ')';
        }

        $query = <<<SQL
SELECT DISTINCT a.folder, a.name FROM analyzers AS a
    JOIN analyzers_categories AS ac
        ON ac.id_analyzer = a.id
    JOIN categories AS c
        ON c.id = ac.id_categories
    $where
SQL;
        $res = self::$sqlite->query($query);

        $return = array();
        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            $return[] = "$row[folder]/$row[name]";
        }

        return $return;
    }

    public function getRulesetForAnalyzer(string $analyzer = ''): array {
        list($vendor, $class) = explode('/', $analyzer);

        $query = <<<SQL
SELECT c.name FROM categories AS c
    JOIN analyzers_categories AS ac
        ON ac.id_categories = c.id
    JOIN analyzers AS a
        ON a.id = ac.id_analyzer
    WHERE
        a.folder = '$vendor' AND
        a.name   = '$class'
SQL;
        $res = self::$sqlite->query($query);

        $return = array();
        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            $return[] = $row['name'];
        }

        return $return;
    }

    public function getRulesetsForAnalyzer(array $list = array()): array {
        if (empty($list)) {
            $where = '';
        } elseif (is_array($list)) {
            $where = ' WHERE c.name IN (' . makeList($list) . ') ';
        }

        $query = <<<SQL
SELECT folder||'/'||a.name AS analyzer, GROUP_CONCAT(c.name) AS categories FROM categories AS c
    JOIN analyzers_categories AS ac
        ON ac.id_categories = c.id
    JOIN analyzers AS a
        ON a.id = ac.id_analyzer
    $where
    GROUP BY analyzer
SQL;
        $res = self::$sqlite->query($query);

        $return = array();
        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            $return[$row['analyzer']] = explode(',', $row['categories']);
        }

        return $return;
    }

    public function getSeverities(): array {
        $query = "SELECT folder||'/'||name AS analyzer, severity FROM analyzers";

        $return = array();
        $res = self::$sqlite->query($query);
        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            $return[$row['analyzer']] = empty($row['severity']) ? Analyzer::S_NONE : constant(Analyzer::class . '::' . $row['severity']);
        }

        return $return;
    }

    public function getTimesToFix(): array {
        $query = "SELECT folder||'/'||name AS analyzer, timetofix FROM analyzers";

        $return = array();
        $res = self::$sqlite->query($query);
        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            $return[$row['analyzer']] = empty($row['timetofix']) ? Analyzer::S_NONE : constant(Analyzer::class . '::' . $row['timetofix']);
        }

        return $return;
    }

    public function getFrequences(): array {
        $query = "SELECT analyzers.folder||'/'||analyzers.name AS analyzer, frequence / 100 AS frequence 
            FROM  analyzers
            LEFT JOIN analyzers_popularity 
                ON analyzers_popularity.id = analyzers.id";

        $return = array();
        $res = self::$sqlite->query($query);
        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            $return[$row['analyzer']] = empty($row['frequence']) ? 0 : $row['frequence'];
        }

        return $return;
    }

    public function listAllAnalyzer(string $folder = ''): array {
        $query = <<<'SQL'
SELECT folder || '\\' || name AS name FROM analyzers

SQL;
        if (empty($folder)) {
            $stmt = self::$sqlite->prepare($query);
        } else {
            $query .= ' WHERE folder=:folder';
            $stmt = self::$sqlite->prepare($query);

            $stmt->bindValue(':folder', $folder, \SQLITE3_TEXT);
        }
        $res = $stmt->execute();

        $return = array();
        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            $return[] = str_replace('\\\\', '\\', $row['name']);
        }

        return $return;
    }

    public function listAllRulesets(array $ruleset = array()): array {
        $query = <<<'SQL'
SELECT name AS name FROM categories

SQL;
        $stmt = self::$sqlite->prepare($query);
        $res = $stmt->execute();

        $return = array();
        while($row = $res->fetchArray(\SQLITE3_ASSOC)) {
            $return[] = $row['name'];
        }

        return $return;
    }

    public function getClass(string $name): string {
        // accepted names :
        // PHP full name : Analyzer\\Type\\Class
        // PHP short name : Type\\Class
        // Human short name : Type/Class
        // Human shortcut : Class (must be unique among the classes)

        if (strpos($name, '\\') !== false) {
            if (substr($name, 0, 16) === 'Exakat\\Analyzer\\') {
                $class = $name;
            } else {
                $class = "Exakat\\Analyzer\\$name";
            }
        } elseif (strpos($name, '/') !== false) {
            $class = 'Exakat\\Analyzer\\' . str_replace('/', '\\', $name);
        } elseif (strpos($name, '/') === false) {
            $found = $this->getSuggestionClass($name);

            if (empty($found)) {
                return ''; // no class found
            }

            if (count($found) > 1) {
                return '';
            }

            $class = array_pop($found);
        } else {
            $class = $name;
        }

        if (!class_exists($class)) {
            return '';
        }

        $actualClassName = new \ReflectionClass($class);
        if (strtolower($class) === strtolower($actualClassName->getName())) {
            return $actualClassName->getName();
        } else {
            // problems with the case
            return '';
        }
    }

    public function getSuggestionRuleset(array $rulesets = array()): array {
        $list = $this->listAllRulesets();

        return array_filter($list, function ($c) use ($rulesets) {
            foreach($rulesets as $ruleset) {
                $l = levenshtein($c, $ruleset);
                if ($l < 8) {
                    return true;
                }
            }
            return false;
        });
    }

    public function getSuggestionClass(string $name): array {
        return array_filter($this->listAllAnalyzer(), function ($c) use ($name) {
            $l = levenshtein($c, $name);

            return $l < 8;
        });
    }

    public function getAnalyzerInExtension(string $name): array {
        return array();
    }

}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Traits;

use Exakat\Analyzer\Analyzer;

class UnusedClassTrait extends Analyzer {
    /* PHP version restrictions
    protected $phpVersion = '7.4-';
    */

    public function dependsOn(): array {
        return array('Complete/MakeClassMethodDefinition',
                    );
    }

    public function analyze() {
        // trait t {}
        // class x { use T; /* No use of T */ }
        $this->atomIs('Class')
             ->as('c')
             ->outIs('USE')
             ->outIs('USE')
             ->not(
                $this->side()
                     ->inIs('DEFINITION')
                     ->outIs(self::CLASS_METHODS)
                     ->as('r')

                     ->outIs('DEFINITION')
                     ->atomIs(array('Methodcall'))
                     ->goToClass('Class')
                     ->atomIs('Class')
                     ->raw('where( eq("c") )')
                )
                ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Traits;

use Exakat\Analyzer\Analyzer;

class LocallyUsedProperty extends Analyzer {
    public function analyze() {
        // normal property
        // static property in an variable static::$c
        $this->atomIs('Trait')
             ->savePropertyAs('id', 'citId')
             ->outIs('PPP')
             ->atomIs('Ppp')
             ->outIs('PPP')
             ->atomIs('Propertydefinition')
             ->as('ppp')
             ->outIs('DEFINITION')
             ->atomIs(array('Member', 'Staticproperty'))
             ->goToInstruction('Trait')
             ->samePropertyAs('id', 'citId')
             ->back('ppp');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Traits;

use Exakat\Analyzer\Analyzer;

class UndefinedInsteadof extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/SetClassMethodRemoteDefinition',
                    );
    }

    public function analyze() {
        // class x { use t { t::undefined insteadof A; }}
        $this->atomIs('Staticmethod')
             ->hasNoIn('DEFINITION');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
namespace Exakat\Analyzer\Traits;

use Exakat\Analyzer\Analyzer;

class UndefinedTrait extends Analyzer {
    public function dependsOn(): array {
        return array('Modules/DefinedTraits',
                    );
    }

    public function analyze() {
        // class x { use t; } // no trait t {}
        $this->atomIs('Usetrait')
             ->outIs('USE')
             ->noTraitDefinition()
             ->analyzerIsNot('Modules/DefinedTraits')
             ->isNotIgnored();
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Traits;

use Exakat\Analyzer\Analyzer;

class MultipleUsage extends Analyzer {
    public function analyze() {
        // trait a { use b, c;}
        // trait b { use c;}
        $this->atomIs('Usetrait')
             ->outIs('USE')
             ->savePropertyAs('fullnspath', 'fnp')
             ->inIs('USE')
             ->inIs('USE')
             ->as('result')
             ->filter(
                $this->side()
                     ->atomIs(self::CIT)
                     ->goToAllTraits(self::EXCLUDE_SELF)
                     ->outIs('USE')
                     ->outIs('USE')
                     ->samePropertyAs('fullnspath', 'fnp')
             )
             ->back('result');
        $this->prepareQuery();

        // trait a { use b;}
        // trait b { use a;}
        $this->atomIs('Trait')
             ->analyzerIsNot('self')
             ->savePropertyAs('fullnspath', 'fnp')
             ->goToAllTraits(self::INCLUDE_SELF)
             ->outIs('USE')
             ->outIs('USE')
             ->samePropertyAs('fullnspath', 'fnp')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Traits;

use Exakat\Analyzer\Analyzer;

class UselessAlias extends Analyzer {
    public function analyze() {
        // class x { use t { f as f; }}
        $this->atomIs('Usetrait')
             ->outIs('BLOCK')
             ->outIs('EXPRESSION')
             ->atomIs('As')
             ->as('results')
             ->outIs('AS')
             ->savePropertyAs('lccode', 'name')
             ->inIs('AS')
             ->outIs('NAME')
             ->outIsIE('METHOD')
             ->samePropertyAs('lccode', 'name', self::CASE_INSENSITIVE)
             ->back('results');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Traits;

use Exakat\Analyzer\Analyzer;

class TraitMethod extends Analyzer {

    public function analyze() {
        $this->atomIs('Trait')
             ->outIs('METHOD')
             ->atomIs('Method');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Traits;

use Exakat\Analyzer\Analyzer;

class UnusedTrait extends Analyzer {
    public function analyze() {
        // trait t {}
        // class x { use t2; }
        $this->atomIs('Trait')
             ->hasNoUsage();
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Traits;

use Exakat\Analyzer\Analyzer;

class TraitNotFound extends Analyzer {
    public function analyze() {
        // class x  { use a, b { c::d insteadof e}}
        $this->atomIs(self::CIT)
             ->collectTraits('traits')
             ->outIs('USE')
             ->outIs('BLOCK')
             ->outIs('EXPRESSION')
             ->atomIs(array('As', 'Insteadof'))
             ->outIs(array('NAME', 'INSTEADOF'))
             ->outIsIE('CLASS')
             ->fullnspathIsNot('traits')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Traits;

use Exakat\Analyzer\Analyzer;

class Traitnames extends Analyzer {

    public function analyze() {
        // trait t {}
        $this->atomIs('Trait')
             ->outIs('NAME');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Traits;

use Exakat\Analyzer\Analyzer;

class DependantTrait extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/OverwrittenProperties',
                     'Complete/MakeClassConstantDefinition',
                     'Complete/PropagateCalls',
                     'Complete/MakeClassMethodDefinition',
                    );
    }

    public function analyze() {
        // Case for $this->method()
        // Case for class::methodcall()
        $this->atomIs('Trait')
             ->analyzerIsNot('self')
             ->outIs('DEFINITION')
             ->atomIs(array('This', 'Self', 'Static', 'Nsname', 'Identifier'))
             ->inIs(array('OBJECT', 'CLASS'))
             ->atomIs(array('Methodcall', 'Staticmethodcall'))
             ->hasNoIn('DEFINITION')
             ->back('first');
        $this->prepareQuery();

        // Case for $this->$properties
        // Case for class::$properties
        $this->atomIs('Trait')
             ->analyzerIsNot('self')
             ->outIs('DEFINITION')
             ->atomIs(array('This', 'Self', 'Static', 'Nsname', 'Identifier'))
             ->inIs(array('OBJECT', 'CLASS'))
             ->atomIs(array('Member', 'Staticproperty'))
             ->isNotPropertyDefined()
             ->back('first');
        $this->prepareQuery();

        // Case for class::constant
        // self will be solved at excution time, but is set to the trait statically
        $this->atomIs('Trait')
             ->analyzerIsNot('self')
             ->savePropertyAs('fullnspath', 'fnp')
             ->outIs('DEFINITION')
             ->atomIs(array('This', 'Self', 'Static', 'Nsname', 'Identifier'))
             ->inIs('CLASS')
             ->atomIs('Staticconstant')
             ->hasNoIn('DEFINITION')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Traits;

use Exakat\Analyzer\Analyzer;

class SelfUsingTrait extends Analyzer {
    // trait t { use t; }
    public function analyze() {
        $this->atomIs('Trait')
             ->savePropertyAs('fullnspath', 'fnp')
             ->goToAllTraits(self::INCLUDE_SELF)
             ->outIs('USE')
             ->outIs('USE')
             ->samePropertyAs('fullnspath', 'fnp')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Traits;

use Exakat\Analyzer\Analyzer;

class AlreadyParentsTrait extends Analyzer {
    public function analyze() {
        // class a { use t; }; class b extends a { use t;}
        // trait a { use t; }; class b extends a { use t;}
        $this->atomIs(self::CIT) // Interface is too many, but won't get use expression
             ->outIs('USE')
             ->outIs('USE')
             ->savePropertyAs('fullnspath', 'i')
             ->back('first')

             ->goToAllParentsTraits(self::EXCLUDE_SELF)
             ->outIs('USE')
             ->outIs('USE')

             ->samePropertyAs('fullnspath', 'i')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Traits;

use Exakat\Analyzer\Common\TraitUsage as CommonTraitUsage;

class TraitUsage extends CommonTraitUsage {

    public function analyze() {
        // class x { use trait; }
        $this->atomIs(self::CLASSES_TRAITS)
             ->outIs('USE')
             ->atomIs('Usetrait');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Traits;

use Exakat\Analyzer\Analyzer;

class MethodCollisionTraits extends Analyzer {
    public function analyze() {
        $this->atomIs('Class')
             ->raw(<<<'GREMLIN'
 where(
  __.sideEffect{ methods = []; insteadof = [];}
    .out("USE")
    .hasLabel("Usetrait")
    .where(
      __.out("BLOCK")
        .out("EXPRESSION")
        .out("NAME")
        .out("METHOD")
        .sideEffect{ insteadof.add(it.get().value("lccode"));}
        .fold()
    )
    .out("USE")
    .in("DEFINITION")
    .hasLabel("Trait")
    .dedup()
    .out("METHOD", "MAGICMETHOD")
    .out("NAME")
    .sideEffect{ methods.add(it.get().value("lccode"));}
    .fold()
)
.filter{ 
    collisions = methods - insteadof; 
    collisions.countBy{it}.findAll{k,v -> v > 1;} != [:];
}

GREMLIN
);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Traits;

use Exakat\Analyzer\Analyzer;

class IsExtTrait extends Analyzer {

    public function dependsOn(): array {
        return array('Traits/TraitUsage',
                    );
    }

    public function analyze() {
        $exts = $this->rulesets->listAllAnalyzer('Extensions');

        //$this->loadIni('php_traits.ini', 'traits')
        $t = array();
        foreach($exts as $ext) {
            $inifile = str_replace('Extensions\Ext', '', $ext);
            $ini = $this->load($inifile, 'traits');

            if (!empty($ini[0])) {
                $t[] = $ini;
            }
        }

        if (empty($t)) {
            return ;
        }

        $traits = array_merge(...$t);
        $traits = makeFullNsPath($traits);

        $this->analyzerIs('Traits/TraitUsage')
             ->fullnspathIs($traits);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Traits;

use Exakat\Analyzer\Analyzer;

class EmptyTrait extends Analyzer {

    public function analyze() {
        // Trait with nothing in it
        $this->atomIs('Trait')
             ->hasNoOut(array('METHOD', 'PPP'));
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Traits;

use Exakat\Analyzer\Analyzer;

class UsedTrait extends Analyzer {
    public function analyze() {

        $this->atomIs('Trait')
             ->hasOut('DEFINITION')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Traits;

use Exakat\Analyzer\Analyzer;

class CouldUseTrait extends Analyzer {
    // trait i { function i(); }
    // class x { function i() {}}
    // class x could use trait i but it was forgotten

    public function analyze() {
        // Custom traits
        $this->atomIs('Trait')
             ->as('name')
             ->outIs(array('METHOD', 'MAGICMETHOD'))
             ->as('methodCount')
             ->as('static')
             ->outIs('NAME')
             ->as('method')
             ->select(array('name'        => 'fullnspath',
                            'method'      => 'lccode',
                            'methodCount' => 'count',
                            'static'      => 'fullcode'
                            ));
        $res = $this->rawQuery();

        $traits = array();
        $methodNames = array();
        foreach($res->toArray() as $row) {
            $row['static'] = preg_match('/^.*static.*function /i', $row['static']) === 0 ? '' : 'static';
            array_collect_by($traits, $row['name'], "$row[method]-$row[methodCount]-$row[static]");
            $methodNames[$row['method']] = 1;
        }

/*
        $phpTraits = $this->loadJson('php_traits_methods.json');
        foreach($phpInterfaces as $interface => $methods) {
            $translations = $this->dictCode->translate(array_column($methods, 'name'));
            if (count($methods) !== count($translations)) {
                continue;
            }
            
            // translations are in the same order than original
            foreach($methods as $id => $method) {
                $interfaces[$interface][] = $translations[$id] . "-$method->count-";
                $methodNames[$translations[$id]] = 1;
            }
        }
*/
        $methodNames = array_keys($methodNames);

        $this->atomIs(self::CLASSES_ALL)
             ->filter(
                $this->side()
                     ->outIs(array('METHOD', 'MAGICMETHOD'))
                     ->isNot('visibility', array('private', 'protected'))
                     ->outIs('NAME')
                     ->is('lccode', $methodNames)
             )
             ->raw('sideEffect{ x = []; }')
             // Collect methods names with argument count
             // can one implement an interface, but with wrong argument counts ?
             ->raw(<<<'GREMLIN'
where( 
    __.out("METHOD", "MAGICMETHOD")
      .sideEffect{ 
        if (it.get().properties("static").any()) { 
            s = 'static';
        } else {
            s = '';
        }
        x.add(it.get().vertices(OUT, "NAME").next().value("lccode") + "-" + it.get().value("count") + "-" + s ) ; 
       }
      .fold() 
)
GREMLIN
)
             ->raw('sideEffect{ php_traits = *** }', $traits)
             ->raw(<<<'GREMLIN'
filter{
    a = false;
    php_traits.each{ n, e ->
        if (x.intersect(e) == e) {
            a = true;
            fnp = n;
        }
    }
    
    a;
}

GREMLIN
)

                ->collectTraits('traits')
                ->raw('filter{!(fnp in traits) }')
                ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Traits;

use Exakat\Analyzer\Analyzer;

class Php extends Analyzer {
    public function dependsOn(): array {
        return array('Traits/TraitUsage',
                    );
    }
    public function analyze() {
        $ini = $this->loadIni('php_traits.ini', 'traits');

        if (!empty($ini)) {
            $this->analyzerIs('Traits/TraitUsage')
                 ->codeIs($ini);
            $this->prepareQuery();
        }
    }
}

?>
<?php
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
declare(strict_types = 1);

namespace Exakat\Analyzer;


class RulesetsIgnore implements RulesetsInterface {
    private $ignoreList      = array();

    public function __construct(array $list) {
        // No check on existence : if don't exist, it is already ignored. 
        $this->ignoreList      = $list;
    }

    public function getRulesetsAnalyzers(array $ruleset = array()): array {
        return $this->ignoreList;
    }

    public function getRulesetForAnalyzer(string $analyzer = ''): array {
        return array();
    }

    public function getRulesetsForAnalyzer(array $list = array()): array {
        return array();
    }

    public function getSeverities(): array {
        return array();
    }

    public function getTimesToFix(): array {
        return array();
    }

    public function getFrequences(): array {
        return array();
    }

    public function listAllAnalyzer(string $folder = ''): array {
        return array();
    }

    public function listAllRulesets(array $ruleset = array()): array {
        return array();
    }

    public function getClass(string $name): string {
        return '';
    }

    public function getSuggestionRuleset(array $rulesets = array()): array {
        return array();
    }

    public function getSuggestionClass(string $name): array {
        return array();
    }

    public function getAnalyzerInExtension(string $name): array {
        return array();
    }

}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Complete;

class CreateMagicMethod extends Complete {
    public function dependsOn(): array {
        return array('Complete/OverwrittenMethods',
                     'Complete/SetParentDefinition',
                     'Complete/SetClassRemoteDefinitionWithTypehint',
                    );
    }

    public function analyze() {

        // Missing : typehinted properties, return typehint, clone

        // link to __call
        $this->atomIs('Methodcall', self::WITHOUT_CONSTANTS)
             ->hasNoIn('DEFINITION')
              ->outIs('OBJECT')
              // Others are possible too : $a[1], $b->c, D::$a
             ->atomIs(array('Variableobject', 'This'), self::WITHOUT_CONSTANTS)

             // For variables
             ->optional(
                $this->side()
                     ->inIs('DEFINITION')
                     ->atomIs('Parametername', self::WITHOUT_CONSTANTS)
                     ->inIs('NAME')
                     ->outIs('TYPEHINT')
             )

              ->inIs('DEFINITION')
              ->atomIs('Class', self::WITHOUT_CONSTANTS)
              ->goToAllParentsTraits(self::INCLUDE_SELF)
              ->outIs('MAGICMETHOD')
              ->outIs('NAME')
              ->codeIs('__call', self::TRANSLATE, self::CASE_INSENSITIVE)
              ->inIs('NAME')
              ->addETo('DEFINITION', 'first');
        $this->prepareQuery();

        // link to __callStatic
        $this->atomIs('Staticmethodcall', self::WITHOUT_CONSTANTS)
             ->hasNoIn('DEFINITION')
             ->outIs('CLASS')
             ->atomIs(array('Variable', 'This', 'Nsname', 'Identifier', 'Self', 'Parent', 'Static'), self::WITHOUT_CONSTANTS)

             // For variables
             ->optional(
                $this->side()
                     ->inIs('DEFINITION')
                     ->atomIs('Parametername', self::WITHOUT_CONSTANTS)
                     ->inIs('NAME')
                     ->outIs('TYPEHINT')
             )

              ->inIs('DEFINITION')
              ->goToAllParentsTraits(self::INCLUDE_SELF)
              ->outIs('MAGICMETHOD')
              ->outIs('NAME')
              ->codeIs('__callstatic', self::TRANSLATE, self::CASE_INSENSITIVE)
              ->inIs('NAME')
              ->addETo('DEFINITION', 'first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Complete;

class SetClassMethodRemoteDefinition extends Complete {
    public function dependsOn(): array {
        return array('Complete/SetParentDefinition',
                    );
    }

    public function analyze() {
        // class x { function foo() {}} x::foo();
        $this->atomIs(array('Staticmethodcall', 'Methodcall'), self::WITHOUT_CONSTANTS)
              ->hasNoIn('DEFINITION')
              ->outIs('METHOD')
              ->atomIs('Methodcallname', self::WITHOUT_CONSTANTS)
              ->savePropertyAs('lccode', 'name')
              ->inIs('METHOD')
              ->outIs(array('CLASS', 'OBJECT'))
              // Handles variables as object
              ->optional(
                $this->side()
                     ->inIs('DEFINITION')
                     ->outIs('DEFAULT')
                     ->outIs('NEW')
              )
              ->inIs('DEFINITION')
              ->atomIs(self::CLASSES_TRAITS, self::WITHOUT_CONSTANTS)
              ->goToAllParents(self::INCLUDE_SELF)
              ->outIs(array('METHOD', 'MAGICMETHOD'))
              ->outIs('NAME')
              ->samePropertyAs('lccode', 'name', self::CASE_INSENSITIVE)
              ->inIs('NAME')
              ->as('origin')
              ->dedup(array('first', 'origin'))
              ->addETo('DEFINITION', 'first');
        $this->prepareQuery();

        // class x { use t} trait t {function foo() {}} x::foo();
        $this->atomIs('Staticmethod', self::WITHOUT_CONSTANTS)
              ->hasNoIn('DEFINITION')
              ->outIs('METHOD')
              ->atomIs(array('Identifier', 'Nsname'), self::WITHOUT_CONSTANTS)
              ->savePropertyAs('lccode', 'name')
              ->inIs('METHOD')
              ->outIs('CLASS')
              ->inIs('DEFINITION')
              ->atomIs('Trait', self::WITHOUT_CONSTANTS)
              ->goToAllParents(self::INCLUDE_SELF)
              ->outIs(array('METHOD', 'MAGICMETHOD'))
              ->outIs('NAME')
              ->samePropertyAs('lccode', 'name', self::CASE_INSENSITIVE)
              ->inIs('NAME')
              ->addETo('DEFINITION', 'first');
        $this->prepareQuery();
/*
        $this->atomIs('Staticmethodcall', self::WITHOUT_CONSTANTS)
              ->as('method')
              ->hasNoIn('DEFINITION')
              ->outIs('METHOD')
              ->atomIs('Methodcallname', self::WITHOUT_CONSTANTS)
              ->outIs('NAME')
              ->savePropertyAs('lccode', 'name')
              ->back('first')
              ->outIs('CLASS')
              ->has('fullnspath')
              ->savePropertyAs('fullnspath', 'fnp')
              ->filter(
                    $this->side()
                         ->goToClass()
                         ->atomIs(array('Class', 'Classanonymous'), self::WITHOUT_CONSTANTS)
                         ->goToAllParents(self::INCLUDE_SELF)
                         ->samePropertyAs('fullnspath', 'fnp', self::CASE_SENSITIVE)
              )
              ->inIs('DEFINITION')
              ->goToAllParentsTraits(self::INCLUDE_SELF)
              ->outIs(array('METHOD', 'MAGICMETHOD'))
              ->outIs('NAME')
              ->samePropertyAs('lccode', 'name', self::CASE_SENSITIVE)
              ->inIs('NAME')
              ->addETo('DEFINITION', 'method');
        $this->prepareQuery();
        */
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Complete;

class SetClassRemoteDefinitionWithInjection extends Complete {
    public function analyze() {
        $this->atomIs(self::CLASSES_ALL, self::WITHOUT_CONSTANTS)
              ->outIs('DEFINITION')
              ->inIs('TYPEHINT')
              ->outIs('NAME')
              ->outIs('DEFINITION')
              ->atomIs('Variable', self::WITHOUT_CONSTANTS)
              ->inIs('RIGHT')
              ->atomIs('Assignation', self::WITHOUT_CONSTANTS)
              ->outIs('LEFT')
              ->atomIs('Member', self::WITHOUT_CONSTANTS)

              ->inIs('DEFINITION')
              ->atomIs('Propertydefinition',  self::WITHOUT_CONSTANTS)
              ->outIs('DEFINITION')
              ->atomIs('Member', self::WITHOUT_CONSTANTS)
              ->addEFrom('DEFINITION', 'first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Complete;

class SolveTraitMethods extends Complete {
    public function analyze() {
        $this->atomIs('Usetrait', self::WITHOUT_CONSTANTS)
              ->outIs('BLOCK')
              ->outIs('EXPRESSION')
              ->atomIs('As', self::WITHOUT_CONSTANTS)
              ->outIs('NAME')
              ->atomIs('Staticmethod', self::WITHOUT_CONSTANTS)
              ->as('results')
              ->tokenIs('T_STRING')
              ->savePropertyAs('lccode', 'methode')
              ->back('first')
              ->outIs('USE')
              ->inIs('DEFINITION')
              ->outIs(array('METHOD', 'MAGICMETHOD'))
              ->outIs('NAME')
              ->samePropertyAs('lccode', 'methode', self::CASE_INSENSITIVE)
              ->inIs('NAME')
              ->addETo('DEFINITION', 'results');
        $this->prepareQuery();

        $this->atomIs('Usetrait', self::WITHOUT_CONSTANTS)
              ->outIs('BLOCK')
              ->outIs('EXPRESSION')
              ->atomIs('As', self::WITHOUT_CONSTANTS)
              ->outIs('NAME')
              ->as('results')
              ->atomIs('Nsname', self::WITHOUT_CONSTANTS)
              ->savePropertyAs('lccode', 'methode')
              ->back('first')
              ->outIs('USE')
              ->inIs('DEFINITION')
              ->outIs(array('METHOD', 'MAGICMETHOD'))
              ->outIs('NAME')
              ->samePropertyAs('lccode', 'methode', self::CASE_INSENSITIVE)
              ->inIs('NAME')
              ->addETo('DEFINITION', 'results');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Complete;


class OverwrittenConstants extends Complete {
    public function analyze() {
        // class x { protected const X = 1;}
        // class xx extends x {  protected const X = 1;}
        $this->atomIs('Constant', self::WITHOUT_CONSTANTS)
              ->outIs('NAME')
              ->savePropertyAs('code', 'name')
              ->goToClass()
              ->goToAllImplements(self::EXCLUDE_SELF)
              ->outIs('CONST')
              ->outIs('CONST')
              ->atomIs('Constant', self::WITHOUT_CONSTANTS)
              ->outIs('NAME')
              ->samePropertyAs('code', 'name',  self::CASE_SENSITIVE)
              ->inIs('NAME')
              ->as('origin')
              ->dedup(array('first', 'origin'))
              ->addEFrom('OVERWRITE', 'first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Complete;

class SetStringMethodDefinition extends Complete {
    public function analyze() {
        // $a = 'B::C' with class B { function C() {}}
        $this->atomIs('String', self::WITHOUT_CONSTANTS)
              ->hasIn('DEFINITION')
              ->regexIs('noDelimiter', '::')
              ->initVariable('name', '""')
              ->raw(<<<'GREMLIN'
filter{ 
    name = it.get().value("noDelimiter").split("::"); 
    if (name.length > 1) {
        name = name[1].toLowerCase();
    } else {
        name = false;
    }
    name != true;
}
GREMLIN)
              ->inIs('DEFINITION')
              ->outIs(array('METHOD', 'MAGICMETHOD'))
              ->atomIs(array('Method', 'Magicmethod'), self::WITHOUT_CONSTANTS)
              ->outIs('NAME')
              ->samePropertyAs('fullcode', 'name', self::CASE_SENSITIVE)
              ->inIs('NAME')
              ->addEto('DEFINITION', 'first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Complete;

class CreateForeachDefault extends Complete {
    public function dependsOn(): array {
        return array('Complete/CreateDefaultValues',
                    );
    }

    public function analyze() {
        // $a = [1 => 2]; foreach($a as $v) {}
        $this->atomIs('Foreach')
             ->outIs('VALUE')
             ->atomIs('Variable')
             ->inIs('DEFINITION')
             ->as('v')
             ->back('first')

             ->outIs('SOURCE')
             ->atomIs('Variable')
             ->inIs('DEFINITION')
             ->outIs('DEFAULT')
             ->atomIs('Arrayliteral')
             ->outIs('ARGUMENT')
             ->outIsIE('VALUE')
             ->as('string')
             ->dedup(array('v', 'string'))
             ->addEFrom('DEFAULT', 'v');
        $this->prepareQuery();

        // $a = [1 => 2]; foreach($a as $k => $v) {}
        $this->atomIs('Foreach')
             ->outIs('INDEX')
             ->atomIs('Variable')
             ->inIs('DEFINITION')
             ->as('v')
             ->back('first')

             ->outIs('SOURCE')
             ->atomIs('Variable')
             ->inIs('DEFINITION')
             ->outIs('DEFAULT')
             ->atomIs('Arrayliteral')
             ->outIs('ARGUMENT')
             ->outIs('INDEX')
             ->as('string')
             ->dedup(array('v', 'string'))
             ->addEFrom('DEFAULT', 'v');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Complete;

use Exakat\Analyzer\Analyzer;

abstract class Complete extends Analyzer {
    protected $storageType = self::QUERY_NO_ANALYZED;

    protected function setCount(int $count): void {
        $this->gremlin->query("g.V().hasLabel(\"Analysis\").has(\"analyzer\", \"{$this->shortAnalyzer}\").property(\"count\", $count)");
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Complete;

class FollowClosureDefinition extends Complete {
    public function analyze() {
        // immediate usage : in parenthesis
        $this->atomIs(array('Closure', 'Arrowfunction'), self::WITHOUT_CONSTANTS)
             ->inIsIE('RIGHT') // Skip all $closure =
             ->inIs('CODE')
             ->atomIs('Parenthesis')
             ->inIs('NAME')
             ->atomIs('Functioncall')
             ->hasNoIn('DEFINITION')
             ->addETo('DEFINITION', 'first');
        $this->prepareQuery();

        // local usage
        $this->atomIs(array('Closure', 'Arrowfunction'), self::WITHOUT_CONSTANTS)
             ->inIs('RIGHT')
             ->outIs('LEFT')
             ->inIs('DEFINITION')  // Find all variable usage
             ->outIs('DEFINITION')
             ->inIs('NAME')
             ->atomIs('Functioncall', self::WITHOUT_CONSTANTS)
             ->hasNoIn('DEFINITION')
             ->addEFrom('DEFINITION', 'first');
        $this->prepareQuery();

        // relayed usage
        $this->atomIs(array('Closure', 'Arrowfunction'), self::WITHOUT_CONSTANTS)
             ->hasIn('ARGUMENT')
             ->savePropertyAs('rank', 'ranked')
             ->inIs('ARGUMENT')
             ->inIs('DEFINITION')  // Find all variable usage
             ->outIs('ARGUMENT')
             ->samePropertyAs('rank', 'ranked', self::CASE_SENSITIVE)
             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->inIs('NAME')
             ->atomIs('Functioncall', self::WITHOUT_CONSTANTS)
             ->hasNoIn('DEFINITION')
             ->addEFrom('DEFINITION', 'first');
        $this->prepareQuery();
    }
}

?>
   Bud1           	                                                           t e C o m p                                                                                                                                                                                                                                                                                                                                                                                                                                           C r e a t e C o m p a c t V a r i a b l e s . p h pptbLustr   A U s e r s / f a m i l l e / D e s k t o p / a n a l y z e G 3 / l i b r a r y / E x a k a t / A n a l y z e r / C o m p l e t e /    C r e a t e C o m p a c t V a r i a b l e s . p h pptbNustr    C r e a t e C o m p a c t V a r i a b l e s . p h p                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    @                                              @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   E  	                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       DSDB                                 `                                                   @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              <?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Complete;

class CreateMagicProperty extends Complete {
    public function dependsOn(): array {
        return array('Complete/OverwrittenProperties',
                     'Complete/SetClassRemoteDefinitionWithTypehint',
                    );
    }

    public function analyze() {

        // Missing : typehinted properties, return typehint, clone

        // link to __get
        $this->atomIs('Member', self::WITHOUT_CONSTANTS)
             ->is('isRead', true)
             ->not(
                $this->side()
                     ->inIs('DEFINITION')
                     ->atomIs('Propertydefinition')
             )
             ->not(
                $this->side()
                     ->inIs('DEFINITION')
                     ->outIs('OVERWRITE')
                     ->atomIs('Propertydefinition')
             )
             ->outIs('OBJECT')
             ->atomIs(array('Variableobject', 'This'), self::WITHOUT_CONSTANTS)
             ->inIs('DEFINITION') // Good enough for This
             ->optional(          // For arguments
                $this->side()
                     ->inIs('NAME')
                     ->atomIs('Parameter', self::WITHOUT_CONSTANTS)
                     ->outIs('TYPEHINT')
                     ->inIs('DEFINITION')
             )

            // In case we are in an interface
             ->optional(
                $this->side()
                     ->atomIs('Interface', self::WITHOUT_CONSTANTS)
                     ->outIs('DEFINITION')
                     ->inIs('IMPLEMENTS')
             )

             ->goToAllParentsTraits(self::INCLUDE_SELF)
             ->outIs('MAGICMETHOD')
             ->outIs('NAME')
             ->codeIs('__get', self::TRANSLATE, self::CASE_INSENSITIVE)
             ->inIs('NAME')

             ->addETo('DEFINITION', 'first');
        $this->prepareQuery();

        // link to __set
        $this->atomIs('Member', self::WITHOUT_CONSTANTS)
             ->is('isModified', true)
             ->not(
                $this->side()
                     ->inIs('DEFINITION')
                     ->atomIs('Propertydefinition')
             )
             ->not(
                $this->side()
                     ->inIs('DEFINITION')
                     ->outIs('OVERWRITE')
                     ->atomIs('Propertydefinition')
             )
             ->outIs('OBJECT')
             ->atomIs(array('Variableobject', 'This'), self::WITHOUT_CONSTANTS)
             ->inIs('DEFINITION') // Good enough for This
             ->optional(          // For arguments
                $this->side()
                     ->inIs('NAME')
                     ->atomIs('Parameter', self::WITHOUT_CONSTANTS)
                     ->outIs('TYPEHINT')
                     ->inIs('DEFINITION')
             )

            // In case we are in an interface
             ->optional(
                $this->side()
                     ->atomIs('Interface', self::WITHOUT_CONSTANTS)
                     ->outIs('DEFINITION')
                     ->inIs('IMPLEMENTS')
             )

             ->goToAllParentsTraits(self::INCLUDE_SELF)
             ->outIs('MAGICMETHOD')
             ->outIs('NAME')
             ->codeIs('__set', self::TRANSLATE, self::CASE_INSENSITIVE)
             ->inIs('NAME')
             ->addETo('DEFINITION', 'first');
        $this->prepareQuery();

        // isset($this->a)
        $this->atomIs('Member', self::WITHOUT_CONSTANTS)
             ->not(
                $this->side()
                     ->inIs('DEFINITION')
                     ->atomIs('Propertydefinition')
             )
             ->not(
                $this->side()
                     ->inIs('DEFINITION')
                     ->outIs('OVERWRITE')
                     ->atomIs('Propertydefinition')
             )
             ->inIs('ARGUMENT')
             ->atomIs('Isset')
             ->back('first')

             ->outIs('OBJECT')
             ->atomIs(array('Variableobject', 'This'), self::WITHOUT_CONSTANTS)
             ->optional(
                $this->side()
                     ->inIs('DEFINITION')
                     ->inIs('NAME')
                     ->outIs('TYPEHINT')
             )
             ->inIs('DEFINITION')
             ->goToAllParentsTraits(self::INCLUDE_SELF)
             ->outIs('MAGICMETHOD')
             ->outIs('NAME')
             ->codeIs('__isset', self::TRANSLATE, self::CASE_INSENSITIVE)
             ->inIs('NAME')
             ->addETo('DEFINITION', 'first');
        $this->prepareQuery();

        // unset($this->a)
        $this->atomIs('Member', self::WITHOUT_CONSTANTS)
             ->not(
                $this->side()
                     ->inIs('DEFINITION')
                     ->atomIs('Propertydefinition')
             )
             ->not(
                $this->side()
                     ->inIs('DEFINITION')
                     ->outIs('OVERWRITE')
                     ->atomIs('Propertydefinition')
             )
             ->inIs('ARGUMENT')
             ->atomIs('Unset')
             ->back('first')

             ->outIs('OBJECT')
             ->atomIs(array('Variableobject', 'This'), self::WITHOUT_CONSTANTS)
             ->optional(
                $this->side()
                     ->inIs('DEFINITION')
                     ->inIs('NAME')
                     ->outIs('TYPEHINT')
             )
             ->inIs('DEFINITION')
             ->goToAllParentsTraits(self::INCLUDE_SELF)
             ->outIs('MAGICMETHOD')
             ->outIs('NAME')
             ->codeIs('__unset', self::TRANSLATE, self::CASE_INSENSITIVE)
             ->inIs('NAME')
             ->addETo('DEFINITION', 'first');
        $this->prepareQuery();

        // unset() $this->a
        $this->atomIs('Member', self::WITHOUT_CONSTANTS)
             ->not(
                $this->side()
                     ->inIs('DEFINITION')
                     ->atomIs('Propertydefinition')
             )
             ->not(
                $this->side()
                     ->inIs('DEFINITION')
                     ->outIs('OVERWRITE')
                     ->atomIs('Propertydefinition')
             )
             ->inIs('CAST')
             ->atomIs('Cast')
             ->tokenIs('T_UNSET_CAST')
             ->back('first')

              ->outIs('OBJECT')
             ->atomIs(array('Variableobject', 'This'), self::WITHOUT_CONSTANTS)
             ->optional(
                $this->side()
                     ->inIs('DEFINITION')
                     ->inIs('NAME')
                     ->outIs('TYPEHINT')
             )
             ->inIs('DEFINITION')
             ->goToAllParentsTraits(self::INCLUDE_SELF)
             ->outIs('MAGICMETHOD')
             ->outIs('NAME')
             ->codeIs('__unset', self::TRANSLATE, self::CASE_INSENSITIVE)
             ->inIs('NAME')
             ->addETo('DEFINITION', 'first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Complete;

class MakeFunctioncallWithReference extends Complete {
    public function dependsOn(): array {
        return array('Complete/SetClassMethodRemoteDefinition',
                     'Complete/PropagateCalls',
                    );
    }

    public function analyze() {
        // Case of PHP native functions
        $methods = $this->methods->getFunctionsReferenceArgs();
        $functions = array();
        foreach($methods as $method) {
            array_collect_by($functions, $method['position'], makeFullnspath($method['function']));
        }

        foreach($functions as $position => $calls) {
            $this->atomFunctionIs($calls)
                 ->outWithRank('ARGUMENT', $position)
                 ->setProperty('isModified', true);
            $this->prepareQuery();
        }

        // Case of Custom native functions
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->is('reference', true)
             ->savePropertyAs('rank', 'ranked')
             ->back('first')
             ->outIs('DEFINITION')
             ->outIsIE('METHOD')
             ->outWithRank('ARGUMENT', 'ranked')
             ->setProperty('isModified', true);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Complete;

class SetClassRemoteDefinitionWithLocalNew extends Complete {
    public function dependsOn(): array {
        return array('Complete/CreateDefaultValues',
                    );
    }

    public function analyze() {
        $this->atomIs('Methodcall', self::WITHOUT_CONSTANTS)
              //->hasNoIn('DEFINITION')
              ->outIs('METHOD')
              ->atomIs('Methodcallname', self::WITHOUT_CONSTANTS)
              ->savePropertyAs('lccode', 'name')
              ->inIs('METHOD')
              ->outIs('OBJECT')
              ->inIs('DEFINITION')  // No check on atoms :
              ->atomIs(array('Variabledefinition', 'Parametername', 'Propertydefinition', 'Globaldefinition', 'Staticdefinition', 'Virtualproperty'), self::WITHOUT_CONSTANTS)
              ->outIs('DEFAULT')
              ->atomIs('New', self::WITHOUT_CONSTANTS)
              ->outIs('NEW')
              ->inIs('DEFINITION')
              ->atomIs(self::CLASSES_ALL, self::WITHOUT_CONSTANTS)
              ->goToAllParentsTraits(self::INCLUDE_SELF)
              ->outIs('METHOD')
              ->outIs('NAME')
              ->samePropertyAs('lccode', 'name', self::CASE_INSENSITIVE)
              ->inIs('NAME')
              ->addETo('DEFINITION', 'first');
        $this->prepareQuery();

        $this->atomIs('Member', self::WITHOUT_CONSTANTS)
              ->as('member')
              ->hasNoIn('DEFINITION')
              ->outIs('MEMBER')
              ->atomIs('Name', self::WITHOUT_CONSTANTS)
              ->savePropertyAs('code', 'name')
              ->inIs('MEMBER')
              ->outIs('OBJECT')
              ->inIs('DEFINITION')
              ->atomIs(array('Variabledefinition', 'Parametername', 'Propertydefinition', 'Globaldefinition', 'Staticdefinition', 'Virtualproperty'), self::WITHOUT_CONSTANTS)
              ->outIs('DEFAULT')
              ->atomIs('New', self::WITHOUT_CONSTANTS)
              ->outIs('NEW')
              ->inIs('DEFINITION')
              ->atomIs(self::CLASSES_ALL, self::WITHOUT_CONSTANTS)
              ->goToAllParentsTraits(self::INCLUDE_SELF)
              ->outIs('PPP')
              ->outIs('PPP')
              ->atomIs('Propertydefinition')
              ->samePropertyAs('propertyname', 'name', self::CASE_SENSITIVE)
              ->addETo('DEFINITION', 'member');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Complete;

class SetClassRemoteDefinitionWithParenthesis extends Complete {
    public function analyze() {
        // (new x)->foo()
        $this->atomIs('Methodcall', self::WITHOUT_CONSTANTS)
              ->as('method')
              ->hasNoIn('DEFINITION')
              ->outIs('METHOD')
              ->atomIs('Methodcallname', self::WITHOUT_CONSTANTS)
              ->savePropertyAs('lccode', 'name')
              ->back('first')
              ->outIs('OBJECT')
              ->atomIs('Parenthesis', self::WITHOUT_CONSTANTS)
              ->outIs('CODE')
              ->optional(
                $this->side()
                     ->atomIs('Assignation')
                     ->outIs('RIGHT')
              )
              ->atomIs('New', self::WITHOUT_CONSTANTS)
              ->outIs('NEW')
              ->inIs('DEFINITION')  // No check on atoms :
              ->atomIs('Class', self::WITHOUT_CONSTANTS)
              ->goToAllParents(self::INCLUDE_SELF)
              ->outIs(array('METHOD', 'MAGICMETHOD'))
              ->outIs('NAME')
              ->samePropertyAs('lccode', 'name', self::CASE_INSENSITIVE)
              ->inIs('NAME')
              ->addETo('DEFINITION', 'method');
        $this->prepareQuery();

        // (new x)::foo()
        $this->atomIs('Member', self::WITHOUT_CONSTANTS)
              ->as('member')
              ->hasNoIn('DEFINITION')
              ->outIs('MEMBER')
              ->atomIs('Name', self::WITHOUT_CONSTANTS)
              ->savePropertyAs('code', 'name')
              ->back('first')
              ->outIs('OBJECT')
              ->atomIs('Parenthesis', self::WITHOUT_CONSTANTS)
              ->outIs('CODE')
              ->optional(
                $this->side()
                     ->atomIs('Assignation')
                     ->outIs('RIGHT')
              )
              ->atomIs('New', self::WITHOUT_CONSTANTS)
              ->outIs('NEW')
              ->inIs('DEFINITION')  // No check on atoms :
              ->atomIs('Class', self::WITHOUT_CONSTANTS)
              ->goToAllParents(self::INCLUDE_SELF)
              ->outIs('PPP')
              ->outIs('PPP')
              ->samePropertyAs('propertyname', 'name', self::CASE_SENSITIVE)
              ->addETo('DEFINITION', 'member');
        $this->prepareQuery();

        // (new x)::foo()
        $this->atomIs('Staticmethodcall', self::WITHOUT_CONSTANTS)
              ->as('method')
              ->hasNoIn('DEFINITION')
              ->outIs('METHOD')
              ->atomIs('Methodcallname', self::WITHOUT_CONSTANTS)
              ->savePropertyAs('lccode', 'name')
              ->back('first')
              ->outIs('CLASS')
              ->atomIs('Parenthesis', self::WITHOUT_CONSTANTS)
              ->outIs('CODE')
              ->optional(
                $this->side()
                     ->atomIs('Assignation')
                     ->outIs('RIGHT')
              )
              ->atomIs('New', self::WITHOUT_CONSTANTS)
              ->outIs('NEW')
              ->inIs('DEFINITION')  // No check on atoms :
              ->atomIs('Class', self::WITHOUT_CONSTANTS)
              ->goToAllParents(self::INCLUDE_SELF)
              ->outIs(array('METHOD', 'MAGICMETHOD'))
              ->outIs('NAME')
              ->samePropertyAs('lccode', 'name', self::CASE_INSENSITIVE)
              ->inIs('NAME')
              ->addETo('DEFINITION', 'method');
        $this->prepareQuery();

        // (new x)::foo()
        $this->atomIs('Staticproperty', self::WITHOUT_CONSTANTS)
              ->as('member')
              ->hasNoIn('DEFINITION')
              ->outIs('MEMBER')
              ->atomIs('Name', self::WITHOUT_CONSTANTS)
              ->savePropertyAs('code', 'name')
              ->back('first')
              ->outIs('CLASS')
              ->atomIs('Parenthesis', self::WITHOUT_CONSTANTS)
              ->outIs('CODE')
              ->optional(
                $this->side()
                     ->atomIs('Assignation')
                     ->outIs('RIGHT')
              )
              ->atomIs('New', self::WITHOUT_CONSTANTS)
              ->outIs('NEW')
              ->inIs('DEFINITION')  // No check on atoms :
              ->atomIs('Class', self::WITHOUT_CONSTANTS)
              ->goToAllParents(self::INCLUDE_SELF)
              ->outIs('PPP')
              ->outIs('PPP')
              ->samePropertyAs('propertyname', 'name', self::CASE_SENSITIVE)
              ->addETo('DEFINITION', 'member');
        $this->prepareQuery();

        // (new x)::FOO
        $this->atomIs('Staticconstant', self::WITHOUT_CONSTANTS)
              ->as('constant')
              ->hasNoIn('DEFINITION')
              ->outIs('CONSTANT')
              ->atomIs('Name', self::WITHOUT_CONSTANTS)
              ->savePropertyAs('code', 'name')
              ->back('first')
              ->outIs('CLASS')
              ->atomIs('Parenthesis', self::WITHOUT_CONSTANTS)
              ->outIs('CODE')
              ->optional(
                $this->side()
                     ->atomIs('Assignation')
                     ->outIs('RIGHT')
              )
              ->atomIs('New', self::WITHOUT_CONSTANTS)
              ->outIs('NEW')
              ->inIs('DEFINITION')  // No check on atoms :
              ->atomIs('Class', self::WITHOUT_CONSTANTS)
              ->goToAllParents(self::INCLUDE_SELF)
              ->outIs('CONST')
              ->outIs('CONST')
              ->outIs('NAME')
              ->samePropertyAs('code', 'name', self::CASE_SENSITIVE)
              ->inIs('NAME')
              ->addETo('DEFINITION', 'constant');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Complete;

class CreateCompactVariables extends Complete {
    public function analyze(): void {
        // compact('a') : 'a' is one usage of a variable
        $this->atomFunctionIs('\compact')
              ->outIs('ARGUMENT')
              ->has('noDelimiter')
              ->as('varInString')
              ->savePropertyAs('noDelimiter', 'name')
              ->makeVariableName('name')
              ->goToInstruction(array('Function', 'Closure', 'Method', 'Magicmethod', 'File'))
              ->outIs(array('DEFINITION', 'ARGUMENT', 'USE'))
              ->atomIs(array('Variabledefinition', 'Globaldefinition', 'Staticdefinition', 'Parameter'), self::WITHOUT_CONSTANTS)
              ->outIsIE('NAME')
              ->samePropertyAs('fullcode', 'name', self::CASE_SENSITIVE)
              ->addETo('DEFINITION', 'varInString');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Complete;

class CreateDefaultValues extends Complete {
    public function analyze() {

        // Link initial values for containers
        $this->atomIs(array('Variabledefinition',
                            'Staticdefinition',
                            'Globaldefinition',
                            'Staticdefinition',
                            'Virtualproperty',
                            'Propertydefinition',
                            'Parametername',
                            ), self::WITHOUT_CONSTANTS)
             ->not(
                $this->side()
                     ->outIs('DEFAULT')
                     ->hasIn('RIGHT')
             )
             ->outIs('DEFINITION')
             ->inIs('LEFT')
             ->atomIs('Assignation', self::WITHOUT_CONSTANTS)
             ->codeIs(array('=', '??='), self::TRANSLATE, self::CASE_SENSITIVE) // can't accept .=, +=, etc.

             // doesn't use self : $a = $a + 1 is not a default value
             ->not(
                $this->side()
                     ->outIs('RIGHT')
                     ->atomInsideNoDefinition(self::VARIABLES_ALL)
                     ->inIs('DEFINITION')
                     ->inIsIE('NAME')
                     ->raw('is(eq("first"))')
             )
             ->followParAs('RIGHT')
             ->addEFrom('DEFAULT', 'first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Complete;

class SetClassRemoteDefinitionWithGlobal extends Complete {
    public function analyze() {
        $this->atomIs('Methodcall', self::WITHOUT_CONSTANTS)
              ->as('method')
              ->hasNoIn('DEFINITION')
              ->outIs('METHOD')
              ->atomIs('Methodcallname', self::WITHOUT_CONSTANTS)
              ->savePropertyAs('lccode', 'name')
              ->inIs('METHOD')
              ->outIs('OBJECT')
              ->inIs('DEFINITION')
              ->atomIs(array('Globaldefinition', 'Variabledefinition'), self::WITHOUT_CONSTANTS)
              ->inIs('DEFINITION')
              ->atomIs('Virtualglobal', self::WITHOUT_CONSTANTS)
              ->outIs('DEFINITION')
              ->outIs('DEFINITION')
              ->inIs('LEFT')
              ->atomIs('Assignation', self::WITHOUT_CONSTANTS) // code is =
              ->outIs('RIGHT')
              ->atomIs('New', self::WITHOUT_CONSTANTS)
              ->outIs('NEW')
              ->inIs('DEFINITION')
              ->atomIs('Class', self::WITHOUT_CONSTANTS)
              ->goToAllParents(self::INCLUDE_SELF)
              ->outIs('METHOD')
              ->outIs('NAME')
              ->samePropertyAs('lccode', 'name', self::CASE_INSENSITIVE)
              ->inIs('NAME')
              ->addETo('DEFINITION', 'method');
        $this->prepareQuery();

        $this->atomIs('Member', self::WITHOUT_CONSTANTS)
              ->as('member')
              ->hasNoIn('DEFINITION')
              ->outIs('MEMBER')
              ->atomIs('Name', self::WITHOUT_CONSTANTS)
              ->savePropertyAs('code', 'name')
              ->inIs('MEMBER')
              ->outIs('OBJECT')
              ->inIs('DEFINITION')
              ->atomIs(array('Globaldefinition', 'Variabledefinition'), self::WITHOUT_CONSTANTS)
              ->inIs('DEFINITION')
              ->atomIs('Virtualglobal', self::WITHOUT_CONSTANTS)
              ->outIs('DEFINITION')
              ->outIs('DEFINITION')
              ->inIs('LEFT')
              ->atomIs('Assignation', self::WITHOUT_CONSTANTS) // code is =
              ->outIs('RIGHT')
              ->atomIs('New', self::WITHOUT_CONSTANTS)
              ->outIs('NEW')
              ->inIs('DEFINITION')
              ->atomIs('Class', self::WITHOUT_CONSTANTS)
              ->goToAllParents(self::INCLUDE_SELF)
              ->outIs('PPP')
              ->outIs('PPP')
              ->samePropertyAs('propertyname', 'name', self::CASE_SENSITIVE)
              ->addETo('DEFINITION', 'member');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Complete;

class OverwrittenMethods extends Complete {
    public function analyze() {
        // class x { protected function foo()  {}}
        // class xx extends x { protected function foo()  {}}
        $this->atomIs(array('Method', 'Magicmethod'), self::WITHOUT_CONSTANTS)
             ->hasNoOut('OVERWRITE')
             ->outIs('NAME')
             ->savePropertyAs('lccode', 'name')
             ->goToClass()
             ->goToAllParents(self::EXCLUDE_SELF)
             ->outIs(array('METHOD', 'MAGICMETHOD'))
             ->outIs('NAME')
             ->samePropertyAs('code', 'name',  self::CASE_INSENSITIVE)
             ->inIs('NAME')
             ->as('origin')
             ->dedup(array('first', 'origin'))
             ->addEFrom('OVERWRITE', 'first');
        $this->prepareQuery();

        // interface x { protected function foo()  {}}
        // interface xx extends x { protected function foo()  {}}
        $this->atomIs(array('Method', 'Magicmethod'), self::WITHOUT_CONSTANTS)
             ->hasNoOut('OVERWRITE')
             ->outIs('NAME')
             ->savePropertyAs('lccode', 'name')
             ->goToInterface()
             ->goToAllImplements(self::EXCLUDE_SELF)
             ->outIs(array('METHOD', 'MAGICMETHOD'))
             ->outIs('NAME')
             ->samePropertyAs('code', 'name',  self::CASE_INSENSITIVE)
             ->inIs('NAME')
             ->as('origin')
             ->dedup(array('first', 'origin'))
             ->addEFrom('OVERWRITE', 'first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Complete;

class MakeClassMethodDefinition extends Complete {
    public function dependsOn(): array {
        return array('Complete/SetParentDefinition',
                     'Complete/CreateDefaultValues',
                    );
    }

    public function analyze() {

        // Warning : no support for overwritten methods : ALL methods are linked

        // Create link between static Class method and its definition
        // This works outside a class too, for static.
        $this->atomIs('Staticmethodcall', self::WITHOUT_CONSTANTS)
              ->hasNoIn('DEFINITION')
              ->outIs('METHOD')
              ->savePropertyAs('lccode', 'name')
              ->inIs('METHOD')
              ->outIs('CLASS')
              ->atomIs(array('Identifier', 'Nsname', 'Self', 'Static'), self::WITHOUT_CONSTANTS)
              ->inIs('DEFINITION')
              ->atomIs(self::CLASSES_TRAITS, self::WITHOUT_CONSTANTS)
              ->outIs(array('METHOD', 'MAGICMETHOD'))
              ->outIs('NAME')
              ->samePropertyAs('code', 'name', self::CASE_INSENSITIVE)
              ->inIs('NAME')
              ->addETo('DEFINITION', 'first');
        $this->prepareQuery();

        $this->atomIs('Staticmethodcall', self::WITHOUT_CONSTANTS)
              ->hasNoIn('DEFINITION')
              ->outIs('METHOD')
              ->savePropertyAs('lccode', 'name')
              ->inIs('METHOD')
              ->outIs('CLASS')
              ->atomIs('Static', self::WITHOUT_CONSTANTS)
              ->inIs('DEFINITION')
              ->atomIs(self::CLASSES_TRAITS,  self::WITHOUT_CONSTANTS)
              ->goToAllChildren(self::EXCLUDE_SELF)
              ->outIs(array('METHOD', 'MAGICMETHOD'))
              ->outIs('NAME')
              ->samePropertyAs('code', 'name', self::CASE_INSENSITIVE)
              ->inIs('NAME')
              ->addETo('DEFINITION', 'first');
        $this->prepareQuery();

        // Create link between Class method and definition
        // This works only for $this
        // First case for the local class
        $this->atomIs('Methodcall', self::WITHOUT_CONSTANTS)
              ->hasNoIn('DEFINITION')
              ->outIs('OBJECT')
              ->atomIs('This', self::WITHOUT_CONSTANTS)
              ->inIs('OBJECT')
              ->outIs('METHOD')
              ->savePropertyAs('lccode', 'name')
              ->back('first')
              ->goToClass(self::CLASSES_TRAITS)
              ->outIs(array('METHOD', 'MAGICMETHOD'))
              ->outIs('NAME')
              ->samePropertyAs('code', 'name', self::CASE_INSENSITIVE)
              ->inIs('NAME')
              ->addETo('DEFINITION', 'first');
        $this->prepareQuery();

        // Second case for the local traits
        $this->atomIs('Methodcall', self::WITHOUT_CONSTANTS)
              ->hasNoIn('DEFINITION')
              ->outIs('OBJECT')
              ->atomIs('This', self::WITHOUT_CONSTANTS)
              ->inIs('OBJECT')
              ->outIs('METHOD')
              ->savePropertyAs('lccode', 'name')
              ->back('first')
              ->goToClass(self::CLASSES_TRAITS)
              ->outIs('USE')
              ->outIs('USE')
              ->inIs('DEFINITION')
              ->atomIs('Trait')

              ->outIs(array('METHOD', 'MAGICMETHOD'))
              ->outIs('NAME')
              ->samePropertyAs('code', 'name', self::CASE_INSENSITIVE)
              ->inIs('NAME')
              ->addETo('DEFINITION', 'first');
        $this->prepareQuery();

        // Third case for the parents
        $this->atomIs('Methodcall', self::WITHOUT_CONSTANTS)
              ->hasNoIn('DEFINITION')
              ->outIs('OBJECT')
              ->atomIs('This', self::WITHOUT_CONSTANTS)
              ->inIs('OBJECT')
              ->outIs('METHOD')
              ->savePropertyAs('lccode', 'name')
              ->back('first')
              ->goToClass(self::CLASSES_TRAITS)
              ->goToAllParentsTraits(self::EXCLUDE_SELF)
              ->outIs(array('METHOD', 'MAGICMETHOD'))
              ->outIs('NAME')
              ->samePropertyAs('code', 'name', self::CASE_INSENSITIVE)
              ->inIs('NAME')
              ->addETo('DEFINITION', 'first');
        $this->prepareQuery();

        // This will take care of the first step : class - trait - parent. (Above is currently not detailled, any method is linked.)


        // Create link between Class method and definition
        // This works only for $this
        $this->atomIs('Methodcall', self::WITHOUT_CONSTANTS)
              ->hasNoIn('DEFINITION')
              ->outIs('OBJECT')
              ->atomIs('This', self::WITHOUT_CONSTANTS)
              ->inIs('OBJECT')
              ->outIs('METHOD')
              ->savePropertyAs('lccode', 'name')
              ->back('first')
              ->goToInstruction(self::CLASSES_TRAITS)
              ->goToAllParents(self::INCLUDE_SELF)

              ->outIs('USE')
              ->outIs('BLOCK')
              ->outIs('EXPRESSION')
              ->atomIs(array('As', 'Insteadof'), self::WITHOUT_CONSTANTS)
              ->outIs(array('AS', 'INSTEADOF'))
              ->samePropertyAs('lccode', 'name', self::CASE_INSENSITIVE)
              ->inIs(array('AS', 'INSTEADOF'))
              ->outIs('NAME')
              ->outIs('METHOD')
              ->savePropertyAs('lccode', 'realname')
              ->inIs('METHOD')
              ->outIs('CLASS')
              ->inIs('DEFINITION')
              ->atomIs('Trait', self::WITHOUT_CONSTANTS)
              ->GoToAllParentsTraits(self::INCLUDE_SELF)
              ->outIs(array('METHOD', 'MAGICMETHOD'))
              ->outIs('NAME')
              ->samePropertyAs('lccode', 'realname', self::CASE_INSENSITIVE)
              ->inIs('NAME')
              ->addETo('DEFINITION', 'first');
        $this->prepareQuery();

        // Create link between Class method and definition
        // This works only for $this
        $this->atomIs('Methodcall', self::WITHOUT_CONSTANTS)
              ->hasNoIn('DEFINITION')
              ->outIs('OBJECT')
              ->atomIs('This', self::WITHOUT_CONSTANTS)
              ->inIs('OBJECT')
              ->outIs('METHOD')
              ->savePropertyAs('lccode', 'name')
              ->back('first')
              ->goToInstruction(self::CLASSES_TRAITS)
              ->goToAllParents(self::INCLUDE_SELF)
              ->as('theClass')

              ->outIs('USE')
              ->outIs('BLOCK')
              ->outIs('EXPRESSION')
              ->atomIs('As', self::WITHOUT_CONSTANTS)
              ->outIs('AS')
              ->samePropertyAs('lccode', 'name', self::CASE_INSENSITIVE)
              ->inIs('AS')
              ->outIs('NAME')
              ->savePropertyAs('lccode', 'realname')
              ->back('theClass')

              ->outIs('USE')
              ->outIs('USE')
              ->inIs('DEFINITION')
              ->atomIs('Trait', self::WITHOUT_CONSTANTS)
              ->GoToAllParentsTraits(self::INCLUDE_SELF)
              ->outIs(array('METHOD', 'MAGICMETHOD'))
              ->outIs('NAME')
              ->samePropertyAs('lccode', 'realname', self::CASE_INSENSITIVE)
              ->inIs('NAME')
              ->addETo('DEFINITION', 'first');
        $this->prepareQuery();

        // Create link between Class method and definition
        // This works only for $this
        $this->atomIs('Staticmethodcall', self::WITHOUT_CONSTANTS)
              ->hasNoIn('DEFINITION')
              ->outIs('METHOD')
              ->savePropertyAs('lccode', 'name')
              ->inIs('METHOD')
              ->outIs('CLASS')
              ->atomIs(array('Identifier', 'Nsname', 'Self', 'Static'), self::WITHOUT_CONSTANTS)
              ->inIs('DEFINITION')
              ->goToAllParents(self::INCLUDE_SELF)

              ->outIs('USE')
              ->outIs('BLOCK')
              ->outIs('EXPRESSION')
              ->atomIs(array('As', 'Insteadof'), self::WITHOUT_CONSTANTS)
              ->outIs(array('AS', 'INSTEADOF'))
              ->samePropertyAs('lccode', 'name', self::CASE_INSENSITIVE)
              ->inIs(array('AS', 'INSTEADOF'))
              ->outIs('NAME')
              ->outIs('METHOD')
              ->savePropertyAs('lccode', 'realname')
              ->inIs('METHOD')
              ->outIs('CLASS')
              ->inIs('DEFINITION')
              ->atomIs('Trait', self::WITHOUT_CONSTANTS)
              ->GoToAllParentsTraits(self::INCLUDE_SELF)
              ->outIs(array('METHOD', 'MAGICMETHOD'))
              ->outIs('NAME')
              ->samePropertyAs('lccode', 'realname', self::CASE_INSENSITIVE)
              ->inIs('NAME')
              ->addETo('DEFINITION', 'first');
        $this->prepareQuery();

        // Create link between Class method and definition
        // This works only for $this
        $this->atomIs('Staticmethodcall', self::WITHOUT_CONSTANTS)
              ->hasNoIn('DEFINITION')
              ->outIs('METHOD')
              ->savePropertyAs('lccode', 'name')
              ->inIs('METHOD')
              ->outIs('CLASS')
              ->atomIs(array('Identifier', 'Nsname', 'Self', 'Static'), self::WITHOUT_CONSTANTS)
              ->inIs('DEFINITION')
              ->goToAllParents(self::INCLUDE_SELF)
              ->as('theClass')

              ->outIs('USE')
              ->outIs('BLOCK')
              ->outIs('EXPRESSION')
              ->atomIs('As', self::WITHOUT_CONSTANTS)
              ->outIs('AS')
              ->samePropertyAs('lccode', 'name', self::CASE_INSENSITIVE)
              ->inIs('AS')
              ->outIs('NAME')
              ->savePropertyAs('lccode', 'realname')
              ->back('theClass')

              ->outIs('USE')
              ->outIs('USE')
              ->inIs('DEFINITION')
              ->atomIs('Trait', self::WITHOUT_CONSTANTS)
              ->GoToAllParentsTraits(self::INCLUDE_SELF)
              ->outIs(array('METHOD', 'MAGICMETHOD'))

              ->outIs('NAME')
              ->samePropertyAs('lccode', 'realname', self::CASE_INSENSITIVE)
              ->inIs('NAME')
              ->addETo('DEFINITION', 'first');
        $this->prepareQuery();

        // Create link between static Class method and its definition
        // This works outside a class too, for static.
        $this->atomIs('Staticmethodcall', self::WITHOUT_CONSTANTS)
              ->hasNoIn('DEFINITION')
              ->outIs('METHOD')
              ->savePropertyAs('lccode', 'name')
              ->inIs('METHOD')
              ->outIs('CLASS')
              ->atomIs(array('Identifier', 'Nsname', 'Self', 'Static'), self::WITHOUT_CONSTANTS)
              ->inIs('DEFINITION')
              ->atomIs(array('Class', 'Classanonymous'), self::WITHOUT_CONSTANTS)
              ->goToAllParents(self::EXCLUDE_SELF)
              ->outIs(array('METHOD', 'MAGICMETHOD'))
              ->isNot('visibility', 'private')
              ->outIs('NAME')
              ->samePropertyAs('code', 'name', self::CASE_INSENSITIVE)
              ->inIs('NAME')
              ->addETo('DEFINITION', 'first');
        $this->prepareQuery();

        // Create link between static Class method and its definition
        // This works outside a class too, for static.
        $this->atomIs('Staticmethodcall', self::WITHOUT_CONSTANTS)
              ->hasNoIn('DEFINITION')
              ->outIs('METHOD')
              ->savePropertyAs('lccode', 'name')
              ->inIs('METHOD')
              ->outIs('CLASS')
              ->atomIs('Parent', self::WITHOUT_CONSTANTS)
              ->inIs('DEFINITION')
              ->GoToAllParentsTraits(self::INCLUDE_SELF)
              ->outIs(array('METHOD', 'MAGICMETHOD'))
              ->isNot('visibility', 'private')
              ->outIs('NAME')
              ->samePropertyAs('code', 'name', self::CASE_INSENSITIVE)
              ->inIs('NAME')
              ->addETo('DEFINITION', 'first');
        $this->prepareQuery();

        // Create link between constructor and new call
        $this->atomIs('New', self::WITHOUT_CONSTANTS)
              ->outIs('NEW')
              ->atomIs(array('Newcall', 'Self', 'Parent'), self::WITHOUT_CONSTANTS)
              ->has('fullnspath')
              ->inIs('DEFINITION')
              ->atomIs(array('Class', 'Clasanonymous'), self::WITHOUT_CONSTANTS)
              ->outIs('MAGICMETHOD')
              ->outIs('NAME')
              ->codeIs('__construct', self::TRANSLATE, self::CASE_INSENSITIVE)
              ->inIs('NAME')
              ->addETo('DEFINITION', 'first');
        $this->prepareQuery();

        $this->atomIs('New', self::WITHOUT_CONSTANTS)
              ->hasNoIn('DEFINITION')
              ->outIs('NEW')
              ->atomIs(array('Newcall', 'Self', 'Parent'), self::WITHOUT_CONSTANTS)
              ->has('fullnspath')
              ->inIs('DEFINITION')
              ->atomIs(array('Class', 'Clasanonymous'), self::WITHOUT_CONSTANTS)
              ->outIs('NAME')
              ->savePropertyAs('lccode', 'name')
              ->inIs('NAME')
              ->outIs('METHOD')
              ->outIs('NAME')
              ->samePropertyAs('lccode', 'name', self::CASE_INSENSITIVE)
              ->inIs('NAME')
              ->addETo('DEFINITION', 'first');
        $this->prepareQuery();

        $this->atomIs('New', self::WITHOUT_CONSTANTS)
              ->hasNoIn('DEFINITION')
              ->outIs('NEW')
              ->atomIs(array('Newcall', 'Self', 'Parent'), self::WITHOUT_CONSTANTS)
              ->has('fullnspath')
              ->inIs('DEFINITION')
              ->atomIs(array('Class', 'Clasanonymous'), self::WITHOUT_CONSTANTS)
              ->outIs('EXTENDS')
              ->inIs('DEFINITION')
              ->raw(<<<'GREMLIN'
until( __.out("MAGICMETHOD").out("NAME").has("fullcode", "__construct")).repeat( __.out("EXTENDS").in("DEFINITION"))
GREMLIN
)
              ->outIs('MAGICMETHOD')
              ->codeIs('__construct', self::TRANSLATE, self::CASE_INSENSITIVE)
              ->addETo('DEFINITION', 'first');
        $this->prepareQuery();

        // Create link between __clone and clone
        // parenthesis, typehint, local new,
        $this->atomIs('Clone', self::WITHOUT_CONSTANTS)
              ->outIs('CLONE')
              ->inIs('DEFINITION')
              ->inIs('NAME')
              ->outIs('TYPEHINT')
              ->inIs('DEFINITION')
              ->atomIs(self::CLASSES_TRAITS, self::WITHOUT_CONSTANTS)
              ->outIs('MAGICMETHOD')
              ->codeIs('__clone', self::TRANSLATE, self::CASE_INSENSITIVE)
              ->addETo('DEFINITION', 'first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy  Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Complete;

class MakeClassConstantDefinition extends Complete {
    public function dependsOn(): array {
        return array('Complete/SetParentDefinition',
                    );
    }

    public function analyze() {
        // X::Constante -> class X { const Constante}
        $this->atomIs('Staticconstant', self::WITHOUT_CONSTANTS)
             ->hasNoIn('DEFINITION')
             ->outIs('CONSTANT')
             ->savePropertyAs('code', 'name')
             ->back('first')
             ->outIs('CLASS')
             ->atomIs(array('Identifier', 'Nsname', 'Self', 'Static'), self::WITHOUT_CONSTANTS)
             ->inIs('DEFINITION')
             ->atomIs(array('Class', 'Classanonymous', 'Interface'), self::WITHOUT_CONSTANTS)
             ->goToAllParents(self::INCLUDE_SELF)
             ->outIs('CONST')
             ->atomIs('Const', self::WITHOUT_CONSTANTS)
             ->outIs('CONST')
             ->outIs('NAME')
             ->samePropertyAs('code', 'name', self::CASE_SENSITIVE)
             ->inIs('NAME')
             ->addETo('DEFINITION', 'first');
        $this->prepareQuery();

        // static::Constante -> class { const Constante}
        $this->atomIs('Staticconstant', self::WITHOUT_CONSTANTS)
              ->hasNoIn('DEFINITION')
              ->outIs('CONSTANT')
              ->savePropertyAs('code', 'name')
              ->back('first')
              ->outIs('CLASS')
              ->atomIs('Static', self::WITHOUT_CONSTANTS)

              ->inIs('DEFINITION')
              ->atomIs(array('Class', 'Classanonymous', 'Interface'), self::WITHOUT_CONSTANTS)
              ->goToAllChildren(self::EXCLUDE_SELF)
              ->outIs('CONST')
              ->atomIs('Const', self::WITHOUT_CONSTANTS)
              ->outIs('CONST')
              ->outIs('NAME')
              ->samePropertyAs('code', 'name', self::CASE_SENSITIVE)
              ->inIs('NAME')
              ->addETo('DEFINITION', 'first');
        $this->prepareQuery();

        // X::Constante -> class X { const Constante} non-private
        $this->atomIs('Staticconstant', self::WITHOUT_CONSTANTS)
              ->hasNoIn('DEFINITION')
              ->outIs('CONSTANT')
              ->savePropertyAs('code', 'name')
              ->back('first')
              ->outIs('CLASS')
              ->atomIs(array('Identifier', 'Nsname', 'Self', 'Static', 'Parent'), self::WITHOUT_CONSTANTS)
              ->savePropertyAs('fullnspath', 'classe')
              ->inIs('DEFINITION')
              ->atomIs(array('Class', 'Classanonymous', 'Interface'), self::WITHOUT_CONSTANTS)
              ->goToAllParents(self::EXCLUDE_SELF)
              ->outIs('CONST')
              ->atomIs('Const', self::WITHOUT_CONSTANTS)
              ->isNot('visibility', 'private')
              ->outIs('CONST')
              ->outIs('NAME')
              ->samePropertyAs('code', 'name', self::CASE_SENSITIVE)
              ->inIs('NAME')
              ->addETo('DEFINITION', 'first');
        $this->prepareQuery();

        // parent::Constante -> class { const Constante}
        $this->atomIs('Staticconstant', self::WITHOUT_CONSTANTS)
              ->hasNoIn('DEFINITION')
              ->outIs('CONSTANT')
              ->savePropertyAs('code', 'name')
              ->back('first')
              ->outIs('CLASS')
              ->atomIs('Parent', self::WITHOUT_CONSTANTS)
              ->savePropertyAs('fullnspath', 'classe')
              ->inIs('DEFINITION')
              ->atomIs(array('Class', 'Classanonymous', 'Interface'), self::WITHOUT_CONSTANTS)
              ->goToAllParents(self::INCLUDE_SELF)
              ->outIs('CONST')
              ->atomIs('Const', self::WITHOUT_CONSTANTS)
              ->isNot('visibility', 'private')
              ->outIs('CONST')
              ->outIs('NAME')
              ->samePropertyAs('code', 'name', self::CASE_SENSITIVE)
              ->inIs('NAME')
              ->addETo('DEFINITION', 'first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Complete;

class SetParentDefinition extends Complete {
    public function analyze() {
        //parent:: -> class -> extends
        $this->atomIs('Parent', self::WITHOUT_CONSTANTS)
             ->hasNoIn('DEFINITION')
             ->goToClass()
             ->outIs('EXTENDS')
             ->inIs('DEFINITION')
             ->addETo('DEFINITION', 'first');
        $this->prepareQuery();

        //new parent -> class -> extends
        $this->atomIs('Newcall', self::WITHOUT_CONSTANTS)
             ->analyzerIsNot('self')
             ->hasNoIn('DEFINITION')
             ->fullnspathIs('\\parent', self::CASE_SENSITIVE)
             ->goToClass()
             ->outIs('EXTENDS')
             ->inIs('DEFINITION')
             ->addETo('DEFINITION', 'first');
        $this->prepareQuery();

        //parent::$property
        $this->atomIs('Parent', self::WITHOUT_CONSTANTS)
             ->as('parent')
             ->inIs('CLASS')
             ->atomIs('Staticproperty', self::WITHOUT_CONSTANTS)
             ->hasNoIn('DEFINITION')
             ->as('property')
             ->outIs('MEMBER')
             ->tokenIs('T_VARIABLE')
             ->savePropertyAs('code', 'name')
             ->back('first')
             ->inIs('DEFINITION')
             ->goToAllParentsTraits(self::INCLUDE_SELF)
             ->outIs('PPP')
             ->outIs('PPP')
             ->samePropertyAs('code', 'name', self::CASE_SENSITIVE)
              ->as('origin')
              ->dedup(array('property', 'origin'))
             ->addETo('DEFINITION', 'property');
        $this->prepareQuery();

        // parent::constant
        $this->atomIs('Parent', self::WITHOUT_CONSTANTS)
             ->as('parent')
             ->inIs('CLASS')
             ->atomIs('Staticconstant', self::WITHOUT_CONSTANTS)
             ->hasNoIn('DEFINITION')
             ->as('constant')
             ->outIs('CONSTANT')
             ->tokenIs('T_STRING')
             ->savePropertyAs('code', 'name')
             ->back('first')
             ->inIs('DEFINITION')
             ->goToAllParentsTraits(self::INCLUDE_SELF)
             ->outIs('CONST')
             ->outIs('CONST')
             ->samePropertyAs('code', 'name', self::CASE_SENSITIVE)
              ->as('origin')
              ->dedup(array('constant', 'origin'))
             ->addETo('DEFINITION', 'constant');
        $this->prepareQuery();

        $this->atomIs('String', self::WITHOUT_CONSTANTS)
             ->fullnspathIs('\\\\parent', self::CASE_SENSITIVE)
             ->hasNoIn('DEFINITION')
             ->as('parent')
             ->goToClass()
             ->outIs('EXTENDS')
             ->inIs('DEFINITION')
              ->as('origin')
              ->dedup(array('parent', 'origin'))
             ->addETo('DEFINITION', 'parent');
        $this->prepareQuery();
    }
}

?>
<?php
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
declare(strict_types = 1);

namespace Exakat\Analyzer\Complete;


class PropagateConstants extends Complete {
    public function analyze() {
        $this->readConstantValue();

        $this->pushConstantValues();
        $count = $this->PropagateConstants();

        $this->setCount($count);
    }

    private function propagateConstants(int $level = 0): int {
        $total = 0;

        //Currently handles + - * / % . << >> ** ()
        //Currently handles intval, boolean, noDelimiter (String)
        //Needs realval, arrayval

        $total += $this->processAddition();
        $total += $this->processConcatenation();
        $total += $this->processSign();
        $total += $this->processPower();
        $total += $this->processComparison();
        $total += $this->processLogical();
        $total += $this->processParenthesis();
        $total += $this->processNot();
        $total += $this->processCoalesce();
        $total += $this->processTernary();
        $total += $this->processBitshift();
        $total += $this->processMultiplication();
        $this->readConstantValue();
        $this->pushConstantValues();

        if ($total > 0 && $level < 15) {
            $total += $this->propagateConstants($level + 1);
        }

        return $total;
    }

    private function readConstantValue() {
            display('propagating Constant value in Const');
            // fix path for constants with Const
            // noDelimiter is set at the same moment as boolean and intval. Any of them is the same
            $this->atomIs(array('Constant', 'Defineconstant'))
             ->outIs('VALUE')
             ->atomIs(array('String', 'Heredoc', 'Integer', 'Null', 'Boolean', 'Float'))
             ->setProperty('propagated', true)
             ->count();
            $res = $this->rawQuery();

            $this->atomIs(array('Constant', 'Defineconstant'))
                 ->outIs('VALUE')
                 ->is('propagated', true)
                 ->savePropertyAs('x')
                 ->back('first')

                 ->outIs('NAME')
                 ->hasNo('propagated')
                 ->raw(<<<'GREMLIN'
 sideEffect{ 
        if ("noDelimiter" in x.keys()) {
            it.get().property("noDelimiter", x.value("noDelimiter").toString()); 
        }
        if ("intval" in x.keys()) {
            it.get().property("intval", x.value("intval")); 
        }
        if ("boolean" in x.keys()) {
            it.get().property("boolean", x.value("boolean")); 
        }
        if ("isNull" in x.keys()) {
            it.get().property("isNull", x.value("isNull")); 
        }
        if ("count" in x.keys()) {
            it.get().property("count", x.value("count")); 
        }
        it.get().property("propagated", true); 
}
GREMLIN
)
                 ->count();
            $res = $this->rawQuery();

            display( $res->toInt() . " constants inited\n");
            return $res->toInt();
        }

    private function pushConstantValues() {
        $this->atomIs(array('Constant', 'Defineconstant'))
             ->outIs('NAME')
             ->is('propagated', true)
             ->savePropertyAs('constante')
             ->back('first')

             ->outIs('DEFINITION')
             ->hasNo('propagated')
             ->raw(<<<'GREMLIN'
sideEffect{ 
        if ("intval" in constante.keys()) {
            it.get().property("intval", constante.value("intval")); 
        }
        if ("boolean" in constante.keys()) {
            it.get().property("boolean", constante.value("boolean")); 
        }
        if ("noDelimiter" in constante.keys()) {
            it.get().property("noDelimiter", constante.value("noDelimiter").toString()); 
        }
        if ("isNull" in constante.keys()) {
            it.get().property("isNull", constante.value("isNull")); 
        }
        it.get().property("propagated", true); 
}
GREMLIN
)
            ->count();
            $res = $this->rawQuery();

            display( $res->toInt() . " constants propagated\n");
            return $res->toInt();
        }

    private function processAddition() {
        display('propagating Constant value in Addition');
        // fix path for constants with Const
        $this->atomIs('Addition')
             ->hasNo('propagated')
             ->initVariable('x', '[ ]')
             // Split LEFT and RIGHT to ensure left is in 0
             ->filter(
                $this->side()
                     ->outIs('LEFT')
                     ->has('intval')
                     ->raw('sideEffect{ x.add( it.get().value("intval") ) }.fold()')
             )
             ->filter(
                $this->side()
                     ->outIs('RIGHT')
                     ->has('intval')
                     ->raw('sideEffect{ x.add( it.get().value("intval") ) }.fold()')
             )

            ->raw(<<<'GREMLIN'
 filter{x.size() == 2; }.
sideEffect{ 
    if (it.get().value("token") == 'T_PLUS') {
      i = x[0] + x[1];
    } else if (it.get().value("token") == 'T_MINUS') {
      i = x[0] - x[1];
    }

    it.get().property("intval", i); 
    it.get().property("boolean", i != 0);
    it.get().property("noDelimiter", i.toString()); 
    it.get().property("propagated", true); 
    
    i = null;
}

GREMLIN
)
             ->count();

        $res = $this->rawQuery();
        display('propagating ' . $res->toInt() . ' Addition with constants');

        return $res->toInt();
    }

    private function processConcatenation() {
        display('propagating Constant value in Concatenations');
        $this->atomIs('Concatenation')
             ->hasNo('propagated')
             ->initVariable('x', '[ ]')
             ->not(
                $this->side()
                     ->outIs('CONCAT')
                     ->hasNo('noDelimiter')
             )
             ->not(
                $this->side()
                     ->outIs('CONCAT')
                     ->atomIs(array('Identifier', 'Nsname'))
                     ->hasNo('propagated')
             )
             ->raw('where( __.out("CONCAT").order().by("rank").sideEffect{ x.add( it.get().value("noDelimiter") ) }.count() )')
             ->raw(<<<'GREMLIN'
sideEffect{ 
    s = x.join("");
    it.get().property("noDelimiter", s);

    // Warning : PHP doesn't handle error that same way
    if (s.isInteger()) {
        it.get().property("intval", s.toInteger());
        it.get().property("boolean", true);
    } else {
        it.get().property("intval", 0);
        it.get().property("boolean", false);
    }
    it.get().property("propagated", true); 
    
    x = null;
}

GREMLIN
)
        ->count();

        $res = $this->rawQuery();
        display('propagating ' . $res->toInt() . ' Concatenation with constants');

        return $res->toInt();
    }

    private function processSign() {
        display('propagating Constant value in Sign');
        $this->atomIs('Sign')
             ->hasNo('propagated')
             ->initVariable('x', '[ ]')
             ->not(
                $this->side()
                     ->outIs('SIGN')
                     ->hasNo('intval')
             )
             ->raw('where( __.out("SIGN").sideEffect{ x = it.get().value("intval") }.count() )')
             ->raw(<<<'GREMLIN'
sideEffect{ 
        if (it.get().value("token") == 'T_PLUS') {
            it.get().property("intval", x); 
            it.get().property("boolean", x != 0);
            it.get().property("noDelimiter", x.toString()); 
        } else if (it.get().value("token") == 'T_MINUS') {
            it.get().property("intval", -1 * x); 
            it.get().property("boolean", x != 0);
            it.get().property("noDelimiter", (-1 * x).toString()); 
        }
        it.get().property("propagated", true); 

        i = null;
}
GREMLIN
)
           ->count();
        $res = $this->rawQuery();

        display('propagating ' . $res->toInt() . ' Signs with constants');
        return $res->toInt();
    }

    private function processPower() {
        display('propagating Constant value in Power');
        // fix path for constants with Const
        $this->atomIs('Power')
             ->hasNo('propagated')
             ->initVariable('x', '[ ]')
             ->not(
                $this->side()
                     ->outIs(array('LEFT', 'RIGHT'))
                     ->hasNo('intval')
             )
             // Split LEFT and RIGHT to ensure left is in 0
             ->filter(
                $this->side()
                     ->outIs('LEFT')
                     ->has('intval')
                     ->raw('sideEffect{ x.add( it.get().value("intval") ) }.fold()')
             )
             ->filter(
                $this->side()
                     ->outIs('RIGHT')
                     ->has('intval')
                     ->raw('sideEffect{ x.add( it.get().value("intval") ) }.fold()')
             )

            ->raw(<<<'GREMLIN'
 filter{ x.size() == 2; }.
sideEffect{ 
    try {
        i = (new BigInteger(x[0])) ** (new BigInteger(x[1]));
    } catch (Exception e) {
        // doesn't handle PHP limits at all
        i = 0;
    }

    it.get().property("intval", i.toLong()); 
    it.get().property("boolean", i.toLong() != 0);
    it.get().property("noDelimiter", i.toString()); 
    it.get().property("propagated", true); 

    i = null;
}

GREMLIN
)
            ->count();

            $res = $this->rawQuery();
            display('propagating ' . $res->toInt() . ' power with constants');

            return $res->toInt();
        }

        private function processComparison() {
            display('propagating Constant value in Comparison');
            // fix path for constants with Const
            $this->atomIs('Comparison')
                 ->hasNo('propagated')
                 ->initVariable('x', '[ ]')
                 ->not(
                    $this->side()
                         ->outIs(array('LEFT', 'RIGHT'))
                         ->hasNo('intval')
                 )
                 // Split LEFT and RIGHT to ensure left is in 0
                 ->filter(
                    $this->side()
                         ->outIs('LEFT')
                         ->has('intval')
                         ->raw('sideEffect{ x.add( it.get().value("intval") ) }.fold()')
                 )
                 ->filter(
                    $this->side()
                         ->outIs('RIGHT')
                         ->has('intval')
                         ->raw('sideEffect{ x.add( it.get().value("intval") ) }.fold()')
                 )

             ->raw(<<<'GREMLIN'
 filter{x.size() == 2; }.
sideEffect{ 
        if (it.get().value("token") == 'T_GREATER') {
          i = x[0] > x[1];
        } else if (it.get().value("token") == 'T_SMALLER') {
          i = x[0] < x[1];
        } else if (it.get().value("token") == 'T_IS_GREATER_OR_EQUAL') {
          i = x[0] >= x[1];
        } else if (it.get().value("token") == 'T_IS_SMALLER_OR_EQUAL') {
          i = x[0] <= x[1];
        } else if (it.get().value("token") == 'T_IS_EQUAL' ||
                   it.get().value("token") == 'T_IS_IDENTICAL') {
          i = x[0] == x[1];
        } else if (it.get().value("token") == 'T_IS_NOT_EQUAL'||
                   it.get().value("token") == 'T_IS_NOT_IDENTICAL') {
          i = x[0] != x[1];
        } else if (it.get().value("token") == 'T_SPACESHIP') {
          i = x[0] <=> x[1];
        }

    it.get().property("intval", i ? 1 : 0); 
    it.get().property("boolean", i != 0);
    it.get().property("noDelimiter", i.toString()); 
    it.get().property("propagated", true); 

    i = null;
}

GREMLIN
)
            ->count();

            $res = $this->rawQuery();
            display('propagating ' . $res->toInt() . ' comparison with constants');

            return $res->toInt();
        }

    private function processLogical() {
            display('propagating Constant value in Logical');
            // fix path for constants with Const
            $this->atomIs('Logical')
                 ->hasNo('propagated')
                 ->initVariable('x', '[ ]')
                 ->not(
                    $this->side()
                         ->outIs(array('LEFT', 'RIGHT'))
                         ->hasNo('intval')
                 )
                 // Split LEFT and RIGHT to ensure left is in 0
                 ->filter(
                    $this->side()
                         ->outIs('LEFT')
                         ->has('intval')
                         ->raw('sideEffect{ x.add( it.get().value("intval") ) }.fold()')
                 )
                 ->filter(
                    $this->side()
                         ->outIs('RIGHT')
                         ->has('intval')
                         ->raw('sideEffect{ x.add( it.get().value("intval") ) }.fold()')
                 )

             ->raw(<<<'GREMLIN'
 filter{x.size() == 2; }.
sideEffect{ 
      if (it.get().value("token") == 'T_BOOLEAN_AND' ||
          it.get().value("token") == 'T_LOGICAL_AND') {
        i = (x[0] != 0) && (x[1] != 0);
      } else if (it.get().value("token") == 'T_BOOLEAN_OR' ||
                 it.get().value("token") == 'T_LOGICAL_OR') {
        i = (x[0] != 0) || (x[1] != 0);
      } else if (it.get().value("token") == 'T_LOGICAL_XOR') {
        i = (x[0] != 0) ^ (x[1] != 0);
      } else if (it.get().value("token") == 'T_AND') {
        i = x[0] & x[1];
      } else if (it.get().value("token") == 'T_XOR') {
        i = x[0] ^ x[1];
      } else if (it.get().value("token") == 'T_OR') {
        i = x[0] | x[1];
      } 

    it.get().property("intval", i ? 0 : 1); 
    it.get().property("boolean", i != 0);
    it.get().property("noDelimiter", i.toString()); 
    it.get().property("propagated", true); 

}
GREMLIN
)
            ->count();

            $res = $this->rawQuery();
            display('propagating ' . $res->toInt() . ' comparison with constants');

            return $res->toInt();
        }

    private function processParenthesis() {
        display('propagating Constant value in Parenthesis');
        $this->atomIs('Parenthesis')
             ->hasNo('propagated')
             ->initVariable('x', '[ ]')
             ->not(
                $this->side()
                     ->outIs('CODE')
                     ->hasNo('intval')
             )
             ->raw('where( __.out("CODE").sideEffect{ x = it.get() }.count() )')
             ->raw(<<<'GREMLIN'
sideEffect{ 
    it.get().property("intval", x.value("intval")); 
    it.get().property("boolean", x.value("boolean"));
    if ("noDelimiter" in x.keys()) {
        // Ternary, Comparison
        it.get().property("noDelimiter", x.value("noDelimiter").toString()); 
    }
    it.get().property("propagated", true); 

    x = null;
}
GREMLIN
)
           ->count();
        $res = $this->rawQuery();

        display('propagating ' . $res->toInt() . ' Signs with constants');
        return $res->toInt();
    }

    private function processNot() {
        display('propagating Constant value in Not');
        $this->atomIs('Not')
             ->hasNo('propagated')
             ->initVariable('x', '[ ]')
             ->not(
                $this->side()
                     ->outIs('NOT')
                     ->hasNo('intval')
             )
             ->raw('where( __.out("NOT").sideEffect{ x = it.get() }.count() )')
             ->raw(<<<'GREMLIN'
sideEffect{ 
    if (it.get().value("token") == 'T_BANG') {
      i = !x.value("intval");
    } else if (it.get().value("token") == 'T_TILDE') { 
      i = ~x.value("intval");
    }

    it.get().property("intval", x.value("intval")); 
    it.get().property("boolean", x.value("boolean"));
    it.get().property("noDelimiter", x.value("noDelimiter").toString()); 
    it.get().property("propagated", true); 

    x = null;
}
GREMLIN
)
           ->count();
        $res = $this->rawQuery();

        display('propagating ' . $res->toInt() . ' Not with constants');
        return $res->toInt();
    }

    private function processCoalesce() {
        display('propagating Constant value in Coalesce');
        $this->atomIs('Coalesce')
             ->hasNo('propagated')
             ->initVariable('x', '[ ]')
             ->not(
                $this->side()
                     ->outIs(array('LEFT', 'RIGHT'))
                     ->hasNo('intval')
             )
             // Split LEFT and RIGHT to ensure left is in 0
             ->filter(
                $this->side()
                     ->outIs('LEFT')
                     ->has('intval')
                     ->raw('sideEffect{ x.add( it.get().value("intval") ) }.fold()')
             )
             ->filter(
                $this->side()
                     ->outIs('RIGHT')
                     ->has('intval')
                     ->raw('sideEffect{ x.add( it.get().value("intval") ) }.fold()')
             )
             ->raw(<<<'GREMLIN'
sideEffect{ 
    if (x[0] == 0) {
      i = x[1];
    } else {
      i = x[0];
    }
    
    it.get().property("intval", i); 
    it.get().property("boolean", i != 0);
    it.get().property("noDelimiter", i.toString()); 
    it.get().property("propagated", true); 

    i = null;
}
GREMLIN
)
           ->count();
        $res = $this->rawQuery();

        display('propagating ' . $res->toInt() . ' Coalesce with constants');
        return $res->toInt();
    }

    private function processTernary() {
        display('propagating Constant value in Ternary');
        $this->atomIs('Ternary')
             ->hasNo('propagated')
             ->initVariable('x', '[ ]')
             ->not(
                $this->side()
                     ->outIs(array('CONDITION', 'THEN', 'ELSE'))
                     ->hasNo('intval')
             )
             // Split CONDITION, THEN and ELSE to ensure order
             ->filter(
                $this->side()
                     ->outIs('CONDITION')
                     ->has('intval')
                     ->raw('sideEffect{ x.add( it.get() ) }.fold()')
             )
             ->filter(
                $this->side()
                     ->outIs('THEN')
                     ->has('intval')
                     ->raw('sideEffect{ x.add( it.get() ) }.fold()')
             )
             ->filter(
                $this->side()
                     ->outIs('ELSE')
                     ->has('intval')
                     ->raw('sideEffect{ x.add( it.get() ) }.fold()')
             )
             ->raw(<<<'GREMLIN'
sideEffect{ 
    if (x[0].value("intval") == 0) {
      if (x[1].label() == 'Void') {
          i = x[0].value("intval");
      } else {
          i = x[1].value("intval");
      }
    } else {
      i = x[2].value("intval");
    }

    it.get().property("boolean", i != 0);
    it.get().property("noDelimiter", i.toString()); 
    it.get().property("intval", i); 
    it.get().property("propagated", true); 

    i = null;
}
GREMLIN
)
           ->count();
        $res = $this->rawQuery();

        display('propagating ' . $res->toInt() . ' Ternary with constants');
        return $res->toInt();
    }

    private function processBitshift() {
        display('propagating Constant value in Bitshift');
        $this->atomIs('Bitshift')
             ->hasNo('propagated')
             ->initVariable('x', '[ ]')
             ->not(
                $this->side()
                     ->outIs(array('LEFT', 'RIGHT'))
                     ->hasNo('intval')
             )
             // Split LEFT and RIGHT to ensure left is in 0
             ->filter(
                $this->side()
                     ->outIs('LEFT')
                     ->has('intval')
                     ->raw('sideEffect{ x.add( it.get().value("intval") ) }.fold()')
             )
             ->filter(
                $this->side()
                     ->outIs('RIGHT')
                     ->has('intval')
                     ->raw('sideEffect{ x.add( it.get().value("intval") ) }.fold()')
             )
             ->raw(<<<'GREMLIN'
sideEffect{ 
    if (it.get().value("token") == 'T_SL') {
      i = x[0] << x[1];
    } else if (it.get().value("token") == 'T_SR') {
      i = x[0] >> x[1];
    }
    
    it.get().property("intval", i); 
    it.get().property("boolean", i != 0);
    it.get().property("noDelimiter", i.toString()); 
    it.get().property("propagated", true); 

    i = null;
}
GREMLIN
)
           ->count();
        $res = $this->rawQuery();

        display('propagating ' . $res->toInt() . ' Bitshift with constants');
        return $res->toInt();
    }

    private function processMultiplication() {
        display('propagating Constant value in Multiplication');
        $this->atomIs('Multiplication')
             ->tokenIs('T_PERCENTAGE')
             ->hasNo('propagated')
             ->initVariable('x', '[ ]')
             ->not(
                $this->side()
                     ->outIs(array('LEFT', 'RIGHT'))
                     ->hasNo('intval')
             )
             // Split LEFT and RIGHT to ensure left is in 0
             ->filter(
                $this->side()
                     ->outIs('LEFT')
                     ->has('intval')
                     ->raw('sideEffect{ x.add( it.get().value("intval") ) }.fold()')
             )
             ->filter(
                $this->side()
                     ->outIs('RIGHT')
                     ->has('intval')
                     ->raw('sideEffect{ x.add( it.get().value("intval") ) }.fold()')
             )
             ->raw(<<<'GREMLIN'
sideEffect{ 
    if (it.get().value("token") == 'T_STAR') {
      i = x[0] * x[1];
    } else if (it.get().value("token") == 'T_SLASH') {
      if (x[1] != 0) {
          i = x[0] / x[1];
          i = i.setScale(0, BigDecimal.ROUND_HALF_DOWN).toInteger();
      } else {
          i = 0;
      }
    } else if (it.get().value("token") == 'T_PERCENTAGE') {
      if (x[1] != 0) {
          i = x[0] % x[1];
      } else {
          i = 0;
      }
    } // Final else is an error!
    
    it.get().property("intval", i); 
    it.get().property("boolean", i != 0);
    it.get().property("noDelimiter", i.toString()); 
    it.get().property("propagated", true); 

    i = null;
}
GREMLIN
)
           ->count();
        $res = $this->rawQuery();

        display('propagating ' . $res->toInt() . ' Multiplication with constants');
        return $res->toInt();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Complete;

class SetClassPropertyDefinitionWithTypehint extends Complete {
    public function analyze() {
        // $object->property->method()
        $this->atomIs('Propertydefinition', self::WITHOUT_CONSTANTS)
              ->as('property')
              ->outIs('DEFINITION')
              ->inIs('OBJECT')
              ->atomIs('Methodcall', self::WITHOUT_CONSTANTS)
              ->as('call')
              ->outIs('METHOD')
              ->atomIs('Methodcallname', self::WITHOUT_CONSTANTS)
              ->savePropertyAs('lccode', 'name')
              ->back('first')
              ->inIs('PPP')
              ->outIs('TYPEHINT')
              ->inIs('DEFINITION')
              ->goToAllParents(self::INCLUDE_SELF)
              ->outIs(array('METHOD', 'MAGICMETHOD'))
              ->outIs('NAME')
              ->samePropertyAs('lccode', 'name', self::CASE_INSENSITIVE)
              ->inIs('NAME')
              ->addETo('DEFINITION', 'call');
        $this->prepareQuery();

        // $object->property->property2
        $this->atomIs('Propertydefinition', self::WITHOUT_CONSTANTS)
              ->as('property')
              ->outIs('DEFINITION')
              ->inIs('OBJECT')
              ->atomIs('Member', self::WITHOUT_CONSTANTS)
              ->as('call')
              ->outIs('MEMBER')
              ->atomIs('Name', self::WITHOUT_CONSTANTS)
              ->savePropertyAs('lccode', 'name')
              ->back('first')
              ->inIs('PPP')
              ->outIs('TYPEHINT')
              ->inIs('DEFINITION')
              ->goToAllParents(self::INCLUDE_SELF)
              ->outIs('PPP')
              ->outIs('PPP')
              ->samePropertyAs('propertyname', 'name', self::CASE_INSENSITIVE)
              ->addETo('DEFINITION', 'call');
        $this->prepareQuery();

        // $object->property::constant
        $this->atomIs('Propertydefinition', self::WITHOUT_CONSTANTS)
              ->as('property')
              ->outIs('DEFINITION')
              ->inIs('CLASS')
              ->atomIs('Staticconstant', self::WITHOUT_CONSTANTS)
              ->as('call')
              ->outIs('CONSTANT')
              ->atomIs('Name', self::WITHOUT_CONSTANTS)
              ->savePropertyAs('lccode', 'name')
              ->back('first')
              ->inIs('PPP')
              ->outIs('TYPEHINT')
              ->inIs('DEFINITION')
              ->goToAllParents(self::INCLUDE_SELF)
              ->outIs('CONST')
              ->outIs('CONST')
              ->samePropertyAs('code', 'name', self::CASE_SENSITIVE)
              ->addETo('DEFINITION', 'call');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Complete;

class SetClassRemoteDefinitionWithTypehint extends Complete {
    public function analyze() {

        $this->atomIs('Methodcall', self::WITHOUT_CONSTANTS)
              ->as('method')
              ->hasNoIn('DEFINITION')
              ->outIs('METHOD')
              ->atomIs('Methodcallname', self::WITHOUT_CONSTANTS)
              ->savePropertyAs('lccode', 'name')
              ->inIs('METHOD')
              ->outIs('OBJECT')
              ->inIs('DEFINITION')
              ->inIs('NAME')
              ->atomIs('Parameter', self::WITHOUT_CONSTANTS)
              ->outIs('TYPEHINT')
              ->inIs('DEFINITION')
              ->optional(
                  $this->side()
                       ->atomIs('Interface')
                       ->outIs('DEFINITION')
                       ->atomIs(self::STATIC_NAMES, self::WITHOUT_CONSTANTS)
                       ->inIs('IMPLEMENTS')
              )
              // No check on Atom == Class, as it may not exists
              ->goToAllParents(self::INCLUDE_SELF)
              ->outIs('METHOD')
              ->outIs('NAME')
              ->samePropertyAs('lccode', 'name', self::CASE_INSENSITIVE)
              ->inIs('NAME')
              ->addETo('DEFINITION', 'method');
        $this->prepareQuery();

        $this->atomIs('Member', self::WITHOUT_CONSTANTS)
              ->as('member')
              ->hasNoIn('DEFINITION')
              ->outIs('MEMBER')
              ->atomIs('Name', self::WITHOUT_CONSTANTS)
              ->savePropertyAs('code', 'name')
              ->inIs('MEMBER')
              ->outIs('OBJECT')
              ->atomIs('Variableobject')
              ->inIs('DEFINITION')
              ->inIs('NAME')
              ->atomIs('Parameter', self::WITHOUT_CONSTANTS)
              ->outIs('TYPEHINT')
              ->inIs('DEFINITION')
              ->optional(
                  $this->side()
                       ->atomIs('Interface')
                       ->outIs('DEFINITION')
                       ->atomIs(self::STATIC_NAMES, self::WITHOUT_CONSTANTS)
                       ->inIs('IMPLEMENTS')
              )
              // No check on Atom == Class, as it may not exists
              ->goToAllParents(self::INCLUDE_SELF)
              ->outIs('PPP')
              ->outIs('PPP')
              ->samePropertyAs('propertyname', 'name', self::CASE_SENSITIVE)
              ->addETo('DEFINITION', 'member');
        $this->prepareQuery();

        $this->atomIs('Staticconstant', self::WITHOUT_CONSTANTS)
              ->as('constante')
              ->hasNoIn('DEFINITION')
              ->outIs('CONSTANT')
              ->atomIs('Name', self::WITHOUT_CONSTANTS)
              ->savePropertyAs('code', 'name')
              ->inIs('CONSTANT')
              ->outIs('CLASS')
              ->inIs('DEFINITION')
              ->inIs('NAME')
              ->atomIs('Parameter', self::WITHOUT_CONSTANTS)
              ->outIs('TYPEHINT')
              ->inIs('DEFINITION')
              ->optional(
                  $this->side()
                       ->atomIs('Interface')
                       ->outIs('DEFINITION')
                       ->atomIs(self::STATIC_NAMES, self::WITHOUT_CONSTANTS)
                       ->inIs('IMPLEMENTS')
              )
              ->atomIs('Class', self::WITHOUT_CONSTANTS)
              // No check on Atom == Class, as it may not exists
              ->goToAllParents(self::INCLUDE_SELF)
              ->outIs('CONST')
              ->outIs('CONST')
              ->outIs('NAME')
              ->samePropertyAs('code', 'name', self::CASE_SENSITIVE)
              ->addETo('DEFINITION', 'constante');
        $this->prepareQuery();

        // Create link between static Class method and its definition
        // This works outside a class too, for static.
        $this->atomIs('Staticmethodcall', self::WITHOUT_CONSTANTS)
              ->hasNoIn('DEFINITION')
              ->outIs('METHOD')
              ->savePropertyAs('lccode', 'name')
              ->inIs('METHOD')
              ->outIs('CLASS')
              ->atomIs('Variable', self::WITHOUT_CONSTANTS)
              ->inIs('DEFINITION')
              ->inIs('NAME')
              ->outIs('TYPEHINT')
              ->inIs('DEFINITION')
              ->optional(
                  $this->side()
                       ->atomIs('Interface')
                       ->outIs('DEFINITION')
                       ->atomIs(self::STATIC_NAMES, self::WITHOUT_CONSTANTS)
                       ->inIs('IMPLEMENTS')
              )
              // No check on Atom == Class, as it may not exists
              ->goToAllParents(self::INCLUDE_SELF)
              ->outIs(array('METHOD', 'MAGICMETHOD'))
              ->isNot('visibility', 'private')
              ->outIs('NAME')
              ->samePropertyAs('code', 'name', self::CASE_INSENSITIVE)
              ->inIs('NAME')
              ->addETo('DEFINITION', 'first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Complete;

class SetCloneLink extends Complete {
    public function analyze() {
        // class x { function __clone() {}}
        // clone (new x)
        $this->atomIs('Clone', self::WITHOUT_CONSTANTS)
              ->outIs('CLONE')
              ->inIs('DEFINITION')
              ->atomIs(array('Class', 'Classanonymous'), self::WITHOUT_CONSTANTS)
              ->outIs('MAGICMETHOD')
              ->outIs('NAME')
              ->codeIs('__clone', self::TRANSLATE, self::CASE_INSENSITIVE)
              ->addETo('DEFINITION', 'first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Complete;

class OverwrittenProperties extends Complete {
    public function analyze() {
        // class x { protected $p = 1;}
        // class xx extends x { protected $p = 1;}
        $this->atomIs(array('Propertydefinition', 'Virtualproperty'), self::WITHOUT_CONSTANTS)
              ->savePropertyAs('propertyname', 'name')
              ->inIs('PPP')
              ->inIs('PPP')
              ->atomIs(self::CLASSES_TRAITS)
              ->goToAllParentsTraits(self::INCLUDE_SELF) // also covers local traits
              ->outIs('PPP')
              ->outIs('PPP')
              ->atomIs(array('Propertydefinition', 'Virtualproperty'), self::WITHOUT_CONSTANTS)
              ->samePropertyAs('propertyname', 'name',  self::CASE_SENSITIVE)
              ->raw('where(neq("first"))')
              ->as('origin')
              ->dedup(array('first', 'origin'))
              ->addEFrom('OVERWRITE', 'first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Complete;

class SetArrayClassDefinition extends Complete {
    public function dependsOn(): array {
        return array('Complete/PropagateCalls',
                    );
    }

    public function analyze() {
        // array(\x, foo)
        $this->atomIs('Arrayliteral', self::WITHOUT_CONSTANTS)
              ->is('count', 2)
              ->outWithRank('ARGUMENT', 1)
              ->atomIs(array('String', 'Heredoc', 'Concatenation'), self::WITH_CONSTANTS)
              ->has('noDelimiter')
              ->savePropertyAs('noDelimiter', 'method')
              ->back('first')
              ->outWithRank('ARGUMENT', 0)
              ->atomIs(array('String', 'Heredoc', 'Concatenation', 'Staticclass'), self::WITH_CONSTANTS)
              ->outIsIE('CLASS') // For Staticclass only
              ->inIs('DEFINITION')
              ->atomIs('Class')
              ->outIs(array('MAGICMETHOD', 'METHOD'))
              ->atomIs(array('Method', 'Magicmethod'))
              ->outIs('NAME')
              ->samePropertyAs('fullcode', 'method', self::CASE_INSENSITIVE)
              ->inIs('NAME')
              ->addEto('DEFINITION', 'first');
        $this->prepareQuery();

        // array(\x, foo)
        $this->atomIs('Arrayliteral', self::WITHOUT_CONSTANTS)
             ->hasNoIn('DEFINITION')
             ->is('count', 2)
             ->outWithRank('ARGUMENT', 1)
             ->atomIs(array('String', 'Heredoc', 'Concatenation'), self::WITH_CONSTANTS)
             ->has('noDelimiter')
             ->savePropertyAs('noDelimiter', 'method')
             ->back('first')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('Variable')
             ->inIs('DEFINITION')
             ->outIs('DEFAULT')
             ->atomIs('New')
             ->outIs('NEW')
             ->inIs('DEFINITION')
             ->atomIs('Class')
             ->outIs(array('MAGICMETHOD', 'METHOD'))
             ->atomIs(array('Method', 'Magicmethod'))
             ->outIs('NAME')
             ->samePropertyAs('fullcode', 'method', self::CASE_INSENSITIVE)
             ->inIs('NAME')
             ->addEto('DEFINITION', 'first');
        $this->prepareQuery();

        // array($this, foo)
        $this->atomIs('Arrayliteral', self::WITHOUT_CONSTANTS)
             ->hasNoIn('DEFINITION')
             ->is('count', 2)
             ->outWithRank('ARGUMENT', 1)
             ->atomIs(array('String', 'Heredoc', 'Concatenation'), self::WITH_CONSTANTS)
             ->has('noDelimiter')
             ->savePropertyAs('noDelimiter', 'method')
             ->back('first')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('This')
             ->goToClass()
             ->atomIs('Class')
             ->outIs(array('MAGICMETHOD', 'METHOD'))
             ->atomIs(array('Method', 'Magicmethod'))
             ->outIs('NAME')
             ->samePropertyAs('fullcode', 'method', self::CASE_INSENSITIVE)
             ->inIs('NAME')
             ->addEto('DEFINITION', 'first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Complete;

class SetClassAliasDefinition extends Complete {
    public function analyze() {
        // class_alias('A', 'B')
        $this->atomIs(array('Class', 'Interface', 'Trait'), self::WITHOUT_CONSTANTS)
              ->as('method')
              ->savePropertyAs('fullnspath', 'fnp')
              ->outIs('DEFINITION')
              ->is('rank', 0)
              ->inIs('ARGUMENT')
              ->atomIs('Classalias', self::WITHOUT_CONSTANTS)
              ->outWithRank('ARGUMENT', 1)
              ->outIs('DEFINITION')
              ->atomIs(array('Identifier', 'Nsname', 'Newcall', 'Name'), self::WITHOUT_CONSTANTS)
              ->dedup('')
              ->setProperty('fullnspath', 'fnp')
              ->addEFrom('DEFINITION', 'method');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Complete;

class PropagateCalls extends Complete {
    public function dependsOn(): array {
        return array('Complete/CreateDefaultValues',
                     'Complete/SetClassMethodRemoteDefinition',
                    );
    }

    public function analyze() {
        // No need to run twice
        $this->processLocalDefinition();
        $this->propagateGlobals();
        $this->propagateTypehint();
        $this->processFluentInterfaces();

        $count = $this->propagateCalls();

        $this->setCount($count);
    }

    private function propagateCalls($level = 0): int {
        $total = 0;

        $total += $this->processReturnedType();
        $total += $this->processParenthesis();

        if ($total > 0 && $level < 15) {
            $total += $this->propagateCalls($level + 1);
        }

        return $total;
    }

    private function processLocalDefinition(): int {
        //$a = new A; $a->method()
        $this->atomIs('Methodcall', self::WITHOUT_CONSTANTS)
              ->hasNoIn('DEFINITION')
              ->outIs('METHOD')
              ->atomIs('Methodcallname', self::WITHOUT_CONSTANTS)
              ->savePropertyAs('lccode', 'name')
              ->inIs('METHOD')
              ->outIs('OBJECT')
              ->inIs('DEFINITION')  // No check on atoms :
              ->atomIs(array('Variabledefinition', 'Parametername', 'Propertydefinition', 'Globaldefinition', 'Staticdefinition', 'Virtualproperty'), self::WITHOUT_CONSTANTS)
              ->outIs('DEFAULT')
              ->atomIs('New', self::WITHOUT_CONSTANTS)
              ->outIs('NEW')
              ->inIs('DEFINITION')
              ->atomIs('Class', self::WITHOUT_CONSTANTS)
              // Get only the first method found. Possibly OK for class, but may fail later
              ->filter(
                  $this->side()
                       ->atomIs('Class', self::WITHOUT_CONSTANTS)
                       ->goToAllParentsTraits(self::INCLUDE_SELF)
                       ->outIs('METHOD')
                       ->outIs('NAME')
                       ->samePropertyAs('lccode', 'name', self::CASE_INSENSITIVE)
                       ->inIs('NAME')
                       ->range(0, 1)
                       ->as('origin')
                       ->dedup(array('first', 'origin'))
                       ->addETo('DEFINITION', 'first')
                )
              ->count();
        $c1 = $this->rawQuery()->toInt();

        //$a = new A; $a->property
        $this->atomIs('Member', self::WITHOUT_CONSTANTS)
              ->hasNoIn('DEFINITION')
              ->outIs('MEMBER')
              ->atomIs('Name', self::WITHOUT_CONSTANTS)
              ->savePropertyAs('code', 'name')
              ->inIs('MEMBER')
              ->outIs('OBJECT')
              ->inIs('DEFINITION')
              ->atomIs(array('Variabledefinition', 'Parametername', 'Propertydefinition', 'Globaldefinition', 'Staticdefinition', 'Virtualproperty'), self::WITHOUT_CONSTANTS)
              ->outIs('DEFAULT')
              ->atomIs('New', self::WITHOUT_CONSTANTS)
              ->outIs('NEW')
              ->inIs('DEFINITION')
              ->atomIs('Class', self::WITHOUT_CONSTANTS)
              ->goToAllParentsTraits(self::INCLUDE_SELF)
              ->outIs('PPP')
              ->outIs('PPP')
              ->samePropertyAs('propertyname', 'name', self::CASE_SENSITIVE)
              ->as('origin')
              ->dedup(array('first', 'origin'))
              ->addETo('DEFINITION', 'first')
              ->count();
       $c2 = $this->rawQuery()->toInt();

        //$a = function () {}; $a()
        $this->atomIs(array('Variabledefinition', 'Parametername', 'Propertydefinition', 'Globaldefinition', 'Staticdefinition', 'Virtualproperty'), self::WITHOUT_CONSTANTS)
             ->outIs('DEFAULT')
             ->atomIs(array('Closure', 'Arrowfunction'), self::WITHOUT_CONSTANTS)
             ->hasIn('RIGHT')
             ->hasNoIn('DEFINITION')
             ->as('origin')
             ->back('first')
             ->outIs('DEFINITION')
             ->inIs('NAME')
             ->atomIs('Functioncall', self::WITHOUT_CONSTANTS)
             ->as('call')
             ->dedup(array('call', 'origin'))
             ->addEFrom('DEFINITION', 'origin')
             ->count();
       $c3 = $this->rawQuery()->toInt();

       return $c1 + $c2 + $c3;
    }

    private function processReturnedType(): int {
        // function foo() : X {}; $a = foo(); $a->b();
        $this->atomIs(self::FUNCTIONS_ALL, self::WITHOUT_CONSTANTS)
              ->hasOut('RETURNTYPE')
              ->outIs('DEFINITION')
              ->atomIs(self::FUNCTIONS_CALLS, self::WITHOUT_CONSTANTS)
              ->inIs('DEFAULT')
              ->atomIs(array('Propertydefinition', 'Variabledefinition', 'Globaldefinition', 'Staticdefinition'), self::WITHOUT_CONSTANTS)
              ->outIs('DEFINITION')
              ->inIs('OBJECT')
              ->outIs('METHOD')
              ->atomIs('Methodcallname', self::WITHOUT_CONSTANTS)
              ->savePropertyAs('lccode', 'name')
              ->inIs('METHOD')
              ->atomIs('Methodcall', self::WITHOUT_CONSTANTS)
              ->as('method')
              ->hasNoIn('DEFINITION')
              ->back('first')

              ->outIs('RETURNTYPE')
              ->inIs('DEFINITION')
              ->atomIs('Class', self::WITHOUT_CONSTANTS)
              ->goToAllParents(self::INCLUDE_SELF)
              ->outIs('METHOD')
              ->outIs('NAME')
              ->samePropertyAs('lccode', 'name', self::CASE_INSENSITIVE)
              ->inIs('NAME')
              ->as('origin')
              ->dedup(array('first', 'origin'))
              ->addETo('DEFINITION', 'method')
              ->count();
        $c1 = $this->rawQuery()->toInt();

        // function foo() : X {}; foo()->b();
        $this->atomIs(self::FUNCTIONS_ALL, self::WITHOUT_CONSTANTS)
              ->hasOut('RETURNTYPE')
              ->outIs('DEFINITION')
              ->inIs('OBJECT')
              ->outIs('METHOD')
              ->atomIs('Methodcallname', self::WITHOUT_CONSTANTS)
              ->savePropertyAs('lccode', 'name')
              ->inIs('METHOD')
              ->atomIs('Methodcall', self::WITHOUT_CONSTANTS)
              ->hasNoIn('DEFINITION')
              ->as('method')
              ->back('first')

              ->outIs('RETURNTYPE')
              ->inIs('DEFINITION')
              ->atomIs('Class', self::WITHOUT_CONSTANTS)
              ->goToAllParents(self::INCLUDE_SELF)
              ->outIs('METHOD')
              ->outIs('NAME')
              ->samePropertyAs('lccode', 'name', self::CASE_INSENSITIVE)
              ->inIs('NAME')
              ->as('origin')
              ->dedup(array('first', 'origin'))
              ->addETo('DEFINITION', 'method')
              ->count();
        $c1 += $this->rawQuery()->toInt();

        // function foo() : X {};foo()->b();
        $this->atomIs(self::FUNCTIONS_ALL, self::WITHOUT_CONSTANTS)
              ->hasOut('RETURNTYPE')
              ->outIs('DEFINITION')
              ->atomIs(self::FUNCTIONS_CALLS, self::WITHOUT_CONSTANTS)
              ->inIs('OBJECT')
              ->outIs('METHOD')
              ->atomIs('Methodcallname', self::WITHOUT_CONSTANTS)
              ->savePropertyAs('lccode', 'name')
              ->inIs('METHOD')
              ->atomIs('Methodcall', self::WITHOUT_CONSTANTS)
              ->hasNoIn('DEFINITION')
              ->as('method')
              ->back('first')

              ->outIs('RETURNTYPE')
              ->inIs('DEFINITION')
              ->atomIs('Class', self::WITHOUT_CONSTANTS)
              ->goToAllParents(self::INCLUDE_SELF)
              ->outIs('METHOD')
              ->outIs('NAME')
              ->samePropertyAs('lccode', 'name', self::CASE_INSENSITIVE)
              ->inIs('NAME')
              ->as('origin')
              ->dedup(array('method', 'origin'))
              ->addETo('DEFINITION', 'method')
              ->count();
        $c2 = $this->rawQuery()->toInt();

        $this->atomIs(self::FUNCTIONS_ALL, self::WITHOUT_CONSTANTS)
             ->hasOut('RETURNTYPE')
             ->outIs('DEFINITION')
             ->atomIs(self::FUNCTIONS_CALLS, self::WITHOUT_CONSTANTS)
             ->inIs('DEFAULT')
             ->atomIs(array('Propertydefinition', 'Variabledefinition', 'Globaldefinition', 'Staticdefinition'), self::WITHOUT_CONSTANTS)
             ->outIs('DEFINITION')
             ->inIs('OBJECT')
             ->hasNoIn('DEFINITION')
             ->as('member')
             ->atomIs('Member', self::WITHOUT_CONSTANTS)
             ->outIs('MEMBER')
             ->savePropertyAs('code', 'name')
             ->back('first')

             ->outIs('RETURNTYPE')
             ->inIs('DEFINITION')
             ->atomIs('Class', self::WITHOUT_CONSTANTS)
             ->goToAllParents(self::INCLUDE_SELF)
             ->outIs('PPP')
             ->outIs('PPP')
             ->samePropertyAs('propertyname', 'name', self::CASE_SENSITIVE)
              ->as('origin')
              ->dedup(array('member', 'origin'))
             ->addETo('DEFINITION', 'member')
              ->count();
        $c3 = $this->rawQuery()->toInt();

       return $c1 + $c2 + $c3;
    }

    private function processParenthesis(): int {

        // (new x)->foo()
        $this->atomIs('Methodcall', self::WITHOUT_CONSTANTS)
              ->hasNoIn('DEFINITION')
              ->outIs('METHOD')
              ->atomIs('Methodcallname', self::WITHOUT_CONSTANTS)
              ->savePropertyAs('lccode', 'name')
              ->back('first')
              ->outIs('OBJECT')
              ->atomIs('Parenthesis', self::WITHOUT_CONSTANTS)
              ->outIs('CODE')
              ->optional(
                $this->side()
                     ->atomIs('Assignation')
                     ->outIs('RIGHT')
              )
              ->atomIs('New', self::WITHOUT_CONSTANTS)
              ->outIs('NEW')
              ->inIs('DEFINITION')  // No check on atoms :
              ->atomIs('Class', self::WITHOUT_CONSTANTS)
              ->goToAllParents(self::INCLUDE_SELF)
              ->outIs(array('METHOD', 'MAGICMETHOD'))
              ->outIs('NAME')
              ->samePropertyAs('lccode', 'name', self::CASE_INSENSITIVE)
              ->inIs('NAME')
              ->as('origin')
              ->dedup(array('first', 'origin'))
              ->addETo('DEFINITION', 'first')
              ->count();
        $c1 = $this->rawQuery()->toInt();

        // (new x)::foo()
        $this->atomIs('Member', self::WITHOUT_CONSTANTS)
              ->hasNoIn('DEFINITION')
              ->outIs('MEMBER')
              ->atomIs('Name', self::WITHOUT_CONSTANTS)
              ->savePropertyAs('code', 'name')
              ->back('first')
              ->outIs('OBJECT')
              ->atomIs('Parenthesis', self::WITHOUT_CONSTANTS)
              ->outIs('CODE')
              ->optional(
                $this->side()
                     ->atomIs('Assignation')
                     ->outIs('RIGHT')
              )
              ->atomIs('New', self::WITHOUT_CONSTANTS)
              ->outIs('NEW')
              ->inIs('DEFINITION')  // No check on atoms :
              ->atomIs('Class', self::WITHOUT_CONSTANTS)
              ->goToAllParents(self::INCLUDE_SELF)
              ->outIs('PPP')
              ->outIs('PPP')
              ->samePropertyAs('propertyname', 'name', self::CASE_SENSITIVE)
              ->as('origin')
              ->dedup(array('first', 'origin'))
              ->addETo('DEFINITION', 'first')
              ->count();
        $c2 = $this->rawQuery()->toInt();

        // (new x)::foo()
        $this->atomIs('Staticmethodcall', self::WITHOUT_CONSTANTS)
              ->hasNoIn('DEFINITION')
              ->outIs('METHOD')
              ->atomIs('Methodcallname', self::WITHOUT_CONSTANTS)
              ->savePropertyAs('lccode', 'name')
              ->back('first')
              ->outIs('CLASS')
              ->atomIs('Parenthesis', self::WITHOUT_CONSTANTS)
              ->outIs('CODE')
              ->optional(
                $this->side()
                     ->atomIs('Assignation')
                     ->outIs('RIGHT')
              )
              ->atomIs('New', self::WITHOUT_CONSTANTS)
              ->outIs('NEW')
              ->inIs('DEFINITION')  // No check on atoms :
              ->atomIs('Class', self::WITHOUT_CONSTANTS)
              ->goToAllParents(self::INCLUDE_SELF)
              ->outIs(array('METHOD', 'MAGICMETHOD'))
              ->outIs('NAME')
              ->samePropertyAs('lccode', 'name', self::CASE_INSENSITIVE)
              ->inIs('NAME')
              ->as('origin')
              ->dedup(array('first', 'origin'))
              ->addETo('DEFINITION', 'first')
              ->count();
        $c3 = $this->rawQuery()->toInt();

        // (new x)::foo()
        $this->atomIs('Staticproperty', self::WITHOUT_CONSTANTS)
              ->hasNoIn('DEFINITION')
              ->outIs('MEMBER')
              ->atomIs('Name', self::WITHOUT_CONSTANTS)
              ->savePropertyAs('code', 'name')
              ->back('first')
              ->outIs('CLASS')
              ->atomIs('Parenthesis', self::WITHOUT_CONSTANTS)
              ->outIs('CODE')
              ->optional(
                $this->side()
                     ->atomIs('Assignation')
                     ->outIs('RIGHT')
              )
              ->atomIs('New', self::WITHOUT_CONSTANTS)
              ->outIs('NEW')
              ->inIs('DEFINITION')  // No check on atoms :
              ->atomIs('Class', self::WITHOUT_CONSTANTS)
              ->goToAllParents(self::INCLUDE_SELF)
              ->outIs('PPP')
              ->outIs('PPP')
              ->samePropertyAs('propertyname', 'name', self::CASE_SENSITIVE)
              ->as('origin')
              ->dedup(array('first', 'origin'))
              ->addETo('DEFINITION', 'first')
              ->count();
        $c4 = $this->rawQuery()->toInt();

        // (new x)::FOO
        $this->atomIs('Staticconstant', self::WITHOUT_CONSTANTS)
              ->hasNoIn('DEFINITION')
              ->outIs('CONSTANT')
              ->atomIs('Name', self::WITHOUT_CONSTANTS)
              ->savePropertyAs('code', 'name')
              ->back('first')
              ->outIs('CLASS')
              ->atomIs('Parenthesis', self::WITHOUT_CONSTANTS)
              ->outIs('CODE')
              ->optional(
                $this->side()
                     ->atomIs('Assignation')
                     ->outIs('RIGHT')
              )
              ->atomIs('New', self::WITHOUT_CONSTANTS)
              ->outIs('NEW')
              ->inIs('DEFINITION')  // No check on atoms :
              ->atomIs('Class', self::WITHOUT_CONSTANTS)
              ->goToAllParents(self::INCLUDE_SELF)
              ->outIs('CONST')
              ->outIs('CONST')
              ->outIs('NAME')
              ->samePropertyAs('code', 'name', self::CASE_SENSITIVE)
              ->inIs('NAME')
              ->as('origin')
              ->dedup(array('first', 'origin'))
              ->addETo('DEFINITION', 'first')
              ->count();
        $c5 = $this->rawQuery()->toInt();

        return $c1 + $c2 + $c3 + $c4 + $c5;
    }

    private function propagateGlobals(): int {
        $this->atomIs('Methodcall', self::WITHOUT_CONSTANTS)
              ->hasNoIn('DEFINITION')
              ->outIs('METHOD')
              ->atomIs('Methodcallname', self::WITHOUT_CONSTANTS)
              ->savePropertyAs('lccode', 'name')
              ->inIs('METHOD')
              ->outIs('OBJECT')
              ->inIs('DEFINITION')
              ->atomIs(array('Globaldefinition', 'Variabledefinition'), self::WITHOUT_CONSTANTS)
              ->inIs('DEFINITION')
              ->atomIs('Virtualglobal', self::WITHOUT_CONSTANTS)
              ->outIs('DEFINITION')
              ->outIs('DEFINITION')
              ->inIs('LEFT')
              ->atomIs('Assignation', self::WITHOUT_CONSTANTS) // code is =
              ->outIs('RIGHT')
              ->atomIs('New', self::WITHOUT_CONSTANTS)
              ->outIs('NEW')
              ->inIs('DEFINITION')
              ->atomIs('Class', self::WITHOUT_CONSTANTS)
              ->goToAllParents(self::INCLUDE_SELF)
              ->outIs('METHOD')
              ->outIs('NAME')
              ->samePropertyAs('lccode', 'name', self::CASE_INSENSITIVE)
              ->inIs('NAME')
              ->as('origin')
              ->dedup(array('first', 'origin'))
              ->addETo('DEFINITION', 'first')
              ->count();
        $c1 = $this->rawQuery()->toInt();

        $this->atomIs('Member', self::WITHOUT_CONSTANTS)
              ->hasNoIn('DEFINITION')
              ->outIs('MEMBER')
              ->atomIs('Name', self::WITHOUT_CONSTANTS)
              ->savePropertyAs('code', 'name')
              ->inIs('MEMBER')
              ->outIs('OBJECT')
              ->inIs('DEFINITION')
              ->atomIs(array('Globaldefinition', 'Variabledefinition'), self::WITHOUT_CONSTANTS)
              ->inIs('DEFINITION')
              ->atomIs('Virtualglobal', self::WITHOUT_CONSTANTS)
              ->outIs('DEFINITION')
              ->outIs('DEFINITION')
              ->inIs('LEFT')
              ->atomIs('Assignation', self::WITHOUT_CONSTANTS) // code is =
              ->outIs('RIGHT')
              ->atomIs('New', self::WITHOUT_CONSTANTS)
              ->outIs('NEW')
              ->inIs('DEFINITION')
              ->atomIs('Class', self::WITHOUT_CONSTANTS)
              ->goToAllParents(self::INCLUDE_SELF)
              ->outIs('PPP')
              ->outIs('PPP')
              ->samePropertyAs('propertyname', 'name', self::CASE_SENSITIVE)
              ->as('origin')
              ->dedup(array('first', 'origin'))
              ->addETo('DEFINITION', 'first')
              ->count();
        $c2 = $this->rawQuery()->toInt();

        return $c1 + $c2;
    }

    private function propagateTypehint(): int {
        $this->atomIs('Methodcall', self::WITHOUT_CONSTANTS)
              ->hasNoIn('DEFINITION')
              ->outIs('METHOD')
              ->atomIs('Methodcallname', self::WITHOUT_CONSTANTS)
              ->savePropertyAs('lccode', 'name')
              ->inIs('METHOD')
              ->outIs('OBJECT')
              ->inIs('DEFINITION')
              ->inIs('NAME')
              ->atomIs('Parameter', self::WITHOUT_CONSTANTS)
              ->outIs('TYPEHINT')
              ->inIs('DEFINITION')
              ->optional(
                  $this->side()
                       ->atomIs('Interface')
                       ->outIs('DEFINITION')
                       ->atomIs(self::STATIC_NAMES, self::WITHOUT_CONSTANTS)
                       ->inIs('IMPLEMENTS')
              )
              // No check on Atom == Class, as it may not exists
              ->goToAllParents(self::INCLUDE_SELF)
              ->outIs('METHOD')
              ->outIs('NAME')
              ->samePropertyAs('lccode', 'name', self::CASE_INSENSITIVE)
              ->inIs('NAME')
              ->as('origin')
              ->dedup(array('first', 'origin'))
              ->addETo('DEFINITION', 'first')
              ->count();
        $c1 = $this->rawQuery()->toInt();

        $this->atomIs('Member', self::WITHOUT_CONSTANTS)
              ->hasNoIn('DEFINITION')
              ->outIs('MEMBER')
              ->atomIs('Name', self::WITHOUT_CONSTANTS)
              ->savePropertyAs('code', 'name')
              ->inIs('MEMBER')
              ->outIs('OBJECT')
              ->atomIs('Variableobject')
              ->inIs('DEFINITION')
              ->inIs('NAME')
              ->atomIs('Parameter', self::WITHOUT_CONSTANTS)
              ->outIs('TYPEHINT')
              ->inIs('DEFINITION')
              ->optional(
                  $this->side()
                       ->atomIs('Interface')
                       ->outIs('DEFINITION')
                       ->atomIs(self::STATIC_NAMES, self::WITHOUT_CONSTANTS)
                       ->inIs('IMPLEMENTS')
              )
              // No check on Atom == Class, as it may not exists
              ->goToAllParents(self::INCLUDE_SELF)
              ->outIs('PPP')
              ->outIs('PPP')
              ->samePropertyAs('propertyname', 'name', self::CASE_SENSITIVE)
              ->as('origin')
              ->dedup(array('first', 'origin'))
              ->addETo('DEFINITION', 'first')
              ->count();
        $c2 = $this->rawQuery()->toInt();

        $this->atomIs('Staticconstant', self::WITHOUT_CONSTANTS)
              ->hasNoIn('DEFINITION')
              ->outIs('CONSTANT')
              ->atomIs('Name', self::WITHOUT_CONSTANTS)
              ->savePropertyAs('code', 'name')
              ->inIs('CONSTANT')
              ->outIs('CLASS')
              ->inIs('DEFINITION')
              ->inIs('NAME')
              ->atomIs('Parameter', self::WITHOUT_CONSTANTS)
              ->outIs('TYPEHINT')
              ->inIs('DEFINITION')
              ->optional(
                  $this->side()
                       ->atomIs('Interface')
                       ->outIs('DEFINITION')
                       ->atomIs(self::STATIC_NAMES, self::WITHOUT_CONSTANTS)
                       ->inIs('IMPLEMENTS')
              )
              ->atomIs('Class', self::WITHOUT_CONSTANTS)
              // No check on Atom == Class, as it may not exists
              ->goToAllParents(self::INCLUDE_SELF)
              ->outIs('CONST')
              ->outIs('CONST')
              ->outIs('NAME')
              ->samePropertyAs('code', 'name', self::CASE_SENSITIVE)
              ->as('origin')
              ->dedup(array('first', 'origin'))
              ->addETo('DEFINITION', 'first')
              ->count();
        $c3 = $this->rawQuery()->toInt();

        // Create link between static Class method and its definition
        // This works outside a class too, for static.
        $this->atomIs('Staticmethodcall', self::WITHOUT_CONSTANTS)
              ->hasNoIn('DEFINITION')
              ->outIs('METHOD')
              ->savePropertyAs('lccode', 'name')
              ->inIs('METHOD')
              ->outIs('CLASS')
              ->atomIs('Variable', self::WITHOUT_CONSTANTS)
              ->inIs('DEFINITION')
              ->inIs('NAME')
              ->outIs('TYPEHINT')
              ->inIs('DEFINITION')
              ->optional(
                  $this->side()
                       ->atomIs('Interface')
                       ->outIs('DEFINITION')
                       ->atomIs(self::STATIC_NAMES, self::WITHOUT_CONSTANTS)
                       ->inIs('IMPLEMENTS')
              )
              // No check on Atom == Class, as it may not exists
              ->goToAllParents(self::INCLUDE_SELF)
              ->outIs(array('METHOD', 'MAGICMETHOD'))
              ->isNot('visibility', 'private')
              ->outIs('NAME')
              ->samePropertyAs('code', 'name', self::CASE_INSENSITIVE)
              ->inIs('NAME')
              ->as('origin')
              ->dedup(array('first', 'origin'))
              ->addETo('DEFINITION', 'first')
              ->count();
        $c4 = $this->rawQuery()->toInt();

        return $c1 + $c2 + $c3 + $c4;
    }

    private function processFluentInterfaces(): int {
        $this->atomIs(array('Methodcall', 'Staticmethodcall'), self::WITHOUT_CONSTANTS)
              ->hasNoIn('DEFINITION')
              ->outIs('METHOD')
              ->atomIs('Methodcallname', self::WITHOUT_CONSTANTS)
              ->savePropertyAs('lccode', 'name')
              ->back('first')

              ->outIs(array('OBJECT', 'CLASS'))
              ->atomIs(array('Methodcall', 'Staticmethodcall'), self::WITHOUT_CONSTANTS)
              ->inIs('DEFINITION')
              ->atomIs(array('Method', 'Magicmethod'))
              ->inIs(array('METHOD', 'MAGICMETHOD'))

              ->atomIs(self::CLASSES_TRAITS, self::WITHOUT_CONSTANTS)
              ->goToAllParentsTraits(self::INCLUDE_SELF)
              ->outIs(array('METHOD', 'MAGICMETHOD'))
              ->outIs('NAME')
              ->samePropertyAs('lccode', 'name', self::CASE_INSENSITIVE)
              ->inIs('NAME')
              ->as('origin')
              ->dedup(array('first', 'origin'))

              ->addETo('DEFINITION', 'first')
              ->count();
        $res = $this->rawQuery();

        return $res->toInt();
    }
}

?>
<?php
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Complete;

use Exakat\Analyzer\Analyzer;

class ExtendedTypehints extends Complete {
    public function analyze() {
        // returntype, contravariant (Interface => Class)
       // returntype, contravariant (Interface => Class => subclass)
       // returntype, contravariant (Interface => Subinterface => Class => subclass)
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('RETURNTYPE')
             ->as('result')
             ->atomIsNot('Void')
             ->inIs('DEFINITION')
             ->atomIs('Interface')
             ->goToAllChildren()
             ->addETo('DEFINITION', 'result');
        $this->prepareQuery();

        // returntype, contravariant (Interface => Class)


        // special case for self
        // special case for static
        // special case for parent
        
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Complete;

class PhpNativeReference extends Complete {
    public function analyze() {
        // PHP functions that are using references
        $functions = $this->methods->getFunctionsReferenceArgs();

        $references = array();
        foreach($functions as $function) {
            array_collect_by($references, makeFullnspath($function['function']), $function['position']);
        }

        //sort($a);
        $this->atomFunctionIs(array_keys($references))
              ->savePropertyAs('fullnspath', 'fnp')
              ->outIs('ARGUMENT')
              ->isHash('rank', $references, 'fnp')
              ->atomIs(self::CONTAINERS)
              ->setProperty('isModified', true);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Complete;

class SetClassRemoteDefinitionWithReturnTypehint extends Complete {
    public function dependsOn(): array {
        return array('Complete/CreateDefaultValues',
                    );
    }

    public function analyze() {
        // class a { function b() }; function foo() : a {}; $a = foo(); $a->b()
        // class a { function b() }; function foo() : a {}; foo()->b()
        $this->atomIs(self::FUNCTIONS_ALL, self::WITHOUT_CONSTANTS)
              ->hasOut('RETURNTYPE')
              ->outIs('DEFINITION')
              ->atomIs(self::FUNCTIONS_CALLS, self::WITHOUT_CONSTANTS)
              ->optional(
                $this->side()
                     ->inIs('DEFAULT')
                     ->atomIs(array('Propertydefinition', 'Variabledefinition', 'Globaldefinition', 'Staticdefinition'), self::WITHOUT_CONSTANTS)
                     ->outIs('DEFINITION')
              )
              ->inIs('OBJECT')
              ->outIs('METHOD')
              ->atomIs('Methodcallname', self::WITHOUT_CONSTANTS)
              ->savePropertyAs('lccode', 'name')
              ->inIs('METHOD')
              ->atomIs('Methodcall', self::WITHOUT_CONSTANTS)
              ->hasNoIn('DEFINITION')
              ->as('method')
              ->back('first')

              ->outIs('RETURNTYPE')
              ->inIs('DEFINITION')
              ->atomIs(self::CLASSES_ALL, self::WITHOUT_CONSTANTS)
              ->goToAllParents(self::INCLUDE_SELF)
              ->outIs('METHOD')
              ->outIs('NAME')
              ->samePropertyAs('lccode', 'name', self::CASE_INSENSITIVE)
              ->inIs('NAME')
              ->addETo('DEFINITION', 'method');
        $this->prepareQuery();

        // class a { private $b }; function foo() : a {}; $a = foo(); $a->b
        // class a { private $b }; function foo() : a {}; foo()->b
        $this->atomIs(self::FUNCTIONS_ALL, self::WITHOUT_CONSTANTS)
             ->hasOut('RETURNTYPE')
             ->outIs('DEFINITION')
             ->atomIs(self::FUNCTIONS_CALLS, self::WITHOUT_CONSTANTS)
              ->optional(
                $this->side()
                     ->inIs('DEFAULT')
                     ->atomIs(array('Propertydefinition', 'Variabledefinition', 'Globaldefinition', 'Staticdefinition'), self::WITHOUT_CONSTANTS)
                     ->outIs('DEFINITION')
              )

             ->inIs('OBJECT')
             ->hasNoIn('DEFINITION')
             ->as('member')
             ->atomIs('Member', self::WITHOUT_CONSTANTS)
             ->outIs('MEMBER')
             ->savePropertyAs('code', 'name')
             ->back('first')

             ->outIs('RETURNTYPE')
             ->inIs('DEFINITION')
             ->atomIs(self::CLASSES_ALL, self::WITHOUT_CONSTANTS)
             ->goToAllParents(self::INCLUDE_SELF)
             ->outIs('PPP')
             ->outIs('PPP')
             ->samePropertyAs('propertyname', 'name', self::CASE_SENSITIVE)
             ->addETo('DEFINITION', 'member');
        $this->prepareQuery();

        // $b = foo(); $b->p; function foo() : C {}
        $this->atomIs('Member', self::WITHOUT_CONSTANTS)
              ->as('member')
              ->hasNoIn('DEFINITION')
              ->outIs('MEMBER')
              ->atomIs('Name', self::WITHOUT_CONSTANTS)
              ->savePropertyAs('code', 'name')
              ->inIs('MEMBER')
              ->outIs('OBJECT')
              ->inIs('DEFINITION')
              ->atomIs(array('Variabledefinition', 'Parametername', 'Propertydefinition', 'Globaldefinition', 'Staticdefinition', 'Virtualproperty'), self::WITHOUT_CONSTANTS)
              ->outIs('DEFAULT')
              ->atomIs('Functioncall', self::WITHOUT_CONSTANTS)
              ->inIs('DEFINITION')
              ->outIs('RETURNTYPE')
              ->inIs('DEFINITION')
              ->atomIs(self::CLASSES_ALL, self::WITHOUT_CONSTANTS)
              ->goToAllParentsTraits(self::INCLUDE_SELF)
              ->outIs('PPP')
              ->outIs('PPP')
              ->samePropertyAs('propertyname', 'name', self::CASE_SENSITIVE)
              ->addETo('DEFINITION', 'member');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Security;

use Exakat\Analyzer\Analyzer;

class IntegerConversion extends Analyzer {
    private $dependsOn = null;
    public function dependsOn(): array {
        if ($this->dependsOn === null) {
            $module = $this->rulesets->getInstance('Modules/IncomingValues', $this->gremlin, $this->config);
            $modules = $module->dependsOn();

            $this->dependsOn = array_merge( array('Complete/CreateDefaultValues',
                                                  'Php/IncomingValues',
                                                 ),
                                            $modules
                                          );
        }

        return $this->dependsOn;
    }

    public function analyze() {
        $incomingValues = $this->dependsOn();

        // $a = $_GET['a']; if ($a == 3) {}
        $this->atomIs('Variable')
             ->inIs(array('LEFT', 'RIGHT'))
             ->atomIs('Comparison')
             ->as('results')
             ->codeIsNot(array('===', '!=='), self::TRANSLATE, self::CASE_SENSITIVE)
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs('Integer', self::WITH_CONSTANTS)
             ->back('first')
             ->inIs('DEFINITION')
             ->outIs('DEFINITION')
             ->inIs('LEFT')
             ->atomIs('Assignation')
             ->outIs('RIGHT')
             ->analyzerIs($incomingValues)
             ->back('results');
        $this->prepareQuery();

        // foo($_GET['a']); function foo() {if ($a == 3) {} }
        $this->atomIs('Variable')
             ->inIs(array('LEFT', 'RIGHT'))
             ->atomIs('Comparison')
             ->as('results')
             ->codeIsNot(array('===', '!=='), self::TRANSLATE, self::CASE_SENSITIVE)
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs('Integer', self::WITH_CONSTANTS)
             ->back('first')
             ->inIs('DEFINITION')
             ->inIs('NAME')
             ->savePropertyAs('rank', 'ranked')
             ->inIs('ARGUMENT')
             // methods, closures, functions...
             ->outIs('DEFINITION')
             ->outWithRank('ARGUMENT', 'ranked')
             ->analyzerIs($incomingValues)
             ->back('results');
        $this->prepareQuery();

        // if ($_COOKIES['a'] == 3) {} }
        $this->analyzerIs($incomingValues)
             ->inIs(array('LEFT', 'RIGHT'))
             ->atomIs('Comparison')
             ->codeIsNot(array('===', '!=='), self::TRANSLATE, self::CASE_SENSITIVE)
             ->as('results')
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs('Integer', self::WITH_CONSTANTS)
             ->back('results');
        $this->prepareQuery();

        // if ((int) $_COOKIES['a'] === 3) {} }
        $this->analyzerIs($incomingValues)
             ->inIsIE('VARIABLE')
             ->inIs('CAST')
             ->tokenIs('T_INT_CAST') // casting to integer
             ->inIs(array('LEFT', 'RIGHT'))
             ->atomIs('Comparison')
             // operator doesn't matter : it is hidden by cast
             ->as('results')
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs('Integer', self::WITH_CONSTANTS)
             ->back('results');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Security;

use Exakat\Analyzer\Analyzer;

class CryptoKeyLength extends Analyzer {
    public function analyze() {
        $lengths = array('\\OPENSSL_KEYTYPE_RSA' => 3072,
                         '\\OPENSSL_KEYTYPE_DSA' => 2048,
                         '\\OPENSSL_KEYTYPE_DH'  => 2048,
                         '\\OPENSSL_KEYTYPE_EC'  => 512,
                        );

        // to be used with openssl_pkey_new and openssl_csr_new
    /*
      const CERT_CONFIG = [
        "private_key_bits" => 4096,
        "private_key_type" => OPENSSL_KEYTYPE_RSA,
    */
        $this->atomIs('Arrayliteral')

             ->outIs('ARGUMENT')
             ->atomIs('Keyvalue')
             ->outIs('INDEX')
             ->noDelimiterIs('private_key_type', self::WITH_CONSTANTS)
             ->inIs('INDEX')

             ->outIs('VALUE')
             ->fullnspathIs(array_keys($lengths), self::CASE_SENSITIVE)
             ->savePropertyAs('fullnspath', 'fqn')
             ->back('first')

             ->outIs('ARGUMENT')
             ->atomIs('Keyvalue')
             ->outIs('INDEX')
             ->noDelimiterIs('private_key_bits', self::WITH_CONSTANTS)
             ->inIs('INDEX')

             ->outIs('VALUE')
             ->isLessHash('intval', $lengths, 'fqn')

             ->back('first');
        $this->prepareQuery();


    /*
      class x {
        private $private_key_bits" = 4096;
        private $private_key_type" = OPENSSL_KEYTYPE_RSA;
      }
    */
        $this->atomIs(self::CLASSES_TRAITS)

             ->outIs('PPP')
             ->outIs('PPP')
             ->atomIs('Propertydefinition')
             ->codeIs('$private_key_type')
             ->outIs('DEFAULT')
             // hardcoded default, or dynamic, but only openssl constants
             ->fullnspathIs(array_keys($lengths), self::CASE_SENSITIVE)
             ->savePropertyAs('fullnspath', 'fqn')
             ->back('first')

             ->outIs('PPP')
             ->outIs('PPP')
             ->atomIs('Propertydefinition')
             ->codeIs('$private_key_bits')
             ->outIs('DEFAULT')
             ->isLessHash('intval', $lengths, 'fqn')

             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Security;

use Exakat\Analyzer\Analyzer;

class Sqlite3RequiresSingleQuotes extends Analyzer {
    public function analyze() {
        // $query = 'select * from table where col = "'.$sqlite->escapeString($x).'"';
        $this->atomIs('Concatenation')
             ->outIs('CONCAT')
             ->atomIs('Methodcall')
             ->savePropertyAs('rank', 'ranked')
             ->outIs('METHOD')
             ->codeIs('escapeString')
             ->back('first')
             ->raw('sideEffect{ ranked = ranked + 1}')
             ->outWithRank('CONCAT', 'ranked')
             ->atomIs('String', self::WITH_CONSTANTS)
             ->regexIs('noDelimiter', '^\\\\\\\\?\\"')
             ->back('first');
        $this->prepareQuery();

        // $x = $sqlite->escapeString($x);
        // $query = 'select * from table where col = "'.$x.'"';
        $this->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomIs('Methodcall')
             ->outIs('METHOD')
             ->codeIs('escapeString')
             ->back('first')

             ->outIs('LEFT')
             ->savePropertyAs('fullcode', 'variable')
             ->back('first')

             ->nextSibling()
             ->atomInsideNoDefinition('Concatenation')
             ->outIs('CONCAT')
             ->samePropertyAs('fullcode', 'variable')
             ->savePropertyAs('rank', 'ranked')
             ->inIs('CONCAT')
             ->raw('sideEffect{ ranked = ranked + 1}')
             ->outWithRank('CONCAT', 'ranked')
             ->atomIs('String', self::WITH_CONSTANTS)
             ->regexIs('noDelimiter', '^\\\\\\\\?\\"')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Security;

use Exakat\Analyzer\Analyzer;

class FilterInputSource extends Analyzer {
    public function analyze() {
        // filter_input()
        $this->atomFunctionIs(array('\filter_input', '\filter_input_array'))
             ->back('first');
        $this->prepareQuery();

        // filter_var($_GET), filter_var($_POST['x'])
        $this->atomFunctionIs(array('\filter_var', '\filter_var_array'))
             ->outWithRank('ARGUMENT', 0)
             ->outIsIE('VARIABLE')
             ->atomIs('Phpvariable')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Security;

use Exakat\Analyzer\Analyzer;

class SafeHttpHeaders extends Analyzer {
    public function analyze() {
        //Some docs : https://www.keycdn.com/blog/http-security-headers

        //header('X-Xss-Protection: 0');
        $this->atomIs('String')
             ->has('noDelimiter')
             ->noDelimiterIs(array('x-xss-protection: 0', 'access-control-allow-origin: *'), self::CASE_INSENSITIVE)
             ->back('first');
        $this->prepareQuery();

        //header('X-Xss-Protection', '0');
        $this->atomIs(self::FUNCTIONS_CALLS)
             ->outIs('ARGUMENT')
             ->has('noDelimiter')
             ->noDelimiterIs(array('x-xss-protection', 'access-control-allow-origin'), self::CASE_INSENSITIVE)
             ->nextSibling('ARGUMENT')
             ->has('noDelimiter')
             ->noDelimiterIs(array('*', '0'), self::CASE_INSENSITIVE)
             ->back('first');
        $this->prepareQuery();

        //header(['X-Xss-Protectino' => '0']);
        $this->atomIs('Keyvalue')
             ->outIs('INDEX')
             ->has('noDelimiter')
             ->noDelimiterIs(array('x-xss-protection', 'access-control-allow-origin'), self::CASE_INSENSITIVE)
             ->back('first')
             ->outIs('VALUE')
             ->has('noDelimiter')
             ->noDelimiterIs(array('*', '0'), self::CASE_INSENSITIVE)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Security;

use Exakat\Analyzer\Analyzer;

class NoSleep extends Analyzer {
    public function analyze() {
        // simple call to usleep
        $this->atomFunctionIs(array('\\sleep', '\\usleep'));
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Security;

use Exakat\Analyzer\Analyzer;

class UnserializeSecondArg extends Analyzer {
    protected $phpVersion = '7.0+';

    public function analyze() {
        $this->atomFunctionIs('\\unserialize')
             ->noChildWithRank('ARGUMENT', 1)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Security;

use Exakat\Analyzer\Analyzer;

class NoWeakSSLCrypto extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/PropagateConstants',
                    );
    }

    public function analyze() {
        $this->atomFunctionIs(array('\\stream_socket_enable_crypto'))
             ->outWithRank('ARGUMENT', 2)
             ->atomIs(array('Identifier', 'Nsname'))
             ->fullnspathIs(array('\STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT',
                                  '\STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT',
                                  '\STREAM_CRYPTO_METHOD_SSLv2_CLIENT',
                                  '\STREAM_CRYPTO_METHOD_SSLv3_CLIENT',
                                  '\STREAM_CRYPTO_METHOD_SSLv23_CLIENT',
                                  '\STREAM_CRYPTO_METHOD_SSLv2_SERVER',
                                  '\STREAM_CRYPTO_METHOD_SSLv3_SERVER',
                                  '\STREAM_CRYPTO_METHOD_SSLv23_SERVER',
                                  ), self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();

        // curl_septop() with the following constants
        $this->atomIs(array('Identifier', 'Nsname'))
             ->fullnspathIs(array('\CURL_SSLVERSION_TLSv1',
                                  '\CURL_SSLVERSION_SSLv2',
                                  '\CURL_SSLVERSION_SSLv3',
                                  '\CURL_SSLVERSION_TLSv1_0',
                                  '\CURL_SSLVERSION_SSLv2',
                                  ));
        $this->prepareQuery();

        // This is for fsockopen and co.
        $this->atomIs('String', self::WITH_CONSTANTS)
             ->regexIs('noDelimiter', '^(sslv2|sslv3)'); // tls is for v1.0 to v1.3
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Security;

use Exakat\Analyzer\Analyzer;

class SetCookieArgs extends Analyzer {
    public function analyze() {
        // setcookie('cookie', $value);
        $this->atomFunctionIs(array('\\setcookie', '\\setrawcookie'))
             ->hasChildWithRank('ARGUMENT', 1) // so the cookie is not destroyed
             ->outWithRank('ARGUMENT', 1)
             ->isNotLiteral()
             ->inIs('ARGUMENT')
             ->noChildWithRank('ARGUMENT', 6) // so httponly is omitted
             ->back('first');
        $this->prepareQuery();

        // setcookie('cookie', 'value');
        $this->atomFunctionIs(array('\\setcookie', '\\setrawcookie'))
             ->hasChildWithRank('ARGUMENT', 1) // so the cookie is not destroyed
             ->outWithRank('ARGUMENT', 1)
             ->isLiteral()
             ->is('boolean', true)
             ->inIs('ARGUMENT')
             ->noChildWithRank('ARGUMENT', 6) // so httponly is omitted
             ->back('first');
        $this->prepareQuery();

    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Security;

use Exakat\Analyzer\Analyzer;

class DirectInjection extends Analyzer {
    public function dependsOn(): array {
        return array('Security/SensitiveArgument',
                     'Modules/IncomingData',
                     'Php/SafePhpvars',
                    );
    }

    public function analyze() {
        $vars = $this->loadIni('php_incoming.ini')->incoming;

        // Relayed call to another function
        // foo($_GET)
        $this->atomIs('Phpvariable')
             ->inIsIE('VARIABLE')
             ->analyzerIsNot('Php/SafePhpvars')
             ->savePropertyAs('rank', 'ranked')
             ->inIs('ARGUMENT')
             ->atomIs(self::FUNCTIONS_CALLS)
             ->as('result')

             ->inIs('DEFINITION')
             ->outWithRank('ARGUMENT', 'ranked')

             ->outIs('NAME')
             ->outIs('DEFINITION')

             ->analyzerIs('Security/SensitiveArgument')
             ->back('result');
        $this->prepareQuery();

        // $_GET/_POST ... directly as argument of PHP functions
        $this->atomIs('Phpvariable')
             ->inIsIE('VARIABLE')
             ->analyzerIsNot('Php/SafePhpvars')
             ->analyzerIs('Security/SensitiveArgument')
             ->goToInstruction(array_merge(self::FUNCTIONS_CALLS, array('Include', 'Print', 'Echo', 'Exit')));
        $this->prepareQuery();
/*
        // Other source of tainted data
        $this->analyzerIs('Modules/IncomingData')
             ->analyzerIs('Security/SensitiveArgument')
             ->inIsIE('CODE')
             ->inIs('ARGUMENT');
        $this->prepareQuery();*/

        // "$_GET/_POST ['index']"... inside an operation is probably OK if not concatenation!
        // $_GET/_POST array... inside a string is useless and safe (will print Array)
        // "$_GET/_POST ['index']"... inside a string or a concatenation is unsafe
        $this->atomIs('Phpvariable')
             ->inIsIE('VARIABLE')
             ->analyzerIsNot('Php/SafePhpvars')
             ->goToInstruction(array('String', 'Concatenation'));
        $this->prepareQuery();

/*
        // Other source of tainted data
        $this->analyzerIs('Modules/IncomingData')
             ->inIs('VARIABLE')
             ->raw($safeIndex)
             ->goToArray()
             ->inIsIE('CODE')
             ->inIs('CONCAT');
        $this->prepareQuery();
*/
        // foreach (looping on incoming variables)
        $this->atomIs('Phpvariable')
             ->inIsIE('VARIABLE')
             ->analyzerIsNot('Php/SafePhpvars')
             ->goToArray()
             ->inIs('SOURCE');
        $this->prepareQuery();
/*
        $this->analyzerIs('Modules/IncomingData')
             ->goToArray()
             ->inIs('SOURCE');
        $this->prepareQuery();
*/
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Security;

use Exakat\Analyzer\Analyzer;

class IndirectInjection extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/PropagateConstants',
                     'Complete/PropagateCalls',
                     'Complete/SetClassMethodRemoteDefinition',
                     'Complete/SetClassRemoteDefinitionWithLocalNew',
                     'Complete/CreateDefaultValues',
                     'Security/SensitiveArgument',
                    );
    }

    public function analyze() {
        // Relayed via variable to sensitive function
        // function f() {  $a = $_GET['a'];exec($a);}
        $this->atomIs(self::FUNCTIONS_USAGE)
             ->outIs('ARGUMENT')
             ->analyzerIs('Security/SensitiveArgument')
             ->atomInsideNoDefinition(self::VARIABLES_ALL)
             ->inIs('DEFINITION')
             ->outIs('DEFAULT')
             ->outIsIE('VARIABLE')
             ->atomIs('Phpvariable')
             ->back('first');
        $this->prepareQuery();

        // Relayed via argument to sensitive function
        //  function f($_GET['a']) {  exec($a);}
        $this->atomIs('Phpvariable')
             ->inIsIE('VARIABLE')
             ->followValue(5)
             ->analyzerIs('Security/SensitiveArgument')
             ->inIs('ARGUMENT')
             ->analyzerIsNot('self');
        $this->prepareQuery();
        //function f() {  $a = $_GET['a'];exec($a);}

        // $_GET/_POST array... inside a string is useless and safe (will print Array)
        // "$_GET/_POST ['index']"... inside a string or a concatenation is unsafe
        // "$_GET/_POST ['index']"... inside an operation is probably OK if not concatenation!
        $this->atomIs(self::VARIABLES_ALL)
             ->analyzerIsNot('self')
             ->inIs('DEFINITION')
             ->outIs('DEFAULT')
             ->outIsIE('VARIABLE')
             ->atomIs('Phpvariable')
             ->back('first')
             ->inIsIE('VARIABLE')
             ->inIs('CONCAT');
        $this->prepareQuery();

        // foreach (looping on incoming variables)
        $this->atomIs('Foreach')
             ->outIs('SOURCE')
             ->atomInsideNoDefinition(self::VARIABLES_ALL)
             ->inIs('DEFINITION')
             ->outIs('DEFAULT')
             ->outIsIE('VARIABLE')
             ->atomIs('Phpvariable')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Security;

use Exakat\Analyzer\Analyzer;

class ShouldUsePreparedStatement extends Analyzer {
    public function analyze() {
        $functions = array( '\\pg_query',
                            '\\sqlsrv_query',
                            '\\cubrid_query',
                            '\\sqlite_query',
                            '\\sybase_query',
                            '\\ingres_query',
                            '\\pg_send_query',
                            '\\msql_db_query',
                            '\\mysql_db_query',
                            '\\fbsql_db_query',
                            '\\pg_cancel_query',
                            '\\ifx_query',
                            '\\ibase_free_query',
                            '\\dbx_query',
                            '\\maxdb_multi_query',
                            '\\sqlite_array_query',
                            '\\mysqli_slave_query',
                            '\\mysqli_master_query',
                            '\\sqlite_single_query');

        // dynamic type in the code : mysql_query($res, "select ".$a." from table");
        $this->atomFunctionIs($functions)
             ->outWithRank('ARGUMENT', 1)
             ->atomIs(array('Concatenation', 'String', 'Heredoc'))
             ->outWithRank('CONCAT', 0)
             ->regexIsNot('noDelimiter', '(?i)^\\\\s*(FLUSH|ALTER|CREATE|SHOW|DROP|GRANT)')
             ->back('first');
        $this->prepareQuery();

        // method call $someObject->query("select $b") (probably too wide...)
        $this->atomIs('Methodcall')
             ->outIs('METHOD')
             ->codeIs('query')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs(array('Concatenation', 'String', 'Heredoc'))
             ->outWithRank('CONCAT', 0)
             ->regexIsNot('noDelimiter', '(?i)^\\\\s*(FLUSH|ALTER|CREATE|SHOW|DROP|GRANT)')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Security;

use Exakat\Analyzer\Analyzer;

class MkdirDefault extends Analyzer {
    public function analyze() {
        // mkdir($dir) : 0777, as 2nd arg, is by defailt.
        $this->atomFunctionIs('\\mkdir')
             ->noChildWithRank('ARGUMENT', 1);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Security;

use Exakat\Analyzer\Analyzer;

class SessionLazyWrite extends Analyzer {
    public function analyze() {
        // class mysessionhandler extends sessionhandlerinterface {}
        $this->atomIs(self::CLASSES_ALL)
             ->outIs('IMPLEMENTS')
             ->is('fullnspath', '\\sessionhandlerinterface')
             ->back('first')
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->outIs('IMPLEMENTS')
                             ->fullnspathIs('\\sessionupdatetimestamphandlerinterface')
                     )
             )
             ->back('first');
        $this->prepareQuery();

        // interface mysessionhandler extends sessionhandlerinterface {}
        $this->atomIs('Interface')
             ->outIs('EXTENDS')
             ->is('fullnspath', '\\sessionhandlerinterface')
             ->back('first')
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->outIs('EXTENDS')
                             ->fullnspathIs('\\sessionupdatetimestamphandlerinterface')
                     )
             )
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Security;

use Exakat\Analyzer\Analyzer;

class RegisterGlobals extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/MakeClassMethodDefinition',
                     'Complete/PropagateCalls',
                    );
    }

    public function analyze() {
        // With a foreach
        $this->atomIs('Foreach')
             ->outIs('SOURCE')
             ->atomIs('Phpvariable', self::WITH_VARIABLES)
             ->back('first')

             ->outIs('INDEX')
             ->savePropertyAs('code', 'k')
             ->back('first')

             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Variable')
             ->is('isModified', true)
             ->tokenIs(array('T_DOLLAR', 'T_DOLLAR_OPEN_CURLY_BRACES'))
             ->outIs('NAME')
             ->samePropertyAs('code','k')
             ->back('first');
        $this->prepareQuery();

        // With a foreach in a class
        $this->atomIs('Foreach')
             ->outIs('SOURCE')
             ->atomIs('Phpvariable', self::WITH_VARIABLES)
             ->back('first')

             ->outIs('INDEX')
             ->savePropertyAs('code', 'k')
             ->back('first')

             ->outIs('BLOCK')
             ->atomInsideNoDefinition(array('Member' , 'Staticproperty'))
             ->is('isModified', true)
             ->outIs('MEMBER')
             ->tokenIs('T_VARIABLE')
             ->samePropertyAs('code', 'k', self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();

        // With extract and overwriting option
        $this->atomFunctionIs('\\extract')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('Phpvariable')
             ->inIs('ARGUMENT')
             ->outWithRank('ARGUMENT', 1)
             // Lazy way to check for EXTR_IF_EXISTS, \EXTR_IF_EXISTS and | EXTR_REFS
             ->regexIs('fullcode', '(EXTR_OVERWRITE|EXTR_IF_EXISTS)')
             ->back('first');
        $this->prepareQuery();

        // With extract and default option (EXTR_OVERWRITE)
        $this->atomFunctionIs('\\extract')
             ->noChildWithRank('ARGUMENT', 1)
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('Phpvariable')
             ->back('first');
        $this->prepareQuery();

        // With parse_url and no final argument
        $this->atomFunctionIs('\\parse_str')
             ->noChildWithRank('ARGUMENT', 1)
             ->back('first');
        $this->prepareQuery();

        // With import_request_variables
        $this->atomFunctionIs('\\import_request_variables');
        $this->prepareQuery();

        // Other methods?
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Security;

use Exakat\Analyzer\Analyzer;

class KeepFilesRestricted extends Analyzer {
    protected $filePrivileges = array(0777);

    public function analyze() {
        if (is_string($this->filePrivileges)) {
            $this->filePrivileges = str2array($this->filePrivileges);
            // todo : interpret values from ini : 0777 will be 777, not 0777;
        }

        // chmod($file, 0777);
        $this->atomFunctionIs(array('\\chmod', '\\mkdir'))
             ->outWithRank('ARGUMENT', 1)
             ->atomIs('Integer', self::WITH_CONSTANTS)
             ->raw('filter{ x = ' . implode(', ', $this->filePrivileges) . '; (it.get().value("intval") & 0777) in x;}')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Security;

use Exakat\Analyzer\Analyzer;

class DynamicDl extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/PropagateConstants',
                    );
    }

    public function analyze() {
        // dl($variable);
        $this->atomFunctionIs('\dl')
             ->outWithRank('ARGUMENT', 0)
             ->isNot('constant', true)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Security;

use Exakat\Analyzer\Analyzer;

class UploadFilenameInjection extends Analyzer {
    public function analyze() {
        //$extension = strtolower( substr( strrchr($_FILES['upload']['name'], ".") ,1) );
        //if(@move_uploaded_file($_FILES['upload']['tmp_name'], $_FILES['upload']['name']))
        $this->atomFunctionIs('\move_uploaded_file')
             ->outWithRank('ARGUMENT', 1)
             ->atomInsideNoDefinition('Phpvariable')
             ->codeIs('$_FILES', self::TRANSLATE, self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();

        //$extension = strtolower( substr( strrchr($_FILES['upload']['name'], ".") ,1) );
        //if(@move_uploaded_file($_FILES['upload']['tmp_name'], "../logos_clients/".$id.".$extension"))
        $this->atomFunctionIs('\move_uploaded_file')
             ->hasFunction()
             ->outWithRank('ARGUMENT', 1)
             ->atomInsideNoDefinition(self::VARIABLES_USER)
             ->savePropertyAs('code', 'relay')
             ->goToFunction()
             ->outIs('BLOCK')
             ->atomInsideNoDefinition(self::VARIABLES_ALL)
             ->samePropertyAs('code', 'relay')
             ->inIs('LEFT')
             ->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomInsideNoDefinition('Phpvariable')
             ->codeIs('$_FILES', self::TRANSLATE, self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();

        //$extension = strtolower( substr( strrchr($_FILES['upload']['name'], ".") ,1) );
        //if(@move_uploaded_file($_FILES['upload']['tmp_name'], "../logos_clients/".$id.".$extension"))
        $this->atomFunctionIs('\move_uploaded_file')
             ->hasNoFunction()
             ->outWithRank('ARGUMENT', 1)
             ->atomInsideNoDefinition(self::VARIABLES_USER)
             ->savePropertyAs('code', 'relay')
             ->goToFile()
             ->outIs('FILE')
             ->atomInsideNoDefinition(self::VARIABLES_ALL)
             ->samePropertyAs('code', 'relay')
             ->inIs('LEFT')
             ->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomInsideNoDefinition('Phpvariable')
             ->codeIs('$_FILES', self::TRANSLATE, self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Security;

use Exakat\Analyzer\Analyzer;

class parseUrlWithoutParameters extends Analyzer {

    public function analyze() {
        // parse_str($v);
        $this->atomFunctionIs(array('\parse_str', '\mb_parse_str'))
             ->noChildWithRank('ARGUMENT', 1);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Security;

use Exakat\Analyzer\Analyzer;

class CantDisableFunction extends Analyzer {
    public function analyze() {
        $disableFunctions = $this->loadIni('disable_functions.ini', 'disable_functions');
        $disableFunctions = makeFullNsPath($disableFunctions);

        $this->atomFunctionIs($disableFunctions);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Security;

use Exakat\Analyzer\Analyzer;

class MoveUploadedFile extends Analyzer {
    public function analyze() {
        // copy($var['tmp_name'], $dest)
        $this->atomFunctionIs(array('\\copy', '\\rename'))
             ->outWithRank('ARGUMENT', 0)
             ->atomInside('String')
             ->noDelimiterIs('tmp_name')
             ->back('first');
        $this->prepareQuery();

        // copy($var['tmp_name'], $dest)
        $this->atomFunctionIs(array('\\copy', '\\rename'))
             ->analyzerIsNot('self')
             ->outWithRank('ARGUMENT', 0)
             ->atomInside('Phpvariable')
             ->codeIs('$_FILES')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Security;

use Exakat\Analyzer\Analyzer;

class ConfigureExtract extends Analyzer {
    public function analyze() {
        // extract($a)
        $this->atomFunctionIs('\extract')
             ->noChildWithRank('ARGUMENT', 1);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Security;

use Exakat\Analyzer\Analyzer;
use Exakat\Analyzer\Php\HashAlgos;

class AvoidThoseCrypto extends Analyzer {
    public function analyze() {
        // in hashing functions
        $this->atomFunctionIs(HashAlgos::$functions)
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String')
             ->hasNoOut('CONCAT')
             ->noDelimiterIs(array('md2', 'md4', 'md5', 'crc32', 'crc32b', 'sha0', 'sha1'));
        $this->prepareQuery();

        // in hashing functions
        $this->atomFunctionIs(array('\\crypt',
                                    '\\md5',
                                    '\\md5_file',
                                    '\\sha1_file',
                                    '\\sha1',
                                    '\\crc32',
                                    ));
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Security;

use Exakat\Analyzer\Analyzer;

class SensitiveArgument extends Analyzer {
    public function analyze() {
        $unsafe = $this->loadIni('security_vulnerable_functions.ini');

        foreach($unsafe as $position => $functions) {
            $functions = makeFullNsPath($functions);

            $position = (int) str_replace('functions', '', $position);

            // $_GET/_POST ... directly as argument of PHP functions
            $this->atomFunctionIs($functions)
                 ->outWithRank('ARGUMENT', $position);
            $this->prepareQuery();
        }

        $this->atomIs(array('Echo', 'Print', 'Exit', 'Eval', 'Include'))
             ->followParAs('ARGUMENT');
        $this->prepareQuery();

        $this->atomIs('Shell')
             ->outIs('CONCAT')
             ->atomIsNot('String');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Security;

use Exakat\Analyzer\Analyzer;

class AnchorRegex extends Analyzer {
    public function analyze() {
        $pregFunctions = array('\\preg_match_all', '\\preg_match');

        $this->atomFunctionIs($pregFunctions)
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String')
             ->has('noDelimiter')
             ->raw('filter{ it.get().value("noDelimiter").toString().length() > 3; }')
             ->raw('filter{( it.get().value("noDelimiter").substring(1, 2) != "^") && 
                       ((it.get().value("noDelimiter") =~ "\\\\\\$.[a-zA-Z]*\\$").getCount() == 0); }')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
namespace Exakat\Analyzer\Security;

use Exakat\Analyzer\Analyzer;

class CurlOptions extends Analyzer {
    public function dependsOn(): array {
        return array('Constants/ConstantUsage');
    }
    public function analyze() {
        $options = array('\\curlopt_ssl_verifypeer', '\\curlopt_ssl_verifyhost');

        // Via curl_setopt
        $this->atomFunctionIs('\curl_setopt')
             ->outWithRank('ARGUMENT', 1)
             ->atomIs(self::CONSTANTS_ALL)
             ->fullnspathIs($options)
             ->inIs('ARGUMENT')
             ->outWithRank('ARGUMENT', 2)
             ->isNot('boolean', true)
             ->back('first');
        $this->prepareQuery();

        // Via curl_setopt_array (actually, any array with key => value that fit the options
        $this->atomIs('Arrayliteral')
             ->outIs('ARGUMENT')
             ->atomIs('Keyvalue')
             ->outIs('INDEX')
             ->atomIs(self::CONSTANTS_ALL)
             ->fullnspathIs($options)
             ->inIs('INDEX')
             ->outIs('VALUE')
             ->isNot('boolean', true)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
namespace Exakat\Analyzer\Security;

use Exakat\Analyzer\Analyzer;

class GPRAliases extends Analyzer {
    public function dependsOn(): array {
        return array('Modules/IncomingData',
                    );
    }

    public function analyze() {
        // Web variables
        $webVariables = $this->loadIni('php_web_variables.ini', 'variables');

        // $a = $_POST
        $this->atomIs('Assignation')
             ->codeIs('=')
             ->outIs('RIGHT')
             ->atomIs('Phpvariable')
             ->codeIs($webVariables)
             ->back('first')
             ->outIs('LEFT');
        $this->prepareQuery();

        // $a = $_POST['a']
        $this->atomIs('Assignation')
             ->codeIs('=')
             ->outIs('RIGHT')
             ->atomIs('Array')
             ->outIsIE('VARIABLE')
             ->atomIs('Phpvariable')
             ->codeIs($webVariables)
             ->back('first')
             ->outIs('LEFT');
        $this->prepareQuery();

        // Module variables
        // $a = Input::get('a')
        $this->atomIs('Assignation')
             ->codeIs('=')
             ->outIs('RIGHT')
             ->analyzerIs('Modules/IncomingData')
             ->back('first')
             ->outIs('LEFT');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Security;

use Exakat\Analyzer\Analyzer;

class NoEntIgnore extends Analyzer {
    public function analyze() {
        // Just don't use this one
        $this->atomIs(array('Identifier', 'Nsname'))
             ->fullnspathIs('\\ENT_IGNORE', self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Security;

use Exakat\Analyzer\Analyzer;

class DontEchoError extends Analyzer {
    public function analyze() {
        // echo mysql_error();
        $errorMessageFunctions = $this->loadIni('errorMessageFunctions.ini', 'functions');
        $errorMessageFunctions = makeFullNsPath($errorMessageFunctions);

        $displayFunctions = $this->loadIni('displayFunctions.ini', 'functions');
        $displayFunctions = makeFullNsPath($displayFunctions);

        $this->atomFunctionIs($displayFunctions)
             ->outIs('ARGUMENT')
             ->atomIs('Functioncall')
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->outIs('NAME')
                             ->atomIs(array('Array', 'Variable', 'Member', 'Staticproperty', 'Methodcall', 'Staticmethodcall'))
                     )
             )
             ->has('fullnspath')
             ->fullnspathIs($errorMessageFunctions)
             ->back('first');
        $this->prepareQuery();

        $this->atomIs(array('Echo', 'Print', 'Exit'))
             ->outIs('ARGUMENT')
             ->outIsIE('CODE')
             ->atomIs('Functioncall')
             ->has('fullnspath')
             ->fullnspathIs($errorMessageFunctions)
             ->back('first');
        $this->prepareQuery();

        // echo 'error '.pg_error();
        $this->atomFunctionIs($displayFunctions)
             ->outIs('ARGUMENT')
             ->atomIs('Concatenation')
             ->outIs('CONCAT')
             ->atomIs('Functioncall')
             ->fullnspathIs($errorMessageFunctions)
             ->back('first');
        $this->prepareQuery();

        $this->atomIs(array('Echo', 'Print', 'Exit'))
             ->outIs('ARGUMENT')
             ->atomIs('Concatenation')
             ->outIs('CONCAT')
             ->atomIs('Functioncall')
             ->fullnspathIs($errorMessageFunctions)
             ->back('first');
        $this->prepareQuery();

        // try {} catch ($e) { echo $e->getMessage(); }
        $this->atomIs('Try')
             ->outIs('CATCH')
             ->outIs('VARIABLE')
             ->savePropertyAs('code', 'exception')
             ->inIs('VARIABLE')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Methodcall')
             ->outIs('OBJECT')
             ->samePropertyAs('code', 'exception')
             ->inIs('OBJECT')
             ->outIs('METHOD')
             ->codeIs(array('getMessage', 'getTraceAsString'), self::TRANSLATE, self::CASE_INSENSITIVE)
             ->inIs('METHOD')
             ->inIs('ARGUMENT')
             ->atomIs(array('Echo', 'Print', 'Exit', 'Functioncall'))
             ->has('fullnspath')
             ->fullnspathIs($displayFunctions);
        $this->prepareQuery();

        // try {} catch ($e) { echo $e.PHP_EOL; }
        $this->atomIs('Try')
             ->outIs('CATCH')
             ->outIs('VARIABLE')
             ->savePropertyAs('code', 'exception')
             ->inIs('VARIABLE')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition(array('Echo', 'Print', 'Exit', 'Functioncall'))
             ->has('fullnspath')
             ->as('results')
             ->atomIs(array('Echo', 'Print', 'Exit', 'Functioncall'))
             ->has('fullnspath')
             ->fullnspathIs($displayFunctions)
             ->outIs('ARGUMENT')
             ->outIsIE('CONCAT')
             ->atomIs('Variable')
             ->samePropertyAs('code', 'exception')
             ->back('results');
        $this->prepareQuery();

        // ini_set('display_error', 1)
        $this->atomFunctionIs('\\ini_set')
             ->outWithRank('ARGUMENT', 0)
             ->has('noDelimiter')
             ->noDelimiterIs('display_errors')
             ->back('first')
             ->outWithRank('ARGUMENT', 1)
             ->has('boolean')
             ->is('boolean', true)
             ->back('first');
        $this->prepareQuery();

    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Security;

use Exakat\Analyzer\Analyzer;

class NoNetForXmlLoad extends Analyzer {
    public function analyze() {
        $methods = array('loadXML', 'loadHTML', 'loadHTMLFile', 'load');

        // $dom->loadXml($uri); // No options, so default options
        $this->atomIs('Methodcall')
             ->outIs('OBJECT')
             ->atomIsNot('This')
             ->inIs('OBJECT')
             ->outIs('METHOD')
             ->codeIs($methods)
             ->hasChildWithRank('ARGUMENT', 0)
             ->noChildWithRank('ARGUMENT', 1)
             ->back('first');
        $this->prepareQuery();

        // $dom->loadXml($uri, LIBXML_NOENT)
        $this->atomIs('Methodcall')
             ->outIs('OBJECT')
             ->atomIsNot('This')
             ->inIs('OBJECT')
             ->outIs('METHOD')
             ->codeIs($methods)
             ->outWithRank('ARGUMENT', 1)
             ->atomIsNot(self::CONTAINERS)
             ->noAtomPropertyInside(self::CONSTANTS_ALL, 'fullnspath', '\LIBXML_NONET')
             ->back('first');
        $this->prepareQuery();

        // simplexml_load_string($uri); // No options, so default options
        $this->atomFunctionIs(array('\\simplexml_load_string', '\\simplexml_load_file'))
             ->noChildWithRank('ARGUMENT', 2)
             ->back('first');
        $this->prepareQuery();

        // $simplexml_load_string($string, LIBXML_NOENT)
        $this->atomFunctionIs(array('\\simplexml_load_string', '\\simplexml_load_file'))
             ->outWithRank('ARGUMENT', 2)
             ->atomIsNot(self::CONTAINERS)
             ->noAtomPropertyInside(self::CONSTANTS_ALL, 'fullnspath', '\LIBXML_NONET')
             ->back('first');
        $this->prepareQuery();

        // new simplexml($uri); // No options, so default options
        $this->atomIs('New')
             ->outIs('NEW')
             ->atomIs('Newcall')
             ->fullnspathIs('\\simplexml')
             ->noChildWithRank('ARGUMENT', 1)
             ->back('first');
        $this->prepareQuery();

        // $simplexml_load_string($string, LIBXML_NOENT)
        $this->atomIs('New')
             ->outIs('NEW')
             ->atomIs('Newcall')
             ->fullnspathIs(array('\\simplexml', '\SimpleXMLIterator'))
             ->outWithRank('ARGUMENT', 1)
             ->atomIsNot(self::CONTAINERS)
             ->noAtomPropertyInside(self::CONSTANTS_ALL, 'fullnspath', '\LIBXML_NONET')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Security;

use Exakat\Analyzer\Analyzer;

class CompareHash extends Analyzer {
    public function analyze() {
        // md5() == something
        $this->atomIs('Comparison')
             ->codeIs(array('==', '!='))
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs('Functioncall')
             ->codeIs(array('hash', 'md5', 'sha1', 'md5_file', 'sha1_file', 'crc32', 'crypt'))
             ->back('first');
        $this->prepareQuery();

        // if (hash())
        $this->atomIs('Ifthen')
             ->outIs('CONDITION')
             ->atomIs('Functioncall')
             ->codeIs(array('hash', 'md5', 'sha1', 'md5_file', 'sha1_file', 'crc32', 'crypt'))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Security;

use Exakat\Analyzer\Analyzer;

class SuperGlobalContagion extends Analyzer {
    public function analyze() {
        // $_get = $_GET;
        $this->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomIs('Phpvariable')
             ->back('first')
             ->outIs('LEFT')
             ->atomIs('Variable');
        $this->prepareQuery();

        // $_get = $_GET['3'];
        $this->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomIs('Array')
             ->outIs('VARIABLE')
             ->atomIs('Phpvariable')
             ->back('first')
             ->outIs('LEFT')
             ->as('result')
             ->atomIs('Variable')
             ->back('result');
        $this->prepareQuery();

        // $_get['3'] = $_GET
        $this->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomIs('Phpvariable')
             ->back('first')
             ->outIs('LEFT')
             ->as('result')
             ->atomIs('Array')
             ->outIs('VARIABLE')
             ->atomIs('Variablearray')
             ->back('result');
        $this->prepareQuery();

        // $_get['3'] = $_GET[1]
        $this->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomIs('Array')
             ->outIs('VARIABLE')
             ->atomIs('Phpvariable')
             ->back('first')
             ->outIs('LEFT')
             ->as('result')
             ->atomIs('Array')
             ->outIs('VARIABLE')
             ->atomIs('Variablearray')
             ->back('result');
        $this->prepareQuery();

        // propagation is not implemented yet.
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Security;

use Exakat\Analyzer\Analyzer;

class ShouldUseSessionRegenerateId extends Analyzer {
    public function dependsOn(): array {
        return array('Extensions/Extsession',
                    );
    }

    public function analyze() {
        // are there analysis?
        $this->analyzerIs('Extensions/Extsession')
             ->count();
        $sessions = $this->rawQuery()->toInt();

        // No session, no regenerateId
        if (empty($sessions)) {
            return ;
        }

        $this->atomFunctionis('\\session_regenerate_id')
             ->count();
        $regenerateid = $this->rawQuery()->toInt();

        if (!empty($regenerateid)) {
            return;
        }

        $this->atomIs('Project');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Security;

use Exakat\Analyzer\Analyzer;

class EncodedLetters extends Analyzer {
    public function analyze() {
        // space to z. Include upper/lower case, some classics punctuation.
        // dec : 32 to 122

        // hex : 20 to 7A
        $this->atomIs('String')
             ->hasNoOut('CONCAT')
             ->regexIs('noDelimiter', '\\\\\\\\u\\\\{0*([2-6][0-9a-fA-F]|7[0-9aA])\\\\}')
             ->back('first');
        $this->prepareQuery();

        // unicode codepoint : 20 to 7A
        $this->atomIs('String')
             ->hasNoOut('CONCAT')
             ->regexIs('noDelimiter', '\\\\\\\\x([2-6][0-9a-fA-F]|7[0-9aA])')
             ->back('first');
        $this->prepareQuery();

        // oct : 40 to 172
        $this->atomIs('String')
             ->hasNoOut('CONCAT')
             ->regexIs('noDelimiter', '\\\\\\\\([4-9][0-9]|1[0-6][0-9]|17[0-2])')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Security;

use Exakat\Analyzer\Analyzer;

class CantDisableClass extends Analyzer {
    public function analyze() {
        $disableClasses = $this->loadIni('disable_functions.ini', 'disable_classes');
        $disableClasses = makeFullNsPath($disableClasses);

        $this->atomIs(array('Identifier', 'Nsname', 'Newcall'))
             ->fullnspathIs($disableClasses);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Security;

use Exakat\Analyzer\Analyzer;

class MinusOneOnError extends Analyzer {
    public function analyze() {
        $functions = $this->loadIni('functions_minus_one.ini', 'functions');

        // if (openssl_verify()) {}
        $this->atomFunctionIs($functions)
             ->inIs('CONDITION')
             ->atomIs(array('Ifthen', 'Ternary', 'While', 'Dowhile'));
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class LocallyUsedProperty extends Analyzer {
    public function analyze() {
        // normal property
        // static property in an variable static::$c
        $this->atomIs(array('Class', 'Classanonymous'))
             ->savePropertyAs('id', 'citId')
             ->outIs('PPP')
             ->atomIs('Ppp')
             ->outIs('PPP')
             ->atomIs('Propertydefinition')
             ->as('ppp')
             ->outIs('DEFINITION')
             ->atomIs(array('Member', 'Staticproperty'))
             ->goToInstruction(array('Class', 'Classanonymous'))
             ->samePropertyAs('id', 'citId')
             ->back('ppp');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class NormalProperty extends Analyzer {
    public function analyze() {
        // class x { private $y; }
        $this->atomIs(array('Class', 'Trait'))
             ->outIs('PPP')
             ->atomIs('Ppp')
             ->isNot('static', true)
             ->outIs('PPP');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class AvoidUsing extends Analyzer {
    public function analyze() {
        $classes = $this->config->Classes_AvoidUsing;

        if (empty($classes)) {
            return ;
        }
        $classesPath = makeFullNsPath($classes);

        // class may be used in a class
        $this->atomIs('Class')
             ->fullnspathIs($classesPath);
        $this->prepareQuery();

        // class may be used in a new
        $this->atomIs('New')
             ->outIs('NEW')
             ->tokenIs(array('T_STRING', 'T_NS_SEPARATOR'))
             ->fullnspathIs($classesPath)
             ->back('first');
        $this->prepareQuery();

        // class may be used in a Staticmethodcall
        $this->atomIs(array('Staticmethodcall', 'Staticproperty', 'Staticconstant', 'Instanceof'))
             ->outIs('CLASS')
             ->fullnspathIs($classesPath)
             ->back('first');
        $this->prepareQuery();

        // class may be used in a typehint
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->outIs('TYPEHINT')
             ->fullnspathIs($classesPath)
             ->back('first');
        $this->prepareQuery();

        // class may be used in an extension
        $this->atomIs('Class')
             ->outIs(array('EXTENDS', 'IMPLEMENTS'))
             ->fullnspathIs($classesPath)
             ->back('first');
        $this->prepareQuery();

        // class may be used in an use
        $this->atomIs('Usenamespace')
             ->outIs('USE')
             ->fullnspathIs($classesPath)
             ->back('first');
        $this->prepareQuery();

        // class_alias is covered by string test just below
        // mentions in strings
        $this->atomIs('String')
             ->regexIs('noDelimiter', addslashes(implode('|', $classes)));
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class DependantAbstractClass extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/MakeClassConstantDefinition',
                     'Complete/SetClassMethodRemoteDefinition',
                    );
    }

    public function analyze() {
        // Case for $this->method()
        // Case for class::methodcall()
        $this->atomIs(self::CLASSES_ALL)
             ->analyzerIsNot('self')
             ->is('abstract', true)
             ->outIs('DEFINITION')
             ->atomIs(array('This', 'Self', 'Static', 'Nsname', 'Identifier'))
             ->inIs(array('OBJECT', 'CLASS'))
             ->atomIs(array('Methodcall', 'Staticmethodcall'))
             ->hasNoIn('DEFINITION')
             ->back('first');
        $this->prepareQuery();

        // Case for $this->$properties
        // Case for class::$properties
        $this->atomIs(self::CLASSES_ALL)
             ->analyzerIsNot('self')
             ->is('abstract', true)
             ->outIs('DEFINITION')
             ->atomIs(array('This', 'Self', 'Static', 'Nsname', 'Identifier'))
             ->inIs(array('OBJECT', 'CLASS'))
             ->atomIs(array('Member', 'Staticproperty'))
             ->isNotPropertyDefined()
             ->back('first');
        $this->prepareQuery();

        // Case for class::constant
        // statics will be solved at excution time, but is set to the trait statically
        $this->atomIs(self::CLASSES_ALL)
             ->analyzerIsNot('self')
             ->is('abstract', true)
             ->savePropertyAs('fullnspath', 'fnp')
             ->outIs('DEFINITION')
             ->atomIs(array('This', 'Self', 'Static', 'Nsname', 'Identifier'))
             ->inIs('CLASS')
             ->atomIs('Staticconstant')
             ->hasNoIn('DEFINITION')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class AccessPrivate extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/SetParentDefinition',
                     'Complete/MakeClassMethodDefinition',
                     'Complete/SolveTraitMethods',
                     'Complete/SetClassMethodRemoteDefinition',
                    );
    }

    public function analyze() {
        $hasPrivateMethodDefinition = 'where( __.out("METHOD").hasLabel("Method")
                                                .out("NAME").filter{it.get().value("code") == name}.in("NAME")
                                                .has("visibility", "private") )';
        $notHasPrivateMethodDefinition = 'not( where( __.out("METHOD").hasLabel("Method")
                                                        .out("NAME").filter{it.get().value("code") == name}.in("NAME")
                                                        .has("visibility", "private") ) 
                                             ) ';

        // methods
        // classname::method() direct class
        // classname::method() parent class through extension (not the direct class)
        $this->atomIs('Staticmethodcall')
             ->analyzerIsNot('self')
             ->outIs('METHOD')
             ->savePropertyAs('code', 'name')
             ->inIs('METHOD')
             ->outIs('CLASS')
             ->has('fullnspath')
             ->atomIsNot(self::RELATIVE_CLASS)
             ->isNotLocalClass()
             ->classDefinition()
             ->goToAllParents(self::INCLUDE_SELF)
             ->raw($hasPrivateMethodDefinition)
             ->back('first');
        $this->prepareQuery();

        // Case of parent::
        $this->atomIs('Staticmethodcall')
             ->analyzerIsNot('self')
             ->outIs('METHOD')
             ->outIs('NAME')
             ->tokenIs('T_STRING')
             ->savePropertyAs('code', 'name')
             ->back('first')
             ->outIs('CLASS')
             ->atomIs('Parent')
             ->isNotLocalClass()
             ->goToClass()
             ->goToAllParents(self::EXCLUDE_SELF)
             ->raw($hasPrivateMethodDefinition)
             ->back('first');
        $this->prepareQuery();

        // self / static::method() in parent class
        // static : the class which is called
        // self   : the class where the definition is
        $this->atomIs('Staticmethodcall')
             ->analyzerIsNot('self')
             ->outIs('METHOD')
             ->outIs('NAME')
             ->tokenIs('T_STRING')
             ->savePropertyAs('code', 'name')
             ->back('first')
             ->outIs('CLASS')
             ->atomIs(array('Self', 'Static'))
             ->has('fullnspath')
             ->goToClass()
             // no local method
             ->raw($notHasPrivateMethodDefinition)
             ->goToAllParents(self::EXCLUDE_SELF)
             ->raw($hasPrivateMethodDefinition)
             ->back('first');
        $this->prepareQuery();

        // parent::$p
        $this->atomIs('Staticproperty')
             ->analyzerIsNot('self')
             ->outIs('MEMBER')
             ->savePropertyAs('code', 'name')
             ->inIs('MEMBER')
             ->outIs('CLASS')
             ->atomis('Parent')

             ->inIs('CLASS')

             ->inIs('DEFINITION')
             ->inIs('PPP')
             ->is('visibility', 'private')

             ->back('first');
        $this->prepareQuery();

        // properties
        // className::$property direct call
        // C::$property
        $this->atomIs('Staticproperty')
             ->analyzerIsNot('self')
             ->outIs('MEMBER')
             ->savePropertyAs('code', 'name')
             ->inIs('MEMBER')
             ->outIs('CLASS')
             ->atomIs(self::STATIC_NAMES)
             ->isNotLocalClass()
             ->inIs('CLASS')

             ->inIs('DEFINITION')
             ->inIs('PPP')
             ->is('visibility', 'private')
             ->back('first');
        $this->prepareQuery();

        // $this->method()
        $this->atomIs('Methodcall')
             ->analyzerIsNot('self')
             ->goToClass()
             ->savePropertyAs('fullnspath', 'fnp')
             ->back('first')
             ->inIs('DEFINITION')
             ->is('visibility', 'private')
             ->inIs('METHOD')
             ->notSamePropertyAs('fullnspath', 'fnp')
             ->back('first');
        $this->prepareQuery();

    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class IsInterfaceMethod extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/OverwrittenMethods',
                    );
    }

    public function analyze() {
        // interface extended in the local class
        $this->atomIs(self::FUNCTIONS_METHOD)
             ->analyzerIsNot('self')
             ->outIs('OVERWRITE')
             ->inIs(array('METHOD', 'MAGICMETHOD'))
             ->atomIs('Interface')
             ->back('first');
        $this->prepareQuery();

        // PHP or extension defined interface
        $interfaces = $this->loadJson('php_interfaces_methods.json', 'interface');

        foreach($interfaces as $interface => $methods) {
            if (empty($methods)) {
                // may be the case for Traversable : interface without methods
                continue;
            }
            $methodNames = array_column($methods, 'name');

            // interface locally implemented
            $this->atomIs(self::FUNCTIONS_METHOD)
                 ->analyzerIsNot('self')
                 ->outIs('NAME')
                 ->codeIs($methodNames, self::TRANSLATE, self::CASE_INSENSITIVE)
                 ->inIs('NAME')
                 ->inIs('METHOD')
                 ->atomIs('Class')
                 ->goToAllImplements(self::INCLUDE_SELF)
                 ->outIs('IMPLEMENTS')
                 ->fullnspathIs($interface)
                 ->back('first');
            $this->prepareQuery();
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class MakeDefault extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/CreateDefaultValues',
                    );
    }

    public function analyze() {
        // class x { private $y; }
        $this->atomIs(self::CLASSES_ALL)
             ->outIs('MAGICMETHOD')
             ->atomIs('Magicmethod')
             ->outIs('NAME')
             ->codeIs('__construct')
             ->inIs('NAME')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Assignation')
             ->as('assignation')
             ->codeIs('=')
             ->outIs('RIGHT')
             ->is('constant', true)
             ->inIs('DEFAULT')
             ->atomIs('Propertydefinition')
             ->not(
                $this->side()
                     ->outIs('DEFAULT')
                     ->hasNoIn('RIGHT')
             )
             ->back('assignation')
             ->outIs('LEFT');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class MutualExtension extends Analyzer {
    public function analyze() {
        // A -> B
        $this->atomIs('Class')
             ->savePropertyAs('fullnspath', 'fnp')
             ->outIs('EXTENDS')
             ->classDefinition()
             ->outIs('EXTENDS')
             ->classDefinition()
             ->samePropertyAs('fullnspath', 'fnp')
             ->back('first');
        $this->prepareQuery();

        // A -> B -> C (2 levels)
        $this->atomIs('Class')
             ->savePropertyAs('fullnspath', 'fnp')
             ->outIs('EXTENDS')
             ->classDefinition()
             ->outIs('EXTENDS')
             ->classDefinition()
             ->outIs('EXTENDS')
             ->classDefinition()
             ->samePropertyAs('fullnspath', 'fnp')
             ->back('first');
        $this->prepareQuery();

        // A -> B -> C (more  levels ? )
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class TooManyChildren extends Analyzer {
    protected $childrenClassCount = 15;

    public function analyze() {
        // class a with extends
        // default value : childrenCount = 15
        $this->atomIs('Class')
             ->filter(
                $this->side()
                     ->outIs('DEFINITION')
                     ->inIs('EXTENDS')
                     ->atomIs(self::CLASSES_ALL)
                     ->count()
                     ->raw('is(gte(' . $this->childrenClassCount . '))')
            );
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class NonStaticMethodsCalledStatic extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/SetClassMethodRemoteDefinition',
                     'Complete/SetArrayClassDefinition',
                    );
    }

    public function analyze() {
        // check outside the class : the first found class has not method
        // Here, we find methods that are in the grand parents, and not static.

        // Go to all parents class
        $this->atomIs('Staticmethodcall')
             ->outIs('CLASS')
             ->atomIsNot(array('Parent', 'Self', 'Static'))
             ->back('first')

             ->inIs('DEFINITION')
             ->isNot('static', true)
             ->back('first');
        $this->prepareQuery();

        // ['a', 'm']() ; class a { function m() {}}
        $this->atomIs('Functioncall')
             ->outIs('NAME')
             ->atomIs('Arrayliteral', self::WITH_CONSTANTS)
             ->outWithRank('ARGUMENT', 0)
             ->atomIs(array('Staticclass', 'String'), self::WITH_CONSTANTS)
             ->inIs('ARGUMENT')
             ->inIs('DEFINITION')
             ->atomIs(array('Method', 'Magicmethod'))
             ->isNot('static', true)
             ->back('first');
        $this->prepareQuery();

        // 'a::m'() ; class a { function m() {}}
        $this->atomIs('Functioncall')
             ->outIs('NAME')
             ->atomIs('String', self::WITH_CONSTANTS)
             ->inIs('DEFINITION')
             ->atomIs(array('Method', 'Magicmethod'))
             ->isNot('static', true)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class CloningUsage extends Analyzer {
    public function analyze() {
        $this->atomIs('Clone');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class NoPSSOutsideClass extends Analyzer {
    public function analyze() {
        // self::$property, outside trait or class
        $this->atomIs(array('Staticconstant', 'Staticmethodcall', 'Staticproperty'))
             ->hasNoClassTrait()
             ->outIs('CLASS')
             ->atomIs(self::RELATIVE_CLASS)
             ->back('first');
        $this->prepareQuery();

        // new self;
        $this->atomIs('New')
             ->hasNoClassTrait()
             ->outIs('NEW')
             ->codeIs(array('self', 'parent', 'static'))
             ->back('first');
        $this->prepareQuery();

        // $x instanceof self;
        $this->atomIs('Instanceof')
             ->hasNoClassTrait()
             ->outIs('CLASS')
             ->atomIs(self::RELATIVE_CLASS)
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('Arrayliteral')
             ->is('count', 2)
             ->hasNoClassTrait()
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String')
             ->noDelimiterIs(array('static', 'self', 'parent'))
             ->back('first');
        $this->prepareQuery();

        // typehint are checked by PHP for functions and closures
        $this->atomIs('Parent')
             ->inIs('TYPEHINT')
             ->inIs('ARGUMENT')
             ->atomIs(array('Method', 'Magicmethod'))
             ->as('results')
             ->inIs(array('METHOD', 'MAGICMETHOD'))
             ->atomIs('Class')
             ->hasNoOut('EXTENDS')
             ->back('results');
        $this->prepareQuery();

        $this->atomIs('Parent')
             ->inIs('RETURNTYPE')
             ->atomIs(array('Method', 'Magicmethod'))
             ->as('results')
             ->analyzerIsNot('self')
             ->inIs(array('METHOD', 'MAGICMETHOD'))
             ->atomIs('Class')
             ->hasNoOut('EXTENDS')
             ->back('results');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;
use Exakat\Query\DSL\IsVisible;

class IncompatibleSignature74 extends Analyzer {
    protected $phpVersion = '7.4+';

    public function dependsOn(): array {
        return array('Complete/OverwrittenMethods',
                    );
    }

    public function analyze() {
        // non-matching reference
        $this->atomIs(self::FUNCTIONS_METHOD)
             ->analyzerIsNot('self')
             ->isNot('visibility', 'private')
             ->outIs('ARGUMENT')
             ->savePropertyAs('rank', 'ranked')
             ->savePropertyAs('reference', 'ref')
             ->inIs('ARGUMENT')
             ->outIs('OVERWRITE')
             ->outIs('ARGUMENT')
             ->samePropertyAs('rank', 'ranked')
             ->notSamePropertyAs('reference', 'ref')
             ->back('first');
        $this->prepareQuery();

        // non-matching argument count :
        // abstract : exact count
        $this->atomIs(self::FUNCTIONS_METHOD)
             ->analyzerIsNot('self')
             ->savePropertyAs('count', 'counted')
             ->outIs('OVERWRITE')
             ->is('abstract', true) //then, it is not private
             ->notSamePropertyAs('count', 'counted')
             ->back('first');
        $this->prepareQuery();

        // non-matching argument count :
        // non-abstract : count may be more but not less
        $this->atomIs(self::FUNCTIONS_METHOD)
             ->analyzerIsNot('self')
             ->isNot('visibility', 'private')
             ->savePropertyAs('count', 'counted')
             ->outIs('OVERWRITE')
             ->isNot('abstract', true)
             ->isMore('count', 'counted')
             ->back('first');
        $this->prepareQuery();

        // non-matching typehint
        $this->atomIs(self::FUNCTIONS_METHOD)
             ->isNot('visibility', 'private')
             ->analyzerIsNot('self')
             ->outIs('ARGUMENT')
             ->savePropertyAs('rank', 'ranked')
             ->outIs('TYPEHINT')
             ->savePropertyAs('fullnspath', 'typehint')
             ->atomIsNot(array('Null', 'Void'))
             ->back('first')

             ->outIs('OVERWRITE')
             ->outWithRank('ARGUMENT', 'ranked')
             ->notSameTypehintAs('typehint')
             ->back('first');
        $this->prepareQuery();

        // non-matching return typehint
        $this->atomIs(self::FUNCTIONS_METHOD)
             ->analyzerIsNot('self')
             ->hasOut('OVERWRITE')
             ->savePropertyAs('id', 'method')
             ->isNot('visibility', 'private')
             ->not(
                $this->side()
                     ->outIs('RETURNTYPE')
                     ->inIs('DEFINITION')
                     ->atomIs(array('Class', 'Interface'))
                     ->goToAllImplements(self::INCLUDE_SELF)
                     ->outIs('DEFINITION')
                     ->inIs('RETURNTYPE')
                     ->atomIs(array('Method', 'Magicmethod'))
                     ->inIs('OVERWRITE')
                     ->atomIs(array('Method', 'Magicmethod'))
                     ->samePropertyAs('id', 'method')
             )
             ->not(
                $this->side()
                     ->outIs('RETURNTYPE')
                     ->hasNoIn('DEFINITION')
             )
             ->back('first')
             ->outIs('RETURNTYPE')
             ->savePropertyAs('fullnspath', 'typehint')
             ->back('first')

             ->outIs('OVERWRITE')
             ->outIs('RETURNTYPE')
             ->notSamePropertyAs('fullnspath', 'typehint')
             ->back('first');
        $this->prepareQuery();

        // non-matching nullable
        $this->atomIs(self::FUNCTIONS_METHOD)
             ->analyzerIsNot('self')
             ->isNot('visibility', 'private')
             ->outIs('ARGUMENT')
             ->savePropertyAs('rank', 'ranked')
             ->isNotNullable()
             ->back('first')

             ->outIs('OVERWRITE')
             ->outWithRank('ARGUMENT', 'ranked')
             ->isNullable()
             ->back('first');
        $this->prepareQuery();

        // non-matching return nullable
        $this->atomIs(self::FUNCTIONS_METHOD)
             ->analyzerIsNot('self')
             ->isNot('visibility', 'private')
             ->isNullable()
             ->back('first')

             ->outIs('OVERWRITE')
             ->isNotNullable()
             ->back('first');
        $this->prepareQuery();

        // non-matching visibility
        $this->atomIs(self::FUNCTIONS_METHOD)
             ->analyzerIsNot('self')
             ->savePropertyAs('visibility', 'v')
             ->outIs('OVERWRITE')
             ->isVisible('v', IsVisible::VISIBLE_ABOVE)
             ->notSamePropertyAs('visibility', 'v')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class DefinedProperty extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/OverwrittenProperties',
                    );
    }

    public function analyze() {
        // locally defined
        // defined in local class (private included)
        $this->atomIs('Member')
             ->inIs('DEFINITION')
             ->atomIs('Propertydefinition')
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('Member')
             ->analyzerIsNot('self')
             ->inIs('DEFINITION')
             ->atomIs('Virtualproperty')
             ->outIs('OVERWRITE')
             ->atomIs('Propertydefinition')
             ->not(
                $this->side()
                     ->inIs('PPP')
                     ->is('visibility', 'private')
                     ->inIs('PPP')
                     ->atomIs('Class')
             )
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class NoSelfReferencingConstant extends Analyzer {
    public function analyze() {
        // const c = self::b
        // const c = self::b + 1
        // const c = a::b
        // const c = a::b + 1
        $this->atomIs('Const')
             ->inIs('CONST')
             ->savePropertyAs('fullnspath', 'fqn')
             ->back('first')
             ->outIs('CONST')
             ->as('results')

             ->outIs('NAME')
             ->savePropertyAs('code', 'name')
             ->inIs('NAME')

             ->outIs('VALUE')
             ->atomInsideNoDefinition('Staticconstant')
             ->outIs('CLASS')
             ->samePropertyAs('fullnspath', 'fqn')
             ->inIs('CLASS')
             ->outIs('CONSTANT')
             ->samePropertyAs('code', 'name', self::CASE_SENSITIVE)

             ->back('results');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class DynamicPropertyCall extends Analyzer {
    public function analyze() {
        $this->atomIs('Member')
             ->outIs('MEMBER')
             ->tokenIsNot('T_STRING')
             ->back('first');
        $this->prepareQuery();

        // Classe::$$a
        $this->atomIs('Staticproperty')
             ->outIs('MEMBER')
             ->tokenIs('T_DOLLAR')
             ->back('first');
        $this->prepareQuery();

        // Classe::{$a}
        $this->atomIs('Staticproperty')
             ->outIs('MEMBER')
             ->atomIs('Block')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class CouldBePrivateConstante extends Analyzer {
    public function dependsOn(): array {
        return array('Classes/ConstantUsedBelow',
                    );
    }

    public function analyze() {
        // Searching for constants that are never used outside the definition class

        // global static constants : the one with no definition class : they are all ignored.
        $this->atomIs('Staticconstant')
             ->outIs('CLASS')
             ->hasNoParent(array('Class', 'Classanonymous', 'Interface'), array('DEFINITION'))
             ->inIs('CLASS')
             ->outIs('CONSTANT')
             ->atomIs('Name')
             ->values('code')
             ->unique();
        $publicUndefinedConstants = $this->rawQuery()
                                         ->toArray();

        // list of defined constants
        $this->atomIs('Staticconstant')
             ->outIs('CONSTANT')
             ->atomIs('Name')
             ->savePropertyAs('code', 'name')
             ->as('constante')
             ->back('first')

             ->outIs('CLASS')
             ->as('classe')
             ->has('fullnspath')
             ->savePropertyAs('fullnspath', 'fns')

             ->goToInstruction(array('Class', 'Classanonymous', 'File'))
             ->raw(<<<'GREMLIN'
filter{
    if (it.get().label() == 'File') {
        true;
    } else {   // in a class
        fns != it.get().value('fullnspath');
    }
}
GREMLIN
)
             ->select(array('classe'    => 'fullnspath',
                            'constante' => 'code'))
             ->unique();
        $publicConstants = $this->rawQuery()
                                ->toArray();

        $calls = array();
        foreach($publicConstants as $value) {
            array_collect_by($calls, $value['classe'], $value['constante']);
        }

        // global static constants : the one with no definition class : they are all ignored.
        $this->atomIs('Const')
             ->isNot('visibility', 'private')

             ->goToClass()
             ->fullnspathIs(array_keys($calls))
             ->savePropertyAs('fullnspath', 'fnp')
             ->back('first')

             ->outIs('CONST')
             ->analyzerIsNot('Classes/ConstantUsedBelow')
             ->as('results')
             ->outIs('NAME')
             ->codeIsNot($publicUndefinedConstants, self::NO_TRANSLATE, self::CASE_SENSITIVE)
             ->codeIsNot(array_keys($calls),        self::NO_TRANSLATE, self::CASE_SENSITIVE)
             ->isNotHash('code', $calls, 'fnp')
             ->back('results');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class ScalarOrObjectProperty extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/CreateDefaultValues',
                     'Complete/SetClassRemoteDefinitionWithReturnTypehint',
                    );
    }

    public function analyze() {
        // todo : extend to array  : warning : string-array syntax
        // Property defined as literal, used as object
        $this->atomIs(self::CLASSES_ALL)
             ->outIs('PPP')
             ->outIs('PPP')
             ->atomIs('Propertydefinition')
             ->as('results')
             ->analyzerIsNot('self')
             ->outIs('DEFAULT')
             ->atomIsNot(array('Void', 'Null'))
             ->isLiteral()
             ->inIs('DEFAULT')
             ->outIs('DEFINITION')
             ->inIs(array('OBJECT', 'CLASS')) // Good for methodcall and properties
             ->back('results');
        $this->prepareQuery();

        // Property defined as object, assigned as literal
        $this->atomIs(self::CLASSES_ALL)
             ->outIs('PPP')
             ->outIs('PPP')
             ->analyzerIsNot('self')
             ->as('results')

             ->outIs('DEFAULT')
             ->atomIs('New') // at least ONE default is a NEW
             ->inIs('DEFAULT')

             ->outIs('DEFAULT')
             ->hasIn('RIGHT')
             ->atomIs(self::LITERALS) // Another definition is a literal
             ->atomIsNot('Null')

             ->back('results');
        $this->prepareQuery();

        // Property with typehint, assigned as literal
        $this->atomIs(self::CLASSES_ALL)
             ->outIs('PPP')
             ->outIs('TYPEHINT')
             ->atomisNot('Void')
             ->fullnspathIsNot(array('\\int', '\\\float', '\\object', '\\boolean', '\\string', '\\array', '\\callable', '\\iterable', '\\void'))
             ->inIs('TYPEHINT')
             ->outIs('PPP')
             ->analyzerIsNot('self')
             ->as('results')

             ->outIs('DEFAULT')
             ->hasIn('RIGHT')
             ->atomIs(self::LITERALS) // Another definition is a literal
             ->atomIsNot('Null')

             ->back('results');
        $this->prepareQuery();

        // Property defined as object, assigned as literal (methodcall version)
        $this->atomIs(self::CLASSES_ALL)
             ->outIs('PPP')
             ->outIs('PPP')
             ->analyzerIsNot('self')
             ->as('results')

             ->outIs('DEFAULT')
             ->atomIs(array('Methodcall', 'Functioncall', 'Staticmethodcall'))
             ->inIs('DEFINITION')
             ->outIs('RETURNTYPE')
             ->atomIsNot('Void')
             ->fullnspathIsNot(array('\\int', '\\\float', '\\object', '\\boolean', '\\string', '\\array', '\\callable', '\\iterable', '\\void'))
             ->back('results')

             ->outIs('DEFAULT')
             ->atomIs(self::LITERALS) // Another definition is a literal
             ->atomIsNot('Null')

             ->back('results');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class WeakType extends Analyzer {
    public function analyze() {
        // if ($a !== null){    $a->method(); }
        $this->atomIs('Ifthen')
             ->outIs('CONDITION')
             ->atomIs('Comparison')
             ->codeIs(array('!=', '!=='))
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs('Null')
             ->inIs()
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs('Variable')
             ->savePropertyAs('code', 'variable')
             ->back('first')

             ->outIs('THEN')
             ->atomInsideNoDefinition(array('Variableobject', 'Variablearray'))
             ->samePropertyAs('code', 'variable')
             ->back('first');
        $this->prepareQuery();

        // if ($a === null) else {    $a->method(); }
        $this->atomIs('Ifthen')
             ->outIs('CONDITION')
             ->atomIs('Comparison')
             ->codeIs(array('==', '==='))
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs('Null')
             ->inIs()
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs('Variable')
             ->savePropertyAs('code', 'variable')
             ->back('first')

             ->outIs('ELSE')
             ->atomInsideNoDefinition(array('Variableobject', 'Variablearray'))
             ->samePropertyAs('code', 'variable')
             ->back('first');
        $this->prepareQuery();

        // if (!is_null($a)){    $a->method(); }
        $this->atomIs('Ifthen')
             ->outIs('CONDITION')
             ->atomIs('Not')
             ->outIs('NOT')
             ->functioncallIs('\is_null')
             ->outIs('ARGUMENT')
             ->atomIs('Variable')
             ->savePropertyAs('code', 'variable')
             ->back('first')

             ->outIs('THEN')
             ->atomInsideNoDefinition(array('Variableobject', 'Variablearray'))
             ->samePropertyAs('code', 'variable')
             ->back('first');
        $this->prepareQuery();

        // if (is_null($a)) else {    $a->method(); }
        $this->atomIs('Ifthen')
             ->outIs('CONDITION')
             ->functioncallIs('\is_null')
             ->outIs('ARGUMENT')
             ->atomIs('Variable')
             ->savePropertyAs('code', 'variable')
             ->back('first')

             ->outIs('ELSE')
             ->atomInsideNoDefinition(array('Variableobject', 'Variablearray'))
             ->samePropertyAs('code', 'variable')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class DynamicNew extends Analyzer {
    public function analyze() {
        // new $y->d();
        $this->atomIs('New')
             ->outIs('NEW')
             ->atomIs(array('Staticproperty', 'Member', 'Array'))
             ->back('first');
        $this->prepareQuery();

        // new $y();
        $this->atomIs('New')
             ->outIs('NEW')
             ->atomIs('Newcall')
             ->outIs('NAME')
             ->atomIs(array('Variable', 'Array'))
             ->back('first');
        $this->prepareQuery();

        // staticconstant is not possible
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class OverwrittenConst extends Analyzer {
    public function analyze() {
        $this->atomIs('Const')
             ->outIs('CONST')
             ->as('results')
             ->outIs('NAME')
             ->savePropertyAs('code', 'constante')
             ->goToClass()
             ->goToAllParents(self::EXCLUDE_SELF)
             ->outIs('CONST')
             ->atomIs('Const')
             ->outIs('CONST')
             ->outIs('NAME')
             ->samePropertyAs('code', 'constante')
             ->back('results');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class DefinedConstants extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/MakeClassConstantDefinition',
                     'Complete/OverwrittenConstants',
                     'Classes/IsExtClass',
                     'Composer/IsComposerNsname',
                    );
    }

    public function analyze() {
        // constants defined at the class level
        // constants defined at the parents level
        // This includes interfaces
        $this->atomIs('Staticconstant')
             ->hasIn('DEFINITION');
        $this->prepareQuery();

        // constants defined in a class of an extension
        $this->atomIs('Staticconstant')
             ->outIs('CLASS')
             ->analyzerIs('Classes/IsExtClass')
             ->back('first');
        $this->prepareQuery();

        // constants defined in a class of an vendor library
        $this->atomIs('Staticconstant')
             ->analyzerIs('Composer/IsComposerNsname');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class ShouldDeepClone extends Analyzer {
    public function analyze() {
        // Based on typehinting of functions.
        // Other options ?
        $this->atomIs('Clone')
             ->not(
                $this->side()
                     ->inIs('DEFINITION')
                     ->atomIs('Magicmethod')
                     ->outIs('NAME')
                     ->codeIs('__clone', self::TRANSLATE, self::CASE_INSENSITIVE)
             )
             ->outIs('CLONE')
             ->inIs('DEFINITION')
             ->inIs('NAME')
             ->outIs('TYPEHINT')
             ->inIs('DEFINITION')
             ->filter(
                $this->side()
                     ->outIs('PPP')
                     ->outIs('PPP')
                     ->atomIs('Propertydefinition')
                     ->outIs('DEFINITION')
                     ->inIs('OBJECT')
                     ->atomIs(array('Member', 'Methodcall'))
             )
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class UnresolvedInstanceof extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/SetClassAliasDefinition',
                     'Classes/IsExtClass',
                     'Interfaces/IsExtInterface',
                    );
    }

    public function analyze() {
        $classes = $this->loadIni('php_classes.ini', 'classes');
        $classes = makeFullNsPath($classes);

        $interfaces = $this->loadIni('php_interfaces.ini', 'interfaces');
        $interfaces = makeFullNsPath($interfaces);

        //general case
        // traits are omitted here
        $this->atomIs('Instanceof')
             ->outIs('CLASS')
             ->tokenIs(array('T_STRING', 'T_NS_SEPARATOR'))
             ->atomIsNot(array('Array', 'Boolean', 'Null', 'Self', 'Static', 'Parent'))
             ->noClassDefinition()
             ->noInterfaceDefinition()
             ->analyzerIsNot('Classes/IsExtClass')
             ->analyzerIsNot('Interfaces/IsExtInterface')
             ->fullnspathIsNot(array_merge($classes, $interfaces))
             ->back('first');
        $this->prepareQuery();

        // self and static always work

        // special case for parents
        $this->atomIs('Instanceof')
             ->outIs('CLASS')
             ->tokenIs('T_STRING')
             ->atomIs('Parent')
             ->goToClass()
             ->hasNoOut('EXTENDS')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class PssWithoutClass extends Analyzer {
    public function analyze() {
        // unresolved new pss()
        $this->atomIs('New')
             ->outIs('NEW')
             ->codeIs(array('self', 'static', 'parent'), self::TRANSLATE, self::CASE_INSENSITIVE)
             ->hasNoClassInterfaceTrait()
             ->back('first');
        $this->prepareQuery();

        // unresolved pss::$property
        $this->atomIs('Staticproperty')
             ->outIs('CLASS')
             ->atomIs(self::RELATIVE_CLASS)
             ->hasNoClassInterfaceTrait()
             ->back('first');
        $this->prepareQuery();

        // unresolved pss::method
        $this->atomIs('Staticmethodcall')
             ->outIs('CLASS')
             ->atomIs(self::RELATIVE_CLASS)
             ->hasNoClassInterfaceTrait()
             ->back('first');
        $this->prepareQuery();

        // unresolved pss::constant
        $this->atomIs('Staticconstant')
             ->outIs('CLASS')
             ->atomIs(self::RELATIVE_CLASS)
             ->hasNoClassInterfaceTrait()
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class TooManyFinds extends Analyzer {
    public function analyze() {
        // class x { function findY() {}}
        $this->atomIs(self::CIT)
             ->filter(
                $this->side()
                     ->outIs('METHOD')
                     ->atomIs('Method')
                     ->outIs('NAME')
                     ->regexIs('fullcode', '^find.+?')
                     ->count()
                     ->raw('is(gt(5))')
             );
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class ShouldUseSelf extends Analyzer {

    public function analyze() {
        // full nsname\classname instead of self
        $this->atomIs('Staticconstant')
             ->hasClass()
             ->outIs('CLASS')
             ->atomIs(self::STATIC_NAMES)
             ->atomIsNot(array('Parent', 'Self'))
             ->savePropertyAs('fullnspath', 'fns')
             ->goToClass()
             ->goToAllParents(self::INCLUDE_SELF)
             ->samePropertyAs('fullnspath', 'fns')
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('Staticproperty')
             ->hasClass()
             ->outIs('CLASS')
             ->atomIs(self::STATIC_NAMES)
             ->savePropertyAs('fullnspath', 'fns')
             ->goToClass()
             ->goToAllParents(self::INCLUDE_SELF)
             ->samePropertyAs('fullnspath', 'fns')
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('Staticmethodcall')
             ->hasClass()
             ->outIs('CLASS')
             ->atomIs(self::STATIC_NAMES)
             ->savePropertyAs('fullnspath', 'fns')
             ->goToClass()
             ->goToAllParents(self::INCLUDE_SELF)
             ->samePropertyAs('fullnspath', 'fns')
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('Staticclass')
             ->hasClass()
             ->outIs('CLASS')
             ->atomIs(self::STATIC_NAMES)
             ->savePropertyAs('fullnspath', 'fns')
             ->goToClass()
             ->samePropertyAs('fullnspath', 'fns')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class MissingAbstractMethod extends Analyzer {
    public function analyze() {
        // abstract class x { abstract function foo() {}}
        // class y extends x { NO function foo() {}}
        $this->atomIs(self::CLASSES_ALL)
             ->goToAllParents(self::EXCLUDE_SELF)
             ->atomIs(self::CLASSES_ALL)
             ->is('abstract', true)
             ->outIs(self::CLASS_METHODS)
             ->as('results')
             ->is('abstract', true)
             ->outIs('NAME')
             ->savePropertyAs('lccode', 'name')

             ->back('first')
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->atomIs(self::CLASSES_ALL)
                             ->goToAllParentsTraits(self::INCLUDE_SELF)
                             ->outIs(self::CLASS_METHODS)
                             ->isNot('abstract', true)
                             ->outIs('NAME')
                             ->samePropertyAs('lccode', 'name', self::CASE_INSENSITIVE)
                     )
             )

             ->back('results');
        $this->prepareQuery();

        // trait x { abstract function foo() {}}
        // class y { use x;  NO function foo() {}}
        $this->atomIs(self::CLASSES_ALL)
             ->GoToAllParentsTraits(self::EXCLUDE_SELF)
             ->atomIs('Trait')
             ->outIs(self::CLASS_METHODS)
             ->as('results')
             ->is('abstract', true)
             ->outIs('NAME')
             ->savePropertyAs('lccode', 'name')

             ->back('first')
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->outIs(self::CLASS_METHODS)
                             ->outIs('NAME')
                             ->samePropertyAs('lccode', 'name', self::CASE_INSENSITIVE)
                     )
             )

             ->back('results');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class MakeGlobalAProperty extends Analyzer {
    public function analyze() {
        // class x { function y() {global $a;}}
        $this->atomIs('Class')
             ->outIs('METHOD')
             ->atomInsideNoDefinition('Global')
             ->as('results')
             ->goToFunction()
             ->outIs('NAME')
             ->codeIsNot('__construct')
             ->back('results');
        $this->prepareQuery();

        // class x { function y() {$GLOBALS['a']...;}}
        $this->atomIs('Class')
             ->outIs('METHOD')
             ->atomInsideNoDefinition('Array')
             ->outIs('VARIABLE')
             ->codeIs('$GLOBALS', self::TRANSLATE, self::CASE_SENSITIVE)
             ->inIs('VARIABLE')
             ->as('results')
             ->goToFunction()
             ->outIs('NAME')
             ->codeIsNot('__construct')
             ->back('results');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class AmbiguousVisibilities extends Analyzer {
    public function analyze() {
        // Properties with the same name, but with different visibility
        $query = <<<'GREMLIN'
g.V().hasLabel("Ppp")
     .as("visibility")
     .out("PPP")
     .as("ppp")
     .select("ppp", "visibility").by("code").by("visibility")
     .unique()
GREMLIN;
        $visibilities = $this->query($query)->toArray();

        $mixed = array();
        foreach($visibilities as $case) {
            $mixed[$case['ppp']][$case['visibility'] === 'none' ? 'public' : $case['visibility']] = 1;
        }
        $mixed = array_filter($mixed, function ($x) { return count($x) > 1;});
        $mixedProperty = array_keys($mixed);

        if (!empty($mixedProperty)){
            $this->atomIs('Propertydefinition')
                 ->codeIs($mixedProperty, self::NO_TRANSLATE, self::CASE_SENSITIVE);
            $this->prepareQuery();
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class CloneWithNonObject extends Analyzer {
    public function analyze() {
        // clone x
        $this->atomIs('Clone')
             ->outIs('CLONE')
             ->atomIsNot(array_merge(self::VARIABLES_ALL, array('New', 'This', 'Clone')))
             // can't return a scalar, a nullable, or anything untyped
             ->not(
                $this->side()
                     ->atomIs(self::CALLS)
                     ->inIs('DEFINITION')
                     ->isNotNullable()
                     ->outIs('RETURNTYPE')
                     ->atomIsNot(array('Void', 'Scalartypehint'))
             )
             ->not(
                $this->side()
                     ->atomIs(self::CALLS)
                     ->hasNoIn('DEFINITION')
             )
             ->not(
                $this->side()
                     ->atomIs(array('Member'))
                     ->inIs('DEFINITION')
                     ->outIs('DEFAULT')
                     ->atomIsNot(array('Null', 'New', 'Clone'))
             )
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class ParentFirst extends Analyzer {
    public function analyze() {
        // parent::__construct is not the first
        $this->atomIs('Magicmethod')
             ->outIs('NAME')
             ->codeIs('__construct')
             ->inIs('NAME')

             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Staticmethodcall')
             ->outIs('CLASS')
             ->codeIs('parent')
             ->inIs('CLASS')
             ->outIs('METHOD')
             ->codeIs('__construct')
             ->inIs('METHOD')

             ->isNot('rank', 0)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class ConstantDefinition extends Analyzer {

    public function analyze() {
        // Const in a function or an interface (but not a trait )
        $this->atomIs('Const')
             ->hasClassInterface()
             ->outIs('CONST')
             ->outIs('NAME');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class UnusedConstant extends Analyzer {

    public function dependsOn(): array {
        return array('Modules/CalledByModule',
                    );
    }

    public function analyze() {
        $this->atomIs('Const')
             ->hasIn('CONST')
             ->outIs('CONST')
             ->analyzerIsNot('Modules/CalledByModule')
             ->hasNoOut('DEFINITION');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class OnlyStaticMethods extends Analyzer {
    public function analyze() {
        // class x { static function foo() {} }
        $this->atomIs('Class')
             // Avoid empty classes
             ->hasOut(array('METHOD', 'PPP', 'USE', 'CONST'))
             //There are static methods
             ->filter(
                $this->side()
                     ->outIs('METHOD')
                     ->is('static', true)
             )
             //There are no non-static methods
             ->not(
                $this->side()
                     ->filter(
                           $this->side()
                                ->outIs('METHOD')
                                ->isNot('static', true)
                 )
            );
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class UnresolvedClasses extends Analyzer {
    public function dependsOn(): array {
        return array('Classes/IsExtClass',
                     'Composer/IsComposerNsname',
                     'Composer/IsComposerClass',
                     'Composer/IsComposerInterface',
                     );
    }

    public function analyze() {
        $classes = $this->loadIni('php_classes.ini', 'classes');
        $classes = makeFullNsPath($classes);

        $interfaces = $this->loadIni('php_interfaces.ini', 'interfaces');
        $interfaces = makeFullNsPath($interfaces);

        $traits = $this->loadIni('php_traits.ini', 'traits');
        $traits = makeFullNsPath($traits);

        $cit = array_values(array_merge($classes, $interfaces, $traits));

        $this->atomIs('New')
             ->outIs('NEW')
             ->atomIsNot(array('Self', 'Parent', 'Static'))
             ->noClassDefinition()
             ->analyzerIsNot('Classes/IsExtClass')
             ->analyzerIsNot('Composer/IsComposerNsname')
             ->analyzerIsNot('Composer/IsComposerInterface')
             ->analyzerIsNot('Composer/IsComposerClass')
             ->fullnspathIsNot($cit);
        $this->prepareQuery();

        $this->atomIs('Catch')
             ->outIs('CLASS')
             ->atomIsNot(array('Self', 'Parent', 'Static'))
             ->noClassDefinition()
             ->analyzerIsNot('Classes/IsExtClass')
             ->analyzerIsNot('Composer/IsComposerNsname')
             ->analyzerIsNot('Composer/IsComposerInterface')
             ->analyzerIsNot('Composer/IsComposerClass')
             ->fullnspathIsNot($cit);
        $this->prepareQuery();

        // also add property/constant/methods/catch/try/typehint
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class UnusedPrivateProperty extends Analyzer {
    public function dependsOn(): array {
        return array('Classes/UsedPrivateProperty',
                    );
    }

    public function analyze() {
        // class x { private $p; function foo() { $this->p2; }}
        $this->atomIs('Ppp')
             ->is('visibility', 'private')
             ->outIs('PPP')
             ->analyzerIsNot('Classes/UsedPrivateProperty');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class RedefinedProperty extends Analyzer {
    public function analyze() {
        // class x           { protected $p = 1; }
        // class y extends x { protected $p = 1; }
        $this->atomIs('Ppp')
             ->outIs('PPP')
             ->as('ppp')
             ->savePropertyAs('code', 'property')
             ->goToClass()
             ->goToAllParents(self::EXCLUDE_SELF)
             ->outIs('PPP')
             ->atomIs('Ppp')
             ->outIs('PPP')
             ->samePropertyAs('code', 'property')
             ->back('ppp');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class Finalclass extends Analyzer {

    public function analyze() {
        // final class x {}
        $this->atomIs('Class')
             ->is('final', true);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class Abstractclass extends Analyzer {
    public function analyze() {
        // abstract class x {}
        $this->atomIs('Class')
             ->is('abstract', true);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class CouldBeStatic extends Analyzer {
    public function analyze() {
        // class x { function foo() { return self::$a + 1; }}
        $this->atomIs('Method') // No Magic method
             ->isNot('static', true)
             ->isNot('abstract', true)
             ->outIs('BLOCK')
             ->noAtomInside('This') // works for property and methods
             ->not( // Empty method
                $this->side()
                     ->is('count', 1)
                     ->outIs('EXPRESSION')
                     ->atomIs('Void')
             )

             ->not( // one constant return
                $this->side()
                     ->is('count', 1)
                     ->outIs('EXPRESSION')
                     ->atomIs('Return')
                     ->is('constant', true)
             )
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class HasMagicProperty extends Analyzer {
    public function analyze() {
        $methods = $this->loadIni('php_magic_methods.ini', 'magicMethod');

        // Nsname that is not used somewhere else
        $this->atomIs(self::CLASSES_TRAITS)
             ->outIs('MAGICMETHOD')
             ->atomIs('Magicmethod')
             ->outIs('NAME')
             ->codeIs($methods, self::TRANSLATE, self::CASE_INSENSITIVE)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class TypehintCyclicDependencies extends Analyzer {
    public function analyze() {
        // 1rst level dependency
        $this->atomIs('Class')
             ->savePropertyAs('fullnspath', 'init')
             ->outIs(array('METHOD', 'MAGICMETHOD'))
             ->atomIs(array('Method', 'Magicmethod'))
             ->outIs('ARGUMENT')
             ->outIs('TYPEHINT')
             ->inIs('DEFINITION')
             ->notSamePropertyAs('fullnspath', 'init')
             ->outIs(array('METHOD', 'MAGICMETHOD'))
             ->atomIs(array('Method', 'Magicmethod'))
             ->outIs('ARGUMENT')
             ->outIs('TYPEHINT')
             ->inIs('DEFINITION')
             ->samePropertyAs('fullnspath', 'init');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class UsedProtectedMethod extends Analyzer {
    public function dependsOn(): array {
        return  array('Complete/SetParentDefinition',
                      'Complete/SetClassMethodRemoteDefinition',
                     );
    }

    public function analyze() {
        // method used in a static methodcall \a\b::b()
        // method used in a normal methodcall with $this $this->b()
        $this->atomIs(self::CLASSES_ALL)
             ->savePropertyAs('fullnspath', 'fnp')
             ->outIs(array('METHOD', 'MAGICMETHOD'))
             ->atomIs(array('Method', 'Magicmethod'))
             ->as('method')
             ->is('visibility', 'protected')
             ->hasOut('DEFINITION');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class WrongCase extends Analyzer {

    public function analyze() {
        // New
        $this->atomIs('New')
             ->outIs('NEW')
             ->outIsIE('NAME')
             ->atomIs(array('Nsname', 'Identifier', 'Newcallname', 'Newcall'))
             ->getClassName('classe')
             ->inIsIE('NAME')
             ->inIs('DEFINITION')
             ->outIs('NAME')
             ->notSamePropertyAs('fullcode', 'classe', self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();

// staticMethodcall
        $this->atomIs(array('Staticmethodcall', 'Staticproperty', 'Staticconstant', 'Staticclass'))
             ->outIs('CLASS')
             ->atomIs(array('Nsname', 'Identifier'))
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->outIs('DEFINITION')
                             ->atomIs(array('As', 'Nsname', 'Identifier'))
                     )
             )
             ->getClassName('classe')
             ->inIs('DEFINITION')
             ->atomIs(array('Class', 'Interface'))
             ->outIs('NAME')
             ->notSamePropertyAs('fullcode', 'classe', self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();

// Catch
        $this->atomIs('Catch')
             ->outIs('CLASS')
             ->atomIs(array('Nsname', 'Identifier'))
             ->getClassName('classe')
             ->inIs('DEFINITION')
             ->outIs('NAME')
             ->notSamePropertyAs('fullcode', 'classe', self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();

// Typehint
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->outIs('TYPEHINT')
             ->atomIsNot(self::RELATIVE_CLASS)
             ->getClassName('classe')
             ->inIs('DEFINITION')
             ->outIs('NAME')
             ->notSamePropertyAs('fullcode', 'classe', self::CASE_SENSITIVE)
             ->back('first')
             ->outIs('ARGUMENT');
        $this->prepareQuery();

// Return Typehint
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('RETURNTYPE')
             ->atomIsNot(self::RELATIVE_CLASS)
             ->getClassName('classe')
             ->inIs('DEFINITION')
             ->outIs('NAME')
             ->notSamePropertyAs('fullcode', 'classe', self::CASE_SENSITIVE)
             ->back('first')
             ->outIs('ARGUMENT');
        $this->prepareQuery();

// instance of
        $this->atomIs('Instanceof')
             ->outIs('CLASS')
             ->atomIs(array('Nsname', 'Identifier'))
             ->getClassName('classe')
             ->inIs('DEFINITION')
             ->outIs('NAME')
             ->notSamePropertyAs('fullcode', 'classe', self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();

// use
        $this->atomIs('Usenamespace')
             ->outIs('USE')
             ->outIsIE('NAME')
             ->getClassName('classe')
             ->inIs('DEFINITION')
             ->outIs('NAME')
             ->notSamePropertyAs('fullcode', 'classe', self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();
    }

    private function getClassName($name = 'classe') {
        $this->initVariable($name)
             ->raw(<<<GREMLIN
sideEffect{ 
    if (it.get().values('token') == "T_STRING") {
        $name = it.get().value('fullcode');
    } else { // it is a namespace
        $name = it.get().value('fullcode').tokenize('\\\\').last();
    }
}
GREMLIN
);
        return $this;
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class CouldBeProtectedConstant extends Analyzer {
    public function analyze() {
        // Searching for properties that are never used outside the definition class or its children

        // global static constants : the one with no definition class : they are all ignored.
        $this->atomIs('Staticconstant')
             ->hasNoIn('DEFINITION')
             ->outIs('CONSTANT')
             ->atomIs('Name')
             ->values('code')
             ->unique();
        $undefinedConstants = $this->rawQuery()->toArray();

        $this->atomIs('Staticconstant')
             ->hasNoClass()

             ->outIs('CLASS')
             ->has('fullnspath')
             ->as('classe')
             ->back('first')

             ->outIs('CONSTANT')
             ->atomIs('Name')
             ->as('constante')

             ->select(array('classe'    => 'fullnspath',
                            'constante' => 'code',
                            ))
             ->unique();
        $publicConstants = $this->rawQuery()->toArray();

        $calls = array();
        foreach($publicConstants as $value) {
            array_collect_by($calls, $value['classe'], $value['constante']);
        }

        // global static constants : the one with no definition class : they are all ignored.
        $this->atomIs('Const')
             ->is('visibility', array('none', 'public'))
             ->goToClass()
             ->fullnspathIs(array_keys($calls))
             ->savePropertyAs('fullnspath', 'fnq')
             ->back('first')

             ->outIs('CONST')
             ->as('results')
             ->outIs('NAME')
             ->codeIsNot($undefinedConstants, self::NO_TRANSLATE, self::CASE_SENSITIVE)
             ->isNotHash('code', $calls, 'fnq')
             ->back('results');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class AmbiguousStatic extends Analyzer {
    public function analyze() {
        // Methods with the same name, but with static or not.
        $this->atomIs('Method')
             ->is('static', true)
             ->outIs('NAME')
             ->values('lccode')
             ->unique();
        $staticMethod = $this->rawQuery()->toArray();

        // Global are unused if used only once
        $this->atomIs('Method')
             ->isNot('static', true)
             ->outIs('NAME')
             ->values('lccode')
             ->unique();
        $normalMethod = $this->rawQuery()->toArray();

        $mixedMethod = array_values(array_intersect($normalMethod, $staticMethod));

        if (!empty($mixedMethod)){
            $this->atomIs('Method')
                 ->outIs('NAME')
                 ->codeIs($mixedMethod, self::NO_TRANSLATE, self::CASE_INSENSITIVE)
                 ->back('first');
            $this->prepareQuery();
        }

        // Properties with the same name, but with static or not.
        // Just like methods, they are case-insensitive, because static $X and $x are still ambiguous
        $this->atomIs('Ppp')
             ->is('static', true)
             ->outIs('PPP')
             ->values('code')
             ->unique();
        $staticProperty = $this->rawQuery()->toArray();

        $this->atomIs('Ppp')
             ->isNot('static', true)
             ->outIs('PPP')
             ->values('code')
             ->unique();
        $normalProperty = $this->rawQuery()->toArray();

        $mixedProperty = array_values(array_intersect($normalProperty, $staticProperty));

        if (!empty($mixedProperty)){
            $this->atomIs('Propertydefinition')
                 ->codeIs($mixedProperty, self::NO_TRANSLATE, self::CASE_SENSITIVE)
                 ->inIs('PPP');
            $this->prepareQuery();
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Common\ClassUsage as CommonClassUsage;

class ClassUsage extends CommonClassUsage {

    public function analyze() {
        // Empty array to handle ALL classes
        $this->classes = array();

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class UndefinedStaticclass extends Analyzer {
    public function dependsOn(): array {
        return  array('Classes/IsExtClass',
                      'Composer/IsComposerNsname',
                      'Modules/DefinedClasses',
                      'Interfaces/IsExtInterface',
                     );
    }

    public function analyze() {
        //echo  undefinedClass::class
        $this->atomIs('Staticclass')
             ->outIs('CLASS')
             ->hasNoIn('DEFINITION')
             ->atomIs(array('Identifier', 'Nsname'))
             ->analyzerIsNot(array('Classes/IsExtClass',
                                   'Composer/IsComposerNsname',
                                   'Modules/DefinedClasses',
                                   'Interfaces/IsExtInterface',
                                  )
             )
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class SameNameAsFile extends Analyzer {
    public function analyze() {
        $this->atomIs(array('Interface', 'Class', 'Trait'))
             ->outIs('NAME')
             ->savePropertyAs('fullcode', 'classname')
             ->goToFile()
             // Is the clasname different from the filename (case insensitive)
             ->regexIsNot('fullcode', '(?i)" + classname + "\\\\.php\\$')
             ->back('first');
        $this->prepareQuery();

        $this->atomIs(array('Interface', 'Class', 'Trait'))
             ->outIs('NAME')
             ->savePropertyAs('fullcode', 'classname')
             ->goToFile()
             // Is the clasname also the filename (case insensitive)
             ->regexIs('fullcode', '(?i)" + classname + "\\\\.php\\$')
             // Is the clasname also the filename (case sensitive)
             ->regexIsNot('fullcode', '" + classname + "\\\\.php\\$')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class MultipleTraitOrInterface extends Analyzer {
    public function analyze() {
        // interfaces
        $this->atomIs('Class')
             ->raw(<<<'GREMLIN'
where( __.sideEffect{counts = [:]}
         .out("IMPLEMENTS")
         .sideEffect{ k = it.get().value("fullnspath"); 
                    if (counts[k] == null) {
                       counts[k] = 1;
                    } else {
                       counts[k]++;
                    }
         }.fold()
       )
       .sideEffect{ names = counts.findAll{ a,b -> b > 1}.keySet() }
       .out("IMPLEMENTS")
       .filter{ it.get().value("fullnspath") in names }
GREMLIN
)
             ->back('first');
             $this->prepareQuery();

        // traits
             $this->atomIs('Class')
             ->raw(<<<'GREMLIN'
where( __.sideEffect{counts = [:]}
         .out("USE").hasLabel("Usetrait").out("USE")
         .sideEffect{ k = it.get().value("fullnspath"); 
                    if (counts[k] == null) {
                       counts[k] = 1;
                    } else {
                       counts[k]++;
                    }
         }.fold()
       )
       .sideEffect{ names = counts.findAll{ a,b -> b > 1}.keySet() }
       .out("USE").hasLabel("Usetrait").out("USE")
       .filter{ it.get().value("fullnspath") in names }
GREMLIN
)
             ->back('first');
             $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class CouldBeClassConstant extends Analyzer {
    public function analyze() {
        // class x { private }
        $this->atomIs('Ppp')
             ->hasClass()

             ->isNot('visibility', array('private', 'protected'))

             ->outIs('PPP')
             ->atomIs('Propertydefinition')

             ->outIs('DEFAULT')
             ->hasNoParent('Assignation', array('ARGUMENT')) // exclude dynamic default
             ->atomIsNot(array('Null', 'Staticconstant'))
             ->inIs('DEFAULT')

             ->hasOut('DEFINITION')
             ->not(
                $this->side()
                     ->outIs('DEFINITION')
                     ->is('isModified', true)
             )
             ->back('first');

             // Exclude situations where property is used as an object or a resource (can't be class constant)
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class StaticProperties extends Analyzer {

    public function analyze() {
        // class x { static $y = 3;}
        $this->atomIs(self::CLASSES_TRAITS)
             ->outIs('PPP')
             ->atomIs('Ppp')
             ->is('static', true)
             ->as('ppp')
             ->outIs('PPP')
             ->atomIsNot('Virtualproperty')
             ->back('ppp');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class UnusedMethods extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/OverwrittenMethods',
                     'Classes/UsedMethods',
                     'Modules/CalledByModule',
                     'Classes/IsInterfaceMethod',
                     'Classes/DynamicSelfCalls',
                    );
    }

    public function analyze() {
        // Magicmethods are supposed to be used automatically
        // Could be checked for __clone, __get, __set...

        // Methods definitions in class
        $this->atomIs(self::FUNCTIONS_METHOD)
             ->isNot('abstract', true)

             // Skip methods that are overwriten. They are default behavior, expected to be replaced
             ->hasNoIn('OVERWRITE')

             // Skip traits
             ->hasClass()
             ->analyzerIsNot(array('Classes/UsedMethods',
                                   'Modules/CalledByModule',
                                ))
            // Checks if it is a PHP interface : it is an interface method, but has no definition as it is implicit
             ->not(
                $this->side()
                     ->analyzerIs('Classes/IsInterfaceMethod')
             )

             // Skip classes that do self dynamical calls : $this->$m()
             ->filter(
                $this->side()
                     ->goToClass()
                     ->analyzerIsNot('Classes/DynamicSelfCalls')
             );
        $this->prepareQuery();

        // Methods definitions in trait
        // Missing OVERWRITE
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class MethodIsOverwritten extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/OverwrittenMethods',
                    );
    }

    // class x { function a() {} }
    // class x2 extends x { function a() {} }
    public function analyze() {
        $this->atomIs(array('Method', 'Magicmethod'))
             ->hasOut('OVERWRITE')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class NoPublicAccess extends Analyzer {
    public function analyze() {

        $this->atomIs('Member')
             ->not(
                $this->side()
                     ->outIs('OBJECT')
                     ->atomIs('This')
             )
             ->outIs('MEMBER')
             ->atomIs('Name')
             ->values('code')
             ->unique();
        $properties = $this->rawQuery()->toArray();

        if(!empty($properties)) {
            $properties = array_values($properties);
            $this->atomIs('Ppp')
                 ->is('visibility', 'public')
                 ->isNot('static', true)
                 ->outIs('PPP')
                 ->as('ppp')
                 ->isNot('propertyname', $properties)
                 ->back('ppp');
            $this->prepareQuery();
        }

        $this->atomIs('Staticproperty')
             ->outIs('CLASS')
             ->atomIsNot(array('Self', 'Static'))
             ->savePropertyAs('fullnspath', 'fnp')
             ->inIs('CLASS')

             ->outIs('MEMBER')
             ->atomIs('Staticpropertyname')
             ->raw('map{ full = fnp + "::" + it.get().value("code"); }')
             ->unique();
        $staticproperties = $this->rawQuery()->toArray();

        if (!empty($staticproperties)) {
            $staticproperties = array_values($staticproperties);
            $this->atomIs('Ppp')
                 ->is('visibility', 'public')
                 ->is('static', true)
                 ->inIs('PPP')
                 ->savePropertyAs('fullnspath', 'fnp')
                 ->back('first')
                 ->outIs('PPP')
                 ->as('results')
                 ->raw('filter{ !(fnp + "::" + it.get().value("code") in ***) }', $staticproperties)
                 ->back('results');
            $this->prepareQuery();
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class CouldBeFinal extends Analyzer {
    // class x {}
    // no child extends x
    public function analyze() {
        $this->atomIs(self::CLASSES_ALL)
             ->isNot('final', true)
             ->isNot('abstract', true) // though, this is another problem
             ->not(
                $this->side()
                     ->outIs('DEFINITION')
                     ->inIs('EXTENDS')
             );
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class FinalByOcramius extends Analyzer {
    public function analyze() {
        $this->atomIs(self::CLASSES_ALL)
             ->hasNoOut('EXTENDS')
             ->isNot('final', true)
             ->raw('sideEffect{ interfaces = []; }')
             ->outIs('IMPLEMENTS')
             ->inIs('DEFINITION')
             ->atomIs('Interface')
             ->outIs(self::CLASS_METHODS)
             ->atomIs(self::FUNCTIONS_METHOD)
             ->outIs('NAME')
             ->raw('sideEffect{ interfaces.add( it.get().value("code")); }')
             ->back('first')
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->outIs(array('METHOD', 'MAGICMETHOD'))
                             ->atomis(self::FUNCTIONS_METHOD)
                             ->outIs('NAME')
                             ->raw('filter{ !(it.get().value("code") in interfaces)}')
                             ->inIs('NAME')
                             ->isNot('visibility', array('protected', 'private'))
                     )
             );
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class DynamicConstantCall extends Analyzer {
    public function analyze() {
        //constant("ThingIDs::$thing");
        // probably too weak. Needs to be completed with a check on variables built before
        $this->atomFunctionIs('\\constant')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String')
             ->regexIs('fullcode', '::')
             ->back('first');
        $this->prepareQuery();

        //$r = new ReflectionClass('ThingIDs');
        //$id = $r->getConstant($thing);
        // probably too weak. Needs to be completed with a check on ReflectionClass
        $this->atomIs('Methodcall')
             ->outIs('METHOD')
             ->codeIs('getConstant')
             ->back('first');
        $this->prepareQuery();



    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class ThisIsNotAnArray extends Analyzer {
    public function analyze() {
        // direct class
        $this->atomIs('This')
             ->inIs(array('VARIABLE', 'APPEND'))
             ->as('results')
             ->atomIs(array('Array', 'Arrayappend'))
             // class may be \ArrayAccess
             ->goToClass()
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->implementing(array('\arrayaccess'))
                     )
             )
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->atomIs(array('Class', 'Classanonymous'))
                             ->goToAllImplements(self::INCLUDE_SELF)
                             ->extending(array('\simplexmlelement',
                                               '\arrayobject',
                                              ))
                     )
             )

             ->back('results');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class PropertyCouldBeLocal extends Analyzer {
    public function analyze() {
        // normal property
        $this->atomIs('Propertydefinition')
             ->savePropertyAs('propertyname', 'member')
             ->inIs('PPP')
             ->isNot('static', true)
             ->is('visibility', 'private')
             ->inIs('PPP')
             ->atomIs(array('Class', 'Classanonymous', 'Trait'))
             ->filter(
                  $this->side()
                       ->outIs('METHOD')
                       ->isNot('static', true)
                       ->count()
                       ->raw('is(gt(1))')
             )
             ->filter(
                  $this->side()
                       ->outIs('METHOD')
                       ->isNot('static', true)
                       ->filter(
                            $this->side()
                                 ->outIs('BLOCK')
                                 ->atomInsideNoDefinition('Member')
                                 ->filter(
                                        $this->side()
                                             ->outIs('OBJECT')
                                             ->atomIs('This')
                                         )
                                 ->outIs('MEMBER')
                                 ->samePropertyAs('code', 'member')
                       )
                       ->count()
                       ->raw('is(eq(1))')
            )
            ->back('first');
        $this->prepareQuery();

        // static property
        $this->atomIs('Propertydefinition')
             ->savePropertyAs('code', 'member')
             ->inIs('PPP')
             ->is('static', true)
             ->is('visibility', 'private')
             ->inIs('PPP')
             ->savePropertyAs('fullnspath', 'fnp')

             ->filter(
                  $this->side()
                       ->outIs('METHOD')
                       ->count()
                       ->raw('is(gt(1))')
             )
             ->filter(
                $this->side()
                     ->outIs('METHOD')
                     ->filter(
                        $this->side()
                             ->atomInsideNoDefinition('Staticproperty')
                             ->outIs('CLASS')
                             ->has('fullnspath')
                             ->samePropertyAs('fullnspath', 'fnp')
                             ->inIs('CLASS')
                             ->outIs('MEMBER')
                             ->samePropertyAs('code', 'member')
                     )
                     ->count()
                     ->raw('is(eq(1))')
             )
            ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class UsedClass extends Analyzer {
    public function analyze() {

        $this->atomIs(self::CLASSES_ALL)
             ->analyzerIsNot('self')
             ->filter(
                $this->side()
                     ->outIs('DEFINITION')
                     ->not(
                        $this->side()
                             ->inIsIE('NAME')
                             ->inIs('USE')
                             ->atomIs('Usenamespace')
                    )
             );
        $this->prepareQuery();

        // class X; autoload('X::x')
        // link is build with the method, not the class
        $this->atomIs(self::CLASSES_ALL)
             ->analyzerIsNot('self')
              ->filter(
                $this->side()
                     ->outIs('METHOD')
                     ->outIs('DEFINITION')
                     ->atomIs('String')
             );
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class ShouldHaveDestructor extends Analyzer {
    public function analyze() {
        // class x { private $p = null; function foo() { $this->p->p = 2;}}
        $this->atomIs('Class')
             ->not(
                    $this->side()
                         ->filter( $this->side()
                                        ->outIs('MAGICMETHOD')
                                        ->outIs('NAME')
                                        ->codeIs('__destruct', self::TRANSLATE, self::CASE_INSENSITIVE)
                      )
             )
             ->outIs('PPP')
             ->as('results')
             ->outIs('PPP')
             ->outIs('DEFINITION')
             ->inIs('OBJECT')
             ->atomIs(array('Methodcall', 'Member'))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class UsedMethods extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/SetClassMethodRemoteDefinition',
                     'Complete/SetClassRemoteDefinitionWithLocalNew',
                     'Complete/SetClassRemoteDefinitionWithReturnTypehint',
                     'Complete/SetStringMethodDefinition',
                     'Complete/SetArrayClassDefinition',
                    );
    }

    public function analyze() {
        $this->atomIs(array('Method', 'Magicmethod'))
             ->outIs('DEFINITION')
             ->atomIs(array('Methodcall', 'Staticmethodcall', 'String', 'Arrayliteral'))
             ->back('first');
        $this->prepareQuery();

        // Private constructors
        $this->atomIs(self::CLASSES_ALL)
             ->savePropertyAs('fullnspath', 'fnp')
             ->outIs('MAGICMETHOD')
             ->atomIs('Magicmethod')
             ->analyzerIsNot('self')
             ->is('visibility', 'private')
             ->as('used')
             ->outIs('NAME')
             ->codeIs('__construct')
             ->back('first')
             ->outIs('METHOD')
             ->atomInsideNoDefinition('New')
             ->outIs('NEW')
             ->tokenIs(array('T_STRING', 'T_NS_SEPARATOR'))
             ->samePropertyAs('fullnspath', 'fnp')
             ->back('used');
        $this->prepareQuery();

        // Normal Constructors
        $this->atomIs(self::CLASSES_ALL)
             ->outIs('MAGICMETHOD')
             ->atomIs('Magicmethod')
             ->analyzerIsNot('self')
             ->isNot('visibility', 'private')
             ->as('used')
             ->outIs('NAME')
             ->codeIs('__construct')
             ->back('first')
             ->outIs('DEFINITION')
             ->hasIn('NEW')
             ->back('used');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class IsExtClass extends Analyzer {

    public function dependsOn(): array {
        return array('Classes/ClassUsage',
                    );
    }

    public function analyze() {
        $exts = $this->rulesets->listAllAnalyzer('Extensions');

        $c = array($this->loadIni('php_classes.ini', 'classes'));
        foreach($exts as $ext) {
            $inifile = str_replace('Extensions\Ext', '', $ext);
            $ini = $this->load($inifile, 'classes');

            if (!empty($ini[0])) {
                $c[] = $ini;
            }
        }

        $classes = array_merge(...$c);
        if (empty($classes)) {
            return;
        }

        $classes = makeFullNsPath($classes);
        $classes = array_keys(array_count_values($classes));

        $this->analyzerIs('Classes/ClassUsage')
             ->fullnspathIs($classes);
        $this->prepareQuery();

        $this->atomIs('Usenamespace')
             ->outIs('USE')
             ->fullnspathIs($classes);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class StaticContainsThis extends Analyzer {

    public function analyze() {
        // static function foo() { $this->a ;}
        $this->atomIs('Method')
             ->is('static', true)
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('This')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class EmptyClass extends Analyzer {
    public function dependsOn(): array {
        return array('Exceptions/DefinedExceptions',
                    );
    }

    public function analyze() {
        // class x { /* nothing */ }
        $this->atomIs('Class')
             ->hasNoOut(array('EXTENDS', 'USE'))
             ->analyzerIsNot('Exceptions/DefinedExceptions')
             ->hasNoOut(array('METHOD', 'MAGICMETHOD'));
        $this->prepareQuery();

        // class x extends B { /* nothing */ }
        $this->atomIs('Class')
             ->hasOut('EXTENDS')
             ->analyzerIsNot('Exceptions/DefinedExceptions')
             ->hasNoOut(self::CLASS_ELEMENTS);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class UsedPrivateProperty extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/OverwrittenProperties',
                    );
    }

    public function analyze() {
        // property used in a staticproperty \a\b::$b
        // a property must be read to be used.
        $this->atomIs(self::CLASSES_TRAITS)
             ->savePropertyAs('fullnspath', 'fqn')
             ->outIs('PPP')
             ->atomIs('Ppp')
             ->is('visibility', 'private')
             ->outIs('PPP')
             ->atomIs('Propertydefinition')
             ->as('ppp')
             ->outIs('DEFINITION')
             ->atomIs('Staticproperty')
             ->is('isRead', true)
             ->goToClassTrait(self::CLASSES_TRAITS)
             ->samePropertyAs('fullnspath', 'fqn')
             ->back('ppp');
        $this->prepareQuery();

        // property used in a normal propertycall with $this $this->b
        // a property must be read to be used.
        $this->atomIs(self::CLASSES_TRAITS)
             ->outIs('PPP')
             ->atomIs('Ppp')
             ->is('visibility', 'private')
             ->outIs('PPP')
             ->as('ppp')
             ->outIs('DEFINITION')
             ->atomIs('Member')
             ->is('isRead', true)
             ->outIs('OBJECT')
             ->isThis()
             ->inIs('OBJECT')
             ->back('ppp');
        $this->prepareQuery();

        // property used in a normal propertycall with $this $this->b, from a trait
        // a property must be read to be used.
        $this->atomIs(self::CLASSES_TRAITS)
             ->outIs('PPP')
             ->atomIs('Ppp')
             ->is('visibility', 'private')
             ->outIs('PPP')
             ->as('ppp')
             ->outIs('OVERWRITE')
             ->hasTrait()
             ->outIs('DEFINITION')
             ->atomIs('Member')
             ->is('isRead', true)
             ->outIs('OBJECT')
             ->isThis()
             ->inIs('OBJECT')
             ->back('ppp');
        $this->prepareQuery();
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class IncompatibleSignature extends Analyzer {
    protected $phpVersion = '7.4-';

    public function dependsOn(): array {
        return array('Complete/OverwrittenMethods',
                    );
    }

    public function analyze() {
        // non-matching reference
        $this->atomIs(self::FUNCTIONS_METHOD)
             ->isNot('visibility', 'private')
             ->hasOut('OVERWRITE')
             ->outIs('ARGUMENT')
             ->savePropertyAs('rank', 'ranked')
             ->savePropertyAs('reference', 'referenced')
             ->inIs('ARGUMENT')
             ->outIs('OVERWRITE')
             ->outWithRank('ARGUMENT', 'ranked')
             ->notSamePropertyAs('reference', 'referenced')
             ->back('first');
        $this->prepareQuery();

        // non-matching argument count :
        // abstract : exact count
        $this->atomIs(self::FUNCTIONS_METHOD)
             ->savePropertyAs('count', 'counted')
             ->outIs('OVERWRITE')
             ->is('abstract', true) //then, it is not private
             ->notSamePropertyAs('count', 'counted')
             ->back('first');
        $this->prepareQuery();

        // non-matching argument count :
        // non-abstract : count may be more but not less
        $this->atomIs(self::FUNCTIONS_METHOD)
             ->isNot('visibility', 'private')
             ->savePropertyAs('count', 'counted')
             ->outIs('OVERWRITE')
             ->isNot('abstract', true)
             ->isMore('count', 'counted')
             ->back('first');
        $this->prepareQuery();

        // non-matching typehint
        $this->atomIs(self::FUNCTIONS_METHOD)
             ->isNot('visibility', 'private')
             ->outIs('ARGUMENT')
             ->savePropertyAs('rank', 'ranked')
             ->outIs('TYPEHINT')
             ->savePropertyAs('fullnspath', 'typehint')
             ->inIs('TYPEHINT')
             ->inIs('ARGUMENT')
             ->outIs('OVERWRITE')
             ->outWithRank('ARGUMENT', 'ranked')
             ->outIs('TYPEHINT')
             ->notSamePropertyAs('fullnspath', 'typehint')
             ->back('first');
        $this->prepareQuery();

        // non-matching return typehint
        $this->atomIs(self::FUNCTIONS_METHOD)
             ->isNot('visibility', 'private')
             ->outIs('RETURNTYPE')
             ->savePropertyAs('fullnspath', 'typehint')
             ->inIs('RETURNTYPE')
             ->outIs('OVERWRITE')
             ->outIs('RETURNTYPE')
             ->notSamePropertyAs('fullnspath', 'typehint')
             ->back('first');
        $this->prepareQuery();

        // non-matching nullable
        $this->atomIs(self::FUNCTIONS_METHOD)
             ->isNot('visibility', 'private')
             ->outIs('ARGUMENT')
             ->savePropertyAs('rank', 'ranked')
             ->saveNullableAs('nullabled')
             ->inIs('ARGUMENT')
             ->outIs('OVERWRITE')
             ->outWithRank('ARGUMENT', 'ranked')
             ->saveNullableAs('nullabled2')
             ->raw('filter{nullabled != nullabled2; }')
             ->back('first');
        $this->prepareQuery();

        // non-matching return nullable
        $this->atomIs(self::FUNCTIONS_METHOD)
             ->isNot('visibility', 'private')
             ->saveNullableAs('nullabled')
             ->outIs('OVERWRITE')
             ->saveNullableAs('nullabled2')
             ->notEqual('nullabled', 'nullabled2')
             ->raw('filter{nullabled != nullabled2; }')
             ->back('first');
        $this->prepareQuery();

        // non-matching visibility
        $this->atomIs(self::FUNCTIONS_METHOD)
             ->savePropertyAs('visibility', 'v')
             ->outIs('OVERWRITE')
             ->raw(<<<'GREMLIN'
filter{ 
    if (it.get().properties("visibility").any()) { 
        if (v == "private") {
            it.get().value("visibility") in ["protected", "none", "public"];
        } else if (v == "protected") {
            it.get().value("visibility") in ["none", "public"];
        } else {
            false;
        }
    } else { 
        visibility != false; 
    }
}
GREMLIN
)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class ConstVisibilityUsage extends Analyzer {
    protected $phpVersion = '7.1+';

    public function analyze() {
        // class x { public const A = 1; }
        $this->atomIs(array('Class', 'Interface'))
             ->outIs('CONST')
             ->is('visibility', array('public', 'private', 'protected'));
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class UndefinedClasses extends Analyzer {
    public function dependsOn(): array {
        return  array('Complete/MakeClassMethodDefinition',
                      'Complete/SetClassAliasDefinition',
                      'Classes/IsExtClass',
                      'Composer/IsComposerNsname',
                      'Modules/DefinedClasses',
                      'Modules/DefinedInterfaces',
                      'Interfaces/IsExtInterface',
                     );
    }

    public function analyze() {
        $omitted = array('Classes/IsExtClass',
                         'Composer/IsComposerNsname',
                         'Modules/DefinedClasses',
                         'Modules/DefinedInterfaces',
                         );

        $omittedAll = $omitted;
        $omittedAll[] = 'Interfaces/IsExtInterface';

        // in a New
        $this->atomIs('New')
             ->outIs('NEW')
             ->analyzerIsNot($omitted)
             ->tokenIs(array('T_STRING', 'T_NS_SEPARATOR'))
             ->atomIsNot(self::RELATIVE_CLASS)
             ->noClassDefinition()
             ->isNotIgnored()
             ->back('first');
        $this->prepareQuery();

        // Methodcalls
        $this->atomIs('Staticmethodcall')
             ->outIs('CLASS')
             ->analyzerIsNot($omitted)
             ->tokenIs(array('T_STRING', 'T_NS_SEPARATOR'))
             ->atomIsNot(self::RELATIVE_CLASS)
             ->noClassDefinition()
             ->noInterfaceDefinition()
             ->noTraitDefinition()
             ->back('first');
        $this->prepareQuery();

        // Methodcalls, Staticproperties with Parent
        $this->atomIs(array('Staticmethodcall', 'Staticproperty', 'Staticconstant', 'Staticclass'))
             ->outIs('CLASS')
             ->atomIs('Parent')
             ->hasNoIn('DEFINITION')
             ->goToClass()
             ->outIs('EXTENDS')
             ->analyzerIsNot($omitted)
             ->back('first');
        $this->prepareQuery();

        // No extends
        $this->atomIs(array('Staticmethodcall', 'Staticproperty', 'Staticconstant', 'Staticclass'))
             ->outIs('CLASS')
             ->atomIs('Parent')
             ->hasNoIn('DEFINITION')
             ->goToClass()
             ->hasNoOut('EXTENDS')
             ->back('first');
        $this->prepareQuery();

        // in a class::$property
        $this->atomIs(array('Staticproperty', 'Staticclass'))
             ->outIs('CLASS')
             ->analyzerIsNot($omitted)
             ->tokenIs(array('T_STRING', 'T_NS_SEPARATOR'))
             ->atomIsNot(self::RELATIVE_CLASS)
             ->analyzerIsNot('Classes/IsExtClass')
             ->noClassDefinition()
             ->noInterfaceDefinition()
             ->noTraitDefinition()
             ->back('first');
        $this->prepareQuery();

        // in a class::constante
        $this->atomIs('Staticconstant')
             ->analyzerIsNot($omitted)
             ->outIs('CLASS')
             ->analyzerIsNot('Classes/IsExtClass')
             ->tokenIs(array('T_STRING', 'T_NS_SEPARATOR'))
             ->atomIsNot(self::RELATIVE_CLASS)
             ->noClassDefinition()
             ->noInterfaceDefinition()
             ->noTraitDefinition()
             ->back('first');
        $this->prepareQuery();

        // in a instanceof
        $this->atomIs('Instanceof')
             ->outIs('CLASS')
             ->analyzerIsNot($omittedAll)
             ->tokenIs(array('T_STRING', 'T_NS_SEPARATOR'))
             ->atomIsNot(self::RELATIVE_CLASS)
             ->noClassDefinition()
             ->noInterfaceDefinition()
             ->noTraitDefinition()
             ->back('first');
        $this->prepareQuery();

        // in a instanceof with parent
        $this->atomIs('Instanceof')
             ->outIs('CLASS')
             ->atomIs('Parent')
             ->hasNoIn('DEFINITION')
             ->not(
                $this->side()
                     ->goToClass()
                     ->outIs('EXTENDS')
                     ->analyzerIs($omitted)
             )
             ->back('first');
        $this->prepareQuery();

        // in a typehint f(someClass $c)
        $types = $this->loadIni('php_reserved_types.ini', 'type');
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->outIs('TYPEHINT')
             ->analyzerIsNot($omittedAll)
             ->atomIsNot(self::RELATIVE_CLASS)
             ->codeIsNot($types)
             ->noClassDefinition()
             ->noInterfaceDefinition()
             ->noTraitDefinition();
        $this->prepareQuery();

        // in a typehint f(parent $c)
        $this->atomIs(array('Method', 'Magicmethod'))
             ->outIs('ARGUMENT')
             ->outIs('TYPEHINT')
             ->atomIs('Parent')
             ->hasNoIn('DEFINITION')
             ->goToClass()
             ->outIs('EXTENDS')
             ->analyzerIsNot($omitted)
             ->back('first');
        $this->prepareQuery();

        $this->atomIs(array('Method', 'Magicmethod'))
             ->outIs('ARGUMENT')
             ->outIs('TYPEHINT')
             ->atomIs('Parent')
             ->hasNoIn('DEFINITION')
             ->goToClass()
             ->hasNoOut('EXTENDS')
             ->back('first');
        $this->prepareQuery();

        // in a property typehint class x (private someClass $c)
        $this->atomIs(self::CIT)
             ->outIs('PPP')
             ->outIs('TYPEHINT')
             ->analyzerIsNot($omittedAll)
             ->atomIsNot(array('Parent', 'Static', 'Self'))
             ->codeIsNot($types)
             ->noClassDefinition()
             ->noInterfaceDefinition()
             ->noTraitDefinition();
        $this->prepareQuery();

        // in a property typehint class x (private parent $c)
        $this->atomIs(self::CIT)
             ->outIs('PPP')
             ->outIs('TYPEHINT')
             ->atomIs('Parent')
             ->hasNoIn('DEFINITION')
             ->goToClass()
             ->outIs('EXTENDS')
             ->analyzerIsNot($omitted)
             ->back('first');
        $this->prepareQuery();

        $this->atomIs(self::CIT)
             ->outIs('PPP')
             ->outIs('TYPEHINT')
             ->atomIs('Parent')
             ->hasNoIn('DEFINITION')
             ->goToClass()
             ->hasNoOut('EXTENDS')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class MagicMethod extends Analyzer {
    public function analyze() {
        // class x { function __clone() {}}
        $this->atomIs('Magicmethod')
             ->outIs('NAME')
             ->codeIsNot(array('__construct', '__destruct'), self::TRANSLATE, self::CASE_INSENSITIVE)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class MagicProperties extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/CreateMagicProperty',
                    );
    }

    public function analyze() {
        // class x { function __get($name) {}; function foo() { echo $this->a;}}
        $this->atomIs('Member')
             ->inIs('DEFINITION')
             ->atomIs('Magicmethod')
             ->outIs('NAME')
             ->codeIs(array('__get', '__set', '__isset', '__unset'))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class DontSendThisInConstructor extends Analyzer {
    public function analyze() {
        // function __construct() { foo($this); }
        $this->atomIs('Magicmethod')
             ->outIs('NAME')
             ->codeIs('__construct')
             ->back('first')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('This')
             ->inIs('ARGUMENT')
             ->tokenIsNot('T_ARRAY') // array($this, 'method') is probably a callback.
             ->codeIsNot('get_class')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class ConstantUsedBelow extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/MakeClassConstantDefinition',
                    );
    }

    public function analyze() {
        //////////////////////////////////////////////////////////////////
        // constant + CLASS::constant (no check on class itself)
        //////////////////////////////////////////////////////////////////
        $this->atomIs('Class')
             ->savePropertyAs('fullnspath', 'classpath')
             ->outIs('CONST')
             ->outIs('CONST')
             ->as('results')
             ->outIs('NAME')
             ->savePropertyAs('code', 'constname')
             ->inIs('NAME')
             ->outIs('DEFINITION')
             ->goToClass()
             ->goToAllParents(self::EXCLUDE_SELF)
             ->samePropertyAs('fullnspath', 'classpath')
             ->back('results');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class StaticMethods extends Analyzer {

    public function analyze() {
        $this->atomIs(array('Class', 'Trait'))
             ->outIs('METHOD')
             ->atomIs('Method')
             ->as('function')
             ->is('static', true)
             ->back('function')
             ->outIs('NAME');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class PropertyUsedAbove extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/OverwrittenProperties',
                    );
    }

    public function analyze() {
        //////////////////////////////////////////////////////////////////
        // property + $this->property
        //////////////////////////////////////////////////////////////////
        $this->atomIs('Ppp')
             ->outIs('PPP')
             ->atomIs('Propertydefinition')
             ->filter(
                $this->side()
                     ->outIs('OVERWRITE')
                     ->outIs('DEFINITION')
             );
        $this->prepareQuery();

        // This could be also checking for fnp : it needs to be a 'family' class check.
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Common\MultipleDeclarations as CommonMultipleDeclarations;

class MultipleDeclarations extends CommonMultipleDeclarations {
    public function analyze() {
        $this->atom = 'Class';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class toStringPss extends Analyzer {
    protected $phpVersion = '5.4-';

    public function analyze() {
        $methods = $this->loadIni('php_magic_methods.ini', 'magicMethod');
        $methods = array_values(array_diff($methods, array('__construct', '__destruct')));
        foreach($methods as &$method) {
            $method = strtolower($method);
        }
        unset($method);

        $this->atomIs('Magicmethod')
             ->hasClass()
             ->outIs('NAME')
             ->codeIs($methods)
             ->inIs('NAME')
             ->is('static', true)
             ->back('first');
            $this->prepareQuery();

        $this->atomIs('Magicmethod')
             ->hasClass()
             ->outIs('NAME')
             ->codeIs($methods)
             ->inIs('NAME')
             ->is('visibility', array('private', 'protected'))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class AbstractOrImplements extends Analyzer {
    public function analyze() {
        // an abstract parent method is not in the current children
        $this->atomIs('Class')
             ->isNot('abstract', true)
             ->filter(
                $this->side()
                     ->initVariable('methods', '[]')
                     ->initVariable('abstract_methods', '[]')
                     ->goToAllParents(self::INCLUDE_SELF)
                     ->outIs(array('METHOD', 'MAGICMETHOD'))
                     ->raw(<<<'GREMLIN'
sideEffect{
    if (it.get().properties("abstract").any()) {
        abstract_methods.add(it.get().vertices(OUT, 'NAME').next().value("code"));
    } else {
        methods.add(it.get().vertices(OUT, 'NAME').next().value("code"));
    }
}.fold()
GREMLIN
)
             )
             ->raw('filter{missing = abstract_methods - methods; missing != [];}');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class UndefinedProperty extends Analyzer {
    public function dependsOn(): array {
        return array('Classes/DefinedProperty',
                     'Classes/HasMagicProperty',
                     'Modules/DefinedProperty',
                    );
    }

    public function analyze() {
        // only for calls internal to the class. External calls still needs some work
        $this->atomIs('Member')
             ->outIs('MEMBER')
             ->tokenIs('T_STRING')
             ->inIs('MEMBER')
             ->analyzerIsNot('Classes/DefinedProperty')
             ->outIs('OBJECT')
             ->atomIs('This')
             ->goToClass()
             ->analyzerIsNot('Classes/HasMagicProperty')
             ->back('first');
        $this->prepareQuery();

        // static properties without a definition
        $this->atomIs('Staticproperty')
             ->analyzerIsNot('Modules/DefinedProperty')
             ->hasNoIn('DEFINITION');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class IsNotFamily extends Analyzer {
    public function analyze() {
        // Staticmethodcall
        // Inside the class
        $this->atomIs('Staticmethodcall')
             ->hasClass()
             ->outIs('CLASS')
             ->atomIsNot(self::RELATIVE_CLASS)
             ->has('fullnspath')
             ->savePropertyAs('fullnspath', 'fnp')
             ->goToClass()
             ->atomIs('Class')

             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->atomIs('Class')
                             ->goToAllParents(self::INCLUDE_SELF)
                             ->fullnspathIs('fnp')
                     )
             )
             ->back('first');
        $this->prepareQuery();

        // Case of anonymous classes
        $this->atomIs('Staticmethodcall')
             ->hasClass()
             ->outIs('CLASS')
             ->atomIsNot(self::RELATIVE_CLASS)
             ->has('fullnspath')
             ->savePropertyAs('fullnspath', 'fnp')
             ->goToClass()
             ->atomIs('Classanonymous')
             ->back('first');
        $this->prepareQuery();

        // All non-in-class calls are OK
        $this->atomIs('Staticmethodcall')
             ->hasNoClassTrait();
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class MethodUsedBelow extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/CreateDefaultValues',
                     'Complete/SetClassMethodRemoteDefinition',
                     'Complete/PropagateCalls',
                    );
    }

    public function analyze() {
        //////////////////////////////////////////////////////////////////
        // method + $this->method
        //////////////////////////////////////////////////////////////////
        $this->atomIs('Class')
             ->savePropertyAs('fullnspath', 'theClass')
             ->outIs(array('METHOD', 'MAGICMETHOD'))
             ->atomIs(self::FUNCTIONS_METHOD)
             ->as('results')
             ->outIs('DEFINITION')
             ->atomIs(array('Methodcall', 'Staticmethodcall'))
             ->goToClass()
             ->goToAllParents(self::EXCLUDE_SELF)
             ->samePropertyAs('fullnspath', 'theClass')
             ->back('results');
        $this->prepareQuery();

        // This could be also checking for fnp : it needs to be a 'family' class check.
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class ImplementedMethodsArePublic extends Analyzer {
    public function analyze() {
        // interface i { function foo() {} }
        // class x implements i { private function foo() {} }
        $this->atomIs('Method')
             ->is('visibility', array('private', 'protected'))
             ->hasClass()
             ->outIs('NAME')
             ->savePropertyAs('lccode', 'name')
             ->goToClass()
             ->goToAllImplements(self::EXCLUDE_SELF)
             ->atomIs('Interface')
             ->outIs('METHOD')
             ->atomIs('Method')
             ->outIs('NAME')
             ->samePropertyAs('code', 'name', self::CASE_INSENSITIVE)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class LocallyUnusedProperty extends Analyzer {
    public function dependsOn(): array {
        return array('Classes/LocallyUsedProperty',
                     'Traits/LocallyUsedProperty',
                    );
    }

    public function analyze() {
        // class x { public $p = 1; function foo() { $this->pp = 2; }}
        $this->atomIs('Ppp')
             ->hasClassTrait()
             ->outIs('PPP')
             ->atomIs('Propertydefinition')
             ->as('ppp')
             ->analyzerIsNot(array('Traits/LocallyUsedProperty',
                                   'Classes/LocallyUsedProperty',
                                   )
                            )
             ->back('ppp');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class ConstantClass extends Analyzer {
    public function analyze() {
        // class x { const yx = 2;}
        $this->atomIs('Class')
             ->isNot('abstract', true)
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->outis(array('METHOD', 'MAGICMETHOD', 'PPP'))
                     )
             )
             ->hasOut('CONST');
        $this->prepareQuery();

        // interface x { const yx = 2;}
        $this->atomIs('Interface')
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->outis(array('METHOD', 'MAGICMETHOD', 'PPP'))
                     )
             )
             ->hasOut('CONST');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class RedefinedConstants extends Analyzer {
    public function analyze() {
        $this->atomIs('Class')
             ->outIs('CONST')
             ->atomIs('Const')
             ->outIs('CONST')
             ->as('results')
             ->outIs('NAME')
             ->savePropertyAs('code', 'constante')
             ->back('first')
             ->goToAllParents(self::EXCLUDE_SELF)
             ->outIs('CONST')
             ->atomIs('Const')
             ->outIs('CONST')
             ->outIs('NAME')
             ->samePropertyAs('code', 'constante', self::CASE_SENSITIVE)
             ->back('results');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class MethodSignatureMustBeCompatible extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/OverwrittenMethods',
                    );
    }

    public function analyze() {
        // class x { function m() ;}
        // class xx extends x { function m($a) ;}
        // argument name may be arbitrary; argment default too.
        // typehint and number of arguments must always be the same
        $this->atomIs('Method') // No need for magicmethods
             ->analyzerIsNot('self')
             ->savePropertyAs('count', 'signature')
             ->outIs('OVERWRITE')
             ->notSamePropertyAs('count', 'signature', self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();

        // Check if typehint is different between
        $this->atomIs('Method') // No need for magicmethods
             ->analyzerIsNot('self')
             ->savePropertyAs('count', 'signature')
             ->outIs('ARGUMENT')
             ->savePropertyAs('rank', 'ranked')
             ->outIs('TYPEHINT')
             ->savePropertyAs('fullnspath', 'typehint')
             ->back('first')
             ->outIs('OVERWRITE')
             ->samePropertyAs('count', 'signature', self::CASE_SENSITIVE)
             ->outWithRank('ARGUMENT', 'ranked')
             ->outIs('TYPEHINT')
             ->notSamePropertyAs('fullnspath', 'typehint')
             ->back('first');
        $this->prepareQuery();

        // Check if reference is the same between the versions
        $this->atomIs('Method') // No need for magicmethods
             ->analyzerIsNot('self')
             ->outIs('ARGUMENT')
             ->savePropertyAs('rank', 'ranked')
             ->savePropertyAs('reference', 'referenced')
             ->back('first')
             ->outIs('OVERWRITE')
             ->outWithRank('ARGUMENT', 'ranked')
             ->notSamePropertyAs('reference', 'referenced')
             ->back('first');
        $this->prepareQuery();

        // Check if variadic is the same between the versions
        $this->atomIs('Method') // No need for magicmethods
             ->analyzerIsNot('self')
             ->outIs('ARGUMENT')
             ->savePropertyAs('rank', 'ranked')
             ->savePropertyAs('variadic', 'variadiced')
             ->back('first')
             ->outIs('OVERWRITE')
             ->outWithRank('ARGUMENT', 'ranked')
             ->notSamePropertyAs('variadic', 'variadiced')
             ->back('first');
        $this->prepareQuery();

        // Check if return typehint is different between
        $this->atomIs('Method') // No need for magicmethods
             ->analyzerIsNot('self')
             ->outIs('RETURNTYPE')
             ->savePropertyAs('fullnspath', 'typehint')
             ->back('first')
             ->outIs('OVERWRITE')
             ->outIs('RETURNTYPE')
             ->notSamePropertyAs('fullnspath', 'typehint')
             ->back('first');
        $this->prepareQuery();

        // also checks for reference
        // also checks for ellipsis
    }
}

?>
<?php
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class CyclicReferences extends Analyzer {
    public function analyze() {
        // Detects short cycles of reference : $a->p->method($a) ($a -> p -> $a)
        // TODO : Detects longer cycles of reference : $a->p->method($a) ($a -> p -> $a)
        // TODO : Exclude cases where the value is not stored in the final object (no reference)

        // $this->p->method($this)
        $this->atomIs('This')
             ->inIs('OBJECT')
             ->atomIs('Member')
             ->inIs('OBJECT')
             ->atomIs('Methodcall')
             ->as('result')
             ->outIs('METHOD')
             ->outIs('ARGUMENT')
             ->atomIs('This')
             ->back('result');
        $this->prepareQuery();

        // $a->p->method($a)
        $this->atomIs('Variableobject')
             ->savePropertyAs('code', 'name')
             ->inIs('OBJECT')
             ->atomIs('Member')
             ->inIs('OBJECT')
             ->atomIs('Methodcall')
             ->as('result')
             ->outIs('METHOD')
             ->outIs('ARGUMENT')
             ->atomIs('Variable')
             ->samePropertyAs('code', 'name')
             ->back('result');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class InstantiatingAbstractClass extends Analyzer {
    public function analyze() {
        // abstract class x {}
        // new x();
        $this->atomIs('New')
             ->outIs('NEW')
             ->atomIs(array('Newcall', 'Identifier', 'Nsname'))
             ->classDefinition()
             ->is('abstract', true)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class OldStyleConstructor extends Analyzer {
    public function analyze() {
        // No mentionned namespaces
        $this->atomIs(array('Class', 'Classanonymous'))
             ->regexIs('fullnspath', '^\\\\\\\\[^\\\\\\\\]+\$')
             ->outIs('NAME')
             ->savePropertyAs('lccode', 'name')
             ->inIs('NAME')
             ->not(
                $this->side()
                     ->outIs('MAGICMETHOD')
                     ->outIs('NAME')
                     ->codeIs('__construct')
             )
             ->outIs('METHOD')
             ->atomIs('Method')
             ->outIs('NAME')
             ->samePropertyAs('lccode', 'name', self::CASE_INSENSITIVE)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class IsUpperFamily extends Analyzer {
    public function analyze() {
        // Staticmethodcall
        $this->atomIs('Staticmethodcall')
             ->outIs('CLASS')
             ->atomIs(array('Identifier', 'Nsname', 'Static', 'Self', 'Parent'))
             ->savePropertyAs('fullnspath', 'fnp')
             ->inIs('CLASS')
             ->outIs('METHOD')
             ->tokenIs('T_STRING') // Avoid dynamical names
             ->savePropertyAs('lccode', 'methode')

             ->goToClass()
             ->not(
                $this->side()
                     ->outIs('METHOD')
                     ->atomIs('Method')
                     ->outIs('NAME')
                     ->samePropertyAs('lccode', 'methode', self::CASE_INSENSITIVE)
             )
             ->goToAllParents(self::EXCLUDE_SELF)
             ->atomIs('Class')
             ->filter(
                $this->side()
                     ->outIs('METHOD')
                     ->atomIs('Method')
                     ->outIs('NAME')
                     ->samePropertyAs('code', 'methode', self::CASE_INSENSITIVE)
             )

             ->back('first');
        $this->prepareQuery();

        // Staticproperty
        $this->atomIs('Staticproperty')
             ->outIs('CLASS')
             ->atomIs(array('Identifier', 'Nsname', 'Static', 'Self', 'Parent'))
             ->savePropertyAs('fullnspath', 'fnp')
             ->inIs('CLASS')
             ->outIs('MEMBER')
             ->tokenIs('T_VARIABLE')
             ->savePropertyAs('code', 'property')

             ->goToClass()
             ->raw('not( where( __.out("PPP").hasLabel("Ppp").out("PPP").coalesce(__.out("NAME"), __.filter{true; }).filter{it.get().value("code") == property } ) )')

             ->goToAllParents(self::EXCLUDE_SELF)
             ->atomIsNot('Interface')
             ->raw('where( __.out("PPP").hasLabel("Ppp").out("PPP").coalesce(__.out("NAME"), __.filter{true; }).filter{it.get().value("code") == property }.count().is(neq(0)) )')

             ->back('first');
        $this->prepareQuery();

        // Staticconstant
        $this->atomIs('Staticconstant')
             ->outIs('CLASS')
             ->atomIs(array('Identifier', 'Nsname', 'Static', 'Self', 'Parent'))
             ->savePropertyAs('fullnspath', 'fnp')
             ->inIs('CLASS')
             ->outIs('CONSTANT')
             ->tokenIs('T_STRING')
             ->savePropertyAs('code', 'constante')

             ->goToClass()
             ->raw('not( where( __.out("CONST").hasLabel("Const").out("CONST").out("NAME").filter{it.get().value("code") == constante } ) )')

             ->goToAllParents(self::EXCLUDE_SELF)
             ->atomIsNot('Interface')
             ->raw('where( __.out("CONST").hasLabel("Const").out("CONST").out("NAME").filter{it.get().value("code") == constante }.count().is(neq(0)) )')

             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class DefinedParentMP extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/SetParentDefinition',
                     'Complete/MakeClassConstantDefinition',
                     'Complete/MakeClassMethodDefinition',
                     'Complete/OverwrittenProperties',
                     'Complete/OverwrittenConstants',
                     'Complete/OverwrittenMethods',
                     'Composer/IsComposerNsname',
                     'Classes/IsExtClass',
                    );
    }

    public function analyze() {
        // parent::methodcall()
        $this->atomIs('Parent')
             ->inIs('CLASS')
             ->atomIs('Staticmethodcall')
             ->as('results')
             ->inIs('DEFINITION')
             ->isNot('visibility', 'private')
             ->back('results');
        $this->prepareQuery();

        // parent::constant
        $this->atomIs('Parent')
             ->inIs('CLASS')
             ->atomIs('Staticconstant')
             ->as('results')
             ->inIs('DEFINITION')
             ->inIs('CONST') // just for constants
             ->isNot('visibility', 'private')
             ->back('results');
        $this->prepareQuery();

        // parent::$property
        $this->atomIs('Parent')
             ->inIs('CLASS')
             ->atomIs('Staticproperty')
             ->as('results')
             ->inIs('DEFINITION')
             ->inIs('PPP')
             ->isNot('visibility', 'private')
             ->back('results');
        $this->prepareQuery();

        $this->atomIs('Parent')
             ->inIs('CLASS')
             ->atomIs('Staticproperty')
             ->as('results')
             ->inIs('DEFINITION')
             ->inIs('PPP')
             ->atomIs('Virtualproperty')
             ->outIs('OVERWRITE')
             ->atomIs('Propertydefinition')
             ->inIs('PPP')
             ->isNot('visibility', 'private')
             ->back('results');
        $this->prepareQuery();

        // handle composer/extensions case
        $this->atomIs('Parent')
             ->inIs('CLASS') // Check it has ::
             ->analyzerIsNot('self')
             ->atomIsNot('Staticclass')
             ->goToClass()
             ->goToAllParents(self::INCLUDE_SELF)
             ->outIs('EXTENDS')
             ->analyzerIs(array('Composer/IsComposerNsname',
                                'Classes/IsExtClass',
                               ))
             ->back('first')
             ->inIs('CLASS');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class DirectCallToMagicMethod extends Analyzer {
    public function analyze() {
        $magicMethods = $this->loadIni('php_magic_methods.ini', 'magicMethod');

        $this->atomIs('Methodcallname')
             ->codeIs($magicMethods)
             ->inIs('METHOD')
             ->not(
                $this->side()
                     ->outIs('CLASS')
                     ->atomIs(self::RELATIVE_CLASS)
             );
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class TooManyDereferencing extends Analyzer {
    public $tooManyDereferencing = 7;

    public function analyze() {
        //$a->b->c()::d()->e::F (only -> and ::)
        $this->atomIs(array('Member', 'Staticproperty', 'Methodcall', 'Staticmethodcall', 'Staticconstant', 'Array', 'Append'))
             ->hasNoIn(array('CLASS', 'VARIABLE', 'APPEND', 'OBJECT'))
             ->processDereferencing( $this->tooManyDereferencing )
             ->inIsIE(array('CLASS', 'VARIABLE', 'APPEND', 'OBJECT'));
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class ThrowInDestruct extends Analyzer {
    public function analyze() {
        // class x { function __destruct() { throw new Exception(); }}
        $this->atomIs('Class')
             ->outIs('MAGICMETHOD')
             ->atomIs('Magicmethod')
             ->outIs('NAME')
             ->codeIs('__destruct')
             ->inIs('NAME')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Throw')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class TooManyInjections extends Analyzer {
    protected $injectionsCount = 5;

    public function dependsOn(): array {
        return array('Patterns/DependencyInjection',
                    );
    }

    public function analyze() {
        $this->atomIs(array('Method', 'Magicmethod'))
             ->filter(
                $this->side()
                     ->outIs('ARGUMENT')
                     ->analyzerIs('Patterns/DependencyInjection')
                     ->count()
                     ->raw('is(gte(' . $this->injectionsCount . '))')
             );
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class UninitedProperty extends Analyzer {
    public function analyze() {
        // class x { private $p; function __construct() { no $this->p = 1;}}
        $this->atomIs('Propertydefinition')
             ->analyzerIsNot('self')

             ->inIs('PPP')
             ->isNot('static', true)
             ->back('first')

             ->outIs('DEFAULT')
             ->atomIs(array('Null', 'Void'))
             ->hasNoIn('RIGHT')
             ->back('first')
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->outIs('DEFINITION')
                             ->inIs('LEFT')
                             ->atomIs('Assignation')
                             ->codeIs('=')
                             ->goToFunction()
                             ->atomIs('Magicmethod')
                             ->outIs('NAME')
                             ->codeIs('__construct')
                     )
             );
        $this->prepareQuery();

        $this->atomIs('Propertydefinition')
             ->analyzerIsNot('self')

             ->inIs('PPP')
             ->isNot('static', true)
             ->back('first')

             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->outIs('DEFAULT')
                             ->hasNoIn('RIGHT')
                     )
              )
             ->back('first')
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->outIs('DEFINITION')
                             ->inIs('LEFT')
                             ->atomIs('Assignation')
                             ->codeIs('=')
                             ->goToFunction()
                             ->atomIs('Magicmethod')
                             ->outIs('NAME')
                             ->codeIs('__construct')
                     )
             );
        $this->prepareQuery();

        // class x { private $p; function __construct() { no $this->p = 1;}}
        $this->atomIs('Propertydefinition')
             ->analyzerIsNot('self')

             ->inIs('PPP')
             ->isNot('static', true)
             ->back('first')

             ->inIs('PPP')
             ->outIs('TYPEHINT')
             ->atomIsNot(array('Null', 'Void'))
             ->fullnspathIsNot(array('\\int', '\\\float', '\\object', '\\boolean', '\\string', '\\array', '\\callable', '\\iterable', '\\void'))
             ->back('first')
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->outIs('DEFINITION')
                             ->inIs('LEFT')
                             ->atomIs('Assignation')
                             ->codeIs('=')
                             ->goToFunction()
                             ->atomIs('Magicmethod')
                             ->outIs('NAME')
                             ->codeIs('__construct')
                     )
             );
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class OrderOfDeclaration extends Analyzer {
    public function analyze() {
        // Use, const, properties and methods
        $this->atomIs('Class')
             ->outIs(array('USE', 'METHOD', 'CONST', 'PPP'))
             ->not(
                $this->side()
                     ->outIs('PPP')
                     ->atomIs('Virtualproperty')
             )
             ->savePropertyAs('rank', 'ranked')
             ->raw('sideEffect{ 
                if (it.get().label() == "Usetrait") {
                    ok = ["Use", "Const", "Ppp", "Method"];
                } else if (it.get().label() == "Const") {
                    ok = ["Const", "Ppp", "Method"];
                } else if (it.get().label() == "Ppp") {
                    ok = ["Ppp", "Method"];
                } else {
                    ok = ["Method"];
                }
              }')
             ->inIs(array('USE', 'METHOD', 'CONST', 'PPP'))
             ->outIs(array('USE', 'METHOD', 'CONST', 'PPP'))
             ->not(
                $this->side()
                     ->outIs('PPP')
                     ->atomIs('Virtualproperty')
             )
             ->raw('filter{ it.get().value("rank") == ranked + 1; }')
             ->raw('filter{ !(it.get().label() in ok); }')
             ->back('first');
        $this->prepareQuery();

    // static / normal ?
    // private / property / public
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class UsedPrivateMethod extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/MakeClassMethodDefinition',
                    );
    }

    public function analyze() {
        // method used in a static methodcall \a\b::b()
        // method used in a static methodcall static::b() or self
        $this->atomIs('Staticmethodcall')
             ->outIs('CLASS')
             ->has('fullnspath')
             ->savePropertyAs('fullnspath', 'classname')
             ->back('first')
             ->inIs('DEFINITION')
             ->as('results')
             ->is('visibility','private')
             ->inIs(array('METHOD', 'MAGICMETHOD'))
             ->atomIs('Class')
             ->samePropertyAs('fullnspath', 'classname')
             ->back('results');
        $this->prepareQuery();

        // method used in a normal methodcall with $this $this->b()
        $this->atomIs(array('Method', 'Magicmethod'))
             ->is('visibility', 'private')
             ->outIs('DEFINITION')
             ->atomIs('Methodcall')
             ->outIs('OBJECT')
             ->atomIs('This')
             ->back('first');
        $this->prepareQuery();

        // method used in a normal methodcall with $this $this->b()
        $this->atomIs(array('Method', 'Magicmethod'))
             ->is('visibility','private')
             ->outIs('NAME')
             ->codeIs('__construct')
             ->back('first')
             ->hasOut('DEFINITION');
        $this->prepareQuery();

        // __destruct is considered automatically checked
        $this->atomIs('Magicmethod')
             ->is('visibility','private')
             ->outIs('NAME')
             ->codeIs('__destruct')
             ->back('first');
        $this->prepareQuery();

        // Other magic methods are missing
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class UnresolvedCatch extends Analyzer {
    public function dependsOn(): array {
        return array('Exceptions/DefinedExceptions',
                    );
    }

    public function analyze() {
        $exceptions = $this->loadIni('php_exception.ini', 'classes');
        $exceptions[] = '\throwable';
        $exceptions = makeFullNsPath($exceptions);

        $this->atomIs('Catch')
             ->analyzerIsNot('self')
             ->outIs('CLASS')
             ->tokenIs(array('T_STRING', 'T_NS_SEPARATOR'))
             ->fullnspathIsNot($exceptions)
             ->noClassDefinition()
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('Catch')
             ->analyzerIsNot('self')
             ->outIs('CLASS')
             ->tokenIs(array('T_STRING', 'T_NS_SEPARATOR'))
             ->fullnspathIsNot($exceptions)
             ->classDefinition()
             ->analyzerIsNot('Exceptions/DefinedExceptions')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class DynamicSelfCalls extends Analyzer {
    public function analyze() {
        // class x { function foo() { $this->$f;}}
        $this->atomIs(self::CLASSES_ALL)
             ->outIs('DEFINITION')
             ->atomIs(array('This', 'Self'))
             ->inIs(array('CLASS', 'OBJECT'))
             ->atomIs(array('Member', 'Methodcall', 'Staticmethodcall'))
             ->outIs(array('METHOD', 'MEMBER'))
             ->tokenIs(array('T_VARIABLE', 'T_OPEN_CURLY'))
             ->back('first');
        $this->prepareQuery();

        // class x { function foo() { $this->{$f};}}
        $this->atomIs(self::CLASSES_ALL)
             ->outIs('DEFINITION')
             ->atomIs(array('This', 'Self'))
             ->inIs(array('CLASS', 'OBJECT'))
             ->atomIs(array('Member', 'Methodcall', 'Staticmethodcall'))
             ->outIs(array('METHOD', 'MEMBER'))
             ->outIsIE('NAME')
             ->atomIs('Block')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class WrongTypedPropertyInit extends Analyzer {
    protected $phpVersion = '7.4+';

    public function dependsOn(): array {
        return array('Complete/PropagateCalls',
                     'Complete/FollowClosureDefinition',
                     'Complete/CreateDefaultValues',
                    );
    }

    public function analyze() {
        // class x { a $a; function foo() { $this->a = new b()}}
        $this->atomIs('Propertydefinition')
             ->inIs('PPP')
             ->outIs('TYPEHINT')
             ->atomIsNot('Void')
             ->savePropertyAs('fullnspath', 'fnp')
             ->back('first')

             ->outIs('DEFAULT')
             ->atomIs('New')
             ->hasIn('RIGHT')
             ->outIs('NEW')
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->inIs('DEFINITION')
                             ->goToAllImplements(self::INCLUDE_SELF)
                             ->samePropertyAs('fullnspath', 'fnp')
                        )
             )
             ->back('first');
        $this->prepareQuery();

        // class x { a $a; function foo() { $this->a = C::D()}}
        $this->atomIs('Propertydefinition')
             ->inIs('PPP')
             ->outIs('TYPEHINT')
             ->atomIsNot('Void')
             ->savePropertyAs('fullnspath', 'fnp')
             ->back('first')

             ->outIs('DEFAULT')
             ->atomIs(self::FUNCTIONS_CALLS)
             ->inIs('DEFINITION')
             ->outIs('RETURNTYPE')

             ->not(
                $this->side()
                     ->inIs('DEFINITION')
                     ->atomIs(self::CIT)
                     ->goToAllImplements(self::INCLUDE_SELF)
                     ->samePropertyAs('fullnspath', 'fnp')
             )
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class RedefinedPrivateProperty extends Analyzer {
    public function analyze() {
        // class x { private $y; }
        // class z extends x { private $y; }
        $this->atomIs('Propertydefinition')
             ->savePropertyAs('code', 'name')
             ->inIs('PPP')
             ->is('visibility', 'private')
             ->inIs('PPP')
             ->goToAllParents(self::EXCLUDE_SELF)
             ->outIs('PPP')
             ->is('visibility', 'private')
             ->outIs('PPP')
             ->samePropertyAs('code', 'name', self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class ThisIsNotForStatic extends Analyzer {

    public function analyze() {
        // Check into Class
        $this->atomIs('This')
             ->goToFunction()
             ->as('result')
             ->is('static', true)
             ->goToClassTrait()
             ->back('result');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class UseInstanceof extends Analyzer {
    public function analyze() {
        // is_object()
        $this->atomFunctionIs('\\is_object');
        $this->prepareQuery();

        // check for class_implements call too.
        // relax on !is_object (or suggest is_scalar)
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class CouldBeAbstractClass extends Analyzer {
    public function analyze() {
        // class a {}
        // class b extends a {}
        // No new a()
        $this->atomIs('Class')
             ->isNot('abstract', true)
             ->filter(
                $this->side()
                     ->outIs('DEFINITION')
                     ->inIs('EXTENDS')
             )
             ->not(
                $this->side()
                     ->outIs('DEFINITION')
                     ->inIs('NEW')
             );
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class Anonymous extends Analyzer {
    protected $phpVersion = '7.0+';

    public function analyze() {
        $this->atomIs('Classanonymous');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class ImplementIsForInterface extends Analyzer {
    public function dependsOn(): array {
        return array('Classes/IsExtClass',
                     'Composer/IsComposerClass',
                    );
    }

    public function analyze() {
        $this->atomIs(array('Class', 'Trait'))
             ->values('fullnspath')
             ->unique();
        $classesTraits = $this->rawQuery()->toArray();

        $this->atomIs('Interfaces')
             ->values('fullnspath')
             ->unique();
        $interfaces = $this->rawQuery()->toArray();

        $notValid = array_diff($classesTraits, $interfaces);

        // class a with implements
        $this->atomIs(self::CLASSES_ALL)
             ->outIs('IMPLEMENTS')
             ->fullnspathIs($notValid)
             ->back('first');
        $this->prepareQuery();

        // class a implements a PHP class
        $this->atomIs(self::CLASSES_ALL)
             ->outIs('IMPLEMENTS')
             ->analyzerIs('Classes/IsExtClass')
             ->back('first');
        $this->prepareQuery();

        // class a implements a PHP class
        $this->atomIs(self::CLASSES_ALL)
             ->outIs('IMPLEMENTS')
             ->analyzerIs('Composer/IsComposerClass')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class IsaMagicProperty extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/CreateMagicProperty',
                    );
    }

    public function analyze() {
        // echo $this->a;
        $this->atomIs('Member')
             ->is('isRead', true)
             ->inIs('DEFINITION')
             ->atomIs('Magicmethod')
             ->outIs('NAME')
             ->codeIs('__get', self::TRANSLATE, self::CASE_INSENSITIVE)
             ->back('first');
        $this->prepareQuery();

        // $this->a = 1;
        $this->atomIs('Member')
             ->is('isModified', true)
             ->inIs('DEFINITION')
             ->atomIs('Magicmethod')
             ->outIs('NAME')
             ->codeIs('__set', self::TRANSLATE, self::CASE_INSENSITIVE)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class PropertyUsedBelow extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/OverwrittenProperties',
                    );
    }

    public function analyze() {
        //////////////////////////////////////////////////////////////////
        // property + $this->property
        //////////////////////////////////////////////////////////////////
        $this->atomIs('Class')
             ->savePropertyAs('fullnspath', 'fnp')
             ->outIs('PPP')
             ->isNot('static', true)
             ->outIs('PPP')
             ->atomIsNot('Virtualproperty')
             ->as('ppp')
             ->inIs('OVERWRITE')
             ->outIs('DEFINITION')
             ->atomIs('Member')
             ->back('ppp');
        $this->prepareQuery();

        //////////////////////////////////////////////////////////////////
        // static property : inside the self class
        //////////////////////////////////////////////////////////////////
        $this->atomIs('Class')
             ->savePropertyAs('fullnspath', 'fnp')
             ->outIs('PPP')
             ->is('static', true)
             ->outIs('PPP')
             ->atomIsNot('Virtualproperty')
             ->as('ppp')
             ->inIs('OVERWRITE')
             ->outIs('DEFINITION')
             ->atomIs('Staticproperty')
             ->back('ppp');
        $this->prepareQuery();
        // This could be also checking for fnp : it needs to be a 'family' class check.
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class UndefinedConstants extends Analyzer {
    public function dependsOn(): array {
        return array('Classes/DefinedConstants',
                     'Modules/DefinedClassConstants'
                    );
    }

    public function analyze() {
        // A::Undefined
        $this->atomIs('Staticconstant')
             ->analyzerIsNot(array('Classes/DefinedConstants',
                                   'Modules/DefinedClassConstants',
                                  ))
             ->outIs('CLASS')
             ->tokenIs(self::STATICCALL_TOKEN)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class UselessFinal extends Analyzer {
    public function analyze() {
        // final class x { final function foo() {}}
        $this->atomIs('Class')
             ->is('final', true)
             ->outIs('METHOD')
             ->atomIs('Method')
             ->is('final', true);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class DontUnsetProperties extends Analyzer {
    // unset($a->b);
    public function analyze() {
        $this->atomIs('Unset')
             ->outIs('ARGUMENT')
             ->atomIs(array('Member', 'Staticproperty'))
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('Cast')
             ->tokenIs('T_UNSET_CAST')
             ->outIs('CAST')
             ->atomIs(array('Member', 'Staticproperty'))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class AvoidOptionalProperties extends Analyzer {
    public function dependsOn(): array {
        return array('Classes/Constructor',
                     'Complete/CreateDefaultValues',
                     'Complete/SetClassRemoteDefinitionWithGlobal',
                     'Complete/SetClassRemoteDefinitionWithInjection',
                     'Complete/SetClassRemoteDefinitionWithLocalNew',
                     'Complete/SetClassRemoteDefinitionWithParenthesis',
                     'Complete/SetClassRemoteDefinitionWithReturnTypehint',
                     'Complete/SetClassRemoteDefinitionWithTypehint',
                     'Complete/SetClassMethodRemoteDefinition',
                    );
    }

    public function analyze() {
        // if ($this->p)  {}
        $this->atomIs('Member')
             ->hasIn('CONDITION')
             ->inIs('DEFINITION')
             ->isMissingOrNull()
             ->back('first');
        $this->prepareQuery();

        // if (empty($this->a))
        $this->atomIs('Member')
             ->inIs('ARGUMENT')
             ->atomIs(array('Empty', 'Isset'))
             ->as('results')
             ->back('first')
             ->inIs('DEFINITION')
             ->isMissingOrNull()
             ->back('results');
        $this->prepareQuery();

        // if (is_null($this->a))
        $this->atomIs('Member')
             ->outIs('OBJECT')
             ->atomIs('This')
             ->back('first')
             ->outIs('MEMBER')
             ->savePropertyAs('code', 'name')
             ->back('first')
             ->inIs('ARGUMENT')
             ->functioncallIs('\\is_null')
             ->as('results')
             ->goToClass()
             ->outIs('PPP')
             ->outIs('PPP')
             ->atomIs('Propertydefinition')
             ->samePropertyAs('propertyname', 'name', self::CASE_INSENSITIVE)
             ->isMissingOrNull()
             ->back('results');
        $this->prepareQuery();

        // $this->a == null
        $this->atomIs('Member')
             ->outIs('OBJECT')
             ->atomIs('This')
             ->back('first')
             ->outIs('MEMBER')
             ->savePropertyAs('code', 'name')
             ->back('first')
             ->inIs(array('LEFT', 'RIGHT'))
             ->atomIs('Comparison')
             ->as('results')
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs('Null')
             ->back('results')
             ->goToClass()
             ->outIs('PPP')
             ->outIs('PPP')
             ->atomIs('Propertydefinition')
             ->samePropertyAs('propertyname', 'name', self::CASE_INSENSITIVE)
             ->isMissingOrNull()
             ->back('results');
        $this->prepareQuery();

        // class x { function x($a = null) {} ...}
        $this->atomIs('Method')
             ->analyzerIs('Classes/Constructor')
             ->outIs('ARGUMENT')
             ->outIs('TYPEHINT')
             ->atomIsNot('Void')
             ->inIs('TYPEHINT')
             ->outIs('DEFAULT')
             ->atomIs('Null', self::WITH_CONSTANTS)
             ->hasNoIn('RIGHT')
             ->back('first');
        $this->prepareQuery();
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class IntegerAsProperty extends Analyzer {
    protected $phpVersion = '7.2+';

    public function analyze() {
        // $object->{0}
        $this->atomIs('Member')
             ->outIs('MEMBER')
             ->atomIs('Block')
             ->outIs('CODE')
             ->atomIs('Integer')
             ->back('first');
        $this->prepareQuery();

        // $object->{'0'}
        $this->atomIs('Member')
             ->outIs('MEMBER')
             ->atomIs('Block')
             ->outIs('CODE')
             ->atomIs('String')
             ->hasNoOut('CONCAT')
             ->regexIs('fullcode', '^.[0-9]')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class CantInheritAbstractMethod extends Analyzer {
    protected $phpVersion = '7.2+';

    // abstract class A           { abstract function bar(stdClass $x);  }
    // abstract class B extends A { abstract function bar($x): stdClass; }
    public function analyze() {
        $this->atomIs('Class')
             ->outIs(array('METHOD', 'MAGICMETHOD'))
             ->is('abstract', true)
             ->outIs('NAME')
             ->savePropertyAs('code', 'name')
             ->back('first')
             ->goToAllParents(self::EXCLUDE_SELF)
             ->outIs('METHOD')
             ->is('abstract', true)
             ->outIs('NAME')
             ->samePropertyAs('code', 'name')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class AccessProtected extends Analyzer {
    public function analyze() {
        // class::method()
        $this->atomIs('Staticmethodcall')
             ->outIs('METHOD')
             ->savePropertyAs('code', 'name')
             ->back('first')
             ->outIs('CLASS')
             ->codeIsNot(array('parent', 'static', 'self'))
             ->classDefinition()
             ->outIs('METHOD')
             ->atomIs('Method')
             ->is('visibility', 'protected')
             ->outIs('NAME')
             ->samePropertyAs('code', 'name')
             ->back('first');
        $this->prepareQuery();

        // parent::$property
        // static or self ::$property

        // class::$property
        $this->atomIs('Staticproperty')
             ->outIs('MEMBER')
             ->savePropertyAs('code', 'name')
             ->back('first')
             ->outIs('CLASS')
             ->atomIsNot(self::RELATIVE_CLASS)
             ->classDefinition()
             ->outIs('PPP')
             ->atomIs('Ppp')
             ->is('visibility', 'protected')
             ->outIs('PPP')
             ->samePropertyAs('code', 'name')
             ->back('first');
        $this->prepareQuery();

        // Non-static methods/properties : ??? Don't know how to do that yet
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class NoMagicWithArray extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/CreateMagicProperty',
                    );
    }

    public function analyze() {
        // class x { function __set() {} }
        // (new x)->a[] = 1;
        $this->atomIs(array('Array', 'Arrayappend'))
             ->outIs(array('VARIABLE', 'APPEND'))
             ->atomIs('Member')
             ->filter(
                $this->side()
                     ->inIs('DEFINITION')
                     ->atomIs('Magicmethod')
                     ->outIs('NAME')
                     ->codeIs('__set', self::TRANSLATE, self::CASE_INSENSITIVE)
             )
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class Classnames extends Analyzer {

    public function analyze() {
        $this->atomIs('Class')
             ->outIs('NAME')
             ->atomIsNot('Void');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class UseClassOperator extends Analyzer {
    public function analyze() {
        // $a = '\x'; class x {}
        $this->atomIs(array('String', 'Heredoc', 'Concatenation')) // first one for optimization purposes
             ->atomIs(array('String', 'Heredoc', 'Concatenation'), self::WITH_CONSTANTS)
             ->has('noDelimiter')
             ->noDelimiterIsNot(array('static', 'self', 'parent'))
             ->regexIsNot('fullcode', '::')
             ->inIs('DEFINITION')
             ->atomIs('Class')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class CouldBeProtectedProperty extends Analyzer {
    public function analyze() {

        // Case of $object->property (that's another public access)
        $this->atomIs('Member')
             ->not(
                $this->side()
                     ->outIs('OBJECT')
                     ->atomIs('This')
             )
             ->outis('MEMBER')
             ->atomIs('Name')
             ->values('code')
             ->unique();
        $publicProperties = $this->rawQuery()->toArray();

        // Member that is not used outside this class or its children
        $this->atomIs('Ppp')
             ->isNot('visibility', array('protected', 'private'))
             ->isNot('static', true)
             ->hasClass()
             ->outIs('PPP')
                 ->atomIsNot('Virtualproperty')
             ->isNot('propertyname', $publicProperties);
        $this->prepareQuery();

        // Case of class::property (that's another public access)
        $this->atomIs('Staticproperty')
             ->outIs('CLASS')
             ->atomIs(array('Identifier', 'Nsname'))
             ->as('classe')
             ->back('first')

             ->hasNoClass()
             ->outIs('MEMBER')
             ->atomIs('Staticpropertyname')
             ->as('variable')
             ->select(array('classe' => 'fullnspath',
                            'variable' => 'code'))
             ->unique();
            $res = $this->rawQuery()->toArray();

        $publicStaticProperties = array();
        foreach($res as $value) {
            array_collect_by($publicStaticProperties, $value['classe'], $value['variable']);
        }

        if (!empty($publicStaticProperties)) {
            // Member that is not used outside this class or its children
            $this->atomIs('Ppp')
                 ->is('visibility', array('public', 'none'))
                 ->is('static', true)
                 ->goToClass()
                 ->fullnspathIs(array_keys($publicStaticProperties))
                 ->savePropertyAs('fullnspath', 'fnp')
                 ->back('first')
                 ->outIs('PPP')
                 ->atomIsNot('Virtualproperty')
                 ->isNotHash('code', $publicStaticProperties, 'fnp')
                 ->dedup();
            $this->prepareQuery();
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class UndeclaredStaticProperty extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/OverwrittenProperties',
                    );
    }

    public function analyze() {
        // class a { public $a = 1;}
        // a::$a
        $this->atomIs('Staticproperty')
             ->inIs('DEFINITION')
             ->atomIs('Virtualproperty')
             ->hasOut('OVERWRITE')
             ->not(
                 $this->side()
                      ->outIs('OVERWRITE')
                      ->atomIs('Propertydefinition')
                      ->inIs('PPP')
                      ->is('static', true)
             )
             ->back('first');
        $this->prepareQuery();

        // class a { public $a = 1;}
        // a::$a
        $this->atomIs('Staticproperty')
             ->inIs('DEFINITION')
             ->atomIs('Propertydefinition')
             ->inIs('PPP')
             ->isNot('static', true)
             ->back('first');
        $this->prepareQuery();

        // class a { static public $a = 1;}
        // $a->$a
        $this->atomIs('Member')
             ->inIs('DEFINITION')
             ->atomIs('Propertydefinition')
             ->inIs('PPP')
             ->is('static', true)
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('Member')
             ->inIs('DEFINITION')
             ->atomIs('Virtualproperty')
             ->hasOut('OVERWRITE')
             ->not(
                 $this->side()
                      ->outIs('OVERWRITE')
                      ->atomIs('Propertydefinition')
                      ->inIs('PPP')
                      ->isNot('static', true)
             )
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class VariableClasses extends Analyzer {
    public function analyze() {
        $this->atomIs('Staticmethodcall')
             ->outIs('CLASS')
             ->atomIs(array('Variable', 'Array'))
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('Staticproperty')
             ->outIs('CLASS')
             ->atomIs(array('Variable', 'Array'))
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('Staticconstant')
             ->outIs('CLASS')
             ->atomIs(array('Variable', 'Array'))
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('New')
             ->outIs('NEW')
             ->atomIs(array('Variable', 'Array'))
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('New')
             ->outIs('NEW')
             ->atomIs('Newcall')
             ->tokenIs(array('T_VARIABLE', 'T_OPEN_BRACKET'))
             ->back('first');
        $this->prepareQuery();

    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class MultipleClassesInFile extends Analyzer {
    public function analyze() {
        // fichier.php : <?php class a {} class b {}
        $this->atomIs('File')
             ->outIs('FILE')
             ->filter(
                $this->side()
                     ->atomInsideNoAnonymous(array('Class', 'Interface', 'Trait'))
                     ->count()
                     ->raw('is(gt(1))')
             )
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class ClassAliasUsage extends Analyzer {

    public function analyze() {
        $this->atomIs('Classalias');
        $this->prepareQuery();
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class UnusedPrivateMethod extends Analyzer {
    public function dependsOn(): array {
        return array('Classes/UsedPrivateMethod',
                     'Classes/DynamicSelfCalls',
                    );
    }

    public function analyze() {
        // class X { private function foo() { } }
        $this->atomIs(self::CLASSES_ALL)
             ->analyzerIsNot('Classes/DynamicSelfCalls')
             ->outIs('METHOD')
             ->atomIs('Method')
             ->is('visibility', 'private')
             ->analyzerIsNot('Classes/UsedPrivateMethod');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class UnusedClass extends Analyzer {
    public function dependsOn(): array {
        return array('Classes/TestClass',
                     'Modules/CalledByModule',
                     'Classes/UsedClass',
                    );
    }

    public function analyze() {
        // class A {}
        // new A;
        $this->atomIs('Class')
             ->analyzerIsNot($this->dependsOn());
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class ThisIsForClasses extends Analyzer {
    public function analyze() {
        // General case
        $this->atomIs('This')
             ->hasNoInstruction(self::FUNCTIONS_ALL)
             ->back('first');
        $this->prepareQuery();

        // General case
        $this->atomIs('This')
             ->goToFunction()
             ->atomIs('Function')
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('This')
             ->goToFunction()
             ->atomIs(array('Closure', 'Arrowfunction'))
             ->is('static', true)
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('This')
             ->goToFunction()
             ->atomIs('Closure')
             ->isNot('static', true)
             ->hasNoClassTrait()
             ->back('first');
        $this->prepareQuery();

        // global $this
        $this->atomIs('Globaldefinition')
             ->codeIs('$this', self::TRANSLATE, self::CASE_SENSITIVE);
        $this->prepareQuery();

        // Inside Classes
        // catch, global, static
        // Any cast of $this is bad, unset or else.
        $this->atomIs('This')
             ->hasClassTrait()
             ->inIs(array('VARIABLE', 'STATIC', 'GLOBAL', 'CAST'))
             ->atomIs(array('Catch', 'Static', 'Global', 'Cast'))
             ->back('first');
        $this->prepareQuery();

        // foreach
        $this->atomIs('This')
             ->hasClassTrait()
             ->inIs(array('INDEX', 'VALUE'))
             ->atomIs('Foreach')
             ->back('first');
        $this->prepareQuery();

        // unset($this)
        $this->atomIs('This')
             ->hasClassTrait()
             ->inIs('ARGUMENT')
             ->atomIs('Unset')
             ->hasNoIn('METHOD')
             ->back('first');
        $this->prepareQuery();

        // self, parent, static : when outside a class, in static or typehint
        $this->atomIs(array('Self', 'Parent', 'Static'))
             ->hasNoClassTrait()
             ->inIs(array('TYPEHINT', 'CLASS')); // Instanceof, typehint
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class StrangeName extends Analyzer {
    public function analyze() {
        $names = $this->loadIni('php_strange_names.ini', 'classes');

        $this->atomIs(array('Class', 'Trait', 'Interface'))
             ->outIs('METHOD')
             ->atomIs('Method')
             ->as('results')
             ->outIs('NAME')
             ->codeIs($names)
             ->back('results');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class OneObjectOperatorPerLine extends Analyzer {
    public function analyze() {
        // inline operators $a->$b->$c;
        $this->atomIs('Member')
             ->savePropertyAs('line', 'row')
             ->outIs('OBJECT')
             ->atomIs(array('Member', 'Methodcall', 'Staticproperty', 'Staticmethodcall', 'Staticconstant'))
             ->samePropertyAs('line', 'row')
             ->outIs('OBJECT')
             ->atomIsNot('This')
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('Methodcall')
             ->savePropertyAs('line', 'row')
             ->outIs('OBJECT')
             ->atomIs(array('Member', 'Methodcall', 'Staticproperty', 'Staticmethodcall', 'Staticconstant'))
             ->samePropertyAs('line', 'row')
             ->outIs('OBJECT')
             ->atomIsNot('This')
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('Staticmethodcall')
             ->savePropertyAs('line', 'row')
             ->outIs('OBJECT')
             ->atomIs(array('Member', 'Methodcall', 'Staticproperty', 'Staticmethodcall', 'Staticconstant'))
             ->samePropertyAs('line', 'row')
             ->outIs('OBJECT')
             ->atomIsNot('This')
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('Staticproperty')
             ->savePropertyAs('line', 'row')
             ->outIs('OBJECT')
             ->atomIs(array('Member', 'Methodcall', 'Staticproperty', 'Staticmethodcall', 'Staticconstant'))
             ->samePropertyAs('line', 'row')
             ->outIs('OBJECT')
             ->atomIsNot('This')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class NormalMethods extends Analyzer {
    public function analyze() {
        $this->atomIs(array('Class', 'Trait'))
             ->outIs('METHOD')
             ->isNot('static', true)
             ->outIs('NAME');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class DynamicMethodCall extends Analyzer {
    public function analyze() {
        // $object->$name()
        // $class::$name()
        $this->atomIs(array('Methodcall', 'Staticmethodcall'))
             ->outIs('METHOD')
             ->outIs('NAME')
             ->tokenIs(array('T_VARIABLE', 'T_DOLLAR', 'T_DOLLAR_OPEN_CURLY_BRACES'))
             ->back('first');
        $this->prepareQuery();

        // call_user_func(array($a, $b))
        $this->atomFunctionIs(array('\call_user_func', '\call_user_func_array'))
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('Arrayliteral', self::WITH_VARIABLES)
             ->is('count', 2)
             ->outWithRank('ARGUMENT', 1)
             ->atomIs(self::CONTAINERS)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class InsufficientPropertyTypehint extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/CreateDefaultValues',
                     'Complete/PropagateCalls',
                    );
    }

    public function analyze() {
        // class x { private Y $p; function foo() { $this->p->p2 = 1;} }

        // class x { function __construct(Y $p) { $this->p = $p; } function foo() { $this->p->p2 = 1;} }
        $this->atomIs('Propertydefinition')
             ->analyzerIsNot('self')
             ->outIs('DEFINITION')
             ->inIs('OBJECT')
             ->atomIs('Member')
             ->hasNoIn('DEFINITION')
             ->outIs('MEMBER')
             ->savePropertyAs('code', 'property')
             ->back('first')

             ->optional(
                 $this->side()
                      ->outIs('DEFAULT')
                      ->inIs('DEFINITION')
                      ->inIs('NAME')
             )
             ->optional(
                 $this->side()
                      ->inIs('PPP')
             )
             ->outIs('TYPEHINT')
             ->inIs('DEFINITION')
             ->atomIs('Class')
             ->not(
                $this->side()
                     ->outIs('PPP')
                     ->outIs('PPP')
                     ->samePropertyAs('propertyname', 'property', self::CASE_SENSITIVE)
             )
             ->back('first');
        $this->prepareQuery();

        // class x { function __construct(Y $p) { $this->p = $p; } } interface Y {}
        $this->atomIs('Propertydefinition')
             ->analyzerIsNot('self')
             ->outIs('DEFINITION')
             ->inIs('OBJECT')
             ->atomIs('Member')
             ->back('first')

             ->optional(
                 $this->side()
                      ->outIs('DEFAULT')
                      ->inIs('DEFINITION')
                      ->inIs('NAME')
             )
             ->optional(
                 $this->side()
                      ->inIs('PPP')
             )
             ->outIs('TYPEHINT')
             ->inIs('DEFINITION')
             ->atomIs('Interface')
             ->back('first');
        $this->prepareQuery();

        // class x { function __construct(Y $p) { $this->p = $p; } function foo() { $this->p->m2();} }
        $this->atomIs('Propertydefinition')
             ->analyzerIsNot('self')
             ->outIs('DEFINITION')
             ->inIs('OBJECT')
             ->atomIs('Methodcall')
             ->hasNoIn('DEFINITION')
             ->outIs('METHOD')
             ->outIs('NAME')
             ->savePropertyAs('code', 'method')
             ->back('first')

             ->optional(
                 $this->side()
                      ->outIs('DEFAULT')
                      ->inIs('DEFINITION')
                      ->inIs('NAME')
             )
             ->optional(
                 $this->side()
                      ->inIs('PPP')
             )
             ->outIs('TYPEHINT')
             ->inIs('DEFINITION')
             ->atomIs(array('Class', 'Interface'))
             ->not(
                $this->side()
                     ->outIs('METHOD')
                     ->outIs('NAME')
                     ->samePropertyAs('code', 'method', self::CASE_INSENSITIVE)
             )
             ->back('first');
        $this->prepareQuery();

        // class x { private $p = null; function foo() { $this->p->m2();} }
        // No typehint, but used as an object
        $this->atomIs('Propertydefinition')
             ->analyzerIsNot('self')
             ->inIs('PPP')
             ->outIs('TYPEHINT')
             ->atomIs('Void')
             ->back('first')
             ->outIs('DEFINITION')
             ->hasIn(array('OBJECT', 'CLASS'))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class CouldBePrivate extends Analyzer {
    public function dependsOn(): array {
        return array('Classes/PropertyUsedBelow',
                    );
    }

    public function analyze() {
        // Searching for properties that are never used outside the definition class or its children

        // Non-static properties
        // Case of object->property (that's another public access)
        $this->atomIs('Member')
             ->not(
                $this->side()
                     ->outIs('OBJECT')
                     ->atomIs('This')
             )
             ->outIs('MEMBER')
             ->atomIs('Name')
             ->values('code')
             ->unique();
        $publicProperties = $this->rawQuery()
                                 ->toArray();

        if (!empty($publicProperties)) {
            $this->atomIs('Ppp')
                 ->isNot('visibility', 'private')
                 ->isNot('static', true)
                 ->outIs('PPP')
                 ->atomIsNot('Virtualproperty')
                 ->analyzerIsNot('Classes/PropertyUsedBelow')
                 ->isNot('propertyname', $publicProperties);
            $this->prepareQuery();
        }

        // Static properties
        // Case of property::property (that's another public access)
        $this->atomIs('Staticproperty')
             ->hasNoClass()
             ->outIs('CLASS')
             ->as('classe')
             ->has('fullnspath')
             ->back('first')
             ->outIs('MEMBER')
             ->as('property')
             ->select(array('classe'    => 'fullnspath',
                            'property' => 'code'))
             ->unique();
        $nakedPublicStaticProperties = $this->rawQuery()
                                            ->toArray();

        $this->atomIs('Staticproperty')
             ->inIs('DEFINITION')
             ->atomIsNot('Virtualproperty')
             ->inIs('PPP')
             ->inIs('PPP')
             ->savePropertyAs('fullnspath', 'fnp')
             ->back('first')
             ->outIs('MEMBER')
             ->as('property')
             ->goToClass()
             ->as('classe')
             ->not(
                $this->side()
                     ->atomIs(self::CLASSES_ALL)
                     ->goToAllParentsTraits(self::INCLUDE_SELF)
                     ->samePropertyAs('fullnspath', 'fnp')
             )
             ->select(array('classe'    => 'fullnspath',
                            'property'  => 'code'))
             ->unique();
        $insidePublicStaticProperties = $this->rawQuery()
                                             ->toArray();
        $publicStaticProperties = array_merge($insidePublicStaticProperties, $nakedPublicStaticProperties);

        // Empty $publicStaticProperties also matters
        $calls = array();
        foreach($publicStaticProperties as $value) {
            array_collect_by($calls, $value['classe'], $value['property']);
        }

        // Property that is not used outside this class or its children
        $this->atomIs('Ppp')
             ->isNot('visibility', 'private')
             ->is('static', true)

             ->goToClass()
             ->fullnspathis(array_keys($calls))
             ->savePropertyAs('fullnspath', 'fnq')

             ->back('first')
             ->outIs('PPP')
             ->atomIsNot('Virtualproperty')
             ->analyzerIsNot('Classes/PropertyUsedBelow')
             ->as('results')
             ->isNotHash('code', $calls, 'fnq')
             ->back('results');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;
use Exakat\Data\Dictionary;

class Constructor extends Analyzer {
    public function analyze() {
        $construct = $this->dictCode->translate(array('__construct'), Dictionary::CASE_INSENSITIVE);

        if (empty($construct)) {
            return;
        }

        // __construct is the main constructor of the class
        $this->atomIs('Magicmethod')
             ->hasClass()
             ->outIs('NAME')
             ->codeIs($construct, self::NO_TRANSLATE)
             ->back('first');
        $this->prepareQuery();

        // if no __construct(), then default back on the method with the class name
        $this->atomIs('Class')
             ->outIs('NAME')
             ->savePropertyAs('code', 'name')
             ->back('first')
             ->not(
                $this->side()
                     ->outIs('MAGICMETHOD')
                     ->atomIs('Magicmethod')
                     ->outIs('NAME')
                     ->codeIs('__construct', self::TRANSLATE, self::CASE_INSENSITIVE)
             )
             ->outIs('METHOD')
             ->atomIs('Method')
             ->as('constructor')
             ->outIs('NAME')
             ->samePropertyAs('code', 'name')
             ->back('constructor');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class StaticMethodsCalledFromObject extends Analyzer {
    public function analyze() {
        $this->atomIs(array('Method', 'Magicmethod'))
             ->hasClassTrait()
             ->is('static', true)
             ->isNot('abstract', true)
             ->outIs('NAME')
             ->values('lccode')
             ->unique();
        $staticMethods = $this->rawQuery()
                              ->toArray();

        if (empty($staticMethods)) {
            return;
        }

        $this->atomIs(array('Method', 'Magicmethod'))
             ->hasClassTrait()
             ->isNot('static', true)
             ->isNot('abstract', true)
             ->outIs('NAME')
             ->values('lccode')
             ->unique();
        $normalMethods = $this->rawQuery()
                              ->toArray();

        $methods = array_diff($staticMethods, $normalMethods);
        if (empty($methods)) {
            return;
        }

        // $a->staticMethod (Anywhere in the code)
        $this->atomIs('Methodcall')
             ->outIs('OBJECT')
             ->atomIsNot('This')
             ->back('first')
             ->outIs('METHOD')
             ->codeIs($methods, self::NO_TRANSLATE, self::CASE_INSENSITIVE)
             ->back('first');
        $this->prepareQuery();

        // $this->staticMethod (In the local class tree)
        $this->atomIs('Methodcall')
             ->outIs('OBJECT')
             ->atomIs('This')
             ->back('first')
             ->outIs('METHOD')
             ->outIs('NAME')
             ->savePropertyAs('lccode', 'name')
             ->goToClass()
             ->goToAllParents(self::INCLUDE_SELF)
             ->outIs(array('METHOD', 'MAGICMETHOD'))
             ->is('static', true)
             ->outIs('NAME')
             ->samePropertyAs('code', 'name', self::CASE_INSENSITIVE)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class Abstractmethods extends Analyzer {

    public function analyze() {
        // abstract class x { abstract function y (); }
        $this->atomIs('Class')
             ->outIs(array('METHOD', 'MAGICMETHOD'))
             ->is('abstract', true);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class UsingThisOutsideAClass extends Analyzer {
    protected $phpVersion = '7.0-';

    public function analyze() {
        // $this outside a class or a trait
        $this->atomIs(self::VARIABLES_ALL)
             ->atomIs('This')
             ->hasNoClass()
             ->hasNoTrait();
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class AvoidOptionArrays extends Analyzer {
    public function analyze() {
        // argument use as array, used to dispatch values
        // typehint array is not important
        $this->atomIs('Magicmethod')
             ->outIs('NAME')
             ->codeIs('__construct', self::TRANSLATE, self::CASE_SENSITIVE)
             ->inIs('NAME')
             ->outIs('ARGUMENT')
             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->atomIs('Variablearray')
             ->inIs('VARIABLE')
             ->inIs('RIGHT')
             ->atomIs('Assignation')
             ->outIs('LEFT')
             ->atomIs(array('Member', 'Staticproperty'))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class UndefinedStaticMP extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/OverwrittenMethods',
                     'Complete/OverwrittenProperties',
                     'Complete/SetClassMethodRemoteDefinition',
                     'Composer/IsComposerNsname',
                     );
    }

    public function analyze() {
        // static::method() 1rst level
        $this->atomIs('Staticmethodcall')
             ->outIs('CLASS')
             ->atomIs(array('Self', 'Static'))
             ->back('first')
             ->outIs('METHOD')
             ->tokenIs('T_STRING')
             ->back('first')

             ->analyzerIsNot('Composer/IsComposerNsname')
             ->hasNoIn('DEFINITION');
        $this->prepareQuery();

        // static::$property
        $this->atomIs('Staticproperty')
             ->outIs('CLASS')
             ->atomIs(array('Self', 'Static'))
             ->back('first')
             ->filter(
                $this->side()
                     ->inIs('DEFINITION')
                     ->atomIs('Virtualproperty')// No check on visibility, we are locall!
                     ->not(
                        $this->side()
                             ->outIs('OVERWRITE')
                             ->atomIs('Propertydefinition')
                             ->inIs('PPP')
                             ->isNot('visibility', 'private')
                     )
              );
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class UseThis extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/SetParentDefinition',
                    );
    }

    public function analyze() {
        // Valid for both statics and normal
        // parent::
        $this->atomIs('Parent')
             ->inIs('CLASS')
             ->atomIs(array('Staticmethodcall', 'Staticproperty', 'Staticclass'))
             ->goToInstruction('Method');
        $this->prepareQuery();

        // self or parent are local.
        $this->atomIs(array('Parent', 'Self'))
             ->inIs('NAME')
             ->inIs('NEW')
             ->atomIs('New');
        $this->prepareQuery();

        // Case for normal methods
        $this->atomIs('Method')
             ->analyzerIsNot('self')
             ->isNot('static', true)
             ->outIs('BLOCK')
             ->atomInsideNoAnonymous('This')
             ->back('first');
        $this->prepareQuery();

        // Case for statics methods
        $this->atomIs('Method')
             ->analyzerIsNot('self')
             ->is('static', true)
             ->outIs('BLOCK')
             ->atomInsideNoAnonymous(array('Staticmethodcall', 'Staticproperty'))
             ->outIs('CLASS')
             ->tokenIs(self::STATICCALL_TOKEN)
             ->atomIsNot('Parent')
             ->savePropertyAs('fullnspath', 'classe')
             ->goToClassTrait()
             ->samePropertyAs('fullnspath', 'classe')
             ->back('first');
        $this->prepareQuery();

    // static constant are excluded.
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class UselessConstructor extends Analyzer {
    public function dependsOn(): array {
        return array('Classes/Constructor');
    }

    public function analyze() {
        $checkConstructor = <<<'GREMLIN'
not( __.where( __.out("METHOD", "MAGICMETHOD").hasLabel("Method", "Magicmethod")
       .where( __.in("ANALYZED").has("analyzer", "Classes/Constructor")) )
   )
GREMLIN;

        // class a (no extends, no implements)
        $this->atomIs('Class')
             ->hasNoOut(array('EXTENDS', 'IMPLEMENTS'))
             ->outIs('MAGICMETHOD')
             ->atomIs('Magicmethod')
             ->analyzerIs('Classes/Constructor')
             ->outIs('BLOCK')
             ->outIs('EXPRESSION')
             ->atomIs('Void')
             ->back('first');
        $this->prepareQuery();

        // class a with extends, one level
        $this->atomIs('Class')
             ->hasOut('EXTENDS')
             ->outIs('MAGICMETHOD')
             ->atomIs('Magicmethod')
             ->analyzerIs('Classes/Constructor')
             ->outIs('BLOCK')
             ->outIs('EXPRESSION')
             ->atomIs('Void')
             ->back('first')
             ->outIs('EXTENDS')
             ->inIs('DEFINITION')
             ->hasNoOut('EXTENDS')
             ->hasNoOut('IMPLEMENTS')
             ->raw($checkConstructor)
             ->back('first');
        $this->prepareQuery();

        // class a with extends, two level
        $this->atomIs('Class')
             ->hasOut('EXTENDS')
             ->outIs('MAGICMETHOD')
             ->atomIs('Magicmethod')
             ->analyzerIs('Classes/Constructor')
             ->outIs('BLOCK')
             ->outIs('EXPRESSION')
             ->atomIs('Void')
             ->back('first')
             ->outIs('EXTENDS')
             ->inIs('DEFINITION')
             ->hasOut('EXTENDS')
             ->raw($checkConstructor)
             ->outIs('EXTENDS')
             ->inIs('DEFINITION')
             ->raw($checkConstructor)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class NonPpp extends Analyzer {
    public function analyze() {
        // class x { function foo() {} }
        // trait x { static $foo; }
        $this->atomIs(self::CIT)
             ->outIs(self::CLASS_ELEMENTS)
             ->atomIs(array('Method', 'Magicmethod', 'Ppp', 'Constant'))
             ->not(
                $this->side()
                     ->outIs('PPP')
                     ->atomIs('Virtualproperty')
             )
             ->is('visibility', 'none')
             ;
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class NullOnNew extends Analyzer {
    protected $phpVersion = '7.0-';

    public function analyze() {
        $names = array('finfo',
                       'PDO',
                       'Collator',
                       'IntlDateFormatter',
                       'MessageFormatter',
                       'NumberFormatter',
                       'ResourceBundle',
                       'IntlRuleBasedBreakIterator');
        $names = makeFullNsPath($names);

        $this->atomIs('New')
             ->outIs('NEW')
             ->tokenIs(array('T_STRING', 'T_NS_SEPARATOR'))
             ->atomIsNot('Array')
             ->fullnspathIs($names)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class ChildRemoveTypehint extends Analyzer {
    protected $phpVersion = '7.2+';

    public function dependsOn(): array {
        return array('Complete/OverwrittenMethods',
                    );
    }

    public function analyze() {
        // class a { function foo(B $B){}}
        // class aa extends a { function foo($B){}}
        $this->atomIs('Method')
             ->outIs('ARGUMENT')
             ->savePropertyAs('rank', 'ranked')
             ->outIs('TYPEHINT')
             ->atomIsNot('Void')
             ->back('first')

             ->inIs('OVERWRITE')

             ->outWithRank('ARGUMENT', 'ranked')
             ->outIs('TYPEHINT')
             ->atomIs('Void')

             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class Finalmethod extends Analyzer {

    public function analyze() {
        // class x { final function foo() {}}
        $this->atomIs('Class')
             ->outIs(array('METHOD', 'MAGICMETHOD'))
             ->atomIs(array('Method', 'Magicmethod'))
             ->is('final', true);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class UnitializedProperties extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/OverwrittenProperties',
                     'Complete/CreateDefaultValues',
                     'Classes/Constructor',
                    );
    }

    public function analyze() {
        // Normal Properties (with or without constructor)
        $this->atomIs('Propertydefinition')
             // No default value
             ->not(
                $this->side()
                     ->outIs('DEFAULT')
                     ->hasNoIn('RIGHT')
             )

             ->not(
                $this->side()
                     ->outIs('DEFAULT')
                     ->goToFunction()
                     ->atomIs('Magicmethod')
                     ->analyzerIs('Classes/Constructor')
             );
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class PropertyUsedInternally extends Analyzer {

    public function analyze() {
        // property + $this->property
        $this->atomIs(self::CLASSES_ALL)
             ->outIs('PPP')
             ->isNot('static', true)
             ->outIs('PPP')
             ->atomIs('Propertydefinition')
             ->as('results')
             ->outIs('DEFINITION')
             ->atomIs('Member')
             ->outIs('OBJECT')
             ->atomIs('This')
             ->back('results');
        $this->prepareQuery();

        //////////////////////////////////////////////////////////////////
        // static property : inside the self class
        //////////////////////////////////////////////////////////////////
        $this->atomIs(self::CLASSES_ALL)
             ->savePropertyAs('fullnspath', 'fnp')
             ->outIs('PPP')
             ->is('static', true)
             ->outIs('PPP')
             ->atomIs('Propertydefinition')
             ->as('results')
             ->outIs('DEFINITION')
             ->atomIs('Staticproperty')
             ->outIs('CLASS')
             ->samePropertyAs('fullnspath', 'fnp')
             ->back('results');
        $this->prepareQuery();

// Test for arrays ?

    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class HasFluentInterface extends Analyzer {
    public function analyze() {
        // $this->a()->b()->c();
        $this->atomIs('Class')
             ->outIs('METHOD')
             ->atomInsideNoDefinition('Return')
             ->outIs('RETURN')
             ->atomIs('This')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class PropertyNeverUsed extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/SetParentDefinition',
                     'Complete/OverwrittenProperties',
                    );
    }

    public function analyze() {
        // class x { private $p = 1; }
        $this->atomIs(self::CLASSES_ALL)
             ->outIs('PPP')
             ->atomIs('Ppp')
             ->outIs('PPP')
             ->atomIs('Propertydefinition')
             ->hasNoOut('DEFINITION')
             ->hasNoOut('OVERWRITE'); // used by a class above, not below
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class UsedOnceProperty extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/OverwrittenProperties',
                    );
    }

    public function analyze() {
        // class x { private $p = 1; function foo() {$this->p = 1;} }
        $this->atomIs(self::CLASSES_ALL)
             ->outIs('PPP')
             ->isNot('visibility', 'public')
             ->outIs('PPP')
             ->atomIsNot('Virtualproperty')
             ->as('results')
             ->filter(
                $this->side()
                     ->goToAllDefinitions()
                     ->outIs('DEFINITION')
                     ->raw('count().is(eq(1))')
             );
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class NoParent extends Analyzer {
    protected $phpVersion = '7.4-';

    public function analyze() {
        // class x { function foo() { parent::fooo(); }}
        $this->atomIs('Parent')
             ->goToFunction()
             ->inIs(array('METHOD', 'MAGICMETHOD'))
             ->atomIs(array('Class', 'Classaononymous')) // No traits...
             ->hasNoOut('EXTENDS')
             ->back('first')
             ->inIs();
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class WrongName extends Analyzer {
    public function analyze() {
        // class x { function __constructor() {}; function __something__(); }
        $this->atomIs('Method')
             ->outIs('NAME')
             ->regexIs('fullcode', '^__.*')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class CheckOnCallUsage extends Analyzer {
    public function dependsOn(): array {
        return array('Classes/IsNotFamily',
                    );
    }

    public function analyze() {
        // function __call($a, $b) { $this->$a(...$b); }
        $this->atomIs('Magicmethod')
             ->outIs('NAME')
             ->codeIs('__call')
             ->inIs('NAME')
             ->outIs('BLOCK')
             // no call to method_exists
             ->not(
                $this->side()
                     ->atomInsideNoDefinition('Functioncall')
                     ->functioncallIs('\\method_exists')
             )

            // call is made directly on $this
             ->outIs('EXPRESSION')
             ->atomIs('Methodcall')
             ->outIs('OBJECT')
             ->atomIs('This')
             ->back('first');
        $this->prepareQuery();

        // function __callStatic($a, $b) { self::$a(...$b); }
        $this->atomIs('Magicmethod')
             ->outIs('NAME')
             ->codeIs('__callstatic')
             ->inIs('NAME')
             ->outIs('BLOCK')
             // no call to method_exists
             ->not(
                $this->side()
                     ->atomInsideNoDefinition('Functioncall')
                     ->functioncallIs('\\method_exists')
             )

             ->outIs('EXPRESSION')
             ->atomIs('Staticmethodcall')
             ->outIs('CLASS')
             ->atomIs(array('Identifier', 'Nsname', 'Self', 'Static', 'Parent'))
             ->analyzerIsNot('Classes/IsNotFamily')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class CouldBePrivateMethod extends Analyzer {
    public function dependsOn(): array {
        return array('Classes/MethodUsedBelow',
                     'Classes/IsNotFamily',
                    );
    }

    public function analyze() {
        // Searching for methods that are never used outside the definition class

        // Non-static methods
        // Case of object->method() (that's another public access)
        $this->atomIs('Methodcall')
             ->not(
                $this->side()
                     ->outIs('OBJECT')
                     ->atomIs('This')
             )
             ->outIs('METHOD')
             ->atomIs('Methodcallname')
             ->values('lccode')
             ->unique();
        $publicMethods = $this->rawQuery()
                              ->toArray();

        $this->atomIs('Method')
             ->isNot('visibility', 'private')
             ->isNot('static', true)
             ->analyzerIsNot('Classes/MethodUsedBelow')
             ->outIs('NAME')
             ->codeIsNot($publicMethods, self::NO_TRANSLATE)
             ->back('first');
        $this->prepareQuery();

        // Static methods
        // Case of class::method() (that's another public access)
        $this->atomIs('Staticmethodcall')
             ->analyzerIs('Classes/IsNotFamily')
             ->outIs('CLASS')
             ->atomIs(array('Identifier', 'Nsname'))
             ->as('classe')
             ->savePropertyAs('fullnspath', 'fns')
             ->inIs('CLASS')
             ->outIs('METHOD')
             ->atomIs('Methodcallname')
             ->savePropertyAs('code', 'name')
             ->as('method')
             ->select(array('classe' => 'fullnspath',
                            'method' => 'lccode',
                            ))
             ->unique();
        $publicStaticMethods = $this->rawQuery()
                                    ->toArray();

        if (!empty($publicStaticMethods)) {
            $calls = array();
            foreach($publicStaticMethods as $value) {
                array_collect_by($calls, $value['classe'], $value['method']);
            }

            // Property that is not used outside this class or its children
            $this->atomIs('Method')
                 ->isNot('visibility', 'private')
                 ->is('static', true)
                 ->analyzerIsNot('Classes/MethodUsedBelow')

                 ->goToClass()
                 ->fullnspathIs(array_keys($calls))
                 ->savePropertyAs('fullnspath', 'fnq')
                 ->back('first')

                 ->outIs('NAME')
                 ->isNotHash('lccode', $calls, 'fnq')
                 ->back('first')
                 ->dedup();
            $this->prepareQuery();
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class ImmutableSignature extends Analyzer {
    protected $maxOverwrite = 8;

    public function dependsOn(): array {
        return array('Complete/OverwrittenMethods',
                    );
    }

    public function analyze() {
        // class x { function foo($a, $b) {}}
        // class y extends x { function foo($a, $b) {}} //.... 8 times
        $this->atomIs(array('Method', 'Magicmethod'))
             ->raw(<<<GREMLIN
where(__.optional(__.in('OVERWRITE')).out('OVERWRITE').dedup().in('OVERWRITE').count().is(gt($this->maxOverwrite)))
GREMLIN
)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class PropertyUsedInOneMethodOnly extends Analyzer {
    public function dependsOn(): array {
        return array('Classes/UsedOnceProperty',
                    );
    }

    public function analyze() {
        $this->atomIs(self::CLASSES_ALL)
             ->outIs('PPP')
             ->outIs('PPP')
             ->atomIsNot('Virtualproperty')
             ->analyzerIsNot('Classes/UsedOnceProperty')
             ->filter(
                $this->side()
                     ->goToAllDefinitions()
                     ->outIs('DEFINITION')
                     ->goToInstruction(array('Magicmethod', 'Method'))
                     ->dedup('fullnspath')
                     ->raw('count().is(eq(1))')
             );
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class NewOnFunctioncallOrIdentifier extends Analyzer {

    public function analyze() {

        $mapping = <<<'GREMLIN'
if ( (it.get().value("fullcode") =~ "\\(" ).getCount() != 0 ) {
    x2 = 'Newcall';
} else {
    x2 = 'Identifier';
}
GREMLIN;
        $storage = array('className()' => 'Newcall',
                         'className'   => 'Identifier');

        $this->atomIs('New')
             ->outIs('NEW')
             ->atomIs('Newcall')
             ->raw('map{ ' . $mapping . ' }')
             ->raw('groupCount("gf").cap("gf").sideEffect{ s = it.get().values().sum(); }');
        $types = $this->rawQuery()->toArray();

        if (empty($types)) {
            return;
        }
        $types = $types[0];

        $store = array();
        $total = 0;
        foreach($storage as $key => $v) {
            $c = empty($types[$v]) ? 0 : $types[$v];
            $store[] = array('key'   => $key,
                             'value' => $c);
            $total += $c;
        }
        $this->datastore->addRowAnalyzer($this->analyzerQuoted, $store);

        if ($total === 0) {
            return;
        }

        $types = array_filter($types, function ($x) use ($total) { return $x > 0 && $x / $total < 0.1; });
        $types = '[' . str_replace('\\', '\\\\', makeList(array_keys($types))) . ']';

        $this->atomIs('New')
             ->outIs('NEW')
             ->atomIs('Newcall')
             ->raw('sideEffect{ ' . $mapping . ' }')
             ->raw('filter{ x2 in ' . $types . '}')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class DisconnectedClasses extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/SetClassMethodRemoteDefinition',
                    );
    }

    public function analyze() {
        $this->atomIs('Class')
             ->hasOut('EXTENDS')
             ->savePropertyAs('fullnspath', 'fnp')
             // No usage of method in the parent
             ->not(
                $this->side()
                     ->outIs('DEFINITION')
                     ->atomIs(array('This', 'Static', 'Self'))
                     ->inIs(array('OBJECT', 'CLASS'))
                     ->atomIs(array('Methodcall', 'Staticmethodcall'))
                     ->inIs('DEFINITION')
                     ->goToClass()
                     ->fullnspathIsNot('fullnspath', 'fnp')
             )

             // No usage of property in the parent
             ->not(
                $this->side()
                     ->outIs('DEFINITION')
                     ->atomIs(array('This', 'Static', 'Self'))
                     ->inIs(array('OBJECT', 'CLASS'))
                     ->atomIs(array('Member', 'Staticproperty'))
                     ->inIs('DEFINITION')
                     ->goToClass()
                     ->fullnspathIsNot('fullnspath', 'fnp')
             )

             // No usage of method from the parent
             ->not(
                $this->side()
                     ->collectMethods('methods')
                     ->goToAllParents(self::EXCLUDE_SELF)
                     ->outIs('DEFINITION')
                     ->atomIs(array('This', 'Static', 'Self'))
                     ->inIs(array('OBJECT', 'CLASS'))
                     ->atomIs(array('Methodcall', 'Staticmethodcall'))
                     ->outIs('METHOD')
                     ->outIs('NAME')
                     ->raw('filter{ it.get().value("lccode") in methods}')
             )

             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class OldStyleVar extends Analyzer {
    public function analyze() {
        // class x { var $y = 1;}
        $this->atomIs('Ppp')
             ->tokenIs('T_VAR');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class CitSameName extends Analyzer {
    public function analyze() {

        $this->atomIs(self::CLASSES_ALL)
             ->outIs('NAME')
             ->values('lccode')
             ->unique();
        $classes = $this->rawQuery();

        $this->atomIs('Interface')
             ->outIs('NAME')
             ->values('lccode')
             ->unique();
        $interfaces = $this->rawQuery();

        $this->atomIs('Trait')
             ->outIs('NAME')
             ->values('lccode')
             ->unique();
        $traits = $this->rawQuery();

        $names = array_merge($classes->toArray(), $interfaces->toArray(), $traits->toArray());
        $counts = array_count_values($names);
        $doubles = array_keys(array_filter($counts, function ($x) { return $x > 1; }));

        if (empty($doubles)) {
            return;
        }

        // Classes, traits, interfaces
        $this->atomIs(self::CIT)
             ->outIs('NAME')
             ->codeIs($doubles, self::NO_TRANSLATE)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class IdenticalMethods extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/OverwrittenMethods',
                    );
    }

    public function analyze() {
        return;
        // class a           { public function foo() { /some code/ } }
        // class b extends a { public function foo() { /some code/ } }
        $this->atomIs(self::FUNCTIONS_METHODS)
             ->isNot('visibility', 'private')
             ->isNot('abstract', true)
             ->hasNoInterface()
             ->savePropertyAs('ctype1', 'clonetype')
             ->inIs('OVERWRITE')
             ->atomIs('Method')
             ->samePropertyAs('ctype1', 'clonetype')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class MakeMagicConcrete extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/CreateMagicProperty',
                    );
    }

    protected $magicMemberUsage = 1;

    public function analyze() {
        // class x { __get($x) {}}
        // $a->bbb; $a->bbb; $a->bbb;
        $this->atomIs('Magicmethod')
             ->outIs('NAME')
             ->codeIs('__get')
             ->back('first')

             ->raw(<<<'GREMLIN'
sideEffect{ members = [:]; }
.where(
      __.out("DEFINITION").hasLabel("Member").out("MEMBER").has("token", "T_STRING")
      .sideEffect{ 
        m = it.get().value("fullcode");
        if (members[m] != null) {
          ++members[m]; 
        } else {
          members[m] = 1; 
        }
      }
      .fold()
)
GREMLIN
)
             ->outIs('DEFINITION')
             ->atomIs('Member')
             ->outIs('MEMBER')
             ->tokenIs('T_STRING')
             ->raw('filter{members[it.get().value("fullcode")] > ' . $this->magicMemberUsage . ';}');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class DefinedStaticMP extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/OverwrittenMethods',
                     'Complete/OverwrittenProperties',
                     'Complete/SetClassMethodRemoteDefinition',
                    );
    }

    public function analyze() {
        // static::method() 1rst level
        $this->atomIs('Staticmethodcall')
             ->hasIn('DEFINITION');
        $this->prepareQuery();

        // static::$property the current class
        $this->atomIs('Staticproperty')
             ->not(
                $this->side()
                     ->inIs('DEFINITION')
                     ->atomIs('Virtualproperty')// No check on visibility, we are locall!
                     ->not(
                        $this->side()
                             ->outIs('OVERWRITE')
                             ->atomIs('Propertydefinition')
                             ->inIs('PPP')
                             ->isNot('visibility', 'private')
                     )
              );
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class NonNullableSetters extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/PropagateConstants',
                    );
    }

    public function analyze() {
        // class x { private $p = 1;
        //           function foo() : C { return $this->p; }}
        $this->atomIs('Method')
             ->analyzerIsNot('self')
             ->isNotNullable()
             ->outIs('RETURNTYPE')
             ->savePropertyAs('fullnspath', 'fnp')
             ->fullnspathIsNot(array('\\int', '\\\float', '\\object', '\\boolean', '\\string', '\\array', '\\callable', '\\iterable', '\\void'))

             ->back('first')

             ->outIs('RETURNED')
             ->atomIs('Member')
             ->outIs('OBJECT')
             ->atomIs('This')
             ->inIs('OBJECT')
             ->inIs('DEFINITION')
             ->outIs('DEFAULT')
             ->hasNoIn('RIGHT')

             ->not(
                $this->side()
                     ->has('fullnspath')
                     ->samePropertyAs('fullnspath', 'fnp')
             )
             ->back('first');
        $this->prepareQuery();

        // class x { private $p = 1;
        //           function foo() : C { return $this->p; }}
        $this->atomIs('Method')
             ->analyzerIsNot('self')
             ->isNotNullable()
             ->outIs('RETURNTYPE')
             ->savePropertyAs('fullnspath', 'fnp')
             ->fullnspathIsNot(array('\\int', '\\\float', '\\object', '\\boolean', '\\string', '\\array', '\\callable', '\\iterable', '\\void'))

             ->back('first')

             ->outIs('RETURNED')
             ->atomIs('Member')
             ->outIs('OBJECT')
             ->atomIs('This')
             ->inIs('OBJECT')
             ->inIs('DEFINITION')
             ->outIs('DEFAULT')
             ->atomIs('Void')
             ->back('first');
        $this->prepareQuery();

    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class RedefinedMethods extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/OverwrittenMethods',
                    );
    }

    public function analyze() {
        // class x { function y() {}}
        // class y extends x { function y() {}}
        $this->atomIs('Class')
             ->outIs('METHOD')
             ->atomIs('Method')
             ->as('results')
             ->outIs('OVERWRITE')
             ->isNot('abstract', true) // abstract methods are not redefined.
             ->inIs('METHOD')
             ->back('results');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class UnreachableConstant extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/MakeClassConstantDefinition',
                    );
    }

    public function analyze() {
        // class x { private const A = 1;} echo x::A;

        // Outside a class
        $this->atomIs('Staticconstant')
             ->hasNoClass()
             ->inIs('DEFINITION')
             ->inIs('CONST')
             ->is('visibility', array('protected', 'private'))
             ->back('first');
        $this->prepareQuery();

        // Outside a family class
        $this->atomIs('Staticconstant')
             ->goToClass()
             ->savePropertyAs('fullnspath', 'fnp')
             ->back('first')
             ->inIs('DEFINITION')
             ->inIs('CONST')
             ->is('visibility', 'private')
             ->goToClass()
             ->notSamePropertyAs('fullnspath', 'fnp')
             ->back('first');
        $this->prepareQuery();


    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class FossilizedMethod extends Analyzer {
    protected $fossilizationThreshold = 6;

    public function dependsOn(): array {
        return array('Complete/OverwrittenMethods',
                    );
    }

    public function analyze() {
        // class x
        $this->atomIs(self::FUNCTIONS_METHOD)
             ->hasNoOut('OVERWRITE')
             ->raw('where( __.emit().repeat( __.in("OVERWRITE")).count().is(gt(' . $this->fossilizationThreshold . ')) )');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class UndefinedParentMP extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/SetParentDefinition',
                     'Classes/DefinedParentMP',
                    );
    }

    public function analyze() {
        // parent::method()
        $this->atomIs('Parent')
             ->inIs('CLASS')
             ->atomIsNot('Staticclass')
             ->analyzerIsNot('Classes/DefinedParentMP');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class CouldBeProtectedMethod extends Analyzer {
    public function analyze() {
        // Case of property->property (that's another public access)
        $this->atomIs('Methodcall')
             ->not(
                $this->side()
                     ->outIsIE('OBJECT')
                     ->atomIs('This')
             )
             ->outIs('METHOD')
             ->atomIs('Methodcallname')
             ->values('lccode')
             ->unique();
        $publicMethods = $this->rawQuery()->toArray();

        // Member that is not used outside this class or its children
        $this->atomIs('Method')
             ->isNot('visibility', array('protected', 'private'))
             ->isNot('static', true)
             ->hasClass()
             ->outIs('NAME')
             ->codeIsNot($publicMethods, self::NO_TRANSLATE)
             ->back('first');
        $this->prepareQuery();

        // Case of class::methodcall (that's another public access)

        $this->atomIs('Staticmethodcall')
             ->outIs('CLASS')
             ->tokenIs(self::STATICCALL_TOKEN)
             ->as('classe')
             ->back('first')

             ->hasNoClass()
             ->outIs('METHOD')
             ->atomIs('Methodcallname')
             ->as('method')
             ->select(array('classe' => 'fullnspath',
                            'method' => 'lccode',
                            ))
             ->unique();
        $publicUsage = $this->rawQuery()->toArray();

        $publicStaticMethods = array();
        foreach($publicUsage as $value) {
            array_collect_by($publicStaticMethods, $value['classe'], $value['method']);
        }

        if (!empty($publicStaticMethods)) {
            // Member that is not used outside this class or its children
            $this->atomIs('Method')
                 ->isNot('visibility', array('protected', 'private'))
                 ->is('static', true)
                 ->goToClass()
                 ->fullnspathIs(array_keys($publicStaticMethods))
                 ->savePropertyAs('fullnspath', 'fnp')
                 ->back('first')
                 ->outIs('NAME')
                 ->isNotHash('lccode', $publicStaticMethods, 'fnp')
                 ->back('first');
            $this->prepareQuery();
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class PPPDeclarationStyle extends Analyzer {

    public function analyze() {
        $mapping = <<<'GREMLIN'
if (it.get().value("count") == 1) {
    x2 = 'one';
} else {
    x2 = 'several';
}
GREMLIN;
        $storage = array('unique'   => 'one',
                         'multiple' => 'several');

        $this->atomIs('Ppp')
             ->not(
                $this->side()
                     ->outIs('PPP')
                     ->atomIs('Virtualproperty')
             )
             ->raw('map{ ' . $mapping . ' }')
             ->raw('groupCount("gf").cap("gf").sideEffect{ s = it.get().values().sum(); }');
        $types = $this->rawQuery()->toArray();

        if (empty($types)) {
            return;
        }
        $types = $types[0];

        $store = array();
        $total = 0;
        foreach($storage as $key => $v) {
            $c = empty($types[$v]) ? 0 : $types[$v];
            $store[] = array('key'   => $key,
                             'value' => $c);
            $total += $c;
        }
        $this->datastore->addRowAnalyzer($this->analyzerQuoted, $store);
        if ($total === 0) {
            return;
        }

        $types = array_filter($types, function ($x) use ($total) { return $x > 0 && $x / $total < 0.1; });
        if (empty($types)) {
            return;
        }
        $types = array_keys($types);

        $this->atomIs('Ppp')
             ->not(
                $this->side()
                     ->outIs('PPP')
                     ->atomIs('Virtualproperty')
             )
             ->raw('map{ ' . $mapping . ' }')
             ->raw('filter{ x2 in ***}', $types)
             ->back('first');
        $this->prepareQuery();
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class HiddenNullable extends Analyzer {
    public function analyze() {
        // function foo(int $i = null)
        $this->atomIs('Parameter')
             ->regexIsNot('fullcode', '\\\\?')
             ->regexIsNot('fullcode', '^\\\\S*(?i)null\\\\S*')
             ->outIs('TYPEHINT')
             ->atomIsNot(array('Void', 'Null'))
             ->back('first')
             ->outIs('DEFAULT')
             ->hasNoIn('RIGHT')
             ->atomIs('Null')
             ->back('first');
        $this->prepareQuery();

        // This doesn't apply to properties
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class DynamicClass extends Analyzer {
    public function analyze() {
        // $class::method()
        $this->atomIs('Staticmethodcall')
             ->outIs('CLASS')
             ->atomIs(self::CONTAINERS)
             ->back('first');
        $this->prepareQuery();

        // $class::$property
        $this->atomIs('Staticproperty')
             ->outIs('CLASS')
             ->atomIs(self::CONTAINERS)
             ->back('first');
        $this->prepareQuery();

        // $class::constant
        $this->atomFunctionIs('\\constant')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String')
             ->hasIn('DEFINITION')
             ->back('first');
        $this->prepareQuery();

        // for constants... should check constant() function or Reflexion
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class RaisedAccessLevel extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/OverwrittenProperties',
                     'Complete/OverwrittenMethods',
                     'Complete/OverwrittenConstants',
                    );
    }

    public function analyze() {
        // raised to private
        $this->atomIs('Ppp')
             ->is('visibility', 'private')
             ->outIs('PPP')
             ->as('results')
             ->outIs('OVERWRITE')
             ->atomIs('Propertydefinition')
             ->inIs('PPP')
             ->is('visibility', array('public', 'protected', 'none'))
             ->back('results');
        $this->prepareQuery();

        // raised to protected
        $this->atomIs('Ppp')
             ->is('visibility', 'protected')
             ->outIs('PPP')
             ->as('results')
             ->outIs('OVERWRITE')
             ->atomIs('Propertydefinition')
             ->inIs('PPP')
             ->is('visibility', array('public', 'none'))
             ->back('results');
        $this->prepareQuery();

        // raised to private method
        $this->atomIs(array('Method', 'Magicmethod'))
             ->is('visibility', 'private')
             ->outIs('OVERWRITE')
             ->atomIs(array('Method', 'Magicmethod'))
             ->is('visibility', array('public', 'protected', 'none'))
             ->back('first');
        $this->prepareQuery();

        // raised to protected method
        $this->atomIs(array('Method', 'Magicmethod'))
             ->is('visibility', 'protected')
             ->outIs('OVERWRITE')
             ->atomIs(array('Method', 'Magicmethod'))
             ->is('visibility', array('public', 'none'))
             ->back('first');
        $this->prepareQuery();

        // raised to protected or private for const
        $this->atomIs('Const')
             ->is('visibility', 'private')
             ->outIs('CONST')
             ->as('results')
             ->outIs('OVERWRITE')
             ->inIs('CONST')
             ->is('visibility', array('public', 'protected', 'none'))
             ->back('results');
        $this->prepareQuery();

        // raised to protected for const
        $this->atomIs('Const')
             ->is('visibility', 'protected')
             ->outIs('CONST')
             ->as('results')
             ->outIs('OVERWRITE')
             ->inIs('CONST')
             ->is('visibility', array('public', 'none'))
             ->back('results');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class PropertyDefinition extends Analyzer {
    public function analyze() {
        // class x { private $y; }
        $this->atomIs('Ppp')
             ->outIs('PPP')
             ->atomIs('Propertydefinition');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class DemeterLaw extends Analyzer {
    public function analyze() {
        // law of demeter
        // Still missing foreach and fluent interfaces, static methodcall and static properties
        $this->atomIs('Methodcall')
            // Not a local method
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->outIs('OBJECT')
                             ->outIsIE('VARIABLE') // array calls
                             ->atomIs(array('This', 'Phpvariable'))
                             )
                )

            // Not a local property
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->outIs('OBJECT')
                             ->atomIs('Member')
                             ->outIs('OBJECT')
                             ->atomIs(array('This', 'Phpvariable'))
                             )
                )

            ->outIs('OBJECT')
            // variable is not an argument
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->inIs('DEFINITION')
                             ->inIs('NAME')
                             ->inIs('ARGUMENT')
                             )
                )

            // variable is not a global
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->inIs('DEFINITION')
                             ->inIs('GLOBAL')
                             )
                )

            // variable is not created locally
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->inIs('DEFINITION')
                             ->outIs('DEFINITION')
                             ->inIs('LEFT')
                             ->outIs('RIGHT')
                             ->atomIs('New')
                             )
                )

            // variable is not a caught exception
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->inIs('DEFINITION')
                             ->outIs('DEFINITION')
                             ->inIs('VARIABLE')
                             ->atomIs('Catch')
                             )
                )

             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class AbstractStatic extends Analyzer {
    protected $phpVersion = '7.0-';

    public function analyze() {
        // class x { static abstract function foo() ; }
        $this->atomIs(self::FUNCTIONS_METHOD)
             ->is('abstract', true)
             ->is('static', true);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class CantInstantiateClass extends Analyzer {
    public function analyze() {
        // new X();
        // class x { private function __construct() {}}
        $this->atomIs('New')
             ->analyzerIsNot('self')
             ->outIs('NEW')
             ->inIs('DEFINITION')
             ->outIs('MAGICMETHOD')
             ->codeIs('__construct', self::TRANSLATE, self::CASE_INSENSITIVE)
             ->is('visibility', array('private', 'protected'))
             ->back('first');
        $this->prepareQuery();

        // in the parent
        $this->atomIs('New')
             ->analyzerIsNot('self')
             ->outIs('NEW')
             ->inIs('DEFINITION')
             ->outIs('EXTENDS')
             ->inIs('DEFINITION')
             ->outIs('MAGICMETHOD')
             ->codeIs('__construct', self::TRANSLATE, self::CASE_INSENSITIVE)
             ->is('visibility', array('private', 'protected'))
             ->back('first');
        $this->prepareQuery();

        // in the trait
        $this->atomIs('New')
             ->analyzerIsNot('self')
             ->outIs('NEW')
             ->inIs('DEFINITION')
             ->outIs('USE')
             ->outIs('USE')
             ->inIs('DEFINITION')
             ->outIs('MAGICMETHOD')
             ->codeIs('__construct', self::TRANSLATE, self::CASE_INSENSITIVE)
             ->is('visibility', array('private', 'protected'))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class RedefinedDefault extends Analyzer {
    public function analyze() {
        // class x { private $y = 1; function __construct() { $this->y = 2;}}
        $this->atomIs('Ppp')
             ->outIs('PPP')
             ->atomIs('Propertydefinition')
             ->savePropertyAs('propertyname', 'name')
             ->filter(
                $this->side()
                     ->outIs('DEFAULT')
                     ->hasNoIn('RIGHT')
             )
             ->as('results')
             ->goToClass()

             ->outIs('MAGICMETHOD')
             ->atomIs('Magicmethod')
             ->outIs('NAME')
             ->codeIs('__construct')
             ->inIs('NAME')
             ->outIs('BLOCK')
             ->outIs('EXPRESSION')
// Not using atomInside, to avoid values in a condition
//             ->atomInside('Assignation')
             ->atomIs('Assignation')
             ->codeIs('=')
             ->outIs('RIGHT')
             ->outIsIE('CODE')
             ->is('constant', true)
             ->inIsIE('CODE')
             ->inIs('RIGHT')
             ->outIs('LEFT')
             ->atomIs('Member')
             ->outIs('OBJECT')
             ->atomIs('This')
             ->inIs('OBJECT')
             ->outIs('MEMBER')
             ->samePropertyAs('code', 'name', self::CASE_SENSITIVE)

             // sameParameterAs
             ->back('results');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class CantExtendFinal extends Analyzer {
    public function analyze() {
        // final class x {}
        // class y extends x {}
        $this->atomIs('Class')
             ->goToAllParents(self::EXCLUDE_SELF)
             ->is('final', true)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class ShouldUseThis extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/OverwrittenMethods',
                     'Classes/UseThis',
                     'Classes/MethodIsOverwritten',
                    );
    }

    public function analyze() {
        // Non-Static Methods must use $this
        $this->atomIs('Method')
             ->isNot('static', true)
             ->isNot('abstract', true)
             ->not(
                $this->side()
                     ->outIs('BLOCK')
                     ->is('count', 1)
                     ->outIs('EXPRESSION')
                     ->atomIs('Void')
             )
             ->hasClassTrait()
             ->analyzerIsNot(array('Classes/MethodIsOverwritten',
                                   'Classes/UseThis',
                                   ));
        $this->prepareQuery();

        // Static Methods must use a static call to property or variable (not constant though)
        $this->atomIs('Method')
             ->is('static', true)
             ->isNot('abstract', true)
             ->not(
                $this->side()
                     ->outIs('BLOCK')
                     ->is('count', 1)
                     ->outIs('EXPRESSION')
                     ->atomIs('Void')
             )
             ->hasClassTrait()
             ->analyzerIsNot(array('Classes/MethodIsOverwritten',
                                   'Classes/UseThis',
                                   ));
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class TestClass extends Analyzer {
    public function analyze() {
        $testClasses =  $this->loadIni('php_unittest.ini', 'classes');
        $testClasses =  makeFullNsPath($testClasses);

        $this->atomIs('Class')
             ->goToAllParents(self::INCLUDE_SELF)
             ->outIs('EXTENDS')
             ->fullnspathIs($testClasses)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class UselessAbstract extends Analyzer {
    public function dependsOn(): array {
        return array('Classes/OnlyStaticMethods',
                    );
    }

    public function analyze() {
        // abstract class that are never instanciated
        $this->atomIs('Class')
             ->is('abstract', true)
             ->analyzerIsNot('Classes/OnlyStaticMethods')
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->outIs('DEFINITION')
                             ->atomIsNot('This')
                     )
             );
        $this->prepareQuery();

        // abstract class without nothing in
        $this->atomIs('Class')
             ->analyzerIsNot('self')
             ->is('abstract', true)
             ->filter(
                $this->side()
                     ->outIs('DEFINITION')
                     ->atomIsNot('This')
             )
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->outIs(self::CLASS_ELEMENTS)
                             ->atomIsNot('Virtualproperty')
                     )
             );
        $this->prepareQuery();

        // abstract class with not methods nor const nor trait
        $this->atomIs('Class')
             ->analyzerIsNot('self')
             ->is('abstract', true)
             ->filter(
                $this->side()
                     ->outIs('DEFINITION')
                     ->atomIsNot('This')
             )

             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->outIs(self::CLASS_ELEMENTS)
                             ->atomIsNot('Virtualproperty')
                     )
             );
        $this->prepareQuery();
     }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Classes;

use Exakat\Analyzer\Analyzer;

class UnusedProtectedMethods extends Analyzer {
    public function dependsOn(): array {
        return array('Classes/UsedProtectedMethod',
                    );
    }

    public function analyze() {
        // class x { protected function foo() {} }
        // class y extends x {}
        $this->atomIs(self::FUNCTIONS_METHOD)
             ->is('visibility', 'protected')
             ->analyzerIsNot('Classes/UsedProtectedMethod');
        $this->prepareQuery();
    }
}

?>
<?php
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

declare(strict_types = 1);

namespace Exakat\Analyzer;

use Exakat\GraphElements;
use Exakat\Exceptions\GremlinException;
use Exakat\Exceptions\NoSuchAnalyzer;
use Exakat\Exceptions\UnknownDsl;
use Exakat\Query\Query;
use Exakat\Query\QueryDoc;
use Exakat\Project;
use Exakat\Graph\Helpers\GraphResults;
use Exakat\Query\DSL\Command;
use Exakat\Phpexec;

abstract class Analyzer {
    // Query types
    const QUERY_DEFAULT       = 1;   // For compatibility purposes
    const QUERY_ANALYZER      = 2;   // same as above, but explicit
    const QUERY_VALUE         = 3;   // returns a single value
    const QUERY_RAW           = 4;   // returns data, no storage
    const QUERY_HASH          = 5;   // returns a list of values
    const QUERY_MULTIPLE      = 6;   // returns several links at the same time (TBD)
    const QUERY_ARRAYS        = 7;   // arrays of array
    const QUERY_TABLE         = 8;   // to specific table
    const QUERY_MISSING       = 9;   // store values that are not in the graph
    const QUERY_PHP_ARRAYS    = 10;  // store a PHP array of values into hashResults
    const QUERY_PHP_HASH      = 11;  // store a PHP array of values into hashResults
    const QUERY_NO_ANALYZED   = 12;  // store links, but not the ANALYZED one
    const QUERY_RESULTS       = 13;  // store results directly to dump, no ANALYZED
    const QUERY_HASH_ANALYZER = 14;  // store results directly to hashAnalyzer

    protected $datastore  = null;

    protected $rowCount       = 0; // Number of found values
    protected $processedCount = 0; // Number of initial values
    protected $queryCount     = 0; // Number of ran queries
    protected $rawQueryCount  = 0; // Number of ran queries

    private $queries          = array();
    private $query            = null;
    private $queryDoc         = null;

    public $config         = null;

    public static $availableAtoms         = array();
    public static $availableLinks         = array();
    public static $availableFunctioncalls = array();
    private static $calledClasses         = null;
    private static $calledInterfaces      = null;
    private static $calledTraits          = null;
    private static $calledNamespaces      = null;
    private static $calledDirectives      = null;

    private static $jsonCache = array();
    private static $iniCache  = array();

    private $analyzer           = '';       // Current class of the analyzer (called from below)
    protected $analyzerTitle    = '';       // Name use when storing in the dump.sqlites
    protected $shortAnalyzer    = '';
    protected $analyzerQuoted   = '';
    protected $analyzerId       = 0;
    protected $queryId          = 0;

    protected $analyzerName      = 'no analyzer name';
    protected $analyzerTable     = 'no analyzer table name';
    protected $analyzerSQLTable  = 'no analyzer sql creation';
    protected $missingQueries    = array();
    protected $analyzerValues    = array();
    protected $storageType       = self::QUERY_DEFAULT;

    protected $phpVersion       = self::PHP_VERSION_ANY;
    protected $phpConfiguration = 'Any';

    private $path_tmp           = null;

    const S_CRITICAL = 'Critical';
    const S_MAJOR    = 'Major';
    const S_MINOR    = 'Minor';
    const S_NOTE     = 'Note';
    const S_NONE     = 'None';

    const T_NONE    = 'None';    //'0';
    const T_INSTANT = 'Instant'; //'5';
    const T_QUICK   = 'Quick';   //30';
    const T_SLOW    = 'Slow';    //60';
    const T_LONG    = 'Long';    //360';

    const PHP_VERSION_ANY = 'Any';

    const COMPATIBLE                 =  0;
    const UNKNOWN_COMPATIBILITY      = -1;
    const VERSION_INCOMPATIBLE       = -2;
    const CONFIGURATION_INCOMPATIBLE = -3;

    const CASE_SENSITIVE   = true;
    const CASE_INSENSITIVE = false;

    const WITH_CONSTANTS    = 1;
    const WITHOUT_CONSTANTS = false;

    const WITH_VARIABLES    = 2;
    const WITHOUT_VARIABLES = false;

    const TRANSLATE    = true;
    const NO_TRANSLATE = false;

    public const CONTAINERS       = array('Variable', 'Staticproperty', 'Member', 'Array');
    public const VARIABLES_USER   = array('Variable', 'Variableobject', 'Variablearray');
    public const CONTAINERS_PHP   = array('Variable', 'Staticproperty', 'Member', 'Array', 'Phpvariable');
    public const CONTAINERS_ROOTS = array('Variable', 'Staticproperty', 'Member', 'Array', 'Variableobject', 'Variablearray');
    public const VARIABLES_SCALAR = array('Variable', 'Variableobject', 'Variablearray', 'Globaldefinition', 'Staticdefinition', 'Phpvariable', 'Parametername');
    public const VARIABLES_ALL    = array('Variable', 'Variableobject', 'Variablearray', 'Globaldefinition', 'Staticdefinition', 'Propertydefinition', 'Phpvariable', 'Parametername');
    public const ARGUMENTS        = array('Ppp', 'Parameter');

    public const LITERALS         = array('Integer', 'Float', 'Null', 'Boolean', 'String', 'Heredoc');
    public const LOOPS_ALL        = array('For' , 'Foreach', 'While', 'Dowhile');

    public const FUNCTIONS_TOKENS = array('T_STRING', 'T_NS_SEPARATOR', 'T_ARRAY', 'T_EVAL', 'T_ISSET', 'T_EXIT', 'T_UNSET', 'T_ECHO', 'T_OPEN_TAG_WITH_ECHO', 'T_PRINT', 'T_LIST', 'T_EMPTY', 'T_OPEN_BRACKET');
    public const FUNCTIONS_ALL    = array('Function', 'Closure', 'Method', 'Magicmethod', 'Arrowfunction');

    public const FUNCTIONS_NAMED  = array('Function', 'Method', 'Magicmethod');
    public const FUNCTIONS        = array('Function', 'Closure', 'Arrowfunction');
    public const FUNCTIONS_METHOD = array('Method', 'Magicmethod');

    public const CIT              = array('Class', 'Classanonymous', 'Interface', 'Trait');
    public const CLASSES_ALL      = array('Class', 'Classanonymous');
    public const CLASSES_TRAITS   = array('Class', 'Classanonymous', 'Trait');
    public const RELATIVE_CLASS   = array('Parent', 'Static', 'Self');
    public const STATIC_NAMES     = array('Nsname', 'Identifier');
    public const STATICCALL_TOKEN = array('T_STRING', 'T_STATIC', 'T_NS_SEPARATOR');
    public const CLASS_ELEMENTS   = array('METHOD', 'MAGICMETHOD', 'PPP', 'CONST', 'USE');
    public const CLASS_METHODS    = array('METHOD', 'MAGICMETHOD');

    public const FUNCTIONS_CALLS  = array('Functioncall' , 'Newcall', 'Methodcall', 'Staticmethodcall');
    public const CALLS            = array('Functioncall', 'Methodcall', 'Staticmethodcall' );
    public const FUNCTIONS_USAGE  = array('Functioncall', 'Methodcall', 'Staticmethodcall', 'Eval', 'Echo', 'Print', 'Unset' );

    public const STRINGS_ALL      = array('Concatenation', 'Heredoc', 'String', 'Identifier', 'Nsname');
    public const STRINGS_LITERALS  = array('Concatenation', 'Heredoc', 'String');

    public const CONSTANTS_ALL    = array('Identifier', 'Nsname');

    public const EXPRESSION_ATOMS = array('Addition', 'Multiplication', 'Power', 'Ternary', 'Noscream', 'Not', 'Parenthesis', 'Functioncall' );
    public const BREAKS           = array('Goto', 'Return', 'Break', 'Continue');

    const INCLUDE_SELF = false;
    const EXCLUDE_SELF = true;

    const CONTEXT_IN_CLOSURE = 1;
    const CONTEXT_OUTSIDE_CLOSURE = 2;

    const MAX_LOOPING = 15;
    const TIME_LIMIT  = 10000;  // 10s, used with timelimit() from gremlin.

    private static $rulesId         = null;

    protected $rulesets  = null;

    protected $methods = null;
    protected $gremlin = null;
    protected $dictCode = null;

    protected $linksDown = '';

    public function __construct() {
        assert(func_num_args() === 0, 'Too many arguments for ' . __CLASS__);
        $this->analyzer       = get_class($this);
        $this->analyzerQuoted = self::getName($this->analyzer);
        $this->shortAnalyzer  = str_replace('\\', '/', substr($this->analyzer, 16));

        $this->config    = exakat('config');
        $this->rulesets  = exakat('rulesets');
        $this->gremlin   = exakat('graphdb');
        $this->datastore = exakat('datastore');
        $this->datastore->reuse();

        $this->dictCode  = exakat('dictionary');
        $docs            = exakat('docs');

        if (strpos($this->analyzer, '\\Common\\') === false) {
            $parameters = $docs->getDocs($this->shortAnalyzer)['parameter'];
            foreach($parameters as $parameter) {
                assert(isset($this->{$parameter['name']}), "Missing definition for library/Exakat/Analyzer/$this->analyzerQuoted.php :\nprotected \$$parameter[name] = '$parameter[default]';\n");

                if (isset($this->config->{$this->analyzerQuoted}[$parameter['name']])) {
                    $this->{$parameter['name']} = $this->config->{$this->analyzerQuoted}[$parameter['name']];
                } else {
                    $this->{$parameter['name']} = $parameter['default'];
                }

                switch($parameter['type']) {
                    case 'integer':
                        $this->{$parameter['name']} = (int) $this->{$parameter['name']};
                        break;

                    case 'ini_hash':
                        $this->{$parameter['name']} = parse_ini_string($this->{$parameter['name']})[$parameter['name']] ?? array();
                        break;

                    case 'json':
                        $this->{$parameter['name']} = json_decode($this->{$parameter['name']});
                        break;

                    default :
                        // Nothing, really
                }
            }
        }

        $this->linksDown = GraphElements::linksAsList();

        if (empty(self::$availableAtoms) && $this->gremlin !== null) {
            $data = $this->datastore->getCol('TokenCounts', 'token');

            self::$availableAtoms = GraphElements::$ATOMS_VIRTUAL;
            self::$availableLinks = GraphElements::$LINKS_VIRTUAL;

            foreach($data as $token){
                if ($token === strtoupper($token)) {
                    self::$availableLinks[] = $token;
                } else {
                    self::$availableAtoms[] = $token;
                }
            }

            self::$availableFunctioncalls = $this->datastore->getCol('functioncalls', 'functioncall');
        }
        $this->methods = exakat('methods');

        $this->initNewQuery();
    }

    public function init(int $analyzerId = null): int {
        // always reload list of analysis from the database
        $query = <<<'GREMLIN'
g.V().hasLabel("Analysis").as("analyzer", "id").select("analyzer", "id").by("analyzer").by(id);
GREMLIN;
        $res = $this->gremlin->query($query);

        // Double is a safe guard, in case analysis were created twice
        $double = array();
        foreach($res as list('analyzer' => $analyzer, 'id' => $id)) {
            if (isset(self::$rulesId[$analyzer]) && self::$rulesId[$analyzer] !== $id) {
                $double[] = $id;
            } else {
                self::$rulesId[$analyzer] = $id;
            }
        }

        if (!empty($double)) {
            $chunks = array_chunk($double, 200);
            foreach($chunks as $list) {
                $list = makeList($list);
                $query = <<<GREMLIN
g.V({$list}).drop()
GREMLIN;
               $this->gremlin->query($query);
           }
       }

        if ($analyzerId === null) {
            if (isset(self::$rulesId[$this->shortAnalyzer])) {
                // Removing all edges
                $this->analyzerId = self::$rulesId[$this->shortAnalyzer];
                $query = <<<GREMLIN
g.V({$this->analyzerId}).property("count", -2).outE("ANALYZED").drop()
GREMLIN;
                $this->gremlin->query($query);
            } else {
                $resId = $this->gremlin->getId();

                $query = <<<GREMLIN
g.addV().property(T.id, $resId)
        .property(T.label, "Analysis")
        .property("analyzer", "{$this->analyzerQuoted}")
        .property("count", -1)
        .id()
GREMLIN;
                $res = $this->gremlin->query($query);
                $this->analyzerId = $res->toInt();
                self::$rulesId[$this->shortAnalyzer] = $this->analyzerId;
            }
        } else {
            $this->analyzerId = $analyzerId;
        }

        assert($this->analyzerId != 0, self::class . ' was inited with Id 0. Can\'t save with that!');

        return $this->analyzerId;
    }

    public function __destruct() {
        if ($this->path_tmp !== null) {
            unlink($this->path_tmp);
        }
    }

    public function setAnalyzer(string $analyzer): void {
        $this->analyzer = $this->rulesets->getClass($analyzer);
        if ($this->analyzer === false) {
            throw new NoSuchAnalyzer($analyzer, $this->rulesets);
        }
        $this->analyzerQuoted = self::getName($this->analyzer);
        $this->shortAnalyzer  = str_replace('\\', '/', substr($this->analyzer, 16));
    }

    public function getInBaseName(): string {
        return $this->analyzerQuoted;
    }

    public static function getName(string $classname): string {
        return str_replace( array('Exakat\\Analyzer\\', '\\'), array('', '/'), $classname);
    }

    public function getDump(): array {
        $this->atomIs('Analysis')
             ->is('analyzer', array($this->shortAnalyzer))
             ->savePropertyAs('analyzer', 'analyzer')
             ->outIs('ANALYZED')
             ->raw(<<<GREMLIN
 sideEffect{ line = it.get().value("line");
             fullcode = it.get().value("fullcode");
             file="None"; 
             theFunction = ""; 
             theClass=""; 
             theNamespace=""; 
             }
.where( __.until( hasLabel("Project") ).repeat( 
    __.in($this->linksDown)
      .sideEffect{ if (theFunction == "" && it.get().label() in ["Function", "Closure", "Arrayfunction", "Magicmethod", "Method"]) { theFunction = it.get().value("fullcode")} }
      .sideEffect{ if (theClass == ""    && it.get().label() in ["Class", "Trait", "Interface", "Classanonymous"]                ) { theClass = it.get().value("fullcode")   } }
      .sideEffect{ if (it.get().label() == "File") { file = it.get().value("fullcode")} }
       ).fold()
)
.map{ ["fullcode":fullcode, 
       "file":file, 
       "line":line, 
       "namespace":theNamespace, 
       "class":theClass, 
       "function":theFunction,
       "analyzer":analyzer];
}
GREMLIN
);

        return $this->rawQuery()->toArray();
    }

    public function getRulesets(): array {
        $analyzer = $this->getName($this->analyzerQuoted);
        return $this->rulesets->getRulesetForAnalyzer($analyzer);
    }

    public function getPhpVersion(): string {
        return $this->phpVersion;
    }

    public function checkPhpConfiguration(Phpexec $php): bool {
        // this handles Any version of PHP
        if ($this->phpConfiguration === 'Any') {
            return true;
        }

        foreach($this->phpConfiguration as $ini => $value) {
            if ($php->getConfiguration($ini) != $value) {
                return false;
            }
        }

        return true;
    }

    public function getCalledClasses(): array {
        if (self::$calledClasses === null) {
            $news = $this->query('g.V().hasLabel("New").out("NEW").not(where( __.in("DEFINITION"))).values("fullnspath")')
                         ->toArray();
            $staticcalls = $this->query('g.V().hasLabel("Staticconstant", "Staticmethodcall", "Staticproperty", "Instanceof", "Catch").out("CLASS").not(where( __.in("DEFINITION"))).values("fullnspath")')
                                ->toArray();
            $typehints   = $this->query('g.V().hasLabel("Method", "Magicmethod", "Closure", "Function").out("ARGUMENT").out("TYPEHINT").not(where( __.in("DEFINITION"))).values("fullnspath")')
                                ->toArray();
            $returntype  = $this->query('g.V().hasLabel("Method", "Magicmethod", "Closure", "Function").out("RETURNTYPE").not(where( __.in("DEFINITION"))).values("fullnspath")')
                                ->toArray();
            self::$calledClasses = array_unique(array_merge($staticcalls,
                                                            $news,
                                                            $typehints,
                                                            $returntype));
        }

        return self::$calledClasses;
    }

    public function getCalledInterfaces(): array {
        if (self::$calledInterfaces === null) {
            self::$calledInterfaces = $this->query('g.V().hasLabel("Analysis").has("analyzer", "Interfaces/InterfaceUsage").out("ANALYZED").values("fullnspath")')
                                           ->toArray();
        }

        return self::$calledInterfaces;
    }

    public function getCalledTraits(): array {
        if (self::$calledTraits === null) {
            $query = <<<'GREMLIN'
g.V().hasLabel("Analyzer")
     .has("analyzer", "Traits/TraitUsage")
     .out("ANALYZED")
     .values("fullnspath")
GREMLIN;
            self::$calledTraits = $this->query($query)
                                       ->toArray();
        }

        return self::$calledTraits;
    }

    public function getCalledNamespaces(): array {
        if (self::$calledNamespaces === null) {
            $query = <<<'GREMLIN'
g.V().hasLabel("Namespace")
     .values("fullnspath")
     .unique()
GREMLIN;
            self::$calledNamespaces = $this->query($query)
                                           ->toArray();
        }

        return self::$calledNamespaces;
    }

    public function getCalledDirectives(): array {
        if (self::$calledDirectives === null) {
            $query = <<<'GREMLIN'
g.V().hasLabel("Analysis")
     .has("analyzer", "Php/DirectivesUsage")
     .out("ANALYZED")
     .out("ARGUMENT")
     .has("rank", 0)
     .hasLabel("String")
     .has("noDelimiter")
     .values("noDelimiter")
     .unique()
GREMLIN;
            self::$calledDirectives = $this->query($query)
                                           ->toArray();
        }

        return self::$calledDirectives;
    }

    public function checkPhpVersion(string $version): bool {
        // this handles Any version of PHP
        if ($this->phpVersion === self::PHP_VERSION_ANY) {
            return true;
        }

        // version and above
        if (($this->phpVersion[-1] === '+') && version_compare($version, $this->phpVersion) >= 0) {
            return true;
        }

        // up to version
        if (($this->phpVersion[-1] === '-') && version_compare($version, $this->phpVersion) < 0) {
            return true;
        }

        // version range 1.2.3-4.5.6
        if (strpos($this->phpVersion, '-') !== false) {
            list($lower, $upper) = explode('-', $this->phpVersion);
            return version_compare($version, $lower) >= 0 && version_compare($version, $upper) <= 0;
        }

        // One version only
        if (version_compare($version, $this->phpVersion) == 0) {
            return true;
        }

        // Default behavior if we don't understand :
        return false;
    }

    // @doc return the list of dependences that must be prepared before the execution of an analyzer
    // @doc by default, nothing.
    public function dependsOn(): array {
        return array();
    }

    public function query(string $queryString, array $arguments = array()) {
        try {
            $result = $this->gremlin->query($queryString, $arguments);
        } catch (GremlinException $e) {
            display($e->getMessage() . $queryString);
            $result = new \StdClass();
            $result->processed = 0;
            $result->total = 0;
            return array($result);
        }

        return $result;
    }

    public function prepareSide(): Command {
        return $this->query->prepareSide();
    }

    public function run(): int {
        $this->analyze();

        $this->execQuery();

        return $this->rowCount;
    }

    public function getRowCount(): int {
        return $this->rowCount;
    }

    public function getProcessedCount(): int {
        return $this->processedCount;
    }

    public function getRawQueryCount(): int {
        return $this->rawQueryCount;
    }

    public function getQueryCount(): int {
        return $this->queryCount;
    }

    abstract public function analyze();

    public function printQuery() {
        $this->query->printQuery();
    }

    public function prepareQuery(): void {
        switch($this->storageType) {
            case self::QUERY_MISSING:
                $this->storeMissing();
                break;

            case self::QUERY_NO_ANALYZED:
                $this->storeToGraph(false);
                break;

            case self::QUERY_DEFAULT:
            default:
                $this->storeToGraph(true);
                break;
        }

         // initializing a new query
        $this->initNewQuery();
    }

    public function storeMissing() {
        foreach($this->missingQueries as $m) {
            $query = <<<GREMLIN
g.addV().{$m->toAddV()}
        .addE('ANALYZED')
        .from(g.V({$this->analyzerId}))
GREMLIN;

            $this->gremlin->query($query, array());

            ++$this->processedCount;
            ++$this->rowCount;
        }
    }

    public function storeError(string $error = 'An error happened', int $error_type = self::UNKNOWN_COMPATIBILITY) {
        $query = <<<GREMLIN
g.addV('Noresult').property('code',                              0)
                  .property('fullcode',                          '$error')
                  .property('virtual',                            true)
                  .property('line',                               $error_type)
                  .addE('ANALYZED')
                  .from(g.V($this->analyzerId));
GREMLIN;

        $this->gremlin->query($query);

        $this->datastore->addRow('analyzed', array($this->shortAnalyzer => -1 ) );
    }

    private function storeToGraph(bool $analyzed = true): void {
        if ($this->query->canSkip()) {
            return;
        }
        ++$this->queryId;

        if ($analyzed === true) {
            $analyzed = ".addE(\"ANALYZED\").from(g.V({$this->analyzerId}))";
        } else {
            $analyzed = '.property("complete", "' . $this->shortAnalyzer . '")';
        }

        $this->raw(<<<GREMLIN
dedup().sack{m,v -> ++m["total"]; m;}
        $analyzed
       .sideEffect( g.V({$this->analyzerId}).property("count", -1))
       .count()
       .sack()

// Query (#{$this->queryId}) for {$this->analyzer}
// php {$this->config->php} analyze -p {$this->config->project} -P {$this->analyzer} -v

GREMLIN
);
        $this->query->prepareQuery();
        $this->queries[] = $this->query;
    }

    public function queryDefinition($query) {
        return $this->gremlin->query($query);
    }

    public function rawQuery() {
        $this->query->prepareRawQuery();
        if ($this->query->canSkip()) {
            $result = new GraphResults();
        } else {
            $result = $this->gremlin->query($this->query->getQuery(), $this->query->getArguments());
        }

        $this->initNewQuery();

        return $result;
    }

    public function printRawQuery() {
        $this->query->prepareRawQuery();
        print $this->query->getQuery();

        print_r($this->query->getArguments());

        die(__METHOD__);
    }

    private function initNewQuery(): void {
        $this->query = new Query((count($this->queries) + 1),
                                  new Project('test'),
                                  $this->analyzerQuoted,
                                  $this->config->executable,
                                  $this->dependsOn(),
                                  );
/*
        if ($this->queryDoc !== null) {
            $this->queryDoc->display();
        }*/
        $this->queryDoc = new QueryDoc();
    }

    public function execQuery(): int {
        if (empty($this->queries)) {
            $this->gremlin->query("g.V({$this->analyzerId}).property(\"count\", g.V({$this->analyzerId}).out(\"ANALYZED\").count())", array());
            return 0;
        }

        // @todo add a test here ?
        foreach($this->queries as $query) {
            if ($query->canSkip()) {
                continue;
            }

            $r = $this->gremlin->query($query->getQuery(), $query->getArguments());
            ++$this->queryCount;

            $this->processedCount += $r[0]['processed'];
            $this->rowCount       += $r[0]['total'];
        }

        // count the number of results
        $this->gremlin->query("g.V({$this->analyzerId}).property(\"count\", g.V({$this->analyzerId}).out(\"ANALYZED\").count())", array());

        // reset for the next
        $this->queries = array();

        // @todo multiple results ?
        // @todo store result in the object until reading.
        return $this->rowCount;
    }

    protected function loadIni(string $file, string $index = null) {
        $fullpath = "{$this->config->dir_root}/data/$file";

        if (isset(self::$iniCache[$fullpath]->$index)) {
            if ($index === null) {
                return self::$iniCache[$fullpath];
            } else {
                return self::$iniCache[$fullpath]->$index;
            }
        }

        if (file_exists($fullpath)) {
            $ini = (object) parse_ini_file($fullpath, \INI_PROCESS_SECTIONS);
        } elseif (($this->config->ext !== null) && ($iniString = $this->config->ext->loadData("data/$file")) != '') {
            $ini = (object) parse_ini_string($iniString, \INI_PROCESS_SECTIONS);
        } elseif (($this->config->extension_dev !== null) &&
                  file_exists("{$this->config->extension_dev}/data/$file")) {
            $ini = (object) parse_ini_file("{$this->config->extension_dev}/data/$file", \INI_PROCESS_SECTIONS);
        } else {
            assert(false, "No INI for '$file'.");
        }

        if (!isset(self::$iniCache[$fullpath])) {
            self::$iniCache[$fullpath] = $ini;
        }

        if ($index !== null && isset(self::$iniCache[$fullpath]->$index)) {
            return self::$iniCache[$fullpath]->$index;
        }

        return self::$iniCache[$fullpath];
    }

    protected function loadJson($file, $property = null) {
        $fullpath = "{$this->config->dir_root}/data/$file";

        if (!isset(self::$jsonCache[$fullpath])) {
            if (file_exists($fullpath)) {
                $json = json_decode(file_get_contents($fullpath), \JSON_OBJECT);
            } elseif ((!$this->config->ext !== null) && !empty($jsonString = $this->config->ext->loadData("data/$file"))) {
                $json = json_decode($jsonString, \JSON_OBJECT);
            } elseif (($this->config->extension_dev !== null) && !empty($jsonString = $this->config->dev->loadData("data/$file"))) {
                $json = json_decode($jsonString, \JSON_OBJECT);
            } else {
                assert(false, "No JSON for '$file'.");
            }

            self::$jsonCache[$fullpath] = $json;
        }

        if ($property !== null && isset(self::$jsonCache[$fullpath]->$property)) {
            return self::$jsonCache[$fullpath]->$property;
        }

        return self::$jsonCache[$fullpath];
    }

    protected function load(string $file, $property = null) {
        $inifile = "{$this->config->dir_root}/data/$file.ini";
        if (file_exists($inifile)) {
            $ini = $this->loadIni("$file.ini", $property);
        } else {
            $inifile = "{$this->config->dir_root}/data/$file.json";
            if (file_exists($inifile)) {
                $ini = $this->loadJson("$file.json", $property);
            } else {
                $ini = array();
            }
        }

        return $ini;
    }

    public function hasResults(): bool {
        return $this->rowCount > 0;
    }

    public static function makeBaseName($className): string {
        // No Exakat, no Analyzer, using / instead of \
        return $className;
    }

    protected function loadCode(string $path): string {
        if (file_exists($this->config->code_dir . $path)) {
            return (string) file_get_contents($this->config->code_dir . $path);
        } else {
            return '';
        }
    }

    public function __call($name, $args) {
//        $this->queryDoc->$name(...$args);
        if ($this->query->canSkip()) {
            return $this;
        }

        $name = $name === 'as' ? '_as' : $name;

        try {
            $this->query->$name(...$args);
//            $this->queryDoc->$name(...$args);
        } catch (UnknownDsl $e) {
            $this->query->StopQuery();
            $rank = $this->queryId + 1;
            display("Found an unknown DSL '$name', in {$this->shortAnalyzer}#{$rank}. Aborting query\n");
            // This needs to be logged!
        }

        return $this;
    }

    public function prepareForDump(array $dumpQueries): void {
        if (empty($dumpQueries)) {
            return;
        }
        $export = '<?php $queries = ' . var_export($dumpQueries, true) . '; ?>';
        $id = crc32($export);

        file_put_contents($this->config->tmp_dir . '/dump-' . $id . '.php', $export);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Constants;

use Exakat\Analyzer\Analyzer;

class PhpConstantUsage extends Analyzer {
    public function dependsOn(): array {
        return array('Constants/ConstantUsage',
                    );
    }

    public function analyze() {
        // echo PHP_OS
        // print \PHP_SELF
        $this->analyzerIs('Constants/ConstantUsage')
             ->is('isPhp', true);
        $this->prepareQuery();

        $this->atomIs(array('Boolean', 'Null'));
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Constants;

use Exakat\Analyzer\Analyzer;

class IsPhpConstant extends Analyzer {
    public function analyze() {
        // Namespaced constant (\PATHINFO_BASENAME)
        $this->atomIs(self::STATIC_NAMES)
             ->is('isPhp', true);
        $this->prepareQuery();

        // inside Use
        $this->atomIs('Usenamespace')
             ->hasOut('CONST')
             ->outIs('USE')
             ->analyzerIsNot('self')
             ->is('isPhp', true);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Constants;

use Exakat\Analyzer\Analyzer;

class IsExtConstant extends Analyzer {

    public function dependsOn(): array {
        return array('Constants/ConstantUsage',
                    );
    }

    public function analyze() {
        $exts = $this->rulesets->listAllAnalyzer('Extensions');

        $constants = array($this->loadIni('php_constants.ini', 'constants'));
        foreach($exts as $ext) {
            $inifile = str_replace('Extensions\Ext', '', $ext);
            $ini = $this->load($inifile, 'constants');

            if (!empty($ini[0])) {
                $constants[] = $ini;
            }
        }

        $constants = array_merge(...$constants);
        if (empty($constants)) {
            // This won't happen, unless the above reading has failed
            return;
        }

        $constants = array_unique($constants);
        $constants = array_values($constants);
        $constantsFullNs = makeFullNsPath($constants, \FNP_CONSTANT);

        // based on fullnspath
        $this->analyzerIs('Constants/ConstantUsage')
             ->atomIs(array('Identifier', 'Nsname'))
             ->hasNoParent('Constant', 'DEFINITION')
             ->is('isPhp', true)
             ->raw('filter{ fnp = it.get().value("fullnspath"); d = fnp.tokenize("\\\\").last(); ***.contains("\\\\" + d);}', $constantsFullNs);
        $this->prepareQuery();

        $this->analyzerIs('Constants/ConstantUsage')
             ->atomIs('Nsname')
             ->hasNoParent('Constant', 'DEFINITION')
             ->is('isPhp', true)
             ->fullnspathIs($constantsFullNs);
        $this->prepareQuery();

    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Constants;

use Exakat\Analyzer\Analyzer;

class ConditionedConstants extends Analyzer {
    public function analyze() {
        // if () { define(); }
        $this->atomIs('Defineconstant')
             ->hasIfthen()
             ->back('first')
             ->outIs('NAME');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Constants;

use Exakat\Analyzer\Analyzer;

class ConstRecommended extends Analyzer {
    public function dependsOn(): array {
        return array('Constants/ConstantUsage',
                    );
    }

    public function analyze() {
        // define('const', literal);
        // define('const', other constant);
        // define('const', expression);
        $this->atomIs('Defineconstant')
//             ->atomIsNot(array('Identifier', 'Nsname','String', 'Float', 'Integer', 'Boolean', 'Null', 'Staticconstant', 'Variable'))
             ->noAtomInside(array('Variable', 'Member', 'Staticproperty', 'Functioncall', 'Staticmethodcall', 'Methodcall'));
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Constants;

use Exakat\Analyzer\Analyzer;

class InvalidName extends Analyzer {
    public function analyze() {
        // Invalid characters
        $this->atomIs('Defineconstant')
             ->outIs('NAME')
             ->atomIs('Identifier')
             ->hasNoOut('CONCAT')
             // \ is an acceptable character in constants (NS separator) => \\\\\\\\ (yes, 8 \)
             ->regexIsNot('noDelimiter', '^[a-zA-Z\\\\\\\\_\\\\u007f-\\\\u00ff][a-zA-Z0-9\\\\\\\\_\\\\u007f-\\\\u00ff]*\\$');
        $this->prepareQuery();

        $invalidNames = $this->loadIni('php_keywords.ini', 'keyword');
        $invalidNames = "'" . implode("', '", $invalidNames) . "'";

        // reserved keywords
        $this->atomIs('Defineconstant')
             ->outIs('NAME')
             ->atomIs('Identifier')
             ->hasNoOut('CONCAT')
             ->regexIs('noDelimiter', '^[a-zA-Z\\\\\\\\_\\\\u007f-\\\\u00ff][a-zA-Z0-9\\\\\\\\_\\\\u007f-\\\\u00ff]*\\$')
             ->regexIs('noDelimiter', '\\\\\\\\')
             // \ is an acceptable character in constants (NS separator) => \\\\\\\\ (yes, 8 \)
             ->raw('filter{[' . $invalidNames . '].intersect(it.get().value("noDelimiter").tokenize("\\\\\\\\")).size() > 0 }');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Constants;

use Exakat\Analyzer\Analyzer;

class Constantnames extends Analyzer {
    public function analyze() {
        // with define
        $this->atomIs('Defineconstant')
             ->outIs('NAME')
             ->is('constant', true)
             ->has('noDelimiter');
        $this->prepareQuery();

        // with const
        $this->atomIs('Const')
             ->hasNoClassInterface()
             ->outIs('CONST')
             ->atomIs('Constant')
             ->outIs('NAME')
             ->atomIs('Identifier');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Constants;

use Exakat\Analyzer\Analyzer;

class CaseInsensitiveConstants extends Analyzer {
    public function analyze() {
        // define('a', 1, true);
        $this->atomIs('Defineconstant')
             ->outIs('CASE')
             ->is('boolean', true)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Constants;

use Exakat\Analyzer\Analyzer;

class MultipleConstantDefinition extends Analyzer {
    public function analyze() {
        // case-insensitive constants with Define
        // Search for definitions and count them
        //define()
        $this->atomIs('Defineconstant')
             ->raw('or( __.out("CASE").count().is(eq(0)),
          __.out("CASE").has("boolean", false))')
             ->outIs('NAME')
             ->atomis(self::STATIC_NAMES)
             ->values('noDelimiter');
        $csDefinitions = $this->rawQuery()->toArray();

        //const
        $this->atomIs('Const')
             ->hasNoClassTrait()
             ->outIs('CONST')
             ->outIs('NAME')
             ->values('fullcode');
        $constDefinitions = $this->rawQuery()->toArray();

        //define(, , true)
        $this->atomIs('Defineconstant')
             ->outIs('CASE')
             ->is('boolean', true)
             ->back('first')
             ->outIs('NAME')
             ->atomis(self::STATIC_NAMES)
             ->values('noDelimiter');
        $cisDefinitions = $this->rawQuery()->toArray();
        $cisDefinitions = array_map('strtolower', $cisDefinitions);

        if ($a = $this->selfCollisions($cisDefinitions)) {
            $this->applyToCisDefine($a);
        }

        if ($a = $this->selfCollisions(array_merge($constDefinitions, $csDefinitions))) {
            $this->applyToConst(array_intersect($a, $constDefinitions));
            $this->applyToCsDefine(array_intersect($a, $csDefinitions));
        }

        if ($a = $this->CsCisCollisions($csDefinitions, $cisDefinitions)) {
            $this->applyToCisDefine($a);
            $this->applyToCsDefine($a);
        }

        if ($a = $this->CsCisCollisions($constDefinitions, $cisDefinitions)) {
            $this->applyToCisDefine($a);
            $this->applyToConst($a);
        }
    }

    private function selfCollisions($array) {
        // two definitions are case sensitive
        return array_keys(array_filter(array_count_values($array), function ($x) { return $x > 1; }));
    }

    private function CsCisCollisions($csDefinitions, $cisDefinitions) {
        return array_merge( array_intersect($csDefinitions, $cisDefinitions),
                            array_intersect($csDefinitions, array_map(function ($x) { return strtoupper($x); }, $cisDefinitions) ) );
    }

    private function applyToCisDefine($array) {
        if (empty($array)) {
            return;
        }
        $array = array_values($array);

        $this->atomIs('Defineconstant')
             ->outIs('CASE')
             ->is('boolean', true)
             ->inIs('CASE')
             ->outIs('NAME')
             ->atomIs('Identifier')
             ->hasNoOut('CONCAT')
             ->noDelimiterIs($array);
        $this->prepareQuery();
    }

    private function applyToCsDefine($array) {
        if (empty($array)) {
            return;
        }
        $array = array_values($array);

        $this->atomIs('Defineconstant')
             ->outIs('CASE')
             ->is('boolean', false)
             ->inIs('CASE')
             ->outIs('NAME')
             ->atomIs('Identifier')
             ->hasNoOut('CONCAT')
             ->noDelimiterIs($array);
        $this->prepareQuery();

        $this->atomIs('Defineconstant')
             ->hasNoOut('CASE')
             ->outIs('NAME')
             ->atomIs('Identifier')
             ->hasNoOut('CONCAT')
             ->noDelimiterIs($array);
        $this->prepareQuery();
    }

    private function applyToConst($array) {
        if (empty($array)) {
            return;
        }
        $array = array_values($array);

        $this->atomIs('Const')
             ->hasNoClassTrait()
             ->outIs('CONST')
             ->outIs('NAME')
             ->codeIs($array);
        $this->prepareQuery();
    }

}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Constants;

use Exakat\Analyzer\Analyzer;

class InconsistantCase extends Analyzer {

    public function analyze() {
        $lower = $this->dictCode->translate(array('true', 'false', 'null'));
        $upper = $this->dictCode->translate(array('TRUE', 'FALSE', 'NULL'));

        if (empty($lower) && empty($upper)) {
            return;
        }

        $mapping = <<<'GREMLIN'
if (it.get().value('code').toLong() in ***) { 
    x2 = 'lower'; 
} else if (it.get().value('code').toLong() in ***) { 
    x2 = 'upper'; 
} else {
    x2 = 'mixed'; 
}
GREMLIN;
        $storage = array('lowercase' => 'lower',
                         'UPPERCASE' => 'upper',
                         'Mixed'     => 'mixed');


        $this->atomIs(array('Null', 'Boolean'))
             ->raw('map{ ' . $mapping . ' }', $lower, $upper)
             ->raw('groupCount("gf").cap("gf").sideEffect{ s = it.get().values().sum(); }');
        $types = $this->rawQuery()->toArray();

        if (empty($types)) {
            return;
        }

        $types = $types[0];

        $store = array();
        $total = 0;
        foreach($storage as $key => $v) {
            $c = empty($types[$v]) ? 0 : $types[$v];
            $store[] = array('key'   => $key,
                             'value' => $c);
            $total += $c;
        }
        $this->datastore->addRowAnalyzer($this->analyzerQuoted, $store);

        if ($total === 0) {
            return;
        }

        $types = array_filter($types, function ($x) use ($total) { return $x > 0 && $x / $total < 0.1; });
        $types = '[' . str_replace('\\', '\\\\', makeList(array_keys($types))) . ']';

        $this->atomIs(array('Null', 'Boolean'))
             ->raw('map{ ' . $mapping . ' }', $lower, $upper)
             ->raw('filter{ x2 in ' . $types . '}')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Constants;

use Exakat\Analyzer\Analyzer;

class BadConstantnames extends Analyzer {
    public function analyze() {
        // with define
        $this->atomIs('Defineconstant')
             ->outIs('NAME')
             ->is('constant', true)
             ->atomIs('Identifier')
             ->hasNoOut('CONCAT')
             ->regexIs('noDelimiter', '^__(.*)__\\$');
        $this->prepareQuery();

        $this->atomIs('Defineconstant')
             ->outIs('NAME')
             ->is('constant', true)
             ->atomIs('Concatenation')
             ->regexIs('noDelimiter', '^__(.*)__\\$');
        $this->prepareQuery();

        //with const
        $this->atomIs('Const')
             ->outIs('CONST')
             ->outIs('NAME')
             ->regexIs('fullcode', '^__(.*)__\\$');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Constants;

use Exakat\Analyzer\Analyzer;

class CreatedOutsideItsNamespace extends Analyzer {
    public function analyze() {
        // define('\a\b\c', 3);
        $this->atomIs('Defineconstant')
             ->outIs('NAME')
             ->atomIs('Identifier')
             ->regexIs('noDelimiter', '\\\\\\\\')
             ->as('string')
             ->goToInstruction('Namespace')
             ->outIs('NAME')
             ->savePropertyAs('fullcode', 'ns')
             ->back('string')
             ->regexIsNot('noDelimiter', '^" + ns.replaceAll( "\\\\\\\\", "\\\\\\\\\\\\\\\\" ) + "')
             ->back('first');
        $this->prepareQuery();

        // define('b\c', 3); no namespace
        $this->atomIs('Defineconstant')
             ->outIs('NAME')
             ->atomIs('Identifier')
             ->regexIs('noDelimiter', '\\\\\\\\')
             ->hasNoInstruction('Namespace')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Constants;

use Exakat\Analyzer\Analyzer;

class CustomConstantUsage extends Analyzer {
    public function dependsOn(): array {
        return array('Constants/ConstantUsage',
                    );
    }

    public function analyze() {
        $exts = $this->rulesets->listAllAnalyzer('Extensions');

        $constants = array();
        foreach($exts as $ext) {
            $inifile = str_replace('Extensions\Ext', '', $ext);
            $ini = $this->load($inifile, 'constants');

            if (!empty($ini[0])) {
                $constants[] = $ini;
            }
        }

        $constants = array_merge(...$constants);
        if (empty($constants)) {
            return;
        }

        $constants = makeFullNsPath($constants);

        // @note NSnamed are OK by default (may be not always!)
        $this->atomIs(self::CONSTANTS_ALL)
             ->analyzerIs('Constants/ConstantUsage')
             ->fullnspathIsNot($constants)
             ->inIs('DEFINITION')
             ->atomIs(array('Constant', 'Defineconstant'))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Constants;

use Exakat\Analyzer\Analyzer;

class CouldBeConstant extends Analyzer {
    public function analyze() {
        // We do that for strings.
        // Not for : Boolean, integers (may be non-trivial ones? ), Floats
        // May be for arrays (sorting issues)

        // const A = 'a'; $a = 'a';
        $this->atomIs('Const')
             ->outIs('CONST')
             ->outIs('VALUE')
             ->atomIs(array('String', 'Concatenation', 'Heredoc'))
             ->values('noDelimiter')
             ->unique();
        $stringsConst = $this->rawQuery()->toArray();

        $this->atomIs('Defineconstant')
             ->outIs('VALUE')
             ->atomIs(array('String', 'Concatenation'))
             ->values('noDelimiter')
             ->unique();
        $stringsDefine = $this->rawQuery()->toArray();

        $strings = array_merge($stringsConst, $stringsDefine);
        $strings = array_unique($strings);

        if (empty($strings)) {
            return;
        }

        $this->atomIs(array('String', 'Concatenation', 'Heredoc'))
             ->hasNoParent('Constant', array('VALUE'))
             ->hasNoParent('Defineconstant', array('VALUE'))
             ->hasNoIn('CONCAT')
             ->hasNoOut('CONCAT')
             ->noDelimiterIs($strings)
             ->goToExpression();
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Constants;

use Exakat\Analyzer\Analyzer;

class DynamicCreation extends Analyzer {
    public function analyze() {
        // define($x, $y)
        $this->atomIs('Defineconstant')
             ->outIs(array('VALUE', 'NAME'))
             ->isNot('constant', true)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Constants;

use Exakat\Analyzer\Analyzer;

class DefineInsensitivePreference extends Analyzer {

    public function analyze() {
        $mapping = <<<'GREMLIN'
if (it.get().vertices(OUT, "CASE").any()) {
    x2 = 1;
} else {
    x2 = 0;
}

GREMLIN;
        $storage = array('sensitive'   => 0,
                         'insensitive' => 1);

        $this->atomIs('Defineconstant')
             ->raw("map{ $mapping }")
             ->raw('groupCount("gf").cap("gf").sideEffect{ s = it.get().values().sum(); }');
        $types = $this->rawQuery()
                      ->toArray();

        if (empty($types)) {
            return;
        }

        $types = $types[0];

        $store = array();
        $total = 0;
        foreach($storage as $key => $v) {
            $c = empty($types[$v]) ? 0 : $types[$v];
            $store[] = array('key'   => $key,
                             'value' => $c);
            $total += $c;
        }
        $this->datastore->addRowAnalyzer($this->analyzerQuoted, $store);

        if ($total === 0) {
            return;
        }

        $types = array_filter($types, function ($x) use ($total) { return $x > 0 && $x / $total < 0.1; });
        if (empty($types)) {
            return;
        }
        $types = array_keys($types);

        $this->atomIs('Defineconstant')
             ->raw("sideEffect{ $mapping }")
             ->raw('filter{ x2.toLong() in ***}', $types)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Constants;

use Exakat\Analyzer\Analyzer;

class VariableConstant extends Analyzer {

    public function analyze() {
        // constant('a')
        $this->atomFunctionIs('\\constant')
             ->outWithRank('ARGUMENT', 0);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Constants;

use Exakat\Analyzer\Analyzer;

class UndefinedConstants extends Analyzer {
    public function dependsOn(): array {
        return array('Constants/ConstantUsage',
                     'Constants/IsExtConstant',
                     'Constants/CustomConstantUsage',
                    );
    }

    public function analyze() {
        // echo UNDEFINED_CONSTANT
        $this->analyzerIs('Constants/ConstantUsage')
             ->atomIsNot(array('Boolean', 'Null'))
             ->hasNoIn(array('AS', 'TYPEHINT', 'RETURNTYPE', 'GOTOLABEL', 'GOTO'))
             ->analyzerIsNot(array('Constants/CustomConstantUsage',
                                   'Constants/IsExtConstant',
                                   ))
             ->isNotIgnored();
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Constants;

use Exakat\Analyzer\Analyzer;

class StrangeName extends Analyzer {
    public function analyze() {
        $names = $this->loadIni('php_strange_names.ini', 'constants');

        $this->atomIs(array('Identifier', 'Name'))
             ->hasNoIn('DEFINITION') // constant is defined and used. Bah
             ->hasNoIn('NAME') // constant definition
             ->codeIs($names, self::TRANSLATE, self::CASE_SENSITIVE);
        $this->prepareQuery();

        $regex = '\\\\\\\\(' . implode('|', $names) . ')\\$';
        $this->atomIs('Nsname')
             ->hasNoIn('DEFINITION') // constant is defined and used. Bah
             ->has('fullnspath')
             ->regexIs('fullnspath', $regex);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Constants;

use Exakat\Analyzer\Analyzer;

class ConstantStrangeNames extends Analyzer {
    public function dependsOn(): array {
        return array('Constants/Constantnames',
                    );
    }

    public function analyze() {
        // define('BD$', 1);
        $this->atomIs('Identifier')
             ->hasNoOut('CONCAT')
             ->analyzerIs('Constants/Constantnames')
             ->regexIsNot('noDelimiter', '^(\\\\\\\\?)[a-zA-Z_\\\\x7f-\\\\xff][a-zA-Z0-9_\\\\x7f-\\\\xff]*\\$')
             // simple constant name
             ->regexIsNot('noDelimiter', '^(\\\\\\\\?)([a-zA-Z_\\\\x7f-\\\\xff][a-zA-Z0-9_\\\\x7f-\\\\xff]*\\\\\\\\)+[a-zA-Z_\\\\x7f-\\\\xff][a-zA-Z0-9_\\\\x7f-\\\\xff]*\\$');
             // \\\\\\\\ is equivalent to \\ (two slashes) in the final regex.
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Constants;

use Exakat\Analyzer\Analyzer;

class IsGlobalConstant extends Analyzer {
    public function dependsOn(): array {
        return array('Constants/ConstantUsage',
                    );
    }

    public function analyze() {
        $exts = $this->rulesets->listAllAnalyzer('Extensions');

        $c = array();
        foreach($exts as $ext) {
            $inifile = str_replace('Extensions\Ext', '', $ext);
            $ini = $this->load($inifile, 'constants');

            if (!empty($ini[0])) {
                $c[] = $ini;
            }
        }

        $constants = array_merge(...$c);
        if (empty($constants)) {
            return ;
        }

        $constants = array_unique($constants);
        $constants = array_values($constants);
        $constantsFullNs = makeFullNsPath($constants, \FNP_CONSTANT);

        $this->analyzerIs('Constants/ConstantUsage')
             ->tokenIs('T_STRING')
             ->atomIsNot(array('Boolean', 'Null'))
             ->hasNoIn('AS')

             // Exclude PHP constants
             ->fullnspathIsNot($constantsFullNs, self::CASE_SENSITIVE)
             ->isNot('isPhp', true)

             // Check that the final fullnspath is actually \something (no multiple \)
             ->regexIs('fullnspath', '^\\\\\\\\[^\\\\\\\\]+\\$');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Constants;

use Exakat\Analyzer\Analyzer;

class ConstDefinePreference extends Analyzer {

    public function analyze() {
        $mapping = <<<'GREMLIN'
x2 = it.get().label();
GREMLIN;
        $storage = array('const'  => 'Const',
                         'define' => 'Defineconstant');

        $this->atomIs(array('Const', 'Defineconstant'))
             ->hasNoIn('CONST')
             ->raw("map{ $mapping }")
             ->raw('groupCount("gf").cap("gf").sideEffect{ s = it.get().values().sum(); }');
        $types = $this->rawQuery()->toArray();

        if (empty($types)) {
            return;
        }
        $types = $types[0];

        $store = array();
        $total = 0;
        foreach($storage as $key => $v) {
            $c = empty($types[$v]) ? 0 : $types[$v];
            $store[] = array('key'   => $key,
                             'value' => $c);
            $total += $c;
        }
        $this->datastore->addRowAnalyzer($this->analyzerQuoted, $store);
        if ($total === 0) {
            return;
        }

        $types = array_filter($types, function ($x) use ($total) { return $x > 0 && $x / $total < 0.1; });
        if (empty($types)) {
            return;
        }
        $types = array_keys($types);

        $this->atomIs(array('Const', 'Defineconstant'))
             ->hasNoIn('CONST')
             ->raw("sideEffect{ $mapping }")
             ->raw('filter{ x2 in ***}', $types)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Constants;

use Exakat\Analyzer\Analyzer;

class UnusedConstants extends Analyzer {
    public function dependsOn(): array {
        return array('Modules/CalledByModule',
                    );
    }

    public function analyze() {
        // define('A', 1); No A;
        $this->atomIs('Defineconstant')
             ->hasNoOut('DEFINITION')
             ->outIs('NAME')
             ->is('constant', true)
             ->analyzerIsNot('Modules/CalledByModule');
        $this->prepareQuery();

        // Const from a const
        // const A = 1; No A;
        $this->atomIs('Const')
             ->hasNoClassInterface()
             ->outIs('CONST')
             ->analyzerIsNot('Modules/CalledByModule')
             ->hasNoOut('DEFINITION');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Constants;

use Exakat\Analyzer\Analyzer;

class ConstantUsage extends Analyzer {
    public function dependsOn() : array {
        return array('Complete/PropagateConstants',
                    );
    }
    
    public function analyze() {
        // Nsname that is not used somewhere else
        $this->atomIs('Nsname')
             ->hasNoIn(array('NEW', 'USE', 'NAME', 'EXTENDS', 'IMPLEMENTS', 'CLASS', 'CONST', 'TYPEHINT', 'RETURNTYPE',
                             'FUNCTION', 'GROUPUSE'));
        $this->prepareQuery();

        // Identifier that is not used somewhere else
        $this->atomIs('Identifier')
             ->hasNoIn(array('NEW', 'USE', 'NAME', 'CONSTANT', 'MEMBER', 'TYPEHINT', 'INSTEADOF', 'METHOD', 'TYPEHINT', 'RETURNTYPE',
                             'CLASS', 'EXTENDS', 'IMPLEMENTS', 'CLASS', 'AS', 'VARIABLE', 'FUNCTION', 'CONST', 'GROUPUSE'));
        $this->prepareQuery();

        // special case for Boolean and Null
        $this->atomIs(array('Boolean', 'Null'));
        $this->prepareQuery();

        // defined('constant') : then the string is a constant
        $this->atomFunctionIs(array('\defined', '\constant'))
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String', self::WITH_CONSTANTS);
        $this->prepareQuery();

        // Const outside a class
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Constants;

use Exakat\Analyzer\Analyzer;

class MagicConstantUsage extends Analyzer {
    public function analyze() {
        // __DIR__, __dir__
        $this->atomIs('Magicconstant');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Composer;

use Exakat\Analyzer\Analyzer;

class Autoload extends Analyzer {
    public function analyze() {
        $this->rowCount       = (int) $this->hasResults();
        $this->processedCount = 1;
        $this->queryCount     = 0;
        $this->rawQueryCount  = 0;

        return true;
    }

    public function toArray() {
        $report = array('composer' => $this->datastore->getHash('autoload'));

        return $report;
    }

    public function hasResults(): bool {
        $res = $this->datastore->getHash('autoload');

        $report = $res === 'psr-0' || $res === 'psr-4' ;

        return $report;
    }

    public function getDump(): array {
        if (!$this->hasResults()) {
            return array();
        }

        return array(
                array('fullcode'  => 'composer.autoload',
                     'file'      => 'composer.json',
                     'line'      => 0,
                     'namespace' => '',
                     'class'     => '',
                     'function'  => '',
                    )
                );
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Composer;

use Exakat\Analyzer\Analyzer;
use Exakat\Data\Composer;

class IsComposerInterface extends Analyzer {

    public function dependsOn(): array {
        return array('Interfaces/InterfaceUsage',
                    );
    }

    public function analyze() {
        $data = new Composer($this->config);

        $interfaces = $data->getComposerInterfaces();
        $interfacesFullNP = makeFullNsPath($interfaces);

        $this->atomIs('Class')
             ->outIs(array('IMPLEMENTS', 'EXTENDS'))
             ->fullnspathIs($interfacesFullNP);
        $this->prepareQuery();

        $this->atomIs('Instanceof')
             ->outIs('CLASS')
             ->tokenIs(array('T_STRING', 'T_NS_SEPARATOR'))
             ->codeIsNot('array')
             ->fullnspathIs($interfacesFullNP);
        $this->prepareQuery();

        $this->atomIs('Function')
             ->outIs('ARGUMENT')
             ->outIs('TYPEHINT')
             ->fullnspathIs($interfacesFullNP);
        $this->prepareQuery();

        $this->atomIs('Function')
             ->outIs('RETURNTYPE')
             ->fullnspathIs($interfacesFullNP);
        $this->prepareQuery();

        $this->atomIs('Usenamespace')
             ->outIs('USE')
             ->fullnspathIs($interfacesFullNP);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Composer;

use Exakat\Analyzer\Analyzer;

class UseComposer extends Analyzer {
    public function analyze() {
        $this->rowCount       = (int) $this->datastore->getHash('composer.json');
        $this->processedCount = 1;
        $this->queryCount     = 0;
        $this->rawQueryCount  = 0;

        return true;
    }

    public function toArray() {
        $report = array('composer.json' => $this->datastore->getHash('composer.json'));

        return $report;
    }

    public function hasResults(): bool {
        $report = $this->datastore->getHash('composer.json') === 1;

        return $report;
    }

    public function getDump(): array {
        if ($this->hasResults()) {
            return array(array());
        }

        return array(
                array('fullcode'  => 'composer.json',
                      'file'      => 'composer.json',
                      'line'      => 0,
                      'namespace' => '',
                      'class'     => '',
                      'function'  => '',
                )
        );
    }

}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Composer;

use Exakat\Analyzer\Analyzer;
use Exakat\Data\Composer;

class IsComposerNsname extends Analyzer {
    public function analyze() {
        $data = new Composer($this->config);

        $packagistNamespaces = $data->getComposerNamespaces();
        $packagistNamespacesFullNS = makeFullNsPath($packagistNamespaces);

        $packagistClasses = $data->getComposerClasses();
        $packagistClassesFullNS = makeFullNsPath($packagistClasses);

        $packagistInterfaces = $data->getComposerInterfaces();
        $packagistInterfacesFullNs = makeFullNsPath($packagistInterfaces);

        $packagistTraits = $data->getComposerTraits();
        $packagistTraitsFullNs = makeFullNsPath($packagistTraits);

        ////////////////////////////////////////////////
        // Use
        // namespaces in Composer
        $list = array_merge($packagistNamespacesFullNS, $packagistClassesFullNS, $packagistInterfacesFullNs, $packagistTraitsFullNs);
        $n = floor(count($list) / 10000);
        for($i = 0; $i < $n; ++$i) {
            $this->atomIs('Usenamespace')
                 ->outIs('USE')
                 ->is('origin', array_slice($list, $i * 10000, ($i + 1) * 10000))
                 ->analyzerIsNot('self');
            $this->prepareQuery();
        }

        ////////////////////////////////////////////////
        // Classes extends or implements
        // Classes in Composer
        $list = array_merge($packagistInterfacesFullNs, $packagistClassesFullNS);
        $n = floor(count($list) / 10000);
        for($i = 0; $i < $n; ++$i) {
            $this->atomIs('Class')
                 ->outIs(array('IMPLEMENTS', 'EXTENDS'))
                 ->fullnspathIs(array_slice($list, $i * 10000, ($i + 1) * 10000))
                 ->analyzerIsNot('self');
            $this->prepareQuery();
        }

        ////////////////////////////////////////////////
        // Instanceof
        // Classes or interfaces in Composer
        $n = floor(count($packagistInterfacesFullNs) / 10000);
        for($i = 0; $i < $n; ++$i) {
            $this->atomIs('Instanceof')
                 ->outIs('CLASS')
                 ->atomIs(array('Nsname', 'Identifier'))
                 ->tokenIsNot('T_STATIC')
                 ->analyzerIsNot('self')
                 ->fullnspathIs(array_slice($packagistInterfacesFullNs, $i * 10000, ($i + 1) * 10000))
                 ->analyzerIsNot('self');
            $this->prepareQuery();
        }

    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Composer;

use Exakat\Analyzer\Analyzer;

class UseComposerLock extends Analyzer {
    public function analyze() {
        $this->rowCount       = (int) $this->datastore->getHash('composer.lock');
        $this->processedCount = 1;
        $this->queryCount     = 0;
        $this->rawQueryCount  = 0;

        return true;
    }

    public function toArray() {
        $report = array('composer.lock' => $this->datastore->getHash('composer.lock'));

        return $report;
    }

    public function hasResults(): bool {
        $report = $this->datastore->getHash('composer.lock') === 1;

        return $report;
    }

    public function getDump(): array {
        if ($this->hasResults()) {
            return array();
        }

        return array(
               array('fullcode'  => 'composer.lock',
                     'file'      => 'composer.lock',
                     'line'      => 0,
                     'namespace' => '',
                     'class'     => '',
                     'function'  => '',
                    )
                );
    }

}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Composer;

use Exakat\Analyzer\Analyzer;
use Exakat\Data\Composer;

class IsComposerClass extends Analyzer {
    public function analyze() {
        $data = new Composer($this->config);

        $classes = $data->getComposerClasses();
        $classesFullNP = makeFullNsPath($classes);

        $this->atomIs('Class')
             ->outIs(array('IMPLEMENTS', 'EXTENDS'))
             ->fullnspathIs($classesFullNP);
        $this->prepareQuery();

        $this->atomIs('Instanceof')
             ->outIs('CLASS')
             ->tokenIs(array('T_NS_SEPARATOR', 'T_STRING'))
             ->atomIsNot('Array')
             ->fullnspathIs($classesFullNP);
        $this->prepareQuery();

        $this->atomIs('Function')
             ->outIs('ARGUMENT')
             ->outIs('TYPEHINT')
             ->fullnspathIs($classesFullNP);
        $this->prepareQuery();

        $this->atomIs('New')
             ->outIs('NEW')
             ->tokenIsNot('T_VARIABLE')
             ->fullnspathIs($classesFullNP);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Composer;

use Exakat\Analyzer\Analyzer;

class PackagesNames extends Analyzer {
    private $report = null;

    public function analyze() {
        return true;
    }

    public function toArray() {
        if ($this->report === null) {
            return $this->hasResult();
        }

        return $this->report;
    }

    public function hasResults(): bool {
        $data = $this->datastore->getRow('composer');
        $this->report = array();
        foreach($data as $d) {
            $this->report[$d['component'] . ' (' . $d['version'] . ')'] = true;
        }

        return !empty($this->report);
    }

}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer;

class MissingResult {
    private $fullcode = '';

    public function __construct(string $fullcode) {
        $this->fullcode = $fullcode;
    }

    public function toAddV() {
        return <<<GREMLIN
 property(T.label, "Result")
.property("fullcode", "{$this->fullcode}")
.property("line", -1)
GREMLIN;
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class CoalesceEqual extends Analyzer {
    protected $phpVersion = '7.4+';

    public function analyze() {
        // $x ??= 'a';
        $this->atomIs('Assignation')
             ->tokenIs('T_COALESCE_EQUAL');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class UseCovariance extends Analyzer {
    protected $phpVersion = '7.4+';

    public function dependsOn(): array {
        return array('Complete/OverwrittenMethods',
                    );
    }

    public function analyze() {
        // class x { function foo() : x {}}
        // class y extends x { function foo() : y {}}
        $this->atomIs(self::FUNCTIONS_METHOD)
             ->outIs('RETURNTYPE')
             ->savePropertyAs('fullnspath', 'fnp')
             ->back('first')

             ->outIs('OVERWRITE')
             ->outIs('RETURNTYPE')
             ->notSamePropertyAs('fullnspath', 'fnp')

             ->filter(
                $this->side()
                     ->inIs('DEFINITION')
                     ->goToAllChildren(self::EXCLUDE_SELF)
                     ->samePropertyAs('fullnspath', 'fnp')
             )
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class TryMultipleCatch extends Analyzer {
    public function analyze() {
        // try {} catch (E1 $e) {}catch (E2 $e) {}
        $this->atomIs('Try')
             ->filter(
                $this->side()
                     ->outIs('CATCH')
                     ->count()
                     ->raw('is(gte(2))')
             );
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Common\ConstantDefinition;

class Php74NewConstants extends ConstantDefinition {
    public function analyze() {
        $this->constants = array('MB_ONIGURUMA_VERSION',
                                 'SO_LABEL',
                                 'SO_PEERLABEL',
                                 'SO_LISTENQLIMIT',
                                 'SO_LISTENQLEN',
                                 'SO_USER_COOKIE',
                                 'PHP_WINDOWS_EVENT_CTRL_C',
                                 'PHP_WINDOWS_EVENT_CTRL_BREAK',
                                 'TIDY_TAG_ARTICLE',
                                 'TIDY_TAG_ASIDE',
                                 'TIDY_TAG_AUDIO',
                                 'TIDY_TAG_BDI',
                                 'TIDY_TAG_CANVAS',
                                 'TIDY_TAG_COMMAND',
                                 'TIDY_TAG_DATALIST',
                                 'TIDY_TAG_DETAILS',
                                 'TIDY_TAG_DIALOG',
                                 'TIDY_TAG_FIGCAPTION',
                                 'TIDY_TAG_FIGURE',
                                 'TIDY_TAG_FOOTER',
                                 'TIDY_TAG_HEADER',
                                 'TIDY_TAG_HGROUP',
                                 'TIDY_TAG_MAIN',
                                 'TIDY_TAG_MARK',
                                 'TIDY_TAG_MENUITEM',
                                 'TIDY_TAG_METER',
                                 'TIDY_TAG_NAV',
                                 'TIDY_TAG_OUTPUT',
                                 'TIDY_TAG_PROGRESS',
                                 'TIDY_TAG_SECTION',
                                 'TIDY_TAG_SOURCE',
                                 'TIDY_TAG_SUMMARY',
                                 'TIDY_TAG_TEMPLATE',
                                 'TIDY_TAG_TIME',
                                 'TIDY_TAG_TRACK',
                                 'TIDY_TAG_VIDEO',
                                 'STREAM_CRYPTO_METHOD_TLSv1_3_CLIENT',
                                 'STREAM_CRYPTO_METHOD_TLSv1_3_SERVER',
                                 'STREAM_CRYPTO_PROTO_TLSv1_3',
                                 'T_COALESCE_EQUAL',
                                 'T_FN',
        );
        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Common\PhpFunctionUsage;

class Php70RemovedFunctions extends PhpFunctionUsage {
    public function analyze() {
        $this->functions = array('ereg',
                                 'ereg_replace',
                                 'eregi',
                                 'eregi_replace',
                                 'split',
                                 'spliti',
                                 'sql_regcase',
                                 'magic_quotes_runtime',
                                 'set_magic_quotes_runtime',
                                 'call_user_method',
                                 'call_user_method_array',
                                 'set_socket_blocking',
                                 'mcrypt_ecb',
                                 'mcrypt_cbc',
                                 'mcrypt_cfb',
                                 'mcrypt_ofb',
                                 'datefmt_set_timezone_id',
                                 'imagepsbbox',
                                 'imagepsencodefont',
                                 'imagepsextendfont',
                                 'imagepsfreefont',
                                 'imagepsloadfont',
                                 'imagepsslantfont',
                                 'imagepstext',
                                  );
        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class Php7RelaxedKeyword extends Analyzer {
    protected $phpVersion = '7.0+';

    public function analyze() {
        $keywords = $this->loadIni('php7_relaxed_keyword.ini', 'keywords');

        //////////////////////////////////////////////////////////////////////
        // Definitions in a class                                           //
        //////////////////////////////////////////////////////////////////////
        // Method names
        $this->atomIs('Method')
             ->outIs('NAME')
             ->codeIs($keywords)
             ->inIs('NAME');
        $this->prepareQuery();

        // Constant names
        $this->atomIs('Class')
             ->outIs('CONST')
             ->atomIs('Const')
             ->outIs('CONST')
             ->outIs('NAME')
             ->codeIs($keywords)
             ->inIs('NAME');
        $this->prepareQuery();

        //////////////////////////////////////////////////////////////////////
        // Static usage                                                     //
        //////////////////////////////////////////////////////////////////////
        // Static Constant
        $this->atomIs('Staticconstant')
             ->outIs('CONSTANT')
             ->codeIs($keywords)
             ->back('first');
        $this->prepareQuery();

        // Static Methodcall
        $this->atomIs('Staticmethodcall')
             ->outIs('METHOD')
             ->codeIs($keywords)
             ->back('first');
        $this->prepareQuery();

        //////////////////////////////////////////////////////////////////////
        // Normal method                                                    //
        //////////////////////////////////////////////////////////////////////
        // Methodcall
        $this->atomIs('Methodcall')
             ->outIs('METHOD')
             ->codeIs($keywords)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class ParenthesisAsParameter extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/MakeFunctioncallWithReference',
                    );
    }

    public function analyze() {
        // foo( (1 + 2), 3, (new x))
        // Only valid if the argument is a reference
        $this->atomIs('Functioncall')
             ->outIs('ARGUMENT')
             ->atomIs('Parenthesis')
             ->is('isModified', true)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class UseSessionStartOptions extends Analyzer {
    protected $phpVersion = '7.0+';

    public function analyze() {
        // ini_set() then session_start
        $this->atomFunctionIs('\\ini_set')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String')
             ->regexIs('fullcode', '^.session\\\\.')
             ->back('first')
             ->nextSibling()
             ->atomIs('Functioncall')
             ->fullnspathIs('\\session_start')
             ->back('first');
        $this->prepareQuery();

        // session_start then ini_set()
        $this->atomFunctionIs('\\session_start')
             ->nextSibling()
             ->atomIs('Functioncall')
             ->fullnspathIs('\\ini_set')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String')
             ->regexIs('fullcode', '^.session\\\\.')
             ->regexIsNot('fullcode', '^.session\\\\.name')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class UsortSorting extends Analyzer {
    public function analyze() {
        $this->atomFunctionIs(array('\\usort', '\\uksort', '\\uasort'));
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class ShouldUseArrayColumn extends Analyzer {
    public function analyze() {
        // foreach($a as $b) { $c[] = $b->e; }
        $this->atomIs('Foreach')
             ->outIs('VALUE')
             ->atomIs('Variable')
             ->savePropertyAs('code', 'name')
             ->back('first')

             ->outIs('BLOCK')
             ->is('count', 1)
             ->outIs('EXPRESSION')
             ->atomInsideNoDefinition('Assignation')
             ->hasNoInstruction(array('Ifthen', 'Switch')) // Make this a filter
             ->outIs('LEFT')
             ->atomIs('Arrayappend')
             // The left part is not reusing the blin variable : this would be too complex for array_column
             ->not(
                $this->side()
                     ->atomInsideNoDefinition(array('Variable', 'Variablearray'))
                     ->samePropertyAs('code', 'name')
             )
             ->inIs('LEFT')
             ->outIs('RIGHT')
             ->atomIs(array('Array', 'Member'))
             ->outIs(array('VARIABLE', 'OBJECT'))
             ->samePropertyAs('code', 'name')
             ->back('first');
        $this->prepareQuery();

        // for($i = 0; $i < count($n); ++$i) { $c[] = $n[$i]['c']; }
        $this->atomIs('For')
             ->outIs('INCREMENT')
             ->outIs('EXPRESSION')
             ->atomIs(array('Preplusplus', 'Postplusplus'))
             ->outIs(array('PREPLUSPLUS', 'POSTPLUSPLUS'))
             ->atomIs('Variable')
             ->savePropertyAs('code', 'name')
             ->back('first')

             ->outIs('BLOCK')
             ->is('count', 1)
             ->outIs('EXPRESSION')
             ->atomIs('Assignation')

             ->outIs('LEFT')
             ->atomIs('Arrayappend')
             ->inIs('LEFT')

             ->outIs('RIGHT')
             ->atomIs('Array')
             ->atomInsideNoDefinition('Variable')
             ->samePropertyAs('code', 'name')
             ->inIs('INDEX')
             ->back('first');
        $this->prepareQuery();

        // for($i = 0; $i < count($n); ++$i) { $c[$i] = $n[$i]['c']; }
        $this->atomIs('For')
             ->outIs('INCREMENT')
             ->outIs('EXPRESSION')
             ->atomIs(array('Preplusplus', 'Postplusplus'))
             ->outIs(array('PREPLUSPLUS', 'POSTPLUSPLUS'))
             ->atomIs('Variable')
             ->savePropertyAs('code', 'name')
             ->back('first')

             ->outIs('BLOCK')
             ->is('count', 1)
             ->outIs('EXPRESSION')
             ->atomIs('Assignation')
             ->as('exp')

             ->outIs('LEFT')
             ->atomIs('Array')
             ->outIs('INDEX')
             ->atomIs('Variable')
             ->samePropertyAs('code', 'name')
             ->back('exp')

             ->outIs('RIGHT')
             ->atomIs('Array')
             ->atomInsideNoDefinition('Variable')
             ->samePropertyAs('code', 'name')
             ->inIs('INDEX')

             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class DirectCallToClone extends Analyzer {
    protected $phpVersion = '7.0+';

    public function analyze() {
        // $a->__clone() was forbidden before PHP 7.0
        $this->atomIs(array('Methodcall', 'Staticmethodcall'))
             ->outIs('METHOD')
             ->codeIs('__clone', self::TRANSLATE, self::CASE_INSENSITIVE)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class FilterToAddSlashes extends Analyzer {
    public function analyze() {
        //filter_var($var, FILTER_SANITIZE_MAGIC_QUOTES)
        $this->atomIs(self::STATIC_NAMES)
             ->fullnspathIs('\FILTER_SANITIZE_MAGIC_QUOTES', self::CASE_SENSITIVE);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class UseCli extends Analyzer {
    public function analyze() {
        // GPC + R
        $this->atomIs(self::VARIABLES_ALL)
             ->codeIs(array('$argv', '$argc'), self::TRANSLATE);
        $this->prepareQuery();

        // $_SERVER + special index
        $this->atomIs('Phpvariable')
             ->codeIs('$_SERVER')
             ->inIs('VARIABLE')
             ->outIs('INDEX')
             ->noDelimiterIs(array('argc', 'argv' ))
            ->back('first');
        $this->prepareQuery();

        // getopt()
        $this->atomFunctionIs('\\getopt');
        $this->prepareQuery();

    // STDIN is defined or used
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Common\FunctionDefinition;

class Php70NewFunctions extends FunctionDefinition {
    public function analyze() {
        $this->functions = array(
'get_resources',
'gc_mem_caches',
'preg_replace_callback_array',
'posix_setrlimit',
'random_bytes',
'random_int',
'intdiv',
'error_clear_last',
);
        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Common\PhpFunctionUsage;

class Php73RemovedFunctions extends PhpFunctionUsage {
    public function analyze() {
        $this->functions = array('image2wbmp',
                                );
        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Common\FunctionUsage;

class Php80RemovedFunctions extends FunctionUsage {
    protected $phpVersion = '8.0-';

    public function analyze() {
        $this->functions = array('image2wbmp',
                                 'png2wbmp',
                                 'jpeg2wbmp',
                                 'ldap_sort',
                                 'hebrevc',
                                 'convert_cyr_string',
                                 'ezmlm_hash',
                                 'money_format',
                                 'get_magic_quotes_gpc',
                                 'get_magic_quotes_gpc_runtime',
                                 'create_function',
                                 'each',
                                 'read_exif_data',
                                 'gmp_random',
                                 'fgetss',
                                 'restore_include_path',
                                 'gzgetss',
                                 );
        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class Php72Deprecation extends Analyzer {
    public function analyze() {
        // Definition of \\__autoload
        $this->atomIs('Function')
             ->fullnspathIs('\\__autoload')
             ->back('first');
        $this->prepareQuery();

        // Usage of \\create_function
        $this->atomFunctionIs(array('\\create_function', '\\gmp_random', '\\each', '\\png2wbmp', '\\jpeg2wbmp', '\\read_exif_data'));
        $this->prepareQuery();

        // usage of INTL_IDNA_VARIANT_2003
        $this->atomIs(self::STATIC_NAMES)
             ->fullnspathIs('\\INTL_IDNA_VARIANT_2003', self::CASE_SENSITIVE);
        $this->prepareQuery();

        // Usage of \\parse_str with no 2nd argument
        $this->atomFunctionIs('\\parse_str')
             ->noChildWithRank('ARGUMENT', 1)
             ->back('first');
        $this->prepareQuery();

        // Usage of \\assert with string argument
        $this->atomFunctionIs('\\assert')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs(self::STRINGS_ALL)
             ->back('first');
        $this->prepareQuery();

        // usage of $php_errormsg
        $this->atomIs('Phpvariable')
             ->codeIs('$php_errormsg', self::TRANSLATE, self::CASE_SENSITIVE);
        $this->prepareQuery();

        // usage of (unset)
        $this->atomIs('Cast')
             ->tokenIs('T_UNSET_CAST');
        $this->prepareQuery();

        //mbstring.func_overload
        // error handler 's 5th argument
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class IsAWithString extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/CreateDefaultValues',
                     'Complete/PropagateCalls',
                    );
    }

    public function analyze() {
        // is_a('a', 'b');
        $this->atomFunctionIs(array('\\is_a',
                                    '\\is_subclass_of',
                                   ))
             ->noChildWithRank('ARGUMENT', 2)
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String', self::WITH_CONSTANTS)
             ->back('first');
        $this->prepareQuery();

        // is_a('a', 'b', false);
        $this->atomFunctionIs(array('\\is_a',
                                    '\\is_subclass_of',
                                   ))
             ->outWithRank('ARGUMENT', 2)
             ->is('boolean', false)
             ->back('first')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String', self::WITH_CONSTANTS)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class Php74ReservedKeyword extends Analyzer {
//    protected $phpVersion = '7.4-';

    public function analyze() {
        $keyword = 'fn';

        $this->atomIs('Identifier')
             ->codeIs($keyword, self::TRANSLATE, self::CASE_INSENSITIVE);
        $this->prepareQuery();

        $this->atomIs('Name')
             ->codeIs($keyword, self::TRANSLATE, self::CASE_INSENSITIVE)
             ->inIs('NAME')
             ->atomIsNot(array('Method', 'Magicmethod'));
        $this->prepareQuery();

        $this->atomIs('Nsname')
             ->raw('filter{ "' . $keyword . '" in it.get().value("fullcode").toLowerCase().tokenize("\\\\") }');
        $this->prepareQuery();

        // with Defineconstant, it is OK. (works with constant(), don't compile as identifier)
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class UpperCaseFunction extends Analyzer {
    public function dependsOn(): array {
        return array('Functions/IsExtFunction',
                    );
    }

    public function analyze() {
        // STRTOLOWER()
        $this->atomIs('Functioncall')
             ->analyzerIs('Functions/IsExtFunction')
             ->isNotLowerCase('code');
        $this->prepareQuery();

        $this->atomIs(array('List', 'Unset', 'Echo', 'Print', 'Exit', 'Isset'))
             ->isNotLowerCase('code');
        $this->prepareQuery();

        // some of the keywords are lost anyway : implements, extends, as in foreach(), endforeach/while/for/* are lost in tokenizer (may be keep track of that)

    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Common\InterfaceDefinition;

class Php70NewInterfaces extends InterfaceDefinition {
    public function analyze() {
        $this->interfaces = array(
'Throwable',
'SessionUpdateTimestampHandlerInterface',
);
        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class ImplodeOneArg extends Analyzer {
    public function analyze() {
        // implode($array);
        $this->atomFunctionIs('\\implode')
             ->is('count', 1);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Common\FunctionDefinition;

class Php54NewFunctions extends FunctionDefinition {
    public function analyze() {
        $this->functions = array(
'hex2bin',
'http_response_code',
'get_declared_traits',
'getimagesizefromstring',
'stream_set_chunk_size',
'socket_import_stream',
'trait_exists',
'header_register_callback',
'class_uses',
'session_status',
'session_register_shutdown',
'mysqli_error_list',
'mysqli_stmt_error_list',
'libxml_set_external_entity_loader',
'ldap_control_paged_result',
'ldap_control_paged_result_response',
'transliterator_create',
'transliterator_create_from_rules',
'transliterator_create_inverse',
'transliterator_get_error_code',
'transliterator_get_error_message',
'transliterator_list_ids',
'transliterator_transliterate',
'zlib_decode',
'zlib_encode',
);
        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Common\PhpFunctionUsage;

class Php72RemovedFunctions extends PhpFunctionUsage {
    public function analyze() {
        $this->functions = array('png2wbmp',
                                 'jpeg2wbmp',
                                 'create_function',
                                 'gmp_random',
                                 'each',
                                );
        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class Php71microseconds extends Analyzer {
    public function analyze() {
        // $now == date_create())
        $this->atomIs('Comparison')
             ->codeIs(array('==', '===', '!==', '=='))
             ->outIs(array('LEFT', 'RIGHT'))
             ->functioncallIs('\\date_create')
             ->back('first');
        $this->prepareQuery();

        // $now == $a->format('u'))
        $this->atomIs('Comparison')
             ->codeIs(array('==', '==='))
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs('Methodcall')
             ->outIs('METHOD')
             ->codeIs('format')
             ->outIs('ARGUMENT')
             ->atomIs('String')
             ->regexIs('noDelimiter', 'u')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class CouldUseIsCountable extends Analyzer {
    protected $phpVersion = '7.3+';

    public function analyze() {
        // is_array($x) or $x instanceof \Countable
        $this->atomIs('Logical')
             ->tokenIs(array('T_LOGICAL_OR', 'T_LOGICAL_XOR'))

             ->outIs(array('LEFT', 'RIGHT'))
             ->functioncallIs('\\is_array')
             ->inIs()

             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs('Instanceof')
             ->outIs('CLASS')
             ->fullnspathIs('\\Countable')

             ->back('first');
        $this->prepareQuery();

        // is_array($x) or $x instanceof \Countable
        $this->atomIs('Logical')
             ->tokenIs('T_LOGICAL_AND')

             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs('Not')
             ->outIs('NOT')
             ->functioncallIs('\\is_array')
             ->back('first')

             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs('Not')
             ->outIs('NOT')
             ->atomIs('Instanceof')
             ->outIs('CLASS')
             ->fullnspathIs('\\Countable')

             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Common\PhpFunctionUsage;

class Php74RemovedFunctions extends PhpFunctionUsage {
    public function analyze() {
        $this->functions = array('hebrevc',
                                 'convert_cyr_string',
                                 'ezmlm_hash',
                                 'money_format',
                                 'restore_include_path',
                                 'get_magic_quotes_runtime',
                                 'get_magic_quotes',
                                );
        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class CookiesVariables extends Analyzer {
    public function analyze() {
        $cookie = $this->dictCode->translate(array('$_COOKIE'));

        if (!empty($cookie)) {
            // $_COOKIE['name'];
            $this->atomIs('Phpvariable')
                 ->codeIs($cookie, self::NO_TRANSLATE, self::CASE_SENSITIVE)
                 ->inIs('VARIABLE')
                 ->atomIs('Array')
                 ->outIs('INDEX')
                 ->atomIs('String');
            $this->prepareQuery();
        }

        // setcookie($name, ...);
        $this->atomFunctionIs('\\setcookie')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class Php80UnionTypehint extends Analyzer {
    protected $phpVersion = '8.0+';

    public function analyze() {
        $this->atomIs(self::FUNCTIONS_ALL)
             ->filter(
                $this->side()
                     ->outIs('RETURNTYPE')
                     ->atomIsNot('Void')
                     ->raw('count().is(gt(1))')
              );
        $this->prepareQuery();

        $this->atomIs(self::FUNCTIONS_ALL)
             ->analyzerIsNot('self')
             ->filter(
                $this->side()
                     ->outIs('ARGUMENT')
                     ->outIs('TYPEHINT')
                     ->atomIsNot('Void')
                     ->raw('count().is(gt(1))')
              );
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class SerializeMagic extends Analyzer {
    public function analyze() {
        // class x { function __unserialize() {}}
        $this->atomIs('Magicmethod')
             ->outIs('NAME')
             ->codeIs(array('__serialize', '__unserialize'), self::TRANSLATE, self::CASE_INSENSITIVE)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class AssertFunctionIsReserved extends Analyzer {
    public function analyze() {
        // function assert()
        $this->atomIs('Function')
             ->outIs('NAME')
             ->codeIs('assert')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class Password55 extends Analyzer {
    protected $phpVersion = '5.5+';

    public function analyze() {
        $this->atomFunctionIs('\\crypt');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class InternalParameterType extends Analyzer {
    public function dependsOn(): array {
        return array('Functions/IsExtFunction',
                    );
    }

    public function analyze() {
        $args = $this->methods->getInternalParameterType();

        $typeConversion = array('string'   => array('Magicconstant', 'Heredoc', 'String'),
                                'float'    => 'Float',
                                'int'      => 'Integer',
                                'numeric'  => array('Float', 'Integer'),
                                'resource' => '',
                                'bool'     => 'Boolean',
                                'array'    => '',
                                'void'     => 'Void',
                                'mixed'    => '' //explicitely here to avoid it
                                );

        foreach($args as $position => $types) {
            foreach($types as $type => $functions) {
                if (strpos($type, ',') !== false) {
                    continue; // No support for multiple type yet
                }

                if (!isset($typeConversion[$type]) || empty($typeConversion[$type])) {
                    continue;
                }

                $this->atomFunctionIs($functions)
                     ->analyzerIs('Functions/IsExtFunction')
                     ->outWithRank('ARGUMENT', $position)

                     // only include literals (and closures and literal array)
                     ->atomIs(array('Integer', 'String', 'Arrayliteral', 'Float', 'Boolean', 'Null', 'Integer', 'Closure'))

                    // Constant (Identifier), logical, concatenation, addition ?
                    // Those will have to be replaced after more research

                    // All string equivalents
                     ->atomIsNot($typeConversion[$type])
                     ->back('first');
                $this->prepareQuery();
            }
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class IssetMultipleArgs extends Analyzer {
    public function analyze() {
        // isset($a) && isset($b)
        $this->atomIs('Logical')
             ->codeIs(array('and', '&&'))
             ->outIs('LEFT')
             ->atomIs('Isset')
             ->back('first')
             ->outIs('RIGHT')
             ->atomIs('Isset')
             ->back('first');
        $this->prepareQuery();

        // !isset($a) || !isset($b) => !isset($a, $b)
        $this->atomIs('Logical')
             ->codeIs(array('or', '||'))
             ->outIs('LEFT')
             ->atomIs('Not')
             ->outIs('NOT')
             ->atomIs('Isset')
             ->back('first')
             ->outIs('RIGHT')
             ->atomIs('Not')
             ->outIs('NOT')
             ->atomIs('Isset')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class ShouldPreprocess extends Analyzer {
    // chr(03);
    public function analyze() {
        $this->atomFunctionIs('\\chr')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs(self::LITERALS, self::WITH_CONSTANTS)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class ArrayKeyExistsWithObjects extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/CreateDefaultValues',
                     'Php/ScalarTypehintUsage',
                    );
    }

    public function analyze() {
        // WIth typehint
        $this->atomIs(self::FUNCTIONS_ALL)
             ->analyzerIsNot('self')
             ->outIs('ARGUMENT')
             ->analyzerIsNot('Php/ScalarTypehintUsage')
             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->inIs('ARGUMENT')
             ->functioncallIs('\\array_key_exists');
        $this->prepareQuery();

        // WIth return typehint
        // array_key_exists('', $a); $a = foo(); function foo() : TTT {}
        $this->atomFunctionIs('\\array_key_exists')
             ->analyzerIsNot('self')
             ->outWIthRank('ARGUMENT', 1)
             ->atomIs('Variable')
             ->inIs('DEFINITION')
             ->outIs('DEFAULT')
             ->atomIs(self::FUNCTIONS_CALLS)
             ->inIs('DEFINITION')
             ->atomIs(self::FUNCTIONS_ALL)
             ->hasOut('RETURNTYPE')
             ->analyzerIsNot('Php/ScalarTypehintUsage')
             ->back('first');
        $this->prepareQuery();

        // WIth object operator
        // array_key_exists('', $a); $a->p  = 2;
        $this->atomFunctionIs('\\array_key_exists')
             ->analyzerIsNot('self')
             ->outWIthRank('ARGUMENT', 1)
             ->atomIs('Variable')
             ->inIs('DEFINITION')
             ->outIs('DEFINITION')
             ->atomIs('Variableobject')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class ThrowUsage extends Analyzer {

    public function analyze() {
        $this->atomIs('Throw');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class SafePhpvars extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/CreateDefaultValues',
                    );
    }

    public function analyze() {
        $safe = array('DOCUMENT_ROOT',
                      'REQUEST_TIME',
                      'REQUEST_TIME_FLOAT',
                      'SCRIPT_NAME',
                      'SERVER_ADMIN',
                      '_',
                      );

        // $_SERVER['_']
        $this->atomIs('Phpvariable')
             ->codeIs('$_SERVER', self::TRANSLATE, self::CASE_SENSITIVE)
             ->inIs('VARIABLE')

             ->atomIs('Array')
             ->as('result')

             ->outIs('INDEX')
             ->atomIs(self::STRINGS_LITERALS, self::WITH_CONSTANTS)
             ->noDelimiterIs($safe, self::CASE_SENSITIVE)
             ->back('result');
        $this->prepareQuery();
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class SuperGlobalUsage extends Analyzer {
    public function analyze() {
        // PHP super global Usage
        $this->atomIs(self::VARIABLES_ALL)
             ->codeIs(array('$_GET', '$_POST', '$_REQUEST'), self::TRANSLATE, self::CASE_SENSITIVE);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class UnsetOrCast extends Analyzer {
    public function analyze() {
        $mapping = <<<'GREMLIN'
if (it.get().label() == "Cast") {
    x2 = "(unset)";
} else {
    x2 = "unset( )";
};
GREMLIN;
        $storage = array('(unset)'  => '(unset)',
                         'unset( )' => 'unset( )');

        $this->atomIs(array('Unset', 'Cast'))
             ->raw('or( hasLabel("Cast").has("token", "T_UNSET_CAST"), hasLabel("Unset"))')
             ->raw('map{ ' . $mapping . ' }')
             ->raw('groupCount("gf").cap("gf").sideEffect{ s = it.get().values().sum(); }');
        $types = $this->rawQuery()->toArray();

        if (empty($types)) {
            return;
        }
        $types = $types[0];

        $store = array();
        $total = 0;
        foreach($storage as $key => $v) {
            $c = empty($types[$v]) ? 0 : $types[$v];
            $store[] = array('key'   => $key,
                             'value' => $c);
            $total += $c;
        }
        $this->datastore->addRowAnalyzer($this->analyzerQuoted, $store);
        if ($total == 0) {
            return;
        }

        $types = array_filter($types, function ($x) use ($total) { return $x > 0 && $x / $total < 0.1; });
        if (empty($types)) {
            return;
        }

        $this->atomIs(array('Unset', 'Cast'))
             ->raw('or( hasLabel("Cast").has("token", "T_UNSET_CAST") , hasLabel("Unset"))')
             ->raw('sideEffect{ ' . $mapping . ' }')
             ->raw('filter{ x2 in ***}', $types)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class DeclareStrict extends Analyzer {
    protected $phpVersion = '7.0+';

    public function analyze() {
        $mapping = <<<'GREMLIN'
if (it.get().label() == "Sequence") {
    x2 = "relaxed types";
} else {
    x2 = "strict types";
}
GREMLIN;
        $storage = array('strict types'  => 'strict types',
                         'relaxed types' => 'relaxed types');

        $this->atomIs('File')
             ->outIs('FILE')
             ->outIs('EXPRESSION')
             ->outIs('CODE')
             ->raw('coalesce( __.out("EXPRESSION").hasLabel("Declare").out("DECLARE").has("fullcode", "strict_types = 1"), filter{ true; })')
             ->raw('map{ ' . $mapping . ' }')
             ->raw('groupCount("gf").cap("gf").sideEffect{ s = it.get().values().sum(); }');
        $types = $this->rawQuery()->toArray();

        if (empty($types)) {
            return;
        }

        $types = $types[0];

        $store = array();
        $total = 0;
        foreach($storage as $key => $v) {
            $c = empty($types[$v]) ? 0 : $types[$v];
            $store[] = array('key'   => $key,
                             'value' => $c);
            $total += $c;
        }
        $this->datastore->addRowAnalyzer($this->analyzerQuoted, $store);

        if ($total == 0) {
            return;
        }

        $types = array_filter($types, function ($x) use ($total) { return $x > 0 && $x / $total < 0.1; });
        if (empty($types)) {
            return;
        }
        $types = array_keys($types);

        $this->atomIs('File')
             ->outIs('FILE')
             ->outIs('EXPRESSION')
             ->outIs('CODE')
             ->raw('coalesce( __.out("EXPRESSION").hasLabel("Declare").out("DECLARE").has("fullcode", "strict_types = 1"), filter{ true; })')
             ->raw('map{ ' . $mapping . ' }')
             ->raw('filter{ x2 in ***}', $types)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class AvoidSetErrorHandlerContextArg extends Analyzer {
    public function analyze() {
        // set_error_handler(function($a, $b, $c, $d) {});
        $this->atomFunctionIs('\\set_error_handler')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('Closure')
             ->hasChildWithRank('ARGUMENT', 4) // This is the fifth argument
             ->back('first');
        $this->prepareQuery();

        // set_error_handler('a'); function a ($a, $b, $c, $d) {}
        $this->atomFunctionIs('\\set_error_handler')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String')
             ->inIs('DEFINITION')
             ->hasChildWithRank('ARGUMENT', 4) // This is the fifth argument
             ->back('first');
        $this->prepareQuery();

        // set_error_handler(array('b', 'a')); class b { function a ($a, $b, $c, $d) {} }
        $this->atomFunctionIs('\\set_error_handler')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('Arrayliteral')
             ->outWithRank('ARGUMENT', 1)
             ->atomIs('String')
             ->savePropertyAs('noDelimiter', 'name')
             ->inIs('ARGUMENT')
             ->outWithRank('ARGUMENT', 0)
             ->inIs('DEFINITION')
             ->outIs('METHOD')
             ->outIs('NAME')
             ->samePropertyAs('fullcode', 'name', self::CASE_INSENSITIVE)
             ->inIs('NAME')
             ->hasChildWithRank('ARGUMENT', 4) // This is the fifth argument
             ->back('first');
        $this->prepareQuery();

        // set_error_handler(array($a, 'a')); class b { function a ($a, $b, $c, $d) {} }
        // not possible ATM
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class ShouldUseCoalesce extends Analyzer {
    protected $phpVersion = '7.0+';

    public function analyze() {
        //isset($a) ? $a : 'b';
        $this->atomIs('Ternary')
             ->outIs('CONDITION')
             ->atomIs('Isset')
             ->outWithRank('ARGUMENT', 0)
             ->savePropertyAs('fullcode', 'variable')
             ->inIs('ARGUMENT')
             ->inIs('CONDITION')
             ->outIs('THEN')
             ->samePropertyAs('fullcode', 'variable')
             ->back('first');
        $this->prepareQuery();

        //!isset($a) ? 'b' : $a;
        $this->atomIs('Ternary')
             ->outIs('CONDITION')
             ->atomIs('Not')
             ->outIs('NOT')
             ->atomIs('Isset')
             ->outWithRank('ARGUMENT', 0)
             ->savePropertyAs('fullcode', 'variable')
             ->inIs('ARGUMENT')
             ->inIs('NOT')
             ->inIs('CONDITION')
             ->outIs('ELSE')
             ->samePropertyAs('fullcode', 'variable')
             ->back('first');
        $this->prepareQuery();

        //$a === null ? $a : 'b';
        $this->atomIs('Ternary')
             ->outIs('CONDITION')
             ->atomIs('Comparison')
             ->codeIs('===')
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs('Null')
             ->inIs(array('LEFT', 'RIGHT'))
             ->outIs(array('LEFT', 'RIGHT')) // Out to the other one, in fact
             ->savePropertyAs('fullcode', 'variable')
             ->inIs(array('LEFT', 'RIGHT'))
             ->inIs('CONDITION')
             ->outIs('THEN')
             ->samePropertyAs('fullcode', 'variable')
             ->back('first');
        $this->prepareQuery();

        //$a !== null ?  'b' : $a;
        $this->atomIs('Ternary')
             ->outIs('CONDITION')
             ->atomIs('Comparison')
             ->codeIs('!==')
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs('Null')
             ->inIs(array('LEFT', 'RIGHT'))
             ->outIs(array('LEFT', 'RIGHT'))
             ->tokenIsNot('T_STRING')
             ->savePropertyAs('fullcode', 'variable')
             ->inIs(array('LEFT', 'RIGHT'))
             ->inIs('CONDITION')
             ->outIs('ELSE')
             ->samePropertyAs('fullcode', 'variable')
             ->back('first');
        $this->prepareQuery();

        //if (($model = Model::get($id)) === NULL) { $model = $default_model; }
        $this->atomIs('Ifthen')
             ->outIs('CONDITION')
             ->atomIs('Comparison')
             ->codeIs('===')
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs('Null')
             ->inIs(array('LEFT', 'RIGHT'))
             ->outIs(array('LEFT', 'RIGHT'))
             ->outIsIE('CODE')
             ->atomIs('Assignation')
             ->codeIs('=')
             ->outIs('LEFT')
             ->savePropertyAs('fullcode', 'variable')
             ->inIs('LEFT')
             ->inIsIE('CODE')
             ->inIs(array('LEFT', 'RIGHT'))
             ->inIs('CONDITION')
             ->outIs('THEN')
             ->outWithRank('EXPRESSION', 0)
             ->outIs('LEFT')
             ->samePropertyAs('fullcode', 'variable')
             ->back('first');
        $this->prepareQuery();

        //isset($a) ?: $b;
        $this->atomIs('Ternary')
             ->outIs('THEN')
             ->atomIs('Void')
             ->back('first')
             ->outIs('CONDITION')
             ->atomIs('Isset')
             ->back('first');
        $this->prepareQuery();

        //is_null($a) ?? $b;
        $this->atomIs('Coalesce')
             ->outIs('LEFT')
             ->functioncallIs('\\is_null')
             ->back('first');
        $this->prepareQuery();

        //isset($a) ?? $b;
        $this->atomIs('Coalesce')
             ->outIs('LEFT')
             ->atomIs('Isset')
             ->back('first');
        $this->prepareQuery();

        //$a == null ?? $b;
        $this->atomIs('Coalesce')
             ->outIs('LEFT')
             ->atomIs('Comparison')
             ->codeIs(array('==', '===', '!=', '==='))
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs('Null')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class ScalarTypehintUsage extends Analyzer {
    protected $phpVersion = '7.0+';

    public function analyze() {
        $scalars = $this->loadIni('php_scalar_types.ini', 'types');
        $scalars = array_values(array_diff($scalars, array('\array', '\callable', )));

        // in Arguments
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->as('results')
             ->outIs('TYPEHINT')
             ->fullnspathIs($scalars)
             ->back('results');
        $this->prepareQuery();

        // in Return
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('RETURNTYPE')
             ->fullnspathIs($scalars)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class Php80OnlyTypeHints extends Analyzer {
    public function analyze() {
        // function foo() : null | stringable
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('RETURNTYPE')
             ->atomIs('Scalartypehint')
             ->fullnspathIs(array('\\false', '\\null'))
             ->back('first');
        $this->prepareQuery();

        // function foo() : null | stringable
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('RETURNTYPE')
             ->atomIs(self::STATIC_NAMES)
             ->fullnspathIs('\\stringable')
             ->back('first');
        $this->prepareQuery();

        // function foo( null | stringable $x) {}
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->outIs('TYPEHINT')
             ->atomIs('Scalartypehint')
             ->fullnspathIs(array('\\false', '\\null'))
             ->back('first');
        $this->prepareQuery();

        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->outIs('TYPEHINT')
             ->atomIs(self::STATIC_NAMES)
             ->fullnspathIs('\\stringable')
             ->back('first');
        $this->prepareQuery();


    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class PathinfoReturns extends Analyzer {
    public function analyze() {
        // doesn't work on parse_str, which returns void.
        //list(,, $extension, $filename) = array_values(pathinfo($filename));
        $this->atomFunctionIs(array('\\pathinfo', '\\parse_url'))
             ->inIs('ARGUMENT')
             ->atomIs('Functioncall')
             ->fullnspathIs('\\array_values')
             ->inIs('RIGHT')
             ->atomIs('Assignation')
             ->outIs('LEFT')
             ->atomIs('List')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Common\FunctionDefinition;

class Php80NewFunctions extends FunctionDefinition {
    public function analyze() {
        $this->functions = array('\str_contains',
                                 '\fdiv',
                                 '\preg_last_error_msg',
                                );
        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class Php74Deprecation extends Analyzer {
    public function analyze() {
        // usage of CURLPIPE_HTTP1
        $this->atomIs(array('Identifier', 'Nsname'))
             ->fullnspathIs('\\CURLPIPE_HTTP1', self::CASE_SENSITIVE);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class Crc32MightBeNegative extends Analyzer {
    public function analyze() {
        $this->atomFunctionIs('\\crc32')
             ->hasIn('CONCAT');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class SpreadOperatorForArray extends Analyzer {
    protected $phpVersion = '7.4+';

    public function analyze() {
        // [...$b]
        $this->atomIs('Arrayliteral')
             ->outIs('ARGUMENT')
             ->is('variadic', true)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class CompactInexistant extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/CreateCompactVariables',
                    );
    }

    public function analyze() {
        // compact('a', 'b') with $b or $a that doesn't exists
        $this->atomFunctionIs('\\compact')
             ->outIs('ARGUMENT')
             ->as('results')
             ->has('noDelimiter')
             ->savePropertyAs('noDelimiter', 'variable_name')
             ->makeVariableName('variable_name')
             ->goToFunction()
             ->not(
                $this->side()
                     ->outIs('DEFINITION')
                     ->samePropertyAs('fullcode', 'variable_name', self::CASE_SENSITIVE)
             )
             ->not(
                $this->side()
                     ->outIs('ARGUMENT')
                     ->outIs('NAME')
                     ->samePropertyAs('fullcode', 'variable_name', self::CASE_SENSITIVE)
             )
             ->back('results');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class ForeachObject extends Analyzer {
    public function analyze() {
        // foreach ($array as $o -> $b) {}
        $this->atomIs('Foreach')
             ->hasNoOut('INDEX') // if index is here, it is all good

             ->outIs('VALUE')
             ->atomIs('Member')
             ->back('first');
        $this->prepareQuery();

        // foreach ($array as $o -> $b[0]) {}
        $this->atomIs('Foreach')
             ->hasNoOut('INDEX') // if index is here, it is all good

             ->outIs('VALUE')
             ->atomIsNot('Member')
             ->outIs(array('VARIABLE', 'OBJECT'))
             ->atomIs('Member')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class IdnUts46 extends Analyzer {
    public function analyze() {
        //echo idn_to_ascii('täst.de');
        $this->atomFunctionIs(array('\\idn_to_ascii',
                                    '\\idn_to_utf8',
                                    ))
             ->noChildWithRank('ARGUMENT', 2);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class ListWithKeys extends Analyzer {
    protected $phpVersion = '7.1+';

    public function analyze() {
        // list( 3 => $a);
        $this->atomIs('List')
             ->outIs('ARGUMENT')
             ->atomIs('Keyvalue')
             ->back('first');
        $this->prepareQuery();

        // list( 3 => $a);
        $this->atomIs('Arrayliteral')
             ->hasIn('LEFT')
             ->outIs('ARGUMENT')
             ->atomIs('Keyvalue')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class AssignAnd extends Analyzer {
    public function dependsOn(): array {
        return array('Functions/KillsApp',
                    );
    }

    public function analyze() {
        // $a = $b and $c ; is actually ($a = $b) and $c; (lost and $c)
        $this->atomIs('Logical')
             ->codeIs(array('and', 'or', 'xor'))
             ->outIs('LEFT')
             ->atomIs('Assignation')
             ->back('first')
             ->outIs('RIGHT')
             ->atomIsNot('Exit')
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->atomIs('Functioncall')
                             ->inIs('DEFINITION')
                             ->analyzerIs('Functions/KillsApp')
                     )
             )
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Common\UsedDirective;

class Php74NewDirective extends UsedDirective {
    protected $phpVersion = '7.4-';

    public function analyze() {
        $this->directives = array('zend.exception_ignore_args',
                                  'opcache.preload_user',
                                 );

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class UseObjectApi extends Analyzer {
    public function analyze() {
        // mysqli_connect();
        $functions = $this->load('function_to_oop', 'function');
        $functions = makeFullNsPath(array_keys($functions));

        $this->atomFunctionIs($functions);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class ReturnTypehintUsage extends Analyzer {
    protected $phpVersion = '7.0+';

    public function analyze() {
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('RETURNTYPE')
             ->atomIsNot('Void')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class CaseForPSS extends Analyzer {
    protected $phpVersion = '5.5-';

    public function analyze() {
        // STATIC::$property
        $this->atomIs(self::RELATIVE_CLASS)
             ->codeIsNot(array('parent', 'self', 'static'), self::TRANSLATE, self::CASE_SENSITIVE);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Common\FunctionUsage;

class AssertionUsage extends FunctionUsage {
    public function analyze() {
        $this->functions = array('\assert',
                                 '\assert_option',
                                 );

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class StaticclassUsage extends Analyzer {
    protected $phpVersion = '5.5+';

    public function analyze() {
        $this->atomIs('Staticclass');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class CloseTagsConsistency extends Analyzer {
    public function analyze() {
        $mapping = <<<'GREMLIN'
if (it.get().properties('close_tag').size() > 0) {
    x2 = 'closeTag';
} else {
    x2 = 'no Close Tag';
}
GREMLIN;
        $storage = array('with ?>'  => 'closeTag',
                         'without ?>' => 'no Close Tag');

        $this->atomIs('File')
             ->outIs('FILE')
             ->outIs('EXPRESSION')
             ->atomIs('Php')
             ->noAtomInside('Haltcompiler')
             ->raw('map{ ' . $mapping . ' }')
             ->raw('groupCount("gf").cap("gf").sideEffect{ s = it.get().values().sum(); }');
        $types = $this->rawQuery()->toArray();

        if (empty($types)) {
            return;
        }
        $types = $types[0];

        $store = array();
        $total = 0;
        foreach($storage as $key => $v) {
            $c = empty($types[$v]) ? 0 : $types[$v];
            $store[] = array('key'   => $key,
                             'value' => $c);
            $total += $c;
        }
        $this->datastore->addRowAnalyzer($this->analyzerQuoted, $store);

        if ($total === 0) {
            return;
        }

        $types = array_filter($types, function ($x) use ($total) { return $x > 0 && $x / $total < 0.1; });
        if (empty($types)) {
            return;
        }

        $this->atomIs('File')
             ->outIs('FILE')
             ->outIs('EXPRESSION')
             ->atomIs('Php')
             ->raw('sideEffect{ ' . $mapping . ' }')
             ->raw('filter{ x2 in ***}', $types)
             ->noAtomInside('Haltcompiler')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class DateFormats extends Analyzer {
    public function analyze() {
        // date('r');
        $this->atomFunctionIs(array('\date', '\strftime', '\gmstrftime'))
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String');
        $this->prepareQuery();

        // DateTime->format('r');
        $this->atomIs('Methodcall')
             ->outIs('METHOD')
             ->codeIs('format')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String');
        $this->prepareQuery();

        // date_format('r');
        $this->atomFunctionIs('\date_format')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class oldAutoloadUsage extends Analyzer {
    public function analyze() {
        $this->atomIs('Function')
             ->hasNoClass()
             ->outIs('NAME')
             ->codeIs('__autoload')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class FopenMode extends Analyzer {
    public function analyze() {
        // fopen('path/to/file', 'bbc')
        $this->atomFunctionIs('\\fopen')
             ->outWithRank('ARGUMENT', 1)
             ->atomIs('String') // No checks on variable or properties.
             ->hasNoOut('CONCAT')
             ->noDelimiterIsNot(array('r', 'r+', 'w', 'w+', 'a', 'a+', 'x', 'x+', 'c', 'c+', 'e',  // Normal
                                      'rb', 'r+b', 'wb', 'w+b', 'ab', 'a+b', 'xb', 'x+b', 'cb', 'c+b', 'eb',  // binary post
                                      'br', 'br+', 'bw', 'bw+', 'ba', 'ba+', 'bx', 'bx+', 'bc', 'bc+', 'be',  // binary pre
                                      'rt', 'r+t', 'wt', 'w+t', 'at', 'a+t', 'xt', 'x+t', 'ct', 'c+t', 'et',  // text post
                                      'tr', 'tr+', 'tw', 'tw+', 'ta', 'ta+', 'tx', 'tx+', 'tc', 'tc+', 'te',  // text pre
                                      ))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class NoReferenceForStaticProperty extends Analyzer {
    protected $phpVersion = '7.3-';

    public function analyze() {
        // self::$p = &$a;
        $this->atomIs('Staticproperty')
             ->inIs('LEFT')
             ->atomIs('Assignation')
             ->as('results')
             ->outIs('RIGHT')
             ->has('reference')
             ->back('results');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Common\FunctionUsage;

class DlUsage extends FunctionUsage {
    public function analyze() {
        $this->functions = array('\dl');

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class HashAlgos71 extends Analyzer {
    protected $phpVersion = '7.1-';

    public static $functions = array('\\hash',
                                     '\\hash_algo',
                                     '\\hash_hmac_file',
                                     '\\hash_hmac',
                                     '\\hash_init',
                                     '\\hash_pbkdf2',
                                     );

    public function analyze() {
        $algos = $this->loadIni('hash_algos.ini', 'new71');

        $this->atomFunctionIs(self::$functions)
             ->outWithRank('ARGUMENT', 0)
             ->atomIs(array('String', 'Concatenation', 'Heredoc'), self::WITH_CONSTANTS)
             ->noDelimiterIs($algos, self::CASE_INSENSITIVE);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Common\ClassDefinition;

class Php71NewClasses extends ClassDefinition {
    public function analyze() {
        $this->classes = array('Void',
                               'ReflectionClassConstant',
                               );
        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class UsePathinfo extends Analyzer {
    public function analyze() {
        // getting the file extension with explode
        /*
        $temp = explode('.', $config);
        $ext = array_pop($temp);
        */

        $this->atomIs('Assignation')
             ->outIs('RIGHT')
             ->functioncallIs(array('\\explode', '\\split'))

             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String')
             ->tokenIs('T_CONSTANT_ENCAPSED_STRING') // could be T_VARIABLE, T_QUOTE, T_OBJECT_OPERATOR, T_DOUBLE_COLON
             ->noDelimiterIs('.')
             ->back('first')
             ->outIs('LEFT')
             ->savePropertyAs('code', 'tmpvar')
             ->inIs('LEFT')
             ->nextSibling()
             ->atomIs('Assignation')
             ->outIs('RIGHT')
             ->functioncallIs('\\array_pop')
             ->outIs('ARGUMENT')
             ->samePropertyAs('code', 'tmpvar')
             ->back('first');
        $this->prepareQuery();

        /*
        $exploded = explode('.', $filename);
        
        if (count($exploded) > 1) {
            $extension = array_pop($exploded);
        }
        */
        $this->atomIs('Assignation')
             ->outIs('RIGHT')
             ->functioncallIs(array('\\explode', '\\split'))
             ->outWithRank('ARGUMENT', 0)
             ->tokenIs('T_CONSTANT_ENCAPSED_STRING') // could be T_VARIABLE, T_QUOTE, T_OBJECT_OPERATOR, T_DOUBLE_COLON
             ->noDelimiterIs('.')
             ->back('first')
             ->outIs('LEFT')
             ->savePropertyAs('code', 'tmpvar')
             ->inIs('LEFT')
             ->nextSibling()
             ->atomIs('Ifthen')
             ->outIs('THEN')
             ->outIs('EXPRESSION')
             ->atomIs('Assignation')
             ->outIs('RIGHT')
             ->functioncallIs('\\array_pop')
             ->outIs('ARGUMENT')
             ->samePropertyAs('code', 'tmpvar')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class UseBrowscap extends Analyzer {
    public function analyze() {
        $this->atomIs('Functioncall')
             ->fullnspathIs('\\get_browser');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class NotScalarType extends Analyzer {
    public function analyze() {
        $fakeTypehints = array('integer',
                               'boolean',
                               'real',
                               'double',
                               'long',
                               );

        // Typehint
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->outIs('TYPEHINT')
             ->codeIs($fakeTypehints)
             ->noClassDefinition()
             ->noInterfaceDefinition()
             ->back('first');
        $this->prepareQuery();

        // Return Typehint
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('RETURNTYPE')
             ->codeIs($fakeTypehints)
             ->noClassDefinition()
             ->noInterfaceDefinition()
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class FailingAnalysis extends Analyzer {
    public function analyze() {
        throw new \Exception('Failing analysis');
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class HashUsesObjects extends Analyzer {
    public function analyze() {
        // $x = hash_init('sha256'); is_resource($x)
        $this->atomFunctionIs('\\hash_init')
             ->inIs('RIGHT')
             ->atomIs('Assignation')
             ->outIs('LEFT')
             ->savePropertyAs('fullcode', 'hash')
             ->inIs('LEFT')
             ->nextSiblings()
             ->atomInsideNoDefinition('Functioncall')
             ->fullnspathIs('\\is_resource')
             ->outIs('ARGUMENT')
             ->samePropertyAs('fullcode', 'hash')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class IntegerSeparatorUsage extends Analyzer {
    protected $phpVersion = '7.4+';

    public function analyze() {
        // $i = 1_2;
        // $f = 12_3.4
        $this->atomIs(array('Integer', 'Float'))
             ->regexIs('fullcode', '_');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Common\ConstantDefinition;

class Php72NewConstants extends ConstantDefinition {
    public function analyze() {
        $this->constants = array('PHP_OS_FAMILY',
                                 'PHP_FLOAT_DIG',
                                 'PHP_FLOAT_EPSILON',
                                 'PHP_FLOAT_MAX',
                                 'PHP_FLOAT_MIN',
                                 'DATE_RFC7231',
                                 'PREG_UNMATCHED_AS_NULL',
                                 'SQLITE3_DETERMINISTIC',
                                 'CURLSSLOPT_NO_REVOKE',
                                 'CURLOPT_DEFAULT_PROTOCOL',
                                 'CURLOPT_STREAM_WEIGHT',
                                 'CURLMOPT_PUSHFUNCTION',
                                 'CURL_PUSH_OK',
                                 'CURL_PUSH_DENY',
                                 'CURL_HTTP_VERSION_2TLS',
                                 'CURLOPT_TFTP_NO_OPTIONS',
                                 'CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE',
                                 'CURLOPT_CONNECT_TO',
                                 'CURLOPT_TCP_FASTOPEN',
                                 'JSON_INVALID_UTF8_IGNORE',
                                 'JSON_INVALID_UTF8_SUBSTITUTE',
                                 'DNS_CAA',
                                 'LDAP_EXOP_START_TLS',
                                 'LDAP_EXOP_MODIFY_PASSWD',
                                 'LDAP_EXOP_REFRESH',
                                 'LDAP_EXOP_WHO_AM_I',
                                 'LDAP_EXOP_TURN',
                                 'PASSWORD_ARGON2I',
                                 'PASSWORD_ARGON2_DEFAULT_MEMORY_COST',
                                 'PASSWORD_ARGON2_DEFAULT_TIME_COST',
                                 'PASSWORD_ARGON2_DEFAULT_THREADS',
                                 'FILEINFO_EXTENSION',
                                 'IMG_EFFECT_MULTIPLY',
                                 'IMG_BMP',
        );
        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class EchoTagUsage extends Analyzer {
    public function analyze() {
        // <?= $a;
        $this->atomIs('Echo')
             ->codeIs('<?=');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Common\ClassDefinition;

class Php72NewClasses extends ClassDefinition {
    public function analyze() {
        $this->classes = array('HashContext',
                               );
        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class HashAlgos extends Analyzer {
    public static $functions = array('\\hash',
                                     '\\hash_algo',
                                     '\\hash_hmac_file',
                                     '\\hash_hmac',
                                     '\\hash_init',
                                     '\\hash_pbkdf2',
                                     );

    public function analyze() {
        $algos = $this->loadIni('hash_algos.ini', 'algos');

        $this->atomFunctionIs(self::$functions)
             ->outIs('ARGUMENT')
             ->is('rank', 0)
             ->atomIs('String')
             ->noDelimiterIsNot($algos);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class HashAlgos74 extends Analyzer {
    protected $phpVersion = '7.4-';

    public function analyze() {
        $algos = $this->loadIni('hash_algos.ini', 'new74');

        $this->atomFunctionIs(HashAlgos71::$functions)
             ->outWithRank('ARGUMENT', 0)
             ->atomIs(array('String', 'Concatenation', 'Heredoc'), self::WITH_CONSTANTS)
             ->noDelimiterIs($algos, self::CASE_INSENSITIVE);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class DefineWithArray extends Analyzer {
    protected $phpVersion = '7.0+';

    public function analyze() {
        $this->atomIs('Defineconstant')
             ->outIs('VALUE')
             ->atomIs('Arrayliteral')
             ->back('first');
        $this->prepareQuery();

        // define('a', $var) with $var is an array
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class NoClassInGlobal extends Analyzer {
    public function analyze() {
        $this->atomIs(array('Class', 'Trait', 'Interface', 'Function'))
             ->regexIs('fullnspath', '^\\\\\\\\[^\\\\\\\\]+\$');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class UseSetCookie extends Analyzer {
    public function analyze() {
        // with header
        // header('Set-cookie: x = 2')
        $this->atomFunctionIs('\\header')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs(array('String', 'Concatenation'))
             ->outIsIE('CONCAT')
             ->is('rank', 0)
             ->regexIs('noDelimiter', '^[Ss]et-[Cc]ookie:')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class UnicodeEscapePartial extends Analyzer {
    protected $phpVersion = '7.0-';

    public function analyze() {
        // Normal string
        $this->atomIs('String')
             ->outIsIE('CONCAT')
             ->tokenIs('T_CONSTANT_ENCAPSED_STRING')
             ->regexIs('noDelimiter', '\\\\\\\\u\\\\{')
             ->back('first');
        $this->prepareQuery();

        // Here/NowDoc string
        $this->atomIs('Heredoc')
             ->outIs('CONCAT')
             ->tokenIs('T_CONSTANT_ENCAPSED_STRING')
             ->regexIs('noDelimiter', '\\\\\\\\u\\\\{')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class IsnullVsEqualNull extends Analyzer {
    public function analyze() {
        $this->atomFunctionIs('\\is_null');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class NoSubstrMinusOne extends Analyzer {
    protected $phpVersion = '7.1+';

    public function analyze() {
        // $x[-1] is wrong for version before PHP 7.1
        // Possible false positive with arrays..
        $this->atomIs('Array')
             ->hasNoIn(array('OBJECT', 'CLASS', 'VARIABLE'))
             ->outIs('INDEX')
             ->atomIs('Integer')
             ->isLess('intval', 0)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class UnicodeEscapeSyntax extends Analyzer {
    protected $phpVersion = '7.0+';

    public function analyze() {
        $this->atomIs('String')
             ->hasNoOut('CONCAT')
             ->regexIs('noDelimiter', '\\\\\\\\u\\\\{[a-fA-F0-9]+\\\\}')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class NoReferenceForTernary extends Analyzer {
    public function analyze() {
        // function &foo() { return $a ?? $b; }
        $this->atomIs(self::FUNCTIONS_ALL)
             ->is('reference', true)
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Return')
             ->outIs('RETURN')
             ->atomIs(array('Ternary', 'Coalesce'))
             ->back('first');
        $this->prepareQuery();

        // function foo() { $a = &$b; $c = rand() ?? $a; }
        $this->atomIs('Variable')
             ->is('reference', true)
             ->inIs('RIGHT')
             ->atomIs('Assignation')
             ->outIs('LEFT')
             ->inIs('DEFINITION')
             ->outIs('DEFINITION')
             ->inIs(array('THEN', 'ELSE'))
             ->atomIs(array('Ternary', 'Coalesce'));
        $this->prepareQuery();

        // function foo(&$a) { 1 ?? $a ; }
        $this->atomIs('Variable')
             ->inIs(array('THEN', 'ELSE'))
             ->atomIs(array('Ternary', 'Coalesce'))
             ->as('results')
             ->back('first')
             ->inIs('DEFINITION')
             ->inIs('NAME')
             ->is('reference', true)
             ->back('results');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class Php80VariableSyntax extends Analyzer {
    protected $phpVersion = '8.0+';

    public function analyze() {
        // __FUNCTION__[0]
        $this->atomIs('Magicconstant')
             ->inIs('VARIABLE')
             ->atomIs('Array');
        $this->prepareQuery();

        // "A$b"[0]
        $this->atomIs('String')
             ->hasOut('CONCAT')
             ->inIs('VARIABLE')
             ->atomIs('Array');
        $this->prepareQuery();

        // "A$b"[0]
        $this->atomIs('Staticconstant')
             ->inIs('CLASS')
             ->atomIs('Staticproperty');
        $this->prepareQuery();

        // new ($expression)
        // $x instanceof ($y.$z)
        $this->atomIs(array('Instanceof', 'New'))
             ->outIs(array('CLASS', 'NEW'))
             ->atomIs('Parenthesis')
             ->back('first');
        $this->prepareQuery();

    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Common\FunctionDefinition;

class Php71NewFunctions extends FunctionDefinition {
    public function analyze() {
        $this->functions = array(
'curl_share_strerror',
'curl_multi_errno',
'curl_share_errno',
'mb_ord',
'mb_chr',
'mb_scrub',
'is_iterable',
'pcntl_async_signals',
'pcntl_signal_get_handler',
'sapi_windows_cp_get',
'sapi_windows_cp_set',
'sapi_windows_cp_conv',
'sapi_windows_cp_is_utf8',
'session_create_id',
'session_gc',
    );
        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class Gotonames extends Analyzer {

    public function analyze() {
        $this->atomIs('Goto')
             ->outIs('GOTO');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class ShouldUseArrayFilter extends Analyzer {
    public function analyze() {
        // foreach($a as $b) { if ($a) {$c[] = $b->e;} }
        $this->atomIs('Foreach')
             ->outIs('VALUE')
             ->atomIs('Variable')
             ->savePropertyAs('code', 'name')
             ->back('first')

             ->outIs('BLOCK')
             ->is('count', 1)
             ->outIs('EXPRESSION')
             ->atomInsideNoDefinition('Assignation')
             ->hasInstruction('Ifthen')
             ->outIs('LEFT')
             ->atomIs('Arrayappend')
             ->inIs('LEFT')
             ->outIs('RIGHT')
             ->samePropertyAs('code', 'name')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class SignatureTrailingComma extends Analyzer {
    protected $phpVersion = '8.0+';

    public function analyze() {
        // function foo($a, $b,) {}
        $this->atomIs(self::FUNCTIONS_ALL)
                // warning : arrow functions are not like the others
             ->regexIs('fullcode', ',  ?\\\) (\\\{|=)');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class Argon2Usage extends Analyzer {
    public function analyze() {
        $this->atomIs(array('Identifier', 'Nsname'))
             ->hasNoIn('NAME')
             ->fullnspathis(array('\\password_argon2i',
                                  '\\password_argon2_default_memory_cost',
                                  '\\password_argon2_default_time_cost',
                                  '\\password_argon2_default_threads'))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

declare(strict_types = 1);

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class DeclareStrictType extends Analyzer {
    protected $phpVersion = '7.0+';

    public function analyze() {
        // Declare( strict_type = 1)
        $this->atomIs('File')
             ->outIs('FILE')
             ->outIs('EXPRESSION')
             ->outIs('CODE')
             ->outIs('EXPRESSION')
             ->atomIs('Declare')
             ->outIs('DECLARE')
             ->outIs('NAME')
             ->codeIs('strict_types')
             ->inIs('NAME')
             ->outIs('VALUE')
             ->codeIs('1')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class ConstWithArray extends Analyzer {
    protected $phpVersion = '5.5+';

    public function analyze() {
        // method used in a static methodcall \a\b::b()
        $this->atomIs('Const')
             ->outIs('CONST')
             ->outIs('VALUE')
             ->atomIs('Arrayliteral')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class GlobalWithoutSimpleVariable extends Analyzer {
    protected $phpVersion = '7.0-';

    public function analyze() {
        $this->atomIs('Global')
             ->outIs('GLOBAL')
             ->tokenIs(array('T_DOLLAR', 'T_OBJECT_OPERATOR'))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class UseDateTimeImmutable extends Analyzer {
    public function analyze() {
        // new DateTime
        $this->atomIs('New')
             ->outIs('NEW')
             ->fullnspathIs('\\datetime')
             ->back('first');
        $this->prepareQuery();

        // Creation with static method calls
        $this->atomIs('Staticmethodcall')
             ->outIs('METHOD')
             ->tokenIs('T_STRING')
             ->codeIs(array('createFromFormat', 'createFromImmutable'))
             ->back('first')
             ->outIs('CLASS')
             ->fullnspathIs('\\datetime')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class ShortOpenTagRequired extends Analyzer {

    public function analyze() {
        // This is not actually done here....
        return true;
    }

    public function getArray() {
        $r = $this->datastore->getRow('shortopentag');

        $report = array();
        foreach($r as $l) {
            $report[] = array($l['file']);
        }

        return $report;
    }

    public function hasResults(): bool {
       $r = $this->datastore->getRow('shortopentag');

       return !empty($r);
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Common\FunctionDefinition;

class Php55NewFunctions extends FunctionDefinition {
    public function analyze() {
        $this->functions = array(
'array_column',
'boolval',
'cli_get_process_title',
'cli_set_process_title',
'curl_escape',
'curl_file_create',
'curl_multi_setopt',
'curl_multi_strerror',
'curl_pause',
'curl_reset',
'curl_share_close',
'curl_share_init',
'curl_share_setopt',
'curl_strerror',
'curl_unescape',
'datefmt_format_object',
'datefmt_get_calendar_object',
'datefmt_get_calendar_object',
'datefmt_get_timezone',
'datefmt_set_timezone',
'hash_pbkdf2',
'imageaffinematrixconcat',
'imageaffinematrixget',
'imagecrop',
'imagecropauto',
'imageflip',
'imagepalettetotruecolor',
'imagescale',
'intlcal_add',
'intlcal_after',
'intlcal_before',
'intlcal_clear',
'intlcal_create_instance',
'intlcal_equals',
'intlcal_field_difference',
'intlcal_from_date_time',
'intlcal_get_actual_maximum',
'intlcal_get_actual_minimum',
'intlcal_get_available_locales',
'intlcal_get_day_of_week_type',
'intlcal_get_error_code',
'intlcal_get_error_message',
'intlcal_get_first_day_of_week',
'intlcal_get_greatest_minimum',
'intlcal_get_keyword_values_for_locale',
'intlcal_get_least_maximum',
'intlcal_get_locale',
'intlcal_get_maximum',
'intlcal_get_minimal_days_in_first_week',
'intlcal_get_minimum',
'intlcal_get_now',
'intlcal_get_repeated_wall_time_option',
'intlcal_get_skipped_wall_time_option',
'intlcal_get_time_zone',
'intlcal_get_time',
'intlcal_get_type',
'intlcal_get_weekend_transition',
'intlcal_get',
'intlcal_in_daylight_time',
'intlcal_is_equivalent_to',
'intlcal_is_lenient',
'intlcal_is_set',
'intlcal_is_weekend',
'intlcal_roll',
'intlcal_set_first_day_of_week',
'intlcal_set_lenient',
'intlcal_set_repeated_wall_time_option',
'intlcal_set_skipped_wall_time_option',
'intlcal_set_time_zone',
'intlcal_set_time',
'intlcal_set',
'intlcal_to_date_time',
'intlgregcal_create_instance',
'intlgregcal_get_gregorian_change',
'intlgregcal_is_leap_year',
'intlgregcal_set_gregorian_change',
'intltz_count_equivalent_ids',
'intltz_create_default',
'intltz_create_enumeration',
'intltz_create_time_zone_id_enumeration',
'intltz_create_time_zone',
'intltz_from_date_time_zone',
'intltz_get_canonical_id',
'intltz_get_display_name',
'intltz_get_dst_savings',
'intltz_get_equivalent_id',
'intltz_get_error_code',
'intltz_get_error_message',
'intltz_get_gmt',
'intltz_get_id',
'intltz_get_offset',
'intltz_get_raw_offset',
'intltz_get_region',
'intltz_get_tz_data_version',
'intltz_get_unknown',
'intltz_has_same_rules',
'intltz_to_date_time_zone',
'intltz_use_daylight_time',
'json_last_error_msg',
'mysqli_begin_transaction',
'mysqli_release_savepoint',
'mysqli_savepoint',
'openssl_pbkdf2',
'password_get_info',
'password_hash',
'password_needs_rehash',
'password_verify',
'pg_escape_identifier',
'pg_escape_literal',
'socket_cmsg_space',
'socket_recvmsg',
'socket_sendmsg',
);
        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class PHP73LastEmptyArgument extends Analyzer {
    protected $phpVersion = '7.3+';

    public function analyze() {
        // $object->method($a, )
        // $functioncall($a, )
        $this->atomIs(array('Functioncall', 'Methodcallname'))
             ->isMore('count', 0)
             ->regexIs('fullcode', '\\\\,  \\\)\\$');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class PHP70scalartypehints extends Analyzer {
    protected $phpVersion = '7.0+';

    public function analyze() {
        $scalartypehints = array('\bool',
                                 '\int',
                                 '\float',
                                 '\string',
                                 );

        // function foo(bool $x)
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->outIs('TYPEHINT')
             ->fullnspathIs($scalartypehints)
             ->back('first');
        $this->prepareQuery();

        // function foo(bool $x)
        $this->atomIs(self::FUNCTIONS_ALL)
             ->analyzerIsNot('self')
             ->outIs('RETURNTYPE')
             ->fullnspathIs($scalartypehints)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class Haltcompiler extends Analyzer {
    public function analyze() {
        $this->atomIs('Halt');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class ScalarAreNotArrays extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/MakeClassMethodDefinition',
                     'Complete/CreateDefaultValues',
                    );
    }

    public function analyze() {
        // TODO : support for null ?

        // WIth typehint
        // function foo(in $x) { echo $x[2]; }
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->outIs('TYPEHINT')
             ->fullnspathIs(array('\\int', '\\bool', '\\float'))
             ->inIs('TYPEHINT')
             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->atomIs('Variablearray')
             ->inIs('VARIABLE');
        $this->prepareQuery();

        // WIth typehint
        // function foo($x = 2) { echo $x[2]; }
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->analyzerIsNot('self')
             ->outIs('DEFAULT')
             ->atomIs(array('Boolean', 'Integer', 'Float', 'Null'))
             ->inIs('DEFAULT')
             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->atomIs('Variablearray')
             ->inIs('VARIABLE')
             ->analyzerIsNot('self');
        $this->prepareQuery();

        // WIth typehint (here, null is the most important)
        // function foo(?A $x) { echo $x[2]; }
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->analyzerIsNot('self')
             ->hasOut('TYPEHINT')
             ->isNullable()
             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->atomIs('Variablearray')
             ->inIs('VARIABLE')
             ->analyzerIsNot('self');
        $this->prepareQuery();

        // WIth return typehint
        // echo $a[2]; $a = foo(); function foo() : int {}
        $this->atomIs('Variablearray')
             ->inIs('DEFINITION')
             ->outIs('DEFAULT')
             ->atomIs(self::FUNCTIONS_CALLS)
             ->inIs('DEFINITION')
             ->atomIs(self::FUNCTIONS_ALL)
             ->outIs('RETURNTYPE')
             ->fullnspathIs(array('\\int', '\\bool', '\\float', '\\void', '\\callable'))
             ->back('first')
             ->inIs('VARIABLE')
             ->analyzerIsNot('self');
        $this->prepareQuery();

        // echo $a[2]; $a = foo(); function foo() : ?int {}
        $this->atomIs('Variablearray')
             ->inIs('DEFINITION')
             ->outIs('DEFAULT')
             ->atomIs(self::FUNCTIONS_CALLS)
             ->inIs('DEFINITION')
             ->atomIs(self::FUNCTIONS_ALL)
             ->outIs('RETURNTYPE')
             ->isNullable()
             ->back('first')
             ->inIs('VARIABLE');
        $this->prepareQuery();

        // With argument's default value
        // function foo(int $x) { echo $x[2]; }
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->outIs('DEFAULT')
             ->fullnspathIs(array('\\int', '\\bool', '\\float', '\\null'))
             ->inIs('DEFAULT')
             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->atomIs('Variablearray')
             ->inIs('VARIABLE')
             ->analyzerIsNot('self');
        $this->prepareQuery();

        // foo(1.2); function foo($a) { $a[3]; }
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('DEFINITION')
             ->outIs('ARGUMENT')
             ->atomIs(array('Boolean', 'Integer', 'Float', 'Null'))
             ->savePropertyAs('rank', 'ranked')
             ->back('first')

             ->outWithRank('ARGUMENT', 'ranked')
             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->atomIs('Variablearray')
             ->inIs('VARIABLE')
             ->analyzerIsNot('self');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class PregMatchAllFlag extends Analyzer {
    public function analyze() {
        // Using default configuration
        $this->atomFunctionIs('\preg_match_all')
             ->noChildWithRank('ARGUMENT', 3)
             ->outWithRank('ARGUMENT', 2)
             ->savePropertyAs('code', 'r')
             ->inIs('ARGUMENT')
             ->nextSiblings() // Do we really need all of them? May be limit to 3/5
             ->atomIs('Foreach')
             ->outIs('SOURCE')
             ->atomIs('Array')
             ->outIs('VARIABLE')
             ->samePropertyAs('code', 'r')
             ->inIs('VARIABLE')
             ->inIs('SOURCE')
             ->outIs('INDEX')
             ->savePropertyAs('code', 'k')
             ->inIs('INDEX')

             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Array')
             ->outIs('VARIABLE')// $r[1][$id]
             ->outIs('VARIABLE')
             ->samePropertyAs('code', 'r')
             ->inIs('VARIABLE')
             ->inIs('VARIABLE')
             ->outIs('INDEX')
             ->samePropertyAs('code', 'k')
             ->back('first');
        $this->prepareQuery();

        // Using explicit configuration
        $this->atomFunctionIs('\preg_match_all')
             ->outWithRank('ARGUMENT', 3)
             ->atomIs(self::STATIC_NAMES)
             ->fullnspathIsNot('\PREG_SET_ORDER')
             ->inIs('ARGUMENT')
             ->outWithRank('ARGUMENT', 2)
             ->savePropertyAs('code', 'r')
             ->inIs('ARGUMENT')
             ->nextSiblings() // Do we really need all of them? May be limit to 3/5

             ->atomIs('Foreach')
             ->outIs('SOURCE')
             ->atomIs('Array')
             ->outIs('VARIABLE')
             ->samePropertyAs('code', 'r')
             ->inIs('VARIABLE')
             ->inIs('SOURCE')
             ->outIs('INDEX')
             ->savePropertyAs('code', 'k')
             ->inIs('INDEX')

             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Array')
             ->outIs('VARIABLE')// $r[1][$id]
             ->outIs('VARIABLE')
             ->samePropertyAs('code', 'r')
             ->inIs('VARIABLE')
             ->inIs('VARIABLE')
             ->outIs('INDEX')
             ->samePropertyAs('code', 'k')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class ListWithAppends extends Analyzer {
    public function analyze() {
        // list($a[]. $a[], $a[]) = array();
        $this->atomIs('List')
             ->hasIn('LEFT')

             // at least one Arrayappend, for initial filtering
             ->filter(
                $this->side()
                     ->outIs('ARGUMENT')
                     ->atomIs('Arrayappend')
             )

             // several appends to the same array
             ->raw('where( __.sideEffect{ counters = [:]; }
                             .out("ARGUMENT").hasLabel("Arrayappend").out("APPEND")
                             .sideEffect{ if (counters[it.get().value("code")] == null) { counters[it.get().value("code")] = 1; } else { counters[it.get().value("code")]++; } }
                             .fold() )
                    .filter{ counters.findAll{ it.value > 1}.size() > 0}')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class Prints extends Analyzer {
    public function analyze() {
        $prints = $this->loadIni('php_prints.ini');

        $this->atomFunctionIs(makeFullNsPath($prints->functions));
        $this->prepareQuery();

        // print $a;
        $this->atomIs(array('Print', 'Echo'));
        $this->prepareQuery();

        // print_r($a);
        $this->atomFunctionIs(makeFullNsPath($prints->functionsArg1))
             ->noChildWithRank('ARGUMENT', 1)
             ->back('first');
        $this->prepareQuery();

        // print_r($a, false);
        $this->atomFunctionIs(makeFullNsPath($prints->functionsArg1))
             ->outWithRank('ARGUMENT', 1)
             ->is('boolean', false)
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('Inlinehtml');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class LetterCharsLogicalFavorite extends Analyzer {

    public function analyze() {
        $operators = $this->dictCode->translate(array('&&', '||', '^'));
        $operatorsList = makeList($operators, '');

        $mapping = <<<GREMLIN
if (it.get().value("code") in [$operatorsList]) {
    x2 = "chars";
} else {
    x2 = "letters";
}
GREMLIN;
        $storage = array('&&, ||, ^'    => 'chars',
                         'and, or, xor' => 'letters');

        $this->atomIs('Logical')
             ->tokenIs(array('T_LOGICAL_AND', 'T_LOGICAL_XOR', 'T_LOGICAL_OR',
                             'T_BOOLEAN_AND',                  'T_BOOLEAN_OR', ))
             ->raw('map{ ' . $mapping . ' }')
             ->raw('groupCount("gf").cap("gf").sideEffect{ s = it.get().values().sum(); }');
        $types = $this->rawQuery()->toArray();

        if (empty($types)) {
            return;
        }
        $types = $types[0];

        $store = array();
        $total = 0;
        foreach($storage as $key => $v) {
            $c = empty($types[$v]) ? 0 : $types[$v];
            $store[] = array('key'   => $key,
                             'value' => $c);
            $total += $c;
        }
        $this->datastore->addRowAnalyzer($this->analyzerQuoted, $store);

        if ($total == 0) {
            return;
        }

        $types = array_filter($types, function ($x) use ($total) { return $x > 0 && $x / $total < 0.1; });
        if (empty($types)) {
            return;
        }
        $types = array_keys($types);

        $this->atomIs('Logical')
             ->tokenIs(array('T_LOGICAL_AND', 'T_LOGICAL_XOR', 'T_LOGICAL_OR',
                             'T_BOOLEAN_AND',                  'T_BOOLEAN_OR', ))
             ->raw('map{ ' . $mapping . ' }')
             ->raw('filter{ x2 in *** ; }', $types)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class MethodCallOnNew extends Analyzer {
    protected $phpVersion = '5.4+';

    public function analyze() {
        $this->atomIs('Parenthesis')
             ->outIs('CODE')
             ->atomIs('New')
             ->inIs('CODE')
             ->inIs('OBJECT')
             ->atomIs(array('Member', 'Methodcall'))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Common\FunctionUsage;

class SetHandlers extends FunctionUsage {
    public function analyze() {
        $this->functions = $this->loadIni('php_handlers.ini', 'functions');
        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Common\FunctionUsage;

class Php55RemovedFunctions extends FunctionUsage {
    public function analyze() {
        $this->functions = array('php_logo_guid',
                                 'php_egg_logo_guid',
                                 'php_real_logo_guid',
                                 'zend_logo_guid',
                                 'mcrypt_cbc',
                                 'mcrypt_cfb',
                                 'mcrypt_ecb',
                                 'mcrypt_ofb',
                                 );
        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Common\FunctionDefinition;

class Php74NewFunctions extends FunctionDefinition {
    public function analyze() {
        $this->functions = array('mb_str_split',
                                 'password_algos',
                                 'get_mangled_object_vars',
                                 'openssl_x509_verify',
                                 'pcntl_unshare',
                                 'chroot',
                                 'sapi_windows_set_ctrl_handler',
                                 'sapi_windows_generate_ctrl_event',
                                 'fn', // fn is not a function, but a reserved keyword
                                );
        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class Php72ObjectKeyword extends Analyzer {
    public function analyze() {
        // class object {}
        $this->atomIs(self::CIT)
             ->outIs('NAME')
             ->codeIs('object')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class ShouldUseFunction extends Analyzer {
    public function analyze() {
        // namespace ; function foo() {}
        // namespace X; foo();
        $this->atomIs('Functioncall')
             ->outIs('NAME')
             ->hasNoIn('DEFINITION')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class HashAlgos53 extends Analyzer {
    public function analyze() {
        $algos = array_merge($this->loadIni('hash_algos.ini', 'new54'),
                             $this->loadIni('hash_algos.ini', 'new56'));

        $this->atomFunctionIs(HashAlgos71::$functions)
             ->outWithRank('ARGUMENT', 0)
             ->atomIs(array('String', 'Concatenation', 'Heredoc'), self::WITH_CONSTANTS)
             ->noDelimiterIs($algos, self::CASE_INSENSITIVE);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Common\FunctionUsage;

class Php54RemovedFunctions extends FunctionUsage {
    public function analyze() {
        $this->functions = array('mcrypt_generic_end',
                                 'mysql_list_dbs');
        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Common\ConstantUsage;

class Php80RemovedConstant extends ConstantUsage {
    public function analyze() {
        $this->constants = array('\INTL_IDNA_VARIANT_2003');

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Common\FunctionUsage;

class CryptoUsage extends FunctionUsage {
    public function analyze() {
        $this->functions = array('md5',
                                 'md5_file',
                                 'sha1',
                                 'sha1_file',
                                 'crypt',
                                 'password_get_info',
                                 'password_hash',
                                 'password_needs_rehash',
                                 'password_verify',
                                 );
        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class TypedPropertyUsage extends Analyzer {
    protected $phpVersion = '7.4+';

    public function analyze() {
        // class x { private y $a; }
        $this->atomIs('Propertydefinition')
             ->inIs('PPP')
             ->as('results')
             ->outIs('TYPEHINT')
             ->atomIsNot('Void')
             ->back('results');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class UsesEnv extends Analyzer {
    public function analyze() {
        // Using putenv or getenv
        $this->atomFunctionIs(array('\\getenv', '\\putenv'))
             ->back('first');
        $this->prepareQuery();

        // Using $_ENV variable
        $this->atomIs('Phpvariable')
             ->codeIs('$_ENV', self::TRANSLATE, self::CASE_SENSITIVE)
             ->inIsIE('VARIABLE')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Common\FunctionUsage;

class TriggerErrorUsage extends FunctionUsage {
    public function analyze() {
        $this->functions = array('trigger_error',
                                 'user_error');
        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class ClosureThisSupport extends Analyzer {
    protected $phpVersion = '5.4-';

    public function analyze() {
        // function () { $this->a; }
        $this->atomIs('Closure')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('This')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class UpperCaseKeyword extends Analyzer {
    public function analyze() {
        $this->atomIs(array('Class', 'Foreach', 'Switch', 'For', 'Namespace', 'Usenamese', 'Usetrait', 'Function', 'Method',
                            'Try', 'Catch', 'Case', 'Default', 'Goto', 'Continue', 'Const', 'Break',
                            'Clone', 'Dowhile', 'While', 'Interface', 'Instanceof', 'Insteadof', 'Return',
                            'Throw', 'Trait', 'Interface', 'Var', 'Logical', 'Static', ))
             ->codeIsNot(array('&&', '||', '^', '&', '|'), self::TRANSLATE, self::CASE_SENSITIVE)
             ->isNotLowercase('code');
        $this->prepareQuery();

        // some of the keywords are lost anyway : implements, extends, as in foreach(), endforeach/while/for/* are lost in tokenizer (may be keep track of that)
        // As (in use commands) are not preserved.
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class ReturnWithParenthesis extends Analyzer {
    public function analyze() {
        // return (1 + 2);
        $this->atomIs('Parenthesis')
             ->inIs('RETURN');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class ReservedKeywords7 extends Analyzer {
    protected $phpVersion = '7.0-';

    public function analyze() {
        $keywords = $this->loadIni('php_reserved_types.ini', 'type');

        $this->atomIs(self::CIT)
             ->outIs('NAME')
             ->codeIs($keywords)
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('Nsname')
             ->regexIs('fullcode', implode('|', $keywords));
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class TrailingComma extends Analyzer {
    public function analyze() {
        // foo(1,2,3,);
        $this->atomIs(self::CALLS)
             ->regexIs('fullcode', ',  \\\)\$');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class PHP71scalartypehints extends Analyzer {
    protected $phpVersion = '7.1+';

    public function analyze() {
        $scalartypehints = array('\iterable',
                                 );

        // function foo(bool $x)
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->outIs('TYPEHINT')
             ->fullnspathIs($scalartypehints)
             ->back('first');
        $this->prepareQuery();

        // function foo(bool $x)
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('RETURNTYPE')
             ->fullnspathIs($scalartypehints)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class CloseTags extends Analyzer {
    public function analyze() {
        $this->atomIs('Php')
             ->is('close_tag', true);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class UseContravariance extends Analyzer {
    protected $phpVersion = '7.4+';

    public function dependsOn(): array {
        return array('Complete/OverwrittenMethods',
                    );
    }

    public function analyze() {
        // class x { function foo(y $a) {}}
        // class y extends x { function foo(x $a) {}}
        $this->atomIs(self::FUNCTIONS_METHOD)
             ->outIs('ARGUMENT')
             ->savePropertyAs('rank', 'ranked')
             ->outIs('TYPEHINT')
             ->savePropertyAs('fullnspath', 'fnp')
             ->back('first')

             ->outIs('OVERWRITE')
             ->outWithRank('ARGUMENT', 'ranked')
             ->outIs('TYPEHINT')
             ->notSamePropertyAs('fullnspath', 'fnp')

             ->filter(
                $this->side()
                     ->inIs('DEFINITION')
                     ->goToAllImplements(self::EXCLUDE_SELF)
                     ->samePropertyAs('fullnspath', 'fnp')
             )
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class IsNAN extends Analyzer {
    public function analyze() {
        // is_nan();
        $this->atomFunctionIs('\\is_nan');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class debugInfoUsage extends Analyzer {
    protected $phpVersion = '5.6+';

    public function analyze() {
        // class x { function __debugInfo() {}}
        $this->atomIs('Magicmethod')
             ->outIs('NAME')
             ->codeIs('__debugInfo')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Common\FunctionUsage;

class ErrorLogUsage extends FunctionUsage {
    public function analyze() {
        $this->functions = array('error_log' );
        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class GlobalsVsGlobal extends Analyzer {
    public function analyze() {
        $globals = $this->dictCode->translate(array('$GLOBALS'));

        if (empty($globals)) {
            return;
        }

        $mapping = <<<GREMLIN
if (it.get().value("code") == $globals[0]) { 
    x2 = "GLOBALS"; 
} else {
    x2 = "global"; 
}
GREMLIN;
        $storage = array('$GLOBALS' => 'GLOBALS',
                         'global'   => 'global');

        $this->atomIs(self::VARIABLES_ALL)
             ->raw('or( has("code", ' . $globals[0] . '), __.in("GLOBAL")) ')
             ->raw('map{ ' . $mapping . ' }')
             ->raw('groupCount("gf").cap("gf").sideEffect{ s = it.get().values().sum(); }');
        $types = $this->rawQuery()->toArray()[0];

        $store = array();
        $total = 0;
        foreach($storage as $key => $v) {
            $c = empty($types[$v]) ? 0 : $types[$v];
            $store[] = array('key'   => $key,
                             'value' => $c);
            $total += $c;
        }
        $this->datastore->addRowAnalyzer($this->analyzerQuoted, $store);

        if ($total == 0) {
            return;
        }

        $types = array_filter($types, function ($x) use ($total) { return $x > 0 && $x / $total < 0.1; });
        if (empty($types)) {
            return;
        }

        $this->atomIs(self::VARIABLES_ALL)
             ->raw('or( has("code", ' . $globals[0] . '), __.in("GLOBAL")) ')
             ->raw('sideEffect{ ' . $mapping . ' }')
             ->raw('filter{ x2 in ***}', $types)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Common\ClassUsage;

class UseStdclass extends ClassUsage {
    public function analyze() {
        $this->classes = array('\\stdclass');

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class GroupUseDeclaration extends Analyzer {
    public function analyze() {
        //use A\B\C{ D, E, F}
        $this->atomIs('Usenamespace')
             ->hasOut('GROUPUSE');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class EmptyList extends Analyzer {
    protected $phpVersion = '7.0-';

    public function analyze() {
        // list( , )
        $this->atomIs('List')
             ->raw('where( __.out("ARGUMENT").not(hasLabel("Void")).count().is(eq(0)) )');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class ShellFavorite extends Analyzer {

    public function analyze() {
        $mapping = <<<'GREMLIN'
if (it.get().label() == 'Shell') {
    x2 = 'backtick';
} else if ( it.get().value('fullnspath') == '\\exec') {
    x2 = 'exec';
} else if ( it.get().value('fullnspath') == '\\shell_exec') {
    x2 = 'shell_exec';
}

GREMLIN;
        $storage = array('shell_exec' => 'shell_exec',
                         'exec'       => 'exec',
                         '`backtick`' => 'backtick');

        $this->atomIs(array('Functioncall', 'Shell'))
             ->raw('or( hasLabel("Shell"), has("fullnspath", within("\\\\exec", "\\\\shell_exec")))')
             ->raw('map{ ' . $mapping . ' }')
             ->raw('groupCount("gf").cap("gf").sideEffect{ s = it.get().values().sum(); }');
        $types = $this->rawQuery()->toArray();

        if (empty($types)) {
            return;
        }

        $types = $types[0];

        $store = array();
        $total = 0;
        foreach($storage as $key => $v) {
            $c = empty($types[$v]) ? 0 : $types[$v];
            $store[] = array('key'   => $key,
                             'value' => $c);
            $total += $c;
        }
        $this->datastore->addRowAnalyzer($this->analyzerQuoted, $store);

        if ($total == 0) {
            return;
        }

        $types = array_filter($types, function ($x) use ($total) { return $x > 0 && $x / $total < 0.1; });
        if (empty($types)) {
            return;
        }

        $this->atomIs(array('Functioncall', 'Shell'))
             ->raw('or( hasLabel("Shell"), has("fullnspath", within("\\\\exec", "\\\\shell_exec")))')
             ->raw('sideEffect{ ' . $mapping . ' }')
             ->raw('filter{ x2 in ***}', $types)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class SetExceptionHandlerPHP7 extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/SetStringMethodDefinition',
                     'Complete/SetArrayClassDefinition',
                    );
    }

    public function analyze() {
        // With function name in a string
        $this->atomFunctionIs('\set_exception_handler')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs(array('String', 'Concatenation'), self::WITH_CONSTANTS)
             ->has('noDelimiter')
             ->regexIsNot('noDelimiter', '::')
             ->hasIn('DEFINITION')
             ->functionDefinition()
             ->outIs('ARGUMENT')
             ->outIs('TYPEHINT')
             ->fullnspathIsNot('\\throwable')
             ->back('first');
        $this->prepareQuery();

        // With class::method name in a string
        $this->atomFunctionIs('\set_exception_handler')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String', self::WITH_CONSTANTS)
             ->hasNoOut('CONCAT')
             ->regexIs('noDelimiter', '::')
             ->savePropertyAs('noDelimiter', 'methode')
             ->raw('sideEffect{ methode = methode.tokenize("::")[1]; }')
             ->hasIn('DEFINITION')
             ->classDefinition()
             ->atomIs('Method')
             ->outIs('NAME')
             ->samePropertyAs('fullcode', 'methode', self::CASE_INSENSITIVE)
             ->inIs('NAME')
             ->outIs('ARGUMENT')
             ->outIs('TYPEHINT')
             ->fullnspathIsNot('\\throwable')
             ->back('first');
        $this->prepareQuery();

        // With parent:method name in a string

        // With closure
        $this->atomFunctionIs('\set_exception_handler')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('Closure')
             ->outIs('ARGUMENT')
             ->outIs('TYPEHINT')
             ->fullnspathIsNot('\\throwable')
             ->atomIsNot('Void')
             ->back('first');
        $this->prepareQuery();

        // With array (class + method)
        $this->atomFunctionIs('\set_exception_handler')
             ->outWithRank('ARGUMENT', 0)
             ->AtomIs('Arrayliteral')
             ->outWithRank('ARGUMENT', 1)
             ->atomIs('String')
             ->hasNoOut('CONCAT')
             ->savePropertyAs('noDelimiter', 'methode')
             ->inIs('ARGUMENT')
             ->outWithRank('ARGUMENT', 0)
             ->classDefinition()
             ->outIs('METHOD')
             ->atomIs('Method')
             ->outIs('NAME')
             ->samePropertyAs('fullcode', 'methode', self::CASE_INSENSITIVE)
             ->inIs('NAME')
             ->outIs('ARGUMENT')
             ->outIs('TYPEHINT')
             ->fullnspathIsNot('\\throwable')
             ->back('first');
        $this->prepareQuery();

        // With array (object + method)
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class HashAlgos54 extends Analyzer {
    protected $phpVersion = '5.4-';

    public function analyze() {
        $algos = array_merge($this->loadIni('hash_algos.ini', 'removed54'),
                             $this->loadIni('hash_algos.ini', 'new56'));

        $this->atomFunctionIs(HashAlgos71::$functions)
             ->outWithRank('ARGUMENT', 0)
             ->atomIs(array('String', 'Concatenation', 'Heredoc'), self::WITH_CONSTANTS)
             ->noDelimiterIs($algos, self::CASE_INSENSITIVE);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class TryCatchUsage extends Analyzer {
    public function analyze() {
        $this->atomIs('Catch')
             ->outIs ('CLASS');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class UseCookies extends Analyzer {
    public function analyze() {
        // with setcookie
        $this->atomFunctionIs(array('\\setcookie', '\\setrawcookie'));
        $this->prepareQuery();

        // with header
        $this->atomFunctionIs('\\header')
             ->outIs('ARGUMENT')
             ->atomIs(array('String', 'Concatenation'))
             ->regexIs('fullcode', '[Ss]et-[Cc]ookie')
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('Variable')
             ->codeIs('$_COOKIE');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class PHP72scalartypehints extends Analyzer {
    protected $phpVersion = '7.2+';

    public function analyze() {
        $scalartypehints = array('\object',
                                 );

        // function foo(bool $x)
        $this->atomIs(self::FUNCTIONS_ALL)
             ->analyzerIsNot('self')
             ->outIs('ARGUMENT')
             ->outIs('TYPEHINT')
             ->fullnspathIs($scalartypehints)
             ->back('first');
        $this->prepareQuery();

        // function foo(bool $x)
        $this->atomIs(self::FUNCTIONS_ALL)
             ->analyzerIsNot('self')
             ->outIs('RETURNTYPE')
             ->fullnspathIs($scalartypehints)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class MissingSubpattern extends Analyzer {
     private $pregFunctions = array('\\preg_match_all',
                                    '\\preg_match',
                                    '\\preg_replace',
                                    '\\preg_replace_callback',
                                    '\\preg_relace_callback_array',
                                    );

    public function analyze() {

        //preg_match('/(a)b?/', 'adc', $r)
        $this->atomFunctionIs($this->pregFunctions)
             ->hasChildWithRank('ARGUMENT', 2) // subpatterns are captured
             // Also for preg_replace_* but that won't happen.
             ->not(
                $this->side()
                     ->outWithRank('ARGUMENT', 3)
                     ->atomInsideNoDefinition(array('Nsname', 'Identifier'))
                     ->fullnspathIs('\PREG_UNMATCHED_AS_NULL', self::CASE_SENSITIVE)
             )
             ->outWithRank('ARGUMENT', 0)
             ->has('noDelimiter')
             ->regexIs('noDelimiter', '\\\\)\\\\?[^\\\\(]*[^a-zA-Z][a-zA-Z]*\\$')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Common\ClassDefinition;

class Php74NewClasses extends ClassDefinition {
    protected $phpVersion = '7.4-';

    public function analyze() {
        $this->classes = array(
'ReflectionReference',
'WeakReference',
);
        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class CastingUsage extends Analyzer {

    public function analyze() {
        $this->atomIs('Cast');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class ConstantScalarExpression extends Analyzer {
    protected $phpVersion = '5.6+';

    public function analyze() {
        $validAtoms = self::LITERALS;
        $validAtoms[] = 'Void';

        // const x = 1 + 2;
        $this->atomIs('Const')
             ->outIs('CONST')
             ->outIs('VALUE')
             ->atomIsNot($validAtoms)
             ->back('first');
        $this->prepareQuery();

        // function x( $a = 3 . '3', $b = array())
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->outIs('DEFAULT')
             ->atomIsNot($validAtoms)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class Incompilable extends Analyzer {
    public function analyze() {
        $r = $this->datastore->getRow('compilation' . $this->config->phpversion[0] . $this->config->phpversion[2]);

        $this->rowCount       = count($r);
        $this->processedCount = 1;
        $this->queryCount     = 0;
        $this->rawQueryCount  = 0;

        // This is not actually done here....
        return true;
    }

    public function toArray() {
        $report = array();

        foreach($this->config->other_php_versions as $version) {
            $r = $this->datastore->getRow('compilation' . $version);

            foreach($r as $l) {
                $l['version'] = $version;
                $report[] = $l;
            }
        }

        return $report;
    }

    public function getDump(): array {
        if (!$this->hasResults()) {
            return array();
        }

        $report = array();
        // Collect version from datastore
        $r = $this->datastore->getHash('php_version');
        $version = $r[0] . $r[2];
        $r = $this->datastore->getRow('compilation' . $version);
        $report = array();

        foreach($r as $l) {
            $l['fullcode']  = $l['error'];
            $l['code']      = $l['error'];
            $l['namespace'] = '';
            $l['class']     = '';
            $l['function']  = '';

            $report[] = $l;
        }

        return $report;
    }

    public function hasResults(): bool {
        foreach($this->config->other_php_versions as $version) {
            $r = $this->datastore->getRow('compilation' . $version);

            if (!empty($r)) {
                return true;
            }
        }
        return false;
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class Labelnames extends Analyzer {

    public function analyze() {
        $this->atomIs('Gotolabel')
             ->outIs('GOTOLABEL');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class StrtrArguments extends Analyzer {
    public function analyze() {
        // strtr($a, $b, '') is always useless
        $this->atomFunctionIs('\\strtr')
             ->outWithRank('ARGUMENT', 2)
             ->atomIs('String')
             ->hasNoOut('CONCAT')
             ->noDelimiterIs('')
             ->back('first');
        $this->prepareQuery();

        // strtr($a, 'ab', 'cde') has different size in arguments
        // strtr($a, 'abc', 'cd') has different size in arguments
        $this->atomFunctionIs('\\strtr')
             ->outWithRank('ARGUMENT', 1)
             ->atomIs('String')
             ->hasNoOut('CONCAT')
             ->noDelimiterIsNot('')
             ->getStringLength('noDelimiter', 's1')
             ->inIs('ARGUMENT')
             ->outWithRank('ARGUMENT', 2)
             ->atomIs('String')
             ->hasNoOut('CONCAT')
             ->noDelimiterIsNot('')
             ->getStringLength('noDelimiter', 's2')
             ->raw('filter{s1 != s2}')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class OveriddenFunction extends Analyzer {
    public function analyze() {
        $exts = $this->rulesets->listAllAnalyzer('Extensions');
        $exts[] = 'php_functions';

        $functions = array();
        foreach($exts as $ext) {
            $inifile = str_replace('Extensions\\Ext', '', $ext);
            $ini = $this->load($inifile, 'functions');

            if (!empty($ini[0])) {
                $functions[] = $ini;
            }
        }

        $functions = array_merge(...$functions);
        $functions = array_keys(array_count_values($functions));
        $functions = array_map('strtolower', $functions);

        $this->atomIs('Functioncall')
             ->tokenIsNot('T_NS_SEPARATOR')
             ->codeIs($functions, self::TRANSLATE, self::CASE_INSENSITIVE)
             ->hasIn('DEFINITION')
             ->raw('filter{ parts = it.get().value("fullnspath").tokenize("\\\\"); parts.size() > 1 }')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Common\ClassDefinition;

class Php70NewClasses extends ClassDefinition {
    public function analyze() {
        $this->classes = array(
'Error',
'ParseError',
'TypeError',
'ArithmeticError',
'DivisionByZeroError',
'ClosedGeneratorException',
'ReflectionGenerator',
'ReflectionType',
'AssertionError',
);
        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class ReflectionExportIsDeprecated extends Analyzer {
    public function analyze() {
        $reflection = array('\reflection',
                            '\reflectionclass',
                            '\reflectionclassconstant',
                            '\reflectionzendextension',
                            '\reflectionextension',
                            '\reflectionfunction',
                            '\reflectionfunctionabstract',
                            '\reflectionmethod',
                            '\reflectionnamedtype',
                            '\reflectionobject',
                            '\reflectionparameter',
                            '\reflectionproperty',
                            '\reflectiontype',
                            '\reflectiongenerator',
                            '\reflector',
                            '\reflectionexception',
        );

        $this->atomIs('Staticmethodcall')
             ->outIs('CLASS')
             ->fullnspathIs($reflection)
             ->back('first')

             ->outIs('METHOD')
             ->outIs('NAME')
             ->codeIs('export', self::TRANSLATE, self::CASE_INSENSITIVE)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class SessionVariables extends Analyzer {
    public function analyze() {
        //$_SESSION['x'];
        $this->atomIs('Phpvariable')
             ->codeIs('$_SESSION')
             ->inIs('VARIABLE')
             ->atomIs('Array')
             ->outIs('INDEX')
             ->atomIs('String');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Common\FunctionDefinition;

class Php73NewFunctions extends FunctionDefinition {
    public function analyze() {
        $this->functions = array('net_get_interfaces',
                                 'gmp_binomial',
                                 'gmp_lcm',
                                 'gmp_perfect_power',
                                 'gmp_kronecker',
                                 'openssl_pkey_derive',
                                 'is_countable',
                                 'ldap_exop_refresh',
                                 'array_first_key',
                                 'array_last_key',
                                 'gc_status',
                                );
        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class CantUseReturnValueInWriteContext extends Analyzer {
    protected $phpVersion = '5.5+';

    public function analyze() {
        $this->atomIs('Empty')
             ->outIs('ARGUMENT')
             ->is('rank', 0)
             ->atomIs(self::FUNCTIONS_CALLS)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class RawPostDataUsage extends Analyzer {
    public function analyze() {
        //$HTTP_RAW_POST_DATA
        $this->atomIs(self::VARIABLES_ALL)
             ->codeIs('$HTTP_RAW_POST_DATA', self::TRANSLATE, self::CASE_SENSITIVE);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class ExponentUsage extends Analyzer {
    protected $phpVersion = '5.6+';

    public function analyze() {
        $this->atomIs('Power');
        $this->prepareQuery();

        $this->atomIs('Assignation')
             ->tokenIs('T_POW_EQUAL');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class ClassConstWithArray extends Analyzer {
    protected $phpVersion = '5.5+';

    public function analyze() {
        $this->atomIs('Const')
             ->hasClassInterface()
             ->outIs('CONST')
             ->as('results')
             ->outIs('VALUE')
             ->atomIs('Arrayliteral')
             ->back('results');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Common\UsedDirective;

class Php70RemovedDirective extends UsedDirective {
    public function analyze() {
        $this->directives = array('always_populate_raw_post_data',
                                  'asp_tags',
                                  'xsl.security_prefs');

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class IsINF extends Analyzer {
    public function analyze() {
        // is_infinite()
        $this->atomFunctionIs('\\is_infinite');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;
use Exakat\Analyzer\Structures\pregOptionE;
use Exakat\Analyzer\Structures\UnknownPregOption;

class UnknownPcre2Option extends Analyzer {
    public function analyze() {
        // Options list : S and X
        $options = '[a-zA-Z\\\\s]*[S][a-zA-Z\\\\s]*';

        // preg_match with a string
        $this->atomFunctionIs(UnknownPregOption::$functions)
             ->outWithRank('ARGUMENT', 0)
             ->tokenIs('T_CONSTANT_ENCAPSED_STRING')
             ->isNot('noDelimiter', '')
             ->raw(pregOptionE::FETCH_DELIMITER)
             ->raw(pregOptionE::MAKE_DELIMITER_FINAL)
             ->raw('filter{ it.get().value("noDelimiter").length() >= (delimiter + delimiterFinal).length() }')
             ->raw('filter{ (it.get().value("noDelimiter") =~ delimiter + ".*" + delimiterFinal ).getCount() != 0 }')
             ->regexIs('noDelimiter', '^\\\\s*(" + delimiter + ").*(?<!\\\\\\\\)\\\\s*(" + delimiterFinal + ")(' . $options . ')\\$')
             ->back('first');
        $this->prepareQuery();

        // With an interpolated string "a $x b"
        $this->atomFunctionIs(UnknownPregOption::$functions)
             ->outWithRank('ARGUMENT', 0)
             ->tokenIs('T_QUOTE')
             ->hasOut('CONCAT')
             ->outWithRank('CONCAT', 0)
             ->atomIs('String')
             ->isNot('noDelimiter', '')
             ->raw(pregOptionE::FETCH_DELIMITER)
             ->inIs('CONCAT')
             ->raw(pregOptionE::MAKE_DELIMITER_FINAL)
             ->raw('filter{ it.get().value("noDelimiter").length() >= (delimiter + delimiterFinal).length() }')
             ->raw('filter{ (it.get().value("noDelimiter") =~ delimiter + ".*" + delimiterFinal ).getCount() != 0 }')
             ->regexIs('fullcode', '^.\\\\s*(" + delimiter + ").*(?<!\\\\\\\\)\\\\s*(" + delimiterFinal + ")(' . $options . ').\\$')
             ->back('first');
        $this->prepareQuery();

        // with a concatenation
        $this->atomFunctionIs(UnknownPregOption::$functions)
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('Concatenation')
             ->as('concat')
             ->outWithRank('CONCAT', 0)
             ->atomIs('String')
             ->outIsIE('CONCAT') // In case it is an interpolated string
             ->is('rank', 0)     // Same as above, but may be double when there is no interpolation
             ->atomIs('String')
             ->isNot('noDelimiter', '')
             ->raw(pregOptionE::FETCH_DELIMITER)
             ->raw(pregOptionE::MAKE_DELIMITER_FINAL)
             ->back('concat')
             ->raw('filter{ it.get().value("fullcode").length() >= (delimiter + delimiterFinal).length() + 2 }')
             ->raw('filter{ (it.get().value("fullcode") =~ delimiter + ".*" + delimiterFinal ).getCount() != 0 }')
             ->regexIs('fullcode', '^.\\\\s*(" + delimiter + ").*(?<!\\\\\\\\)\\\\s*(" + delimiterFinal + ")(' . $options . ').\\$')
             ->back('first');
        $this->prepareQuery();

        // Searching for \y in strings
        // preg_match with a string
        // Those letters will fail. Other will be useful, or fail for good reason (\u needs a codepoint).
        $letters = 'gijkmoqyFIJMOTY';
        $this->atomFunctionIs(UnknownPregOption::$functions)
             ->outWithRank('ARGUMENT', 0)
             ->tokenIs('T_CONSTANT_ENCAPSED_STRING')
             ->isNot('noDelimiter', '')
             ->regexIs('noDelimiter', '\\\\\\\\[' . $letters . ']')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class ReservedNames extends Analyzer {
    protected $reservedNames = '';
    protected $allowedNames = '';

    public function analyze() {
        $phpNames = $this->loadIni('php_keywords.ini', 'keyword');

        $reservedNames = array_merge(str2array($this->reservedNames),
                                     array_diff($phpNames, str2array($this->allowedNames)));

        // functions/methods names
        $this->atomIs(array('Function', 'Class', 'Interface', 'Trait'))
             ->outIs('NAME')
             ->codeIs($reservedNames)
             ->back('first');
        $this->prepareQuery();

        // methodcall
        $this->atomIs(array('Methodcall', 'Staticmethodcall'))
             ->outIs('METHOD')
             ->codeIs($reservedNames)
             ->back('first');
        $this->prepareQuery();

        // variables
        $reservedNamesVariables = array_map(function ($x) { return "\$$x"; }, $reservedNames);
        $this->atomIs(self::VARIABLES_ALL)
             ->tokenIs('T_VARIABLE') // avoid dynamical variables
             ->codeIs($reservedNamesVariables);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class DirectiveName extends Analyzer {
    public function analyze() {
        // ini_set('my.own.directive');
        $directives = $this->loadIni('directives.ini', 'directives');

        $this->atomFunctionIs(array('\\ini_set', '\\ini_get'))
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String')
             ->hasNoOut('CONCAT')
             ->noDelimiterIsNot($directives, self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class Php74mbstrrpos3rdArg extends Analyzer {
    public function analyze() {
        // mb_strrpos('a','b',0, 'UTF-8)
        $this->atomFunctionIs('\\mb_strrpos')
             ->hasChildWithRank('ARGUMENT', 3);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class UseWeb extends Analyzer {
    public function analyze() {
        // GPC + R
        $this->atomIs(self::VARIABLES_ALL)
             ->codeIs(array('$_GET', '$_POST', '$_REQUEST', '$_COOKIE'), true);
        $this->prepareQuery();

        // $_SERVER + special index
        $this->atomIs('Phpvariable')
             ->codeIs('$_SERVER', true)
             ->inIs('VARIABLE')
             ->outIs('INDEX')
             ->noDelimiterIs(array('SERVER_PROTOCOL',
                                   'SERVER_NAME',
                                   'SERVER_PORT',

                                   'HTTP_HOST',
                                   'HTTP_ORIGIN',
                                   'HTTP_USER_AGENT',
                                   'HTTP_COOKIE',
                                   'HTTP_ACCEPT',
                                   'HTTP_ACCEPT_LANGUAGE',
                                   'HTTP_ACCEPT_ENCODING',
                                   'HTTP_CONNECTION',
                                   'HTTP_REFERER',
                                   'HTTP_IF_MODIFIED_SINCE',
                                   'HTTP_IF_NONE_MATCH',

                                   'CONTENT_TYPE',

                                   'REQUEST_URI',
                                   'REQUEST_METHOD',
                                   'QUERY_STRING',
                                   'REMOTE_ADDR',
                                   'REMOTE_PORT',
                                 ))
            ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class DetectCurrentClass extends Analyzer {
    protected $phpVersion = '8.0-';

    public function analyze() {
        // avoid __CLASS__
        $this->atomIs('Magicconstant')
             ->codeIs('__CLASS__');
        $this->prepareQuery();

        // avoid get_called_class()
        $this->atomFunctionIs('\\get_called_class');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class AvoidMbDectectEncoding extends Analyzer {
    public function analyze() {
        // mb_encodding_detect
        $this->atomFunctionIs('\\mb_detect_encoding');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Common\UsedDirective;

class Php71RemovedDirective extends UsedDirective {
    protected $phpVersion = '7.1+';

    public function analyze() {
        $this->directives = array('session.hash_function',
                                  'session.hash_bits_per_charactor',
                                  'session.entropy_file',
                                  'session.entropy_length');

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class ForeachDontChangePointer extends Analyzer {
    protected $phpVersion = '7.0-';

    public function analyze() {
        $this->atomIs('Foreach')
             ->outIs('SOURCE')
             ->savePropertyAs('fullcode', 'source')
             ->inIs('SOURCE')
             ->outIs('VALUE')
             ->is('reference', true)
             ->back('first')

             ->outIs('BLOCK')
             ->functioncallIs(array('\\current', '\\next', '\\prev', '\\each', '\\end'))
             ->outIs('ARGUMENT')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class YieldFromUsage extends Analyzer {
    protected $phpVersion = '7.0+';

    public function analyze() {
        $this->atomIs('Yieldfrom');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class FlexibleHeredoc extends Analyzer {
    protected $phpVersion = '7.3+';

    public function analyze() {
        // Flexible PHP 7.3 heredoc or nowdoc
        $this->atomIs('Heredoc')
             ->is('flexible', true);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class NoCastToInt extends Analyzer {
    public function analyze() {
        // $x = (int) 1 + 3;
        $this->atomIs('Cast')
             ->tokenIs('T_INT_CAST')
             ->outIs('CAST')
             ->atomIsNot(array('Variable', 'Functioncall', 'Member', 'Staticproperty', 'Float', 'Multiplication', 'Addition', 'Power'))
             ->atomInsideNoDefinition('Float')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class NoStringWithAppend extends Analyzer {
    protected $phpVersion = '7.0+';

    // $x = ''; $x[] = 2;
    public function analyze() {
        $this->atomIs('Function')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Assignation')
             ->codeIs('=')
             ->as('results')
             ->outIs('RIGHT')
             ->atomIs('String')
             ->inIs('RIGHT')
             ->outIs('LEFT')
             ->savePropertyAs('fullcode', 'container')
             ->inIs('LEFT')
             ->nextSiblings()
             ->atomIs('Assignation')
             ->outIs('LEFT')
             ->atomIs('Arrayappend')
             ->outIs('APPEND')
             ->samePropertyAs('fullcode', 'container')
             ->back('results');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Common\FunctionDefinition;

class Php56NewFunctions extends FunctionDefinition {
    public function analyze() {
        $this->functions = array(
'gmp_root',
'gmp_rootrem',
'ldap_escape',
'oci_get_implicit_resultset',
'openssl_x509_fingerprint',
'openssl_spki_new',
'openssl_spki_verify',
'openssl_spki_export_challenge',
'openssl_spki_export',

);
        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class DeclareEncoding extends Analyzer {
    // Declare( encoding = 'UTF-8')
    public function analyze() {
        $this->atomIs('File')
             ->outIs('FILE')
             ->outIs('EXPRESSION')
             ->outIs('CODE')
             ->outIs('EXPRESSION')
             ->atomIs('Declare')
             ->outIs('DECLARE')
             ->outIs('NAME')
             ->codeIs('encoding')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class EllipsisUsage extends Analyzer {
    protected $phpVersion = '5.6+';

    public function analyze() {
        // function foo(...$x) {}
        // foo(...$y);
        $this->atomIs(array('Variable',
                            'Member',
                            'Array',
                            'Staticproperty',
                            'Staticconstant',
                            'Methodcall',
                            'Staticmethodcall',
                            'Functioncall',
                            'Identifier',
                            'Nsname',
                            'Parameter',
                            ))
             ->is('variadic', true);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Common\FunctionDefinition;

class Php72NewFunctions extends FunctionDefinition {
    public function analyze() {
        $this->functions = array( 'mb_ord',
                                  'mb_chr',
                                  'mb_scrub',
                                  'stream_isatty',
                                  'ftp_append',
                                  'ftp_mlsd',
                                  'sapi_windows_vt100_support',
                                  'imagesetclip',
                                  'imagegetclip',
                                  'imageopenpolygon',
                                  'imageresolution',
                                  'imagecreatefrombmp',
                                  'imagebmp',
                                  'oci_register_taf_callback',
                                  'oci_disable_taf_callback',
                                  'socket_addrinfo_lookup',
                                  'socket_addrinfo_connect',
                                  'socket_addrinfo_bind',
                                  'socket_addrinfo_explain',
                                  'ldap_parse_exop',
                                  'ldap_exop',
                                  'ldap_exop_passwd',
                                  'ldap_exop_whoami',
                                  'hash_hmac_algos',
                                  'inflate_get_status',
                                  'inflate_get_read_len',
                                  'openssl_pkcs7_read',
                                );
        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class ListWithReference extends Analyzer {
    protected $phpVersion = '7.3+';

    // list($a, &$b) = $c;
    public function analyze() {
        $this->atomIs('List')
             ->outIs('ARGUMENT')
             ->is('reference', true)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class TooManyNativeCalls extends Analyzer {
    protected $nativeCallCounts = 3;

    public function dependsOn(): array {
        return array('Functions/IsExtFunction',
                    );
    }

    public function analyze() {
        $this->atomIs('Sequence')
             ->outIs('EXPRESSION')
             ->atomIsNot(array('Assignation',
                               'Case',
                               'Catch',
                               'Class',
                               'Classanonymous',
                               'Closure',
                               'Concatenation',
                               'Default',
                               'Dowhile',
                               'Finally',
                               'For',
                               'Foreach',
                               'Function',
                               'Ifthen',
                               'Include',
                               'Method',
                               'Namespace',
                               'Php',
                               'Return',
                               'Switch',
                               'Trait',
                               'Try',
                               'While',
                               ))
             ->as('results')
             ->analyzerInsideMoreThan('Functions/IsExtFunction', 'Functioncall', $this->nativeCallCounts)
             ->back('results');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class GroupUseTrailingComma extends Analyzer {
    protected $phpVersion = '7.2+';

    public function analyze() {
        // use a\b\{c,d,}
        $this->atomIs('Usenamespace')
             ->hasOut('GROUPUSE')
             ->is('trailing', true);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class AlternativeSyntax extends Analyzer {
    public function analyze() {
        $this->atomIs('Ifthen')
             ->is('alternative', true);
        $this->prepareQuery();

        $this->atomIs('Switch')
             ->is('alternative', true);
        $this->prepareQuery();

        $this->atomIs('For')
             ->is('alternative', true);
        $this->prepareQuery();

        $this->atomIs('Foreach')
             ->is('alternative', true);
        $this->prepareQuery();

        $this->atomIs('While')
             ->is('alternative', true);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Common\ClassUsage;

class PearUsage extends ClassUsage {
    public function analyze() {
        $this->classes = $this->loadIni('pear.ini', 'classes');

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class NoMoreCurlyArrays extends Analyzer {
    protected $phpVersion = '8.0-';

    public function analyze() {
        // $a{3}
        $this->atomIs('Array')
             ->codeIs('{')
             ->inIsIE('VARIABLE');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class UsePathinfoArgs extends Analyzer {
    public function analyze() {
        // Only tested inside function, for smaller scope
        // This may be upgraded with array name (currently ignored)
        $this->atomFunctionIs('\\pathinfo')
             ->noChildWithRank('ARGUMENT', 1)
             ->goToFunction()
             // 2 indices are used at least
             ->filter(
                $this->side()
                     ->outIs('BLOCK')
                     ->atomInsideNoDefinition('Array')
                     ->outIs('INDEX')
                     ->atomIs('String')
                     ->noDelimiterIs(array('dirname', 'basename', 'extension', 'filename'))
                     ->dedup('noDelimiter')
                     ->raw('count().is(lt(3))')
             )
             ->back('first');
        $this->prepareQuery();

        //$extension = substr(strrchr($path, "."), 1);
        $this->atomFunctionIs('\\substr')
             ->outWithRank('ARGUMENT', 1)
             ->is('intval', 1)
             ->inIs('ARGUMENT')
             ->outWithRank('ARGUMENT', 0)
             ->functioncallIs('\\strrchr')
             ->outWithRank('ARGUMENT', 1)
             ->is('noDelimiter', '.')
             ->back('first');
        $this->prepareQuery();

        //$extension = array_pop(explode('.', $path));
        $this->atomFunctionIs('\\array_pop')
             ->outWithRank('ARGUMENT', 0)
             ->functioncallIs(array('\\explode', '\\split'))
             ->outWithRank('ARGUMENT', 0)
             ->is('noDelimiter', '.')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class IncomingVariables extends Analyzer {
    public function analyze() {
        // $_POST
        $this->atomIs('Phpvariable')
             ->codeIs(array('$_GET', '$_POST', '$_REQUEST', '$_FILES', '$_COOKIE'))
             ->inIs('VARIABLE')
             ->atomIs('Array')
             ->outIs('INDEX')
             ->atomIs('String');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class ConcatAndAddition extends Analyzer {
    public function analyze() {
        // "sum ". $a + $b
        $this->atomIs('Concatenation')
             ->outIs('CONCAT')
             ->atomIs(array('Addition', 'Bitshift'))
             ->back('first');
        $this->prepareQuery();

        // $a + $b . "sum "
        // for PHP 7.4 and later
        $this->atomIs(array('Addition', 'Bitshift'))
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs('Concatenation')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class Coalesce extends Analyzer {
    protected $phpVersion = '7.0+';

    public function analyze() {
        $this->atomIs('Ternary')
             ->outIs('THEN')
             ->atomIs('Void')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class NoReturnForGenerator extends Analyzer {
    protected $phpVersion = '7.0+';

    public function dependsOn(): array {
        return array('Functions/IsGenerator',
                    );
    }

    public function analyze() {
        $this->analyzerIs('Functions/IsGenerator')
             ->hasAtomInside('Return');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class LogicalInLetters extends Analyzer {
    public function analyze() {
        // $a and $b
        $this->atomIs('Logical')
             ->codeIs(array('and', 'or', 'xor'))
             ->hasNoParent('Parenthesis', array('CODE'));
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class NoListWithString extends Analyzer {
    protected $phpVersion = '7.0-';

    public function analyze() {
        // list($a, $b) = 'string';
        $this->atomIs('List')
             ->inIs('LEFT')
             ->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomIs(self::STRINGS_ALL)
             ->back('first');
        $this->prepareQuery();

        // $c = 'string'; list($a, $b) = $c;
        $this->atomIs('List')
             ->inIs('LEFT')
             ->outIs('RIGHT')
             ->atomIs('Variable')
             ->savePropertyAs('code', 'name')
             ->inIs('RIGHT')
             ->previousSibling()
             ->atomIs('Assignation')
             ->codeIs(array('=', '.='), self::TRANSLATE, self::CASE_SENSITIVE)
             ->outIs('LEFT')
             ->atomIs('Variable')
             ->samePropertyAs('code', 'name')
             ->inIs('LEFT')
             ->outIs('RIGHT')
             ->atomIs(self::STRINGS_ALL)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class AvoidReal extends Analyzer {
    public function analyze() {
        // $s = (real) $s;
        $this->atomIs('Cast')
             ->codeIs('(real)');
        $this->prepareQuery();

        // is_real($s)
        $this->atomFunctionIs('\\is_real');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class NewExponent extends Analyzer {
    protected $phpVersion = '5.6+';

    public function analyze() {
        $this->atomFunctionIs('\\pow');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class MustCallParentConstructor extends Analyzer {
    public function dependsOn(): array {
        return array('Classes/Constructor',
                    );
    }

    public function analyze() {
        $fullnspath = array('\spltempfileobject',
                            '\splfileobject',
                            );

        $lccode = $this->dictCode->translate(array('__construct'));
        if (empty($lccode)) {
            return;
        }

        $this->atomIs(array('Class', 'Classanonymous'))
             ->outIs('EXTENDS')
             ->fullnspathIs($fullnspath)
             ->back('first')
             ->outIs('MAGICMETHOD')
             ->analyzerIs('Classes/Constructor')
             ->outIs('BLOCK')
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->atomInsideNoDefinition('Staticmethodcall')
                             ->outIs('CLASS')
                             ->atomIs('Parent')
                             ->inIs('CLASS')
                             ->outIs('METHOD')
                             ->codeIs($lccode, self::NO_TRANSLATE, self::CASE_INSENSITIVE)
                     )
             )
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Common\UsedDirective;

class Php74RemovedDirective extends UsedDirective {
    protected $phpVersion = '7.4+';

    public function analyze() {
        $this->directives = array('allow_url_include',
                                 );

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class IncomingValues extends Analyzer {
    public function analyze() {
        // $_POST or $_POST['3']
        $this->atomIs('Phpvariable')
             ->codeIs(array('$_GET', '$_POST', '$_REQUEST', '$_FILES', '$_COOKIE'))
             ->inIsIE('VARIABLE');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class UnpackingInsideArrays extends Analyzer {
    protected $phpVersion = '7.4+';

    public function analyze() {
        // $a = [1, ...$b, $c];
        $this->atomIs('Arrayliteral')
             ->outIs('ARGUMENT')
             ->is('variadic', true)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class UseNullableType extends Analyzer {
    protected $phpVersion = '7.1+';

    public function analyze() {
        // Return type function foo(): ?String
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs(array('RETURNTYPE', 'ARGUMENT'))
             ->outIsIE('TYPEHINT')
             ->atomIs('Null')
             ->back('first'); // Go back to fucntion
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class BetterRand extends Analyzer {
    public function analyze() {
        // rand => mt_rand => random_int
        $this->atomFunctionIs(array('\rand',
                                    '\mt_rand',
                                    '\openssl_random_pseudo_bytes',
                                    '\uniqid',
                                    '\lcg_value',
                                    ));
        $this->prepareQuery();

        // sha1(microtime())
        $this->atomFunctionIs(array('\microtime',
                                    '\time',
                                    ))
             ->inIs('ARGUMENT')
             ->functioncallIs(array('\md5',
                                    '\sha1',
                                    '\sha2156',
                                    '\hash',
                                    '\crc32',
                                    '\crypt',
                                    '\str_rot13',
                                    '\strrev',
                                    '\uniqid',
                                    '\base64_encode',
                                    ))
            ->analyzerIsNot('self');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class ClassFunctionConfusion extends Analyzer {
    public function analyze() {
        // class foo{}; function foo();
        // possible confusion
        $this->atomIs('Function')
             ->values('fullnspath')
             ->unique();
        $res = $this->rawQuery();
        $functions = $res->toArray();

        $this->atomIs(array('Class', 'Interface', 'Trait'))
             ->values('fullnspath')
             ->unique();
        $res = $this->rawQuery();
        $classes = $res->toArray();

        $common = array_intersect($functions, $classes);

        if (empty($common)) {
            return;
        }
        $this->atomIs(array('Class', 'Trait', 'Interface', 'Function'))
             ->fullnspathIs($common);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class AutoloadUsage extends Analyzer {
    public function analyze() {
        $functions = array('\\spl_autoload_call',
                           '\\spl_autoload_functions',
                           '\\spl_autoload_extensions',
                           '\\spl_autoload_register',
                           '\\spl_autoload_unregister',
                           '\\spl_autoload',
                           '\\spl_classes',
                           '\\spl_object_hash',
                           );
        $this->atomFunctionIs($functions);
        $this->prepareQuery();

        $this->atomIs('Function')
             ->fullnspathIs('\\__autoload')
             ->back('first');
        $this->prepareQuery();

    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class YieldUsage extends Analyzer {
    protected $phpVersion = '5.5+';

    public function analyze() {
        $this->atomIs('Yield');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class ThrowWasAnExpression extends Analyzer {
    protected $phpVersion = '8.0+';

    public function analyze() {
        // $a ?? throw new Exception()
        $this->atomIs(array('Coalesce', 'Assignation', 'Ternary', 'Logical', 'Throw'))
             ->outIs(array('LEFT', 'RIGHT', 'CONDITION', 'THEN', 'ELSE', 'THROW'))
             ->atomIs('Throw')
             ->back('first');
        $this->prepareQuery();

        // $a ?? throw new Exception()
        $this->atomIs('For')
             ->outIs(array('INIT', 'INCREMENT', 'CONDITION'))
             ->outIs('EXPRESSION')
             ->atomIs('Throw')
             ->back('first');
        $this->prepareQuery();

        // $a ?? throw new Exception()
        $this->atomIs('Arrowfunction')
             ->outIs('BLOCK')
             ->atomIs('Throw')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class ListShortSyntax extends Analyzer {
    protected $phpVersion = '7.1+';

    public function analyze() {
        // [$a, $b] = [1, 2], insteead of list($a, $b);
        $this->atomIs('List')
             ->tokenIs('T_OPEN_BRACKET');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class DeclareTicks extends Analyzer {
    // Declare( ticks = 3)
    public function analyze() {
        $this->atomIs('File')
             ->outIs('FILE')
             ->outIs('EXPRESSION')
             ->outIs('CODE')
             ->outIs('EXPRESSION')
             ->atomIs('Declare')
             ->outIs('DECLARE')
             ->outIs('NAME')
             ->codeIs('ticks')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class MiddleVersion extends Analyzer {
    private $bugfixes = array();

    public function dependsOn(): array {
        $this->bugfixes = $this->methods->getBugFixes();

        $depends = array();
        foreach($this->bugfixes as $bugfix) {
            if (!empty($bugfix['analyzer'])) {
                $depends[] = $bugfix['analyzer'];
            }
        }

        return $depends;
    }

    public function analyze() {
        // bugfixes based on functions
        $functions = array();
        foreach($this->bugfixes as $bugfix) {
            if (!empty($bugfix['function'])) {
                $functions[] = $bugfix['function'];
            }
        }
        $this->atomFunctionIs(makeFullNsPath($functions));
        $this->prepareQuery();

        // bugfixes based on analyzers
        $analyzers = array_column($this->bugfixes, 'analyzer');
        $available = array_filter($analyzers);

        $this->analyzerIs($available)
             ->analyzerIsNot('self')
             ->ignore();
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Common\Extension;

class Deprecated extends Extension {

    public function analyze() {
        $this->source = 'deprecated.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Analyzer;

class NestedTernaryWithoutParenthesis extends Analyzer {
    protected $phpVersion = '7.4-';

    public function analyze() {
        //$a ? $b : $c ? $d : $e
        $this->atomIs('Ternary')
             ->outIs(array('THEN', 'ELSE'))
             ->atomIs('Ternary')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Php;

use Exakat\Analyzer\Common\UsedDirective;

class DirectivesUsage extends UsedDirective {
    public function analyze() {
        $this->directives = (array) $this->loadIni('php_directives.ini', 'directives');

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Exceptions;

use Exakat\Analyzer\Analyzer;

class Rethrown extends Analyzer {
    public function analyze() {
        // try {} catch (Exception $e) { throw $e; }
        $this->atomIs('Try')
             ->outIs('CATCH')
             ->outIs('VARIABLE')
             ->savePropertyAs('code', 'rethrow')
             ->inIs('VARIABLE')
             ->outIs('BLOCK')
             ->outIs('EXPRESSION')
             ->is('rank', 0)  // Just one expression. Otherwise, some other
             ->atomIs('Throw')
             ->outIs('THROW')
             ->samePropertyAs('code', 'rethrow')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Exceptions;

use Exakat\Analyzer\Analyzer;

class IsPhpException extends Analyzer {
    public function analyze() {
        $exceptions = $this->loadIni('php_exception.ini', 'classes');
        $exceptions = makeFullNsPath($exceptions);

        // new \invalidArgumentException('boo')
        $this->atomIs('New')
             ->outIs('NEW')
             ->fullnspathIs($exceptions);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Exceptions;

use Exakat\Analyzer\Analyzer;

class Unthrown extends Analyzer {
    public function dependsOn(): array {
        return array('Exceptions/DefinedExceptions',
                    );
    }

    public function analyze() {
        $this->atomIs('Throw')
             ->outIs('THROW')
             ->outIs('NEW')
             ->values('fullnspath')
             ->unique();
        $thrown = $this->rawQuery()->toArray();

        if (empty($thrown)) {
            return;
        }

        $this->atomIs(self::CLASSES_ALL)
             ->analyzerIs('Exceptions/DefinedExceptions')
             ->fullnspathIsNot($thrown);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Exceptions;

use Exakat\Analyzer\Analyzer;

class ThrowFunctioncall extends Analyzer {
    public function analyze() {
        $phpClasses    = $this->loadIni('php_classes.ini', 'classes');
        $phpClassesFnp = makeFullNsPath($phpClasses);

        // throw className(), defined class, no function
        $this->atomIs('Throw')
             ->outIs('THROW')
             ->tokenIs(array('T_STRING', 'T_NS_SEPARATOR'))
             ->atomIs('Functioncall')
             ->hasNoFunctionDefinition()
             ->back('first');
        $this->prepareQuery();

        // throw RuntimeException()
        $this->atomIs('Throw')
             ->outIs('THROW')
             ->tokenIs(array('T_STRING', 'T_NS_SEPARATOR'))
             ->atomIsNot(array('Array', 'Functioncall'))
             ->fullnspathIs($phpClassesFnp)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Exceptions;

use Exakat\Analyzer\Analyzer;

class ThrownExceptions extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/CreateDefaultValues',
                     'Exceptions/DefinedExceptions',
                    );
    }

    public function analyze() {
        // class x extends \Exception
        // throw new X
        $this->atomIs('Throw')
             ->outIs('THROW')
             ->outIsIE(array('RIGHT', 'CODE'))
             ->outIs('NEW')
             ->inIs('DEFINITION')
             ->atomIs(self::CLASSES_ALL)
             ->analyzerIsNot('self');
        $this->prepareQuery();

        // $x = new X;
        // throw $x
        $this->atomIs('Throw')
             ->outIs('THROW')
             ->inIs('DEFINITION')
             ->outIs('DEFAULT')
             ->atomIs('New')
             ->outIs('NEW')
             ->inIs('DEFINITION')
             ->atomIs(self::CLASSES_ALL)
             ->analyzerIs('Exceptions/DefinedExceptions')
             ->analyzerIsNot('self');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Exceptions;

use Exakat\Analyzer\Analyzer;

class CaughtExceptions extends Analyzer {
    public function analyze() {
        $this->atomIs('Catch')
             ->outIs('CLASS');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Exceptions;

use Exakat\Analyzer\Analyzer;

class ForgottenThrown extends Analyzer {

    public function dependsOn(): array {
        return array('Exceptions/DefinedExceptions',
                    );
    }

    public function analyze() {
        $exceptions = $this->loadIni('php_exception.ini', 'classes');
        $exceptions = makeFullNsPath($exceptions);

        // new MyException();
        $this->atomIs('New')
             ->inIsIE('CODE') // parenthesis
             ->hasNoIn(array('THROW', 'RIGHT')) // RIGHT is for assignation
             ->outIs('NEW')
             ->classDefinition()
             ->analyzerIs('Exceptions/DefinedExceptions')
             ->back('first');
        $this->prepareQuery();

        // new Exception();
        $this->atomIs('New')
             ->inIsIE('CODE') // parenthesis
             ->hasNoIn(array('THROW', 'RIGHT')) // RIGHT is for assignation
             ->outIs('NEW')
             ->fullnspathIs($exceptions)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
namespace Exakat\Analyzer\Exceptions;

use Exakat\Analyzer\Analyzer;

class AlreadyCaught extends Analyzer {
    public function analyze() {
        // Check that the class of on catch is not a parent of of the next catch
        // class A, class B extends A
        // catch(A $a) {} catch (B $b) <= then Catch A is wrong
        $this->atomIs('Try')
             ->outIs('CATCH')
             ->savePropertyAs('rank', 'ranked')
             ->outIs('CLASS')
             ->savePropertyAs('fullnspath', 'fnp')
             ->inIs('CLASS')
             ->inIs('CATCH')
             ->outIs('CATCH')
             ->isMore('rank', 'ranked')
             ->outIs('CLASS')
             ->classDefinition()
             ->goToAllParents(self::INCLUDE_SELF)
             ->outIs('EXTENDS')
             ->samePropertyAs('fullnspath', 'fnp')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Exceptions;

use Exakat\Analyzer\Analyzer;

class CantThrow extends Analyzer {
    public function analyze() {
        // class x extends throwable {}
        $this->atomIs(array('Class', 'Interface'))
             ->outIs(array('IMPLEMENTS', 'EXTENDS'))
             ->fullnspathIs('\throwable')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Exceptions;

use Exakat\Analyzer\Analyzer;

class CatchE extends Analyzer {
    public function analyze() {
        $this->atomIs('Catch')
             ->outIs('VARIABLE')
             ->values('fullcode')
             ->raw('groupCount("gf").cap("gf").sideEffect{ s = it.get().values().sum(); }');
        $types = $this->rawQuery()->toArray();

        if (empty($types)) {
            return;
        }

        $types = $types[0];
        $storage = array_combine(array_keys($types), array_keys($types));

        $store = array();
        $total = 0;
        foreach($storage as $key => $v) {
            $c = empty($types[$v]) ? 0 : $types[$v];
            $store[] = array('key'   => $key,
                             'value' => $c);
            $total += $c;
        }
        $this->datastore->addRowAnalyzer($this->analyzerQuoted, $store);

        if ($total === 0) {
            return;
        }

        $types = array_filter($types, function ($x) use ($total) { return $x > 0 && $x / $total < 0.1; });
        $types =  array_keys($types);
        if (empty($types)) {
            return;
        }

        $this->atomIs('Catch')
             ->outIs('VARIABLE')
             ->codeIs($types, self::TRANSLATE, self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Exceptions;

use Exakat\Analyzer\Analyzer;

class UselessCatch extends Analyzer {
    public function analyze() {
        // try {} catch (Exception $e) { return 1; }
        $this->atomIs('Try')
             ->outIs('CATCH')
             ->outIs('BLOCK')
             ->is('count', 1)
             ->outIs('EXPRESSION')
             ->atomIs('Return')
             ->outIs('RETURN')
             ->is('constant', true)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Exceptions;

use Exakat\Analyzer\Analyzer;

class CouldUseTry extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/PropagateConstants',
                    );
    }

    public function analyze() {
        // $a = $b << $c; (No try... )
        $this->atomIs('Bitshift')
             ->outIs('RIGHT')
             ->has('intval')
             ->isLess('intval', 0)
             ->hasNoTryCatch()
             ->back('first');
        $this->prepareQuery();

        // $a = $b << $c; (No try... )
        $this->atomIs('Bitshift')
             ->outIs('RIGHT')
             ->hasNo('intval')
             ->hasNoTryCatch()
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('Multiplication')
             ->codeIs(array('%', '/'))
             ->outIs('RIGHT')
             ->hasNo('intval')
             ->hasNoTryCatch()
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('Multiplication')
             ->codeIs(array('%', '/'))
             ->outIs('RIGHT')
             ->has('intval')
             ->is('intval', 0)
             ->hasNoTryCatch()
             ->back('first');
        $this->prepareQuery();

        $this->atomFunctionIs('\\intdiv')
             ->outWithRank('ARGUMENT', 1)
             ->hasNo('intval')
             ->hasNoTryCatch()
             ->back('first');
        $this->prepareQuery();

        $throws = $this->loadJson('throw_exceptions.json');
        $functions = array();
        $news = array();
        $methods = array();

        foreach($throws as $throw) {
            if (isset($throw->function)) {
                $functions[] = makeFullnspath($throw->function);
                continue;
            }

            if (isset($throw->class) && $throw->method === '__construct') {
                $news[] = makeFullnspath($throw->class);
                continue;
            }

            array_collect_by($methods, makeFullnspath($throw->class),  $throw->method);
        }

        $this->atomIs('New')
             ->outIs('NEW')
             ->is('fullnspath', $news)
             ->hasNoTryCatch();
        $this->prepareQuery();

        $this->atomFunctionIs($functions)
             ->hasNoTryCatch();
        $this->prepareQuery();

        $this->atomIs('Staticmethodcall')
             ->outIs('CLASS')
             ->fullnspathIs(array_keys($methods))
             ->savePropertyAs('fullnspath', 'fnp')
             ->back('first')

             ->outIs('METHOD')
             ->outIs('NAME')
             ->isHash('fullcode', $methods, 'fnp', self::CASE_INSENSITIVE)
             ->hasNoTryCatch()
             ->back('first');
        $this->prepareQuery();

        $this->atomIs(array('Staticmethodcall', 'Methodcall'))
             ->outIs('CLASS')
             ->is('fullnspath', '\\phar')
             ->inIs('CLASS')
             ->outIs('METHOD')
             ->codeIs(array('mungserver', 'webphar'), self::TRANSLATE, self::CASE_INSENSITIVE)
             ->hasNoTryCatch()
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Exceptions;

use Exakat\Analyzer\Analyzer;

class DefinedExceptions extends Analyzer {
    public function analyze() {
        $exceptions = $this->loadIni('php_exception.ini', 'classes');
        $exceptions = makeFullNsPath($exceptions);

        // class X extends \Exception {}
        // class Y extends X {}
        $this->atomIs('Class')
             ->outIs('EXTENDS')
             ->fullnspathIs($exceptions)
             ->back('first')
             ->goToAllChildren(self::INCLUDE_SELF);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Exceptions;

use Exakat\Analyzer\Analyzer;

class MultipleCatch extends Analyzer {
    public function analyze() {
        $this->atomIs('Catch')
             ->isMore('count', 1);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
namespace Exakat\Analyzer\Exceptions;

use Exakat\Analyzer\Analyzer;

class UncaughtExceptions extends Analyzer {
    public function dependsOn(): array {
        return array('Exceptions/CaughtExceptions',
                     'Exceptions/DefinedExceptions',
                    );
    }

    public function analyze() {
        $this->atomIs('Catch')
             ->outIs('CLASS')
             ->values('fullnspath')
             ->unique();
        $caught = $this->rawQuery()->toArray();

        if (empty($caught)) {
            // All of them are uncaught then
            $this->atomIs('Throw')
                 ->outIs('THROW');
        } else {
            $this->atomIs('Throw')
                 ->outIs('THROW')
                 ->atomIs('New')
                 ->outIs('NEW')
                 ->tokenIs(array('T_STRING', 'T_NS_SEPARATOR'))
                 ->has('fullnspath')
                 ->not(
                    // Check if any parent is catchable
                    $this->side()
                         ->filter(
                             $this->side()
                                  ->inIs('DEFINITION')
                                  ->gotoAllParents(self::INCLUDE_SELF)
                                  ->fullnspathIs($caught)
                         )
                 )
                 ->back('first');
        }
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
namespace Exakat\Analyzer\Exceptions;

use Exakat\Analyzer\Analyzer;

class CaughtButNotThrown extends Analyzer {
    public function analyze() {
        // There is a catch() but its class is not defined
        $phpExceptions = $this->loadIni('php_exception.ini', 'classes');

        $this->atomIs('Throw')
             ->outIs('THROW')
             ->outIs('NEW')
             ->values('fullnspath')
             ->unique();
        $thrown1 = $this->rawQuery()->toArray();

        $this->atomIs('Throw')
             ->outIs('THROW')
             ->outIs('NEW')
             ->inIs('DEFINITION')
             ->goToAllParents(self::INCLUDE_SELF)
             ->values('fullnspath')
             ->unique();
        $thrown2 = $this->rawQuery()->toArray();

        $thrown = array_merge($phpExceptions, array('\\throwable'), $thrown1, $thrown2);

        $this->atomIs('Catch')
             ->outIs('CLASS')
             ->fullnspathIsNot(makeFullNsPath($thrown));
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Exceptions;

use Exakat\Analyzer\Analyzer;

class OverwriteException extends Analyzer {
    public function analyze() {
        // try { } catch (E $e) { $e = 3;}
        $this->atomIs('Catch')
             ->outIs('VARIABLE')
             ->savePropertyAs('code', 'exception')
             ->inIs('VARIABLE')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Variable')
             ->samePropertyAs('code', 'exception')
             ->is('isModified', true)
             // not chained and replaced.
             ->raw(<<<'GREMLIN'
not( 
    __.where( 
        __.in("LEFT")
          .out("RIGHT")
          .out("NEW")
          .out("ARGUMENT")
          .has("rank", 2)
          .filter{ it.get().value("code") == exception; } 
        )
)
GREMLIN
)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extdba extends Extension {

    public function analyze() {
        $this->source = 'dba.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extjudy extends Extension {

    public function analyze() {
        $this->source = 'judy.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extlua extends Extension {
    public function analyze() {
        $this->source = 'lua.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extmsgpack extends Extension {

    public function analyze() {
        $this->source = 'msgpack.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extgettext extends Extension {

    public function analyze() {
        $this->source = 'gettext.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extbcmath extends Extension {

    public function analyze() {
        $this->source = 'bcmath.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extmcrypt extends Extension {

    public function analyze() {
        $this->source = 'mcrypt.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extpdo extends Extension {

    public function analyze() {
        $this->source = 'pdo.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extpcov extends Extension {

    public function analyze() {
        $this->source = 'pcov.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Exthttp extends Extension {
    public function analyze() {
        $this->source = 'http.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extkdm5 extends Extension {

    public function analyze() {
        $this->source = 'kdm5.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extcurl extends Extension {

    public function analyze() {
        $this->source = 'curl.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extapc extends Extension {
    protected $phpVersion = '7.0-';

    public function analyze() {
        $this->source = 'apc.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extpgsql extends Extension {

    public function analyze() {
        $this->source = 'pgsql.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extlibxml extends Extension {

    public function analyze() {
        $this->source = 'libxml.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extpsr extends Extension {
    protected $phpVersion = '7.0+';

    public function analyze() {
        $this->source = 'psr.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extopenssl extends Extension {

    public function analyze() {
        $this->source = 'openssl.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extfam extends Extension {

    public function analyze() {
        $this->source = 'fam.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extpassword extends Extension {

    public function analyze() {
        $this->source = 'password.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extintl extends Extension {

    public function analyze() {
        $this->source = 'intl.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extopencensus extends Extension {

    public function analyze() {
        $this->source = 'opencensus.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extxsl extends Extension {

    public function analyze() {
        $this->source = 'xsl.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extgrpc extends Extension {
    public function analyze() {
        $this->source = 'grpc.ini';

        parent::analyze();
    }
}


?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extcalendar extends Extension {

    public function analyze() {
        $this->source = 'calendar.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Exttidy extends Extension {

    public function analyze() {
        $this->source = 'tidy.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extfile extends Extension {

    public function analyze() {
        $this->source = 'file.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extereg extends Extension {
    public function analyze() {
        $this->source = 'ereg.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extshmop extends Extension {

    public function analyze() {
        $this->source = 'shmop.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extwddx extends Extension {

    public function analyze() {
        $this->source = 'wddx.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extuuid extends Extension {

    public function analyze() {
        $this->source = 'uuid.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extzip extends Extension {

    public function analyze() {
        $this->source = 'zip.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extdb2 extends Extension {

    public function analyze() {
        $this->source = 'db2.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extinotify extends Extension {

    public function analyze() {
        $this->source = 'inotify.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extming extends Extension {

    public function analyze() {
        $this->source = 'ming.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extxmlreader extends Extension {

    public function analyze() {
        $this->source = 'xmlreader.json';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extapcu extends Extension {

    public function analyze() {
        $this->source = 'apcu.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extexpect extends Extension {

    public function analyze() {
        $this->source = 'expect.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extcrypto extends Extension {

    public function analyze() {
        $this->source = 'crypto.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extsqlite3 extends Extension {

    public function analyze() {
        $this->source = 'sqlite3.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extmssql extends Extension {

    public function analyze() {
        $this->source = 'mssql.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extsvm extends Extension {

    public function analyze() {
        $this->source = 'svm.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extzbarcode extends Extension {
    protected $phpVersion = '7.0+';

    public function analyze() {
        $this->source = 'zbarcode.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extamqp extends Extension {

    public function analyze() {
        $this->source = 'amqp.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extgnupg extends Extension {

    public function analyze() {
        $this->source = 'gnupg.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extnewt extends Extension {

    public function analyze() {
        $this->source = 'newt.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extxxtea extends Extension {

    public function analyze() {
        $this->source = 'xxtea.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extfileinfo extends Extension {

    public function analyze() {
        $this->source = 'fileinfo.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extmail extends Extension {

    public function analyze() {
        $this->source = 'mail.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extapache extends Extension {

    public function analyze() {
        $this->source = 'apache.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extffi extends Extension {
    protected $phpVersion = '7.4+';

    public function analyze() {
        $this->source = 'ffi.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extposix extends Extension {

    public function analyze() {
        $this->source = 'posix.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Exticonv extends Extension {

    public function analyze() {
        $this->source = 'iconv.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extsdl extends Extension {

    public function analyze() {
        $this->source = 'sdl.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extcairo extends Extension {

    public function analyze() {
        $this->source = 'cairo.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extctype extends Extension {

    public function analyze() {
        $this->source = 'ctype.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extimagick extends Extension {

    public function analyze() {
        $this->source = 'imagick.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extredis extends Extension {

    public function analyze() {
        $this->source = 'redis.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Exteaccelerator extends Extension {

    public function analyze() {
        $this->source = 'eaccelerator.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extjson extends Extension {

    public function analyze() {
        $this->source = 'json.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extparle extends Extension {

    public function analyze() {
        $this->source = 'parle.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Exttrader extends Extension {

    public function analyze() {
        $this->source = 'trader.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extenchant extends Extension {

    public function analyze() {
        $this->source = 'enchant.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extsem extends Extension {

    public function analyze() {
        $this->source = 'sem.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extxmlwriter extends Extension {

    public function analyze() {
        $this->source = 'xmlwriter.json';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extmysql extends Extension {
    protected $phpVersion = '7.0-';

    public function analyze() {
        $this->source = 'mysql.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Exthrtime extends Extension {
    public function analyze() {
        $this->source = 'hrtime.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Exthash extends Extension {

    public function analyze() {
        $this->source = 'hash.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extfdf extends Extension {

    public function analyze() {
        $this->source = 'fdf.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extphar extends Extension {

    public function analyze() {
        $this->source = 'phar.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extgd extends Extension {

    public function analyze() {
        $this->source = 'gd.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extspl extends Extension {

    public function analyze() {
        $this->source = 'spl.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extpspell extends Extension {

    public function analyze() {
        $this->source = 'pspell.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extrar extends Extension {

    public function analyze() {
        $this->source = 'rar.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extdecimal extends Extension {
    protected $phpVersion = '7.0+';

    public function analyze() {
        $this->source = 'decimal.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extyis extends Extension {

    public function analyze() {
        $this->source = 'yis.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extmailparse extends Extension {

    public function analyze() {
        $this->source = 'mailparse.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extinfo extends Extension {

    public function analyze() {
        $this->source = 'info.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extxml extends Extension {

    public function analyze() {
        $this->source = 'xml.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extweakref extends Extension {

    public function analyze() {
        $this->source = 'weakref.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extoci8 extends Extension {

    public function analyze() {
        $this->source = 'oci8.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extmongodb extends Extension {
    protected $phpVersion = '7.0+';

    public function analyze() {
        $this->source = 'mongodb.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extssh2 extends Extension {

    public function analyze() {
        $this->source = 'ssh2.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extreflection extends Extension {

    public function analyze() {
        $this->source = 'reflection.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extxmlrpc extends Extension {

    public function analyze() {
        $this->source = 'xmlrpc.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extstats extends Extension {
    public function analyze() {
        $this->source = 'stats.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extxattr extends Extension {
    public function analyze() {
        $this->source = 'xattr.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extgearman extends Extension {

    public function analyze() {
        $this->source = 'gearman.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extzendmonitor extends Extension {

    public function analyze() {
        $this->source = 'zendmonitor.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extlapack extends Extension {

    public function analyze() {
        $this->source = 'lapack.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extxdebug extends Extension {

    public function analyze() {
        $this->source = 'xdebug.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extodbc extends Extension {

    public function analyze() {
        $this->source = 'odbc.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extopcache extends Extension {

    public function analyze() {
        $this->source = 'opcache.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extleveldb extends Extension {

    public function analyze() {
        $this->source = 'leveldb.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extimap extends Extension {

    public function analyze() {
        $this->source = 'imap.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extmysqli extends Extension {

    public function analyze() {
        $this->source = 'mysqli.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extffmpeg extends Extension {

    public function analyze() {
        $this->source = 'ffmpeg.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extgmp extends Extension {

    public function analyze() {
        $this->source = 'gmp.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extparsekit extends Extension {

    public function analyze() {
        $this->source = 'parsekit.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extfilter extends Extension {

    public function analyze() {
        $this->source = 'filter.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extrunkit extends Extension {

    public function analyze() {
        $this->source = 'runkit.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extfpm extends Extension {

    public function analyze() {
        $this->source = 'fpm.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extgmagick extends Extension {

    public function analyze() {
        $this->source = 'gmagick.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extdio extends Extension {

    public function analyze() {
        $this->source = 'dio.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extxhprof extends Extension {

    public function analyze() {
        $this->source = 'xhprof.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extds extends Extension {

    public function analyze() {
        $this->source = 'ds.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extstring extends Extension {
    public function analyze() {
        $this->source = 'string.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extmongo extends Extension {

    public function analyze() {
        $this->source = 'mongo.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extibase extends Extension {

    public function analyze() {
        $this->source = 'ibase.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extev extends Extension {

    public function analyze() {
        $this->source = 'ev.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extproctitle extends Extension {

    public function analyze() {
        $this->source = 'proctitle.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extwasm extends Extension {
    public function analyze() {
        $this->source = 'wasm.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extsoap extends Extension {

    public function analyze() {
        $this->source = 'soap.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extzmq extends Extension {

    public function analyze() {
        $this->source = 'zmq.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extigbinary extends Extension {

    public function analyze() {
        $this->source = 'igbinary.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extzlib extends Extension {

    public function analyze() {
        $this->source = 'zlib.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extasync extends Extension {
//    protected $phpVersion = '7.3+';

    public function analyze() {
        $this->source = 'async.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extsphinx extends Extension {
    public function analyze() {
        $this->source = 'sphinx.ini';

        parent::analyze();
    }
}


?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extcom extends Extension {

    public function analyze() {
        $this->source = 'com.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extcmark extends Extension {

    public function analyze() {
        $this->source = 'cmark.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extarray extends Extension {

    public function analyze() {
        $this->source = 'array.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extpcre extends Extension {

    public function analyze() {
        $this->source = 'pcre.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extvarnish extends Extension {

    public function analyze() {
        $this->source = 'varnish.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extuopz extends Extension {

    public function analyze() {
        $this->source = 'uopz.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extmemcache extends Extension {

    public function analyze() {
        $this->source = 'memcache.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extncurses extends Extension {

    public function analyze() {
        $this->source = 'ncurses.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extxcache extends Extension {

    public function analyze() {
        $this->source = 'xcache.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extstandard extends Extension {

    public function analyze() {
        $this->source = 'standard.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extsuhosin extends Extension {
    public function analyze() {
        $this->source = 'suhosin.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extwikidiff2 extends Extension {

    public function analyze() {
        $this->source = 'wikidiff2.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extwincache extends Extension {

    public function analyze() {
        $this->source = 'wincache.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extftp extends Extension {

    public function analyze() {
        $this->source = 'ftp.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extsimplexml extends Extension {

    public function analyze() {
        $this->source = 'simplexml.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extmemcached extends Extension {

    public function analyze() {
        $this->source = 'memcached.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extcsprng extends Extension {

    public function analyze() {
        $this->source = 'csprng.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Exteio extends Extension {

    public function analyze() {
        $this->source = 'eio.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extswoole extends Extension {
    public function analyze() {
        $this->source = 'swoole.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extlzf extends Extension {

    public function analyze() {
        $this->source = 'lzf.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extgeoip extends Extension {

    public function analyze() {
        $this->source = 'geoip.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extsockets extends Extension {

    public function analyze() {
        $this->source = 'sockets.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extob extends Extension {

    public function analyze() {
        $this->source = 'ob.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extsqlite extends Extension {

    public function analyze() {
        $this->source = 'sqlite.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extmbstring extends Extension {

    public function analyze() {
        $this->source = 'mbstring.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extyaml extends Extension {

    public function analyze() {
        $this->source = 'yaml.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extrdkafka extends Extension {

    public function analyze() {
        $this->source = 'rdkafka.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extlibevent extends Extension {

    public function analyze() {
        $this->source = 'libevent.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extbzip2 extends Extension {

    public function analyze() {
        $this->source = 'bzip2.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extsession extends Extension {

    public function analyze() {
        $this->source = 'session.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extxdiff extends Extension {

    public function analyze() {
        $this->source = 'xdiff.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extrecode extends Extension {

    public function analyze() {
        $this->source = 'recode.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extgender extends Extension {

    public function analyze() {
        $this->source = 'gender.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extlibsodium extends Extension {
    public function analyze() {
        $this->source = 'libsodium.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extdom extends Extension {

    public function analyze() {
        $this->source = 'dom.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Exttokenizer extends Extension {

    public function analyze() {
        $this->source = 'tokenizer.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extseaslog extends Extension {

    public function analyze() {
        $this->source = 'seaslog.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extldap extends Extension {

    public function analyze() {
        $this->source = 'ldap.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extast extends Extension {
    protected $phpVersion = '7.0+';

    public function analyze() {
        $this->source = 'ast.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extphalcon extends Extension {

    public function analyze() {
        $this->source = 'phalcon.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extexif extends Extension {

    public function analyze() {
        $this->source = 'exif.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extiis extends Extension {

    public function analyze() {
        $this->source = 'iis.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extsnmp extends Extension {

    public function analyze() {
        $this->source = 'snmp.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extevent extends Extension {

    public function analyze() {
        $this->source = 'event.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extreadline extends Extension {

    public function analyze() {
        $this->source = 'readline.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extcyrus extends Extension {

    public function analyze() {
        $this->source = 'cyrus.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extfann extends Extension {
    public function analyze() {
        $this->source = 'fann.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extvips extends Extension {

    public function analyze() {
        $this->source = 'vips.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extdate extends Extension {

    public function analyze() {
        $this->source = 'date.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extsqlsrv extends Extension {

    public function analyze() {
        $this->source = 'sqlsrv.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extnsapi extends Extension {

    public function analyze() {
        $this->source = 'nsapi.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extzookeeper extends Extension {

    public function analyze() {
        $this->source = 'zookeeper.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extv8js extends Extension {
    public function analyze() {
        $this->source = 'v8js.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extmath extends Extension {

    public function analyze() {
        $this->source = 'math.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extpcntl extends Extension {

    public function analyze() {
        $this->source = 'pcntl.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Exttokyotyrant extends Extension {
    public function analyze() {
        $this->source = 'tokyotyrant.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Extensions;

use Exakat\Analyzer\Common\Extension;

class Extmhash extends Extension {

    public function analyze() {
        $this->source = 'mhash.ini';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Namespaces;

use Exakat\Analyzer\Analyzer;

class UsedUse extends Analyzer {
    // use A\B as C; new C();
    public function analyze() {
        $this->atomIs('Usenamespace')
             ->outIs('USE')
             ->hasIn('DEFINITION');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Namespaces;

use Exakat\Analyzer\Analyzer;

class NamespaceUsage extends Analyzer {

    public function analyze() {
        $this->atomIs('Namespace');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Namespaces;

use Exakat\Analyzer\Analyzer;

class UseWithFullyQualifiedNS extends Analyzer {
    public function analyze() {
        // Normal group
        $this->atomIs('Usenamespace')
             ->outIs('USE')
             ->atomIs(array('Nsname', 'As'))
             ->outIsIE('NAME')
             ->is('absolute', true);
        $this->prepareQuery();

        // Group use
        $this->atomIs('Usenamespace')
             ->outIs('GROUPUSE')
             ->atomIs('Nsname')
             ->is('absolute', true);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Namespaces;

use Exakat\Analyzer\Analyzer;

class WrongCase extends Analyzer {
    public function analyze() {
        $this->atomIs('Namespace')
             ->outIs('NAME')
             ->values('fullcode');
        $res = $this->rawQuery();

        $all = $res->toArray();
        $all[] = "TYPO3\CMS\Recordlist\LINKHandler";
        $all = array_unique($all);
        $all = array_map('mb_strtolower', $all);
        $stats = array_count_values($all);

        $doubles = array_filter($stats, function ($x) { return $x > 1; });

        if (empty($doubles)) {
            return;
        }

        $this->atomIs('Namespace')
             ->outIs('NAME')
             ->raw('filter{ it.get().value("fullcode").toLowerCase() in ***}', array_keys($doubles))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Namespaces;

use Exakat\Analyzer\Analyzer;

class AliasConfusion extends Analyzer {
    public function analyze() {
        // namespace A { class B {}}
        // namespace A { use C as B; }  // B is also a class local to the current namespace
        $this->atomIs(self::CIT)
             ->values('fullnspath');
        $fnp = $this->rawQuery()->toArray();

        $this->atomIs('Usenamespace')
             ->hasNoOut(array('FUNCTION', 'CONST'))
             ->goToNamespace()
             ->raw(<<<'GREMLIN'
sideEffect{
    if (it.get().label() == "Namespace") {
        nspath = it.get().value("fullnspath");
    } else {
        nspath = "";
    }
}
GREMLIN
)
             ->back('first')

             ->outIs('USE')
             ->raw('filter{ x = ***; nspath + "\\\\" + it.get().value("alias") in x && !(it.get().value("fullnspath") in x);}', $fnp);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Namespaces;

use Exakat\Analyzer\Analyzer;

class UnresolvedUse extends Analyzer {
    public function dependsOn(): array {
        return array('Classes/IsExtClass',
                     'Interfaces/IsExtInterface',
                     'Traits/IsExtTrait',
                     'Composer/IsComposerNsname',
                    );
    }

    public function analyze() {
        $this->atomIs(self::CIT)
             ->values('fullnspath')
             ->unique();
        $cits = $this->rawQuery()->toArray();

        $this->atomIs('Namespace')
             ->values('fullnspath')
             ->unique();
        $namespaces = $this->rawQuery()->toArray();

        $all = array_merge($cits, $namespaces);
        if (empty($all)) {
            return;
        }

        $this->atomIs('Usenamespace')
             ->outIs('USE')
             ->analyzerIsNot(array('Classes/IsExtClass',
                                   'Interfaces/IsExtInterface',
                                   'Traits/IsExtTrait',
                                   'Composer/IsComposerNsname'))
             ->fullnspathIsNot($all);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Namespaces;

use Exakat\Analyzer\Analyzer;

class HiddenUse extends Analyzer {
    public function analyze() {
        // only for uses with rank of 1 or later
        $this->atomIs(array('Usenamespace', 'Usetrait'))
             ->savePropertyAs('rank', 'ranked')
             ->inIs('EXPRESSION')
             ->filter(
                $this->side()
                     ->outIs('EXPRESSION')
                     ->has('rank')
                     ->isLess('rank', 'ranked')
                     ->atomIsNot(array('Usenamespace', 'Usetrait', 'Declare', 'Include'))
               )
             ->back('first');
        $this->prepareQuery();

        // rank = 0 use are OK
        // inside a class/trait
        $this->atomIs(array('Usenamespace', 'Usetrait'))
             ->savePropertyAs('rank', 'ranked')
             ->inIs('USE')
             ->filter(
                $this->side()
                     ->outIs(array('CONST', 'METHOD', 'PPP'))
                     ->has('rank')
                     ->isLess('rank', 'ranked')
             )
             ->back('first');
        $this->prepareQuery();

    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Namespaces;

use Exakat\Analyzer\Analyzer;

class MultipleAliasDefinitions extends Analyzer {
    public function analyze() {
        // alias with varied values
        $aliases = $this->query(<<<'GREMLIN'
g.V().hasLabel("Usenamespace").out("USE")
     .group("a").by("alias").by("fullnspath")
     .cap("a").next()
     .findAll{a,b -> b.unique().size() > 1}.keySet()
GREMLIN
                    )->toArray();

        if (empty($aliases)) {
            return ;
        }

        $this->atomIs('Usenamespace')
             ->outIs('USE')
             ->is('alias', $aliases)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Namespaces;

use Exakat\Analyzer\Analyzer;

class UseFunctionsConstants extends Analyzer {
    protected $phpVersion = '5.6+';

    public function analyze() {
        // use function foo
        // use const FOO
        $this->atomIs('Usenamespace')
             ->outIs(array('CONST', 'FUNCTION'))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Namespaces;

use Exakat\Analyzer\Analyzer;

class UnusedUse extends Analyzer {
    public function dependsOn(): array {
        return array('Namespaces/UsedUse',
                    );
    }

    public function analyze() {
        // use a as b;
        // new c; (No use of b)
        $this->atomIs('Usenamespace')
             ->outIs('USE')
             ->analyzerIsNot('Namespaces/UsedUse');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Namespaces;

use Exakat\Analyzer\Analyzer;

class GlobalImport extends Analyzer {
    public function dependsOn(): array {
        return array('Classes/IsExtClass',
                    );
    }

    public function analyze() {
        // use phalcon\classe;
        $this->atomIs('Usenamespace')
             ->outIs('USE')
             ->analyzerIs('Classes/IsExtClass');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Namespaces;

use Exakat\Analyzer\Analyzer;

class ConstantFullyQualified extends Analyzer {
    public function analyze() {
        // define('\\full\\namespace\\path', 'value');
        $this->atomIs('Defineconstant')
             ->outIs('NAME')
             ->tokenIs('T_CONSTANT_ENCAPSED_STRING')
             ->regexIs('noDelimiter', '^(\\\\\\\\)')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Namespaces;

use Exakat\Analyzer\Analyzer;

class Alias extends Analyzer {
    public function analyze() {
        // use A\B\C as D
        $this->atomIs('Usenamespace')
             ->outIs('USE')
             ->outIs('AS');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Namespaces;

use Exakat\Analyzer\Analyzer;

class EmptyNamespace extends Analyzer {
    public function analyze() {
        // Namespace with only use is empty
        $this->atomIs('Namespace')
             ->outIs('BLOCK')
             ->raw('where(__.out("EXPRESSION").not( hasLabel("Usenamespace", "Void") ).count().is(eq(0)) )')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Namespaces;

use Exakat\Analyzer\Analyzer;

class MultipleAliasDefinitionPerFile extends Analyzer {
    public function analyze() {
        // use A as B;
        // use A as C;
        $this->atomIs('Usenamespace')
             ->outIs('USE')
             ->as('results')
             ->savePropertyAs('fullnspath', 'usepath')
             ->savePropertyAs('fullcode', 'thecode')
             ->inIs('USE')
             ->inIs('EXPRESSION')
             ->outIs('EXPRESSION')
             ->atomIs('Usenamespace')
             ->outIs('USE')
             ->samePropertyAs('fullnspath', 'usepath')
             ->notSamePropertyAs('fullcode', 'thecode')
             ->back('results');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Namespaces;

use Exakat\Analyzer\Analyzer;

class CouldUseAlias extends Analyzer {
    public function analyze() {
        // use a\b as C; and  a\b::D();
        $this->atomIs('Newcall')
             ->hasNoIn('NAME')
             ->tokenIs('T_NS_SEPARATOR')
             ->codeIsNot('[')
             ->has('fullnspath')
             ->savePropertyAs('fullnspath', 'fnp')
             ->goToNamespace()
             ->outIs(array('BLOCK', 'CODE'))
             ->outIs('EXPRESSION')
             ->atomIs('Usenamespace')
             ->outIs('USE')
             ->raw('filter{ (fnp =~ "^" + it.get().value("fullnspath").replace("\\\\", "\\\\\\\\") + "\\$").getCount() > 0 }')
             ->back('first');
        $this->prepareQuery();

        // use a\b as C; and  a\b\c\d::D();
        $this->atomIs('Newcall')
             ->hasNoIn('NAME')
             ->tokenIs('T_NS_SEPARATOR')
             ->codeIsNot('[')
             ->has('fullnspath')
             ->savePropertyAs('fullnspath', 'fnp')
             ->savePropertyAs('fullcode', 'written')
             ->goToNamespace()
             ->outIs(array('BLOCK', 'CODE'))
             ->outIs('EXPRESSION')
             ->atomIs('Usenamespace')
             ->not(
                $this->side()
                     ->outIs('USE')
                     ->raw('filter{ (written.tokenize("\\\\")[0].toLowerCase() == it.get().value("alias"))}')
              )
             ->outIs('USE')
             ->raw('filter{ (fnp =~ "^" + it.get().value("fullnspath").replace("\\\\", "\\\\\\\\") + "..").getCount() > 0 }')
             ->back('first');
        $this->prepareQuery();

        // use a\b as C; and  a\b::D();
        $this->atomIs('Nsname')
             ->hasIn(array('CLASS', 'EXTENDS', 'IMPLEMENTS'))
             ->tokenIs('T_NS_SEPARATOR')
             ->codeIsNot('[')
             ->has('fullnspath')
             ->savePropertyAs('fullnspath', 'fnp')
             ->goToNamespace()
             ->outIs(array('BLOCK', 'CODE'))
             ->outIs('EXPRESSION')
             ->atomIs('Usenamespace')
             ->outIs('USE')
             ->raw('filter{ (fnp =~ "^" + it.get().value("fullnspath").replace("\\\\", "\\\\\\\\") + "\\$").getCount() > 0 }')
             ->back('first');
        $this->prepareQuery();

        // use function a\b as C; and  a\b();
        $this->atomIs('Functioncall')
             ->tokenIs('T_NS_SEPARATOR')
             ->has('fullnspath')
             ->savePropertyAs('fullnspath', 'fnp')
             ->goToNamespace()
             ->outIs(array('BLOCK', 'CODE'))
             ->outIs('EXPRESSION')
             ->atomIs('Usenamespace')
             ->hasOut('FUNCTION')
             ->outIs('USE')
             ->raw('filter{ (fnp =~ "^" + it.get().value("fullnspath").replace("\\\\", "\\\\\\\\") + "\\$").getCount() > 0 }')
             ->back('first');
        $this->prepareQuery();

        // use const a\b as C; and  a\b;
        $this->atomIs('Nsname')
             ->tokenIs('T_NS_SEPARATOR')
             ->has('fullnspath')
             ->savePropertyAs('fullnspath', 'fnp')
             ->goToNamespace()
             ->outIs(array('BLOCK', 'CODE'))
             ->outIs('EXPRESSION')
             ->atomIs('Usenamespace')
             ->hasOut('CONST')
             ->outIs('USE')
             ->raw('filter{ (fnp =~ "^" + it.get().value("fullnspath").replace("\\\\", "\\\\\\\\") + "\\$").getCount() > 0 }')
             ->back('first');
        $this->prepareQuery();

        // case for constants ? for functions ?
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Namespaces;

use Exakat\Analyzer\Analyzer;

class Namespacesnames extends Analyzer {

    public function analyze() {
        $this->atomIs('Namespace')
             ->outIs('NAME');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Namespaces;

use Exakat\Analyzer\Analyzer;

class ShouldMakeAlias extends Analyzer {
    public function analyze() {
        // No namespace ?
        $this->atomIs(array('Nsname', 'Newcall'))
             ->tokenIs('T_NS_SEPARATOR')
             ->hasNoIn(array('USE', 'NAME'))
             ->hasNoParent('Usenamespace', array('NAME', 'USE'))  // use expression
             ->hasNoParent('Namespace', 'NAME')  // use expression
             ->has('fullnspath')
             ->savePropertyAs('fullnspath', 'possibleAlias')
             ->goToNamespace()
             ->raw(<<<'GREMLIN'
where( __.out("BLOCK", "CODE").out("EXPRESSION")
         .hasLabel("Usenamespace").out("USE")
         .filter{ (possibleAlias =~ "^" + it.get().value("fullnspath").replace("\\", "\\\\") ).getCount() > 0} )
GREMLIN
)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
namespace Exakat\Analyzer\Project;

use Exakat\Analyzer\Analyzer;

class IsLibrary extends Analyzer {
    public function dependsOn(): array {
        return array('Files/DefinitionsOnly',
                    );
    }

    public function analyze() {
        // Only contains definitions
        $this->atomIs('Project')
             ->outIs('PROJECT')
             ->not(
                $this->side()
                     ->atomIs('File')
                     ->analyzerIsNot('Files/DefinitionsOnly')
             )
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Common;

use Exakat\Analyzer\Analyzer;

class NamespaceUsage extends Analyzer {
    protected $namespaces = array();

    public function setNamespaces($namespaces) {
        $this->namespaces = $namespaces;
    }

    public function analyze() {
        $regex = '^(' . addslashes(addslashes(implode('|', $this->namespaces))) . ')';

        $this->atomIs(array('Nsname', 'Identifier'))
             ->hasNoIn(array('NAME' , 'MEMBER', 'CONSTANT', 'AS', 'CLASS'))
             ->has('fullnspath')
             ->regexIs('fullnspath', $regex);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Common;

use Exakat\Analyzer\Analyzer;

class Type extends Analyzer {

    protected $type = null;

    public function analyze() {
        $this->atomIs($this->type);
        $this->prepareQuery();
    }

    public function getDump(): array {
        $query = <<<GREMLIN
g.V().hasLabel("{$this->type}")
.sideEffect{ line = it.get().value('line');
             fullcode = it.get().value('fullcode');
             file='None'; 
             theFunction = 'None'; 
             theClass='None'; 
             theNamespace='None'; 
             }
.sideEffect{ line = it.get().value('line'); }
.until( hasLabel('File') ).repeat( 
    __.in($this->linksDown)
      .sideEffect{ if (it.get().label() == 'Function') { theFunction = it.get().value('code')} }
      .sideEffect{ if (it.get().label() in ['Class']) { theClass = it.get().value('fullcode')} }
       )
.sideEffect{  file = it.get().value('fullcode');}

.map{ ['fullcode':fullcode, 'file':file, 'line':line, 'namespace':theNamespace, 'class':theClass, 'function':theFunction ];}

GREMLIN;

        return $this->gremlin->query($query)->toArray();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Common;

use Exakat\Analyzer\Analyzer;

class ConstantDefinition extends Analyzer {
    protected $constants = array();

    public function analyze() {
        $fullnspath = makeFullNsPath($this->constants, true);

        $this->atomIs('Const')
             ->hasNoClassInterface()
             ->outIs('CONST')
             ->outIs('NAME')
             ->fullnspathIs($fullnspath)
             ->inIs('NAME');
        $this->prepareQuery();

        $this->atomIs('Defineconstant')
             ->outIs('NAME')
             ->atomIs('Identifier')
             ->hasNoOut('CONCAT')
             ->fullnspathIs($fullnspath);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Common;

use Exakat\Analyzer\Analyzer;

class PhpFunctionUsage extends Analyzer {
    protected $functions = array();

    public function dependsOn(): array {
        return array('Functions/ConditionedFunctions',
                     'Functions/RedeclaredPhpFunction',
                    );
    }

    public function analyze() {
        $functions =  makeFullNsPath($this->functions);

        $this->atomFunctionIs($functions)
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->inIs('DEFINITION')
                             ->analyzerIs('Functions/ConditionedFunctions')
                             ->analyzerIs('Functions/RedeclaredPhpFunction')
                     )
             );
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Common;

use Exakat\Analyzer\Analyzer;

class ClassDefinition extends Analyzer {
    protected $classes = array();

    public function analyze() {
        $classes =  makeFullNsPath($this->classes);

        $this->atomIs('Class')
             ->fullnspathIs($classes);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Common;

use Exakat\Analyzer\Analyzer;

class InterfaceUsage extends Analyzer {
    protected $interfaces = array();

    public function setInterfaces($interfaces) {
        $this->interfaces = $interfaces;
    }

    public function analyze() {
        $interfaces =  makeFullNsPath($this->interfaces);

        $this->atomIs('Class')
             ->outIs('IMPLEMENTS')
             ->atomIs(self::STATIC_NAMES)
             ->fullnspathIs($interfaces);
        $this->prepareQuery();

        $this->atomIs('Interface')
             ->outIs('EXTENDS')
             ->atomIs(self::STATIC_NAMES)
             ->fullnspathIs($interfaces);
        $this->prepareQuery();

        $this->atomIs('Instanceof')
             ->outIs('CLASS')
             ->atomIs(self::STATIC_NAMES)
             ->fullnspathIs($interfaces);
        $this->prepareQuery();

        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->outIs('TYPEHINT')
             ->atomIs(self::STATIC_NAMES)
             ->tokenIsNot(array('T_ARRAY', 'T_CALLABLE'))
             ->codeIsNot(array('bool', 'int', 'float', 'string', 'array', 'object', 'callable', 'iterable', 'resource'), self::TRANSLATE, self::CASE_INSENSITIVE)
             ->fullnspathIs($interfaces);
        $this->prepareQuery();

        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('RETURNTYPE')
             ->atomIs(self::STATIC_NAMES)
             ->tokenIsNot(array('T_ARRAY', 'T_CALLABLE'))
             ->codeIsNot(array('bool', 'int', 'float', 'string', 'array', 'object', 'callable', 'iterable', 'resource'), self::TRANSLATE, self::CASE_INSENSITIVE)
             ->fullnspathIs($interfaces);
        $this->prepareQuery();

        $this->atomIs('Staticconstant')
             ->outIs('CLASS')
             ->atomIs(self::STATIC_NAMES)
             ->fullnspathIs($interfaces);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Common;

use Exakat\Analyzer\Analyzer;

class ClassUsage extends Analyzer {
    protected $classes = array();

    public function setClasses($classes) {
        $this->classes = $classes;
    }

    public function analyze() {
        $classes =  makeFullNsPath($this->classes);

        // New X();
        $this->atomIs('Newcall')
             ->hasNoIn('NAME')
             ->has('fullnspath')
             ->fullnspathIs($classes);
        $this->prepareQuery();

        $this->atomIs(array('Staticmethodcall', 'Staticproperty', 'Staticconstant', 'Staticclass'))
             ->outIs('CLASS')
             ->atomIs(self::CONSTANTS_ALL)
             ->fullnspathIs($classes);
        $this->prepareQuery();

        $this->atomIs('Catch')
             ->outIs('CLASS')
             ->tokenIs(array('T_STRING', 'T_NS_SEPARATOR'))
             ->fullnspathIs($classes);
        $this->prepareQuery();

        $this->atomIs(self::CONSTANTS_ALL)
             ->hasIn(array('TYPEHINT', 'RETURNTYPE'))
             ->fullnspathIs($classes);
        $this->prepareQuery();

        $this->atomIs('Instanceof')
             ->outIs('CLASS')
             ->atomIs(self::CONSTANTS_ALL)
             ->fullnspathIs($classes);
        $this->prepareQuery();

        $this->atomIs('Class')
             ->outIs(array('EXTENDS', 'IMPLEMENTS'))
             ->fullnspathIs($classes);
        $this->prepareQuery();

        $this->atomIs('Classalias')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String')
             ->noDelimiterIs($classes);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Common;

use Exakat\Analyzer\Analyzer;

class WithoutTry extends Analyzer {
    protected $functions = array();
    protected $atoms = array();

    public function analyze() {
        if (!empty($this->functions)) {
            $this->atomFunctionIs($this->functions)
                 ->hasNoTryCatch()
                 ->back('first');
            $this->prepareQuery();
        }

        if (!empty($this->atoms)) {
            $this->atomIs($this->atoms)
                 ->hasNoTryCatch()
                 ->back('first');
            $this->prepareQuery();
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Common;

use Exakat\Analyzer\Analyzer;

class FunctionDefinition extends Analyzer {
    protected $functions = array();

    public function analyze() {
        $fullnspath = makeFullNsPath($this->functions);

        $this->atomIs('Function')
             ->fullnspathIs($fullnspath)
             ->not(
                $this->side()
                     ->inIs('EXPRESSION')
                     ->inIs(array('THEN', 'ELSE'))
                     ->atomIs('Ifthen')
                     ->outIs('CONDITION')
                     ->filter(
                        $this->side()
                             ->atomInside('Functioncall')
                             ->fullnspathIs('\\function_exists')
                     )
             );
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Common;

use Exakat\Analyzer\Analyzer;
use Exakat\Graph\Helpers\GraphResults;

class MultipleDeclarations extends Analyzer {
    protected $atom = 'Class';

    public function analyze() {
        // case-insensitive constants

        $this->atomIs($this->atom)
             ->raw(<<<'GREMLIN'
groupCount("m").by("fullnspath").cap("m").next().findAll{ a,b -> b > 1}
GREMLIN
);
        $multiples = $this->rawQuery();

        if ($multiples->isType(GraphResults::EMPTY)) {
            return;
        }

        $fullcode = array_merge(...array_map('array_keys', $multiples->toArray()));
        $this->atomIs($this->atom)
             ->fullnspathIs($fullcode);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy  Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Common;

use Exakat\Analyzer\Analyzer;

class UsedDirective extends Analyzer {
    protected $directives = array();

    public function analyze() {
        // Processing ini_get_all ?
        // ini_set($var ? )

        // ini_set('string'
        $this->atomFunctionIs(array('\\ini_set',
                                    '\\ini_get',
                                    '\\ini_restore',
                                    '\\ini_alter',
                                    '\\iconv_set_encoding',
                                    '\\get_cfg_var',
                                    ))
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String')
             ->noDelimiterIs($this->directives, self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();

        $functions = array();
        if (in_array('include_path', $this->directives, STRICT_COMPARISON)) {
            $functions[] = array('\\set_include_path',
                                 '\\get_include_path',
                                 '\\restore_include_path',
                                );
        }
        if (in_array('magic_quotes_gpc', $this->directives, STRICT_COMPARISON)) {
            $functions[] = array('\\magic_quotes_gpc',
                                );
        }

        if (in_array('magic_quotes_runtime', $this->directives, STRICT_COMPARISON)) {
            $functions[] = array('\\get_magic_quotes_runtime',
                                 '\\set_magic_quotes_runtime',
                                );
        }

        if (in_array('max_execution_time', $this->directives, STRICT_COMPARISON)) {
            $functions[] = array('\\set_time_limit',
                                );
        }

        if (empty($functions)) {
            return;
        }
        $functions = array_merge(...$functions);

        $this->atomFunctionIs($functions);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Common;

use Exakat\Analyzer\Analyzer;

class PropertyUsage extends Analyzer {
    protected $properties = array();

    public function analyze() {
        $staticHash = array();
        $propertyHash = array();
        foreach($this->properties as $class => $properties) {
            foreach($properties as $property => $details) {
                if (!isset($details['fullname'])) {
                    continue;
                }
                array_collect_by($staticHash, $class, $details['fullname']);

                array_collect_by($propertyHash, $class, $property);
            }
        }

        // A::$property
        $this->atomIs('Staticproperty')
             ->outIs('CLASS')
             ->fullnspathIs(array_keys($staticHash))
             ->savePropertyAs('fullnspath', 'fnp')
             ->inIs('CLASS')
             ->outIs('MEMBER')
             ->isHash('fullcode', $staticHash, 'fnp')
             ->back('first');
        $this->prepareQuery();

        // $a = new C; $a->property
        $this->atomIs('Member')
             ->analyzerIsNot('self')
             ->outIs('OBJECT')
             ->inIs('DEFINITION')
             ->outIs('DEFINITION')
             ->inIs('LEFT')
             ->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomIs('New')
             ->outIs('NEW')
             ->fullnspathIs(array_keys($propertyHash))
             ->savePropertyAs('fullnspath', 'fnp')
             ->back('first')
             ->outIs('MEMBER')
             ->isHash('fullcode', $propertyHash, 'fnp')
             ->back('first');
        $this->prepareQuery();

        // function foo() : C; $a = foo(); $a->property
        $this->atomIs('Member')
             ->analyzerIsNot('self')
             ->outIs('OBJECT')
             ->inIs('DEFINITION')
             ->outIs('DEFINITION')
             ->inIs('LEFT')
             ->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomIs(array('Functioncall', 'Staticmethodcall', 'Methodcall'))
             ->inIs('DEFINITION')
             ->outIs('RETURNTYPE')
             ->atomIsNot('Void')
             ->fullnspathIs(array_keys($propertyHash))
             ->savePropertyAs('fullnspath', 'fnp')
             ->back('first')
             ->outIs('MEMBER')
             ->isHash('fullcode', $propertyHash, 'fnp')
             ->back('first');
        $this->prepareQuery();

        // function foo(C $a) { $a->property; }
        $this->atomIs('Member')
             ->analyzerIsNot('self')
             ->outIs('OBJECT')
             ->inIs('DEFINITION')
             ->inIs('NAME')
             ->outIs('TYPEHINT')
             ->atomIsNot('Void')
             ->fullnspathIs(array_keys($propertyHash))
             ->savePropertyAs('fullnspath', 'fnp')
             ->back('first')
             ->outIs('MEMBER')
             ->isHash('fullcode', $propertyHash, 'fnp')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Common;

use Exakat\Analyzer\Analyzer;

class FunctionDefaultValue extends Analyzer {
    protected $rank = -1; // -1 will prevent rank to be found
    protected $code = 0;  // 0 will prevent code to be found

    public function analyze() {
        $this->atomIs('Functioncall')
             ->codeIs($this->code)
             ->hasNoIn('METHOD')
             ->noChildWithRank('ARGUMENT', $this->rank)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Common;

use Exakat\Analyzer\Analyzer;

class InterfaceDefinition extends Analyzer {
    protected $interfaces = array();

    public function analyze() {
        $interfaces =  makeFullNsPath($this->interfaces);

        $this->atomIs('Interface')
             ->fullnspathIs($interfaces);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Common;

use Exakat\Analyzer\Analyzer;

class TraitUsage extends Analyzer {
    protected $traits = array();

    public function setTraits($traits) {
        $this->traits = $traits;
    }

    public function analyze() {
        $traits =  makeFullNsPath($this->traits);

        $this->atomIs('Staticmethodcall')
             ->outIs('CLASS')
             ->atomIs(array('Identifier', 'Nsname', 'Self', 'Parent', 'Static'))
             ->fullnspathIs($traits);
        $this->prepareQuery();

        $this->atomIs('Staticproperty')
             ->outIs('CLASS')
             ->atomIs(array('Identifier', 'Nsname', 'Self', 'Parent', 'Static'))
             ->fullnspathIs($traits);
        $this->prepareQuery();

        // Staticconstant are not defined in traits

        // Instanceof doesn't use traits

// Check that... Const/function and aliases
        $this->atomIs('Usetrait')
             ->outIs('USE')
             ->outIsIE('NAME')
             ->tokenIs(array('T_STRING', 'T_NS_SEPARATOR'))
             ->fullnspathIs($traits);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Common;

use Exakat\Analyzer\Analyzer;

class MethodcallUsage extends Analyzer {
    protected $calledMethods = array();

    public function analyze() {
        // Currently ignoring the object :(
        $calledMethods = array_map('strtolower', $this->calledMethods);

        $this->atomIs('Methodcall')
             ->outIs('METHOD')
             ->codeIs($calledMethods, self::TRANSLATE, self::CASE_INSENSITIVE)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Common;

use Exakat\Analyzer\Analyzer;

class ClassConstantUsage extends Analyzer {
    protected $classConstants = array();

    public function analyze() {
        $this->atomIs('Staticconstant')
             ->outIs('CLASS')
             ->fullnspathIs(array_keys($this->classConstants))
             ->savePropertyAs('fullnspath', 'fnp')
             ->inIs('CLASS')
             ->outIs('CONSTANT')
             ->isHash('fullcode', $this->classConstants, 'fnp')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Common;

use Exakat\Analyzer\Analyzer;

class IsSubclassOf extends Analyzer {
    protected $classes = array();

    public function analyze() {
        $classes =  makeFullNsPath($this->classes);

        $this->atomIs('Class')
             ->goToAllParents(self::INCLUDE_SELF)
             ->outIs(array('EXTENDS', 'IMPLEMENTS'))
             ->fullnspathIs($classes)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Common;

use Exakat\Analyzer\Analyzer;

class UsesFrameworkFunction extends Analyzer {
    protected $functions    = array();

    public function analyze() {
        $analyzerId = null;

        if (!empty($this->functions[0])) {
            $functions    = makeFullNsPath($this->functions);

            if (!empty($functions)) {
                $functionsUsage = new FunctionUsage();
                $functionsUsage->setAnalyzer(get_class($this));
                $functionsUsage->setFunctions($functions);
                $analyzerId = $functionsUsage->init($analyzerId);
                $functionsUsage->run();

                $this->rowCount        += $functionsUsage->getRowCount();
                $this->processedCount  += $functionsUsage->getProcessedCount();
                $this->queryCount      += $functionsUsage->getQueryCount();
                $this->rawQueryCount   += $functionsUsage->getRawQueryCount();
            }
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Common;

use Exakat\Analyzer\Analyzer;

class UsesFramework extends Analyzer {
    protected $classes    = array();
    protected $interfaces = array();
    protected $traits     = array();
    protected $namespaces = array();

    public function analyze() {
        $analyzerId = null;

        if (!empty($this->classes[0])) {
            $classes    = makeFullNsPath($this->classes);

            if (!empty($classes)) {
                $classesUsage = new ClassUsage();
                $classesUsage->setAnalyzer(get_class($this));
                $classesUsage->setClasses($classes);
                $analyzerId = $classesUsage->init($analyzerId);
                $classesUsage->run();

                $this->rowCount        += $classesUsage->getRowCount();
                $this->processedCount  += $classesUsage->getProcessedCount();
                $this->queryCount      += $classesUsage->getQueryCount();
                $this->rawQueryCount   += $classesUsage->getRawQueryCount();
            }
        }

        if (!empty($this->interfaces[0])) {
            $interfaces = makeFullNsPath($this->interfaces);

            if (!empty($interfaces)) {
                $interfacesUsage = new InterfaceUsage();
                $interfacesUsage->setAnalyzer(get_class($this));
                $interfacesUsage->setInterfaces($interfaces);
                $analyzerId = $interfacesUsage->init($analyzerId);
                $interfacesUsage->run();

                $this->rowCount        += $interfacesUsage->getRowCount();
                $this->processedCount  += $interfacesUsage->getProcessedCount();
                $this->queryCount      += $interfacesUsage->getQueryCount();
                $this->rawQueryCount   += $interfacesUsage->getRawQueryCount();
            }
        }

        if (!empty($this->traits[0])) {
            $traits     = makeFullNsPath($this->traits);

            if (!empty($traits)) {
                $traitsUsage = new TraitUsage();
                $traitsUsage->setAnalyzer(get_class($this));
                $traitsUsage->setTraits($traits);
                $analyzerId = $traitsUsage->init($analyzerId);
                $traitsUsage->run();

                $this->rowCount        += $traitsUsage->getRowCount();
                $this->processedCount  += $traitsUsage->getProcessedCount();
                $this->queryCount      += $traitsUsage->getQueryCount();
                $this->rawQueryCount   += $traitsUsage->getRawQueryCount();
            }
        }

        if (!empty($this->namespaces[0])) {
            $namespaces     = makeFullNsPath($this->namespaces);

            if (!empty($namespaces)) {
                $namespacesUsage = new NamespaceUsage();
                $namespacesUsage->setAnalyzer(get_class($this));
                $namespacesUsage->setNamespaces($namespaces);
                $analyzerId = $namespacesUsage->init($analyzerId);
                $namespacesUsage->run();

                $this->rowCount        += $namespacesUsage->getRowCount();
                $this->processedCount  += $namespacesUsage->getProcessedCount();
                $this->queryCount      += $namespacesUsage->getQueryCount();
                $this->rawQueryCount   += $namespacesUsage->getRawQueryCount();
            }
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Common;

use Exakat\Analyzer\Analyzer;

class Extension extends Analyzer {
    protected $source = '';

    public function dependsOn(): array {
        return array('Classes/ClassUsage',
                     'Interfaces/InterfaceUsage',
                     'Traits/TraitUsage',
                     'Constants/ConstantUsage',
                     'Namespaces/NamespaceUsage',
                     'Php/DirectivesUsage',
                     'Complete/PropagateCalls',
                     );
    }


    public function analyze() {
        if (substr($this->source, -4) === '.ini') {
            $ini = (object) $this->loadIni($this->source);
        } elseif (substr($this->source, -5) === '.json') {
            $ini = $this->loadJson($this->source);
        } else {
            return true;
        }

        if (!empty($ini->functions)) {
            $functions = makeFullNsPath($ini->functions);
            $this->atomFunctionIs($functions);
            $this->prepareQuery();
        }

        if (!empty($ini->constants)) {
            $this->atomIs(self::STATIC_NAMES)
                 ->analyzerIs('Constants/ConstantUsage')
                 ->fullnspathIs(makeFullNsPath($ini->constants, \FNP_CONSTANT));
            $this->prepareQuery();
        }

        if (!empty($ini->classes)) {
            $classes = makeFullNsPath($ini->classes);

            $usedClasses = array_intersect(self::getCalledClasses(), $classes);
            if (!empty($usedClasses)) {
                $usedClasses = array_values($usedClasses);
                $this->atomIs('New')
                     ->outIs('NEW')
                     ->hasNoIn('DEFINITION')
                     ->fullnspathIs($usedClasses);
                $this->prepareQuery();

                $this->atomIs(array('Staticconstant', 'Staticmethodcall', 'Staticproperty'))
                     ->outIs('CLASS')
                     ->hasNoIn('DEFINITION')
                     ->fullnspathIs($usedClasses);
                $this->prepareQuery();

                $this->atomIs(self::FUNCTIONS_ALL)
                     ->outIs('ARGUMENT')
                     ->outIs('TYPEHINT')
                     ->hasNoIn('DEFINITION')
                     ->fullnspathIs($usedClasses);
                $this->prepareQuery();

                $this->atomIs(self::FUNCTIONS_ALL)
                     ->outIs('RETURNTYPE')
                     ->fullnspathIs($usedClasses);
                $this->prepareQuery();

                $this->atomIs('Catch')
                     ->outIs('CLASS')
                     ->hasNoIn('DEFINITION')
                     ->fullnspathIs($usedClasses);
                $this->prepareQuery();

                $this->atomIs('Instanceof')
                     ->outIs('CLASS')
                     ->hasNoIn('DEFINITION')
                     ->fullnspathIs($usedClasses);
                $this->prepareQuery();
            }
        }

        if (!empty($ini->interfaces)) {
            $interfaces = makeFullNsPath($ini->interfaces);

            $usedInterfaces = array_intersect(self::getCalledinterfaces(), $interfaces);

            if (!empty($usedInterfaces)) {
                $usedInterfaces = array_values($usedInterfaces);
                $this->analyzerIs('Interfaces/InterfaceUsage')
                     ->fullnspathIs($usedInterfaces);
                $this->prepareQuery();
            }
        }

        if (!empty($ini->traits)) {
            $traits = makeFullNsPath($ini->traits);

            $usedTraits = array_intersect(self::getCalledtraits(), $traits);

            if (!empty($usedTraits)) {
                $usedTraits = array_values($usedTraits);
                $this->analyzerIs('Traits/TraitUsage')
                     ->fullnspathIs($usedTraits);
                $this->prepareQuery();
            }
        }

        if (!empty($ini->namespaces)) {
            $namespaces = makeFullNsPath($ini->namespaces);

            $usedNamespaces = array_intersect($this->getCalledNamespaces(), $namespaces);

            if (!empty($usedNamespaces)) {
                $usedNamespaces = array_values($usedNamespaces);
                $this->analyzerIs('Namespaces/NamespaceUsage')
                     ->fullnspathIs($usedNamespaces);
                $this->prepareQuery();
            }
        }

        if (!empty($ini->directives)) {
            $usedDirectives = array_intersect(self::getCalledDirectives(), $ini->directives);

            if (!empty($usedDirectives)) {
                $usedDirectives = array_values($usedDirectives);
                $this->analyzerIs('Php/DirectivesUsage')
                     ->outWithRank('ARGUMENT', 0)
                     ->noDelimiterIs($usedDirectives, self::CASE_SENSITIVE);
                $this->prepareQuery();
            }
        }

        // json only
        if (!empty($ini->classconstants)) {
            $classesconstants = (array) $ini->classconstants;
            $this->atomIs('Staticconstant')
                 ->outIs('CLASS')
                 ->fullnspathIs(array_keys($classesconstants))
                 ->savePropertyAs('fullnspath', 'fqn')
                 ->back('first')

                 ->outIs('CONSTANT')
                 ->isHash('fullcode', $classesconstants, 'fqn', self::CASE_SENSITIVE)
                 ->back('first');
            $this->prepareQuery();
        }

        if (!empty($ini->methods)) {
            $methods = (array) $ini->methods;

            $this->atomIs('Staticmethodcall')
                 ->outIs('CLASS')
                 ->fullnspathIs(array_keys($methods))
                 ->savePropertyAs('fullnspath', 'fqn')
                 ->back('first')

                 ->outIs('METHOD')
                 ->outIs('NAME')
                 ->tokenIs('T_STRING')
                 ->isHash('fullcode', $methods, 'fqn', self::CASE_INSENSITIVE)
                 ->back('first');
            $this->prepareQuery();

            $this->atomIs('Methodcall')
                 ->outIs('OBJECT')
                 ->fullnspathIs(array_keys($methods))
                 ->savePropertyAs('fullnspath', 'fqn')
                 ->back('first')

                 ->outIs('METHOD')
                 ->outIs('NAME')
                 ->tokenIs('T_STRING')
                 ->isHash('fullcode', $methods, 'fqn', self::CASE_INSENSITIVE)
                 ->back('first');
            $this->prepareQuery();
        }

        if (!empty($ini->properties)) {
            $properties = (array) $ini->properties;
            foreach($properties as &$list) {
                $list = array_map(function ($x) { return "\$$x";}, $list);
            }

            $this->atomIs('Staticproperty')
                 ->outIs('CLASS')
                 ->fullnspathIs(array_keys($properties))
                 ->savePropertyAs('fullnspath', 'fqn')
                 ->back('first')

                 ->outIs('MEMBER')
                 ->isHash('fullcode', $properties, 'fqn', self::CASE_SENSITIVE)
                 ->back('first');
            $this->prepareQuery();
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Common;

use Exakat\Analyzer\Analyzer;

abstract class Slim extends Analyzer {
    protected function getAppVariables() {
        $appClasses = array('\\\\slim\\\\slim',
                            '\\\\slim\\\\app');

        $appClassesList = makeList($appClasses);

        $query = <<<GREMLIN
g.V().hasLabel("Newcall")
     .has("fullnspath").has("fullnspath", within($appClassesList))
     .in()
     .in("RIGHT").hasLabel("Assignation")
     .out("LEFT")
     .values("code")
GREMLIN;

        $apps = $this->query($query)->toArray();
        return $apps;
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Common;

use Exakat\Analyzer\Analyzer;

class ConstantUsage extends Analyzer {
    protected $constants = array();

    public function analyze() {
        $constants =  makeFullNsPath($this->constants, \FNP_CONSTANT);

        $this->atomIs(array('Identifier', 'Nsname'))
             ->fullnspathIs($constants, self::CASE_SENSITIVE);
        $this->prepareQuery();
    }

    public function setConstants(array $constants) {
        $this->constants = $constants;
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Common;

use Exakat\Analyzer\Analyzer;

class UsesFrameworkConstant extends Analyzer {
    protected $constants   = array();

    public function analyze() {
        $analyzerId = null;

        if (!empty($this->constants[0])) {
            $constants = makeFullNsPath($this->constants, \FNP_CONSTANT);

            if (!empty($constants)) {
                $constantsUsage = new ConstantUsage();
                $constantsUsage->setAnalyzer(get_class($this));
                $constantsUsage->setConstants($constants);
                $analyzerId = $constantsUsage->init($analyzerId);
                $constantsUsage->run();

                $this->rowCount        += $constantsUsage->getRowCount();
                $this->processedCount  += $constantsUsage->getProcessedCount();
                $this->queryCount      += $constantsUsage->getQueryCount();
                $this->rawQueryCount   += $constantsUsage->getRawQueryCount();
            }
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Common;

use Exakat\Analyzer\Analyzer;

class FunctionUsage extends Analyzer {
    protected $functions = array();

    public function analyze() {
        $functions =  makeFullNsPath($this->functions);

        $this->atomFunctionIs($functions);
        $this->prepareQuery();
    }

    public function setFunctions(array $functions) {
        $this->functions = $functions;
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Common;

use Exakat\Analyzer\Analyzer;
use Exakat\Data\Dictionary;

class MethodUsage extends Analyzer {
    protected $methodList = array();

    public function analyze() {
        $staticHash = array();
        $methodHash = array();
        foreach($this->methodList as $class => $methods) {
            foreach($methods as $details) {
                if (isset($staticHash[$class])) {
                    $staticHash[$class][] = $details->normal_name;
                } else {
                    $staticHash[$class] = array($details->normal_name);
                }

                if (isset($methodHash[$class])) {
                    $methodHash[$class][] = $details->normal_name;
                } else {
                    $methodHash[$class] = array($details->normal_name);
                }
            }
        }

        foreach($staticHash as &$methods) {
            $methods = $this->dictCode->translate(array_unique($methods), Dictionary::CASE_INSENSITIVE);
        }
        unset($methods);
        foreach($methodHash as &$methods) {
            $methods = $this->dictCode->translate(array_unique($methods), Dictionary::CASE_INSENSITIVE);
        }
        unset($methods);

        // A::method()
        $this->atomIs('Staticmethodcall')
             ->outIs('CLASS')
             ->fullnspathIs(array_keys($staticHash))
             ->savePropertyAs('fullnspath', 'fnp')
             ->inIs('CLASS')
             ->outIs('METHOD')
             ->outIs('NAME')
             ->isHash('lccode', $staticHash, 'fnp')
             ->back('first');
        $this->prepareQuery();

        // $a = new C; $a->method()
        $this->atomIs('Methodcall')
             ->analyzerIsNot('self')
             ->outIs('OBJECT')
             ->inIs('DEFINITION')
             ->outIs('DEFINITION')
             ->inIs('LEFT')
             ->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomIs('New')
             ->outIs('NEW')
             ->fullnspathIs(array_keys($methodHash))
             ->savePropertyAs('fullnspath', 'fnp')
             ->back('first')
             ->outIs('METHOD')
             ->isHash('lccode', $methodHash, 'fnp')
             ->back('first');
        $this->prepareQuery();

        // function foo() : C; $a = foo(); $a->method()
        $this->atomIs('Methodcall')
             ->analyzerIsNot('self')
             ->outIs('OBJECT')
             ->inIs('DEFINITION')
             ->outIs('DEFINITION')
             ->inIs('LEFT')
             ->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomIs(array('Functioncall', 'Staticmethodcall', 'Methodcall'))
             ->inIs('DEFINITION')
             ->outIs('RETURNTYPE')
             ->fullnspathIs(array_keys($methodHash))
             ->savePropertyAs('fullnspath', 'fnp')
             ->back('first')
             ->outIs('METHOD')
             ->isHash('lccode', $methodHash, 'fnp')
             ->back('first');
        $this->prepareQuery();

        // function foo(C $a) { $a->method(); }
        $this->atomIs('Methodcall')
             ->analyzerIsNot('self')
             ->outIs('OBJECT')
             ->inIs('DEFINITION')
             ->inIs('NAME')
             ->outIs('TYPEHINT')
             ->fullnspathIs(array_keys($methodHash))
             ->savePropertyAs('fullnspath', 'fnp')
             ->back('first')
             ->outIs('METHOD')
             ->isHash('lccode', $methodHash, 'fnp')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
declare(strict_types = 1);

namespace Exakat\Analyzer;


class RulesetsExtra implements RulesetsInterface {
    private $extra_rulesets  = array();

    public function __construct(array $extra_rulesets = array()) {
        $this->extra_rulesets = $extra_rulesets;
    }

    public function getRulesetsAnalyzers(array $ruleset = array()): array {
        // Main installation
        if (empty($ruleset)) {
            if (empty($this->extra_rulesets)) {
                return array();
            }

            return array_unique(array_merge(...array_values($this->extra_rulesets)));
        }

        $return = array();
        foreach($ruleset as $t) {
            $return[] = $this->extra_rulesets[$t] ?? array();
        }

        if (empty($return)) {
            return array();
        }

        return array_unique(array_merge(...$return));
    }

    public function getRulesetForAnalyzer(string $analyzer = ''): array {
        $return = array();
        foreach($this->extra_rulesets as $ruleset => $analyzers) {
            if (in_array($analyzer, $analyzers)) {
                $return[] = $ruleset;
            }
        }

        return $return;
    }

    public function getRulesetsForAnalyzer(array $analyzer = array()): array {
        $return = array();

        if (empty($analyzer)) {
            foreach($this->extra_rulesets as $ruleset => $analyzers) {
                foreach($analyzers as $analyzer)  {
                    array_collect_by($return, $analyzer, $ruleset);
                }
            }

            return $return;
        }

        foreach($this->extra_rulesets as $ruleset => $analyzers) {
            if (in_array($analyzer, $analyzers)) {
                $return[] = $ruleset;
            }
        }

        return $return;
    }

    public function getSeverities(): array {
        return array();
    }

    public function getTimesToFix(): array {
        return array();
    }

    public function getFrequences(): array {
        return array();
    }

    public function listAllAnalyzer(string $folder = ''): array {
        // This is not providing any new analysers.
        return array();
    }

    public function listAllRulesets(array $ruleset = array()): array {
        return array_keys($this->extra_rulesets);
    }

    public function getClass(string $name): string {
        // accepted names :
        // PHP full name : Analyzer\\Type\\Class
        // PHP short name : Type\\Class
        // Human short name : Type/Class
        // Human shortcut : Class (must be unique among the classes)

        if (strpos($name, '\\') !== false) {
            if (substr($name, 0, 16) === 'Exakat\\Analyzer\\') {
                $class = $name;
            } else {
                $class = "Exakat\\Analyzer\\$name";
            }
        } elseif (strpos($name, '/') !== false) {
            $class = 'Exakat\\Analyzer\\' . str_replace('/', '\\', $name);
        } else {
            $class = $name;
        }

        if (!class_exists($class)) {
            return '';
        }

        $actualClassName = new \ReflectionClass($class);
        if ($class === $actualClassName->getName()) {
            return $class;
        } else {
            // problems with the case
            return '';
        }
    }

    public function getSuggestionRuleset(array $rulesets = array()): array {
        $list = $this->listAllRulesets();

        return array_filter($list, function (string $c) use ($rulesets): bool {
            foreach($rulesets as $ruleset) {
                $l = levenshtein($c, $ruleset);
                if ($l < 8) {
                    return true;
                }
            }
            return false;
        });
    }

    public function getSuggestionClass(string $name): array {
        return array_filter($this->listAllAnalyzer(), function ($c) use ($name) {
            $l = levenshtein($c, $name);

            return $l < 8;
        });
    }

    public function getAnalyzerInExtension(string $name): array {
        return array();
    }
}
?>
<?php
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
declare(strict_types = 1);

namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Dump\AnalyzerResults;

class Email extends AnalyzerResults {
    protected $analyzerName = 'Email';

    public function dependsOn(): array {
        return array('Complete/PropagateConstants',
                    );
    }

    public function analyze() {
        // $x = 'a@b.com';
        $this->atomIs(self::STRINGS_LITERALS)
             ->hasNoIn('CONCAT')
             ->has('noDelimiter')
             ->regexIs('noDelimiter', '^[^@## <>\'+\\"\\$\\\\\\\\]+@[^@#]+\\\\.[^@#]+')
             ->toResults()
             ;
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Analyzer;

class NoRealComparison extends Analyzer {
    public function analyze() {
        // 1.2 == 3.4
        // 1.2 == 3.4 + 0
        $this->atomIs('Comparison')
             ->codeIs(array('==', '!=', '===', '!=='), self::TRANSLATE, self::CASE_SENSITIVE)
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomInsideNoDefinition(array('Float', 'Identifier', 'Nsname', 'Staticconstant'))
             ->hasNoIn(array('ARGUMENT', 'INDEX'))
             ->atomIs('Float', self::WITH_CONSTANTS)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);

/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Dump\AnalyzerResults;

class OpensslCipher extends AnalyzerResults {
    protected $analyzerName = 'OpenSSL Ciphers';

    public function dependsOn(): array {
        return array('Complete/PropagateConstants',
                     'Complete/CreateDefaultValues',
                    );
    }

    public function analyze() {
        $opensslFunctions = array(1 => array('\\openssl_encrypt',
                                             '\\openssl_decrypt',
                                            ),
                                  4 => array('\\openssl_open',
                                             '\\openssl_seal',
                                            ),
                                 );

        //     $ciphertext = openssl_encrypt($plaintext, $cipher, $key, $options=0, $iv, $tag);
        foreach($opensslFunctions as $position => $functions) {
            $this->atomFunctionIs($functions)
                 ->outWithRank('ARGUMENT', $position)
                 ->atomIs(array('String', 'Concatenation'), self::WITH_CONSTANTS)
                 ->toResults();
            $this->prepareQuery();
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Analyzer;

class HttpHeader extends Analyzer {
    public function analyze() {
        $HttpHeadersList = $this->loadIni('http_headers.ini', 'headers');

        $this->atomIs('String')
             ->hasNoIn('CONCAT')
             ->regexIs('noDelimiter', '(' . implode('|', $HttpHeadersList) . '): .*');
        $this->prepareQuery();

        $this->atomIs('Heredoc')
             ->outIs('CONCAT')
             ->atomIs('String')
             ->regexIs('noDelimiter', '(' . implode('|', $HttpHeadersList) . '): .*')
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('Concatenation')
             ->regexIs('fullcode', '(' . implode('|', $HttpHeadersList) . '): .*')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Analyzer;

class SilentlyCastInteger extends Analyzer {
    public function analyze() {
        // Binary or hexadecimal, cast to Float
        $this->atomIs('Float')
             ->regexIs('fullcode', '^0[xXbB]');
        $this->prepareQuery();

        // Too long integer
        $this->atomIs('Float')
             ->regexIs('fullcode', '^[0-9]+\\$')
             ->regexIsNot('fullcode', '\\\\.');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Analyzer;

class HttpStatus extends Analyzer {
    public function analyze() {
        $ini = $this->load('HttpStatus', 'code');

        // $http = "418";
        $this->atomIs('Integer')
             ->codeIs(array_map(function (int $i): string { return (string) $i; }, array_keys($ini)));
        $this->prepareQuery();

        // $code = "418";
        $this->atomIs('String')
             ->has('noDelimiter')
             ->noDelimiterIs(array_map(function (int $i): string { return (string) $i; }, array_keys($ini)));
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Common\Type;

class Integer extends Type {
    public function __construct() {
        $this->type = 'Integer';
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Analyzer;

class Octal extends Analyzer {
    public function analyze() {
        $this->atomIs('Integer')
             ->regexIs('fullcode', '^[-+]*0[0-9]+\\$');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Dump\AnalyzerResults;

class Regex extends AnalyzerResults {
    protected $analyzerName = 'Regex';

    public function dependsOn(): array {
        return array('Complete/PropagateConstants',
                     'Complete/CreateDefaultValues',
                    );
    }

    private $pregFunctions = array('\\preg_match_all',
                                   '\\preg_match',
                                   '\\preg_replace',
                                   '\\preg_replace_callback',
//                                   '\\preg_replace_callback_array',
                                   '\\mb_ereg_match',
                                   '\\mb_ereg_replace_callback',
                                   '\\mb_ereg_replace',
                                   '\\mb_ereg_search_getpos',
                                   '\\mb_ereg_search_getregs',
                                   '\\mb_ereg_search_init',
                                   '\\mb_ereg_search_pos',
                                   '\\mb_ereg_search_regs',
                                   '\\mb_ereg_search_setpos',
                                   '\\mb_ereg_search',
                                   '\\mb_ereg',
                                   '\\mb_eregi_replace',
                                   '\\mb_eregi',
                                   );

    public function analyze() {

        // preg_match('/a/', ...)
        $this->atomFunctionIs($this->pregFunctions)
             ->outWithRank('ARGUMENT', 0)
             ->atomIs(self::STRINGS_LITERALS, self::WITH_CONSTANTS)
             ->toResults();
        $this->prepareQuery();

        // preg_match(array(regex1, regex2))
        $this->atomFunctionIs($this->pregFunctions)
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('Arrayliteral', self::WITH_CONSTANTS)
             ->outIs('ARGUMENT')
             ->outIsIE('VALUE')
             ->atomIs(self::STRINGS_LITERALS, self::WITH_CONSTANTS)
             ->toResults();
        $this->prepareQuery();

        // preg_relace_callback_array(array(regex1 => callback, regex2))
        $this->atomFunctionIs('\\preg_replace_callback_array')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('Arrayliteral')
             ->outIs('ARGUMENT')
             ->outIs('INDEX')
             ->atomIs(self::STRINGS_LITERALS, self::WITH_CONSTANTS)
             ->toResults();
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Analyzer;

class MimeType extends Analyzer {
    public function analyze() {
        $mimeTypes = $this->loadIni('mime_types.ini', 'mime');

        // $x = ' asfa "text/fdf+xml"';
        $this->atomIs('String')
             ->hasNoOut('CONCAT')
             ->regexIs('fullcode', '(?<!type=)[\\\\\'\"](' . implode('|', $mimeTypes) . ')/[a-zA-Z0-9+\\\\-]+[\\\\\'\";]');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);

/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Dump\AnalyzerResults;

class HexadecimalString extends AnalyzerResults {
    public function analyze() {
        $regex = '^\\\\s*0[xX][0-9a-fA-F]+';

        // Strings
        $this->atomIs('String')
             ->hasNoOut('CONCAT')
             ->hasNoParent('Heredoc', 'CONCAT')
             ->regexIs('noDelimiter', $regex)
             ->toResults();
        $this->prepareQuery();

        // Concatenation String
        $this->atomIs('String')
             ->outWithRank('CONCAT', 0)
             ->atomIs('String')
             ->regexIs('noDelimiter', $regex)
             ->back('first')
             ->toResults();
        $this->prepareQuery();

        // Simple Heredoc and nowdoc
        $this->atomIs('Heredoc')
             ->outWithRank('CONCAT', 0)
             ->atomIs('String')
             ->regexIs('noDelimiter', $regex)
             ->back('first')
             ->toResults();
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Analyzer;

class SpecialIntegers extends Analyzer {
    public function analyze() {
        $codes = $this->load('SpecialIntegers', 'code');
        $codes = array_keys($codes);
        $codes = array_map(function ($x) { return (string) $x; }, $codes);

        $this->atomIs('Integer')
             ->codeIs($codes, self::TRANSLATE, self::CASE_SENSITIVE);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Analyzer;

class OneVariableStrings extends Analyzer {
    public function analyze() {
        $this->atomIs('String')
             ->is('count', 1)
             ->outIs('CONCAT')
             ->atomIs(array('Variable', 'Array', 'Member', 'Methodcall', 'Staticmethodcall'));
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Dump\AnalyzerResults;

class CharString extends AnalyzerResults {
    protected $analyzerName = 'CharString';

    public function analyze() {
        $this->atomIs(array('String', 'Heredoc'))
             ->tokenIsNot('T_QUOTE')
             ->toResults();
        $this->prepareQuery();
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Analyzer;

class Sapi extends Analyzer {
    public function analyze() {
        $sapi = $this->loadIni('php_sapi.ini', 'sapi');

        $this->atomIs('String')
             ->hasNoOut('CONCAT')
             ->noDelimiterIs($sapi);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Dump\AnalyzerResults;

class Sql extends AnalyzerResults {
    protected $analyzerName = 'Type/Sql';

    public function analyze() {
        $sqlKeywords = $this->loadIni('sqlKeywords.ini', 'keywords');
        $regex = '^(?i)(<<<\\\\w+)?(<<<\'\\\\w+\')?[\\"\']?\\\\s*(' . implode('|', $sqlKeywords) . ') ';

        // SQL in a literal 'SELECT col FROM table';
        $this->atomIs(self::STRINGS_ALL)
             ->hasNoIn('CONCAT')
             ->regexIs('fullcode', $regex)
             ->toResults();
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Analyzer;

class ShouldTypecast extends Analyzer {
    public function analyze() {
        $typeCasting = array('\\floatval',
                             '\\strval',
                             '\\boolval',
                             '\\settype',
                             );

        // $a = intval($b);
        $this->atomFunctionIs('\\intval')
             ->noChildWithRank('ARGUMENT', 1);
        $this->prepareQuery();

        // $a = strval($b);
        $this->atomFunctionIs($typeCasting);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Dump\AnalyzerResults;

class Path extends AnalyzerResults {
    protected $analyzerName = 'Path';

    public function dependsOn(): array {
        return array('Complete/PropagateConstants',
                    );
    }

    public function analyze() {
        $protocols = $this->loadJson('protocols.json');
        $protocolList = array();
        foreach($protocols as $protocol => $details) {
            if ($details->path === true) {
                $protocolList[] = $protocol;
            }
        }
        $protocolList = implode('|', $protocolList);

        // /path/to/file.php
        $this->atomIs('String', self::WITH_CONSTANTS)
             ->has('noDelimiter')
             ->regexIs('noDelimiter', '^((?!(' . $protocolList . ')://)[^ :\\\\+&]*/)([^ :\\\\+&/]*)\\\\.\\\\w{1,6}\\$')
             ->toResults();
        $this->prepareQuery();

        $pathArgs = (array) $this->loadJson('php_filenames_arg.json');

        // fopen('/path/to/file.php')
        foreach($pathArgs as $position => $functions) {
            $this->atomFunctionIs($functions)
                 ->outWithRank('ARGUMENT', $position)
                 ->atomIs('String', self::WITH_CONSTANTS)
                 ->has('noDelimiter')
                 ->regexIsNot('noDelimiter', '^((?!(' . $protocolList . ')://)[^ :\\\\+&]*/)([^ :\\\\+&/]*)\\\\.\\\\w{1,6}\\$')
                 ->toResults();
            $this->prepareQuery();
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Dump\AnalyzerResults;

class Url extends AnalyzerResults {
    protected $analyzerName = 'Url';

    public function dependsOn(): array {
        return array('Complete/PropagateConstants',
                    );
    }

    public function analyze() {
        // 'http://www.exakat.io/'
        $this->atomIs(self::STRINGS_ALL, self::WITH_CONSTANTS)
             ->hasNoIn('CONCAT')
             ->has('noDelimiter')
             ->regexIs('noDelimiter', '^.?([a-z]+)://[-\\\\p{L}0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|].?\\$')
             ->toResults();
        $this->prepareQuery();
    }
}

?>
<?php
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
declare(strict_types = 1);

namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Dump\AnalyzerResults;

class Hexadecimal extends AnalyzerResults {
    protected $analyzerName = 'Hexadecimal';

    public function analyze() {
        // $a = 0x123ee;
        $this->atomIs('Integer')
             ->regexIs('fullcode', '^0[xX][0-9a-fA-F]+\$')
             ->toResults();
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Dump\AnalyzerResults;

class Md5String extends AnalyzerResults {
    protected $analyzerName = 'Md5 strings';

    public function analyze() {
        // 'eccbc87e4b5ce2fe28308fd9f2a7baf3'
        $this->atomIs('String')
             ->regexIs('fullcode', '^[\\\\\'\"]?0[0-9A-Fa-f]{31}[\\\\\'\"]?\\$')
             ->toResults();
        $this->prepareQuery();
    }
}

?>
<?php
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
declare(strict_types = 1);

namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Dump\AnalyzerHashAnalyzer;

class DuplicateLiteral extends AnalyzerHashAnalyzer {
    protected $minDuplicate = 15;

    protected $analyzerName = 'Type/DuplicateLiteral';

    public function analyze() {
        // No need for boolean and null
        $this->atomIs(array('String', 'Heredoc'))
             ->hasNoIn('INDEX') // Skipping arrays $x["cbd"]
             ->hasNoParent('String', array('CONCAT'))
             ->noDelimiterIsNot(array(''))
             ->not(
                $this->side()
                     ->inIs('VALUE')
                     ->atomIs(array('Constant', 'Defineconstant'))
              )
             ->raw('groupCount("m").by("noDelimiter").cap("m").next().findAll{ it.value >= ' . $this->minDuplicate . '; }');
        $strings = $this->rawQuery();

        if (!empty($strings->toArray())) {
            foreach($strings->toArray() as $v) {
                foreach($v as $key => $value)  {
                    $this->analyzerValues[] = array($this->analyzerName, $key, $value);
                }
            }

            $this->prepareQuery();
        }

        $this->atomIs(array('Integer', 'Float'))
             ->hasNoIn('INDEX') // Skipping arrays $x[0]
             ->fullcodeIsNot(array('0', '1', '2', '10'))  // skip some very common values
             ->not(
                $this->side()
                     ->inIs('VALUE')
                     ->atomIs(array('Constant', 'Defineconstant'))
              )
             ->raw('groupCount("m").by("fullcode").cap("m").next().findAll{ it.value >= ' . $this->minDuplicate . '; }');
        $integers = $this->rawQuery();

        if (!empty($integers->toArray())) {
            foreach($integers->toArray() as $v) {
                foreach($v as $key => $value)  {
                    $this->analyzerValues[] = array($this->analyzerName, $key, $value);
                }
            }

            $this->prepareQuery();
        }

        // could we do this for array?
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Dump\AnalyzerResults;

class Printf extends AnalyzerResults {
    protected $analyzerName = 'Printf';

    public function analyze() {
        $functions = array('\\printf',
                           '\\sscanf',
                           '\\fscanf',
                           '\\vsprintf',
                           '\\sprintf',
                           );

        // echo sprintf("%'.9d\n", 123);
        $this->atomFunctionIs($functions)
             ->outWithRank('ARGUMENT', 0)
             ->atomIs(self::STRINGS_LITERALS, self::WITH_CONSTANTS)
             ->toResults();
        $this->prepareQuery();
    }
}

?>
<?php
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Analyzer;

use Exakat\Analyzer\Dump\AnalyzerResults;

class Protocols extends AnalyzerResults {
    protected $analyzerName = 'Protocols';

    public function analyze() {
        $protocols = (array) $this->loadJson('protocols.json');
        $protocolList = implode('|', array_keys($protocols));

        // /path/to/file.php
        $this->atomIs('String')
             ->has('noDelimiter')
             ->regexIs('noDelimiter', '^(?i)(' . $protocolList . ')://')
             ->toResults();
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Analyzer;

class OctalInString extends Analyzer {
    protected $phpVersion = '7.1-';

    public function analyze() {
        $this->atomIs('String')
             ->hasNoOut('CONCAT')
             ->regexIs('noDelimiter', '\\\\\\\\' . '(\\\\d{4,}|[4-9]\\\\d{2,2}|3[89]\\\\d|37[89])')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Analyzer;

class ShouldBeSingleQuote extends Analyzer {
    public function analyze() {
        // $a = "abc";
        $this->atomIs('String')
             ->is('delimiter', '"')
             ->hasNoOut('CONCAT')
             ->regexIsNot('noDelimiter', "'")
             ->regexIsNot('noDelimiter', '\\\\[nrtvef\\"\\$]')//
             ->regexIsNot('noDelimiter', '\\\\\\\\0[0-7]')
             ->regexIsNot('noDelimiter', '\\\\\\\\x[0-9A-Fa-f]{1,2}')
             ->regexIsNot('noDelimiter', '\\\\\\\\u\\\\{[0-9A-Fa-f]+\\\\}');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Dump\AnalyzerResults;

class Binary extends AnalyzerResults {
    protected $analyzerName = 'Binary';

    protected $phpVersion = '5.4+';

    public function analyze() {
        $this->atomIs('Integer')
             ->regexIs('fullcode', '^0[bB][01]+\$')
             ->toResults();
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Analyzer;

class Continents extends Analyzer {
    public function analyze() {
        $ini = $this->loadIni('Continents_en.ini', 'continents_en');

        $this->atomIs('String')
             ->hasNoOut('CONCAT')
             ->noDelimiterIs($ini);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);

/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Dump\AnalyzerResults;

class Pack extends AnalyzerResults {
    protected $analyzerName = 'Pack';

    public function dependsOn(): array {
        return array('Complete/PropagateConstants',
                     'Complete/CreateDefaultValues',
                    );
    }

    public function analyze() {
        $packFunctions = array('\\pack',
                               '\\unpack',
                               );

        // pack("nvc*", 0x1234, 0x5678, 65, 66);
        $this->atomFunctionIs($packFunctions)
             ->outWithRank('ARGUMENT', 0)
             ->atomIs(array('String', 'Concatenation'), self::WITH_CONSTANTS)
             ->toResults();
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Dump\AnalyzerResults;

class Ports extends AnalyzerResults {
    protected $analyzerName = 'Ports';

    public function analyze() {
        // 443
        $ports = $this->load('ports', 'port');

        $this->atomIs('Integer')
             ->codeIs(array_map(function (int $i): string { return (string) $i; }, array_keys($ports)))
             ->toResults();
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Dump\AnalyzerResults;

class Heredoc extends AnalyzerResults {
    protected $analyzerName = 'Heredoc';

    public function analyze() {
        $this->atomIs('Heredoc')
             ->is('heredoc', true)
             ->toResults();
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Dump\AnalyzerResults;

class UnicodeBlock extends AnalyzerResults {
    protected $analyzerName = 'UnicodeBlock';

    public function analyze() {
        $this->atomIs(array('String', 'Heredoc'))
             ->toResults();
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Analyzer;

class StringInterpolation extends Analyzer {

    public function analyze() {
        // $x = "$a $b"
        $this->atomIs(array('String', 'Heredoc'))
             ->outIs('CONCAT')
             ->atomIs(array('Variable', 'Array', 'Member'))
             ->isNot('enclosing', true)
             ->nextSibling('CONCAT')
             ->regexIs('code', '/^(->|\[|\{|::)/')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Analyzer;

class Shellcommands extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/PropagateConstants',
                    );
    }

    public function analyze() {
        // ` ls -1`
        $this->atomIs('Shell');
        $this->prepareQuery();

        // shell_exec('ls -1')
        $this->atomFunctionIs(array('\\exec', '\\shell_exec', '\\system', '\\proc_open'))
             ->outWithRank('ARGUMENT', 0)
             ->atomIs(array('Concatenation', 'Heredoc', 'String'), self::WITH_CONSTANTS);
        $this->prepareQuery();
    }
}

?>
<?php
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
declare(strict_types = 1);

namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Dump\AnalyzerResults;

class Pcre extends AnalyzerResults {
    protected $analyzerName = 'Pcre';

    public function analyze() {
        $delimiters = array('\\$'     => '\\$',
                            '#'       => '#',
                            '~'       => '~',
                            '%'       => '%',
                            '/'       => '/',
                            '\\\\{'   => '\\\\}',
                            '\\\\('   => '\\\\)',
                            '\\"'     => '\\"',
                            "'"       => "'",
                            );

        foreach($delimiters as $in => $out) {
            // regex like $in....$out
            $this->atomIs(self::STRINGS_LITERALS)
                 ->regexIs('fullcode', '^([\'\\"])' . $in . '[^' . $out . ']+?' . $out . '[imsxeADSUXJu]*[\'\\"]')
                 ->toResults();
            $this->prepareQuery();
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Analyzer;

class ArrayIndex extends Analyzer {
    public function analyze() {
        // $array['index>]
        $this->atomIs('Array')
             ->outIs('INDEX')
             ->atomIs('String')
             ->hasNoOut('CONCAT');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Dump\AnalyzerResults;

class UdpDomains extends AnalyzerResults {
    protected $analyzerName = 'UpdDomains';

    public function dependsOn(): array {
        return array('Complete/PropagateConstants',
                    );
    }

    public function analyze() {
        $domains = $this->loadIni('php_internet_domains.ini', 'domains');

        $this->atomIs('String', self::WITH_CONSTANTS)
             ->regexIs('noDelimiter', '^(' . implode('|', $domains) . ')://')
             ->back('first')
             ->toResults();
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Analyzer;

class MalformedOctal extends Analyzer {
    protected $phpVersion = '7.0-';

    public function analyze() {
        // malformed Octals
        $this->atomIs('Integer')
             ->regexIs('fullcode', '^[+-]?0[0-9]+\$')
             ->regexIs('fullcode', '[89]');
        $this->prepareQuery();

        // Octals beginning with too many 0
        $this->atomIs('Integer')
             ->regexIs('fullcode', '^[+-]?0[0-9]+\$')
             ->regexIs('fullcode', '^[+-]?00+')
             ->codeIsNot('0000');
        $this->prepareQuery();

        // integer that is defined but will be too big and will be turned into a float
        $maxSize = log(PHP_INT_MAX) / log(2) / 3 + 1;
        $this->atomIs('Float')
             ->regexIs('fullcode', '^[+-]?0[0-7]{' . $maxSize . ',}\$');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Dump\AnalyzerResults;

class Nowdoc extends AnalyzerResults {
    protected $analyzerName = 'Nowdoc';

    public function analyze() {
        $this->atomIs('Heredoc')
             ->isNot('heredoc', true)
             ->toResults();
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Analyzer;

class GPCIndex extends Analyzer {
    public function analyze() {
        // $array['index']
        $this->atomIs('Array')
             ->outIs('VARIABLE')
             ->atomIs('Phpvariable')
             ->codeIs(array('$_GET', '$_POST', '$_REQUEST', '$_COOKIE'), self::TRANSLATE, self::CASE_SENSITIVE)
             ->back('first')
             ->outIs('INDEX')
             ->atomIs('String')
             ->hasNoOut('CONCAT');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Analyzer;

class StringHoldAVariable extends Analyzer {
    public function analyze() {
        $printfs = array('\\printf',
                         '\\vsprintf',
                         '\\sprintf',
                         );

        // String that has a PHP variables but ' as delimiters
        $this->atomIs('String')
             ->hasNoOut('CONCAT')
             // Skip Constant definitions
             ->hasNoParent('Constant', 'VALUE')
             ->hasNoParent(array('Parameter', 'Propertydefinition'), 'DEFAULT')
             // Skip sprintf and one level above
             ->not(
                $this->side()
                     ->inIs('ARGUMENT')
                     ->functioncallIs($printfs)
             )
             ->not(
                $this->side()
                     ->inIs('ARGUMENT')
                     ->inIs('ARGUMENT')
                     ->functioncallIs($printfs)
             )
             ->hasNoParent(array('Constant', 'Parameter', 'Propertydefinition'), 'VALUE')
             ->is('delimiter', "'")
             ->regexIs('noDelimiter', '(?<!%\\\d)(?<!\\\\\\\\)\\\\\$[a-zA-Z_\\\\x7f-\\\\xff][a-zA-Z0-9_\\\\x7f-\\\\xff]*');
        $this->prepareQuery();

        // variable inside a NOWDOC
        $this->atomIs('Heredoc')
             ->isNot('heredoc', true)
             // Skip Constant definitions
             ->hasNoParent('Constant', 'VALUE')
             ->hasNoParent(array('Parameter', 'Propertydefinition'), 'DEFAULT')
             // Skip sprintf and one level above
             ->not(
                $this->side()
                     ->inIs('ARGUMENT')
                     ->functioncallIs($printfs)
             )
             ->not(
                $this->side()
                     ->inIs('ARGUMENT')
                     ->inIs('ARGUMENT')
                     ->functioncallIs($printfs)
             )             ->outIs('CONCAT')
             ->regexIs('fullcode', '[^%]?[^\\\\\\\\]?\\\\\$[a-zA-Z_\\\\x7f-\\\\xff][a-zA-Z0-9_\\\\x7f-\\\\xff]+');
        $this->prepareQuery();

        // <<<NOWDOC NOWDOC (NOWDOC or HEREDOC with wrong syntax)
        $this->atomIs('Heredoc')
             ->savePropertyAs('delimiter', 'd')
             ->outIs('CONCAT')
             ->regexIs('fullcode', '\\\\b" + d + "\\\\b')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Analyzer;

class StringWithStrangeSpace extends Analyzer {
    public function analyze() {
        // $a = ' bac'; // space is actually a vertical tab
        $weirdSpaces = $this->load('weirdSpaces', 'space');

        $regex = '(' . implode('|', array_keys($weirdSpaces)) . '})';

        $this->atomIs('String')
             ->hasNoOut('CONCAT')
             ->regexIs('noDelimiter', $regex);
        $this->prepareQuery();
    }
}

?>
<?php
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
declare(strict_types = 1);

namespace Exakat\Analyzer\Type;

use Exakat\Analyzer\Analyzer;

class SimilarIntegers extends Analyzer {
    public function analyze() {
        // $x = 10; $y = 0xa; $z = -+-10;
        $this->atomIs(array('Integer', 'Addition', 'Power', 'Multiplication', 'Sign', 'Bitshift'))
             ->has('intval')
             ->isNot('intval', array(0, 1))
             ->raw(<<<'GREMLIN'
group("m").by("intval").by("fullcode").cap("m").next().findAll{ a,b -> b.unique().size() > 1}
GREMLIN
);
        $res = $this->rawQuery();
        $results = $res->toArray();

        $integers = array();
        $fullcode = array();
        foreach($results as $integerList) {
            foreach($integerList as $intval => $list) {
                $integers[] = $intval;
                $fullcode[] = $list;
            }
        }

        if (empty($integers)) {
            return;
        }

        $fullcode = array_merge(...$fullcode);

        $this->atomIs(array('Integer', 'Addition', 'Power', 'Multiplication', 'Sign', 'Bitshift'))
             ->has('intval')
             ->is('intval', $integers)
             ->is('fullcode', $fullcode);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Variables;

use Exakat\Analyzer\Analyzer;

class VariableUppercase extends Analyzer {
    public function analyze() {
        // $UPPER_CASE
        $this->atomIs(self::VARIABLES_USER)
             ->regexIs('fullcode', '^\\\\\$[a-zA-Z0-9_]{2,}\\$')
             ->isUppercase('fullcode');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Variables;

use Exakat\Analyzer\Analyzer;

class AssignedTwiceOrMore extends Analyzer {
    public function analyze() {
        // function foo() { $a = 1; $a = 2;}
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('DEFINITION')
             ->atomIs('Variabledefinition')
             ->variableIsAssigned(2)
             ->outIs('DEFINITION')
             ->hasParent('Assignation', 'LEFT')
             ->inIs('LEFT')
             ->hasNoParent('For', array('EXPRESSION', 'INIT'))
             ->outIs('RIGHT')
             ->atomIs(array('Integer', 'Float', 'Boolean', 'Null', 'Heredoc', 'String'))
             ->hasNoOut('CONCAT')
             ->inIs('RIGHT')
             ->outIs('LEFT');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Variables;

use Exakat\Analyzer\Analyzer;

class InterfaceArguments extends Analyzer {
    public function analyze() {
        // interface i { function a($b) ; }
        // class c implements i { function a($b) ; }
        $this->atomIs('Interface')
             ->outIs('METHOD')
             ->atomIs('Method')
             ->outIs('ARGUMENT')
             ->outIs('NAME')
             ->atomIs('Parametername');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy  Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Variables;

use Exakat\Analyzer\Analyzer;

class InconsistentUsage extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/CreateDefaultValues',
                    );
    }

    public function analyze() {
        $this->atomIs('Variabledefinition')
             ->raw(<<<'GREMLIN'
where(
__.sideEffect{ s = [:];}
  .out('DEFINITION').sideEffect{ s[it.get().label()] = 1;}.fold()
)
.filter{s.size() > 1}

GREMLIN
)
->outIs('DEFINITION');
        $this->prepareQuery();

        // Not taking into account absence of default on purpose.
        // improve with return typehint of functions
        $this->atomIs('Propertydefinition')
             ->filter(
                $this->side()
                     ->initVariable('s', "['class':0, 'array':0, 'variable':0]")
                     ->filter(
                        $this->side()
                             ->outIs('DEFAULT')
                             ->raw(<<<'GREMLIN'
sideEffect{
        if (it.get().label() == "Null")            { s["class"]++; }
   else if (it.get().label() == "Arrayliteral")    { s["array"]++; }
   else if (it.get().label() == "New")             { s["class"]++; }
   else if (it.get().label() == "Clone")           { s["class"]++; }
   else if (it.get().label() == "Void")            { /* Nothing */ }
   else                                            { s["variable"]++; }
    }.fold()
GREMLIN
)
                     )
                     ->outIs('DEFINITION')
                     ->not(
                        $this->side()
                             ->inIs('LEFT')
                             ->atomIs('Assignation')
                             ->outIs('RIGHT')
                             ->atomIs(array('New', 'Clone'))
                     )
                     ->raw(<<<'GREMLIN'
inE().not(hasLabel("ANALYZED", "DEFINITION", "RETURN")).sideEffect{
          if (it.get().label() == "OBJECT")   { s["class"]++; }
     else if (it.get().label() == "CLASS")    { s["class"]++; }
     else if (it.get().label() == "CLONE")    { s["class"]++; }
     else if (it.get().label() == "NEW")      { s["class"]++; }
     else if (it.get().label() == "APPEND")   { s["array"]++; }
     else if (it.get().label() == "VARIABLE") { s["array"]++; }
     else { s["variable"]++; };
     }.fold()
GREMLIN
                )
             )
             ->raw('filter{s.findAll{a,b -> b != 0}.size() > 1}');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Variables;

use Exakat\Analyzer\Analyzer;

class Overwriting extends Analyzer {
    public function analyze() {
        // $dir = substr($dir, 0, -1)
        $this->atomIs('Assignation')
             ->codeIs('=')
             ->outIs('LEFT')
             ->atomIs('Variable')
             ->savePropertyAs('code', 'destination')
             ->inIs('LEFT')
             ->outIs('RIGHT')
             ->atomIsNot('Cast')
             ->atomInsideNoDefinition(self::VARIABLES_USER)
             ->samePropertyAs('code', 'destination', self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();

        // $g = function ($a, $b) use ($g) {}
        $this->atomIs('Assignation')
             ->codeIs('=')
             ->outIs('LEFT')
             ->atomIs('Variable')
             ->savePropertyAs('code', 'destination')
             ->inIs('LEFT')
             ->outIs('RIGHT')
             ->atomIs('Closure')
             ->outIs('USE')
             ->samePropertyAs('code', 'destination', self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();
    }

    // todo : add cases of on-the-spot modification (like sort())
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Variables;

use Exakat\Analyzer\Analyzer;

class LostReferences extends Analyzer {
    public function analyze() {
        // foo(&$f) { $f =& $b;}
        $this->atomIs('Parametername')
             ->outIs('DEFINITION')
             ->inIs('LEFT')
             ->atomIs('Assignation')
             ->outIs('RIGHT')
             ->is('reference', true)
             ->back('first')
             ->inIs('NAME')
             ->is('reference', true)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Variables;

use Exakat\Analyzer\Analyzer;

class UndefinedConstantName extends Analyzer {
    public function analyze() {
        // ${x} (no const x = 'a')
        $this->atomIs('Variable')
             ->outIs('NAME')
             ->hasNoIn('DEFINITION')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Variables;

use Exakat\Analyzer\Analyzer;

class VariableOneLetter extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/PropagateConstants',
                    );
    }

    public function analyze() {
        // Normal variables
        $this->atomIs(self::VARIABLES_USER)
             ->tokenIs('T_VARIABLE')
             ->fullcodeLength(' == 2 ');
        $this->prepareQuery();

        // Normal variables in a string : {$y}
        $this->atomIs(self::VARIABLES_USER)
             ->tokenIs('T_CURLY_OPEN')
             ->fullcodeLength(' == 4 '); // fullcode includes the {}
        $this->prepareQuery();

        // ${variables}
        $this->atomIs(self::VARIABLES_USER)
             ->tokenIs(array('T_CURLY_OPEN', 'T_DOLLAR_OPEN_CURLY_BRACES', 'T_STRING_VARNAME'))
             ->outIs('NAME')
             ->atomIs(array('String', 'Identifier', 'Nsname'), self::WITH_CONSTANTS)
             ->fullcodeLength(' == 3 ')
             ->back('first');
        $this->prepareQuery();

        // {$variables}
        $this->atomIs(self::VARIABLES_USER)
             ->tokenIs('T_DOLLAR')
             ->outIs('NAME')
             ->atomIs(array('String', 'Identifier', 'Nsname'), self::WITH_CONSTANTS)
             ->fullcodeLength(' == 3 ')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Variables;

use Exakat\Analyzer\Analyzer;

class Blind extends Analyzer {
    public function analyze() {
        $blinds = array('Variable', 'Staticproperty', 'Member', 'Array');

// foreach($source as $blind)
        $this->atomIs('Foreach')
             ->outIs(array('INDEX', 'VALUE'))
             ->atomIs($blinds);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Variables;

use Exakat\Analyzer\Analyzer;

class VariableUsedOnce extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/CreateCompactVariables',
                    );
    }

    public function analyze() {
        //Variables mentionned once in the whole application. Just once.
        $this->atomIs('Variabledefinition')
             ->outIs('DEFINITION')
             ->atomIsNot('Phpvariable')
             ->back('first')
             ->groupCount('code')
             ->raw('cap("m").next().findAll{a,b -> b == 1}.keySet()');
        $usedOnce = $this->rawQuery()->toArray();

        if (empty($usedOnce)) {
            return;
        }

        $this->atomIs('Variabledefinition')
             ->codeIs($usedOnce, self::NO_TRANSLATE, self::CASE_SENSITIVE)
             ->outIs('DEFINITION');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Variables;

use Exakat\Analyzer\Analyzer;

class VariableUsedOnceByContext extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/CreateCompactVariables',
                    );
    }

    public function analyze() {
        // global variables
        $this->atomIs('File')
             ->outIs('DEFINITION')
             ->atomIs('Variabledefinition')
             ->isUsed(1)
             ->outIs('DEFINITION');
        $this->prepareQuery();

        // argument by function
        $this->atomIs(self::FUNCTIONS_ALL)
             ->isNot('abstract', true)
             ->outIs(array('ARGUMENT', 'USE'))
             ->outIs('NAME')
             ->isUsed(0);
        $this->prepareQuery();

        // Normal variables and inherited functions from closures
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('DEFINITION')
             ->atomIs(array('Variabledefinition'))
             ->isUsed(1)
             ->outIs('DEFINITION');
        $this->prepareQuery();

        // Static, glboal variables may be reused during a new call
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('DEFINITION')
             ->atomIs(array('Globaldefinition', 'Staticdefinition'))
             ->isUsed(0)
             ->outIs('DEFINITION');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Variables;

use Exakat\Analyzer\Analyzer;

class VariableNonascii extends Analyzer {
    public function analyze() {
        // $人 or
        $this->atomIs(self::VARIABLES_USER)
             ->tokenIsNot(array('T_DOLLAR', 'T_DOLLAR_OPEN_CURLY_BRACES'))
             ->isNot('noscream', true)
             ->isNot('enclosing', true)
             ->regexIs('fullcode', '[^a-zA-Z0-9\\$_\\\.\\\&]');
        $this->prepareQuery();

        $this->atomIs(self::VARIABLES_USER)
             ->tokenIsNot(array('T_DOLLAR', 'T_DOLLAR_OPEN_CURLY_BRACES'))
             ->is('noscream', true)
             ->isNot('enclosing', true)
             ->regexIs('fullcode', '^@.*[^a-zA-Z0-9\\$_\\\.\\\&]');
        $this->prepareQuery();

        $this->atomIs(self::VARIABLES_USER)
             ->tokenIsNot(array('T_DOLLAR', 'T_DOLLAR_OPEN_CURLY_BRACES'))
             ->isNot('noscream', true)
             ->is('enclosing', true)
             ->regexIs('fullcode', '^\\\\{.*[^a-zA-Z0-9\\$_\\\.\\\&].*\\\\}\$');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Variables;

use Exakat\Analyzer\Analyzer;

class OverwrittenLiterals extends Analyzer {
    public function analyze() {
        // function foo() { $a = 1; $a = 2;}
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('DEFINITION')
             ->atomIs('Variabledefinition')
             ->variableIsAssigned(2)
             ->outIs('DEFINITION')
             ->as('results')
             ->inIs('LEFT')
             ->atomIs('Assignation')
             ->codeIs('=')
             ->hasNoParent('For', array('EXPRESSION', 'INIT'))
             ->back('results');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Variables;

use Exakat\Analyzer\Analyzer;

class VariableLong extends Analyzer {
    protected $variableLength = 20;

    public function analyze() {
        // $abcdefghijklmnopqrstuvwxyz = 1;
        $this->atomIs(self::VARIABLES_USER)
             ->fullcodeLength(" > $this->variableLength");
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Variables;

use Exakat\Analyzer\Analyzer;

class LocalGlobals extends Analyzer {
    public function dependsOn(): array {
        return array('Variables/Globals',
                    );
    }

    public function analyze() {
        $this->analyzerIs('Variables/Globals')
             ->values('code');
        $globals = $this->rawQuery()->toArray();
        $globals = array_values(array_unique($globals));

        $this->atomIs(self::FUNCTIONS_ALL)
             ->atomInsideNoDefinition('Variable')
             ->analyzerIsNot('Variables/Globals')
             ->codeIs($globals, self::NO_TRANSLATE, self::CASE_SENSITIVE);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Variables;

use Exakat\Analyzer\Analyzer;

class References extends Analyzer {
    public function analyze() {
        $this->atomIs('Variable')
             ->is('reference', true);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Variables;

use Exakat\Analyzer\Analyzer;

class SelfTransform extends Analyzer {
    public function analyze() {
        // $x = strtolower($x);
        $this->atomIs('Assignation')
             ->outIs('LEFT')
             ->atomIs(self::VARIABLES_ALL)
             ->savePropertyAs('fullcode', 'left')
             ->as('results')
             ->back('first')

             ->outIs('RIGHT')
             ->atomInside(self::VARIABLES_ALL)
             ->samePropertyAs('fullcode', 'left')
             ->back('results');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Variables;

use Exakat\Analyzer\Analyzer;

class Php5IndirectExpression extends Analyzer {
    protected $phpVersion = '7.0-';

    public function analyze() {
//$$foo['bar']['baz']	${$foo['bar']['baz']}	($$foo)['bar']['baz']
        $this->atomIs('Variable')
             ->tokenIs('T_DOLLAR')
             ->outIs('NAME')
             ->atomIs('Array')
             ->back('first');
        $this->prepareQuery();

//$foo->$bar['baz']	$foo->{$bar['baz']}	($foo->$bar)['baz']
        $this->atomIs('Member')
             ->outIs('MEMBER')
             ->atomIs('Array')
             ->outIs('VARIABLE')
             ->tokenIs('T_VARIABLE')
             ->back('first');
        $this->prepareQuery();


//$foo->$bar['baz']()	$foo->{$bar['baz']}()	($foo->$bar)['baz']()
        $this->atomIs('Methodcall')
             ->outIs('METHOD')
             ->outIs('NAME')
             ->atomIs('Array')
             ->back('first');
        $this->prepareQuery();

//Foo::$bar['baz']()
        $this->atomIs('Staticmethodcall')
             ->outIs('METHOD')
             ->outIs('NAME')
             ->atomIs('Array')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Variables;

use Exakat\Analyzer\Analyzer;

class Globals extends Analyzer {
    public function analyze() {
        // Global in a function
        $this->atomIs('Globaldefinition')
             ->savePropertyAs('code', 'name')
             ->goToFunction(self::FUNCTIONS_ALL)
             ->outIs('BLOCK')
             ->atomInsideNoDefinition(self::VARIABLES_ALL)
             ->samePropertyAs('code', 'name', self::CASE_SENSITIVE);
        $this->prepareQuery();

        // Global in a function
        $this->atomIs('Phpvariable')
             ->codeIs('$GLOBALS', self::TRANSLATE, self::CASE_SENSITIVE)
             ->inIs('VARIABLE');
        $this->prepareQuery();

        // Using $GLOBALS as a whole is probably a bad idea but possible
        $this->atomIs('Phpvariable')
             ->codeIs('$GLOBALS', self::TRANSLATE, self::CASE_SENSITIVE)
             ->hasNoIn('VARIABLE');
        $this->prepareQuery();

        // implicit global
        $superglobals = $this->loadIni('php_superglobals.ini', 'superglobal');
        $this->atomIs(array('Variable', 'Variableobject', 'Variablearray', 'Globaldefinition'))
             ->codeIsNot($superglobals, self::TRANSLATE, self::CASE_SENSITIVE)
             ->hasNoClassInterfaceTrait()
             ->hasNoFunction(self::FUNCTIONS_ALL);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Variables;

use Exakat\Analyzer\Analyzer;

class StrangeName extends Analyzer {
    public function analyze() {
        $names = $this->loadIni('php_strange_names.ini', 'variables');

        // typos, like $_PSOT
        $this->atomIs(self::VARIABLES_ALL)
             ->codeIs($names);
        $this->prepareQuery();

        // multiple identical characters : $aaab
        // skip . as it may be a variadic
        $this->atomIs(self::CONTAINERS_ROOTS)
             ->regexIs('fullcode', '([^\\\\.])\\\\1{2,}');
        $this->prepareQuery();

        // Using strange type of data
        $this->atomIs(self::VARIABLES_SCALAR)
             ->outIs('NAME')
             ->atomIs(array('Integer', 'Boolean', 'Float', 'Null', 'Arrayliteral', 'Comparison', 'Bitshift', 'Typecast'))
             ->tokenIsNot('T_STRING_CAST')
             ->back('first');
        $this->prepareQuery();


/*
    // base for letter diversity : this needs nore testing, as diversity drops with size of the name
        $this->atomIs(self::VARIABLES_ALL)
             ->raw('filter{
it.get().value("code").drop(1).split("").toUnique().size() / it.get().value("code").drop(1).length()
             }');
        $this->prepareQuery();
*/
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Variables;

use Exakat\Analyzer\Analyzer;

class ComplexDynamicNames extends Analyzer {
    public function analyze() {
        // $a->{strtolower($a)};
        $this->atomIs('Member')
             ->outIs('MEMBER')
             ->atomIs('Block')
             ->outIs('CODE')
             ->atomIsNot(self::CONTAINERS)
             ->back('first');
        $this->prepareQuery();

        // $a->{strtolower($a)}();
        $this->atomIs('Methodcall')
             ->outIs('METHOD')
             ->outIs('NAME')
             ->atomIs('Block')
             ->outIs('CODE')
             ->atomIsNot(self::CONTAINERS)
             ->back('first');
        $this->prepareQuery();

        // ${strtolower($a)};
        $this->atomIs('Variable')
             ->tokenIs('T_DOLLAR')
             ->outIs('NAME')
             ->atomIsNot(self::CONTAINERS)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Variables;

use Exakat\Analyzer\Analyzer;

class Php7IndirectExpression extends Analyzer {
    protected $phpVersion = '7.0+';

    public function analyze() {
//$$foo['bar']['baz']	${$foo['bar']['baz']}	($$foo)['bar']['baz']
        $this->atomIs('Variable')
             ->tokenIs('T_DOLLAR')
             ->outIs('NAME')
             ->atomIs('Array')
             ->outIs('VARIABLE')
             ->atomIs('Array')
             ->back('first');
        $this->prepareQuery();

//$foo->$bar['baz']	$foo->{$bar['baz']}	($foo->$bar)['baz']
        $this->atomIs('Array')
             ->hasNoIn('NAME')
             ->outIs('VARIABLE')
             ->atomIs('Member')
             ->outIs('MEMBER')
             ->atomIs('Variable')
             ->back('first');
        $this->prepareQuery();

//Foo::$bar['baz']();
        $this->atomIs('Functioncall')
             ->outIs('NAME')
             ->atomIs('Array')
             ->outIs('VARIABLE')
             ->atomIs(array('Member', 'Staticproperty'))
             ->outIs('MEMBER')
             ->atomIs(array('Variable', 'Staticpropertyname'))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Variables;

use Exakat\Analyzer\Analyzer;

class UncommonEnvVar extends Analyzer {
    public function analyze() {
        $classicEnv = $this->loadIni('environment_vars.ini', 'index');

        // $_ENV['USER'];
        $this->atomIs('Phpvariable')
             ->codeIs('$_ENV', self::TRANSLATE, self::CASE_SENSITIVE)
             ->inIs('VARIABLE')
             ->as('result')
             ->outIs('INDEX')
             ->atomIs('String')
             ->noDelimiterIsNot($classicEnv)
             ->back('result');
        $this->prepareQuery();

        // getenv() / putenv()
        $this->atomFunctionIs(array('\getenv', '\putenv'))
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String')
             ->noDelimiterIsNot($classicEnv)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Variables;

use Exakat\Analyzer\Analyzer;

class VariableVariables extends Analyzer {
    public function analyze() {
        // $$a ${$x}
        $this->atomIs(self::VARIABLES_USER)
             ->tokenIs(array('T_DOLLAR', 'T_DOLLAR_OPEN_CURLY_BRACES'));
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Variables;

use Exakat\Analyzer\Analyzer;

class WrittenOnlyVariable extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/CreateCompactVariables',
                    );
    }

    public function analyze() {
        // function foo($a) { $a = 1; $a += 2;}
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs(array('ARGUMENT', 'DEFINITION'))
             ->atomIs(array('Parameter', 'Variabledefinition', 'Globaldefinition', 'Staticdefinition')) // static and global ?
             ->outIsIE('NAME')
             ->not(
                $this->side()
                     ->outIs('DEFINITION')
                     ->optional(
                        $this->side()
                             ->inIs(array('VARIABLE', 'OBJECT'))
                             ->atomIs('Array', 'Member')
                     )
                     ->is('isRead', true)
              )

              // variable is read in a compact()
             ->not(
                $this->side()
                     ->outIs('DEFINITION')
                     ->atomIs('String')
              )

             ->filter(
                $this->side()
                     ->outIs('DEFINITION')
                     ->atomIs(self::VARIABLES_USER)
                     ->optional(
                        $this->side()
                             ->inIs(array('VARIABLE', 'OBJECT'))
                             ->atomIs('Array', 'Member')
                     )
                     ->is('isModified', true)
              )
              ->outIs('DEFINITION')
              ->atomIs(self::VARIABLES_USER);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Variables;

use Exakat\Analyzer\Analyzer;

class UniqueUsage extends Analyzer {
    public function analyze() {
        // function foo() { $a = 1; echo $a;}
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('DEFINITION')
             ->atomIs('Variabledefinition')
             ->raw(<<<'GREMLIN'
 where( __.out("DEFINITION").has("isRead", true).count().is(eq(1)))
.where( __.out("DEFINITION").has("isModified", true).count().is(eq(1)))
GREMLIN
)
             ->outIs('DEFINITION');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Variables;

use Exakat\Analyzer\Dump\AnalyzerResults;

class RealVariables extends AnalyzerResults {
    protected $analyzerName = 'RealVariables';

    protected $analyzerTable   = 'results';

    public function analyze() {
        // $a = 1;
        $this->atomIs(array('Variabledefinition', 'Parameter', 'Globaldefinition', 'Static'))
             ->outIs(array('DEFINITION', 'NAME', 'GLOBAL', 'STATIC'))
             ->toResults();
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
namespace Exakat\Analyzer\Variables;

use Exakat\Analyzer\Analyzer;

class CloseNaming extends Analyzer {

    public function analyze() {
        $this->atomIs(array('Variable', 'Variablearray', 'Variableobject'))
             ->tokenIs('T_VARIABLE')
             ->values('fullcode')
             ->unique();
        $res = $this->rawQuery();

        $variables = $res->toArray();
        if (empty($variables)) {
            return;
        }

        $closeVariables = array();
        foreach($variables as $v1) {
            if (strlen($v1) > 256) { continue; }
            foreach($variables as $v2) {
                if (strlen($v2) > 256) { continue; }

                if ($v1 === $v2) { continue; }
                if ($v1 . 's' === $v2) { continue; }
                if ($v1 === $v2 . 's') { continue; }

                if (levenshtein($v1, $v2) === 1) {
                    $closeVariables[$v1] = 1;
                    $closeVariables[$v2] = 1;
                }
            }
        }

        $closeVariables = array_keys($closeVariables);
        $closeVariables = array_filter( $closeVariables, function ($x) { return strlen($x) > 3; });
        if (!empty($closeVariables)) {
            $this->atomIs(array('Variable', 'Variablearray', 'Variableobject'))
                 ->is('fullcode', $closeVariables);
            $this->prepareQuery();
        }

        $uniques = array();
        foreach($variables as $u) {
            $v = mb_strtolower($u);
            array_collect_by($uniques, $v, $u);
        }

        $uniques = array_filter($uniques, function ($x) { return count($x) > 1; });
        if (!empty($uniques)) {
            $doubles = array_merge(...array_values($uniques));

            $this->atomIs(self::VARIABLES_USER)
                 ->is('fullcode', $doubles);
            $this->prepareQuery();
        }

        // Identical, except for _ in the name
        $cleaned = array_map(function ($x) { return strtr('_', '', $x); }, $variables);
        $counts = array_count_values($cleaned);
        $doubles = array_filter($counts, function ($x) { return $x > 1; });

        if (!empty($uniques)) {
            $this->atomIs(self::VARIABLES_USER)
                 ->is('fullcode', $doubles);
            $this->prepareQuery();
        }

        // Identical, except for numbers
        $cleaned = array_map(function ($x) { return preg_replace('/\d/', '', $x); }, $variables);
        $counts = array_count_values($cleaned);
        $doubles = array_filter($counts, function ($x) { return $x > 1; });

        if (!empty($doubles)) {
            $this->atomIs(self::VARIABLES_USER)
                 ->is('fullcode', $doubles);
            $this->prepareQuery();
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Variables;

use Exakat\Analyzer\Analyzer;

class StaticVariables extends Analyzer {
    public function analyze() {
        // function foo() { static $x= 1;}
        $this->atomIs('Staticdefinition');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Variables;

use Exakat\Analyzer\Analyzer;

class UndefinedVariable extends Analyzer {
    public function analyze() {
        // function foo() { echo $b;}
        $this->atomIs('Variabledefinition')
             ->not(
                $this->side()
                     ->inIs('DEFINITION')
                     ->atomIs(self::FUNCTIONS_ALL)
                     ->outIs('BLOCK')
                     ->atomInsideNoDefinition(array('Eval', 'Include'))
             )
             // Not from extract
             ->not(
                $this->side()
                     ->inIs('DEFINITION')
                     ->atomIs(self::FUNCTIONS_ALL)
                     ->outIs('BLOCK')
                     ->atomInsideNoDefinition('Functioncall')
                     ->functioncallIs('\\extract')
             )

             // Not from foreach
             ->not(
                $this->side()
                     ->outIs('DEFINITION')
                     ->inIs('VALUE')
                     ->atomIs('Foreach')
             )
             ->filter(
                $this->side()
                     ->outIs('DEFINITION')
                     ->atomIs('Variable')
                     ->is('isRead', true)
             )
             ->not(
                $this->side()
                     ->outIs('DEFINITION')
                     ->atomIs('Variable')
                     ->is('isModified', true)
             )
             ->outIs('DEFINITION');
        $this->prepareQuery();

        // function foo() { $b->c = 2;}
        $this->atomIs('Variabledefinition')
             ->not(
                $this->side()
                     ->inIs('DEFINITION')
                     ->atomIs(self::FUNCTIONS_ALL)
                     ->outIs('BLOCK')
                     ->atomInsideNoDefinition(array('Eval', 'Include'))
             )
             ->not(
                $this->side()
                     ->inIs('DEFINITION')
                     ->atomIs(self::FUNCTIONS_ALL)
                     ->outIs('BLOCK')
                     ->atomInsideNoDefinition('Functioncall')
                     ->functioncallIs('\\extract')
             )
             ->filter(
                 $this->side()
                      ->outIs('DEFINITION')
                      ->atomIs(array('Variableobject', 'Variablearray'))
             )
            ->not(
                $this->side()
                     ->outIs('DEFINITION')
                     ->atomIs('Variable')
                     ->is('isModified', true)
            )
            ->outIs('DEFINITION')
            ->analyzerIsNot('self');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Variables;

use Exakat\Analyzer\Analyzer;

class VariablePhp extends Analyzer {
    public function analyze() {
        $variables = $this->loadIni('php_variables.ini', 'variables');

        $this->atomIs('Phpvariable')
             ->codeIs($variables, self::TRANSLATE, self::CASE_SENSITIVE);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Arrays;

use Exakat\Analyzer\Analyzer;

class WithCallback extends Analyzer {
    public function analyze() {
        // $clean = array_filter($array);
        $list = array('\\array_map',
                      '\\array_walk',
                      '\\array_reduce',
                      '\\array_filter',
                      );
        $this->atomFunctionIs($list);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Arrays;

use Exakat\Analyzer\Analyzer;

class StringInitialization extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/CreateDefaultValues',
                    );
    }

    public function analyze() {
        // $a = ''; $a[1] = 3;
        // const C = ''; $a = C; $a[1] = 3;
        $this->atomIs(array('Globaldefinition', 'Staticdefinition', 'Phpvariable', 'Parameter', 'Propertydefinition', 'Virtualproperty', 'Variabledefinition'))
             ->outIs('DEFAULT')
             ->atomIs(array('String', 'Heredoc', 'Concatenation'), self::WITH_CONSTANTS)
             ->back('first')
             ->outIsIE('NAME')
             ->outIs('DEFINITION')
             ->hasIn(array('VARIABLE', 'APPEND'));
        $this->prepareQuery();

        // default are on Parametername when they are not explicit
        $this->atomIs('Parameter')
             ->outIs('NAME')
             ->outIs('DEFAULT')
             ->atomIs(array('String', 'Heredoc', 'Concatenation'), self::WITH_CONSTANTS)
             ->back('first')
             ->outIsIE('NAME')
             ->outIs('DEFINITION')
             ->hasIn(array('VARIABLE', 'APPEND'));
        $this->prepareQuery();

        // if (is_numeric($a)) { $a[] = $a; }
        $this->atomIs('Ifthen')
             ->outIs('CONDITION')
             ->outIsIE(array('CODE', 'LEFT', 'RIGHT')) // skip () and assignations
             ->functioncallIs(array('\is_string', '\is_numeric', '\is_int', '\is_integer', '\is_double', '\is_float', '\is_scalar', '\is_real'))
             ->back('first')
             ->outIs('THEN')
             ->outIs('EXPRESSION')
             ->outis('LEFT')
             ->atomIs('Arrayappend')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Arrays;

use Exakat\Analyzer\Analyzer;

class EmptySlots extends Analyzer {

    public function analyze() {
        // array(1,2,3, ) or [ 4,5, ];
        $this->atomIs('Arrayliteral')
             ->regexIs('fullcode', ',  [\\\\)|\\\\]]\$');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Arrays;

use Exakat\Analyzer\Analyzer;

class ShouldPreprocess extends Analyzer {
    public function analyze() {
        // $a = array(); $a[1] = 2;
        $this->atomIs('Assignation')
             ->codeIs('=')
             ->outIs('LEFT')
             ->atomIs('Variable')
             ->savePropertyAs('fullcode', 'tableau')
             ->inIs('LEFT')
             ->outIs('RIGHT')
             ->atomIs('Arrayliteral')
             ->inIs('RIGHT')
             ->nextSibling()
             ->atomIs('Assignation')
             ->codeIs('=')
             ->outIs('LEFT')
             ->atomIs('Array')
             ->outIs('INDEX')
             ->isLiteral()
             ->inIs('INDEX')
             ->outIs('VARIABLE')
             ->samePropertyAs('fullcode', 'tableau')
             ->back('first');
        $this->prepareQuery();

        // $a->b = array(); $a->b[1] = 2;
        $this->atomIs('Assignation')
             ->codeIs('=')
             ->outIs('LEFT')
             ->atomIs(array('Member', 'Staticproperty'))
             ->outIs(array('OBJECT', 'CLASS'))
             ->savePropertyAs('fullcode', 'object')
             ->inIs(array('OBJECT', 'CLASS'))
             ->outIs('MEMBER')
             ->savePropertyAs('fullcode', 'property')
             ->inIs('MEMBER')
             ->inIs('LEFT')
             ->outIs('RIGHT')
             ->atomIs('Arrayliteral')
             ->inIs('RIGHT')
             ->nextSibling()
             ->atomIs('Assignation')
             ->codeIs('=')
             ->outIs('LEFT')
             ->atomIs('Array')
             ->outIs('INDEX')
             ->isLiteral()
             ->inIs('INDEX')
             ->outIs('VARIABLE')
             ->atomIs(array('Member', 'Staticproperty'))
             ->outIs(array('OBJECT', 'CLASS'))
             ->samePropertyAs('fullcode', 'object')
             ->inIs(array('OBJECT', 'CLASS'))
             ->outIs('MEMBER')
             ->samePropertyAs('fullcode', 'property')
             ->back('first');
        $this->prepareQuery();

        // same as above with $array[]
        // in case this is the first one in the sequence
        $this->atomIs('Assignation')
             ->codeIs('=')
             ->outIs('LEFT')
             ->atomIs(array('Variable', 'Member', 'Staticproperty'))
             ->savePropertyAs('fullcode', 'tableau')
             ->inIs('LEFT')
             ->outIs('RIGHT')
             ->atomIs('Arrayliteral')
             ->inIs('RIGHT')
             ->nextSibling()
             ->atomIs('Assignation')
             ->codeIs('=')
             ->outIs('LEFT')
             ->atomIs('Arrayappend')
             ->outIs('APPEND')
             ->samePropertyAs('fullcode', 'tableau')
             ->back('first');
        $this->prepareQuery();

        // $a->b = array(); $a->b[] = 2;
        $this->atomIs('Assignation')
             ->codeIs('=')
             ->outIs('LEFT')
             ->atomIs('Member')
             ->outIs('OBJECT')
             ->savePropertyAs('fullcode', 'object')
             ->inIs('OBJECT')
             ->outIs('MEMBER')
             ->savePropertyAs('fullcode', 'property')
             ->inIs('MEMBER')
             ->inIs('LEFT')
             ->outIs('RIGHT')
             ->atomIs('Arrayliteral')
             ->inIs('RIGHT')
             ->nextSibling()
             ->atomIs('Assignation')
             ->codeIs('=')
             ->outIs('LEFT')
             ->atomIs('Member')
             ->outIs('OBJECT')
             ->samePropertyAs('fullcode', 'object')
             ->inIs('OBJECT')
             ->outIs('MEMBER')
             ->atomIs('Arrayappend')
             ->outIs('APPEND')
             ->samePropertyAs('fullcode', 'property')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Arrays;

use Exakat\Analyzer\Analyzer;

class NonConstantArray extends Analyzer {
    public function dependsOn(): array {
        return array('Constants/IsExtConstant',
                    );
    }

    public function analyze() {
        // Array, outside a string
        $this->atomIs('Array')
             ->hasNoParent('String', 'CONCAT')
             ->outIs('INDEX')
             ->atomIs(self::STATIC_NAMES)
             ->analyzerIsNot('Constants/IsExtConstant')
             ->hasNoConstantDefinition();
        $this->prepareQuery();

        // Array, inside a string
        $this->atomIs('Array')
             ->hasParent(array('String', 'Heredoc'), 'CONCAT')
             ->tokenIs(array('T_DOLLAR_OPEN_CURLY_BRACES', 'T_CURLY_OPEN'))
             ->outIs('INDEX')
             ->atomIs(self::STATIC_NAMES)
             ->analyzerIsNot('Constants/IsExtConstant')
             ->hasNoConstantDefinition();
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Arrays;

use Exakat\Analyzer\Analyzer;

class EmptyFinal extends Analyzer {
    public function analyze() {
        $mapping = <<<'GREMLIN'
if( it.get().value('fullcode').toString().reverse().take(4).reverse() == ',  )' ||
    it.get().value('fullcode').toString().reverse().take(4).reverse() == ',  ]') {
        x2 = 'trailing';
    } else {
        x2 = 'full';
    }
    x2;
     
GREMLIN;
        $storage = array('Empty'  => 'trailing',
                         'Filled' => 'full');

        $this->atomIs('Arrayliteral')
             ->raw('map{ ' . $mapping . ' }')
             ->raw('groupCount("gf").cap("gf").sideEffect{ s = it.get().values().sum(); }');
        $types = $this->rawQuery()->toArray();

        if (empty($types)) {
            return;
        }

        $types = $types[0];

        $store = array();
        $total = 0;
        foreach($storage as $key => $v) {
            $c = empty($types[$v]) ? 0 : $types[$v];
            $store[] = array('key'   => $key,
                             'value' => $c);
            $total += $c;
        }
        $this->datastore->addRowAnalyzer($this->analyzerQuoted, $store);

        if ($total === 0) {
            return;
        }

        $types = array_filter($types, function ($x) use ($total) { return $x > 0 && $x / $total < 0.1; });
        $types = array_keys($types);

        $this->atomIs('Arrayliteral')
             ->raw('map{ ' . $mapping . ' }')
             ->raw('filter{ x2 in ***}', $types)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Arrays;

use Exakat\Analyzer\Analyzer;

class Phparrayindex extends Analyzer {

    public function analyze() {
        $variables = $this->loadIni('php_variables.ini', 'variables');

        $this->atomIs('Array')
             ->outIs('VARIABLE')
             ->codeIs($variables, self::TRANSLATE, self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Arrays;

use Exakat\Analyzer\Analyzer;

class MassCreation extends Analyzer {
    public function analyze() {
        // $x[1] = 2; $x['b'] = 2; $x['dc'] = 42; (3 at least)
        $this->atomIs('Array')
             ->outIs('VARIABLE')
             ->savePropertyAs('code', 'variable')
             ->back('first')
             ->inIs('LEFT')
             ->atomIs('Assignation')
             ->nextSibling()
             ->as('second')
             ->atomIs('Assignation')
             ->codeIs('=', self::TRANSLATE, self::CASE_INSENSITIVE)
             ->outIs('LEFT')
             ->atomIs('Array')
             ->outIs('VARIABLE')
             ->samePropertyAs('code', 'variable')
             ->back('second')
             ->nextSibling()
             ->as('third')
             ->atomIs('Assignation')
             ->codeIs('=', self::TRANSLATE, self::CASE_INSENSITIVE)
             ->outIs('LEFT')
             ->atomIs('Array')
             ->outIs('VARIABLE')
             ->samePropertyAs('code', 'variable')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Arrays;

use Exakat\Analyzer\Analyzer;

class ArrayBracketConsistence extends Analyzer {
    protected $array_ratio = 10;

    public function analyze() {
        $this->array_ratio = readIniPercentage((string) $this->array_ratio);

        $mapping = <<<'GREMLIN'
x2 = it.get().value("token");
GREMLIN;
        $storage = array('array()' => 'T_ARRAY',
                         '[]'      => 'T_OPEN_BRACKET');

        $this->atomIs('Arrayliteral')
             ->raw('map{ ' . $mapping . ' }')
             ->raw('groupCount("gf").cap("gf").sideEffect{ s = it.get().values().sum(); }');
        $types = $this->rawQuery()->toArray();

        if (empty($types)) {
            return;
        }
        $types = $types[0];

        $store = array();
        $total = 0;
        foreach($storage as $key => $v) {
            $c = empty($types[$v]) ? 0 : $types[$v];
            $store[] = array('key'   => $key,
                             'value' => $c);
            $total += $c;
        }
        $this->datastore->addRowAnalyzer($this->analyzerQuoted, $store);

        if ($total === 0) {
            return;
        }

        $types = array_filter($types, function ($x) use ($total) { return $x > 0 && $x / $total < $this->array_ratio; });
        if (empty($types)) {
            return;
        }
        $types = array_keys($types);

        $this->atomIs('Arrayliteral')
             ->raw('sideEffect{ ' . $mapping . ' }')
             ->raw('filter{ x2 in ***}', $types)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Arrays;

use Exakat\Analyzer\Analyzer;

class RandomlySortedLiterals extends Analyzer {
    public function analyze() {
        $uniqueArrays = $this->query(<<<'GREMLIN'
g.V().hasLabel("Arrayliteral")
     .has("constant", true)
     .filter{ it.get().value("count") > 2 }
     .not( where( out("ARGUMENT").has("rank", 0).hasLabel("Void")) )
     .where( __.sideEffect{ liste = [];}
               .out("ARGUMENT")
               .not( hasLabel("Void") )
               .sideEffect{ 
                    if (it.get().label() == "String") {
                        liste.add(it.get().value("noDelimiter"));
                     } else {
                        liste.add(it.get().value("fullcode"));
                     }
                }
               .count()
          )
     .map{ liste.sort(false); }
     .groupCount("m").cap("m").toList()[0].findAll{ a,b -> b > 1}.keySet();
GREMLIN
)->toArray();
        if (empty($uniqueArrays)) {
            return;
        }

        $unsortedArrays = $this->query(<<<'GREMLIN'
g.V().hasLabel("Arrayliteral")
     .has("constant", true)
     .filter{ it.get().value("count") > 2 }
     .not( where( out("ARGUMENT").has("rank", 0).hasLabel("Void")) )
     .where( __.sideEffect{ liste = [];}
               .out("ARGUMENT").order().by('rank')
               .not( hasLabel("Void") )
               .sideEffect{ 
                    if (it.get().label() == "String") {
                        liste.add(it.get().value("noDelimiter"));
                     } else {
                        liste.add(it.get().value("fullcode"));
                     }
                }
               .count()
          )
     .filter{ liste.sort(false) in arg; }

     .map{ liste.sort(false); }
     .groupCount("n")

     .map{ liste; }
     .groupCount("m").cap("m", "n")

     .sideEffect{ m = it.get()['m'] }
     .sideEffect{ n = it.get()['n'] }.map{m;}.toList()[0].findAll{ a,b -> b != n[a.sort(false)] }.keySet()
GREMLIN
, array('arg' => $uniqueArrays))->toArray();
        if (empty($unsortedArrays)) {
            return;
        }

        $this->atomIs('Arrayliteral')
             ->is('constant', true)
             ->outWithRank('ARGUMENT', 0)
             ->atomIsNot('Void')
             ->back('first')
             ->raw('where( __.sideEffect{ liste = [];}
                             .out("ARGUMENT").order().by("rank")
                             .not( hasLabel("Void") )
                             .sideEffect{ 
                                  if (it.get().label() == "String") {
                                    liste.add(it.get().value("noDelimiter"));
                                 } else {
                                    liste.add(it.get().value("fullcode"));
                                }
                             }
                             .count())')
             ->raw('filter{ x = ***;  liste in x; }', $unsortedArrays)
             //.values() is not needed for tinkergraph
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Arrays;

use Exakat\Analyzer\Analyzer;

class WeirdIndex extends Analyzer {
    public function analyze() {

        // $a[' a']
        $this->atomIs('Array')
             ->outIs('INDEX')
             ->atomIs('String', self::WITH_CONSTANTS)
             ->regexIs('noDelimiter', '^\\\s')
             ->back('first');
        $this->prepareQuery();

        // $a['a ']
        $this->atomIs('Array')
             ->analyzerIsNot('self')
             ->outIs('INDEX')
             ->atomIs('String', self::WITH_CONSTANTS)
             ->regexIs('noDelimiter', '\\\s\\$')
             ->back('first');
        $this->prepareQuery();

        // case ' a'
        $this->atomIs('Case')
             ->outIs('CASE')
             ->atomIs('String', self::WITH_CONSTANTS)
             ->regexIs('noDelimiter', '^\\\s')
             ->back('first');
        $this->prepareQuery();

        // case 'a '
        $this->atomIs('Case')
             ->analyzerIsNot('self')
             ->outIs('CASE')
             ->atomIs('String', self::WITH_CONSTANTS)
             ->regexIs('noDelimiter', '\\\s\\$')
             ->back('first');
        $this->prepareQuery();

        // array(' a' => 2)
        $this->atomIs('Arrayliteral')
             ->outIs('ARGUMENT')
             ->atomIs('Keyvalue')
             ->as('results')
             ->outIs('INDEX')
             ->atomIs('String', self::WITH_CONSTANTS)
             ->regexIs('noDelimiter', '^\\\s')
             ->back('results');
        $this->prepareQuery();

        // array( 'a ' => 3)
        $this->atomIs('Arrayliteral')
             ->outIs('ARGUMENT')
             ->atomIs('Keyvalue')
             ->as('results')
             ->analyzerIsNot('self')
             ->outIs('INDEX')
             ->atomIs('String', self::WITH_CONSTANTS)
             ->regexIs('noDelimiter', '\\\s\\$')
             ->back('results');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Arrays;

use Exakat\Analyzer\Analyzer;

class NoSpreadForHash extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/PropagateConstants',
                    );
    }

    public function analyze() {
        // ...['a' => 3]
        $this->atomIs('Arrayliteral', self::WITHOUT_CONSTANTS)
             ->is('variadic', true)
             ->outIs('ARGUMENT')
             ->atomIs('Keyvalue')
             ->outIs('INDEX')
             ->atomIs(array('String', 'Heredoc', 'Concatenation'), self::WITH_CONSTANTS)
             ->is('intval', 0)
             ->back('first');
        $this->prepareQuery();

        // const A = ['a' => 3]; ...A
        $this->atomIs(self::STATIC_NAMES, self::WITHOUT_CONSTANTS)
             ->is('variadic', true)
             ->inIs('DEFINITION')
             ->outIs('VALUE')
             ->atomIs('Arrayliteral')
             ->outIs('ARGUMENT')
             ->atomIs('Keyvalue')
             ->outIs('INDEX')
             ->atomIs(array('String', 'Heredoc', 'Concatenation'), self::WITH_CONSTANTS)
             ->is('intval', 0)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Arrays;

use Exakat\Analyzer\Analyzer;

class GettingLastElement extends Analyzer {
    public function analyze() {
        // current(array_slice($a, -1));
        $this->atomFunctionIs('\\current')
             ->outWithRank('ARGUMENT', 0)
             ->functioncallIs('\\array_slice')
             ->outWithRank('ARGUMENT', 1)
             ->codeIs('-1')
             ->back('first');
        $this->prepareQuery();

        // array_slice($a, -1)[0];
        $this->atomIs('Array')
             ->outIs('INDEX')
             ->codeIs('0')
             ->back('first')
             ->outIs('VARIABLE')
             ->functioncallIs(array('\\array_slice', '\\array_reverse'))
             ->outWithRank('ARGUMENT', 1)
             ->codeIs('-1')
             ->back('first');
        $this->prepareQuery();

        //$b = array_reverse($a)[0];
        $this->atomIs('Array')
             ->outIs('INDEX')
             ->codeIs('0')
             ->back('first')
             ->outIs('VARIABLE')
             ->functioncallIs('\\array_reverse')
             ->back('first');
        $this->prepareQuery();

        //$b = array_pop($a);$a[] = $b;
        $this->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomFunctionIs('\\array_pop')
             ->outWithRank('ARGUMENT', 0)
             ->savePropertyAs('code', 'var')
             ->back('first')
             ->nextSibling()
             ->atomIs('Assignation')
             ->outIs('LEFT')
             ->atomIs('Arrayappend')
             ->outIs('APPEND')
             ->samePropertyAs('code', 'var')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Arrays;

use Exakat\Analyzer\Analyzer;

class TooManyDimensions extends Analyzer {
    protected $maxDimensions = 2;

    public function analyze() {
        // $a[1][2][3][4]
        // $a[1][ ][3][4]
        $this->atomIs(array('Variablearray', 'Phpvariable', 'Member', 'Staticproperty'))
             ->hasIn('VARIABLE')
             ->countArrayDimension('l')
             ->raw('filter{ l > ***}', $this->maxDimensions);
        $this->prepareQuery();

        // $a[1][ ][3] = array()
        $this->atomIs(array('Variablearray', 'Phpvariable', 'Member', 'Staticproperty'))
             ->hasIn('VARIABLE')
             ->countArrayDimension('l')
             ->raw('filter{ l > ***}', $this->maxDimensions - 1)
             ->inIs('LEFT')
             ->atomIs('Assignation')
             ->as('results')
             ->outIs('RIGHT')
             ->atomIs('Arrayliteral')
             ->back('results');
        $this->prepareQuery();

        // $a[1][ ][3] = array()
        $this->atomIs(array('Variablearray', 'Phpvariable', 'Member', 'Staticproperty'))
             ->hasIn('VARIABLE')
             ->countArrayDimension('l')
             ->raw('filter{ l > ***}', $this->maxDimensions - 1)
            ->inIs('LEFT')
            ->atomIs('Assignation')
            ->as('results')
            ->outIs('RIGHT')
            ->atomIs(self::CALLS)
            ->inIs('DEFINITION')
            ->outIs('RETURNTYPE')
            ->fullnspathIs('\\array')
            ->back('results');
        $this->prepareQuery();

        $returnTypes = $this->methods->getFunctionsByReturn();
        // $a[1][ ][3] = array()
        $this->atomIs(array('Variablearray', 'Phpvariable', 'Member', 'Staticproperty'))
             ->hasIn('VARIABLE')
             ->countArrayDimension('l')
             ->raw('filter{ l > ***}', $this->maxDimensions - 1)
            ->inIs('LEFT')
            ->atomIs('Assignation')
            ->as('results')
            ->outIs('RIGHT')
            ->functioncallIs($returnTypes['array'])
            ->back('results');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Arrays;

use Exakat\Analyzer\Analyzer;

class ArrayNSUsage extends Analyzer {
    public function analyze() {
        // $x = [1,2,3];
        $this->atomIs('Arrayliteral')
             ->tokenIs('T_OPEN_BRACKET');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Arrays;

use Exakat\Analyzer\Analyzer;

class MistakenConcatenation extends Analyzer {
    public function analyze() {
        // $array = array('a', 'b', 'c'. 'd');
        $this->atomIs('Arrayliteral')
             ->hasChildren('String', 'ARGUMENT')
             ->outIs('ARGUMENT')
             ->atomIs('Concatenation')
             ->hasNoChildren(array_merge(self::CONTAINERS, self::FUNCTIONS_ALL, array('Identifier', 'Nsname', 'Cast', 'Parenthesis')), 'CONCAT')
             ->back('first');
        $this->prepareQuery();

        // $array = array(1, 2, 3, 4.5, );
        $this->atomIs('Arrayliteral')
             ->hasChildren('Integer', 'ARGUMENT')
             ->filter(
                $this->side()
                     ->outIs('ARGUMENT')
                     ->atomIs('Float')
                     ->count()
                     ->isEqual(1)
             )
             ->outIs('ARGUMENT')
             ->atomIs('Float')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Arrays;

use Exakat\Analyzer\Analyzer;

class MultipleIdenticalKeys extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/PropagateConstants',
                    );
    }

    public function analyze() {
        // array('a' => 1, 'b' = 2)
        $this->atomIs('Arrayliteral')
             ->isMore('count', 1)
            // first quick check to skip useless check later
             ->not(
                $this->side()
                     ->outIs('ARGUMENT')
                     ->atomIsNot('Keyvalue')
             )
             ->raw(<<<'GREMLIN'
where( 
    __.sideEffect{ counts = [:]; }
      .out("ARGUMENT").hasLabel("Keyvalue").out("INDEX")
      .hasLabel("String", "Integer", "Float", "Boolean", "Null", "Staticconstant", "Staticclass", "Identifier", "Nsname")
      .not(where(__.out("CONCAT")) )
      .or(__.has("intval"), __.hasLabel("String", "Staticclass").has("noDelimiter"))
      .sideEffect{ 
            if (it.get().label() in ["String", "Staticclass"] ) { 
                k = it.get().value("noDelimiter"); 
                if (k.isInteger()) {
                    k = k.toInteger();
                    
                    if (k.toString().length() != it.get().value("noDelimiter").length()) {
                        k = it.get().value("noDelimiter"); 
                    }
                }
            } 
            else { k = it.get().value("intval"); } 

            if (counts[k] == null) { 
                counts[k] = 1; 
            } else { 
                counts[k]++; 
            }
        }
        .map{ counts.findAll{it.value > 1}; }.unfold().count().is(neq(0))
)
GREMLIN
)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Arrays;

use Exakat\Analyzer\Analyzer;

class Multidimensional extends Analyzer {

    public function analyze() {
        // $x[1][2], $x[1][2][3], $x[1][2][3][4]
        $this->atomIs('Array')
             ->outIs('VARIABLE')
             ->atomIs('Array')
             ->back('first')
             ->inIsNot('VARIABLE')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Arrays;

use Exakat\Analyzer\Analyzer;

class AmbiguousKeys extends Analyzer {

    public function analyze() {
        $this->atomIs('Arrayliteral')
             ->raw(<<<'GREMLIN'
where(
    __.sideEffect{ counts = [:]; integers = [:]; strings = [:]; }
      .out("ARGUMENT").hasLabel("Keyvalue").out("INDEX")
      .hasLabel("String", "Integer").not( where(__.out("CONCAT") ) )
      .filter{ 
            if (it.get().label() == "String" && "noDelimiter" in it.get().keys()) { 
                k = it.get().value("noDelimiter"); 
                if (counts[k] == null) { 
                    counts[k] = ["string"]; 
                    false;
                } else if (counts[k] == ["integer"]) { 
                    true;
                } else { 
                    false;
                }
            } else { 
                k = it.get().value("fullcode"); 
                if (counts[k] == null) { 
                    counts[k] = ["integer"]; 
                    false;
                } else if (counts[k] == ["string"]) { 
                    counts[k].add("string"); 
                    true;
                } else { 
                    false;
                }
            }
        }
)
GREMLIN
);
        $this->prepareQuery();

        // $x = [1.0 => 2];
        $this->atomIs('Arrayliteral')
             ->outIs('ARGUMENT')
             ->atomIs('Keyvalue')
             ->outIs('INDEX')
             ->atomIs(array('Float', 'Null', 'Boolean'))
             ->back('first');
        $this->prepareQuery();

        // $x[1.0] = 2;
        $this->atomIs('Array')
             ->outIs('INDEX')
             ->atomIs(array('Float', 'Null', 'Boolean'))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Arrays;

use Exakat\Analyzer\Analyzer;

class SliceFirst extends Analyzer {
    public function analyze() {
        $sliceFunctions = array('\array_slice', '\array_splice', '\array_chunk');
        $manipulatingFunctions = array('\\array_change_key_case', '\\array_flip', '\\array_keys', '\\array_values',
                                       '\\array_filter', '\\array_walk', '\\array_map', '\\array_search',
                                      );

        // array_slice(array_values($array), 2, 5);
        $this->atomFunctionIs($sliceFunctions)
             ->outWithRank('ARGUMENT', 0)
             ->atomInsideNoDefinition('Functioncall')
             ->fullnspathIs($manipulatingFunctions)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Arrays;

use Exakat\Analyzer\Dump\AnalyzerResults;

class Arrayindex extends AnalyzerResults {
    protected $analyzerName = 'Arrayindex';

    public function analyze() {

        // $a[1]
        $this->atomIs('Array')
             ->outIs('INDEX')
             ->is('constant', true)
             ->atomIs(array('Null', 'String', 'Heredoc', 'Float', 'Integer', 'Addition', 'Concatenation', 'Power', 'Multiplication', 'Sign', 'Identifier', 'Nsname'), self::WITH_CONSTANTS)
             ->toResults();
        $this->prepareQuery();

        // list( 'a' => 2) = ['b' => 2];
        $this->atomIs('List')
             ->outIs('ARGUMENT')
             ->atomIs('Keyvalue')
             ->outIs('INDEX')
             ->is('constant', true)
             ->atomIs(array('Null', 'String', 'Heredoc', 'Float', 'Integer', 'Addition', 'Concatenation', 'Power', 'Multiplication', 'Sign', 'Identifier', 'Nsname'), self::WITH_CONSTANTS)
             ->toResults();
        $this->prepareQuery();

        // array( 'a' => 2) = ['b' => 2];
        $this->atomIs('Arrayliteral')
             ->outIs('ARGUMENT')
             ->atomIs('Keyvalue')
             ->outIs('INDEX')
             ->is('constant', true)
             ->atomIs(array('Null', 'String', 'Heredoc', 'Float', 'Integer', 'Addition', 'Concatenation', 'Power', 'Multiplication', 'Sign', 'Identifier', 'Nsname'), self::WITH_CONSTANTS)
             ->toResults();
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Arrays;

use Exakat\Analyzer\Analyzer;

class MixedKeys extends Analyzer {
    protected $phpVersion = '5.6+';

    public function analyze() {
        // build with array()
        $this->atomIs('Ppp')
             ->outIs('PPP')
             ->atomInsideNoDefinition('Arrayliteral')
             ->as('result')

             // count keys styles
             ->raw(<<<'GREMLIN'
where(
   __.sideEffect{ counts = [:]; }
      .out("ARGUMENT").hasLabel("Keyvalue").out("INDEX")
      .hasLabel("String", "Integer", "Float", "Boolean", "Staticconstant", "Identifier").where(__.out("CONCAT").count().is(eq(0)))
      .sideEffect{ 
            if (it.get().label() in ["Identifier", "Staticconstant"] ) { k = "a"; } else { k = "b"; }
            if (counts[k] == null) { counts[k] = 1; } else { counts[k]++; }
        }
        .map{ counts.size(); }.is(eq(2))
)
GREMLIN
)
              ->back('result');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Arrays;

use Exakat\Analyzer\Analyzer;

class NullBoolean extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/CreateDefaultValues',
                    );
    }

    public function analyze() {
        // true[1], null[0]
        $this->atomIs(array('Null', 'Boolean', 'Nsname', 'Identifier'), self::WITH_CONSTANTS)
             ->inIs('VARIABLE');
        $this->prepareQuery();

        // const A = true; echo A[1];
        $this->atomIs(array('Identifier', 'Nsname', 'Staticconstant'))
             ->inIs('DEFINITION')
             ->outIs('VALUE')
             ->atomIs(array('Null', 'Boolean'))
             ->back('first')
             ->inIs('VARIABLE')
             ->analyzerIsNot('self');
        $this->prepareQuery();

        // $a = true; echo $a[1];
        $this->atomIs(array('Variabledefinition', 'Staticdefinition', 'Globaldefinition'))
             ->outIs('DEFAULT')
             ->atomIs(array('Null', 'Boolean'))
             ->back('first')
             ->outIs('DEFINITION')
             ->inIs('VARIABLE')
             ->atomIs('Array')
             ->analyzerIsNot('self');
        $this->prepareQuery();


    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Files;

use Exakat\Analyzer\Analyzer;

class InclusionWrongCase extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/PropagateConstants',
                    );
    }

    public function analyze() {
        $this->atomIs('File')
             ->values('fullcode');
        $files = $this->rawQuery()
                      ->toArray();
        // There are always files

        // Include with noDelimiter
        $this->atomIs('Include')
             ->outIs('ARGUMENT')
             ->outIsIE('CODE')
             ->atomIs(array('String', 'Identifier', 'Nsname'))
             ->hasNoOut('CONCAT')
             ->has('noDelimiter')
             ->isNot('noDelimiter', '')
             ->savePropertyAs('noDelimiter', 'including')

             ->goToFile()
             ->raw(<<<GREMLIN
filter{
    inclusions = ***;
    inclusions_lc = inclusions.collect{ it.toLowerCase(); }

    file = it.get().value('fullcode').toString();
    dirs = file.tokenize('/').dropRight(1);
    if (dirs.size() > 0) {
        path = '/' + dirs.join('/') + '/';
    } else {
        // Root
        path = '/';
    }

    if (including.getAt(0) != '/') {
        including = path + including;
    }

    including = including.replaceAll('/\\\./', '/');
    including = including.replaceAll('/[^/]+/\\\.\\\./', '/');

    (including.toLowerCase() in inclusions_lc) && !(including in inclusions);
}
GREMLIN
, $files
)
             ->back('first');
        $this->prepareQuery();

        // include without noDelimiter :
        $MAX_LOOPING = self::MAX_LOOPING;
        $this->atomIs('Include')
             ->outIs('ARGUMENT')
             ->outIsIE('CODE')
             ->atomIs('Concatenation')
             // Ignore functioncall that are not \dirname

             ->raw(<<<GREMLIN
not(where( __.repeat(__.out({$this->linksDown})).emit().times($MAX_LOOPING)
                                     .not(where(__.in("CLASS", "NAME")))
                                     .not(hasLabel("Identifier", "Nsname", "Staticconstant", "Parenthesis").has("noDelimiter"))
                                     .not(hasLabel("Magicconstant", "String", "Name"))
                                     .not(hasLabel("Functioncall").has("fullnspath", "\\\\dirname") ) 
                                     .not(__.has('noDelimiter'))
         )
   )
GREMLIN
)

             ->raw(<<<'GREMLIN'
sideEffect{ 
    including = []; 
    ignore = false;
    it.get().vertices(OUT, "CONCAT")
      .sort{it.value("rank")}
      .each{
            if (it.label() == "Magicconstant") {
                including.add(it.value("noDelimiter"));
            } else if (it.label() == "Identifier") {
                including.add(it.value("noDelimiter"));
            } else if (it.label() == "Nsname") {
                including.add(it.value("noDelimiter"));
            } else if (it.label() == "Staticconstant") {
                including.add(it.value("noDelimiter"));
            } else if (it.label() == "Staticconstant") {
                including.add(it.value("noDelimiter"));
            } else if (it.label() == "Functioncall" && 
                       it.value("fullnspath") == "\\dirname") {
                loop = 1;
                dirname = it.vertices(OUT, "ARGUMENT").findAll{ it.property('rank').value() == 0; }[0]; 
                
                while( dirname.label() == 'Functioncall' && 
                       dirname.value("fullnspath") == "\\dirname") {
                    dirname = dirname.vertices(OUT, "ARGUMENT").next();
                    ++loop;
                };
                if ('noDelimiter' in dirname.keys()) {
                    dirs = dirname.value("noDelimiter").split("/").dropRight(loop);

                    if (dirs.size() > 0) {
                        including.add(dirs.join("/"));
                    } 
                } else {
                    // This just ignore the path
                    ignore = true;
                }
            } else if (it.label() == "Parenthesis") {
                code = it.vertices(OUT, "CODE").next();
                if (code.label() == "Functioncall" && 
                    code.value("fullnspath") == "\\dirname") {

                    loop = 1;
                    dirname = code.vertices(OUT, "ARGUMENT").findAll{ it.property('rank').value() == 0; }[0]; 
                    
                    while( dirname.label() == 'Functioncall' && 
                           dirname.value("fullnspath") == "\\dirname") {
                        dirname = dirname.vertices(OUT, "ARGUMENT").next();
                        ++loop;
                    };
                    if ('noDelimiter' in dirname.keys()) {
                        dirs = dirname.value("noDelimiter").split("/").dropRight(loop);
    
                        if (dirs.size() > 0) {
                            including.add(dirs.join("/"));
                        } 
                    } else {
                        // This just ignore the path
                        ignore = true;
                    }
                } else {
                    including.add(it.value("noDelimiter"));
                }
            } else {
                including.add(it.value("noDelimiter"));
            }
        }; 
    including = including.join(""); 
}
.filter{ !ignore ; }
GREMLIN
)
             ->goToFile()
             ->raw(<<<GREMLIN
filter{
    inclusions = ***;
    inclusions_lc = inclusions.collect{ it.toLowerCase(); }

    file = it.get().value("fullcode").toString();
    dirs = file.tokenize("/").dropRight(1);
    if (dirs.size() > 0) {
        path = "/" + dirs.join("/") + "/";
    } else {
        // Root
        path = "/";
    }

    if (including != '' && including.getAt(0) != "/") {
        including = path + including;
    }
    
    including2 = including.replaceAll('/\\\./', '/').replaceAll('/[^/]+/\\\.\\\./', '/');
    while( including2 != including) {
        including = including2;
        including2 = including.replaceAll('/\\\./', '/').replaceAll('/[^/]+/\\\.\\\./', '/');
    }

    (including.toLowerCase() in inclusions_lc) && !(including in inclusions);
}
GREMLIN
, $files
)

             ->back('first');

        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
namespace Exakat\Analyzer\Files;

use Exakat\Analyzer\Analyzer;

class IsCliScript extends Analyzer {
    public function analyze() {
        // files that starts with #!/binary
        $this->atomIs('File')
             ->outIs('FILE')
             ->atomIs('Sequence')
             ->outWithRank('EXPRESSION', 0)
             ->tokenIs('T_INLINE_HTML')
             ->regexIs('fullcode', '^#!')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Files;

use Exakat\Analyzer\Analyzer;

class Services extends Analyzer {
    private $report = null;

    public function analyze() {
        // Just a place holder
        return true;
    }

    public function toArray() {
        if ($this->report === null) {
            $this->hasResults();
        }

        return $this->report;
    }

    public function hasResults(): bool {
        if ($this->report === null) {
            $this->report = $this->datastore->getRow('configFiles');
        }

        return !empty($this->report);
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Files;

use Exakat\Analyzer\Analyzer;

class MissingInclude extends Analyzer {
    protected $constant_or_variable_name = 100;

    public function analyze() {
        $files = array_merge($this->datastore->getCol('files', 'file'),
                             $this->datastore->getCol('ignoredFiles', 'file'));

        if (empty($files)) {
            $this->atomIs('File')
                  ->values('fullcode');
            $files = $this->rawQuery()->toArray();
        }

        $this->atomIs('Include')
              ->outIs('ARGUMENT')
              ->outIsIE('CODE')
              ->as('include')
              ->atomIsNot(self::CONTAINERS)
              ->noAtomInside(self::CONTAINERS)
              ->goToInstruction('File')
              ->as('file')
              ->select(array('file'    => 'fullcode',
                             'include' => 'fullcode'));
        $result = $this->rawQuery();

        $inclusions = array();
        $missing = array();
        foreach($result->toArray() as $row) {
            if ($this->searchFile($row['include'], $files, $row['file'])) { continue; }

            $notFound = $row['include'];
            $missing[$notFound] = 1;
            array_collect_by($inclusions, $row['file'], $notFound);
        }
        $missing = array_keys($missing);

        if (empty($missing)) {
            return;
        }

        $this->atomIs('Include')
              ->outIs('ARGUMENT')
              ->outIsIE('CODE')
              ->fullcodeIs($missing)
              ->back('first');
        $this->prepareQuery();
    }

    private function searchFile($file, $files, $including) {
        if (empty($file)) {
            return false;
        }

        $bits = explode(' . ', $file);
        $vars = $this->config->Files_MissingInclude;
        $vars['__FILE__'] = $including;

        $__dir__ = dirname($including);
        if ($__dir__ === '/') { $__dir__ = ''; }
        $vars['__DIR__'] = $__dir__;
        $vars['dirname(__FILE__)'] = $__dir__;

        $__dir__ = dirname($__dir__);
        if ($__dir__ === '/') { $__dir__ = ''; }
        $vars['dirname(__DIR__)'] = $__dir__;
        $vars['dirname(__DIR__, 1)'] = $__dir__;
        $vars['dirname(dirname(__FILE__))'] = $__dir__;

        $__dir__ = dirname($__dir__);
        if ($__dir__ === '/') { $__dir__ = ''; }
        $vars['dirname(dirname(__DIR__))'] = $__dir__;
        $vars['dirname(__DIR__, 2)'] = $__dir__;
        $vars['dirname(dirname(dirname(__FILE__)))'] = $__dir__;

        $__dir__ = dirname($__dir__);
        if ($__dir__ === '/') { $__dir__ = ''; }
        $vars['dirname(dirname(dirname(__FILE__)))'] = $__dir__;
        $vars['dirname(dirname(dirname(__DIR__)))'] = $__dir__;
        $vars['dirname(dirname(dirname(dirname(__FILE__))))'] = $__dir__;
        $vars['dirname(__DIR__, 3)'] = $__dir__;

        if (count($bits) == 1) {
            $file = trim($file, '"\'');
            $file = str_replace(array_keys($vars),
                                array_values($vars),
                                $file
                                );
        } else {
            foreach($bits as &$bit) {
                if ($bit[0] === '"' || $bit[0] === "'") {
                    $bit = trim($bit, '"\'');
                } else {
                    $bit = $vars[$bit] ?? $bit;
                }
            }
            unset($bit);
            $file = implode('', $bits);
        }

        // simplify /dir/../ => /
        while(preg_match('|^(.*/)[^/\.]+?/\.\./(.*)$|', $file, $r)) {
            $file = $r[1] . $r[2];
        }

        if (in_array($file, $files, \STRICT_COMPARISON)) { return true; }

        if (substr($file, 0, 2) === './') {
            if (in_array(ltrim($file, '.'), $files, \STRICT_COMPARISON)) { return true; }

            if (in_array(dirname($including) . substr($file, 1), $files, \STRICT_COMPARISON)) { return true; }
        }

        if (substr($file, 0, 3) === '../' && in_array(substr($file, 2), $files, \STRICT_COMPARISON)) { return true;}

        if (substr($file, 0, 6) === '../../' && in_array(substr($file, 5), $files, \STRICT_COMPARISON)) { return true;}

        if (substr($file, 0, 9) === '../../../' && in_array(substr($file, 8), $files, \STRICT_COMPARISON)) { return true;}

        if (isset($file[0]) && $file[0] !== '/' &&
            in_array(dirname($including) . '/' . $file, $files, \STRICT_COMPARISON)) {
             return true;
        }

        if (strpos($file, '$')  !== false) { return true;}
        if (strpos($file, '::') !== false) { return true;}
        if (strpos($file, '->') !== false) { return true;}

        return false;
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Files;

use Exakat\Analyzer\Analyzer;

class GlobalCodeOnly extends Analyzer {
    public function analyze() {
        $definitionsFunctionsList = '"\\\\' . implode('", "\\\\', DefinitionsOnly::$definitionsFunctions) . '"';
        $definitionsList = '"' . implode('", "', DefinitionsOnly::$definitions) . '"';

        // one or several namespaces
        $this->atomIs('File')
             ->outIs('FILE')
             ->outIs('EXPRESSION')
             ->outIs('CODE')
             ->raw('coalesce( __.out("EXPRESSION").hasLabel("Namespace").out("BLOCK"), __.filter{ true; } )')
             ->raw('where( __.out("EXPRESSION").hasLabel(' . $definitionsList . ').count().is(eq(0)) )')
             ->raw('where( __.hasLabel("Function").where( __.out("NAME").hasLabel("Void").count().is(eq(0))).count().is(eq(0)) )')
             ->raw('where( __.in("ANALYZED").not(has("analyzer", "Structures/NoDirectAccess") ).count().is(eq(0)) )')
             ->raw('where( __.hasLabel("Functioncall").filter{ it.get().value("fullnspath") in [' . $definitionsFunctionsList . '] }.count().is(eq(0)) )')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
namespace Exakat\Analyzer\Files;

use Exakat\Analyzer\Analyzer;

class IsComponent extends Analyzer {
    public function analyze() {
        $inert = '.not(hasLabel("Usenamespace", "Class", "Const", "Interface", "Function", "Trait", "Include", "Global", "Static", "Void", "Defineconstant"))
                  .not(where( __.hasLabel("Functioncall").filter{ it.get().value("token") in ["T_INCLUDE", "T_INCLUDE_ONCE", "T_REQUIRE_ONCE", "T_REQUIRE"] }) )';

        $inertWithIfthen = $inert . '
                  .where( __.hasLabel("Ifthen").where( __.out("THEN", "ELSE").out("EXPRESSION")' . $inert . '.count().is(eq(0)) ).count().is(eq(0)) )';

        $this->atomIs('File')
             ->outIs('FILE')
             ->outIs('EXPRESSION')
             ->outIs('CODE')
             ->raw('coalesce(__.out("EXPRESSION").hasLabel("Namespace").out("BLOCK"),  __.filter{true} )')
             ->raw('where( __.out("EXPRESSION")' . $inertWithIfthen . '.count().is(eq(0)) )')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Files;

use Exakat\Analyzer\Analyzer;

class NotDefinitionsOnly extends Analyzer {
    public function dependsOn(): array {
        return array('Files/DefinitionsOnly',
//                     'Files/GlobalCodeOnly'
                     );
    }

    public function analyze() {
        $this->atomIs('File')
             ->analyzerIsNot('Files/DefinitionsOnly')
//             ->analyzerIsNot('Files/GlobalCodeOnly')
             ;
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Files;

use Exakat\Analyzer\Analyzer;

class DefinitionsOnly extends Analyzer {
    public static $definitions        = array('Class',
                                              'Const',
                                              'Declare',
                                              'Defineconstant',
                                              'Function',
                                              'Global',
                                              'Include',
                                              'Interface',
                                              'Usenamespace',
                                              'Void',
                                              'Trait',
                                              'Usenamespace',
                                              );
    //'Namespace',  is excluded
    public static $definitionsFunctions = array('\\\\ini_set',
                                                '\\\\error_reporting',
                                                '\\\\register_shutdown_function',
                                                '\\\\set_session_handler',
                                                '\\\\set_error_handler',
                                                '\\\\spl_autoload_register',
                                                );

    public function dependsOn(): array {
        return array('Structures/NoDirectAccess');
    }

    public function analyze() {
        $definitionsFunctionsList = makeList(self::$definitionsFunctions);
        $definitionsList = makeList(self::$definitions);

        // one or several namespaces
        $this->atomIs('File')
             ->outIs('FILE')
             ->outIs('EXPRESSION')
             ->outIs('CODE')
             ->raw('coalesce( __.out("EXPRESSION").hasLabel("Namespace").out("BLOCK"), __.filter{ true; } )')
             ->raw(<<<GREMLIN
not(__.where(
    __
      .out("EXPRESSION")
      .not(where( __.hasLabel($definitionsList)) )
      .not(where( __.in("ANALYZED").has("analyzer", "Structures/NoDirectAccess")) )
      .not(where( __.hasLabel("Functioncall").has("fullnspath").has("fullnspath", within($definitionsFunctionsList)) ))
))

GREMLIN
)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Portability;

use Exakat\Analyzer\Analyzer;

class WindowsOnlyConstants extends Analyzer {
    public function analyze() {
        $constants = array( 'PHP_WINDOWS_VERSION_MAJOR',
                            'PHP_WINDOWS_VERSION_MINOR',
                            'PHP_WINDOWS_VERSION_BUILD',
                            'PHP_WINDOWS_VERSION_PLATFORM',
                            'PHP_WINDOWS_VERSION_SP_MAJOR',
                            'PHP_WINDOWS_VERSION_SP_MINOR',
                            'PHP_WINDOWS_VERSION_SUITEMASK',
                            'PHP_WINDOWS_VERSION_PRODUCTTYPE',
                            'PHP_WINDOWS_NT_DOMAIN_CONTROLLER',
                            'PHP_WINDOWS_NT_SERVER',
                            'PHP_WINDOWS_NT_WORKSTATION',
                );

        $fnp = makeFullnspath($constants, \FNP_CONSTANT);

        $this->atomIs(self::STATIC_NAMES)
             ->fullnspathIs($fnp, self::CASE_SENSITIVE);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Portability;

use Exakat\Analyzer\Analyzer;

class FopenMode extends Analyzer {
    public function analyze() {
        $this->atomFunctionIs('\\fopen')
             ->outWithRank('ARGUMENT', 1)
             ->regexIsNot('fullcode', 'b')
             ->back('first');
        $this->prepareQuery();

        $this->atomFunctionIs('\\fopen')
             ->outWithRank('ARGUMENT', 1)
             ->regexIs('fullcode', 'b')
             ->regexIs('fullcode', 't')
             ->back('first');
        $this->prepareQuery();
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Portability;

use Exakat\Analyzer\Analyzer;

class LinuxOnlyFiles extends Analyzer {
    public function analyze() {
        $functions = array('\\glob', '\\fopen', '\\file', '\\file_get_contents', '\\file_put_contents', '\\unlink',
                           '\\opendir', '\\rmdir', '\\mkdir',
                           );
        $files = $this->loadIni('Files2OS.ini', 'linux');

        // string literal fopen('a', 'r');
        $this->atomFunctionIs($functions)
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('String')
             ->tokenIs('T_CONSTANT_ENCAPSED_STRING')
             ->is('noDelimiter', $files)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class MismatchedTypehint extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/OverwrittenMethods',
                     'Complete/MakeClassMethodDefinition',
                     'Complete/PropagateCalls',
                     'Complete/FollowClosureDefinition',
                    );
    }

    public function analyze() {
        // Based on calls to a function
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->as('results')
             ->outIs('TYPEHINT')
             ->savePropertyAs('fullnspath', 'typehint')
             ->inIs('TYPEHINT')
             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->has('rank')
             ->savePropertyAs('rank', 'ranked')
             ->inIs('ARGUMENT')
             ->atomIs('Functioncall')
             ->inIs('DEFINITION')
             ->checkDefinition()
             ->back('results');
        $this->prepareQuery();

        // Based on Methodcalls : still missing the class of the object
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->as('results')
             ->outIs('TYPEHINT')
             ->savePropertyAs('fullnspath', 'typehint')
             ->inIs('TYPEHINT')
             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->has('rank')
             ->savePropertyAs('rank', 'ranked')
             ->inIs('ARGUMENT')
             ->inIs('METHOD')
             ->atomIs('Methodcall')
             ->inIs('DEFINITION')
             ->checkDefinition()
             ->back('results');
        $this->prepareQuery();

        // Based on staticmethodcall
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->as('results')
             ->outIs('TYPEHINT')
             ->savePropertyAs('fullnspath', 'typehint')
             ->inIs('TYPEHINT')
             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->has('rank')
             ->savePropertyAs('rank', 'ranked')
             ->inIs('ARGUMENT')
             ->savePropertyAs('code', 'method')
             ->inIs('METHOD')
             ->atomIs('Staticmethodcall')
             ->outIs('CLASS')
             ->inIs('DEFINITION')
             ->outIs('METHOD')
             ->outIs('NAME')
             ->samePropertyAs('code', 'method')
             ->inIs('NAME')
             ->checkDefinition()
             ->back('results');
        $this->prepareQuery();
    }

    private function checkDefinition() {
        $this->outIs('ARGUMENT')
             ->samePropertyAs('rank', 'ranked')
             ->outIs('TYPEHINT')
             ->notSamePropertyAs('fullnspath', 'typehint')
             ->not(
                $this->side()
                     ->inIs('DEFINITION')
                     ->goToAllParents(self::INCLUDE_SELF)
                     ->notSamePropertyAs('fullnspath', 'typehint')
             );

        return $this;
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;
use Exakat\Query\DSL\FollowParAs;

class WrongReturnedType extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/CreateDefaultValues',
                     'Functions/IsGenerator',
                    );
    }

    public function analyze() {
//Generator, Iterator, Traversable, or iterable
// missing support for return typehint from functions (custom and natives)

        // function foo() : A { return new A;}
        $this->atomIs(self::FUNCTIONS_ALL)
             ->analyzerIsNot('Functions/IsGenerator')
             ->outIs('RETURNTYPE')
             ->atomIsNot('Void')
             ->savePropertyAs('fullnspath', 'fqn')
             ->back('first')
             ->outIs('RETURNED')
             ->as('results')

             ->outIs('NEW')
             ->notSamePropertyAs('fullnspath', 'fqn')
             /*
             ->not(
                 $this->side()
                      ->inIs('DEFINITION')
                      ->goToAllImplements(self::INCLUDE_SELF)
                      ->samePropertyAs('fullnspath', 'fqn')
             )*/
             ->back('results')
             ->inIs('RETURN');
            $this->prepareQuery();

        // function foo() : A { return new A;}
        $this->atomIs(self::FUNCTIONS_ALL)
             ->analyzerIsNot('Functions/IsGenerator')
             ->outIs('RETURNTYPE')
             ->atomIsNot(array('Void', 'Scalartypehint'))
             ->back('first')
             ->outIs('RETURNED')
             ->atomIs(array('Integer', 'String', 'Heredoc', 'Float', 'Null', 'Boolean', 'Arrayliteral'))
             ->inIs('RETURN');
        $this->prepareQuery();

        // function foo() : A { $a = 1; return $a;}
        $this->atomIs(self::FUNCTIONS_ALL)
             ->analyzerIsNot('Functions/IsGenerator')
             ->outIs('RETURNTYPE')
             ->atomIsNot(array('Void', 'Scalartypehint'))
             ->back('first')
             ->outIs('RETURNED')
             ->as('results')
             ->atomIs('Variable')
             ->inIs('DEFINITION')
             ->outIs('DEFAULT')
             ->atomIs(array('Integer', 'String', 'Heredoc', 'Float', 'Null', 'Boolean', 'Arrayliteral'))
             ->back('results')
             ->inIs('RETURN');
        $this->prepareQuery();

        // function foo() : A { $a = new B; return $a;}
        $this->atomIs(self::FUNCTIONS_ALL)
             ->analyzerIsNot('Functions/IsGenerator')
             ->outIs('RETURNTYPE')
             ->atomIsNot(array('Void', 'Scalartypehint'))
             ->savePropertyAs('fullnspath', 'fqn')
             ->back('first')
             ->outIs('RETURNED')
             ->as('results')
             ->atomIs('Variable')
             ->inIs('DEFINITION')
             ->outIs('DEFAULT')
             ->atomIs('New')
             ->outIs('NEW')

              ->notSamePropertyAs('fullnspath', 'fqn')
              /*
            ->not(
                 $this->side()
                      ->inIs('DEFINITION')
                      ->goToAllImplements(self::INCLUDE_SELF)
                      ->samePropertyAs('fullnspath', 'fqn')
             )
             */
             ->back('results')
             ->inIs('RETURN');
        $this->prepareQuery();

        // function foo(B $b) : A { return $b;}
        $this->atomIs(self::FUNCTIONS_ALL)
             ->analyzerIsNot('Functions/IsGenerator')
             ->outIs('RETURNTYPE')
             ->atomIsNot(array('Void', 'Scalartypehint'))
             ->savePropertyAs('fullnspath', 'fqn')
             ->back('first')
             ->outIs('RETURNED')
             ->as('results')
             ->atomIs('Variable')
             ->inIs('DEFINITION')
             ->inIs('NAME')
             ->outIs('TYPEHINT')
             ->notSamePropertyAs('fullnspath', 'fqn')
             ->back('results')
             ->inIs('RETURN');
        $this->prepareQuery();

        // PHP scalar types
        // Don't process void : it is checked at lint time
        $this->atomIs(self::FUNCTIONS_ALL)
             ->analyzerIsNot('Functions/IsGenerator')
             ->outIs('RETURNTYPE')
             ->atomIs('Scalartypehint')
             ->savePropertyAs('fullnspath', 'fqn')
             ->back('first')
             ->outIs('RETURNED')
             ->hasIn('RETURN')
             ->as('results')
             ->followParAs(FollowParAs::FOLLOW_NONE)
             ->atomIsNot(array('Variable', 'Staticproperty', 'Member', 'Functioncall', 'Methodacall', 'Staticmethodcall'))
             ->optional(
                $this->side()
                     ->atomIs(array('Identifier', 'Nsname'), self::WITH_CONSTANTS)
             )
             ->checkTypeWithAtom('fqn')
             ->back('results')
             ->inIs('RETURN');
        $this->prepareQuery();

        // Type is not the argument type
        $this->atomIs(self::FUNCTIONS_ALL)
             ->analyzerIsNot('Functions/IsGenerator')
             ->outIs('RETURNTYPE')
             ->atomIs('Scalartypehint')
             ->savePropertyAs('fullnspath', 'fqn')
             ->back('first')
             ->outIs('RETURNED')
             ->hasIn('RETURN')
             ->as('results')
             ->atomIs('Variable')
             ->inIs('DEFINITION')
             ->inIs('NAME')
             ->outIs('TYPEHINT')
             ->notSamePropertyAs('fullnspath', 'fqn')
             ->back('results')
             ->inIs('RETURN')
             ->analyzerIsNot('self');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class ExceedingTypehint extends Analyzer {
    public function analyze() {
        // interface i { methods i1(), i2(), i3()}
        // function foo(i $i) { $i->i1(); } No i2, not i3.
        $this->atomIs(self::FUNCTIONS)
             ->outIs('ARGUMENT')
             ->as('results')
             ->outIs('TYPEHINT')
             ->inIs('DEFINITION')
             ->atomIs(array('Class', 'Interface'))
             ->collectMethods('methods')
             ->back('results')
             ->filter(
                $this->side()
                     ->initVariable('used', '[]')
                     ->outIs('NAME')
                     ->outIs('DEFINITION')
                     ->inIs('OBJECT')
                     ->outIs('METHOD')
                     ->outIs('NAME')
                     ->raw('sideEffect{ used.add(it.get().value("lccode"));}.fold()')
             )
             ->raw('filter{ (methods - used).size() != 0;}');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class AvoidBooleanArgument extends Analyzer {
    public function analyze() {
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->outIs('DEFAULT')
             ->atomIs('Boolean')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;
use Exakat\Data\Methods;

class CouldTypeWithBool extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/PropagateCalls',
                    );
    }

    public function analyze() {

        // function foo($a) { $a && 1; }
        $this->atomIs('Parameter')
             ->analyzerIsNot('self')
             ->outIs('TYPEHINT')
             ->atomIs('Void')
             ->back('first')

             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->inIs(array('LEFT', 'RIGHT'))
             ->atomIs(array('Logical'))
             ->back('first');
        $this->prepareQuery();

        // function foo($a) { $a === false; }
        $this->atomIs('Parameter')
             ->analyzerIsNot('self')
             ->outIs('TYPEHINT')
             ->atomIs('Void')
             ->back('first')

             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->inIs(array('LEFT', 'RIGHT'))
             ->atomIs(array('Comparison'))
             ->inIs(array('LEFT', 'RIGHT'))
             ->atomIs('Boolean', self::WITH_CONSTANTS)
             ->back('first');
        $this->prepareQuery();

        // function foo($a) { !$a;  if ($a) {} }
        $this->atomIs('Parameter')
             ->analyzerIsNot('self')
             ->outIs('TYPEHINT')
             ->atomIs('Void')
             ->back('first')

             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->hasIn(array('NOT', 'CONDITION'))
             ->back('first');
        $this->prepareQuery();

        // function foo($a) { }; only foo(1)
        // function foo($a) { }; only foo((int))
        $this->atomIs('Parameter')
             ->analyzerIsNot('self')
             ->outIs('TYPEHINT')
             ->atomIs('Void')
             ->back('first')

             ->savePropertyAs('rank', 'ranked')
             // called as bool
             ->filter(
                $this->side()
                     ->inIs('ARGUMENT')
                     ->outIs('DEFINITION')
                     ->atomIs(self::CALLS)
                     ->outWithRank('ARGUMENT', 'ranked')
                     ->atomIs(array('Comparison', 'Logical', 'Boolean', 'Cast'))
             )
             // not called as non-bool
             ->not(
                $this->side()
                     ->inIs('ARGUMENT')
                     ->outIs('DEFINITION')
                     ->atomIs(self::CALLS)
                     ->outWithRank('ARGUMENT', 'ranked')
                     ->atomIsNot(array('Comparison', 'Logical'))
                     ->tokenIsNot('T_BOOL_CAST')
             )
             ->back('first');
        $this->prepareQuery();

        // function foo($a) { bar($a); } function bar(int $b) {}
        $this->atomIs('Parameter')
             ->analyzerIsNot('self')
             ->outIs('TYPEHINT')
             ->atomIs('Void')
             ->back('first')

             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->savePropertyAs('rank', 'ranked')
             ->inIs('ARGUMENT')
             ->inIs('DEFINITION')
             ->outWithRank('ARGUMENT', 'ranked')
             ->outIs('TYPEHINT')
             ->fullnspathIs('\\bool')
             ->back('first');
        $this->prepareQuery();

        // function foo($a) { chr($a); }
        $natives = $this->methods->getFunctionsByArgType('bool', Methods::STRICT);

        $this->atomIs('Parameter')
             ->analyzerIsNot('self')
             ->outIs('TYPEHINT')
             ->atomIs('Void')
             ->back('first')

             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->savePropertyAs('rank', 'ranked')
             ->inIs('ARGUMENT')
             ->atomIs('Functioncall')
             ->has('fullnspath')
             ->hasNoIn('DEFINITION')
             ->isHash('fullnspath', $natives, 'ranked')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class TooManyParameters extends Analyzer {
    protected $parametersCount = 8;

    // function foo($a1, $a2, $a3, $a4, $a5, $a6, $a7, $a8, $a9, $a10 ) {}
    public function analyze() {
        $this->atomIs(self::FUNCTIONS_ALL)
             ->isMore('count', $this->parametersCount);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class BadTypehintRelay extends Analyzer {
    public function analyze() {
        // todo : handle union typehint :
        // todo : handle class hierarchy
        // todo : handle relay via local variables

        // foo(A $a) { goo($a); } function goo(B $a) {}
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->outIs('TYPEHINT')
             ->savePropertyAs('fullnspath', 'typehint')
             ->inIs('TYPEHINT')
             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->has('rank')
             ->savePropertyAs('rank', 'theRank')
             ->inIs('ARGUMENT')
             ->atomIs(self::CALLS)
             ->inIs('DEFINITION')
             ->as('result')
             ->outIs('ARGUMENT')
             ->samePropertyAs('rank', 'theRank')
             ->not(
                $this->side()
                     ->outIs('TYPEHINT')
                     ->samePropertyAs('fullnspath', 'typehint')
             )
             ->back('result');
        $this->prepareQuery();

        // foo() : int { return goo(); } function goo() : B
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('RETURNTYPE')
             ->savePropertyAs('fullnspath', 'typehint')
             ->back('first')

             ->outIs('DEFINITION')
             ->inIs('RETURN')
             ->goToFunction()
             ->not(
                $this->side()
                     ->outIs('RETURNTYPE')
                     ->samePropertyAs('fullnspath', 'typehint')
             )
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class GeneratorCannotReturn extends Analyzer {
    protected $phpVersion = '7.0+';

    public function analyze() {
        // no return in generators before PHP 7.0
        $this->atomIs(self::FUNCTIONS_ALL)
             ->hasAtomInside(array('Yield', 'Yieldfrom'))
             ->hasAtomInside('Return');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class CouldTypeWithIterable extends Analyzer {
    public function analyze() {
        // Used in a foreach
        $this->atomIs('Parameter')
             ->outIs('TYPEHINT')
             ->atomIs('Void')
             ->back('first')

             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->inIs('SOURCE')
             ->atomIs('Foreach')
             ->back('first');
        $this->prepareQuery();

        // Used in a yield from
        $this->atomIs('Parameter')
             ->outIs('TYPEHINT')
             ->atomIs('Void')
             ->back('first')

             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->inIs('YIELD')
             ->atomIs('Yieldfrom')
             ->back('first');
        $this->prepareQuery();

        // Used with variadic foo($a) { ...$a; }
        $this->atomIs('Parameter')
             ->outIs('TYPEHINT')
             ->atomIs('Void')
             ->back('first')

             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->atomIs('Variable')
             ->is('variadic', true)
             ->back('first');
        $this->prepareQuery();

        // function foo($a) { bar($a); } function bar(iterable $b) {}
        $this->atomIs('Parameter')
             ->outIs('TYPEHINT')
             ->atomIs('Void')
             ->back('first')

             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->savePropertyAs('rank', 'ranked')
             ->inIs('ARGUMENT')
             ->inIs('DEFINITION')
             ->outWithRank('ARGUMENT', 'ranked')
             ->outIs('TYPEHINT')
             ->fullnspathIs('\\iterable')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class UseConstantAsArguments extends Analyzer {
    public function dependsOn(): array {
        return array('Constants/IsPhpConstant',
                    );
    }

    public function analyze() {
        $functions = $this->loadJson('php_constant_arguments.json');

        //alternative : one of the constants or nothing
        $positionsWithConstants = array();
        foreach($functions->alternative as $position => $functionsList) {
            foreach(array_keys((array) $functionsList) as $function) {
                $fqn = makeFullNsPath($function);

                array_collect_by($positionsWithConstants, $fqn, (int) $position);
            }
        }

        // Not a PHP constant
        $this->atomFunctionIs(array_keys($positionsWithConstants))
             ->analyzerIsNot('self')
             ->savePropertyAs('fullnspath', 'fqn')
             ->outIs('ARGUMENT')
             ->isHash('rank', $positionsWithConstants, 'fqn')
             ->atomIs(self::CONSTANTS_ALL)
             ->analyzerIsNot('Constants/IsPhpConstant')
             ->back('first');
        $this->prepareQuery();

       // unwanted guests
        $this->atomFunctionIs(array_keys($positionsWithConstants))
             ->analyzerIsNot('self')
             ->savePropertyAs('fullnspath', 'fqn')
             ->outIs('ARGUMENT')
             ->isHash('rank', $positionsWithConstants, 'fqn')
             ->atomIs(array('Boolean', 'Null', 'Integer', 'Float', 'String', 'Concatenation', 'Logical'))
             ->back('first');
        $this->prepareQuery();

        foreach($functions->alternative as $position => $functionsList) {
            $constantsWithPosition = array();
            foreach($functionsList as $function => $constants) {
                $fqn = makeFullNsPath($function);

                $constantsWithPosition[$fqn] = makeFullNsPath($constants, \FNP_CONSTANT);
            }

            $this->atomFunctionIs(array_keys($constantsWithPosition))
                 ->analyzerIsNot('self')
                 ->savePropertyAs('fullnspath', 'fqn')
                 ->outWithRank('ARGUMENT', $position)
                 ->is('constant', true)
                 ->atomIsNot(self::CONSTANTS_ALL)
                 ->back('first');
            $this->prepareQuery();

            $this->atomFunctionIs(array_keys($constantsWithPosition))
                 ->analyzerIsNot('self')
                 ->savePropertyAs('fullnspath', 'fqn')
                 ->outWithRank('ARGUMENT', $position)
                 ->atomIs(self::CONSTANTS_ALL)
                 ->analyzerIsNot('Constants/IsPhpConstant')
                 ->back('first');
            $this->prepareQuery();

            $this->atomFunctionIs(array_keys($constantsWithPosition))
                 ->analyzerIsNot('self')
                 ->savePropertyAs('fullnspath', 'fnq')
                 ->outWithRank('ARGUMENT', $position)
                 ->atomIs(self::CONSTANTS_ALL)
                 ->analyzerIs('Constants/IsPhpConstant')
                 ->isNotHash('fullnspath', $constantsWithPosition, 'fnq')
                 ->back('first');
            $this->prepareQuery();
        }

        /////////////////////////////////////////////////////////////////////////////
        // combinaison : several constants may be combined with a logical operator
        $positionsWithConstants = array();
        foreach($functions->combinaison as $position => $functionsList) {
            foreach((array) $functionsList as $function => $constants) {
                $fqn = makeFullNsPath($function);

                $positionsWithConstants[$fqn] = array((int) $position);
            }
        }

        // Not a PHP constant
        $this->atomFunctionIs(array_keys($positionsWithConstants))
             ->analyzerIsNot('self')
             ->savePropertyAs('fullnspath', 'fqn')
             ->outIs('ARGUMENT')
             ->isHash('rank', $positionsWithConstants, 'fqn')
             ->atomIs(self::CONSTANTS_ALL)
             ->analyzerIsNot('Constants/IsPhpConstant')
             ->back('first');
        $this->prepareQuery();

        // in a logical combinaison, check that constants are at least PHP's one
        $this->atomFunctionIs(array_keys($positionsWithConstants))
             ->analyzerIsNot('self')
             ->savePropertyAs('fullnspath', 'fqn')
             ->outIs('ARGUMENT')
             ->isHash('rank', $positionsWithConstants, 'fqn')
             ->atomIs('Logical')
             ->atomInsideNoDefinition(self::CONSTANTS_ALL)
             ->analyzerIsNot('Constants/IsPhpConstant')
             ->back('first');
        $this->prepareQuery();

       // unwanted guests
       $this->atomFunctionIs(array_keys($positionsWithConstants))
            ->analyzerIsNot('self')
            ->savePropertyAs('fullnspath', 'fqn')
            ->outIs('ARGUMENT')
            ->isHash('rank', $positionsWithConstants, 'fqn')
            ->atomIs(array('Boolean', 'Null', 'Float'))
            ->back('first');
       $this->prepareQuery();

       $this->atomFunctionIs(array_keys($positionsWithConstants))
            ->analyzerIsNot('self')
            ->savePropertyAs('fullnspath', 'fqn')
            ->outWithRank('ARGUMENT', 0)
            ->isHash('rank', $positionsWithConstants, 'fqn')
            ->atomIs('Integer')
            ->codeIsNot(array('0', '-1'))
            ->back('first');
       $this->prepareQuery();

        // combinaison : several constants may be combined with a logical operator
        foreach($functions->combinaison as $position => $functionsList) {
            $position = (int) $position;

            $constantsWithPosition = array();
            foreach($functionsList as $function => $constants) {
                $fqn = makeFullNsPath($function);

                $constantsWithPosition[$fqn] = makeFullNsPath($constants, \FNP_CONSTANT);
            }

            $this->atomFunctionIs(array_keys($constantsWithPosition))
                 ->analyzerIsNot('self')
                 ->savePropertyAs('fullnspath', 'fqn')
                 ->outWithRank('ARGUMENT', (int) $position)
                 ->atomIs(array('Logical', 'Identifier', 'Nsname'))
                 ->atomInsideNoDefinition(self::CONSTANTS_ALL)
                 ->analyzerIsNot('Constants/IsPhpConstant')
                 ->back('first');
            $this->prepareQuery();

            $this->atomFunctionIs(array_keys($constantsWithPosition))
                 ->analyzerIsNot('self')
                 ->savePropertyAs('fullnspath', 'fqn')
                 ->outWithRank('ARGUMENT', (int) $position)
                 ->atomIs(array('Logical', 'Identifier', 'Nsname'))
                 ->atomInsideNoDefinition(self::CONSTANTS_ALL)
                 ->analyzerIs('Constants/IsPhpConstant')
                 ->isNotHash('fullnspath', $constantsWithPosition, 'fqn')
                 ->back('first');
            $this->prepareQuery();

            // in a logical combinaison, check that constants are the one for the function
            $this->atomFunctionIs(array_keys($constantsWithPosition))
                 ->analyzerIsNot('self')
                 ->savePropertyAs('fullnspath', 'fqn')
                 ->outWithRank('ARGUMENT', (int) $position)
                 ->atomIs(array('Logical', 'Identifier', 'Nsname'))
                 ->atomInsideNoDefinition(self::CONSTANTS_ALL)
                 ->analyzerIs('Constants/IsPhpConstant')
                 ->isNotHash('fullnspath', $constantsWithPosition, 'fqn')
                 ->back('first');
            $this->prepareQuery();
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2018 Damien Seguy  Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class UndefinedFunctions extends Analyzer {
    public function dependsOn(): array {
        return array('Functions/IsExtFunction',
                     'Modules/DefinedFunctions',
                    );
    }

    public function analyze() {
        // foo(); (no function foo())
        $this->atomIs('Functioncall')
             ->outIs('NAME')
             ->atomIs(array('Name', 'Nsname'))
             ->inIs('NAME')
             ->analyzerIsNot(array('Functions/IsExtFunction',
                                   'Modules/DefinedFunctions', )
              )
             ->hasNoFunctionDefinition()
             ->isNotIgnored();
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class Functionnames extends Analyzer {
    // Function definitions, not in a CIT
    public function analyze() {
        $this->atomIs('Function')
             ->hasNoClassInterfaceTrait()
             ->outIs('NAME');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class UseArrowFunctions extends Analyzer {
    protected $phpVersion = '7.4+';

    public function analyze() {
        // fn => return 3;
        $this->atomIs('Arrowfunction');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class Closure2String extends Analyzer {
    public function analyze() {
        // function ($x) { return strtoupper($x);} => 'foo', 'X::foo'
        // function ($x) use ($a) { return $a->b($x);} = array($var, 'method')
        $this->atomIs(array('Closure', 'Arrowfunction'))
             ->outIs('BLOCK')

             ->optional(
                // for closure only
                $this->side()
                     ->is('count', 1)
                     ->outIs('EXPRESSION')
                     ->atomIs('Return')
                     ->outIs('RETURN')
             )

             ->atomIs(array('Functioncall', 'Methodcall', 'Staticmethodcall'))
             // Avoid extra arguments that can't be set from outside
             ->not(
                $this->side()
                     ->outIsIE('METHOD')
                     ->outIs('ARGUMENT')
                     ->atomIs(array_merge(self::CALLS,
                                          array('Array', 'Integer', 'String', 'Nsname', 'Identifier', 'Float', 'Boolean', 'Null')))
             )

             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class NoClassAsTypehint extends Analyzer {
    public function analyze() {
        // Classes reused as typehint, when they are not abstract
        $this->atomIs('Class') // No need for anonymous classes
             ->isNot('abstract', true)
             ->outIs('DEFINITION')
             ->inIs(array('TYPEHINT', 'RETURNTYPE'));
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class funcGetArgModified extends Analyzer {
    public function analyze() {
        // function foo($a = 3) { $args = func_get_args(); $a++; }
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->savePropertyAs('rank', 'ranked')
             // Argument is modified
             ->filter(
                $this->side()
                     ->outIs('NAME')
                     ->outIs('DEFINITION')
                     ->is('isModified', true)
             )

             ->back('first')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Functioncall')
             ->functioncallIs('\\func_get_arg')
             ->outWithRank('ARGUMENT', 0)
             ->has('intval')
             ->samePropertyAs('intval', 'ranked', self::CASE_SENSITIVE)

             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class AddDefaultValue extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/CreateDefaultValues',
                    );
    }

    public function analyze() {
        // function foo($x) { ...; $x = 0; ...}
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->isNot('reference', true)
             ->isNot('variadic', true)
             // No coded default value
             ->filter(
                $this->side()
                     ->outIs('DEFAULT')
                     ->atomIs('Void')
             )

             // A constant assignation in the code
             ->filter(
                $this->side()
                     ->outIs('NAME')
                     ->outIs('DEFAULT')
                     ->atomIsNot('Void')
                     ->hasIn('RIGHT')
                     ->is('constant', true)
             )
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class CallbackNeedsReturn extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/SetArrayClassDefinition',
                     'Complete/PropagateConstants',
                    );
    }

    public function analyze() {
        $ini = $this->loadIni('php_with_callback.ini');

        // Excluding some functions that don't REQUIRE return
        $ini->functions0 = array_diff($ini->functions0,
                                      array('\forward_static_call_array',
                                            '\forward_static_call',
                                            '\register_shutdown_function',
                                            '\register_tick_function',
                                            '\spl_autoload_register',
                                            )
                                      );

        $returningFunctions = $this->methods->getFunctionsByReturn();
        $voidReturningFunctions = array_merge($returningFunctions['void'],
                                              array_map(function ($x) { return trim($x, '\\');}, $returningFunctions['void']),
                                             );

        foreach($ini as $position => $functions) {
            $rank = substr($position, 9);
            if ($rank[0] === '_') {
                list(, $rank) = explode('_', $position);
            }

            //String callback
            $this->atomFunctionIs($functions)
                 ->outWithRank('ARGUMENT', $rank)
                 ->atomIs(array('Closure', 'String', 'Arrayliteral', 'Arrowfunction', 'Concatenation'), self::WITH_CONSTANTS)
                 ->optional(
                    $this->side()
                         ->inIs('DEFINITION')
                 )
                 ->not(
                    $this->side()
                         ->outIs('TYPEHINT')
                         ->fullnspathIs('\\void')
                 )
                ->not(
                    $this->side()
                         ->filter(
                            $this->side()
                                 ->outIs(array('ARGUMENT', 'USE'))
                                 ->is('reference', true)
                         )
                 )
                 ->not(
                    $this->side()
                         ->filter(
                            $this->side()
                                 ->outIs('ARGUMENT')
                                 ->is('reference', true)
                         )
                 )
                 ->atomIs(self::FUNCTIONS_ALL)
                 ->outIs('BLOCK')
                 ->noAtomInside('Return')
                 ->back('first');
            $this->prepareQuery();

            //the callback declares void as return types
            $this->atomFunctionIs($functions)
                 ->outWithRank('ARGUMENT', $rank)
                 // Could be : string, array, closure, arrow-function,
                 ->inIs('DEFINITION')
                 ->outIs('TYPEHINT')
                 ->fullnspathIs('\\void')
                 ->back('first');
            $this->prepareQuery();


            //the callback declares void as return types
            $this->atomFunctionIs($functions)
                 ->outWithRank('ARGUMENT', $rank)
                 ->atomIs('String', self::WITH_CONSTANTS)
                 ->noDelimiterIs($voidReturningFunctions, self::CASE_INSENSITIVE);
            $this->prepareQuery();

            //Normal class callback
            // Still needs DEFINITION link
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;
use Exakat\Data\Methods;

class CouldTypeWithInt extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/PropagateCalls',
                    );
    }

    public function analyze() {

        // function foo($a) { $a + 1; }
        $this->atomIs('Parameter')
             ->analyzerIsNot('self')
             ->outIs('TYPEHINT')
             ->atomIs('Void')
             ->back('first')

             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->inIs(array('LEFT', 'RIGHT', 'PREPLUSPLUS', 'POSTPLUSPLUS'))
             ->atomIs(array('Multiplication', 'Addition', 'Postplusplus', 'Preplusplus'))
             ->back('first');
        $this->prepareQuery();

        // function foo($a) { }; only foo(1)
        // function foo($a) { }; only foo((int))
        $this->atomIs('Parameter')
             ->analyzerIsNot('self')
             ->outIs('TYPEHINT')
             ->atomIs('Void')
             ->back('first')

             ->savePropertyAs('rank', 'ranked')
             // called as integer
             ->filter(
                $this->side()
                     ->inIs('ARGUMENT')
                     ->outIs('DEFINITION')
                     ->atomIs(self::CALLS)
                     ->outWithRank('ARGUMENT', 'ranked')
                     ->atomIs(array('Multiplication', 'Addition', 'Postplusplus', 'Preplusplus', 'Integer'))
             )
             // always called with integers too
             ->not(
                $this->side()
                     ->inIs('ARGUMENT')
                     ->outIs('DEFINITION')
                     ->atomIs(self::CALLS)
                     ->outWithRank('ARGUMENT', 'ranked')
                     ->atomIsNot(array('Integer', 'Multiplication', 'Postplusplus', 'Preplusplus'))
                     ->tokenIsNot('T_INT_CAST')
             )
             ->back('first');
        $this->prepareQuery();

        // function foo($a) { bar($a); } function bar(int $b) {}
        $this->atomIs('Parameter')
             ->analyzerIsNot('self')
             ->outIs('TYPEHINT')
             ->atomIs('Void')
             ->back('first')

             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->savePropertyAs('rank', 'ranked')
             ->inIs('ARGUMENT')
             ->inIs('DEFINITION')
             ->outWithRank('ARGUMENT', 'ranked')
             ->outIs('TYPEHINT')
             ->fullnspathIs('\\int')
             ->back('first');
        $this->prepareQuery();

        // function foo($a) { chr($a); }
        $natives = $this->methods->getFunctionsByArgType('int', Methods::STRICT);

        $this->atomIs('Parameter')
             ->analyzerIsNot('self')
             ->outIs('TYPEHINT')
             ->atomIs('Void')
             ->back('first')

             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->savePropertyAs('rank', 'ranked')
             ->inIs('ARGUMENT')
             ->atomIs('Functioncall')
             ->has('fullnspath')
             ->hasNoIn('DEFINITION')
             ->isHash('fullnspath', $natives, 'ranked')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class VariableArguments extends Analyzer {
    public function analyze() {
        // Using function_get_args
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Functioncall')
             ->functioncallIs(array('\\func_get_arg',
                                    '\\func_get_args',
                                    '\\func_num_args',
                                    ))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class MultipleIdenticalClosure extends Analyzer {
    public function analyze() {
        return;
        $this->atomIs('Closure')
             ->outIs('BLOCK')
             ->values('ctype1');
        $blocks = $this->rawQuery()->toArray();
        $all = array_count_values($blocks);
        $multiples = array_filter($all, function ($x) { return $x > 1;});

        // Closures with identical blocks
        $this->atomIs('Closure')
             ->outIs('BLOCK')
             ->is('ctype1', array_keys($multiples))
             ->back('first');
        $this->prepareQuery();

        // Closures with identical blocks to a function or method
        $this->atomIs(array('Function', 'Method', 'Magicmethod'))
             ->outIs('BLOCK')
             ->is('ctype1', array_keys($all))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class CouldBeStaticClosure extends Analyzer {
    public function analyze() {
        // function ($x) { return rand();}
        $this->atomIs('Closure')
             ->outIs('BLOCK')
             ->noAtomInside('This')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class MustReturn extends Analyzer {
    public function dependsOn(): array {
        return array('Functions/CantUse',
                    );
    }

    public function analyze() {
        // class foo { function __callStatic($name, $foo) { $name; } }
        $this->atomIs('Magicmethod')
             ->isNot('abstract', true)
             ->hasClassTrait()
             ->outIs('NAME')
             ->codeIs(array('__call',
                            '__callStatic',
                            '__get',
                            '__isset',
                            '__sleep',
                            '__toString',
                            '__set_state',
                            '__debugInfo',
                            ), self::TRANSLATE, self::CASE_INSENSITIVE)
             ->back('first')
             ->analyzerIsNot('Functions/CantUse')
             ->outIs('RETURNED')
             ->atomIs('Void')
             ->back('first');
        $this->prepareQuery();

        // function foo() : type { /* no return */ } (except with void)
        $this->atomIs(array('Function', 'Closure', 'Method', 'Arrowfunction'))
             ->outIs('RETURNTYPE')
             ->atomIsNot('Void')
             ->fullnspathIsNot('\\void')
             ->back('first')
             ->outIs('RETURNED')
             ->atomIs('Void')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class Recursive extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/SetClassMethodRemoteDefinition',
                     'Complete/SetClassRemoteDefinitionWithTypehint',
                    );
    }

    public function analyze() {
        // function foo() { foo(); }
        $this->atomIs('Function')
             ->savePropertyAs('fullnspath', 'fqn')
             ->outIs('DEFINITION')
             ->atomIs('Functioncall')
             ->goToInstruction('Function')
             ->samePropertyAs('fullnspath', 'fqn');
        $this->prepareQuery();

        // $a = function () use (&$a) { foo(); }
        $this->atomIs('Closure')
             ->outIs('USE')
             ->is('reference', true)
             ->savePropertyAs('code', 'useVar')
             ->back('first')
             ->inIs('RIGHT')
             ->atomIs('Assignation')
             ->outIs('LEFT')
             ->atomIs('Variable')
             ->samePropertyAs('code', 'useVar', self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();

        // arrow functions? Simply set to a local variable that is reused.

        // function foo() { $this->foo(); }
        $this->atomIs(self::FUNCTIONS_METHOD)
             ->savePropertyAs('fullnspath', 'fqn')
             ->outIs('DEFINITION')
             ->atomIs(array('Methodcall', 'Staticmethodcall'))
             ->goToInstruction(self::FUNCTIONS_METHOD)
             ->samePropertyAs('fullnspath', 'fqn');
        $this->prepareQuery();
    }
}

?>
<?php
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
declare(strict_types = 1);

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class HardcodedPasswords extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/PropagateConstants',
                    );
    }

    public function analyze() {
        // Position is 0 based
        $passwordsFunctions = $this->loadJson('php_logins.json');

        $functions = (array) $passwordsFunctions->functions;
        $positions = array_groupby( $functions);

        foreach($positions as $position => $function) {
            $function = makeFullNsPath($function);
            $this->atomFunctionIs($function)
                 ->outWithRank('ARGUMENT', $position)
                 ->atomIs(self::STRINGS_LITERALS, self::WITH_CONSTANTS)
                 ->back('first');
            $this->prepareQuery();
        }

        $passwordsKeys = $this->loadJson('password_keys.json','passwords');
        // ['password' => 1];
        $this->atomIs('Arrayliteral')
             ->outIs('ARGUMENT')
             ->atomIs('Keyvalue')
             ->as('value')
             ->outIs('INDEX')
             ->atomIs(self::STRINGS_LITERALS, self::WITH_CONSTANTS)
             ->has('noDelimiter')
             ->noDelimiterIs($passwordsKeys, self::CASE_SENSITIVE)
             ->back('value')
             ->outIs('VALUE')
             ->atomIs(self::STRINGS_LITERALS, self::WITH_CONSTANTS)
             ->regexIsNot('noDelimiter', 'required')
             ->back('first');
        $this->prepareQuery();

        // $a->password = 'abc';
        $this->atomIs('Member')
             ->hasIn('LEFT')
             ->outIs('MEMBER')
             ->codeIs($passwordsKeys)
             ->back('first')
             ->outIs('OBJECT')
             ->atomIs(array('This', 'Variableobject'))
             ->back('first')
             ->inIs('LEFT')
             ->atomIs('Assignation')
             ->outIs('RIGHT')
             ->atomIs(self::STRINGS_LITERALS, self::WITH_CONSTANTS)
             ->regexIsNot('noDelimiter', 'required')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class WrongCase extends Analyzer {

    public function dependsOn(): array {
        return array('Complete/PropagateCalls',
                     'Complete/SetClassMethodRemoteDefinition',
                    );
    }

    public function analyze() {
        // function foo() {}
        // FOO();
        $this->atomIs('Functioncall')
             ->outIs('NAME')
             ->atomIs(array('Nsname', 'Identifier', 'Name'))
             ->getFunctionName('name')
             ->inIs('NAME')
             ->inIs('DEFINITION')
             ->atomIs('Function') // avoid Closure, Arrowfunctions
             ->outIs('NAME')
             ->notSamePropertyAs('fullcode', 'name', self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();

        // class x {function foo() {} }
        // $b->FOO();
        $this->atomIs(array('Methodcall', 'Staticmethodcall'))
             ->outIs('METHOD')
             ->atomIs('Methodcallname')
             ->outIs('NAME')
             ->atomIs('Name')
             ->getFunctionName('name')
             ->inIs('NAME')
             ->inIs('METHOD')
             ->inIs('DEFINITION')
             ->outIs('NAME')
             ->notSamePropertyAs('fullcode', 'name', self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();
    }

    private function getFunctionName($name = 'name') {
        $this->initVariable($name)
             ->raw(<<<GREMLIN
sideEffect{ 
    if (it.get().values('token') == "T_STRING") {
        $name = it.get().value('fullcode');
    } else { // it is a namespace
        $name = it.get().value('fullcode').tokenize('\\\\').last();
    }
}
GREMLIN
);
        return $this;
    }

}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class WrongTypeWithCall extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/PropagateConstants',
                     'Complete/FollowClosureDefinition',
                     'Complete/SetClassMethodRemoteDefinition',
                     'Complete/SetClassRemoteDefinitionWithParenthesis',
                    );
    }

    public function analyze() {
        // foo(1); function foo(string $s) {}
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->savePropertyAs('rank', 'ranked')
             ->isNot('variadic', true)
             ->outIs('TYPEHINT')
             ->savePropertyAs('fullnspath', 'type')
             ->atomIsNot('Void')
             ->back('first')

             ->outIs('DEFINITION')
             ->as('results')
             ->outWithRank('ARGUMENT', 'ranked')
             ->atomIs(array('Integer',
                            'String',
                            'Arrayliteral',
                            'Concatenation',
                            'Addition',
                            'Power',
                            'Float',
                            ), self::WITH_CONSTANTS)
             ->checkTypeWithAtom('type')
             ->back('results');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class NeverUsedParameter extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/FollowClosureDefinition',
                     'Complete/SetClassMethodRemoteDefinition',
                     'Complete/SetClassRemoteDefinitionWithParenthesis',
                    );
    }

    public function analyze() {
        // foo($a, $b = 2, $c = 3) {}; foo(1,2);
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->filter(
                 $this->side()
                      ->outIs('DEFAULT')
                      ->atomIsNot('Void')
                      ->hasNoIn('RIGHT')
             )

             ->savePropertyAs('rank', 'ranked')
             ->back('first')

             ->hasOut('DEFINITION')  // Make sure this is actually a used function
             ->not(
                $this->side()
                     ->outIs('DEFINITION')
                     ->outWithRank('ARGUMENT', 'ranked')
                     ->atomIsNot('Void')
             );
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class OnlyVariableForReference extends Analyzer {
    // function foo(&$a) {}
    // foo(3);
    public function analyze() {
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->savePropertyAs('rank', 'ranked')
             ->has('reference')
             ->inIs('ARGUMENT')
             ->outIs('DEFINITION')
             ->as('functioncall')
             ->outIsIE('METHOD')   // For methods, in case
             ->outIs('ARGUMENT')
             ->samePropertyAs('rank', 'ranked')
             ->atomIsNot(array('Variable', 'Array', 'Staticproperty', 'Member', 'This', 'Phpvariable'))
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->atomIs(self::CALLS)
                             ->inIs('DEFINITION')
                             ->is('reference', true)
                     )
             )
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->atomIs(self::CALLS)
                             ->hasNoIn('DEFINITION')
                     )
             )
             ->back('functioncall');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class MultipleSameArguments extends Analyzer {
    protected $phpVersion = '7.0-';

    public function analyze() {
        $this->atomIs(self::FUNCTIONS_ALL)
             ->raw(<<<'GREMLIN'
filter{ 
    s = [:];
    it.get().vertices(OUT, "ARGUMENT").each{ 
        if (s[it.value("code")] == null) {
            s[it.value("code")] = 1;
        } else {
            s[it.value("code")]++;
        } 
    };
    it.get().vertices(OUT, "USE").each{ 
        if (s[it.value("code")] == null) {
            s[it.value("code")] = 1;
        } else {
            s[it.value("code")]++;
        } 
    };
    
    s.findAll{it.value > 1}.size() > 0;
}
GREMLIN
);
        $this->prepareQuery();
    }
}

?>
<?php
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
declare(strict_types = 1);

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class IsExtFunction extends Analyzer {

    public function analyze() {
        $exts = $this->rulesets->listAllAnalyzer('Extensions');

        $f = array((array) $this->loadIni('php_functions.ini', 'functions'));
        foreach($exts as $ext) {
            $ini = $this->load( str_replace('Extensions\\Ext', '', $ext), 'functions');

            if (!empty($ini[0])) {
                $f[] =  $ini;
            }
        }
        $functions = array_merge(...$f);

        $functions = array_keys(array_count_values($functions));
        $functions = makeFullNsPath($functions);

        $this->atomFunctionIs($functions);
        $this->prepareQuery();

        $this->atomIs(array('Isset', 'Isset', 'Empty', 'Unset', 'Exit', 'Empty', 'Echo', 'Print'));
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class ParameterHiding extends Analyzer {
    public function analyze() {
        // foo($a) { $b = $a; }
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->inIs('RIGHT')
             ->atomIs('Assignation')
             ->codeIs('=')
             ->outIs('LEFT')
             ->atomIs('Variable')
             ->inIs('LEFT')
             ->inIs('EXPRESSION')
             ->inIs('BLOCK')
             ->atomIs(self::FUNCTIONS_ALL)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class RelayFunction extends Analyzer {
    public function analyze() {
        // function foo($a, $b, $c) { return foo2($a, $b, $c);}
        $this->atomIs(self::FUNCTIONS_ALL)
             ->filter(
                $this->side()
                     ->outIsIE('NAME')
                     ->codeIsNot(array('__construct', '__destruct'))
             )
             ->saveOutAs('args', 'ARGUMENT', '')
             ->outIs('BLOCK')
             ->is('count', 1)
             ->outIs('EXPRESSION')
             ->outIsIE('RETURN')
             ->atomIs(self::FUNCTIONS_CALLS)
             ->outIsIE('METHOD')
             ->saveOutAs('args2', 'ARGUMENT', '')
             ->isEqual('args2', 'args')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class UnusedReturnedValue extends Analyzer {
    public function analyze() {
        // function foo() { return 1; }
        // foo();
        $this->atomIs('Function')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Return')
             ->outIs('RETURN')
             ->atomIsNot('Void')
             ->back('first')
             ->outIs('DEFINITION')
             ->hasIn('EXPRESSION');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class CouldCentralize extends Analyzer {
    protected $centralizeThreshold = 8;

    // Looking for calls to function with identical literals
    public function analyze() {
        $excluded = array('\\\\defined',
                          '\\\\extension_loaded',
                         );
        $excludedList = makeList($excluded);

        foreach(range(0, 3) as $i) {
            $this->atomIs('Functioncall')
                 ->savePropertyAs('fullnspath', 'f')
                 ->fullnspathIsNot($excluded)
                 ->outWithRank('ARGUMENT', $i)
                 ->atomIs(array('String', 'Integer', 'Null', 'Boolean', 'Float'))
                 ->savePropertyAs('fullcode', 'arg')
                 ->raw('groupCount("m").by{f + ", " + arg;}.cap("m").next().findAll {a,b -> b > ' . $this->centralizeThreshold . '}.keySet()');
            $res = $this->rawQuery();

            if (empty($res)) {
                continue;
            }

            $functions = array();
            $args = array();
            foreach($res as $pattern) {
                if (preg_match('/^(\S+), (.*?)$/is', $pattern, $r)) {
                    $functions[] = $r[1];
                    array_collect_by($args, $r[1], $r[2]);
                }
            }

            $this->atomFunctionIs($functions)
                 ->analyzerIsNot('self')
                 ->savePropertyAs('fullnspath', 'name')
                 ->outWithRank('ARGUMENT', $i)
                 ->isHash('fullcode', $args, 'name')
                 ->back('first');
            $this->prepareQuery();
        }

       $this->atomIs('Exit')
            ->outWithRank('ARGUMENT', 0)
            ->atomIs(array('String', 'Integer', 'Null', 'Boolean', 'Float'))
            ->savePropertyAs('fullcode', 'arg')
            ->raw('groupCount("m").by{arg;}.cap("m").next().findAll {a,b -> b > ' . $this->centralizeThreshold . '}.keySet()');
       $res = $this->rawQuery();

       if (!empty($res)) {
           $this->atomIs('Exit')
                ->outWithRank('ARGUMENT', 0)
                ->outIsIE('CODE')
                ->is('fullcode', $res->toArray())
                ->back('first');
           $this->prepareQuery();
       }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class WrongOptionalParameter extends Analyzer {
    public function analyze() {
        // function foo($a, $b = 2, $c) {}
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->as('x')
             ->outIs('DEFAULT')
             ->atomIsNot('Void')
             ->hasNoIn('RIGHT')

             ->back('x')
            // with typehint, but nullable (so, optional)
            // valid since PHP 8.0
             ->not(
                $this->side()
                     ->outIs('TYPEHINT')
                     ->atomIsNot(array('Void', 'Null'))
                     ->inIs('TYPEHINT')
                     ->outIs('DEFAULT')
                     ->atomIs('Null')
                     ->hasNoIn('RIGHT')
             )

             ->nextSibling('ARGUMENT')
             ->outIsIE('PPP')
             ->outIs('DEFAULT')
             ->atomIs('Void')
             ->hasNoIn('RIGHT')

             ->back('first');
        $this->prepareQuery();

        // function __construct($a, $b = 2, $c) {}
        $this->atomIs('Magicmethod')
             ->outIs('ARGUMENT')
             ->atomIs('Ppp')
             ->as('x')
             ->outIs('PPP')
             ->outIs('DEFAULT')
             ->atomIsNot('Void')
             ->hasNoIn('RIGHT')

             ->back('x')
            // with typehint, but nullable (so, optional)
            // valid since PHP 8.0
             ->not(
                $this->side()
                     ->outIs('TYPEHINT')
                     ->atomIsNot(array('Void', 'Null'))
                     ->inIs('TYPEHINT')
                     ->outIs('PPP')
                     ->outIs('DEFAULT')
                     ->atomIs('Null')
                     ->hasNoIn('RIGHT')
             )

             ->nextSibling('ARGUMENT')
             // case of promoted properties
             ->outIsIE('PPP')
             ->outIs('DEFAULT')
             ->atomIs('Void')
             ->hasNoIn('RIGHT')

             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class FunctionCalledWithOtherCase extends Analyzer {
    public function analyze() {
        // function FOO() {}
        // foo();
        $this->atomIs('Functioncall')
             ->savePropertyAs('code', 'name')
             ->functionDefinition()
             ->notSamePropertyAs('code', 'name')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class UselessDefault extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/PropagateCalls',
                     'Complete/FollowClosureDefinition',
                    );
    }

    public function analyze() {
        // function foo($a = 1)
        // foo(1); foo(2); foo(3); // always provide the arg
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->savePropertyAs('rank', 'ranked')
             ->outIs('DEFAULT')
             ->atomIsNot('Void')
             ->hasNoIn('LEFT')
             ->back('first')
             // at lease 2 usage of the method call.
             ->filter(
                $this->side()
                     ->outIs('DEFINITION')
                     ->raw('count().is(gt(2))')
             )
             ->not(
                $this->side()
                     ->outIs('DEFINITION')
                     ->outIsIE('METHOD')
                     ->noChildWithRank('ARGUMENT', 'ranked')
             )
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class WrongNumberOfArguments extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/PropagateCalls',
                     'Complete/MakeClassMethodDefinition',
                     'Functions/VariableArguments',
                    );
    }

    public function analyze(): void {
        // this is for functions defined within PHP
        $functions = $this->methods->getFunctionsArgsInterval();
        $argsMins = array();
        $argsMaxs = array();

        foreach($functions as $function) {
            $argsMins[makefullnspath($function['name'])] = $function['args_min'];

            if ($function['args_max'] < \MAX_ARGS) {
                $argsMaxs[makefullnspath($function['name'])] = $function['args_max'];
            }
        }

       $this->atomFunctionIs(array_keys($argsMins))
            ->savePropertyAs('fullnspath', 'fnp')
            ->hasNoVariadicArgument()
            ->isLessHash('count', $argsMins, 'fnp')
            ->back('first');
       $this->prepareQuery();

       $this->atomFunctionIs(array_keys($argsMaxs))
            ->savePropertyAs('fullnspath', 'fnp')
            ->hasNoVariadicArgument()
            ->isMoreHash('count', $argsMaxs, 'fnp')
            ->back('first');
       $this->prepareQuery();

        // this is for custom functions
        $this->atomIs(self::FUNCTIONS_CALLS)
             ->outIsIE('METHOD') // for methods calls, static or not.
             ->hasNoVariadicArgument()
             ->savePropertyAs('count', 'args_count')
             ->inIsIE('METHOD') // for methods calls, static or not.
             ->inIsIE('NEW')
             ->inIs('DEFINITION')
             ->atomIs(self::FUNCTIONS_ALL)
             ->analyzerIsNot('Functions/VariableArguments')
             ->isMore('args_min', 'args_count')
             ->back('first');
        $this->prepareQuery();

        // new A
        // new A()
        // new class() { function __construct($a) {}}
        $this->atomIs('New')
             ->outIs('NEW')
             ->hasNoVariadicArgument()
             ->savePropertyAs('count', 'args_count')
             ->outIs('DEFINITION')
             ->atomIs('Magicmethod')
             ->analyzerIsNot('Functions/VariableArguments')
             ->isLess('args_min', 'args_count')
             ->back('first');
        $this->prepareQuery();

        // new A($a)
        // new class($a) { function __construct() {}}
        $this->atomIs('New')
             ->outIs('NEW')
             ->hasNoVariadicArgument()
             ->savePropertyAs('count', 'args_count')
             ->outIs('DEFINITION')
             ->atomIs('Magicmethod')
             ->analyzerIsNot('Functions/VariableArguments')
             ->isMore('args_max', 'args_count')
             ->back('first');
        $this->prepareQuery();

        $this->atomIs(array('Self', 'Parent'))
             ->hasIn('NEW')
             ->outIsIE('METHOD') // for methods calls, static or not.
             ->hasNoVariadicArgument()
             ->savePropertyAs('count', 'args_count')
             ->inIsIE('METHOD') // for methods calls, static or not.
             ->inIsIE('NEW')
             ->inIs('DEFINITION')
             ->atomIs(self::FUNCTIONS_ALL)
             ->analyzerIsNot('Functions/VariableArguments')
             ->isMore('args_min', 'args_count')
             ->back('first');
        $this->prepareQuery();

        $this->atomIs(self::FUNCTIONS_CALLS)
             ->outIsIE('METHOD') // for methods calls, static or not.
             ->hasNoVariadicArgument()
             ->savePropertyAs('count', 'args_count')
             ->inIsIE('METHOD') // for methods calls, static or not.
             ->inIsIE('NEW')
             ->inIs('DEFINITION')
             ->atomIs(self::FUNCTIONS_ALL)
             ->analyzerIsNot('Functions/VariableArguments')
             ->isLess('args_max', 'args_count')
             ->back('first');
        $this->prepareQuery();

        $this->atomIs(array('Self', 'Parent'))
             ->hasIn('NEW')
             ->outIsIE('METHOD') // for methods calls, static or not.
             ->hasNoVariadicArgument()
             ->savePropertyAs('count', 'args_count')
             ->inIsIE('METHOD') // for methods calls, static or not.
             ->inIsIE('NEW')
             ->inIs('DEFINITION')
             ->analyzerIsNot('Functions/VariableArguments')
             ->isLess('args_max', 'args_count')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class UnusedFunctions extends Analyzer {
    public function dependsOn(): array {
        return array('Functions/Recursive',
                     'Modules/CalledByModule',
                    );
    }

    public function analyze() {
        // function foo() {} // no foo();
        $this->atomIs('Function')
             ->fullnspathIsNot('\\__autoload')
             ->analyzerIsNot(array('Functions/Recursive',
                                   'Modules/CalledByModule',
                                  ))
             ->hasNoOut('DEFINITION');
             // Retired 'hasNoDefinition' : It needs a rename, and some checks
        $this->prepareQuery();

        // This depends on the order of the functions in the base, so we call it twice.
        // Review is needed : we may need more time, though we can't know when to stop.
        $this->linearlyUnusedFunction();
        $this->linearlyUnusedFunction();
    }

    private function linearlyUnusedFunction() {
       // level 2 of unused : only used by unused functions
       // function foo() {} // no foo();
       // This depends on the order of the functions in the base!!!
       $this->atomIs('Function')
            ->fullnspathIsNot('\\__autoload')
            ->savePropertyAs('fullnspath', 'fnp')
            ->analyzerIsNot('self')
            ->analyzerIsNot('Modules/CalledByModule')
            // Check for recursive
            // Check for already dead calling function
            ->not(
                $this->side()
                     ->outIs('DEFINITION')
                     ->goToInstruction(array('Function', 'Closure', 'File'))
                     ->raw(<<<'GREMLIN'
coalesce( __.hasLabel("File", "Closure"), 
          __.hasLabel("Function").filter{ it.get().value("fullnspath") != fnp;}
                                 .not(where( __.in("ANALYZED").has("analyzer", "Functions/UnusedFunctions"))))

GREMLIN
)
        );
        $this->prepareQuery();
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class UsingDeprecated extends Analyzer {
    /* PHP version restrictions
    protected $phpVersion = '7.4-';
    */

    public function dependsOn(): array {
        return array('Complete/SetClassRemoteDefinitionWithTypehint',
                     'Complete/SetClassRemoteDefinitionWithGlobal',
                     'Complete/SetClassRemoteDefinitionWithInjection',
                     'Complete/SetClassRemoteDefinitionWithLocalNew',
                     'Complete/SetClassRemoteDefinitionWithParenthesis',
                     'Complete/SetClassRemoteDefinitionWithReturnTypehint',
                     'Complete/SetClassRemoteDefinitionWithTypehint',
                    );
    }

    public function analyze() {
        // /** @deprecated */ function foo() {}; foo();
        $this->atomIs(self::CALLS)
             ->inIs('DEFINITION')
             ->outIs('PHPDOC')
             ->regexIs('fullcode', '(?i)@deprecated')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class RedeclaredPhpFunction extends Analyzer {
    public function analyze() {
        // function split() {}
        $extensions = $this->loadIni('php_distribution_53.ini', 'ext');

        $e = array();
        foreach($extensions as $ext) {
            if ($iniFile = $this->load($ext , 'functions')) {
                $e[] = $iniFile;
            }
        }
        $extensionFunctions = array_merge(...$e);
        $extensionFunctions = array_values(array_unique($extensionFunctions));
        $extensionFunctions = makefullnspath($extensionFunctions);

        $this->atomIs('Function')
             ->regexIs('fullnspath', '^\\\\\\\\[^\\\\\\\\]+\\$')
             ->fullnspathIs($extensionFunctions);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class CouldBeCallable extends Analyzer {
    public function analyze() {
        $ini = $this->loadIni('php_with_callback.ini');

        foreach($ini as $position => $functions) {
            $rank = substr($position, 9);
            if ($rank[0] === '_') {
                list(, $rank) = explode('_', $position);
            }

            // foo($arg) { array_map($arg, '') ; }
            $this->atomIs('Parameter')
                 ->filter(
                    $this->side()
                         ->outIs('TYPEHINT')
                         ->atomIs('Void')
                 )
                 ->outIs('NAME')
                 ->outIs('DEFINITION')
                 ->is('rank', (int) $rank)
                 ->inIs('ARGUMENT')
                 ->functioncallIs($functions)
                 ->back('first');
            $this->prepareQuery();
        }

        // $arg(...)
        $this->atomIs('Parameter')
             ->filter(
                $this->side()
                     ->outIs('TYPEHINT')
                     ->atomIs('Void')
             )
             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->inIs('NAME')
             ->atomIs('Functioncall')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class CouldTypehint extends Analyzer {
    public function analyze() {
        // An argument is processed with a instanceof
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->outIs('TYPEHINT')
             ->atomIs('Void')
             ->inIs('TYPEHINT')

             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->inIs('VARIABLE')
             ->atomIs('Instanceof');
        $this->prepareQuery();

        // An argument is processed with a instanceof later
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->outIs('TYPEHINT')
             ->atomIs('Void')
             ->inIs('TYPEHINT')

             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->inIs('ARGUMENT')
             ->functioncallIs(array('\\is_array', '\\is_string', '\\is_int', '\\is_real', '\\is_double'))
             ->goToInstruction(array('Ifthen', 'Ternary'))
             ->outIs(array('THEN', 'ELSE'))
             ->atomInside(array('Return', 'Throw', 'Exit'))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class UselessTypeCheck extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/CreateDefaultValues',
                    );
    }

    public function analyze() {
        // function foo(A $a) { if (is_null($a)) {}}
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')

             ->outIs('TYPEHINT')
             ->atomIsNot(array('Void', 'Null'))
             ->inIs('TYPEHINT')

             ->not(
                $this->side()
                     ->outIs('DEFAULT')
                     ->atomis('Null')
                     ->hasNoIn('RIGHT')
             )
             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->inIs('ARGUMENT')
             ->functioncallIs('\\is_null')
             ->back('first');
        $this->prepareQuery();

        // function foo(A $a) { if ($a === null) {}}
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->outIs('TYPEHINT')
             ->atomIsNot(array('Void', 'Null'))
             ->inIs('TYPEHINT')

             ->not(
                $this->side()
                     ->outIs('DEFAULT')
                     ->atomis('Null')
                     ->hasNoIn('RIGHT')
             )
             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->inIs(array('LEFT', 'RIGHT'))
             ->atomIs('Comparison')
             ->outIs(array('LEFT', 'RIGHT'))
             ->atomIs('Null',self::WITH_CONSTANTS)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Common\MultipleDeclarations as CommonMultipleDeclarations;

class MultipleDeclarations extends CommonMultipleDeclarations {
    public function analyze() {
        $this->atom = 'Function';

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class WrongTypehintedName extends Analyzer {
    public function analyze() {
        $scalars   = array('array',  'int',              'string'  , 'bool',            );
        $variables = array('$array', '$int', '$integer', '$string' , '$bool', '$boolean', '$void', '$null');

        // function(string $int, array $boolean)
        $this->atomIs('Parameter')
             ->outIs('TYPEHINT')
             ->atomIs('Scalartypehint')
             ->fullcodeIs($scalars, self::CASE_INSENSITIVE)
             ->savePropertyAs('fullcode', 'type')
             ->MakeVariableName('type')
             ->back('first')
             ->outIs('NAME')
             ->fullcodeIs($variables)
             ->notSamePropertyAs('fullcode', 'type')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class KillsApp extends Analyzer {
    public function analyze() {
        // first round : only die and exit
        $this->atomIs('Function')
             ->outIs('BLOCK')
             // We need this straight in the main sequence, not deep in a condition
             ->outIs('EXPRESSION')
             ->atomIs('Exit')
             ->back('first');
        $this->prepareQuery();

        // second round
        $this->atomIs('Function')
             ->outIs('BLOCK')
             // We need this straight in the main sequence, not deep in a condition
             ->outIs('EXPRESSION')
             ->atomIs('Functioncall')
             ->tokenIs(array('T_STRING', 'T_NS_SEPARATOR'))
             ->functionDefinition()
             ->analyzerIs('self')
             ->back('first');
        $this->prepareQuery();

        // third round
        $this->atomIs('Function')
             ->outIs('BLOCK')
             // We need this straight in the main sequence, not deep in a condition
             ->outIs('EXPRESSION')
             ->tokenIs(array('T_STRING', 'T_NS_SEPARATOR'))
             ->functionDefinition()
             ->inIs('NAME')
             ->analyzerIs('self')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class UnsetOnArguments extends Analyzer {
    public function analyze() {
        // unset($argument);
        $this->atomIs('Unset')
             ->outIs('ARGUMENT')
             ->isArgument()
             ->back('first');
        $this->prepareQuery();

        // (unset) $argument
        $this->atomIs('Cast')
             ->tokenIs('T_UNSET_CAST')
             ->outIs('CAST')
             ->isArgument()
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class SemanticTyping extends Analyzer {
    public function analyze() {
        $typed_names = array(
            '$array',
            '$list',

            '$string',
            '$text',
            '$str',
            '$message',
            '$msg',

            '$boolean',
            '$bool',

            '$integer',
            '$int',
            '$addition',
            '$multiplication',
            '$division',
            '$number',
            '$num',
            '$count',
            '$size',
            '$length',

            '$float',
            '$double',
            '$real',
            '$decimal',

            '$object',
            '$obj',

            '$callback',
            '$closure',
            '$function',
            '$method',
            '$callable',
            '$iterable',
        );

        // function foo($closure ) {}
        $this->atomIs(self::FUNCTIONS)
             ->outIs('ARGUMENT')
             ->as('results')
             ->outIs('TYPEHINT')
             ->atomIs('Void')
             ->back('results')
             ->outIs('NAME')

             ->codeIs($typed_names, self::TRANSLATE, self::CASE_INSENSITIVE);
        $this->prepareQuery();

        // function foo(return $closure ) {}
        $this->atomIs(self::FUNCTIONS)
             ->outIs('RETURNTYPE')
             ->atomIs('Void')
             ->back('first')

             ->outIs('RETURNED')
             ->atomIs('Variable')
             ->codeIs($typed_names, self::TRANSLATE, self::CASE_INSENSITIVE);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class DontUseVoid extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/PropagateCalls',
                    );
    }

    public function analyze() {
        // function foo(): void {}; $a = foo();
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('RETURNTYPE')
             ->atomIs('Scalartypehint')
             ->fullnspathIs('\\void')
             ->back('first')
             ->outIs('DEFINITION')
             ->atomIsNot(array('Variabledefinition', 'Staticdefinition', 'Globaldefinition'))
             ->hasNoIn('EXPRESSION');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class MultipleReturn extends Analyzer {
    public function analyze() {
        // function foo() { if ($a ) { return 1; } else { return 2; }}
        $this->atomIs(array('Function', 'Closure', 'Method', 'Magimethod'))
             ->hasNoInterface()
             ->AtomInsideMoreThan('Return', 1);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class CantUse extends Analyzer {
    public function analyze() {
        // Function foo() { throw new exception(); }
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('BLOCK')
             ->is('count', 1)
             ->outIs('EXPRESSION')
             ->atomIs('Throw')
             ->back('first');
        $this->prepareQuery();

        // Function foo() { trigger_error(); }
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('BLOCK')
             ->is('count', 1)
             ->outIs('EXPRESSION')
             ->functioncallIs(array('\\trigger_error', '\\user_error'))
             ->back('first');
        $this->prepareQuery();

        // propagation to custom functions
        // Function foo() { trigger_error(); }
        // Function bar() { bar(); }
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('BLOCK')
             ->is('count', 1)
             ->outIs('EXPRESSION')
             ->atomIs(self::FUNCTIONS_CALLS)
             ->inIs('DEFINITION')
             ->analyzerIs('self')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class IsGenerator extends Analyzer {
    public function analyze() {
        // function foo() { yield 3; }
        $this->atomIs(array('Yield', 'Yieldfrom'))
             ->goToFunction();
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class FnArgumentVariableConfusion extends Analyzer {
    protected $phpVersion = '7.4+';

    public function analyze() {
        // function foo() { $x = 1; return fn ($x) => return 1; }
        $this->atomIs('Arrowfunction')
             ->outIs('ARGUMENT')
             ->outIs('NAME')
             ->savePropertyAs('code', 'name')
             ->back('first')

             ->goToFunction()
             ->outIs(array('DEFINITION', 'ARGUMENT'))
             ->outIsIE('NAME')
             ->samePropertyAs('code', 'name', self::CASE_SENSITIVE)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class RealFunctions extends Analyzer {
    public function analyze() {
        // function x() {}
        $this->atomIs('Function');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class WithoutReturn extends Analyzer {
    public function analyze() {
        // function foo() { echo 1; } (no void return typehint)
        $this->atomIs(self::FUNCTIONS_ALL)
             ->isNot('abstract', true)
             ->not(
                $this->side()
                     ->outIs('RETURNTYPE')
                     ->fullnspathIs('\void')
             )
             ->hasNoInterface()
             ->outIs('NAME')
             ->codeIsNot(array('__construct',
                               '__destruct',
                               '__wakeup',
                               '__autoload',
                               ), self::TRANSLATE, self::CASE_INSENSITIVE)
             ->back('first')
             ->noAtomInside('Return');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class InsufficientTypehint extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/SetClassRemoteDefinitionWithTypehint',
                     'Complete/SetClassMethodRemoteDefinition',
                     'Complete/MakeClassConstantDefinition',
                    );
    }

    public function analyze() {
        // function foo(i $a) { $i->a(); } // but interface i has no function a()
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->as('arg')
             ->outIs('TYPEHINT')
             ->atomIsNot(array('Void', 'Scalartypehint'))
             ->hasIn('DEFINITION')
             ->back('arg')

             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->inIs('OBJECT')
             ->atomIs('Methodcall')
             ->hasNoIn('DEFINITION')
             ->back('first');
        $this->prepareQuery();

        // function foo(i $a) { $i->a; } // but class i has no property a()
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->as('arg')
             ->outIs('TYPEHINT')
             ->atomIsNot(array('Void', 'Scalartypehint'))
             ->hasIn('DEFINITION')
             ->back('arg')

             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->inIs('OBJECT')
             ->atomIs('Member')
             ->hasNoIn('DEFINITION')
             ->back('first');
        $this->prepareQuery();

        // function foo(i $a) { $i->a; } // but class i has no property a()
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->as('arg')
             ->outIs('TYPEHINT')
             ->atomIsNot(array('Void', 'Scalartypehint'))
             ->hasIn('DEFINITION')
             ->back('arg')

             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->inIs('CLASS')
             ->atomIs('Staticconstant')
             ->hasNoIn('DEFINITION')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class UselessReturn extends Analyzer {
    public function analyze() {
        // return in special functions
        $this->atomIs('Magicmethod')
             ->hasClassTrait() // avoid interfaces
             ->outIs('NAME')
             ->codeIs(array('__construct', '__destruct', '__set', '__clone', '__unset', '__wakeup'))
             ->inIs('NAME')

             // returning null or void is OK to terminate the function
             // May be spot this at other level than 1 of the function (this means after a test or a special branch)
             ->outIs('BLOCK')
             ->atomInsideNoAnonymous('Return')
             ->outIs('RETURN')
             ->atomIsNot('Void')
             ->back('first');
        $this->prepareQuery();

        // function that finally returns void. (the last return is useless)
        $this->atomIs(array('Function', 'Closure', 'Arrowfunction'))
             ->outIs('BLOCK')
             ->outWithRank('EXPRESSION', 'last')
             ->atomIs('Return')
             ->outIs('RETURN')
             ->atomIs('Void')
             ->back('first');
        $this->prepareQuery();

// @todo : spot such functions
//Also `__autoload`, methods used for autoloading and methods registered for shutdown, have no need to return anything.

    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class ConditionedFunctions extends Analyzer {
    public function analyze() {
        // if (!is_callable('f')) { function f() {}}
        $this->atomIs('Function')
             ->hasIfthen();
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class TypehintMustBeReturned extends Analyzer {
    public function analyze() {
        // function foo() : A { }
        // function foo() :A { return; }
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('RETURNTYPE')
             ->atomIsNot('Void')
             ->fullnspathIsNot('\\void')
             ->back('first')
             ->not(
                $this->side()
                     ->outIs('BLOCK')
                     ->atomIs('Void')
             )
             ->outIs('RETURNED')
             ->atomIs('Void')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;
use Exakat\Data\Methods;

class CouldTypeWithString extends Analyzer {
    public function analyze() {

        // function foo($a) { $a . "b"; }
        $this->atomIs('Parameter')
             ->analyzerIsNot('self')
             ->outIs('TYPEHINT')
             ->atomIs('Void')
             ->back('first')

             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->inIs(array('CONCAT'))
             ->atomIs(array('Concatenation', 'Heredoc'))
             ->back('first');
        $this->prepareQuery();

        // function foo($a) { bar($a); } function bar(string $b) {}
        $this->atomIs('Parameter')
             ->analyzerIsNot('self')
             ->outIs('TYPEHINT')
             ->atomIs('Void')
             ->back('first')

             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->savePropertyAs('rank', 'ranked')
             ->inIs('ARGUMENT')
             ->inIs('DEFINITION')
             ->outWithRank('ARGUMENT', 'ranked')
             ->outIs('TYPEHINT')
             ->fullnspathIs('\\string')
             ->back('first');
        $this->prepareQuery();

        // function foo($a) { }; only foo("f")
        // function foo($a) { }; only foo((string))
        $this->atomIs('Parameter')
             ->analyzerIsNot('self')
             ->outIs('TYPEHINT')
             ->atomIs('Void')
             ->back('first')

             ->savePropertyAs('rank', 'ranked')
             // called as bool
             ->filter(
                $this->side()
                     ->inIs('ARGUMENT')
                     ->outIs('DEFINITION')
                     ->atomIs(self::CALLS)
                     ->outWithRank('ARGUMENT', 'ranked')
                     ->atomIs(array('String', 'Concatenation', 'Heredoc'))
             )
             // not called as non-bool
             ->not(
                $this->side()
                     ->inIs('ARGUMENT')
                     ->outIs('DEFINITION')
                     ->atomIs(self::CALLS)
                     ->outWithRank('ARGUMENT', 'ranked')
                     ->atomIsNot(array('String', 'Concatenation', 'Heredoc'))
                     ->tokenIsNot('T_BOOL_STRING')
             )
             ->back('first');
        $this->prepareQuery();

        // function foo($a) { chr($a); }
        $natives = $this->methods->getFunctionsByArgType('string', Methods::STRICT);

        $this->atomIs('Parameter')
             ->analyzerIsNot('self')
             ->outIs('TYPEHINT')
             ->atomIs('Void')
             ->back('first')

             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->savePropertyAs('rank', 'ranked')
             ->inIs('ARGUMENT')
             ->atomIs('Functioncall')
             ->has('fullnspath')
             ->hasNoIn('DEFINITION')
             ->isHash('fullnspath', $natives, 'ranked')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class AliasesUsage extends Analyzer {

    public function analyze() {
        // sizeof();
        $ini = $this->load('aliases', 'alias');
        $ini = makeFullNsPath(array_keys($ini));

        $this->atomFunctionIs($ini);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class Dynamiccall extends Analyzer {
    public function analyze() {
        $this->atomIs('Functioncall')
             ->tokenIs(array('T_VARIABLE', 'T_OPEN_BRACKET'))
             ->outIs('NAME')
             ->atomIs(array('Array', 'Variable'));
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class UsedFunctions extends Analyzer {
    public function analyze() {
        // function used
        $this->atomIs('Function')
             ->hasOut('DEFINITION');
        $this->prepareQuery();

        // function name used in a string
        $this->atomIs('String')
             ->has('fullnspath')
             ->values('fullnspath')
             ->unique();
        $functionsInStrings = $this->rawQuery()->toArray();

        if (!empty($functionsInStrings)) {
            $this->atomIs('Function')
                 ->hasNoOut('DEFINITION')
                 ->fullnspathIs($functionsInStrings);
            $this->prepareQuery();
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class EmptyFunction extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/SetParentDefinition',
                     'Complete/OverwrittenMethods',
                     'Composer/IsComposerNsname',
                    );
    }

    public function analyze() {
        // standalone function : empty is empty. Same for closure.
        $this->atomIs(array('Function', 'Closure'))
             ->outIs('BLOCK')
             ->isNotEmptyBody()
             ->back('first');
        $this->prepareQuery();

        // method : then, it should not overwrite a parent's method
        $this->atomIs(self::FUNCTIONS_METHOD)
             ->hasClassTrait()
             ->isNot('abstract', true)
             ->IsNotInheritedMethod()
             ->outIs('BLOCK')
             ->isNotEmptyBody()
             ->goToClass()

             // Ignore classes that are extension from a composer class
             ->IsNotExtendingComposer()

             // Ignore methods that are overwriting a parent class, unless it is abstract or private
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class UnusedArguments extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/OverwrittenMethods',
                    );
    }

    public function analyze() {
        // Arguments, not reference, function
        $this->atomIs('Parameter')
             ->isNot('reference', true)
             ->outIs('NAME')
             ->savePropertyAs('code', 'varname')
             ->back('first')
             ->inIs('ARGUMENT')
             ->atomIs(array('Function', 'Closure', 'Arrowfunction'))
             ->as('results')
             ->back('first')
             ->outIs('NAME')
             ->hasNoOut('DEFINITION')
             ->back('results');
        $this->prepareQuery();

        // Arguments, not reference, method (class, trait)
        $this->atomIs('Parameter')
             ->isNot('reference', true)
             ->outIs('NAME')
             ->savePropertyAs('code', 'varname')
             ->back('first')
             ->inIs('ARGUMENT')
             ->atomIs(array('Method', 'Magicmethod'))
             ->outIs('NAME')
             ->codeIsNot('__set') // Skip __set, because it may be useful there.
             ->inIs('NAME')
             ->hasNoOut('OVERWRITE')
             ->hasClassTrait()
             ->as('results')
             ->isNot('abstract', true)
             ->back('first')
             ->outIs('NAME')
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->outIs('DEFINITION')
                             ->is('isRead', true)
                     )
             )
             ->back('results');
        $this->prepareQuery();

        // Arguments, reference, function
        $this->atomIs('Parameter')
             ->is('reference', true)
             ->outIs('NAME')
             ->savePropertyAs('code', 'varname')
             ->back('first')
             ->inIs('ARGUMENT')
             ->atomIs(self::FUNCTIONS_ALL)
             ->as('results')
             ->analyzerIsNot('self')
             ->hasNoClassInterfaceTrait()
             ->back('first')
             ->outIs('NAME')
             ->hasNoOut('DEFINITION')
             ->back('results');
        $this->prepareQuery();

        // Arguments, reference, method
        $this->atomIs('Parameter')
             ->is('reference', true)
             ->outIs('NAME')
             ->savePropertyAs('code', 'varname')
             ->back('first')
             ->inIs('ARGUMENT')
             ->atomIs(self::FUNCTIONS_ALL)
             ->analyzerIsNot('self')
             ->as('results')
             ->hasClassTrait()
             ->isNot('abstract', true)
             ->hasNoOut('OVERWRITE')
             ->back('first')
             ->outIs('NAME')
             ->hasNoOut('DEFINITION')
             ->back('results');
        $this->prepareQuery();

        // Arguments in a USE, not a reference
        $this->atomIs('Closure')
             ->analyzerIsNot('self')
             ->outIs('USE')
             ->isNot('reference', true)
             ->savePropertyAs('code', 'varname')
             ->back('first')
             ->outIs('USE')
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->outIs('DEFINITION')
                             ->is('isRead', true)
                     )
             )
             ->back('first');
        $this->prepareQuery();

        // Arguments in a USE, reference
        $this->atomIs('Closure')
             ->analyzerIsNot('self')
             ->outIs('USE')
             ->is('reference', true)
             ->savePropertyAs('code', 'varname')
             ->back('first')

             ->outIs('USE')
             ->hasNoOut('DEFINITION')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class MismatchedDefaultArguments extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/PropagateCalls',
                    );
    }

    public function analyze() {
        // Based on calls to a function
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->savePropertyAs('code', 'name')
             ->as('results')
             ->outIs('DEFAULT')
             ->savePropertyAs('fullcode', 'defaultValue')
             ->back('results')
             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->has('rank')
             ->savePropertyAs('rank', 'ranked')
             ->inIs('ARGUMENT')
             ->inIsIE('METHOD')
             ->atomIs(array('Functioncall', 'Methodcall', 'Staticmethodcall'))
             ->inIs('DEFINITION')
             ->checkDefinition()
             ->back('results');
        $this->prepareQuery();
    }

    private function checkDefinition() {
        $this->outWithRank('ARGUMENT', 'ranked')
             ->outIs('DEFAULT')
             ->notSamePropertyAs('fullcode', 'defaultValue');
        return $this;
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;
use Exakat\Data\Methods;

class CouldTypeWithArray extends Analyzer {
    public function analyze() {
        // function foo($a) { $a[1] = 2; $a[] = 2}
        $this->atomIs('Parameter')
             ->analyzerIsNot('self')
             ->outIs('TYPEHINT')
             ->atomIs('Void')
             ->back('first')

             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->atomIs('Variablearray')
             ->back('first');
        $this->prepareQuery();

        // function foo($a) { bar($a); } function bar(int $b) {}
        $this->atomIs('Parameter')
             ->analyzerIsNot('self')
             ->outIs('TYPEHINT')
             ->atomIs('Void')
             ->back('first')

             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->savePropertyAs('rank', 'ranked')
             ->inIs('ARGUMENT')
             ->inIs('DEFINITION')
             ->outWithRank('ARGUMENT', 'ranked')
             ->outIs('TYPEHINT')
             ->fullnspathIs('\\array')
             ->back('first');
        $this->prepareQuery();

        // function foo($a) { chr($a); }
        $natives = $this->methods->getFunctionsByArgType('array', Methods::STRICT);

        // function foo($a) { }; only foo(array())
        // function foo($a) { }; only foo((array))
        $this->atomIs('Parameter')
             ->analyzerIsNot('self')
             ->outIs('TYPEHINT')
             ->atomIs('Void')
             ->back('first')

             ->savePropertyAs('rank', 'ranked')
             // called as bool
             ->filter(
                $this->side()
                     ->inIs('ARGUMENT')
                     ->outIs('DEFINITION')
                     ->atomIs(self::CALLS)
                     ->outWithRank('ARGUMENT', 'ranked')
                     ->atomIs(array('Arrayliteral'))
             )
             // not called as non-bool
             ->not(
                $this->side()
                     ->inIs('ARGUMENT')
                     ->outIs('DEFINITION')
                     ->atomIs(self::CALLS)
                     ->outWithRank('ARGUMENT', 'ranked')
                     ->atomIsNot(array('Arrayliteral'))
                     ->tokenIsNot('T_ARRAY_CAST')
             )
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('Parameter')
             ->analyzerIsNot('self')
             ->outIs('TYPEHINT')
             ->atomIs('Void')
             ->back('first')

             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->savePropertyAs('rank', 'ranked')
             ->inIs('ARGUMENT')
             ->atomIs('Functioncall')
             ->has('fullnspath')
             ->hasNoIn('DEFINITION')
             ->isHash('fullnspath', $natives, 'ranked')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class OptionalParameter extends Analyzer {
    // class x { function foo(A $a = null) {} }
    public function analyze() {
        $this->atomIs('Method')
             ->hasClass()
             ->outIs('ARGUMENT')
             ->hasOut('TYPEHINT')
             ->outIs('DEFAULT')
             ->atomIs('Null')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class OnlyVariablePassedByReference extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/PropagateCalls',
                     'Complete/MakeFunctioncallWithReference',
                    );
    }

    public function analyze() {
        // custom calls
        $this->atomIs(self::CALLS)
             ->hasIn('DEFINITION')  // No definition, no check
             ->outIsIE('METHOD')
             ->outIs('ARGUMENT')
             ->is('isModified', true)
             ->atomIsNot(self::CONTAINERS_PHP)
             ->back('first');
        $this->prepareQuery();

        // PHP Functioncalls
        $phpNative = $this->methods->getFunctionsReferenceArgs();
        $phpNative = array_column($phpNative, 'function');
        $phpNative = array_unique($phpNative);
        $phpNative = array_values($phpNative);
        $phpNative = makeFullnspath($phpNative);

        $this->atomIs('Functioncall')
             ->hasNoIn('DEFINITION')  // No definition, no check
             ->fullnspathIs($phpNative)
             ->outIs('ARGUMENT')
             ->is('isModified', true)
             ->atomIsNot(self::CONTAINERS_PHP)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class WrongNumberOfArgumentsMethods extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/OverwrittenMethods',
                     'Complete/SetClassMethodRemoteDefinition',
                     'Complete/PropagateCalls',
                     'Functions/VariableArguments',
                    );
    }

    public function analyze() {
        $methods = $this->methods->getMethodsArgsInterval();

        // Needs to finish the list of methods and their arguments.
        // Needs to checks on constructors too
        // Refactor this analysis to link closely fullnspath and method name. Currently, it is done by batch

        // Checking PHP functions
        $minArgs = array();
        $maxArgs = array();
        foreach($methods as $method) {
            $ns = $this->dictCode->translate(array($method['class']), self::CASE_INSENSITIVE);
            if (empty($ns)) {
                continue;
            }

            $name = $this->dictCode->translate(array($method['name']), self::CASE_INSENSITIVE);
            if (empty($name)) {
                continue;
            }

            $mfnp = makeFullNSpath($method['class']) . '::' . $name[0];

            if ($method['args_min'] > 0) {
                $minArgs[$mfnp] = $method['args_min'];
            }
            if ($method['args_max'] < \MAX_ARGS) {
                $maxArgs[$mfnp] = $method['args_max'];
            }
        }

        // less argument than the minimum number of arguments
        $this->atomIs('Staticmethodcall')
             ->analyzerIsNot('self')
             ->filter(
                $this->side()
                     ->outIs('CLASS')
                     ->savePropertyAs('fullnspath', 'fnp')
             )

             ->filter(
                $this->side()
                     ->outIs('METHOD')
                     ->outIs('NAME')
                     ->savePropertyAs('lccode', 'name')
             )
             ->initVariable('mfnp', '0')
             ->raw('sideEffect{ mfnp = fnp + "::" + name;}')

             ->outIs('METHOD')
             ->isLessHash('count', $minArgs, 'mfnp')

             ->back('first');
        $this->prepareQuery();

        // more arguments than the minimum number of arguments
        $this->atomIs('Staticmethodcall')
             ->analyzerIsNot('self')
             ->filter(
                $this->side()
                     ->outIs('CLASS')
                     ->savePropertyAs('fullnspath', 'fnp')
             )

             ->filter(
                $this->side()
                     ->outIs('METHOD')
                     ->outIs('NAME')
                     ->savePropertyAs('lccode', 'name')
             )
             ->initVariable('mfnp', '0')
             ->raw('sideEffect{ mfnp = fnp + "::" + name;}')

             ->outIs('METHOD')
             ->isMoreHash('count', $maxArgs, 'mfnp')

             ->back('first');
        $this->prepareQuery();

       // $o->m(), too little arguments
       $this->atomIs('Methodcall')
            ->analyzerIsNot('self')
             ->filter(
                $this->side()
                     ->outIs('OBJECT')
                     ->inIs('DEFINITION')
                     ->atomIs('Variabledefinition')
                     ->outIs('DEFAULT')
                     ->atomIs('New')
                     ->outIs('NEW')
                     ->savePropertyAs('fullnspath', 'fnp')
             )

             ->filter(
                $this->side()
                     ->outIs('METHOD')
                     ->outIs('NAME')
                     ->savePropertyAs('lccode', 'name')
             )
             ->initVariable('mfnp', '0')
             ->raw('sideEffect{ mfnp = fnp + "::" + name;}')

             ->outIs('METHOD')
             ->isLessHash('count', $minArgs, 'mfnp')

            ->back('first');
       $this->prepareQuery();

       // $o->m(), too many arguments
       $this->atomIs('Methodcall')
            ->analyzerIsNot('self')
             ->filter(
                $this->side()
                     ->outIs('OBJECT')
                     ->inIs('DEFINITION')
                     ->atomIs('Variabledefinition')
                     ->outIs('DEFAULT')
                     ->atomIs('New')
                     ->outIs('NEW')
                     ->savePropertyAs('fullnspath', 'fnp')
             )

             ->filter(
                $this->side()
                     ->outIs('METHOD')
                     ->outIs('NAME')
                     ->savePropertyAs('lccode', 'name')
             )
             ->initVariable('mfnp', '0')
             ->raw('sideEffect{ mfnp = fnp + "::" + name;}')

             ->outIs('METHOD')
             ->isMoreHash('count', $maxArgs, 'mfnp')

            ->back('first');
       $this->prepareQuery();

        //Custom methods, when we can find the definition
        $this->atomIs(array('Methodcall', 'Staticmethodcall'))
             ->analyzerIsNot('self')
             ->outIs('METHOD')
             ->savePropertyAs('count', 'call')
             ->back('first')
             ->inIs('DEFINITION')
             ->atomIs(array('Method', 'Magicmethod'))
             ->analyzerIsNot('Functions/VariableArguments')
             ->isLess('call', 'args_min')
             ->back('first');
        $this->prepareQuery();

        $this->atomIs(array('Methodcall', 'Staticmethodcall'))
             ->analyzerIsNot('self')
             ->outIs('METHOD')
             ->savePropertyAs('count', 'call')
             ->back('first')
             ->inIs('DEFINITION')
             ->atomIs(array('Method', 'Magicmethod'))
             ->analyzerIsNot('Functions/VariableArguments')
             ->isMore('call', 'args_max')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;
use Exakat\Query\DSL\FollowParAs;

class MismatchTypeAndDefault extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/PropagateConstants',
                     'Complete/PropagateCalls',
                     'Complete/MakeClassConstantDefinition',
                    );
    }

    public function analyze() {
        $values = array('Null',
                        'String',
                        'Arrayliteral',
                        'Integer',
                        'Float',
                        'Boolean',
                        'Addition',
                        'Multiplication',
                        'Power',
                        'Heredoc',
                        'Concatenation',
                        'Staticclass',
                        'Comparison',
                        'Bitshift',
                     );

        // function foo(string $s = 3)
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->as('arg')
             ->outIs('DEFAULT')
             ->atomIsNot('Void')
             ->hasNoIn('RIGHT')
             ->followParAs(FollowParAs::FOLLOW_NONE) // basic handling of ternary
             ->atomIs($values, self::WITH_CONSTANTS)
             // In case we stay here, even after following the constants
             ->atomIsNot(self::STATIC_NAMES)
             ->savePropertyAs('label', 'type')
             ->back('arg')
             ->isNotNullable()
             ->outIs('TYPEHINT')
             ->atomIsNot('Void')
             ->raw(<<<'GREMLIN'
filter{
    switch(it.get().value("fullnspath")) {
        case '\\string' : 
            !(type in ["String", "Heredoc", "Concatenation", "Staticclass", "Null"]);
            break;

        case '\\int' : 
            !(type in ["Integer", "Addition", "Multiplication", "Power", "Null"]);
            break;

        case '\\float' : 
            !(type in ["Float", "Integer", "Addition", "Multiplication", "Power", "Null"]);
            break;

        case '\\bool' : 
            !(type in ["Boolean", "Comparison", "Logical", "Bitshift", "Not", "Null"]);
            break;

        case '\\array' : 
            !(type in ["Arrayliteral", "Addition", "Null"]);
            break;
        
        // callable
        // object
        // iterable
        // self, static
        default : 
            !(type in ["Null"]);
            break;
    }
}
GREMLIN
)
             ->back('first');
        $this->prepareQuery();

        // function foo(?string $s = 3)
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->as('arg')
             ->outIs('DEFAULT')
             ->atomIsNot('Void')
             ->hasNoIn('RIGHT')
             ->followParAs(FollowParAs::FOLLOW_NONE) // basic handling of ternary
             ->atomIs($values, self::WITH_CONSTANTS)
             // In case we stay here, even after following the constants
             ->atomIsNot(self::STATIC_NAMES)
             ->savePropertyAs('label', 'type')
             ->back('arg')
             ->isNullable()
             ->outIs('TYPEHINT')
             ->atomIsNot('Null')
             ->raw(<<<'GREMLIN'
filter{
    switch(it.get().value("fullnspath")) {
        case '\\string' : 
            !(type in ["String", "Heredoc", "Concatenation", "Null", "Staticclass", "Integer", "Float"]);
            break;

        case '\\int' : 
            !(type in ["Integer", "Addition", "Multiplication", "Power", "Null"]);
            break;

        case '\\float' : 
            !(type in ["Float", "Integer", "Addition", "Multiplication", "Power", "Null"]);
            break;

        case '\\bool' : 
            !(type in ["Boolean", "Null", "Comparison", "Logical", "Not"]);
            break;

        case '\\array' : 
            !(type in ["Arrayliteral", "Addition", "Null"]);
            break;
        
        // callable
        // object
        // iterable
        // self, static
        default : 
            !(type in ["Null"]);
            break;
    }
}
GREMLIN
)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class NullableWithoutCheck extends Analyzer {
    public function analyze() {
        // function foo(?D $c) { echo $c->d;} // No check, but nullable??
        $this->atomIs('Parameter')
             ->isNullable()
             ->outIs('TYPEHINT')
             ->atomIsNot('Void')
             ->back('first')
             ->not(
                $this->side()
                     ->outIs('NAME')
                     ->outIs('DEFINITION')
                     ->inIs('ARGUMENT')
                     ->functioncallIs('\\is_null')
             )
             ->not(
                $this->side()
                     ->outIs('NAME')
                     ->outIs('DEFINITION')
                     ->inIs(array('LEFT', 'RIGHT'))
                     ->atomIs('Comparison')
                     ->outIs(array('LEFT', 'RIGHT'))
                     ->atomIs('Null')
             )
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class NoLiteralForReference extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/SetClassMethodRemoteDefinition',
                     'Complete/PropagateConstants',
                    );
    }

    public function analyze() {
        $atoms = array('Integer',
                       'Null',
                       'Void',
                       'Float',
                       'Addition',
                       'Multiplication',
                       'Bitshift',
                       'Logical',
                       'Ternary',
                       'Identifier',
                       'Nsname',
                       'Assignation',
                       'Ternary',
                       );

        // foo(1)
        // function foo(&$r) {}
        $this->atomIs(self::CALLS)
             ->outIs('ARGUMENT')
             ->is('constant', true)
             ->atomIsNot(array('Void', 'Functioncall', 'Methodcall', 'Staticmethodcall'))
             ->savePropertyAs('rank', 'ranked')
             ->back('first')
             ->inIs('DEFINITION')
             ->outWithRank('ARGUMENT', 'ranked')
             ->is('reference', true)
             ->back('first');
        $this->prepareQuery();

        // foo(bar_without_reference)
        // function foo(&$r) {}
        $this->atomIs(self::CALLS)
             ->outIs('ARGUMENT')
             ->savePropertyAs('rank', 'ranked')
             ->atomIs(array('Functioncall', 'Methodcall', 'Staticmethodcall'))
             ->inIs('DEFINITION')
             ->isNot('reference', true)

             ->back('first')
             ->inIs('DEFINITION')
             ->outWithRank('ARGUMENT', 'ranked')
             ->is('reference', true)
             ->back('first');
        $this->prepareQuery();

        // function &foo($r) { return 2; }
        $this->atomIs(self::FUNCTIONS_ALL)
             ->is('reference', true)
             ->outIs('BLOCK')
             ->atomInside('Return')
             ->outIs('RETURN')
             ->outIsIE('CODE') // Skip parenthesis
             ->atomIs($atoms)
             ->back('first');
        $this->prepareQuery();

        // function &foo($r) { return foo_without_ref(); }
        $this->atomIs(self::FUNCTIONS_ALL)
             ->is('reference', true)
             ->outIs('BLOCK')
             ->atomInside('Return')
             ->outIs('RETURN')
             ->outIsIE('CODE') // Skip parenthesis
             ->atomIs(self::CALLS)
             ->inIs('DEFINITION')
             ->isNot('reference', true)
             ->outIs('RETURNTYPE')
             ->atomIs('Scalartypehint')
             ->back('first');
        $this->prepareQuery();

        // function &foo($r) { return foo_without_ref(); }
        $this->atomIs(self::FUNCTIONS_ALL)
             ->is('reference', true)
             ->outIs('BLOCK')
             ->atomInside('Return')
             ->outIs('RETURN')
             ->outIsIE('CODE') // Skip parenthesis
             ->atomIs(self::CALLS)
             ->inIs('DEFINITION')
             ->isNot('reference', true)
             ->outIs('RETURNTYPE')
             ->atomIs('Void')
             ->inIs('RETURNTYPE')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Return')
             ->atomIsNot(self::CONTAINERS)
             ->back('first');
        $this->prepareQuery();

        // fn &foo($r) { return 2; }
        $this->atomIs('Arrowfunction')
             ->is('reference', true)
             ->outIs('BLOCK')
             ->outIsIE('CODE') // Skip parenthesis
             ->atomIs($atoms)
             ->back('first');
        $this->prepareQuery();

        // fn &foo($r) { return foo_without_ref(); }
        $this->atomIs('Arrowfunction')
             ->is('reference', true)
             ->outIs('BLOCK')
             ->outIsIE('CODE') // Skip parenthesis
             ->atomIs(self::CALLS)
             ->inIs('DEFINITION')
             ->isNot('reference', true)
             ->outIs('RETURNTYPE')
             ->atomIs('Scalartypehint')
             ->back('first');
        $this->prepareQuery();

        // function &foo($r) { return foo_without_ref(); }
        $this->atomIs('Arrowfunction')
             ->is('reference', true)
             ->outIs('BLOCK')
             ->outIsIE('CODE') // Skip parenthesis
             ->atomIs(self::CALLS)
             ->inIs('DEFINITION')
             ->isNot('reference', true)
             ->outIs('RETURNTYPE')
             ->atomIs('Void')
             ->inIs('RETURNTYPE')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Return')
             ->atomIsNot(self::CONTAINERS)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class Closures extends Analyzer {
    // function ($x) {}
    public function analyze() {
        $this->atomIs('Closure');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class UselessReferenceArgument extends Analyzer {
    public function analyze() {
        //function foo(&$a) { echo $a; }
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->is('reference', true)
             ->savePropertyAs('code', 'name')
             ->back('first')
             ->outIs('BLOCK')
             ->not(
                $this->side()
                     ->atomInsideNoDefinition(self::VARIABLES_USER)
                     ->samePropertyAs('code', 'name', self::CASE_SENSITIVE)
                     ->inIsIE(array('VARIABLE', 'OBJECT'))
                     ->is('isModified', true)
             )
             ->back('first');
        $this->prepareQuery();

        //foreach($a as &$b) {$b->a = $b->m();}
        $this->atomIs('Foreach')
             ->outIs('VALUE')
             ->is('reference', true)
             ->savePropertyAs('code', 'variable')
             ->back('first')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Variableobject')
             ->samePropertyAs('code', 'variable', self::CASE_SENSITIVE)
             ->inIs('OBJECT')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class ShouldYieldWithKey extends Analyzer {
    public function analyze() {
        //iterator_to_array( bad1( ) );
        // function bad1() { yield from generator(); yield from generator(); }
        $this->atomFunctionIs('\\iterator_to_array')
             ->outIs('ARGUMENT')
             ->inIs('DEFINITION')
             ->atomInsideNoDefinition('Yieldfrom')
             ->outIs('YIELD')
             ->inIs('DEFINITION')
             ->atomInsideNoDefinition('Yield')
             ->outIs('YIELD')
             ->atomIsNot('Keyvalue')
             ->back('first');
        $this->prepareQuery();

        // TODO : Yieldfrom may have several levels of yielding. Repeat is necessary
        // TODO : when Yieldfrom is alone, it should be OK (but not if there are mixed yield from and yield)
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class MissingTypehint extends Analyzer {
    public function analyze() {
        // function foo($a) : void;
        // missing argument's typehint
        $this->atomIs(self::FUNCTIONS_ALL)
             ->analyzerIsNot('self')
             ->not(
                $this->side()
                     ->outIs('NAME')
                     ->codeIs(array('__get',
                                    '__set',
                                    ),
                              self::TRANSLATE, self::CASE_INSENSITIVE)
              )
             ->outIs('ARGUMENT')
             ->atomIs(self::ARGUMENTS)
             ->outIs('TYPEHINT')
             ->atomIs('Void')
             ->back('first');
        $this->prepareQuery();

        // function foo(string $a) ;
        // missing methods's return typehint
        $this->atomIs(self::FUNCTIONS_ALL)
             ->analyzerIsNot('self')
             ->not(
                $this->side()
                     ->outIs('NAME')
                     ->codeIs(array('__construct',
                                    '__destruct',
                                    '__get',
                                    '__set',
                                    ), self::TRANSLATE, self::CASE_INSENSITIVE)
              )
             ->outIs('RETURNTYPE')
             ->atomIs('Void')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class HasFluentInterface extends Analyzer {
    public function dependsOn(): array {
        return array('Functions/HasNotFluentInterface');
    }

    public function analyze() {
        $this->atomIs('Method')
             ->analyzerIsNot('Functions/HasNotFluentInterface');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class TooManyLocalVariables extends Analyzer {
    protected $tooManyLocalVariableThreshold = 15;

    public function analyze() {
        $this->atomIs(self::FUNCTIONS_ALL)
             // Collect all arguments
             ->raw(<<<GREMLIN
where( __.out("DEFINITION")
         .hasLabel("Variabledefinition", "Staticdefinition")
         .count()
         .is(gte($this->tooManyLocalVariableThreshold))
     ) 
GREMLIN
);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class UsesDefaultArguments extends Analyzer {
    public function analyze() {
        $functions = $this->methods->getFunctionsArgsInterval();

        $positions = array();
        foreach($functions as $function) {
            if ($function['args_min'] === $function['args_max']) { continue; }
            if ($function['args_max'] === \MAX_ARGS) { continue; }
            // Only test if the last is missing. This is sufficient
            $positions[$function['args_max'] - 1][] = "\\$function[name]";
        }

        foreach($positions as $position => $f) {
            $this->atomFunctionIs($f)
                 ->noChildWithRank('ARGUMENT', $position)
                 ->back('first');
            $this->prepareQuery();
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class ShouldBeTypehinted extends Analyzer {
    public function analyze() {
        // spotting objects with property
        $this->atomIs('Parameter')
             ->analyzerIsNot('self')
             ->outIs('TYPEHINT')
             ->atomIs('Void')
             ->hasNoIn('RIGHT')
             ->back('first')

             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->inIs('OBJECT')
             ->atomIs(array('Methodcall', 'Member', 'Staticproperty', 'Staticclass', 'Staticmethodcall'))
             ->back('first');
        $this->prepareQuery();

        // spotting array with array[index]
        $this->atomIs('Parameter')
             ->analyzerIsNot('self')
             ->outIs('TYPEHINT')
             ->atomIs('Void')
             ->hasNoIn('RIGHT')
             ->back('first')

             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->inIs(array('VARIABLE', 'APPEND'))
             ->not(
                $this->side()
                     ->atomIs('Array')
                     ->outIs('INDEX')
                     ->atomIs('Integer', self::WITH_CONSTANTS)
             )
             ->atomIs(array('Array', 'Arrayappend'))
             ->back('first');
        $this->prepareQuery();

        // spotting array in a functioncall
        $this->atomIs('Parameter')
             ->analyzerIsNot('self')
             ->outIs('TYPEHINT')
             ->atomIs('Void')
             ->hasNoIn('RIGHT')
             ->back('first')

             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->inIs('NAME')
             ->atomIs('Functioncall')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class PrefixToType extends Analyzer {
    protected $prefixedType = array('is'   => '\\bool',
                                    'has'  => '\\bool',
                                    //'get'  => '\\bool', Anything, really
                                    //'find' => '\\bool',
                                    'set'  => '\\bool',
                                    'list' => '\\array',
                                    );

    protected $suffixedType = array('list'         => '\\array',
                                    'int'          => '\\int',
                                    'name'         => '\\string',
                                    'description'  => '\\string',
                                    'id'           => '\\int',
                                    'uuid'         => '\\Uuid',
                                    );

    public function analyze() {

        // Prefixes : isPath() : is => bool
        foreach($this->prefixedType as $prefix => $type) {
            $this->atomIs(self::FUNCTIONS_METHOD)
                 ->outIs('NAME')
                 ->regexIs('fullcode', '(?i)^' . $prefix)
                 ->back('first')
                 ->not(
                    $this->side()
                         ->outIs('RETURNTYPE')
                         ->atomIs('Scalartypehint')
                         ->fullnspathIs(makeFullnspath(str2array($type)))
                 )
                 ->back('first');
            $this->prepareQuery();
        }

        // Suffices : getId() : Id => int
        foreach($this->suffixedType as $suffix => $type) {
            $this->atomIs(self::FUNCTIONS_METHOD)
                 ->outIs('NAME')
                 ->regexIs('fullcode', '(?i)' . $suffix . '\\$')
                 ->back('first')
                 ->not(
                    $this->side()
                         ->outIs('RETURNTYPE')
                         ->atomIs('Scalartypehint')
                         ->fullnspathIs(makeFullnspath(str2array($type)))
                 )
                 ->back('first');
            $this->prepareQuery();
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class UselessArgument extends Analyzer {
    public function dependsOn(): array {
        return array('Complete/PropagateCalls',
                     'Complete/FollowClosureDefinition',
                    );
    }

    public function analyze() {
        // function foo($a)
        // foo(2); foo(2); foo(2); // always provide the same arg
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->savePropertyAs('rank', 'ranked')
             ->back('first')
             // More than 2 calling
             ->filter(
                $this->side()
                     ->outIs('DEFINITION')
                     ->raw('count().is(gt(2))')
             )

             ->filter(
                $this->side()
                     ->initVariable('x', '[:]')
                     ->outIs('DEFINITION')
                     ->outIsIE('METHOD')
                     ->outWithRank('ARGUMENT', 'ranked')
                     ->atomIs(array('Integer', 'Float', 'String', 'Boolean', 'Null'), self::WITH_CONSTANTS)
                     ->raw('sideEffect{x[it.get().value("code")] = 1;}.fold().filter{ x.size() == 1;}')
             )
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class HasNotFluentInterface extends Analyzer {
    public function analyze() {
        // return $a;
        $this->atomIs(array('Method', 'Magicmethod'))
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Return')
             ->outIs('RETURN')
             ->atomIsNot('This')
             ->back('first');
        $this->prepareQuery();

        // no return == return null!
        $this->atomIs(array('Method', 'Magicmethod'))
             ->outIs('BLOCK')
             ->noAtomInside('Return')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class MarkCallable extends Analyzer {
    public function analyze() {
        $atoms = 'String';

        $ini = $this->loadIni('php_with_callback.ini');
        $callbacks = array();
        foreach($ini as $position => $functions) {
            $rank = substr($position, 9);
            if ($rank[0] === '_') {
                $rank = substr($position, 10);
            }
            $callbacks[$rank] = $functions;
        }

        /* Supports :
            string as callable : array_map($array, 'string');
            array with static call : array_map($array, array('string', 'string'));
            call_user_func('MyClass::myCallbackMethod');
            
           Don't support :
call_user_func(array('B', 'parent::who')); // A
call_user_func(array('B', 'parent::who')); // check with USE too

call_user_func(array($obj, 'myCallbackMethod'));

        */

        ////////////////////////////////////////////////////////////////////////////////////////////////
        // working with functions (not methods)

        $apply = <<<'GREMLIN'
sideEffect{
    i = it.get().value('noDelimiter').indexOf("::");
    if (i > 0) {
        cbClass = it.get().value('noDelimiter').substring(0, i).toLowerCase();
        if (cbClass.toString()[0] != "\\\\") {
            cbClass = "\\\\" + cbClass;
        };
        it.get().property('fullnspath', cbClass);
        it.get().property('cbMethod', it.get().value('noDelimiter').substring(2 + i).toLowerCase());
    } else {
        fullnspath = it.get().value('noDelimiter').toLowerCase();//.replaceAll( "\\\\\\\\", "\\\\" );
        if (fullnspath == "" || fullnspath.toString()[0] != "\\\\") { 
            fullnspath = "\\\\" + fullnspath;
        };
        it.get().property('fullnspath', fullnspath.replaceAll( "\\\\\\\\\\\\\\\\", "\\\\\\\\" ));
    }
}
GREMLIN;

        // callable is in # position
        foreach($callbacks as $position => $functions) {
            $this->atomFunctionIs($functions)
                 ->outWithRank('ARGUMENT', $position)
                 ->atomIs($atoms)
                 ->hasNoOut('CONCAT')
                 ->raw($apply);
            $this->prepareQuery();
        }

        ////////////////////////////////////////////////////////////////////////////////////////////////
        // working with functions (not methods) : containers
        $atoms = self::CONTAINERS;

        // callable is in # position
        foreach($callbacks as $position => $functions) {
            $this->atomFunctionIs($functions)
                 ->outWithRank('ARGUMENT', $position)
                 ->atomIs($atoms);
            $this->prepareQuery();
        }

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////
        // array('Class', 'method');

        $apply = <<<'GREMLIN'
out('ARGUMENT').has('rank', 0).sideEffect{ cbClassNode = it.get(); }
.in("ARGUMENT").out('ARGUMENT').has('rank', 1).sideEffect{ cbMethodNode = it.get(); }.in("ARGUMENT")
.filter{ cbClassNode.value('noDelimiter').length() > 0}
.sideEffect{
    cbClass = cbClassNode.value('noDelimiter').toLowerCase(); 
    if (cbClass.toString()[0] != "\\\\") {
        cbClass = "\\\\" + cbClass;
    };
    cbMethod = cbMethodNode.value('noDelimiter').toLowerCase();

    theArrayNode.property('cbClass', cbClass);
    theArrayNode.property('cbMethod', cbMethod);
}

GREMLIN;

        $arrayContainsTwoStrings = <<<'GREMLIN'
where( __.out("ARGUMENT").count().is(eq(2)) )
.where( __.out("ARGUMENT").hasLabel("String").where( __.out("CONCAT").count().is(eq(0))).count().is(eq(2)) )

GREMLIN;

        // callable is in # position
        foreach($callbacks as $position => $functions) {
            $this->atomFunctionIs($functions)
                 ->outWithRank('ARGUMENT', $position)
                 ->atomIs('Arrayliteral')
                 ->raw('sideEffect{ theArrayNode = it.get(); }')
                 ->raw($arrayContainsTwoStrings)
                 ->raw($apply);
            $this->prepareQuery();
        }

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////
        // array($object, 'method'); Also, [$object, 'method']
        $apply = <<<'GREMLIN'
out('ARGUMENT').has('rank', 0).sideEffect{ cbObjectNode = it.get(); }
.in("ARGUMENT").out('ARGUMENT').has('rank', 1).sideEffect{ cbMethodNode = it.get(); }.in("ARGUMENT")
.sideEffect{
    // 
    theArrayNode.property("cbObject", cbObjectNode.value("code"));
    theArrayNode.property("cbMethod", cbMethodNode.value("noDelimiter").toLowerCase());
}

GREMLIN;

        $firstArgIsAVariable = 'where ( __.out("ARGUMENT").has("rank", 0).hasLabel("Variable", "This"))';
        $secondArgIsAString = 'where ( __.out("ARGUMENT").has("rank", 1).hasLabel("String").where( __.out("CONCAT").count().is(eq(0))) )';

        // callable is in # position
        foreach($callbacks as $position => $functions) {
            $this->atomFunctionIs($functions)
                 ->outWithRank('ARGUMENT', $position)
                 ->atomIs('Arrayliteral')
                 ->raw('sideEffect{ theArrayNode = it.get(); }')
                 // 1rst array argument is a $this
                 ->raw($firstArgIsAVariable )
                 // 2nd array argument is a real string
                 ->raw($secondArgIsAString)
                 ->raw($apply);
            $this->prepareQuery();
        }

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////
        // Closures

        // callable is in # position
        foreach($callbacks as $position => $functions) {
            $this->atomFunctionIs($functions)
                 ->outWithRank('ARGUMENT', $position)
                 ->atomIs('Closure');
            $this->prepareQuery();
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class UnusedInheritedVariable extends Analyzer {
    public function analyze() {
        // function ($a) use ($b) { return $a; }
        $this->atomIs('Closure')
             ->outIs('USE')
             ->savePropertyAs('code', 'inherited')
             ->isUsed(0)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class CouldReturnVoid extends Analyzer {
    public function analyze() {
        // function foo() {} // empty function
        $this->atomIs(array('Function', 'Arrowfunction', 'Closure', 'Method'))
             ->analyzerIsNot('self')
             ->outIs('RETURNED')
             ->atomIs('Void')
             ->hasNoIn('RETURN')
             ->back('first');
        $this->prepareQuery();

        // function foo() { } // always return ;
        $this->atomIs(array('Function', 'Arrowfunction', 'Closure', 'Method'))
             ->analyzerIsNot('self')
             ->hasOut('RETURNED')
             ->not(
                $this->side()
                     ->outIs('RETURNED')
                     ->atomIsNot('Void')
                     ->hasIn('RETURN')
             )
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class Typehints extends Analyzer {
    public function analyze() {
        // List all typehints in the code
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->outIs('TYPEHINT')
             ->atomIsNot(array('Void', 'Null'));
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class IsGlobal extends Analyzer {

    public function analyze() {
        $this->atomIs('Functioncall')
             ->tokenIs(array('T_STRING', 'T_NS_SEPARATOR'))
             ->hasNoClassInterfaceTrait()
             ->hasNoFunction();
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class DeepDefinitions extends Analyzer {
    public function dependsOn(): array {
        return array('Functions/Closures');
    }

    public function analyze() {
        $this->atomIs('Function')
             ->analyzerIsNot('Functions/Closures')
             ->goToFunction()
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('Class')
             ->goToFunction()
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('Interface')
             ->goToFunction()
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('Trait')
             ->goToFunction()
             ->back('first');
        $this->prepareQuery();

        $this->atomIs('Const')
             ->goToFunction()
             ->back('first');
        $this->prepareQuery();

        // define ? Constants are OK.
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class TooMuchIndented extends Analyzer {
    protected $indentationAverage = 1;
    protected $minimumSize        = 3;

    public function analyze() {
        // function foo() { if ($a) { try {++$a;} catch (E $e) { ++$a;}} else { ++$b;++$b2;}}
        // average indentation : 1
        $this->atomIs(self::FUNCTIONS_ALL)
             ->processIndentingAverage($this->indentationAverage, $this->minimumSize);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class OneLetterFunctions extends Analyzer {
    public function analyze() {
        // function s() {}
        $this->atomIs(self::FUNCTIONS_NAMED)
             ->outIs('NAME')
             ->fullcodeLength(' == 1 ');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class ShouldUseConstants extends Analyzer {
    public function analyze() {
        $functions = $this->loadIni('constant_usage.ini');

        // todo : support 0 as a valid value
        $authorizedAtoms = array('Logical', 'Addition',
                                 'Identifier',
                                 'Nsname',
                                 'Variable',
                                 'Array',
                                 'Member',
                                 'Staticproperty',
                                 'Staticconstant',
                                 'Staticmethodcall',
                                 'Methodcall',
                                 'Functioncall',
                                 'Ternary',
                                 'Parenthesis',
                                 'Void',
                                 );

        $positions = range(0, 6);
        foreach($positions as $position) {
            if(empty($functions->{"functions{$position}"})) {
                continue;
            }

            $fullnspath = makeFullNsPath($functions->{"functions{$position}"});

            // Simple eliminations
            $this->atomFunctionIs($fullnspath)
                 ->outIs('ARGUMENT')
                 ->is('rank', $position)
                 ->outIsIE(array('THEN', 'ELSE', 'CODE'))
                 ->atomIsNot($authorizedAtoms)
                 ->back('first');
            $this->prepareQuery();

            // Simple errors
            $this->atomFunctionIs($fullnspath)
                 ->outIs('ARGUMENT')
                 ->is('rank', $position)
                 ->outIsIE(array('THEN', 'ELSE', 'CODE'))
                 ->atomIs(array('Logical', 'Addition'))
                 ->tokenIsNot(array('T_OR', 'T_PLUS'))
                 ->back('first');
            $this->prepareQuery();

            // Complex combinaisons, with logical, parenthesis or ternaries
            $this->atomFunctionIs($fullnspath)
                 ->outIs('ARGUMENT')
                 ->is('rank', $position)
                 ->outIsIE(array('THEN', 'ELSE', 'CODE'))
                 ->atomIs(array('Logical', 'Addition'))
                 ->tokenIs(array('T_OR', 'T_PLUS'))
                 // Skip Ternaries and parenthesis
                 ->filter(
                    $this->side()
                         ->followExpression()
                         ->atomIsNot($authorizedAtoms)
                 )
                 ->back('first');
            $this->prepareQuery();
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class LoopCalling extends Analyzer {
    public function analyze() {
        // possitlbe extension to methods but probably very costly
        // loop of 2
        $this->atomIs('Function')
             ->savePropertyAs('fullnspath', 'name')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Functioncall')

             ->has('fullnspath')
             ->notSamePropertyAs('fullnspath', 'name')

             ->functionDefinition()
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Functioncall')
             ->has('fullnspath')

             ->samePropertyAs('fullnspath', 'name')
             ->back('first')
             ->outIs('NAME');
        $this->prepareQuery();

        // loop of 3
        $this->atomIs('Function')
             ->savePropertyAs('fullnspath', 'name')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Functioncall')
             ->has('fullnspath')
             ->notSamePropertyAs('fullnspath', 'name')

             ->functionDefinition()
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Functioncall')
             ->has('fullnspath')
             ->notSamePropertyAs('fullnspath', 'name')

             ->functionDefinition()
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Functioncall')
             ->has('fullnspath')
             ->samePropertyAs('fullnspath', 'name')

             ->back('first')
             ->outIs('NAME');
        $this->prepareQuery();

        // loop of 4
        $this->atomIs('Function')
             ->savePropertyAs('fullnspath', 'name')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Functioncall')
             ->has('fullnspath')
             ->notSamePropertyAs('fullnspath', 'name')

             ->functionDefinition()
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Functioncall')
             ->has('fullnspath')
             ->notSamePropertyAs('fullnspath', 'name')

             ->functionDefinition()
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Functioncall')
             ->has('fullnspath')
             ->notSamePropertyAs('fullnspath', 'name')

             ->functionDefinition()
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Functioncall')
             ->has('fullnspath')
             ->samePropertyAs('fullnspath', 'name')

             ->back('first')
             ->outIs('NAME');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class NoReturnUsed extends Analyzer {
    public function analyze() {
        // Functions
        $this->atomIs('Function')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Return')
             ->outIs('RETURN')
             ->atomIsNot('Void')
             ->back('first')
             ->hasOut('DEFINITION')
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->outIs('DEFINITION')
                             ->hasNoIn('EXPRESSION')
                     )
             );
        $this->prepareQuery();

        // Methods
        $this->atomIs(array('Method', 'Magicmethod'))
             ->is('static', true)
             ->savePropertyAs('lccode', 'methode')
             ->outIs('BLOCK')
             ->atomInsideNoDefinition('Return')
             ->outIs('RETURN')
             ->atomIsNot('Void')
             ->back('first')
             ->goToClass()
             ->filter(
                $this->side()
                     ->outIs('DEFINITION')
                     ->inIs('CLASS')
                     ->atomIs('Staticmethodcall')
                     ->outIs('METHOD')
                     ->tokenIs('T_STRING')
                     ->samePropertyAs('code', 'methode', self::CASE_INSENSITIVE)
             )
             ->not(
                $this->side()
                     ->filter(
                        $this->side()
                             ->outIs('DEFINITION')
                             ->inIs('CLASS')
                             ->atomIs('Staticmethodcall')
                             ->outIs('METHOD')
                             ->tokenIs('T_STRING')
                             ->samePropertyAs('code', 'methode', self::CASE_INSENSITIVE)
                             ->inIs('METHOD')
                             ->hasNoIn('EXPRESSION')
                     )
             )
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class TypehintedReferences extends Analyzer {
    public function analyze() {
        // function foo(object &$x)
        // function foo(X &$x)
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->is('reference', true)
             ->outIs('TYPEHINT')
             ->atomIsNot(array('Void', 'Scalartypehint'))
             ->back('first');
        $this->prepareQuery();

        // function &foo($x) : X
        $this->atomIs(self::FUNCTIONS_ALL)
             ->is('reference', true)
             ->outIs('RETURNTYPE')
             ->atomIsNot(array('Void', 'Scalartypehint'))
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class FunctionsUsingReference extends Analyzer {
    public function analyze() {
        // Spot references in function definitions
        $this->atomIs('Function')
             ->outIs('ARGUMENT')
             ->is('reference', true)
             ->back('first');
        $this->prepareQuery();

    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class FallbackFunction extends Analyzer {
    public function analyze() {
        // namespace { function foo() {} }
        // namespace A { foo(); } // fallback
        $this->atomIs('Functioncall')
             ->hasFunctionDefinition()
             ->has('fullnspath')
             ->regexIs('fullnspath', '^\\\\\\\\[a-zA-Z_0-9]+\$')
             ->goToNamespace()
             ->outIs('NAME')
             ->atomIsNot('Void')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class NoBooleanAsDefault extends Analyzer {
    public function analyze() {
        // function foo($a = true) {}
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->outIs('DEFAULT')
             ->atomInsideNoDefinition('Boolean')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Functions;

use Exakat\Analyzer\Analyzer;

class UnbindingClosures extends Analyzer {
    public function analyze() {
        // $closure->bindTo(null)
        $this->atomIs('Methodcall')
             ->outIs('METHOD')
             ->outIs('NAME')
             ->codeIs('bindTo', self::TRANSLATE, self::CASE_INSENSITIVE)
             ->inIs('NAME')
             ->outWithRank('ARGUMENT', 0)
             ->atomIs('Null', self::WITH_CONSTANTS)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer;

interface RulesetsInterface {
    public function getRulesetsAnalyzers(array $ruleset = array()): array;

    public function getRulesetForAnalyzer(string $analyzer = ''): array;

    public function getRulesetsForAnalyzer(array $list = array()): array;

    public function getSeverities(): array;

    public function getTimesToFix(): array;

    public function getFrequences(): array;

    public function listAllAnalyzer(string $folder = ''): array;

    public function listAllRulesets(array $ruleset = array()): array;

    public function getSuggestionRuleset(array $ruleset = array()): array;

    public function getSuggestionClass(string $name): array;

    public function getAnalyzerInExtension(string $name): array;

}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Psr;

use Exakat\Analyzer\Common\InterfaceUsage;

class Psr13Usage extends InterfaceUsage {
    public function analyze() {
        $info = $this->loadJson('psr/psr-13.json');

        // Using the defined interfaces
        $this->interfaces = array();
        foreach($info->interfaces as $interface) {
            $this->interfaces[] = $interface->namespace . '\\' . $interface->name;
        }
        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Psr;

use Exakat\Analyzer\Common\InterfaceUsage;

class Psr6Usage extends InterfaceUsage {
    public function analyze() {
        $info = $this->loadJson('psr/psr-6.json');

        // Using the defined interfaces
        $this->interfaces = array();
        foreach($info->interfaces as $interface) {
            $this->interfaces[] = $interface->namespace . '\\' . $interface->name;
        }
        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Psr;

use Exakat\Analyzer\Common\InterfaceUsage;

class Psr7Usage extends InterfaceUsage {
    public function analyze() {
        $info = $this->loadJson('psr/psr-7.json');

        // Using the defined interfaces
        $this->interfaces = array();
        foreach($info->interfaces as $interface) {
            $this->interfaces[] = $interface->namespace . '\\' . $interface->name;
        }
        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Psr;

use Exakat\Analyzer\Common\InterfaceUsage;

class Psr11Usage extends InterfaceUsage {
    public function analyze() {
        $info = $this->loadJson('psr/psr-11.json');

        // Using the defined interfaces
        $this->interfaces = array();
        foreach($info->interfaces as $interface) {
            $this->interfaces[] = $interface->namespace . '\\' . $interface->name;
        }
        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Psr;

use Exakat\Analyzer\Common\InterfaceUsage;

class Psr16Usage extends InterfaceUsage {
    public function analyze() {
        $info = $this->loadJson('psr/psr-16.json');

        // Using the defined interfaces
        $this->interfaces = array();
        foreach($info->interfaces as $interface) {
            $this->interfaces[] = $interface->namespace . '\\' . $interface->name;
        }
        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Psr;

use Exakat\Analyzer\Common\InterfaceUsage;

class Psr3Usage extends InterfaceUsage {
    public function analyze() {
        $info = $this->loadJson('psr/psr-3.json');

        // Using the defined interfaces
        $this->interfaces = array();
        foreach($info->interfaces as $interface) {
            $this->interfaces[] = $interface->namespace . '\\' . $interface->name;
        }
        parent::analyze();
    }
}

?>
<?php
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Typehints;

use Exakat\Analyzer\Analyzer;

class CouldBeArray extends Analyzer {
    public function analyze() {
        // return type
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('RETURNED')
             ->atomIs('Arrayliteral')
             ->back('first');
        $this->prepareQuery();

        // argument type
        // $arg . ''
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->as('result')
             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->inIs('VARIABLE')
             ->atomIs(array('Array', 'Arrayappend'))
             ->back('result');
        $this->prepareQuery();

        // is_string
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->as('result')
             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->inIs('ARGUMENT')
             ->functioncallIs('\\is_array')
             ->back('result');
        $this->prepareQuery();
    }
}

?>
<?php
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Typehints;

use Exakat\Analyzer\Analyzer;

class CouldBeCIT extends Analyzer {
    public function analyze() {
        // return type
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('RETURNED')
             ->atomIs(array('New', 'Clone', 'This'), self::WITH_VARIABLES)
             ->back('first');
        $this->prepareQuery();

        // return foo(); function foo() : A {}
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('RETURNED')
             ->atomIs(self::FUNCTIONS_ALL, self::WITH_VARIABLES)
             ->inIs('DEFINITION')
             ->outIs('RETURNTYPE')
             ->atomIs(array('Identifier', 'Nsname'))
             ->back('first');
        $this->prepareQuery();

        // argument type
        // $arg . ''
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->as('result')
             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->inIs(array('VARIABLE', 'CLASS'))
             ->atomIs(array(''))
             ->back('result');
        $this->prepareQuery();

        // $arg instanceof B
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->as('result')
             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->inIs('VARIABLE')
             ->atomIs('Instanceof')
             ->back('result');
        $this->prepareQuery();

    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Typehints;

use Exakat\Analyzer\Analyzer;

class CouldBeBoolean extends Analyzer {
    public function analyze() {
        // return type
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('RETURNED')
             ->atomIs(array('Comparison', 'Logical'))
             ->back('first');
        $this->prepareQuery();

        // argument type
        // is_boolean
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->as('result')
             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->inIs('ARGUMENT')
             ->functioncallIs('\\is_bool')
             ->back('result');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Typehints;

use Exakat\Analyzer\Analyzer;

class CouldBeString extends Analyzer {
    public function analyze() {
        // return type
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('RETURNED')
             ->atomIs('Concatenation')
             ->back('first');
        $this->prepareQuery();

        // argument type
        // $arg . ''
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->as('result')
             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->hasIn('CONCAT')
             ->back('result');
        $this->prepareQuery();

        // is_string
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->as('result')
             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->inIs('ARGUMENT')
             ->functioncallIs('\\is_string')
             ->back('result');
        $this->prepareQuery();

    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Typehints;

use Exakat\Analyzer\Analyzer;

class CouldBeVoid extends Analyzer {
    public function analyze() {
        // function foo() {} (no return)
        $this->atomIs(self::FUNCTIONS_ALL)
             ->not(
                $this->side()
                     ->outIs('RETURNED')
                     ->atomIsNot('Void')
             );
        $this->prepareQuery();
    }
}

?>
<?php
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Typehints;

use Exakat\Analyzer\Analyzer;

class CouldNotType extends Analyzer {
    /* PHP version restrictions
    protected $phpVersion = '7.4-';
    */

    public function dependsOn() : array {
        return array('Typehints/CouldBeCIT',
                    );
    }
    
    public function analyze() {
        // return type
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('RETURNTYPE')
             ->atomIs('Void')
             ->analyzerIsNot(array('Typehints/CouldBeCIT',
                                   'Typehints/CouldBeString',
                                   'Typehints/CouldBeArray',
                                   'Typehints/CouldBeBoolean',
                                   'Typehints/CouldBeVoid',
))
             ->back('first');
        $this->prepareQuery();

        // argument type
        // $arg . ''
        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->as('result')
             ->outIs('TYPEHINT')
             ->atomIs('Void')
             ->back('result')

             ->analyzerIsNot(array('Typehints/CouldBeCIT',
                                   'Typehints/CouldBeString',
                                ))
             ->back('result');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Modules;

use Exakat\Analyzer\Analyzer;

class NativeReplacement extends Analyzer {
    protected $replacements = null;

    public function analyze() {
        $this->replacements = $this->loadJson('native_replacement.json');

        if (empty($this->replacements)) {
            return;
        }

        if (isset($this->replacements->variables)) {
            $variables = $this->replacements->variables;

            $this->atomIs(array('Variable', 'Variableobject', 'Variablearray', 'Phpvariable'))
                  ->codeIs(array_keys((array) $variables));
            $this->prepareQuery();
        }

        if (isset($this->replacements->functions)) {
            $functions = $this->replacements->functions;
            $functions = makeFullnspath(array_keys((array) $functions));

            $this->atomFunctionIs($functions);
            $this->prepareQuery();
        }

        if (isset($this->replacements->classes)) {
            $classes = $this->replacements->classes;
            $classes = makeFullnspath(array_keys((array) $classes));

            $this->atomIs('Class')
                 ->fullnspathIs($classes);
            $this->prepareQuery();
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Modules;

use Exakat\Analyzer\Common\PropertyUsage;

class DefinedProperty extends PropertyUsage {
    protected $properties = array();

    public function analyze() {
        $this->properties = $this->config->ext->loadJson('properties.json');

        if (empty($this->properties)) {
            return;
        }

        return parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Modules;

use Exakat\Analyzer\Common\TraitUsage;

class DefinedTraits extends TraitUsage {
    protected $traits = array();

    public function analyze() {
        $traits = $this->config->ext->loadIni('traits.ini', 'traits');

        if (empty($traits)) {
            return;
        }

        $this->traits = $traits;
        return parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Modules;

use Exakat\Analyzer\Analyzer;

class IncomingData extends Analyzer {
    protected $incoming = null;

    public function analyze() {
        $this->incoming = $this->loadJson('incoming_data.json');

        if (empty($this->incoming)) {
            return;
        }

        if (isset($this->incoming->staticmethods)) {
            $staticmethods = array();
            foreach((array) $this->incoming->staticmethods as $method) {
                list($class, $name) = explode('::', $method);
                array_collect_by($staticmethods, makeFUllnspath($class), $name);
            }

            $this->atomIs('Staticmethodcall')
                 ->outIs('CLASS')
                 ->fullnspathIs(array_keys($staticmethods))
                 ->savePropertyAs('fullnspath', 'fqn')
                 ->back('first')
                 ->outIs('METHOD')
                 ->outIs('NAME')
                 ->isHash('fullcode', $staticmethods, 'fqn')
                 ->back('first');
            $this->prepareQuery();
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Modules;

use Exakat\Analyzer\Common\ClassUsage;

class DefinedClasses extends ClassUsage {
    protected $classes = array();

    public function analyze() {
        $classes = $this->config->ext->loadIni('classes.ini', 'classes');

        if (empty($classes)) {
            return;
        }

        $this->classes = $classes;
        return parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Modules;

use Exakat\Analyzer\Common\FunctionUsage;

class DefinedFunctions extends FunctionUsage {
    protected $functions = array();

    public function analyze() {
        $functions = $this->config->dev->loadIni('functions.ini', 'functions');

        if (empty($functions)) {
            return;
        }

        $this->functions = $functions;
        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Modules;

use Exakat\Analyzer\Analyzer;
use Exakat\Data\Dictionary;

class CalledByModule extends Analyzer {
    protected $data = array();

    public function analyze() {
        $calledBy = $this->config->dev->loadJson('called_by.json');

        // Merging ALL values of all versions.
        if (empty($calledBy)) {
            return;
        }
        $calledBy = array_merge_recursive(...array_values($calledBy));

        $classes               = array();
        $methods               = array();
        $methods_regex         = array();
        $static_methods        = array();
        $static_methods_regex  = array();
        $classConstants        = array();
        if (isset($calledBy['classes'])) {
            foreach($calledBy['classes'] as $class => $what) {
                // Classes
                if (isset($what['classes'])) {
                    $classes[] = $class;
                }

                // No properties : it makes no sense
                // Methods (No handling of visibility)
                if (isset($what['methods'])) {
                    foreach($what['methods'] as $name) {
                        if ($name[0] === '/') {
                            array_collect_by($methods_regex, makeFullnspath($class), trim($name, '/'));
                        } else {
                            array_collect_by($methods, makeFullnspath($class), mb_strtolower($name));
                        }
                    }
                }

                // Static Methods (No handling of visibility)
                if (isset($what['staticmethods'])) {
                    foreach($what['staticmethods'] as $name) {
                        if ($name[0] === '/') {
                            array_collect_by($static_methods_regex, makeFullnspath($class), mb_strtolower(trim($name, '/')));
                        } else {
                            array_collect_by($static_methods, makeFullnspath($class),  mb_strtolower(mb_strtolower($name)));
                        }
                    }
                }

                // Constants (No handling of visibility)
                if (isset($what['constants'])) {
                    foreach($what['constants'] as $name) {
                        array_collect_by($classConstants, makeFullnspath($class), $name);
                    }
                }
            }

            $this->processClasses($classes);

            $this->processClassConstants($classConstants);

            $this->processMethods($methods);
            $this->processMethodsRegex($methods_regex);

            $this->processStaticMethods($static_methods);
            $this->processStaticMethodsRegex($static_methods_regex);

// No usage for those
//            $this->processTraits($classes);
//            $this->processInterfaces($classes);
//            $this->processProperties($classes);
        }

        $this->processFunctions($calledBy['functions']);
        $this->processConstants($calledBy['constants']);
// No usage for variables
//        $this->processVariables($calledBy['variables']);
    }

    private function processFunctions($functions) {
        if (empty($functions)) {
            return;
        }

        $this->atomIs('Function')
             ->fullnspathIs($functions);
        $this->prepareQuery();
    }

    private function processConstants($constants) {
        if (empty($constants)) {
            return;
        }

        $this->atomIs('Defineconstant')
             ->outIs('NAME')
             ->fullnspathIs($constants);
        $this->prepareQuery();

        $this->atomIs('Const')
             ->outIs('CONST')
             ->outIs('NAME')
             ->fullnspathIs($constants)
             ->inIs('NAME');
        $this->prepareQuery();
    }

    private function processClasses($classes) {
        if (empty($classes)) {
            return;
        }

        $this->atomIs('Class')
             ->outIs('EXTENDS')
             ->atomIs(self::STATIC_NAMES)
             ->is('fullnspath', $classes)
             ->back('first');
        $this->prepareQuery();
    }

    private function processClassConstants($constants) {
        if (empty($constants)) {
            return;
        }

        $this->atomIs(self::CLASSES_ALL)
             ->fullnspathIs(array_keys($constants))
             ->savePropertyAs('fullnspath', 'fqn')
             ->outIs('CONST')
             ->outIs('CONST')
             ->outIs('NAME')
             ->isHash('fullcode', $constants, 'fqn')
             ->inIs('NAME');
        $this->prepareQuery();
    }

    private function processMethods($methods) {
        foreach($methods as &$method) {
            $method = $this->dictCode->translate(array_unique($method), Dictionary::CASE_INSENSITIVE);
        }
        unset($method);
        $methods = array_filter($methods);

        if (empty($methods)) {
            return;
        }

        // Check that the class extends one of the mentionned called class
        $this->atomIs('Class')
             ->goToAllParents(self::INCLUDE_SELF)
             ->outIs('EXTENDS')
             ->fullnspathIs(array_keys($methods))
             ->savePropertyAs('fullnspath', 'fnp')
             ->back('first')
             ->outIs('METHOD')
             ->as('results')
             ->outIs('NAME')
             ->isHash('lccode', $methods, 'fnp')
             ->back('results');
        $this->prepareQuery();

        // Check that the class implements one of the mentionned called interface
        $this->atomIs('Class')
             ->goToAllImplements(self::INCLUDE_SELF)
             ->outIs('IMPLEMENTS')
             ->fullnspathIs(array_keys($methods))
             ->savePropertyAs('fullnspath', 'fnp')
             ->back('first')
             ->outIs(self::CLASS_METHODS)
             ->as('results')
             ->outIs('NAME')
             ->isHash('lccode', $methods, 'fnp')
             ->back('results');
        $this->prepareQuery();
    }

    private function processMethodsRegex($methods_regex) {
        if (empty($methods_regex)) {
            return;
        }

        $this->atomIs('Class')
             ->outIs('EXTENDS')
             ->fullnspathIs(array_keys($methods_regex))
             ->savePropertyAs('fullnspath', 'fnp')
             ->back('first')
             ->outIs('METHOD')
             ->as('results')
             ->outIs('NAME')
             ->raw(<<<'GREMLIN'
has("fullcode").filter{ (it.get().value("fullcode") =~ ***[fnp] ).getCount() != 0  }
GREMLIN
, array($methods_regex) )
             ->back('results');
        $this->prepareQuery();
    }

    private function processStaticMethods($methods) {
        foreach($methods as &$method) {
            $method = $this->dictCode->translate(array_unique($method), Dictionary::CASE_INSENSITIVE);
        }
        unset($method);
        $methods = array_filter($methods);

        if (empty($methods)) {
            return;
        }

        // Check that the class extends one of the mentionned called class
        $this->atomIs(self::CLASSES_ALL)
             ->goToAllParents(self::INCLUDE_SELF)
             ->outIs('EXTENDS')
             ->fullnspathIs(array_keys($methods))
             ->savePropertyAs('fullnspath', 'fnp')
             ->back('first')
             ->outIs(self::CLASS_METHODS)
             ->is('static', true)
             ->as('results')
             ->outIs('NAME')
             ->isHash('lccode', $methods, 'fnp')
             ->back('results');
        $this->prepareQuery();

        // Check that the class implements one of the mentionned called interface
        $this->atomIs(self::CLASSES_ALL)
             ->goToAllImplements(self::INCLUDE_SELF)
             ->outIs('IMPLEMENTS')
             ->fullnspathIs(array_keys($methods))
             ->savePropertyAs('fullnspath', 'fnp')
             ->back('first')
             ->outIs(self::CLASS_METHODS)
             ->is('static', true)
             ->as('results')
             ->outIs('NAME')
             ->isHash('lccode', $methods, 'fnp')
             ->back('results');
        $this->prepareQuery();

        //what can we do with Trait?
    }

    private function processStaticMethodsRegex($methods_regex) {
        if (empty($methods_regex)) {
            return;
        }

        $this->atomIs('Class')
             ->outIs('EXTENDS')
             ->fullnspathIs(array_keys($methods_regex))
             ->savePropertyAs('fullnspath', 'fnp')
             ->back('first')
             ->outIs(self::FUNCTIONS_METHOD)
             ->is('static', true)
             ->as('results')
             ->outIs('NAME')
             ->raw(<<<'GREMLIN'
has("fullcode").filter{ (it.get().value("fullcode") =~ ***[fnp] ).getCount() != 0  }
GREMLIN
, array($methods_regex) )
             ->back('results');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Modules;

use Exakat\Analyzer\Common\InterfaceUsage;

class DefinedInterfaces extends InterfaceUsage {
    protected $interfaces = array();

    public function analyze() {
        $interfaces = $this->config->ext->loadIni('interfaces.ini', 'interfaces');

        if (empty($interfaces)) {
            return;
        }

        $this->interfaces = $interfaces;
        return parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Modules;

use Exakat\Analyzer\Common\MethodUsage;

class DefinedMethods extends MethodUsage {
    protected $methodList = array();

    public function analyze() {
        $this->methodList = $this->config->ext->loadJson('methods.json');

        if (empty($this->methodList)) {
            return;
        }

        return parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Modules;

use Exakat\Analyzer\Common\ClassConstantUsage;

class DefinedClassConstants extends ClassConstantUsage {
    protected $classConstants = array();

    public function analyze() {
        $this->classConstants = $this->config->ext->loadJson('classConstants.json');

        if (empty($this->classConstants)) {
            return;
        }

        return parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Modules;

use Exakat\Analyzer\Analyzer;

class IncomingValues extends Analyzer {
    public function dependsOn(): array {
        $incomingValues = $this->rulesets->getAnalyzerInExtension('IncomingValues');

        return $incomingValues;
    }

    public function analyze() {
        // empty on purpose, all is done in dependsOn()

    }
}

?>
This folder contains custom analysis
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer;

use Exakat\Autoload\Autoloader;

class RulesetsDev {
    private $all           = array('All' => array());
    private $rulesets      = array();

    public function __construct(Autoloader $dev) {
        $this->all      = $dev->getAllAnalyzers() ?: array('All' => array());
        $this->rulesets = array_keys($this->all);
    }

    public function getSuggestionRuleset(array $ruleset): array {
        return array_filter($this->rulesets, function ($c) use ($ruleset) {
            foreach($ruleset as $r) {
                $l = levenshtein($c, $r);
                if ($l < 8) {
                    return true;
                }
            }
            return false;
        });
    }

    public function listAllAnalyzer(string $folder = ''): array {
        if (empty($this->all)) {
            return array();
        }

        $return = array_merge(...array_values($this->all));
        if (empty($folder)) {
            return $return;
        }

        return preg_grep("#$folder/#", $return);
    }

    public function listAllRulesets(array $ruleset = null): array {
        return $this->rulesets;
    }

    public function getRulesetsAnalyzers(array $ruleset = null): array {
        if (empty($ruleset)) {
            return array();
        }
        $return = array();
        foreach($ruleset as $t) {
            $return[] = $this->all[$t] ?? array();
        }

        return array_merge(...$return);
    }

    public function getAnalyzerInExtension($name) {
        if (!isset($this->all['All'])) {
            return array();
        }
        return preg_grep("#/$name\$#", $this->all['All']);
    }

    public function getRulesetsForAnalyzer(array $analyzer = array()): array {
        $return = array();

        if (empty($analyzer)) {
            $list = $this->all;
            $return = array_fill_keys($list['All'], array());
            unset($list['All']);

            foreach($list as $rulesets => $ruleset) {
                foreach($ruleset as $rule) {
                    $return[$rule][] = $rulesets;
                }
            }
        } else {
            foreach($this->all as $rulesets => $ruleset) {
                if (in_array($analyzer, $ruleset, STRICT_COMPARISON)) {
                    $return[] = $rulesets;
                }
            }
        }

        return $return;
    }

    public function getSuggestionClass($name) {
        return array_filter($this->listAllAnalyzer(), function ($c) use ($name) {
            $l = levenshtein($c, $name);

            return $l < 8;
        });
    }

    public function getClass($name) {
        // accepted names :
        // PHP full name : Analyzer\\Type\\Class
        // PHP short name : Type\\Class
        // Human short name : Type/Class
        // Human shortcut : Class (must be unique among the classes)

        if (strpos($name, '\\') !== false) {
            if (substr($name, 0, 16) === 'Exakat\\Analyzer\\') {
                $class = $name;
            } else {
                $class = "Exakat\\Analyzer\\$name";
            }
        } elseif (strpos($name, '/') !== false) {
            $class = 'Exakat\\Analyzer\\' . str_replace('/', '\\', $name);
        } elseif (strpos($name, '/') === false) {
            $found = $this->getSuggestionClass($name);

            if (empty($found)) {
                return false; // no class found
            }

            if (count($found) > 1) {
                return false;
            }

            $class = $found[0];
        } else {
            $class = $name;
        }

        if ($class === null) {
            return false;
        }

        if (!class_exists($class)) {
            return false;
        }

        $actualClassName = new \ReflectionClass($class);
        if ($class === $actualClassName->getName()) {
            return $class;
        } else {
            // problems with the case
            return false;
        }
    }

    public function getSeverities() {
        return array_fill_keys($this->all['All'], Analyzer::S_NONE);
    }

    public function getTimesToFix() {
        return array_fill_keys($this->all['All'], Analyzer::T_NONE);
    }
}
?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/
namespace Exakat\Analyzer\Interfaces;

use Exakat\Analyzer\Analyzer;

class AlreadyParentsInterface extends Analyzer {
    public function analyze() {
        // Find classes which are implementing several times the same interface
        $this->atomIs(self::CLASSES_ALL)
             ->outIs('IMPLEMENTS')
             ->savePropertyAs('fullnspath', 'i')
             ->inIs('IMPLEMENTS')
             ->goToAllImplements(self::EXCLUDE_SELF)
             ->outIs(array('IMPLEMENTS', 'EXTENDS'))
             ->samePropertyAs('fullnspath', 'i')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Interfaces;

use Exakat\Analyzer\Analyzer;

class EmptyInterface extends Analyzer {

    public function analyze() {
        $this->atomIs('Interface')
             ->hasNoOut(array('CONST', 'METHOD') );
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Interfaces;

use Exakat\Analyzer\Common\InterfaceUsage as CommonInterfaceUsage;

class InterfaceUsage extends CommonInterfaceUsage {

    public function analyze() {
        $this->interfaces = array();

        parent::analyze();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Interfaces;

use Exakat\Analyzer\Analyzer;

class RepeatedInterface extends Analyzer {
    public function analyze() {
        // class a implements i, i, i
        $this->atomIs(self::CLASSES_ALL)
             ->countBy('IMPLEMENTS', 'fullnspath', 'interfaces')
             ->raw('filter{ interfaces.findAll{ it.value > 1}.size() > 0; }')
             ->back('first');
        $this->prepareQuery();

        // class a implements i, i, i
        $this->atomIs('Interface')
             ->countBy('EXTENDS', 'fullnspath', 'interfaces')
             ->raw('filter{ interfaces.findAll{ it.value > 1}.size() > 0; }')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Interfaces;

use Exakat\Analyzer\Analyzer;

class ConcreteVisibility extends Analyzer {
    public function analyze() {
        $this->atomIs('Method')
             ->is('visibility', array('private', 'protected'))
             ->outIs('NAME')
             ->savePropertyAs('lccode', 'name')
             ->goToClass()
             ->outIs('IMPLEMENTS')
             ->interfaceDefinition()
             ->outIs('METHOD')
             ->atomIs('Method')
             ->outIs('NAME')
             ->samePropertyAs('code', 'name', self::CASE_INSENSITIVE)
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Interfaces;

use Exakat\Analyzer\Analyzer;

class AvoidSelfInInterface extends Analyzer {
    public function analyze() {
        // interface i { const I = self::A + 3; }
        $this->atomIs('Interface')
             ->atomInside(array('Self', 'Parent')) // Parent will not have a DEFINITION
             ->inIs('CLASS') // Only in a class constant
             ->hasNoIn('DEFINITION');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Interfaces;

use Exakat\Analyzer\Analyzer;

class IsExtInterface extends Analyzer {
    public function analyze() {
        $exts = $this->rulesets->listAllAnalyzer('Extensions');

        $interfaces = array($this->loadIni('php_interfaces.ini', 'interfaces'));
        foreach($exts as $ext) {
            $inifile = str_replace('Extensions\Ext', '', $ext);
            $ini = $this->load($inifile, 'interfaces');

            if (!empty($ini[0])) {
                $interfaces[] = $ini;
            }
        }

        $interfaces = array_merge(...$interfaces);
        if (empty($interfaces)) {
            return;
        }

        $interfaces = makeFullNsPath($interfaces);

        $this->atomIs('Class')
             ->outIs(array('IMPLEMENTS', 'EXTENDS'))
             ->fullnspathIs($interfaces);
        $this->prepareQuery();

        $this->atomIs('Instanceof')
             ->outIs('CLASS')
             ->fullnspathIs($interfaces);
        $this->prepareQuery();

        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('ARGUMENT')
             ->outIs('TYPEHINT')
             ->fullnspathIs($interfaces);
        $this->prepareQuery();

        $this->atomIs(self::FUNCTIONS_ALL)
             ->outIs('RETURNTYPE')
             ->fullnspathIs($interfaces);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Interfaces;

use Exakat\Analyzer\Analyzer;

class NoGaranteeForPropertyConstant extends Analyzer {
    public function analyze() {
        // interface i {}
        // function foo(i $i) { echo $i->p, $i::C}
        $this->atomIs('Interface')
             ->outIs('DEFINITION')
             ->inIs('TYPEHINT')
             ->outIs('NAME')
             ->outIs('DEFINITION')
             ->atomIs(array('Variableobject', 'Variable'))
             ->inIs(array('OBJECT', 'CLASS'))
             ->atomIs(array('Member', 'Staticproperty'));
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Interfaces;

use Exakat\Analyzer\Analyzer;

class UselessInterfaces extends Analyzer {

    public function analyze() {
        // interface not used in a instanceof nor a Typehint
        $this->atomIs('Interface')
             ->not(
                $this->side()
                     ->outIs('DEFINITION')
                     ->hasIn(array('TYPEHINT', 'RETURNTYPE', 'CLASS'))
             )
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Interfaces;

use Exakat\Analyzer\Analyzer;

class InterfaceMethod extends Analyzer {

    public function analyze() {
        $this->atomIs('Interface')
             ->outIs('METHOD')
             ->atomIs('Method');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Interfaces;

use Exakat\Analyzer\Analyzer;

class CouldUseInterface extends Analyzer {
    // interface i { function i(); }
    // class x { function i() {}}
    // class x could use interface i but it was forgotten

    public function analyze() {
        // Custom interfaces
        $this->atomIs('Interface')
             ->as('name')
             ->outIs(array('METHOD', 'MAGICMETHOD'))
             ->as('methodCount')
             ->as('static')
             ->outIs('NAME')
             ->as('method')
             ->select(array('name'        => 'fullnspath',
                            'method'      => 'lccode',
                            'methodCount' => 'count',
                            'static'      => 'fullcode',
                            ));
        $res = $this->rawQuery();

        $interfaces = array();
        $methodNames = array();
        foreach($res->toArray() as $row) {
            $row['static'] = preg_match('/^.*static.*function /i', $row['static']) === 0 ? '' : 'static';
            array_collect_by($interfaces, $row['name'], "$row[method]-$row[methodCount]-$row[static]");
            $methodNames[$row['method']] = 1;
        }

        $phpInterfaces = $this->loadJson('php_interfaces_methods.json');
        foreach($phpInterfaces as $interface => $methods) {
            $translations = $this->dictCode->translate(array_column($methods, 'name'));
            if (count($methods) !== count($translations)) {
                continue;
            }

            // translations are in the same order than original
            foreach($methods as $id => $method) {
                $interfaces[$interface][] = $translations[$id] . "-$method->count-";
                $methodNames[$translations[$id]] = 1;
            }
        }

        $methodNames = array_keys($methodNames);

        $this->atomIs(self::CLASSES_ALL)
             ->filter(
                $this->side()
                     ->outIs(array('METHOD', 'MAGICMETHOD'))
                     ->isNot('visibility', array('private', 'protected'))
                     ->outIs('NAME')
                     ->is('lccode', $methodNames)
             )
             ->raw('sideEffect{ x = []; }')
             // Collect methods names with argument count
             // can one implement an interface, but with wrong argument counts ?
             ->raw(<<<'GREMLIN'
where( 
    __.out("METHOD", "MAGICMETHOD")
      .sideEffect{ 
        if (it.get().properties("static").any()) { 
            s = 'static';
        } else {
            s = '';
        }
        x.add(it.get().vertices(OUT, "NAME").next().value("lccode") + "-" + it.get().value("count") + "-" + s) ; 
       }
      .fold() 
)
GREMLIN
)
             ->raw('sideEffect{ php_interfaces = *** }', $interfaces)
             ->raw(<<<'GREMLIN'
filter{
    a = false;
    php_interfaces.each{ n, e ->
        if (x.intersect(e) == e) {
            a = true;
            fnp = n;
        }
    }
    
    a;
}

GREMLIN
)

                ->collectImplements('interfaces')
                ->raw('filter{ !(fnp in interfaces) }')
                ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Interfaces;

use Exakat\Analyzer\Analyzer;

class UndefinedInterfaces extends Analyzer {
    public function dependsOn(): array {
        return array('Classes/IsExtClass',
                     'Interfaces/IsExtInterface',
                     'Composer/IsComposerClass',
                     'Composer/IsComposerInterface',
                     'Modules/DefinedInterfaces',
                     'Modules/DefinedClasses',
                     );
    }

    public function analyze() {
        $omitted = $this->dependsOn();

        // interface used in a class
        $this->atomIs(array('Class', 'Classanonymous'))
             ->outIs('IMPLEMENTS')
             ->hasNoIn('DEFINITION')
             ->analyzerIsNot($omitted);
        $this->prepareQuery();

        // interface extending another interface
        $this->atomIs('Interface')
             ->outIs('EXTENDS')
             ->hasNoIn('DEFINITION')
             ->analyzerIsNot($omitted);
        $this->prepareQuery();

        // interface used in a instanceof nor a Typehint but not defined
        $this->atomIs('Instanceof')
             ->outIs('CLASS')
             ->isNot('aliased', true)
             ->atomIsNot(array('Self', 'Parent'))
             ->has('fullnspath')
             ->noClassDefinition()
             ->noInterfaceDefinition()
             ->isNotIgnored()
             ->analyzerIsNot($omitted);
        $this->prepareQuery();

        $this->atomIs(self::CONSTANTS_ALL)
             ->hasIn(array('TYPEHINT', 'RETURNTYPE'))
             ->atomIsNot(array('Self', 'Parent'))
             ->has('fullnspath')
             ->noClassDefinition()
             ->noInterfaceDefinition()
             ->noUseDefinition()
             ->isNotIgnored()
             ->analyzerIsNot($omitted);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Interfaces;

use Exakat\Analyzer\Analyzer;

class Interfacenames extends Analyzer {

    public function analyze() {
        $this->atomIs('Interface')
             ->outIs('NAME');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Interfaces;

use Exakat\Analyzer\Analyzer;

class UnusedInterfaces extends Analyzer {
    public function analyze() {
        // interface i {} WITHOUT class x implements j {}
        $this->atomIs('Interface')
             ->hasNoOut('DEFINITION');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Interfaces;

use Exakat\Analyzer\Analyzer;

class CantImplementTraversable extends Analyzer {
    public function analyze() {
        // class x implements traversable
        $this->atomIs(self::STATIC_NAMES)
             ->fullnspathIs('\traversable')
             ->inIs(array('EXTENDS', 'IMPLEMENTS'));
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Interfaces;

use Exakat\Analyzer\Analyzer;

class PossibleInterfaces extends Analyzer {
    /* PHP version restrictions
    protected $phpVersion = '7.4-';
    */

    /* List dependencies 
    public function dependsOn() {
        return array('Category/Analyzer',
                     '',
                    );
    }
    */
    // remove abstract, final,
    // remove protected, private ??
    // remove extended ... ??
    // remove already interfaced (tough luck)
    // include traits?? Nope, for the first take

    public function analyze() {
        $this->atomIs('Class')
             ->collectMethods('methods')
             ->raw('filter{ methods.size() > 1; }')
             ->raw('map{ methods.add(it.get().value("fullnspath")); methods; }');
        $res = $this->rawQuery();

        $interfaces = $res->toArray();
        // at least one method
        $interfaces = array_filter($interfaces, function ($x) { return count($x) > 1; });
        $interfaces = array_unique($interfaces, SORT_REGULAR);
        $interfaces = array_values($interfaces);

        $list = $interfaces;
        $all = array();
        foreach($interfaces as $id => $one) {
            $stats[$id] = 0;
            $current = array_pop($one);

            foreach($list as $interface) {
                array_pop($interface);

                if (!empty($diff = array_intersect($interface, $one))) {
                    ++$stats[$id];

                    if (count($diff) >= 2) {
                        sort($diff);
                        $all[] = implode('-', $diff);
                    }
                }
            }

            // This cuts the tests by 2
            array_shift($list);

        }
        $counts = array_count_values($all);

        // at least 2 methods in common
        $counts = array_filter($counts, function ($x) { return $x >= 2;});

        if (empty($counts)) {
            return ;
        }

        foreach(array_keys($counts) as $count) {
            $arg = explode('-', (string) $count);
            $arg = array_map('intval', $arg);
            $this->atomIs('Class')
                 ->analyzerIsNot('self')
                 ->collectMethods('methods')
                 ->raw('filter{ methods.size() > 1; }')
                 ->raw('filter{ methods.intersect(***) == ***; }', $arg, $arg);
            $this->prepareQuery();
        }
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Interfaces;

use Exakat\Analyzer\Analyzer;

class Php extends Analyzer {

    public function dependsOn(): array {
        return array('Interfaces/InterfaceUsage',
                    );
    }

    public function analyze() {
        $interfaces = $this->loadIni('php_interfaces.ini', 'interfaces');
        $interfaces = makeFullNsPath($interfaces);

        $this->analyzerIs('Interfaces/InterfaceUsage')
             ->fullnspathIs($interfaces);
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Analyzer\Interfaces;

use Exakat\Analyzer\Analyzer;

class IsNotImplemented extends Analyzer {
    public function analyze() {
        // interface i { function i() {}}
        // class c implements i {       }
        $this->atomIs('Class')
             ->isNot('abstract', true)
             ->collectMethods('classMethods')
             ->goToAllImplements(self::INCLUDE_SELF)
             ->atomIs('Interface')
             ->collectMethods('interfaceMethods')
             ->raw('filter{interfaceMethods.intersect(classMethods) != interfaceMethods}')
             ->back('first');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Analyzer\Interfaces;

use Exakat\Analyzer\Analyzer;

class UsedInterfaces extends Analyzer {
    public function analyze() {
        // interface i {}
        // class x implements i {}
        $this->atomIs('Interface')
             ->hasOut('DEFINITION');
        $this->prepareQuery();
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;

use Exakat\Config;

class Top10 extends Ambassador {
    const FILE_FILENAME  = 'top10';
    const FILE_EXTENSION = '';
    const CONFIG_YAML    = 'Top10';

    protected $frequences        = array();
    protected $timesToFix        = array();
    protected $themesForAnalyzer = array();
    protected $severities        = array();

    const TOPLIMIT = 10;
    const LIMITGRAPHE = 40;

    const NOT_RUN      = 'Not Run';
    const YES          = 'Yes';
    const NO           = 'No';
    const INCOMPATIBLE = 'Incompatible';

    private $compatibilities = array();

    public function __construct() {
        parent::__construct();

        foreach(Config::PHP_VERSIONS as $shortVersion) {
            $this->compatibilities[$shortVersion] = "Compatibility PHP $shortVersion[0].$shortVersion[1]";
        }

        if ($this->rulesets !== null) {
            $this->frequences        = $this->rulesets->getFrequences();
            $this->timesToFix        = $this->rulesets->getTimesToFix();
            $this->themesForAnalyzer = $this->rulesets->getRulesetsForAnalyzer();
            $this->severities        = $this->rulesets->getSeverities();
        }

        $this->themesToShow = array('Top10');
    }

    public function dependsOnAnalysis(): array {
        return array('Top10',
                     );
    }

    protected function generateIssues() {
        $this->generateIssuesEngine('issues',
                                    $this->getIssuesFaceted('Top10') );
    }

    protected function generateTop10(Section $section) {
        $top10 = array('Dangling reference'      => array('Structures/DanglingArrayReference'),
                       'For with count'          => array('Structures/ForWithFunctioncall', ),
                       'Next month trap'         => array('Structures/NextMonthTrap', ),
                       'array_merge in loops'    => array('Performances/CsvInLoops',
                                                          'Performances/NoConcatInLoop',
                                                          'Performances/ArrayMergeInLoops', ),
                       'strpos() fail'           => array('Structures/StrposCompare',
                                                          'Security/MinusOneOnError', ),
                       'Shorten first'           => array('Performances/SubstrFirst', ),
                       'Don\'t unset properties' => array('Classes/DontUnsetProperties', ),
                       'Operators precedence'    => array('Php/LogicalInLetters',
                                                          'Php/ConcatAndAddition',
                                                         ),
                       'Missing subpattern'      => array('Php/MissingSubpattern', ),
                       'Avoid real'              => array('Php/AvoidReal',
                                                          'Type/NoRealComparison', ),
                     );

        $res = $this->dump->fetchAnalysersCounts(array_merge(...array_values($top10)));
        $counts = $res->toHash('analyzer', 'count');

        $topCounts = array_fill_keys(array_keys($top10), 0);
        foreach($top10 as $name => $analysis) {
            foreach($analysis as $a) {
                $topCounts[$name] += $counts[$a] ?? 0;
            }
        }

        $colors = array('#00FF00',
                        '#32CC00',
                        '#669900',
                        '#996600',
                        '#CC3300',
                        '#FF0000',
                        );

        $table = array();
        $i = 0;
        foreach($topCounts as $name => $count) {
            ++$i;
            $color = $colors[round(log($count) / log(5), 0)];
            $table[] = "<tr><td>$name</td><td><a href=\"issues.html#analyzer=" . $this->toId($name) . '" title="' . $name . '">' . $name . "</a></td><td bgcolor=\"$color\">$count</td></tr>\n";
        }

        $top10 = '<table class="table">' . implode(PHP_EOL, $table) . '</table>';

        $description = <<<'HTML'
<i class="fa fa-check-square-o"></i> : Nothing found for this analysis, proceed with caution; <i class="fa fa-warning red"></i> : some issues found, check this; <i class="fa fa-ban"></i> : Can't test this, PHP version incompatible; <i class="fa fa-cogs"></i> : Can't test this, PHP configuration incompatible; 
HTML;

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'COMPATIBILITY', $top10);
        $html = $this->injectBloc($html, 'TITLE', 'Top 10 classic errors ');
        $html = $this->injectBloc($html, 'DESCRIPTION', $description);
        $this->putBasedPage($section->file, $html);

    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;

use Exakat\Reports\Helpers\Dot;

class Topology extends Reports {
    const FILE_EXTENSION = 'dot';
    const FILE_FILENAME  = 'exakat.topology';

    public function _generate(array $analyzerList): string {
        switch($this->config->program) {
            case 'Dump/Typehintorder' :
                $res = $this->dump->fetchTable('typehintOrder', array('origin'      => 'argument',
                                                                      'destination' => 'returned',
                                                                      ));
                break;

            default :
            case 'Dump/NewOrder' :
                $res = $this->dump->fetchTable('newOrder', array('origin'      => 'calling',
                                                                 'destination' => 'called',
                                                                 ));
                break;
        }

        $names = array();
        foreach($res->toArray() as $id => list('origin' => $origin, 'destination' => $destination)) {
            if (strpos($origin, '@') !== false ||
                strpos($destination, '@') !== false
                ) {
                unset($nodes[$id]);
                continue;
            }

            if (!isset($names[$origin] )) {
                $names[] = $origin;
            }

            if (!isset($names[$destination] )) {
                $names[] = $destination;
            }
        }

        $names = array_flip($names);

        $dot = new Dot();

        $dot->setOptions('nodes', 'shape', 'square');
        $dot->setOptions('nodes', 'style', 'filled');
        $dot->setOptions('node', 'colorscheme', 'paired12');

        $names2 = array();
        $atoms = array_map(function ($id, $name) use ($dot, &$names2) {
            $d = explode('\\', $name);
            $name2 = array_pop($d);
            $color = 1 + $id % 11;
            $names2[$name] = $dot->addNode($name2, array('fillcolor' => $color));
        },
                            array_values($names),
                            array_keys($names)
                            );
        $atoms = implode('', $atoms);
        $names = $names2;

        $links = array();
        foreach($nodes as list('origin' => $origin, 'destination' => $destination)) {
            $dot->addLink($names[$destination], $names[$origin]);
        }

        $links = array_unique($links);
        $links = implode('', $links);

        return (string) $dot;
    }
}

?>dashboard:
    menu: Dashboard
    title: Dashboard
    file: index
    method: generateDashboard
    icon: dashboard
issues:
    title: Issues
    icon: flag
    file: issues
    method: generateIssuesEngine
    ruleset: Security
annexes:
    title: Annexes
    icon: sticky-note-o
    subsections: 
        engine_settings:
            title: Engine Settings
            source: annex_settings
            file: engine_settings
            method: generateAnalyzerSettings
        annex_config:
            title: Audit Configuration
            file: annex_config
            method: generateAuditConfig
        processed_files:
            title: Processed files
            source: proc_files
            file: processed_files
            method: generateProcFiles
            icon: file
        processed_analysis:
            title: Processed analysis
            source: proc_analyses
            file: processed_analysis
            method: generateAnalyzersList
            icon: file
        annex_docs:
            title: Analyses documentation
            file: analyses_doc
            method: generateDocumentation
            icon: file
        annex_codes:
            title: Source code
            file: codes
            method: generateCodes
            icon: file
        credits:
            title: Credits
            file: credits
            icon: thumbs-up
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;

use Symfony\Component\Yaml\Yaml;

class Exakatyaml extends Reports {
    const FILE_EXTENSION = 'yml';
    const FILE_FILENAME  = '.exakat';

    public function _generate(array $analyzerList): string {
        $return = array('project'         => $this->config->project,
                        'project_name'    => $this->config->project_name,
                        'project_rulesets'=> $this->config->project_rulesets,
                        'project_reports' => $this->config->project_reports,
                        'rulesets'        => range(0, 10),
        );

        $res = $this->dump->fetchAnalysersCounts($analyzerList);
        $rules = array_filter($res->toHash('count', 'analyzer'), function ($x) { return $x > -1;});
        $this->count($res->getCount());

        ksort($rules);
        $return['rulesets'] = $rules;

        $yaml = Yaml::dump($return);

        $yaml = preg_replace_callback('/    (\d+): \[(.+?)\]/m', array($this, 'format'), $yaml);

        return $yaml;
    }

    private function format(array $r): string {
        $ident = str_repeat(' ', 8);

        $list = explode(', ', $r[2]);

        foreach($list as &$l) {
            $title = $this->docs->getDocs($l, 'name');
            $pad = str_repeat(' ', 50 - strlen($title));
            $l     = " {$ident}\"$title\":$pad$l";
        }

        sort($list);
        $list = implode("\n", $list);
        return <<<YAML
    ruleset_$r[1]: # $r[1] errors found
$list
YAML;
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;


class Codeflower extends Reports {
    const FILE_EXTENSION = '';
    const FILE_FILENAME  = 'codeflower';

    private $select      = array();
    private $tmpName     = '';
    private $finalName   = '';

    public function generate(string $folder, string $name = self::FILE_FILENAME): string {
        if ($name === self::STDOUT) {
            print "Can't produce Codeflower format to stdout\n";
            return '';
        }

        $this->finalName = "$folder/$name";
        $this->tmpName   = "{$this->config->tmp_dir}/.$name";

        $this->initFolder();

        $this->getNamespaces();
        $this->getFileDependencies();
        $this->getClassHierarchy();

        $this->cleanFolder();

        return '';
    }

    private function getFileDependencies(): void {
        $all = $this->dump->fetchTable('filesDependencies', array('including' => 'DISTINCT including',
                                                                  'included',
                                                                   'type'))->toArray();

        $all = array_filter($all, function (array $x) { return $x['type'] === 'extends' && $x['including'] !== $x['included']; });

        $files = array();
        foreach($all as $a) {
            array_collect_by($files, $a['including'], $a['included']);
            $this->count();
        }

        $root = new \stdClass();
        $root->name = '';
        $root->size = 200;
        $root->children = array();

        foreach($files as $including => $included) {
            $c = new \stdClass();
            $c->name = $including;
            $c->size = 100;
            $c->children = array();

            foreach($included as $i) {
                $d = new \stdClass();
                $d->name = $i;
                $d->size = 100;

                $c->children[] = $d;
                $this->count();
            }

            $root->children[] = $c;
        }

        file_put_contents($this->tmpName . '/data/inclusions.json', json_encode($root));
        $this->select['By inclusions'] = 'inclusions.json';
    }

    private function getClassHierarchy(): void {
        $res = $this->dump->fetchTableCit();

        $classes = array();
        $classesId = array();
        foreach($res->toArray() as $row) {
            $class = $row['namespace'] . '\\' . $row['name'];
            $classes[$row['extends']][$class] = array();

            $classesId[$row['id']] = $class;
        }

        foreach($classes as $id => $extends) {
            if (!is_int($id)) {
                continue;
            }

            foreach($classes as &$extends2) {
                if (!isset($classesId[$id])) {
                    continue;
                }
                if (isset($extends2[$classesId[$id]])) {
                    $extends2[$classesId[$id]] = $extends;
                    unset($classes[$id]);
                }
            }
        }

        $root = new \stdClass();
        $root->name = '';
        $root->size = 200;
        $root->children = array();
        foreach($classes as $name => $extends) {
            if ($name === '') {
                $c = $root;
            } else {
                $c = new \stdClass();
                $c->name = $name;
                $c->size = 50;

                $root->children[] = $c;
            }

            foreach($extends as $e => $extends2) {
                $d = new \stdClass();
                $d->name = $e;
                $d->size = 50;

                foreach(array_keys($extends2) as $e3) {
                    $d3 = new \stdClass();
                    $d3->name = $e3;
                    $d3->size = 50;

                    $d->children[] = $d3;
                }

                $c->children[] = $d;
            }
            $this->count();
        }

        file_put_contents($this->tmpName . '/data/classes.json', json_encode($root));
        $this->select['By class hierarchy'] = 'classes.json';
    }

    private function getNamespaces(): void {
        $res = $this->dump->fetchTableCit();

        $root = new \stdClass();
        $root->name = '\\';
        $root->size = 200;
        $root->children = array();
        $ns = array('' => $root);

        foreach($res->toArray() as $row) {
            $c = new \stdClass();
            $c->name = $row['namespace'] . '\\' . $row['name'];
            $c->type = $row['type'];
            $c->size = 50;

            if (!isset($ns[$row['namespace']])) {
                $d = explode('\\', $row['namespace']);
                array_shift($d);

                $name = '';
                $m = null;
                foreach($d as $e) {
                    $namep = $name;
                    $name .= '\\' . $e;
                    if (isset($ns[$name])) { continue; }

                    $n = new \stdClass();
                    $n->name = $name;
                    $n->size = $name;
                    $n->type = 'namespace';
                    $n->children = array();

                    $ns[$name] = $n;
                    $ns[$namep]->children[] = $n;
                    $m = $n;
                }
            }
            $ns[$row['namespace']]->children[] = $c;
            $this->count();
        }

        file_put_contents($this->tmpName . '/data/namespaces.json', json_encode($root));
        $this->select['By namespace'] = 'namespaces.json';
    }

    private function initFolder(): void {
        // Clean temporary destination
        if (file_exists($this->tmpName)) {
            rmdirRecursive($this->tmpName);
        }

        // Copy template
        copyDir($this->config->dir_root . '/media/codeflower', $this->tmpName );
    }

    private function cleanFolder(): void {
        $html = file_get_contents($this->tmpName . '/index.html');
        $select = '';
        foreach($this->select as $name => $file) {
            $select .= "            <option value=\"data/$file\">$name</option>";
        }
        $html = str_replace('<SELECT>', $select, $html);
        file_put_contents($this->tmpName . '/index.html', $html);

        if (file_exists($this->finalName)) {
            rename($this->finalName, $this->tmpName . '2');
        }

        rename($this->tmpName, $this->finalName);

        if (file_exists($this->tmpName . '2')) {
            rmdirRecursive($this->tmpName . '2');
        }
    }

}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;


class Perfile extends Reports {
    const FILE_EXTENSION = 'txt';
    const FILE_FILENAME  = self::STDOUT;

    public function _generate(array $analyzerList): string {
        $analysisResults = $this->dump->fetchAnalysers($analyzerList);

        $perfile       = array();
        $titleCache    = array();
        $maxLine       = 0;
        $maxTitle      = 0;
        foreach($analysisResults->toArray() as $row) {
            if ($row['line'] === -1) { continue; }
            if (!isset($titleCache[$row['analyzer']])) {
                $titleCache[$row['analyzer']] = $this->docs->getDocs($row['analyzer'], 'name');
            }

            $maxLine = max($maxLine, $row['line']);
            $maxTitle = max($maxTitle, strlen($titleCache[$row['analyzer']]), strlen($row['file']));
            $perfile[$row['file']][] = sprintf(' % 4s  %s ', $row['line'], $titleCache[$row['analyzer']]);
        }

        $text = '';
        $line = strlen((string) $maxLine) + $maxTitle + 10;

        foreach($perfile as &$list) {
            sort($list);
        }

        foreach($perfile as $file => $issues) {
            $text .= str_repeat('-', $line) . "\n" .
                     " line  $file\n" .
                     str_repeat('-', $line) . "\n" .
                     implode("\n", $issues) . "\n" .
                     str_repeat('-', $line) . "\n"

                     . "\n"
                     . "\n";
        }

        return $text;
    }
}

?>dashboard:
    menu: Dashboard
    title: Dashboard
    file: index
    method: generateDashboard
    icon: dashboard
files:
    title: Files Overview
    menu: Files
    file: files
    method: generateFiles
    icon: file-code-o
analysis:
    title: Analyses Overview
    menu: Analyses
    file: analyses
    method: generateAnalyzers
    icon: line-chart
new_issues:
    title: New Issues
    icon: flag
    file: neoissues
    method: generateNewIssues
issues:
    title: Issues
    icon: flag
    file: issues
    method: generateIssuesEngine
    ruleset: Analyze
security:
    title: Security Issues
    menu: Security
    icon: flag
    file: security_issues
    method: generateIssuesEngine
    ruleset: Security
performances:
    title: Performances Issues
    menu: Performances
    icon: flag
    file: performances_issues
    method: generateNewIssues
    ruleset: Performances
dead_code:
    title: Dead Code Issues
    menu: Dead code
    icon: flag
    file: deadcode_issues
    method: generateIssuesEngine
    ruleset: Dead code
compatibility:
    title: Compatibility
    icon: certificate
    subsections: 
        compilations:
            title: Compilations
            file: compatibility_compilations
            method: generateCompilations
            icon: certificate
        php_versions:
            title: Compatibility By Version
            menu: PHP Version
            source: empty
            file: compatibility_version
            method: generateCompatibilityEstimate
            icon: certificate
        compatibility_php74:
            source: compatibility
            title: Compatibility PHP 7.4
            file: compatibility_php74
            method: generateCompatibility74
            icon: certificate
        compatibility_php73:
            source: compatibility
            title: Compatibility PHP 7.3
            file: compatibility_php73
            method: generateCompatibility73
            icon: certificate
        compatibility_php72:
            source: compatibility
            title: Compatibility PHP 7.2
            file: compatibility_php72
            method: generateCompatibility72
            icon: certificate
        compatibility_php71:
            source: compatibility
            title: Compatibility PHP 7.1
            file: compatibility_php71
            method: generateCompatibility71
            icon: certificate
        compatibility_php70:
            source: compatibility
            title: Compatibility PHP 7.0
            file: compatibility_php70
            method: generateCompatibility70
            icon: certificate
        compatibility_php56:
            source: compatibility
            title: Compatibility PHP 5.6
            file: compatibility_php56
            method: generateCompatibility56
            icon: certificate
        compatibility_php55:
            source: compatibility
            title: Compatibility PHP 5.5
            file: compatibility_php55
            method: generateCompatibility55
            icon: certificate
        compatibility_php54:
            source: compatibility
            title: Compatibility PHP 5.4
            file: compatibility_php54
            method: generateCompatibility54
            icon: certificate
        compatibility_php53:
            source: compatibility
            title: Compatibility PHP 5.3
            file: compatibility_php53
            method: generateCompatibility53
            icon: certificate
favorites:
    title: Favorites
    icon: certificate
    subsections: 
        compilations:
            title: Favorite Overview
            file: favorites_dashboard
            method: generateFavorites
            icon: certificate
        favorite_issues:
            title: Favorite issues
            source: empty
            file: favorites_issues
            method: generateIssuesEngine
            ruleset: Preferences
suggestions:
    title: Suggestions
    icon: flag
    file: suggestions
    method: generateIssuesEngine
    ruleset: Suggestions
audit:
    title: Audit logs
    icon: sliders
    subsections: 
        appinfo:
            title: Appinfo()
            file: appinfo
            method: generateAppinfo
            icon: circle-o
        bugfixes:
            title: Bugfixes
            source: bugfixes
            file: bugfixes
            method: generateBugFixes
            icon: circle-o
        php_compilation:
            title: PHP Compilation List
            file: php_compilation
            method: generatePhpConfiguration
            icon: circle-o
        directive_list:
            title: PHP Directives List
            file: directive_list
            method: generateDirectiveList
            icon: circle-o
        altered_directives:
            title: Altered PHP Directives
            file: altered_directives
            method: generateAlteredDirectives
            icon: circle-o
        extension_list:
            title: Extensions' List
            file: extension_list
            method: generateAlteredDirectives
            icon: circle-o
        ext_lib:
            title: External Libraries' List
            file: ext_lib
            method: generateExternalLib
            icon: circle-o
        external_services:
            title: External Services
            file: external_services
            method: generateExternalServices
            icon: circle-o
        parameters_counts:
            title: Parameter Counts
            file: parameter_counts
            method: generateParameterCounts
            icon: circle-o
        changed_classes:
            title: Changed Classes
            file: changed_classes
            method: generateChangedClasses
            icon: circle-o
        stats:
            title: Statistics
            file: stats
            method: generateStats
            icon: circle-o
        visibility_suggestions:
            title: Class Visibility Suggestions
            source: empty
            file: visibility_suggestions
            method: generateVisibilitySuggestions
            icon: circle-o
        class_options_suggestions:
            title: Class Option Recommendations
            source: empty
            file: class_options_suggestions
            method: generateClassOptionSuggestions
            icon: circle-o            
        complex_expressions:
            title: Complex Expressions
            source: empty
            file: complex_expressions
            method: generateComplexExpressions
            icon: circle-o            
        cit_size:
            title: Classes Sizes
            file: cit_size
            method: generateClassSize
            icon: circle-o            
        method_size:
            title: Methods Sizes
            source: cit_size
            file: method_size
            method: generateMethodSize
            icon: circle-o            
        classes_depth:
            title: Class Depth
            file: classes_depth
            method: generateClassDepth
            icon: circle-o            
        concentrated_issues:
            title: Concentrated Issues
            file: concentrated_issues
            method: generateConcentratedIssues
            icon: circle-o            
        identical_files:
            title: Identical files
            source: identical_files
            file: identical_files
            method: generateIdenticalFiles
            icon: circle-o            
        no_issues:
            title: No Issues Analysis
            file: no_issues
            method: generateNoIssues
            icon: circle-o            
inventories:
    title: Inventories
    icon: list-ul
    subsections: 
        dynamic_code:
            title: Dynamic Code
            file: dynamic_code
            method: generateDynamicCode
        global_variables:
            source: globals
            title: Global Variables
            file: global_variables
            method: generateGlobals
        error_messages:
            title: Error Messages
            file: error_messages
            method: generateErrorMessages
        inventories_exceptions:
            title: Exception Inventory
            source: empty
            file: inventories_exceptions
            method: generateExceptionTree
        namespace_tree:
            title: Namespace Tree
            source: empty
            file: inventories_namespacetree
            method: generateNamespaceTree
        classes_tree:
            title: Classes Tree
            source: empty
            file: inventories_classtree
            method: generateClassTree
        inventories_traittree:
            title: Trait Tree
            source: empty
            file: inventories_traittree
            method: generateTraitTree
        inventories_traitmatrix:
            title: Traits Matrix
            source: empty
            file: inventories_traitmatrix
            method: generateTraitMatrix
        inventories_interfacetree:
            title: Interface tree
            source: empty
            file: inventories_interfacetree
            method: generateInterfaceTree
        phpfunctions_list:
            title: Native PHP Function usage
            file: phpfunctions_list
            method: generatePHPFunctionBreakdown
        phpconstants_list:
            title: Native PHP Constant usage
            file: phpconstants_list
            method: generatePHPConstantsBreakdown
        phpclasses_list:
            title: PHP Native Classes, Interfaces and Traits\' list
            file: phpclasses_list
            method: generatePHPClassesBreakdown
        files_tree:
            title: File dependencies tree
            source: empty
            file: files_tree
            method: generateFileDependencies
        variables_confusing:
            title: Confusing Variables
            file: empty
            source: variables_confusing
            method: generateConfusingVariables
        inventories_constants:
            title: Constants Inventory
            source: inventories
            file: inventories_constants
            method: generateInventoriesConstants
        inventories_classes:
            title: Classes Inventory
            source: inventories
            file: inventories_classes
            method: generateInventoriesClasses
        inventories_interfaces:
            title: Interfaces Inventory
            source: inventories
            file: inventories_interfaces
            method: generateInventoriesInterfaces
        inventories_traits:
            title: Traits Inventory
            source: inventories
            file: inventories_traits
            method: generateInventoriesTraits
        inventories_functions:
            title: Functions Inventory
            source: inventories
            file: inventories_functions
            method: generateInventoriesFunctions
        inventories_namespaces:
            title: Namespaces Inventory
            source: inventories
            file: inventories_namespaces
            method: generateInventoriesNamespaces
        inventories_url:
            title: URL Inventory
            source: inventories
            file: inventories_url
            method: generateInventoriesUrl
        inventories_regex:
            title: Regex Inventory
            source: inventories
            file: inventories_regex
            method: generateInventoriesRegex
        inventories_sql:
            title: SQL Inventory
            source: inventories
            file: inventories_sql
            method: generateInventoriesSql
        inventories_gpc:
            title: Incoming Variables Inventory
            source: inventories
            file: inventories_gpcindex
            method: generateInventoriesGPCIndex
        inventories_email:
            title: Email Inventory
            source: inventories
            file: inventories_email
            method: generateInventoriesEmail
        inventories_md5:
            title: Hashes Inventory
            source: inventories
            file: inventories_md5string
            method: generateInventoriesMd5string
        inventories_mime:
            title: Mime Inventory
            source: inventories
            file: inventories_mime
            method: generateInventoriesMime
        inventories_pack:
            title: Pack Inventory
            source: inventories
            file: inventories_pack
            method: generateInventoriesPack
        inventories_printf:
            title: Printf Inventory
            source: inventories
            file: inventories_printf
            method: generateInventoriesPrintf
        inventories_path:
            title: Path Inventory
            source: inventories
            file: inventories_path
            method: generateInventoriesPath
annexes:
    title: Annexes
    icon: sticky-note-o
    subsections: 
        engine_settings:
            title: Engine Settings
            source: annex_settings
            file: engine_settings
            method: generateAnalyzerSettings
        annex_config:
            title: Audit Configuration
            file: annex_config
            method: generateAuditConfig
        processed_files:
            title: Processed files
            source: proc_files
            file: processed_files
            method: generateProcFiles
            icon: file
        processed_analysis:
            title: Processed analysis
            source: proc_analyses
            file: processed_analysis
            method: generateAnalyzersList
            icon: file
        annex_docs:
            title: Analyses documentation
            file: analyses_doc
            method: generateDocumentation
            icon: file
        annex_codes:
            title: Source code
            file: codes
            method: generateCodes
            icon: file
        credits:
            title: Credits
            file: credits
            icon: thumbs-up
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;


class Phpcity extends Reports {
    const FILE_EXTENSION = 'json';
    const FILE_FILENAME  = 'exakat.phpcity';

    public function _generate(array $analyzerList): string {
        $results = $this->dump->fetchTablePhpcity();

        $return = array();
        foreach($results->toArray() as $row) {
            $row['implements'] = null;
            $row['anonymous'] = null;
            $row['abstract'] = (bool) $row['abstract'];
            $row['final'] = (bool) $row['final'];
            $row['trait'] = (bool) $row['trait'];

            $this->count();
            $return[] = $row;
        }
        $this->count($results->getCount());

        return json_encode($return);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;

use Exakat\Analyzer\Analyzer;

class Weekly extends Ambassador {
    const FILE_FILENAME  = 'weekly';
    const FILE_EXTENSION = '';
    const CONFIG_YAML    = 'Weekly';

    const COLORS = array('A' => '#2ED600',
                         'B' => '#81D900',
                         'C' => '#D5DC00',
                         'D' => '#DF9100',
                         'E' => '#E23E00',
                         'F' => '#E50016',
                         );

    protected $projectPath     = null;
    protected $finalName       = null;
    private $globalGrade  = 0;

    const TOPLIMIT = 10;
    const LIMITGRAPHE = 40;

    const NOT_RUN      = 'Not Run';
    const YES          = 'Yes';
    const NO           = 'No';
    const INCOMPATIBLE = 'Incompatible';

    const G_CRITICAL = 5;
    const G_ERROR    = 4;
    const G_WARNING  = 3;
    const G_NOTICE   = 2;
    const G_NONE     = 1;

    private $titles = array('This Week',
                            'Last week',
                            'Two weeks ago',
                            'Three weeks ago',
                            'Four weeks ago',
                            'Go further',
                          );

    private $grading       = array();
    private $resultsCounts = array();

    private $weeks        = array();
    private $current      = '';

    public function dependsOnAnalysis(): array {
        return array('Analyze',
                    );
    }

    private function loadWeekly() {
        $this->current = (new \Datetime('now'))->format('Y-W');
        for ($i = 0; $i < 5; ++$i) {
            $date = (new \Datetime('now'))->sub(new \DateInterval('P' . ($i * 7) . 'D'))->format('Y-W');

            $json = file_get_contents("https://exakat.io/weekly/week-$date.json");
            $this->weeks[$date] = json_decode($json);

            if (json_last_error() != '') {
                print "Error : could not read week details for $date\n";
                continue;
            }

            $res = $this->dump->fetchAnalysersCounts($this->weeks[$date]->analysis);
            foreach($res->toArray() as $row) {
                $this->resultsCounts[$row['analyzer']] = $row['count'];
            }
        }

    // special case for 'Future read'
        $date = date('Y-W', strtotime(date('Y') . 'W' . substr('0' . ((int) date('W') + 1), -2)));
        $json = file_get_contents("https://www.exakat.io/weekly/week-$date.json");
        $this->weeks[$date] = json_decode($json);

        if (json_last_error() != '') {
            print "Error : could not read week details for $date\n";
        }

        $res = $this->dump->fetchAnalysersCounts($this->weeks[$date]->analysis);
        foreach($res->toArray() as $row) {
            $this->resultsCounts[$row['analyzer']] = $row['count'];
        }
    }

    private function generateWeekly(Section $section, int $year, int $week): void {        $analyzerList = $this->weeks["$year-" . substr("0$week", -2)]->analysis;
        $this->generateIssuesEngine($section,
                                    $this->getIssuesFaceted($analyzerList));
    }

    private function getGrades() {
        $levels = array(
            'Critical' => 5,
            'Major'    => 4,
            'Minor'    => 3,
            'Note'     => 2,
            'None'     => 1,
        );

        $all = array_merge(...array_column($this->weeks, 'analysis'));
        foreach($all as $analyzer) {
            $severity = $this->docs->getDocs($analyzer, 'severity');
            $this->grading[$analyzer] = $levels[$severity];
        }

        $this->globalGrade = 0;

        $grade = 0;
        foreach($this->resultsCounts as $name => $value) {
            if ($value > 0) {
                $grade += min(log($value * $this->grading[$name]) / log(10), 5);
            }
        }
        $this->globalGrade = intval(100 * max(0, 20 - $grade)) / 100;
    }

    protected function generateWeek0(Section $section): void {
        $this->generateWeekly($section, date('Y'), (int) date('W'));
    }

    protected function generateWeek1(Section $section): void {
        if ((int) date('W') - 1 > 0) {
            $this->generateWeekly($section, date('Y'), (int) date('W') - 1);
        } else {
            $this->generateWeekly($section, date('Y') - 1, 53 - (int) date('W'));
        }
    }

    protected function generateWeek2(Section $section): void {
        if ((int) date('W') - 1 > 0) {
            $this->generateWeekly($section, date('Y'), (int) date('W') - 2);
        } else {
            $this->generateWeekly($section, date('Y') - 1, 52 - (int) date('W'));
        }
    }

    protected function generateWeek3(Section $section): void {
        if ((int) date('W') - 1 > 0) {
            $this->generateWeekly($section, date('Y'), (int) date('W') - 3);
        } else {
            $this->generateWeekly($section, date('Y') - 1, 51 - (int) date('W'));
        }
    }

    protected function generateWeek4(Section $section): void {
        if ((int) date('W') - 1 > 0) {
            $this->generateWeekly($section, date('Y'), (int) date('W') - 4);
        } else {
            $this->generateWeekly($section, date('Y') - 1, 50 - (int) date('W'));
        }
    }

    protected function generateWeekNext(Section $section): void {
        $this->generateWeekly($section, date('Y'), (int) date('W') + 1);
    }

    protected function generateDashboard(Section $section): void {
        $this->loadWeekly();

        $this->getGrades();

        $baseHTML = $this->getBasedPage($section->source);

        $tags = array();
        $code = array();

        // Bloc top left
        $grade = <<<HTML
              <div class="box">
                <div class="box-header with-border">
                  <h3 class="box-title">Global grade : $this->globalGrade / 20</h3>
                </div>
                <div class="box-body chart-responsive">
                  <div id="donut-chart_grade"></div>
                </div>
                <!-- /.box-body -->
              </div>

HTML;
        $finalHTML = $this->injectBloc($baseHTML, 'BLOCHASHDATA', $grade);

        // bloc by week
        $table = $this->generateWeeklyTable();
        $byweek = <<<HTML
              <div class="box">
                <div class="box-header with-border">
                  <h3 class="box-title">This Week</h3>
                </div>
$table
                <!-- /.box-body -->
              </div>

HTML;
        $finalHTML = $this->injectBloc($finalHTML, 'BLOCKBYWEEK', $byweek);

        // Marking the audit date
        $this->makeAuditDate($finalHTML);

        // top 10
        $week = array_keys($this->weeks)[0];
        $fileHTML     = $this->getTopFile($this->weeks[$this->current]->analysis, "weekly-$week");
        $finalHTML    = $this->injectBloc($finalHTML, 'TOPFILE', $fileHTML);
        $analyzerHTML = $this->getTopAnalyzers($this->weeks[$this->current]->analysis, "weekly-$week");
        $finalHTML    = $this->injectBloc($finalHTML, 'TOPANALYZER', $analyzerHTML);

        $globalData = array(self::G_CRITICAL  => (object) array('label' => 'Critical', 'value' => 0),
                            self::G_ERROR     => (object) array('label' => 'Error',    'value' => 0),
                            self::G_WARNING   => (object) array('label' => 'Warning',  'value' => 0),
                            self::G_NOTICE    => (object) array('label' => 'Notice',   'value' => 0),
                            self::G_NONE      => (object) array('label' => 'OK',       'value' => 0));
        foreach($this->resultsCounts as $name => $value) {
            if ($value > 0) {
                $globalData[$this->grading[$name]]->value += floor(100 * min(log($value * $this->grading[$name]) / log(10), 5)) / 100;
            }
        }
        unset($globalData[self::G_NONE]);
        foreach($globalData as $data) {
            $data->value = intval($data->value * 100) / 100;
        }

        $globalData = json_encode(array_values($globalData));

        $blocjs = <<<JAVASCRIPT
  <script>
    $(document).ready(function() {
      Morris.Donut({
        element: 'donut-chart_grade',
        resize: true,
        colors: ["#0010E5", "#00DBC5", "#1BD200", "#C8A800", "#BF0023"],
        data: $globalData
      });
      Highcharts.theme = {
         colors: ["#F56954", "#f7a35c", "#ffea6f", "#D2D6DE"],
         chart: {
            backgroundColor: null,
            style: {
               fontFamily: "Dosis, sans-serif"
            }
         },
         title: {
            style: {
               fontSize: '16px',
               fontWeight: 'bold',
               textTransform: 'uppercase'
            }
         },
         tooltip: {
            borderWidth: 0,
            backgroundColor: 'rgba(219,219,216,0.8)',
            shadow: false
         },
         legend: {
            itemStyle: {
               fontWeight: 'bold',
               fontSize: '13px'
            }
         },
         xAxis: {
            gridLineWidth: 1,
            labels: {
               style: {
                  fontSize: '12px'
               }
            }
         },
         yAxis: {
            minorTickInterval: 'auto',
            title: {
               style: {
                  textTransform: 'uppercase'
               }
            },
            labels: {
               style: {
                  fontSize: '12px'
               }
            }
         },
         plotOptions: {
            candlestick: {
               lineColor: '#404048'
            }
         },

         // General
         background2: '#F0F0EA'
      };

      // Apply the theme
      Highcharts.setOptions(Highcharts.theme);

      $('#filename').highcharts({
          credits: {
            enabled: false
          },

          exporting: {
            enabled: false
          },

          chart: {
              type: 'column'
          },
          title: {
              text: ''
          },
          xAxis: {
              categories: [SCRIPTDATAFILES]
          },
          yAxis: {
              min: 0,
              title: {
                  text: ''
              },
              stackLabels: {
                  enabled: false,
                  style: {
                      fontWeight: 'bold',
                      color: (Highcharts.theme && Highcharts.theme.textColor) || 'gray'
                  }
              }
          },
          legend: {
              align: 'right',
              x: 0,
              verticalAlign: 'top',
              y: -10,
              floating: false,
              backgroundColor: (Highcharts.theme && Highcharts.theme.background2) || 'white',
              borderColor: '#CCC',
              borderWidth: 1,
              shadow: false
          },
          tooltip: {
              headerFormat: '<b>{point.x}</b><br/>',
              pointFormat: '{series.name}: {point.y}<br/>Total: {point.stackTotal}'
          },
          plotOptions: {
              column: {
                  stacking: 'normal',
                  dataLabels: {
                      enabled: false,
                      color: (Highcharts.theme && Highcharts.theme.dataLabelsColor) || 'white',
                      style: {
                          textShadow: '0 0 3px black'
                      }
                  }
              }
          },
          series: [{
              name: 'Critical',
              data: [SCRIPTDATACRITICAL]
          }, {
              name: 'Major',
              data: [SCRIPTDATAMAJOR]
          }, {
              name: 'Minor',
              data: [SCRIPTDATAMINOR]
          }, {
              name: 'None',
              data: [SCRIPTDATANONE]
          }]
      });

      $('#container').highcharts({
          credits: {
            enabled: false
          },

          exporting: {
            enabled: false
          },

          chart: {
              type: 'column'
          },
          title: {
              text: ''
          },
          xAxis: {
              categories: [SCRIPTDATAANALYZERLIST]
          },
          yAxis: {
              min: 0,
              title: {
                  text: ''
              },
              stackLabels: {
                  enabled: false,
                  style: {
                      fontWeight: 'bold',
                      color: (Highcharts.theme && Highcharts.theme.textColor) || 'gray'
                  }
              }
          },
          legend: {
              align: 'right',
              x: 0,
              verticalAlign: 'top',
              y: -10,
              floating: false,
              backgroundColor: (Highcharts.theme && Highcharts.theme.background2) || 'white',
              borderColor: '#CCC',
              borderWidth: 1,
              shadow: false
          },
          tooltip: {
              headerFormat: '<b>{point.x}</b><br/>',
              pointFormat: '{series.name}: {point.y}<br/>Total: {point.stackTotal}'
          },
          plotOptions: {
              column: {
                  stacking: 'normal',
                  dataLabels: {
                      enabled: false,
                      color: (Highcharts.theme && Highcharts.theme.dataLabelsColor) || 'white',
                      style: {
                          textShadow: '0 0 3px black'
                      }
                  }
              }
          },
          series: [{
              name: 'Critical',
              data: [SCRIPTDATAANALYZERCRITICAL]
          }, {
              name: 'Major',
              data: [SCRIPTDATAANALYZERMAJOR]
          }, {
              name: 'Minor',
              data: [SCRIPTDATAANALYZERMINOR]
          }, {
              name: 'None',
              data: [SCRIPTDATAANALYZERNONE]
          }]
      });
    });
  </script>
JAVASCRIPT;

        // Filename Overview
        $fileOverview = $this->getFileOverview();
        $tags[] = 'SCRIPTDATAFILES';
        $code[] = $fileOverview['scriptDataFiles'];
        $tags[] = 'SCRIPTDATAMAJOR';
        $code[] = $fileOverview['scriptDataMajor'];
        $tags[] = 'SCRIPTDATACRITICAL';
        $code[] = $fileOverview['scriptDataCritical'];
        $tags[] = 'SCRIPTDATANONE';
        $code[] = $fileOverview['scriptDataNone'];
        $tags[] = 'SCRIPTDATAMINOR';
        $code[] = $fileOverview['scriptDataMinor'];

        // Analyzer Overview
        $analyzerOverview = $this->getAnalyzerOverview();
        $tags[] = 'SCRIPTDATAANALYZERLIST';
        $code[] = $analyzerOverview['scriptDataAnalyzer'];
        $tags[] = 'SCRIPTDATAANALYZERMAJOR';
        $code[] = $analyzerOverview['scriptDataAnalyzerMajor'];
        $tags[] = 'SCRIPTDATAANALYZERCRITICAL';
        $code[] = $analyzerOverview['scriptDataAnalyzerCritical'];
        $tags[] = 'SCRIPTDATAANALYZERNONE';
        $code[] = $analyzerOverview['scriptDataAnalyzerNone'];
        $tags[] = 'SCRIPTDATAANALYZERMINOR';
        $code[] = $analyzerOverview['scriptDataAnalyzerMinor'];

        $blocjs = str_replace($tags, $code, $blocjs);
        $finalHTML = $this->injectBloc($finalHTML, 'BLOC-JS',  $blocjs);
        $finalHTML = $this->injectBloc($finalHTML, 'TITLE', $section->title);
        $this->putBasedPage($section->file, $finalHTML);
    }

    protected function getAnalyzersCount(int $limit): array {
        $res = $this->dump->getAnalyzersCount($this->weeks[$this->current]->analysis);

        return array_slice($res->toArray(), 0, $limit);
    }

    protected function generateWeeklyTable() {
        $html = str_repeat('<div class="clearfix">
              <div class="block-cell-name">&nbsp;</div>
              <div class="block-cell-issue text-center">&nbsp;</div>
          </div>', 5);

        foreach (array_keys($this->weeks) as $id => $week) {
            $total = 0;
            foreach($this->weeks[$week]->analysis as $analyzer) {
                $total += $this->resultsCounts[$analyzer] ?? 0;
            }
            $html .= <<<HTML
    <div class="clearfix">
      <a href="weekly-$week.html">
        <div class="block-cell-name">{$this->titles[$id]}</div>
      </a>
      <div class="block-cell-issue text-center">$total</div>
    </div>
HTML;
        }

        $html .= str_repeat('<div class="clearfix">
              <div class="block-cell-name">&nbsp;</div>
              <div class="block-cell-issue text-center">&nbsp;</div>
          </div>', 5);

        return $html;
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;


class Typehint4all extends Reports {
    const FILE_EXTENSION = 'txt';
    const FILE_FILENAME  = self::STDOUT;

    const FORMAT = ' % 4s |  % 18s | %s';

    public function dependsOnAnalysis(): array {
        return array('Functions/CouldTypeWithInt',
                     'Functions/CouldTypeWithArray',
                     'Functions/CouldTypeWithString',
                     'Functions/CouldTypeWithBool',
                     'Functions/CouldBeCallable',
                     'Functions/CouldTypeWithIterable',
                     );
    }

    public function _generate(array $analyzerList): string {
        $analyzerList = $this->dependsOnAnalysis();

        $analysisResults = $this->dump->fetchAnalysers($analyzerList);
        $analysisResults->load();

        $displayResults = array();
        $titleCache    = array();
        $maxLine       = 0;
        $maxTitle      = 0;
        $previous      = '';

        foreach($analysisResults->toArray() as $row) {
            if (!isset($titleCache[$row['analyzer']])) {
                $titleCache[$row['analyzer']] = $this->docs->getDocs($row['analyzer'], 'name');
            }

            $row['fullcode'] = trim($row['fullcode'], '&');
            if (preg_match('/^(\$.*?) = /', $row['fullcode'], $r)) {
                $row['fullcode'] = $r[1];
            }
            $maxLine = max($maxLine, $row['line'], strlen($row['fullcode']));
            $maxTitle = max($maxTitle, strlen($titleCache[$row['analyzer']]), strlen($row['file']), strlen($row['fullcode']));

            $displayResults[] = $row;
        }

        $perfile       = array();
        foreach($displayResults as $row) {
            array_collect_by($perfile, $row['file'], $row);
        }

        foreach($perfile as $file => &$issues) {
            usort($issues, function ($a, $b) { return $a['line'] <=> $b['line'] ?: $a['fullcode'] <=> $b['fullcode'] ?: $a['analyzer'] <=> $b['analyzer'] ;});

            $previous = '';

            foreach($issues as &$row) {
                if ($previous === "$row[line]-$row[fullcode]") {
                    $row['fullcode'] = '';
                } else {
                    $previous = "$row[line]-$row[fullcode]";
                }

                $row = sprintf(self::FORMAT, $row['line'], $row['fullcode'], $titleCache[$row['analyzer']]);
            }
        }

        $text = '';
        $line = strlen($maxLine) + $maxTitle + 30;

        foreach($perfile as $file => $issues) {
            $text .= str_repeat('-', $line) . "\n" .
                     sprintf(self::FORMAT, 'line', 'arg.', $file) . "\n" .
                     str_repeat('-', $line) . "\n" .
                     implode("\n", $issues) . "\n" .
                     str_repeat('-', $line) . "\n"

                     . "\n"
                     . "\n";
        }

        return $text;
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;


class Codesniffer extends Reports {
    const FILE_EXTENSION = 'txt';
    const FILE_FILENAME  = 'exakat';

    public function _generate(array $analyzerList): string {
        $analysisResults = $this->dump->fetchAnalysers($analyzerList);
        $analysisResults->load();

        $results = array();
        $titleCache = array();
        $severityCache = array();
        foreach($analysisResults->toArray() as $row) {
            if (!isset($results[$row['file']])) {
                $file = array('errors'   => 0,
                              'warnings' => 0,
                              'fixable'  => 0,
                              'filename' => $row['file'],
                              'messages' => array());
                $results[$row['file']] = $file;
            }

            if (!isset($titleCache[$row['analyzer']])) {
                $analyzer = $this->rulesets->getInstance($row['analyzer'], null, $this->config);
                $titleCache[$row['analyzer']]    = $this->docs->getDocs($row['analyzer'], 'name');
                $severityCache[$row['analyzer']] = $this->docs->getDocs($row['analyzer'], 'severity');
            }

            $message = array('type'     => 'warning',
                             'source'   => $row['analyzer'],
                             'severity' => $severityCache[$row['analyzer']],
                             'fixable'  => 'fixable',
                             'message'  => $titleCache[$row['analyzer']]);

            if (!isset($results[ $row['file'] ]['messages'][ $row['line'] ])) {
                $results[ $row['file'] ]['messages'][ $row['line'] ] = array(0 => array());
            }
            $results[ $row['file'] ]['messages'][ $row['line'] ][0][] = $message;

            ++$results[ $row['file'] ]['warnings'];
        }

        $separator = str_repeat('-', 80) . "\n";
        $text = '';
        foreach($results as $file) {
            ksort($file['messages']);
            $text .= 'FILE : ' . $file['filename'] . "\n";
            $text .= $separator;
            $c = count($file['messages']);
            $l = count(array_filter(array_keys($file['messages']), function ($x) { return $x > 0; }));
            $text .= 'FOUND ' . $c . ' ISSUE' . ( $c > 1 ? 'S' : '') . ' AFFECTING ' . $l . ' LINE' . ( $l > 1 ? 'S' : '') . "\n";
            $text .= $separator;

            $maxSize = strlen((string) max(array_keys($file['messages'])));
            $padding = str_repeat(' ', $maxSize);

            $maxSize = strlen((string) max(array_keys($file['messages'])));
            $padding = str_repeat(' ', $maxSize);

            foreach($file['messages'] as $line => $column) {

                $messages = $column[0];
                foreach($messages as $message) {
                    $lineToDisplay = $line == -1 ? '  ' : $line;
                    $linePadded = substr( $padding . $lineToDisplay, -$maxSize);
                    $text .= ' ' . $linePadded . ' | ' . strtoupper($message['severity']) . ' | ' . $message['message'] . "\n";
                    $this->count();
                }
            }
            $text .= "$separator\n\n\n";
        }

        return $text;
    }
}

?>dashboard:
    menu: Dashboard
    title: Dashboard
    file: index
    method: generateDashboard
    icon: dashboard
compilations:
    title: Compilations
    file: compatibility_compilations
    method: generateCompilations
    icon: certificate
php_versions:
    title: Compatibility By Version
    menu: PHP Version
    source: empty
    file: compatibility_version
    method: generateCompatibilityEstimate
    icon: certificate
compatibility_php74:
    source: compatibility
    title: Compatibility PHP 7.4
    file: compatibility_php74
    method: generateCompatibility74
    icon: certificate
issues:
    title: Issues
    icon: flag
    file: compatibility_issues
    method: generateIssuesEngine
    ruleset: CompatibilityPHP74
suggestions:
    title: Suggestions
    icon: flag
    file: suggestions
    method: generateIssuesEngine
    ruleset: Suggestions
annexes:
    title: Annexes
    icon: sticky-note-o
    subsections: 
        engine_settings:
            title: Engine Settings
            source: annex_settings
            file: engine_settings
            method: generateAnalyzerSettings
        annex_config:
            title: Audit Configuration
            file: annex_config
            method: generateAuditConfig
        processed_files:
            title: Processed files
            source: proc_files
            file: processed_files
            method: generateProcFiles
            icon: file
        processed_analysis:
            title: Processed analysis
            source: proc_analyses
            file: processed_analysis
            method: generateAnalyzersList
            icon: file
        annex_docs:
            title: Analyses documentation
            file: analyses_doc
            method: generateDocumentation
            icon: file
        annex_codes:
            title: Source code
            file: codes
            method: generateCodes
            icon: file
        credits:
            title: Credits
            file: credits
            icon: thumbs-up
   Bud1                                                                       e r sdsclbo                                           H e l p e r sdsclbool                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        @                                              @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   E                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          DSDB                                 `                                                     @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          <?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Reports;

use XmlWriter;
use Exakat\Exakat;

class Scrutinizer extends Reports {
    private $cachedData = '';

    const FILE_EXTENSION = 'xml';
    const FILE_FILENAME  = 'scrutinizer';

    public function generateFileReport($report) {
        $out = new XMLWriter();
        $out->openMemory();
        $out->setIndent(true);

        $out->startElement('file');
        $out->writeAttribute('name', $report['filename']);

        foreach ($report['messages'] as $line => $lineErrors) {
            foreach ($lineErrors as $column => $colErrors) {
                foreach ($colErrors as $error) {

                    $out->startElement('error');
                    $out->writeAttribute('line', (string) $line);
                    $out->writeAttribute('message', $error['message']);
                    $out->writeAttribute('source', $error['source']);
                    $out->endElement();
                    $this->count();
                }
            }
        }

        $out->endElement();
        $this->cachedData .= $out->flush();
    }

    public function generate(string $folder, string $name = self::FILE_FILENAME): string {
        $list = $this->rulesets->getRulesetsAnalyzers($this->themesToShow);

        $resultsAnalyzers = $this->dump->fetchAnalysers($list);
        $resultsAnalyzers->load();

        $results = array();
        $titleCache = array();
        foreach($resultsAnalyzers->toArray() as $row) {
            if (!isset($titleCache[$row['analyzer']])) {
                $titleCache[$row['analyzer']] = $this->docs->getDocs($row['analyzer'], 'name');
            }

            if (!isset($results[$row['file']])) {
                $file = array('filename' => $row['file'],
                              'messages' => array());
                $results[$row['file']] = $file;
            }

            $message = array('source'   => $row['analyzer'],
                             'message'  => $titleCache[$row['analyzer']]);

            if (!isset($results[ $row['file'] ]['messages'][ $row['line'] ])) {
                $results[ $row['file'] ]['messages'][ $row['line'] ] = array(0 => array());
            }
            $results[ $row['file'] ]['messages'][ $row['line'] ][0][] = $message;
        }

        foreach($results as $file) {
            $this->generateFileReport($file);
        }

        $version = Exakat::VERSION;
        $this->cachedData = str_replace("\n", "\n  ", $this->cachedData);
        $return = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<exakat version="$version">
  $this->cachedData
</exakat>
XML;

        if ($name === self::STDOUT) {
            echo $return;
        } else {
            file_put_contents($folder . '/' . $name . '.' . self::FILE_EXTENSION, $return);
        }

        return '';
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;


class Simpletable extends Reports {
    const FILE_EXTENSION = '';
    const FILE_FILENAME  = 'table';

    private $tmpName     = '';
    private $finalName   = '';

    public function generate(string $folder, string $name= 'table'): string {
        $this->finalName = "$folder/$name";
        $this->tmpName   = "{$this->config->tmp_dir}/.$name";

        $this->initFolder();
        $this->generateData($folder);
        $this->cleanFolder();

        return '';
    }

    private function generateData($folder, $name = 'table'): void {
        $list = $this->rulesets->getRulesetsAnalyzers(array('Analyze'));

        $res = $this->dump->fetchAnalysers($list);

        $results = $res->toArrayHash();
        asort($results);

        $table = '';
        foreach($results as $section => $lines) {
            $rows = array();

            foreach($lines as $line) {
                $rows[] = <<<HTML
			<tr>
				<td>{$line['code']}</td>
				<td>{$line['file']}</td>
				<td>{$line['line']}</td>
			</tr>

HTML;
            }

            $ini = $this->docs->getDocs($section);
            $title = makeHtml($ini['name']);

            $rows = implode('', $rows);
            $c = count($lines);
            $table .= <<<HTML
		<tbody class="labels">
			<tr>
				<td colspan="5">
					<label for="$section">($c) $title</label>
					<input type="checkbox" name="accounting" id="$section" data-toggle="toggle">
				</td>
			</tr>
		</tbody>
		<tbody class="hide">
		    $rows
		</tbody>
HTML;
        }

        $html = file_get_contents($this->tmpName . '/index.html');
        $html = str_replace('<sections />', $table, $html);
        file_put_contents($this->tmpName . '/index.html', $html);
    }

    private function initFolder(): void {
        if ($this->finalName === 'stdout') {
            print "Can't produce Simpletable format to stdout";
            return;
        }

        // Clean temporary destination
        if (file_exists($this->tmpName)) {
            rmdirRecursive($this->tmpName);
        }

        // Copy template
        copyDir($this->config->dir_root . '/media/simpletable', $this->tmpName );
    }

    private function cleanFolder(): void {
        if (file_exists($this->finalName)) {
            rename($this->finalName, $this->tmpName . '2');
        }

        rename($this->tmpName, $this->finalName);

        if (file_exists($this->tmpName . '2')) {
            rmdirRecursive($this->tmpName . '2');
        }
    }

    private function syntaxColoring(string $source): string {
        $colored = highlight_string('<?php ' . $source . ' ;?>', \RETURN_VALUE);
        $colored = substr($colored, 79, -65);

        if ($colored[0] === '$') {
            $colored = '<span style="color: #0000BB">' . $colored;
        }

        return $colored;
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;


class Json extends Reports {
    const FILE_EXTENSION = 'json';
    const FILE_FILENAME  = 'exakat';

    public function _generate(array $analyzerList): string {
        $analysisResults = $this->dump->fetchAnalysers($analyzerList);

        $results = array();
        $titleCache = array();
        $severityCache = array();
        foreach($analysisResults->toArray() as $row) {
            if (!isset($results[$row['file']])) {
                $file = array('errors'   => 0,
                              'warnings' => 0,
                              'fixable'  => 0,
                              'filename' => $row['file'],
                              'messages' => array());
                $results[$row['file']] = $file;
            }

            if (!isset($titleCache[$row['analyzer']])) {
                $analyzer = $this->rulesets->getInstance($row['analyzer'], null, $this->config);

                $titleCache[$row['analyzer']]    = $this->docs->getDocs($row['analyzer'], 'name');
                $severityCache[$row['analyzer']] = $this->docs->getDocs($row['analyzer'], 'severity');
            }

            $message = array('type'     => 'warning',
                             'source'   => $row['analyzer'],
                             'severity' => $severityCache[$row['analyzer']],
                             'fixable'  => 'fixable',
                             'message'  => $titleCache[$row['analyzer']],
                             'fullcode' => $row['fullcode']);

            if (!isset($results[ $row['file'] ]['messages'][ $row['line'] ])) {
                $results[ $row['file'] ]['messages'][ $row['line'] ] = array(0 => array());
            }
            $results[ $row['file'] ]['messages'][ $row['line'] ][0][] = $message;

            ++$results[ $row['file'] ]['warnings'];
            $this->count();
        }

        return json_encode($results);
    }
}

?>dashboard:
    menu: Dashboard
    title: Dashboard
    file: index
    method: generateDashboard
    icon: dashboard
issues:
    title: Issues
    icon: flag
    file: issues
    method: generateIssuesEngine
    ruleset: ClassReview
audit:
    title: Audit logs
    icon: sliders
    subsections: 
        phpclasses_list:
            title: PHP Native CIT
            file: phpclasses_list
            method: generatePHPClassesBreakdown
        cit_size:
            title: Classes Sizes
            file: cit_size
            method: generateClassSize
            icon: circle-o            
annexes:
    title: Annexes
    icon: sticky-note-o
    subsections: 
        engine_settings:
            title: Engine Settings
            source: annex_settings
            file: engine_settings
            method: generateAnalyzerSettings
        annex_config:
            title: Audit Configuration
            file: annex_config
            method: generateAuditConfig
        processed_files:
            title: Processed files
            source: proc_files
            file: processed_files
            method: generateProcFiles
            icon: file
        processed_analysis:
            title: Processed analysis
            source: proc_analyses
            file: processed_analysis
            method: generateAnalyzersList
            icon: file
        annex_docs:
            title: Analyses documentation
            file: analyses_doc
            method: generateDocumentation
            icon: file
        annex_codes:
            title: Source code
            file: codes
            method: generateCodes
            icon: file
        credits:
            title: Credits
            file: credits
            icon: thumbs-up
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;

use Exakat\Reports\Helpers\PhpCodeTree;

class Exakatvendors extends Reports {
    const FILE_EXTENSION = 'ini';
    const FILE_FILENAME  = 'vendors.exakat';

    public function _generate(array $analyzerList): string {
        $stubCode = array();

        $code = new PhpCodeTree($this->dump);
        $code->load();

        $code->map('functions', function ($function) {
            return "function[] = \"$function[function]\";";
        });
        $code->reduce('functions', function ($carry, $item) {
            return $carry . "\n" . $item;
        });

        $code->map('namespaces', function ($namespace) {
            return $namespace['functions'][$namespace['id']]['reduced'] ?? '; No function definitions';
        });

        $code->reduce('namespaces', function ($carry, $item) {
            return $carry . "\n" . $item;
        });

        return $code->get('namespaces');
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;

use Exakat\Dump\Dump;

abstract class Reports {
    const STDOUT = 'stdout';
    const INLINE = 'inline';

    public static $FORMATS        = array('Ambassador', 'Ambassadornomenu', 'Drillinstructor', 'Top10',
                                          'Text', 'Xml', 'Uml', 'Yaml', 'Plantuml', 'None', 'Simplehtml', 'Owasp', 'Perfile', 'BeautyCanon',
                                          'Phpconfiguration', 'Phpcompilation', 'Favorites', 'Manual', 'Stubs',
                                          'Inventories', 'Clustergrammer', 'Filedependencies', 'Filedependencieshtml', 'Classdependencies', 'Stubs', 'StubsJson',
                                          'Radwellcode', 'Grade', 'Weekly', 'Scrutinizer', 'Codesniffer', 'Phpcsfixer',
                                          'Facetedjson', 'Json', 'Onepagejson', 'Marmelab', 'Simpletable', 'Exakatyaml',
                                          'Codeflower', 'Dependencywheel', 'Phpcity', 'Sarb',
                                          'Exakatvendors', 'Topology',
                                          'Meters',
                                          //'DailyTodo',
                                          );

    protected $themesToShow = array('CompatibilityPHP56', //'CompatibilityPHP53', 'CompatibilityPHP54', 'CompatibilityPHP55',
                                    'CompatibilityPHP70', 'CompatibilityPHP71', 'CompatibilityPHP72', 'CompatibilityPHP73',
                                    'CompatibilityPHP74',
                                    'CompatibilityPHP80',
                                    'Dead code', 'Security', 'Analyze', 'Inventories',
                                    'Dump',
                                    );

    private $count = 0;

    protected $themesList = '';      // cache for themes list in SQLITE
    protected $config     = null;
    protected $docs       = null;

    protected $dump      = null;

    protected $datastore = null;
    protected $rulesets  = null;

    public function __construct() {
        $this->config    = exakat('config');
        $this->docs      = exakat('docs');
//        $this->datastore = exakat('datastore');
//        $this->datastore->reuse();

        if (file_exists($this->config->dump)) {
            $this->dump      = Dump::factory($this->config->dump);

            $this->rulesets  = exakat('rulesets');

            // Default analyzers
            $analyzers = array_merge($this->rulesets->getRulesetsAnalyzers($this->config->project_results ?? array()),
                                     array_keys($this->config->rulesets));
            $this->themesList = makeList($analyzers);
        }
    }

    protected function _generate(array $analyzerList): string {
        return '';
    }

    public static function getReportClass(string $report): string {
        $report = ucfirst(strtolower($report));
        return "\\Exakat\\Reports\\$report";
    }

    public function generate(string $folder, string $name= 'table'): string {
        if (empty($name)) {
            // FILE_FILENAME is defined in the children class
            $name = $this::FILE_FILENAME;
        }

        $rulesets = $this->config->project_rulesets;
        if (!empty($rulesets)) {
            if ($missing = $this->checkMissingRulesets()) {
                print "Can't produce " . static::class . ' format. There are ' . count($missing) . ' missing rulesets : ' . implode(', ', $missing) . ".\n";
                return '';
            }

            $list = $this->rulesets->getRulesetsAnalyzers($rulesets);
        } elseif (!empty($this->config->program)) {
            $list = makeArray($this->config->program);
        } else {
            $list = $this->rulesets->getRulesetsAnalyzers($this->themesToShow);
        }

        $final = $this->_generate($list);

        if ($name === self::STDOUT) {
            if (empty($final)) {
                exit(0);
            } else {
                echo $final;
                exit(1);
            }
        } elseif ($name === self::INLINE) {
            return $final ;
        } else {
            file_put_contents("$folder/$name." . $this::FILE_EXTENSION, $final);
            return '';
        }
    }

    protected function count($step = 1): void {
        $this->count += $step;
    }

    public function getCount(): int {
        return $this->count;
    }

    public function dependsOnAnalysis(): array {
        if (empty($this->config->rulesets)) {
            return array();
        } else {
            return $this->config->rulesets;
        }
    }

    public function checkMissingRulesets(): array {
        $required = $this->dependsOnAnalysis();

        if (empty($required)) {
            return $required;
        }

        $available = $this->dump->fetchTable('themas')->toList('thema');

        if (empty($available)) {
            // Nothing found.
            return $required;
        }

        return array_diff($required, $available);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;


class Dependencywheel extends Reports {
    const FILE_EXTENSION = '';
    const FILE_FILENAME  = 'wheel';

    private $tmpName      = '';
    private $finalName    = '';
    private $packagenames = '';
    private $matrix       = '';

    public function generate(string $folder, string $name= 'wheel'): string {
        if ($name === self::STDOUT) {
            print "Can't produce Dependency Wheel format to stdout\n";
            return '';
        }

        $this->finalName = "$folder/$name";
        $this->tmpName   = "$folder/.$name";

        $this->initFolder();

        $this->makeWheel();

        $this->cleanFolder();

        return '';
    }

    private function makeWheel() {
        $packagenames = array('Main');

        $res = $this->dump->fetchTable('cit');

        $ids = array();
        $extends = array();
        foreach($res->toArray() as $row) {
            $packagenames[] = $row['name'];

            if (($row['extends'] !== '') &&
                ((int) $row['extends'] == 0) &&
                !in_array($row['extends'], $packagenames)) {

                $packagenames[] = $row['extends'];
                $ids[$row['extends']] = $row['extends'];
            }
            $ids[$row['id']] = $row['name'];

            if ($row['extends'] !== 0) {
                if (isset($extends[$row['name'] ])) {
                    $extends[$row['name'] ][] = $row['extends'];
                } else {
                    $extends[$row['name'] ] = array($row['extends']);
                }
            }

            $this->count();
        }

        $res = $this->dump->fetchTable('cit_implements');
        foreach($res->toArray() as $row) {
            if (($row['implements'] !== '') &&
                ((int) $row['implements'] === 0) &&
                (!in_array($row['implements'], $packagenames)) ) {

                $packagenames[] = $row['implements'];
                $ids[$row['implements']] = $row['implements'];
            }
        }

        $results = array();
        $n = count($packagenames);
        $results = array_pad(array(), $n, array_pad( array(), $n, 0));
        $dict = array_flip($packagenames);

        foreach($extends as $name => $extend) {
            foreach($extend as $ext) {
                if ($ext === '') {
                    continue;
                } elseif ((int) $ext === 0) {
                    $e = $dict[$ext];
                } elseif ((int) $ext > 0) {
                    $e = $dict[$ids[$ext]];
                } else {
                    assert(false, '$ext is not a string nor an integer.');
                }

                $results[$dict[$name]][$e] = 1;
            }
        }

        foreach($res->toArray() as $row) {
            if (!isset($ids[$row['implements']])) {
                continue;
            }
            $I = $ids[$row['implements']];
            $i = $dict[$I];

            $E = $ids[$row['implementing']];
            $e = $dict[$E];

            $results[$e][$i] = 1;
        }

        // Default to link to main.
        // This is done before reporting implements and use
        foreach($results as &$result) {
            if (array_sum($result) === 0) {
                $result[0] = 1;
            }
        }
        unset($result);

        $this->matrix       = json_encode($results);
        $this->packagenames = json_encode($packagenames);
    }

    private function initFolder() {
        if ($this->finalName === 'stdout') {
            return "Can't produce Dependencywheel format to stdout";
        }

        // Clean temporary destination
        if (file_exists($this->tmpName)) {
            rmdirRecursive($this->tmpName);
        }

        // Copy template
        copyDir($this->config->dir_root . '/media/dependencywheel', $this->tmpName );
    }

    private function cleanFolder() {
        $html = file_get_contents($this->tmpName . '/index.html');

        $html = str_replace(array('<MATRIX>',    '<PROJECT>',            '<PACKAGENAMES>'),
                            array($this->matrix, $this->config->project, $this->packagenames),
                            $html);

        file_put_contents($this->tmpName . '/index.html', $html);

        if (file_exists($this->finalName)) {
            rename($this->finalName, $this->tmpName . '2');
        }

        rename($this->tmpName, $this->finalName);

        if (file_exists($this->tmpName . '2')) {
            rmdirRecursive($this->tmpName . '2');
        }
    }

}

?>dashboard:
    menu: Dashboard
    title: Dashboard
    file: index
    method: generateDashboard
    icon: dashboard
files:
    title: Files Overview
    menu: Files
    file: files
    method: generateFiles
    icon: file-code-o
analysis:
    title: Analyses Overview
    menu: Analyses
    file: analyses
    method: generateAnalyzers
    icon: line-chart
new_issues:
    title: New Issues
    icon: flag
    file: neoissues
    method: generateNewIssues
issues:
    title: Issues
    icon: flag
    file: issues
    method: generateIssuesEngine
    ruleset: Analyze
security:
    title: Security Issues
    menu: Security
    icon: flag
    file: security_issues
    method: generateIssuesEngine
    ruleset: Security
performances:
    title: Performances Issues
    menu: Performances
    icon: flag
    file: performances_issues
    method: generateIssuesEngine
    ruleset: Performances
dead_code:
    title: Dead Code Issues
    menu: Dead code
    icon: flag
    file: deadcode_issues
    method: generateIssuesEngine
    ruleset: Dead code
compatibility:
    title: Compatibility
    icon: certificate
    subsections: 
        compilations:
            title: Compilations
            file: compatibility_compilations
            method: generateCompilations
            icon: certificate
        php_versions:
            title: Compatibility By Version
            menu: PHP Version
            source: empty
            file: compatibility_version
            method: generateCompatibilityEstimate
            icon: certificate
        compatibility_php74:
            source: compatibility
            title: Compatibility PHP 7.4
            file: compatibility_php74
            method: generateCompatibility74
            icon: certificate
        compatibility_php73:
            source: compatibility
            title: Compatibility PHP 7.3
            file: compatibility_php73
            method: generateCompatibility73
            icon: certificate
        compatibility_php72:
            source: compatibility
            title: Compatibility PHP 7.2
            file: compatibility_php72
            method: generateCompatibility72
            icon: certificate
        compatibility_php71:
            source: compatibility
            title: Compatibility PHP 7.1
            file: compatibility_php71
            method: generateCompatibility71
            icon: certificate
        compatibility_php70:
            source: compatibility
            title: Compatibility PHP 7.0
            file: compatibility_php70
            method: generateCompatibility70
            icon: certificate
        compatibility_php56:
            source: compatibility
            title: Compatibility PHP 5.6
            file: compatibility_php56
            method: generateCompatibility56
            icon: certificate
        compatibility_php55:
            source: compatibility
            title: Compatibility PHP 5.5
            file: compatibility_php55
            method: generateCompatibility55
            icon: certificate
        compatibility_php54:
            source: compatibility
            title: Compatibility PHP 5.4
            file: compatibility_php54
            method: generateCompatibility54
            icon: certificate
        compatibility_php53:
            source: compatibility
            title: Compatibility PHP 5.3
            file: compatibility_php53
            method: generateCompatibility53
            icon: certificate
        compatibility_issues:
            title: Compatibility Issues
            menu: Compatibility Issues
            source: compatibility_issues
            file: compatibility_issues
            method: generateIssuesEngine
            ruleset: [CompatibilityPHP74, 
                      CompatibilityPHP73, 
                      CompatibilityPHP72,
                      CompatibilityPHP71,
                      CompatibilityPHP70,
                      CompatibilityPHP56,
                      CompatibilityPHP55,
                      CompatibilityPHP54,
                      CompatibilityPHP53
                      ]
            icon: flag
favorites:
    title: Favorites
    icon: heart
    subsections: 
        compilations:
            title: Favorite Overview
            file: favorites_dashboard
            method: generateFavorites
            icon: certificate
        favorite_issues:
            title: Favorite issues
            file: favorites_issues
            method: generateIssuesEngine
            ruleset: Preferences
suggestions:
    title: Suggestions
    icon: flag
    file: suggestions
    method: generateIssuesEngine
    ruleset: Suggestions
audit:
    title: Audit logs
    icon: sliders
    subsections: 
        appinfo:
            title: Appinfo()
            file: appinfo
            method: generateAppinfo
            icon: circle-o
        bugfixes:
            title: Bugfixes
            source: bugfixes
            file: bugfixes
            method: generateBugFixes
            icon: circle-o
        php_compilation:
            title: PHP Compilation List
            file: php_compilation
            method: generatePhpConfiguration
            icon: circle-o
        directive_list:
            title: PHP Directives List
            file: directive_list
            method: generateDirectiveList
            icon: circle-o
        altered_directives:
            title: Altered PHP Directives
            file: altered_directives
            method: generateAlteredDirectives
            icon: circle-o
        extension_list:
            title: Extensions' List
            file: extension_list
            method: generateExtensionsBreakdown
            icon: circle-o
        ext_lib:
            title: External Libraries' List
            file: ext_lib
            method: generateExternalLib
            icon: circle-o
        external_services:
            title: External Services
            file: external_services
            method: generateExternalServices
            icon: circle-o
        parameters_counts:
            title: Parameter Counts
            file: parameter_counts
            method: generateParameterCounts
            icon: circle-o
        local_variable_counts:
            title: Local Variable Counts
            file: local_variable_counts
            method: generateLocalVariableCounts
            icon: circle-o
        property_counts:
            title: Properties Counts
            file: property_counts
            method: generatePropertyCounts
            icon: circle-o
        class_constant_counts:
            title: Class Constant Counts
            file: class_constant_counts
            method: generateClassConstantCounts
            icon: circle-o
        method_counts:
            title: Method Counts
            file: method_counts
            method: generateMethodCounts
            icon: circle-o
        indentation_levels:
            title: Indentation levels
            file: indentation_levels
            method: generateIndentationLevelsBreakdown
            icon: circle-o
        foreach_favorites:
            title: Foreach Favorite Names
            file: foreach_favorites
            method: generateForeachFavorites
            icon: circle-o
        dereferencing_levels:
            title: Dereferencing levels
            file: dereferencing_levels
            method: generateDereferencingLevelsBreakdown
            icon: circle-o
        changed_classes:
            title: Changed Classes
            file: changed_classes
            method: generateChangedClasses
            icon: circle-o
        stats:
            title: Statistics
            file: stats
            method: generateStats
            icon: circle-o
        visibility_suggestions:
            title: Class Visibility Suggestions
            source: empty
            file: visibility_suggestions
            method: generateVisibilitySuggestions
            icon: circle-o
        typehint_suggestions:
            title: Class Typehint Status
            source: empty
            file: typehint_suggestions
            method: generateTypehintSuggestions
            icon: circle-o
        typehint_stats:
            title: Class Typehint Stats
            file: typehint_stats
            method: generateTypehintStats
            icon: circle-o
        class_options_suggestions:
            title: Class Option Recommendations
            source: empty
            file: class_options_suggestions
            method: generateClassOptionSuggestions
            icon: circle-o            
        complex_expressions:
            title: Complex Expressions
            source: complex_expressions
            file: complex_expressions
            method: generateComplexExpressions
            icon: circle-o            
        cit_size:
            title: Classes Sizes
            file: cit_size
            method: generateClassSize
            icon: circle-o            
        method_size:
            title: Methods Sizes
            source: cit_size
            file: method_size
            method: generateMethodSize
            icon: circle-o            
        classes_depth:
            title: Class Depth
            file: classes_depth
            method: generateClassDepth
            icon: circle-o            
        concentrated_issues:
            title: Concentrated Issues
            file: concentrated_issues
            method: generateConcentratedIssues
            icon: circle-o            
        identical_files:
            title: Identical files
            source: identical_files
            file: identical_files
            method: generateIdenticalFiles
            icon: circle-o            
        no_issues:
            title: No Issues Analysis
            file: no_issues
            method: generateNoIssues
            icon: circle-o            
inventories:
    title: Inventories
    icon: shopping-cart
    subsections: 
        dynamic_code:
            title: Dynamic Code
            file: dynamic_code
            method: generateDynamicCode
        global_variables:
            source: globals
            title: Global Variables
            file: global_variables
            method: generateGlobals
        error_messages:
            title: Error Messages
            file: error_messages
            method: generateErrorMessages
        inventories_designations:
            title: Class Designations
            source: empty
            file: inventories_designations
            method: generateClassDesignations
        inventories_exceptions:
            title: Exception Inventory
            source: empty
            file: inventories_exceptions
            method: generateExceptionTree
        namespace_tree:
            title: Namespace Tree
            source: empty
            file: inventories_namespacetree
            method: generateNamespaceTree
        classes_tree:
            title: Classes Tree
            source: empty
            file: inventories_classtree
            method: generateClassTree
        inventories_traittree:
            title: Trait Tree
            source: empty
            file: inventories_traittree
            method: generateTraitTree
        inventories_traitmatrix:
            title: Traits Matrix
            source: empty
            file: inventories_traitmatrix
            method: generateTraitMatrix
        inventories_interfacetree:
            title: Interface tree
            source: empty
            file: inventories_interfacetree
            method: generateInterfaceTree
        inventories_magic:
            title: Used Magic Properties
            source: inventories
            file: inventories_magic
            method: generateUsedMagic
        phpfunctions_list:
            title: Native PHP Function usage
            file: phpfunctions_list
            method: generatePHPFunctionBreakdown
        phpconstants_list:
            title: Native PHP Constant usage
            file: phpconstants_list
            method: generatePHPConstantsBreakdown
        phpclasses_list:
            title: PHP Native CIT
            file: phpclasses_list
            method: generatePHPClassesBreakdown
        files_tree:
            title: File dependencies tree
            source: empty
            file: files_tree
            method: generateFileDependencies
        constant_tree:
            title: Constant dependencies tree
            source: empty
            file: constant_tree
            method: generateConstantTree
        variables_confusing:
            title: Confusing Variables
            source: empty
            file: variables_confusing
            method: generateConfusingVariables
        inventories_constants:
            title: Constants Inventory
            source: inventories
            file: inventories_constants
            method: generateInventoriesConstants
        inventories_classes:
            title: Classes Inventory
            source: inventories
            file: inventories_classes
            method: generateInventoriesClasses
        inventories_interfaces:
            title: Interfaces Inventory
            source: inventories
            file: inventories_interfaces
            method: generateInventoriesInterfaces
        inventories_traits:
            title: Traits Inventory
            source: inventories
            file: inventories_traits
            method: generateInventoriesTraits
        inventories_functions:
            title: Functions Inventory
            source: inventories
            file: inventories_functions
            method: generateInventoriesFunctions
        inventories_namespaces:
            title: Namespaces Inventory
            source: inventories
            file: inventories_namespaces
            method: generateInventoriesNamespaces
        inventories_url:
            title: URL Inventory
            source: inventories
            file: inventories_url
            method: generateInventoriesUrl
        inventories_regex:
            title: Regex Inventory
            source: inventories
            file: inventories_regex
            method: generateInventoriesRegex
        inventories_sql:
            title: SQL Inventory
            source: inventories
            file: inventories_sql
            method: generateInventoriesSql
        inventories_gpc:
            title: Incoming Variables
            source: inventories
            file: inventories_gpcindex
            method: generateInventoriesGPCIndex
        inventories_email:
            title: Email Inventory
            source: inventories
            file: inventories_email
            method: generateInventoriesEmail
        inventories_md5:
            title: Hashes Inventory
            source: inventories
            file: inventories_md5string
            method: generateInventoriesMd5string
        inventories_mime:
            title: Mime Inventory
            source: inventories
            file: inventories_mime
            method: generateInventoriesMime
        inventories_pack:
            title: Pack Inventory
            source: inventories
            file: inventories_pack
            method: generateInventoriesPack
        inventories_printf:
            title: Printf Inventory
            source: inventories
            file: inventories_printf
            method: generateInventoriesPrintf
        inventories_path:
            title: Path Inventory
            source: inventories
            file: inventories_path
            method: generateInventoriesPath
        inventories_encodings:
            title: Mbstring Encodings
            source: inventories
            file: inventories_encoding
            method: generateInventoriesEncoding
        inventories_opensslcipher:
            title: OpenSSL Ciphers
            source: inventories
            file: inventories_opensslciphers
            method: generateInventoriesOpenSSLCiphers
        inventories_protocols:
            title: PHP protocols
            source: inventories
            file: inventories_protocols
            method: generateInventoriesProtocols
Fixes:
    title: Fixes
    icon: wrench
    subsections: 
        fixes_phpcsfixer:
            title: PHP CS Fixer Fixes
            icon: cogs
            file: fixes_phpcsfixer
            method: generateFixesPhpCsFixer
        fixes_rector:
            title: Rector Fixes
            icon: cogs
            source: fixes_rector
            file: fixes_rector
            method: generateFixesRector

annexes:
    title: Annexes
    icon: list-ul
    subsections: 
        engine_settings:
            title: Engine Settings
            source: annex_settings
            file: engine_settings
            method: generateAnalyzerSettings
        annex_config:
            title: Audit Configuration
            file: annex_config
            method: generateAuditConfig
        annex_ruleset:
            title: Minimal Ruleset Configuration
            file: annex_ruleset
            method: generateTailoredRuleset
        processed_files:
            title: Processed files
            source: proc_files
            file: processed_files
            method: generateProcFiles
            icon: file
        processed_analysis:
            title: Processed analysis
            source: proc_analyses
            file: processed_analysis
            method: generateAnalyzersList
            icon: file
        annex_docs:
            title: Analyses documentation
            file: analyses_doc
            method: generateDocumentation
            icon: file
        annex_codes:
            title: Source code
            file: codes
            method: generateCodes
            icon: file
        credits:
            title: Credits
            file: credits
            icon: thumbs-up
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;


class Sarb extends Reports {
    const FILE_EXTENSION = 'json';
    const FILE_FILENAME  = 'exakat.sarb';

    public function _generate(array $analyzerList): string {
        $analysisResults = $this->dump->fetchAnalysers($analyzerList);
        $analysisResults->load();
        $code_dir = $this->config->code_dir;

        $results = array();
        foreach($analysisResults->toArray() as $row) {
            if ($row['line'] === -1) {
                // Skip project-wide issues
                continue;
            }
            $message = array('type' => $row['analyzer'],
                             'file' => $code_dir . $row['file'],
                             'line' => $row['line'],
                             );
            $results[] = $message;
        }

        return json_encode($results, \JSON_PRETTY_PRINT);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;


class All extends Reports {
    const FILE_EXTENSION = '';
    const FILE_FILENAME  = 'allExakat';

    public function generate(string $folder, string $name = 'table'): string {
        $omit = array('Ambassadornomenu',
                      'Facetedjson',
                      'Onepagejson',
                      'Topology',
                      );
        $reports = array_diff(Reports::$FORMATS, $omit);

        foreach($reports as $reportName) {
            display("Reporting with $reportName\n----------------------------------------\n");
            $reportClass = Reports::getReportClass($reportName);

            $report = new $reportClass($this->config);
            $report->generate($folder, $report::FILE_FILENAME ===  self::STDOUT ? self::FILE_FILENAME : $report::FILE_FILENAME);
        }

        return '';
    }

    public function dependsOnAnalysis(): array {
        $themesToRun = array(array());
        foreach(Reports::$FORMATS as $format) {
            $reportClass = "\Exakat\Reports\\$format";
            if (!class_exists($reportClass)) {
                continue;
            }
            $report = new $reportClass($this->config);

            $themesToRun[] = $report->dependsOnAnalysis();
            unset($report);
            gc_collect_cycles();
        }

        return array_unique(array_merge(...$themesToRun));
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;

use Exakat\Analyzer\Analyzer;

class Grade extends Ambassador {
    const FILE_FILENAME  = 'grade';
    const FILE_EXTENSION = '';
    const CONFIG_YAML    = 'Grade';

    const COLORS = array('A' => '#2ED600',
                         'B' => '#81D900',
                         'C' => '#D5DC00',
                         'D' => '#DF9100',
                         'E' => '#E23E00',
                         'F' => '#E50016',
                         );

    protected $analyzers       = array(); // cache for analyzers [Title] = object
    private $globalGrade = 0;

    const TOPLIMIT = 10;
    const LIMITGRAPHE = 40;

    const NOT_RUN      = 'Not Run';
    const YES          = 'Yes';
    const NO           = 'No';
    const INCOMPATIBLE = 'Incompatible';

    const G_CRITICAL = 5;
    const G_ERROR    = 4;
    const G_WARNING  = 3;
    const G_NOTICE   = 2;
    const G_NONE     = 1;

    private $grading = array();
    private $results = null;
    private $resultsCounts = null;

    protected $themesToShow      = array('Security');

    public function __construct() {
        parent::__construct();

        $this->grading = array(
    'Security/AnchorRegex'                  => self::G_WARNING,
    'Security/EncodedLetters'               => self::G_WARNING,
    'Structures/EvalWithoutTry'             => self::G_CRITICAL,
    'Security/parseUrlWithoutParameters'    => self::G_CRITICAL,
    'Structures/pregOptionE'                => self::G_NOTICE,
    'Indirect Injection'                    => self::G_NOTICE,
    'Security/IndirectInjection'            => self::G_NOTICE,
    'Structures/EvalUsage'                  => self::G_ERROR,
    'Security/Sqlite3RequiresSingleQuotes'  => self::G_ERROR,
        );
    }

    public function dependsOnAnalysis(): array {
        return array('Security',
                     );
    }

    private function generateIssues(Section $section): void {
        $this->generateIssuesEngine($section,
                                    $this->getIssuesFaceted($section->ruleset));
    }

    private function getGrades(): void {
        $this->results = $this->dump->fetchAnalysers(array_keys($this->grading));

        $this->resultsCounts = array_fill_keys(array_keys($this->grading), 0);
        foreach($this->results->toArray() as $result) {
            ++$this->resultsCounts[$result['analyzer']];
        }

        $this->globalGrade = 0;

        $grade = 0;
        foreach($this->resultsCounts as $name => $value) {
            if ($value > 0) {
                $grade += min(log($value * $this->grading[$name]) / log(10), 5);
            }
        }
        $this->globalGrade = intval(100 * max(0, 20 - $grade)) / 100;
    }

    protected function generateDashboard(Section $section): void {
        $this->getGrades();

        $baseHTML = $this->getBasedPage('index');

        $tags = array();
        $code = array();

        // Bloc top left
        $grade = <<<HTML
              <div class="box">
                <div class="box-header with-border">
                  <h3 class="box-title">Global grade : $this->globalGrade / 20</h3>
                </div>
                <div class="box-body chart-responsive">
                  <div id="donut-chart_grade"></div>
                </div>
                <!-- /.box-body -->
              </div>

HTML;
        $finalHTML = $this->injectBloc($baseHTML, 'BLOCHASHDATA', $grade);

        // bloc Issues
        $issues = $this->getIssuesBreakdown();
        $finalHTML = $this->injectBloc($finalHTML, 'BLOCISSUES', $issues['html']);
        $tags[] = 'SCRIPTISSUES';
        $code[] = $issues['script'];

        // bloc severity
        $severity = $this->getSeverityBreakdown();
        $finalHTML = $this->injectBloc($finalHTML, 'BLOCSEVERITY', $severity['html']);
        $tags[] = 'SCRIPTSEVERITY';
        $code[] = $severity['script'];

        // Marking the audit date
        $this->makeAuditDate($finalHTML);

        // top 10
        $fileHTML = $this->getTopFile($this->themesToShow);
        $finalHTML = $this->injectBloc($finalHTML, 'TOPFILE', $fileHTML);
        $analyzerHTML = $this->getTopAnalyzers($this->themesToShow);
        $finalHTML = $this->injectBloc($finalHTML, 'TOPANALYZER', $analyzerHTML);

        $globalData = array(self::G_CRITICAL  => (object) array('label' => 'Critical', 'value' => 0),
                            self::G_ERROR     => (object) array('label' => 'Error',    'value' => 0),
                            self::G_WARNING   => (object) array('label' => 'Warning',  'value' => 0),
                            self::G_NOTICE    => (object) array('label' => 'Notice',   'value' => 0),
                            self::G_NONE      => (object) array('label' => 'OK',       'value' => 0));
        foreach($this->resultsCounts as $name => $value) {
            if ($value > 0) {
                $globalData[$this->grading[$name]]->value += floor(100 * min(log($value * $this->grading[$name]) / log(10), 5)) / 100;
            }
        }
        unset($globalData[self::G_NONE]);

        $globalData = json_encode(array_values($globalData));

        $blocjs = <<<JAVASCRIPT
  <script>
    $(document).ready(function() {
      Morris.Donut({
        element: 'donut-chart_issues',
        resize: true,
        colors: ["#3c8dbc", "#f56954", "#00a65a", "#1424b8"],
        data: [SCRIPTISSUES]
      });
      Morris.Donut({
        element: 'donut-chart_severity',
        resize: true,
        colors: ["#3c8dbc", "#f56954", "#00a65a", "#1424b8"],
        data: [SCRIPTSEVERITY]
      });
      Morris.Donut({
        element: 'donut-chart_grade',
        resize: true,
        colors: ["#0010E5", "#00DBC5", "#1BD200", "#C8A800", "#BF0023"],
        data: $globalData
      });
      Highcharts.theme = {
         colors: ["#F56954", "#f7a35c", "#ffea6f", "#D2D6DE"],
         chart: {
            backgroundColor: null,
            style: {
               fontFamily: "Dosis, sans-serif"
            }
         },
         title: {
            style: {
               fontSize: '16px',
               fontWeight: 'bold',
               textTransform: 'uppercase'
            }
         },
         tooltip: {
            borderWidth: 0,
            backgroundColor: 'rgba(219,219,216,0.8)',
            shadow: false
         },
         legend: {
            itemStyle: {
               fontWeight: 'bold',
               fontSize: '13px'
            }
         },
         xAxis: {
            gridLineWidth: 1,
            labels: {
               style: {
                  fontSize: '12px'
               }
            }
         },
         yAxis: {
            minorTickInterval: 'auto',
            title: {
               style: {
                  textTransform: 'uppercase'
               }
            },
            labels: {
               style: {
                  fontSize: '12px'
               }
            }
         },
         plotOptions: {
            candlestick: {
               lineColor: '#404048'
            }
         },

         // General
         background2: '#F0F0EA'
      };

      // Apply the theme
      Highcharts.setOptions(Highcharts.theme);

      $('#filename').highcharts({
          credits: {
            enabled: false
          },

          exporting: {
            enabled: false
          },

          chart: {
              type: 'column'
          },
          title: {
              text: ''
          },
          xAxis: {
              categories: [SCRIPTDATAFILES]
          },
          yAxis: {
              min: 0,
              title: {
                  text: ''
              },
              stackLabels: {
                  enabled: false,
                  style: {
                      fontWeight: 'bold',
                      color: (Highcharts.theme && Highcharts.theme.textColor) || 'gray'
                  }
              }
          },
          legend: {
              align: 'right',
              x: 0,
              verticalAlign: 'top',
              y: -10,
              floating: false,
              backgroundColor: (Highcharts.theme && Highcharts.theme.background2) || 'white',
              borderColor: '#CCC',
              borderWidth: 1,
              shadow: false
          },
          tooltip: {
              headerFormat: '<b>{point.x}</b><br/>',
              pointFormat: '{series.name}: {point.y}<br/>Total: {point.stackTotal}'
          },
          plotOptions: {
              column: {
                  stacking: 'normal',
                  dataLabels: {
                      enabled: false,
                      color: (Highcharts.theme && Highcharts.theme.dataLabelsColor) || 'white',
                      style: {
                          textShadow: '0 0 3px black'
                      }
                  }
              }
          },
          series: [{
              name: 'Critical',
              data: [SCRIPTDATACRITICAL]
          }, {
              name: 'Major',
              data: [SCRIPTDATAMAJOR]
          }, {
              name: 'Minor',
              data: [SCRIPTDATAMINOR]
          }, {
              name: 'None',
              data: [SCRIPTDATANONE]
          }]
      });

      $('#container').highcharts({
          credits: {
            enabled: false
          },

          exporting: {
            enabled: false
          },

          chart: {
              type: 'column'
          },
          title: {
              text: ''
          },
          xAxis: {
              categories: [SCRIPTDATAANALYZERLIST]
          },
          yAxis: {
              min: 0,
              title: {
                  text: ''
              },
              stackLabels: {
                  enabled: false,
                  style: {
                      fontWeight: 'bold',
                      color: (Highcharts.theme && Highcharts.theme.textColor) || 'gray'
                  }
              }
          },
          legend: {
              align: 'right',
              x: 0,
              verticalAlign: 'top',
              y: -10,
              floating: false,
              backgroundColor: (Highcharts.theme && Highcharts.theme.background2) || 'white',
              borderColor: '#CCC',
              borderWidth: 1,
              shadow: false
          },
          tooltip: {
              headerFormat: '<b>{point.x}</b><br/>',
              pointFormat: '{series.name}: {point.y}<br/>Total: {point.stackTotal}'
          },
          plotOptions: {
              column: {
                  stacking: 'normal',
                  dataLabels: {
                      enabled: false,
                      color: (Highcharts.theme && Highcharts.theme.dataLabelsColor) || 'white',
                      style: {
                          textShadow: '0 0 3px black'
                      }
                  }
              }
          },
          series: [{
              name: 'Critical',
              data: [SCRIPTDATAANALYZERCRITICAL]
          }, {
              name: 'Major',
              data: [SCRIPTDATAANALYZERMAJOR]
          }, {
              name: 'Minor',
              data: [SCRIPTDATAANALYZERMINOR]
          }, {
              name: 'None',
              data: [SCRIPTDATAANALYZERNONE]
          }]
      });
    });
  </script>
JAVASCRIPT;

        // Filename Overview
        $fileOverview = $this->getFileOverview();
        $tags[] = 'SCRIPTDATAFILES';
        $code[] = $fileOverview['scriptDataFiles'];
        $tags[] = 'SCRIPTDATAMAJOR';
        $code[] = $fileOverview['scriptDataMajor'];
        $tags[] = 'SCRIPTDATACRITICAL';
        $code[] = $fileOverview['scriptDataCritical'];
        $tags[] = 'SCRIPTDATANONE';
        $code[] = $fileOverview['scriptDataNone'];
        $tags[] = 'SCRIPTDATAMINOR';
        $code[] = $fileOverview['scriptDataMinor'];

        // Analyzer Overview
        $analyzerOverview = $this->getAnalyzerOverview();
        $tags[] = 'SCRIPTDATAANALYZERLIST';
        $code[] = $analyzerOverview['scriptDataAnalyzer'];
        $tags[] = 'SCRIPTDATAANALYZERMAJOR';
        $code[] = $analyzerOverview['scriptDataAnalyzerMajor'];
        $tags[] = 'SCRIPTDATAANALYZERCRITICAL';
        $code[] = $analyzerOverview['scriptDataAnalyzerCritical'];
        $tags[] = 'SCRIPTDATAANALYZERNONE';
        $code[] = $analyzerOverview['scriptDataAnalyzerNone'];
        $tags[] = 'SCRIPTDATAANALYZERMINOR';
        $code[] = $analyzerOverview['scriptDataAnalyzerMinor'];

        $blocjs = str_replace($tags, $code, $blocjs);
        $finalHTML = $this->injectBloc($finalHTML, 'BLOC-JS',  $blocjs);
        $finalHTML = $this->injectBloc($finalHTML, 'TITLE', 'Grading code');
        $this->putBasedPage('index', $finalHTML);
    }

}

?>dashboard:
    menu: Dashboard
    title: Dashboard
    file: index
    method: generateDashboard
    icon: dashboard
compilations:
    title: Compilations
    file: compatibility_compilations
    method: generateCompilations
    icon: certificate
php_versions:
    title: Compatibility By Version
    menu: PHP Version
    source: empty
    file: compatibility_version
    method: generateCompatibilityEstimate
    icon: certificate
compatibility_php73:
    source: compatibility
    title: Compatibility PHP 7.3
    file: compatibility_php73
    method: generateCompatibility73
    icon: certificate
issues:
    title: Issues
    icon: flag
    file: compatibility_issues
    method: generateIssuesEngine
    ruleset: CompatibilityPHP73
suggestions:
    title: Suggestions
    icon: flag
    file: suggestions
    method: generateIssuesEngine
    ruleset: Suggestions
annexes:
    title: Annexes
    icon: sticky-note-o
    subsections: 
        engine_settings:
            title: Engine Settings
            source: annex_settings
            file: engine_settings
            method: generateAnalyzerSettings
        annex_config:
            title: Audit Configuration
            file: annex_config
            method: generateAuditConfig
        processed_files:
            title: Processed files
            source: proc_files
            file: processed_files
            method: generateProcFiles
            icon: file
        processed_analysis:
            title: Processed analysis
            source: proc_analyses
            file: processed_analysis
            method: generateAnalyzersList
            icon: file
        annex_docs:
            title: Analyses documentation
            file: analyses_doc
            method: generateDocumentation
            icon: file
        annex_codes:
            title: Source code
            file: codes
            method: generateCodes
            icon: file
        credits:
            title: Credits
            file: credits
            icon: thumbs-up
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;

use Exakat\Analyzer\Analyzer;
use Exakat\Config;

class Owasp extends Ambassador {
    const FILE_FILENAME  = 'owasp';
    const FILE_EXTENSION = '';
    const CONFIG_YAML    = 'Owasp';

    const COLORS = array('A' => '#2ED600',
                         'B' => '#81D900',
                         'C' => '#D5DC00',
                         'D' => '#DF9100',
                         'E' => '#E23E00',
                         'F' => '#E50016',

                         );

    protected $analyzers       = array(); // cache for analyzers [Title] = object
    protected $projectPath     = null;
    protected $finalName       = null;

    protected $themesToShow    = array('Security');

    const TOPLIMIT = 10;
    const LIMITGRAPHE = 40;

    const NOT_RUN      = 'Not Run';
    const YES          = 'Yes';
    const NO           = 'No';
    const INCOMPATIBLE = 'Incompatible';

    private $components = array(
'A1:2017-Injection' => array(
    'Security/AnchorRegex',
    'Security/EncodedLetters',
    'Structures/EvalWithoutTry',
    'Security/parseUrlWithoutParameters',
    'Structures/pregOptionE',
    'Indirect Injection',
    'Security/IndirectInjection',
    'Structures/EvalUsage',
    'Security/Sqlite3RequiresSingleQuotes',
    'Security/ShouldUsePreparedStatement',
    'Security/FilterInputSource',
    'Security/NoEntIgnore',
),
'A2:2017-Broken Authentication' => array(

),
'A3:2017-Sensitive Data Exposure' => array(
    'Security/DontEchoError',
    'Structures/PhpinfoUsage',
    'Structures/VardumpUsage',
),
'A4:2017-XML External Entities (XXE)' => array(
    'Security/NoNetForXmlLoad',
),
'A5:2017-Broken Access Control' => array(
    'Structures/NoHardcodedHash',
    'Structures/NoHardcodedIp',
    'Structures/NoHardcodedPort',
    'Functions/HardcodedPasswords',
    'Security/CompareHash',
),
'A6:2017-Security Misconfiguration' => array(
    'Security/AvoidThoseCrypto',
    'Structures/RandomWithoutTry',
    'Security/CurlOptions',
    'Security/SetCookieArgs',
    'Security/ShouldUseSessionRegenerateId',
    'Security/SessionLazyWrite',
    'Php/BetterRand',
    'Security/MkdirDefault',
    'Security/RegisterGlobals',
    'Security/IntegerConversion',
    'Security/NoWeakSSLCrypto',
    'Security/MinusOneOnError',
    'Security/MoveUploadedFile',
    'Security/NoWeakSSLCrypto',
    'Security/KeepFilesRestricted',
),
'A7:2017-Cross-Site Scripting (XSS)' => array(
    'Security/UploadFilenameInjection',
),
'A8:2017-Insecure Deserialization' => array(
    'Security/UnserializeSecondArg',
    'Security/ConfigureExtract',
),
'A9:2017-Using Components with Known Vulnerabilities' => array(

),
'A10:2017-Insufficient Logging&Monitoring' => array(

),
'Others' => array(
    'Structures/NoReturnInFinally',
    'Security/NoSleep',
    'Structures/Fallthrough',
    'Security/DynamicDl',

));

    private function getLinesFromFile(string $filePath, int $lineNumber, int $numberBeforeAndAfter): array {
        --$lineNumber; // array index
        $lines = array();
        if (file_exists($this->config->projects_root . '/projects/' . $this->config->project . '/code/' . $filePath)) {

            $fileLines = file($this->config->projects_root . '/projects/' . $this->config->project . '/code/' . $filePath);

            $startLine = 0;
            $endLine = 10;
            if(count($fileLines) > $lineNumber) {
                $startLine = $lineNumber-$numberBeforeAndAfter;
                if($startLine<0)
                    $startLine=0;

                if($lineNumber+$numberBeforeAndAfter < count($fileLines)-1 ) {
                    $endLine = $lineNumber+$numberBeforeAndAfter;
                } else {
                    $endLine = count($fileLines)-1;
                }
            }

            for ($i=$startLine; $i < $endLine+1 ; ++$i) {
                $lines[]= array(
                            'line' => $i + 1,
                            'code' => $fileLines[$i]
                    );
            }
        }

        return $lines;
    }

    private function generateOwaspDocumentation(): void {
        $baseHTML = $this->getBasedPage('analyses_doc');

        $owasp = json_decode(file_get_contents($this->config->dir_root . '/data/owasp.top10.json'));

        $content = '<p>Documentation is extracted from the OWASP TOP 10 2017, with extra content from Exakat.</p><ul>';

        foreach($owasp as $doc) {
            $content.="<h2>$doc->code - $doc->name</h2>";
            $content .= "<p>$doc->description</p>\n";
            if (!empty($doc->url)) {
                $content .= "<p>Read more : <a target=\"_blank\" href=\"$doc->url\"><i class=\"fa fa-book\" style=\"font-size: 14px\"></i> $doc->name</a>.</p>";
            }
        }
        $content .= '</ul>';

        $finalHTML = $this->injectBloc($baseHTML, 'BLOC-ANALYZERS', $content);
        $finalHTML = $this->injectBloc($finalHTML, 'BLOC-JS', '<script src="scripts/highlight.pack.js"></script>');
        $finalHTML = $this->injectBloc($finalHTML, 'TITLE', 'OWASP\'s documentation');

        $this->putBasedPage('owasp_doc', $finalHTML);
    }

    protected function generateDetailledDashboard(Section $section): void {
        $levels = '';

        $countColors = count(self::COLORS);
        foreach($this->components as $group => $analyzers) {
            $levelRows = '';
            $total = 0;
            if (empty($analyzers)) {
                $levelRows .= "<tr><td>-</td><td>&nbsp;</td><td>-</td></tr>\n";
                $levels .= '<tr style="border-top: 3px solid black;"><td style="background-color: lightgrey">' . $group . '</td>
                            <td style="background-color: lightgrey">-</td></td>
                            <td style="background-color: lightgrey; font-weight: bold; font-size: 20; text-align: center"">N/A</td></tr>' . PHP_EOL .
                       $levelRows;
                continue;
            }

            $res = $this->dump->fetchAnalysersCounts($analyzers);
            $count = 0;
            foreach($res->toArray() as $row) {
                $ini = $this->docs->getDocs($row['analyzer']);

#FF0000	Bad
#FFFF00	Bad-Average
#FFFF00	Average
#7FFF00	Average-Good
#00FF00	Good

                if ($row['count'] == 0) {
                    $row['grade'] = 'A';
                } else {
                    $grade = intval(min(ceil(log($row['count'] + 1) / log($countColors)), $countColors - 1));
                    $row['grade'] = chr(66 + $grade - 1); // B to F
                }
                $row['color'] = self::COLORS[$row['grade']];

                $total += $row['count'];
                $count += (int) ($row['count'] === 0);

                $levelRows .= "<tr><td><a href=\"issues.html#analyzer={$this->toId($row['analyzer'])}\" title=\"$ini[name]\">$ini[name]</a></td><td>$row[count]</td><td style=\"background-color: $row[color]; color: white; font-weight: bold; font-size: 20; text-align: center; \">$row[grade]</td></tr>\n";
            }

            if ($total === 0) {
                $grade = 'A';
            } else {
                $grade = intval(min(ceil(log($total) / log($countColors)), $countColors - 1));
                $grade = chr(65 + $grade); // B to F
            }
            $color = self::COLORS[$grade];

            $levels .= '<tr style="border-top: 3px solid black;"><td style="background-color: lightgrey">' . $group . '</td>
                            <td style="background-color: lightgrey">' . $total . '</td></td>
                            <td style="background-color: ' . $color . '; font-weight: bold; font-size: 20; text-align: center; ">' . $grade . '</td></tr>' . PHP_EOL .
                       $levelRows;
        }

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'LEVELS', $levels);
        $html = $this->injectBloc($html, 'TITLE', 'Overview for OWASP top 10');

        $this->putBasedPage($section->file, $html);
    }

    protected function generateDashboard(Section $section): void {
        $levels = '';

        $countColors = count(self::COLORS);
        foreach($this->components as $group => $analyzers) {
            $levelRows = '';
            $total = 0;
            if (empty($analyzers)) {
                continue;
            }
            $analyzersList = makeList($analyzers);

            $res = $this->dump->fetchAnalysersCounts($analyzers);
            $sources = array_filter($res->toHash('analyzer', 'count'), function (int $x): bool { return $x > -1;});
            asort($sources);

            $empty = 0;
            foreach($sources as $name => $count) {
#FF0000	Bad
#FFFF00	Bad-Average
#FFFF00	Average
#7FFF00	Average-Good
#00FF00	Good

                if ($count == 0) {
                    $grade = 'A';
                } else {
                    $grade = intval(min(ceil(log($count) / log($countColors)), $countColors - 1));
                    $grade = chr(66 + $grade - 1); // B to F
                }
                $color = self::COLORS[$grade];

                $total += $count;
                $empty += (int) $empty === 0;
            }

            if ($total === 0) {
                $grade = 'A';
            } else {
                $grade = intval(min(ceil(log($total) / log($countColors)), $countColors - 1));
                $grade = chr(65 + $grade); // B to F
            }
            $color = self::COLORS[$grade];

            $levels .= '<tr style="border-top: 3px solid black; border-bottom: 3px solid black;"><td style="background-color: lightgrey">' . $group . '</td>
                            <td style="background-color: lightgrey">&nbsp;</td></td>
                            <td style="background-color: ' . $color . '">' . $grade . '</td></tr>' . PHP_EOL;
        }

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'LEVELS', $levels);
        $html = $this->injectBloc($html, 'TITLE', $section->title);
        $this->putBasedPage($section->file, $html);
    }

    public function getHashData(): string {
        $php = exakat('php');

        $info = array(
            'Number of PHP files'                   => $this->datastore->getHash('files'),
            'Number of lines of code'               => $this->datastore->getHash('loc'),
            'Number of lines of code with comments' => $this->datastore->getHash('locTotal'),
            'PHP used' => $php->getConfiguration('phpversion') //.' (version '.$this->config->phpversion.' configured)'
        );

        // fichier
        $totalFile = $this->datastore->getHash('files');
        $totalFileAnalysed = $this->getTotalAnalysedFile();
        $totalFileSansError = $totalFileAnalysed - $totalFile;
        if ($totalFile === 0) {
            $percentFile = 100;
        } else {
            $percentFile = abs(round($totalFileSansError / $totalFile * 100));
        }

        // analyzer
        list($totalAnalyzerUsed, $totalAnalyzerReporting) = $this->getTotalAnalyzer();
        $totalAnalyzerWithoutError = $totalAnalyzerUsed - $totalAnalyzerReporting;
        $percentAnalyzer = abs(round($totalAnalyzerWithoutError / $totalAnalyzerUsed * 100));

        $html = '<div class="box">
                    <div class="box-header with-border">
                        <h3 class="box-title">Project Overview</h3>
                    </div>

                    <div class="box-body chart-responsive">
                        <div class="row">
                            <div class="sub-div">
                                <p class="title"><span># of PHP</span> files</p>
                                <p class="value">' . $info['Number of PHP files'] . '</p>
                            </div>
                            <div class="sub-div">
                                <p class="title"><span>PHP</span> Used</p>
                                <p class="value">' . $info['PHP used'] . '</p>
                             </div>
                        </div>
                        <div class="row">
                            <div class="sub-div">
                                <p class="title"><span>PHP</span> LoC</p>
                                <p class="value">' . $info['Number of lines of code'] . '</p>
                            </div>
                            <div class="sub-div">
                                <p class="title"><span>Total</span> LoC</p>
                                <p class="value">' . $info['Number of lines of code with comments'] . '</p>
                            </div>
                        </div>
                        <div class="row">
                            <div class="sub-div">
                                <div class="title">Files free of issues (%)</div>
                                <div class="progress progress-sm">
                                    <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100" style="width: ' . $percentFile . '%">
                                        ' . $totalFileSansError . '
                                    </div><div style="color:black; text-align:center;">' . $totalFileAnalysed . '</div>
                                </div>
                                <div class="pourcentage">' . $percentFile . '%</div>
                            </div>
                            <div class="sub-div">
                                <div class="title">Analyses free of issues (%)</div>
                                <div class="progress progress-sm active">
                                    <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100" style="width: ' . $percentAnalyzer . '%">
                                        ' . $totalAnalyzerWithoutError . '
                                    </div><div style="color:black; text-align:center;">' . $totalAnalyzerReporting . '</div>
                                </div>
                                <div class="pourcentage">' . $percentAnalyzer . '%</div>
                            </div>
                        </div>
                    </div>
                </div>';

        return $html;
    }

    protected function generateAnalyzers(): void {
        $analysers = $this->getAnalyzersResultsCounts();

        $baseHTML = $this->getBasedPage('analyzers');
        $analyserHTML = '';

        foreach ($analysers as $analyser) {
            $analyserHTML.= '<tr>';
            $analyserHTML.='<td>' . $analyser['label'] . '</td>
                        <td>' . $analyser['recipes'] . '</td>
                        <td>' . $analyser['issues'] . '</td>
                        <td>' . $analyser['files'] . '</td>
                        <td>' . $analyser['severity'] . '</td>';
            $analyserHTML.= '</tr>';
        }

        $finalHTML = $this->injectBloc($baseHTML, 'BLOC-ANALYZERS', $analyserHTML);
        $finalHTML = $this->injectBloc($finalHTML, 'BLOC-JS', '<script src="scripts/datatables.js"></script>');

        $this->putBasedPage('analyzers', $finalHTML);
    }

    protected function generateFiles(Section $section): void {
        $files = $this->getFilesResultsCounts();

        $baseHTML = $this->getBasedPage('files');
        $filesHTML = '';

        foreach ($files as $file) {
            $filesHTML.= '<tr>';
            $filesHTML.='<td>' . $file['file'] . '</td>
                        <td>' . $file['loc'] . '</td>
                        <td>' . $file['issues'] . '</td>
                        <td>' . $file['analyzers'] . '</td>';
            $filesHTML.= '</tr>';
        }

        $finalHTML = $this->injectBloc($baseHTML, 'BLOC-FILES', $filesHTML);
        $finalHTML = $this->injectBloc($finalHTML, 'BLOC-JS', '<script src="scripts/datatables.js"></script>');
        $finalHTML = $this->injectBloc($finalHTML, 'TITLE', 'Files\' list');

        $this->putBasedPage('files', $finalHTML);
    }

    protected function getFileOverview(): array {
        $data = $this->getFilesCount(self::LIMITGRAPHE);
        $xAxis        = array();
        $dataMajor    = array();
        $dataCritical = array();
        $dataNone     = array();
        $dataMinor    = array();
        $severities = $this->getSeveritiesNumberBy('file');
        foreach ($data as $value) {
            $xAxis[] = "'" . $value['file'] . "'";
            $dataCritical[] = empty($severities[$value['file']]['Critical']) ? 0 : $severities[$value['file']]['Critical'];
            $dataMajor[]    = empty($severities[$value['file']]['Major']) ? 0 : $severities[$value['file']]['Major'];
            $dataMinor[]    = empty($severities[$value['file']]['Minor']) ? 0 : $severities[$value['file']]['Minor'];
            $dataNone[]     = empty($severities[$value['file']]['None']) ? 0 : $severities[$value['file']]['None'];
        }
        $xAxis        = implode(', ', $xAxis);
        $dataCritical = implode(', ', $dataCritical);
        $dataMajor    = implode(', ', $dataMajor);
        $dataMinor    = implode(', ', $dataMinor);
        $dataNone     = implode(', ', $dataNone);

        return array(
            'scriptDataFiles'    => $xAxis,
            'scriptDataMajor'    => $dataMajor,
            'scriptDataCritical' => $dataCritical,
            'scriptDataNone'     => $dataNone,
            'scriptDataMinor'    => $dataMinor
        );
    }

    protected function getAnalyzerOverview(): array {
        $data = $this->getAnalyzersCount(self::LIMITGRAPHE);
        $xAxis        = array();
        $dataMajor    = array();
        $dataCritical = array();
        $dataNone     = array();
        $dataMinor    = array();

        $severities = $this->getSeveritiesNumberBy('analyzer');
        foreach ($data as $value) {
            $xAxis[] = "'" . $value['analyzer'] . "'";
            $dataCritical[] = empty($severities[$value['analyzer']]['Critical']) ? 0 : $severities[$value['analyzer']]['Critical'];
            $dataMajor[]    = empty($severities[$value['analyzer']]['Major']) ? 0 : $severities[$value['analyzer']]['Major'];
            $dataMinor[]    = empty($severities[$value['analyzer']]['Minor']) ? 0 : $severities[$value['analyzer']]['Minor'];
            $dataNone[]     = empty($severities[$value['analyzer']]['None']) ? 0 : $severities[$value['analyzer']]['None'];
        }
        $xAxis        = implode(', ', $xAxis);
        $dataCritical = implode(', ', $dataCritical);
        $dataMajor    = implode(', ', $dataMajor);
        $dataMinor    = implode(', ', $dataMinor);
        $dataNone     = implode(', ', $dataNone);

        return array(
            'scriptDataAnalyzer'         => $xAxis,
            'scriptDataAnalyzerMajor'    => $dataMajor,
            'scriptDataAnalyzerCritical' => $dataCritical,
            'scriptDataAnalyzerNone'     => $dataNone,
            'scriptDataAnalyzerMinor'    => $dataMinor
        );
    }

    protected function compatibility(int $count, string $analyzer): string {
        if ($count == Analyzer::VERSION_INCOMPATIBLE) {
            return '<i class="fa fa-ban"></i>';
        } elseif ($count == Analyzer::CONFIGURATION_INCOMPATIBLE) {
            return '<i class="fa fa-cogs"></i>';
        } elseif ($count === 0) {
            return '<i class="fa fa-check-square-o"></i>';
        } else {
            return '<i class="fa fa-warning red"></i>&nbsp;' . $count . ' warnings';
        }
    }

    protected function makeAuditDate(string &$finalHTML): void {
        $audit_date = 'Audit date : ' . date('d-m-Y h:i:s', time());
        $audit_name = $this->datastore->getHash('audit_name');
        if (!empty($audit_name)) {
            $audit_date .= ' - &quot;' . $audit_name . '&quot;';
        }
        $finalHTML = $this->injectBloc($finalHTML, 'AUDIT_DATE', $audit_date);
    }

    public function dependsOnAnalysis(): array {
        return array('Security',
                     );
    }

}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;


class Meters extends Reports {
    const FILE_EXTENSION = 'json';
    const FILE_FILENAME  = 'exakat.meters';

    public function _generate(array $analyzerList): string {

        $results = array();

        $values = array('loc',
                        'locTotal',
                        'files',
                        'tokens',
                        );
        foreach($values as $value) {
            $results[$value] = $this->dump->fetchHash($value)->toInt();
        }

        return json_encode($results);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;

class Facetedjson extends Reports {
    const FILE_EXTENSION = 'json';
    const FILE_FILENAME  = 'faceted';

    public function generate(string $dirName, string $fileName = null): string {
        $res = $this->dump->fetchAnalysers($this->themesToShow);

        $items = array();
        foreach($res->toArray() as $row) {
            $ini = $this->docs->getDocs($row['analyzer']);
            $row['error'] = $ini['name'];

            $ruleset = $this->rulesets->getInstance($row['analyzer'], null, $this->config);
            $row['severity'] = $this->docs->getDocs($row['analyzer'], 'severity');
            $row['impact']   = $this->docs->getDocs($row['analyzer'], 'timetofix');
            $row['recipes']  = $ruleset->getRulesets();

            $items[] = $row;
            $this->count();
        }

        if ($fileName === null) {
            $json = json_encode($items, JSON_PARTIAL_OUTPUT_ON_ERROR);
            // @todo Log if $json == false
            return $json;
        } else {
            file_put_contents($dirName . '/' . $fileName . '.' . self::FILE_EXTENSION, json_encode($items));
            return '';
        }
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;


class BeautyCanon extends Reports {
    const FILE_EXTENSION = 'txt';
    const FILE_FILENAME  = self::STDOUT;

    public function _generate(array $analyzerList): string {
        $res = $this->dump->fetchAnalysers($analyzerList);

        $results = array();
        foreach($res->toArray() as $row) {
            $results []= sprintf('%- 70s %- 40s', $this->docs->getDocs($row['analyzer'], 'name'), $row['analyzer']);
        }

        sort($results);

        $results [] = "\nTotal : " . count($results) . ' / ' . count($analyzerList);

        return implode(PHP_EOL, $results) . PHP_EOL;
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;


class Marmelab extends Reports {
    const FILE_EXTENSION = 'json';
    const FILE_FILENAME  = 'exakat';

    public function dependsOnAnalysis(): array {
        return array('Analyze',
                    );
    }

    public function generate(string $folder, string $name = self::FILE_FILENAME): string {
        $rulesets = $this->config->project_rulesets ?? $this->dependsOnAnalysis();

        $list = $this->rulesets->getRulesetsAnalyzers($rulesets);

        $analyzers = array();
        $files     = array();

        $res = $this->dump->fetchAnalysers($list);

        $results = array();
        foreach($res->toArray() as $row) {
            if (!isset($analyzers[$row['analyzer']])) {
                $analyzer = $this->rulesets->getInstance($row['analyzer'], null, $this->config);

                $description = $this->docs->getDocs($row['analyzer']);
                $a = array('id'          => $row['analyzer'],
                           'title'       => $description['name'],
                           'description' => $description['description'],
                           'severity'    => $description['severity'],
                           'fixtime'     => $description['timetofix'],
                           'clearphp'    => $description['clearphp'],
                           );

                $analyzers[$row['analyzer']] = (object) $a;
            }

            if (!isset($files[$row['file']])) {
                $a = array('id'   => count($files) + 1,
                           'file' => $row['file']);

                $files[$row['file']] = (object) $a;
            }
            $row['files_id'] = $files[$row['file']]->id;
            unset($row['file']);

            $x = (object) $row;
            $results[] = $x;

            $this->count();
        }

        $results = (object) array('reports'   => $results,
                                  'analyzers' => array_values($analyzers),
                                  'files'     => $files,
                                 );

        if ($name === self::STDOUT) {
            return json_encode($results, \JSON_PRETTY_PRINT);
        } else {
            file_put_contents("$folder/$name." . self::FILE_EXTENSION, json_encode($results, \JSON_PRETTY_PRINT));
            return '';
        }
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Reports;

use XmlWriter;
use Exakat\Exakat;

/**
 * Xml report for PHP_CodeSniffer.
 *
 * PHP version 5
 *
 * @category  PHP
 * @package   PHP_CodeSniffer
 * @author    Gabriele Santini <gsantini@sqli.com>
 * @author    Greg Sherwood <gsherwood@squiz.net>
 * @copyright 2009-2014 SQLI <www.sqli.com>
 * @copyright 2006-2014 Squiz Pty Ltd (ABN 77 084 670 600)
 * @license   https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence
 * @link      http://pear.php.net/package/PHP_CodeSniffer
 */

/**
 * Xml report for PHP_CodeSniffer.
 *
 * PHP version 5
 *
 * @category  PHP
 * @package   PHP_CodeSniffer
 * @author    Gabriele Santini <gsantini@sqli.com>
 * @author    Greg Sherwood <gsherwood@squiz.net>
 * @copyright 2009-2014 SQLI <www.sqli.com>
 * @copyright 2006-2014 Squiz Pty Ltd (ABN 77 084 670 600)
 * @license   https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence
 * @version   Release: @package_version@
 * @link      http://pear.php.net/package/PHP_CodeSniffer
 */
class Xml extends Reports {
    private $cachedData = '';

    const FILE_EXTENSION = 'xml';
    const FILE_FILENAME  = 'exakat';

    public function generateFileReport($report) {
        $out = new XMLWriter();
        $out->openMemory();
        $out->setIndent(true);

        if ($report['errors'] === 0 && $report['warnings'] === 0) {
            // Nothing to print.
            return false;
        }

        $out->startElement('file');
        $out->writeAttribute('name', $report['filename']);
        $out->writeAttribute('errors', (string) $report['errors']);
        $out->writeAttribute('warnings', (string) $report['warnings']);
        $out->writeAttribute('fixable', (string) $report['fixable']);

        foreach ($report['messages'] as $line => $lineErrors) {
            foreach ($lineErrors as $column => $colErrors) {
                foreach ($colErrors as $error) {

                    $error['type'] = strtolower($error['type']);

                    $out->startElement($error['type']);
                    $out->writeAttribute('line', (string) $line);
                    $out->writeAttribute('column', (string) $column);
                    $out->writeAttribute('source', $error['source']);
                    $out->writeAttribute('severity', $error['severity']);
                    $out->writeAttribute('fixable', $error['fixable']);
                    $out->text($error['message']);
                    $out->endElement();
                    $this->count();
                }
            }
        }

        $out->endElement();
        $this->cachedData .= $out->flush();
    }

    public function generate(string $folder, string $name = self::FILE_FILENAME): string {
        $list = $this->rulesets->getRulesetsAnalyzers($this->themesToShow);

        $analysisResults = $this->dump->fetchAnalysers($list);

        $results = array();
        $titleCache = array();
        $severityCache = array();
        foreach($analysisResults->toArray() as $row) {
            if (!isset($results[$row['file']])) {
                $file = array('errors'   => 0,
                              'warnings' => 0,
                              'fixable'  => 0,
                              'filename' => $row['file'],
                              'messages' => array());
                $results[$row['file']] = $file;
            }

            if (!isset($titleCache[$row['analyzer']])) {
                $analyzer = $this->rulesets->getInstance($row['analyzer'], null, $this->config);

                $titleCache[$row['analyzer']]    = $this->docs->getDocs($row['analyzer'], 'name');
                $severityCache[$row['analyzer']] = $this->docs->getDocs($row['analyzer'], 'severity');
            }

            $message = array('type'     => 'warning',
                             'source'   => $row['analyzer'],
                             'severity' => $severityCache[$row['analyzer']],
                             'fixable'  => 'fixable',
                             'message'  => $titleCache[$row['analyzer']],
                             'fullcode' => $row['fullcode']);

            if (!isset($results[ $row['file'] ]['messages'][ $row['line'] ])) {
                $results[ $row['file'] ]['messages'][ $row['line'] ] = array(0 => array());
            }
            $results[ $row['file'] ]['messages'][ $row['line'] ][0][] = $message;

            ++$results[ $row['file'] ]['warnings'];
        }

        foreach($results as $file) {
            $this->generateFileReport($file);
        }

        $return = '<?xml version="1.0" encoding="UTF-8"?>' . PHP_EOL . '<phpcs version="' . Exakat::VERSION . '">' . PHP_EOL . $this->cachedData . '</phpcs>' . PHP_EOL;

        if ($name === self::STDOUT) {
            return $return;
        } else {
            file_put_contents($folder . '/' . $name . '.' . self::FILE_EXTENSION, $return);
            return '';
        }
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;


class Circlevis extends Reports {
    const FILE_EXTENSION = 'json';
    const FILE_FILENAME  = 'exakat.circle';

    public function _generate(array $analyzerList): string {
        $analysisResults = $this->dump->fetchTable('namespaces');
        $analysisResults->load();
        $code_dir = $this->config->code_dir;

        $results = array('name' => '\\',
                         'children' => array(),
                         'size' => 0,
                         );
        foreach($analysisResults->toArray() as $row) {
            $bits = explode('\\', trim($row['namespace'], '\\'));

            $level = &$results;
            foreach($bits as $bit) {
                $id = strtolower($bit);
                if (isset($level['children'][$id])) {
                    $level = &$level['children'][$id];
                    ++$level['size'];
                } else {
                    $level['children'][$id] = array('name' => $bit,
                                                'children' => array(array('name' => '\\',
                                                'children' => array(),
                                                'size' => 0,
                                                )),
                                                'size' => 1,
                                                );
                    $level = &$level['children'][$id];
                }
            }
        }

        $results = $this->cleanResults($results);

        return json_encode($results, \JSON_PRETTY_PRINT);
    }

    private function cleanResults($results): array {
        if (empty($results['children'])) {
            unset($results['children']);
            $results['size'] = 1;
        } else {
            unset($results['size']);
            $results['children'] = array_values($results['children']);
            foreach($results['children'] as &$child) {
                $child = $this->cleanResults($child);
            }
            unset($child);
        }

        return $results;
    }
}

?>dashboard:
    menu: Dashboard
    title: Dashboard
    file: index
    method: generateDashboard
    icon: dashboard
issues:
    title: Issues
    icon: flag
    file: issues
    method: generateIssuesEngine
    ruleset: Typechecks
audit:
    title: Audit logs
    icon: sliders
    subsections: 
        phpclasses_list:
            title: PHP Native CIT
            file: phpclasses_list
            method: generatePHPClassesBreakdown
        visibility_suggestions:
            title: Class Visibility Suggestions
            source: empty
            file: visibility_suggestions
            method: generateVisibilitySuggestions
            icon: circle-o
        typehint_suggestions:
            title: Class Typehint Status
            source: empty
            file: typehint_suggestions
            method: generateTypehintSuggestions
            icon: circle-o
        typehint_stats:
            title: Typehint Usage Status
            source: cit_size
            file: typehint_stats
            method: generateTypehintStats
            icon: circle-o
annexes:
    title: Annexes
    icon: sticky-note-o
    subsections: 
        engine_settings:
            title: Engine Settings
            source: annex_settings
            file: engine_settings
            method: generateAnalyzerSettings
        annex_config:
            title: Audit Configuration
            file: annex_config
            method: generateAuditConfig
        processed_files:
            title: Processed files
            source: proc_files
            file: processed_files
            method: generateProcFiles
            icon: file
        processed_analysis:
            title: Processed analysis
            source: proc_analyses
            file: processed_analysis
            method: generateAnalyzersList
            icon: file
        annex_docs:
            title: Analyses documentation
            file: analyses_doc
            method: generateDocumentation
            icon: file
        annex_codes:
            title: Source code
            file: codes
            method: generateCodes
            icon: file
        credits:
            title: Credits
            file: credits
            icon: thumbs-up
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;


class ClassReview extends Emissary {
    const FILE_FILENAME  = 'classreview';
    const FILE_EXTENSION = '';
    const CONFIG_YAML    = 'ClassReview';

    const TOPLIMIT = 10;
    const LIMITGRAPHE = 40;

    const NOT_RUN      = 'Not Run';
    const YES          = 'Yes';
    const NO           = 'No';
    const INCOMPATIBLE = 'Incompatible';

    public function __construct() {
        parent::__construct();

        $this->themesToShow = array('ClassReview');
    }

    public function dependsOnAnalysis(): array {
        return array('ClassReview',
                     );
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Reports;

use Exakat\Exakat;

class Phpcsfixer extends Reports {
    const FILE_EXTENSION = 'php';
    const FILE_FILENAME  = 'phpcsfixer.exakat';

    private $matches = array(   'Php/IsnullVsEqualNull'         => 'is_null',
                                'Php/NewExponent'               => 'pow_to_exponentiation',
                                'Php/LogicalInLetters'          => 'logical_operators',
                                'Structures/UseConstant'        => 'function_to_constant',
                                'Structures/ElseIfElseif'       => 'elseif',
                                'Structures/PHP7Dirname'        => 'combine_nested_dirname',
                                'Structures/CouldUseDir'        => 'dir_constant',
                                'Php/IssetMultipleArgs'         => 'combine_consecutive_issets',
                                'Classes/DontUnsetProperties'   => 'no_unset_on_property',
                                'Structures/MultipleUnset'      => 'combine_consecutive_unsets',
                                'Php/ImplodeOneArg'             => 'implode_call',
                            );

    public function dependsOnAnalysis(): array {
        return array('php-cs-fixable',
                     );
    }

    protected function _generate(array $analyzerList): string {
        $themed = $this->rulesets->getRulesetsAnalyzers($this->dependsOnAnalysis());

        $analysis = $this->dump->fetchAnalysersCounts($themed);
        $analysis = array_filter($analysis->toHash('analyzer', 'count'), function ($x) { return $x >= 1;});

        $rules = array();
        foreach($analysis as $analyzer => $count) {
            $name = "'" . $this->matches[$analyzer] . "'";
            $rules[] = sprintf('            %- 30s => true,', $name);
        }
        $this->count(count($analysis));
        natcasesort($rules);

        $date = date('Y-m-d h:i:j');
        $version = Exakat::VERSION . '- build ' . Exakat::BUILD;

        $rules = implode(PHP_EOL, $rules);

        // preparing the list of PHP extensions to compile PHP with
        $return = <<<PHP
<?php

/**
  * Add this to your .php_cs file
  * At the root of the source to be analyzed
  * Generated on $date, by Exakat ($version)
*/

// Adapt this to your directory structure
\$finder = PhpCsFixer\Finder::create()
                            ->name('*.php');

return PhpCsFixer\Config::create()
    ->setRules(
        array(
{$rules}
        )
    )
    ->setFinder(\$finder);

PHP;

        return $return;
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;

class Section {
    private const SAME_AS_FILE = true;

    public $method  = 'NoSuchMethod';
    public $title   = 'No title';
    public $menu    = 'No menu title';
    public $source  = self::SAME_AS_FILE;
    public $file    = 'empty';
    public $icon    = 'circle-o';
    public $ruleset = 'None';

    public function __construct(array $section) {
        $this->title   = $section['title']   ?? $this->title;
        $this->menu    = $section['menu']    ?? $this->title;  // Yes, menu === title if not specified
        $this->file    = $section['file']    ?? $this->file;
        $this->source  = $section['source']  ?? $this->file;  // Yes, source == file if not specified
        $this->icon    = $section['icon']    ?? $this->icon;
        $this->method  = $section['method']  ?? $this->method;

        if (!isset($section['ruleset'])) {
            $this->ruleset = 'None';
        } elseif (is_array($section['ruleset'])) {
            $this->ruleset = $section['ruleset'];
        } elseif (is_string($section['ruleset'])) {
            $this->ruleset = array($section['ruleset']);
        }
    }

    public function __get($name) {
        display("Access to undefined property $name\n");
    }

    public function __set($name, $value) {
        display("Write to undefined property $name\n");
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;

use stdClass;

class Classdependencies extends Reports {
    const FILE_EXTENSION = '';
    const FILE_FILENAME  = 'class_dependencies';

    private $finalName   = '';
    private $tmpName     = '';

    public function generate(string $folder, string $name= 'dependencies'): string {
        $this->finalName = "$folder/$name";
        $this->tmpName   = "{$this->config->tmp_dir}/.$name";

        copyDir("{$this->config->dir_root}/media/dependencies", $this->tmpName);

        $res = $this->dump->fetchTable('classesDependencies');
        $res = array_slice($res->toArray(), 0, 3000);
        // This is for security

        $json        = new stdClass();
        $json->edges = array();
        $json->nodes = array();

        $in          = array();
        $out         = array();
        $properties  = array();

        foreach($res as $row) {
            if (isset($json->nodes[$row['including']])){
                $source = $json->nodes[$row['including']];
                ++$in[$source];
            } else {
                $source = count($json->nodes);
                $json->nodes[$row['including']] = $source;
                $properties[$source] = array('caption' => $row['including_name'],
                                             'type'    => $row['including_type'], );
                $in[$source] = 0;
                $out[$source] = 0;
            }

            if (isset($json->nodes[$row['included']])){
                $destination = $json->nodes[$row['included']];
                ++$out[$destination];
            } else {
                $destination = count($json->nodes);
                $json->nodes[$row['included']] = $destination;
                $properties[$destination] = array('caption' => $row['included_name'],
                                                  'type'    => $row['included_type'], );
                $in[$destination]  = 0;
                $out[$destination] = 0;
            }

            $R = new stdClass();
            $R->source = $source;
            $R->target = $destination;
            $R->caption = $row['type'];
            $json->edges[] = $R;

            $this->count();
        }

        $json->nodes = array_flip($json->nodes);
        foreach($in as $id => $i) {
            $json->nodes[$id] = (object) array('id'       => $id,
                                               'caption'  => $properties[$id]['caption'],
                                               'type'     => $properties[$id]['type'],
                                               'incoming' => $i,
                                               'outgoing' => $out[$id]);
        }

        file_put_contents("{$this->tmpName}/fidep.json", json_encode($json, \JSON_PRETTY_PRINT));

        // Finalisation
        if ($this->finalName !== '/') {
            rmdirRecursive($this->finalName);
        }

        if (file_exists($this->finalName)) {
            display($this->finalName . " folder was not cleaned. Please, remove it before producing the report. Aborting report\n");
            return '';
        }

        rename($this->tmpName, $this->finalName);

        return '';
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;


class Simplehtml extends Reports {
    const FILE_EXTENSION = '';
    const FILE_FILENAME  = 'exakat';

    protected $finalName       = null;
    private $tmpName         = '';

    public function generate(string $folder, string $name = self::FILE_FILENAME): string {
        if ($name === self::STDOUT) {
            print "Can't produce SimpleHtml format to stdout\n";
            return '';
        }

        $this->finalName = "$folder/$name";
        $this->tmpName = "{$this->config->tmp_dir}/.$name";

        $blocks = array();
        $contents = array();

        $this->initFolder();

        $blocks[] = '{{INTRODUCTION}}';
        $contents[] = $this->makeIntro();

        $blocks[] = '{{SUMMARY}}';
        $contents[] = $this->makeSummary($folder);

        $blocks[] = '{{LIST}}';
        $contents[] = $this->makeList($folder);

        $html = file_get_contents("{$this->tmpName}/index.html");
        $html = str_replace($blocks, $contents, $html);
        file_put_contents("{$this->tmpName}/index.html", $html);

        $this->cleanFolder();

        return '';
    }

    private function makeIntro(): string {
        $date = date('r');
        $text = "<tr><th>Date:</th><td>$date</td></tr>\n";

        $audit_name = $this->dump->fetchHash('audit_name')->toString();
        if (!empty($audit_name)) {
            $text .= "<tr><th>Audit name :</th><td>$audit_name</td></tr>\n";
        }

        $audit_name = $this->dump->fetchHash('audit_name')->toString();
        if (!empty($audit_name)) {
            $text .= '<tr><th>Exakat version :</th><td>' . \Exakat\Exakat::VERSION . ' (' . \Exakat\Exakat::BUILD . ") </td></tr>\n";
        }

        return $text;
    }

    private function makeSummary(string $folder): string {
        if (empty($this->config->project_rulesets)) {
            $list = $this->rulesets->getRulesetsAnalyzers($this->config->project_rulesets);
        } elseif (!empty($this->config->program)) {
            $list = array($this->config->program);
        } else {
            $list = $this->rulesets->getRulesetsAnalyzers($this->themesToShow);
        }

        $analysis = $this->dump->fetchAnalysersCounts($list);
        $analysis = array_filter($analysis->toHash('analyzer', 'count'), function (int $x): bool { return $x >= 1;});

        $text = array();
        $titleCache = array();
        foreach($analysis as $analyzer => $count) {
            if (!isset($titleCache[$analyzer])) {
                $titleCache[$analyzer] = $this->docs->getDocs($analyzer, 'name');
            }

            $text []= <<<HTML
<tr>
    <td class="SUMM_DESC">{$titleCache[$analyzer]}</td>
    <td class="Q">{$count}</td>
    <td><center><input type="checkbox" onClick="ToggleDisplay(this,'{$this->makeId($analyzer)}');" checked/></center></td>
</tr>

HTML;
            $this->count();
        }
        $text = implode(PHP_EOL, $text);

        return $text;
    }

    private function makeList($folder) {
        if (!empty($this->config->project_rulesets)) {
            $list = $this->rulesets->getRulesetsAnalyzers(makeArray($this->config->project_rulesets));
        } elseif (!empty($this->config->program)) {
            $list = array($this->config->program);
        } else {
            $list = $this->rulesets->getRulesetsAnalyzers($this->themesToShow);
        }

        $analysisResults = $this->dump->fetchAnalysers($list);

        $results = array();
        $titleCache = array();
        $severityCache = array();
        $timeToFixCache = array();
        foreach($analysisResults->toArray() as $row) {
            if (!isset($results[$row['file']])) {
                $file = array('errors'   => 0,
                              'warnings' => 0,
                              'fixable'  => 0,
                              'filename' => $row['file'],
                              'messages' => array());
                $results[$row['file']] = $file;
            }

            if (!isset($titleCache[$row['analyzer']])) {
                $analyzer = $this->rulesets->getInstance($row['analyzer'], null, $this->config);
                $titleCache[$row['analyzer']]     = $this->docs->getDocs($row['analyzer'], 'name');

                $severityCache[$row['analyzer']]  = $this->docs->getDocs($row['analyzer'], 'severity');
                $timeToFixCache[$row['analyzer']] = $this->docs->getDocs($row['analyzer'], 'timetofix');
            }

            $message = array('source'      => $row['analyzer'],
                             'severity'    => $severityCache[$row['analyzer']],
                             'time to fix' => $timeToFixCache[$row['analyzer']],
                             'message'     => $titleCache[$row['analyzer']],
                             'id'          => $this->makeId($row['analyzer'])
                             );

            if (!isset($results[ $row['file'] ]['messages'][ $row['line'] ])) {
                $results[ $row['file'] ]['messages'][ $row['line'] ] = array(0 => array());
            }
            $results[ $row['file'] ]['messages'][ $row['line'] ][0][] = $message;

            ++$results[ $row['file'] ]['warnings'];
        }

        $text = '';
        foreach($results as $file) {
            foreach($file['messages'] as $line => $column) {
                $messages = $column[0];
                foreach($messages as $message) {
                    //$file['filename'].':'.$line.' '.$message['message']."\n";
                    $text .= <<<HTML
<tr class="{$message['id']}">
    <td class="DESC">{$message['message']}</td>
    <td>{$file['filename']}</td>
    <td class="Q">$line</td>
    <td class="DESC">{$message['severity']}</td>
    <td class="DESC">{$message['time to fix']}</td>
</tr>

HTML;
                }
            }
        }

        return $text;
    }

    private function initFolder() {
        // Clean temporary destination
        if (file_exists($this->tmpName)) {
            rmdirRecursive($this->tmpName);
        }

        // Copy template
        copyDir($this->config->dir_root . '/media/clang', $this->tmpName );
    }

    private function cleanFolder() {
        if (file_exists($this->finalName)) {
            rename($this->finalName, $this->tmpName . '2');
        }

        rename($this->tmpName, $this->finalName);

        if (file_exists($this->tmpName . '2')) {
            rmdirRecursive($this->tmpName . '2');
        }
    }

    private function makeId($id) {
        return strtolower(str_replace(array(' ', '(', ')', '/', ), '_', $id));
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Reports;

use Exakat\Exakat;

class Rector extends Reports {
    const FILE_EXTENSION = 'yaml';
    const FILE_FILENAME  = 'rector.exakat';

    private $matches = array('Php/IsAWithString'                   => 'Rector\CodeQuality\Rector\FuncCall\IsAWithStringWithThirdArgumentRector',
                             'Structures/ShouldPreprocess'         => 'Rector\CodeQuality\Rector\Concat\JoinStringConcatRector',
                             'Structures/ElseIfElseif'             => 'Rector\CodeQuality\Rector\If_\ShortenElseIfR',
                             'Structures/CouldUseShortAssignation' => 'Rector\CodeQuality\Rector\Assign\CombinedAssignRector',
                             'Structures/AddZero'                  => 'Rector\DeadCode\Rector\Plus\RemoveDeadZeroAndOneOperationRector',
                             'Structures/MultiplyByOne'            => 'Rector\DeadCode\Rector\Plus\RemoveDeadZeroAndOneOperationRector',
                             'Arrays/MultipleIdenticalKeys'        => 'Rector\DeadCode\Rector\Array_\RemoveDuplicatedArrayKeyRector',
                             'Structures/MultipleDefinedCase'      => 'Rector\DeadCode\Rector\Switch_\RemoveDuplicatedCaseInSwitchRector',
                             'Functions/NeverUsedParameter'        => 'Rector\DeadCode\Rector\ClassMethod\RemoveUnusedParameterRector',
                             'Structures/NoChoice'                 => 'Rector\DeadCode\Rector\If_\SimplifyIfElseWithSameContentRector',
                             'Functions/Closure2String'            => 'Rector\CodingStyle\Rector\FuncCall\SimpleArrayCallableToStringRector',

                            );

    public function dependsOnAnalysis(): array {
        return array('Rector',
                     );
    }

    protected function _generate(array $analyzerList): string {
        $themed = $this->rulesets->getRulesetsAnalyzers($this->dependsOnAnalysis());

        $analysis = $this->dump->fetchAnalysersCounts($themed);
        $analysis = array_filter($analysis->toHash('analyzer', 'count'), function ($x) { return $x >= 1;});

        $services = array();
        foreach($analysis as $analyzer => $count) {
            $services[] = $this->matches[$analyzer];
        }
        $this->count(count($services));

        $date = date('Y-m-d h:i:j');
        $version = Exakat::VERSION . '- build ' . Exakat::BUILD;

        // preparing the list of PHP extensions to compile PHP with
        $return = <<<YAML
# Add this to your rector.yaml file
# At the root of the source to be analyzed
# Generated on $date, by Exakat ($version)

services:
    
YAML
. implode("\n    ", $services) . "\n";

        return $return;
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;


class Migration73 extends Ambassador {
    const FILE_FILENAME  = 'migration73';
    const FILE_EXTENSION = '';
    const CONFIG_YAML    = 'Migration73';

    public function dependsOnAnalysis(): array {
        return array('CompatibilityPHP73',
                     );
    }
}
?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;


class Stats extends Reports {
    const FILE_EXTENSION = 'json';
    const FILE_FILENAME  = 'exakat.stat';

    private $extensions = array(
                'Summary' => array(
                        'Namespaces'     => 'Namespace',
                        'Classes'        => 'Class',
                        'Interfaces'     => 'Interface',
                        'Trait'          => 'Trait',
                        'Functions'      => 'Functions/RealFunctions',
                        'Variables'      => 'Variables/RealVariables',
                        'Constants'      => 'Constants/Constantnames',
                 ),
                'Classes' => array(
                        'Classes'           => 'Class',
                        'Class constants'   => 'Classes/ConstantDefinition',
                        'Properties'        => 'Propertydefinition',
                        'Methods'           => 'Method',
                        // Spot Abstract methods
                        // Spot Final Methods
                 ),
                'Structures' => array(
                        'Ifthen'              => 'Ifthen',
                        'Else'                => 'Structures/ElseUsage',
                        'Switch'              => 'Switch',
                        'Case'                => 'Case',
                        'Default'             => 'Default',
                        'Fallthrough'         => 'Structures/Fallthrough',
                        'For'                 => 'For',
                        'Foreach'             => 'Foreach',
                        'While'               => 'While',
                        'Do..while'           => 'Dowhile',

                        'New'                 => 'New',
                        'Clone'               => 'Clone',
                        'Class constant call' => 'Staticconstant',
                        'Method call'         => 'Methodcall',
                        'Static method call'  => 'Staticmethodcall',
                        'Properties usage'    => 'Property',
                        'Static property'     => 'Staticproperty',

                        'Throw'               => 'Throw',
                        'Try'                 => 'Try',
                        'Catch'               => 'Catch',
                        'Finally'             => 'Finally',

                        'Yield'               => 'Yield',
                        'Yield From'          => 'Yieldfrom',

                        '?  :'                => 'Ternary',
                        '?: '                 => 'Php/Coalesce',

                        'Variables constants' => 'Constants/VariableConstant',
                        'Variables variables' => 'Variables/VariableVariables',
                        'Variables functions' => 'Functions/Dynamiccall',
                        'Variables classes'   => 'Classes/VariableClasses',
                ),
            );


    public function _generate(array $analyzerList): string {

        $analyzerList = array_merge(...array_values($this->extensions));
        $analyzerList = array_filter($analyzerList, function ($x) { return strpos($x, '/') !== false; });

        $res = $this->dump->fetchTable('atomsCounts');
        $atoms = $res->toHash('atom', 'count');

        $res = $this->dump->fetchAnalysersCounts($analyzerList);
        $atoms = array_merge($atoms, $res->toHash('analyzer', 'count'));
        $this->count(count($atoms));

        $results = $this->extensions;
        foreach($results as &$analyzers) {
            foreach($analyzers as $name => &$analyzer) {
                $analyzer = $atoms[$analyzer] ?? 0;
            }
        }

        return json_encode($results);
    }

    public function dependsOnAnalysis(): array {
        return array('Stats',
                     );
    }

}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;


class Onepagejson extends Reports {
    const FILE_EXTENSION = 'json';
    const FILE_FILENAME  = 'onepage';

    public function generate(string $folder, string $name = null): string {
        $res = $this->dump->fetchAnalysers($this->themesToShow);

        $results = array();
        $titleCache = array();
        $severityCache = array();

        $results = array();

        foreach($res->toArray() as $row) {

            if (isset($titleCache[$row['analyzer']])) {
                $clearphp = '';
            } else {
                $analyzer = $this->rulesets->getInstance($row['analyzer'], null, $this->config);

                $titleCache[$row['analyzer']]    = $this->docs->getDocs($row['analyzer'], 'name');
                $severityCache[$row['analyzer']] = $this->docs->getDocs($row['analyzer'], 'severity');
                $clearphp = $this->docs->getDocs($row['analyzer'], 'clearphp');
            }

            $message = array('code'     => $row['fullcode'],
                             'line'     => $row['line'],
                             'clearphp' => $clearphp);

            if (!isset($results[$titleCache[$row['analyzer']]])) {
                $results[$titleCache[$row['analyzer']]] = array();
            }
            $results[$titleCache[$row['analyzer']]][] = $message;

            $this->count();
        }

        if ($name === null) {
            return json_encode($results);
        } else {
            file_put_contents("$folder/$name." . self::FILE_EXTENSION, json_encode($results));
            return '';
        }
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy  Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;


class History extends Reports {
    const FILE_FILENAME  = 'history';
    const FILE_EXTENSION = 'sqlite';

    public function generate(string $folder, string $name = 'history'): string {
        if ($name === self::STDOUT) {
            print "Can't produce History format to stdout\n";

            return '';
        }

        $sqlite = new \Sqlite3("$folder/$name." . self::FILE_EXTENSION);
        $query = "SELECT name FROM sqlite_master WHERE type='table' AND name = 'hash';";
        $res = $sqlite->querySingle($query);

        if (empty($res)) {
            $sqlite->query(<<<'SQLITE'
CREATE TABLE hash (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  serial TEXT,
  key TEXT,
  value TEXT
);

SQLITE
);

            $sqlite->query(<<<'SQLITE'
CREATE TABLE resultsCounts ( 
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    serial TEXT,
    analyzer STRING,
    count INTEGER DEFAULT -6,
    CONSTRAINT "analyzers" UNIQUE (analyzer) ON CONFLICT REPLACE
);

SQLITE
);
        }

        $serial = $this->dump->fetchHash('dump_serial');
        if ($serial->isEmpty())  {
            print "Couldn't get a serial number for the current audit. Ignoring\n";

            return '';
        }

        $already = $sqlite->querysingle('SELECT id FROM hash WHERE key="dump_serial" AND value="' . $serial->toString() . '"');
        if (!empty($already))  {
            print "Dataset #{$serial->toString()} is already in history. Ignoring\n";

            return '';
        }

        display("Add dataset #{$serial->toString()} to history\n");

        $sqlite->query('ATTACH "' . $this->config->dump . '" AS dump');

        $query = "INSERT INTO hash SELECT NULL, \"{$serial->toString()}\", key, value FROM dump.hash";
        $sqlite->query($query);

        $query = "INSERT INTO resultsCounts SELECT NULL, \"{$serial->toString()}\", analyzer, count FROM dump.resultsCounts";
        $sqlite->query($query);

        return '';
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy  Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;

use Exakat\Config;

class Ambassador extends Emissary {
    const FILE_FILENAME  = 'report';
    const FILE_EXTENSION = '';
    const CONFIG_YAML    = 'Ambassador';

    protected $frequences        = array();
    protected $timesToFix        = array();
    protected $themesForAnalyzer = array();
    protected $severities        = array();

    const TOPLIMIT = 10;
    const LIMITGRAPHE = 40;

    const NOT_RUN      = 'Not Run';
    const YES          = 'Yes';
    const NO           = 'No';
    const INCOMPATIBLE = 'Incompatible';

    private $compatibilities = array();

    public function __construct() {
        parent::__construct();

        foreach(Config::PHP_VERSIONS as $shortVersion) {
            $this->compatibilities[$shortVersion] = "Compatibility PHP $shortVersion[0].$shortVersion[1]";
        }

        if ($this->rulesets !== null ){
            $this->frequences        = $this->rulesets->getFrequences();
            $this->timesToFix        = $this->rulesets->getTimesToFix();
            $this->themesForAnalyzer = $this->rulesets->getRulesetsForAnalyzer();
            $this->severities        = $this->rulesets->getSeverities();
        }
    }

    public function dependsOnAnalysis(): array {
        return array('CompatibilityPHP53', 'CompatibilityPHP54', 'CompatibilityPHP55', 'CompatibilityPHP56',
                     'CompatibilityPHP70', 'CompatibilityPHP71', 'CompatibilityPHP72', 'CompatibilityPHP73', 'CompatibilityPHP74',
                     'Analyze', 'Preferences', 'Inventory', 'Performances',
                     'Appinfo', 'Appcontent', 'Dead code', 'Security', 'Suggestions', 'ClassReview',
                     'Custom', 'Rector', 'php-cs-fixable', 'Dump',
                     );
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Reports;


class Composer extends Reports {
    const FILE_EXTENSION = 'json';
    const FILE_FILENAME  = 'composer';

    public function _generate(array $analyzerList): string {
        $themed = $this->rulesets->getRulesetsAnalyzers(array('Appinfo'));
        $res = $this->dump->fetchAnalysersCounts($themed);
        $sources = $res->toHash('analyzer', 'count');

        $configureDirectives = json_decode(file_get_contents($this->config->dir_root . '/data/configure.json'));
        // List of extensions that must be avoided
        $noExtensions = parse_ini_file($this->config->dir_root . '/data/php_no_extension.ini');
        $noExtensions = $noExtensions['ext'];

        $composerPath = $this->config->projects_root . '/projects/' . $this->config->project . '/code/composer.json';
        if (file_exists($composerPath)) {
            $composer = json_decode(file_get_contents($composerPath));
        } else {
            $composer = new \stdClass();

            $composer->name = $this->config->project_name;   //
            $composer->description = '';                     //
            $composer->type = 'library';                     // default value
            $composer->keywords = array();                   // where to find them ?
            $composer->homepage = '';                        //
            $composer->license = '';                         //

            $composer->support = new \stdClass();
            if ($this->config->project_url !== null) {
                $composer->support->source = $this->config->project_url;
            }

            $composer->require = new \stdClass();

    //"php": "~5.4 || ^7.0"
            $composer->require->php = '^7.0';
        }

        foreach($configureDirectives as $ext => $details) {
            if (in_array($ext, $noExtensions)) {
                continue;
            }

            if (isset($sources[$details->analysis]) && $sources[$details->analysis] > 1) {
                $extName = 'ext-' . $ext;
                if (!isset($composer->require->{$extName})) {
                    $composer->require->{$extName} = '*';
                }
            }
        }

        $final = json_encode($composer, \JSON_PRETTY_PRINT);

        return $final;
    }

    public function dependsOnAnalysis(): array {
        return array('Appinfo',
                     );
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;

use Exakat\Config;

class Diplomat extends Ambassador {
    const FILE_FILENAME  = 'diplomat';
    const FILE_EXTENSION = '';
    const CONFIG_YAML    = 'Diplomat';

    const TOPLIMIT = 10;
    const LIMITGRAPHE = 40;

    const NOT_RUN      = 'Not Run';
    const YES          = 'Yes';
    const NO           = 'No';
    const INCOMPATIBLE = 'Incompatible';

    private $compatibilities = array();

    public function __construct() {
        parent::__construct();

        foreach(Config::PHP_VERSIONS as $shortVersion) {
            $this->compatibilities[$shortVersion] = "Compatibility PHP $shortVersion[0].$shortVersion[1]";
        }

        $this->themesToShow = array('Top10');
    }

    public function dependsOnAnalysis(): array {
        return array('CompatibilityPHP53', 'CompatibilityPHP54', 'CompatibilityPHP55', 'CompatibilityPHP56',
                     'CompatibilityPHP70', 'CompatibilityPHP71', 'CompatibilityPHP72', 'CompatibilityPHP73', 'CompatibilityPHP74',
                     'Top10', 'Preferences',
                     'Appinfo',
                     );
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;


class Plantuml extends Reports {
    const FILE_EXTENSION = 'puml';
    const FILE_FILENAME  = 'exakat';

    public function generate(string $folder, string $name= self::FILE_FILENAME): string {

        $res = $this->dump->fetchPlantUml();

        $id = 0;
        $ids = array();
        $puml = array();
        $extends = array();

        foreach($res->toArray() as $row) {
            ++$id;
            $ids[$id] = $row['id'];
            $properties = array();

            $methods = $row['methods'];
            $methods = str_replace(' { /**/ } ' ,'', $methods);
            $methods = preg_replace(array('/public /is', '/protected /is', '/private /is', '/(static|abstract) /is', ),
                                    array('+',           '#',              '-',            '{\1}',                   ),
                                    $methods);

            if ($row['type'] == 'class' || $row['type'] === 'interface') {
                $type = $row['type'];
            } else {
                $type = 'abstract class'; // for traits
            }

            $properties = $row['properties'];
            $properties = preg_replace(array('/public /is', '/protected /is', '/private /is', '/(static|abstract) /is', ),
                                       array('+',           '#',              '-',            '{\1}',                   ),
                                       $properties);

            if ((int) $row['extends']) {
                $extends[$id] =  $row['extends'];
            }

            $object = $type . ' "' . $row['name'] . '" as Class' . $id . ' { ' .
"\n" . $properties .
"\n" . $methods .
"\n}";

            $puml[] = $object;
            $this->count();
        }

        $puml = implode("\n", $puml) . "\n\n";

        foreach($extends as $extending => $extended) {
            $puml .= "Class{$ids[$extended]} <|-- Class{$extending}\n";
        }

        $res = $this->dump->fetchTable('cit_implements');
        foreach($res->toArray() as $row) {
            if (!isset($ids[$row['implementing']])) { continue; }
            if (!isset($ids[$row['implements']])) { continue; }

            if ($row['type'] === 'implements') {
                $link = '<|..';
            } elseif ($row['type'] === 'extends') {
                $link = '<|--';
            } else {
                $link = '--';
            }

            $puml .= "Class{$ids[$row['implements']]} $link Class{$ids[$row['implementing']]}\n";
        }

        $dot = <<<PUML
@startuml

$puml

@enduml
PUML;

        if ($name === self::STDOUT) {
            echo $dot;
            return '';
        } else {
            file_put_contents($folder . '/' . $name . '.' . self::FILE_EXTENSION, $dot);
            return '';
        }
    }

    private function str2dot($str) {
        return htmlspecialchars($str, ENT_COMPAT | ENT_HTML401 , 'UTF-8');
    }

    private function subgraphs($array, $level = 1, $nsname = '') {
        static $id = 0;
        $r = '';

        // Colors are managed with $level, thanks to colorscheme option.
        foreach($array as $key => $a) {
            ++$id;
            if (is_int($key)) {
                $r .= $a;
            } else {
                $r .= "subgraph cluster_$id { 
        style=filled;
        label=\"$nsname$key\";
        color=\"$level\";
        ";
                $r .= $this->subgraphs($a, $level + 1, $nsname . '\\\\' . $key);
                $r .= "}\n";
            }
        }

        return $r;
    }
}

?>dashboard:
    menu: Dashboard
    title: Dashboard
    file: index
    method: generateDashboard
    icon: dashboard
top10:
    title: Detailled sections for OWASP top 10
    icon: flag
    source: compatibility
    file: top10
    method: generateTop10
issues:
    title: Issues
    icon: flag
    file: issues
    method: generateIssuesEngine
    ruleset: Top10
annexes:
    title: Annexes
    icon: sticky-note-o
    subsections: 
        engine_settings:
            title: Engine Settings
            source: annex_settings
            file: engine_settings
            method: generateAnalyzerSettings
        annex_config:
            title: Audit Configuration
            file: annex_config
            method: generateAuditConfig
        processed_files:
            title: Processed files
            source: proc_files
            file: processed_files
            method: generateProcFiles
            icon: file
        processed_analysis:
            title: Processed analysis
            source: proc_analyses
            file: processed_analysis
            method: generateAnalyzersList
            icon: file
        annex_docs:
            title: Analyses documentation
            file: analyses_doc
            method: generateDocumentation
            icon: file
        annex_codes:
            title: Source code
            file: codes
            method: generateCodes
            icon: file
        credits:
            title: Credits
            file: credits
            icon: thumbs-up
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;


class Drillinstructor extends Ambassador {
    const FILE_FILENAME  = 'drill';
    const FILE_EXTENSION = '';
    const CONFIG_YAML    = 'Drillinstructor';

    protected function generateLevel(Section $section): void {
        $this->generateIssuesEngine($section,
                                    $this->getIssuesFaceted(array('Level 1')));
    }

    protected function generateLevels(Section $section): void {
        $levels = '';

        foreach(range(1, 6) as $level) {
            $levelRows = '';
            $total = 0;
            $analyzers = $this->rulesets->getRulesetsAnalyzers(array('Level ' . $level));
            if (empty($analyzers)) {
                continue;
            }

            $res = $this->dump->fetchAnalysersCounts($analyzers);

            $colors = array('A' => '#00FF00',
                            'B' => '#32CC00',
                            'C' => '#669900',
                            'D' => '#996600',
                            'E' => '#CC3300',
                            'F' => '#FF0000',
                            );
            $count = 0;
            $countColors = count($colors);
            foreach($res->toArray() as $row) {
                $ini = $this->docs->getDocs($row['analyzer']);

#FF0000	Bad
#FFFF00	Bad-Average
#FFFF00	Average
#7FFF00	Average-Good
#00FF00	Good

                if ($row['count'] == 0) {
                    $row['grade'] = 'A';
                } else {
                    $grade = intval(min(ceil(log($row['count']) / log(count($colors))), count($colors) - 1));
                    $row['grade'] = chr(66 + $grade); // B to F
                }
                $row['color'] = $colors[$row['grade']];

                $total += $row['count'];
                $count += (int) $row['count'] === 0;

                $levelRows .= '<tr><td>' . $ini['name'] . "</td><td>$row[count]</td><td style=\"background-color: $row[color]\">$row[grade]</td></tr>\n";
            }

            if (count($analyzers) === 1) {
                $grade = 'A';
            } else {
                $grade = intval(floor($count / (count($analyzers) - 1) * ($countColors - 1)));
                $grade = chr(65 + $grade); // B to F
            }
            $color = $colors[$grade];

            $levels .= '<tr><td style="background-color: #bbbbbb">Level ' . $level . '</td>
                            <td style="background-color: #bbbbbb">' . $total . '</td></td>
                            <td style="background-color: ' . $color . '">' . $grade . '</td></tr>' . PHP_EOL .
                       $levelRows;
        }

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'LEVELS', $levels);
        $html = $this->injectBloc($html, 'TITLE', $section->title);
        $this->putBasedPage($section->file, $html);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;

use Exakat\Exakat;

class Ambassadornomenu extends Ambassador {
    const CONFIG_YAML    = 'Ambassadornomenu';

    protected function getBasedPage($file): string {
        static $baseHTML;

        if (empty($baseHTML)) {
            $baseHTML = file_get_contents("{$this->config->dir_root}/media/devfaceted/data/base.html");
            $project_name = $this->config->project_name;

            $baseHTML = $this->injectBloc($baseHTML, 'EXAKAT_VERSION', Exakat::VERSION);
            $baseHTML = $this->injectBloc($baseHTML, 'EXAKAT_BUILD', (string) Exakat::BUILD);
            $baseHTML = $this->injectBloc($baseHTML, 'PROJECT_NAME', $project_name);
            $baseHTML = $this->injectBloc($baseHTML, 'PROJECT_LETTER', strtoupper($project_name[0]));

            $this->makeMenu();

            $baseHTML = $this->injectBloc($baseHTML, 'SIDEBARMENU', '');
            $patterns = array('#<aside class="main-sidebar">.*?</aside>#is',
                              '#<aside class="control-sidebar control-sidebar-dark">.*?</aside>#is',
                              '#<header class="main-header">.*?</header>#is',
                              '#<footer class="main-footer">.*?</footer>#is',
                              '#class="content-wrapper"#is',
                              );
            $replacements = array('',
                                  '',
                                  '',
                                  '',
                                  'class="content-wrapper" style="margin-left: 0px"',
                                 );
            $baseHTML = preg_replace($patterns, $replacements, $baseHTML);
        }

        if (!file_exists("{$this->config->dir_root}/media/devfaceted/data/$file.html")) {
            return '';
        }
        $subPageHTML = file_get_contents("{$this->config->dir_root}/media/devfaceted/data/$file.html");
        $combinePageHTML = $this->injectBloc($baseHTML, 'BLOC-MAIN', $subPageHTML);

        return $combinePageHTML;
    }

    protected function generateIssuesEngine(Section $section, array $issues = array()): void {
        if (empty($issues)) {
            $issues = $this->getIssuesFaceted(makeArray($this->rulesets->getRulesetsAnalyzers(makeArray($section->ruleset))));
        }

        $total = count($issues);
        $issues = implode(', ' . PHP_EOL, $issues);
        $blocjs = <<<JAVASCRIPTCODE
        
  <script>
  "use strict";

    $(document).ready(function() {

      var data_items = [
$issues
];

      var item_template =  
        '<tr>' +
          '<td width="20%"><a href="<%= "analyses_doc.html#" + obj.analyzer_md5 %>" title="Documentation for <%= obj.analyzer %>"><i class="fa fa-book"></i></a> <%= obj.analyzer %></td>' +
          '<td width="20%"><%= obj.file + ":" + obj.line %></td>' +
          '<td width="18%"><%= obj.code %></td>' + 
          '<td width="2%"><%= obj.code_detail %></td>' +
          '<td width="7%" align="center"><%= obj.severity %></td>' +
          '<td width="7%" align="center"><%= obj.complexity %></td>' +
          '<td width="16%"><%= obj.recipe %></td>' +
        '</tr>' +
        '<tr class="fullcode">' +
          '<td colspan="7" width="100%"><div class="analyzer_help"><%= obj.analyzer_help %></div><pre><code><%= obj.code_plus %></code><div class="text-right"><a target="_BLANK" href="<%= "codes.html#file=" + obj.file + "&line=" + obj.line %>" class="btn btn-info">View File</a></div></pre></td>' +
        '</tr>';
      var settings = { 
        items           : data_items,
        facets          : { 
          'analyzer'  : 'Analysis',
          'file'      : 'File',
          'severity'  : 'Severity',
          'complexity': 'Time To Fix',
          'receipt'   : 'Rulesets'
        },
        facetContainer     : '<div class="facetsearch btn-group" id=<%= id %> ></div>',
        facetTitleTemplate : '<button class="facettitle multiselect dropdown-toggle btn btn-default" data-toggle="dropdown" title="None selected"><span class="multiselect-selected-text"><%= title %></span><b class="caret"></b></button>',
        facetListContainer : '<ul class="facetlist multiselect-container dropdown-menu" style="max-height: 450px; overflow: auto;"></ul>',
        listItemTemplate   : '<li class=facetitem id="<%= id %>" data-analyzer="<%= data_analyzer %>" data-file="<%= data_file %>"><span class="check"></span><%= name %><span class=facetitemcount>(<%= count %>)</span></li>',
        bottomContainer    : '<div class=bottomline></div>',  
        resultSelector   : '#results',
        facetSelector    : '#facets',
        resultTemplate   : item_template,
        paginationCount  : 50
      }   
      $.facetelize(settings);
      
      var analyzerParam = window.location.hash.split('analyzer=')[1];
      console.log(analyzerParam);
      var fileParam = window.location.hash.split('file=')[1];
      if(analyzerParam !== undefined) {
        $('#analyzer .facetlist').find("[data-analyzer='" + analyzerParam.toLowerCase() + "']").click();
      }
      if(fileParam !== undefined) {
        $('#file .facetlist').find("[data-file='" + fileParam.toLowerCase() + "']").click();
      }
    });
  </script>
JAVASCRIPTCODE;

        $baseHTML = $this->getBasedPage($section->source);
        $finalHTML = $this->injectBloc($baseHTML, 'BLOC-JS', $blocjs);
        $finalHTML = $this->injectBloc($finalHTML, 'TITLE', $section->title);
        $finalHTML = $this->injectBloc($finalHTML, 'TOTAL', (string) $total);
        $this->putBasedPage($section->file, $finalHTML);
    }

    protected function generateCodes(Section $section): void {
        // $this is short-circuited on purpose.
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;

class FileDependencies extends Reports {
    const FILE_EXTENSION = 'dot';
    const FILE_FILENAME  = 'filedependencies';

    public function generate(string $folder, string $name= 'dependencies'): string {
        $res = $this->dump->fetchTable('filesDependencies');
        $res = array_filter($res->toArray(), function (array $x) { return $x['including'] !== $x['included']; });

        $colors = array('include'          => 'green',
                        'staticmethodcall' => 'purple',
                        'staticconstant'   => 'purple',
                        'staticproperty'   => 'purple',
                        'typehint'         => 'purple',
                        'use'              => 'orange',
                        'new'              => 'blue',
                        'clone'            => 'blue',
                        'extends'          => 'red',
                        'implements'       => 'red',
                        'functioncall'     => 'blue',
                        'constant'         => 'blue',
                        );

        $nodes = array();
        $cnodes = 0;

        $list = array();
        foreach($res as $row) {
            if (isset($nodes[$row['including']])) {
                $row['including'] = $nodes[$row['including']];
            } else {
                $nodes[$row['including']] = ++$cnodes;
                $row['including'] = $cnodes;
            }

            if (isset($nodes[$row['included']])) {
                $row['included'] = $nodes[$row['included']];
            } else {
                $nodes[$row['included']] = ++$cnodes;
                $row['included'] = $cnodes;
            }

            $key = $row['including'] . $row['included'] . $row['type'];

            if (isset($list[$key])) {
                ++$list[$key]['count'];
            } else {
                $row['count'] = 1;
                $row['color'] = $colors[$row['type']];
                $list[$key] = $row;
            }

            $this->count();
        }

        $list = array_map(function ($row) {
            return "\"$row[including]\" -> \"$row[included]\" [label=\"$row[type] ($row[count])\" color=\"$row[color]\" ];";
        }, $list);
        $dot = implode(PHP_EOL, $list);

        $nodes = array_map(function ($key, $value) {
            return "$value [label=\"$key\" shape=\"tab\" style=\"filled\" fillcolor=\"chartreuse3\"];";
        },
                           array_keys($nodes),
                           array_values($nodes));
        $nodes = implode(PHP_EOL, $nodes);

        $version = \Exakat\Exakat::VERSION . ' (' . \Exakat\Exakat::BUILD . ')';
        $date = date('r');

        $dot = "digraph graphname {
/* This file was generated by Exakat $version.
   date : $date
   http://www.exakat.io/  
*/

    $nodes
    $dot
     }";

        file_put_contents("{$folder}/{$name}." . self::FILE_EXTENSION, $dot);
        return '';
    }
}

?>dashboard:
    menu: Dashboard
    title: Dashboard
    file: index
    method: generateDashboard
    icon: dashboard
issues:
    title: Issues
    icon: flag
    file: issues
    method: generateIssuesEngine
    ruleset: Analyze
compatibility:
    title: Compatibility
    icon: certificate
    subsections: 
        compilations:
            title: Compilations
            file: compatibility_compilations
            method: generateCompilations
            icon: certificate
        php_versions:
            title: Compatibility By Version
            menu: PHP Version
            source: empty
            file: compatibility_version
            method: generateCompatibilityEstimate
            icon: certificate
        compatibility_php74:
            source: compatibility
            title: Compatibility PHP 7.4
            file: compatibility_php74
            method: generateCompatibility74
            icon: certificate
        compatibility_php73:
            source: compatibility
            title: Compatibility PHP 7.3
            file: compatibility_php73
            method: generateCompatibility73
            icon: certificate
        compatibility_php72:
            source: compatibility
            title: Compatibility PHP 7.2
            file: compatibility_php72
            method: generateCompatibility72
            icon: certificate
        compatibility_php71:
            source: compatibility
            title: Compatibility PHP 7.1
            file: compatibility_php71
            method: generateCompatibility71
            icon: certificate
        compatibility_php70:
            source: compatibility
            title: Compatibility PHP 7.0
            file: compatibility_php70
            method: generateCompatibility70
            icon: certificate
        compatibility_php56:
            source: compatibility
            title: Compatibility PHP 5.6
            file: compatibility_php56
            method: generateCompatibility56
            icon: certificate
        compatibility_php55:
            source: compatibility
            title: Compatibility PHP 5.5
            file: compatibility_php55
            method: generateCompatibility55
            icon: certificate
        compatibility_php54:
            source: compatibility
            title: Compatibility PHP 5.4
            file: compatibility_php54
            method: generateCompatibility54
            icon: certificate
        compatibility_php53:
            source: compatibility
            title: Compatibility PHP 5.3
            file: compatibility_php53
            method: generateCompatibility53
            icon: certificate
favorites:
    title: Favorites
    icon: certificate
    subsections: 
        compilations:
            title: Favorite Overview
            file: favorites_dashboard
            method: generateFavorites
            icon: certificate
        favorite_issues:
            title: Favorite issues
            source: empty
            file: favorites_issues
            method: generateIssuesEngine
            ruleset: Preferences
audit:
    title: Audit logs
    icon: sliders
    subsections: 
        appinfo:
            title: Appinfo()
            file: appinfo
            method: generateAppinfo
            icon: circle-o
        bugfixes:
            title: Bugfixes
            source: bugfixes
            file: bugfixes
            method: generateBugFixes
            icon: circle-o
        php_compilation:
            title: PHP Compilation List
            file: php_compilation
            method: generatePhpConfiguration
            icon: circle-o
        directive_list:
            title: PHP Directives List
            file: directive_list
            method: generateDirectiveList
            icon: circle-o
        extension_list:
            title: Extensions' List
            file: extension_list
            method: generateAlteredDirectives
            icon: circle-o
files:
    title: Files Overview
    menu: Files
    file: files
    method: generateFiles
    icon: file-code-o
analysis:
    title: Analyses Overview
    menu: Analyses
    file: analyses
    method: generateAnalyzers
    icon: line-chart
annexes:
    title: Annexes
    icon: sticky-note-o
    subsections: 
        engine_settings:
            title: Engine Settings
            source: annex_settings
            file: engine_settings
            method: generateAnalyzerSettings
        annex_config:
            title: Audit Configuration
            file: annex_config
            method: generateAuditConfig
        processed_files:
            title: Processed files
            source: proc_files
            file: processed_files
            method: generateProcFiles
            icon: file
        processed_analysis:
            title: Processed analysis
            source: proc_analyses
            file: processed_analysis
            method: generateAnalyzersList
            icon: file
        annex_docs:
            title: Analyses documentation
            file: analyses_doc
            method: generateDocumentation
            icon: file
        annex_codes:
            title: Source code
            file: codes
            method: generateCodes
            icon: file
        credits:
            title: Credits
            file: credits
            icon: thumbs-up
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;

use Exakat\Exakat;
use Exakat\Vcs\Vcs;

class Manual extends Reports {
    const FILE_EXTENSION = 'md';
    const FILE_FILENAME  = 'manual.exakat';

    private $summary = array('Structures'  => array(),
                             'Expressions' => array(),
                             'Values'      => array(),
                             'Empty'       => array(),
                             );

    public function _generate(array $analyzerList): string {
        $md = '';

        $md .= 'Introduction' . PHP_EOL . PHP_EOL;

        $md .= '# Structures' . PHP_EOL . PHP_EOL;
        $md .= $this->generateExceptionTree();
        $md .= $this->generateConstants();
        $md .= $this->generateFolders();

        $md .= '# Expressions' . PHP_EOL . PHP_EOL;
        $md .= $this->generateDynamicExpression();

        $md .= '# Values' . PHP_EOL . PHP_EOL;
        $md .= $this->generateErrorMessages();
        $md .= $this->generateRegex();
        $md .= $this->generateIncoming();
        $md .= $this->generateSession();
        $md .= $this->generateSQL();
        $md .= $this->generateURL();
        $md .= $this->generateEmail();
        $md .= $this->generateHash();
        $md .= $this->generateMime();

        $md .= '# Annex' . PHP_EOL . PHP_EOL;
        $md .= $this->generateEmpty();
        $md .= $this->generateSettings();

        $summary = 'Table of content' . PHP_EOL . '---' . PHP_EOL . PHP_EOL;

        foreach($this->summary as $section => $list) {
            $summary .= '+ ' . $section . PHP_EOL;
            $summary .= '   + ' . implode(PHP_EOL . '   + ', $list) . PHP_EOL;
        }

        $md = $summary . PHP_EOL . '---' . PHP_EOL . $md;

        return $md;
    }

    private function generateEmpty() {
        $empty = $this->summary['Empty'];
        sort($empty);
        unset($this->summary['Empty']);

        $emptyMd = 'The following ' . count($empty) . ' sections didn\'t yield any material. They are noted as empty here.' . PHP_EOL . PHP_EOL . '   + ' . implode(PHP_EOL . '   + ', $empty) . PHP_EOL;

        $this->summary['Annex'][] = '[Empty docs](#empty-docs)';
        $md = '<a name="' . $this->toId('empty-docs') . '"></a>' . PHP_EOL . '## Empty docs' . PHP_EOL . PHP_EOL;
        $md .= $emptyMd . PHP_EOL;

       return $md;
    }

    private function generateFolders() {
        $folders = '';

        $res = $this->dump->fetchTable('files');
        $paths = array();
        foreach($res->toArray() as $row) {
            if (empty($row['file'])) {
                continue;
            }
            $path = dirname($row['file']);
            if (isset($paths[$path])) {
                ++$paths[$path];
            } else {
                $paths[$path] = 1;
            }
        }

        ksort($paths);
        $count = count($paths);
        $paths = raiseDimensions($paths);
        $folders .= $this->generateFoldersCB($paths);

        $this->summary['Structures'][] = '[Folders](#folders)' . PHP_EOL;
        $md = '<a name="' . $this->toId('folders') . '"></a>' . PHP_EOL . '## Folders' . PHP_EOL . PHP_EOL;
        $md .= 'There are ' . $count . ' folders.' . PHP_EOL . PHP_EOL;
        $md .= $folders . PHP_EOL;

       return $md;
    }

    private function generateFoldersCB($array, $level = 0) {
        $return = '';

        foreach($array as $key => $value) {
            if (is_array($value)) {
                $return .= str_repeat('  ', $level) . '+ `' . $key . '`' . PHP_EOL .
                           $this->generateFoldersCB($value, $level + 1);
            } else {
                $return .= str_repeat('  ', $level) . '+ `' . (empty($key) ? '/' : $key) . '`' . PHP_EOL;
            }
        }

        return $return;
    }

    private function generateSettings() {
        $info = array(array('Project name', $this->config->project_name));
        if (!empty($this->config->project_description)) {
            $info[] = array('Code description', $this->config->project_description);
        }
        if (!empty($this->config->project_packagist)) {
            $info[] = array('Packagist', '<a href="https://packagist.org/packages/' . $this->config->project_packagist . '">' . $this->config->project_packagist . '</a>');
        }
        $info = array_merge($info, $this->getVCSInfo());

        $info[] = array('Number of PHP files', $this->dump->fetchHash('files')->toString());
        $info[] = array('Number of lines of code', $this->dump->fetchHash('loc')->toString());
        $info[] = array('Number of lines of code with comments', $this->dump->fetchHash('locTotal')->toString());

        $info[] = array('Report production date', date('r', strtotime('now')));

        $php = exakat('php');
        $info[] = array('PHP used', $php->getConfiguration('phpversion') . ' (version ' . $this->config->phpversion . ' configured)');
        $info[] = array('Ignored files/folders', implode(', ', $this->config->ignore_dirs));

        $info[] = array('Generated by', '[Exakat ](https://www.exakat.io/)');
        $info[] = array('Exakat version', Exakat::VERSION . ' ( Build ' . Exakat::BUILD . ') ');

        $settings = '';
        foreach($info as $i) {
            $settings .= "+ __$i[0]__ : $i[1]\n";
        }

        $this->summary['Annex'][] = '[Settings](#exakat-settings)';
        $md = '<a name="' . $this->toId('exakat-settings') . '"></a>' . PHP_EOL . '## Settings' . PHP_EOL . PHP_EOL;
        $md .= $settings . PHP_EOL;

       return $md;
    }

    private function flatten($array) {
        return implode("\n+ ", $array);
    }

    private function escapeMd(string $string): string {
        return str_replace('_', '\\_', $string);
    }

    private function generateConstants(): string {
        $total = 0;
        $constants = '';
        $md = '';

        $res = $this->dump->fetchTableClassConstants();

        $previousClass = '';
        foreach($res->toArray() as $row) {
            if ($previousClass !== $row['class']) {
                $constants .= '+ `' . $row['class'] . '`' . PHP_EOL;
                $previousClass = $row['class'];
            }
            $constants .= '  + `' . $row['constant'] . '` = ' . $this->escapeMd($row['value']) . PHP_EOL;
            ++$total;
        }

        if (empty($constants)) {
            return '';
        }

        $this->summary['Structures'][] = '[Constants](#constants)';
        $md = '<a name="' . $this->toId('constants') . '"></a>' . PHP_EOL . '## Constants' . PHP_EOL . PHP_EOL;
        $md .= $total . ' constants and class constants are defined.' . PHP_EOL . PHP_EOL;
        $md .= $constants . PHP_EOL;

       return $md;
    }

    private function generateDynamicExpression() {
        $total = 0;
        $expressions = '';
        $md = '';

        $res = $this->dump->fetchAnalysers(array('Structures/DynamicCalls'));
        foreach($res->toArray() as $row) {
            $expressions .= '+ `' . $row['fullcode'] . '` in ' . $this->escapeMd($row['file']) . ' : ' . $this->escapeMd((string) $row['line']) . PHP_EOL;
            ++$total;
        }

        if (empty($expressions)) {
            return '';
        }

        $this->summary['Expressions'][] = '[Dynamic expressions](#dynamic-expressions)';
        $md = '<a name="' . $this->toId('dynamic expressions') . '"></a>' . PHP_EOL . '## Dynamic expressions' . PHP_EOL . PHP_EOL;
        $md .= $total . ' dynamic expressions' . PHP_EOL . PHP_EOL;
        $md .= $expressions . PHP_EOL;

       return $md;
    }

    private function generateErrorMessages(): string {
        $total = 0;
        $errors = '';
        $md = '';

        $res = $this->dump->fetchAnalysers(array('Structures/ErrorMessages'));
        foreach($res->toArray() as $row) {
            $errors .= '+ `' . $row['fullcode'] . '` in ' . $this->escapeMd($row['file']) . ' : ' . $this->escapeMd((string) $row['line']) . PHP_EOL;
            ++$total;
        }

        if (empty($errors)) {
            return '';
        }

        $this->summary['Values'][] = '[Error messages](#error-messages)';
        $md .= '## Error messages' . PHP_EOL . PHP_EOL;
        $md .= $total . ' error messages' . PHP_EOL . PHP_EOL;
        $md .= $errors . PHP_EOL;

       return $md;
    }

    private function generateSQL(): string {
        return $this->generateGeneric('Type/SQL', 'SQL');
    }

    private function generateURL(): string {
        return $this->generateGeneric('Type/URL', 'URL');
    }

    private function generateEmail(): string {
        return $this->generateGeneric('Type/Email', 'Email');
    }

    private function generateIncoming(): string {
        return $this->generateGeneric('Type/GPCIndex', 'Incoming variables');
    }

    private function generateSession(): string {
        return $this->generateGeneric('Php/SessionVariables', 'Session variables');
    }

    private function generateHash(): string {
        return $this->generateGeneric('Type/Md5String', 'Hash String');
    }

    private function generateMime(): string {
        return $this->generateGeneric('Type/Mime', 'Mime type');
    }

    private function generateGeneric(string $analyzer, string $name, string $section = 'Values'): string {
        $total = 0;
        $url = '';
        $md = '';

        $res = $this->dump->fetchAnalysers(array($analyzer));
        foreach($res->toArray() as $row) {
            $url .= '+ `' . $row['fullcode'] . '` in ' . $this->escapeMd($row['file']) . ' : ' . $this->escapeMd((string) $row['line']) . PHP_EOL;
            ++$total;
        }

        if (empty($url)) {
            $this->summary['Empty'][] = $name;
            return '';
        }

        $id = $this->toId($name);
        $this->summary[$section][] = '[' . $name . '](#' . $id . ')';
        $md .= '<a name="' . $this->toId($name) . '"></a>' . PHP_EOL . '## ' . $name . PHP_EOL . PHP_EOL;
        $md .= $total . ' ' . $name . PHP_EOL . PHP_EOL;
        $md .= $url . PHP_EOL;

       return $md;
    }

    private function generateRegex(): string {
        return $this->generateGeneric('Type/Regex', 'Regular expressions');
    }

    private function generateExceptionTree(): string {
        $exceptions = array (
  'Throwable' =>
  array (
    'Error' =>
    array (
      'ParseError' =>
      array (
      ),
      'TypeError' =>
      array (
        'ArgumentCountError' =>
        array (
        ),
      ),
      'ArithmeticError' =>
      array (
        'DivisionByZeroError' =>
        array (
        ),
      ),
      'AssertionError' =>
      array (
      ),
    ),
    'Exception' =>
    array (
      'ErrorException' =>
      array (
      ),
      'ClosedGeneratorException' =>
      array (
      ),
      'DOMException' =>
      array (
      ),
      'LogicException' =>
      array (
        'BadFunctionCallException' =>
        array (
          'BadMethodCallException' =>
          array (
          ),
        ),
        'DomainException' =>
        array (
        ),
        'InvalidArgumentException' =>
        array (
        ),
        'LengthException' =>
        array (
        ),
        'OutOfRangeException' =>
        array (
        ),
      ),
      'RuntimeException' =>
      array (
        'OutOfBoundsException' =>
        array (
        ),
        'OverflowException' =>
        array (
        ),
        'RangeException' =>
        array (
        ),
        'UnderflowException' =>
        array (
        ),
        'UnexpectedValueException' =>
        array (
        ),
        'PDOException' =>
        array (
        ),
      ),
      'PharException' =>
      array (
      ),
      'ReflectionException' =>
      array (
      ),
    ),
  ),
);
        $list = array();

        $theTable = '';
        $total = 0;
        $res = $this->dump->fetchAnalysers(array('Exceptions/DefinedExceptions'));
        foreach($res->toArray() as $row) {
            ++$total;
            if (!preg_match('/ extends (\S+)/', $row['fullcode'], $r)) {
                continue;
            }
            $parent = $this->toId($r[1]);
            if ($parent[0] != '\\') {
                $parent = '\\' . $parent;
            }

            if (!isset($list[$parent])) {
                $list[$parent] = array();
            }

            $list[$parent][] = $row['fullcode'];
        }

        if ($total === 0) {
            $this->summary['Empty'][] = 'Exception Tree';
            return '';
        }

        array_sub_sort($list);
        $theTable = $this->tree2ul($exceptions, $list);

        $this->summary['Structures'][] = '[Exception Tree](#exception-tree)';
        $md = '<a name="' . $this->toId('exception-tree') . '"></a>' . PHP_EOL . '## Exception Tree' . PHP_EOL . PHP_EOL;
        $md .= $total . ' exceptions' . PHP_EOL . PHP_EOL;
        $md .= $theTable . PHP_EOL;

       return $md;
    }

    private function toId($name) {
        return str_replace(' ', '-', strtolower($name));

    }

    private function tree2ul($tree, $display, $level = 0) {
        if (empty($tree)) {
            return '';
        }

        $return = '';

        foreach($tree as $k => $v) {
            $phpTree = '';
            $selfTree = '';


            $parent = '\\' . strtolower($k);
            if (isset($display[$parent])) {
                $return .= str_repeat('    ', $level) . '* __`' . $k . '`__';
                foreach($display[$parent] as $p) {
                    if ($level == 5) { return; }
                    if (preg_match('/class (\w+)\b/', $p, $r) && $r[1] != 'Exception') {
                        $selfTree .= $this->tree2ul(array($r[1] => array()), $display, $level + 1);
                    }
                }
            } else {
                $return .= str_repeat('    ', $level) . '* _`' . $k . '`_';
            }

            if (is_array($v)) {
                $phpTree = PHP_EOL . $this->tree2ul($v, $display, $level + 1);
            }

            $return .= $phpTree . $selfTree;
        }

        $return = str_replace(' { /**/ } ', '', $return);
        $return = preg_replace('/ extends \\\\?\w+/', '', $return);
        return $return;
    }

    protected function getVCSInfo() {
        $info = array();

        $vcsClass = Vcs::getVCS($this->config);
        switch($vcsClass) {
            case 'Git':
                $info[] = array('Git URL', $this->dump->fetchHash('vcs_url')->toString());

                $res = $this->dump->fetchHash('vcs_branch')->toString();
                if (!empty($res)) {
                    $info[] = array('Git branch', trim($res));
                }

                $res = $this->dump->fetchHash('vcs_revision')->toString();
                if (!empty($res)) {
                    $info[] = array('Git commit', trim($res));
                }
                break 1;

            case 'Svn':
                $info[] = array('SVN URL', $this->dump->fetchHash('vcs_url')->toString());
                break 1;

            case 'Bazaar':
                $info[] = array('Bazaar URL', $this->dump->fetchHash('vcs_url')->toString());
                break 1;

            case 'Composer':
                $info[] = array('Package', $this->dump->fetchHash('vcs_url')->toString());
                break 1;

            case 'Mercurial':
                $info[] = array('Hg URL', $this->dump->fetchHash('vcs_url')->toString());
                break 1;

            case 'Copy':
                $info[] = array('Original path', $this->dump->fetchHash('vcs_url')->toString());
                break 1;

            case 'Symlink':
                $info[] = array('Original path', $this->dump->fetchHash('vcs_url')->toString());
                break 1;

            case 'Tarbz':
                $info[] = array('Source URL', $this->dump->fetchHash('vcs_url')->toString());
                break 1;

            case 'Cvs':
                $info[] = array('Source URL', $this->dump->fetchHash('vcs_url')->toString());
                break 1;

            case 'Targz':
                $info[] = array('Source URL', $this->dump->fetchHash('vcs_url')->toString());
                break 1;

            default :
                $info[] = array('Repository URL', 'Downloaded archive');
        }

        return $info;
    }

}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Reports;


class Phpconfiguration extends Reports {
    const FILE_EXTENSION = 'ini-dist';
    const FILE_FILENAME  = 'php.suggested';

    public function _generate(array $analyzerList): string {
        $final = '';

        $themed = $this->rulesets->getRulesetsAnalyzers($analyzerList);
        $res = $this->dump->fetchAnalysersCounts($themed);
        $sources = $res->toHash('analyzer', 'count');
        $this->count(count($sources));

        $shouldDisableFunctions = json_decode(file_get_contents("{$this->config->dir_root}/data/shouldDisableFunction.json"), \JSON_ASSOCIATIVE);
        $functionsArray = array();
        $classesArray = array();
        foreach($shouldDisableFunctions as $ext => $toDisable) {
            if (!isset($sources[$ext])) {
                continue;
            } elseif ($sources[$ext] == 0) {
                if (isset($toDisable->functions)) {
                    $functionsArray[] = $toDisable->functions;
                }
                if (isset($toDisable->classes)) {
                    $classesArray[] = $toDisable->classes;
                }
            }
        }

        if (empty($functionsArray)) {
            $functionsList = '';
        } else {
            $functionsArray = array_merge(...$functionsArray);
            $functionsList = implode(',', $functionsArray);
        }
        if (empty($classesArray)) {
            $classesList = '';
        } else {
            $classesArray = array_merge(...$classesArray);
            $classesList = implode(',', $classesArray);
        }

        // preparing the list of PHP directives to review before using this application
        $directives = array('standard', 'bcmath', 'date', 'file',
                            'fileupload', 'mail', 'ob', 'env',
                            // standard extensions
                            'apc', 'amqp', 'apache', 'assertion', 'curl', 'dba',
                            'filter', 'image', 'intl', 'ldap',
                            'mbstring',
                            'opcache', 'openssl', 'pcre', 'pdo', 'pgsql',
                            'session', 'sqlite', 'sqlite3',
                            // pecl extensions
                            'com', 'eaccelerator',
                            'geoip', 'ibase',
                            'imagick', 'mailparse', 'mongo',
                            'trader', 'wincache', 'xcache'
                             );

        $data = array();
        foreach($sources as $analyzer => $count) {
            if ($analyzer == 'Structures/FileUploadUsage') {
                $data['File Upload'] = json_decode(file_get_contents($this->config->dir_root . '/data/directives/fileupload.json'));
            } elseif ($analyzer == 'Php/UsesEnv') {
                $data['Environment'] = json_decode(file_get_contents($this->config->dir_root . '/data/directives/env.json'));
            } elseif ($analyzer == 'Php/ErrorLogUsage') {
                $data['Error log'] = json_decode(file_get_contents($this->config->dir_root . '/data/directives/errorlog.json'));
            } elseif ($analyzer === 'Php/UseBrowscap') {
                $data['Browscap'] = json_decode(file_get_contents($this->config->dir_root . '/data/directives/browscap.json'));
            } elseif ($analyzer === 'Php/DlUsage') {
                $data['Dl'] = json_decode(file_get_contents($this->config->dir_root . '/data/directives/enable_dl.json'));
            } elseif ($analyzer === 'Security/CantDisableFunction' ||
                      $analyzer === 'Security/CantDisableClass'
                      ) {

                $res2 = $this->dump->fetchAnalysers(array('Security/CantDisableFunction'));
                $list = $res2->getColumn('fullcode');
                $list = array_map(function (string $x): string {
                    return substr($x, 0, strpos($x, '('));
                }, $list);
                $list = array_unique($list);

                if (isset($disable)) {
                    continue;
                }
                $disable = parse_ini_file("{$this->config->dir_root}/data/disable_functions.ini");
                $suggestions = array_diff($disable['disable_functions'], $list);

                $data['Disable features'] = json_decode(file_get_contents("{$this->config->dir_root}/data/directives/disable_functions.json"));

                // disable_functions
                $data['Disable features'][0]->suggested = implode(', ', $suggestions);
                $data['Disable features'][0]->documentation .= "\n; " . count($list) . " sensitive functions were found in the code. Don't disable those : " . implode(', ', $list);

                $res2 = $this->dump->fetchAnalysers(array('Security/CantDisableClass'));
                $list = $res2->getColumn('fullcode');
                $list = array_map(function (string $x): string {
                    return substr($x, 0, strpos($x, '('));
                }, $list);
                $list = array_unique($list);
                $suggestions = array_diff($disable['disable_classes'], $list);

                // disable_functions
                $data['Disable features'][1]->suggested = implode(',', $suggestions);
                $data['Disable features'][1]->documentation .= "\n; " . count($list) . " sensitive classes were found in the code. Don't disable those : " . implode(', ', $list);
            } else {
                $ext = substr($analyzer, 14);
                if (in_array($ext, $directives)) {
                    $data[$ext] = json_decode(file_get_contents($this->config->dir_root . '/data/directives/' . $ext . '.json'));
                }
            }
        }

        $directives = <<<'TEXT'

;;;;;;;;;;;;;;;;;;;;;;;;;;
; Suggestion for php.ini ;
;;;;;;;;;;;;;;;;;;;;;;;;;;

; The directives below are selected based on the code provided. 
; They only cover the related directives that may have an impact on the code
;
; The list may not be exhaustive
; The suggested values are not recommendations, and should be reviewed and adapted
;



TEXT;

        foreach($data as $section => $details) {
            $directives .= "[$section]\n";

            foreach((array) $details as $detail) {
                if ($detail->name == 'Extra configurations') {
                    preg_match('#(https?://[^"]+?)"#is', $detail->documentation, $url);
                    $directives .= "; More information about $section : 
;$url[1]

";
                } else {
                    $documentation = wordwrap(' ' . $detail->documentation, 80, "\n; ");
                    $directives .= ";$documentation
$detail->name = $detail->suggested

";
                }
            }

            if ($section === 'standard') {
                $directives .= ";$documentation
disable_functions = $functionsList
disable_classes = $classesList

";
            }

            $directives .= "\n\n";
        }

        $final .= "\n\n" . $directives;

        return $final;
    }

    public function dependsOnAnalysis(): array {
        return array('Appinfo',
                     );
    }

}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;


class Migration74 extends Ambassador {
    const FILE_FILENAME  = 'migration74';
    const FILE_EXTENSION = '';
    const CONFIG_YAML    = 'Migration74';

    public function dependsOnAnalysis(): array {
        return array('CompatibilityPHP74',
                     );
    }
}
?>dashboard:
    menu: Dashboard
    title: Dashboard
    source: levels
    file: index
    method: generateDashboard
    icon: dashboard
detailled:
    title: Detailled OWASP top 10
    icon: flag
    source: levels
    file: detailled
    method: generateDetailledDashboard
issues:
    title: Issues
    icon: flag
    file: issues
    method: generateIssuesEngine
    ruleset: Security
annexes:
    title: Annexes
    icon: sticky-note-o
    subsections: 
        engine_settings:
            title: Engine Settings
            source: annex_settings
            file: engine_settings
            method: generateAnalyzerSettings
        annex_config:
            title: Audit Configuration
            file: annex_config
            method: generateAuditConfig
        processed_files:
            title: Processed files
            source: proc_files
            file: processed_files
            method: generateProcFiles
            icon: file
        processed_analysis:
            title: Processed analysis
            source: proc_analyses
            file: processed_analysis
            method: generateAnalyzersList
            icon: file
        annex_docs:
            title: Analyses documentation
            file: analyses_doc
            method: generateDocumentation
            icon: file
        annex_codes:
            title: Source code
            file: codes
            method: generateCodes
            icon: file
        credits:
            title: Credits
            file: credits
            icon: thumbs-up
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;


class Dailytodo extends Reports {
    const FILE_EXTENSION = '';
    const FILE_FILENAME  = 'todo';

    private $tmpName     = '';
    private $finalName   = '';

    public function generate(string $folder, string $name= 'todo'): string {
        $this->finalName = "$folder/$name";
        $this->tmpName   = "{$this->config->tmp_dir}/.$name";

        $this->initFolder();
        $this->generateData($folder);
        $this->cleanFolder();

        return '';
    }

    private function generateData($folder, $name = 'table') {
        $project_rulesets = $this->config->project_rulesets ?? array('Analyzer');
        $list = $this->rulesets->getRulesetsAnalyzers($project_rulesets);

        $res = $this->dump->fetchAnalysersCounts($list);
        $total = $res->getCount();
        $all = $res->toArray();

        if (empty($all)) {
            return;
        }
        srand(date('dmY'));
        shuffle($all);
        $res = array_slice($all, 0, $reporting);

        $todos = array();
        $count = 0;
        foreach($res as $row) {
            $docs = $this->getDocs($row['analyzer']);

            $fullcode = $this->syntaxColoring($row['fullcode']);
            $file = $row['file'] . ':' . $row['line'];
            $first = substr($docs['description'], 0, strpos($docs['description'], '.') + 1 );
            $todos[] = <<<HTML
                <tr>
                  <td class="text-center">
                    $count
                  </td>
                  <td class="text-center">
                    <label class="colorinput">
                        <input name="color" type="checkbox" value="azure" class="colorinput-input" />
                        <span class="colorinput-color bg-azure"></span>
                    </label>
                  </td>
                  <td class="text-right">$file</td>
                  <td>
                    <p class="font-w600 mb-1">$docs[name] : $first</p>
                    <div class="text-muted"><pre>$fullcode</pre></div>
                  </td>
                </tr>

HTML;
            ++$count;
        }

        $tags = array('<reporting>',
                      '<count>',
                      '<total>',
                      '<thema>',
                      '<date>',
                      '<todos>',
                      '<thanks>',
                      );

        $values = array($reporting,
                        $count,
                        $total,
                        $project_rulesets,
                        date('l, F jS Y'),
                        implode('', $todos),
                        $this->getThanks(),
                        );

        $html = file_get_contents($this->tmpName . '/invoice.html');
        $html = str_replace($tags, $values, $html);
        file_put_contents($this->tmpName . '/index.html', $html);
    }

    private function initFolder() {
        if ($this->finalName === 'stdout') {
            return "Can't produce Dailytodo format to stdout";
        }

        // Clean temporary destination
        if (file_exists($this->tmpName)) {
            rmdirRecursive($this->tmpName);
        }

        // Copy template
        copyDir("{$this->config->dir_root}/media/tabler", $this->tmpName);
    }

    private function cleanFolder(): void {
        if (file_exists($this->finalName)) {
            rename($this->finalName, $this->tmpName . '2');
        }

        rename($this->tmpName, $this->finalName);

        if (file_exists($this->tmpName . '2')) {
            rmdirRecursive($this->tmpName . '2');
        }
    }

    private function syntaxColoring(string $source): string {
        $colored = highlight_string('<?php ' . $source . ' ;?>', \RETURN_VALUE);
        $colored = substr($colored, 79, -65);

        if ($colored[0] === '$') {
            $colored = '<span style="color: #0000BB">' . $colored;
        }

        return $colored;
    }

    private function getThanks(): string {
        $thanks = parse_ini_file("{$this->config->dir_root}/data/thankyou.ini", \INI_PROCESS_SECTIONS);
        $thanks = $thanks['thanks'];
        shuffle($thanks);

        return array_pop($thanks);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy  Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;

use Exakat\Analyzer\Analyzer;
use Exakat\Reports\Helpers\Highchart;
use Exakat\Config;
use Exakat\Exakat;
use Exakat\Vcs\Vcs;
use Symfony\Component\Yaml\Yaml as Symfony_Yaml;
use Exakat\Configsource\DatastoreConfig;
use Exakat\Tasks\Helpers\BaselineStash;

class Emissary extends Reports {
    const FILE_FILENAME  = 'emissary';
    const FILE_EXTENSION = '';
    const CONFIG_YAML    = 'Emissary';

    protected $projectPath     = null;
    protected $finalName       = null;
    private $tmpName           = '';

    protected $frequences        = array();
    protected $timesToFix        = array();
    protected $themesForAnalyzer = array();
    protected $severities        = array();

    protected $generations       = array();
    protected $generations_files = array();

    protected $usedFiles         = array();

    const TOPLIMIT = 10;
    const LIMITGRAPHE = 40;

    const NOT_RUN      = 'Not Run';
    const YES          = 'Yes';
    const NO           = 'No';
    const INCOMPATIBLE = 'Incompatible';

    private $inventories = array('constants'      => 'Constants',
                                 'classes'        => 'Classes',
                                 'interfaces'     => 'Interfaces',
                                 'functions'      => 'Functions',
                                 'traits'         => 'Traits',
                                 'namespaces'     => 'Namespaces',
                                 'Type/Url'       => 'URL',
                                 'Type/Regex'     => 'Regular Expr.',
                                 'Type/Sql'       => 'SQL',
                                 'Type/Email'     => 'Email',
                                 'Type/GPCIndex'  => 'Incoming variables',
                                 'Type/Md5string' => 'MD5 string',
                                 'Type/Mime'      => 'Mime types',
                                 'Type/Pack'      => 'Pack format',
                                 'Type/Printf'    => 'Printf format',
                                 'Type/Path'      => 'Paths',
                                 );

    private $compatibilities = array();

    public function __construct() {
        parent::__construct();

        foreach(Config::PHP_VERSIONS as $shortVersion) {
            $this->compatibilities[$shortVersion] = "Compatibility PHP $shortVersion[0].$shortVersion[1]";
        }

        if ($this->rulesets !== null ){
            $this->frequences        = $this->rulesets->getFrequences();
            $this->timesToFix        = $this->rulesets->getTimesToFix();
            $this->themesForAnalyzer = $this->rulesets->getRulesetsForAnalyzer();
            $this->severities        = $this->rulesets->getSeverities();
        }
    }

    protected function makeMenu(): string {
        $menuYaml = Symfony_Yaml::parseFile(__DIR__ . '/' . static::CONFIG_YAML . '.yaml');

        $menu = array('<ul class="sidebar-menu">',
                      '<li class="header">&nbsp;</li>',
                      );
        foreach($menuYaml as $section) {
            $menu[] = $this->makeMenuHtml($section);
        }

        $menu[] = '</ul>';

        return implode(PHP_EOL, $menu);
    }

    protected function makeMenuHtml(array $section): string {
        if (isset($section['file'])) {
            $icon = $section['icon'] ?? 'sticky-note-o';
            $menuTitle = $section['menu'] ?? $section['title'];

            $menu = "<li><a href=\"$section[file].html\"><i class=\"fa fa-$icon\"></i> <span>$menuTitle</span></a></li>";
            if (isset($section['method'])) {
                $this->generations[] = new Section($section);
            } else {
                $this->generations_files[] = $section['file'];
            }
        } elseif (isset($section['subsections'])) {
            $icon      = $section['icon'] ?? 'sticky-note-o';
            $menuTitle = $section['menu'] ?? $section['title'];

            $menu = array('<li class="treeview">',
                          "<a href=\"#\"><i class=\"fa fa-$icon\"></i> <span>$menuTitle</span><i class=\"fa fa-angle-left pull-right\"></i></a>",
                          '<ul class="treeview-menu">',
                          );

            foreach($section['subsections'] as $subsection) {
                $menu[] = $this->makeMenuHtml($subsection);
            }

            $menu[] = '</ul>';
            $menu[] = '</li>';

            $menu = implode(PHP_EOL . '  ', $menu);
        }

        return $menu;
    }

    protected function getBasedPage(string $file): string {
        static $baseHTML;

        if (empty($baseHTML)) {
            $baseHTML = file_get_contents("{$this->config->dir_root}/media/devfaceted/data/base.html");

            $baseHTML = $this->injectBloc($baseHTML, 'EXAKAT_VERSION', Exakat::VERSION);
            $baseHTML = $this->injectBloc($baseHTML, 'EXAKAT_BUILD', (string) Exakat::BUILD);
            $project_name = $this->config->project_name;
            if (empty($project_name)) {
                $project_name = 'E';
            }
            $baseHTML = $this->injectBloc($baseHTML, 'PROJECT', $project_name);
            $baseHTML = $this->injectBloc($baseHTML, 'PROJECT_NAME', $project_name);
            $baseHTML = $this->injectBloc($baseHTML, 'PROJECT_LETTER', strtoupper($project_name[0]));

            $menu = $this->makeMenu();
            $inventories = array();
            foreach($this->inventories as $fileName => $title) {
                if (strpos($fileName, '/') === false) {
                    $inventory_name = $fileName;
                } else {
                    $total = $this->dump->fetchAnalysersCounts(array($fileName))->toInt();
                    if ($total < 1) {
                        continue;
                    }
                    $inventory_name = strtolower(basename($fileName));
                }
                $inventories []= "              <li><a href=\"inventories_$inventory_name.html\"><i class=\"fa fa-circle-o\"></i>$title</a></li>\n";
            }

            $rulesets = $this->dump->fetchTable('themas');
            $rulesets->filter(function (array $x): bool { return substr($x['thema'], 0, 13) === 'Compatibility';});
            $compatibilities = array_map(function (string $x): string { $v = substr($x, -2); return "              <li><a href=\"compatibility_php$v.html\"><i class=\"fa fa-circle-o\"></i>{$this->compatibilities[$v]}</a></li>\n";},
                                         $rulesets->getColumn('thema'));

            $menu = $this->injectBloc($menu, 'INVENTORIES', implode(PHP_EOL, $inventories));
            $menu = $this->injectBloc($menu, 'COMPATIBILITIES', implode(PHP_EOL, $compatibilities));
            $baseHTML = $this->injectBloc($baseHTML, 'SIDEBARMENU', $menu);
        }


        if (!file_exists("{$this->config->dir_root}/media/devfaceted/data/$file.html")) {
            return '';
        }
        $subPageHTML = file_get_contents("{$this->config->dir_root}/media/devfaceted/data/$file.html");
        $combinePageHTML = $this->injectBloc($baseHTML, 'BLOC-MAIN', $subPageHTML);

        return $combinePageHTML;
    }

    protected function putBasedPage(string $file, string $html): void {
        if (strpos($html, '{{BLOC-JS}}') !== false) {
            $html = str_replace('{{BLOC-JS}}', '', $html);
        }
        $html = str_replace('{{TITLE}}', "PHP Static analysis for {$this->config->project_name}", $html);

        file_put_contents("$this->tmpName/data/$file.html", $html);

        $this->usedFiles[] = "$file.html";
    }

    protected function injectBloc(string $html, string $bloc, string $content): string {
        return str_replace('{{' . $bloc . '}}', $content, $html);
    }

    public function generate(string $folder, string $name = self::FILE_FILENAME): string {
        if ($name === self::STDOUT) {
            print "Can't produce Emissary format to stdout\n";

            return '';
        }

        if ($missing = $this->checkMissingRulesets()) {
            print "Can't produce Emissary format. There are " . count($missing) . ' missing rulesets : ' . implode(', ', $missing) . ".\n";

            return '';
        }

        $this->finalName = "$folder/$name";
        $this->tmpName   = "$folder/.$name";

        $this->projectPath = $folder;

        $this->initFolder();
        $this->getBasedPage('');

        foreach($this->generations as $generation) {
            $method = $generation->method;
            if (!method_exists($this, $method)) {
                print "Warning : no such method as $method; Skipping\n";
                continue;
            }
            $this->$method($generation);
        }

        foreach($this->generations_files as $file) {
            $baseHTML = $this->getBasedPage($file);
            $this->putBasedPage($file, $baseHTML);
        }

        $this->cleanFolder();

        return '';
    }

    protected function initFolder(): void {
        // Clean temporary destination
        if (file_exists($this->tmpName)) {
            rmdirRecursive($this->tmpName);
        }

        // Copy template
        if (!copyDir("{$this->config->dir_root}/media/devfaceted", $this->tmpName)) {
            print "Error while preparing the folder. A copy failed\n";
            return;
        }
    }

    protected function cleanFolder(): void {
        if (file_exists("{$this->tmpName}/data/base.html")) {
            unlink("{$this->tmpName}/data/base.html");
            unlink("{$this->tmpName}/data/menu.html");
            unlink("{$this->tmpName}/data/empty.html");
        }

        $files = glob("{$this->tmpName}/data/*.html");
        $files = array_map('basename', $files);
        foreach(array_diff($files, $this->usedFiles) as $file) {
            unlink("{$this->tmpName}/data/$file");
        }

        // Clean final destination
        if ($this->finalName !== '/') {
            rmdirRecursive($this->finalName);
        }

        if (file_exists($this->finalName)) {
            display("{$this->finalName} folder was not cleaned. Please, remove it before producing the report. Aborting report\n");
            return;
        }

        rename($this->tmpName, $this->finalName);
    }

    protected function setPHPBlocs(string $description): string {
        $description = preg_replace_callback("#<\?php(.*?)\n\?>#is", function (array $x): string {
            $return = '<pre style="border: 1px solid #ddd; background-color: #f5f5f5;">&lt;?php ' . PHP_EOL . PHPSyntax($x[1]) . '?&gt;</pre>';
            return $return;
        }, $description);

        return $description;
    }

    protected function generateDocumentation(Section $section): void {
        $analyzersList = array_merge($this->rulesets->getRulesetsAnalyzers($this->dependsOnAnalysis()));
        $analyzersList = array_unique($analyzersList);

        $baseHTML = $this->getBasedPage($section->source);
        $docHTML = array();

        foreach($analyzersList as $analyzerName) {
            $analyzer = $this->rulesets->getInstance($analyzerName, null, $this->config);
            assert ($analyzer instanceof Analyzer, "Could not get an analyzer for $analyzerName in the documentation\n");

            $description = $this->docs->getDocs($analyzerName);
            assert(isset($description['name'], $description['description']), "Could not get a name or description for $analyzerName in the documentation\n");

            $analyzersDocHTML = '<h2><a href="issues.html#analyzer=' . $this->toId($analyzerName) . '" id="' . $this->toId($analyzerName) . '">' . $description['name'] . '</a></h2>';

            $badges = array();
            $exakatSince = $description['exakatSince'] ?? '';
            if(!empty($exakatSince)){
                $badges[] = "[Since $exakatSince]";
            }

            $badges[] = '[ -P ' . $analyzer->getInBaseName() . ' ]';
            if (isset($description['name'])) {
                $badges[] = '[ <a href="https://exakat.readthedocs.io/en/latest/Rules.html#' . $this->toOnlineId($description['name']) . '">Online docs</a> ]';
            }

            $versionCompatibility = $description['phpversion'];
            if ($versionCompatibility !== Analyzer::PHP_VERSION_ANY) {
                if (strpos($versionCompatibility, '+') !== false) {
                    $versionCompatibility = substr($versionCompatibility, 0, -1) . ' and more recent ';
                } elseif (strpos($versionCompatibility, '-') !== false) {
                    $versionCompatibility = ' older than ' . substr($versionCompatibility, 0, -1);
                }
                $badges[] = '[ PHP ' . $versionCompatibility . ']';
            }

            $analyzersDocHTML .= '<p>' . implode(' - ', $badges) . '</p>';
            $description = $description['description'];
            static $regex;
            if (empty($regex)) {
                $php_native_functions = parse_ini_file("{$this->config->dir_root}/data/php_functions.ini")['functions'];
                usort($php_native_functions, function (string $a, string $b): int { return strlen($b) <=> strlen($a);} );
                $regex = '/(' . implode('|', $php_native_functions) . ')\(\)/m';
            }
            $description = preg_replace($regex, '`\1() <https://www.php.net/\1>`_', $description);

            $analyzersDocHTML .= '<p>' . nl2br($this->setPHPBlocs($description)) . '</p>';
            $analyzersDocHTML  = rst2quote($analyzersDocHTML);
            $analyzersDocHTML  = rst2htmlLink($analyzersDocHTML);
            $analyzersDocHTML  = rst2literal($analyzersDocHTML);
            $analyzersDocHTML  = rsttable2html($analyzersDocHTML);
            $analyzersDocHTML  = rstlist2html($analyzersDocHTML);

            $clearphp = $description['clearphp'] ?? '';
            if(!empty($clearphp)){
                $analyzersDocHTML.='<p>This rule is named <a target="_blank" href="https://github.com/dseguy/clearPHP/blob/master/rules/' . $clearphp . '.md">' . $clearphp . '</a>, in the clearPHP reference.</p>';
            }
            $docHTML[] = $analyzersDocHTML;
        }

        $finalHTML = $this->injectBloc($baseHTML, 'BLOC-ANALYZERS', implode(PHP_EOL, $docHTML));
        $finalHTML = $this->injectBloc($finalHTML, 'BLOC-JS', '<script src="scripts/highlight.pack.js"></script>');
        $finalHTML = $this->injectBloc($finalHTML, 'TITLE', $section->title);

        $this->putBasedPage($section->file, $finalHTML);
    }

    protected function generateFavorites(Section $section): void {
        $baseHTML = $this->getBasedPage($section->source);

        $favorites = new Favorites();
        $favoritesRules = $this->getTopFile($this->rulesets->getRulesetsAnalyzers(array('Favorites')));
        $favoritesList = json_decode($favorites->generate($favoritesRules, self::INLINE));

        $html = array();
        $highchart = new Highchart();

        foreach(array_keys((array) $favoritesList) as $analyzer) {
            $analyzerList = $this->dump->fetchHashAnalyzer($analyzer)->toHash('key', 'value');

            $table = array();
            $values = array();
            $name = $this->docs->getDocs($analyzer, 'name');

            $total = 0;
            foreach($analyzerList as $key => $value) {
                $table []= '
                <div class="clearfix">
                   <div class="block-cell">' . makeHtml($key) . '</div>
                   <div class="block-cell text-center">' . $value . '</div>
                 </div>
';
                if ($value > 0) {
                    $values[] = array('label' => $key,
                                      'value' => (int) $value);
                }
                $total += $value;
            }

            if (($repeat = 4 - count($analyzerList)) > 0) {
                $table []= str_repeat('
                <div class="clearfix">
                   <div class="block-cell">&nbsp;</div>
                   <div class="block-cell text-center">&nbsp;</div>
                 </div>
', $repeat );
            }
            $table = implode('', $table);

            // Ignore if we have no occurrences
            if ($total === 0) {
                continue;
            }

            $html[] = <<<HTML
            <div class="col-md-3">
              <div class="box">
                <div class="box-header with-border">
                  <h3 class="box-title"><a href="favorites_issues.html#analyzer=$analyzer" title="$name">$name</a></h3>
                </div>
                <div class="box-body chart-responsive">
                  <div id="donut-chart_$name"></div>
                  <div class="clearfix">
                    <div class="block-cell bold">Number</div>
                    <div class="block-cell bold text-center">Count</div>
                  </div>
                  $table
                </div>
                <!-- /.box-body -->
              </div>
            </div>
HTML;
            if (count($html) % 5 === 0) {
                $html[] = '          </div>
          <div class="row">';
            }

            $highchart->addDonut('donut-chart_' . $name,  $values);
        }

        $donut = (string) $highchart;

        $html = '<div class="row">' . implode(PHP_EOL, $html) . '</div>';

        $baseHTML = $this->injectBloc($baseHTML, 'FAVORITES', $html);
        $baseHTML = $this->injectBloc($baseHTML, 'BLOC-JS', $donut);
        $baseHTML = $this->injectBloc($baseHTML, 'TITLE', $section->title);
        $this->putBasedPage($section->file, $baseHTML);
    }

    protected function generateDashboard(Section $section): void {
        $baseHTML = $this->getBasedPage($section->source);

        $tags = array();
        $code = array();

        // Bloc top left
        $hashData = $this->getHashData();
        $finalHTML = $this->injectBloc($baseHTML, 'BLOCHASHDATA', $hashData);

        // bloc Issues
        $issues = $this->getIssuesBreakdown();
        $finalHTML = $this->injectBloc($finalHTML, 'BLOCISSUES', $issues['html']);

        // bloc severity
        $severity = $this->getSeverityBreakdown();
        $finalHTML = $this->injectBloc($finalHTML, 'BLOCSEVERITY', $severity['html']);

        // Marking the audit date
        $this->makeAuditDate($finalHTML);

        // top 10
        $fileHTML = $this->getTopFile($this->rulesets->getRulesetsAnalyzers($this->themesToShow));
        $finalHTML = $this->injectBloc($finalHTML, 'TOPFILE', $fileHTML);
        $analyzerHTML = $this->getTopAnalyzers($this->rulesets->getRulesetsAnalyzers($this->themesToShow));
        $finalHTML = $this->injectBloc($finalHTML, 'TOPANALYZER', $analyzerHTML);

        $highchart = new Highchart();

        $highchart->addDonut('donut-chart_issues',  $issues['script']);
        $highchart->addDonut('donut-chart_severity', $severity['script']);

        $fileOverview = $this->getFileOverview();
        $highchart->addSeries('filename',
                              $fileOverview['scriptDataFiles'],
                              array('name' => 'Critical', 'data' => $fileOverview['scriptDataCritical']),
                              array('name' => 'Major',    'data' => $fileOverview['scriptDataMajor']),
                              array('name' => 'Minor',    'data' => $fileOverview['scriptDataMinor']),
                              array('name' => 'None',     'data' => $fileOverview['scriptDataNone']),
                              );

        $analyzerOverview = $this->getAnalyzerOverview();
        $highchart->addSeries('container',
                              $analyzerOverview['scriptDataAnalyzer'],
                              array('name' => 'Critical', 'data' => $analyzerOverview['scriptDataAnalyzerCritical']),
                              array('name' => 'Major',    'data' => $analyzerOverview['scriptDataAnalyzerMajor']),
                              array('name' => 'Minor',    'data' => $analyzerOverview['scriptDataAnalyzerMinor']),
                              array('name' => 'None',     'data' => $analyzerOverview['scriptDataAnalyzerNone']),
                              );

        $blocjs = (string) $highchart;

        $blocjs = str_replace($tags, $code, $blocjs);
        $finalHTML = $this->injectBloc($finalHTML, 'BLOC-JS',  $blocjs);
        $finalHTML = $this->injectBloc($finalHTML, 'TITLE', $section->title);
        $this->putBasedPage($section->file, $finalHTML);
    }

    protected function generateCounts(Section $section, string $hash, string $suffix = '', string $name = ''): void {
        $finalHTML = $this->getBasedPage($section->source);

        // List of extensions used
        $res = $this->dump->fetchHashResults($hash);
        if ($res->isEmpty()) {
            $this->emptyResult($section);

            return;
        }

        $html = array();
        $data = array();
        foreach ($res->toArray() as $value) {
            $data[$value['key'] . $suffix] = $value['value'];

            $html [(int) $value['value'] ]= '<div class="clearfix">
                      <div class="block-cell-name">' . $value['key'] . '</div>
                      <div class="block-cell-issue text-center">' . $value['value'] . '</div>
                  </div>';
        }
        krsort($html);
        $html = implode('', $html);

        $finalHTML = $this->injectBloc($finalHTML, 'TOPFILE', $html);

        $highchart = new Highchart();
        $highchart->addSeries('filename',
                              array_keys($data),
                              array('name' => $name, 'data' => array_values($data)),
                              );
        $blocjs = (string) $highchart;

        $finalHTML = $this->injectBloc($finalHTML, 'BLOC-JS',  $blocjs);
        $finalHTML = $this->injectBloc($finalHTML, 'TITLE', $section->title);

        $this->putBasedPage($section->file, $finalHTML);
    }

    protected function generateClassDesignations(Section $section): void {
        $finalHTML = $this->getBasedPage($section->source);
        
        $html = array('<table class="table table-striped">',
                      '<tr><td>Namespace</td><td>Class / interface</td><td>Count</td><td>Fitting typehints</td><td>Count</td><td>As typehint</td></tr>',
                       );

        $namespaces = $this->dump->fetchTable('namespaces')->toHash('id', 'namespace');

        // il faut constuire les diffrentes possibilites avant de construire le tableau,
        // afin de suivre les extends, et tous les rassembler. 

        $res = $this->dump->fetchTable('cit');
        $parents = array();
        $children = array();
        $names = array();
        foreach($res->toArray() as $row) {
            if (empty($row['extends'])) {
                $parents[$row['id']] = array();
            } else {
                array_collect_by($parents, $row['id'],(intval($row['extends']) > 0 ? $row['extends'] : 'class '.$row['extends']));
                array_collect_by($children, (intval($row['extends']) > 0 ? $row['extends'] : 'class '.$row['extends']), $row['id']);
            }
            $names[$row['id']] = $row['type']. ' '.$namespaces[$row['namespaceId']].$row['name'];
        }

        $res_implements = $this->dump->fetchTable('cit_implements')->toArray();
        $implements = array();
        foreach($res_implements as $row) {
            array_collect_by($implements, $row['implementing'], $row);
            array_collect_by($parents, $row['implementing'], (intval($row['implements']) > 0 ? $row['implements'] : 'interface '.$row['implements']));
            array_collect_by($children, (intval($row['implements']) > 0 ? $row['implements'] : 'interface '.$row['implements']), $row['implementing']);
        }

        /// Collect classes and interfaces that accept a class as typehint : class C extends B {} => C => [C, B]
        do {
            $toPropagate = 0;
            $parents2 = array();
            foreach($parents as $key => $aieux) {
                $cleaned = array();
                foreach($aieux as $id => $aieul) {
                    if (isset($parents[$aieul])) {
                        $cleaned[] = $parents[$aieul];
                        $cleaned[] = array($aieul);
                        ++$toPropagate;
                    } else {
                        $cleaned[] = array($aieul);
                    }
                }
                
                $parents2[$key] = array_values(array_unique(array_merge(...$cleaned)));
            } 
            
            $toPropagate = count($parents2, 1) - count($parents, 1);
            $parents = $parents2;
        } while($toPropagate > 0);

        /// Collect classes that can fit a class used as typehint : class C extends B {} => B => [C, B]
        // children classes may fit when the parent is used as typehint. Interface don't count as result
        do {
            $toPropagate = 0;
            $children2 = array();
            foreach($children as $key => $child) {
                $cleaned = array();
                foreach($child as $id => $kid) {
                    if (isset($children[$kid])) {
                        $cleaned[] = $children[$kid];
                        $cleaned[] = array($kid);
                        ++$toPropagate;
                    } else {
                        $cleaned[] = array($kid);
                    }
                }
                $children2[$key] = array_values(array_unique(array_merge(...$cleaned)));
            } 
            
            $toPropagate = count($children2, 1) - count($children, 1);
            $children = $children2;
        } while($toPropagate > 0);

        foreach($res->toArray() as $row) {
            $td = array();
            $td[] = "<td style=\"vertical-align: top\">".$namespaces[$row['namespaceId']]."</td>";
            $td[] = "<td style=\"vertical-align: top\">".$row['type'].' '.$row['name']."</td>";
            
            // fitting typehint
            $list = array();
            if ($row['type'] == 'class') {
                $list[] = $names[$row['id']] ?? $row['id'];
            }
            if (isset($parents[$row['id']])) {
                foreach($parents[$row['id']] as $higher) {
                    $list[] = $names[$higher] ?? $higher;
                }
            }
            sort($list);
            if (empty($list)) {
                $td[] = "<td>0</td>";
                $td[] = "<td>&nbsp;</td>";
            } else {
                $td[] = "<td style=\"vertical-align: top\">".count($list)."</td>";
                $td[] = "<td><ul><li>".implode('</li><li>', $list)."</li></ul></td>";
            }

            // when used as typehint
            $list = array();
            if ($row['type'] == 'class') {
                $list[] = $names[$row['id']] ?? $row['id'];
            }
            if (isset($children[$row['id']])) {
                foreach($children[$row['id']] as $higher) {
                    $n = $names[$higher] ?? $higher;
                    if ($n[0] === 'c') {
                        $list[] = $n;
                    }
                }
            }
            sort($list);
            if (empty($list)) {
                $td[] = "<td>0</td>";
                $td[] = "<td>&nbsp;</td>";
            } else {
                $td[] = "<td style=\"vertical-align: top\">".count($list)."</td>";
                $td[] = "<td><ul><li>".implode('</li><li>', $list)."</li></ul></td>";
            }
            
            $html[] = "<tr>".join('', $td)."</tr>";
        }
        
        $html[] = '</table>';

        $finalHTML = $this->injectBloc($finalHTML, 'DESCRIPTION', '');
        $finalHTML = $this->injectBloc($finalHTML, 'CONTENT', implode(PHP_EOL, $html));
        $finalHTML = $this->injectBloc($finalHTML, 'TITLE', $section->title);
        $this->putBasedPage($section->file, $finalHTML);
    }

    protected function generateLocalVariableCounts(Section $section): void {
        $this->generateCounts($section, 'Local Variable Counts', ' var.', 'Local variables');
    }

    protected function generateParameterCounts(Section $section): void {
        $this->generateCounts($section, 'ParameterCounts', ' param.', 'Parameters');
    }

    protected function generatePropertyCounts(Section $section): void {
        $this->generateCounts($section, 'CIT property counts', ' prop.', 'Properties');
    }

    protected function generateMethodCounts(Section $section): void {
        $this->generateCounts($section, 'CIT method counts', ' method.', 'Methods');
    }

    protected function generateClassConstantCounts(Section $section): void {
        $this->generateCounts($section, 'CIT class constant counts', ' const.', 'Class Constant');
    }

    protected function generateTailoredRuleset(Section $section): void {
        $finalHTML = $this->getBasedPage($section->source);

        $list = $this->rulesets->getRulesetsAnalyzers($this->themesToShow);
        $res = $this->dump->fetchAnalysersCounts($list);
        $rulesets = array('[ruleset_name]');
        foreach($res->toArray() as $r) {
            $rulesets[] = "analyzer[] = \"$r[analyzer]\";";
        }

        $rulesets = implode(PHP_EOL, $rulesets);

        $finalHTML = $this->injectBloc($finalHTML, 'RULESET',  $rulesets);
        $finalHTML = $this->injectBloc($finalHTML, 'TITLE', $section->title);

        $this->putBasedPage($section->file, $finalHTML);
    }

    protected function generateExtensionsBreakdown(Section $section): void {
        // List of extensions used
        $extensionList = $this->dump->getExtensionList();

        $html = array();
        $data = array();
        foreach ($extensionList->toArray() as $value) {
            $shortName = str_replace('Extensions/Ext', 'ext/', $value['analyzer']);
            $data[$value['analyzer']] = $value['count'];

            $html []= '<div class="clearfix">
                      <div class="block-cell-name">' . $shortName . '</div>
                      <div class="block-cell-issue text-center">' . $value['count'] . '</div>
                  </div>';
        }
        $html = implode(PHP_EOL, $html);

        $this->generateGraphList($section->file, $section->title, 'Extensions', $data, $html);
    }

    protected function generatePHPFunctionBreakdown(Section $section): void {
        // List of php functions used
        $res = $this->dump->fetchTable('phpStructures');
        $res->filter(function (array $x): bool { return $x['type'] === 'function'; });
        $res->order(function (array $a, array $b): int { return $b['count'] <=> $a['count']; });

        $html = array();
        $data = array();
        foreach ($res->toArray() as $value) {
            $data[$value['name']] = $value['count'];

            $html []= '<div class="clearfix">
                      <div class="block-cell-name">' . $value['name'] . '</div>
                      <div class="block-cell-issue text-center">' . $value['count'] . '</div>
                  </div>';
        }
        $html = implode(PHP_EOL, $html);

        $this->generateGraphList($section->file, $section->title, 'PHP Native Functions', $data, $html);
    }

    protected function generatePHPConstantsBreakdown(Section $section): void {
        // List of php constant used
        $res = $this->dump->fetchTable('phpStructures');
        $res->filter(function (array $x): bool { return $x['type'] === 'constant'; });
        $res->order(function (array $a, array $b): int { return $b['count'] <=> $a['count']; });

        $html = array();
        $data = array();
        foreach ($res->toArray() as $value) {
            $data[$value['name']] = $value['count'];

            $html []= '<div class="clearfix">
                      <div class="block-cell-name">' . $value['name'] . '</div>
                      <div class="block-cell-issue text-center">' . $value['count'] . '</div>
                  </div>';
        }
        $html = implode(PHP_EOL, $html);

        $this->generateGraphList($section->file, $section->title, 'Constants', $data, $html);
    }

    protected function generatePHPClassesBreakdown(Section $section): void {
        // List of php functions used
        $res = $this->dump->fetchTable('phpStructures');
        $res->filter(function (array $x): bool { return in_array($x['type'], array('class', 'interface', 'trait'), \STRICT_COMPARISON); });
        $res->order(function (array $a, array $b): int { return $b['count'] <=> $a['count']; });

        $html = array();
        $data = array();
        foreach ($res->toArray() as $value) {
            $data[$value['name']] = $value['count'];

            $html []= '<div class="clearfix">
                      <div class="block-cell-name">' . $value['name'] . '</div>
                      <div class="block-cell-issue text-center">' . $value['count'] . '</div>
                  </div>';
        }
        $html = implode(PHP_EOL, $html);

        $this->generateGraphList($section->file, $section->title, 'Classes', $data, $html);
    }

    protected function generateGraphList(string $filename, string $title, string $data_name, array $data, string $html): void {
        $finalHTML = $this->getBasedPage('extension_list');
        $finalHTML = $this->injectBloc($finalHTML, 'TOPFILE', $html);

        $highchart = new Highchart();
        $highchart->addSeries('filename',
                              array_keys($data),
                              array('name' => $data_name, 'data' => array_values($data)),
                              );
        $blocjs = (string) $highchart;

        $finalHTML = $this->injectBloc($finalHTML, 'BLOC-JS',  $blocjs);
        $finalHTML = $this->injectBloc($finalHTML, 'TITLE', $title);

        $this->putBasedPage($filename, $finalHTML);
    }

    public function getHashData(): string {
        $info = array(
            'Number of PHP files'                   => $this->dump->fetchHash('files')->toString(),
            'Number of lines of code'               => $this->dump->fetchHash('loc')->toString(),
            'Number of lines of code with comments' => $this->dump->fetchHash('locTotal')->toString(),
            'PHP used'                              => $this->dump->fetchHash('php_version')->toString(),
        );

        // fichier
        $totalFile = $this->dump->fetchHash('files')->toString();
        $totalFileAnalysed = $this->getTotalAnalysedFile();
        $totalFileSansError = $totalFile - $totalFileAnalysed;
        if ((int) $totalFile === 0) {
            $percentFile = 100;
        } else {
            $percentFile = abs(round($totalFileSansError / $totalFile * 100));
        }

        // analyzer
        list($totalAnalyzerUsed, $totalAnalyzerReporting) = array_values($this->getTotalAnalyzer());
        $totalAnalyzerWithoutError = $totalAnalyzerUsed - $totalAnalyzerReporting;
        if ($totalAnalyzerUsed > 0) {
            $percentAnalyzer = abs(round($totalAnalyzerWithoutError / $totalAnalyzerUsed * 100));
        } else {
            $percentAnalyzer = 100;
        }

        $html = <<<HTML
    <div class="box">
        <div class="box-header with-border">
            <h3 class="box-title">Project Overview</h3>
        </div>
    
        <div class="box-body chart-responsive">
            <div class="row">
                <div class="sub-div">
                    <p class="title"><span># of PHP</span> files</p>
                    <p class="value">{$info['Number of PHP files']}</p>
                </div>
                <div class="sub-div">
                    <p class="title"><span>PHP</span> Used</p>
                    <p class="value">{$info['PHP used']}</p>
                 </div>
            </div>
            <div class="row">
                <div class="sub-div">
                    <p class="title"><span>PHP</span> LoC</p>
                    <p class="value">{$info['Number of lines of code']}</p>
                </div>
                <div class="sub-div">
                    <p class="title"><span>Total</span> LoC</p>
                    <p class="value">{$info['Number of lines of code with comments']}</p>
                </div>
            </div>
            <div class="row">
                <div class="sub-div">
                    <div class="title">Files free of issues (%)</div>
                    <div class="progress progress-sm">
                        <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100" style="width: {$percentFile}%">
                            {$totalFileSansError}
                        </div><div style="color:black; text-align:center;">{$totalFileAnalysed}</div>
                    </div>
                    <div class="pourcentage">{$percentFile}%</div>
                </div>
                <div class="sub-div">
                    <div class="title">Analyzers free of issues (%)</div>
                    <div class="progress progress-sm active">
                        <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100" style="width: {$percentAnalyzer}%">
                            {$totalAnalyzerWithoutError}
                        </div><div style="color:black; text-align:center;">{$totalAnalyzerReporting}</div>
                    </div>
                    <div class="pourcentage">{$percentAnalyzer}%</div>
                </div>
            </div>
        </div>
    </div>
HTML;

        return $html;
    }

    public function getIssuesBreakdown(): array {
        $rulesets = array('Code Smells'  => 'Analyze',
                          'Dead Code'    => 'Dead code',
                          'Security'     => 'Security',
                          'Performances' => 'Performances');

        $data = array();
        foreach ($rulesets AS $key => $categorie) {
            $list = $this->rulesets->getRulesetsAnalyzers(array($categorie));
            $res = $this->dump->fetchAnalysersCounts($list);
            $res->filter(function (array $x): bool { return $x['count'] >= -1;});
            $counts = $res->getColumn('count');
            $data[] = array('label' => $key, 'value' => array_sum($counts));
        }

        // ordonn DESC par valeur
        uasort($data, function (array $a, array $b): int {
            return $b['value'] <=> $a['value'];
        });
        $issuesHtml = '';
        $dataScript = array();

        foreach ($data as $value) {
            $issuesHtml .= '<div class="clearfix">
                   <div class="block-cell">' . $value['label'] . '</div>
                   <div class="block-cell text-center">' . $value['value'] . '</div>
                 </div>';
            $dataScript[] = $value;
        }

        $nb = 4 - count($data);
        $filler = '<div class="clearfix">
                   <div class="block-cell">&nbsp;</div>
                   <div class="block-cell text-center">&nbsp;</div>
                 </div>';
        if ($nb > 0) {
            $issuesHtml .= str_repeat($filler, $nb);
        }

        return array('html'   => $issuesHtml,
                     'script' => $dataScript);
    }

    public function getSeverityBreakdown(): array {
        $list = $this->rulesets->getRulesetsAnalyzers($this->themesToShow);
        $res = $this->dump->getSeverityBreakdown($list);

        $html = array();
        $dataScript = array();
        foreach ($res->toArray() as $value) {
            $html []= <<<HTML
<div class="clearfix">
    <div class="block-cell">$value[label]</div>
    <div class="block-cell text-center">$value[value]</div>
</div>
HTML;
            $dataScript[] = $value;
        }

        if (($c = 4 - $res->getCount()) > 0) {
            $html []= str_repeat('<div class="clearfix">
                       <div class="block-cell">&nbsp;</div>
                       <div class="block-cell text-center">&nbsp;</div>
                     </div>', $c);
        }
        $html = implode('', $html);

        return array('html'   => $html,
                     'script' => $dataScript);
    }

    protected function getTotalAnalysedFile(): int {
        $list = $this->rulesets->getRulesetsAnalyzers($this->themesToShow);

        return $this->dump->getAnalyzedFiles($list);
    }

    protected function generateAnalyzers(): void {
        $analysers = $this->getAnalyzersResultsCounts();

        $baseHTML = $this->getBasedPage('analyses');
        $analyserHTML = '';

        foreach ($analysers as $analyser) {
            $analyserHTML .= '<tr>';

            $analyserHTML.= '<td><a href="issues.html#analyzer=' . $this->toId($analyser['analyzer']) . '" title="' . $analyser['label'] . '">' . $analyser['label'] . '</a></td>
                        <td>' . $analyser['recipes'] . '</td>
                        <td>' . $analyser['issues'] . '</td>
                        <td>' . $analyser['files'] . '</td>
                        <td>' . $analyser['severity'] . '</td>
                        <td>' . $this->frequences[$analyser['analyzer']] . ' %</td>';
            $analyserHTML .= '</tr>';
        }

        $finalHTML = $this->injectBloc($baseHTML, 'BLOC-ANALYZERS', $analyserHTML);
        $finalHTML = $this->injectBloc($finalHTML, 'BLOC-JS', '<script src="scripts/datatables.js"></script>');

        $this->putBasedPage('analyses', $finalHTML);
    }

    protected function getAnalyzersResultsCounts(): array {
        $list = $this->rulesets->getRulesetsAnalyzers($this->themesToShow);

        $result = $this->dump->getAnalyzersResultsCounts($list);

        $return = array();
        foreach ($result->toArray() as $row) {
            $row['label'] = $this->docs->getDocs($row['analyzer'], 'name');
            $row['recipes' ] =  implode(', ', $this->themesForAnalyzer[$row['analyzer']]);

            $return[] = $row;
        }

        return $return;
    }

    private function generateNoIssues(Section $section): void {
        $list = $this->rulesets->getRulesetsAnalyzers(array(
        'Analyze',
        'Security',
        'Performances',
        'CompatibilityPHP53',
        'CompatibilityPHP54',
        'CompatibilityPHP55',
        'CompatibilityPHP56',
        'CompatibilityPHP70',
        'CompatibilityPHP71',
        'CompatibilityPHP72',
        'CompatibilityPHP73',
        'CompatibilityPHP74',
        'CompatibilityPHP80',
        ));

        $result = $this->dump->fetchAnalysersCounts($list);
        $result->filter(function (array $x): bool { return substr($x['analyzer'], 0, 7) !== 'Common';});

        $baseHTML = $this->getBasedPage($section->source);

        $filesHTML = array();
        foreach ($result->toArray() as $row) {
            $analyzer = $this->rulesets->getInstance($row['analyzer'], null, $this->config);

            if ($analyzer === null) {
                continue;
            }

            $filesHTML []= '<tr><td>' . $this->makeDocLink($row['analyzer']) . '</td></tr>';
        }
        $filesHTML = implode(PHP_EOL, $filesHTML);

        $finalHTML = $this->injectBloc($baseHTML, 'BLOC-FILES', $filesHTML);
        $finalHTML = $this->injectBloc($finalHTML, 'BLOC-JS', '<script src="scripts/datatables.js"></script>');
        $finalHTML = $this->injectBloc($finalHTML, 'TITLE', $section->title);

        $this->putBasedPage($section->file, $finalHTML);
    }

    protected function generateFiles(Section $section): void {
        $files = $this->getFilesResultsCounts();

        $baseHTML = $this->getBasedPage($section->source);
        $filesHTML = '';

        foreach ($files as $file) {
            $filesHTML.= '<tr>';


            $filesHTML.='<td> <a href="issues.html#file=' . $this->toId($file['file']) . '" title="' . $file['file'] . '">' . $file['file'] . '</a></td>
                        <td>' . $file['loc'] . '</td>
                        <td>' . $file['issues'] . '</td>
                        <td>' . $file['analyzers'] . '</td>';
            $filesHTML.= '</tr>';
        }

        $finalHTML = $this->injectBloc($baseHTML, 'BLOC-FILES', $filesHTML);
        $finalHTML = $this->injectBloc($finalHTML, 'BLOC-JS', '<script src="scripts/datatables.js"></script>');
        $finalHTML = $this->injectBloc($finalHTML, 'TITLE', $section->title);

        $this->putBasedPage($section->file, $finalHTML);
    }

    protected function getFilesResultsCounts(): array {
        $list = $this->rulesets->getRulesetsAnalyzers($this->themesToShow);
        $res = $this->dump->getFilesResultsCounts($list)->toHash('file');

        return $res;
    }

    protected function getFilesCount(array $list = array(), int $limit = 10): array {
        $res = $this->dump->getFileBreakdown($list);

        return array_slice($res->toArray(), 0, $limit);
    }

    protected function getTopFile(array $list, string $file = 'issues'): string {
        $data = $this->getFilesCount($list, self::TOPLIMIT);

        $html = array();
        foreach ($data as $value) {
            $html []= '<div class="clearfix">
                    <a href="' . $file . '.html#file=' . $this->toId($value['file']) . '" title="' . $value['file'] . '">
                      <div class="block-cell-name">' . $value['file'] . '</div>
                    </a>
                    <div class="block-cell-issue text-center">' . $value['value'] . '</div>
                  </div>';
        }

        $nb = 10 - count($data);
        if ($nb > 0) {
            $html []= str_repeat('<div class="clearfix">
                          <div class="block-cell-name">&nbsp;</div>
                          <div class="block-cell-issue text-center">&nbsp;</div>
                      </div>', $nb);
        }

        return implode(PHP_EOL, $html);
    }

    protected function getFileOverview(): array {
        $xAxis        = array();
        $dataMajor    = array();
        $dataCritical = array();
        $dataNone     = array();
        $dataMinor    = array();

        $severities = $this->getSeveritiesNumberBy('file');
        unset($severities['None']);
        uasort($severities, function (array $a, array $b) use ($severities): int { return array_sum($b) <=> array_sum($a); });
        $severities = array_slice($severities, 0, 10);

        foreach ($severities as $file => $value) {
            $xAxis[]        = $file;
            $dataCritical[] = $value['Critical'] ?? 0;
            $dataMajor[]    = $value['Major']    ?? 0;
            $dataMinor[]    = $value['Minor']    ?? 0;
            $dataNone[]     = $value['None']     ?? 0;
        }

        return array(
            'scriptDataFiles'    => $xAxis,
            'scriptDataCritical' => $dataCritical,
            'scriptDataMajor'    => $dataMajor,
            'scriptDataMinor'    => $dataMinor,
            'scriptDataNone'     => $dataNone,
        );
    }

    protected function getAnalyzersCount(int $limit): array {
        $list = $this->rulesets->getRulesetsAnalyzers($this->themesToShow);
        $res = $this->dump->getAnalyzersCount($list);

        return array_slice($res->toArray(), 0, $limit);
    }

    protected function getTopAnalyzers(array $list, string $file = 'issues'): string {
        $res = $this->dump->getTopAnalyzers($list, self::TOPLIMIT);

        $data = array();
        foreach ($res->toArray() as $row) {
            $data[] = array('label' => $this->docs->getDocs($row['analyzer'], 'name'),
                            'value' => $row['number'],
                            'name'  => $row['analyzer']);
        }

        $html = array();
        foreach ($data as $value) {
            $html []= '<div class="clearfix">
                    <a href="' . $file . '.html#analyzer=' . $this->toId($value['name']) . '" title="' . $value['label'] . '">
                      <div class="block-cell-name">' . $value['label'] . '</div> 
                    </a>
                    <div class="block-cell-issue text-center">' . $value['value'] . '</div>
                  </div>';
        }

        $nb = 10 - count($data);
        if ($nb > 0) {
            $html []= str_repeat('<div class="clearfix">
                          <div class="block-cell-name">&nbsp;</div>
                          <div class="block-cell-issue text-center">&nbsp;</div>
                      </div>', $nb);
        }

        $html = implode(PHP_EOL, $html);

        return $html;
    }

    protected function getSeveritiesNumberBy(string $type = 'file'): array {
        $list = $this->rulesets->getRulesetsAnalyzers($this->themesToShow);

        $res = $this->dump->getSeveritiesNumberBy($list, $type);
        $return = array();
        foreach($res->toArray() as $value) {
            $return[$value[$type]][$value['severity']] = $value['count'];
        }

        return $return;
    }

    protected function getAnalyzerOverview(): array {
        $data = $this->getAnalyzersCount(self::TOPLIMIT);
        $xAxis        = array();
        $dataMajor    = array();
        $dataCritical = array();
        $dataNone     = array();
        $dataMinor    = array();

        $severities = $this->getSeveritiesNumberBy('analyzer');
        foreach ($data as $value) {
            $ini = $this->docs->getDocs($value['analyzer']);
            $xAxis[]        = $ini['name'];
            $dataCritical[] = empty($severities[$value['analyzer']]['Critical']) ? 0 : $severities[$value['analyzer']]['Critical'];
            $dataMajor[]    = empty($severities[$value['analyzer']]['Major']) ? 0 : $severities[$value['analyzer']]['Major'];
            $dataMinor[]    = empty($severities[$value['analyzer']]['Minor']) ? 0 : $severities[$value['analyzer']]['Minor'];
            $dataNone[]     = empty($severities[$value['analyzer']]['None']) ? 0 : $severities[$value['analyzer']]['None'];
        }

        return array(
            'scriptDataAnalyzer'         => $xAxis,
            'scriptDataAnalyzerCritical' => $dataCritical,
            'scriptDataAnalyzerMajor'    => $dataMajor,
            'scriptDataAnalyzerMinor'    => $dataMinor,
            'scriptDataAnalyzerNone'     => $dataNone,
        );
    }

    private function generateNewIssues(Section $section): void {
        $baselines = new BaselineStash($this->config);
        $previous = $baselines->getBaseline();

        if ($previous === BaselineStash::NO_BASELINE) {
            $this->emptyResult($section);

            return;
        }

        $issues = $this->getIssuesFaceted($this->rulesets->getRulesetsAnalyzers($this->themesToShow));

        $oldissues = $this->getNewIssuesFaceted($this->rulesets->getRulesetsAnalyzers($this->themesToShow), $previous);
        $diff = array_diff($issues, $oldissues);

        $this->generateIssuesEngine($section, $diff);
    }

    private function generateIssues(): void {
        $issues = $this->getIssuesFaceted($this->rulesets->getRulesetsAnalyzers($this->themesToShow));
        $this->generateIssuesEngine('issues', $issues);
    }

    protected function generateIssuesEngine(Section $section, array $issues = array()): void {
        if (empty($issues)) {
            $issues = $this->getIssuesFaceted(makeArray($this->rulesets->getRulesetsAnalyzers(makeArray($section->ruleset))));
        }

        $total = count($issues);
        $issues = implode(', ' . PHP_EOL, $issues);
        $blocjs = <<<JAVASCRIPTCODE
        
  <script>
  "use strict";

    $(document).ready(function() {

      var data_items = [
$issues
];

      var item_template =  
        '<tr>' +
          '<td width="20%"><a href="<%= "analyses_doc.html#" + obj.analyzer_md5 %>" title="Documentation for <%= obj.analyzer %>"><i class="fa fa-book"></i></a> <%= obj.analyzer %></td>' +
          '<td width="20%"><a href="<%= "codes.html#file=" + obj.file + "&line=" + obj.line %>" title="Go to code"><%= obj.file + ":" + obj.line %></a></td>' +
          '<td width="18%"><%= obj.code %></td>' + 
          '<td width="2%"><%= obj.code_detail %></td>' +
          '<td width="7%" align="center"><%= obj.severity %></td>' +
          '<td width="7%" align="center"><%= obj.complexity %></td>' +
          '<td width="16%"><%= obj.recipe %></td>' +
        '</tr>' +
        '<tr class="fullcode">' +
          '<td colspan="7" width="100%"><div class="analyzer_help"><%= obj.analyzer_help %></div><pre><code><%= obj.code_plus %></code><div class="text-right"><a target="_BLANK" href="<%= "codes.html#file=" + obj.file + "&line=" + obj.line %>" class="btn btn-info">View File</a></div></pre></td>' +
        '</tr>';
      var settings = { 
        items           : data_items,
        facets          : { 
          'analyzer'  : 'Analysis',
          'file'      : 'File',
          'severity'  : 'Severity',
          'complexity': 'Time To Fix',
          'receipt'   : 'Rulesets'
        },
        facetContainer     : '<div class="facetsearch btn-group" id=<%= id %> ></div>',
        facetTitleTemplate : '<button class="facettitle multiselect dropdown-toggle btn btn-default" data-toggle="dropdown" title="None selected"><span class="multiselect-selected-text"><%= title %></span><b class="caret"></b></button>',
        facetListContainer : '<ul class="facetlist multiselect-container dropdown-menu" style="max-height: 450px; overflow: auto;"></ul>',
        listItemTemplate   : '<li class=facetitem id="<%= id %>" data-analyzer="<%= data_analyzer %>" data-file="<%= data_file %>"><span class="check"></span><%= name %><span class=facetitemcount>(<%= count %>)</span></li>',
        bottomContainer    : '<div class=bottomline></div>',  
        resultSelector   : '#results',
        facetSelector    : '#facets',
        resultTemplate   : item_template,
        paginationCount  : 50
      }   
      $.facetelize(settings);
      
      var analyzerParam = window.location.hash.split('analyzer=')[1];
      console.log(analyzerParam);
      var fileParam = window.location.hash.split('file=')[1];
      if(analyzerParam !== undefined) {
        $('#analyzer .facetlist').find("[data-analyzer='" + analyzerParam.toLowerCase() + "']").click();
      }
      if(fileParam !== undefined) {
        $('#file .facetlist').find("[data-file='" + fileParam.toLowerCase() + "']").click();
      }
    });
  </script>
JAVASCRIPTCODE;

        $baseHTML = $this->getBasedPage($section->source);
        $finalHTML = $this->injectBloc($baseHTML, 'BLOC-JS', $blocjs);
        $finalHTML = $this->injectBloc($finalHTML, 'TITLE', $section->title);
        $finalHTML = $this->injectBloc($finalHTML, 'TOTAL', (string) $total);
        $this->putBasedPage($section->file, $finalHTML);
    }

    protected function getIssuesFaceted(array $ruleset): array {
        return $this->getIssuesFacetedDb($ruleset);
    }

    public function getNewIssuesFaceted(array $ruleset, string $path): array {
        $sqlite = new \Sqlite3($path);
        $res = $sqlite->query('SELECT count(*) FROM sqlite_master WHERE type = "table" AND name != "sqlite_sequence";');

        if ($res === false || $res->fetchArray(\SQLITE3_NUM)[0] < 10) {
            return array();
        }

        $result = $this->dump->fetchTable('linediff');
        $linediff = array();
        foreach($result->toArray() as $row) {
            $linediff[$row['file']][$row['line']] = $row['diff'];
        }

        $oldIssues = $this->getIssuesFacetedDb($ruleset);
        foreach($oldIssues as &$issue) {
            $i = json_decode($issue);

            // Skip wrong lines, but why ?
            if (!($i instanceof \stdClass)) {
                continue;
            }

            if (isset($linediff[$i->file]) && $i->line > -1) {
                foreach($linediff[$i->file] as $line => $diff) {
                    if ($i->line > $line) {
                        $i->line += $diff;
                    }
                }
                if ($i->line > $line) {
                    $issue = json_encode($i);
                }
            }
        }
        unset($issue);

        return $oldIssues;
    }

    public function getIssuesFacetedDb(array $ruleset): array {
        $results = $this->dump->fetchAnalysers($ruleset);
        $results->filter(function (array $x): bool { return !in_array($x['fullcode'], array('Not Compatible With PHP Version', 'Not Compatible With PHP Configuration')); });

        $TTFColors = array('Instant'  => '#5f492d',
                           'Quick'    => '#e8d568',
                           'Slow'     => '#d06960',
                           'None'     => '#89070b'
                           );

        $severityColors = array('Critical' => '#ff0000',   // red
                                'Major'    => '#FFA500',   // Orange
                                'Minor'    => '#BDB76B',   // darkkhaki
                                'None'     => '#D3D3D3',   // lightgrey
                                );

        $items = array();
        foreach($results->toArray() as $row) {
            $item = array();
            $ini = $this->docs->getDocs($row['analyzer']);
            $item['analyzer']       = $ini['name'];
            $item['analyzer_md5']   = $this->toId($row['analyzer']);
            $item['file' ]          = $row['line'] === -1 ? $this->config->project_name : $row['file'];
            $item['file_md5' ]      = $this->toId($row['file']);
            $item['code' ]          = PHPSyntax((string) $row['fullcode']);
            $item['code_detail']    = '<i class="fa fa-plus "></i>';
            $item['code_plus']      = PHPSyntax((string) $row['fullcode']);
            $item['link_file']      = $row['file'];
            $item['line' ]          = $row['line'];
            $item['severity']       = '<i class="fa fa-warning" style="color: ' . $severityColors[$this->severities[$row['analyzer']]] . '"></i>';
            $item['complexity']     = '<i class="fa fa-cog" style="color: ' . $TTFColors[$this->timesToFix[$row['analyzer']]] . '"></i>';
            $item['recipe' ]        =  implode(', ', $this->themesForAnalyzer[$row['analyzer']]);
            $lines                  = explode("\n", $ini['description']);
            $item['analyzer_help' ] = $lines[0];

            $items[] = json_encode($item);
            $this->count();
        }

        return $items;
    }

    private function getClassByType(string $type): string {
        if ($type === 'Critical' || $type === 'Long') {
            $class = 'text-orange';
        } elseif ($type === 'Major' || $type === 'Slow') {
            $class = 'text-red';
        } elseif ($type === 'Minor' || $type === 'Quick') {
            $class = 'text-yellow';
        }  elseif ($type === 'Note' || $type === 'Instant') {
            $class = 'text-blue';
        } else {
            $class = 'text-gray';
        }

        return $class;
    }

    protected function generateProcFiles(Section $section): void {
        $files = array();
        $fileList = $this->dump->fetchTable('files')->getColumn('file');
        foreach($fileList as $file) {
            $files []= "<tr><td>$file</td></tr>";
        }
        $files = implode(PHP_EOL, $files);

        $nonFiles = array();
        $ignoredFiles = $this->dump->fetchTable('ignoredFiles')->toArray();
        foreach($ignoredFiles as $row) {
            if (empty($row['file'])) { continue; }

            $nonFiles []= "<tr><td>{$row['file']}</td><td>{$row['reason']}</td></tr>";
        }
        $nonFiles = implode(PHP_EOL, $nonFiles);

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'FILES', $files);
        $html = $this->injectBloc($html, 'NON-FILES', $nonFiles);
        $html = $this->injectBloc($html, 'TITLE', $section->title);

        $this->putBasedPage($section->file, $html);
    }

    protected function generateAnalyzersList(Section $section): void {
        $analyzers = array();

        foreach($this->rulesets->getRulesetsAnalyzers($this->themesToShow) as $analyzer) {
            $analyzers []= '<tr><td>' . $this->docs->getDocs($analyzer, 'name') . '</td><td>' . $analyzer . "</td></tr>\n";
        }
        $analyzers = implode(PHP_EOL, $analyzers);

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'ANALYZERS', $analyzers);
        $html = $this->injectBloc($html, 'TITLE',     $section->title);

        $this->putBasedPage($section->file, $html);
    }

    private function generateExternalLib(Section $section): void {
        $externallibraries = json_decode(file_get_contents("{$this->config->dir_root}/data/externallibraries.json"));

        $libraries = array();
        $externallibrariesList = $this->dump->fetchTable('externallibraries')->toArray();

        foreach($externallibrariesList as $row) {
            $name = strtolower($row['library']);
            $url  = $externallibraries->{$name}->homepage;
            $name = $externallibraries->{$name}->name;
            if (empty($url)) {
                $homepage = '';
            } else {
                $homepage = "<a href=\"$url\">$row[library]</a>";
            }
            $libraries []= "<tr><td>$name</td><td>$row[file]</td><td>$homepage</td></tr>";
        }

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'LIBRARIES', implode(PHP_EOL, $libraries));
        $html = $this->injectBloc($html, 'TITLE', $section->title);

        $this->putBasedPage($section->file, $html);
    }

    protected function generateBugFixes(Section $section): void {
        $table = '';

        $bugfixes = exakat('methods')->getBugFixes();

        $results = $this->dump->fetchAnalysers(array('Php/MiddleVersion'));

        $rows = array();
        foreach($results->toArray() as $row) {
            $rows[strtolower(substr($row['fullcode'], 0, (int) strpos($row['fullcode'], '(')))] = $row;
        }

        foreach($bugfixes as $bugfix) {
            if (empty($bugfix['solvedIn73']) &&
                empty($bugfix['solvedIn72']) &&
                empty($bugfix['solvedIn71']) &&
                empty($bugfix['solvedIn70']) ) { continue; }

            if (!empty($bugfix['function'])) {
                if (!isset($rows[$bugfix['function']])) { continue; }

                $cve = $this->Bugfixes_cve($bugfix['cve'] ?? '');
                $table .= '<tr>
    <td>' . $bugfix['title'] . '</td>
    <td>' . ($bugfix['solvedIn73'] ? $bugfix['solvedIn73'] : '-') . '</td>
    <td>' . ($bugfix['solvedIn72'] ? $bugfix['solvedIn72'] : '-') . '</td>
    <td>' . ($bugfix['solvedIn71'] ? $bugfix['solvedIn71'] : '-') . '</td>
    <td>' . ($bugfix['solvedIn70'] ? $bugfix['solvedIn70'] : '-') . '</td>
    <td>' . ($bugfix['solvedInDev'] ? $bugfix['solvedInDev'] : '-') . '</td>
    <td><a href="https://bugs.php.net/bug.php?id=' . $bugfix['bugs'] . '">#' . $bugfix['bugs'] . '</a></td>
    <td>' . $cve . '</td>
                </tr>';
            } elseif (!empty($bugfix['analyzer'])) {
                $subanalyze = $this->dump->fetchAnalysersCounts(array($bugfix['analyzer']))->toString('count');

                $cve = $this->Bugfixes_cve($bugfix['cve']);

                if ($subanalyze === 0) { continue; }
                $table .= '<tr>
    <td>' . $bugfix['title'] . '</td>
    <td>' . ($bugfix['solvedIn73'] ? $bugfix['solvedIn73'] : '-') . '</td>
    <td>' . ($bugfix['solvedIn72'] ? $bugfix['solvedIn72'] : '-') . '</td>
    <td>' . ($bugfix['solvedIn71'] ? $bugfix['solvedIn71'] : '-') . '</td>
    <td>' . ($bugfix['solvedIn70'] ? $bugfix['solvedIn70'] : '-') . '</td>
    <td>' . ($bugfix['solvedInDev'] ? $bugfix['solvedInDev'] : '-') . '</td>
    <td><a href="https://bugs.php.net/bug.php?id=' . $bugfix['bugs'] . '">#' . $bugfix['bugs'] . '</a></td>
    <td>' . $cve . '</td>
                </tr>';
            } else {
                continue; // ignore. Possibly some mis-configuration
            }
        }

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'BUG_FIXES', $table);
        $html = $this->injectBloc($html, 'TITLE', $section->title);
        $this->putBasedPage($section->file, $html);
    }

    protected function generatePhpConfiguration(Section $section): void {
        $phpConfiguration = new Phpcompilation();
        $report = $phpConfiguration->generate('', self::INLINE);

        $configline = trim($report);
        $configline = str_replace(array(' ', "\n") , array('&nbsp;', "<br />\n", ), $configline);

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'COMPILATION', $configline);
        $html = $this->injectBloc($html, 'TITLE', $section->title);

        $this->putBasedPage($section->source, $html);
    }

    protected function generateCompatibilityEstimate(Section $section): void {
        $html = $this->getBasedPage($section->source);

        $versions = array('5.2', '5.3', '5.4', '5.5', '5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0');
        $scores = array_fill_keys(array_values($versions), 0);
        $versions = array_reverse($versions);

        $analyzers = array(
                            'Php/SignatureTrailingComma'            => '8.0+',
                            'Php/Php80OnlyTypeHints'                => '8.0+',
                            'Php/Php80UnionTypehint'                => '8.0+',
                            'Php/Php80VariableSyntax'               => '8.0+',
                            'Php/ThrowWasAnExpression'              => '8.0+',
                            'Php/Php80NewFunctions'                 => '8.0-',
                            'Php/Php80RemovedFunctions'             => '8.0-',
                            'Php/Php80RemovedConstant'              => '8.0-',

                            'Structures/toStringThrowsException'    => '7.4-',
                            'Php/NestedTernaryWithoutParenthesis'   => '7.4-',
                            'Php/TypedPropertyUsage'                => '7.4-',
                            'Php/UseCovariance'                     => '7.4-',
                            'Php/UseContravariance'                 => '7.4-',
                            'Php/Php74NewDirective'                 => '7.4-',
                            'Php/SpreadOperatorForArray'            => '7.4+',
                            'Php/UnpackingInsideArrays'             => '7.4+',
                            'Structures/CurlVersionNow'             => '7.4+',
                            'Php/Php74RemovedFunctions'             => '7.4+',
                            'Php/Php74Deprecation'                  => '7.4+',
                            'Php/Php74ReservedKeyword'              => '7.4+',
                            'Functions/UseArrowFunctions'           => '7.4+',
                            'Php/IntegerSeparatorUsage'             => '7.4+',
                            'Php/NoMoreCurlyArrays'                 => '7.4+',
                            'Php/CoalesceEqual'                     => '7.4+',
                            'Php/ConcatAndAddition'                 => '7.4+',

                            'Php/Php73NewFunctions'                 => '7.3-',
                            'Php/ListWithReference'                 => '7.3+',
                            'Constants/CaseInsensitiveConstants'    => '7.3+',
                            'Php/FlexibleHeredoc'                   => '7.3+',
                            'Php/PHP73LastEmptyArgument'            => '7.3+',

                            'Php/Php72Deprecation'                  => '7.2-',
                            'Php/Php72NewClasses'                   => '7.2-',
                            'Php/Php72NewConstants'                 => '7.2-',
                            'Php/Php72NewFunctions'                 => '7.2-',
                            'Php/Php72ObjectKeyword'                => '7.2-',
                            'Php/Php72RemovedFunctions'             => '7.2-',
                            'Classes/CantInheritAbstractMethod'     => '7.2+',
                            'Classes/ChildRemoveTypehint'           => '7.2+',
                            'Php/GroupUseTrailingComma'             => '7.2+',

                            'Php/Php71NewClasses'                   => '7.1-',
                            'Php/Php71NewFunctions'                 => '7.1-',
                            'Type/OctalInString'                    => '7.1-',
                            'Classes/ConstVisibilityUsage'          => '7.1+',
                            'Php/ListShortSyntax'                   => '7.1+',
                            'Php/ListWithKeys'                      => '7.1+',
                            'Php/Php71RemovedDirective'             => '7.1+',
                            'Php/UseNullableType'                   => '7.1+',

                            'Classes/AbstractStatic'                => '7.0-',
                            'Classes/NullOnNew'                     => '7.0-',
                            'Classes/UsingThisOutsideAClass'        => '7.0-',
                            'Extensions/Extapc'                     => '7.0-',
                            'Extensions/Extereg'                    => '7.0-',
                            'Extensions/Extmysql'                   => '7.0-',
                            'Functions/MultipleSameArguments'       => '7.0-',
                            'Php/EmptyList'                         => '7.0-',
                            'Php/ForeachDontChangePointer'          => '7.0-',
                            'Php/GlobalWithoutSimpleVariable'       => '7.0-',
                            'Php/NoListWithString'                  => '7.0-',
                            'Php/Php70NewClasses'                   => '7.0-',
                            'Php/Php70NewFunctions'                 => '7.0-',
                            'Php/Php70NewInterfaces'                => '7.0-',
                            'Php/Php70RemovedFunctions'             => '7.0-',
                            'Php/ReservedKeywords7'                 => '7.0-',
                            'Structures/BreakOutsideLoop'           => '7.0-',
                            'Structures/SwitchWithMultipleDefault'  => '7.0-',
                            'Type/MalformedOctal'                   => '7.0-',
                            'Structures/pregOptionE'                => '7.0-',
                            'Classes/Anonymous'                     => '7.0+',
                            'Extensions/Extast'                     => '7.0+',
                            'Extensions/Extzbarcode'                => '7.0+',
                            'Php/Coalesce'                          => '7.0+',
                            'Php/DeclareStrictType'                 => '7.0+',
                            'Php/DefineWithArray'                   => '7.0+',
                            'Php/NoStringWithAppend'                => '7.0+',
                            'Php/Php70RemovedDirective'             => '7.0+',
                            'Php/Php7RelaxedKeyword'                => '7.0+',
                            'Php/ReturnTypehintUsage'               => '7.0+',
                            'Php/ScalarTypehintUsage'               => '7.0+',
                            'Php/UnicodeEscapeSyntax'               => '7.0+',
                            'Php/UseSessionStartOptions'            => '7.0+',
                            'Php/YieldFromUsage'                    => '7.0+',
                            'Security/UnserializeSecondArg'         => '7.0+',
                            'Structures/IssetWithConstant'          => '7.0+',
                            'Php/ParenthesisAsParameter'            => '7.0+',

                            'Php/Php56NewFunctions'                 => '5.6-',
                            'Structures/CryptWithoutSalt'           => '5.6-',
                            'Namespaces/UseFunctionsConstants'      => '5.6+',
                            'Php/ConstantScalarExpression'          => '5.6+',
                            'Php/debugInfoUsage'                    => '5.6+',
                            'Php/EllipsisUsage'                     => '5.6+',
                            'Php/ExponentUsage'                     => '5.6+',
                            'Structures/ConstantScalarExpression'   => '5.6+',

                            'Php/Php55NewFunctions'                 => '5.5-',
                            'Php/Php55RemovedFunctions'             => '5.5-',
                            'Php/CantUseReturnValueInWriteContext'  => '5.5+',
                            'Php/ConstWithArray'                    => '5.5+',
                            'Php/Password55'                        => '5.5+',
                            'Php/StaticclassUsage'                  => '5.5+',
                            'Structures/ForeachWithList'            => '5.5+',
                            'Structures/EmptyWithExpression'        => '5.5+',
                            'Structures/TryFinally'                 => '5.5+',

                            'Php/ClosureThisSupport'                => '5.4-',
                            'Php/HashAlgos54'                       => '5.4-',
                            'Php/Php54RemovedFunctions'             => '5.4-',
                            'Structures/Break0'                     => '5.4-',
                            'Structures/BreakNonInteger'            => '5.4-',
                            'Structures/CalltimePassByReference'    => '5.4-',
                            'Php/MethodCallOnNew'                   => '5.4+',
                            'Type/Binary'                           => '5.4+',

                            'Php/Php54NewFunctions'                 => '5.3-',
                            'Structures/DereferencingAS'            => '5.3-',
                          );

//        $colors = array('7900E5', 'BB00E1', 'DD00BF', 'D9007B', 'D50039', 'D20700', 'CE4400', 'CA8000', 'C6B900', '95C200', '59BF00', );
//        $colors = array('7900E5', 'DD00BF', 'D50039', 'CE4400', 'C6B900', '59BF00');
        $colors = array('59BF00', '59BF00', '59BF00', 'BEC500', 'CB6C00', 'D20700', 'D80064', 'DE00D7', '7900E5', '7900E5');
        // This must be the same lenght than the list of versions

        $results = $this->dump->fetchAnalysersCounts(array_keys($analyzers));
        $counts = $results->toHash('analyzer', 'count');

        $data = array();
        $data2 = array();
        foreach($analyzers as $analyzer => $analyzerVersion) {
            $coeff = $analyzerVersion[-1] === '+' ? 1 : -1;

            foreach($versions as $version) {
                if (!isset($counts[$analyzer])) {
                    $data2[$analyzer][$version] = '<i class="fa fa-eye-slash" style="color: #dddddd"></i>';
                } elseif ($counts[$analyzer] === 0) {
                    $data2[$analyzer][$version] = '<i class="fa fa-eye-slash" style="color: #dddddd"></i>';
                } elseif ($coeff * version_compare($version, $analyzerVersion) >= 0) {
                    $data[$analyzer][$version] = '<i class="fa fa-check-square-o" style="color: seagreen"></i>';
                    ++$scores[$version];
                } else {
                    $data[$analyzer][$version] = '<i class="fa fa-warning" style="color: crimson"></i>';
                }
            }
        }

        $incompilable = array();
        foreach($versions as $version) {
            $shortVersion = $version[0] . $version[2];

            $res = $this->dump->fetchHash("notCompilable$shortVersion")->toString();
            if ($res === 'N/C') {
                $incompilable[$shortVersion] = '<i class="fa fa-eye-slash" style="color: #dddddd"></i>';
                continue;
            }

            $results = $this->dump->fetchTable("compilation$shortVersion");
            // -1 is for no result found.
            if ($results->getCount() <= 0) {
                $incompilable[$shortVersion] = '<i class="fa fa-check-square-o" style="color: seagreen"></i>';
            } else {
                $incompilable[$shortVersion] = '<i class="fa fa-warning" style="color: crimson"></i>';
            }
        }

        $table = array();
        $titles = '<tr><th>Version</th><th>Name</th><th>' . implode('</th><th>', array_keys(array_values($data2)[0]) ) . '</th></tr>';
        $table []= '<tr><td>&nbsp;</td><td>Compilation</td><td>' . implode('</td><td>', $incompilable) . "</td></tr>\n";
        $data = array_merge($data, $data2);
        foreach($data as $name => $row) {
            $analyzer = $this->rulesets->getInstance($name, null, $this->config);
            if ($analyzer === null) {
                continue;
            }

            $link = '<a href="analyses_doc.html#' . $this->toId($name) . '" alt="Documentation for ' . $name . '"><i class="fa fa-book"></i></a>';

            $color = $colors[array_search(rtrim($analyzers[$name], '+-'), $versions)];
            $table []= "<tr><td style=\"background-color: #{$color};\">$analyzers[$name]</td><td>$link {$this->docs->getDocs($name, 'name')}</td><td>" . implode('</td><td>', $row) . "</td></tr>\n";
        }

        $table = implode('', $table);

        $theTable = <<<HTML
        					<table class="table table-striped">
        						<tr></tr>
        						$titles
        						$table
        					</table>
HTML;

        $max = max($scores);
        $key = array_keys($scores, $max);

        if ($max === count($data)) {
            $suggestion = 'This code is compatible with PHP ' . implode(', ', $key);
        } else {
            $suggestion = 'We have determined ' . count($key) . ' PHP version' . (count($key) > 1 ? 's' : '') . '. The compatible estimations are PHP ' . implode(', ', $key) . '. ';
        }

        $html = $this->injectBloc($html, 'TITLE', $section->title);
        $html = $this->injectBloc($html, 'DESCRIPTION', $suggestion);
        $html = $this->injectBloc($html, 'CONTENT', $theTable);

        $this->putBasedPage($section->file, $html);
    }

    protected function generateAuditConfig(Section $section): void {
        $config = new DatastoreConfig();
        $ini  = $config->toIni();
        $yaml = $config->toYaml();

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'CONFIG_INI', $ini);
        $html = $this->injectBloc($html, 'CONFIG_YAML', $yaml);
        $html = $this->injectBloc($html, 'TITLE', $section->title);
        $this->putBasedPage($section->file, $html);
    }

    protected function generateAnalyzerSettings(Section $section): void {
        $settings = '';

        $info = array(array('Code name', $this->config->project_name));
        if (!empty($this->config->project_description)) {
            $info[] = array('Code description', $this->config->project_description);
        }
        if (!empty($this->config->project_packagist)) {
            $info[] = array('Packagist', '<a href="https://packagist.org/packages/' . $this->config->project_packagist . '">' . $this->config->project_packagist . '</a>');
        }
        $info = array_merge($info, $this->getVCSInfo());

        $info[] = array('Number of PHP files', $this->dump->fetchHash('files')->toString());
        $info[] = array('Number of lines of code', $this->dump->fetchHash('loc')->toString());
        $info[] = array('Number of lines of code with comments', $this->dump->fetchHash('locTotal')->toString());

        $info[] = array('Analysis execution date', date('r', (int) $this->dump->fetchHash('audit_end')->toString()));
        $info[] = array('Analysis runtime', duration($this->dump->fetchHash('audit_end')->toString() - $this->dump->fetchHash('audit_start')->toString()));
        $info[] = array('Report production date', date('r', time()));

        $php = exakat('php');
        $info[] = array('PHP used', $this->config->phpversion . ' (' . $php->getConfiguration('phpversion') . ')');

        $info[] = array('Exakat version', Exakat::VERSION . ' ( Build ' . Exakat::BUILD . ') ');
        $list = $this->config->ext->getPharList();
        $html = array();
        foreach(array_keys($list) as $name) {
            $html[] = '<li>' . basename($name, '.phar') . '</li>';
        }
        $info[] = array('Exakat modules', '<ul>' . implode(PHP_EOL, $html) . '</ul>');

        foreach($info as &$row) {
            $row = '<tr><td>' . implode('</td><td>', $row) . '</td></tr>';
        }
        unset($row);

        $settings = implode(PHP_EOL, $info);

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'SETTINGS', $settings);
        $html = $this->injectBloc($html, 'TITLE', $section->title);
        $this->putBasedPage($section->file, $html);
    }

    private function generateErrorMessages(Section $section): void {
        $errorMessages = '';

        $results = $this->dump->fetchAnalysers(array('Structures/ErrorMessages'));

        foreach($results->toArray() as $row) {
            $errorMessages .= "<tr><td>{$row['htmlcode']}</td><td>{$row['file']}</td><td>{$row['line']}</td></tr>\n";
        }

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'ERROR_MESSAGES', $errorMessages);
        $html = $this->injectBloc($html, 'TITLE', $section->title);
        $this->putBasedPage($section->file, $html);
    }

    private function generateExternalServices(Section $section): void {
        $externalServices = array();

        $res = $this->dump->fetchTable('configFiles')->toArray();
        foreach($res as $row) {
            if (empty($row['homepage'])) {
                $link = '';
            } else {
                $link = '<a href="' . $row['homepage'] . '">' . $row['homepage'] . '&nbsp;<i class="fa fa-sign-out"></i></a>';
            }

            $externalServices []= "<tr><td>$row[name]</td><td>$row[file]</td><td>$link</td></tr>";
        }
        $externalServices = implode(PHP_EOL, $externalServices);

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'EXTERNAL_SERVICES', $externalServices);
        $html = $this->injectBloc($html, 'TTLE', $section->title);
        $this->putBasedPage($section->file, $html);
    }

    protected function generateDirectiveList(Section $section): void {
        // @todo automate this : Each string must be found in Report/Content/Directives/*.php and vice-versa
        $directives = array('standard', 'bcmath', 'date', 'file',
                            'fileupload', 'mail', 'ob', 'env',
                            // standard extensions
                            'apc', 'amqp', 'apache', 'assertion', 'curl', 'dba',
                            'filter', 'image', 'intl', 'ldap',
                            'mbstring',
                            'opcache', 'openssl', 'pcre', 'pdo', 'pgsql',
                            'session', 'sqlite', 'sqlite3',
                            // pecl extensions
                            'com', 'eaccelerator',
                            'geoip', 'ibase',
                            'imagick', 'mailparse', 'mongo',
                            'trader', 'wincache', 'xcache'
                             );

        $directiveList = '';
        // Possibly move this to a specific ruleset
        $list = $this->rulesets->getRulesetsAnalyzers(array('Appinfo'));
        $res = $this->dump->fetchAnalysersCounts($list);

        foreach($res->toArray() as $row) {
            $data = array();

            if ($row['analyzer'] === 'Structures/FileUploadUsage' && $row['count'] !== 0) {
                $directiveList .= "<tr><td colspan=3 bgcolor=#AAA>File Upload</td></tr>\n";
                $data = json_decode(file_get_contents("{$this->config->dir_root}/data/directives/fileupload.json"));
            } elseif ($row['analyzer'] === 'Php/UsesEnv' && $row['count'] !== 0) {
                $directiveList .= "<tr><td colspan=3 bgcolor=#AAA>Environment</td></tr>\n";
                $data = json_decode(file_get_contents("{$this->config->dir_root}/data/directives/env.json"));
            } elseif ($row['analyzer'] === 'Php/UseBrowscap' && $row['count'] !== 0) {
                $directiveList .= "<tr><td colspan=3 bgcolor=#AAA>Browser</td></tr>\n";
                $data = json_decode(file_get_contents("{$this->config->dir_root}/data/directives/browscap.json"));
            } elseif ($row['analyzer'] === 'Php/DlUsage' && $row['count'] === 0) {
                $directiveList .= "<tr><td colspan=3 bgcolor=#AAA>Enable DL</td></tr>\n";
                $data = json_decode(file_get_contents("{$this->config->dir_root}/data/directives/enable_dl.json"));
            } elseif ($row['analyzer'] === 'Php/ErrorLogUsage' && $row['count'] !== 0) {
                $directiveList .= "<tr><td colspan=3 bgcolor=#AAA>Error Log</td></tr>\n";
                $data = json_decode(file_get_contents("{$this->config->dir_root}/data/directives/errorlog.json"));
            } elseif ($row['analyzer'] === 'Security/CantDisableFunction' ||
                      $row['analyzer'] === 'Security/CantDisableClass'
                      ) {
                $list = $this->dump->getFunctionsFromAnalyzer('Security/CantDisableFunction');

                if (isset($disable)) {
                    continue;
                }
                $disable = parse_ini_file("{$this->config->dir_root}/data/disable_functions.ini");
                $suggestions = array_diff($disable['disable_functions'], $list);

                $data = json_decode(file_get_contents("{$this->config->dir_root}/data/directives/disable_functions.json"));

                // disable_functions
                $data[0]->suggested = implode(', ', $suggestions);
                $data[0]->documentation .= "\n; " . count($list) . " sensitive functions were found in the code. Don't disable those : " . implode(', ', $list);

                $list = $this->dump->getFunctionsFromAnalyzer('Security/CantDisableClass');
                $suggestions = array_diff($disable['disable_classes'], $list);

                // disable_functions
                $data[1]->suggested = implode(',', $suggestions);
                $data[1]->documentation .= "\n; " . count($list) . " sensitive classes were found in the code. Don't disable those : " . implode(', ', $list);
                $directiveList .= "<tr><td colspan=3 bgcolor=#AAA>Disable features</td></tr>\n";
            } elseif ($row['count'] !== 0) {
                $ext = substr($row['analyzer'], 14);
                if (in_array($ext, $directives, \STRICT_COMPARISON)) {
                    $data = json_decode(file_get_contents("{$this->config->dir_root}/data/directives/$ext.json"));
                    $directiveList .= "<tr><td colspan=3 bgcolor=#AAA>$ext</td></tr>\n";
                }
            }

            foreach($data as $directive) {
                $directiveList .= "<tr><td>{$directive->name}</td><td>{$directive->suggested}</td><td>{$directive->documentation}</td></tr>\n";
            }
        }

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'DIRECTIVE_LIST', $directiveList);
        $html = $this->injectBloc($html, 'TITLE', $section->title);
        $this->putBasedPage($section->file, $html);
    }

    protected function generateCompilations(Section $section): void {
        $compilations = array();

        $total = $this->dump->fetchHash('files')->toInt();

        foreach(array_unique(array_merge(array($this->config->phpversion[0] . $this->config->phpversion[2]), $this->config->other_php_versions)) as $suffix) {
            $res = $this->dump->fetchHash("notCompilable$suffix");
            if ($res === 'N/C') {
                $compilations []= "<tr><td>$version</td><td>N/A</td><td>N/A</td><td>Compilation not tested</td><td>N/A</td></tr>";
                continue; // Table was not created
            }

            $res = $this->dump->fetchTable("compilation$suffix");
            $files = $res->getColumn('file');

            if (empty($files)) {
                $files       = 'No compilation error found.';
                $errors      = 'N/A';
                $total_error = 'N/A';
            } else {
                $readErrors = $res->getColumn('error');

                $errors      = array_count_values($readErrors);
                $errors      = array_keys($errors);
                $errors      = array_keys(array_count_values($errors));
                $errors      = '<ul><li>' . implode("</li>\n<li>", $errors) . '</li></ul>';

                $total_error = count($files) . ' (' . number_format(count($files) / $total * 100, 0) . '%)';
                $files       = array_keys(array_count_values($files));
                $files       = '<ul><li>' . implode("</li>\n<li>", $files) . '</li></ul>';
            }

            $version = $suffix[0] . '.' . $suffix[1];
            $compilations []= "<tr><td>$version</td><td>$total</td><td>$total_error</td><td>$files</td><td>$errors</td></tr>";
        }

        $compilations = implode(PHP_EOL, $compilations);
        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'COMPILATIONS', $compilations);
        $html = $this->injectBloc($html, 'TITLE', $section->title);
        $this->putBasedPage($section->file, $html);
    }

    protected function generateCompatibility74(Section $section): void {
        $this->generateCompatibility($section, '74');
    }

    protected function generateCompatibility73(Section $section): void {
        $this->generateCompatibility($section, '73');
    }

    protected function generateCompatibility72(Section $section): void {
        $this->generateCompatibility($section, '72');
    }

    protected function generateCompatibility71(Section $section): void {
        $this->generateCompatibility($section, '71');
    }

    protected function generateCompatibility70(Section $section): void {
        $this->generateCompatibility($section, '70');
    }

    protected function generateCompatibility56(Section $section): void {
        $this->generateCompatibility($section, '56');
    }

    protected function generateCompatibility55(Section $section): void {
        $this->generateCompatibility($section, '55');
    }

    protected function generateCompatibility54(Section $section): void {
        $this->generateCompatibility($section, '54');
    }

    protected function generateCompatibility53(Section $section): void {
        $this->generateCompatibility($section, '53');
    }

    protected function generateCompatibility(Section $section, string $version): void {
        $compatibility = array();
        $skipped       = array();

        $list = $this->rulesets->getRulesetsAnalyzers(array('CompatibilityPHP' . $version));

        $res = $this->dump->fetchAnalysersCounts($list);
        $counts = $res->toHash('analyzer', 'count');

        foreach($list as $analyzer) {
            $ini = $this->docs->getDocs($analyzer);
            if (isset($counts[$analyzer])) {
                $resultState = (int) $counts[$analyzer];
            } else {
                $resultState = -2; // -2 === not run
            }
            $result = $this->Compatibility($resultState, $analyzer);
            $link = '<a href="analyses_doc.html#' . $this->toId($analyzer) . '" alt="Documentation for ' . $ini['name'] . '"><i class="fa fa-book"></i></a>';
            if ($resultState === Analyzer::VERSION_INCOMPATIBLE) {
                $skipped []= "<tr><td>$link {$ini['name']}</td><td>$result</td></tr>\n";
            } else {
                $compatibility []= "<tr><td>$link {$ini['name']}</td><td>$result</td></tr>\n";
            }
        }
        $compatibility = implode(PHP_EOL, $compatibility) . PHP_EOL . implode(PHP_EOL, $skipped);

        $description = <<<'HTML'
<i class="fa fa-check-square-o"></i> : Nothing found for this analysis, proceed with caution; <i class="fa fa-warning red"></i> : some issues found, check this; <i class="fa fa-ban"></i> : Can't test this, PHP version incompatible; <i class="fa fa-cogs"></i> : Can't test this, PHP configuration incompatible; 
HTML;

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'COMPATIBILITY', $compatibility);
        $html = $this->injectBloc($html, 'TITLE', $section->title);
        $html = $this->injectBloc($html, 'DESCRIPTION', $description);
        $this->putBasedPage($section->file, $html);
    }

    private function generateDynamicCode(Section $section): void {
        $dynamicCode = '';

        $results = $this->dump->fetchAnalysers(array('Structures/DynamicCode'));

        foreach($results->toArray() as $row) {
            $dynamicCode .= "<tr><td>{$row['htmlcode']}</td><td>{$row['file']}</td><td>{$row['line']}</td></tr>\n";
        }

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'DYNAMIC_CODE', $dynamicCode);
        $html = $this->injectBloc($html, 'TITLE', $section->title);
        $this->putBasedPage($section->file, $html);
    }

    private function generateGlobals(Section $section): void {
        $res = $this->dump->fetchTable('globalVariables');

        if ($res->isEmpty()) {
            $this->emptyResult($section);
            return;
        }

        $tree = array();
        foreach($res->toArray() as $row) {
            $variable = trim($row['variable'], '{}&@');
            $name = preg_replace('/^\$GLOBALS\[[ \'"]*(.*?)[ \'"]*\]$/', '$\1', $variable);
            if (substr($variable, 0, 8) === '$GLOBALS') {
                $origin = '$GLOBALS';
            } else {
                $origin = 'global';
            }

            if (isset($tree[$name])) {
                ++$tree[$name]['count'];
                $tree[$name]['file'][]       = $row['file'] . ':' . $row['line'];
                $tree[$name]['type'][]       = $row['type'];
                $tree[$name]['status'][]     = ($row['isRead'] ? 'R' : '&nbsp;' ) . ' - ' . ($row['isModified'] ? 'W' : '&nbsp;' );
            } else {
                $tree[$name]['count']      = 1;
                $tree[$name]['file']       = array($row['file'] . ':' . $row['line']        );
                $tree[$name]['type']       = array($row['type']);
                $tree[$name]['status']     = array(($row['isRead'] ? 'R' : '&nbsp;' ) . ' - ' . ($row['isModified'] ? 'W' : '&nbsp;' ));
            }
        }

        uasort($tree, function (array $a, array $b): int { return $a['count'] <=> $b['count'];});

        $theGlobals = array();
        foreach($tree as $variable => $details) {
            $count      = $details['count'];
            $types      = implode('<br />', $details['type']);
            $status     = implode('<br />', $details['status']);
            $files      = implode('<br />', $details['file']);

            $theGlobals []= "<tr><td><span style=\"color: #0000BB\">$variable</span></td><td>$count</td><td>$types</td><td>$status</td><td>$files</td></tr>\n";
        }
        $theGlobals = implode('', $theGlobals);

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'GLOBALS', $theGlobals);
        $html = $this->injectBloc($html, 'TITLE', $section->title);
        $this->putBasedPage($section->file, $html);
    }

    private function generateInventoriesConstants(Section $section): void {
        $this->generateInventories($section, array('Constants/Constantnames'), 'List of all defined constants in the code.');
    }

    private function generateInventoriesClasses(Section $section): void {
        $this->generateInventories($section, array('Classes/Classnames'), 'List of all defined classes in the code.');
    }

    private function generateInventoriesInterfaces(Section $section): void {
        $this->generateInventories($section, array('Interfaces/Interfacenames'), 'List of all defined interfaces in the code.');
    }

    private function generateInventoriesTraits(Section $section): void {
        $this->generateInventories($section, array('Traits/Traitnames'), 'List of all defined traits in the code.');
    }

    private function generateInventoriesFunctions(Section $section): void {
        $this->generateInventories($section, array('Functions/Functionnames'), 'List of all defined functions in the code.');
    }

    private function generateInventoriesNamespaces(Section $section): void {
        $this->generateInventories($section, array('Namespaces/Namespacesnames'), 'List of all defined namespaces in the code.');
    }

    private function generateInventoriesUrl(Section $section): void {
        $this->generateInventories($section, array('Type/Url'), 'List of all URL mentioned in the code.');
    }

    private function generateInventoriesRegex(Section $section): void {
        $this->generateInventories($section, array('Type/Regex'), 'List of all Regex mentioned in the code.');
    }

    private function generateInventoriesSql(Section $section): void {
        $this->generateInventories($section, array('Type/Sql'), 'List of all SQL mentioned in the code.');
    }

    private function generateInventoriesGPCIndex(Section $section): void {
        $this->generateInventories($section, array('Type/GPCIndex'), 'List of all Email mentioned in the code.');
    }

    private function generateInventoriesEmail(Section $section): void {
        $this->generateInventories($section, array('Type/Email'), 'List of all incoming variables mentioned in the code.');
    }

    private function generateInventoriesMd5string(Section $section): void {
        $this->generateInventories($section, array('Type/Md5string'), 'List of all MD5-like strings mentioned in the code.');
    }

    private function generateInventoriesMime(Section $section): void {
        $this->generateInventories($section, array('Type/MimeType'), 'List of all Mime strings mentioned in the code.');
    }

    private function generateInventoriesPack(Section $section): void {
        $this->generateInventories($section, array('Type/Pack'), 'List of all packing format strings mentioned in the code.');
    }

    private function generateInventoriesPrintf(Section $section): void {
        $this->generateInventories($section, array('Type/Printf'), 'List of all printf(), sprintf(), etc. formats strings mentioned in the code.');
    }

    private function generateInventoriesPath(Section $section): void {
        $this->generateInventories($section, array('Type/Path'), 'List of all paths strings mentioned in the code.');
    }

    private function generateInventories(Section $section, array $analyzer, string $description): void {
       $results = $this->dump->fetchAnalysers($analyzer);

       $counts = array_count_values(array_column($results->toArray(), 'htmlcode'));
       $counts = array_map(function (string $x): string { return (int) $x === 1 ? '&nbsp;' : $x;}, $counts);

       $groups = array();
       foreach($results->toArray() as $row) {
           $groups[$row['htmlcode']][] = $row['file'];
       }
       uasort($groups, function (array $a, array $b): int { return count($a) <=> count($b);});

       $theTable = array();
       foreach($groups as $code => $list) {
           $c = count($list);
           $htmlList = '<ul><li>' . implode('</li><li>', $list) . '</li></ul>';
           $theTable []= "<tr><td>{$code}</td><td>$c</td><td>{$htmlList}</td></tr>";
       }

       $html = $this->getBasedPage($section->source);
       $html = $this->injectBloc($html, 'TITLE', $section->title);
       $html = $this->injectBloc($html, 'DESCRIPTION', $description);
       $html = $this->injectBloc($html, 'TABLE', implode(PHP_EOL, $theTable));
       $this->putBasedPage($section->file, $html);
    }

    private function generateInterfaceTree(Section $section): void {
        $res = $this->dump->getCitTree('interface');
        foreach($res->toArray() as $row) {
            if (empty($row['parent'])) {
                continue;
            }

            $parent = $row['parent'];
            if (!isset($list[$parent])) {
                $list[$parent] = array();
            }

            $list[$parent][] = $row['child'];
        }

        if (empty($list)) {
            $theTable = 'No interface were found in this repository.';
        } else {
            array_sub_sort($list);

            $secondaries = array_merge(...array_values($list));
            $top = array_diff(array_keys($list), $secondaries);

            $theTableArray = array();
            foreach($top as $t) {
                $theTableArray[] = '<ul class="tree">' . $this->extends2ul($t, $list) . '</ul>';
            }
            $theTable = implode(PHP_EOL, $theTableArray);
        }

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'TITLE', $section->title);
        $html = $this->injectBloc($html, 'DESCRIPTION', 'Here are the interface trees : the interfaces that are extended by another interface. Interface without extension are not represented here');
        $html = $this->injectBloc($html, 'CONTENT', $theTable);
        $this->putBasedPage($section->file, $html);

    }

    private function generateConstantTree(Section $section): void {
        $list = array();
        $res = $this->dump->fetchTable('constantOrder');
        foreach($res->toArray() as $row) {
            if (empty($row['built'])) {
                continue;
            }

            $built = $row['built'];
            if (!isset($list[$built])) {
                $list[$built] = array();
            }

            $list[$built][] = $row['building'];
        }

        if (empty($list)) {
            $theTable = 'No structured constant were found in this repository.';
        } else {
            array_sub_sort($list);

            $secondaries = array_merge(...array_values($list));
            $top = array_diff(array_keys($list), $secondaries);

            $theTableArray = array();
            foreach($top as $t) {
                $theTableArray[] = '<ul class="tree">' . $this->extends2ul($t, $list) . '</ul>';
            }
            $theTable = implode(PHP_EOL, $theTableArray);
        }

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'TITLE', $section->title);
        $html = $this->injectBloc($html, 'DESCRIPTION', 'Here are the constant trees : a constant (global or class) is build based on another constant. Constants built only with literals are not represented here.');
        $html = $this->injectBloc($html, 'CONTENT', $theTable);
        $this->putBasedPage($section->file, $html);

    }

    private function generateTraitMatrix(Section $section): void {
        // list of all traits, for building the table
        $traits = $this->dump->getCit('trait')->getColumn('name');

        // INIT
        $table = array_fill_keys($traits, array_fill_keys($traits, array()));

        // Get conflicts
        $res = $this->dump->getTraitConflicts();
        foreach($res->toArray() as $row) {
            $table[$row['t1']][$row['t2']][] = $row['method'];
        }

        // Get trait usage
        $res = $this->dump->getTraitUsage();
        $usage = $res->toHash('t1', 't2');

        $rows = array();
        foreach($table as $name => $row) {
            $cells = array();
            foreach($row as $t2 => $r) {
                $content = empty($r) ? '&nbsp;' : implode('(), ', $r) . '()';
                $background = isset($usage[$name][$t2]) ? ' bgcolor="darkgray"' : '';

                $cells[] = "<td$background>$content</td>";
            }
            $cells = implode('', $cells);
            $rows[] = "<tr><td>$name</td>$cells</tr>\n";
        }

        $cells = implode('</td><td>', $traits);
        $rows = implode('', $rows);
        $theTable = <<<HTML
<table class="table table-striped">
    <tr>
        <td>&nbsp;</td>
        <td>$cells</td>
    </tr>
    $rows
</table>
HTML;

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'TITLE', $section->title);
        $html = $this->injectBloc($html, 'DESCRIPTION', 'Here are the trait matrix. Conflicting methods between any two traits are listed in the cells : when they are used in the same class, those traits will require conflict resolutions. And dark gray cells are traits that are actually included one into the other.');
        $html = $this->injectBloc($html, 'CONTENT', $theTable);
        $this->putBasedPage($section->file, $html);
    }

    private function generateTraitTree(Section $section): void {
        $list = array();

        $res = $this->dump->getCitTree('trait');
        foreach($res->toArray() as $row) {
            if (empty($row['child'])) {
                continue;
            }

            $parent = $row['child'];
            if (!isset($list[$parent])) {
                $list[$parent] = array();
            }

            $list[$parent][] = $row['parent'];
        }

        if (empty($list)) {
            $theTable = 'No trait were found in this repository.';
        } else {
            array_sub_sort($list);

            $theTable = array();
            foreach(array_keys($list) as $t) {
                $theTable[] = '<ul class="tree">' . $this->extends2ul($t, $list) . '</ul>';
            }
            $theTable = implode(PHP_EOL, $theTable);
        }

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'TITLE', $section->title);
        $html = $this->injectBloc($html, 'DESCRIPTION', 'Here are the extension trees of the traits : a trait is extended when it uses another trait. Traits without any extension are not represented. The same trait may be mentionned several times, as trait may use an arbitrary number of traits.');
        $html = $this->injectBloc($html, 'CONTENT', $theTable);
        $this->putBasedPage($section->file, $html);
    }

    private function generateClassTree(Section $section): void {
        $list = array();

        $res = $this->dump->getCitTree('class');
        foreach($res->toArray() as $row) {
            if (empty($row['parent'])) {
                continue;
            }

            $parent = $row['parent'];
            if (!isset($list[$parent])) {
                $list[$parent] = array();
            }

            $list[$parent][] = $row['child'];
        }

        if (empty($list)) {
            $theTable = 'No class were found in this repository.';
        } else {
            array_sub_sort($list);

            $secondaries = array_merge(...array_values($list));
            $top = array_diff(array_keys($list), $secondaries);

            $theTable = array();
            foreach($top as $t) {
                $theTable[] = '<ul class="tree">' . $this->extends2ul($t, $list) . '</ul>';
            }
            $theTable = implode(PHP_EOL, $theTable);
        }

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'TITLE', 'Classes Tree');
        $html = $this->injectBloc($html, 'DESCRIPTION', 'Here are the classes tree, built with class extensions. Classes without any extension are not represented.');
        $html = $this->injectBloc($html, 'CONTENT', $theTable);
        $this->putBasedPage($section->file, $html);
    }

    private function extends2ul(string $root, array $paths, int $level = 0): string {
        static $done = array();

        if ($level === 0) {
            $done = array();
        }

        $return = array();
        foreach($paths[$root] as $sub) {
            if (isset($paths[$sub])){
                if (!isset($done[$sub]) && $level < 10) {
                    $done[$sub] = 1;
                    $secondary = $this->extends2ul($sub, $paths, $level + 1);
                    $return[] = $secondary;
                } else {
                    $return[] = '<li>' . $sub . '...(Recursive)</li>';
                }
            } else {
                $return[] = "<li class=\"treeLeaf\">$sub</li>";
                $done[$sub] = 1;
            }
        }
        $return = "<li>$root<ul>" . implode('', $return) . "</ul></li>\n";

        return $return;
    }

    private function generateExceptionTree(Section $section): void {
        $exceptions = array (
  'Throwable' =>
  array (
    'Error' =>
    array (
      'ParseError' =>
      array (
      ),
      'TypeError' =>
      array (
        'ArgumentCountError' =>
        array (
        ),
      ),
      'ArithmeticError' =>
      array (
        'DivisionByZeroError' =>
        array (
        ),
      ),
      'AssertionError' =>
      array (
      ),
    ),
    'Exception' =>
    array (
      'ErrorException' =>
      array (
      ),
      'ClosedGeneratorException' =>
      array (
      ),
      'DOMException' =>
      array (
      ),
      'LogicException' =>
      array (
        'BadFunctionCallException' =>
        array (
          'BadMethodCallException' =>
          array (
          ),
        ),
        'DomainException' =>
        array (
        ),
        'InvalidArgumentException' =>
        array (
        ),
        'LengthException' =>
        array (
        ),
        'OutOfRangeException' =>
        array (
        ),
      ),
      'RuntimeException' =>
      array (
        'OutOfBoundsException' =>
        array (
        ),
        'OverflowException' =>
        array (
        ),
        'RangeException' =>
        array (
        ),
        'UnderflowException' =>
        array (
        ),
        'UnexpectedValueException' =>
        array (
        ),
        'PDOException' =>
        array (
        ),
      ),
      'PharException' =>
      array (
      ),
      'ReflectionException' =>
      array (
      ),
    ),
  ),
);
        $list = array();

        $theTable = '';
        $res = $this->dump->fetchAnalysers(array('Exceptions/DefinedExceptions'));
        foreach($res->toArray() as $row) {
            if (!preg_match('/ extends (\S+)/', $row['fullcode'], $r)) {
                continue;
            }
            $parent = strtolower($r[1]);
            if ($parent[0] !== '\\') {
                $parent = "\\$parent";
            }

            if (!isset($list[$parent])) {
                $list[$parent] = array();
            }

            $list[$parent][] = $row['fullcode'];
        }

        array_sub_sort($list);
        $theTable = $this->tree2ul($exceptions, $list);

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'TITLE', $section->title);
        $html = $this->injectBloc($html, 'DESCRIPTION', '');
        $html = $this->injectBloc($html, 'CONTENT', $theTable);
        $this->putBasedPage($section->file, $html);
    }

    private function path2tree(array $paths): array {
        $return = array();

        $recursive = array();
        foreach($paths as $path) {
            $folders = explode('\\', $path);

            $first = empty($folders[0]) ? '\\' : $folders[0];

            if (!isset($return[$first])) {
                $return[$first] = array();
            }

            if (count($folders) > 2) {
                $recursive[$first] = 1;
            }
            $return[$first][] = implode('\\', array_slice($folders, 1));
        }

        foreach(array_keys($recursive) as $recurrent) {
            $return[$recurrent] = $this->path2tree($return[$recurrent]);
        }

        return $return;
    }

    private function pathtree2ul(array $path): string {
        if (empty($path)) {
            return '';
        }
        $return = array('<ul>');

        foreach($path as $k => $v) {
            $return []= '<li>';

            if (is_string($v)) {
                if (empty($v)) {
                    $return []= '<div style="font-weight: bold">\\</div>';
                } else {
                    $return []= '<div style="font-weight: bold">' . $v . '</div>';
                }
            } elseif (count($v) === 1) {
                if (empty($v[0])) {
                    if (empty($k)) {
                        $return []= '<div style="font-weight: bold">\\</div>';
                    } else {
                        $return []= '<div style="font-weight: bold">' . $k . '</div>';
                    }
                } else {
                    $return []= '<div style="font-weight: bold">' . $k . '</div>' . $this->pathtree2ul($v);
                }
            } else {
                $return []= '<div style="font-weight: bold">' . $k . '</div>' . $this->pathtree2ul($v);
            }

            $return []= '</li>';
        }
        $return []= '</ul>';

        return implode('', $return);
    }

    private function generateNamespaceTree(Section $section): void {
        $theTable = '';
        $res = $this->dump->fetchTable('namespaces');
        $res->order(function (array $a, array $b): int { return $a['namespace'] <=> $b['namespace'];});
                $res->map(function (array $x): array { $x['namespace'] = trim($x['namespace'], '\\'); return $x;});
        $paths = $res->getColumn('namespace');

        $paths = $this->path2tree($paths);
        $theTable = $this->pathtree2ul($paths);

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'TITLE', $section->title);
        $html = $this->injectBloc($html, 'DESCRIPTION', 'Here are the various namespaces in use in the code.');
        $html = $this->injectBloc($html, 'CONTENT', $theTable);
        $this->putBasedPage($section->file, $html);
    }

    private function tree2ul(array $tree,array $display): string {
        if (empty($tree)) {
            return '';
        }
        $return = '<ul>';

        foreach($tree as $k => $v) {
            $return .= '<li>';

            $parent = '\\' . strtolower((string) $k);
            if (isset($display[$parent])) {
                $return .= '<div style="font-weight: bold">' . $k . '</div><ul><li>' . implode('</li><li>', $display[$parent]) . '</li></ul>';
            } else {
                $return .= '<div style="font-weight: bold; color: darkgray">' . $k . '</div>';
            }

            if (is_array($v)) {
                $return .= $this->tree2ul($v, $display);
            }

            $return .= '</li>';
        }

        $return .= '</ul>';

        return $return;
    }

    private function generateVisibilitySuggestions(Section $section): void {
        $constants  = $this->generateVisibilityConstantSuggestions();
        $properties = $this->generateVisibilityPropertySuggestions();
        $methods    = $this->generateVisibilityMethodsSuggestions();

        $classes = array_unique(array_merge(array_keys($constants),
                                            array_keys($properties),
                                            array_keys($methods)));

        $visibilityTable = array(<<<'HTML'
<table class="table table-striped">
    <tr>
        <td>&nbsp;</td>
        <td>Name</td>
        <td>Value</td>
        <td>None (public)</td>
        <td>Public</td>
        <td>Protected</td>
        <td>Private</td>
        <td>Constant</td>
    </tr>
HTML
);

        foreach($classes as $id) {
            list(, $class) = explode(':', $id);
            $visibilityTable []= '<tr><td colspan="9">class ' . PHPsyntax($class) . '</td></tr>' . PHP_EOL .
                                (isset($constants[$id]) ? implode('', $constants[$id]) : '') .
                                (isset($properties[$id]) ? implode('', $properties[$id]) : '') .
                                (isset($methods[$id]) ? implode('', $methods[$id]) : '');
        }

        $visibilityTable []= '</table>';
        $visibilityTable = implode(PHP_EOL, $visibilityTable);

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'TITLE', $section->title);
        $html = $this->injectBloc($html, 'DESCRIPTION', 'Below, is a summary of all classes and their component\'s visiblity. Whenever a visibility is set and used at the right level, a green star is presented. Whenever it is set to a level, but could be updated to another, red and orange stars are mentioned. ');
        $html = $this->injectBloc($html, 'CONTENT', $visibilityTable);
        $this->putBasedPage($section->file, $html);
    }

    private function generateClassOptionSuggestions(Section $section): void {
        $finals  = $this->generateClassFinalSuggestions();
        $abstracts = $this->generateClassAbstractuggestions();

        $classes = array_unique(array_merge($finals, $abstracts));

        $visibilityTable = array();
        foreach($classes as $path => $fullcode) {
            $class = str_replace('{ /**/ } ', '', $fullcode);

            if (isset($finals[$path])) {
                $final =  '<i class="fa fa-star" style="color:red"></i>';
            } elseif (stripos($fullcode, 'final') !== false) {
                $final =  '&nbsp';
            } else {
                $final =  '<i class="fa fa-star" style="color:green"></i>';
            }

            if (isset($abstracts[$path])) {
                $abstract =  '<i class="fa fa-star" style="color:red"></i>';
            } elseif (stripos($fullcode, 'abstract') !== false) {
                $abstract =  '&nbsp';
            } else {
                $abstract =  '<i class="fa fa-star" style="color:green"></i>';
            }

            $visibilityTable[] = <<<HTML
<tr>
    <td colspan=\"9\">$final</td>
    <td colspan=\"9\">$abstract</td>
    <td colspan=\"9\">$class</td>
    <td colspan=\"9\">$path</td>
</tr>

HTML;
        }
        $visibilityTable = implode(PHP_EOL, $visibilityTable);

        $visibilityHtml = <<<HTML
<table class="table table-striped">
    <tr>
        <td>Final</td>
        <td>Abstract</td>
        <td>Name</td>
        <td>Path</td>
    </tr>
    $visibilityTable
    </table>
HTML;

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'TITLE', $section->title);
        $html = $this->injectBloc($html, 'DESCRIPTION', <<<'HTML'
Below, is a list of classes that may be updated with final or abstract. <br />

The red stars <i class="fa fa-star" style="color:red"></i> mention possible upgrade by using final or abstract keywords; 
The green stars <i class="fa fa-star" style="color:green"></i> mention a valid absence of the option (an extended class, that can't be final, ...); 
The absence of star report currently configured classes.  

HTML
);
        $html = $this->injectBloc($html, 'CONTENT', $visibilityHtml);
        $this->putBasedPage($section->file, $html);
    }

    private function generateClassFinalSuggestions(): array {
        $res = $this->dump->fetchAnalysers(array('Classes/CouldBeFinal'));

        $couldBeFinal = array();
        foreach($res->toArray() as $row) {
            if (!preg_match('/(class|interface|trait) (\S+) /i', $row['fullcode'], $classname)) {
                continue;
            }
            $fullnspath = $row['namespace'] . '\\' . strtolower($classname[2]);

            $couldBeFinal[$fullnspath] = $row['fullcode'];
        }

        return $couldBeFinal;
    }

    private function generateClassAbstractuggestions(): array {
        $res = $this->dump->fetchAnalysers(array('Classes/CouldBeAbstractClass'));

        $couldBeAbstract = array();
        foreach($res->toArray() as $row) {
            if (!preg_match('/(class|interface|trait) (\S+) /i', $row['fullcode'], $classname)) {
                continue;
            }
            $fullnspath = $row['namespace'] . '\\' . strtolower($classname[2]);

            $couldBeAbstract[$fullnspath] = $row['fullcode'];
        }

        return $couldBeAbstract;
    }

    private function generateVisibilityMethodsSuggestions(): array {
        $res = $this->dump->fetchAnalysers(array('Classes/CouldBePrivateMethod'));

        $couldBePrivate = array();
        foreach($res->toArray() as $row) {
            if (!preg_match('/(class|interface|trait) (\S+) /i', $row['class'], $classname)) {
                continue;
            }
            $fullnspath = $row['namespace'] . '\\' . strtolower($classname[2]);

            if (isset($couldBePrivate[$fullnspath])) {
                $couldBePrivate[$fullnspath][] = $row['fullcode'];
            } else {
                $couldBePrivate[$fullnspath] = array($row['fullcode']);
            }
        }

        $res = $this->dump->fetchAnalysers(array('Classes/CouldBeProtectedMethod'));
        $couldBeProtected = array();
        foreach($res->toArray() as $row) {
            if (!preg_match('/(class|interface|trait) (\S+) /i', $row['class'], $classname)) {
                continue;
            }
            $fullnspath = $row['namespace'] . '\\' . strtolower($classname[2]);

            if (isset($couldBeProtected[$fullnspath])) {
                $couldBeProtected[$fullnspath][] = $row['fullcode'];
            } else {
                $couldBeProtected[$fullnspath] = array($row['fullcode']);
            }
        }

        $res = $this->dump->fetchTableMethods();
        $res->filter(function (array $x): bool { return $x['type'] === 'class'; });

        $ranking = array(''          => 0,
                         'public'    => 1,
                         'protected' => 2,
                         'private'   => 3);

        $return = array();
        $theClass = '';
        $aClass = array();

        foreach($res->toArray() as $row) {
            if ($theClass != $row['fullnspath'] . ':' . $row['class']) {
                $return[$theClass] = $aClass;
                $theClass = $row['fullnspath'] . ':' . $row['class'];
                $aClass = array();
            }

            $visibilities = array('&nbsp;', '&nbsp;', '&nbsp;', '&nbsp;', '&nbsp;', '&nbsp;');
            $visibilities[$ranking[$row['visibility']]] = '<i class="fa fa-star" style="color:green"></i>';

            if (isset($couldBePrivate[$row['fullnspath']]) &&
                in_array($row['method'], $couldBePrivate[$row['fullnspath']], \STRICT_COMPARISON)) {
                    $visibilities[$ranking[$row['visibility']]] = '<i class="fa fa-star" style="color:red"></i>';
                    $visibilities[$ranking['private']] = '<i class="fa fa-star" style="color:green"></i>';
            }

            if (isset($couldBeProtected[$row['fullnspath']]) &&
                in_array($row['method'], $couldBeProtected[$row['fullnspath']], \STRICT_COMPARISON)) {
                    $visibilities[$ranking[$row['visibility']]] = '<i class="fa fa-star" style="color:red"></i>';
                    $visibilities[$ranking['protected']] = '<i class="fa fa-star" style="color:#FFA700"></i>';
            }

            $aClass[] = '<tr><td>&nbsp;</td><td>' . PHPSyntax($row['method']) . '</td><td class="exakat_short_text">' .
                                    implode('</td><td>', $visibilities)
                                 . '</td></tr>' . PHP_EOL;
        }

        $return[$theClass] = $aClass;
        unset($return['']);

        return $return;
    }

    private function generateVisibilityConstantSuggestions(): array {
        $res = $this->dump->fetchAnalysers(array('Classes/CouldBePrivateConstante'));

        $couldBePrivate = array();
        foreach($res->toArray() as $row) {
            if (!preg_match('/class (\S+) /i', $row['class'], $classname)) {
                continue; // it is an interface or a trait
            }

            $fullnspath = $row['namespace'] . '\\' . strtolower($classname[1]);

            if (!preg_match('/^(.+) = /i', $row['fullcode'], $code)) {
                continue;
            }

            if (isset($couldBePrivate[$fullnspath])) {
                $couldBePrivate[$fullnspath][] = $code[1];
            } else {
                $couldBePrivate[$fullnspath] = array($code[1]);
            }
        }

        $res = $this->dump->fetchAnalysers(array('Classes/CouldBeProtectedConstant'));
        $couldBeProtected = array();
        foreach($res->toArray() as $row) {
            if (!preg_match('/class (\S+) /i', $row['class'], $classname)) {
                continue; // it is an interface or a trait
            }
            $fullnspath = $row['namespace'] . '\\' . strtolower($classname[1]);

            if (!preg_match('/^(.+) = /i', $row['fullcode'], $code)) {
                continue;
            }

            if (isset($couldBeProtected[$fullnspath])) {
                $couldBeProtected[$fullnspath][] = $code[1];
            } else {
                $couldBeProtected[$fullnspath] = array($code[1]);
            }
        }

        $res = $this->dump->fetchTableClassConstants();
        $res->filter(function (array $x): bool { return $x['type'] === 'class'; });

        $theClass = '';
        $ranking = array(''          => 1,
                         'public'    => 2,
                         'protected' => 3,
                         'private'   => 4,
                         'constant'  => 5);
        $return = array();

        $aClass = array();
        foreach($res->toArray() as $row) {
            if ($theClass != $row['fullnspath'] . ':' . $row['class']) {
                $return[$theClass] = $aClass;
                $theClass = $row['fullnspath'] . ':' . $row['class'];
                $aClass = array();
            }

            $visibilities = array(PHPSyntax((string) $row['value']), '&nbsp;', '&nbsp;', '&nbsp;', '&nbsp;', '&nbsp;');
            $visibilities[$ranking[$row['visibility']]] = '<i class="fa fa-star" style="color:green"></i>';

            if (isset($couldBePrivate[$row['fullnspath']]) &&
                in_array($row['constant'], $couldBePrivate[$row['fullnspath']], \STRICT_COMPARISON)) {
                    $visibilities[$ranking[$row['visibility']]] = '<i class="fa fa-star" style="color:red"></i>';
                    $visibilities[$ranking['private']] = '<i class="fa fa-star" style="color:green"></i>';
            }

            if (isset($couldBeProtected[$row['fullnspath']]) &&
                in_array($row['constant'], $couldBeProtected[$row['fullnspath']], \STRICT_COMPARISON)) {
                    $visibilities[$ranking[$row['visibility']]] = '<i class="fa fa-star" style="color:red"></i>';
                    $visibilities[$ranking['protected']] = '<i class="fa fa-star" style="color:#FFA700"></i>';
            }

            $aClass[] = '<tr><td>&nbsp;</td><td>' . PHPSyntax($row['constant']) . '</td><td class="exakat_short_text">' .
                                    implode('</td><td>', $visibilities)
                                 . '</td></tr>' . PHP_EOL;
        }

        $return[$theClass] = $aClass;
        unset($return['']);

        return $return;
    }

    private function generateVisibilityPropertySuggestions(): array {

        $res = $this->dump->fetchAnalysers(array('Classes/CouldBePrivate'));
        $couldBePrivate = array();
        foreach($res->toArray() as $row) {
            preg_match('/(class|trait) (\S+) /i', $row['class'], $classname);
            assert(isset($classname[1]), 'Missing class in ' . $row['class']);
            $fullnspath = $row['namespace'] . '\\' . strtolower($classname[2]);

            preg_match('/(\$\S+)/i', $row['fullcode'], $code);
            assert(isset($code[1]), 'Missing class in ' . $row['fullcode']);

            if (isset($couldBePrivate[$fullnspath])) {
                $couldBePrivate[$fullnspath][] = $code[1];
            } else {
                $couldBePrivate[$fullnspath] = array($code[1]);
            }
        }

        $res = $this->dump->fetchAnalysers(array('Classes/CouldBeProtectedProperty'));
        $couldBeProtected = array();
        foreach($res->toArray() as $row) {
            preg_match('/(class|trait) (\S+) /i', $row['class'], $classname);
            $fullnspath = $row['namespace'] . '\\' . strtolower($classname[1]);

            preg_match('/(\$\S+)/', $row['fullcode'], $code);

            if (isset($couldBeProtected[$fullnspath])) {
                $couldBeProtected[$fullnspath][] = $code[1];
            } else {
                $couldBeProtected[$fullnspath] = array($code[1]);
            }
        }

        $res = $this->dump->fetchAnalysers(array('Classes/CouldBeClassConstant'));
        $couldBeConstant = array();
        foreach($res->toArray() as $row) {
            preg_match('/(class|trait) (\S+) /i', $row['class'], $classname);
            $fullnspath = $row['namespace'] . '\\' . strtolower($classname[1]);

            preg_match('/(\$\S+)/', $row['fullcode'], $code);

            if (isset($couldBeConstant[$fullnspath])) {
                $couldBeConstant[$fullnspath][] = $code[1];
            } else {
                $couldBeConstant[$fullnspath] = array($code[1]);
            }
        }

        $res = $this->dump->fetchTableProperty();
        $res->filter(function (array $x): bool { return $x['type'] === 'class'; });

        $theClass = '';
        $ranking = array(''          => 1,
                         'public'    => 2,
                         'protected' => 3,
                         'private'   => 4,
                         'constant'  => 5);
        $return = array();

        $aClass = array();
        foreach($res->toArray() as $row) {
            if ($theClass != $row['fullnspath'] . ':' . $row['class']) {
                $return[$theClass] = $aClass;
                $theClass = $row['fullnspath'] . ':' . $row['class'];
                $aClass = array();
            }

            list($row['property'], ) = explode(' = ', $row['property']);

            $visibilities = array(PHPSyntax($row['value']), '&nbsp;', '&nbsp;', '&nbsp;', '&nbsp;', '&nbsp;');
            $visibilities[$ranking[$row['visibility']]] = '<i class="fa fa-star" style="color:green"></i>';

            if (isset($couldBePrivate[$row['fullnspath']]) &&
                in_array($row['property'], $couldBePrivate[$row['fullnspath']], \STRICT_COMPARISON)) {
                    $visibilities[$ranking[$row['visibility']]] = '<i class="fa fa-star" style="color:red"></i>';
                    $visibilities[$ranking['private']] = '<i class="fa fa-star" style="color:green"></i>';
            }

            if (isset($couldBeProtected[$row['fullnspath']]) &&
                in_array($row['property'], $couldBeProtected[$row['fullnspath']], \STRICT_COMPARISON)) {
                    $visibilities[$ranking[$row['visibility']]] = '<i class="fa fa-star" style="color:red"></i>';
                    $visibilities[$ranking['protected']] = '<i class="fa fa-star" style="color:#FFA700"></i>';
            }

            if (isset($couldBeConstant[$row['fullnspath']]) &&
                in_array($row['property'], $couldBeConstant[$row['fullnspath']], \STRICT_COMPARISON)) {
                    $visibilities[$ranking['constant']] = '<i class="fa fa-star" style="color:black"></i>';
            }

            $aClass[] = '<tr><td>&nbsp;</td><td>' . PHPSyntax($row['property']) . '</td><td class="exakat_short_text">' .
                            implode('</td><td>', $visibilities)
                            . '</td></tr>' . PHP_EOL;
        }
        $return[$theClass] = $aClass;
        unset($return['']);

        return $return;
    }

    private function generateAlteredDirectives(Section $section): void {
        $alteredDirectives = array();
        $res = $this->dump->fetchAnalysers(array('Php/DirectivesUsage'));
        foreach($res->toArray() as $row) {
            $alteredDirectives []= '<tr><td>' . PHPSyntax($row['fullcode']) . "</td><td>$row[file]</td><td>$row[line]</td></tr>";
        }
        $alteredDirectives = implode(PHP_EOL, $alteredDirectives);

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'ALTERED_DIRECTIVES', $alteredDirectives);
        $html = $this->injectBloc($html, 'TITLE', $section->title);
        $this->putBasedPage($section->file, $html);
    }

    private function generateChangedClasses(Section $section): void {
        $changedClasses = '';
        $res = $this->dump->fetchTable('classChanges');

        if ($res->isEmpty() === true) {
            $changedClasses = 'No changes detected';
        } else {
            foreach($res->toArray() as $row) {
                if ($row['changeType'] === 'Member Visibility') {
                    $row['parentValue'] .= ' $' . $row['name'];
                    $row['childValue']   = ' $' . $row['name'];
                } elseif ($row['changeType'] === 'Member Default') {
                    $row['parentValue'] = '$' . $row['name'] . ' = ' . $row['parentValue'];
                    $row['childValue']  = '$' . $row['name'] . ' = ' . $row['childValue'];
                }

                $changedClasses .= '<tr><td>' . PHPSyntax($row['parentClass']) . '</td>' . PHP_EOL .
                                       '<td>' . PHPSyntax($row['parentValue']) . '</td>' . PHP_EOL .
                                       '</tr><tr>' .
                                       '<td>' . PHPSyntax($row['childClass']) . '</td>' . PHP_EOL .
                                       '<td>' . PHPSyntax($row['childValue']) . '</td>' . PHP_EOL .
                                       '</tr>' . PHP_EOL .
                                       '<tr><td colspan="2"><hr /></td></tr>';
            }
        }

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'CHANGED_CLASSES', $changedClasses);
        $html = $this->injectBloc($html, 'TITLE', $section->title);
        $this->putBasedPage($section->source, $html);
    }

    private function emptyResult(Section $section): void {
        $finalHTML = $this->getBasedPage('empty');

        $finalHTML = $this->injectBloc($finalHTML, 'DESCRIPTION',  'No result were found for this analysis.');
        $finalHTML = $this->injectBloc($finalHTML, 'TITLE', $section->title);
        $finalHTML = $this->injectBloc($finalHTML, 'CONTENT', '');
        $this->putBasedPage($section->file, $finalHTML);
    }

    private function generateClassDepth(Section $section): void {
        $finalHTML = $this->getBasedPage($section->source);

        // List of extensions used
        $res = $this->dump->fetchHashResults('Class Depth');
        if ($res->isEmpty()) {
            $this->emptyResult($section);

            return ;
        }

        $html = array();
        $data = array();
        foreach ($res->toArray() as $value) {
                $data[$value['key'] . ' level' . ($value['key'] == 1 ? '' : 's')] = $value['value'];

            $html []= '<div class="clearfix">
                      <div class="block-cell-name">' . $value['key'] . '</div>
                      <div class="block-cell-issue text-center">' . $value['value'] . '</div>
                  </div>';
        }
        $html = implode(PHP_EOL, $html);

        $finalHTML = $this->injectBloc($finalHTML, 'TOPFILE', $html);

        $highchart = new Highchart();
        $highchart->addSeries('filename',
                              array_keys($data),
                              array('name' => 'Depth', 'data' => array_values($data)),
                              );
        $blocjs = (string) $highchart;

        $finalHTML = $this->injectBloc($finalHTML, 'BLOC-JS',  $blocjs);
        $finalHTML = $this->injectBloc($finalHTML, 'TITLE', $section->title);
        $finalHTML = $this->injectBloc($finalHTML, 'TYPE', 'Class');

        $this->putBasedPage($section->file, $finalHTML);
    }

    private function generateClassSize(Section $section): void {
        $finalHTML = $this->getBasedPage($section->source);

        // List of extensions used
        $res = $this->dump->getCitBySize();

        $html = array();
        $data = array();
        foreach ($res->toArray() as $value) {
            if (count($data) < 50) {
                $data[$value['name']] = $value['size'];
            }

            $html []= '<div class="clearfix">
                      <div class="block-cell-name">' . $value['name'] . '</div>
                      <div class="block-cell-issue text-center">' . $value['size'] . '</div>
                  </div>';
        }
        $html = implode(PHP_EOL, $html);

        $finalHTML = $this->injectBloc($finalHTML, 'TOPFILE', $html);

        $highchart = new Highchart();
        $highchart->addSeries('filename',
                              array_keys($data),
                              array('name' => 'Class size (lines)', 'data' => array_values($data)),
                              );
        $blocjs = (string) $highchart;

        $finalHTML = $this->injectBloc($finalHTML, 'BLOC-JS',  $blocjs);
        $finalHTML = $this->injectBloc($finalHTML, 'TITLE', $section->title);
        $finalHTML = $this->injectBloc($finalHTML, 'TYPE', 'Class');

        $this->putBasedPage($section->file, $finalHTML);
    }

    private function generateTypehintStats(Section $section): void {
        $finalHTML = $this->getBasedPage($section->source);

        // List of extensions used
        $res = $this->dump->fetchHashResults('Typehinting stats');

        $data = array('object' => 0);
        $total = 0;
        foreach ($res->toArray() as $value) {
            if (in_array($value['key'], array('totalArguments',
                                               'totalFunctions', ))) {
                $total += (int) $value['value'];
                continue;
            }

            if (in_array($value['key'], array('\\array',
                                               '\callable',
                                               '\\int',
                                               '\\string',
                                               '\\void',
                                               '\\iterable',
                                               '\\bool',
                                               '\\float',
                                              ))) {
                $data[$value['key']] = $value['value'];
                continue;
            }

        if (strpos($value['key'], '\\') !== false) {
            $data['object'] += $value['value'];
        }

            $html []= '<div class="clearfix">
                      <div class="block-cell-name">' . $value['key'] . '</div>
                      <div class="block-cell-issue text-center">' . $value['value'] . '</div>
                  </div>';
        }

        $data['no type'] = $total - array_sum($data);
        arsort($data);

        $html = array();
        foreach($data as $name => $value) {
            $html []= <<<HTML
<div class="clearfix">
    <div class="block-cell-name">$name</div>
    <div class="block-cell-issue text-center">$value</div>
</div>

HTML;
        }
        $html = implode(PHP_EOL, $html);

        $finalHTML = $this->injectBloc($finalHTML, 'TOPFILE', $html);

        $highchart = new Highchart();
        $highchart->addSeries('filename',
                              array_keys($data),
                              array('name' => 'Typehint stats',
                                    'data' => array_values($data)),
                              );
        $blocjs = (string) $highchart;

        $finalHTML = $this->injectBloc($finalHTML, 'BLOC-JS',  $blocjs);
        $finalHTML = $this->injectBloc($finalHTML, 'TITLE', $section->title);
        $finalHTML = $this->injectBloc($finalHTML, 'TYPE', 'Class');

        $this->putBasedPage($section->file, $finalHTML);
    }

    private function generateMethodSize(Section $section): void {
        $finalHTML = $this->getBasedPage($section->source);

        // List of extensions used
        $res = $this->dump->getMethodsBySize();
        $res->order(function (array $a, array $b): int { return $b['size'] <=> $a['size'];});

        $html = array();
        $data = array();
        foreach ($res->toArray() as $value) {
            if (count($data) < 30) {
                $data[$value['name']] = $value['size'];
            }

            $html []= '<div class="clearfix">
                      <div class="block-cell-name">' . $value['name'] . '</div>
                      <div class="block-cell-issue text-center">' . $value['size'] . '</div>
                  </div>';
        }
        $html = implode(PHP_EOL, $html);

        $finalHTML = $this->injectBloc($finalHTML, 'TOPFILE', $html);

        $highchart = new Highchart();
        $highchart->addSeries('filename',
                              array_keys($data),
                              array('name' => 'Method size', 'data' => array_values($data)),
                              );
        $blocjs = (string) $highchart;

        $finalHTML = $this->injectBloc($finalHTML, 'BLOC-JS',  $blocjs);
        $finalHTML = $this->injectBloc($finalHTML, 'TITLE', $section->title);
        $finalHTML = $this->injectBloc($finalHTML, 'TYPE', 'Method');

        $this->putBasedPage($section->file, $finalHTML);
    }

    private function generateStats(Section $section): void {
        $results = new Stats();
        $report = $results->generate('', self::INLINE);
        $report = json_decode($report);

        $stats = array();
        foreach($report as $group => $hash) {
            $stats []= "<tr><td colspan=2 bgcolor=\"#BBB\">$group</td></tr>";

            foreach($hash as $name => $count) {
                $stats []= "<tr><td>$name</td><td>$count</td></tr>";
            }
        }
        $stats = implode(PHP_EOL, $stats);

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'STATS', $stats);
        $html = $this->injectBloc($html, 'TITLE', $section->title);
        $this->putBasedPage($section->source, $html);
    }

    private function generateComplexExpressions(Section $section): void {
        $results = $this->dump->fetchAnalysers(array('Structures/ComplexExpression'), array('phpsyntax' => array('fullcode' => 'htmlcode')));

        $expr = $results->getColumn('fullcode');
        $counts = array_count_values($expr);

        $expressions = '';
        foreach($results->toArray() as $row) {
            $expressions .= "<tr><td>{$row['file']}:{$row['line']}</td><td>{$counts[$row['fullcode']]}</td><td>{$row['htmlcode']}</td></tr>\n";
        }

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'BLOC-EXPRESSIONS', $expressions);
        $html = $this->injectBloc($html, 'TITLE', $section->title);
        $this->putBasedPage($section->source, $html);
    }

    protected function generateCodes(Section $section): void {
        $path = "{$this->tmpName}/data/sources";
        $pathToSource = dirname($this->tmpName) . '/code';
        mkdir($path, 0755);

        $filesList = $this->dump->fetchTable('files')->toArray();
        $files = '';
        $dirs = array('/' => 1);
        foreach($filesList as $row) {
            $subdirs = explode('/', trim(dirname($row['file']), '/'));
            $dir = '';
            foreach($subdirs as $subdir) {
                $dir .= "/$subdir";
                if (!isset($dirs[$dir])) {
                    mkdir($path . $dir, 0755);
                    $dirs[$dir] = 1;
                }
            }

            $sourcePath = "$pathToSource$row[file]";
            if (!file_exists($sourcePath)) {
                continue;
            }

            $id = str_replace('/', '_', $row['file']);
            $source = @highlight_file($sourcePath, \RETURN_VALUE);
            $files .= '<li><a href="#" id="' . $id . '" class="menuitem">' . makeHtml($row['file']) . "</a></li>\n";
            $source = substr($source, 6, -8);
            $source = preg_replace_callback('#<br />#is', function (array $x): string {
                static $i = 0;

                return '<br /><a name="l' . ++$i . '" />';
            }, $source);
            file_put_contents("$path$row[file]", $source);
        }

        $blocjs = <<<'JAVASCRIPT'
<script>
  "use strict";

  $('.menuitem').click(function(event){
    $('#results').load("sources/" + event.target.text);
    $('#filename').html(event.target.text + '  <span class="caret"></span>');
  });

  var fileParam = window.location.hash.split('file=')[1];
  if(fileParam !== undefined) {
    var limit = fileParam.indexOf('&');
    if (limit !== -1) {
        fileParam = fileParam.substr(0, limit);
    }
    $('#results').load("sources/" + fileParam);
    $('#filename').html(fileParam + '  <span class="caret"></span>');
  }

  var line = window.location.hash.split('line=')[1];
  if(line !== undefined) {
        window.location.hash = 'l' + line;
  }
  
  </script>
JAVASCRIPT;
        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'BLOC-JS', $blocjs);
        $html = $this->injectBloc($html, 'FILES', $files);
        $html = $this->injectBloc($html, 'TITLE', $section->title);

        $this->putBasedPage($section->file, $html);
    }

    private function generateFileDependencies(Section $section): void {
        $res = $this->dump->fetchTable('filesDependencies');
        $res->filter(function (array $x): bool { return ($x['included'] !== $x['including']) && in_array($x['type'], array('IMPLEMENTS', 'EXTENDS', 'INCLUDE', 'NEW'));});

        $nodes = array();
        foreach($res->toArray() as $row) {
            if (isset($nodes[$row['including']][$row['included']])) {
                $nodes[$row['including']][$row['included']] .= ', ' . $row['type'];
            } else {
                $nodes[$row['including']][$row['included']] = $row['type'];
            }
        }

        $next = array();
        foreach($nodes as $in => $out) {
            $set = false;

            foreach($next as $file => &$inc) {
                if ($file === $in) {
                    $inc = $out;
                    $set = true;
                }
            }

            if ($set === false) {
                $next[$in] = $out;
            }
        }
        unset($out);

        foreach($next as $in => &$out) {
            $out = array_keys($out);
            sort($out);
        }
        unset($out);

        if (empty($next)) {
            $secondaries = array();
        } else {
            $secondaries = array_merge(...array_values($next));
        }
        $top = array_diff(array_keys($next), $secondaries);

        $theTable = array();
        foreach($top as $t) {
            $theTable[] = '<ul class="tree">' . $this->extends2ul($t, $next) . '</ul>';
        }
        $theTable = implode(PHP_EOL, $theTable);

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'TITLE', $section->title);
        $html = $this->injectBloc($html, 'DESCRIPTION', 'This is the list of file dependencies. The top files require the bottom files to be included to be properly running. This dependency tree covers class usage : new, ::, extends and implements.');
        $html = $this->injectBloc($html, 'CONTENT', $theTable);
        $this->putBasedPage($section->file, $html);
    }

    private function generateIdenticalFiles(Section $section): void {
        $res = $this->dump->getIdenticalFiles();

        $theTable = array();
        foreach($res->toArray() as $row) {
            $list = str_replace(',', "</li>\n<li>", $row['list']);

            $theTable[] = <<<HTML
<tr>
    <td>$row[count]</td>
    <td>
        <ul>
            <li>$list</li>
        </ul>
    </td>
</tr>
HTML;
        }
        $theTable = implode(PHP_EOL, $theTable);

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'IDENTICAL', $theTable);
        $html = $this->injectBloc($html, 'TITLE', $section->title);
        $this->putBasedPage($section->file, $html);
    }

    private function generateConcentratedIssues(Section $section): void {
        $list = $this->rulesets->getRulesetsAnalyzers(array('Analyze'));

        $res = $this->dump->getConcentratedIssues($list);

        $table = array();
        foreach($res->toArray() as list('line' => $line, 'file' => $file, 'count' => $count, 'list' => $list)) {
            $listHtml = array();
            foreach(explode(',', $list) as $l) {
                $listHtml[] = '<li>' . $this->makeDocLink($l) . '</li>';
            }
            $listHtml = '<ul>' . implode(PHP_EOL, $listHtml) . '</ul>';
            $table[] = "<tr><td>$file:$line</td><td>$count</td><td>$listHtml</td></tr>\n";
        }

        $table = implode(PHP_EOL, $table);

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'BLOC-EXPRESSIONS', $table);
        $html = $this->injectBloc($html, 'TITLE', $section->title);
        $this->putBasedPage($section->file, $html);
    }

    private function generateConfusingVariables(Section $section): void {
        $data = new Data\CloseNaming($this->dump);
        $results = $data->prepare();
        $reasons = array('_'       => 'One _',
                         'numbers' => 'One digit',
                         'swap'    => 'Partial inversion',
                         'one'     => 'One letter',
                         'case'    => 'Case',
                         );

        $table = array();
        foreach($results as $variable => $close) {
            $confused = array();

            foreach($close as $reason => $variables) {
                $list = '<ul><li>' . implode('</li><li>', $variables) . "</li></ul>\n";
                $confused[] = "<tr><td>$list</td><td>{$reasons[$reason]}</td></tr>\n";
            }

            $count = count($close);
            $first = array_shift($confused);
            $table[] = str_replace('<tr>', "<tr><td rowspan=\"$count\">$variable</td>", $first) . PHP_EOL . implode('', $confused);
        }
        $table = implode(PHP_EOL, $table);

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'CONTENT', $table);
        $html = $this->injectBloc($html, 'TITLE', $section->title);
        $this->putBasedPage($section->file, $html);
    }

    protected function makeIcon(string $tag): string {
        switch($tag) {
            case self::YES :
                return '<i class="fa fa-check-square-o"></i>';
            case self::NO :
                return '<i class="fa fa-square-o"></i>';
            case self::NOT_RUN :
                return '<i class="fa fa-ban"></i>';
            case self::INCOMPATIBLE :
                return '<i class="fa fa-remove"></i>';
            default :
                return '&nbsp;';
        }
    }

    private function Bugfixes_cve(string $cve): string {
        if (empty($cve)) {
            return '-';
        }

        if (strpos($cve, ', ') === false) {
            $cveHtml = '<a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=' . $cve . '">' . $cve . '</a>';
        } else {
            $cves = explode(', ', $cve);
            $cveHtml = array();
            foreach($cves as $cve) {
                $cveHtml[] = '<a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=' . $cve . '">' . $cve . '</a>';
            }
            $cveHtml = implode(',<br />', $cveHtml);
        }

        return $cveHtml;
    }

    protected function Compatibility(int $count, string $analyzer): string {
        if ($count === Analyzer::VERSION_INCOMPATIBLE) {
            return '<i class="fa fa-ban" style="color: orange"></i>';
        } elseif ($count === Analyzer::CONFIGURATION_INCOMPATIBLE) {
            return '<i class="fa fa-cogs" style="color: orange"></i>';
        } elseif ($count === 0) {
            return '<i class="fa fa-check-square-o" style="color: green"></i>';
        } else {
            return '<i class="fa fa-warning" style="color: red"></i>&nbsp;<a href="compatibility_issues.html#analyzer=' . $this->toId($analyzer) . '">' . $count . ' warnings</a>';
        }
    }

    protected function toId(string $name): string {
        return str_replace(array('/', '*', '(', ')', '.'), '_', strtolower($name));
    }

    protected function toOnlineId(string $name): string {
        return str_replace(array(' ', '(', ')', '/'), '-', strtolower($name));
    }

    protected function makeAuditDate(string &$finalHTML): void {
        $audit_date = 'Audit date : ' . date('d-m-Y h:i:s', time());
        $audit_name = $this->dump->fetchHash('audit_name')->toString();
        if (!empty($audit_name)) {
            $audit_date .= " - &quot;$audit_name&quot;";
        }

        $exakat_version = $this->dump->fetchHash('exakat_version')->toString();
        $exakat_build = $this->dump->fetchHash('exakat_build')->toString();
        $audit_date .= " - Exakat $exakat_version ($exakat_build)";
        $finalHTML = $this->injectBloc($finalHTML, 'AUDIT_DATE', $audit_date);
    }

    protected function getVCSInfo(): array {
        $info = array();

        $vcsClass = Vcs::getVCS($this->config);
        $vcsName = explode('\\', $vcsClass);
        $vcsName = array_pop($vcsName);
        switch($vcsName) {
            case 'Git':
                $info[] = array('Git URL', $this->dump->fetchHash('vcs_url')->toString());

                $res = $this->dump->fetchHash('vcs_branch')->toString();
                if (!empty($res)) {
                    $info[] = array('Git branch', trim($res));
                }

                $res = $this->dump->fetchHash('vcs_revision')->toString();
                if (!empty($res)) {
                    $info[] = array('Git commit', trim($res));
                }
                break 1;

            case 'Svn':
                $info[] = array('SVN URL', $this->dump->fetchHash('vcs_url')->toString());
                break 1;

            case 'Bazaar':
                $info[] = array('Bazaar URL', $this->dump->fetchHash('vcs_url')->toString());
                break 1;

            case 'Composer':
                $info[] = array('Package', $this->dump->fetchHash('vcs_url')->toString());
                break 1;

            case 'Mercurial':
                $info[] = array('Hg URL', $this->dump->fetchHash('vcs_url')->toString());
                break 1;

            case 'Copy':
                $info[] = array('Original path', $this->dump->fetchHash('vcs_url')->toString());
                break 1;

            case 'Symlink':
                $info[] = array('Original path', $this->dump->fetchHash('vcs_url')->toString());
                break 1;

            case 'Tarbz':
                $info[] = array('Source URL', $this->dump->fetchHash('vcs_url')->toString());
                break 1;

            case 'Targz':
                $info[] = array('Source URL', $this->dump->fetchHash('vcs_url')->toString());
                break 1;

            default :
                $info[] = array('Repository URL', 'Downloaded archive');
        }

        return $info;
    }

    protected function makeDocLink(string $analyzer): string {
        $docs = $this->docs->getDocs($analyzer, 'name');
        assert(!is_array($docs), "Missing docs('name') for $analyzer");
        return "<a href=\"analyses_doc.html#{$this->toId($analyzer)}\" id=\"{$this->toId($analyzer)}\"><i class=\"fa fa-book\" style=\"font-size: 14px\"></i></a> &nbsp; $docs";
    }

    protected function toHtmlList(array $array): string {
        return '<ul><li>' . implode("</li>\n<li>", $array) . '</li></ul>';
    }

    protected function getTotalAnalyzer(): array {
        return $this->dump->getTotalAnalyzer();
    }

    protected function generateAppinfo(Section $section): void {
        $data = new Data\Appinfo($this->dump);
        $data->prepare();

        $list = array();
        $originals = $data->originals();
        foreach($data->values() as $group => $points) {
            $listPoint = array();
            foreach($points as $point => $status) {

                if (isset($originals[$group][$point], $this->frequences[$originals[$group][$point]])) {
                    $percentage = $this->frequences[$originals[$group][$point]];
                    $percentageDisplay = "$percentage %";
                } else {
                    $percentage = 0;
                    $percentageDisplay = '&nbsp;';
                }

                $statusIcon = $this->makeIcon($status);
                $htmlPoint = makeHtml($point);
                $listPoint[] = <<<HTML
<li><div style="width: 90%; text-align: left;display: inline-block;">$statusIcon&nbsp;$htmlPoint&nbsp;</div><div style="display: inline-block; width: 10%;"><span class="progress progress-sm"><div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100" style="width: $percentage%; color:black;">$percentageDisplay</div><div>&nbsp;</div></span></li>
HTML;
            }

            $listPoint = implode(PHP_EOL, $listPoint);
            $list[] = <<<HTML
        <ul class="sidebar-menu">
          <li class="treeview">
            <a href="#"><i class="fa fa-certificate"></i> <span>$group</span><i class="fa fa-angle-left pull-right"></i></a>
            <ul class="treeview-menu">
                $listPoint
            </ul>
          </li>
        </ul>
HTML;
        }

        $list = implode("\n", $list);
        $list = <<<HTML
        <div class="sidebar">
$list
        </div>
HTML;

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'APPINFO', $list);
        $html = $this->injectBloc($html, 'TITLE', $section->title);
        $this->putBasedPage($section->file, $html);
    }

    protected function generateInventoriesEncoding(Section $section): void {
        // List of indentation used
        $res = $this->dump->fetchHashResults('Mbstring Encodings');
        if ($res->isEmpty()) {
            $this->emptyResult($section);

            return ;
        }

        $values = $res->toHash('key', 'value');
        asort($values);

        $theTable = array();
        foreach($values as $encoding => $count) {
            $codeHtml = PHPSyntax($encoding);
            $theTable []= "<tr><td>{$codeHtml}</td><td>$count</td><td>&nbsp</td></tr>";
        }

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'TITLE', $section->title);
        $html = $this->injectBloc($html, 'DESCRIPTION', 'Names of the encoding used in the code');
        $html = $this->injectBloc($html, 'TABLE', implode(PHP_EOL, $theTable));
        $this->putBasedPage($section->file, $html);
    }

    protected function generateInventoriesOpenSSLCiphers(Section $section): void {
        // List of indentation used
        $res = $this->dump->fetchHashResults('OpenSSL Ciphers');

        $values = $res->toHash('key', 'value');
        asort($values);

        $theTable = array();
        foreach($values as $encoding => $count) {
            $codeHtml = PHPSyntax($encoding);
            $theTable []= "<tr><td>{$codeHtml}</td><td>$count</td><td>&nbsp</td></tr>";
        }

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'TITLE', $section->title);
        $html = $this->injectBloc($html, 'DESCRIPTION', 'List of all the OpenSSL cipher used in the code.');
        $html = $this->injectBloc($html, 'TABLE', implode(PHP_EOL, $theTable));
        $this->putBasedPage($section->file, $html);
    }

    protected function generateInventoriesProtocols(Section $section): void {
        // List of indentation used
        $res = $this->dump->fetchHashResults('Protocols');

        $values = $res->toHash('key', 'value');
        asort($values);

        $theTable = array();
        foreach($values as $encoding => $count) {
            $codeHtml = PHPSyntax($encoding);
            $theTable []= "<tr><td>{$codeHtml}</td><td>$count</td><td>&nbsp</td></tr>";
        }

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'TITLE', $section->title);
        $html = $this->injectBloc($html, 'DESCRIPTION', 'List of all PHP protocols used in the code.');
        $html = $this->injectBloc($html, 'TABLE', implode(PHP_EOL, $theTable));
        $this->putBasedPage($section->file, $html);
    }    

    protected function generateFixesRector(Section $section): void {
        $rector = new Rector();
        $report = $rector->generate('', self::INLINE);

        $configline = trim($report);
        $configline = str_replace(array(' ', "\n") , array('&nbsp;', "<br />\n", ), $configline);

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'COMPILATION', $configline);
        $html = $this->injectBloc($html, 'TITLE', $section->title);

        $this->putBasedPage($section->file, $html);
    }

    protected function generateFixesPhpCsFixer(Section $section): void {
        $phpcsfixer = new Phpcsfixer();
        $report = $phpcsfixer->generate('', self::INLINE);

        $configline = trim($report);
        $configline = PHPSyntax($configline);

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'COMPILATION', $configline);
        $html = $this->injectBloc($html, 'TITLE', $section->title);

        $this->putBasedPage($section->file, $html);
    }

    protected function generateIndentationLevelsBreakdown(Section $section): void {
        // List of indentation used
        $res = $this->dump->fetchHashResults('Dump/IndentationLevels');
        if ($res->isEmpty()) {
            $this->emptyResult($section);

            return ;
        }

        $html = array();
        $data = array();
        foreach ($res->toArray() as $value) {
            $data[$value['key'] . ' level '] = (int) $value['value'];

            $html []= '<div class="clearfix">
                      <div class="block-cell-name">' . $value['key'] . ' levels</div>
                      <div class="block-cell-issue text-center">' . $value['value'] . '</div>
                  </div>';
        }
        $html = implode(PHP_EOL, $html);

        $this->generateGraphList($section->file, $section->title, 'Indentation levels', $data, $html);
    }

    private function generateTypehintSuggestions(Section $section): void {
//        $constants  = $this->generateVisibilityConstantSuggestions();
//        $properties = $this->generateVisibilityPropertySuggestions();
        $methods    = $this->generateTypehintMethodsSuggestions();

        $classes = array_unique(array_merge(array_keys($methods)));

        $headers = <<<'HTML'
    <tr>
        <td>&nbsp;</td>
        <td>Method</td>
        <td>Argument</td>
        <td>Typehint</td>
        <td>Default</td>
    </tr>
HTML;

        $visibilityTable = array('<table class="table table-striped">',
                                 $headers,
                                 );

        foreach($classes as $id) {
            list(, $class) = explode(':', $id);
            $visibilityTable []= '<tr><td colspan="9">' . PHPsyntax($class) . '</td></tr>' . PHP_EOL .
                                $headers . PHP_EOL .
//                                (isset($constants[$id])  ? implode('', $constants[$id])  : '') .
//                                (isset($properties[$id]) ? implode('', $properties[$id]) : '') .
                                (isset($methods[$id]) ? implode('', $methods[$id]) : '');
        }

        $visibilityTable []= '</table>';
        $visibilityTable = implode(PHP_EOL, $visibilityTable);

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'TITLE', $section->title);
        $html = $this->injectBloc($html, 'DESCRIPTION', 'Below, is a summary of all classes and their parameters\'s typehinting status. ');
        $html = $this->injectBloc($html, 'CONTENT', $visibilityTable);
        $this->putBasedPage($section->file, $html);
    }

    protected function generateDereferencingLevelsBreakdown(Section $section): void {
        // List of indentation used
        $res = $this->dump->fetchHashResults('Dump/DereferencingLevels');
        if ($res->isEmpty()) {
            $this->emptyResult($section);
            return ;
        }

        $html = array();
        $data = array();
        foreach ($res->toArray() as $value) {
            $data["'{$value['key']} level'"] = (int) $value['value'];

            $html []= '<div class="clearfix">
                      <div class="block-cell-name">' . $value['key'] . ' levels</div>
                      <div class="block-cell-issue text-center">' . $value['value'] . '</div>
                  </div>';
        }
        $html = implode(PHP_EOL, $html);

        $this->generateGraphList($section->file, $section->title, 'Dereferencing levels', $data, $html);
    }

    private function generateTypehintMethodsSuggestions(): array {
        $res = $this->dump->fetchTableMethodsByArgument();
        $arguments = array();
        foreach($res->toArray() as $row) {
            $theMethod = $row['fullnspath'];
            $visibilities = array($row['typehint'], $row['init']);

            $argument = '<tr><td>&nbsp;</td><td>&nbsp;</td><td>' . PHPSyntax($row['argument']) . '</td><td class="exakat_short_text">' .
                                    implode('</td><td>', $visibilities)
                                 . '</td></tr>' . PHP_EOL;

            array_collect_by($arguments, $theMethod, $argument);
        }

        $return = array();
        $theClass = '';
        $res = $this->dump->fetchTableMethodsByReturntype();
        foreach($res->toArray() as $row) {
            $theClass = $row['fullnspath'];
            $visibilities = array($row['returntype'], '&nbsp;');

            $method = '<tr><td>&nbsp;</td><td>' . PHPSyntax($row['method']) . '</td><td>&nbsp;</td><td class="exakat_short_text">' .
                                    implode('</td><td>', $visibilities)
                                 . '</td></tr>' . PHP_EOL;
            $method .= implode(PHP_EOL, $arguments[$row['fullnspath'] . '::' . mb_strtolower($row['method'])] ?? array());

            array_collect_by($return, $row['fullnspath'] . ':' . $row['theClass'], $method);
        }

        unset($return['']);

        return $return;
    }

    protected function generateForeachFavorites(Section $section): void {
        // List of indentation used
        $res = $this->dump->fetchHashResults('Foreach Names');
        $res->map(function (array $x): array { $x['key'] = str_replace('&', '', $x['key']); return $x; });

        // merging results from &$v and $v into one
        $data = array();
        foreach ($res->toArray() as $value) {
            $data[$value['key']] =
                (int) $value['value'] + ($data[$value['key']] ?? 0);
        }
        arsort($data);

        $html = array();
        foreach ($data as $key => $value) {
            $html []= '<div class="clearfix">
                      <div class="block-cell-name">' . $key . '</div>
                      <div class="block-cell-issue text-center">' . $value . '</div>
                  </div>';
        }
        $html = implode(PHP_EOL, $html);

        $this->generateGraphList($section->file, $section->title, 'Foreach names', $data, $html);
    }

    protected function generateUsedMagic(Section $section): void {
        $results = $this->dump->fetchAnalysers(array('Classes/MagicMethod',
                                                     'Classes/MagicProperties',
                                                     ));
        $results->load();

        $expr = $results->getColumn('fullcode');
        $expr = array_map(function (string $x): string { return trim($x, '{}');}, $expr);
        $counts = array_count_values($expr);

        $expressions = '';
        foreach($results->toArray() as $row) {
            $row['fullcode'] = trim($row['fullcode'], '{}');
            $fullcode = PHPSyntax($row['fullcode']);
            $expressions .= "<tr><td>{$row['file']}:{$row['line']}</td><td>{$counts[$row['fullcode']]}</td><td>$fullcode</td></tr>\n";
        }

        $html = $this->getBasedPage($section->source);
        $html = $this->injectBloc($html, 'TABLE', $expressions);
        $html = $this->injectBloc($html, 'DESCRIPTION', 'List of magic properties used in the code');
        $html = $this->injectBloc($html, 'TITLE', $section->title);
        $this->putBasedPage($section->file, $html);
    }

}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;

use stdClass;

class Filedependencieshtml extends Reports {
    const FILE_EXTENSION = '';
    const FILE_FILENAME  = 'dependencies';

    private $finalName   = '';
    private $tmpName     = '';

    public function generate(string $folder, string $name= 'dependencies'): string {
        $this->finalName = "$folder/$name";
        $this->tmpName   = "{$this->config->tmp_dir}/.$name";

        copyDir("{$this->config->dir_root}/media/dependencies", $this->tmpName);

        $res = $this->dump->fetchTable('filesDependencies');
        $res = array_filter($res->toArray(), function (array $x) { return $x['including'] !== $x['included']; });

        $json = (object) array('edges' => array(),
                               'nodes' => array());
        $in = array();
        $out = array();

        foreach($res as $row) {
            if (isset($json->nodes[$row['including']])){
                $source = $json->nodes[$row['including']];
                ++$in[$source];
            } else {
                $source = count($json->nodes);
                $json->nodes[$row['including']] = $source;
                $in[$source] = 0;
                $out[$source] = 0;
            }

            if (isset($json->nodes[$row['included']])){
                $destination = $json->nodes[$row['included']];
                ++$out[$destination];
            } else {
                $destination = count($json->nodes);
                $json->nodes[$row['included']] = $destination;
                $in[$destination] = 0;
                $out[$destination] = 0;
            }

            $R = new stdClass();
            $R->source = $source;
            $R->target = $destination;
            $R->caption = $row['type'];
            $json->edges[] = $R;

            $this->count();
        }

        $json->nodes = array_flip($json->nodes);
        foreach($in as $id => $i) {
            $json->nodes[$id] = (object) array('id'       => $id,
                                               'caption'  => $json->nodes[$id],
                                               'incoming' => $i,
                                               'outgoing' => $out[$id]);
        }

        file_put_contents($this->tmpName . '/fidep.json', json_encode($json));

        // Finalisation
        if ($this->finalName !== '/') {
            rmdirRecursive($this->finalName);
        }

        if (file_exists($this->finalName)) {
            display($this->finalName . " folder was not cleaned. Please, remove it before producing the report. Aborting report\n");
            return '';
        }

        rename($this->tmpName, $this->finalName);

        return '';
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;


class StubsJson extends Reports {
    const FILE_EXTENSION = 'json';
    const FILE_FILENAME  = 'stubs';

    const INDENTATION = '    ';

    public function _generate(array $analyzerList): string {
        $data = array('versions' => array());

        // namespaces
        $res = $this->dump->fetchTable('namespaces');
        foreach($res->toArray() as $namespace) {
            $data['versions'][$namespace['namespace']] = array();

            $namespaces[$namespace['id']] = $namespace['namespace'];
        }

        // constants
        $res = $this->dump->fetchTable('constants');
        foreach($res->toArray() as $constant) {
            $details = array('type'     => $constant['type'],
                             'value'    => $constant['value'],
                             'phpdoc'   => $constant['phpdoc'] ?? '',
                             );
            $data['versions'][$namespaces[$constant['namespaceId']]]['constants'][$constant['constant']] = $details;
        }


        $methods = array();
        $function2ns = array();
        // functions
        $res = $this->dump->fetchTable('functions');
        foreach($res->toArray() as $function) {
            if ($function['type'] === 'closure') { continue; }

            $details = array('returntypes' => explode('|', $function['returntype']),
                             'reference'   => $function['reference'] === 1,
                             'phpdoc'      => $function['phpdoc'],
                             );
            $data['versions'][$namespaces[$function['namespaceId']]]['functions'][$function['function']] = $details;

            $methods[$function['id']] = $function['function'];
            $function2ns[$function['id']] = $function['namespaceId'];
        }

        // classes, interfaces, traits
        $cits = array();
        $cits2ns = array();
        $cits2type = array();
        $citsFqn = array();
        $res = $this->dump->fetchTable('cit');
//        print_r($res->toArray());die();
        foreach($res->toArray() as $cit) {
            $cits[$cit['id']]         = $cit['name'];
            $citsFqn[$cit['id']]      = strtolower($namespaces[$cit['namespaceId']].$cit['name']);
        }
        
        foreach($res->toArray() as $cit) {
            $extendsId = ((int) $cit['extends'] > 0) ? $citsFqn[$cit['extends']] ?? '\Unkown' : $cit['extends'];

            $details = array('abstract'   => $cit['abstract'] === 1,
                             'final'      => $cit['final'] === 1,
                             'extends'    => $extendsId,
                             'implements' => array(),
                             'use'        => array(),
                             'useoptions' => array(),
                             );
            $data['versions'][$namespaces[$cit['namespaceId']]][$cit['type']][$cit['name']] = $details;

            $cits2ns[$cit['id']]   = $cit['namespaceId'];
            $cits2type[$cit['id']] = $cit['type'];
        }
//        print_r($cits2ns);

        // extensions
        $res = $this->dump->fetchTable('cit_implements');
        foreach($res->toArray() as $cit) {
            $implementsId = ((int) $cit['implements'] > 0) ? $citsFqn[$cit['implements']] ?? '\Unkown' : $cit['implements'];

            $data['versions'][$namespaces[$cits2ns[$cit['implementing']]]][$cits2type[$cit['implementing']]][$cits[$cit['implementing']]][$cit['type']][] = $implementsId;
            if ($cit['type'] === 'use') {
                $data['versions'][$namespaces[$cits2ns[$cit['implementing']]]][$cits2type[$cit['implementing']]][$cits[$cit['implementing']]]['useoptions'] = explode(';', $cit['options']);
            }
        }
//        print_r($cits);die();

        // class constants
        $res = $this->dump->fetchTable('classconstants');
//        print_r($res->toArray());die();
        foreach($res->toArray() as $classconstant) {
            $details = array('value'        => $classconstant['value'],
                             'visibility'   => $classconstant['visibility'],
                             'phpdoc'       => $classconstant['phpdoc'] ?? '',
                             );

            $data['versions'][$namespaces[$cits2ns[$classconstant['citId']]]][$cits2type[$classconstant['citId']]][$cits[$classconstant['citId']]]['constants'][$classconstant['constant']] = $details;
        }

        // properties
        $res = $this->dump->fetchTable('properties');
//        print_r($res->toArray());die();
        foreach($res->toArray() as $property) {
            $details = array('value'        => $property['value'],
                             'visibility'   => $property['visibility'],
                             'static'       => $property['static'] === 1,
                             'typehint'     => explode('|', $property['typehint']),
                             'phpdoc'       => $property['phpdoc'] ?? '',
                             );

            $data['versions'][$namespaces[$cits2ns[$property['citId']]]][$cits2type[$property['citId']]][$cits[$property['citId']]]['properties'][$property['property']] = $details;
        }

        $res = $this->dump->fetchTable('methods');
//        print_r($res->toArray());die();
        foreach($res->toArray() as $method) {
            $details = array('visibility'   => $method['visibility'],
                             'static'       => $method['static']     === 1,
                             'abstract'     => $method['abstract']   === 1,
                             'reference'    => $method['reference']  === 1,
                             'returntypes'  => explode('|', $method['returntype']),
                             'phpdoc'       => $method['phpdoc'],
                             );

            $data['versions'][$namespaces[$cits2ns[$method['citId']]]][$cits2type[$method['citId']]][$cits[$method['citId']]]['methods'][$method['method']] = $details;

            $methods[$method['id']] = $method['method'];
        }

        $res = $this->dump->fetchTable('arguments');
//        print_r($res->toArray());die();
        foreach($res->toArray() as $argument) {
            $details = array('name'         => $argument['name'],
                             'reference'    => $argument['reference'] === 1,
                             'typehint'     => explode('|', $argument['typehint']),
                             'value'        => $argument['init'],
                             'phpdoc'       => $argument['phpdoc'] ?? '',
                             );
            if ($argument['citId'] == 0) {
                $data['versions'][$namespaces[$function2ns[$argument['methodId']]]]['functions'][$methods[$argument['methodId']]]['arguments'][$argument['rank']] = $details;
            } elseif (isset($data['versions'][$namespaces[$cits2ns[$argument['citId']]]][$cits2type[$argument['citId']]][$cits[$argument['citId']]]['methods'][$methods[$argument['methodId']]])) {
                $data['versions'][$namespaces[$cits2ns[$argument['citId']]]][$cits2type[$argument['citId']]][$cits[$argument['citId']]]['methods'][$methods[$argument['methodId']]]['arguments'][$argument['rank']] = $details;
            } else {
                display("Undefined method : $argument[citId] (Ignoring. Possible double definition)\n");
//                assert(isset($data['versions'][$namespaces[$cits2ns[$argument['citId']]]][$cits2type[$argument['citId']]][$cits[$argument['citId']]]['methods'][$methods[$argument['methodId']]]), "Method non definie\n");
            }
        }

        return json_encode($data, JSON_PRETTY_PRINT);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Reports;

use Symfony\Component\Yaml\Yaml as Symfony_Yaml;

class Yaml extends Reports {
    const FILE_EXTENSION = 'yaml';
    const FILE_FILENAME  = 'exakat';

    public function _generate(array $analyzerList): string {
        $analysisResults = $this->dump->fetchAnalysers($analyzerList);

        $results = array();
        $titleCache = array();
        $severityCache = array();
        foreach($analysisResults->toArray() as $row) {
            if (!isset($results[$row['file']])) {
                $file = array('errors'   => 0,
                              'warnings' => 0,
                              'fixable'  => 0,
                              'filename' => $row['file'],
                              'messages' => array());
                $results[$row['file']] = $file;
            }

            if (!isset($titleCache[$row['analyzer']])) {
                $analyzer = $this->rulesets->getInstance($row['analyzer'], null, $this->config);

                $titleCache[$row['analyzer']]    = $this->docs->getDocs($row['analyzer'], 'name');
                $severityCache[$row['analyzer']] = $this->docs->getDocs($row['analyzer'], 'severity');
            }

            $message = array('type'     => 'warning',
                             'source'   => $row['analyzer'],
                             'severity' => $severityCache[$row['analyzer']],
                             'fixable'  => 'fixable',
                             'message'  => $titleCache[$row['analyzer']],
                             'fullcode' => $row['fullcode']);

            if (!isset($results[ $row['file'] ]['messages'][ $row['line'] ])) {
                $results[ $row['file'] ]['messages'][ $row['line'] ] = array(0 => array());
            }
            $results[ $row['file'] ]['messages'][ $row['line'] ][0][] = $message;

            ++$results[ $row['file'] ]['warnings'];
            $this->count();
        }

        return Symfony_Yaml::dump($results);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy  Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;


class Stubs extends Reports {
    const FILE_EXTENSION = 'php';
    const FILE_FILENAME  = 'stubs';

    const INDENTATION = '    ';

    public function _generate(array $analyzerList): string {
        $report = new StubsJson();

        $code = json_decode( $report->_generate(array()));

        $result = array();
        foreach($code as $version) {
            foreach($version as $name => $namespace) {
                $result[] = $this->namespace($name, (object) $namespace);
            }
        }

        $return =  "<?php\n" . implode(PHP_EOL, $result) . "\n?>\n";

        return $return;
    }

    private function namespace(string $name, object $namespace): string {
        $result = array('namespace ' . trim($name, '\\') . ' {');

        if (isset($namespace->constants)) {
            foreach($namespace->constants as $constantName => $constant) {
                $result[] = $this->constant($constantName, $constant);
            }
            $result[] = '';
        }

        if (isset($namespace->functions)) {
            foreach($namespace->functions as $functionName => $function) {
                $result[] = $this->function($functionName, $function, 'function');
            }
            $result[] = '';
        }

        if (isset($namespace->class)) {
            foreach($namespace->class as $className => $class) {
                $result[] = $this->class($className, $class);
            }
            $result[] = '';
        }

        if (isset($namespace->interface)) {
            foreach($namespace->interface as $interfaceName => $interface) {
                $result[] = $this->interface($interfaceName, $interface);
            }
            $result[] = '';
        }

        if (isset($namespace->trait)) {
            foreach($namespace->trait as $traitName => $trait) {
                $result[] = $this->trait($traitName, $trait);
            }
            $result[] = '';
        }

        $result[] = "}\n";

        return join(PHP_EOL, $result);
    }

    private function class(string $name, object $class): string {
        $final      = empty($class->final)      ? '' : 'final ';
        $abstract   = empty($class->abstract)   ? '' : 'abstract ';
        $implements = empty($class->implements) ? '' : ' implements '.implode(', ', $class->implements);
        $extends    = empty($class->extends)    ? '' : ' extends '.$class->extends;
        $use        = empty($class->use)        ? '' : PHP_EOL.self::INDENTATION.'use '.implode(', ', $class->use);
        if (empty($trait->use)) {
            $use = '';
        } else {
            $use        = PHP_EOL.self::INDENTATION.'use '.implode(', ', $trait->use);
            if (empty($trait->useoptions)) {
                $use .= ';'.PHP_EOL;
            } else {
                $use .= "{".join('; ', $trait->useoptions)."}".PHP_EOL;
            }
        }
        $result = array(self::INDENTATION . "{$abstract}{$final}class $name{$extends}{$implements} {".$use);

        if (isset($class->constants)) {
            foreach($class->constants as $constantName => $constant) {
                $result[] = $this->constant($constantName, $constant, 'class');
            }
            $result[] = '';
        }

        if (isset($class->properties)) {
            foreach($class->properties as $propertyName => $property) {
                $result[] = $this->property($propertyName, $property);
            }
            $result[] = '';
        }

        if (isset($class->methods)) {
            foreach($class->methods as $functionName => $function) {
                $result[] = $this->function($functionName, $function);
            }
        }

        $result[] = self::INDENTATION . "}\n";

        return join(PHP_EOL, $result);
    }

    private function trait(string $name, object $trait): string {
        if (empty($trait->use)) {
            $use = '';
        } else {
            $use        = PHP_EOL.self::INDENTATION.'use '.implode(', ', $trait->use);
            if (empty($trait->useoptions)) {
                $use .= ';'.PHP_EOL;
            } else {
                $use .= "{".join('; ', $trait->useoptions)."}".PHP_EOL;
            }
        }

        $result = array(self::INDENTATION . "trait $name {".$use);

        if (isset($trait->properties)) {
            foreach($trait->properties as $propertyName => $property) {
                $result[] = $this->property($propertyName, $property);
            }
        }

        if (isset($trait->methods)) {
            foreach($trait->methods as $functionName => $function) {
                $result[] = $this->function($functionName, $function);
            }
        }

        $result[] = self::INDENTATION . "}\n";

        return join(PHP_EOL, $result);
    }

    private function interface(string $name, object $interface): string {
        $extends    = empty($interface->extends) ? '' : ' extends '.$interface->extends;
        $result = array(self::INDENTATION . "interface $name{$extends} {");

        if (isset($interface->constants)) {
            foreach($interface->constants as $constantName => $constant) {
                $result[] = $this->constant($constantName, $constant);
            }
        }

        if (isset($interface->methods)) {
            foreach($interface->methods as $functionName => $function) {
                $result[] = $this->function($functionName, $function, 'interface');
            }
        }

        $result[] = self::INDENTATION . "}\n";

        return join(PHP_EOL, $result);
    }

    private function constant(string $name, object $values, $type = 'global'): string {
        $phpdoc     = $this->normalizePhpdoc($values->phpdoc);
        $visibility = ($values->visibility ?? '') . ' ';
        if (isset($values->type) && $values->type == 'define') {
            return $phpdoc.self::INDENTATION.($type === 'global' ? '' : self::INDENTATION)."define('$name', $values->value);";
        } else {
            return self::INDENTATION.($type === 'global' ? '' : self::INDENTATION)."{$visibility}const $name = $values->value;";
        }
    }

    private function property(string $name, object $values): string {
        $static     = empty($values->static) ? '' : 'static ';
        $typehint   = implode('|', $values->typehint);
        $phpdoc     = $this->normalizePhpdoc($values->phpdoc); 
        $visibility = ($values->visibility ?: 'public') . ' ';

        return $phpdoc . self::INDENTATION . self::INDENTATION . $static . $visibility. $name. ';';
    }

    private function function(string $name, object $values, $type = 'class'): string {
        $reference  = empty($values->reference) ?  ''   : '&';
        if ($type === 'interface') {
            $visibility = '';
            $abstract   = '';
            $block      = ' ;';
        } else {
            $abstract   = empty($values->abstract)   ?   ''   : 'abstract ';
            $visibility = empty($values->visibility) ?   ''   : $values->visibility . ' ';
            $block      = empty($values->abstract)   ?   '{}' : ' ;';
        }
        $static     = empty($values->static) ?     ''   : 'static ';
        $final      = empty($values->final) ?      ''   : 'final ';
        $typehint   = $values->returntypes[0] === '' ? '' : ': ' . implode('|', $values->returntypes) . ' ';
        $phpdoc     = $this->normalizePhpdoc($values->phpdoc); 

        $arguments = array();
        if (isset($values->arguments)) {
            foreach($values->arguments as $argName => $argDetails) {
                $referenceArgs  = empty($values->referenceArgs) ? '' : ' &';
                $typehintArgs   = empty($argDetails->returntypes) ? '' : implode('|', $argDetails->returntypes) . ' ';
                $default        = $argDetails->value === '' ? '' : ' = ' . $argDetails->value;
                $phpdoc         = $this->normalizePhpdoc($values->phpdoc); 

                $arguments[] = $phpdoc.$typehintArgs . $referenceArgs . $argDetails->name . $default;
            }
        }
        $arguments = implode(', ', $arguments);

        return $phpdoc . self::INDENTATION. ($type === 'function' ? '' : self::INDENTATION)."{$final}{$abstract}{$visibility}{$static}function {$reference}$name($arguments) $typehint{$block}";
    }
    
    private function normalizePhpdoc(string $phpdoc) : string {
        if (empty($phpdoc)) {
            return '';
        }
        
        $phpdoc = preg_replace("/\n\s+\*/m", "\n *", $phpdoc);
        return $phpdoc . PHP_EOL;
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;


class Uml extends Reports {
    const FILE_EXTENSION = 'dot';
    const FILE_FILENAME  = 'exakat.uml';

    public function _generate(array $analyzerList): string {
        $res = $this->dump->fetchTableUml();
        $id = 0;
        $ids = array();
        $dot = array();
        $links = array();
        $colors = array('class'     => 'darkorange',
                        'trait'     => 'gold',
                        'interface' => 'skyblue',
                        'native'    => 'brown1',
                        );

        foreach($res->toArray() as $row) {
            ++$id;
            if (empty($row['properties'])) {
                $row['properties'] = '+&nbsp;' . str_replace('||', "<br align='left'/>+&nbsp;", $this->str2dot($row['properties'] ?? '')) . "<br align='left'/>";
            } elseif ($row['type'] === 'interface') {
                $row['properties'] = '&nbsp;';
            } else {
                $row['properties'] = '<i>No properties</i>';
            }
            if (empty($row['methods'])) {
                $row['methods'] = '+&nbsp;' . str_replace('||', "<br align='left'/>+&nbsp;", $this->str2dot($row['methods'] ?? '')) . "<br align='left'/>";
            } else {
                $row['methods'] = '<i>No methods</i>';
            }
            $color = $colors[$row['type']];
            $label = "<<table color='white' BORDER='0' CELLBORDER='1' CELLSPACING='0' >
                          <tr>
                              <td bgcolor='$color' color='black'>$row[name]</td>
                          </tr>
                          <tr>
                              <td color='black' align='left'>$row[properties]</td>
                          </tr>
                          <tr>
                              <td color='black' align='left'>$row[methods]</td>
                          </tr>
                       </table>>";
            $R = $id . ' [label=' . $label . ' shape="none"];';

            $ids[$row['id']] = $id;

            $N = explode('\\', $row['namespace']);
            $dotr = &$dot;
            foreach($N as $n) {
                if (!isset($dotr[$n])) {
                    $dotr[$n] = array();
                }
                $dotr = &$dotr[$n];
            }
            $dotr[] = $R;

            if (!empty($row['extends'])) {
                $links[] = " $id -> \"$row[extends]\" [label=\"extends\"];";
            }
        }

        $res = $this->dump->fetchTable('cit_implements');
        foreach($res->toArray() as $row) {
            if (!isset($ids[$row['implements']])) {
                $ids[$row['implements']] = $row['implements'];
            }
            $links[] = "{$ids[$row['implementing']]} -> \"{$ids[$row['implements']]}\" [label=\"$row[type]\"];";
        }

        $dot = <<<'DOT'
        digraph graphname {        
        fontname = "Bitstream Vera Sans"
        fontsize = 8
        colorscheme = "bugn9"
    
        node [
            fontname = "Bitstream Vera Sans"
            fontsize = 8
            shape = "record"
        ]
    
        edge [
            fontname = "Bitstream Vera Sans"
            fontsize = 8
            arrowhead = "empty"
        ]
 
DOT
        . $this->subgraphs($dot) . "\n\n" . implode("\n", $links) . "\n}\n";

        return $dot;
    }

    private function str2dot(string $str): string {
        return htmlspecialchars($str, ENT_COMPAT | ENT_HTML401 , 'UTF-8');
    }

    private function subgraphs(array $array, int $level = 1, string $nsname = ''): string {
        static $id = 0;
        $r = '';

        // Colors are managed with $level, thanks to colorscheme option.
        foreach($array as $key => $a) {
            ++$id;
            if (is_int($key)) {
                $r .= $a;
            } else {
                $nextName = "$nsname$key\\";
                $nextNameDot = addslashes($nextName);
                $r .= "subgraph cluster_$id { 
        style=filled;
        label=\"$nextNameDot\";
        color=\"$level\";
        ";
                $r .= $this->subgraphs($a, $level + 1, $nextName);
                $r .= "}\n";
            }
        }

        return $r;
    }
}

?>dashboard:
    menu: Dashboard
    title: Dashboard
    source: index_weekly
    file: index
    method: generateDashboard
    icon: dashboard
week0:
    menu: This Week
    title: This Week
    source: weekly
    file: week0
    method: generateWeek0
    icon: dashboard
week1:
    menu: Last Week
    title: Last Week
    source: weekly
    file: week1
    method: generateWeek1
    icon: dashboard
week2:
    menu: Two Weeks ago
    title: Two Weeks ago
    source: weekly
    file: week2
    method: generateWeek2
    icon: dashboard
week3:
    menu: Three Weeks ago
    title: Three Weeks ago
    source: weekly
    file: week3
    method: generateWeek3
    icon: dashboard
week4:
    menu: A month ago
    title: A month ago
    source: weekly
    file: week4
    method: generateWeek4
    icon: dashboard
weekNext:
    menu: Next week
    title: Next week
    source: weekly
    file: weeknext
    method: generateWeekNext
    icon: dashboard
annexes:
    title: Annexes
    icon: sticky-note-o
    subsections: 
        engine_settings:
            title: Engine Settings
            source: annex_settings
            file: engine_settings
            method: generateAnalyzerSettings
        annex_config:
            title: Audit Configuration
            file: annex_config
            method: generateAuditConfig
        processed_files:
            title: Processed files
            source: proc_files
            file: processed_files
            method: generateProcFiles
            icon: file
        processed_analysis:
            title: Processed analysis
            source: proc_analyses
            file: processed_analysis
            method: generateAnalyzersList
            icon: file
        annex_docs:
            title: Analyses documentation
            file: analyses_doc
            method: generateDocumentation
            icon: file
        annex_codes:
            title: Source code
            file: codes
            method: generateCodes
            icon: file
        credits:
            title: Credits
            file: credits
            icon: thumbs-up
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;

class None extends Reports {
    const FILE_EXTENSION = '';
    const FILE_FILENAME  = 'no_report';

    public function generate(string $folder, string $name = null): string {
        display('Generating the empty format. ');

        return '';
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;

class Dependencies extends Reports {
    const FILE_EXTENSION = 'dot';
    const FILE_FILENAME  = 'dependencies';

    public function generate(string $folder, string $name= 'dependencies'): string {
        display("This report is not finished\n");

        return '';
    }

    protected function _generate(array $analyzerList): string {
        $graph = new GSNeo4j($this->config);

        $links    = array();
        $nodes    = array('class'     => array(),
                          'trait'     => array(),
                          'interface' => array(),
                          'unknown'   => array(),
                          );
        $fullcode = array();

        $query = <<<'GREMLIN'
g.V().hasLabel("Class").map{[it.get().value("fullnspath"), it.get().value("fullcode")]}
GREMLIN;
        $res = $graph->query($query);
        foreach($res as $row) {
            $v = (array) $row;
            $names[$v[0]] = $v[1];
            $nodes['class'][] = $v[0];
        }

        $query = <<<'GREMLIN'
g.V().hasLabel("Trait").map{[it.get().value("fullnspath"), it.get().value("fullcode")]}
GREMLIN;
        $res = $graph->query($query);
        foreach($res as $row) {
            $v = (array) $row;
            $names[$v[0]] = $v[1];
            $nodes['trait'][] = $v[0];
        }
        $query = <<<'GREMLIN'
g.V().hasLabel("Interface").map{[it.get().value("fullnspath"), it.get().value("fullcode")]}
GREMLIN;
        $res = $graph->query($query);
        foreach($res as $row) {
            $v = (array) $row;

            $names[$v[0]] = $v[1];
            $nodes['interface'][] = $v[0];
        }
        $nodesId = array_flip(array_merge(...array_values($nodes)));

        // static constants
        $query = <<<'GREMLIN'
g.V().hasLabel("Staticconstant").as('fullcode')
.out('CLASS').as('destination')
.repeat(__.in()).until(hasLabel("Class", "Trait", "Interface")).as('origin')
.select('origin', 'destination', 'fullcode').by('fullnspath').by('fullnspath').by('fullcode')
GREMLIN;

        $res = $graph->query($query);
        $total = 0;
        foreach($res as $row) {
            $v = (array) $row;
            if (!isset($nodesId[$v['origin']])) {
                $nodes['unknown'][] = $v['origin'];
                $nodesId[$v['origin']] = count($nodes) - 1;
            }
            if (!isset($nodesId[$v['destination']])) {
                $nodes['unknown'][] = $v['destination'];
                $nodesId[$v['destination']] = count($nodes) - 1;
            }
            $links[$nodesId[$v['destination']] . ' -> ' . $nodesId[$v['origin']]][] = 'staticconstant';
            $fullcode[$nodesId[$v['destination']] . ' -> ' . $nodesId[$v['origin']]][] = $v['fullcode'];
            ++$total;
        }
        display( $total . ' Static constants');

        // static property
        $query = <<<'GREMLIN'
g.V().hasLabel("Staticproperty").as('fullcode')
.out('CLASS').as('destination')
.repeat(__.in()).until(hasLabel("Class", "Trait", "Interface")).as('origin')
.select('origin', 'destination', 'fullcode').by('fullnspath').by('fullnspath').by('fullcode')
GREMLIN;

        $res = $graph->query($query);
        $total = 0;

        foreach($res as $row) {
            $v = (array) $row;
            if (!isset($nodesId[$v['origin']])) {
                $nodes['unknown'][] = $v['origin'];
                $nodesId[$v['origin']] = count($nodes) - 1;
            }
            if (!isset($nodesId[$v['destination']])) {
                $nodes['unknown'][] = $v['destination'];
                $nodesId[$v['destination']] = count($nodes) - 1;
            }
            $links[$nodesId[$v['destination']] . ' -> ' . $nodesId[$v['origin']]][] = 'staticproperty';
            $fullcode[$nodesId[$v['destination']] . ' -> ' . $nodesId[$v['origin']]][] = $v['fullcode'];
            ++$total;
        }
        display( $total . ' Static constants');

        // Instantiation
        $query = <<<'GREMLIN'
g.V().hasLabel("New").as('fullcode')
.out('NEW').as('destination')
.has('fullnspath')
.repeat(__.in()).until(hasLabel("Class", "Trait", "Interface")).as('origin')
.select('origin', 'destination', 'fullcode').by('fullnspath').by('fullnspath').by('fullcode')
GREMLIN;
        $res = $graph->query($query);
        $total = 0;

        foreach($res as $row) {
            $v = (array) $row;
            if (!isset($nodesId[$v['origin']])) {
                $nodes['unknown'][] = $v['origin'];
                $nodesId[$v['origin']] = count($nodes) - 1;
            }
            if (!isset($nodesId[$v['destination']])) {
                $nodes['unknown'][] = $v['destination'];
                $nodesId[$v['destination']] = count($nodes) - 1;
            }
            $links[$nodesId[$v['destination']] . ' -> ' . $nodesId[$v['origin']]][] = 'instanciation';
            $fullcode[$nodesId[$v['destination']] . ' -> ' . $nodesId[$v['origin']]][] = $v['fullcode'];
            ++$total;
        }
        display( $total . ' New');

        // Typehint
        $query = <<<'GREMLIN'
g.V().hasLabel("Function").as("fullcode")
.out("ARGUMENT").out("TYPEHINT").as("destination")
.repeat(__.in()).until(hasLabel("Class", "Trait", "Interface")).as("origin")
.select("origin", "destination", "fullcode").by("fullnspath").by("fullnspath").by("fullcode")

GREMLIN;
        $res = $graph->query($query);
        $total = 0;
        foreach($res as $row) {
            $v = (array) $row;
            if (!isset($nodesId[$v['origin']])) {
                $nodes['unknown'][] = $v['origin'];
                $nodesId[$v['origin']] = count($nodes) - 1;
            }
            if (!isset($nodesId[$v['destination']])) {
                $nodes['unknown'][] = $v['destination'];
                $nodesId[$v['destination']] = count($nodes) - 1;
            }
            $links[$nodesId[$v['destination']] . ' -> ' . $nodesId[$v['origin']]][] = 'typehint';
            $fullcode[$nodesId[$v['destination']] . ' -> ' . $nodesId[$v['origin']]][] = $v['fullcode'];
            ++$total;
        }
        display( $total . ' Typehint');

        // instanceof
        $query = <<<'GREMLIN'
g.V().hasLabel("Instanceof").as('fullcode')
.out('CLASS').as('destination')
.has('fullnspath')
.repeat(__.in()).until(hasLabel("Class", "Trait", "Interface")).as('origin')
.select('origin', 'destination', 'fullcode').by('fullnspath').by('fullnspath').by('fullcode')

GREMLIN;
        $res = $graph->query($query);
        $total = 0;
        foreach($res as $row) {
            $v = (array) $row;
            if (!isset($nodesId[$v['origin']])) {
                $nodes['unknown'][] = $v['origin'];
                $nodesId[$v['origin']] = count($nodes) - 1;
            }
            if (!isset($nodesId[$v['destination']])) {
                $nodes['unknown'][] = $v['destination'];
                $nodesId[$v['destination']] = count($nodes) - 1;
            }
            $links[$nodesId[$v['destination']] . ' -> ' . $nodesId[$v['origin']]][] = 'instanceof';
            $fullcode[$nodesId[$v['destination']] . ' -> ' . $nodesId[$v['origin']]][] = $v['fullcode'];
            ++$total;
        }
        display( $total . ' Instanceof');

        // static methods
        $query = <<<'GREMLIN'
g.V().hasLabel("Staticmethodcall").as('fullcode')
.out('CLASS').as('destination')
.has('fullnspath')
.repeat(__.in()).until(hasLabel("Class", "Trait", "Interface")).as('origin')
.select('origin', 'destination', 'fullcode').by('fullnspath').by('fullnspath').by('fullcode')
GREMLIN;
        $res = $graph->query($query);
        $total = 0;
        foreach($res as $row) {
            $v = (array) $row;
            if (!isset($nodesId[$v['origin']])) {
                $nodes['unknown'][] = $v['origin'];
                $nodesId[$v['origin']] = count($nodes) - 1;
            }
            if (!isset($nodesId[$v['destination']])) {
                $nodes['unknown'][] = $v['destination'];
                $nodesId[$v['destination']] = count($nodes) - 1;
            }
            $links[$nodesId[$v['destination']] . ' -> ' . $nodesId[$v['origin']]][] = 'staticmethodcall';
            $fullcode[$nodesId[$v['destination']] . ' -> ' . $nodesId[$v['origin']]][] = $v['fullcode'];
            ++$total;
        }
        display( $total . ' Static methods');

        // Final preparation
        // Nodes
        $colors = array('class' => 'darkorange', 'trait' => 'gold', 'interface' => 'skyblue', 'unknown' => 'gray');
        foreach($nodes as $type => &$someNodes) {
            foreach($someNodes as $id => &$n) {
                $n = <<<DOT
$nodesId[$n] [label=<<table color='white' BORDER='0' CELLBORDER='1' CELLSPACING='0' >
                          <tr>
                              <td bgcolor='$colors[$type]'>$n</td>
                          </tr>
                       </table>> shape="none"];
DOT;
            }
            unset($n);
        }
        unset($someNodes);

        // Links
        $colors = array('staticmethodcall' => 'firebrick2',
                        'staticconstant'   => 'firebrick2',
                        'staticproperty'   => 'firebrick2',
                        'instanceof'       => 'chartreuse4',
                        'typehint'         => 'chartreuse4',
                        'use'              => 'darkgoldenrod2',
                        'instanciation'    => 'black',
                        );
        $linksDot = array();
        foreach($links as $link => $type) {
            foreach($type as $id => $t) {
                $linksDot[] = $link . ' [shape="none" color="' . $colors[$t] . '" label="' . str_replace('"', '\\"', $fullcode[$link][$id]) . '"];';
            }
        }
        unset($type);

        $dot = <<<DOT
digraph graphname {        
    fontname = \"Bitstream Vera Sans\"
    fontsize = 14
    colorscheme = \"bugn9\"
    
    node [
            fontname = \"Bitstream Vera Sans\"
            fontsize = 14
            shape = \"record\"
    ]
    
    edge [
            fontname = \"Bitstream Vera Sans\"
            fontsize = 8
            arrowhead = \"empty\"
            width = \"2\"
    ]
    
DOT
    . implode(PHP_EOL, $nodes['class']) . PHP_EOL
    . implode(PHP_EOL, $nodes['trait']) . PHP_EOL
    . implode(PHP_EOL, $nodes['interface']) . PHP_EOL
    . implode(PHP_EOL, $nodes['unknown']) . PHP_EOL
    . PHP_EOL
    . implode(PHP_EOL, $linksDot) . PHP_EOL . '}' . PHP_EOL;

      file_put_contents("$folder/" . self::FILE_FILENAME . '.' . self::FILE_EXTENSION, $dot);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;


class TypeSuggestion extends Reports {
    const FILE_EXTENSION = 'html';
    const FILE_FILENAME  = 'typehint.suggestion';

    protected $finalName     = null;
    private $tmpName         = '';

    public function generate(string $folder, string $name = self::FILE_FILENAME): string {
        if ($name === self::STDOUT) {
            print "Can't produce SimpleHtml format to stdout\n";
            return '';
        }

        $list = $this->rulesets->getRulesetsAnalyzers(array('Typehints'));
        print_r($list);
        $results = $this->dump->fetchAnalysers($list);
        $results->load();

        $suggestions = array();
        foreach($results->toArray() as $row) {
            list(, $type) = explode('/', $row['analyzer']);
            if (preg_match('/function (\S+)\\(/', $row['fullcode'], $r)) {
                $suggestions[$row['file']][$row['line']][$r[1]][] = $type;
            } elseif (preg_match('/(\$\\S+)/', $row['fullcode'], $r)) {
                $suggestions[$row['file']][$row['line']][$r[1]][] = $type;
            } else {
                print 'Error : ' . $row['fullcode'] . "\n";
            }
        }

        $html = array();

        $res = $this->dump->fetchTableMethodsByArgument();
        foreach($res->toArray() as $row) {
            if (isset($suggestions[$row['file']][$row['line']][$row['argument']])) {
                $list = $this->toHtmlList($suggestions[$row['file']][$row['line']][$row['argument']]);
            } else {
                $list = 'None';
            }

            $html[] = <<<HTML
<tr>
<td>$row[citName]</td>
<td>$row[method]</td>
<td>$row[argument]</td>
<td>$row[rank]</td>
<td>$list</td>

</tr>
HTML;
        }


        print_r($suggestions);
        $res = $this->dump->fetchTableMethods();
        foreach($res->toArray() as $row) {
            if (in_array(mb_strtolower($row['method']), array('__construct', '__destruct'))) {
                continue;
            }
            if (isset($suggestions[$row['file']][$row['line']][$row['method']])) {
                $list = $this->toHtmlList($suggestions[$row['file']][$row['line']][$row['method']]);
            } else {
                $list = 'None';
            }

            $html[] = <<<HTML
<tr>
<td>$row[class]</td>
<td>$row[method]</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>$list</td>


</tr>
HTML;
        }


        $html = '<table>' . implode(PHP_EOL, $html) . '</table>';

        $this->tmpName = "{$this->config->project_dir}/$name.html";

        file_put_contents("{$this->tmpName}", $html);

        return 'oui';
    }

    protected function toHtmlList(array $array): string {
        return '<ul><li>' . implode("</li>\n<li>", $array) . '</li></ul>';
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Reports;

class Favorites extends Reports {
    const FILE_EXTENSION = 'json';
    const FILE_FILENAME  = 'favorites';

    public function _generate(array $analyzerList): string {
        $analyzers = $this->rulesets->getRulesetsAnalyzers(array('Preferences'));

        $return = array();
        foreach($analyzers as $analyzer) {
            $r = $this->dump->fetchHashAnalyzer($analyzer)->toArray();

            if (empty($r)) {
                continue;
            }

            $return[$analyzer] = $r;
            $this->count();
        }

        return json_encode($return, JSON_PRETTY_PRINT);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;


class Typechecks extends Emissary {
    const FILE_FILENAME  = 'typechecks';
    const FILE_EXTENSION = '';
    const CONFIG_YAML    = 'Typechecks';

    const TOPLIMIT = 10;
    const LIMITGRAPHE = 40;

    const NOT_RUN      = 'Not Run';
    const YES          = 'Yes';
    const NO           = 'No';
    const INCOMPATIBLE = 'Incompatible';

    public function __construct() {
        parent::__construct();

        $this->themesToShow = array('Typechecks');
    }

    public function dependsOnAnalysis(): array {
        return array('Typechecks',
                     );
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports\Data;

use Exakat\Dump\Dump;

abstract class Data {
    protected $dump = null;
    protected $values = null;

    public function __construct(Dump $dump) {
        $this->dump = $dump;
    }

    public function values() {
        return $this->values;
    }

    abstract public function prepare();
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports\Data;

use Exakat\Analyzer\Analyzer;
use Exakat\Reports\Ambassador;

class Appinfo extends Data {
        private $extensions = array(
                    'PHP' => array(
                            'Short tags'                    => 'Structures/ShortTags',
                            'Echo tags <?='                 => 'Php/EchoTagUsage',
                            'Incompilable'                  => 'Php/Incompilable',

                            '@ operator'                    => 'Structures/Noscream',
                            'Alternative syntax'            => 'Php/AlternativeSyntax',
                            'Magic constants'               => 'Constants/MagicConstantUsage',
                            'halt_compiler()'               => 'Php/Haltcompiler',

                            'Casting'                       => 'Php/CastingUsage',
                            'Resources'                     => 'Structures/ResourcesUsage',
                            'Nested Loops'                  => 'Structures/NestedLoops',
                            'arrays_ With Callback'         => 'Arrays/WithCallback',

                            'Autoload'                      => 'Php/AutoloadUsage',
                            'include'                       => 'Structures/IncludeUsage',
                            'include_once'                  => 'Structures/OnceUsage',
                            'Output control'                => 'Extensions/Extob',

                            'Goto'                          => 'Php/Gotonames',
                            'Labels'                        => 'Php/Labelnames',

                            'Coalesce'                      => 'Php/Coalesce',
                            'Coalesce Equal'                => 'Php/CoalesceEqual',
                            'Trailing Comma'                => 'Php/TrailingComma',
                            'PHP 8.0 Variable Syntax'       => 'Php/Php80VariableSyntax',

                            'File upload'                   => 'Structures/FileUploadUsage',
                            'Environment Variables'         => 'Php/UsesEnv',

                            'Dynamically load extensions'   => 'Php/DlUsage',
                            'Relaxed keyword as names'      => 'Php/Php7RelaxedKeyword',
                            'strict_types'                  => 'Php/DeclareStrictType',
                            'encoding'                      => 'Php/DeclareEncoding',
                            'ticks'                         => 'Php/DeclareTicks',
                    ),

                    'Composer' => array(
                            'composer.json'                 => 'Composer/UseComposer',
                            'composer.lock'                 => 'Composer/UseComposerLock',
                            'composer autoload'             => 'Composer/Autoload',
                    ),

                    'Web' => array(
                            '$_GET, _POST...'                => 'Php/UseWeb',
                            'Apache'                         => 'Extensions/Extapache',
                            'Fast CGI'                       => 'Extensions/Extfpm',
                            'IIS'                            => 'Extensions/Extiis',
                            'NSAPI'                          => 'Extensions/Extnsapi',
                            'Session'                        => 'Extensions/Extsession',
                            'Cookies'                        => 'Php/UseCookies',
                            'Browscap'                       => 'Php/UseBrowscap',
                    ),

                    'CLI' => array(
                            '$argv, $argc'                 => 'Php/UseCli',
                            'CLI script'                   => 'Files/IsCliScript',
                            'Ncurses'                      => 'Extensions/Extncurses',
                            'Newt'                         => 'Extensions/Extnewt',
                            'Readline'                     => 'Extensions/Extreadline',
                    ),

                    // filled later
                    'Composer Packages' => array(),

                    'PSR-compatibility' => array(
                        'PSR-3  (Log)'                       => 'Psr/Psr3Usage',
                        'PSR-6  (Caching)'                   => 'Psr/Psr6Usage',
                        'PSR-7  (HTTP message)'              => 'Psr/Psr7Usage',
                        'PSR-11 (Dependency container)'      => 'Psr/Psr11Usage',
                        'PSR-13 (Link)'                      => 'Psr/Psr13Usage',
                        'PSR-16 (Simple cache)'              => 'Psr/Psr16Usage',
                    ),

                    'Patterns' => array(
                        'Dependency Injection'               => 'Patterns/DependencyInjection',
                        'Courrier Anti-pattern'              => 'Patterns/CourrierAntiPattern',
                        'Factory'                            => 'Patterns/Factory',
                    ),

                    'Namespaces' => array(
                            'Namespaces'                     => 'Namespaces/Namespacesnames',
                            'Alias'                          => 'Namespaces/Alias',
                            'Group Use'                      => 'Php/GroupUseDeclaration',
                    ),

                    'Variables' => array(
                            'References'              => 'Variables/References',
                            'Array'                   => 'Arrays/Arrayindex',
                            'Multidimensional arrays' => 'Arrays/Multidimensional',
                            'Array short syntax'      => 'Arrays/ArrayNSUsage',
                            'List short syntax'       => 'Php/ListShortSyntax',
                            'Variable variables'      => 'Variables/VariableVariables',
                            'Unpacking inside arrays' => 'Php/UnpackingInsideArrays',

                            'PHP arrays'              => 'Arrays/Phparrayindex',

                            'Globals'                 => 'Structures/GlobalUsage',
                            'PHP SuperGlobals'        => 'Php/SuperGlobalUsage',
                    ),

                    'Functions' => array(
                            'Functions'                   => 'Functions/Functionnames',
                            'Redeclared PHP Functions'    => 'Functions/RedeclaredPhpFunction',
                            'Overridden PHP Functions'    => 'Php/OveriddenFunction',
                            'Redeclared Custom Functions' => 'Functions/MultipleDeclarations',
                            'Closures'                    => 'Closure',
                            'Arrow functions'             => 'Arrowfunction',
//                            'Callback'                    => 'Functions/MarkCallable',

                            'Typehint'                    => 'Functions/Typehints',
                            'Scalar Typehint'             => 'Php/ScalarTypehintUsage',
                            'Return Typehint'             => 'Php/ReturnTypehintUsage',
                            'Nullable Typehint'           => 'Php/UseNullableType',
                            'PHP 8.0 Scalar Typehints'    => 'Php/Php80OnlyTypeHints',
                            'PHP 8.0 Union Typehints'     => 'Php/Php80OnlyTypeHints',
                            'Static variables'            => 'Variables/StaticVariables',

                            'Function dereferencing'      => 'Structures/FunctionSubscripting',
                            'Constant scalar expression'  => 'Structures/ConstantScalarExpression',
                            '... usage'                   => 'Php/EllipsisUsage',
                            'func_get_args'               => 'Functions/VariableArguments',

                            'Dynamic functioncall'        => 'Functions/Dynamiccall',
                            'Fallback functioncall'       => 'Functions/FallbackFunction',

                            'Recursive Functions'         => 'Functions/Recursive',
                            'Generator Functions'         => 'Functions/IsGenerator',
                            'Conditioned Function'        => 'Functions/ConditionedFunctions',
                    ),

                    'Classes' => array(
                            'Classes'                    => 'Classes/Classnames',
                            'Anonymous Classes'          => 'Classes/Anonymous',
                            'Class aliases'              => 'Classes/ClassAliasUsage',

                            'Abstract classes'           => 'Classes/Abstractclass',
                            'Interfaces'                 => 'Interfaces/Interfacenames',
                            'Traits'                     => 'Traits/Traitnames',

                            'Static properties'          => 'Classes/StaticProperties',

                            'Static methods'             => 'Classes/StaticMethods',
                            'Abstract methods'           => 'Classes/Abstractmethods',
                            'Final methods'              => 'Classes/Finalmethod',

                            'Class constants'            => 'Classes/ConstantDefinition',
                            'Overwritten constants'      => 'Classes/OverwrittenConst',

                            'Magic methods'              => 'Classes/MagicMethod',
                            'Cloning'                    => 'Classes/CloningUsage',
                            'Dynamic class call'         => 'Classes/VariableClasses',
                            'Typed properties'           => 'Php/TypedPropertyUsage',
                            'Covariance'                 => 'Php/UseCovariance',
                            'Contravariance'             => 'Php/UseContravariance',

                            'PHP 4 constructor'          => 'Classes/OldStyleConstructor',
                            'Multiple class in one file' => 'Classes/MultipleClassesInFile',
                    ),

                    'Constants' => array(
                            'Constants'           => 'Constants/ConstantUsage',
                            'Dynamically create'  => 'Constants/DynamicCreations',
                            'Case Insensitive'    => 'Constants/CaseInsensitiveConstants',
                            'Boolean'             => 'Boolean',
                            'Null'                => 'Null',
                            'Variable Constant'   => 'Constants/VariableConstant',
                            'PHP constants'       => 'Constants/PhpConstantUsage',
                            'PHP Magic constants' => 'Constants/MagicConstantUsage',
                            'Conditioned constant'=> 'Constants/ConditionedConstants',
                    ),

                    'Numbers' => array(
                            'Integers'            => 'Integer',
                            'Hexadecimal'         => 'Type/Hexadecimal',
                            'Octal'               => 'Type/Octal',
                            'Binary'              => 'Type/Binary',
                            'Float'               => 'Float',
                            'Not-a-Number'        => 'Php/IsNAN',
                            'Infinity'            => 'Php/IsINF',
                    ),

                    'Strings' => array(
                            'Strings'             => 'String',
                            'Heredoc'             => 'Type/Heredoc',
                            'Nowdoc'              => 'Type/Nowdoc',
                            'Relaxed Heredoc'     => 'Php/FlexibleHeredoc',
                     ),

                    'Errors' => array(
                            'Throw exceptions'    => 'Php/ThrowUsage',
                            'Try...Catch'         => 'Php/TryCatchUsage',
                            'Multiple catch'      => 'Php/TryMultipleCatch',
                            'Multiple Exceptions' => 'Exceptions/MultipleCatch',
                            'Finally'             => 'Structures/TryFinally',

                            'Trigger error'       => 'Php/TriggerErrorUsage',
                            'Error messages'      => 'Structures/ErrorMessages',

                            'Assertions'          => 'Php/AssertionUsage',

                            'Uses debug'          => 'Structures/UseDebug',
                     ),

                    'Crypto' => array(
                            'Crypto/Hash'         => 'Php/CryptoHashUsage',
                            'Argon2'              => 'Php/Argon2Usage',
                            'ext/openssl'         => 'Extensions/Extopenssl',
                            'ext/libsodium'       => 'Extensions/Extlibsodium',
                            'ext/mcrypt'          => 'Extensions/Extmcrypt',
                            'ext/mhash'           => 'Extensions/Extmhahs',
                     ),

                    'External systems' => array(
                            'System'           => 'Structures/ShellUsage',
                            'Files'            => 'Structures/FileUsage',
                            'LDAP'             => 'Extensions/Extldap',
                            'mail'             => 'Structures/MailUsage',
                     ),

                    'Extensions' => array(
                            'ext/amqp'       => 'Extensions/Extamqp',
                            'ext/apache'     => 'Extensions/Extapache',
                            'ext/apc'        => 'Extensions/Extapc',
                            'ext/apcu'       => 'Extensions/Extapcu',
                            'argon2'         => 'Php/Argon2Usage',
                            'ext/array'      => 'Extensions/Extarray',
                            'ext/ast'        => 'Extensions/Extast',
                            'ext/bcmath'     => 'Extensions/Extbcmath',
                            'ext/bzip2'      => 'Extensions/Extbzip2',
                            'ext/cairo'      => 'Extensions/Extcairo',
                            'ext/calendar'   => 'Extensions/Extcalendar',
                            'ext/com'        => 'Extensions/Extcom',
                            'ext/crypto'     => 'Extensions/Extcrypto',
                            'ext/ctype'      => 'Extensions/Extctype',
                            'ext/curl'       => 'Extensions/Extcurl',
                            'ext/cyrus'      => 'Extensions/Extcyrus',
                            'ext/date'       => 'Extensions/Extdate',
                            'ext/dba'        => 'Extensions/Extdba',
                            'ext/dio'        => 'Extensions/Extdio',
                            'ext/dom'        => 'Extensions/Extdom',
                            'ext/eaccelerator' => 'Extensions/Exteaccelerator',
                            'ext/enchant'    => 'Extensions/Extenchant',
                            'ext/ereg'       => 'Extensions/Extereg',
                            'ext/event'      => 'Extensions/Extevent',
                            'ext/ev'         => 'Extensions/Extev',
                            'ext/exif'       => 'Extensions/Extexif',
                            'ext/expect'     => 'Extensions/Extexpect',
                            'ext/fann'       => 'Extensions/Extfann',
                            'ext/fdf'        => 'Extensions/Extfdf',
                            'ext/ffi'        => 'Extensions/Extffi',
                            'ext/ffmpeg'     => 'Extensions/Extffmpeg',
                            'ext/file'       => 'Extensions/Extfile',
                            'ext/fileinfo'   => 'Extensions/Extfileinfo',
                            'ext/filter'     => 'Extensions/Extfilter',
                            'ext/fpm'        => 'Extensions/Extfpm',
                            'ext/ftp'        => 'Extensions/Extftp',
                            'ext/gd'         => 'Extensions/Extgd',
                            'ext/gearman'    => 'Extensions/Extgearman',
                            'ext/geoip'      => 'Extensions/Extgeoip',
                            'ext/gettext'    => 'Extensions/Extgettext',
                            'ext/gmagick'    => 'Extensions/Extgmagick',
                            'ext/gmp'        => 'Extensions/Extgmp',
                            'ext/gnupg'      => 'Extensions/Extgnupg',
                            'ext/grpc'       => 'Extensions/Extgrpc',
                            'ext/hash'       => 'Extensions/Exthash',
                            'ext/php_http'   => 'Extensions/Exthttp',
                            'ext/ibase'      => 'Extensions/Extibase',
                            'ext/iconv'      => 'Extensions/Exticonv',
                            'ext/igbinary'   => 'Extensions/Extigbinary',
                            'ext/iis'        => 'Extensions/Extiis',
                            'ext/imagick'    => 'Extensions/Extimagick',
                            'ext/imap'       => 'Extensions/Extimap',
                            'ext/info'       => 'Extensions/Extinfo',
                            'ext/inotify'    => 'Extensions/Extinotify',
                            'ext/intl'       => 'Extensions/Extintl',
                            'ext/json'       => 'Extensions/Extjson',
                            'ext/kdm5'       => 'Extensions/Extkdm5',
                            'ext/lapack'     => 'Extensions/Extlapack',
                            'ext/ldap'       => 'Extensions/Extldap',
                            'ext/leveldb'    => 'Extensions/Extleveldb',
                            'ext/libevent'   => 'Extensions/Extlibevent',
                            'ext/libxml'     => 'Extensions/Extlibxml',
                            'ext/mail'       => 'Extensions/Extmail',
                            'ext/mailparse'  => 'Extensions/Extmailparse',
                            'ext/math'       => 'Extensions/Extmath',
                            'ext/mbstring'   => 'Extensions/Extmbstring',
                            'ext/mcrypt'     => 'Extensions/Extmcrypt',
                            'ext/memcache'   => 'Extensions/Extmemcache',
                            'ext/memcached'  => 'Extensions/Extmemcached',
                            'ext/ming'       => 'Extensions/Extming',
                            'ext/mongo'      => 'Extensions/Extmongo',
                            'ext/mssql'      => 'Extensions/Extmssql',
                            'ext/mysql'      => 'Extensions/Extmysql',
                            'ext/mysqli'     => 'Extensions/Extmysqli',
                            'ext/ob'         => 'Extensions/Extob',
                            'ext/oci8'       => 'Extensions/Extoci8',
                            'ext/odbc'       => 'Extensions/Extodbc',
                            'ext/opcache'    => 'Extensions/Extopcache',
                            'ext/opencensus' => 'Extensions/Extopencensus',
                            'ext/openssl'    => 'Extensions/Extopenssl',
                            'ext/parsekit'   => 'Extensions/Extparsekit',
                            'ext/password'   => 'Extensions/Extpassword',
                            'ext/pcov'       => 'Extensions/Extpcov',
                            'ext/pcntl'      => 'Extensions/Extpcntl',
                            'ext/pcre'       => 'Extensions/Extpcre',
                            'ext/pdo'        => 'Extensions/Extpdo',
                            'ext/pgsql'      => 'Extensions/Extpgsql',
                            'ext/phalcon'    => 'Extensions/Extphalcon',
                            'ext/phar'       => 'Extensions/Extphar',
                            'ext/posix'      => 'Extensions/Extposix',
                            'ext/proctitle'  => 'Extensions/Extproctitle',
                            'ext/pspell'     => 'Extensions/Extpspell',
                            'ext/readline'   => 'Extensions/Extreadline',
                            'ext/recode'     => 'Extensions/Extrecode',
                            'ext/redis'      => 'Extensions/Extredis',
                            'ext/reflexion'  => 'Extensions/Extreflection',
                            'ext/runkit'     => 'Extensions/Extrunkit',
                            'ext/sem'        => 'Extensions/Extsem',
                            'ext/session'    => 'Extensions/Extsession',
                            'ext/shmop'      => 'Extensions/Extshmop',
                            'ext/simplexml'  => 'Extensions/Extsimplexml',
                            'ext/snmp'       => 'Extensions/Extsnmp',
                            'ext/soap'       => 'Extensions/Extsoap',
                            'ext/sockets'    => 'Extensions/Extsockets',
                            'ext/sphinx'     => 'Extensions/Extsphinx',
                            'ext/spl'        => 'Extensions/Extspl',
                            'ext/sqlite'     => 'Extensions/Extsqlite',
                            'ext/sqlite3'    => 'Extensions/Extsqlite3',
                            'ext/sqlsrv'     => 'Extensions/Extsqlsrv',
                            'ext/ssh2'       => 'Extensions/Extssh2',
                            'ext/standard'   => 'Extensions/Extstandard',
                            'ext/stats'      => 'Extensions/Extstats',
                            'ext/svm'        => 'Extensions/Extsvm',
                            'ext/tidy'       => 'Extensions/Exttidy',
                            'ext/tokenizer'  => 'Extensions/Exttokenizer',
                            'ext/trader'     => 'Extensions/Exttrader',
                            'ext/uopz'       => 'Extensions/Extuopz',
                            'ext/uuid'       => 'Extensions/Extuuid',
                            'ext/v8js'       => 'Extensions/Extv8js',
                            'ext/varnish'    => 'Extensions/Extvarnish',
                            'ext/vips'       => 'Extensions/Extvips',
                            'ext/wddx'       => 'Extensions/Extwddx',
                            'ext/weakref'    => 'Extensions/Extweakref',
                            'ext/wikidiff2'  => 'Extensions/Extwikidiff2',
                            'ext/wincache'   => 'Extensions/Extwincache',
                            'ext/xcache'     => 'Extensions/Extxcache',
                            'ext/xdebug'     => 'Extensions/Extxdebug',
                            'ext/xdiff'      => 'Extensions/Extxdiff',
                            'ext/xhprof'     => 'Extensions/Extxhprof',
                            'ext/xml'        => 'Extensions/Extxml',
                            'ext/xmlreader'  => 'Extensions/Extxmlreader',
                            'ext/xmlrpc'     => 'Extensions/Extxmlrpc',
                            'ext/xmlwriter'  => 'Extensions/Extxmlwriter',
                            'ext/xsl'        => 'Extensions/Extxsl',
                            'ext/xxtea'      => 'Extensions/Extxxtea',
                            'ext/yaml'       => 'Extensions/Extyaml',
                            'ext/yis'        => 'Extensions/Extyis',
                            'ext/zendmonitor'=> 'Extensions/Extzendmonitor',
                            'ext/zip'        => 'Extensions/Extzip',
                            'ext/zlib'       => 'Extensions/Extzlib',
                            'ext/zmq'        => 'Extensions/Extzmq',
        //                          'ext/skeleton'   => 'Extensions/Extskeleton',
                    ),

                    'Frameworks' => array(
                            'Cake PHP'             => 'Cakephp/CakePHPUsed',
                            'Codeigniter'          => 'Vendors/Codeigniter',
                            'Drupal'               => 'Vendors/Drupal',
                            'Ez'                   => 'Vendors/Ez',
                            'Fuel'                 => 'Vendors/Fuel',
                            'Joomla'               => 'Vendors/Joomla',
                            'Laravel'              => 'Vendors/Laravel',
                            'Phalcon'              => 'Vendors/Phalcon',
                            'Slim PHP'             => 'Slim/UseSlim',
                            'Symfony'              => 'Vendors/Symfony',
                            'Wordpress'            => 'ZendF/ZendClasses',
                            'Yii'                  => 'Vendors/Yii',
                            'Zend Framework'       => 'ZendF/ZendClasses',
                    )
                );

        public function originals() {
            return $this->extensions;
        }

        public function prepare() {
            // collecting information for Extensions
            $themed = array_merge(...array_values($this->extensions));
            $res = $this->dump->fetchAnalysersCounts($themed);
            $sources = $res->toHash('analyzer', 'count');

            foreach($this->extensions as $section => $hash) {
                $this->values[$section] = array();

                foreach($hash as $name => $ext) {
                if (!isset($sources[$ext])) {
                    $this->values[$section][$name] = Ambassador::NOT_RUN;
                    continue;
                }
                if (!in_array($ext, $themed)) {
                    $this->values[$section][$name] = Ambassador::NOT_RUN;
                    continue;
                }

                // incompatible
                if ($sources[$ext] == Analyzer::CONFIGURATION_INCOMPATIBLE) {
                    $this->values[$section][$name] = Ambassador::INCOMPATIBLE;
                    continue ;
                }

                if ($sources[$ext] == Analyzer::VERSION_INCOMPATIBLE) {
                    $this->values[$section][$name] = Ambassador::INCOMPATIBLE;
                    continue ;
                }

                $this->values[$section][$name] = $sources[$ext] > 0 ? Ambassador::YES : Ambassador::NO;
            }

            if ($section == 'Extensions') {
                $list = $this->values[$section];
                uksort($this->values[$section], function ($ka, $kb) use ($list) {
                    if ($list[$ka] !== $list[$kb]) {
                        return $list[$ka] === Ambassador::YES ? -1 : 1;
                    }

                    return $kb <=> $ka;
                });
            }
        }
        // collecting information for Composer
        if (isset($sources['Composer/PackagesNames'])) {
            $this->values['Composer Packages'] = array();
            $res = $this->dump->fetchAnalyzer(array('Composer/PackagesNames'));
            $this->values = array_map('PHPsyntax', $res->getColumn('fullcode'));
        } else {
            unset($this->values['Composer Packages']);
        }

        // Special case for the encodings : one tick each.
        $res = $this->dump->fetchTable('stringEncodings');
        // sort
        foreach($res->toArray() as $row) {
            if (empty($row['encoding'])) {
                $this->values['Strings']['Unknown encoding'] = Ambassador::YES;
            } elseif (empty($row['block'])) {
                $this->values['Strings'][$row['encoding']] = Ambassador::YES;
            } else {
                $this->values['Strings'][$row['encoding'] . ' (' . $row['block'] . ')' ] = Ambassador::YES;
            }
        }

        return true;
    }
}

?>
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports\Data;

class CloseNaming extends Data {
    public function prepare() {
        $res = $this->dump->fetchTable('variables');
        $variables = $res->getColumn('variable');
        $variables = array_filter($variables, function (string $x): bool {
                                                              return strlen($x) > 3 &&
                                                                     $x[0] !== '{'  &&
                                                                     $x[1] !== '$';
                                                                        });
        $variables = array_unique($variables);

        $results = array();
        // Only _ as difference
        foreach($variables as $variable) {
            if (strpos($variable, '_') === false) {
                continue;
            }
            $v = str_replace('_', '', $variable);
            $r = array_filter( $variables, function ($x) use ($v) { return str_replace('_', '', $x) === $v; });
            if (count($r) > 1) {
                $results[$variable]['_'] = array_diff($r, array($variable));
            }
        }

        // Only case as difference
        $lowerCase = array_map('mb_strtolower', $variables);
        $groupBy = array_count_values($lowerCase);
        $diff = array_keys(array_filter($groupBy, function ($x) { return $x > 1;}));
        foreach($diff as $variable) {
            $r = array_filter( $variables, function ($x) use ($variable) { return mb_strtolower($x) === mb_strtolower($variable); });
            if (count($r) > 1) {
                $results[$variable]['case'] = array_diff($r, array($variable));
            }
        }

        // Only numbers as difference
        $numbers = preg_grep('/[0-9]/', $variables);
        foreach($numbers as $variable) {
            $v = str_replace(array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9), '', $variable);
            $r = array_filter( $variables, function ($x) use ($v) { return str_replace(array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9), '', $x) === $v; });
            if (count($r) > 1) {
                $results[$variable]['numbers'] = array_diff($r, array($variable));
            }
        }

        // One char difference
        $sizes = array_fill(4, 200, array());
        foreach($variables as $variable) {
            if (strlen($variable) > 200) {
                continue;
            }
            $sizes[strlen($variable)][] = $variable;
        }

        $sizes[] = array();// Extra one for the next loop
        foreach($sizes as $size => $vars) {
            foreach($vars as $variable) {
                $r = array_filter( $sizes[$size + 1], function ($x) use ($variable) { return levenshtein($x, $variable) === 1; });
                if (!empty($r)) {
                    $results[$variable]['one'] = $r;
                }
            }
        }

        // Group swap : aka confArray and arrayConf
        foreach($sizes as $size => $vars) {
            if ($size < 5) { continue; }
            foreach($vars as $variable) {
                $r = array_filter( $vars, function ($x) use ($variable) { return $this->groupSwap($x, $variable); });
                if (!empty($r)) {
                    $results[$variable]['swap'] = $r;
                }
            }
        }

        return $results;
    }

    private function groupSwap($a, $b) {
        $n = strlen($a) - 3;
        if (strpos($b, $a[1]) === false) { return false; }
        for($i = 2; $i < $n; ++$i) {
            $d = substr($a, $i + 1);
            $e = substr($a, 1, $i);
            if ($d === $e) { continue; }
            $c = '$' . $d . $e;
            if ($c === $b) {
                return true;
            }
        }
    }
}

?>dashboard:
    menu: Dashboard
    title: Dashboard
    file: index
    method: generateDashboard
    icon: dashboard
levels:
    menu: Review
    title: Review level by level
    file: levels
    method: generateLevels
    icon: dashboard
level1:
    menu: Level 1
    title: Level 1
    file: level1
    method: generateLevel
    icon: dashboard
    ruleset: level1
level2:
    menu: Level 2
    title: Level 2
    file: level1
    method: generateLevel
    icon: dashboard
    ruleset: level2
level3:
    menu: Level 3
    title: Level 3
    file: level1
    method: generateLevel
    icon: dashboard
    ruleset: level3
level4:
    menu: Level 4
    title: Level 4
    file: level1
    method: generateLevel
    icon: dashboard
    ruleset: level4
annexes:
    title: Annexes
    icon: sticky-note-o
    subsections: 
        engine_settings:
            title: Engine Settings
            source: annex_settings
            file: engine_settings
            method: generateAnalyzerSettings
        annex_config:
            title: Audit Configuration
            file: annex_config
            method: generateAuditConfig
        processed_files:
            title: Processed files
            source: proc_files
            file: processed_files
            method: generateProcFiles
            icon: file
        processed_analysis:
            title: Processed analysis
            source: proc_analyses
            file: processed_analysis
            method: generateAnalyzersList
            icon: file
        annex_docs:
            title: Analyses documentation
            file: analyses_doc
            method: generateDocumentation
            icon: file
        annex_codes:
            title: Source code
            file: codes
            method: generateCodes
            icon: file
        credits:
            title: Credits
            file: credits
            icon: thumbs-up

dashboard:
    menu: Dashboard
    title: Dashboard
    file: index
    method: generateDashboard
    icon: dashboard
files:
    title: Files Overview
    menu: Files
    file: files
    method: generateFiles
    icon: file-code-o
analysis:
    title: Analyses Overview
    menu: Analyses
    file: analyses
    method: generateAnalyzers
    icon: line-chart
new_issues:
    title: New Issues
    icon: flag
    file: neoissues
    method: generateNewIssues
issues:
    title: Issues
    icon: flag
    file: issues
    method: generateIssuesEngine
    ruleset: Analyze
security:
    title: Security Issues
    menu: Security
    icon: flag
    file: security_issues
    method: generateIssuesEngine
    ruleset: Security
performances:
    title: Performances Issues
    menu: Performances
    icon: flag
    file: performances_issues
    method: generateIssuesEngine
    ruleset: Performances
dead_code:
    title: Dead Code Issues
    menu: Dead code
    icon: flag
    file: deadcode_issues
    method: generateIssuesEngine
    ruleset: Dead code
compatibility:
    title: Compatibility
    icon: certificate
    subsections: 
        compilations:
            title: Compilations
            file: compatibility_compilations
            method: generateCompilations
            icon: certificate
        php_versions:
            title: Compatibility By Version
            menu: PHP Version
            source: empty
            file: compatibility_version
            method: generateCompatibilityEstimate
            icon: certificate
        compatibility_php74:
            source: compatibility
            title: Compatibility PHP 7.4
            file: compatibility_php74
            method: generateCompatibility74
            icon: certificate
        compatibility_php73:
            source: compatibility
            title: Compatibility PHP 7.3
            file: compatibility_php73
            method: generateCompatibility73
            icon: certificate
        compatibility_php72:
            source: compatibility
            title: Compatibility PHP 7.2
            file: compatibility_php72
            method: generateCompatibility72
            icon: certificate
        compatibility_php71:
            source: compatibility
            title: Compatibility PHP 7.1
            file: compatibility_php71
            method: generateCompatibility71
            icon: certificate
        compatibility_php70:
            source: compatibility
            title: Compatibility PHP 7.0
            file: compatibility_php70
            method: generateCompatibility70
            icon: certificate
        compatibility_php56:
            source: compatibility
            title: Compatibility PHP 5.6
            file: compatibility_php56
            method: generateCompatibility56
            icon: certificate
        compatibility_php55:
            source: compatibility
            title: Compatibility PHP 5.5
            file: compatibility_php55
            method: generateCompatibility55
            icon: certificate
        compatibility_php54:
            source: compatibility
            title: Compatibility PHP 5.4
            file: compatibility_php54
            method: generateCompatibility54
            icon: certificate
        compatibility_php53:
            source: compatibility
            title: Compatibility PHP 5.3
            file: compatibility_php53
            method: generateCompatibility53
            icon: certificate
        compatibility_issues:
            title: Compatibility Issues
            menu: Compatibility Issues
            source: compatibility_issues
            file: compatibility_issues
            method: generateIssuesEngine
            ruleset: [CompatibilityPHP74, 
                      CompatibilityPHP73, 
                      CompatibilityPHP72,
                      CompatibilityPHP71,
                      CompatibilityPHP70,
                      CompatibilityPHP56,
                      CompatibilityPHP55,
                      CompatibilityPHP54,
                      CompatibilityPHP53
                      ]
            icon: flag
favorites:
    title: Favorites
    icon: heart
    subsections: 
        compilations:
            title: Favorite Overview
            file: favorites_dashboard
            method: generateFavorites
            icon: certificate
        favorite_issues:
            title: Favorite issues
            file: favorites_issues
            method: generateIssuesEngine
            ruleset: Preferences
suggestions:
    title: Suggestions
    icon: flag
    file: suggestions
    method: generateIssuesEngine
    ruleset: Suggestions
audit:
    title: Audit logs
    icon: sliders
    subsections: 
        appinfo:
            title: Appinfo()
            file: appinfo
            method: generateAppinfo
            icon: circle-o
        bugfixes:
            title: Bugfixes
            source: bugfixes
            file: bugfixes
            method: generateBugFixes
            icon: circle-o
        php_compilation:
            title: PHP Compilation List
            file: php_compilation
            method: generatePhpConfiguration
            icon: circle-o
        directive_list:
            title: PHP Directives List
            file: directive_list
            method: generateDirectiveList
            icon: circle-o
        altered_directives:
            title: Altered PHP Directives
            file: altered_directives
            method: generateAlteredDirectives
            icon: circle-o
        extension_list:
            title: Extensions' List
            file: extension_list
            method: generateExtensionsBreakdown
            icon: circle-o
        ext_lib:
            title: External Libraries' List
            file: ext_lib
            method: generateExternalLib
            icon: circle-o
        external_services:
            title: External Services
            file: external_services
            method: generateExternalServices
            icon: circle-o
        parameters_counts:
            title: Parameter Counts
            file: parameter_counts
            method: generateParameterCounts
            icon: circle-o
        indentation_levels:
            title: Indentation levels
            file: indentation_levels
            method: generateIndentationLevelsBreakdown
            icon: circle-o
        foreach_favorites:
            title: Foreach Favorite Names
            file: foreach_favorites
            method: generateForeachFavorites
            icon: circle-o
        dereferencing_levels:
            title: Dereferencing levels
            file: dereferencing_levels
            method: generateDereferencingLevelsBreakdown
            icon: circle-o
        changed_classes:
            title: Changed Classes
            file: changed_classes
            method: generateChangedClasses
            icon: circle-o
        stats:
            title: Statistics
            file: stats
            method: generateStats
            icon: circle-o
        visibility_suggestions:
            title: Class Visibility Suggestions
            source: empty
            file: visibility_suggestions
            method: generateVisibilitySuggestions
            icon: circle-o
        typehint_suggestions:
            title: Class Typehint Status
            source: empty
            file: typehint_suggestions
            method: generateTypehintSuggestions
            icon: circle-o
        typehint_stats:
            title: Class Typehint Stats
            file: typehint_stats
            method: generateTypehintStats
            icon: circle-o
        class_options_suggestions:
            title: Class Option Recommendations
            source: empty
            file: class_options_suggestions
            method: generateClassOptionSuggestions
            icon: circle-o            
        complex_expressions:
            title: Complex Expressions
            source: complex_expressions
            file: complex_expressions
            method: generateComplexExpressions
            icon: circle-o            
        cit_size:
            title: Classes Sizes
            file: cit_size
            method: generateClassSize
            icon: circle-o            
        method_size:
            title: Methods Sizes
            source: cit_size
            file: method_size
            method: generateMethodSize
            icon: circle-o            
        classes_depth:
            title: Class Depth
            file: classes_depth
            method: generateClassDepth
            icon: circle-o            
        concentrated_issues:
            title: Concentrated Issues
            file: concentrated_issues
            method: generateConcentratedIssues
            icon: circle-o            
        identical_files:
            title: Identical files
            source: identical_files
            file: identical_files
            method: generateIdenticalFiles
            icon: circle-o            
        no_issues:
            title: No Issues Analysis
            file: no_issues
            method: generateNoIssues
            icon: circle-o            
inventories:
    title: Inventories
    icon: shopping-cart
    subsections: 
        dynamic_code:
            title: Dynamic Code
            file: dynamic_code
            method: generateDynamicCode
        global_variables:
            source: globals
            title: Global Variables
            file: global_variables
            method: generateGlobals
        error_messages:
            title: Error Messages
            file: error_messages
            method: generateErrorMessages
        inventories_exceptions:
            title: Exception Inventory
            source: empty
            file: inventories_exceptions
            method: generateExceptionTree
        namespace_tree:
            title: Namespace Tree
            source: empty
            file: inventories_namespacetree
            method: generateNamespaceTree
        classes_tree:
            title: Classes Tree
            source: empty
            file: inventories_classtree
            method: generateClassTree
        inventories_traittree:
            title: Trait Tree
            source: empty
            file: inventories_traittree
            method: generateTraitTree
        inventories_traitmatrix:
            title: Traits Matrix
            source: empty
            file: inventories_traitmatrix
            method: generateTraitMatrix
        inventories_interfacetree:
            title: Interface tree
            source: empty
            file: inventories_interfacetree
            method: generateInterfaceTree
        inventories_magic:
            title: Used Magic Properties
            source: inventories
            file: inventories_magic
            method: generateUsedMagic
        phpfunctions_list:
            title: Native PHP Function usage
            file: phpfunctions_list
            method: generatePHPFunctionBreakdown
        phpconstants_list:
            title: Native PHP Constant usage
            file: phpconstants_list
            method: generatePHPConstantsBreakdown
        phpclasses_list:
            title: PHP Native CIT
            file: phpclasses_list
            method: generatePHPClassesBreakdown
        files_tree:
            title: File dependencies tree
            source: empty
            file: files_tree
            method: generateFileDependencies
        constant_tree:
            title: Constant dependencies tree
            source: empty
            file: constant_tree
            method: generateConstantTree
        variables_confusing:
            title: Confusing Variables
            source: empty
            file: variables_confusing
            method: generateConfusingVariables
        inventories_constants:
            title: Constants Inventory
            source: inventories
            file: inventories_constants
            method: generateInventoriesConstants
        inventories_classes:
            title: Classes Inventory
            source: inventories
            file: inventories_classes
            method: generateInventoriesClasses
        inventories_interfaces:
            title: Interfaces Inventory
            source: inventories
            file: inventories_interfaces
            method: generateInventoriesInterfaces
        inventories_traits:
            title: Traits Inventory
            source: inventories
            file: inventories_traits
            method: generateInventoriesTraits
        inventories_functions:
            title: Functions Inventory
            source: inventories
            file: inventories_functions
            method: generateInventoriesFunctions
        inventories_namespaces:
            title: Namespaces Inventory
            source: inventories
            file: inventories_namespaces
            method: generateInventoriesNamespaces
        inventories_url:
            title: URL Inventory
            source: inventories
            file: inventories_url
            method: generateInventoriesUrl
        inventories_regex:
            title: Regex Inventory
            source: inventories
            file: inventories_regex
            method: generateInventoriesRegex
        inventories_sql:
            title: SQL Inventory
            source: inventories
            file: inventories_sql
            method: generateInventoriesSql
        inventories_gpc:
            title: Incoming Variables
            source: inventories
            file: inventories_gpcindex
            method: generateInventoriesGPCIndex
        inventories_email:
            title: Email Inventory
            source: inventories
            file: inventories_email
            method: generateInventoriesEmail
        inventories_md5:
            title: Hashes Inventory
            source: inventories
            file: inventories_md5string
            method: generateInventoriesMd5string
        inventories_mime:
            title: Mime Inventory
            source: inventories
            file: inventories_mime
            method: generateInventoriesMime
        inventories_pack:
            title: Pack Inventory
            source: inventories
            file: inventories_pack
            method: generateInventoriesPack
        inventories_printf:
            title: Printf Inventory
            source: inventories
            file: inventories_printf
            method: generateInventoriesPrintf
        inventories_path:
            title: Path Inventory
            source: inventories
            file: inventories_path
            method: generateInventoriesPath
        inventories_encodings:
            title: Mbstring Encodings
            source: inventories
            file: inventories_encoding
            method: generateInventoriesEncoding
        inventories_opensslcipher:
            title: OpenSSL Ciphers
            source: inventories
            file: inventories_opensslciphers
            method: generateInventoriesOpenSSLCiphers
Fixes:
    title: Fixes
    icon: wrench
    subsections: 
        fixes_phpcsfixer:
            title: PHP CS Fixer Fixes
            icon: cogs
            file: fixes_phpcsfixer
            method: generateFixesPhpCsFixer
        fixes_rector:
            title: Rector Fixes
            icon: cogs
            source: fixes_rector
            file: fixes_rector
            method: generateFixesRector

annexes:
    title: Annexes
    icon: list-ul
    subsections: 
        engine_settings:
            title: Engine Settings
            source: annex_settings
            file: engine_settings
            method: generateAnalyzerSettings
        annex_config:
            title: Audit Configuration
            file: annex_config
            method: generateAuditConfig
        processed_files:
            title: Processed files
            source: proc_files
            file: processed_files
            method: generateProcFiles
            icon: file
        processed_analysis:
            title: Processed analysis
            source: proc_analyses
            file: processed_analysis
            method: generateAnalyzersList
            icon: file
        annex_docs:
            title: Analyses documentation
            file: analyses_doc
            method: generateDocumentation
            icon: file
        credits:
            title: Credits
            file: credits
            icon: thumbs-up
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;


class Clustergrammer extends Reports {
    const FILE_EXTENSION = 'txt';
    const FILE_FILENAME  = 'clustergrammer';

    public function generate(string $folder, string $name = self::FILE_FILENAME): string {
        $analyzers = $this->rulesets->getRulesetsAnalyzers($this->themesToShow);
        display( count($analyzers) . " analyzers\n");

        $res = $this->dump->fetchAnalysers($analyzers);
        $byAnalyzer = $res->toArray();
        usort($byAnalyzer, function (array $a, array $b): int { return $a['analyzer'] <=> $b['analyzer']; } );
        $skeleton = array();
        foreach($byAnalyzer as $row) {
            $skeleton[$row['analyzer']] = 0;
        }
        display( count($skeleton) . " distinct analyzers\n");

        $titles = array();
        foreach(array_keys($skeleton) as $analyzer) {
            if ($analyzer == 'total') { continue; }
            $ini = $this->docs->getDocs($analyzer);
            $titles[$analyzer] = '"' . $ini['name'] . '"';
        }

        $all = array();
        $byFile = $res->toArray();
        usort($byFile, function (array $a, array $b): int { return $a['file'] <=> $b['file']; } );
        $total = 0;
        foreach($byFile as $row) {
            if (!isset($all[$row['file']])) {
                $all[$row['file']] = $skeleton;
            }
            ++$all[$row['file']][$row['analyzer']];
            ++$total;
        }
        display( $total . " issues read\n");

        $txt = " \t" . implode("\t", array_values($titles)) . "\n";
        foreach($all as $file => $values) {
            $txt .= "$file\t" . implode("\t", array_values($values)) . "\n";
        }

        if ($name === self::STDOUT) {
            return $txt;
        } else {
            file_put_contents($folder . '/' . $name . '.' . self::FILE_EXTENSION, $txt);

            display( count($all) . " issues reported\n");
            print 'Upload ' . $name . '.' . self::FILE_EXTENSION . " on http://amp.pharm.mssm.edu/clustergrammer/\n";
            return '';
        }
    }
}


?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports\Helpers;

use Exakat\Exakat;

class Dot {
    private $links   = array();
    private $nodes   = array();
    private $options = array();

    public function __construct() {
    }

    public function addNode($label, $options = array()) {
        $node = array_merge(compact('label'), $options);
        $this->nodes[] = $node;

        return count($this->nodes) - 1;
    }

    public function addLink($o, $d) {
        if (!isset($this->links[$o])) {
            $this->links[$o] = array();
        }
        $this->links[$o][] = $d;
    }

    public function setOptions($what, $name, $value) {
        $this->options[$what][$name] = $value;
    }

    public function __toString() {
        $atoms = array();

        foreach($this->nodes as $id => $label) {
            $options = $this->toStyle(array_merge($this->options['nodes'], $label));

            $atoms[] = "$id [$options]";
        }
        $atoms = implode(PHP_EOL, $atoms);

        $links = array();
        foreach($this->links as $origin => $destinations) {
            foreach($destinations as $destination) {
                $links[] = $origin . ' -> ' . $destination;
            }
        }
        $links = implode(PHP_EOL, $links);

        $date = date('r');
        $version = Exakat::VERSION;

        $options = 'graph [' . $this->toStyle($this->options['graph'] ?? array()) . '];' . PHP_EOL .
                   'node [' . $this->toStyle($this->options['node'] ?? array()) . '];' . PHP_EOL .
                   'edge [' . $this->toStyle($this->options['link'] ?? array()) . '];' . PHP_EOL;

        $r = "digraph graphname {
/* This file was generated by Exakat $version.
   date : $date
   http://www.exakat.io/  
*/

$options

$atoms

$links
}";

        return $r;
    }

    private function toStyle(array $array = array()): string {
        $return = array();
        foreach($array as $name => $value) {
            $return[] = "$name=\"$value\"";
        }

        return implode(' ', $return);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports\Helpers;

use SQLite3Result;
use Closure;

class Results {
    private $count        = -1;
    private $values       = null;
    private $options      = array();
    private $res          = null;

    public function __construct(?SQLite3Result $res = null, $options = array()) {
        if ($res === null) {
            $this->values = array();
        } else {
            $this->res = $res;
        }

        $this->options = $options;
        $this->options['phpsyntax'] = $this->options['phpsyntax']  ?? array();
    }

    public function load(): int {
        $this->values = array();
        $this->count  = 0;

        while($row = $this->res->fetchArray(\SQLITE3_ASSOC)) {
            foreach ($this->options['phpsyntax'] as $source => $destination) {
                $row[$destination] = PHPSyntax((string) $row[$source]);
            }
            $this->values[] = $row;
            ++$this->count;
        }

        return $this->count;
    }

    public function isEmpty(): bool {
        if ($this->values === null) {
            $this->load();
        }

        return $this->count === 0;
    }

    public function getCount(): int {
        return $this->count;
    }

    public function getColumn(string $column): array {
        if ($this->values === null) {
            $this->load();
        }

        return array_column($this->values, $column);
    }

    public function toGroupedBy(string $col1, string $col2 = null): array {
        if ($this->values === null) {
            $this->load();
        }

        $return = array();
        if ($col2 === null) {
            foreach($this->values as $row) {
                if (isset($return[$row[$col1]]) ) {
                    $return[$row[$col1]][] = $row;
                } else {
                    $return[$row[$col1]] = array($row);
                }
            }
        } else {
            foreach($this->values as $row) {
                if (!isset($return[$row[$col1]]) ) {
                    $return[$row[$col1]] = array();
                }

                if (!isset($return[$row[$col1]][$col2])) {
                    $return[$row[$col1]][$col2] = array();
                }

                $return[$row[$col1]][$col2][] = $row;
            }
        }

        return $return;
    }


    public function toArray(): array {
        if ($this->values === null) {
            $this->load();
        }

        return $this->values;
    }

    public function toArrayHash($key = ''): array {
        if ($this->values === null) {
            $this->load();
        }

        if (empty($key)) {
            return array();
        }

        $return = array();
        foreach($this->values as $value) {
            $return[$value[$key]] = $value;
        }

        return $return;
    }

    public function toList(string $col = null): array {
        if ($this->values === null) {
            $this->load();
        }

        if ($col === null) {
            $col = array_keys($this->values[0])[0];
        }

        return array_column($this->values, $col);
    }

    public function toString(string $col = ''): string {
        if ($this->values === null) {
            $this->load();
        }

        if ($col === '') {
            $first = array_keys($this->values[0])[0];
            return $this->values[0][$first];
        } else {
            return (string) ($this->values[0][$col] ?? '');
        }
    }

    public function toInt(string $col = ''): int {
        if ($this->values === null) {
            $this->load();
        }

        if (empty($this->values)) {
            return 0;
        }

        if ($col === '') {
            $first = array_keys($this->values[0])[0];
            return (int) $this->values[0][$first];
        }

        return (int) ($this->values[0][$col] ?? 0);
    }

    public function toHash(string $key, string $value = null): array {
        if ($this->values === null) {
            $this->load();
        }

        $return = array();
        if ($value === null) {
            foreach ($this->values as $row) {
                $return[$row[$key]] = $row;
            }
        } else {
            foreach ($this->values as $row) {
                $return[$row[$key]] = $row[$value];
            }
        }

        return $return;
    }

    public function slice(int $begin = 0, int $end = PHP_INT_MAX) {
        if ($this->values === null) {
            $this->load();
        }

        $this->values = array_slice($this->values, $begin, $end);
    }

    public function filter(Closure $f) {
        if ($this->values === null) {
            $this->load();
        }

        $this->values = array_filter($this->values, $f);
    }

    public function order(Closure $f) {
        if ($this->values === null) {
            $this->load();
        }

        usort($this->values, $f);
    }

    public function map(Closure $f) {
        if ($this->values === null) {
            $this->load();
        }

        $this->values = array_map($f, $this->values);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Reports\Helpers;

use Exakat\Dump\Dump;

class PhpCodeTree {
    private $dump           = null;

    public $namespaces      = array();

    public $constants       = array();
    public $functions       = array();

    public $cits            = array();
    public $classconstants  = array();
    public $properties      = array();
    public $methods         = array();

    public function __construct(Dump $dump) {
        $this->dump = $dump;
    }

    public function load(): void {
        // collect namespaces
        $res = $this->dump->fetchTable('namespaces');
        foreach($res->toArray() as $row) {
            $row['cits']                  = &$this->cits;
            $row['functions']             = &$this->functions;
            $row['constants']             = &$this->constants;
            $row['map']                   = array();
            $row['reduced']               = '';
            array_collect_by($this->namespaces, 0, $row);
        }

        // collect constants
        $res = $this->dump->fetchTable('constants');
        foreach($res->toArray() as $row) {
            array_collect_by($this->constants, $row['namespaceId'], $row);
        }

        // collect functions
        $res = $this->dump->fetchTableFunctions();
        foreach($res->toArray() as $row) {
            array_collect_by($this->functions, $row['namespaceId'], $row);
        }

        // collect cit
        $res = $this->dump->fetchTableCit();
        foreach($res->toArray() as $row) {
            $row['methods']         = &$this->methods;
            $row['properties']      = &$this->properties;
            $row['classconstants']  = &$this->classconstants;

            array_collect_by($this->cits, $row['namespaceId'], $row);
        }

        // collect properties
        $res = $this->dump->fetchTable('properties');
        foreach($res->toArray() as $row) {
            array_collect_by($this->properties, $row['citId'], $row);
        }

        // collect class constants
        $res = $this->dump->fetchTable('classconstants');
        foreach($res->toArray() as $row) {
            array_collect_by($this->classconstants, $row['citId'], $row);
        }

        // collect methods
        $res = $this->dump->fetchTableMethods();
        foreach($res->toArray() as $row) {
            array_collect_by($this->methods, $row['citId'], $row);
        }
    }

    public function map(string $what, Callable $closure) {
        if (!property_exists($this, $what)) {
            return;
        }

        foreach($this->$what as $id => &$items) {
            $items['map'] = array_map($closure, $items);
        }
    }

    public function reduce(string $what, Callable $closure) {
        if (!property_exists($this, $what)) {
            return;
        }

        foreach($this->$what as $id => &$items) {
            $items['reduced'] = array_reduce($items['map'], $closure, '');
        }
    }

    public function get(string $what) {
        if (!property_exists($this, $what)) {
            return;
        }

        return $this->$what[0]['reduced'];
    }
}
<?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports\Helpers;

class Highchart {
    private $series = array();
    private $xAxis  = array();
    private $donuts = array();

    public function addSeries(string $name, array $xAxis, array ...$series): void {
        $this->xAxis  [$name]= $xAxis;
        $this->series [$name]= $series;
    }

    public function addDonut(string $name, array $data): void {
        $this->donuts[$name] = $data;
    }

    public function __toString(): string {
        $return = array();
        foreach($this->xAxis as $name => $x) {
            $return []= $this->chart($name, $x, $this->series[$name]);
        }
        $return = implode(PHP_EOL, $return);

        $donuts = array();
        foreach($this->donuts as $name => $donut) {
            $data = json_encode($donut);

            $donuts[] = <<<JAVASCRIPT
      Morris.Donut({
        element: '$name',
        resize: true,
        colors: ["#3c8dbc", "#f56954", "#00a65a", "#1424b8"],
        data: $data
      });

JAVASCRIPT;
        }
        $donuts = implode(PHP_EOL, $donuts);

        $return = <<<JAVASCRIPT
  <script>
    $(document).ready(function() {
      $donuts
      Highcharts.theme = {
         colors: ["#F56954", "#f7a35c", "#ffea6f", "#D2D6DE"],
         chart: {
            backgroundColor: null,
            style: {
               fontFamily: "Dosis, sans-serif"
            }
         },
         title: {
            style: {
               fontSize: '16px',
               fontWeight: 'bold',
               textTransform: 'uppercase'
            }
         },
         tooltip: {
            borderWidth: 0,
            backgroundColor: 'rgba(219,219,216,0.8)',
            shadow: false
         },
         legend: {
            itemStyle: {
               fontWeight: 'bold',
               fontSize: '13px'
            }
         },
         xAxis: {
            gridLineWidth: 1,
            labels: {
               style: {
                  fontSize: '12px'
               }
            }
         },
         yAxis: {
            minorTickInterval: 'auto',
            title: {
               style: {
                  textTransform: 'uppercase'
               }
            },
            labels: {
               style: {
                  fontSize: '12px'
               }
            }
         },
         plotOptions: {
            candlestick: {
               lineColor: '#404048'
            }
         },


         // General
         background2: '#F0F0EA'
      };

      // Apply the theme
      Highcharts.setOptions(Highcharts.theme);
      
      $return

    });
</script>
JAVASCRIPT;

        return $return;
    }

    private function chart($name, $xAxis, $series): string {
        $return = array();
        $xAxis  = json_encode($xAxis);
        $series  = json_encode($series);

        $return []= <<<JAVASCRIPT
      $('#$name').highcharts({
          credits: {
            enabled: false
          },

          exporting: {
            enabled: false
          },

          chart: {
              type: 'column'
          },
          title: {
              text: ''
          },
          xAxis: {
              categories: $xAxis
          },
          yAxis: {
              min: 0,
              title: {
                  text: ''
              },
              stackLabels: {
                  enabled: false,
                  style: {
                      fontWeight: 'bold',
                      color: (Highcharts.theme && Highcharts.theme.textColor) || 'gray'
                  }
              }
          },
          legend: {
              align: 'right',
              x: 0,
              verticalAlign: 'top',
              y: -10,
              floating: false,
              backgroundColor: (Highcharts.theme && Highcharts.theme.background2) || 'white',
              borderColor: '#CCC',
              borderWidth: 1,
              shadow: false
          },
          tooltip: {
              headerFormat: '<b>{point.x}</b><br/>',
              pointFormat: '{series.name}: {point.y}<br/>Total: {point.stackTotal}'
          },
          plotOptions: {
              column: {
                  stacking: 'normal',
                  dataLabels: {
                      enabled: false,
                      color: (Highcharts.theme && Highcharts.theme.dataLabelsColor) || 'white',
                      style: {
                          textShadow: '0 0 3px black'
                      }
                  }
              }
          },
          series: $series
      });

JAVASCRIPT;

        return implode(PHP_EOL, $return);
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports\Helpers;

use Exakat\Analyzer\Analyzer;
use Exakat\Autoload\AutoloadExt;
use Exakat\Autoload\AutoloadDev;

class Docs {
    private $pathToIni = null;
    private $ext       = null;
    private $dev       = null;

    private static $docs = null;

    public function __construct(string $pathToIni, AutoloadExt $ext = null, AutoloadDev $dev = null) {
        $this->pathToIni = $pathToIni;
        $this->ext = $ext;
        $this->dev = $dev;
    }

    public function getDocs(string $analyzer, string $property = null) {
        if (isset(self::$docs[$analyzer])) {
            if (isset(self::$docs[$analyzer][$property])) {
                return self::$docs[$analyzer][$property];
            } else {
                return self::$docs[$analyzer];
            }
        }

        if (file_exists("{$this->pathToIni}/human/en/$analyzer.ini")) {
            $ini = parse_ini_file("{$this->pathToIni}/human/en/$analyzer.ini", \INI_PROCESS_SECTIONS);
        } elseif (($this->dev !== null) && ($iniString = $this->dev->loadData("human/en/$analyzer.ini")) !== null) {
            $ini = parse_ini_string($iniString, \INI_PROCESS_SECTIONS);
        } elseif (($this->ext !== null) && ($iniString = $this->ext->loadData("human/en/$analyzer.ini")) !== null) {
            $ini = parse_ini_string($iniString, \INI_PROCESS_SECTIONS);
        } else {
            assert(file_exists("{$this->pathToIni}/human/en/$analyzer.ini"), "No documentation for '$analyzer'.");
        }
        assert($ini !== null, "No readable documentation for '$analyzer'.");

        $ini['parameter'] = array();
        $ranks = array_intersect(array_keys($ini), array('parameter1', 'parameter2', 'parameter3'));
        foreach($ranks as $rank) {
            $ini['parameter'][] = $ini[$rank];
            unset($ini[$rank]);
        }

        if (empty($ini['severity'])) {
            $ini['severity'] = Analyzer::S_NONE;
        } else {
            $ini['severity'] = constant(Analyzer::class . '::' . $ini['severity']);
        }

        if (empty($ini['timetofix'])) {
            $ini['timetofix'] = Analyzer::S_NONE;
        } else {
            $ini['timetofix'] = constant(Analyzer::class . '::' . $ini['timetofix']);
        }

        if (empty($ini['phpversion'])) {
            $ini['phpversion'] = Analyzer::PHP_VERSION_ANY;
        }

        self::$docs[$analyzer] = $ini;

        if (isset(self::$docs[$analyzer][$property])) {
            return self::$docs[$analyzer][$property];
        } else {
            return self::$docs[$analyzer];
        }
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Reports;


class Inventories extends Reports {
    const FILE_EXTENSION = '';
    const FILE_FILENAME  = 'inventories';

    public function generate(string $folder, string $name = self::FILE_FILENAME): string {
        if ($name == self::STDOUT) {
            print "Can't produce Inventories format to stdout\n";
            return '';
        }

        $path = "$folder/$name";

        if (file_exists($path)) {
            rmdirRecursive($path);
        }
        mkdir($path, 0777);

        $this->saveInventory('Constants/Constantnames',      "$folder/$name/constants.csv");
        $this->saveInventory('Functions/Functionnames',      "$folder/$name/functions.csv");
        $this->saveInventory('Classes/Classnames',           "$folder/$name/classes.csv");
        $this->saveInventory('Interfaces/Interfacenames',    "$folder/$name/interfaces.csv");
        $this->saveInventory('Traits/Traitnames',            "$folder/$name/traits.csv");
        $this->saveInventory('Namespaces/Namespacesnames',   "$folder/$name/namespaces.csv");
        $this->saveInventory('Exceptions/DefinedExceptions', "$folder/$name/exceptions.csv");

        $this->saveTable(    'variables',                     "$folder/$name/variables.csv", array('variable', 'type'));
        $this->saveInventory('Php/IncomingVariables',         "$folder/$name/incomingGPC.csv");
        $this->saveInventory('Php/SessionVariables',          "$folder/$name/sessions.csv");
        $this->saveInventory('Variables/GlobalVariables',     "$folder/$name/globals.csv");

        $this->saveInventory('Php/DateFormats',               "$folder/$name/dateformats.csv");
        $this->saveInventory('Type/Url',                      "$folder/$name/sql.csv");
        $this->saveInventory('Type/Regex',                    "$folder/$name/regex.csv");
        $this->saveInventory('Type/Sql',                      "$folder/$name/sql.csv");
        $this->saveInventory('Type/Email',                    "$folder/$name/email.csv");
        $this->saveInventory('Type/UnicodeBlock',             "$folder/$name/unicode-block.csv");
        $this->saveInventory('Type/GPCIndex',                 "$folder/$name/email.csv");
        $this->saveInventory('Type/Md5string',                "$folder/$name/md5string.csv");
        $this->saveInventory('Type/Mime',                     "$folder/$name/mime.csv");
        $this->saveInventory('Type/Pack',                     "$folder/$name/pack.csv");
        $this->saveInventory('Type/Printf',                   "$folder/$name/printf.csv");
        $this->saveInventory('Type/Path',                     "$folder/$name/path.csv");
        $this->saveInventory('Type/Shellcommands',            "$folder/$name/shellcmd.csv");

        $this->saveAtom('Integer',      "$path/integers.csv");
        $this->saveAtom('ArrayLiteral', "$path/arrays.csv");
        $this->saveAtom('Heredoc',      "$path/heredoc.csv");
        $this->saveAtom('Float',        "$path/float.csv");
        $this->saveAtom('String',       "$path/strings.csv");

        $this->saveTable('globalVariables',       "$path/globals.csv", array('variable', 'file', 'line', 'isRead', 'isModified', 'type'));
        $this->saveTable('inclusions',       "$path/inclusions.csv", array('including', 'included'));

        return '';
    }

    private function saveInventory(string $analyzer, string $file): void {
        $res = $this->dump->fetchAnalysers(array($analyzer));
        $fp = fopen($file, 'w+');
        fputcsv($fp, array('Name', 'File', 'Line'));
        foreach($res->toArray() as $row) {
            fputcsv($fp, $row);
        }
        $this->count($res->getCount());
        fclose($fp);
    }

    private function saveAtom(string $atom, string $file): void {
        $res = $this->dump->fetchTable('literal' . $atom);
        if ($res->isEmpty() === true) {
            file_put_contents($file, 'This file is left voluntarily empty. Nothing to report here. ');
            return;
        }
        $fp = fopen($file, 'w+');
        fputcsv($fp, array('Name', 'File', 'Line'));
        foreach($res->toArray() as $row) {
            fputcsv($fp, $row);
        }
        $this->count($res->getCount());
        fclose($fp);
    }

    private function saveTable(string $table, string $file, array $columns): void {
        $res = $this->dump->fetchTable($table);
        if ($res->isEmpty() === true) {
            file_put_contents($file, 'This file is left voluntarily empty. Nothing to report here. ');
            return ;
        }

        $fp = fopen($file, 'w+');
        fputcsv($fp, $columns);

        foreach($res->toArray() as $row) {
            $r = array();
            foreach($columns as $c) {
                $r[$c] = $row[$c];
            }
            fputcsv($fp, $r);
        }
        $this->count($res->getCount());
        fclose($fp);
    }

    public function dependsOnAnalysis(): array {
        return array('Inventories',
                     );
    }

}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/


namespace Exakat\Reports;


class Phpcompilation extends Reports {
    const FILE_EXTENSION = 'txt';
    const FILE_FILENAME  = 'compilePHP';

    protected function _generate(array $analyzerList): string {
        $themed = $this->rulesets->getRulesetsAnalyzers(array('Appinfo'));
        $res = $this->dump->fetchAnalysersCounts($themed);
        $sources = array_filter($res->toHash('analyzer', 'count'), function ($x) { return $x > -1;});
        $this->count($res->getCount());

        $configureDirectives = json_decode(file_get_contents("{$this->config->dir_root}/data/configure.json"));

        // preparing the list of PHP extensions to compile PHP with
        $return = array(<<<'TEXT'
;;;;;;;;;;;;;;;;;;;;;;;;
; PHP configure list   ;
;;;;;;;;;;;;;;;;;;;;;;;;

TEXT
        ,
        './configure');
        $pecl = array();
        foreach($configureDirectives as $configure) {
            if (isset($sources[$configure->analysis])) {
                if(!empty($configure->activate) && $sources[$configure->analysis] != 0) {
                    $return[] = ' ' . $configure->activate;
                    if (!empty($configure->others)) {
                        $return[] = '   ' . implode(PHP_EOL . '    ', $configure->others);
                    }
                    if (!empty($configure->pecl)) {
                        $pecl[] = '#pecl install ' . basename($configure->pecl) . ' (' . $configure->pecl . ')';
                    }
                } elseif(!empty($configure->deactivate) && $sources[$configure->analysis] == 0) {
                    $return[] = ' ' . $configure->deactivate;
                }
            }
        }

        $return = array_merge($return, array(
                   '',
                   '; For debug purposes',
                   ';--enable-dtrace',
                   ';--disable-phpdbg',
                   '',
                   ';--enable-zend-signals',
                   ';--disable-opcache',
            ));

        $final = '';
        if (!empty($pecl)) {
            $c = count($pecl);
            $final .= '# install ' . ( $c === 1 ? 'one' : $c) . ' extra extension' . ($c === 1 ? '' : 's') . "\n";
            $final .= implode("\n", $pecl) . "\n\n";
        }
        $final .= implode("\n", $return);

        return $final;
    }

    public function dependsOnAnalysis(): array {
        return array('Appinfo',
                     );
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;


class Radwellcode extends Reports {
    const FILE_EXTENSION = 'txt';
    const FILE_FILENAME  = 'radwell';

    protected $themesToShow = array('RadwellCodes');

    private $descriptions = array(
                             'Structures/NestedIfthen'                      => 'Too many nested if statements',
                             'Structures/NoParenthesisForLanguageConstruct' => 'Extra brackets and braces',
                             'Structures/UselessBrackets'                   => 'Extra brackets and braces',
                             'Type/OneVariableStrings'                      => 'Extra brackets and braces and quotes',
                             'Structures/UselessCasting'                    => 'Unnecessary casting',
                             'Structures/NoIssetWithEmpty'                  => 'Useless checks',
                             'Performances/timeVsstrtotime'                 => 'Slow PHP built-in functions',
                             'Performances/SlowFunctions'                   => 'Slow PHP built-in functions',
                             'Php/IsnullVsEqualNull'                        => 'Slow PHP built-in functions',
    //                             '' => 'Long functions',
    //                             '' => 'Too many function arguments',
    //                             '' => 'Long lines',
                             'Structures/SwitchToSwitch'                    => 'Long if-else blocks',
                             'Php/UpperCaseKeyword'                         => 'Wrong function / class name casing',
                             'Classes/WrongCase'                            => 'Wrong function / class name casing',
    //                             '' => 'Lack of coding standards',

                             );

    public function generate(string $folder, string $name = self::FILE_FILENAME): string {
        $list = $this->rulesets->getRulesetsAnalyzers($this->themesToShow);

        $resultsAnalyzers = $this->dump->fetchAnalysers($list);

        $results = array();
        $titleCache = array();
        $severityCache = array();
        foreach($resultsAnalyzers->toArray() as $row) {
            if (!isset($results[$row['file']])) {
                $file = array('errors'   => 0,
                              'warnings' => 0,
                              'fixable'  => 0,
                              'filename' => $row['file'],
                              'messages' => array());
                $results[$row['file']] = $file;
            }

            if (!isset($titleCache[$row['analyzer']])) {
                $analyzer = $this->rulesets->getInstance($row['analyzer'], null, $this->config);

                $titleCache[$row['analyzer']]    = $this->docs->getDocs($row['analyzer'], 'name');
                $severityCache[$row['analyzer']] = $this->docs->getDocs($row['analyzer'], 'severity');
            }

            $message = array('type'     => 'warning',
                             'source'   => $row['analyzer'],
                             'severity' => $severityCache[$row['analyzer']],
                             'fixable'  => 'fixable',
                             'message'  => $this->descriptions[$row['analyzer']]);

            if (!isset($results[ $row['file'] ]['messages'][ $row['line'] ])) {
                $results[ $row['file'] ]['messages'][ $row['line'] ] = array(0 => array());
            }
            $results[ $row['file'] ]['messages'][ $row['line'] ][0][] = $message;

            ++$results[ $row['file'] ]['warnings'];
        }

        $text = '';
        foreach($results as $file) {
            foreach($file['messages'] as $line => $column) {
                $messages = $column[0];
                foreach($messages as $message) {
                    $text .= $file['filename'] . ':' . $line . ' ' . $message['message'] . "\n";
                    $this->count();
                }
            }
        }

        if ($name === Reports::STDOUT) {
            echo $text;
            return '';
        } else {
            file_put_contents($folder . '/' . $name . '.' . self::FILE_EXTENSION, $text);
            return '';
        }
    }

    public function dependsOnAnalysis(): array {
        return array('RadwellCodes',
                     );
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat\Reports;


class Text extends Reports {
    const FILE_EXTENSION = 'txt';
    const FILE_FILENAME  = self::STDOUT;

    public function _generate(array $analyzerList): string {
        $analysisResults = $this->dump->fetchAnalysers($analyzerList);

        $results = array();
        $titleCache = array();
        $severityCache = array();
        foreach($analysisResults->toArray() as $row) {
            if (!isset($results[$row['file']])) {
                $file = array('errors'   => 0,
                              'warnings' => 0,
                              'fixable'  => 0,
                              'filename' => $row['file'],
                              'messages' => array());
                $results[$row['file']] = $file;
            }

            if (!isset($titleCache[$row['analyzer']])) {
                $titleCache[$row['analyzer']]    = $this->docs->getDocs($row['analyzer'], 'name');
                $severityCache[$row['analyzer']] = $this->docs->getDocs($row['analyzer'], 'severity');
            }

            $message = array('type'     => 'warning',
                             'source'   => $row['analyzer'],
                             'severity' => $severityCache[$row['analyzer']],
                             'fixable'  => 'fixable',
                             'message'  => $titleCache[$row['analyzer']],
                             'fullcode' => $row['fullcode']);

            if (!isset($results[ $row['file'] ]['messages'][ $row['line'] ])) {
                $results[ $row['file'] ]['messages'][ $row['line'] ] = array(0 => array());
            }
            $results[ $row['file'] ]['messages'][ $row['line'] ][0][] = $message;

            ++$results[ $row['file'] ]['warnings'];
        }

        $text = '';
        foreach($results as $file) {
            foreach($file['messages'] as $line => $column) {
                $messages = $column[0];
                foreach($messages as $message) {
                    $text .= $file['filename'] . ':' . $line . "\t" . $message['source'] . "\t" . $message['message'] . "\t" . $message['fullcode'] . "\n";
                    $this->count();
                }
            }
        }

        return $text;
    }
}

?><?php declare(strict_types = 1);
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

namespace Exakat;

use Exakat\Exceptions\NoPhpBinary;

class Phpexec {
    private $phpexec          = 'php';
    private static $extraTokens    = array(';'       => 'T_SEMICOLON',
                                           '='       => 'T_EQUAL',
                                           '+'       => 'T_PLUS',
                                           '-'       => 'T_MINUS',
                                           '*'       => 'T_STAR',
                                           '/'       => 'T_SLASH',
                                           '%'       => 'T_PERCENTAGE',
                                           '('       => 'T_OPEN_PARENTHESIS',
                                           ')'       => 'T_CLOSE_PARENTHESIS',
                                           '!'       => 'T_BANG',
                                           '['       => 'T_OPEN_BRACKET',
                                           ']'       => 'T_CLOSE_BRACKET',
                                           '{'       => 'T_OPEN_CURLY',
                                           '}'       => 'T_CLOSE_CURLY',
                                           '.'       => 'T_DOT',
                                           ','       => 'T_COMMA',
                                           '@'       => 'T_AT',
                                           '?'       => 'T_QUESTION',
                                           ':'       => 'T_COLON',
                                           '>'       => 'T_GREATER',
                                           '<'       => 'T_SMALLER',
                                           '&'       => 'T_AND',
                                           '^'       => 'T_XOR',
                                           '|'       => 'T_OR',
                                           '&&'      => 'T_ANDAND',
                                           '||'      => 'T_OROR',
                                           '"'       => 'T_QUOTE',
                                           '"_CLOSE' => 'T_QUOTE_CLOSE',
                                           '$'       => 'T_DOLLAR',
                                           '`'       => 'T_SHELL_QUOTE',
                                           '`_CLOSE' => 'T_SHELL_QUOTE_CLOSE',
                                           '~'       => 'T_TILDE');
    private static $tokens    = array();
    private $config           = null;
    private $isCurrentVersion = false;
    private $actualVersion    = null;
    private $requestedVersion = null;
    private $error            = array();
    private $version          = '';

    private const CLI_OR_DOCKER_REGEX = '#[a-z0-9]+/[a-z0-9]+:[a-z0-9]+#i';

    const VERSIONS         = array('5.2', '5.3', '5.4', '5.5', '5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', );
    const VERSIONS_COMPACT = array('52',  '53',  '54',  '55',  '56',  '70',  '71',  '72',  '73',  '74',  '80', );

    public function __construct(string $phpversion = null, string $pathToBinary = '') {
        assert($phpversion !== null, "Php version must be a valid version, not $phpversion.");
        assert($pathToBinary !== '', "Path to PHP binary can't be empty for '$phpversion'.");

        $this->requestedVersion = substr($phpversion, 0, 3);

        $this->version = $phpversion;
        $phpversion3 = substr($phpversion, 0, 3);

        $this->isCurrentVersion = substr(PHP_VERSION, 0, 3) === $phpversion3;
        if ($this->isCurrentVersion === true) {
            if (preg_match('/^(\d\.\d+\.\d+)/', PHP_VERSION, $r)) {
                $this->actualVersion = $r[1];
            } else {
                $this->actualVersion = PHP_VERSION;
            }

            if (substr($this->actualVersion, 0, 3) !== $this->requestedVersion) {
                throw new NoPhpBinary('PHP binary for version ' . $this->requestedVersion . ' (' . PHP_BINARY . ') doesn\'t have the right middle version : "' . $this->actualVersion . '". Please, check config/exakat.ini');
            }
        } elseif (preg_match(self::CLI_OR_DOCKER_REGEX, $pathToBinary)) {
            $res = shell_exec('docker run -it --rm --name php4exakat -v "$PWD":/exakat  -w /exakat ' . $pathToBinary . ' php -v 2>&1');
            if (preg_match('/PHP (\d\.\d+\.\d+)/', $res, $r)) {
                $this->actualVersion = $r[1];
            } else {
                $this->actualVersion = 'Error while reading PHP version for ' . $phpversion;
            }
        } else {
            $res = shell_exec("$pathToBinary -v") ?? '';
            if (preg_match('/PHP (\d\.\d+\.\d+)/', $res, $r)) {
                $this->actualVersion = $r[1];
            } else {
                $this->actualVersion = 'Error while reading PHP version for ' . $phpversion;
            }
        }

        if (empty($pathToBinary)) {
            $this->phpexec = PHP_BINARY;
            // PHP will be always valid if we use the one that is currently executing us
            $this->actualVersion = PHP_VERSION;
        } else {
            $this->phpexec = $pathToBinary;
        }

        $this->readConfig();

        if (preg_match(self::CLI_OR_DOCKER_REGEX, $this->phpexec)) {
            $folder = $pathToBinary;
            $res = shell_exec('docker run -it --rm --name php4exakat -v "$PWD":/exakat  -w /exakat ' . $this->phpexec . ' php -v 2>&1') ?? '';

            if (substr($res, 0, 4) !== 'PHP ') {
                throw new NoPhpBinary('Error when accessing Docker\'s PHP : "' . $res . '". Please, check config/exakat.ini');
            }
        } else {
            if (!file_exists($this->phpexec)) {
                throw new NoPhpBinary("PHP binary for version '.$phpversion.' is not valid : '{$this->phpexec}'. Please, check config/exakat.ini");
            }

            if (!is_executable($this->phpexec)) {
                throw new NoPhpBinary('PHP binary for version ' . $phpversion . ' exists but is not executable : "' . $this->phpexec . '". Please, check config/exakat.ini');
            }
        }
    }
    
    public function getVersion() : string {
        return $this->version;
    }

    public function getTokens() : array {
        // prepare the list of tokens
        if ($this->isCurrentVersion === true) {
            $x = get_defined_constants(true);
            unset($x['tokenizer']['TOKEN_PARSE']);
            $tokens = array_flip($x['tokenizer']);
        } elseif (preg_match(self::CLI_OR_DOCKER_REGEX, $this->phpexec)) {
            $shell = 'docker run -it --entrypoint /bin/bash --rm ' . $this->phpexec . " -c 'php -r \"\\\$x = get_defined_constants(true);  if (!isset(\\\$x['tokenizer'])) { \\\$x['tokenizer'] = array();  } unset(\\\$x['tokenizer']['TOKEN_PARSE']); var_export(array_flip(\\\$x['tokenizer'])); \"'";
            $res = shell_exec($shell);

            $tmpFile = tempnam(sys_get_temp_dir(), 'Phpexec');
            file_put_contents($tmpFile, "<?php \$tokens = $res; ?>");
            include $tmpFile;
            unlink($tmpFile);
            if (empty($tokens)) {
                return false;
            }
        } else {
            $tmpFile = tempnam(sys_get_temp_dir(), 'Phpexec');
            shell_exec($this->phpexec . ' -r "print \'<?php \\$tokens = \'; \\$x = get_defined_constants(true); if (!isset(\\$x[\'tokenizer\'])) { \\$x[\'tokenizer\'] = array(); }; unset(\\$x[\'tokenizer\'][\'TOKEN_PARSE\']); var_export(array_flip(\\$x[\'tokenizer\'])); print \';  ?>\';" > ' . $tmpFile);
            include $tmpFile;
            unlink($tmpFile);
            if (empty($tokens)) {
                return false;
            }
        }

        // prepare extra tokens
        self::$tokens = $tokens + self::$extraTokens;

        return self::$tokens;
    }

    public function getTokenName($token) : string {
        return self::$tokens[$token];
    }

    public function getTokenFromFile(string $file) : array {
        if ($this->isCurrentVersion === true) {
            $tokens = @token_get_all(file_get_contents($file));
        } elseif (preg_match(self::CLI_OR_DOCKER_REGEX, $this->phpexec)) {
            $filename = basename($file);
            $path     = realpath(dirname($file));

            $shell      = "docker run -it -v $path:/exakat -w /exakat --entrypoint /bin/bash --rm {$this->phpexec} -c 'php -r \"\\\$code = file_get_contents(\\\"$filename\\\"); \\\$code = strpos(\\\$code, \\\"<?\\\") === false ? \\\"\\\" : \\\$code; var_export(@token_get_all(\\\$code));\"' ";

            $res = shell_exec($shell);
            try {
                eval("\$tokens = $res;");
            } catch (\Throwable $t) {
                $tokens = array();
            }

            if (empty($tokens)) {
                return array();
            }
        }

        $tmpFile = tempnam(sys_get_temp_dir(), 'Phpexec');
        // -d short_open_tag=1
        $filename = $this->escapeFile($file);
        shell_exec($this->phpexec . '  -r "print \'<?php \\$tokens = \'; \\$code = file_get_contents(' . $filename . '); \\$code = strpos(\\$code, \'<?\') === false ? \'\' : \\$code; var_export(@token_get_all(\\$code)); print \'; ?>\';" > ' . escapeshellarg($tmpFile));
        include $tmpFile;

        unlink($tmpFile);

        // In case the inclusion failed at parsing time
        if (!isset($tokens)) {
            $tokens = array();
        }
        return $tokens;
    }

    private function escapeFile(string $file) : string {
        return "'" . str_replace(array("'", '"', '$'), array("\\'", '\\"', '\\$'), $file) . "'";
    }

    public function countTokenFromFile(string $file) : string {
        // Can't use PHP_SELF, because short_ini_tag can't be changed.
        if (preg_match(self::CLI_OR_DOCKER_REGEX, $this->phpexec)) {
            $filename = $this->escapeFile($file);
            $res = shell_exec($this->phpexec . ' -d short_open_tag=1 -r "print count(@token_get_all(file_get_contents(' . $filename . '))); ?>" 2>&1    ');
        } else {
            $filename = $this->escapeFile($file);
            $res = shell_exec($this->phpexec . ' -d short_open_tag=1 -r "print count(@token_get_all(file_get_contents(' . $filename . '))); ?>" 2>&1    ');
        }

        return $res;
    }

    public function getExec() : string {
        return $this->phpexec;
    }

    public function isValid() : bool {
        if (empty($this->phpexec)) {
            return false;
        }

        if (preg_match(self::CLI_OR_DOCKER_REGEX, $this->phpexec)) {
            $shell = "docker run -it --rm {$this->phpexec} php -v 2>&1";

            $res = shell_exec($shell);
        } else {
            $res = shell_exec("{$this->phpexec} -v 2>&1");
        }

        if (!preg_match('/^PHP ([0-9\.]+)/', $res, $r)) {
            return false;
        }

        $this->actualVersion = $r[1];

        if (substr($this->actualVersion, 0, 3) !== $this->requestedVersion) {
            throw new NoPhpBinary('PHP binary for version ' . $this->requestedVersion . ' doesn\'t have the right middle version : "' . $this->actualVersion . '" is provided. Please, check config/exakat.ini');
        }

        return strpos($res, 'The PHP Group') !== false;
    }

    public function getActualVersion() : string {
        return  $this->actualVersion;
    }

    public function compile(string $file) : bool {
        if (preg_match(self::CLI_OR_DOCKER_REGEX, $this->phpexec)) {
            $filename = basename($file);
            $dirname  = realpath(dirname($file));

            $shell = "docker run -v $dirname:/exakat -w /exakat -it --entrypoint /bin/bash --rm {$this->phpexec} -c 'php -l $filename'";
            $res = trim(shell_exec($shell));
       } else {
            $res = shell_exec($this->phpexec . ' -l ' . escapeshellarg($file) . ' 2>&1');
            $res = trim($res);
       }

        foreach(explode("\n", $res) as $r) {
            if (empty($r)) { 
                continue; 
            }

            if ($this->isError($r)) {
                return false;
            }
        }
        return true;
    }

    public function getError() : array {
        $r = $this->error;
        $this->error = array();
        return $r;
    }

    private function isError(string $resFile) : bool {
        if (substr($resFile, 0, 28) == 'No syntax errors detected in') {
            return false;
            // do nothing. All is fine.
        }

        if (substr($resFile, 0, 15) == 'Errors parsing ') {
            return false; // ignore this one
        }

        if (trim($resFile) == '') {
            return false; // do nothing. All is fine.
        }

        if (preg_match('#^(?:PHP )?Parse error: (.+?) in (.+?) on line (\d+)#', $resFile, $r)) {
            $this->error = array('error' => $r[1],
                                 'file'  => $r[2],
                                 'line'  => $r[3],
                                 );

            return true;
        }

        if (preg_match('#^(?:PHP )?Deprecated: (.+?) in (.+?) on line (\d+)#', $resFile, $r)) {
            return false;
        }

        if (preg_match('#^(?:PHP )?Fatal error: (.+?) in (.+?) on line (\d+)#', $resFile, $r)) {
            $this->error = array('error' => $r[1],
                                 'file'  => $r[2],
                                 'line'  => $r[3],
                                 );

            return true;
        }

        // Warnings are considered OK.
        if (preg_match('#^(?:PHP )?Warning: (.+?) in (.+?) on line (\d+)#', $resFile, $r)) {
            return false;
        }

        // Notice are considered OK.
        if (preg_match('#^(?:PHP )?Notice: (.+?) in (.+?) on line (\d+)#', $resFile, $r)) {
            return false;
        }

        if (preg_match('#^(?:PHP )?Strict Standards: (.+?) in (.+?) on line (\d+)#', $resFile, $r)) {
            $this->error = array('error' => $r[1],
                                 'file'  => $r[2],
                                 'line'  => $r[3],
                                 );

            return true;
        }

        display("\nCan't understand this php feedback for $resFile\n");

        return false;
    }

    public function getWhiteCode() : array {
        return array(
            array_search('T_WHITESPACE',  self::$tokens) => 1,
            array_search('T_DOC_COMMENT', self::$tokens) => 1,
            array_search('T_COMMENT',     self::$tokens) => 1,
        );
    }

    public function getConfiguration(string $name = null) {
        if ($name === null) {
            return $this->config;
        } elseif (isset($this->config[$name])) {
            return $this->config[$name];
        } else {
            return $this->config;
        }
    }

    private function readConfig() : void {
        if ($this->isCurrentVersion === true){
            // this code is also in the ELSE, but we avoid eval here.
            $this->config = array(
                'zend.assertions' => ini_get('zend.assertions'),
                'memory_limit'    => ini_get('memory_limit'),
                'tokenizer'       => extension_loaded('tokenizer'),
                'short_open_tags' => ini_get('short_open_tag'),
                'timezone'        => ini_get('date.timezone'),
                'phpversion'      => PHP_VERSION,
            );
        } else {
            try {
                $crc = random_int(0, PHP_INT_MAX);
            } catch (\Throwable $t) {
                $crc = (int) microtime(true);
            }

            $php = <<<PHP
\\\$results = array(
    'zend.assertions' => ini_get('zend.assertions'),
    'memory_limit'    => ini_get('memory_limit'),
    'tokenizer'       => extension_loaded('tokenizer'),
    'short_open_tags' => ini_get('short_open_tags'),
    'timezone'        => ini_get('date.timezone'),
    'phpversion'      => PHP_VERSION,
    'crc'             => $crc,
);
echo '\\\$config = '.var_export(\\\$results, true).';';
PHP;
            $readPHPConfig = shell_exec("{$this->phpexec} -r \"$php\" 2>&1");
            if (strpos($readPHPConfig, 'Error') === false ) {
                try {
                    // @ hides potential errors.
                    @eval($readPHPConfig);

                    if ($config['crc'] === (int) $crc) {
                        unset($config['crc']);
                        $this->config = $config;
                    } else {
                        $this->config = array();
                    }
                } catch(\Throwable $e) {
                    $this->config = array();
                }
            } else {
                $this->config = array();
            }
        }
    }

    public function compileFiles(string $project_code, string $tmpFileName, string $script_prefix): void {
        if (preg_match(self::CLI_OR_DOCKER_REGEX, $this->phpexec)) {
            $shell = "docker run -it -v \"{$project_code}\":/exakat -w /exakat/code --entrypoint /bin/bash --rm " . $this->phpexec . " -c 'cat /exakat/.exakat/" . basename($tmpFileName) . ' | sed "s/>/\\\\\\\\>/g" | tr "\n" "\0" | xargs -0 -n1 -P5 -I {} sh -c "php -l {} 2>&1 || true "\'';
        } else {
            copy("{$script_prefix}/server/lint.php", dirname($tmpFileName).'/lint.php');
            $shell = "nohup php ".dirname($tmpFileName)."/lint.php $this->phpexec {$this->actualVersion[0]}{$this->actualVersion[2]} $project_code $tmpFileName 2>&1 >/dev/null & echo $!";
        }

        $pid = shell_exec($shell);
    }
}

?>
<?php
/*
 * Copyright 2012-2019 Damien Seguy – Exakat SAS <contact(at)exakat.io>
 * This file is part of Exakat.
 *
 * Exakat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Exakat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Exakat.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://exakat.io/>.
 *
*/

declare(strict_types=1);

use Exakat\Exceptions\NoSuchDir;
use Exakat\Container;
use Exakat\Exceptions\WrongParameterType;

const INI_PROCESS_SECTIONS      = true;
const INI_DONT_PROCESS_SECTIONS = false;

const STRICT_COMPARISON = true;
const LOOSE_COMPARISON  = false;

const JSON_ASSOCIATIVE = true;
const JSON_OBJECT      = false;

const TIME_AS_ARRAY  = false;
const TIME_AS_STRING = false;
const TIME_AS_NUMBER = true;

const DISPLAY_TO_STDOUT = false;
const RETURN_VALUE      = true;

const MAX_ARGS = 100;

const SQLITE_CHUNK_SIZE = 490;

const SQLITE3_BUSY_TIMEOUT = 5000; // ms

function display(string $text) : void {
    global $VERBOSE;
    
    if ($VERBOSE) {
        echo trim($text), PHP_EOL;
    }
}

function rmdirRecursive(string $dir) : int {
    if (!file_exists($dir)) {
        // Do nothing
        return 0;
    }

    // Remove symlink, but not their content
    if (is_link($dir)) {
        unlink($dir);
        return 0;
    }

    if (empty($dir)) {
        return 0;
    }

    $total = 0;
    $files = array_diff(scandir($dir), array('.','..'));

    foreach ($files as $file) {
        $path = "$dir/$file";
        if (is_dir($path)) {
            $total += rmdirRecursive($path);
        } else {
            unlink($path);
            ++$total;
        }
    }

    rmdir($dir);
    ++$total;

    return $total;
}

function copyDir(string $src, string $dst) : int {
    if (!file_exists($src)) {
        throw new NoSuchDir("Can't find dir : '$src'");
    }
    $dir = opendir($src);
    if (!is_resource($dir)) {
        throw new NoSuchDir("Can't open dir : '$src' : " . error_get_last()[0]);
    }

    $total = 0;
    mkdir($dst, 0755);
    while (is_string($file = readdir($dir))) {
        if ($file === '.' || $file === '..' ) {
            continue;
        }

        if ( is_dir("$src/$file") ) {
            $total += copyDir("$src/$file", "$dst/$file");
        } else {
            copy("$src/$file", "$dst/$file");
            ++$total;
        }
    }

    closedir($dir);

    return $total;
}

function rglob(string $pattern, int $flags = \GLOB_NOSORT) : array {
    $pattern = str_replace('\\', '\\\\', $pattern);
    $files = glob("$pattern/*", $flags);
    $dirs  = glob("$pattern/*", \GLOB_ONLYDIR | \GLOB_NOSORT);
    $files = array_diff($files, $dirs);

    $subdirs = array($files);
    foreach ($dirs as $dir) {
        $f = rglob($dir, $flags);
        if (!empty($f)) {
            $subdirs[] = $f;
        }
    }

    return array_merge(...$subdirs);
}

function duration(int $seconds) : string {
    if ($seconds < 60) {
        return "$seconds s";
    }

    $minuts = floor($seconds / 60);
    $seconds %= 60;
    if ($minuts < 60) {
        return "$minuts min $seconds s";
    }

    $hours = floor($minuts / 60);
    $minuts %= 60;
    if ($minuts < 24 ) {
        return "$hours h $minuts min $seconds s";
    }

    $days = floor($hours / 24);
    $hours %= 24;
    return "$days d $hours h $minuts min $seconds s";
}

function unparse_url(array $parsed_url) : string {
    $scheme   = empty($parsed_url['scheme'])     ? '' : $parsed_url['scheme'].'://';
    $host     = $parsed_url['host']   ?: '';
    $port     = isset($parsed_url['port'])     ? ":$parsed_url[port]"          : '';

    $user     = empty($parsed_url['user'])     ? '' : $parsed_url['user'];
    $pass     = empty($parsed_url['pass'])     ? '' : ":$parsed_url[pass]";
    $userpass = ($user || $pass)               ? "$user$pass@"                 : '';

    $path     = $parsed_url['path']   ?: '';
    $query    = isset($parsed_url['query'])    ? "?$parsed_url[query]"         : '';
    $fragment = isset($parsed_url['fragment']) ? "#$parsed_url[fragment]"      : '';

    return "$scheme$userpass$host$port$path$query$fragment";
}

// Returns a list of unique values, when all values are arrays
function array_array_unique(array $array) : array {
    $return = array();
    
    foreach ($array as $a) {
        sort($a);
        $key = crc32(implode('', $a));
        
        $return[$key] = $a;
    }

    return array_values($return);
}

// [a => b, ...] to [ b => [a1, a2, ...]]
function array_groupby(array $array) : array {
    $return = array();
    foreach ($array as $k => $v) {
        if (isset($return[$v])) {
            $return[$v][] = $k;
        } else {
            $return[$v] = array($k);
        }
    }
    
    return $return;
}

function array_ungroupby(array $array) : array {
    $return = array();
    foreach ($array as $k => $v) {
        foreach ($v as $w) {
            $return[$w] = $k;
        }
    }
    
    return $return;
}

function makeList(array $array, string $delimiter = '"') : string {
    return $delimiter . implode("$delimiter, $delimiter", $array) . $delimiter;
}

function unicode_blocks(string $string) : array {
    $c = trim(mb_encode_numericentity ($string, array (0x0, 0xffff, 0, 0xffff), 'UTF-8'), '&#;x');
    $characters = explode(';&#', $c);
    
    static $ranges = array(
        0x0020 => 'Basic Latin',
        0x00A0 => 'Latin-1 Supplement',
        0x0100 => 'Latin Extended-A',
        0x0180 => 'Latin Extended-B',
        0x0250 => 'IPA Extensions',
        0x02B0 => 'Spacing Modifier Letters',
        0x0300 => 'Combining Diacritical Marks',
        0x0370 => 'Greek and Coptic',
        0x0400 => 'Cyrillic',
        0x0500 => 'Cyrillic Supplementary',
        0x0530 => 'Armenian',
        0x0590 => 'Hebrew',
        0x0600 => 'Arabic',
        0x0700 => 'Syriac',
        0x0780 => 'Thaana',
        0x0900 => 'Devanagari',
        0x0980 => 'Bengali',
        0x0A00 => 'Gurmukhi',
        0x0A80 => 'Gujarati',
        0x0B00 => 'Oriya',
        0x0B80 => 'Tamil',
        0x0C00 => 'Telugu',
        0x0C80 => 'Kannada',
        0x0D00 => 'Malayalam',
        0x0D80 => 'Sinhala',
        0x0E00 => 'Thai',
        0x0E80 => 'Lao',
        0x0F00 => 'Tibetan',
        0x1000 => 'Myanmar',
        0x10A0 => 'Georgian',
        0x1100 => 'Hangul Jamo',
        0x1200 => 'Ethiopic',
        0x13A0 => 'Cherokee',
        0x1400 => 'Unified Canadian Aboriginal Syllabics',
        0x1680 => 'Ogham',
        0x16A0 => 'Runic',
        0x1700 => 'Tagalog',
        0x1720 => 'Hanunoo',
        0x1740 => 'Buhid',
        0x1760 => 'Tagbanwa',
        0x1780 => 'Khmer',
        0x1800 => 'Mongolian',
        0x1900 => 'Limbu',
        0x1950 => 'Tai Le',
        0x19E0 => 'Khmer Symbols',
        0x1D00 => 'Phonetic Extensions',
        0x1E00 => 'Latin Extended Additional',
        0x1F00 => 'Greek Extended',
        0x2000 => 'General Punctuation',
        0x2070 => 'Superscripts and Subscripts',
        0x20A0 => 'Currency Symbols',
        0x20D0 => 'Combining Diacritical Marks for Symbols',
        0x2100 => 'Letterlike Symbols',
        0x2150 => 'Number Forms',
        0x2190 => 'Arrows',
        0x2200 => 'Mathematical Operators',
        0x2300 => 'Miscellaneous Technical',
        0x2400 => 'Control Pictures',
        0x2440 => 'Optical Character Recognition',
        0x2460 => 'Enclosed Alphanumerics',
        0x2500 => 'Box Drawing',
        0x2580 => 'Block Elements',
        0x25A0 => 'Geometric Shapes',
        0x2600 => 'Miscellaneous Symbols',
        0x2700 => 'Dingbats',
        0x27C0 => 'Miscellaneous Mathematical Symbols-A',
        0x27F0 => 'Supplemental Arrows-A',
        0x2800 => 'Braille Patterns',
        0x2900 => 'Supplemental Arrows-B',
        0x2980 => 'Miscellaneous Mathematical Symbols-B',
        0x2A00 => 'Supplemental Mathematical Operators',
        0x2B00 => 'Miscellaneous Symbols and Arrows',
        0x2E80 => 'CJK Radicals Supplement',
        0x2F00 => 'Kangxi Radicals',
        0x2FF0 => 'Ideographic Description Characters',
        0x3000 => 'CJK Symbols and Punctuation',
        0x3040 => 'Hiragana',
        0x30A0 => 'Katakana',
        0x3100 => 'Bopomofo',
        0x3130 => 'Hangul Compatibility Jamo',
        0x3190 => 'Kanbun',
        0x31A0 => 'Bopomofo Extended',
        0x31F0 => 'Katakana Phonetic Extensions',
        0x3200 => 'Enclosed CJK Letters and Months',
        0x3300 => 'CJK Compatibility',
        0x3400 => 'CJK Unified Ideographs Extension A',
        0x4DC0 => 'Yijing Hexagram Symbols',
        0x4E00 => 'CJK Unified Ideographs',
        0xA000 => 'Yi Syllables',
        0xA490 => 'Yi Radicals',
        0xAC00 => 'Hangul Syllables',
        0xD800 => 'High Surrogates',
        0xDB80 => 'High Private Use Surrogates',
        0xDC00 => 'Low Surrogates',
        0xE000 => 'Private Use Area',
        0xF900 => 'CJK Compatibility Ideographs',
        0xFB00 => 'Alphabetic Presentation Forms',
        0xFB50 => 'Arabic Presentation Forms-A',
        0xFE00 => 'Variation Selectors',
        0xFE20 => 'Combining Half Marks',
        0xFE30 => 'CJK Compatibility Forms',
        0xFE50 => 'Small Form Variants',
        0xFE70 => 'Arabic Presentation Forms-B',
        0xFF00 => 'Halfwidth and Fullwidth Forms',
        0xFFF0 => 'Specials',
        0x10000 => 'Linear B Syllabary',
        0x10080 => 'Linear B Ideograms',
        0x10100 => 'Aegean Numbers',
        0x10300 => 'Old Italic',
        0x10330 => 'Gothic',
        0x10380 => 'Ugaritic',
        0x10400 => 'Deseret',
        0x10450 => 'Shavian',
        0x10480 => 'Osmanya',
        0x10800 => 'Cypriot Syllabary',
        0x1D000 => 'Byzantine Musical Symbols',
        0x1D100 => 'Musical Symbols',
        0x1D300 => 'Tai Xuan Jing Symbols',
        0x1D400 => 'Mathematical Alphanumeric Symbols',
        0x20000 => 'CJK Unified Ideographs Extension B',
        0x2F800 => 'CJK Compatibility Ideographs Supplement',
        0xE0000 => 'Tags',
    );
    
    $return = array();
    foreach ($characters as $e) {
        $previous = '';
        foreach ($ranges as $low => $name) {
            if ($low > $e) {
                if (isset($return[$previous])) {
                    ++$return[$previous];
                } else {
                    $return[$previous] = 1;
                }
                break 1;
            }
            $previous = $name;
        }
    }
    
    arsort($return);

    return $return;
}

function PHPSyntax(string $code) : string {
    static $cache;
    
    if (!isset($cache)) {
        $cache = array();
    }
    
    if (isset($cache[$code])) {
        return $cache[$code];
    }

    $code = trim($code);
    $php = highlight_string("<?php \n{$code}\n ?>", true);
    $php = substr($php, 85, -40);
    if (substr($php, 0, 7) === '</span>') {
        $php = substr($php, 7, 10000);
    } else {
        $php = '<span style="color: #0000BB">' . $php;
    }
    if (substr($php, -17) === '<span style="colo') {
        //<br /></span><span style="colo
        $php = substr($php, 0, -30);
        $php .= '</span>';
    } else {
        $php .= '</span>';
    }
    $cache[$code] = $php;
    
    return $cache[$code];
}

function makeArray($value) : array {
    if (is_array($value)) {
        return array_values($value);
    } else {
        return array($value);
    }
}

const FNP_CONSTANT     = true;
const FNP_NOT_CONSTANT = false;

function makeFullNsPath($functions, bool $constant = \FNP_NOT_CONSTANT) {
    // case for classes and functions
    if ($constant === \FNP_NOT_CONSTANT) {
        $cb = function ($x) {
            $r = mb_strtolower($x);
            if (strpos($r, '\\\\') !== false) {
                $r = stripslashes($r);
            }
            if (isset($r[0]) && $r[0] != '\\') {
                $r = "\\$r";
            }
            return $r;
        };
    } else {
        // case for function
        $cb = function ($r) {
            $r2 = str_replace('\\\\', '\\', $r);

            $d = explode('\\', $r2);
            $last = array_pop($d);
            $r = mb_strtolower(implode('\\', $d)) . "\\$last";
            if (isset($r[0]) && $r[0] != '\\') {
                $r = "\\$r";
            }
            return $r;
        };
    }
    
    if (is_string($functions) || is_int($functions)) {
        return $cb($functions);
    } elseif (is_array($functions)) {
        $r = array_map($cb, $functions);
    } else {
        throw new WrongParameterType(gettype($functions), __METHOD__);
    }
    
    return $r;
}

function trimOnce(string $string, string $trim = '\'"') : string {
    $length = strlen($string);
    if ($length < 2) {
        return $string;
    }

    if ($string[0] === $string[$length -1] &&
        strpos($trim, $string[0]) !== false &&
        strpos($trim, $string[$length -1]) !== false
         ) {
        return substr($string, 1, -1);
    }

    return $string;
}

function makeHtml(string $string) : string {
    return htmlentities($string, ENT_COMPAT | ENT_HTML401, 'UTF-8');
}

function rst2quote(string $text) : string {
    return preg_replace('/``+(.+?)``+/s', ' <span style="border: 1px solid #ddd; background-color: #f5f5f5">$1</span> ', $text);
}

function rst2htmlLink(string $text) : string {
    // `title <url>`_ => <a href="url">title</a>
    // `anchor`_ => <a href="#anchor">anchor</a>
    
    return preg_replace('/`([^<]+?) <([^>]+?)>`_+/s', '<a href="$2" alt="$1">$1</a>', $text);
}

function rst2literal(string $text) : string {
    $return = preg_replace_callback("#<\?literal(.*?)\n\?>#is", function ($x) {
        $return = '<pre style="border: 1px solid #ddd; background-color: #f5f5f5;">&lt;?php ' . PHP_EOL . str_replace('<br />', '', $x[1]) . '?&gt;</pre>';
        return $return;
    }, $text);

    return $return;
}

function rsttable2html(string $raw) : string {
    $html = array();
    
    $lines = explode("\n", $raw);
    $table = false;
    
    foreach ($lines as $line) {
        if (preg_match('/^[\+-]+<br \/>$/', $line, $r)) {
            if ($table !== true) {
                $table = true;
                $html []= '<table style="border: solid 1px black;">';
            }
            continue;
        } elseif ($table === true) {
            if (preg_match('/^[\+-]+$/', $line, $r)) {
                $html[] = '<tr>' . str_repeat('<td></td>', substr_count('+', $r[0])) . "</tr>\n";
            } elseif (strpos($line, '|') === false) {
                $table = false;
                $html []= '</table>';
                $html []= '';
            } elseif (!empty($td = explode('|', str_replace('<br />', '', $line)))) {
                $td = array_map('trim', $td);
                
                $html[] = '<tr><td>' . implode('</td><td>', $td) . '</td></tr>';
            }
        } else {
            $html []= $line;
        }
    }
    
    return implode(PHP_EOL, $html);
}

function rstlist2html(string $raw) : string {
    $html = array();
    
    $lines = explode("\n", $raw);
    $list = false;
    
    foreach ($lines as $line ) {
        if (preg_match('/^\*\s+([^\*]+)\s*<br \/>$/', $line, $r)) {
            if ($list === true) {
                $html [] = "<li>$r[1]</li>";
            } else {
                $list = true;
                $html []= '<ul>';
                $html [] = "<li>$r[1]</li>";
            }
            continue;
        } else {
            if ($list === true) {
                $list = false;
                $html []= '</ul>';
            }
            $html []= $line;
        }
    }
    
    return implode(PHP_EOL, $html);
}

// split a string into an array, based on delimiter, then apply trim to clean hidden spaces
function str2array(string $string, string $delimiter = ',') : array {
    $array = explode($delimiter, $string);
    
    return array_map('trim', $array);
}

// convert a number into its English ordinal name
function ordinal(int $number) : string {
    $ends = array('th','st','nd','rd','th','th','th','th','th','th');
    if (($number % 100 >= 11) && ($number % 100 <= 13)) {
        return "{$number}th";
    } else {
        return $number . $ends[$number % 10];
    }
}

/*
array('a/b' => 1 ) to Array
(
    [a] => Array
        (
            [b] => 1
        )

)
*/
function raiseDimensions($array, $split='/') : array {
    $return = array();
    
    foreach ($array as $k => $value) {
        $kr = trim($k, $split);
        $d = explode($split, $kr);
        
        $last = array_pop($d);
        $sub = &$return;
        foreach ($d as $e) {
            if (isset($sub[$e]) && is_array($sub[$e])) {
                $sub = &$sub[$e];
            } else {
                $sub[$e] = array();
                $sub = &$sub[$e];
            }
        }
        $sub[$last] = $value;
    }
    
    return $return;
}

function sort_dependencies($array, $level = 0) : array {
    $return = array();
    $next = array();
    
    foreach ($array as $a => $b) {
        if (empty($b)) {
            $return[] = $a;
        } else {
            $next[$a] = $b;
        }
    }
    
    if (!empty($next)) {
        $keys = array_keys($next);
        foreach ($next as $a => &$b) {
            $b = array_diff($b, $return);
            
            if (empty(array_intersect($b, $keys))) {
                $return = array_merge($return, $b);
                $b = array();
            }
        }
        
        assert($level < 10, 'Too many levels in dependencies. Aborting');
        $return = array_merge($return, sort_dependencies($next, ++$level));
    }
    
    return $return;
}

function filter_analyzer(string $analyzer) : int {
    return preg_match('#^\w+/\w+$#', $analyzer);
}

function array_sub_sort(array &$list) : void {
    foreach ($list as &$l) {
        sort($l);
    }
    unset($l);
}

function array_collect_by(array &$array, $key, $value) : void {
    if (isset($array[$key])) {
        $array[$key][] = $value;
    } else {
        $array[$key] = array($value);
    }
}

function readIniPercentage(string $value) : float {
    $return = abs((int) $value);
    $return = max(0, $return);
    $return = min(100, $return);
    $return /= 100;

    return $return;
}

function listToArray(string $string, string $separator = ',') : array {
    $list = explode($separator, $string);
    $list = array_map('trim', $list);
    $list = array_unique($list);
    
    return $list;
}

function exakat(string $what) {
    static $container;
    
    if ($container === null) {
        $container = new Container();
        
        $container->init($GLOBALS['argv']);
    }

    return $container->$what;
}

?>[{"name":"filter.default","suggested":"unsafe_raw","documentation":"Set the default filter when using functions like filter_input(), filter_var() or their _array() version. Give this a strict level, like 'string' by default, and make every call to the previous functions configure the filters case by case."},{"name":"Extra configurations","suggested":"&nbsp;","documentation":"<a href=\"http:\/\/php.net\/manual\/en\/filter.configuration.php\">Filter runtime configuration<\/a>"}][{"name":"upload_max_filesize","documentation":"This is the maximum uploaded size. It is recommended to keep this value as low as possible.","suggested":"2M"}, {"name":"max_file_uploads","documentation":"This is the maximum number of uploaded files in a single request.","suggested":"1"},{"name":"upload_tmp_dir","documentation":"Upload directory where PHP stores the temporary files. It is recommended to set this value, and separate it from other temporary directories.","suggested":"/tmp/php_upload"},{"name":"post_max_size","documentation":"This is the maximum amount of data that PHP will accept in a POST request. It has to be higher or equal to upload_max_filesize. For security reasons, it should be as low as possible, to prevent PHP using too much memory.","suggested":"2M"}][{"name":"disable_functions","suggested":"","documentation":"This directive allows you to disable certain functions for security reasons. It takes on a comma-delimited list of function names. disable_functions is not affected by Safe Mode."},{"name":"disable_classes","suggested":"","documentation":"This directive allows you to disable certain classes for security reasons. It takes on a comma-delimited list of class names. disable_classes is not affected by Safe Mode. This directive must be set in php.ini."}][{"name":"Extra configurations","suggested":"&nbsp;","documentation":"<a href=\"http:\/\/php.net\/manual\/en\/curl.configuration.php\">Curl runtime configuration<\/a>"}][{"name":"date.timezone","suggested":"Europe\/Amsterdam","documentation":"It is not safe to rely on the system's timezone settings. Make sure the directive date.timezone is set in php.ini."}][{"name":"Extra configurations","suggested":"&nbsp;","documentation":"<a href=\"http:\/\/php.net\/manual\/en\/ldap.configuration.php\">Ldap runtime configuration<\/a>"}][{"name":"session.name","suggested":"<Some name linked to your application>","documentation":"This directive sets the name of the session, which is also used as cookie. It is recommended to give an explicit name to this, and avoid the default value of PHPSESSID."},{"name":"session.path","suggested":"Avoid \/tmp","documentation":"This directive sets the path where the session files will be store (if using a file storage). It is recommended to avoid using \/tmp, as this folder is accessible to everyone who has access to the machine. Set it to some path that is dedicated to the webserver."},{"name":"session.auto_start","suggested":"1","documentation":"This directive allows the session to be started at request time. This is the default behavior for most web sites. "},{"name":"session.cookie_httponly","suggested":"1","documentation":"Mark the session cookie as reserved for HTTP communication. This will prevent the cookie to be available for Javascript, and help prevent XSS (although, not all browsers support it)."},{"name":"session.use_only_cookies","suggested":"1","documentation":"Limit the transmission of the session id to cookies."},{"name":"session.use_trans_sid","suggested":"0","documentation":"This will make PHP put the session token in the URL, instead of cookies. This is a security risk, as the token may be easily accessed and shared. It is recommended to avoid this."},{"name":"session.cookie_domain","suggested":"<yourdomain.net>","documentation":"This directive will limit the diffusion of the session cookie to the specified domain name. The more restrictive the better. Aka, session.cookie_domain=\".net\" will restrict the cookie to every \".net\" domains, and not every domain. session.cookie_domain=\"www.yourdomain.net\" will restrict it to the eponymous domain, and won't share the cookie with \"images.yourdomain.net\", which may be too restrictive."},{"name":"Extra configurations","suggested":"&nbsp;","documentation":"<a href=\"http:\/\/php.net\/manual\/en\/session.configuration.php\">Session runtime configuration<\/a>"}][{"name":"Extra configurations","suggested":"&nbsp;","documentation":"<a href=\"http:\/\/php.net\/manual\/en\/bc.configuration.php\">Bcmath runtime configuration<\/a>"}][{"name":"child_terminate","suggested":"true","documentation":"Specify whether PHP scripts may request child process termination on end of request."},{"name":"Extra configurations","suggested":"&nbsp;","documentation":"<a href=\"http:\/\/php.net\/manual\/en\/apache.configuration.php\">Apache runtime configuration<\/a>"}][{"name":"error_log","suggested":"On","documentation":"Besides displaying errors, PHP can also log errors to locations such as a server-specific log, STDERR, or a location specified by the error_log directive"},{"name":"error_log","suggested":"php_errors.log","documentation":"Log errors to specified file. PHP's default behavior is to leave this value empty"}][{"name":"Extra configurations","suggested":"&nbsp;","documentation":"<a href=\"http:\/\/php.net\/manual\/en\/pdo.configuration.php\">PDO runtime configuration<\/a>"}][{"name":"Extra configurations","suggested":"&nbsp;","documentation":"<a href=\"http:\/\/php.net\/manual\/en\/pcre.configuration.php\">PCRE runtime configuration<\/a>"}][{"name":"Extra configurations","suggested":"&nbsp;","documentation":"<a href=\"http:\/\/php.net\/manual\/en\/trader.configuration.php\">Trader runtime configuration<\/a>"}][{"name":"xcache.cacher","suggested":"true","documentation":"Enable or disable opcode cacher. Not available if xcache.size is 0."},{"name":"xcache.size","suggested":"1024K","documentation":"Total amount of memory used for opcode (*.php) caching. If set to 0 - opcode caching is disabled. K M G modifiers can be used, i.e. 1G 512M 1024K"},{"name":"xcache.admin.enable_auth","suggested":"on","documentation":"Disable XCache builtin http authentication if you plan on handling authentication yourself. Be aware that any vhost users can set up admin page, if builtin http auth is disabled, they can access the page with out any authentication. So it is suggested that you disable mod_auth for XCache admin pages instead of disabling XCache builtin auth."},{"name":"xcache.admin.user","suggested":"1024K","documentation":"Authentification name."},{"name":"xcache.admin.pass","suggested":"<md5(your_password)>","documentation":"Should be md5($your_password), or empty to disable administration."},{"name":"xcache.optimizer","suggested":"true","documentation":"Enable xcache optimizer."},{"name":"xcache.coverager","suggested":"false","documentation":"Enable xcache scavenger."},{"name":"Extra configurations","suggested":"&nbsp;","documentation":"<a href=\"https://xcache.lighttpd.net/wiki/XcacheIni\">Xcache runtime configuration<\/a>"}][  {
    "name": "openssl.cafile",
    "suggested": "&nbsp;",
    "documentation": "Location of Certificate Authority file on local filesystem which should be used with the verify_peer context option to authenticate the identity of the remote peer."
  },
  {
    "name": "openssl.capath",
    "suggested": "&nbsp;",
    "documentation": "If cafile is not specified or if the certificate is not found there, the directory pointed to by capath is searched for a suitable certificate. capath must be a correctly hashed certificate directory."
  }][{"name":"allow_url_fopen","suggested":"Off","documentation":"Unless you need to access remote files, it is better to be safe and forbid this feature"},{"name":"realpath_cache_size","suggested":"128k","documentation":"Determines the size of the realpath cache to be used by PHP. The default value of \"16k\" is usually too low for modern application that open many files (autoload, fopen, filet_get_contents...). It is recommended to make this value up to 128 to 256k, and reduce it by testing with realpath_cache_get()."},{"name":"realpath_cache_ttl","suggested":"3600","documentation":"Duration of time (in seconds) for which to cache realpath information for a given file or directory. If the application's code doesn't change too often, you may set this directive to 3600 (one hour) or even more."},{"name":"Extra configurations","suggested":"&nbsp;","documentation":"<a href=\"http:\/\/php.net\/manual\/en\/filesystem.configuration.php\">File System runtime configuration<\/a>"}][{"name":"opcache.enable","suggested":"On","documentation":"By putting aliases of URI in the php.ini, you won't hardcode the DSN in your code."},{"name":"opcache.memory_consumption","suggested":"128","documentation":"This directive set the amount of opcode cache. The more the better, as long as it doesn't swap."},{"name":"opcache.memory_consumption","suggested":"4000","documentation":"The maximum number of files OPcache will cache. Estimate 32kb a file."},{"name":"Extra configurations","suggested":"&nbsp;","documentation":"<a href=\"http:\/\/php.net\/manual\/en\/opcache.configuration.php\">Opcache runtime configuration<\/a>"}][{"name":"default_charset","suggested":"UTF-8","documentation":"This directive handle encoding for input, internal and output. <a href=\"http:\/\/php.net\/manual\/en\/ini.core.php#ini.default-charset\">default_charset<\/a>"},{"name":"mbstring.internal_encoding","suggested":"Do not rely on it","documentation":"This directive is deprecated or removed since PHP 5.6.  It is recommended to use the \"default_charset\" directive instead."},{"name":"Extra configurations","suggested":"&nbsp;","documentation":"<a href=\"http:\/\/php.net\/manual\/en\/mbstring.configuration.php\">mbstring runtime configuration<\/a>"}][{"name":"Extra configurations","suggested":"&nbsp;","documentation":"<a href=\"http:\/\/php.net\/manual\/en\/mailparse.configuration.php\">Mailparse runtime configuration<\/a>"}][
  {
    "name": "variables_order",
    "suggested": "EGPCS",
    "documentation": "Sets the order of the EGPCS (Environment, Get, Post, Cookie, and Server) variable parsing. If 'E' is omited, then $_ENV may be empty."
  }
][{"name":"Extra configurations","suggested":"&nbsp;","documentation":"<a href=\"http:\/\/php.net\/manual\/en\/imagick.configuration.php\">Imagick runtime configuration<\/a>"}][
  {
    "name": "apc.enabled",
    "suggested": "true",
    "documentation": "Enable apc or not. "
  },
  {
    "name": "apc.shm_segments",
    "suggested": "&nbsp;",
    "documentation": "The number of shared memory segments to allocate for the compiler cache."
  },
  {
    "name": "apc.shm_size",
    "suggested": "&nbsp;",
    "documentation": "The size of each shared memory segment in Mb."
  },
  {
    "name": "apc.cache_by_default",
    "suggested": "true",
    "documentation": "On by default, but can be set to off and used in conjunction with positive apc.filters so that files are only cached if matched by a positive filter."
  },
  {
    "name": "apc.stat",
    "suggested": "0",
    "documentation": "This prevents APC to check the file modification date each time it is serving the cache. This speeds up operation quite a lot, as checking on the disk a modification date on a high volume server is quite costly. On the other hand, beware that any modification of the aforementionned PHP script won't be taken into account until the next cache refresh. "
  },
  {
    "name": "apc.ttl",
    "suggested": "7200",
    "documentation": "This is the lifespan of a PHP script in the APC cache. The longer the script is left in the cache, the less work the server does. But, the script may fall behind, and be obsolet on the cache. Make this high if the PHP scripts are rarely updated."
  },
  {
    "name": "APC runtime configuration",
    "suggested": "&nbsp;",
    "documentation": "<a href=\"http://php.net/manual/en/apc.configuration.php\">APC runtime configuration</a>"
  }][{"name":"amqp.host","suggested":"localhost","documentation":"The host to which to connect."},{"name":"amqp.vhost","suggested":"","documentation":"The virtual host on the broker to which to connect."},{"name":"amqp.port","suggested":"","documentation":"The port on which to connect."},{"name":"amqp.login","suggested":"guest","documentation":"The login to use while connecting to the broker."},{"name":"amqp.password","suggested":"guest","documentation":"The password to use while connecting to the broker."},{"name":"Extra configurations","suggested":"&nbsp;","documentation":"<a href=\"http:\/\/php.net\/manual\/en\/amqp.configuration.php\">Amqp runtime configuration<\/a>"}][{"name":"assert.active","suggested":"On","documentation":"In production, set this to Off to remove all assertions. During developement, set this to On to activate them."},{"name":"Extra configurations","suggested":"&nbsp;","documentation":"<a href=\"http:\/\/php.net\/manual\/en\/info.configuration.php\">Assertion runtime configuration<\/a>"}][{"name":"SMTP","suggested":"localhost","documentation":"Used under Windows only: the host that will be sending the mail."},{"name":"smtp_port","suggested":"25","documentation":"Used under Windows only: the port on the host that will be sending the mail."},{"name":"sendmail_path","suggested":"\/usr\/sbin\/sendmail -t -i","documentation":"The location of the mail sending program (here, smtp, but it may also be qmail or else). Configure will try to locate smtp, but if it fails, you may set this directive correctly."},{"name":"sendmail_from","suggested":"your-email@your-domain.com","documentation":"Indicates an origin for any mail being send with PHP. This should be set, so as to avoid being mistaken as spam, and provide an with which communicate in case of any problem."},{"name":"mail.log","suggested":"\/var\/log\/phpmail.log","documentation":"Keep log of mails being send with PHP. Be careful if the data being send are sensitive (destination is noted). "},{"name":"mail.add_x_header","suggested":"your-domain.com","documentation":"Adds a special X-PHP-Originating-Script headers, providing more information on the origin of the mail, but which will be mostly hidden from the final reader (unless it checks the mail headers)."},{"name":"Extra configurations","suggested":"&nbsp;","documentation":"<a href=\"http:\/\/php.net\/manual\/en\/mail.configuration.php\">Mail runtime configuration<\/a>"}][{"name":"Extra configurations","suggested":"&nbsp;","documentation":"<a href=\"http:\/\/php.net\/manual\/en\/sqlite3.configuration.php\">Sqlite3 runtime configuration<\/a>"}][{"name":"output_buffering","suggested":"4096","documentation":"You can enable output buffering for all files by setting this directive to 'On'. If you wish to limit the size of the buffer to a certain size - you can use a maximum number of bytes instead of 'On', as a value for this directive (e.g., output_buffering=4096). As of PHP 4.3.5, this directive is always Off in PHP-CLI."},{"name":"output_handler","suggested":" mb_output_handler or ob_iconv_handler(), ob_gzhandler() or zlib.output_compression;","documentation":"Use the first suggested values to handle character encoding. Use the second values for on the fly compression; Use your own function if you have one."},{"name":"implicit_flush","suggested":"False","documentation":"Changing this to TRUE tells PHP to tell the output layer to flush itself automatically after every output block : this has performances penalty."}][{"name":"Extra configurations","suggested":"&nbsp;","documentation":"<a href=\"http:\/\/php.net\/manual\/en\/pgsql.configuration.php\">PostgreSql runtime configuration<\/a>"}][{"name":"enable_dl","documentation":" Whether or not to enable the dl() function.  The dl() function does NOT work properly in multithreaded servers, such as IIS or Zeus, and is automatically disabled on them.","suggested":"Off"}][{"name":"Extra configurations","suggested":"&nbsp;","documentation":"<a href=\"http:\/\/php.net\/manual\/en\/sqlite.configuration.php\">Sqlite runtime configuration<\/a>"}][{"name":"com.allow_dcom","suggested":"False","documentation":"Allow Distributed-COM calls. Keep if false unless you need Distributed com calls."},{"name":"Extra configurations","suggested":"&nbsp;","documentation":"<a href=\"http:\/\/php.net\/manual\/en\/com.configuration.php\">Com runtime configuration<\/a>"}][{"name":"mongo.default_host","suggested":"localhost","documentation":"The default Mongo host to connect to."},{"name":"mongo.default_port","suggested":"27017","documentation":"The default Mongo port to connect to."},{"name":"mongo.native_long","suggested":"1","documentation":"Mongo handles integers as 64bits on plat-forms that actually handles them. If not, it will be handled as 32 bits."},{"name":"mongo.long_as_object","suggested":"1","documentation":"Return a BSON_LONG as an instance of MongoInt64 (instead of a primitive type)."},{"name":"mongo.utf8","suggested":"1","documentation":"Ensure that Mongo handles UTF-8 correctly. "},{"name":"Extra configurations","suggested":"&nbsp;","documentation":"<a href=\"http:\/\/php.net\/manual\/en\/mongo.configuration.php\">Mongo runtime configuration<\/a>"}][{"name":"dba.default_handler","suggested":"&nbsp;","documentation":"The name of the default handler"}][{"name":"memory_limit","suggested":"120","documentation":"This sets the maximum amount of memory in bytes that a script is allowed to allocate. This helps prevent poorly written scripts for eating up all available memory on a server. It is recommended to set this as low as possible and avoid removing the limit."},{"name":"max_execution_time","suggested":"90","documentation":"This sets the maximum amount of time, in seconds, that a script is allowed to run. The lower the value, the better for the server, but also, the better has the script to be written. Avoid really large values that are only useful for admin, and set them per directory."},{"name":"expose_php","suggested":"Off","documentation":"Exposes to the world that PHP is installed on the server. For security reasons, it is better to keep this hidden."},{"name":"display_errors","suggested":"Off","documentation":"This determines whether errors should be printed to the screen as part of the output or if they should be hidden from the user."},{"name":"error_reporting","suggested":"E_ALL","documentation":"Set the error reporting level. Always set this high, so as to have the errors reported, and logged."},{"name":"log_errors","suggested":"On","documentation":"Always log errors for future use"},{"name":"error_log","suggested":"Name of a writable file, suitable for logging.","documentation":"Name of the file where script errors should be logged. "},{"name":"Extra configurations","suggested":"&nbsp;","documentation":"<a href=\"http:\/\/php.net\/manual\/en\/info.configuration.php\">Standard runtime configuration<\/a>"}][
  {
    "name": "eaccelerator.enabled",
    "suggested": "true",
    "documentation": "Enables or disables eAccelerator. Should be 1 for enabling  or  0  for disabling. Default value is 1."
  },
  {
    "name": "eaccelerator.shm_size",
    "suggested": "0",
    "documentation": "The amount of shared memory (in megabytes) that eAccelerator will use. 0 means OS default. Default value is 0."
  },
  {
    "name": "eaccelerator.optimizer",
    "suggested": "1",
    "documentation": "Enables or disables internal peephole optimizer which may speed up code execution. Should be 1 for enabling or 0 for disabling."
  },
  {
    "name": "eaccelerator.shm_ttl",
    "suggested": "1",
    "documentation": "When eaccelerator fails to get shared memory for new script it removes all scripts which were not accessed at last shm_ttl seconds from shared memory. Default value is 0 that means - don't remove any files from shared memory."
  },
  {
    "name": "Eaccelerator runtime configuration",
    "suggested": "&nbsp;",
    "documentation": "<a href=\"https://github.com/eaccelerator/eaccelerator\">Eaccelerator runtime configuration</a>"
  }]
[{"name":"intl.default_locale","suggested":"<Your ICU Locale>","documentation":"The locale that will be used in intl functions when none is specified (either by omitting the corresponding argument or by passing NULL). These are ICU locales, not system locales. "},{"name":"intl.error_level","suggested":"E_WARNING","documentation":"The level of the error messages generated when an error occurs in ICU functions. This is a PHP error level, such as E_WARNING. It can be set to 0 in order to inhibit the messages. This does not affect the return values indicating error or the values returned by intl_get_error_code() or by the class specific methods for retrieving error codes and messages. Choosing E_ERROR will terminate the script whenever an error condition is found on intl classes."},{"name":"intl.use_exceptions","suggested":"false","documentation":"If set to true, an exception will be raised whenever an error occurs in an intl function. The exception will be of type IntlException. This is possibly in addition to the error message generated due to intl.error_level."},{"name":"Extra configurations","suggested":"&nbsp;","documentation":"<a href=\"http:\/\/php.net\/manual\/en\/intl.configuration.php\">Intl runtime configuration<\/a>"}][{"name":"browscap","documentation":"Name (e.g.: browscap.ini) and location of browser capabilities file.","suggested":"/etc/browscap.ini"}][{"name":"geoip.custom_directory","documentation":"Use this directive if you have a special database of GeoIp. (Default is empty).","suggested":""},{"name":"Extra configurations","suggested":"&nbsp;","documentation":"<a href=\"http:\/\/php.net\/manual\/en\/bc.configuration.php\">Geoip runtime configuration<\/a>"}][{"name":"wincache.ocenabled","suggested":"true","documentation":"Enables or disables the wincache opcode cache functionality."},{"name":"wincache.ocachesize","suggested":"255","documentation":"Defines the maximum memory size (in megabytes) that is allocated for the opcode cache. Max value is 255 (Mb)."},{"name":"wincache.ttlmax","suggested":"1200","documentation":"Defines the maximum time to live (in seconds) for a cached entry without being used. Setting it to 0 will disable the cache scavenger, so the cached entries will never be removed from the cache during the lifetime of the IIS worker process."},{"name":"Extra configurations","suggested":"&nbsp;","documentation":"<a href=\"http:\/\/php.net\/manual\/en\/wincache.configuration.php\">Wincache runtime configuration<\/a>"}][{"name":"ibase.default_db","suggested":"<Your default database>","documentation":"The default database to connect to when ibase_[p]connect() is called without specifying a database name."},{"name":"ibase.default_user","suggested":"","documentation":"The user name to use when connecting to a database if no user name is specified."},{"name":"ibase.default_password","suggested":"","documentation":"The password to use when connecting to a database if no password is specified."},{"name":"ibase.default_charset","suggested":"","documentation":"The character set to use when connecting to a database if no character set is specified."},{"name":"Extra configurations","suggested":"&nbsp;","documentation":"<a href=\"http:\/\/php.net\/manual\/en\/ibase.configuration.php\">Ibase runtime configuration<\/a>"}]functions[] = odbc_autocommit
functions[] = odbc_binmode
functions[] = odbc_close_all
functions[] = odbc_close
functions[] = odbc_columnprivileges
functions[] = odbc_columns
functions[] = odbc_commit
functions[] = odbc_connect
functions[] = odbc_cursor
functions[] = odbc_data_source
functions[] = odbc_do
functions[] = odbc_error
functions[] = odbc_errormsg
functions[] = odbc_exec
functions[] = odbc_execute
functions[] = odbc_fetch_array
functions[] = odbc_fetch_into
functions[] = odbc_fetch_object
functions[] = odbc_fetch_row
functions[] = odbc_field_len
functions[] = odbc_field_name
functions[] = odbc_field_num
functions[] = odbc_field_precision
functions[] = odbc_field_scale
functions[] = odbc_field_type
functions[] = odbc_foreignkeys
functions[] = odbc_free_result
functions[] = odbc_gettypeinfo
functions[] = odbc_longreadlen
functions[] = odbc_next_result
functions[] = odbc_num_fields
functions[] = odbc_num_rows
functions[] = odbc_pconnect
functions[] = odbc_prepare
functions[] = odbc_primarykeys
functions[] = odbc_procedurecolumns
functions[] = odbc_procedures
functions[] = odbc_result_all
functions[] = odbc_result
functions[] = odbc_rollback
functions[] = odbc_setoption
functions[] = odbc_specialcolumns
functions[] = odbc_statistics
functions[] = odbc_tableprivileges
functions[] = odbc_tables

constants[] = 'ODBC_TYPE';
constants[] = 'ODBC_BINMODE_PASSTHRU';
constants[] = 'ODBC_BINMODE_RETURN';
constants[] = 'ODBC_BINMODE_CONVERT';
constants[] = 'SQL_ODBC_CURSORS';
constants[] = 'SQL_CUR_USE_DRIVER';
constants[] = 'SQL_CUR_USE_IF_NEEDED';
constants[] = 'SQL_CUR_USE_ODBC';
constants[] = 'SQL_CONCURRENCY';
constants[] = 'SQL_CONCUR_READ_ONLY';
constants[] = 'SQL_CONCUR_LOCK';
constants[] = 'SQL_CONCUR_ROWVER';
constants[] = 'SQL_CONCUR_VALUES';
constants[] = 'SQL_CURSOR_TYPE';
constants[] = 'SQL_CURSOR_FORWARD_ONLY';
constants[] = 'SQL_CURSOR_KEYSET_DRIVEN';
constants[] = 'SQL_CURSOR_DYNAMIC';
constants[] = 'SQL_CURSOR_STATIC';
constants[] = 'SQL_KEYSET_SIZE';
constants[] = 'SQL_FETCH_FIRST';
constants[] = 'SQL_FETCH_NEXT';
constants[] = 'SQL_CHAR';
constants[] = 'SQL_VARCHAR';
constants[] = 'SQL_LONGVARCHAR';
constants[] = 'SQL_DECIMAL';
constants[] = 'SQL_NUMERIC';
constants[] = 'SQL_BIT';
constants[] = 'SQL_TINYINT';
constants[] = 'SQL_SMALLINT';
constants[] = 'SQL_INTEGER';
constants[] = 'SQL_BIGINT';
constants[] = 'SQL_REAL';
constants[] = 'SQL_FLOAT';
constants[] = 'SQL_DOUBLE';
constants[] = 'SQL_BINARY';
constants[] = 'SQL_VARBINARY';
constants[] = 'SQL_LONGVARBINARY';
constants[] = 'SQL_DATE';
constants[] = 'SQL_TIME';
constants[] = 'SQL_TIMESTAMP';

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = ast\parse_file
functions[] = ast\parse_code
functions[] = ast\get_kind_name
functions[] = ast\kind_uses_flags
functions[] = ast\ast_dump

constants[] = '\ast\AST_FUNC_DECL';
constants[] = '\ast\AST_CLOSURE';
constants[] = '\ast\AST_METHOD';
constants[] = '\ast\AST_CLASS';
constants[] = '\ast\AST_ARG_LIST';
constants[] = '\ast\AST_LIST';
constants[] = '\ast\AST_ARRAY';
constants[] = '\ast\AST_ENCAPS_LIST';
constants[] = '\ast\AST_EXPR_LIST';
constants[] = '\ast\AST_STMT_LIST';
constants[] = '\ast\AST_IF';
constants[] = '\ast\AST_SWITCH_LIST';
constants[] = '\ast\AST_CATCH_LIST';
constants[] = '\ast\AST_PARAM_LIST';
constants[] = '\ast\AST_CLOSURE_USES';
constants[] = '\ast\AST_PROP_DECL';
constants[] = '\ast\AST_CONST_DECL';
constants[] = '\ast\AST_CLASS_CONST_DECL';
constants[] = '\ast\AST_NAME_LIST';
constants[] = '\ast\AST_TRAIT_ADAPTATIONS';
constants[] = '\ast\AST_USE';
constants[] = '\ast\AST_MAGIC_CONST';
constants[] = '\ast\AST_TYPE';
constants[] = '\ast\AST_VAR';
constants[] = '\ast\AST_CONST';
constants[] = '\ast\AST_UNPACK';
constants[] = '\ast\AST_UNARY_PLUS';
constants[] = '\ast\AST_UNARY_MINUS';
constants[] = '\ast\AST_CAST';
constants[] = '\ast\AST_EMPTY';
constants[] = '\ast\AST_ISSET';
constants[] = '\ast\AST_SILENCE';
constants[] = '\ast\AST_SHELL_EXEC';
constants[] = '\ast\AST_CLONE';
constants[] = '\ast\AST_EXIT';
constants[] = '\ast\AST_PRINT';
constants[] = '\ast\AST_INCLUDE_OR_EVAL';
constants[] = '\ast\AST_UNARY_OP';
constants[] = '\ast\AST_PRE_INC';
constants[] = '\ast\AST_PRE_DEC';
constants[] = '\ast\AST_POST_INC';
constants[] = '\ast\AST_POST_DEC';
constants[] = '\ast\AST_YIELD_FROM';
constants[] = '\ast\AST_GLOBAL';
constants[] = '\ast\AST_UNSET';
constants[] = '\ast\AST_RETURN';
constants[] = '\ast\AST_LABEL';
constants[] = '\ast\AST_REF';
constants[] = '\ast\AST_HALT_COMPILER';
constants[] = '\ast\AST_ECHO';
constants[] = '\ast\AST_THROW';
constants[] = '\ast\AST_GOTO';
constants[] = '\ast\AST_BREAK';
constants[] = '\ast\AST_CONTINUE';
constants[] = '\ast\AST_DIM';
constants[] = '\ast\AST_PROP';
constants[] = '\ast\AST_STATIC_PROP';
constants[] = '\ast\AST_CALL';
constants[] = '\ast\AST_CLASS_CONST';
constants[] = '\ast\AST_ASSIGN';
constants[] = '\ast\AST_ASSIGN_REF';
constants[] = '\ast\AST_ASSIGN_OP';
constants[] = '\ast\AST_BINARY_OP';
constants[] = '\ast\AST_GREATER';
constants[] = '\ast\AST_GREATER_EQUAL';
constants[] = '\ast\AST_AND';
constants[] = '\ast\AST_OR';
constants[] = '\ast\AST_ARRAY_ELEM';
constants[] = '\ast\AST_NEW';
constants[] = '\ast\AST_INSTANCEOF';
constants[] = '\ast\AST_YIELD';
constants[] = '\ast\AST_COALESCE';
constants[] = '\ast\AST_STATIC';
constants[] = '\ast\AST_WHILE';
constants[] = '\ast\AST_DO_WHILE';
constants[] = '\ast\AST_IF_ELEM';
constants[] = '\ast\AST_SWITCH';
constants[] = '\ast\AST_SWITCH_CASE';
constants[] = '\ast\AST_DECLARE';
constants[] = '\ast\AST_PROP_ELEM';
constants[] = '\ast\AST_CONST_ELEM';
constants[] = '\ast\AST_USE_TRAIT';
constants[] = '\ast\AST_TRAIT_PRECEDENCE';
constants[] = '\ast\AST_METHOD_REFERENCE';
constants[] = '\ast\AST_NAMESPACE';
constants[] = '\ast\AST_USE_ELEM';
constants[] = '\ast\AST_TRAIT_ALIAS';
constants[] = '\ast\AST_GROUP_USE';
constants[] = '\ast\AST_METHOD_CALL';
constants[] = '\ast\AST_STATIC_CALL';
constants[] = '\ast\AST_CONDITIONAL';
constants[] = '\ast\AST_TRY';
constants[] = '\ast\AST_CATCH';
constants[] = '\ast\AST_PARAM';
constants[] = '\ast\AST_FOR';
constants[] = '\ast\AST_FOREACH';
constants[] = '\ast\AST_NAME';
constants[] = '\ast\AST_CLOSURE_VAR';

constants[] = '\ast\flags\CLASS_FINAL';
constants[] = '\ast\flags\BINARY_CONCAT';
constants[] = '\ast\flags\BINARY_IS_EQUAL';
constants[] = '\ast\flags\BINARY_IS_IDENTICAL';
constants[] = '\ast\flags\BINARY_IS_NOT_EQUAL';
constants[] = '\ast\flags\BINARY_IS_NOT_IDENTICAL';
constants[] = '\ast\flags\BINARY_IS_SMALLER_OR_EQUAL';
constants[] = '\ast\flags\BINARY_IS_SMALLER';
constants[] = '\ast\flags\CLASS_ABSTRACT';
constants[] = '\ast\flags\CLASS_FINAL';
constants[] = '\ast\flags\CLASS_INTERFACE';
constants[] = '\ast\flags\CLASS_TRAIT';
constants[] = '\ast\flags\MODIFIER_STATIC';
constants[] = '\ast\flags\NAME_FQ';
constants[] = '\ast\flags\NAME_NOT_FQ';
constants[] = '\ast\flags\PARAM_REF';
constants[] = '\ast\flags\PARAM_VARIADIC';
constants[] = '\ast\flags\TYPE_ARRAY';
constants[] = '\ast\flags\TYPE_BOOL';
constants[] = '\ast\flags\TYPE_CALLABLE';
constants[] = '\ast\flags\TYPE_DOUBLE';
constants[] = '\ast\flags\TYPE_LONG';
constants[] = '\ast\flags\TYPE_NULL';
constants[] = '\ast\flags\TYPE_OBJECT';
constants[] = '\ast\flags\TYPE_STRING';

classes[] = ast\node
classes[] = ast\Node\Decl

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

keywords[] = SELECT
keywords[] = UPDATE
keywords[] = INSERT
keywords[] = DELETE
keywords[] = SHOW
functions[] = pg_affected_rows
functions[] = pg_cancel_query
functions[] = pg_client_encoding
functions[] = pg_close
functions[] = pg_connect
functions[] = pg_connection_busy
functions[] = pg_connection_reset
functions[] = pg_connection_status
functions[] = pg_convert
functions[] = pg_copy_from
functions[] = pg_copy_to
functions[] = pg_dbname
functions[] = pg_delete
functions[] = pg_end_copy
functions[] = pg_escape_bytea
functions[] = pg_escape_identifier
functions[] = pg_escape_literal
functions[] = pg_escape_string
functions[] = pg_execute
functions[] = pg_fetch_all_columns
functions[] = pg_fetch_all
functions[] = pg_fetch_array
functions[] = pg_fetch_assoc
functions[] = pg_fetch_object
functions[] = pg_fetch_result
functions[] = pg_fetch_row
functions[] = pg_field_is_null
functions[] = pg_field_name
functions[] = pg_field_num
functions[] = pg_field_prtlen
functions[] = pg_field_size
functions[] = pg_field_table
functions[] = pg_field_type_oid
functions[] = pg_field_type
functions[] = pg_free_result
functions[] = pg_get_notify
functions[] = pg_get_pid
functions[] = pg_get_result
functions[] = pg_host
functions[] = pg_insert
functions[] = pg_last_error
functions[] = pg_last_notice
functions[] = pg_last_oid
functions[] = pg_lo_close
functions[] = pg_lo_create
functions[] = pg_lo_export
functions[] = pg_lo_import
functions[] = pg_lo_open
functions[] = pg_lo_read_all
functions[] = pg_lo_read
functions[] = pg_lo_seek
functions[] = pg_lo_tell
functions[] = pg_lo_truncate
functions[] = pg_lo_unlink
functions[] = pg_lo_write
functions[] = pg_meta_data
functions[] = pg_num_fields
functions[] = pg_num_rows
functions[] = pg_options
functions[] = pg_parameter_status
functions[] = pg_pconnect
functions[] = pg_ping
functions[] = pg_port
functions[] = pg_prepare
functions[] = pg_put_line
functions[] = pg_query_params
functions[] = pg_query
functions[] = pg_result_error_field
functions[] = pg_result_error
functions[] = pg_result_seek
functions[] = pg_result_status
functions[] = pg_select
functions[] = pg_send_execute
functions[] = pg_send_prepare
functions[] = pg_send_query_params
functions[] = pg_send_query
functions[] = pg_set_client_encoding
functions[] = pg_set_error_verbosity
functions[] = pg_trace
functions[] = pg_transaction_status
functions[] = pg_tty
functions[] = pg_unescape_bytea
functions[] = pg_untrace
functions[] = pg_update
functions[] = pg_version

classes[] = 

constants[] = 'PGSQL_CONNECT_FORCE_NEW';
constants[] = 'PGSQL_ASSOC';
constants[] = 'PGSQL_NUM';
constants[] = 'PGSQL_BOTH';
constants[] = 'PGSQL_CONNECTION_BAD';
constants[] = 'PGSQL_CONNECTION_OK';
constants[] = 'PGSQL_TRANSACTION_IDLE';
constants[] = 'PGSQL_TRANSACTION_ACTIVE';
constants[] = 'PGSQL_TRANSACTION_INTRANS';
constants[] = 'PGSQL_TRANSACTION_INERROR';
constants[] = 'PGSQL_TRANSACTION_UNKNOWN';
constants[] = 'PGSQL_ERRORS_TERSE';
constants[] = 'PGSQL_ERRORS_DEFAULT';
constants[] = 'PGSQL_ERRORS_VERBOSE';
constants[] = 'PGSQL_SEEK_SET';
constants[] = 'PGSQL_SEEK_CUR';
constants[] = 'PGSQL_SEEK_END';
constants[] = 'PGSQL_STATUS_LONG';
constants[] = 'PGSQL_STATUS_STRING';
constants[] = 'PGSQL_EMPTY_QUERY';
constants[] = 'PGSQL_COMMAND_OK';
constants[] = 'PGSQL_TUPLES_OK';
constants[] = 'PGSQL_COPY_OUT';
constants[] = 'PGSQL_COPY_IN';
constants[] = 'PGSQL_BAD_RESPONSE';
constants[] = 'PGSQL_NONFATAL_ERROR';
constants[] = 'PGSQL_FATAL_ERROR';
constants[] = 'PGSQL_DIAG_SEVERITY';
constants[] = 'PGSQL_DIAG_SQLSTATE';
constants[] = 'PGSQL_DIAG_MESSAGE_PRIMARY';
constants[] = 'PGSQL_DIAG_MESSAGE_DETAIL';
constants[] = 'PGSQL_DIAG_MESSAGE_HINT';
constants[] = 'PGSQL_DIAG_STATEMENT_POSITION';
constants[] = 'PGSQL_DIAG_INTERNAL_POSITION';
constants[] = 'PGSQL_DIAG_INTERNAL_QUERY';
constants[] = 'PGSQL_DIAG_CONTEXT';
constants[] = 'PGSQL_DIAG_SOURCE_FILE';
constants[] = 'PGSQL_DIAG_SOURCE_LINE';
constants[] = 'PGSQL_DIAG_SOURCE_FUNCTION';
constants[] = 'PGSQL_CONV_IGNORE_DEFAULT';
constants[] = 'PGSQL_CONV_FORCE_NULL';
constants[] = 'PGSQL_CONV_IGNORE_NOT_NULL';
constants[] = 'PGSQL_DML_NO_CONV';
constants[] = 'PGSQL_DML_EXEC';
constants[] = 'PGSQL_DML_ASYNC';
constants[] = 'PGSQL_DML_STRING';
constants[] = 'PGSQL_DIAG_SCHEMA_NAME';
constants[] = 'PGSQL_DIAG_TABLE_NAME';
constants[] = 'PGSQL_DIAG_COLUMN_NAME';
constants[] = 'PGSQL_DIAG_DATATYPE_NAME';
constants[] = 'PGSQL_DIAG_CONSTRAINT_NAME';
constants[] = 'PGSQL_DIAG_SEVERITY_NONLOCALIZED';
constants[] = 'PGSQL_LIBPQ_VERSION_STR';

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = swoole_async_dns_lookup
functions[] = swoole_async_read
functions[] = swoole_async_readfile
functions[] = swoole_async_write
functions[] = swoole_async_writefile
functions[] = swoole_client_select
functions[] = swoole_connection_info
functions[] = swoole_connection_list
functions[] = swoole_errno
functions[] = swoole_event_add
functions[] = swoole_event_defer
functions[] = swoole_event_del
functions[] = swoole_event_exit
functions[] = swoole_event_set
functions[] = swoole_event_wait
functions[] = swoole_get_local_ip
functions[] = swoole_get_mysqli_sock
functions[] = swoole_hashcode
functions[] = swoole_server_addlisten
functions[] = swoole_server_addtimer
functions[] = swoole_server_close
functions[] = swoole_server_create
functions[] = swoole_server_finish
functions[] = swoole_server_handler
functions[] = swoole_server_reload
functions[] = swoole_server_send
functions[] = swoole_server_set
functions[] = swoole_server_start
functions[] = swoole_server_task
functions[] = swoole_server_taskwait
functions[] = swoole_set_process_name
functions[] = swoole_strerror
functions[] = swoole_timer_add
functions[] = swoole_timer_after
functions[] = swoole_timer_clear
functions[] = swoole_timer_del
functions[] = swoole_timer_exists
functions[] = swoole_timer_tick
functions[] = swoole_version

constants[] = 'HTTP_GLOBAL_ALL';
constants[] = 'HTTP_GLOBAL_COOKIE';
constants[] = 'HTTP_GLOBAL_GET';
constants[] = 'HTTP_GLOBAL_POST';
constants[] = 'SWOOLE_ASYNC';
constants[] = 'SWOOLE_BASE';
constants[] = 'SWOOLE_EVENT_READ';
constants[] = 'SWOOLE_EVENT_WRITE';
constants[] = 'SWOOLE_FILELOCK';
constants[] = 'SWOOLE_KEEP';
constants[] = 'SWOOLE_MUTEX';
constants[] = 'SWOOLE_PACKET';
constants[] = 'SWOOLE_PROCESS';
constants[] = 'SWOOLE_RWLOCK';
constants[] = 'SWOOLE_SEM';
constants[] = 'SWOOLE_SOCK_ASYNC';
constants[] = 'SWOOLE_SOCK_SYNC';
constants[] = 'SWOOLE_SOCK_TCP';
constants[] = 'SWOOLE_SOCK_TCP6';
constants[] = 'SWOOLE_SOCK_UDP';
constants[] = 'SWOOLE_SOCK_UDP6';
constants[] = 'SWOOLE_SOCK_UNIX_DGRAM';
constants[] = 'SWOOLE_SOCK_UNIX_STREAM';
constants[] = 'SWOOLE_SPINLOCK';
constants[] = 'SWOOLE_SSL';
constants[] = 'SWOOLE_SYNC';
constants[] = 'SWOOLE_TCP';
constants[] = 'SWOOLE_TCP6';
constants[] = 'SWOOLE_THREAD';
constants[] = 'SWOOLE_UDP';
constants[] = 'SWOOLE_UDP6';
constants[] = 'SWOOLE_UNIX_DGRAM';
constants[] = 'SWOOLE_UNIX_STREAM';
constants[] = 'SWOOLE_VERSION';
constants[] = 'WEBSOCKET_OPCODE_TEXT';

classes[] = '\swoole\atomic';
classes[] = '\swoole\buffer';
classes[] = '\swoole\client';
classes[] = '\swoole\http_request';
classes[] = '\swoole\http_response';
classes[] = '\swoole\http_server';
classes[] = '\swoole\lock';
classes[] = '\swoole\process';
classes[] = '\swoole\server';
classes[] = '\swoole\table';
classes[] = '\swoole\websocket_server';
classes[] = '\swoole\coroutine';
classes[] = '\swoole\coroutine\redis';

interfaces[] = 

traits[] = 

namespaces[] = '\swoole'

directives[] = 

constants[] = 'NIL';
constants[] = 'OP_DEBUG';
constants[] = 'OP_READONLY';
constants[] = 'OP_ANONYMOUS';
constants[] = 'OP_SHORTCACHE';
constants[] = 'OP_SILENT';
constants[] = 'OP_PROTOTYPE';
constants[] = 'OP_HALFOPEN';
constants[] = 'OP_EXPUNGE';
constants[] = 'OP_SECURE';
constants[] = 'CL_EXPUNGE';
constants[] = 'FT_UID';
constants[] = 'FT_PEEK';
constants[] = 'FT_NOT';
constants[] = 'FT_INTERNAL';
constants[] = 'FT_PREFETCHTEXT';
constants[] = 'ST_UID';
constants[] = 'ST_SILENT';
constants[] = 'ST_SET';
constants[] = 'CP_UID';
constants[] = 'CP_MOVE';
constants[] = 'SE_UID';
constants[] = 'SE_FREE';
constants[] = 'SE_NOPREFETCH';
constants[] = 'SO_FREE';
constants[] = 'SO_NOSERVER';
constants[] = 'SA_MESSAGES';
constants[] = 'SA_RECENT';
constants[] = 'SA_UNSEEN';
constants[] = 'SA_UIDNEXT';
constants[] = 'SA_UIDVALIDITY';
constants[] = 'SA_ALL';
constants[] = 'LATT_NOINFERIORS';
constants[] = 'LATT_NOSELECT';
constants[] = 'LATT_MARKED';
constants[] = 'LATT_UNMARKED';
constants[] = 'SORTDATE';
constants[] = 'SORTARRIVAL';
constants[] = 'SORTFROM';
constants[] = 'SORTSUBJECT';
constants[] = 'SORTTO';
constants[] = 'SORTCC';
constants[] = 'SORTSIZE';
constants[] = 'TYPETEXT';
constants[] = 'TYPEMULTIPART';
constants[] = 'TYPEMESSAGE';
constants[] = 'TYPEAPPLICATION';
constants[] = 'TYPEAUDIO';
constants[] = 'TYPEIMAGE';
constants[] = 'TYPEVIDEO';
constants[] = 'TYPEOTHER';
constants[] = 'ENC7BIT';
constants[] = 'ENC8BIT';
constants[] = 'ENCBINARY';
constants[] = 'ENCQUOTEDPRINTABLE';
constants[] = 'ENCOTHER';
constants[] = 'IMAP_OPENTIMEOUT';
constants[] = 'IMAP_READTIMEOUT';
constants[] = 'IMAP_WRITETIMEOUT';
constants[] = 'IMAP_CLOSETIMEOUT';
constants[] = 'LATT_REFERRAL';
constants[] = 'LATT_HASCHILDREN';
constants[] = 'LATT_HASNOCHILDREN';
constants[] = 'TYPEMODEL';
constants[] = 'IMAP_GC_ELT';
constants[] = 'IMAP_GC_ENV';
constants[] = 'IMAP_GC_TEXTS';

functions[] = 'imap_8bit';
functions[] = 'imap_alerts';
functions[] = 'imap_append';
functions[] = 'imap_base64';
functions[] = 'imap_binary';
functions[] = 'imap_body';
functions[] = 'imap_bodystruct';
functions[] = 'imap_check';
functions[] = 'imap_clearflag_full';
functions[] = 'imap_close';
functions[] = 'imap_create';
functions[] = 'imap_createmailbox';
functions[] = 'imap_delete';
functions[] = 'imap_deletemailbox';
functions[] = 'imap_errors';
functions[] = 'imap_expunge';
functions[] = 'imap_fetch_overview';
functions[] = 'imap_fetchbody';
functions[] = 'imap_fetchheader';
functions[] = 'imap_fetchmime';
functions[] = 'imap_fetchstructure';
functions[] = 'imap_fetchtext';
functions[] = 'imap_gc';
functions[] = 'imap_get_quota';
functions[] = 'imap_get_quotaroot';
functions[] = 'imap_getacl';
functions[] = 'imap_getmailboxes';
functions[] = 'imap_getsubscribed';
functions[] = 'imap_header';
functions[] = 'imap_headerinfo';
functions[] = 'imap_headers';
functions[] = 'imap_last_error';
functions[] = 'imap_list';
functions[] = 'imap_listmailbox';
functions[] = 'imap_listscan';
functions[] = 'imap_listsubscribed';
functions[] = 'imap_lsub';
functions[] = 'imap_mail_compose';
functions[] = 'imap_mail_copy';
functions[] = 'imap_mail_move';
functions[] = 'imap_mail';
functions[] = 'imap_mailboxmsginfo';
functions[] = 'imap_mime_header_decode';
functions[] = 'imap_msgno';
functions[] = 'imap_num_msg';
functions[] = 'imap_num_recent';
functions[] = 'imap_open';
functions[] = 'imap_ping';
functions[] = 'imap_qprint';
functions[] = 'imap_rename';
functions[] = 'imap_renamemailbox';
functions[] = 'imap_reopen';
functions[] = 'imap_rfc822_parse_adrlist';
functions[] = 'imap_rfc822_parse_headers';
functions[] = 'imap_rfc822_write_address';
functions[] = 'imap_savebody';
functions[] = 'imap_scan';
functions[] = 'imap_scanmailbox';
functions[] = 'imap_search';
functions[] = 'imap_set_quota';
functions[] = 'imap_setacl';
functions[] = 'imap_setflag_full';
functions[] = 'imap_sort';
functions[] = 'imap_status';
functions[] = 'imap_subscribe';
functions[] = 'imap_thread';
functions[] = 'imap_timeout';
functions[] = 'imap_uid';
functions[] = 'imap_undelete';
functions[] = 'imap_unsubscribe';
functions[] = 'imap_utf7_decode';
functions[] = 'imap_utf7_encode';
functions[] = 'imap_utf8';

classes[] = 
    
interfaces[] = 

traits[] = 
namespaces[] = 

directives[] = 

{
  "adoconnection": {
    "homepage": "https://adodb.org/dokuwiki/doku.php/",
    "ignore": "WHOLE_DIR",
    "name": "ADOdb",
    "classes": [
      "adoconnection"
    ],
    "type": "classic"
  },
  "atoum": {
    "homepage": "http://atoum.org/",
    "ignore": "WHOLE_DIR",
    "name": "atoum",
    "classes": [
      "atoum"
    ],
    "type": "test"
  },
  "bbq": {
    "homepage": "https://github.com/eventio/bbq",
    "ignore": "WHOLE_DIR",
    "name": "BBQ",
    "classes": [
      "bbq"
    ],
    "type": "classic"
  },
  "cakeplugin": {
    "homepage": "https://cakephp.org/",
    "ignore": "WHOLE_DIR",
    "name": "CakePHP",
    "classes": [
      "cakeplugin"
    ],
    "type": "classic"
  },
  "ci_xmlrpc": {
    "homepage": "http://apigen.juzna.cz/doc/ci-bonfire/Bonfire/class-CI_Xmlrpc.html",
    "ignore": "FILE_ONLY",
    "name": "CI xmlRPC",
    "classes": [
      "ci_xmlrpc"
    ],
    "type": "classic"
  },
  "cpdf": {
    "homepage": "https://pear.php.net/reference/PhpDocumentor-latest/li_Cpdf.html",
    "ignore": "WHOLE_DIR",
    "name": "CPDF",
    "classes": [
      "cpdf"
    ],
    "type": "classic"
  },
  "Codeception": {
    "homepage": "https://codeception.com/",
    "ignore": "WHOLE_DIR",
    "name": "Codeception",
    "classes": [
      "codeception\\test\\unit"
    ],
    "type": "test"
  },
  "dompdf": {
    "homepage": "https://github.com/dompdf/dompdf",
    "ignore": "PARENT_DIR",
    "name": "DomPDF",
    "classes": [
      "dompdf"
    ],
    "type": "classic"
  },
  "fpdf": {
    "homepage": "http://www.fpdf.org/",
    "ignore": "FILE_ONLY",
    "name": "FPDF",
    "classes": [
      "fpdf"
    ],
    "type": "classic"
  },
  "gacl": {
    "homepage": "http://phpgacl.sourceforge.net/",
    "ignore": "WHOLE_DIR",
    "name": "phpGACL",
    "classes": [
      "gacl"
    ],
    "type": "classic"
  },
  "gettext_reader": {
    "homepage": "http://pivotx.net/dev/docs/trunk/External/PHP-gettext/gettext_reader.html",
    "ignore": "FILE_ONLY",
    "name": "gettext Reader",
    "classes": [
      "gettext_reader"
    ],
    "type": "classic"
  },
  "graph": {
    "homepage": "http://jpgraph.net/",
    "ignore": "PARENT_DIR",
    "name": "jpGraph",
    "classes": [
      "graph",
      "jpgraph"
    ],
    "type": "classic"
  },
  "html2pdf": {
    "homepage": "http://sourceforge.net/projects/phphtml2pdf/",
    "ignore": "WHOLE_DIR",
    "name": "HTML2PDF",
    "classes": [
      "html2pdf"
    ],
    "type": "classic"
  },
  "htmlpurifier": {
    "homepage": "http://htmlpurifier.org/",
    "ignore": "FILE_ONLY",
    "name": "HTMLPurifier",
    "classes": [
      "htmlpurifier"
    ],
    "type": "classic"
  },
  "htmlpurifier": {
    "homepage": "http://htmlpurifier.org/",
    "ignore": "WHOLE_DIR",
    "name": "HTML Purifier",
    "classes": [
      "htmlpurifier"
    ],
    "type": "classic"
  },
  "http_class": {
    "homepage": "",
    "ignore": "WHOLE_DIR",
    "name": "http_class",
    "classes": [
      "http_class"
    ],
    "type": "classic"
  },
  "idna_convert": {
    "homepage": "https://github.com/phpWhois/idna-convert",
    "ignore": "WHOLE_DIR",
    "name": "IDNA convert",
    "classes": [
      "idna_convert"
    ],
    "type": "classic"
  },
  "lessc": {
    "homepage": "http://leafo.net/lessphp/",
    "ignore": "FILE_ONLY",
    "name": "lessc",
    "classes": [
      "lessc"
    ],
    "type": "classic"
  },
  "magpierss": {
    "homepage": "http://magpierss.sourceforge.net/",
    "ignore": "WHOLE_DIR",
    "name": "magpieRSS",
    "classes": [
      "magpierss"
    ],
    "type": "classic"
  },
  "markdown_parser": {
    "homepage": "http://processwire.com/apigen/class-Markdown_Parser.html",
    "ignore": "FILE_ONLY",
    "name": "MarkDown Parser",
    "classes": [
      "markdown_parser"
    ],
    "type": "classic"
  },
  "markdown": {
    "homepage": "https://github.com/michelf/php-markdown",
    "ignore": "WHOLE_DIR",
    "name": "Markdown",
    "classes": [
      "markdown", 
      "michelf\\markdown"
    ],
    "type": "classic"
  },
  "mpdf": {
    "homepage": "http://www.mpdf1.com/mpdf/index.php",
    "ignore": "WHOLE_DIR",
    "name": "mpdf",
    "classes": [
      "mpdf"
    ],
    "type": "classic"
  },
  "oauthtoken": {
    "homepage": "",
    "ignore": "WHOLE_DIR",
    "name": "oauthToken",
    "classes": [
      "oauthtoken"
    ],
    "type": "classic"
  },
  "passwordhash": {
    "homepage": "",
    "ignore": "FILE_ONLY",
    "name": "passwordHash",
    "classes": [
      "passwordhash"
    ],
    "type": "classic"
  },
  "pchart": {
    "homepage": "http://www.pchart.net/",
    "ignore": "WHOLE_DIR",
    "name": "pChart",
    "classes": [
      "pchart"
    ],
    "type": "classic"
  },
  "pclzip": {
    "homepage": "http://www.phpconcept.net/pclzip/",
    "ignore": "FILE_ONLY",
    "name": "pclZip",
    "classes": [
      "pclzip"
    ],
    "type": "classic"
  },
  "propel": {
    "homepage": "http://propelorm.org/",
    "ignore": "PARENT_DIR",
    "name": "Propel",
    "classes": [
      "propel"
    ],
    "type": "classic"
  },
  "phpexcel": {
    "homepage": "https://phpexcel.codeplex.com/",
    "ignore": "WHOLE_DIR",
    "name": "phpExecl",
    "classes": [
      "phpexcel"
    ],
    "type": "classic"
  },
  "phpmailer": {
    "homepage": "https://github.com/PHPMailer/PHPMailer",
    "ignore": "FILE_ONLY",
    "name": "phpMailer",
    "classes": [
      "phpmailer"
    ],
    "type": "classic"
  },
  "phpspecs": {
    "homepage": "http://www.phpspec.net/en/latest/",
    "ignore": "WHOLE_DIR",
    "name": "PHPSpec",
    "classes": [
      "objectbehavior"
    ],
    "type": "test"
  },
  "phpunit": {
    "homepage": "https://www.phpunit.de/",
    "ignore": "WHOLE_DIR",
    "name": "PHPUnit",
    "classes": [
      "phpunit_framework_testcase"
    ],
    "type": "test"
  },
  "qrcode": {
    "homepage": "http://phpqrcode.sourceforge.net/",
    "ignore": "FILE_ONLY",
    "name": "qrCode",
    "type": "classic",
    "classes": [
      "qrcode"
    ]
  },
  "services_json": {
    "homepage": "https://pear.php.net/package/Services_JSON",
    "ignore": "FILE_ONLY",
    "name": "Services_JSON",
    "classes": [
      "services_json"
    ],
    "type": "classic"
  },
  "sfyaml": {
    "homepage": "https://github.com/fabpot-graveyard/yaml/blob/master/lib/sfYaml.php",
    "ignore": "WHOLE_DIR",
    "name": "sfYaml",
    "type": "classic",
    "classes": [
      "sfyaml"
    ]
  },
  "simplepie": {
    "homepage": "http://simplepie.org/",
    "ignore": "FILE_ONLY",
    "name": "SimplePie",
    "type": "classic",
    "classes": [
      "simplepie"
    ]
  },
  "simpletest": {
    "homepage": "https://github.com/simpletest/simpletest",
    "ignore": "WHOLE_DIR",
    "name": "SimpleTest",
    "type": "test",
    "classes": [
      "drupal\\tests\\unittestcase",
      "unittestcase"
    ]
  },
  "swift": {
    "homepage": "http://swiftmailer.org/",
    "ignore": "PARENT_DIR",
    "name": "swift",
    "type": "classic",
    "classes": [
      "swift"
    ]
  },
  "smarty": {
    "homepage": "http://www.smarty.net/",
    "ignore": "WHOLE_DIR",
    "name": "Smarty",
    "type": "classic",
    "classes": [
      "smarty"
    ]
  },
  "symfomy_test": {
    "homepage": "https://symfony.com/doc/current/testing.html",
    "ignore": "WHOLE_DIR",
    "name": "Symfony Unit Test",
    "type": "test",
    "classes": [
      "symfony\\bundle\\frameworkbundle\\test\\webtestcase",
      "symfony\\bundle\\frameworkbundle\\test\\kerneltestcase"
    ]
  },
  "tcpdf": {
    "homepage": "http://www.tcpdf.org/",
    "ignore": "WHOLE_DIR",
    "name": "tcpdf",
    "type": "classic",
    "classes": [
      "tcpdf"
    ]
  },
  "text_diff": {
    "homepage": "https://pear.php.net/package/Text_Diff",
    "ignore": "FILE_ONLY",
    "name": "text_diff",
    "type": "classic",
    "classes": [
      "text_diff"
    ]
  },
  "text_highlighter": {
    "homepage": "https://pear.php.net/package/Text_Highlighter/",
    "ignore": "WHOLE_DIR",
    "name": "text highlighter",
    "type": "classic",
    "classes": [
      "text_highlighter"
    ]
  },
  "tfpdf": {
    "homepage": "http://www.fpdf.org/en/script/script92.php",
    "ignore": "WHOLE_DIR",
    "name": "tfpdf",
    "type": "classic",
    "classes": [
      "tfpdf"
    ]
  },
  "Typo3TestingFramework": {
    "homepage": "https://github.com/TYPO3/testing-framework",
    "ignore": "WHOLE_DIR",
    "name": "Typo3TestingFramework",
    "type": "test",
    "classes": [
      "typo3\\testingframework\\core\\unit\\unittestcase"
    ]
  },
  "utf8": {
    "homepage": "",
    "ignore": "WHOLE_DIR",
    "name": "UTF8",
    "type": "classic",
    "classes": [
      "yii"
    ]
  },
  "xajax": {
    "homepage": "https://github.com/Xajax/Xajax",
    "ignore": "PARENT_DIR",
    "name": "Xajax",
    "type": "classic",
    "classes": [
      "xajax"
    ]
  },
  "yii": {
    "homepage": "http://www.yiiframework.com/",
    "ignore": "WHOLE_DIR",
    "name": "Yii",
    "type": "classic",
    "classes": [
      "yii"
    ]
  },
  "zend_view": {
    "homepage": "http://framework.zend.com/",
    "ignore": "WHOLE_DIR",
    "name": "Zend Framework",
    "classes": [
      "zend_view"
    ],
    "type": "classic"
  }
}functions[] = sqlite_array_query
functions[] = sqlite_busy_timeout
functions[] = sqlite_changes
functions[] = sqlite_close
functions[] = sqlite_column
functions[] = sqlite_create_aggregate
functions[] = sqlite_create_function
functions[] = sqlite_current
functions[] = sqlite_error_string
functions[] = sqlite_escape_string
functions[] = sqlite_exec
functions[] = sqlite_factory
functions[] = sqlite_fetch_all
functions[] = sqlite_fetch_array
functions[] = sqlite_fetch_column_types
functions[] = sqlite_fetch_object
functions[] = sqlite_fetch_single
functions[] = sqlite_fetch_string
functions[] = sqlite_field_name
functions[] = sqlite_has_more
functions[] = sqlite_has_prev
functions[] = sqlite_key
functions[] = sqlite_last_error
functions[] = sqlite_last_insert_rowid
functions[] = sqlite_libencoding
functions[] = sqlite_libversion
functions[] = sqlite_next
functions[] = sqlite_num_fields
functions[] = sqlite_num_rows
functions[] = sqlite_open
functions[] = sqlite_popen
functions[] = sqlite_prev
functions[] = sqlite_query
functions[] = sqlite_rewind
functions[] = sqlite_seek
functions[] = sqlite_single_query
functions[] = sqlite_udf_decode_binary
functions[] = sqlite_udf_encode_binary
functions[] = sqlite_unbuffered_query
functions[] = sqlite_valid

constants[] = 'SQLITE_BOTH';
constants[] = 'SQLITE_NUM';
constants[] = 'SQLITE_ASSOC';
constants[] = 'SQLITE_OK';
constants[] = 'SQLITE_ERROR';
constants[] = 'SQLITE_INTERNAL';
constants[] = 'SQLITE_PERM';
constants[] = 'SQLITE_ABORT';
constants[] = 'SQLITE_BUSY';
constants[] = 'SQLITE_LOCKED';
constants[] = 'SQLITE_NOMEM';
constants[] = 'SQLITE_READONLY';
constants[] = 'SQLITE_INTERRUPT';
constants[] = 'SQLITE_IOERR';
constants[] = 'SQLITE_CORRUPT';
constants[] = 'SQLITE_NOTFOUND';
constants[] = 'SQLITE_FULL';
constants[] = 'SQLITE_CANTOPEN';
constants[] = 'SQLITE_PROTOCOL';
constants[] = 'SQLITE_EMPTY';
constants[] = 'SQLITE_SCHEMA';
constants[] = 'SQLITE_TOOBIG';
constants[] = 'SQLITE_CONSTRAINT';
constants[] = 'SQLITE_MISMATCH';
constants[] = 'SQLITE_MISUSE';
constants[] = 'SQLITE_NOLFS';
constants[] = 'SQLITE_AUTH';
constants[] = 'SQLITE_NOTADB';
constants[] = 'SQLITE_FORMAT';
constants[] = 'SQLITE_ROW';
constants[] = 'SQLITE_DONE';

classes[] = SQLiteDatabase
classes[] = SQLiteResult
classes[] = SQLiteUnbuffered
classes[] = SQLiteException

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = iis_add_server
functions[] = iis_get_dir_security
functions[] = iis_get_script_map
functions[] = iis_get_server_by_comment
functions[] = iis_get_server_by_path
functions[] = iis_get_server_rights
functions[] = iis_get_service_state
functions[] = iis_remove_server
functions[] = iis_set_app_settings
functions[] = iis_set_dir_security
functions[] = iis_set_script_map
functions[] = iis_set_server_rights
functions[] = iis_start_server
functions[] = iis_start_service
functions[] = iis_stop_server
functions[] = iis_stop_service

constants[] = 'IIS_READ'
constants[] = 'IIS_WRITE'
constants[] = 'IIS_EXECUTE'
constants[] = 'IIS_SCRIPT'
constants[] = 'IIS_ANONYMOUS'
constants[] = 'IIS_BASIC'
constants[] = 'IIS_NTLM'
constants[] = 'IIS_STARTING'
constants[] = 'IIS_STOPPED'
constants[] = 'IIS_PAUSED'
constants[] = 'IIS_RUNNING'

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = 

constants[] = MONGODB_VERSION
constants[] = MONGODB_STABILITY

classes[] = MongoDB\Driver\Manager
classes[] = MongoDB\Driver\Command
classes[] = MongoDB\Driver\Query
classes[] = MongoDB\Driver\BulkWrite
classes[] = MongoDB\Driver\WriteConcern
classes[] = MongoDB\Driver\ReadPreference
classes[] = MongoDB\Driver\ReadConcern
classes[] = MongoDB\Driver\Cursor
classes[] = MongoDB\Driver\CursorId
classes[] = MongoDB\Driver\Server
classes[] = MongoDB\Driver\WriteConcernError
classes[] = MongoDB\Driver\WriteError
classes[] = MongoDB\Driver\WriteResult
classes[] = MongoDB\BSON\Binary
classes[] = MongoDB\BSON\Decimal128
classes[] = MongoDB\BSON\Javascript
classes[] = MongoDB\BSON\MaxKey
classes[] = MongoDB\BSON\MinKey
classes[] = MongoDB\BSON\ObjectID
classes[] = MongoDB\BSON\Regex
classes[] = MongoDB\BSON\Timestamp
classes[] = MongoDB\BSON\UTCDatetime
classes[] = MongoDB\BSON\Type
classes[] = MongoDB\BSON\Persistable
classes[] = MongoDB\BSON\Serializable
classes[] = MongoDB\BSON\Unserializable
classes[] = MongoDB\Driver\Exception\AuthenticationException
classes[] = MongoDB\Driver\Exception\BulkWriteException
classes[] = MongoDB\Driver\Exception\ConnectionException
classes[] = MongoDB\Driver\Exception\ConnectionTimeoutException
classes[] = MongoDB\Driver\Exception\Exception
classes[] = MongoDB\Driver\Exception\ExecutionTimeoutException
classes[] = MongoDB\Driver\Exception\InvalidArgumentException
classes[] = MongoDB\Driver\Exception\LogicException
classes[] = MongoDB\Driver\Exception\RuntimeException
classes[] = MongoDB\Driver\Exception\SSLConnectionException
classes[] = MongoDB\Driver\Exception\UnexpectedValueException
classes[] = MongoDB\Driver\Exception\WriteException

interfaces[] = 

traits[] = 

namespaces[] = MongoDB\Driver
namespaces[] = MongoDB\BSON
namespaces[] = MongoDB\Driver\Exception

directives[] = 

__toString
_COOKIE
_ENV
_FILES
_GET
_POST
_REQUEST
_SESSION
_SERVER
array_replace
eval
foreach
GLOBALS
instanceof
PHP
preg_replace
preg_replace_callback
preg_replace_callback_array
print_r
strtoupper
var_dump
var_export
boolean
booleans
bracketless
__DIR__
__FILE__
__METHOD__
superglobals
superglobal
globals
dereferences
dereferenced
dereference
dereferencing
functioncalls
functioncall
const
reassignation
reassignations
elseif
fallthrough
fallthroughs
methodcall
methodcalls
instantiation
instantiations
hardcoded
hardcodes
hardcode
hardcoding
myString
unsetting
namespace
goto
ifthen
PHP_VERSION
date.timezone
bitshift
Bcrypt
MD5
SHA1
SHA512
display_error
DOC_ROOT
PHP_EOL
falsy
preprocess
preprocessing
fgetcsv
fgetss
incrementing
dirname
E_NOTICE
throwable
error_reporting
untestable
Foreach
array_keys
heredoc
nowdoc
default_charset
html4
transtyped
rethrowing
rethrow
rethrown
Unsetting
Exakat
bracketless
preprocessed
Reznichenko
Incrementing
Bracketless
Napoli
Heredoc
Nowdoc
isset
CWE
autoload
heredocs
zend
stdlib
validator
throwable
xmlrpc
Zend
uri
whitespace
whitespaces
tokenizing
Codepoint
Codepoints
codepoint
codepoints
Symfony
typehint
typehints
typehinted
typehinting
syntaxes
CakePHP
visibilities
nullable
throwable
namespaces
namespace
namespaced
acyclic
unmaintained
runtime
commandline
unserialize
unserialized
unserializes
serialize
serialized
serializes
pregenerated
pregenerates
pregenerate
cacheable
hardcoded
hardcoding
hardcodes
hardcode
maintenable
variadic
charset
charsets
nonces
nonce
insteadof
JSON
subdomain
subdomains
retransmitted
retransmits
retransmitting
XSS
CSRF
SSL
untrusted
untrusting
untrust
untrusts
unconfigured
unconfigures
unconfigure
unconfiguring
unanchored
unanchores
unanchore
unanchoring
autoloading
autoloades
autoloaded
PCRE
AST
hashtables
hashtable
LDAP
CSS
OOP
Melis
compilable
refactorisation
refactorisations
destructor
destructors
constructor
constructors
camelcase
accessor
accessors
getter
getters
setters
setter
EXIF
serializer
Drupal
POSIX
precalculate
precalculating
precalculated
preprocessing
preprocess
preprocesses
preprocessed
subpattern
subpatterns
datastructure
datastructures
conformant
grapheme
graphemes
timezone
timezones
underlaying
subclass
subclasses
subclassed
wildchar
wildchars
cryptographically
VCS
changelog
iterable
natively
HTTPS
HTTP
FTP
FTPS
SFTP
transtyping
transtype
transtypes
transtyped
UTF-8
UTF-16
api
__CLASS__
__DIR__s
checksum
checksums
php
https
http
PSR
exakat
MySQL
ODBC
ZooKeeper
barcodes
barcode
redeclare
redeclares
redeclaring
redeclared
substraction
substractions
UPSERT
filesystem
filesystems
contravariant
returntype
calltime
injectable
ruleset
multibyte
encodings
unsecable
templating
github.com
Yaml
PNG
functions[] = 

constants[] = 'GEARMAN_SUCCESS';
constants[] = 'GEARMAN_IO_WAIT';
constants[] = 'GEARMAN_ERRNO';
constants[] = 'GEARMAN_NO_ACTIVE_FDS';
constants[] = 'GEARMAN_UNEXPECTED_PACKET';
constants[] = 'GEARMAN_GETADDRINFO';
constants[] = 'GEARMAN_NO_SERVERS';
constants[] = 'GEARMAN_LOST_CONNECTION';
constants[] = 'GEARMAN_MEMORY_ALLOCATION_FAILURE';
constants[] = 'GEARMAN_SERVER_ERROR';
constants[] = 'GEARMAN_WORK_DATA';
constants[] = 'GEARMAN_WORK_WARNING';
constants[] = 'GEARMAN_WORK_STATUS';
constants[] = 'GEARMAN_WORK_EXCEPTION';
constants[] = 'GEARMAN_WORK_FAIL';
constants[] = 'GEARMAN_COULD_NOT_CONNECT';
constants[] = 'GEARMAN_INVALID_FUNCTION_NAME';
constants[] = 'GEARMAN_INVALID_WORKER_FUNCTION';
constants[] = 'GEARMAN_NO_REGISTERED_FUNCTIONS';
constants[] = 'GEARMAN_NO_JOBS';
constants[] = 'GEARMAN_ECHO_DATA_CORRUPTION';
constants[] = 'GEARMAN_NEED_WORKLOAD_FN';
constants[] = 'GEARMAN_PAUSE';
constants[] = 'GEARMAN_UNKNOWN_STATE';
constants[] = 'GEARMAN_SEND_BUFFER_TOO_SMALL';
constants[] = 'GEARMAN_TIMEOUT';
constants[] = 'GEARMAN_CLIENT_GENERATE_UNIQUE';
constants[] = 'GEARMAN_CLIENT_NON_BLOCKING';
constants[] = 'GEARMAN_CLIENT_UNBUFFERED_RESULT';
constants[] = 'GEARMAN_CLIENT_FREE_TASKS';
constants[] = 'GEARMAN_WORKER_NON_BLOCKING';
constants[] = 'GEARMAN_WORKER_GRAB_UNIQ';
constants[] = 'GEARMAN_DEFAULT_TCP_HOST';
constants[] = 'GEARMAN_DEFAULT_TCP_PORT';
constants[] = 'GEARMAN_DEFAULT_SOCKET_TIMEOUT';
constants[] = 'GEARMAN_DEFAULT_SOCKET_SEND_SIZE';
constants[] = 'GEARMAN_DEFAULT_SOCKET_RECV_SIZE';
constants[] = 'GEARMAN_MAX_ERROR_SIZE';
constants[] = 'GEARMAN_PACKET_HEADER_SIZE';
constants[] = 'GEARMAN_JOB_HANDLE_SIZE';
constants[] = 'GEARMAN_OPTION_SIZE';
constants[] = 'GEARMAN_UNIQUE_SIZE';
constants[] = 'GEARMAN_MAX_COMMAND_ARGS';
constants[] = 'GEARMAN_ARGS_BUFFER_SIZE';
constants[] = 'GEARMAN_SEND_BUFFER_SIZE';
constants[] = 'GEARMAN_RECV_BUFFER_SIZE';
constants[] = 'GEARMAN_WORKER_WAIT_TIMEOUT';

classes[] = GearmanClient
classes[] = GearmanJob
classes[] = GearmanTask
classes[] = GearmanWorker
classes[] = GearmanException

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = setproctitle
functions[] = setthreadtitle

constants[] = 

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

SQLite format 3   @    J             b                                                J .4                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   V     cztnhb\VPJD>82,& ~xrlf`ZTNHB<60*$                                                                                                                                                                                                                                                                                                                                            bX   a@   `)   _   ^{   ]h   \c   [Q   Z>   Y*   X   W   Vp   U^   TN   S9   R    Q   Pr   O   NQ   M<   L   Kt   JV   I   Ha   GG   F   E{   Dg   CP   B<   A'   @   ?   >t   =c   <Q   ;=   :$   9   8v   7_   6J   57   4#   3   2{   1d   0G   /.   .   -   ,D   +1   *   )   (o   '[   &I   %7   $$   #   "   !p    \   E   -          l   R   @   *      a   U   =   (         n   X   A   &      f                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       V   I      y                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      $  u   	   wV6	                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    $    !ZipArchivegetStream"  !-#SplObjectStorageunserialize  e(ARecursiveDirectoryIteratorgetMTimeI  D1PHPsvn_client_versionG  $3PHPnewt_grid_v_stackedt  %PHPimagettftext  "?PHPdisplay_disabled_function   %)IntlTimeZonetoDateTimeZone   +DOMDocumentTypecloneNode     R  Y Y                         ?Mtableargs_typeargs_typeCREATE TABL   7                                                   ?Mtableargs_typeargs_typeCREATE TABLE "args_type" (
	 "id" integer,
	 "class" varchar,
	 "name" varchar,
	 "return" varchar(50,0),
	 "arg0" varchar(10,0),
	 "arg1" varchar(10,0),
	 "arg2" varchar(10,0),
	 "arg3" varchar(10,0),
	 "arg4" varchar(10,0),
	 "arg5" varchar(10,0),
	 "arg6" varchar(10,0),
	 "arg7" varchar(10,0),
	 "arg8" varchar(10,0),
	 "arg9" varchar(10,0),
	 "arg10" varchar(10,0),
	 "arg11" varchar(10,0),
	PRIMARY KEY("id")
)+##tableargs_is_refargs_is_refCREATE TABLE "args_is_ref" (
	 "id" integer,
	 "class" varchar,
	 "name" varchar,
	 "arg0" varchar(10,0),
	 "arg1" varchar(10,0),
	 "arg2" varchar(10,0),
	 "arg3" varchar(10,0),
	 "arg4" varchar(10,0),
	 "arg5" varchar(10,0),
	 "arg6" varchar(10,0),
	 "arg7" varchar(10,0),
	 "arg8" varchar(10,0),
	 "arg9" varchar(10,0),
	 "arg10" varchar(10,0),
	 "arg11" varchar(10,0),
	PRIMARY KEY("id")
)     D                                                                                                                                                                                   Z''stablemethod_errorsmethod_errors
CREATE TABLE "method_errors" (
	 "id" integer,
	 "class" varchar,
	 "name" varchar,
	 "error" varchar(10,0),
	 "exception" varchar(20,0),
	 "failure" varchar,
	PRIMARY KEY("id")
)!!tabledirectivesdirectives	CREATE TABLE "directives" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "directive" text,
	 "class" text,
	 "function" text
)P++Ytablesqlite_sequencesqlite_sequenceCREATE TABLE sqlite_sequence(name,seq)-A indexsqlite_autoindex_methods_1methods8GtablemethodsmethodsCREATE TABLE "methods" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "class" text DEFAULT PHP,
	 "name" text(25,0),
	 "args_min" integer DEFAULT 0,
	 "args_max" integer DEFAULT 0,
	 "emits" text(100,0),
	 "determinist" integer,
	CONSTRAINT "class_method" UNIQUE (class ASC, name ASC)
)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !directivesmethods&    hD                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   + ;%iconv.internal_encodingPHPiconv_substr" )%defaut_charsetPHPiconv_substr( )1filter.defaultPHPfilter_input_array" )%filter.defaultPHPfilter_input& )-filter.defaultPHPfilter_var_array  )!filter.defaultPHPfilter_var   p _:p                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  % ##PHPshow_sourceFatal Errorfalse$n + PHPproperty_existsWarningnulla '  PHPtoken_get_allWarning(c )#PHPhighlight_fileFatal Errorfalse, 9 PHPgetimagesizefromstringWarningfalse" % PHPgetimagesizeWarningfalse@ -  HPparse_ini_stringfalse? )  PHPparse_ini_filefalse%  PHPfopenWarningfalse #  PHPfile_existsWarning   # PHParray_shiftWarningnull   N9   }wqke_YSMGA;5/)#{uoic]WQKE?9                                                                                                                                                                                                                                                                                                                                                                                                                   Q  C  
8  	-  "      s  i  ]  T  F   =  4  %        q  f  Z  P  >  5  #        v  m  e  Z  L  B  :  /  &        z  p  f  U  J  ߂>  ނ3  ݂)  ܂  ۂ  ڂ	  ف  ؁u  ׁk  ցa  ՁX  ԁO  ӁF  ҁ;  с1  Ё'  ρ  ΁  ́  ́  {  r  i  ^  U  L  C  9  0  &      	   4 4                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          IetablebugfixesbugfixesCREATE TABLE "bugfixes" (
 "id" integer,
 "title" string(100,0),
 "namespace" string(50,0),
 "function" string(50,0),
 "cve" string(14,0),
 "bugs" integer,
 "solvedInDev" string(100,0),
 "solvedIn73" string(10,0),
 "solvedIn72" string(10,0),
 "solvedIn71" string(100,0),
 "solvedIn70" string(10,0),
 "solvedIn56" string(10,0),
 "solvedIn55" string(10,0),
 "extension" string(15,0),
 "analyzer" string(100,0),
PRIMARY KEY("id")
)    I tS~T0i?     s I                 (& 7            PHPget_defined_constants#% -            PHPget_current_user#$ #           PHPget_cfg_varvalue# !            PHPgc_enabled"             PHPgc_enable !            PHPgc_disable$ /            PHPgc_collect_cycles( -           PHPextension_loadedvalue            PHPdlvalue- 7           PHPcli_set_process_titlevalue( 7            PHPcli_get_process_title#           PHPassertvaluevalue+ )          PHPassert_optionsvaluevalue" !           PHPaddslashesvalue( #          PHPaddcslashesvaluevalue	            PHPchrvalue( #          PHPcount_charsvaluevalueV PHPfprintfvaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevalue4 1         PHPhtml_entity_decodevaluevaluevalue            PHPhex2binvalue* '          PHPnumber_formatvaluevalue            PHPordvalue            PHPprintvalue"           PHPcryptvaluevalue    E ]4oR-Y4     a E       A             PHPphpinfo@ !            PHPphpcredits?             PHPphp_uname > '            PHPphp_sapi_name = '            PHPphp_logo_guid(< 7            PHPphp_ini_scanned_files&; 3            PHPphp_ini_loaded_file#: -            PHPmemory_get_usage(9 7            PHPmemory_get_peak_usage$8           PHPini_setvaluevalue#7 #           PHPini_restorevalue6            PHPini_getvalue5 #            PHPini_get_all4             PHPgetrusage#3           PHPgetoptvaluevalue2             PHPgetmyuid1             PHPgetmypid0 !            PHPgetmyinode/             PHPgetmygid. !            PHPgetlastmod-            PHPgetenvvalue+, =            PHPget_magic_quotes_runtime'+ 5            PHPget_magic_quotes_gpc(* 7            PHPget_loaded_extensions%) 1            PHPget_included_files#( -            PHPget_include_path+' 3           PHPget_extension_funcsvalue    j n<vU1rG)    j                                                    -X 7           PHPcurl_multi_getcontentvalue0W +          PHPcurl_multi_execvaluereference(V -           PHPcurl_multi_closevalue2U 7          PHPcurl_multi_add_handlevaluevalueT             PHPcurl_init)S %          PHPcurl_getinfovaluevalue!R            PHPcurl_execvalue(Q #          PHPcurl_escapevaluevalue"P !           PHPcurl_errorvalue"O !           PHPcurl_errnovalue(N -           PHPcurl_copy_handlevalue"M !           PHPcurl_closevalueL %            PHPzend_version!K )            PHPzend_thread_id!J )            PHPzend_logo_guid1I +         PHPversion_comparevaluevaluevalue#H -            PHPsys_get_temp_dir&G )           PHPset_time_limitvalue0F =           PHPset_magic_quotes_runtimevalue(E -           PHPset_include_pathvalue'D 5            PHPrestore_include_pathC            PHPputenvvalueB !            PHPphpversion    P n>	_0Z9    P                              2n -         PHPapc_bin_loadfilevaluevaluevalue)m %          PHPapc_bin_loadvaluevalue<l -       PHPapc_bin_dumpfilevaluevaluevaluevaluevaluek %            PHPapc_bin_dump)j          PHPapc_addvaluevaluevalueh %            PHPcurl_version*g '          PHPcurl_unescapevaluevalue%f '           PHPcurl_strerrorvalue3e /         PHPcurl_share_setoptvaluevaluevalue"d +            PHPcurl_share_init(c -           PHPcurl_share_closevalue-b #         PHPcurl_setoptvaluevaluevalue.a /          PHPcurl_setopt_arrayvaluevalue"` !           PHPcurl_resetvalue'_ !          PHPcurl_pausevaluevalue+^ 3           PHPcurl_multi_strerrorvalue3] /         PHPcurl_multi_setoptvaluevaluevalue.\ /          PHPcurl_multi_selectvaluevalue5[ =          PHPcurl_multi_remove_handlevaluevalue"Z +            PHPcurl_multi_init5Y 5          PHPcurl_multi_info_readvaluereference    X _0[,yJ    X                                      0 )         PHParray_diff_keyvaluevaluevalue2 -         PHParray_diff_assocvaluevaluevalue* 1           PHParray_count_valuesvalue*  '          PHParray_combinevaluevalue. %         PHParray_columnvaluevaluevalue-~ #         PHParray_chunkvaluevaluevalue2} 7          PHParray_change_key_casevaluevalue+|          PHPapc_storevaluevaluevalue{ %            PHPapc_sma_info/z 1          PHPapc_load_constantsvaluevalue-y          PHPapc_incvaluevaluereference*x           PHPapc_fetchvaluereference"w !           PHPapc_existsvalue"v !           PHPapc_deletevalue'u +           PHPapc_delete_filevalue6t 5         PHPapc_define_constantsvaluevaluevalue-s          PHPapc_decvaluevaluereference-r -          PHPapc_compile_filevaluevalue"q +            PHPapc_clear_cache)p          PHPapc_casvaluevaluevalue!o )            PHPapc_cache_info    2 ].t<Z+    ` 2    +          PHParray_padvaluevaluevalue: +        PHParray_multisortreferencevaluevaluevalue( #          PHParray_mergevaluevalue2 7          PHParray_merge_recursivevaluevalue+          PHParray_mapvaluevaluevalue, !         PHParray_keysvaluevaluevalue- -          PHParray_key_existsvaluevalue1 +         PHParray_intersectvaluevaluevalue; 5        PHParray_intersect_ukeyvaluevaluevaluevalue= 9        PHParray_intersect_uassocvaluevaluevaluevalue5 3         PHParray_intersect_keyvaluevaluevalue7 7         PHParray_intersect_assocvaluevaluevalue"
 !           PHParray_flipvalue)	 %          PHParray_filtervaluevalue, !         PHParray_fillvaluevaluevalue, +          PHParray_fill_keysvaluevalue, !         PHParray_diffvaluevaluevalue6 +        PHParray_diff_ukeyvaluevaluevaluevalue8 /        PHParray_diff_uassocvaluevaluevaluevalue    b }S"V,^   b                                                      C( ;       PHParray_uintersect_uassocvaluevaluevaluevaluevalue=' 9        PHParray_uintersect_assocvaluevaluevaluevalue2& #        PHParray_udiffvaluevaluevaluevalue>% 1       PHParray_udiff_uassocvaluevaluevaluevaluevalue8$ /        PHParray_udiff_assocvaluevaluevaluevalue!#            PHParray_sumvalue7" %        PHParray_splicereferencevaluevaluevalue2! #        PHParray_slicevaluevaluevaluevalue'  #           PHParray_shiftreference. %         PHParray_searchvaluevaluevalue* '          PHParray_reversevaluevalue/ '         PHParray_replacevaluevaluevalue9 ;         PHParray_replace_recursivevaluevaluevalue. %         PHParray_reducevaluevaluevalue' !          PHParray_randvaluevalue0 !         PHParray_pushreferencevaluevalue% '           PHParray_productvalue%            PHParray_popreference    L d= vL#l<    v L                          '= #           PHPnatcasesortreference!<           PHPlistvaluevalue&;           PHPksortreferencevalue':           PHPkrsortreferencevalue9            PHPkeyreference*8          PHPin_arrayvaluevaluevalue-7          PHPextractreferencevaluevalue6            PHPendreference 5            PHPeachreference#4            PHPcurrentreference"3           PHPcountvaluevalue$2           PHPcompactvaluevalue&1           PHPasortreferencevalue'0           PHParsortreferencevalueT/ PHParrayvaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevalue0. !         PHParray_walkreferencevaluevalue:- 5         PHParray_walk_recursivereferencevaluevalue$, %           PHParray_valuesvalue3+ '         PHParray_unshiftreferencevaluevalue)* %          PHParray_uniquevaluevalue7) -        PHParray_uintersectvaluevaluevaluevalue    = jJ!V,^,
    i =     )U %          PHPbzdecompressvaluevalue,T !         PHPbzcompressvaluevaluevalueS            PHPbzclosevalue'R          PHPbcsubvaluevaluevalue#Q           PHPbcsqrtvaluevalueP            PHPbcscalevalue/O         PHPbcpowmodvaluevaluevaluevalue'N          PHPbcpowvaluevaluevalue'M          PHPbcmulvaluevaluevalue"L           PHPbcmodvaluevalue'K          PHPbcdivvaluevaluevalue(J          PHPbccompvaluevaluevalue'I          PHPbcaddvaluevaluevalue&H           PHPusortreferencevalue'G           PHPuksortreferencevalue'F           PHPuasortreferencevalue%E           PHPsortreferencevalue#D            PHPshufflereference&C           PHPrsortreferencevalueB            PHPresetvalue'A          PHPrangevaluevaluevalue @            PHPprevreference ?            PHPnextreference#>            PHPnatsortreference    E wQ+M,uO)    k E           #a #           PHPctype_spacevalue#` #           PHPctype_punctvalue#_ #           PHPctype_printvalue#^ #           PHPctype_lowervalue#] #           PHPctype_graphvalue#\ #           PHPctype_digitvalue#[ #           PHPctype_cntrlvalue#Z #           PHPctype_alphavalue#Y #           PHPctype_alnumvalueX             PHPunixtojd W            PHPjdtounixvalue,V !         PHPjdtojewishvaluevaluevalueU #            PHPeaster_daysT #            PHPeaster_date0S         PHPcal_to_jdvaluevaluevaluevalueR             PHPcal_info(Q #          PHPcal_from_jdvaluevalue3P /         PHPcal_days_in_monthvaluevaluevalue)\          PHPbzwritevaluevaluevalue#[           PHPbzreadvaluevalue#Z           PHPbzopenvaluevalueY            PHPbzflushvalue X            PHPbzerrstrvalueW            PHPbzerrorvalueV            PHPbzerrnovalue    U c9k<{;     s U                                                PHPgmmktime#           PHPgmdatevaluevalue %            PHPgettimeofday             PHPgetdate!           PHPdatevaluevalue< #      PHPdate_sunsetvaluevaluevaluevaluevaluevalue= %      PHPdate_sunrisevaluevaluevaluevaluevaluevalue/ '         PHPdate_sun_infovaluevaluevalue"
 !           PHPdate_parsevalue3	 9          PHPdate_parse_from_formatvaluevalue1 ?           PHPdate_default_timezone_setvalue, ?            PHPdate_default_timezone_get+          PHPcheckdatevaluevaluevalue) %          PHPcyrus_unbindvaluevalue( #          PHPcyrus_queryvaluevalue  '            PHPcyrus_connect# #           PHPcyrus_closevalue' !          PHPcyrus_bindvaluevalueM  1    PHPcyrus_authenticatevaluevaluevaluevaluevaluevaluevaluevalue$c %           PHPctype_xdigitvalue#b #           PHPctype_uppervalue    M sW/^:tE     M                     0*         PHPdba_popenvaluevaluevaluevalue$) %           PHPdba_optimizevalue/(         PHPdba_openvaluevaluevaluevalue#' #           PHPdba_nextkeyvalue&             PHPdba_list%% '           PHPdba_key_splitvalue,$ !         PHPdba_insertvaluevaluevalue# %            PHPdba_handlers$" %           PHPdba_firstkeyvalue&!           PHPdba_fetchvaluevalue'  !          PHPdba_existsvaluevalue' !          PHPdba_deletevaluevalue!            PHPdba_closevalue' 5            PHPtimezone_version_get9 ;         PHPtimezone_name_from_abbrvaluevaluevalue             PHPtime&           PHPstrtotimevaluevalue%           PHPstrptimevaluevalue%           PHPstrftimevaluevalue             PHPmktime             PHPmicrotime             PHPlocaltime"           PHPidatevaluevalue' !          PHPgmstrftimevaluevalue    R o0wEc=
    R                                  6@ !       PHPmcrypt_cbcvaluevaluevaluevaluevalue!? )            PHPmysql_list_dbs*> 1           PHPmcrypt_generic_endvalue+= 3           PHPmysql_escape_stringvalue0< )         PHPmysql_db_queryvaluevaluevalue#; #           PHPsql_regcasevalue(:          PHPsplitivaluevaluevalue'9          PHPsplitvaluevaluevalue-8 7           PHPsession_is_registeredvalue*7 1           PHPsession_unregistervalue-6 -          PHPsession_registervaluevalue/4 '         PHPeregi_replacevaluevaluevalue+3          PHPeregivaluevaluereference.2 %         PHPereg_replacevaluevaluevalue*1          PHPeregvaluevaluereference*/ ;            PHPdefine_syslog_variables<. 9         PHPcall_user_method_arrayvaluereferencevalue;- -        PHPcall_user_methodvaluereferencevaluevalue ,            PHPdba_syncvalue-+ #         PHPdba_replacevaluevaluevalue    ; Z+^+T   k ;               -R 7           PHPenchant_dict_describevalue/Q 1          PHPenchant_dict_checkvaluevalue8P C          PHPenchant_dict_add_to_sessionvaluevalue9O E          PHPenchant_dict_add_to_personalvaluevalue=N C         PHPenchant_broker_set_orderingvaluevaluevalue<M K          PHPenchant_broker_request_pwl_dictvaluevalue8L C          PHPenchant_broker_request_dictvaluevalue1K ?           PHPenchant_broker_list_dictsvalue&J 3            PHPenchant_broker_init0I =           PHPenchant_broker_get_errorvalue+H 3           PHPenchant_broker_freevalue0G =           PHPenchant_broker_free_dictvalue7F A          PHPenchant_broker_dict_existsvaluevalue/E ;           PHPenchant_broker_describevalue,D 5           PHPdom_import_simplexmlvalue6C !       PHPmcrypt_ofbvaluevaluevaluevaluevalue1B !        PHPmcrypt_ecbvaluevaluevaluevalue6A !       PHPmcrypt_cfbvaluevaluevaluevaluevalue    K T|UsS    v K                             (l -           PHPfdf_get_encodingvalue4k 1         PHPfdf_get_attachmentvaluevaluevalue1j !        PHPfdf_get_apvaluevaluevaluevaluei             PHPfdf_errorh             PHPfdf_errno1g +         PHPfdf_enum_valuesvaluevaluevaluef !            PHPfdf_create!e            PHPfdf_closevalue<d -       PHPfdf_add_templatevaluevaluevaluevaluevalue8c 9         PHPfdf_add_doc_javascriptvaluevaluevalueAb )        PHPexif_thumbnailvaluereferencereferencereference$a %           PHPexif_tagnamevalue5` )        PHPexif_read_datavaluevaluevaluevalue&_ )           PHPexif_imagetypevalue1W 5          PHPenchant_dict_suggestvaluevalue@V I         PHPenchant_dict_store_replacementvaluevaluevalue>U =         PHPenchant_dict_quick_checkvaluevaluereference7T A          PHPenchant_dict_is_in_sessionvaluevalue.S 9           PHPenchant_dict_get_errorvalue    B wNzW#h7   | B                  7  #       PHPfdf_set_optvaluevaluevaluevaluevalue> E         PHPfdf_set_on_import_javascriptvaluevaluevalue@~ ?        PHPfdf_set_javascript_actionvaluevaluevaluevalue4} '        PHPfdf_set_flagsvaluevaluevaluevalue.| %         PHPfdf_set_filevaluevaluevalue-{ -          PHPfdf_set_encodingvaluevalue6z !       PHPfdf_set_apvaluevaluevaluevaluevalue%y           PHPfdf_savevaluevalue'x +           PHPfdf_save_stringvalue1w +         PHPfdf_remove_itemvaluevaluevalue v            PHPfdf_openvalue'u +           PHPfdf_open_stringvalue0t 3          PHPfdf_next_field_namevaluevalues !            PHPfdf_header"r +            PHPfdf_get_version/q '         PHPfdf_get_valuevaluevaluevalue&p )           PHPfdf_get_statusvalue-o #         PHPfdf_get_optvaluevaluevalue/n '         PHPfdf_get_flagsvaluevaluevalue$m %           PHPfdf_get_filevalue    _ U}X4oP/    _                                           # #           PHPfile_existsvalue(          PHPfgetssvaluevaluevalue"           PHPfgetsvaluevalue7        PHPfgetcsvreferencevaluevaluevaluevalue            PHPfgetcvalue            PHPfflushvalue            PHPfeofvalue"            PHPfclosereference( -           PHPdisk_total_spacevalue' +           PHPdisk_free_spacevalue            PHPdirnamevalue&          PHPcopyvaluevaluevalue!
 )            PHPclearstatcache"	           PHPchownvaluevalue"           PHPchmodvaluevalue"           PHPchgrpvaluevalue%           PHPbasenamevaluevalue, +          PHPfdf_set_versionvaluevalue4 '        PHPfdf_set_valuevaluevaluevaluevalue1 5          PHPfdf_set_target_framevaluevalueF A       PHPfdf_set_submit_form_actionvaluevaluevaluevaluevalue+ )          PHPfdf_set_statusvaluevalue    E \8`=m8    n E               &-           PHPftruncatevaluevalue,            PHPftellvalue+            PHPfstatvalue+*          PHPfseekreferencevaluevalue0)          PHPfscanfreferencevaluereference&(           PHPfreadreferencevalue2'         PHPfputcsvreferencevaluevaluevalue!&            PHPfpassthruvalue,%         PHPfopenvaluevaluevaluevalue)$          PHPfnmatchvaluevaluevalue+#          PHPflockvaluevaluereference "            PHPfiletypevalue !            PHPfilesizevalue!             PHPfilepermsvalue!            PHPfileownervalue!            PHPfilemtimevalue!            PHPfileinodevalue!            PHPfilegroupvalue!            PHPfilectimevalue!            PHPfileatimevalue&          PHPfilevaluevaluevalue8 /        PHPfile_put_contentsvaluevaluevaluevalue= /       PHPfile_get_contentsvaluevaluevaluevaluevalue    K hF$a=f1	    s K                   %E 1            PHPrealpath_cache_get D            PHPreadlinkvalue*C          PHPreadfilevaluevaluevalue"B           PHPpopenvaluevalueA            PHPpclosevalue%@           PHPpathinfovaluevalue2? -         PHPparse_ini_stringvaluevaluevalue0> )         PHPparse_ini_filevaluevaluevalue/= 1          PHPmove_uploaded_filevaluevalue,<         PHPmkdirvaluevaluevaluevalue;            PHPlstatvalue :            PHPlinkinfovalue!9           PHPlinkvaluevalue#8           PHPlchownvaluevalue#7           PHPlchgrpvaluevalue#6 #           PHPis_writablevalue(5 -           PHPis_uploaded_filevalue#4 #           PHPis_readablevalue3            PHPis_linkvalue2            PHPis_filevalue%1 '           PHPis_executablevalue0            PHPis_dirvalue!/           PHPglobvaluevalue(.          PHPfwritevaluevaluevalue    c hC$tNoC    c                                             \ #            PHPfilter_list3[ %        PHPfilter_inputvaluevaluevaluevalue4Z 1         PHPfilter_input_arrayvaluevaluevalue!Y            PHPfilter_idvalue+X )          PHPfilter_has_varvaluevalue)W /           PHPmime_content_typevalue,V +          PHPfinfo_set_flagsvaluevalueU !            PHPfinfo_open1T !        PHPfinfo_filevaluevaluevaluevalue#S #           PHPfinfo_closevalue3R %        PHPfinfo_buffervaluevaluevaluevalue#Q           PHPunlinkvaluevalueP             PHPumask'O          PHPtouchvaluevaluevalueN             PHPtmpfile$M           PHPtempnamvaluevalue$L           PHPsymlinkvaluevalueK            PHPstatvalue"J           PHPrmdirvaluevalueI            PHPrewindvalue(H          PHPrenamevaluevaluevalue G            PHPrealpathvalue&F 3            PHPrealpath_cache_size    [ jGrJxJ"    [                                           7p #       PHPftp_nb_fputvaluevaluevaluevaluevalue7o #       PHPftp_nb_fgetvaluevaluevaluevaluevalue'n +           PHPftp_nb_continuevalue&m           PHPftp_mkdirvaluevalue%l           PHPftp_mdtmvaluevalue+k          PHPftp_loginvaluevaluevalue3j        PHPftp_getvaluevaluevaluevaluevalue+i )          PHPftp_get_optionvaluevalue4h        PHPftp_fputvaluevaluevaluevaluevalue4g        PHPftp_fgetvaluevaluevaluevaluevalue%f           PHPftp_execvaluevalue'e !          PHPftp_deletevaluevalue-d #         PHPftp_connectvaluevaluevalue!c            PHPftp_closevalue+b          PHPftp_chmodvaluevaluevalue&a           PHPftp_chdirvaluevalue `            PHPftp_cdupvalue/_          PHPftp_allocvaluevaluereference,^ !         PHPfilter_varvaluevaluevalue2] -         PHPfilter_var_arrayvaluevaluevalue    : e=_6Y<   i :        , !         PHPimage2wbmpvaluevaluevalue/ ;           PHPimage_type_to_mime_typevalue4 ;          PHPimage_type_to_extensionvaluevalue7 9          PHPgetimagesizefromstringvaluereference- %          PHPgetimagesizevaluereference              PHPgd_info# #           PHPftp_systypevalue1~ +         PHPftp_ssl_connectvaluevaluevalue%}           PHPftp_sizevaluevalue%|           PHPftp_sitevaluevalue0{ )         PHPftp_set_optionvaluevaluevalue&z           PHPftp_rmdirvaluevalue,y !         PHPftp_renamevaluevaluevalue-x #         PHPftp_rawlistvaluevaluevalue$w           PHPftp_rawvaluevaluev            PHPftp_pwdvalue3u        PHPftp_putvaluevaluevaluevaluevalue%t           PHPftp_pasvvaluevalue&s           PHPftp_nlistvaluevalue6r !       PHPftp_nb_putvaluevaluevaluevaluevalue6q !       PHPftp_nb_getvaluevaluevaluevaluevalue    e e3CU   e                                                             6 +        PHPimagecolorexactvaluevaluevaluevalue1 5          PHPimagecolordeallocatevaluevalue; 5        PHPimagecolorclosesthwbvaluevaluevaluevalueB 9       PHPimagecolorclosestalphavaluevaluevaluevaluevalue8 /        PHPimagecolorclosestvaluevaluevaluevalue. %         PHPimagecoloratvaluevaluevalueC ;       PHPimagecolorallocatealphavaluevaluevaluevaluevalue9 1        PHPimagecolorallocatevaluevaluevaluevalue< #      PHPimagecharupvaluevaluevaluevaluevaluevalue:       PHPimagecharvaluevaluevaluevaluevaluevalueC     PHPimagearcvaluevaluevaluevaluevaluevaluevaluevalue+
 )          PHPimageantialiasvaluevalue/	 1          PHPimagealphablendingvaluevalue1 5          PHPimageaffinematrixgetvaluevalue4 ;          PHPimageaffinematrixconcatvaluevalue- #         PHPimageaffinevaluevaluevalue    6 So: h  a 6                ($ #          PHPimagecreatevaluevalueU# -  PHPimagecopyresizedvaluevaluevaluevaluevaluevaluevaluevaluevaluevalueW" 1  PHPimagecopyresampledvaluevaluevaluevaluevaluevaluevaluevaluevaluevalueR! 1   PHPimagecopymergegrayvaluevaluevaluevaluevaluevaluevaluevaluevalueN  )   PHPimagecopymergevaluevaluevaluevaluevaluevaluevaluevaluevalueD     PHPimagecopyvaluevaluevaluevaluevaluevaluevaluevalue7 -        PHPimageconvolutionvaluevaluevaluevalue2 7          PHPimagecolortransparentvaluevalue( -           PHPimagecolorstotalvalue0 3          PHPimagecolorsforindexvaluevalue> '      PHPimagecolorsetvaluevaluevaluevaluevaluevalueB 9       PHPimagecolorresolvealphavaluevaluevaluevaluevalue8 /        PHPimagecolorresolvevaluevaluevaluevalue, +          PHPimagecolormatchvaluevalue@ 5       PHPimagecolorexactalphavaluevaluevaluevaluevalue    2 b5|N!`    2    N7 )   PHPimagefilledarcvaluevaluevaluevaluevaluevaluevaluevaluevalue06         PHPimagefillvaluevaluevaluevalue=5 %      PHPimageellipsevaluevaluevaluevaluevaluevalue$4 %           PHPimagedestroyvalue@3 +      PHPimagedashedlinevaluevaluevaluevaluevaluevalue42 '        PHPimagecropautovaluevaluevaluevalue&1           PHPimagecropvaluevalue10 5          PHPimagecreatetruecolorvaluevalue*/ 1           PHPimagecreatefromxpmvalue*. 1           PHPimagecreatefromxbmvalue+- 3           PHPimagecreatefromwebpvalue+, 3           PHPimagecreatefromwbmpvalue-+ 7           PHPimagecreatefromstringvalue** 1           PHPimagecreatefrompngvalue+) 3           PHPimagecreatefromjpegvalue*( 1           PHPimagecreatefromgifvalue)' /           PHPimagecreatefromgdvalueB& 9       PHPimagecreatefromgd2partvaluevaluevaluevaluevalue*% 1           PHPimagecreatefromgd2value    O ~6d;}K$    z O                                   (I -           PHPimageistruecolorvalue+H )          PHPimageinterlacevaluevalue,G +          PHPimagegrabwindowvaluevalue"F +            PHPimagegrabscreen%E           PHPimagegifvaluevalue$D           PHPimagegdvaluevalue/C         PHPimagegd2valuevaluevaluevalue3B /         PHPimagegammacorrectvaluevaluevalueKA #   PHPimagefttextvaluevaluevaluevaluevaluevaluevaluevaluevalue7@ #       PHPimageftbboxvaluevaluevaluevaluevalue&? )           PHPimagefontwidthvalue'> +           PHPimagefontheightvalue&=           PHPimageflipvaluevalue<< #      PHPimagefiltervaluevaluevaluevaluevaluevalue=; /       PHPimagefilltobordervaluevaluevaluevaluevalueE: 5      PHPimagefilledrectanglevaluevaluevaluevaluevaluevalue99 1        PHPimagefilledpolygonvaluevaluevaluevalueC8 1      PHPimagefilledellipsevaluevaluevaluevaluevaluevalue    [ e=sC]    [                                               +[ )          PHPimagesavealphavaluevalue2Z #        PHPimagerotatevaluevaluevaluevalue?Y )      PHPimagerectanglevaluevaluevaluevaluevaluevalueZX #PHPimagepstextvaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevalue-W -          PHPimagepsslantfontvaluevalue'V +           PHPimagepsloadfontvalue'U +           PHPimagepsfreefontvalue.T /          PHPimagepsextendfontvaluevalue.S /          PHPimagepsencodefontvaluevalue-R #         PHPimagepsbboxvaluevaluevalue3Q %        PHPimagepolygonvaluevaluevaluevalue/P         PHPimagepngvaluevaluevaluevalue/O ;           PHPimagepalettetotruecolorvalue-N -          PHPimagepalettecopyvaluevalue%M '           PHPimageloadfontvalue:L       PHPimagelinevaluevaluevaluevaluevaluevalue-K -          PHPimagelayereffectvaluevalue+J          PHPimagejpegvaluevaluevalue    3 j3j)s)	    W 3   !o            PHPiptcparsevalue+n          PHPiptcembedvaluevaluevalue*m          PHPimagexbmvaluevaluevalue&l           PHPimagewebpvaluevalue+k          PHPimagewbmpvaluevaluevaluej !            PHPimagetypesGi %    PHPimagettftextvaluevaluevaluevaluevaluevaluevaluevalue3h %        PHPimagettfbboxvaluevaluevaluevalue9g ;         PHPimagetruecolortopalettevaluevaluevaluef            PHPimagesyvaluee            PHPimagesxvalue>d '      PHPimagestringupvaluevaluevaluevaluevaluevalue<c #      PHPimagestringvaluevaluevaluevaluevaluevalue)b %          PHPimagesettilevaluevalue.a /          PHPimagesetthicknessvaluevalue*` '          PHPimagesetstylevaluevalue4_ '        PHPimagesetpixelvaluevaluevaluevalue2^ 7          PHPimagesetinterpolationvaluevalue*] '          PHPimagesetbrushvaluevalue1\ !        PHPimagescalevaluevaluevaluevalue    = oH!Q#X0    d =       $           PHPgmp_mulvaluevalue$           PHPgmp_modvaluevalue) %          PHPgmp_legendrevaluevalue' !          PHPgmp_jacobivaluevalue' !          PHPgmp_invertvaluevalue" !           PHPgmp_intvalvalue%            PHPgmp_initvaluevalue( #          PHPgmp_hamdistvaluevalue'~ !          PHPgmp_gcdextvaluevalue$}           PHPgmp_gcdvaluevalue |            PHPgmp_factvalue){ %          PHPgmp_divexactvaluevalue+z          PHPgmp_div_rvaluevaluevalue,y !         PHPgmp_div_qrvaluevaluevalue+x          PHPgmp_div_qvaluevaluevaluew            PHPgmp_comvalue$v           PHPgmp_cmpvaluevalue'u !          PHPgmp_clrbitvaluevalue$t           PHPgmp_andvaluevalue$s           PHPgmp_addvaluevaluer            PHPgmp_absvalue4q        PHPpng2wbmpvaluevaluevaluevaluevalue5p        PHPjpeg2wbmpvaluevaluevaluevaluevalue    f c<qHX-   f                                                  2 -         PHPgnupg_addsignkeyvaluevaluevalue0 3          PHPgnupg_addencryptkeyvaluevalue5 3         PHPgnupg_adddecryptkeyvaluevaluevalue$           PHPgmp_xorvaluevalue( #          PHPgmp_testbitvaluevalue$           PHPgmp_subvaluevalue' !          PHPgmp_strvalvaluevalue# #           PHPgmp_sqrtremvalue             PHPgmp_sqrtvalue             PHPgmp_signvalue0 !         PHPgmp_setbitreferencevaluevalue&           PHPgmp_scan1valuevalue&           PHPgmp_scan0valuevalue !            PHPgmp_random+ )          PHPgmp_prob_primevaluevalue*          PHPgmp_powmvaluevaluevalue$           PHPgmp_powvaluevalue$ %           PHPgmp_popcountvalue*
 1           PHPgmp_perfect_squarevalue#	           PHPgmp_orvaluevalue% '           PHPgmp_nextprimevalue            PHPgmp_negvalue    H pC}T(O    v H                      +1          PHPhash_filevaluevaluevalue!0            PHPhash_copyvalue/ !            PHPhash_algos7. %        PHPgnupg_verifyvaluevaluevaluereference'- !          PHPgnupg_signvaluevalue., /          PHPgnupg_setsignmodevaluevalue/+ 1          PHPgnupg_seterrormodevaluevalue+* )          PHPgnupg_setarmorvaluevalue*) '          PHPgnupg_keyinfovaluevalue( !            PHPgnupg_init)' %          PHPgnupg_importvaluevalue)& /           PHPgnupg_getprotocolvalue&% )           PHPgnupg_geterrorvalue)$ %          PHPgnupg_exportvaluevalue.# /          PHPgnupg_encryptsignvaluevalue*" '          PHPgnupg_encryptvaluevalue9! 3         PHPgnupg_decryptverifyvaluevaluereference*  '          PHPgnupg_decryptvaluevalue+ 3           PHPgnupg_clearsignkeysvalue. 9           PHPgnupg_clearencryptkeysvalue. 9           PHPgnupg_cleardecryptkeysvalue    U k=gM%{I    U                                       'D          PHPiconvvaluevaluevalue3C %        PHPiconv_substrvaluevaluevaluevalue/B '         PHPiconv_strrposvaluevaluevalue3A %        PHPiconv_strposvaluevaluevaluevalue)@ %          PHPiconv_strlenvaluevalue/? 1          PHPiconv_set_encodingvaluevalue3> /         PHPiconv_mime_encodevaluevaluevalue3= /         PHPiconv_mime_decodevaluevaluevalue;< ?         PHPiconv_mime_decode_headersvaluevaluevalue%; 1            PHPiconv_get_encoding:             PHPhash(9 #          PHPhash_updatevaluevalue48 1         PHPhash_update_streamvaluevaluevalue27 -         PHPhash_update_filevaluevaluevalue<6 #      PHPhash_pbkdf2valuevaluevaluevaluevaluevalue+5          PHPhash_initvaluevaluevalue04         PHPhash_hmacvaluevaluevaluevalue53 )        PHPhash_hmac_filevaluevaluevaluevalue'2 !          PHPhash_finalvaluevalue    4 kBlDM    V 4     %            PHPldap_connect3
 %        PHPldap_comparevaluevaluevaluevalue+	          PHPldap_bindvaluevaluevalue*          PHPldap_addvaluevaluevalue( -           PHPldap_8859_to_t61value8 9         PHPkadm5_modify_principalvaluevaluevalue? =        PHPkadm5_init_with_passwordvaluevaluevaluevalue, 5           PHPkadm5_get_principalsvalue0 3          PHPkadm5_get_principalvaluevalue* 1           PHPkadm5_get_policiesvalue# #           PHPkadm5_flushvalue%  '           PHPkadm5_destroyvalue3 9          PHPkadm5_delete_principalvaluevalue=~ 9        PHPkadm5_create_principalvaluevaluevaluevalue8} 9         PHPkadm5_chpass_principalvaluevaluevalue"| +            PHPjson_last_error&{ 3            PHPjson_last_error_msg-z #         PHPjson_encodevaluevaluevalue2y #        PHPjson_decodevaluevaluevaluevalue-E -          PHPob_iconv_handlervaluevalue    L i7uF~K     L                              1 +         PHPldap_get_valuesvaluevaluevalue5 3         PHPldap_get_values_lenvaluevaluevalue5 +         PHPldap_get_optionvaluevaluereference- -          PHPldap_get_entriesvaluevalue( #          PHPldap_get_dnvaluevalue0 3          PHPldap_get_attributesvaluevalue( -           PHPldap_free_resultvalue1 5          PHPldap_first_referencevaluevalue- -          PHPldap_first_entryvaluevalue6 5         PHPldap_first_attributevaluevaluevalue, +          PHPldap_explode_dnvaluevalue" !           PHPldap_errorvalue" !           PHPldap_errnovalue$ %           PHPldap_err2strvalue# #           PHPldap_dn2ufnvalue( #          PHPldap_deletevaluevalue/ 1          PHPldap_count_entriesvaluevalue@ ?        PHPldap_control_paged_resultvaluevaluevaluevalueQ Q        PHPldap_control_paged_result_responsevaluevaluereferencereference    M W"] J    M                                     1. 5          PHPldap_set_rebind_procvaluevalue1- +         PHPldap_set_optionvaluevaluevalueF, #    PHPldap_searchvaluevaluevaluevaluevaluevaluevaluevalueI+ )    PHPldap_sasl_bindvaluevaluevaluevaluevaluevaluevaluevalue7* #       PHPldap_renamevaluevaluevaluevaluevalueD)     PHPldap_readvaluevaluevaluevaluevaluevaluevaluevalueR( /      PHPldap_parse_resultvaluevaluereferencereferencereferencereference:' 5         PHPldap_parse_referencevaluevaluereference0& 3          PHPldap_next_referencevaluevalue,% +          PHPldap_next_entryvaluevalue0$ 3          PHPldap_next_attributevaluevalue-# #         PHPldap_modifyvaluevaluevalue2" -         PHPldap_mod_replacevaluevaluevalue.! %         PHPldap_mod_delvaluevaluevalue.  %         PHPldap_mod_addvaluevaluevalueD     PHPldap_listvaluevaluevaluevaluevaluevaluevaluevalue    ; ~X/o:
nI*
    { \ ; G            PHPdecbinvalueF            PHPcoshvalueE            PHPcosvalueD            PHPceilvalueC            PHPbindecvalue.B %         PHPbase_convertvaluevaluevalueA            PHPatanhvalue@            PHPatanvalue"?           PHPatan2valuevalue>            PHPasinhvalue=            PHPasinvalue<            PHPacoshvalue;            PHPacosvalue:            PHPabsvalue-9 A            PHPlibxml_use_internal_errors28 A           PHPlibxml_set_streams_contextvalue97 O           PHPlibxml_set_external_entity_loadervalue(6 7            PHPlibxml_get_last_error$5 /            PHPlibxml_get_errors/4 E            PHPlibxml_disable_entity_loader&3 3            PHPlibxml_clear_errors#2 #           PHPldap_unbindvalue(1 -           PHPldap_t61_to_8859value&0 )           PHPldap_start_tlsvalue+/          PHPldap_sortvaluevaluevalue    M ~^>jI*
hK-     k M           d            PHPsinvalue'c          PHProundvaluevaluevalueb             PHPranda            PHPrad2degvalue `           PHPpowvaluevalue_             PHPpi^            PHPoctdecvalue]             PHPmt_srand\             PHPmt_rand [ '            PHPmt_getrandmaxZ            PHPminvalueY            PHPmaxvalue X           PHPlogvaluevalueW            PHPlog1pvalueV            PHPlog10valueU             PHPlcg_valueT            PHPis_nanvalue#S #           PHPis_infinitevalue!R            PHPis_finitevalue"Q           PHPhypotvaluevalueP            PHPhexdecvalueO !            PHPgetrandmax!N           PHPfmodvaluevalueM            PHPfloorvalueL            PHPexpm1valueK            PHPexpvalueJ            PHPdeg2radvalueI            PHPdecoctvalueH            PHPdechexvalue    : j6	nJ%f=
   m :    0{         PHPmb_strstrvaluevaluevaluevalue2z #        PHPmb_strriposvaluevaluevaluevalue1y !        PHPmb_striposvaluevaluevaluevalue1x !        PHPmb_strrposvaluevaluevaluevalue0w         PHPmb_strposvaluevaluevaluevalue&v           PHPmb_strlenvaluevalue.u 9           PHPmb_preferred_mime_namevalue.t /          PHPmb_output_handlervaluevalue-s %          PHPmb_parse_strvaluereference*r ;            PHPmb_substitute_character"q +            PHPmb_detect_order!p )            PHPmb_http_output o '            PHPmb_http_input'n 5            PHPmb_internal_encodingm #            PHPmb_language*l '          PHPmb_strtolowervaluevalue*k '          PHPmb_strtouppervaluevalue1j +         PHPmb_convert_casevaluevaluevaluei            PHPtanhvalueh            PHPtanvalueg             PHPsrandf            PHPsqrtvaluee            PHPsinhvalue    5 c/b*j'   q 5         9 ;         PHPmb_decode_numericentityvaluevaluevalue> ;        PHPmb_encode_numericentityvaluevaluevaluevalueC 5        PHPmb_convert_variablesvaluevaluereferencereference,
 5           PHPmb_decode_mimeheadervalue@	 5       PHPmb_encode_mimeheadervaluevaluevaluevaluevalue1 +         PHPmb_convert_kanavaluevaluevalue+ 3           PHPmb_encoding_aliasesvalue$ /            PHPmb_list_encodings4 1         PHPmb_detect_encodingvaluevaluevalue5 3         PHPmb_convert_encodingvaluevaluevalue9 '       PHPmb_strimwidthvaluevaluevaluevaluevalue( #          PHPmb_strwidthvaluevalue0         PHPmb_strcutvaluevaluevaluevalue0          PHPmb_substrvaluevaluevaluevalue1 +         PHPmb_substr_countvaluevaluevalue2~ #        PHPmb_strrichrvaluevaluevaluevalue1} !        PHPmb_stristrvaluevaluevaluevalue1| !        PHPmb_strrchrvaluevaluevaluevalue    ` }V, `3T(    `                                                :# )       PHPmcrypt_decryptvaluevaluevaluevaluevalue-" -          PHPmcrypt_create_ivvaluevalue- 7           PHPmb_ereg_search_setposvalue( 7            PHPmb_ereg_search_getpos) 9            PHPmb_ereg_search_getregs5 3         PHPmb_ereg_search_initvaluevaluevalue& 3            PHPmb_ereg_search_regs% 1            PHPmb_ereg_search_pos! )            PHPmb_ereg_search/ '         PHPmb_ereg_matchvaluevaluevalue*          PHPmb_splitvaluevaluevalue7 -        PHPmb_eregi_replacevaluevaluevaluevalue6 +        PHPmb_ereg_replacevaluevaluevaluevalue*          PHPmb_eregivaluevaluevalue)          PHPmb_eregvaluevaluevalue' 5            PHPmb_regex_set_options$ /            PHPmb_regex_encoding$ /            PHPmb_check_encoding #            PHPmb_get_info8 %       PHPmb_send_mailvaluevaluevaluevaluevalue    T b0J{C    T                                        +7 3           PHPmcrypt_get_key_sizevalue/6 1          PHPmcrypt_get_iv_sizevaluevalue.5 9           PHPmcrypt_get_cipher_namevalue-4 7           PHPmcrypt_get_block_sizevalue+3 )          PHPmcrypt_genericvaluevalue52 3         PHPmcrypt_generic_initvaluevaluevalue-0 7           PHPmcrypt_generic_deinitvalue:/ )       PHPmcrypt_encryptvaluevaluevaluevaluevalue,. 5           PHPmcrypt_enc_self_testvalue0- =           PHPmcrypt_enc_is_block_modevalue5, G           PHPmcrypt_enc_is_block_algorithmvalue:+ Q           PHPmcrypt_enc_is_block_algorithm_modevalue:* Q           PHPmcrypt_enc_get_supported_key_sizesvalue1) ?           PHPmcrypt_enc_get_modes_namevalue/( ;           PHPmcrypt_enc_get_key_sizevalue.' 9           PHPmcrypt_enc_get_iv_sizevalue1& ?           PHPmcrypt_enc_get_block_sizevalue6% I           PHPmcrypt_enc_get_algorithms_namevalue    P >u5W.   | P                                    )J /           PHPming_useconstantsvalue.I 9           PHPming_setswfcompressionvalue%H '           PHPming_setscalevalue.G 9           PHPming_setcubicthresholdvalue%F '           PHPming_keypressvalue&E )           PHPmemcache_debugvalue-D -          PHPmdecrypt_genericvaluevalue4B ;          PHPmcrypt_module_self_testvaluevalue9A 1        PHPmcrypt_module_openvaluevaluevaluevalue8@ C          PHPmcrypt_module_is_block_modevaluevalue=? M          PHPmcrypt_module_is_block_algorithmvaluevalueB> W          PHPmcrypt_module_is_block_algorithm_modevaluevalueB= W          PHPmcrypt_module_get_supported_key_sizesvaluevalue<< K          PHPmcrypt_module_get_algo_key_sizevaluevalue>; O          PHPmcrypt_module_get_algo_block_sizevaluevalue+: 3           PHPmcrypt_module_closevalue$9 /            PHPmcrypt_list_modes)8 9            PHPmcrypt_list_algorithms    F @oC]-    r F                    )_ 9            PHPmssql_get_last_message,^ 5           PHPmssql_free_statementvalue)] /           PHPmssql_free_resultvalue-\ -          PHPmssql_field_typevaluevalue-[ -          PHPmssql_field_seekvaluevalue-Z -          PHPmssql_field_namevaluevalue/Y 1          PHPmssql_field_lengthvaluevalue'X +           PHPmssql_fetch_rowvalue*W 1           PHPmssql_fetch_objectvalue.V /          PHPmssql_fetch_fieldvaluevalue)U /           PHPmssql_fetch_batchvalue)T /           PHPmssql_fetch_assocvalue.S /          PHPmssql_fetch_arrayvaluevalue*R '          PHPmssql_executevaluevalue,Q +          PHPmssql_data_seekvaluevalue P '            PHPmssql_connectO #            PHPmssql_closeDN !     PHPmssql_bindvaluevaluereferencevaluevaluevaluevalue#M #           PHPbson_encodevalue#L #           PHPbson_decodevalue*K 1           PHPming_useswfversionvalue    D r=i8
fC    e D                v #            PHPmysql_erroru #            PHPmysql_errno*t '          PHPmysql_drop_dbvaluevalue/r '         PHPmysql_db_namevaluevaluevalue,q +          PHPmysql_data_seekvaluevalue,p +          PHPmysql_create_dbvaluevalue o '            PHPmysql_connectn #            PHPmysql_close(m 7            PHPmysql_client_encoding&l 3            PHPmysql_affected_rows,k +          PHPmssql_select_dbvaluevalue+j 3           PHPmssql_rows_affectedvalue.i %         PHPmssql_resultvaluevaluevalue-h #         PHPmssql_queryvaluevaluevalue!g )            PHPmssql_pconnect&f )           PHPmssql_num_rowsvalue(e -           PHPmssql_num_fieldsvalue)d /           PHPmssql_next_resultvalue2c A           PHPmssql_min_message_severityvalue0b =           PHPmssql_min_error_severityvalue'a !          PHPmssql_initvaluevalue.` /          PHPmssql_guid_stringvaluevalue    H rDS#kB    r H                      ' 5            PHPmysql_list_processes3 /         PHPmysql_list_fieldsvaluevaluevalue"
 +            PHPmysql_insert_id	 !            PHPmysql_info( 7            PHPmysql_get_server_info' 5            PHPmysql_get_proto_info& 3            PHPmysql_get_host_info( 7            PHPmysql_get_client_info) /           PHPmysql_free_resultvalue- -          PHPmysql_field_typevaluevalue. /          PHPmysql_field_tablevaluevalue- -          PHPmysql_field_seekvaluevalue-  -          PHPmysql_field_namevaluevalue, +          PHPmysql_field_lenvaluevalue.~ /          PHPmysql_field_flagsvaluevalue'} +           PHPmysql_fetch_rowvalue4| 1         PHPmysql_fetch_objectvaluevaluevalue+{ 3           PHPmysql_fetch_lengthsvalue.z /          PHPmysql_fetch_fieldvaluevalue)y /           PHPmysql_fetch_assocvalue.x /          PHPmysql_fetch_arrayvaluevalue    Z {W7tC#vX9    w Z                                    $             mysqliinit)# 9            PHPmysqli_get_cache_stats'" 5            PHPmysqli_stmt::execute$! %           PHPmysqli_errorvalue$  %           PHPmysqli_errnovalue             mysqlidebug             mysqlicommit             mysqliclose  !            mysqliautocommit3 9          PHPmysql_unbuffered_queryvaluevalue" +            PHPmysql_thread_id, +          PHPmysql_tablenamevaluevalue !            PHPmysql_stat. /          PHPmysql_set_charsetvaluevalue, +          PHPmysql_select_dbvaluevalue. %         PHPmysql_resultvaluevaluevalue5 =          PHPmysql_real_escape_stringvaluevalue( #          PHPmysql_queryvaluevalue !            PHPmysql_ping! )            PHPmysql_pconnect& )           PHPmysql_num_rowsvalue( -           PHPmysql_num_fieldsvalue. /          PHPmysql_list_tablesvaluevalue    : cC%f<T(   ` :#= #           PHPodbc_commitvalue8< %       PHPodbc_columnsvaluevaluevaluevaluevalueA; 7       PHPodbc_columnprivilegesvaluevaluevaluevaluevalue": !           PHPodbc_closevalue!9 )            PHPodbc_close_all)8 %          PHPodbc_binmodevaluevalue,7 +          PHPodbc_autocommitvaluevalue6             mysqlirefresh5             mysqlistat'4 +           PHPmysqli_sqlstatevalue'3 5            PHPmysqli_stmt_sqlstate%2 1            PHPmysqli_stmt::reset'1 5            PHPmysqli_stmt::prepare%0 1            PHPmysqli_stmt::fetch$/ /            PHPmysqli_stmt_error$. /            PHPmysqli_stmt_errno%- 1            PHPmysqli_stmt::close,             mysqlirollback+             mysqliquery*             mysqliprepare)             mysqlipoll(             mysqliping'             mysqlioptions&             mysqlikill#% #           PHPmysqli_infovalue    R tT1o>U&    R                                  -Q -          PHPodbc_longreadlenvaluevalue-P -          PHPodbc_gettypeinfovaluevalue(O -           PHPodbc_free_resultvalueFN -     PHPodbc_foreignkeysvaluevaluevaluevaluevaluevaluevalue,M +          PHPodbc_field_typevaluevalue-L -          PHPodbc_field_scalevaluevalue+K )          PHPodbc_field_numvaluevalue,J +          PHPodbc_field_namevaluevalue+I )          PHPodbc_field_lenvaluevalue+H )          PHPodbc_fetch_rowvaluevalue.G /          PHPodbc_fetch_objectvaluevalue5F +         PHPodbc_fetch_intovaluereferencevalue-E -          PHPodbc_fetch_arrayvaluevalue)D %          PHPodbc_executevaluevalue+C          PHPodbc_execvaluevaluevalue B '            PHPodbc_errormsgA !            PHPodbc_error-@ -          PHPodbc_data_sourcevaluevalue#? #           PHPodbc_cursorvalue3> %        PHPodbc_connectvaluevaluevaluevalue    Y L ]2
C   Y                                             <c A         PHPopenssl_csr_export_to_filevaluevaluevalue0b =           PHPopenssl_cipher_iv_lengthvalue7a #       PHPodbc_tablesvaluevaluevaluevaluevalue;` 5        PHPodbc_tableprivilegesvaluevaluevaluevalue@_ +      PHPodbc_statisticsvaluevaluevaluevaluevaluevalueI^ 3     PHPodbc_specialcolumnsvaluevaluevaluevaluevaluevaluevalue5] )        PHPodbc_setoptionvaluevaluevaluevalue%\ '           PHPodbc_rollbackvalue([ #          PHPodbc_resultvaluevalue,Z +          PHPodbc_result_allvaluevalue'Y +           PHPodbc_proceduresvalue-X 7           PHPodbc_procedurecolumnsvalue7W -        PHPodbc_primarykeysvaluevaluevaluevalue)V %          PHPodbc_preparevaluevalue4U '        PHPodbc_pconnectvaluevaluevaluevalue%T '           PHPodbc_num_rowsvalue'S +           PHPodbc_num_fieldsvalue(R -           PHPodbc_next_resultvalue    - T_,i=   u -   Et 7       PHPopenssl_pkcs12_exportvaluereferencevaluevaluevalueIs G       PHPopenssl_pkcs12_export_to_filevaluevaluevaluevaluevalue:r )       PHPopenssl_pbkdf2valuevaluevaluevaluevalue<q %       PHPopenssl_openvaluereferencevaluevaluevalue)p 9            PHPopenssl_get_md_methods-o A            PHPopenssl_get_cipher_methods(n -           PHPopenssl_free_keyvalue'm 5            PHPopenssl_error_string;l +       PHPopenssl_encryptvaluevaluevaluevaluevalue0k )         PHPopenssl_digestvaluevaluevalue3j 9          PHPopenssl_dh_compute_keyvaluevalue;i +       PHPopenssl_decryptvaluevaluevaluevaluevalueAh -      PHPopenssl_csr_signvaluevaluevaluevaluevaluevalue:g +        PHPopenssl_csr_newvaluereferencevaluevalue4f ;          PHPopenssl_csr_get_subjectvaluevalue7e A          PHPopenssl_csr_get_public_keyvaluevalue8d 1         PHPopenssl_csr_exportvaluereferencevalue    f <d#Z4   f                                                                A 9        PHPopenssl_public_decryptvaluereferencevaluevalueB ;        PHPopenssl_private_encryptvaluereferencevaluevalueB ;        PHPopenssl_private_decryptvaluereferencevaluevalue#  -            PHPopenssl_pkey_new/ ;           PHPopenssl_pkey_get_publicvalue5~ =          PHPopenssl_pkey_get_privatevaluevalue0} =           PHPopenssl_pkey_get_detailsvalue)| /           PHPopenssl_pkey_freevalue>{ 3        PHPopenssl_pkey_exportvaluereferencevaluevalueBz C        PHPopenssl_pkey_export_to_filevaluevaluevaluevalueEy 5      PHPopenssl_pkcs7_verifyvaluevaluevaluevaluevaluevalueHx 1     PHPopenssl_pkcs7_signvaluevaluevaluevaluevaluevaluevalueFw 7      PHPopenssl_pkcs7_encryptvaluevaluevaluevaluevaluevalue<v 7        PHPopenssl_pkcs7_decryptvaluevaluevaluevalue9u 3         PHPopenssl_pkcs12_readvaluereferencevalue    J }?LrF      J                              3 /         PHPpcntl_setpriorityvaluevaluevalue$ /            PHPpcntl_getpriority' 5            PHPpcntl_get_last_error !            PHPpcntl_fork, !         PHPpcntl_execvaluevaluevalue# #           PHPpcntl_alarmvalue) /           PHPopenssl_x509_readvalue/ 1          PHPopenssl_x509_parsevaluevalue) /           PHPopenssl_x509_freevalue9 3         PHPopenssl_x509_exportvaluereferencevalue= C         PHPopenssl_x509_export_to_filevaluevaluevalue@
 ?        PHPopenssl_x509_checkpurposevaluevaluevaluevalue;	 I          PHPopenssl_x509_check_private_keyvaluevalue5 )        PHPopenssl_verifyvaluevaluevaluevalue7 %        PHPopenssl_signvaluereferencevaluevalue; %        PHPopenssl_sealvaluereferencereferencevalue< C          PHPopenssl_random_pseudo_bytesvaluereferenceA 9        PHPopenssl_public_encryptvaluereferencevaluevalue    d j*h<i,   d                                                        E' 7       PHPpreg_replace_callbackvaluevaluevaluevaluereference<& %       PHPpreg_replacevaluevaluevaluevaluereference>% )       PHPpreg_match_allvaluevaluereferencevaluevalue:$ !       PHPpreg_matchvaluevaluereferencevaluevalue&# )           PHPpcntl_wtermsigvalue&" )           PHPpcntl_wstopsigvalue(! -           PHPpcntl_wifstoppedvalue)  /           PHPpcntl_wifsignaledvalue' +           PHPpcntl_wifexitedvalue) /           PHPpcntl_wexitstatusvalue3 '         PHPpcntl_waitpidvaluereferencevalue+ !          PHPpcntl_waitreferencevalue& )           PHPpcntl_strerrorvalue2 /          PHPpcntl_sigwaitinfovaluereference= 1        PHPpcntl_sigtimedwaitvaluereferencevaluevalue7 /         PHPpcntl_sigprocmaskvaluevaluereference. %         PHPpcntl_signalvaluevaluevalue( 7            PHPpcntl_signal_dispatch    I d6vLS    } I                       1< 5          PHPpg_escape_identifiervaluevalue,; +          PHPpg_escape_byteavaluevalue: #            PHPpg_end_copy09         PHPpg_deletevaluevaluevaluevalue8             PHPpg_dbname17 !        PHPpg_copy_tovaluevaluevaluevalue86 %       PHPpg_copy_fromvaluevaluevaluevaluevalue15 !        PHPpg_convertvaluevaluevaluevalue,4 5           PHPpg_connection_statusvalue+3 3           PHPpg_connection_resetvalue*2 1           PHPpg_connection_busyvalue'1 !          PHPpg_connectvaluevalue0             PHPpg_close%/ 1            PHPpg_client_encoding'. +           PHPpg_cancel_queryvalue(- -           PHPpg_affected_rowsvalue", +            PHPpreg_last_error++          PHPpreg_grepvaluevaluevalue'* !          PHPpreg_quotevaluevalue1) !        PHPpreg_splitvaluevaluevaluevalue;( #       PHPpreg_filtervaluevaluevaluevaluereference    J p<L ^1    w J                          *P '          PHPpg_get_notifyvaluevalue&O )           PHPpg_free_resultvalue*N '          PHPpg_field_typevaluevalue.M /          PHPpg_field_type_oidvaluevalue0L )         PHPpg_field_tablevaluevaluevalue*K '          PHPpg_field_sizevaluevalue1J +         PHPpg_field_prtlenvaluevaluevalue)I %          PHPpg_field_numvaluevalue*H '          PHPpg_field_namevaluevalue2G -         PHPpg_field_is_nullvaluevaluevalue)F %          PHPpg_fetch_rowvaluevalue1E +         PHPpg_fetch_resultvaluevaluevalue1D +         PHPpg_fetch_objectvaluevaluevalue+C )          PHPpg_fetch_assocvaluevalue0B )         PHPpg_fetch_arrayvaluevaluevalue$A %           PHPpg_fetch_allvalue1@ 5          PHPpg_fetch_all_columnsvaluevalue,? !         PHPpg_executevaluevaluevalue-> -          PHPpg_escape_stringvaluevalue.= /          PHPpg_escape_literalvaluevalue    M hE}LvH    m M                       g !            PHPpg_options#f #           PHPpg_num_rowsvalue%e '           PHPpg_num_fieldsvalue.d %         PHPpg_meta_datavaluevaluevalue-c #         PHPpg_lo_writevaluevaluevalue)b %          PHPpg_lo_unlinkvaluevalue+a )          PHPpg_lo_truncatevaluevalue"` !           PHPpg_lo_tellvalue,_ !         PHPpg_lo_seekvaluevaluevalue'^ !          PHPpg_lo_readvaluevalue&] )           PHPpg_lo_read_allvalue,\ !         PHPpg_lo_openvaluevaluevalue.[ %         PHPpg_lo_importvaluevaluevalue.Z %         PHPpg_lo_exportvaluevaluevalueY %            PHPpg_lo_create#X #           PHPpg_lo_closevalue#W #           PHPpg_last_oidvalue&V )           PHPpg_last_noticevalue U '            PHPpg_last_error0T         PHPpg_insertvaluevaluevaluevalueS             PHPpg_host R '            PHPpg_get_result"Q !           PHPpg_get_pidvalue    [ h9}S%Z!    [                                           *{          PHPpg_tracevaluevaluevalue3z 9          PHPpg_set_error_verbosityvaluevalue3y 9          PHPpg_set_client_encodingvaluevalue*x '          PHPpg_send_queryvaluevalue6w 5         PHPpg_send_query_paramsvaluevaluevalue1v +         PHPpg_send_preparevaluevaluevalue1u +         PHPpg_send_executevaluevaluevalue0t         PHPpg_selectvaluevaluevaluevalue-s -          PHPpg_result_statusvaluevalue+r )          PHPpg_result_seekvaluevalue'q +           PHPpg_result_errorvalue2p 7          PHPpg_result_error_fieldvaluevalue%o           PHPpg_queryvaluevalue1n +         PHPpg_query_paramsvaluevaluevalue(m #          PHPpg_put_linevaluevalue,l !         PHPpg_preparevaluevaluevaluek             PHPpg_portj             PHPpg_ping(i #          PHPpg_pconnectvaluevalue0h 3          PHPpg_parameter_statusvaluevalue    U h0\1t=    u U                                           PHPcrc32value%           PHPmd5_filevaluevalue            PHPmd5valuevalue&           PHPsha1_filevaluevalue!           PHPsha1valuevalue- A            PHPget_html_translation_table4 ;          PHPhtmlspecialchars_decodevaluevalue3 %        PHPhtmlentitiesvaluevaluevaluevalue7 -        PHPhtmlspecialcharsvaluevaluevaluevalue/
         PHPwordwrapvaluevaluevaluevalue	             PHPflush( -           PHPtime_sleep_untilvalue+ )          PHPtime_nanosleepvaluevalue            PHPusleepvalue            PHPsleepvalue            PHPbin2hexvalue             PHPconstantvalue !            PHPpg_version5         PHPpg_updatevaluevaluevaluevaluevalue !            PHPpg_untrace)~ /           PHPpg_unescape_byteavalue}             PHPpg_tty-| 7           PHPpg_transaction_statusvalue    F zI#iA[4    h F                G            PHPucwordsvalueF            PHPlcfirstvalueE            PHPucfirstvalue!D            PHPquotemetavalue5C )        PHPsubstr_replacevaluevaluevaluevalue)A %          PHPmoney_formatvaluevalue$@           PHPstrcollvaluevalue:? )       PHPsubstr_comparevaluevaluevaluevaluevalue$>           PHPstrpbrkvaluevalue&=           PHPstr_splitvaluevalue0< )         PHPstr_word_countvaluevaluevalue#; #           PHPstr_shufflevalue%7 '           PHPstripcslashesvalue$6 %           PHPstripslashesvalue"2           PHPnl2brvaluevalue$1           PHPhebrevcvaluevalue#0           PHPhebrevvaluevalue/            PHPstrrevvalue#(           PHPstrtokvaluevalue.'         PHPstrcspnvaluevaluevaluevalue-&         PHPstrspnvaluevaluevaluevalue*$ '          PHPstrnatcasecmpvaluevalue&#           PHPstrnatcmpvaluevalue    = x>q<uS(    =           Va PHPsprintfvaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevalue.`         PHPstr_padvaluevaluevaluevalue1_ !        PHPstr_getcsvvaluevaluevaluevalue*^           PHPparse_strvaluereference([ #          PHPlevenshteinvaluevalueZ            PHPsoundexvalue#Y #           PHPnl_langinfovalueX !            PHPlocaleconv+W          PHPsetlocalevaluevaluevalue$V           PHPimplodevaluevalue)U          PHPexplodevaluevaluevalue2T %         PHPsimilar_textvaluevaluereference'S !          PHPstrip_tagsvaluevalue"R           PHPltrimvaluevalue!Q           PHPtrimvaluevalue-P #         PHPchunk_splitvaluevaluevalue'N !          PHPstr_repeatvaluevalue7M %        PHPstr_ireplacevaluevaluevaluereference6L #        PHPstr_replacevaluevaluevaluereference"K           PHPrtrimvaluevalue'H          PHPstrtrvaluevaluevalue    ; Y*k1oJ	    h ;     * '          PHPgetservbynamevaluevalue!~            PHPproc_nicevalue'} +           PHPproc_get_statusvalue+| )          PHPproc_terminatevaluevalue"{ !           PHPproc_closevalue>z       PHPproc_openvaluevaluereferencevaluevaluevalue"y !           PHPshell_execvalue)x           PHPpassthruvaluereference&w )           PHPescapeshellargvalue&v )           PHPescapeshellcmdvalue'u           PHPsystemvaluereferencet             PHPexec7n -        PHPhttp_build_queryvaluevaluevaluevalue$m %           PHPrawurldecodevalue$l %           PHPrawurlencodevalue!k            PHPurldecodevalue!j            PHPurlencodevalue&i           PHPparse_urlvaluevalue,g          PHPsscanfvaluevaluereference*f          PHPvfprintfvaluevaluevalue%d           PHPvsprintfvaluevalue$c           PHPvprintfvaluevalue(b          PHPprintfvaluevaluevalue    ? R*jH$m5   w ?           5V 3         PHPforward_static_callvaluevaluevalue1S 5          PHPcall_user_func_arrayvaluevalue0R )         PHPcall_user_funcvaluevaluevalue!Q )            PHPerror_get_last0P         PHPerror_logvaluevaluevaluevalue5O =          PHPimport_request_variablesvaluevalue4H 1         PHPconvert_cyr_stringvaluevaluevalue/G ;           PHPquoted_printable_encodevalue/F ;           PHPquoted_printable_decodevalueE             PHPuniqid!A )            PHPsys_getloadavg=            PHPlong2ipvalue<            PHPip2longvalue!;            PHPinet_ptonvalue!:            PHPinet_ntopvalue( -           PHPconvert_uudecodevalue( -           PHPconvert_uuencodevalue% '           PHPbase64_encodevalue* '          PHPbase64_decodevaluevalue( -           PHPgetprotobynumbervalue& )           PHPgetprotobynamevalue* '          PHPgetservbyportvaluevalue    3 }U+[(Y     Z 3 $t /            PHPconnection_status%s 1            PHPconnection_abortedr %            PHPheaders_listq %            PHPheaders_sent p '            PHPheader_remove(o          PHPheadervaluevaluevalueBn %     PHPsetrawcookievaluevaluevaluevaluevaluevaluevalue?m      PHPsetcookievaluevaluevaluevaluevaluevaluevalue,e 5           PHPphp_strip_whitespacevalue-d -          PHPhighlight_stringvaluevalue+c )          PHPhighlight_filevaluevalue0b =           PHPunregister_tick_functionvalue8a 9         PHPregister_tick_functionvaluevaluevalue<` A         PHPregister_shutdown_functionvaluevaluevalue$]           PHPprint_rvaluevalue,\ +          PHPdebug_zval_dumpvaluevalue'[ !          PHPvar_exportvaluevalue%Z           PHPvar_dumpvaluevalue#Y #           PHPunserializevalue!X            PHPserializevalue6W ?          PHPforward_static_call_arrayvaluevalue    K `?rO.wT3     K                   1 #         PHPis_callablevaluevaluereference!            PHPis_scalarvalue!            PHPis_objectvalue             PHPis_arrayvalue!            PHPis_stringvalue" !           PHPis_numericvalue
            PHPis_intvalue 	            PHPis_floatvalue            PHPis_boolvalue# #           PHPis_resourcevalue            PHPis_nullvalue(           PHPsettypereferencevalue            PHPgettypevalue            PHPstrvalvalue             PHPfloatvalvalue#           PHPintvalvaluevalueF  )       PHPdns_get_recordvaluevaluereferencereferencereference1          PHPgetmxrrvaluereferencereference'~ !          PHPcheckdnsrrvaluevalue} #            PHPgethostname&| )           PHPgethostbynamelvalue%{ '           PHPgethostbynamevalue%z '           PHPgethostbyaddrvalue$u /            PHPignore_user_abort    6 ~Ei48   z 6              A< 9        PHPstream_socket_recvfromvaluevaluevaluereference3; 9          PHPstream_socket_get_namevaluevalue:: 5         PHPstream_socket_acceptvaluevaluereferenceH9 5       PHPstream_socket_servervaluereferencereferencevaluevalueM8 5      PHPstream_socket_clientvaluereferencereferencevaluevaluevalue,7 5           PHPstream_filter_removevalue;6 5        PHPstream_filter_appendvaluevaluevaluevalue<5 7        PHPstream_filter_prependvaluevaluevaluevalue24 A           PHPstream_context_set_defaultvalue-3 A            PHPstream_context_get_default22 A           PHPstream_context_get_optionsvalue@1 ?        PHPstream_context_set_optionvaluevaluevaluevalue10 ?           PHPstream_context_get_paramsvalue6/ ?          PHPstream_context_set_paramsvaluevalue7. 7         PHPstream_context_createvaluevaluevalueE- '       PHPstream_selectreferencereferencereferencevaluevalue    E }Gj=n:    p E                         (Q 7            PHPstream_get_transports&P 3            PHPstream_get_wrappers.O 9           PHPstream_wrapper_restorevalue1N ?           PHPstream_wrapper_unregistervalue9M ;         PHPstream_wrapper_registervaluevaluevalue1L +         PHPstream_get_linevaluevaluevalue,K 5           PHPstream_get_meta_datavalue0J 3          PHPstream_set_blockingvaluevalue4I ;          PHPstream_set_write_buffervaluevalue3H 9          PHPstream_set_read_buffervaluevalue*G '          PHPget_meta_tagsvaluevalue,C 5           PHPstream_supports_lockvalue5B 3         PHPstream_get_contentsvaluevaluevalue<A 7        PHPstream_copy_to_streamvaluevaluevaluevalue4@ 1         PHPstream_socket_pairvaluevaluevalue3? 9          PHPstream_socket_shutdownvaluevalueB> C        PHPstream_socket_enable_cryptovaluevaluevaluevalue;= 5        PHPstream_socket_sendtovaluevaluevaluevalue    < u>nM&wK     Z <                 PHPob_start&           PHPmetaphonevaluevalue             PHPcloselog#           PHPsyslogvaluevalue)          PHPopenlogvaluevaluevalue" !           PHPezmlm_hashvalue0        PHPmailvaluevaluevaluevaluevalue)e          PHPscandirvaluevaluevalued             PHPdirc             PHPreaddirb             PHPrewinddira             PHPgetcwd`            PHPchdirvalue_             PHPclosedir$^           PHPopendirvaluevalue\ #            PHPget_browser#[           PHPunpackvaluevalue&Z          PHPpackvaluevaluevalue>Y !       PHPpfsockopenvaluevaluereferencereferencevalue=X        PHPfsockopenvaluevaluereferencereferencevalue4U 1         PHPstream_set_timeoutvaluevaluevalue(T #          PHPget_headersvaluevalue'S +           PHPstream_is_localvalue3R C           PHPstream_resolve_include_pathvalue    : ^<b>P    \ :  r %            PHPposix_getpid'q !          PHPposix_killvaluevalue,o ?            PHPoutput_reset_rewrite_vars3n 9          PHPoutput_add_rewrite_varvaluevalue.m /          PHPstream_bucket_newvaluevalue1l 5          PHPstream_bucket_appendvaluevalue2k 7          PHPstream_bucket_prependvaluevalue4j E           PHPstream_bucket_make_writeablevalue3i 9          PHPstream_filter_registervaluevalue%h 1            PHPstream_get_filters!g            PHPstr_rot13value!f           PHPftokvaluevalue# -            PHPob_list_handlers$ /            PHPob_implicit_flush" +            PHPob_get_contents  '            PHPob_get_status %            PHPob_get_level  '            PHPob_get_length %            PHPob_get_clean %            PHPob_get_flush %            PHPob_end_clean %            PHPob_end_flush             PHPob_clean             PHPob_flush    H qI' lI'iF    t H              ) %          PHPposix_accessvaluevalue2
 #        PHPposix_mknodvaluevaluevaluevalue)	 %          PHPposix_mkfifovaluevalue %            PHPposix_getcwd$ %           PHPposix_isattyvalue% '           PHPposix_ttynamevalue  '            PHPposix_ctermid #            PHPposix_times #            PHPposix_uname$ %           PHPposix_getsidvalue% '           PHPposix_getpgidvalue*  '          PHPposix_setpgidvaluevalue %            PHPposix_setsid ~ '            PHPposix_getpgrp!} )            PHPposix_getlogin"| +            PHPposix_getgroups%{ '           PHPposix_setegidvalue z '            PHPposix_getegid$y %           PHPposix_setgidvaluex %            PHPposix_getgid%w '           PHPposix_seteuidvalue v '            PHPposix_geteuid$u %           PHPposix_setuidvaluet %            PHPposix_getuid s '            PHPposix_getppid    G \7sD]   t G                     *  '          PHPmsg_set_queuevaluevalue& )           PHPmsg_stat_queuevalue( -           PHPmsg_remove_queuevalueR #    PHPmsg_receivevaluevaluereferencevaluereferencevaluevaluereference=       PHPmsg_sendvaluevaluevaluevaluevaluereference* '          PHPmsg_get_queuevaluevalue4 E           PHPreadline_completion_functionvalue) 9            PHPreadline_write_history( 7            PHPreadline_read_history) 9            PHPreadline_clear_history, 5           PHPreadline_add_historyvalue  '            PHPreadline_info             PHPreadline- -          PHPposix_initgroupsvaluevalue& )           PHPposix_strerrorvalue' 5            PHPposix_get_last_error" +            PHPposix_getrlimit& )           PHPposix_getpwuidvalue& )           PHPposix_getpwnamvalue& )           PHPposix_getgrgidvalue& )           PHPposix_getgrnamvalue    K ~X3_4c?    z K                     ,9 ?            PHPsession_register_shutdown(8 7            PHPsession_regenerate_id7 %            PHPsession_name&6 3            PHPsession_module_name4 !            PHPsession_id,3 ?            PHPsession_get_cookie_params!2 )            PHPsession_encode"1 +            PHPsession_destroy&0 )           PHPsession_decodevalue(/ 7            PHPsession_cache_limiter'. 5            PHPsession_cache_expire+, )          PHPshm_remove_varvaluevalue(+ #          PHPshm_get_varvaluevalue(* #          PHPshm_has_varvaluevalue-) #         PHPshm_put_varvaluevaluevalue"( !           PHPshm_detachvalue"' !           PHPshm_removevalue,& !         PHPshm_attachvaluevaluevalue"% !           PHPsem_removevalue#$ #           PHPsem_releasevalue## #           PHPsem_acquirevalue."         PHPsem_getvaluevaluevaluevalue(! -           PHPmsg_queue_existsvalue    L E"~O)k'    L                              4N        PHPsnmpwalkvaluevaluevaluevaluevalue7M #       PHPsnmpgetnextvaluevaluevaluevaluevalue3L        PHPsnmpgetvaluevaluevaluevaluevalue1K 5          PHPsimplexml_import_domvaluevalueAJ 7       PHPsimplexml_load_stringvaluevaluevaluevaluevalue?I 3       PHPsimplexml_load_filevaluevaluevaluevaluevalue$H %           PHPshmop_deletevalue-G #         PHPshmop_writevaluevaluevalue"F !           PHPshmop_sizevalue#E #           PHPshmop_closevalue,D !         PHPshmop_readvaluevaluevalue1C !        PHPshmop_openvaluevaluevaluevalue&B 3            PHPsession_write_close A '            PHPsession_unset!? )            PHPsession_status > '            PHPsession_startI= =      PHPsession_set_save_handlervaluevaluevaluevaluevaluevalueE< ?       PHPsession_set_cookie_paramsvaluevaluevaluevaluevalue$; /            PHPsession_save_path    5 a2Z"o-   5             O^ !  PHPsnmp3_walkvaluevaluevaluevaluevaluevaluevaluevaluevaluevalueR] '  PHPsnmp3_getnextvaluevaluevaluevaluevaluevaluevaluevaluevaluevalueN\   PHPsnmp3_getvaluevaluevaluevaluevaluevaluevaluevaluevaluevalue?[      PHPsnmp2_setvaluevaluevaluevaluevaluevaluevalue;Z +       PHPsnmp2_real_walkvaluevaluevaluevaluevalue6Y !       PHPsnmp2_walkvaluevaluevaluevaluevalue9X '       PHPsnmp2_getnextvaluevaluevaluevaluevalue5W        PHPsnmp2_getvaluevaluevaluevaluevalue=V      PHPsnmpsetvaluevaluevaluevaluevaluevaluevalue2U A           PHPsnmp_set_oid_numeric_printvalue2T A           PHPsnmp_set_oid_output_formatvalue+S 3           PHPsnmp_set_enum_printvalue,R 5           PHPsnmp_set_quick_printvalue'Q 5            PHPsnmp_get_quick_print7P #       PHPsnmpwalkoidvaluevaluevaluevaluevalue8O %       PHPsnmprealwalkvaluevaluevaluevaluevalue    O Ns+]/    O                                   -p #         PHPsocket_readvaluevaluevalue.o %         PHPsocket_writevaluevaluevalue$n %           PHPsocket_closevalue*m '          PHPsocket_listenvaluevalue(l -           PHPsocket_set_blockvalue+k 3           PHPsocket_set_nonblockvalue%j '           PHPsocket_acceptvalue=i 1        PHPsocket_create_pairvaluevaluevaluereference1h 5          PHPsocket_create_listenvaluevalue/g '         PHPsocket_createvaluevaluevalueEf '       PHPsocket_selectreferencereferencereferencevaluevalue%e '           PHPis_soap_faultvalue)d 9            PHPuse_soap_error_handler%c '           PHPsnmp_read_mibvalue*b ;            PHPsnmp_get_valueretrieval/a ;           PHPsnmp_set_valueretrievalvalueX` PHPsnmp3_setvaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevalueT_ +  PHPsnmp3_real_walkvaluevaluevaluevaluevaluevaluevaluevaluevaluevalue    1 O%8W0    c 1   / ;           PHPspl_autoload_unregistervalue( 7            PHPspl_autoload_register* ;            PHPspl_autoload_extensions)  %          PHPspl_autoloadvaluevalue #            PHPspl_classes%~ 1            PHPsocket_clear_error$} /            PHPsocket_last_error,| +          PHPsocket_shutdownvaluevalue8{ /        PHPsocket_set_optionvaluevaluevaluevalue3z /         PHPsocket_get_optionvaluevaluevalue>y '      PHPsocket_sendtovaluevaluevaluevaluevaluevalueLx +      PHPsocket_recvfromvaluereferencevaluevaluereferencereference2w #        PHPsocket_sendvaluevaluevaluevalue6v #        PHPsocket_recvvaluereferencevaluevalue-u #         PHPsocket_bindvaluevaluevalue't +           PHPsocket_strerrorvalue0s )         PHPsocket_connectvaluevaluevalue<r 1         PHPsocket_getpeernamevaluereferencereference<q 1         PHPsocket_getsocknamevaluereferencereference    Y {K!X%]    Y                                           1 #         PHPsqlite_execvaluevaluereference, 5           PHPsqlite_escape_stringvalue+ 3           PHPsqlite_error_stringvalue0 )         PHPsqlite_currentvaluevaluevalue= 9        PHPsqlite_create_functionvaluevaluevaluevalueC ;       PHPsqlite_create_aggregatevaluevaluevaluevaluevalue/ '         PHPsqlite_columnvaluevaluevalue$ %           PHPsqlite_closevalue& )           PHPsqlite_changesvalue0 3          PHPsqlite_busy_timeoutvaluevalue9 1        PHPsqlite_array_queryvaluevaluevaluevalue0 )         PHPiterator_applyvaluevaluevalue&
 )           PHPiterator_countvalue.	 /          PHPiterator_to_arrayvaluevalue' +           PHPspl_object_hashvalue- -          PHPclass_implementsvaluevalue* '          PHPclass_parentsvaluevalue) /           PHPspl_autoload_callvalue) 9            PHPspl_autoload_functions    O ]~T*Z4   u O                               #* #           PHPsqlite_prevvalue2) %         PHPsqlite_popenvaluevaluereference1( #         PHPsqlite_openvaluevaluereference'' +           PHPsqlite_num_rowsvalue)& /           PHPsqlite_num_fieldsvalue#% #           PHPsqlite_nextvalue$$ /            PHPsqlite_libversion%# 1            PHPsqlite_libencoding0" =           PHPsqlite_last_insert_rowidvalue)! /           PHPsqlite_last_errorvalue  %            SQLiteResultkey' +           PHPsqlite_has_prevvalue' +           PHPsqlite_has_morevalue. /          PHPsqlite_field_namevaluevalue0 3          PHPsqlite_fetch_singlevaluevalue: 3        PHPsqlite_fetch_objectvaluevaluevaluevalue; ?         PHPsqlite_fetch_column_typesvaluevaluevalue4 1         PHPsqlite_fetch_arrayvaluevaluevalue2 -         PHPsqlite_fetch_allvaluevaluevalue4 )         PHPsqlite_factoryvaluevaluereference    4 s6d1	]/   e 4    .> %         PHPsqlsrv_fetchvaluevaluevalue?= 3       PHPsqlsrv_fetch_objectvaluevaluevaluevaluevalue9< 1        PHPsqlsrv_fetch_arrayvaluevaluevaluevalue&; )           PHPsqlsrv_executevalue : '            PHPsqlsrv_errors+9 )          PHPsqlsrv_connectvaluevalue-8 -          PHPsqlsrv_configurevaluevalue%7 '           PHPsqlsrv_commitvalue$6 %           PHPsqlsrv_closevalue*5 1           PHPsqlsrv_client_infovalue%4 '           PHPsqlsrv_cancelvalue03 =           PHPsqlsrv_begin_transactionvalue$2 %           PHPsqlite_validvalueB1 ;        PHPsqlite_unbuffered_queryvaluevaluevaluereference00 =           PHPsqlite_udf_encode_binaryvalue0/ =           PHPsqlite_udf_decode_binaryvalue:. 3        PHPsqlite_single_queryvaluevaluevaluevalue(- #          PHPsqlite_seekvaluevalue%, '           PHPsqlite_rewindvalue7+ %        PHPsqlite_queryvaluevaluevaluereference    H yD_)qB    H                          AQ 7       PHPssh2_auth_pubkey_filevaluevaluevaluevaluevalue4P 1         PHPssh2_auth_passwordvaluevaluevalue+O )          PHPssh2_auth_nonevaluevalueNN =     PHPssh2_auth_hostbased_filevaluevaluevaluevaluevaluevaluevalue,M +          PHPssh2_auth_agentvaluevalue*L 1           PHPsqlsrv_server_infovalue/K ;           PHPsqlsrv_send_stream_datavalue,J 5           PHPsqlsrv_rows_affectedvalue'I +           PHPsqlsrv_rollbackvalue3H %        PHPsqlsrv_queryvaluevaluevaluevalue5G )        PHPsqlsrv_preparevaluevaluevaluevalue'F +           PHPsqlsrv_num_rowsvalue)E /           PHPsqlsrv_num_fieldsvalue*D 1           PHPsqlsrv_next_resultvalue'C +           PHPsqlsrv_has_rowsvalue2B -         PHPsqlsrv_get_fieldvaluevaluevalue)A /           PHPsqlsrv_get_configvalue(@ -           PHPsqlsrv_free_stmtvalue-? 7           PHPsqlsrv_field_metadatavalue    Q W'XR    Q                                     ,c +          PHPssh2_sftp_rmdirvaluevalue2b -         PHPssh2_sftp_renamevaluevaluevalue/a 1          PHPssh2_sftp_realpathvaluevalue/` 1          PHPssh2_sftp_readlinkvaluevalue6_ +        PHPssh2_sftp_mkdirvaluevaluevaluevalue,^ +          PHPssh2_sftp_lstatvaluevalue1] +         PHPssh2_sftp_chmodvaluevaluevalue4\ '        PHPssh2_scp_sendvaluevaluevaluevalue/[ '         PHPssh2_scp_recvvaluevaluevalue7Z 7         PHPssh2_publickey_removevaluevaluevalue+Y 3           PHPssh2_publickey_listvalue+X 3           PHPssh2_publickey_initvalue>W 1       PHPssh2_publickey_addvaluevaluevaluevaluevalue/V ;           PHPssh2_methods_negotiatedvalue-U -          PHPssh2_fingerprintvaluevalue.T /          PHPssh2_fetch_streamvaluevalue?S      PHPssh2_execvaluevaluevaluevaluevaluevaluevalue3R %        PHPssh2_connectvaluevaluevaluevalue    4 lH
tInI    _ 4(h -           PHPwddx_deserializevalue/g '         PHPwddx_add_varsvaluevaluevalue'f +           PHPwddx_packet_endvalue$e /            PHPwddx_packet_start0d 3          PHPwddx_serialize_varsvaluevalue1c 5          PHPwddx_serialize_valuevaluevalue"b !           PHPtoken_namevalue%a '           PHPtoken_get_allvalue+` )          PHPob_tidyhandlervaluevalue)_ /           PHPtidy_config_countvalue)^ /           PHPtidy_access_countvalue*] 1           PHPtidy_warning_countvalue(\ -           PHPtidy_error_countvalue[             tidydiagnose'Z +           PHPtidy_get_outputvalueY             tidygetOpt-i #         PHPssh2_tunnelvaluevaluevalue;h !      PHPssh2_shellvaluevaluevaluevaluevaluevalue!g            PHPssh2_sftpvalue-f -          PHPssh2_sftp_unlinkvaluevalue3e /         PHPssh2_sftp_symlinkvaluevaluevalue+d )          PHPssh2_sftp_statvaluevalue    @ m3	RN    h @                  %{ %            XMLWriterstartComment(z +            XMLWritersetIndentString"y             XMLWritersetIndent#x !            XMLWriteropenMemory w             XMLWriteropenURIJv g          PHPxmlrpc_server_register_introspection_callbackvaluevalueAu U          PHPxmlrpc_server_add_introspection_datavaluevalue8t M           PHPxmlrpc_parse_method_descriptionsvalue@s ?        PHPxmlrpc_server_call_methodvaluevaluevaluevalue?r G         PHPxmlrpc_server_register_methodvaluevaluevalue-q 7           PHPxmlrpc_server_destroyvalue'p 5            PHPxmlrpc_server_create'o +           PHPxmlrpc_is_faultvalue0n +          PHPxmlrpc_set_typereferencevalue'm +           PHPxmlrpc_get_typevalue7l 7         PHPxmlrpc_encode_requestvaluevaluevalue;k 7         PHPxmlrpc_decode_requestvaluereferencevalue*j '          PHPxmlrpc_decodevaluevalue%i '           PHPxmlrpc_encodevalue    [ ^2d<a;     [                                   !             XMLWriterstartDTD% %            XMLWriterwriteComment$ #            XMLWriterendDocument& '            XMLWriterstartDocument!             XMLWriterwriteRaw             XMLWritertext# !            XMLWriterwriteCData!             XMLWriterendCData# !            XMLWriterstartCData 
             XMLWriterwritePI	             XMLWriterendPI              XMLWriterstartPI' )            XMLWriterwriteElementNS% %            XMLWriterwriteElement' )            XMLWriterstartElementNS' )            XMLWriterfullEndElement# !            XMLWriterendElement% %            XMLWriterstartElement) -            XMLWriterwriteAttributeNS)  -            XMLWriterstartAttributeNS' )            XMLWriterwriteAttribute%~ %            XMLWriterendAttribute'} )            XMLWriterstartAttribute#| !            XMLWriterendComment    ? f;j@J    ] ?           )             PHPyp_errno%( '           PHPyp_err_stringvalue#'           PHPyp_catvaluevalue(&          PHPyp_allvaluevaluevalue5% !        PHPyaml_parsevaluevaluereferencevalue9$ )        PHPyaml_parse_urlvaluevaluereferencevalue:# +        PHPyaml_parse_filevaluevaluereferencevalue0"         PHPyaml_emitvaluevaluevaluevalue:! )       PHPyaml_emit_filevaluevaluevaluevaluevalue              XMLWriterflush% %            XMLWriteroutputMemory' )            XMLWriterwriteDTDEntity% %            XMLWriterendDTDEntity' )            XMLWriterstartDTDEntity( +            XMLWriterwriteDTDAttlist& '            XMLWriterendDTDAttlist( +            XMLWriterstartDTDAttlist( +            XMLWriterwriteDTDElement& '            XMLWriterendDTDElement( +            XMLWriterstartDTDElement!             XMLWriterwriteDTD             XMLWriterendDTD    M W+f<O%    y M                       )@          PHPgzgetssvaluevaluevalue#?           PHPgzgetsvaluevalue>            PHPgzgetcvalue=            PHPgzeofvalue<            PHPgzclosevalue ;            PHPgzrewindvalue': !          PHPreadgzfilevaluevalue39 C           PHPzip_entry_compressionmethodvalue08 =           PHPzip_entry_compressedsizevalue&7 )           PHPzip_entry_namevalue*6 1           PHPzip_entry_filesizevalue+5 )          PHPzip_entry_readvaluevalue'4 +           PHPzip_entry_closevalue03 )         PHPzip_entry_openvaluevaluevalue 2            PHPzip_readvalue!1            PHPzip_closevalue 0            PHPzip_openvalue%/           PHPyp_ordervaluevalue).          PHPyp_nextvaluevaluevalue*-          PHPyp_matchvaluevaluevalue&,           PHPyp_mastervaluevalue(+ 7            PHPyp_get_default_domain%*           PHPyp_firstvaluevalue    B _>h?a@     b B          X            PHPemptyvalue!W           PHPechovaluevalueV            PHPissetvalueU            PHPevalvalue"T !           PHPstrtolowervalue'S !          PHPstrcasecmpvaluevalue)R          PHPstrrposvaluevaluevalueQ            PHPstrlenvalue-P         PHPsubstrvaluevaluevaluevalue(O          PHPstrposvaluevaluevalue'N 5            PHPzlib_get_coding_type)M %          PHPob_gzhandlervaluevalue*L          PHPgzencodevaluevaluevalue&K           PHPgzinflatevaluevalue&J           PHPgzdeflatevaluevalue)I %          PHPgzuncompressvaluevalue,H !         PHPgzcompressvaluevaluevalue#G           PHPgzfilevaluevalue)F          PHPgzwritevaluevaluevalueE            PHPgztellvalue(D          PHPgzseekvaluevaluevalue"C !           PHPgzpassthruvalue(B          PHPgzopenvaluevaluevalue#A           PHPgzreadvaluevalue    _8                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                'u +           PHPerror_reportingvalue^ PHPunsetreferencereferencereferencereferencereferencereferencereferencereferencereferencereferencereferencereference$] %           PHPrequire_oncevalue&\          PHPis_avaluevaluevalue[            PHPsizeofvalue)Z          PHPstristrvaluevaluevalue(Y          PHPstrstrvaluevaluevalue    D Q(jH_*	    h D                  "# !            PHPgc_enabledbool!"             PHPgc_enablevoid" !            PHPgc_disablevoid( /            PHPgc_collect_cyclesint. -           PHPextension_loadedboolstring            PHPdlintstring3 7           PHPcli_set_process_titleboolstring3 7           PHPcli_get_process_titlestringvoid( #           PHPassertintstring,bool) )           PHPassert_optionsvoidint* !           PHPaddslashesstringstring1 #          PHPaddcslashesstringstringstring 	            PHPchrstringint+ #          PHPcount_charsintstringintR PHPfprintfintstringstringmixedmixedmixedmixedmixedmixedmixedmixed; 1         PHPhtml_entity_decodestringstringintstring'            PHPhex2binstringstring: '        PHPnumber_formatfloatfloatintstringstring             PHPordintstring"            PHPprintintstring+           PHPcryptstringstringstring    _ n:M%|P)    _                                             ?8 7          PHPini_setint,floatstringstring,int,float,bool)7 #           PHPini_restorevoidstring,6 #           PHPini_getstring,boolstring.5 #          PHPini_get_allarraystringbool%4            PHPgetrusagearrayint*3           PHPgetoptarraystringarray2             PHPgetmyuidint1             PHPgetmypidint!0 !            PHPgetmyinodeint/             PHPgetmygidint!. !            PHPgetlastmodint&-            PHPgetenvstringstring0, =            PHPget_magic_quotes_runtimebool,+ 5            PHPget_magic_quotes_gpcbool2* 7           PHPget_loaded_extensionsarraybool+) 1            PHPget_included_filesarray*( -            PHPget_include_pathstring2' 3           PHPget_extension_funcsarraystring2& 7           PHPget_defined_constantsarraybool*% -            PHPget_current_userstring0$ ##           PHPget_cfg_varstring,boolstring    6 rAyH"a5    d 6  ,N -            PHPcurl_copy_handleresource"M !            PHPcurl_closevoid&L %            PHPzend_versionstring%K )            PHPzend_thread_idint(J )            PHPzend_logo_guidstring2I +          PHPversion_compareintstringstring*H -            PHPsys_get_temp_dirstring)G )           PHPset_time_limitboolint4F =           PHPset_magic_quotes_runtimeboolbool0E -           PHPset_include_pathstringstring,D 5            PHPrestore_include_pathvoid$C            PHPputenvboolstring/B !#           PHPphpversionstring,boolstring"A            PHPphpinfoboolint%@ !           PHPphpcreditsboolint)?            PHPphp_unamestringstring'> '            PHPphp_sapi_namestring'= '            PHPphp_logo_guidstring/< 7            PHPphp_ini_scanned_filesstring-; 3            PHPphp_ini_loaded_filestring+: -           PHPmemory_get_usageintbool09 7           PHPmemory_get_peak_usageintbool    Z `.f-T    Z                                            6a /          PHPcurl_setopt_arrayboolresourcearray*` !           PHPcurl_resetvoidresource,_ !          PHPcurl_pauseintresourceint0^ 3           PHPcurl_multi_strerrorstringint4] /          PHPcurl_multi_setoptboolresourceint7\ /          PHPcurl_multi_selectfloatresourcefloat7[ =           PHPcurl_multi_remove_handleintresource+Z +            PHPcurl_multi_initresource8Y 5          PHPcurl_multi_info_readarrayresourceint7X 7           PHPcurl_multi_getcontentstringresource1W +          PHPcurl_multi_execintresourceint0V -           PHPcurl_multi_closevoidresource4U 7           PHPcurl_multi_add_handleintresource+T            PHPcurl_initresourcestring0S %          PHPcurl_getinfomixedresourceint(R #            PHPcurl_execstring,bool+Q #           PHPcurl_escapestringstring$P !            PHPcurl_errorstring!O !            PHPcurl_errnoint    0 q;~L{N    V 0$v !            PHPapc_deletestring-u +!            PHPapc_delete_filebool,array;t 5         PHPapc_define_constantsboolstringarraybool+s          PHPapc_decintstringintbool.r -           PHPapc_compile_filestringbool-q +           PHPapc_clear_cacheboolstring+p          PHPapc_casboolstringintint1o )          PHPapc_cache_infoarraystringbool1n -          PHPapc_bin_loadfileboolstringint-m %          PHPapc_bin_loadboolstringint:l -        PHPapc_bin_dumpfileintarrayarraystringint0k %          PHPapc_bin_dumpstringarrayarray.j          PHPapc_addarraystringintarray(h %           PHPcurl_versionarrayint5g '          PHPcurl_unescapestringresourcestring*f '           PHPcurl_strerrorstringint4e /          PHPcurl_share_setoptboolresourceint+d +            PHPcurl_share_initresource0c -           PHPcurl_share_closevoidresource.b #          PHPcurl_setoptboolresourceint    / Z/X%~:    g / 5	 %         PHParray_filterarrayarraycallableint) !          PHParray_fillarrayintint- +           PHParray_fill_keysarrayarray2 !         PHParray_diffarrayarrayarrayarray? +        PHParray_diff_ukeyarrayarrayarrayarraycallableA /        PHParray_diff_uassocarrayarrayarrayarraycallable6 )         PHParray_diff_keyarrayarrayarrayarray8 -         PHParray_diff_assocarrayarrayarrayarray0 1           PHParray_count_valuesarrayarray0  '          PHParray_combinearrayarrayarray4 %         PHParray_columnarrayarraymixedmixed0~ #         PHParray_chunkarrayarrayintbool6} 7          PHParray_change_key_casearrayarrayint5| !         PHPapc_storearray,boolstringintarray){ %           PHPapc_sma_infoarraybool4z 1          PHPapc_load_constantsboolstringbool+y          PHPapc_incintstringintbool!x             PHPapc_fetchboolw !             PHPapc_exists    0 W].'    Y 0        & !           PHParray_pushintarray/ '           PHParray_productint,floatarray"             PHParray_poparray*           PHParray_padarrayarrayintG +        PHParray_multisortboolarrayarray,intarray,intarray,int` #PHParray_mergearrayarrayarrayarrayarrayarrayarrayarrayarrayarrayarrayarrayarrayj 7PHParray_merge_recursivearrayarrayarrayarrayarrayarrayarrayarrayarrayarrayarrayarrayarray4          PHParray_maparraycallablearrayarray, !          PHParray_keysarrayarraybool- -           PHParray_key_existsboolarray7 +         PHParray_intersectarrayarrayarrayarrayD 5        PHParray_intersect_ukeyarrayarrayarrayarraycallableF 9        PHParray_intersect_uassocarrayarrayarrayarraycallable; 3         PHParray_intersect_keyarrayarrayarrayarray= 7         PHParray_intersect_assocarrayarrayarrayarray(
 !           PHParray_fliparrayarray    K UX g)   K                                   @) -        PHParray_uintersectarrayarrayarrayarraycallableO( ;       PHParray_uintersect_uassocarrayarrayarrayarraycallablecallableF' 9        PHParray_uintersect_assocarrayarrayarrayarraycallable;& #        PHParray_udiffarrayarrayarrayarraycallableJ% 1       PHParray_udiff_uassocarrayarrayarrayarraycallablecallableA$ /        PHParray_udiff_assocarrayarrayarrayarraycallable%#            PHParray_sumintarray5" %        PHParray_splicearrayarrayintintarray8! #        PHParray_slicearrayarrayintint,nullbool)  #           PHParray_shiftmixedarray) %           PHParray_searcharraybool/ '          PHParray_reversearrayarraybool5 '         PHParray_replacearrayarrayarrayarray? ;         PHParray_replace_recursivearrayarrayarrayarray- %           PHParray_reducearraycallable6 !-          PHParray_randarray,int,stringarrayint    J w;	tR/
qH      n J                  !A            PHPrangearrayint@             PHPprevarray?             PHPnextarray$>            PHPnatsortboolarray(= #           PHPnatcasesortboolarray<             PHPlistarray%;           PHPksortboolarrayint&:           PHPkrsortboolarrayint9             PHPkeyarray)8           PHPin_arrayboolarraybool,7          PHPextractintarrayintstring6             PHPendarray"5            PHPeacharrayarray 4             PHPcurrentarray3            PHPcountintint 2             PHPcompactarray%1           PHPasortboolarrayint&0           PHParsortboolarrayint/             PHParrayarray/. !          PHParray_walkboolarraycallable9- 5          PHParray_walk_recursiveboolarraycallable*, %           PHParray_valuesarrayarray)+ '           PHParray_unshiftintarray-* %          PHParray_uniquearrayarrayint    9 i;O!`4   } \ 9      W             PHPbzerrorarrayV             PHPbzerrnoint/U %          PHPbzdecompressstringstringint0T !         PHPbzcompressstringstringintintS             PHPbzcloseint.R          PHPbcsubstringstringstringint)Q           PHPbcsqrtstringstringint"P            PHPbcscaleboolint7O         PHPbcpowmodstringstringstringstringint.N          PHPbcpowstringstringstringint.M          PHPbcmulstringstringstringint+L           PHPbcmodstringstringstring.K          PHPbcdivstringstringstringint,J          PHPbccompintstringstringint.I          PHPbcaddstringstringstringint*H           PHPusortboolarraycallable+G           PHPuksortboolarraycallable+F           PHPuasortboolarraycallable$E           PHPsortboolarrayint$D            PHPshuffleboolarray%C           PHPrsortboolarrayintB             PHPresetarray    : _5~V+jD     ` :  #b #            PHPctype_upperbool#a #            PHPctype_spacebool#` #            PHPctype_punctbool#_ #            PHPctype_printbool#^ #            PHPctype_lowerbool#] #            PHPctype_graphbool#\ #            PHPctype_digitbool#[ #            PHPctype_cntrlbool#Z #            PHPctype_alphabool#Y #            PHPctype_alnumbool"X            PHPunixtojdintintW              PHPjdtounix.V !         PHPjdtojewishstringintboolint(U #          PHPeaster_daysintintint%T #           PHPeaster_dateintint,S         PHPcal_to_jdintintintintint$R            PHPcal_infoarrayint*Q #          PHPcal_from_jdarrayintint1P /         PHPcal_days_in_monthintintintint'\           PHPbzwriteintstringint#[            PHPbzreadstringint2Z !          PHPbzopenresourcestring,intstringY             PHPbzflushint"X             PHPbzerrstrstring    K b<zD
j(    w K                             )           PHPgmdatestringstringint  %             PHPgettimeofday#            PHPgetdatearrayint'           PHPdatestringstringint; #       PHPdate_sunsetfloatintfloatfloatfloatfloat? %      PHPdate_sunrisefloatintintfloatfloatfloatfloat3 '         PHPdate_sun_infofloatintfloatfloat)
 !           PHPdate_parsearraystring;	 9          PHPdate_parse_from_formatarraystringstring7 ?           PHPdate_default_timezone_setboolstring3 ?            PHPdate_default_timezone_getstring*          PHPcheckdateboolintintint* %           PHPcyrus_unbindboolstring* #           PHPcyrus_queryarraystring8 '         PHPcyrus_connectresourcestringstringint# #            PHPcyrus_closebool' !           PHPcyrus_bindboolarrayJ  1      PHPcyrus_authenticatestringstringstringintintstringstring$c %            PHPctype_xdigitbool    7 tHnPd-    _ 7   %' #            PHPdba_nextkeystring!&             PHPdba_listarray!% '             PHPdba_key_split.$ !          PHPdba_insertboolstringstring)# %           PHPdba_handlersarraybool&" %            PHPdba_firstkeystring4!          PHPdba_fetchstringstringintresource(  !           PHPdba_existsboolstring( !           PHPdba_deleteboolstring              PHPdba_close. 5            PHPtimezone_version_getstringB ;#         PHPtimezone_name_from_abbrstring,boolstringintint             PHPtimeint)           PHPstrtotimeintstringint              PHPstrptime+           PHPstrftimestringstringint/       PHPmktimeintintintintintintint, #           PHPmicrotimearray,floatbool)           PHPlocaltimearrayintbool%           PHPidateintstringint- !          PHPgmstrftimestringstringint1       PHPgmmktimeintintintintintintint    4 Z(f7e2    m 4      6< )          PHPmysql_db_queryresourcestringstring+; #           PHPsql_regcasestringstring.:          PHPsplitiarraystringstringint-9          PHPsplitarraystringstringint38 7           PHPsession_is_registeredboolstring07 1           PHPsession_unregisterboolstring(6 -            PHPsession_registerbool94 '         PHPeregi_replacestringstringstringstring-3          PHPeregiintstringstringarray82 %         PHPereg_replacestringstringstringstring,1          PHPeregintstringstringarray+/ ;             PHPdefine_syslog_variables;. 9          PHPcall_user_method_arraystringobjectarray0- -           PHPcall_user_methodstringobject ,             PHPdba_syncbool/+ #          PHPdba_replaceboolstringstring=*         PHPdba_popenresourcestringstringstringstring$) %            PHPdba_optimizebool<(         PHPdba_openresourcestringstringstringstring    I p.h=
j5   I                               AM K           PHPenchant_broker_request_pwl_dictresourcestring=L C           PHPenchant_broker_request_dictresourcestring3K ?            PHPenchant_broker_list_dictsstring/J 3            PHPenchant_broker_initresource2I =            PHPenchant_broker_get_errorstring+H 3            PHPenchant_broker_freebool4G =            PHPenchant_broker_free_dictresource8F A           PHPenchant_broker_dict_existsboolstring0E ;            PHPenchant_broker_describearray(D 5             PHPdom_import_simplexml?C !       PHPmcrypt_ofbstringstringstringstringintstring?B !       PHPmcrypt_ecbstringstringstringstringintstring?A !       PHPmcrypt_cfbstringstringstringstringintstring?@ !       PHPmcrypt_cbcstringstringstringstringintstring*? )            PHPmysql_list_dbsresource*> 1            PHPmcrypt_generic_endbool3= 3           PHPmysql_escape_stringstringstring    1 M{=Z.   z Z 1     &f !            PHPfdf_createresourcee              PHPfdf_close:d -        PHPfdf_add_templateboolintstringstringint:c 9          PHPfdf_add_doc_javascriptboolstringstring7b )        PHPexif_thumbnailstringstringintintint)a %           PHPexif_tagnamestringint;` )        PHPexif_read_dataarraystringstringboolbool+_ )           PHPexif_imagetypeintstring3W 5           PHPenchant_dict_suggestarraystring>V I           PHPenchant_dict_store_replacementstringstring;U =          PHPenchant_dict_quick_checkboolstringarray8T A           PHPenchant_dict_is_in_sessionboolstring0S 9            PHPenchant_dict_get_errorstring.R 7            PHPenchant_dict_describearray0Q 1           PHPenchant_dict_checkboolstring5P C            PHPenchant_dict_add_to_sessionstring6O E            PHPenchant_dict_add_to_personalstring?N C          PHPenchant_broker_set_orderingboolstringstring    7 Nc8T'    h 7     .{ -           PHPfdf_set_encodingboolstring4z !        PHPfdf_set_apboolstringintstringint&y            PHPfdf_saveboolstring)x +            PHPfdf_save_stringstring0w +          PHPfdf_remove_itemboolstringint*v            PHPfdf_openresourcestring1u +           PHPfdf_open_stringresourcestring3t 3           PHPfdf_next_field_namestringstrings !             PHPfdf_header)r +            PHPfdf_get_versionstring*q '           PHPfdf_get_valuestringint(p )            PHPfdf_get_statusstring(o #           PHPfdf_get_optstringint-n '          PHPfdf_get_flagsintstringint&m %            PHPfdf_get_filestring*l -            PHPfdf_get_encodingstring7k 1          PHPfdf_get_attachmentarraystringstring1j !         PHPfdf_get_apboolstringintstring&i            PHPfdf_errorstringint h             PHPfdf_errnoint/g +           PHPfdf_enum_valuesboolcallable    _ Vd/mD    _                                                   . +           PHPdisk_free_spacefloatstring'            PHPdirnamestringstring(           PHPcopyboolstringstring,
 )           PHPclearstatcacheboolstring-	 !          PHPchownboolstringstring,int&           PHPchmodboolstringint- !          PHPchgrpboolstringstring,int.           PHPbasenamestringstringstring- +           PHPfdf_set_versionboolstring. '          PHPfdf_set_valueboolstringint2 5           PHPfdf_set_target_frameboolstringD A        PHPfdf_set_submit_form_actionboolstringintstringint, )           PHPfdf_set_statusboolstring8  #        PHPfdf_set_optboolstringintstringstring> E          PHPfdf_set_on_import_javascriptboolstringbool@~ ?         PHPfdf_set_javascript_actionboolstringintstring1} '         PHPfdf_set_flagsboolstringintint0| %          PHPfdf_set_fileboolstringstring    k mF(V"tT4    k                                                     .$          PHPfnmatchboolstringstringint##           PHPflockboolintint-" #           PHPfiletypestring,boolstring!             PHPfilesizeint               PHPfileperms              PHPfileowner              PHPfilemtime              PHPfileinode              PHPfilegroup              PHPfilectime              PHPfileatime+ !         PHPfilearray,boolstringint1 /        PHPfile_put_contentsintstringintH /#       PHPfile_get_contentsstring,boolstringboolresourceintint) #           PHPfile_existsboolstring. #          PHPfgetssstring,boolintstring' #           PHPfgetsstring,boolint              PHPfgetcsv$ #            PHPfgetcstring,bool             PHPfflushbool             PHPfeofbool             PHPfclosebool/ -           PHPdisk_total_spacefloatstring    < qL#nEtC    c <      $;            PHPlstatarraystring%:            PHPlinkinfointstring'9           PHPlinkintstringstring.8 !          PHPlchownboolstringstring,int.7 !          PHPlchgrpboolstringstring,int)6 #           PHPis_writableboolstring.5 -           PHPis_uploaded_fileboolstring)4 #           PHPis_readableboolstring%3            PHPis_linkboolstring%2            PHPis_fileboolstring+1 '           PHPis_executableboolstring$0            PHPis_dirboolstring&/           PHPglobarraystringint&.           PHPfwriteintstringint$-            PHPftruncateboolint,             PHPftellint+             PHPfstatarray"*           PHPfseekintintint&)            PHPfscanfstringstring"(            PHPfreadstringint5'         PHPfputcsvintarraystringstringstring &             PHPfpassthruint1%         PHPfopenresourcestringstringbool    4 ^ U'[5    c 4,Q           PHPunlinkboolstringresourceP            PHPumaskintint)O          PHPtouchboolstringintint#N             PHPtmpfileresource-M           PHPtempnamstringstringstring+L           PHPsymlinkboolstringstring#K            PHPstatarraystring#J            PHPrmdirboolstringI             PHPrewindbool*H           PHPrenameboolstringstring(G            PHPrealpathstringstring*F 3            PHPrealpath_cache_sizeint+E 1            PHPrealpath_cache_getarray(D            PHPreadlinkstringstring)C           PHPreadfileintstringbool-B           PHPpopenresourcestringstringA             PHPpcloseint!@             PHPpathinfoarray;? -!         PHPparse_ini_stringarray,boolstringboolint9> )!         PHPparse_ini_filearray,boolstringboolint6= 1          PHPmove_uploaded_fileboolstringstring*<          PHPmkdirboolstringintbool    8 Pi=^3   k 8        0e !          PHPftp_deleteboolresourcestring3d #         PHPftp_connectresourcestringintint)c            PHPftp_closeboolresource1b          PHPftp_chmodintresourceintstring/a           PHPftp_chdirboolresourcestring(`            PHPftp_cdupboolresource2_          PHPftp_allocboolresourceintstring!^ !            PHPfilter_varint-] -           PHPfilter_var_arrayarraybool$\ #            PHPfilter_listarray,[ %          PHPfilter_inputintstringint)Z 1            PHPfilter_input_arrayintY              PHPfilter_id/X )          PHPfilter_has_varboolintstring+W /            PHPmime_content_typestring2V +          PHPfinfo_set_flagsboolresourceint/U !          PHPfinfo_openresourceintstring=T !        PHPfinfo_filestringresourcestringintresource+S #           PHPfinfo_closeboolresource?R %        PHPfinfo_bufferstringresourcestringintresource    ? a1Y(x:   p ?                   .w           PHPftp_rawarrayresourcestring)v            PHPftp_pwdstringresource9u        PHPftp_putboolresourcestringstringintint,t           PHPftp_pasvboolresourcebool0s           PHPftp_nlistarrayresourcestring;r !       PHPftp_nb_putintresourcestringstringintint;q !       PHPftp_nb_getintresourcestringstringintint6p #        PHPftp_nb_fputintresourcestringintint6o #        PHPftp_nb_fgetintresourcestringintint.n +           PHPftp_nb_continueintresource1m           PHPftp_mkdirstringresourcestring-l           PHPftp_mdtmintresourcestring5k          PHPftp_loginboolresourcestringstring9j        PHPftp_getboolresourcestringstringintint-i )           PHPftp_get_optionresourceint4h         PHPftp_fputboolresourcestringintint4g         PHPftp_fgetboolresourcestringintint.f           PHPftp_execboolresourcestring    A \(]:N   r A                     .	 1           PHPimagealphablendingboolbool5 5          PHPimageaffinematrixgetarrayintarray: ;          PHPimageaffinematrixconcatarrayarrayarray1 #          PHPimageaffineresourcearrayarray0 ! #         PHPimage2wbmpboolstring,nullint4 ;           PHPimage_type_to_mime_typestringint8 ;          PHPimage_type_to_extensionstringintbool? 9!          PHPgetimagesizefromstringarray,boolstringarray5 %!          PHPgetimagesizearray,boolstringarray               PHPgd_infoarray- #           PHPftp_systypestringresource7~ +         PHPftp_ssl_connectresourcestringintint-}           PHPftp_sizeintresourcestring.|           PHPftp_siteboolresourcestring1{ )          PHPftp_set_optionboolresourceint/z           PHPftp_rmdirboolresourcestring6y !         PHPftp_renameboolresourcestringstring6x #         PHPftp_rawlistarrayresourcestringbool    K e-[J    } K                               / 3           PHPimagecolorsforindexarrayint0 '        PHPimagecolorsetintintintintint9 9        PHPimagecolorresolvealphaintintintintint1 /         PHPimagecolorresolveintintintint' +            PHPimagecolormatchbool7 5        PHPimagecolorexactalphaintintintintint/ +         PHPimagecolorexactintintintint/ 5           PHPimagecolordeallocateboolint4 5         PHPimagecolorclosesthwbintintintint9 9        PHPimagecolorclosestalphaintintintintint1 /         PHPimagecolorclosestintintintint) %          PHPimagecoloratintintint: ;        PHPimagecolorallocatealphaintintintintint2 1         PHPimagecolorallocateintintintint5 #       PHPimagecharupboolintintintstringint3        PHPimagecharboolintintintstringint5      PHPimagearcboolintintintintintintint*
 )           PHPimageantialiasboolbool    / i3n+}G   g /     5, 3           PHPimagecreatefromwbmpresourcestring7+ 7           PHPimagecreatefromstringresourcestring4* 1           PHPimagecreatefrompngresourcestring5) 3           PHPimagecreatefromjpegresourcestring4( 1           PHPimagecreatefromgifresourcestring3' /           PHPimagecreatefromgdresourcestringD& 9       PHPimagecreatefromgd2partresourcestringintintintint4% 1           PHPimagecreatefromgd2resourcestring-$ #          PHPimagecreateresourceintint@# -    PHPimagecopyresizedboolintintintintintintintintB" 1    PHPimagecopyresampledboolintintintintintintintint?! 1     PHPimagecopymergegrayboolintintintintintintint;  )     PHPimagecopymergeboolintintintintintintint3       PHPimagecopyboolintintintintintint8 -         PHPimageconvolutionfloatarrayfloatfloat/ 7           PHPimagecolortransparentintint' -            PHPimagecolorstotalint    V Z!h2P    V                                          )> +           PHPimagefontheightintint =             PHPimageflipint2< #       PHPimagefilterboolintintintintint5; /        PHPimagefilltoborderboolintintintint;: 5       PHPimagefilledrectangleboolintintintintint59 1         PHPimagefilledpolygonboolarrayintint98 1       PHPimagefilledellipseboolintintintintint>7 )    PHPimagefilledarcboolintintintintintintintint*6          PHPimagefillboolintintint35 %       PHPimageellipseboolintintintintint$4 %            PHPimagedestroybool63 +       PHPimagedashedlineboolintintintintint12 '         PHPimagecropautofloatintfloatint"1             PHPimagecroparray60 5          PHPimagecreatetruecolorresourceintint4/ 1           PHPimagecreatefromxpmresourcestring4. 1           PHPimagecreatefromxbmresourcestring5- 3           PHPimagecreatefromwebpresourcestring    A HT b/   s A                   /Q %         PHPimagepolygonboolarrayintint+P  #          PHPimagepngboolstring,null7O ;           PHPimagepalettetotruecolorboolresource$N -             PHPimagepalettecopy*M '           PHPimageloadfontintstring0L        PHPimagelineboolintintintintint+K -           PHPimagelayereffectboolint/J  #         PHPimagejpegboolstring,nullint0I -           PHPimageistruecolorboolresource(H )           PHPimageinterlaceintint1G +          PHPimagegrabwindowresourceintint+F +            PHPimagegrabscreenresource+E  #          PHPimagegifboolstring,null*D  #          PHPimagegdboolstring,null1C  #        PHPimagegd2boolstring,nullintint4B /          PHPimagegammacorrectfloatfloatfloatHA #    PHPimagefttextfloatfloatfloatintintintstringstringarray?@ #       PHPimageftbboxfloatfloatfloatstringstringarray(? )           PHPimagefontwidthintint    > a7Pd3   x >                7d '       PHPimagestringupboolintintintstringint5c #       PHPimagestringboolintintintstringint$b %            PHPimagesettilebool,a /           PHPimagesetthicknessboolint*` '           PHPimagesetstyleboolarray._ '         PHPimagesetpixelboolintintint0^ 7           PHPimagesetinterpolationboolint%] '            PHPimagesetbrushbool/\ !         PHPimagescaleresourceintintint*[ )           PHPimagesavealphaboolbool/Z #         PHPimagerotatefloatfloatintint5Y )       PHPimagerectangleboolintintintintintGX #  PHPimagepstextfloatstringintintintintintintintfloatint.W -           PHPimagepsslantfontfloatfloat1V +           PHPimagepsloadfontresourcestring'U +            PHPimagepsfreefontbool/T /           PHPimagepsextendfontfloatfloat/S /           PHPimagepsencodefontboolstring8R #       PHPimagepsbboxfloatstringintintintfloat    J K|HsU7     j J                      z              PHPgmp_div_r&y !           PHPgmp_div_qrarrayintx              PHPgmp_div_qw              PHPgmp_comv             PHPgmp_cmpint$u !           PHPgmp_clrbitgmpintt              PHPgmp_ands              PHPgmp_addr              PHPgmp_abs5q        PHPpng2wbmpboolstringstringintintint6p        PHPjpeg2wbmpboolstringstringintintint-o !           PHPiptcparsearray,boolstring1n          PHPiptcembedarraystringstringint1m #         PHPimagexbmboolintstring,nullint/l  #         PHPimagewebpboolstring,nullint/k  #         PHPimagewbmpboolstring,nullint!j !            PHPimagetypesintDi %     PHPimagettftextfloatfloatfloatintintintstringstring;h %        PHPimagettfbboxfloatfloatfloatstringstring2g ;           PHPimagetruecolortopaletteboolintf             PHPimagesyinte             PHPimagesxint    Q zU6kM)|Q0
    x Q                   $ #            PHPgmp_sqrtremarray              PHPgmp_sqrt             PHPgmp_signint( !          PHPgmp_setbitgmpintbool#            PHPgmp_scan1intint#            PHPgmp_scan0intint !             PHPgmp_random( )           PHPgmp_prob_primeintint              PHPgmp_powm              PHPgmp_pow# %            PHPgmp_popcountint*
 1            PHPgmp_perfect_squarebool	              PHPgmp_or! '             PHPgmp_nextprime              PHPgmp_neg              PHPgmp_mul              PHPgmp_mod# %            PHPgmp_legendreint! !            PHPgmp_jacobiint !             PHPgmp_invert! !            PHPgmp_intvalint               PHPgmp_init" #            PHPgmp_hamdistint#~ !            PHPgmp_gcdextarray}              PHPgmp_gcd|              PHPgmp_fact { %             PHPgmp_divexact    J q/{BY    J                              3' %          PHPgnupg_importarrayresourcestring0& /           PHPgnupg_getprotocolintresource0% )           PHPgnupg_geterrorstringresource4$ %          PHPgnupg_exportstringresourcestring9# /          PHPgnupg_encryptsignstringresourcestring5" '          PHPgnupg_encryptstringresourcestring@! 3         PHPgnupg_decryptverifyarrayresourcestringstring5  '          PHPgnupg_decryptstringresourcestring3 3           PHPgnupg_clearsignkeysboolresource6 9           PHPgnupg_clearencryptkeysboolresource6 9           PHPgnupg_cleardecryptkeysboolresource< -         PHPgnupg_addsignkeyboolresourcestringstring9 3          PHPgnupg_addencryptkeyboolresourcestring? 3         PHPgnupg_adddecryptkeyboolresourcestringstring              PHPgmp_xor& #           PHPgmp_testbitboolint              PHPgmp_sub' !           PHPgmp_strvalstringint    E d,~X(~B   y E                         19 #          PHPhash_updateboolresourcestring48 1          PHPhash_update_streamintresourceint67 -          PHPhash_update_fileboolresourcestring6 #             PHPhash_pbkdf245          PHPhash_initresourcestringintstring94         PHPhash_hmacstringstringstringstringbool>3 )        PHPhash_hmac_filestringstringstringstringbool02 !          PHPhash_finalstringresourcebool31          PHPhash_filestringstringstringbool-0            PHPhash_copyresourceresource#/ !            PHPhash_algosarray?. %        PHPgnupg_verifyarrayresourcestringstringstring2- !          PHPgnupg_signstringresourcestring4, /          PHPgnupg_setsignmodeboolresourceint5+ 1          PHPgnupg_seterrormodevoidresourceint1* )          PHPgnupg_setarmorboolresourceint4) '          PHPgnupg_keyinfoarrayresourcestring.( !           PHPgnupg_initresourceresource    a \u:\%    a                                                       :} 9          PHPkadm5_chpass_principalboolstringstring&| +            PHPjson_last_errorint-{ 3            PHPjson_last_error_msgstring+z #          PHPjson_encodestringintint4y #        PHPjson_decodemixedstringboolintint3E -          PHPob_iconv_handlerstringstringint1D          PHPiconvstringstringstringstring8C %        PHPiconv_substrstringstringintintstring6B '         PHPiconv_strrposintstringstringstring8A %        PHPiconv_strposintstringstringintstring/@ %          PHPiconv_strlenintstringstring6? 1          PHPiconv_set_encodingboolstringstring<> /         PHPiconv_mime_encodestringstringstringarray:= /         PHPiconv_mime_decodestringstringintstringA< ?         PHPiconv_mime_decode_headersarraystringintstring,; 1            PHPiconv_get_encodingstring.:          PHPhashstringstringstringbool    3 _9WQ   _ 3       ) #           PHPldap_deleteboolstring) 1            PHPldap_count_entriesint: ?          PHPldap_control_paged_resultintboolstringC Q          PHPldap_control_paged_result_responseboolstringint@ %       PHPldap_connectresourcestringintstringstringint6
 %         PHPldap_compareboolstringstringstring-	           PHPldap_bindboolstringstring+           PHPldap_addboolstringarray0 -           PHPldap_8859_to_t61stringstring9 9          PHPkadm5_modify_principalboolstringarrayL =        PHPkadm5_init_with_passwordresourcestringstringstringstring- 5            PHPkadm5_get_principalsarray2 3           PHPkadm5_get_principalarraystring+ 1            PHPkadm5_get_policiesarray# #            PHPkadm5_flushbool%  '            PHPkadm5_destroybool4 9           PHPkadm5_delete_principalboolstring?~ 9         PHPkadm5_create_principalboolstringstringarray    5 ['i:S    f 5     .# #          PHPldap_modifyboolstringarray3" -          PHPldap_mod_replaceboolstringarray/! %          PHPldap_mod_delboolstringarray/  %          PHPldap_mod_addboolstringarrayP )    PHPldap_listresourceresource,arraystringstringarrayintintintint. +           PHPldap_get_valuesarraystring2 3           PHPldap_get_values_lenarraystring* +           PHPldap_get_optionboolint) -            PHPldap_get_entriesarray% #            PHPldap_get_dnstring, 3            PHPldap_get_attributesarray( -            PHPldap_free_resultbool0 5            PHPldap_first_referenceresource, -            PHPldap_first_entryresource. 5            PHPldap_first_attributestring1 +          PHPldap_explode_dnarraystringint$ !            PHPldap_errorstring! !            PHPldap_errnoint) %           PHPldap_err2strstringint+ #           PHPldap_dn2ufnstringstring    R p<mc9    R                                        84 E           PHPlibxml_disable_entity_loaderboolbool'3 3             PHPlibxml_clear_errors#2 #            PHPldap_unbindbool01 -           PHPldap_t61_to_8859stringstring&0 )            PHPldap_start_tlsbool'/            PHPldap_sortboolstring2. 5           PHPldap_set_rebind_procboolstring*- +           PHPldap_set_optionboolintR, #)    PHPldap_searchresourceresource,arraystringstringarrayintintintintP+ )     PHPldap_sasl_bindboolstringstringstringstringstringstringstring9* #        PHPldap_renameboolstringstringstringboolP) )    PHPldap_readresourceresource,arraystringstringarrayintintintint=( /        PHPldap_parse_resultboolintstringstringarray1' 5           PHPldap_parse_referenceboolarray/& 3            PHPldap_next_referenceresource+% +            PHPldap_next_entryresource-$ 3            PHPldap_next_attributestring    U f)yT.]8    } U                                 %J            PHPdeg2radfloatfloat#I            PHPdecoctstringint#H            PHPdechexstringint#G            PHPdecbinstringint"F            PHPcoshfloatfloat!E            PHPcosfloatfloat"D            PHPceilfloatfloat#C            PHPbindecintstring2B %         PHPbase_convertstringstringintint#A            PHPatanhfloatfloat"@            PHPatanfloatfloat(?           PHPatan2floatfloatfloat#>            PHPasinhfloatfloat"=            PHPasinfloatfloat#<            PHPacoshfloatfloat";            PHPacosfloatfloat):            PHPabsint,floatint,float69 A           PHPlibxml_use_internal_errorsboolbool:8 A           PHPlibxml_set_streams_contextvoidresource=7 O            PHPlibxml_set_external_entity_loadercallable/6 7            PHPlibxml_get_last_errorobject%5 /             PHPlibxml_get_errors    D fBtO)uN)    p D          )c          PHProundfloatfloatintint!b           PHPrandintintint%a            PHPrad2degfloatfloat&`           PHPpowfloatfloatfloat_             PHPpifloat#^            PHPoctdecintstring"]            PHPmt_srandoidint$\           PHPmt_randintintint$[ '            PHPmt_getrandmaxintZ             PHPminarrayY             PHPmaxarray&X           PHPlogfloatfloatfloat#W            PHPlog1pfloatfloat#V            PHPlog10floatfloat"U             PHPlcg_valuefloat$T            PHPis_nanfloatfloat)S #           PHPis_infinitefloatfloat'R            PHPis_finitefloatfloat(Q           PHPhypotfloatfloatfloat#P            PHPhexdecintstring!O !            PHPgetrandmaxint'N           PHPfmodfloatfloatfloat#M            PHPfloorfloatfloat#L            PHPexpm1floatfloat!K            PHPexpfloatfloat    b oK&Qk9   b                                                  5w         PHPmb_strposintstringstringintstring,v           PHPmb_strlenintstringstring6u 9           PHPmb_preferred_mime_namestringstring4t /          PHPmb_output_handlerstringstringint/s %          PHPmb_parse_strboolstringarray+r ;             PHPmb_substitute_character#q +             PHPmb_detect_order.p )           PHPmb_http_outputstringstring'o '            PHPmb_http_inputstring4n 5           PHPmb_internal_encodingstringstring+m #           PHPmb_languagestringstring3l '          PHPmb_strtolowerstringstringstring3k '          PHPmb_strtoupperstringstringstring8j +         PHPmb_convert_casestringstringintstring"i            PHPtanhfloatfloat!h            PHPtanfloatfloat g            PHPsrandvoidint"f            PHPsqrtfloatfloat"e            PHPsinhfloatfloat!d            PHPsinfloatfloat    @ l+s8 U   ~ @                      ; +         PHPmb_convert_kanastringstringstringstring2 3           PHPmb_encoding_aliasesarraystring* /            PHPmb_list_encodingsarray6 1          PHPmb_detect_encodingstringstringbool9 3          PHPmb_convert_encodingstringstringstring? '       PHPmb_strimwidthstringstringintintstringstring. #          PHPmb_strwidthintstringstring5         PHPmb_strcutstringstringintintstring5          PHPmb_substrstringstringintintstring8 +         PHPmb_substr_countintstringstringstring;~ #        PHPmb_strrichrstringstringstringboolstring:} !        PHPmb_stristrstringstringstringboolstring:| !        PHPmb_strrchrstringstringstringboolstring>{ #        PHPmb_strstrstring,boolstringstringboolstring7z #        PHPmb_strriposintstringstringintstringy !             PHPmb_stripos6x !        PHPmb_strrposintstringstringintstring    U }AvD   U                                               0          PHPmb_splitarraystringstringintB -        PHPmb_eregi_replacestringstringstringstringstringA +        PHPmb_ereg_replacestringstringstringstringstring0          PHPmb_eregiintstringstringarray/          PHPmb_eregintstringstringarray4 5           PHPmb_regex_set_optionsstringstring1 /           PHPmb_regex_encodingstringstring5 /          PHPmb_check_encodingboolstringstring% #            PHPmb_get_infostringB %       PHPmb_send_mailboolstringstringstringstringstringB ;         PHPmb_decode_numericentitystringstringarraystringF ;        PHPmb_encode_numericentitystringstringarraystringboolf 5%33        PHPmb_convert_variablesstringstringarray,stringstring,array,objectstring,array,object4
 5           PHPmb_decode_mimeheaderstringstringI	 5       PHPmb_encode_mimeheaderstringstringstringstringstringint    B Wq>T$    B                        :+ Q            PHPmcrypt_enc_is_block_algorithm_modebool;* Q            PHPmcrypt_enc_get_supported_key_sizesarray3) ?            PHPmcrypt_enc_get_modes_namestring.( ;            PHPmcrypt_enc_get_key_sizeint-' 9            PHPmcrypt_enc_get_iv_sizeint0& ?            PHPmcrypt_enc_get_block_sizeint8% I            PHPmcrypt_enc_get_algorithms_namestringF# )       PHPmcrypt_decryptstringstringstringstringstringstring0" -          PHPmcrypt_create_ivstringintint0 7           PHPmb_ereg_search_setposboolint, 7            PHPmb_ereg_search_getposint4 9!            PHPmb_ereg_search_getregsarray,bool= 3         PHPmb_ereg_search_initboolstringstringstring= 3!          PHPmb_ereg_search_regsarray,boolstringstring7 1          PHPmb_ereg_search_posarraystringstring2 )          PHPmb_ereg_searchboolstringstring7 '         PHPmb_ereg_matchboolstringstringstring    - gIg4  z -   J= W          PHPmcrypt_module_get_supported_key_sizesarraystringstringB< K          PHPmcrypt_module_get_algo_key_sizeintstringstringD; O          PHPmcrypt_module_get_algo_block_sizeintstringstring+: 3            PHPmcrypt_module_closebool09 /           PHPmcrypt_list_modesarraystring58 9           PHPmcrypt_list_algorithmsarraystring67 3          PHPmcrypt_get_key_sizeintstringstring56 1          PHPmcrypt_get_iv_sizeintstringstring65 9           PHPmcrypt_get_cipher_namestringstring84 7          PHPmcrypt_get_block_sizeintstringstring.3 )           PHPmcrypt_genericstringstring62 3          PHPmcrypt_generic_initintstringstring-0 7            PHPmcrypt_generic_deinitboolF/ )       PHPmcrypt_encryptstringstringstringstringstringstring+. 5            PHPmcrypt_enc_self_testint0- =            PHPmcrypt_enc_is_block_modebool5, G            PHPmcrypt_enc_is_block_algorithmbool    < m+qD^2   ~ <                ?P '        PHPmssql_connectresourcestringstringstringbool#O #            PHPmssql_closebool6N !       PHPmssql_bindboolstringintboolboolint%M #            PHPbson_encodestring*L #           PHPbson_decodearraystring)K 1            PHPming_useswfversionint(J /            PHPming_useconstantsint-I 9            PHPming_setswfcompressionint+H '           PHPming_setscalefloatfloat-G 9            PHPming_setcubicthresholdint*F '           PHPming_keypressintstring*E )           PHPmemcache_debugboolbool0D -           PHPmdecrypt_genericstringstring;B ;          PHPmcrypt_module_self_testboolstringstringFA 1        PHPmcrypt_module_openresourcestringstringstringstring?@ C          PHPmcrypt_module_is_block_modeboolstringstringD? M          PHPmcrypt_module_is_block_algorithmboolstringstringI> W          PHPmcrypt_module_is_block_algorithm_modeboolstringstring    T {N#i9M    T                                    )d /            PHPmssql_next_resultbool1c A            PHPmssql_min_message_severityint/b =            PHPmssql_min_error_severityint,a !           PHPmssql_initresourcestring5` /          PHPmssql_guid_stringstringstringbool0_ 9            PHPmssql_get_last_messagestring,^ 5            PHPmssql_free_statementbool)] /            PHPmssql_free_resultbool-\ -           PHPmssql_field_typestringint+[ -           PHPmssql_field_seekboolint-Z -           PHPmssql_field_namestringint,Y 1           PHPmssql_field_lengthintint(X +            PHPmssql_fetch_rowarray,W 1            PHPmssql_fetch_objectobject.V /           PHPmssql_fetch_fieldobjectint(U /            PHPmssql_fetch_batchint*T /            PHPmssql_fetch_assocarray-S /           PHPmssql_fetch_arrayarrayint%R '            PHPmssql_executebool*Q +           PHPmssql_data_seekboolint    Z k@X2c5    Z                                          .z /           PHPmysql_fetch_fieldobjectint*y /            PHPmysql_fetch_assocarray-x /           PHPmysql_fetch_arrayarrayint%v #            PHPmysql_errorstring"u #            PHPmysql_errnoint+t '           PHPmysql_drop_dbboolstring*r '           PHPmysql_db_namestringint*q +           PHPmysql_data_seekboolint-p +           PHPmysql_create_dbboolstringBo '       PHPmysql_connectresourcestringstringstringboolint#n #            PHPmysql_closebool/m 7            PHPmysql_client_encodingstring*l 3            PHPmysql_affected_rowsint-k +           PHPmssql_select_dbboolstring*j 3            PHPmssql_rows_affectedint)i %           PHPmssql_resultstringint(h #           PHPmssql_querystringint@g )        PHPmssql_pconnectresourcestringstringstringbool%f )            PHPmssql_num_rowsint'e -            PHPmssql_num_fieldsint    C l;P$b;   m C                   ' -            PHPmysql_num_fieldsint3 /           PHPmysql_list_tablesresourcestring0 5            PHPmysql_list_processesresource9 /          PHPmysql_list_fieldsresourcestringstring&
 +            PHPmysql_insert_idint$	 !            PHPmysql_infostring/ 7            PHPmysql_get_server_infostring+ 5            PHPmysql_get_proto_infoint- 3            PHPmysql_get_host_infostring/ 7            PHPmysql_get_client_infostring) /            PHPmysql_free_resultbool- -           PHPmysql_field_typestringint. /           PHPmysql_field_tablestringint+ -           PHPmysql_field_seekboolint-  -           PHPmysql_field_namestringint) +           PHPmysql_field_lenintint.~ /           PHPmysql_field_flagsstringint(} +            PHPmysql_fetch_rowarray7| 1          PHPmysql_fetch_objectobjectstringarray,{ 3            PHPmysql_fetch_lengthsarray    D qAxQ"{[<    f D                % #             PHPmysqli_info$              mysqliinit/# 9            PHPmysqli_get_cache_statsarray(" 5             PHPmysqli_stmt::execute,! %           PHPmysqli_errorstringmysqli)  %           PHPmysqli_errnointmysqli              mysqlidebug              mysqlicommit              mysqliclose! !             mysqliautocommit8 9           PHPmysql_unbuffered_queryresourcestring& +            PHPmysql_thread_idint, +           PHPmysql_tablenamestringint$ !            PHPmysql_statstring/ /           PHPmysql_set_charsetboolstring- +           PHPmysql_select_dbboolstring) %           PHPmysql_resultstringint8 =           PHPmysql_real_escape_stringstringstring- #           PHPmysql_queryresourcestring" !            PHPmysql_pingbool? )        PHPmysql_pconnectresourcestringstringstringint% )            PHPmysql_num_rowsint    k dE#b7a*    k                                                       I; 7        PHPodbc_columnprivilegesresourcestringstringstringstring: !             PHPodbc_close"9 )             PHPodbc_close_all*8 %          PHPodbc_binmodeboolintint47 +          PHPodbc_autocommitmixedresourcebool6              mysqlirefresh5              mysqlistat/4 +           PHPmysqli_sqlstatestringmysqli93 5#           PHPmysqli_stmt_sqlstatestringmysqli_stmt&2 1             PHPmysqli_stmt::reset(1 5             PHPmysqli_stmt::prepare&0 1             PHPmysqli_stmt::fetch6/ /#           PHPmysqli_stmt_errorstringmysqli_stmt3. /#           PHPmysqli_stmt_errnointmysqli_stmt&- 1             PHPmysqli_stmt::close,              mysqlirollback+              mysqliquery*              mysqliprepare)              mysqlipoll(              mysqliping'              mysqlioptions&              mysqlikill    X W/ ~R d5   X                                          PN -      PHPodbc_foreignkeysresourcestringstringstringstringstringstring,M +           PHPodbc_field_typestringint*L -           PHPodbc_field_scaleintint+K )           PHPodbc_field_numintstring,J +           PHPodbc_field_namestringint(I )           PHPodbc_field_lenintint)H )           PHPodbc_fetch_rowboolint1G /          PHPodbc_fetch_objectobjectintint.F +          PHPodbc_fetch_intointarrayint/E -          PHPodbc_fetch_arrayarrayintint)D %           PHPodbc_executeboolarray.C           PHPodbc_execresourcestringint'B '            PHPodbc_errormsgstring$A !            PHPodbc_errorstring,@ -           PHPodbc_data_sourcearrayint%? #            PHPodbc_cursorstring=> %        PHPodbc_connectresourcestringstringstringint#= #            PHPodbc_commitbool@< %        PHPodbc_columnsresourcestringstringstringstring    5 rGDg?  z 5         B` 5         PHPodbc_tableprivilegesresourcestringstringstringC_ +       PHPodbc_statisticsresourcestringstringstringintintJ^ 3      PHPodbc_specialcolumnsresourceintstringstringstringintint/] )         PHPodbc_setoptionboolintintint%\ '            PHPodbc_rollbackbool[ #             PHPodbc_result,Z +           PHPodbc_result_allintstring=Y +         PHPodbc_proceduresresourcestringstringstringIX 7        PHPodbc_procedurecolumnsresourcestringstringstringstring>W -         PHPodbc_primarykeysresourcestringstringstring.V %           PHPodbc_prepareresourcestring>U '        PHPodbc_pconnectresourcestringstringstringint$T '            PHPodbc_num_rowsint&S +            PHPodbc_num_fieldsint(R -            PHPodbc_next_resultbool.Q -          PHPodbc_longreadlenboolintint/P -           PHPodbc_gettypeinforesourceint(O -            PHPodbc_free_resultbool    c Gg-r+    c                                                           3p 9           PHPopenssl_get_md_methodsarraybool7o A           PHPopenssl_get_cipher_methodsarraybool$n -             PHPopenssl_free_key.m 5            PHPopenssl_error_stringstringDl +       PHPopenssl_encryptstringstringstringstringintstring8k )         PHPopenssl_digeststringstringstringbool6j 9           PHPopenssl_dh_compute_keystringstringDi +       PHPopenssl_decryptstringstringstringstringintstring7h -         PHPopenssl_csr_signresourceintarrayint>g +        PHPopenssl_csr_newboolarrayresourcearrayarray4f ;           PHPopenssl_csr_get_subjectarraybool.e A             PHPopenssl_csr_get_public_key4d 1          PHPopenssl_csr_exportboolstringbool<c A          PHPopenssl_csr_export_to_fileboolstringbool5b =           PHPopenssl_cipher_iv_lengthintstring?a #        PHPodbc_tablesresourcestringstringstringstring    6 iv:]   y 6                  @~ =          PHPopenssl_pkey_get_privateresourcestringstring6} =!            PHPopenssl_pkey_get_detailsarray,bool(| /            PHPopenssl_pkey_freeint6{ 3          PHPopenssl_pkey_exportboolstringarrayDz C         PHPopenssl_pkey_export_to_fileboolstringstringarrayLy 5      PHPopenssl_pkcs7_verifyboolstringintstringarraystringstringDx 1       PHPopenssl_pkcs7_signboolstringstringarrayintstringDw 7       PHPopenssl_pkcs7_encryptboolstringstringarrayintint9v 7          PHPopenssl_pkcs7_decryptboolstringstring<u 3         PHPopenssl_pkcs12_readboolstringarraystringSt 7 7       PHPopenssl_pkcs12_exportboolstringstring,array,resourcestringarray[s G 7       PHPopenssl_pkcs12_export_to_fileboolstringstring,array,resourcestringarray@r )       PHPopenssl_pbkdf2stringstringstringintintstringQq %7       PHPopenssl_openboolstringstringstringstring,array,resourcestring    + UUs2    [ + - /            PHPopenssl_x509_readresource4 1!           PHPopenssl_x509_parsearray,boolbool% /             PHPopenssl_x509_free5 3          PHPopenssl_x509_exportboolstringbool= C          PHPopenssl_x509_export_to_fileboolstringbool>
 ?         PHPopenssl_x509_checkpurposeintintarraystring6	 I            PHPopenssl_x509_check_private_keybool1 )          PHPopenssl_verifyintstringstring0 %          PHPopenssl_signboolstringstring? %       PHPopenssl_sealintstringstringarrayarraystring< C          PHPopenssl_random_pseudo_bytesstringintbool= 9         PHPopenssl_public_encryptboolstringstringint= 9         PHPopenssl_public_decryptboolstringstringint> ;         PHPopenssl_private_encryptboolstringstringint> ;         PHPopenssl_private_decryptboolstringstringint1  -           PHPopenssl_pkey_newresourcearray3 ;            PHPopenssl_pkey_get_publicresource    7 Q HzE    b 7       (# )           PHPpcntl_wtermsigintint(" )           PHPpcntl_wstopsigintint+! -           PHPpcntl_wifstoppedboolint,  /           PHPpcntl_wifsignaledboolint* +           PHPpcntl_wifexitedboolint+ /           PHPpcntl_wexitstatusintint2 '        PHPpcntl_waitpidintintintintarray, !         PHPpcntl_waitintintintarray+ )           PHPpcntl_strerrorstringint2 /          PHPpcntl_sigwaitinfointarrayarray9 1        PHPpcntl_sigtimedwaitintarrayarrayintint6 /         PHPpcntl_sigprocmaskboolintarrayarray7 %%         PHPpcntl_signalboolintcallable,intbool- 7            PHPpcntl_signal_dispatchbool2 /         PHPpcntl_setpriorityboolintintint. /          PHPpcntl_getpriorityintintint+ 5            PHPpcntl_get_last_errorint! !            PHPpcntl_forkint2 !         PHPpcntl_execboolstringarrayarray% #           PHPpcntl_alarmintint    ; c7lC}K    ;             C6 %       PHPpg_copy_fromboolresourcestringarraystringstring15 !         PHPpg_convertarraystringarrayint(4 5             PHPpg_connection_status33 3           PHPpg_connection_resetboolresource22 1           PHPpg_connection_busyboolresource/1 !          PHPpg_connectresourcestringint(0            PHPpg_closeboolresource4/ 1           PHPpg_client_encodingstringresource/. +           PHPpg_cancel_queryboolresource/- -           PHPpg_affected_rowsintresource&, +            PHPpreg_last_errorint0+          PHPpreg_greparraystringarrayint0* !          PHPpreg_quotestringstringstring:) !        PHPpreg_splitarraystringstringint,nullint%( #           PHPpreg_filterintint)' 7             PHPpreg_replace_callback & %             PHPpreg_replace<% )       PHPpreg_match_allintstringstringarrayintint8$ !       PHPpreg_matchintstringstringarrayintint    N d6F
g2    N                                    9G -!          PHPpg_field_is_nullintresourcestring,int3F %         PHPpg_fetch_rowarrayresourceintint5E + !          PHPpg_fetch_resultresourcestring,int7D +         PHPpg_fetch_objectobjectresourceintint2C )          PHPpg_fetch_assocarrayresourceint5B )         PHPpg_fetch_arrayarrayresourceintint-A %           PHPpg_fetch_allarrayresource8@ 5          PHPpg_fetch_all_columnsarrayresourceint9? !         PHPpg_executeresourceresourcestringarray8> -          PHPpg_escape_stringstringresourcestring9= /          PHPpg_escape_literalstringresourcestring<< 5          PHPpg_escape_identifierstringresourcestring7; +          PHPpg_escape_byteastringresourcestring+: #           PHPpg_end_copyboolresource+9           PHPpg_deletestringarrayint+8            PHPpg_dbnamestringresource=7 !        PHPpg_copy_toarrayresourcestringstringstring    D f4['m;   | D                      5Z %         PHPpg_lo_exportboolresourceintstring+Y %           PHPpg_lo_createintresource+X #           PHPpg_lo_closeboolresource-W #           PHPpg_last_oidstringresource0V )           PHPpg_last_noticestringresource/U '           PHPpg_last_errorstringresource3T          PHPpg_insertresourcestringarrayint)S            PHPpg_hoststringresource)R '            PHPpg_get_resultresource)Q !           PHPpg_get_pidintresource1P '          PHPpg_get_notifyarrayresourceint.O )           PHPpg_free_resultboolresource2N '          PHPpg_field_typestringresourceint6M /          PHPpg_field_type_oidstringresourceint7L )         PHPpg_field_tablestringresourceintbool/K '          PHPpg_field_sizeintresourceint.J +           PHPpg_field_prtlenintresource1I %          PHPpg_field_numintresourcestring2H '          PHPpg_field_namestringresourceint    K b0k5p-    K                               :l !         PHPpg_prepareresourceresourcestringstring&k            PHPpg_portintresource'j            PHPpg_pingboolresourceOi #!      PHPpg_pconnectresourcestringstringstring,intstringstringstring@h 3#          PHPpg_parameter_statusstring,boolresourcestring,g !           PHPpg_optionsstringresource*f #           PHPpg_num_rowsintresource,e '           PHPpg_num_fieldsintresource7d %         PHPpg_meta_dataarrayresourcestringbool3c #         PHPpg_lo_writeintresourcestringint/b %          PHPpg_lo_unlinkboolresourceint1a )          PHPpg_lo_truncateboolresourceint)` !           PHPpg_lo_tellintresource0_ !         PHPpg_lo_seekboolresourceintint/^ !          PHPpg_lo_readstringresourceint-] )           PHPpg_lo_read_allintresource7\ !         PHPpg_lo_openresourceresourceintstring1[ %          PHPpg_lo_importintresourcestring    8 Vp:}G	   c 8              (}            PHPpg_ttystringresource1| 7            PHPpg_transaction_statusresource4{          PHPpg_traceboolstringstringresource8z 9          PHPpg_set_error_verbosityintresourceint;y 9          PHPpg_set_client_encodingintresourcestring3x '          PHPpg_send_queryboolresourcestring?w 5         PHPpg_send_query_paramsboolresourcestringarray;v +         PHPpg_send_prepareboolresourcestringstring:u +         PHPpg_send_executeboolresourcestringarray3t          PHPpg_selectresourcestringarrayint4s -          PHPpg_result_statusmixedresourceint1r )          PHPpg_result_seekboolresourceint6q +#           PHPpg_result_errorstring,boolresource?p 7#          PHPpg_result_error_fieldstring,boolresourceint2o           PHPpg_queryresourceresourcestring>n +         PHPpg_query_paramsresourceresourcestringarray1m #          PHPpg_put_lineboolresourcestring    B d6vE)u8    q B                  ,           PHPmd5_filestringstringbool'           PHPmd5stringstringbool-           PHPsha1_filestringstringbool(           PHPsha1stringstringbool? A         PHPget_html_translation_tablearrayintintstring: ;          PHPhtmlspecialchars_decodestringstringint9 %        PHPhtmlentitiesstringstringintstringbool= -        PHPhtmlspecialcharsstringstringintstringbool5
         PHPwordwrapstringstringintstringbool	              PHPflush. -           PHPtime_sleep_untilfloatfloat2 )!          PHPtime_nanosleeparray,boolintint             PHPusleepint              PHPsleep'            PHPbin2hexstringstring"             PHPconstantstring+ !           PHPpg_versionarrayresource8          PHPpg_updateresourcestringarrayarrayint* !           PHPpg_untraceboolresource1~ /           PHPpg_unescape_byteastringstring    < yG^2wI+    h <          )D            PHPquotemetastringstring"C )             PHPsubstr_replace0A %          PHPmoney_formatfloatstringfloat*@           PHPstrcollintstringstring;? )       PHPsubstr_compareintstringstringintintbool>              PHPstrpbrk+=           PHPstr_splitarraystringint1< )          PHPstr_word_countstringintstring%; #            PHPstr_shufflestring-7 '           PHPstripcslashesstringstring,6 %           PHPstripslashesstringstring)2           PHPnl2brstringstringbool*1           PHPhebrevcstringstringint)0           PHPhebrevstringstringint&/            PHPstrrevstringstring1( #          PHPstrtokstring,boolstringstring0'         PHPstrcspnintstringstringintint/&         PHPstrspnintstringstringintint0$ '          PHPstrnatcasecmpintstringstring,#           PHPstrnatcmpintstringstring"            PHPcrc32intstring    2 |Be8
l=	    ] 2(^            PHPparse_strstringarray.[ #          PHPlevenshteinintstringstring'Z            PHPsoundexstringstring(Y #           PHPnl_langinfostringint#X !            PHPlocaleconvarray1W #          PHPsetlocalestring,boolintstring,V           PHPimplodestringstringarray/U          PHPexplodearraystringstringint6T %         PHPsimilar_textfloatstringstringfloat0S !          PHPstrip_tagsstringstringstring+R           PHPltrimstringstringstring*Q           PHPtrimstringstringstring4P #         PHPchunk_splitstringstringintstring-N !          PHPstr_repeatstringstringint#M %            PHPstr_ireplaceintL #             PHPstr_replace+K           PHPrtrimstringstringstring7H %         PHPstrtrstringstringstring,arraystring-G           PHPucwordsstringstringstring'F            PHPlcfirststringstring'E            PHPucfirststringstring    W b<[/].   x W                                       y !             PHPshell_exec%x            PHPpassthrustringint.w )           PHPescapeshellargstringstring.v )           PHPescapeshellcmdstringstring)u           PHPsystemstringstringint,t          PHPexecstringstringarrayintEn -%        PHPhttp_build_querystringarray,objectstringstringint,m %           PHPrawurldecodestringstring,l %           PHPrawurlencodestringstring)k            PHPurldecodestringstring)j            PHPurlencodestringstring&i            PHPparse_urlstringint,g           PHPsscanfstringstringstring*f           PHPvfprintfintstringarray-d           PHPvsprintfstringstringarray)c           PHPvprintfintstringarray#b            PHPprintfintstring'a            PHPsprintfstringstring3`         PHPstr_padstringstringintstringint;_ !        PHPstr_getcsvarraystringstringstringstring    3 h=e1oC%    m 3 7G ;           PHPquoted_printable_encodestringstring7F ;           PHPquoted_printable_decodestringstring*E           PHPuniqidstringstringbool'A )            PHPsys_getloadavgarray$=            PHPlong2ipstringint<              PHPip2long);            PHPinet_ptonstringstring):            PHPinet_ntopstringstring0 -           PHPconvert_uudecodestringstring0 -           PHPconvert_uuencodestringstring- '           PHPbase64_encodestringstring1 '          PHPbase64_decodestringstringbool- -           PHPgetprotobynumberstringint" )             PHPgetprotobyname5 '#          PHPgetservbyportstring,boolintstring! '             PHPgetservbyname$~            PHPproc_niceboolint(} +            PHPproc_get_statusarray)| )           PHPproc_terminateboolint!{ !            PHPproc_closeintEz       PHPproc_openresourcestringarrayarraystringarrayarray    [ G"N(o6    [                                             9d -#          PHPhighlight_stringstring,boolstringbool0c )          PHPhighlight_fileboolstringbool2b =            PHPunregister_tick_functionstring4a 9           PHPregister_tick_functionboolstring6` A            PHPregister_shutdown_functioncallable]             PHPprint_rbool#\ +             PHPdebug_zval_dump"[ !            PHPvar_exportboolZ              PHPvar_dump*Y #           PHPunserializestringarray#X             PHPserializestring:W ?           PHPforward_static_call_arraycallablearray/V 3            PHPforward_static_callcallable5S 5           PHPcall_user_func_arraycallablearray*R )            PHPcall_user_funccallable"Q )             PHPerror_get_last6P         PHPerror_logboolstringintstringstring<O =          PHPimport_request_variablesboolstringstring>H 1         PHPconvert_cyr_stringstringstringstringstring    3 8`5qI    z W 3 !             PHPgettypestring              PHPstrvalstring!             PHPfloatvalfloat             PHPintvalintint"  )             PHPdns_get_record/          PHPgetmxrrboolstringarrayarray.~ !          PHPcheckdnsrrboolstringstring%} #            PHPgethostnamestring2| )!           PHPgethostbynamelarray,boolstring-{ '           PHPgethostbynamestringstring-z '           PHPgethostbyaddrstringstring,u /           PHPignore_user_abortintbool(t /            PHPconnection_statusint)s 1            PHPconnection_abortedint%r %            PHPheaders_listarray-q %          PHPheaders_sentboolstringint'p '            PHPheader_removestring'o           PHPheaderstringboolintGn %     PHPsetrawcookieboolstringstringintstringstringboolboolDm      PHPsetcookieboolstringstringintstringstringboolbool4e 5           PHPphp_strip_whitespacestringstring    j nK*v:k.   j                                                            ;3 A           PHPstream_context_get_defaultresourcearray;2 A           PHPstream_context_get_optionsarrayresourceE1 ?         PHPstream_context_set_optionboolresourcestringstring:0 ?           PHPstream_context_get_paramsarrayresource>/ ?          PHPstream_context_set_paramsboolresourcearray;. 7          PHPstream_context_createresourcearrayarrayM- '!!       PHPstream_selectintarrayarray,nullarray,nullint,nullint,null9 #%         PHPis_callableboolstring,arrayboolstring!             PHPis_scalarbool!             PHPis_objectbool              PHPis_arraybool!             PHPis_stringbool" !            PHPis_numericbool
             PHPis_intbool 	             PHPis_floatbool             PHPis_boolbool# #            PHPis_resourcebool             PHPis_nullbool%            PHPsettypeboolstring    * w-j'\   h *    ;B 3         PHPstream_get_contentsstringresourceintint:A 7         PHPstream_copy_to_streamintresourceintint4@ 1         PHPstream_socket_pairarrayintintint9? 9          PHPstream_socket_shutdownboolresourceintA> C         PHPstream_socket_enable_cryptointresourceboolintB= 5        PHPstream_socket_sendtointresourcestringintstringD< 9        PHPstream_socket_recvfromstringresourceintintstring<; 9          PHPstream_socket_get_namestringresourcebool@: 5         PHPstream_socket_acceptfloatresourcefloatstringB9 5        PHPstream_socket_serverresourcestringintstringintD8 5       PHPstream_socket_clientfloatstringintstringfloatint47 5           PHPstream_filter_removeboolresourceG6 5        PHPstream_filter_appendresourceresourcestringintstringH5 7        PHPstream_filter_prependresourceresourcestringintstring;4 A           PHPstream_context_set_defaultresourcearray    8 [q0O   t 8              9X        PHPfsockopenfloatstringintintstringfloat8U 1         PHPstream_set_timeoutboolresourceintint-T #          PHPget_headersarraystringint/S +           PHPstream_is_localboolresource;R C           PHPstream_resolve_include_pathstringstring6Q 7           PHPstream_get_transportsarrayresource4P 3           PHPstream_get_wrappersarrayresource4O 9           PHPstream_wrapper_restoreboolstring7N ?           PHPstream_wrapper_unregisterboolstring>M ;         PHPstream_wrapper_registerboolstringstringint:L +         PHPstream_get_linestringresourceintstring5K 5           PHPstream_get_meta_dataarrayresource6J 3          PHPstream_set_blockingboolresourceint9I ;          PHPstream_set_write_bufferintresourceint8H 9          PHPstream_set_read_bufferintresourceint0G '          PHPget_meta_tagsarraystringbool4C 5           PHPstream_supports_lockboolresource    @ nBxR&f7    n @        + %#            PHPob_get_flushstring,bool$ %            PHPob_end_cleanbool$ %            PHPob_end_flushbool              PHPob_cleanbool              PHPob_flushbool2 %         PHPob_startboolstring,arrayintint,           PHPmetaphonestringstringint              PHPcloselogbool'           PHPsyslogboolintstring+          PHPopenlogboolstringintint' !           PHPezmlm_hashintstring              PHPmail)e           PHPscandirarraystringint#d            PHPdirobjectstring!c             PHPreaddirstringb              PHPrewinddira              PHPgetcwd#`            PHPchdirboolstring_              PHPclosedir!^             PHPopendirstring)\ #           PHPget_browserstringbool+[           PHPunpackarraystringstring$Z            PHPpackstringstring:Y !       PHPpfsockopenfloatstringintintstringfloat    = d3Qd&    d =             $s '            PHPposix_getppidint#r %            PHPposix_getpidint(q !          PHPposix_killboolintint1o ?            PHPoutput_reset_rewrite_varsbool:n 9          PHPoutput_add_rewrite_varboolstringstring;m /          PHPstream_bucket_newresourceresourcestring4l 5           PHPstream_bucket_appendvoidresource5k 7           PHPstream_bucket_prependvoidresource>j E           PHPstream_bucket_make_writeableobjectresource:i 9          PHPstream_filter_registerboolstringstring3h 1           PHPstream_get_filtersarrayresource)g            PHPstr_rot13stringstring'f           PHPftokintstringstring$ -             PHPob_list_handlers, /           PHPob_implicit_flushvoidint. +#            PHPob_get_contentsstring,bool! '             PHPob_get_status# %            PHPob_get_levelint! '             PHPob_get_length+ %#            PHPob_get_cleanstring,bool    c ^8f7iB    c                                               -	 %          PHPposix_mkfifoboolstringint& %            PHPposix_getcwdstring' %           PHPposix_isattyboolint/ '#           PHPposix_ttynamestring,boolint' '            PHPposix_ctermidstring$ #            PHPposix_timesarray$ #            PHPposix_unamearray& %           PHPposix_getsidintint' '           PHPposix_getpgidintint+  '          PHPposix_setpgidboolintint# %            PHPposix_setsidint,~ '           PHPposix_getpgrpintresource(} )            PHPposix_getloginstring(| +            PHPposix_getgroupsarray({ '           PHPposix_setegidboolint$z '            PHPposix_getegidint'y %           PHPposix_setgidboolint#x %            PHPposix_getgidint(w '           PHPposix_seteuidboolint$v '            PHPposix_geteuidint'u %           PHPposix_setuidboolint#t %            PHPposix_getuidint    G f9~PV    x G                         .         PHPmsg_sendboolintboolboolint/ '          PHPmsg_get_queueresourceintint< E           PHPreadline_completion_functionboolcallable4 9           PHPreadline_write_historyboolstring3 7           PHPreadline_read_historyboolstring. 9            PHPreadline_clear_historybool2 5           PHPreadline_add_historyboolstring- '           PHPreadline_infostringstring- #           PHPreadlinestringstring,null1 -          PHPposix_initgroupsboolstringint+ )           PHPposix_strerrorstringint+ 5            PHPposix_get_last_errorint( +            PHPposix_getrlimitarray* )           PHPposix_getpwuidarrayint2 )!           PHPposix_getpwnamarray,boolstring* )           PHPposix_getgrgidarrayint2 )!           PHPposix_getgrnamarray,boolstring- %          PHPposix_accessboolstringint2
 #        PHPposix_mknodboolstringintintint    7 vIxF!Y(    l 7   23 ?            PHPsession_get_cookie_paramsarray(2 )            PHPsession_encodestring'1 +            PHPsession_destroybool,0 )           PHPsession_decodeboolstring5/ 7           PHPsession_cache_limiterstringstring.. 5           PHPsession_cache_expireintint), )           PHPshm_remove_varboolint"+ #            PHPshm_get_varint&* #           PHPshm_has_varboolint&) #           PHPshm_put_varboolint"( !            PHPshm_detachbool"' !            PHPshm_removebool/& !         PHPshm_attachresourceintintint"% !            PHPsem_removebool#$ #            PHPsem_releasebool## #            PHPsem_acquirebool/"         PHPsem_getresourceintintintint+! -           PHPmsg_queue_existsboolint*  '           PHPmsg_set_queueboolarray' )            PHPmsg_stat_queuearray( -            PHPmsg_remove_queuebool2 #       PHPmsg_receiveintintintboolintint    1 n:
4^.	    ] 1 )J 7             PHPsimplexml_load_string'I 3             PHPsimplexml_load_file'H %           PHPshmop_deleteboolint.G #         PHPshmop_writeintintstringint$F !           PHPshmop_sizeintint"E #            PHPshmop_closeint-D !         PHPshmop_readstringintintint0C !        PHPshmop_openintintstringintint'B 3             PHPsession_write_close!A '             PHPsession_unset%? )            PHPsession_statusint*> '           PHPsession_startboolarrayX= =     PHPsession_set_save_handlerboolmixedmixedstringstringstringstringstringD< ?        PHPsession_set_cookie_paramsintstringstringboolbool1; /           PHPsession_save_pathstringstring-9 ?             PHPsession_register_shutdown18 7           PHPsession_regenerate_idboolbool,7 %           PHPsession_namestringstring36 3           PHPsession_module_namestringstring*4 !           PHPsession_idstringstring    A q@k:h2    A                     M\     PHPsnmp3_getstringstringstringstringstringstringstringintint3[         PHPsnmp2_setboolstringstringintint5Z +         PHPsnmp2_real_walkstringstringintint0Y !         PHPsnmp2_walkstringstringintint3X '         PHPsnmp2_getnextstringstringintint/W          PHPsnmp2_getstringstringintint1V         PHPsnmpsetboolstringstringintint1U A            PHPsnmp_set_oid_numeric_printint5T A           PHPsnmp_set_oid_output_formatboolint.S 3           PHPsnmp_set_enum_printboolint/R 5           PHPsnmp_set_quick_printboolint,Q 5            PHPsnmp_get_quick_printbool<P #       PHPsnmpwalkoidarraystringstringstringintint2O %         PHPsnmprealwalkstringstringintint.N          PHPsnmpwalkstringstringintint1M #         PHPsnmpgetnextstringstringintint-L          PHPsnmpgetstringstringintint(K 5             PHPsimplexml_import_dom    + [|KO    V + (m '           PHPsocket_listenboolint(l -            PHPsocket_set_blockbool+k 3            PHPsocket_set_nonblockbool)j '            PHPsocket_acceptresource8i 1        PHPsocket_create_pairboolintintintarray6h 5          PHPsocket_create_listenresourceintint2g '         PHPsocket_createresourceintintint9f '       PHPsocket_selectintarrayarrayarrayintint%e '            PHPis_soap_faultbool2d 9           PHPuse_soap_error_handlerboolbool+c '           PHPsnmp_read_mibboolstring.b ;            PHPsnmp_get_valueretrievalint2a ;           PHPsnmp_set_valueretrievalboolintQ`    PHPsnmp3_setboolstringstringstringstringstringstringstringintintS_ +    PHPsnmp3_real_walkstringstringstringstringstringstringstringintintN^ !    PHPsnmp3_walkstringstringstringstringstringstringstringintintQ] '    PHPsnmp3_getnextstringstringstringstringstringstringstringintint    h JS"z?    h                                                          ,  %           PHPspl_autoloadstringstring$ #            PHPspl_classesarray&~ 1             PHPsocket_clear_error(} /            PHPsocket_last_errorint*| +           PHPsocket_shutdownboolint8{ /         PHPsocket_set_optionboolintintint,array+z /           PHPsocket_get_optionintint9y '       PHPsocket_sendtointstringintintstringint;x +       PHPsocket_recvfromintstringintintstringint.w #         PHPsocket_sendintstringintint.v #         PHPsocket_recvintstringintint,u #          PHPsocket_bindboolstringint,t +           PHPsocket_strerrorstringint/s )          PHPsocket_connectboolstringint3r 1          PHPsocket_getpeernameboolstringint3q 1          PHPsocket_getsocknameboolstringint+p #          PHPsocket_readstringintint,o %          PHPsocket_writeintstringint n %             PHPsocket_close    P \/_#uH     P                                    ; 9          PHPsqlite_create_functionstringcallableintD ;         PHPsqlite_create_aggregatestringcallablecallableint% '            PHPsqlite_columnbool  %             PHPsqlite_close% )            PHPsqlite_changesint* 3            PHPsqlite_busy_timeoutint8 1         PHPsqlite_array_queryarraystringintbool= )#         PHPiterator_applyinttraversablecallablearray0
 )#           PHPiterator_countinttraversable9	 /#          PHPiterator_to_arrayarraytraversablebool/ +           PHPspl_object_hashstringobject: -'          PHPclass_implementsarrayobject,stringbool0 '          PHPclass_parentsarrayobjectbool+ /            PHPspl_autoload_callstring* 9             PHPspl_autoload_functions/ ;            PHPspl_autoload_unregisterbool5 7          PHPspl_autoload_registerboolboolbool7 ;           PHPspl_autoload_extensionsstringstring    B e3h)pM"    m B                  (& /            PHPsqlite_num_fieldsint#% #            PHPsqlite_nextbool+$ /            PHPsqlite_libversionstring,# 1            PHPsqlite_libencodingstring/" =            PHPsqlite_last_insert_rowidint(! /            PHPsqlite_last_errorint   %             SQLiteResultkey' +            PHPsqlite_has_prevbool' +            PHPsqlite_has_morebool. /           PHPsqlite_field_namestringint1 3           PHPsqlite_fetch_singlestringbool< 3         PHPsqlite_fetch_objectobjectstringarraybool; ?          PHPsqlite_fetch_column_typesarraystringint2 1          PHPsqlite_fetch_arrayarrayintbool0 -          PHPsqlite_fetch_allarrayintbool" )             PHPsqlite_factory/ #          PHPsqlite_execboolstringstring4 5           PHPsqlite_escape_stringstringstring0 3           PHPsqlite_error_stringstringint. )          PHPsqlite_currentarrayintbool    D d>JwG   | D                      59 )          PHPsqlsrv_connectresourcestringarray38 -          PHPsqlsrv_configureboolstringmixed-7 '           PHPsqlsrv_commitboolresource,6 %           PHPsqlsrv_closeboolresource35 1           PHPsqlsrv_client_infoarrayresource-4 '           PHPsqlsrv_cancelboolresource83 =           PHPsqlsrv_begin_transactionboolresource$2 %            PHPsqlite_validbool31 ;            PHPsqlite_unbuffered_queryresource80 =           PHPsqlite_udf_encode_binarystringstring8/ =           PHPsqlite_udf_decode_binarystringstring:. 3         PHPsqlite_single_queryarraystringboolbool&- #           PHPsqlite_seekboolint%, '            PHPsqlite_rewindbool(+ %            PHPsqlite_queryresource#* #            PHPsqlite_prevbool7) %         PHPsqlite_popenresourcestringintstring6( #         PHPsqlite_openresourcestringintstring&' +            PHPsqlite_num_rowsint    S dzGp=    S                                         3J 5           PHPsqlsrv_rows_affectedintresource/I +           PHPsqlsrv_rollbackboolresource=H %        PHPsqlsrv_querymixedresourcestringarrayarray?G )        PHPsqlsrv_preparemixedresourcestringarrayarray0F +           PHPsqlsrv_num_rowsmixedresource2E /           PHPsqlsrv_num_fieldsmixedresource3D 1           PHPsqlsrv_next_resultmixedresource/C +           PHPsqlsrv_has_rowsboolresource7B -         PHPsqlsrv_get_fieldmixedresourceintint0A /           PHPsqlsrv_get_configmixedstring0@ -           PHPsqlsrv_free_stmtboolresource6? 7           PHPsqlsrv_field_metadatamixedresource3> %         PHPsqlsrv_fetchmixedresourceintintE= 3       PHPsqlsrv_fetch_objectmixedresourcestringarrayintint<< 1        PHPsqlsrv_fetch_arrayarrayresourceintintint.; )           PHPsqlsrv_executeboolresource): '           PHPsqlsrv_errorsmixedint    , XUr?    ` ,  1[ '          PHPssh2_scp_recvboolstringstring9Z 7          PHPssh2_publickey_removeboolstringstring,Y 3            PHPssh2_publickey_listarray/X 3            PHPssh2_publickey_initresource?W 1        PHPssh2_publickey_addboolstringstringboolarray0V ;            PHPssh2_methods_negotiatedarray-U -           PHPssh2_fingerprintstringint0T /           PHPssh2_fetch_streamresourceint?S       PHPssh2_execresourcestringstringarrayintintint;R %        PHPssh2_connectresourcestringintarrayarrayEQ 7        PHPssh2_auth_pubkey_fileboolstringstringstringstring6P 1          PHPssh2_auth_passwordboolstringstring(O )            PHPssh2_auth_nonestringTN =      PHPssh2_auth_hostbased_fileboolstringstringstringstringstringstring5M +          PHPssh2_auth_agentboolresourcestring3L 1           PHPsqlsrv_server_infoarrayresource7K ;           PHPsqlsrv_send_stream_databoolresource    X ]&U%W$    X                                          -] 1           PHPtidy_warning_countinttidy+\ -           PHPtidy_error_countinttidy[              tidydiagnose-Z +           PHPtidy_get_outputstringtidyY              tidygetopt0i #          PHPssh2_tunnelresourcestringint:h !       PHPssh2_shellresourcestringarrayintintint%g             PHPssh2_sftpresource.f -           PHPssh2_sftp_unlinkboolstring5e /          PHPssh2_sftp_symlinkboolstringstring-d )           PHPssh2_sftp_statarraystring-c +           PHPssh2_sftp_rmdirboolstring4b -          PHPssh2_sftp_renameboolstringstring2a 1           PHPssh2_sftp_realpathstringstring2` 1           PHPssh2_sftp_readlinkstringstring4_ +         PHPssh2_sftp_mkdirboolstringintbool.^ +           PHPssh2_sftp_lstatarraystring8] +         PHPssh2_sftp_chmodboolresourcestringint4\ '         PHPssh2_scp_sendboolstringstringint    S n?xL$F    S                                   ,q 7            PHPxmlrpc_server_destroyint0p 5            PHPxmlrpc_server_createresource,o +           PHPxmlrpc_is_faultboolarray3n +          PHPxmlrpc_set_typeboolstringstring)m +            PHPxmlrpc_get_typestring:l 7          PHPxmlrpc_encode_requeststringstringarray)k 7             PHPxmlrpc_decode_request!j '             PHPxmlrpc_decode'i '            PHPxmlrpc_encodestring$h -             PHPwddx_deserialize%g '            PHPwddx_add_varsbool)f +            PHPwddx_packet_endstring3e /           PHPwddx_packet_startresourcestring-d 3            PHPwddx_serialize_varsstring4c 5           PHPwddx_serialize_valuestringstring'b !           PHPtoken_namestringint,a '           PHPtoken_get_allarraystring1` )          PHPob_tidyhandlerstringstringint,_ /           PHPtidy_config_countinttidy,^ /           PHPtidy_access_countinttidy    B ?c=mB    m B                  ( )             XMLWriterstartElementNS( )             XMLWriterfullEndElement$ !             XMLWriterendElement& %             XMLWriterstartElement* -             XMLWriterwriteAttributeNS*  -             XMLWriterstartAttributeNS( )             XMLWriterwriteAttribute&~ %             XMLWriterendAttribute(} )             XMLWriterstartAttribute$| !             XMLWriterendComment&{ %             XMLWriterstartComment)z +             XMLWritersetIndentString#y              XMLWritersetIndent$x !             XMLWriteropenMemory!w              XMLWriteropenURIKv g           PHPxmlrpc_server_register_introspection_callbackboolstring@u U           PHPxmlrpc_server_add_introspection_dataintarray?t M           PHPxmlrpc_parse_method_descriptionsarraystring8s ?           PHPxmlrpc_server_call_methodstringarrayAr G          PHPxmlrpc_server_register_methodboolstringstring    I fB_7uK    r I                 & %             XMLWriterendDTDEntity( )             XMLWriterstartDTDEntity) +             XMLWriterwriteDTDAttlist' '             XMLWriterendDTDAttlist) +             XMLWriterstartDTDAttlist) +             XMLWriterwriteDTDElement' '             XMLWriterendDTDElement) +             XMLWriterstartDTDElement"              XMLWriterwriteDTD               XMLWriterendDTD"              XMLWriterstartDTD& %             XMLWriterwriteComment% #             XMLWriterendDocument' '             XMLWriterstartDocument"              XMLWriterwriteRaw              XMLWritertext$ !             XMLWriterwriteCData"              XMLWriterendCData$ !             XMLWriterstartCData!
              XMLWriterwritePI	              XMLWriterendPI!              XMLWriterstartPI( )             XMLWriterwriteElementNS& %             XMLWriterwriteElement    < U)[- |J    c <          $2             PHPzip_readresource1              PHPzip_close*0            PHPzip_openresourcestring+/           PHPyp_orderintstringstring2.          PHPyp_nextarraystringstringstring4-          PHPyp_matchstringstringstringstring/,           PHPyp_masterstringstringstring/+ 7            PHPyp_get_default_domainstring-*           PHPyp_firstarraystringstring)             PHPyp_errnoint*( '           PHPyp_err_stringstringint+'           PHPyp_catarraystringstring,&           PHPyp_allstringstringstring/% !         PHPyaml_parsestringintintarray3$ )         PHPyaml_parse_urlstringintintarray4# +         PHPyaml_parse_filestringintintarray)"           PHPyaml_emitstringintint2! )         PHPyaml_emit_fileboolstringintint               XMLWriterflush& %             XMLWriteroutputMemory( )             XMLWriterwriteDTDEntity    e yM"hF'W3    e                                                 0H !         PHPgzcompressstringstringintint(G           PHPgzfilearraystringint'F           PHPgzwriteintstringintE             PHPgztellint#D           PHPgzseekintintint!C !            PHPgzpassthruint1B          PHPgzopenresourcestringstringint#A            PHPgzreadstringint*@           PHPgzgetssstringintstring#?            PHPgzgetsstringint >             PHPgzgetcstring=             PHPgzeofint<             PHPgzclosebool ;             PHPgzrewindbool*: !          PHPreadgzfileintstringint59 C            PHPzip_entry_compressionmethodstring/8 =            PHPzip_entry_compressedsizeint(7 )            PHPzip_entry_namestring)6 1            PHPzip_entry_filesizeint+5 )           PHPzip_entry_readstringint'4 +            PHPzip_entry_closebool,3 )           PHPzip_entry_openboolstring    N m<{U/3    k N                                [              PHPsizeof1Z          PHPstristrstringstringstringbool/Y #          PHPstrstrstring,boolstringboolX             PHPemptybool?W      PHPechovoidmixedmixedmixedmixedmixedmixedmixedYV PHPissetboolmixedmixedmixedmixedmixedmixedmixedmixedmixedmixedmixedmixed@U Q           PHPevalbool,string,int,float,array,objectstring*T !           PHPstrtolowerstringstring-S !          PHPstrcasecmpintstringstring#R             PHPstrrposint,bool#Q            PHPstrlenintstring,P          PHPsubstrstringstringintint"O             PHPstrposbool,int3N 5#            PHPzlib_get_coding_typestring,bool4M %#          PHPob_gzhandlerstring,boolstringint.L          PHPgzencodestringstringintint,K           PHPgzinflatestringstringint/J          PHPgzdeflatestringstringintint/I %          PHPgzuncompressstringstringint    K ]1 e1Z"    w K                           ) PHPapd_croakstringstring' %PHPapd_continueboolint) PHPapd_clunkstringstring& 'PHPapd_callstackarray)  )PHPapd_breakpointboolint5 'PHPapache_setenvboolstringstringbool5~ ;!PHPapache_response_headersarray,bool,} 5PHPapache_reset_timeoutbool4| 9!PHPapache_request_headersarray,bool6{ ##PHPapache_notestring,boolstringstring1z /PHPapache_lookup_uriobjectstring1y 1#PHPapache_get_versionstring,bool+x 1PHPapache_get_modulesarray6w '#PHPapache_getenvstring,boolstringbool.v 9PHPapache_child_terminatebool)u +           PHPerror_reportingintint*t !           PHPstrtoupperstringstring'^           PHPunsetboolstringbool ] %             PHPrequire_once&\           PHPis_aboolstringbool    0 c:n(^/    l 0  9 7PHPbcompiler_parse_classboolstringstring0 1PHPbcompiler_load_exeboolstring, )PHPbcompiler_loadboolstring. -PHPbbcode_set_flagsboolintint- 7PHPbbcode_set_arg_parserbool, %PHPbbcode_parsestringstring& )PHPbbcode_destroybool. 'PHPbbcode_createresourcearray5 /PHPbbcode_add_smileyboolstringstring5 1PHPbbcode_add_elementboolstringarrayC EPHPapd_set_session_trace_socketboolstringintintint2 7PHPapd_set_session_traceintstring& +PHPapd_set_sessionint9
 3PHPapd_set_pprof_tracestringstringstring/	 9PHPapd_get_active_symbolsarray& PHPapd_echoboolstring3 APHPapd_dump_regular_resourcesarray6 GPHPapd_dump_persistent_resourcesarray+ ;PHPapd_dump_function_table    5 b*GW&    a 5         )) )PHPbirdstep_fetchboolint-( 'PHPbirdstep_execintintstring9' -PHPbirdstep_connectintstringstringstring*& +PHPbirdstep_commitboolint)% )PHPbirdstep_closeboolint.$ 3PHPbirdstep_autocommitboolint4# )PHPbindtextdomainstringstringstring=" ;PHPbind_textdomain_codesetstringstringstring?! OPHPbcompiler_write_included_filenameboolstring4  9PHPbcompiler_write_headerboolstringA SPHPbcompiler_write_functions_from_fileboolstring6 =PHPbcompiler_write_functionboolstring. 9PHPbcompiler_write_footerbool2 5PHPbcompiler_write_fileboolstring5 APHPbcompiler_write_exe_footerboolint6 =PHPbcompiler_write_constantboolstring9 7PHPbcompiler_write_classboolstringstring& )PHPbcompiler_readbool    1 l7DvB   d 1     0; -%PHPcairo_close_pathcairocontext>: ?%PHPcairo_clip_rectangle_listarraycairocontext39 3%PHPcairo_clip_preservecairocontext78 1%PHPcairo_clip_extentsarraycairocontext*7 !%PHPcairo_clipcairocontext16 =PHPcairo_available_surfacesarray.5 7PHPcairo_available_fontsarrayG4 %PHPcairo_arcfloatfloatfloatfloatfloatfloatcairocontextP3 1%PHPcairo_arc_negativefloatfloatfloatfloatfloatfloatcairocontext:2 /%PHPcairo_append_pathcairopathcairocontext1 PHPboolvalbool90 'PHPblenc_encryptstringstringstringstring,/ /PHPbirdstep_rollbackboolint&. +PHPbirdstep_resultint2- ;PHPbirdstep_off_autocommitboolint., 3PHPbirdstep_freeresultboolint++ /PHPbirdstep_fieldnumintint2* 1PHPbirdstep_fieldnamestringintint    ] z4~H?   ]                                                         HI O-PHPcairo_font_options_get_hint_styleintcairofontoptionsJH S-PHPcairo_font_options_get_hint_metricsintcairofontoptionsGG M-PHPcairo_font_options_get_antialiasintcairofontoptionsPF =--PHPcairo_font_options_equalboolcairofontoptionscairofontoptions:E 9'PHPcairo_font_face_statusintcairofontface<D ='PHPcairo_font_face_get_typeintcairofontface7C 1%PHPcairo_font_extentsarraycairocontext3B 3%PHPcairo_fill_preservecairocontext7A 1%PHPcairo_fill_extentsarraycairocontext*@ !%PHPcairo_fillcairocontextL? G%PHPcairo_device_to_user_distancefloatfloatfloatcairocontextC> 5%PHPcairo_device_to_userfloatfloatfloatcairocontextQ= )%PHPcairo_curve_tofloatfloatfloatfloatfloatfloatfloatcairocontext/< +%PHPcairo_copy_pagecairocontext    O p!?p7    O                                           6W 3%PHPcairo_get_fill_ruleintcairocontext7V 5%PHPcairo_get_dash_countintcairocontext3U )%PHPcairo_get_dasharraycairocontext<T ;%PHPcairo_get_current_pointarraycairocontext6S 3%PHPcairo_get_antialiasintcairocontext:R GPHPcairo_format_stride_for_widthintintint@Q ?-PHPcairo_font_options_statusintcairofontoptionsLP W-PHPcairo_font_options_set_subpixel_ordercairofontoptionsintHO O-PHPcairo_font_options_set_hint_stylecairofontoptionsintJN S-PHPcairo_font_options_set_hint_metricscairofontoptionsintGM M-PHPcairo_font_options_set_antialiascairofontoptionsintLL =--PHPcairo_font_options_mergecairofontoptionscairofontoptions>K ;-PHPcairo_font_options_hashintcairofontoptionsLJ W-PHPcairo_font_options_get_subpixel_orderintcairofontoptions    D Y s@`-   | D                          5h 7%PHPcairo_identity_matrixcairocontext;g ;%PHPcairo_has_current_pointboolcairocontext5f -%PHPcairo_glyph_patharraycairocontext8e 3%PHPcairo_get_tolerancefloatcairocontext0d -%PHPcairo_get_targetcairocontext0c -%PHPcairo_get_sourcecairocontext5b 7%PHPcairo_get_scaled_fontcairocontext5a 1%PHPcairo_get_operatorintcairocontext:` 7%PHPcairo_get_miter_limitfloatcairocontext0_ -%PHPcairo_get_matrixcairocontext9^ 5%PHPcairo_get_line_widthfloatcairocontext6] 3%PHPcairo_get_line_joinintcairocontext5\ 1%PHPcairo_get_line_capintcairocontext6[ 9%PHPcairo_get_group_targetcairocontext6Z 9%PHPcairo_get_font_optionscairocontext5Y 7%PHPcairo_get_font_matrixcairocontext3X 3%PHPcairo_get_font_facecairocontext    U m$SO   U                                                 6v =PHPcairo_matrix_init_rotatefloatfloatHu /PHPcairo_matrix_initfloatfloatfloatfloatfloatfloatfloat4t APHPcairo_matrix_init_identityobject<s ?PHPcairo_matrix_create_scalefloatfloatfloatJr 1%%PHPcairo_mask_surfacecairosurfacestringstringcairocontext6q !%%PHPcairo_maskcairopatterncairocontext9p '%PHPcairo_line_tostringstringcairocontext?o +%PHPcairo_in_strokeboolstringstringcairocontext=n '%PHPcairo_in_fillboolstringstringcairocontextEm G/PHPcairo_image_surface_get_widthintcairoimagesurfaceFl I/PHPcairo_image_surface_get_strideintcairoimagesurfaceFk I/PHPcairo_image_surface_get_heightintcairoimagesurfaceFj I/PHPcairo_image_surface_get_formatintcairoimagesurfaceGi E/PHPcairo_image_surface_get_datastringcairoimagesurface    3 Mz-yD   3             g O5PHPcairo_pattern_add_color_stop_rgbafloatcairogradientpatternfloatfloatfloatfloatfloat7 1%PHPcairo_path_extentsarraycairocontext< 9%PHPcairo_paint_with_alphastringcairocontext+ #%PHPcairo_paintcairocontext2 1%PHPcairo_new_sub_pathcairocontext.  )%PHPcairo_new_pathcairocontext9 '%PHPcairo_move_tostringstringcairocontextD~ 9#PHPcairo_matrix_translatefloatcairomatrixfloatfloatJ} E#PHPcairo_matrix_transform_pointfloatcairomatrixfloatfloatM| K#PHPcairo_matrix_transform_distancefloatcairomatrixfloatfloatA{ 1%PHPcairo_matrix_scalefloatfloatfloatcairocontext<z 3#PHPcairo_matrix_rotatefloatcairomatrixfloat2y 3#PHPcairo_matrix_invertcairomatrix>x CPHPcairo_matrix_init_translatefloatfloatfloat:w ;PHPcairo_matrix_init_scalefloatfloatfloat    _ L{-_$   _                                                             7 5%PHPcairo_pattern_statusintcairopatternC =%#PHPcairo_pattern_set_matrixcairopatterncairomatrixB =3PHPcairo_pattern_set_filtercairosurfacepatternint8 =PHPcairo_pattern_set_extendstringstring9 9%PHPcairo_pattern_get_typeintcairopattern@ 9/PHPcairo_pattern_get_rgbaarraycairosolidpatternL M3PHPcairo_pattern_get_radial_circlesarraycairoradialgradientK K3PHPcairo_pattern_get_linear_pointsarraycairolineargradientB
 =3PHPcairo_pattern_get_filterintcairosurfacepattern5	 =PHPcairo_pattern_get_extendintstringQ O5PHPcairo_pattern_get_color_stop_rgbaarraycairogradientpatternintM Q5PHPcairo_pattern_get_color_stop_countintcairogradientpatterna M5PHPcairo_pattern_add_color_stop_rgbfloatcairogradientpatternfloatfloatfloatfloat    * CM{:   t *    G! +%PHPcairo_rectanglestringstringstringstringcairocontextC  G%PHPcairo_push_group_with_contentstringcairocontext0 -%PHPcairo_push_groupcairocontextJ ?)PHPcairo_ps_surface_set_sizefloatcairopssurfacefloatfloat> =)PHPcairo_ps_surface_set_epscairopssurfaceboolG Q)PHPcairo_ps_surface_restrict_to_levelcairopssurfaceint> =)PHPcairo_ps_surface_get_epsboolcairopssurfaceD E)PHPcairo_ps_surface_dsc_commentcairopssurfacestringB M)PHPcairo_ps_surface_dsc_begin_setupcairopssurfaceG W)PHPcairo_ps_surface_dsc_begin_page_setupcairopssurface5 =PHPcairo_ps_level_to_stringstringint, 3PHPcairo_ps_get_levelsarray9 ?%PHPcairo_pop_group_to_sourcecairocontext/ +%PHPcairo_pop_groupcairocontextL A+PHPcairo_pdf_surface_set_sizefloatcairopdfsurfacefloatfloat    / g'V?   k /         90 3%PHPcairo_set_antialiasstringcairocontextH/ 9%PHPcairo_select_font_facestringstringstringcairocontext7. #%PHPcairo_scalestringstringcairocontextL- I+PHPcairo_scaled_font_text_extentsarraycairoscaledfontstring>, =+PHPcairo_scaled_font_statusintcairoscaledfontL+ K+PHPcairo_scaled_font_glyph_extentsarraycairoscaledfontarray@* A+PHPcairo_scaled_font_get_typeintcairoscaledfontA) ?+PHPcairo_scaled_font_extentsarraycairoscaledfont*( !%PHPcairo_savecairocontext>' %%PHPcairo_rotatestringstringcairocontextstring-& '%PHPcairo_restorecairocontext0% -%PHPcairo_reset_clipcairocontext=$ /%PHPcairo_rel_move_tostringstringcairocontext=# /%PHPcairo_rel_line_tostringstringcairocontextV" 1%PHPcairo_rel_curve_tostringstringstringstringstringstringcairocontext    t E}BM  t                                                                                T> -%%PHPcairo_set_sourcestringstringstringstringcairocontextcairopatternD= 7+%PHPcairo_set_scaled_fontcairoscaledfontcairocontext8< 1%PHPcairo_set_operatorstringcairocontext;; 7%PHPcairo_set_miter_limitstringcairocontext;: -#%PHPcairo_set_matrixcairomatrixcairocontext:9 5%PHPcairo_set_line_widthstringcairocontext98 3%PHPcairo_set_line_joinstringcairocontext87 1%PHPcairo_set_line_capstringcairocontext96 3%PHPcairo_set_font_sizestringcairocontextF5 9-%PHPcairo_set_font_optionscairofontoptionscairocontext@4 7#%PHPcairo_set_font_matrixcairomatrixcairocontext@3 3'%PHPcairo_set_font_facecairofontfacecairocontext92 3%PHPcairo_set_fill_rulestringcairocontext91 )%PHPcairo_set_dasharraystringcairocontext    5 q?p4U   5             [N Q%PHPcairo_surface_mark_dirty_rectanglefloatcairosurfacefloatfloatfloatfloat9M 9%PHPcairo_surface_get_typeintcairosurfaceDL K%PHPcairo_surface_get_device_offsetarraycairosurface<K ?%PHPcairo_surface_get_contentintcairosurface3J 3%PHPcairo_surface_flushcairosurface4I 5%PHPcairo_surface_finishcairosurface7H ;%PHPcairo_surface_copy_pagecairosurface5G 7%PHPcairo_stroke_preservecairocontext9F 5%PHPcairo_stroke_extentsarraycairocontext,E %%PHPcairo_strokecairocontext3D 9PHPcairo_status_to_stringstringint/C %%PHPcairo_statusintcairocontext5B +%PHPcairo_show_textstringcairocontext/A +%PHPcairo_show_pagecairocontext9@ 3%PHPcairo_set_tolerancestringcairocontextP? =%%PHPcairo_set_source_surfacecairosurfacestringstringcairocontext    * tl: w7   r *    E] 5%PHPcairo_user_to_devicearraystringstringcairocontextG\ +%PHPcairo_translatestringstringcairocontextstringstring:[ +#%PHPcairo_transformcairomatrixcairocontext;Z +%PHPcairo_text_pathstringcairocontextstring=Y 1%PHPcairo_text_extentsarraystringcairocontext8X CPHPcairo_svg_version_to_stringstringintKW W+PHPcairo_svg_surface_restrict_to_versioncairosvgsurfaceint7V IPHPcairo_svg_surface_get_versionsarray/U 9PHPcairo_svg_get_versionsarray:T A%PHPcairo_surface_write_to_pngcairosurface7S 5%PHPcairo_surface_statusintcairosurface7R ;%PHPcairo_surface_show_pagecairosurfaceTQ W%PHPcairo_surface_set_fallback_resolutionfloatcairosurfacefloatfloatNP K%PHPcairo_surface_set_device_offsetfloatcairosurfacefloatfloat8O =%PHPcairo_surface_mark_dirtycairosurface    7 W$tCe(   u 7               ;m -PHPcollator_compareintcollatorstringstring6l )PHPcollator_asortboolcollatorarrayint4k !'PHPclass_usesarrayobject,stringbool@j 9PHPclasskit_method_renameboolstringstringstring:i 9PHPclasskit_method_removeboolstringstringKh =PHPclasskit_method_redefineboolstringstringstringstringintDg 5PHPclasskit_method_copyboolstringstringstringstringFf 3PHPclasskit_method_addboolstringstringstringstringint.e +PHPclasskit_importarraystring$d PHPchrootboolstring.c #PHPchdb_createboolstringarrayUb #PHPcalcul_hmacstringstringstringstringstringstringstringstringstring0a !PHPcalculhmacstringstringstring.` 5PHPcairo_version_stringstring$_ 'PHPcairo_versionintN^ G%PHPcairo_user_to_device_distancearraystringstringcairocontext    Z M\!X#    Z                                                +~ -PHPcom_message_pumpboolint1} -PHPcom_load_typelibboolstringint)| !PHPcom_isenumboolvariant8{ 7PHPcom_get_active_objectobjectstringint2z )PHPcom_event_sinkboolobjectobject)y +PHPcom_create_guidstringx !PHPcom_addrefAw EPHPcollator_sort_with_sort_keysboolcollatorarray5v 'PHPcollator_sortboolcollatorarrayint8u 7PHPcollator_set_strengthboolcollatorint<t 9PHPcollator_set_attributeboolcollatorintint4s 7PHPcollator_get_strengthintcollator=r 7PHPcollator_get_sort_keystringcollatorstring8q 3PHPcollator_get_localestringcollatorint<p APHPcollator_get_error_messagestringcollator6o ;PHPcollator_get_error_codeintcollator8n 9PHPcollator_get_attributeintcollatorint    k {O%m?\&    k                                                           % 'PHPcubrid_commitbool, 3PHPcubrid_column_typesarray, 3PHPcubrid_column_namesarray2 +PHPcubrid_col_sizeintstringstring3 )PHPcubrid_col_getarraystringstring, 5PHPcubrid_close_requestbool+ 5PHPcubrid_close_prepareint$ %PHPcubrid_closebool0
 9PHPcubrid_client_encodingstring)	 #PHPcubrid_bindboolstring+ 5PHPcubrid_affected_rowsint5 +PHPcreate_functionstringstringstring PHPcrash0 )PHPcrack_opendictresourcestring. 5PHPcrack_getlastmessagestring' +PHPcrack_closedictbool) #PHPcrack_checkboolstring) 1PHPconnection_timeoutint  #PHPcom_release4 1PHPcom_print_typeinfoboolstringbool    Z pAc/|K    Z                                            #% %PHPcubrid_fetchint8$ 3PHPcubrid_fetch_objectobjectstringarray-# 5PHPcubrid_fetch_lengthsarray/" 1PHPcubrid_fetch_fieldobjectint+! 1PHPcubrid_fetch_assocarray.  1PHPcubrid_fetch_arrayarrayint/ )PHPcubrid_executeboolstringint& %PHPcubrid_errorstring* -PHPcubrid_error_msgstring( /PHPcubrid_error_codeint1 APHPcubrid_error_code_facilityint# %PHPcubrid_errnoint) #PHPcubrid_dropboolstring) /PHPcubrid_disconnectbool0 )PHPcubrid_db_namestringarrayint* -PHPcubrid_data_seekintint, 1PHPcubrid_current_oidstringE ;PHPcubrid_connect_with_urlresourcestringstringstringE )PHPcubrid_connectresourcestringintstringstringstring    0 uDU&a'    j 079 5PHPcubrid_load_from_glointstringstring(8 +PHPcubrid_list_dbsarray/7 1PHPcubrid_is_instanceintstring*6 -PHPcubrid_insert_idstring05 9PHPcubrid_get_server_infostring74 =PHPcubrid_get_query_timeoutintresource03 ;PHPcubrid_get_db_parameterarray$2 !PHPcubrid_getstring01 9PHPcubrid_get_client_infostring50 7PHPcubrid_get_class_namestringstring,/ 1PHPcubrid_get_charsetstring-. 7PHPcubrid_get_autocommitbool*- 1PHPcubrid_free_resultbool., /PHPcubrid_field_typestringint/+ 1PHPcubrid_field_tablestringint,* /PHPcubrid_field_seekboolint.) /PHPcubrid_field_namestringint*( -PHPcubrid_field_lenintint/' 1PHPcubrid_field_flagsstringint)& -PHPcubrid_fetch_rowarray    6 Pc*X    b 6          )K +PHPcubrid_lob_sizestring'J +PHPcubrid_lob_sendbool-I )PHPcubrid_lob_getarraystring/H /PHPcubrid_lob_exportboolstring-G -PHPcubrid_lob_closeboolarray7F /PHPcubrid_lob2_writeboolresourcestring/E -PHPcubrid_lob2_tellintresource4D 1PHPcubrid_lob2_tell64stringresource/C -PHPcubrid_lob2_sizeintresource4B 1PHPcubrid_lob2_size64stringresource6A -PHPcubrid_lob2_seekboolresourceintint;@ 1PHPcubrid_lob2_seek64boolresourcestringint5? -PHPcubrid_lob2_readstringresourceint9> +PHPcubrid_lob2_newresourceresourcestring8= 1PHPcubrid_lob2_importboolresourcestring8< 1PHPcubrid_lob2_exportboolresourcestring1; /PHPcubrid_lob2_closeboolresource>: -PHPcubrid_lob2_bindboolresourceintmixedstring    8 k4Al;    p 8          5^ 'PHPcubrid_schemaarrayintstringstring5] 1PHPcubrid_save_to_glointstringstring'\ +PHPcubrid_rollbackbool*[ 'PHPcubrid_resultstringint9Z ?PHPcubrid_real_escape_stringstringstring.Y %PHPcubrid_queryresourcestring-X !PHPcubrid_putintstringstring3W )PHPcubrid_prepareresourcestringint#V #PHPcubrid_pingboolFU =PHPcubrid_pconnect_with_urlresourcestringstringstringFT +PHPcubrid_pconnectresourcestringintstringstringstring&S +PHPcubrid_num_rowsint(R /PHPcubrid_num_fieldsint&Q +PHPcubrid_num_colsint*P 1PHPcubrid_next_resultbool4O )PHPcubrid_new_glostringstringstring/N 1PHPcubrid_move_cursorintintint/M /PHPcubrid_lock_writeboolstring.L -PHPcubrid_lock_readboolstring    4 Wr6N   u 4            >n 9/PHPdatefmt_get_error_codeintintldateformatter<m 5/PHPdatefmt_get_datetypeintintldateformatter<l 5/PHPdatefmt_get_calendarintintldateformatterXk )/KPHPdatefmt_formatstringintldateFormatterDateTime,IntlCalendar,array,int@j 7PHPdatefmt_format_objectstringobjectmixedstring(i )PHPcubrid_versionstring9h ;PHPcubrid_unbuffered_queryresourcestring;g =PHPcubrid_set_query_timeoutboolresourceint9f +PHPcubrid_set_dropboolstringstringstring5e ;PHPcubrid_set_db_parameterboolintint1d 7PHPcubrid_set_autocommitboolbool8c )PHPcubrid_set_addboolstringstringstring;b )PHPcubrid_seq_putboolstringstringintstring>a /PHPcubrid_seq_insertboolstringstringintstring6` +PHPcubrid_seq_dropboolstringstringint,_ +PHPcubrid_send_glointstring    ^ v5s'k"    ^                                                        &} )PHPdb2_autocommitbool1| 1PHPdate_timestamp_getintDateTime.{ +PHPdate_offset_getintDateTime3z #PHPdate_formatstringDateTimestringFy ;/PHPdatefmt_set_timezone_idboolintldateformatterstring1x 5PHPdatefmt_set_timezoneboolmixedBw 3/PHPdatefmt_set_patternboolintldateformatterstring@v 5/PHPdatefmt_set_calendarboolintldateformatterintIu /!/PHPdatefmt_localtimearray,boolintldateformatterstringint;t 1/PHPdatefmt_is_lenientboolintldateformatterBs ;/PHPdatefmt_get_timezone_idstringintldateformatter<r 5/PHPdatefmt_get_timetypeintintldateformatter>q 3/PHPdatefmt_get_patternstringintldateformatter@p 1/PHPdatefmt_get_localestringintldateformatterintDo ?/PHPdatefmt_get_error_messagestringintldateformatter    W r&~P%k=    W                                         - 9PHPdb2_field_display_sizeint( 'PHPdb2_fetch_rowboolint- -PHPdb2_fetch_objectobjectint* )PHPdb2_fetch_botharrayint+ +PHPdb2_fetch_assocarrayint+ +PHPdb2_fetch_arrayarrayint(
 #PHPdb2_executeboolarray/	 PHPdb2_execresourcestringarray1 /PHPdb2_escape_stringstringstring& +PHPdb2_cursor_typeint( )PHPdb2_conn_errorstring+ /PHPdb2_conn_errormsgstring> #PHPdb2_connectresourcestringstringstringarray" !PHPdb2_commitbool? #PHPdb2_columnsresourcestringstringstringstringI 7PHPdb2_column_privilegesresourcestringstringstringstring!  PHPdb2_closebool) +PHPdb2_client_infoobject;~ )PHPdb2_bind_paramboolintstringintintintint    < X-q@e@    <            I$ 7PHPdb2_procedure_columnsresourcestringstringstringstring># -PHPdb2_primary_keysresourcestringstringstring2" #PHPdb2_prepareresourcestringarray?! %PHPdb2_pconnectresourcestringstringstringarray"  !PHPdb2_pclosebool$ %PHPdb2_num_rowsbool% )PHPdb2_num_fieldsint+ +PHPdb2_next_resultresource, %PHPdb2_lob_readstringintint, 1PHPdb2_last_insert_idstring. )PHPdb2_get_optionstringstring% 'PHPdb2_free_stmtbool' +PHPdb2_free_resultbool> -PHPdb2_foreign_keysresourcestringstringstring& +PHPdb2_field_widthint( )PHPdb2_field_typestring& +PHPdb2_field_scaleint* 3PHPdb2_field_precisionint$ 'PHPdb2_field_numint( )PHPdb2_field_namestring    O yMd9W&    O                                   :6 CPHPdbase_get_record_with_namesarrayintint/5 -PHPdbase_get_recordarrayintint14 7PHPdbase_get_header_infoarrayint13 3PHPdbase_delete_recordboolintint.2 %PHPdbase_createintstringarray&1 #PHPdbase_closeboolint00 -PHPdbase_add_recordboolintarray>/ !PHPdb2_tablesresourcestringstringstringstringB. 5PHPdb2_table_privilegesresourcestringstringstring(- )PHPdb2_stmt_errorstring+, /PHPdb2_stmt_errormsgstring@+ )PHPdb2_statisticsresourcestringstringstringboolD* 3PHPdb2_special_columnsresourcestringstringstringint.) )PHPdb2_set_optionboolarrayint)( +PHPdb2_server_infoobject$' %PHPdb2_rollbackbool& !PHPdb2_result<% )PHPdb2_proceduresresourcestringstringstring    W zRb8
i<    W                                     -K #PHPdbplus_infointstringarray*J -PHPdbplus_getuniqueintint+I )PHPdbplus_getlockintstring(H /PHPdbplus_freerlocksint,G +PHPdbplus_freelockintstring*F 3PHPdbplus_freealllocksint#E %PHPdbplus_flushint(D %PHPdbplus_firstintarray'C #PHPdbplus_findintarray#B %PHPdbplus_errnoint+A )PHPdbplus_errcodestringint'@ #PHPdbplus_currintarray ? %PHPdbplus_close,> %PHPdbplus_chdirstringstring8= !PHPdbplus_aqlresourcestringstringstring&< !PHPdbplus_addintarray7; 5PHPdbase_replace_recordboolintarrayint%: !PHPdbase_packboolint*9 !PHPdbase_openintstringint*8 -PHPdbase_numrecordsintint)7 +PHPdbase_numfieldsintint    @ T*\,pB    o @              ,` +PHPdbplus_setindexintstring1_ ;PHPdbplus_setindexbynumberintint%^ )PHPdbplus_saveposint"] #PHPdbplus_rzapint%\ )PHPdbplus_runlinkint'[ -PHPdbplus_rsecindexint+Z )PHPdbplus_rrenameintstring5Y 'PHPdbplus_rqueryresourcestringstring.X %PHPdbplus_ropenresourcestring W %PHPdbplus_rkeys-V /PHPdbplus_restoreposintarray-U )PHPdbplus_resolvearraystring,T +PHPdbplus_rcrtlikestringint.S -PHPdbplus_rcrtexactstringbool4R )PHPdbplus_rcreateresourcestringbool4Q )PHPdbplus_rchpermintintstringstring'P #PHPdbplus_previntarray-O #PHPdbplus_openresourcestring'N #PHPdbplus_nextintarray%M )PHPdbplus_lockrelint'L #PHPdbplus_lastintarray    4 c>e:j0   s 4    <t !PHPdcngettextstringstringstringstringintint2s PHPdcgettextstringstringstringint,r PHPdbx_sortboolobjectstring,q PHPdbx_queryobjectstringint'p 'PHPdbx_fetch_rowobject7o /PHPdbx_escape_stringstringobjectstring)n PHPdbx_errorstringobject@m #PHPdbx_connectobjectstringstringstringstringint5l #PHPdbx_compareintarrayarraystringint&k PHPdbx_closeintobject(j /PHPdbplus_xunlockrelint&i +PHPdbplus_xlockrelint.h 'PHPdbplus_updateintarrayarray&g +PHPdbplus_unselectint'f -PHPdbplus_unlockrelint)e 1PHPdbplus_undoprepareint"d #PHPdbplus_undoint/c )PHPdbplus_tremoveintarrayarray-b !PHPdbplus_tclstringintstring8a !PHPdbplus_sqlresourcestringstringstring    4 e5xX5a7   i 4  2	 !PHPdns_get_mxboolstringarrayarray4 -PHPdns_check_recordboolstringstring8 PHPdngettextstringstringstringstringint- ?PHPdisplay_disabled_function) PHPdio_writeintstringint' %PHPdio_truncateboolint* 'PHPdio_tcsetattrboolarray! PHPdio_statarray% PHPdio_seekintintint%  PHPdio_readstringint0 PHPdio_openresourcestringintint ~ PHPdio_fcntlint} PHPdio_close.| PHPdgettextstringstringstring0{ %PHPdeflate_initresourceintarray.z #PHPdeflate_addstringstringint%y PHPdefinedboolstring-x PHPdefineboolstringmixedbool4w 7PHPdebug_print_backtraceint,boolint3v +PHPdebug_backtracearrayint,boolint+u #PHPdeaggregateobjectstring    N {;l2Q   N                                      > !PHPeio_customresourcecallableintcallablemixed: PHPeio_closeresourcemixedintcallablemixedA PHPeio_chownresourcestringintintintcallablemixed> PHPeio_chmodresourcestringintintcallablemixed7 PHPeio_busyresourceintintcallablemixed1 #PHPdotnet_loadintstringstringint4 MPHPdom_xpath_register_php_functions9 7PHPdom_xpath_register_nsboolstringstring7 1PHPdom_xpath_evaluatestringdomnodebool* 3PHPdomxml_xslt_versionint( )PHPdomxml_versionstring/ 7PHPdom_document_xincludeintintB OPHPdom_document_schema_validate_fileboolstringint= EPHPdom_document_schema_validateboolstringint? OPHPdom_document_relaxNG_validate_xmlboolstring@
 QPHPdom_document_relaxNG_validate_fileboolstring    e LI	C   e                                                               @( PHPeio_linkresourcestringstringintcallablemixed1' PHPeio_grpresourcecallablestring4& 1PHPeio_get_last_errorstringresource-% 5PHPeio_get_event_streammixedB$ !PHPeio_futimefloatmixedfloatfloatintcallablemixedA# 'PHPeio_ftruncateresourcemixedintintcallablemixed:" PHPeio_fsyncresourcemixedintcallablemixed=! %PHPeio_fstatvfsresourcemixedintcallablemixed:  PHPeio_fstatresourcemixedintcallablemixed> 'PHPeio_fdatasyncresourcemixedintcallablemixedA !PHPeio_fchownresourcemixedintintintcallablemixed> !PHPeio_fchmodresourcemixedintintcallablemixedG 'PHPeio_fallocateresourcemixedintintintintcallablemixed& )PHPeio_event_loopbool> PHPeio_dup2resourcemixedmixedintcallablemixed    ; =t1B   y ;                 ;9 PHPeio_rmdirresourcestringintcallablemixedB8 !PHPeio_renameresourcestringstringintcallablemixed?7 %PHPeio_realpathresourcestringintcallablestring?6 PHPeio_readresourcemixedintintintcallablemixed?5 %PHPeio_readlinkresourcestringintcallablestringA4 #PHPeio_readdirresourcestringintintcallablestringD3 'PHPeio_readaheadresourcemixedintintintcallablemixed2 PHPeio_pollint@1 PHPeio_openresourcestringintintintcallablemixed#0 %PHPeio_nthreadsint / PHPeio_nreqsint!. !PHPeio_nreadyint#- %PHPeio_npendingint3, PHPeio_nopresourceintcallablemixedA+ PHPeio_mknodresourcestringintintintcallablemixed>* PHPeio_mkdirresourcestringintintcallablemixed;) PHPeio_lstatresourcestringintcallablemixed    6 r5_!g"   ] 6                $H -PHPerror_clear_last=G EPHPenchant_broker_set_dict_pathboolintstring9F EPHPenchant_broker_get_dict_pathstringintFE PHPeio_writeresourcemixedstringintintintcallablemixedBD PHPeio_utimefloatstringfloatfloatintcallablemixed<C !PHPeio_unlinkresourcestringintcallablemixedAB %PHPeio_truncateresourcestringintintcallablemixed4A PHPeio_syncresourceintcallablemixed;@ !PHPeio_syncfsresourcemixedintcallablemixedM? 3PHPeio_sync_file_rangeresourcemixedintintintintcallablemixedC> #PHPeio_symlinkresourcestringstringintcallablemixed== #PHPeio_statvfsresourcestringintcallablemixed:< PHPeio_statresourcestringintcallablemixedI; %PHPeio_sendfileresourcemixedmixedintintintcallablestring?: PHPeio_seekresourcemixedintintintcallablemixed    H S'g7S    H                        7\ APHPevent_buffer_watermark_setintintint2[ =PHPevent_buffer_timeout_setintint1Z ?PHPevent_buffer_set_callbackbool.Y /PHPevent_buffer_readstringint4X ?PHPevent_buffer_priority_setboolint,W -PHPevent_buffer_newresource%V /PHPevent_buffer_free'U 3PHPevent_buffer_fd_set.T 3PHPevent_buffer_enableboolint/S 5PHPevent_buffer_disableboolint-R 7PHPevent_buffer_base_setbool&Q )PHPevent_base_setbool1P /PHPevent_base_reinitboolresource3O =PHPevent_base_priority_initboolint*N )PHPevent_base_newresource)M +PHPevent_base_loopintint.L 3PHPevent_base_loopexitboolint,K 5PHPevent_base_loopbreakbool#J +PHPevent_base_free$I PHPevent_addboolint    ` ]%h7
l7    `                                                +p 3PHPfam_suspend_monitorbool*o 1PHPfam_resume_monitorbool"n #PHPfam_pendingint*m PHPfam_openresourcestring'l )PHPfam_next_eventarray2k -PHPfam_monitor_fileresourcestring7j 7PHPfam_monitor_directoryresourcestringAi 9PHPfam_monitor_collectionresourcestringintstringh PHPfam_close*g 1PHPfam_cancel_monitorbool.f %PHPexpect_popenresourcestring/e )PHPexpect_expectlintarrayarray"d !PHPexitstring,int<c +PHPevent_timer_setboolresourcecallablemixed$b PHPevent_setboolint5a 1PHPevent_priority_setboolresourceint%` PHPevent_newresource_ !PHPevent_free!^ PHPevent_delbool3] 1PHPevent_buffer_writeboolstringint   `    {uoic]WQKE?93-'!	ysmga[UOIC=71+%}wqke_YSMGA;5/)#                                                                                                                                                                                             Ö;   )         [   H   2         q   ]   [   J   9   &          m   \   J   3      	   s      X   B   3      d   G   y   ^   D      }   l   Z   G   6   #      ~   p   `   N   ;   %      z   d   P   =   +         w   c   J   4   #      }   9   '      z   d   Q   ~>   },   |   {	   zw   ye   xQ   w;   v$   u   t{   sf   rM   q<   p'   o   nb   mW   lA   k)   j   i	   hv   ga   fN   e8   d# ^   %|vpjd^XRLFztnhb\VPJD>82,& ~xrlf`ZTNHB<60*$@:4.("
      $A  #+  "  !   x  h  X  G  5  $    ~  j  Y  F  1    	  v  b  M  ;  *      u  
f  	U  A  -    	  u  c  Q  ;   )         o   \   J   6   &         t   d   R   @   +         q   c   V   I   <   ,            p                                                                                                                                                                                                  \   H   9   (   ߚ   ޚ	   ݙt   ܙ`   ۙK   ڙ6   ٙ$   ؙ   ט}   ֘n   ՘^   ԘK   Ә9   Ҙ%   ј   З~   ϗm   Η]   ͗N   ̗>   ˗0   ʗ!   ɗ   ȗ   ǖv   Ɩh   ŖW    ] b&{:s9    ]                                                       2 1PHPfann_destroy_trainboolresource,~ %PHPfann_destroyboolresource:} 1PHPfann_descale_trainboolresourceresource8| 3PHPfann_descale_outputboolresourcearray7{ 1PHPfann_descale_inputboolresourcearray6z /PHPfann_create_trainresourceintintintLy KPHPfann_create_train_from_callbackresourceintintintcollable<x 5PHPfann_create_standardresourceintintintint>w APHPfann_create_standard_arrayresourceintarray>v APHPfann_create_shortcut_arrayresourceintarray7u 7PHPfann_create_from_fileresourcestring-t PHPfann_copyresourceresource9s ?PHPfann_clear_scaling_paramsboolresourceKr ?PHPfann_cascadetrain_on_filefloatresourcestringintintfloatMq ?PHPfann_cascadetrain_on_datafloatresourceresourceintintfloat    < |5G`  ~ <                        ? MPHPfann_get_cascade_max_cand_epochsintresourceM ePHPfann_get_cascade_candidate_stagnation_epochsfloatresourceA MPHPfann_get_cascade_candidate_limitfloatresourceK
 aPHPfann_get_cascade_candidate_change_fractionfloatresourceL	 gPHPfann_get_cascade_activation_steepnesses_countintresourceH [PHPfann_get_cascade_activation_steepnessesarrayresourceJ cPHPfann_get_cascade_activation_functions_countintresourceF WPHPfann_get_cascade_activation_functionsarrayresource8 ;PHPfann_get_bit_fail_limitfloatresource0 /PHPfann_get_bit_failintresource4 3PHPfann_get_bias_arrayarrayresourceD GPHPfann_get_activation_steepnessfloatresourceintintA EPHPfann_get_activation_functionintresourceintint=  ?PHPfann_duplicate_train_dataresourceresource    K }<i_/    K                                     7 9PHPfann_get_learning_ratefloatresource; APHPfann_get_learning_momentumfloatresource5 5PHPfann_get_layer_arrayarrayresource1 +PHPfann_get_errstrstringresource- )PHPfann_get_errnointresource9 =PHPfann_get_connection_ratefloatresource: ?PHPfann_get_connection_arrayarrayresourceC QPHPfann_get_cascade_weight_multiplierfloatresourceH _PHPfann_get_cascade_output_stagnation_epochsintresourceH [PHPfann_get_cascade_output_change_fractionfloatresource> KPHPfann_get_cascade_num_candidatesintresourceD WPHPfann_get_cascade_num_candidate_groupsintresource> KPHPfann_get_cascade_min_out_epochsintresource? MPHPfann_get_cascade_min_cand_epochsintresource> KPHPfann_get_cascade_max_out_epochsintresource    2 e0DE   n 2          9, APHPfann_get_total_connectionsintresourceD+ SPHPfann_get_sarprop_weight_decay_shiftfloatresource=* EPHPfann_get_sarprop_temperaturefloatresourceM) ePHPfann_get_sarprop_step_error_threshold_factorfloatresourceB( OPHPfann_get_sarprop_step_error_shiftfloatresource?' IPHPfann_get_rprop_increase_factorfloatresource9& =PHPfann_get_rprop_delta_minfloatresource9% =PHPfann_get_rprop_delta_maxfloatresource?$ IPHPfann_get_rprop_decrease_factorfloatresource6# 7PHPfann_get_quickprop_mufloatresource9" =PHPfann_get_quickprop_decayfloatresource2! 3PHPfann_get_num_outputintresource2  3PHPfann_get_num_layersintresource1 1PHPfann_get_num_inputintresource4 7PHPfann_get_network_typeintresource- %PHPfann_get_MSEfloatresource    [ LV].    [                                                   5< -PHPfann_scale_inputboolresourcearray5; +PHPfann_save_trainboolresourcestring/: PHPfann_saveboolresourcestring.9 PHPfann_runarrayresourcearray,8 )PHPfann_reset_MSEboolstring;7 ?PHPfann_read_train_from_fileresourcestringA6 9PHPfann_randomize_weightsfloatresourcefloatfloat95 APHPfann_num_output_train_dataintresource84 ?PHPfann_num_input_train_dataintresourceA3 7PHPfann_merge_train_dataresourceresourceresource52 9PHPfann_length_train_dataintresource91 /PHPfann_init_weightsboolresourceresource;0 EPHPfann_get_train_stop_functionintresource:/ CPHPfann_get_training_algorithmintresource<. GPHPfann_get_train_error_functionintresource5- 9PHPfann_get_total_neuronsintresource    \ ~4n%E   \                                                          JI UPHPfann_set_activation_steepness_outputfloatresourcefloatLH SPHPfann_set_activation_steepness_layerfloatresourcefloatintJG UPHPfann_set_activation_steepness_hiddenfloatresourcefloatIF GPHPfann_set_activation_steepnessfloatresourcefloatintintFE SPHPfann_set_activation_function_outputboolresourceintHD QPHPfann_set_activation_function_layerboolresourceintintFC SPHPfann_set_activation_function_hiddenboolresourceintEB EPHPfann_set_activation_functionboolresourceintintint@A 7PHPfann_scale_train_datafloatresourcefloatfloat8@ -PHPfann_scale_trainboolresourceresourceG? EPHPfann_scale_output_train_datafloatresourcefloatfloat6> /PHPfann_scale_outputboolresourcearrayF= CPHPfann_scale_input_train_datafloatresourcefloatfloat    I 7Lo)   I                                       MV [PHPfann_set_cascade_output_change_fractionfloatresourcefloatHU WPHPfann_set_cascade_num_candidate_groupsboolresourceintBT KPHPfann_set_cascade_min_out_epochsboolresourceintCS MPHPfann_set_cascade_min_cand_epochsboolresourceintBR KPHPfann_set_cascade_max_out_epochsboolresourceintCQ MPHPfann_set_cascade_max_cand_epochsboolresourceintOP ePHPfann_set_cascade_candidate_stagnation_epochsboolresourceintFO MPHPfann_set_cascade_candidate_limitfloatresourcefloatPN aPHPfann_set_cascade_candidate_change_fractionfloatresourcefloatLM [PHPfann_set_cascade_activation_steepnessesboolresourcearrayJL WPHPfann_set_cascade_activation_functionsboolresourcearray9K /PHPfann_set_callbackboolresourcecollable=J ;PHPfann_set_bit_fail_limitfloatresourcefloat    l f=w6   l                                                                          Dc IPHPfann_set_rprop_increase_factorfloatresourcefloat?b ?PHPfann_set_rprop_delta_zerofloatresourcefloat>a =PHPfann_set_rprop_delta_minfloatresourcefloat>` =PHPfann_set_rprop_delta_maxfloatresourcefloatD_ IPHPfann_set_rprop_decrease_factorfloatresourcefloat;^ 7PHPfann_set_quickprop_mufloatresourcefloat>] =PHPfann_set_quickprop_decayfloatresourcefloatQ\ IPHPfann_set_output_scaling_paramsfloatresourceresourcefloatfloat<[ 9PHPfann_set_learning_ratefloatresourcefloat@Z APHPfann_set_learning_momentumfloatresourcefloatPY GPHPfann_set_input_scaling_paramsfloatresourceresourcefloatfloatHX QPHPfann_set_cascade_weight_multiplierfloatresourcefloatLW _PHPfann_set_cascade_output_stagnation_epochsboolresourceint    K ay6v8    K                                       7q )PHPfann_test_datafloatresourceresource3p PHPfann_testboolresourcearrayarray@o 9PHPfann_subset_train_dataresourceresourceintint7n ;PHPfann_shuffle_train_databoolresource;m +PHPfann_set_weightfloatresourceintintfloat:l 7PHPfann_set_weight_arrayboolresourcearray?k EPHPfann_set_train_stop_functionboolresourceint>j CPHPfann_set_training_algorithmboolresourceint@i GPHPfann_set_train_error_functionboolresourceintTh ;PHPfann_set_scaling_paramsfloatresourceresourcefloatfloatfloatfloatIg SPHPfann_set_sarprop_weight_decay_shiftfloatresourcefloatBf EPHPfann_set_sarprop_temperaturefloatresourcefloatRe ePHPfann_set_sarprop_step_error_threshold_factorfloatresourcefloatGd OPHPfann_set_sarprop_step_error_shiftfloatresourcefloat    @ DpAI   q @                    . )PHPfbsql_databasestringstring7 ;PHPfbsql_database_passwordstringstring3 +PHPfbsql_create_dbboolstringstring1  /PHPfbsql_create_clobstringstring1 /PHPfbsql_create_blobstringstring;~ 'PHPfbsql_connectresourcestringstringstring$} %PHPfbsql_commitbool#| #PHPfbsql_closebool,{ +PHPfbsql_clob_sizeintstring;z /PHPfbsql_change_userboolstringstringstring,y +PHPfbsql_blob_sizeintstring,x -PHPfbsql_autocommitboolbool*w 3PHPfbsql_affected_rowsint.v 9PHPfastcgi_finish_requestboolDu 1PHPfann_train_on_filefloatresourcestringintintfloatFt 1PHPfann_train_on_datafloatresourceresourceintintfloat9s -PHPfann_train_epochfloatresourceresource4r !PHPfann_trainboolresourcearrayarray    ] k=b3|L    ]                                             1 =PHPfbsql_get_autostart_infoarray) /PHPfbsql_free_resultbool- -PHPfbsql_field_typestringint. /PHPfbsql_field_tablestringint+ -PHPfbsql_field_seekboolint- -PHPfbsql_field_namestringint) +PHPfbsql_field_lenintint. /PHPfbsql_field_flagsstringint( +PHPfbsql_fetch_rowarray, 1PHPfbsql_fetch_objectobject, 3PHPfbsql_fetch_lengthsarray. /PHPfbsql_fetch_fieldobjectint* /PHPfbsql_fetch_assocarray-
 /PHPfbsql_fetch_arrayarrayint%	 #PHPfbsql_errorstring" #PHPfbsql_errnoint+ 'PHPfbsql_drop_dbboolstring, +PHPfbsql_db_statusintstring6 )PHPfbsql_db_queryresourcestringstring* +PHPfbsql_data_seekboolint    5 y=X\3   t 5     <+ 1PHPfbsql_set_passwordboolstringstringstring-* 1PHPfbsql_set_lob_modeboolint0) 9PHPfbsql_set_charactersetintint-( +PHPfbsql_select_dbboolstring)' 1PHPfbsql_rows_fetchedint&& )PHPfbsql_rollbackbool#% %PHPfbsql_resultint/$ +PHPfbsql_read_clobstringstring/# +PHPfbsql_read_blobstringstring0" #PHPfbsql_queryresourcestringint<! )PHPfbsql_pconnectresourcestringstringstring.  )PHPfbsql_passwordstringstring% )PHPfbsql_num_rowsint' -PHPfbsql_num_fieldsint) /PHPfbsql_next_resultbool3 /PHPfbsql_list_tablesresourcestring9 /PHPfbsql_list_fieldsresourcestringstring* )PHPfbsql_list_dbsresource& +PHPfbsql_insert_idint. )PHPfbsql_hostnamestringstring    8 k;
X'sF    h 8      -@ +PHPfunction_existsboolstring$? 'PHPfunc_num_argsint&> 'PHPfunc_get_argsarray#= %PHPfunc_get_argint8< +PHPfribidi_log2visstringstringstringint*; !PHPFrenchToJDintintintint*: !PHPfrenchtojdintintintint%9 PHPfputsintstringint'8 -PHPfilepro_rowcountint07 -PHPfilepro_retrievestringintint,6 1PHPfilepro_fieldwidthintint.5 /PHPfilepro_fieldtypestringint.4 /PHPfilepro_fieldnamestringint)3 1PHPfilepro_fieldcountint%2 PHPfileproboolstring*1 )PHPfbsql_warningsboolbool.0 )PHPfbsql_usernamestringstring-/ -PHPfbsql_table_namestringint+. 'PHPfbsql_stop_dbboolstring2- )PHPfbsql_start_dbboolstringstring/, 7PHPfbsql_set_transactionintint    7 g(p=xH   m 7           3R 5PHPgeoip_region_by_namearraystring3Q 5PHPgeoip_record_by_namearraystring1P /PHPgeoip_org_by_namestringstring:O APHPgeoip_netspeedcell_by_namestringstring1N /PHPgeoip_isp_by_namestringstring-M -PHPgeoip_id_by_nameintstring4L 5PHPgeoip_domain_by_namestringstring.K 7PHPgeoip_db_get_all_infoarray.J /PHPgeoip_db_filenamestringint)I )PHPgeoip_db_availboolint0H 3PHPgeoip_database_infostringint:G APHPgeoip_country_name_by_namestringstring:F APHPgeoip_country_code_by_namestringstring;E CPHPgeoip_country_code3_by_namestringstring<D EPHPgeoip_continent_code_by_namestringstring3C 3PHPgeoip_asnum_by_namestringstring1B 1PHPgearman_job_statusarraystring,A 1PHPgearman_job_handlestring    8 pGc3|;    h 8            -d 9PHPgupnp_context_get_portint3c ?PHPgupnp_context_get_host_ipstring-b 'PHPGregorianToJDintintintint-a 'PHPgregoriantojdintintintint:` +#PHPgrapheme_substrstring,boolstringintint>_ +#PHPgrapheme_strstrstring,boolstringstringbool?^ -#PHPgrapheme_stristrstring,boolstringstringboolA] -#PHPgrapheme_extractstring,boolstringintintintint.\ +PHPgopher_parsedirarraystring-[ !PHPgmp_exportstringgmpintint'Z PHPgettextstringstring+Y /PHPget_resource_typestring,X 'PHPget_resourcesarraystring)W -PHPget_defined_varsarray.V 7PHPget_defined_functionsarray&U 'PHPgetallheadersarrayKT WPHPgeoip_time_zone_by_country_and_regionstringstringstring?S ?PHPgeoip_region_name_by_codestringstringstring    4 I	]#e4   t 4            =t 7PHPgupnp_root_device_newresourcestringstringAs [PHPgupnp_root_device_get_relative_locationstring7r KPHPgupnp_root_device_get_availablebool?q GPHPgupnp_device_info_get_serviceresourcestring.p 7PHPgupnp_device_info_getarrayAo MPHPgupnp_device_action_callback_setboolintstring9n ;PHPgupnp_control_point_newresourcestring;m MPHPgupnp_control_point_callback_setboolint7l KPHPgupnp_control_point_browse_stopbool8k MPHPgupnp_control_point_browse_startbool7j ?PHPgupnp_context_unhost_pathboolstring4i ?PHPgupnp_context_timeout_addboolint=h YPHPgupnp_context_set_subscription_timeoutint6g /PHPgupnp_context_newresourcestringint;f ;PHPgupnp_context_host_pathboolstringstring=e YPHPgupnp_context_get_subscription_timeoutint    9 _'p:}E  w 9                 ; MPHPgupnp_service_proxy_callback_setboolint? IPHPgupnp_service_proxy_add_notifyboolstringintE IPHPgupnp_service_proxy_action_setboolstringstringintA IPHPgupnp_service_proxy_action_getstringstringint5  5PHPgupnp_service_notifyboolstringintM iPHPgupnp_service_introspection_get_state_variablearraystring8~ UPHPgupnp_service_info_get_introspection/} 9PHPgupnp_service_info_getarray3| CPHPgupnp_service_freeze_notifybool9{ =PHPgupnp_service_action_setboolstringintBz OPHPgupnp_service_action_return_errorboolintstring3y CPHPgupnp_service_action_returnbool5x =PHPgupnp_service_action_getstringint.w 9PHPgupnp_root_device_stopbool/v ;PHPgupnp_root_device_startbool;u KPHPgupnp_root_device_set_availableboolbool    J 6m; A   | J                                / %PHPhttp_deflatestringstringint& PHPhttp_datestringint3 3PHPhttp_chunked_decodestringstring3 =PHPhttp_cache_last_modifiedboolint- +PHPhttp_cache_etagboolstringM )%/PHPhttp_build_urlstringstring,arraystring,array,nullintarray9 )PHPhttp_build_strstringarraystringstring0 /PHPhttp_build_cookiestringarray8 =PHPheader_register_callbackboolcallable/ #PHPhash_equalsboolstringstring# +PHP__halt_compiler+
 PHPgzdecodestringstringint1	 ?PHPgupnp_service_thaw_notifybool> QPHPgupnp_service_proxy_set_subscribedboolboolH KPHPgupnp_service_proxy_send_actionarraystringarrayarray? OPHPgupnp_service_proxy_remove_notifyboolstring: QPHPgupnp_service_proxy_get_subscribedbool    ? _*\[    ?                     =& GPHPhttp_persistent_handles_cleanstringstring4% /PHPhttp_parse_paramsobjectstringint2$ 1PHPhttp_parse_messageobjectstring1# 1PHPhttp_parse_headersarraystring9" /PHPhttp_parse_cookieobjectstringintarray;! ;PHPhttp_negotiate_languagestringarrayarray?  CPHPhttp_negotiate_content_typestringarrayarray: 9PHPhttp_negotiate_charsetstringarrayarrayA ?PHPhttp_match_request_headerboolstringstringbool2 3PHPhttp_match_modifiedboolintbool1 +PHPhttp_match_etagboolstringbool, %PHPhttp_inflatestringstring3 PHPhttp_headstringstringarrayarray2 PHPhttp_getstringstringarrayarray1 =PHPhttp_get_request_headersarray/ 7PHPhttp_get_request_bodystring8 EPHPhttp_get_request_body_streamresource    - E~B]!   d -     46 9PHPhttp_send_content_typeboolstring?5 GPHPhttp_send_content_dispositionboolstringbool?4 %PHPhttp_requeststringintstringstringarrayarray63 IPHPhttp_request_method_unregisterbool92 EPHPhttp_request_method_registerintstring51 =PHPhttp_request_method_namestringint10 APHPhttp_request_method_existsint</ =PHPhttp_request_body_encodestringarrayarray7. 'PHPhttp_redirectboolstringarrayboolint9- +PHPhttp_put_streamstringstringarrayarray=, 'PHPhttp_put_filestringstringstringarrayarray=+ 'PHPhttp_put_datastringstringstringarrayarrayD* -PHPhttp_post_fieldsstringstringarrayarrayarrayarray>) )PHPhttp_post_datastringstringstringarrayarray=( GPHPhttp_persistent_handles_identstringstring7' GPHPhttp_persistent_handles_countobject    A m?T'lB   z A                 6J 3PHPhw_Document_BodyTagstringintstring3I 9PHPhw_Document_Attributesstringint1H /PHPhw_DocByAnchorObjstringintint+G )PHPhw_DocByAnchorintintint-F +PHPhw_Deleteobjectboolintint'E PHPhw_cpintintarrayint)D 1PHPhw_connection_infoint6C !PHPhw_Connectintstringintstringstring#B PHPhw_Closeboolint-A )PHPhw_ChildrenObjarrayintint*@ #PHPhw_Childrenarrayintint2? +PHPhw_changeobjectboolintintarray.> +PHPhw_Array2Objrecstringarray.= 'PHPhttp_throttlefloatfloatint&< %PHPhttp_supportintint(; -PHPhttp_send_streambool+: -PHPhttp_send_statusboolint29 ;PHPhttp_send_last_modifiedboolint,8 )PHPhttp_send_fileboolstring,7 )PHPhttp_send_databoolstring    k f8_-d-   k                                                               B\ APHPhw_GetObjectByQueryCollObjarrayintintstringint?[ ;PHPhw_GetObjectByQueryCollarrayintintstringint8Z 3PHPhw_GetObjectByQueryarrayintstringint4Y 7PHPhw_GetChildDocCollObjarrayintint1X 1PHPhw_GetChildDocCollarrayintint1W 1PHPhw_GetChildCollObjarrayintint.V +PHPhw_GetChildCollarrayintint-U 'PHPhw_GetAndLockstringintint/T -PHPhw_GetAnchorsObjarrayintint,S 'PHPhw_GetAnchorsarrayintint+R -PHPhw_Free_Documentboolint(Q #PHPhw_ErrorMsgstringint"P PHPhw_Errorintint)O #PHPhw_EditTextboolintint+N PHPhw_dummystringintintint*M -PHPhw_Document_Sizeintint7L 9PHPhw_Document_SetContentboolintstring0K 3PHPhw_Document_Contentstringint    D g5kAyJ   o D                      (o PHPhw_mapidintintintint5n +PHPhw_InsertObjectintintstringstring1m /PHPhw_InsertDocumentintintintint:l -PHPhw_insertanchorsboolintarrayarrayarray/k PHPhw_InsDocintintstringstring,j !PHPhw_InsCollintintintarray$i PHPhw_Infostringint9h -PHPhw_InCollectionsarrayintarrayarrayint4g #PHPhw_Identifystringintstringstring+f )PHPhw_getusernamestringint'e !PHPhw_GetTextintintint1d 1PHPhw_GetSrcByDestObjarrayintint)c %PHPhw_GetRemoteintintint1b 5PHPhw_getremotechildrenintstring3a 'PHPhw_getrellinkstringintintintint/` -PHPhw_GetParentsObjarrayintint,_ 'PHPhw_GetParentsarrayintint)^ %PHPhw_GetObjectintstring;] 9PHPhw_GetObjectByQueryObjarrayintstringint    c ^(i;~Q    c                                                     - /PHPibase_blob_createresource* -PHPibase_blob_closestring)  /PHPibase_blob_cancelbool, )PHPibase_blob_addboolstring3~ %PHPibase_backupstringstringintbool*} 3PHPibase_affected_rowsintD| )PHPibase_add_userboolstringstringstringstringstring"{ PHPhw_Whoarrayint'z PHPhw_Unlockboolintint$y PHPhw_statstringint+x )PHPhw_setlinkrootintintintw PHPhw_Rootint1v +PHPhw_PipeDocumentintintintarray7u #PHPhw_pConnectintstringintstringstring-t 1PHPhw_Output_Documentboolint3s +PHPhw_objrec2arrayarraystringarray5r +PHPhw_New_Documentintstringstringint*q PHPhw_mvintintarrayintint:p +PHPhw_Modifyobjectboolintintarrayarrayint    4 o>
BsJ&    g 4    0 =PHPibase_free_event_handlerbool, -PHPibase_field_infoarrayint+ +PHPibase_fetch_rowarrayint/ 1PHPibase_fetch_objectobjectint- /PHPibase_fetch_assocarrayint! 'PHPibase_execute& %PHPibase_errmsgstring$ 'PHPibase_errcodeint% 'PHPibase_drop_dbboolG /PHPibase_delete_userboolstringstringstringstringstring3 'PHPibase_db_infostringstringintintM 'PHPibase_connectresourcestringstringstringstringintintstring(
 -PHPibase_commit_retbool$	 %PHPibase_commitbool# #PHPibase_closebool1 +PHPibase_blob_openresourcestring. +PHPibase_blob_infoarraystring+ /PHPibase_blob_importstring+ )PHPibase_blob_getstringint2 +PHPibase_blob_echoboolmixedstring    B zBrJt=   q B                    ,) 5PHPibase_service_detachboolB( 5PHPibase_service_attachresourcestringstringstring.' /PHPibase_server_infostringint*& 1PHPibase_rollback_retbool&% )PHPibase_rollbackbool4$ 'PHPibase_restorestringstringintbool!# #PHPibase_query]]/" 'PHPibase_prepareresourcestringN! )PHPibase_pconnectresourcestringstringstringstringintintstring,  -PHPibase_param_infoarrayint% )PHPibase_num_rowsint' -PHPibase_num_paramsint' -PHPibase_num_fieldsint/ /PHPibase_name_resultboolstringG /PHPibase_modify_userboolstringstringstringstringstring5 /PHPibase_maintain_dbboolstringintint, %PHPibase_gen_idintstringint) /PHPibase_free_resultbool( -PHPibase_free_querybool    \ ^+X&a5    \                                                .; 3PHPifx_blobinfile_modeboolint(: /PHPifx_affected_rowsint;9 ##PHPidn_to_utf8string,boolstringintintarray<8 %#PHPidn_to_asciistring,boolstringintintarray)7 %PHPidn_strerrorstringint16 #PHPid3_set_tagboolstringarrayint/5 )PHPid3_remove_tagboolstringint,4 +PHPid3_get_versionintstring-3 #PHPid3_get_tagarraystringint/2 1PHPid3_get_genre_namestringint+1 1PHPid3_get_genre_listarray-0 -PHPid3_get_genre_idintstring8/ =PHPid3_get_frame_short_namestringstring7. ;PHPid3_get_frame_long_namestringstring0- -PHPibase_wait_eventstringstring*, #PHPibase_transresourceint.+ 'PHPibase_timefmtboolstringintA* ;PHPibase_set_event_handlerresourcecallablestring    B qGpGnB    h B              #Q %PHPifx_num_rowsint%P )PHPifx_num_fieldsint)O )PHPifx_nullformatboolint/N 1PHPifx_htmltbl_resultintstring%M %PHPifx_getsqlcaarray)L %PHPifx_get_charstringint)K %PHPifx_get_blobstringint'J +PHPifx_free_resultbool(I 'PHPifx_free_charboolint(H 'PHPifx_free_blobboolint'G )PHPifx_fieldtypesarray,F 3PHPifx_fieldpropertiesarray&E 'PHPifx_fetch_rowarray#D PHPifx_errorstring)C %PHPifx_errormsgstringintB PHPifx_dobool,A +PHPifx_create_charintstring2@ +PHPifx_create_blobintintintstring'? 'PHPifx_copy_blobintint9> #PHPifx_connectresourcestringstringstring!= PHPifx_closebool,< /PHPifx_byteasvarcharboolint    X _0nAO   X                                            6c ?PHPiis_get_server_by_commentintstring;b 1PHPiis_get_script_mapstringintstringstring4a 5PHPiis_get_dir_securityintintstringF` )PHPiis_add_serverintstringstringstringintstringintint0_ -PHPifxus_write_slobintintstring)^ +PHPifxus_tell_slobintint/] +PHPifxus_seek_slobintintintint/\ +PHPifxus_read_slobstringintint,[ +PHPifxus_open_slobintintint*Z +PHPifxus_free_slobboolint+Y /PHPifxus_create_slobintint+X -PHPifxus_close_slobboolint0W +PHPifx_update_charboolintstring0V +PHPifx_update_blobboolintstring,U /PHPifx_textasvarcharboolint.T PHPifx_queryresourcestringint0S #PHPifx_prepareresourcestringint:R %PHPifx_pconnectresourcestringstringstring    V ]/t9H    V                                          +u #PHPimap_binarystringstring+t #PHPimap_base64stringstring;s #PHPimap_appendboolstringstringstringstring)r #!PHPimap_alertsarray,bool)q PHPimap_8bitstringstring4p /PHPimageaffineconcatarrayarrayarray-o -PHPiis_stop_serviceintstring)n +PHPiis_stop_serverintint.m /PHPiis_start_serviceintstring*l -PHPiis_start_serverintint8k 7PHPiis_set_server_rightsintintstringintAj 1PHPiis_set_script_mapintintstringstringstringint7i 5PHPiis_set_dir_securityintintstringint:h 5PHPiis_set_app_settingsintintstringstring+g /PHPiis_remove_serverintint2f 7PHPiis_get_service_stateintstring5e 7PHPiis_get_server_rightsintintstring3d 9PHPiis_get_server_by_pathintstring    0 x;U.U    d 01	 1PHPimap_get_quotarootarraystring- )PHPimap_get_quotaarraystring6 /PHPimap_getmailboxesarraystringstring* #PHPimap_getaclarraystring" PHPimap_gcboolint3 3PHPimap_fetchstructureobjectintint5 3PHPimap_fetch_overviewarraystringint4 )PHPimap_fetchmimestringintstringint0 -PHPimap_fetchheaderstringintint4  )PHPimap_fetchbodystringintstringint$ %PHPimap_expungebool)~ #!PHPimap_errorsarray,bool0} 1PHPimap_deletemailboxboolstring)| #PHPimap_deleteboolintint0{ 1PHPimap_createmailboxboolstring%z !PHPimap_closeboolint:y 3PHPimap_clearflag_fullboolstringstringint$x !PHPimap_checkobject2w +PHPimap_bodystructobjectintstring)v PHPimap_bodystringintint    K c2Go6    K                               = PHPimap_openresourcestringstringstringintint& +PHPimap_num_recentint# %PHPimap_num_msgint2 1PHPimap_mutf7_to_utf8stringstring$ !PHPimap_msgnointint6 ;PHPimap_mime_header_decodearraystring5 )PHPimap_mail_moveboolstringstringint5 )PHPimap_mail_copyboolstringstringint5 /PHPimap_mail_composestringarrayarray- 3PHPimap_mailboxmsginfoobjectK PHPimap_mailboolstringstringstringstringstringstringstring. PHPimap_lsubarraystringstring8 'PHPimap_listscanarraystringstringstring. PHPimap_listarraystringstring. +#PHPimap_last_errorstring,bool% %PHPimap_headersarray8 +PHPimap_headerinfoobjectintintintstring7
 1PHPimap_getsubscribedarraystringstring    9 uCi&}K    ^ 9             "- PHPimap_uidintint&, %PHPimap_timeoutintint'+ #PHPimap_threadarrayint,* )PHPimap_subscribeboolstring.) #PHPimap_statusobjectstringint7( PHPimap_sortarrayintintintstringstring/' )PHPimap_set_quotaboolstringint8& /PHPimap_setflag_fullboolstringstringint5% #PHPimap_setaclboolstringstringstring3$ #PHPimap_searcharraystringintstring@# '+PHPimap_savebodyboolstring,resourceintstringintT" ?###PHPimap_rfc822_write_addressstringstring,nullstring,nullstring,null?! ?PHPimap_rfc822_parse_headersobjectstringstring>  ?PHPimap_rfc822_parse_adrlistarraystringstring/ #PHPimap_reopenboolstringintint6 1PHPimap_renamemailboxboolstringstring+ #PHPimap_qprintstringstring! PHPimap_pingbool    T n;}O#w3	    T                                    4A 5PHPingres_escape_stringstringstring,@ 1PHPingres_errsqlstatestring&? %PHPingres_errorstring#> %PHPingres_errnoint'= 'PHPingres_cursorstringA< )PHPingres_connectresourcestringstringstringarray%; 'PHPingres_commitbool$: %PHPingres_closebool(9 )PHPingres_charsetstring/8 ;PHPingres_autocommit_statebool)7 /PHPingres_autocommitbool+6 %PHPinflate_initresourceint.5 #PHPinflate_addstringstringint)4 -PHPinclued_get_dataarray23 1PHPimap_utf8_to_mutf7stringstring)2 PHPimap_utf8stringstring01 -PHPimap_utf7_encodestringstring00 -PHPimap_utf7_decodestringstring./ -PHPimap_unsubscribeboolstring+. 'PHPimap_undeleteboolintint    4 m:{H\1   d 4    -U 1PHPingres_result_seekboolint1T %PHPingres_querystringarraystring(S )PHPingres_preparestringBR +PHPingres_pconnectresourcestringstringstringarray&Q +PHPingres_num_rowsint(P /PHPingres_num_fieldsint)O /PHPingres_next_errorbool*N 1PHPingres_free_resultbool.M /PHPingres_field_typestringint,L 1PHPingres_field_scaleintint0K 9PHPingres_field_precisionintint0J 7PHPingres_field_nullableboolint.I /PHPingres_field_namestringint-H 3PHPingres_field_lengthintint)G -PHPingres_fetch_rowarray/F =PHPingres_fetch_proc_returnint0E 3PHPingres_fetch_objectobjectint+D 1PHPingres_fetch_assocarray.C 1PHPingres_fetch_arrayarrayint1B )PHPingres_executeboolarraystring    \ a-[#k*   \                                                  @f A%PHPintlcal_get_actual_minimumintIntlCalendarint@e A%PHPintlcal_get_actual_maximumintIntlCalendarintEd =%PHPintlcal_field_differencefloatIntlCalendarfloatint>c )%%PHPintlcal_equalsboolIntlCalendarIntlCalendar4b '%PHPintlcal_clearboolIntlCalendarint>a )%%PHPintlcal_beforeboolIntlCalendarIntlCalendar=` '%%PHPintlcal_afterboolIntlCalendarIntlCalendar5_ #%PHPintlcal_addboolIntlCalendarintint#^ PHPintdivintintint+] -PHPinotify_rm_watchboolint%\ %PHPinotify_readarray([ /PHPinotify_queue_lenint(Z %PHPinotify_initresource1Y /PHPinotify_add_watchintstringint<X ;PHPingres_unbuffered_querystringarraystring3W 9PHPingres_set_environmentboolarray'V +PHPingres_rollbackbool    P ?E	V   P                                          6u -%PHPintlcal_get_typestringIntlCalendar5t -%PHPintlcal_get_timefloatIntlCalendarGs U%PHPintlcal_get_skipped_wall_time_optionintIntlCalendarHr W%PHPintlcal_get_repeated_wall_time_optionintIntlCalendar(q +PHPintlcal_get_nowfloat9p 3%PHPintlcal_get_minimumintIntlCalendarintIo Y%PHPintlcal_get_minimal_days_in_first_weekintIntlCalendar9n 3%PHPintlcal_get_maximumintIntlCalendarint;m 1%PHPintlcal_get_localestringIntlCalendarint?l ?%PHPintlcal_get_least_maximumintIntlCalendarint2k #'PHPintlcal_getintIntlCalendar>intBj E%PHPintlcal_get_greatest_minimumintIntlCalendarint@i G%PHPintlcal_get_first_day_of_weekintIntlCalendarBh E%PHPintlcal_get_day_of_week_typeintIntlCalendarint6g GPHPintlcal_get_available_localesarray    , w,|Av'   [ ,      , +PHPintl_error_namestringint> 7%PHPintlcal_set_time_zoneboolIntlCalendarmixed: -%PHPintlcal_set_timefloatIntlCalendarfloatK U%PHPintlcal_set_skipped_wall_time_optionboolIntlCalendarintL  W%PHPintlcal_set_repeated_wall_time_optionboolIntlCalendarint= 3%PHPintlcal_set_lenientboolIntlCalendarstringD~ G%PHPintlcal_set_first_day_of_weekboolIntlCalendarintA} #%PHPintlcal_setboolIntlCalendarintintintintintint8| %%PHPintlcal_rollboolIntlCalendarintmixed<{ 1%PHPintlcal_is_weekendfloatIntlCalendarfloat5z )%PHPintlcal_is_setboolIntlCalendarint6y 1%PHPintlcal_is_lenientboolIntlCalendarHx =%%PHPintlcal_is_equivalent_toboolIntlCalendarIntlCalendar<w =%PHPintlcal_in_daylight_timeboolIntlCalendarGv I%PHPintlcal_get_weekend_transitionintIntlCalendarstring    ` sHf8`6	    `                                              & %PHPjudy_versionstring$ PHPjudy_typeintjudy) PHPjoinstringstringarray* !PHPJewishToJDintintintint* !PHPjewishtojdintintintint' !PHPJDToJulianstringint' !PHPjdtojulianstringint* 'PHPJDToGregorianstringint* 'PHPjdtogregorianstringint' !PHPJDToFrenchstringint' !PHPjdtofrenchstringint+ #PHPJDMonthNamestringintint+ #PHPjdmonthnamestringintint% #PHPJDDayOfWeekintint% #PHPjddayofweekintint1
 ;PHPjava_last_exception_getobject-	 ?PHPjava_last_exception_clear( !PHPis_taintedboolstring* +PHPintl_is_failureboolint0 9PHPintl_get_error_messagestring* 3PHPintl_get_error_codeint    c o8Hk'   c                                                         ?* ?PHPlocale_get_display_scriptstringstringstring?) ?PHPlocale_get_display_regionstringstringstring=( ;PHPlocale_get_display_namestringstringstringA' CPHPlocale_get_display_languagestringstringstring,& 1PHPlocale_get_defaultstring6% ;PHPlocale_get_all_variantsarraystring=$ 7PHPlocale_filter_matchesboolstringstringbool2# )#PHPlocale_composestring,boolarray<" ;#PHPlocale_accept_from_httpstring,boolstring3! APHPlitespeed_response_headersarray2  ?PHPlitespeed_request_headersarray% 'PHPleak_variablebool PHPleakint4 /PHPldap_modify_batchboolstringarray4 #PHPldap_escapestringstringstringint* !PHPJulianToJDintintintint* !PHPjuliantojdintintintint    5 Ep6h5   b 5           *; 1PHPmailparse_msg_freeboolM: WPHPmailparse_msg_extract_whole_part_filestringstringcallable<9 APHPmailparse_msg_extract_partstringcallableA8 KPHPmailparse_msg_extract_part_filestringcallable07 5PHPmailparse_msg_createresource@6 YPHPmailparse_determine_best_xfer_encodingstring(5 /PHPlzf_optimized_forint.4 )PHPlzf_decompressstringstring,3 %PHPlzf_compressstringstring72 1#PHPlocale_set_defaultstring,boolstring+1 %PHPlocale_parsearraystring<0 'PHPlocale_lookupstringarraystringboolstring1/ /PHPlocale_get_scriptstringstring1. /PHPlocale_get_regionstringstring;- CPHPlocale_get_primary_languagestringstring7, 3!PHPlocale_get_keywordsarray,boolstring@+ APHPlocale_get_display_variantstringstringstring    7 W#\*[5   d 7           *M +PHPmaxdb_data_seekboolintJL 'PHPmaxdb_connectresourcestringstringstringstringintstring-K 3PHPmaxdb_connect_errorstring*J 3PHPmaxdb_connect_errnoint$I %PHPmaxdb_commitbool#H #PHPmaxdb_closebool2G =PHPmaxdb_character_set_namestring;F /PHPmaxdb_change_userboolstringstringstring,E -PHPmaxdb_autocommitboolbool*D 3PHPmaxdb_affected_rowsint/C 9PHPmailparse_uudecode_allarrayEB ;PHPmailparse_stream_encodeboolresourceresourcestring?A MPHPmailparse_rfc822_parse_addressesarraystring:@ =PHPmailparse_msg_parse_fileresourcestring1? 3PHPmailparse_msg_parseboolstring4> CPHPmailparse_msg_get_structurearray8= 9PHPmailparse_msg_get_partresourcestring4< CPHPmailparse_msg_get_part_dataarray    > p@vN#sD    f >            %b /PHPmaxdb_free_result'a -PHPmaxdb_field_tellint+` -PHPmaxdb_field_seekboolint(_ /PHPmaxdb_field_countint#^ +PHPmaxdb_fetch_row2] 1PHPmaxdb_fetch_objectobjectobject,\ 3PHPmaxdb_fetch_lengthsarray&[ 1PHPmaxdb_fetch_fields%Z /PHPmaxdb_fetch_field/Y =PHPmaxdb_fetch_field_directint*X /PHPmaxdb_fetch_assocarray(W /PHPmaxdb_fetch_arrayint%V #PHPmaxdb_errorstring"U #PHPmaxdb_errnoint.T 9PHPmaxdb_enable_rpl_parsebool6S IPHPmaxdb_enable_reads_from_masterbool8R 9PHPmaxdb_embedded_connectresourcestring-Q 7PHPmaxdb_dump_debug_infobool/P ;PHPmaxdb_disable_rpl_parsebool3O KPHPmaxdb_disable_reads_from_master%N #PHPmaxdb_debugstring    ` l;	a9{Q)    `                                                Kv 1PHPmaxdb_real_connectboolstringstringstringstringintstring(u #PHPmaxdb_querystringint"t !PHPmaxdb_pingbool(s 'PHPmaxdb_optionsboolint%r )PHPmaxdb_num_rowsint'q -PHPmaxdb_num_fieldsint)p /PHPmaxdb_next_resultbool/o /PHPmaxdb_multi_queryboolstring*n 1PHPmaxdb_more_resultsbool0m 1PHPmaxdb_master_queryboolstring%l !PHPmaxdb_killboolint#k +PHPmaxdb_insert_id&j !PHPmaxdb_initresource$i !PHPmaxdb_infostring/h =PHPmaxdb_get_server_versionint/g 7PHPmaxdb_get_server_infostring.f 5PHPmaxdb_get_proto_infostring-e 3PHPmaxdb_get_host_infostring/d =PHPmaxdb_get_client_versionint/c 7PHPmaxdb_get_client_infostring    a jAW0b0    a                                                   5	 APHPmaxdb_stmt_close_long_databoolint( -PHPmaxdb_stmt_closebool. 9PHPmaxdb_stmt_bind_resultbool8 7PHPmaxdb_stmt_bind_paramboolstringarray/ =PHPmaxdb_stmt_affected_rowsint$ !PHPmaxdb_statstringC 'PHPmaxdb_ssl_setboolstringstringstringstringstring( )PHPmaxdb_sqlstatestring3 /PHPmaxdb_server_initboolarrayarray$  -PHPmaxdb_server_end. -PHPmaxdb_send_queryboolstring-~ +PHPmaxdb_select_dbboolstring+} 5PHPmaxdb_rpl_query_typeint'| +PHPmaxdb_rpl_probebool.{ ;PHPmaxdb_rpl_parse_enabledint&z )PHPmaxdb_rollbackbool'y %PHPmaxdb_reportboolint.x -PHPmaxdb_real_queryboolstring8w =PHPmaxdb_real_escape_stringstringstring    Y wJi:i7
    Y                                         * 3PHPmaxdb_warning_countint, -PHPmaxdb_use_resultresource) /PHPmaxdb_thread_safebool& +PHPmaxdb_thread_idint* 1PHPmaxdb_store_resultbool/ ;PHPmaxdb_stmt_store_resultbool- 3PHPmaxdb_stmt_sqlstatestring: ?PHPmaxdb_stmt_send_long_databoolintstring6 APHPmaxdb_stmt_result_metadataresource( -PHPmaxdb_stmt_resetbool, 1PHPmaxdb_stmt_preparestring- 9PHPmaxdb_stmt_param_countint* 3PHPmaxdb_stmt_num_rowsint) +PHPmaxdb_stmt_initobject* 9PHPmaxdb_stmt_free_result( -PHPmaxdb_stmt_fetchbool* 1PHPmaxdb_stmt_executebool* -PHPmaxdb_stmt_errorstring' -PHPmaxdb_stmt_errnoint/
 5PHPmaxdb_stmt_data_seekboolint    F T1V$m:    u F                      ,1 1PHPm_iscommadelimitedintint)0 %PHPm_initengineintstring&/ !PHPm_initconnresource.. PHPmhashstringintstringstring<- -PHPmhash_keygen_s2kstringintstringstringint0, 3PHPmhash_get_hash_namestringint.+ 5PHPmhash_get_block_sizeintint"* #PHPmhash_countint+) #PHPm_getheaderstringintint0( 3PHPm_getcommadelimitedstringint/' PHPm_getcellstringintstringint1& )PHPm_getcellbynumstringintintint#% +PHPm_destroyengine%$ 'PHPm_destroyconnbool(# 'PHPm_deletetransboolint+" /PHPm_connectionerrorstring ! PHPm_connectint2  =PHPm_completeauthorizationsintint' 'PHPm_checkstatusintintJ =PHPmb_ereg_replace_callbackstringstringstringstringstring    U `.
j:V#    U                                   2F +PHPm_responseparamstringintstring*E )PHPm_responsekeysarrayint.D /PHPmqseries_strerrorstringint8C %PHPmqseries_setintarrayintarrayintarray0B %PHPmqseries_putarrayarraystring'A 'PHPmqseries_put1string)@ 'PHPmqseries_openarrayint.? %PHPmqseries_inqintarrayintint6> %PHPmqseries_getarrayarrayintstringint!= 'PHPmqseries_disc-< )PHPmqseries_connxstringarray'; 'PHPmqseries_connstring!: 'PHPmqseries_cmit%9 )PHPmqseries_closeint'8 )PHPmqseries_beginarray!7 'PHPmqseries_back/6 7PHPm_parsecommadelimitedintint#5 PHPm_numrowsintint&4 %PHPm_numcolumnsintint 3 PHPm_monitorint+2 -PHPm_maxconntimeoutboolint    7 v:	vBwJ   o 7         5Y /PHPmsession_set_databoolstringstring6X %PHPmsession_setboolstringstringstring1W 1PHPmsession_set_arraystringarray-V -PHPmsession_randstrstringint;U +PHPmsession_pluginstringstringstringstring*T 'PHPmsession_lockintstring/S -PHPmsession_listvararraystring&R 'PHPmsession_listarray2Q %PHPmsession_incstringstringstring8P %PHPmsession_getstringstringstringstring1O /PHPmsession_get_datastringstring1N 1PHPmsession_get_arrayarraystring2M 'PHPmsession_findarraystringstring'L 3PHPmsession_disconnect.K -PHPmsession_destroyboolstring9J +PHPmsession_createboolstringstringstring%I )PHPmsession_countint4H -PHPmsession_connectboolstringstring(G )PHPm_returnstatusintint    i b8~S*i$   i                                                               ;j %-PHPmsgfmt_parsearraymessageformatterstring<i 1-PHPmsgfmt_get_patternstringmessageformatter;h /-PHPmsgfmt_get_localestringmessageformatterBg =-PHPmsgfmt_get_error_messagestringmessageformatter<f 7-PHPmsgfmt_get_error_codeintmessageformatter<e '-PHPmsgfmt_formatstringmessageformatterarray@d 7PHPmsgfmt_format_messagestringstringstringarray&c %PHPm_settimeoutintint(b PHPm_setsslintstringint1a )PHPm_setssl_filesintstringstring,` +PHPm_setssl_cafileintstring'_ PHPm_setipintstringint*^ 'PHPm_setdropfileintstring'] 'PHPm_setblockingintint/\ +PHPmsession_unlockintstringint6[ 'PHPmsession_uniqstringintstringstring0Z -PHPmsession_timeoutintstringint    H {O*f9[+    w H                        ,~ +PHPmsql_field_typestringint*} -PHPmsql_field_tableintint*| +PHPmsql_field_seekboolint,{ +PHPmsql_field_namestringint(z )PHPmsql_field_lenintint-y -PHPmsql_field_flagsstringint'x )PHPmsql_fetch_rowarray+w /PHPmsql_fetch_objectobject-v -PHPmsql_fetch_fieldobjectint,u -PHPmsql_fetch_arrayarrayint$t !PHPmsql_errorstring*s %PHPmsql_drop_dbboolstring5r 'PHPmsql_db_queryresourcestringstring)q )PHPmsql_data_seekboolint,p )PHPmsql_create_dbboolstring.o %PHPmsql_connectresourcestring"n !PHPmsql_closebool)m 1PHPmsql_affected_rowsint@l 1-PHPmsgfmt_set_patternboolmessageformatterstring?k 5PHPmsgfmt_parse_messagearraystringstringstring    = n9].oK#    q =           1 5PHPmysqli_affected_rowsintmysqli* +PHPm_verifysslcertboolint- 1PHPm_verifyconnectionboolint. 5PHPm_validateidentifierintint! PHPm_uwaitintint% #PHPm_transsendintint! !PHPm_transnewint3 'PHPm_transkeyvalintintstringstring% )PHPm_transinqueueint)
 1PHPm_transactionssentint2	 1PHPm_sslcert_gen_hashstringstring, )PHPmsql_select_dbboolstring( #PHPmsql_resultstringint, !PHPmsql_queryresourcestring/ 'PHPmsql_pconnectresourcestring$ 'PHPmsql_num_rowsint& +PHPmsql_num_fieldsint2 -PHPmsql_list_tablesresourcestring8 -PHPmsql_list_fieldsresourcestringstring)  'PHPmsql_list_dbsresource( -PHPmsql_free_resultbool    A CuD	f/   y A                       5$ ;PHPmysqli_enable_rpl_parseboolmysqli=# KPHPmysqli_enable_reads_from_masterboolmysqliB" EPHPmysqli_embedded_server_startboolboolarrayarray.! APHPmysqli_embedded_server_end4  9PHPmysqli_dump_debug_infoboolmysqli6 =PHPmysqli_disable_rpl_parseboolmysqli> MPHPmysqli_disable_reads_from_masterboolmysqli& %PHPmysqli_debugstring8 -'PHPmysqli_data_seekboolmysqli_resultint. 5PHPmysqli_connect_errorstring+ 5PHPmysqli_connect_errnoint4 'PHPmysqli_commitboolmysqliintstring* %PHPmysqli_closeboolmysqli9 ?PHPmysqli_character_set_namestringmysqliB 1PHPmysqli_change_userboolmysqlistringstringstring? =PHPmysqli_begin_transactionboolmysqliintstring3 /PHPmysqli_autocommitboolmysqlibool    0 ]"j-{?   c 0      05 ;PHPmysqli_get_client_statsarray64 9PHPmysqli_get_client_infostringmysqli23 1PHPmysqli_get_charsetobjectmysqli32 1'PHPmysqli_free_resultmysqli_result51 /'PHPmysqli_field_tellintmysqli_result90 /'PHPmysqli_field_seekboolmysqli_resultint// 1PHPmysqli_field_countintmysqli6. -'PHPmysqli_fetch_rowarraymysqli_resultD- 3'!PHPmysqli_fetch_objectmysqli_resultstringarray,null:, 5'PHPmysqli_fetch_lengthsarraymysqli_result9+ 3'PHPmysqli_fetch_fieldsarraymysqli_result9* 1'PHPmysqli_fetch_fieldobjectmysqli_result=) ?'PHPmysqli_fetch_field_directmysqli_resultint8( 1'PHPmysqli_fetch_assocarraymysqli_result6' 1'PHPmysqli_fetch_arraymysqli_resultint4& -'PHPmysqli_fetch_allmysqli_resultint0% /PHPmysqli_error_listarraymysqli    = S!zDu<	   i =                 )G #PHPmysqli_pingboolmysqli/F )PHPmysqli_optionsboolmysqliint3E +'PHPmysqli_num_rowsintmysqli_result5D /'PHPmysqli_num_fieldsintmysqli_result0C 1PHPmysqli_next_resultboolmysqli6B 1PHPmysqli_multi_queryboolmysqlistring1A 3PHPmysqli_more_resultsboolmysqli7@ 3PHPmysqli_master_queryboolmysqlistring/? 7PHPmysqli_link_constructobject,> #PHPmysqli_killboolmysqliint3= 3PHPmysqli_get_warningsobjectmysqli6< ?PHPmysqli_get_server_versionintmysqli6; 9PHPmysqli_get_server_infostringmysqli2: 7PHPmysqli_get_proto_infointmysqli/9 9PHPmysqli_get_links_statsarray48 5PHPmysqli_get_host_infostringmysqli:7 CPHPmysqli_get_connection_statsarraymysqli66 ?PHPmysqli_get_client_versionintmysqli    ? <Q&R   x ?                     6X 1PHPmysqli_set_charsetboolmysqlistring5W /PHPmysqli_send_queryboolstringmysqli4V -PHPmysqli_select_dbboolmysqlistring1U ?PHPmysqli_savepoint_libmysqlbool4T -PHPmysqli_savepointboolmysqlistring8S 7PHPmysqli_rpl_query_typeintstringmysqli.R -PHPmysqli_rpl_probeboolmysqli5Q =PHPmysqli_rpl_parse_enabledintmysqli-P +PHPmysqli_rollbackboolmysqli(O 'PHPmysqli_reportboolint<N =PHPmysqli_release_savepointboolmysqlistring/M )PHPmysqli_refreshboolmysqliint5L /PHPmysqli_real_queryboolmysqlistring?K ?PHPmysqli_real_escape_stringstringmysqlistringUJ 3PHPmysqli_real_connectboolmysqlistringstringstringstringintstringint/I %PHPmysqli_querymysqlistringint7H #PHPmysqli_pollintarrayarrayarrayintint    < |CT_%   x <                    9h ;#PHPmysqli_stmt_field_countintmysqli_stmt4g /#PHPmysqli_stmt_fetchboolmysqli_stmt6f 3#PHPmysqli_stmt_executeboolmysqli_stmt:e 9#PHPmysqli_stmt_error_listarraymysqli_stmt7d 7#PHPmysqli_stmt_data_seekmysqli_stmtint4c /#PHPmysqli_stmt_closeboolmysqli_stmt:b ;#PHPmysqli_stmt_bind_resultboolmysqli_stmt?a 9#PHPmysqli_stmt_bind_paramboolmysqli_stmtstring<` 5#PHPmysqli_stmt_attr_setintmysqli_stmtintint9_ 5#PHPmysqli_stmt_attr_getintmysqli_stmtint;^ ?#PHPmysqli_stmt_affected_rowsintmysqli_stmt%] #PHPmysqli_statmysqliJ\ )PHPmysqli_ssl_setboolmysqlistringstringstringstringstring6[ 1PHPmysqli_slave_queryboolmysqlistringEZ KPHPmysqli_set_local_infile_handlerboolmysqlicallable9Y KPHPmysqli_set_local_infile_defaultmysqli    Y I_#d&    Y                                                 9x CPHPmysqlnd_memcache_get_configarraymixed1w 5PHPmysqli_warning_countintmysqli*v 1PHPmysqli_thread_safebool-u -PHPmysqli_thread_idintmysqli;t =#PHPmysqli_stmt_store_resultboolmysqli_stmtFs A#PHPmysqli_stmt_send_long_databoolmysqli_stmtintstring4r /#PHPmysqli_stmt_resetboolmysqli_stmt<q 3#PHPmysqli_stmt_prepareboolmysqli_stmtstring9p ;#PHPmysqli_stmt_param_countintmysqli_stmt6o 5#PHPmysqli_stmt_num_rowsintmysqli_stmt:n ;#PHPmysqli_stmt_next_resultboolmysqli_stmt:m =!PHPmysqli_stmt_more_resultsboolmysql_stmt4l 7#PHPmysqli_stmt_insert_idmysqli_stmt=k =#PHPmysqli_stmt_get_warningsobjectmysqli_stmt;j 9#PHPmysqli_stmt_get_resultobjectmysqli_stmt6i ;#PHPmysqli_stmt_free_resultmysqli_stmt    2 }8qAN   f 2          1 ?PHPmysqlnd_qc_change_handlerbool8 9PHPmysqlnd_ms_xa_rollbackintmixedstring6 -PHPmysqlnd_ms_xa_gcintmixedstringbool6 5PHPmysqlnd_ms_xa_commitintmixedstring8 3PHPmysqlnd_ms_xa_beginintmixedstringint= KPHPmysqlnd_ms_set_user_pick_serverboolstring: 1PHPmysqlnd_ms_set_qosboolmixedintintmixed7 APHPmysqlnd_ms_query_is_selectintstring9  7PHPmysqlnd_ms_match_wildboolstringstring- 5PHPmysqlnd_ms_get_statsarrayA~ SPHPmysqlnd_ms_get_last_used_connectionarraymixed7} =PHPmysqlnd_ms_get_last_gtidstringmixedF| IPHPmysqlnd_ms_fabric_select_shardarraymixedmixedmixedB{ KPHPmysqlnd_ms_fabric_select_globalarraymixedmixed5z ;PHPmysqlnd_ms_dump_serversarraymixedHy 5PHPmysqlnd_memcache_setboolmixedMemcachedstringcallable    G ](w1Q  q G                                 ' 'PHPncurses_addchintintH I1PHPmysqlnd_uh_set_statement_proxyboolMysqlndUhStatementP K3PHPmysqlnd_uh_set_connection_proxyboolMysqlndUhConnectionmysqli? GPHPmysqlnd_uh_convert_to_mysqlndresourcemysqlid EPHPmysqlnd_qc_set_user_handlersboolstringstringstringstringstringstringstringstring< IPHPmysqlnd_qc_set_storage_handlerboolstring7 =PHPmysqlnd_qc_set_is_selectmixedstringC IPHPmysqlnd_qc_set_cache_conditionboolintmixedmixed7 IPHPmysqlnd_qc_get_query_trace_logarrayB _PHPmysqlnd_qc_get_normalized_query_trace_logarray/ 9PHPmysqlnd_qc_get_handlerarray2 ?PHPmysqlnd_qc_get_core_statsarray2 ?PHPmysqlnd_qc_get_cache_infoarray:
 OPHPmysqlnd_qc_get_available_handlersarray.	 9PHPmysqlnd_qc_clear_cachebool    W j<|R,l9    W                                       8+ 7PHPncurses_color_contentintintintintint(* -PHPncurses_clrtoeolbool() -PHPncurses_clrtobotbool%( 'PHPncurses_clearbool&' )PHPncurses_cbreakbool0& =PHPncurses_can_change_colorbool+% 5PHPncurses_bottom_panelint=$ )PHPncurses_borderintintintintintintintintint&# +PHPncurses_bkgdsetint&" %PHPncurses_bkgdintint#! %PHPncurses_beepint'  -PHPncurses_baudrateint) +PHPncurses_attrsetintint( )PHPncurses_attronintint) +PHPncurses_attroffintint: GPHPncurses_assume_default_colorsintintint+ )PHPncurses_addstrintstring/ +PHPncurses_addnstrintstringint- -PHPncurses_addchstrintstring1 /PHPncurses_addchnstrintstringint    @ p@_6j<    p @            -A -PHPncurses_getmouseboolarray*@ -PHPncurses_getmaxyxintint$? 'PHPncurses_getchint(> -PHPncurses_flushinpbool%= 'PHPncurses_flashbool"< )PHPncurses_filter+; /PHPncurses_erasecharstring%: 'PHPncurses_erasebool"9 #PHPncurses_endint*8 -PHPncurses_echocharintint$7 %PHPncurses_echobool(6 -PHPncurses_doupdatebool&5 )PHPncurses_delwinbool)4 /PHPncurses_del_panelbool(3 -PHPncurses_deletelnbool%2 'PHPncurses_delchbool.1 5PHPncurses_delay_outputintint.0 9PHPncurses_def_shell_modebool-/ 7PHPncurses_def_prog_modebool2. 1PHPncurses_define_keyintstringint*- -PHPncurses_curs_setintint+, /PHPncurses_color_setintint    ^ {R){X k=    ^                                            *V -PHPncurses_killcharstring)U )PHPncurses_keypadintbool+T 'PHPncurses_keyokintintbool(S -PHPncurses_isendwinbool*R 'PHPncurses_instrintstring+Q )PHPncurses_insstrintstring'P -PHPncurses_insertlnint*O -PHPncurses_insdellnintint'N 'PHPncurses_inschintint1M /PHPncurses_init_pairintintintint5L 1PHPncurses_init_colorintintintintint K %PHPncurses_init&J %PHPncurses_inchstring*I 'PHPncurses_hlineintintint)H 1PHPncurses_hide_panelint)G +PHPncurses_has_keyintint&F )PHPncurses_has_ilbool&E )PHPncurses_has_icbool*D 1PHPncurses_has_colorsbool+C /PHPncurses_halfdelayintint'B 'PHPncurses_getyxintint    : wF~B
g8	   q :            4i /PHPncurses_mvwaddstrintintintstring2h +PHPncurses_mvvlineintintintintint+g )PHPncurses_mvinchintintint2f +PHPncurses_mvhlineintintintintint,e +PHPncurses_mvgetchintintint,d +PHPncurses_mvdelchintintint0c 'PHPncurses_mvcurintintintintint3b -PHPncurses_mvaddstrintintintstring7a /PHPncurses_mvaddnstrintintintstringint5` 1PHPncurses_mvaddchstrintintintstring9_ 3PHPncurses_mvaddchnstrintintintstringint/^ +PHPncurses_mvaddchintintintint/] 1PHPncurses_move_panelintintint)\ %PHPncurses_moveintintint5[ 3PHPncurses_mouse_trafoboolintintbool.Z /PHPncurses_mousemaskintintint/Y 7PHPncurses_mouseintervalintint'X %PHPncurses_metaintbool*W -PHPncurses_longnamestring    \ s:rJ|<     \                                            )} +PHPncurses_refreshintint#| #PHPncurses_rawbool#{ +PHPncurses_qiflush)z %PHPncurses_putpintstring9y -PHPncurses_prefreshintintintintintintint=x 5PHPncurses_pnoutrefreshintintintintintintint0w 5PHPncurses_panel_windowresource/v 3PHPncurses_panel_belowresource/u 3PHPncurses_panel_aboveresource4t 5PHPncurses_pair_contentintintintint%s 'PHPncurses_norawbool%r /PHPncurses_noqiflush$q %PHPncurses_nonlbool&p )PHPncurses_noechobool(o -PHPncurses_nocbreakbool"n !PHPncurses_nlbool6m )PHPncurses_newwinresourceintintintint-l /PHPncurses_new_panelresource0k )PHPncurses_newpadresourceintint'j 'PHPncurses_napmsintint    6 nD^/zJ    c 6    * 3PHPncurses_slk_restoreint* 3PHPncurses_slk_refreshint/ ;PHPncurses_slk_noutrefreshbool+ -PHPncurses_slk_initboolint+ /PHPncurses_slk_colorintint) /PHPncurses_slk_clearbool- 3PHPncurses_slk_attrsetintint, 1PHPncurses_slk_attronintint-
 3PHPncurses_slk_attroffintint'	 -PHPncurses_slk_attrint) 1PHPncurses_show_panelint, +PHPncurses_scr_setintstring0 3PHPncurses_scr_restoreintstring& %PHPncurses_scrlintint- -PHPncurses_scr_initintstring- -PHPncurses_scr_dumpintstring' +PHPncurses_savettybool' +PHPncurses_resettybool/  =PHPncurses_reset_shell_modeint. ;PHPncurses_reset_prog_modeint,~ 7PHPncurses_replace_panelint    ? uKqCZ"    l ?             *' -PHPncurses_wattroffintint/& +PHPncurses_waddstrintstringint(% )PHPncurses_waddchintint*$ 'PHPncurses_vlineintintint)# +PHPncurses_vidattrintint5" APHPncurses_use_extended_namesintbool'! +PHPncurses_use_envbool2  APHPncurses_use_default_colorsbool) 7PHPncurses_update_panels/ 1PHPncurses_ungetmouseboolarray) +PHPncurses_ungetchintint+ /PHPncurses_typeaheadintint( /PHPncurses_top_panelint& +PHPncurses_timeoutint* -PHPncurses_termnamestring) /PHPncurses_termattrsbool* 3PHPncurses_start_colorint' -PHPncurses_standoutint' -PHPncurses_standendint( /PHPncurses_slk_touchint3 +PHPncurses_slk_setboolintstringint    X f>X+}O/    X                                        1; ;PHPnewt_checkbox_get_valuestring7: 5PHPnewt_centered_windowintintintstring39 #PHPnewt_buttonresourceintintstring08 +PHPnewt_button_barresourcearray7 PHPnewt_bell+6 )PHPncurses_wvlineintintint(5 /PHPncurses_wstandoutint(4 /PHPncurses_wstandendint'3 -PHPncurses_wrefreshint+2 5PHPncurses_wnoutrefreshint*1 'PHPncurses_wmoveintintint60 5PHPncurses_wmouse_trafoboolintintbool+/ )PHPncurses_whlineintintint%. )PHPncurses_wgetchint%- )PHPncurses_weraseint,, 1PHPncurses_wcolor_setintint%+ )PHPncurses_wclearint>* +PHPncurses_wborderintintintintintintintintint*) -PHPncurses_wattrsetintint)( +PHPncurses_wattronintint    / Tg](   z N /     L PHPnewt_cls)K 7PHPnewt_clear_key_buffer3J EPHPnewt_checkbox_tree_set_widthint<I QPHPnewt_checkbox_tree_set_entry_valuestring6H EPHPnewt_checkbox_tree_set_entrystring2G IPHPnewt_checkbox_tree_set_current:F 1PHPnewt_checkbox_treeresourceintintintintFE =PHPnewt_checkbox_tree_multiresourceintintintstringint9D MPHPnewt_checkbox_tree_get_selectionarrayEC YPHPnewt_checkbox_tree_get_multi_selectionarraystring<B QPHPnewt_checkbox_tree_get_entry_valuestring2A IPHPnewt_checkbox_tree_get_current5@ EPHPnewt_checkbox_tree_find_itemarray>? CPHPnewt_checkbox_tree_add_itemstringintintint1> ;PHPnewt_checkbox_set_valuestring1= ;PHPnewt_checkbox_set_flagsintintA< 'PHPnewt_checkboxresourceintintstringstringstring    H [& \+\5   | H                        1` 7PHPnewt_form_get_currentresource%_ /PHPnewt_form_destroy,^ 7PHPnewt_form_add_hot_keyint1] =PHPnewt_form_add_componentsarray+\ ;PHPnewt_form_add_component$[ 'PHPnewt_finishedint.Z 5PHPnewt_entry_set_flagsintint1Y 7PHPnewt_entry_set_filtercallable,X )PHPnewt_entry_setstringbool8W !PHPnewt_entryresourceintintintstringint.V 5PHPnewt_entry_get_valuestring3U 3PHPnewt_draw_root_textintintstring"T )PHPnewt_draw_form!S !PHPnewt_delayint"R )PHPnewt_cursor_on#Q +PHPnewt_cursor_off2P -PHPnewt_create_gridresourceintint2O APHPnewt_component_takes_focusbool/N CPHPnewt_component_add_callback;M 3PHPnewt_compact_buttonresourceintintstring    E tFf+\'    E                       8s ?PHPnewt_grid_v_close_stackedresourceint3r ;PHPnewt_grid_simple_windowresourceBq 3PHPnewt_grid_set_fieldintintintintintintintintint)p +PHPnewt_grid_placeintint2o 3PHPnewt_grid_h_stackedresourceint8n ?PHPnewt_grid_h_close_stackedresourceint3m 1PHPnewt_grid_get_sizeresouceintint&l )PHPnewt_grid_freebool2k 9PHPnewt_grid_basic_windowresource8j MPHPnewt_grid_add_components_to_formbool.i 5PHPnewt_get_screen_sizeintint)h 1PHPnewt_form_watch_fdint*g 3PHPnewt_form_set_widthint*f 3PHPnewt_form_set_timerint&e 1PHPnewt_form_set_size+d 5PHPnewt_form_set_heightint/c =PHPnewt_form_set_backgroundint&b 'PHPnewt_form_runarray.a PHPnewt_formresourcestringint    < X5 q>m<   k <              , 7PHPnewt_listbox_set_dataint/ =PHPnewt_listbox_set_currentint3 KPHPnewt_listbox_set_current_by_key/ =PHPnewt_listbox_select_itemint4 %PHPnewt_listboxresourceintintintint. ;PHPnewt_listbox_item_countint3  ?PHPnewt_listbox_insert_entrystring3 APHPnewt_listbox_get_selectionarray2~ =PHPnewt_listbox_get_currentstring-} ?PHPnewt_listbox_delete_entry0| EPHPnewt_listbox_clear_selection&{ 1PHPnewt_listbox_clear3z ?PHPnewt_listbox_append_entrystring-y 3PHPnewt_label_set_textstring2x !PHPnewt_labelresourceintintstring w PHPnewt_initint2v =PHPnewt_grid_wrapped_windowstring;u CPHPnewt_grid_wrapped_window_atstringintint2t 3PHPnewt_grid_v_stackedresourceint    2 m'n>\9    a 2  , 1PHPnewt_scrollbar_setintint% )PHPnewt_scale_setint2 !PHPnewt_scaleresourceintintintint) 'PHPnewt_run_formresource #PHPnewt_resume* 1PHPnewt_resize_screenbool  %PHPnewt_refresh? -PHPnewt_reflow_textstringstringintintintintint) 7PHPnewt_redraw_help_line2 9PHPnewt_radio_get_currentresource< -PHPnewt_radiobuttonresourceintintstringbool- 3PHPnewt_push_help_linestring# +PHPnewt_pop_window& 1PHPnewt_pop_help_line9 -PHPnewt_open_windowintintintintintstring+ /PHPnewt_listitem_setstringC
 'PHPnewt_listitemresourceintintstringboolresouceint*	 9PHPnewt_listitem_get_data- 9PHPnewt_listbox_set_widthint3 9PHPnewt_listbox_set_entryintstring    I xD]\	   I                                 E* -PHPnewt_win_ternaryintstringstringstringstringstring<) /PHPnewt_win_messagevstringstringstringarray6( -PHPnewt_win_messagestringstringstringP' 'PHPnewt_win_menuintstringstringintintintintarrayintstringstringP& -PHPnewt_win_entriesintstringstringintintintintarraystringstring>% +PHPnewt_win_choiceintstringstringstringstring%$ /PHPnewt_wait_for_keyB# ;PHPnewt_vertical_scrollbarresourceintintintintint/" 7PHPnewt_textbox_set_textstring.! ;PHPnewt_textbox_set_heightint7  %PHPnewt_textboxresourceintintintintintG 7PHPnewt_textbox_reflowedresourceintintcharintintintint1 APHPnewt_textbox_get_num_linesint  %PHPnewt_suspend5 ?PHPnewt_set_suspend_callbackcallable* 9PHPnewt_set_help_callback    6 V!Ws5    g 6          .< 7PHPnsapi_request_headersarray,; 'PHPnotes_versionfloatstring1: %PHPnotes_unreadarraystringstring19 %PHPnotes_searcharraystringstring48 -PHPnotes_nav_createboolstringstring;7 /PHPnotes_mark_unreadboolstringstringstring96 +PHPnotes_mark_readboolstringstringstring-5 +PHPnotes_list_msgsboolstring:4 /PHPnotes_header_infoobjectstringstringint83 +PHPnotes_find_noteintstringstringstring+2 'PHPnotes_drop_dbboolstring51 /PHPnotes_create_noteboolstringstring-0 +PHPnotes_create_dbboolstring1/ 'PHPnotes_copy_dbboolstringstring2. !PHPnotes_bodyarraystringstringint7- 5PHPnormalizer_normalizestringstringint9, =PHPnormalizer_is_normalizedboolstringint1+ PHPngettextstringstringstringint    S q%g#e   S                                             AK /+PHPnumfmt_set_symbolboolnumberformatterintstring?J 1+PHPnumfmt_set_patternboolnumberformatterstringAI 5+PHPnumfmt_set_attributeboolnumberformatterintintEH ?+PHPnumfmt_get_text_attributestringnumberformatterint=G /+PHPnumfmt_get_symbolstringnumberformatterint;F 1+PHPnumfmt_get_patternstringnumberformatter=E /+PHPnumfmt_get_localestringnumberformatterintAD =+PHPnumfmt_get_error_messagestringnumberformatter;C 7+PHPnumfmt_get_error_codeintnumberformatter=B 5+PHPnumfmt_get_attributeintnumberformatterint=A '+PHPnumfmt_formatfloatnumberformatterfloatintI@ 9+PHPnumfmt_format_currencyfloatnumberformatterfloatstring,? PHPnthmacstringstringstring+> 'PHPnsapi_virtualboolstring/= 9PHPnsapi_response_headersarray    @ yG`){E   q @                    .] 3PHPoci_collection_trimboolint*\ 3PHPoci_collection_sizeint)[ 1PHPoci_collection_maxint7Z APHPoci_collection_element_getstringint>Y GPHPoci_collection_element_assignboolintstring3X 7PHPoci_collection_assignboolobject3W 7PHPoci_collection_appendboolstring!V PHPoci_closebool,U 1PHPoci_client_versionstring"T !PHPoci_cancelbool4S -PHPoci_bind_by_nameboolstringintintBR 9PHPoci_bind_array_by_nameboolstringarrayintintint4Q /PHPob_inflatehandlerstringstringint1P )PHPob_etaghandlerstringstringint4O /PHPob_deflatehandlerstringstringint/N +PHPoauth_urlencodestringstring8M 'PHPoauth_get_sbsstringstringstringarrayIL ?+PHPnumfmt_set_text_attributeboolnumberformatterintstring    Z `;`2X/    Z                                        +r 3PHPoci_free_descriptorbool+q 3PHPoci_free_collectionbool"p )PHPoci_field_type)o 1PHPoci_field_type_rawint%n )PHPoci_field_sizeint&m +PHPoci_field_scaleint*l 3PHPoci_field_precisionint(k )PHPoci_field_namestring)j /PHPoci_field_is_nullbool&i 'PHPoci_fetch_rowarray*h -PHPoci_fetch_objectobject+g %PHPocifetchintointarrayint!f PHPoci_fetchbool(e +PHPoci_fetch_assocarray+d +PHPoci_fetch_arrayarrayint2c 'PHPoci_fetch_allintarrayintintint&b #PHPoci_executeboolint"a PHPoci_errorarray3` 1PHPoci_define_by_nameboolstringintB_ #PHPoci_connectresourcestringstringstringstringint"^ !PHPoci_commitbool    T {O o:T+     T                                  + -PHPoci_lob_truncateboolint# %PHPoci_lob_tellint# %PHPoci_lob_sizeint* %PHPoci_lob_seekboolintint- %PHPoci_lob_saveboolstringint& )PHPoci_lob_rewindbool) %PHPoci_lob_readstringint&  %PHPoci_lob_loadstring4 -PHPoci_lob_is_equalboolobjectobject,~ )PHPoci_lob_importboolstring(} 'PHPoci_lob_flushboolint2| )PHPoci_lob_exportboolstringintint*{ 'PHPoci_lob_eraseintintint#z #PHPoci_lob_eofbool3y %PHPoci_lob_copyboolobjectobjectint%x 'PHPoci_lob_closebool,w )PHPoci_lob_appendboolobject)v 1PHPoci_internal_debugint(u -PHPoci_get_implicitbool*t 1PHPocigetbufferinglobbool*s 1PHPoci_free_statementbool    0 Zd6b3   e 0  2 5PHPoci_set_db_operationboolstring1 3PHPoci_set_client_infoboolstring7 ?PHPoci_set_client_identifierboolstring. 1PHPocisetbufferinglobboolbool, )PHPoci_set_actionboolstring, 1PHPoci_server_versionstring$ %PHPoci_rollbackbool$ !PHPoci_resultstringC %PHPoci_pconnectresourcestringstringstringstringint= 3PHPoci_password_changeboolstringstringstring+ PHPoci_parseresourcestring# %PHPoci_num_rowsint% )PHPoci_num_fieldsint/ 1PHPoci_new_descriptorobjectint* )PHPoci_new_cursorresourceF +PHPoci_new_connectresourcestringstringstringstringint8
 1PHPoci_new_collectionobjectstringstring8	 ;PHPoci_lob_write_temporaryboolstringint- 'PHPoci_lob_writeintstringint    D n?
l3oA   u D                      .- 9PHPopenal_context_processbool., 9PHPopenal_context_destroybool.+ 9PHPopenal_context_currentbool1* 7PHPopenal_context_createresource3) 7PHPopenal_buffer_loadwavboolstring+( /PHPopenal_buffer_getintint-' 7PHPopenal_buffer_destroybool6& 1PHPopenal_buffer_databoolintstringint0% 5PHPopenal_buffer_createresource%$ 'PHPopcache_resetbool6# =PHPopcache_is_script_cachedboolstring4" 1PHPopcache_invalidateboolstringbool/! 1PHPopcache_get_statusarraybool2  ?PHPopcache_get_configurationarray2 5PHPopcache_compile_fileboolstring, 1PHPoci_statement_typestring+ -PHPoci_set_prefetchboolint1 3PHPoci_set_module_nameboolstring- +PHPoci_set_editionboolstring    D j=~P#f0    D                      ?@ =PHPopenssl_x509_fingerprintboolmixedstringbool1? 3PHPopenssl_spki_verifyboolstring3> 3PHPopenssl_spki_exportstringstring== GPHPopenssl_spki_export_challengestringstring3< APHPopenssl_get_cert_locationsarray/; 'PHPopenal_streamresourceintint*: 1PHPopenal_source_stopbool,9 /PHPopenal_source_setboolint,8 5PHPopenal_source_rewindbool*7 1PHPopenal_source_playbool+6 3PHPopenal_source_pausebool(5 /PHPopenal_source_getint-4 7PHPopenal_source_destroybool03 5PHPopenal_source_createresource.2 3PHPopenal_listener_setboolint*1 3PHPopenal_listener_getint40 1PHPopenal_device_openresourcestring+/ 3PHPopenal_device_closebool.. 9PHPopenal_context_suspendbool    < ^~NU  u <                    6P -PHPPDF_add_textflowintintstringstring>O 1PHPPDF_add_table_cellintintintintstringstringKN +PHPPDF_add_pdflinkfloatfloatfloatfloatfloatstringintstringNM %PHPPDF_add_notefloatfloatfloatfloatfloatstringstringstringint5L /PHPPDF_add_nameddestboolstringstringGK /PHPPDF_add_locallinkfloatfloatfloatfloatfloatintstringEJ 1PHPPDF_add_launchlinkfloatfloatfloatfloatfloatstring,I /PHPPDF_activate_itemboolint-H 1PHPpcntl_wifcontinuedboolint2G /PHPpcnlt_sigwaitinfointarrayarray6F 1PHPpassword_make_saltboolstringstring.E 7PHPparsekit_func_arginfoarray>D ;PHPparsekit_compile_stringarraystringarrayint<C 7PHPparsekit_compile_filearraystringarrayint;B /PHPoverride_functionboolstringstringstring"A PHPoverloadstring    O P~*K   O                                         5_ 1PHPPDF_begin_templatefloatfloatfloat?^ 9PHPPDF_begin_template_extfloatfloatfloatstringA] /PHPPDF_begin_patternfloatfloatfloatfloatfloatint;\ 1PHPPDF_begin_page_extfloatfloatfloatstring1[ )PHPPDF_begin_pagefloatfloatfloat*Z +PHPPDF_begin_layerboolint1Y )PHPPDF_begin_itemintstringstringGX +PHPPDF_begin_glyphfloatstringfloatfloatfloatfloatfloatQW )PHPPDF_begin_fontfloatstringfloatfloatfloatfloatfloatfloatstring5V 1PHPPDF_begin_documentintstringstringZU +PHPPDF_attach_filefloatfloatfloatfloatfloatstringstringstringstringstring:T PHPPDF_arcnfloatfloatfloatfloatfloatfloat9S PHPPDF_arcfloatfloatfloatfloatfloatfloatBR +PHPPDF_add_weblinkfloatfloatfloatfloatfloatstring,Q /PHPPDF_add_thumbnailboolint    D W/q-<  u D                        .q /PHPPDF_create_gstateintstring9p 7PHPPDF_create_fieldgroupboolstringstringOo -PHPPDF_create_fieldfloatfloatfloatfloatfloatstringstringstring6n 3PHPPDF_create_bookmarkintstringstringNm 7PHPPDF_create_annotationfloatfloatfloatfloatfloatstringstring4l /PHPPDF_create_actionintstringstring4k /PHPPDF_create_3dviewintstringstring/j /PHPPDF_continue_textboolstringAi !PHPPDF_concatfloatfloatfloatfloatfloatfloatfloat-h 1PHPPDF_close_pdi_pageboolint(g 'PHPPDF_close_pdiboolint,f 5PHPPDF_closepath_strokebool1e ?PHPPDF_closepath_fill_strokebool%d 'PHPPDF_closepathbool*c +PHPPDF_close_imageboolint!b PHPPDF_closebool a PHPPDF_clipbool2` !PHPPDF_circlefloatfloatfloatfloat    O GYmE    r O                                 PHPPDF_fillbool( -PHPPDF_end_templatebool' +PHPPDF_end_patternbool# #PHPPDF_endpathbool. -PHPPDF_end_page_extboolstring$  %PHPPDF_end_pagebool% 'PHPPDF_end_layerbool'~ %PHPPDF_end_itemboolint%} 'PHPPDF_end_glyphbool$| %PHPPDF_end_fontbool.{ -PHPPDF_end_documentboolstring?z 7PHPPDF_encoding_set_charboolstringintstringint.y 3PHPPDF_delete_textflowboolint1x -PHPPDF_delete_tableboolintstring+w )PHPPDF_delete_pvfintstring"v !PHPPDF_deletebool3u -PHPPDF_define_layerintstringstringBt #PHPPDF_curvetofloatfloatfloatfloatfloatfloatfloat6s 3PHPPDF_create_textflowintstringstring8r )PHPPDF_create_pvfboolstringstringstring    Z Zi#lA    Z                                                5 /PHPPDF_get_parameterfloatstringfloat+ 5PHPPDF_get_minorversionint+ 5PHPPDF_get_majorversionint% )PHPPDF_get_errnumint( )PHPPDF_get_errmsgstring( )PHPPDF_get_bufferstring) +PHPPDF_get_apinamestring? -PHPPDF_fit_textlinefloatstringfloatfloatstringF -PHPPDF_fit_textflowfloatintfloatfloatfloatfloatstringC 'PHPPDF_fit_tablefloatintfloatfloatfloatfloatstring< -PHPPDF_fit_pdi_pagefloatintfloatfloatstring9 'PHPPDF_fit_imagefloatintfloatfloatstring2
 %PHPPDF_findfontintstringstringint>	 1PHPPDF_fill_textblockintintstringstringstring' +PHPPDF_fill_strokebool: /PHPPDF_fill_pdfblockintintstringintstring< 3PHPPDF_fill_imageblockintintstringintstring    3 Or3j1    p 3       :( )PHPPDF_open_ccittintstringintintintintint#' PHPPDF_newresource-& !PHPPDF_movetofloatfloatfloat.% /PHPPDF_makespotcolorintstring7$ )PHPPDF_load_imageintstringstringstring6# 3PHPPDF_load_iccprofileintstringstring6" 'PHPPDF_load_fontintstringstringstring2! +PHPPDF_load_3ddataintstringstring-  !PHPPDF_linetofloatfloatfloat( -PHPPDF_initgraphicsbool< /PHPPDF_info_textlinefloatstringstringstring3 /PHPPDF_info_textflowfloatintstring0 )PHPPDF_info_tablefloatintstring9 /PHPPDF_info_matchboxfloatstringintstring5 'PHPPDF_info_fontfloatintstringstring1 'PHPPDF_get_valuefloatstringfloat9 /PHPPDF_get_pdi_valuefloatstringintintint> 7PHPPDF_get_pdi_parameterstringstringintintint    K Ak3~9   v K                                 (9 !PHPPDF_rotatefloatfloat-8 +PHPPDF_resume_pageboolstring#7 #PHPPDF_restorebool56 PHPPDF_rectfloatfloatfloatfloatfloat25 +PHPPDF_process_pdiintintintstringB4 1PHPPDF_place_pdi_pagefloatintfloatfloatfloatfloat:3 +PHPPDF_place_imagefloatintfloatfloatfloat62 3PHPPDF_pcos_get_stringstringintstring<1 3PHPPDF_pcos_get_streamstringintstringstring50 3PHPPDF_pcos_get_numberfloatintstring4/ /PHPPDF_open_pdi_pageintintintstring2. %PHPPDF_open_pdiintstringstringint8- 7PHPPDF_open_pdi_documentintstringstring,, 7PHPPDF_open_memory_imageintL+ )PHPPDF_open_imageintstringstringstringintintintintintstring?* 3PHPPDF_open_image_fileintstringstringstringint+) 'PHPPDF_open_fileboolstring    < o6O#d8   m <              .L -PHPPDF_setlinewidthfloatfloat*K +PHPPDF_setlinejoinboolint)J )PHPPDF_setlinecapboolint<I =PHPPDF_set_layer_dependencyboolstringstring0H %PHPPDF_set_infoboolstringstring)G )PHPPDF_set_gstateboolint0F 1PHPPDF_setgray_strokefloatfloat.E -PHPPDF_setgray_fillfloatfloat)D #PHPPDF_setgrayfloatfloat,C #PHPPDF_setfontfloatintfloat)B #PHPPDF_setflatfloatfloat0A 1PHPPDF_setdashpatternboolstring.@ #PHPPDF_setdashfloatfloatfloatE? %PHPPDF_setcolorfloatstringstringfloatfloatfloatfloat8> 5PHPPDF_set_border_stylefloatstringfloat6= 3PHPPDF_set_border_dashfloatfloatfloat<< 5PHPPDF_set_border_colorfloatfloatfloatfloat,; PHPPDF_scalefloatfloatfloat : PHPPDF_savebool    5 O_+qH    Z 5           "] !PHPPDF_strokebool6\ +PHPPDF_stringwidthfloatstringintfloat+[ PHPPDF_skewfloatfloatfloat4Z #PHPPDF_show_xyfloatstringfloatfloatMY )PHPPDF_show_boxedfloatstringfloatfloatfloatfloatstringstring&X PHPPDF_showboolstring%W !PHPPDF_shfillboolint3V 3PHPPDF_shading_patternintintstringYU #PHPPDF_shadingstringstringfloatfloatfloatfloatfloatfloatfloatfloatstring1T 'PHPPDF_set_valuefloatstringfloat3S -PHPPDF_set_text_posfloatfloatfloat>R 9PHPPDF_setrgbcolor_strokefloatfloatfloatfloat<Q 5PHPPDF_setrgbcolor_fillfloatfloatfloatfloat7P +PHPPDF_setrgbcolorfloatfloatfloatfloat5O /PHPPDF_set_parameterboolstringstring/N /PHPPDF_setmiterlimitfloatfloatDM 'PHPPDF_setmatrixfloatfloatfloatfloatfloatfloatfloat    P h-c<O    y P                                &q 1PHPphpdbg_start_oplog'p 'PHPphpdbg_promptstring$o -PHPphpdbg_end_oplog)n %PHPphpdbg_colorintstring m %PHPphpdbg_clear3l 3PHPphpdbg_break_methodstringstring/k 7PHPphpdbg_break_functionstring.j /PHPphpdbg_break_filestringint i %PHPphpdbg_break4h -PHPphp_check_syntaxboolstringstring-g PHPpg_socketresourceresource$f PHPpg_flushresource0e -PHPpg_consume_inputboolresource3d +PHPpg_connect_pollresourceresource$c #PHPpdo_driversarray7b /PHPPDF_utf8_to_utf16stringstringstring8a 1PHPPDF_utf32_to_utf16stringstringstring1` /PHPPDF_utf16_to_utf8stringstring0_ 'PHPPDF_translatefloatfloatfloat.^ -PHPPDF_suspend_pageboolstring    @ ;Zm6    n @                      + 3PHPps_closepath_strokebool$ %PHPps_closepathbool%  )PHPps_close_imageint  PHPps_closebool~ PHPps_clipbool1} PHPps_circlefloatfloatfloatfloat4| /PHPps_begin_templatefloatfloatfloat@{ -PHPps_begin_patternfloatfloatfloatfloatfloatint0z 'PHPps_begin_pagefloatfloatfloat9y PHPps_arcnfloatfloatfloatfloatfloatfloat8x PHPps_arcfloatfloatfloatfloatfloatfloatAw )PHPps_add_weblinkfloatfloatfloatfloatfloatstringJv )PHPps_add_pdflinkfloatfloatfloatfloatfloatstringintstringMu #PHPps_add_notefloatfloatfloatfloatfloatstringstringstringintFt -PHPps_add_locallinkfloatfloatfloatfloatfloatintstringDs /PHPps_add_launchlinkfloatfloatfloatfloatfloatstring2r +PHPps_add_bookmarkintstringintint    X gAnD|M    X                                        > 1PHPps_open_image_fileintstringstringstringint* %PHPps_open_fileboolstring" PHPps_newresource, PHPps_movetofloatfloatfloat0 -PHPps_makespotcolorintstringint, PHPps_linetofloatfloatfloat- +PHPps_include_fileboolstring+ %PHPps_hyphenatearraystring0 %PHPps_get_valuefloatstringfloat4 -PHPps_get_parameterfloatstringfloat' 'PHPps_get_bufferstring2 #PHPps_findfontintstringstringbool&
 )PHPps_fill_strokebool	 PHPps_fillbool' +PHPps_end_templatebool& )PHPps_end_patternbool# #PHPps_end_pagebool! PHPps_deleteboolA !PHPps_curvetofloatfloatfloatfloatfloatfloatfloat. -PHPps_continue_textboolstring    9 Gf,P   x 9               <' !PHPpspell_newintstringstringstringstringint+& /PHPpspell_new_configintint6% ;PHPpspell_config_save_replboolintbool8$ ?PHPpspell_config_runtogetherboolintbool3# 1PHPpspell_config_replboolintstring7" 9PHPpspell_config_personalboolintstring0! 1PHPpspell_config_modeboolintint2  5PHPpspell_config_ignoreboolintint7 9PHPpspell_config_dict_dirboolintstring7 9PHPpspell_config_data_dirboolintstringC 5PHPpspell_config_createintstringstringstringstring/ 5PHPpspell_clear_sessionboolint- %PHPpspell_checkboolintstring6 7PHPpspell_add_to_sessionboolintstring7 9PHPpspell_add_to_personalboolintstring. 5PHPps_open_memory_imageintintK 'PHPps_open_imageintstringstringstringintintintintintstring    N >sI'I   y N                                  (9 !PHPps_setgrayfloatfloat+8 !PHPps_setfontfloatintfloat(7 !PHPps_setflatfloatfloat-6 !PHPps_setdashfloatfloatfloatD5 #PHPps_setcolorfloatstringstringfloatfloatfloatfloat74 3PHPps_set_border_stylefloatstringfloat53 1PHPps_set_border_dashfloatfloatfloat;2 3PHPps_set_border_colorfloatfloatfloatfloat+1 PHPps_scalefloatfloatfloat0 PHPps_savebool'/ PHPps_rotatefloatfloat". !PHPps_restorebool4- PHPps_rectfloatfloatfloatfloatfloat9, )PHPps_place_imagefloatintfloatfloatfloat0+ )PHPpspell_suggestarrayintstring?* =PHPpspell_store_replacementboolintstringstring/) 5PHPpspell_save_wordlistboolintK( 3PHPpspell_new_personalintstringstringstringstringstringint    M wGJ`4   M                                 3K !PHPps_show_xyfloatstringfloatfloat7J #PHPps_show_xy2floatstringintfloatfloatLI 'PHPps_show_boxedfloatstringfloatfloatfloatfloatstringstring%H PHPps_showboolstring)G PHPps_show2boolstringint$F PHPps_shfillboolint2E 1PHPps_shading_patternintintstringXD !PHPps_shadingstringstringfloatfloatfloatfloatfloatfloatfloatfloatstring0C %PHPps_set_valuefloatstringfloat2B +PHPps_set_text_posfloatfloatfloat,A )PHPps_setpolydashfloatfloat4@ -PHPps_set_parameterboolstringstring.? 3PHPps_setoverprintmodeboolint.> -PHPps_setmiterlimitfloatfloat-= +PHPps_setlinewidthfloatfloat)< )PHPps_setlinejoinboolint(; 'PHPps_setlinecapboolint/: #PHPps_set_infoboolstringstring    K hAY%N    q K                         #` %PHPpx_numfieldsint"_ PHPpx_newresource,^ -PHPpx_insert_recordintarray+] %PHPpx_get_valuefloatstring)\ 'PHPpx_get_schemaarrayint,[ 'PHPpx_get_recordarrayintint0Z -PHPpx_get_parameterstringstring$Y #PHPpx_get_infoarray(X %PHPpx_get_fieldarrayint+W -PHPpx_delete_recordboolint!V PHPpx_deletebool1U )PHPpx_date2stringstringintstring)T %PHPpx_create_fpboolarray S PHPpx_closebool/R %PHPps_translatefloatfloatfloat3Q +PHPps_symbol_widthfloatintintfloat.P )PHPps_symbol_namestringintint$O PHPps_symbolboolint!N PHPps_strokebool5M )PHPps_stringwidthfloatstringintfloat9L 1PHPps_string_geometryfloatstringintfloat    7 PRN    e 7       +t )PHPradius_cvt_intintstring/s +PHPradius_cvt_addrstringstring0r 7PHPradius_create_requestboolint+q 'PHPradius_configboolstring$p %PHPradius_closebool,o -PHPradius_auth_openresource>n /PHPradius_add_serverboolstringintstringintint,m -PHPradius_acct_openresource$l !PHPqdom_errorstring0k -PHPpx_update_recordboolarrayint7j 3PHPpx_timestamp2stringfloatfloatstring0i %PHPpx_set_valuefloatstringfloat3h 7PHPpx_set_targetencodingboolstring*g -PHPpx_set_tablenamestring4f -PHPpx_set_parameterboolstringstring.e -PHPpx_set_blob_fileboolstring1d 1PHPpx_retrieve_recordarrayintint-c 'PHPpx_put_recordboolarrayint"b !PHPpx_open_fpbool$a 'PHPpx_numrecordsint    Q _9V#E   Q                                       @ =PHPradius_salt_encrypt_attrstringresourcestring6 EPHPradius_request_authenticatorstring< =PHPradius_put_vendor_stringboolintintstring6 7PHPradius_put_vendor_intboolintintint: 9PHPradius_put_vendor_attrboolintintstring:  9PHPradius_put_vendor_addrboolintintstring2 /PHPradius_put_stringboolintstring,~ )PHPradius_put_intboolintint0} +PHPradius_put_attrboolintstring0| +PHPradius_put_addrboolintstring5{ 9PHPradius_get_vendor_attrarraystring7z APHPradius_get_tagged_attr_tagintstring;y CPHPradius_get_tagged_attr_datastringstring#x +PHPradius_get_attr/w +PHPradius_demanglestringstring8v =PHPradius_demangle_mppe_keystringstring1u /PHPradius_cvt_stringstringstring    R vJ Mk9    R                                    3 'PHPrecode_stringstringstringstring) #PHPrecode_fileboolstring& 1PHPreadline_redisplay( 5PHPreadline_on_new_line. 7PHPreadline_list_historyarray/ CPHPreadline_callback_read_char8 MPHPreadline_callback_handler_removebool? OPHPreadline_callback_handler_installboolstring1 ;PHPrar_wrapper_cache_statsstring. %!PHPrar_solid_isboolrararchive3 +!PHPrar_comment_getstringrararchive+ !PHPrar_closeboolrararchive/ '!PHPrar_broken_isboolrararchive: 5!PHPrar_allow_broken_setboolRarArchivebool'
 !PHPrandom_intintintint)	 %PHPrandom_bytesstringint) +PHPradius_strerrorstring. 5PHPradius_server_secretstring* 3PHPradius_send_requestint    1 Kz:h;    a 1   -+ PHPrrd_grapharraystringarray)* PHPrrd_firstintstringint-) PHPrrd_fetcharraystringarray#( PHPrrd_errorstring-' !PHPrrd_createboolstringarray%& #PHPrpm_versionstring*% PHPrpm_openresourcestring*$ %PHPrpm_is_validboolstring"# #PHPrpm_get_tagint!" PHPrpm_closebool-! ?PHPrestore_exception_handler)  7PHPrestore_error_handler= 9)PHPresourcebundle_localesarrayresourcebundle> 1!)PHPresourcebundle_getstring,intresourcebundleH M)PHPresourcebundle_get_error_messagestringresourcebundleB G)PHPresourcebundle_get_error_codeintresourcebundle9 5)PHPresourcebundle_countintresourcebundle3 +PHPrename_functionboolstringstring@ ]PHPReflectionFunctionAbstract:hasReturnTypebool    N ~G^&B   N                                  := 9PHPrunkit_function_renameboolstringstring4< 9PHPrunkit_function_removeboolstringB; =PHPrunkit_function_redefineboolstringstringstring8: 5PHPrunkit_function_copyboolstringstring=9 3PHPrunkit_function_addboolstringstringstring48 9PHPrunkit_constant_removeboolstring67 =PHPrunkit_constant_redefineboolstring16 3PHPrunkit_constant_addboolstring55 ;PHPrunkit_class_emancipateboolstring64 1PHPrunkit_class_adoptboolstringstring'3 PHPrrd_xportarrayarray%2 #PHPrrd_versionstring-1 !PHPrrd_updateboolstringarray+0 PHPrrd_tuneboolstringarray4/ #PHPrrd_restoreboolstringstringarray-. )PHPrrd_lastupdatearraystring%- PHPrrd_lastintstring', PHPrrd_infoarraystring    0 r+_V2   ^ 0    +O 3PHPsession_pgsql_resetbool1N ;PHPsession_pgsql_get_fieldstring4M ;PHPsession_pgsql_get_errorarraybool8L ;PHPsession_pgsql_add_errorboolintstring+K /PHPsession_create_idstring!J 'PHPsession_abort,I 3PHPrunkit_superglobalsarray)H 7PHPRunkit_Sandbox_Parent7G GPHPrunkit_sandbox_output_handlerobject0F =PHPrunkit_return_value_usedbool>E 5PHPrunkit_method_renameboolstringstringstring8D 5PHPrunkit_method_removeboolstringstringIC 9PHPrunkit_method_redefineboolstringstringstringstringintBB 1PHPrunkit_method_copyboolstringstringstringstringDA /PHPrunkit_method_addboolstringstringstringstringint.@ -PHPrunkit_lint_fileboolstring)? #PHPrunkit_lintboolstring.> 'PHPrunkit_importboolstringint    W tKS(_;   W                                         6b =PHPstats_absolute_deviationfloatarray1a /PHPssdeep_fuzzy_hashstringstring:` APHPssdeep_fuzzy_hash_filenamestringstring7_ 5PHPssdeep_fuzzy_compareintstringstring!^ !PHPsqlite_keyint*] -PHPsolr_get_versionstring(\ -PHPsolid_fetch_prevbool5[ )PHPsocket_sendmsgintresourcearrayint6Z )PHPsocket_recvmsgintresourcestringint(Y 5PHPsocket_import_stream.X /PHPsocket_cmsg_spaceintintint6W -PHPsigneurlpaiementstringstringstring*V PHPsha256stringstringbool/U #PHPsha256_filestringstringbool,T )PHPsetthreadtitleboolstring&S %PHPsetproctitlestring!R 'PHPsession_reset-Q 5PHPsession_pgsql_statusarray5P ;PHPsession_pgsql_set_fieldboolstring    L F
VB    L                                      <q /PHPstats_cdf_uniformfloatfloatfloatfloatint1p #PHPstats_cdf_tfloatfloatfloatint7o /PHPstats_cdf_poissonfloatfloatfloatintFn 9PHPstats_cdf_noncentral_ffloatfloatfloatfloatfloatintIm IPHPstats_cdf_noncentral_chisquarefloatfloatfloatfloatintFl CPHPstats_cdf_negative_binomialfloatfloatfloatfloatint=k 1PHPstats_cdf_logisticfloatfloatfloatfloatint<j /PHPstats_cdf_laplacefloatfloatfloatfloatint:i +PHPstats_cdf_gammafloatfloatfloatfloatint6h #PHPstats_cdf_ffloatfloatfloatfloatint;g 7PHPstats_cdf_exponentialfloatfloatfloatint9f 3PHPstats_cdf_chisquarefloatfloatfloatint;e -PHPstats_cdf_cauchyfloatfloatfloatfloatint=d 1PHPstats_cdf_binomialfloatfloatfloatfloatint9c )PHPstats_cdf_betafloatfloatfloatfloatint    2 Qh-k/   d 2          / %PHPstats_dens_tfloatfloatfloat9  9PHPstats_dens_pmf_poissonfloatfloatfloatJ GPHPstats_dens_pmf_hypergeometricfloatfloatfloatfloatfloat?~ ;PHPstats_dens_pmf_binomialfloatfloatfloatfloat9} /PHPstats_dens_normalfloatfloatfloatfloatD| EPHPstats_dens_negative_binomialfloatfloatfloatfloat;{ 3PHPstats_dens_logisticfloatfloatfloatfloat:z 1PHPstats_dens_laplacefloatfloatfloatfloat8y -PHPstats_dens_gammafloatfloatfloatfloat4x %PHPstats_dens_ffloatfloatfloatfloat9w 9PHPstats_dens_exponentialfloatfloatfloat7v 5PHPstats_dens_chisquarefloatfloatfloat9u /PHPstats_dens_cauchyfloatfloatfloatfloat7t +PHPstats_dens_betafloatfloatfloatfloat3s -PHPstats_covariancefloatarrayarray<r /PHPstats_cdf_weibullfloatfloatfloatfloatint    T Xu8}Q   T                                            C CPHPstats_rand_gen_noncentral_ffloatfloatfloatfloatE QPHPstats_rand_gen_noncenral_chisquarefloatfloatfloat4 ;PHPstats_rand_gen_iuniformintintint5 ;PHPstats_rand_gen_ipoissonfloatfloat) 1PHPstats_rand_gen_intintB OPHPstats_rand_gen_ibinomial_negativefloatintfloat9 =PHPstats_rand_gen_ibinomialfloatintfloat7
 5PHPstats_rand_gen_gammafloatfloatfloat:	 ;PHPstats_rand_gen_funiformfloatfloatfloat3 -PHPstats_rand_gen_ffloatfloatfloat8 APHPstats_rand_gen_exponentialfloatfloat6 =PHPstats_rand_gen_chisquarefloatfloat6 3PHPstats_rand_gen_betafloatfloatfloat, )PHPstats_kurtosisfloatarray9 /PHPstats_den_uniformfloatfloatfloatfloat: 1PHPstats_dens_weibullfloatfloatfloatfloat    H S#_"|>   H                              8" 7PHPstats_stat_percentilefloatfloatfloat6! 3PHPstats_stat_paired_tfloatarrayarrayB  ;PHPstats_stat_noncentral_tfloatfloatfloatfloatint: ;PHPstats_stat_innerproductfloatarrayarray; =PHPstats_stat_independent_tfloatarrayarray- /PHPstats_stat_gennchfloatint9 9PHPstats_stat_correlationfloatarrayarray7 =PHPstats_stat_binomial_coeffloatintint: =PHPstats_standard_deviationfloatarraybool( !PHPstats_skewfloatarray/ /PHPstats_rand_setallvoidintint( +PHPstats_rand_ranffloat9 APHPstats_rand_phrase_to_seedsarraystring- 5PHPstats_rand_get_seedsarray. -PHPstats_rand_gen_tfloatfloat8 7PHPstats_rand_gen_normalfloatfloatfloat> CPHPstats_rand_gen_noncentral_tfloatfloatfloat    ^ c:	>W'    ^                                                '5 'PHPstomp_versionstring44 /PHPstomp_unsubscribeboolstringarray23 +PHPstomp_subscribeboolstringarray02 9PHPstomp_set_read_timeoutintint-1 !PHPstomp_sendboolstringarray/0 -PHPstomp_read_framearraystring'/ +PHPstomp_has_framebool.. 5PHPstomp_get_session_idstring/- 9PHPstomp_get_read_timeoutarray%, #PHPstomp_errorstring@+ 'PHPstomp_connectresourcestringstringstringarray-* 3PHPstomp_connect_errorstring/) %PHPstomp_commitboolstringarray#( #PHPstomp_closebool.' #PHPstomp_beginboolstringarray&& PHPstomp_ackboolarray.% #PHPstomp_abortboolstringarray0$ )PHPstats_variancefloatarraybool6# 3PHPstats_stat_powersumfloatarrayfloat    / m3g(S%    d / 2H !PHPsvn_commitarraystringarraybool,G 1PHPsvn_client_versionstring)F #PHPsvn_cleanupboolstring6E %PHPsvn_checkoutboolstringstringintint*D PHPsvn_catstringstringint+C PHPsvn_blamearraystringint6B 9PHPsvn_auth_set_parameterstringstring6A 9PHPsvn_auth_get_parameterstringstring-@ PHPsvn_addboolstringboolbool0? ;PHPsuhosin_get_raw_cookiesarray<> 9PHPsuhosin_encrypt_cookiestringstringstring5= %PHPsubstr_countintstringstringintint-< PHPstrrchrstringstringstring-; PHPstrncmpintstringstringint1: #PHPstrncasecmpintstringstringint79 7PHPstream_set_chunk_sizeintresourceint58 +PHPstream_encodingboolresourcestring)7 PHPstrcmpintstringstring,6 PHPstrchrstringstringstring    _ c8ZO    _                                                   .Z -PHPsvn_fs_make_fileboolstring-Y +PHPsvn_fs_make_dirboolstring,X )PHPsvn_fs_is_fileboolstring+W 'PHPsvn_fs_is_dirboolstring/V 1PHPsvn_fs_file_lengthintstring6U 5PHPsvn_fs_file_contentsresourcestring1T 1PHPsvn_fs_dir_entriesarraystring+S 'PHPsvn_fs_deleteboolstring/R #PHPsvn_fs_copyboolstringstring;Q ;PHPsvn_fs_contents_changedboolstringstring.P /PHPsvn_fs_check_pathintstringAO ;PHPsvn_fs_change_node_propboolstringstringstring0N /PHPsvn_fs_begin_txn2resourceint3M /PHPsvn_fs_apply_textresourcestring(L -PHPsvn_fs_abort_txnbool5K !PHPsvn_exportboolstringstringboolint3J PHPsvn_diffarraystringintstringint,I !PHPsvn_deleteboolstringbool    2 UU ~/    d 2      /l /PHPsvn_repos_recoverboolstring0k )PHPsvn_repos_openresourcestring9j /PHPsvn_repos_hotcopyboolstringstringbool(i %PHPsvn_repos_fsresource.h ;PHPsvn_repos_fs_commit_txnintLg OPHPsvn_repos_fs_begin_txn_for_commitresourceintstringstring<f -PHPsvn_repos_createresourcestringarrayarray-e PHPsvn_mkdirboolstringstring0d PHPsvn_lsarraystringintboolbool2c PHPsvn_logarraystringintintintint2b !PHPsvn_importboolstringstringbool*a 3PHPsvn_fs_youngest_revint+` +PHPsvn_fs_txn_rootresource3_ 5PHPsvn_fs_revision_rootresourceint7^ 5PHPsvn_fs_revision_propstringintstring8] 5PHPsvn_fs_props_changedboolstringstring6\ -PHPsvn_fs_node_propstringstringstring4[ ;PHPsvn_fs_node_created_revintstring    > q>h8C   x >              7  )PHPswf_definepolyfloatintarrayintfloatC )PHPswf_definelinefloatintfloatfloatfloatfloatfloat+~ )PHPswf_definefontintstring-} -PHPswf_definebitmapintstring$| 'PHPswf_closefileint9{ %PHPswf_addcolorfloatfloatfloatfloatfloat0z 3PHPswf_addbuttonrecordintintint0y 9PHPswf_actionwaitforframeintint+x ;PHPswf_actiontogglequality"w )PHPswf_actionstop-v 3PHPswf_actionsettargetstring'u 3PHPswf_actionprevframe"t )PHPswf_actionplay's 3PHPswf_actionnextframe-r 3PHPswf_actiongotolabelstring*q 3PHPswf_actiongotoframeint0p -PHPswf_actiongeturlstringstring.o !PHPsvn_updateintstringintbool,n !PHPsvn_statusarraystringint,m !PHPsvn_revertboolstringbool    ; e?l<wJ   u ;           7 !PHPswf_ortho2floatfloatfloatfloatfloatI %PHPswf_openfilefloatstringfloatfloatfloatfloatfloatfloat& +PHPswf_onconditionint! !PHPswf_nextidint9 %PHPswf_mulcolorfloatfloatfloatfloatfloat* -PHPswf_modifyobjectintintF !PHPswf_lookatfloatfloatfloatfloatfloatfloatfloatfloat( )PHPswf_labelframestring# %PHPswf_getframeint( +PHPswf_getfontinfoarray-
 /PHPswf_getbitmapinfoarrayint.	 -PHPswf_fonttrackingfloatfloat+ 'PHPswf_fontslantfloatfloat* %PHPswf_fontsizefloatfloat! 'PHPswf_endsymbol  %PHPswf_endshape# +PHPswf_enddoaction! 'PHPswf_endbutton. )PHPswf_definetextintstringintC )PHPswf_definerectfloatintfloatfloatfloatfloatfloat    5 ~R|K@    w 5       ?' 1PHPswf_shapefillsolidfloatfloatfloatfloatfloat$& -PHPswf_shapefilloff.% ;PHPswf_shapefillbitmaptileint.$ ;PHPswf_shapefillbitmapclipint=# -PHPswf_shapecurvetofloatfloatfloatfloatfloatH" /PHPswf_shapecurveto3floatfloatfloatfloatfloatfloatfloat>! %PHPswf_shapearcfloatfloatfloatfloatfloatfloat#  %PHPswf_setframeint" #PHPswf_setfontint1 PHPswf_scalefloatfloatfloatfloat. !PHPswf_rotatefloatfloatstring' -PHPswf_removeobjectint" )PHPswf_pushmatrix# %PHPswf_posroundint! 'PHPswf_popmatrix: 'PHPswf_polarviewfloatfloatfloatfloatfloat) +PHPswf_placeobjectintint< +PHPswf_perspectivefloatfloatfloatfloatfloat@ PHPswf_orthofloatfloatfloatfloatfloatfloatfloat    N O+W?    N                                /: 1PHPsybase_fetch_fieldobjectint+9 1PHPsybase_fetch_assocarray+8 1PHPsybase_fetch_arrayarray27 CPHPsybase_deadlock_retry_countint+6 -PHPsybase_data_seekboolintL5 )PHPsybase_connectresourcestringstringstringstringstringbool$4 %PHPsybase_closebool+3 5PHPsybase_affected_rowsint92 %PHPswf_viewportfloatfloatfloatfloatfloat51 'PHPswf_translatefloatfloatfloatfloat,0 'PHPswf_textwidthfloatstring&/ +PHPswf_startsymbolint%. )PHPswf_startshapeint%- /PHPswf_startdoaction), +PHPswf_startbuttonintint!+ 'PHPswf_showframe2* +PHPswf_shapemovetofloatfloatfloat2) +PHPswf_shapelinetofloatfloatfloatD( 1PHPswf_shapelinesolidfloatfloatfloatfloatfloatfloat    6 uHxD{N   t 6        ;M 'PHPtcpwrap_checkboolstringstringstringbool)L PHPtaintboolstringstring=K ;PHPsybase_unbuffered_queryresourcestringbool:J APHPsybase_set_message_handlerboolcallable.I -PHPsybase_select_dbboolstring*H 'PHPsybase_resultstringint&G %PHPsybase_querystringIF +PHPsybase_pconnectresourcestringstringstringstringstring&E +PHPsybase_num_rowsint(D /PHPsybase_num_fieldsint1C APHPsybase_min_server_severityint2B CPHPsybase_min_message_severityint0A ?PHPsybase_min_error_severityint1@ APHPsybase_min_client_severityint1? ;PHPsybase_get_last_messagestring*> 1PHPsybase_free_resultbool,= /PHPsybase_field_seekboolint)< -PHPsybase_fetch_rowarray-; 3PHPsybase_fetch_objectobject    3 wHS&`%    j 3   4a CPHPtimezone_abbreviations_listarray)` #PHPtidy_setoptboolstring/_ /PHPtidy_set_encodingboolstring.^ -PHPtidy_save_configboolstring)] /PHPtidy_reset_configbool8\ 1PHPtidy_repair_stringstringstringstring:[ -PHPtidy_repair_filestringstringstringbool0Z -PHPtidy_load_configstringstring'Y #PHPtidy_is_xmlbooltidy)X 'PHPtidy_is_xhtmlbooltidy*W +PHPtidy_get_statusinttidy*V -PHPtidy_get_releasestring)U #PHPtidy_getoptstringtidy4T -PHPtidy_get_opt_docstringtidystring,S /PHPtidy_get_html_verinttidy3R 7PHPtidy_get_error_bufferstringtidy,Q +PHPtidy_get_configarraytidy)P 'PHPtidy_diagnosebooltidy-O /PHPtidy_clean_repairbooltidy*N !PHPtextdomainstringstring    A FU%r>	   y A                       5r !PHPtrader_atrarrayarrayarrayarrayint)q #PHPtrader_atanarrayarray)p #PHPtrader_asinarrayarray5o +PHPtrader_aroonoscarrayarrayarrayint2n %PHPtrader_aroonarrayarrayarrayint1m !PHPtrader_apoarrayarrayintintint6l #PHPtrader_adxrarrayarrayarrayarrayint5k !PHPtrader_adxarrayarrayarrayarrayint?j %PHPtrader_adoscarrayarrayarrayarrayarrayintint-i !PHPtrader_addarrayarrayarray6h PHPtrader_adarrayarrayarrayarrayarray)g #PHPtrader_acosarrayarrayHf =!%PHPtimezone_transitions_getarray,booldatetimezoneintint>e 3%PHPtimezone_offset_getintdatetimezonedatetime7d /%PHPtimezone_name_getstringdatetimezone?c 7!%PHPtimezone_location_getarray,booldatetimezone;b ?PHPtimezone_identifiers_listarrayintstring    - OXI  o -       ? 1PHPtrader_cdlbeltholdarrayarrayarrayarrayarrayC  9PHPtrader_cdladvanceblockarrayarrayarrayarrayarrayI ;PHPtrader_cdlabandonedbabyfloatarrayarrayarrayarrayfloatE~ =PHPtrader_cdl3whitesoldiersarrayarrayarrayarrayarrayD} ;PHPtrader_cdl3starsinsoutharrayarrayarrayarrayarray?| 1PHPtrader_cdl3outsidearrayarrayarrayarrayarrayB{ 7PHPtrader_cdl3linestrikearrayarrayarrayarrayarray>z /PHPtrader_cdl3insidearrayarrayarrayarrayarrayBy 7PHPtrader_cdl3blackcrowsarrayarrayarrayarrayarray=x -PHPtrader_cdl2crowsarrayarrayarrayarrayarray5w !PHPtrader_cciarrayarrayarrayarrayint7v !PHPtrader_boparrayarrayarrayarrayarray1u #PHPtrader_betaarrayarrayarrayint;t 'PHPtrader_bbandsfloatarrayintfloatfloatint<s +PHPtrader_avgpricearrayarrayarrayarrayarray    b t*X>   b                                                                E =PHPtrader_cdlgravestonedojiarrayarrayarrayarrayarrayG APHPtrader_cdlgapsidesidewhitearrayarrayarrayarrayarrayG 7PHPtrader_cdleveningstarfloatarrayarrayarrayarrayfloatK ?PHPtrader_cdleveningdojistarfloatarrayarrayarrayarrayfloat@
 3PHPtrader_cdlengulfingarrayarrayarrayarrayarrayD	 ;PHPtrader_cdldragonflydojiarrayarrayarrayarrayarray? 1PHPtrader_cdldojistararrayarrayarrayarrayarray; )PHPtrader_cdldojiarrayarrayarrayarrayarrayJ =PHPtrader_cdldarkcloudcoverfloatarrayarrayarrayarrayfloatD ;PHPtrader_cdlcounterattackarrayarrayarrayarrayarrayG APHPtrader_cdlconcealbabyswallarrayarrayarrayarrayarrayF ?PHPtrader_cdlclosingmarubozuarrayarrayarrayarrayarray@ 3PHPtrader_cdlbreakawayarrayarrayarrayarrayarray    I |<t0a   I                                     C 9PHPtrader_cdlladderbottomarrayarrayarrayarrayarrayF ?PHPtrader_cdlkickingbylengtharrayarrayarrayarrayarray> /PHPtrader_cdlkickingarrayarrayarrayarrayarrayE =PHPtrader_cdlinvertedhammerarrayarrayarrayarrayarray= -PHPtrader_cdlinneckarrayarrayarrayarrayarrayF ?PHPtrader_cdlidentical3crowsarrayarrayarrayarrayarrayC 9PHPtrader_cdlhomingpigeonarrayarrayarrayarrayarrayA 5PHPtrader_cdlhikkakemodarrayarrayarrayarrayarray> /PHPtrader_cdlhikkakearrayarrayarrayarrayarray? 1PHPtrader_cdlhighwavearrayarrayarrayarrayarrayB 7PHPtrader_cdlharamicrossarrayarrayarrayarrayarray= -PHPtrader_cdlharamiarrayarrayarrayarrayarrayA 5PHPtrader_cdlhangingmanarrayarrayarrayarrayarray= -PHPtrader_cdlhammerarrayarrayarrayarrayarray    . v4[J   q .          @* 3PHPtrader_cdlshortlinearrayarrayarrayarrayarrayC) 9PHPtrader_cdlshootingstararrayarrayarrayarrayarrayF( ?PHPtrader_cdlseparatinglinesarrayarrayarrayarrayarrayG' APHPtrader_cdlrisefall3methodsarrayarrayarrayarrayarrayB& 7PHPtrader_cdlrickshawmanarrayarrayarrayarrayarray?% 1PHPtrader_cdlpiercingarrayarrayarrayarrayarray=$ -PHPtrader_cdlonneckarrayarrayarrayarrayarrayG# 7PHPtrader_cdlmorningstarfloatarrayarrayarrayarrayfloatK" ?PHPtrader_cdlmorningdojistarfloatarrayarrayarrayarrayfloatC! /PHPtrader_cdlmatholdfloatarrayarrayarrayarrayfloatB  7PHPtrader_cdlmatchinglowarrayarrayarrayarrayarray? 1PHPtrader_cdlmarubozuarrayarrayarrayarrayarray? 1PHPtrader_cdllonglinearrayarrayarrayarrayarrayE =PHPtrader_cdllongleggeddojiarrayarrayarrayarrayarray    6 s,f%L     e 6              ,: #PHPtrader_demaarrayarrayint)9 #PHPtrader_cosharrayarray(8 !PHPtrader_cosarrayarray37 'PHPtrader_correlarrayarrayarrayint+6 !PHPtrader_cmoarrayarrayint)5 #PHPtrader_ceilarrayarrayG4 APHPtrader_cdlxsidegap3methodsarrayarrayarrayarrayarrayF3 ?PHPtrader_cdlupsidegap2crowsarrayarrayarrayarrayarrayC2 9PHPtrader_cdlunique3riverarrayarrayarrayarrayarray>1 /PHPtrader_cdltristararrayarrayarrayarrayarray@0 3PHPtrader_cdlthrustingarrayarrayarrayarrayarray@/ 3PHPtrader_cdltasukigaparrayarrayarrayarrayarray=. -PHPtrader_cdltakuriarrayarrayarrayarrayarrayD- ;PHPtrader_cdlsticksandwicharrayarrayarrayarrayarrayE, =PHPtrader_cdlstalledpatternarrayarrayarrayarrayarrayB+ 7PHPtrader_cdlspinningtoparrayarrayarrayarrayarray    I kEX&^/    I                           7M 9PHPtrader_linearreg_slopearrayarrayint;L APHPtrader_linearreg_interceptarrayarrayint1K -PHPtrader_linearregarrayarrayint7J 9PHPtrader_linearreg_anglearrayarrayint,I #PHPtrader_kamaarrayarrayint1H 3PHPtrader_ht_trendmodearrayarray1G 3PHPtrader_ht_trendlinearrayarray,F )PHPtrader_ht_sinearrayarray.E -PHPtrader_ht_phasorarrayarray/D /PHPtrader_ht_dcphasearrayarray0C 1PHPtrader_ht_dcperiodarrayarray4B APHPtrader_get_unstable_periodintint(A /PHPtrader_get_compatint*@ %PHPtrader_floorarrayarray(? !PHPtrader_exparrayarray#> %PHPtrader_errnoint+= !PHPtrader_emaarrayarrayint4< PHPtrader_dxarrayarrayarrayarrayint-; !PHPtrader_divarrayarrayarray    [ yDa3 [#    [                                               3_ 1PHPtrader_minmaxindexarrayarrayint.^ 'PHPtrader_minmaxarrayarrayint0] +PHPtrader_minindexarrayarrayint+\ !PHPtrader_minarrayarrayint5[ +PHPtrader_midpricearrayarrayarrayint0Z +PHPtrader_midpointarrayarrayint:Y !PHPtrader_mfiarrayarrayarrayarrayarrayint2X +PHPtrader_medpricearrayarrayarray0W +PHPtrader_maxindexarrayarrayint+V !PHPtrader_maxarrayarrayint7U #PHPtrader_mavparrayarrayarrayintintint3T #PHPtrader_mamafloatarrayfloatfloat/S )PHPtrader_macdfixarrayarrayint>R )PHPtrader_macdextarrayarrayintintintintintint2Q #PHPtrader_macdarrayarrayintintint-P PHPtrader_maarrayarrayintint*O %PHPtrader_log10arrayarray'N PHPtrader_lnarrayarray   P    w|vpjd^XRLF@:4.("
ztnhb\VPJD>82,&                                                                                                                                                                                                                                                                                                                                                                                       v~  ul  tX  sI  r9  q'  p  o  nt  mc  lR  kB  j)  i  h  gq  e_  dM  c:  b*  a  `  _  ^r  ]a  \M  [:  Z'  Y  X   Wl  VZ  UH  T5  S"  R  Q  Pq  Ob  NO  M=  L+  K  J  It  H`  GK  F9  E'  D  C  Bq  A]  @L  ?9  >(  =  <  ;q  :_  9P  8@  7-  6  5  4r  3]  2K  1<  0*  /  .  -s  ,`  +L  *;  )'  (  '}  &i    I ],P^0   u I                             )q #PHPtrader_sinharrayarray(p !PHPtrader_sinarrayarraySo 'PHPtrader_sarextarrayarrayfloatfloatfloatfloatfloatfloatfloatfloat7n !PHPtrader_sarfloatarrayarrayfloatfloat+m !PHPtrader_rsiarrayarrayint,l #PHPtrader_rocrarrayarrayint/k )PHPtrader_rocr100arrayarrayint,j #PHPtrader_rocparrayarrayint+i !PHPtrader_rocarrayarrayint1h !PHPtrader_ppoarrayarrayintintint4g )PHPtrader_plus_dmarrayarrayarrayint9f )PHPtrader_plus_diarrayarrayarrayarrayint-e !PHPtrader_obvarrayarrayarray6d #PHPtrader_natrarrayarrayarrayarrayint.c #PHPtrader_multarrayarrayarray+b !PHPtrader_momarrayarrayint5a +PHPtrader_minus_dmarrayarrayarrayint:` +PHPtrader_minus_diarrayarrayarrayarrayint    W p*}O_/    W                                           > 'PHPtrader_ultoscarrayarrayarrayarrayintintint7 +PHPtrader_typpricearrayarrayarrayarray+ !PHPtrader_tsfarrayarrayint,  #PHPtrader_trixarrayarrayint- %PHPtrader_trimaarrayarrayint5~ 'PHPtrader_trangearrayarrayarrayarray,} #PHPtrader_temaarrayarrayint)| #PHPtrader_tanharrayarray({ !PHPtrader_tanarrayarray/z PHPtrader_t3floatarrayintfloat+y !PHPtrader_sumarrayarrayint-x !PHPtrader_subarrayarrayarray9w +PHPtrader_stochrsiarrayarrayintintintint>v 'PHPtrader_stochfarrayarrayarrayarrayintintintCu %PHPtrader_stocharrayarrayarrayarrayintintintintint3t 'PHPtrader_stddevfloatarrayintfloat)s #PHPtrader_sqrtarrayarray+r !PHPtrader_smaarrayarrayint    U Y+hy?    U                                           0 -PHPudm_check_storedintintstring/ /PHPudm_check_charsetboolstring+ %PHPudm_cat_patharraystring+ %PHPudm_cat_listarraystring& +PHPudm_api_versionint7 +PHPudm_alloc_agentresourcestringstring6 7PHPudm_alloc_agent_arrayresourcearray5 5PHPudm_add_search_limitboolintstring. 'PHPtrigger_errorboolstringintJ E)PHPtransliterator_transliterateTransliteratorstringintint0
 ;PHPtransliterator_list_idsarrayH	 M)PHPtransliterator_get_error_messagestringTransliteratorB G)PHPtransliterator_get_error_codeintTransliterator+ !PHPtrader_wmaarrayarrayint7 %PHPtrader_willrarrayarrayarrayarrayint7 +PHPtrader_wclpricearrayarrayarrayarray0 !PHPtrader_varfloatarrayintfloat    M xU/V"W    { M                           +) #PHPutf8_encodestringstring+( #PHPutf8_decodestringstring*' !PHPuopz_flagsintstringint+& PHPuntaintboolstringstring% PHPunset4$ 3PHPudm_set_agent_paramboolintstring,# +PHPudm_open_storedintstring>" 5PHPudm_load_ispell_databoolintstringstringint'! !PHPudm_hash32intstring.  /PHPudm_get_res_paramstringint1 /PHPudm_get_res_fieldstringintint( /PHPudm_get_doc_countint$ %PHPudm_free_resbool/ 5PHPudm_free_ispell_databoolint% )PHPudm_free_agentint* PHPudm_findresourcestring# PHPudm_errorstring  PHPudm_errnoint& PHPudm_crc32intstring* -PHPudm_close_storedintint/ ;PHPudm_clear_search_limitsbool    > hFcAfD"    ` >    B #PHPvariant_sub%A #PHPvariant_setobject-@ -PHPvariant_set_typeobjectint$? 'PHPvariant_roundint> #PHPvariant_pow= !PHPvariant_or< #PHPvariant_not; #PHPvariant_neg: #PHPvariant_mul9 #PHPvariant_mod8 #PHPvariant_int7 #PHPvariant_imp 6 %PHPvariant_idiv-5 -PHPvariant_get_typeintobject4 #PHPvariant_fix3 #PHPvariant_eqv2 #PHPvariant_div61 ?PHPvariant_date_to_timestampintobject80 CPHPvariant_date_from_timestampobjectint(/ #PHPvariant_cmpintintint. #PHPvariant_cat/- %PHPvariant_castobjectobjectint, #PHPvariant_and+ #PHPvariant_add* #PHPvariant_abs    R v3^t:    R                                          5R /PHPvpopmail_del_userboolstringstring4Q 9PHPvpopmail_del_domain_exboolstring1P 3PHPvpopmail_del_domainboolstringBO 1PHPvpopmail_auth_userboolstringstringstringstring7N 1PHPvpopmail_alias_getarraystringstring5M 9PHPvpopmail_alias_get_allarraystring7L ?PHPvpopmail_alias_del_domainboolstring6K 1PHPvpopmail_alias_delboolstringstring<J 1PHPvpopmail_alias_addboolstringstringstringEI /PHPvpopmail_add_userboolstringstringstringstringboolJH 9PHPvpopmail_add_domain_exboolstringstringstringstringbool=G 3PHPvpopmail_add_domainboolstringstringintint@F EPHPvpopmail_add_alias_domain_exboolstringstring=E ?PHPvpopmail_add_alias_domainboolstringstring%D PHPvirtualboolstringC #PHPvariant_xor    N Qb2Q    N                                    :c APHPwin32_query_service_statusstringstring.b 1PHPwin32_ps_stat_procarrayint*a /PHPwin32_ps_stat_memarray,` 3PHPwin32_ps_list_procsarray6_ 3PHPwin32_pause_serviceintstringstring5^ IPHPwin32_get_last_control_messageint4] 5PHPwin32_delete_servicestringstring3\ 5PHPwin32_create_servicearraystring9[ 9PHPwin32_continue_serviceintstringstring-Z 9PHPw32api_set_call_methodintBY =PHPw32api_register_functionboolstringstringstring0X 9PHPw32api_invoke_functionstring3W /PHPw32api_init_dtyperesourcestring>V )PHPw32api_deftypeboolstringstringstringstringAU ;PHPvpopmail_set_user_quotaboolstringstringstring=T +PHPvpopmail_passwdboolstringstringstringbool(S )PHPvpopmail_errorstring    [ NyAh4   [                                                 -t 7PHPwincache_ucache_clearbool7s 3PHPwincache_ucache_casboolstringintint9r 3PHPwincache_ucache_addboolstringintarray0q ;PHPwincache_scache_meminfoarray1p 5PHPwincache_scache_infoarraybool0o ;PHPwincache_rplist_meminfoarray5n =PHPwincache_rplist_fileinfoarraybool8m CPHPwincache_refresh_if_changedboolarray0l ;PHPwincache_ocache_meminfoarray5k =PHPwincache_ocache_fileinfoarraybool/j 'PHPwincache_lockboolstringbool0i ;PHPwincache_fcache_meminfoarray5h =PHPwincache_fcache_fileinfoarraybool5g 1PHPwin32_stop_serviceintstringstring6f 3PHPwin32_start_serviceintstringstring=e SPHPwin32_start_service_ctrl_dispatcherstring6d =PHPwin32_set_service_statusboolintint    0 a3Y)V#   s 0    @ 9PHPxdiff_file_diff_binaryboolstringstringstring; /PHPxdiff_file_bpatchboolstringstringstring2 7PHPxdiff_file_bdiff_sizeintstring: -PHPxdiff_file_bdiffboolstringstringstring0 +PHPxattr_supportedboolstringint6 PHPxattr_setboolstringstringstringint3  %PHPxattr_removeboolstringstringint, !PHPxattr_listarraystringint2~ PHPxattr_getstringstringstringint-} +PHPwincache_unlockboolstring3| 3PHPwincache_ucache_setboolintarray0{ ;PHPwincache_ucache_meminfoarray7z 5PHPwincache_ucache_infoarrayboolstring4y 3PHPwincache_ucache_incstringintbool+x 3PHPwincache_ucache_getbool4w 9PHPwincache_ucache_existsboolstring.v 9PHPwincache_ucache_deletebool4u 3PHPwincache_ucache_decstringintbool    . }9LL
   _ .      . 7PHPxhprof_sample_disablearray' )PHPxhprof_disablearray: 5PHPxdiff_string_rabdiffstringstringstringA 1PHPxdiff_string_patchstringstringstringintstring? ?PHPxdiff_string_patch_binarystringstringstring? 3PHPxdiff_string_merge3stringstringstringstring> /PHPxdiff_string_diffstringstringstringintbool> =PHPxdiff_string_diff_binarystringstringstring9 3PHPxdiff_string_bpatchstringstringstring8 1PHPxdiff_string_bdiffstringstringstring4 ;PHPxdiff_string_bdiff_sizeintstring< 1PHPxdiff_file_rabdiffboolstringstringstring9
 -PHPxdiff_file_patchstringstringstringintA	 ;PHPxdiff_file_patch_binaryboolstringstringstring= /PHPxdiff_file_merge3stringstringstringstring@ +PHPxdiff_file_diffboolstringstringstringintbool    9 e0Y#u6   } 9               A' SPHPxml_set_external_entity_ref_handlerboolstring@& QPHPxml_set_end_namespace_decl_handlerboolstring;% ;PHPxml_set_element_handlerboolstringstring5$ ;PHPxml_set_default_handlerboolstring<# IPHPxml_set_character_data_handlerboolstring=" 7PHPxml_parser_set_optionboolresourceintmixed9! 7PHPxml_parser_get_optionmixedresourceint/  +PHPxml_parser_freeboolresource3 /PHPxml_parser_createresourcestring< 5PHPxml_parser_create_nsresourcestringstring* PHPxml_parseintstringbool< 7PHPxml_parse_into_structintstringarrayarray) 1PHPxml_get_error_codeint2 CPHPxml_get_current_line_numberint4 GPHPxml_get_current_column_numberint1 APHPxml_get_current_byte_indexint- -PHPxml_error_stringstringint    L Lb2m:
    L                                19 7PHPxmlwriter_open_memoryresource28 APHPxmlwriter_full_end_elementbool'7 +PHPxmlwriter_flushbool(6 -PHPxmlwriter_end_pibool-5 7PHPxmlwriter_end_elementbool04 =PHPxmlwriter_end_dtd_entitybool13 ?PHPxmlwriter_end_dtd_elementbool)2 /PHPxmlwriter_end_dtdbool11 ?PHPxmlwriter_end_dtd_attlistbool.0 9PHPxmlwriter_end_documentbool-/ 7PHPxmlwriter_end_commentbool+. 3PHPxmlwriter_end_cdatabool/- ;PHPxmlwriter_end_attributeboolB, UPHPxml_set_unparsed_entity_decl_handlerboolstringB+ UPHPxml_set_start_namespace_decl_handlerboolstringD* YPHPxml_set_processing_instruction_handlerboolstring,) )PHPxml_set_objectboolobject;( GPHPxml_set_notation_decl_handlerboolstring    O ^"o=|@   O                                       0I 1PHPxmlwriter_start_piboolstringDH APHPxmlwriter_start_element_nsboolstringstringstring5G ;PHPxmlwriter_start_elementboolstring<F APHPxmlwriter_start_dtd_entityboolstringbool9E CPHPxmlwriter_start_dtd_elementboolstring=D 3PHPxmlwriter_start_dtdboolstringstringstring9C CPHPxmlwriter_start_dtd_attlistboolstringBB =PHPxmlwriter_start_documentboolstringstringstring/A ;PHPxmlwriter_start_commentbool-@ 7PHPxmlwriter_start_cdataboolF? EPHPxmlwriter_start_attribute_nsboolstringstringstring7> ?PHPxmlwriter_start_attributeboolstring9= CPHPxmlwriter_set_indent_stringboolstring0< 5PHPxmlwriter_set_indentboolbool5; ;PHPxmlwriter_output_memorystringbool4: 1PHPxmlwriter_open_uriresourcestring    5 BL
v)   y 5               AX /%PHPxpath_register_nsboolxpathcontextstringstring@W 9%PHPxpath_register_ns_autoboolxpathcontextobject1V 3PHPxmlwriter_write_rawboolstring6U 1PHPxmlwriter_write_piboolstringstringJT APHPxmlwriter_write_element_nsboolstringstringstringstring;S ;PHPxmlwriter_write_elementboolstringstringSR APHPxmlwriter_write_dtd_entityboolstringstringintstringstringstring?Q CPHPxmlwriter_write_dtd_elementboolstringstringCP 3PHPxmlwriter_write_dtdboolstringstringstringstring?O CPHPxmlwriter_write_dtd_attlistboolstringstring5N ;PHPxmlwriter_write_commentboolstring3M 7PHPxmlwriter_write_cdataboolstringLL EPHPxmlwriter_write_attribute_nsboolstringstringstringstring=K ?PHPxmlwriter_write_attributeboolstringstring,J )PHPxmlwriter_textboolstring    m sI%zP"}L   m                                                             El KPHPxsl_xsltprocessor_get_parameterstringstringstring0k ;PHPxslt_set_scheme_handlerarray1j =PHPxslt_set_scheme_handlersarray-i 5PHPxslt_set_sax_handlerarray.h 7PHPxslt_set_sax_handlersarray"g #PHPxslt_setoptint-f +PHPxslt_set_objectboolobject e %PHPxslt_set_log*d 9PHPxslt_set_error_handler+c /PHPxslt_set_encodingstring'b 'PHPxslt_set_basestring<a %PHPxslt_processstringstringstringarrayarray"` #PHPxslt_getoptint_ PHPxslt_free$^ !PHPxslt_errorstring!] !PHPxslt_errnoint'\ #PHPxslt_createresource.[ 5PHPxslt_backend_versionstring+Z /PHPxslt_backend_namestring+Y /PHPxslt_backend_infostring    - Ev5vN    v S - #~ PHPyaz_errorstring } PHPyaz_errnoint)| #PHPyaz_elementboolstring*{ %PHPyaz_databaseboolstring%z #PHPyaz_connectstring!y PHPyaz_closebool0x 'PHPyaz_ccl_parseboolstringarray%w %PHPyaz_ccl_confarray%v #PHPyaz_addinfostringGu Q#PHPxsl_xsltprocessor_transform_to_xmlstringdomdocumentJt Q#PHPxsl_xsltprocessor_transform_to_uriintdomdocumentstring>s UPHPxsl_xsltprocessor_set_security_prefsintint=r KPHPxsl_xsltprocessor_set_profilingboolstringCq KPHPxsl_xsltprocessor_set_parameterboolstringstringFp QPHPxsl_xsltprocessor_remove_parameterboolstringstring<o ]PHPxsl_xsltprocessor_register_php_functions;n SPHPxsl_xsltprocessor_has_exslt_supportbool;m UPHPxsl_xsltprocessor_get_security_prefsint     ~W.R+xT#                                                                                                                                                       ) 1            PHPhttp_response_codeint1 #PHPzlib_encodestringstringintint. #PHPzlib_decodestringstringint! PHPyaz_waitarray$ !PHPyaz_syntaxstring" PHPyaz_sortstring3 )PHPyaz_set_optionstringstringarray.
 !PHPyaz_searchboolstringstring$	 !PHPyaz_schemastring- +PHPyaz_scan_resultarrayarray- PHPyaz_scanstringstringarray- !PHPyaz_recordstringintstring# PHPyaz_rangeintint# #PHPyaz_presentbool& 'PHPyaz_itemorderarray$ PHPyaz_hitsintarray. )PHPyaz_get_optionstringstring&  'PHPyaz_es_resultarray% PHPyaz_esstringarray   % Z {eL<"kM6 	uV4       n Z        3 	  PHPgetopt2  PHPgetmyuid1  PHPgetmypid0 ! PHPgetmyinode/  PHPgetmygid. ! PHPgetlastmod- 		 PHPgetenv#, =PHPget_magic_quotes_runtime+ 5 PHPget_magic_quotes_gpc * 7	PHPget_loaded_extensions) 1PHPget_included_files( - PHPget_include_path' 3		 PHPget_extension_funcs & 7		PHPget_defined_constants% - PHPget_current_user$ #		 PHPget_cfg_var# ! PHPgc_enabled"  PHPgc_enable ! PHPgc_disable / PHPgc_collect_cycles -			PHPextension_loaded 		 PHPdl  7		 PHPcli_set_process_title  7 PHPcli_get_process_title 	 PHPassert )	 PHPassert_options !			PHPaddslashes #	PHPaddcslashes	 			PHPchr #		PHPcount_chars 	PHPfprintfd 1	 	PHPhtml_entity_decode 		 	PHPhex2bin '	 	PHPnumber_format 		 	PHPord 	 	PHPprintd 	 	PHPcrypt   # d mP0oN1gP3      d                      V -		 PHPcurl_multi_close"U 7 PHPcurl_multi_add_handleT 	 PHPcurl_initS %	 PHPcurl_getinfoR 		 PHPcurl_execQ # PHPcurl_escapeP !		 PHPcurl_errorO !		 PHPcurl_errnoN -		 PHPcurl_copy_handleM !		 PHPcurl_closeL % PHPzend_versionK ) PHPzend_thread_idJ ) PHPzend_logo_guidI +	PHPversion_compareH - PHPsys_get_temp_dirG )			PHPset_time_limit#F =		 PHPset_magic_quotes_runtimeE -		 PHPset_include_pathD 5 PHPrestore_include_pathC 		 PHPputenvB !		PHPphpversionA 	 PHPphpinfo@ !	 PHPphpcredits? 	 PHPphp_uname> ' PHPphp_sapi_name= ' PHPphp_logo_guid < 7PHPphp_ini_scanned_files; 3 PHPphp_ini_loaded_file: -	PHPmemory_get_usage 9 7	PHPmemory_get_peak_usage8  PHPini_set7 #		 PHPini_restore6 		 PHPini_get5 #PHPini_get_all4 	 PHPgetrusage   ! ^ [<uY9cG1      u ^                    x 	 PHPapc_fetchw !		 PHPapc_existsv !		 PHPapc_deleteu +		 PHPapc_delete_file!t 5 PHPapc_define_constantss 	 PHPapc_decr -	 PHPapc_compile_fileq +	 PHPapc_clear_cachep  PHPapc_caso ) PHPapc_cache_infon -	 PHPapc_bin_loadfilem %	 PHPapc_bin_loadl - PHPapc_bin_dumpfilek % PHPapc_bin_dumpj  PHPapc_addh %	 PHPcurl_versiong ' PHPcurl_unescapef '		 PHPcurl_strerrore / PHPcurl_share_setoptd + PHPcurl_share_initc -		 PHPcurl_share_closeb # PHPcurl_setopta / PHPcurl_setopt_array` !		 PHPcurl_reset_ ! PHPcurl_pause^ 3		 PHPcurl_multi_strerror] / PHPcurl_multi_setopt\ /	 PHPcurl_multi_select%[ = PHPcurl_multi_remove_handleZ + PHPcurl_multi_init Y 5	 PHPcurl_multi_info_read X 7		 PHPcurl_multi_getcontentW + PHPcurl_multi_exec     W w]B%mN4oP0      r W                '			PHParray_product 		PHParray_pop 	PHParray_pad +		PHParray_multisortd #		PHParray_merged! 7		PHParray_merge_recursived 	PHParray_mapd !		PHParray_keys -	PHParray_key_exists +	PHParray_intersectd! 5	PHParray_intersect_ukeyd# 9	PHParray_intersect_uassocd  3	PHParray_intersect_keyd" 7	PHParray_intersect_assocd
 !			PHParray_flip	 %		PHParray_filter !	PHParray_fill +	PHParray_fill_keys !	PHParray_diffd +	PHParray_diff_ukeyd /	PHParray_diff_uassocd )	PHParray_diff_keyd -	PHParray_diff_assocd 1			PHParray_count_values  '	PHParray_combine %	PHParray_column~ #	PHParray_chunk!} 7		PHParray_change_key_case|  PHPapc_store{ %	 PHPapc_sma_infoz 1	 PHPapc_load_constantsy 	 PHPapc_inc   $ Y mQ5pJ#s_J6         l Y         < 	 PHPlistd; 	 PHPksort: 	 PHPkrsort9 		 PHPkey8  PHPin_array7 	 PHPextract6 		 PHPend5 		 PHPeach4 		 PHPcurrent3 	 PHPcount2 	 PHPcompactd1 	 PHPasort0 	 PHParsort/ 	PHParrayd. ! PHParray_walk!- 5 PHParray_walk_recursive, %		 PHParray_values+ ' PHParray_unshiftd* %		PHParray_unique) - PHParray_uintersectd$( ; PHParray_uintersect_uassocd#' 9 PHParray_uintersect_assocd& # PHParray_udiffd% 1 PHParray_udiff_uassocd$ / PHParray_udiff_assocd# 			PHParray_sum" % PHParray_splice! # PHParray_slice  #		 PHParray_shift % PHParray_search '	 PHParray_reverse ' PHParray_replaced$ ; PHParray_replace_recursived % PHParray_reduce !	PHParray_rand !	PHParray_pushd   ) p r]J4	r]H3jS2      p                      X 	 PHPunixtojdW 		 PHPjdtounixV !	 PHPjdtojewishU # PHPeaster_daysT #		PHPeaster_dateS  PHPcal_to_jdR 	 PHPcal_infoQ # PHPcal_from_jdP / PHPcal_days_in_month\  PHPbzwrite[ 	 PHPbzreadZ  PHPbzopenY 		 PHPbzflushX 		 PHPbzerrstrW 		 PHPbzerrorV 		 PHPbzerrnoU %	 PHPbzdecompressT !	 PHPbzcompressS 		 PHPbzcloseR  PHPbcsubQ 	 PHPbcsqrtP 		 PHPbcscaleO 	PHPbcpowmodN 	PHPbcpowM  PHPbcmulL  PHPbcmodK  PHPbcdivJ  PHPbccompI  PHPbcaddH  PHPusortG  PHPuksortF  PHPuasortE 	 PHPsortD 		 PHPshuffleC 	 PHPrsortB 		 PHPresetA  PHPrange@ 		 PHPprev? 		 PHPnext> 		 PHPnatsort= #		 PHPnatcasesort   $ X jQ8|aE,hN;&       o X         	PHPstrftime PHPmktime 	PHPmicrotime PHPlocaltime 	 PHPidate !	PHPgmstrftime PHPgmmktime 	PHPgmdate %	PHPgettimeofday 	PHPgetdate 	PHPdate #		PHPdate_sunset %		PHPdate_sunrise '	PHPdate_sun_info
 !			PHPdate_parse#	 9 PHPdate_parse_from_format$ ?		 PHPdate_default_timezone_set$ ? PHPdate_default_timezone_get 	PHPcheckdate % PHPcyrus_unbind # PHPcyrus_query ' PHPcyrus_connect #		 PHPcyrus_close ! PHPcyrus_bind  1	 PHPcyrus_authenticatec %		 PHPctype_xdigitb #		 PHPctype_uppera #		 PHPctype_space` #		 PHPctype_punct_ #		 PHPctype_print^ #		 PHPctype_lower] #		 PHPctype_graph\ #		 PHPctype_digit[ #		 PHPctype_cntrlZ #		 PHPctype_alphaY #		 PHPctype_alnum   " m v_E+zbH/cN1      m                                 < ) PHPmysql_db_query; #		 PHPsql_regcase:  PHPspliti9  PHPsplit 8 7		 PHPsession_is_registered7 1		 PHPsession_unregister6 -	 PHPsession_registerd4 ' PHPeregi_replace3  PHPeregi2 % PHPereg_replace1  PHPereg"/ ; PHPdefine_syslog_variables#. 9 PHPcall_user_method_array- - PHPcall_user_methodd, 		 PHPdba_sync+ # PHPdba_replace*  PHPdba_popend) %		 PHPdba_optimize(  PHPdba_opend' #		 PHPdba_nextkey&  PHPdba_list% '		 PHPdba_key_split$ ! PHPdba_insert# %	 PHPdba_handlers" %		 PHPdba_firstkey!  PHPdba_fetch  ! PHPdba_exists ! PHPdba_delete 		 PHPdba_close 5 PHPtimezone_version_get# ;	 PHPtimezone_name_from_abbr PHPtime 	PHPstrtotime PHPstrptime    P oU;]<d9    ~ P                    +V I PHPenchant_dict_store_replacement%U = PHPenchant_dict_quick_check'T A PHPenchant_dict_is_in_session!S 9		 PHPenchant_dict_get_error R 7		 PHPenchant_dict_describeQ 1 PHPenchant_dict_check(P C PHPenchant_dict_add_to_session)O E PHPenchant_dict_add_to_personal(N C PHPenchant_broker_set_ordering,M K PHPenchant_broker_request_pwl_dict(L C PHPenchant_broker_request_dict$K ?		 PHPenchant_broker_list_dictsJ 3 PHPenchant_broker_init#I =		 PHPenchant_broker_get_errorH 3		 PHPenchant_broker_free#G =		 PHPenchant_broker_free_dict'F A PHPenchant_broker_dict_exists"E ;		 PHPenchant_broker_describeD 5		 PHPdom_import_simplexmlC ! PHPmcrypt_ofbB ! PHPmcrypt_ecbA ! PHPmcrypt_cfb@ ! PHPmcrypt_cbc? )	 PHPmysql_list_dbs> 1		 PHPmcrypt_generic_end= 3			PHPmysql_escape_string   ! L lF&nP6nQ;      u L  &~ ? PHPfdf_set_javascript_action} ' PHPfdf_set_flags| % PHPfdf_set_file{ - PHPfdf_set_encodingz ! PHPfdf_set_apy 	 PHPfdf_savex +		 PHPfdf_save_stringw + PHPfdf_remove_itemv 		 PHPfdf_openu +		 PHPfdf_open_stringt 3	 PHPfdf_next_field_names ! PHPfdf_headerr +	 PHPfdf_get_versionq ' PHPfdf_get_valuep )		 PHPfdf_get_statuso # PHPfdf_get_optn ' PHPfdf_get_flagsm %		 PHPfdf_get_filel -		 PHPfdf_get_encodingk 1 PHPfdf_get_attachmentj ! PHPfdf_get_api 	 PHPfdf_errorh  PHPfdf_errnog + PHPfdf_enum_valuesf ! PHPfdf_createe 		 PHPfdf_closed - PHPfdf_add_template#c 9 PHPfdf_add_doc_javascriptb )	 PHPexif_thumbnaila %		 PHPexif_tagname` )	 PHPexif_read_data_ )		 PHPexif_imagetype!W 5 PHPenchant_dict_suggest   % ^ qM0tW9%tS@)       s ^            #  PHPflock" 		PHPfiletype! 		PHPfilesize  		PHPfileperms 		PHPfileowner 		PHPfilemtime 		PHPfileinode 		PHPfilegroup 		PHPfilectime 		PHPfileatime 	 PHPfile /PHPfile_put_contents /	PHPfile_get_contents #		PHPfile_exists 	PHPfgetss 	PHPfgets 	 PHPfgetcsv 			PHPfgetc 		 PHPfflush 		 PHPfeof 		 PHPfclose -		 PHPdisk_total_space +		 PHPdisk_free_space 	 PHPdirname  PHPcopy
 ) PHPclearstatcache	  PHPchown  PHPchmod  PHPchgrp 	 PHPbasename + PHPfdf_set_version ' PHPfdf_set_value! 5 PHPfdf_set_target_frame' A PHPfdf_set_submit_form_action ) PHPfdf_set_status  # PHPfdf_set_opt) E PHPfdf_set_on_import_javascript   ( f {fS@'nU?)zcO:#      x f              K 		 PHPstatJ 	 PHPrmdirI 		 PHPrewindH  PHPrenameG 		 PHPrealpathF 3 PHPrealpath_cache_sizeE 1 PHPrealpath_cache_getD 		 PHPreadlinkC 	 PHPreadfileB  PHPpopenA 		 PHPpclose@ 	 PHPpathinfo? -		PHPparse_ini_string> )	 PHPparse_ini_file= 1 PHPmove_uploaded_file< 	 PHPmkdir; 		 PHPlstat: 		 PHPlinkinfo9  PHPlink8  PHPlchown7  PHPlchgrp6 #		 PHPis_writable5 -		 PHPis_uploaded_file4 #		 PHPis_readable3 		 PHPis_link2 		 PHPis_file1 '		 PHPis_executable0 		 PHPis_dir/ 	 PHPglob.  PHPfwrite-  PHPftruncate, 		 PHPftell+ 		 PHPfstat*  PHPfseek)  PHPfscanfd( PHPfread'  PHPfputcsv& 		 PHPfpassthru%  PHPfopen$  PHPfnmatch   % R eL2iP1lT<$      m Rp # PHPftp_nb_fputo # PHPftp_nb_fgetn +		 PHPftp_nb_continuem  PHPftp_mkdirl  PHPftp_mdtmk  PHPftp_loginj  PHPftp_geti ) PHPftp_get_optionh  PHPftp_fputg  PHPftp_fgetf  PHPftp_exece ! PHPftp_deleted #	 PHPftp_connectc 		 PHPftp_closeb  PHPftp_chmoda  PHPftp_chdir` 		 PHPftp_cdup_  PHPftp_alloc^ !	 PHPfilter_var] -	 PHPfilter_var_array\ # PHPfilter_list[ % PHPfilter_inputZ 1	 PHPfilter_input_arrayY 		 PHPfilter_idX ) PHPfilter_has_varW /		 PHPmime_content_typeV + PHPfinfo_set_flagsU ! PHPfinfo_openT ! PHPfinfo_fileS #		 PHPfinfo_closeR % PHPfinfo_bufferQ 	 PHPunlinkP 	 PHPumaskO 	 PHPtouchN  PHPtmpfileM  PHPtempnamL  PHPsymlink   ! U oX=#
pU0
gE'     v U            / PHPimagecolorclosest % PHPimagecolorat$ ; PHPimagecolorallocatealpha 1 PHPimagecolorallocate # PHPimagecharup  PHPimagechar  PHPimagearc
 ) PHPimageantialias	 1 PHPimagealphablending  5	 PHPimageaffinematrixget$ ; PHPimageaffinematrixconcat # PHPimageaffine !	 PHPimage2wbmp" ;		 PHPimage_type_to_mime_type# ;	 PHPimage_type_to_extension" 9		PHPgetimagesizefromstring %	 PHPgetimagesize   PHPgd_info #		 PHPftp_systype~ +	 PHPftp_ssl_connect}  PHPftp_size|  PHPftp_site{ ) PHPftp_set_optionz  PHPftp_rmdiry ! PHPftp_renamex # PHPftp_rawlistw  PHPftp_rawv 		 PHPftp_pwdu  PHPftp_putt  PHPftp_pasvs  PHPftp_nlistr ! PHPftp_nb_putq ! PHPftp_nb_get    F sO0gG.qK,     f F    . 1		 PHPimagecreatefromxbm- 3		 PHPimagecreatefromwebp, 3		 PHPimagecreatefromwbmp + 7			PHPimagecreatefromstring* 1		 PHPimagecreatefrompng) 3		 PHPimagecreatefromjpeg( 1		 PHPimagecreatefromgif' /		 PHPimagecreatefromgd#& 9 PHPimagecreatefromgd2part% 1		 PHPimagecreatefromgd2$ # PHPimagecreate# - PHPimagecopyresized

" 1 PHPimagecopyresampled

! 1 PHPimagecopymergegray		  ) PHPimagecopymerge		  PHPimagecopy - PHPimageconvolution! 7	 PHPimagecolortransparent -		 PHPimagecolorstotal  3 PHPimagecolorsforindex ' PHPimagecolorset# 9 PHPimagecolorresolvealpha / PHPimagecolorresolve + PHPimagecolormatch! 5 PHPimagecolorexactalpha + PHPimagecolorexact! 5 PHPimagecolordeallocate! 5 PHPimagecolorclosesthwb# 9 PHPimagecolorclosestalpha     h hN2rW>!jM/      h                                N - PHPimagepalettecopyM '		 PHPimageloadfontL  PHPimagelineK - PHPimagelayereffectJ 	 PHPimagejpegI -			PHPimageistruecolorH )	 PHPimageinterlaceG +	 PHPimagegrabwindowF + PHPimagegrabscreenE 	 PHPimagegifD 	 PHPimagegdC 	 PHPimagegd2B / PHPimagegammacorrectA # PHPimagefttext	@ # PHPimageftbbox? )		 PHPimagefontwidth> +		 PHPimagefontheight=  PHPimageflip< # PHPimagefilter; / PHPimagefilltoborder!: 5 PHPimagefilledrectangle9 1 PHPimagefilledpolygon8 1 PHPimagefilledellipse7 ) PHPimagefilledarc		6  PHPimagefill5 % PHPimageellipse4 %		PHPimagedestroy3 + PHPimagedashedline2 '	 PHPimagecropauto1  PHPimagecrop!0 5 PHPimagecreatetruecolor/ 1		 PHPimagecreatefromxpm   ! [ lK.eH$u`K$      r [                 o 		 PHPiptcparsen  PHPiptcembedm  PHPimagexbml  PHPimagewebpk 	 PHPimagewbmpj ! PHPimagetypesi % PHPimagettftexth % PHPimagettfbbox$g ; PHPimagetruecolortopalettef 		 PHPimagesye 		 PHPimagesxd ' PHPimagestringupc #PHPimagestringb % PHPimagesettilea / PHPimagesetthickness` ' PHPimagesetstyle_ ' PHPimagesetpixel!^ 7	 PHPimagesetinterpolation] ' PHPimagesetbrush\ ! PHPimagescale[ ) PHPimagesavealphaZ # PHPimagerotateY ) PHPimagerectangleX # PHPimagepstextW - PHPimagepsslantfontV +		 PHPimagepsloadfontU +		 PHPimagepsfreefontT / PHPimagepsextendfontS / PHPimagepsencodefontR # PHPimagepsbboxQ % PHPimagepolygonP 	 PHPimagepng"O ;		 PHPimagepalettetotruecolor   & Z r[F-|eM3iO8       s Z       #		 PHPgmp_sqrtrem 		 PHPgmp_sqrt 		 PHPgmp_sign ! PHPgmp_setbit  PHPgmp_scan1  PHPgmp_scan0 !	PHPgmp_random )	 PHPgmp_prob_prime 	PHPgmp_powm 	PHPgmp_pow %		 PHPgmp_popcount
 1		 PHPgmp_perfect_square	  PHPgmp_or '		 PHPgmp_nextprime 		 PHPgmp_neg  PHPgmp_mul  PHPgmp_mod % PHPgmp_legendre ! PHPgmp_jacobi ! PHPgmp_invert !			PHPgmp_intval  	 PHPgmp_init # PHPgmp_hamdist~ ! PHPgmp_gcdext}  PHPgmp_gcd| 		 PHPgmp_fact{ % PHPgmp_divexactz  PHPgmp_div_ry ! PHPgmp_div_qrx  PHPgmp_div_qw 		 PHPgmp_comv  PHPgmp_cmpu ! PHPgmp_clrbitt  PHPgmp_ands  PHPgmp_addr 		 PHPgmp_absq  PHPpng2wbmpp  PHPjpeg2wbmp     b {X8rQ5iH.      z b                          5 	 PHPhash_init4  PHPhash_hmac3 ) PHPhash_hmac_file2 !	 PHPhash_final1  PHPhash_file0 		 PHPhash_copy/ ! PHPhash_algos. % PHPgnupg_verify- ! PHPgnupg_sign, / PHPgnupg_setsignmode+ 1 PHPgnupg_seterrormode* ) PHPgnupg_setarmor) ' PHPgnupg_keyinfo( ! PHPgnupg_init' % PHPgnupg_import& /		 PHPgnupg_getprotocol% )		 PHPgnupg_geterror$ % PHPgnupg_export# / PHPgnupg_encryptsign" ' PHPgnupg_encrypt ! 3 PHPgnupg_decryptverify  ' PHPgnupg_decrypt 3		 PHPgnupg_clearsignkeys! 9		 PHPgnupg_clearencryptkeys! 9		 PHPgnupg_cleardecryptkeys - PHPgnupg_addsignkey  3 PHPgnupg_addencryptkey  3 PHPgnupg_adddecryptkey  PHPgmp_xor # PHPgmp_testbit  PHPgmp_sub !		PHPgmp_strval    Y tT,uYD$
f@%     Y                     # 9 PHPkadm5_modify_principal% = PHPkadm5_init_with_password 5		 PHPkadm5_get_principals  3 PHPkadm5_get_principal 1		 PHPkadm5_get_policies #		 PHPkadm5_flush  '		 PHPkadm5_destroy# 9 PHPkadm5_delete_principal#~ 9 PHPkadm5_create_principal#} 9 PHPkadm5_chpass_principal| + PHPjson_last_error{ 3 PHPjson_last_error_msgz #	 PHPjson_encodey #		PHPjson_decodeE - PHPob_iconv_handlerD 	PHPiconvC %	PHPiconv_substrB '	PHPiconv_strrposA %	PHPiconv_strpos@ %		PHPiconv_strlen? 1 PHPiconv_set_encoding> /	PHPiconv_mime_encode= /		PHPiconv_mime_decode%< ?		PHPiconv_mime_decode_headers; 1	 PHPiconv_get_encoding: 	PHPhash9 # PHPhash_update8 1 PHPhash_update_stream7 -PHPhash_update_file6 # PHPhash_pbkdf2    N {I a=}^;     m N        % + PHPldap_next_entry $ 3 PHPldap_next_attribute# # PHPldap_modify" - PHPldap_mod_replace! % PHPldap_mod_del  % PHPldap_mod_add  PHPldap_list + PHPldap_get_values  3 PHPldap_get_values_len + PHPldap_get_option - PHPldap_get_entries # PHPldap_get_dn  3 PHPldap_get_attributes -		 PHPldap_free_result! 5 PHPldap_first_reference - PHPldap_first_entry! 5 PHPldap_first_attribute +	PHPldap_explode_dn !		 PHPldap_error !		 PHPldap_errno %		 PHPldap_err2str #		 PHPldap_dn2ufn # PHPldap_delete 1 PHPldap_count_entries& ? PHPldap_control_paged_result/ Q PHPldap_control_paged_result_response % PHPldap_connect
 % PHPldap_compare	 	 PHPldap_bind  PHPldap_add -		 PHPldap_8859_to_t61   # O dG,}\2q`N;)       w c O H 			PHPdechexG 			PHPdecbinF 			PHPcoshE 			PHPcosD 			PHPceilC 			PHPbindecB %	PHPbase_convertA 			PHPatanh@ 			PHPatan? 	PHPatan2> 			PHPasinh= 			PHPasin< 			PHPacosh; 			PHPacos: 			PHPabs%9 A	 PHPlibxml_use_internal_errors%8 A		 PHPlibxml_set_streams_context,7 O		 PHPlibxml_set_external_entity_loader 6 7 PHPlibxml_get_last_error5 / PHPlibxml_get_errors'4 E	 PHPlibxml_disable_entity_loader3 3 PHPlibxml_clear_errors2 #		 PHPldap_unbind1 -		 PHPldap_t61_to_88590 )		 PHPldap_start_tls/  PHPldap_sort!. 5 PHPldap_set_rebind_proc- + PHPldap_set_option, # PHPldap_search+ )	 PHPldap_sasl_bind* # PHPldap_rename)  PHPldap_read( / PHPldap_parse_result!' 5 PHPldap_parse_reference & 3 PHPldap_next_reference   * d t`K4ycM9)oP4      d        "r ;		PHPmb_substitute_characterq +	 PHPmb_detect_orderp )		PHPmb_http_outputo '		PHPmb_http_inputn 5		PHPmb_internal_encodingm #		PHPmb_languagel '		PHPmb_strtolowerk '		PHPmb_strtoupperj +	PHPmb_convert_casei 		 PHPtanhh 		 PHPtang 		PHPsrandf 		 PHPsqrte 		 PHPsinhd 		 PHPsinc 	 PHProundb PHPranda 		 PHPrad2deg` 	PHPpow_  PHPpi^ 		 PHPoctdec] 		PHPmt_srand\ PHPmt_rand[ '	PHPmt_getrandmaxZ 		PHPmindY 		PHPmaxdX 		PHPlogW 			PHPlog1pV 			PHPlog10U 	PHPlcg_valueT 			PHPis_nanS #			PHPis_infiniteR 			PHPis_finiteQ 	PHPhypotP 			PHPhexdecO !	PHPgetrandmaxN 	PHPfmodM 			PHPfloorL 			PHPexpm1K 			PHPexpJ 			PHPdeg2radI 			PHPdecoct    c oU; gM0kI%      c                              /	 PHPmb_regex_encoding / PHPmb_check_encoding #	 PHPmb_get_info % PHPmb_send_mail$ ; PHPmb_decode_numericentity$ ; PHPmb_encode_numericentity! 5 PHPmb_convert_variablesd
 5		 PHPmb_decode_mimeheader 	 5	 PHPmb_encode_mimeheader +	 PHPmb_convert_kana 3		 PHPmb_encoding_aliases / PHPmb_list_encodings 1	 PHPmb_detect_encoding  3 PHPmb_convert_encoding '	PHPmb_strimwidth #		PHPmb_strwidth 	PHPmb_strcut  	PHPmb_substr +	PHPmb_substr_count~ #	PHPmb_strrichr} !	PHPmb_stristr| !	PHPmb_strrchr{ 	PHPmb_strstrz #	PHPmb_strriposy !	PHPmb_striposx !	PHPmb_strrposw 	PHPmb_strposv 		PHPmb_strlen!u 9		 PHPmb_preferred_mime_namet / PHPmb_output_handlers %		PHPmb_parse_str    ^ pX;rO0vO    | ^                                / ) PHPmcrypt_encrypt. 5		 PHPmcrypt_enc_self_test#- =		 PHPmcrypt_enc_is_block_mode(, G		 PHPmcrypt_enc_is_block_algorithm-+ Q		 PHPmcrypt_enc_is_block_algorithm_mode-* Q		 PHPmcrypt_enc_get_supported_key_sizes$) ?		 PHPmcrypt_enc_get_modes_name"( ;		 PHPmcrypt_enc_get_key_size!' 9		 PHPmcrypt_enc_get_iv_size$& ?		 PHPmcrypt_enc_get_block_size)% I		 PHPmcrypt_enc_get_algorithms_name# ) PHPmcrypt_decrypt" -	 PHPmcrypt_create_iv  7		 PHPmb_ereg_search_setpos  7 PHPmb_ereg_search_getpos! 9 PHPmb_ereg_search_getregs 3	 PHPmb_ereg_search_init 3 PHPmb_ereg_search_regs 1 PHPmb_ereg_search_pos ) PHPmb_ereg_search ' PHPmb_ereg_match  PHPmb_split - PHPmb_eregi_replace + PHPmb_ereg_replace  PHPmb_eregi  PHPmb_ereg 5	 PHPmb_regex_set_options    N yU3~PmG'     n N                  K 1		 PHPming_useswfversionJ /		 PHPming_useconstants!I 9		 PHPming_setswfcompressionH '		 PHPming_setscale!G 9		 PHPming_setcubicthresholdF '		 PHPming_keypressE )		 PHPmemcache_debugD - PHPmdecrypt_generic#B ;	 PHPmcrypt_module_self_testA 1 PHPmcrypt_module_open'@ C	 PHPmcrypt_module_is_block_mode,? M	 PHPmcrypt_module_is_block_algorithm1> W	 PHPmcrypt_module_is_block_algorithm_mode1= W	 PHPmcrypt_module_get_supported_key_sizes+< K	 PHPmcrypt_module_get_algo_key_size-; O	 PHPmcrypt_module_get_algo_block_size: 3		 PHPmcrypt_module_close9 /	 PHPmcrypt_list_modes!8 9	 PHPmcrypt_list_algorithms7 3		 PHPmcrypt_get_key_size6 1 PHPmcrypt_get_iv_size!5 9		 PHPmcrypt_get_cipher_name 4 7		 PHPmcrypt_get_block_size3 ) PHPmcrypt_generic 2 3 PHPmcrypt_generic_init 0 7		 PHPmcrypt_generic_deinit    Q `D$hI)
lF      r Q           j 3		 PHPmssql_rows_affectedi % PHPmssql_resulth #	 PHPmssql_queryg ) PHPmssql_pconnectf )		 PHPmssql_num_rowse -		 PHPmssql_num_fieldsd /		 PHPmssql_next_result%c A		 PHPmssql_min_message_severity#b =		 PHPmssql_min_error_severitya !	 PHPmssql_init` /	 PHPmssql_guid_string!_ 9 PHPmssql_get_last_message^ 5		 PHPmssql_free_statement] /		 PHPmssql_free_result\ -	 PHPmssql_field_type[ - PHPmssql_field_seekZ -	 PHPmssql_field_nameY 1	 PHPmssql_field_lengthX +		 PHPmssql_fetch_rowW 1		 PHPmssql_fetch_objectV /	 PHPmssql_fetch_fieldU /		 PHPmssql_fetch_batchT /		 PHPmssql_fetch_assocS /	 PHPmssql_fetch_arrayR '	 PHPmssql_executeQ + PHPmssql_data_seekP ' PHPmssql_connectO #	 PHPmssql_closeN ! PHPmssql_bindM #		 PHPbson_encodeL #		PHPbson_decode    e iK,bA bB#      e                                 
 +	 PHPmysql_insert_id	 !	 PHPmysql_info  7	 PHPmysql_get_server_info 5	 PHPmysql_get_proto_info 3	 PHPmysql_get_host_info  7 PHPmysql_get_client_info /		 PHPmysql_free_result - PHPmysql_field_type / PHPmysql_field_table - PHPmysql_field_seek  - PHPmysql_field_name + PHPmysql_field_len~ / PHPmysql_field_flags} +		 PHPmysql_fetch_row| 1	 PHPmysql_fetch_object{ 3		 PHPmysql_fetch_lengthsz /	 PHPmysql_fetch_fieldy /		 PHPmysql_fetch_assocx /	 PHPmysql_fetch_arrayv #	 PHPmysql_erroru #	 PHPmysql_errnot '	 PHPmysql_drop_dbr ' PHPmysql_db_nameq + PHPmysql_data_seekp +	 PHPmysql_create_dbo ' PHPmysql_connectn #	 PHPmysql_close m 7	 PHPmysql_client_encodingl 3	 PHPmysql_affected_rowsk +	 PHPmssql_select_db   " T cF.{\?eA,       t T        - 1 PHPmysqli_stmt::close,  mysqlirollback+ 	 mysqliquery* 		 mysqlish)  mysqlipoll( 		 mysqliping'  mysqlioptions& 		 mysqlikill% #		 PHPmysqli_info$ 		 mysqliinit!# 9 PHPmysqli_get_cache_stats" 5 PHPmysqli_stmt::execute! %		 PHPmysqli_error  %		 PHPmysqli_errno 		 mysqlidebug  mysqlicommit 		 mysqliclose !		 mysqliautocommit" 9	 PHPmysql_unbuffered_query +	 PHPmysql_thread_id + PHPmysql_tablename !	 PHPmysql_stat /	 PHPmysql_set_charset +	 PHPmysql_select_db % PHPmysql_result$ =	 PHPmysql_real_escape_string #	 PHPmysql_query !	 PHPmysql_ping ) PHPmysql_pconnect )		 PHPmysql_num_rows -		 PHPmysql_num_fields /	 PHPmysql_list_tables 5	 PHPmysql_list_processes / PHPmysql_list_fields     \ `>!aF-qR3     { \                    M + PHPodbc_field_typeL - PHPodbc_field_scaleK ) PHPodbc_field_numJ + PHPodbc_field_nameI ) PHPodbc_field_lenH )	 PHPodbc_fetch_rowG /	 PHPodbc_fetch_objectF + PHPodbc_fetch_intoE -	 PHPodbc_fetch_arrayD %	 PHPodbc_executeC  PHPodbc_execB '	 PHPodbc_errormsgA !	 PHPodbc_error@ - PHPodbc_data_source? #		 PHPodbc_cursor> % PHPodbc_connect= #		 PHPodbc_commit< %	 PHPodbc_columns"; 7 PHPodbc_columnprivileges: !		 PHPodbc_close9 ) PHPodbc_close_all8 % PHPodbc_binmode7 +	 PHPodbc_autocommit6 		 mysqlirefresh5 		 mysqlistat4 +		 PHPmysqli_sqlstate3 5 PHPmysqli_stmt_sqlstate2 1 PHPmysqli_stmt::reset1 5 PHPmysqli_stmt::prepare0 1 PHPmysqli_stmt::fetch/ / PHPmysqli_stmt_error. / PHPmysqli_stmt_errno    ] eH-v[@"|R0     ]                           #j 9 PHPopenssl_dh_compute_keyi + PHPopenssl_decrypth - PHPopenssl_csr_signg + PHPopenssl_csr_new#f ;	 PHPopenssl_csr_get_subject&e A	 PHPopenssl_csr_get_public_keyd 1 PHPopenssl_csr_export'c A PHPopenssl_csr_export_to_file#b =		 PHPopenssl_cipher_iv_lengtha #	 PHPodbc_tables!` 5 PHPodbc_tableprivileges_ + PHPodbc_statistics ^ 3 PHPodbc_specialcolumns] ) PHPodbc_setoption\ '		 PHPodbc_rollback[ # PHPodbc_resultZ +	 PHPodbc_result_allY +		 PHPodbc_procedures X 7		 PHPodbc_procedurecolumnsW - PHPodbc_primarykeysV % PHPodbc_prepareU ' PHPodbc_pconnectT '		 PHPodbc_num_rowsS +		 PHPodbc_num_fieldsR -		 PHPodbc_next_resultQ - PHPodbc_longreadlenP -	 PHPodbc_gettypeinfoO -		 PHPodbc_free_resultN - PHPodbc_foreignkeys    a [7c>e>     a                                     # 9 PHPopenssl_public_encrypt# 9 PHPopenssl_public_decrypt$ ; PHPopenssl_private_encrypt$ ; PHPopenssl_private_decrypt  -	 PHPopenssl_pkey_new" ;		 PHPopenssl_pkey_get_public$~ =	 PHPopenssl_pkey_get_private#} =		 PHPopenssl_pkey_get_details| /		 PHPopenssl_pkey_free { 3 PHPopenssl_pkey_export(z C PHPopenssl_pkey_export_to_file!y 5 PHPopenssl_pkcs7_verifyx 1 PHPopenssl_pkcs7_sign"w 7 PHPopenssl_pkcs7_encrypt"v 7 PHPopenssl_pkcs7_decrypt u 3 PHPopenssl_pkcs12_read"t 7 PHPopenssl_pkcs12_export*s G PHPopenssl_pkcs12_export_to_filer ) PHPopenssl_pbkdf2q % PHPopenssl_open!p 9	 PHPopenssl_get_md_methods%o A	 PHPopenssl_get_cipher_methodsn -		 PHPopenssl_free_keym 5 PHPopenssl_error_stringl + PHPopenssl_encryptk ) PHPopenssl_digest    H R)|cJ2pO/      d H    " )		 PHPpcntl_wstopsig! -		 PHPpcntl_wifstopped  /		 PHPpcntl_wifsignaled +		 PHPpcntl_wifexited /		 PHPpcntl_wexitstatus ' PHPpcntl_waitpid !	 PHPpcntl_wait )		 PHPpcntl_strerror /	 PHPpcntl_sigwaitinfo 1	PHPpcntl_sigtimedwait / PHPpcntl_sigprocmask % PHPpcntl_signal  7 PHPpcntl_signal_dispatch /	 PHPpcntl_setpriority / PHPpcntl_getpriority 5 PHPpcntl_get_last_error ! PHPpcntl_fork !	 PHPpcntl_exec #		 PHPpcntl_alarm /		 PHPopenssl_x509_read 1	 PHPopenssl_x509_parse /		 PHPopenssl_x509_free  3 PHPopenssl_x509_export( C PHPopenssl_x509_export_to_file&
 ? PHPopenssl_x509_checkpurpose+	 I PHPopenssl_x509_check_private_key ) PHPopenssl_verify % PHPopenssl_sign % PHPopenssl_seal' C	PHPopenssl_random_pseudo_bytes   ! P kP6v]=zaC       m P      C )	 PHPpg_fetch_assocB )	 PHPpg_fetch_arrayA %		 PHPpg_fetch_all @ 5	 PHPpg_fetch_all_columns? ! PHPpg_execute> -	 PHPpg_escape_string= /	 PHPpg_escape_literal < 5	 PHPpg_escape_identifier; +	 PHPpg_escape_bytea: #	 PHPpg_end_copy9  PHPpg_delete8 	 PHPpg_dbname7 ! PHPpg_copy_to6 % PHPpg_copy_from5 ! PHPpg_convert4 5		 PHPpg_connection_status3 3		 PHPpg_connection_reset2 1		 PHPpg_connection_busy1 !	 PHPpg_connect0 	 PHPpg_close/ 1	 PHPpg_client_encoding. +		 PHPpg_cancel_query- -		 PHPpg_affected_rows, + PHPpreg_last_error+  PHPpreg_grep* !		PHPpreg_quote) ! PHPpreg_split( # PHPpreg_filter"' 7 PHPpreg_replace_callback& % PHPpreg_replace% ) PHPpreg_match_all$ ! PHPpreg_match# )		 PHPpcntl_wtermsig   " V kO0gL7~cI-      q V          e '		 PHPpg_num_fieldsd % PHPpg_meta_datac # PHPpg_lo_writeb % PHPpg_lo_unlinka ) PHPpg_lo_truncate` !		 PHPpg_lo_tell_ ! PHPpg_lo_seek^ !	 PHPpg_lo_read] )		 PHPpg_lo_read_all\ ! PHPpg_lo_open[ %	 PHPpg_lo_importZ % PHPpg_lo_exportY % PHPpg_lo_createX #		 PHPpg_lo_closeW #		 PHPpg_last_oidV )		 PHPpg_last_noticeU '	 PHPpg_last_errorT  PHPpg_insertS 	 PHPpg_hostR '	 PHPpg_get_resultQ !		 PHPpg_get_pidP '	 PHPpg_get_notifyO )		 PHPpg_free_resultN ' PHPpg_field_typeM / PHPpg_field_type_oidL ) PHPpg_field_tableK ' PHPpg_field_sizeJ + PHPpg_field_prtlenI % PHPpg_field_numH ' PHPpg_field_nameG - PHPpg_field_is_nullF %	 PHPpg_fetch_rowE + PHPpg_fetch_resultD +	 PHPpg_fetch_object   " Z ~iO5gH)dP1       x Z               -		PHPtime_sleep_until )PHPtime_nanosleep 		 PHPusleep 		 PHPsleep 		 PHPbin2hex 		 PHPconstant !	 PHPpg_version   PHPpg_update !	 PHPpg_untrace~ /		 PHPpg_unescape_bytea} 	 PHPpg_tty | 7		 PHPpg_transaction_status{ 	 PHPpg_trace"z 9	 PHPpg_set_error_verbosity"y 9	 PHPpg_set_client_encodingx ' PHPpg_send_query!w 5 PHPpg_send_query_paramsv + PHPpg_send_prepareu + PHPpg_send_executet  PHPpg_selects -	 PHPpg_result_statusr ) PHPpg_result_seekq +		 PHPpg_result_error"p 7 PHPpg_result_error_fieldo 	 PHPpg_queryn + PHPpg_query_paramsm #	 PHPpg_put_linel ! PHPpg_preparek 	 PHPpg_portj 	 PHPpg_pingi #	 PHPpg_pconnecth 3	 PHPpg_parameter_statusg !	 PHPpg_optionsf #		 PHPpg_num_rows   & [ vM:"nZE/cL0       w [       M %	PHPstr_ireplaceL #	PHPstr_replaceK 	 PHPrtrimH 	PHPstrtrG 		PHPucwordsF 		 PHPlcfirstE 		 PHPucfirstD 		 PHPquotemetaC )	PHPsubstr_replaceA % PHPmoney_format@ 	PHPstrcoll? )	PHPsubstr_compare> 	PHPstrpbrk= 		PHPstr_split< )		PHPstr_word_count; #		PHPstr_shuffle7 '		PHPstripcslashes6 %			PHPstripslashes2 	 PHPnl2br1 	 PHPhebrevc0 	 PHPhebrev/ 			PHPstrrev( 		PHPstrtok' 	PHPstrcspn& 	PHPstrspn$ '	PHPstrnatcasecmp# 	PHPstrnatcmp 		 PHPcrc32 	 PHPmd5_file 	 PHPmd5 	 PHPsha1_file 	 PHPsha1& A PHPget_html_translation_table# ;		PHPhtmlspecialchars_decode %		PHPhtmlentities -	 PHPhtmlspecialchars
 	 PHPwordwrap	  PHPflush   & f pYC*kV?'`M8       f                  } +		 PHPproc_get_status| )	 PHPproc_terminate{ !		 PHPproc_closez  PHPproc_openy !		 PHPshell_execx 	 PHPpassthruw )		 PHPescapeshellargv )		 PHPescapeshellcmdu 	 PHPsystemt 	 PHPexecn -	 PHPhttp_build_querym %			PHPrawurldecodel %			PHPrawurlencodek 			PHPurldecodej 			PHPurlencodei 	 PHPparse_urlg  PHPsscanfdf  PHPvfprintfd  PHPvsprintfc 	PHPvprintfb 	 PHPprintfda 		PHPsprintfd` 	PHPstr_pad_ !		PHPstr_getcsv^ 		PHPparse_str[ # PHPlevenshteinZ 		 PHPsoundexY #		 PHPnl_langinfoX ! PHPlocaleconvW  PHPsetlocaledV 	 PHPimplodeU 	PHPexplodeT % PHPsimilar_textS !		PHPstrip_tagsR 	 PHPltrimQ 	 PHPtrimP #	 PHPchunk_splitN !	PHPstr_repeat     i uY> yT/qO&      i                                 &` A	 PHPregister_shutdown_functiond] 	 PHPprint_r\ +	 PHPdebug_zval_dumpd[ !	 PHPvar_exportZ 	 PHPvar_dumpdY #		 PHPunserializeX 		 PHPserialize&W ? PHPforward_static_call_arrayV 3	 PHPforward_static_calld!S 5 PHPcall_user_func_arrayR )	 PHPcall_user_funcdQ ) PHPerror_get_lastP 	 PHPerror_log$O =	 PHPimport_request_variablesH 1	PHPconvert_cyr_string"G ;		 PHPquoted_printable_encode"F ;		 PHPquoted_printable_decodeE  PHPuniqidA ) PHPsys_getloadavg= 		 PHPlong2ip< 		 PHPip2long; 		 PHPinet_pton: 		 PHPinet_ntop -		 PHPconvert_uudecode -		 PHPconvert_uuencode '		 PHPbase64_encode '		PHPbase64_decode -		 PHPgetprotobynumber )		 PHPgetprotobyname ' PHPgetservbyport ' PHPgetservbyname~ 		 PHPproc_nice   $ ^ yW?$aF+~jU>)       u ^               		 PHPis_scalar 		 PHPis_object 		 PHPis_array 			PHPis_string !		 PHPis_numeric
 			PHPis_int	 		 PHPis_float 		 PHPis_bool #		 PHPis_resource 		 PHPis_null  PHPsettype 		 PHPgettype 			PHPstrval 		 PHPfloatval 		PHPintval  )	 PHPdns_get_record  PHPgetmxrr~ !	 PHPcheckdnsrr} # PHPgethostname| )		 PHPgethostbynamel{ '		 PHPgethostbynamez '		 PHPgethostbyaddru /	 PHPignore_user_abortt / PHPconnection_statuss 1 PHPconnection_abortedr % PHPheaders_listq % PHPheaders_sentp '	 PHPheader_removeo 	 PHPheadern %	 PHPsetrawcookiem 	 PHPsetcookiee 5			PHPphp_strip_whitespaced -		PHPhighlight_stringc )	 PHPhighlight_file#b =		 PHPunregister_tick_function"a 9	 PHPregister_tick_functiond    R |U,kI&pE     x R                      #H 9 PHPstream_set_read_bufferG '	 PHPget_meta_tagsC 5		 PHPstream_supports_lockB 3	 PHPstream_get_contents"A 7 PHPstream_copy_to_stream@ 1 PHPstream_socket_pair#? 9 PHPstream_socket_shutdown(> C PHPstream_socket_enable_crypto!= 5 PHPstream_socket_sendto#< 9 PHPstream_socket_recvfrom#; 9 PHPstream_socket_get_name : 5	 PHPstream_socket_accept 9 5	 PHPstream_socket_server 8 5	 PHPstream_socket_client7 5		 PHPstream_filter_remove!6 5 PHPstream_filter_append"5 7 PHPstream_filter_prepend%4 A		 PHPstream_context_set_default%3 A	 PHPstream_context_get_default%2 A		 PHPstream_context_get_options&1 ? PHPstream_context_set_option$0 ?		 PHPstream_context_get_params&/ ? PHPstream_context_set_params!. 7 PHPstream_context_create- ' PHPstream_select #	 PHPis_callable   # X uN'y_=%v_J8"       n X            PHPob_clean  PHPob_flush  PHPob_start 	 PHPmetaphone  PHPcloselog  PHPsyslog  PHPopenlog !		 PHPezmlm_hash  PHPmaile 	 PHPscandird 	 PHPdirc 	 PHPreaddirb 	 PHPrewinddira  PHPgetcwd` 		 PHPchdir_ 	 PHPclosedir^ 	 PHPopendir\ # PHPget_browser[ 	PHPunpackZ 		PHPpackdY !	 PHPpfsockopenX 	 PHPfsockopenU 1 PHPstream_set_timeoutT #	 PHPget_headersS +		 PHPstream_is_local&R C		 PHPstream_resolve_include_path Q 7 PHPstream_get_transportsP 3 PHPstream_get_wrappers!O 9		 PHPstream_wrapper_restore$N ?		 PHPstream_wrapper_unregister$M ; PHPstream_wrapper_registerL + PHPstream_get_lineK 5		 PHPstream_get_meta_data J 3 PHPstream_set_blocking$I ; PHPstream_set_write_buffer     \ }cH+}S.
hM3      y \                    | + PHPposix_getgroups{ '		 PHPposix_setegidz ' PHPposix_getegidy %		 PHPposix_setgidx % PHPposix_getgidw '		 PHPposix_seteuidv ' PHPposix_geteuidu %		 PHPposix_setuidt % PHPposix_getuids ' PHPposix_getppidr % PHPposix_getpidq ! PHPposix_kill$o ? PHPoutput_reset_rewrite_vars#n 9 PHPoutput_add_rewrite_varm / PHPstream_bucket_new!l 5 PHPstream_bucket_append"k 7 PHPstream_bucket_prepend'j E		 PHPstream_bucket_make_writeable#i 9 PHPstream_filter_registerh 1 PHPstream_get_filtersg 			PHPstr_rot13f  PHPftok - PHPob_list_handlers /	 PHPob_implicit_flush + PHPob_get_contents '	 PHPob_get_status % PHPob_get_level ' PHPob_get_length % PHPob_get_clean % PHPob_get_flush % PHPob_end_clean % PHPob_end_flush   ! L w]D+oS7nR0     g L   # PHPmsg_receive  PHPmsg_send '	 PHPmsg_get_queue' E		 PHPreadline_completion_function! 9	 PHPreadline_write_history  7	 PHPreadline_read_history! 9 PHPreadline_clear_history 5		 PHPreadline_add_history ' PHPreadline_info 	 PHPreadline - PHPposix_initgroups )		 PHPposix_strerror 5 PHPposix_get_last_error + PHPposix_getrlimit )		 PHPposix_getpwuid )		 PHPposix_getpwnam )		 PHPposix_getgrgid )		 PHPposix_getgrnam %	 PHPposix_access
 # PHPposix_mknod	 % PHPposix_mkfifo % PHPposix_getcwd %		 PHPposix_isatty '		 PHPposix_ttyname ' PHPposix_ctermid # PHPposix_times # PHPposix_uname %		 PHPposix_getsid '		 PHPposix_getpgid  ' PHPposix_setpgid % PHPposix_setsid~ ' PHPposix_getpgrp} ) PHPposix_getlogin     U u\C+sQ.y_<     p U             A ' PHPsession_unset? ) PHPsession_status> ' PHPsession_start$= =	 PHPsession_set_save_handler%< ?	 PHPsession_set_cookie_params; /	 PHPsession_save_path$9 ? PHPsession_register_shutdown 8 7	 PHPsession_regenerate_id7 %	 PHPsession_name6 3	 PHPsession_module_name4 !	 PHPsession_id$3 ? PHPsession_get_cookie_params2 ) PHPsession_encode1 + PHPsession_destroy0 )			PHPsession_decode / 7	 PHPsession_cache_limiter. 5	 PHPsession_cache_expire, ) PHPshm_remove_var+ # PHPshm_get_var* # PHPshm_has_var) # PHPshm_put_var( !		 PHPshm_detach' !		 PHPshm_remove& !	 PHPshm_attach% !		 PHPsem_remove$ #		 PHPsem_release# #		 PHPsem_acquire" 	 PHPsem_get! -		 PHPmsg_queue_exists  ' PHPmsg_set_queue )		 PHPmsg_stat_queue -		 PHPmsg_remove_queue     Z z_E#v[9vY?       Z                  "a ;		 PHPsnmp_set_valueretrieval`  PHPsnmp3_set
_ + PHPsnmp3_real_walk
^ ! PHPsnmp3_walk
] ' PHPsnmp3_getnext
\  PHPsnmp3_get
[  PHPsnmp2_setZ + PHPsnmp2_real_walkY ! PHPsnmp2_walkX ' PHPsnmp2_getnextW  PHPsnmp2_getV  PHPsnmpset%U A		 PHPsnmp_set_oid_numeric_print%T A		 PHPsnmp_set_oid_output_formatS 3		 PHPsnmp_set_enum_printR 5		 PHPsnmp_set_quick_printQ 5 PHPsnmp_get_quick_printP # PHPsnmpwalkoidO % PHPsnmprealwalkN  PHPsnmpwalkM # PHPsnmpgetnextL  PHPsnmpget K 5	 PHPsimplexml_import_dom!J 7	 PHPsimplexml_load_stringI 3	 PHPsimplexml_load_fileH %		 PHPshmop_deleteG # PHPshmop_writeF !		 PHPshmop_sizeE #		 PHPshmop_closeD ! PHPshmop_readC ! PHPshmop_openB 3 PHPsession_write_close    \ dG$rV;kL/     w \                        %	 PHPspl_autoload # PHPspl_classes~ 1	 PHPsocket_clear_error} /	 PHPsocket_last_error| +	 PHPsocket_shutdown{ / PHPsocket_set_optionz / PHPsocket_get_optiony ' PHPsocket_sendtox + PHPsocket_recvfromw # PHPsocket_sendv # PHPsocket_recvu # PHPsocket_bindt +		 PHPsocket_strerrors ) PHPsocket_connectr 1 PHPsocket_getpeernameq 1 PHPsocket_getsocknamep # PHPsocket_reado % PHPsocket_writen %		 PHPsocket_closem '	 PHPsocket_listenl -		 PHPsocket_set_blockk 3		 PHPsocket_set_nonblockj '		 PHPsocket_accepti 1 PHPsocket_create_pair h 5	 PHPsocket_create_listeng ' PHPsocket_createf ' PHPsocket_selecte '		 PHPis_soap_fault!d 9	 PHPuse_soap_error_handlerc '		 PHPsnmp_read_mib"b ; PHPsnmp_get_valueretrieval    R nO3{X<"zX=     s R                 / PHPsqlite_field_name 3	 PHPsqlite_fetch_single 3	 PHPsqlite_fetch_object& ? PHPsqlite_fetch_column_types 1	 PHPsqlite_fetch_array -	 PHPsqlite_fetch_all )	 PHPsqlite_factory # PHPsqlite_exec 5		 PHPsqlite_escape_string 3		 PHPsqlite_error_string )	 PHPsqlite_current# 9 PHPsqlite_create_function$ ; PHPsqlite_create_aggregate ' PHPsqlite_column %		 PHPsqlite_close )		 PHPsqlite_changes  3 PHPsqlite_busy_timeout 1 PHPsqlite_array_query ) PHPiterator_apply
 )		 PHPiterator_count	 /	 PHPiterator_to_array +		 PHPspl_object_hash -	 PHPclass_implements '	 PHPclass_parents /		 PHPspl_autoload_call! 9PHPspl_autoload_functions" ;		 PHPspl_autoload_unregister! 7 PHPspl_autoload_register" ;	 PHPspl_autoload_extensions    X gG(iN3]B"     y X                  < 1	 PHPsqlsrv_fetch_array; )		 PHPsqlsrv_execute: '	 PHPsqlsrv_errors9 )	 PHPsqlsrv_connect8 - PHPsqlsrv_configure7 '		 PHPsqlsrv_commit6 %		 PHPsqlsrv_close5 1		 PHPsqlsrv_client_info4 '		 PHPsqlsrv_cancel#3 =		 PHPsqlsrv_begin_transaction2 %		 PHPsqlite_valid$1 ; PHPsqlite_unbuffered_query#0 =		 PHPsqlite_udf_encode_binary#/ =		 PHPsqlite_udf_decode_binary . 3 PHPsqlite_single_query- # PHPsqlite_seek, '		 PHPsqlite_rewind+ % PHPsqlite_query* #		 PHPsqlite_prev) %	 PHPsqlite_popen( #	 PHPsqlite_open' +		 PHPsqlite_num_rows& /		 PHPsqlite_num_fields% #		 PHPsqlite_next$ / PHPsqlite_libversion# 1 PHPsqlite_libencoding#" =		 PHPsqlite_last_insert_rowid! /		 PHPsqlite_last_error  %		 SQLiteResultkey +		 PHPsqlite_has_prev +		 PHPsqlite_has_more    c cC&sQ,`E,     c                                 Y 3		 PHPssh2_publickey_listX 3		 PHPssh2_publickey_initW 1 PHPssh2_publickey_add"V ;		 PHPssh2_methods_negotiatedU -	 PHPssh2_fingerprintT / PHPssh2_fetch_streamS  PHPssh2_execR %	 PHPssh2_connect"Q 7 PHPssh2_auth_pubkey_fileP 1 PHPssh2_auth_passwordO ) PHPssh2_auth_none%N = PHPssh2_auth_hostbased_fileM + PHPssh2_auth_agentL 1		 PHPsqlsrv_server_info"K ;		 PHPsqlsrv_send_stream_dataJ 5		 PHPsqlsrv_rows_affectedI +		 PHPsqlsrv_rollbackH % PHPsqlsrv_queryG ) PHPsqlsrv_prepareF +		 PHPsqlsrv_num_rowsE /		 PHPsqlsrv_num_fieldsD 1		 PHPsqlsrv_next_resultC +		 PHPsqlsrv_has_rowsB - PHPsqlsrv_get_fieldA /		 PHPsqlsrv_get_config@ -		 PHPsqlsrv_free_stmt ? 7		 PHPsqlsrv_field_metadata> %	 PHPsqlsrv_fetch= 3	 PHPsqlsrv_fetch_object    d cD" bK2qR5     d                              g ' PHPwddx_add_varsdf +		PHPwddx_packet_ende /	PHPwddx_packet_startd 3	 PHPwddx_serialize_varsd c 5	 PHPwddx_serialize_valueb !		 PHPtoken_namea '		 PHPtoken_get_all` )	 PHPob_tidyhandler_ /		 PHPtidy_config_count^ /		 PHPtidy_access_count] 1		 PHPtidy_warning_count\ -		 PHPtidy_error_count[ 		 tidydiagnoseZ +		 PHPtidy_get_outputY 		 tidygetopti # PHPssh2_tunnelh !	 PHPssh2_shellg 		 PHPssh2_sftpf - PHPssh2_sftp_unlinke / PHPssh2_sftp_symlinkd ) PHPssh2_sftp_statc + PHPssh2_sftp_rmdirb - PHPssh2_sftp_renamea 1 PHPssh2_sftp_realpath` 1 PHPssh2_sftp_readlink_ + PHPssh2_sftp_mkdir^ + PHPssh2_sftp_lstat] + PHPssh2_sftp_chmod\ ' PHPssh2_scp_send[ ' PHPssh2_scp_recv"Z 7 PHPssh2_publickey_remove    E aD%m?xU5     e E        %		 XMLWriterstartElement# - XMLWriterwriteAttributeNS#  - XMLWriterstartAttributeNS! ) XMLWriterwriteAttribute~ %		 XMLWriterendAttribute} )		 XMLWriterstartAttribute| !		 XMLWriterendComment{ %		 XMLWriterstartComment z +		 XMLWritersetIndentStringy 		 XMLWritersetIndentx !		 XMLWriteropenMemoryw 		 XMLWriteropenURI:v g PHPxmlrpc_server_register_introspection_callback1u U PHPxmlrpc_server_add_introspection_data+t M		 PHPxmlrpc_parse_method_descriptions&s ? PHPxmlrpc_server_call_method*r G PHPxmlrpc_server_register_method q 7		 PHPxmlrpc_server_destroyp 5 PHPxmlrpc_server_createo +		 PHPxmlrpc_is_faultn + PHPxmlrpc_set_typem +		 PHPxmlrpc_get_type"l 7 PHPxmlrpc_encode_request"k 7 PHPxmlrpc_decode_requestj '		PHPxmlrpc_decodei '		 PHPxmlrpc_encodeh -		 PHPwddx_deserialize    R {W<#zX9\9     k R                	 XMLWriterflush %	 XMLWriteroutputMemory! ) XMLWriterwriteDTDEntity %		 XMLWriterendDTDEntity! ) XMLWriterstartDTDEntity" + XMLWriterwriteDTDAttlist '		 XMLWriterendDTDAttlist  +		 XMLWriterstartDTDAttlist" + XMLWriterwriteDTDElement '		 XMLWriterendDTDElement  +		 XMLWriterstartDTDElement 	 XMLWriterwriteDTD 		 XMLWriterendDTD 	 XMLWriterstartDTD %		 XMLWriterwriteComment #		 XMLWriterendDocument ' XMLWriterstartDocument 		 XMLWriterwriteRaw 		 XMLWritertext !		 XMLWriterwriteCData 		 XMLWriterendCData !		 XMLWriterstartCData
  XMLWriterwritePI	 		 XMLWriterendPI 		 XMLWriterstartPI! ) XMLWriterwriteElementNS %	 XMLWriterwriteElement! ) XMLWriterstartElementNS )		 XMLWriterfullEndElement !		 XMLWriterendElement   % S v`J/~hQ; X?)      } g S E 		 PHPgztellD  PHPgzseekC !		 PHPgzpassthruB  PHPgzopenA  PHPgzread@  PHPgzgetss? 	 PHPgzgets> 		 PHPgzgetc= 		 PHPgzeof< 		 PHPgzclose; 		 PHPgzrewind: !	 PHPreadgzfile&9 C		 PHPzip_entry_compressionmethod#8 =		 PHPzip_entry_compressedsize7 )		 PHPzip_entry_name6 1		PHPzip_entry_filesize5 )	 PHPzip_entry_read4 +		 PHPzip_entry_close3 ) PHPzip_entry_open2 		 PHPzip_read1 		 PHPzip_close0 		 PHPzip_open/  PHPyp_order.  PHPyp_next-  PHPyp_match,  PHPyp_master + 7 PHPyp_get_default_domain*  PHPyp_first)  PHPyp_errno( '		 PHPyp_err_string'  PHPyp_cat&  PHPyp_all% !	 PHPyaml_parse$ )	 PHPyaml_parse_url# +	 PHPyaml_parse_file" 	 PHPyaml_emit! ) PHPyaml_emit_file   % X pY=lYE/hM/     u X      j +		  PHPget_object_varsi 3  PHPget_declared_traits"h ;  PHPget_declared_interfacesg 5  PHPget_declared_classesf 	  PHPget_classe )		  PHPget_class_varsd /		  PHPget_class_methodsc -  PHPget_called_classb %	  PHPclass_existsa #  PHPclass_alias` !  PHP__autoload_ -	  PHPinterface_exists^ %	  PHPtrait_exists] %		  PHPrequire_once\   PHPis_a[ 	  PHPsizeofZ  	PHPstristrY  	PHPstrstrX 	  PHPemptydW 	  PHPechodV 	  PHPissetdU 		  PHPevalT !		 	PHPstrtolowerS ! 	PHPstrcasecmpR  	PHPstrrposQ 		 	PHPstrlenP  	PHPsubstrO  	PHPstrposN 5 PHPzlib_get_coding_typeM % PHPob_gzhandlerL 	 PHPgzencodeK 	 PHPgzinflateJ 	 PHPgzdeflateI %	 PHPgzuncompressH !	 PHPgzcompressG 	 PHPgzfileF  PHPgzwrite    _ kL-sS4v[C)     _                           !	 9 PHPapd_get_active_symbols 		 PHPapd_echo% A PHPapd_dump_regular_resources( G PHPapd_dump_persistent_resources" ; PHPapd_dump_function_table 	 PHPapd_croak %		 PHPapd_continue 	 PHPapd_clunk ' PHPapd_callstack  )		 PHPapd_breakpoint ' PHPapache_setenv"~ ; PHPapache_response_headers} 5 PHPapache_reset_timeout!| 9 PHPapache_request_headers{ #	 PHPapache_notez /		 PHPapache_lookup_uriy 1 PHPapache_get_versionx 1 PHPapache_get_modulesw '	 PHPapache_getenv!v 9 PHPapache_child_terminateu +	 PHPerror_reportingt !		 	PHPstrtoupper"r 7  PHPpassword_needs_rehashq /		  PHPpassword_get_infop +  PHPpassword_verifyo '  PHPpassword_hashn +  PHPproperty_existsm '  PHPmethod_existsl )  PHPis_subclass_ofk -	  PHPget_parent_class    C qO.zZ5~Z2     d C     $ 3		 PHPbirdstep_autocommit# ) PHPbindtextdomain$" ; PHPbind_textdomain_codeset.! OPHPbcompiler_write_included_filename"  9	 PHPbcompiler_write_header0 S PHPbcompiler_write_functions_from_file% = PHPbcompiler_write_function! 9		 PHPbcompiler_write_footer! 5 PHPbcompiler_write_file' A PHPbcompiler_write_exe_footer% = PHPbcompiler_write_constant" 7 PHPbcompiler_write_class )		 PHPbcompiler_read" 7 PHPbcompiler_parse_class 1		 PHPbcompiler_load_exe )		 PHPbcompiler_load - PHPbbcode_set_flags" 7 PHPbbcode_set_arg_parser % PHPbbcode_parse )		 PHPbbcode_destroy '	 PHPbbcode_create / PHPbbcode_add_smiley 1 PHPbbcode_add_element) E PHPapd_set_session_trace_socket! 7	 PHPapd_set_session_trace +		 PHPapd_set_session
 3 PHPapd_set_pprof_trace    O nL-wV4yR4     p O           B 3		 PHPcairo_fill_preserveA 1		 PHPcairo_fill_extents@ !		 PHPcairo_fill*? G PHPcairo_device_to_user_distance!> 5 PHPcairo_device_to_user= ) PHPcairo_curve_to< +		 PHPcairo_copy_page; -		 PHPcairo_close_path$: ?		 PHPcairo_clip_rectangle_list9 3		 PHPcairo_clip_preserve8 1		 PHPcairo_clip_extents7 !		 PHPcairo_clip#6 = PHPcairo_available_surfaces 5 7 PHPcairo_available_fonts4  PHPcairo_arc3 1 PHPcairo_arc_negative2 / PHPcairo_append_path1 		 PHPboolval0 ' PHPblenc_encrypt/ /		 PHPbirdstep_rollback. + PHPbirdstep_result"- ;		 PHPbirdstep_off_autocommit, 3		 PHPbirdstep_freeresult+ /		 PHPbirdstep_fieldnum* 1 PHPbirdstep_fieldname) )		 PHPbirdstep_fetch( ' PHPbirdstep_exec' - PHPbirdstep_connect& +		 PHPbirdstep_commit% )		 PHPbirdstep_close    Z n@`0pC"     } Z                                     Y 7		 PHPcairo_get_font_matrixX 3		 PHPcairo_get_font_faceW 3		 PHPcairo_get_fill_ruleV 5		 PHPcairo_get_dash_countU )		 PHPcairo_get_dash"T ;		 PHPcairo_get_current_pointS 3		 PHPcairo_get_antialias*R G PHPcairo_format_stride_for_width$Q ?		 PHPcairo_font_options_status2P W PHPcairo_font_options_set_subpixel_order.O O PHPcairo_font_options_set_hint_style0N S PHPcairo_font_options_set_hint_metrics-M M PHPcairo_font_options_set_antialias%L = PHPcairo_font_options_merge"K ;		 PHPcairo_font_options_hash0J W		 PHPcairo_font_options_get_subpixel_order,I O		 PHPcairo_font_options_get_hint_style.H S		 PHPcairo_font_options_get_hint_metrics+G M		 PHPcairo_font_options_get_antialias%F = PHPcairo_font_options_equal!E 9		 PHPcairo_font_face_status#D =		 PHPcairo_font_face_get_typeC 1		 PHPcairo_font_extents    N wU7tT/^3     v N                %t A PHPcairo_matrix_init_identity&s ? PHPcairo_matrix_create_scaler 1	 PHPcairo_mask_surfaceq ! PHPcairo_maskp ' PHPcairo_line_too + PHPcairo_in_stroken ' PHPcairo_in_fill(m G		 PHPcairo_image_surface_get_width)l I		 PHPcairo_image_surface_get_stride)k I		 PHPcairo_image_surface_get_height)j I		 PHPcairo_image_surface_get_format'i E		 PHPcairo_image_surface_get_data h 7		 PHPcairo_identity_matrix"g ;		 PHPcairo_has_current_pointf - PHPcairo_glyph_pathe 3		 PHPcairo_get_toleranced -		 PHPcairo_get_targetc -		 PHPcairo_get_source b 7		 PHPcairo_get_scaled_fonta 1		 PHPcairo_get_operator ` 7		 PHPcairo_get_miter_limit_ -		 PHPcairo_get_matrix^ 5		 PHPcairo_get_line_width] 3		 PHPcairo_get_line_join\ 1		 PHPcairo_get_line_cap![ 9		 PHPcairo_get_group_target!Z 9		 PHPcairo_get_font_options    < hG$dH(h8    ` <  ! 9		 PHPcairo_pattern_get_rgba+ M		 PHPcairo_pattern_get_radial_circles* K		 PHPcairo_pattern_get_linear_points#
 =		 PHPcairo_pattern_get_filter#	 =		 PHPcairo_pattern_get_extend. O PHPcairo_pattern_get_color_stop_rgba- Q		 PHPcairo_pattern_get_color_stop_count- M PHPcairo_pattern_add_color_stop_rgb. O PHPcairo_pattern_add_color_stop_rgba 1		 PHPcairo_path_extents# 9 PHPcairo_paint_with_alpha #		 PHPcairo_paint 1		 PHPcairo_new_sub_path  )		 PHPcairo_new_path ' PHPcairo_move_to#~ 9 PHPcairo_matrix_translate)} E PHPcairo_matrix_transform_point,| K PHPcairo_matrix_transform_distance{ 1 PHPcairo_matrix_scale z 3 PHPcairo_matrix_rotatey 3		 PHPcairo_matrix_invert(x C PHPcairo_matrix_init_translate$w ; PHPcairo_matrix_init_scale#v =		 PHPcairo_matrix_init_rotateu / PHPcairo_matrix_init    P dBZ, W9     k P                      & '		 PHPcairo_restore% -		 PHPcairo_reset_clip$ / PHPcairo_rel_move_to# / PHPcairo_rel_line_to" 1 PHPcairo_rel_curve_to! + PHPcairo_rectangle*  G PHPcairo_push_group_with_content -		 PHPcairo_push_group& ? PHPcairo_ps_surface_set_size% = PHPcairo_ps_surface_set_eps/ Q PHPcairo_ps_surface_restrict_to_level# =		 PHPcairo_ps_surface_get_eps) E PHPcairo_ps_surface_dsc_comment+ M		 PHPcairo_ps_surface_dsc_begin_setup0 W		 PHPcairo_ps_surface_dsc_begin_page_setup# =		 PHPcairo_ps_level_to_string 3 PHPcairo_ps_get_levels$ ?		 PHPcairo_pop_group_to_source +		 PHPcairo_pop_group' A PHPcairo_pdf_surface_set_size 5		 PHPcairo_pattern_status% = PHPcairo_pattern_set_matrix% = PHPcairo_pattern_set_filter% = PHPcairo_pattern_set_extend! 9		 PHPcairo_pattern_get_type    K }N({X5^>     h K             A +		 PHPcairo_show_page @ 3 PHPcairo_set_tolerance$? =	 PHPcairo_set_source_surface> - PHPcairo_set_source"= 7 PHPcairo_set_scaled_font< 1 PHPcairo_set_operator"; 7 PHPcairo_set_miter_limit: - PHPcairo_set_matrix!9 5 PHPcairo_set_line_width 8 3 PHPcairo_set_line_join7 1 PHPcairo_set_line_cap 6 3 PHPcairo_set_font_size#5 9 PHPcairo_set_font_options"4 7 PHPcairo_set_font_matrix 3 3 PHPcairo_set_font_face 2 3 PHPcairo_set_fill_rule1 )	 PHPcairo_set_dash0 3 PHPcairo_set_antialias"/ 9	 PHPcairo_select_font_face. # PHPcairo_scale+- I PHPcairo_scaled_font_text_extents#, =		 PHPcairo_scaled_font_status,+ K PHPcairo_scaled_font_glyph_extents%* A		 PHPcairo_scaled_font_get_type$) ?		 PHPcairo_scaled_font_extents( !		 PHPcairo_save' % PHPcairo_rotate    H gDd2a7    g H              Z + PHPcairo_text_pathY 1 PHPcairo_text_extents&X C		 PHPcairo_svg_version_to_string2W W PHPcairo_svg_surface_restrict_to_version)V I PHPcairo_svg_surface_get_versions!U 9 PHPcairo_svg_get_versions'T A PHPcairo_surface_write_to_pngS 5		 PHPcairo_surface_status"R ;		 PHPcairo_surface_show_page2Q W PHPcairo_surface_set_fallback_resolution,P K PHPcairo_surface_set_device_offset#O =		 PHPcairo_surface_mark_dirty/N Q PHPcairo_surface_mark_dirty_rectangle!M 9		 PHPcairo_surface_get_type*L K		 PHPcairo_surface_get_device_offset$K ?		 PHPcairo_surface_get_contentJ 3		 PHPcairo_surface_flushI 5		 PHPcairo_surface_finish"H ;		 PHPcairo_surface_copy_page G 7		 PHPcairo_stroke_preserveF 5		 PHPcairo_stroke_extentsE %		 PHPcairo_stroke!D 9		 PHPcairo_status_to_stringC %		 PHPcairo_statusB + PHPcairo_show_text    ] qV4lD|W/    y ]                             v '	 PHPcollator_sort"u 7 PHPcollator_set_strength#t 9 PHPcollator_set_attribute s 7		 PHPcollator_get_strength"r 7 PHPcollator_get_sort_key q 3 PHPcollator_get_locale%p A		 PHPcollator_get_error_message"o ;		 PHPcollator_get_error_code#n 9 PHPcollator_get_attributem - PHPcollator_comparel )	 PHPcollator_asortk !	 PHPclass_uses#j 9 PHPclasskit_method_rename#i 9 PHPclasskit_method_remove%h = PHPclasskit_method_redefine!g 5 PHPclasskit_method_copy f 3 PHPclasskit_method_adde +		 PHPclasskit_importd 		 PHPchrootc # PHPchdb_createb # PHPcalcul_hmaca ! PHPcalculhmac` 5 PHPcairo_version_string_ ' PHPcairo_version*^ G PHPcairo_user_to_device_distance!] 5 PHPcairo_user_to_device\ + PHPcairo_translate[ + PHPcairo_transform    I ]E&vT8%iG)
     i I    1		 PHPcubrid_current_oid# ;	 PHPcubrid_connect_with_url ) PHPcubrid_connect '		 PHPcubrid_commit 3		 PHPcubrid_column_types 3		 PHPcubrid_column_names + PHPcubrid_col_size ) PHPcubrid_col_get 5		 PHPcubrid_close_request 5		 PHPcubrid_close_prepare %	 PHPcubrid_close!
 9	 PHPcubrid_client_encoding	 # PHPcubrid_bind 5	 PHPcubrid_affected_rows + PHPcreate_function  PHPcrash )		 PHPcrack_opendict 5 PHPcrack_getlastmessage +	 PHPcrack_closedict # PHPcrack_check 1 PHPconnection_timeout  # PHPcom_release 1	 PHPcom_print_typeinfo~ -	 PHPcom_message_pump} -	 PHPcom_load_typelib| !		 PHPcom_isenum!{ 7	 PHPcom_get_active_objectz ) PHPcom_event_sinky + PHPcom_create_guidx ! PHPcom_addref)w E PHPcollator_sort_with_sort_keys    f nF'	oM+oM,     f                                    2 ! PHPcubrid_get!1 9 PHPcubrid_get_client_info"0 7 PHPcubrid_get_class_name/ 1		 PHPcubrid_get_charset . 7		 PHPcubrid_get_autocommit- 1		 PHPcubrid_free_result, / PHPcubrid_field_type+ 1 PHPcubrid_field_table* /	 PHPcubrid_field_seek) / PHPcubrid_field_name( - PHPcubrid_field_len' 1 PHPcubrid_field_flags& -		 PHPcubrid_fetch_row% %	 PHPcubrid_fetch$ 3	 PHPcubrid_fetch_object# 5		 PHPcubrid_fetch_lengths" 1	 PHPcubrid_fetch_field! 1		 PHPcubrid_fetch_assoc  1	 PHPcubrid_fetch_array ) PHPcubrid_execute %	 PHPcubrid_error - PHPcubrid_error_msg / PHPcubrid_error_code% A PHPcubrid_error_code_facility %	 PHPcubrid_errno # PHPcubrid_drop /		 PHPcubrid_disconnect ) PHPcubrid_db_name - PHPcubrid_data_seek    V sQ4oO-pR1     t V                    O ) PHPcubrid_new_gloN 1 PHPcubrid_move_cursorM / PHPcubrid_lock_writeL - PHPcubrid_lock_readK +		 PHPcubrid_lob_sizeJ + PHPcubrid_lob_sendI ) PHPcubrid_lob_getH / PHPcubrid_lob_exportG -		 PHPcubrid_lob_closeF / PHPcubrid_lob2_writeE -		 PHPcubrid_lob2_tellD 1		 PHPcubrid_lob2_tell64C -		 PHPcubrid_lob2_sizeB 1		 PHPcubrid_lob2_size64A - PHPcubrid_lob2_seek@ 1 PHPcubrid_lob2_seek64? - PHPcubrid_lob2_read> + PHPcubrid_lob2_new= 1 PHPcubrid_lob2_import< 1 PHPcubrid_lob2_export; /		 PHPcubrid_lob2_close: - PHPcubrid_lob2_bind!9 5 PHPcubrid_load_from_glo8 +		 PHPcubrid_list_dbs7 1 PHPcubrid_is_instance6 -	 PHPcubrid_insert_id!5 9		 PHPcubrid_get_server_info#4 =		 PHPcubrid_get_query_timeout"3 ;		 PHPcubrid_get_db_parameter    ` hA(
sQ4tM.     `                              l 5		 PHPdatefmt_get_calendark ) PHPdatefmt_format!j 7	 PHPdatefmt_format_objecti ) PHPcubrid_version#h ;	 PHPcubrid_unbuffered_query%g = PHPcubrid_set_query_timeoutf + PHPcubrid_set_drop$e ; PHPcubrid_set_db_parameter"d 7 PHPcubrid_set_autocommitc ) PHPcubrid_set_addb ) PHPcubrid_seq_puta / PHPcubrid_seq_insert` + PHPcubrid_seq_drop_ + PHPcubrid_send_glo^ ' PHPcubrid_schema] 1 PHPcubrid_save_to_glo\ +		 PHPcubrid_rollback[ ' PHPcubrid_result%Z ?	 PHPcubrid_real_escape_stringY %	 PHPcubrid_queryX ! PHPcubrid_putW ) PHPcubrid_prepareV #	 PHPcubrid_ping$U =	 PHPcubrid_pconnect_with_urlT + PHPcubrid_pconnectS +		 PHPcubrid_num_rowsR /		 PHPcubrid_num_fieldsQ +		 PHPcubrid_num_colsP 1		 PHPcubrid_next_result    Y rQ/
a:sO5     s Y                     
 #	 PHPdb2_execute	  PHPdb2_exec /		 PHPdb2_escape_string +		 PHPdb2_cursor_type )	 PHPdb2_conn_error /	 PHPdb2_conn_errormsg # PHPdb2_connect !		 PHPdb2_commit #	 PHPdb2_columns! 7	 PHPdb2_column_privileges  		 PHPdb2_close +		 PHPdb2_client_info~ ) PHPdb2_bind_param} )	 PHPdb2_autocommit| 1		 PHPdate_timestamp_get{ +		 PHPdate_offset_getz # PHPdate_format$y ; PHPdatefmt_set_timezone_idx 5		 PHPdatefmt_set_timezone w 3 PHPdatefmt_set_pattern!v 5 PHPdatefmt_set_calendaru /	 PHPdatefmt_localtimet 1		 PHPdatefmt_is_lenient"s ;		 PHPdatefmt_get_timezone_idr 5		 PHPdatefmt_get_timetypeq 3		 PHPdatefmt_get_patternp 1	 PHPdatefmt_get_locale$o ?		 PHPdatefmt_get_error_message!n 9		 PHPdatefmt_get_error_codem 5		 PHPdatefmt_get_datetype    f lF(lO4oS8      f                                ) ) PHPdb2_set_option( +		 PHPdb2_server_info' %		 PHPdb2_rollback& ! PHPdb2_result% ) PHPdb2_procedures"$ 7 PHPdb2_procedure_columns# - PHPdb2_primary_keys" # PHPdb2_prepare! % PHPdb2_pconnect  !		 PHPdb2_pclose %		 PHPdb2_num_rows )		 PHPdb2_num_fields +		 PHPdb2_next_result % PHPdb2_lob_read 1		 PHPdb2_last_insert_id ) PHPdb2_get_option '		 PHPdb2_free_stmt +		 PHPdb2_free_result - PHPdb2_foreign_keys + PHPdb2_field_width ) PHPdb2_field_type + PHPdb2_field_scale  3 PHPdb2_field_precision ' PHPdb2_field_num ) PHPdb2_field_name# 9 PHPdb2_field_display_size '	 PHPdb2_fetch_row -	 PHPdb2_fetch_object )	 PHPdb2_fetch_both +	 PHPdb2_fetch_assoc +	 PHPdb2_fetch_array     K aH(bE'jO3      i K   I ) PHPdbplus_getlockH /		 PHPdbplus_freerlocksG + PHPdbplus_freelockF 3 PHPdbplus_freealllocksE %		 PHPdbplus_flushD % PHPdbplus_firstC # PHPdbplus_findB % PHPdbplus_errnoA )	 PHPdbplus_errcode@ # PHPdbplus_curr? %		 PHPdbplus_close> %	 PHPdbplus_chdir= !	 PHPdbplus_aql< ! PHPdbplus_add!; 5 PHPdbase_replace_record: !		 PHPdbase_pack9 ! PHPdbase_open8 -		 PHPdbase_numrecords7 +		 PHPdbase_numfields(6 C PHPdbase_get_record_with_names5 - PHPdbase_get_record 4 7		 PHPdbase_get_header_info 3 3 PHPdbase_delete_record2 % PHPdbase_create1 #		 PHPdbase_close0 - PHPdbase_add_record/ !	 PHPdb2_tables . 5	 PHPdb2_table_privileges- )	 PHPdb2_stmt_error, /	 PHPdb2_stmt_errormsg+ ) PHPdb2_statistics * 3 PHPdb2_special_columns     a sZ?!kQ5`G-     ~ a                         i +		 PHPdbplus_xlockrelh ' PHPdbplus_updateg +		 PHPdbplus_unselectf -		 PHPdbplus_unlockrele 1		 PHPdbplus_undoprepared #		 PHPdbplus_undoc ) PHPdbplus_tremoveb ! PHPdbplus_tcla !	 PHPdbplus_sql` + PHPdbplus_setindex$_ ; PHPdbplus_setindexbynumber^ )		 PHPdbplus_savepos] #		 PHPdbplus_rzap\ )		 PHPdbplus_runlink[ - PHPdbplus_rsecindexZ ) PHPdbplus_rrenameY '	 PHPdbplus_rqueryX %		 PHPdbplus_ropenW % PHPdbplus_rkeysV / PHPdbplus_restoreposU )		 PHPdbplus_resolveT + PHPdbplus_rcrtlikeS - PHPdbplus_rcrtexactR ) PHPdbplus_rcreateQ ) PHPdbplus_rchpermP # PHPdbplus_prevO #		 PHPdbplus_openN # PHPdbplus_nextM )		 PHPdbplus_lockrelL # PHPdbplus_lastK # PHPdbplus_infoJ - PHPdbplus_getunique   " O }\A(kV;z]A(    ~ O   , O		 PHPdom_document_relaxNG_validate_xml-
 Q		 PHPdom_document_relaxNG_validate_file	 ! PHPdns_get_mx - PHPdns_check_record  PHPdngettext$ ? PHPdisplay_disabled_function  PHPdio_write % PHPdio_truncate ' PHPdio_tcsetattr 		 PHPdio_stat  PHPdio_seek  	 PHPdio_read  PHPdio_open~  PHPdio_fcntl} 		 PHPdio_close|  PHPdgettext{ % PHPdeflate_initz # PHPdeflate_addy 			PHPdefinedx  PHPdefine!w 7 PHPdebug_print_backtracev + PHPdebug_backtraceu #	 PHPdeaggregatet ! PHPdcngettexts  PHPdcgettextr  PHPdbx_sortq  PHPdbx_queryp '		 PHPdbx_fetch_rowo / PHPdbx_escape_stringn 		 PHPdbx_errorm # PHPdbx_connectl # PHPdbx_comparek 		 PHPdbx_closej /		 PHPdbplus_xunlockrel     Z dC!kS9!cK/      s Z                  +  PHPeio_mknod*  PHPeio_mkdir)  PHPeio_lstat(  PHPeio_link' 	 PHPeio_grp& 1		 PHPeio_get_last_error% 5 PHPeio_get_event_stream$ ! PHPeio_futime# '	 PHPeio_ftruncate" 	 PHPeio_fsync! % PHPeio_fstatvfs   PHPeio_fstat '	 PHPeio_fdatasync ! PHPeio_fchown ! PHPeio_fchmod ' PHPeio_fallocate ) PHPeio_event_loop  PHPeio_dup2 ! PHPeio_custom 	 PHPeio_close  PHPeio_chown  PHPeio_chmod 	 PHPeio_busy #	 PHPdotnet_load+ M PHPdom_xpath_register_php_functions" 7 PHPdom_xpath_register_ns 1 PHPdom_xpath_evaluate 3 PHPdomxml_xslt_version ) PHPdomxml_version  7		 PHPdom_document_xinclude. O PHPdom_document_schema_validate_file) E PHPdom_document_schema_validate   " W oY<!kS8}d8     u W           M +	 PHPevent_base_loopL 3	 PHPevent_base_loopexitK 5		 PHPevent_base_loopbreakJ +		 PHPevent_base_freeI 	 PHPevent_addH - PHPerror_clear_last)G E PHPenchant_broker_set_dict_path)F E PHPenchant_broker_get_dict_pathE  PHPeio_writeD  PHPeio_utimeC !	 PHPeio_unlinkB %	 PHPeio_truncateA  PHPeio_sync@ !	 PHPeio_syncfs ? 3PHPeio_sync_file_range> # PHPeio_symlink= # PHPeio_statvfs<  PHPeio_stat; % PHPeio_sendfile:  PHPeio_seek9 	 PHPeio_rmdir8 ! PHPeio_rename7 % PHPeio_realpath6  PHPeio_read5 % PHPeio_readlink4 # PHPeio_readdir3 ' PHPeio_readahead2  PHPeio_poll1  PHPeio_open0 % PHPeio_nthreads/  PHPeio_nreqs. ! PHPeio_nready- % PHPeio_npending,  PHPeio_nop    \ Z6g>bI*      \                          "j 7 PHPfam_monitor_directory#i 9 PHPfam_monitor_collectionh 		 PHPfam_closeg 1 PHPfam_cancel_monitorf %		 PHPexpect_popene ) PHPexpect_expectld 	 PHPexitc + PHPevent_timer_setb  PHPevent_seta 1 PHPevent_priority_set`  PHPevent_new_ !		 PHPevent_free^ 		 PHPevent_del] 1 PHPevent_buffer_write'\ A PHPevent_buffer_watermark_set%[ = PHPevent_buffer_timeout_set&Z ? PHPevent_buffer_set_callbackY / PHPevent_buffer_read&X ? PHPevent_buffer_priority_setW - PHPevent_buffer_newV /		 PHPevent_buffer_free U 3 PHPevent_buffer_fd_set T 3 PHPevent_buffer_enable!S 5 PHPevent_buffer_disable"R 7 PHPevent_buffer_base_setQ ) PHPevent_base_setP /		 PHPevent_base_reinit%O = PHPevent_base_priority_initN ) PHPevent_base_new    O sP'sI%nT4    t O                 " ;		 PHPfann_get_bit_fail_limit /		 PHPfann_get_bit_fail 3		 PHPfann_get_bias_array* G PHPfann_get_activation_steepness) E PHPfann_get_activation_function$  ?		 PHPfann_duplicate_train_data 1		 PHPfann_destroy_train~ %		 PHPfann_destroy} 1 PHPfann_descale_train | 3 PHPfann_descale_output{ 1 PHPfann_descale_inputz / PHPfann_create_train,y K PHPfann_create_train_from_callback!x 5 PHPfann_create_standard'w A PHPfann_create_standard_array'v A PHPfann_create_shortcut_array u 7		 PHPfann_create_from_filet 		 PHPfann_copy$s ?		 PHPfann_clear_scaling_params&r ? PHPfann_cascadetrain_on_file&q ? PHPfann_cascadetrain_on_data p 3 PHPfam_suspend_monitoro 1 PHPfam_resume_monitorn #		 PHPfam_pendingm 	 PHPfam_openl )		 PHPfam_next_eventk - PHPfam_monitor_file    L _$V)n9    i L                             +		 PHPfann_get_errstr )		 PHPfann_get_errno# =		 PHPfann_get_connection_rate$ ?		 PHPfann_get_connection_array- Q		 PHPfann_get_cascade_weight_multiplier4 _		 PHPfann_get_cascade_output_stagnation_epochs2 [		 PHPfann_get_cascade_output_change_fraction* K		 PHPfann_get_cascade_num_candidates0 W		 PHPfann_get_cascade_num_candidate_groups* K		 PHPfann_get_cascade_min_out_epochs+ M		 PHPfann_get_cascade_min_cand_epochs* K		 PHPfann_get_cascade_max_out_epochs+ M		 PHPfann_get_cascade_max_cand_epochs7 e		 PHPfann_get_cascade_candidate_stagnation_epochs+ M		 PHPfann_get_cascade_candidate_limit5
 a		 PHPfann_get_cascade_candidate_change_fraction8	 g		 PHPfann_get_cascade_activation_steepnesses_count2 [		 PHPfann_get_cascade_activation_steepnesses6 c		 PHPfann_get_cascade_activation_functions_count0 W		 PHPfann_get_cascade_activation_functions    W xU5~X2sB    x W                               1 / PHPfann_init_weights'0 E		 PHPfann_get_train_stop_function&/ C		 PHPfann_get_training_algorithm(. G		 PHPfann_get_train_error_function!- 9		 PHPfann_get_total_neurons%, A		 PHPfann_get_total_connections.+ S		 PHPfann_get_sarprop_weight_decay_shift'* E		 PHPfann_get_sarprop_temperature7) e		 PHPfann_get_sarprop_step_error_threshold_factor,( O		 PHPfann_get_sarprop_step_error_shift)' I		 PHPfann_get_rprop_increase_factor#& =		 PHPfann_get_rprop_delta_min#% =		 PHPfann_get_rprop_delta_max)$ I		 PHPfann_get_rprop_decrease_factor # 7		 PHPfann_get_quickprop_mu#" =		 PHPfann_get_quickprop_decay! 3		 PHPfann_get_num_output  3		 PHPfann_get_num_layers 1		 PHPfann_get_num_input  7		 PHPfann_get_network_type %		 PHPfann_get_MSE! 9		 PHPfann_get_learning_rate% A		 PHPfann_get_learning_momentum 5		 PHPfann_get_layer_array    F hBdCsA   z F              1I U PHPfann_set_activation_steepness_output0H S PHPfann_set_activation_steepness_layer1G U PHPfann_set_activation_steepness_hidden*F G PHPfann_set_activation_steepness0E S PHPfann_set_activation_function_output/D Q PHPfann_set_activation_function_layer0C S PHPfann_set_activation_function_hidden)B E PHPfann_set_activation_function"A 7 PHPfann_scale_train_data@ - PHPfann_scale_train)? E PHPfann_scale_output_train_data> / PHPfann_scale_output(= C PHPfann_scale_input_train_data< - PHPfann_scale_input; + PHPfann_save_train:  PHPfann_save9  PHPfann_run8 )		 PHPfann_reset_MSE$7 ?		 PHPfann_read_train_from_file#6 9	PHPfann_randomize_weights%5 A		 PHPfann_num_output_train_data$4 ?		 PHPfann_num_input_train_data"3 7 PHPfann_merge_train_data!2 9		 PHPfann_length_train_data    > LvG|C    f >              %] = PHPfann_set_quickprop_decay+\ I PHPfann_set_output_scaling_params#[ 9 PHPfann_set_learning_rate'Z A PHPfann_set_learning_momentum*Y G PHPfann_set_input_scaling_params/X Q PHPfann_set_cascade_weight_multiplier6W _ PHPfann_set_cascade_output_stagnation_epochs4V [ PHPfann_set_cascade_output_change_fraction2U W PHPfann_set_cascade_num_candidate_groups,T K PHPfann_set_cascade_min_out_epochs-S M PHPfann_set_cascade_min_cand_epochs,R K PHPfann_set_cascade_max_out_epochs-Q M PHPfann_set_cascade_max_cand_epochs9P e PHPfann_set_cascade_candidate_stagnation_epochs-O M PHPfann_set_cascade_candidate_limit7N a PHPfann_set_cascade_candidate_change_fraction4M [ PHPfann_set_cascade_activation_steepnesses2L W PHPfann_set_cascade_activation_functionsK / PHPfann_set_callback$J ; PHPfann_set_bit_fail_limit    K ]4m:jK&      m K                   u 1 PHPfann_train_on_filet 1 PHPfann_train_on_datas - PHPfann_train_epochr ! PHPfann_trainq ) PHPfann_test_datap  PHPfann_test#o 9 PHPfann_subset_train_data"n ;		 PHPfann_shuffle_train_datam + PHPfann_set_weight"l 7 PHPfann_set_weight_array)k E PHPfann_set_train_stop_function(j C PHPfann_set_training_algorithm*i G PHPfann_set_train_error_function$h ; PHPfann_set_scaling_params0g S PHPfann_set_sarprop_weight_decay_shift)f E PHPfann_set_sarprop_temperature9e e PHPfann_set_sarprop_step_error_threshold_factor.d O PHPfann_set_sarprop_step_error_shift+c I PHPfann_set_rprop_increase_factor&b ? PHPfann_set_rprop_delta_zero%a = PHPfann_set_rprop_delta_min%` = PHPfann_set_rprop_delta_max+_ I PHPfann_set_rprop_decrease_factor"^ 7 PHPfann_set_quickprop_mu    M ~]?&lO0gG&     m M        /	 PHPfbsql_field_table -	 PHPfbsql_field_seek -	 PHPfbsql_field_name +	 PHPfbsql_field_len /	 PHPfbsql_field_flags +		 PHPfbsql_fetch_row 1		 PHPfbsql_fetch_object 3		 PHPfbsql_fetch_lengths /	 PHPfbsql_fetch_field /		 PHPfbsql_fetch_assoc
 /	 PHPfbsql_fetch_array	 #	 PHPfbsql_error #	 PHPfbsql_errno '	 PHPfbsql_drop_db +	 PHPfbsql_db_status ) PHPfbsql_db_query + PHPfbsql_data_seek )	 PHPfbsql_database# ;	 PHPfbsql_database_password +	 PHPfbsql_create_db  /	 PHPfbsql_create_clob /	 PHPfbsql_create_blob~ ' PHPfbsql_connect} %	 PHPfbsql_commit| #	 PHPfbsql_close{ +	 PHPfbsql_clob_sizez / PHPfbsql_change_usery +	 PHPfbsql_blob_sizex -	 PHPfbsql_autocommitw 3	 PHPfbsql_affected_rows!v 9 PHPfastcgi_finish_request    Q bF%rX:_=      q Q           3 1PHPfilepro_fieldcount2 		PHPfilepro1 )	 PHPfbsql_warnings0 )	 PHPfbsql_username/ - PHPfbsql_table_name. '	 PHPfbsql_stop_db- )	 PHPfbsql_start_db", 7 PHPfbsql_set_transaction+ 1 PHPfbsql_set_password* 1 PHPfbsql_set_lob_mode#) 9 PHPfbsql_set_characterset( + PHPfbsql_select_db' 1		 PHPfbsql_rows_fetched& )	 PHPfbsql_rollback% %	 PHPfbsql_result$ +	 PHPfbsql_read_clob# +	 PHPfbsql_read_blob" #	 PHPfbsql_query! ) PHPfbsql_pconnect  )	 PHPfbsql_password )		 PHPfbsql_num_rows -		 PHPfbsql_num_fields /		 PHPfbsql_next_result /	 PHPfbsql_list_tables / PHPfbsql_list_fields )	 PHPfbsql_list_dbs +	 PHPfbsql_insert_id )	 PHPfbsql_hostname# =	 PHPfbsql_get_autostart_info /		 PHPfbsql_free_result -	 PHPfbsql_field_type    ^ dO5iHhI&     ^                            Q 5		 PHPgeoip_record_by_nameP /		 PHPgeoip_org_by_name%O A		 PHPgeoip_netspeedcell_by_nameN /		 PHPgeoip_isp_by_nameM -		 PHPgeoip_id_by_nameL 5		 PHPgeoip_domain_by_name K 7 PHPgeoip_db_get_all_infoJ /		 PHPgeoip_db_filenameI )		 PHPgeoip_db_availH 3	 PHPgeoip_database_info%G A		 PHPgeoip_country_name_by_name%F A		 PHPgeoip_country_code_by_name&E C		 PHPgeoip_country_code3_by_name'D E		 PHPgeoip_continent_code_by_nameC 3		 PHPgeoip_asnum_by_nameB 1		 PHPgearman_job_statusA 1 PHPgearman_job_handle@ +		 PHPfunction_exists? ' PHPfunc_num_args> ' PHPfunc_get_args= %		 PHPfunc_get_arg< + PHPfribidi_log2vis: ! PHPfrenchtojd9  PHPfputs8 - PHPfilepro_rowcount7 - PHPfilepro_retrieve6 1		 PHPfilepro_fieldwidth5 /		 PHPfilepro_fieldtype4 /		 PHPfilepro_fieldname    [ fC%
_@!^>    [                               *l K		 PHPgupnp_control_point_browse_stop+k M		 PHPgupnp_control_point_browse_start&j ? PHPgupnp_context_unhost_path&i ? PHPgupnp_context_timeout_add3h Y PHPgupnp_context_set_subscription_timeoutg / PHPgupnp_context_new$f ; PHPgupnp_context_host_path1e Y		 PHPgupnp_context_get_subscription_timeout!d 9		 PHPgupnp_context_get_port$c ?		 PHPgupnp_context_get_host_ipa ' PHPgregoriantojd` +	PHPgrapheme_substr_ + PHPgrapheme_strstr^ - PHPgrapheme_stristr] - PHPgrapheme_extract\ +		 PHPgopher_parsedir[ ! PHPgmp_exportZ 		 PHPgettextY /		 PHPget_resource_typeX '		 PHPget_resourcesW -	PHPget_defined_vars V 7	PHPget_defined_functionsU ' PHPgetallheaders1T W	 PHPgeoip_time_zone_by_country_and_region&S ? PHPgeoip_region_name_by_codeR 5		 PHPgeoip_region_by_name    B yV)sN*W3    p B              + I PHPgupnp_service_proxy_action_set+ I PHPgupnp_service_proxy_action_get!  5 PHPgupnp_service_notify; i PHPgupnp_service_introspection_get_state_variable0~ U	 PHPgupnp_service_info_get_introspection!} 9		 PHPgupnp_service_info_get&| C		 PHPgupnp_service_freeze_notify%{ = PHPgupnp_service_action_set.z O PHPgupnp_service_action_return_error&y C		 PHPgupnp_service_action_return%x = PHPgupnp_service_action_get!w 9		 PHPgupnp_root_device_stop"v ;		 PHPgupnp_root_device_start,u K PHPgupnp_root_device_set_available"t 7 PHPgupnp_root_device_new2s [		 PHPgupnp_root_device_get_relative_location*r K		 PHPgupnp_root_device_get_available*q G PHPgupnp_device_info_get_service p 7		 PHPgupnp_device_info_get-o M PHPgupnp_device_action_callback_set$n ; PHPgupnp_control_point_new-m M PHPgupnp_control_point_callback_set    Y rAjD%pU+     { Y                            3 PHPhttp_match_modified +	 PHPhttp_match_etag %		 PHPhttp_inflate 	 PHPhttp_head 	 PHPhttp_get# = PHPhttp_get_request_headers  7 PHPhttp_get_request_body' E PHPhttp_get_request_body_stream %	 PHPhttp_deflate 	 PHPhttp_date 3		 PHPhttp_chunked_decode# =	 PHPhttp_cache_last_modified +	 PHPhttp_cache_etag ) PHPhttp_build_url )	 PHPhttp_build_str /		 PHPhttp_build_cookie# =		 PHPheader_register_callback # PHPhash_equals + PHP__halt_compiler
 		PHPgzdecode$	 ?		 PHPgupnp_service_thaw_notify/ Q PHPgupnp_service_proxy_set_subscribed, K PHPgupnp_service_proxy_send_action. O PHPgupnp_service_proxy_remove_notify- Q		 PHPgupnp_service_proxy_get_subscribed- M PHPgupnp_service_proxy_callback_set+ I PHPgupnp_service_proxy_add_notify    > bB"aC#^8    v Z >8 )		 PHPhttp_send_file7 )		 PHPhttp_send_data!6 9	 PHPhttp_send_content_type)5 G	 PHPhttp_send_content_disposition4 % PHPhttp_request)3 I		 PHPhttp_request_method_unregister'2 E		 PHPhttp_request_method_register#1 =		 PHPhttp_request_method_name%0 A		 PHPhttp_request_method_exists%/ = PHPhttp_request_body_encode. ' PHPhttp_redirect- + PHPhttp_put_stream, ' PHPhttp_put_file+ ' PHPhttp_put_data* - PHPhttp_post_fields) ) PHPhttp_post_data(( G	 PHPhttp_persistent_handles_ident(' G PHPhttp_persistent_handles_count(& G	 PHPhttp_persistent_handles_clean% /	 PHPhttp_parse_params$ 1		 PHPhttp_parse_message# 1		 PHPhttp_parse_headers" /	 PHPhttp_parse_cookie#! ;	 PHPhttp_negotiate_language'  C	 PHPhttp_negotiate_content_type" 9	 PHPhttp_negotiate_charset& ? PHPhttp_match_request_header     I iL-pR1nS=$     k I X 1 PHPhw_GetChildDocCollW 1 PHPhw_GetChildCollObjV + PHPhw_GetChildCollU ' PHPhw_GetAndLockT - PHPhw_GetAnchorsObjS ' PHPhw_GetAnchorsR -		 PHPhw_Free_DocumentQ #		 PHPhw_ErrorMsgP 		 PHPhw_ErrorO # PHPhw_EditTextN  PHPhw_dummyM -		 PHPhw_Document_Size#L 9 PHPhw_Document_SetContentK 3		 PHPhw_Document_ContentJ 3	 PHPhw_Document_BodyTag!I 9		 PHPhw_Document_AttributesH / PHPhw_DocByAnchorObjG ) PHPhw_DocByAnchorF + PHPhw_DeleteobjectE  PHPhw_cpD 1		 PHPhw_connection_infoC ! PHPhw_ConnectB 		 PHPhw_CloseA ) PHPhw_ChildrenObj@ # PHPhw_Children? + PHPhw_changeobject> +		 PHPhw_Array2Objrec= '	 PHPhttp_throttle< %	 PHPhttp_support; -		 PHPhttp_send_stream: -		 PHPhttp_send_status"9 ;	 PHPhttp_send_last_modified    X gA%iO3oP8     m X                  w  PHPhw_Rootv + PHPhw_PipeDocumentu # PHPhw_pConnectt 1		 PHPhw_Output_Documents +	 PHPhw_objrec2arrayr + PHPhw_New_Documentq  PHPhw_mvp + PHPhw_Modifyobjecto  PHPhw_mapidn + PHPhw_InsertObjectm / PHPhw_InsertDocumentl - PHPhw_insertanchorsk  PHPhw_InsDocj ! PHPhw_InsColli 		 PHPhw_Infoh - PHPhw_InCollectionsg # PHPhw_Identifyf )		 PHPhw_getusernamee ! PHPhw_GetTextd 1 PHPhw_GetSrcByDestObjc % PHPhw_GetRemote!b 5 PHPhw_getremotechildrena ' PHPhw_getrellink` - PHPhw_GetParentsObj_ ' PHPhw_GetParents^ % PHPhw_GetObject#] 9 PHPhw_GetObjectByQueryObj'\ A PHPhw_GetObjectByQueryCollObj$[ ; PHPhw_GetObjectByQueryColl Z 3 PHPhw_GetObjectByQuery"Y 7 PHPhw_GetChildDocCollObj     U aE'mN/iN4     s U              -		 PHPibase_free_query# =		 PHPibase_free_event_handler - PHPibase_field_info +	 PHPibase_fetch_row 1	 PHPibase_fetch_object /	 PHPibase_fetch_assoc '	 PHPibase_execute % PHPibase_errmsg ' PHPibase_errcode '	 PHPibase_drop_db / PHPibase_delete_user ' PHPibase_db_info ' PHPibase_connect
 -	 PHPibase_commit_ret	 %	 PHPibase_commit #	 PHPibase_close + PHPibase_blob_open + PHPibase_blob_info / PHPibase_blob_import ) PHPibase_blob_get + PHPibase_blob_echo /	 PHPibase_blob_create -		 PHPibase_blob_close  /		 PHPibase_blob_cancel ) PHPibase_blob_add~ % PHPibase_backup} 3	 PHPibase_affected_rows| ) PHPibase_add_user{ 		 PHPhw_Whoz  PHPhw_Unlocky 		 PHPhw_statx ) PHPhw_setlinkroot    ^ cE'z^>z[6     { ^                          5 )	 PHPid3_remove_tag4 +		 PHPid3_get_version3 #	 PHPid3_get_tag2 1		 PHPid3_get_genre_name1 1 PHPid3_get_genre_list0 -		 PHPid3_get_genre_id#/ =		 PHPid3_get_frame_short_name". ;		 PHPid3_get_frame_long_name- -	 PHPibase_wait_event, # PHPibase_trans+ '	 PHPibase_timefmt$* ; PHPibase_set_event_handler) 5		 PHPibase_service_detach!( 5 PHPibase_service_attach' / PHPibase_server_info& 1	 PHPibase_rollback_ret% )	 PHPibase_rollback$ ' PHPibase_restore# # PHPibase_query" ' PHPibase_prepare! ) PHPibase_pconnect  - PHPibase_param_info )		 PHPibase_num_rows -		 PHPibase_num_params -		 PHPibase_num_fields / PHPibase_name_result / PHPibase_modify_user / PHPibase_maintain_db %	 PHPibase_gen_id /		 PHPibase_free_result   " Q wV7 jN-pO3      p Q     W + PHPifx_update_charV + PHPifx_update_blobU /		 PHPifx_textasvarcharT  PHPifx_queryS # PHPifx_prepareR % PHPifx_pconnectQ %		 PHPifx_num_rowsP )		 PHPifx_num_fieldsO )		 PHPifx_nullformatN 1	 PHPifx_htmltbl_resultM %		 PHPifx_getsqlcaL %		 PHPifx_get_charK %		 PHPifx_get_blobJ +		 PHPifx_free_resultI '		 PHPifx_free_charH '		 PHPifx_free_blobG )		 PHPifx_fieldtypesF 3		 PHPifx_fieldpropertiesE '	 PHPifx_fetch_rowD 	 PHPifx_errorC %	 PHPifx_errormsgB 		 PHPifx_doA +		 PHPifx_create_char@ + PHPifx_create_blob? '		 PHPifx_copy_blob> # PHPifx_connect= 	 PHPifx_close< /		 PHPifx_byteasvarchar; 3		 PHPifx_blobinfile_mode: /		 PHPifx_affected_rows9 #	 PHPidn_to_utf88 %	 PHPidn_to_ascii7 %		 PHPidn_strerror6 # PHPid3_set_tag    Q hI,]8gI*      j Q             u #		 PHPimap_binaryt #		 PHPimap_base64s # PHPimap_appendr # PHPimap_alertsq 		 PHPimap_8bitp / PHPimageaffineconcato -		 PHPiis_stop_servicen +		 PHPiis_stop_serverm /		 PHPiis_start_servicel -		 PHPiis_start_server"k 7 PHPiis_set_server_rightsj 1 PHPiis_set_script_map!i 5 PHPiis_set_dir_security!h 5 PHPiis_set_app_settingsg /		 PHPiis_remove_server f 7		 PHPiis_get_service_state"e 7 PHPiis_get_server_rights!d 9		 PHPiis_get_server_by_path$c ?		 PHPiis_get_server_by_commentb 1 PHPiis_get_script_map!a 5 PHPiis_get_dir_security` ) PHPiis_add_server_ - PHPifxus_write_slob^ +		 PHPifxus_tell_slob] + PHPifxus_seek_slob\ + PHPifxus_read_slob[ + PHPifxus_open_slobZ +		 PHPifxus_free_slobY /		 PHPifxus_create_slobX -		 PHPifxus_close_slob     O tR7c@)lR5      m O        ) PHPimap_mail_move ) PHPimap_mail_copy / PHPimap_mail_compose 3		 PHPimap_mailboxmsginfo  PHPimap_mail  PHPimap_lsub ' PHPimap_listscan  PHPimap_list + PHPimap_last_error %		 PHPimap_headers + PHPimap_headerinfo
 1 PHPimap_getsubscribed	 1 PHPimap_get_quotaroot ) PHPimap_get_quota / PHPimap_getmailboxes # PHPimap_getacl  PHPimap_gc  3 PHPimap_fetchstructure  3 PHPimap_fetch_overview ) PHPimap_fetchmime - PHPimap_fetchheader  ) PHPimap_fetchbody %		 PHPimap_expunge~ # PHPimap_errors} 1 PHPimap_deletemailbox| # PHPimap_delete{ 1 PHPimap_createmailboxz !	 PHPimap_close y 3 PHPimap_clearflag_fullx !		 PHPimap_checkw + PHPimap_bodystructv  PHPimap_body     P jQ:!jM2lQ9      k P        5 # PHPinflate_add4 - PHPinclued_get_data3 1		 PHPimap_utf8_to_mutf72 		 PHPimap_utf81 -		 PHPimap_utf7_encode0 -		 PHPimap_utf7_decode/ - PHPimap_unsubscribe. ' PHPimap_undelete-  PHPimap_uid, %	 PHPimap_timeout+ #	 PHPimap_thread* ) PHPimap_subscribe) # PHPimap_status(  PHPimap_sort' ) PHPimap_set_quota& / PHPimap_setflag_full% # PHPimap_setacl$ # PHPimap_search# ' PHPimap_savebody&" ? PHPimap_rfc822_write_address%! ?	 PHPimap_rfc822_parse_headers&  ? PHPimap_rfc822_parse_adrlist # PHPimap_reopen 1 PHPimap_renamemailbox #		 PHPimap_qprint 		 PHPimap_ping  PHPimap_open +		 PHPimap_num_recent %		 PHPimap_num_msg 1		 PHPimap_mutf7_to_utf8 ! PHPimap_msgno" ;		 PHPimap_mime_header_decode    T lQ4cC!tN,     r T                S ) PHPingres_prepareR + PHPingres_pconnectQ +		 PHPingres_num_rowsP /		 PHPingres_num_fieldsO /	 PHPingres_next_errorN 1		 PHPingres_free_resultM / PHPingres_field_typeL 1 PHPingres_field_scale#K 9 PHPingres_field_precision"J 7 PHPingres_field_nullableI / PHPingres_field_name H 3 PHPingres_field_lengthG -		 PHPingres_fetch_row#F =		 PHPingres_fetch_proc_returnE 3	 PHPingres_fetch_objectD 1		 PHPingres_fetch_assocC 1	 PHPingres_fetch_arrayB )	 PHPingres_execute!A 5 PHPingres_escape_string@ 1	 PHPingres_errsqlstate? %	 PHPingres_error> %	 PHPingres_errno= '		 PHPingres_cursor< ) PHPingres_connect; '		 PHPingres_commit: %		 PHPingres_close9 )		 PHPingres_charset"8 ;		 PHPingres_autocommit_state7 /		 PHPingres_autocommit6 %		 PHPinflate_init    k X7vX<wK      k                                              n 3 PHPintlcal_get_maximumm 1 PHPintlcal_get_locale&l ? PHPintlcal_get_least_maximumk # PHPintlcal_get)j E PHPintlcal_get_greatest_minimum(i G		 PHPintlcal_get_first_day_of_week)h E PHPintlcal_get_day_of_week_type(g G PHPintlcal_get_available_locales'f A PHPintlcal_get_actual_minimum'e A PHPintlcal_get_actual_maximum%d = PHPintlcal_field_differencec ) PHPintlcal_equalsb '	 PHPintlcal_cleara ) PHPintlcal_before` ' PHPintlcal_after_ # PHPintlcal_add^ 	PHPintdiv] - PHPinotify_rm_watch\ %		 PHPinotify_read[ /		 PHPinotify_queue_lenZ % PHPinotify_initY / PHPinotify_add_watch$X ; PHPingres_unbuffered_query#W 9 PHPingres_set_environmentV +		 PHPingres_rollbackU 1 PHPingres_result_seekT % PHPingres_query    D Y'	oO1T      y \ D         !		 PHPis_tainted +		 PHPintl_is_failure! 9 PHPintl_get_error_message 3 PHPintl_get_error_code +		 PHPintl_error_name" 7 PHPintlcal_set_time_zone - PHPintlcal_set_time1 U PHPintlcal_set_skipped_wall_time_option2  W PHPintlcal_set_repeated_wall_time_option  3 PHPintlcal_set_lenient*~ G PHPintlcal_set_first_day_of_week} # PHPintlcal_set| % PHPintlcal_roll{ 1	 PHPintlcal_is_weekendz ) PHPintlcal_is_sety 1		 PHPintlcal_is_lenient%x = PHPintlcal_is_equivalent_to#w =		 PHPintlcal_in_daylight_time+v I PHPintlcal_get_weekend_transitionu -		 PHPintlcal_get_typet -		 PHPintlcal_get_time/s U		 PHPintlcal_get_skipped_wall_time_option0r W		 PHPintlcal_get_repeated_wall_time_optionq + PHPintlcal_get_now p 3 PHPintlcal_get_minimum1o Y		 PHPintlcal_get_minimal_days_in_first_week    D ~fK3nQ*wW-    m D&- C		 PHPlocale_get_primary_language, 3		 PHPlocale_get_keywords&+ A	 PHPlocale_get_display_variant%* ?	 PHPlocale_get_display_script%) ?	 PHPlocale_get_display_region#( ;	 PHPlocale_get_display_name'' C	 PHPlocale_get_display_language& 1 PHPlocale_get_default"% ;		 PHPlocale_get_all_variants"$ 7 PHPlocale_filter_matches# )		 PHPlocale_compose"" ;		 PHPlocale_accept_from_http%! A PHPlitespeed_response_headers$  ? PHPlitespeed_request_headers ' PHPleak_variable 		 PHPleak / PHPldap_modify_batch #	 PHPldap_escape ! PHPJulianToJD % PHPjudy_version 		 PHPjudy_type 		PHPjoin ! PHPjewishtojd !		 PHPjdtojulian '		 PHPjdtogregorian !		 PHPjdtofrench # PHPjdmonthname # PHPjddayofweek"
 ; PHPjava_last_exception_get$	 ? PHPjava_last_exception_clear    P kQ5g2wQ#     v P                    #G =		 PHPmaxdb_character_set_nameF / PHPmaxdb_change_userE - PHPmaxdb_autocommitD 3		 PHPmaxdb_affected_rows!C 9		 PHPmailparse_uudecode_all$B ; PHPmailparse_stream_encode+A M		 PHPmailparse_rfc822_parse_addresses#@ =		 PHPmailparse_msg_parse_file ? 3 PHPmailparse_msg_parse&> C		 PHPmailparse_msg_get_structure#= 9 PHPmailparse_msg_get_part&< C		 PHPmailparse_msg_get_part_data; 1		 PHPmailparse_msg_free2: W PHPmailparse_msg_extract_whole_part_file'9 A PHPmailparse_msg_extract_part,8 K PHPmailparse_msg_extract_part_file7 5 PHPmailparse_msg_create16 Y		 PHPmailparse_determine_best_xfer_encoding5 / PHPlzf_optimized_for4 )		 PHPlzf_decompress3 %		 PHPlzf_compress2 1		 PHPlocale_set_default1 %		 PHPlocale_parse0 ' PHPlocale_lookup/ /		 PHPlocale_get_script. /		 PHPlocale_get_region    S oP7
rN5vU5     y S                 #d = PHPmaxdb_get_client_version c 7 PHPmaxdb_get_client_infob /		 PHPmaxdb_free_resulta -		 PHPmaxdb_field_tell` - PHPmaxdb_field_seek_ /		 PHPmaxdb_field_count^ +		 PHPmaxdb_fetch_row] 1		 PHPmaxdb_fetch_object\ 3		 PHPmaxdb_fetch_lengths[ 1		 PHPmaxdb_fetch_fieldsZ /		 PHPmaxdb_fetch_field%Y = PHPmaxdb_fetch_field_directX /		 PHPmaxdb_fetch_assocW /	 PHPmaxdb_fetch_arrayV #		 PHPmaxdb_errorU #		 PHPmaxdb_errno!T 9		 PHPmaxdb_enable_rpl_parse)S I		 PHPmaxdb_enable_reads_from_master!R 9	 PHPmaxdb_embedded_connect Q 7		 PHPmaxdb_dump_debug_info"P ;		 PHPmaxdb_disable_rpl_parse*O K		 PHPmaxdb_disable_reads_from_masterN #		 PHPmaxdb_debugM + PHPmaxdb_data_seekL ' PHPmaxdb_connectK 3 PHPmaxdb_connect_errorJ 3 PHPmaxdb_connect_errnoI %		 PHPmaxdb_commitH #		 PHPmaxdb_close    H t\D'mQ4~b=       e H   ' PHPmaxdb_ssl_set )		 PHPmaxdb_sqlstate / PHPmaxdb_server_init  - PHPmaxdb_server_end - PHPmaxdb_send_query~ + PHPmaxdb_select_db} 5		 PHPmaxdb_rpl_query_type| +		 PHPmaxdb_rpl_probe"{ ;		 PHPmaxdb_rpl_parse_enabledz )		 PHPmaxdb_rollbacky %		 PHPmaxdb_reportx - PHPmaxdb_real_query%w = PHPmaxdb_real_escape_stringv 1	 PHPmaxdb_real_connectu # PHPmaxdb_queryt !		 PHPmaxdb_pings ' PHPmaxdb_optionsr )		 PHPmaxdb_num_rowsq -		 PHPmaxdb_num_fieldsp /		 PHPmaxdb_next_resulto / PHPmaxdb_multi_queryn 1		 PHPmaxdb_more_resultsm 1 PHPmaxdb_master_queryl ! PHPmaxdb_killk +		 PHPmaxdb_insert_idj ! PHPmaxdb_initi !		 PHPmaxdb_info#h =		 PHPmaxdb_get_server_version g 7		 PHPmaxdb_get_server_infof 5		 PHPmaxdb_get_proto_infoe 3		 PHPmaxdb_get_host_info    T wY/mP/zY4     q T                     ' PHPm_checkstatus% = PHPmb_ereg_replace_callback 3		 PHPmaxdb_warning_count -		 PHPmaxdb_use_result / PHPmaxdb_thread_safe +		 PHPmaxdb_thread_id 1		 PHPmaxdb_store_result" ;		 PHPmaxdb_stmt_store_result 3		 PHPmaxdb_stmt_sqlstate& ? PHPmaxdb_stmt_send_long_data% A		 PHPmaxdb_stmt_result_metadata -		 PHPmaxdb_stmt_reset 1 PHPmaxdb_stmt_prepare! 9		 PHPmaxdb_stmt_param_count 3		 PHPmaxdb_stmt_num_rows +		 PHPmaxdb_stmt_init! 9		 PHPmaxdb_stmt_free_result -		 PHPmaxdb_stmt_fetch 1		 PHPmaxdb_stmt_execute -		 PHPmaxdb_stmt_error -		 PHPmaxdb_stmt_errno!
 5 PHPmaxdb_stmt_data_seek'	 A PHPmaxdb_stmt_close_long_data -		 PHPmaxdb_stmt_close# 9 PHPmaxdb_stmt_bind_result" 7 PHPmaxdb_stmt_bind_param# =		 PHPmaxdb_stmt_affected_rows !		 PHPmaxdb_stat     \ jM/|\G/bE'	     x \                    ? % PHPmqseries_inq

> % PHPmqseries_get		= ' PHPmqseries_disc< ) PHPmqseries_connx; ' PHPmqseries_conn: ' PHPmqseries_cmit9 ) PHPmqseries_close8 ) PHPmqseries_begin7 ' PHPmqseries_back"6 7 PHPm_parsecommadelimited5  PHPm_numrows4 % PHPm_numcolumns3 		 PHPm_monitor2 - PHPm_maxconntimeout1 1 PHPm_iscommadelimited0 %		 PHPm_initengine/ ! PHPm_initconn.  PHPmhash- - PHPmhash_keygen_s2k, 3		 PHPmhash_get_hash_name+ 5		 PHPmhash_get_block_size* # PHPmhash_count) # PHPm_getheader ( 3 PHPm_getcommadelimited'  PHPm_getcell& ) PHPm_getcellbynum% + PHPm_destroyengine$ '		 PHPm_destroyconn# ' PHPm_deletetrans" /		 PHPm_connectionerror! 		 PHPm_connect%  = PHPm_completeauthorizations     L oQ2{^>tV4      c L    _  PHPm_setip^ ' PHPm_setdropfile] ' PHPm_setblocking\ + PHPmsession_unlock[ '	 PHPmsession_uniqZ -	 PHPmsession_timeoutY / PHPmsession_set_dataX % PHPmsession_setW 1 PHPmsession_set_arrayV -		PHPmsession_randstrU + PHPmsession_pluginT '		 PHPmsession_lockS -		 PHPmsession_listvarR ' PHPmsession_listQ % PHPmsession_incP % PHPmsession_getO /		 PHPmsession_get_dataN 1		 PHPmsession_get_arrayM ' PHPmsession_findL 3 PHPmsession_disconnectK -		 PHPmsession_destroyJ +	 PHPmsession_createI ) PHPmsession_countH - PHPmsession_connectG ) PHPm_returnstatusF + PHPm_responseparamE ) PHPm_responsekeysD /		 PHPmqseries_strerrorC % PHPmqseries_set

B % PHPmqseries_putA ' PHPmqseries_put1@ ' PHPmqseries_open    R jM*cC+gH)     q R            ~ + PHPmsql_field_type} - PHPmsql_field_table| + PHPmsql_field_seek{ + PHPmsql_field_namez ) PHPmsql_field_leny - PHPmsql_field_flagsx )		 PHPmsql_fetch_roww /		 PHPmsql_fetch_objectv -	 PHPmsql_fetch_fieldu -	 PHPmsql_fetch_arrayt ! PHPmsql_errors %	 PHPmsql_drop_dbr ' PHPmsql_db_queryq ) PHPmsql_data_seekp )	 PHPmsql_create_dbo %	 PHPmsql_connectn !	 PHPmsql_closem 1		 PHPmsql_affected_rowsl 1 PHPmsgfmt_set_pattern!k 5 PHPmsgfmt_parse_messagej % PHPmsgfmt_parsei 1		 PHPmsgfmt_get_patternh /		 PHPmsgfmt_get_locale#g =		 PHPmsgfmt_get_error_message f 7		 PHPmsgfmt_get_error_codee ' PHPmsgfmt_format"d 7 PHPmsgfmt_format_messagec % PHPm_settimeoutb  PHPm_setssla ) PHPm_setssl_files` + PHPm_setssl_cafile    V kP5kS8#{S1
     p V                 %		 PHPmysqli_debug - PHPmysqli_data_seek 5 PHPmysqli_connect_error 5 PHPmysqli_connect_errno '	 PHPmysqli_commit %		 PHPmysqli_close$ ?		 PHPmysqli_character_set_name 1 PHPmysqli_change_user% = PHPmysqli_begin_transaction / PHPmysqli_autocommit 5		 PHPmysqli_affected_rows + PHPm_verifysslcert 1 PHPm_verifyconnection! 5 PHPm_validateidentifier 		 PHPm_uwait # PHPm_transsend !		 PHPm_transnew ' PHPm_transkeyval )		 PHPm_transinqueue
 1		 PHPm_transactionssent	 1		 PHPm_sslcert_gen_hash )	 PHPmsql_select_db # PHPmsql_result !	 PHPmsql_query '	 PHPmsql_pconnect '		 PHPmsql_num_rows +		 PHPmsql_num_fields -	 PHPmsql_list_tables - PHPmsql_list_fields  '	 PHPmsql_list_dbs -		 PHPmsql_free_result    ^ `4c:wV7     ^                                  &7 C		 PHPmysqli_get_connection_stats$6 ?		 PHPmysqli_get_client_version"5 ; PHPmysqli_get_client_stats!4 9		 PHPmysqli_get_client_info3 1		 PHPmysqli_get_charset2 1		 PHPmysqli_free_result1 /		 PHPmysqli_field_tell0 / PHPmysqli_field_seek/ 1		 PHPmysqli_field_count. -		 PHPmysqli_fetch_row- 3 PHPmysqli_fetch_object, 5		 PHPmysqli_fetch_lengths+ 3		 PHPmysqli_fetch_fields* 1		 PHPmysqli_fetch_field&) ? PHPmysqli_fetch_field_direct( 1		 PHPmysqli_fetch_assoc' 1 PHPmysqli_fetch_array& - PHPmysqli_fetch_all% /		 PHPmysqli_error_list"$ ;		 PHPmysqli_enable_rpl_parse*# K		 PHPmysqli_enable_reads_from_master)" E PHPmysqli_embedded_server_start%! A PHPmysqli_embedded_server_end!  9		 PHPmysqli_dump_debug_info# =		 PHPmysqli_disable_rpl_parse+ M		 PHPmysqli_disable_reads_from_master    K sL+gH+sR4     k K         T - PHPmysqli_savepoint"S 7 PHPmysqli_rpl_query_typeR -		 PHPmysqli_rpl_probe#Q =		 PHPmysqli_rpl_parse_enabledP +		 PHPmysqli_rollbackO '		 PHPmysqli_report%N = PHPmysqli_release_savepointM ) PHPmysqli_refreshL / PHPmysqli_real_query&K ? PHPmysqli_real_escape_stringJ 3 PHPmysqli_real_connectI %	 PHPmysqli_queryH # PHPmysqli_pollG #		 PHPmysqli_pingF ) PHPmysqli_optionsE +		 PHPmysqli_num_rowsD /		 PHPmysqli_num_fieldsC 1		 PHPmysqli_next_resultB 1 PHPmysqli_multi_queryA 3		 PHPmysqli_more_results @ 3 PHPmysqli_master_query ? 7 PHPmysqli_link_construct> # PHPmysqli_kill= 3		 PHPmysqli_get_warnings$< ?		 PHPmysqli_get_server_version!; 9		 PHPmysqli_get_server_info : 7		 PHPmysqli_get_proto_info!9 9 PHPmysqli_get_links_stats8 5		 PHPmysqli_get_host_info    \ vIvR,}^9     \                                "n ;		 PHPmysqli_stmt_next_result#m =		 PHPmysqli_stmt_more_results l 7		 PHPmysqli_stmt_insert_id#k =		 PHPmysqli_stmt_get_warnings!j 9		 PHPmysqli_stmt_get_result"i ;		 PHPmysqli_stmt_free_result"h ;		 PHPmysqli_stmt_field_countg /		 PHPmysqli_stmt_fetchf 3		 PHPmysqli_stmt_execute!e 9		 PHPmysqli_stmt_error_list"d 7 PHPmysqli_stmt_data_seekc /		 PHPmysqli_stmt_close#b ;	 PHPmysqli_stmt_bind_result#a 9 PHPmysqli_stmt_bind_param!` 5 PHPmysqli_stmt_attr_set!_ 5 PHPmysqli_stmt_attr_get$^ ?		 PHPmysqli_stmt_affected_rows] #		 PHPmysqli_stat\ ) PHPmysqli_ssl_set[ 1 PHPmysqli_slave_query,Z K PHPmysqli_set_local_infile_handler*Y K		 PHPmysqli_set_local_infile_defaultX 1 PHPmysqli_set_charsetW / PHPmysqli_send_queryV - PHPmysqli_select_db$U ? PHPmysqli_savepoint_libmysql    X wM'	{V'[3    ~ X                              # 9 PHPmysqlnd_ms_xa_rollback -	 PHPmysqlnd_ms_xa_gc! 5 PHPmysqlnd_ms_xa_commit  3 PHPmysqlnd_ms_xa_begin* K		 PHPmysqlnd_ms_set_user_pick_server 1 PHPmysqlnd_ms_set_qos% A		 PHPmysqlnd_ms_query_is_select"  7 PHPmysqlnd_ms_match_wild 5 PHPmysqlnd_ms_get_stats.~ S		 PHPmysqlnd_ms_get_last_used_connection#} =		 PHPmysqlnd_ms_get_last_gtid+| I PHPmysqlnd_ms_fabric_select_shard,{ K PHPmysqlnd_ms_fabric_select_global"z ;		 PHPmysqlnd_ms_dump_servers y 5	 PHPmysqlnd_memcache_set&x C		 PHPmysqlnd_memcache_get_configw 5		 PHPmysqli_warning_countv 1 PHPmysqli_thread_safeu -		 PHPmysqli_thread_id#t =		 PHPmysqli_stmt_store_result's A PHPmysqli_stmt_send_long_datar /		 PHPmysqli_stmt_reset q 3 PHPmysqli_stmt_prepare"p ;		 PHPmysqli_stmt_param_counto 5		 PHPmysqli_stmt_num_rows    J _8]1eD&     h J                  - PHPncurses_baudrate +		 PHPncurses_attrset )		 PHPncurses_attron +		 PHPncurses_attroff* G PHPncurses_assume_default_colors )		 PHPncurses_addstr + PHPncurses_addnstr -		 PHPncurses_addchstr / PHPncurses_addchnstr '		 PHPncurses_addch) I		 PHPmysqlnd_uh_set_statement_proxy+ K	 PHPmysqlnd_uh_set_connection_proxy( G		 PHPmysqlnd_uh_convert_to_mysqlnd) E PHPmysqlnd_qc_set_user_handlers) I		 PHPmysqlnd_qc_set_storage_handler# =		 PHPmysqlnd_qc_set_is_select+ I PHPmysqlnd_qc_set_cache_condition) I PHPmysqlnd_qc_get_query_trace_log4 _ PHPmysqlnd_qc_get_normalized_query_trace_log! 9 PHPmysqlnd_qc_get_handler$ ? PHPmysqlnd_qc_get_core_stats$ ? PHPmysqlnd_qc_get_cache_info,
 O PHPmysqlnd_qc_get_available_handlers!	 9 PHPmysqlnd_qc_clear_cache$ ?		 PHPmysqlnd_qc_change_handler    \ oI-tR/uW=     w \                      ? ' PHPncurses_getch> - PHPncurses_flushinp= ' PHPncurses_flash< ) PHPncurses_filter; / PHPncurses_erasechar: ' PHPncurses_erase9 # PHPncurses_end8 -		 PHPncurses_echochar7 % PHPncurses_echo6 - PHPncurses_doupdate5 )		 PHPncurses_delwin4 /		 PHPncurses_del_panel3 - PHPncurses_deleteln2 ' PHPncurses_delch1 5		 PHPncurses_delay_output!0 9 PHPncurses_def_shell_mode / 7 PHPncurses_def_prog_mode. 1 PHPncurses_define_key- -		 PHPncurses_curs_set, /		 PHPncurses_color_set"+ 7 PHPncurses_color_content* - PHPncurses_clrtoeol) - PHPncurses_clrtobot( ' PHPncurses_clear' ) PHPncurses_cbreak#& = PHPncurses_can_change_color% 5		 PHPncurses_bottom_panel$ ) PHPncurses_border# +		 PHPncurses_bkgdset" %		 PHPncurses_bkgd! % PHPncurses_beep    Z fJ.~]B$vX:     y Z                    ^ + PHPncurses_mvaddch] 1 PHPncurses_move_panel\ % PHPncurses_move [ 3 PHPncurses_mouse_trafoZ / PHPncurses_mousemask Y 7		 PHPncurses_mouseintervalX % PHPncurses_metaW - PHPncurses_longnameV - PHPncurses_killcharU ) PHPncurses_keypadT ' PHPncurses_keyokS - PHPncurses_isendwinR '		 PHPncurses_instrQ )		 PHPncurses_insstrP - PHPncurses_insertlnO -		 PHPncurses_insdellnN '		 PHPncurses_inschM / PHPncurses_init_pairL 1 PHPncurses_init_colorK % PHPncurses_initJ % PHPncurses_inchI ' PHPncurses_hlineH 1		 PHPncurses_hide_panelG +		 PHPncurses_has_keyF ) PHPncurses_has_ilE ) PHPncurses_has_icD 1 PHPncurses_has_colorsC /		 PHPncurses_halfdelayB ' PHPncurses_getyxA -		 PHPncurses_getmouse@ - PHPncurses_getmaxyx    M z]> iJ,bA       j M       } +		 PHPncurses_refresh| # PHPncurses_raw{ + PHPncurses_qiflushz %		 PHPncurses_putpy - PHPncurses_prefresh!x 5 PHPncurses_pnoutrefreshw 5		 PHPncurses_panel_windowv 3		 PHPncurses_panel_belowu 3		 PHPncurses_panel_above!t 5 PHPncurses_pair_contents ' PHPncurses_norawr / PHPncurses_noqiflushq % PHPncurses_nonlp ) PHPncurses_noechoo - PHPncurses_nocbreakn ! PHPncurses_nlm ) PHPncurses_newwinl /		 PHPncurses_new_panelk ) PHPncurses_newpadj '		 PHPncurses_napmsi / PHPncurses_mvwaddstrh + PHPncurses_mvvlineg ) PHPncurses_mvinchf + PHPncurses_mvhlinee + PHPncurses_mvgetchd + PHPncurses_mvdelchc ' PHPncurses_mvcurb - PHPncurses_mvaddstra / PHPncurses_mvaddnstr` 1 PHPncurses_mvaddchstr _ 3 PHPncurses_mvaddchnstr    K sV8 cC"_@!     j K        /		 PHPncurses_top_panel +		 PHPncurses_timeout - PHPncurses_termname / PHPncurses_termattrs 3 PHPncurses_start_color - PHPncurses_standout - PHPncurses_standend / PHPncurses_slk_touch + PHPncurses_slk_set 3 PHPncurses_slk_restore 3 PHPncurses_slk_refresh" ; PHPncurses_slk_noutrefresh -		 PHPncurses_slk_init /		 PHPncurses_slk_color / PHPncurses_slk_clear 3		 PHPncurses_slk_attrset 1		 PHPncurses_slk_attron
 3		 PHPncurses_slk_attroff	 - PHPncurses_slk_attr 1		 PHPncurses_show_panel +		 PHPncurses_scr_set 3		 PHPncurses_scr_restore %		 PHPncurses_scrl -		 PHPncurses_scr_init -		 PHPncurses_scr_dump + PHPncurses_savetty + PHPncurses_resetty#  = PHPncurses_reset_shell_mode" ; PHPncurses_reset_prog_mode"~ 7 PHPncurses_replace_panel    _ Y<}^>gJ(
     z _                           9 # PHPnewt_button8 +		 PHPnewt_button_bar7  PHPnewt_bell6 ) PHPncurses_wvline5 /		 PHPncurses_wstandout4 /		 PHPncurses_wstandend3 -		 PHPncurses_wrefresh2 5		 PHPncurses_wnoutrefresh1 ' PHPncurses_wmove!0 5 PHPncurses_wmouse_trafo/ ) PHPncurses_whline. )		 PHPncurses_wgetch- )		 PHPncurses_werase, 1 PHPncurses_wcolor_set+ )		 PHPncurses_wclear* + PHPncurses_wborder		) - PHPncurses_wattrset( + PHPncurses_wattron' - PHPncurses_wattroff& + PHPncurses_waddstr% ) PHPncurses_waddch$ ' PHPncurses_vline# +		 PHPncurses_vidattr%" A		 PHPncurses_use_extended_names! +		 PHPncurses_use_env%  A PHPncurses_use_default_colors  7 PHPncurses_update_panels 1		 PHPncurses_ungetmouse +		 PHPncurses_ungetch /		 PHPncurses_typeahead    C sL!a3]1     ` C           Q + PHPnewt_cursor_offP - PHPnewt_create_grid'O A PHPnewt_component_takes_focus(N C PHPnewt_component_add_callback M 3 PHPnewt_compact_buttonL  PHPnewt_cls K 7 PHPnewt_clear_key_buffer)J E PHPnewt_checkbox_tree_set_width/I Q PHPnewt_checkbox_tree_set_entry_value)H E PHPnewt_checkbox_tree_set_entry+G I PHPnewt_checkbox_tree_set_currentF 1 PHPnewt_checkbox_tree%E = PHPnewt_checkbox_tree_multi+D M		 PHPnewt_checkbox_tree_get_selection3C Y PHPnewt_checkbox_tree_get_multi_selection/B Q PHPnewt_checkbox_tree_get_entry_value)A I		 PHPnewt_checkbox_tree_get_current)@ E PHPnewt_checkbox_tree_find_item(? C PHPnewt_checkbox_tree_add_item$> ; PHPnewt_checkbox_set_value$= ; PHPnewt_checkbox_set_flags< ' PHPnewt_checkbox"; ;		 PHPnewt_checkbox_get_value!: 5 PHPnewt_centered_window    V kQ3[<xU2    x V                      m 1 PHPnewt_grid_get_sizel ) PHPnewt_grid_free#k 9 PHPnewt_grid_basic_window-j M PHPnewt_grid_add_components_to_form!i 5 PHPnewt_get_screen_sizeh 1 PHPnewt_form_watch_fd g 3 PHPnewt_form_set_width f 3 PHPnewt_form_set_timere 1		 PHPnewt_form_set_size!d 5 PHPnewt_form_set_height%c = PHPnewt_form_set_backgroundb ' PHPnewt_form_runa  PHPnewt_form ` 7		 PHPnewt_form_get_current_ /		 PHPnewt_form_destroy"^ 7 PHPnewt_form_add_hot_key%] = PHPnewt_form_add_components$\ ; PHPnewt_form_add_component[ ' PHPnewt_finished!Z 5 PHPnewt_entry_set_flags"Y 7 PHPnewt_entry_set_filterX ) PHPnewt_entry_setW ! PHPnewt_entryV 5		 PHPnewt_entry_get_value U 3 PHPnewt_draw_root_textT )		 PHPnewt_draw_formS !		 PHPnewt_delayR ) PHPnewt_cursor_on    ` rK"{X/nE     `                                      " 7 PHPnewt_listbox_set_data% = PHPnewt_listbox_set_current, K PHPnewt_listbox_set_current_by_key% = PHPnewt_listbox_select_item % PHPnewt_listbox" ;		 PHPnewt_listbox_item_count&  ? PHPnewt_listbox_insert_entry% A		 PHPnewt_listbox_get_selection#~ =		 PHPnewt_listbox_get_current&} ? PHPnewt_listbox_delete_entry'| E		 PHPnewt_listbox_clear_selection{ 1		 PHPnewt_listbox_clear&z ? PHPnewt_listbox_append_entry y 3 PHPnewt_label_set_textx ! PHPnewt_labelw  PHPnewt_init%v = PHPnewt_grid_wrapped_window(u C PHPnewt_grid_wrapped_window_at t 3 PHPnewt_grid_v_stacked&s ? PHPnewt_grid_v_close_stacked$r ; PHPnewt_grid_simple_window q 3 PHPnewt_grid_set_field
p + PHPnewt_grid_place o 3 PHPnewt_grid_h_stacked&n ? PHPnewt_grid_h_close_stacked    B sR2mM3a8     i B$# ; PHPnewt_vertical_scrollbar"" 7 PHPnewt_textbox_set_text$! ; PHPnewt_textbox_set_height  % PHPnewt_textbox" 7 PHPnewt_textbox_reflowed% A		 PHPnewt_textbox_get_num_lines % PHPnewt_suspend& ? PHPnewt_set_suspend_callback! 9		 PHPnewt_set_help_callback 1 PHPnewt_scrollbar_set ) PHPnewt_scale_set ! PHPnewt_scale '		 PHPnewt_run_form # PHPnewt_resume 1	 PHPnewt_resize_screen % PHPnewt_refresh - PHPnewt_reflow_text  7 PHPnewt_redraw_help_line! 9		 PHPnewt_radio_get_current - PHPnewt_radiobutton 3	 PHPnewt_push_help_line + PHPnewt_pop_window 1 PHPnewt_pop_help_line - PHPnewt_open_window / PHPnewt_listitem_set
 ' PHPnewt_listitem!	 9		 PHPnewt_listitem_get_data# 9 PHPnewt_listbox_set_width# 9 PHPnewt_listbox_set_entry    h eD$nM2uY="      h                                    A '	 PHPnumfmt_format#@ 9 PHPnumfmt_format_currency?  PHPnthmac> '		 PHPnsapi_virtual!= 9 PHPnsapi_response_headers < 7 PHPnsapi_request_headers; '		 PHPnotes_version: % PHPnotes_unread9 % PHPnotes_search8 - PHPnotes_nav_create7 / PHPnotes_mark_unread6 + PHPnotes_mark_read5 +		 PHPnotes_list_msgs4 / PHPnotes_header_info3 + PHPnotes_find_note2 '		 PHPnotes_drop_db1 / PHPnotes_create_note0 +		 PHPnotes_create_db/ ' PHPnotes_copy_db. ! PHPnotes_body - 5	 PHPnormalizer_normalize$, =	 PHPnormalizer_is_normalized+  PHPngettext* - PHPnewt_win_ternary) / PHPnewt_win_messagev( - PHPnewt_win_message' ' PHPnewt_win_menu
& - PHPnewt_win_entries	% + PHPnewt_win_choice$ / PHPnewt_wait_for_key    M sS2	y\? aJ'    n M             ] 3		 PHPoci_collection_trim\ 3 PHPoci_collection_size[ 1 PHPoci_collection_max%Z A		 PHPoci_collection_element_get*Y G PHPoci_collection_element_assign X 7		 PHPoci_collection_assign W 7		 PHPoci_collection_appendV 		 PHPoci_closeU 1 PHPoci_client_versionT !		 PHPoci_cancelS - PHPoci_bind_by_name#R 9 PHPoci_bind_array_by_nameQ / PHPob_inflatehandlerP ) PHPob_etaghandlerO / PHPob_deflatehandlerN +		 PHPoauth_urlencodeM ' PHPoauth_get_sbs&L ? PHPnumfmt_set_text_attributeK / PHPnumfmt_set_symbolJ 1 PHPnumfmt_set_pattern!I 5 PHPnumfmt_set_attribute&H ? PHPnumfmt_get_text_attributeG / PHPnumfmt_get_symbolF 1		 PHPnumfmt_get_patternE /	 PHPnumfmt_get_locale#D =		 PHPnumfmt_get_error_message C 7		 PHPnumfmt_get_error_code!B 5 PHPnumfmt_get_attribute     U z]?"wT5uU7      p U             } '		 PHPoci_lob_flush| ) PHPoci_lob_export{ ' PHPoci_lob_erasez # PHPoci_lob_eofy % PHPoci_lob_copyx ' PHPoci_lob_closew )		 PHPoci_lob_appendv 1		 PHPoci_internal_debugu -		 PHPoci_get_implicitt 1 PHPocigetbufferinglobs 1		 PHPoci_free_statementr 3 PHPoci_free_descriptorq 3 PHPoci_free_collectionp ) PHPoci_field_typeo 1 PHPoci_field_type_rawn ) PHPoci_field_sizem + PHPoci_field_scale l 3 PHPoci_field_precisionk ) PHPoci_field_namej / PHPoci_field_is_nulli '		 PHPoci_fetch_rowh -		 PHPoci_fetch_objectg % PHPocifetchintof 		 PHPoci_fetche +		 PHPoci_fetch_assocd +	 PHPoci_fetch_arrayc ' PHPoci_fetch_allb #	 PHPoci_executea 	 PHPoci_error` 1 PHPoci_define_by_name_ # PHPoci_connect^ !		 PHPoci_commit    X tX<"eI(fF(    { X                    3 PHPoci_set_module_name +		 PHPoci_set_edition! 5 PHPoci_set_db_operation  3 PHPoci_set_client_info& ? PHPoci_set_client_identifier 1		 PHPocisetbufferinglob ) PHPoci_set_action 1		 PHPoci_server_version %		 PHPoci_rollback ! PHPoci_result % PHPoci_pconnect  3 PHPoci_password_change  PHPoci_parse %		 PHPoci_num_rows )		 PHPoci_num_fields 1	 PHPoci_new_descriptor )		 PHPoci_new_cursor + PHPoci_new_connect
 1 PHPoci_new_collection$	 ; PHPoci_lob_write_temporary ' PHPoci_lob_write -		 PHPoci_lob_truncate % PHPoci_lob_tell % PHPoci_lob_size % PHPoci_lob_seek % PHPoci_lob_save ) PHPoci_lob_rewind %		 PHPoci_lob_read  % PHPoci_lob_load - PHPoci_lob_is_equal~ )		 PHPoci_lob_import   _   ysmga[UOIC=71+%}wqke_YSMGA;5/)#{uoic]WQKE?93-'!                                                                                                                                                                                                  ֞W  ՞5  Ԟ  ӝw  ҝX  ѝ8  Н  ϝ  Μl  ͜Q  ̜3  ˜  ʛu  ɛ]  țI  Ǜ1  ƛ  ś  Ěj  ÚM  +    i  I  )  
  l  O  2    v  Z  A  &    t  Y  B  $  	  j  E       g  Y  <       a  A    |    H    `  }  M    e  C  "    j  M  -  
  j  K  /    r  H  %    5    o  N  .    p  K  #  ~  V  <  ~  }X  |<  {  zx  yV  x3 ^   8|vpjd^XRLFztnhb\VPJD>82,& ~xrlf`ZTNHB<60*$F@:4.("
           7  6v  5\  4@  3'  2  1t  0V  /9  .  -  ,i  +M  *2  )  (  'd  &E  %(  $  #p  "U  !9     w  ^  D  +    w  ]  B       _  @  #  	  m  N  1    q  S  3  
  	}  b  E  '    o  O  .     p  P  1    s  U  8                                                                                                                                                                                             }  ]  A  #    m  Q  9    }  ^  ?       n  T  7    ~  _  ?      ߠd  ޠG  ݠ-  ܠ  ۟n  ڟS  ٟ5  ؟    G wW6mH%tT3     i G       8 5		 PHPopenal_source_rewind7 1		 PHPopenal_source_play6 3		 PHPopenal_source_pause5 / PHPopenal_source_get 4 7		 PHPopenal_source_destroy3 5 PHPopenal_source_create 2 3 PHPopenal_listener_set1 3		 PHPopenal_listener_get0 1	 PHPopenal_device_open/ 3		 PHPopenal_device_close!. 9		 PHPopenal_context_suspend!- 9		 PHPopenal_context_process!, 9		 PHPopenal_context_destroy!+ 9		 PHPopenal_context_current * 7		 PHPopenal_context_create") 7 PHPopenal_buffer_loadwav( / PHPopenal_buffer_get ' 7		 PHPopenal_buffer_destroy& 1 PHPopenal_buffer_data% 5 PHPopenal_buffer_create$ ' PHPopcache_reset## =		 PHPopcache_is_script_cached" 1	 PHPopcache_invalidate! 1	 PHPopcache_get_status$  ? PHPopcache_get_configuration 5		 PHPopcache_compile_file 1		 PHPoci_statement_type - PHPoci_set_prefetch    O zO.eB {Z>      n O             U + PHPPDF_attach_file

T  PHPPDF_arcnS  PHPPDF_arcR + PHPPDF_add_weblinkQ / PHPPDF_add_thumbnailP - PHPPDF_add_textflowO 1 PHPPDF_add_table_cellN + PHPPDF_add_pdflinkM % PHPPDF_add_note		L / PHPPDF_add_nameddestK / PHPPDF_add_locallinkJ 1 PHPPDF_add_launchlinkI / PHPPDF_activate_itemH 1		 PHPpcntl_wifcontinuedG / PHPpcnlt_sigwaitinfoF 1 PHPpassword_make_salt E 7		 PHPparsekit_func_arginfo#D ;	 PHPparsekit_compile_string!C 7	 PHPparsekit_compile_fileB / PHPoverride_functionA 		 PHPoverload$@ =	 PHPopenssl_x509_fingerprint? 3		 PHPopenssl_spki_verify> 3		 PHPopenssl_spki_export(= G		 PHPopenssl_spki_export_challenge%< A PHPopenssl_get_cert_locations; ' PHPopenal_stream: 1		 PHPopenal_source_stop9 / PHPopenal_source_set    F dF$tU:wV5     i F   s 3 PHPPDF_create_textflowr ) PHPPDF_create_pvfq / PHPPDF_create_gstate"p 7 PHPPDF_create_fieldgroupo - PHPPDF_create_field n 3 PHPPDF_create_bookmark"m 7 PHPPDF_create_annotationl / PHPPDF_create_actionk / PHPPDF_create_3dviewj / PHPPDF_continue_texti ! PHPPDF_concath 1 PHPPDF_close_pdi_pageg ' PHPPDF_close_pdif 5		 PHPPDF_closepath_stroke$e ?		 PHPPDF_closepath_fill_stroked '		 PHPPDF_closepathc + PHPPDF_close_imageb 		 PHPPDF_closea 		 PHPPDF_clip` ! PHPPDF_circle_ 1 PHPPDF_begin_template#^ 9 PHPPDF_begin_template_ext] / PHPPDF_begin_pattern\ 1 PHPPDF_begin_page_ext[ ) PHPPDF_begin_pageZ + PHPPDF_begin_layerY ) PHPPDF_begin_itemX + PHPPDF_begin_glyphW ) PHPPDF_begin_font		V 1 PHPPDF_begin_document     M oL'aH+tX;      i M      )		 PHPPDF_get_errnum )		 PHPPDF_get_errmsg )		 PHPPDF_get_buffer +		 PHPPDF_get_apiname - PHPPDF_fit_textline - PHPPDF_fit_textflow ' PHPPDF_fit_table - PHPPDF_fit_pdi_page ' PHPPDF_fit_image
 % PHPPDF_findfont	 1 PHPPDF_fill_textblock +		 PHPPDF_fill_stroke / PHPPDF_fill_pdfblock  3 PHPPDF_fill_imageblock 		 PHPPDF_fill -		 PHPPDF_end_template +		 PHPPDF_end_pattern #		 PHPPDF_endpath - PHPPDF_end_page_ext  %		 PHPPDF_end_page '		 PHPPDF_end_layer~ % PHPPDF_end_item} '		 PHPPDF_end_glyph| %		 PHPPDF_end_font{ - PHPPDF_end_document"z 7 PHPPDF_encoding_set_char y 3 PHPPDF_delete_textflowx - PHPPDF_delete_tablew ) PHPPDF_delete_pvfv !		 PHPPDF_deleteu - PHPPDF_define_layert # PHPPDF_curveto    L vU8|bC&wZ7     o L         1 3 PHPPDF_pcos_get_stream 0 3 PHPPDF_pcos_get_number/ / PHPPDF_open_pdi_page. % PHPPDF_open_pdi"- 7 PHPPDF_open_pdi_document", 7 PHPPDF_open_memory_image+ ) PHPPDF_open_image

 * 3 PHPPDF_open_image_file) ' PHPPDF_open_file( ) PHPPDF_open_ccitt'  PHPPDF_new& ! PHPPDF_moveto% / PHPPDF_makespotcolor$ ) PHPPDF_load_image # 3 PHPPDF_load_iccprofile" ' PHPPDF_load_font! + PHPPDF_load_3ddata  ! PHPPDF_lineto -		 PHPPDF_initgraphics / PHPPDF_info_textline / PHPPDF_info_textflow ) PHPPDF_info_table / PHPPDF_info_matchbox ' PHPPDF_info_font ' PHPPDF_get_value / PHPPDF_get_pdi_value" 7 PHPPDF_get_pdi_parameter / PHPPDF_get_parameter 5 PHPPDF_get_minorversion 5 PHPPDF_get_majorversion    P }eL-y]B oS+     o P          P + PHPPDF_setrgbcolorO / PHPPDF_set_parameterN / PHPPDF_setmiterlimitM ' PHPPDF_setmatrixL - PHPPDF_setlinewidthK + PHPPDF_setlinejoinJ ) PHPPDF_setlinecap%I = PHPPDF_set_layer_dependencyH % PHPPDF_set_infoG ) PHPPDF_set_gstateF 1 PHPPDF_setgray_strokeE - PHPPDF_setgray_fillD # PHPPDF_setgrayC # PHPPDF_setfontB # PHPPDF_setflatA 1 PHPPDF_setdashpattern@ # PHPPDF_setdash? % PHPPDF_setcolor!> 5 PHPPDF_set_border_style = 3 PHPPDF_set_border_dash!< 5 PHPPDF_set_border_color;  PHPPDF_scale: 		 PHPPDF_save9 ! PHPPDF_rotate8 + PHPPDF_resume_page7 #		 PHPPDF_restore6  PHPPDF_rect5 + PHPPDF_process_pdi4 1 PHPPDF_place_pdi_page3 + PHPPDF_place_image 2 3 PHPPDF_pcos_get_string     P y^;!	aD#v_@&     k P        p '		 PHPphpdbg_prompto - PHPphpdbg_end_oplogn % PHPphpdbg_colorm % PHPphpdbg_clear l 3 PHPphpdbg_break_method k 7		 PHPphpdbg_break_functionj / PHPphpdbg_break_filei % PHPphpdbg_breakh -	 PHPphp_check_syntaxg 		 PHPpg_socketf 		 PHPpg_flushe -		 PHPpg_consume_inputd +		 PHPpg_connect_pollc # PHPpdo_driversb / PHPPDF_utf8_to_utf16a 1 PHPPDF_utf32_to_utf16` / PHPPDF_utf16_to_utf8_ ' PHPPDF_translate^ - PHPPDF_suspend_page] !		 PHPPDF_stroke\ + PHPPDF_stringwidth[  PHPPDF_skewZ # PHPpdf_show_xyY ) PHPpdf_show_boxedX  PHPpdf_showW ! PHPPDF_shfill V 3 PHPPDF_shading_patternU # PHPPDF_shadingT ' PHPPDF_set_valueS - PHPPDF_set_text_pos#R 9 PHPPDF_setrgbcolor_stroke!Q 5 PHPPDF_setrgbcolor_fill   ! g eG)pZ<"{^I-      g                               PHPps_lineto + PHPps_include_file % PHPps_hyphenate % PHPps_get_value - PHPps_get_parameter '		 PHPps_get_buffer # PHPps_findfont
 )		 PHPps_fill_stroke	 		 PHPps_fill +		 PHPps_end_template )		 PHPps_end_pattern #		 PHPps_end_page 		 PHPps_delete ! PHPps_curveto - PHPps_continue_text 3		 PHPps_closepath_stroke %		 PHPps_closepath  ) PHPps_close_image 		 PHPps_close~ 		 PHPps_clip}  PHPps_circle| / PHPps_begin_template{ - PHPps_begin_patternz ' PHPps_begin_pagey  PHPps_arcnx  PHPps_arcw ) PHPps_add_weblinkv ) PHPps_add_pdflinku # PHPps_add_note		t - PHPps_add_locallinks / PHPps_add_launchlinkr + PHPps_add_bookmarkq 1 PHPphpdbg_start_oplog    O vY5c=_@'    ~ g O             . !		 PHPps_restore-  PHPps_rect, ) PHPps_place_image+ ) PHPpspell_suggest%* = PHPpspell_store_replacement) 5		 PHPpspell_save_wordlist ( 3 PHPpspell_new_personal' !	 PHPpspell_new& /		 PHPpspell_new_config$% ; PHPpspell_config_save_repl&$ ? PHPpspell_config_runtogether# 1 PHPpspell_config_repl#" 9 PHPpspell_config_personal! 1 PHPpspell_config_mode!  5 PHPpspell_config_ignore# 9 PHPpspell_config_dict_dir# 9 PHPpspell_config_data_dir  5	 PHPpspell_config_create 5		 PHPpspell_clear_session % PHPpspell_check" 7 PHPpspell_add_to_session# 9 PHPpspell_add_to_personal! 5 PHPps_open_memory_image ' PHPps_open_image

 1 PHPps_open_image_file %	 PHPps_open_file  PHPps_new  PHPps_moveto - PHPps_makespotcolor   ! X uR7yZ:bI1      q X              O  PHPps_symbolN 		 PHPps_strokeM ) PHPps_stringwidthL 1 PHPps_string_geometryK ! PHPps_show_xyJ # PHPps_show_xy2I ' PHPps_show_boxedH  PHPps_showG  PHPps_show2F  PHPps_shfillE 1 PHPps_shading_patternD ! PHPps_shadingC % PHPps_set_valueB + PHPps_set_text_posA ) PHPps_setpolydash@ - PHPps_set_parameter ? 3 PHPps_setoverprintmode> - PHPps_setmiterlimit= + PHPps_setlinewidth< ) PHPps_setlinejoin; ' PHPps_setlinecap: # PHPps_set_info9 ! PHPps_setgray8 ! PHPps_setfont7 ! PHPps_setflat6 ! PHPps_setdash5 # PHPps_setcolor 4 3 PHPps_set_border_style3 1 PHPps_set_border_dash 2 3 PHPps_set_border_color1  PHPps_scale0 		 PHPps_save/  PHPps_rotate     [ uW@ vVB(tT/     y [                   o - PHPradius_auth_openn / PHPradius_add_serverm - PHPradius_acct_openl ! PHPqdom_errork - PHPpx_update_record j 3 PHPpx_timestamp2stringi % PHPpx_set_value"h 7 PHPpx_set_targetencodingg - PHPpx_set_tablenamef - PHPpx_set_parametere - PHPpx_set_blob_filed 1 PHPpx_retrieve_recordc ' PHPpx_put_recordb ! PHPpx_open_fpa '		 PHPpx_numrecords` %		 PHPpx_numfields_  PHPpx_new^ - PHPpx_insert_record] % PHPpx_get_value\ '	 PHPpx_get_schema[ ' PHPpx_get_recordZ - PHPpx_get_parameterY #		 PHPpx_get_infoX % PHPpx_get_fieldW - PHPpx_delete_recordV 		 PHPpx_deleteU ) PHPpx_date2stringT % PHPpx_create_fpS 		 PHPpx_closeR % PHPps_translateQ + PHPps_symbol_widthP ) PHPps_symbol_name    S kL$sT5]3     w S                   ! 5 PHPrar_allow_broken_set
 !PHPrandom_int	 %		PHPrandom_bytes +		 PHPradius_strerror 5		 PHPradius_server_secret 3		 PHPradius_send_request% = PHPradius_salt_encrypt_attr' E		 PHPradius_request_authenticator% = PHPradius_put_vendor_string" 7 PHPradius_put_vendor_int# 9 PHPradius_put_vendor_attr#  9 PHPradius_put_vendor_addr / PHPradius_put_string~ ) PHPradius_put_int} + PHPradius_put_attr| + PHPradius_put_addr!{ 9		 PHPradius_get_vendor_attr%z A		 PHPradius_get_tagged_attr_tag&y C		 PHPradius_get_tagged_attr_datax +		 PHPradius_get_attrw + PHPradius_demangle%v = PHPradius_demangle_mppe_keyu /		 PHPradius_cvt_stringt )		 PHPradius_cvt_ints +		 PHPradius_cvt_addr"r 7 PHPradius_create_requestq ' PHPradius_configp %		 PHPradius_close    X rAjM}[7      r X                        ' ! PHPrrd_create& # PHPrpm_version% 		 PHPrpm_open$ %		 PHPrpm_is_valid# # PHPrpm_get_tag" 		 PHPrpm_close$! ? PHPrestore_exception_handler   7 PHPrestore_error_handler! 9		 PHPresourcebundle_locales 1 PHPresourcebundle_get+ M		 PHPresourcebundle_get_error_message( G		 PHPresourcebundle_get_error_code 5		 PHPresourcebundle_count + PHPrename_function3 ] PHPReflectionFunctionAbstract:hasReturnType ' PHPrecode_string # PHPrecode_file 1 PHPreadline_redisplay 5 PHPreadline_on_new_line  7 PHPreadline_list_history& C PHPreadline_callback_read_char+ M PHPreadline_callback_handler_remove. O PHPreadline_callback_handler_install" ; PHPrar_wrapper_cache_stats %		 PHPrar_solid_is +		 PHPrar_comment_get 		 PHPrar_close '		 PHPrar_broken_is    g sW<$
pH$kO6     g                                   !E 5 PHPrunkit_method_rename!D 5 PHPrunkit_method_remove#C 9 PHPrunkit_method_redefineB 1 PHPrunkit_method_copyA / PHPrunkit_method_add@ -		 PHPrunkit_lint_file? #		 PHPrunkit_lint> '	 PHPrunkit_import#= 9 PHPrunkit_function_rename!< 9		 PHPrunkit_function_remove%; = PHPrunkit_function_redefine!: 5 PHPrunkit_function_copy 9 3 PHPrunkit_function_add!8 9		 PHPrunkit_constant_remove%7 = PHPrunkit_constant_redefine 6 3 PHPrunkit_constant_add"5 ;		 PHPrunkit_class_emancipate4 1 PHPrunkit_class_adopt3 		 PHPrrd_xport2 # PHPrrd_version1 ! PHPrrd_update0  PHPrrd_tune/ # PHPrrd_restore. )		 PHPrrd_lastupdate- 		 PHPrrd_last, 		 PHPrrd_info+  PHPrrd_graph* 	 PHPrrd_first)  PHPrrd_fetch(  PHPrrd_error    T jO0
zX=#uW9     z T                  #b =		 PHPstats_absolute_deviationa /		 PHPssdeep_fuzzy_hash%` A		 PHPssdeep_fuzzy_hash_filename!_ 5 PHPssdeep_fuzzy_compare^ !		 PHPsqlite_key] - PHPsolr_get_version\ -		 PHPsolid_fetch_prev[ ) PHPsocket_sendmsgZ ) PHPsocket_recvmsgY 5		 PHPsocket_import_streamX / PHPsocket_cmsg_spaceW - PHPsigneurlpaiementV 	 PHPsha256U #	 PHPsha256_fileT )		 PHPsetthreadtitleS %		 PHPsetproctitleR ' PHPsession_resetQ 5 PHPsession_pgsql_status"P ;		 PHPsession_pgsql_set_fieldO 3 PHPsession_pgsql_reset"N ; PHPsession_pgsql_get_field"M ;	 PHPsession_pgsql_get_error#L ;	 PHPsession_pgsql_add_errorK /		 PHPsession_create_idJ ' PHPsession_abortI 3 PHPrunkit_superglobals H 7 PHPRunkit_Sandbox_Parent)G G	 PHPrunkit_sandbox_output_handler#F = PHPrunkit_return_value_used    f }X=\; ~Z4     f                                        } / PHPstats_dens_normal)| E PHPstats_dens_negative_binomial { 3 PHPstats_dens_logisticz 1 PHPstats_dens_laplacey - PHPstats_dens_gammax % PHPstats_dens_f#w 9 PHPstats_dens_exponential!v 5 PHPstats_dens_chisquareu / PHPstats_dens_cauchyt + PHPstats_dens_betas - PHPstats_covariancer / PHPstats_cdf_weibullq / PHPstats_cdf_uniformp # PHPstats_cdf_to / PHPstats_cdf_poisson#n 9 PHPstats_cdf_noncentral_f+m I PHPstats_cdf_noncentral_chisquare(l C PHPstats_cdf_negative_binomialk 1 PHPstats_cdf_logisticj / PHPstats_cdf_laplacei + PHPstats_cdf_gammah # PHPstats_cdf_f"g 7 PHPstats_cdf_exponential f 3 PHPstats_cdf_chisquaree - PHPstats_cdf_cauchyd 1 PHPstats_cdf_binomialc ) PHPstats_cdf_beta    U jH'zS/j8    } U                           % A		PHPstats_rand_phrase_to_seeds 5PHPstats_rand_get_seeds -		PHPstats_rand_gen_t" 7PHPstats_rand_gen_normal( CPHPstats_rand_gen_noncentral_t( CPHPstats_rand_gen_noncentral_f/ QPHPstats_rand_gen_noncenral_chisquare$ ;PHPstats_rand_gen_iuniform" ;		PHPstats_rand_gen_ipoisson 1PHPstats_rand_gen_int. OPHPstats_rand_gen_ibinomial_negative% =PHPstats_rand_gen_ibinomial!
 5PHPstats_rand_gen_gamma$	 ;PHPstats_rand_gen_funiform -PHPstats_rand_gen_f% A		PHPstats_rand_gen_exponential# =		PHPstats_rand_gen_chisquare  3PHPstats_rand_gen_beta )		 PHPstats_kurtosis / PHPstats_den_uniform 1 PHPstats_dens_weibull % PHPstats_dens_t#  9 PHPstats_dens_pmf_poisson* G PHPstats_dens_pmf_hypergeometric$~ ; PHPstats_dens_pmf_binomial    c [5}X5w[B      c                                 3 +	 PHPstomp_subscribe"2 9	 PHPstomp_set_read_timeout1 ! PHPstomp_send0 - PHPstomp_read_frame/ +		 PHPstomp_has_frame. 5		 PHPstomp_get_session_id!- 9		 PHPstomp_get_read_timeout, #		 PHPstomp_error+ ' PHPstomp_connect* 3 PHPstomp_connect_error) %	 PHPstomp_commit( #		 PHPstomp_close' #	 PHPstomp_begin& 	 PHPstomp_ack% #	 PHPstomp_abort$ )	 PHPstats_variance # 3 PHPstats_stat_powersum"" 7 PHPstats_stat_percentile ! 3 PHPstats_stat_paired_t$  ; PHPstats_stat_noncentral_t$ ; PHPstats_stat_innerproduct% = PHPstats_stat_independent_t /		 PHPstats_stat_gennch# 9 PHPstats_stat_correlation% = PHPstats_stat_binomial_coef$ =	 PHPstats_standard_deviation !		 PHPstats_skew /PHPstats_rand_setall +PHPstats_rand_ranf     W {V;$lF.x^@     t W               S ' PHPsvn_fs_deleteR # PHPsvn_fs_copy$Q ; PHPsvn_fs_contents_changedP / PHPsvn_fs_check_path$O ; PHPsvn_fs_change_node_propN / PHPsvn_fs_begin_txn2M / PHPsvn_fs_apply_textL -		 PHPsvn_fs_abort_txnK ! PHPsvn_exportJ  PHPsvn_diffI !	 PHPsvn_deleteH ! PHPsvn_commitG 1 PHPsvn_client_versionF #		 PHPsvn_cleanupE % PHPsvn_checkoutD 	 PHPsvn_catC 	 PHPsvn_blame#B 9 PHPsvn_auth_set_parameter!A 9		 PHPsvn_auth_get_parameter@ 	 PHPsvn_add"? ; PHPsuhosin_get_raw_cookies#> 9 PHPsuhosin_encrypt_cookie= %	PHPsubstr_count< 	PHPstrrchr; 	PHPstrncmp: #	PHPstrncasecmp"9 7 PHPstream_set_chunk_size8 +	 PHPstream_encoding7 	PHPstrcmp6 	PHPstrchr5 ' PHPstomp_version4 /	 PHPstomp_unsubscribe    Y {]>kN-[A      z Y                     q 3		 PHPswf_actiongotoframep - PHPswf_actiongeturlo !	 PHPsvn_updaten !	 PHPsvn_statusm !	 PHPsvn_revertl /		 PHPsvn_repos_recoverk )		 PHPsvn_repos_openj / PHPsvn_repos_hotcopyi %		 PHPsvn_repos_fs"h ;		 PHPsvn_repos_fs_commit_txn.g O PHPsvn_repos_fs_begin_txn_for_commitf -	 PHPsvn_repos_createe 	 PHPsvn_mkdird 	 PHPsvn_lsc 	 PHPsvn_logb ! PHPsvn_importa 3		 PHPsvn_fs_youngest_rev` +		 PHPsvn_fs_txn_root!_ 5 PHPsvn_fs_revision_root!^ 5 PHPsvn_fs_revision_prop!] 5 PHPsvn_fs_props_changed\ - PHPsvn_fs_node_prop$[ ; PHPsvn_fs_node_created_revZ - PHPsvn_fs_make_fileY + PHPsvn_fs_make_dirX ) PHPsvn_fs_is_fileW ' PHPsvn_fs_is_dirV 1 PHPsvn_fs_file_length!U 5 PHPsvn_fs_file_contentsT 1 PHPsvn_fs_dir_entries     I `DaC%|bG)
     } a I  ! PHPswf_nextid % PHPswf_mulcolor - PHPswf_modifyobject ! PHPswf_lookat )		 PHPswf_labelframe % PHPswf_getframe + PHPswf_getfontinfo
 /		 PHPswf_getbitmapinfo	 -		 PHPswf_fonttracking '		 PHPswf_fontslant %		 PHPswf_fontsize ' PHPswf_endsymbol % PHPswf_endshape + PHPswf_enddoaction ' PHPswf_endbutton ) PHPswf_definetext ) PHPswf_definerect  ) PHPswf_definepoly ) PHPswf_defineline~ ) PHPswf_definefont} - PHPswf_definebitmap| '	 PHPswf_closefile{ % PHPswf_addcolor z 3 PHPswf_addbuttonrecord#y 9 PHPswf_actionwaitforframe"x ; PHPswf_actiontogglequalityw ) PHPswf_actionstopv 3		 PHPswf_actionsettargetu 3 PHPswf_actionprevframet ) PHPswf_actionplays 3 PHPswf_actionnextframer 3		 PHPswf_actiongotolabel     S uV9~dH'}[<     p S           1 ' PHPswf_translate0 '		 PHPswf_textwidth/ +		 PHPswf_startsymbol. )		 PHPswf_startshape- / PHPswf_startdoaction, + PHPswf_startbutton+ ' PHPswf_showframe* + PHPswf_shapemoveto) + PHPswf_shapelineto( 1 PHPswf_shapelinesolid' 1 PHPswf_shapefillsolid& - PHPswf_shapefilloff"% ;		 PHPswf_shapefillbitmaptile"$ ;		 PHPswf_shapefillbitmapclip# - PHPswf_shapecurveto" / PHPswf_shapecurveto3! % PHPswf_shapearc  %		 PHPswf_setframe #		 PHPswf_setfont  PHPswf_scale ! PHPswf_rotate -		 PHPswf_removeobject ) PHPswf_pushmatrix %		 PHPswf_posround ' PHPswf_popmatrix ' PHPswf_polarview + PHPswf_placeobject + PHPswf_perspective  PHPswf_ortho ! PHPswf_ortho2 % PHPswf_openfile +		 PHPswf_oncondition    Q kB"`;|_A&	     i Q               N !		 PHPtextdomainM ' PHPtcpwrap_checkL 	 PHPtaint$K ; PHPsybase_unbuffered_query&J A	 PHPsybase_set_message_handlerI -	 PHPsybase_select_dbH ' PHPsybase_resultG %	 PHPsybase_queryF + PHPsybase_pconnectE +		 PHPsybase_num_rowsD /		 PHPsybase_num_fields%C A		 PHPsybase_min_server_severity&B C		 PHPsybase_min_message_severity$A ?		 PHPsybase_min_error_severity%@ A		 PHPsybase_min_client_severity"? ; PHPsybase_get_last_message> 1		 PHPsybase_free_result= / PHPsybase_field_seek< -		 PHPsybase_fetch_row; 3	 PHPsybase_fetch_object: 1	 PHPsybase_fetch_field9 1		 PHPsybase_fetch_assoc8 1		 PHPsybase_fetch_array&7 C		 PHPsybase_deadlock_retry_count6 - PHPsybase_data_seek5 ) PHPsybase_connect4 %	 PHPsybase_close3 5	 PHPsybase_affected_rows2 % PHPswf_viewport    Q gG,~]> qR/      j Q           m !	 PHPtrader_apol # PHPtrader_adxrk ! PHPtrader_adxj % PHPtrader_adosci ! PHPtrader_addh  PHPtrader_adg #		 PHPtrader_acos%f = PHPtimezone_transitions_get e 3 PHPtimezone_offset_getd /		 PHPtimezone_name_get c 7		 PHPtimezone_location_get&b ? PHPtimezone_identifiers_list&a C PHPtimezone_abbreviations_list` # PHPtidy_setopt_ /		 PHPtidy_set_encoding^ -		 PHPtidy_save_config] / PHPtidy_reset_config\ 1	 PHPtidy_repair_string[ -	 PHPtidy_repair_fileZ - PHPtidy_load_configY #		 PHPtidy_is_xmlX '		 PHPtidy_is_xhtmlW +		 PHPtidy_get_statusV - PHPtidy_get_releaseU # PHPtidy_getoptT - PHPtidy_get_opt_docS /		 PHPtidy_get_html_ver R 7		 PHPtidy_get_error_bufferQ +		 PHPtidy_get_configP '		 PHPtidy_diagnoseO /		 PHPtidy_clean_repair    X yZ>#	dBa8     X                        $	 ; PHPtrader_cdldragonflydoji 1 PHPtrader_cdldojistar ) PHPtrader_cdldoji% = PHPtrader_cdldarkcloudcover$ ; PHPtrader_cdlcounterattack' A PHPtrader_cdlconcealbabyswall& ? PHPtrader_cdlclosingmarubozu  3 PHPtrader_cdlbreakaway 1 PHPtrader_cdlbelthold#  9 PHPtrader_cdladvanceblock$ ; PHPtrader_cdlabandonedbaby%~ = PHPtrader_cdl3whitesoldiers$} ; PHPtrader_cdl3starsinsouth| 1 PHPtrader_cdl3outside"{ 7 PHPtrader_cdl3linestrikez / PHPtrader_cdl3inside"y 7 PHPtrader_cdl3blackcrowsx - PHPtrader_cdl2crowsw ! PHPtrader_cciv ! PHPtrader_bopu # PHPtrader_betat '	 PHPtrader_bbandss + PHPtrader_avgpricer ! PHPtrader_atrq #		 PHPtrader_atanp #		 PHPtrader_asino + PHPtrader_aroonoscn % PHPtrader_aroon    F e=qM'lF     k F          "# 7 PHPtrader_cdlmorningstar&" ? PHPtrader_cdlmorningdojistar! / PHPtrader_cdlmathold"  7 PHPtrader_cdlmatchinglow 1 PHPtrader_cdlmarubozu 1 PHPtrader_cdllongline% = PHPtrader_cdllongleggeddoji# 9 PHPtrader_cdlladderbottom& ? PHPtrader_cdlkickingbylength / PHPtrader_cdlkicking% = PHPtrader_cdlinvertedhammer - PHPtrader_cdlinneck& ? PHPtrader_cdlidentical3crows# 9 PHPtrader_cdlhomingpigeon! 5 PHPtrader_cdlhikkakemod / PHPtrader_cdlhikkake 1 PHPtrader_cdlhighwave" 7 PHPtrader_cdlharamicross - PHPtrader_cdlharami! 5 PHPtrader_cdlhangingman - PHPtrader_cdlhammer% = PHPtrader_cdlgravestonedoji' A PHPtrader_cdlgapsidesidewhite" 7 PHPtrader_cdleveningstar& ? PHPtrader_cdleveningdojistar 
 3 PHPtrader_cdlengulfing    W oF iF#pW:"	      q W                     @ %		 PHPtrader_floor? !		 PHPtrader_exp> % PHPtrader_errno= !	 PHPtrader_ema<  PHPtrader_dx; ! PHPtrader_div: #	 PHPtrader_dema9 #		 PHPtrader_cosh8 !		 PHPtrader_cos7 ' PHPtrader_correl6 !	 PHPtrader_cmo5 #		 PHPtrader_ceil'4 A PHPtrader_cdlxsidegap3methods&3 ? PHPtrader_cdlupsidegap2crows#2 9 PHPtrader_cdlunique3river1 / PHPtrader_cdltristar 0 3 PHPtrader_cdlthrusting / 3 PHPtrader_cdltasukigap. - PHPtrader_cdltakuri$- ; PHPtrader_cdlsticksandwich%, = PHPtrader_cdlstalledpattern"+ 7 PHPtrader_cdlspinningtop * 3 PHPtrader_cdlshortline#) 9 PHPtrader_cdlshootingstar&( ? PHPtrader_cdlseparatinglines'' A PHPtrader_cdlrisefall3methods"& 7 PHPtrader_cdlrickshawman% 1 PHPtrader_cdlpiercing$ - PHPtrader_cdlonneck    _ z\@wR;!	gI*      _                         _ 1	 PHPtrader_minmaxindex^ '	 PHPtrader_minmax] +	 PHPtrader_minindex\ !	 PHPtrader_min[ + PHPtrader_midpriceZ +	 PHPtrader_midpointY ! PHPtrader_mfiX + PHPtrader_medpriceW +	 PHPtrader_maxindexV !	 PHPtrader_maxU # PHPtrader_mavpT #	 PHPtrader_mamaS )	 PHPtrader_macdfixR )	 PHPtrader_macdextQ #	 PHPtrader_macdP 	 PHPtrader_maO %		 PHPtrader_log10N 		 PHPtrader_ln"M 9	 PHPtrader_linearreg_slope&L A	 PHPtrader_linearreg_interceptK -	 PHPtrader_linearreg"J 9	 PHPtrader_linearreg_angleI #	 PHPtrader_kamaH 3		 PHPtrader_ht_trendmodeG 3		 PHPtrader_ht_trendlineF )		 PHPtrader_ht_sineE -		 PHPtrader_ht_phasorD /		 PHPtrader_ht_dcphaseC 1		 PHPtrader_ht_dcperiod%B A		 PHPtrader_get_unstable_periodA / PHPtrader_get_compat   # T sY;gJ2 tZA)      s T       + PHPtrader_typprice !	 PHPtrader_tsf  #	 PHPtrader_trix %	 PHPtrader_trima~ ' PHPtrader_trange} #	 PHPtrader_tema| #		 PHPtrader_tanh{ !		 PHPtrader_tanz 	 PHPtrader_t3y !	 PHPtrader_sumx ! PHPtrader_subw +	 PHPtrader_stochrsiv ' PHPtrader_stochfu % PHPtrader_stocht '	 PHPtrader_stddevs #		 PHPtrader_sqrtr !	 PHPtrader_smaq #		 PHPtrader_sinhp !		 PHPtrader_sino ' PHPtrader_sarext
n ! PHPtrader_sarm !	 PHPtrader_rsil #	 PHPtrader_rocrk )	 PHPtrader_rocr100j #	 PHPtrader_rocpi !	 PHPtrader_roch !	 PHPtrader_ppog ) PHPtrader_plus_dmf ) PHPtrader_plus_die ! PHPtrader_obvd # PHPtrader_natrc # PHPtrader_multb !	 PHPtrader_moma + PHPtrader_minus_dm` + PHPtrader_minus_di    X vKiK.pW@)     y X                      / PHPudm_get_res_param / PHPudm_get_res_field /		 PHPudm_get_doc_count %		 PHPudm_free_res 5		 PHPudm_free_ispell_data )		 PHPudm_free_agent  PHPudm_find 		 PHPudm_error 		 PHPudm_errno  PHPudm_crc32 - PHPudm_close_stored" ;		 PHPudm_clear_search_limits - PHPudm_check_stored / PHPudm_check_charset % PHPudm_cat_path % PHPudm_cat_list + PHPudm_api_version +	 PHPudm_alloc_agent  7		 PHPudm_alloc_agent_array! 5 PHPudm_add_search_limit '	 PHPtrigger_error) E PHPtransliterator_transliterate"
 ; PHPtransliterator_list_ids+	 M		 PHPtransliterator_get_error_message( G		 PHPtransliterator_get_error_code !	 PHPtrader_wma % PHPtrader_willr + PHPtrader_wclprice !	 PHPtrader_var ' PHPtrader_ultosc   " L lV<#
i@u\A&      g LB # PHPvariant_subA # PHPvariant_set@ - PHPvariant_set_type? ' PHPvariant_round> # PHPvariant_pow= ! PHPvariant_or< #		 PHPvariant_not; #		 PHPvariant_neg: # PHPvariant_mul9 # PHPvariant_mod8 #		 PHPvariant_int7 # PHPvariant_imp6 % PHPvariant_idiv5 -		 PHPvariant_get_type4 #		 PHPvariant_fix3 # PHPvariant_eqv2 # PHPvariant_div$1 ?		 PHPvariant_date_to_timestamp&0 C		 PHPvariant_date_from_timestamp/ # PHPvariant_cmp. # PHPvariant_cat- % PHPvariant_cast, # PHPvariant_and+ # PHPvariant_add* #		 PHPvariant_abs) #		 PHPutf8_encode( #		 PHPutf8_decode' ! PHPuopz_flags& 	 PHPuntaint% 	 PHPunsetd $ 3 PHPudm_set_agent_param# + PHPudm_open_stored!" 5 PHPudm_load_ispell_data! ! PHPudm_hash32    Z {X2`>vX7    } Z                             ] 5	 PHPwin32_delete_service \ 5	 PHPwin32_create_service"[ 9	 PHPwin32_continue_service!Z 9		 PHPw32api_set_call_method%Y = PHPw32api_register_function#X 9 PHPw32api_invoke_functionW / PHPw32api_init_dtypeV ) PHPw32api_deftype$U ; PHPvpopmail_set_user_quotaT + PHPvpopmail_passwdS ) PHPvpopmail_errorR / PHPvpopmail_del_user!Q 9		 PHPvpopmail_del_domain_exP 3		 PHPvpopmail_del_domainO 1 PHPvpopmail_auth_userN 1 PHPvpopmail_alias_get!M 9		 PHPvpopmail_alias_get_all$L ?		 PHPvpopmail_alias_del_domainK 1 PHPvpopmail_alias_delJ 1 PHPvpopmail_alias_addI / PHPvpopmail_add_user#H 9 PHPvpopmail_add_domain_ex G 3 PHPvpopmail_add_domain)F E PHPvpopmail_add_alias_domain_ex&E ? PHPvpopmail_add_alias_domainD 		 PHPvirtualC # PHPvariant_xor    N rR)hC'hF!     r N                  !w 9		 PHPwincache_ucache_exists!v 9		 PHPwincache_ucache_deleteu 3	 PHPwincache_ucache_dec t 7 PHPwincache_ucache_clear s 3 PHPwincache_ucache_cas r 3 PHPwincache_ucache_add"q ; PHPwincache_scache_meminfop 5	 PHPwincache_scache_info"o ; PHPwincache_rplist_meminfo#n =	 PHPwincache_rplist_fileinfo&m C	 PHPwincache_refresh_if_changed"l ; PHPwincache_ocache_meminfo#k =	 PHPwincache_ocache_fileinfoj '	 PHPwincache_lock"i ; PHPwincache_fcache_meminfo#h =	 PHPwincache_fcache_fileinfog 1	 PHPwin32_stop_servicef 3	 PHPwin32_start_service.e S		 PHPwin32_start_service_ctrl_dispatcher$d =	 PHPwin32_set_service_status&c A	 PHPwin32_query_service_statusb 1	 PHPwin32_ps_stat_proca / PHPwin32_ps_stat_mem` 3 PHPwin32_ps_list_procs_ 3	 PHPwin32_pause_service)^ I PHPwin32_get_last_control_message    [ tQ4lK%|W5    } [                            1 PHPxdiff_string_patch& ? PHPxdiff_string_patch_binary  3 PHPxdiff_string_merge3 / PHPxdiff_string_diff% = PHPxdiff_string_diff_binary  3 PHPxdiff_string_bpatch 1 PHPxdiff_string_bdiff" ;		 PHPxdiff_string_bdiff_size 1 PHPxdiff_file_rabdiff
 - PHPxdiff_file_patch$	 ; PHPxdiff_file_patch_binary / PHPxdiff_file_merge3 + PHPxdiff_file_diff# 9 PHPxdiff_file_diff_binary / PHPxdiff_file_bpatch  7		 PHPxdiff_file_bdiff_size - PHPxdiff_file_bdiff +	 PHPxattr_supported  PHPxattr_set  % PHPxattr_remove !	 PHPxattr_list~  PHPxattr_get} +		 PHPwincache_unlock | 3 PHPwincache_ucache_set"{ ; PHPwincache_ucache_meminfo z 5 PHPwincache_ucache_infoy 3	 PHPwincache_ucache_incx 3	 PHPwincache_ucache_get    f W,cF!N    f                                              1+ U PHPxml_set_start_namespace_decl_handler3* Y PHPxml_set_processing_instruction_handler) ) PHPxml_set_object*( G PHPxml_set_notation_decl_handler0' S PHPxml_set_external_entity_ref_handler/& Q PHPxml_set_end_namespace_decl_handler$% ; PHPxml_set_element_handler$$ ; PHPxml_set_default_handler+# I PHPxml_set_character_data_handler"" 7 PHPxml_parser_set_option"! 7 PHPxml_parser_get_option  +		 PHPxml_parser_free /	 PHPxml_parser_create  5 PHPxml_parser_create_ns  PHPxml_parse" 7 PHPxml_parse_into_struct 1		 PHPxml_get_error_code& C		 PHPxml_get_current_line_number( G		 PHPxml_get_current_column_number% A		 PHPxml_get_current_byte_index -		 PHPxml_error_string  7 PHPxhprof_sample_disable ) PHPxhprof_disable! 5 PHPxdiff_string_rabdiff    Z c?kM%mD    } Z                                 D 3 PHPxmlwriter_start_dtd(C C PHPxmlwriter_start_dtd_attlist%B = PHPxmlwriter_start_document"A ;		 PHPxmlwriter_start_comment @ 7		 PHPxmlwriter_start_cdata)? E PHPxmlwriter_start_attribute_ns&> ? PHPxmlwriter_start_attribute(= C PHPxmlwriter_set_indent_string!< 5 PHPxmlwriter_set_indent#; ;	 PHPxmlwriter_output_memory: 1		 PHPxmlwriter_open_uri 9 7 PHPxmlwriter_open_memory%8 A		 PHPxmlwriter_full_end_element7 +	 PHPxmlwriter_flush6 -		 PHPxmlwriter_end_pi 5 7		 PHPxmlwriter_end_element#4 =		 PHPxmlwriter_end_dtd_entity$3 ?		 PHPxmlwriter_end_dtd_element2 /		 PHPxmlwriter_end_dtd$1 ?		 PHPxmlwriter_end_dtd_attlist!0 9		 PHPxmlwriter_end_document / 7		 PHPxmlwriter_end_comment. 3		 PHPxmlwriter_end_cdata"- ;		 PHPxmlwriter_end_attribute1, U PHPxml_set_unparsed_entity_decl_handler    Q Z8yN+ c@      i Q                     ^ !		 PHPxslt_error] !		 PHPxslt_errno\ # PHPxslt_create[ 5 PHPxslt_backend_versionZ / PHPxslt_backend_nameY / PHPxslt_backend_infoX / PHPxpath_register_ns"W 9	 PHPxpath_register_ns_auto V 3 PHPxmlwriter_write_rawU 1 PHPxmlwriter_write_pi'T A PHPxmlwriter_write_element_ns$S ; PHPxmlwriter_write_element'R A PHPxmlwriter_write_dtd_entity(Q C PHPxmlwriter_write_dtd_element P 3 PHPxmlwriter_write_dtd(O C PHPxmlwriter_write_dtd_attlist$N ; PHPxmlwriter_write_comment"M 7 PHPxmlwriter_write_cdata)L E PHPxmlwriter_write_attribute_ns&K ? PHPxmlwriter_write_attributeJ ) PHPxmlwriter_textI 1 PHPxmlwriter_start_pi'H A PHPxmlwriter_start_element_ns$G ; PHPxmlwriter_start_element'F A PHPxmlwriter_start_dtd_entity(E C PHPxmlwriter_start_dtd_element    D vP5c4i:   y ` D          w % PHPyaz_ccl_confv #		 PHPyaz_addinfo-u Q		 PHPxsl_xsltprocessor_transform_to_xml/t Q PHPxsl_xsltprocessor_transform_to_uri/s U		 PHPxsl_xsltprocessor_set_security_prefs*r K		 PHPxsl_xsltprocessor_set_profiling,q K PHPxsl_xsltprocessor_set_parameter/p Q PHPxsl_xsltprocessor_remove_parameter3o ]		 PHPxsl_xsltprocessor_register_php_functions.n S PHPxsl_xsltprocessor_has_exslt_support/m U PHPxsl_xsltprocessor_get_security_prefs,l K PHPxsl_xsltprocessor_get_parameter$k ; PHPxslt_set_scheme_handler%j = PHPxslt_set_scheme_handlers!i 5 PHPxslt_set_sax_handler"h 7 PHPxslt_set_sax_handlersg # PHPxslt_setoptf + PHPxslt_set_objecte %	 PHPxslt_set_log#d 9 PHPxslt_set_error_handlerc / PHPxslt_set_encodingb ' PHPxslt_set_basea % PHPxslt_process` #		 PHPxslt_getopt_ 		 PHPxslt_free   # \ {dM7~fH.xX>#     x \                 ExceptiongetTrace   ExceptiongetLine   ExceptiongetFile   ExceptiongetCode !  ExceptiongetMessage   Exception__wakeup #  Exception__construct   Exception__clone #	 	PHPshow_source 1	  PHPhttp_response_code # PHPzlib_encode # PHPzlib_decode 	 PHPyaz_wait ! PHPyaz_syntax  PHPyaz_sort ) PHPyaz_set_option
 ! PHPyaz_search	 ! PHPyaz_schema +	 PHPyaz_scan_result  PHPyaz_scan ! PHPyaz_record  PHPyaz_range #		 PHPyaz_present ' PHPyaz_itemorder 	 PHPyaz_hits ) PHPyaz_get_option  '		 PHPyaz_es_result  PHPyaz_es~ 		 PHPyaz_error} 		 PHPyaz_errno| # PHPyaz_element{ % PHPyaz_databasez #	 PHPyaz_connecty 		 PHPyaz_closex ' PHPyaz_ccl_parse    U zV6qM$nW?$     q U               9 !  ParseErrorgetCode8 !!  ParseErrorgetMessage7 !  ParseError__wakeup6 !#  ParseError__construct5 !  ParseError__clone4 !  Error__toString3 -  ErrorgetTraceAsString2 #  ErrorgetPrevious1   ErrorgetTrace0   ErrorgetLine/   ErrorgetFile.   ErrorgetCode- !  ErrorgetMessage,   Error__wakeup+ #  Error__construct*   Error__clone ) )!  ErrorException__toString&( )-  ErrorExceptiongetTraceAsString!' )#  ErrorExceptiongetPrevious& )  ErrorExceptiongetTrace% )  ErrorExceptiongetLine$ )  ErrorExceptiongetFile# )  ErrorExceptiongetCode " )!  ErrorExceptiongetMessage! )  ErrorException__wakeup  )  ErrorException__clone! )#  ErrorExceptiongetSeverity" )#  ErrorException__construct !  Exception__toString! -  ExceptiongetTraceAsString #  ExceptiongetPrevious    ^ fG,eF"kG#     ^                              $U 1!  ArgumentCountError__toString*T 1-  ArgumentCountErrorgetTraceAsString%S 1#  ArgumentCountErrorgetPrevious"R 1  ArgumentCountErrorgetTrace!Q 1  ArgumentCountErrorgetLine!P 1  ArgumentCountErrorgetFile!O 1  ArgumentCountErrorgetCode$N 1!  ArgumentCountErrorgetMessage"M 1  ArgumentCountError__wakeup&L 1#  ArgumentCountError__construct!K 1  ArgumentCountError__cloneJ !  TypeError__toString!I -  TypeErrorgetTraceAsStringH #  TypeErrorgetPreviousG   TypeErrorgetTraceF   TypeErrorgetLineE   TypeErrorgetFileD   TypeErrorgetCodeC !  TypeErrorgetMessageB   TypeError__wakeupA #  TypeError__construct@   TypeError__clone? !!  ParseError__toString"> !-  ParseErrorgetTraceAsString= !#  ParseErrorgetPrevious< !  ParseErrorgetTrace; !  ParseErrorgetLine: !  ParseErrorgetFile    G sR1{V,oI      | e G         p %		  ClosurefromCallableo 	  Closurecalldn 	  ClosurebindTom   Closurebindl #  Closure__construct%k 3!  DivisionByZeroError__toString+j 3-  DivisionByZeroErrorgetTraceAsString&i 3#  DivisionByZeroErrorgetPrevious#h 3  DivisionByZeroErrorgetTrace"g 3  DivisionByZeroErrorgetLine"f 3  DivisionByZeroErrorgetFile"e 3  DivisionByZeroErrorgetCode%d 3!  DivisionByZeroErrorgetMessage#c 3  DivisionByZeroError__wakeup'b 3#  DivisionByZeroError__construct"a 3  DivisionByZeroError__clone!` +!  ArithmeticError__toString'_ +-  ArithmeticErrorgetTraceAsString"^ +#  ArithmeticErrorgetPrevious] +  ArithmeticErrorgetTrace\ +  ArithmeticErrorgetLine[ +  ArithmeticErrorgetFileZ +  ArithmeticErrorgetCode!Y +!  ArithmeticErrorgetMessageX +  ArithmeticError__wakeup#W +#  ArithmeticError__constructV +  ArithmeticError__clone    L kR5h>^1     { b L             		  DateTimeadd 		  DateTimemodify
 		  DateTimeformat	 '  DateTimegetLastErrors" -  DateTimecreateFromFormat #  DateTime__set_state   DateTime__wakeup #  DateTime__construct* =!  ClosedGeneratorException__toString0 =-  ClosedGeneratorExceptiongetTraceAsString+ =#  ClosedGeneratorExceptiongetPrevious( =  ClosedGeneratorExceptiongetTrace'  =  ClosedGeneratorExceptiongetLine' =  ClosedGeneratorExceptiongetFile'~ =  ClosedGeneratorExceptiongetCode*} =!  ClosedGeneratorExceptiongetMessage(| =  ClosedGeneratorException__wakeup,{ =#  ClosedGeneratorException__construct'z =  ClosedGeneratorException__cloney   Generator__wakeupx   GeneratorgetReturnw 		  Generatorthrowv 		  Generatorsendu   Generatornextt   Generatorkeys   Generatorcurrentr   Generatorvalidq   Generatorrewind    C vZ;rDdB#    k C   %( /%		  DateTimeImmutablesetTimestamp%' /!  DateTimeImmutablesetISODate"& /  DateTimeImmutablesetDate"% /  DateTimeImmutablesetTime$$ /#		  DateTimeImmutablesetTimezone# /		  DateTimeImmutablesub" /		  DateTimeImmutableadd! /		  DateTimeImmutablemodify  /	  DateTimeImmutablediff% /%  DateTimeImmutablegetTimestamp" /  DateTimeImmutablegetOffset$ /#  DateTimeImmutablegetTimezone /		  DateTimeImmutableformat& /'  DateTimeImmutablegetLastErrors+ /-  DateTimeImmutablecreateFromFormat$ /#  DateTimeImmutable__set_state! /  DateTimeImmutable__wakeup% /#  DateTimeImmutable__construct 	  DateTimediff %  DateTimegetTimestamp %		  DateTimesetTimestamp !  DateTimesetISODate   DateTimesetDate   DateTimesetTime   DateTimegetOffset #		  DateTimesetTimezone #  DateTimegetTimezone 		  DateTimesub    U pR2yZ8pQ-      r U                   E #		  SQLite3busyTimeoutD %  SQLite3lastErrorMsgC '  SQLite3lastErrorCodeB +  SQLite3lastInsertRowIDA   SQLite3version@ 		  SQLite3exec?   SQLite3close> 	  SQLite3open!= !+  DatePeriodgetDateInterval< !!  DatePeriodgetEndDate; !%  DatePeriodgetStartDate: !#  DatePeriod__set_state9 !  DatePeriod__wakeup8 !#  DatePeriod__construct(7 %5		  DateIntervalcreateFromDateString6 %		  DateIntervalformat5 %#  DateInterval__set_state4 %  DateInterval__wakeup3 %#		  DateInterval__construct$2 %+  DateTimeZonelistIdentifiers%1 %/  DateTimeZonelistAbbreviations0 %#  DateTimeZonegetLocation#/ %)  DateTimeZonegetTransitions. %		  DateTimeZonegetOffset- %  DateTimeZonegetName, %#  DateTimeZone__set_state+ %  DateTimeZone__wakeup* %#		  DateTimeZone__construct*) //		  DateTimeImmutablecreateFromMutable    F z\:x]B'
gE#     d Fd #  CURLFilegetMimeTypec #  CURLFilegetFilenameb #	  CURLFile__construct a '#  SQLite3Result__construct` '  SQLite3Resultfinalize_ '  SQLite3Resultreset^ '!	  SQLite3ResultfetchArray] '!		  SQLite3ResultcolumnType\ '!		  SQLite3ResultcolumnName[ '!  SQLite3ResultnumColumnsZ ##		  SQLite3Stmt__constructY #  SQLite3StmtreadOnlyX #  SQLite3StmtbindValueW #  SQLite3StmtbindParamV #  SQLite3StmtexecuteU #  SQLite3StmtclearT #  SQLite3StmtresetS #  SQLite3StmtcloseR #!  SQLite3StmtparamCountQ #	  SQLite3__constructP -	  SQLite3enableExceptionsO   SQLite3openBlob N +  SQLite3createCollation M +  SQLite3createAggregateL )  SQLite3createFunctionK #	  SQLite3querySingleJ 		  SQLite3queryI 		  SQLite3prepareH %		  SQLite3escapeStringG   SQLite3changesF '		  SQLite3loadExtension    G eB#g@g0    g G          %  DOMNodereplaceChild~ %	  DOMNodeinsertBefore)} /)  DOMImplementationcreateDocument-| /1  DOMImplementationcreateDocumentType#{ /!  DOMImplementationhasFeature%z /!  DOMImplementationgetFeature4y ;7		  DOMImplementationSourcegetDomimplementations3x ;5		  DOMImplementationSourcegetDomimplementation!w 7		  DOMImplementationListitem"v #+		  DOMNameListgetNamespaceURIu #		  DOMNameListgetNamet '		  DOMStringListitems %!  DOMException__toString$r %-  DOMExceptiongetTraceAsStringq %#  DOMExceptiongetPreviousp %  DOMExceptiongetTraceo %  DOMExceptiongetLinen %  DOMExceptiongetFilem %  DOMExceptiongetCodel %!  DOMExceptiongetMessagek %  DOMException__wakeup j %#  DOMException__constructi %  DOMException__cloneh   CURLFile__wakeupg +		  CURLFilesetPostFilenamef +  CURLFilegetPostFilenamee #		  CURLFilesetMimeType    \ qR3
kM.~W,     \                            $ 3	  DOMDocumentFragmentcloneNode( 3'  DOMDocumentFragmenthasChildNodes& 3#		  DOMDocumentFragmentappendChild& 3#		  DOMDocumentFragmentremoveChild) 3%  DOMDocumentFragmentreplaceChild( 3%	  DOMDocumentFragmentinsertBefore$ 3		  DOMDocumentFragmentappendXML& 3#  DOMDocumentFragment__construct 	  DOMNodeC14NFile   DOMNodeC14N   DOMNodegetLineNo #  DOMNodegetNodePath #		  DOMNodegetUserData #  DOMNodesetUserData !  DOMNodegetFeature #		  DOMNodeisEqualNode! 1		  DOMNodelookupNamespaceUri!
 1		  DOMNodeisDefaultNamespace	 %		  DOMNodelookupPrefix !		  DOMNodeisSameNode& ;		  DOMNodecompareDocumentPosition '  DOMNodehasAttributes #  DOMNodeisSupported   DOMNodenormalize 	  DOMNodecloneNode '  DOMNodehasChildNodes #		  DOMNodeappendChild  #		  DOMNoderemoveChild    D N&sI[7    i D              "2 #+		  DOMDocumentcreateAttribute01 #C  DOMDocumentcreateProcessingInstruction%0 #1		  DOMDocumentcreateCDATASection / #'		  DOMDocumentcreateComment!. #)		  DOMDocumentcreateTextNode)- #9  DOMDocumentcreateDocumentFragment!, #'	  DOMDocumentcreateElement$+ 3	  DOMDocumentFragmentC14NFile * 3  DOMDocumentFragmentC14N$) 3  DOMDocumentFragmentgetLineNo&( 3#  DOMDocumentFragmentgetNodePath&' 3#		  DOMDocumentFragmentgetUserData(& 3#  DOMDocumentFragmentsetUserData'% 3!  DOMDocumentFragmentgetFeature&$ 3#		  DOMDocumentFragmentisEqualNode-# 31		  DOMDocumentFragmentlookupNamespaceUri-" 31		  DOMDocumentFragmentisDefaultNamespace'! 3%		  DOMDocumentFragmentlookupPrefix%  3!		  DOMDocumentFragmentisSameNode2 3;		  DOMDocumentFragmentcompareDocumentPosition( 3'  DOMDocumentFragmenthasAttributes( 3#  DOMDocumentFragmentisSupported$ 3  DOMDocumentFragmentnormalize    D b9dJ,nP.
    g D       M #%	  DOMDocumentinsertBefore&L #/  DOMDocumentregisterNodeClass(K #7		  DOMDocumentrelaxNGValidateSource"J #+		  DOMDocumentrelaxNGValidate'I #5		  DOMDocumentschemaValidateSource!H #)		  DOMDocumentschemaValidateG #%		  DOMDocumentsaveHTMLFileF #  DOMDocumentsaveHTML E #%	  DOMDocumentloadHTMLFileD #	  DOMDocumentloadHTMLC #	  DOMDocumentxincludeB #  DOMDocumentvalidateA ##  DOMDocument__construct@ #  DOMDocumentsaveXML? #	  DOMDocumentloadXML> #		  DOMDocumentsave= #	  DOMDocumentload< #!  DOMDocumentrenameNode$; #/  DOMDocumentnormalizeDocument: #		  DOMDocumentadoptNode!9 #)		  DOMDocumentgetElementById+8 #9  DOMDocumentgetElementsByTagNameNS&7 #/  DOMDocumentcreateAttributeNS$6 #+  DOMDocumentcreateElementNS5 #!  DOMDocumentimportNode'4 #5		  DOMDocumentgetElementsByTagName(3 #7		  DOMDocumentcreateEntityReference    B wX9\4mR3     k B  &i +)  DOMNamedNodeMapgetNamedItemNSh +	  DOMNamedNodeMapitem&g ++	  DOMNamedNodeMapremoveNamedItem#f +%		  DOMNamedNodeMapsetNamedItem#e +%		  DOMNamedNodeMapgetNamedItemd #  DOMNodeListcountc #		  DOMNodeListitemb #	  DOMDocumentC14NFilea #  DOMDocumentC14N` #  DOMDocumentgetLineNo_ ##  DOMDocumentgetNodePath^ ##		  DOMDocumentgetUserData ] ##  DOMDocumentsetUserData\ #!  DOMDocumentgetFeature[ ##		  DOMDocumentisEqualNode%Z #1		  DOMDocumentlookupNamespaceUri%Y #1		  DOMDocumentisDefaultNamespaceX #%		  DOMDocumentlookupPrefixW #!		  DOMDocumentisSameNode*V #;		  DOMDocumentcompareDocumentPosition U #'  DOMDocumenthasAttributes T ##  DOMDocumentisSupportedS #  DOMDocumentnormalizeR #	  DOMDocumentcloneNode Q #'  DOMDocumenthasChildNodesP ##		  DOMDocumentappendChildO ##		  DOMDocumentremoveChild!N #%  DOMDocumentreplaceChild    F c>wQ+k9    m F              $ -!  DOMCharacterDatagetFeature#  -#		  DOMCharacterDataisEqualNode* -1		  DOMCharacterDatalookupNamespaceUri*~ -1		  DOMCharacterDataisDefaultNamespace$} -%		  DOMCharacterDatalookupPrefix"| -!		  DOMCharacterDataisSameNode/{ -;		  DOMCharacterDatacompareDocumentPosition%z -'  DOMCharacterDatahasAttributes%y -#  DOMCharacterDataisSupported!x -  DOMCharacterDatanormalize!w -	  DOMCharacterDatacloneNode%v -'  DOMCharacterDatahasChildNodes#u -#		  DOMCharacterDataappendChild#t -#		  DOMCharacterDataremoveChild&s -%  DOMCharacterDatareplaceChild%r -%	  DOMCharacterDatainsertBefore%q -#  DOMCharacterDatareplaceData$p -!  DOMCharacterDatadeleteData$o -!  DOMCharacterDatainsertData"n -!		  DOMCharacterDataappendData'm -'  DOMCharacterDatasubstringDatal +  DOMNamedNodeMapcount)k +/  DOMNamedNodeMapremoveNamedItemNS%j +)	  DOMNamedNodeMapsetNamedItemNS    X hH$wX="]9      s X                     	  DOMAttrC14NFile   DOMAttrC14N   DOMAttrgetLineNo #  DOMAttrgetNodePath #		  DOMAttrgetUserData #  DOMAttrsetUserData !  DOMAttrgetFeature #		  DOMAttrisEqualNode! 1		  DOMAttrlookupNamespaceUri! 1		  DOMAttrisDefaultNamespace %		  DOMAttrlookupPrefix !		  DOMAttrisSameNode& ;		  DOMAttrcompareDocumentPosition '  DOMAttrhasAttributes #  DOMAttrisSupported   DOMAttrnormalize 	  DOMAttrcloneNode '  DOMAttrhasChildNodes #		  DOMAttrappendChild #		  DOMAttrremoveChild %  DOMAttrreplaceChild
 %	  DOMAttrinsertBefore	 #	  DOMAttr__construct   DOMAttrisId! -	  DOMCharacterDataC14NFile -  DOMCharacterDataC14N! -  DOMCharacterDatagetLineNo# -#  DOMCharacterDatagetNodePath# -#		  DOMCharacterDatagetUserData% -#  DOMCharacterDatasetUserData    O sN&b;|S2     m O                   9 !  DOMElementnormalize8 !	  DOMElementcloneNode7 !'  DOMElementhasChildNodes6 !#		  DOMElementappendChild5 !#		  DOMElementremoveChild 4 !%  DOMElementreplaceChild3 !%	  DOMElementinsertBefore2 !#	  DOMElement__construct&1 !1  DOMElementsetIdAttributeNode$0 !-  DOMElementsetIdAttributeNS"/ !)  DOMElementsetIdAttribute". !)  DOMElementhasAttributeNS- !%		  DOMElementhasAttribute*, !9  DOMElementgetElementsByTagNameNS$+ !1		  DOMElementsetAttributeNodeNS&* !1  DOMElementgetAttributeNodeNS%) !/  DOMElementremoveAttributeNS"( !)  DOMElementsetAttributeNS"' !)  DOMElementgetAttributeNS&& !5		  DOMElementgetElementsByTagName%% !3		  DOMElementremoveAttributeNode"$ !-		  DOMElementsetAttributeNode"# !-		  DOMElementgetAttributeNode!" !+		  DOMElementremoveAttribute ! !%  DOMElementsetAttribute  !%		  DOMElementgetAttribute    D qP)_A'	rU4     ~ a D  V #		  DOMTextappendChildU #		  DOMTextremoveChildT %  DOMTextreplaceChildS %	  DOMTextinsertBeforeR #  DOMTextreplaceDataQ !  DOMTextdeleteDataP !  DOMTextinsertDataO !		  DOMTextappendDataN '  DOMTextsubstringDataM #	  DOMText__constructL -		  DOMTextreplaceWholeText)K A  DOMTextisElementContentWhitespace+J E  DOMTextisWhitespaceInElementContentI 		  DOMTextsplitTextH !	  DOMElementC14NFileG !  DOMElementC14NF !  DOMElementgetLineNoE !#  DOMElementgetNodePathD !#		  DOMElementgetUserDataC !#  DOMElementsetUserDataB !!  DOMElementgetFeatureA !#		  DOMElementisEqualNode$@ !1		  DOMElementlookupNamespaceUri$? !1		  DOMElementisDefaultNamespace> !%		  DOMElementlookupPrefix= !!		  DOMElementisSameNode)< !;		  DOMElementcompareDocumentPosition; !'  DOMElementhasAttributes: !#  DOMElementisSupported    U mD(
hK.~]<     s U                 t !	  DOMCommentcloneNodes !'  DOMCommenthasChildNodesr !#		  DOMCommentappendChildq !#		  DOMCommentremoveChild p !%  DOMCommentreplaceChildo !%	  DOMCommentinsertBeforen !#  DOMCommentreplaceDatam !!  DOMCommentdeleteDatal !!  DOMCommentinsertDatak !!		  DOMCommentappendData!j !'  DOMCommentsubstringDatai !#	  DOMComment__constructh 	  DOMTextC14NFileg   DOMTextC14Nf   DOMTextgetLineNoe #  DOMTextgetNodePathd #		  DOMTextgetUserDatac #  DOMTextsetUserDatab !  DOMTextgetFeaturea #		  DOMTextisEqualNode!` 1		  DOMTextlookupNamespaceUri!_ 1		  DOMTextisDefaultNamespace^ %		  DOMTextlookupPrefix] !		  DOMTextisSameNode&\ ;		  DOMTextcompareDocumentPosition[ '  DOMTexthasAttributesZ #  DOMTextisSupportedY   DOMTextnormalizeX 	  DOMTextcloneNodeW '  DOMTexthasChildNodes    L rS2aA#	zS(   v L                ' +-		  DOMCdataSectionreplaceWholeText1 +A  DOMCdataSectionisElementContentWhitespace3 +E  DOMCdataSectionisWhitespaceInElementContent  +		  DOMCdataSectionsplitText"
 +#		  DOMCdataSection__construct(	 -+  DOMConfigurationcanSetParameter$ -%	  DOMConfigurationgetParameter& -%  DOMConfigurationsetParameter" +#		  DOMErrorHandlerhandleError  1  DOMUserDataHandlerhandle !	  DOMCommentC14NFile !  DOMCommentC14N !  DOMCommentgetLineNo !#  DOMCommentgetNodePath  !#		  DOMCommentgetUserData !#  DOMCommentsetUserData~ !!  DOMCommentgetFeature} !#		  DOMCommentisEqualNode$| !1		  DOMCommentlookupNamespaceUri${ !1		  DOMCommentisDefaultNamespacez !%		  DOMCommentlookupPrefixy !!		  DOMCommentisSameNode)x !;		  DOMCommentcompareDocumentPositionw !'  DOMCommenthasAttributesv !#  DOMCommentisSupportedu !  DOMCommentnormalize    : g@]:qE     ] : ' +  DOMCdataSectiongetLineNo"& +#  DOMCdataSectiongetNodePath"% +#		  DOMCdataSectiongetUserData$$ +#  DOMCdataSectionsetUserData## +!  DOMCdataSectiongetFeature"" +#		  DOMCdataSectionisEqualNode)! +1		  DOMCdataSectionlookupNamespaceUri)  +1		  DOMCdataSectionisDefaultNamespace# +%		  DOMCdataSectionlookupPrefix! +!		  DOMCdataSectionisSameNode. +;		  DOMCdataSectioncompareDocumentPosition$ +'  DOMCdataSectionhasAttributes$ +#  DOMCdataSectionisSupported  +  DOMCdataSectionnormalize  +	  DOMCdataSectioncloneNode$ +'  DOMCdataSectionhasChildNodes" +#		  DOMCdataSectionappendChild" +#		  DOMCdataSectionremoveChild% +%  DOMCdataSectionreplaceChild$ +%	  DOMCdataSectioninsertBefore$ +#  DOMCdataSectionreplaceData# +!  DOMCdataSectiondeleteData# +!  DOMCdataSectioninsertData! +!		  DOMCdataSectionappendData& +'  DOMCdataSectionsubstringData    S oJ%j9rL%     v S                          @ #%	  DOMNotationinsertBefore ? +	  DOMDocumentTypeC14NFile> +  DOMDocumentTypeC14N = +  DOMDocumentTypegetLineNo"< +#  DOMDocumentTypegetNodePath"; +#		  DOMDocumentTypegetUserData$: +#  DOMDocumentTypesetUserData#9 +!  DOMDocumentTypegetFeature"8 +#		  DOMDocumentTypeisEqualNode)7 +1		  DOMDocumentTypelookupNamespaceUri)6 +1		  DOMDocumentTypeisDefaultNamespace#5 +%		  DOMDocumentTypelookupPrefix!4 +!		  DOMDocumentTypeisSameNode.3 +;		  DOMDocumentTypecompareDocumentPosition$2 +'  DOMDocumentTypehasAttributes$1 +#  DOMDocumentTypeisSupported 0 +  DOMDocumentTypenormalize / +	  DOMDocumentTypecloneNode$. +'  DOMDocumentTypehasChildNodes"- +#		  DOMDocumentTypeappendChild", +#		  DOMDocumentTyperemoveChild%+ +%  DOMDocumentTypereplaceChild$* +%	  DOMDocumentTypeinsertBefore ) +	  DOMCdataSectionC14NFile( +  DOMCdataSectionC14N    W wX9\4mR3     t W                       \   DOMEntitynormalize[ 	  DOMEntitycloneNodeZ '  DOMEntityhasChildNodesY #		  DOMEntityappendChildX #		  DOMEntityremoveChildW %  DOMEntityreplaceChildV %	  DOMEntityinsertBeforeU #	  DOMNotationC14NFileT #  DOMNotationC14NS #  DOMNotationgetLineNoR ##  DOMNotationgetNodePathQ ##		  DOMNotationgetUserData P ##  DOMNotationsetUserDataO #!  DOMNotationgetFeatureN ##		  DOMNotationisEqualNode%M #1		  DOMNotationlookupNamespaceUri%L #1		  DOMNotationisDefaultNamespaceK #%		  DOMNotationlookupPrefixJ #!		  DOMNotationisSameNode*I #;		  DOMNotationcompareDocumentPosition H #'  DOMNotationhasAttributes G ##  DOMNotationisSupportedF #  DOMNotationnormalizeE #	  DOMNotationcloneNode D #'  DOMNotationhasChildNodesC ##		  DOMNotationappendChildB ##		  DOMNotationremoveChild!A #%  DOMNotationreplaceChild    M uU/	kN5sK!     M                 1v 1;		  DOMEntityReferencecompareDocumentPosition'u 1'  DOMEntityReferencehasAttributes't 1#  DOMEntityReferenceisSupported#s 1  DOMEntityReferencenormalize#r 1	  DOMEntityReferencecloneNode'q 1'  DOMEntityReferencehasChildNodes%p 1#		  DOMEntityReferenceappendChild%o 1#		  DOMEntityReferenceremoveChild(n 1%  DOMEntityReferencereplaceChild'm 1%	  DOMEntityReferenceinsertBefore%l 1#		  DOMEntityReference__constructk 	  DOMEntityC14NFilej   DOMEntityC14Ni   DOMEntitygetLineNoh #  DOMEntitygetNodePathg #		  DOMEntitygetUserDataf #  DOMEntitysetUserDatae !  DOMEntitygetFeatured #		  DOMEntityisEqualNode#c 1		  DOMEntitylookupNamespaceUri#b 1		  DOMEntityisDefaultNamespacea %		  DOMEntitylookupPrefix` !		  DOMEntityisSameNode(_ ;		  DOMEntitycompareDocumentPosition^ '  DOMEntityhasAttributes] #  DOMEntityisSupported    E R*a?[-    u E                 - ='  DOMProcessingInstructionhasAttributes- =#  DOMProcessingInstructionisSupported)
 =  DOMProcessingInstructionnormalize)	 =	  DOMProcessingInstructioncloneNode- ='  DOMProcessingInstructionhasChildNodes+ =#		  DOMProcessingInstructionappendChild+ =#		  DOMProcessingInstructionremoveChild. =%  DOMProcessingInstructionreplaceChild- =%	  DOMProcessingInstructioninsertBefore, =#	  DOMProcessingInstruction__construct# 1	  DOMEntityReferenceC14NFile 1  DOMEntityReferenceC14N#  1  DOMEntityReferencegetLineNo% 1#  DOMEntityReferencegetNodePath%~ 1#		  DOMEntityReferencegetUserData'} 1#  DOMEntityReferencesetUserData&| 1!  DOMEntityReferencegetFeature%{ 1#		  DOMEntityReferenceisEqualNode,z 11		  DOMEntityReferencelookupNamespaceUri,y 11		  DOMEntityReferenceisDefaultNamespace&x 1%		  DOMEntityReferencelookupPrefix$w 1!		  DOMEntityReferenceisSameNode    F j5 sEqK-     t [ F              $ 	  finfofile# 		  finfoset_flags"   finfofinfo! ##  HashContext__construct$  5  DOMXPathregisterPhpFunctions 	  DOMXPathevaluate 	  DOMXPathquery# /  DOMXPathregisterNamespace #		  DOMXPath__construct# +%		  DOMStringExtendfindOffset32# +%		  DOMStringExtendfindOffset16) =	  DOMProcessingInstructionC14NFile% =  DOMProcessingInstructionC14N) =  DOMProcessingInstructiongetLineNo+ =#  DOMProcessingInstructiongetNodePath+ =#		  DOMProcessingInstructiongetUserData- =#  DOMProcessingInstructionsetUserData, =!  DOMProcessingInstructiongetFeature+ =#		  DOMProcessingInstructionisEqualNode2 =1		  DOMProcessingInstructionlookupNamespaceUri2 =1		  DOMProcessingInstructionisDefaultNamespace, =%		  DOMProcessingInstructionlookupPrefix* =!		  DOMProcessingInstructionisSameNode7 =;		  DOMProcessingInstructioncompareDocumentPosition    _ `@  oEj@    _                                       %< 9  BadMethodCallException__clone*; =!  BadFunctionCallException__toString0: =-  BadFunctionCallExceptiongetTraceAsString+9 =#  BadFunctionCallExceptiongetPrevious(8 =  BadFunctionCallExceptiongetTrace'7 =  BadFunctionCallExceptiongetLine'6 =  BadFunctionCallExceptiongetFile'5 =  BadFunctionCallExceptiongetCode*4 =!  BadFunctionCallExceptiongetMessage(3 =  BadFunctionCallException__wakeup,2 =#  BadFunctionCallException__construct'1 =  BadFunctionCallException__clone 0 )!  LogicException__toString&/ )-  LogicExceptiongetTraceAsString!. )#  LogicExceptiongetPrevious- )  LogicExceptiongetTrace, )  LogicExceptiongetLine+ )  LogicExceptiongetFile* )  LogicExceptiongetCode ) )!  LogicExceptiongetMessage( )  LogicException__wakeup"' )#  LogicException__construct& )  LogicException__clone% 	  finfobuffer    M W/V5fD    x M                     (T =  InvalidArgumentException__wakeup,S =#  InvalidArgumentException__construct'R =  InvalidArgumentException__clone!Q +!  DomainException__toString'P +-  DomainExceptiongetTraceAsString"O +#  DomainExceptiongetPreviousN +  DomainExceptiongetTraceM +  DomainExceptiongetLineL +  DomainExceptiongetFileK +  DomainExceptiongetCode!J +!  DomainExceptiongetMessageI +  DomainException__wakeup#H +#  DomainException__constructG +  DomainException__clone(F 9!  BadMethodCallException__toString.E 9-  BadMethodCallExceptiongetTraceAsString)D 9#  BadMethodCallExceptiongetPrevious&C 9  BadMethodCallExceptiongetTrace%B 9  BadMethodCallExceptiongetLine%A 9  BadMethodCallExceptiongetFile%@ 9  BadMethodCallExceptiongetCode(? 9!  BadMethodCallExceptiongetMessage&> 9  BadMethodCallException__wakeup*= 9#  BadMethodCallException__construct    U U*{U3e;    z U                             "l 3  OutOfRangeExceptiongetCode%k 3!  OutOfRangeExceptiongetMessage#j 3  OutOfRangeException__wakeup'i 3#  OutOfRangeException__construct"h 3  OutOfRangeException__clone!g +!  LengthException__toString'f +-  LengthExceptiongetTraceAsString"e +#  LengthExceptiongetPreviousd +  LengthExceptiongetTracec +  LengthExceptiongetLineb +  LengthExceptiongetFilea +  LengthExceptiongetCode!` +!  LengthExceptiongetMessage_ +  LengthException__wakeup#^ +#  LengthException__construct] +  LengthException__clone*\ =!  InvalidArgumentException__toString0[ =-  InvalidArgumentExceptiongetTraceAsString+Z =#  InvalidArgumentExceptiongetPrevious(Y =  InvalidArgumentExceptiongetTrace'X =  InvalidArgumentExceptiongetLine'W =  InvalidArgumentExceptiongetFile'V =  InvalidArgumentExceptiongetCode*U =!  InvalidArgumentExceptiongetMessage    G g9^<[0	    n G             $ 5  OutOfBoundsExceptiongetTrace# 5  OutOfBoundsExceptiongetLine# 5  OutOfBoundsExceptiongetFile# 5  OutOfBoundsExceptiongetCode& 5!  OutOfBoundsExceptiongetMessage$  5  OutOfBoundsException__wakeup( 5#  OutOfBoundsException__construct#~ 5  OutOfBoundsException__clone"} -!  RuntimeException__toString(| --  RuntimeExceptiongetTraceAsString#{ -#  RuntimeExceptiongetPrevious z -  RuntimeExceptiongetTracey -  RuntimeExceptiongetLinex -  RuntimeExceptiongetFilew -  RuntimeExceptiongetCode"v -!  RuntimeExceptiongetMessage u -  RuntimeException__wakeup$t -#  RuntimeException__constructs -  RuntimeException__clone%r 3!  OutOfRangeException__toString+q 3-  OutOfRangeExceptiongetTraceAsString&p 3#  OutOfRangeExceptiongetPrevious#o 3  OutOfRangeExceptiongetTrace"n 3  OutOfRangeExceptiongetLine"m 3  OutOfRangeExceptiongetFile    E ~[3\5	}Z:     i E         ! 1  UnderflowException__clone  )!  RangeException__toString& )-  RangeExceptiongetTraceAsString! )#  RangeExceptiongetPrevious )  RangeExceptiongetTrace )  RangeExceptiongetLine )  RangeExceptiongetFile )  RangeExceptiongetCode  )!  RangeExceptiongetMessage )  RangeException__wakeup" )#  RangeException__construct )  RangeException__clone# /!  OverflowException__toString) /-  OverflowExceptiongetTraceAsString$ /#  OverflowExceptiongetPrevious! /  OverflowExceptiongetTrace  /  OverflowExceptiongetLine  /  OverflowExceptiongetFile  /  OverflowExceptiongetCode# /!  OverflowExceptiongetMessage! /  OverflowException__wakeup%
 /#  OverflowException__construct 	 /  OverflowException__clone& 5!  OutOfBoundsException__toString, 5-  OutOfBoundsExceptiongetTraceAsString' 5#  OutOfBoundsExceptiongetPrevious    < gC~T%yO$    f <      '6 ?  RecursiveIteratorIteratorrewind-5 ?#	  RecursiveIteratorIterator__construct*4 =!  UnexpectedValueException__toString03 =-  UnexpectedValueExceptiongetTraceAsString+2 =#  UnexpectedValueExceptiongetPrevious(1 =  UnexpectedValueExceptiongetTrace'0 =  UnexpectedValueExceptiongetLine'/ =  UnexpectedValueExceptiongetFile'. =  UnexpectedValueExceptiongetCode*- =!  UnexpectedValueExceptiongetMessage(, =  UnexpectedValueException__wakeup,+ =#  UnexpectedValueException__construct'* =  UnexpectedValueException__clone$) 1!  UnderflowException__toString*( 1-  UnderflowExceptiongetTraceAsString%' 1#  UnderflowExceptiongetPrevious"& 1  UnderflowExceptiongetTrace!% 1  UnderflowExceptiongetLine!$ 1  UnderflowExceptiongetFile!# 1  UnderflowExceptiongetCode$" 1!  UnderflowExceptiongetMessage"! 1  UnderflowException__wakeup&  1#  UnderflowException__construct    P ]1i6tE     o P                            L -  IteratorIteratornextK -  IteratorIteratorcurrentJ -  IteratorIteratorkeyI -  IteratorIteratorvalidH -  IteratorIteratorrewind#G -#		  IteratorIterator__construct,F ?#  RecursiveIteratorIteratorgetMaxDepth,E ?#	  RecursiveIteratorIteratorsetMaxDepth,D ?#  RecursiveIteratorIteratornextElement,C ?#  RecursiveIteratorIteratorendChildren.B ?'  RecursiveIteratorIteratorbeginChildren0A ?+  RecursiveIteratorIteratorcallGetChildren0@ ?+  RecursiveIteratorIteratorcallHasChildren-? ?%  RecursiveIteratorIteratorendIteration/> ?)  RecursiveIteratorIteratorbeginIteration1= ?-  RecursiveIteratorIteratorgetInnerIterator/< ?)	  RecursiveIteratorIteratorgetSubIterator); ?  RecursiveIteratorIteratorgetDepth%: ?  RecursiveIteratorIteratornext(9 ?  RecursiveIteratorIteratorcurrent$8 ?  RecursiveIteratorIteratorkey&7 ?  RecursiveIteratorIteratorvalid    A tX8yL$W/    i A       %e 9  CallbackFilterIteratorcurrent!d 9  CallbackFilterIteratorkey#c 9  CallbackFilterIteratorvalid$b 9  CallbackFilterIteratorrewind$a 9  CallbackFilterIteratoraccept+` 9#  CallbackFilterIterator__construct%_ ;  RecursiveFilterIteratoraccept/^ ;-  RecursiveFilterIteratorgetInnerIterator#] ;  RecursiveFilterIteratornext&\ ;  RecursiveFilterIteratorcurrent"[ ;  RecursiveFilterIteratorkey$Z ;  RecursiveFilterIteratorvalid%Y ;  RecursiveFilterIteratorrewind*X ;#  RecursiveFilterIteratorgetChildren*W ;#  RecursiveFilterIteratorhasChildren*V ;#		  RecursiveFilterIterator__constructU )  FilterIteratoraccept&T )-  FilterIteratorgetInnerIteratorS )  FilterIteratornextR )  FilterIteratorcurrentQ )  FilterIteratorkeyP )  FilterIteratorvalidO )  FilterIteratorrewind!N )#		  FilterIterator__construct(M --  IteratorIteratorgetInnerIterator    F s>	zMqM)
     j F                !| '#	  LimitIterator__construct&{ )-  ParentIteratorgetInnerIteratorz )  ParentIteratornexty )  ParentIteratorcurrentx )  ParentIteratorkeyw )  ParentIteratorvalidv )  ParentIteratorrewind!u )#  ParentIteratorgetChildren!t )#  ParentIteratorhasChildrens )  ParentIteratoraccept!r )#		  ParentIterator__construct7q K-  RecursiveCallbackFilterIteratorgetInnerIterator+p K  RecursiveCallbackFilterIteratornext.o K  RecursiveCallbackFilterIteratorcurrent*n K  RecursiveCallbackFilterIteratorkey,m K  RecursiveCallbackFilterIteratorvalid-l K  RecursiveCallbackFilterIteratorrewind-k K  RecursiveCallbackFilterIteratoraccept2j K#  RecursiveCallbackFilterIteratorgetChildren2i K#  RecursiveCallbackFilterIteratorhasChildren4h K#  RecursiveCallbackFilterIterator__construct.g 9-  CallbackFilterIteratorgetInnerIterator"f 9  CallbackFilterIteratornext    c oS0eG&qL'    c                                     + =#  RecursiveCachingIteratorhasChildren, =#	  RecursiveCachingIterator__construct +  CachingIteratorcount +  CachingIteratorgetCache# +%		  CachingIteratoroffsetExists" +#		  CachingIteratoroffsetUnset" +  CachingIteratoroffsetSet  +		  CachingIteratoroffsetGet +		  CachingIteratorsetFlags +  CachingIteratorgetFlags' +-  CachingIteratorgetInnerIterator! +!  CachingIterator__toString +  CachingIteratorhasNext
 +  CachingIteratornext	 +  CachingIteratorcurrent +  CachingIteratorkey +  CachingIteratorvalid +  CachingIteratorrewind# +#	  CachingIterator__construct% '-  LimitIteratorgetInnerIterator  '#  LimitIteratorgetPosition '		  LimitIteratorseek '  LimitIteratornext  '  LimitIteratorcurrent '  LimitIteratorkey~ '  LimitIteratorvalid} '  LimitIteratorrewind    Z [1
U*sH      y Z                                    . -  NoRewindIteratornext- -  NoRewindIteratorcurrent, -  NoRewindIteratorkey+ -  NoRewindIteratorvalid* -  NoRewindIteratorrewind#) -#		  NoRewindIterator__construct%( =  RecursiveCachingIteratorcount(' =  RecursiveCachingIteratorgetCache,& =%		  RecursiveCachingIteratoroffsetExists+% =#		  RecursiveCachingIteratoroffsetUnset+$ =  RecursiveCachingIteratoroffsetSet)# =		  RecursiveCachingIteratoroffsetGet(" =		  RecursiveCachingIteratorsetFlags(! =  RecursiveCachingIteratorgetFlags0  =-  RecursiveCachingIteratorgetInnerIterator* =!  RecursiveCachingIterator__toString' =  RecursiveCachingIteratorhasNext$ =  RecursiveCachingIteratornext' =  RecursiveCachingIteratorcurrent# =  RecursiveCachingIteratorkey% =  RecursiveCachingIteratorvalid& =  RecursiveCachingIteratorrewind+ =#  RecursiveCachingIteratorgetChildren    I sU9[<kM.     g I         J '  RegexIteratorrewindI '  RegexIteratorgetRegex!H '%		  RegexIteratorsetPregFlags!G '%  RegexIteratorgetPregFlagsF '		  RegexIteratorsetFlagsE '  RegexIteratorgetFlagsD '		  RegexIteratorsetModeC '  RegexIteratorgetModeB '  RegexIteratoraccept"A '#  RegexIterator__construct(@ --  InfiniteIteratorgetInnerIterator? -  InfiniteIteratorcurrent> -  InfiniteIteratorkey= -  InfiniteIteratorvalid< -  InfiniteIteratorrewind; -  InfiniteIteratornext#: -#		  InfiniteIterator__construct&9 )-  AppendIteratorgetArrayIterator&8 )-  AppendIteratorgetIteratorIndex&7 )-  AppendIteratorgetInnerIterator6 )  AppendIteratornext5 )  AppendIteratorcurrent4 )  AppendIteratorkey3 )  AppendIteratorvalid2 )  AppendIteratorrewind1 )		  AppendIteratorappend!0 )#  AppendIterator__construct(/ --  NoRewindIteratorgetInnerIterator    N e7h?lF"     i N                    c '  EmptyIteratorkeyb '  EmptyIteratorvalida '  EmptyIteratorrewind.` 9-  RecursiveRegexIteratorgetInnerIterator"_ 9  RecursiveRegexIteratornext%^ 9  RecursiveRegexIteratorcurrent!] 9  RecursiveRegexIteratorkey#\ 9  RecursiveRegexIteratorvalid$[ 9  RecursiveRegexIteratorrewind&Z 9  RecursiveRegexIteratorgetRegex*Y 9%		  RecursiveRegexIteratorsetPregFlags*X 9%  RecursiveRegexIteratorgetPregFlags&W 9		  RecursiveRegexIteratorsetFlags&V 9  RecursiveRegexIteratorgetFlags%U 9		  RecursiveRegexIteratorsetMode%T 9  RecursiveRegexIteratorgetMode)S 9#  RecursiveRegexIteratorgetChildren)R 9#  RecursiveRegexIteratorhasChildren$Q 9  RecursiveRegexIteratoraccept+P 9#  RecursiveRegexIterator__construct%O '-  RegexIteratorgetInnerIteratorN '  RegexIteratornextM '  RegexIteratorcurrentL '  RegexIteratorkeyK '  RegexIteratorvalid    K sN+W(|M%    { K                     -z 7-  RecursiveTreeIteratorgetInnerIterator+y 7)	  RecursiveTreeIteratorgetSubIterator%x 7  RecursiveTreeIteratorgetDepth'w 7!  RecursiveTreeIteratorgetPostfix'v 7!  RecursiveTreeIteratorsetPostfix%u 7  RecursiveTreeIteratorgetEntry,t 7'  RecursiveTreeIteratorsetPrefixPart&s 7  RecursiveTreeIteratorgetPrefix(r 7#  RecursiveTreeIteratornextElement(q 7#  RecursiveTreeIteratorendChildren*p 7'  RecursiveTreeIteratorbeginChildren,o 7+  RecursiveTreeIteratorcallGetChildren,n 7+  RecursiveTreeIteratorcallHasChildren)m 7%  RecursiveTreeIteratorendIteration+l 7)  RecursiveTreeIteratorbeginIteration!k 7  RecursiveTreeIteratornext$j 7  RecursiveTreeIteratorcurrent i 7  RecursiveTreeIteratorkey"h 7  RecursiveTreeIteratorvalid#g 7  RecursiveTreeIteratorrewind)f 7#	  RecursiveTreeIterator__constructe '  EmptyIteratornextd '  EmptyIteratorcurrent    E fG&pU:c@     h E     '#		  ArrayIteratoroffsetUnset  '  ArrayIteratoroffsetSet '		  ArrayIteratoroffsetGet! '%		  ArrayIteratoroffsetExists! '#  ArrayIterator__construct# #-  ArrayObjectgetIteratorClass# #-		  ArrayObjectsetIteratorClass  #'		  ArrayObjectexchangeArray ##  ArrayObjectgetIterator #  ArrayObjectserialize ##		  ArrayObjectunserialize ##  ArrayObjectnatcasesort #  ArrayObjectnatsort
 #		  ArrayObjectuksort	 #		  ArrayObjectuasort #  ArrayObjectksort #  ArrayObjectasort #		  ArrayObjectsetFlags #  ArrayObjectgetFlags #  ArrayObjectcount #%  ArrayObjectgetArrayCopy #		  ArrayObjectappend ##		  ArrayObjectoffsetUnset  #  ArrayObjectoffsetSet #		  ArrayObjectoffsetGet~ #%		  ArrayObjectoffsetExists} ##  ArrayObject__construct(| 7#  RecursiveTreeIteratorgetMaxDepth({ 7#	  RecursiveTreeIteratorsetMaxDepth    ] aD'	eG(`3    ]                               $2 9		  RecursiveArrayIteratorappend)1 9#		  RecursiveArrayIteratoroffsetUnset)0 9  RecursiveArrayIteratoroffsetSet'/ 9		  RecursiveArrayIteratoroffsetGet*. 9%		  RecursiveArrayIteratoroffsetExists*- 9#  RecursiveArrayIterator__construct), 9#  RecursiveArrayIteratorgetChildren)+ 9#  RecursiveArrayIteratorhasChildren* '		  ArrayIteratorseek) '  ArrayIteratorvalid( '  ArrayIteratornext' '  ArrayIteratorkey& '  ArrayIteratorcurrent% '  ArrayIteratorrewind$ '  ArrayIteratorserialize # '#		  ArrayIteratorunserialize " '#  ArrayIteratornatcasesort! '  ArrayIteratornatsort  '		  ArrayIteratoruksort '		  ArrayIteratoruasort '  ArrayIteratorksort '  ArrayIteratorasort '		  ArrayIteratorsetFlags '  ArrayIteratorgetFlags '  ArrayIteratorcount! '%  ArrayIteratorgetArrayCopy '		  ArrayIteratorappend    S [5mAY4     q S                         K #  SplFileInfogetPermsJ ##  SplFileInfogetPathnameI ##	  SplFileInfogetBasenameH #%  SplFileInfogetExtensionG ##  SplFileInfogetFilenameF #  SplFileInfogetPathE ##		  SplFileInfo__construct"D 9		  RecursiveArrayIteratorseek#C 9  RecursiveArrayIteratorvalid"B 9  RecursiveArrayIteratornext!A 9  RecursiveArrayIteratorkey%@ 9  RecursiveArrayIteratorcurrent$? 9  RecursiveArrayIteratorrewind'> 9  RecursiveArrayIteratorserialize)= 9#		  RecursiveArrayIteratorunserialize)< 9#  RecursiveArrayIteratornatcasesort%; 9  RecursiveArrayIteratornatsort$: 9		  RecursiveArrayIteratoruksort$9 9		  RecursiveArrayIteratoruasort#8 9  RecursiveArrayIteratorksort#7 9  RecursiveArrayIteratorasort&6 9		  RecursiveArrayIteratorsetFlags&5 9  RecursiveArrayIteratorgetFlags#4 9  RecursiveArrayIteratorcount*3 9%  RecursiveArrayIteratorgetArrayCopy    Q kM/y]:tQ1
    s Q               h /  DirectoryIteratorrewindg /  DirectoryIteratorisDot$f /#	  DirectoryIteratorgetBasename%e /%  DirectoryIteratorgetExtension$d /#  DirectoryIteratorgetFilename$c /#		  DirectoryIterator__constructb #!  SplFileInfo__toString a #'  SplFileInfo_bad_state_ex` #%	  SplFileInfosetInfoClass_ #%	  SplFileInfosetFileClass^ #  SplFileInfoopenFile] ##	  SplFileInfogetPathInfo\ ##	  SplFileInfogetFileInfo[ ##  SplFileInfogetRealPath Z #'  SplFileInfogetLinkTargetY #  SplFileInfoisLinkX #  SplFileInfoisDirW #  SplFileInfoisFileV #%  SplFileInfoisExecutableU #!  SplFileInfoisReadableT #!  SplFileInfoisWritableS #  SplFileInfogetTypeR #  SplFileInfogetCTimeQ #  SplFileInfogetMTimeP #  SplFileInfogetATimeO #  SplFileInfogetGroupN #  SplFileInfogetOwnerM #  SplFileInfogetSizeL #  SplFileInfogetInode    [ }]7^:_7     [                               $ /#	  DirectoryIteratorgetFileInfo$ /#  DirectoryIteratorgetRealPath&  /'  DirectoryIteratorgetLinkTarget /  DirectoryIteratorisLink~ /  DirectoryIteratorisDir} /  DirectoryIteratorisFile%| /%  DirectoryIteratorisExecutable#{ /!  DirectoryIteratorisReadable#z /!  DirectoryIteratorisWritable y /  DirectoryIteratorgetType!x /  DirectoryIteratorgetCTime!w /  DirectoryIteratorgetMTime!v /  DirectoryIteratorgetATime!u /  DirectoryIteratorgetGroup!t /  DirectoryIteratorgetOwner s /  DirectoryIteratorgetSize!r /  DirectoryIteratorgetInode!q /  DirectoryIteratorgetPerms$p /#  DirectoryIteratorgetPathname o /  DirectoryIteratorgetPath#n /!  DirectoryIterator__toStringm /		  DirectoryIteratorseekl /  DirectoryIteratornext k /  DirectoryIteratorcurrentj /  DirectoryIteratorkeyi /  DirectoryIteratorvalid    \ d;e@b;     \                                  " 1  FilesystemIteratorgetOwner! 1  FilesystemIteratorgetSize" 1  FilesystemIteratorgetInode" 1  FilesystemIteratorgetPerms% 1#  FilesystemIteratorgetPathname! 1  FilesystemIteratorgetPath$ 1!  FilesystemIterator__toString 1		  FilesystemIteratorseek 1  FilesystemIteratorvalid 1  FilesystemIteratorisDot% 1#	  FilesystemIteratorgetBasename& 1%  FilesystemIteratorgetExtension% 1#  FilesystemIteratorgetFilename" 1	  FilesystemIteratorsetFlags" 1  FilesystemIteratorgetFlags! 1  FilesystemIteratorcurrent 1  FilesystemIteratorkey
 1  FilesystemIteratornext 	 1  FilesystemIteratorrewind& 1#	  FilesystemIterator__construct& /'  DirectoryIterator_bad_state_ex% /%	  DirectoryIteratorsetInfoClass% /%	  DirectoryIteratorsetFileClass" /  DirectoryIteratoropenFile$ /#	  DirectoryIteratorgetPathInfo    e lH!i?xO%    e                                               ,2 A!  RecursiveDirectoryIteratorgetSubPath-1 A#  RecursiveDirectoryIteratorgetChildren-0 A#	  RecursiveDirectoryIteratorhasChildren./ A#	  RecursiveDirectoryIterator__construct'. 1'  FilesystemIterator_bad_state_ex&- 1%	  FilesystemIteratorsetInfoClass&, 1%	  FilesystemIteratorsetFileClass#+ 1  FilesystemIteratoropenFile%* 1#	  FilesystemIteratorgetPathInfo%) 1#	  FilesystemIteratorgetFileInfo%( 1#  FilesystemIteratorgetRealPath'' 1'  FilesystemIteratorgetLinkTarget & 1  FilesystemIteratorisLink% 1  FilesystemIteratorisDir $ 1  FilesystemIteratorisFile&# 1%  FilesystemIteratorisExecutable$" 1!  FilesystemIteratorisReadable$! 1!  FilesystemIteratorisWritable!  1  FilesystemIteratorgetType" 1  FilesystemIteratorgetCTime" 1  FilesystemIteratorgetMTime" 1  FilesystemIteratorgetATime" 1  FilesystemIteratorgetGroup    R yQ%j:b2    R                                *G A  RecursiveDirectoryIteratorgetGroup*F A  RecursiveDirectoryIteratorgetOwner)E A  RecursiveDirectoryIteratorgetSize*D A  RecursiveDirectoryIteratorgetInode*C A  RecursiveDirectoryIteratorgetPerms-B A#  RecursiveDirectoryIteratorgetPathname)A A  RecursiveDirectoryIteratorgetPath,@ A!  RecursiveDirectoryIterator__toString&? A		  RecursiveDirectoryIteratorseek'> A  RecursiveDirectoryIteratorvalid'= A  RecursiveDirectoryIteratorisDot-< A#	  RecursiveDirectoryIteratorgetBasename.; A%  RecursiveDirectoryIteratorgetExtension-: A#  RecursiveDirectoryIteratorgetFilename*9 A	  RecursiveDirectoryIteratorsetFlags*8 A  RecursiveDirectoryIteratorgetFlags)7 A  RecursiveDirectoryIteratorcurrent%6 A  RecursiveDirectoryIteratorkey&5 A  RecursiveDirectoryIteratornext(4 A  RecursiveDirectoryIteratorrewind03 A)  RecursiveDirectoryIteratorgetSubPathname    C yMi>|N    { ^ C               ] %  GlobIteratornext\ %  GlobIteratorrewind[ %  GlobIteratorcount Z %#	  GlobIterator__construct/Y A'  RecursiveDirectoryIterator_bad_state_ex.X A%	  RecursiveDirectoryIteratorsetInfoClass.W A%	  RecursiveDirectoryIteratorsetFileClass+V A  RecursiveDirectoryIteratoropenFile-U A#	  RecursiveDirectoryIteratorgetPathInfo-T A#	  RecursiveDirectoryIteratorgetFileInfo-S A#  RecursiveDirectoryIteratorgetRealPath/R A'  RecursiveDirectoryIteratorgetLinkTarget(Q A  RecursiveDirectoryIteratorisLink'P A  RecursiveDirectoryIteratorisDir(O A  RecursiveDirectoryIteratorisFile.N A%  RecursiveDirectoryIteratorisExecutable,M A!  RecursiveDirectoryIteratorisReadable,L A!  RecursiveDirectoryIteratorisWritable)K A  RecursiveDirectoryIteratorgetType*J A  RecursiveDirectoryIteratorgetCTime*I A  RecursiveDirectoryIteratorgetMTime*H A  RecursiveDirectoryIteratorgetATime    Y hE#oP1xZ9     { Y                     { %#  GlobIteratorgetRealPath!z %'  GlobIteratorgetLinkTargety %  GlobIteratorisLinkx %  GlobIteratorisDirw %  GlobIteratorisFile v %%  GlobIteratorisExecutableu %!  GlobIteratorisReadablet %!  GlobIteratorisWritables %  GlobIteratorgetTyper %  GlobIteratorgetCTimeq %  GlobIteratorgetMTimep %  GlobIteratorgetATimeo %  GlobIteratorgetGroupn %  GlobIteratorgetOwnerm %  GlobIteratorgetSizel %  GlobIteratorgetInodek %  GlobIteratorgetPermsj %#  GlobIteratorgetPathnamei %  GlobIteratorgetPathh %!  GlobIterator__toStringg %		  GlobIteratorseekf %  GlobIteratorvalide %  GlobIteratorisDotd %#	  GlobIteratorgetBasename c %%  GlobIteratorgetExtensionb %#  GlobIteratorgetFilenamea %	  GlobIteratorsetFlags` %  GlobIteratorgetFlags_ %  GlobIteratorcurrent^ %  GlobIteratorkey    N yV2{[5|[=      j N           '  SplFileObjectnext '  SplFileObjectkey '  SplFileObjectcurrent '		  SplFileObjectftruncate '  SplFileObjectfstat '		  SplFileObjectfread '	  SplFileObjectfwrite '	  SplFileObjectfscanfd '	  SplFileObjectfgetss '  SplFileObjectfpassthru '  SplFileObjectfgetc '	  SplFileObjectfseek '  SplFileObjectftell '  SplFileObjectfflush '	  SplFileObjectflock"
 ''  SplFileObjectgetCsvControl#	 ''  SplFileObjectsetCsvControl '	  SplFileObjectfputcsv '  SplFileObjectfgetcsv '  SplFileObjectfgets '  SplFileObjectvalid '  SplFileObjecteof '  SplFileObjectrewind! '#	  SplFileObject__construct! %'  GlobIterator_bad_state_ex   %%	  GlobIteratorsetInfoClass  %%	  GlobIteratorsetFileClass~ %  GlobIteratoropenFile} %#	  GlobIteratorgetPathInfo| %#	  GlobIteratorgetFileInfo    _ vS0fC  aA!    | _                               5 '  SplFileObjectisDir4 '  SplFileObjectisFile!3 '%  SplFileObjectisExecutable2 '!  SplFileObjectisReadable1 '!  SplFileObjectisWritable0 '  SplFileObjectgetType/ '  SplFileObjectgetCTime. '  SplFileObjectgetMTime- '  SplFileObjectgetATime, '  SplFileObjectgetGroup+ '  SplFileObjectgetOwner* '  SplFileObjectgetSize) '  SplFileObjectgetInode( '  SplFileObjectgetPerms ' '#  SplFileObjectgetPathname & '#	  SplFileObjectgetBasename!% '%  SplFileObjectgetExtension $ '#  SplFileObjectgetFilename# '  SplFileObjectgetPath" '!  SplFileObject__toString#! ')  SplFileObjectgetCurrentLine  '		  SplFileObjectseek  '#  SplFileObjectgetChildren  '#  SplFileObjecthasChildren" ''  SplFileObjectgetMaxLineLen" ''		  SplFileObjectsetMaxLineLen '  SplFileObjectgetFlags '		  SplFileObjectsetFlags    L wT3}^=_=     o L               P /	  SplTempFileObjectfwrite O /	  SplTempFileObjectfscanfdN /	  SplTempFileObjectfgetss"M /  SplTempFileObjectfpassthruL /  SplTempFileObjectfgetcK /	  SplTempFileObjectfseekJ /  SplTempFileObjectftellI /  SplTempFileObjectfflushH /	  SplTempFileObjectflock&G /'  SplTempFileObjectgetCsvControl'F /'  SplTempFileObjectsetCsvControl!E /	  SplTempFileObjectfputcsv!D /  SplTempFileObjectfgetcsvC /  SplTempFileObjectfgetsB /  SplTempFileObjectvalidA /  SplTempFileObjecteof@ /  SplTempFileObjectrewind$? /#	  SplTempFileObject__construct"> ''  SplFileObject_bad_state_ex!= '%	  SplFileObjectsetInfoClass!< '%	  SplFileObjectsetFileClass; '  SplFileObjectopenFile : '#	  SplFileObjectgetPathInfo 9 '#	  SplFileObjectgetFileInfo 8 '#  SplFileObjectgetRealPath"7 ''  SplFileObjectgetLinkTarget6 '  SplFileObjectisLink    H vW7vO/mF     l H            !j /  SplTempFileObjectgetATime!i /  SplTempFileObjectgetGroup!h /  SplTempFileObjectgetOwner g /  SplTempFileObjectgetSize!f /  SplTempFileObjectgetInode!e /  SplTempFileObjectgetPerms$d /#  SplTempFileObjectgetPathname$c /#	  SplTempFileObjectgetBasename%b /%  SplTempFileObjectgetExtension$a /#  SplTempFileObjectgetFilename ` /  SplTempFileObjectgetPath#_ /!  SplTempFileObject__toString'^ /)  SplTempFileObjectgetCurrentLine] /		  SplTempFileObjectseek$\ /#  SplTempFileObjectgetChildren$[ /#  SplTempFileObjecthasChildren&Z /'  SplTempFileObjectgetMaxLineLen&Y /'		  SplTempFileObjectsetMaxLineLen!X /  SplTempFileObjectgetFlags!W /		  SplTempFileObjectsetFlagsV /  SplTempFileObjectnextU /  SplTempFileObjectkey T /  SplTempFileObjectcurrent"S /		  SplTempFileObjectftruncateR /  SplTempFileObjectfstatQ /		  SplTempFileObjectfread    ^ oI!lE_<     ^                                    * 3+		  SplDoublyLinkedListsetIteratorMode" 3  SplDoublyLinkedListisEmpty! 3  SplDoublyLinkedListbottom  3  SplDoublyLinkedListtop" 3		  SplDoublyLinkedListunshift~ 3		  SplDoublyLinkedListpush } 3  SplDoublyLinkedListshift| 3  SplDoublyLinkedListpop&{ /'  SplTempFileObject_bad_state_ex%z /%	  SplTempFileObjectsetInfoClass%y /%	  SplTempFileObjectsetFileClass"x /  SplTempFileObjectopenFile$w /#	  SplTempFileObjectgetPathInfo$v /#	  SplTempFileObjectgetFileInfo$u /#  SplTempFileObjectgetRealPath&t /'  SplTempFileObjectgetLinkTargets /  SplTempFileObjectisLinkr /  SplTempFileObjectisDirq /  SplTempFileObjectisFile%p /%  SplTempFileObjectisExecutable#o /!  SplTempFileObjectisReadable#n /!  SplTempFileObjectisWritable m /  SplTempFileObjectgetType!l /  SplTempFileObjectgetCTime!k /  SplTempFileObjectgetMTime    V _6^<gP6      r V                      		  SplQueueoffsetGet %		  SplQueueoffsetExists   SplQueuecount +  SplQueuegetIteratorMode +		  SplQueuesetIteratorMode   SplQueueisEmpty   SplQueuebottom   SplQueuetop 		  SplQueueunshift 		  SplQueuepush   SplQueueshift   SplQueuepop   SplQueuedequeue 		  SplQueueenqueue$ 3  SplDoublyLinkedListserialize& 3#		  SplDoublyLinkedListunserialize  3  SplDoublyLinkedListvalid 3  SplDoublyLinkedListprev 3  SplDoublyLinkedListnext 3  SplDoublyLinkedListkey" 3  SplDoublyLinkedListcurrent! 3  SplDoublyLinkedListrewind 
 3  SplDoublyLinkedListadd&	 3#		  SplDoublyLinkedListoffsetUnset& 3  SplDoublyLinkedListoffsetSet$ 3		  SplDoublyLinkedListoffsetGet' 3%		  SplDoublyLinkedListoffsetExists  3  SplDoublyLinkedListcount* 3+  SplDoublyLinkedListgetIteratorMode   $ V ycL5nU;hP7      n V      D 		  SplHeapinsertC   SplHeapextractB   SplStackserializeA #		  SplStackunserialize@   SplStackvalid?   SplStackprev>   SplStacknext=   SplStackkey<   SplStackcurrent;   SplStackrewind:   SplStackadd9 #		  SplStackoffsetUnset8   SplStackoffsetSet7 		  SplStackoffsetGet6 %		  SplStackoffsetExists5   SplStackcount4 +  SplStackgetIteratorMode3 +		  SplStacksetIteratorMode2   SplStackisEmpty1   SplStackbottom0   SplStacktop/ 		  SplStackunshift. 		  SplStackpush-   SplStackshift,   SplStackpop+   SplQueueserialize* #		  SplQueueunserialize)   SplQueuevalid(   SplQueueprev'   SplQueuenext&   SplQueuekey%   SplQueuecurrent$   SplQueuerewind#   SplQueueadd" #		  SplQueueoffsetUnset!   SplQueueoffsetSet   # W u_H!~dH-|^B'      q W         g !  SplMaxHeapvalidf !  SplMaxHeapnexte !  SplMaxHeapkeyd !  SplMaxHeapcurrentc !  SplMaxHeaprewindb !  SplMaxHeapisEmptya !  SplMaxHeapcount` !  SplMaxHeaptop_ !		  SplMaxHeapinsert^ !  SplMaxHeapextract] !  SplMaxHeapcompare\ !#  SplMinHeapisCorrupted'[ !7  SplMinHeaprecoverFromCorruptionZ !  SplMinHeapvalidY !  SplMinHeapnextX !  SplMinHeapkeyW !  SplMinHeapcurrentV !  SplMinHeaprewindU !  SplMinHeapisEmptyT !  SplMinHeapcountS !  SplMinHeaptopR !		  SplMinHeapinsertQ !  SplMinHeapextractP !  SplMinHeapcompareO   SplHeapcompareN #  SplHeapisCorrupted$M 7  SplHeaprecoverFromCorruptionL   SplHeapvalidK   SplHeapnextJ   SplHeapkeyI   SplHeapcurrentH   SplHeaprewindG   SplHeapisEmptyF   SplHeapcountE   SplHeaptop    \ oExV8`C$     \                                '  SplFixedArrayoffsetSet '		  SplFixedArrayoffsetGet!  '%		  SplFixedArrayoffsetExists '		  SplFixedArraysetSize~ '  SplFixedArraygetSize} '	  SplFixedArrayfromArray| '  SplFixedArraytoArray{ '  SplFixedArraycountz '  SplFixedArray__wakeup y '#	  SplFixedArray__construct#x -#  SplPriorityQueueisCorrupted-w -7  SplPriorityQueuerecoverFromCorruptionv -  SplPriorityQueuevalidu -  SplPriorityQueuenextt -  SplPriorityQueuekeys -  SplPriorityQueuecurrentr -  SplPriorityQueuerewindq -  SplPriorityQueueisEmptyp -  SplPriorityQueuecounto -  SplPriorityQueueextractn -  SplPriorityQueuetop'm -+  SplPriorityQueuegetExtractFlags'l -+		  SplPriorityQueuesetExtractFlags k -  SplPriorityQueueinsert!j -  SplPriorityQueuecomparei !#  SplMaxHeapisCorrupted'h !7  SplMaxHeaprecoverFromCorruption    K iL*	wU3pQ+    q K           # -#		  MultipleIterator__construct! -		  SplObjectStorageoffsetGet# -#		  SplObjectStorageoffsetUnset" -	  SplObjectStorageoffsetSet$ -%		  SplObjectStorageoffsetExists! -  SplObjectStorageserialize# -#		  SplObjectStorageunserialize -  SplObjectStoragenext -  SplObjectStoragecurrent -  SplObjectStoragekey -  SplObjectStoragevalid -  SplObjectStoragerewind -  SplObjectStoragecount -		  SplObjectStoragegetHash -		  SplObjectStoragesetInfo -  SplObjectStoragegetInfo' -+		  SplObjectStorageremoveAllExcept! -		  SplObjectStorageremoveAll -		  SplObjectStorageaddAll  -		  SplObjectStoragecontains
 -		  SplObjectStoragedetach	 -	  SplObjectStorageattach '  SplFixedArrayvalid '  SplFixedArraynext '  SplFixedArraykey '  SplFixedArraycurrent '  SplFixedArrayrewind  '#		  SplFixedArrayoffsetUnset    L g<sU< nP4     l L          ; +	  NumberFormatterparse: +	  NumberFormatterformat9 +  NumberFormattercreate$8 +#  NumberFormatter__construct7 !		  CollatorgetSortKey6 +  CollatorgetErrorMessage5 %  CollatorgetErrorCode4 		  CollatorgetLocale3 #		  CollatorsetStrength2 #  CollatorgetStrength1 %  CollatorsetAttribute0 %		  CollatorgetAttribute/ 	  Collatorasort . -		  CollatorsortWithSortKeys- 	  Collatorsort,   Collatorcompare+ 		  Collatorcreate* #		  Collator__construct) -  MultipleIteratornext( -  MultipleIteratorcurrent' -  MultipleIteratorkey& -  MultipleIteratorvalid% -  MultipleIteratorrewind&$ -)  MultipleIteratorcountIterators(# --		  MultipleIteratorcontainsIterator&" -)		  MultipleIteratordetachIterator'! -)	  MultipleIteratorattachIterator   -		  MultipleIteratorsetFlags  -  MultipleIteratorgetFlags    T _3	yV0mS9     r T                      V '		  LocalecomposeLocale U /	  LocalegetDisplayVariant!T 1	  LocalegetDisplayLanguageS )	  LocalegetDisplayNameR -	  LocalegetDisplayRegionQ -	  LocalegetDisplayScriptP #		  LocalegetKeywordsO 		  LocalegetRegionN 		  LocalegetScript M 1		  LocalegetPrimaryLanguageL !		  LocalesetDefaultK !  LocalegetDefaultJ !%	  NormalizerisNormalizedI !	  Normalizernormalize&H ++  NumberFormattergetErrorMessage#G +%  NumberFormattergetErrorCode F +	  NumberFormattergetLocale!E +!  NumberFormattergetPattern!D +!		  NumberFormattersetPattern C +		  NumberFormattergetSymbol"B +  NumberFormattersetSymbol'A +-		  NumberFormattergetTextAttribute)@ +-  NumberFormattersetTextAttribute#? +%		  NumberFormattergetAttribute%> +%  NumberFormattersetAttribute&= +'  NumberFormatterparseCurrency'< +)  NumberFormatterformatCurrency    L oP(qL'e>    s L                $p /#  IntlDateFormattergetTimeZone&o /'  IntlDateFormattergetTimeZoneId$n /#		  IntlDateFormattersetCalendar*m //  IntlDateFormattergetCalendarObject$l /#  IntlDateFormattergetCalendar$k /#  IntlDateFormattergetTimeType$j /#  IntlDateFormattergetDateType!i /  IntlDateFormattercreate&h /#  IntlDateFormatter__construct'g -+  MessageFormattergetErrorMessage$f -%  MessageFormattergetErrorCode!e -  MessageFormattergetLocale"d -!  MessageFormattergetPattern"c -!		  MessageFormattersetPattern&b -%  MessageFormatterparseMessagea -		  MessageFormatterparse'` -'  MessageFormatterformatMessage_ -		  MessageFormatterformat ^ -  MessageFormattercreate%] -#  MessageFormatter__construct\ )		  LocaleacceptFromHttp[ %		  LocalecanonicalizeZ   LocalelookupY '  LocalefilterMatchesX )		  LocalegetAllVariantsW #		  LocaleparseLocale    E hBa6lD      j E         "
 )%  TransliteratorgetErrorCode$	 )'	  Transliteratortransliterate )  TransliteratorlistIDs# )'  TransliteratorcreateInverse& )+	  TransliteratorcreateFromRules )	  Transliteratorcreate! )#  Transliterator__construct% )+  ResourceBundlegetErrorMessage" )%  ResourceBundlegetErrorCode  )!		  ResourceBundlegetLocales  )  ResourceBundlecount )	  ResourceBundleget~ )  ResourceBundlecreate#} )#  ResourceBundle__construct(| /+  IntlDateFormattergetErrorMessage%{ /%  IntlDateFormattergetErrorCode#z /	  IntlDateFormatterlocaltimey /	  IntlDateFormatterparse&x /%	  IntlDateFormatterformatObject w /  IntlDateFormatterformat"v /  IntlDateFormatterisLenient#u /!		  IntlDateFormattersetLenient"t /  IntlDateFormattergetLocale#s /!  IntlDateFormattergetPattern#r /!		  IntlDateFormattersetPattern$q /#		  IntlDateFormattersetTimeZone    A jF)^>hE     j A     &$ %/	  IntlTimeZonegetIDForWindowsID # %%		  IntlTimeZonegetWindowsID#" %+  IntlTimeZonegetErrorMessage ! %%  IntlTimeZonegetErrorCode"  %)  IntlTimeZonetoDateTimeZone! %'  IntlTimeZonegetDSTSavings# %)  IntlTimeZonegetDisplayName  %%		  IntlTimeZonehasSameRules  %%  IntlTimeZonegetRawOffset %  IntlTimeZonegetOffset# %+  IntlTimeZoneuseDaylightTime %  IntlTimeZonegetID% %+  IntlTimeZonegetEquivalentID$ %-  IntlTimeZonegetTZDataVersion %		  IntlTimeZonegetRegion# %)	  IntlTimeZonegetCanonicalID0 %C	  IntlTimeZonecreateTimeZoneIDEnumeration& %1		  IntlTimeZonecountEquivalentIDs% %/	  IntlTimeZonecreateEnumeration %!  IntlTimeZonegetUnknown %  IntlTimeZonegetGMT! %'  IntlTimeZonecreateDefault$ %-		  IntlTimeZonefromDateTimeZone" %)		  IntlTimeZonecreateTimeZone %#  IntlTimeZone__construct% )+  TransliteratorgetErrorMessage    U i?%rV9X/	    w U                       ? %#  IntlCalendargetTimeZone> %!		  IntlCalendargetMinimum-= %?  IntlCalendargetMinimalDaysInFirstWeek< %!		  IntlCalendargetMaximum; %		  IntlCalendargetLocale#: %+		  IntlCalendargetLeastMaximum&9 %1		  IntlCalendargetGreatestMinimum%8 %/  IntlCalendargetFirstDayOfWeek$7 %-		  IntlCalendargetDayOfWeekType$6 %-		  IntlCalendargetActualMinimum$5 %-		  IntlCalendargetActualMaximum%4 %+  IntlCalendarfieldDifference3 %	  IntlCalendarclear2 %  IntlCalendarroll1 %  IntlCalendarset0 %		  IntlCalendarbefore/ %		  IntlCalendarafter. %#		  IntlCalendarsetTimeZone- %  IntlCalendaradd, %		  IntlCalendarsetTime+ %  IntlCalendargetTime* %		  IntlCalendarget') %3  IntlCalendargetAvailableLocales( %  IntlCalendargetNow/' %?  IntlCalendargetKeywordValuesForLocale#& %)  IntlCalendarcreateInstance% %#  IntlCalendar__construct    G mM1{KyV0   v G               ,W 7)  IntlGregorianCalendarcreateInstance'V 7!		  IntlGregorianCalendarisLeapYear/U 71  IntlGregorianCalendargetGregorianChange/T 71		  IntlGregorianCalendarsetGregorianChange)S 7#  IntlGregorianCalendar__construct#R %+  IntlCalendargetErrorMessage Q %%  IntlCalendargetErrorCodeP %!  IntlCalendartoDateTime O %%		  IntlCalendarfromDateTime,N %=		  IntlCalendarsetSkippedWallTimeOption-M %?		  IntlCalendarsetRepeatedWallTimeOption,L %=  IntlCalendargetSkippedWallTimeOption-K %?  IntlCalendargetRepeatedWallTimeOptionJ %		  IntlCalendarequals-I %?		  IntlCalendarsetMinimalDaysInFirstWeekH %!		  IntlCalendarsetLenient%G %/		  IntlCalendarsetFirstDayOfWeekF %	  IntlCalendarisWeekendE %		  IntlCalendarisSetD %  IntlCalendarisLenient"C %)		  IntlCalendarisEquivalentTo"B %)  IntlCalendarinDaylightTime(A %5		  IntlCalendargetWeekendTransition@ %  IntlCalendargetType    J lI"`;_/    t J                      'm 7!		  IntlGregorianCalendargetMaximum&l 7		  IntlGregorianCalendargetLocale,k 7+		  IntlGregorianCalendargetLeastMaximum/j 71		  IntlGregorianCalendargetGreatestMinimum.i 7/  IntlGregorianCalendargetFirstDayOfWeek-h 7-		  IntlGregorianCalendargetDayOfWeekType-g 7-		  IntlGregorianCalendargetActualMinimum-f 7-		  IntlGregorianCalendargetActualMaximum.e 7+  IntlGregorianCalendarfieldDifference"d 7	  IntlGregorianCalendarclear#c 7  IntlGregorianCalendarroll"b 7  IntlGregorianCalendarset#a 7		  IntlGregorianCalendarbefore"` 7		  IntlGregorianCalendarafter(_ 7#		  IntlGregorianCalendarsetTimeZone"^ 7  IntlGregorianCalendaradd$] 7		  IntlGregorianCalendarsetTime$\ 7  IntlGregorianCalendargetTime [ 7		  IntlGregorianCalendarget0Z 73  IntlGregorianCalendargetAvailableLocales#Y 7  IntlGregorianCalendargetNow8X 7?  IntlGregorianCalendargetKeywordValuesForLocale    R rKmDQ   | R                                  ' 7!  IntlGregorianCalendartoDateTime)  7%		  IntlGregorianCalendarfromDateTime5 7=		  IntlGregorianCalendarsetSkippedWallTimeOption6~ 7?		  IntlGregorianCalendarsetRepeatedWallTimeOption5} 7=  IntlGregorianCalendargetSkippedWallTimeOption6| 7?  IntlGregorianCalendargetRepeatedWallTimeOption#{ 7		  IntlGregorianCalendarequals6z 7?		  IntlGregorianCalendarsetMinimalDaysInFirstWeek'y 7!		  IntlGregorianCalendarsetLenient.x 7/		  IntlGregorianCalendarsetFirstDayOfWeek&w 7	  IntlGregorianCalendarisWeekend"v 7		  IntlGregorianCalendarisSet&u 7  IntlGregorianCalendarisLenient+t 7)		  IntlGregorianCalendarisEquivalentTo+s 7)  IntlGregorianCalendarinDaylightTime1r 75		  IntlGregorianCalendargetWeekendTransition$q 7  IntlGregorianCalendargetType(p 7#  IntlGregorianCalendargetTimeZone'o 7!		  IntlGregorianCalendargetMinimum6n 7?  IntlGregorianCalendargetMinimalDaysInFirstWeek    @ _9lM.dJ/    s @  0 /;	  IntlBreakIteratorcreateCharacterInstance+ /1	  IntlBreakIteratorcreateLineInstance+ /1	  IntlBreakIteratorcreateWordInstance$ /#  IntlBreakIterator__construct %  IntlIteratorvalid %  IntlIteratorrewind %  IntlIteratornext %  IntlIteratorkey %  IntlIteratorcurrent '!  IntlException__toString% '-  IntlExceptiongetTraceAsString  '#  IntlExceptiongetPrevious '  IntlExceptiongetTrace '  IntlExceptiongetLine '  IntlExceptiongetFile '  IntlExceptiongetCode '!  IntlExceptiongetMessage '  IntlException__wakeup!
 '#  IntlException__construct	 '  IntlException__clone %		  SpoofcheckersetChecks% %/		  SpoofcheckersetAllowedLocales# %'  SpoofcheckerareConfusable! %%	  SpoofcheckerisSuspicious %#  Spoofchecker__construct, 7+  IntlGregorianCalendargetErrorMessage) 7%  IntlGregorianCalendargetErrorCode    ; lI&~Y4j9   r ;     43 A1	  IntlRuleBasedBreakIteratorcreateWordInstance02 A)  IntlRuleBasedBreakIteratorgetBinaryRules21 A-  IntlRuleBasedBreakIteratorgetRuleStatusVec/0 A'  IntlRuleBasedBreakIteratorgetRuleStatus*/ A  IntlRuleBasedBreakIteratorgetRules.. A#	  IntlRuleBasedBreakIterator__construct(- /+  IntlBreakIteratorgetErrorMessage%, /%  IntlBreakIteratorgetErrorCode)+ /-	  IntlBreakIteratorgetPartsIterator"* /		  IntlBreakIteratorgetLocale#) /!		  IntlBreakIteratorisBoundary"( /		  IntlBreakIteratorpreceding"' /		  IntlBreakIteratorfollowing & /  IntlBreakIteratorcurrent% /	  IntlBreakIteratornext!$ /  IntlBreakIteratorprevious# /  IntlBreakIteratorlast" /  IntlBreakIteratorfirst ! /		  IntlBreakIteratorsetText   /  IntlBreakIteratorgetText0 /;  IntlBreakIteratorcreateCodePointInstance, /3	  IntlBreakIteratorcreateTitleInstance/ /9	  IntlBreakIteratorcreateSentenceInstance    ^ R\3U&    ^                                                1F A+  IntlRuleBasedBreakIteratorgetErrorMessage.E A%  IntlRuleBasedBreakIteratorgetErrorCode2D A-	  IntlRuleBasedBreakIteratorgetPartsIterator+C A		  IntlRuleBasedBreakIteratorgetLocale,B A!		  IntlRuleBasedBreakIteratorisBoundary+A A		  IntlRuleBasedBreakIteratorpreceding+@ A		  IntlRuleBasedBreakIteratorfollowing)? A  IntlRuleBasedBreakIteratorcurrent&> A	  IntlRuleBasedBreakIteratornext*= A  IntlRuleBasedBreakIteratorprevious&< A  IntlRuleBasedBreakIteratorlast'; A  IntlRuleBasedBreakIteratorfirst): A		  IntlRuleBasedBreakIteratorsetText)9 A  IntlRuleBasedBreakIteratorgetText98 A;  IntlRuleBasedBreakIteratorcreateCodePointInstance57 A3	  IntlRuleBasedBreakIteratorcreateTitleInstance86 A9	  IntlRuleBasedBreakIteratorcreateSentenceInstance95 A;	  IntlRuleBasedBreakIteratorcreateCharacterInstance44 A1	  IntlRuleBasedBreakIteratorcreateLineInstance    \ d-~BjA    \                                              +Y A		  IntlCodePointBreakIteratorgetLocale,X A!		  IntlCodePointBreakIteratorisBoundary+W A		  IntlCodePointBreakIteratorpreceding+V A		  IntlCodePointBreakIteratorfollowing)U A  IntlCodePointBreakIteratorcurrent&T A	  IntlCodePointBreakIteratornext*S A  IntlCodePointBreakIteratorprevious&R A  IntlCodePointBreakIteratorlast'Q A  IntlCodePointBreakIteratorfirst)P A		  IntlCodePointBreakIteratorsetText)O A  IntlCodePointBreakIteratorgetText9N A;  IntlCodePointBreakIteratorcreateCodePointInstance5M A3	  IntlCodePointBreakIteratorcreateTitleInstance8L A9	  IntlCodePointBreakIteratorcreateSentenceInstance9K A;	  IntlCodePointBreakIteratorcreateCharacterInstance4J A1	  IntlCodePointBreakIteratorcreateLineInstance4I A1	  IntlCodePointBreakIteratorcreateWordInstance-H A#  IntlCodePointBreakIterator__construct2G A-  IntlCodePointBreakIteratorgetLastCodePoint    = f:tN#gE#     } ^ = s !%  UConvertergetAvailabler !!	  UConverterreasonText!q !+  UConvertergetErrorMessagep !%  UConvertergetErrorCodeo !  UConvertertranscoden !	  UConverterconvert!m !'  UConverterfromUCallbackl !#  UConvertertoUCallbackk !'		  UConvertersetSubstCharsj !'  UConvertergetSubstChars$i !1  UConvertergetDestinationTypeh !'  UConvertergetSourceType(g !9  UConvertergetDestinationEncoding#f !/  UConvertergetSourceEncoding(e !9		  UConvertersetDestinationEncoding#d !/		  UConvertersetSourceEncodingc !#  UConverter__constructb /  IntlPartsIteratorvalida /  IntlPartsIteratorrewind` /  IntlPartsIteratornext_ /  IntlPartsIteratorkey ^ /  IntlPartsIteratorcurrent)] /-  IntlPartsIteratorgetBreakIterator1\ A+  IntlCodePointBreakIteratorgetErrorMessage.[ A%  IntlCodePointBreakIteratorgetErrorCode2Z A-	  IntlCodePointBreakIteratorgetPartsIterator     L nN/vT: iO3      l L     '		  IntlCharcharDirection 		  IntlCharisbase 		  IntlCharisprint %		  IntlCharisISOControl 		  IntlChariscntrl %		  IntlCharisWhitespace +		  IntlCharisJavaSpaceChar 		  IntlCharisspace 		  IntlCharisdefined
 		  IntlCharisblank	 		  IntlCharisgraph 		  IntlCharispunct 		  IntlCharisxdigit 		  IntlCharisalnum 		  IntlCharisalpha 		  IntlCharisdigit 		  IntlCharistitle 		  IntlCharisupper 		  IntlCharislower  +		  IntlChargetNumericValue& 9		  IntlChargetIntPropertyMaxValue&~ 9		  IntlChargetIntPropertyMinValue%} 3  IntlChargetIntPropertyValue| '		  IntlCharisUWhiteSpace{ %		  IntlCharisUUppercasez %		  IntlCharisULowercasey '		  IntlCharisUAlphabetic#x /  IntlCharhasBinaryPropertyw 		  IntlCharordv 		  IntlCharchru !%  UConvertergetStandardst !!		  UConvertergetAliases    T d@ ]4u[A'     s T                1 )  SessionHandleropen"0 1		  IntlChargetFC_NFKC_Closure!/ /  IntlChargetUnicodeVersion. 		  IntlCharcharAge- 	  IntlCharforDigit, 	  IntlChardigit+ 	  IntlCharfoldCase* 		  IntlChartotitle) 		  IntlChartoupper( 		  IntlChartolower' %		  IntlCharisJavaIDPart& '		  IntlCharisJavaIDStart% '		  IntlCharisIDIgnorable$ 		  IntlCharisIDPart# 		  IntlCharisIDStart&" 5  IntlChargetPropertyValueEnum&! 5  IntlChargetPropertyValueName  +		  IntlChargetPropertyEnum  +	  IntlChargetPropertyName '  IntlCharenumCharNames %	  IntlCharcharFromName 	  IntlCharcharName %		  IntlChargetBlockCode )		  IntlCharcharDigitValue! /		  IntlChargetCombiningClass '	  IntlCharenumCharTypes 		  IntlCharcharType$ 5		  IntlChargetBidiPairedBracket !		  IntlCharcharMirror !		  IntlCharisMirrored    ` jG%wR1i@     ~ `                              N %  PDOExceptiongetFileM %  PDOExceptiongetCodeL %!  PDOExceptiongetMessageK %  PDOException__wakeup J %#  PDOException__constructI %  PDOException__clone H )!  AssertionError__toString&G )-  AssertionErrorgetTraceAsString!F )#  AssertionErrorgetPreviousE )  AssertionErrorgetTraceD )  AssertionErrorgetLineC )  AssertionErrorgetFileB )  AssertionErrorgetCode A )!  AssertionErrorgetMessage@ )  AssertionError__wakeup"? )#  AssertionError__construct> )  AssertionError__clone= 	  Directoryread< 	  Directoryrewind; 	  Directoryclose: +  php_user_filteronClose9 +  php_user_filteronCreate8 +  php_user_filterfilter 7 )!  SessionHandlercreate_sid6 )		  SessionHandlergc5 )		  SessionHandlerdestroy4 )  SessionHandlerwrite3 )		  SessionHandlerread2 )  SessionHandlerclose   ! ] zY?)kT=#fC!    } ]                   o %  PDOStatementerrorInfon %  PDOStatementerrorCode m %#  PDOStatementfetchObjectl %  PDOStatementfetchAllk %#	  PDOStatementfetchColumnj %  PDOStatementrowCounti %  PDOStatementbindValue h %!  PDOStatementbindColumng %  PDOStatementbindParamf %  PDOStatementfetche %	  PDOStatementexecuted 3  PDOgetAvailableDriversc   PDO__sleepb   PDO__wakeupa 	  PDOquote` %		  PDOgetAttribute_   PDOerrorInfo^   PDOerrorCode] %	  PDOlastInsertId\   PDOquery[ 		  PDOexecZ %  PDOsetAttributeY '  PDOinTransactionX   PDOrollBackW   PDOcommitV -  PDObeginTransactionU 	  PDOprepareT #	  PDO__constructS %!  PDOException__toString$R %-  PDOExceptiongetTraceAsStringQ %#  PDOExceptiongetPreviousP %  PDOExceptiongetTraceO %  PDOExceptiongetLine    X rN-eE#[9     t X                       '		  PharcompressFiles /	  PharbuildFromIterator
 1	  PharbuildFromDirectory	 '	  PharaddFromString 	  PharaddFile #	  PharaddEmptyDir !  Phar__destruct #	  Phar__construct '!  PharException__toString% '-  PharExceptiongetTraceAsString  '#  PharExceptiongetPrevious '  PharExceptiongetTrace  '  PharExceptiongetLine '  PharExceptiongetFile~ '  PharExceptiongetCode} '!  PharExceptiongetMessage| '  PharException__wakeup!{ '#  PharException__constructz '  PharException__cloney %  PDOStatement__sleepx %  PDOStatement__wakeup#w %+  PDOStatementdebugDumpParamsv %#  PDOStatementcloseCursoru %!  PDOStatementnextRowset!t %%	  PDOStatementsetFetchMode!s %'		  PDOStatementgetColumnMetar %#  PDOStatementcolumnCount q %%		  PDOStatementgetAttribute"p %%  PDOStatementsetAttribute   $ ] q\H3 nU;!kT6      t ]             0   PharcanWrite/ #	  PharcanCompress. !  PharapiVersion- '  PharstopBuffering, )  PharstartBuffering+ 	  PharsetStub"* 7	  PharsetSignatureAlgorithm) #		  PharsetMetadata( )  PharsetDefaultStub' 		  PharsetAlias& #		  PharoffsetUnset%   PharoffsetSet$ 		  PharoffsetGet# %		  PharoffsetExists" !  PharisWritable! %		  PharisFileFormat  %  PharisCompressed #  PharisBuffering #  PharhasMetadata !  PhargetVersion   PhargetStub %  PhargetSignature #  PhargetModified #  PhargetMetadata   PhargetPath   PhargetAlias 	  PharextractTo #  PhardelMetadata 		  Phardelete   Pharcount   Pharcopy '  PharconvertToData  3  PharconvertToExecutable !	  Phardecompress 	  Pharcompress +  PhardecompressFiles   % d sP8!u\?*r^J7      { d                  U   PhargetMTimeT   PhargetATimeS   PhargetGroupR   PhargetOwnerQ   PhargetSizeP   PhargetInodeO   PhargetPermsN #  PhargetPathnameM !  Phar__toStringL 		  PharseekK   PharvalidJ   PharisDotI #	  PhargetBasenameH %  PhargetExtensionG #  PhargetFilenameF 	  PharsetFlagsE   PhargetFlagsD   PharcurrentC   PharkeyB   PharnextA   Pharrewind@ )  PhargetSubPathname? !  PhargetSubPath> #  PhargetChildren= #	  PharhasChildren<   PharwebPhar; '		  PharunlinkArchive: !		  PharmungServer9   Pharmount8 	  Pharrunning7   PharmapPhar6 	  PharloadPhar 5 3	  PharisValidPharFilename4 1  PharinterceptFileFuncs"3 9  PhargetSupportedSignatures#2 ;  PhargetSupportedCompression1 /  PharcreateDefaultStub   ! d vaE+nQ3jN1
      d                          v 	  PharDataextractTou #  PharDatadelMetadatat 		  PharDatadeletes   PharDatacountr   PharDatacopyq '  PharDataconvertToData$p 3  PharDataconvertToExecutableo !	  PharDatadecompressn 	  PharDatacompressm +  PharDatadecompressFilesl '		  PharDatacompressFiles"k /	  PharDatabuildFromIterator#j 1	  PharDatabuildFromDirectoryi '	  PharDataaddFromStringh 	  PharDataaddFileg #	  PharDataaddEmptyDirf !  PharData__destructe #	  PharData__constructd '  Phar_bad_state_exc %	  PharsetInfoClassb %	  PharsetFileClassa   PharopenFile` #	  PhargetPathInfo_ #	  PhargetFileInfo^ #  PhargetRealPath] '  PhargetLinkTarget\   PharisLink[   PharisDirZ   PharisFileY %  PharisExecutableX !  PharisReadableW   PhargetTypeV   PhargetCTime    X pV9gI+kK.    } X                    " 1  PharDatainterceptFileFuncs& 9  PharDatagetSupportedSignatures' ;  PharDatagetSupportedCompression" /  PharDatacreateDefaultStub   PharDatacanWrite #	  PharDatacanCompress !  PharDataapiVersion '  PharDatastopBuffering )  PharDatastartBuffering 	  PharDatasetStub&
 7	  PharDatasetSignatureAlgorithm	 #		  PharDatasetMetadata )  PharDatasetDefaultStub 		  PharDatasetAlias #		  PharDataoffsetUnset   PharDataoffsetSet 		  PharDataoffsetGet %		  PharDataoffsetExists !  PharDataisWritable %		  PharDataisFileFormat  %  PharDataisCompressed #  PharDataisBuffering~ #  PharDatahasMetadata} !  PharDatagetVersion|   PharDatagetStub{ %  PharDatagetSignaturez #  PharDatagetModifiedy #  PharDatagetMetadatax   PharDatagetPathw   PharDatagetAlias   " R nQ1lV<!{dG)      m R      6   PharDatagetCTime5   PharDatagetMTime4   PharDatagetATime3   PharDatagetGroup2   PharDatagetOwner1   PharDatagetSize0   PharDatagetInode/   PharDatagetPerms. #  PharDatagetPathname- !  PharData__toString, 		  PharDataseek+   PharDatavalid*   PharDataisDot) #	  PharDatagetBasename( %  PharDatagetExtension' #  PharDatagetFilename& 	  PharDatasetFlags%   PharDatagetFlags$   PharDatacurrent#   PharDatakey"   PharDatanext!   PharDatarewind  )  PharDatagetSubPathname !  PharDatagetSubPath #  PharDatagetChildren #	  PharDatahasChildren   PharDatawebPhar '		  PharDataunlinkArchive !		  PharDatamungServer   PharDatamount 	  PharDatarunning   PharDatamapPhar 	  PharDataloadPhar$ 3	  PharDataisValidPharFilename    V y`@"lJ)dC!     t V                  T %  PharFileInfogetPathS %#		  PharFileInfosetMetadata R %%  PharFileInfoisCRCChecked Q %%	  PharFileInfoisCompressedP %#  PharFileInfohasMetadata O %%  PharFileInfogetPharFlagsN %#  PharFileInfogetMetadataM %!  PharFileInfogetContentL %  PharFileInfogetCRC32%K %/  PharFileInfogetCompressedSizeJ %#  PharFileInfodelMetadataI %!  PharFileInfodecompressH %		  PharFileInfocompressG %		  PharFileInfochmodF %!  PharFileInfo__destructE %#		  PharFileInfo__constructD '  PharData_bad_state_exC %	  PharDatasetInfoClassB %	  PharDatasetFileClassA   PharDataopenFile@ #	  PharDatagetPathInfo? #	  PharDatagetFileInfo> #  PharDatagetRealPath= '  PharDatagetLinkTarget<   PharDataisLink;   PharDataisDir:   PharDataisFile9 %  PharDataisExecutable8 !  PharDataisReadable7   PharDatagetType    M wX9bA a?     r M           "q 3  ReflectionException__clonep %!  PharFileInfo__toString!o %'  PharFileInfo_bad_state_ex n %%	  PharFileInfosetInfoClass m %%	  PharFileInfosetFileClassl %  PharFileInfoopenFilek %#	  PharFileInfogetPathInfoj %#	  PharFileInfogetFileInfoi %#  PharFileInfogetRealPath!h %'  PharFileInfogetLinkTargetg %  PharFileInfoisLinkf %  PharFileInfoisDire %  PharFileInfoisFile d %%  PharFileInfoisExecutablec %!  PharFileInfoisReadableb %!  PharFileInfoisWritablea %  PharFileInfogetType` %  PharFileInfogetCTime_ %  PharFileInfogetMTime^ %  PharFileInfogetATime] %  PharFileInfogetGroup\ %  PharFileInfogetOwner[ %  PharFileInfogetSizeZ %  PharFileInfogetInodeY %  PharFileInfogetPermsX %#  PharFileInfogetPathnameW %#	  PharFileInfogetBasename V %%  PharFileInfogetExtensionU %#  PharFileInfogetFilename    L c>tO3xI    L                        6 A5  ReflectionFunctionAbstractgetClosureScopeClass0 A)  ReflectionFunctionAbstractgetClosureThis, A!  ReflectionFunctionAbstractisVariadic- A#  ReflectionFunctionAbstractisGenerator/ A'  ReflectionFunctionAbstractisUserDefined, A!  ReflectionFunctionAbstractisInternal. A%  ReflectionFunctionAbstractisDeprecated+  A  ReflectionFunctionAbstractisClosure- A#  ReflectionFunctionAbstractinNamespace)~ A  ReflectionFunctionAbstract__clone} !	  Reflectionexport"| !-		  ReflectiongetModifierNames%{ 3!  ReflectionException__toString+z 3-  ReflectionExceptiongetTraceAsString&y 3#  ReflectionExceptiongetPrevious#x 3  ReflectionExceptiongetTrace"w 3  ReflectionExceptiongetLine"v 3  ReflectionExceptiongetFile"u 3  ReflectionExceptiongetCode%t 3!  ReflectionExceptiongetMessage#s 3  ReflectionException__wakeup'r 3#  ReflectionException__construct    F n9	n,a,    n F                        % 1#		  ReflectionFunction__construct, A!  ReflectionFunctionAbstract__toString( A  ReflectionFunctionAbstractexport/ A'  ReflectionFunctionAbstractgetReturnType/ A'  ReflectionFunctionAbstracthasReturnType2 A-  ReflectionFunctionAbstractreturnsReference4 A1  ReflectionFunctionAbstractgetStaticVariables. A%  ReflectionFunctionAbstractgetStartLine. A%  ReflectionFunctionAbstractgetShortName/ A'  ReflectionFunctionAbstractgetParameters? AG  ReflectionFunctionAbstractgetNumberOfRequiredParameters7 A7  ReflectionFunctionAbstractgetNumberOfParameters2 A-  ReflectionFunctionAbstractgetNamespaceName) A  ReflectionFunctionAbstractgetName- A#  ReflectionFunctionAbstractgetFileName2 A-  ReflectionFunctionAbstractgetExtensionName.
 A%  ReflectionFunctionAbstractgetExtension,	 A!  ReflectionFunctionAbstractgetEndLine/ A'  ReflectionFunctionAbstractgetDocComment    f kD[1	\5    f                                                *1 1-  ReflectionFunctiongetNamespaceName!0 1  ReflectionFunctiongetName%/ 1#  ReflectionFunctiongetFileName*. 1-  ReflectionFunctiongetExtensionName&- 1%  ReflectionFunctiongetExtension$, 1!  ReflectionFunctiongetEndLine'+ 1'  ReflectionFunctiongetDocComment.* 15  ReflectionFunctiongetClosureScopeClass() 1)  ReflectionFunctiongetClosureThis$( 1!  ReflectionFunctionisVariadic%' 1#  ReflectionFunctionisGenerator'& 1'  ReflectionFunctionisUserDefined$% 1!  ReflectionFunctionisInternal&$ 1%  ReflectionFunctionisDeprecated## 1  ReflectionFunctionisClosure%" 1#  ReflectionFunctioninNamespace!! 1  ReflectionFunction__clone$  1!  ReflectionFunctiongetClosure$ 1!		  ReflectionFunctioninvokeArgs  1	  ReflectionFunctioninvoke$ 1!  ReflectionFunctionisDisabled! 1	  ReflectionFunctionexport$ 1!  ReflectionFunction__toString    H jAh?o<    y H                    .G 33  ReflectionParameterisPassedByReference"F 3  ReflectionParametergetName%E 3!  ReflectionParameter__toString(D 3#  ReflectionParameter__construct#C 3  ReflectionParameterexport"B 3  ReflectionParameter__clone0A 37  ReflectionGeneratorgetExecutingGenerator"@ 3  ReflectionGeneratorgetThis&? 3#  ReflectionGeneratorgetFunction#> 3	  ReflectionGeneratorgetTrace+= 3-  ReflectionGeneratorgetExecutingFile+< 3-  ReflectionGeneratorgetExecutingLine&; 3#		  ReflectionGenerator__construct': 1'  ReflectionFunctiongetReturnType'9 1'  ReflectionFunctionhasReturnType*8 1-  ReflectionFunctionreturnsReference,7 11  ReflectionFunctiongetStaticVariables&6 1%  ReflectionFunctiongetStartLine&5 1%  ReflectionFunctiongetShortName'4 1'  ReflectionFunctiongetParameters73 1G  ReflectionFunctiongetNumberOfRequiredParameters/2 17  ReflectionFunctiongetNumberOfParameters   v<   |vpjd^XRLF@:4.("
ztnhb\VPJD>82,& ~xrlf`ZTNHB<                                                                      s  Z  @  (    x  ^  E  ,    r  U  ;  $    {  f  O  3    {  a  M  :  '      j  U  ?  (    }  c  K  4      a  @  "  	  n  Q  3      n  W  ~>  }'  |  {w  z^  xG  w1  v  u  tq  sT  r6  q  pv  oU  n0  m  lo  kN  j1  i  hs  gY  fF  e3  d  c  bm  aW  `?  _$  ^
  ]p  \V  [;  Z  Y  Xg  WD  V   U  Tj  SP  R5  Q  P{  O]  NG  M2  L  K  Jh  IK  H2  G  Fz  Ec  DJ  C.  B  A|  @e  ?L  >6  =  <  ;l  :T  9<    H oI$a9jB"     p H                  %^ 3!  ReflectionNamedTypeallowsNull"] 3  ReflectionNamedType__clone"\ 3  ReflectionNamedTypegetName [ )!  ReflectionType__toStringZ )  ReflectionTypeisBuiltin Y )!  ReflectionTypeallowsNullX )  ReflectionType__clone%W 3!  ReflectionParameterisVariadic6V 3C  ReflectionParametergetDefaultValueConstantName1U 39  ReflectionParameterisDefaultValueConstant*T 3+  ReflectionParametergetDefaultValue2S 3;  ReflectionParameterisDefaultValueAvailable%R 3!  ReflectionParameterisOptional&Q 3#  ReflectionParametergetPosition%P 3!  ReflectionParameterallowsNull%O 3!  ReflectionParameterisCallable"N 3  ReflectionParameterisArray"M 3  ReflectionParametergetType"L 3  ReflectionParameterhasType#K 3  ReflectionParametergetClass,J 3/  ReflectionParametergetDeclaringClass/I 35  ReflectionParametergetDeclaringFunction-H 31  ReflectionParametercanBePassedByValue    S gBkCZ3    x S                         "w -!  ReflectionMethodisInternal$v -%  ReflectionMethodisDeprecated!u -  ReflectionMethodisClosure#t -#  ReflectionMethodinNamespaces -  ReflectionMethod__clone%r -'		  ReflectionMethodsetAccessible$q -%  ReflectionMethodgetPrototype)p -/  ReflectionMethodgetDeclaringClass$o -!  ReflectionMethodinvokeArgs n -  ReflectionMethodinvoke$m -%  ReflectionMethodgetModifiers"l -!		  ReflectionMethodgetClosure$k -%  ReflectionMethodisDestructor%j -'  ReflectionMethodisConstructor i -  ReflectionMethodisStatich -  ReflectionMethodisFinal"g -!  ReflectionMethodisAbstract#f -#  ReflectionMethodisProtected!e -  ReflectionMethodisPrivate d -  ReflectionMethodisPublic"c -!  ReflectionMethod__toString$b -#	  ReflectionMethod__construct a -  ReflectionMethodexport%` 3!  ReflectionNamedType__toString$_ 3  ReflectionNamedTypeisBuiltin    [ d5pN#lE    | [                                      +	  ReflectionClassexport +  ReflectionClass__clone% -'  ReflectionMethodgetReturnType% -'  ReflectionMethodhasReturnType(
 --  ReflectionMethodreturnsReference*	 -1  ReflectionMethodgetStaticVariables$ -%  ReflectionMethodgetStartLine$ -%  ReflectionMethodgetShortName% -'  ReflectionMethodgetParameters5 -G  ReflectionMethodgetNumberOfRequiredParameters- -7  ReflectionMethodgetNumberOfParameters( --  ReflectionMethodgetNamespaceName -  ReflectionMethodgetName# -#  ReflectionMethodgetFileName(  --  ReflectionMethodgetExtensionName$ -%  ReflectionMethodgetExtension"~ -!  ReflectionMethodgetEndLine%} -'  ReflectionMethodgetDocComment,| -5  ReflectionMethodgetClosureScopeClass&{ -)  ReflectionMethodgetClosureThis"z -!  ReflectionMethodisVariadic#y -#  ReflectionMethodisGenerator%x -'  ReflectionMethodisUserDefined    J rK&jCg@    q J                $' +'  ReflectionClassgetInterfaces,& +7		  ReflectionClassgetReflectionConstant"% +#		  ReflectionClassgetConstant-$ +9  ReflectionClassgetReflectionConstants## +%  ReflectionClassgetConstants"" +#		  ReflectionClasshasConstant$! +'	  ReflectionClassgetProperties"  +#		  ReflectionClassgetProperty" +#		  ReflectionClasshasProperty! +!	  ReflectionClassgetMethods  +		  ReflectionClassgetMethod  +		  ReflectionClasshasMethod% +)  ReflectionClassgetConstructor$ +'  ReflectionClassgetDocComment! +!  ReflectionClassgetEndLine# +%  ReflectionClassgetStartLine" +#  ReflectionClassgetFileName" +#  ReflectionClassisCloneable% +)  ReflectionClassisInstantiable" +#  ReflectionClassisAnonymous$ +'  ReflectionClassisUserDefined! +!  ReflectionClassisInternal +  ReflectionClassgetName! +!  ReflectionClass__toString" +#		  ReflectionClass__construct    ^ f=h1\*     ^                                        #> +%  ReflectionClassgetExtension*= +3		  ReflectionClassimplementsInterface$< +'  ReflectionClassisIterateable!; +!  ReflectionClassisIterable+: +5  ReflectionClassgetDefaultProperties/9 +9  ReflectionClasssetStaticPropertyValue.8 +9	  ReflectionClassgetStaticPropertyValue*7 +3  ReflectionClassgetStaticProperties#6 +%		  ReflectionClassisSubclassOf%5 +)  ReflectionClassgetParentClass&4 ++	  ReflectionClassnewInstanceArgs43 +G  ReflectionClassnewInstanceWithoutConstructor"2 +#		  ReflectionClassnewInstance!1 +!		  ReflectionClassisInstance#0 +%  ReflectionClassgetModifiers/ +  ReflectionClassisFinal!. +!  ReflectionClassisAbstract- +  ReflectionClassisTrait&, ++  ReflectionClassgetTraitAliases$+ +'  ReflectionClassgetTraitNames * +  ReflectionClassgetTraits") +#  ReflectionClassisInterface(( +/  ReflectionClassgetInterfaceNames    J a?c=|T+    r J                %W -'	  ReflectionObjectgetProperties#V -#		  ReflectionObjectgetProperty#U -#		  ReflectionObjecthasProperty"T -!	  ReflectionObjectgetMethods!S -		  ReflectionObjectgetMethod!R -		  ReflectionObjecthasMethod&Q -)  ReflectionObjectgetConstructor%P -'  ReflectionObjectgetDocComment"O -!  ReflectionObjectgetEndLine$N -%  ReflectionObjectgetStartLine#M -#  ReflectionObjectgetFileName#L -#  ReflectionObjectisCloneable&K -)  ReflectionObjectisInstantiable#J -#  ReflectionObjectisAnonymous%I -'  ReflectionObjectisUserDefined"H -!  ReflectionObjectisInternalG -  ReflectionObjectgetName"F -!  ReflectionObject__toStringE -  ReflectionObject__clone#D -#		  ReflectionObject__constructC -	  ReflectionObjectexport#B +%  ReflectionClassgetShortName'A +-  ReflectionClassgetNamespaceName"@ +#  ReflectionClassinNamespace'? +-  ReflectionClassgetExtensionName    O \,f<a)     O                         /n -9	  ReflectionObjectgetStaticPropertyValue+m -3  ReflectionObjectgetStaticProperties$l -%		  ReflectionObjectisSubclassOf&k -)  ReflectionObjectgetParentClass'j -+	  ReflectionObjectnewInstanceArgs5i -G  ReflectionObjectnewInstanceWithoutConstructor#h -#		  ReflectionObjectnewInstance"g -!		  ReflectionObjectisInstance$f -%  ReflectionObjectgetModifierse -  ReflectionObjectisFinal"d -!  ReflectionObjectisAbstractc -  ReflectionObjectisTrait'b -+  ReflectionObjectgetTraitAliases%a -'  ReflectionObjectgetTraitNames!` -  ReflectionObjectgetTraits#_ -#  ReflectionObjectisInterface)^ -/  ReflectionObjectgetInterfaceNames%] -'  ReflectionObjectgetInterfaces-\ -7		  ReflectionObjectgetReflectionConstant#[ -#		  ReflectionObjectgetConstant.Z -9  ReflectionObjectgetReflectionConstants$Y -%  ReflectionObjectgetConstants#X -#		  ReflectionObjecthasConstant    ; yQ#Y5vP+    i ;   + 1/  ReflectionPropertygetDeclaringClass& 1%  ReflectionPropertygetModifiers# 1  ReflectionPropertyisDefault" 1  ReflectionPropertyisStatic% 1#  ReflectionPropertyisProtected# 1  ReflectionPropertyisPrivate"  1  ReflectionPropertyisPublic# 1	  ReflectionPropertysetValue"~ 1	  ReflectionPropertygetValue!} 1  ReflectionPropertygetName$| 1!  ReflectionProperty__toString'{ 1#  ReflectionProperty__construct"z 1  ReflectionPropertyexport!y 1  ReflectionProperty__clone$x -%  ReflectionObjectgetShortName(w --  ReflectionObjectgetNamespaceName#v -#  ReflectionObjectinNamespace(u --  ReflectionObjectgetExtensionName$t -%  ReflectionObjectgetExtension+s -3		  ReflectionObjectimplementsInterface%r -'  ReflectionObjectisIterateable"q -!  ReflectionObjectisIterable,p -5  ReflectionObjectgetDefaultProperties0o -9  ReflectionObjectsetStaticPropertyValue    ] Y*V)tO&     ]                                         ' 3%  ReflectionExtensiongetConstants' 3%  ReflectionExtensiongetFunctions% 3!  ReflectionExtensiongetVersion" 3  ReflectionExtensiongetName% 3!  ReflectionExtension__toString& 3#		  ReflectionExtension__construct" 3	  ReflectionExtensionexport" 3  ReflectionExtension__clone, ;'  ReflectionClassConstantgetDocComment0 ;/  ReflectionClassConstantgetDeclaringClass+ ;%  ReflectionClassConstantgetModifiers* ;#  ReflectionClassConstantisProtected( ;  ReflectionClassConstantisPrivate' ;  ReflectionClassConstantisPublic' ;  ReflectionClassConstantgetValue& ;  ReflectionClassConstantgetName) ;!  ReflectionClassConstant__toString, ;#  ReflectionClassConstant__construct'
 ;  ReflectionClassConstantexport&	 ;  ReflectionClassConstant__clone' 1'		  ReflectionPropertysetAccessible' 1'  ReflectionPropertygetDocComment    L U3	a5_9    r L                      #3 5  mysqli_sql_exceptiongetLine#2 5  mysqli_sql_exceptiongetFile#1 5  mysqli_sql_exceptiongetCode&0 5!  mysqli_sql_exceptiongetMessage$/ 5  mysqli_sql_exception__wakeup(. 5#  mysqli_sql_exception__construct#- 5  mysqli_sql_exception__clone+, ;%  ReflectionZendExtensiongetCopyright%+ ;  ReflectionZendExtensiongetURL(* ;  ReflectionZendExtensiongetAuthor)) ;!  ReflectionZendExtensiongetVersion&( ;  ReflectionZendExtensiongetName)' ;!  ReflectionZendExtension__toString*& ;#		  ReflectionZendExtension__construct&% ;	  ReflectionZendExtensionexport&$ ;  ReflectionZendExtension__clone&# 3#  ReflectionExtensionisTemporary'" 3%  ReflectionExtensionisPersistent! 3  ReflectionExtensioninfo*  3+  ReflectionExtensiongetDependencies( 3'  ReflectionExtensiongetClassNames% 3!  ReflectionExtensiongetClasses( 3'  ReflectionExtensiongetINIEntries    Q W4~Y9 tQ0      k Q             Q   mysqlissl_setP   mysqliset_optO #		  mysqliset_charsetN 		  mysqliselect_dbM 		  mysqlisavepointL /		  mysqlirelease_savepointK !		  mysqlireal_queryJ '		  mysqliescape_stringI -  mysqlireap_async_query H 1		  mysqlireal_escape_stringG %  mysqlireal_connectF 		  mysqliprepareE #  mysqlinext_resultD %  mysqlimore_resultsC #  mysqli__constructB #		  mysqlimulti_queryA %  mysqliget_warnings@ +  mysqliget_server_info"? 5  mysqliget_connection_stats> +  mysqliget_client_info= #  mysqliget_charset< +  mysqlidump_debug_info;   mysqliconnect : 1  mysqlicharacter_set_name9 #  mysqlichange_user 8 /  mysqlibegin_transaction&7 5!  mysqli_sql_exception__toString,6 5-  mysqli_sql_exceptiongetTraceAsString'5 5#  mysqli_sql_exceptiongetPrevious$4 5  mysqli_sql_exceptiongetTrace    \ nQ.cBqP2     w \                          n #  mysqli_stmtfetchm #  mysqli_stmtexecutel #		  mysqli_stmtdata_seekk #  mysqli_stmtclosej ##	  mysqli_stmtbind_resultdi #!  mysqli_stmtbind_paramdh #  mysqli_stmtattr_setg #		  mysqli_stmtattr_getf ##  mysqli_stmt__construct e '#  mysqli_resultfree_resultd '!		  mysqli_resultfield_seekc '  mysqli_resultfetch_row"b '%  mysqli_resultfetch_object a '#  mysqli_resultfetch_assoc ` '#	  mysqli_resultfetch_array_ '	  mysqli_resultfetch_all'^ '1		  mysqli_resultfetch_field_direct!] '%  mysqli_resultfetch_fields \ '#  mysqli_resultfetch_field[ '		  mysqli_resultdata_seekZ '  mysqli_resultfreeY '  mysqli_resultclose X '#  mysqli_result__constructW )  mysqli_warningnext!V )#  mysqli_warning__constructU !  mysqliuse_resultT #  mysqlithread_safeS %	  mysqlistore_resultR   mysqlistmt_init    G vX2pP.i=     h G         	 /  SimpleXMLIteratorvalid /  SimpleXMLIteratorrewind -  SimpleXMLElementcount" -!  SimpleXMLElement__toString% -%	  SimpleXMLElementaddAttribute! -	  SimpleXMLElementaddChild -  SimpleXMLElementgetName) --  SimpleXMLElementgetDocNamespaces% -'	  SimpleXMLElementgetNamespaces!  -  SimpleXMLElementchildren# -!  SimpleXMLElementattributes0~ -9  SimpleXMLElementregisterXPathNamespace} -		  SimpleXMLElementxpath| -	  SimpleXMLElementsaveXML{ -	  SimpleXMLElementasXML$z -#	  SimpleXMLElement__constructy #!  mysqli_stmtget_resultx #%  mysqli_stmtstore_resultw #		  mysqli_stmtpreparev #  mysqli_stmtresetu ##  mysqli_stmtfree_result#t #)  mysqli_stmtsend_long_datas #  mysqli_stmtnum_rowsr ##  mysqli_stmtnext_resultq #%  mysqli_stmtmore_results"p #+  mysqli_stmtresult_metadatao #%  mysqli_stmtget_warnings    ` wP(hC|V5     `                                      )" !;  SoapClient__getLastRequestHeaders#! !/  SoapClient__getLastResponse"  !-  SoapClient__getLastRequest !!  SoapClient__soapCall !  SoapClient__call !!	  SoapClientSoapClient /  SimpleXMLIteratorcount# /!  SimpleXMLIterator__toString& /%	  SimpleXMLIteratoraddAttribute" /	  SimpleXMLIteratoraddChild  /  SimpleXMLIteratorgetName* /-  SimpleXMLIteratorgetDocNamespaces& /'	  SimpleXMLIteratorgetNamespaces" /  SimpleXMLIteratorchildren$ /!  SimpleXMLIteratorattributes1 /9  SimpleXMLIteratorregisterXPathNamespace /		  SimpleXMLIteratorxpath  /	  SimpleXMLIteratorsaveXML /	  SimpleXMLIteratorasXML% /#	  SimpleXMLIterator__construct$ /#  SimpleXMLIteratorgetChildren$ /#  SimpleXMLIteratorhasChildren /  SimpleXMLIteratornext /  SimpleXMLIteratorkey 
 /  SimpleXMLIteratorcurrent    P oN-jL,uZ:      t P            !@ -  SoapFaultgetTraceAsString? #  SoapFaultgetPrevious>   SoapFaultgetTrace=   SoapFaultgetLine<   SoapFaultgetFile;   SoapFaultgetCode: !  SoapFaultgetMessage9   SoapFault__wakeup8 #  SoapFault__construct7   SoapFault__clone6 !  SoapFault__toString5   SoapFaultSoapFault4 !'		  SoapServeraddSoapHeader3 !  SoapServerfault2 !	  SoapServerhandle1 !%  SoapServergetFunctions0 !#		  SoapServeraddFunction/ !		  SoapServersetObject. !	  SoapServersetClass - !)		  SoapServersetPersistence, !!	  SoapServerSoapServer+   SoapVarSoapVar"* !-	  SoapClient__setSoapHeaders) !'	  SoapClient__setLocation( !%  SoapClient__getCookies' !#	  SoapClient__setCookie& !#  SoapClient__doRequest% !!  SoapClient__getTypes $ !)  SoapClient__getFunctions*# !=  SoapClient__getLastResponseHeaders   ! Y yW3_;!	rYA+      u Y               a   tidyNodeisComment` #  tidyNodehasSiblings_ #  tidyNodehasChildren^ #  tidy__construct]   tidybody\   tidyhtml[   tidyheadZ   tidyrootY   tidyisXmlX   tidyisXhtmlW   tidygetOptDocV !  tidygetHtmlVerU   tidygetStatusT   tidygetConfigS !  tidygetReleaseR !  tidyrepairFileQ %  tidyrepairStringP #  tidyparseStringO   tidyparseFileN #  tidycleanRepair!M +!  SodiumException__toString'L +-  SodiumExceptiongetTraceAsString"K +#  SodiumExceptiongetPreviousJ +  SodiumExceptiongetTraceI +  SodiumExceptiongetLineH +  SodiumExceptiongetFileG +  SodiumExceptiongetCode!F +!  SodiumExceptiongetMessageE +  SodiumException__wakeup#D +#  SodiumException__constructC +  SodiumException__cloneB !!  SoapHeaderSoapHeaderA   SoapParamSoapParam    Q iK2iD!qYA!    { Q             ' 9		  XMLReadersetRelaxNGSchemaSource!~ -		  XMLReadersetRelaxNGSchema$} /  XMLReadersetParserProperty| 		  XMLReadersetSchema{ !  XMLReaderreadStringz %  XMLReaderreadOuterXmly %  XMLReaderreadInnerXmlx 	  XMLReadernextw   XMLReaderreadv 	  XMLReaderopen$u 3  XMLReadermoveToNextAttribute%t 5  XMLReadermoveToFirstAttributes '  XMLReadermoveToElement$r /  XMLReadermoveToAttributeNs q +		  XMLReadermoveToAttribute"p /		  XMLReadermoveToAttributeNo o +		  XMLReaderlookupNamespacen   XMLReaderisValid"m /		  XMLReadergetParserProperty!l )  XMLReadergetAttributeNsk )		  XMLReadergetAttributeNoj %		  XMLReadergetAttributei   XMLReadercloseh #  tidyNode__constructg   tidyNodegetParentf   tidyNodeisPhpe   tidyNodeisAspd   tidyNodeisJstec   tidyNodeisTextb   tidyNodeisHtml    ] X2jFdD      ]                               # !/		  ZipArchivesetArchiveComment !!  ZipArchiverenameName !#  ZipArchiverenameIndex !!	  ZipArchiveaddPattern !	  ZipArchiveaddGlob !	  ZipArchiveaddFile! !'  ZipArchiveaddFromString !#		  ZipArchiveaddEmptyDir! !+  ZipArchivegetStatusString !  ZipArchivecount !  ZipArchiveclose !#		  ZipArchivesetPassword !	  ZipArchiveopen% '-  XSLTProcessorgetSecurityPrefs% '-		  XSLTProcessorsetSecurityPrefs! '%		  XSLTProcessorsetProfiling)
 '5	  XSLTProcessorregisterPHPFunctions$	 '+  XSLTProcessorhasExsltSupport& '+  XSLTProcessorremoveParameter# '%  XSLTProcessorgetParameter# '%  XSLTProcessorsetParameter# ')		  XSLTProcessortransformToXml% ')  XSLTProcessortransformToUri# ')		  XSLTProcessortransformToDoc% '-		  XSLTProcessorimportStylesheet 	  XMLReaderexpand  	  XMLReaderXML    D jF&dD"Q     l D        %4 !/  ZipArchivesetEncryptionName'3 !3  ZipArchivesetCompressionIndex&2 !1  ZipArchivesetCompressionName.1 !A  ZipArchivegetExternalAttributesIndex-0 !?  ZipArchivegetExternalAttributesName./ !A  ZipArchivesetExternalAttributesIndex-. !?  ZipArchivesetExternalAttributesName- !		  ZipArchivegetStream, !%	  ZipArchivegetFromIndex+ !#	  ZipArchivegetFromName* !	  ZipArchiveextractTo) !%		  ZipArchiveunchangeName( !'		  ZipArchiveunchangeIndex' !#  ZipArchiveunchangeAll!& !+  ZipArchiveunchangeArchive% !%	  ZipArchivegetNameIndex$ !!	  ZipArchivelocateName# !	  ZipArchivestatIndex" !	  ZipArchivestatName! !!		  ZipArchivedeleteName  !#		  ZipArchivedeleteIndex! !)	  ZipArchivegetCommentName" !+	  ZipArchivegetCommentIndex" !)  ZipArchivesetCommentName# !+  ZipArchivesetCommentIndex# !/	  ZipArchivegetArchiveComment    _ oEb9oG    _                                         ,K =%		  Couchbase\ClusterManagerremoveBucket.J =%  Couchbase\ClusterManagercreateBucket+I =#  Couchbase\ClusterManagerlistBuckets+H =#  Couchbase\ClusterManager__construct)G /)  Couchbase\ClusterauthenticateAs%F /%		  Couchbase\Clusterauthenticate"E /  Couchbase\Clustermanager%D /!  Couchbase\ClusteropenBucket$C /#		  Couchbase\Cluster__construct%B 3!  Couchbase\Exception__toString+A 3-  Couchbase\ExceptiongetTraceAsString&@ 3#  Couchbase\ExceptiongetPrevious#? 3  Couchbase\ExceptiongetTrace"> 3  Couchbase\ExceptiongetLine"= 3  Couchbase\ExceptiongetFile"< 3  Couchbase\ExceptiongetCode%; 3!  Couchbase\ExceptiongetMessage#: 3  Couchbase\Exception__wakeup'9 3#  Couchbase\Exception__construct"8 3  Couchbase\Exception__clone!7 '#  ast\Node\Decl__construct6 #  ast\Node__construct&5 !1  ZipArchivesetEncryptionIndex    [ yJ#~X8}R/    ~ [                                    c -  Couchbase\Bucketunlock b -  Couchbase\Bucketremove!a -  Couchbase\Bucketprepend ` -  Couchbase\Bucketappend!_ -  Couchbase\Bucketreplace ^ -  Couchbase\Bucketinsert ] -  Couchbase\Bucketupsert(\ -)  Couchbase\BucketgetFromReplica%[ -#  Couchbase\BucketgetAndTouch$Z -!  Couchbase\BucketgetAndLockY -  Couchbase\Bucketget'X -'  Couchbase\BucketsetTranscoderW -  Couchbase\Bucket__setV -		  Couchbase\Bucket__get#U -#  Couchbase\Bucket__construct$T 9  Couchbase\UserSettingsrole&S 9		  Couchbase\UserSettingspassword&R 9		  Couchbase\UserSettingsfullName)Q 9#  Couchbase\UserSettings__construct$P =  Couchbase\ClusterManagerinfo,O =!  Couchbase\ClusterManagerremoveUser)N =  Couchbase\ClusterManagergetUser,M =!  Couchbase\ClusterManagerupsertUser)L =		  Couchbase\ClusterManagerlistUsers    M pK)yV0
uQ-    s M                 #} -#		  Couchbase\BucketqueueRemove%| -#  Couchbase\BucketqueueExists"{ -  Couchbase\BucketqueueAdd!z -		  Couchbase\BucketqueueSizey -		  Couchbase\BucketsetSize$x -!  Couchbase\BucketlistExists!w -  Couchbase\BucketlistSet!v -  Couchbase\BucketlistGet$u -!  Couchbase\BucketlistRemove#t -  Couchbase\BucketlistShift"s -  Couchbase\BucketlistPush r -		  Couchbase\BucketlistSize#q -  Couchbase\BucketsetRemove#p -  Couchbase\BucketsetExists o -  Couchbase\BucketsetAdd n -  Couchbase\BucketmapGet#m -  Couchbase\BucketmapRemove l -  Couchbase\BucketmapAddk -		  Couchbase\BucketmapSizej -  Couchbase\Bucketqueryi -  Couchbase\Bucketmanager"h -  Couchbase\BucketmutateIn$g -!  Couchbase\BucketretrieveInd f -		  Couchbase\BucketlookupIn!e -  Couchbase\Bucketcounterd -  Couchbase\Buckettouch    1 mFt<f.    f 1 2 K#  Couchbase\PasswordAuthenticator__construct. I  Couchbase\ClassicAuthenticatorbucket/ I  Couchbase\ClassicAuthenticatorcluster1 I#  Couchbase\ClassicAuthenticator__construct. ;'  Couchbase\BucketManagerdropN1qlIndex5 ;5  Couchbase\BucketManagerdropN1qlPrimaryIndex0 ;+  Couchbase\BucketManagercreateN1qlIndex7
 ;9  Couchbase\BucketManagercreateN1qlPrimaryIndex.	 ;+  Couchbase\BucketManagerlistN1qlIndexes5 ;5  Couchbase\BucketManagerinsertDesignDocument5 ;5  Couchbase\BucketManagerupsertDesignDocument3 ;5		  Couchbase\BucketManagerremoveDesignDocument0 ;/		  Couchbase\BucketManagergetDesignDocument1 ;1  Couchbase\BucketManagergetDesignDocuments2 ;3  Couchbase\BucketManagerlistDesignDocuments$ ;  Couchbase\BucketManagerflush# ;  Couchbase\BucketManagerinfo*  ;#  Couchbase\BucketManager__construct -		  Couchbase\Bucketdiag~ -  Couchbase\Bucketping    _ nFe?~[9     _                                          ( 3		  Couchbase\ViewQuerygroup!' 3		  Couchbase\ViewQueryreduce & 3		  Couchbase\ViewQueryorder!% 3		  Couchbase\ViewQuerycustom $ 3		  Couchbase\ViewQuerystale&# 3#		  Couchbase\ViewQueryconsistency" 3		  Couchbase\ViewQueryskip ! 3		  Couchbase\ViewQuerylimit!  3  Couchbase\ViewQueryencode( 3#  Couchbase\ViewQueryfromSpatial! 3  Couchbase\ViewQueryfrom& 3#  Couchbase\ViewQuery__construct" ;		  Couchbase\MutationStateadd# ;		  Couchbase\MutationStatefrom* ;#  Couchbase\MutationState__construct- ;)  Couchbase\MutationTokensequenceNumber* ;#  Couchbase\MutationTokenvbucketUuid( ;  Couchbase\MutationTokenvbucketId) ;!  Couchbase\MutationTokenbucketName% ;  Couchbase\MutationTokenfrom* ;#  Couchbase\MutationToken__construct0 K	  Couchbase\PasswordAuthenticatorpassword/ K		  Couchbase\PasswordAuthenticatorusername    F lG rHm@    i F                 ? 3		  Couchbase\N1qlQueryadhoc%> 3!		  Couchbase\N1qlQueryfromString&= 3#  Couchbase\N1qlQuery__construct*< =!		  Couchbase\AnalyticsQueryfromString+; =#  Couchbase\AnalyticsQuery__construct(: A		  Couchbase\SpatialViewQuerycustom*9 A		  Couchbase\SpatialViewQueryendRange,8 A!		  Couchbase\SpatialViewQuerystartRange&7 A		  Couchbase\SpatialViewQuerybbox'6 A		  Couchbase\SpatialViewQuerystale-5 A#		  Couchbase\SpatialViewQueryconsistency&4 A		  Couchbase\SpatialViewQueryskip'3 A		  Couchbase\SpatialViewQuerylimit(2 A  Couchbase\SpatialViewQueryencode(1 A  Couchbase\SpatialViewQueryfrom-0 A#  Couchbase\SpatialViewQuery__construct%/ 3  Couchbase\ViewQueryid_range$. 3  Couchbase\ViewQueryidRange"- 3  Couchbase\ViewQueryrange, 3		  Couchbase\ViewQuerykeys+ 3		  Couchbase\ViewQuerykey&* 3#		  Couchbase\ViewQuerygroup_level%) 3!		  Couchbase\ViewQuerygroupLevel    O W+`7].   y O                           'U ?		  Couchbase\MutateInBuilderremove*T ?  Couchbase\MutateInBuilderreplace-S ?%		  Couchbase\MutateInBuildermodeDocument)R ?  Couchbase\MutateInBuilderupsert)Q ?  Couchbase\MutateInBuilderinsert,P ?#  Couchbase\MutateInBuilder__construct(O ?  Couchbase\LookupInBuilderexecute(N ?	  Couchbase\LookupInBuilderexists*M ?	  Couchbase\LookupInBuildergetCount%L ?	  Couchbase\LookupInBuilderget,K ?#  Couchbase\LookupInBuilder__construct&J 3#  Couchbase\N1qlIndex__construct#I 3		  Couchbase\N1qlQueryreadonly)H 3)		  Couchbase\N1qlQuerymaxParallelism&G 3#		  Couchbase\N1qlQuerypipelineCap(F 3'		  Couchbase\N1qlQuerypipelineBatch"E 3		  Couchbase\N1qlQueryscanCap)D 3)		  Couchbase\N1qlQueryconsistentWith&C 3#		  Couchbase\N1qlQueryconsistency&B 3#		  Couchbase\N1qlQuerynamedParams+A 3-		  Couchbase\N1qlQuerypositionalParams&@ 3#		  Couchbase\N1qlQuerycrossBucket    O l7n@h>    x O                             &j 7  Couchbase\SearchQuerymatchNone%i 7  Couchbase\SearchQuerymatchAll"h 7		  Couchbase\SearchQuerymatch#g 7	  Couchbase\SearchQuerydocIdd'f 7	  Couchbase\SearchQuerydisjunctsd&e 7  Couchbase\SearchQuerydateRange'd 7	  Couchbase\SearchQueryconjunctsd$c 7  Couchbase\SearchQueryboolean)b 7%		  Couchbase\SearchQuerybooleanField*a 7'  Couchbase\SearchQueryjsonSerialize*` 7#  Couchbase\SearchQuery__construct(_ ?  Couchbase\MutateInBuilderexecute+^ ?!		  Couchbase\MutateInBuilderwithExpiry*] ?  Couchbase\MutateInBuildercounter1\ ?)  Couchbase\MutateInBuilderarrayAddUnique1[ ?)  Couchbase\MutateInBuilderarrayInsertAll1Z ?)  Couchbase\MutateInBuilderarrayAppendAll2Y ?+  Couchbase\MutateInBuilderarrayPrependAll.X ?#  Couchbase\MutateInBuilderarrayInsert.W ?#  Couchbase\MutateInBuilderarrayAppend/V ?%  Couchbase\MutateInBuilderarrayPrepend    ; \1a9b;
    e ;     ' 7  Couchbase\SearchQueryaddFacet(  7  Couchbase\SearchQueryhighlightd" 7	  Couchbase\SearchQuerysortd$~ 7	  Couchbase\SearchQueryfieldsd+} 7)		  Couchbase\SearchQueryconsistentWith.| 7/		  Couchbase\SearchQueryserverSideTimeout${ 7		  Couchbase\SearchQueryexplain!z 7		  Couchbase\SearchQueryskip"y 7		  Couchbase\SearchQuerylimit0x 7/  Couchbase\SearchQuerynumericRangeFacet-w 7)  Couchbase\SearchQuerydateRangeFacet(v 7  Couchbase\SearchQuerytermFacet%u 7		  Couchbase\SearchQuerywildcard*t 7#  Couchbase\SearchQuerygeoDistance-s 7)  Couchbase\SearchQuerygeoBoundingBox&r 7  Couchbase\SearchQuerytermRange!q 7		  Couchbase\SearchQueryterm#p 7		  Couchbase\SearchQueryregexp(o 7#		  Couchbase\SearchQueryqueryString#n 7		  Couchbase\SearchQueryprefix$m 7	  Couchbase\SearchQueryphrased)l 7%  Couchbase\SearchQuerynumericRange(k 7#		  Couchbase\SearchQuerymatchPhrase    N _.pAuD   ~ N                                - I  Couchbase\DateRangeSearchQuerystart+ I		  Couchbase\DateRangeSearchQueryfield+ I		  Couchbase\DateRangeSearchQueryboost3 I'  Couchbase\DateRangeSearchQueryjsonSerialize1 I#  Couchbase\DateRangeSearchQuery__construct. M	  Couchbase\ConjunctionSearchQueryeveryd- M		  Couchbase\ConjunctionSearchQueryboost5 M'  Couchbase\ConjunctionSearchQueryjsonSerialize3 M#  Couchbase\ConjunctionSearchQuery__construct+ E	  Couchbase\BooleanSearchQueryshouldd,
 E	  Couchbase\BooleanSearchQuerymustNotd)	 E	  Couchbase\BooleanSearchQuerymustd) E		  Couchbase\BooleanSearchQueryboost1 E'  Couchbase\BooleanSearchQueryjsonSerialize/ E#  Couchbase\BooleanSearchQuery__construct. O		  Couchbase\BooleanFieldSearchQueryfield. O		  Couchbase\BooleanFieldSearchQueryboost6 O'  Couchbase\BooleanFieldSearchQueryjsonSerialize4 O#  Couchbase\BooleanFieldSearchQuery__construct    C e-m;G   s C                     -' M		  Couchbase\GeoDistanceSearchQueryboost5& M'  Couchbase\GeoDistanceSearchQueryjsonSerialize3% M#  Couchbase\GeoDistanceSearchQuery__construct0$ S		  Couchbase\GeoBoundingBoxSearchQueryfield0# S		  Couchbase\GeoBoundingBoxSearchQueryboost8" S'  Couchbase\GeoBoundingBoxSearchQueryjsonSerialize6! S#  Couchbase\GeoBoundingBoxSearchQuery__construct)  A	  Couchbase\DocIdSearchQuerydocIdsd' A		  Couchbase\DocIdSearchQueryfield' A		  Couchbase\DocIdSearchQueryboost/ A'  Couchbase\DocIdSearchQueryjsonSerialize- A#  Couchbase\DocIdSearchQuery__construct+ M		  Couchbase\DisjunctionSearchQuerymin/ M	  Couchbase\DisjunctionSearchQueryeitherd- M		  Couchbase\DisjunctionSearchQueryboost5 M'  Couchbase\DisjunctionSearchQueryjsonSerialize3 M#  Couchbase\DisjunctionSearchQuery__construct4 I)		  Couchbase\DateRangeSearchQuerydateTimeParser+ I  Couchbase\DateRangeSearchQueryend    ` h;m5r@    `                                                  +: A		  Couchbase\MatchSearchQueryfuzziness.9 A%		  Couchbase\MatchSearchQueryprefixLength*8 A		  Couchbase\MatchSearchQueryanalyzer'7 A		  Couchbase\MatchSearchQueryfield'6 A		  Couchbase\MatchSearchQueryboost/5 A'  Couchbase\MatchSearchQueryjsonSerialize-4 A#  Couchbase\MatchSearchQuery__construct03 M		  Couchbase\MatchPhraseSearchQueryanalyzer-2 M		  Couchbase\MatchPhraseSearchQueryfield-1 M		  Couchbase\MatchPhraseSearchQueryboost50 M'  Couchbase\MatchPhraseSearchQueryjsonSerialize3/ M#  Couchbase\MatchPhraseSearchQuery__construct+. I		  Couchbase\MatchNoneSearchQueryboost3- I'  Couchbase\MatchNoneSearchQueryjsonSerialize1, I#  Couchbase\MatchNoneSearchQuery__construct*+ G		  Couchbase\MatchAllSearchQueryboost2* G'  Couchbase\MatchAllSearchQueryjsonSerialize0) G#  Couchbase\MatchAllSearchQuery__construct-( M		  Couchbase\GeoDistanceSearchQueryfield    V _.h=X"    V                                        0M C'  Couchbase\RegexpSearchQueryjsonSerialize.L C#  Couchbase\RegexpSearchQuery__construct-K M		  Couchbase\QueryStringSearchQueryboost5J M'  Couchbase\QueryStringSearchQueryjsonSerialize3I M#  Couchbase\QueryStringSearchQuery__construct(H C		  Couchbase\PrefixSearchQueryfield(G C		  Couchbase\PrefixSearchQueryboost0F C'  Couchbase\PrefixSearchQueryjsonSerialize.E C#  Couchbase\PrefixSearchQuery__construct(D C		  Couchbase\PhraseSearchQueryfield(C C		  Couchbase\PhraseSearchQueryboost0B C'  Couchbase\PhraseSearchQueryjsonSerialize.A C#  Couchbase\PhraseSearchQuery__construct.@ O  Couchbase\NumericRangeSearchQuerymax.? O  Couchbase\NumericRangeSearchQuerymin.> O		  Couchbase\NumericRangeSearchQueryfield.= O		  Couchbase\NumericRangeSearchQueryboost6< O'  Couchbase\NumericRangeSearchQueryjsonSerialize4; O#  Couchbase\NumericRangeSearchQuery__construct    W {J!g1yF    W                                       .a ?'  Couchbase\TermSearchFacetjsonSerialize,` ?#  Couchbase\TermSearchFacet__construct*_ G		  Couchbase\WildcardSearchQueryfield*^ G		  Couchbase\WildcardSearchQueryboost2] G'  Couchbase\WildcardSearchQueryjsonSerialize0\ G#  Couchbase\WildcardSearchQuery__construct+[ I  Couchbase\TermRangeSearchQuerymax+Z I  Couchbase\TermRangeSearchQuerymin+Y I		  Couchbase\TermRangeSearchQueryfield+X I		  Couchbase\TermRangeSearchQueryboost3W I'  Couchbase\TermRangeSearchQueryjsonSerialize1V I#  Couchbase\TermRangeSearchQuery__construct*U ?		  Couchbase\TermSearchQueryfuzziness-T ?%		  Couchbase\TermSearchQueryprefixLength&S ?		  Couchbase\TermSearchQueryfield&R ?		  Couchbase\TermSearchQueryboost.Q ?'  Couchbase\TermSearchQueryjsonSerialize,P ?#  Couchbase\TermSearchQuery__construct(O C		  Couchbase\RegexpSearchQueryfield(N C		  Couchbase\RegexpSearchQueryboost    C Z&wW2~aA     i C       #{ ''	  Swoole\ServertaskWaitMultiz '	  Swoole\Servertaskwaity '	  Swoole\Servertaskx '		  Swoole\Serverresumew '		  Swoole\Serverpausev '		  Swoole\Serverconfirmu '	  Swoole\Servercloset '  Swoole\Serversendfiles '	  Swoole\Serverprotectr '		  Swoole\Serverexistq '  Swoole\Serversendwaitp '  Swoole\Serversendtoo '  Swoole\Serversendn '  Swoole\Serverstartm '		  Swoole\Serversetl '  Swoole\Serveron"k '#  Swoole\Serveraddlistenerj '  Swoole\Serverlisteni '!  Swoole\Server__destruct!h '#	  Swoole\Server__construct0g I  Couchbase\DateRangeSearchFacetaddRange3f I'  Couchbase\DateRangeSearchFacetjsonSerialize1e I#  Couchbase\DateRangeSearchFacet__construct3d O  Couchbase\NumericRangeSearchFacetaddRange6c O'  Couchbase\NumericRangeSearchFacetjsonSerialize4b O#  Couchbase\NumericRangeSearchFacet__construct    J iE$iK)iJ*      e J       %  Swoole\Eventexit %	  Swoole\Eventset %		  Swoole\Eventdel %  Swoole\Eventadd %		  Swoole\Timerclear %		  Swoole\Timerexists %  Swoole\Timerafter %  Swoole\Timertick '  Swoole\Server__wakeup '  Swoole\Server__sleep '  Swoole\Serverbind '	  Swoole\ServergetSocket '  Swoole\Serverstats '!		  Swoole\ServeraddProcess" '#  Swoole\ServersendMessage
 '		  Swoole\Serverdefer	 '!		  Swoole\ServerclearTimer '  Swoole\Servertick '  Swoole\Serverafter# ''	  Swoole\ServergetClientList# ''	  Swoole\ServergetClientInfo% '+	  Swoole\Serverconnection_list% '+	  Swoole\Serverconnection_info '		  Swoole\Serverheartbeat! '%  Swoole\ServergetLastError  '	  Swoole\Serverstop '  Swoole\Servershutdown~ '  Swoole\Serverreload} '		  Swoole\Serverfinish| '	  Swoole\ServertaskCo    = qS2h?h7	    ` =  3 -  Swoole\Exception__wakeup$2 -#  Swoole\Exception__construct1 -  Swoole\Exception__clone-0 A#		  Swoole\Connection\IteratoroffsetUnset-/ A  Swoole\Connection\IteratoroffsetSet+. A		  Swoole\Connection\IteratoroffsetGet.- A%		  Swoole\Connection\IteratoroffsetExists,, A!  Swoole\Connection\Iterator__destruct'+ A  Swoole\Connection\Iteratorcount'* A  Swoole\Connection\Iteratorvalid%) A  Swoole\Connection\Iteratorkey)( A  Swoole\Connection\Iteratorcurrent&' A  Swoole\Connection\Iteratornext(& A  Swoole\Connection\Iteratorrewind% %  Swoole\Asyncexec$ %		  Swoole\Asyncset!# %'		  Swoole\AsyncdnsLookupCoro" %  Swoole\AsyncdnsLookup! %  Swoole\AsyncwriteFile  %  Swoole\AsyncreadFile %  Swoole\Asyncwrite %  Swoole\Asyncread %	  Swoole\Eventcycle %		  Swoole\Eventdefer %  Swoole\Eventwait %  Swoole\Eventwrite    O uR,mL(|\?"     m O               O '  Swoole\ClientresumeN '  Swoole\ClientpauseM '  Swoole\ClientwakeupL '  Swoole\ClientsleepK '  Swoole\ClientsendtoJ '	  Swoole\ClientsendfileI '		  Swoole\ClientpipeH '	  Swoole\ClientsendG '  Swoole\ClientrecvF '	  Swoole\ClientconnectE '		  Swoole\ClientsetD '!  Swoole\Client__destruct!C '#	  Swoole\Client__construct#B 1  Swoole\Server\PortgetSocket"A 1  Swoole\Server\Port__wakeup!@ 1  Swoole\Server\Port__sleep? 1  Swoole\Server\Porton> 1		  Swoole\Server\Portset$= 1!  Swoole\Server\Port__destruct%< 1#  Swoole\Server\Port__construct"; -!  Swoole\Exception__toString(: --  Swoole\ExceptiongetTraceAsString#9 -#  Swoole\ExceptiongetPrevious 8 -  Swoole\ExceptiongetTrace7 -  Swoole\ExceptiongetLine6 -  Swoole\ExceptiongetFile5 -  Swoole\ExceptiongetCode"4 -!  Swoole\ExceptiongetMessage    ` wZ>wM' ~Q&    `                                          1f O  Swoole\Coroutine\Socket\Exception__wakeup5e O#  Swoole\Coroutine\Socket\Exception__construct0d O  Swoole\Coroutine\Socket\Exception__clone$c ;  Swoole\Coroutine\Socketclose(b ;  Swoole\Coroutine\SocketgetSocket*a ;#  Swoole\Coroutine\Socketgetsockname*` ;#  Swoole\Coroutine\Socketgetpeername'_ ;  Swoole\Coroutine\Socketsendto(^ ;	  Swoole\Coroutine\Socketrecvfrom$] ;	  Swoole\Coroutine\Socketsend#\ ;	  Swoole\Coroutine\Socketrecv'[ ;	  Swoole\Coroutine\Socketconnect%Z ;	  Swoole\Coroutine\Socketaccept%Y ;	  Swoole\Coroutine\Socketlisten$X ;	  Swoole\Coroutine\Socketbind,W ;#  Swoole\Coroutine\Socket__constructV '  Swoole\ClientgetSocketU '  Swoole\ClientonT '	  Swoole\Clientclose S '#  Swoole\Clientgetpeername R '#  Swoole\Clientgetsockname Q '#  Swoole\ClientisConnectedP '		  Swoole\Clientshutdown    6 d1T'`9    ] 6    ${ ;  Swoole\Coroutine\Clientclose*z ;#  Swoole\Coroutine\Clientgetpeername*y ;#  Swoole\Coroutine\Clientgetsockname*x ;#  Swoole\Coroutine\ClientisConnected'w ;  Swoole\Coroutine\Clientsendto(v ;	  Swoole\Coroutine\Clientsendfile$u ;	  Swoole\Coroutine\Clientsend#t ;	  Swoole\Coroutine\Clientpeek#s ;	  Swoole\Coroutine\Clientrecv'r ;	  Swoole\Coroutine\Clientconnect"q ;		  Swoole\Coroutine\Clientset)p ;!  Swoole\Coroutine\Client__destruct*o ;#		  Swoole\Coroutine\Client__construct3n O!  Swoole\Coroutine\Socket\Exception__toString9m O-  Swoole\Coroutine\Socket\ExceptiongetTraceAsString4l O#  Swoole\Coroutine\Socket\ExceptiongetPrevious1k O  Swoole\Coroutine\Socket\ExceptiongetTrace0j O  Swoole\Coroutine\Socket\ExceptiongetLine0i O  Swoole\Coroutine\Socket\ExceptiongetFile0h O  Swoole\Coroutine\Socket\ExceptiongetCode3g O!  Swoole\Coroutine\Socket\ExceptiongetMessage    P V+jAyP    P                            2 M!  Swoole\Coroutine\MySQL\Statement__destruct2 M!  Swoole\Coroutine\MySQL\StatementnextResult0 M  Swoole\Coroutine\MySQL\StatementfetchAll- M  Swoole\Coroutine\MySQL\Statementfetch0 M  Swoole\Coroutine\MySQL\Statementexecute& 9  Swoole\Coroutine\MySQL__wakeup% 9  Swoole\Coroutine\MySQL__sleep#
 9  Swoole\Coroutine\MySQLclose&	 9  Swoole\Coroutine\MySQLgetDefer& 9	  Swoole\Coroutine\MySQLsetDefer% 9		  Swoole\Coroutine\MySQLprepare& 9  Swoole\Coroutine\MySQLrollback$ 9  Swoole\Coroutine\MySQLcommit# 9  Swoole\Coroutine\MySQLbegin" 9  Swoole\Coroutine\MySQLrecv$ 9	  Swoole\Coroutine\MySQLquery% 9		  Swoole\Coroutine\MySQLconnect(  9!  Swoole\Coroutine\MySQL__destruct) 9#  Swoole\Coroutine\MySQL__construct(~ ;  Swoole\Coroutine\ClientgetSocket'} ;  Swoole\Coroutine\Client__wakeup&| ;  Swoole\Coroutine\Client__sleep    ; i2f4[(    l ;             .$ E!		  Swoole\Coroutine\Http\ClientsetCookies.# E!		  Swoole\Coroutine\Http\ClientsetHeaders-" E		  Swoole\Coroutine\Http\ClientsetMethod'! E		  Swoole\Coroutine\Http\Clientset.  E!  Swoole\Coroutine\Http\Client__destruct0 E#	  Swoole\Coroutine\Http\Client__construct2 M!  Swoole\Coroutine\MySQL\Exception__toString8 M-  Swoole\Coroutine\MySQL\ExceptiongetTraceAsString3 M#  Swoole\Coroutine\MySQL\ExceptiongetPrevious0 M  Swoole\Coroutine\MySQL\ExceptiongetTrace/ M  Swoole\Coroutine\MySQL\ExceptiongetLine/ M  Swoole\Coroutine\MySQL\ExceptiongetFile/ M  Swoole\Coroutine\MySQL\ExceptiongetCode2 M!  Swoole\Coroutine\MySQL\ExceptiongetMessage0 M  Swoole\Coroutine\MySQL\Exception__wakeup4 M#  Swoole\Coroutine\MySQL\Exception__construct/ M  Swoole\Coroutine\MySQL\Exception__clone0 M  Swoole\Coroutine\MySQL\Statement__wakeup/ M  Swoole\Coroutine\MySQL\Statement__sleep    L zM`1}N-     l L                      ; -		  Swoole\Coroutinesleep: -  Swoole\Coroutinegetuid9 -  Swoole\Coroutinestats8 -		  Swoole\Coroutineresume7 -  Swoole\Coroutinesuspend6 -		  Swoole\Coroutineset5 -		  Swoole\Coroutineexec4 -		  Swoole\Coroutinecreate,3 E  Swoole\Coroutine\Http\Client__wakeup+2 E  Swoole\Coroutine\Http\Client__sleep)1 E	  Swoole\Coroutine\Http\Clientpush(0 E	  Swoole\Coroutine\Http\Clientrecv,/ E  Swoole\Coroutine\Http\ClientgetDefer,. E	  Swoole\Coroutine\Http\ClientsetDefer)- E  Swoole\Coroutine\Http\Clientclose/, E#  Swoole\Coroutine\Http\ClientisConnected-+ E  Swoole\Coroutine\Http\ClientaddFile+* E		  Swoole\Coroutine\Http\Clientupgrade.) E  Swoole\Coroutine\Http\Clientdownload*( E  Swoole\Coroutine\Http\Clientpost'' E		  Swoole\Coroutine\Http\Clientget+& E		  Swoole\Coroutine\Http\Clientexecute+% E		  Swoole\Coroutine\Http\ClientsetData    H yS*mFkH"     k H             U )!  Swoole\Process__destruct"T )#	  Swoole\Process__constructS 1  Swoole\Http\ClientonR 1  Swoole\Http\Clientclose%Q 1#  Swoole\Http\ClientisConnected$P 1  Swoole\Http\Clientdownload#O 1  Swoole\Http\Clientupgrade N 1  Swoole\Http\ClientpostM 1  Swoole\Http\ClientgetL 1	  Swoole\Http\Clientpush#K 1  Swoole\Http\Clientexecute#J 1  Swoole\Http\ClientaddFile!I 1		  Swoole\Http\ClientsetData$H 1!		  Swoole\Http\ClientsetCookies$G 1!		  Swoole\Http\ClientsetHeaders#F 1		  Swoole\Http\ClientsetMethodE 1		  Swoole\Http\Clientset$D 1!  Swoole\Http\Client__destruct&C 1#	  Swoole\Http\Client__construct$B -#	  Swoole\Coroutinegetaddrinfo&A -'	  Swoole\Coroutinegethostbyname#@ -  Swoole\CoroutinewriteFile ? -		  Swoole\CoroutinereadFile > -  Swoole\Coroutinefwrite= -		  Swoole\Coroutinefgets< -	  Swoole\Coroutinefread    T fC}_B%	^<     r T                  r %  Swoole\Tabledestroyq %  Swoole\Tablecreatep %  Swoole\Tablecolumn o %#	  Swoole\Table__construct n 3  Swoole\Process\Poolstart m 3		  Swoole\Process\Poolwrite"l 3	  Swoole\Process\Poollistenk 3  Swoole\Process\Poolon%j 3!  Swoole\Process\Pool__destruct'i 3#	  Swoole\Process\Pool__constructh )		  Swoole\Processnameg )  Swoole\Processexecf )	  Swoole\Processexite )	  Swoole\Processpopd )		  Swoole\Processpushc )	  Swoole\Processreadb )  Swoole\Processclosea )		  Swoole\Processwrite` )  Swoole\Processstart_ )  Swoole\ProcessfreeQueue^ )  Swoole\ProcessstatQueue] )  Swoole\ProcessuseQueue!\ )#		  Swoole\ProcesssetBlocking [ )!		  Swoole\ProcesssetTimeoutZ )  Swoole\ProcessdaemonY )	  Swoole\ProcesskillX )		  Swoole\ProcessalarmW )  Swoole\ProcesssignalV )	  Swoole\Processwait    W wZ=tU8~X2     v W                    #  Swoole\Locklock_read #  Swoole\Locktrylock #	  Swoole\Locklockwait #  Swoole\Locklock #!  Swoole\Lock__destruct ##  Swoole\Lock__construct"
 -!  Swoole\Table\Row__destruct#	 -#		  Swoole\Table\RowoffsetUnset# -  Swoole\Table\RowoffsetSet! -		  Swoole\Table\RowoffsetGet$ -%		  Swoole\Table\RowoffsetExists %  Swoole\Tablevalid %  Swoole\Tablekey %  Swoole\Tablecurrent %  Swoole\Tablenext %  Swoole\Tablerewind  %  Swoole\Table__wakeup %  Swoole\Table__sleep~ %#		  Swoole\TableoffsetUnset} %  Swoole\TableoffsetSet| %		  Swoole\TableoffsetGet { %%		  Swoole\TableoffsetExists!z %'  Swoole\TablegetMemorySizey %  Swoole\Tabledecrx %  Swoole\Tableincrw %		  Swoole\Tableexistv %		  Swoole\Tabledelu %  Swoole\Tablecountt %	  Swoole\Tablegets %  Swoole\Tableset    f gL1}U5gF$     f                                      ", 1  Swoole\Http\Serverlisten$+ 1!  Swoole\Http\Server__destruct&* 1#	  Swoole\Http\Server__construct") 1  Swoole\Http\Server__wakeup!( 1  Swoole\Http\Server__sleep' 1  Swoole\Http\Serverstart& 1  Swoole\Http\Serveron"% 1  Swoole\Atomic\Long__wakeup!$ 1  Swoole\Atomic\Long__sleep"# 1  Swoole\Atomic\Longcmpset" 1		  Swoole\Atomic\Longset! 1  Swoole\Atomic\Longget  1	  Swoole\Atomic\Longsub 1	  Swoole\Atomic\Longadd% 1#	  Swoole\Atomic\Long__construct '  Swoole\Atomic__wakeup '  Swoole\Atomic__sleep '  Swoole\Atomiccmpset '	  Swoole\Atomicwakeup '	  Swoole\Atomicwait '		  Swoole\Atomicset '  Swoole\Atomicget '	  Swoole\Atomicsub '	  Swoole\Atomicadd  '#	  Swoole\Atomic__construct #  Swoole\Lockdestroy #  Swoole\Lockunlock #%  Swoole\Locktrylock_read    V nG% pM+pK*    V                            (E 1'	  Swoole\Http\ServergetClientInfo*D 1+	  Swoole\Http\Serverconnection_list*C 1+	  Swoole\Http\Serverconnection_info#B 1		  Swoole\Http\Serverheartbeat&A 1%  Swoole\Http\ServergetLastError@ 1	  Swoole\Http\Serverstop"? 1  Swoole\Http\Servershutdown > 1  Swoole\Http\Serverreload = 1		  Swoole\Http\Serverfinish!< 1	  Swoole\Http\ServertaskCo(; 1'	  Swoole\Http\ServertaskWaitMulti#: 1	  Swoole\Http\Servertaskwait9 1	  Swoole\Http\Servertask 8 1		  Swoole\Http\Serverresume7 1		  Swoole\Http\Serverpause!6 1		  Swoole\Http\Serverconfirm 5 1	  Swoole\Http\Serverclose$4 1  Swoole\Http\Serversendfile"3 1	  Swoole\Http\Serverprotect2 1		  Swoole\Http\Serverexist$1 1  Swoole\Http\Serversendwait"0 1  Swoole\Http\Serversendto / 1  Swoole\Http\Serversend. 1		  Swoole\Http\Serverset'- 1#  Swoole\Http\Serveraddlistener    L gE`:~\4    u L                  &^ 5!  Swoole\Http\Response__destruct$] 5  Swoole\Http\Response__wakeup#\ 5  Swoole\Http\Response__sleep"[ 5		  Swoole\Http\Responsecreate"Z 5  Swoole\Http\Responsedetach%Y 5	  Swoole\Http\Responseredirect%X 5	  Swoole\Http\ResponsesendfileW 5	  Swoole\Http\Responseend!V 5		  Swoole\Http\Responsewrite$U 5  Swoole\Http\Responseheader T 5	  Swoole\Http\Responsegzip"S 5		  Swoole\Http\Responsestatus&R 5	  Swoole\Http\Responserawcookie#Q 5	  Swoole\Http\Responsecookie&P 5!  Swoole\Http\ResponseinitHeader O 1  Swoole\Http\Serverbind#N 1	  Swoole\Http\ServergetSocketM 1  Swoole\Http\Serverstats$L 1!		  Swoole\Http\ServeraddProcess'K 1#  Swoole\Http\ServersendMessageJ 1		  Swoole\Http\Serverdefer$I 1!		  Swoole\Http\ServerclearTimer H 1  Swoole\Http\Servertick!G 1  Swoole\Http\Serverafter(F 1'	  Swoole\Http\ServergetClientList    Y h@}_A"xQ"     Y                             'x ;  Swoole\WebSocket\Server__wakeup&w ;  Swoole\WebSocket\Server__sleep$v ;  Swoole\WebSocket\Serverstart%u ;		  Swoole\WebSocket\Serverunpack$t ;	  Swoole\WebSocket\Serverpack,s ;'		  Swoole\WebSocket\ServerisEstablished$r ;		  Swoole\WebSocket\Serverexist%q ;  Swoole\WebSocket\Serverpush#p ;  Swoole\WebSocket\Serverono '  Swoole\Buffer__wakeupn '  Swoole\Buffer__sleepm '  Swoole\Bufferclearl '  Swoole\Bufferrecyclek '		  Swoole\Bufferexpandj '		  Swoole\Bufferappendi '  Swoole\Bufferreadh '  Swoole\Bufferwriteg '	  Swoole\Buffersubstrf '!  Swoole\Buffer__toStringe '!  Swoole\Buffer__destruct d '#	  Swoole\Buffer__construct%c 3!  Swoole\Http\Request__destruct#b 3  Swoole\Http\Request__wakeup"a 3  Swoole\Http\Request__sleep"` 3  Swoole\Http\RequestgetData%_ 3!  Swoole\Http\Requestrawcontent    ; |M( T,b2	    i ;     + ;%  Swoole\WebSocket\ServergetLastError# ;	  Swoole\WebSocket\Serverstop' ;  Swoole\WebSocket\Servershutdown% ;  Swoole\WebSocket\Serverreload% ;		  Swoole\WebSocket\Serverfinish&
 ;	  Swoole\WebSocket\ServertaskCo-	 ;'	  Swoole\WebSocket\ServertaskWaitMulti( ;	  Swoole\WebSocket\Servertaskwait$ ;	  Swoole\WebSocket\Servertask% ;		  Swoole\WebSocket\Serverresume$ ;		  Swoole\WebSocket\Serverpause& ;		  Swoole\WebSocket\Serverconfirm% ;	  Swoole\WebSocket\Serverclose) ;  Swoole\WebSocket\Serversendfile' ;	  Swoole\WebSocket\Serverprotect)  ;  Swoole\WebSocket\Serversendwait' ;  Swoole\WebSocket\Serversendto%~ ;  Swoole\WebSocket\Serversend"} ;		  Swoole\WebSocket\Serverset,| ;#  Swoole\WebSocket\Serveraddlistener'{ ;  Swoole\WebSocket\Serverlisten)z ;!  Swoole\WebSocket\Server__destruct+y ;#	  Swoole\WebSocket\Server__construct    A qAm>vU5      i A       %( 9  Swoole\MySQL\Exception__clone' %  Swoole\MySQLon& %  Swoole\MySQLgetState% %  Swoole\MySQLclose$ %  Swoole\MySQLquery# %		  Swoole\MySQLrollback" %		  Swoole\MySQLcommit! %		  Swoole\MySQLbegin  %  Swoole\MySQLconnect %!  Swoole\MySQL__destruct %#  Swoole\MySQL__construct% ;  Swoole\WebSocket\Serverbind( ;	  Swoole\WebSocket\ServergetSocket$ ;  Swoole\WebSocket\Serverstats) ;!		  Swoole\WebSocket\ServeraddProcess, ;#  Swoole\WebSocket\ServersendMessage$ ;		  Swoole\WebSocket\Serverdefer) ;!		  Swoole\WebSocket\ServerclearTimer% ;  Swoole\WebSocket\Servertick& ;  Swoole\WebSocket\Serverafter- ;'	  Swoole\WebSocket\ServergetClientList- ;'	  Swoole\WebSocket\ServergetClientInfo/ ;+	  Swoole\WebSocket\Serverconnection_list/ ;+	  Swoole\WebSocket\Serverconnection_info( ;		  Swoole\WebSocket\Serverheartbeat    ] W/V;R%     ]                                     %@ =  Swoole\Coroutine\Channelclose&? =  Swoole\Coroutine\ChannelisFull'> =  Swoole\Coroutine\ChannelisEmpty#= =  Swoole\Coroutine\Channelpop$< =		  Swoole\Coroutine\Channelpush*; =!  Swoole\Coroutine\Channel__destruct+: =#	  Swoole\Coroutine\Channel__construct9 )  Swoole\Channelstats8 )  Swoole\Channelpeek7 )  Swoole\Channelpop6 )		  Swoole\Channelpush 5 )!  Swoole\Channel__destruct!4 )#		  Swoole\Channel__construct3 #	  Swoole\Mmapopen(2 9!  Swoole\MySQL\Exception__toString.1 9-  Swoole\MySQL\ExceptiongetTraceAsString)0 9#  Swoole\MySQL\ExceptiongetPrevious&/ 9  Swoole\MySQL\ExceptiongetTrace%. 9  Swoole\MySQL\ExceptiongetLine%- 9  Swoole\MySQL\ExceptiongetFile%, 9  Swoole\MySQL\ExceptiongetCode(+ 9!  Swoole\MySQL\ExceptiongetMessage&* 9  Swoole\MySQL\Exception__wakeup*) 9#  Swoole\MySQL\Exception__construct    Y ^9tP1mC    | Y                              Z 3  Swoole\Redis\Serverstart*Y =!  Swoole\Memory\Pool\Slice__destruct&X =	  Swoole\Memory\Pool\Slicewrite%W =  Swoole\Memory\Pool\SlicereadV 1	  Swoole\Memory\Poolalloc$U 1!  Swoole\Memory\Pool__destruct'T 1#  Swoole\Memory\Pool__constructS -	  Swoole\SerializeunpackR -	  Swoole\SerializepackQ +  Swoole\MsgQueuedestoryP +  Swoole\MsgQueuestats"O +#		  Swoole\MsgQueuesetBlockingN +	  Swoole\MsgQueuepopM +	  Swoole\MsgQueuepush!L +!  Swoole\MsgQueue__destruct"K +#		  Swoole\MsgQueue__constructJ -  Swoole\RingQueueisEmptyI -  Swoole\RingQueueisFullH -  Swoole\RingQueuecountG -  Swoole\RingQueuepopF -		  Swoole\RingQueuepush"E -!  Swoole\RingQueue__destruct#D -#		  Swoole\RingQueue__construct(C =  Swoole\Coroutine\Channelselect&B =  Swoole\Coroutine\Channellength%A =  Swoole\Coroutine\Channelstats    O _9Y6|X5    u O                     #s 3  Swoole\Redis\Servershutdown!r 3  Swoole\Redis\Serverreload!q 3		  Swoole\Redis\Serverfinish"p 3	  Swoole\Redis\ServertaskCo)o 3'	  Swoole\Redis\ServertaskWaitMulti$n 3	  Swoole\Redis\Servertaskwait m 3	  Swoole\Redis\Servertask!l 3		  Swoole\Redis\Serverresume k 3		  Swoole\Redis\Serverpause"j 3		  Swoole\Redis\Serverconfirm!i 3	  Swoole\Redis\Serverclose%h 3  Swoole\Redis\Serversendfile#g 3	  Swoole\Redis\Serverprotect f 3		  Swoole\Redis\Serverexist%e 3  Swoole\Redis\Serversendwait#d 3  Swoole\Redis\Serversendto!c 3  Swoole\Redis\Serversendb 3		  Swoole\Redis\Serverseta 3  Swoole\Redis\Serveron(` 3#  Swoole\Redis\Serveraddlistener#_ 3  Swoole\Redis\Serverlisten%^ 3!  Swoole\Redis\Server__destruct'] 3#	  Swoole\Redis\Server__construct"\ 3	  Swoole\Redis\Serverformat'[ 3!  Swoole\Redis\ServersetHandler   9 _1hE_9                                                                                                                                                                                                                                                                             # 3  Swoole\Redis\Server__wakeup" 3  Swoole\Redis\Server__sleep! 3  Swoole\Redis\Serverbind$ 3	  Swoole\Redis\ServergetSocket  3  Swoole\Redis\Serverstats%  3!		  Swoole\Redis\ServeraddProcess( 3#  Swoole\Redis\ServersendMessage ~ 3		  Swoole\Redis\Serverdefer%} 3!		  Swoole\Redis\ServerclearTimer!| 3  Swoole\Redis\Servertick"{ 3  Swoole\Redis\Serverafter)z 3'	  Swoole\Redis\ServergetClientList)y 3'	  Swoole\Redis\ServergetClientInfo+x 3+	  Swoole\Redis\Serverconnection_list+w 3+	  Swoole\Redis\Serverconnection_info$v 3		  Swoole\Redis\Serverheartbeat'u 3%  Swoole\Redis\ServergetLastErrort 3	  Swoole\Redis\Serverstop
    G _:"	mL,[>      h G    +#ArithmeticErrorgetPrevious+!ArithmeticErrorgetMessage+ArithmeticErrorgetLine+ArithmeticErrorgetFile+ArithmeticErrorgetCode+ArithmeticError__wakeup+!ArithmeticError__toString +#ArithmeticError__construct+ArithmeticError__clone(1-ArgumentCountErrorgetTraceAsString 1ArgumentCountErrorgetTrace#1#ArgumentCountErrorgetPrevious"1!ArgumentCountErrorgetMessage1ArgumentCountErrorgetLine1ArgumentCountErrorgetFile1ArgumentCountErrorgetCode 1ArgumentCountError__wakeup"1!ArgumentCountError__toString#1#ArgumentCountError__construct1ArgumentCountError__clone)AppendIteratorvalid3)AppendIteratorrewind2)AppendIteratornext6)AppendIteratorkey4$)-AppendIteratorgetIteratorIndex8$)-AppendIteratorgetInnerIterator7$)-AppendIteratorgetArrayIterator9)AppendIteratorcurrent5)AppendIteratorappend1)#AppendIterator__construct0
   " M oT4vY<~_F)      o M !#-ArrayObjectgetIteratorClass##ArrayObjectgetIterator#ArrayObjectgetFlags#%ArrayObjectgetArrayCopy#'ArrayObjectexchangeArray#ArrayObjectcount#ArrayObjectasort#ArrayObjectappend##ArrayObject__construct}'ArrayIteratorvalid'#ArrayIteratorunserialize'ArrayIteratoruksort'ArrayIteratoruasort'ArrayIteratorsetFlags'ArrayIteratorserialize'ArrayIteratorseek'ArrayIteratorrewind'#ArrayIteratoroffsetUnset'ArrayIteratoroffsetSet'ArrayIteratoroffsetGet'%ArrayIteratoroffsetExists'ArrayIteratornext'ArrayIteratornatsort'#ArrayIteratornatcasesort'ArrayIteratorksort'ArrayIteratorkey'ArrayIteratorgetFlags'%ArrayIteratorgetArrayCopy'ArrayIteratorcurrent'ArrayIteratorcount'ArrayIteratorasort'ArrayIteratorappend'#ArrayIterator__construct%+-ArithmeticErrorgetTraceAsString
    V vY>$yZ=!hB    | V                  %=BadFunctionCallExceptiongetLine7%=BadFunctionCallExceptiongetFile6%=BadFunctionCallExceptiongetCode5&=BadFunctionCallException__wakeup3(=!BadFunctionCallException__toString;)=#BadFunctionCallException__construct2%=BadFunctionCallException__clone1$)-AssertionErrorgetTraceAsStringG)AssertionErrorgetTraceE)#AssertionErrorgetPreviousF)!AssertionErrorgetMessageA)AssertionErrorgetLineD)AssertionErrorgetFileC)AssertionErrorgetCodeB)AssertionError__wakeup@)!AssertionError__toStringH)#AssertionError__construct?)AssertionError__clone>##ArrayObjectunserialize#ArrayObjectuksort#ArrayObjectuasort!#-ArrayObjectsetIteratorClass#ArrayObjectsetFlags#ArrayObjectserialize##ArrayObjectoffsetUnset#ArrayObjectoffsetSet#ArrayObjectoffsetGet#%ArrayObjectoffsetExists~#ArrayObjectnatsort##ArrayObjectnatcasesort
    BW3wS,gM/     ~ ` B  +CachingIteratorgetFlags+CachingIteratorgetCache+CachingIteratorcurrent	+CachingIteratorcount+!CachingIterator__toString +#CachingIterator__construct+CURLFilesetPostFilenameg#CURLFilesetMimeTypee+CURLFilegetPostFilenamef#CURLFilegetMimeTyped#CURLFilegetFilenamecCURLFile__wakeuph#CURLFile__constructb,9-BadMethodCallExceptiongetTraceAsStringE$9BadMethodCallExceptiongetTraceC'9#BadMethodCallExceptiongetPreviousD&9!BadMethodCallExceptiongetMessage?#9BadMethodCallExceptiongetLineB#9BadMethodCallExceptiongetFileA#9BadMethodCallExceptiongetCode@$9BadMethodCallException__wakeup>&9!BadMethodCallException__toStringF'9#BadMethodCallException__construct=#9BadMethodCallException__clone<.=-BadFunctionCallExceptiongetTraceAsString:&=BadFunctionCallExceptiongetTrace8)=#BadFunctionCallExceptiongetPrevious9   %+-CachingIteratorgetInnerIterator
    I mL0[;\5    p I           &=ClosedGeneratorExceptiongetTrace)=#ClosedGeneratorExceptiongetPrevious(=!ClosedGeneratorExceptiongetMessage%=ClosedGeneratorExceptiongetLine %=ClosedGeneratorExceptiongetFile%=ClosedGeneratorExceptiongetCode&=ClosedGeneratorException__wakeup(=!ClosedGeneratorException__toString)=#ClosedGeneratorException__construct%=ClosedGeneratorException__clone!9CallbackFilterIteratorvalid"9CallbackFilterIteratorrewind 9CallbackFilterIteratornext9CallbackFilterIteratorkey,9-CallbackFilterIteratorgetInnerIterator#9CallbackFilterIteratorcurrent"9CallbackFilterIteratoraccept'9#CallbackFilterIterator__construct+CachingIteratorvalid+CachingIteratorsetFlags+CachingIteratorrewind +#CachingIteratoroffsetUnset+CachingIteratoroffsetSet+CachingIteratoroffsetGet!+%CachingIteratoroffsetExists+CachingIteratornext
+CachingIteratorkey
  E fL8"nS9&T'    l E &ECouchbase\BooleanSearchQuerymust#/E'Couchbase\BooleanSearchQueryjsonSerialize#'ECouchbase\BooleanSearchQueryboost#-E#Couchbase\BooleanSearchQuery__construct#4O'Couchbase\BooleanFieldSearchQueryjsonSerialize#,OCouchbase\BooleanFieldSearchQueryfield#,OCouchbase\BooleanFieldSearchQueryboost#2O#Couchbase\BooleanFieldSearchQuery__construct#(=!Couchbase\AnalyticsQueryfromString#<)=#Couchbase\AnalyticsQuery__construct#;-CollatorsortWithSortKeysCollatorsort#CollatorsetStrength%CollatorsetAttribute#CollatorgetStrength!CollatorgetSortKeyCollatorgetLocale+CollatorgetErrorMessage%CollatorgetErrorCode%CollatorgetAttributeCollatorcreateCollatorcompareCollatorasort#Collator__construct%ClosurefromCallableClosurecallClosurebindToClosurebind#Closure__construct    )ECouchbase\BooleanSearchQuerymustNot#
    I gI.nP1vY<      k I   !-#Couchbase\BucketqueueRemove"-Couchbase\BucketqueueAdd"-Couchbase\Bucketquery"-Couchbase\Bucketprepend"-Couchbase\Bucketping"-Couchbase\BucketmutateIn"-Couchbase\BucketmapSize"-Couchbase\BucketmapRemove"-Couchbase\BucketmapGet"-Couchbase\BucketmapAdd"-Couchbase\Bucketmanager"-Couchbase\BucketlookupIn"-Couchbase\BucketlistSize"-Couchbase\BucketlistShift"-Couchbase\BucketlistSet" -!Couchbase\BucketlistRemove"-Couchbase\BucketlistPush"-Couchbase\BucketlistGet" -!Couchbase\BucketlistExists"-Couchbase\Bucketinsert"$-)Couchbase\BucketgetFromReplica"!-#Couchbase\BucketgetAndTouch" -!Couchbase\BucketgetAndLock"-Couchbase\Bucketget"-Couchbase\Bucketdiag"-Couchbase\Bucketcounter"-Couchbase\Bucketappend"-Couchbase\Bucket__set"-Couchbase\Bucket__get"!-#Couchbase\Bucket__construct"!-#Couchbase\BucketqueueExists"
  B gG'	f9V&   t B          1;5Couchbase\BucketManagerremoveDesignDocument#,;+Couchbase\BucketManagerlistN1qlIndexes#	0;3Couchbase\BucketManagerlistDesignDocuments#1;5Couchbase\BucketManagerinsertDesignDocument#!;Couchbase\BucketManagerinfo#/;1Couchbase\BucketManagergetDesignDocuments#.;/Couchbase\BucketManagergetDesignDocument#";Couchbase\BucketManagerflush#1;5Couchbase\BucketManagerdropN1qlPrimaryIndex#*;'Couchbase\BucketManagerdropN1qlIndex#3;9Couchbase\BucketManagercreateN1qlPrimaryIndex#
,;+Couchbase\BucketManagercreateN1qlIndex#(;#Couchbase\BucketManager__construct# -Couchbase\Bucketupsert"-Couchbase\Bucketunlock"-Couchbase\Buckettouch"#-'Couchbase\BucketsetTranscoder"-Couchbase\BucketsetSize"-Couchbase\BucketsetRemove"-Couchbase\BucketsetExists"-Couchbase\BucketsetAdd" -!Couchbase\BucketretrieveIn"-Couchbase\Bucketreplace"-Couchbase\Bucketremove"                                
  > sG$ oD~U,    n >        /I#Couchbase\DateRangeSearchFacet__construct#3M'Couchbase\ConjunctionSearchQueryjsonSerialize#+MCouchbase\ConjunctionSearchQueryevery#+MCouchbase\ConjunctionSearchQueryboost#1M#Couchbase\ConjunctionSearchQuery__construct#(=!Couchbase\ClusterManagerupsertUser"(=!Couchbase\ClusterManagerremoveUser"*=%Couchbase\ClusterManagerremoveBucket"'=Couchbase\ClusterManagerlistUsers")=#Couchbase\ClusterManagerlistBuckets""=Couchbase\ClusterManagerinfo"%=Couchbase\ClusterManagergetUser"*=%Couchbase\ClusterManagercreateBucket")=#Couchbase\ClusterManager__construct"!/!Couchbase\ClusteropenBucket"/Couchbase\Clustermanager"%/)Couchbase\ClusterauthenticateAs"#/%Couchbase\Clusterauthenticate""/#Couchbase\Cluster__construct"+ICouchbase\ClassicAuthenticatorcluster#*ICouchbase\ClassicAuthenticatorbucket#/I#Couchbase\ClassicAuthenticator__construct#    ,ICouchbase\DateRangeSearchFacetaddRange#
    A R* rFiB     b A            3Couchbase\ExceptiongetFile"!3Couchbase\Exception__wakeup"#3!Couchbase\Exception__toString"$3#Couchbase\Exception__construct" 3Couchbase\Exception__clone"-A'Couchbase\DocIdSearchQueryjsonSerialize#%ACouchbase\DocIdSearchQueryfield#&ACouchbase\DocIdSearchQuerydocIds#%ACouchbase\DocIdSearchQueryboost#+A#Couchbase\DocIdSearchQuery__construct#)MCouchbase\DisjunctionSearchQuerymin#3M'Couchbase\DisjunctionSearchQueryjsonSerialize#,MCouchbase\DisjunctionSearchQueryeither#+MCouchbase\DisjunctionSearchQueryboost#1M#Couchbase\DisjunctionSearchQuery__construct#)ICouchbase\DateRangeSearchQuerystart#1I'Couchbase\DateRangeSearchQueryjsonSerialize#)ICouchbase\DateRangeSearchQueryfield#'ICouchbase\DateRangeSearchQueryend#2I)Couchbase\DateRangeSearchQuerydateTimeParser#)ICouchbase\DateRangeSearchQueryboost#/I#Couchbase\DateRangeSearchQuery__construct# 3Couchbase\ExceptiongetCode"
    = k6oCkH     g =         )ICouchbase\MatchNoneSearchQueryboost#/I#Couchbase\MatchNoneSearchQuery__construct#0G'Couchbase\MatchAllSearchQueryjsonSerialize#(GCouchbase\MatchAllSearchQueryboost#.G#Couchbase\MatchAllSearchQuery__construct#'?Couchbase\LookupInBuildergetCount#M"?Couchbase\LookupInBuilderget#L%?Couchbase\LookupInBuilderexists#N&?Couchbase\LookupInBuilderexecute#O*?#Couchbase\LookupInBuilder__construct#K3M'Couchbase\GeoDistanceSearchQueryjsonSerialize#+MCouchbase\GeoDistanceSearchQueryfield#+MCouchbase\GeoDistanceSearchQueryboost#1M#Couchbase\GeoDistanceSearchQuery__construct#6S'Couchbase\GeoBoundingBoxSearchQueryjsonSerialize#.SCouchbase\GeoBoundingBoxSearchQueryfield#.SCouchbase\GeoBoundingBoxSearchQueryboost#4S#Couchbase\GeoBoundingBoxSearchQuery__construct#)3-Couchbase\ExceptiongetTraceAsString"!3Couchbase\ExceptiongetTrace"$3#Couchbase\ExceptiongetPrevious"#3!Couchbase\ExceptiongetMessage"
    9 xL qK!mB    ` 9     &?Couchbase\MutateInBuilderexecute#_.?+Couchbase\MutateInBuilderarrayPrependAll#Y+?%Couchbase\MutateInBuilderarrayPrepend#V-?)Couchbase\MutateInBuilderarrayInsertAll#[*?#Couchbase\MutateInBuilderarrayInsert#X-?)Couchbase\MutateInBuilderarrayAppendAll#Z*?#Couchbase\MutateInBuilderarrayAppend#W-?)Couchbase\MutateInBuilderarrayAddUnique#\*?#Couchbase\MutateInBuilder__construct#P,A%Couchbase\MatchSearchQueryprefixLength#-A'Couchbase\MatchSearchQueryjsonSerialize#)ACouchbase\MatchSearchQueryfuzziness#%ACouchbase\MatchSearchQueryfield#%ACouchbase\MatchSearchQueryboost#(ACouchbase\MatchSearchQueryanalyzer#+A#Couchbase\MatchSearchQuery__construct#3M'Couchbase\MatchPhraseSearchQueryjsonSerialize#+MCouchbase\MatchPhraseSearchQueryfield#+MCouchbase\MatchPhraseSearchQueryboost#.MCouchbase\MatchPhraseSearchQueryanalyzer#1M#Couchbase\MatchPhraseSearchQuery__construct#&?Couchbase\MutateInBuildercounter#]
    Ca;|T2lM(     j C         &3'Couchbase\N1qlQuerypipelineBatch#F$3#Couchbase\N1qlQuerynamedParams#B'3)Couchbase\N1qlQuerymaxParallelism#H#3!Couchbase\N1qlQueryfromString#>$3#Couchbase\N1qlQuerycrossBucket#@'3)Couchbase\N1qlQueryconsistentWith#D$3#Couchbase\N1qlQueryconsistency#C3Couchbase\N1qlQueryadhoc#?$3#Couchbase\N1qlQuery__construct#=$3#Couchbase\N1qlIndex__construct#J(;#Couchbase\MutationTokenvbucketUuid#&;Couchbase\MutationTokenvbucketId#+;)Couchbase\MutationTokensequenceNumber#!;Couchbase\MutationTokenfrom#';!Couchbase\MutationTokenbucketName#(;#Couchbase\MutationToken__construct#!;Couchbase\MutationStatefrom# ;Couchbase\MutationStateadd#(;#Couchbase\MutationState__construct#)?!Couchbase\MutateInBuilderwithExpiry#^%?Couchbase\MutateInBuilderupsert#R&?Couchbase\MutateInBuilderreplace#T%?Couchbase\MutateInBuilderremove#U+?%Couchbase\MutateInBuildermodeDocument#S $3#Couchbase\N1qlQuerypipelineCap#G
    X`0n9V)    X                                      &CCouchbase\PrefixSearchQueryboost#,C#Couchbase\PrefixSearchQuery__construct#.C'Couchbase\PhraseSearchQueryjsonSerialize#&CCouchbase\PhraseSearchQueryfield#&CCouchbase\PhraseSearchQueryboost#,C#Couchbase\PhraseSearchQuery__construct#-KCouchbase\PasswordAuthenticatorusername#-KCouchbase\PasswordAuthenticatorpassword#0K#Couchbase\PasswordAuthenticator__construct#*OCouchbase\NumericRangeSearchQuerymin#*OCouchbase\NumericRangeSearchQuerymax#4O'Couchbase\NumericRangeSearchQueryjsonSerialize#,OCouchbase\NumericRangeSearchQueryfield#,OCouchbase\NumericRangeSearchQueryboost#2O#Couchbase\NumericRangeSearchQuery__construct#4O'Couchbase\NumericRangeSearchFacetjsonSerialize#/OCouchbase\NumericRangeSearchFacetaddRange#2O#Couchbase\NumericRangeSearchFacet__construct# 3Couchbase\N1qlQueryscanCap#E!3Couchbase\N1qlQueryreadonly#I   &CCouchbase\PrefixSearchQueryfield#
  ? s?nJ'a<     ` ?        7Couchbase\SearchQuerylimit#y$7Couchbase\SearchQueryhighlight#&7#Couchbase\SearchQuerygeoDistance#t)7)Couchbase\SearchQuerygeoBoundingBox#s!7Couchbase\SearchQueryfields#~"7Couchbase\SearchQueryexplain#{ 7Couchbase\SearchQuerydocId#g$7Couchbase\SearchQuerydisjuncts#f)7)Couchbase\SearchQuerydateRangeFacet#w$7Couchbase\SearchQuerydateRange#e)7)Couchbase\SearchQueryconsistentWith#}$7Couchbase\SearchQueryconjuncts#d'7%Couchbase\SearchQuerybooleanField#b"7Couchbase\SearchQueryboolean#c#7Couchbase\SearchQueryaddFacet#&7#Couchbase\SearchQuery__construct#`.C'Couchbase\RegexpSearchQueryjsonSerialize#&CCouchbase\RegexpSearchQueryfield#&CCouchbase\RegexpSearchQueryboost#,C#Couchbase\RegexpSearchQuery__construct#3M'Couchbase\QueryStringSearchQueryjsonSerialize#+MCouchbase\QueryStringSearchQueryboost#1M#Couchbase\QueryStringSearchQuery__construct#     (7'Couchbase\SearchQueryjsonSerialize#a
    O h;aA!b6    t O                     $ACouchbase\SpatialViewQueryskip#4%ACouchbase\SpatialViewQuerylimit#3$ACouchbase\SpatialViewQueryfrom#1(ACouchbase\SpatialViewQueryendRange#9&ACouchbase\SpatialViewQueryencode#2&ACouchbase\SpatialViewQuerycustom#:+A#Couchbase\SpatialViewQueryconsistency#5$ACouchbase\SpatialViewQuerybbox#7+A#Couchbase\SpatialViewQuery__construct#0#7Couchbase\SearchQuerywildcard#u$7Couchbase\SearchQuerytermRange#r$7Couchbase\SearchQuerytermFacet#v7Couchbase\SearchQueryterm#q7Couchbase\SearchQuerysort#7Couchbase\SearchQueryskip#z,7/Couchbase\SearchQueryserverSideTimeout#|!7Couchbase\SearchQueryregexp#p&7#Couchbase\SearchQueryqueryString#o!7Couchbase\SearchQueryprefix#n!7Couchbase\SearchQueryphrase#m,7/Couchbase\SearchQuerynumericRangeFacet#x'7%Couchbase\SearchQuerynumericRange#l&7#Couchbase\SearchQuerymatchPhrase#k$7Couchbase\SearchQuerymatchNone#j#7Couchbase\SearchQuerymatchAll#i
  = U+~Q&Z2    } ] =     3Couchbase\ViewQueryencode# 3Couchbase\ViewQuerycustom#%$3#Couchbase\ViewQueryconsistency##$3#Couchbase\ViewQuery__construct# 9Couchbase\UserSettingsrole"$9Couchbase\UserSettingspassword"$9Couchbase\UserSettingsfullName"'9#Couchbase\UserSettings__construct"+?%Couchbase\TermSearchQueryprefixLength#,?'Couchbase\TermSearchQueryjsonSerialize#(?Couchbase\TermSearchQueryfuzziness#$?Couchbase\TermSearchQueryfield#$?Couchbase\TermSearchQueryboost#*?#Couchbase\TermSearchQuery__construct#,?'Couchbase\TermSearchFacetjsonSerialize#*?#Couchbase\TermSearchFacet__construct#'ICouchbase\TermRangeSearchQuerymin#'ICouchbase\TermRangeSearchQuerymax#1I'Couchbase\TermRangeSearchQueryjsonSerialize#)ICouchbase\TermRangeSearchQueryfield#)ICouchbase\TermRangeSearchQueryboost#/I#Couchbase\TermRangeSearchQuery__construct#*A!Couchbase\SpatialViewQuerystartRange#8       3Couchbase\ViewQueryfrom#
    G ~]; eFlS:#       g G 1DOMAttrisDefaultNamespace'DOMAttrhasChildNodes'DOMAttrhasAttributes#DOMAttrgetUserData#DOMAttrgetNodePathDOMAttrgetLineNo!DOMAttrgetFeature$;DOMAttrcompareDocumentPositionDOMAttrcloneNode#DOMAttrappendChild#DOMAttr__construct	DOMAttrC14NFileDOMAttrC14N0G'Couchbase\WildcardSearchQueryjsonSerialize#(GCouchbase\WildcardSearchQueryfield#(GCouchbase\WildcardSearchQueryboost#.G#Couchbase\WildcardSearchQuery__construct#3Couchbase\ViewQuerystale#$3Couchbase\ViewQueryskip#"3Couchbase\ViewQueryreduce#'3Couchbase\ViewQueryrange#-3Couchbase\ViewQueryorder#&3Couchbase\ViewQuerylimit#!3Couchbase\ViewQuerykeys#,3Couchbase\ViewQuerykey#+!3Couchbase\ViewQueryid_range#/ 3Couchbase\ViewQueryidRange#.$3#Couchbase\ViewQuerygroup_level#*#3!Couchbase\ViewQuerygroupLevel#)3Couchbase\ViewQuerygroup#(%DOMAttrinsertBefore

    W lS9 g:vS1    x W                    +#DOMCdataSectionisSupported+!DOMCdataSectionisSameNode +#DOMCdataSectionisEqualNode/+ADOMCdataSectionisElementContentWhitespace'+1DOMCdataSectionisDefaultNamespace+!DOMCdataSectioninsertData!+%DOMCdataSectioninsertBefore"+'DOMCdataSectionhasChildNodes"+'DOMCdataSectionhasAttributes +#DOMCdataSectiongetUserData +#DOMCdataSectiongetNodePath+DOMCdataSectiongetLineNo+!DOMCdataSectiongetFeature+!DOMCdataSectiondeleteData,+;DOMCdataSectioncompareDocumentPosition+DOMCdataSectioncloneNode+!DOMCdataSectionappendData +#DOMCdataSectionappendChild +#DOMCdataSection__construct+DOMCdataSectionC14NFile+DOMCdataSectionC14N#DOMAttrsetUserData%DOMAttrreplaceChild#DOMAttrremoveChildDOMAttrnormalize%DOMAttrlookupPrefix1DOMAttrlookupNamespaceUri#DOMAttrisSupported!DOMAttrisSameNodeDOMAttrisId
    A uT2mN,{[9     b A  -!DOMCharacterDataisSameNode(-1DOMCharacterDataisDefaultNamespace -!DOMCharacterDatainsertData"-%DOMCharacterDatainsertBefore#-'DOMCharacterDatahasChildNodes#-'DOMCharacterDatahasAttributes!-#DOMCharacterDatagetUserData!-#DOMCharacterDatagetNodePath-DOMCharacterDatagetLineNo -!DOMCharacterDatagetFeature -!DOMCharacterDatadeleteData--;DOMCharacterDatacompareDocumentPosition-DOMCharacterDatacloneNode -!DOMCharacterDataappendData!-#DOMCharacterDataappendChild-DOMCharacterDataC14NFile-DOMCharacterDataC14N"+'DOMCdataSectionsubstringData+DOMCdataSectionsplitText +#DOMCdataSectionsetUserData%+-DOMCdataSectionreplaceWholeText +#DOMCdataSectionreplaceData!+%DOMCdataSectionreplaceChild +#DOMCdataSectionremoveChild+DOMCdataSectionnormalize!+%DOMCdataSectionlookupPrefix'+1DOMCdataSectionlookupNamespaceUri!-#DOMCharacterDataisEqualNode 
  P rP-{_D*z\>!     m P          !%DOMCommentlookupPrefixz"!1DOMCommentlookupNamespaceUri|!#DOMCommentisSupportedv!!DOMCommentisSameNodey!#DOMCommentisEqualNode}"!1DOMCommentisDefaultNamespace{!!DOMCommentinsertDatal!%DOMCommentinsertBeforeo!'DOMCommenthasChildNodess!'DOMCommenthasAttributesw!#DOMCommentgetUserData!#DOMCommentgetNodePath!DOMCommentgetLineNo!!DOMCommentgetFeature~!!DOMCommentdeleteDatam'!;DOMCommentcompareDocumentPositionx!DOMCommentcloneNodet!!DOMCommentappendDatak!#DOMCommentappendChildr!#DOMComment__constructi!DOMCommentC14NFile!DOMCommentC14N#-'DOMCharacterDatasubstringData!-#DOMCharacterDatasetUserData!-#DOMCharacterDatareplaceData"-%DOMCharacterDatareplaceChild!-#DOMCharacterDataremoveChild-DOMCharacterDatanormalize"-%DOMCharacterDatalookupPrefix(-1DOMCharacterDatalookupNamespaceUri       !DOMCommentnormalizeu
    OqK(e<nM&     k O             #!DOMDocumentgetFeature'#9DOMDocumentgetElementsByTagNameNS%#5DOMDocumentgetElementsByTagName#)DOMDocumentgetElementById#)DOMDocumentcreateTextNode,#CDOMDocumentcreateProcessingInstruction&#7DOMDocumentcreateEntityReference #+DOMDocumentcreateElementNS#'DOMDocumentcreateElement'#9DOMDocumentcreateDocumentFragment#'DOMDocumentcreateComment##1DOMDocumentcreateCDATASection"#/DOMDocumentcreateAttributeNS #+DOMDocumentcreateAttribute(#;DOMDocumentcompareDocumentPosition#DOMDocumentcloneNode##DOMDocumentappendChild#DOMDocumentadoptNode##DOMDocument__construct#DOMDocumentC14NFile#DOMDocumentC14N"-%DOMConfigurationsetParameter"-%DOMConfigurationgetParameter%-+DOMConfigurationcanSetParameter!'DOMCommentsubstringDataj!#DOMCommentsetUserData!#DOMCommentreplaceDatan!%DOMCommentreplaceChildp #DOMDocumentgetLineNo
     J kG*fH-
fH2     ~ d J  #DOMDocumentxinclude#DOMDocumentvalidate##DOMDocumentsetUserData%#5DOMDocumentschemaValidateSource#)DOMDocumentschemaValidate#DOMDocumentsaveXML#%DOMDocumentsaveHTMLFile#DOMDocumentsaveHTML#DOMDocumentsave#%DOMDocumentreplaceChild#!DOMDocumentrenameNode##DOMDocumentremoveChild&#7DOMDocumentrelaxNGValidateSource #+DOMDocumentrelaxNGValidate"#/DOMDocumentregisterNodeClass"#/DOMDocumentnormalizeDocument#DOMDocumentnormalize#%DOMDocumentlookupPrefix##1DOMDocumentlookupNamespaceUri#DOMDocumentloadXML#%DOMDocumentloadHTMLFile#DOMDocumentloadHTML#DOMDocumentload##DOMDocumentisSupported#!DOMDocumentisSameNode##DOMDocumentisEqualNode##1DOMDocumentisDefaultNamespace#%DOMDocumentinsertBefore#!DOMDocumentimportNode#'DOMDocumenthasChildNodes#'DOMDocumenthasAttributes##DOMDocumentgetUserData
    @ qNe>~R,	     a @     +#DOMDocumentTypeappendChild+DOMDocumentTypeC14NFile+DOMDocumentTypeC14N$3#DOMDocumentFragmentsetUserData%3%DOMDocumentFragmentreplaceChild$3#DOMDocumentFragmentremoveChild"3DOMDocumentFragmentnormalize%3%DOMDocumentFragmentlookupPrefix+31DOMDocumentFragmentlookupNamespaceUri$3#DOMDocumentFragmentisSupported#3!DOMDocumentFragmentisSameNode$3#DOMDocumentFragmentisEqualNode+31DOMDocumentFragmentisDefaultNamespace%3%DOMDocumentFragmentinsertBefore&3'DOMDocumentFragmenthasChildNodes&3'DOMDocumentFragmenthasAttributes$3#DOMDocumentFragmentgetUserData$3#DOMDocumentFragmentgetNodePath"3DOMDocumentFragmentgetLineNo#3!DOMDocumentFragmentgetFeature03;DOMDocumentFragmentcompareDocumentPosition"3DOMDocumentFragmentcloneNode"3DOMDocumentFragmentappendXML$3#DOMDocumentFragmentappendChild$3#DOMDocumentFragment__construct!3DOMDocumentFragmentC14NFile
    F sR/`8~eI-     k F    $!5DOMElementgetElementsByTagName&"!1DOMElementgetAttributeNodeNS* !-DOMElementgetAttributeNode#!)DOMElementgetAttributeNS'!%DOMElementgetAttribute '!;DOMElementcompareDocumentPosition<!DOMElementcloneNode8!#DOMElementappendChild6!#DOMElement__construct2!DOMElementC14NFileH!DOMElementC14NG +#DOMDocumentTypesetUserData!+%DOMDocumentTypereplaceChild +#DOMDocumentTyperemoveChild+DOMDocumentTypenormalize!+%DOMDocumentTypelookupPrefix'+1DOMDocumentTypelookupNamespaceUri +#DOMDocumentTypeisSupported+!DOMDocumentTypeisSameNode +#DOMDocumentTypeisEqualNode'+1DOMDocumentTypeisDefaultNamespace!+%DOMDocumentTypeinsertBefore"+'DOMDocumentTypehasChildNodes"+'DOMDocumentTypehasAttributes +#DOMDocumentTypegetUserData +#DOMDocumentTypegetNodePath+DOMDocumentTypegetLineNo+!DOMDocumentTypegetFeature,+;DOMDocumentTypecompareDocumentPosition    K   uB`* zP'
    m K                   3DOMDocumentFragmentC14N  ##DOMDocumentgetNodePath  !#DOMCommentremoveChildq  !-#DOMCharacterDataisSupported  1+EDOMCdataSectionisWhitespaceInElementContent  #DOMAttrisEqualNode  $3#Couchbase\ViewQueryfromSpatial#  %ACouchbase\SpatialViewQuerystale#6   7Couchbase\SearchQuerymatch#h  .C'Couchbase\PrefixSearchQueryjsonSerialize#  )3-Couchbase\N1qlQuerypositionalParams#A  %?Couchbase\MutateInBuilderinsert#Q  1I'Couchbase\MatchNoneSearchQueryjsonSerialize#   3Couchbase\ExceptiongetLine"  1I'Couchbase\DateRangeSearchFacetjsonSerialize#  1;5Couchbase\BucketManagerupsertDesignDocument#  -Couchbase\BucketqueueSize"  (ECouchbase\BooleanSearchQueryshould#  .=-ClosedGeneratorExceptiongetTraceAsString  +CachingIteratorhasNext  (=!BadFunctionCallExceptiongetMessage4  #ArrayObjectksort  +ArithmeticErrorgetTrace    M   X>gCmN    | M                 *A!IntlRuleBasedBreakIteratorisBoundary  /IntlPartsIteratornext  "7IntlGregorianCalendargetTypeq  *7+IntlGregorianCalendarfieldDifferencee   /IntlDateFormattergetLocale  2A1IntlCodePointBreakIteratorcreateWordInstance  %IntlCharisJavaIDPart'  %IntlCalendarsetTime,  %%IntlCalendargetErrorCodeQ  -/9IntlBreakIteratorcreateSentenceInstance  %GlobIteratorgetPermsk  )FilterIteratoraccept   1FilesystemIteratorgetFlags  )#ErrorException__construct   3DivisionByZeroErrorgetCode  /DirectoryIteratorgetInode  "/#DateTimeImmutablegetTimezone  !#DatePeriod__construct8  DOMTextgetLineNof  '=DOMProcessingInstructiongetLineNo  #DOMNotationC14N  2;7DOMImplementationSourcegetDomimplementationsy  $1%DOMEntityReferenceinsertBefore  DOMEntitycloneNode  &!9DOMElementgetElementsByTagNameNS,
     I {^?!pM0wZ;     x d I #DOMEntityappendChildDOMEntityC14N!#DOMElementsetUserDataC"!1DOMElementsetIdAttributeNode1 !-DOMElementsetIdAttributeNS0!)DOMElementsetIdAttribute/"!1DOMElementsetAttributeNodeNS+ !-DOMElementsetAttributeNode$!)DOMElementsetAttributeNS(!%DOMElementsetAttribute!!%DOMElementreplaceChild4!#DOMElementremoveChild5#!3DOMElementremoveAttributeNode%!!/DOMElementremoveAttributeNS)!+DOMElementremoveAttribute"!DOMElementnormalize9!%DOMElementlookupPrefix>"!1DOMElementlookupNamespaceUri@!#DOMElementisSupported:!!DOMElementisSameNode=!#DOMElementisEqualNodeA"!1DOMElementisDefaultNamespace?!%DOMElementinsertBefore3!'DOMElementhasChildNodes7!'DOMElementhasAttributes;!)DOMElementhasAttributeNS.!%DOMElementhasAttribute-!#DOMElementgetUserDataD!#DOMElementgetNodePathE!DOMElementgetLineNoF!!DOMElementgetFeatureBDOMEntityC14NFile
    N pS6jQ6yW'    t N          %1'DOMEntityReferencehasChildNodes%1'DOMEntityReferencehasAttributes#1#DOMEntityReferencegetUserData#1#DOMEntityReferencegetNodePath!1DOMEntityReferencegetLineNo "1!DOMEntityReferencegetFeature/1;DOMEntityReferencecompareDocumentPosition!1DOMEntityReferencecloneNode#1#DOMEntityReferenceappendChild#1#DOMEntityReference__construct 1DOMEntityReferenceC14NFile1DOMEntityReferenceC14N#DOMEntitysetUserData%DOMEntityreplaceChild#DOMEntityremoveChildDOMEntitynormalize%DOMEntitylookupPrefix!1DOMEntitylookupNamespaceUri#DOMEntityisSupported!DOMEntityisSameNode#DOMEntityisEqualNode!1DOMEntityisDefaultNamespace%DOMEntityinsertBefore'DOMEntityhasChildNodes'DOMEntityhasAttributes#DOMEntitygetUserData#DOMEntitygetNodePathDOMEntitygetLineNo!DOMEntitygetFeature&;DOMEntitycompareDocumentPosition
    M j?jP2qV3     M             1;5DOMImplementationSourcegetDomimplementationx7DOMImplementationListitemw!/!DOMImplementationhasFeature{!/!DOMImplementationgetFeaturez)/1DOMImplementationcreateDocumentType|%/)DOMImplementationcreateDocument}"%-DOMExceptiongetTraceAsStringr%DOMExceptiongetTracep%#DOMExceptiongetPreviousq%!DOMExceptiongetMessagel%DOMExceptiongetLineo%DOMExceptiongetFilen%DOMExceptiongetCodem%DOMException__wakeupk%!DOMException__toStrings%#DOMException__constructj%DOMException__clonei +#DOMErrorHandlerhandleError#1#DOMEntityReferencesetUserData$1%DOMEntityReferencereplaceChild#1#DOMEntityReferenceremoveChild!1DOMEntityReferencenormalize$1%DOMEntityReferencelookupPrefix*11DOMEntityReferencelookupNamespaceUri#1#DOMEntityReferenceisSupported"1!DOMEntityReferenceisSameNode#1#DOMEntityReferenceisEqualNode*11DOMEntityReferenceisDefaultNamespace
 " Q xV2t^E.	rX8      j Q     #DOMNodesetUserData%DOMNodereplaceChild#DOMNoderemoveChildDOMNodenormalize%DOMNodelookupPrefix1DOMNodelookupNamespaceUri#DOMNodeisSupported!DOMNodeisSameNode#DOMNodeisEqualNode1DOMNodeisDefaultNamespace%DOMNodeinsertBefore~'DOMNodehasChildNodes'DOMNodehasAttributes#DOMNodegetUserData#DOMNodegetNodePathDOMNodegetLineNo!DOMNodegetFeature$;DOMNodecompareDocumentPositionDOMNodecloneNode#DOMNodeappendChildDOMNodeC14NFileDOMNodeC14N#+)DOMNamedNodeMapsetNamedItemNS!+%DOMNamedNodeMapsetNamedItem&+/DOMNamedNodeMapremoveNamedItemNS$++DOMNamedNodeMapremoveNamedItem+DOMNamedNodeMapitem#+)DOMNamedNodeMapgetNamedItemNS!+%DOMNamedNodeMapgetNamedItem+DOMNamedNodeMapcount #+DOMNameListgetNamespaceURIv#DOMNameListgetNameu     #DOMNodeListitem#DOMNodeListcount
  N oS8~aE(sP)    w N              (=!DOMProcessingInstructiongetFeature5=;DOMProcessingInstructioncompareDocumentPosition'=DOMProcessingInstructioncloneNode	)=#DOMProcessingInstructionappendChild)=#DOMProcessingInstruction__construct&=DOMProcessingInstructionC14NFile"=DOMProcessingInstructionC14N##DOMNotationsetUserData#%DOMNotationreplaceChild##DOMNotationremoveChild#DOMNotationnormalize#%DOMNotationlookupPrefix##1DOMNotationlookupNamespaceUri##DOMNotationisSupported#!DOMNotationisSameNode##DOMNotationisEqualNode##1DOMNotationisDefaultNamespace#%DOMNotationinsertBefore#'DOMNotationhasChildNodes#'DOMNotationhasAttributes##DOMNotationgetUserData##DOMNotationgetNodePath#DOMNotationgetLineNo#!DOMNotationgetFeature(#;DOMNotationcompareDocumentPosition#DOMNotationcloneNode##DOMNotationappendChild#DOMNotationC14NFile                     
    > h<c2`>      { V >!DOMTextgetFeatureb$;DOMTextcompareDocumentPosition\DOMTextcloneNodeX!DOMTextappendDataO#DOMTextappendChildV#DOMText__constructMDOMTextC14NFilehDOMTextC14Ng'DOMStringListitemt!+%DOMStringExtendfindOffset32!+%DOMStringExtendfindOffset16)=#DOMProcessingInstructionsetUserData*=%DOMProcessingInstructionreplaceChild)=#DOMProcessingInstructionremoveChild'=DOMProcessingInstructionnormalize
*=%DOMProcessingInstructionlookupPrefix0=1DOMProcessingInstructionlookupNamespaceUri)=#DOMProcessingInstructionisSupported(=!DOMProcessingInstructionisSameNode)=#DOMProcessingInstructionisEqualNode0=1DOMProcessingInstructionisDefaultNamespace*=%DOMProcessingInstructioninsertBefore+='DOMProcessingInstructionhasChildNodes+='DOMProcessingInstructionhasAttributes)=#DOMProcessingInstructiongetUserData)=#DOMProcessingInstructiongetNodePath!DOMTextdeleteDataQ
 ! O gO/sYB)nT=)	     h O     %DateIntervalformat6&%5DateIntervalcreateFromDateString7%DateInterval__wakeup4%#DateInterval__set_state5%#DateInterval__construct3"5DOMXPathregisterPhpFunctions /DOMXPathregisterNamespaceDOMXPathqueryDOMXPathevaluate#DOMXPath__construct1DOMUserDataHandlerhandle'DOMTextsubstringDataNDOMTextsplitTextI#DOMTextsetUserDatac-DOMTextreplaceWholeTextL#DOMTextreplaceDataR%DOMTextreplaceChildT#DOMTextremoveChildUDOMTextnormalizeY%DOMTextlookupPrefix^1DOMTextlookupNamespaceUri`)EDOMTextisWhitespaceInElementContentJ#DOMTextisSupportedZ!DOMTextisSameNode]#DOMTextisEqualNodea'ADOMTextisElementContentWhitespaceK1DOMTextisDefaultNamespace_!DOMTextinsertDataP%DOMTextinsertBeforeS'DOMTexthasChildNodesW'DOMTexthasAttributes[#DOMTextgetUserDatad#DOMTextgetNodePathe                      
   " O sY?(fQ;"_D     s O   #/%DateTimeImmutablegetTimestamp /DateTimeImmutablegetOffset$/'DateTimeImmutablegetLastErrors/DateTimeImmutableformat/DateTimeImmutablediff (//DateTimeImmutablecreateFromMutable)'/-DateTimeImmutablecreateFromFormat/DateTimeImmutableadd"/DateTimeImmutable__wakeup"/#DateTimeImmutable__set_state"/#DateTimeImmutable__constructDateTimesub#DateTimesetTimezone%DateTimesetTimestampDateTimesetTime!DateTimesetISODateDateTimesetDateDateTimemodify#DateTimegetTimezone%DateTimegetTimestampDateTimegetOffset'DateTimegetLastErrors	DateTimeformat
DateTimediff-DateTimecreateFromFormatDateTimeaddDateTime__wakeup#DateTime__set_state#DateTime__construct!%DatePeriodgetStartDate;!!DatePeriodgetEndDate<!+DatePeriodgetDateInterval=!DatePeriod__wakeup9!#DatePeriod__set_state:
    V~_;nR1gB#    y V                  "/#DirectoryIteratorgetFilename"/#DirectoryIteratorgetFileInfo#/%DirectoryIteratorgetExtension/DirectoryIteratorgetCTime"/#DirectoryIteratorgetBasename/DirectoryIteratorgetATime/DirectoryIteratorcurrent$/'DirectoryIterator_bad_state_ex!/!DirectoryIterator__toString"/#DirectoryIterator__constructDirectoryrewind<Directoryread=Directoryclose;!%+DateTimeZonelistIdentifiers2#%/DateTimeZonelistAbbreviations1 %)DateTimeZonegetTransitions/%DateTimeZonegetOffset.%DateTimeZonegetName-%#DateTimeZonegetLocation0%DateTimeZone__wakeup+%#DateTimeZone__set_state,%#DateTimeZone__construct*/DateTimeImmutablesub#"/#DateTimeImmutablesetTimezone$#/%DateTimeImmutablesetTimestamp(/DateTimeImmutablesetTime%!/!DateTimeImmutablesetISODate'/DateTimeImmutablesetDate&/DateTimeImmutablemodify!   /DirectoryIteratorgetGroup
    U |Y6{W9bF"     w U                   !3DivisionByZeroError__wakeup#3!DivisionByZeroError__toString$3#DivisionByZeroError__construct 3DivisionByZeroError__clone/DirectoryIteratorvalid#/%DirectoryIteratorsetInfoClass#/%DirectoryIteratorsetFileClass/DirectoryIteratorseek/DirectoryIteratorrewind/DirectoryIteratoropenFile/DirectoryIteratornext/DirectoryIteratorkey!/!DirectoryIteratorisWritable!/!DirectoryIteratorisReadable/DirectoryIteratorisLink/DirectoryIteratorisFile#/%DirectoryIteratorisExecutable/DirectoryIteratorisDot/DirectoryIteratorisDir/DirectoryIteratorgetType/DirectoryIteratorgetSize"/#DirectoryIteratorgetRealPath/DirectoryIteratorgetPerms"/#DirectoryIteratorgetPathname"/#DirectoryIteratorgetPathInfo/DirectoryIteratorgetPath/DirectoryIteratorgetOwner/DirectoryIteratorgetMTime$/'DirectoryIteratorgetLinkTarget 
   " N ~Y7tW:kQ8%       ~ j N  )ErrorException__cloneErrorgetTrace#ErrorgetPrevious!ErrorgetMessageErrorgetLineErrorgetFileErrorgetCodeError__wakeup!Error__toString#Error__constructError__clone'EmptyIteratorvalidb'EmptyIteratorrewinda'EmptyIteratornexte'EmptyIteratorkeyc'EmptyIteratorcurrentd%+-DomainExceptiongetTraceAsStringP+DomainExceptiongetTraceN +#DomainExceptiongetPreviousO+!DomainExceptiongetMessageJ+DomainExceptiongetLineM+DomainExceptiongetFileL+DomainExceptiongetCodeK+DomainException__wakeupI+!DomainException__toStringQ +#DomainException__constructH+DomainException__cloneG)3-DivisionByZeroErrorgetTraceAsString!3DivisionByZeroErrorgetTrace$3#DivisionByZeroErrorgetPrevious#3!DivisionByZeroErrorgetMessage 3DivisionByZeroErrorgetLine 3DivisionByZeroErrorgetFile-ErrorgetTraceAsString
    Y pQ1kT=&rL,    } Y                   #1#FilesystemIteratorgetFilename#1#FilesystemIteratorgetFileInfo)$1%FilesystemIteratorgetExtension 1FilesystemIteratorgetCTime#1#FilesystemIteratorgetBasename 1FilesystemIteratorgetATime1FilesystemIteratorcurrent%1'FilesystemIterator_bad_state_ex."1!FilesystemIterator__toString#1#FilesystemIterator__construct-ExceptiongetTraceAsStringExceptiongetTrace#ExceptiongetPrevious!ExceptiongetMessageExceptiongetLineExceptiongetFileExceptiongetCodeException__wakeup!Exception__toString#Exception__constructException__clone$)-ErrorExceptiongetTraceAsString)ErrorExceptiongetTrace)#ErrorExceptiongetSeverity)#ErrorExceptiongetPrevious)!ErrorExceptiongetMessage)ErrorExceptiongetLine)ErrorExceptiongetFile)ErrorExceptiongetCode)ErrorException__wakeup)!ErrorException__toString
    DwV5hH*cG*	     b D  1FilesystemIteratorvalid$1%FilesystemIteratorsetInfoClass- 1FilesystemIteratorsetFlags$1%FilesystemIteratorsetFileClass,1FilesystemIteratorseek1FilesystemIteratorrewind	 1FilesystemIteratoropenFile+1FilesystemIteratornext
1FilesystemIteratorkey"1!FilesystemIteratorisWritable!"1!FilesystemIteratorisReadable"1FilesystemIteratorisLink&1FilesystemIteratorisFile$$1%FilesystemIteratorisExecutable#1FilesystemIteratorisDot1FilesystemIteratorisDir%1FilesystemIteratorgetType 1FilesystemIteratorgetSize#1#FilesystemIteratorgetRealPath( 1FilesystemIteratorgetPerms#1#FilesystemIteratorgetPathname#1#FilesystemIteratorgetPathInfo*1FilesystemIteratorgetPath 1FilesystemIteratorgetOwner 1FilesystemIteratorgetMTime%1'FilesystemIteratorgetLinkTarget' 1FilesystemIteratorgetInode 1FilesystemIteratorgetGroup )#FilterIterator__construct
   # ] sYA*x[;#	xZ?$	     { ]               %#GlobIteratorgetPathnamej%#GlobIteratorgetPathInfo}%GlobIteratorgetPathi%GlobIteratorgetOwnern%GlobIteratorgetMTimeq%'GlobIteratorgetLinkTargetz%GlobIteratorgetInodel%GlobIteratorgetGroupo%GlobIteratorgetFlags`%#GlobIteratorgetFilenameb%#GlobIteratorgetFileInfo|%%GlobIteratorgetExtensionc%GlobIteratorgetCTimer%#GlobIteratorgetBasenamed%GlobIteratorgetATimep%GlobIteratorcurrent_%GlobIteratorcount[%'GlobIterator_bad_state_ex%!GlobIterator__toStringh%#GlobIterator__constructZGeneratorvalidGeneratorthrowGeneratorsendGeneratorrewindGeneratornextGeneratorkeyGeneratorgetReturnGeneratorcurrentGenerator__wakeup)FilterIteratorvalid)FilterIteratorrewind)FilterIteratornext)FilterIteratorkey$)-FilterIteratorgetInnerIterator)FilterIteratorcurrent
  R {cD+w`A&kQ6    | R            )/1IntlBreakIteratorcreateLineInstance./;IntlBreakIteratorcreateCodePointInstance./;IntlBreakIteratorcreateCharacterInstance"/#IntlBreakIterator__construct-InfiniteIteratorvalid=-InfiniteIteratorrewind<-InfiniteIteratornext;-InfiniteIteratorkey>&--InfiniteIteratorgetInnerIterator@-InfiniteIteratorcurrent?!-#InfiniteIterator__construct:##HashContext__construct!%GlobIteratorvalidf%%GlobIteratorsetInfoClass%GlobIteratorsetFlagsa%%GlobIteratorsetFileClass%GlobIteratorseekg%GlobIteratorrewind\%GlobIteratoropenFile~%GlobIteratornext]%GlobIteratorkey^%!GlobIteratorisWritablet%!GlobIteratorisReadableu%GlobIteratorisLinky%GlobIteratorisFilew%%GlobIteratorisExecutablev%GlobIteratorisDote%GlobIteratorisDirx%GlobIteratorgetTypes%GlobIteratorgetSizem%#GlobIteratorgetRealPath{                          
    D fI(uS7oV>     g D"%-IntlCalendargetDayOfWeekType7"%-IntlCalendargetActualMinimum6"%-IntlCalendargetActualMaximum5%IntlCalendarget*%%IntlCalendarfromDateTimeO!%+IntlCalendarfieldDifference4%IntlCalendarequalsJ %)IntlCalendarcreateInstance&%IntlCalendarclear3%IntlCalendarbefore0%IntlCalendarafter/%IntlCalendaradd-%#IntlCalendar__construct%/IntlBreakIteratorsetText/IntlBreakIteratorprevious /IntlBreakIteratorpreceding/IntlBreakIteratornext/IntlBreakIteratorlast!/!IntlBreakIteratorisBoundary/IntlBreakIteratorgetText'/-IntlBreakIteratorgetPartsIterator /IntlBreakIteratorgetLocale&/+IntlBreakIteratorgetErrorMessage#/%IntlBreakIteratorgetErrorCode /IntlBreakIteratorfollowing/IntlBreakIteratorfirst/IntlBreakIteratorcurrent)/1IntlBreakIteratorcreateWordInstance*/3IntlBreakIteratorcreateTitleInstance%%3IntlCalendargetAvailableLocales)
    Y iG+U;~fJ3     Y                         *%=IntlCalendarsetSkippedWallTimeOptionN+%?IntlCalendarsetRepeatedWallTimeOptionM+%?IntlCalendarsetMinimalDaysInFirstWeekI%!IntlCalendarsetLenientH#%/IntlCalendarsetFirstDayOfWeekG%IntlCalendarset1%IntlCalendarroll2%IntlCalendarisWeekendF%IntlCalendarisSetE%IntlCalendarisLenientD %)IntlCalendarisEquivalentToC %)IntlCalendarinDaylightTimeB&%5IntlCalendargetWeekendTransitionA%IntlCalendargetType@%#IntlCalendargetTimeZone?%IntlCalendargetTime+*%=IntlCalendargetSkippedWallTimeOptionL+%?IntlCalendargetRepeatedWallTimeOptionK%IntlCalendargetNow(%!IntlCalendargetMinimum>+%?IntlCalendargetMinimalDaysInFirstWeek=%!IntlCalendargetMaximum<%IntlCalendargetLocale;!%+IntlCalendargetLeastMaximum:+%?IntlCalendargetKeywordValuesForLocale'$%1IntlCalendargetGreatestMinimum9#%/IntlCalendargetFirstDayOfWeek8!%+IntlCalendargetErrorMessageR
   ! W v[B+eJ*	aC       r W             %IntlCharisISOControlIntlCharisIDStart#IntlCharisIDPart$'IntlCharisIDIgnorable%/IntlCharhasBinaryProperty/IntlChargetUnicodeVersion/"5IntlChargetPropertyValueName!"5IntlChargetPropertyValueEnum"+IntlChargetPropertyName+IntlChargetPropertyEnum +IntlChargetNumericValue !3IntlChargetIntPropertyValue$9IntlChargetIntPropertyMinValue$9IntlChargetIntPropertyMaxValue 1IntlChargetFC_NFKC_Closure0/IntlChargetCombiningClass%IntlChargetBlockCode"5IntlChargetBidiPairedBracketIntlCharforDigit-IntlCharfoldCase+'IntlCharenumCharTypes'IntlCharenumCharNamesIntlChardigit,IntlCharchrIntlCharcharTypeIntlCharcharName!IntlCharcharMirror%IntlCharcharFromName'IntlCharcharDirection)IntlCharcharDigitValueIntlCharcharAge.%!IntlCalendartoDateTimeP%#IntlCalendarsetTimeZone.
   ! J v[?$s]G1X    ~ J3A3IntlCodePointBreakIteratorcreateTitleInstance6A9IntlCodePointBreakIteratorcreateSentenceInstance2A1IntlCodePointBreakIteratorcreateLineInstance7A;IntlCodePointBreakIteratorcreateCodePointInstance7A;IntlCodePointBreakIteratorcreateCharacterInstance+A#IntlCodePointBreakIterator__constructIntlChartoupper)IntlChartotitle*IntlChartolower(IntlCharordIntlCharisxdigitIntlCharisupperIntlCharistitleIntlCharisspaceIntlCharispunctIntlCharisprintIntlCharislowerIntlCharisgraph	IntlCharisdigitIntlCharisdefinedIntlChariscntrlIntlCharisblank
IntlCharisbaseIntlCharisalphaIntlCharisalnum%IntlCharisWhitespace'IntlCharisUWhiteSpace%IntlCharisUUppercase%IntlCharisULowercase'IntlCharisUAlphabetic!IntlCharisMirrored+IntlCharisJavaSpaceChar'IntlCharisJavaIDStart&
  > U(lD|T1     b >      #/%IntlDateFormattergetErrorCode"/#IntlDateFormattergetDateType(//IntlDateFormattergetCalendarObject"/#IntlDateFormattergetCalendar#/%IntlDateFormatterformatObject/IntlDateFormatterformat/IntlDateFormattercreate"/#IntlDateFormatter__construct'AIntlCodePointBreakIteratorsetText(AIntlCodePointBreakIteratorprevious)AIntlCodePointBreakIteratorpreceding$AIntlCodePointBreakIteratornext$AIntlCodePointBreakIteratorlast*A!IntlCodePointBreakIteratorisBoundary'AIntlCodePointBreakIteratorgetText0A-IntlCodePointBreakIteratorgetPartsIterator)AIntlCodePointBreakIteratorgetLocale0A-IntlCodePointBreakIteratorgetLastCodePoint/A+IntlCodePointBreakIteratorgetErrorMessage,A%IntlCodePointBreakIteratorgetErrorCode)AIntlCodePointBreakIteratorfollowing%AIntlCodePointBreakIteratorfirst'AIntlCodePointBreakIteratorcurrent           &/+IntlDateFormattergetErrorMessage
    R sR1oP2lH!    t R                !7IntlGregorianCalendarequals{)7)IntlGregorianCalendarcreateInstanceW 7IntlGregorianCalendarcleard!7IntlGregorianCalendarbeforea 7IntlGregorianCalendarafter`7IntlGregorianCalendaradd^&7#IntlGregorianCalendar__constructS#'-IntlExceptiongetTraceAsString'IntlExceptiongetTrace'#IntlExceptiongetPrevious'!IntlExceptiongetMessage'IntlExceptiongetLine'IntlExceptiongetFile'IntlExceptiongetCode'IntlException__wakeup'!IntlException__toString'#IntlException__construct'IntlException__clone"/#IntlDateFormattersetTimeZone!/!IntlDateFormattersetPattern!/!IntlDateFormattersetLenient"/#IntlDateFormattersetCalendar/IntlDateFormatterparse /IntlDateFormatterlocaltime /IntlDateFormatterisLenient$/'IntlDateFormattergetTimeZoneId"/#IntlDateFormattergetTimeZone"/#IntlDateFormattergetTimeType!/!IntlDateFormattergetPattern
  K b6[-zT    n K                       "7IntlGregorianCalendargetTime\37=IntlGregorianCalendargetSkippedWallTimeOption}47?IntlGregorianCalendargetRepeatedWallTimeOption|!7IntlGregorianCalendargetNowY%7!IntlGregorianCalendargetMinimumo47?IntlGregorianCalendargetMinimalDaysInFirstWeekn%7!IntlGregorianCalendargetMaximumm$7IntlGregorianCalendargetLocalel*7+IntlGregorianCalendargetLeastMaximumk47?IntlGregorianCalendargetKeywordValuesForLocaleX-71IntlGregorianCalendargetGregorianChangeU-71IntlGregorianCalendargetGreatestMinimumj,7/IntlGregorianCalendargetFirstDayOfWeeki*7+IntlGregorianCalendargetErrorMessage'7%IntlGregorianCalendargetErrorCode+7-IntlGregorianCalendargetDayOfWeekTypeh.73IntlGregorianCalendargetAvailableLocalesZ+7-IntlGregorianCalendargetActualMinimumg+7-IntlGregorianCalendargetActualMaximumf7IntlGregorianCalendarget['7%IntlGregorianCalendarfromDateTime   &7#IntlGregorianCalendargetTimeZonep
    C |V1Q+jC      ^ C       /IntlPartsIteratorkey'/-IntlPartsIteratorgetBreakIterator/IntlPartsIteratorcurrent%IntlIteratorvalid%IntlIteratorrewind%IntlIteratornext%IntlIteratorkey%IntlIteratorcurrent%7!IntlGregorianCalendartoDateTime&7#IntlGregorianCalendarsetTimeZone_"7IntlGregorianCalendarsetTime]37=IntlGregorianCalendarsetSkippedWallTimeOption47?IntlGregorianCalendarsetRepeatedWallTimeOption~47?IntlGregorianCalendarsetMinimalDaysInFirstWeekz%7!IntlGregorianCalendarsetLenienty-71IntlGregorianCalendarsetGregorianChangeT,7/IntlGregorianCalendarsetFirstDayOfWeekx7IntlGregorianCalendarsetb7IntlGregorianCalendarrollc$7IntlGregorianCalendarisWeekendw 7IntlGregorianCalendarisSetv$7IntlGregorianCalendarisLenientu%7!IntlGregorianCalendarisLeapYearV)7)IntlGregorianCalendarisEquivalentTot)7)IntlGregorianCalendarinDaylightTimes/75IntlGregorianCalendargetWeekendTransitionr
    I a)X0
T*    q I                       'AIntlRuleBasedBreakIteratorgetText(AIntlRuleBasedBreakIteratorgetRules0A-IntlRuleBasedBreakIteratorgetRuleStatusVec-A'IntlRuleBasedBreakIteratorgetRuleStatus0A-IntlRuleBasedBreakIteratorgetPartsIterator)AIntlRuleBasedBreakIteratorgetLocale/A+IntlRuleBasedBreakIteratorgetErrorMessage,A%IntlRuleBasedBreakIteratorgetErrorCode.A)IntlRuleBasedBreakIteratorgetBinaryRules)AIntlRuleBasedBreakIteratorfollowing%AIntlRuleBasedBreakIteratorfirst'AIntlRuleBasedBreakIteratorcurrent2A1IntlRuleBasedBreakIteratorcreateWordInstance3A3IntlRuleBasedBreakIteratorcreateTitleInstance6A9IntlRuleBasedBreakIteratorcreateSentenceInstance2A1IntlRuleBasedBreakIteratorcreateLineInstance7A;IntlRuleBasedBreakIteratorcreateCodePointInstance7A;IntlRuleBasedBreakIteratorcreateCharacterInstance+A#IntlRuleBasedBreakIterator__construct/IntlPartsIteratorvalid/IntlPartsIteratorrewind
  G a8h:tR9!      f G       %%IntlTimeZonegetWindowsID#%!IntlTimeZonegetUnknown"%-IntlTimeZonegetTZDataVersion%IntlTimeZonegetRegion%%IntlTimeZonegetRawOffset%IntlTimeZonegetOffset#%/IntlTimeZonegetIDForWindowsID$%IntlTimeZonegetID%IntlTimeZonegetGMT!%+IntlTimeZonegetErrorMessage"%%IntlTimeZonegetErrorCode!!%+IntlTimeZonegetEquivalentID %)IntlTimeZonegetDisplayName%'IntlTimeZonegetDSTSavings %)IntlTimeZonegetCanonicalID"%-IntlTimeZonefromDateTimeZone-%CIntlTimeZonecreateTimeZoneIDEnumeration %)IntlTimeZonecreateTimeZone#%/IntlTimeZonecreateEnumeration%'IntlTimeZonecreateDefault$%1IntlTimeZonecountEquivalentIDs%#IntlTimeZone__construct'AIntlRuleBasedBreakIteratorsetText(AIntlRuleBasedBreakIteratorprevious)AIntlRuleBasedBreakIteratorpreceding$AIntlRuleBasedBreakIteratornext$AIntlRuleBasedBreakIteratorlast           %%IntlTimeZonehasSameRules
    ZmDX1fI-     w Z                            +LengthExceptiongetLinec+LengthExceptiongetFileb+LengthExceptiongetCodea+LengthException__wakeup_+!LengthException__toStringg +#LengthException__construct^+LengthException__clone]-IteratorIteratorvalid-IteratorIteratorrewind-IteratorIteratornext-IteratorIteratorkey&--IteratorIteratorgetInnerIterator-IteratorIteratorcurrent!-#IteratorIterator__construct.=-InvalidArgumentExceptiongetTraceAsString[&=InvalidArgumentExceptiongetTraceY)=#InvalidArgumentExceptiongetPreviousZ(=!InvalidArgumentExceptiongetMessageU%=InvalidArgumentExceptiongetLineX%=InvalidArgumentExceptiongetFileW%=InvalidArgumentExceptiongetCodeV&=InvalidArgumentException__wakeupT(=!InvalidArgumentException__toString\)=#InvalidArgumentException__constructS%=InvalidArgumentException__cloneR!%+IntlTimeZoneuseDaylightTime +!LengthExceptiongetMessage`    d   sZ>!u`C"uV1     } d                              #PHPdbplus_undo  5PHPdbase_replace_record  #PHPdb2_prepare   5PHPdatefmt_set_timezonex  +PHPcurl_share_initd  'PHPcubrid_result[  1PHPcubrid_is_instance7   ;PHPcubrid_connect_with_url  /PHPconnection_statust  !PHPclass_uses  5PHPcairo_surface_status  7PHPcairo_set_font_matrix  "?PHPcairo_pop_group_to_source  $CPHPcairo_matrix_init_translatex  3PHPcairo_get_font_faceX  +PHPcairo_copy_page<  PHPbin2hex  PHPasort   !PHParray_flip   -PHPapc_compile_filer  9PHPPDF_setrgbcolor_stroke  7PHPPDF_open_pdi_document  +PHPPDF_fill_stroke  +PHPPDF_close_imagec  %PDOStatementfetchf  #PDO__constructT  !5OutOfBoundsExceptiongetFile  -NoRewindIteratorcurrent-  )LogicExceptiongetFile+   +#LengthExceptiongetPreviouse
 " [ |a=pV<!
x`A+     x [               )LogicException__wakeup()!LogicException__toString0)#LogicException__construct')LogicException__clone&!LocalesetDefault#LocaleparseLocaleLocalelookupLocalegetScriptLocalegetRegion1LocalegetPrimaryLanguage#LocalegetKeywords/LocalegetDisplayVariant-LocalegetDisplayScript-LocalegetDisplayRegion)LocalegetDisplayName1LocalegetDisplayLanguage!LocalegetDefault)LocalegetAllVariants'LocalefilterMatches'LocalecomposeLocale%Localecanonicalize)LocaleacceptFromHttp'LimitIteratorvalid'LimitIteratorseek'LimitIteratorrewind'LimitIteratornext'LimitIteratorkey'#LimitIteratorgetPosition#'-LimitIteratorgetInnerIterator'LimitIteratorcurrent '#LimitIterator__construct%+-LengthExceptiongetTraceAsStringf+LengthExceptiongetTraced    )LogicExceptiongetCode*
    U cA$zY=fH#     w U                   !-#NoRewindIterator__construct)-MultipleIteratorvalid-MultipleIteratorsetFlags-MultipleIteratorrewind-MultipleIteratornext-MultipleIteratorkey-MultipleIteratorgetFlags$-)MultipleIteratordetachIterator-MultipleIteratorcurrent$-)MultipleIteratorcountIterators&--MultipleIteratorcontainsIterator$-)MultipleIteratorattachIterator!-#MultipleIterator__construct -!MessageFormattersetPattern"-%MessageFormatterparseMessage-MessageFormatterparse -!MessageFormattergetPattern-MessageFormattergetLocale%-+MessageFormattergetErrorMessage"-%MessageFormattergetErrorCode#-'MessageFormatterformatMessage-MessageFormatterformat-MessageFormattercreate!-#MessageFormatter__construct$)-LogicExceptiongetTraceAsString/)LogicExceptiongetTrace-)#LogicExceptiongetPrevious.)!LogicExceptiongetMessage))LogicExceptiongetLine,
    S kN4sN/jJ+    u S                 !5OutOfBoundsExceptiongetCode"5OutOfBoundsException__wakeup$5!OutOfBoundsException__toString%5#OutOfBoundsException__construct!5OutOfBoundsException__clone~%+-NumberFormattersetTextAttribute+NumberFormattersetSymbol+!NumberFormattersetPattern!+%NumberFormattersetAttribute"+'NumberFormatterparseCurrency+NumberFormatterparse%+-NumberFormattergetTextAttribute+NumberFormattergetSymbol+!NumberFormattergetPattern+NumberFormattergetLocale$++NumberFormattergetErrorMessage!+%NumberFormattergetErrorCode!+%NumberFormattergetAttribute#+)NumberFormatterformatCurrency+NumberFormatterformat+NumberFormattercreate +#NumberFormatter__construct!Normalizernormalize!%NormalizerisNormalized-NoRewindIteratorvalid+-NoRewindIteratorrewind*-NoRewindIteratornext.-NoRewindIteratorkey,&--NoRewindIteratorgetInnerIterator/
    S pE$wV2]=     { S                     '/-OverflowExceptiongetTraceAsString/OverflowExceptiongetTrace"/#OverflowExceptiongetPrevious!/!OverflowExceptiongetMessage/OverflowExceptiongetLine/OverflowExceptiongetFile/OverflowExceptiongetCode/OverflowException__wakeup!/!OverflowException__toString"/#OverflowException__construct/OverflowException__clone)3-OutOfRangeExceptiongetTraceAsStringq!3OutOfRangeExceptiongetTraceo$3#OutOfRangeExceptiongetPreviousp#3!OutOfRangeExceptiongetMessagek 3OutOfRangeExceptiongetLinen 3OutOfRangeExceptiongetFilem 3OutOfRangeExceptiongetCodel!3OutOfRangeException__wakeupj#3!OutOfRangeException__toStringr$3#OutOfRangeException__constructi 3OutOfRangeException__cloneh*5-OutOfBoundsExceptiongetTraceAsString"5OutOfBoundsExceptiongetTrace%5#OutOfBoundsExceptiongetPrevious$5!OutOfBoundsExceptiongetMessage!5OutOfBoundsExceptiongetLine
   & W iL5sX>$
w\?#     q W   %PDOStatementexecutee%PDOStatementerrorInfoo%PDOStatementerrorCoden!%+PDOStatementdebugDumpParamsw%#PDOStatementcolumnCountr%#PDOStatementcloseCursorv%PDOStatementbindValuei%PDOStatementbindParamg%!PDOStatementbindColumnh%PDOStatement__wakeupx%PDOStatement__sleepy"%-PDOExceptiongetTraceAsStringR%PDOExceptiongetTraceP%#PDOExceptiongetPreviousQ%!PDOExceptiongetMessageL%PDOExceptiongetLineO%PDOExceptiongetFileN%PDOExceptiongetCodeM%PDOException__wakeupK%!PDOException__toStringS%#PDOException__constructJ%PDOException__cloneI%PDOsetAttributeZPDOrollBackXPDOquoteaPDOquery\PDOprepareU%PDOlastInsertId]'PDOinTransactionY3PDOgetAvailableDriversd%PDOgetAttribute`PDOexec[PDOerrorInfo_PDOerrorCode^PDOcommitW-PDObeginTransactionVPDO__wakeupbPDO__sleepc
 $ W rR5v[E,jR9!     } i W       PHPPDF_clipa!PHPPDF_circle`9PHPPDF_begin_template_ext^1PHPPDF_begin_template_/PHPPDF_begin_pattern]1PHPPDF_begin_page_ext\)PHPPDF_begin_page[+PHPPDF_begin_layerZ)PHPPDF_begin_itemY+PHPPDF_begin_glyphX)PHPPDF_begin_fontW1PHPPDF_begin_documentV+PHPPDF_attach_fileUPHPPDF_arcnTPHPPDF_arcS+PHPPDF_add_weblinkR/PHPPDF_add_thumbnailQ-PHPPDF_add_textflowP1PHPPDF_add_table_cellO+PHPPDF_add_pdflinkN%PHPPDF_add_noteM/PHPPDF_add_nameddestL/PHPPDF_add_locallinkK1PHPPDF_add_launchlinkJ/PHPPDF_activate_itemI!PHPJulianToJD%%PDOStatementsetFetchModet%%PDOStatementsetAttributep%PDOStatementrowCountj%!PDOStatementnextRowsetu%'PDOStatementgetColumnMetas%%PDOStatementgetAttributeq%#PDOStatementfetchObjectm%#PDOStatementfetchColumnk%PDOStatementfetchAlll    PHPPDF_closeb
   $ d uaF+hK6jS=&       d                    /PHPPDF_fill_pdfblock3PHPPDF_fill_imageblockPHPPDF_fill#PHPPDF_endpath-PHPPDF_end_template+PHPPDF_end_pattern-PHPPDF_end_page_ext%PHPPDF_end_page'PHPPDF_end_layer%PHPPDF_end_item~'PHPPDF_end_glyph}%PHPPDF_end_font|-PHPPDF_end_document{7PHPPDF_encoding_set_charz3PHPPDF_delete_textflowy-PHPPDF_delete_tablex)PHPPDF_delete_pvfw!PHPPDF_deletev-PHPPDF_define_layeru#PHPPDF_curvetot3PHPPDF_create_textflows)PHPPDF_create_pvfr/PHPPDF_create_gstateq7PHPPDF_create_fieldgroupp-PHPPDF_create_fieldo3PHPPDF_create_bookmarkn7PHPPDF_create_annotationm/PHPPDF_create_actionl/PHPPDF_create_3dviewk/PHPPDF_continue_textj!PHPPDF_concati5PHPPDF_closepath_strokef"?PHPPDF_closepath_fill_strokee'PHPPDF_closepathd1PHPPDF_close_pdi_pageh'PHPPDF_close_pdig
   % ZmS9 bG0iR5      y Z        7PHPPDF_open_memory_image3PHPPDF_open_image_file)PHPPDF_open_image'PHPPDF_open_file)PHPPDF_open_ccittPHPPDF_new!PHPPDF_moveto/PHPPDF_makespotcolor)PHPPDF_load_image3PHPPDF_load_iccprofile'PHPPDF_load_font+PHPPDF_load_3ddata!PHPPDF_lineto-PHPPDF_initgraphics/PHPPDF_info_textline/PHPPDF_info_textflow)PHPPDF_info_table/PHPPDF_info_matchbox'PHPPDF_info_font'PHPPDF_get_value/PHPPDF_get_pdi_value7PHPPDF_get_pdi_parameter/PHPPDF_get_parameter5PHPPDF_get_minorversion5PHPPDF_get_majorversion)PHPPDF_get_errnum)PHPPDF_get_errmsg)PHPPDF_get_buffer+PHPPDF_get_apiname-PHPPDF_fit_textline-PHPPDF_fit_textflow'PHPPDF_fit_table-PHPPDF_fit_pdi_page'PHPPDF_fit_image%PHPPDF_findfont1PHPPDF_fill_textblock   %PHPPDF_open_pdi
   % aoV:!mO7!lWB-      z a               +PHPPDF_setrgbcolor/PHPPDF_setmiterlimit'PHPPDF_setmatrix-PHPPDF_setlinewidth+PHPPDF_setlinejoin)PHPPDF_setlinecap1PHPPDF_setgray_stroke-PHPPDF_setgray_fill#PHPPDF_setgray#PHPPDF_setfont#PHPPDF_setflat1PHPPDF_setdashpattern#PHPPDF_setdash%PHPPDF_setcolor'PHPPDF_set_value-PHPPDF_set_text_pos/PHPPDF_set_parameter!=PHPPDF_set_layer_dependency%PHPPDF_set_info)PHPPDF_set_gstate5PHPPDF_set_border_style3PHPPDF_set_border_dash5PHPPDF_set_border_colorPHPPDF_scalePHPPDF_save!PHPPDF_rotate+PHPPDF_resume_page#PHPPDF_restorePHPPDF_rect+PHPPDF_process_pdi1PHPPDF_place_pdi_page+PHPPDF_place_image3PHPPDF_pcos_get_string3PHPPDF_pcos_get_stream3PHPPDF_pcos_get_number/PHPPDF_open_pdi_page 5PHPPDF_setrgbcolor_fill
 & a o[A*sZM?0	jJ,       q a             PHPapc_casp)PHPapc_cache_infoo-PHPapc_bin_loadfilen%PHPapc_bin_loadm-PHPapc_bin_dumpfilel%PHPapc_bin_dumpkPHPapc_addj'PHPapache_setenv
 ;PHPapache_response_headers
5PHPapache_reset_timeout
9PHPapache_request_headers
#PHPapache_note
/PHPapache_lookup_uri
'PHPapache_getenv
1PHPapache_get_version
1PHPapache_get_modules
9PHPapache_child_terminate
!PHPaddslashes#PHPaddcslashesPHPacoshPHPacosPHPabs+PHP__halt_compiler!PHP__autoload
7PHPRunkit_Sandbox_Parent1]PHPReflectionFunctionAbstract:hasReturnType/PHPPDF_utf8_to_utf161PHPPDF_utf32_to_utf16/PHPPDF_utf16_to_utf8'PHPPDF_translate-PHPPDF_suspend_page!PHPPDF_stroke+PHPPDF_stringwidthPHPPDF_skew!PHPPDF_shfill3PHPPDF_shading_pattern#PHPPDF_shading       +PHPapc_clear_cacheq
   & d|jZ?* eA/gS>'      } d                +PHParray_fill_keys !PHParray_fill +PHParray_diff_ukey /PHParray_diff_uassoc )PHParray_diff_key -PHParray_diff_assoc !PHParray_diff 1PHParray_count_values 'PHParray_combine %PHParray_column#PHParray_chunk~7PHParray_change_key_case}PHParray %EPHPapd_set_session_trace_socket7PHPapd_set_session_trace+PHPapd_set_session3PHPapd_set_pprof_trace
9PHPapd_get_active_symbols	PHPapd_echo#APHPapd_dump_regular_resources&GPHPapd_dump_persistent_resources ;PHPapd_dump_function_tablePHPapd_croak%PHPapd_continuePHPapd_clunk'PHPapd_callstack)PHPapd_breakpoint PHPapc_store|%PHPapc_sma_info{1PHPapc_load_constantszPHPapc_incyPHPapc_fetchx!PHPapc_existsw+PHPapc_delete_fileu!PHPapc_deletev5PHPapc_define_constantstPHPapc_decs   %PHParray_filter 
 ' ^ wY?+zfP9hL2      | l ^        PHPasinPHParsort 5PHParray_walk_recursive !PHParray_walk %PHParray_values 'PHParray_unshift %PHParray_unique  ;PHParray_uintersect_uassoc 9PHParray_uintersect_assoc -PHParray_uintersect 1PHParray_udiff_uassoc /PHParray_udiff_assoc #PHParray_udiff PHParray_sum %PHParray_splice #PHParray_slice #PHParray_shift %PHParray_search 'PHParray_reverse  ;PHParray_replace_recursive 'PHParray_replace %PHParray_reduce !PHParray_rand !PHParray_push 'PHParray_product PHParray_pop PHParray_pad +PHParray_multisort 7PHParray_merge_recursive #PHParray_merge PHParray_map !PHParray_keys -PHParray_key_exists 5PHParray_intersect_ukey 9PHParray_intersect_uassoc 3PHParray_intersect_key 7PHParray_intersect_assoc +PHParray_intersect     PHPasinh
   ' ^ q[I-ufWH0xZ:      n ^        PHPbcsqrt PHPbcscale PHPbcpowmod PHPbcpow *OPHPbcompiler_write_included_filename!9PHPbcompiler_write_header ,SPHPbcompiler_write_functions_from_file!=PHPbcompiler_write_function9PHPbcompiler_write_footer5PHPbcompiler_write_file#APHPbcompiler_write_exe_footer!=PHPbcompiler_write_constant7PHPbcompiler_write_class)PHPbcompiler_read7PHPbcompiler_parse_class1PHPbcompiler_load_exe)PHPbcompiler_loadPHPbcmul PHPbcmod PHPbcdiv PHPbccomp PHPbcadd -PHPbbcode_set_flags7PHPbbcode_set_arg_parser%PHPbbcode_parse)PHPbbcode_destroy'PHPbbcode_create/PHPbbcode_add_smiley1PHPbbcode_add_elementPHPbasename%PHPbase_convert'PHPbase64_encode'PHPbase64_decodePHPatanhPHPatan2PHPatan)PHPassert_optionsPHPassertPHPbcsub 
   ' _ iO8 w`O:% tYF*     y _         -PHPcairo_close_path;"?PHPcairo_clip_rectangle_list:3PHPcairo_clip_preserve91PHPcairo_clip_extents8!PHPcairo_clip7!=PHPcairo_available_surfaces67PHPcairo_available_fonts51PHPcairo_arc_negative3PHPcairo_arc4/PHPcairo_append_path2PHPbzwrite PHPbzread PHPbzopen PHPbzflush PHPbzerrstr PHPbzerror PHPbzerrno %PHPbzdecompress !PHPbzcompress PHPbzclose #PHPbson_encodeM#PHPbson_decodeLPHPboolval1'PHPblenc_encrypt0/PHPbirdstep_rollback/+PHPbirdstep_result. ;PHPbirdstep_off_autocommit-3PHPbirdstep_freeresult,/PHPbirdstep_fieldnum+1PHPbirdstep_fieldname*)PHPbirdstep_fetch)'PHPbirdstep_exec(-PHPbirdstep_connect'+PHPbirdstep_commit&)PHPbirdstep_close%3PHPbirdstep_autocommit$)PHPbindtextdomain#PHPbindec ;PHPbind_textdomain_codeset"
    V sV:T%`1     s V                        3PHPcairo_get_fill_ruleW5PHPcairo_get_dash_countV)PHPcairo_get_dashU ;PHPcairo_get_current_pointT3PHPcairo_get_antialiasS&GPHPcairo_format_stride_for_widthR"?PHPcairo_font_options_statusQ.WPHPcairo_font_options_set_subpixel_orderP*OPHPcairo_font_options_set_hint_styleO,SPHPcairo_font_options_set_hint_metricsN)MPHPcairo_font_options_set_antialiasM!=PHPcairo_font_options_mergeL ;PHPcairo_font_options_hashK.WPHPcairo_font_options_get_subpixel_orderJ*OPHPcairo_font_options_get_hint_styleI,SPHPcairo_font_options_get_hint_metricsH)MPHPcairo_font_options_get_antialiasG!=PHPcairo_font_options_equalF9PHPcairo_font_face_statusE!=PHPcairo_font_face_get_typeD1PHPcairo_font_extentsC3PHPcairo_fill_preserveB1PHPcairo_fill_extentsA!PHPcairo_fill@&GPHPcairo_device_to_user_distance?5PHPcairo_device_to_user>)PHPcairo_curve_to=
    J hJ0kJ+fO6     k J     ;PHPcairo_matrix_init_scalew!=PHPcairo_matrix_init_rotatev#APHPcairo_matrix_init_identityt/PHPcairo_matrix_initu"?PHPcairo_matrix_create_scales1PHPcairo_mask_surfacer!PHPcairo_maskq'PHPcairo_line_top+PHPcairo_in_strokeo'PHPcairo_in_filln&GPHPcairo_image_surface_get_widthm'IPHPcairo_image_surface_get_stridel'IPHPcairo_image_surface_get_heightk'IPHPcairo_image_surface_get_formatj%EPHPcairo_image_surface_get_datai7PHPcairo_identity_matrixh ;PHPcairo_has_current_pointg-PHPcairo_glyph_pathf3PHPcairo_get_tolerancee-PHPcairo_get_targetd-PHPcairo_get_sourcec7PHPcairo_get_scaled_fontb1PHPcairo_get_operatora7PHPcairo_get_miter_limit`-PHPcairo_get_matrix_5PHPcairo_get_line_width^3PHPcairo_get_line_join]1PHPcairo_get_line_cap\9PHPcairo_get_group_target[9PHPcairo_get_font_optionsZ7PHPcairo_get_font_matrixY
  O \6zP%a7     s O               #APHPcairo_pdf_surface_set_size5PHPcairo_pattern_status!=PHPcairo_pattern_set_matrix!=PHPcairo_pattern_set_filter!=PHPcairo_pattern_set_extend9PHPcairo_pattern_get_type9PHPcairo_pattern_get_rgba)MPHPcairo_pattern_get_radial_circles(KPHPcairo_pattern_get_linear_points!=PHPcairo_pattern_get_filter!=PHPcairo_pattern_get_extend*OPHPcairo_pattern_get_color_stop_rgba+QPHPcairo_pattern_get_color_stop_count*OPHPcairo_pattern_add_color_stop_rgba)MPHPcairo_pattern_add_color_stop_rgb1PHPcairo_path_extents9PHPcairo_paint_with_alpha#PHPcairo_paint1PHPcairo_new_sub_path)PHPcairo_new_path'PHPcairo_move_to9PHPcairo_matrix_translate~%EPHPcairo_matrix_transform_point}(KPHPcairo_matrix_transform_distance|1PHPcairo_matrix_scale{3PHPcairo_matrix_rotatez3PHPcairo_matrix_inverty           +PHPcairo_pop_group
  D oErK2pM)     y a D3PHPcairo_set_fill_rule)PHPcairo_set_dash3PHPcairo_set_antialias9PHPcairo_select_font_face'IPHPcairo_scaled_font_text_extents!=PHPcairo_scaled_font_status(KPHPcairo_scaled_font_glyph_extents#APHPcairo_scaled_font_get_type"?PHPcairo_scaled_font_extents#PHPcairo_scale!PHPcairo_save%PHPcairo_rotate'PHPcairo_restore-PHPcairo_reset_clip/PHPcairo_rel_move_to/PHPcairo_rel_line_to1PHPcairo_rel_curve_to+PHPcairo_rectangle&GPHPcairo_push_group_with_content-PHPcairo_push_group"?PHPcairo_ps_surface_set_size!=PHPcairo_ps_surface_set_eps+QPHPcairo_ps_surface_restrict_to_level!=PHPcairo_ps_surface_get_eps%EPHPcairo_ps_surface_dsc_comment)MPHPcairo_ps_surface_dsc_begin_setup.WPHPcairo_ps_surface_dsc_begin_page_setup!=PHPcairo_ps_level_to_string3PHPcairo_ps_get_levels     3PHPcairo_set_font_face
    U lR3mW7!e<    v U                  ;PHPcairo_surface_show_page.WPHPcairo_surface_set_fallback_resolution(KPHPcairo_surface_set_device_offset+QPHPcairo_surface_mark_dirty_rectangle!=PHPcairo_surface_mark_dirty9PHPcairo_surface_get_type(KPHPcairo_surface_get_device_offset"?PHPcairo_surface_get_content3PHPcairo_surface_flush5PHPcairo_surface_finish ;PHPcairo_surface_copy_page7PHPcairo_stroke_preserve5PHPcairo_stroke_extents%PHPcairo_stroke9PHPcairo_status_to_string%PHPcairo_status+PHPcairo_show_text+PHPcairo_show_page3PHPcairo_set_tolerance!=PHPcairo_set_source_surface-PHPcairo_set_source7PHPcairo_set_scaled_font1PHPcairo_set_operator7PHPcairo_set_miter_limit-PHPcairo_set_matrix5PHPcairo_set_line_width3PHPcairo_set_line_join1PHPcairo_set_line_cap3PHPcairo_set_font_size9PHPcairo_set_font_options
 & W vG"v_A&sSE0!         q W   -PHPclass_implements%PHPclass_exists
#PHPclass_alias
#PHPchunk_splitPHPchrootPHPchr	PHPchown	PHPchmodPHPchgrp!PHPcheckdnsrr~PHPcheckdatePHPchdir#PHPchdb_createPHPceil9PHPcall_user_method_array-PHPcall_user_method5PHPcall_user_func_arrayS)PHPcall_user_funcR!PHPcalculhmac#PHPcalcul_hmacPHPcal_to_jdSPHPcal_infoR#PHPcal_from_jdQ/PHPcal_days_in_monthP5PHPcairo_version_string'PHPcairo_version&GPHPcairo_user_to_device_distance5PHPcairo_user_to_device+PHPcairo_translate+PHPcairo_transform+PHPcairo_text_path1PHPcairo_text_extents$CPHPcairo_svg_version_to_string.WPHPcairo_svg_surface_restrict_to_version'IPHPcairo_svg_surface_get_versions9PHPcairo_svg_get_versions#APHPcairo_surface_write_to_png      'PHPclass_parents
   " Z jJ2_;dP7       v Z              1PHPconnection_abortedsPHPcompact #PHPcom_release 1PHPcom_print_typeinfo-PHPcom_message_pump-PHPcom_load_typelib!PHPcom_isenum7PHPcom_get_active_object)PHPcom_event_sink+PHPcom_create_guid!PHPcom_addref%EPHPcollator_sort_with_sort_keys'PHPcollator_sort7PHPcollator_set_strength9PHPcollator_set_attribute7PHPcollator_get_strength7PHPcollator_get_sort_key3PHPcollator_get_locale#APHPcollator_get_error_message ;PHPcollator_get_error_code9PHPcollator_get_attribute-PHPcollator_compare)PHPcollator_asortPHPcloselogPHPclosedir7PHPcli_set_process_title7PHPcli_get_process_title)PHPclearstatcache
9PHPclasskit_method_rename9PHPclasskit_method_remove!=PHPclasskit_method_redefine5PHPclasskit_method_copy3PHPclasskit_method_add+PHPclasskit_import
   ) dgYL>/s^I4
mX8"     { d          'PHPcubrid_commit3PHPcubrid_column_types3PHPcubrid_column_names+PHPcubrid_col_size)PHPcubrid_col_get5PHPcubrid_close_request5PHPcubrid_close_prepare%PHPcubrid_close9PHPcubrid_client_encoding
#PHPcubrid_bind	5PHPcubrid_affected_rows%PHPctype_xdigitc#PHPctype_upperb#PHPctype_spacea#PHPctype_punct`#PHPctype_print_#PHPctype_lower^#PHPctype_graph]#PHPctype_digit\#PHPctype_cntrl[#PHPctype_alphaZ#PHPctype_alnumY	PHPcrypt+PHPcreate_functionPHPcrc32PHPcrash)PHPcrack_opendict5PHPcrack_getlastmessage+PHPcrack_closedict#PHPcrack_check#PHPcount_charsPHPcount PHPcoshPHPcosPHPcopy-PHPconvert_uuencode-PHPconvert_uudecode1PHPconvert_cyr_stringHPHPconstant1PHPconnection_timeout   )PHPcubrid_connect
 " U vaK5vZ<}bF2     u U         9PHPcubrid_get_server_info5!=PHPcubrid_get_query_timeout4 ;PHPcubrid_get_db_parameter39PHPcubrid_get_client_info17PHPcubrid_get_class_name01PHPcubrid_get_charset/7PHPcubrid_get_autocommit.!PHPcubrid_get21PHPcubrid_free_result-/PHPcubrid_field_type,1PHPcubrid_field_table+/PHPcubrid_field_seek*/PHPcubrid_field_name)-PHPcubrid_field_len(1PHPcubrid_field_flags'-PHPcubrid_fetch_row&3PHPcubrid_fetch_object$5PHPcubrid_fetch_lengths#1PHPcubrid_fetch_field"1PHPcubrid_fetch_assoc!1PHPcubrid_fetch_array %PHPcubrid_fetch%)PHPcubrid_execute-PHPcubrid_error_msg#APHPcubrid_error_code_facility/PHPcubrid_error_code%PHPcubrid_error%PHPcubrid_errno#PHPcubrid_drop/PHPcubrid_disconnect)PHPcubrid_db_name-PHPcubrid_data_seek1PHPcubrid_current_oid      -PHPcubrid_insert_id6
   # f x\C)lR7hO4      f                        "?PHPcubrid_real_escape_stringZ%PHPcubrid_queryY!PHPcubrid_putX)PHPcubrid_prepareW#PHPcubrid_pingV!=PHPcubrid_pconnect_with_urlU+PHPcubrid_pconnectT+PHPcubrid_num_rowsS/PHPcubrid_num_fieldsR+PHPcubrid_num_colsQ1PHPcubrid_next_resultP)PHPcubrid_new_gloO1PHPcubrid_move_cursorN/PHPcubrid_lock_writeM-PHPcubrid_lock_readL+PHPcubrid_lob_sizeK+PHPcubrid_lob_sendJ)PHPcubrid_lob_getI/PHPcubrid_lob_exportH-PHPcubrid_lob_closeG/PHPcubrid_lob2_writeF1PHPcubrid_lob2_tell64D-PHPcubrid_lob2_tellE1PHPcubrid_lob2_size64B-PHPcubrid_lob2_sizeC1PHPcubrid_lob2_seek64@-PHPcubrid_lob2_seekA-PHPcubrid_lob2_read?+PHPcubrid_lob2_new>1PHPcubrid_lob2_import=1PHPcubrid_lob2_export</PHPcubrid_lob2_close;-PHPcubrid_lob2_bind:5PHPcubrid_load_from_glo9+PHPcubrid_list_dbs8
   % d gO7pWD1wZB!      } d                  -PHPcurl_share_closec/PHPcurl_setopt_arraya#PHPcurl_setoptb!PHPcurl_reset`!PHPcurl_pause_3PHPcurl_multi_strerror^/PHPcurl_multi_setopt]/PHPcurl_multi_select\ =PHPcurl_multi_remove_handle[+PHPcurl_multi_initZ5PHPcurl_multi_info_readY7PHPcurl_multi_getcontentX+PHPcurl_multi_execW-PHPcurl_multi_closeV7PHPcurl_multi_add_handleUPHPcurl_initT%PHPcurl_getinfoSPHPcurl_execR#PHPcurl_escapeQ!PHPcurl_errorP!PHPcurl_errnoO-PHPcurl_copy_handleN!PHPcurl_closeM)PHPcubrid_versioni ;PHPcubrid_unbuffered_queryh!=PHPcubrid_set_query_timeoutg+PHPcubrid_set_dropf ;PHPcubrid_set_db_parametere7PHPcubrid_set_autocommitd)PHPcubrid_set_addc)PHPcubrid_seq_putb/PHPcubrid_seq_inserta+PHPcubrid_seq_drop`+PHPcubrid_send_glo_'PHPcubrid_schema^1PHPcubrid_save_to_glo]+PHPcubrid_rollback\
   $ Y xdO8#wW@*fC'
     v Y         3PHPdatefmt_set_patternw5PHPdatefmt_set_calendarv/PHPdatefmt_localtimeu1PHPdatefmt_is_lenientt ;PHPdatefmt_get_timezone_ids5PHPdatefmt_get_timetyper3PHPdatefmt_get_patternq1PHPdatefmt_get_localep"?PHPdatefmt_get_error_messageo9PHPdatefmt_get_error_coden5PHPdatefmt_get_datetypem5PHPdatefmt_get_calendarl7PHPdatefmt_format_objectj)PHPdatefmt_formatk1PHPdate_timestamp_get|#PHPdate_sunset%PHPdate_sunrise'PHPdate_sun_info9PHPdate_parse_from_format!PHPdate_parse+PHPdate_offset_get{#PHPdate_formatz"?PHPdate_default_timezone_set"?PHPdate_default_timezone_getPHPdate%PHPcyrus_unbind#PHPcyrus_query'PHPcyrus_connect#PHPcyrus_close!PHPcyrus_bind1PHPcyrus_authenticatePHPcurrent %PHPcurl_versionh'PHPcurl_unescapeg'PHPcurl_strerrorf/PHPcurl_share_setopte
 & Z xeF1zaH0zbI/       n Z      !PHPdb2_pclose%PHPdb2_num_rows)PHPdb2_num_fields+PHPdb2_next_result%PHPdb2_lob_read1PHPdb2_last_insert_id)PHPdb2_get_option'PHPdb2_free_stmt+PHPdb2_free_result-PHPdb2_foreign_keys+PHPdb2_field_width)PHPdb2_field_type+PHPdb2_field_scale3PHPdb2_field_precision'PHPdb2_field_num)PHPdb2_field_name9PHPdb2_field_display_size'PHPdb2_fetch_row-PHPdb2_fetch_object)PHPdb2_fetch_both+PHPdb2_fetch_assoc+PHPdb2_fetch_array#PHPdb2_executePHPdb2_exec/PHPdb2_escape_string+PHPdb2_cursor_type#PHPdb2_connect/PHPdb2_conn_errormsg)PHPdb2_conn_error!PHPdb2_commit#PHPdb2_columns7PHPdb2_column_privilegesPHPdb2_close+PHPdb2_client_info)PHPdb2_bind_param~)PHPdb2_autocommit} ;PHPdatefmt_set_timezone_idy       %PHPdb2_pconnect
   ' ppW?"
~jWA+ w]H2      p                       !PHPdbase_open-PHPdbase_numrecords+PHPdbase_numfields$CPHPdbase_get_record_with_names-PHPdbase_get_record7PHPdbase_get_header_info3PHPdbase_delete_record%PHPdbase_create#PHPdbase_close-PHPdbase_add_recordPHPdba_sync#PHPdba_replacePHPdba_popen%PHPdba_optimizePHPdba_open#PHPdba_nextkeyPHPdba_list'PHPdba_key_split!PHPdba_insert%PHPdba_handlers%PHPdba_firstkeyPHPdba_fetch!PHPdba_exists!PHPdba_deletePHPdba_close!PHPdb2_tables5PHPdb2_table_privileges/PHPdb2_stmt_errormsg)PHPdb2_stmt_error)PHPdb2_statistics3PHPdb2_special_columns)PHPdb2_set_option+PHPdb2_server_info%PHPdb2_rollback!PHPdb2_result)PHPdb2_procedures7PHPdb2_procedure_columns-PHPdb2_primary_keys !PHPdbase_pack
   ( Z kU@*|gO:%zdN7      r Z  )PHPdbplus_tremove!PHPdbplus_sql ;PHPdbplus_setindexbynumber+PHPdbplus_setindex)PHPdbplus_savepos#PHPdbplus_rzap)PHPdbplus_runlink-PHPdbplus_rsecindex)PHPdbplus_rrename'PHPdbplus_rquery%PHPdbplus_ropen%PHPdbplus_rkeys/PHPdbplus_restorepos)PHPdbplus_resolve+PHPdbplus_rcrtlike-PHPdbplus_rcrtexact)PHPdbplus_rcreate)PHPdbplus_rchperm#PHPdbplus_prev#PHPdbplus_open#PHPdbplus_next)PHPdbplus_lockrel#PHPdbplus_last#PHPdbplus_info-PHPdbplus_getunique)PHPdbplus_getlock/PHPdbplus_freerlocks+PHPdbplus_freelock3PHPdbplus_freealllocks%PHPdbplus_flush%PHPdbplus_first#PHPdbplus_find%PHPdbplus_errno)PHPdbplus_errcode#PHPdbplus_curr%PHPdbplus_close%PHPdbplus_chdir!PHPdbplus_aql!PHPdbplus_add!PHPdbplus_tcl
 + ^ lQ>)nU6o]J7%       x ^-PHPdisk_total_space+PHPdisk_free_spacePHPdirnamePHPdirPHPdio_write%PHPdio_truncate'PHPdio_tcsetattrPHPdio_statPHPdio_seekPHPdio_read PHPdio_openPHPdio_fcntlPHPdio_closePHPdgettextPHPdeg2rad%PHPdeflate_init#PHPdeflate_addPHPdefined ;PHPdefine_syslog_variablesPHPdefinePHPdecoctPHPdechexPHPdecbin+PHPdebug_zval_dump\7PHPdebug_print_backtrace+PHPdebug_backtrace#PHPdeaggregate!PHPdcngettextPHPdcgettextPHPdbx_sortPHPdbx_query'PHPdbx_fetch_row/PHPdbx_escape_stringPHPdbx_error#PHPdbx_connect#PHPdbx_comparePHPdbx_close/PHPdbplus_xunlockrel+PHPdbplus_xlockrel'PHPdbplus_update+PHPdbplus_unselect-PHPdbplus_unlockrel1PHPdbplus_undoprepare                    
 & Y yM"xY/zgT@.        m Y     !PHPeio_futime$'PHPeio_ftruncate#PHPeio_fsync"%PHPeio_fstatvfs!PHPeio_fstat 'PHPeio_fdatasync!PHPeio_fchown!PHPeio_fchmod'PHPeio_fallocate)PHPeio_event_loopPHPeio_dup2!PHPeio_customPHPeio_closePHPeio_chownPHPeio_chmodPHPeio_busyPHPecho
#PHPeaster_daysU#PHPeaster_dateTPHPeach #PHPdotnet_load3PHPdomxml_xslt_version)PHPdomxml_version)MPHPdom_xpath_register_php_functions7PHPdom_xpath_register_ns1PHPdom_xpath_evaluate5PHPdom_import_simplexml7PHPdom_document_xinclude*OPHPdom_document_schema_validate_file%EPHPdom_document_schema_validate*OPHPdom_document_relaxNG_validate_xml+QPHPdom_document_relaxNG_validate_file
)PHPdns_get_record!PHPdns_get_mx	-PHPdns_check_recordPHPdngettext
PHPdl    5PHPeio_get_event_stream%    ]   "tFhR;g;     v ]                           !#PHPimageftbbox   3PHPimagecolorsforindex  7PHPiis_get_service_statef  +PHPifx_create_charA  1PHPibase_rollback_ret&  /PHPibase_blob_cancel    ;PHPhw_GetObjectByQueryColl  'IPHPhttp_request_method_unregister  3PHPhttp_chunked_decode  PHPgzinflate
  (KPHPgupnp_root_device_set_availableu  )PHPgnupg_setarmor*  PHPgmp_init   -PHPget_parent_class
  /PHPgeoip_db_filenameJ  PHPftp_logink  PHPfilesize!  3PHPfdf_next_field_name  /PHPfbsql_next_result  -PHPfbsql_autocommit  9PHPfann_set_learning_rate  +QPHPfann_set_activation_function_layer  'IPHPfann_get_rprop_increase_factor  
)MPHPfann_get_cascade_candidate_limit  	3PHPfam_suspend_monitorp  5PHPevent_buffer_disableS  $CPHPenchant_broker_request_dict  1PHPeio_get_last_error&
 ( ] waM:$ o]G5 xiH$     ]     "?PHPenchant_broker_list_dicts3PHPenchant_broker_init!=PHPenchant_broker_get_error%EPHPenchant_broker_get_dict_pathF!=PHPenchant_broker_free_dict3PHPenchant_broker_free#APHPenchant_broker_dict_exists ;PHPenchant_broker_describePHPempty
PHPeio_writeEPHPeio_utimeD!PHPeio_unlinkC%PHPeio_truncateB!PHPeio_syncfs@3PHPeio_sync_file_range?PHPeio_syncA#PHPeio_symlink>#PHPeio_statvfs=PHPeio_stat<%PHPeio_sendfile;PHPeio_seek:PHPeio_rmdir9!PHPeio_rename8%PHPeio_realpath7%PHPeio_readlink5#PHPeio_readdir4'PHPeio_readahead3PHPeio_read6PHPeio_poll2PHPeio_open1%PHPeio_nthreads0PHPeio_nreqs/!PHPeio_nready.%PHPeio_npending-PHPeio_nop,PHPeio_mknod+PHPeio_mkdir*PHPeio_lstat)PHPeio_link(PHPeio_grp'                           
 " U gA {S5(hPB/      m U         )PHPevent_base_setQ/PHPevent_base_reinitP!=PHPevent_base_priority_initO)PHPevent_base_newN3PHPevent_base_loopexitL5PHPevent_base_loopbreakK+PHPevent_base_loopM+PHPevent_base_freeJPHPevent_addIPHPeval
)PHPescapeshellcmd)PHPescapeshellarg+PHPerror_reporting
PHPerror_logP)PHPerror_get_lastQ-PHPerror_clear_lastH'PHPeregi_replacePHPeregi%PHPereg_replacePHPeregPHPend 5PHPenchant_dict_suggest'IPHPenchant_dict_store_replacement!=PHPenchant_dict_quick_check#APHPenchant_dict_is_in_session9PHPenchant_dict_get_error7PHPenchant_dict_describe1PHPenchant_dict_check$CPHPenchant_dict_add_to_session%EPHPenchant_dict_add_to_personal$CPHPenchant_broker_set_ordering%EPHPenchant_broker_set_dict_pathG(KPHPenchant_broker_request_pwl_dict     7PHPevent_buffer_base_setR
   ' V |Y>cP7)qbI8$      r V1PHPfam_resume_monitoroPHPfam_openm)PHPfam_next_eventl-PHPfam_monitor_filek7PHPfam_monitor_directoryj9PHPfam_monitor_collectioniPHPfam_closeh1PHPfam_cancel_monitorg!PHPezmlm_hashPHPextract -PHPextension_loadedPHPexpm1PHPexplode%PHPexpect_popenf)PHPexpect_expectlePHPexpPHPexitd)PHPexif_thumbnail%PHPexif_tagname)PHPexif_read_data)PHPexif_imagetypePHPexec+PHPevent_timer_setcPHPevent_setb1PHPevent_priority_setaPHPevent_new`!PHPevent_free_PHPevent_del^1PHPevent_buffer_write]#APHPevent_buffer_watermark_set\!=PHPevent_buffer_timeout_set["?PHPevent_buffer_set_callbackZ/PHPevent_buffer_readY"?PHPevent_buffer_priority_setX-PHPevent_buffer_newW/PHPevent_buffer_freeV3PHPevent_buffer_fd_setU3PHPevent_buffer_enableT#PHPfam_pendingn
    U eA#fP4vU&    U                       3aPHPfann_get_cascade_candidate_change_fraction6gPHPfann_get_cascade_activation_steepnesses_count0[PHPfann_get_cascade_activation_steepnesses4cPHPfann_get_cascade_activation_functions_count.WPHPfann_get_cascade_activation_functions ;PHPfann_get_bit_fail_limit/PHPfann_get_bit_fail3PHPfann_get_bias_array&GPHPfann_get_activation_steepness%EPHPfann_get_activation_function%PHPfann_get_MSE"?PHPfann_duplicate_train_data1PHPfann_destroy_train%PHPfann_destroy~1PHPfann_descale_train}3PHPfann_descale_output|1PHPfann_descale_input{(KPHPfann_create_train_from_callbacky/PHPfann_create_trainz#APHPfann_create_standard_arrayw5PHPfann_create_standardx#APHPfann_create_shortcut_arrayv7PHPfann_create_from_fileuPHPfann_copyt"?PHPfann_clear_scaling_paramss"?PHPfann_cascadetrain_on_filer"?PHPfann_cascadetrain_on_dataq
    B ~U+yFbB#     d B      !=PHPfann_get_rprop_delta_min'IPHPfann_get_rprop_decrease_factor7PHPfann_get_quickprop_mu!=PHPfann_get_quickprop_decay3PHPfann_get_num_output3PHPfann_get_num_layers1PHPfann_get_num_input7PHPfann_get_network_type9PHPfann_get_learning_rate#APHPfann_get_learning_momentum5PHPfann_get_layer_array+PHPfann_get_errstr)PHPfann_get_errno!=PHPfann_get_connection_rate"?PHPfann_get_connection_array+QPHPfann_get_cascade_weight_multiplier2_PHPfann_get_cascade_output_stagnation_epochs0[PHPfann_get_cascade_output_change_fraction(KPHPfann_get_cascade_num_candidates.WPHPfann_get_cascade_num_candidate_groups(KPHPfann_get_cascade_min_out_epochs)MPHPfann_get_cascade_min_cand_epochs(KPHPfann_get_cascade_max_out_epochs)MPHPfann_get_cascade_max_cand_epochs5ePHPfann_get_cascade_candidate_stagnation_epochs!=PHPfann_get_rprop_delta_max
    P yL({[<u\B    } P                ,SPHPfann_set_activation_function_hidden%EPHPfann_set_activation_function7PHPfann_scale_train_data-PHPfann_scale_train%EPHPfann_scale_output_train_data/PHPfann_scale_output$CPHPfann_scale_input_train_data-PHPfann_scale_input+PHPfann_save_trainPHPfann_savePHPfann_run)PHPfann_reset_MSE"?PHPfann_read_train_from_file9PHPfann_randomize_weights#APHPfann_num_output_train_data"?PHPfann_num_input_train_data7PHPfann_merge_train_data9PHPfann_length_train_data/PHPfann_init_weights$CPHPfann_get_training_algorithm%EPHPfann_get_train_stop_function&GPHPfann_get_train_error_function9PHPfann_get_total_neurons#APHPfann_get_total_connections,SPHPfann_get_sarprop_weight_decay_shift%EPHPfann_get_sarprop_temperature5ePHPfann_get_sarprop_step_error_threshold_factor*OPHPfann_get_sarprop_step_error_shift
  ; R%['tJ!    b ;       &GPHPfann_set_input_scaling_params+QPHPfann_set_cascade_weight_multiplier2_PHPfann_set_cascade_output_stagnation_epochs0[PHPfann_set_cascade_output_change_fraction.WPHPfann_set_cascade_num_candidate_groups(KPHPfann_set_cascade_min_out_epochs)MPHPfann_set_cascade_min_cand_epochs(KPHPfann_set_cascade_max_out_epochs)MPHPfann_set_cascade_max_cand_epochs5ePHPfann_set_cascade_candidate_stagnation_epochs)MPHPfann_set_cascade_candidate_limit3aPHPfann_set_cascade_candidate_change_fraction0[PHPfann_set_cascade_activation_steepnesses.WPHPfann_set_cascade_activation_functions/PHPfann_set_callback ;PHPfann_set_bit_fail_limit-UPHPfann_set_activation_steepness_output,SPHPfann_set_activation_steepness_layer-UPHPfann_set_activation_steepness_hidden&GPHPfann_set_activation_steepness,SPHPfann_set_activation_function_output       #APHPfann_set_learning_momentum
    OwO-_9y`A        o O               9PHPfastcgi_finish_request1PHPfann_train_on_file1PHPfann_train_on_data-PHPfann_train_epoch!PHPfann_train)PHPfann_test_dataPHPfann_test9PHPfann_subset_train_data ;PHPfann_shuffle_train_data7PHPfann_set_weight_array+PHPfann_set_weight$CPHPfann_set_training_algorithm%EPHPfann_set_train_stop_function&GPHPfann_set_train_error_function ;PHPfann_set_scaling_params,SPHPfann_set_sarprop_weight_decay_shift%EPHPfann_set_sarprop_temperature5ePHPfann_set_sarprop_step_error_threshold_factor*OPHPfann_set_sarprop_step_error_shift'IPHPfann_set_rprop_increase_factor"?PHPfann_set_rprop_delta_zero!=PHPfann_set_rprop_delta_min!=PHPfann_set_rprop_delta_max'IPHPfann_set_rprop_decrease_factor7PHPfann_set_quickprop_mu!=PHPfann_set_quickprop_decay'IPHPfann_set_output_scaling_params   3PHPfbsql_affected_rows
   $ b qV;"	s^C(mS8     } b                  /PHPfbsql_list_tables/PHPfbsql_list_fields)PHPfbsql_list_dbs+PHPfbsql_insert_id)PHPfbsql_hostname!=PHPfbsql_get_autostart_info/PHPfbsql_free_result-PHPfbsql_field_type/PHPfbsql_field_table-PHPfbsql_field_seek-PHPfbsql_field_name+PHPfbsql_field_len/PHPfbsql_field_flags+PHPfbsql_fetch_row1PHPfbsql_fetch_object3PHPfbsql_fetch_lengths/PHPfbsql_fetch_field/PHPfbsql_fetch_assoc/PHPfbsql_fetch_array
#PHPfbsql_error	#PHPfbsql_errno'PHPfbsql_drop_db+PHPfbsql_db_status)PHPfbsql_db_query ;PHPfbsql_database_password)PHPfbsql_database+PHPfbsql_data_seek+PHPfbsql_create_db/PHPfbsql_create_clob /PHPfbsql_create_blob'PHPfbsql_connect%PHPfbsql_commit#PHPfbsql_close+PHPfbsql_clob_size/PHPfbsql_change_user+PHPfbsql_blob_size
 & e nU<&bJ3x_L9%	      ~ e                 +PHPfdf_get_version'PHPfdf_get_value)PHPfdf_get_status#PHPfdf_get_opt'PHPfdf_get_flags%PHPfdf_get_file-PHPfdf_get_encoding1PHPfdf_get_attachment!PHPfdf_get_apPHPfdf_errorPHPfdf_errno+PHPfdf_enum_values!PHPfdf_createPHPfdf_close-PHPfdf_add_template9PHPfdf_add_doc_javascriptPHPfclose)PHPfbsql_warnings1)PHPfbsql_username0-PHPfbsql_table_name/'PHPfbsql_stop_db.)PHPfbsql_start_db-7PHPfbsql_set_transaction,1PHPfbsql_set_password+1PHPfbsql_set_lob_mode*9PHPfbsql_set_characterset)+PHPfbsql_select_db(1PHPfbsql_rows_fetched')PHPfbsql_rollback&%PHPfbsql_result%+PHPfbsql_read_clob$+PHPfbsql_read_blob##PHPfbsql_query")PHPfbsql_pconnect!)PHPfbsql_password )PHPfbsql_num_rows-PHPfbsql_num_fields      !PHPfdf_header
   ) ]t`F0aJ1#{hUB/	      w ]   -PHPfilepro_retrieve71PHPfilepro_fieldwidth6/PHPfilepro_fieldtype5/PHPfilepro_fieldname41PHPfilepro_fieldcount3PHPfilepro2PHPfileperms PHPfileownerPHPfilemtimePHPfileinodePHPfilegroupPHPfilectimePHPfileatime/PHPfile_put_contents/PHPfile_get_contents#PHPfile_existsPHPfilePHPfgetssPHPfgetsPHPfgetcsvPHPfgetcPHPfflushPHPfeof+PHPfdf_set_version'PHPfdf_set_value5PHPfdf_set_target_frame#APHPfdf_set_submit_form_action)PHPfdf_set_status#PHPfdf_set_opt %EPHPfdf_set_on_import_javascript"?PHPfdf_set_javascript_action'PHPfdf_set_flags%PHPfdf_set_file-PHPfdf_set_encoding!PHPfdf_set_ap+PHPfdf_save_stringPHPfdf_save+PHPfdf_remove_item+PHPfdf_open_stringPHPfdf_open   -PHPfilepro_rowcount8
   / r |hN8#uX5"ufXE3         r            )PHPftp_get_optioniPHPftp_getjPHPftp_fputhPHPftp_fgetgPHPftp_execf!PHPftp_deletee#PHPftp_connectdPHPftp_closecPHPftp_chmodbPHPftp_chdiraPHPftp_cdup`PHPftp_alloc_PHPftokfPHPftell,PHPfstat+PHPfsockopenPHPfseek*PHPfscanf)+PHPfribidi_log2vis<!PHPfrenchtojd:PHPfread(PHPfputs9PHPfputcsv'PHPfprintfPHPfpassthru&"?PHPforward_static_call_arrayW3PHPforward_static_callVPHPfopen%PHPfnmatch$PHPfmodPHPflushPHPfloorPHPflock#PHPfloatval+PHPfinfo_set_flagsV!PHPfinfo_openU!PHPfinfo_fileT#PHPfinfo_closeS%PHPfinfo_bufferR-PHPfilter_var_array]!PHPfilter_var^#PHPfilter_list\1PHPfilter_input_arrayZ%PHPfilter_input[PHPfilter_idY)PHPfilter_has_varXPHPfiletype"
 ( _ q]J8't_L6|`D'    w _       )PHPgeoip_db_availI3PHPgeoip_database_infoH#APHPgeoip_country_name_by_nameG#APHPgeoip_country_code_by_nameF$CPHPgeoip_country_code3_by_nameE%EPHPgeoip_continent_code_by_nameD3PHPgeoip_asnum_by_nameC1PHPgearman_job_statusB1PHPgearman_job_handleAPHPgd_info!PHPgc_enabled#PHPgc_enable"!PHPgc_disable/PHPgc_collect_cyclesPHPfwrite.+PHPfunction_exists@'PHPfunc_num_args?'PHPfunc_get_args>%PHPfunc_get_arg=PHPftruncate-#PHPftp_systype+PHPftp_ssl_connect~PHPftp_size}PHPftp_site|)PHPftp_set_option{PHPftp_rmdirz!PHPftp_renamey#PHPftp_rawlistxPHPftp_rawwPHPftp_pwdvPHPftp_putuPHPftp_pasvtPHPftp_nlists!PHPftp_nb_putr!PHPftp_nb_getq#PHPftp_nb_fputp#PHPftp_nb_fgeto+PHPftp_nb_continuenPHPftp_mkdirmPHPftp_mdtml                  
   ! UsO4wcP5kQ5       l U           'PHPget_meta_tags =PHPget_magic_quotes_runtime,5PHPget_magic_quotes_gpc+7PHPget_loaded_extensions*1PHPget_included_files)-PHPget_include_path(#APHPget_html_translation_table#PHPget_headers3PHPget_extension_funcs'-PHPget_defined_varsW7PHPget_defined_functionsV7PHPget_defined_constants&3PHPget_declared_traits
 ;PHPget_declared_interfaces
5PHPget_declared_classes
-PHPget_current_user%)PHPget_class_vars
/PHPget_class_methods
PHPget_class
#PHPget_cfg_var$-PHPget_called_class
#PHPget_browser.WPHPgeoip_time_zone_by_country_and_regionT"?PHPgeoip_region_name_by_codeS5PHPgeoip_region_by_nameR5PHPgeoip_record_by_nameQ/PHPgeoip_org_by_nameP#APHPgeoip_netspeedcell_by_nameO/PHPgeoip_isp_by_nameN-PHPgeoip_id_by_nameM5PHPgeoip_domain_by_nameL7PHPgeoip_db_get_all_infoK  +PHPget_object_vars

 . q |mV?'rcK1udSB.        q             !PHPgmp_gcdextPHPgmp_gcdPHPgmp_fact!PHPgmp_export[%PHPgmp_divexactPHPgmp_div_r!PHPgmp_div_qrPHPgmp_div_qPHPgmp_comPHPgmp_cmp!PHPgmp_clrbitPHPgmp_andPHPgmp_addPHPgmp_absPHPgmmktimePHPgmdatePHPglob/PHPgettype%PHPgettimeofdayPHPgettextZ'PHPgetservbyport'PHPgetservbynamePHPgetrusage4!PHPgetrandmax-PHPgetprotobynumber)PHPgetprotobynamePHPgetopt3PHPgetmyuid2PHPgetmypid1!PHPgetmyinode0PHPgetmygid/PHPgetmxrr!PHPgetlastmod.9PHPgetimagesizefromstring%PHPgetimagesize#PHPgethostname})PHPgethostbynamel|'PHPgethostbyname{'PHPgethostbyaddrzPHPgetenv-PHPgetdatePHPgetcwd'PHPgetallheadersU'PHPget_resourcesX/PHPget_resource_typeY    #PHPgmp_hamdist
   * ` {dT8"u`L;&mP9      w `    'PHPgnupg_keyinfo)!PHPgnupg_init(%PHPgnupg_import'/PHPgnupg_getprotocol&)PHPgnupg_geterror%%PHPgnupg_export$/PHPgnupg_encryptsign#'PHPgnupg_encrypt"3PHPgnupg_decryptverify!'PHPgnupg_decrypt 3PHPgnupg_clearsignkeys9PHPgnupg_clearencryptkeys9PHPgnupg_cleardecryptkeys-PHPgnupg_addsignkey3PHPgnupg_addencryptkey3PHPgnupg_adddecryptkey!PHPgmstrftimePHPgmp_xor#PHPgmp_testbitPHPgmp_sub!PHPgmp_strval#PHPgmp_sqrtremPHPgmp_sqrtPHPgmp_sign!PHPgmp_setbitPHPgmp_scan1PHPgmp_scan0!PHPgmp_random)PHPgmp_prob_primePHPgmp_powmPHPgmp_pow%PHPgmp_popcount1PHPgmp_perfect_square
PHPgmp_or	'PHPgmp_nextprimePHPgmp_negPHPgmp_mulPHPgmp_mod%PHPgmp_legendre!PHPgmp_jacobi!PHPgmp_invert!PHPgmp_intval
  E nT:!~]ByO.    d E     7PHPgupnp_root_device_newt0[PHPgupnp_root_device_get_relative_locations(KPHPgupnp_root_device_get_availabler&GPHPgupnp_device_info_get_serviceq7PHPgupnp_device_info_getp)MPHPgupnp_device_action_callback_seto ;PHPgupnp_control_point_newn)MPHPgupnp_control_point_callback_setm(KPHPgupnp_control_point_browse_stopl)MPHPgupnp_control_point_browse_startk"?PHPgupnp_context_unhost_pathj"?PHPgupnp_context_timeout_addi/YPHPgupnp_context_set_subscription_timeouth/PHPgupnp_context_newg ;PHPgupnp_context_host_pathf/YPHPgupnp_context_get_subscription_timeoute9PHPgupnp_context_get_portd"?PHPgupnp_context_get_host_ipc'PHPgregoriantojda+PHPgrapheme_substr`+PHPgrapheme_strstr_-PHPgrapheme_stristr^-PHPgrapheme_extract]+PHPgopher_parsedir\%PHPgnupg_verify.!PHPgnupg_sign-/PHPgnupg_setsignmode,1PHPgnupg_seterrormode+                       
    E }X-`BtI        u f V E PHPgzgetss
PHPgzfile
PHPgzeof
PHPgzencode
PHPgzdeflate
PHPgzdecode!PHPgzcompress
PHPgzclose
"?PHPgupnp_service_thaw_notify+QPHPgupnp_service_proxy_set_subscribed(KPHPgupnp_service_proxy_send_action*OPHPgupnp_service_proxy_remove_notify+QPHPgupnp_service_proxy_get_subscribed)MPHPgupnp_service_proxy_callback_set'IPHPgupnp_service_proxy_add_notify'IPHPgupnp_service_proxy_action_set'IPHPgupnp_service_proxy_action_get5PHPgupnp_service_notify7iPHPgupnp_service_introspection_get_state_variable-UPHPgupnp_service_info_get_introspection~9PHPgupnp_service_info_get}$CPHPgupnp_service_freeze_notify|!=PHPgupnp_service_action_set{*OPHPgupnp_service_action_return_errorz$CPHPgupnp_service_action_returny!=PHPgupnp_service_action_getx9PHPgupnp_root_device_stopw ;PHPgupnp_root_device_startvPHPgzgets
PHPgzgetc

 * ] q`R>+mQAiN8       ] !=PHPhttp_cache_last_modified+PHPhttp_cache_etag)PHPhttp_build_url)PHPhttp_build_str-PHPhttp_build_query/PHPhttp_build_cookie ;PHPhtmlspecialchars_decode-PHPhtmlspecialchars%PHPhtmlentities1PHPhtml_entity_decode-PHPhighlight_stringd)PHPhighlight_filecPHPhexdecPHPhex2binPHPhebrevcPHPhebrev%PHPheaders_sentq%PHPheaders_listr'PHPheader_removep!=PHPheader_register_callbackPHPheadero1PHPhash_update_stream8-PHPhash_update_file7#PHPhash_update9#PHPhash_pbkdf26PHPhash_init5)PHPhash_hmac_file3PHPhash_hmac4!PHPhash_final2PHPhash_file1#PHPhash_equalsPHPhash_copy0!PHPhash_algos/PHPhash:PHPgzwrite
%PHPgzuncompress
PHPgztell
PHPgzseek
PHPgzrewind
PHPgzread
!PHPgzpassthru
PHPgzopen
                  
     _ ^K5v[?#{aJ3     _                       %EPHPhttp_request_method_register!=PHPhttp_request_method_name#APHPhttp_request_method_exists!=PHPhttp_request_body_encode%PHPhttp_request'PHPhttp_redirect+PHPhttp_put_stream'PHPhttp_put_file'PHPhttp_put_data-PHPhttp_post_fields)PHPhttp_post_data&GPHPhttp_persistent_handles_ident&GPHPhttp_persistent_handles_count&GPHPhttp_persistent_handles_clean/PHPhttp_parse_params1PHPhttp_parse_message1PHPhttp_parse_headers/PHPhttp_parse_cookie ;PHPhttp_negotiate_language$CPHPhttp_negotiate_content_type9PHPhttp_negotiate_charset"?PHPhttp_match_request_header3PHPhttp_match_modified+PHPhttp_match_etag%PHPhttp_inflatePHPhttp_head!=PHPhttp_get_request_headers%EPHPhttp_get_request_body_stream7PHPhttp_get_request_bodyPHPhttp_get%PHPhttp_deflatePHPhttp_date
 $ S u]E$
}kW>&wbP;!
      i S   %PHPhw_GetObject7PHPhw_GetChildDocCollObj1PHPhw_GetChildDocColl1PHPhw_GetChildCollObj+PHPhw_GetChildColl'PHPhw_GetAndLock-PHPhw_GetAnchorsObj'PHPhw_GetAnchors-PHPhw_Free_Document#PHPhw_ErrorMsgPHPhw_Error#PHPhw_EditText-PHPhw_Document_Size9PHPhw_Document_SetContent3PHPhw_Document_Content3PHPhw_Document_BodyTag9PHPhw_Document_Attributes/PHPhw_DocByAnchorObj)PHPhw_DocByAnchor+PHPhw_Deleteobject!PHPhw_ConnectPHPhw_Close)PHPhw_ChildrenObj#PHPhw_Children+PHPhw_Array2Objrec'PHPhttp_throttle%PHPhttp_support-PHPhttp_send_stream-PHPhttp_send_status ;PHPhttp_send_last_modified)PHPhttp_send_file)PHPhttp_send_data9PHPhttp_send_content_type&GPHPhttp_send_content_disposition1PHPhttp_response_code          3PHPhw_GetObjectByQuery
 ( _ jT8$pW;"cK1       u _       %PHPibase_backup3PHPibase_affected_rows)PHPibase_add_userPHPhypotPHPhw_stat)PHPhw_setlinkroot#PHPhw_pConnect+PHPhw_objrec2arrayPHPhw_mvPHPhw_mapid-PHPhw_insertanchors)PHPhw_getusername5PHPhw_getremotechildren'PHPhw_getrellinkPHPhw_dummyPHPhw_cp1PHPhw_connection_info+PHPhw_changeobjectPHPhw_WhoPHPhw_UnlockPHPhw_Root+PHPhw_PipeDocument1PHPhw_Output_Document+PHPhw_New_Document+PHPhw_Modifyobject+PHPhw_InsertObject/PHPhw_InsertDocumentPHPhw_InsDoc!PHPhw_InsCollPHPhw_Info-PHPhw_InCollections#PHPhw_Identify!PHPhw_GetText1PHPhw_GetSrcByDestObj%PHPhw_GetRemote-PHPhw_GetParentsObj'PHPhw_GetParents9PHPhw_GetObjectByQueryObj#APHPhw_GetObjectByQueryCollObj   	     )PHPibase_blob_add
   % `dK2v`I.rW<!      w `              'PHPibase_restore$#PHPibase_query#'PHPibase_prepare")PHPibase_pconnect!-PHPibase_param_info )PHPibase_num_rows-PHPibase_num_params-PHPibase_num_fields/PHPibase_name_result/PHPibase_modify_user/PHPibase_maintain_db%PHPibase_gen_id/PHPibase_free_result-PHPibase_free_query!=PHPibase_free_event_handler-PHPibase_field_info+PHPibase_fetch_row1PHPibase_fetch_object/PHPibase_fetch_assoc'PHPibase_execute%PHPibase_errmsg'PHPibase_errcode'PHPibase_drop_db/PHPibase_delete_user'PHPibase_db_info'PHPibase_connect-PHPibase_commit_ret
%PHPibase_commit	#PHPibase_close+PHPibase_blob_open+PHPibase_blob_info/PHPibase_blob_import)PHPibase_blob_get+PHPibase_blob_echo/PHPibase_blob_create-PHPibase_blob_close   )PHPibase_rollback%
   % [lU@&pZC-jR=.      r [         'PHPifx_copy_blob?#PHPifx_connect>PHPifx_close=/PHPifx_byteasvarchar<3PHPifx_blobinfile_mode;/PHPifx_affected_rows:#PHPidn_to_utf89%PHPidn_to_ascii8%PHPidn_strerror7PHPidate#PHPid3_set_tag6)PHPid3_remove_tag5+PHPid3_get_version4#PHPid3_get_tag31PHPid3_get_genre_name21PHPid3_get_genre_list1-PHPid3_get_genre_id0!=PHPid3_get_frame_short_name/ ;PHPid3_get_frame_long_name.%PHPiconv_substrC'PHPiconv_strrposB%PHPiconv_strposA%PHPiconv_strlen@1PHPiconv_set_encoding?/PHPiconv_mime_encode>"?PHPiconv_mime_decode_headers</PHPiconv_mime_decode=1PHPiconv_get_encoding;PHPiconvD-PHPibase_wait_event-#PHPibase_trans,'PHPibase_timefmt+ ;PHPibase_set_event_handler*5PHPibase_service_detach)5PHPibase_service_attach(/PHPibase_server_info'   +PHPifx_create_blob@
   % j {dM4zeR7lS9     j                        7PHPiis_get_server_rightse9PHPiis_get_server_by_pathd"?PHPiis_get_server_by_commentc1PHPiis_get_script_mapb5PHPiis_get_dir_securitya)PHPiis_add_server`/PHPignore_user_abortu-PHPifxus_write_slob_+PHPifxus_tell_slob^+PHPifxus_seek_slob]+PHPifxus_read_slob\+PHPifxus_open_slob[+PHPifxus_free_slobZ/PHPifxus_create_slobY-PHPifxus_close_slobX+PHPifx_update_charW+PHPifx_update_blobV/PHPifx_textasvarcharUPHPifx_queryT#PHPifx_prepareS%PHPifx_pconnectR%PHPifx_num_rowsQ)PHPifx_num_fieldsP)PHPifx_nullformatO1PHPifx_htmltbl_resultN%PHPifx_getsqlcaM%PHPifx_get_charL%PHPifx_get_blobK+PHPifx_free_resultJ'PHPifx_free_charI'PHPifx_free_blobH)PHPifx_fieldtypesG3PHPifx_fieldpropertiesF'PHPifx_fetch_rowE%PHPifx_errormsgCPHPifx_errorDPHPifx_doB
 " _ nO5|a@"waF&      _                   9PHPimagecolorresolvealpha/PHPimagecolorresolve+PHPimagecolormatch5PHPimagecolorexactalpha+PHPimagecolorexact5PHPimagecolordeallocate5PHPimagecolorclosesthwb9PHPimagecolorclosestalpha/PHPimagecolorclosest%PHPimagecolorat ;PHPimagecolorallocatealpha1PHPimagecolorallocate#PHPimagecharupPHPimagecharPHPimagearc)PHPimageantialias1PHPimagealphablending5PHPimageaffinematrixget ;PHPimageaffinematrixconcat/PHPimageaffineconcatp#PHPimageaffine ;PHPimage_type_to_mime_type ;PHPimage_type_to_extension!PHPimage2wbmp-PHPiis_stop_serviceo+PHPiis_stop_servern/PHPiis_start_servicem-PHPiis_start_serverl7PHPiis_set_server_rightsk1PHPiis_set_script_mapj5PHPiis_set_dir_securityi5PHPiis_set_app_settingsh/PHPiis_remove_serverg       'PHPimagecolorset
 $ W }eI-nR3y`J4!	      p W       +PHPimagefontheightPHPimageflip#PHPimagefilter/PHPimagefilltoborder5PHPimagefilledrectangle1PHPimagefilledpolygon1PHPimagefilledellipse)PHPimagefilledarcPHPimagefill%PHPimageellipse%PHPimagedestroy+PHPimagedashedline'PHPimagecropautoPHPimagecrop5PHPimagecreatetruecolor1PHPimagecreatefromxpm1PHPimagecreatefromxbm3PHPimagecreatefromwebp3PHPimagecreatefromwbmp7PHPimagecreatefromstring1PHPimagecreatefrompng3PHPimagecreatefromjpeg1PHPimagecreatefromgif9PHPimagecreatefromgd2part1PHPimagecreatefromgd2/PHPimagecreatefromgd#PHPimagecreate-PHPimagecopyresized1PHPimagecopyresampled1PHPimagecopymergegray)PHPimagecopymergePHPimagecopy-PHPimageconvolution7PHPimagecolortransparent-PHPimagecolorstotal    )PHPimagefontwidth
   ( ^ iQ7$
}hM2 xaB+       t ^      %PHPimagettfbbox ;PHPimagetruecolortopalettePHPimagesyPHPimagesx'PHPimagestringup#PHPimagestring%PHPimagesettile/PHPimagesetthickness'PHPimagesetstyle'PHPimagesetpixel7PHPimagesetinterpolation'PHPimagesetbrush!PHPimagescale)PHPimagesavealpha#PHPimagerotate)PHPimagerectangle#PHPimagepstext-PHPimagepsslantfont+PHPimagepsloadfont+PHPimagepsfreefont/PHPimagepsextendfont/PHPimagepsencodefont#PHPimagepsbbox%PHPimagepolygonPHPimagepng ;PHPimagepalettetotruecolor-PHPimagepalettecopy'PHPimageloadfontPHPimageline-PHPimagelayereffectPHPimagejpeg-PHPimageistruecolor)PHPimageinterlace+PHPimagegrabwindow+PHPimagegrabscreenPHPimagegifPHPimagegd2PHPimagegd/PHPimagegammacorrect#PHPimagefttext
   ( l wbM:!zdG/kO6        l                    )PHPimap_mail_move)PHPimap_mail_copy/PHPimap_mail_composePHPimap_mailPHPimap_lsub'PHPimap_listscanPHPimap_list+PHPimap_last_error%PHPimap_headers+PHPimap_headerinfo1PHPimap_getsubscribed/PHPimap_getmailboxes#PHPimap_getacl1PHPimap_get_quotaroot)PHPimap_get_quotaPHPimap_gc3PHPimap_fetchstructure)PHPimap_fetchmime-PHPimap_fetchheader)PHPimap_fetchbody3PHPimap_fetch_overview%PHPimap_expunge#PHPimap_errors~1PHPimap_deletemailbox}#PHPimap_delete|1PHPimap_createmailbox{!PHPimap_closez3PHPimap_clearflag_fully!PHPimap_checkx+PHPimap_bodystructwPHPimap_bodyv#PHPimap_binaryu#PHPimap_base64t#PHPimap_appends#PHPimap_alertsrPHPimap_8bitqPHPimagexbmPHPimagewebpPHPimagewbmp!PHPimagetypes    a   B}fO8pX*uZ5     } a                           A)PHPnewt_cursor_onR  @/PHPncurses_wstandend4  ? ;PHPncurses_slk_noutrefresh  >)PHPncurses_newpad  =)PHPncurses_has_il  <%PHPncurses_beep  ;5PHPmysqlnd_ms_xa_commit  : ;PHPmysqli_stmt_field_counth  9'PHPmysqli_reportO  81PHPmysqli_field_count/  7+PHPmysql_thread_id  6#PHPmysql_errnou  5/PHPmssql_fetch_arrayS  4!=PHPmsgfmt_get_error_message  3%PHPmqseries_get  2)MPHPmcrypt_module_is_block_algorithm?  1!PHPmcrypt_cbc  0!=PHPmb_ereg_replace_callback  /-PHPmaxdb_stmt_errno  .7PHPmaxdb_get_server_infog  --PHPmaxdb_autocommitE  ,'PHPm_setblocking  +#APHPlocale_get_display_variant+  *PHPldap_read  )PHPlcg_value  (PHPis_string  '-PHPintlcal_get_time  &/PHPinotify_add_watch  % ;PHPingres_autocommit_state  #3PHPimap_mailboxmsginfo
   ' Y|cP=(wbJ5lR8%	       o Y   %PHPinflate_init#PHPinflate_addPHPinet_pton;PHPinet_ntop:-PHPinclued_get_dataPHPin_array !=PHPimport_request_variablesOPHPimplode1PHPimap_utf8_to_mutf7PHPimap_utf8-PHPimap_utf7_encode-PHPimap_utf7_decode-PHPimap_unsubscribe'PHPimap_undeletePHPimap_uid%PHPimap_timeout#PHPimap_thread)PHPimap_subscribe#PHPimap_statusPHPimap_sort/PHPimap_setflag_full#PHPimap_setacl)PHPimap_set_quota#PHPimap_search'PHPimap_savebody"?PHPimap_rfc822_write_address"?PHPimap_rfc822_parse_headers"?PHPimap_rfc822_parse_adrlist#PHPimap_reopen1PHPimap_renamemailbox#PHPimap_qprintPHPimap_pingPHPimap_open+PHPimap_num_recent%PHPimap_num_msg1PHPimap_mutf7_to_utf8!PHPimap_msgno ;PHPimap_mime_header_decode  /PHPingres_autocommit
 $ R kU?#v\?$w\C*      v b R  PHPini_set8#PHPini_get_all5PHPini_get6 ;PHPingres_unbuffered_query9PHPingres_set_environment+PHPingres_rollback1PHPingres_result_seek%PHPingres_query)PHPingres_prepare+PHPingres_pconnect+PHPingres_num_rows/PHPingres_num_fields/PHPingres_next_error1PHPingres_free_result/PHPingres_field_type1PHPingres_field_scale9PHPingres_field_precision7PHPingres_field_nullable/PHPingres_field_name3PHPingres_field_length-PHPingres_fetch_row!=PHPingres_fetch_proc_return3PHPingres_fetch_object1PHPingres_fetch_assoc1PHPingres_fetch_array)PHPingres_execute5PHPingres_escape_string1PHPingres_errsqlstate%PHPingres_error%PHPingres_errno'PHPingres_cursor)PHPingres_connect'PHPingres_commit%PHPingres_close)PHPingres_charset            #PHPini_restore7
    [ u\?q\8zW;     [                     -UPHPintlcal_get_skipped_wall_time_option.WPHPintlcal_get_repeated_wall_time_option+PHPintlcal_get_now3PHPintlcal_get_minimum/YPHPintlcal_get_minimal_days_in_first_week3PHPintlcal_get_maximum1PHPintlcal_get_locale"?PHPintlcal_get_least_maximum%EPHPintlcal_get_greatest_minimum&GPHPintlcal_get_first_day_of_week%EPHPintlcal_get_day_of_week_type&GPHPintlcal_get_available_locales#APHPintlcal_get_actual_minimum#APHPintlcal_get_actual_maximum#PHPintlcal_get!=PHPintlcal_field_difference)PHPintlcal_equals'PHPintlcal_clear)PHPintlcal_before'PHPintlcal_after#PHPintlcal_add+PHPintl_is_failure9PHPintl_get_error_message3PHPintl_get_error_code+PHPintl_error_name-PHPinterface_exists
PHPintdiv-PHPinotify_rm_watch%PHPinotify_read/PHPinotify_queue_len%PHPinotify_init
   ' f`D,rD*~nWF3!        y f                PHPis_scalar#PHPis_resource#PHPis_readable4PHPis_object!PHPis_numericPHPis_nullPHPis_nanPHPis_link3PHPis_int#PHPis_infinitePHPis_floatPHPis_finitePHPis_file2'PHPis_executable1PHPis_dir0#PHPis_callablePHPis_boolPHPis_arrayPHPis_a
PHPiptcparsePHPiptcembedPHPip2long<PHPintval7PHPintlcal_set_time_zone-PHPintlcal_set_time-UPHPintlcal_set_skipped_wall_time_option.WPHPintlcal_set_repeated_wall_time_option 3PHPintlcal_set_lenient&GPHPintlcal_set_first_day_of_week#PHPintlcal_set%PHPintlcal_roll1PHPintlcal_is_weekend)PHPintlcal_is_set1PHPintlcal_is_lenient!=PHPintlcal_is_equivalent_to!=PHPintlcal_in_daylight_time'IPHPintlcal_get_weekend_transition-PHPintlcal_get_type   'PHPis_soap_fault
   ( X oW<{iUG4
kK4     y i XPHPlcfirstPHPkrsort PHPkey 9PHPkadm5_modify_principal!=PHPkadm5_init_with_password5PHPkadm5_get_principals3PHPkadm5_get_principal1PHPkadm5_get_policies#PHPkadm5_flush'PHPkadm5_destroy9PHPkadm5_delete_principal9PHPkadm5_create_principal~9PHPkadm5_chpass_principal}%PHPjudy_versionPHPjudy_type3PHPjson_last_error_msg{+PHPjson_last_error|#PHPjson_encodez#PHPjson_decodeyPHPjpeg2wbmpPHPjoin!PHPjewishtojdPHPjdtounixW!PHPjdtojulian!PHPjdtojewishV'PHPjdtogregorian!PHPjdtofrench#PHPjdmonthname#PHPjddayofweek ;PHPjava_last_exception_get
"?PHPjava_last_exception_clear	/PHPiterator_to_array	)PHPiterator_count
)PHPiterator_applyPHPisset
#PHPis_writable6-PHPis_uploaded_file5!PHPis_tainted)PHPis_subclass_of
PHPksort 
   & T uR&
tV<iV@*      o T/PHPldap_parse_result5PHPldap_parse_reference3PHPldap_next_reference+PHPldap_next_entry3PHPldap_next_attribute/PHPldap_modify_batch#PHPldap_modify-PHPldap_mod_replace%PHPldap_mod_del%PHPldap_mod_addPHPldap_list3PHPldap_get_values_len+PHPldap_get_values+PHPldap_get_option-PHPldap_get_entries#PHPldap_get_dn3PHPldap_get_attributes-PHPldap_free_result5PHPldap_first_reference-PHPldap_first_entry5PHPldap_first_attribute+PHPldap_explode_dn#PHPldap_escape!PHPldap_error!PHPldap_errno%PHPldap_err2str#PHPldap_dn2ufn#PHPldap_delete1PHPldap_count_entries+QPHPldap_control_paged_result_response"?PHPldap_control_paged_result%PHPldap_connect%PHPldap_comparePHPldap_bindPHPldap_add-PHPldap_8859_to_t61PHPlchown8PHPlchgrp7
 ! Z taI/c8{ZB#    } Z                "?PHPlocale_get_display_script*"?PHPlocale_get_display_region) ;PHPlocale_get_display_name($CPHPlocale_get_display_language'1PHPlocale_get_default& ;PHPlocale_get_all_variants%7PHPlocale_filter_matches$)PHPlocale_compose# ;PHPlocale_accept_from_http"#APHPlitespeed_response_headers!"?PHPlitespeed_request_headers PHPlist PHPlinkinfo:PHPlink9#APHPlibxml_use_internal_errors#APHPlibxml_set_streams_context*OPHPlibxml_set_external_entity_loader7PHPlibxml_get_last_error/PHPlibxml_get_errors%EPHPlibxml_disable_entity_loader3PHPlibxml_clear_errors#PHPlevenshtein'PHPleak_variablePHPleak#PHPldap_unbind-PHPldap_t61_to_8859)PHPldap_start_tlsPHPldap_sort5PHPldap_set_rebind_proc+PHPldap_set_option#PHPldap_search)PHPldap_sasl_bind#PHPldap_rename                  
 ( Z dM7lQ:x[F2       s Z  +PHPm_responseparam)PHPm_responsekeys7PHPm_parsecommadelimitedPHPm_numrows%PHPm_numcolumnsPHPm_monitor-PHPm_maxconntimeout1PHPm_iscommadelimited%PHPm_initengine!PHPm_initconn#PHPm_getheader3PHPm_getcommadelimited)PHPm_getcellbynumPHPm_getcell+PHPm_destroyengine'PHPm_destroyconn'PHPm_deletetrans/PHPm_connectionerrorPHPm_connect!=PHPm_completeauthorizations'PHPm_checkstatus/PHPlzf_optimized_for5)PHPlzf_decompress4%PHPlzf_compress3PHPltrimPHPlstat;PHPlong2ip=PHPlog1pPHPlog10PHPlogPHPlocaltime!PHPlocaleconv1PHPlocale_set_default2%PHPlocale_parse1'PHPlocale_lookup0/PHPlocale_get_script//PHPlocale_get_region.$CPHPlocale_get_primary_language-3PHPlocale_get_keywords,           )PHPm_returnstatus
   ! Y cG/}M/wR-     v Y               3PHPmaxdb_affected_rowsDPHPmax9PHPmailparse_uudecode_allC ;PHPmailparse_stream_encodeB)MPHPmailparse_rfc822_parse_addressesA!=PHPmailparse_msg_parse_file@3PHPmailparse_msg_parse?$CPHPmailparse_msg_get_structure>$CPHPmailparse_msg_get_part_data<9PHPmailparse_msg_get_part=1PHPmailparse_msg_free;.WPHPmailparse_msg_extract_whole_part_file:(KPHPmailparse_msg_extract_part_file8#APHPmailparse_msg_extract_part95PHPmailparse_msg_create7/YPHPmailparse_determine_best_xfer_encoding6PHPmail+PHPm_verifysslcert1PHPm_verifyconnection5PHPm_validateidentifierPHPm_uwait#PHPm_transsend!PHPm_transnew'PHPm_transkeyval)PHPm_transinqueue1PHPm_transactionssent
1PHPm_sslcert_gen_hash	%PHPm_settimeout)PHPm_setssl_files+PHPm_setssl_cafilePHPm_setsslPHPm_setip'PHPm_setdropfile
   ! W dG.hH3rV="     u W             5PHPmaxdb_get_proto_infof3PHPmaxdb_get_host_infoe!=PHPmaxdb_get_client_versiond7PHPmaxdb_get_client_infoc/PHPmaxdb_free_resultb-PHPmaxdb_field_tella-PHPmaxdb_field_seek`/PHPmaxdb_field_count_+PHPmaxdb_fetch_row^1PHPmaxdb_fetch_object]3PHPmaxdb_fetch_lengths\1PHPmaxdb_fetch_fields[!=PHPmaxdb_fetch_field_directY/PHPmaxdb_fetch_fieldZ/PHPmaxdb_fetch_assocX/PHPmaxdb_fetch_arrayW#PHPmaxdb_errorV#PHPmaxdb_errnoU9PHPmaxdb_enable_rpl_parseT'IPHPmaxdb_enable_reads_from_masterS9PHPmaxdb_embedded_connectR7PHPmaxdb_dump_debug_infoQ ;PHPmaxdb_disable_rpl_parseP(KPHPmaxdb_disable_reads_from_masterO#PHPmaxdb_debugN+PHPmaxdb_data_seekM3PHPmaxdb_connect_errorK3PHPmaxdb_connect_errnoJ'PHPmaxdb_connectL%PHPmaxdb_commitI#PHPmaxdb_closeH!=PHPmaxdb_character_set_nameG/PHPmaxdb_change_userF
   # b~jN2nL2y_D,     b                    #APHPmaxdb_stmt_close_long_data-PHPmaxdb_stmt_close9PHPmaxdb_stmt_bind_result7PHPmaxdb_stmt_bind_param!=PHPmaxdb_stmt_affected_rows!PHPmaxdb_stat'PHPmaxdb_ssl_set)PHPmaxdb_sqlstate/PHPmaxdb_server_init-PHPmaxdb_server_end-PHPmaxdb_send_query+PHPmaxdb_select_db~5PHPmaxdb_rpl_query_type}+PHPmaxdb_rpl_probe| ;PHPmaxdb_rpl_parse_enabled{)PHPmaxdb_rollbackz%PHPmaxdb_reporty-PHPmaxdb_real_queryx!=PHPmaxdb_real_escape_stringw1PHPmaxdb_real_connectv#PHPmaxdb_queryu!PHPmaxdb_pingt'PHPmaxdb_optionss)PHPmaxdb_num_rowsr-PHPmaxdb_num_fieldsq/PHPmaxdb_next_resultp/PHPmaxdb_multi_queryo1PHPmaxdb_more_resultsn1PHPmaxdb_master_querym!PHPmaxdb_killl+PHPmaxdb_insert_idk!PHPmaxdb_initj!PHPmaxdb_infoi!=PHPmaxdb_get_server_versionh 5PHPmaxdb_stmt_data_seek
   ! ^v]@ eI0tV8      u ^                    'PHPmb_ereg_matchPHPmb_ereg3PHPmb_encoding_aliases ;PHPmb_encode_numericentity5PHPmb_encode_mimeheader	+PHPmb_detect_order1PHPmb_detect_encoding ;PHPmb_decode_numericentity5PHPmb_decode_mimeheader
5PHPmb_convert_variables+PHPmb_convert_kana3PHPmb_convert_encoding+PHPmb_convert_case/PHPmb_check_encoding3PHPmaxdb_warning_count-PHPmaxdb_use_result/PHPmaxdb_thread_safe+PHPmaxdb_thread_id1PHPmaxdb_store_result ;PHPmaxdb_stmt_store_result3PHPmaxdb_stmt_sqlstate"?PHPmaxdb_stmt_send_long_data#APHPmaxdb_stmt_result_metadata-PHPmaxdb_stmt_reset1PHPmaxdb_stmt_prepare9PHPmaxdb_stmt_param_count3PHPmaxdb_stmt_num_rows+PHPmaxdb_stmt_init9PHPmaxdb_stmt_free_result-PHPmaxdb_stmt_fetch1PHPmaxdb_stmt_execute-PHPmaxdb_stmt_error +PHPmb_ereg_replace
   ' W y]@!~cH2s_L9%       p W +PHPmb_substr_count ;PHPmb_substitute_character#PHPmb_strwidth'PHPmb_strtoupper'PHPmb_strtolowerPHPmb_strstr!PHPmb_strrpos#PHPmb_strripos#PHPmb_strrichr!PHPmb_strrchrPHPmb_strposPHPmb_strlen!PHPmb_stristr!PHPmb_stripos'PHPmb_strimwidthPHPmb_strcutPHPmb_split%PHPmb_send_mail5PHPmb_regex_set_options/PHPmb_regex_encoding9PHPmb_preferred_mime_name%PHPmb_parse_str/PHPmb_output_handler/PHPmb_list_encodings#PHPmb_language5PHPmb_internal_encoding)PHPmb_http_output'PHPmb_http_input#PHPmb_get_info-PHPmb_eregi_replacePHPmb_eregi7PHPmb_ereg_search_setpos3PHPmb_ereg_search_regs1PHPmb_ereg_search_pos3PHPmb_ereg_search_init9PHPmb_ereg_search_getregs7PHPmb_ereg_search_getpos)PHPmb_ereg_searchPHPmb_substr 
  I jG'dB$}]A$    x I       .WPHPmcrypt_module_get_supported_key_sizes=(KPHPmcrypt_module_get_algo_key_size<*OPHPmcrypt_module_get_algo_block_size;3PHPmcrypt_module_close:/PHPmcrypt_list_modes99PHPmcrypt_list_algorithms83PHPmcrypt_get_key_size71PHPmcrypt_get_iv_size69PHPmcrypt_get_cipher_name57PHPmcrypt_get_block_size43PHPmcrypt_generic_init21PHPmcrypt_generic_end7PHPmcrypt_generic_deinit0)PHPmcrypt_generic3)PHPmcrypt_encrypt/5PHPmcrypt_enc_self_test.!=PHPmcrypt_enc_is_block_mode-+QPHPmcrypt_enc_is_block_algorithm_mode+&GPHPmcrypt_enc_is_block_algorithm,+QPHPmcrypt_enc_get_supported_key_sizes*"?PHPmcrypt_enc_get_modes_name) ;PHPmcrypt_enc_get_key_size(9PHPmcrypt_enc_get_iv_size'"?PHPmcrypt_enc_get_block_size&'IPHPmcrypt_enc_get_algorithms_name%!PHPmcrypt_ecb)PHPmcrypt_decrypt#-PHPmcrypt_create_iv"!PHPmcrypt_cfb                   
   & [ xWC6$
mO2oT8)      r [       'PHPmqseries_disc'PHPmqseries_conn'PHPmqseries_cmit)PHPmqseries_close)PHPmqseries_begin'PHPmqseries_back1PHPmove_uploaded_file=%PHPmoney_formatPHPmktimePHPmkdir<1PHPming_useswfversionK/PHPming_useconstantsJ9PHPming_setswfcompressionI'PHPming_setscaleH9PHPming_setcubicthresholdG'PHPming_keypressFPHPmin/PHPmime_content_typeWPHPmicrotime-PHPmhash_keygen_s2k3PHPmhash_get_hash_name5PHPmhash_get_block_size#PHPmhash_countPHPmhash'PHPmethod_exists
PHPmetaphone-PHPmemory_get_usage:7PHPmemory_get_peak_usage9)PHPmemcache_debugE-PHPmdecrypt_genericDPHPmd5_filePHPmd5!PHPmcrypt_ofb ;PHPmcrypt_module_self_testB1PHPmcrypt_module_openA$CPHPmcrypt_module_is_block_mode@.WPHPmcrypt_module_is_block_algorithm_mode>)PHPmqseries_connx
 % [ z_E-ycL2jQ:       z [         7PHPmsgfmt_get_error_code7PHPmsgfmt_format_message'PHPmsgfmt_format)PHPmsg_stat_queue'PHPmsg_set_queuePHPmsg_send-PHPmsg_remove_queue#PHPmsg_receive-PHPmsg_queue_exists'PHPmsg_get_queue+PHPmsession_unlock'PHPmsession_uniq-PHPmsession_timeout/PHPmsession_set_data1PHPmsession_set_array%PHPmsession_set-PHPmsession_randstr+PHPmsession_plugin'PHPmsession_lock-PHPmsession_listvar'PHPmsession_list%PHPmsession_inc/PHPmsession_get_data1PHPmsession_get_array%PHPmsession_get'PHPmsession_find3PHPmsession_disconnect-PHPmsession_destroy+PHPmsession_create)PHPmsession_count-PHPmsession_connect/PHPmqseries_strerror%PHPmqseries_set'PHPmqseries_put1%PHPmqseries_put'PHPmqseries_open%PHPmqseries_inq                     
 & \ sW;'lQ9qW=$       u \        +PHPmssql_data_seekQ'PHPmssql_connectP#PHPmssql_closeO!PHPmssql_bindN)PHPmsql_select_db#PHPmsql_result!PHPmsql_query'PHPmsql_pconnect'PHPmsql_num_rows+PHPmsql_num_fields-PHPmsql_list_tables-PHPmsql_list_fields'PHPmsql_list_dbs -PHPmsql_free_result+PHPmsql_field_type-PHPmsql_field_table+PHPmsql_field_seek+PHPmsql_field_name)PHPmsql_field_len-PHPmsql_field_flags)PHPmsql_fetch_row/PHPmsql_fetch_object-PHPmsql_fetch_field-PHPmsql_fetch_array!PHPmsql_error%PHPmsql_drop_db'PHPmsql_db_query)PHPmsql_data_seek)PHPmsql_create_db%PHPmsql_connect!PHPmsql_close1PHPmsql_affected_rows1PHPmsgfmt_set_pattern5PHPmsgfmt_parse_message%PHPmsgfmt_parse1PHPmsgfmt_get_pattern/PHPmsgfmt_get_locale          'PHPmssql_executeR
 $ ^ x_C)mK'zaJ9'
      v ^              )PHPmysql_db_query'PHPmysql_db_namer+PHPmysql_data_seekq+PHPmysql_create_dbp'PHPmysql_connecto#PHPmysql_closen7PHPmysql_client_encodingm3PHPmysql_affected_rowslPHPmt_srandPHPmt_rand'PHPmt_getrandmax+PHPmssql_select_dbk3PHPmssql_rows_affectedj%PHPmssql_resulti#PHPmssql_queryh)PHPmssql_pconnectg)PHPmssql_num_rowsf-PHPmssql_num_fieldse/PHPmssql_next_resultd#APHPmssql_min_message_severityc!=PHPmssql_min_error_severityb!PHPmssql_inita/PHPmssql_guid_string`9PHPmssql_get_last_message_5PHPmssql_free_statement^/PHPmssql_free_result]-PHPmssql_field_type\-PHPmssql_field_seek[-PHPmssql_field_nameZ1PHPmssql_field_lengthY+PHPmssql_fetch_rowX1PHPmssql_fetch_objectW/PHPmssql_fetch_fieldV/PHPmssql_fetch_batchU/PHPmssql_fetch_assocT   'PHPmysql_drop_dbt
   $ U }`D+sT7|aG/      n U     +PHPmysql_tablename!PHPmysql_stat/PHPmysql_set_charset+PHPmysql_select_db%PHPmysql_result!=PHPmysql_real_escape_string#PHPmysql_query!PHPmysql_ping)PHPmysql_pconnect)PHPmysql_num_rows-PHPmysql_num_fields/PHPmysql_list_tables5PHPmysql_list_processes/PHPmysql_list_fields)PHPmysql_list_dbs+PHPmysql_insert_id!PHPmysql_info7PHPmysql_get_server_info5PHPmysql_get_proto_info3PHPmysql_get_host_info7PHPmysql_get_client_info/PHPmysql_free_result-PHPmysql_field_type/PHPmysql_field_table-PHPmysql_field_seek-PHPmysql_field_name+PHPmysql_field_len/PHPmysql_field_flags~+PHPmysql_fetch_row}1PHPmysql_fetch_object|3PHPmysql_fetch_lengths{/PHPmysql_fetch_fieldz/PHPmysql_fetch_assocy/PHPmysql_fetch_arrayx3PHPmysql_escape_string#PHPmysql_errorv
  J lP- jH(~hM3      d J    -PHPmysqli_fetch_row.3PHPmysqli_fetch_object-5PHPmysqli_fetch_lengths,3PHPmysqli_fetch_fields+"?PHPmysqli_fetch_field_direct)1PHPmysqli_fetch_field*1PHPmysqli_fetch_assoc(1PHPmysqli_fetch_array'-PHPmysqli_fetch_all&/PHPmysqli_error_list%%PHPmysqli_error%PHPmysqli_errno ;PHPmysqli_enable_rpl_parse$(KPHPmysqli_enable_reads_from_master#%EPHPmysqli_embedded_server_start"#APHPmysqli_embedded_server_end!9PHPmysqli_dump_debug_info !=PHPmysqli_disable_rpl_parse)MPHPmysqli_disable_reads_from_master%PHPmysqli_debug-PHPmysqli_data_seek5PHPmysqli_connect_error5PHPmysqli_connect_errno'PHPmysqli_commit%PHPmysqli_close"?PHPmysqli_character_set_name1PHPmysqli_change_user!=PHPmysqli_begin_transaction/PHPmysqli_autocommit5PHPmysqli_affected_rows9PHPmysql_unbuffered_query                        
   ! P rR1lI,qV=%      r P      !=PHPmysqli_release_savepointN)PHPmysqli_refreshM/PHPmysqli_real_queryL"?PHPmysqli_real_escape_stringK3PHPmysqli_real_connectJ%PHPmysqli_queryI#PHPmysqli_pollH#PHPmysqli_pingG)PHPmysqli_optionsF+PHPmysqli_num_rowsE/PHPmysqli_num_fieldsD1PHPmysqli_next_resultC1PHPmysqli_multi_queryB3PHPmysqli_more_resultsA3PHPmysqli_master_query@7PHPmysqli_link_construct?#PHPmysqli_kill>#PHPmysqli_info3PHPmysqli_get_warnings="?PHPmysqli_get_server_version<9PHPmysqli_get_server_info;7PHPmysqli_get_proto_info:9PHPmysqli_get_links_stats95PHPmysqli_get_host_info8$CPHPmysqli_get_connection_stats7"?PHPmysqli_get_client_version6 ;PHPmysqli_get_client_stats59PHPmysqli_get_client_info41PHPmysqli_get_charset39PHPmysqli_get_cache_stats1PHPmysqli_free_result2/PHPmysqli_field_tell1/PHPmysqli_field_seek0
     R rO5w_J.y[;      m R          /PHPmysqli_stmt_fetchg3PHPmysqli_stmt_executef9PHPmysqli_stmt_error_liste/PHPmysqli_stmt_error/PHPmysqli_stmt_errno7PHPmysqli_stmt_data_seekd/PHPmysqli_stmt_closec ;PHPmysqli_stmt_bind_resultb9PHPmysqli_stmt_bind_parama5PHPmysqli_stmt_attr_set`5PHPmysqli_stmt_attr_get_"?PHPmysqli_stmt_affected_rows^1PHPmysqli_stmt::reset5PHPmysqli_stmt::prepare1PHPmysqli_stmt::fetch5PHPmysqli_stmt::execute1PHPmysqli_stmt::close#PHPmysqli_stat])PHPmysqli_ssl_set\+PHPmysqli_sqlstate1PHPmysqli_slave_query[(KPHPmysqli_set_local_infile_handlerZ(KPHPmysqli_set_local_infile_defaultY1PHPmysqli_set_charsetX/PHPmysqli_send_queryW-PHPmysqli_select_dbV"?PHPmysqli_savepoint_libmysqlU-PHPmysqli_savepointT7PHPmysqli_rpl_query_typeS-PHPmysqli_rpl_probeR!=PHPmysqli_rpl_parse_enabledQ+PHPmysqli_rollbackP
    E ~\;`F*W5     b E   3PHPmysqlnd_ms_xa_begin(KPHPmysqlnd_ms_set_user_pick_server1PHPmysqlnd_ms_set_qos#APHPmysqlnd_ms_query_is_select7PHPmysqlnd_ms_match_wild5PHPmysqlnd_ms_get_stats,SPHPmysqlnd_ms_get_last_used_connection~!=PHPmysqlnd_ms_get_last_gtid}'IPHPmysqlnd_ms_fabric_select_shard|(KPHPmysqlnd_ms_fabric_select_global{ ;PHPmysqlnd_ms_dump_serversz5PHPmysqlnd_memcache_sety$CPHPmysqlnd_memcache_get_configx5PHPmysqli_warning_countw1PHPmysqli_thread_safev-PHPmysqli_thread_idu!=PHPmysqli_stmt_store_resultt5PHPmysqli_stmt_sqlstate#APHPmysqli_stmt_send_long_datas/PHPmysqli_stmt_resetr3PHPmysqli_stmt_prepareq ;PHPmysqli_stmt_param_countp5PHPmysqli_stmt_num_rowso ;PHPmysqli_stmt_next_resultn!=PHPmysqli_stmt_more_resultsm7PHPmysqli_stmt_insert_idl!=PHPmysqli_stmt_get_warningsk9PHPmysqli_stmt_get_resultj ;PHPmysqli_stmt_free_resulti
  U e:yQ/iTC,      n U                   +PHPncurses_attrset)PHPncurses_attron+PHPncurses_attroff&GPHPncurses_assume_default_colors)PHPncurses_addstr+PHPncurses_addnstr-PHPncurses_addchstr/PHPncurses_addchnstr'PHPncurses_addchPHPnatsort #PHPnatcasesort 'IPHPmysqlnd_uh_set_statement_proxy(KPHPmysqlnd_uh_set_connection_proxy&GPHPmysqlnd_uh_convert_to_mysqlnd%EPHPmysqlnd_qc_set_user_handlers'IPHPmysqlnd_qc_set_storage_handler!=PHPmysqlnd_qc_set_is_select'IPHPmysqlnd_qc_set_cache_condition'IPHPmysqlnd_qc_get_query_trace_log2_PHPmysqlnd_qc_get_normalized_query_trace_log9PHPmysqlnd_qc_get_handler"?PHPmysqlnd_qc_get_core_stats"?PHPmysqlnd_qc_get_cache_info*OPHPmysqlnd_qc_get_available_handlers9PHPmysqlnd_qc_clear_cache"?PHPmysqlnd_qc_change_handler9PHPmysqlnd_ms_xa_rollback-PHPmysqlnd_ms_xa_gc   -PHPncurses_baudrate
   $ Z yaJ0gL.oT<%      r Z          )PHPncurses_has_ic1PHPncurses_has_colors/PHPncurses_halfdelay'PHPncurses_getyx-PHPncurses_getmouse-PHPncurses_getmaxyx'PHPncurses_getch-PHPncurses_flushinp'PHPncurses_flash)PHPncurses_filter/PHPncurses_erasechar'PHPncurses_erase#PHPncurses_end-PHPncurses_echochar%PHPncurses_echo-PHPncurses_doupdate)PHPncurses_delwin-PHPncurses_deleteln'PHPncurses_delch5PHPncurses_delay_output/PHPncurses_del_panel1PHPncurses_define_key9PHPncurses_def_shell_mode7PHPncurses_def_prog_mode-PHPncurses_curs_set/PHPncurses_color_set7PHPncurses_color_content-PHPncurses_clrtoeol-PHPncurses_clrtobot'PHPncurses_clear)PHPncurses_cbreak!=PHPncurses_can_change_color5PHPncurses_bottom_panel)PHPncurses_border+PHPncurses_bkgdset%PHPncurses_bkgd
   % T lQ: tZD'iN4      o T  /PHPncurses_new_panel'PHPncurses_napms/PHPncurses_mvwaddstr+PHPncurses_mvvline)PHPncurses_mvinch+PHPncurses_mvhline+PHPncurses_mvgetch+PHPncurses_mvdelch'PHPncurses_mvcur-PHPncurses_mvaddstr/PHPncurses_mvaddnstr1PHPncurses_mvaddchstr3PHPncurses_mvaddchnstr+PHPncurses_mvaddch1PHPncurses_move_panel%PHPncurses_move/PHPncurses_mousemask7PHPncurses_mouseinterval3PHPncurses_mouse_trafo%PHPncurses_meta-PHPncurses_longname-PHPncurses_killchar)PHPncurses_keypad'PHPncurses_keyok-PHPncurses_isendwin'PHPncurses_instr)PHPncurses_insstr-PHPncurses_insertln-PHPncurses_insdelln'PHPncurses_insch/PHPncurses_init_pair1PHPncurses_init_color%PHPncurses_init%PHPncurses_inch'PHPncurses_hline1PHPncurses_hide_panel+PHPncurses_has_key
   # _ qZ<}hO0jQ;     y _                 -PHPncurses_slk_init/PHPncurses_slk_color/PHPncurses_slk_clear3PHPncurses_slk_attrset1PHPncurses_slk_attron3PHPncurses_slk_attroff
-PHPncurses_slk_attr	1PHPncurses_show_panel%PHPncurses_scrl+PHPncurses_scr_set3PHPncurses_scr_restore-PHPncurses_scr_init-PHPncurses_scr_dump+PHPncurses_savetty+PHPncurses_resetty!=PHPncurses_reset_shell_mode  ;PHPncurses_reset_prog_mode7PHPncurses_replace_panel+PHPncurses_refresh#PHPncurses_raw+PHPncurses_qiflush%PHPncurses_putp-PHPncurses_prefresh5PHPncurses_pnoutrefresh5PHPncurses_panel_window3PHPncurses_panel_below3PHPncurses_panel_above5PHPncurses_pair_content'PHPncurses_noraw/PHPncurses_noqiflush%PHPncurses_nonl)PHPncurses_noecho-PHPncurses_nocbreak!PHPncurses_nl)PHPncurses_newwin
 # Q qW= gH$lS9       o Q   5PHPncurses_wnoutrefresh2'PHPncurses_wmove15PHPncurses_wmouse_trafo0)PHPncurses_whline/)PHPncurses_wgetch.)PHPncurses_werase-1PHPncurses_wcolor_set,)PHPncurses_wclear++PHPncurses_wborder*-PHPncurses_wattrset)+PHPncurses_wattron(-PHPncurses_wattroff'+PHPncurses_waddstr&)PHPncurses_waddch%'PHPncurses_vline$+PHPncurses_vidattr##APHPncurses_use_extended_names"+PHPncurses_use_env!#APHPncurses_use_default_colors 7PHPncurses_update_panels1PHPncurses_ungetmouse+PHPncurses_ungetch/PHPncurses_typeahead/PHPncurses_top_panel+PHPncurses_timeout-PHPncurses_termname/PHPncurses_termattrs3PHPncurses_start_color-PHPncurses_standout-PHPncurses_standend/PHPncurses_slk_touch+PHPncurses_slk_set3PHPncurses_slk_restore3PHPncurses_slk_refresh      -PHPncurses_wrefresh3
    QqS<rJzT(     k Q               -PHPnewt_create_gridP#APHPnewt_component_takes_focusO$CPHPnewt_component_add_callbackN3PHPnewt_compact_buttonMPHPnewt_clsL7PHPnewt_clear_key_bufferK%EPHPnewt_checkbox_tree_set_widthJ+QPHPnewt_checkbox_tree_set_entry_valueI%EPHPnewt_checkbox_tree_set_entryH'IPHPnewt_checkbox_tree_set_currentG!=PHPnewt_checkbox_tree_multiE)MPHPnewt_checkbox_tree_get_selectionD/YPHPnewt_checkbox_tree_get_multi_selectionC+QPHPnewt_checkbox_tree_get_entry_valueB'IPHPnewt_checkbox_tree_get_currentA%EPHPnewt_checkbox_tree_find_item@$CPHPnewt_checkbox_tree_add_item?1PHPnewt_checkbox_treeF ;PHPnewt_checkbox_set_value> ;PHPnewt_checkbox_set_flags= ;PHPnewt_checkbox_get_value;'PHPnewt_checkbox<5PHPnewt_centered_window:+PHPnewt_button_bar8#PHPnewt_button9PHPnewt_bell7)PHPncurses_wvline6/PHPncurses_wstandout5  +PHPnewt_cursor_offQ
   ! K mN0jS1Y9!     n K "?PHPnewt_grid_v_close_stackeds ;PHPnewt_grid_simple_windowr3PHPnewt_grid_set_fieldq+PHPnewt_grid_placep3PHPnewt_grid_h_stackedo"?PHPnewt_grid_h_close_stackedn1PHPnewt_grid_get_sizem)PHPnewt_grid_freel9PHPnewt_grid_basic_windowk)MPHPnewt_grid_add_components_to_formj5PHPnewt_get_screen_sizei1PHPnewt_form_watch_fdh3PHPnewt_form_set_widthg3PHPnewt_form_set_timerf1PHPnewt_form_set_sizee5PHPnewt_form_set_heightd!=PHPnewt_form_set_backgroundc'PHPnewt_form_runb7PHPnewt_form_get_current`/PHPnewt_form_destroy_7PHPnewt_form_add_hot_key^!=PHPnewt_form_add_components] ;PHPnewt_form_add_component\PHPnewt_forma'PHPnewt_finished[5PHPnewt_entry_set_flagsZ7PHPnewt_entry_set_filterY)PHPnewt_entry_setX5PHPnewt_entry_get_valueV!PHPnewt_entryW3PHPnewt_draw_root_textU)PHPnewt_draw_formT!PHPnewt_delayS
    MuXBtQ0dM-      l M       7PHPnewt_redraw_help_line-PHPnewt_radiobutton9PHPnewt_radio_get_current3PHPnewt_push_help_line+PHPnewt_pop_window1PHPnewt_pop_help_line-PHPnewt_open_window/PHPnewt_listitem_set9PHPnewt_listitem_get_data'PHPnewt_listitem9PHPnewt_listbox_set_width9PHPnewt_listbox_set_entry7PHPnewt_listbox_set_data(KPHPnewt_listbox_set_current_by_key!=PHPnewt_listbox_set_current!=PHPnewt_listbox_select_item ;PHPnewt_listbox_item_count"?PHPnewt_listbox_insert_entry#APHPnewt_listbox_get_selection!=PHPnewt_listbox_get_current~"?PHPnewt_listbox_delete_entry}%EPHPnewt_listbox_clear_selection|1PHPnewt_listbox_clear{"?PHPnewt_listbox_append_entryz%PHPnewt_listbox3PHPnewt_label_set_texty!PHPnewt_labelxPHPnewt_initw$CPHPnewt_grid_wrapped_window_atu!=PHPnewt_grid_wrapped_windowv   -PHPnewt_reflow_text    \   cmR0~gE"hS/    ~ \                    b5PHPstream_socket_server  a#APHPstream_context_get_options  `3PHPstats_stat_powersum#  _3PHPstats_rand_gen_beta  ^)PHPstats_cdf_beta  ]PHPsqrt  \#PHPsqlite_open(  [9PHPspl_autoload_functions  ZPHPsnmpset  Y#PHPshm_put_var  X3PHPsession_module_name  W3PHPrunkit_constant_add  V'PHPrecode_string  U!=PHPradius_salt_encrypt_attr  T-PHPpx_set_parameterf  S7PHPpspell_add_to_session  R5PHPps_open_memory_image  QPHPproc_nice  P)PHPposix_getgrnam  O5PHPpg_send_query_paramsw  N/PHPpg_field_type_oidM  MPHPpdf_show  L/PHPoverride_functionB  K1PHPopenssl_pkcs7_sign  J5PHPopenal_source_create3  I'PHPodbc_num_rows  H3PHPoci_set_client_info  G1PHPoci_field_type_raw  F'PHPob_get_status  E+PHPnotes_mark_read  C%PHPnewt_refresh
   $ b pP-~]B)zeC%      { b                  +PHPnotes_list_msgs/PHPnotes_header_info+PHPnotes_find_note'PHPnotes_drop_db/PHPnotes_create_note+PHPnotes_create_db'PHPnotes_copy_db!PHPnotes_body5PHPnormalizer_normalize!=PHPnormalizer_is_normalized#PHPnl_langinfoPHPnl2brPHPngettextPHPnext -PHPnewt_win_ternary/PHPnewt_win_messagev-PHPnewt_win_message'PHPnewt_win_menu-PHPnewt_win_entries+PHPnewt_win_choice/PHPnewt_wait_for_key ;PHPnewt_vertical_scrollbar7PHPnewt_textbox_set_text ;PHPnewt_textbox_set_height7PHPnewt_textbox_reflowed#APHPnewt_textbox_get_num_lines%PHPnewt_textbox%PHPnewt_suspend"?PHPnewt_set_suspend_callback9PHPnewt_set_help_callback1PHPnewt_scrollbar_set)PHPnewt_scale_set!PHPnewt_scale'PHPnewt_run_form#PHPnewt_resume1PHPnewt_resize_screen
   $ aoP0	]B&pY@.       x a                 'PHPob_get_length%PHPob_get_flush+PHPob_get_contents%PHPob_get_cleanPHPob_flush)PHPob_etaghandler%PHPob_end_flush%PHPob_end_clean/PHPob_deflatehandlerPHPob_clean+PHPoauth_urlencode'PHPoauth_get_sbs"?PHPnumfmt_set_text_attribute/PHPnumfmt_set_symbol1PHPnumfmt_set_pattern5PHPnumfmt_set_attribute"?PHPnumfmt_get_text_attribute/PHPnumfmt_get_symbol1PHPnumfmt_get_pattern/PHPnumfmt_get_locale!=PHPnumfmt_get_error_message7PHPnumfmt_get_error_code5PHPnumfmt_get_attribute9PHPnumfmt_format_currency'PHPnumfmt_format'PHPnumber_formatPHPnthmac'PHPnsapi_virtual9PHPnsapi_response_headers7PHPnsapi_request_headers'PHPnotes_version%PHPnotes_unread%PHPnotes_search-PHPnotes_nav_create/PHPnotes_mark_unread   %PHPob_get_level
 $ P iW?]9 vcL3       h P)PHPoci_field_type)PHPoci_field_size+PHPoci_field_scale3PHPoci_field_precision)PHPoci_field_name/PHPoci_field_is_null'PHPoci_fetch_row-PHPoci_fetch_object+PHPoci_fetch_assoc+PHPoci_fetch_array'PHPoci_fetch_allPHPoci_fetch#PHPoci_executePHPoci_error1PHPoci_define_by_name#PHPoci_connect!PHPoci_commit3PHPoci_collection_trim3PHPoci_collection_size1PHPoci_collection_max#APHPoci_collection_element_get&GPHPoci_collection_element_assign7PHPoci_collection_assign7PHPoci_collection_appendPHPoci_close1PHPoci_client_version!PHPoci_cancel-PHPoci_bind_by_name9PHPoci_bind_array_by_name)PHPob_tidyhandler
`PHPob_start-PHPob_list_handlers/PHPob_inflatehandler/PHPob_implicit_flush-PHPob_iconv_handlerE%PHPob_gzhandler
                      
   & V t\E/v^H2gK3
      y V  "?PHPoci_set_client_identifier)PHPoci_set_action1PHPoci_server_version%PHPoci_rollback!PHPoci_result%PHPoci_pconnect3PHPoci_password_changePHPoci_parse%PHPoci_num_rows)PHPoci_num_fields1PHPoci_new_descriptor)PHPoci_new_cursor+PHPoci_new_connect1PHPoci_new_collection
 ;PHPoci_lob_write_temporary	'PHPoci_lob_write-PHPoci_lob_truncate%PHPoci_lob_tell%PHPoci_lob_size%PHPoci_lob_seek%PHPoci_lob_save)PHPoci_lob_rewind%PHPoci_lob_read%PHPoci_lob_load -PHPoci_lob_is_equal)PHPoci_lob_import'PHPoci_lob_flush)PHPoci_lob_export'PHPoci_lob_erase#PHPoci_lob_eof%PHPoci_lob_copy'PHPoci_lob_close)PHPoci_lob_append1PHPoci_internal_debug-PHPoci_get_implicit1PHPoci_free_statement3PHPoci_free_descriptor3PHPoci_free_collection
 & Y uYC'kV@+oW?&      s Y     -PHPodbc_next_result-PHPodbc_longreadlen-PHPodbc_gettypeinfo-PHPodbc_free_result-PHPodbc_foreignkeys+PHPodbc_field_type-PHPodbc_field_scale)PHPodbc_field_num+PHPodbc_field_name)PHPodbc_field_len)PHPodbc_fetch_row/PHPodbc_fetch_object+PHPodbc_fetch_into-PHPodbc_fetch_array%PHPodbc_executePHPodbc_exec'PHPodbc_errormsg!PHPodbc_error-PHPodbc_data_source#PHPodbc_cursor%PHPodbc_connect#PHPodbc_commit%PHPodbc_columns7PHPodbc_columnprivileges)PHPodbc_close_all!PHPodbc_close%PHPodbc_binmode+PHPodbc_autocommitPHPoctdec1PHPocisetbufferinglob1PHPocigetbufferinglob%PHPocifetchinto1PHPoci_statement_type-PHPoci_set_prefetch3PHPoci_set_module_name+PHPoci_set_edition5PHPoci_set_db_operation   +PHPodbc_num_fields
 ! M jU<%cG+	~_@       j M  3PHPopenal_listener_set23PHPopenal_listener_get11PHPopenal_device_open03PHPopenal_device_close/9PHPopenal_context_suspend.9PHPopenal_context_process-9PHPopenal_context_destroy,9PHPopenal_context_current+7PHPopenal_context_create*7PHPopenal_buffer_loadwav)/PHPopenal_buffer_get(7PHPopenal_buffer_destroy'1PHPopenal_buffer_data&5PHPopenal_buffer_create%'PHPopcache_reset$!=PHPopcache_is_script_cached#1PHPopcache_invalidate"1PHPopcache_get_status!"?PHPopcache_get_configuration 5PHPopcache_compile_file#PHPodbc_tables5PHPodbc_tableprivileges+PHPodbc_statistics3PHPodbc_specialcolumns)PHPodbc_setoption'PHPodbc_rollback+PHPodbc_result_all#PHPodbc_result+PHPodbc_procedures7PHPodbc_procedurecolumns-PHPodbc_primarykeys%PHPodbc_prepare'PHPodbc_pconnect                      
   ! L oT8!yX?%_;     k L  7PHPopenssl_pkcs7_encrypt7PHPopenssl_pkcs7_decrypt3PHPopenssl_pkcs12_read&GPHPopenssl_pkcs12_export_to_file7PHPopenssl_pkcs12_export)PHPopenssl_pbkdf2%PHPopenssl_open9PHPopenssl_get_md_methods#APHPopenssl_get_cipher_methods#APHPopenssl_get_cert_locations<-PHPopenssl_free_key5PHPopenssl_error_string+PHPopenssl_encrypt)PHPopenssl_digest9PHPopenssl_dh_compute_key+PHPopenssl_decrypt-PHPopenssl_csr_sign+PHPopenssl_csr_new ;PHPopenssl_csr_get_subject#APHPopenssl_csr_get_public_key#APHPopenssl_csr_export_to_file1PHPopenssl_csr_export!=PHPopenssl_cipher_iv_lengthPHPopenlogPHPopendir'PHPopenal_stream;1PHPopenal_source_stop:/PHPopenal_source_set95PHPopenal_source_rewind81PHPopenal_source_play73PHPopenal_source_pause6/PHPopenal_source_get57PHPopenal_source_destroy4
  N iG%hC-vS6      q N        "?PHPoutput_reset_rewrite_varso9PHPoutput_add_rewrite_varnPHPord/PHPopenssl_x509_read1PHPopenssl_x509_parse/PHPopenssl_x509_free!=PHPopenssl_x509_fingerprint@$CPHPopenssl_x509_export_to_file3PHPopenssl_x509_export"?PHPopenssl_x509_checkpurpose
'IPHPopenssl_x509_check_private_key	)PHPopenssl_verify3PHPopenssl_spki_verify?&GPHPopenssl_spki_export_challenge=3PHPopenssl_spki_export>%PHPopenssl_sign%PHPopenssl_seal$CPHPopenssl_random_pseudo_bytes9PHPopenssl_public_encrypt9PHPopenssl_public_decrypt ;PHPopenssl_private_encrypt ;PHPopenssl_private_decrypt-PHPopenssl_pkey_new  ;PHPopenssl_pkey_get_public!=PHPopenssl_pkey_get_private!=PHPopenssl_pkey_get_details/PHPopenssl_pkey_free$CPHPopenssl_pkey_export_to_file3PHPopenssl_pkey_export5PHPopenssl_pkcs7_verify   
      PHPoverloadA
   & V {Z;)fQ=)iN6"      n V  )PHPpcntl_wtermsig#)PHPpcntl_wstopsig"-PHPpcntl_wifstopped!/PHPpcntl_wifsignaled +PHPpcntl_wifexited1PHPpcntl_wifcontinuedH/PHPpcntl_wexitstatus'PHPpcntl_waitpid!PHPpcntl_wait)PHPpcntl_strerror/PHPpcntl_sigwaitinfo1PHPpcntl_sigtimedwait/PHPpcntl_sigprocmask7PHPpcntl_signal_dispatch%PHPpcntl_signal/PHPpcntl_setpriority/PHPpcntl_getpriority5PHPpcntl_get_last_error!PHPpcntl_fork!PHPpcntl_exec#PHPpcntl_alarm/PHPpcnlt_sigwaitinfoGPHPpcloseAPHPpathinfo@+PHPpassword_verify
7PHPpassword_needs_rehash
1PHPpassword_make_saltF'PHPpassword_hash
/PHPpassword_get_info
PHPpassthru7PHPparsekit_func_arginfoE ;PHPparsekit_compile_stringD7PHPparsekit_compile_fileCPHPparse_urlPHPparse_str-PHPparse_ini_string?)PHPparse_ini_file>PHPpack
   ' ` w[I5 mZG2~fN5      w `          'PHPpg_field_typeN)PHPpg_field_tableL'PHPpg_field_sizeK+PHPpg_field_prtlenJ%PHPpg_field_numI'PHPpg_field_nameH-PHPpg_field_is_nullG%PHPpg_fetch_rowF+PHPpg_fetch_resultE+PHPpg_fetch_objectD)PHPpg_fetch_assocC)PHPpg_fetch_arrayB5PHPpg_fetch_all_columns@%PHPpg_fetch_allA!PHPpg_execute?-PHPpg_escape_string>/PHPpg_escape_literal=5PHPpg_escape_identifier<+PHPpg_escape_bytea;#PHPpg_end_copy:PHPpg_delete9PHPpg_dbname8!PHPpg_copy_to7%PHPpg_copy_from6!PHPpg_convert5-PHPpg_consume_input5PHPpg_connection_status43PHPpg_connection_reset31PHPpg_connection_busy2+PHPpg_connect_poll!PHPpg_connect1PHPpg_close01PHPpg_client_encoding/+PHPpg_cancel_query.-PHPpg_affected_rows-!PHPpfsockopen#PHPpdo_drivers#PHPpdf_show_xy)PHPpdf_show_boxed
 * b yhU>&zfR:$veQ<*      { b      +PHPpg_send_preparev+PHPpg_send_executeuPHPpg_selectt-PHPpg_result_statuss)PHPpg_result_seekr7PHPpg_result_error_fieldp+PHPpg_result_errorq+PHPpg_query_paramsnPHPpg_queryo#PHPpg_put_linem!PHPpg_preparelPHPpg_portkPHPpg_pingj#PHPpg_pconnecti3PHPpg_parameter_statush!PHPpg_optionsg#PHPpg_num_rowsf'PHPpg_num_fieldse%PHPpg_meta_datad#PHPpg_lo_writec%PHPpg_lo_unlinkb)PHPpg_lo_truncatea!PHPpg_lo_tell`!PHPpg_lo_seek_)PHPpg_lo_read_all]!PHPpg_lo_read^!PHPpg_lo_open\%PHPpg_lo_import[%PHPpg_lo_exportZ%PHPpg_lo_createY#PHPpg_lo_closeX#PHPpg_last_oidW)PHPpg_last_noticeV'PHPpg_last_errorUPHPpg_insertTPHPpg_hostS'PHPpg_get_resultR!PHPpg_get_pidQ'PHPpg_get_notifyP)PHPpg_free_resultOPHPpg_flush   'PHPpg_send_queryx
 ( Z }^N3xZH5kO?,        p Z  %PHPposix_getgidx'PHPposix_geteuidv'PHPposix_getegidz%PHPposix_getcwd5PHPposix_get_last_error'PHPposix_ctermid%PHPposix_accessPHPpopenBPHPpng2wbmpPHPpi!PHPphpversionBPHPphpinfoA1PHPphpdbg_start_oplog'PHPphpdbg_prompt-PHPphpdbg_end_oplog%PHPphpdbg_color%PHPphpdbg_clear3PHPphpdbg_break_method7PHPphpdbg_break_function/PHPphpdbg_break_file%PHPphpdbg_break!PHPphpcredits@PHPphp_uname?5PHPphp_strip_whitespacee'PHPphp_sapi_name>'PHPphp_logo_guid=7PHPphp_ini_scanned_files<3PHPphp_ini_loaded_file;-PHPphp_check_syntax!PHPpg_versionPHPpg_update!PHPpg_untrace/PHPpg_unescape_bytea~PHPpg_tty}7PHPpg_transaction_status|PHPpg_trace{PHPpg_socket9PHPpg_set_error_verbosityz9PHPpg_set_client_encodingy     )PHPposix_getgrgid
   * o t\D+ybL5	{bN6"        o                   +PHPproc_get_status!PHPproc_closePHPprintfPHPprint_r]PHPprintPHPprev !PHPpreg_split)7PHPpreg_replace_callback'%PHPpreg_replace&!PHPpreg_quote*)PHPpreg_match_all%!PHPpreg_match$+PHPpreg_last_error,PHPpreg_grep+#PHPpreg_filter(PHPpow#PHPposix_uname'PHPposix_ttyname#PHPposix_times)PHPposix_strerror%PHPposix_setuidu%PHPposix_setsid'PHPposix_setpgid%PHPposix_setgidy'PHPposix_seteuidw'PHPposix_setegid{#PHPposix_mknod%PHPposix_mkfifo!PHPposix_killq%PHPposix_isatty-PHPposix_initgroups%PHPposix_getuidt%PHPposix_getsid+PHPposix_getrlimit)PHPposix_getpwuid)PHPposix_getpwnam'PHPposix_getppids%PHPposix_getpidr'PHPposix_getpgrp~'PHPposix_getpgid)PHPposix_getlogin}+PHPposix_getgroups|
   ) g nYA)nX;!v_E/        g             1PHPps_open_image_file'PHPps_open_image%PHPps_open_filePHPps_newPHPps_moveto-PHPps_makespotcolorPHPps_lineto+PHPps_include_file%PHPps_hyphenate%PHPps_get_value-PHPps_get_parameter'PHPps_get_buffer#PHPps_findfont)PHPps_fill_stroke
PHPps_fill	+PHPps_end_template)PHPps_end_pattern#PHPps_end_pagePHPps_delete!PHPps_curveto-PHPps_continue_text3PHPps_closepath_stroke%PHPps_closepath)PHPps_close_image PHPps_closePHPps_clipPHPps_circle/PHPps_begin_template-PHPps_begin_pattern'PHPps_begin_pagePHPps_arcnPHPps_arc)PHPps_add_weblink)PHPps_add_pdflink#PHPps_add_note-PHPps_add_locallink/PHPps_add_launchlink+PHPps_add_bookmark+PHPproperty_exists
)PHPproc_terminatePHPproc_open
 ( X oR6~jV?'|kYB.       x X9PHPpspell_add_to_personal%PHPps_translateR+PHPps_symbol_widthQ)PHPps_symbol_namePPHPps_symbolOPHPps_strokeN)PHPps_stringwidthM1PHPps_string_geometryL#PHPps_show_xy2J!PHPps_show_xyK'PHPps_show_boxedIPHPps_show2GPHPps_showHPHPps_shfillF1PHPps_shading_patternE!PHPps_shadingD)PHPps_setpolydashA3PHPps_setoverprintmode?-PHPps_setmiterlimit>+PHPps_setlinewidth=)PHPps_setlinejoin<'PHPps_setlinecap;!PHPps_setgray9!PHPps_setfont8!PHPps_setflat7!PHPps_setdash6#PHPps_setcolor5%PHPps_set_valueC+PHPps_set_text_posB-PHPps_set_parameter@#PHPps_set_info:3PHPps_set_border_style41PHPps_set_border_dash33PHPps_set_border_color2PHPps_scale1PHPps_save0PHPps_rotate/!PHPps_restore.PHPps_rect-)PHPps_place_image,                             
   % S nP4hJ(~iO8!       m S -PHPpx_set_blob_filee1PHPpx_retrieve_recordd'PHPpx_put_recordc!PHPpx_open_fpb'PHPpx_numrecordsa%PHPpx_numfields`PHPpx_new_-PHPpx_insert_record^%PHPpx_get_value]'PHPpx_get_schema\'PHPpx_get_record[-PHPpx_get_parameterZ#PHPpx_get_infoY%PHPpx_get_fieldX-PHPpx_delete_recordWPHPpx_deleteV)PHPpx_date2stringU%PHPpx_create_fpTPHPpx_closeSPHPputenvC)PHPpspell_suggest+!=PHPpspell_store_replacement*5PHPpspell_save_wordlist)3PHPpspell_new_personal(/PHPpspell_new_config&!PHPpspell_new' ;PHPpspell_config_save_repl%"?PHPpspell_config_runtogether$1PHPpspell_config_repl#9PHPpspell_config_personal"1PHPpspell_config_mode!5PHPpspell_config_ignore 9PHPpspell_config_dict_dir9PHPpspell_config_data_dir5PHPpspell_config_create5PHPpspell_clear_session%PHPpspell_check
   " P zfE$ eL4 |\C*     v P    %EPHPradius_request_authenticator!=PHPradius_put_vendor_string7PHPradius_put_vendor_int9PHPradius_put_vendor_attr9PHPradius_put_vendor_addr/PHPradius_put_string)PHPradius_put_int~+PHPradius_put_attr}+PHPradius_put_addr|9PHPradius_get_vendor_attr{#APHPradius_get_tagged_attr_tagz$CPHPradius_get_tagged_attr_datay+PHPradius_get_attrx!=PHPradius_demangle_mppe_keyv+PHPradius_demanglew/PHPradius_cvt_stringu)PHPradius_cvt_intt+PHPradius_cvt_addrs7PHPradius_create_requestr'PHPradius_configq%PHPradius_closep-PHPradius_auth_openo/PHPradius_add_servern-PHPradius_acct_openmPHPrad2degPHPquotemeta ;PHPquoted_printable_encodeG ;PHPquoted_printable_decodeF!PHPqdom_errorl-PHPpx_update_recordk3PHPpx_timestamp2stringj%PHPpx_set_valuei7PHPpx_set_targetencodingh-PHPpx_set_tablenameg
 $ T |fRC%n\H6~XA"      i T    #PHPrecode_file1PHPrealpath_cache_getEPHPrealpathGPHPreadlinkD9PHPreadline_write_history1PHPreadline_redisplay7PHPreadline_read_history5PHPreadline_on_new_line7PHPreadline_list_history'PHPreadline_info%EPHPreadline_completion_function9PHPreadline_clear_history$CPHPreadline_callback_read_char)MPHPreadline_callback_handler_remove*OPHPreadline_callback_handler_install5PHPreadline_add_historyPHPreadline!PHPreadgzfile
PHPreadfileCPHPreaddir%PHPrawurlencode%PHPrawurldecode ;PHPrar_wrapper_cache_stats%PHPrar_solid_is+PHPrar_comment_getPHPrar_close'PHPrar_broken_is5PHPrar_allow_broken_setPHPrange !PHPrandom_int%PHPrandom_bytesPHPrand+PHPradius_strerror5PHPradius_server_secret3PHPradius_send_request    3PHPrealpath_cache_sizeF
   ( d }nP4dTA2#q^L:"        d             ;PHPrunkit_class_emancipate1PHPrunkit_class_adoptPHPrtrimPHPrsort PHPrrd_xport#PHPrrd_version!PHPrrd_updatePHPrrd_tune#PHPrrd_restore)PHPrrd_lastupdatePHPrrd_lastPHPrrd_infoPHPrrd_graphPHPrrd_firstPHPrrd_fetchPHPrrd_error!PHPrrd_create#PHPrpm_versionPHPrpm_open%PHPrpm_is_valid#PHPrpm_get_tagPHPrpm_closePHProundPHPrmdirJPHPrewinddirPHPrewindI5PHPrestore_include_pathD"?PHPrestore_exception_handler7PHPrestore_error_handler9PHPresourcebundle_locales)MPHPresourcebundle_get_error_message&GPHPresourcebundle_get_error_code1PHPresourcebundle_get5PHPresourcebundle_countPHPreset %PHPrequire_once
+PHPrename_functionPHPrenameH9PHPregister_tick_functiona#APHPregister_shutdown_function`
   " a aA!
fH&oX:       a                     7PHPsession_is_registered!PHPsession_id"?PHPsession_get_cookie_params)PHPsession_encode+PHPsession_destroy)PHPsession_decode/PHPsession_create_id7PHPsession_cache_limiter5PHPsession_cache_expire'PHPsession_abortPHPserializeX!PHPsem_remove#PHPsem_releasePHPsem_get#PHPsem_acquirePHPscandir3PHPrunkit_superglobals&GPHPrunkit_sandbox_output_handler!=PHPrunkit_return_value_used5PHPrunkit_method_rename5PHPrunkit_method_remove9PHPrunkit_method_redefine1PHPrunkit_method_copy/PHPrunkit_method_add-PHPrunkit_lint_file#PHPrunkit_lint'PHPrunkit_import9PHPrunkit_function_rename9PHPrunkit_function_remove!=PHPrunkit_function_redefine5PHPrunkit_function_copy3PHPrunkit_function_add9PHPrunkit_constant_remove!=PHPrunkit_constant_redefine
 % Y jM,];$kXE/        n Y       #PHPshm_get_var!PHPshm_detach!PHPshm_attach!PHPshell_exec#PHPsha256_filePHPsha256PHPsha1_filePHPsha1PHPsettype)PHPsetthreadtitle%PHPsetrawcookien%PHPsetproctitlePHPsetlocalePHPsetcookiem)PHPset_time_limitG =PHPset_magic_quotes_runtimeF-PHPset_include_pathE3PHPsession_write_close'PHPsession_unset1PHPsession_unregister)PHPsession_status'PHPsession_start!=PHPsession_set_save_handler"?PHPsession_set_cookie_params/PHPsession_save_path'PHPsession_reset"?PHPsession_register_shutdown-PHPsession_register7PHPsession_regenerate_id5PHPsession_pgsql_status ;PHPsession_pgsql_set_field3PHPsession_pgsql_reset ;PHPsession_pgsql_get_field ;PHPsession_pgsql_get_error ;PHPsession_pgsql_add_error%PHPsession_name       #PHPshm_has_var
   ( d mXC2}n[D+|[D'     z d            %PHPsnmprealwalk#PHPsnmpgetnextPHPsnmpget ;PHPsnmp_set_valueretrieval5PHPsnmp_set_quick_print#APHPsnmp_set_oid_output_format#APHPsnmp_set_oid_numeric_print3PHPsnmp_set_enum_print'PHPsnmp_read_mib ;PHPsnmp_get_valueretrieval5PHPsnmp_get_quick_print!PHPsnmp3_walkPHPsnmp3_set+PHPsnmp3_real_walk'PHPsnmp3_getnextPHPsnmp3_get!PHPsnmp2_walkPHPsnmp2_set+PHPsnmp2_real_walk'PHPsnmp2_getnextPHPsnmp2_getPHPsleepPHPsizeof
PHPsinhPHPsin7PHPsimplexml_load_string3PHPsimplexml_load_file5PHPsimplexml_import_dom%PHPsimilar_text-PHPsigneurlpaiementPHPshuffle #PHPshow_source#PHPshmop_write!PHPshmop_size!PHPshmop_read!PHPshmop_open%PHPshmop_delete#PHPshmop_close)PHPshm_remove_var!PHPshm_remove
   & _ {`H1kT?*gL3       _            ;PHPspl_autoload_extensions/PHPspl_autoload_call%PHPspl_autoload PHPsoundexPHPsort -PHPsolr_get_version-PHPsolid_fetch_prev%PHPsocket_write+PHPsocket_strerror+PHPsocket_shutdown/PHPsocket_set_option3PHPsocket_set_nonblock-PHPsocket_set_block'PHPsocket_sendto)PHPsocket_sendmsg#PHPsocket_send'PHPsocket_select)PHPsocket_recvmsg+PHPsocket_recvfrom#PHPsocket_recv#PHPsocket_read'PHPsocket_listen/PHPsocket_last_error5PHPsocket_import_stream1PHPsocket_getsockname1PHPsocket_getpeername/PHPsocket_get_option1PHPsocket_create_pair5PHPsocket_create_listen'PHPsocket_create)PHPsocket_connect/PHPsocket_cmsg_space%PHPsocket_close1PHPsocket_clear_error#PHPsocket_bind'PHPsocket_accept#PHPsnmpwalkoidPHPsnmpwalk
 $ V rcSB-nV9x[@'      q V      /PHPsqlite_num_fields&#PHPsqlite_next%/PHPsqlite_libversion$1PHPsqlite_libencoding#!=PHPsqlite_last_insert_rowid"/PHPsqlite_last_error!!PHPsqlite_key+PHPsqlite_has_prev+PHPsqlite_has_more/PHPsqlite_field_name3PHPsqlite_fetch_single3PHPsqlite_fetch_object"?PHPsqlite_fetch_column_types1PHPsqlite_fetch_array-PHPsqlite_fetch_all)PHPsqlite_factory#PHPsqlite_exec5PHPsqlite_escape_string3PHPsqlite_error_string)PHPsqlite_current9PHPsqlite_create_function ;PHPsqlite_create_aggregate'PHPsqlite_column%PHPsqlite_close)PHPsqlite_changes3PHPsqlite_busy_timeout1PHPsqlite_array_query#PHPsql_regcasePHPsprintfPHPsplitiPHPsplit+PHPspl_object_hash#PHPspl_classes ;PHPspl_autoload_unregister7PHPspl_autoload_register      +PHPsqlite_num_rows'
   $ P vT2y_G0u[B&      l P1PHPsqlsrv_server_infoL ;PHPsqlsrv_send_stream_dataK5PHPsqlsrv_rows_affectedJ+PHPsqlsrv_rollbackI%PHPsqlsrv_queryH)PHPsqlsrv_prepareG+PHPsqlsrv_num_rowsF/PHPsqlsrv_num_fieldsE1PHPsqlsrv_next_resultD+PHPsqlsrv_has_rowsC-PHPsqlsrv_get_fieldB/PHPsqlsrv_get_configA-PHPsqlsrv_free_stmt@7PHPsqlsrv_field_metadata?3PHPsqlsrv_fetch_object=1PHPsqlsrv_fetch_array<%PHPsqlsrv_fetch>)PHPsqlsrv_execute;'PHPsqlsrv_errors:)PHPsqlsrv_connect9-PHPsqlsrv_configure8'PHPsqlsrv_commit7%PHPsqlsrv_close61PHPsqlsrv_client_info5'PHPsqlsrv_cancel4!=PHPsqlsrv_begin_transaction3%PHPsqlite_valid2 ;PHPsqlite_unbuffered_query1!=PHPsqlite_udf_encode_binary0!=PHPsqlite_udf_decode_binary/3PHPsqlite_single_query.#PHPsqlite_seek-'PHPsqlite_rewind,%PHPsqlite_query+#PHPsqlite_prev*%PHPsqlite_popen)
 $ W v];#iM0hL0       y W       !=PHPstats_absolute_deviationPHPstatK#PHPssh2_tunneli!PHPssh2_shellh-PHPssh2_sftp_unlinkf/PHPssh2_sftp_symlinke)PHPssh2_sftp_statd+PHPssh2_sftp_rmdirc-PHPssh2_sftp_renameb1PHPssh2_sftp_realpatha1PHPssh2_sftp_readlink`+PHPssh2_sftp_mkdir_+PHPssh2_sftp_lstat^+PHPssh2_sftp_chmod]PHPssh2_sftpg'PHPssh2_scp_send\'PHPssh2_scp_recv[7PHPssh2_publickey_removeZ3PHPssh2_publickey_listY3PHPssh2_publickey_initX1PHPssh2_publickey_addW ;PHPssh2_methods_negotiatedV-PHPssh2_fingerprintU/PHPssh2_fetch_streamTPHPssh2_execS%PHPssh2_connectR7PHPssh2_auth_pubkey_fileQ1PHPssh2_auth_passwordP)PHPssh2_auth_noneO!=PHPssh2_auth_hostbased_fileN+PHPssh2_auth_agentM#APHPssdeep_fuzzy_hash_filename/PHPssdeep_fuzzy_hash5PHPssdeep_fuzzy_comparePHPsscanfPHPsrand             
   ! S vaH-tY>$	gK.     o S         1PHPstats_dens_weibull%PHPstats_dens_t9PHPstats_dens_pmf_poisson &GPHPstats_dens_pmf_hypergeometric ;PHPstats_dens_pmf_binomial/PHPstats_dens_normal%EPHPstats_dens_negative_binomial3PHPstats_dens_logistic1PHPstats_dens_laplace-PHPstats_dens_gamma%PHPstats_dens_f9PHPstats_dens_exponential5PHPstats_dens_chisquare/PHPstats_dens_cauchy+PHPstats_dens_beta/PHPstats_den_uniform-PHPstats_covariance/PHPstats_cdf_weibull/PHPstats_cdf_uniform#PHPstats_cdf_t/PHPstats_cdf_poisson9PHPstats_cdf_noncentral_f'IPHPstats_cdf_noncentral_chisquare$CPHPstats_cdf_negative_binomial1PHPstats_cdf_logistic/PHPstats_cdf_laplace+PHPstats_cdf_gamma#PHPstats_cdf_f7PHPstats_cdf_exponential3PHPstats_cdf_chisquare-PHPstats_cdf_cauchy1PHPstats_cdf_binomial)PHPstats_kurtosis
    ^ a?e@!}[9     } ^                            7PHPstats_stat_percentile"3PHPstats_stat_paired_t! ;PHPstats_stat_noncentral_t  ;PHPstats_stat_innerproduct!=PHPstats_stat_independent_t/PHPstats_stat_gennch9PHPstats_stat_correlation!=PHPstats_stat_binomial_coef!=PHPstats_standard_deviation!PHPstats_skew/PHPstats_rand_setall+PHPstats_rand_ranf#APHPstats_rand_phrase_to_seeds5PHPstats_rand_get_seeds-PHPstats_rand_gen_t7PHPstats_rand_gen_normal$CPHPstats_rand_gen_noncentral_t$CPHPstats_rand_gen_noncentral_f+QPHPstats_rand_gen_noncenral_chisquare ;PHPstats_rand_gen_iuniform ;PHPstats_rand_gen_ipoisson1PHPstats_rand_gen_int*OPHPstats_rand_gen_ibinomial_negative!=PHPstats_rand_gen_ibinomial5PHPstats_rand_gen_gamma
 ;PHPstats_rand_gen_funiform	-PHPstats_rand_gen_f#APHPstats_rand_gen_exponential!=PHPstats_rand_gen_chisquare
 & \ ycL/u\A* s_O?.      \        #APHPstream_context_get_default7PHPstream_context_create7PHPstream_bucket_prependk/PHPstream_bucket_newm%EPHPstream_bucket_make_writeablej5PHPstream_bucket_appendlPHPstrcspnPHPstrcollPHPstrcmp7PHPstrchr6!PHPstrcasecmp
)PHPstr_word_countPHPstr_split#PHPstr_shufflePHPstr_rot13g#PHPstr_replace!PHPstr_repeatPHPstr_pad%PHPstr_ireplace!PHPstr_getcsv'PHPstomp_version5/PHPstomp_unsubscribe4+PHPstomp_subscribe39PHPstomp_set_read_timeout2!PHPstomp_send1-PHPstomp_read_frame0+PHPstomp_has_frame/5PHPstomp_get_session_id.9PHPstomp_get_read_timeout-#PHPstomp_error,3PHPstomp_connect_error*'PHPstomp_connect+%PHPstomp_commit)#PHPstomp_close(#PHPstomp_begin'PHPstomp_ack&#PHPstomp_abort%)PHPstats_variance$                            
  G rO0cJ,~_?#     e G 5PHPstream_socket_sendto1PHPstream_socket_pair9PHPstream_socket_get_name$CPHPstream_socket_enable_crypto5PHPstream_socket_client5PHPstream_socket_accept ;PHPstream_set_write_buffer1PHPstream_set_timeout9PHPstream_set_read_buffer7PHPstream_set_chunk_size93PHPstream_set_blocking'PHPstream_select$CPHPstream_resolve_include_path+PHPstream_is_local3PHPstream_get_wrappers7PHPstream_get_transports5PHPstream_get_meta_data+PHPstream_get_line1PHPstream_get_filtersh3PHPstream_get_contents5PHPstream_filter_remove9PHPstream_filter_registeri7PHPstream_filter_prepend5PHPstream_filter_append+PHPstream_encoding87PHPstream_copy_to_stream"?PHPstream_context_set_params"?PHPstream_context_set_option#APHPstream_context_set_default"?PHPstream_context_get_params   9PHPstream_socket_recvfrom
 * k c@.|k[I8(}eO7       k               %PHPsvn_checkoutEPHPsvn_catDPHPsvn_blameC9PHPsvn_auth_set_parameterB9PHPsvn_auth_get_parameterAPHPsvn_add@ ;PHPsuhosin_get_raw_cookies?9PHPsuhosin_encrypt_cookie>)PHPsubstr_replace%PHPsubstr_count=)PHPsubstr_comparePHPsubstr
PHPstrvalPHPstrtr!PHPstrtoupper
PHPstrtotime!PHPstrtolower
PHPstrtokPHPstrstr
PHPstrspnPHPstrrpos
PHPstrrevPHPstrrchr<PHPstrptimePHPstrpos
PHPstrpbrkPHPstrncmp;#PHPstrncasecmp:PHPstrnatcmp'PHPstrnatcasecmpPHPstrlen
PHPstristr
%PHPstripslashes'PHPstripcslashes!PHPstrip_tagsPHPstrftime"?PHPstream_wrapper_unregister9PHPstream_wrapper_restore ;PHPstream_wrapper_register5PHPstream_supports_lock9PHPstream_socket_shutdown   	     #PHPsvn_cleanupF
 $ [ |aF%
gP8pW:&     v [           /PHPsvn_repos_hotcopyj ;PHPsvn_repos_fs_commit_txnh*OPHPsvn_repos_fs_begin_txn_for_commitg%PHPsvn_repos_fsi-PHPsvn_repos_createfPHPsvn_mkdirePHPsvn_lsdPHPsvn_logc!PHPsvn_importb3PHPsvn_fs_youngest_reva+PHPsvn_fs_txn_root`5PHPsvn_fs_revision_root_5PHPsvn_fs_revision_prop^5PHPsvn_fs_props_changed]-PHPsvn_fs_node_prop\ ;PHPsvn_fs_node_created_rev[-PHPsvn_fs_make_fileZ+PHPsvn_fs_make_dirY)PHPsvn_fs_is_fileX'PHPsvn_fs_is_dirW1PHPsvn_fs_file_lengthV5PHPsvn_fs_file_contentsU1PHPsvn_fs_dir_entriesT'PHPsvn_fs_deleteS#PHPsvn_fs_copyR ;PHPsvn_fs_contents_changedQ/PHPsvn_fs_check_pathP ;PHPsvn_fs_change_node_propO/PHPsvn_fs_begin_txn2N/PHPsvn_fs_apply_textM-PHPsvn_fs_abort_txnL!PHPsvn_exportKPHPsvn_diffJ!PHPsvn_deleteI!PHPsvn_commitH   )PHPsvn_repos_openk    Q   kM.{P.]=     Q               ,KRecursiveCallbackFilterIteratorcurrent  "9RecursiveArrayIteratoruasort  ~)RangeExceptiongetLine  }%#PharFileInfogetFilename U  |#7PharDatasetSignatureAlgorithm 
  {%;PharDatagetSupportedCompression   z'PharDatacompressFiles  y3PharisValidPharFilename  xPhardelete  w$)-ParentIteratorgetInnerIterator  v#PHPyaz_present  u+QPHPxsl_xsltprocessor_transform_to_urit  t#APHPxmlwriter_start_dtd_entityF  s5PHPxmlrpc_server_create
p  r&GPHPxml_get_current_column_number  q3PHPwincache_ucache_get  p5PHPwddx_serialize_value
c  o#PHPvariant_set  n+PHPudm_open_stored  m+PHPtrader_typprice  l+PHPtrader_maxindexW  k/PHPtrader_cdltristar1  j-PHPtrader_cdlharami  i+PHPtrader_aroonosc  h/PHPtidy_get_html_ver  g1PHPsybase_fetch_assoc  f%PHPswf_openfile  d/PHPsvn_repos_recoverl
   & U y\?'
waJ0 r[E.       n U +PHPswf_oncondition%PHPswf_mulcolor-PHPswf_modifyobject!PHPswf_lookat)PHPswf_labelframe%PHPswf_getframe+PHPswf_getfontinfo/PHPswf_getbitmapinfo-PHPswf_fonttracking'PHPswf_fontslant%PHPswf_fontsize'PHPswf_endsymbol%PHPswf_endshape+PHPswf_enddoaction'PHPswf_endbutton)PHPswf_definetext)PHPswf_definerect)PHPswf_definepoly)PHPswf_defineline)PHPswf_definefont~-PHPswf_definebitmap}'PHPswf_closefile|%PHPswf_addcolor{3PHPswf_addbuttonrecordz9PHPswf_actionwaitforframey ;PHPswf_actiontogglequalityx)PHPswf_actionstopw3PHPswf_actionsettargetv3PHPswf_actionprevframeu)PHPswf_actionplayt3PHPswf_actionnextframes3PHPswf_actiongotolabelr3PHPswf_actiongotoframeq-PHPswf_actiongeturlp!PHPsvn_updateo!PHPsvn_statusn!PHPsvn_revertm!PHPswf_nextid
   % g ycK1
sR8 kR;$      g                     1PHPsybase_fetch_array$CPHPsybase_deadlock_retry_count-PHPsybase_data_seek)PHPsybase_connect%PHPsybase_close5PHPsybase_affected_rows%PHPswf_viewport'PHPswf_translate'PHPswf_textwidth+PHPswf_startsymbol)PHPswf_startshape/PHPswf_startdoaction+PHPswf_startbutton'PHPswf_showframe+PHPswf_shapemoveto+PHPswf_shapelineto1PHPswf_shapelinesolid1PHPswf_shapefillsolid-PHPswf_shapefilloff ;PHPswf_shapefillbitmaptile ;PHPswf_shapefillbitmapclip/PHPswf_shapecurveto3-PHPswf_shapecurveto%PHPswf_shapearc%PHPswf_setframe#PHPswf_setfontPHPswf_scale!PHPswf_rotate-PHPswf_removeobject)PHPswf_pushmatrix%PHPswf_posround'PHPswf_popmatrix'PHPswf_polarview+PHPswf_placeobject+PHPswf_perspective!PHPswf_ortho2PHPswf_ortho
   $ j vU1xbK1{n`I8$	      j                          7PHPtidy_get_error_buffer+PHPtidy_get_config-PHPtidy_error_count
\'PHPtidy_diagnose/PHPtidy_config_count
_/PHPtidy_clean_repair/PHPtidy_access_count
^!PHPtextdomainPHPtempnamM'PHPtcpwrap_checkPHPtanhPHPtanPHPtaintPHPsystemPHPsyslog)PHPsys_getloadavgA-PHPsys_get_temp_dirHPHPsymlinkL ;PHPsybase_unbuffered_query#APHPsybase_set_message_handler-PHPsybase_select_db'PHPsybase_result%PHPsybase_query+PHPsybase_pconnect+PHPsybase_num_rows/PHPsybase_num_fields#APHPsybase_min_server_severity$CPHPsybase_min_message_severity"?PHPsybase_min_error_severity#APHPsybase_min_client_severity ;PHPsybase_get_last_message1PHPsybase_free_result/PHPsybase_field_seek-PHPsybase_fetch_row3PHPsybase_fetch_object1PHPsybase_fetch_field
   & X qZE+tfN4tR4#        n X    %PHPtrader_aroon#PHPtrader_adxr!PHPtrader_adx%PHPtrader_adosc!PHPtrader_addPHPtrader_ad#PHPtrader_acosPHPtouchO!PHPtoken_name
b'PHPtoken_get_all
aPHPtmpfileN5PHPtimezone_version_get!=PHPtimezone_transitions_get3PHPtimezone_offset_get/PHPtimezone_name_get ;PHPtimezone_name_from_abbr7PHPtimezone_location_get"?PHPtimezone_identifiers_list$CPHPtimezone_abbreviations_list-PHPtime_sleep_until)PHPtime_nanosleepPHPtime1PHPtidy_warning_count
]#PHPtidy_setopt/PHPtidy_set_encoding-PHPtidy_save_config/PHPtidy_reset_config1PHPtidy_repair_string-PHPtidy_repair_file-PHPtidy_load_config#PHPtidy_is_xml'PHPtidy_is_xhtml#PHPtidy_getopt+PHPtidy_get_status-PHPtidy_get_release+PHPtidy_get_output
Z-PHPtidy_get_opt_doc!PHPtrader_apo
   ! M }iU;bB&	gK*     k M   5PHPtrader_cdlhangingman-PHPtrader_cdlhammer!=PHPtrader_cdlgravestonedoji#APHPtrader_cdlgapsidesidewhite7PHPtrader_cdleveningstar"?PHPtrader_cdleveningdojistar3PHPtrader_cdlengulfing
 ;PHPtrader_cdldragonflydoji	1PHPtrader_cdldojistar)PHPtrader_cdldoji!=PHPtrader_cdldarkcloudcover ;PHPtrader_cdlcounterattack#APHPtrader_cdlconcealbabyswall"?PHPtrader_cdlclosingmarubozu3PHPtrader_cdlbreakaway1PHPtrader_cdlbelthold9PHPtrader_cdladvanceblock  ;PHPtrader_cdlabandonedbaby!=PHPtrader_cdl3whitesoldiers ;PHPtrader_cdl3starsinsouth1PHPtrader_cdl3outside7PHPtrader_cdl3linestrike/PHPtrader_cdl3inside7PHPtrader_cdl3blackcrows-PHPtrader_cdl2crows!PHPtrader_cci!PHPtrader_bop#PHPtrader_beta'PHPtrader_bbands+PHPtrader_avgprice!PHPtrader_atr#PHPtrader_atan#PHPtrader_asin
    J lI/qU6`=      g J    3PHPtrader_cdlthrusting03PHPtrader_cdltasukigap/-PHPtrader_cdltakuri. ;PHPtrader_cdlsticksandwich-!=PHPtrader_cdlstalledpattern,7PHPtrader_cdlspinningtop+3PHPtrader_cdlshortline*9PHPtrader_cdlshootingstar)"?PHPtrader_cdlseparatinglines(#APHPtrader_cdlrisefall3methods'7PHPtrader_cdlrickshawman&1PHPtrader_cdlpiercing%-PHPtrader_cdlonneck$7PHPtrader_cdlmorningstar#"?PHPtrader_cdlmorningdojistar"/PHPtrader_cdlmathold!7PHPtrader_cdlmatchinglow 1PHPtrader_cdlmarubozu1PHPtrader_cdllongline!=PHPtrader_cdllongleggeddoji9PHPtrader_cdlladderbottom"?PHPtrader_cdlkickingbylength/PHPtrader_cdlkicking!=PHPtrader_cdlinvertedhammer-PHPtrader_cdlinneck"?PHPtrader_cdlidentical3crows9PHPtrader_cdlhomingpigeon5PHPtrader_cdlhikkakemod/PHPtrader_cdlhikkake1PHPtrader_cdlhighwave7PHPtrader_cdlharamicross
 % e ~iU>* jF*tT0       z e                   #PHPtrader_mavpU#PHPtrader_mamaT)PHPtrader_macdfixS)PHPtrader_macdextR#PHPtrader_macdQPHPtrader_maP%PHPtrader_log10OPHPtrader_lnN9PHPtrader_linearreg_slopeM#APHPtrader_linearreg_interceptL9PHPtrader_linearreg_angleJ-PHPtrader_linearregK#PHPtrader_kamaI3PHPtrader_ht_trendmodeH3PHPtrader_ht_trendlineG)PHPtrader_ht_sineF-PHPtrader_ht_phasorE/PHPtrader_ht_dcphaseD1PHPtrader_ht_dcperiodC#APHPtrader_get_unstable_periodB/PHPtrader_get_compatA%PHPtrader_floor@!PHPtrader_exp?%PHPtrader_errno>!PHPtrader_ema=PHPtrader_dx<!PHPtrader_div;#PHPtrader_dema:#PHPtrader_cosh9!PHPtrader_cos8'PHPtrader_correl7!PHPtrader_cmo6#PHPtrader_ceil5#APHPtrader_cdlxsidegap3methods4"?PHPtrader_cdlupsidegap2crows39PHPtrader_cdlunique3river2      !PHPtrader_maxV
 * a t[D(t`L7"
ybL5       v a     #PHPtrader_trix%PHPtrader_trima'PHPtrader_trange~#PHPtrader_tema}#PHPtrader_tanh|!PHPtrader_tan{PHPtrader_t3z!PHPtrader_sumy!PHPtrader_subx+PHPtrader_stochrsiw'PHPtrader_stochfv%PHPtrader_stochu'PHPtrader_stddevt#PHPtrader_sqrts!PHPtrader_smar#PHPtrader_sinhq!PHPtrader_sinp'PHPtrader_sarexto!PHPtrader_sarn!PHPtrader_rsim)PHPtrader_rocr100k#PHPtrader_rocrl#PHPtrader_rocpj!PHPtrader_roci!PHPtrader_ppoh)PHPtrader_plus_dmg)PHPtrader_plus_dif!PHPtrader_obve#PHPtrader_natrd#PHPtrader_multc!PHPtrader_momb+PHPtrader_minus_dma+PHPtrader_minus_di`1PHPtrader_minmaxindex_'PHPtrader_minmax^+PHPtrader_minindex]!PHPtrader_min\+PHPtrader_midprice[+PHPtrader_midpointZ!PHPtrader_mfiY+PHPtrader_medpriceX    !PHPtrader_tsf
   % h |U+
oV7o\I7      h                      5PHPudm_load_ispell_data!PHPudm_hash32/PHPudm_get_res_param/PHPudm_get_res_field/PHPudm_get_doc_count%PHPudm_free_res5PHPudm_free_ispell_data)PHPudm_free_agentPHPudm_findPHPudm_errorPHPudm_errnoPHPudm_crc32-PHPudm_close_stored ;PHPudm_clear_search_limits-PHPudm_check_stored/PHPudm_check_charset%PHPudm_cat_path%PHPudm_cat_list+PHPudm_api_version7PHPudm_alloc_agent_array+PHPudm_alloc_agent5PHPudm_add_search_limitPHPucwordsPHPucfirstPHPuasort PHPtrim'PHPtrigger_error%EPHPtransliterator_transliterate ;PHPtransliterator_list_ids)MPHPtransliterator_get_error_message&GPHPtransliterator_get_error_code%PHPtrait_exists
!PHPtrader_wma%PHPtrader_willr+PHPtrader_wclprice!PHPtrader_var'PHPtrader_ultosc
   + lyiG2#o]I4
mXC)        l              #PHPvariant_pow!PHPvariant_or#PHPvariant_not#PHPvariant_neg#PHPvariant_mul#PHPvariant_mod#PHPvariant_int#PHPvariant_imp%PHPvariant_idiv-PHPvariant_get_type#PHPvariant_fix#PHPvariant_eqv#PHPvariant_div"?PHPvariant_date_to_timestamp$CPHPvariant_date_from_timestamp#PHPvariant_cmp#PHPvariant_cat%PHPvariant_cast#PHPvariant_and#PHPvariant_add#PHPvariant_abs!PHPvar_export[PHPvar_dumpZ#PHPutf8_encode#PHPutf8_decodePHPusort PHPusleep9PHPuse_soap_error_handlerPHPurlencodePHPurldecode!PHPuopz_flagsPHPuntaintPHPunset#PHPunserializeY!=PHPunregister_tick_functionbPHPunpackPHPunlinkQPHPunixtojdXPHPuniqidEPHPumaskPPHPuksort 3PHPudm_set_agent_param  'PHPvariant_round
 " Q }lI#pT4n]K3      l Q     /PHPwddx_packet_start
e+PHPwddx_packet_end
f-PHPwddx_deserialize
h'PHPwddx_add_vars
g9PHPw32api_set_call_method!=PHPw32api_register_function9PHPw32api_invoke_function/PHPw32api_init_dtype)PHPw32api_deftypePHPvsprintfPHPvprintf ;PHPvpopmail_set_user_quota+PHPvpopmail_passwd)PHPvpopmail_error/PHPvpopmail_del_user9PHPvpopmail_del_domain_ex3PHPvpopmail_del_domain1PHPvpopmail_auth_user9PHPvpopmail_alias_get_all1PHPvpopmail_alias_get"?PHPvpopmail_alias_del_domain1PHPvpopmail_alias_del1PHPvpopmail_alias_add/PHPvpopmail_add_user9PHPvpopmail_add_domain_ex3PHPvpopmail_add_domain%EPHPvpopmail_add_alias_domain_ex"?PHPvpopmail_add_alias_domainPHPvirtualPHPvfprintf+PHPversion_compareI#PHPvariant_xor#PHPvariant_sub-PHPvariant_set_type                    
    H _B%
^B ^=      h H    9PHPwincache_ucache_exists9PHPwincache_ucache_delete3PHPwincache_ucache_dec7PHPwincache_ucache_clear3PHPwincache_ucache_cas3PHPwincache_ucache_add ;PHPwincache_scache_meminfo5PHPwincache_scache_info ;PHPwincache_rplist_meminfo!=PHPwincache_rplist_fileinfo$CPHPwincache_refresh_if_changed ;PHPwincache_ocache_meminfo!=PHPwincache_ocache_fileinfo'PHPwincache_lock ;PHPwincache_fcache_meminfo!=PHPwincache_fcache_fileinfo1PHPwin32_stop_service,SPHPwin32_start_service_ctrl_dispatcher3PHPwin32_start_service!=PHPwin32_set_service_status#APHPwin32_query_service_status1PHPwin32_ps_stat_proc/PHPwin32_ps_stat_mem3PHPwin32_ps_list_procs3PHPwin32_pause_service'IPHPwin32_get_last_control_message5PHPwin32_delete_service5PHPwin32_create_service9PHPwin32_continue_service3PHPwddx_serialize_vars
d
 ! Q jQ?,iI.}b@#     u Q       #APHPxml_get_current_byte_index-PHPxml_error_string7PHPxhprof_sample_disable)PHPxhprof_disable5PHPxdiff_string_rabdiff"?PHPxdiff_string_patch_binary1PHPxdiff_string_patch3PHPxdiff_string_merge3!=PHPxdiff_string_diff_binary/PHPxdiff_string_diff3PHPxdiff_string_bpatch ;PHPxdiff_string_bdiff_size1PHPxdiff_string_bdiff1PHPxdiff_file_rabdiff ;PHPxdiff_file_patch_binary	-PHPxdiff_file_patch
/PHPxdiff_file_merge39PHPxdiff_file_diff_binary+PHPxdiff_file_diff/PHPxdiff_file_bpatch7PHPxdiff_file_bdiff_size-PHPxdiff_file_bdiff+PHPxattr_supportedPHPxattr_set%PHPxattr_remove !PHPxattr_listPHPxattr_getPHPwordwrap+PHPwincache_unlock3PHPwincache_ucache_set ;PHPwincache_ucache_meminfo5PHPwincache_ucache_info3PHPwincache_ucache_inc                            
  R fK-l@vH1      R                  -UPHPxmlrpc_server_add_introspection_data
u)MPHPxmlrpc_parse_method_descriptions
t+PHPxmlrpc_is_fault
o+PHPxmlrpc_get_type
m7PHPxmlrpc_encode_request
l'PHPxmlrpc_encode
i7PHPxmlrpc_decode_request
k'PHPxmlrpc_decode
j-UPHPxml_set_unparsed_entity_decl_handler,-UPHPxml_set_start_namespace_decl_handler+/YPHPxml_set_processing_instruction_handler*)PHPxml_set_object)&GPHPxml_set_notation_decl_handler(,SPHPxml_set_external_entity_ref_handler'+QPHPxml_set_end_namespace_decl_handler& ;PHPxml_set_element_handler% ;PHPxml_set_default_handler$'IPHPxml_set_character_data_handler#7PHPxml_parser_set_option"7PHPxml_parser_get_option!+PHPxml_parser_free 5PHPxml_parser_create_ns/PHPxml_parser_create7PHPxml_parse_into_structPHPxml_parse1PHPxml_get_error_code$CPHPxml_get_current_line_number   "?PHPxmlrpc_server_call_method
s
    C jI,jK1zU2     h C $CPHPxmlwriter_start_dtd_elementE$CPHPxmlwriter_start_dtd_attlistC3PHPxmlwriter_start_dtdD!=PHPxmlwriter_start_documentB ;PHPxmlwriter_start_commentA7PHPxmlwriter_start_cdata@%EPHPxmlwriter_start_attribute_ns?"?PHPxmlwriter_start_attribute>$CPHPxmlwriter_set_indent_string=5PHPxmlwriter_set_indent< ;PHPxmlwriter_output_memory;1PHPxmlwriter_open_uri:7PHPxmlwriter_open_memory9#APHPxmlwriter_full_end_element8+PHPxmlwriter_flush7-PHPxmlwriter_end_pi67PHPxmlwriter_end_element5!=PHPxmlwriter_end_dtd_entity4"?PHPxmlwriter_end_dtd_element3"?PHPxmlwriter_end_dtd_attlist1/PHPxmlwriter_end_dtd29PHPxmlwriter_end_document07PHPxmlwriter_end_comment/3PHPxmlwriter_end_cdata. ;PHPxmlwriter_end_attribute-+PHPxmlrpc_set_type
n&GPHPxmlrpc_server_register_method
r6gPHPxmlrpc_server_register_introspection_callback
v7PHPxmlrpc_server_destroy
q
    X d>sR.c6    X                            -UPHPxsl_xsltprocessor_set_security_prefss(KPHPxsl_xsltprocessor_set_profilingr(KPHPxsl_xsltprocessor_set_parameterq+QPHPxsl_xsltprocessor_remove_parameterp1]PHPxsl_xsltprocessor_register_php_functionso,SPHPxsl_xsltprocessor_has_exslt_supportn-UPHPxsl_xsltprocessor_get_security_prefsm(KPHPxsl_xsltprocessor_get_parameterl9PHPxpath_register_ns_autoW/PHPxpath_register_nsX3PHPxmlwriter_write_rawV1PHPxmlwriter_write_piU#APHPxmlwriter_write_element_nsT ;PHPxmlwriter_write_elementS#APHPxmlwriter_write_dtd_entityR$CPHPxmlwriter_write_dtd_elementQ$CPHPxmlwriter_write_dtd_attlistO3PHPxmlwriter_write_dtdP ;PHPxmlwriter_write_commentN7PHPxmlwriter_write_cdataM%EPHPxmlwriter_write_attribute_nsL"?PHPxmlwriter_write_attributeK)PHPxmlwriter_textJ1PHPxmlwriter_start_piI#APHPxmlwriter_start_element_nsH ;PHPxmlwriter_start_elementG
   ' YrT?+qX:kS>(        q Y   )PHPyaz_get_option'PHPyaz_es_resultPHPyaz_esPHPyaz_error~PHPyaz_errno}#PHPyaz_element|%PHPyaz_database{#PHPyaz_connectzPHPyaz_closey'PHPyaz_ccl_parsex%PHPyaz_ccl_confw#PHPyaz_addinfov)PHPyaml_parse_url
+PHPyaml_parse_file
!PHPyaml_parse
)PHPyaml_emit_file
PHPyaml_emit
#PHPxslt_setoptg!=PHPxslt_set_scheme_handlersj ;PHPxslt_set_scheme_handlerk7PHPxslt_set_sax_handlersh5PHPxslt_set_sax_handleri+PHPxslt_set_objectf%PHPxslt_set_loge9PHPxslt_set_error_handlerd/PHPxslt_set_encodingc'PHPxslt_set_baseb%PHPxslt_processa#PHPxslt_getopt`PHPxslt_free_!PHPxslt_error^!PHPxslt_errno]#PHPxslt_create\5PHPxslt_backend_version[/PHPxslt_backend_nameZ/PHPxslt_backend_infoY+QPHPxsl_xsltprocessor_transform_to_xmlu   'PHPyaz_itemorderPHPyaz_hits
 ( b qYG3!q_H1	u]E3!      b          )#ParentIteratorgetChildren)ParentIteratorcurrent)ParentIteratoraccept)#ParentIterator__construct5PHPzlib_get_coding_type
#PHPzlib_encode#PHPzlib_decodePHPzip_read
PHPzip_open
)PHPzip_entry_read
)PHPzip_entry_open
)PHPzip_entry_name
1PHPzip_entry_filesize
$CPHPzip_entry_compressionmethod
!=PHPzip_entry_compressedsize
+PHPzip_entry_close
PHPzip_close
%PHPzend_versionL)PHPzend_thread_idK)PHPzend_logo_guidJPHPyp_order
PHPyp_next
PHPyp_match
PHPyp_master
7PHPyp_get_default_domain
PHPyp_first
PHPyp_errno
'PHPyp_err_string
PHPyp_cat
PHPyp_all
PHPyaz_wait!PHPyaz_syntaxPHPyaz_sort)PHPyaz_set_option!PHPyaz_search!PHPyaz_schema+PHPyaz_scan_resultPHPyaz_scan!PHPyaz_recordPHPyaz_range                    
   ' W z`H,y`?)uYC0       m W #PhardelMetadata!PhardecompressPharcurrent/PharcreateDefaultStubPharcountPharcopy3PharconvertToExecutable'PharconvertToData'PharcompressFilesPharcompressPharcanWrite#PharcanCompress/PharbuildFromIterator1PharbuildFromDirectory!PharapiVersion'PharaddFromStringPharaddFile#PharaddEmptyDir'Phar_bad_state_ex!Phar__toString!Phar__destruct#Phar__construct !-ParseErrorgetTraceAsString!ParseErrorgetTrace!#ParseErrorgetPrevious!!ParseErrorgetMessage!ParseErrorgetLine!ParseErrorgetFile!ParseErrorgetCode!ParseError__wakeup!!ParseError__toString!#ParseError__construct!ParseError__clone)ParentIteratorvalid)ParentIteratorrewind)ParentIteratornext)ParentIteratorkey)#ParentIteratorhasChildren+PhardecompressFiles
   + l pZD1ycP:#|gQ;        l              !PharisReadablePharisLink%PharisFileFormatPharisFile%PharisExecutablePharisDotPharisDir%PharisCompressed#PharisBuffering1PharinterceptFileFuncs#PharhasMetadata#PharhasChildren!PhargetVersionPhargetType 9PhargetSupportedSignatures!;PhargetSupportedCompression)PhargetSubPathname!PhargetSubPathPhargetStubPhargetSize%PhargetSignature#PhargetRealPathPhargetPerms#PhargetPathname#PhargetPathInfoPhargetPathPhargetOwner#PhargetModified#PhargetMetadataPhargetMTime'PhargetLinkTargetPhargetInodePhargetGroupPhargetFlags#PhargetFilename#PhargetFileInfo%PhargetExtension#PhargetChildrenPhargetCTime#PhargetBasenamePhargetAliasPhargetATimePharextractTo
 ) m ufO;'v_I)y`D*      m                   PharDatacanWrite #PharDatacanCompress /PharDatabuildFromIterator 1PharDatabuildFromDirectory!PharDataapiVersion 'PharDataaddFromStringPharDataaddFile#PharDataaddEmptyDir'PharData_bad_state_ex D!PharData__toString -!PharData__destruct#PharData__constructPharwebPharPharvalid'PharunlinkArchive'PharstopBuffering)PharstartBufferingPharsetStub7PharsetSignatureAlgorithm#PharsetMetadata%PharsetInfoClassPharsetFlags%PharsetFileClass)PharsetDefaultStubPharsetAliasPharseekPharrunningPharrewindPharopenFile#PharoffsetUnsetPharoffsetSetPharoffsetGet%PharoffsetExistsPharnext!PharmungServerPharmountPharmapPharPharloadPharPharkey!PharisWritable      PharDatacompress
   % d {eL.nS9s\F,       d                  )PharDatagetSubPathname  !PharDatagetSubPath PharDatagetStubPharDatagetSize 1%PharDatagetSignature#PharDatagetRealPath >PharDatagetPerms /#PharDatagetPathname .#PharDatagetPathInfo @PharDatagetPathPharDatagetOwner 2#PharDatagetModified#PharDatagetMetadataPharDatagetMTime 5'PharDatagetLinkTarget =PharDatagetInode 0PharDatagetGroup 3PharDatagetFlags %#PharDatagetFilename '#PharDatagetFileInfo ?%PharDatagetExtension (#PharDatagetChildren PharDatagetCTime 6#PharDatagetBasename )PharDatagetAliasPharDatagetATime 4PharDataextractToPharDatadelete#PharDatadelMetadata+PharDatadecompressFiles!PharDatadecompressPharDatacurrent $/PharDatacreateDefaultStub PharDatacountPharDatacopy!3PharDataconvertToExecutable'PharDataconvertToData
 % f lR1t[9 nV<%       f                    %PharDatasetInfoClass CPharDatasetFlags &%PharDatasetFileClass B)PharDatasetDefaultStub PharDatasetAlias PharDataseek ,PharDatarunning PharDatarewind !PharDataopenFile A#PharDataoffsetUnset PharDataoffsetSet PharDataoffsetGet %PharDataoffsetExists PharDatanext "!PharDatamungServer PharDatamount PharDatamapPhar PharDataloadPhar PharDatakey #!PharDataisWritable !3PharDataisValidPharFilename !PharDataisReadable 8PharDataisLink <%PharDataisFileFormat PharDataisFile :%PharDataisExecutable 9PharDataisDot *PharDataisDir ;%PharDataisCompressed  #PharDataisBuffering 1PharDatainterceptFileFuncs #PharDatahasMetadata#PharDatahasChildren !PharDatagetVersionPharDatagetType 7$9PharDatagetSupportedSignatures            #PharDatasetMetadata 	
 ! P q]G,dE)uZ=     o P      %%PharFileInfogetExtension V%!PharFileInfogetContent M#%/PharFileInfogetCompressedSize K%PharFileInfogetCTime `%PharFileInfogetCRC32 L%#PharFileInfogetBasename W%PharFileInfogetATime ^%#PharFileInfodelMetadata J%!PharFileInfodecompress I%PharFileInfocompress H%PharFileInfochmod G%'PharFileInfo_bad_state_ex o%!PharFileInfo__toString p%!PharFileInfo__destruct F%#PharFileInfo__construct E#'-PharExceptiongetTraceAsString'PharExceptiongetTrace'#PharExceptiongetPrevious'!PharExceptiongetMessage}'PharExceptiongetLine'PharExceptiongetFile'PharExceptiongetCode~'PharException__wakeup|'!PharException__toString'#PharException__construct{'PharException__clonezPharDatawebPhar PharDatavalid +'PharDataunlinkArchive 'PharDatastopBuffering )PharDatastartBuffering PharDatasetStub      %#PharFileInfogetFileInfo j
   ! LqS8 pV8tW<      h L  )RangeExceptiongetCode)RangeException__wakeup)!RangeException__toString)#RangeException__construct)RangeException__clone%#PharFileInfosetMetadata S%%PharFileInfosetInfoClass n%%PharFileInfosetFileClass m%PharFileInfoopenFile l%!PharFileInfoisWritable b%!PharFileInfoisReadable c%PharFileInfoisLink g%PharFileInfoisFile e%%PharFileInfoisExecutable d%PharFileInfoisDir f%%PharFileInfoisCompressed Q%%PharFileInfoisCRCChecked R%#PharFileInfohasMetadata P%PharFileInfogetType a%PharFileInfogetSize [%#PharFileInfogetRealPath i%%PharFileInfogetPharFlags O%PharFileInfogetPerms Y%#PharFileInfogetPathname X%#PharFileInfogetPathInfo k%PharFileInfogetPath T%PharFileInfogetOwner \%#PharFileInfogetMetadata N%PharFileInfogetMTime _%'PharFileInfogetLinkTarget h%PharFileInfogetInode Z%PharFileInfogetGroup ]  )RangeExceptiongetFile
    S W4{V.V0
    x S                       $9RecursiveArrayIteratorsetFlags%9RecursiveArrayIteratorserialize 9RecursiveArrayIteratorseek"9RecursiveArrayIteratorrewind'9#RecursiveArrayIteratoroffsetUnset%9RecursiveArrayIteratoroffsetSet%9RecursiveArrayIteratoroffsetGet(9%RecursiveArrayIteratoroffsetExists 9RecursiveArrayIteratornext#9RecursiveArrayIteratornatsort'9#RecursiveArrayIteratornatcasesort!9RecursiveArrayIteratorksort9RecursiveArrayIteratorkey'9#RecursiveArrayIteratorhasChildren$9RecursiveArrayIteratorgetFlags'9#RecursiveArrayIteratorgetChildren(9%RecursiveArrayIteratorgetArrayCopy#9RecursiveArrayIteratorcurrent!9RecursiveArrayIteratorcount!9RecursiveArrayIteratorasort"9RecursiveArrayIteratorappend'9#RecursiveArrayIterator__construct$)-RangeExceptiongetTraceAsString)RangeExceptiongetTrace)#RangeExceptiongetPrevious)!RangeExceptiongetMessage
    H i@~O%g?    t H                +KRecursiveCallbackFilterIteratoraccept0K#RecursiveCallbackFilterIterator__construct#=RecursiveCachingIteratorvalid&=RecursiveCachingIteratorsetFlags"$=RecursiveCachingIteratorrewind)=#RecursiveCachingIteratoroffsetUnset%'=RecursiveCachingIteratoroffsetSet$'=RecursiveCachingIteratoroffsetGet#*=%RecursiveCachingIteratoroffsetExists&"=RecursiveCachingIteratornext!=RecursiveCachingIteratorkey%=RecursiveCachingIteratorhasNext)=#RecursiveCachingIteratorhasChildren.=-RecursiveCachingIteratorgetInnerIterator &=RecursiveCachingIteratorgetFlags!)=#RecursiveCachingIteratorgetChildren&=RecursiveCachingIteratorgetCache'%=RecursiveCachingIteratorcurrent#=RecursiveCachingIteratorcount((=!RecursiveCachingIterator__toString)=#RecursiveCachingIterator__construct!9RecursiveArrayIteratorvalid'9#RecursiveArrayIteratorunserialize"9RecursiveArrayIteratoruksort
    9 h?g9g:    g 9     -A'RecursiveDirectoryIteratorgetLinkTargetR(ARecursiveDirectoryIteratorgetInodeD(ARecursiveDirectoryIteratorgetGroupG(ARecursiveDirectoryIteratorgetFlags8+A#RecursiveDirectoryIteratorgetFilename:+A#RecursiveDirectoryIteratorgetFileInfoT,A%RecursiveDirectoryIteratorgetExtension;+A#RecursiveDirectoryIteratorgetChildren1(ARecursiveDirectoryIteratorgetCTimeJ+A#RecursiveDirectoryIteratorgetBasename<(ARecursiveDirectoryIteratorgetATimeH'ARecursiveDirectoryIteratorcurrent7-A'RecursiveDirectoryIterator_bad_state_exY*A!RecursiveDirectoryIterator__toString@+A#RecursiveDirectoryIterator__construct/*KRecursiveCallbackFilterIteratorvalid+KRecursiveCallbackFilterIteratorrewind)KRecursiveCallbackFilterIteratornext(KRecursiveCallbackFilterIteratorkey0K#RecursiveCallbackFilterIteratorhasChildren5K-RecursiveCallbackFilterIteratorgetInnerIterator0K#RecursiveCallbackFilterIteratorgetChildren
  M Z.W/c<    t M                       &ARecursiveDirectoryIteratorrewind4(ARecursiveDirectoryIteratoropenFileV$ARecursiveDirectoryIteratornext5#ARecursiveDirectoryIteratorkey6*A!RecursiveDirectoryIteratorisWritableL*A!RecursiveDirectoryIteratorisReadableM&ARecursiveDirectoryIteratorisLinkQ&ARecursiveDirectoryIteratorisFileO,A%RecursiveDirectoryIteratorisExecutableN%ARecursiveDirectoryIteratorisDot=%ARecursiveDirectoryIteratorisDirP+A#RecursiveDirectoryIteratorhasChildren0'ARecursiveDirectoryIteratorgetTypeK.A)RecursiveDirectoryIteratorgetSubPathname3*A!RecursiveDirectoryIteratorgetSubPath2'ARecursiveDirectoryIteratorgetSizeE+A#RecursiveDirectoryIteratorgetRealPathS(ARecursiveDirectoryIteratorgetPermsC+A#RecursiveDirectoryIteratorgetPathnameB+A#RecursiveDirectoryIteratorgetPathInfoU'ARecursiveDirectoryIteratorgetPathA(ARecursiveDirectoryIteratorgetOwnerF   $ARecursiveDirectoryIteratorseek?    H   sS,qL&qR+	     c H            !SplMaxHeaprewindc  '#SplFixedArray__constructy  '#SplFileObjectgetFileInfo  #SplFileInfoisFile  3SplDoublyLinkedListprev  !'SoapServeraddSoapHeader"4  /SimpleXMLIteratorrewind"  "-%SimpleXMLElementaddAttribute"  'SQLite3lastErrorCodeC  'RegexIteratorrewindJ  !1ReflectionPropertyisDefault!  3ReflectionParameterexport   !-#ReflectionObjecthasConstant!X  "-%ReflectionObjectgetConstants!Y  !-#ReflectionMethodinNamespace    3ReflectionGeneratorgetThis   0A-ReflectionFunctionAbstractgetNamespaceName   $1%ReflectionFunctiongetStartLine   %3%ReflectionExtensiongetFunctions!  .;/ReflectionClassConstantgetDeclaringClass!  "+'ReflectionClassgetTraitNames!+  +ReflectionClassexport!  (7'RecursiveTreeIteratorbeginChildrenp  *?#RecursiveIteratorIteratorgetMaxDepth  ,A%RecursiveDirectoryIteratorsetFileClassW
    N [7qO+S$    ~ N                        /?-RecursiveIteratorIteratorgetInnerIterator'?RecursiveIteratorIteratorgetDepth+?%RecursiveIteratorIteratorendIteration*?#RecursiveIteratorIteratorendChildren&?RecursiveIteratorIteratorcurrent.?+RecursiveIteratorIteratorcallHasChildren.?+RecursiveIteratorIteratorcallGetChildren-?)RecursiveIteratorIteratorbeginIteration,?'RecursiveIteratorIteratorbeginChildren*?#RecursiveIteratorIterator__construct";RecursiveFilterIteratorvalid#;RecursiveFilterIteratorrewind!;RecursiveFilterIteratornext ;RecursiveFilterIteratorkey(;#RecursiveFilterIteratorhasChildren-;-RecursiveFilterIteratorgetInnerIterator(;#RecursiveFilterIteratorgetChildren$;RecursiveFilterIteratorcurrent#;RecursiveFilterIteratoraccept(;#RecursiveFilterIterator__construct%ARecursiveDirectoryIteratorvalid>,A%RecursiveDirectoryIteratorsetInfoClassX(ARecursiveDirectoryIteratorsetFlags9
  D `5tP(d<     f D          !9RecursiveRegexIteratorvalid\(9%RecursiveRegexIteratorsetPregFlagsY#9RecursiveRegexIteratorsetModeU$9RecursiveRegexIteratorsetFlagsW"9RecursiveRegexIteratorrewind[ 9RecursiveRegexIteratornext_9RecursiveRegexIteratorkey]'9#RecursiveRegexIteratorhasChildrenR$9RecursiveRegexIteratorgetRegexZ(9%RecursiveRegexIteratorgetPregFlagsX#9RecursiveRegexIteratorgetModeT,9-RecursiveRegexIteratorgetInnerIterator`$9RecursiveRegexIteratorgetFlagsV'9#RecursiveRegexIteratorgetChildrenS#9RecursiveRegexIteratorcurrent^"9RecursiveRegexIteratoracceptQ'9#RecursiveRegexIterator__constructP$?RecursiveIteratorIteratorvalid*?#RecursiveIteratorIteratorsetMaxDepth%?RecursiveIteratorIteratorrewind*?#RecursiveIteratorIteratornextElement#?RecursiveIteratorIteratornext"?RecursiveIteratorIteratorkey-?)RecursiveIteratorIteratorgetSubIterator   &7#RecursiveTreeIterator__constructf
  @ W4qJ$oM&     ~ a @     +#ReflectionClass__construct!+ReflectionClass__clone! !-ReflectiongetModifierNames |!Reflectionexport } 7RecursiveTreeIteratorvalidh(7'RecursiveTreeIteratorsetPrefixPartt%7!RecursiveTreeIteratorsetPostfixv&7#RecursiveTreeIteratorsetMaxDepth{!7RecursiveTreeIteratorrewindg&7#RecursiveTreeIteratornextElementr7RecursiveTreeIteratornextk7RecursiveTreeIteratorkeyi)7)RecursiveTreeIteratorgetSubIteratory$7RecursiveTreeIteratorgetPrefixs%7!RecursiveTreeIteratorgetPostfixw&7#RecursiveTreeIteratorgetMaxDepth|+7-RecursiveTreeIteratorgetInnerIteratorz#7RecursiveTreeIteratorgetEntryu#7RecursiveTreeIteratorgetDepthx'7%RecursiveTreeIteratorendIterationm&7#RecursiveTreeIteratorendChildrenq"7RecursiveTreeIteratorcurrentj*7+RecursiveTreeIteratorcallHasChildrenn*7+RecursiveTreeIteratorcallGetChildreno)7)RecursiveTreeIteratorbeginIterationl   	     +!ReflectionClass__toString!
  < }S0]>rQ&     a <$++ReflectionClassgetTraitAliases!,++9ReflectionClassgetStaticPropertyValue!8(+3ReflectionClassgetStaticProperties!7!+%ReflectionClassgetStartLine!!+%ReflectionClassgetShortName!B++9ReflectionClassgetReflectionConstants!$*+7ReflectionClassgetReflectionConstant!& +#ReflectionClassgetProperty! "+'ReflectionClassgetProperties!!#+)ReflectionClassgetParentClass!5%+-ReflectionClassgetNamespaceName!A+ReflectionClassgetName!!+%ReflectionClassgetModifiers!0+!ReflectionClassgetMethods!+ReflectionClassgetMethod!"+'ReflectionClassgetInterfaces!'&+/ReflectionClassgetInterfaceNames!( +#ReflectionClassgetFileName!%+-ReflectionClassgetExtensionName!?!+%ReflectionClassgetExtension!>+!ReflectionClassgetEndLine!"+'ReflectionClassgetDocComment!)+5ReflectionClassgetDefaultProperties!:#+)ReflectionClassgetConstructor!!+%ReflectionClassgetConstants!# +#ReflectionClassgetConstant!%                           
    N W6sR2lG    r N                #;ReflectionClassConstantexport!';!ReflectionClassConstant__toString!(;#ReflectionClassConstant__construct!$;ReflectionClassConstant__clone!++9ReflectionClasssetStaticPropertyValue!92+GReflectionClassnewInstanceWithoutConstructor!3$++ReflectionClassnewInstanceArgs!4 +#ReflectionClassnewInstance!2"+'ReflectionClassisUserDefined!+ReflectionClassisTrait!-!+%ReflectionClassisSubclassOf!6"+'ReflectionClassisIterateable!<+!ReflectionClassisIterable!;+!ReflectionClassisInternal! +#ReflectionClassisInterface!)#+)ReflectionClassisInstantiable!+!ReflectionClassisInstance!1+ReflectionClassisFinal!/ +#ReflectionClassisCloneable! +#ReflectionClassisAnonymous!+!ReflectionClassisAbstract!. +#ReflectionClassinNamespace!@(+3ReflectionClassimplementsInterface!= +#ReflectionClasshasProperty!+ReflectionClasshasMethod! +#ReflectionClasshasConstant!"+ReflectionClassgetTraits!*
  < |W1
uQ/a7     b <%3%ReflectionExtensiongetConstants!#3!ReflectionExtensiongetClasses!&3'ReflectionExtensiongetClassNames!3ReflectionExtensionexport!#3!ReflectionExtension__toString!$3#ReflectionExtension__construct! 3ReflectionExtension__clone!)3-ReflectionExceptiongetTraceAsString z!3ReflectionExceptiongetTrace x$3#ReflectionExceptiongetPrevious y#3!ReflectionExceptiongetMessage t 3ReflectionExceptiongetLine w 3ReflectionExceptiongetFile v 3ReflectionExceptiongetCode u!3ReflectionException__wakeup s#3!ReflectionException__toString {$3#ReflectionException__construct r 3ReflectionException__clone q%;ReflectionClassConstantisPublic!(;#ReflectionClassConstantisProtected!&;ReflectionClassConstantisPrivate!%;ReflectionClassConstantgetValue!$;ReflectionClassConstantgetName!);%ReflectionClassConstantgetModifiers!*;'ReflectionClassConstantgetDocComment!     (3+ReflectionExtensiongetDependencies!
    TnP*\/qM-   z T                          %1'ReflectionFunctiongetReturnType %1'ReflectionFunctiongetParameters 51GReflectionFunctiongetNumberOfRequiredParameters -17ReflectionFunctiongetNumberOfParameters (1-ReflectionFunctiongetNamespaceName 1ReflectionFunctiongetName #1#ReflectionFunctiongetFileName (1-ReflectionFunctiongetExtensionName $1%ReflectionFunctiongetExtension "1!ReflectionFunctiongetEndLine %1'ReflectionFunctiongetDocComment &1)ReflectionFunctiongetClosureThis ,15ReflectionFunctiongetClosureScopeClass "1!ReflectionFunctiongetClosure 1ReflectionFunctionexport "1!ReflectionFunction__toString #1#ReflectionFunction__construct 1ReflectionFunction__clone $3#ReflectionExtensionisTemporary!%3%ReflectionExtensionisPersistent!3ReflectionExtensioninfo!#3!ReflectionExtensiongetVersion! 3ReflectionExtensiongetName!&3'ReflectionExtensiongetINIEntries! $1%ReflectionFunctiongetShortName 
    = lI'rO&wH    e =     'AReflectionFunctionAbstractgetName +A#ReflectionFunctionAbstractgetFileName 0A-ReflectionFunctionAbstractgetExtensionName ,A%ReflectionFunctionAbstractgetExtension *A!ReflectionFunctionAbstractgetEndLine -A'ReflectionFunctionAbstractgetDocComment .A)ReflectionFunctionAbstractgetClosureThis 4A5ReflectionFunctionAbstractgetClosureScopeClass &AReflectionFunctionAbstractexport *A!ReflectionFunctionAbstract__toString 'AReflectionFunctionAbstract__clone ~(1-ReflectionFunctionreturnsReference "1!ReflectionFunctionisVariadic %1'ReflectionFunctionisUserDefined "1!ReflectionFunctionisInternal #1#ReflectionFunctionisGenerator "1!ReflectionFunctionisDisabled $1%ReflectionFunctionisDeprecated !1ReflectionFunctionisClosure "1!ReflectionFunctioninvokeArgs 1ReflectionFunctioninvoke #1#ReflectionFunctioninNamespace %1'ReflectionFunctionhasReturnType *11ReflectionFunctiongetStaticVariables 
  8 [-rDj<    b 8      )3-ReflectionGeneratorgetExecutingLine .37ReflectionGeneratorgetExecutingGenerator )3-ReflectionGeneratorgetExecutingFile $3#ReflectionGenerator__construct 0A-ReflectionFunctionAbstractreturnsReference *A!ReflectionFunctionAbstractisVariadic -A'ReflectionFunctionAbstractisUserDefined *A!ReflectionFunctionAbstractisInternal +A#ReflectionFunctionAbstractisGenerator ,A%ReflectionFunctionAbstractisDeprecated )AReflectionFunctionAbstractisClosure +A#ReflectionFunctionAbstractinNamespace -A'ReflectionFunctionAbstracthasReturnType 2A1ReflectionFunctionAbstractgetStaticVariables ,A%ReflectionFunctionAbstractgetStartLine ,A%ReflectionFunctionAbstractgetShortName -A'ReflectionFunctionAbstractgetReturnType -A'ReflectionFunctionAbstractgetParameters =AGReflectionFunctionAbstractgetNumberOfRequiredParameters 5A7ReflectionFunctionAbstractgetNumberOfParameters            $3#ReflectionGeneratorgetFunction 
    P }`?_8N*    t P                    #-'ReflectionMethodhasReturnType!(-1ReflectionMethodgetStaticVariables!	"-%ReflectionMethodgetStartLine!"-%ReflectionMethodgetShortName!#-'ReflectionMethodgetReturnType!"-%ReflectionMethodgetPrototype #-'ReflectionMethodgetParameters!3-GReflectionMethodgetNumberOfRequiredParameters!+-7ReflectionMethodgetNumberOfParameters!&--ReflectionMethodgetNamespaceName!-ReflectionMethodgetName!"-%ReflectionMethodgetModifiers !-#ReflectionMethodgetFileName!&--ReflectionMethodgetExtensionName! "-%ReflectionMethodgetExtension  -!ReflectionMethodgetEndLine #-'ReflectionMethodgetDocComment '-/ReflectionMethodgetDeclaringClass $-)ReflectionMethodgetClosureThis *-5ReflectionMethodgetClosureScopeClass  -!ReflectionMethodgetClosure -ReflectionMethodexport  -!ReflectionMethod__toString !-#ReflectionMethod__construct -ReflectionMethod__clone !3ReflectionGeneratorgetTrace 
    Y _;tR3c?     v Y                         -ReflectionObjectexport!C -!ReflectionObject__toString!F!-#ReflectionObject__construct!D-ReflectionObject__clone!E"3ReflectionNamedTypeisBuiltin  3ReflectionNamedTypegetName #3!ReflectionNamedTypeallowsNull #3!ReflectionNamedType__toString  3ReflectionNamedType__clone #-'ReflectionMethodsetAccessible &--ReflectionMethodreturnsReference!
 -!ReflectionMethodisVariadic #-'ReflectionMethodisUserDefined -ReflectionMethodisStatic -ReflectionMethodisPublic !-#ReflectionMethodisProtected -ReflectionMethodisPrivate  -!ReflectionMethodisInternal !-#ReflectionMethodisGenerator -ReflectionMethodisFinal "-%ReflectionMethodisDestructor "-%ReflectionMethodisDeprecated #-'ReflectionMethodisConstructor -ReflectionMethodisClosure  -!ReflectionMethodisAbstract  -!ReflectionMethodinvokeArgs -ReflectionMethodinvoke !-#ReflectionObjectgetConstant![
    <iH%pO,|P#     ` <#-'ReflectionObjectgetTraitNames!a%-+ReflectionObjectgetTraitAliases!b,-9ReflectionObjectgetStaticPropertyValue!n)-3ReflectionObjectgetStaticProperties!m"-%ReflectionObjectgetStartLine!N"-%ReflectionObjectgetShortName!x,-9ReflectionObjectgetReflectionConstants!Z+-7ReflectionObjectgetReflectionConstant!\!-#ReflectionObjectgetProperty!V#-'ReflectionObjectgetProperties!W$-)ReflectionObjectgetParentClass!k&--ReflectionObjectgetNamespaceName!w-ReflectionObjectgetName!G"-%ReflectionObjectgetModifiers!f -!ReflectionObjectgetMethods!T-ReflectionObjectgetMethod!S#-'ReflectionObjectgetInterfaces!]'-/ReflectionObjectgetInterfaceNames!^!-#ReflectionObjectgetFileName!M&--ReflectionObjectgetExtensionName!u"-%ReflectionObjectgetExtension!t -!ReflectionObjectgetEndLine!O#-'ReflectionObjectgetDocComment!P*-5ReflectionObjectgetDefaultProperties!p$-)ReflectionObjectgetConstructor!Q   -ReflectionObjectgetTraits!`
    Y rQ/fE!t@     Y                             +31ReflectionParametercanBePassedByValue #3!ReflectionParameterallowsNull #3!ReflectionParameter__toString $3#ReflectionParameter__construct  3ReflectionParameter__clone ,-9ReflectionObjectsetStaticPropertyValue!o3-GReflectionObjectnewInstanceWithoutConstructor!i%-+ReflectionObjectnewInstanceArgs!j!-#ReflectionObjectnewInstance!h#-'ReflectionObjectisUserDefined!I-ReflectionObjectisTrait!c"-%ReflectionObjectisSubclassOf!l#-'ReflectionObjectisIterateable!r -!ReflectionObjectisIterable!q -!ReflectionObjectisInternal!H!-#ReflectionObjectisInterface!_$-)ReflectionObjectisInstantiable!K -!ReflectionObjectisInstance!g-ReflectionObjectisFinal!e!-#ReflectionObjectisCloneable!L!-#ReflectionObjectisAnonymous!J -!ReflectionObjectisAbstract!d!-#ReflectionObjectinNamespace!v)-3ReflectionObjectimplementsInterface!s!-#ReflectionObjecthasProperty!U-ReflectionObjecthasMethod!R
    H \'~Z)d@     i H               1ReflectionPropertygetValue!~1ReflectionPropertygetName!}$1%ReflectionPropertygetModifiers!%1'ReflectionPropertygetDocComment!)1/ReflectionPropertygetDeclaringClass!1ReflectionPropertyexport!z"1!ReflectionProperty__toString!|#1#ReflectionProperty__construct!{1ReflectionProperty__clone!y#3!ReflectionParameterisVariadic ,33ReflectionParameterisPassedByReference #3!ReflectionParameterisOptional /39ReflectionParameterisDefaultValueConstant 03;ReflectionParameterisDefaultValueAvailable #3!ReflectionParameterisCallable  3ReflectionParameterisArray  3ReflectionParameterhasType  3ReflectionParametergetType $3#ReflectionParametergetPosition  3ReflectionParametergetName 43CReflectionParametergetDefaultValueConstantName (3+ReflectionParametergetDefaultValue -35ReflectionParametergetDeclaringFunction *3/ReflectionParametergetDeclaringClass !3ReflectionParametergetClass 
    C a;}T,nF'     w [ C 'RegexIteratornextN'RegexIteratorgetRegexI'%RegexIteratorgetPregFlagsG'RegexIteratorgetModeC#'-RegexIteratorgetInnerIteratorO'RegexIteratorgetFlagsE'RegexIteratorcurrentM'RegexIteratoracceptB'#RegexIterator__constructA';!ReflectionZendExtensiongetVersion!#;ReflectionZendExtensiongetURL!$;ReflectionZendExtensiongetName!);%ReflectionZendExtensiongetCopyright!&;ReflectionZendExtensiongetAuthor!#;ReflectionZendExtensionexport!';!ReflectionZendExtension__toString!(;#ReflectionZendExtension__construct!$;ReflectionZendExtension__clone!)ReflectionTypeisBuiltin )!ReflectionTypeallowsNull )!ReflectionType__toString )ReflectionType__clone  1ReflectionPropertysetValue!%1'ReflectionPropertysetAccessible! 1ReflectionPropertyisStatic! 1ReflectionPropertyisPublic!#1#ReflectionPropertyisProtected!!1ReflectionPropertyisPrivate!'RegexIteratorkeyL
   Z vV<!	eD%iB)      t Z                  %SQLite3escapeStringH-SQLite3enableExceptionsP)SQLite3createFunctionL+SQLite3createCollationN+SQLite3createAggregateMSQLite3close?SQLite3changesG#SQLite3busyTimeoutE#SQLite3__constructQ&--RuntimeExceptiongetTraceAsString|-RuntimeExceptiongetTracez!-#RuntimeExceptiongetPrevious{ -!RuntimeExceptiongetMessagev-RuntimeExceptiongetLiney-RuntimeExceptiongetFilex-RuntimeExceptiongetCodew-RuntimeException__wakeupu -!RuntimeException__toString}!-#RuntimeException__constructt-RuntimeException__clones)!ResourceBundlegetLocales#)+ResourceBundlegetErrorMessage )%ResourceBundlegetErrorCode)ResourceBundleget)ResourceBundlecreate)ResourceBundlecount )#ResourceBundle__construct'RegexIteratorvalidK'%RegexIteratorsetPregFlagsH'RegexIteratorsetModeD'RegexIteratorsetFlagsF       SQLite3exec@
 # Q kVC*bI,ybL2      r Q    -!SimpleXMLElement__toString"!-#SimpleXMLElement__construct!)SessionHandlerwrite4)SessionHandlerread3)SessionHandleropen1)SessionHandlergc6)SessionHandlerdestroy5)!SessionHandlercreate_sid7)SessionHandlerclose2%SQLiteResultkey #SQLite3StmtresetT#SQLite3StmtreadOnlyY#!SQLite3StmtparamCountR#SQLite3StmtexecuteV#SQLite3StmtcloseS#SQLite3StmtclearU#SQLite3StmtbindValueX#SQLite3StmtbindParamW##SQLite3Stmt__constructZ'SQLite3Resultreset_'!SQLite3ResultnumColumns['SQLite3Resultfinalize`'!SQLite3ResultfetchArray^'!SQLite3ResultcolumnType]'!SQLite3ResultcolumnName\'#SQLite3Result__constructaSQLite3versionA#SQLite3querySingleKSQLite3queryJSQLite3prepareISQLite3openBlobOSQLite3open>'SQLite3loadExtensionF+SQLite3lastInsertRowIDB%SQLite3lastErrorMsgD                          
    ^ iB$ vT0uR*     ^                              -/9SimpleXMLIteratorregisterXPathNamespace"/SimpleXMLIteratornext"/SimpleXMLIteratorkey""/#SimpleXMLIteratorhasChildren"$/'SimpleXMLIteratorgetNamespaces"/SimpleXMLIteratorgetName"'/-SimpleXMLIteratorgetDocNamespaces""/#SimpleXMLIteratorgetChildren"/SimpleXMLIteratorcurrent"
/SimpleXMLIteratorcount"/SimpleXMLIteratorchildren"!/!SimpleXMLIteratorattributes"/SimpleXMLIteratorasXML"/SimpleXMLIteratoraddChild"#/%SimpleXMLIteratoraddAttribute"!/!SimpleXMLIterator__toString""/#SimpleXMLIterator__construct"-SimpleXMLElementxpath!-SimpleXMLElementsaveXML!,-9SimpleXMLElementregisterXPathNamespace!#-'SimpleXMLElementgetNamespaces"-SimpleXMLElementgetName"&--SimpleXMLElementgetDocNamespaces"-SimpleXMLElementcount"-SimpleXMLElementchildren"  -!SimpleXMLElementattributes!-SimpleXMLElementasXML!-SimpleXMLElementaddChild"
   ! \nW;kP4u]F/      w \                  !!SoapServerSoapServer",SoapParamSoapParam"A!!SoapHeaderSoapHeader"B-SoapFaultgetTraceAsString"@SoapFaultgetTrace">#SoapFaultgetPrevious"?!SoapFaultgetMessage":SoapFaultgetLine"=SoapFaultgetFile"<SoapFaultgetCode";SoapFault__wakeup"9!SoapFault__toString"6#SoapFault__construct"8SoapFault__clone"7SoapFaultSoapFault"5!!SoapClient__soapCall" !-SoapClient__setSoapHeaders"*!'SoapClient__setLocation")!#SoapClient__setCookie"'!!SoapClient__getTypes"%(!=SoapClient__getLastResponseHeaders"#!!/SoapClient__getLastResponse"!'!;SoapClient__getLastRequestHeaders"" !-SoapClient__getLastRequest" !)SoapClient__getFunctions"$!%SoapClient__getCookies"(!#SoapClient__doRequest"&!SoapClient__call"!!SoapClientSoapClient"/SimpleXMLIteratorxpath"/SimpleXMLIteratorvalid"	/SimpleXMLIteratorsaveXML"  !#SoapServeraddFunction"0
    FeF1{^>}\3     k F$3#SplDoublyLinkedListoffsetUnset	"3SplDoublyLinkedListoffsetSet"3SplDoublyLinkedListoffsetGet%3%SplDoublyLinkedListoffsetExists3SplDoublyLinkedListnext3SplDoublyLinkedListkey 3SplDoublyLinkedListisEmpty(3+SplDoublyLinkedListgetIteratorMode 3SplDoublyLinkedListcurrent3SplDoublyLinkedListcount3SplDoublyLinkedListbottom3SplDoublyLinkedListadd
%+-SodiumExceptiongetTraceAsString"L+SodiumExceptiongetTrace"J +#SodiumExceptiongetPrevious"K+!SodiumExceptiongetMessage"F+SodiumExceptiongetLine"I+SodiumExceptiongetFile"H+SodiumExceptiongetCode"G+SodiumException__wakeup"E+!SodiumException__toString"M +#SodiumException__construct"D+SodiumException__clone"CSoapVarSoapVar"+!)SoapServersetPersistence"-!SoapServersetObject"/!SoapServersetClass".!SoapServerhandle"2!%SoapServergetFunctions"1!SoapServerfault"3 3SplDoublyLinkedListpop
     \ X9~_E(cI/      s \                    #SplFileInfoisDir#SplFileInfogetType#SplFileInfogetSize##SplFileInfogetRealPath#SplFileInfogetPerms##SplFileInfogetPathname##SplFileInfogetPathInfo#SplFileInfogetPath#SplFileInfogetOwner#SplFileInfogetMTime#'SplFileInfogetLinkTarget#SplFileInfogetInode#SplFileInfogetGroup##SplFileInfogetFilename##SplFileInfogetFileInfo#%SplFileInfogetExtension#SplFileInfogetCTime##SplFileInfogetBasename#SplFileInfogetATime#'SplFileInfo_bad_state_ex#!SplFileInfo__toString##SplFileInfo__construct3SplDoublyLinkedListvalid 3SplDoublyLinkedListunshift$3#SplDoublyLinkedListunserialize3SplDoublyLinkedListtop 3SplDoublyLinkedListshift(3+SplDoublyLinkedListsetIteratorMode"3SplDoublyLinkedListserialize3SplDoublyLinkedListrewind3SplDoublyLinkedListpush#%SplFileInfoisExecutable
 ! R ~`B#dK1{bE+     r R        '%SplFileObjectgetExtension!')SplFileObjectgetCurrentLine ''SplFileObjectgetCsvControl'#SplFileObjectgetChildren'SplFileObjectgetCTime'#SplFileObjectgetBasename'SplFileObjectgetATime'SplFileObjectfwrite'SplFileObjectftruncate'SplFileObjectftell'SplFileObjectfstat'SplFileObjectfseek'SplFileObjectfscanf'SplFileObjectfread'SplFileObjectfputcsv'SplFileObjectfpassthru'SplFileObjectflock'SplFileObjectfgetss'SplFileObjectfgets'SplFileObjectfgetcsv'SplFileObjectfgetc'SplFileObjectfflush'SplFileObjecteof'SplFileObjectcurrent ''SplFileObject_bad_state_ex'!SplFileObject__toString'#SplFileObject__construct#%SplFileInfosetInfoClass#%SplFileInfosetFileClass#SplFileInfoopenFile#!SplFileInfoisWritable#!SplFileInfoisReadable#SplFileInfoisLink                       
   ! M lP/dI*jR6     f M   'SplFileObjectvalid ''SplFileObjectsetMaxLineLen'%SplFileObjectsetInfoClass'SplFileObjectsetFlags'%SplFileObjectsetFileClass ''SplFileObjectsetCsvControl'SplFileObjectseek'SplFileObjectrewind'SplFileObjectopenFile'SplFileObjectnext'SplFileObjectkey'!SplFileObjectisWritable'!SplFileObjectisReadable'SplFileObjectisLink'SplFileObjectisFile'%SplFileObjectisExecutable'SplFileObjectisDir'#SplFileObjecthasChildren'SplFileObjectgetType'SplFileObjectgetSize'#SplFileObjectgetRealPath'SplFileObjectgetPerms'#SplFileObjectgetPathname'#SplFileObjectgetPathInfo'SplFileObjectgetPath'SplFileObjectgetOwner ''SplFileObjectgetMaxLineLen'SplFileObjectgetMTime ''SplFileObjectgetLinkTarget'SplFileObjectgetInode'SplFileObjectgetGroup'SplFileObjectgetFlags'#SplFileObjectgetFilename
   & ] xaI)gR?*yhU='       ]         %!7SplMaxHeaprecoverFromCorruptionh!SplMaxHeapnextf!SplMaxHeapkeye!SplMaxHeapisEmptyb!#SplMaxHeapisCorruptedi!SplMaxHeapinsert_!SplMaxHeapextract^!SplMaxHeapcurrentd!SplMaxHeapcounta!SplMaxHeapcompare]SplHeapvalidLSplHeaptopESplHeaprewindH"7SplHeaprecoverFromCorruptionMSplHeapnextKSplHeapkeyJSplHeapisEmptyG#SplHeapisCorruptedNSplHeapinsertDSplHeapextractCSplHeapcurrentISplHeapcountFSplHeapcompareO'SplFixedArrayvalid'SplFixedArraytoArray|'SplFixedArraysetSize'SplFixedArrayrewind'#SplFixedArrayoffsetUnset'SplFixedArrayoffsetSet'SplFixedArrayoffsetGet'%SplFixedArrayoffsetExists'SplFixedArraynext'SplFixedArraykey'SplFixedArraygetSize~'SplFixedArrayfromArray}'SplFixedArraycurrent'SplFixedArraycount{'SplFixedArray__wakeupz
   " V xaE-cD(
|Y9     t V          -SplObjectStoragesetInfo-SplObjectStorageserialize-SplObjectStoragerewind%-+SplObjectStorageremoveAllExcept-SplObjectStorageremoveAll!-#SplObjectStorageoffsetUnset-SplObjectStorageoffsetSet-SplObjectStorageoffsetGet"-%SplObjectStorageoffsetExists-SplObjectStoragenext-SplObjectStoragekey-SplObjectStoragegetInfo-SplObjectStoragegetHash-SplObjectStoragedetach-SplObjectStoragecurrent-SplObjectStoragecount-SplObjectStoragecontains-SplObjectStorageattach-SplObjectStorageaddAll!SplMinHeapvalidZ!SplMinHeaptopS!SplMinHeaprewindV%!7SplMinHeaprecoverFromCorruption[!SplMinHeapnextY!SplMinHeapkeyX!SplMinHeapisEmptyU!#SplMinHeapisCorrupted\!SplMinHeapinsertR!SplMinHeapextractQ!SplMinHeapcurrentW!SplMinHeapcountT!SplMinHeapcompareP!SplMaxHeapvalidg!SplMaxHeaptop`
   $ S tV0rU/|^H6#       q S   +SplQueuesetIteratorModeSplQueuerewind$SplQueuepushSplQueueprev(SplQueuepop#SplQueueoffsetUnset"SplQueueoffsetSet!SplQueueoffsetGet %SplQueueoffsetExistsSplQueuenext'SplQueuekey&SplQueueisEmpty+SplQueuegetIteratorModeSplQueueenqueueSplQueuedequeueSplQueuecurrent%SplQueuecountSplQueuebottomSplQueueadd#-SplPriorityQueuevalidv-SplPriorityQueuetopn%-+SplPriorityQueuesetExtractFlagsl-SplPriorityQueuerewindr+-7SplPriorityQueuerecoverFromCorruptionw-SplPriorityQueuenextu-SplPriorityQueuekeyt-SplPriorityQueueisEmptyq!-#SplPriorityQueueisCorruptedx-SplPriorityQueueinsertk%-+SplPriorityQueuegetExtractFlagsm-SplPriorityQueueextracto-SplPriorityQueuecurrents-SplPriorityQueuecountp-SplPriorityQueuecomparej-SplObjectStoragevalidSplQueueserialize+    K   c8gBuU3    o K             '%XSLTProcessorgetParameter"  #XMLWriterendDocument
  &=UnexpectedValueExceptiongetTrace  !%UConvertergetStandards  %;Swoole\WebSocket\Servertaskwait%  *;'Swoole\WebSocket\ServergetClientInfo%  %#Swoole\TableoffsetUnset$  'Swoole\Servershutdown#  -Swoole\Serializeunpack%  "3Swoole\Redis\Serverheartbeat%  )Swoole\Processwait$  %Swoole\MySQLrollback%   1Swoole\Http\Servertaskwait%:  1Swoole\Http\Serverconfirm%6   3Swoole\Http\Request__sleep%a  %Swoole\Eventwrite$  &;Swoole\Coroutine\SocketgetSocket$b  1M#Swoole\Coroutine\MySQL\Exception__construct$  &ESwoole\Coroutine\Http\Clientpost$  $;Swoole\Coroutine\Client__sleep$|  &ASwoole\Connection\Iteratorrewind$&  )Swoole\Channelpush%  %Swoole\AsyncwriteFile$!  /SplTempFileObjectgetSize   /SplTempFileObjectfpassthru  SplQueueshift
   & X oY;% vcN6iD%
     u X    /SplTempFileObjectflock/SplTempFileObjectfgetss/SplTempFileObjectfgets/SplTempFileObjectfgetcsv/SplTempFileObjectfgetc/SplTempFileObjectfflush/SplTempFileObjecteof/SplTempFileObjectcurrent$/'SplTempFileObject_bad_state_ex!/!SplTempFileObject__toString"/#SplTempFileObject__constructSplStackvalid@SplStackunshift/#SplStackunserializeASplStacktop0SplStackshift-+SplStacksetIteratorMode3SplStackserializeBSplStackrewind;SplStackpush.SplStackprev?SplStackpop,#SplStackoffsetUnset9SplStackoffsetSet8SplStackoffsetGet7%SplStackoffsetExists6SplStacknext>SplStackkey=SplStackisEmpty2+SplStackgetIteratorMode4SplStackcurrent<SplStackcount5SplStackbottom1SplStackadd:SplQueuevalid)SplQueueunshift#SplQueueunserialize*SplQueuetop
    C lO.e?uP0     f C "/#SplTempFileObjectgetRealPath/SplTempFileObjectgetPerms"/#SplTempFileObjectgetPathname"/#SplTempFileObjectgetPathInfo/SplTempFileObjectgetPath/SplTempFileObjectgetOwner$/'SplTempFileObjectgetMaxLineLen/SplTempFileObjectgetMTime$/'SplTempFileObjectgetLinkTarget/SplTempFileObjectgetInode/SplTempFileObjectgetGroup/SplTempFileObjectgetFlags"/#SplTempFileObjectgetFilename"/#SplTempFileObjectgetFileInfo#/%SplTempFileObjectgetExtension%/)SplTempFileObjectgetCurrentLine$/'SplTempFileObjectgetCsvControl"/#SplTempFileObjectgetChildren/SplTempFileObjectgetCTime"/#SplTempFileObjectgetBasename/SplTempFileObjectgetATime/SplTempFileObjectfwrite /SplTempFileObjectftruncate/SplTempFileObjectftell/SplTempFileObjectfstat/SplTempFileObjectfseek/SplTempFileObjectfscanf/SplTempFileObjectfread/SplTempFileObjectfputcsv
  F ^@" iM(~`@!      w \ F%Swoole\Asyncset$$%Swoole\AsyncreadFile$ %Swoole\Asyncread$%Swoole\Asyncexec$%%'Swoole\AsyncdnsLookupCoro$#%Swoole\AsyncdnsLookup$"%SpoofcheckersetChecks#%/SpoofcheckersetAllowedLocales%%SpoofcheckerisSuspicious%'SpoofcheckerareConfusable%#Spoofchecker__construct/SplTempFileObjectvalid$/'SplTempFileObjectsetMaxLineLen#/%SplTempFileObjectsetInfoClass/SplTempFileObjectsetFlags#/%SplTempFileObjectsetFileClass$/'SplTempFileObjectsetCsvControl/SplTempFileObjectseek/SplTempFileObjectrewind/SplTempFileObjectopenFile/SplTempFileObjectnext/SplTempFileObjectkey!/!SplTempFileObjectisWritable!/!SplTempFileObjectisReadable/SplTempFileObjectisLink/SplTempFileObjectisFile#/%SplTempFileObjectisExecutable/SplTempFileObjectisDir"/#SplTempFileObjecthasChildren/SplTempFileObjectgetType      %Swoole\Asyncwrite$
 " U w]F/ eF*|`F-      n U         )Swoole\Channelpeek%)!Swoole\Channel__destruct%)#Swoole\Channel__construct%'Swoole\Bufferwrite%h'Swoole\Buffersubstr%g'Swoole\Bufferrecycle%l'Swoole\Bufferread%i'Swoole\Bufferexpand%k'Swoole\Bufferclear%m'Swoole\Bufferappend%j'Swoole\Buffer__wakeup%o'!Swoole\Buffer__toString%f'Swoole\Buffer__sleep%n'!Swoole\Buffer__destruct%e'#Swoole\Buffer__construct%d1Swoole\Atomic\Longsub% 1Swoole\Atomic\Longset%"1Swoole\Atomic\Longget%!1Swoole\Atomic\Longcmpset%#1Swoole\Atomic\Longadd% 1Swoole\Atomic\Long__wakeup%%1Swoole\Atomic\Long__sleep%$#1#Swoole\Atomic\Long__construct%'Swoole\Atomicwakeup%'Swoole\Atomicwait%'Swoole\Atomicsub%'Swoole\Atomicset%'Swoole\Atomicget%'Swoole\Atomiccmpset%'Swoole\Atomicadd%'Swoole\Atomic__wakeup%'Swoole\Atomic__sleep%'#Swoole\Atomic__construct%   )Swoole\Channelpop%
  F w\? iQ5d<    r F++A#Swoole\Connection\IteratoroffsetUnset$0)ASwoole\Connection\IteratoroffsetSet$/)ASwoole\Connection\IteratoroffsetGet$.,A%Swoole\Connection\IteratoroffsetExists$-$ASwoole\Connection\Iteratornext$'#ASwoole\Connection\Iteratorkey$)'ASwoole\Connection\Iteratorcurrent$(%ASwoole\Connection\Iteratorcount$+*A!Swoole\Connection\Iterator__destruct$,'Swoole\Clientwakeup$M'Swoole\Clientsleep$L'Swoole\Clientshutdown$P'Swoole\Clientset$E'Swoole\Clientsendto$K'Swoole\Clientsendfile$J'Swoole\Clientsend$H'Swoole\Clientresume$O'Swoole\Clientrecv$G'Swoole\Clientpipe$I'Swoole\Clientpause$N'Swoole\Clienton$U'#Swoole\ClientisConnected$Q'#Swoole\Clientgetsockname$R'#Swoole\Clientgetpeername$S'Swoole\ClientgetSocket$V'Swoole\Clientconnect$F'Swoole\Clientclose$T'!Swoole\Client__destruct$D'#Swoole\Client__construct$C)Swoole\Channelstats%                        
    X jM+x\>\7     X                        ';!Swoole\Coroutine\Client__destruct$p(;#Swoole\Coroutine\Client__construct$o#=Swoole\Coroutine\Channelstats%$=Swoole\Coroutine\Channelselect%"=Swoole\Coroutine\Channelpush%!=Swoole\Coroutine\Channelpop%$=Swoole\Coroutine\Channellength%$=Swoole\Coroutine\ChannelisFull%%=Swoole\Coroutine\ChannelisEmpty%#=Swoole\Coroutine\Channelclose%(=!Swoole\Coroutine\Channel__destruct%)=#Swoole\Coroutine\Channel__construct%-Swoole\CoroutinewriteFile$-Swoole\Coroutinesuspend$-Swoole\Coroutinestats$-Swoole\Coroutinesleep$-Swoole\Coroutineset$-Swoole\Coroutineresume$-Swoole\CoroutinereadFile$-Swoole\Coroutinegetuid$#-'Swoole\Coroutinegethostbyname$!-#Swoole\Coroutinegetaddrinfo$-Swoole\Coroutinefwrite$-Swoole\Coroutinefread$-Swoole\Coroutinefgets$-Swoole\Coroutineexec$-Swoole\Coroutinecreate$%ASwoole\Connection\Iteratorvalid$*
    I kBd@oE    w I                 -E#Swoole\Coroutine\Http\ClientisConnected$*ESwoole\Coroutine\Http\ClientgetDefer$%ESwoole\Coroutine\Http\Clientget$)ESwoole\Coroutine\Http\Clientexecute$*ESwoole\Coroutine\Http\Clientdownload$'ESwoole\Coroutine\Http\Clientclose$)ESwoole\Coroutine\Http\ClientaddFile$*ESwoole\Coroutine\Http\Client__wakeup$)ESwoole\Coroutine\Http\Client__sleep$,E!Swoole\Coroutine\Http\Client__destruct$-E#Swoole\Coroutine\Http\Client__construct$ ;Swoole\Coroutine\Clientset$q#;Swoole\Coroutine\Clientsendto$w%;Swoole\Coroutine\Clientsendfile$v!;Swoole\Coroutine\Clientsend$u!;Swoole\Coroutine\Clientrecv$s!;Swoole\Coroutine\Clientpeek$t(;#Swoole\Coroutine\ClientisConnected$x(;#Swoole\Coroutine\Clientgetsockname$y(;#Swoole\Coroutine\Clientgetpeername$z&;Swoole\Coroutine\ClientgetSocket$~$;Swoole\Coroutine\Clientconnect$r";Swoole\Coroutine\Clientclose${%;Swoole\Coroutine\Client__wakeup$}
  9 e8`8a=     g 9 -MSwoole\Coroutine\MySQL\Exception__clone$$9Swoole\Coroutine\MySQLsetDefer$$9Swoole\Coroutine\MySQLrollback$ 9Swoole\Coroutine\MySQLrecv$!9Swoole\Coroutine\MySQLquery$#9Swoole\Coroutine\MySQLprepare$$9Swoole\Coroutine\MySQLgetDefer$#9Swoole\Coroutine\MySQLconnect$"9Swoole\Coroutine\MySQLcommit$!9Swoole\Coroutine\MySQLclose$!9Swoole\Coroutine\MySQLbegin$$9Swoole\Coroutine\MySQL__wakeup$#9Swoole\Coroutine\MySQL__sleep$&9!Swoole\Coroutine\MySQL__destruct$'9#Swoole\Coroutine\MySQL__construct$)ESwoole\Coroutine\Http\Clientupgrade$+ESwoole\Coroutine\Http\ClientsetMethod$,E!Swoole\Coroutine\Http\ClientsetHeaders$*ESwoole\Coroutine\Http\ClientsetDefer$)ESwoole\Coroutine\Http\ClientsetData$,E!Swoole\Coroutine\Http\ClientsetCookies$%ESwoole\Coroutine\Http\Clientset$&ESwoole\Coroutine\Http\Clientrecv$&ESwoole\Coroutine\Http\Clientpush$   '                                   
  A n@R_3    d A               ";Swoole\Coroutine\Socketclose$c!;Swoole\Coroutine\Socketbind$X#;Swoole\Coroutine\Socketaccept$Z(;#Swoole\Coroutine\Socket__construct$W0M!Swoole\Coroutine\MySQL\StatementnextResult$.MSwoole\Coroutine\MySQL\StatementfetchAll$+MSwoole\Coroutine\MySQL\Statementfetch$-MSwoole\Coroutine\MySQL\Statementexecute$.MSwoole\Coroutine\MySQL\Statement__wakeup$-MSwoole\Coroutine\MySQL\Statement__sleep$0M!Swoole\Coroutine\MySQL\Statement__destruct$6M-Swoole\Coroutine\MySQL\ExceptiongetTraceAsString$.MSwoole\Coroutine\MySQL\ExceptiongetTrace$1M#Swoole\Coroutine\MySQL\ExceptiongetPrevious$0M!Swoole\Coroutine\MySQL\ExceptiongetMessage$-MSwoole\Coroutine\MySQL\ExceptiongetLine$-MSwoole\Coroutine\MySQL\ExceptiongetFile$-MSwoole\Coroutine\MySQL\ExceptiongetCode$.MSwoole\Coroutine\MySQL\Exception__wakeup$0M!Swoole\Coroutine\MySQL\Exception__toString$            $;Swoole\Coroutine\Socketconnect$[
    > tR,
R"c0      l U >    %Swoole\Eventwait$%Swoole\Eventexit$%Swoole\Eventdel$%Swoole\Eventdefer$%Swoole\Eventcycle$%Swoole\Eventadd$7O-Swoole\Coroutine\Socket\ExceptiongetTraceAsString$m/OSwoole\Coroutine\Socket\ExceptiongetTrace$k2O#Swoole\Coroutine\Socket\ExceptiongetPrevious$l1O!Swoole\Coroutine\Socket\ExceptiongetMessage$g.OSwoole\Coroutine\Socket\ExceptiongetLine$j.OSwoole\Coroutine\Socket\ExceptiongetFile$i.OSwoole\Coroutine\Socket\ExceptiongetCode$h/OSwoole\Coroutine\Socket\Exception__wakeup$f1O!Swoole\Coroutine\Socket\Exception__toString$n2O#Swoole\Coroutine\Socket\Exception__construct$e.OSwoole\Coroutine\Socket\Exception__clone$d#;Swoole\Coroutine\Socketsendto$_!;Swoole\Coroutine\Socketsend$]%;Swoole\Coroutine\Socketrecvfrom$^!;Swoole\Coroutine\Socketrecv$\#;Swoole\Coroutine\Socketlisten$Y(;#Swoole\Coroutine\Socketgetsockname$a(;#Swoole\Coroutine\Socketgetpeername$`%Swoole\Eventset$
  B hJ,a> dG*     f B#3!Swoole\Http\Request__destruct%c1Swoole\Http\Clientupgrade$!1Swoole\Http\ClientsetMethod$"1!Swoole\Http\ClientsetHeaders$1Swoole\Http\ClientsetData$"1!Swoole\Http\ClientsetCookies$1Swoole\Http\Clientset$1Swoole\Http\Clientpush$1Swoole\Http\Clientpost$1Swoole\Http\Clienton$#1#Swoole\Http\ClientisConnected$1Swoole\Http\Clientget$1Swoole\Http\Clientexecute$ 1Swoole\Http\Clientdownload$1Swoole\Http\Clientclose$1Swoole\Http\ClientaddFile$"1!Swoole\Http\Client__destruct$#1#Swoole\Http\Client__construct$&--Swoole\ExceptiongetTraceAsString$:-Swoole\ExceptiongetTrace$8!-#Swoole\ExceptiongetPrevious$9 -!Swoole\ExceptiongetMessage$4-Swoole\ExceptiongetLine$7-Swoole\ExceptiongetFile$6-Swoole\ExceptiongetCode$5-Swoole\Exception__wakeup$3 -!Swoole\Exception__toString$;!-#Swoole\Exception__construct$2-Swoole\Exception__clone$1                       
    PxS1nM(}Y6     s P                "1!Swoole\Http\ServerclearTimer%I1Swoole\Http\Serverbind%O1Swoole\Http\Serverafter%G#1#Swoole\Http\Serveraddlistener%-"1!Swoole\Http\ServeraddProcess%L 1Swoole\Http\Server__wakeup%)1Swoole\Http\Server__sleep%("1!Swoole\Http\Server__destruct%+#1#Swoole\Http\Server__construct%*5Swoole\Http\Responsewrite%V 5Swoole\Http\Responsestatus%S"5Swoole\Http\Responsesendfile%X"5Swoole\Http\Responseredirect%Y#5Swoole\Http\Responserawcookie%R$5!Swoole\Http\ResponseinitHeader%P 5Swoole\Http\Responseheader%U5Swoole\Http\Responsegzip%T5Swoole\Http\Responseend%W 5Swoole\Http\Responsedetach%Z 5Swoole\Http\Responsecreate%[ 5Swoole\Http\Responsecookie%Q"5Swoole\Http\Response__wakeup%]!5Swoole\Http\Response__sleep%\$5!Swoole\Http\Response__destruct%^#3!Swoole\Http\Requestrawcontent%_ 3Swoole\Http\RequestgetData%`!3Swoole\Http\Request__wakeup%b   1Swoole\Http\Serverclose%5
    P tU/	fH(	iH,     v P              %1'Swoole\Http\ServertaskWaitMulti%;1Swoole\Http\ServertaskCo%<1Swoole\Http\Servertask%91Swoole\Http\Serverstop%@1Swoole\Http\Serverstats%M1Swoole\Http\Serverstart%' 1Swoole\Http\Servershutdown%?1Swoole\Http\Serverset%. 1Swoole\Http\Serversendwait%11Swoole\Http\Serversendto%0 1Swoole\Http\Serversendfile%4#1#Swoole\Http\ServersendMessage%K1Swoole\Http\Serversend%/1Swoole\Http\Serverresume%81Swoole\Http\Serverreload%>1Swoole\Http\Serverprotect%31Swoole\Http\Serverpause%71Swoole\Http\Serveron%&1Swoole\Http\Serverlisten%,!1Swoole\Http\Serverheartbeat%B!1Swoole\Http\ServergetSocket%N$1%Swoole\Http\ServergetLastError%A%1'Swoole\Http\ServergetClientList%F%1'Swoole\Http\ServergetClientInfo%E1Swoole\Http\Serverfinish%=1Swoole\Http\Serverexist%21Swoole\Http\Serverdefer%J'1+Swoole\Http\Serverconnection_list%D'1+Swoole\Http\Serverconnection_info%C
 ! P pZ?%qH%tZ9       e P      %Swoole\MySQLon%%Swoole\MySQLgetState%%Swoole\MySQLconnect%%Swoole\MySQLcommit%%Swoole\MySQLclose%%Swoole\MySQLbegin%%!Swoole\MySQL__destruct%%#Swoole\MySQL__construct%+Swoole\MsgQueuestats% +#Swoole\MsgQueuesetBlocking%+Swoole\MsgQueuepush%+Swoole\MsgQueuepop%+Swoole\MsgQueuedestory%+!Swoole\MsgQueue__destruct% +#Swoole\MsgQueue__construct%#Swoole\Mmapopen%#=Swoole\Memory\Pool\Slicewrite%"=Swoole\Memory\Pool\Sliceread%(=!Swoole\Memory\Pool\Slice__destruct%1Swoole\Memory\Poolalloc%"1!Swoole\Memory\Pool__destruct%#1#Swoole\Memory\Pool__construct%#Swoole\Lockunlock%#%Swoole\Locktrylock_read%#Swoole\Locktrylock%#Swoole\Locklockwait%#Swoole\Locklock_read%#Swoole\Locklock%#Swoole\Lockdestroy%#!Swoole\Lock__destruct%##Swoole\Lock__construct%1Swoole\Http\Servertick%H   	     %Swoole\MySQLquery%
    R hD [;}dK3     o R              )Swoole\ProcessuseQueue$)Swoole\ProcessstatQueue$)Swoole\Processstart$)Swoole\Processsignal$)!Swoole\ProcesssetTimeout$)#Swoole\ProcesssetBlocking$)Swoole\Processread$)Swoole\Processpush$)Swoole\Processpop$)Swoole\Processname$)Swoole\Processkill$)Swoole\ProcessfreeQueue$)Swoole\Processexit$)Swoole\Processexec$)Swoole\Processdaemon$)Swoole\Processclose$)Swoole\Processalarm$)!Swoole\Process__destruct$)#Swoole\Process__construct$,9-Swoole\MySQL\ExceptiongetTraceAsString%$9Swoole\MySQL\ExceptiongetTrace%'9#Swoole\MySQL\ExceptiongetPrevious%&9!Swoole\MySQL\ExceptiongetMessage%#9Swoole\MySQL\ExceptiongetLine%#9Swoole\MySQL\ExceptiongetFile%#9Swoole\MySQL\ExceptiongetCode%$9Swoole\MySQL\Exception__wakeup%&9!Swoole\MySQL\Exception__toString%'9#Swoole\MySQL\Exception__construct%#9Swoole\MySQL\Exception__clone%
    F }aB#sN/[<     i F      "3Swoole\Redis\ServergetSocket&%3%Swoole\Redis\ServergetLastError%&3'Swoole\Redis\ServergetClientList%&3'Swoole\Redis\ServergetClientInfo%3Swoole\Redis\Serverformat%3Swoole\Redis\Serverfinish%3Swoole\Redis\Serverexist%3Swoole\Redis\Serverdefer%(3+Swoole\Redis\Serverconnection_list%(3+Swoole\Redis\Serverconnection_info% 3Swoole\Redis\Serverconfirm%3Swoole\Redis\Serverclose%#3!Swoole\Redis\ServerclearTimer%3Swoole\Redis\Serverbind&3Swoole\Redis\Serverafter%$3#Swoole\Redis\Serveraddlistener%#3!Swoole\Redis\ServeraddProcess& !3Swoole\Redis\Server__wakeup& 3Swoole\Redis\Server__sleep&#3!Swoole\Redis\Server__destruct%$3#Swoole\Redis\Server__construct%3Swoole\Process\Poolwrite$3Swoole\Process\Poolstart$3Swoole\Process\Poolon$3Swoole\Process\Poollisten$#3!Swoole\Process\Pool__destruct$$3#Swoole\Process\Pool__construct$)Swoole\Processwrite$
  G aA!z]9}V4     | b G   -Swoole\RingQueuepush%-Swoole\RingQueuepop%-Swoole\RingQueueisFull%-Swoole\RingQueueisEmpty%-Swoole\RingQueuecount% -!Swoole\RingQueue__destruct%!-#Swoole\RingQueue__construct%3Swoole\Redis\Servertick%!3Swoole\Redis\Servertaskwait%&3'Swoole\Redis\ServertaskWaitMulti%3Swoole\Redis\ServertaskCo%3Swoole\Redis\Servertask%3Swoole\Redis\Serverstop%3Swoole\Redis\Serverstats&3Swoole\Redis\Serverstart%!3Swoole\Redis\Servershutdown%#3!Swoole\Redis\ServersetHandler%3Swoole\Redis\Serverset%!3Swoole\Redis\Serversendwait%3Swoole\Redis\Serversendto%!3Swoole\Redis\Serversendfile%$3#Swoole\Redis\ServersendMessage%3Swoole\Redis\Serversend%3Swoole\Redis\Serverresume%3Swoole\Redis\Serverreload% 3Swoole\Redis\Serverprotect%3Swoole\Redis\Serverpause%3Swoole\Redis\Serveron%3Swoole\Redis\Serverlisten%       -Swoole\Serializepack%
 ! ` oQ2iP7gQ8     | `                      'Swoole\Serversendwait#'Swoole\Serversendto#'Swoole\Serversendfile#'#Swoole\ServersendMessage$'Swoole\Serversend#'Swoole\Serverresume#'Swoole\Serverreload#'Swoole\Serverprotect#'Swoole\Serverpause#'Swoole\Serveron#'Swoole\Serverlisten#'Swoole\Serverheartbeat$'Swoole\ServergetSocket$'%Swoole\ServergetLastError$ ''Swoole\ServergetClientList$ ''Swoole\ServergetClientInfo$'Swoole\Serverfinish#'Swoole\Serverexist#'Swoole\Serverdefer$
"'+Swoole\Serverconnection_list$"'+Swoole\Serverconnection_info$'Swoole\Serverconfirm#'Swoole\Serverclose#'!Swoole\ServerclearTimer$	'Swoole\Serverbind$'Swoole\Serverafter$'#Swoole\Serveraddlistener#'!Swoole\ServeraddProcess$'Swoole\Server__wakeup$'Swoole\Server__sleep$'!Swoole\Server__destruct#'#Swoole\Server__construct#     'Swoole\Serverset#
   " g hG+iN2{dN4      g                           %Swoole\TableoffsetGet$%%Swoole\TableoffsetExists$%Swoole\Tablenext%%Swoole\Tablekey%%Swoole\Tableincr$%'Swoole\TablegetMemorySize$%Swoole\Tableget$%Swoole\Tableexist$%Swoole\Tabledestroy$%Swoole\Tabledel$%Swoole\Tabledecr$%Swoole\Tablecurrent%%Swoole\Tablecreate$%Swoole\Tablecount$%Swoole\Tablecolumn$%Swoole\Table__wakeup% %Swoole\Table__sleep$%#Swoole\Table__construct$1Swoole\Server\Portset$>1Swoole\Server\Porton$?!1Swoole\Server\PortgetSocket$B 1Swoole\Server\Port__wakeup$A1Swoole\Server\Port__sleep$@"1!Swoole\Server\Port__destruct$=#1#Swoole\Server\Port__construct$<'Swoole\Servertick$'Swoole\Servertaskwait# ''Swoole\ServertaskWaitMulti#'Swoole\ServertaskCo#'Swoole\Servertask#'Swoole\Serverstop$ 'Swoole\Serverstats$'Swoole\Serverstart#%Swoole\TableoffsetSet$
    M uU5b=Y6    q M             #;Swoole\WebSocket\Serverfinish%";Swoole\WebSocket\Serverexist%r";Swoole\WebSocket\Serverdefer%,;+Swoole\WebSocket\Serverconnection_list%,;+Swoole\WebSocket\Serverconnection_info%$;Swoole\WebSocket\Serverconfirm%";Swoole\WebSocket\Serverclose%';!Swoole\WebSocket\ServerclearTimer%!;Swoole\WebSocket\Serverbind%";Swoole\WebSocket\Serverafter%(;#Swoole\WebSocket\Serveraddlistener%|';!Swoole\WebSocket\ServeraddProcess%%;Swoole\WebSocket\Server__wakeup%x$;Swoole\WebSocket\Server__sleep%w';!Swoole\WebSocket\Server__destruct%z(;#Swoole\WebSocket\Server__construct%y%Swoole\Timertick$%Swoole\Timerexists$%Swoole\Timerclear$%Swoole\Timerafter$!-#Swoole\Table\RowoffsetUnset%	-Swoole\Table\RowoffsetSet%-Swoole\Table\RowoffsetGet%"-%Swoole\Table\RowoffsetExists% -!Swoole\Table\Row__destruct%
%Swoole\Tablevalid%%Swoole\Tableset$%Swoole\Tablerewind%
    ? Y2~Y7~Z4     c ?   #;Swoole\WebSocket\ServertaskCo%!;Swoole\WebSocket\Servertask%!;Swoole\WebSocket\Serverstop%";Swoole\WebSocket\Serverstats%";Swoole\WebSocket\Serverstart%v%;Swoole\WebSocket\Servershutdown% ;Swoole\WebSocket\Serverset%}%;Swoole\WebSocket\Serversendwait%#;Swoole\WebSocket\Serversendto%%;Swoole\WebSocket\Serversendfile%(;#Swoole\WebSocket\ServersendMessage%!;Swoole\WebSocket\Serversend%~#;Swoole\WebSocket\Serverresume%#;Swoole\WebSocket\Serverreload%!;Swoole\WebSocket\Serverpush%q$;Swoole\WebSocket\Serverprotect%";Swoole\WebSocket\Serverpause%!;Swoole\WebSocket\Serverpack%t;Swoole\WebSocket\Serveron%p#;Swoole\WebSocket\Serverlisten%{*;'Swoole\WebSocket\ServerisEstablished%s&;Swoole\WebSocket\Serverheartbeat%&;Swoole\WebSocket\ServergetSocket%);%Swoole\WebSocket\ServergetLastError%*;'Swoole\WebSocket\ServergetClientList%*;'Swoole\WebSocket\ServertaskWaitMulti%
   K tY5y^D,z^F(     i K   !'UConvertergetSourceType!+UConvertergetErrorMessage!%UConvertergetErrorCode"!1UConvertergetDestinationType&!9UConvertergetDestinationEncoding!%UConvertergetAvailable!!UConvertergetAliases!'UConverterfromUCallback!UConverterconvert!#UConverter__construct-TypeErrorgetTraceAsStringTypeErrorgetTrace#TypeErrorgetPrevious!TypeErrorgetMessageTypeErrorgetLineTypeErrorgetFileTypeErrorgetCodeTypeError__wakeup!TypeError__toString#TypeError__constructTypeError__clone!)'Transliteratortransliterate	)TransliteratorlistIDs#)+TransliteratorgetErrorMessage )%TransliteratorgetErrorCode
!)'TransliteratorcreateInverse#)+TransliteratorcreateFromRules)Transliteratorcreate)#Transliterator__construct#;Swoole\WebSocket\Serverunpack%u!;Swoole\WebSocket\Servertick%   !!/UConvertergetSourceEncoding
    L ~`D*
bBa8    v L              )=#UnexpectedValueExceptiongetPrevious(=!UnexpectedValueExceptiongetMessage%=UnexpectedValueExceptiongetLine%=UnexpectedValueExceptiongetFile%=UnexpectedValueExceptiongetCode&=UnexpectedValueException__wakeup(=!UnexpectedValueException__toString)=#UnexpectedValueException__construct%=UnexpectedValueException__clone(1-UnderflowExceptiongetTraceAsString 1UnderflowExceptiongetTrace#1#UnderflowExceptiongetPrevious"1!UnderflowExceptiongetMessage1UnderflowExceptiongetLine1UnderflowExceptiongetFile1UnderflowExceptiongetCode 1UnderflowException__wakeup"1!UnderflowException__toString#1#UnderflowException__construct1UnderflowException__clone!UConvertertranscode!#UConvertertoUCallback!'UConvertersetSubstChars!!/UConvertersetSourceEncoding&!9UConvertersetDestinationEncoding!!UConverterreasonText!'UConvertergetSubstChars
 ! L lP2}\?jI)      i L  'XMLWriterendDTDElement
'XMLWriterendDTDAttlist
XMLWriterendDTD
!XMLWriterendComment
|XMLWriterendCData
%XMLWriterendAttribute
~XMLReadersetSchema"|%9XMLReadersetRelaxNGSchemaSource"-XMLReadersetRelaxNGSchema"~ /XMLReadersetParserProperty"}!XMLReaderreadString"{%XMLReaderreadOuterXml"z%XMLReaderreadInnerXml"yXMLReaderread"wXMLReaderopen"vXMLReadernext"x"3XMLReadermoveToNextAttribute"u#5XMLReadermoveToFirstAttribute"t'XMLReadermoveToElement"s /XMLReadermoveToAttributeNs"r /XMLReadermoveToAttributeNo"p+XMLReadermoveToAttribute"q+XMLReaderlookupNamespace"oXMLReaderisValid"n /XMLReadergetParserProperty"m)XMLReadergetAttributeNs"l)XMLReadergetAttributeNo"k%XMLReadergetAttribute"jXMLReaderexpand"XMLReaderclose"iXMLReaderXML".=-UnexpectedValueExceptiongetTraceAsString          %XMLWriterendDTDEntity

   " [iR6rS4vV<      r [               XMLWriterwritePI
)XMLWriterwriteElementNS
%XMLWriterwriteElement
)XMLWriterwriteDTDEntity
+XMLWriterwriteDTDElement
+XMLWriterwriteDTDAttlist
XMLWriterwriteDTD
%XMLWriterwriteComment
!XMLWriterwriteCData
-XMLWriterwriteAttributeNS
)XMLWriterwriteAttribute
XMLWritertext
XMLWriterstartPI
)XMLWriterstartElementNS
%XMLWriterstartElement
'XMLWriterstartDocument
)XMLWriterstartDTDEntity
+XMLWriterstartDTDElement
+XMLWriterstartDTDAttlist
XMLWriterstartDTD
%XMLWriterstartComment
{!XMLWriterstartCData
-XMLWriterstartAttributeNS
)XMLWriterstartAttribute
}+XMLWritersetIndentString
zXMLWritersetIndent
y%XMLWriteroutputMemory
XMLWriteropenURI
w!XMLWriteropenMemory
x)XMLWriterfullEndElement
XMLWriterflush
XMLWriterendPI
!XMLWriterendElement
   XMLWriterwriteRaw

    R uM*
`D,x^<     o R              !%ZipArchivegetNameIndex"!#ZipArchivegetFromName"!%ZipArchivegetFromIndex")!?ZipArchivegetExternalAttributesName"*!AZipArchivegetExternalAttributesIndex"!)ZipArchivegetCommentName"!+ZipArchivegetCommentIndex"!!/ZipArchivegetArchiveComment"!ZipArchiveextractTo"!!ZipArchivedeleteName"!#ZipArchivedeleteIndex"!ZipArchivecount"!ZipArchiveclose"!!ZipArchiveaddPattern"!ZipArchiveaddGlob"!'ZipArchiveaddFromString"!ZipArchiveaddFile"!#ZipArchiveaddEmptyDir"!')XSLTProcessortransformToXml"!')XSLTProcessortransformToUri"!')XSLTProcessortransformToDoc"#'-XSLTProcessorsetSecurityPrefs"'%XSLTProcessorsetProfiling"'%XSLTProcessorsetParameter""'+XSLTProcessorremoveParameter"''5XSLTProcessorregisterPHPFunctions"#'-XSLTProcessorimportStylesheet""'+XSLTProcessorhasExsltSupport"#'-XSLTProcessorgetSecurityPrefs"!+ZipArchivegetStatusString"
 " M ]=g=!w]>,      r ` M mysqlicommitmysqliclose1mysqlicharacter_set_name!#mysqlichange_user!/mysqlibegin_transaction!!mysqliautocommit#mysqli__construct!finfoset_flags#finfofinfo"finfofile$finfobuffer%'#ast\Node\Decl__construct"#ast\Node__construct"!%ZipArchiveunchangeName"!'ZipArchiveunchangeIndex"!+ZipArchiveunchangeArchive"!#ZipArchiveunchangeAll"!ZipArchivestatName"!ZipArchivestatIndex"!#ZipArchivesetPassword")!?ZipArchivesetExternalAttributesName"*!AZipArchivesetExternalAttributesIndex"!!/ZipArchivesetEncryptionName""!1ZipArchivesetEncryptionIndex""!1ZipArchivesetCompressionName"#!3ZipArchivesetCompressionIndex"!)ZipArchivesetCommentName"!+ZipArchivesetCommentIndex"!!/ZipArchivesetArchiveComment"!!ZipArchiverenameName"!#ZipArchiverenameIndex"!ZipArchiveopen"!!ZipArchivelocateName"     mysqliconnect!                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  tidyNodeisHtml"b  #!mysqli_stmtget_result!  '#mysqli_resultfetch_array!  mysqlidebug
 ' X cG.ygN/p\M9(      u X'mysqli_resultfetch_all!'mysqli_resultdata_seek!'mysqli_resultclose!'#mysqli_result__construct!!mysqliuse_result!#mysqlithread_safe!%mysqlistore_result!mysqlistmt_init!mysqlistatmysqlissl_set!mysqlishmysqliset_opt!#mysqliset_charset!mysqliselect_db!mysqlisavepoint!mysqlirollback/mysqlirelease_savepoint!mysqlirefresh-mysqlireap_async_query!!mysqlireal_query!1mysqlireal_escape_string!%mysqlireal_connect!mysqliquerymysqliprepare!mysqlipollmysqlipingmysqlioptions#mysqlinext_result!#mysqlimulti_query!%mysqlimore_results!mysqlikillmysqliinit%mysqliget_warnings!+mysqliget_server_info! 5mysqliget_connection_stats!+mysqliget_client_info!#mysqliget_charset!'mysqliescape_string!+mysqlidump_debug_info!                 
    P}]= ^;g<      g P            #mysqli_stmtfetch!#mysqli_stmtexecute!#mysqli_stmtdata_seek!#mysqli_stmtclose!##mysqli_stmtbind_result!#!mysqli_stmtbind_param!#mysqli_stmtattr_set!#mysqli_stmtattr_get!##mysqli_stmt__construct!*5-mysqli_sql_exceptiongetTraceAsString!"5mysqli_sql_exceptiongetTrace!%5#mysqli_sql_exceptiongetPrevious!$5!mysqli_sql_exceptiongetMessage!!5mysqli_sql_exceptiongetLine!!5mysqli_sql_exceptiongetFile!!5mysqli_sql_exceptiongetCode!"5mysqli_sql_exception__wakeup!$5!mysqli_sql_exception__toString!%5#mysqli_sql_exception__construct!!5mysqli_sql_exception__clone!'#mysqli_resultfree_result!'mysqli_resultfree!'!mysqli_resultfield_seek!'mysqli_resultfetch_row!'%mysqli_resultfetch_object!'%mysqli_resultfetch_fields!%'1mysqli_resultfetch_field_direct!'#mysqli_resultfetch_field!'#mysqli_resultfetch_assoc!  ##mysqli_stmtfree_result!
 ' n qXA  pR<-~o]M9#       n Y                   tidyNodeisAsp"e#tidyNodehasSiblings"`#tidyNodehasChildren"_tidyNodegetParent"g#tidyNode__construct"htidyroot"Z%tidyrepairString"Q!tidyrepairFile"R#tidyparseString"PtidyparseFile"OtidyisXml"YtidyisXhtml"Xtidyhtml"\tidyhead"[tidygetopt
YtidygetStatus"U!tidygetRelease"StidygetOptDoc"W!tidygetHtmlVer"VtidygetConfig"Ttidydiagnose
[#tidycleanRepair"Ntidybody"]#tidy__construct"^+php_user_filteronCreate9+php_user_filteronClose:+php_user_filterfilter8)mysqli_warningnext!)#mysqli_warning__construct!#%mysqli_stmtstore_result!#)mysqli_stmtsend_long_data! #+mysqli_stmtresult_metadata!#mysqli_stmtreset!#mysqli_stmtprepare!#mysqli_stmtnum_rows!##mysqli_stmtnext_result!#%mysqli_stmtmore_results!#%mysqli_stmtget_warnings!   tidyNodeisComment"a
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        tidyNodeisText"ctidyNodeisPhp"ftidyNodeisJste"d   
 X HX{  X                                                            W	 ^%      openssl_seal() uninitialized memory usagePHPopenssl_seal37.0.3opensslN J%      mb_send_mail segmentation faultPHPmb_send_mail7.0.3mbstringx #     Memory Read via gdImageRotateInterpolated Array Index Out of BoundsPHPimagerotate@7.0.35.6.185.5.32gds #      curl_setopt() fails to set CURLOPT_POSTFIELDS with reference to CURLFilePHPcurl_setopt97.0.3curlf +       Wrong is_ref on properties as exposed via get_object_vars()PHPget_object_vars7.0.3A D!       var_export(INF) prints INF.0PHPvar_export7.0.3b        Null pointer deref (segfault) in get_defined_vars via ob_startPHPob_start57.0.3G N       round() segfault on 64-bit buildsPHPround!7.0.35.6.18f        exec functions ignore length but look for NULL terminationPHPexec7.0.35.6.185.5.32N  W PHP crashes when parsing `(2)::class`PHPparse_str.7.2.15core   
 . c0T  .                  k -      ldap_mod_replace/ldap_mod_add store value as string "Array"PHPldap_mod_replaceQ7.0.3ldapr 7       Autoload function registered by another not activated immediatelyPHPspl_autoload_register"7.0.3s /       file_put_contents() returns unexpected value when filesystem runs fullPHPfile_get_contents`7.0.3t /       file_get_contents() ignores "header" context option if it's a referencePHPfile_get_contentsM7.0.3X w       Null pointer deref (segfault) in compact via ob_startPHPob_start47.0.3o )       substr_replace converts integers in original $search array to stringsPHPsubstr_replace7.0.3i #       str_replace converts integers in original $search array to stringsPHPstr_replace7.0.31 .       range() segfaultsPHPrange7.0.31 .       range() segfaultsPHPrange7.0.3h
 f-     Type Confusion in WDDX Packet DeserializationPHPwddx_deserialize7.0.35.6.185.5.32wddx   	 k  ?6  k                                                                                 x %       mb_send_mail: Program terminated with signal SIGSEGV, Segmentation faultPHPmb_send_mail7.0.2mbstringO J      Integer overflow in iptcembed()PHPiptcembed#7.0.35.6.185.5.32c f)&      Heap BufferOver Flow in escapeshell functionsPHPescapeshellargCVE-2016-1904f7.0.2V ^%      filter_input(INPUT_ENV, ..) does not workPHPfilter_input7.0.2filterJ V!       var_export() exports float as integerPHPvar_export7.0.2r -       Invalid numeric literal parse error within highlight_string() functionPHPhighlight_string7.0.2k x;      segfault if clean spl_autoload_funcs while autoloadingPHPspl_autoload_unregister$7.0.3splu t9     NULL Pointer Dereference in phar_tar_setupmetadata()PHPphar_tar_setupmetadata7.0.35.6.185.5.32pharg %      ldap_mod_replace/ldap_mod_add store value as string "Array"PHPldap_mod_addQ7.0.3ldap    f T  f                                                                              |& 5     Output of stream_get_meta_data can be falsified by its inputPHPstream_get_meta_data7.0.35.6.185.5.32coren% +     password_verify reports back error on PHP7 will null stringPHPpassword_verify67.0.0standard[$ a'       token_get_all has new irrecoverable errorsPHPtoken_get_all67.0.0tokenizerg# w5       ZipArchive::getStream() returns NULL for certain filePHPziparchive_getstringY7.0.0zipp" x'     Type Confusion Vulnerability in PHP_to_XMLRPC_worker()PHPxmlrpc_encodeH7.0.25.6.175.5.31xmlrpcw! -     Use After Free Vulnerability in WDDX Packet DeserializationPHPwddx_deserialize7.0.25.6.175.5.31wddx  E       readline_completion_function corrupts static array on (second) TABPHPreadline_completion_function7.0.2readlinet %       preg_replace with arrays creates [0] in replace array if not already setPHPpreg_replace
7.0.2pcre   
 5 )q%U   5                         b0 }#    Notice: unserialize(): Unexpected end of serialized dataPHPunserialize+7.0.0corea/     assert() with instanceof adds apostrophes around class namePHPassert7.0.0coreW. w    Duplicate array key via undefined index error handlerPHPkey7.0.0core|- %    ReflectionFunction for array_unique returns wrong number of parametersPHParray_unique07.0.15.6.17standardP, i    Array key references break argument processingPHPkeyQ7.0.1soapJ+ W    Compile fails on system with 160 CPUsPHPsystem7.0.1coreV* ]    Define in auto_prepend_file is overwritePHPdefine7.0.25.6.18opcache^)     Local object in class method stays in memory for each callPHPeach7.0.2corel( #     Use-after-free vulnerability in SPL(SplObjectStorage, unserialize)PHPunserialize7.0.3splg' #     Use-after-free vulnerability in SPL(ArrayObject, unserialize)PHPunserialize7.0.3spl   	 q Yg  q                                                                                       ~9 #    phpinfo() reports Professional Editions of Windows 7/8/8.1/10 as "Business"PHPphpinfo7.0.05.6.115.5.27coret8 )    parse_ini_file() and parse_ini_string() segmentation faultPHPparse_ini_file7.0.05.6.115.5.27core\7 [9    Broken output of apache_request_headersPHPapache_request_headers7.0.0coreK6 [    uninitialised value in strtr with arrayPHPstrtr7.0.0core5 '#    unserialize() could lead to unexpected methods execution / NULL pointer derefPHPunserialize7.0.05.6.125.5.28corep4     Different arrays compare indentical due to integer key truncationPHPkey7.0.05.6.115.5.27coreL3 ]    sometimes empty $_SERVER['QUERY_STRING']PHPempty7.0.0core]2 {    __COMPILER_HALT_OFFSET__ under namespace is not definedPHPdefined7.0.0coreF1 Q    Segfault when doing unset($var());PHPunset`7.0.0core   
 Y /fb   Y                                                             eC y#    Use after free vulnerability in unserialize() with GMPPHPunserialize7.0.05.6.13gmp:B 3    copy 'n paste errorPHPcopyj7.0.05.6.12gddA     HTTP Authorization Header is sometimes passed to newer reqeustsPHPheader7.0.0fpmY@ ]   ! 304 responses return Content-Type headerPHPheader n7.0.05.6.12cli serverU? k    phpinfo: PHP Variables with $ and single quotesPHPphpinfo ث7.0.0coreP> [!    Segfault when calling phpversion('spl')PHPphpversion	w7.0.0corea=     Item added to array not being removed by array_pop/shift PHParray_pop~7.0.0cored<     Strict comparison between integer and empty string keys crashesPHPempty7.0.0corep;     Different arrays compare indentical due to integer key truncationPHPkey7.0.05.6.115.5.27core]: c    phpinfo() does not report many Windows SKUsPHPphpinfo7.0.05.6.115.5.27core   	 = E{  =                                   gL     Incorrect bump-along behavior with \K and empty string matchPHPemptyX7.0.05.6.13pcregK     Incorrect bump-along behavior with \K and empty string matchPHPemptyX7.0.05.6.13pcre|J #    pcntl_signal doesn't decrease ref-count of old handler when setting SIG_DFLPHPcount ]7.0.05.6.55.5.21pcntlyI '    OpenSSL error "key values mismatch" after openssl_pkcs12_read with extra certPHPkey7.0.05.6.12opensslqH     openssl extension does not get the DH parameters from DH key resourcePHPkey 7.0.05.6.14opensslRG e    segfault with eval and opcache fast shutdownPHPeval87.0.0opcachetF     Empty while and do-while segmentation fault with opcode on CLI enabledPHPempty]7.0.05.6.13opcachecE     PHP segfaults when accessing nvarchar(max) defined columnsPHPmaxW7.0.05.6.12odbcTD m    json_decode() decodes empty string without errorPHPemptyJ7.0.0json   	 e Iz  e                                                                           NU U    extract() breaks variable referencesPHPextract7.0.0standardQT S#    Unserialize shows UNKNOWN in resultPHPunserialize37.0.0standard|S #    Use After Free Vulnerability in unserialize() with SplDoublyLinkedListPHPunserialize7.0.05.6.125.5.28splyR #    Use After Free Vulnerability in unserialize() with SplObjectStoragePHPunserialize7.0.05.6.125.5.28splwQ #    Use After Free Vulnerability in unserialize() with SPLArrayObjectPHPunserialize7.0.05.6.125.5.28spliP     Incorrect ArrayObject serialization if unset is called in serialize()PHPunsetJ7.0.0splbO #    ArrayObject unserialize does not restore protected fieldsPHPunserialize/7.0.0splTN e    FASYNC not defined, needs sys/file.h includePHPdefinedF7.0.0phpdbg_M _7    phpdbg must respect set_exception_handlerPHPset_exception_handler7.0.0phpdbg   	 X =\  X                                                              ^ #    Use-after-free vulnerability in unserialize() with SplDoublyLinkedListPHPunserialize7.0.05.6.135.5.29standard~] #    Use-after-free vulnerability in unserialize() with SplObjectStoragePHPunserialize7.0.05.6.135.5.29standardb\ m    setcookie() conditional for empty values not metPHPsetcookie;7.0.05.6.14standardS[ U%    Segmentation fault with setrawcookiePHPsetrawcookie7.0.0standardvZ /    changing configuration with ignore_user_abort(true) isn't workingPHPignore_user_abort7.0.0standardBY C    pack('x') produces an errorPHPpackW7.0.0standardjX !    array_keys() doesn't respect references when $strict is truePHParray_keys7.0.0standardSW c    strtr() causes invalid writes and a crashesPHPstrtr7.0.0standardlV u7    array_merge_recursive corrupts memory of unset itemsPHParray_merge_recursive7.0.0standard    / \@:   /                 ci u%    Regression in array_filter's $flag argument in PHP 7PHParray_filter7.0.0standardCh C    Cookie name cannot be emptyPHPempty7.0.0standard_g m%    Passing parameters by reference and array_columnPHParray_column[7.0.0standardWf _#    get_browser fails with user agent of nullPHPget_browser_7.0.0standardIe Q    exec does not strip all whitespacePHPexec7.0.0standard`d i    Repeated iptcembed() adds superfluous FF bytesPHPiptcembed7.0.05.6.12standard\c q    scandir duplicates file name at every 65535th filePHPscandir 7.0.0standardPb Y    Allow "dirname" to go up various timesPHPdirname7.0.0standardja %    str_ireplace/php_string_tolower - Arbitrary Code ExecutionPHPstr_ireplace7.0.0standardJ` O    Assert breaking access on objectsPHPassert@7.0.0standardV_ e    extract() turns array elements to referencesPHPextractj7.0.0standard   	 - Ar`  -                   nr 7   session_regenerate_id() must close opened session on errorsPHPsession_regenerate_idSessionnq 7   session_regenerate_id() must close opened session on errorsPHPsession_regenerate_idSessionQp ['   session_start() returns TRUE on failurePHPsession_start~SessionPo _%   Allow pg_fetch_all() to index numericallyPHPpg_fetch_all Pgsql]n w)   pg_last_notice() is needed to get all notice messagesPHPpg_last_noticey-Pgsql_m    String offset assignment from an empty string inserts null bytePHPemptyCoreLl Z x     0Upgraded bundled PCRE library to 8.38. PHPCVE-2015-8383, CVE-2015-8386, CVE-2015-8387, CVE-2015-8389, CVE-2015-8390, CVE-2015-8391, CVE-2015-8393, CVE-2015-83947.0.3pcreExtensions/ExtpcreVk T       6Upgraded bundled SQLite lib to 3.9.2PHPsqlite3Extensions/Extsqlite3ej q    flock() out parameter not set correctly in windowsPHPflock 7.0.05.6.65.5.22standard   	 N ?^  N                                                    f{    Variable references on array elements don't work when using countPHPcounti7.0.4coreKz ?3   forward_static_call crashPHPforward_static_call7.0.4coreYy         Added SHA3 fixed mode algorithms (224, 256, 384, and 512 bit)PHPhashhashax W7   Regression in session_regenerate_id()PHPsession_regenerate_idn7.0.05.6.0sessionGw T#        Escaped U+2028 and U+2029 when JSON_UNESCAPED_UNICODE is supplied as json_encode options and added JSON_UNESCAPED_LINE_TERMINATORS to restore the previous behaviourPHPjson_encodejsonSv ^'       Empty session IDs do still start sessionsPHPsession_start	session]u }   Provide a way to fetch the current environment variablesPHPcurrentStandardht 	#   Add an option to pass a custom stream context to get_headers()PHPget_headers ٤StandardUs m   long2ip() doesn't accept integers in strict modePHPlong2ipStandard    u ZDm  u                                                                                             } (+       Copied handle with new option CURLOPT_HTTPHEADER crashes while curl_multi_execPHPcurl_multi_execc7.0.4curlu $       An integer overflow bug in php_str_to_str_ex() led arbitrary code execution.PHPstrtr7.0.4standardz *       An integer overflow bug in php_implode() could lead heap overflow, make crashesPHPimplode7.0.4standardW  U!   strip_tags improper php code parsingPHPstrip_tags@7.0.45.6.19standardP Y   compact() maintains references in php7PHPcompact7.0.4standardY~ e   finfo throws notice for specific python filePHPfile
7.0.45.6.19fileinfog} }  ! Built-in HTTP server, we can download file in web by bugPHPfile7.0.45.6.19cli server#| '#c   Multiple Heap Overflow due to integer overflows in xml/filter_url/addcslashesPHPaddcslashesCVE-2016-4344, CVE-2016-4345, CVE-2016-43467.0.4core   	 ? 9N   ?                                     D K   Define CURLE_SSL_CACERT_BADFILEPHPdefine27.0.7curlP _   ?? is not allowed on constant expressionsPHPconstant{7.0.7corer
 #   implode() inserts garbage into resulting string when joins very big integerPHPimplode7.0.7coreN	 M+   use-after-free - error_reportingPHPerror_reporting7.0.7core 3#'   ZipArchive class Use After Free Vulnerability in PHP's GC algorithm and unserializePHPunserializeCVE-2016-57737.0.85.6.235.5.37zip` l-       Use-After-Free / Double-Free in WDDX DeserializePHPwddx_deserialize5.5.33wddx~ 7   Reference to $_SESSION is lost after a call to session_regenerate_id()PHPsession_regenerate_id}7.0.0sessionc f7       xmlrpc_encode_request ignores encoding optionPHPxmlrpc_encode_requestM7.0.4xmlrpcz *#       Calls to date_modify will mutate timelib_rel_time, causing date_date_set issuesPHPdate_modifye7.0.4date   	 l &=Z  l                                                                                  L [   Cannot access array keys while uksort()PHPuksort7.0.6coreX e'   Segmentation fault on ZTS with gethostbynamePHPgethostbyname7.0.6coreA E   Crash on assert(new class{})PHPassert7.0.6core| %%   array_column() against an array of objects discards all values matching nullPHParray_column_7.0.7standarda o'   Referencing socket resources breaks stream_selectPHPstream_select7.0.7standardz !'   Cyclic references causing session_start(): Failed to decode session objectPHPsession_start$7.0.7sessioni !   pg_convert() doesn't accept ISO 8601 for datatype timestampPHPpg_convert7.0.7postgresb m+   pg_query_params(): NULL converts to empty stringPHPpg_query_params\7.0.7postgresr #   Including a file with anonymous classes multiple times leads to fatal errorPHPfileN7.0.7opcache   	 2 
Kn  2                        | '#   str_replace returns an incorrect resulting array after a foreach by referencePHPstr_replace!7.0.6standard] k#   Unserialize crushes on restore object referencePHPunserialize7.0.6standardZ g!   array_fill optimization breaks implementationPHParray_fill7.0.6standardg    Function pg_insert does not insert when column type = inetPHPpg_insert>7.0.6postgresp }+   pg_fetch_object binds parameters before call constructorPHPpg_fetch_object7.0.65.6.21postgresf    Locale::lookup incorrectly returns en or en_US if locale is emptyPHPempty7.0.6intlS e   Missing constant: IntlChar::NO_NUMERIC_VALUEPHPconstant77.0.6intl }c   Out of bounds heap read access in exif header processingPHPheaderCVE-2016-4542, CVE-2016-4543, CVE-2016-45447.0.65.6.215.5.35exif[ o   __debugInfo with empty string for key gives errorPHPempty7.0.65.6.21core   	 o \s.  o                                                                                     Q' U   Support constant CURLM_ADDED_ALREADYPHPconstant7.0.55.6.20curlh& w5   php_strip_whitespace() fails on some numerical valuesPHPphp_strip_whitespace~7.0.5coreB% I   yield from does not count EOLsPHPcount,7.0.5coref$ }   Segmentation fault on ZTS with date function (setlocale)PHPsetlocale7.0.55.6.20core}# %   php_crypt() crashes if crypt_r() does not exist or _REENTRANT is not definedPHPdefined7.0.65.6.21standardR" O)   substr_replace bug, string lengthPHPsubstr_replace7.0.6standardT! M#   Unserialize accepts wrongly dataPHPunserialize7.0.65.6.21standardy  A   Null pointer deref (segfault) in stream_context_get_defaultPHPstream_context_get_default7.0.6standardy A   header_register_callback() and register_shutdown_function()PHPregister_shutdown_function7.0.6standard   
 E :\m  E                                         g1    Assignment via string index access on an empty string converts to arrayPHPempty иCore^0 q   Heap overflow through proc_open and $env parameterPHPproc_openr7.0.9StandardZ/    tempnam() should raise notice if falling back to temp dirPHPtempnamqCoreQ. I9   stream_socket_get_name crashesPHPstream_socket_get_nameVStreamsR- [   readfile() mangles files larger than 2GPHPreadfile97.0.9StandardC, M   mail fails with invalid argumentPHPmail7.0.9PCREm+    FILTER_FLAG_NO_RES_RANGE does not cover whole 127.0.0.0/8 rangePHPrangeA7.0.105.6.25Filterk* %   array_column behaves incorrectly after foreach by referencePHParray_column7.0.5standardG) U   PharData fails to open specific filePHPfile7.0.5phary( '   Buffer over-write in finfo_open with malformed magic filePHPfileCVE-2015-8865g7.0.55.6.205.5.34fileinfo   
 { i\;  {                                                                                               Z; Y/   ignore_user_abort(false) has no effectPHPignore_user_abortl7.0.8standard`: u   Wrong reference when serialize/unserialize an objectPHPserialize%7.0.8standardt9 )   dns_get_record returns array containing elements of type 'unknown'PHPdns_get_record7.0.8standardZ8 q   range() with float step produces unexpected resultPHPrangeQ7.0.8standardJ7 C%   pg_lo_create arbitrary readPHPpg_lo_create7.0.8postgresY6 c#   pg_pconnect/pg_connect cause use-after-freePHPpg_pconnect7.0.8postgres`5 a#   Integer Overflow in addcslashes/addslashesPHPaddcslashes7.0.85.6.235.5.37coreK4 C   Integer Overflow in nl2br()PHPnl2brL7.0.85.6.235.5.37core?3 G   segfault, past-the-end accessPHPend7.0.8coreR2 e  ! Built-in webserver does not send Date headerPHPheaderlCLI Server   	 m {Cu   m                                                                                   5F )   getmxrr brokenPHPgetmxrr7.0.10coreGE =   microtime() leaks memoryPHPmicrotimeX7.0.105.6.25coreD 
5     Stream socket with remote address leads to a segmentation faultPHPstream_socket_accept7.0.95.6.245.5.38streamsjC p     Heap overflow through proc_open and $env parameterPHPproc_openr7.0.95.6.245.5.38standard^B Z     readfile() mangles files larger than 2GPHPreadfile97.0.95.6.245.5.38standarddA `/     Thick styled lines have scrambled patternsPHPimagesetthickness 7.0.95.6.245.5.38gdV@ V     Inadequate error handling in bzread()PHPbzread7.0.95.6.245.5.38bzipu? 	#   Use After Free Vulnerability in SNMP with GC and unserialize()PHPunserialize7.0.95.6.245.5.38snmp> #   Use After Free in unserialize() with Unexpected Session DeserializationPHPunserializer7.0.95.6.245.5.38session   	 4 0[  4                           O +   opendir() with ftp:// attempts to open data stream for non-existent directoriesPHPopendir7.0.105.6.25streams\N e   opendir() does not work with ftps:// wrapperPHPopendir ԟ7.0.105.6.25streamsmM '   base64_decode $strict fails with whitespace between paddingPHPbase64_decodeH7.0.10standardnL '   base64_decode skips a character after padding in strict modePHPbase64_decodeG7.0.10standard`K k'   base64_decode $strict fails to detect null bytePHPbase64_decode7.0.10standardrJ !   array_walk + array_replace_recursive create references from nothingPHParray_walk7.0.10standard]I k   SQLite should allow opening with empty filenamePHPempty7.0.105.6.25sqlite3mH    Spurious warning when exception is thrown in user defined functionPHPdefined7.0.10sqlite3]G q#   curl_setopt segfault with empty CURLOPT_HTTPHEADERPHPcurl_setopt7.0.10curl   	 ! %>v  !       qX )       mb_ereg_search_setpos does not accept a string's last positionPHPmb_ereg_search7.0.10mbstringtW )       mb_ereg_search increments search position when a match zero-widthPHPmb_ereg_search7.0.10mbstringgV v)       mb_ereg_search raises a warning if a match zero-widthPHPmb_ereg_search7.0.10mbstring^U j/       imagegammacorrect allows arbitrary write accessPHPimagegammacorrect7.0.10gddT        broken transparency of imagearc for truecolor in blendingmodePHPimagearc 47.0.10gdS "7       imagecreatefromstring() returns 500 Server Error but page is fully renderedPHPimagecreatefromstring7.0.10gdbR z#       Certification information (CERTINFO) data parsing errorPHPcurl_setopt7.0.10curllQ )       cal_days_month() fails for final month of the French calendarPHPcal_days_month	7.0.10dateiP z%     integer overflow in bzdecompress caused heap corruptionPHPbzdecompress7.0.105.6.25bzip   	 2 Dmv  2                        ma '       base64_decode $strict fails with whitespace between paddingPHPbase64_decodeH7.0.10standardn` '       base64_decode skips a character after padding in strict modePHPbase64_decodeG7.0.10standard`_ j'       base64_decode $strict fails to detect null bytePHPbase64_decode7.0.10standard^ ;       array_walk + array_replace_recursive create references from nothingPHParray_replace_recursive7.0.10standardr] !       array_walk + array_replace_recursive create references from nothingPHParray_walk7.0.10standardp\ !       CSV fields incorrectly split if escape char followed by UTF charsPHPstr_getcsv7.0.10standarda[ |       php_snmp_parse_oid integer overflow in memory allocationPHPsnmp3_set7.0.10snmpSZ ^!       preg_match missing group names in matchesPHPpcre_match7.0.10pcrecY |       `mb_ereg` causes buffer overflow on regexp compile errorPHPmb_ereg7.0.10mbstring   	 P /b-  P                                                      ok ~-      wddx_deserialize null dereference in php_wddx_pop_elementPHPwddx_deserialize_7.0.105.6.25wddxhj p-      wddx_deserialize null dereference with invalid xmlPHPwddx_deserializeV7.0.105.6.25wddxWi N-      wddx_deserialize null dereferencePHPwddx_deserialize.7.0.105.6.25wddxch f-      wddx_deserialize allows illegal memory accessPHPwddx_deserialize-7.0.105.6.25wddxrg 5       WDDX Packet Injection Vulnerability in wddx_serialize_value()PHPwddx_serialize_valuet7.0.10wddxUf V-       boolean always deserialized as "true"PHPwddx_deserializet7.0.10wddxre '       xmlrpc_encode() unexpected output after referencing array elementsPHPxmlrpc_encode7.0.10xmlrpcud  ;       ftps:// wrapper is vulnerable to protocol downgrade attackPHPphp_stream_write_stringC7.0.10streamsVb d       opendir() does not work with ftps:// wrapperPHPopendir ԟ7.0.10streams   
 R B<  R                                                      \u M3   stream_set_blocking doesn't workPHPstream_set_blocking7.0.115.6.26streamskt y#   get_browser() incorrectly parses entries with "+" signPHPget_browser 7.0.115.6.26standard_s _%   getimagesize returning FALSE on valid jpgPHPgetimagesizeV7.0.115.6.26standard]r c)   substr_compare NULL length interpreted as 0PHPsubstr_compare ؛7.0.11standardXq i   SimpleXML isset/unset do not respect namespacePHPunset7.0.11simplexmlfp u   Negative ftruncate() on php://memory exhausts memoryPHPftruncate7.0.115.6.26streamsLo L       integer overflow in php_uuencodePHPuuencode5.6.25standardKn F!       integer overflow in urlencodePHPurl_encode5.6.25standardfm b;       integer overflow in quoted_printable_encodePHPquoted_printable_encode5.6.25standardRl N'       integer overflow in base64_decodePHPbase64_decode5.6.25standard   	 . S  .                    g #   SplObjectStorage unserialize allows use of non-object as keyPHPunserialize*7.0.12splp~ }+   session_destroy null dereference in ps_files_path_createPHPsession_destroy7.0.125.6.27session} K   \PDOStatement::nextRowset() should succeed when all rows in current rowset haven't been fetchedPHPcurrent:7.0.12pdo_dblib]| a   mb_substr only takes 32-bit signed integerPHPmb_substr7.0.125.6.26mbstringU{ U#   Use After Free in PHP7 unserialize()PHPunserialize7.0.125.6.27coreWz U'   Write out of bounds at number_formatPHPnumber_format7.0.125.6.27coreOy U   crypt broken when salt is 'too' longPHPcryptb7.0.125.6.27corex +   Out of bounds global memory read in BF_crypt triggered by password_verifyPHPpassword_verify7.0.125.6.27core|v #   ftps:// opendir wrapper data channel encryption fails with IIS FTP 7.5, 8.5PHPopendir<7.0.115.6.25streams   
  L#^  u   T	 T1       imagecreatefromgd2() may leak memoryPHPimagecreatefromgd27.0.12gdg j5       mb_convert_variables() cannot detect recursion)PHPmb_convert_variables7.0.12mbstring| '  ! getConstant for a array constant with constant values returns NULL/NFC/UKNOWNPHPconstant7.0.11reflectionm    call to empty() on NULL result using PDO::FETCH_LAZY returns falsePHPempty 7.0.115.6.26pdoR e   iconv_substr returns false for empty stringsPHPempty7.0.11iconvZ o   imagesetstyle() causes OOB read for empty $stylesPHPempty7.0.115.6.25gdj    Cannot upload file using ftp_put to FTPES with require_ssl_reusePHPfile37.0.115.6.26ftp\ s   Cannot fetch multiple values with group in ini filePHPfile7.0.115.6.26dbab e9   stream_socket_recvfrom read access violationPHPstream_socket_recvfrom7.0.11coreL  [   assign_dim on string doesn't reset hvalPHPreset7.0.11core   	 \ 6'  \                                                                  \ a+   Null Pointer Dereference - mb_ereg_replacePHPmb_ereg_replace7.0.7mbstringZ c/   xml_parser_create/xml_parser_free leaks memPHPxml_parser_create7.0.8xmlt ]7'   xml_parse_into_struct segmentation faultPHPxml_parse_into_structCVE-2016-45397.0.65.6.215.5.35xml C'   openssl_random_pseudo_bytes() is not cryptographically securePHPopenssl_random_pseudo_bytesCVE-2015-8867~7.0.05.6.125.5.28openssl` q%   Add IV parameter for openssl_seal and openssl_openPHPopenssl_seal&7.0.0opensslO C%   openssl_seal fails with AESPHPopenssl_seal 7.0.05.6.14opensslW S%   Missing ARG_INFO for openssl_seal()PHPopenssl_seal7.0.05.6.14opensslY O+   crash in openssl_encrypt functionPHPopenssl_encrypt;7.0.125.6.27opensslk
 fC       crash in openssl_random_pseudo_bytes functionPHPopenssl_random_pseudo_bytes<7.0.12openssl   	 # 1Hd   #         s !      imagescale() is not affected by, but affects imagesetinterpolation()PHPimagescale87.0.135.6.28gdR K   parse_url return wrong hostnamePHPparse_url7.0.135.6.28standards };   array_replace_recursive sometimes mutates its parametersPHParray_replace_recursiveI7.0.13standard_ o   passing additional_parameters causes mail to failPHPmail7.0.135.6.28standard )'   session_unset() empties values from all variables in which is $_session storedPHPsession_unset97.0.13session] u   parse_str() without a second argument leads to crashPHPparse_str7.0.13core #)   Buffer over-read in exif_read_data with TIFF IFD tag byte value of 32 bytesPHPexif_read_data7.0.05.6.135.5.29exifn +   mb_ereg_replace - mbc_to_code (oniguruma) - oob read accessPHPmb_ereg_replace7.0.9mbstring[ a+   Null pointer dereference - openssl_csr_newPHPopenssl_csr_new7.0.7openssl   
 8 "pQ   8                            W) U+  version_compare illegal write accessPHPversion_compare7.0.14standard]( k  Unsetting result set may reset other result setPHPreset:7.0.145.6.29sqlite3\' ]!  Incorrect SQL generated for pg_copy_to()PHPpg_copy_to7.0.145.6.29postgresR& a  Logging for opcache has an empty file namePHPemptyJ7.0.14opcacheb% r      Integer Overflow in "_php_imap_mail" leads to crashPHPimap_mail7.0.135.6.28imapb$ ^7      Stack Buffer Overflow in GD dynamicGetbufPHPimagecreatefromstring@7.0.135.6.28gd_# n!      Integer overflow in gdImageScaleBilinearPalette()PHPimagescale?7.0.135.6.28gdM" R!       Bind reference overwritten on PHP 7PHPoci8_parse7.0.13oci8z! -      NULL Pointer Dereference in WDDX Packet Deserialization with PDORowPHPwddx_deserializes7.0.135.6.28wddx^  n      Integer overflow in imageline() with antialiasingPHPimageline7.0.135.6.28gd   
 : W,g  :                              U3 N#      get_browser function is very slowPHPget_browserZ7.1.17.0.15standardr2  )      dns_get_record does not populate $additional out parameterPHPdns_get_recordz7.1.17.0.15standard]1 r      DOTNET read access violation using invalid codepagePHPdotnet7.1.17.0.15comd0 t-      Invalid read when wddx decodes empty boolean elementPHPwddx_deserialize7.0.14wddx[/ Z-      Integer Overflow in php_html_entities()PHPhtmlspecialchars7.0.14standardh. fC      A use-after-free in zend allocator managementPHPpreg_replace_callback_array7.0.14pcre`- b7      Segmentation fault on pcre_replace_callbackPHPpcre_replace_callback7.0.14pcreZ, f'      odbc_errormsg returns trash, always 513 bytesPHPodbc_errormsg7.0.14odbcJ+ B+      php_json_encode depth issuePHPphp_json_encode67.0.14jsonY* u  Invalid read when wddx decodes empty boolean elementPHPempty7.0.14wddx    t 9Fg  t                                                                                      M> i  PHP_FCGI_CHILDREN is not included in phpinfo()PHP7.1.2fcgiN= k  php-cgi fails to load -c specified php.ini filePHP 7.1.2fcgiO< ]  DTrace reported as enabled when disabledPHP 7.1.27.0.16dtraceT; m  getAttributeNodeNS doesn't get xmlns* attributesPHP n7.1.27.0.16domG: Q  assertion error in debug_zval_dumpPHP 7.1.27.0.16core;9 E  arginfo incorrect for unpackPHP!
7.1.2coreF8 O  segfault in debug_print_backtracePHP 7.1.27.0.16coreM7 i  bug with symlink related to cyrillic directoryPHP 7.1.2coreW6 q  Crash when exporting **= in expansion of assign opPHP 7.1.27.0.16coreI5 a  readlink() returns garbage for UTF-8 pathsPHP 7.1.2corex4  7      get_defined_functions() should not list disabled functionsPHPget_defined_functions|7.1.17.0.15standard    . ddf  } .              LJ K % All data are fetched as stringsPHP7.1.27.0.16pdo_firebirdEI S  openssl_decrypt triggers bug in PDOPHP 7.1.2opensslOH g  Compile ext/openssl with openssl 1.1.0 on WinPHP7.1.2opensslLG U  add serial hex to return value arrayPHP_7.1.27.0.16opensslWF k  crash on finish work with phar in cli + opcachePHP 7.1.27.0.16opcache\E u  segfault on close() after free_result() with mysqlndPHP7.1.27.0.16mysqlndBD C  leak in mysqli_fetch_objectPHP 7.1.27.0.16mysqliUC m  error/segfault with ldap_mod_replace and opcachePHP 7.1.27.0.16ldapQB q  environmental build dependency in hash sha3 sourcePHP 7.1.2hashQA g  test for gmp.h needs to test machine includesPHPi7.1.27.0.16gmpC@ M  Premature failing of XBM readingPHP 7.1.27.0.16gdS? k  php-fpm does not close stderr when using syslogPHP7.1.27.0.16fpm    8 >@v*   8                          PU g  mail.log = syslog contains double informationPHP7.1.2standardLT _  intval() with base 0 should detect binaryPHP7.1.2standardMS U  money_format stores wrong length AIXPHP7.1.27.0.16standardIR M  imap is undefined service on AIXPHP7.1.27.0.16standardsQ   SoapClient stumbles over WSDL delivered with "Transfer-Encoding: chunked"PHP 7.1.27.0.16standardQP ]  closing of fd incorrect when PTS enabledPHPB7.1.27.0.16standardSO k  spl_autoload() crashes when calls magic _call()PHP 7.1.27.0.16splKN S  session not readable by root in CLIPHP7.1.27.0.16sessionWM o  configure script incorrectly checks for ttyname_rPHP37.1.27.0.16posixQL e  PharData::compress() doesn't close temp filePHP7.1.27.0.16pharkK   lastInsertId fails to throw an exception for wrong sequence namePHP 7.1.27.0.16pdo_pgsql   
 C Snx  C                                       nf   gost-crypto hash incorrect if input data contains long 0xFF sequencePHPhash7.1.37.0.17hashgd w 0"new DateTime()" sometimes returns 1 second ago valuePHP  m7.1.3dateExtensions/ExtdateWa _ NAN check fails on Alpine Linux with muslPHP 7.1.37.0.17corePhp/IsNANq` -  array_key_exists fails on arrays created by get_object_varsPHParray_key_exists!7.1.37.0.17core[ )/  PHP hangs when an invalid value is dynamically passed to typehinted by-ref argPHPset_error_handler!7.1.3coreSZ K 6Segfault with nested generatorsPHP!7.1.3coreFunctions/IsGenerator:Y A  Link use CC instead of CXXPHP 7.0.16intlOX m  double fastcgi_end_request on max_children limitPHP7.0.16fpmQW o  zend_print_flat_zval_r doesn't consider referencePHP 7.0.16coreVV q  ZipArchive::addGlob ignores remove_all_path optionPHP7.1.27.0.16zip   	 U w@  U                                                           lp i9  Invalid memory access in zend_inline_hash_funcPHPstream_filter_register7.1.37.0.17streamsyo #  PHP on Linux should use /dev/urandom when getrandom is not availablePHPrandom_byte!y7.1.37.0.17standard}n #  is_callable callable name reports misleading value for anonymous classesPHPis_callable7.1.37.0.17standardPm O%  substr_count with length=0 brokenPHPsubstr_count!97.1.3standardal u  mail.add_x_header causes RFC-breaking lone line feedPHPmail!7.1.37.0.17standardSk Q+  Memory leak with openssl_encrypt()PHPopenssl_encrypt!s7.1.3openssl>i 1  Segfault with listPHPlist!#7.1.37.0.17opcacheh q3 4fetch_array broken data. Data more then MEDIUMBLOBPHPstream_get_contents!%7.1.37.0.17mysqlndExtensions/Extmysqlijg 	  ReflectionFunction for imagepng is missing last two parametersPHPimagepng!/7.1.37.0.17gd   	 7 =o  7                             jz 	  ReflectionFunction incorrectly reports the number of argumentsPHPfputcsv!7.0.17standardix g! 0wrong day when using "this week" in strtotimePHPstrtotime !I7.0.17dateExtensions/Extdatew / 0$date-&gt;modify('Friday this week') doesn't return a Friday if $date is a SundayPHP 7.0.17dateExtensions/Extdate]v a 0first/last day of' flag is not being resetPHP  7.0.17dateExtensions/Extdatetu  0wrong timestamp when call setTimeZone multi times with UTC offsetPHP7.0.17dateExtensions/Extdate]t c 0DateTime wrong when date string is negativePHPN7.0.17dateExtensions/Extdateks } 0Relative datetime format ignores weekday on sundays onlyPHP 7.0.17dateExtensions/ExtdateJr K#  is_infinite(-INF) returns falsePHPis_infinite!77.0.17coresq }3  stream_get_contents maxlength&gt;-1 returns empty stringPHPstream_get_contents!j7.1.37.0.17streams   
 [ X"o  [                                                               p   OPcache compilation performance regression in PHP 5.6/7 with huge classesPHPioca"
7.1.4opcacheL O  iconv fails to fail on surrogatesPHPiconv!7.1.47.0.18iconvO c  LIBXML_NOWARNING flag ingnored on loadHTML*PHP!7.1.47.0.18dom\ o  Swatch time value incorrect for dates before 1970PHPgmdate7.1.47.0.18dateQ  I (yield fromLABEL is over-greedyPHP">7.1.47.0.18corePhp/YieldUsagel   Build problems after 7.0.17 release: undefined reference to `isfinite'PHP"7.1.47.0.18coreU~ y  Resolution of self::FOO in class constants not correctPHP,7.1.4corel}   Leak with instance method calling static method with referenced returnPHP 7.1.47.0.18cored| 	  falsely exits with "Out of Memory" when using USE_ZEND_ALLOC=0PHP7.1.47.0.18core>{ K  static embed SAPI linkage errorPHP!7.1.4core   
 o /97  o                                                                                   k   Null coalescing operator fails for undeclared static class propertiesPHP!7.1.57.0.19coreW }  Magic function __get has different behavior in php 7.1.xPHP"d7.1.5coreQ q  Segfault when killing within bash script trap codePHP"q7.1.5coreP c  Endless loop bypassing execution time limitPHP"7.1.57.0.19coreX
 ]#  deflate_add can allocate too much memoryPHPdeflate_add" 7.1.47.0.18zlib[	 a  Correctly fail on invalid IP address portsPHPfsockopen!7.1.47.0.18streamsR m  Allow creation of deterministic sqlite functionsPHP!7.1.4sqlite3@ Q  ArrayObject can not notice changesPHP!J7.1.4spll   Expose MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT to PDO interfacePHP[7.1.47.0.18pdo mysql_ o  fwrite() on non-blocking SSL sockets doesn't workPHPfwrite7.1.47.0.18openssl   	  Bz7                                                                                                              _ ] 6Opcached version produces a nested arrayPHP"7.1.5opcacheExtensions/ExtopcacheL 7 6foreach infinite loopPHP"7.1.5opcacheExtensions/Extopcachel w 6Segmentation error while running a script in CLI modePHP"7.1.5opcacheExtensions/Extopcachev  0IntlDateFormatter-&gt;format() doesn't return microseconds/fractionsPHP":7.1.5intlExtensions/ExtintlX [ 0Intl does not support DateTimeImmutablePHP 7.1.5intlExtensions/Extintlg   Invalid free of persistent results on error/connection lossPHPpdo"7.1.57.0.19mysqlnd[ Y .Wrong reflection on DOMNode::cloneNodePHP"7.1.57.0.19domExtensions/Extdoma k'  stream_select() is broken on Windows NanoserverPHPstream_select"7.1.57.0.19coreW U 4multiple catch freezes in some casesPHP"7.1.5corePhp/TryMultipleCatch     ,a
                                                                                                                        x& 5  Remote socket URI with unique persistence identifier brokenPHPstream_socket_client"7.1.57.0.19streamsT% [!  Compaction in array_rand() violates COWPHParray_rand"y7.1.5standardY$ [  setcookie allows max-age to be negativePHPsetcookie7.1.57.0.19standardl#   readline() immediately returns false in interactive console modePHPreadline"7.1.5readlinec" e 0phar method parameters reflection correctionPHP"7.1.57.0.19pharExtensions/Extphar|! 5  openssl_x509_parse fails to parse ASN.1 UTCTime without secondsPHPopenssl_x509_parse()"e7.1.57.0.19openssls  -  Segfault in openssl_pkey_new when generating DSA or DH keyPHPopenssl_pkey_new7.1.57.0.19opensslv y=  null character not allowed in openssl_pkey_get_privatePHPopenssl_pkey_get_private i7.1.57.0.19openssl   	 J !_D  J                                                i/ e 6SIGSEGV with opcache.revalidate_path enabledPHP#d7.1.67.0.20opcacheExtensions/Extopcache
. ) 4mysqli::change_user() doesn't accept null as $database argument w/strict_typesPHP#37.1.67.0.20mysqliExtensions/Extmysqlie- i 0wrong reflection on Collator::sortWithSortKeysPHP"7.1.67.0.20intlExtensions/ExtintlT, S 0__DIR__ wrong for unicode characterPHP#]7.1.6coreExtensions/ExtintlY+ u  SIGILL in ZEND_FETCH_CLASS_CONSTANT_SPEC_CONST_CONSTPHP#27.1.67.0.20coreR* g  crash (SIGSEGV) in _zend_hash_add_or_update_iPHP#h7.1.67.0.20corej) q 6incorrect reflection for SQLite3::enableExceptionsPHP"7.0.19sqlite3Extensions/Extsqlite3e( y#  Reflection information for ini_get_all() is incompletePHPini_get_all"7.0.19standardt' )  mysqli_connect adding ":3306" to $host if $port parameter not givenPHPmysqli_connect"7.0.19mysqli   	   yLa          ^: _.References to deleted XPath query resultsPHP7.1.77.0.21domExtensions/Extdom`9 k0implement clone for DatePeriod and DateIntervalPHP#7.1.7dateExtensions/Extdatez8 	- wddx_deserialize() heap out-of-bound read via php_parse_date()PHPwddx_deserialize$C7.1.77.0.215.6.31corey7 # Heap buffer overread (READ: 1) finish_nested_data from unserializePHPunserialize!7.1.77.0.215.6.31corel6 s) PHP INI Parsing Stack Buffer Overflow VulnerabilityPHPparse_ini_file#k7.1.77.0.215.6.31coref3 W :Wrong reflection on XMLReader::expandPHP"7.1.67.0.20xmlreaderExtensions/Extxmlreader[2 i  win32/sendmail.c anchors CC header but not BCCPHPmail#7.1.67.0.20standardc1 }  readline() moves the cursor to the beginning of the linePHPreadline"7.1.6readline0 # 0Phar::webPhar() does not handle requests sent through PUT and DELETE methodPHP 7.1.67.0.20pharExtensions/Extphar    K .5D  K                                                   hB s.null coalescing operator failing with SplFixedArrayPHP"7.1.77.0.21splExtensions/Extspl
A !<Segfault when cast Reflection object to string with undefined constantPHP#7.1.77.0.21reflectionExtensions/Extreflection{@ }7 negative-size-param (-1) in memcpy in zif_openssl_seal()PHPopenssl_get_publickey#7.1.77.0.215.6.31opensslp? 7 pkcs7_en/decrypt does not work if \x1a is used in contentPHPopenssl_pkcs7_decrypt#7.1.7openssly> 6Segfault with opcache.memory_protect and validate_timestampPHP#7.1.77.0.21opcacheExtensions/Extopcachez= 0Wrong reflection on Collator::getSortKey and collator_get_sort_keyPHP#7.1.77.0.21intlExtensions/Extintld< g0Stack Buffer Overflow in msgfmt_parse_messagePHP7.1.77.0.21intlExtensions/Extintlh; a7 Buffer over-read into uninitialized memoryPHPimagecreatefromstring"7.1.77.0.215.6.31gd   	 t Fu#  t                                                                                          aL s parse_url() broken when query string contains colonPHPparse_url$7.1.87.0.22coreHJ I Heap buffer overflow in substrPHPsubstr7.0.21standardzI <Invalid Reflection signatures for random_bytes and random_intPHP#7.0.21standardExtensions/ExtreflectionxH ! Segmentation fault in PHP7.1.1(compiled using the bundled PCRE library)PHPpreg_match!g7.0.215.6.31pcreWG W0grapheme_strpos illegal memory accessPHP7.0.21intlExtensions/ExtintlcF W9 stream_socket_get_name() returns '\0'PHPstream_socket_get_name#<7.1.77.0.21streamshE o0Incorrect conversion array with WSDL_CACHE_MEMORYPHP#7.1.77.0.21soapExtensions/Extsoap]D Y0Phar::__construct reflection incorrectPHP"7.1.77.0.21pharExtensions/ExtpharWC Q.ftp:// wrapper ignores context argPHP#f7.1.77.0.21ftpExtensions/Extftp   
 T Vy  T                                                        VZ o dictionary option of inflate_init() does not workPHP 7.1.87.0.22zlibWY Q- huge memleak when wddx_unserializePHPwddx_unserialize7.1.87.0.22wddxuX % SQLite3::__construct() produces "out of memory" exception with invalid flagsPHP$7.1.87.0.22sqlite3CW K PHP freezes with AppendIteratorPHP7.1.87.0.22splSV k PDOStatement::debugDumpParams() truncates queryPHP7.1.87.0.22pdo[U  pkcs7_en/decrypt does not work if \x0a is used in contentPHP$.7.1.8openssleS a9 Integer overflow in oci_bind_array_by_namePHPoci_bind_array_by_name#7.1.87.0.22oci8rR + property_exists returns true on unknown DateInterval propertyPHPproperty_exists$d7.1.87.0.22dateGO _ Crash when crawling through network sharePHP$7.1.8spl]N g# Use After Free in unserialize() SplFixedArrayPHPunserialize 7.1.87.0.22core   	 b J F  b                                                                         e #' PHP crashes when calling mysqli_result::fetch_object with an abstract classPHPmysqli_result$7.1.97.0.23mysqli]d U- Wrong reflection on mb_eregi_replacePHPmb_eregi_replace$7.1.97.0.23mbstringjc q+ mb_convert_kana() does not convert iteration marksPHPmb_convert_kana 7.1.97.0.23mbstringjb } Segmentation fault mb_strcut with HTML-ENTITIES encodingPHPmb_strcut7.1.97.0.23mbstring]a c' Wrong reflection on some locale_* functionsPHPlocale_lookup$7.1.97.0.23intlk` u0Fixed finding CURL on systems with multiarch supportPHP!7.1.97.0.23curlExtensions/ExtcurlY_ ]0Main CWD initialized with wrong codepagePHP%77.1.9coreExtensions/ExtfileN^ _ html_errors=1 breaks unhandled exceptionsPHP#7.1.97.0.23coreb[ 	 Opcache overwrites argument of GENERATOR_RETURN within finallyPHP$X7.0.22opcache    a 4F;  a                                                                         Um M.Unserialize ArrayIterator brokenPHP#7.1.97.0.23splExtensions/Extspll ; spl_autoload_unregister can't handle spl_autoload_functions resultsPHPspl_autoload_unregister%)7.1.97.0.23splk {Q:nullpointer deref in simplexml_element_getDocNamespacesPHPsimplexml_element_getdocnamespaces$7.1.97.0.23simplexmlExtensions/Extsimplexmljj g7 SID constant created with wrong module numberPHPsession_regenerate_id$Q7.1.97.0.23sessionyi 6Url Rewriting (trans_sid) not working on urls that start with "#"PHP$7.1.9sessionExtensions/Extsessionoh e!<null pointer dereference in _function_stringPHP$7.1.97.0.23reflectionExtensions/Extreflectiongg m0include_path has a 4096 char limit in some casesPHP$7.1.97.0.23pharExtensions/Extphar_f ]7 Narrowing occurred during type inferencePHPspl_autoload_register$7.1.9opcache   	 d E$  d                                                                          Zv _# run-tests.php issues with EXTENSION blockPHPgethostname%"7.1.107.0.24core`u i0Null Pointer Dereference in timelib_time_clonePHP$7.0.23dateExtensions/Extdatext ' Incorrect xmlrpc serialization for classes with declared propertiesPHPxmlrpc_encode$7.1.97.0.23xmlrpcZs O5 WDDX uses wrong decimal seperatorPHPwddx_serialize_value A7.1.97.0.23wddx r ## A Denial of Service Vulnerability was found when performing deserializationPHPunserialize%.7.1.97.0.23standardmq # heap-use-after-free when unserializing invalid array sizePHPunserialize!w7.1.97.0.23standardRp S unpack with X* causes infinity loopPHPunpack%C7.1.97.0.23standard\o [.Crash in recursive iterator destructorsPHP%7.1.97.0.23splExtensions/ExtsplYn a.Appending AppendIterator leads to segfaultPHP$7.1.9splExtensions/Extspl   
 " J,k   "      y .AppendIterator::append() is broken when appending another AppendIteratorPHP%7.1.10splExtensions/ExtsplM g segfault in collator_convert_object_to_stringPHP%7.1.10intlz  	7 IntlGregorianCalendar doesn't have constants from parent classPHPintlgregoriancalendar%R7.1.107.0.24intlY Y! textdomain(null) throws in strict modePHPtextdomain 7.1.107.0.24gettextb~ i,libgd/gd_interpolation.c:1786: suspicious if ?PHP%7.1.107.0.24gdExtensions/ExtgdY} W- gdImageGrayScale() may produce colorsPHPgdimagegrayscale%t7.1.107.0.24gdez w bcpowmod() misbehaves for non-integer base or modulusPHPbcpowmod%7.1.107.0.24bcmathWy [ bcpowmod() may return 1 if modulus is 1PHPbcpowmod F7.1.107.0.24bcmathbx Y4BC math handles minus zero incorrectlyPHP 7.1.107.0.24bcmathExtensions/ExtbcmathNw I bcpowmod() fails if scale != 0PHPbcpowmod 7.1.107.0.24bcmath   	 T 5^C  T                                                          ^ ]- Out-Of-Bounds Read in timelib_meridian()PHPwddx_deserialize%/7.1.117.0.25date
 #<debug info of Closures of internal functions contain garbage argument namesPHP&7.1.117.0.25coreExtensions/ExtreflectionQ
 c Segfault when calling is_callable on parentPHP%7.1.117.0.25coreh	  Incorrect token formatting on two parse errors in one requestPHPeval%7.1.117.0.25coreY e infinite loop when printing an error-messagePHPini_set%7.1.117.0.25coreh o/ Null pointer dereference in zend_mm_alloc_small()PHPset_error_handler%7.1.117.0.25corei u# gethostname fails if your host name is 64 chars longPHPgethostname%Y7.1.107.0.24standardR S# signed integer overflow in parse_ivPHPunserialize%7.1.10standards .incorrect behavior of AppendIterator::append in foreach loopPHP%7.1.107.0.24splExtensions/Extspl   	 7 s,r  7                             e  Builtin webserver crash after chdir in a shutdown functionPHPchdir&7.1.127.0.26clim {.SplDoublyLinkedList::setIteratorMode masks intern flagsPHP7.1.117.0.25splExtensions/Extspl` a.Type 'bit' is fetched as unexpected stringPHP%7.1.11pdo_mysqlExtensions/Extpdo` ]0applied upstream patch for CVE-2016-1283PHP%7.1.117.0.25pcreExtensions/ExtpcreT E6Request hangs and not finishPHP%7.1.11opcacheExtensions/Extopcachee k4Data corruption when reading fields of bit typePHP%
7.1.11mysqliExtensions/Extmysqlih e4arcfour encryption stream filter crashes phpPHPW7.1.117.0.25mcryptExtensions/Extmcryptq 0The parameter of UConverter::getAliases() is not optionalPHP&67.1.117.0.25intlExtensions/Extintl	 )4error: 'zend_hash_key' has no member named 'arKey' in apache2handlerPHP&/7.1.117.0.25apache2handlerExtensions/Extapache   	 l (i2  l                                                                                  Z# K1 openssl_x509_parse leaks memoryPHPopenssl_x509_parse&c7.1.127.0.26opensslf" i- Wrong reflection for mysqli_fetch_all functionPHPmysqli_fetch_all&7.1.127.0.26mysqlib! _) Incorrect reflection for ibase_[p]connectPHPibase_pconnect&7.1.127.0.26interbase  0UConverter::setDestinationEncoding changes source instead of destinationPHP&57.1.127.0.26intlExtensions/ExtintlJ G Wrong reflection on imagewebpPHPimagewebp&7.1.127.0.26gdU Y# imagerotate may alter image dimensionsPHPimagerotate |7.1.127.0.26gdd e0Exif extension has built in revision versionPHP&%7.1.127.0.26exifExtensions/Extexifa S6Enchant still reports version 1.1.0PHP&e7.1.127.0.26enchantExtensions/Extenchantq o; enchant_broker_get_path crashes if no path is setPHPenchant_broker_get_path N7.1.127.0.26enchant   	 ] 7y  ]                                                                   h5 u+ preg_last_error not returning error code after errorPHPpreg_last_error!7.2.17.1.13pcreJ4 90Invalid opcode 138/1/1PHP'$7.2.1opcacheExtensions/Extdateg0 q1 Potential infinite loop in gdImageCreateFromGifCtxPHPimagecreatefromgif'37.2.17.1.13gd / E libxml_disable_entity_loader setting is shared between requestsPHPlibxml_disable_entity_loader 7.2.17.1.13fpms-  php-process crash when is_file() is used with strings longer 260 charsPHPis_file%B7.2.17.1.13coreb( m% Wrong reflection on inflate_init and inflate_addPHPinflate_init&#7.1.127.0.26zlibV' m Wrong reflection on SoapClient::__setSoapHeadersPHP&7.1.127.0.26soapd& w Default link incorrectly cleared/linked by pg_close()PHPpg_close&7.1.127.0.26pgsql_$ a% Wrong reflection for openssl_open functionPHPopenssl_open&+7.1.127.0.26openssl    K PYe   K                                                   C> A Path 260 character problemPHPcopy'7.2.27.1.14coreO< A.Segfault with libzip 1.3.1PHP'7.2.17.1.13zipExtensions/Extzip; + putenv does not work properly if parameter contains non-ASCII unicode characterPHPputenv'67.2.17.1.13standardm: k7 php_ini_scanned_files() not reporting correctlyPHPphp_ini_scanned_files7.2.17.1.13standard 9 %! accept EFAULT in addition to ENOSYS as indicator that getrandom() is missingPHPrandom_int&7.2.17.1.13standards8  mt_rand returns value outside [$min,$max]+ on 32-bit) (Remi)</li>
  <li>Fixed bug <a href="http://bugs.php.net/75535">#75535</a> (Inappropriately parsing HTTP response leads to PHP segment faultPHPmt_rand&7.2.17.1.13standardJ7 E fread not free unused bufferPHPfread&7.2.17.1.13standard`6 _0remove file name from output to avoid XSSPHP$7.2.17.1.13pharExtensions/Extphar   	 d ;-L  d                                                                          rP .RecursiveArrayIterator does not traverse arrays by referencePHP'7.2.27.1.14splExtensions/ExtsplpN 0SoapClient generates E_ERROR even if exceptions=1 is usedPHPE7.2.27.1.14soapExtensions/ExtsoapmL k7 readline_read_history segfaults with empty filePHPreadline_read_history'7.2.27.1.14readlinenK ! pg_version() crashes when called on a connection to cockroachPHPpg_version'7.2.27.1.14pgsqlOG A2Using @ crashes php7.2-fpmPHP'7.2.2opcacheStructures/NoscreamJD A# imap_append HeapCorructionPHPimap_append'7.2.27.1.14imaplC  getenv() crashes on Windows 7.2.1 when second parameter is falsePHPgetenv(7.2.27.1.14fcgi]B u Exit inside generator finally results in fatal errorPHPexit&7.2.27.1.14corebA ]7 arg of get_defined_functions is optionalPHPget_defined_functions(7.2.27.1.14core   	 F j+  F                                            bZ w calling var_dump on a DateTimeZone object modifies itPHPvar_dump67.2.37.1.15date}Y 0Argument 2 for `DateTimeZone::listIdentifiers()` should accept `null`PHP(7.2.37.1.15dateExtensions/Extdate]X Y0Timezone gets truncated when formattedPHP(Q7.2.37.1.15dateExtensions/ExtdateXV e' "stream_isatty" returns wrong value on s390xPHPstream_isatty(X7.2.3core U ).self keyword leads to incorrectly generated TypeError when in closure in traitPHP%G7.1.14coreTraits/TraitUsageUT Y% array_values don't work on empty arrayPHParray_values'7.2.2standardRS G% substr_count incorrect resultPHPsubstr_count(7.2.27.1.14standardnR .RecursiveArrayIterator does not iterate object propertiesPHP7.2.27.1.14splExtensions/ExtspluQ .RecursiveArrayIterator doesn't have constants from parent classPHP%7.2.27.1.14splExtensions/Extspl   
  3`G    mf s/ Prevent reading beyond buffer start in http wrapperPHPfile_get_contents(7.2.37.1.15standard]e Y) DNS_CAA record results contain garbagePHPdns_get_record(7.2.37.1.15standardWd Q.strange behavior of AppendIteratorPHP#7.2.37.1.15splExtensions/ExtsplIc U Modulus value not stored in variablePHPmod(7.2.3opcachexb / file_get_contents $http_response_header variable bugged with opcachePHPfile_get_contents(u7.2.3opcacheOa [ opcache segfault when installing BitrixPHPstrpos'7.2.3opcacheb` g- Unable to retrieve value of varchar(max) typePHPodbc_fetch_array7.2.37.1.15odbck_ u0deal with leading slash while adding files correctlyPHP 7.2.37.1.15pharExtensions/Extpharx^ 0Phar::extractTo() does not accept specific directories to be extractedPHP 7.2.3pharExtensions/ExtpharO] M+ Memory leak in pg_escape_bytea()PHPpg_escape_bytea(>7.2.3pgsql   	 ) 0
  )               Sq C Strange references behaviorPHParray_map(7.2.47.1.157.0.29standardp 0Segmentation fault in buildFromIterator when directory name contains a \nPHP)57.2.47.1.157.0.29pharExtensions/Extphar~o + pcntl_wexitstatus returns incorrect on Big_Endian platform (s390x)PHPpcntl_wifexited(a7.2.47.1.157.0.29pcntl	n 6Assertion failure in live range DCE due to block pass misoptimizationPHP(7.2.47.1.157.0.29opcacheExtensions/Extopcachekm Y8wrong unicode mapping in some charsetsPHP Q7.2.47.1.157.0.29mbstringExtensions/ExtmbstringNl G Freeing uninitialized pointerPHPiconv([7.2.47.1.157.0.29iconvVk K) null pointer access crashed phpPHPimageantialias)	7.2.47.1.157.0.29gd\j _! signed integer conversion in imagescale()PHPimagescale 7.2.47.1.157.0.29gdng q/ Segfault while throwing exception in error_handlerPHPset_error_handler(7.2.47.1.157.0.29core   	 d ,4|&  d                                                                          R W) exif_read_data zend_mm_heap corruptedPHPexif_read_data)7.2.6exifj~ {) Heap Buffer Overflow (READ: 1786) in exif_iif_add_valuePHPexif_read_data)b7.2.57.0.30exifS} S incorrect url in header for mt_randPHPmt_rand(7.2.57.1.17standardQy 91 Wrong cp1251 detectionPHPmb_detect_encoding(7.2.57.1.17mbstringax c# Malicious LDAP-Server Response causes CrashPHPldap_get_dn)7.2.57.1.177.0.30ldapv 5 stream filter convert.iconv leads to infinite loop on invalid sequencePHPstream_filter_append)7.2.57.1.177.0.30iconvju }+ imagedashedline() - dashed line sometimes is not visiblePHPimagedashedline f7.2.57.1.17gdPs M# mismatch arginfo for date_createPHPdate_create)c7.2.57.1.17date~r - parse_ini_string fails to parse "[foo]\nbar=1|&gt;baz" with segfaultPHPparse_ini_string)$7.2.47.1.15standard   	  &d<                                                                                                                           X o "link(): Bad file descriptor" with non-ASCII pathPHPlink*/7.2.7standardK E.NoRewindIterator segfault 11PHP*O7.2.7splExtensions/Extspln w; openssl_pkey_get_public does not respect open_basedirPHPopenssl_pkey_get_public*7.2.7opensslW m mail.add_x_header default inconsistent with docsPHPmail!7.2.5standardZ	 S6Access violation when using opcachePHP)>7.2.5opcacheExtensions/Extopcachee e8mbstring does not build with Oniguruma 6.8.1PHP)Q7.2.5mbstringExtensions/ExtmbstringW Y0Intl compilation fails with icu4c 61.1PHP)y7.2.5intlExtensions/Extintlx u6Opcache causes incorrect "undefined variable" errorsPHP)7.1.187.1.187.1.18opcacheExtensions/Extopcache\  m Locale::parseLocale() broken with some argumentsPHP"7.1.187.1.187.1.18intl    p |8K  p                                                                                        n ' Integer overflow and excessive memory usage in mb_strimwidthPHPmb_strimwidth*7.1.20mbstringg ) get_debug_info handler for BreakIterator shows wrong typePHPget_debug_info+7.1.20intlt .Integer Underflow when unserializing GMP and possible other classesPHP#7.1.20gmpExtensions/Extgmps 	) heap-buffer-overflow (READ of size 48) while reading exif dataPHPexif_read_data+7.1.207.0.31exif{ ) Int Overflow lead to Heap OverFlow in exif_thumbnail_extract of exif.cPHPexif_read_data*7.1.207.0.31exifV U1Undefined property: DateInterval::$fPHP*7.1.20dateExtensions/Extdatej  Chain of mixed exceptions and errors does not serialize properlyPHPserialize*7.1.20core  )/ PHP hangs on 'illegal string offset on string references with an error handlerPHPset_error_handler*7.1.20core   	 I 8  I                                               i% u.Possible Memory Leak using PDO::CURSOR_SCROLL optionPHP&7.2.9pdo_pgsqlExtensions/Extpdo^$ Y%.Memory leak when fetching a BLOB fieldPHP*7.2.9pdo_firebirdExtensions/Extpdoh# {- References in sub-array for filtering breaks the filterPHPfilter_var_array*N7.2.9filterW! ] windows linkinfo lacks openbasedir checkPHPlinkinfo*7.1.207.0.31win32Z  a% getimagesize with $imageinfo returns falsePHPgetimagesize7.1.20standardY w array_merge_recursive() is duplicating sub-array keysPHP*7.1.20standard !<ReflectionProperty#getValue() incorrectly works with inherited classesPHP%7.1.20reflectionExtensions/Extreflection !<PHP crashes with core dump when throwing exception in error handlerPHP*7.1.20reflectionExtensions/ExtreflectionZ a+ pg_fetch_result did not fetch the next rowPHPpg_fetch_result+7.1.20pgsql   	 6 =s  6                            p4 y? iconv_mime_decode_headers function is skipping headersPHPiconv_mime_decode_headers _7.1.22iconvb3 i3 iconv_mime_decode_headers() skips some headersPHPmime_decode_headers j7.1.22iconvb2 m/ iconv_mime_decode does ignore special charactersPHPiconv_mime_decode N7.1.22iconvk0 / iconv_mime_decode can return extra characters in a headerPHPiconv_mime_encode
T7.1.22iconvY+  Vulnerability in php-fpm by changing stdin to non-blockingPHP~7.2.8fpmh) .ZipArchive memory leak (OVERWRITE flag and empty archive)PHP*7.2.9zipExtensions/Extzipi( y,Segmentation fault when using `output_add_rewrite_var`PHP+c7.2.9standardExtensions/Extobz' !% array_column: null values in $index_key become incrementing keys in resultPHParray_column7.2.9standardl& kA Incorrect entries in get_html_translation_tablePHPget_html_translation_table Y7.2.9standard    ` |v)  `                                                                        f= y% array_reduce leaks memory if callback throws exceptionPHParray_reduce+7.1.22standard]< g/RegexIterator pregFlags are NULL instead of 0PHP
O7.1.22splExtensions/ExtsplU; k Exception in DirectoryIterator::getLinkTarget()PHPsymlink7.1.22spls9 	/ unusable ssl =&gt; peer_fingerprint in stream_context_create()PHPfile_get_contents+7.1.22openssl|8 ? Opcache treats path containing "test.pharma.tld" as a phar filePHPstream_wrapper_unregister+7.1.22opcachen7 + mb_detect_order return value varies based on argument typePHPmb_detect_order+7.1.22mbstring6 'O "public id" parameter of libxml_set_external_entity_loader callback undefinedPHPlibxml_set_external_entity_loader+7.1.22libxml 5 '1MessageFormatter::formatMessage memory corruption with 11+ named placeholdersPHP"7.1.22intlExtensions/Extintl    ] c)B  ]                                                                     |F }!=Wrong exception being thrown when using ReflectionMethodPHP"7.2.117.1.23reflectionExtensions/ExtreflectioncE i) posix_getgrnam fails to print details of groupPHPposix_getgrnam'7.2.117.1.23posixtD  Compile-time evaluation of disabled function in opcache causes segfaultPHPphp_uname+7.2.11opcachemB w/ iconv_mime_encode Q-encoding longer than it should bePHPiconv_mime_encode7.2.117.1.23iconvkA u/ Use curl_multi_wait() so that timeouts are respectedPHPcurl_multi_select*7.2.117.1.23curlt@ ' method_exists on SPL iterator passthrough method corrupts memoryPHPmethod_exists,e7.2.117.1.23coreR? q foreach inconsistent if array modified during loopPHP, 7.2.11core> Y1Zlib version check fails when an include/zlib/ style dir is passed to the --with-zlib configure optionPHP7.1.22zlibExtensions/Extzlib     p5N                                                                                                                                   PT =1U_ARGUMENT_TYPE_MISMATCHPHP,7.2.127.1.24intlExtensions/Extintl_S s Data truncation due to forceful ssl socket shutdownPHPftp_put,7.2.127.1.24ftp}R ; apache_response_headers removes last character from header namePHPapache_response_headers,7.2.127.1.24fcgidP q1fractions in `diff()` are not correctly normalizedPHP,7.2.12dateExtensions/ExtdatejO  Year component overflow with date formats "c", "o", "r" and "y"PHPdate(K7.2.127.1.24datecK { php_zlib_inflate_filter() may not update bytes_consumedPHPfwrite&	7.2.117.1.23zlibeI k% array_reduce is slow when $carry is large arrayPHParray_reduce'7.2.117.1.23standardH %7 Bindto IPv6 works with file_get_contents but fails with stream_socket_clientPHPstream_context_create$7.2.117.1.23standard    x yuN  x                                                                                                e] a7 Cyclic reference in generator not detectedPHPxml_parse_into_struct,7.2.127.1.24corek\ y7 Segfault in shutdown function after memory limit errorPHPxml_parse_into_struct,.7.2.12coreV[ K7 xmlrpc_encode_request() crashesPHPxmlrpc_encode_request&7.2.12xmlrpcfZ o/ xml_parse_into_struct() does not resolve entitiesPHPxml_parser_createx7.2.127.1.24xmlbY a1tidy::getOptDoc() not available on WindowsPHP,7.2.127.1.24tidyExtensions/ExttidyiX o) INI_SCANNER_RAW doesn't strip trailing whitespacePHPparse_ini_file,7.2.127.1.24standardW _ sodium_pad() could read (but not return nor write) uninitialized memory when trying to pad an empty inputPHPftp_site,7.2.12sodiumV !=ReflectionFunction::invoke does not invoke closure with object scopePHP~7.2.12reflectionExtensions/Extreflection   	  /T     bi o3 Incorrect error handling of imagecreatefromjpeg()PHPimagecreatefromjpeg-7.2.14gd[h c1 imagecolormatch Out Of Bounds Write on HeapPHPimagecolorallocate-7.2.14gdrg # efree() on uninitialized Heap data in imagescale leads to use-after-freePHPimagecreate-7.2.14gd}e !1DateTime::diff gives wrong diff when the actual diff is less than 1 secondPHP-)7.2.14dateExtensions/ExtdateXd m Serializing or unserializing COM objects crashesPHPserialize-y7.2.14com]a u memcpy with negative length via crafted DNS responsePHP.97.3.27.3.27.3.2core` +7! Objects cannot access their private attributes while handling reflection errorsPHPxml_parse_into_struct,7.2.12reflectionk_ m7 Failed shutdown/reboot or end session in WindowsPHPxml_parse_into_struct,7.2.127.1.24fcgiq^ y7 The phpize and ./configure create redundant .deps filePHPxml_parse_into_struct,7.2.127.1.24core   
 I AJ   I                                             Ps U Heap overflow in utf32be_mbc_to_codePHPmb_split.j7.2.14mbstring_r s Buffer overflow in multibyte case folding - unicodePHPmb_split.R7.2.14mbstringIq I buffer overflow in fetch_tokenPHPmb_ereg.I7.2.14mbstringtp  heap buffer overflow due to incorrect length in expand_case_fold_stringPHPmb_split.F7.2.14mbstringVo a heap buffer overflow in multibyte match_atPHPmb_split.E7.2.14mbstringln  heap buffer overflow in mb regex functions - compile_string_nodePHPmb_ereg.;7.2.14mbstring^m s Buffer overflow on mb regex functions - fetch_tokenPHPmb_ereg.:7.2.14mbstringTl W null pointer dereference in imap_mailPHPimap_mail,7.2.147.0.33imapfk ' imagecropauto(…, GD_CROP_SIDES) crops left but not rightPHPimagecropauto-7.2.14gdSj ]' auto cropping has insufficient precisionPHPimagesetpixel-7.2.14gd   
 2 L(P   2                      c ! imagescale(…, IMG_BILINEAR_FIXED) can cause black borderPHPimagescaleA7.2.15gdK E+ Segfault with H2 server pushPHPcurl_multi_init+7.2.15curlg~ w1Heap Buffer Overflow (READ: 4) in phar_parse_pharfilePHP-W7.0.33pharExtensions/Extpharb} m1PharData always creates new files with mode 0666PHP,7.0.33pharExtensions/Extpharp|  imap_open allows to run arbitrary shell commands via mailbox parameterPHPimap_open-a7.0.33imapd{  Segfault when using convert.quoted-printable-encode filterPHPurldecode-7.0.33core^z k' Global out of bounds read in xmlrpc base64 codePHPxmlrpc_decode.D7.2.14xmlrpcYy a' heap out of bounds read in xmlrpc_decode()PHPxmlrpc_decode-7.2.14xmlrpcXx M7Issue with re-binding on SQLite3PHP,7.2.14sqlite3Extensions/Extsqlite3Vt a% oci_pconnect with OCI_CRED_EXT not workingPHPoci_pconnect,7.2.14oci8   	 p Fw7  p                                                                                      Q I+ segfault about array_multisortPHParray_multisort.S7.2.15standardp + socket_recvfrom may return an invalid 'from' address on MacOSPHPsocket_recvfrom,'7.2.15socketst 5 array_walk_recursive corrupts value types leading to PDO failurePHParray_walk_recursive-7.2.15pdoh  feof might hang on TLS streams in case of fragmented TLS recordsPHPfeof.N7.2.15openssl[	 k mb_scrub() silently truncates after a null bytePHPmb_scrub.7.2.15mbstringv % ldap_bind using ldaps or ldap_start_tls()=exception in libcrypto-1_1-x64.dllPHPldap_bind.7.2.15ldapS e imagewbmp() segfaults with very large imagesPHPimagewbmp.7.2.15gdY o! imagescale() may return image resource on failurePHPimagescale-7.2.15gd[ g- gdImageFilledArc() doesn't properly draw piesPHPgdimagefilledarc7.2.15gd   	 k 1KN  k                                                                                 r" 1Segmentation Fault when executing method with an empty parameterPHP.b7.3.2soapExtensions/Extsoapk! i//PDO MySQL segfaults with persistent connectionPHP-7.3.2Extensions/ExtpdoExtensions/ExtpdoB  G# get_browser with empty stringPHPget_browser.pcreL I/Unbuffered queries memory leakPHP-mysqlndExtensions/Extpdof + mb_ereg_replace() doesn't replace a substitution variablePHPmb_ereg_replace.tmbstring^ g; Segfault when using 2 RecursiveFilterIteratorPHPrecursivefilteriterator-core !E__DIR__, __FILE__, realpath() reveal physical path for subst virtual drivePHP.coreConstants/MagicConstantUsage` ' base64_encode / base64_decode doest not work on nested VMPHPbase64_encode.-corei  parse_str segfaults when inserting item into existing arrayPHPparse_str.7.2.15standard    1 <dQ   1                   b- ! Incorrect IP set to $_SERVER['REMOTE_ADDR'] on the localhostPHP/7.3.4cli serverb,  bcpow() implementation related to gcc compiler optimizationPHPbcpow/7.3.4bcmathS+ a) BOM in sapi/apache2handler/php_functions.cPHP/P7.3.4apache2handlerT* w Wrong value for 'syslog.filter' documented in php.iniPHP,7.3.4corea)  Stack Overflow caused by circular reference in garbage collectionPHP.!7.3.4coreU( y Anonymous classes can lose their interface informationPHP/T7.3.4coreE' Y Segmentation fault on break 2147483648PHP/\7.3.4coreA& Q Nullptr deref in zend_compile_exprPHP/7.3.4coreI% a Heap-buffer-overflow in exif_iif_add_valuePHP07.3.4exifE$ Y Heap-buffer-overflow in php_ifd_get32sPHP/7.3.4exify# #/segfault occurs when add property to unserialized empty ArrayObjectPHPunserialize-splExtensions/Extspl    T w!e`  T                                                      V8 s Crash in extract() when overwriting extracted arrayPHP/e7.3.4standardf7  Segmentation fault when using undefined constant in custom wrapperPHP/`7.3.4standardG6 Y sign_detached() strings not terminatedPHP/N7.3.4sodiume5  phpdbg break cmd aliases listed in help do not match actual aliasesPHP/7.3.4phpdbg;4 E Crash on Big_Endian platformPHP/7.3.4phar\3 s! preg_split does not raise an error on invalid UTF-8PHPpreg_split)_7.3.4pcrec2  Incorrect pi node insertion for jmpznz with identical successorsPHP/7.3.4opcacheS1 M1 mysqli_fetch_field hangs scriptsPHPmysqli_fetch_field/7.3.4mysqliS0 y Writing truecolor images as GIF ignores interlace flagPHP/7.3.4gdP/ q FPM fails to build on AIX due to missing WCOREDUMPPHP/m7.3.4fpm3. 7 Crash when php unloadPHP/
7.3.4com    a 3n7  t a                                                                   C cB q+ openssl_encrypt_ccm.phpt fails with OpenSSL 1.1.1cPHPopenssl_encrypt07.3.7opensslZA }Path resolution fails if opcache disabled during requestPHP17.3.7opcacheh@  Incorrect evaluation of expressions involving partials arrays in SCCPPHP07.3.7opcache? M> e bindParam incorrect processing of bool typesPHP 7.3.7mysqlif=  When mysqli.allow_local_infile = Off, use a meaningful error messagePHP07.3.7mysqliS< w segfault when accessing properties of DOMDocumentTypePHP07.3.7doml; }7 Interface gets skipped if autoloader throws an exceptionPHPspl_autoload_register,7.3.7core\:  FTP stream wrapper should set the directory as executablePHP/7.3.4standardk9 ! var_export() does not create a parsable value for PHP_INT_MINPHPvar_export+7.3.4standard    I <0  \ I                                     Q MP S# Use after free with json serializerPHPjson_encode07.3.6json O K Out-of-bounds read in iconv.c:_php_iconv_mime_decode() due to integer overflow) (CVE-2019-11039PHP07.3.6iconvkN 1 Uninitialized read in gdImageCreateFromXbm) (CVE-2019-11038PHPimagecreatefromxbm07.3.6gdSM e! imageantialias($image, false); does not workPHPstrip_tags0w7.3.6gdL K cJ y) heap-buffer-overflow on php_jpg_get16) (CVE-2019-11040PHPexif_read_data07.3.6exifI H >G /! preg_match failedPHPpreg_match0q7.3.7standardRF ] Extract with EXTR_SKIP should skip $thisPHPextract-O7.3.7standardSE q segfault when calling sodium_* functions from evalPHP1"7.3.7sodiumkD ' Socket_select fails when resource array contains referencesPHPsocket_select07.3.7sockets    T,                                                                                                                                                                                                                                                                                                                                                                                                                                                                SX Y! strip_tags output change since PHP 7.3PHPstrip_tags07.3.6standardUW _ Warning for array_map mentions wrong typePHParray_map0k7.3.6standardSV o Bypassing open_basedir restrictions via file urisPHP07.3.6sqlite3U dT  Segmentation fault when constructing SoapClient with WSDL_CACHE_BOTHPHP0y7.3.6soapRS m Wrong warning for session.sid_bits_per_characterPHP0W7.3.6sessionTR k! Inconsistent reflection of Closure:::__invoke()PHP%7.3.6reflectionfunctions[] = flush
functions[] = ob_clean
functions[] = ob_end_clean
functions[] = ob_end_flush
functions[] = ob_flush
functions[] = ob_get_clean
functions[] = ob_get_contents
functions[] = ob_get_flush
functions[] = ob_get_length
functions[] = ob_get_level
functions[] = ob_get_status
functions[] = ob_gzhandler
functions[] = ob_implicit_flush
functions[] = ob_list_handlers
functions[] = ob_start
functions[] = output_add_rewrite_var
functions[] = output_reset_rewrite_vars

constants[] = 'PHP_OUTPUT_HANDLER_CLEAN';
constants[] = 'PHP_OUTPUT_HANDLER_CLEANABLE';
constants[] = 'PHP_OUTPUT_HANDLER_CONT';
constants[] = 'PHP_OUTPUT_HANDLER_END';
constants[] = 'PHP_OUTPUT_HANDLER_FINAL';
constants[] = 'PHP_OUTPUT_HANDLER_FLUSH';
constants[] = 'PHP_OUTPUT_HANDLER_FLUSHABLE';
constants[] = 'PHP_OUTPUT_HANDLER_REMOVABLE';
constants[] = 'PHP_OUTPUT_HANDLER_START';
constants[] = 'PHP_OUTPUT_HANDLER_STDFLAGS';
constants[] = 'PHP_OUTPUT_HANDLER_WRITE';

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = '_cleanup_header_comment';
functions[] = '_get_plugin_data_markup_translate';
functions[] = '_transition_post_status';
functions[] = '_wp_post_revision_fields';
functions[] = 'do_shortcode_tag';
functions[] = 'get_post_type_labels';
functions[] = 'preview_theme_ob_filter_callback';
functions[] = 'preview_theme_ob_filter';
functions[] = 'wp_get_sidebars_widgets';
functions[] = 'wp_get_widget_defaults';
functions[] = 'wp_set_sidebars_widgets';
functions[] = 'wp_unregister_globals';
functions[] = random_int
functions[] = random_bytes

constants[] = 

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

mime[] = 'application';
mime[] = 'audio';
mime[] = 'example';
mime[] = 'image';
mime[] = 'message';
mime[] = 'model';
mime[] = 'multipart';
mime[] = 'text';
mime[] = 'video';functions[] = 'client_error';
functions[] = 'collator_get_error_code';
functions[] = 'collator_get_error_message';
functions[] = 'connect_error';
functions[] = 'cubrid_error';
functions[] = 'cubrid_error_code';
functions[] = 'cubrid_error_msg';
functions[] = 'curl_error';
functions[] = 'date_get_last_errors';
functions[] = 'datefmt_get_error_code';
functions[] = 'datefmt_get_error_message';
functions[] = 'db2_conn_error';
functions[] = 'db2_conn_errormsg';
functions[] = 'db2_stmt_error';
functions[] = 'db2_stmt_errormsg';
functions[] = 'dbx_error';
functions[] = 'eio_get_last_error';
functions[] = 'enchant_broker_get_error';
functions[] = 'enchant_dict_get_error';
functions[] = 'ev_error';
functions[] = 'exception_error_handler';
functions[] = 'fbsql_error';
functions[] = 'fdf_error';
functions[] = 'gupnp_service_action_return_error';
functions[] = 'handle_error';
functions[] = 'html_errors';
functions[] = 'hw_api_error';
functions[] = 'hw_error';
functions[] = 'hw_errormsg';
functions[] = 'ifx_error';
functions[] = 'ifx_errormsg';
functions[] = 'imap_errors';
functions[] = 'imap_last_error';
functions[] = 'ingres_error';
functions[] = 'ingres_next_error';
functions[] = 'intl_error_name';
functions[] = 'intl_get_error_code';
functions[] = 'intl_get_error_message';
functions[] = 'intlcal_get_error_code';
functions[] = 'intlcal_get_error_message';
functions[] = 'intltz_get_error_code';
functions[] = 'intltz_get_error_message';
functions[] = 'json_errors';
functions[] = 'json_last_error';
functions[] = 'json_last_error_msg';
functions[] = 'last_error';
functions[] = 'ldap_error';
functions[] = 'libxml_get_errors';
functions[] = 'libxml_get_last_error';
functions[] = 'libxml_use_internal_errors';
functions[] = 'log_errors';
functions[] = 'log_errors_max_len';
functions[] = 'maxdb_connect_error';
functions[] = 'maxdb_error';
functions[] = 'maxdb_stmt_error';
functions[] = 'min_error_severity';
functions[] = 'msgfmt_get_error_code';
functions[] = 'msgfmt_get_error_message';
functions[] = 'msql_error';
functions[] = 'mssql_min_error_severity';
functions[] = 'mysql_error';
functions[] = 'mysql_error_codes';
functions[] = 'mysqld_error';
functions[] = 'mysqli_connect_error';
functions[] = 'mysqli_error';
functions[] = 'mysqli_error_list';
functions[] = 'mysqli_stmt_error';
functions[] = 'mysqli_stmt_error_list';
functions[] = 'mysqlnd_error_list_pdtor';
functions[] = 'numfmt_get_error_code';
functions[] = 'numfmt_get_error_message';
functions[] = 'oci_error';
functions[] = 'odbc_error';
functions[] = 'odbc_errormsg';
functions[] = 'openssl_error_string';
functions[] = 'pcntl_get_last_error';
functions[] = 'pdo_error_type';
functions[] = 'pg_errormessage';
functions[] = 'pg_last_error';
functions[] = 'pg_result_error';
functions[] = 'pg_result_error_field';
functions[] = 'pg_set_error_verbosity';
functions[] = 'posix_get_last_error';
functions[] = 'preg_last_error';
functions[] = 'sess_error';
functions[] = 'set_error_handler';
functions[] = 'socket_last_error';
functions[] = 'sqlite_error_string';
functions[] = 'sqlite_last_error';
functions[] = 'sqlsrv_errors';
functions[] = 'stomp_connect_error';
functions[] = 'stomp_error';
functions[] = 'tidy_error_count';
functions[] = 'tidy_get_error_buffer';
functions[] = 'track_errors';
functions[] = 'transient_error';
functions[] = 'transient_error_retries';
functions[] = 'transient_errors';
functions[] = 'transliterator_get_error_code';
functions[] = 'transliterator_get_error_message';
functions[] = 'trigger_error';
functions[] = 'truncation_errors';
functions[] = 'udm_error';
functions[] = 'use_errors';
functions[] = 'use_soap_error_handler';
functions[] = 'user_error';
functions[] = 'vpopmail_error';
functions[] = 'with_error_message';
functions[] = 'xml_error_string';
functions[] = 'xml_get_error_code';
functions[] = 'xmlrpc_error_number';
functions[] = 'xmlrpc_errors';
functions[] = 'xslt_error';
functions[] = 'yaz_error';
functions[] = 'zend_error';
functions[] = 'zend_errors';
constants[] = 

functions[] = recode_file
functions[] = recode_string
functions[] = recode

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = 

constants[] = 

classes[] = \Gender\Gender

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

;disable_functions[] = 'eval';
;can't disable eval it's a language construct

disable_functions[] = 'exec';
disable_functions[] = 'passthru';
disable_functions[] = 'shell_exec';
disable_functions[] = 'system';

disable_functions[] = 'proc_open';
disable_functions[] = 'proc_nice';
disable_functions[] = 'proc_terminate';
disable_functions[] = 'proc_get_status';
disable_functions[] = 'proc_close';

disable_functions[] = 'popen';
disable_functions[] = 'pclose';

disable_functions[] = 'curl_exec';
disable_functions[] = 'curl_multi_exec';

disable_functions[] = 'show_source';

disable_functions[] = 'symlink';

disable_functions[] = 'fsockopen';
disable_functions[] = 'pfsockopen';
disable_functions[] = 'socket_connect';
disable_functions[] = 'socket_create_listen';
disable_functions[] = 'socket_create_pair';
disable_functions[] = 'socket_create';

disable_functions[] = 'symlink';

disable_functions[] = 'mail';

disable_functions[] = 'apache_child_terminate';
disable_functions[] = 'apache_get_modules';
disable_functions[] = 'apache_get_version';
disable_functions[] = 'apache_getenv';
disable_functions[] = 'apache_note';
disable_functions[] = 'apache_setenv';

disable_functions[] = 'pcntl_alarm';
disable_functions[] = 'pcntl_errno';
disable_functions[] = 'pcntl_exec';
disable_functions[] = 'pcntl_fork';
disable_functions[] = 'pcntl_get_last_error';
disable_functions[] = 'pcntl_getpriority';
disable_functions[] = 'pcntl_setpriority';
disable_functions[] = 'pcntl_signal_dispatch';
disable_functions[] = 'pcntl_signal';
disable_functions[] = 'pcntl_sigprocmask';
disable_functions[] = 'pcntl_sigtimedwait';
disable_functions[] = 'pcntl_sigwaitinfo';
disable_functions[] = 'pcntl_strerror';
disable_functions[] = 'pcntl_wait';
disable_functions[] = 'pcntl_waitpid';
disable_functions[] = 'pcntl_wexitstatus';
disable_functions[] = 'pcntl_wifexited';
disable_functions[] = 'pcntl_wifsignaled';
disable_functions[] = 'pcntl_wifstopped';
disable_functions[] = 'pcntl_wstopsig';
disable_functions[] = 'pcntl_wtermsig';

disable_functions[] = 'dl';
disable_functions[] = 'leak';

disable_functions[] = 'posix_kill';
disable_functions[] = 'posix_mkfifo';
disable_functions[] = 'posix_setpgid';
disable_functions[] = 'posix_setsid';
disable_functions[] = 'posix_setuid';

disable_classes[] = 'phar';
space['\u000B'] = "Line Tabulation (\v)'] = <VT>";
space['\u000C'] = "Form Feed (\f)'] = <FF>";
space['\u00A0'] = "No-Break Space'] = <NBSP>";
space['\u0085'] = "Next Line";
space['\u1680'] = "Ogham Space Mark";
space['\u180E'] = "Mongolian Vowel Separator'] = <MVS>";
space['\ufeff'] = "Zero Width No-Break Space'] = <BOM>";
space['\u2000'] = "En Quad";
space['\u2001'] = "Em Quad";
space['\u2002'] = "En Space'] = <ENSP>";
space['\u2003'] = "Em Space'] = <EMSP>";
space['\u2004'] = "Tree-Per-Em";
space['\u2005'] = "Four-Per-Em";
space['\u2006'] = "Six-Per-Em";
space['\u2007'] = "Figure Space";
space['\u2008'] = "Punctuation Space'] = <PUNCSP>";
space['\u2009'] = "Thin Space";
space['\u200A'] = "Hair Space";
space['\u200B'] = "Zero Width Space'] = <ZWSP>";
space['\u2028'] = "Line Separator";
space['\u2029'] = "Paragraph Separator";
space['\u202F'] = "Narrow No-Break Space";
space['\u205f'] = "Medium Mathematical Space";
space['\u3000'] = "Ideographic Space";
space['\uFEFF'] = "Zero width no-break space";
SQLite format 3   @   6                                                            6 -# (G                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              GGtable_namespaces_copy_old_20161125_namespaces_copy_old_201611	etabletraitstraitsCREATE TABLE "traits" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "trait" text,
	 "namespace_id" integer
)!!utableinterfacesinterfacesCREATE TABLE "interfaces" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "interface" text,
	 "namespace_id" integer
)  455	table_traits_old_20161125_traits_old_20161125CREATE TABLE "_traits_old_20161125" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "interface" text,
	 "namespace_id" integer
)gtableclassesclassesCREATE TABLE "classes" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "class" text,
	 "namespace_id" integer
)!!qtablenamespacesnamespacesCREATE TABLE "namespaces" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "namespace" text,
	 "release_id" integer
)P++Ytablesqlite_sequencesqlite_sequenceCREATE TABLE sqlite_sequence(name,seq)s9tablereleasesreleasesCREATE TABLE "releases" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "release" text
)   {99table_releases_old_20160309_releases_old_20160309CREATE TABLE "_releases_old_20160309" (id integer, release text)   r  |nU5~X4[<eG'xM 



~
L
"
				e	A	zV/a8wHyX3}]> `>vQ0vY4        r ?	Zend_Cache_Backend_Sqlite q E	Zend_Cache_Backend_Memcached#p K	Zend_Cache_Backend_Libmemcachedo ;	Zend_Cache_Backend_File n E	Zend_Cache_Backend_BlackHolem 9	Zend_Cache_Backend_Apcl %	Zend_Barcodek ?	Zend_Barcode_Renderer_Svg*j Y	Zend_Barcode_Renderer_RendererAbstracti ?	Zend_Barcode_Renderer_Pdfh C	Zend_Barcode_Renderer_Image#g K	Zend_Barcode_Renderer_Exceptionf =	Zend_Barcode_Object_Upcee =	Zend_Barcode_Object_Upca!d G	Zend_Barcode_Object_Royalmailc C	Zend_Barcode_Object_Postnetb A	Zend_Barcode_Object_Planet&a Q	Zend_Barcode_Object_ObjectAbstract ` E	Zend_Barcode_Object_Leitcode_ ?	Zend_Barcode_Object_Itf14!^ G	Zend_Barcode_Object_Identcode!] G	Zend_Barcode_Object_Exception\ ?	Zend_Barcode_Object_Error[ =	Zend_Barcode_Object_Ean8Z =	Zend_Barcode_Object_Ean5Y =	Zend_Barcode_Object_Ean2X ?	Zend_Barcode_Object_Ean13W A	Zend_Barcode_Object_Code39)V W	Zend_Barcode_Object_Code25interleavedU A	Zend_Barcode_Object_Code25T C	Zend_Barcode_Object_Code128S 9	Zend_Barcode_ExceptionR 	Zend_AuthQ ?	Zend_Auth_Storage_Session#P K	Zend_Auth_Storage_NonPersistentO C	Zend_Auth_Storage_ExceptionN -	Zend_Auth_ResultM 3	Zend_Auth_ExceptionL =	Zend_Auth_Adapter_OpenIdK 9	Zend_Auth_Adapter_LdapJ A	Zend_Auth_Adapter_InfoCardI 9	Zend_Auth_Adapter_Http(H U	Zend_Auth_Adapter_Http_Resolver_File-G _	Zend_Auth_Adapter_Http_Resolver_ExceptionF C	Zend_Auth_Adapter_ExceptionE =	Zend_Auth_Adapter_DigestD ?	Zend_Auth_Adapter_DbTableC -	Zend_Application"B I	Zend_Application_Resource_View'A S	Zend_Application_Resource_UserAgent'@ S	Zend_Application_Resource_Translate%? O	Zend_Application_Resource_Session$> M	Zend_Application_Resource_Router.= a	Zend_Application_Resource_ResourceAbstract(< U	Zend_Application_Resource_Navigation%; O	Zend_Application_Resource_Multidb%: O	Zend_Application_Resource_Modules"9 I	Zend_Application_Resource_Mail!8 G	Zend_Application_Resource_Log$7 M	Zend_Application_Resource_Locale$6 M	Zend_Application_Resource_Layout-5 _	Zend_Application_Resource_Frontcontroller'4 S	Zend_Application_Resource_Exception"3 I	Zend_Application_Resource_Dojo 2 E	Zend_Application_Resource_Db*1 Y	Zend_Application_Resource_Cachemanager%0 O	Zend_Application_Module_Bootstrap&/ Q	Zend_Application_Module_Autoloader. A	Zend_Application_Exception(- U	Zend_Application_Bootstrap_Exception0, e	Zend_Application_Bootstrap_BootstrapAbstract(+ U	Zend_Application_Bootstrap_Bootstrap* ?	Zend_Amf_Value_TraitsInfo,) ]	Zend_Amf_Value_Messaging_RemotingMessage)( W	Zend_Amf_Value_Messaging_ErrorMessage+' [	Zend_Amf_Value_Messaging_CommandMessage)& W	Zend_Amf_Value_Messaging_AsyncMessage,% ]	Zend_Amf_Value_Messaging_ArrayCollection/$ c	Zend_Amf_Value_Messaging_AcknowledgeMessage,# ]	Zend_Amf_Value_Messaging_AbstractMessage " E	Zend_Amf_Value_MessageHeader! A	Zend_Amf_Value_MessageBody  =	Zend_Amf_Value_ByteArray A	Zend_Amf_Util_BinaryStream +	Zend_Amf_Server ?	Zend_Amf_Server_Exception /	Zend_Amf_Response 9	Zend_Amf_Response_Http -	Zend_Amf_Request 7	Zend_Amf_Request_Http ?	Zend_Amf_Parse_TypeLoader ?	Zend_Amf_Parse_Serializer" I	Zend_Amf_Parse_Resource_Stream' S	Zend_Amf_Parse_Resource_MysqlResult( U	Zend_Amf_Parse_Resource_MysqliResult C	Zend_Amf_Parse_OutputStream A	Zend_Amf_Parse_InputStream C	Zend_Amf_Parse_Deserializer" I	Zend_Amf_Parse_Amf3_Serializer$ M	Zend_Amf_Parse_Amf3_Deserializer" I	Zend_Amf_Parse_Amf0_Serializer$ M	Zend_Amf_Parse_Amf0_Deserializer 1	Zend_Amf_Exception 1	Zend_Amf_Constants
 9	Zend_Amf_Auth_Abstract	 C	Zend_Amf_Adobe_Introspector A	Zend_Amf_Adobe_DbInspector 3	Zend_Amf_Adobe_Auth 	Zend_Acl '	Zend_Acl_Role 9	Zend_Acl_Role_Registry$ M	Zend_Acl_Role_Registry_Exception /	Zend_Acl_Resource 1	Zend_Acl_Exception   | vbN:'~lZH6$ |fQ?-	vcP=*wcO;(






w
a
K
9
%
								t	_	M	;	)		 m[I7#zfQ?-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | 'release-1.9.8{ 'release-1.9.7z 'release-1.9.6y 'release-1.9.5x 'release-1.9.4w -release-1.9.3PL1v 'release-1.9.3u 'release-1.9.2t 'release-1.9.1s -release-1.9.0rc1r +release-1.9.0b1q +release-1.9.0a1p 'release-1.9.0o 'release-1.8.5n -release-1.8.4PL1m 'release-1.8.4l 'release-1.8.3k 'release-1.8.2j 'release-1.8.1i +release-1.8.0b1h +release-1.8.0PRg 'release-1.8.0f 'release-1.7.9e 'release-1.7.8d 'release-1.7.7c 'release-1.7.6b 'release-1.7.5a 'release-1.7.4` -release-1.7.3PL1_ 'release-1.7.3^ 'release-1.7.2] 'release-1.7.1\ +release-1.7.0PR[ -release-1.7.0PL1Z 'release-1.7.0Y 'release-1.6.2X 'release-1.6.1W -release-1.6.0RC3V -release-1.6.0RC2U -release-1.6.0RC1T 'release-1.6.0S 'release-1.5.3R 'release-1.5.2Q 'release-1.5.1P -release-1.5.0RC3O -release-1.5.0RC2N -release-1.5.0RC1M +release-1.5.0PRL 'release-1.5.0K /release-1.12.0rc4J /release-1.12.0rc3I /release-1.12.0rc2H /release-1.12.0rc1G )release-1.11.9F )release-1.11.8E )release-1.11.7D )release-1.11.6C )release-1.11.5B )release-1.11.4A )release-1.11.3@ )release-1.11.2? +release-1.11.15> +release-1.11.14= +release-1.11.13< +release-1.11.12; +release-1.11.11: +release-1.11.109 )release-1.11.18 /release-1.11.0rc17 -release-1.11.0b16 )release-1.11.05 )release-1.10.94 )release-1.10.83 )release-1.10.72 )release-1.10.61 )release-1.10.50 )release-1.10.4/ )release-1.10.3. )release-1.10.2- )release-1.10.1, /release-1.10.0rc1+ 3release-1.10.0beta1* 5release-1.10.0alpha1) )release-1.10.0( 'release-1.0.4' 'release-1.0.3& 'release-1.0.2% 'release-1.0.1$ -release-1.0.0RC3# /release-1.0.0RC2a" -release-1.0.0RC2! -release-1.0.0RC1  'release-1.0.0 'release-0.9.3 'release-0.9.2 'release-0.9.1 'release-0.9.0 'release-0.8.0 'release-0.7.0 'release-0.6.0 'release-0.2.0 'release-0.1.5 'release-0.1.4 'release-0.1.3 'release-0.1.2 'release-0.1.1 )release-1.12.9 )release-1.12.8 )release-1.12.7 )release-1.12.6 )release-1.12.5 )release-1.12.4 )release-1.12.3 )release-1.12.2
 +release-1.12.17	 +release-1.12.16 +release-1.12.15 +release-1.12.14 +release-1.12.13 +release-1.12.12 +release-1.12.11 +release-1.12.10 )release-1.12.1 )release-1.12.0                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   name	traitsclassesgreleases|!interfaces'%!namespaces|   |	 reXK>1$
{naTG:- wj]PC6)sfYL?2%|obUH;.!










x
k
^
Q
D
7
*


						                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | global|{ global{z globalzy globalyx globalxw globalwv globalvu globalut globalts globalsr globalrq globalqp globalpo globalon globalnm globalml globallk globalkj globalji globalih globalhg globalgf globalfe globaled globaldc globalcb globalba globala` global`_ global_^ global^] global]\ global\[ global[Z globalZY globalYX globalXW globalWV globalVU globalUT globalTS globalSR globalRQ globalQP globalPO globalON globalNM globalML globalLK globalKJ globalJI globalIH globalHG globalGF globalFE globalED globalDC globalCB globalBA globalA@ global@? global?> global>= global=< global<; global;: global:9 global98 global87 global76 global65 global54 global43 global32 global21 global10 global0/ global/. global.- global-, global,+ global+* global*) global)( global(' global'& global&% global%$ global$# global#" global"! global!  global  global global global global global global global global global global global global global global global global global global global global global
 global
	 global	 global global global global global global global
 	global      ]}wqke_YSMGA;5/)#{uoic]WQKE?93-'!	ysmga[UOIC=71+%}wqke_YSMGA;5/)#{tmf_XQJC<5.' 



















x
q
j
c
\
U
N
G
@
9
2
+
$




																			|	u	n	g	`	Y	R	K	D	=	6	/	(	!				yrkd]VOHA:3,%	}vohaZSLE>70)"zsle^WPIB;4-&
~wpib[TMF?81*# {tmf_XQJC<5.'   k  l  w    -  >  @  L  a        #  L  S  X  r      -  I  N  j  t    ߂"  ނ%  ݂=  ܂A  ڂF  قX  ؂h  ׂ  ւG  Ղf  Ԃ!  ӂL  ҂
  т]  Ђ'  ςH  ΂v  ͂  ̂"  ˂1  ʂ@  ɂd  Ȃ  ǂ$  Ƃ>  łX  Ăx  Â  ,  H  _  s    G  p    P    Q  "  Q  y    0  A  O  i    +  K  _      5  V  o      G  |    V  }  D    U  z    <  O  W  l    2  S  l  
  )  ;  _  w      E  {    R    ;    Z  {  ~+  }E  |W  {f  zt  y  x9  wX  vr  u  t,  sC  r`  p|  o  n'  m@  lz  k&  jL  i  h2  g  fU  e  d,  cL  bc  as  `  _  ^B  ]^  \~  [  Z4  YR  Xj  W
  T#  S8  RF  Q{  P0  OK  N
  M2  Lz  KK  J	  I/  HR  Gp  F  E
  D   CG  Be  A  @   ?>  >\  =n  <  :+  9B  8S  7{  61  5S  4	  38  2p  1D  0  /2  .c  -}  ,  +  *-  )O  (t  '  &2  %G  $j  #  "  !@  Y  o     /  d    =  d  '  y  ?  a  	  %  6  B  X  {    ;  
Y  	m    +  D  d  {    #   \   
   +   i      3   ^   z   
      *   O   n      (   D   d   x      쁢3   끡J   ꁠ_   遟z   聟4   灞`   恞   偝>   䁜f   ぜ   ⁛0   ၚM   `   ߁i   ށ}   ݁#   ܁B   ہc   ځ|   ف   ؁8   ׁJ   ցn   Ӂ   ҁ   с/   ЁT   ρ
   ΁1   ́_   ́   ˁ9   ʁ`   Ɂ~   ȁ   ǁ,   Ɓ9   ŁP   āw   Á   3   J   l         A   X   j   w   &   Z   s   /   X   v   $   ;   H   T   a          ?   U   o         ?   U   i   x      S   u   &   T      `   *   I   v         '   4   V   r      '   A   _   o      '   ;   I   q   $   D   x   %   _   1   z   ~   }E   |^   {j   zv   y   x&   wB   vb   uw   t   s/   r?   qa   ow   n   m   lB   ku   j   iJ   hu   g1   f   eK   dk   c   b.   a;   `E   _T   ^w   ]   \3   [I   Ze   Y   X   W3   TI   S]   Ri   Q   PH   Oe   N   MG   L   KZ   J    I@   Hi   G   F   E   D*   CM   Bj   A	   @    ?<   >X   =g   <
   :    94   8A   7m   6    5:   4w   3   2`   11   0s   /   .7   -R   ,`   +e   *}   )   (;   'Z   &p   %
   $(   #8   "Z   p         6   h      <   _   #   s   1   S   p            *   M   e      G  ܇U  Q  _   f  b=aA"}eH.NS(




Y
'					\	/l<l;	W5uE{N nH,bD+Z*                                       -X _	Zend_Controller_Action_Helper_AjaxContext-W _	Zend_Controller_Action_Helper_ActionStack*V Y	Zend_Controller_Action_Helper_Abstract$U M	Zend_Controller_Action_ExceptionT 3	Zend_Console_Getopt!S G	Zend_Console_Getopt_ExceptionR #	Zend_ConfigQ -	Zend_Config_YamlP +	Zend_Config_XmlO 1	Zend_Config_WriterN ;	Zend_Config_Writer_YamlM 9	Zend_Config_Writer_XmlL ;	Zend_Config_Writer_JsonK 9	Zend_Config_Writer_Ini#J K	Zend_Config_Writer_FileAbstractI =	Zend_Config_Writer_ArrayH -	Zend_Config_JsonG +	Zend_Config_IniF 7	Zend_Config_Exception#E K	Zend_CodeGenerator_Php_Property0D e	Zend_CodeGenerator_Php_Property_DefaultValue$C M	Zend_CodeGenerator_Php_Parameter1B g	Zend_CodeGenerator_Php_Parameter_DefaultValue!A G	Zend_CodeGenerator_Php_Method+@ [	Zend_CodeGenerator_Php_Member_Container*? Y	Zend_CodeGenerator_Php_Member_Abstract> C	Zend_CodeGenerator_Php_File$= M	Zend_CodeGenerator_Php_Exception#< K	Zend_CodeGenerator_Php_Docblock'; S	Zend_CodeGenerator_Php_Docblock_Tag.: a	Zend_CodeGenerator_Php_Docblock_Tag_Return-9 _	Zend_CodeGenerator_Php_Docblock_Tag_Param/8 c	Zend_CodeGenerator_Php_Docblock_Tag_License 7 E	Zend_CodeGenerator_Php_Class6 C	Zend_CodeGenerator_Php_Body#5 K	Zend_CodeGenerator_Php_Abstract 4 E	Zend_CodeGenerator_Exception3 C	Zend_CodeGenerator_Abstract%2 O	Zend_Cloud_StorageService_Factory'1 S	Zend_Cloud_StorageService_Exception20 i	Zend_Cloud_StorageService_Adapter_WindowsAzure(/ U	Zend_Cloud_StorageService_Adapter_S3/. c	Zend_Cloud_StorageService_Adapter_Rackspace.- a	Zend_Cloud_StorageService_Adapter_Nirvanix0, e	Zend_Cloud_StorageService_Adapter_FileSystem&+ Q	Zend_Cloud_QueueService_MessageSet#* K	Zend_Cloud_QueueService_Message#) K	Zend_Cloud_QueueService_Factory%( O	Zend_Cloud_QueueService_Exception-' _	Zend_Cloud_QueueService_Adapter_ZendQueue0& e	Zend_Cloud_QueueService_Adapter_WindowsAzure'% S	Zend_Cloud_QueueService_Adapter_Sqs3$ k	Zend_Cloud_QueueService_Adapter_AbstractAdapter-# _	Zend_Cloud_OperationNotAvailableException*" Y	Zend_Cloud_Infrastructure_InstanceList&! Q	Zend_Cloud_Infrastructure_Instance'  S	Zend_Cloud_Infrastructure_ImageList# K	Zend_Cloud_Infrastructure_Image% O	Zend_Cloud_Infrastructure_Factory' S	Zend_Cloud_Infrastructure_Exception/ c	Zend_Cloud_Infrastructure_Adapter_Rackspace) W	Zend_Cloud_Infrastructure_Adapter_Ec25 o	Zend_Cloud_Infrastructure_Adapter_AbstractAdapter 5	Zend_Cloud_Exception$ M	Zend_Cloud_DocumentService_Query& Q	Zend_Cloud_DocumentService_Factory( U	Zend_Cloud_DocumentService_Exception* Y	Zend_Cloud_DocumentService_DocumentSet' S	Zend_Cloud_DocumentService_Document3 k	Zend_Cloud_DocumentService_Adapter_WindowsAzure9 w	Zend_Cloud_DocumentService_Adapter_WindowsAzure_Query/ c	Zend_Cloud_DocumentService_Adapter_SimpleDb5 o	Zend_Cloud_DocumentService_Adapter_SimpleDb_Query6 q	Zend_Cloud_DocumentService_Adapter_AbstractAdapter A	Zend_Cloud_AbstractFactory /	Zend_Captcha_Word 9	Zend_Captcha_ReCaptcha 1	Zend_Captcha_Image
 3	Zend_Captcha_Figlet	 9	Zend_Captcha_Exception /	Zend_Captcha_Dumb /	Zend_Captcha_Base !	Zend_Cache 1	Zend_Cache_Manager =	Zend_Cache_Frontend_Page A	Zend_Cache_Frontend_Output  E	Zend_Cache_Frontend_Function =	Zend_Cache_Frontend_File  ?	Zend_Cache_Frontend_Class C	Zend_Cache_Frontend_Capture~ 5	Zend_Cache_Exception} +	Zend_Cache_Core| 1	Zend_Cache_Backend!{ G	Zend_Cache_Backend_ZendServer'z S	Zend_Cache_Backend_ZendServer_ShMem&y Q	Zend_Cache_Backend_ZendServer_Disk#x K	Zend_Cache_Backend_ZendPlatformw ?	Zend_Cache_Backend_Xcachev C	Zend_Cache_Backend_WinCache u E	Zend_Cache_Backend_TwoLevelst ;	Zend_Cache_Backend_Tests ?	Zend_Cache_Backend_Static   nm   }wqke_YSMGA;5/)#{uoic]WQKE?93-'!	ysmdl_Strategy_Interface$` M	Zend_Session_Validator_Interface&_ Q	Zend_Session_SaveHandler_Interface#^ K	Zend_Service_ShortUrl_ShortenerH] 	Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Interface\ 7	Zend_Server_Interface,[ ]	Zend_Serializer_Adapter_AdapterInterface3Z k	Zend_Search_Lucene_Search_Highlighter_Interface Y E	Zend_Search_Lucene_Interface2X i	Zend_Search_Lucene_Index_TermsStream_Interface#W K	Zend_Queue_Stomp_FrameInterface/V c	Zend_Queue_Stomp_Client_ConnectionInterface'U S	Zend_Queue_Adapter_AdapterInterfaceT ?	Zend_Pdf_Filter_Interface%S O	Zend_Pdf_ElementFactory_InterfaceR ?	Zend_Pdf_Canvas_Interface+Q [	Zend_Paginator_ScrollingStyle_Interface#P K	Zend_Paginator_AdapterAggregate$O M	Zend_Paginator_Adapter_Interface%N O	Zend_Oauth_Config_ConfigInterface&M Q	Zend_Mobile_Push_Message_InterfaceL A	Zend_Mobile_Push_Interface#K K	Zend_Memory_Container_Interface0J e	Zend_Markup_Renderer_TokenConverterInterface&I Q	Zend_Markup_Parser_ParserInterface(H U	Zend_Mail_Storage_Writable_Interface&G Q	Zend_Mail_Storage_Folder_InterfaceF =	Zend_Mail_Part_InterfaceE C	Zend_Mail_Message_Interface D E	Zend_Log_Formatter_InterfaceC ?	Zend_Log_Filter_InterfaceB ?	Zend_Log_FactoryInterfaceA ?	Zend_Loader_SplAutoloader&@ Q	Zend_Loader_PluginLoader_Interface$? M	Zend_Loader_Autoloader_Interface/> c	Zend_Ldap_Node_Schema_ObjectClass_Interface1= g	Zend_Ldap_Node_Schema_AttributeType_Interface2< i	Zend_InfoCard_Xml_Security_Transform_Interface'; S	Zend_InfoCard_Xml_KeyInfo_Interface': S	Zend_InfoCard_Xml_Element_Interface)9 W	Zend_InfoCard_Xml_Assertion_Interface,8 ]	Zend_InfoCard_Cipher_Symmetric_Interface67 q	Zend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface66 q	Zend_InfoCard_Cipher_Symmetric_Aes128cbc_Interface*5 Y	Zend_InfoCard_Cipher_Pki_Rsa_Interface&4 Q	Zend_InfoCard_Cipher_Pki_Interface#3 K	Zend_InfoCard_Adapter_Interface2 C	Zend_Http_UserAgent_Storage(1 U	Zend_Http_UserAgent_Features_Adapter0 A	Zend_Http_UserAgent_Device#/ K	Zend_Http_Client_Adapter_Stream&. Q	Zend_Http_Client_Adapter_Interface- A	Zend_Gdata_App_MediaSource-, _	Zend_Form_Decorator_Marker_File_Interface!+ G	Zend_Form_Decorator_Interface* 7	Zend_Filter_Interface!) G	Zend_Filter_Encrypt_Interface*( Y	Zend_Filter_Compress_CompressInterface/' c	Zend_Feed_Writer_Renderer_RendererInterface0& e	Zend_Feed_Writer_Extension_RendererInterface"% I	Zend_Feed_Reader_FeedInterface#$ K	Zend_Feed_Reader_EntryInterface6# q	Zend_Feed_Pubsubhubbub_Model_SubscriptionInterface," ]	Zend_Feed_Pubsubhubbub_CallbackInterface! C	Zend_Feed_Builder_Interface0  e	Zend_EventManager_SharedEventCollectionAware+ [	Zend_EventManager_SharedEventCollection' S	Zend_EventManager_ListenerAggregate =	Zend_EventManager_Filter C	Zend_EventManager_Exception' S	Zend_EventManager_EventManagerAware& Q	Zend_EventManager_EventDescription% O	Zend_EventManager_EventCollection C	Zend_Db_Statement_Interface# K	Zend_Currency_CurrencyInterface( U	Zend_Crypt_Math_BigInteger_Interface* Y	Zend_Controller_Router_Route_Interface$ M	Zend_Controller_Router_Interface( U	Zend_Controller_Dispatcher_Interface$ M	Zend_Controller_Act  }
  j0  WV  D}  C%  1M  t    D  l    9  `    .  yU  h|  V"  EH  4n    :  ^  ˽{    6  S  lq  Q  9*  !G  	d    Զ"  >  ]    *  ~L  dt  I  0B  /e    8  _    ɬ-  V  }  #  |L  bt  a  H@  /i    7  ^    ǣ0  ƢU  }  &  {N  zs  b  JD  2l    <  c    Ӛ5  _    +  V  t~  _&  HN  *p      3  ۑH  p    <  c  q
  V1  UT  ;|   #  I  o      Ո=   ԇ_      .   U   w   p    VI   Um   ;   !;    a   n  S)lDj?f<zO*



f
@
				s	I	 pP:kL+hN>}V9tV6fI2qR)
fN1                 F ;	Zend_Db_Table_ExceptionE =	Zend_Db_Table_DefinitionD 9	Zend_Db_Table_AbstractC /	Zend_Db_StatementB =	Zend_Db_Statement_Sqlsrv&A Q	Zend_Db_Statement_Sqlsrv_Exception@ 7	Zend_Db_Statement_Pdo? ?	Zend_Db_Statement_Pdo_Oci> ?	Zend_Db_Statement_Pdo_Ibm= =	Zend_Db_Statement_Oracle&< Q	Zend_Db_Statement_Oracle_Exception; =	Zend_Db_Statement_Mysqli&: Q	Zend_Db_Statement_Mysqli_Exception9 C	Zend_Db_Statement_Exception8 7	Zend_Db_Statement_Db2#7 K	Zend_Db_Statement_Db2_Exception6 )	Zend_Db_Select5 =	Zend_Db_Select_Exception4 -	Zend_Db_Profiler3 9	Zend_Db_Profiler_Query2 =	Zend_Db_Profiler_Firebug1 A	Zend_Db_Profiler_Exception0 %	Zend_Db_Expr/ /	Zend_Db_Exception. 9	Zend_Db_Adapter_Sqlsrv$- M	Zend_Db_Adapter_Sqlsrv_Exception, A	Zend_Db_Adapter_Pdo_Sqlite+ ?	Zend_Db_Adapter_Pdo_Pgsql* ;	Zend_Db_Adapter_Pdo_Oci) ?	Zend_Db_Adapter_Pdo_Mysql( ?	Zend_Db_Adapter_Pdo_Mssql' ;	Zend_Db_Adapter_Pdo_Ibm& C	Zend_Db_Adapter_Pdo_Ibm_Ids% C	Zend_Db_Adapter_Pdo_Ibm_Db2 $ E	Zend_Db_Adapter_Pdo_Abstract# 9	Zend_Db_Adapter_Oracle$" M	Zend_Db_Adapter_Oracle_Exception! 9	Zend_Db_Adapter_Mysqli$  M	Zend_Db_Adapter_Mysqli_Exception ?	Zend_Db_Adapter_Exception 3	Zend_Db_Adapter_Db2! G	Zend_Db_Adapter_Db2_Exception =	Zend_Db_Adapter_Abstract 	Zend_Date 3	Zend_Date_Exception 5	Zend_Date_DateObject -	Zend_Date_Cities '	Zend_Currency ;	Zend_Currency_Exception !	Zend_Crypt )	Zend_Crypt_Rsa 1	Zend_Crypt_Rsa_Key ?	Zend_Crypt_Rsa_Key_Public A	Zend_Crypt_Rsa_Key_Private =	Zend_Crypt_Rsa_Exception +	Zend_Crypt_Math ?	Zend_Crypt_Math_Exception A	Zend_Crypt_Math_BigInteger" I	Zend_Crypt_Math_BigInteger_Gmp( U	Zend_Crypt_Math_BigInteger_Exception%
 O	Zend_Crypt_Math_BigInteger_Bcmath	 +	Zend_Crypt_Hmac ?	Zend_Crypt_Hmac_Exception 5	Zend_Crypt_Exception =	Zend_Crypt_DiffieHellman& Q	Zend_Crypt_DiffieHellman_Exception  E	Zend_Controller_Router_Route' S	Zend_Controller_Router_Route_Static& Q	Zend_Controller_Router_Route_Regex' S	Zend_Controller_Router_Route_Module)  W	Zend_Controller_Router_Route_Hostname& Q	Zend_Controller_Router_Route_Chain)~ W	Zend_Controller_Router_Route_Abstract"} I	Zend_Controller_Router_Rewrite$| M	Zend_Controller_Router_Exception#{ K	Zend_Controller_Router_Abstract)z W	Zend_Controller_Response_HttpTestCase!y G	Zend_Controller_Response_Http&x Q	Zend_Controller_Response_Exception w E	Zend_Controller_Response_Cli%v O	Zend_Controller_Response_Abstract"u I	Zend_Controller_Request_Simple(t U	Zend_Controller_Request_HttpTestCase s E	Zend_Controller_Request_Http%r O	Zend_Controller_Request_Exception%q O	Zend_Controller_Request_Apache404$p M	Zend_Controller_Request_Abstract%o O	Zend_Controller_Plugin_PutHandler'n S	Zend_Controller_Plugin_ErrorHandler!m G	Zend_Controller_Plugin_Broker&l Q	Zend_Controller_Plugin_ActionStack#k K	Zend_Controller_Plugin_Abstractj 7	Zend_Controller_Fronti ?	Zend_Controller_Exception'h S	Zend_Controller_Dispatcher_Standard(g U	Zend_Controller_Dispatcher_Exception'f S	Zend_Controller_Dispatcher_Abstracte 9	Zend_Controller_Action'd S	Zend_Controller_Action_HelperBroker5c o	Zend_Controller_Action_HelperBroker_PriorityStack.b a	Zend_Controller_Action_Helper_ViewRenderer%a O	Zend_Controller_Action_Helper_Url,` ]	Zend_Controller_Action_Helper_Redirector&_ Q	Zend_Controller_Action_Helper_Json0^ e	Zend_Controller_Action_Helper_FlashMessenger/] c	Zend_Controller_Action_Helper_ContextSwitch'\ S	Zend_Controller_Action_Helper_Cache;[ {	Zend_Controller_Action_Helper_AutoCompleteScriptaculous2Z i	Zend_Controller_Action_Helper_AutoCompleteDojo7Y s	Zend_Controller_Action_Helper_AutoComplete_Abstract   h  \AR%qHzT.i<



b
6
				t	E	oC Z2vJ)|T)^9kL0oK {bM/                #. K	Zend_Feed_Builder_Header_Itunes- C	Zend_Feed_Builder_Exception, ;	Zend_Feed_Builder_Entry+ )	Zend_Feed_Atom* 1	Zend_Feed_Abstract) )	Zend_Exception(( U	Zend_EventManager_StaticEventManager(' U	Zend_EventManager_SharedEventManager(& U	Zend_EventManager_ResponseCollection% 	SplStack($ U	Zend_EventManager_GlobalEventManager!# G	Zend_EventManager_FilterChain+" [	Zend_EventManager_Filter_FilterIterator8! u	Zend_EventManager_Exception_InvalidArgumentException"  I	Zend_EventManager_EventManager ;	Zend_EventManager_Event )	Zend_Dom_Query 7	Zend_Dom_Query_Result =	Zend_Dom_Query_Css2Xpath 1	Zend_Dom_Exception 	Zend_Dojo( U	Zend_Dojo_View_Helper_VerticalSlider+ [	Zend_Dojo_View_Helper_ValidationTextBox% O	Zend_Dojo_View_Helper_TimeTextBox! G	Zend_Dojo_View_Helper_TextBox" I	Zend_Dojo_View_Helper_Textarea& Q	Zend_Dojo_View_Helper_TabContainer& Q	Zend_Dojo_View_Helper_SubmitButton( U	Zend_Dojo_View_Helper_StackContainer( U	Zend_Dojo_View_Helper_SplitContainer  E	Zend_Dojo_View_Helper_Slider( U	Zend_Dojo_View_Helper_SimpleTextarea% O	Zend_Dojo_View_Helper_RadioButton) W	Zend_Dojo_View_Helper_PasswordTextBox' S	Zend_Dojo_View_Helper_NumberTextBox' S	Zend_Dojo_View_Helper_NumberSpinner*
 Y	Zend_Dojo_View_Helper_HorizontalSlider	 A	Zend_Dojo_View_Helper_Form) W	Zend_Dojo_View_Helper_FilteringSelect  E	Zend_Dojo_View_Helper_Editor A	Zend_Dojo_View_Helper_Dojo( U	Zend_Dojo_View_Helper_Dojo_Container( U	Zend_Dojo_View_Helper_DijitContainer C	Zend_Dojo_View_Helper_Dijit% O	Zend_Dojo_View_Helper_DateTextBox% O	Zend_Dojo_View_Helper_CustomDijit)  W	Zend_Dojo_View_Helper_CurrencyTextBox% O	Zend_Dojo_View_Helper_ContentPane"~ I	Zend_Dojo_View_Helper_ComboBox"} I	Zend_Dojo_View_Helper_CheckBox | E	Zend_Dojo_View_Helper_Button){ W	Zend_Dojo_View_Helper_BorderContainer'z S	Zend_Dojo_View_Helper_AccordionPane,y ]	Zend_Dojo_View_Helper_AccordionContainerx =	Zend_Dojo_View_Exceptionw )	Zend_Dojo_Formv 9	Zend_Dojo_Form_SubForm)u W	Zend_Dojo_Form_Element_VerticalSlider,t ]	Zend_Dojo_Form_Element_ValidationTextBox&s Q	Zend_Dojo_Form_Element_TimeTextBox"r I	Zend_Dojo_Form_Element_TextBox#q K	Zend_Dojo_Form_Element_Textarea'p S	Zend_Dojo_Form_Element_SubmitButton!o G	Zend_Dojo_Form_Element_Slider)n W	Zend_Dojo_Form_Element_SimpleTextarea&m Q	Zend_Dojo_Form_Element_RadioButton*l Y	Zend_Dojo_Form_Element_PasswordTextBox(k U	Zend_Dojo_Form_Element_NumberTextBox(j U	Zend_Dojo_Form_Element_NumberSpinner+i [	Zend_Dojo_Form_Element_HorizontalSlider*h Y	Zend_Dojo_Form_Element_FilteringSelect!g G	Zend_Dojo_Form_Element_Editor%f O	Zend_Dojo_Form_Element_DijitMulti e E	Zend_Dojo_Form_Element_Dijit&d Q	Zend_Dojo_Form_Element_DateTextBox*c Y	Zend_Dojo_Form_Element_CurrencyTextBox#b K	Zend_Dojo_Form_Element_ComboBox#a K	Zend_Dojo_Form_Element_CheckBox!` G	Zend_Dojo_Form_Element_Button_ C	Zend_Dojo_Form_DisplayGroup)^ W	Zend_Dojo_Form_Decorator_TabContainer+] [	Zend_Dojo_Form_Decorator_StackContainer+\ [	Zend_Dojo_Form_Decorator_SplitContainer&[ Q	Zend_Dojo_Form_Decorator_DijitForm)Z W	Zend_Dojo_Form_Decorator_DijitElement+Y [	Zend_Dojo_Form_Decorator_DijitContainer(X U	Zend_Dojo_Form_Decorator_ContentPane,W ]	Zend_Dojo_Form_Decorator_BorderContainer*V Y	Zend_Dojo_Form_Decorator_AccordionPane/U c	Zend_Dojo_Form_Decorator_AccordionContainerT 3	Zend_Dojo_ExceptionS )	Zend_Dojo_DataR 5	Zend_Dojo_BuildLayerQ !	Zend_DebugP 	Zend_DbO '	Zend_Db_TableN 5	Zend_Db_Table_Select"M I	Zend_Db_Table_Select_ExceptionL 5	Zend_Db_Table_Rowset"K I	Zend_Db_Table_Rowset_Exception!J G	Zend_Db_Table_Rowset_AbstractI /	Zend_Db_Table_RowH C	Zend_Db_Table_Row_ExceptionG A	Zend_Db_Table_Row_Abstract   d  w]Cc<r=\-]. 


v
D
				x	T	5		
b*Z#Kj@	T6{bJ2yZ;|[9                      =	Zend_Filter_File_Decrypt 7	Zend_Filter_Exception 3	Zend_Filter_Encrypt C	Zend_Filter_Encrypt_Openssl A	Zend_Filter_Encrypt_Mcrypt +	Zend_Filter_Dir 1	Zend_Filter_Digits 3	Zend_Filter_Decrypt
 9	Zend_Filter_Decompress	 5	Zend_Filter_Compress =	Zend_Filter_Compress_Zip =	Zend_Filter_Compress_Tar =	Zend_Filter_Compress_Rar =	Zend_Filter_Compress_Lzf ;	Zend_Filter_Compress_Gz) W	Zend_Filter_Compress_CompressAbstract =	Zend_Filter_Compress_Bz2 5	Zend_Filter_Callback  3	Zend_Filter_Boolean 5	Zend_Filter_BaseName~ /	Zend_Filter_Alpha} /	Zend_Filter_Alnum| 1	Zend_File_Transfer { E	Zend_File_Transfer_Exception#z K	Zend_File_Transfer_Adapter_Http'y S	Zend_File_Transfer_Adapter_Abstractx A	Zend_File_ClassFileLocatorw 	Zend_Feedv -	Zend_Feed_Writeru ;	Zend_Feed_Writer_Source.t a	Zend_Feed_Writer_Renderer_RendererAbstract&s Q	Zend_Feed_Writer_Renderer_Feed_Rss'r S	Zend_Feed_Writer_Renderer_Feed_Atom.q a	Zend_Feed_Writer_Renderer_Feed_Atom_Source4p m	Zend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract'o S	Zend_Feed_Writer_Renderer_Entry_Rss(n U	Zend_Feed_Writer_Renderer_Entry_Atom0m e	Zend_Feed_Writer_Renderer_Entry_Atom_Deletedl 7	Zend_Feed_Writer_Feed&k Q	Zend_Feed_Writer_Feed_FeedAbstract;j {	Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry7i s	Zend_Feed_Writer_Extension_Threading_Renderer_Entry3h k	Zend_Feed_Writer_Extension_Slash_Renderer_Entry/g c	Zend_Feed_Writer_Extension_RendererAbstract3f k	Zend_Feed_Writer_Extension_ITunes_Renderer_Feed4e m	Zend_Feed_Writer_Extension_ITunes_Renderer_Entry*d Y	Zend_Feed_Writer_Extension_ITunes_Feed+c [	Zend_Feed_Writer_Extension_ITunes_Entry7b s	Zend_Feed_Writer_Extension_DublinCore_Renderer_Feed8a u	Zend_Feed_Writer_Extension_DublinCore_Renderer_Entry5` o	Zend_Feed_Writer_Extension_Content_Renderer_Entry1_ g	Zend_Feed_Writer_Extension_Atom_Renderer_Feed5^ o	Zend_Feed_Writer_Exception_InvalidMethodException] 9	Zend_Feed_Writer_Entry\ =	Zend_Feed_Writer_Deleted[ '	Zend_Feed_RssZ -	Zend_Feed_ReaderY =	Zend_Feed_Reader_FeedSet!X G	Zend_Feed_Reader_FeedAbstractW ?	Zend_Feed_Reader_Feed_RssV A	Zend_Feed_Reader_Feed_Atom%U O	Zend_Feed_Reader_Feed_Atom_Source2T i	Zend_Feed_Reader_Extension_WellFormedWeb_Entry+S [	Zend_Feed_Reader_Extension_Thread_Entry/R c	Zend_Feed_Reader_Extension_Syndication_Feed*Q Y	Zend_Feed_Reader_Extension_Slash_Entry+P [	Zend_Feed_Reader_Extension_Podcast_Feed,O ]	Zend_Feed_Reader_Extension_Podcast_Entry+N [	Zend_Feed_Reader_Extension_FeedAbstract,M ]	Zend_Feed_Reader_Extension_EntryAbstract.L a	Zend_Feed_Reader_Extension_DublinCore_Feed/K c	Zend_Feed_Reader_Extension_DublinCore_Entry3J k	Zend_Feed_Reader_Extension_CreativeCommons_Feed4I m	Zend_Feed_Reader_Extension_CreativeCommons_Entry,H ]	Zend_Feed_Reader_Extension_Content_Entry(G U	Zend_Feed_Reader_Extension_Atom_Feed)F W	Zend_Feed_Reader_Extension_Atom_Entry"E I	Zend_Feed_Reader_EntryAbstractD A	Zend_Feed_Reader_Entry_RssC C	Zend_Feed_Reader_Entry_AtomB C	Zend_Feed_Reader_Collection2A i	Zend_Feed_Reader_Collection_CollectionAbstract(@ U	Zend_Feed_Reader_Collection_Category&? Q	Zend_Feed_Reader_Collection_Author> 9	Zend_Feed_Pubsubhubbub%= O	Zend_Feed_Pubsubhubbub_Subscriber.< a	Zend_Feed_Pubsubhubbub_Subscriber_Callback$; M	Zend_Feed_Pubsubhubbub_Publisher-: _	Zend_Feed_Pubsubhubbub_Model_Subscription.9 a	Zend_Feed_Pubsubhubbub_Model_ModelAbstract'8 S	Zend_Feed_Pubsubhubbub_HttpResponse$7 M	Zend_Feed_Pubsubhubbub_Exception+6 [	Zend_Feed_Pubsubhubbub_CallbackAbstract5 3	Zend_Feed_Exception4 3	Zend_Feed_Entry_Rss3 5	Zend_Feed_Entry_Atom2 =	Zend_Feed_Entry_Abstract1 /	Zend_Feed_Element0 /	Zend_Feed_Builder/ =	Zend_Feed_Builder_Header   o  bF.xX8_8l@f:




`
=
					q	Q	'	_>a=dF.uP,^1Z? Y4uS/  ! G	Zend_Gdata_App_Extension_Name!  G	Zend_Gdata_App_Extension_Logo! G	Zend_Gdata_App_Extension_Link~ C	Zend_Gdata_App_Extension_Id!} G	Zend_Gdata_App_Extension_Icon&| Q	Zend_Gdata_App_Extension_Generator"{ I	Zend_Gdata_App_Extension_Email$z M	Zend_Gdata_App_Extension_Element#y K	Zend_Gdata_App_Extension_Edited"x I	Zend_Gdata_App_Extension_Draft$w M	Zend_Gdata_App_Extension_Control(v U	Zend_Gdata_App_Extension_Contributor$u M	Zend_Gdata_App_Extension_Content%t O	Zend_Gdata_App_Extension_Category#s K	Zend_Gdata_App_Extension_Authorr =	Zend_Gdata_App_Exceptionq 5	Zend_Gdata_App_Entry+p [	Zend_Gdata_App_CaptchaRequiredException"o I	Zend_Gdata_App_BaseMediaSourcen 3	Zend_Gdata_App_Base)m W	Zend_Gdata_App_BadMethodCallException l E	Zend_Gdata_App_AuthExceptionk 5	Zend_Gdata_Analytics*j Y	Zend_Gdata_Analytics_Extension_TableId+i [	Zend_Gdata_Analytics_Extension_Property)h W	Zend_Gdata_Analytics_Extension_Metricg ?	Zend_Gdata_Analytics_Goal,f ]	Zend_Gdata_Analytics_Extension_Dimension"e I	Zend_Gdata_Analytics_DataQuery!d G	Zend_Gdata_Analytics_DataFeed"c I	Zend_Gdata_Analytics_DataEntry%b O	Zend_Gdata_Analytics_AccountQuery$a M	Zend_Gdata_Analytics_AccountFeed%` O	Zend_Gdata_Analytics_AccountEntry_ 	Zend_Form^ /	Zend_Form_SubForm] 3	Zend_Form_Exception\ /	Zend_Form_Element[ ;	Zend_Form_Element_XhtmlZ A	Zend_Form_Element_TextareaY 9	Zend_Form_Element_TextX =	Zend_Form_Element_SubmitW =	Zend_Form_Element_SelectV ;	Zend_Form_Element_ResetU ;	Zend_Form_Element_RadioT A	Zend_Form_Element_Password!S G	Zend_Form_Element_Multiselect#R K	Zend_Form_Element_MultiCheckboxQ ;	Zend_Form_Element_MultiP ;	Zend_Form_Element_ImageO =	Zend_Form_Element_HiddenN 9	Zend_Form_Element_HashM 9	Zend_Form_Element_FileL C	Zend_Form_Element_ExceptionK A	Zend_Form_Element_CheckboxJ ?	Zend_Form_Element_CaptchaI =	Zend_Form_Element_ButtonH 9	Zend_Form_DisplayGroup"G I	Zend_Form_Decorator_ViewScript"F I	Zend_Form_Decorator_ViewHelperE C	Zend_Form_Decorator_Tooltip'D S	Zend_Form_Decorator_PrepareElementsC ?	Zend_Form_Decorator_LabelB ?	Zend_Form_Decorator_ImageA C	Zend_Form_Decorator_HtmlTag"@ I	Zend_Form_Decorator_FormErrors$? M	Zend_Form_Decorator_FormElements> =	Zend_Form_Decorator_Form= =	Zend_Form_Decorator_File < E	Zend_Form_Decorator_Fieldset!; G	Zend_Form_Decorator_Exception: A	Zend_Form_Decorator_Errors#9 K	Zend_Form_Decorator_DtDdWrapper#8 K	Zend_Form_Decorator_Description7 C	Zend_Form_Decorator_Captcha$6 M	Zend_Form_Decorator_Captcha_Word)5 W	Zend_Form_Decorator_Captcha_ReCaptcha 4 E	Zend_Form_Decorator_Callback 3 E	Zend_Form_Decorator_Abstract2 #	Zend_Filter*1 Y	Zend_Filter_Word_UnderscoreToSeparator%0 O	Zend_Filter_Word_UnderscoreToDash*/ Y	Zend_Filter_Word_UnderscoreToCamelCase). W	Zend_Filter_Word_SeparatorToSeparator$- M	Zend_Filter_Word_SeparatorToDash), W	Zend_Filter_Word_SeparatorToCamelCase'+ S	Zend_Filter_Word_Separator_Abstract%* O	Zend_Filter_Word_DashToUnderscore$) M	Zend_Filter_Word_DashToSeparator$( M	Zend_Filter_Word_DashToCamelCase*' Y	Zend_Filter_Word_CamelCaseToUnderscore)& W	Zend_Filter_Word_CamelCaseToSeparator$% M	Zend_Filter_Word_CamelCaseToDash$ 7	Zend_Filter_StripTags# ?	Zend_Filter_StripNewlines" 9	Zend_Filter_StringTrim! ?	Zend_Filter_StringToUpper  ?	Zend_Filter_StringToLower 5	Zend_Filter_RealPath ;	Zend_Filter_PregReplace -	Zend_Filter_Null% O	Zend_Filter_NormalizedToLocalized% O	Zend_Filter_LocalizedToNormalized +	Zend_Filter_Int /	Zend_Filter_Input 7	Zend_Filter_Inflector =	Zend_Filter_HtmlEntities A	Zend_Filter_File_UpperCase ;	Zend_Filter_File_Rename A	Zend_Filter_File_LowerCase =	Zend_Filter_File_Encrypt   d  e=dJ%Y9Y)vI!




]
F
!				~	S	*h9lP:Q"kO8xR$ kP:xL(kI#  !e G	Zend_Gdata_Extension_Reminder,d ]	Zend_Gdata_Extension_RecurrenceException#c K	Zend_Gdata_Extension_Recurrenceb C	Zend_Gdata_Extension_Rating&a Q	Zend_Gdata_Extension_OriginalEvent/` c	Zend_Gdata_Extension_OpenSearchTotalResults-_ _	Zend_Gdata_Extension_OpenSearchStartIndex/^ c	Zend_Gdata_Extension_OpenSearchItemsPerPage!] G	Zend_Gdata_Extension_FeedLink)\ W	Zend_Gdata_Extension_ExtendedProperty$[ M	Zend_Gdata_Extension_EventStatus"Z I	Zend_Gdata_Extension_EntryLink!Y G	Zend_Gdata_Extension_Comments%X O	Zend_Gdata_Extension_AttendeeType'W S	Zend_Gdata_Extension_AttendeeStatusV +	Zend_Gdata_ExifU 5	Zend_Gdata_Exif_Feed"T I	Zend_Gdata_Exif_Extension_Time"S I	Zend_Gdata_Exif_Extension_Tags#R K	Zend_Gdata_Exif_Extension_Model"Q I	Zend_Gdata_Exif_Extension_Make!P G	Zend_Gdata_Exif_Extension_Iso+O [	Zend_Gdata_Exif_Extension_ImageUniqueId#N K	Zend_Gdata_Exif_Extension_FStop)M W	Zend_Gdata_Exif_Extension_FocalLength#L K	Zend_Gdata_Exif_Extension_Flash&K Q	Zend_Gdata_Exif_Extension_Exposure&J Q	Zend_Gdata_Exif_Extension_DistanceI 7	Zend_Gdata_Exif_EntryH -	Zend_Gdata_EntryG 7	Zend_Gdata_DublinCore)F W	Zend_Gdata_DublinCore_Extension_Title+E [	Zend_Gdata_DublinCore_Extension_Subject*D Y	Zend_Gdata_DublinCore_Extension_Rights-C _	Zend_Gdata_DublinCore_Extension_Publisher,B ]	Zend_Gdata_DublinCore_Extension_Language.A a	Zend_Gdata_DublinCore_Extension_Identifier*@ Y	Zend_Gdata_DublinCore_Extension_Format/? c	Zend_Gdata_DublinCore_Extension_Description(> U	Zend_Gdata_DublinCore_Extension_Date+= [	Zend_Gdata_DublinCore_Extension_Creator< +	Zend_Gdata_Docs; 7	Zend_Gdata_Docs_Query$: M	Zend_Gdata_Docs_DocumentListFeed%9 O	Zend_Gdata_Docs_DocumentListEntry8 9	Zend_Gdata_ClientLogin7 3	Zend_Gdata_Calendar 6 E	Zend_Gdata_Calendar_ListFeed!5 G	Zend_Gdata_Calendar_ListEntry,4 ]	Zend_Gdata_Calendar_Extension_WebContent*3 Y	Zend_Gdata_Calendar_Extension_Timezone82 u	Zend_Gdata_Calendar_Extension_SendEventNotifications*1 Y	Zend_Gdata_Calendar_Extension_Selected*0 Y	Zend_Gdata_Calendar_Extension_QuickAdd&/ Q	Zend_Gdata_Calendar_Extension_Link(. U	Zend_Gdata_Calendar_Extension_Hidden'- S	Zend_Gdata_Calendar_Extension_Color-, _	Zend_Gdata_Calendar_Extension_AccessLevel"+ I	Zend_Gdata_Calendar_EventQuery!* G	Zend_Gdata_Calendar_EventFeed") I	Zend_Gdata_Calendar_EventEntry( -	Zend_Gdata_Books ' E	Zend_Gdata_Books_VolumeQuery& C	Zend_Gdata_Books_VolumeFeed % E	Zend_Gdata_Books_VolumeEntry*$ Y	Zend_Gdata_Books_Extension_Viewability,# ]	Zend_Gdata_Books_Extension_ThumbnailLink%" O	Zend_Gdata_Books_Extension_Review*! Y	Zend_Gdata_Books_Extension_PreviewLink'  S	Zend_Gdata_Books_Extension_InfoLink, ]	Zend_Gdata_Books_Extension_Embeddability( U	Zend_Gdata_Books_Extension_BooksLink, ]	Zend_Gdata_Books_Extension_BooksCategory- _	Zend_Gdata_Books_Extension_AnnotationLink# K	Zend_Gdata_Books_CollectionFeed$ M	Zend_Gdata_Books_CollectionEntry 1	Zend_Gdata_AuthSub )	Zend_Gdata_App# K	Zend_Gdata_App_VersionException 3	Zend_Gdata_App_Util" I	Zend_Gdata_App_MediaFileSource ?	Zend_Gdata_App_MediaEntry1 g	Zend_Gdata_App_LoggingHttpClientAdapterSocket A	Zend_Gdata_App_IOException+ [	Zend_Gdata_App_InvalidArgumentException  E	Zend_Gdata_App_HttpException# K	Zend_Gdata_App_FeedSourceParent" I	Zend_Gdata_App_FeedEntryParent 3	Zend_Gdata_App_Feed =	Zend_Gdata_App_Extension  E	Zend_Gdata_App_Extension_Uri$
 M	Zend_Gdata_App_Extension_Updated"	 I	Zend_Gdata_App_Extension_Title! G	Zend_Gdata_App_Extension_Text$ M	Zend_Gdata_App_Extension_Summary% O	Zend_Gdata_App_Extension_Subtitle# K	Zend_Gdata_App_Extension_Source# K	Zend_Gdata_App_Extension_Rights& Q	Zend_Gdata_App_Extension_Published# K	Zend_Gdata_App_Extension_Person   h  qR7!S$e;jG"tW/




j
N
-
					d	M	2	d?i=! V)qD^B+
hCpA`9           )M W	Zend_Gdata_Photos_Extension_NumPhotos(L U	Zend_Gdata_Photos_Extension_Nickname$K M	Zend_Gdata_Photos_Extension_Name1J g	Zend_Gdata_Photos_Extension_MaxPhotosPerAlbum(I U	Zend_Gdata_Photos_Extension_Location"H I	Zend_Gdata_Photos_Extension_Id&G Q	Zend_Gdata_Photos_Extension_Height1F g	Zend_Gdata_Photos_Extension_CommentingEnabled,E ]	Zend_Gdata_Photos_Extension_CommentCount&D Q	Zend_Gdata_Photos_Extension_Client(C U	Zend_Gdata_Photos_Extension_Checksum)B W	Zend_Gdata_Photos_Extension_BytesUsed'A S	Zend_Gdata_Photos_Extension_AlbumId&@ Q	Zend_Gdata_Photos_Extension_Access"? I	Zend_Gdata_Photos_CommentEntry > E	Zend_Gdata_Photos_AlbumQuery= C	Zend_Gdata_Photos_AlbumFeed < E	Zend_Gdata_Photos_AlbumEntry; 3	Zend_Gdata_MimeFile: ?	Zend_Gdata_MimeBodyString9 A	Zend_Gdata_MediaMimeStream8 -	Zend_Gdata_Media7 7	Zend_Gdata_Media_Feed)6 W	Zend_Gdata_Media_Extension_MediaTitle-5 _	Zend_Gdata_Media_Extension_MediaThumbnail(4 U	Zend_Gdata_Media_Extension_MediaText/3 c	Zend_Gdata_Media_Extension_MediaRestriction*2 Y	Zend_Gdata_Media_Extension_MediaRating*1 Y	Zend_Gdata_Media_Extension_MediaPlayer,0 ]	Zend_Gdata_Media_Extension_MediaKeywords(/ U	Zend_Gdata_Media_Extension_MediaHash). W	Zend_Gdata_Media_Extension_MediaGroup/- c	Zend_Gdata_Media_Extension_MediaDescription*, Y	Zend_Gdata_Media_Extension_MediaCredit-+ _	Zend_Gdata_Media_Extension_MediaCopyright+* [	Zend_Gdata_Media_Extension_MediaContent,) ]	Zend_Gdata_Media_Extension_MediaCategory( 9	Zend_Gdata_Media_Entry' A	Zend_Gdata_Kind_EventEntry& 7	Zend_Gdata_HttpClient)% W	Zend_Gdata_HttpAdapterStreamingSocket($ U	Zend_Gdata_HttpAdapterStreamingProxy# /	Zend_Gdata_Health" ;	Zend_Gdata_Health_Query%! O	Zend_Gdata_Health_ProfileListFeed&  Q	Zend_Gdata_Health_ProfileListEntry! G	Zend_Gdata_Health_ProfileFeed" I	Zend_Gdata_Health_ProfileEntry# K	Zend_Gdata_Health_Extension_Ccr )	Zend_Gdata_Geo 3	Zend_Gdata_Geo_Feed# K	Zend_Gdata_Geo_Extension_GmlPos% O	Zend_Gdata_Geo_Extension_GmlPoint( U	Zend_Gdata_Geo_Extension_GeoRssWhere 5	Zend_Gdata_Geo_Entry -	Zend_Gdata_Gbase! G	Zend_Gdata_Gbase_SnippetQuery  E	Zend_Gdata_Gbase_SnippetFeed! G	Zend_Gdata_Gbase_SnippetEntry 9	Zend_Gdata_Gbase_Query A	Zend_Gdata_Gbase_ItemQuery ?	Zend_Gdata_Gbase_ItemFeed A	Zend_Gdata_Gbase_ItemEntry 7	Zend_Gdata_Gbase_Feed, ]	Zend_Gdata_Gbase_Extension_BaseAttribute 9	Zend_Gdata_Gbase_Entry -	Zend_Gdata_Gapps
 A	Zend_Gdata_Gapps_UserQuery	 ?	Zend_Gdata_Gapps_UserFeed A	Zend_Gdata_Gapps_UserEntry% O	Zend_Gdata_Gapps_ServiceException 9	Zend_Gdata_Gapps_Query C	Zend_Gdata_Gapps_OwnerQuery A	Zend_Gdata_Gapps_OwnerFeed C	Zend_Gdata_Gapps_OwnerEntry" I	Zend_Gdata_Gapps_NicknameQuery! G	Zend_Gdata_Gapps_NicknameFeed"  I	Zend_Gdata_Gapps_NicknameEntry  E	Zend_Gdata_Gapps_MemberQuery~ C	Zend_Gdata_Gapps_MemberFeed } E	Zend_Gdata_Gapps_MemberEntry| C	Zend_Gdata_Gapps_GroupQuery{ A	Zend_Gdata_Gapps_GroupFeedz C	Zend_Gdata_Gapps_GroupEntry$y M	Zend_Gdata_Gapps_Extension_Quota'x S	Zend_Gdata_Gapps_Extension_Property'w S	Zend_Gdata_Gapps_Extension_Nickname#v K	Zend_Gdata_Gapps_Extension_Name$u M	Zend_Gdata_Gapps_Extension_Login(t U	Zend_Gdata_Gapps_Extension_EmailLists 9	Zend_Gdata_Gapps_Error,r ]	Zend_Gdata_Gapps_EmailListRecipientQuery+q [	Zend_Gdata_Gapps_EmailListRecipientFeed,p ]	Zend_Gdata_Gapps_EmailListRecipientEntry#o K	Zend_Gdata_Gapps_EmailListQuery"n I	Zend_Gdata_Gapps_EmailListFeed#m K	Zend_Gdata_Gapps_EmailListEntryl +	Zend_Gdata_Feedk 5	Zend_Gdata_Extensionj =	Zend_Gdata_Extension_Whoi A	Zend_Gdata_Extension_Whereh ?	Zend_Gdata_Extension_When#g K	Zend_Gdata_Extension_Visibility%f O	Zend_Gdata_Extension_Transparency   ]  vGpIfE#b:P(


|
O
#
				m	G	"|Q$rGk<a3}N&qHoD X-                       '* S	Zend_Gdata_YouTube_SubscriptionFeed() U	Zend_Gdata_YouTube_SubscriptionEntry(( U	Zend_Gdata_YouTube_PlaylistVideoFeed)' W	Zend_Gdata_YouTube_PlaylistVideoEntry'& S	Zend_Gdata_YouTube_PlaylistListFeed(% U	Zend_Gdata_YouTube_PlaylistListEntry!$ G	Zend_Gdata_YouTube_MediaEntry # E	Zend_Gdata_YouTube_InboxFeed!" G	Zend_Gdata_YouTube_InboxEntry(! U	Zend_Gdata_YouTube_Extension_VideoId)  W	Zend_Gdata_YouTube_Extension_Username) W	Zend_Gdata_YouTube_Extension_Uploaded& Q	Zend_Gdata_YouTube_Extension_Token' S	Zend_Gdata_YouTube_Extension_Status+ [	Zend_Gdata_YouTube_Extension_Statistics& Q	Zend_Gdata_YouTube_Extension_State' S	Zend_Gdata_YouTube_Extension_School, ]	Zend_Gdata_YouTube_Extension_ReleaseDate- _	Zend_Gdata_YouTube_Extension_Relationship) W	Zend_Gdata_YouTube_Extension_Recorded% O	Zend_Gdata_YouTube_Extension_Racy, ]	Zend_Gdata_YouTube_Extension_QueryString( U	Zend_Gdata_YouTube_Extension_Private) W	Zend_Gdata_YouTube_Extension_Position. a	Zend_Gdata_YouTube_Extension_PlaylistTitle+ [	Zend_Gdata_YouTube_Extension_PlaylistId+ [	Zend_Gdata_YouTube_Extension_Occupation( U	Zend_Gdata_YouTube_Extension_NoEmbed& Q	Zend_Gdata_YouTube_Extension_Music' S	Zend_Gdata_YouTube_Extension_Movies, ]	Zend_Gdata_YouTube_Extension_MediaRating+ [	Zend_Gdata_YouTube_Extension_MediaGroup,
 ]	Zend_Gdata_YouTube_Extension_MediaCredit-	 _	Zend_Gdata_YouTube_Extension_MediaContent) W	Zend_Gdata_YouTube_Extension_Location% O	Zend_Gdata_YouTube_Extension_Link) W	Zend_Gdata_YouTube_Extension_LastName) W	Zend_Gdata_YouTube_Extension_Hometown( U	Zend_Gdata_YouTube_Extension_Hobbies' S	Zend_Gdata_YouTube_Extension_Gender* Y	Zend_Gdata_YouTube_Extension_FirstName) W	Zend_Gdata_YouTube_Extension_Duration,  ]	Zend_Gdata_YouTube_Extension_Description* Y	Zend_Gdata_YouTube_Extension_CountHint(~ U	Zend_Gdata_YouTube_Extension_Control(} U	Zend_Gdata_YouTube_Extension_Company&| Q	Zend_Gdata_YouTube_Extension_Books${ M	Zend_Gdata_YouTube_Extension_Age(z U	Zend_Gdata_YouTube_Extension_AboutMe"y I	Zend_Gdata_YouTube_ContactFeed#x K	Zend_Gdata_YouTube_ContactEntry"w I	Zend_Gdata_YouTube_CommentFeed#v K	Zend_Gdata_YouTube_CommentEntry#u K	Zend_Gdata_YouTube_ActivityFeed$t M	Zend_Gdata_YouTube_ActivityEntrys ;	Zend_Gdata_Spreadsheets)r W	Zend_Gdata_Spreadsheets_WorksheetFeed*q Y	Zend_Gdata_Spreadsheets_WorksheetEntry+p [	Zend_Gdata_Spreadsheets_SpreadsheetFeed,o ]	Zend_Gdata_Spreadsheets_SpreadsheetEntry%n O	Zend_Gdata_Spreadsheets_ListQuery$m M	Zend_Gdata_Spreadsheets_ListFeed%l O	Zend_Gdata_Spreadsheets_ListEntry.k a	Zend_Gdata_Spreadsheets_Extension_RowCount,j ]	Zend_Gdata_Spreadsheets_Extension_Custom.i a	Zend_Gdata_Spreadsheets_Extension_ColCount*h Y	Zend_Gdata_Spreadsheets_Extension_Cell)g W	Zend_Gdata_Spreadsheets_DocumentQuery%f O	Zend_Gdata_Spreadsheets_CellQuery$e M	Zend_Gdata_Spreadsheets_CellFeed%d O	Zend_Gdata_Spreadsheets_CellEntryc -	Zend_Gdata_Queryb /	Zend_Gdata_Photosa C	Zend_Gdata_Photos_UserQuery` A	Zend_Gdata_Photos_UserFeed_ C	Zend_Gdata_Photos_UserEntry^ A	Zend_Gdata_Photos_TagEntry ] E	Zend_Gdata_Photos_PhotoQuery\ C	Zend_Gdata_Photos_PhotoFeed [ E	Zend_Gdata_Photos_PhotoEntry%Z O	Zend_Gdata_Photos_Extension_Width&Y Q	Zend_Gdata_Photos_Extension_Weight'X S	Zend_Gdata_Photos_Extension_Version$W M	Zend_Gdata_Photos_Extension_User)V W	Zend_Gdata_Photos_Extension_Timestamp)U W	Zend_Gdata_Photos_Extension_Thumbnail$T M	Zend_Gdata_Photos_Extension_Size(S U	Zend_Gdata_Photos_Extension_Rotation*R Y	Zend_Gdata_Photos_Extension_QuotaLimit,Q ]	Zend_Gdata_Photos_Extension_QuotaCurrent(P U	Zend_Gdata_Photos_Extension_Position'O S	Zend_Gdata_Photos_Extension_PhotoId2N i	Zend_Gdata_Photos_Extension_NumPhotosRemaining   n  kRAdM6uU<oK~_>




W
8
					[	0qV/yL&fFrG&gJ)~cL<
kP,jN3   -	Zend_Ldap_Filter ;	Zend_Ldap_Filter_String 3	Zend_Ldap_Filter_Or 5	Zend_Ldap_Filter_Not 7	Zend_Ldap_Filter_Mask =	Zend_Ldap_Filter_Logical A	Zend_Ldap_Filter_Exception 5	Zend_Ldap_Filter_And ?	Zend_Ldap_Filter_Abstract 3	Zend_Ldap_Exception %	Zend_Ldap_Dn 3	Zend_Ldap_Converter! G	Zend_Ldap_Converter_Exception 5	Zend_Ldap_Collection)
 W	Zend_Ldap_Collection_Iterator_Default	 3	Zend_Ldap_Attribute #	Zend_Layout 7	Zend_Layout_Exception( U	Zend_Layout_Controller_Plugin_Layout/ c	Zend_Layout_Controller_Action_Helper_Layout 	Zend_Json -	Zend_Json_Server 5	Zend_Json_Server_Smd  E	Zend_Json_Server_Smd_Service  ?	Zend_Json_Server_Response" I	Zend_Json_Server_Response_Http~ =	Zend_Json_Server_Request!} G	Zend_Json_Server_Request_Http| A	Zend_Json_Server_Exception{ 9	Zend_Json_Server_Errorz 9	Zend_Json_Server_Cachey )	Zend_Json_Exprx 3	Zend_Json_Exceptionw /	Zend_Json_Encoderv /	Zend_Json_Decoderu '	Zend_InfoCard,t ]	Zend_InfoCard_Xml_SecurityTokenReferences A	Zend_InfoCard_Xml_Security(r U	Zend_InfoCard_Xml_Security_Transform3q k	Zend_InfoCard_Xml_Security_Transform_XmlExcC14N2p i	Zend_InfoCard_Xml_Security_Transform_Exception;o {	Zend_InfoCard_Xml_Security_Transform_EnvelopedSignature(n U	Zend_InfoCard_Xml_Security_Exceptionm ?	Zend_InfoCard_Xml_KeyInfo%l O	Zend_InfoCard_Xml_KeyInfo_XmlDSig%k O	Zend_InfoCard_Xml_KeyInfo_Default&j Q	Zend_InfoCard_Xml_KeyInfo_Abstracti C	Zend_InfoCard_Xml_Exception"h I	Zend_InfoCard_Xml_EncryptedKey#g K	Zend_InfoCard_Xml_EncryptedData*f Y	Zend_InfoCard_Xml_EncryptedData_XmlEnc,e ]	Zend_InfoCard_Xml_EncryptedData_Abstractd ?	Zend_InfoCard_Xml_Elementc C	Zend_InfoCard_Xml_Assertion$b M	Zend_InfoCard_Xml_Assertion_Samla ;	Zend_InfoCard_Exception$` M	Zend_InfoCard_Exception_Abstract_ 5	Zend_InfoCard_Claims^ 5	Zend_InfoCard_Cipher4] m	Zend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc4\ m	Zend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc3[ k	Zend_InfoCard_Cipher_Symmetric_Adapter_Abstract(Z U	Zend_InfoCard_Cipher_Pki_Adapter_Rsa-Y _	Zend_InfoCard_Cipher_Pki_Adapter_Abstract"X I	Zend_InfoCard_Cipher_Exception#W K	Zend_InfoCard_Adapter_Exception!V G	Zend_InfoCard_Adapter_DefaultU 3	Zend_Http_UserAgent!T G	Zend_Http_UserAgent_ValidatorS =	Zend_Http_UserAgent_Text'R S	Zend_Http_UserAgent_Storage_Session-Q _	Zend_Http_UserAgent_Storage_NonPersistent)P W	Zend_Http_UserAgent_Storage_ExceptionO =	Zend_Http_UserAgent_SpamN ?	Zend_Http_UserAgent_ProbeM C	Zend_Http_UserAgent_OfflineL A	Zend_Http_UserAgent_MobileK =	Zend_Http_UserAgent_Feed*J Y	Zend_Http_UserAgent_Features_Exception2I i	Zend_Http_UserAgent_Features_Adapter_TeraWurfl4H m	Zend_Http_UserAgent_Features_Adapter_DeviceAtlas1G g	Zend_Http_UserAgent_Features_Adapter_Browscap!F G	Zend_Http_UserAgent_ExceptionE ?	Zend_Http_UserAgent_EmailD C	Zend_Http_UserAgent_DesktopC C	Zend_Http_UserAgent_ConsoleB C	Zend_Http_UserAgent_CheckerA ;	Zend_Http_UserAgent_Bot&@ Q	Zend_Http_UserAgent_AbstractDevice? 1	Zend_Http_Response> ?	Zend_Http_Response_Stream= A	Zend_Http_Header_SetCookie/< c	Zend_Http_Header_Exception_RuntimeException7; s	Zend_Http_Header_Exception_InvalidArgumentException: 3	Zend_Http_Exception9 3	Zend_Http_CookieJar8 -	Zend_Http_Cookie7 -	Zend_Http_Client6 A	Zend_Http_Client_Exception!5 G	Zend_Http_Client_Adapter_Test#4 K	Zend_Http_Client_Adapter_Socket"3 I	Zend_Http_Client_Adapter_Proxy&2 Q	Zend_Http_Client_Adapter_Exception!1 G	Zend_Http_Client_Adapter_Curl0 !	Zend_Gdata/ 1	Zend_Gdata_YouTube!. G	Zend_Gdata_YouTube_VideoQuery - E	Zend_Gdata_YouTube_VideoFeed!, G	Zend_Gdata_YouTube_VideoEntry'+ S	Zend_Gdata_YouTube_UserProfileEntry   y  R*N-n^8X9rS<*




t
S
3
						o	R	5		dA#jI' cF|]M1V2iW;mR7 qQ7        3	Zend_Measure_Number 9	Zend_Measure_Lightness 3	Zend_Measure_Length ?	Zend_Measure_Illumination 9	Zend_Measure_Frequency 1	Zend_Measure_Force =	Zend_Measure_Flow_Volume
 9	Zend_Measure_Flow_Mole	 9	Zend_Measure_Flow_Mass 9	Zend_Measure_Exception 3	Zend_Measure_Energy 5	Zend_Measure_Density 5	Zend_Measure_Current C	Zend_Measure_Cooking_Weight C	Zend_Measure_Cooking_Volume =	Zend_Measure_Capacitance 3	Zend_Measure_Binary  /	Zend_Measure_Area 1	Zend_Measure_Angle~ ?	Zend_Measure_Acceleration} 7	Zend_Measure_Abstract| #	Zend_Markup{ 7	Zend_Markup_TokenListz /	Zend_Markup_Token)y W	Zend_Markup_Renderer_RendererAbstractx ?	Zend_Markup_Renderer_Html!w G	Zend_Markup_Renderer_Html_Url"v I	Zend_Markup_Renderer_Html_List!u G	Zend_Markup_Renderer_Html_Img*t Y	Zend_Markup_Renderer_Html_HtmlAbstract"s I	Zend_Markup_Renderer_Html_Code"r I	Zend_Markup_Renderer_Exceptionq A	Zend_Markup_Parser_Textile p E	Zend_Markup_Parser_Exceptiono ?	Zend_Markup_Parser_Bbcoden 7	Zend_Markup_Exceptionm 	Zend_Maill =	Zend_Mail_Transport_Smtp k E	Zend_Mail_Transport_Sendmailj =	Zend_Mail_Transport_File!i G	Zend_Mail_Transport_Exception h E	Zend_Mail_Transport_Abstractg /	Zend_Mail_Storage&f Q	Zend_Mail_Storage_Writable_Maildire 9	Zend_Mail_Storage_Pop3d 9	Zend_Mail_Storage_Mboxc ?	Zend_Mail_Storage_Maildirb 9	Zend_Mail_Storage_Imapa =	Zend_Mail_Storage_Folder!` G	Zend_Mail_Storage_Folder_Mbox$_ M	Zend_Mail_Storage_Folder_Maildir^ C	Zend_Mail_Storage_Exception] A	Zend_Mail_Storage_Abstract\ ;	Zend_Mail_Protocol_Smtp&[ Q	Zend_Mail_Protocol_Smtp_Auth_Plain&Z Q	Zend_Mail_Protocol_Smtp_Auth_Login(Y U	Zend_Mail_Protocol_Smtp_Auth_Crammd5X ;	Zend_Mail_Protocol_Pop3W ;	Zend_Mail_Protocol_Imap V E	Zend_Mail_Protocol_ExceptionU C	Zend_Mail_Protocol_AbstractT )	Zend_Mail_PartS 3	Zend_Mail_Part_FileR /	Zend_Mail_MessageQ 9	Zend_Mail_Message_FileP 3	Zend_Mail_ExceptionO 	Zend_LogN C	Zend_Log_Writer_ZendMonitorM 9	Zend_Log_Writer_SyslogL 9	Zend_Log_Writer_StreamK 5	Zend_Log_Writer_NullJ 5	Zend_Log_Writer_MockI 5	Zend_Log_Writer_MailH ;	Zend_Log_Writer_FirebugG 1	Zend_Log_Writer_DbF =	Zend_Log_Writer_AbstractE 9	Zend_Log_Formatter_XmlD ?	Zend_Log_Formatter_SimpleC A	Zend_Log_Formatter_FirebugB C	Zend_Log_Formatter_AbstractA =	Zend_Log_Filter_Suppress@ =	Zend_Log_Filter_Priority? ;	Zend_Log_Filter_Message> =	Zend_Log_Filter_Abstract= 1	Zend_Log_Exception< #	Zend_Locale; -	Zend_Locale_Math: =	Zend_Locale_Math_PhpMath9 A	Zend_Locale_Math_Exception8 1	Zend_Locale_Format7 7	Zend_Locale_Exception6 -	Zend_Locale_Data 5 E	Zend_Locale_Data_Translation4 #	Zend_Loader"3 I	Zend_Loader_StandardAutoloader2 =	Zend_Loader_PluginLoader&1 Q	Zend_Loader_PluginLoader_Exception0 7	Zend_Loader_Exception2/ i	Zend_Loader_Exception_InvalidArgumentException". I	Zend_Loader_ClassMapAutoloader!- G	Zend_Loader_AutoloaderFactory, 9	Zend_Loader_Autoloader#+ K	Zend_Loader_Autoloader_Resource* 	Zend_Ldap) )	Zend_Ldap_Node( 7	Zend_Ldap_Node_Schema"' I	Zend_Ldap_Node_Schema_OpenLdap.& a	Zend_Ldap_Node_Schema_ObjectClass_OpenLdap5% o	Zend_Ldap_Node_Schema_ObjectClass_ActiveDirectory$ A	Zend_Ldap_Node_Schema_Item0# e	Zend_Ldap_Node_Schema_AttributeType_OpenLdap7" s	Zend_Ldap_Node_Schema_AttributeType_ActiveDirectory)! W	Zend_Ldap_Node_Schema_ActiveDirectory  9	Zend_Ldap_Node_RootDse# K	Zend_Ldap_Node_RootDse_OpenLdap% O	Zend_Ldap_Node_RootDse_eDirectory* Y	Zend_Ldap_Node_RootDse_ActiveDirectory ?	Zend_Ldap_Node_Collection# K	Zend_Ldap_Node_ChildrenIterator ;	Zend_Ldap_Node_Abstract 9	Zend_Ldap_Ldif_Encoder   v  {a<w[?%qQ5 i;oG#




\
8
					s	T	9	#	yQ3nE&|[?\6|P$x\@%nN,~h?              A	Zend_Pdf_Annotation_Markup =	Zend_Pdf_Annotation_Link& Q	Zend_Pdf_Annotation_FileAttachment +	Zend_Pdf_Action 3	Zend_Pdf_Action_URI ;	Zend_Pdf_Action_Unknown 7	Zend_Pdf_Action_Trans  9	Zend_Pdf_Action_Thread A	Zend_Pdf_Action_SubmitForm~ 7	Zend_Pdf_Action_Sound} C	Zend_Pdf_Action_SetOCGState| ?	Zend_Pdf_Action_ResetForm{ ?	Zend_Pdf_Action_Renditionz 7	Zend_Pdf_Action_Namedy 7	Zend_Pdf_Action_Moviex 9	Zend_Pdf_Action_Launchw A	Zend_Pdf_Action_JavaScriptv A	Zend_Pdf_Action_ImportDatau 5	Zend_Pdf_Action_Hidet 7	Zend_Pdf_Action_GoToRs 7	Zend_Pdf_Action_GoToEr A	Zend_Pdf_Action_GoTo3DViewq 5	Zend_Pdf_Action_GoTop )	Zend_Paginator,o ]	Zend_Paginator_SerializableLimitIterator)n W	Zend_Paginator_ScrollingStyle_Sliding)m W	Zend_Paginator_ScrollingStyle_Jumping)l W	Zend_Paginator_ScrollingStyle_Elastic%k O	Zend_Paginator_ScrollingStyle_Allj =	Zend_Paginator_Exceptioni C	Zend_Paginator_Adapter_Null#h K	Zend_Paginator_Adapter_Iterator(g U	Zend_Paginator_Adapter_DbTableSelect#f K	Zend_Paginator_Adapter_DbSelect e E	Zend_Paginator_Adapter_Arrayd #	Zend_OpenIdc 5	Zend_OpenId_Providerb ?	Zend_OpenId_Provider_User%a O	Zend_OpenId_Provider_User_Session ` E	Zend_OpenId_Provider_Storage%_ O	Zend_OpenId_Provider_Storage_File^ 7	Zend_OpenId_Extension] A	Zend_OpenId_Extension_Sreg\ 7	Zend_OpenId_Exception[ 5	Zend_OpenId_Consumer Z E	Zend_OpenId_Consumer_Storage%Y O	Zend_OpenId_Consumer_Storage_FileX !	Zend_OauthW -	Zend_Oauth_TokenV =	Zend_Oauth_Token_Request&U Q	Zend_Oauth_Token_AuthorizedRequestT ;	Zend_Oauth_Token_Access*S Y	Zend_Oauth_Signature_SignatureAbstractR =	Zend_Oauth_Signature_Rsa"Q I	Zend_Oauth_Signature_PlaintextP ?	Zend_Oauth_Signature_HmacO +	Zend_Oauth_HttpN ;	Zend_Oauth_Http_Utility%M O	Zend_Oauth_Http_UserAuthorization L E	Zend_Oauth_Http_RequestTokenK C	Zend_Oauth_Http_AccessTokenJ 5	Zend_Oauth_ExceptionI 3	Zend_Oauth_ConsumerH /	Zend_Oauth_ConfigG /	Zend_Oauth_ClientF +	Zend_NavigationE 5	Zend_Navigation_PageD =	Zend_Navigation_Page_UriC =	Zend_Navigation_Page_MvcB ?	Zend_Navigation_ExceptionA ?	Zend_Navigation_Container#@ K	Zend_Mobile_Push_Test_ApnsProxy!? G	Zend_Mobile_Push_Response_Gcm> 7	Zend_Mobile_Push_Mpns!= G	Zend_Mobile_Push_Message_Mpns'< S	Zend_Mobile_Push_Message_Mpns_Toast&; Q	Zend_Mobile_Push_Message_Mpns_Tile%: O	Zend_Mobile_Push_Message_Mpns_Raw 9 E	Zend_Mobile_Push_Message_Gcm&8 Q	Zend_Mobile_Push_Message_Exception!7 G	Zend_Mobile_Push_Message_Apns%6 O	Zend_Mobile_Push_Message_Abstract5 5	Zend_Mobile_Push_Gcm4 A	Zend_Mobile_Push_Exception03 e	Zend_Mobile_Push_Exception_ServerUnavailable,2 ]	Zend_Mobile_Push_Exception_QuotaExceeded+1 [	Zend_Mobile_Push_Exception_InvalidTopic+0 [	Zend_Mobile_Push_Exception_InvalidToken2/ i	Zend_Mobile_Push_Exception_InvalidRegistration-. _	Zend_Mobile_Push_Exception_InvalidPayload/- c	Zend_Mobile_Push_Exception_InvalidAuthToken2, i	Zend_Mobile_Push_Exception_DeviceQuotaExceeded+ 7	Zend_Mobile_Push_Apns* ?	Zend_Mobile_Push_Abstract) 7	Zend_Mobile_Exception( 	Zend_Mime' )	Zend_Mime_Part& /	Zend_Mime_Message% 3	Zend_Mime_Exception$ -	Zend_Mime_Decode# #	Zend_Memory" /	Zend_Memory_Value! 3	Zend_Memory_Manager  7	Zend_Memory_Exception 7	Zend_Memory_Container! G	Zend_Memory_Container_Movable  E	Zend_Memory_Container_Locked  E	Zend_Memory_AccessController 3	Zend_Measure_Weight 3	Zend_Measure_Volume$ M	Zend_Measure_Viscosity_Kinematic" I	Zend_Measure_Viscosity_Dynamic 3	Zend_Measure_Torque /	Zend_Measure_Time =	Zend_Measure_Temperature 1	Zend_Measure_Speed 7	Zend_Measure_Pressure 1	Zend_Measure_Power   i  jI&pL-nFb@$}V5




{
b
1
						c	8	gG3S-e1Xg)HbEtT<                             p +	Zend_Pdf_Targeto )	Zend_Pdf_Stylen 7	Zend_Pdf_StringParserm /	Zend_Pdf_Resourcel ?	Zend_Pdf_Resource_Unified"k I	Zend_Pdf_Resource_ImageFactoryj ;	Zend_Pdf_Resource_Image i E	Zend_Pdf_Resource_Image_Tiffh C	Zend_Pdf_Resource_Image_Png g E	Zend_Pdf_Resource_Image_Jpeg#f K	Zend_Pdf_Resource_GraphicsStatee 9	Zend_Pdf_Resource_Font d E	Zend_Pdf_Resource_Font_Type0!c G	Zend_Pdf_Resource_Font_Simple*b Y	Zend_Pdf_Resource_Font_Simple_Standard7a s	Zend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats5` o	Zend_Pdf_Resource_Font_Simple_Standard_TimesRoman6_ q	Zend_Pdf_Resource_Font_Simple_Standard_TimesItalic:^ y	Zend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic4] m	Zend_Pdf_Resource_Font_Simple_Standard_TimesBold1\ g	Zend_Pdf_Resource_Font_Simple_Standard_Symbol;[ {	Zend_Pdf_Resource_Font_Simple_Standard_HelveticaOblique@Z 	Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique8Y u	Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBold4X m	Zend_Pdf_Resource_Font_Simple_Standard_Helvetica9W w	Zend_Pdf_Resource_Font_Simple_Standard_CourierOblique=V 	Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique6U q	Zend_Pdf_Resource_Font_Simple_Standard_CourierBold2T i	Zend_Pdf_Resource_Font_Simple_Standard_Courier(S U	Zend_Pdf_Resource_Font_Simple_Parsed1R g	Zend_Pdf_Resource_Font_Simple_Parsed_TrueType)Q W	Zend_Pdf_Resource_Font_FontDescriptor$P M	Zend_Pdf_Resource_Font_Extracted"O I	Zend_Pdf_Resource_Font_CidFont+N [	Zend_Pdf_Resource_Font_CidFont_TrueTypeM C	Zend_Pdf_Resource_Extractor#L K	Zend_Pdf_Resource_ContentStream2K i	Zend_Pdf_RecursivelyIteratableObjectsContainerJ +	Zend_Pdf_ParserI '	Zend_Pdf_PageH -	Zend_Pdf_OutlineG ;	Zend_Pdf_Outline_LoadedF =	Zend_Pdf_Outline_CreatedE /	Zend_Pdf_NameTreeD )	Zend_Pdf_ImageC '	Zend_Pdf_FontB ?	Zend_Pdf_Filter_RunLengthA C	Zend_Pdf_Filter_Compression#@ K	Zend_Pdf_Filter_Compression_Lzw%? O	Zend_Pdf_Filter_Compression_Flate> =	Zend_Pdf_Filter_AsciiHex= ;	Zend_Pdf_Filter_Ascii85!< G	Zend_Pdf_FileParserDataSource(; U	Zend_Pdf_FileParserDataSource_String&: Q	Zend_Pdf_FileParserDataSource_File9 3	Zend_Pdf_FileParser8 ?	Zend_Pdf_FileParser_Image!7 G	Zend_Pdf_FileParser_Image_Png6 =	Zend_Pdf_FileParser_Font%5 O	Zend_Pdf_FileParser_Font_OpenType.4 a	Zend_Pdf_FileParser_Font_OpenType_TrueType3 1	Zend_Pdf_Exception2 ;	Zend_Pdf_ElementFactory!1 G	Zend_Pdf_ElementFactory_Proxy0 -	Zend_Pdf_Element/ ;	Zend_Pdf_Element_String". I	Zend_Pdf_Element_String_Binary- ;	Zend_Pdf_Element_Stream, A	Zend_Pdf_Element_Reference$+ M	Zend_Pdf_Element_Reference_Table&* Q	Zend_Pdf_Element_Reference_Context) ;	Zend_Pdf_Element_Object"( I	Zend_Pdf_Element_Object_Stream' =	Zend_Pdf_Element_Numeric& 7	Zend_Pdf_Element_Null% 7	Zend_Pdf_Element_Name$ C	Zend_Pdf_Element_Dictionary# =	Zend_Pdf_Element_Boolean" 9	Zend_Pdf_Element_Array! 5	Zend_Pdf_Destination  ?	Zend_Pdf_Destination_Zoom  E	Zend_Pdf_Destination_Unknown A	Zend_Pdf_Destination_Named& Q	Zend_Pdf_Destination_FitVertically% O	Zend_Pdf_Destination_FitRectangle( U	Zend_Pdf_Destination_FitHorizontally1 g	Zend_Pdf_Destination_FitBoundingBoxVertically3 k	Zend_Pdf_Destination_FitBoundingBoxHorizontally' S	Zend_Pdf_Destination_FitBoundingBox =	Zend_Pdf_Destination_Fit! G	Zend_Pdf_Destination_Explicit )	Zend_Pdf_Color 1	Zend_Pdf_Color_Rgb 3	Zend_Pdf_Color_Html =	Zend_Pdf_Color_GrayScale 3	Zend_Pdf_Color_Cmyk '	Zend_Pdf_Cmap A	Zend_Pdf_Cmap_TrimmedTable  E	Zend_Pdf_Cmap_SegmentToDelta A	Zend_Pdf_Cmap_ByteEncoding% O	Zend_Pdf_Cmap_ByteEncoding_Static +	Zend_Pdf_Canvas
 =	Zend_Pdf_Canvas_Abstract	 3	Zend_Pdf_Annotation =	Zend_Pdf_Annotation_Text   c  xQ(c:xN3o^BmR3




z
\
E
*
					^	'Z#lAl4b;p@YtN)O                                +S [	Zend_Search_Lucene_Search_Query_Boolean1R g	Zend_Search_Lucene_Search_Highlighter_Default9Q w	Zend_Search_Lucene_Search_BooleanExpressionRecognizerP =	Zend_Search_Lucene_Proxy$O M	Zend_Search_Lucene_PriorityQueue.N a	Zend_Search_Lucene_Interface_MultiSearcher$M M	Zend_Search_Lucene_MultiSearcher"L I	Zend_Search_Lucene_LockManager#K K	Zend_Search_Lucene_Index_Writer/J c	Zend_Search_Lucene_Index_TermsPriorityQueue%I O	Zend_Search_Lucene_Index_TermInfo!H G	Zend_Search_Lucene_Index_Term*G Y	Zend_Search_Lucene_Index_SegmentWriter7F s	Zend_Search_Lucene_Index_SegmentWriter_StreamWriter9E w	Zend_Search_Lucene_Index_SegmentWriter_DocumentWriter*D Y	Zend_Search_Lucene_Index_SegmentMerger(C U	Zend_Search_Lucene_Index_SegmentInfo&B Q	Zend_Search_Lucene_Index_FieldInfo'A S	Zend_Search_Lucene_Index_DocsFilter-@ _	Zend_Search_Lucene_Index_DictionaryLoader ? E	Zend_Search_Lucene_FSMAction> 9	Zend_Search_Lucene_FSM= =	Zend_Search_Lucene_Field < E	Zend_Search_Lucene_Exception; C	Zend_Search_Lucene_Document$: M	Zend_Search_Lucene_Document_Xlsx$9 M	Zend_Search_Lucene_Document_Pptx'8 S	Zend_Search_Lucene_Document_OpenXml$7 M	Zend_Search_Lucene_Document_Html)6 W	Zend_Search_Lucene_Document_Exception$5 M	Zend_Search_Lucene_Document_Docx+4 [	Zend_Search_Lucene_Analysis_TokenFilter53 o	Zend_Search_Lucene_Analysis_TokenFilter_StopWords62 q	Zend_Search_Lucene_Analysis_TokenFilter_ShortWords91 w	Zend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf850 o	Zend_Search_Lucene_Analysis_TokenFilter_LowerCase%/ O	Zend_Search_Lucene_Analysis_Token(. U	Zend_Search_Lucene_Analysis_Analyzer/- c	Zend_Search_Lucene_Analysis_Analyzer_Common7, s	Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumH+ 	Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive4* m	Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8E) 	Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive7( s	Zend_Search_Lucene_Analysis_Analyzer_Common_TextNumH' 	Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive4& m	Zend_Search_Lucene_Analysis_Analyzer_Common_TextE% 	Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive$ 7	Zend_Search_Exception# -	Zend_Rest_Server" A	Zend_Rest_Server_Exception! +	Zend_Rest_Route  3	Zend_Rest_Exception 5	Zend_Rest_Controller -	Zend_Rest_Client ;	Zend_Rest_Client_Result% O	Zend_Rest_Client_Result_Exception A	Zend_Rest_Client_Exception '	Zend_Registry =	Zend_Reflection_Property ?	Zend_Reflection_Parameter 9	Zend_Reflection_Method =	Zend_Reflection_Function 5	Zend_Reflection_File ?	Zend_Reflection_Extension ?	Zend_Reflection_Exception =	Zend_Reflection_Docblock  E	Zend_Reflection_Docblock_Tag' S	Zend_Reflection_Docblock_Tag_Return& Q	Zend_Reflection_Docblock_Tag_Param 7	Zend_Reflection_Class !	Zend_Queue 9	Zend_Queue_Stomp_Frame ;	Zend_Queue_Stomp_Client&
 Q	Zend_Queue_Stomp_Client_Connection	 1	Zend_Queue_Message" I	Zend_Queue_Message_PlatformJob C	Zend_Queue_Message_Iterator 5	Zend_Queue_Exception' S	Zend_Queue_Adapter_PlatformJobQueue ;	Zend_Queue_Adapter_Null  E	Zend_Queue_Adapter_Memcacheq 7	Zend_Queue_Adapter_Db C	Zend_Queue_Adapter_Db_Queue!  G	Zend_Queue_Adapter_Db_Message =	Zend_Queue_Adapter_Array&~ Q	Zend_Queue_Adapter_AdapterAbstract} C	Zend_Queue_Adapter_Activemq| -	Zend_ProgressBar{ A	Zend_ProgressBar_Exceptionz =	Zend_ProgressBar_Adapter#y K	Zend_ProgressBar_Adapter_JsPush#x K	Zend_ProgressBar_Adapter_JsPull&w Q	Zend_ProgressBar_Adapter_Exception$v M	Zend_ProgressBar_Adapter_Consoleu 	Zend_Pdf t E	Zend_Pdf_UpdateInfoContainers -	Zend_Pdf_Trailerr ;	Zend_Pdf_Trailer_Keeperq A	Zend_Pdf_Trailer_Generator   ^  tDi5	W#tHW(



p
I
				d	2	~[5
kS6kD[2b6
e5vF~Q3	                                  !1 G	Zend_Service_Amazon_Exception'0 S	Zend_Service_Amazon_EditorialReview/ ;	Zend_Service_Amazon_Ec2*. Y	Zend_Service_Amazon_Ec2_Securitygroups$- M	Zend_Service_Amazon_Ec2_Response", I	Zend_Service_Amazon_Ec2_Region#+ K	Zend_Service_Amazon_Ec2_Keypair$* M	Zend_Service_Amazon_Ec2_Instance,) ]	Zend_Service_Amazon_Ec2_Instance_Windows-( _	Zend_Service_Amazon_Ec2_Instance_Reserved!' G	Zend_Service_Amazon_Ec2_Image%& O	Zend_Service_Amazon_Ec2_Exception%% O	Zend_Service_Amazon_Ec2_Elasticip$ C	Zend_Service_Amazon_Ec2_Ebs&# Q	Zend_Service_Amazon_Ec2_CloudWatch-" _	Zend_Service_Amazon_Ec2_Availabilityzones$! M	Zend_Service_Amazon_Ec2_Abstract&  Q	Zend_Service_Amazon_CustomerReview& Q	Zend_Service_Amazon_Authentication) W	Zend_Service_Amazon_Authentication_V2) W	Zend_Service_Amazon_Authentication_V1) W	Zend_Service_Amazon_Authentication_S30 e	Zend_Service_Amazon_Authentication_Exception# K	Zend_Service_Amazon_Accessories  E	Zend_Service_Amazon_Abstract 5	Zend_Service_Akismet 7	Zend_Service_Abstract 9	Zend_Server_Reflection& Q	Zend_Server_Reflection_ReturnValue$ M	Zend_Server_Reflection_Prototype$ M	Zend_Server_Reflection_Parameter C	Zend_Server_Reflection_Node! G	Zend_Server_Reflection_Method# K	Zend_Server_Reflection_Function, ]	Zend_Server_Reflection_Function_Abstract$ M	Zend_Server_Reflection_Exception  E	Zend_Server_Reflection_Class  E	Zend_Server_Method_Prototype  E	Zend_Server_Method_Parameter!
 G	Zend_Server_Method_Definition	 C	Zend_Server_Method_Callback 7	Zend_Server_Exception 9	Zend_Server_Definition /	Zend_Server_Cache 5	Zend_Server_Abstract +	Zend_Serializer ?	Zend_Serializer_Exception  E	Zend_Serializer_Adapter_Wddx( U	Zend_Serializer_Adapter_PythonPickle(  U	Zend_Serializer_Adapter_PhpSerialize# K	Zend_Serializer_Adapter_PhpCode ~ E	Zend_Serializer_Adapter_Json$} M	Zend_Serializer_Adapter_Igbinary | E	Zend_Serializer_Adapter_Amf3 { E	Zend_Serializer_Adapter_Amf0+z [	Zend_Serializer_Adapter_AdapterAbstracty 1	Zend_Search_Lucene/x c	Zend_Search_Lucene_TermStreamsPriorityQueue#w K	Zend_Search_Lucene_Storage_File*v Y	Zend_Search_Lucene_Storage_File_Memory.u a	Zend_Search_Lucene_Storage_File_Filesystem(t U	Zend_Search_Lucene_Storage_Directory3s k	Zend_Search_Lucene_Storage_Directory_Filesystem$r M	Zend_Search_Lucene_Search_Weight)q W	Zend_Search_Lucene_Search_Weight_Term+p [	Zend_Search_Lucene_Search_Weight_Phrase.o a	Zend_Search_Lucene_Search_Weight_MultiTerm*n Y	Zend_Search_Lucene_Search_Weight_Empty,m ]	Zend_Search_Lucene_Search_Weight_Boolean(l U	Zend_Search_Lucene_Search_Similarity0k e	Zend_Search_Lucene_Search_Similarity_Default(j U	Zend_Search_Lucene_Search_QueryToken2i i	Zend_Search_Lucene_Search_QueryParserException0h e	Zend_Search_Lucene_Search_QueryParserContext)g W	Zend_Search_Lucene_Search_QueryParser(f U	Zend_Search_Lucene_Search_QueryLexer&e Q	Zend_Search_Lucene_Search_QueryHit(d U	Zend_Search_Lucene_Search_QueryEntry-c _	Zend_Search_Lucene_Search_QueryEntry_Term1b g	Zend_Search_Lucene_Search_QueryEntry_Subquery/a c	Zend_Search_Lucene_Search_QueryEntry_Phrase#` K	Zend_Search_Lucene_Search_Query,_ ]	Zend_Search_Lucene_Search_Query_Wildcard(^ U	Zend_Search_Lucene_Search_Query_Term)] W	Zend_Search_Lucene_Search_Query_Range1\ g	Zend_Search_Lucene_Search_Query_Preprocessing6[ q	Zend_Search_Lucene_Search_Query_Preprocessing_Term8Z u	Zend_Search_Lucene_Search_Query_Preprocessing_Phrase7Y s	Zend_Search_Lucene_Search_Query_Preprocessing_Fuzzy*X Y	Zend_Search_Lucene_Search_Query_Phrase-W _	Zend_Search_Lucene_Search_Query_MultiTerm1V g	Zend_Search_Lucene_Search_Query_Insignificant)U W	Zend_Search_Lucene_Search_Query_Fuzzy)T W	Zend_Search_Lucene_Search_Query_Empty   B  yV6T'jP.z7h#


]
			c	5	i)`ZXC=31                                                                cs I	Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequestPr #	Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequestQq %	Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequestXp 3	Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequestco I	Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequestPn #	Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequestNm 	Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequestTl +	Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequestTk +	Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequestUj -	Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequest`i C	Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequestYh 5	Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequestSg )	Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequestQf %	Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequestXe 3	Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequestPd #	Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequestPc #	Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequest`b C	Zend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequestMa 	Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformationK` 	Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalanceI_ 	Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool,^ ]	Zend_Service_DeveloperGarden_LocalSearch=] 	Zend_Service_DeveloperGarden_LocalSearch_SearchParameters6\ q	Zend_Service_DeveloperGarden_LocalSearch_Exception+[ [	Zend_Service_DeveloperGarden_IpLocation5Z o	Zend_Service_DeveloperGarden_IpLocation_IpAddress*Y Y	Zend_Service_DeveloperGarden_Exception+X [	Zend_Service_DeveloperGarden_Credential/W c	Zend_Service_DeveloperGarden_ConferenceCallBV 	Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatusBU 	Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail;T {	Zend_Service_DeveloperGarden_ConferenceCall_Participant9S w	Zend_Service_DeveloperGarden_ConferenceCall_ExceptionCR 		Zend_Service_DeveloperGarden_ConferenceCall_ConferenceScheduleAQ 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetailBP 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount,O ]	Zend_Service_DeveloperGarden_Client_Soap1N g	Zend_Service_DeveloperGarden_Client_Exception6M q	Zend_Service_DeveloperGarden_Client_ClientAbstract0L e	Zend_Service_DeveloperGarden_BaseUserService@K 	Zend_Service_DeveloperGarden_BaseUserService_AccountBalanceJ 9	Zend_Service_Delicious%I O	Zend_Service_Delicious_SimplePost#H K	Zend_Service_Delicious_PostListG C	Zend_Service_Delicious_Post$F M	Zend_Service_Delicious_ExceptionE C	Zend_Service_AudioscrobblerD 3	Zend_Service_AmazonC ;	Zend_Service_Amazon_Sqs%B O	Zend_Service_Amazon_Sqs_Exception A E	Zend_Service_Amazon_SimpleDb)@ W	Zend_Service_Amazon_SimpleDb_Response%? O	Zend_Service_Amazon_SimpleDb_Page*> Y	Zend_Service_Amazon_SimpleDb_Exception*= Y	Zend_Service_Amazon_SimpleDb_Attribute&< Q	Zend_Service_Amazon_SimilarProduct; 9	Zend_Service_Amazon_S3!: G	Zend_Service_Amazon_S3_Stream$9 M	Zend_Service_Amazon_S3_Exception!8 G	Zend_Service_Amazon_ResultSet7 ?	Zend_Service_Amazon_Query 6 E	Zend_Service_Amazon_OfferSet5 ?	Zend_Service_Amazon_Offer%4 O	Zend_Service_Amazon_ListmaniaList3 =	Zend_Service_Amazon_Item2 ?	Zend_Service_Amazon_Image   0  QOBj'Z


-		o	edPBZF=                                           R# '	Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponseT" +	Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseTypeP! #	Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseZ  7	Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseTypeV /	Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseZ 7	Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseTypeV /	Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse[ 9	Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseTypeW 1	Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponsef O	Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseTypeb G	Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse_ A	Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType[ 9	Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseY 5	Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseTypeU -	Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseW 1	Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseTypeS )	Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse^ ?	Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseTypeZ 7	Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseV /	Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseTypeR '	Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseP #	Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstractR '	Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponseI 	Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseTypef O	Zend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseTypeb
 G	Zend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseV	 /	Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponseT +	Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponseR '	Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse2 i	Zend_Service_DeveloperGarden_Response_BaseTypeI 	Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstractB 	Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCallF 	Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced< }	Zend_Service_DeveloperGarden_Request_VoiceButler_NewCall@ 	Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatus@  	Zend_Service_DeveloperGarden_Request_SmsValidation_ValidateM 	Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeywordB~ 	Zend_Service_DeveloperGarden_Request_SmsValidation_InvalidateK} 	Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbersA| 	Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract8{ u	Zend_Service_DeveloperGarden_Request_SendSms_SendSMS=z 	Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS8y u	Zend_Service_DeveloperGarden_Request_RequestAbstractHx 	Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequestDw 	Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest2v i	Zend_Service_DeveloperGarden_Request_ExceptionQu %	Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequestXt 3	Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequest   <  ;(u?f@


g
		s	.FTr HgEoDvMo>                                           ,_ ]	Zend_Service_Ebay_Finding_Response_Items1^ g	Zend_Service_Ebay_Finding_Response_Histograms/] c	Zend_Service_Ebay_Finding_Response_Abstract.\ a	Zend_Service_Ebay_Finding_PaginationOutput)[ W	Zend_Service_Ebay_Finding_ListingInfo'Z S	Zend_Service_Ebay_Finding_Exception+Y [	Zend_Service_Ebay_Finding_Error_Message(X U	Zend_Service_Ebay_Finding_Error_Data,W ]	Zend_Service_Ebay_Finding_Error_Data_Set&V Q	Zend_Service_Ebay_Finding_Category0U e	Zend_Service_Ebay_Finding_Category_Histogram4T m	Zend_Service_Ebay_Finding_Category_Histogram_Set:S y	Zend_Service_Ebay_Finding_Category_Histogram_Container$R M	Zend_Service_Ebay_Finding_Aspect(Q U	Zend_Service_Ebay_Finding_Aspect_Set4P m	Zend_Service_Ebay_Finding_Aspect_Histogram_Value8O u	Zend_Service_Ebay_Finding_Aspect_Histogram_Value_Set8N u	Zend_Service_Ebay_Finding_Aspect_Histogram_Container&M Q	Zend_Service_Ebay_Finding_AbstractL C	Zend_Service_Ebay_ExceptionK A	Zend_Service_Ebay_Abstract*J Y	Zend_Service_DeveloperGarden_VoiceCall.I a	Zend_Service_DeveloperGarden_SmsValidation(H U	Zend_Service_DeveloperGarden_SendSms4G m	Zend_Service_DeveloperGarden_SecurityTokenServer:F y	Zend_Service_DeveloperGarden_SecurityTokenServer_CacheJE 	Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstractKD 	Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponseOC !	Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponseFB 	Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponseIA 	Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponseJ@ 	Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2ResponseK? 	Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponseH> 	Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumberV= /	Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponseI< 	Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponseT; +	Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponseB: 	Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponseB9 	Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstractG8 	Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponseT7 +	Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponseP6 #	Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponseH5 	Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception:4 y	Zend_Service_DeveloperGarden_Response_ResponseAbstractN3 	Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseTypeJ2 	Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponse@1 	Zend_Service_DeveloperGarden_Response_IpLocation_RegionTypeJ0 	Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseTypeF/ 	Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseK. 	Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationTypeH- 	Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType=, 	Zend_Service_DeveloperGarden_Response_IpLocation_CityType3+ k	Zend_Service_DeveloperGarden_Response_ExceptionS* )	Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponseZ) 7	Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponsee( M	Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponseR' '	Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponseS& )	Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponseZ% 7	Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponsee$ M	Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponse   ]  rDfF)	^B_8U2


}
M
				g	A	gDa3S0}S5Z'Z/Y5X!                          C< 		Zend_Service_WindowsAzure_CommandLine_GetAsynchronousOperation4; m	Zend_Service_WindowsAzure_CommandLine_Deployment5: o	Zend_Service_WindowsAzure_CommandLine_Certificate9 5	Zend_Service_Twitter8 C	Zend_Service_Twitter_Search"7 I	Zend_Service_Twitter_Exception6 ;	Zend_Service_Technorati"5 I	Zend_Service_Technorati_Weblog!4 G	Zend_Service_Technorati_Utils)3 W	Zend_Service_Technorati_TagsResultSet&2 Q	Zend_Service_Technorati_TagsResult(1 U	Zend_Service_Technorati_TagResultSet%0 O	Zend_Service_Technorati_TagResult+/ [	Zend_Service_Technorati_SearchResultSet(. U	Zend_Service_Technorati_SearchResult%- O	Zend_Service_Technorati_ResultSet", I	Zend_Service_Technorati_Result)+ W	Zend_Service_Technorati_KeyInfoResult)* W	Zend_Service_Technorati_GetInfoResult%) O	Zend_Service_Technorati_Exception0( e	Zend_Service_Technorati_DailyCountsResultSet-' _	Zend_Service_Technorati_DailyCountsResult+& [	Zend_Service_Technorati_CosmosResultSet(% U	Zend_Service_Technorati_CosmosResult*$ Y	Zend_Service_Technorati_BlogInfoResult"# I	Zend_Service_Technorati_Author" ;	Zend_Service_StrikeIron'! S	Zend_Service_StrikeIron_ZipCodeInfo1  g	Zend_Service_StrikeIron_USAddressVerification, ]	Zend_Service_StrikeIron_SalesUseTaxBasic% O	Zend_Service_StrikeIron_Exception% O	Zend_Service_StrikeIron_Decorator  E	Zend_Service_StrikeIron_Base: y	Zend_Service_SqlAzure_Management_ServiceEntityAbstract3 k	Zend_Service_SqlAzure_Management_ServerInstance9 w	Zend_Service_SqlAzure_Management_FirewallRuleInstance. a	Zend_Service_SqlAzure_Management_Exception+ [	Zend_Service_SqlAzure_Management_Client# K	Zend_Service_SqlAzure_Exception ;	Zend_Service_SlideShare% O	Zend_Service_SlideShare_SlideShow% O	Zend_Service_SlideShare_Exception$ M	Zend_Service_ShortUrl_TinyUrlCom% O	Zend_Service_ShortUrl_MetamarkNet  E	Zend_Service_ShortUrl_JdemCz A	Zend_Service_ShortUrl_IsGd# K	Zend_Service_ShortUrl_Exception C	Zend_Service_ShortUrl_BitLy+ [	Zend_Service_ShortUrl_AbstractShortener 9	Zend_Service_ReCaptcha#
 K	Zend_Service_ReCaptcha_Response#	 K	Zend_Service_ReCaptcha_MailHide- _	Zend_Service_ReCaptcha_MailHide_Exception$ M	Zend_Service_ReCaptcha_Exception" I	Zend_Service_Rackspace_Servers4 m	Zend_Service_Rackspace_Servers_SharedIpGroupList0 e	Zend_Service_Rackspace_Servers_SharedIpGroup- _	Zend_Service_Rackspace_Servers_ServerList) W	Zend_Service_Rackspace_Servers_Server, ]	Zend_Service_Rackspace_Servers_ImageList(  U	Zend_Service_Rackspace_Servers_Image, ]	Zend_Service_Rackspace_Servers_Exception ~ E	Zend_Service_Rackspace_Files+} [	Zend_Service_Rackspace_Files_ObjectList'| S	Zend_Service_Rackspace_Files_Object*{ Y	Zend_Service_Rackspace_Files_Exception.z a	Zend_Service_Rackspace_Files_ContainerList*y Y	Zend_Service_Rackspace_Files_Container$x M	Zend_Service_Rackspace_Exception#w K	Zend_Service_Rackspace_Abstractv 7	Zend_Service_Nirvanix"u I	Zend_Service_Nirvanix_Response(t U	Zend_Service_Nirvanix_Namespace_Imfs(s U	Zend_Service_Nirvanix_Namespace_Base#r K	Zend_Service_Nirvanix_Exceptionq 7	Zend_Service_LiveDocx#p K	Zend_Service_LiveDocx_MailMerge#o K	Zend_Service_LiveDocx_Exceptionn 3	Zend_Service_Flickr!m G	Zend_Service_Flickr_ResultSetl A	Zend_Service_Flickr_Resultk ?	Zend_Service_Flickr_Imagej 9	Zend_Service_Exceptioni ?	Zend_Service_Ebay_Finding(h U	Zend_Service_Ebay_Finding_Storefront*g Y	Zend_Service_Ebay_Finding_ShippingInfo*f Y	Zend_Service_Ebay_Finding_Set_Abstract+e [	Zend_Service_Ebay_Finding_SellingStatus(d U	Zend_Service_Ebay_Finding_SellerInfo+c [	Zend_Service_Ebay_Finding_Search_Result)b W	Zend_Service_Ebay_Finding_Search_Item-a _	Zend_Service_Ebay_Finding_Search_Item_Set/` c	Zend_Service_Ebay_Finding_Response_Keywords   E  sfU!w4~'`{+



@
			a	"};q-^(R$PoA_1fG"                    * Y	Zend_Service_Yahoo_InlinkDataResultSet'  S	Zend_Service_Yahoo_InlinkDataResult% O	Zend_Service_Yahoo_ImageResultSet"~ I	Zend_Service_Yahoo_ImageResult} =	Zend_Service_Yahoo_Image%| O	Zend_Service_WindowsAzure_Storage3{ k	Zend_Service_WindowsAzure_Storage_TableInstance6z q	Zend_Service_WindowsAzure_Storage_TableEntityQuery1y g	Zend_Service_WindowsAzure_Storage_TableEntity+x [	Zend_Service_WindowsAzure_Storage_Table;w {	Zend_Service_WindowsAzure_Storage_StorageEntityAbstract6v q	Zend_Service_WindowsAzure_Storage_SignedIdentifier2u i	Zend_Service_WindowsAzure_Storage_QueueMessage3t k	Zend_Service_WindowsAzure_Storage_QueueInstance+s [	Zend_Service_WindowsAzure_Storage_Queue8r u	Zend_Service_WindowsAzure_Storage_PageRegionInstance3q k	Zend_Service_WindowsAzure_Storage_LeaseInstance8p u	Zend_Service_WindowsAzure_Storage_DynamicTableEntity2o i	Zend_Service_WindowsAzure_Storage_BlobInstance3n k	Zend_Service_WindowsAzure_Storage_BlobContainer*m Y	Zend_Service_WindowsAzure_Storage_Blob1l g	Zend_Service_WindowsAzure_Storage_Blob_Stream:k y	Zend_Service_WindowsAzure_Storage_BatchStorageAbstract+j [	Zend_Service_WindowsAzure_Storage_Batch,i ]	Zend_Service_WindowsAzure_SessionHandler=h 	Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract0g e	Zend_Service_WindowsAzure_RetryPolicy_RetryN1f g	Zend_Service_WindowsAzure_RetryPolicy_NoRetry3e k	Zend_Service_WindowsAzure_RetryPolicy_ExceptionGd 	Zend_Service_WindowsAzure_Management_SubscriptionOperationInstance@c 	Zend_Service_WindowsAzure_Management_StorageServiceInstance?b 	Zend_Service_WindowsAzure_Management_ServiceEntityAbstractAa 	Zend_Service_WindowsAzure_Management_OperationStatusInstanceA` 	Zend_Service_WindowsAzure_Management_OperatingSystemInstanceG_ 	Zend_Service_WindowsAzure_Management_OperatingSystemFamilyInstance9^ w	Zend_Service_WindowsAzure_Management_LocationInstance?] 	Zend_Service_WindowsAzure_Management_HostedServiceInstance2\ i	Zend_Service_WindowsAzure_Management_Exception;[ {	Zend_Service_WindowsAzure_Management_DeploymentInstance/Z c	Zend_Service_WindowsAzure_Management_Client<Y }	Zend_Service_WindowsAzure_Management_CertificateInstance?X 	Zend_Service_WindowsAzure_Management_AffinityGroupInstance5W o	Zend_Service_WindowsAzure_Log_Writer_WindowsAzure8V u	Zend_Service_WindowsAzure_Log_Formatter_WindowsAzure'U S	Zend_Service_WindowsAzure_ExceptionIT 	Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscription1S g	Zend_Service_WindowsAzure_Diagnostics_Manager2R i	Zend_Service_WindowsAzure_Diagnostics_LogLevel3Q k	Zend_Service_WindowsAzure_Diagnostics_ExceptionMP 	Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscriptionGO 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLogKN 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCountersJM 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstract;L {	Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogs@K 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstanceCJ 		Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectoriesTI +	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogsCH 		Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSources7G s	Zend_Service_WindowsAzure_Credentials_SharedKeyLite3F k	Zend_Service_WindowsAzure_Credentials_SharedKey@E 	Zend_Service_WindowsAzure_Credentials_SharedAccessSignature3D k	Zend_Service_WindowsAzure_Credentials_Exception=C 	Zend_Service_WindowsAzure_Credentials_CredentialsAbstract1B g	Zend_Service_WindowsAzure_CommandLine_Storage1A g	Zend_Service_WindowsAzure_CommandLine_Service@ !	Scaffolder
? 	SampleV> /	Zend_Service_WindowsAzure_CommandLine_PackageScaffolder_PackageScaffolderAbstract1= g	Zend_Service_WindowsAzure_CommandLine_Package   g  h@b<#}W,x[D#R 




[
;
$
				c	@	!	e8`4	yT(w]<%fP2S)cJ!                                 (h U	Zend_Tool_Framework_Client_Exception&g Q	Zend_Tool_Framework_Client_ConsoleCf 		Zend_Tool_Framework_Client_Console_ResponseDecorator_IndentionCe 		Zend_Tool_Framework_Client_Console_ResponseDecorator_ColorizerBd 	Zend_Tool_Framework_Client_Console_ResponseDecorator_BlockizeEc 	Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter/b c	Zend_Tool_Framework_Client_Console_Manifest1a g	Zend_Tool_Framework_Client_Console_HelpSystem5` o	Zend_Tool_Framework_Client_Console_ArgumentParser%_ O	Zend_Tool_Framework_Client_Config'^ S	Zend_Tool_Framework_Client_Abstract)] W	Zend_Tool_Framework_Action_Repository(\ U	Zend_Tool_Framework_Action_Exception#[ K	Zend_Tool_Framework_Action_BaseZ '	Zend_TimeSyncY 1	Zend_TimeSync_SntpX 9	Zend_TimeSync_ProtocolW /	Zend_TimeSync_NtpV ;	Zend_TimeSync_ExceptionU +	Zend_Text_TableT 3	Zend_Text_Table_RowS ?	Zend_Text_Table_Exception%R O	Zend_Text_Table_Decorator_Unicode#Q K	Zend_Text_Table_Decorator_AsciiP 9	Zend_Text_Table_ColumnO 3	Zend_Text_MultiByteN -	Zend_Text_FigletM A	Zend_Text_Figlet_ExceptionL 3	Zend_Text_Exception%K O	Zend_Test_PHPUnit_Db_SimpleTester+J [	Zend_Test_PHPUnit_Db_Operation_Truncate)I W	Zend_Test_PHPUnit_Db_Operation_Insert,H ]	Zend_Test_PHPUnit_Db_Operation_DeleteAll)G W	Zend_Test_PHPUnit_Db_Metadata_Generic"F I	Zend_Test_PHPUnit_Db_Exception+E [	Zend_Test_PHPUnit_Db_DataSet_QueryTable-D _	Zend_Test_PHPUnit_Db_DataSet_QueryDataSet/C c	Zend_Test_PHPUnit_Db_DataSet_DbTableDataSet(B U	Zend_Test_PHPUnit_Db_DataSet_DbTable)A W	Zend_Test_PHPUnit_Db_DataSet_DbRowset#@ K	Zend_Test_PHPUnit_Db_Connection&? Q	Zend_Test_PHPUnit_DatabaseTestCase(> U	Zend_Test_PHPUnit_ControllerTestCase/= c	Zend_Test_PHPUnit_Constraint_ResponseHeader)< W	Zend_Test_PHPUnit_Constraint_Redirect*; Y	Zend_Test_PHPUnit_Constraint_Exception): W	Zend_Test_PHPUnit_Constraint_DomQuery9 7	Zend_Test_DbStatement8 3	Zend_Test_DbAdapter7 /	Zend_Tag_ItemList6 '	Zend_Tag_Item5 1	Zend_Tag_Exception4 )	Zend_Tag_Cloud3 =	Zend_Tag_Cloud_Exception 2 E	Zend_Tag_Cloud_Decorator_Tag$1 M	Zend_Tag_Cloud_Decorator_HtmlTag&0 Q	Zend_Tag_Cloud_Decorator_HtmlCloud&/ Q	Zend_Tag_Cloud_Decorator_Exception". I	Zend_Tag_Cloud_Decorator_Cloud - E	Zend_Stdlib_SplPriorityQueue, -	SplPriorityQueue+ ?	Zend_Stdlib_PriorityQueue2* i	Zend_Stdlib_Exception_InvalidCallbackException) C	Zend_Stdlib_CallbackHandler( )	Zend_Soap_Wsdl.' a	Zend_Soap_Wsdl_Strategy_DefaultComplexType%& O	Zend_Soap_Wsdl_Strategy_Composite/% c	Zend_Soap_Wsdl_Strategy_ArrayOfTypeSequence.$ a	Zend_Soap_Wsdl_Strategy_ArrayOfTypeComplex## K	Zend_Soap_Wsdl_Strategy_AnyType$" M	Zend_Soap_Wsdl_Strategy_Abstract! =	Zend_Soap_Wsdl_Exception  -	Zend_Soap_Server 9	Zend_Soap_Server_Proxy A	Zend_Soap_Server_Exception -	Zend_Soap_Client 9	Zend_Soap_Client_Local A	Zend_Soap_Client_Exception ;	Zend_Soap_Client_DotNet ;	Zend_Soap_Client_Common 9	Zend_Soap_AutoDiscover$ M	Zend_Soap_AutoDiscover_Exception %	Zend_Session( U	Zend_Session_Validator_HttpUserAgent# K	Zend_Session_Validator_Abstract& Q	Zend_Session_SaveHandler_Exception$ M	Zend_Session_SaveHandler_DbTable 9	Zend_Session_Namespace 9	Zend_Session_Exception 7	Zend_Session_Abstract 1	Zend_Service_Yahoo# K	Zend_Service_Yahoo_WebResultSet  E	Zend_Service_Yahoo_WebResult% O	Zend_Service_Yahoo_VideoResultSet"
 I	Zend_Service_Yahoo_VideoResult 	 E	Zend_Service_Yahoo_ResultSet ?	Zend_Service_Yahoo_Result( U	Zend_Service_Yahoo_PageDataResultSet% O	Zend_Service_Yahoo_PageDataResult$ M	Zend_Service_Yahoo_NewsResultSet! G	Zend_Service_Yahoo_NewsResult% O	Zend_Service_Yahoo_LocalResultSet" I	Zend_Service_Yahoo_LocalResult   N  Q'[2k8yK"vH



m
C
			{	>		|Gz8i1 l:n={AtGvC
                                                    06 e	Zend_Tool_Project_Context_Zf_PublicIndexFile65 q	Zend_Tool_Project_Context_Zf_PublicImagesDirectory04 e	Zend_Tool_Project_Context_Zf_PublicDirectory43 m	Zend_Tool_Project_Context_Zf_ProjectProviderFile12 g	Zend_Tool_Project_Context_Zf_ModulesDirectory01 e	Zend_Tool_Project_Context_Zf_ModuleDirectory00 e	Zend_Tool_Project_Context_Zf_ModelsDirectory*/ Y	Zend_Tool_Project_Context_Zf_ModelFile.. a	Zend_Tool_Project_Context_Zf_LogsDirectory1- g	Zend_Tool_Project_Context_Zf_LocalesDirectory1, g	Zend_Tool_Project_Context_Zf_LibraryDirectory1+ g	Zend_Tool_Project_Context_Zf_LayoutsDirectory7* s	Zend_Tool_Project_Context_Zf_LayoutScriptsDirectory1) g	Zend_Tool_Project_Context_Zf_LayoutScriptFile-( _	Zend_Tool_Project_Context_Zf_HtaccessFile/' c	Zend_Tool_Project_Context_Zf_FormsDirectory)& W	Zend_Tool_Project_Context_Zf_FormFile.% a	Zend_Tool_Project_Context_Zf_DocsDirectory,$ ]	Zend_Tool_Project_Context_Zf_DbTableFile1# g	Zend_Tool_Project_Context_Zf_DbTableDirectory." a	Zend_Tool_Project_Context_Zf_DataDirectory5! o	Zend_Tool_Project_Context_Zf_ControllersDirectory/  c	Zend_Tool_Project_Context_Zf_ControllerFile1 g	Zend_Tool_Project_Context_Zf_ConfigsDirectory+ [	Zend_Tool_Project_Context_Zf_ConfigFile/ c	Zend_Tool_Project_Context_Zf_CacheDirectory. a	Zend_Tool_Project_Context_Zf_BootstrapFile5 o	Zend_Tool_Project_Context_Zf_ApplicationDirectory6 q	Zend_Tool_Project_Context_Zf_ApplicationConfigFile. a	Zend_Tool_Project_Context_Zf_ApisDirectory- _	Zend_Tool_Project_Context_Zf_ActionMethod2 i	Zend_Tool_Project_Context_Zf_AbstractClassFile? 	Zend_Tool_Project_Context_System_ProjectProvidersDirectory7 s	Zend_Tool_Project_Context_System_ProjectProfileFile5 o	Zend_Tool_Project_Context_System_ProjectDirectory( U	Zend_Tool_Project_Context_Repository- _	Zend_Tool_Project_Context_Filesystem_File2 i	Zend_Tool_Project_Context_Filesystem_Directory1 g	Zend_Tool_Project_Context_Filesystem_Abstract' S	Zend_Tool_Project_Context_Exception, ]	Zend_Tool_Project_Context_Content_Engine2 i	Zend_Tool_Project_Context_Content_Engine_Phtml: y	Zend_Tool_Project_Context_Content_Engine_CodeGenerator/ c	Zend_Tool_Framework_System_Provider_Version/
 c	Zend_Tool_Framework_System_Provider_Phpinfo0	 e	Zend_Tool_Framework_System_Provider_Manifest. a	Zend_Tool_Framework_System_Provider_Config' S	Zend_Tool_Framework_System_Manifest, ]	Zend_Tool_Framework_System_Action_Delete, ]	Zend_Tool_Framework_System_Action_Create  E	Zend_Tool_Framework_Registry* Y	Zend_Tool_Framework_Registry_Exception* Y	Zend_Tool_Framework_Provider_Signature+ [	Zend_Tool_Framework_Provider_Repository*  Y	Zend_Tool_Framework_Provider_Exception) W	Zend_Tool_Framework_Provider_Abstract%~ O	Zend_Tool_Framework_Metadata_Tool(} U	Zend_Tool_Framework_Metadata_Dynamic&| Q	Zend_Tool_Framework_Metadata_Basic+{ [	Zend_Tool_Framework_Manifest_Repository1z g	Zend_Tool_Framework_Manifest_ProviderMetadata)y W	Zend_Tool_Framework_Manifest_Metadata*x Y	Zend_Tool_Framework_Manifest_Exception/w c	Zend_Tool_Framework_Manifest_ActionMetadata0v e	Zend_Tool_Framework_Loader_IncludePathLoaderIu 	Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator*t Y	Zend_Tool_Framework_Loader_BasicLoader's S	Zend_Tool_Framework_Loader_Abstract!r G	Zend_Tool_Framework_Exception&q Q	Zend_Tool_Framework_Client_Storage0p e	Zend_Tool_Framework_Client_Storage_Directory'o S	Zend_Tool_Framework_Client_ResponseCn 		Zend_Tool_Framework_Client_Response_ContentDecorator_Separator&m Q	Zend_Tool_Framework_Client_Request'l S	Zend_Tool_Framework_Client_Manifest8k u	Zend_Tool_Framework_Client_Interactive_InputResponse7j s	Zend_Tool_Framework_Client_Interactive_InputRequest7i s	Zend_Tool_Framework_Client_Interactive_InputHandler   Y  No/j'o<S


l
:
			p	F	n3
k?rH!vP*_>r^O2^8gF%        E	Zend_Validate_Barcode_Gtin13  E	Zend_Validate_Barcode_Gtin12 A	Zend_Validate_Barcode_Ean8 A	Zend_Validate_Barcode_Ean5 A	Zend_Validate_Barcode_Ean2
 C	Zend_Validate_Barcode_Ean18	 C	Zend_Validate_Barcode_Ean14 C	Zend_Validate_Barcode_Ean13 C	Zend_Validate_Barcode_Ean12# K	Zend_Validate_Barcode_Code93ext  E	Zend_Validate_Barcode_Code93# K	Zend_Validate_Barcode_Code39ext  E	Zend_Validate_Barcode_Code39+ [	Zend_Validate_Barcode_Code25interleaved  E	Zend_Validate_Barcode_Code25)  W	Zend_Validate_Barcode_AdapterAbstract 3	Zend_Validate_Alpha~ 3	Zend_Validate_Alnum} 9	Zend_Validate_Abstract| 	Zend_Uri{ '	Zend_Uri_Httpz 1	Zend_Uri_Exceptiony )	Zend_Translatex 7	Zend_Translate_Pluralw =	Zend_Translate_Exceptionv 9	Zend_Translate_Adapter u E	Zend_Translate_Adapter_XmlTm t E	Zend_Translate_Adapter_Xliffs A	Zend_Translate_Adapter_Tmxr A	Zend_Translate_Adapter_Tbxq ?	Zend_Translate_Adapter_Qtp A	Zend_Translate_Adapter_Ini"o I	Zend_Translate_Adapter_Gettextn A	Zend_Translate_Adapter_Csv m E	Zend_Translate_Adapter_Array#l K	Zend_Tool_Project_Provider_View#k K	Zend_Tool_Project_Provider_Test.j a	Zend_Tool_Project_Provider_ProjectProvider&i Q	Zend_Tool_Project_Provider_Project&h Q	Zend_Tool_Project_Provider_Profile%g O	Zend_Tool_Project_Provider_Module$f M	Zend_Tool_Project_Provider_Model'e S	Zend_Tool_Project_Provider_Manifest%d O	Zend_Tool_Project_Provider_Layout#c K	Zend_Tool_Project_Provider_Form(b U	Zend_Tool_Project_Provider_Exception&a Q	Zend_Tool_Project_Provider_DbTable(` U	Zend_Tool_Project_Provider_DbAdapter)_ W	Zend_Tool_Project_Provider_Controller*^ Y	Zend_Tool_Project_Provider_Application%] O	Zend_Tool_Project_Provider_Action'\ S	Zend_Tool_Project_Provider_Abstract[ ?	Zend_Tool_Project_Profile&Z Q	Zend_Tool_Project_Profile_Resource8Y u	Zend_Tool_Project_Profile_Resource_SearchConstraints0X e	Zend_Tool_Project_Profile_Resource_Container<W }	Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter4V m	Zend_Tool_Project_Profile_Iterator_ContextFilter,U ]	Zend_Tool_Project_Profile_FileParser_Xml'T S	Zend_Tool_Project_Profile_ExceptionS C	Zend_Tool_Project_Exception;R {	Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory/Q c	Zend_Tool_Project_Context_Zf_ViewsDirectory5P o	Zend_Tool_Project_Context_Zf_ViewScriptsDirectory/O c	Zend_Tool_Project_Context_Zf_ViewScriptFile5N o	Zend_Tool_Project_Context_Zf_ViewHelpersDirectory5M o	Zend_Tool_Project_Context_Zf_ViewFiltersDirectory@L 	Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory1K g	Zend_Tool_Project_Context_Zf_UploadsDirectory/J c	Zend_Tool_Project_Context_Zf_TestsDirectory6I q	Zend_Tool_Project_Context_Zf_TestPHPUnitConfigFile9H w	Zend_Tool_Project_Context_Zf_TestPHPUnitBootstrapFile?G 	Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory0F e	Zend_Tool_Project_Context_Zf_TestLibraryFile5E o	Zend_Tool_Project_Context_Zf_TestLibraryDirectory9D w	Zend_Tool_Project_Context_Zf_TestLibraryBootstrapFileAC 	Zend_Tool_Project_Context_Zf_TestApplicationModulesDirectory@B 	Zend_Tool_Project_Context_Zf_TestApplicationModuleDirectory9A w	Zend_Tool_Project_Context_Zf_TestApplicationDirectory?@ 	Zend_Tool_Project_Context_Zf_TestApplicationControllerFileD? 	Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory=> 	Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile<= }	Zend_Tool_Project_Context_Zf_TestApplicationActionMethod3< k	Zend_Tool_Project_Context_Zf_TemporaryDirectory2; i	Zend_Tool_Project_Context_Zf_SessionsDirectory2: i	Zend_Tool_Project_Context_Zf_ServicesDirectory79 s	Zend_Tool_Project_Context_Zf_SearchIndexesDirectory;8 {	Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory77 s	Zend_Tool_Project_Context_Zf_PublicScriptsDirectory   u jH# tS7fB'W7iL*




n
N
6

 					~	b	E	(	a@, iL)
eC#vR1hH(`>m<xO0                             E	Zend_View_Helper_PartialLoop =	Zend_View_Helper_Partial& Q	Zend_View_Helper_Partial_Exception& Q	Zend_View_Helper_PaginationControl  C	Zend_View_Helper_Navigation' S	Zend_View_Helper_Navigation_Sitemap$~ M	Zend_View_Helper_Navigation_Menu%} O	Zend_View_Helper_Navigation_Links.| a	Zend_View_Helper_Navigation_HelperAbstract+{ [	Zend_View_Helper_Navigation_Breadcrumbsz ;	Zend_View_Helper_Layouty 7	Zend_View_Helper_Json!x G	Zend_View_Helper_InlineScript"w I	Zend_View_Helper_HtmlQuicktimev ?	Zend_View_Helper_HtmlPageu C	Zend_View_Helper_HtmlObjectt ?	Zend_View_Helper_HtmlLists A	Zend_View_Helper_HtmlFlash r E	Zend_View_Helper_HtmlElementq A	Zend_View_Helper_HeadTitlep A	Zend_View_Helper_HeadStyleo C	Zend_View_Helper_HeadScriptn ?	Zend_View_Helper_HeadMetam ?	Zend_View_Helper_HeadLinkl ?	Zend_View_Helper_Gravatar!k G	Zend_View_Helper_FormTextareaj ?	Zend_View_Helper_FormTexti C	Zend_View_Helper_FormSubmith C	Zend_View_Helper_FormSelectg A	Zend_View_Helper_FormResetf A	Zend_View_Helper_FormRadio!e G	Zend_View_Helper_FormPasswordd ?	Zend_View_Helper_FormNote&c Q	Zend_View_Helper_FormMultiCheckboxb A	Zend_View_Helper_FormLabela A	Zend_View_Helper_FormImage` C	Zend_View_Helper_FormHidden_ ?	Zend_View_Helper_FormFile^ C	Zend_View_Helper_FormErrors ] E	Zend_View_Helper_FormElement!\ G	Zend_View_Helper_FormCheckbox[ C	Zend_View_Helper_FormButtonZ 7	Zend_View_Helper_FormY ?	Zend_View_Helper_FieldsetX =	Zend_View_Helper_Doctype W E	Zend_View_Helper_DeclareVarsV 9	Zend_View_Helper_CycleU ?	Zend_View_Helper_CurrencyT =	Zend_View_Helper_BaseUrlS ;	Zend_View_Helper_ActionR ?	Zend_View_Helper_AbstractQ 3	Zend_View_ExceptionP 1	Zend_View_AbstractO %	Zend_VersionN '	Zend_ValidateM A	Zend_Validate_StringLength"L I	Zend_Validate_Sitemap_PriorityK ?	Zend_Validate_Sitemap_Loc!J G	Zend_Validate_Sitemap_Lastmod$I M	Zend_Validate_Sitemap_ChangefreqH 3	Zend_Validate_RegexG 9	Zend_Validate_PostCodeF 9	Zend_Validate_NotEmptyE 9	Zend_Validate_LessThanD 7	Zend_Validate_Ldap_DnC 1	Zend_Validate_IsbnB -	Zend_Validate_IpA /	Zend_Validate_Int@ 7	Zend_Validate_InArray? ;	Zend_Validate_Identical> 1	Zend_Validate_Iban= 9	Zend_Validate_Hostname< /	Zend_Validate_Hex; ?	Zend_Validate_GreaterThan: 3	Zend_Validate_Float 9 E	Zend_Validate_File_WordCount8 ?	Zend_Validate_File_Upload7 ;	Zend_Validate_File_Size6 ;	Zend_Validate_File_Sha1 5 E	Zend_Validate_File_NotExists4 C	Zend_Validate_File_MimeType3 9	Zend_Validate_File_Md52 A	Zend_Validate_File_IsImage#1 K	Zend_Validate_File_IsCompressed 0 E	Zend_Validate_File_ImageSize/ ;	Zend_Validate_File_Hash . E	Zend_Validate_File_FilesSize - E	Zend_Validate_File_Extension, ?	Zend_Validate_File_Exists&+ Q	Zend_Validate_File_ExcludeMimeType'* S	Zend_Validate_File_ExcludeExtension) =	Zend_Validate_File_Crc32( =	Zend_Validate_File_Count' ;	Zend_Validate_Exception& A	Zend_Validate_EmailAddress% 5	Zend_Validate_Digits!$ G	Zend_Validate_Db_RecordExists## K	Zend_Validate_Db_NoRecordExists" ?	Zend_Validate_Db_Abstract! 1	Zend_Validate_Date  =	Zend_Validate_CreditCard 3	Zend_Validate_Ccnum 9	Zend_Validate_Callback 7	Zend_Validate_Between 7	Zend_Validate_Barcode A	Zend_Validate_Barcode_Upce A	Zend_Validate_Barcode_Upca A	Zend_Validate_Barcode_Sscc# K	Zend_Validate_Barcode_Royalmail! G	Zend_Validate_Barcode_Postnet  E	Zend_Validate_Barcode_Planet" I	Zend_Validate_Barcode_Leitcode C	Zend_Validate_Barcode_Itf14 A	Zend_Validate_Barcode_Issn) W	Zend_Validate_Barcode_IntelligentMail# K	Zend_Validate_Barcode_Identcode  E	Zend_Validate_Barcode_Gtin14   l [.~]>tI\/h:





a
>
						f	C	"	gH0wU2jD!_> yW7^1X$U1                                           #p IZend_Application_Resource_Dojo!o EZend_Application_Resource_Db+n YZend_Application_Resource_Cachemanager&m OZend_Application_Module_Bootstrap'l QZend_Application_Module_Autoloaderk AZend_Application_Exception)j UZend_Application_Bootstrap_Exception1i eZend_Application_Bootstrap_BootstrapAbstract)h UZend_Application_Bootstrap_Bootstrapg ?Zend_Amf_Value_TraitsInfo-f ]Zend_Amf_Value_Messaging_RemotingMessage*e WZend_Amf_Value_Messaging_ErrorMessage,d [Zend_Amf_Value_Messaging_CommandMessage*c WZend_Amf_Value_Messaging_AsyncMessage-b ]Zend_Amf_Value_Messaging_ArrayCollection0a cZend_Amf_Value_Messaging_AcknowledgeMessage-` ]Zend_Amf_Value_Messaging_AbstractMessage!_ EZend_Amf_Value_MessageHeader^ AZend_Amf_Value_MessageBody] =Zend_Amf_Value_ByteArray\ AZend_Amf_Util_BinaryStream[ +Zend_Amf_ServerZ ?Zend_Amf_Server_ExceptionY /Zend_Amf_ResponseX 9Zend_Amf_Response_HttpW -Zend_Amf_RequestV 7Zend_Amf_Request_HttpU ?Zend_Amf_Parse_TypeLoaderT ?Zend_Amf_Parse_Serializer#S IZend_Amf_Parse_Resource_Stream(R SZend_Amf_Parse_Resource_MysqlResult)Q UZend_Amf_Parse_Resource_MysqliResult P CZend_Amf_Parse_OutputStreamO AZend_Amf_Parse_InputStream N CZend_Amf_Parse_Deserializer#M IZend_Amf_Parse_Amf3_Serializer%L MZend_Amf_Parse_Amf3_Deserializer#K IZend_Amf_Parse_Amf0_Serializer%J MZend_Amf_Parse_Amf0_DeserializerI 1Zend_Amf_ExceptionH 1Zend_Amf_ConstantsG 9Zend_Amf_Auth_Abstract F CZend_Amf_Adobe_IntrospectorE AZend_Amf_Adobe_DbInspectorD 3Zend_Amf_Adobe_AuthC Zend_AclB 'Zend_Acl_RoleA 9Zend_Acl_Role_Registry%@ MZend_Acl_Role_Registry_Exception? /Zend_Acl_Resource> 1Zend_Acl_Exception= /	Zend_XmlRpc_Value< =	Zend_XmlRpc_Value_Struct; =	Zend_XmlRpc_Value_String: =	Zend_XmlRpc_Value_Scalar9 7	Zend_XmlRpc_Value_Nil8 ?	Zend_XmlRpc_Value_Integer7 C	Zend_XmlRpc_Value_Exception6 =	Zend_XmlRpc_Value_Double5 A	Zend_XmlRpc_Value_DateTime 4 E	Zend_XmlRpc_Value_Collection3 ?	Zend_XmlRpc_Value_Boolean 2 E	Zend_XmlRpc_Value_BigInteger1 =	Zend_XmlRpc_Value_Base640 ;	Zend_XmlRpc_Value_Array/ 1	Zend_XmlRpc_Server. ?	Zend_XmlRpc_Server_System- =	Zend_XmlRpc_Server_Fault , E	Zend_XmlRpc_Server_Exception+ =	Zend_XmlRpc_Server_Cache* 5	Zend_XmlRpc_Response) ?	Zend_XmlRpc_Response_Http( 3	Zend_XmlRpc_Request' ?	Zend_XmlRpc_Request_Stdin& =	Zend_XmlRpc_Request_Http#% K	Zend_XmlRpc_Generator_XmlWriter+$ [	Zend_XmlRpc_Generator_GeneratorAbstract%# O	Zend_XmlRpc_Generator_DomDocument" /	Zend_XmlRpc_Fault! 7	Zend_XmlRpc_Exception  1	Zend_XmlRpc_Client" I	Zend_XmlRpc_Client_ServerProxy* Y	Zend_XmlRpc_Client_ServerIntrospection* Y	Zend_XmlRpc_Client_IntrospectException$ M	Zend_XmlRpc_Client_HttpException% O	Zend_XmlRpc_Client_FaultException  E	Zend_XmlRpc_Client_Exception% O	Zend_Wildfire_Protocol_JsonStream  E	Zend_Wildfire_Plugin_FirePhp- _	Zend_Wildfire_Plugin_FirePhp_TableMessage( U	Zend_Wildfire_Plugin_FirePhp_Message ;	Zend_Wildfire_Exception% O	Zend_Wildfire_Channel_HttpHeaders 	Zend_View -	Zend_View_Stream A	Zend_View_Helper_UserAgent 5	Zend_View_Helper_Url A	Zend_View_Helper_Translate =	Zend_View_Helper_TinySrc A	Zend_View_Helper_ServerUrl( U	Zend_View_Helper_RenderToPlaceholder  E	Zend_View_Helper_Placeholder)
 W	Zend_View_Helper_Placeholder_Registry3	 k	Zend_View_Helper_Placeholder_Registry_Exception* Y	Zend_View_Helper_Placeholder_Container5 o	Zend_View_Helper_Placeholder_Container_Standalone4 m	Zend_View_Helper_Placeholder_Container_Exception3 k	Zend_View_Helper_Placeholder_Container_Abstract   a  vA~\BzT*hA[)


}
Y
'					i	:	b=yK g6iH*~Y9rS,Z8pK#              %a O	Zend_Soap_Wsdl_Strategy_Interface$` M	Zend_Session_Validator_Interface&_ Q	Zend_Session_SaveHandler_Interface#^ K	Zend_Service_ShortUrl_ShortenerH] 	Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Interface\ 7	Zend_Server_Interface,[ ]	Zend_Serializer_Adapter_AdapterInterface3Z k	Zend_Search_Lucene_Search_Highlighter_Interface Y E	Zend_Search_Lucene_Interface2X i	Zend_Search_Lucene_Index_TermsStream_Interface#W K	Zend_Queue_Stomp_FrameInterface/V c	Zend_Queue_Stomp_Client_ConnectionInterface'U S	Zend_Queue_Adapter_AdapterInterfaceT ?	Zend_Pdf_Filter_Interface%S O	Zend_Pdf_ElementFactory_InterfaceR ?	Zend_Pdf_Canvas_Interface+Q [	Zend_Paginator_ScrollingStyle_Interface#P K	Zend_Paginator_AdapterAggregate$O M	Zend_Paginator_Adapter_Interface%N O	Zend_Oauth_Config_ConfigInterface&M Q	Zend_Mobile_Push_Message_InterfaceL A	Zend_Mobile_Push_Interface#K K	Zend_Memory_Container_Interface0J e	Zend_Markup_Renderer_TokenConverterInterface&I Q	Zend_Markup_Parser_ParserInterface(H U	Zend_Mail_Storage_Writable_Interface&G Q	Zend_Mail_Storage_Folder_InterfaceF =	Zend_Mail_Part_InterfaceE C	Zend_Mail_Message_Interface D E	Zend_Log_Formatter_InterfaceC ?	Zend_Log_Filter_InterfaceB ?	Zend_Log_FactoryInterfaceA ?	Zend_Loader_SplAutoloader&@ Q	Zend_Loader_PluginLoader_Interface$? M	Zend_Loader_Autoloader_Interface/> c	Zend_Ldap_Node_Schema_ObjectClass_Interface1= g	Zend_Ldap_Node_Schema_AttributeType_Interface2< i	Zend_InfoCard_Xml_Security_Transform_Interface'; S	Zend_InfoCard_Xml_KeyInfo_Interface': S	Zend_InfoCard_Xml_Element_Interface)9 W	Zend_InfoCard_Xml_Assertion_Interface,8 ]	Zend_InfoCard_Cipher_Symmetric_Interface67 q	Zend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface66 q	Zend_InfoCard_Cipher_Symmetric_Aes128cbc_Interface*5 Y	Zend_InfoCard_Cipher_Pki_Rsa_Interface&4 Q	Zend_InfoCard_Cipher_Pki_Interface#3 K	Zend_InfoCard_Adapter_Interface2 C	Zend_Http_UserAgent_Storage(1 U	Zend_Http_UserAgent_Features_Adapter0 A	Zend_Http_UserAgent_Device#/ K	Zend_Http_Client_Adapter_Stream&. Q	Zend_Http_Client_Adapter_Interface- A	Zend_Gdata_App_MediaSource-, _	Zend_Form_Decorator_Marker_File_Interface!+ G	Zend_Form_Decorator_Interface* 7	Zend_Filter_Interface!) G	Zend_Filter_Encrypt_Interface*( Y	Zend_Filter_Compress_CompressInterface/' c	Zend_Feed_Writer_Renderer_RendererInterface0& e	Zend_Feed_Writer_Extension_RendererInterface"% I	Zend_Feed_Reader_FeedInterface#$ K	Zend_Feed_Reader_EntryInterface6# q	Zend_Feed_Pubsubhubbub_Model_SubscriptionInterface," ]	Zend_Feed_Pubsubhubbub_CallbackInterface! C	Zend_Feed_Builder_Interface0  e	Zend_EventManager_SharedEventCollectionAware+ [	Zend_EventManager_SharedEventCollection' S	Zend_EventManager_ListenerAggregate =	Zend_EventManager_Filter C	Zend_EventManager_Exception' S	Zend_EventManager_EventManagerAware& Q	Zend_EventManager_EventDescription% O	Zend_EventManager_EventCollection C	Zend_Db_Statement_Interface# K	Zend_Currency_CurrencyInterface( U	Zend_Crypt_Math_BigInteger_Interface* Y	Zend_Controller_Router_Route_Interface$ M	Zend_Controller_Router_Interface( U	Zend_Controller_Dispatcher_Interface$ M	Zend_Controller_Action_Interface% O	Zend_Cloud_StorageService_Adapter# K	Zend_Cloud_QueueService_Adapter% O	Zend_Cloud_Infrastructure_Adapter+ [	Zend_Cloud_DocumentService_QueryAdapter& Q	Zend_Cloud_DocumentService_Adapter 5	Zend_Captcha_Adapter  E	Zend_Cache_Backend_Interface(
 U	Zend_Cache_Backend_ExtendedInterface	 C	Zend_Auth_Storage_Interface C	Zend_Auth_Adapter_Interface- _	Zend_Auth_Adapter_Http_Resolver_Interface& Q	Zend_Application_Resource_Resource3 k	Zend_Application_Bootstrap_ResourceBootstrapper+ [	Zend_Application_Bootstrap_Bootstrapper ;	Zend_Acl_Role_Interface C	Zend_Acl_Resource_Interface ?	Zend_Acl_Assert_Interface   Z  {@\'a2k?Y#



k
J
!
				x	Y	*uR&d=j>vS3Rd6|R+	i;            7; qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface7: qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interface+9 YZend_InfoCard_Cipher_Pki_Rsa_Interface'8 QZend_InfoCard_Cipher_Pki_Interface$7 KZend_InfoCard_Adapter_Interface 6 CZend_Http_UserAgent_Storage)5 UZend_Http_UserAgent_Features_Adapter4 AZend_Http_UserAgent_Device$3 KZend_Http_Client_Adapter_Stream'2 QZend_Http_Client_Adapter_Interface1 AZend_Gdata_App_MediaSource.0 _Zend_Form_Decorator_Marker_File_Interface"/ GZend_Form_Decorator_Interface. 7Zend_Filter_Interface"- GZend_Filter_Encrypt_Interface+, YZend_Filter_Compress_CompressInterface0+ cZend_Feed_Writer_Renderer_RendererInterface1* eZend_Feed_Writer_Extension_RendererInterface#) IZend_Feed_Reader_FeedInterface$( KZend_Feed_Reader_EntryInterface7' qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface-& ]Zend_Feed_Pubsubhubbub_CallbackInterface % CZend_Feed_Builder_Interface1$ eZend_EventManager_SharedEventCollectionAware,# [Zend_EventManager_SharedEventCollection(" SZend_EventManager_ListenerAggregate! =Zend_EventManager_Filter   CZend_EventManager_Exception( SZend_EventManager_EventManagerAware' QZend_EventManager_EventDescription& OZend_EventManager_EventCollection  CZend_Db_Statement_Interface$ KZend_Currency_CurrencyInterface) UZend_Crypt_Math_BigInteger_Interface+ YZend_Controller_Router_Route_Interface% MZend_Controller_Router_Interface) UZend_Controller_Dispatcher_Interface% MZend_Controller_Action_Interface& OZend_Cloud_StorageService_Adapter$ KZend_Cloud_QueueService_Adapter& OZend_Cloud_Infrastructure_Adapter, [Zend_Cloud_DocumentService_QueryAdapter' QZend_Cloud_DocumentService_Adapter 5Zend_Captcha_Adapter! EZend_Cache_Backend_Interface) UZend_Cache_Backend_ExtendedInterface  CZend_Auth_Storage_Interface  CZend_Auth_Adapter_Interface. _Zend_Auth_Adapter_Http_Resolver_Interface'
 QZend_Application_Resource_Resource4	 kZend_Application_Bootstrap_ResourceBootstrapper, [Zend_Application_Bootstrap_Bootstrapper ;Zend_Acl_Role_Interface  CZend_Acl_Resource_Interface ?Zend_Acl_Assert_Interface" I	Zend_Wildfire_Plugin_Interface# K	Zend_Wildfire_Channel_Interface 3	Zend_View_Interface& Q	Zend_View_Helper_Navigation_Helper  A	Zend_View_Helper_Interface ;	Zend_Validate_Interface*~ Y	Zend_Validate_Barcode_AdapterInterface2} i	Zend_Tool_Project_Profile_FileParser_Interface9| w	Zend_Tool_Project_Context_System_TopLevelRestrictable4{ m	Zend_Tool_Project_Context_System_NotOverwritable.z a	Zend_Tool_Project_Context_System_Interface'y S	Zend_Tool_Project_Context_Interface*x Y	Zend_Tool_Framework_Registry_Interface1w g	Zend_Tool_Framework_Registry_EnabledInterface,v ]	Zend_Tool_Framework_Provider_Pretendable*u Y	Zend_Tool_Framework_Provider_Interface-t _	Zend_Tool_Framework_Provider_Interactable.s a	Zend_Tool_Framework_Provider_Initializable:r y	Zend_Tool_Framework_Provider_DocblockManifestInterface*q Y	Zend_Tool_Framework_Metadata_Interface-p _	Zend_Tool_Framework_Metadata_Attributable5o o	Zend_Tool_Framework_Manifest_ProviderManifestable5n o	Zend_Tool_Framework_Manifest_MetadataManifestable*m Y	Zend_Tool_Framework_Manifest_Interface*l Y	Zend_Tool_Framework_Manifest_Indexable3k k	Zend_Tool_Framework_Manifest_ActionManifestable(j U	Zend_Tool_Framework_Loader_Interface7i s	Zend_Tool_Framework_Client_Storage_AdapterInterfaceCh 		Zend_Tool_Framework_Client_Response_ContentDecorator_Interface:g y	Zend_Tool_Framework_Client_Interactive_OutputInterface9f w	Zend_Tool_Framework_Client_Interactive_InputInterface(e U	Zend_Tool_Framework_Action_Interface'd S	Zend_Text_Table_Decorator_Interfacec /	Zend_Tag_Taggableb 7	Zend_Stdlib_Exception   j  |T/	Y1tS3sU5hE#




s
S
2
				y	W	4	d6yU4e;{Z:vX=#W$W+W$                              (Z SZend_Cloud_Infrastructure_Exception0Y cZend_Cloud_Infrastructure_Adapter_Rackspace*X WZend_Cloud_Infrastructure_Adapter_Ec26W oZend_Cloud_Infrastructure_Adapter_AbstractAdapterV 5Zend_Cloud_Exception%U MZend_Cloud_DocumentService_Query'T QZend_Cloud_DocumentService_Factory)S UZend_Cloud_DocumentService_Exception+R YZend_Cloud_DocumentService_DocumentSet(Q SZend_Cloud_DocumentService_Document4P kZend_Cloud_DocumentService_Adapter_WindowsAzure:O wZend_Cloud_DocumentService_Adapter_WindowsAzure_Query0N cZend_Cloud_DocumentService_Adapter_SimpleDb6M oZend_Cloud_DocumentService_Adapter_SimpleDb_Query7L qZend_Cloud_DocumentService_Adapter_AbstractAdapterK AZend_Cloud_AbstractFactoryJ /Zend_Captcha_WordI 9Zend_Captcha_ReCaptchaH 1Zend_Captcha_ImageG 3Zend_Captcha_FigletF 9Zend_Captcha_ExceptionE /Zend_Captcha_DumbD /Zend_Captcha_BaseC !Zend_CacheB 1Zend_Cache_ManagerA =Zend_Cache_Frontend_Page@ AZend_Cache_Frontend_Output!? EZend_Cache_Frontend_Function> =Zend_Cache_Frontend_File= ?Zend_Cache_Frontend_Class < CZend_Cache_Frontend_Capture; 5Zend_Cache_Exception: +Zend_Cache_Core9 1Zend_Cache_Backend"8 GZend_Cache_Backend_ZendServer(7 SZend_Cache_Backend_ZendServer_ShMem'6 QZend_Cache_Backend_ZendServer_Disk$5 KZend_Cache_Backend_ZendPlatform4 ?Zend_Cache_Backend_Xcache 3 CZend_Cache_Backend_WinCache!2 EZend_Cache_Backend_TwoLevels1 ;Zend_Cache_Backend_Test0 ?Zend_Cache_Backend_Static/ ?Zend_Cache_Backend_Sqlite!. EZend_Cache_Backend_Memcached$- KZend_Cache_Backend_Libmemcached, ;Zend_Cache_Backend_File!+ EZend_Cache_Backend_BlackHole* 9Zend_Cache_Backend_Apc) %Zend_Barcode( ?Zend_Barcode_Renderer_Svg+' YZend_Barcode_Renderer_RendererAbstract& ?Zend_Barcode_Renderer_Pdf % CZend_Barcode_Renderer_Image$$ KZend_Barcode_Renderer_Exception# =Zend_Barcode_Object_Upce" =Zend_Barcode_Object_Upca"! GZend_Barcode_Object_Royalmail   CZend_Barcode_Object_Postnet AZend_Barcode_Object_Planet' QZend_Barcode_Object_ObjectAbstract! EZend_Barcode_Object_Leitcode ?Zend_Barcode_Object_Itf14" GZend_Barcode_Object_Identcode" GZend_Barcode_Object_Exception ?Zend_Barcode_Object_Error =Zend_Barcode_Object_Ean8 =Zend_Barcode_Object_Ean5 =Zend_Barcode_Object_Ean2 ?Zend_Barcode_Object_Ean13 AZend_Barcode_Object_Code39* WZend_Barcode_Object_Code25interleaved AZend_Barcode_Object_Code25  CZend_Barcode_Object_Code128 9Zend_Barcode_Exception Zend_Auth ?Zend_Auth_Storage_Session$ KZend_Auth_Storage_NonPersistent  CZend_Auth_Storage_Exception -Zend_Auth_Result
 3Zend_Auth_Exception	 =Zend_Auth_Adapter_OpenId 9Zend_Auth_Adapter_Ldap AZend_Auth_Adapter_InfoCard 9Zend_Auth_Adapter_Http) UZend_Auth_Adapter_Http_Resolver_File. _Zend_Auth_Adapter_Http_Resolver_Exception  CZend_Auth_Adapter_Exception =Zend_Auth_Adapter_Digest ?Zend_Auth_Adapter_DbTable  -Zend_Application# IZend_Application_Resource_View(~ SZend_Application_Resource_UserAgent(} SZend_Application_Resource_Translate&| OZend_Application_Resource_Session%{ MZend_Application_Resource_Router/z aZend_Application_Resource_ResourceAbstract)y UZend_Application_Resource_Navigation&x OZend_Application_Resource_Multidb&w OZend_Application_Resource_Modules#v IZend_Application_Resource_Mail"u GZend_Application_Resource_Log%t MZend_Application_Resource_Locale%s MZend_Application_Resource_Layout.r _Zend_Application_Resource_Frontcontroller(q SZend_Application_Resource_Exception   ^  [-f5`.nE"],




]
/
 			~	J	#	rS5zR$QV&gIb8nE!X3                            $8 KZend_Controller_Router_Abstract*7 WZend_Controller_Response_HttpTestCase"6 GZend_Controller_Response_Http'5 QZend_Controller_Response_Exception!4 EZend_Controller_Response_Cli&3 OZend_Controller_Response_Abstract#2 IZend_Controller_Request_Simple)1 UZend_Controller_Request_HttpTestCase!0 EZend_Controller_Request_Http&/ OZend_Controller_Request_Exception&. OZend_Controller_Request_Apache404%- MZend_Controller_Request_Abstract&, OZend_Controller_Plugin_PutHandler(+ SZend_Controller_Plugin_ErrorHandler"* GZend_Controller_Plugin_Broker') QZend_Controller_Plugin_ActionStack$( KZend_Controller_Plugin_Abstract' 7Zend_Controller_Front& ?Zend_Controller_Exception(% SZend_Controller_Dispatcher_Standard)$ UZend_Controller_Dispatcher_Exception(# SZend_Controller_Dispatcher_Abstract" 9Zend_Controller_Action(! SZend_Controller_Action_HelperBroker6  oZend_Controller_Action_HelperBroker_PriorityStack/ aZend_Controller_Action_Helper_ViewRenderer& OZend_Controller_Action_Helper_Url- ]Zend_Controller_Action_Helper_Redirector' QZend_Controller_Action_Helper_Json1 eZend_Controller_Action_Helper_FlashMessenger0 cZend_Controller_Action_Helper_ContextSwitch( SZend_Controller_Action_Helper_Cache< {Zend_Controller_Action_Helper_AutoCompleteScriptaculous3 iZend_Controller_Action_Helper_AutoCompleteDojo8 sZend_Controller_Action_Helper_AutoComplete_Abstract. _Zend_Controller_Action_Helper_AjaxContext. _Zend_Controller_Action_Helper_ActionStack+ YZend_Controller_Action_Helper_Abstract% MZend_Controller_Action_Exception 3Zend_Console_Getopt" GZend_Console_Getopt_Exception #Zend_Config -Zend_Config_Yaml +Zend_Config_Xml 1Zend_Config_Writer ;Zend_Config_Writer_Yaml
 9Zend_Config_Writer_Xml	 ;Zend_Config_Writer_Json 9Zend_Config_Writer_Ini$ KZend_Config_Writer_FileAbstract =Zend_Config_Writer_Array -Zend_Config_Json +Zend_Config_Ini 7Zend_Config_Exception$ KZend_CodeGenerator_Php_Property1 eZend_CodeGenerator_Php_Property_DefaultValue%  MZend_CodeGenerator_Php_Parameter2 gZend_CodeGenerator_Php_Parameter_DefaultValue"~ GZend_CodeGenerator_Php_Method,} [Zend_CodeGenerator_Php_Member_Container+| YZend_CodeGenerator_Php_Member_Abstract { CZend_CodeGenerator_Php_File%z MZend_CodeGenerator_Php_Exception$y KZend_CodeGenerator_Php_Docblock(x SZend_CodeGenerator_Php_Docblock_Tag/w aZend_CodeGenerator_Php_Docblock_Tag_Return.v _Zend_CodeGenerator_Php_Docblock_Tag_Param0u cZend_CodeGenerator_Php_Docblock_Tag_License!t EZend_CodeGenerator_Php_Class s CZend_CodeGenerator_Php_Body$r KZend_CodeGenerator_Php_Abstract!q EZend_CodeGenerator_Exception p CZend_CodeGenerator_Abstract&o OZend_Cloud_StorageService_Factory(n SZend_Cloud_StorageService_Exception3m iZend_Cloud_StorageService_Adapter_WindowsAzure)l UZend_Cloud_StorageService_Adapter_S30k cZend_Cloud_StorageService_Adapter_Rackspace/j aZend_Cloud_StorageService_Adapter_Nirvanix1i eZend_Cloud_StorageService_Adapter_FileSystem'h QZend_Cloud_QueueService_MessageSet$g KZend_Cloud_QueueService_Message$f KZend_Cloud_QueueService_Factory&e OZend_Cloud_QueueService_Exception.d _Zend_Cloud_QueueService_Adapter_ZendQueue1c eZend_Cloud_QueueService_Adapter_WindowsAzure(b SZend_Cloud_QueueService_Adapter_Sqs4a kZend_Cloud_QueueService_Adapter_AbstractAdapter.` _Zend_Cloud_OperationNotAvailableException+_ YZend_Cloud_Infrastructure_InstanceList'^ QZend_Cloud_Infrastructure_Instance(] SZend_Cloud_Infrastructure_ImageList$\ KZend_Cloud_Infrastructure_Image&[ OZend_Cloud_Infrastructure_Factory   p  [.`@$qO.rS>&
~]5




g
H
'
				|	^	E	1	\?gF)iG$~bM>,~N"m>{M#T(                     )( UZend_Dojo_Form_Element_NumberTextBox)' UZend_Dojo_Form_Element_NumberSpinner,& [Zend_Dojo_Form_Element_HorizontalSlider+% YZend_Dojo_Form_Element_FilteringSelect"$ GZend_Dojo_Form_Element_Editor&# OZend_Dojo_Form_Element_DijitMulti!" EZend_Dojo_Form_Element_Dijit'! QZend_Dojo_Form_Element_DateTextBox+  YZend_Dojo_Form_Element_CurrencyTextBox$ KZend_Dojo_Form_Element_ComboBox$ KZend_Dojo_Form_Element_CheckBox" GZend_Dojo_Form_Element_Button  CZend_Dojo_Form_DisplayGroup* WZend_Dojo_Form_Decorator_TabContainer, [Zend_Dojo_Form_Decorator_StackContainer, [Zend_Dojo_Form_Decorator_SplitContainer' QZend_Dojo_Form_Decorator_DijitForm* WZend_Dojo_Form_Decorator_DijitElement, [Zend_Dojo_Form_Decorator_DijitContainer) UZend_Dojo_Form_Decorator_ContentPane- ]Zend_Dojo_Form_Decorator_BorderContainer+ YZend_Dojo_Form_Decorator_AccordionPane0 cZend_Dojo_Form_Decorator_AccordionContainer 3Zend_Dojo_Exception )Zend_Dojo_Data 5Zend_Dojo_BuildLayer !Zend_Debug Zend_Db 'Zend_Db_Table 5Zend_Db_Table_Select#
 IZend_Db_Table_Select_Exception	 5Zend_Db_Table_Rowset# IZend_Db_Table_Rowset_Exception" GZend_Db_Table_Rowset_Abstract /Zend_Db_Table_Row  CZend_Db_Table_Row_Exception AZend_Db_Table_Row_Abstract ;Zend_Db_Table_Exception =Zend_Db_Table_Definition 9Zend_Db_Table_Abstract  /Zend_Db_Statement =Zend_Db_Statement_Sqlsrv'~ QZend_Db_Statement_Sqlsrv_Exception} 7Zend_Db_Statement_Pdo| ?Zend_Db_Statement_Pdo_Oci{ ?Zend_Db_Statement_Pdo_Ibmz =Zend_Db_Statement_Oracle'y QZend_Db_Statement_Oracle_Exceptionx =Zend_Db_Statement_Mysqli'w QZend_Db_Statement_Mysqli_Exception v CZend_Db_Statement_Exceptionu 7Zend_Db_Statement_Db2$t KZend_Db_Statement_Db2_Exceptions )Zend_Db_Selectr =Zend_Db_Select_Exceptionq -Zend_Db_Profilerp 9Zend_Db_Profiler_Queryo =Zend_Db_Profiler_Firebugn AZend_Db_Profiler_Exceptionm %Zend_Db_Exprl /Zend_Db_Exceptionk 9Zend_Db_Adapter_Sqlsrv%j MZend_Db_Adapter_Sqlsrv_Exceptioni AZend_Db_Adapter_Pdo_Sqliteh ?Zend_Db_Adapter_Pdo_Pgsqlg ;Zend_Db_Adapter_Pdo_Ocif ?Zend_Db_Adapter_Pdo_Mysqle ?Zend_Db_Adapter_Pdo_Mssqld ;Zend_Db_Adapter_Pdo_Ibm c CZend_Db_Adapter_Pdo_Ibm_Ids b CZend_Db_Adapter_Pdo_Ibm_Db2!a EZend_Db_Adapter_Pdo_Abstract` 9Zend_Db_Adapter_Oracle%_ MZend_Db_Adapter_Oracle_Exception^ 9Zend_Db_Adapter_Mysqli%] MZend_Db_Adapter_Mysqli_Exception\ ?Zend_Db_Adapter_Exception[ 3Zend_Db_Adapter_Db2"Z GZend_Db_Adapter_Db2_ExceptionY =Zend_Db_Adapter_AbstractX Zend_DateW 3Zend_Date_ExceptionV 5Zend_Date_DateObjectU -Zend_Date_CitiesT 'Zend_CurrencyS ;Zend_Currency_ExceptionR !Zend_CryptQ )Zend_Crypt_RsaP 1Zend_Crypt_Rsa_KeyO ?Zend_Crypt_Rsa_Key_PublicN AZend_Crypt_Rsa_Key_PrivateM =Zend_Crypt_Rsa_ExceptionL +Zend_Crypt_MathK ?Zend_Crypt_Math_ExceptionJ AZend_Crypt_Math_BigInteger#I IZend_Crypt_Math_BigInteger_Gmp)H UZend_Crypt_Math_BigInteger_Exception&G OZend_Crypt_Math_BigInteger_BcmathF +Zend_Crypt_HmacE ?Zend_Crypt_Hmac_ExceptionD 5Zend_Crypt_ExceptionC =Zend_Crypt_DiffieHellman'B QZend_Crypt_DiffieHellman_Exception!A EZend_Controller_Router_Route(@ SZend_Controller_Router_Route_Static'? QZend_Controller_Router_Route_Regex(> SZend_Controller_Router_Route_Module*= WZend_Controller_Router_Route_Hostname'< QZend_Controller_Router_Route_Chain*; WZend_Controller_Router_Route_Abstract#: IZend_Controller_Router_Rewrite%9 MZend_Controller_Router_Exception   b  {V+W9#{W1c@uS%



y
M
)				}	W	2		cF0[/kU6z^C(tCxL[/]+                                                -
 ]Zend_Feed_Reader_Extension_EntryAbstract/	 aZend_Feed_Reader_Extension_DublinCore_Feed0 cZend_Feed_Reader_Extension_DublinCore_Entry4 kZend_Feed_Reader_Extension_CreativeCommons_Feed5 mZend_Feed_Reader_Extension_CreativeCommons_Entry- ]Zend_Feed_Reader_Extension_Content_Entry) UZend_Feed_Reader_Extension_Atom_Feed* WZend_Feed_Reader_Extension_Atom_Entry# IZend_Feed_Reader_EntryAbstract AZend_Feed_Reader_Entry_Rss   CZend_Feed_Reader_Entry_Atom  CZend_Feed_Reader_Collection3~ iZend_Feed_Reader_Collection_CollectionAbstract)} UZend_Feed_Reader_Collection_Category'| QZend_Feed_Reader_Collection_Author{ 9Zend_Feed_Pubsubhubbub&z OZend_Feed_Pubsubhubbub_Subscriber/y aZend_Feed_Pubsubhubbub_Subscriber_Callback%x MZend_Feed_Pubsubhubbub_Publisher.w _Zend_Feed_Pubsubhubbub_Model_Subscription/v aZend_Feed_Pubsubhubbub_Model_ModelAbstract(u SZend_Feed_Pubsubhubbub_HttpResponse%t MZend_Feed_Pubsubhubbub_Exception,s [Zend_Feed_Pubsubhubbub_CallbackAbstractr 3Zend_Feed_Exceptionq 3Zend_Feed_Entry_Rssp 5Zend_Feed_Entry_Atomo =Zend_Feed_Entry_Abstractn /Zend_Feed_Elementm /Zend_Feed_Builderl =Zend_Feed_Builder_Header$k KZend_Feed_Builder_Header_Itunes j CZend_Feed_Builder_Exceptioni ;Zend_Feed_Builder_Entryh )Zend_Feed_Atomg 1Zend_Feed_Abstractf )Zend_Exception)e UZend_EventManager_StaticEventManager)d UZend_EventManager_SharedEventManager)c UZend_EventManager_ResponseCollectionb SplStack)a UZend_EventManager_GlobalEventManager"` GZend_EventManager_FilterChain,_ [Zend_EventManager_Filter_FilterIterator9^ uZend_EventManager_Exception_InvalidArgumentException#] IZend_EventManager_EventManager\ ;Zend_EventManager_Event[ )Zend_Dom_QueryZ 7Zend_Dom_Query_ResultY =Zend_Dom_Query_Css2XpathX 1Zend_Dom_ExceptionW Zend_Dojo)V UZend_Dojo_View_Helper_VerticalSlider,U [Zend_Dojo_View_Helper_ValidationTextBox&T OZend_Dojo_View_Helper_TimeTextBox"S GZend_Dojo_View_Helper_TextBox#R IZend_Dojo_View_Helper_Textarea'Q QZend_Dojo_View_Helper_TabContainer'P QZend_Dojo_View_Helper_SubmitButton)O UZend_Dojo_View_Helper_StackContainer)N UZend_Dojo_View_Helper_SplitContainer!M EZend_Dojo_View_Helper_Slider)L UZend_Dojo_View_Helper_SimpleTextarea&K OZend_Dojo_View_Helper_RadioButton*J WZend_Dojo_View_Helper_PasswordTextBox(I SZend_Dojo_View_Helper_NumberTextBox(H SZend_Dojo_View_Helper_NumberSpinner+G YZend_Dojo_View_Helper_HorizontalSliderF AZend_Dojo_View_Helper_Form*E WZend_Dojo_View_Helper_FilteringSelect!D EZend_Dojo_View_Helper_EditorC AZend_Dojo_View_Helper_Dojo)B UZend_Dojo_View_Helper_Dojo_Container)A UZend_Dojo_View_Helper_DijitContainer @ CZend_Dojo_View_Helper_Dijit&? OZend_Dojo_View_Helper_DateTextBox&> OZend_Dojo_View_Helper_CustomDijit*= WZend_Dojo_View_Helper_CurrencyTextBox&< OZend_Dojo_View_Helper_ContentPane#; IZend_Dojo_View_Helper_ComboBox#: IZend_Dojo_View_Helper_CheckBox!9 EZend_Dojo_View_Helper_Button*8 WZend_Dojo_View_Helper_BorderContainer(7 SZend_Dojo_View_Helper_AccordionPane-6 ]Zend_Dojo_View_Helper_AccordionContainer5 =Zend_Dojo_View_Exception4 )Zend_Dojo_Form3 9Zend_Dojo_Form_SubForm*2 WZend_Dojo_Form_Element_VerticalSlider-1 ]Zend_Dojo_Form_Element_ValidationTextBox'0 QZend_Dojo_Form_Element_TimeTextBox#/ IZend_Dojo_Form_Element_TextBox$. KZend_Dojo_Form_Element_Textarea(- SZend_Dojo_Form_Element_SubmitButton", GZend_Dojo_Form_Element_Slider*+ WZend_Dojo_Form_Element_SimpleTextarea'* QZend_Dojo_Form_Element_RadioButton+) YZend_Dojo_Form_Element_PasswordTextBox   f  rDa@W"rCs<


{
G
				[	1jC`3xZ?%qQ/X/|[>kBg>       !p EZend_Form_Decorator_Abstracto #Zend_Filter+n YZend_Filter_Word_UnderscoreToSeparator&m OZend_Filter_Word_UnderscoreToDash+l YZend_Filter_Word_UnderscoreToCamelCase*k WZend_Filter_Word_SeparatorToSeparator%j MZend_Filter_Word_SeparatorToDash*i WZend_Filter_Word_SeparatorToCamelCase(h SZend_Filter_Word_Separator_Abstract&g OZend_Filter_Word_DashToUnderscore%f MZend_Filter_Word_DashToSeparator%e MZend_Filter_Word_DashToCamelCase+d YZend_Filter_Word_CamelCaseToUnderscore*c WZend_Filter_Word_CamelCaseToSeparator%b MZend_Filter_Word_CamelCaseToDasha 7Zend_Filter_StripTags` ?Zend_Filter_StripNewlines_ 9Zend_Filter_StringTrim^ ?Zend_Filter_StringToUpper] ?Zend_Filter_StringToLower\ 5Zend_Filter_RealPath[ ;Zend_Filter_PregReplaceZ -Zend_Filter_Null&Y OZend_Filter_NormalizedToLocalized&X OZend_Filter_LocalizedToNormalizedW +Zend_Filter_IntV /Zend_Filter_InputU 7Zend_Filter_InflectorT =Zend_Filter_HtmlEntitiesS AZend_Filter_File_UpperCaseR ;Zend_Filter_File_RenameQ AZend_Filter_File_LowerCaseP =Zend_Filter_File_EncryptO =Zend_Filter_File_DecryptN 7Zend_Filter_ExceptionM 3Zend_Filter_Encrypt L CZend_Filter_Encrypt_OpensslK AZend_Filter_Encrypt_McryptJ +Zend_Filter_DirI 1Zend_Filter_DigitsH 3Zend_Filter_DecryptG 9Zend_Filter_DecompressF 5Zend_Filter_CompressE =Zend_Filter_Compress_ZipD =Zend_Filter_Compress_TarC =Zend_Filter_Compress_RarB =Zend_Filter_Compress_LzfA ;Zend_Filter_Compress_Gz*@ WZend_Filter_Compress_CompressAbstract? =Zend_Filter_Compress_Bz2> 5Zend_Filter_Callback= 3Zend_Filter_Boolean< 5Zend_Filter_BaseName; /Zend_Filter_Alpha: /Zend_Filter_Alnum9 1Zend_File_Transfer!8 EZend_File_Transfer_Exception$7 KZend_File_Transfer_Adapter_Http(6 SZend_File_Transfer_Adapter_Abstract5 AZend_File_ClassFileLocator4 Zend_Feed3 -Zend_Feed_Writer2 ;Zend_Feed_Writer_Source/1 aZend_Feed_Writer_Renderer_RendererAbstract'0 QZend_Feed_Writer_Renderer_Feed_Rss(/ SZend_Feed_Writer_Renderer_Feed_Atom/. aZend_Feed_Writer_Renderer_Feed_Atom_Source5- mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract(, SZend_Feed_Writer_Renderer_Entry_Rss)+ UZend_Feed_Writer_Renderer_Entry_Atom1* eZend_Feed_Writer_Renderer_Entry_Atom_Deleted) 7Zend_Feed_Writer_Feed'( QZend_Feed_Writer_Feed_FeedAbstract<' {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry8& sZend_Feed_Writer_Extension_Threading_Renderer_Entry4% kZend_Feed_Writer_Extension_Slash_Renderer_Entry0$ cZend_Feed_Writer_Extension_RendererAbstract4# kZend_Feed_Writer_Extension_ITunes_Renderer_Feed5" mZend_Feed_Writer_Extension_ITunes_Renderer_Entry+! YZend_Feed_Writer_Extension_ITunes_Feed,  [Zend_Feed_Writer_Extension_ITunes_Entry8 sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed9 uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry6 oZend_Feed_Writer_Extension_Content_Renderer_Entry2 gZend_Feed_Writer_Extension_Atom_Renderer_Feed6 oZend_Feed_Writer_Exception_InvalidMethodException 9Zend_Feed_Writer_Entry =Zend_Feed_Writer_Deleted 'Zend_Feed_Rss -Zend_Feed_Reader =Zend_Feed_Reader_FeedSet" GZend_Feed_Reader_FeedAbstract ?Zend_Feed_Reader_Feed_Rss AZend_Feed_Reader_Feed_Atom& OZend_Feed_Reader_Feed_Atom_Source3 iZend_Feed_Reader_Extension_WellFormedWeb_Entry, [Zend_Feed_Reader_Extension_Thread_Entry0 cZend_Feed_Reader_Extension_Syndication_Feed+ YZend_Feed_Reader_Extension_Slash_Entry, [Zend_Feed_Reader_Extension_Podcast_Feed- ]Zend_Feed_Reader_Extension_Podcast_Entry, [Zend_Feed_Reader_Extension_FeedAbstract   j  d=kCjD z\>rS4




|
a
H
7
				r	L	qU1xX1f?Z5qH iN(W6vO                   -Z ]Zend_Gdata_Books_Extension_BooksCategory.Y _Zend_Gdata_Books_Extension_AnnotationLink$X KZend_Gdata_Books_CollectionFeed%W MZend_Gdata_Books_CollectionEntryV 1Zend_Gdata_AuthSubU )Zend_Gdata_App$T KZend_Gdata_App_VersionExceptionS 3Zend_Gdata_App_Util#R IZend_Gdata_App_MediaFileSourceQ ?Zend_Gdata_App_MediaEntry2P gZend_Gdata_App_LoggingHttpClientAdapterSocketO AZend_Gdata_App_IOException,N [Zend_Gdata_App_InvalidArgumentException!M EZend_Gdata_App_HttpException$L KZend_Gdata_App_FeedSourceParent#K IZend_Gdata_App_FeedEntryParentJ 3Zend_Gdata_App_FeedI =Zend_Gdata_App_Extension!H EZend_Gdata_App_Extension_Uri%G MZend_Gdata_App_Extension_Updated#F IZend_Gdata_App_Extension_Title"E GZend_Gdata_App_Extension_Text%D MZend_Gdata_App_Extension_Summary&C OZend_Gdata_App_Extension_Subtitle$B KZend_Gdata_App_Extension_Source$A KZend_Gdata_App_Extension_Rights'@ QZend_Gdata_App_Extension_Published$? KZend_Gdata_App_Extension_Person"> GZend_Gdata_App_Extension_Name"= GZend_Gdata_App_Extension_Logo"< GZend_Gdata_App_Extension_Link ; CZend_Gdata_App_Extension_Id": GZend_Gdata_App_Extension_Icon'9 QZend_Gdata_App_Extension_Generator#8 IZend_Gdata_App_Extension_Email%7 MZend_Gdata_App_Extension_Element$6 KZend_Gdata_App_Extension_Edited#5 IZend_Gdata_App_Extension_Draft%4 MZend_Gdata_App_Extension_Control)3 UZend_Gdata_App_Extension_Contributor%2 MZend_Gdata_App_Extension_Content&1 OZend_Gdata_App_Extension_Category$0 KZend_Gdata_App_Extension_Author/ =Zend_Gdata_App_Exception. 5Zend_Gdata_App_Entry,- [Zend_Gdata_App_CaptchaRequiredException#, IZend_Gdata_App_BaseMediaSource+ 3Zend_Gdata_App_Base** WZend_Gdata_App_BadMethodCallException!) EZend_Gdata_App_AuthException( 5Zend_Gdata_Analytics+' YZend_Gdata_Analytics_Extension_TableId,& [Zend_Gdata_Analytics_Extension_Property*% WZend_Gdata_Analytics_Extension_Metric$ ?Zend_Gdata_Analytics_Goal-# ]Zend_Gdata_Analytics_Extension_Dimension#" IZend_Gdata_Analytics_DataQuery"! GZend_Gdata_Analytics_DataFeed#  IZend_Gdata_Analytics_DataEntry& OZend_Gdata_Analytics_AccountQuery% MZend_Gdata_Analytics_AccountFeed& OZend_Gdata_Analytics_AccountEntry Zend_Form /Zend_Form_SubForm 3Zend_Form_Exception /Zend_Form_Element ;Zend_Form_Element_Xhtml AZend_Form_Element_Textarea 9Zend_Form_Element_Text =Zend_Form_Element_Submit =Zend_Form_Element_Select ;Zend_Form_Element_Reset ;Zend_Form_Element_Radio AZend_Form_Element_Password" GZend_Form_Element_Multiselect$ KZend_Form_Element_MultiCheckbox ;Zend_Form_Element_Multi ;Zend_Form_Element_Image =Zend_Form_Element_Hidden 9Zend_Form_Element_Hash
 9Zend_Form_Element_File 	 CZend_Form_Element_Exception AZend_Form_Element_Checkbox ?Zend_Form_Element_Captcha =Zend_Form_Element_Button 9Zend_Form_DisplayGroup# IZend_Form_Decorator_ViewScript# IZend_Form_Decorator_ViewHelper  CZend_Form_Decorator_Tooltip( SZend_Form_Decorator_PrepareElements  ?Zend_Form_Decorator_Label ?Zend_Form_Decorator_Image ~ CZend_Form_Decorator_HtmlTag#} IZend_Form_Decorator_FormErrors%| MZend_Form_Decorator_FormElements{ =Zend_Form_Decorator_Formz =Zend_Form_Decorator_File!y EZend_Form_Decorator_Fieldset"x GZend_Form_Decorator_Exceptionw AZend_Form_Decorator_Errors$v KZend_Form_Decorator_DtDdWrapper$u KZend_Form_Decorator_Description t CZend_Form_Decorator_Captcha%s MZend_Form_Decorator_Captcha_Word*r WZend_Form_Decorator_Captcha_ReCaptcha!q EZend_Form_Decorator_Callback   a  yK"}YAtHX(}U8!



e
3
			u	H	+	{N'`:h@W-
e>[4[3kI&                       ; CZend_Gdata_Gapps_MemberFeed!: EZend_Gdata_Gapps_MemberEntry 9 CZend_Gdata_Gapps_GroupQuery8 AZend_Gdata_Gapps_GroupFeed 7 CZend_Gdata_Gapps_GroupEntry%6 MZend_Gdata_Gapps_Extension_Quota(5 SZend_Gdata_Gapps_Extension_Property(4 SZend_Gdata_Gapps_Extension_Nickname$3 KZend_Gdata_Gapps_Extension_Name%2 MZend_Gdata_Gapps_Extension_Login)1 UZend_Gdata_Gapps_Extension_EmailList0 9Zend_Gdata_Gapps_Error-/ ]Zend_Gdata_Gapps_EmailListRecipientQuery,. [Zend_Gdata_Gapps_EmailListRecipientFeed-- ]Zend_Gdata_Gapps_EmailListRecipientEntry$, KZend_Gdata_Gapps_EmailListQuery#+ IZend_Gdata_Gapps_EmailListFeed$* KZend_Gdata_Gapps_EmailListEntry) +Zend_Gdata_Feed( 5Zend_Gdata_Extension' =Zend_Gdata_Extension_Who& AZend_Gdata_Extension_Where% ?Zend_Gdata_Extension_When$$ KZend_Gdata_Extension_Visibility&# OZend_Gdata_Extension_Transparency"" GZend_Gdata_Extension_Reminder-! ]Zend_Gdata_Extension_RecurrenceException$  KZend_Gdata_Extension_Recurrence  CZend_Gdata_Extension_Rating' QZend_Gdata_Extension_OriginalEvent0 cZend_Gdata_Extension_OpenSearchTotalResults. _Zend_Gdata_Extension_OpenSearchStartIndex0 cZend_Gdata_Extension_OpenSearchItemsPerPage" GZend_Gdata_Extension_FeedLink* WZend_Gdata_Extension_ExtendedProperty% MZend_Gdata_Extension_EventStatus# IZend_Gdata_Extension_EntryLink" GZend_Gdata_Extension_Comments& OZend_Gdata_Extension_AttendeeType( SZend_Gdata_Extension_AttendeeStatus +Zend_Gdata_Exif 5Zend_Gdata_Exif_Feed# IZend_Gdata_Exif_Extension_Time# IZend_Gdata_Exif_Extension_Tags$ KZend_Gdata_Exif_Extension_Model# IZend_Gdata_Exif_Extension_Make" GZend_Gdata_Exif_Extension_Iso, [Zend_Gdata_Exif_Extension_ImageUniqueId$ KZend_Gdata_Exif_Extension_FStop*
 WZend_Gdata_Exif_Extension_FocalLength$	 KZend_Gdata_Exif_Extension_Flash' QZend_Gdata_Exif_Extension_Exposure' QZend_Gdata_Exif_Extension_Distance 7Zend_Gdata_Exif_Entry -Zend_Gdata_Entry 7Zend_Gdata_DublinCore* WZend_Gdata_DublinCore_Extension_Title, [Zend_Gdata_DublinCore_Extension_Subject+ YZend_Gdata_DublinCore_Extension_Rights.  _Zend_Gdata_DublinCore_Extension_Publisher- ]Zend_Gdata_DublinCore_Extension_Language/~ aZend_Gdata_DublinCore_Extension_Identifier+} YZend_Gdata_DublinCore_Extension_Format0| cZend_Gdata_DublinCore_Extension_Description){ UZend_Gdata_DublinCore_Extension_Date,z [Zend_Gdata_DublinCore_Extension_Creatory +Zend_Gdata_Docsx 7Zend_Gdata_Docs_Query%w MZend_Gdata_Docs_DocumentListFeed&v OZend_Gdata_Docs_DocumentListEntryu 9Zend_Gdata_ClientLogint 3Zend_Gdata_Calendar!s EZend_Gdata_Calendar_ListFeed"r GZend_Gdata_Calendar_ListEntry-q ]Zend_Gdata_Calendar_Extension_WebContent+p YZend_Gdata_Calendar_Extension_Timezone9o uZend_Gdata_Calendar_Extension_SendEventNotifications+n YZend_Gdata_Calendar_Extension_Selected+m YZend_Gdata_Calendar_Extension_QuickAdd'l QZend_Gdata_Calendar_Extension_Link)k UZend_Gdata_Calendar_Extension_Hidden(j SZend_Gdata_Calendar_Extension_Color.i _Zend_Gdata_Calendar_Extension_AccessLevel#h IZend_Gdata_Calendar_EventQuery"g GZend_Gdata_Calendar_EventFeed#f IZend_Gdata_Calendar_EventEntrye -Zend_Gdata_Books!d EZend_Gdata_Books_VolumeQuery c CZend_Gdata_Books_VolumeFeed!b EZend_Gdata_Books_VolumeEntry+a YZend_Gdata_Books_Extension_Viewability-` ]Zend_Gdata_Books_Extension_ThumbnailLink&_ OZend_Gdata_Books_Extension_Review+^ YZend_Gdata_Books_Extension_PreviewLink(] SZend_Gdata_Books_Extension_InfoLink-\ ]Zend_Gdata_Books_Extension_Embeddability)[ UZend_Gdata_Books_Extension_BooksLink   d  kH&yW?!oQ,Z3f=



m
O
				^	1	yFeD)nC[1V)l>h=]:               /Zend_Gdata_Photos  CZend_Gdata_Photos_UserQuery AZend_Gdata_Photos_UserFeed  CZend_Gdata_Photos_UserEntry AZend_Gdata_Photos_TagEntry! EZend_Gdata_Photos_PhotoQuery  CZend_Gdata_Photos_PhotoFeed! EZend_Gdata_Photos_PhotoEntry& OZend_Gdata_Photos_Extension_Width' QZend_Gdata_Photos_Extension_Weight( SZend_Gdata_Photos_Extension_Version% MZend_Gdata_Photos_Extension_User* WZend_Gdata_Photos_Extension_Timestamp* WZend_Gdata_Photos_Extension_Thumbnail% MZend_Gdata_Photos_Extension_Size) UZend_Gdata_Photos_Extension_Rotation+ YZend_Gdata_Photos_Extension_QuotaLimit- ]Zend_Gdata_Photos_Extension_QuotaCurrent) UZend_Gdata_Photos_Extension_Position( SZend_Gdata_Photos_Extension_PhotoId3 iZend_Gdata_Photos_Extension_NumPhotosRemaining*
 WZend_Gdata_Photos_Extension_NumPhotos)	 UZend_Gdata_Photos_Extension_Nickname% MZend_Gdata_Photos_Extension_Name2 gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum) UZend_Gdata_Photos_Extension_Location# IZend_Gdata_Photos_Extension_Id' QZend_Gdata_Photos_Extension_Height2 gZend_Gdata_Photos_Extension_CommentingEnabled- ]Zend_Gdata_Photos_Extension_CommentCount' QZend_Gdata_Photos_Extension_Client)  UZend_Gdata_Photos_Extension_Checksum* WZend_Gdata_Photos_Extension_BytesUsed(~ SZend_Gdata_Photos_Extension_AlbumId'} QZend_Gdata_Photos_Extension_Access#| IZend_Gdata_Photos_CommentEntry!{ EZend_Gdata_Photos_AlbumQuery z CZend_Gdata_Photos_AlbumFeed!y EZend_Gdata_Photos_AlbumEntryx 3Zend_Gdata_MimeFilew ?Zend_Gdata_MimeBodyStringv AZend_Gdata_MediaMimeStreamu -Zend_Gdata_Mediat 7Zend_Gdata_Media_Feed*s WZend_Gdata_Media_Extension_MediaTitle.r _Zend_Gdata_Media_Extension_MediaThumbnail)q UZend_Gdata_Media_Extension_MediaText0p cZend_Gdata_Media_Extension_MediaRestriction+o YZend_Gdata_Media_Extension_MediaRating+n YZend_Gdata_Media_Extension_MediaPlayer-m ]Zend_Gdata_Media_Extension_MediaKeywords)l UZend_Gdata_Media_Extension_MediaHash*k WZend_Gdata_Media_Extension_MediaGroup0j cZend_Gdata_Media_Extension_MediaDescription+i YZend_Gdata_Media_Extension_MediaCredit.h _Zend_Gdata_Media_Extension_MediaCopyright,g [Zend_Gdata_Media_Extension_MediaContent-f ]Zend_Gdata_Media_Extension_MediaCategorye 9Zend_Gdata_Media_Entryd AZend_Gdata_Kind_EventEntryc 7Zend_Gdata_HttpClient*b WZend_Gdata_HttpAdapterStreamingSocket)a UZend_Gdata_HttpAdapterStreamingProxy` /Zend_Gdata_Health_ ;Zend_Gdata_Health_Query&^ OZend_Gdata_Health_ProfileListFeed'] QZend_Gdata_Health_ProfileListEntry"\ GZend_Gdata_Health_ProfileFeed#[ IZend_Gdata_Health_ProfileEntry$Z KZend_Gdata_Health_Extension_CcrY )Zend_Gdata_GeoX 3Zend_Gdata_Geo_Feed$W KZend_Gdata_Geo_Extension_GmlPos&V OZend_Gdata_Geo_Extension_GmlPoint)U UZend_Gdata_Geo_Extension_GeoRssWhereT 5Zend_Gdata_Geo_EntryS -Zend_Gdata_Gbase"R GZend_Gdata_Gbase_SnippetQuery!Q EZend_Gdata_Gbase_SnippetFeed"P GZend_Gdata_Gbase_SnippetEntryO 9Zend_Gdata_Gbase_QueryN AZend_Gdata_Gbase_ItemQueryM ?Zend_Gdata_Gbase_ItemFeedL AZend_Gdata_Gbase_ItemEntryK 7Zend_Gdata_Gbase_Feed-J ]Zend_Gdata_Gbase_Extension_BaseAttributeI 9Zend_Gdata_Gbase_EntryH -Zend_Gdata_GappsG AZend_Gdata_Gapps_UserQueryF ?Zend_Gdata_Gapps_UserFeedE AZend_Gdata_Gapps_UserEntry&D OZend_Gdata_Gapps_ServiceExceptionC 9Zend_Gdata_Gapps_Query B CZend_Gdata_Gapps_OwnerQueryA AZend_Gdata_Gapps_OwnerFeed @ CZend_Gdata_Gapps_OwnerEntry#? IZend_Gdata_Gapps_NicknameQuery"> GZend_Gdata_Gapps_NicknameFeed#= IZend_Gdata_Gapps_NicknameEntry!< EZend_Gdata_Gapps_MemberQuery   ^  nAV.xK,iCm?



]
0
			|	L	l=S*qGi=xKxT/gB L*	   '} QZend_Http_UserAgent_AbstractDevice| 1Zend_Http_Response{ ?Zend_Http_Response_Streamz AZend_Http_Header_SetCookie0y cZend_Http_Header_Exception_RuntimeException8x sZend_Http_Header_Exception_InvalidArgumentExceptionw 3Zend_Http_Exceptionv 3Zend_Http_CookieJaru -Zend_Http_Cookiet -Zend_Http_Clients AZend_Http_Client_Exception"r GZend_Http_Client_Adapter_Test$q KZend_Http_Client_Adapter_Socket#p IZend_Http_Client_Adapter_Proxy'o QZend_Http_Client_Adapter_Exception"n GZend_Http_Client_Adapter_Curlm !Zend_Gdatal 1Zend_Gdata_YouTube"k GZend_Gdata_YouTube_VideoQuery!j EZend_Gdata_YouTube_VideoFeed"i GZend_Gdata_YouTube_VideoEntry(h SZend_Gdata_YouTube_UserProfileEntry(g SZend_Gdata_YouTube_SubscriptionFeed)f UZend_Gdata_YouTube_SubscriptionEntry)e UZend_Gdata_YouTube_PlaylistVideoFeed*d WZend_Gdata_YouTube_PlaylistVideoEntry(c SZend_Gdata_YouTube_PlaylistListFeed)b UZend_Gdata_YouTube_PlaylistListEntry"a GZend_Gdata_YouTube_MediaEntry!` EZend_Gdata_YouTube_InboxFeed"_ GZend_Gdata_YouTube_InboxEntry)^ UZend_Gdata_YouTube_Extension_VideoId*] WZend_Gdata_YouTube_Extension_Username*\ WZend_Gdata_YouTube_Extension_Uploaded'[ QZend_Gdata_YouTube_Extension_Token(Z SZend_Gdata_YouTube_Extension_Status,Y [Zend_Gdata_YouTube_Extension_Statistics'X QZend_Gdata_YouTube_Extension_State(W SZend_Gdata_YouTube_Extension_School-V ]Zend_Gdata_YouTube_Extension_ReleaseDate.U _Zend_Gdata_YouTube_Extension_Relationship*T WZend_Gdata_YouTube_Extension_Recorded&S OZend_Gdata_YouTube_Extension_Racy-R ]Zend_Gdata_YouTube_Extension_QueryString)Q UZend_Gdata_YouTube_Extension_Private*P WZend_Gdata_YouTube_Extension_Position/O aZend_Gdata_YouTube_Extension_PlaylistTitle,N [Zend_Gdata_YouTube_Extension_PlaylistId,M [Zend_Gdata_YouTube_Extension_Occupation)L UZend_Gdata_YouTube_Extension_NoEmbed'K QZend_Gdata_YouTube_Extension_Music(J SZend_Gdata_YouTube_Extension_Movies-I ]Zend_Gdata_YouTube_Extension_MediaRating,H [Zend_Gdata_YouTube_Extension_MediaGroup-G ]Zend_Gdata_YouTube_Extension_MediaCredit.F _Zend_Gdata_YouTube_Extension_MediaContent*E WZend_Gdata_YouTube_Extension_Location&D OZend_Gdata_YouTube_Extension_Link*C WZend_Gdata_YouTube_Extension_LastName*B WZend_Gdata_YouTube_Extension_Hometown)A UZend_Gdata_YouTube_Extension_Hobbies(@ SZend_Gdata_YouTube_Extension_Gender+? YZend_Gdata_YouTube_Extension_FirstName*> WZend_Gdata_YouTube_Extension_Duration-= ]Zend_Gdata_YouTube_Extension_Description+< YZend_Gdata_YouTube_Extension_CountHint); UZend_Gdata_YouTube_Extension_Control): UZend_Gdata_YouTube_Extension_Company'9 QZend_Gdata_YouTube_Extension_Books%8 MZend_Gdata_YouTube_Extension_Age)7 UZend_Gdata_YouTube_Extension_AboutMe#6 IZend_Gdata_YouTube_ContactFeed$5 KZend_Gdata_YouTube_ContactEntry#4 IZend_Gdata_YouTube_CommentFeed$3 KZend_Gdata_YouTube_CommentEntry$2 KZend_Gdata_YouTube_ActivityFeed%1 MZend_Gdata_YouTube_ActivityEntry0 ;Zend_Gdata_Spreadsheets*/ WZend_Gdata_Spreadsheets_WorksheetFeed+. YZend_Gdata_Spreadsheets_WorksheetEntry,- [Zend_Gdata_Spreadsheets_SpreadsheetFeed-, ]Zend_Gdata_Spreadsheets_SpreadsheetEntry&+ OZend_Gdata_Spreadsheets_ListQuery%* MZend_Gdata_Spreadsheets_ListFeed&) OZend_Gdata_Spreadsheets_ListEntry/( aZend_Gdata_Spreadsheets_Extension_RowCount-' ]Zend_Gdata_Spreadsheets_Extension_Custom/& aZend_Gdata_Spreadsheets_Extension_ColCount+% YZend_Gdata_Spreadsheets_Extension_Cell*$ WZend_Gdata_Spreadsheets_DocumentQuery&# OZend_Gdata_Spreadsheets_CellQuery%" MZend_Gdata_Spreadsheets_CellFeed&! OZend_Gdata_Spreadsheets_CellEntry  -Zend_Gdata_Query   h  xW2aA]2`/\@$




q
A
				y	P	'	e.iN8oN*iV;bF$y[<vX+a/	                     e 7Zend_Ldap_Node_Schema#d IZend_Ldap_Node_Schema_OpenLdap/c aZend_Ldap_Node_Schema_ObjectClass_OpenLdap6b oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectorya AZend_Ldap_Node_Schema_Item1` eZend_Ldap_Node_Schema_AttributeType_OpenLdap8_ sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory*^ WZend_Ldap_Node_Schema_ActiveDirectory] 9Zend_Ldap_Node_RootDse$\ KZend_Ldap_Node_RootDse_OpenLdap&[ OZend_Ldap_Node_RootDse_eDirectory+Z YZend_Ldap_Node_RootDse_ActiveDirectoryY ?Zend_Ldap_Node_Collection$X KZend_Ldap_Node_ChildrenIteratorW ;Zend_Ldap_Node_AbstractV 9Zend_Ldap_Ldif_EncoderU -Zend_Ldap_FilterT ;Zend_Ldap_Filter_StringS 3Zend_Ldap_Filter_OrR 5Zend_Ldap_Filter_NotQ 7Zend_Ldap_Filter_MaskP =Zend_Ldap_Filter_LogicalO AZend_Ldap_Filter_ExceptionN 5Zend_Ldap_Filter_AndM ?Zend_Ldap_Filter_AbstractL 3Zend_Ldap_ExceptionK %Zend_Ldap_DnJ 3Zend_Ldap_Converter"I GZend_Ldap_Converter_ExceptionH 5Zend_Ldap_Collection*G WZend_Ldap_Collection_Iterator_DefaultF 3Zend_Ldap_AttributeE #Zend_LayoutD 7Zend_Layout_Exception)C UZend_Layout_Controller_Plugin_Layout0B cZend_Layout_Controller_Action_Helper_LayoutA Zend_Json@ -Zend_Json_Server? 5Zend_Json_Server_Smd!> EZend_Json_Server_Smd_Service= ?Zend_Json_Server_Response#< IZend_Json_Server_Response_Http; =Zend_Json_Server_Request": GZend_Json_Server_Request_Http9 AZend_Json_Server_Exception8 9Zend_Json_Server_Error7 9Zend_Json_Server_Cache6 )Zend_Json_Expr5 3Zend_Json_Exception4 /Zend_Json_Encoder3 /Zend_Json_Decoder2 'Zend_InfoCard-1 ]Zend_InfoCard_Xml_SecurityTokenReference0 AZend_InfoCard_Xml_Security)/ UZend_InfoCard_Xml_Security_Transform4. kZend_InfoCard_Xml_Security_Transform_XmlExcC14N3- iZend_InfoCard_Xml_Security_Transform_Exception<, {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignature)+ UZend_InfoCard_Xml_Security_Exception* ?Zend_InfoCard_Xml_KeyInfo&) OZend_InfoCard_Xml_KeyInfo_XmlDSig&( OZend_InfoCard_Xml_KeyInfo_Default'' QZend_InfoCard_Xml_KeyInfo_Abstract & CZend_InfoCard_Xml_Exception#% IZend_InfoCard_Xml_EncryptedKey$$ KZend_InfoCard_Xml_EncryptedData+# YZend_InfoCard_Xml_EncryptedData_XmlEnc-" ]Zend_InfoCard_Xml_EncryptedData_Abstract! ?Zend_InfoCard_Xml_Element   CZend_InfoCard_Xml_Assertion% MZend_InfoCard_Xml_Assertion_Saml ;Zend_InfoCard_Exception% MZend_InfoCard_Exception_Abstract 5Zend_InfoCard_Claims 5Zend_InfoCard_Cipher5 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc5 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc4 kZend_InfoCard_Cipher_Symmetric_Adapter_Abstract) UZend_InfoCard_Cipher_Pki_Adapter_Rsa. _Zend_InfoCard_Cipher_Pki_Adapter_Abstract# IZend_InfoCard_Cipher_Exception$ KZend_InfoCard_Adapter_Exception" GZend_InfoCard_Adapter_Default 3Zend_Http_UserAgent" GZend_Http_UserAgent_Validator =Zend_Http_UserAgent_Text( SZend_Http_UserAgent_Storage_Session. _Zend_Http_UserAgent_Storage_NonPersistent* WZend_Http_UserAgent_Storage_Exception =Zend_Http_UserAgent_Spam ?Zend_Http_UserAgent_Probe 
 CZend_Http_UserAgent_Offline	 AZend_Http_UserAgent_Mobile =Zend_Http_UserAgent_Feed+ YZend_Http_UserAgent_Features_Exception3 iZend_Http_UserAgent_Features_Adapter_TeraWurfl5 mZend_Http_UserAgent_Features_Adapter_DeviceAtlas2 gZend_Http_UserAgent_Features_Adapter_Browscap" GZend_Http_UserAgent_Exception ?Zend_Http_UserAgent_Email  CZend_Http_UserAgent_Desktop   CZend_Http_UserAgent_Console  CZend_Http_UserAgent_Checker~ ;Zend_Http_UserAgent_Bot   { oIsO7 yY:vV<jZ?!




q
R
&					n	F	!	\ChG#^9dJ1x]?!oQ6kC(fK2         ` -Zend_Mime_Decode_ #Zend_Memory^ /Zend_Memory_Value] 3Zend_Memory_Manager\ 7Zend_Memory_Exception[ 7Zend_Memory_Container"Z GZend_Memory_Container_Movable!Y EZend_Memory_Container_Locked!X EZend_Memory_AccessControllerW 3Zend_Measure_WeightV 3Zend_Measure_Volume%U MZend_Measure_Viscosity_Kinematic#T IZend_Measure_Viscosity_DynamicS 3Zend_Measure_TorqueR /Zend_Measure_TimeQ =Zend_Measure_TemperatureP 1Zend_Measure_SpeedO 7Zend_Measure_PressureN 1Zend_Measure_PowerM 3Zend_Measure_NumberL 9Zend_Measure_LightnessK 3Zend_Measure_LengthJ ?Zend_Measure_IlluminationI 9Zend_Measure_FrequencyH 1Zend_Measure_ForceG =Zend_Measure_Flow_VolumeF 9Zend_Measure_Flow_MoleE 9Zend_Measure_Flow_MassD 9Zend_Measure_ExceptionC 3Zend_Measure_EnergyB 5Zend_Measure_DensityA 5Zend_Measure_Current @ CZend_Measure_Cooking_Weight ? CZend_Measure_Cooking_Volume> =Zend_Measure_Capacitance= 3Zend_Measure_Binary< /Zend_Measure_Area; 1Zend_Measure_Angle: ?Zend_Measure_Acceleration9 7Zend_Measure_Abstract8 #Zend_Markup7 7Zend_Markup_TokenList6 /Zend_Markup_Token*5 WZend_Markup_Renderer_RendererAbstract4 ?Zend_Markup_Renderer_Html"3 GZend_Markup_Renderer_Html_Url#2 IZend_Markup_Renderer_Html_List"1 GZend_Markup_Renderer_Html_Img+0 YZend_Markup_Renderer_Html_HtmlAbstract#/ IZend_Markup_Renderer_Html_Code#. IZend_Markup_Renderer_Exception!- EZend_Markup_Parser_Exception, ?Zend_Markup_Parser_Bbcode+ 7Zend_Markup_Exception* Zend_Mail) =Zend_Mail_Transport_Smtp!( EZend_Mail_Transport_Sendmail' =Zend_Mail_Transport_File"& GZend_Mail_Transport_Exception!% EZend_Mail_Transport_Abstract$ /Zend_Mail_Storage'# QZend_Mail_Storage_Writable_Maildir" 9Zend_Mail_Storage_Pop3! 9Zend_Mail_Storage_Mbox  ?Zend_Mail_Storage_Maildir 9Zend_Mail_Storage_Imap =Zend_Mail_Storage_Folder" GZend_Mail_Storage_Folder_Mbox% MZend_Mail_Storage_Folder_Maildir  CZend_Mail_Storage_Exception AZend_Mail_Storage_Abstract ;Zend_Mail_Protocol_Smtp' QZend_Mail_Protocol_Smtp_Auth_Plain' QZend_Mail_Protocol_Smtp_Auth_Login) UZend_Mail_Protocol_Smtp_Auth_Crammd5 ;Zend_Mail_Protocol_Pop3 ;Zend_Mail_Protocol_Imap! EZend_Mail_Protocol_Exception  CZend_Mail_Protocol_Abstract )Zend_Mail_Part 3Zend_Mail_Part_File /Zend_Mail_Message 9Zend_Mail_Message_File 3Zend_Mail_Exception Zend_Log  CZend_Log_Writer_ZendMonitor
 9Zend_Log_Writer_Syslog	 9Zend_Log_Writer_Stream 5Zend_Log_Writer_Null 5Zend_Log_Writer_Mock 5Zend_Log_Writer_Mail ;Zend_Log_Writer_Firebug 1Zend_Log_Writer_Db =Zend_Log_Writer_Abstract 9Zend_Log_Formatter_Xml ?Zend_Log_Formatter_Simple  AZend_Log_Formatter_Firebug  CZend_Log_Formatter_Abstract~ =Zend_Log_Filter_Suppress} =Zend_Log_Filter_Priority| ;Zend_Log_Filter_Message{ =Zend_Log_Filter_Abstractz 1Zend_Log_Exceptiony #Zend_Localex -Zend_Locale_Mathw =Zend_Locale_Math_PhpMathv AZend_Locale_Math_Exceptionu 1Zend_Locale_Formatt 7Zend_Locale_Exceptions -Zend_Locale_Data!r EZend_Locale_Data_Translationq #Zend_Loader#p IZend_Loader_StandardAutoloadero =Zend_Loader_PluginLoader'n QZend_Loader_PluginLoader_Exceptionm 7Zend_Loader_Exception3l iZend_Loader_Exception_InvalidArgumentException#k IZend_Loader_ClassMapAutoloader"j GZend_Loader_AutoloaderFactoryi 9Zend_Loader_Autoloader$h KZend_Loader_Autoloader_Resourceg Zend_Ldapf )Zend_Ldap_Node   r  gJzKzQ,`;pP4




m
D
%
				y	Z	0	}`>!n[7zQ$hF)qT3uV;$}]FeJ0          "R GZend_Pdf_Destination_ExplicitQ )Zend_Pdf_ColorP 1Zend_Pdf_Color_RgbO 3Zend_Pdf_Color_HtmlN =Zend_Pdf_Color_GrayScaleM 3Zend_Pdf_Color_CmykL 'Zend_Pdf_CmapK AZend_Pdf_Cmap_TrimmedTable!J EZend_Pdf_Cmap_SegmentToDeltaI AZend_Pdf_Cmap_ByteEncoding&H OZend_Pdf_Cmap_ByteEncoding_StaticG +Zend_Pdf_CanvasF =Zend_Pdf_Canvas_AbstractE 3Zend_Pdf_AnnotationD =Zend_Pdf_Annotation_TextC AZend_Pdf_Annotation_MarkupB =Zend_Pdf_Annotation_Link'A QZend_Pdf_Annotation_FileAttachment@ +Zend_Pdf_Action? 3Zend_Pdf_Action_URI> ;Zend_Pdf_Action_Unknown= 7Zend_Pdf_Action_Trans< 9Zend_Pdf_Action_Thread; AZend_Pdf_Action_SubmitForm: 7Zend_Pdf_Action_Sound 9 CZend_Pdf_Action_SetOCGState8 ?Zend_Pdf_Action_ResetForm7 ?Zend_Pdf_Action_Rendition6 7Zend_Pdf_Action_Named5 7Zend_Pdf_Action_Movie4 9Zend_Pdf_Action_Launch3 AZend_Pdf_Action_JavaScript2 AZend_Pdf_Action_ImportData1 5Zend_Pdf_Action_Hide0 7Zend_Pdf_Action_GoToR/ 7Zend_Pdf_Action_GoToE. AZend_Pdf_Action_GoTo3DView- 5Zend_Pdf_Action_GoTo, )Zend_Paginator-+ ]Zend_Paginator_SerializableLimitIterator** WZend_Paginator_ScrollingStyle_Sliding*) WZend_Paginator_ScrollingStyle_Jumping*( WZend_Paginator_ScrollingStyle_Elastic&' OZend_Paginator_ScrollingStyle_All& =Zend_Paginator_Exception % CZend_Paginator_Adapter_Null$$ KZend_Paginator_Adapter_Iterator)# UZend_Paginator_Adapter_DbTableSelect$" KZend_Paginator_Adapter_DbSelect!! EZend_Paginator_Adapter_Array  #Zend_OpenId 5Zend_OpenId_Provider ?Zend_OpenId_Provider_User& OZend_OpenId_Provider_User_Session! EZend_OpenId_Provider_Storage& OZend_OpenId_Provider_Storage_File 7Zend_OpenId_Extension AZend_OpenId_Extension_Sreg 7Zend_OpenId_Exception 5Zend_OpenId_Consumer! EZend_OpenId_Consumer_Storage& OZend_OpenId_Consumer_Storage_File !Zend_Oauth -Zend_Oauth_Token =Zend_Oauth_Token_Request' QZend_Oauth_Token_AuthorizedRequest ;Zend_Oauth_Token_Access+ YZend_Oauth_Signature_SignatureAbstract =Zend_Oauth_Signature_Rsa# IZend_Oauth_Signature_Plaintext ?Zend_Oauth_Signature_Hmac +Zend_Oauth_Http
 ;Zend_Oauth_Http_Utility&	 OZend_Oauth_Http_UserAuthorization! EZend_Oauth_Http_RequestToken  CZend_Oauth_Http_AccessToken 5Zend_Oauth_Exception 3Zend_Oauth_Consumer /Zend_Oauth_Config /Zend_Oauth_Client +Zend_Navigation 5Zend_Navigation_Page  =Zend_Navigation_Page_Uri =Zend_Navigation_Page_Mvc~ ?Zend_Navigation_Exception} ?Zend_Navigation_Container$| KZend_Mobile_Push_Test_ApnsProxy"{ GZend_Mobile_Push_Response_Gcmz 7Zend_Mobile_Push_Mpns"y GZend_Mobile_Push_Message_Mpns(x SZend_Mobile_Push_Message_Mpns_Toast'w QZend_Mobile_Push_Message_Mpns_Tile&v OZend_Mobile_Push_Message_Mpns_Raw!u EZend_Mobile_Push_Message_Gcm't QZend_Mobile_Push_Message_Exception"s GZend_Mobile_Push_Message_Apns&r OZend_Mobile_Push_Message_Abstractq 5Zend_Mobile_Push_Gcmp AZend_Mobile_Push_Exception1o eZend_Mobile_Push_Exception_ServerUnavailable-n ]Zend_Mobile_Push_Exception_QuotaExceeded,m [Zend_Mobile_Push_Exception_InvalidTopic,l [Zend_Mobile_Push_Exception_InvalidToken3k iZend_Mobile_Push_Exception_InvalidRegistration.j _Zend_Mobile_Push_Exception_InvalidPayload0i cZend_Mobile_Push_Exception_InvalidAuthToken3h iZend_Mobile_Push_Exception_DeviceQuotaExceededg 7Zend_Mobile_Push_Apnsf ?Zend_Mobile_Push_Abstracte 7Zend_Mobile_Exceptiond Zend_Mimec )Zend_Mime_Partb /Zend_Mime_Messagea 3Zend_Mime_Exception   e  ~IcG)	fGoW2~Y8




c
:
						k	L	4		Y3}GWc+z?_<|fO-pI"               7 AZend_ProgressBar_Exception6 =Zend_ProgressBar_Adapter$5 KZend_ProgressBar_Adapter_JsPush$4 KZend_ProgressBar_Adapter_JsPull'3 QZend_ProgressBar_Adapter_Exception%2 MZend_ProgressBar_Adapter_Console1 Zend_Pdf!0 EZend_Pdf_UpdateInfoContainer/ -Zend_Pdf_Trailer. ;Zend_Pdf_Trailer_Keeper- AZend_Pdf_Trailer_Generator, +Zend_Pdf_Target+ )Zend_Pdf_Style* 7Zend_Pdf_StringParser) /Zend_Pdf_Resource( ?Zend_Pdf_Resource_Unified#' IZend_Pdf_Resource_ImageFactory& ;Zend_Pdf_Resource_Image!% EZend_Pdf_Resource_Image_Tiff $ CZend_Pdf_Resource_Image_Png!# EZend_Pdf_Resource_Image_Jpeg$" KZend_Pdf_Resource_GraphicsState! 9Zend_Pdf_Resource_Font!  EZend_Pdf_Resource_Font_Type0" GZend_Pdf_Resource_Font_Simple+ YZend_Pdf_Resource_Font_Simple_Standard8 sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats6 oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman7 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic; yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic5 mZend_Pdf_Resource_Font_Simple_Standard_TimesBold2 gZend_Pdf_Resource_Font_Simple_Standard_Symbol< {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueA Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique9 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold5 mZend_Pdf_Resource_Font_Simple_Standard_Helvetica: wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique> Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique7 qZend_Pdf_Resource_Font_Simple_Standard_CourierBold3 iZend_Pdf_Resource_Font_Simple_Standard_Courier) UZend_Pdf_Resource_Font_Simple_Parsed2 gZend_Pdf_Resource_Font_Simple_Parsed_TrueType* WZend_Pdf_Resource_Font_FontDescriptor% MZend_Pdf_Resource_Font_Extracted# IZend_Pdf_Resource_Font_CidFont,
 [Zend_Pdf_Resource_Font_CidFont_TrueType 	 CZend_Pdf_Resource_Extractor$ KZend_Pdf_Resource_ContentStream3 iZend_Pdf_RecursivelyIteratableObjectsContainer +Zend_Pdf_Parser 'Zend_Pdf_Page -Zend_Pdf_Outline ;Zend_Pdf_Outline_Loaded =Zend_Pdf_Outline_Created /Zend_Pdf_NameTree  )Zend_Pdf_Image 'Zend_Pdf_Font~ ?Zend_Pdf_Filter_RunLength } CZend_Pdf_Filter_Compression$| KZend_Pdf_Filter_Compression_Lzw&{ OZend_Pdf_Filter_Compression_Flatez =Zend_Pdf_Filter_AsciiHexy ;Zend_Pdf_Filter_Ascii85"x GZend_Pdf_FileParserDataSource)w UZend_Pdf_FileParserDataSource_String'v QZend_Pdf_FileParserDataSource_Fileu 3Zend_Pdf_FileParsert ?Zend_Pdf_FileParser_Image"s GZend_Pdf_FileParser_Image_Pngr =Zend_Pdf_FileParser_Font&q OZend_Pdf_FileParser_Font_OpenType/p aZend_Pdf_FileParser_Font_OpenType_TrueTypeo 1Zend_Pdf_Exceptionn ;Zend_Pdf_ElementFactory"m GZend_Pdf_ElementFactory_Proxyl -Zend_Pdf_Elementk ;Zend_Pdf_Element_String#j IZend_Pdf_Element_String_Binaryi ;Zend_Pdf_Element_Streamh AZend_Pdf_Element_Reference%g MZend_Pdf_Element_Reference_Table'f QZend_Pdf_Element_Reference_Contexte ;Zend_Pdf_Element_Object#d IZend_Pdf_Element_Object_Streamc =Zend_Pdf_Element_Numericb 7Zend_Pdf_Element_Nulla 7Zend_Pdf_Element_Name ` CZend_Pdf_Element_Dictionary_ =Zend_Pdf_Element_Boolean^ 9Zend_Pdf_Element_Array] 5Zend_Pdf_Destination\ ?Zend_Pdf_Destination_Zoom![ EZend_Pdf_Destination_UnknownZ AZend_Pdf_Destination_Named'Y QZend_Pdf_Destination_FitVertically&X OZend_Pdf_Destination_FitRectangle)W UZend_Pdf_Destination_FitHorizontally2V gZend_Pdf_Destination_FitBoundingBoxVertically4U kZend_Pdf_Destination_FitBoundingBoxHorizontally(T SZend_Pdf_Destination_FitBoundingBoxS =Zend_Pdf_Destination_Fit   ^  {V3iC)i>|^=jO8



`
			X	rI`1	a9_4
s8
b<](j9             8 sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy+ YZend_Search_Lucene_Search_Query_Phrase. _Zend_Search_Lucene_Search_Query_MultiTerm2 gZend_Search_Lucene_Search_Query_Insignificant* WZend_Search_Lucene_Search_Query_Fuzzy* WZend_Search_Lucene_Search_Query_Empty, [Zend_Search_Lucene_Search_Query_Boolean2 gZend_Search_Lucene_Search_Highlighter_Default: wZend_Search_Lucene_Search_BooleanExpressionRecognizer =Zend_Search_Lucene_Proxy% MZend_Search_Lucene_PriorityQueue/
 aZend_Search_Lucene_Interface_MultiSearcher%	 MZend_Search_Lucene_MultiSearcher# IZend_Search_Lucene_LockManager$ KZend_Search_Lucene_Index_Writer0 cZend_Search_Lucene_Index_TermsPriorityQueue& OZend_Search_Lucene_Index_TermInfo" GZend_Search_Lucene_Index_Term+ YZend_Search_Lucene_Index_SegmentWriter8 sZend_Search_Lucene_Index_SegmentWriter_StreamWriter: wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter+  YZend_Search_Lucene_Index_SegmentMerger) UZend_Search_Lucene_Index_SegmentInfo'~ QZend_Search_Lucene_Index_FieldInfo(} SZend_Search_Lucene_Index_DocsFilter.| _Zend_Search_Lucene_Index_DictionaryLoader!{ EZend_Search_Lucene_FSMActionz 9Zend_Search_Lucene_FSMy =Zend_Search_Lucene_Field!x EZend_Search_Lucene_Exception w CZend_Search_Lucene_Document%v MZend_Search_Lucene_Document_Xlsx%u MZend_Search_Lucene_Document_Pptx(t SZend_Search_Lucene_Document_OpenXml%s MZend_Search_Lucene_Document_Html*r WZend_Search_Lucene_Document_Exception%q MZend_Search_Lucene_Document_Docx,p [Zend_Search_Lucene_Analysis_TokenFilter6o oZend_Search_Lucene_Analysis_TokenFilter_StopWords7n qZend_Search_Lucene_Analysis_TokenFilter_ShortWords:m wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf86l oZend_Search_Lucene_Analysis_TokenFilter_LowerCase&k OZend_Search_Lucene_Analysis_Token)j UZend_Search_Lucene_Analysis_Analyzer0i cZend_Search_Lucene_Analysis_Analyzer_Common8h sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumIg Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive5f mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Fe Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive8d sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumIc Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive5b mZend_Search_Lucene_Analysis_Analyzer_Common_TextFa Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive` 7Zend_Search_Exception_ -Zend_Rest_Server^ AZend_Rest_Server_Exception] +Zend_Rest_Route\ 3Zend_Rest_Exception[ 5Zend_Rest_ControllerZ -Zend_Rest_ClientY ;Zend_Rest_Client_Result&X OZend_Rest_Client_Result_ExceptionW AZend_Rest_Client_ExceptionV 'Zend_RegistryU =Zend_Reflection_PropertyT ?Zend_Reflection_ParameterS 9Zend_Reflection_MethodR =Zend_Reflection_FunctionQ 5Zend_Reflection_FileP ?Zend_Reflection_ExtensionO ?Zend_Reflection_ExceptionN =Zend_Reflection_Docblock!M EZend_Reflection_Docblock_Tag(L SZend_Reflection_Docblock_Tag_Return'K QZend_Reflection_Docblock_Tag_ParamJ 7Zend_Reflection_ClassI !Zend_QueueH 9Zend_Queue_Stomp_FrameG ;Zend_Queue_Stomp_Client'F QZend_Queue_Stomp_Client_ConnectionE 1Zend_Queue_Message#D IZend_Queue_Message_PlatformJob C CZend_Queue_Message_IteratorB 5Zend_Queue_Exception(A SZend_Queue_Adapter_PlatformJobQueue@ ;Zend_Queue_Adapter_Null!? EZend_Queue_Adapter_Memcacheq> 7Zend_Queue_Adapter_Db = CZend_Queue_Adapter_Db_Queue"< GZend_Queue_Adapter_Db_Message; =Zend_Queue_Adapter_Array': QZend_Queue_Adapter_AdapterAbstract 9 CZend_Queue_Adapter_Activemq8 -Zend_ProgressBar   ^  U(r=])g7	{S



i
6
				}	Y	2	~bI+~Z2kCwCh@pKuM oF%                             s ?Zend_Service_Amazon_Query!r EZend_Service_Amazon_OfferSetq ?Zend_Service_Amazon_Offer&p OZend_Service_Amazon_ListmaniaListo =Zend_Service_Amazon_Itemn ?Zend_Service_Amazon_Image"m GZend_Service_Amazon_Exception(l SZend_Service_Amazon_EditorialReviewk ;Zend_Service_Amazon_Ec2+j YZend_Service_Amazon_Ec2_Securitygroups%i MZend_Service_Amazon_Ec2_Response#h IZend_Service_Amazon_Ec2_Region$g KZend_Service_Amazon_Ec2_Keypair%f MZend_Service_Amazon_Ec2_Instance-e ]Zend_Service_Amazon_Ec2_Instance_Windows.d _Zend_Service_Amazon_Ec2_Instance_Reserved"c GZend_Service_Amazon_Ec2_Image&b OZend_Service_Amazon_Ec2_Exception&a OZend_Service_Amazon_Ec2_Elasticip ` CZend_Service_Amazon_Ec2_Ebs'_ QZend_Service_Amazon_Ec2_CloudWatch.^ _Zend_Service_Amazon_Ec2_Availabilityzones%] MZend_Service_Amazon_Ec2_Abstract'\ QZend_Service_Amazon_CustomerReview'[ QZend_Service_Amazon_Authentication*Z WZend_Service_Amazon_Authentication_V2*Y WZend_Service_Amazon_Authentication_V1*X WZend_Service_Amazon_Authentication_S31W eZend_Service_Amazon_Authentication_Exception$V KZend_Service_Amazon_Accessories!U EZend_Service_Amazon_AbstractT 5Zend_Service_AkismetS 7Zend_Service_AbstractR 9Zend_Server_Reflection'Q QZend_Server_Reflection_ReturnValue%P MZend_Server_Reflection_Prototype%O MZend_Server_Reflection_Parameter N CZend_Server_Reflection_Node"M GZend_Server_Reflection_Method$L KZend_Server_Reflection_Function-K ]Zend_Server_Reflection_Function_Abstract%J MZend_Server_Reflection_Exception!I EZend_Server_Reflection_Class!H EZend_Server_Method_Prototype!G EZend_Server_Method_Parameter"F GZend_Server_Method_Definition E CZend_Server_Method_CallbackD 7Zend_Server_ExceptionC 9Zend_Server_DefinitionB /Zend_Server_CacheA 5Zend_Server_Abstract@ +Zend_Serializer? ?Zend_Serializer_Exception!> EZend_Serializer_Adapter_Wddx)= UZend_Serializer_Adapter_PythonPickle)< UZend_Serializer_Adapter_PhpSerialize$; KZend_Serializer_Adapter_PhpCode!: EZend_Serializer_Adapter_Json%9 MZend_Serializer_Adapter_Igbinary!8 EZend_Serializer_Adapter_Amf3!7 EZend_Serializer_Adapter_Amf0,6 [Zend_Serializer_Adapter_AdapterAbstract5 1Zend_Search_Lucene04 cZend_Search_Lucene_TermStreamsPriorityQueue$3 KZend_Search_Lucene_Storage_File+2 YZend_Search_Lucene_Storage_File_Memory/1 aZend_Search_Lucene_Storage_File_Filesystem)0 UZend_Search_Lucene_Storage_Directory4/ kZend_Search_Lucene_Storage_Directory_Filesystem%. MZend_Search_Lucene_Search_Weight*- WZend_Search_Lucene_Search_Weight_Term,, [Zend_Search_Lucene_Search_Weight_Phrase/+ aZend_Search_Lucene_Search_Weight_MultiTerm+* YZend_Search_Lucene_Search_Weight_Empty-) ]Zend_Search_Lucene_Search_Weight_Boolean)( UZend_Search_Lucene_Search_Similarity1' eZend_Search_Lucene_Search_Similarity_Default)& UZend_Search_Lucene_Search_QueryToken3% iZend_Search_Lucene_Search_QueryParserException1$ eZend_Search_Lucene_Search_QueryParserContext*# WZend_Search_Lucene_Search_QueryParser)" UZend_Search_Lucene_Search_QueryLexer'! QZend_Search_Lucene_Search_QueryHit)  UZend_Search_Lucene_Search_QueryEntry. _Zend_Search_Lucene_Search_QueryEntry_Term2 gZend_Search_Lucene_Search_QueryEntry_Subquery0 cZend_Search_Lucene_Search_QueryEntry_Phrase$ KZend_Search_Lucene_Search_Query- ]Zend_Search_Lucene_Search_Query_Wildcard) UZend_Search_Lucene_Search_Query_Term* WZend_Search_Lucene_Search_Query_Range2 gZend_Search_Lucene_Search_Query_Preprocessing7 qZend_Search_Lucene_Search_Query_Preprocessing_Term9 uZend_Search_Lucene_Search_Query_Preprocessing_Phrase   >  pFpG(xO1JH


@
			w	H	PLH?*,iY                                      R1 %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequestY0 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequestd/ IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequestQ. #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequestR- %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequestY, 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequestd+ IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequestQ* #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequestO) Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequestU( +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequestU' +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequestV& -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequesta% CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequestZ$ 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequestT# )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequestR" %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequestY! 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequestQ  #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequestQ #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequesta CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequestN Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformationL Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalanceJ Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool- ]Zend_Service_DeveloperGarden_LocalSearch> Zend_Service_DeveloperGarden_LocalSearch_SearchParameters7 qZend_Service_DeveloperGarden_LocalSearch_Exception, [Zend_Service_DeveloperGarden_IpLocation6 oZend_Service_DeveloperGarden_IpLocation_IpAddress+ YZend_Service_DeveloperGarden_Exception, [Zend_Service_DeveloperGarden_Credential0 cZend_Service_DeveloperGarden_ConferenceCallC Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatusC Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail< {Zend_Service_DeveloperGarden_ConferenceCall_Participant: wZend_Service_DeveloperGarden_ConferenceCall_ExceptionD 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceScheduleB Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetailC Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount- ]Zend_Service_DeveloperGarden_Client_Soap2
 gZend_Service_DeveloperGarden_Client_Exception7	 qZend_Service_DeveloperGarden_Client_ClientAbstract1 eZend_Service_DeveloperGarden_BaseUserServiceA Zend_Service_DeveloperGarden_BaseUserService_AccountBalance 9Zend_Service_Delicious& OZend_Service_Delicious_SimplePost$ KZend_Service_Delicious_PostList  CZend_Service_Delicious_Post% MZend_Service_Delicious_Exception  CZend_Service_Audioscrobbler  3Zend_Service_Amazon ;Zend_Service_Amazon_Sqs&~ OZend_Service_Amazon_Sqs_Exception!} EZend_Service_Amazon_SimpleDb*| WZend_Service_Amazon_SimpleDb_Response&{ OZend_Service_Amazon_SimpleDb_Page+z YZend_Service_Amazon_SimpleDb_Exception+y YZend_Service_Amazon_SimpleDb_Attribute'x QZend_Service_Amazon_SimilarProductw 9Zend_Service_Amazon_S3"v GZend_Service_Amazon_S3_Stream%u MZend_Service_Amazon_S3_Exception"t GZend_Service_Amazon_ResultSet   /  6}8R@w!

o
			RR8-q>*rh                                                                    f` MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponseS_ 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponseU^ +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseTypeQ] #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse[\ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseTypeW[ /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse[Z 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseTypeWY /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse\X 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseTypeXW 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponsegV OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseTypecU GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse`T AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType\S 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseZR 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseTypeVQ -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseXP 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseTypeTO )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse_N ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType[M 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseWL /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseTypeSK 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseQJ #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstractSI 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponseJH Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseTypegG OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseTypecF GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseWE /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponseUD +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponseSC 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse3B iZend_Service_DeveloperGarden_Response_BaseTypeJA Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstractC@ Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCallG? Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced=> }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallA= Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatusA< Zend_Service_DeveloperGarden_Request_SmsValidation_ValidateN; Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeywordC: Zend_Service_DeveloperGarden_Request_SmsValidation_InvalidateL9 Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbersB8 Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract97 uZend_Service_DeveloperGarden_Request_SendSms_SendSMS>6 Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS95 uZend_Service_DeveloperGarden_Request_RequestAbstractI4 Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequestE3 Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest32 iZend_Service_DeveloperGarden_Request_Exception   <  K._z,H


j
			;<SiV*[WS'n;                                     0 cZend_Service_Ebay_Finding_Response_Keywords- ]Zend_Service_Ebay_Finding_Response_Items2 gZend_Service_Ebay_Finding_Response_Histograms0 cZend_Service_Ebay_Finding_Response_Abstract/ aZend_Service_Ebay_Finding_PaginationOutput* WZend_Service_Ebay_Finding_ListingInfo( SZend_Service_Ebay_Finding_Exception, [Zend_Service_Ebay_Finding_Error_Message) UZend_Service_Ebay_Finding_Error_Data- ]Zend_Service_Ebay_Finding_Error_Data_Set' QZend_Service_Ebay_Finding_Category1 eZend_Service_Ebay_Finding_Category_Histogram5 mZend_Service_Ebay_Finding_Category_Histogram_Set; yZend_Service_Ebay_Finding_Category_Histogram_Container% MZend_Service_Ebay_Finding_Aspect) UZend_Service_Ebay_Finding_Aspect_Set5 mZend_Service_Ebay_Finding_Aspect_Histogram_Value9 uZend_Service_Ebay_Finding_Aspect_Histogram_Value_Set9
 uZend_Service_Ebay_Finding_Aspect_Histogram_Container'	 QZend_Service_Ebay_Finding_Abstract  CZend_Service_Ebay_Exception AZend_Service_Ebay_Abstract+ YZend_Service_DeveloperGarden_VoiceCall/ aZend_Service_DeveloperGarden_SmsValidation) UZend_Service_DeveloperGarden_SendSms5 mZend_Service_DeveloperGarden_SecurityTokenServer; yZend_Service_DeveloperGarden_SecurityTokenServer_CacheK Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstractL  Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponseP !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponseG~ Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponseJ} Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponseK| Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2ResponseL{ Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponseIz Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumberWy /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponseJx Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponseUw +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponseCv Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponseCu Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstractHt Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponseUs +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponseQr #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponseIq Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception;p yZend_Service_DeveloperGarden_Response_ResponseAbstractOo Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseTypeKn Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseAm Zend_Service_DeveloperGarden_Response_IpLocation_RegionTypeKl Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseTypeGk Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseLj Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationTypeIi Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType>h Zend_Service_DeveloperGarden_Response_IpLocation_CityType4g kZend_Service_DeveloperGarden_Response_ExceptionTf )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse[e 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponsefd MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponseSc 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponseTb )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse[a 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponse   [  sGoQ0c<zR$jF



\
(				q	J	#	jF].J&oD%vEh?e8i0                                                           5w mZend_Service_WindowsAzure_CommandLine_Deployment6v oZend_Service_WindowsAzure_CommandLine_Certificateu 5Zend_Service_Twitter t CZend_Service_Twitter_Search#s IZend_Service_Twitter_Exceptionr ;Zend_Service_Technorati#q IZend_Service_Technorati_Weblog"p GZend_Service_Technorati_Utils*o WZend_Service_Technorati_TagsResultSet'n QZend_Service_Technorati_TagsResult)m UZend_Service_Technorati_TagResultSet&l OZend_Service_Technorati_TagResult,k [Zend_Service_Technorati_SearchResultSet)j UZend_Service_Technorati_SearchResult&i OZend_Service_Technorati_ResultSet#h IZend_Service_Technorati_Result*g WZend_Service_Technorati_KeyInfoResult*f WZend_Service_Technorati_GetInfoResult&e OZend_Service_Technorati_Exception1d eZend_Service_Technorati_DailyCountsResultSet.c _Zend_Service_Technorati_DailyCountsResult,b [Zend_Service_Technorati_CosmosResultSet)a UZend_Service_Technorati_CosmosResult+` YZend_Service_Technorati_BlogInfoResult#_ IZend_Service_Technorati_Author^ ;Zend_Service_StrikeIron(] SZend_Service_StrikeIron_ZipCodeInfo2\ gZend_Service_StrikeIron_USAddressVerification-[ ]Zend_Service_StrikeIron_SalesUseTaxBasic&Z OZend_Service_StrikeIron_Exception&Y OZend_Service_StrikeIron_Decorator!X EZend_Service_StrikeIron_Base;W yZend_Service_SqlAzure_Management_ServiceEntityAbstract4V kZend_Service_SqlAzure_Management_ServerInstance:U wZend_Service_SqlAzure_Management_FirewallRuleInstance/T aZend_Service_SqlAzure_Management_Exception,S [Zend_Service_SqlAzure_Management_Client$R KZend_Service_SqlAzure_ExceptionQ ;Zend_Service_SlideShare&P OZend_Service_SlideShare_SlideShow&O OZend_Service_SlideShare_Exception%N MZend_Service_ShortUrl_TinyUrlCom&M OZend_Service_ShortUrl_MetamarkNet!L EZend_Service_ShortUrl_JdemCzK AZend_Service_ShortUrl_IsGd$J KZend_Service_ShortUrl_Exception I CZend_Service_ShortUrl_BitLy,H [Zend_Service_ShortUrl_AbstractShortenerG 9Zend_Service_ReCaptcha$F KZend_Service_ReCaptcha_Response$E KZend_Service_ReCaptcha_MailHide.D _Zend_Service_ReCaptcha_MailHide_Exception%C MZend_Service_ReCaptcha_Exception#B IZend_Service_Rackspace_Servers5A mZend_Service_Rackspace_Servers_SharedIpGroupList1@ eZend_Service_Rackspace_Servers_SharedIpGroup.? _Zend_Service_Rackspace_Servers_ServerList*> WZend_Service_Rackspace_Servers_Server-= ]Zend_Service_Rackspace_Servers_ImageList)< UZend_Service_Rackspace_Servers_Image-; ]Zend_Service_Rackspace_Servers_Exception!: EZend_Service_Rackspace_Files,9 [Zend_Service_Rackspace_Files_ObjectList(8 SZend_Service_Rackspace_Files_Object+7 YZend_Service_Rackspace_Files_Exception/6 aZend_Service_Rackspace_Files_ContainerList+5 YZend_Service_Rackspace_Files_Container%4 MZend_Service_Rackspace_Exception$3 KZend_Service_Rackspace_Abstract2 7Zend_Service_Nirvanix#1 IZend_Service_Nirvanix_Response)0 UZend_Service_Nirvanix_Namespace_Imfs)/ UZend_Service_Nirvanix_Namespace_Base$. KZend_Service_Nirvanix_Exception- 7Zend_Service_LiveDocx$, KZend_Service_LiveDocx_MailMerge$+ KZend_Service_LiveDocx_Exception* 3Zend_Service_Flickr") GZend_Service_Flickr_ResultSet( AZend_Service_Flickr_Result' ?Zend_Service_Flickr_Image& 9Zend_Service_Exception% ?Zend_Service_Ebay_Finding)$ UZend_Service_Ebay_Finding_Storefront+# YZend_Service_Ebay_Finding_ShippingInfo+" YZend_Service_Ebay_Finding_Set_Abstract,! [Zend_Service_Ebay_Finding_SellingStatus)  UZend_Service_Ebay_Finding_SellerInfo, [Zend_Service_Ebay_Finding_Search_Result* WZend_Service_Ebay_Finding_Search_Item. _Zend_Service_Ebay_Finding_Search_Item_Set   C  *
_(r+H	l!


c
.			z	ALK~:Oq<e.Vy?              #: IZend_Service_Yahoo_ImageResult9 =Zend_Service_Yahoo_Image&8 OZend_Service_WindowsAzure_Storage47 kZend_Service_WindowsAzure_Storage_TableInstance76 qZend_Service_WindowsAzure_Storage_TableEntityQuery25 gZend_Service_WindowsAzure_Storage_TableEntity,4 [Zend_Service_WindowsAzure_Storage_Table<3 {Zend_Service_WindowsAzure_Storage_StorageEntityAbstract72 qZend_Service_WindowsAzure_Storage_SignedIdentifier31 iZend_Service_WindowsAzure_Storage_QueueMessage40 kZend_Service_WindowsAzure_Storage_QueueInstance,/ [Zend_Service_WindowsAzure_Storage_Queue9. uZend_Service_WindowsAzure_Storage_PageRegionInstance4- kZend_Service_WindowsAzure_Storage_LeaseInstance9, uZend_Service_WindowsAzure_Storage_DynamicTableEntity3+ iZend_Service_WindowsAzure_Storage_BlobInstance4* kZend_Service_WindowsAzure_Storage_BlobContainer+) YZend_Service_WindowsAzure_Storage_Blob2( gZend_Service_WindowsAzure_Storage_Blob_Stream;' yZend_Service_WindowsAzure_Storage_BatchStorageAbstract,& [Zend_Service_WindowsAzure_Storage_Batch-% ]Zend_Service_WindowsAzure_SessionHandler>$ Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract1# eZend_Service_WindowsAzure_RetryPolicy_RetryN2" gZend_Service_WindowsAzure_RetryPolicy_NoRetry4! kZend_Service_WindowsAzure_RetryPolicy_ExceptionH  Zend_Service_WindowsAzure_Management_SubscriptionOperationInstanceA Zend_Service_WindowsAzure_Management_StorageServiceInstance@ Zend_Service_WindowsAzure_Management_ServiceEntityAbstractB Zend_Service_WindowsAzure_Management_OperationStatusInstanceB Zend_Service_WindowsAzure_Management_OperatingSystemInstanceH Zend_Service_WindowsAzure_Management_OperatingSystemFamilyInstance: wZend_Service_WindowsAzure_Management_LocationInstance@ Zend_Service_WindowsAzure_Management_HostedServiceInstance3 iZend_Service_WindowsAzure_Management_Exception< {Zend_Service_WindowsAzure_Management_DeploymentInstance0 cZend_Service_WindowsAzure_Management_Client= }Zend_Service_WindowsAzure_Management_CertificateInstance@ Zend_Service_WindowsAzure_Management_AffinityGroupInstance6 oZend_Service_WindowsAzure_Log_Writer_WindowsAzure9 uZend_Service_WindowsAzure_Log_Formatter_WindowsAzure( SZend_Service_WindowsAzure_ExceptionJ Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscription2 gZend_Service_WindowsAzure_Diagnostics_Manager3 iZend_Service_WindowsAzure_Diagnostics_LogLevel4 kZend_Service_WindowsAzure_Diagnostics_ExceptionN Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscriptionH Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLogL
 Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCountersK	 Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstract< {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogsA Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstanceD 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectoriesU +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogsD 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSources8 sZend_Service_WindowsAzure_Credentials_SharedKeyLite4 kZend_Service_WindowsAzure_Credentials_SharedKeyA Zend_Service_WindowsAzure_Credentials_SharedAccessSignature4  kZend_Service_WindowsAzure_Credentials_Exception> Zend_Service_WindowsAzure_Credentials_CredentialsAbstract2~ gZend_Service_WindowsAzure_CommandLine_Storage2} gZend_Service_WindowsAzure_CommandLine_Service| !Scaffolder{ SampleWz /Zend_Service_WindowsAzure_CommandLine_PackageScaffolder_PackageScaffolderAbstract2y gZend_Service_WindowsAzure_CommandLine_PackageDx 	Zend_Service_WindowsAzure_CommandLine_GetAsynchronousOperation   f  ~X/
lH"wY;Z<fN.


z
Q

					w	S	-	mW=(|OrF`0nV;z[B$
uJ!7                              C  Zend_Tool_Framework_Client_Console_ResponseDecorator_BlockizeF Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter0 cZend_Tool_Framework_Client_Console_Manifest2 gZend_Tool_Framework_Client_Console_HelpSystem6 oZend_Tool_Framework_Client_Console_ArgumentParser& OZend_Tool_Framework_Client_Config( SZend_Tool_Framework_Client_Abstract* WZend_Tool_Framework_Action_Repository) UZend_Tool_Framework_Action_Exception$ KZend_Tool_Framework_Action_Base 'Zend_TimeSync 1Zend_TimeSync_Sntp 9Zend_TimeSync_Protocol /Zend_TimeSync_Ntp ;Zend_TimeSync_Exception +Zend_Text_Table 3Zend_Text_Table_Row ?Zend_Text_Table_Exception& OZend_Text_Table_Decorator_Unicode$ KZend_Text_Table_Decorator_Ascii 9Zend_Text_Table_Column 3Zend_Text_MultiByte
 -Zend_Text_Figlet	 AZend_Text_Figlet_Exception 3Zend_Text_Exception& OZend_Test_PHPUnit_Db_SimpleTester, [Zend_Test_PHPUnit_Db_Operation_Truncate* WZend_Test_PHPUnit_Db_Operation_Insert- ]Zend_Test_PHPUnit_Db_Operation_DeleteAll* WZend_Test_PHPUnit_Db_Metadata_Generic# IZend_Test_PHPUnit_Db_Exception, [Zend_Test_PHPUnit_Db_DataSet_QueryTable.  _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet0 cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet)~ UZend_Test_PHPUnit_Db_DataSet_DbTable*} WZend_Test_PHPUnit_Db_DataSet_DbRowset$| KZend_Test_PHPUnit_Db_Connection'{ QZend_Test_PHPUnit_DatabaseTestCase)z UZend_Test_PHPUnit_ControllerTestCase0y cZend_Test_PHPUnit_Constraint_ResponseHeader*x WZend_Test_PHPUnit_Constraint_Redirect+w YZend_Test_PHPUnit_Constraint_Exception*v WZend_Test_PHPUnit_Constraint_DomQueryu 7Zend_Test_DbStatementt 3Zend_Test_DbAdapters /Zend_Tag_ItemListr 'Zend_Tag_Itemq 1Zend_Tag_Exceptionp )Zend_Tag_Cloudo =Zend_Tag_Cloud_Exception!n EZend_Tag_Cloud_Decorator_Tag%m MZend_Tag_Cloud_Decorator_HtmlTag'l QZend_Tag_Cloud_Decorator_HtmlCloud'k QZend_Tag_Cloud_Decorator_Exception#j IZend_Tag_Cloud_Decorator_Cloud!i EZend_Stdlib_SplPriorityQueueh -SplPriorityQueueg ?Zend_Stdlib_PriorityQueue3f iZend_Stdlib_Exception_InvalidCallbackException e CZend_Stdlib_CallbackHandlerd )Zend_Soap_Wsdl/c aZend_Soap_Wsdl_Strategy_DefaultComplexType&b OZend_Soap_Wsdl_Strategy_Composite0a cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence/` aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex$_ KZend_Soap_Wsdl_Strategy_AnyType%^ MZend_Soap_Wsdl_Strategy_Abstract] =Zend_Soap_Wsdl_Exception\ -Zend_Soap_Server[ 9Zend_Soap_Server_ProxyZ AZend_Soap_Server_ExceptionY -Zend_Soap_ClientX 9Zend_Soap_Client_LocalW AZend_Soap_Client_ExceptionV ;Zend_Soap_Client_DotNetU ;Zend_Soap_Client_CommonT 9Zend_Soap_AutoDiscover%S MZend_Soap_AutoDiscover_ExceptionR %Zend_Session)Q UZend_Session_Validator_HttpUserAgent$P KZend_Session_Validator_Abstract'O QZend_Session_SaveHandler_Exception%N MZend_Session_SaveHandler_DbTableM 9Zend_Session_NamespaceL 9Zend_Session_ExceptionK 7Zend_Session_AbstractJ 1Zend_Service_Yahoo$I KZend_Service_Yahoo_WebResultSet!H EZend_Service_Yahoo_WebResult&G OZend_Service_Yahoo_VideoResultSet#F IZend_Service_Yahoo_VideoResult!E EZend_Service_Yahoo_ResultSetD ?Zend_Service_Yahoo_Result)C UZend_Service_Yahoo_PageDataResultSet&B OZend_Service_Yahoo_PageDataResult%A MZend_Service_Yahoo_NewsResultSet"@ GZend_Service_Yahoo_NewsResult&? OZend_Service_Yahoo_LocalResultSet#> IZend_Service_Yahoo_LocalResult+= YZend_Service_Yahoo_InlinkDataResultSet(< SZend_Service_Yahoo_InlinkDataResult&; OZend_Service_Yahoo_ImageResultSet   M  rHj?oE zFT*



z
K
				k	@	t6 p:	i&SQ~NV|J                    1m eZend_Tool_Project_Context_Zf_ModuleDirectory1l eZend_Tool_Project_Context_Zf_ModelsDirectory+k YZend_Tool_Project_Context_Zf_ModelFile/j aZend_Tool_Project_Context_Zf_LogsDirectory2i gZend_Tool_Project_Context_Zf_LocalesDirectory2h gZend_Tool_Project_Context_Zf_LibraryDirectory2g gZend_Tool_Project_Context_Zf_LayoutsDirectory8f sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory2e gZend_Tool_Project_Context_Zf_LayoutScriptFile.d _Zend_Tool_Project_Context_Zf_HtaccessFile0c cZend_Tool_Project_Context_Zf_FormsDirectory*b WZend_Tool_Project_Context_Zf_FormFile/a aZend_Tool_Project_Context_Zf_DocsDirectory-` ]Zend_Tool_Project_Context_Zf_DbTableFile2_ gZend_Tool_Project_Context_Zf_DbTableDirectory/^ aZend_Tool_Project_Context_Zf_DataDirectory6] oZend_Tool_Project_Context_Zf_ControllersDirectory0\ cZend_Tool_Project_Context_Zf_ControllerFile2[ gZend_Tool_Project_Context_Zf_ConfigsDirectory,Z [Zend_Tool_Project_Context_Zf_ConfigFile0Y cZend_Tool_Project_Context_Zf_CacheDirectory/X aZend_Tool_Project_Context_Zf_BootstrapFile6W oZend_Tool_Project_Context_Zf_ApplicationDirectory7V qZend_Tool_Project_Context_Zf_ApplicationConfigFile/U aZend_Tool_Project_Context_Zf_ApisDirectory.T _Zend_Tool_Project_Context_Zf_ActionMethod3S iZend_Tool_Project_Context_Zf_AbstractClassFile@R Zend_Tool_Project_Context_System_ProjectProvidersDirectory8Q sZend_Tool_Project_Context_System_ProjectProfileFile6P oZend_Tool_Project_Context_System_ProjectDirectory)O UZend_Tool_Project_Context_Repository.N _Zend_Tool_Project_Context_Filesystem_File3M iZend_Tool_Project_Context_Filesystem_Directory2L gZend_Tool_Project_Context_Filesystem_Abstract(K SZend_Tool_Project_Context_Exception-J ]Zend_Tool_Project_Context_Content_Engine3I iZend_Tool_Project_Context_Content_Engine_Phtml;H yZend_Tool_Project_Context_Content_Engine_CodeGenerator0G cZend_Tool_Framework_System_Provider_Version0F cZend_Tool_Framework_System_Provider_Phpinfo1E eZend_Tool_Framework_System_Provider_Manifest/D aZend_Tool_Framework_System_Provider_Config(C SZend_Tool_Framework_System_Manifest-B ]Zend_Tool_Framework_System_Action_Delete-A ]Zend_Tool_Framework_System_Action_Create!@ EZend_Tool_Framework_Registry+? YZend_Tool_Framework_Registry_Exception+> YZend_Tool_Framework_Provider_Signature,= [Zend_Tool_Framework_Provider_Repository+< YZend_Tool_Framework_Provider_Exception*; WZend_Tool_Framework_Provider_Abstract&: OZend_Tool_Framework_Metadata_Tool)9 UZend_Tool_Framework_Metadata_Dynamic'8 QZend_Tool_Framework_Metadata_Basic,7 [Zend_Tool_Framework_Manifest_Repository26 gZend_Tool_Framework_Manifest_ProviderMetadata*5 WZend_Tool_Framework_Manifest_Metadata+4 YZend_Tool_Framework_Manifest_Exception03 cZend_Tool_Framework_Manifest_ActionMetadata12 eZend_Tool_Framework_Loader_IncludePathLoaderJ1 Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator+0 YZend_Tool_Framework_Loader_BasicLoader(/ SZend_Tool_Framework_Loader_Abstract". GZend_Tool_Framework_Exception'- QZend_Tool_Framework_Client_Storage1, eZend_Tool_Framework_Client_Storage_Directory(+ SZend_Tool_Framework_Client_ResponseD* 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator') QZend_Tool_Framework_Client_Request(( SZend_Tool_Framework_Client_Manifest9' uZend_Tool_Framework_Client_Interactive_InputResponse8& sZend_Tool_Framework_Client_Interactive_InputRequest8% sZend_Tool_Framework_Client_Interactive_InputHandler)$ UZend_Tool_Framework_Client_Exception'# QZend_Tool_Framework_Client_ConsoleD" 	Zend_Tool_Framework_Client_Console_ResponseDecorator_IndentionD! 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizer   T  _%w<YPQ


c
0			~	E	gDq=b4^5
e3yW6lO9
yU&         !A EZend_Validate_Barcode_Code93$@ KZend_Validate_Barcode_Code39ext!? EZend_Validate_Barcode_Code39,> [Zend_Validate_Barcode_Code25interleaved!= EZend_Validate_Barcode_Code25*< WZend_Validate_Barcode_AdapterAbstract; 3Zend_Validate_Alpha: 3Zend_Validate_Alnum9 9Zend_Validate_Abstract8 Zend_Uri7 'Zend_Uri_Http6 1Zend_Uri_Exception5 )Zend_Translate4 7Zend_Translate_Plural3 =Zend_Translate_Exception2 9Zend_Translate_Adapter!1 EZend_Translate_Adapter_XmlTm!0 EZend_Translate_Adapter_Xliff/ AZend_Translate_Adapter_Tmx. AZend_Translate_Adapter_Tbx- ?Zend_Translate_Adapter_Qt, AZend_Translate_Adapter_Ini#+ IZend_Translate_Adapter_Gettext* AZend_Translate_Adapter_Csv!) EZend_Translate_Adapter_Array$( KZend_Tool_Project_Provider_View$' KZend_Tool_Project_Provider_Test/& aZend_Tool_Project_Provider_ProjectProvider'% QZend_Tool_Project_Provider_Project'$ QZend_Tool_Project_Provider_Profile&# OZend_Tool_Project_Provider_Module%" MZend_Tool_Project_Provider_Model(! SZend_Tool_Project_Provider_Manifest&  OZend_Tool_Project_Provider_Layout$ KZend_Tool_Project_Provider_Form) UZend_Tool_Project_Provider_Exception' QZend_Tool_Project_Provider_DbTable) UZend_Tool_Project_Provider_DbAdapter* WZend_Tool_Project_Provider_Controller+ YZend_Tool_Project_Provider_Application& OZend_Tool_Project_Provider_Action( SZend_Tool_Project_Provider_Abstract ?Zend_Tool_Project_Profile' QZend_Tool_Project_Profile_Resource9 uZend_Tool_Project_Profile_Resource_SearchConstraints1 eZend_Tool_Project_Profile_Resource_Container= }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter5 mZend_Tool_Project_Profile_Iterator_ContextFilter- ]Zend_Tool_Project_Profile_FileParser_Xml( SZend_Tool_Project_Profile_Exception  CZend_Tool_Project_Exception< {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory0 cZend_Tool_Project_Context_Zf_ViewsDirectory6 oZend_Tool_Project_Context_Zf_ViewScriptsDirectory0 cZend_Tool_Project_Context_Zf_ViewScriptFile6
 oZend_Tool_Project_Context_Zf_ViewHelpersDirectory6	 oZend_Tool_Project_Context_Zf_ViewFiltersDirectoryA Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory2 gZend_Tool_Project_Context_Zf_UploadsDirectory0 cZend_Tool_Project_Context_Zf_TestsDirectory7 qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile: wZend_Tool_Project_Context_Zf_TestPHPUnitBootstrapFile@ Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory1 eZend_Tool_Project_Context_Zf_TestLibraryFile6 oZend_Tool_Project_Context_Zf_TestLibraryDirectory:  wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFileB Zend_Tool_Project_Context_Zf_TestApplicationModulesDirectoryA~ Zend_Tool_Project_Context_Zf_TestApplicationModuleDirectory:} wZend_Tool_Project_Context_Zf_TestApplicationDirectory@| Zend_Tool_Project_Context_Zf_TestApplicationControllerFileE{ Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory>z Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile=y }Zend_Tool_Project_Context_Zf_TestApplicationActionMethod4x kZend_Tool_Project_Context_Zf_TemporaryDirectory3w iZend_Tool_Project_Context_Zf_SessionsDirectory3v iZend_Tool_Project_Context_Zf_ServicesDirectory8u sZend_Tool_Project_Context_Zf_SearchIndexesDirectory<t {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory8s sZend_Tool_Project_Context_Zf_PublicScriptsDirectory1r eZend_Tool_Project_Context_Zf_PublicIndexFile7q qZend_Tool_Project_Context_Zf_PublicImagesDirectory1p eZend_Tool_Project_Context_Zf_PublicDirectory5o mZend_Tool_Project_Context_Zf_ProjectProviderFile2n gZend_Tool_Project_Context_Zf_ModulesDirectory   s pM+	{T'sL*sS9oO/



q
R
.
					a	B	!pQ4rW/
x^C"`?"rO-yW4hE#wV0                             "4 GZend_View_Helper_InlineScript#3 IZend_View_Helper_HtmlQuicktime2 ?Zend_View_Helper_HtmlPage 1 CZend_View_Helper_HtmlObject0 ?Zend_View_Helper_HtmlList/ AZend_View_Helper_HtmlFlash!. EZend_View_Helper_HtmlElement- AZend_View_Helper_HeadTitle, AZend_View_Helper_HeadStyle + CZend_View_Helper_HeadScript* ?Zend_View_Helper_HeadMeta) ?Zend_View_Helper_HeadLink( ?Zend_View_Helper_Gravatar"' GZend_View_Helper_FormTextarea& ?Zend_View_Helper_FormText % CZend_View_Helper_FormSubmit $ CZend_View_Helper_FormSelect# AZend_View_Helper_FormReset" AZend_View_Helper_FormRadio"! GZend_View_Helper_FormPassword  ?Zend_View_Helper_FormNote' QZend_View_Helper_FormMultiCheckbox AZend_View_Helper_FormLabel AZend_View_Helper_FormImage  CZend_View_Helper_FormHidden ?Zend_View_Helper_FormFile  CZend_View_Helper_FormErrors! EZend_View_Helper_FormElement" GZend_View_Helper_FormCheckbox  CZend_View_Helper_FormButton 7Zend_View_Helper_Form ?Zend_View_Helper_Fieldset =Zend_View_Helper_Doctype! EZend_View_Helper_DeclareVars 9Zend_View_Helper_Cycle ?Zend_View_Helper_Currency =Zend_View_Helper_BaseUrl ;Zend_View_Helper_Action ?Zend_View_Helper_Abstract 3Zend_View_Exception 1Zend_View_Abstract %Zend_Version
 'Zend_Validate	 AZend_Validate_StringLength# IZend_Validate_Sitemap_Priority ?Zend_Validate_Sitemap_Loc" GZend_Validate_Sitemap_Lastmod% MZend_Validate_Sitemap_Changefreq 3Zend_Validate_Regex 9Zend_Validate_PostCode 9Zend_Validate_NotEmpty 9Zend_Validate_LessThan  7Zend_Validate_Ldap_Dn 1Zend_Validate_Isbn~ -Zend_Validate_Ip} /Zend_Validate_Int| 7Zend_Validate_InArray{ ;Zend_Validate_Identicalz 1Zend_Validate_Ibany 9Zend_Validate_Hostnamex /Zend_Validate_Hexw ?Zend_Validate_GreaterThanv 3Zend_Validate_Float!u EZend_Validate_File_WordCountt ?Zend_Validate_File_Uploads ;Zend_Validate_File_Sizer ;Zend_Validate_File_Sha1!q EZend_Validate_File_NotExists p CZend_Validate_File_MimeTypeo 9Zend_Validate_File_Md5n AZend_Validate_File_IsImage$m KZend_Validate_File_IsCompressed!l EZend_Validate_File_ImageSizek ;Zend_Validate_File_Hash!j EZend_Validate_File_FilesSize!i EZend_Validate_File_Extensionh ?Zend_Validate_File_Exists'g QZend_Validate_File_ExcludeMimeType(f SZend_Validate_File_ExcludeExtensione =Zend_Validate_File_Crc32d =Zend_Validate_File_Countc ;Zend_Validate_Exceptionb AZend_Validate_EmailAddressa 5Zend_Validate_Digits"` GZend_Validate_Db_RecordExists$_ KZend_Validate_Db_NoRecordExists^ ?Zend_Validate_Db_Abstract] 1Zend_Validate_Date\ =Zend_Validate_CreditCard[ 3Zend_Validate_CcnumZ 9Zend_Validate_CallbackY 7Zend_Validate_BetweenX 7Zend_Validate_BarcodeW AZend_Validate_Barcode_UpceV AZend_Validate_Barcode_UpcaU AZend_Validate_Barcode_Sscc$T KZend_Validate_Barcode_Royalmail"S GZend_Validate_Barcode_Postnet!R EZend_Validate_Barcode_Planet#Q IZend_Validate_Barcode_Leitcode P CZend_Validate_Barcode_Itf14O AZend_Validate_Barcode_Issn*N WZend_Validate_Barcode_IntelligentMail$M KZend_Validate_Barcode_Identcode!L EZend_Validate_Barcode_Gtin14!K EZend_Validate_Barcode_Gtin13!J EZend_Validate_Barcode_Gtin12I AZend_Validate_Barcode_Ean8H AZend_Validate_Barcode_Ean5G AZend_Validate_Barcode_Ean2 F CZend_Validate_Barcode_Ean18 E CZend_Validate_Barcode_Ean14 D CZend_Validate_Barcode_Ean13 C CZend_Validate_Barcode_Ean12$B KZend_Validate_Barcode_Code93ext   l  c:pP,V`>" c2



p
B
					u	F	fB"c?|\<#	jH%]7xR1lJ*Q$                      ,  [Zend_Amf_Value_Messaging_CommandMessage* WZend_Amf_Value_Messaging_AsyncMessage- ]Zend_Amf_Value_Messaging_ArrayCollection0 cZend_Amf_Value_Messaging_AcknowledgeMessage- ]Zend_Amf_Value_Messaging_AbstractMessage! EZend_Amf_Value_MessageHeader AZend_Amf_Value_MessageBody =Zend_Amf_Value_ByteArray AZend_Amf_Util_BinaryStream +Zend_Amf_Server ?Zend_Amf_Server_Exception /Zend_Amf_Response 9Zend_Amf_Response_Http -Zend_Amf_Request 7Zend_Amf_Request_Http ?Zend_Amf_Parse_TypeLoader ?Zend_Amf_Parse_Serializer# IZend_Amf_Parse_Resource_Stream( SZend_Amf_Parse_Resource_MysqlResult) UZend_Amf_Parse_Resource_MysqliResult  CZend_Amf_Parse_OutputStream AZend_Amf_Parse_InputStream 
 CZend_Amf_Parse_Deserializer#	 IZend_Amf_Parse_Amf3_Serializer% MZend_Amf_Parse_Amf3_Deserializer# IZend_Amf_Parse_Amf0_Serializer% MZend_Amf_Parse_Amf0_Deserializer 1Zend_Amf_Exception 1Zend_Amf_Constants 9Zend_Amf_Auth_Abstract  CZend_Amf_Adobe_Introspector AZend_Amf_Adobe_DbInspector  3Zend_Amf_Adobe_Auth Zend_Acl~ 'Zend_Acl_Role} 9Zend_Acl_Role_Registry%| MZend_Acl_Role_Registry_Exception{ /Zend_Acl_Resourcez 1Zend_Acl_Exceptiony /Zend_XmlRpc_Valuex =Zend_XmlRpc_Value_Structw =Zend_XmlRpc_Value_Stringv =Zend_XmlRpc_Value_Scalaru 7Zend_XmlRpc_Value_Nilt ?Zend_XmlRpc_Value_Integer s CZend_XmlRpc_Value_Exceptionr =Zend_XmlRpc_Value_Doubleq AZend_XmlRpc_Value_DateTime!p EZend_XmlRpc_Value_Collectiono ?Zend_XmlRpc_Value_Boolean!n EZend_XmlRpc_Value_BigIntegerm =Zend_XmlRpc_Value_Base64l ;Zend_XmlRpc_Value_Arrayk 1Zend_XmlRpc_Serverj ?Zend_XmlRpc_Server_Systemi =Zend_XmlRpc_Server_Fault!h EZend_XmlRpc_Server_Exceptiong =Zend_XmlRpc_Server_Cachef 5Zend_XmlRpc_Responsee ?Zend_XmlRpc_Response_Httpd 3Zend_XmlRpc_Requestc ?Zend_XmlRpc_Request_Stdinb =Zend_XmlRpc_Request_Http$a KZend_XmlRpc_Generator_XmlWriter,` [Zend_XmlRpc_Generator_GeneratorAbstract&_ OZend_XmlRpc_Generator_DomDocument^ /Zend_XmlRpc_Fault] 7Zend_XmlRpc_Exception\ 1Zend_XmlRpc_Client#[ IZend_XmlRpc_Client_ServerProxy+Z YZend_XmlRpc_Client_ServerIntrospection+Y YZend_XmlRpc_Client_IntrospectException%X MZend_XmlRpc_Client_HttpException&W OZend_XmlRpc_Client_FaultException!V EZend_XmlRpc_Client_Exception&U OZend_Wildfire_Protocol_JsonStream!T EZend_Wildfire_Plugin_FirePhp.S _Zend_Wildfire_Plugin_FirePhp_TableMessage)R UZend_Wildfire_Plugin_FirePhp_MessageQ ;Zend_Wildfire_Exception&P OZend_Wildfire_Channel_HttpHeadersO Zend_ViewN -Zend_View_StreamM AZend_View_Helper_UserAgentL 5Zend_View_Helper_UrlK AZend_View_Helper_TranslateJ =Zend_View_Helper_TinySrcI AZend_View_Helper_ServerUrl)H UZend_View_Helper_RenderToPlaceholder!G EZend_View_Helper_Placeholder*F WZend_View_Helper_Placeholder_Registry4E kZend_View_Helper_Placeholder_Registry_Exception+D YZend_View_Helper_Placeholder_Container6C oZend_View_Helper_Placeholder_Container_Standalone5B mZend_View_Helper_Placeholder_Container_Exception4A kZend_View_Helper_Placeholder_Container_Abstract!@ EZend_View_Helper_PartialLoop? =Zend_View_Helper_Partial'> QZend_View_Helper_Partial_Exception'= QZend_View_Helper_PaginationControl < CZend_View_Helper_Navigation(; SZend_View_Helper_Navigation_Sitemap%: MZend_View_Helper_Navigation_Menu&9 OZend_View_Helper_Navigation_Links/8 aZend_View_Helper_Navigation_HelperAbstract,7 [Zend_View_Helper_Navigation_Breadcrumbs6 ;Zend_View_Helper_Layout5 7Zend_View_Helper_Json   X  xM]<i=lC{Z/



{
D
				Z	2		|?SNN b0W8c@!`=                    ! EZend_Cache_Backend_Interface) UZend_Cache_Backend_ExtendedInterface  CZend_Auth_Storage_Interface  CZend_Auth_Adapter_Interface. _Zend_Auth_Adapter_Http_Resolver_Interface' QZend_Application_Resource_Resource4 kZend_Application_Bootstrap_ResourceBootstrapper, [Zend_Application_Bootstrap_Bootstrapper ;Zend_Acl_Role_Interface 
 CZend_Acl_Resource_Interface	 ?Zend_Acl_Assert_Interface# IZend_Wildfire_Plugin_Interface$ KZend_Wildfire_Channel_Interface 3Zend_View_Interface' QZend_View_Helper_Navigation_Helper AZend_View_Helper_Interface ;Zend_Validate_Interface+ YZend_Validate_Barcode_AdapterInterface3 iZend_Tool_Project_Profile_FileParser_Interface:  wZend_Tool_Project_Context_System_TopLevelRestrictable5 mZend_Tool_Project_Context_System_NotOverwritable/~ aZend_Tool_Project_Context_System_Interface(} SZend_Tool_Project_Context_Interface+| YZend_Tool_Framework_Registry_Interface2{ gZend_Tool_Framework_Registry_EnabledInterface-z ]Zend_Tool_Framework_Provider_Pretendable+y YZend_Tool_Framework_Provider_Interface.x _Zend_Tool_Framework_Provider_Interactable/w aZend_Tool_Framework_Provider_Initializable;v yZend_Tool_Framework_Provider_DocblockManifestInterface+u YZend_Tool_Framework_Metadata_Interface.t _Zend_Tool_Framework_Metadata_Attributable6s oZend_Tool_Framework_Manifest_ProviderManifestable6r oZend_Tool_Framework_Manifest_MetadataManifestable+q YZend_Tool_Framework_Manifest_Interface+p YZend_Tool_Framework_Manifest_Indexable4o kZend_Tool_Framework_Manifest_ActionManifestable)n UZend_Tool_Framework_Loader_Interface8m sZend_Tool_Framework_Client_Storage_AdapterInterfaceDl 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface;k yZend_Tool_Framework_Client_Interactive_OutputInterface:j wZend_Tool_Framework_Client_Interactive_InputInterface)i UZend_Tool_Framework_Action_Interface(h SZend_Text_Table_Decorator_Interfaceg /Zend_Tag_Taggablef 7Zend_Stdlib_Exception&e OZend_Soap_Wsdl_Strategy_Interface%d MZend_Session_Validator_Interface'c QZend_Session_SaveHandler_Interface$b KZend_Service_ShortUrl_ShortenerIa Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Interface` 7Zend_Server_Interface-_ ]Zend_Serializer_Adapter_AdapterInterface4^ kZend_Search_Lucene_Search_Highlighter_Interface!] EZend_Search_Lucene_Interface3\ iZend_Search_Lucene_Index_TermsStream_Interface$[ KZend_Queue_Stomp_FrameInterface0Z cZend_Queue_Stomp_Client_ConnectionInterface(Y SZend_Queue_Adapter_AdapterInterfaceX ?Zend_Pdf_Filter_Interface&W OZend_Pdf_ElementFactory_InterfaceV ?Zend_Pdf_Canvas_Interface,U [Zend_Paginator_ScrollingStyle_Interface$T KZend_Paginator_AdapterAggregate%S MZend_Paginator_Adapter_Interface&R OZend_Oauth_Config_ConfigInterface'Q QZend_Mobile_Push_Message_InterfaceP AZend_Mobile_Push_Interface$O KZend_Memory_Container_Interface1N eZend_Markup_Renderer_TokenConverterInterface'M QZend_Markup_Parser_ParserInterface)L UZend_Mail_Storage_Writable_Interface'K QZend_Mail_Storage_Folder_InterfaceJ =Zend_Mail_Part_Interface I CZend_Mail_Message_Interface!H EZend_Log_Formatter_InterfaceG ?Zend_Log_Filter_InterfaceF ?Zend_Log_FactoryInterfaceE ?Zend_Loader_SplAutoloader'D QZend_Loader_PluginLoader_Interface%C MZend_Loader_Autoloader_Interface0B cZend_Ldap_Node_Schema_ObjectClass_Interface2A gZend_Ldap_Node_Schema_AttributeType_Interface3@ iZend_InfoCard_Xml_Security_Transform_Interface(? SZend_InfoCard_Xml_KeyInfo_Interface(> SZend_InfoCard_Xml_Element_Interface*= WZend_InfoCard_Xml_Assertion_Interface-< ]Zend_InfoCard_Cipher_Symmetric_Interface   j V"S/	]8b:}\<




`
E
-

					p	N	!~]8_:a@,_>f;eAhN0O                                                      :
 wZend_Cloud_DocumentService_Adapter_WindowsAzure_Query0	 cZend_Cloud_DocumentService_Adapter_SimpleDb6 oZend_Cloud_DocumentService_Adapter_SimpleDb_Query7 qZend_Cloud_DocumentService_Adapter_AbstractAdapter AZend_Cloud_AbstractFactory /Zend_Captcha_Word 9Zend_Captcha_ReCaptcha 1Zend_Captcha_Image 3Zend_Captcha_Figlet 9Zend_Captcha_Exception  /Zend_Captcha_Dumb /Zend_Captcha_Base~ !Zend_Cache} 1Zend_Cache_Manager| =Zend_Cache_Frontend_Page{ AZend_Cache_Frontend_Output!z EZend_Cache_Frontend_Functiony =Zend_Cache_Frontend_Filex ?Zend_Cache_Frontend_Class w CZend_Cache_Frontend_Capturev 5Zend_Cache_Exceptionu +Zend_Cache_Coret 1Zend_Cache_Backend"s GZend_Cache_Backend_ZendServer(r SZend_Cache_Backend_ZendServer_ShMem'q QZend_Cache_Backend_ZendServer_Disk$p KZend_Cache_Backend_ZendPlatformo ?Zend_Cache_Backend_Xcache n CZend_Cache_Backend_WinCache!m EZend_Cache_Backend_TwoLevelsl ;Zend_Cache_Backend_Testk ?Zend_Cache_Backend_Staticj ?Zend_Cache_Backend_Sqlite!i EZend_Cache_Backend_Memcached$h KZend_Cache_Backend_Libmemcachedg ;Zend_Cache_Backend_File!f EZend_Cache_Backend_BlackHolee 9Zend_Cache_Backend_Apcd %Zend_Barcodec ?Zend_Barcode_Renderer_Svg+b YZend_Barcode_Renderer_RendererAbstracta ?Zend_Barcode_Renderer_Pdf ` CZend_Barcode_Renderer_Image$_ KZend_Barcode_Renderer_Exception^ =Zend_Barcode_Object_Upce] =Zend_Barcode_Object_Upca"\ GZend_Barcode_Object_Royalmail [ CZend_Barcode_Object_PostnetZ AZend_Barcode_Object_Planet'Y QZend_Barcode_Object_ObjectAbstract!X EZend_Barcode_Object_LeitcodeW ?Zend_Barcode_Object_Itf14"V GZend_Barcode_Object_Identcode"U GZend_Barcode_Object_ExceptionT ?Zend_Barcode_Object_ErrorS =Zend_Barcode_Object_Ean8R =Zend_Barcode_Object_Ean5Q =Zend_Barcode_Object_Ean2P ?Zend_Barcode_Object_Ean13O AZend_Barcode_Object_Code39*N WZend_Barcode_Object_Code25interleavedM AZend_Barcode_Object_Code25 L CZend_Barcode_Object_Code128K 9Zend_Barcode_ExceptionJ Zend_AuthI ?Zend_Auth_Storage_Session$H KZend_Auth_Storage_NonPersistent G CZend_Auth_Storage_ExceptionF -Zend_Auth_ResultE 3Zend_Auth_ExceptionD =Zend_Auth_Adapter_OpenIdC 9Zend_Auth_Adapter_LdapB 9Zend_Auth_Adapter_Http)A UZend_Auth_Adapter_Http_Resolver_File.@ _Zend_Auth_Adapter_Http_Resolver_Exception ? CZend_Auth_Adapter_Exception> =Zend_Auth_Adapter_Digest= ?Zend_Auth_Adapter_DbTable< -Zend_Application#; IZend_Application_Resource_View(: SZend_Application_Resource_UserAgent(9 SZend_Application_Resource_Translate&8 OZend_Application_Resource_Session%7 MZend_Application_Resource_Router/6 aZend_Application_Resource_ResourceAbstract)5 UZend_Application_Resource_Navigation&4 OZend_Application_Resource_Multidb&3 OZend_Application_Resource_Modules#2 IZend_Application_Resource_Mail"1 GZend_Application_Resource_Log%0 MZend_Application_Resource_Locale%/ MZend_Application_Resource_Layout.. _Zend_Application_Resource_Frontcontroller(- SZend_Application_Resource_Exception#, IZend_Application_Resource_Dojo!+ EZend_Application_Resource_Db+* YZend_Application_Resource_Cachemanager&) OZend_Application_Module_Bootstrap'( QZend_Application_Module_Autoloader' AZend_Application_Exception)& UZend_Application_Bootstrap_Exception1% eZend_Application_Bootstrap_BootstrapAbstract)$ UZend_Application_Bootstrap_Bootstrap# ?Zend_Amf_Value_TraitsInfo-" ]Zend_Amf_Value_Messaging_RemotingMessage*! WZend_Amf_Value_Messaging_ErrorMessage   ]  pDp=m?xGr?



f
B
				p	>	sDgJ3yZ@)h7V+jAb6|W,                          %g MZend_Controller_Request_Abstract&f OZend_Controller_Plugin_PutHandler(e SZend_Controller_Plugin_ErrorHandler"d GZend_Controller_Plugin_Broker'c QZend_Controller_Plugin_ActionStack$b KZend_Controller_Plugin_Abstracta 7Zend_Controller_Front` ?Zend_Controller_Exception(_ SZend_Controller_Dispatcher_Standard)^ UZend_Controller_Dispatcher_Exception(] SZend_Controller_Dispatcher_Abstract\ 9Zend_Controller_Action([ SZend_Controller_Action_HelperBroker6Z oZend_Controller_Action_HelperBroker_PriorityStack/Y aZend_Controller_Action_Helper_ViewRenderer&X OZend_Controller_Action_Helper_Url-W ]Zend_Controller_Action_Helper_Redirector'V QZend_Controller_Action_Helper_Json1U eZend_Controller_Action_Helper_FlashMessenger0T cZend_Controller_Action_Helper_ContextSwitch(S SZend_Controller_Action_Helper_Cache<R {Zend_Controller_Action_Helper_AutoCompleteScriptaculous3Q iZend_Controller_Action_Helper_AutoCompleteDojo8P sZend_Controller_Action_Helper_AutoComplete_Abstract.O _Zend_Controller_Action_Helper_AjaxContext.N _Zend_Controller_Action_Helper_ActionStack+M YZend_Controller_Action_Helper_Abstract%L MZend_Controller_Action_ExceptionK 3Zend_Console_Getopt"J GZend_Console_Getopt_ExceptionI #Zend_ConfigH -Zend_Config_YamlG +Zend_Config_XmlF 1Zend_Config_WriterE ;Zend_Config_Writer_YamlD 9Zend_Config_Writer_XmlC ;Zend_Config_Writer_JsonB 9Zend_Config_Writer_Ini$A KZend_Config_Writer_FileAbstract@ =Zend_Config_Writer_Array? -Zend_Config_Json> +Zend_Config_Ini= 7Zend_Config_Exception$< KZend_CodeGenerator_Php_Property1; eZend_CodeGenerator_Php_Property_DefaultValue%: MZend_CodeGenerator_Php_Parameter29 gZend_CodeGenerator_Php_Parameter_DefaultValue"8 GZend_CodeGenerator_Php_Method,7 [Zend_CodeGenerator_Php_Member_Container+6 YZend_CodeGenerator_Php_Member_Abstract 5 CZend_CodeGenerator_Php_File%4 MZend_CodeGenerator_Php_Exception$3 KZend_CodeGenerator_Php_Docblock(2 SZend_CodeGenerator_Php_Docblock_Tag/1 aZend_CodeGenerator_Php_Docblock_Tag_Return.0 _Zend_CodeGenerator_Php_Docblock_Tag_Param0/ cZend_CodeGenerator_Php_Docblock_Tag_License!. EZend_CodeGenerator_Php_Class - CZend_CodeGenerator_Php_Body$, KZend_CodeGenerator_Php_Abstract!+ EZend_CodeGenerator_Exception * CZend_CodeGenerator_Abstract&) OZend_Cloud_StorageService_Factory(( SZend_Cloud_StorageService_Exception3' iZend_Cloud_StorageService_Adapter_WindowsAzure)& UZend_Cloud_StorageService_Adapter_S30% cZend_Cloud_StorageService_Adapter_Rackspace1$ eZend_Cloud_StorageService_Adapter_FileSystem'# QZend_Cloud_QueueService_MessageSet$" KZend_Cloud_QueueService_Message$! KZend_Cloud_QueueService_Factory&  OZend_Cloud_QueueService_Exception. _Zend_Cloud_QueueService_Adapter_ZendQueue1 eZend_Cloud_QueueService_Adapter_WindowsAzure( SZend_Cloud_QueueService_Adapter_Sqs4 kZend_Cloud_QueueService_Adapter_AbstractAdapter. _Zend_Cloud_OperationNotAvailableException+ YZend_Cloud_Infrastructure_InstanceList' QZend_Cloud_Infrastructure_Instance( SZend_Cloud_Infrastructure_ImageList$ KZend_Cloud_Infrastructure_Image& OZend_Cloud_Infrastructure_Factory( SZend_Cloud_Infrastructure_Exception0 cZend_Cloud_Infrastructure_Adapter_Rackspace* WZend_Cloud_Infrastructure_Adapter_Ec26 oZend_Cloud_Infrastructure_Adapter_AbstractAdapter 5Zend_Cloud_Exception% MZend_Cloud_DocumentService_Query' QZend_Cloud_DocumentService_Factory) UZend_Cloud_DocumentService_Exception+ YZend_Cloud_DocumentService_DocumentSet( SZend_Cloud_DocumentService_Document4 kZend_Cloud_DocumentService_Adapter_WindowsAzure   q  ^8oH vK!lK4v_?






n
R
7
&
				}	_	7	oN/yW7d:qG'lS.tXB'j;Y6 $X KZend_Dojo_Form_Element_CheckBox"W GZend_Dojo_Form_Element_Button V CZend_Dojo_Form_DisplayGroup*U WZend_Dojo_Form_Decorator_TabContainer,T [Zend_Dojo_Form_Decorator_StackContainer,S [Zend_Dojo_Form_Decorator_SplitContainer'R QZend_Dojo_Form_Decorator_DijitForm*Q WZend_Dojo_Form_Decorator_DijitElement,P [Zend_Dojo_Form_Decorator_DijitContainer)O UZend_Dojo_Form_Decorator_ContentPane-N ]Zend_Dojo_Form_Decorator_BorderContainer+M YZend_Dojo_Form_Decorator_AccordionPane0L cZend_Dojo_Form_Decorator_AccordionContainerK 3Zend_Dojo_ExceptionJ )Zend_Dojo_DataI 5Zend_Dojo_BuildLayerH !Zend_DebugG Zend_DbF 'Zend_Db_TableE 5Zend_Db_Table_Select#D IZend_Db_Table_Select_ExceptionC 5Zend_Db_Table_Rowset#B IZend_Db_Table_Rowset_Exception"A GZend_Db_Table_Rowset_Abstract@ /Zend_Db_Table_Row ? CZend_Db_Table_Row_Exception> AZend_Db_Table_Row_Abstract= ;Zend_Db_Table_Exception< =Zend_Db_Table_Definition; 9Zend_Db_Table_Abstract: /Zend_Db_Statement9 =Zend_Db_Statement_Sqlsrv'8 QZend_Db_Statement_Sqlsrv_Exception7 7Zend_Db_Statement_Pdo6 ?Zend_Db_Statement_Pdo_Oci5 ?Zend_Db_Statement_Pdo_Ibm4 =Zend_Db_Statement_Oracle'3 QZend_Db_Statement_Oracle_Exception2 =Zend_Db_Statement_Mysqli'1 QZend_Db_Statement_Mysqli_Exception 0 CZend_Db_Statement_Exception/ 7Zend_Db_Statement_Db2$. KZend_Db_Statement_Db2_Exception- )Zend_Db_Select, =Zend_Db_Select_Exception+ -Zend_Db_Profiler* 9Zend_Db_Profiler_Query) =Zend_Db_Profiler_Firebug( AZend_Db_Profiler_Exception' %Zend_Db_Expr& /Zend_Db_Exception% 9Zend_Db_Adapter_Sqlsrv%$ MZend_Db_Adapter_Sqlsrv_Exception# AZend_Db_Adapter_Pdo_Sqlite" ?Zend_Db_Adapter_Pdo_Pgsql! ;Zend_Db_Adapter_Pdo_Oci  ?Zend_Db_Adapter_Pdo_Mysql ?Zend_Db_Adapter_Pdo_Mssql ;Zend_Db_Adapter_Pdo_Ibm  CZend_Db_Adapter_Pdo_Ibm_Ids  CZend_Db_Adapter_Pdo_Ibm_Db2! EZend_Db_Adapter_Pdo_Abstract 9Zend_Db_Adapter_Oracle% MZend_Db_Adapter_Oracle_Exception 9Zend_Db_Adapter_Mysqli% MZend_Db_Adapter_Mysqli_Exception ?Zend_Db_Adapter_Exception 3Zend_Db_Adapter_Db2" GZend_Db_Adapter_Db2_Exception =Zend_Db_Adapter_Abstract Zend_Date 3Zend_Date_Exception 5Zend_Date_DateObject -Zend_Date_Cities 'Zend_Currency ;Zend_Currency_Exception !Zend_Crypt )Zend_Crypt_Rsa
 1Zend_Crypt_Rsa_Key	 ?Zend_Crypt_Rsa_Key_Public AZend_Crypt_Rsa_Key_Private =Zend_Crypt_Rsa_Exception +Zend_Crypt_Math ?Zend_Crypt_Math_Exception AZend_Crypt_Math_BigInteger# IZend_Crypt_Math_BigInteger_Gmp) UZend_Crypt_Math_BigInteger_Exception& OZend_Crypt_Math_BigInteger_Bcmath  +Zend_Crypt_Hmac ?Zend_Crypt_Hmac_Exception~ 5Zend_Crypt_Exception} =Zend_Crypt_DiffieHellman'| QZend_Crypt_DiffieHellman_Exception!{ EZend_Controller_Router_Route(z SZend_Controller_Router_Route_Static'y QZend_Controller_Router_Route_Regex(x SZend_Controller_Router_Route_Module*w WZend_Controller_Router_Route_Hostname'v QZend_Controller_Router_Route_Chain*u WZend_Controller_Router_Route_Abstract#t IZend_Controller_Router_Rewrite%s MZend_Controller_Router_Exception$r KZend_Controller_Router_Abstract*q WZend_Controller_Response_HttpTestCase"p GZend_Controller_Response_Http'o QZend_Controller_Response_Exception!n EZend_Controller_Response_Cli&m OZend_Controller_Response_Abstract#l IZend_Controller_Request_Simple)k UZend_Controller_Request_HttpTestCase!j EZend_Controller_Request_Http&i OZend_Controller_Request_Exception&h OZend_Controller_Request_Apache404   d  ]4Z,^8}]-e<



n
B
 					T	)W+c4kE	yM!mF&S+ uCpM*                   #< IZend_Feed_Reader_EntryAbstract; AZend_Feed_Reader_Entry_Rss : CZend_Feed_Reader_Entry_Atom 9 CZend_Feed_Reader_Collection38 iZend_Feed_Reader_Collection_CollectionAbstract)7 UZend_Feed_Reader_Collection_Category'6 QZend_Feed_Reader_Collection_Author5 9Zend_Feed_Pubsubhubbub&4 OZend_Feed_Pubsubhubbub_Subscriber/3 aZend_Feed_Pubsubhubbub_Subscriber_Callback%2 MZend_Feed_Pubsubhubbub_Publisher.1 _Zend_Feed_Pubsubhubbub_Model_Subscription/0 aZend_Feed_Pubsubhubbub_Model_ModelAbstract(/ SZend_Feed_Pubsubhubbub_HttpResponse%. MZend_Feed_Pubsubhubbub_Exception,- [Zend_Feed_Pubsubhubbub_CallbackAbstract, 3Zend_Feed_Exception+ 3Zend_Feed_Entry_Rss* 5Zend_Feed_Entry_Atom) =Zend_Feed_Entry_Abstract( /Zend_Feed_Element' /Zend_Feed_Builder& =Zend_Feed_Builder_Header$% KZend_Feed_Builder_Header_Itunes $ CZend_Feed_Builder_Exception# ;Zend_Feed_Builder_Entry" )Zend_Feed_Atom! 1Zend_Feed_Abstract  )Zend_Exception) UZend_EventManager_StaticEventManager) UZend_EventManager_SharedEventManager) UZend_EventManager_ResponseCollection SplStack) UZend_EventManager_GlobalEventManager" GZend_EventManager_FilterChain, [Zend_EventManager_Filter_FilterIterator9 uZend_EventManager_Exception_InvalidArgumentException# IZend_EventManager_EventManager ;Zend_EventManager_Event )Zend_Dom_Query 7Zend_Dom_Query_Result =Zend_Dom_Query_Css2Xpath 1Zend_Dom_Exception Zend_Dojo) UZend_Dojo_View_Helper_VerticalSlider, [Zend_Dojo_View_Helper_ValidationTextBox& OZend_Dojo_View_Helper_TimeTextBox" GZend_Dojo_View_Helper_TextBox# IZend_Dojo_View_Helper_Textarea' QZend_Dojo_View_Helper_TabContainer'
 QZend_Dojo_View_Helper_SubmitButton)	 UZend_Dojo_View_Helper_StackContainer) UZend_Dojo_View_Helper_SplitContainer! EZend_Dojo_View_Helper_Slider) UZend_Dojo_View_Helper_SimpleTextarea& OZend_Dojo_View_Helper_RadioButton* WZend_Dojo_View_Helper_PasswordTextBox( SZend_Dojo_View_Helper_NumberTextBox( SZend_Dojo_View_Helper_NumberSpinner+ YZend_Dojo_View_Helper_HorizontalSlider  AZend_Dojo_View_Helper_Form* WZend_Dojo_View_Helper_FilteringSelect!~ EZend_Dojo_View_Helper_Editor} AZend_Dojo_View_Helper_Dojo)| UZend_Dojo_View_Helper_Dojo_Container){ UZend_Dojo_View_Helper_DijitContainer z CZend_Dojo_View_Helper_Dijit&y OZend_Dojo_View_Helper_DateTextBox&x OZend_Dojo_View_Helper_CustomDijit*w WZend_Dojo_View_Helper_CurrencyTextBox&v OZend_Dojo_View_Helper_ContentPane#u IZend_Dojo_View_Helper_ComboBox#t IZend_Dojo_View_Helper_CheckBox!s EZend_Dojo_View_Helper_Button*r WZend_Dojo_View_Helper_BorderContainer(q SZend_Dojo_View_Helper_AccordionPane-p ]Zend_Dojo_View_Helper_AccordionContainero =Zend_Dojo_View_Exceptionn )Zend_Dojo_Formm 9Zend_Dojo_Form_SubForm*l WZend_Dojo_Form_Element_VerticalSlider-k ]Zend_Dojo_Form_Element_ValidationTextBox'j QZend_Dojo_Form_Element_TimeTextBox#i IZend_Dojo_Form_Element_TextBox$h KZend_Dojo_Form_Element_Textarea(g SZend_Dojo_Form_Element_SubmitButton"f GZend_Dojo_Form_Element_Slider*e WZend_Dojo_Form_Element_SimpleTextarea'd QZend_Dojo_Form_Element_RadioButton+c YZend_Dojo_Form_Element_PasswordTextBox)b UZend_Dojo_Form_Element_NumberTextBox)a UZend_Dojo_Form_Element_NumberSpinner,` [Zend_Dojo_Form_Element_HorizontalSlider+_ YZend_Dojo_Form_Element_FilteringSelect"^ GZend_Dojo_Form_Element_Editor&] OZend_Dojo_Form_Element_DijitMulti!\ EZend_Dojo_Form_Element_Dijit'[ QZend_Dojo_Form_Element_DateTextBox+Z YZend_Dojo_Form_Element_CurrencyTextBox$Y KZend_Dojo_Form_Element_ComboBox   d  w?sDUnVA!\ 



P
			t	5	c+rS;*tZA(iI)	zcAeC#lM1k>                         %  MZend_Filter_Word_DashToCamelCase+ YZend_Filter_Word_CamelCaseToUnderscore* WZend_Filter_Word_CamelCaseToSeparator% MZend_Filter_Word_CamelCaseToDash 7Zend_Filter_StripTags ?Zend_Filter_StripNewlines 9Zend_Filter_StringTrim ?Zend_Filter_StringToUpper ?Zend_Filter_StringToLower 5Zend_Filter_RealPath ;Zend_Filter_PregReplace -Zend_Filter_Null& OZend_Filter_NormalizedToLocalized& OZend_Filter_LocalizedToNormalized +Zend_Filter_Int /Zend_Filter_Input 7Zend_Filter_Inflector =Zend_Filter_HtmlEntities AZend_Filter_File_UpperCase ;Zend_Filter_File_Rename AZend_Filter_File_LowerCase =Zend_Filter_File_Encrypt
 =Zend_Filter_File_Decrypt	 7Zend_Filter_Exception 3Zend_Filter_Encrypt  CZend_Filter_Encrypt_Openssl AZend_Filter_Encrypt_Mcrypt +Zend_Filter_Dir 1Zend_Filter_Digits 3Zend_Filter_Decrypt 9Zend_Filter_Decompress 5Zend_Filter_Compress  =Zend_Filter_Compress_Zip =Zend_Filter_Compress_Tar~ =Zend_Filter_Compress_Rar} =Zend_Filter_Compress_Lzf| ;Zend_Filter_Compress_Gz*{ WZend_Filter_Compress_CompressAbstractz =Zend_Filter_Compress_Bz2y 5Zend_Filter_Callbackx 3Zend_Filter_Booleanw 5Zend_Filter_BaseNamev /Zend_Filter_Alphau /Zend_Filter_Alnumt 1Zend_File_Transfer!s EZend_File_Transfer_Exception$r KZend_File_Transfer_Adapter_Http(q SZend_File_Transfer_Adapter_Abstractp 9Zend_File_PhpClassFileo AZend_File_ClassFileLocatorn Zend_Feedm -Zend_Feed_Writerl ;Zend_Feed_Writer_Source/k aZend_Feed_Writer_Renderer_RendererAbstract'j QZend_Feed_Writer_Renderer_Feed_Rss(i SZend_Feed_Writer_Renderer_Feed_Atom/h aZend_Feed_Writer_Renderer_Feed_Atom_Source5g mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract(f SZend_Feed_Writer_Renderer_Entry_Rss)e UZend_Feed_Writer_Renderer_Entry_Atom1d eZend_Feed_Writer_Renderer_Entry_Atom_Deletedc 7Zend_Feed_Writer_Feed'b QZend_Feed_Writer_Feed_FeedAbstract<a {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry8` sZend_Feed_Writer_Extension_Threading_Renderer_Entry4_ kZend_Feed_Writer_Extension_Slash_Renderer_Entry0^ cZend_Feed_Writer_Extension_RendererAbstract4] kZend_Feed_Writer_Extension_ITunes_Renderer_Feed5\ mZend_Feed_Writer_Extension_ITunes_Renderer_Entry+[ YZend_Feed_Writer_Extension_ITunes_Feed,Z [Zend_Feed_Writer_Extension_ITunes_Entry8Y sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed9X uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry6W oZend_Feed_Writer_Extension_Content_Renderer_Entry2V gZend_Feed_Writer_Extension_Atom_Renderer_Feed6U oZend_Feed_Writer_Exception_InvalidMethodExceptionT 9Zend_Feed_Writer_EntryS =Zend_Feed_Writer_DeletedR 'Zend_Feed_RssQ -Zend_Feed_ReaderP =Zend_Feed_Reader_FeedSet"O GZend_Feed_Reader_FeedAbstractN ?Zend_Feed_Reader_Feed_RssM AZend_Feed_Reader_Feed_Atom&L OZend_Feed_Reader_Feed_Atom_Source3K iZend_Feed_Reader_Extension_WellFormedWeb_Entry,J [Zend_Feed_Reader_Extension_Thread_Entry0I cZend_Feed_Reader_Extension_Syndication_Feed+H YZend_Feed_Reader_Extension_Slash_Entry,G [Zend_Feed_Reader_Extension_Podcast_Feed-F ]Zend_Feed_Reader_Extension_Podcast_Entry,E [Zend_Feed_Reader_Extension_FeedAbstract-D ]Zend_Feed_Reader_Extension_EntryAbstract/C aZend_Feed_Reader_Extension_DublinCore_Feed0B cZend_Feed_Reader_Extension_DublinCore_Entry4A kZend_Feed_Reader_Extension_CreativeCommons_Feed5@ mZend_Feed_Reader_Extension_CreativeCommons_Entry-? ]Zend_Feed_Reader_Extension_Content_Entry)> UZend_Feed_Reader_Extension_Atom_Feed*= WZend_Feed_Reader_Extension_Atom_Entry   i W/}jF"\:c@dF&




d
E
&					{	\	<	p_6tD#}Y,Y0g?]8pH#vP)                                           !	 EZend_Gdata_App_HttpException$ KZend_Gdata_App_FeedSourceParent# IZend_Gdata_App_FeedEntryParent 3Zend_Gdata_App_Feed =Zend_Gdata_App_Extension! EZend_Gdata_App_Extension_Uri% MZend_Gdata_App_Extension_Updated# IZend_Gdata_App_Extension_Title" GZend_Gdata_App_Extension_Text%  MZend_Gdata_App_Extension_Summary& OZend_Gdata_App_Extension_Subtitle$~ KZend_Gdata_App_Extension_Source$} KZend_Gdata_App_Extension_Rights'| QZend_Gdata_App_Extension_Published${ KZend_Gdata_App_Extension_Person"z GZend_Gdata_App_Extension_Name"y GZend_Gdata_App_Extension_Logo"x GZend_Gdata_App_Extension_Link w CZend_Gdata_App_Extension_Id"v GZend_Gdata_App_Extension_Icon'u QZend_Gdata_App_Extension_Generator#t IZend_Gdata_App_Extension_Email%s MZend_Gdata_App_Extension_Element$r KZend_Gdata_App_Extension_Edited#q IZend_Gdata_App_Extension_Draft%p MZend_Gdata_App_Extension_Control)o UZend_Gdata_App_Extension_Contributor%n MZend_Gdata_App_Extension_Content&m OZend_Gdata_App_Extension_Category$l KZend_Gdata_App_Extension_Authork =Zend_Gdata_App_Exceptionj 5Zend_Gdata_App_Entry,i [Zend_Gdata_App_CaptchaRequiredException#h IZend_Gdata_App_BaseMediaSourceg 3Zend_Gdata_App_Base*f WZend_Gdata_App_BadMethodCallException!e EZend_Gdata_App_AuthExceptiond 5Zend_Gdata_Analytics+c YZend_Gdata_Analytics_Extension_TableId,b [Zend_Gdata_Analytics_Extension_Property*a WZend_Gdata_Analytics_Extension_Metric` ?Zend_Gdata_Analytics_Goal-_ ]Zend_Gdata_Analytics_Extension_Dimension#^ IZend_Gdata_Analytics_DataQuery"] GZend_Gdata_Analytics_DataFeed#\ IZend_Gdata_Analytics_DataEntry&[ OZend_Gdata_Analytics_AccountQuery%Z MZend_Gdata_Analytics_AccountFeed&Y OZend_Gdata_Analytics_AccountEntryX Zend_FormW /Zend_Form_SubFormV 3Zend_Form_ExceptionU /Zend_Form_ElementT ;Zend_Form_Element_XhtmlS AZend_Form_Element_TextareaR 9Zend_Form_Element_TextQ =Zend_Form_Element_SubmitP =Zend_Form_Element_SelectO ;Zend_Form_Element_ResetN ;Zend_Form_Element_RadioM AZend_Form_Element_PasswordL 9Zend_Form_Element_Note"K GZend_Form_Element_Multiselect$J KZend_Form_Element_MultiCheckboxI ;Zend_Form_Element_MultiH ;Zend_Form_Element_ImageG =Zend_Form_Element_HiddenF 9Zend_Form_Element_HashE 9Zend_Form_Element_File D CZend_Form_Element_ExceptionC AZend_Form_Element_CheckboxB ?Zend_Form_Element_CaptchaA =Zend_Form_Element_Button@ 9Zend_Form_DisplayGroup#? IZend_Form_Decorator_ViewScript#> IZend_Form_Decorator_ViewHelper = CZend_Form_Decorator_Tooltip(< SZend_Form_Decorator_PrepareElements; ?Zend_Form_Decorator_Label: ?Zend_Form_Decorator_Image 9 CZend_Form_Decorator_HtmlTag#8 IZend_Form_Decorator_FormErrors%7 MZend_Form_Decorator_FormElements6 =Zend_Form_Decorator_Form5 =Zend_Form_Decorator_File!4 EZend_Form_Decorator_Fieldset"3 GZend_Form_Decorator_Exception2 AZend_Form_Decorator_Errors$1 KZend_Form_Decorator_DtDdWrapper$0 KZend_Form_Decorator_Description / CZend_Form_Decorator_Captcha%. MZend_Form_Decorator_Captcha_Word*- WZend_Form_Decorator_Captcha_ReCaptcha!, EZend_Form_Decorator_Callback!+ EZend_Form_Decorator_Abstract* #Zend_Filter+) YZend_Filter_Word_UnderscoreToSeparator&( OZend_Filter_Word_UnderscoreToDash+' YZend_Filter_Word_UnderscoreToCamelCase*& WZend_Filter_Word_SeparatorToSeparator%% MZend_Filter_Word_SeparatorToDash*$ WZend_Filter_Word_SeparatorToCamelCase(# SZend_Filter_Word_Separator_Abstract&" OZend_Filter_Word_DashToUnderscore%! MZend_Filter_Word_DashToSeparator   a  zY3rA\3jR,Y/


i
9
					f	I	2	vDY<$_8	qK/yQ$h>vO.lE                             ,j [Zend_Gdata_Gapps_EmailListRecipientFeed-i ]Zend_Gdata_Gapps_EmailListRecipientEntry$h KZend_Gdata_Gapps_EmailListQuery#g IZend_Gdata_Gapps_EmailListFeed$f KZend_Gdata_Gapps_EmailListEntrye +Zend_Gdata_Feedd 5Zend_Gdata_Extensionc =Zend_Gdata_Extension_Whob AZend_Gdata_Extension_Wherea ?Zend_Gdata_Extension_When$` KZend_Gdata_Extension_Visibility&_ OZend_Gdata_Extension_Transparency"^ GZend_Gdata_Extension_Reminder-] ]Zend_Gdata_Extension_RecurrenceException$\ KZend_Gdata_Extension_Recurrence [ CZend_Gdata_Extension_Rating'Z QZend_Gdata_Extension_OriginalEvent0Y cZend_Gdata_Extension_OpenSearchTotalResults.X _Zend_Gdata_Extension_OpenSearchStartIndex0W cZend_Gdata_Extension_OpenSearchItemsPerPage"V GZend_Gdata_Extension_FeedLink*U WZend_Gdata_Extension_ExtendedProperty%T MZend_Gdata_Extension_EventStatus#S IZend_Gdata_Extension_EntryLink"R GZend_Gdata_Extension_Comments&Q OZend_Gdata_Extension_AttendeeType(P SZend_Gdata_Extension_AttendeeStatusO +Zend_Gdata_ExifN 5Zend_Gdata_Exif_Feed#M IZend_Gdata_Exif_Extension_Time#L IZend_Gdata_Exif_Extension_Tags$K KZend_Gdata_Exif_Extension_Model#J IZend_Gdata_Exif_Extension_Make"I GZend_Gdata_Exif_Extension_Iso,H [Zend_Gdata_Exif_Extension_ImageUniqueId$G KZend_Gdata_Exif_Extension_FStop*F WZend_Gdata_Exif_Extension_FocalLength$E KZend_Gdata_Exif_Extension_Flash'D QZend_Gdata_Exif_Extension_Exposure'C QZend_Gdata_Exif_Extension_DistanceB 7Zend_Gdata_Exif_EntryA -Zend_Gdata_Entry@ 7Zend_Gdata_DublinCore*? WZend_Gdata_DublinCore_Extension_Title,> [Zend_Gdata_DublinCore_Extension_Subject+= YZend_Gdata_DublinCore_Extension_Rights.< _Zend_Gdata_DublinCore_Extension_Publisher-; ]Zend_Gdata_DublinCore_Extension_Language/: aZend_Gdata_DublinCore_Extension_Identifier+9 YZend_Gdata_DublinCore_Extension_Format08 cZend_Gdata_DublinCore_Extension_Description)7 UZend_Gdata_DublinCore_Extension_Date,6 [Zend_Gdata_DublinCore_Extension_Creator5 +Zend_Gdata_Docs4 7Zend_Gdata_Docs_Query%3 MZend_Gdata_Docs_DocumentListFeed&2 OZend_Gdata_Docs_DocumentListEntry1 9Zend_Gdata_ClientLogin0 3Zend_Gdata_Calendar!/ EZend_Gdata_Calendar_ListFeed". GZend_Gdata_Calendar_ListEntry-- ]Zend_Gdata_Calendar_Extension_WebContent+, YZend_Gdata_Calendar_Extension_Timezone9+ uZend_Gdata_Calendar_Extension_SendEventNotifications+* YZend_Gdata_Calendar_Extension_Selected+) YZend_Gdata_Calendar_Extension_QuickAdd'( QZend_Gdata_Calendar_Extension_Link)' UZend_Gdata_Calendar_Extension_Hidden(& SZend_Gdata_Calendar_Extension_Color.% _Zend_Gdata_Calendar_Extension_AccessLevel#$ IZend_Gdata_Calendar_EventQuery"# GZend_Gdata_Calendar_EventFeed#" IZend_Gdata_Calendar_EventEntry! -Zend_Gdata_Books!  EZend_Gdata_Books_VolumeQuery  CZend_Gdata_Books_VolumeFeed! EZend_Gdata_Books_VolumeEntry+ YZend_Gdata_Books_Extension_Viewability- ]Zend_Gdata_Books_Extension_ThumbnailLink& OZend_Gdata_Books_Extension_Review+ YZend_Gdata_Books_Extension_PreviewLink( SZend_Gdata_Books_Extension_InfoLink- ]Zend_Gdata_Books_Extension_Embeddability) UZend_Gdata_Books_Extension_BooksLink- ]Zend_Gdata_Books_Extension_BooksCategory. _Zend_Gdata_Books_Extension_AnnotationLink$ KZend_Gdata_Books_CollectionFeed% MZend_Gdata_Books_CollectionEntry 1Zend_Gdata_AuthSub )Zend_Gdata_App$ KZend_Gdata_App_VersionException 3Zend_Gdata_App_Util# IZend_Gdata_App_MediaFileSource ?Zend_Gdata_App_MediaEntry2 gZend_Gdata_App_LoggingHttpClientAdapterSocket AZend_Gdata_App_IOException,
 [Zend_Gdata_App_InvalidArgumentException   c  ^7tQ-
uR0aI+y[6




d
=
"
				p	G	(	wY)h;P$oN3xM e;`3vH                                       %M MZend_Gdata_Photos_Extension_Size)L UZend_Gdata_Photos_Extension_Rotation+K YZend_Gdata_Photos_Extension_QuotaLimit-J ]Zend_Gdata_Photos_Extension_QuotaCurrent)I UZend_Gdata_Photos_Extension_Position(H SZend_Gdata_Photos_Extension_PhotoId3G iZend_Gdata_Photos_Extension_NumPhotosRemaining*F WZend_Gdata_Photos_Extension_NumPhotos)E UZend_Gdata_Photos_Extension_Nickname%D MZend_Gdata_Photos_Extension_Name2C gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum)B UZend_Gdata_Photos_Extension_Location#A IZend_Gdata_Photos_Extension_Id'@ QZend_Gdata_Photos_Extension_Height2? gZend_Gdata_Photos_Extension_CommentingEnabled-> ]Zend_Gdata_Photos_Extension_CommentCount'= QZend_Gdata_Photos_Extension_Client)< UZend_Gdata_Photos_Extension_Checksum*; WZend_Gdata_Photos_Extension_BytesUsed(: SZend_Gdata_Photos_Extension_AlbumId'9 QZend_Gdata_Photos_Extension_Access#8 IZend_Gdata_Photos_CommentEntry!7 EZend_Gdata_Photos_AlbumQuery 6 CZend_Gdata_Photos_AlbumFeed!5 EZend_Gdata_Photos_AlbumEntry4 3Zend_Gdata_MimeFile3 ?Zend_Gdata_MimeBodyString2 AZend_Gdata_MediaMimeStream1 -Zend_Gdata_Media0 7Zend_Gdata_Media_Feed*/ WZend_Gdata_Media_Extension_MediaTitle.. _Zend_Gdata_Media_Extension_MediaThumbnail)- UZend_Gdata_Media_Extension_MediaText0, cZend_Gdata_Media_Extension_MediaRestriction++ YZend_Gdata_Media_Extension_MediaRating+* YZend_Gdata_Media_Extension_MediaPlayer-) ]Zend_Gdata_Media_Extension_MediaKeywords)( UZend_Gdata_Media_Extension_MediaHash*' WZend_Gdata_Media_Extension_MediaGroup0& cZend_Gdata_Media_Extension_MediaDescription+% YZend_Gdata_Media_Extension_MediaCredit.$ _Zend_Gdata_Media_Extension_MediaCopyright,# [Zend_Gdata_Media_Extension_MediaContent-" ]Zend_Gdata_Media_Extension_MediaCategory! 9Zend_Gdata_Media_Entry  AZend_Gdata_Kind_EventEntry 7Zend_Gdata_HttpClient* WZend_Gdata_HttpAdapterStreamingSocket) UZend_Gdata_HttpAdapterStreamingProxy /Zend_Gdata_Health ;Zend_Gdata_Health_Query& OZend_Gdata_Health_ProfileListFeed' QZend_Gdata_Health_ProfileListEntry" GZend_Gdata_Health_ProfileFeed# IZend_Gdata_Health_ProfileEntry$ KZend_Gdata_Health_Extension_Ccr )Zend_Gdata_Geo 3Zend_Gdata_Geo_Feed$ KZend_Gdata_Geo_Extension_GmlPos& OZend_Gdata_Geo_Extension_GmlPoint) UZend_Gdata_Geo_Extension_GeoRssWhere 5Zend_Gdata_Geo_Entry -Zend_Gdata_Gbase" GZend_Gdata_Gbase_SnippetQuery! EZend_Gdata_Gbase_SnippetFeed" GZend_Gdata_Gbase_SnippetEntry 9Zend_Gdata_Gbase_Query
 AZend_Gdata_Gbase_ItemQuery	 ?Zend_Gdata_Gbase_ItemFeed AZend_Gdata_Gbase_ItemEntry 7Zend_Gdata_Gbase_Feed- ]Zend_Gdata_Gbase_Extension_BaseAttribute 9Zend_Gdata_Gbase_Entry -Zend_Gdata_Gapps AZend_Gdata_Gapps_UserQuery ?Zend_Gdata_Gapps_UserFeed AZend_Gdata_Gapps_UserEntry&  OZend_Gdata_Gapps_ServiceException 9Zend_Gdata_Gapps_Query ~ CZend_Gdata_Gapps_OwnerQuery} AZend_Gdata_Gapps_OwnerFeed | CZend_Gdata_Gapps_OwnerEntry#{ IZend_Gdata_Gapps_NicknameQuery"z GZend_Gdata_Gapps_NicknameFeed#y IZend_Gdata_Gapps_NicknameEntry!x EZend_Gdata_Gapps_MemberQuery w CZend_Gdata_Gapps_MemberFeed!v EZend_Gdata_Gapps_MemberEntry u CZend_Gdata_Gapps_GroupQueryt AZend_Gdata_Gapps_GroupFeed s CZend_Gdata_Gapps_GroupEntry%r MZend_Gdata_Gapps_Extension_Quota(q SZend_Gdata_Gapps_Extension_Property(p SZend_Gdata_Gapps_Extension_Nickname$o KZend_Gdata_Gapps_Extension_Name%n MZend_Gdata_Gapps_Extension_Login)m UZend_Gdata_Gapps_Extension_EmailListl 9Zend_Gdata_Gapps_Error-k ]Zend_Gdata_Gapps_EmailListRecipientQuery   ]  ~S) sP.`3qH j=




[
5
					_	1	{O"n>^/ uEc9
[/
j=jF!                "* GZend_Http_Client_Adapter_Curl) !Zend_Gdata( 1Zend_Gdata_YouTube"' GZend_Gdata_YouTube_VideoQuery!& EZend_Gdata_YouTube_VideoFeed"% GZend_Gdata_YouTube_VideoEntry($ SZend_Gdata_YouTube_UserProfileEntry(# SZend_Gdata_YouTube_SubscriptionFeed)" UZend_Gdata_YouTube_SubscriptionEntry)! UZend_Gdata_YouTube_PlaylistVideoFeed*  WZend_Gdata_YouTube_PlaylistVideoEntry( SZend_Gdata_YouTube_PlaylistListFeed) UZend_Gdata_YouTube_PlaylistListEntry" GZend_Gdata_YouTube_MediaEntry! EZend_Gdata_YouTube_InboxFeed" GZend_Gdata_YouTube_InboxEntry) UZend_Gdata_YouTube_Extension_VideoId* WZend_Gdata_YouTube_Extension_Username* WZend_Gdata_YouTube_Extension_Uploaded' QZend_Gdata_YouTube_Extension_Token( SZend_Gdata_YouTube_Extension_Status, [Zend_Gdata_YouTube_Extension_Statistics' QZend_Gdata_YouTube_Extension_State( SZend_Gdata_YouTube_Extension_School- ]Zend_Gdata_YouTube_Extension_ReleaseDate. _Zend_Gdata_YouTube_Extension_Relationship* WZend_Gdata_YouTube_Extension_Recorded& OZend_Gdata_YouTube_Extension_Racy- ]Zend_Gdata_YouTube_Extension_QueryString) UZend_Gdata_YouTube_Extension_Private* WZend_Gdata_YouTube_Extension_Position/ aZend_Gdata_YouTube_Extension_PlaylistTitle,
 [Zend_Gdata_YouTube_Extension_PlaylistId,	 [Zend_Gdata_YouTube_Extension_Occupation) UZend_Gdata_YouTube_Extension_NoEmbed' QZend_Gdata_YouTube_Extension_Music( SZend_Gdata_YouTube_Extension_Movies- ]Zend_Gdata_YouTube_Extension_MediaRating, [Zend_Gdata_YouTube_Extension_MediaGroup- ]Zend_Gdata_YouTube_Extension_MediaCredit. _Zend_Gdata_YouTube_Extension_MediaContent* WZend_Gdata_YouTube_Extension_Location&  OZend_Gdata_YouTube_Extension_Link* WZend_Gdata_YouTube_Extension_LastName*~ WZend_Gdata_YouTube_Extension_Hometown)} UZend_Gdata_YouTube_Extension_Hobbies(| SZend_Gdata_YouTube_Extension_Gender+{ YZend_Gdata_YouTube_Extension_FirstName*z WZend_Gdata_YouTube_Extension_Duration-y ]Zend_Gdata_YouTube_Extension_Description+x YZend_Gdata_YouTube_Extension_CountHint)w UZend_Gdata_YouTube_Extension_Control)v UZend_Gdata_YouTube_Extension_Company'u QZend_Gdata_YouTube_Extension_Books%t MZend_Gdata_YouTube_Extension_Age)s UZend_Gdata_YouTube_Extension_AboutMe#r IZend_Gdata_YouTube_ContactFeed$q KZend_Gdata_YouTube_ContactEntry#p IZend_Gdata_YouTube_CommentFeed$o KZend_Gdata_YouTube_CommentEntry$n KZend_Gdata_YouTube_ActivityFeed%m MZend_Gdata_YouTube_ActivityEntryl ;Zend_Gdata_Spreadsheets*k WZend_Gdata_Spreadsheets_WorksheetFeed+j YZend_Gdata_Spreadsheets_WorksheetEntry,i [Zend_Gdata_Spreadsheets_SpreadsheetFeed-h ]Zend_Gdata_Spreadsheets_SpreadsheetEntry&g OZend_Gdata_Spreadsheets_ListQuery%f MZend_Gdata_Spreadsheets_ListFeed&e OZend_Gdata_Spreadsheets_ListEntry/d aZend_Gdata_Spreadsheets_Extension_RowCount-c ]Zend_Gdata_Spreadsheets_Extension_Custom/b aZend_Gdata_Spreadsheets_Extension_ColCount+a YZend_Gdata_Spreadsheets_Extension_Cell*` WZend_Gdata_Spreadsheets_DocumentQuery&_ OZend_Gdata_Spreadsheets_CellQuery%^ MZend_Gdata_Spreadsheets_CellFeed&] OZend_Gdata_Spreadsheets_CellEntry\ -Zend_Gdata_Query[ /Zend_Gdata_Photos Z CZend_Gdata_Photos_UserQueryY AZend_Gdata_Photos_UserFeed X CZend_Gdata_Photos_UserEntryW AZend_Gdata_Photos_TagEntry!V EZend_Gdata_Photos_PhotoQuery U CZend_Gdata_Photos_PhotoFeed!T EZend_Gdata_Photos_PhotoEntry&S OZend_Gdata_Photos_Extension_Width'R QZend_Gdata_Photos_Extension_Weight(Q SZend_Gdata_Photos_Extension_Version%P MZend_Gdata_Photos_Extension_User*O WZend_Gdata_Photos_Extension_Timestamp*N WZend_Gdata_Photos_Extension_Thumbnail   p dB*nL+_>vH(uD





l
V
8
					l	H	,		tY,dB"yZ3vIM'
yS }YA$
cD$                             =Zend_Log_Filter_Suppress =Zend_Log_Filter_Priority ;Zend_Log_Filter_Message =Zend_Log_Filter_Abstract 1Zend_Log_Exception #Zend_Locale -Zend_Locale_Math =Zend_Locale_Math_PhpMath AZend_Locale_Math_Exception 1Zend_Locale_Format 7Zend_Locale_Exception -Zend_Locale_Data! EZend_Locale_Data_Translation #Zend_Loader# IZend_Loader_StandardAutoloader =Zend_Loader_PluginLoader'
 QZend_Loader_PluginLoader_Exception	 7Zend_Loader_Exception3 iZend_Loader_Exception_InvalidArgumentException# IZend_Loader_ClassMapAutoloader" GZend_Loader_AutoloaderFactory 9Zend_Loader_Autoloader$ KZend_Loader_Autoloader_Resource Zend_Ldap )Zend_Ldap_Node 7Zend_Ldap_Node_Schema#  IZend_Ldap_Node_Schema_OpenLdap/ aZend_Ldap_Node_Schema_ObjectClass_OpenLdap6~ oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectory} AZend_Ldap_Node_Schema_Item1| eZend_Ldap_Node_Schema_AttributeType_OpenLdap8{ sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory*z WZend_Ldap_Node_Schema_ActiveDirectoryy 9Zend_Ldap_Node_RootDse$x KZend_Ldap_Node_RootDse_OpenLdap&w OZend_Ldap_Node_RootDse_eDirectory+v YZend_Ldap_Node_RootDse_ActiveDirectoryu ?Zend_Ldap_Node_Collection$t KZend_Ldap_Node_ChildrenIterators ;Zend_Ldap_Node_Abstractr 9Zend_Ldap_Ldif_Encoderq -Zend_Ldap_Filterp ;Zend_Ldap_Filter_Stringo 3Zend_Ldap_Filter_Orn 5Zend_Ldap_Filter_Notm 7Zend_Ldap_Filter_Maskl =Zend_Ldap_Filter_Logicalk AZend_Ldap_Filter_Exceptionj 5Zend_Ldap_Filter_Andi ?Zend_Ldap_Filter_Abstracth 3Zend_Ldap_Exceptiong %Zend_Ldap_Dnf 3Zend_Ldap_Converter"e GZend_Ldap_Converter_Exceptiond 5Zend_Ldap_Collection*c WZend_Ldap_Collection_Iterator_Defaultb 3Zend_Ldap_Attributea #Zend_Layout` 7Zend_Layout_Exception)_ UZend_Layout_Controller_Plugin_Layout0^ cZend_Layout_Controller_Action_Helper_Layout] Zend_Json\ -Zend_Json_Server[ 5Zend_Json_Server_Smd!Z EZend_Json_Server_Smd_ServiceY ?Zend_Json_Server_Response#X IZend_Json_Server_Response_HttpW =Zend_Json_Server_Request"V GZend_Json_Server_Request_HttpU AZend_Json_Server_ExceptionT 9Zend_Json_Server_ErrorS 9Zend_Json_Server_CacheR )Zend_Json_ExprQ 3Zend_Json_ExceptionP /Zend_Json_EncoderO /Zend_Json_DecoderN 3Zend_Http_UserAgent"M GZend_Http_UserAgent_ValidatorL =Zend_Http_UserAgent_Text(K SZend_Http_UserAgent_Storage_Session.J _Zend_Http_UserAgent_Storage_NonPersistent*I WZend_Http_UserAgent_Storage_ExceptionH =Zend_Http_UserAgent_SpamG ?Zend_Http_UserAgent_Probe F CZend_Http_UserAgent_OfflineE AZend_Http_UserAgent_MobileD =Zend_Http_UserAgent_Feed+C YZend_Http_UserAgent_Features_Exception3B iZend_Http_UserAgent_Features_Adapter_TeraWurfl5A mZend_Http_UserAgent_Features_Adapter_DeviceAtlas2@ gZend_Http_UserAgent_Features_Adapter_Browscap"? GZend_Http_UserAgent_Exception> ?Zend_Http_UserAgent_Email = CZend_Http_UserAgent_Desktop < CZend_Http_UserAgent_Console ; CZend_Http_UserAgent_Checker: ;Zend_Http_UserAgent_Bot'9 QZend_Http_UserAgent_AbstractDevice8 1Zend_Http_Response7 ?Zend_Http_Response_Stream6 AZend_Http_Header_SetCookie05 cZend_Http_Header_Exception_RuntimeException84 sZend_Http_Header_Exception_InvalidArgumentException3 3Zend_Http_Exception2 3Zend_Http_CookieJar1 -Zend_Http_Cookie0 -Zend_Http_Client/ AZend_Http_Client_Exception". GZend_Http_Client_Adapter_Test$- KZend_Http_Client_Adapter_Socket#, IZend_Http_Client_Adapter_Proxy'+ QZend_Http_Client_Adapter_Exception   v |\B#p`E'wX,tL'bI% 




n
M
)
				d	?	jP7~cE'	uW<"qI.lQ8%tW!X)^9                           ' QZend_Mobile_Push_Message_Exception" GZend_Mobile_Push_Message_Apns& OZend_Mobile_Push_Message_Abstract 5Zend_Mobile_Push_Gcm AZend_Mobile_Push_Exception1 eZend_Mobile_Push_Exception_ServerUnavailable-
 ]Zend_Mobile_Push_Exception_QuotaExceeded,	 [Zend_Mobile_Push_Exception_InvalidTopic, [Zend_Mobile_Push_Exception_InvalidToken3 iZend_Mobile_Push_Exception_InvalidRegistration. _Zend_Mobile_Push_Exception_InvalidPayload0 cZend_Mobile_Push_Exception_InvalidAuthToken3 iZend_Mobile_Push_Exception_DeviceQuotaExceeded 7Zend_Mobile_Push_Apns ?Zend_Mobile_Push_Abstract 7Zend_Mobile_Exception  Zend_Mime )Zend_Mime_Part~ /Zend_Mime_Message} 3Zend_Mime_Exception| -Zend_Mime_Decode{ #Zend_Memoryz /Zend_Memory_Valuey 3Zend_Memory_Managerx 7Zend_Memory_Exceptionw 7Zend_Memory_Container"v GZend_Memory_Container_Movable!u EZend_Memory_Container_Locked!t EZend_Memory_AccessControllers 3Zend_Measure_Weightr 3Zend_Measure_Volume%q MZend_Measure_Viscosity_Kinematic#p IZend_Measure_Viscosity_Dynamico 3Zend_Measure_Torquen /Zend_Measure_Timem =Zend_Measure_Temperaturel 1Zend_Measure_Speedk 7Zend_Measure_Pressurej 1Zend_Measure_Poweri 3Zend_Measure_Numberh 9Zend_Measure_Lightnessg 3Zend_Measure_Lengthf ?Zend_Measure_Illuminatione 9Zend_Measure_Frequencyd 1Zend_Measure_Forcec =Zend_Measure_Flow_Volumeb 9Zend_Measure_Flow_Molea 9Zend_Measure_Flow_Mass` 9Zend_Measure_Exception_ 3Zend_Measure_Energy^ 5Zend_Measure_Density] 5Zend_Measure_Current \ CZend_Measure_Cooking_Weight [ CZend_Measure_Cooking_VolumeZ =Zend_Measure_CapacitanceY 3Zend_Measure_BinaryX /Zend_Measure_AreaW 1Zend_Measure_AngleV ?Zend_Measure_AccelerationU 7Zend_Measure_AbstractT #Zend_MarkupS 7Zend_Markup_TokenListR /Zend_Markup_Token*Q WZend_Markup_Renderer_RendererAbstractP ?Zend_Markup_Renderer_Html"O GZend_Markup_Renderer_Html_Url#N IZend_Markup_Renderer_Html_List"M GZend_Markup_Renderer_Html_Img+L YZend_Markup_Renderer_Html_HtmlAbstract#K IZend_Markup_Renderer_Html_Code#J IZend_Markup_Renderer_Exception!I EZend_Markup_Parser_ExceptionH ?Zend_Markup_Parser_BbcodeG 7Zend_Markup_ExceptionF Zend_MailE =Zend_Mail_Transport_Smtp!D EZend_Mail_Transport_SendmailC =Zend_Mail_Transport_File"B GZend_Mail_Transport_Exception!A EZend_Mail_Transport_Abstract@ /Zend_Mail_Storage'? QZend_Mail_Storage_Writable_Maildir> 9Zend_Mail_Storage_Pop3= 9Zend_Mail_Storage_Mbox< ?Zend_Mail_Storage_Maildir; 9Zend_Mail_Storage_Imap: =Zend_Mail_Storage_Folder"9 GZend_Mail_Storage_Folder_Mbox%8 MZend_Mail_Storage_Folder_Maildir 7 CZend_Mail_Storage_Exception6 AZend_Mail_Storage_Abstract5 ;Zend_Mail_Protocol_Smtp'4 QZend_Mail_Protocol_Smtp_Auth_Plain'3 QZend_Mail_Protocol_Smtp_Auth_Login)2 UZend_Mail_Protocol_Smtp_Auth_Crammd51 ;Zend_Mail_Protocol_Pop30 ;Zend_Mail_Protocol_Imap!/ EZend_Mail_Protocol_Exception . CZend_Mail_Protocol_Abstract- )Zend_Mail_Part, 3Zend_Mail_Part_File+ /Zend_Mail_Message* 9Zend_Mail_Message_File) 3Zend_Mail_Exception( Zend_Log ' CZend_Log_Writer_ZendMonitor& 9Zend_Log_Writer_Syslog% 9Zend_Log_Writer_Stream$ 5Zend_Log_Writer_Null# 5Zend_Log_Writer_Mock" 5Zend_Log_Writer_Mail! ;Zend_Log_Writer_Firebug  1Zend_Log_Writer_Db =Zend_Log_Writer_Abstract 9Zend_Log_Formatter_Xml ?Zend_Log_Formatter_Simple AZend_Log_Formatter_Firebug  CZend_Log_Formatter_Abstract   r ^9nN2kB#wX.{^<




l
Y
5
				x	O	"fD'
oR1sT9"{[DcH.q<wV:Y:                                    ' QZend_Pdf_Element_Reference_Context ;Zend_Pdf_Element_Object#  IZend_Pdf_Element_Object_Stream =Zend_Pdf_Element_Numeric~ 7Zend_Pdf_Element_Null} 7Zend_Pdf_Element_Name | CZend_Pdf_Element_Dictionary{ =Zend_Pdf_Element_Booleanz 9Zend_Pdf_Element_Arrayy 5Zend_Pdf_Destinationx ?Zend_Pdf_Destination_Zoom!w EZend_Pdf_Destination_Unknownv AZend_Pdf_Destination_Named'u QZend_Pdf_Destination_FitVertically&t OZend_Pdf_Destination_FitRectangle)s UZend_Pdf_Destination_FitHorizontally2r gZend_Pdf_Destination_FitBoundingBoxVertically4q kZend_Pdf_Destination_FitBoundingBoxHorizontally(p SZend_Pdf_Destination_FitBoundingBoxo =Zend_Pdf_Destination_Fit"n GZend_Pdf_Destination_Explicitm )Zend_Pdf_Colorl 1Zend_Pdf_Color_Rgbk 3Zend_Pdf_Color_Htmlj =Zend_Pdf_Color_GrayScalei 3Zend_Pdf_Color_Cmykh 'Zend_Pdf_Cmapg AZend_Pdf_Cmap_TrimmedTable!f EZend_Pdf_Cmap_SegmentToDeltae AZend_Pdf_Cmap_ByteEncoding&d OZend_Pdf_Cmap_ByteEncoding_Staticc +Zend_Pdf_Canvasb =Zend_Pdf_Canvas_Abstracta 3Zend_Pdf_Annotation` =Zend_Pdf_Annotation_Text_ AZend_Pdf_Annotation_Markup^ =Zend_Pdf_Annotation_Link'] QZend_Pdf_Annotation_FileAttachment\ +Zend_Pdf_Action[ 3Zend_Pdf_Action_URIZ ;Zend_Pdf_Action_UnknownY 7Zend_Pdf_Action_TransX 9Zend_Pdf_Action_ThreadW AZend_Pdf_Action_SubmitFormV 7Zend_Pdf_Action_Sound U CZend_Pdf_Action_SetOCGStateT ?Zend_Pdf_Action_ResetFormS ?Zend_Pdf_Action_RenditionR 7Zend_Pdf_Action_NamedQ 7Zend_Pdf_Action_MovieP 9Zend_Pdf_Action_LaunchO AZend_Pdf_Action_JavaScriptN AZend_Pdf_Action_ImportDataM 5Zend_Pdf_Action_HideL 7Zend_Pdf_Action_GoToRK 7Zend_Pdf_Action_GoToEJ AZend_Pdf_Action_GoTo3DViewI 5Zend_Pdf_Action_GoToH )Zend_Paginator-G ]Zend_Paginator_SerializableLimitIterator*F WZend_Paginator_ScrollingStyle_Sliding*E WZend_Paginator_ScrollingStyle_Jumping*D WZend_Paginator_ScrollingStyle_Elastic&C OZend_Paginator_ScrollingStyle_AllB =Zend_Paginator_Exception A CZend_Paginator_Adapter_Null$@ KZend_Paginator_Adapter_Iterator)? UZend_Paginator_Adapter_DbTableSelect$> KZend_Paginator_Adapter_DbSelect!= EZend_Paginator_Adapter_Array< #Zend_OpenId; 5Zend_OpenId_Provider: ?Zend_OpenId_Provider_User&9 OZend_OpenId_Provider_User_Session!8 EZend_OpenId_Provider_Storage&7 OZend_OpenId_Provider_Storage_File6 7Zend_OpenId_Extension5 AZend_OpenId_Extension_Sreg4 7Zend_OpenId_Exception3 5Zend_OpenId_Consumer!2 EZend_OpenId_Consumer_Storage&1 OZend_OpenId_Consumer_Storage_File0 !Zend_Oauth/ -Zend_Oauth_Token. =Zend_Oauth_Token_Request'- QZend_Oauth_Token_AuthorizedRequest, ;Zend_Oauth_Token_Access++ YZend_Oauth_Signature_SignatureAbstract* =Zend_Oauth_Signature_Rsa#) IZend_Oauth_Signature_Plaintext( ?Zend_Oauth_Signature_Hmac' +Zend_Oauth_Http& ;Zend_Oauth_Http_Utility&% OZend_Oauth_Http_UserAuthorization!$ EZend_Oauth_Http_RequestToken # CZend_Oauth_Http_AccessToken" 5Zend_Oauth_Exception! 3Zend_Oauth_Consumer  /Zend_Oauth_Config /Zend_Oauth_Client +Zend_Navigation 5Zend_Navigation_Page =Zend_Navigation_Page_Uri =Zend_Navigation_Page_Mvc ?Zend_Navigation_Exception ?Zend_Navigation_Container$ KZend_Mobile_Push_Test_ApnsProxy" GZend_Mobile_Push_Response_Gcm 7Zend_Mobile_Push_Mpns" GZend_Mobile_Push_Message_Mpns( SZend_Mobile_Push_Message_Mpns_Toast' QZend_Mobile_Push_Message_Mpns_Tile& OZend_Mobile_Push_Message_Mpns_Raw! EZend_Mobile_Push_Message_Gcm   g  qR:a< fFnN/k<



`
*			r	:{F]"fB|_I2}S,^>kO,sV,        !i EZend_Reflection_Docblock_Tag(h SZend_Reflection_Docblock_Tag_Return'g QZend_Reflection_Docblock_Tag_Paramf 7Zend_Reflection_Classe !Zend_Queued 9Zend_Queue_Stomp_Framec ;Zend_Queue_Stomp_Client'b QZend_Queue_Stomp_Client_Connectiona 1Zend_Queue_Message#` IZend_Queue_Message_PlatformJob _ CZend_Queue_Message_Iterator^ 5Zend_Queue_Exception(] SZend_Queue_Adapter_PlatformJobQueue\ ;Zend_Queue_Adapter_Null![ EZend_Queue_Adapter_MemcacheqZ 7Zend_Queue_Adapter_Db Y CZend_Queue_Adapter_Db_Queue"X GZend_Queue_Adapter_Db_MessageW =Zend_Queue_Adapter_Array'V QZend_Queue_Adapter_AdapterAbstract U CZend_Queue_Adapter_ActivemqT -Zend_ProgressBarS AZend_ProgressBar_ExceptionR =Zend_ProgressBar_Adapter$Q KZend_ProgressBar_Adapter_JsPush$P KZend_ProgressBar_Adapter_JsPull'O QZend_ProgressBar_Adapter_Exception%N MZend_ProgressBar_Adapter_ConsoleM Zend_Pdf!L EZend_Pdf_UpdateInfoContainerK -Zend_Pdf_TrailerJ ;Zend_Pdf_Trailer_KeeperI AZend_Pdf_Trailer_GeneratorH +Zend_Pdf_TargetG )Zend_Pdf_StyleF 7Zend_Pdf_StringParserE /Zend_Pdf_ResourceD ?Zend_Pdf_Resource_Unified#C IZend_Pdf_Resource_ImageFactoryB ;Zend_Pdf_Resource_Image!A EZend_Pdf_Resource_Image_Tiff @ CZend_Pdf_Resource_Image_Png!? EZend_Pdf_Resource_Image_Jpeg$> KZend_Pdf_Resource_GraphicsState= 9Zend_Pdf_Resource_Font!< EZend_Pdf_Resource_Font_Type0"; GZend_Pdf_Resource_Font_Simple+: YZend_Pdf_Resource_Font_Simple_Standard89 sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats68 oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman77 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic;6 yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic55 mZend_Pdf_Resource_Font_Simple_Standard_TimesBold24 gZend_Pdf_Resource_Font_Simple_Standard_Symbol<3 {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueA2 Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique91 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold50 mZend_Pdf_Resource_Font_Simple_Standard_Helvetica:/ wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique>. Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique7- qZend_Pdf_Resource_Font_Simple_Standard_CourierBold3, iZend_Pdf_Resource_Font_Simple_Standard_Courier)+ UZend_Pdf_Resource_Font_Simple_Parsed2* gZend_Pdf_Resource_Font_Simple_Parsed_TrueType*) WZend_Pdf_Resource_Font_FontDescriptor%( MZend_Pdf_Resource_Font_Extracted#' IZend_Pdf_Resource_Font_CidFont,& [Zend_Pdf_Resource_Font_CidFont_TrueType % CZend_Pdf_Resource_Extractor$$ KZend_Pdf_Resource_ContentStream3# iZend_Pdf_RecursivelyIteratableObjectsContainer" +Zend_Pdf_Parser! 'Zend_Pdf_Page  -Zend_Pdf_Outline ;Zend_Pdf_Outline_Loaded =Zend_Pdf_Outline_Created /Zend_Pdf_NameTree )Zend_Pdf_Image 'Zend_Pdf_Font ?Zend_Pdf_Filter_RunLength  CZend_Pdf_Filter_Compression$ KZend_Pdf_Filter_Compression_Lzw& OZend_Pdf_Filter_Compression_Flate =Zend_Pdf_Filter_AsciiHex ;Zend_Pdf_Filter_Ascii85" GZend_Pdf_FileParserDataSource) UZend_Pdf_FileParserDataSource_String' QZend_Pdf_FileParserDataSource_File 3Zend_Pdf_FileParser ?Zend_Pdf_FileParser_Image" GZend_Pdf_FileParser_Image_Png =Zend_Pdf_FileParser_Font& OZend_Pdf_FileParser_Font_OpenType/ aZend_Pdf_FileParser_Font_OpenType_TrueType 1Zend_Pdf_Exception
 ;Zend_Pdf_ElementFactory"	 GZend_Pdf_ElementFactory_Proxy -Zend_Pdf_Element ;Zend_Pdf_Element_String# IZend_Pdf_Element_String_Binary ;Zend_Pdf_Element_Stream AZend_Pdf_Element_Reference% MZend_Pdf_Element_Reference_Table   W  bD#lP5~Fv>X/



F
				o	G	vEYoH"CPz@[(l@                                          1@ eZend_Search_Lucene_Search_QueryParserContext*? WZend_Search_Lucene_Search_QueryParser)> UZend_Search_Lucene_Search_QueryLexer'= QZend_Search_Lucene_Search_QueryHit)< UZend_Search_Lucene_Search_QueryEntry.; _Zend_Search_Lucene_Search_QueryEntry_Term2: gZend_Search_Lucene_Search_QueryEntry_Subquery09 cZend_Search_Lucene_Search_QueryEntry_Phrase$8 KZend_Search_Lucene_Search_Query-7 ]Zend_Search_Lucene_Search_Query_Wildcard)6 UZend_Search_Lucene_Search_Query_Term*5 WZend_Search_Lucene_Search_Query_Range24 gZend_Search_Lucene_Search_Query_Preprocessing73 qZend_Search_Lucene_Search_Query_Preprocessing_Term92 uZend_Search_Lucene_Search_Query_Preprocessing_Phrase81 sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy+0 YZend_Search_Lucene_Search_Query_Phrase./ _Zend_Search_Lucene_Search_Query_MultiTerm2. gZend_Search_Lucene_Search_Query_Insignificant*- WZend_Search_Lucene_Search_Query_Fuzzy*, WZend_Search_Lucene_Search_Query_Empty,+ [Zend_Search_Lucene_Search_Query_Boolean2* gZend_Search_Lucene_Search_Highlighter_Default:) wZend_Search_Lucene_Search_BooleanExpressionRecognizer( =Zend_Search_Lucene_Proxy%' MZend_Search_Lucene_PriorityQueue/& aZend_Search_Lucene_Interface_MultiSearcher%% MZend_Search_Lucene_MultiSearcher#$ IZend_Search_Lucene_LockManager$# KZend_Search_Lucene_Index_Writer0" cZend_Search_Lucene_Index_TermsPriorityQueue&! OZend_Search_Lucene_Index_TermInfo"  GZend_Search_Lucene_Index_Term+ YZend_Search_Lucene_Index_SegmentWriter8 sZend_Search_Lucene_Index_SegmentWriter_StreamWriter: wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter+ YZend_Search_Lucene_Index_SegmentMerger) UZend_Search_Lucene_Index_SegmentInfo' QZend_Search_Lucene_Index_FieldInfo( SZend_Search_Lucene_Index_DocsFilter. _Zend_Search_Lucene_Index_DictionaryLoader! EZend_Search_Lucene_FSMAction 9Zend_Search_Lucene_FSM =Zend_Search_Lucene_Field! EZend_Search_Lucene_Exception  CZend_Search_Lucene_Document% MZend_Search_Lucene_Document_Xlsx% MZend_Search_Lucene_Document_Pptx( SZend_Search_Lucene_Document_OpenXml% MZend_Search_Lucene_Document_Html* WZend_Search_Lucene_Document_Exception% MZend_Search_Lucene_Document_Docx, [Zend_Search_Lucene_Analysis_TokenFilter6 oZend_Search_Lucene_Analysis_TokenFilter_StopWords7
 qZend_Search_Lucene_Analysis_TokenFilter_ShortWords:	 wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf86 oZend_Search_Lucene_Analysis_TokenFilter_LowerCase& OZend_Search_Lucene_Analysis_Token) UZend_Search_Lucene_Analysis_Analyzer0 cZend_Search_Lucene_Analysis_Analyzer_Common8 sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumI Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive5 mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8F Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive8  sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumI Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive5~ mZend_Search_Lucene_Analysis_Analyzer_Common_TextF} Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive| 7Zend_Search_Exception{ -Zend_Rest_Serverz AZend_Rest_Server_Exceptiony +Zend_Rest_Routex 3Zend_Rest_Exceptionw 5Zend_Rest_Controllerv -Zend_Rest_Clientu ;Zend_Rest_Client_Result&t OZend_Rest_Client_Result_Exceptions AZend_Rest_Client_Exceptionr 'Zend_Registryq =Zend_Reflection_Propertyp ?Zend_Reflection_Parametero 9Zend_Reflection_Methodn =Zend_Reflection_Functionm 5Zend_Reflection_Filel ?Zend_Reflection_Extensionk ?Zend_Reflection_Exceptionj =Zend_Reflection_Docblock   `  j>R*g@|T0	lU9 



y
U
1
					j	B	uNi?pG"rL$fFjE'xK'h)                                          5  mZend_Service_Console_Command_ParameterSource_Env< {Zend_Service_Console_Command_ParameterSource_ConfigFile6 oZend_Service_Console_Command_ParameterSource_Argv  CZend_Service_Audioscrobbler 3Zend_Service_Amazon ;Zend_Service_Amazon_Sqs& OZend_Service_Amazon_Sqs_Exception! EZend_Service_Amazon_SimpleDb* WZend_Service_Amazon_SimpleDb_Response& OZend_Service_Amazon_SimpleDb_Page+ YZend_Service_Amazon_SimpleDb_Exception+ YZend_Service_Amazon_SimpleDb_Attribute' QZend_Service_Amazon_SimilarProduct 9Zend_Service_Amazon_S3" GZend_Service_Amazon_S3_Stream% MZend_Service_Amazon_S3_Exception" GZend_Service_Amazon_ResultSet ?Zend_Service_Amazon_Query! EZend_Service_Amazon_OfferSet ?Zend_Service_Amazon_Offer& OZend_Service_Amazon_ListmaniaList =Zend_Service_Amazon_Item
 ?Zend_Service_Amazon_Image"	 GZend_Service_Amazon_Exception( SZend_Service_Amazon_EditorialReview ;Zend_Service_Amazon_Ec2+ YZend_Service_Amazon_Ec2_Securitygroups% MZend_Service_Amazon_Ec2_Response# IZend_Service_Amazon_Ec2_Region$ KZend_Service_Amazon_Ec2_Keypair% MZend_Service_Amazon_Ec2_Instance- ]Zend_Service_Amazon_Ec2_Instance_Windows.  _Zend_Service_Amazon_Ec2_Instance_Reserved" GZend_Service_Amazon_Ec2_Image&~ OZend_Service_Amazon_Ec2_Exception&} OZend_Service_Amazon_Ec2_Elasticip | CZend_Service_Amazon_Ec2_Ebs'{ QZend_Service_Amazon_Ec2_CloudWatch.z _Zend_Service_Amazon_Ec2_Availabilityzones%y MZend_Service_Amazon_Ec2_Abstract'x QZend_Service_Amazon_CustomerReview'w QZend_Service_Amazon_Authentication*v WZend_Service_Amazon_Authentication_V2*u WZend_Service_Amazon_Authentication_V1*t WZend_Service_Amazon_Authentication_S31s eZend_Service_Amazon_Authentication_Exception$r KZend_Service_Amazon_Accessories!q EZend_Service_Amazon_Abstractp 5Zend_Service_Akismeto 7Zend_Service_Abstractn 9Zend_Server_Reflection'm QZend_Server_Reflection_ReturnValue%l MZend_Server_Reflection_Prototype%k MZend_Server_Reflection_Parameter j CZend_Server_Reflection_Node"i GZend_Server_Reflection_Method$h KZend_Server_Reflection_Function-g ]Zend_Server_Reflection_Function_Abstract%f MZend_Server_Reflection_Exception!e EZend_Server_Reflection_Class!d EZend_Server_Method_Prototype!c EZend_Server_Method_Parameter"b GZend_Server_Method_Definition a CZend_Server_Method_Callback` 7Zend_Server_Exception_ 9Zend_Server_Definition^ /Zend_Server_Cache] 5Zend_Server_Abstract\ +Zend_Serializer[ ?Zend_Serializer_Exception!Z EZend_Serializer_Adapter_Wddx)Y UZend_Serializer_Adapter_PythonPickle)X UZend_Serializer_Adapter_PhpSerialize$W KZend_Serializer_Adapter_PhpCode!V EZend_Serializer_Adapter_Json%U MZend_Serializer_Adapter_Igbinary!T EZend_Serializer_Adapter_Amf3!S EZend_Serializer_Adapter_Amf0,R [Zend_Serializer_Adapter_AdapterAbstractQ 1Zend_Search_Lucene0P cZend_Search_Lucene_TermStreamsPriorityQueue$O KZend_Search_Lucene_Storage_File+N YZend_Search_Lucene_Storage_File_Memory/M aZend_Search_Lucene_Storage_File_Filesystem)L UZend_Search_Lucene_Storage_Directory4K kZend_Search_Lucene_Storage_Directory_Filesystem%J MZend_Search_Lucene_Search_Weight*I WZend_Search_Lucene_Search_Weight_Term,H [Zend_Search_Lucene_Search_Weight_Phrase/G aZend_Search_Lucene_Search_Weight_MultiTerm+F YZend_Search_Lucene_Search_Weight_Empty-E ]Zend_Search_Lucene_Search_Weight_Boolean)D UZend_Search_Lucene_Search_Similarity1C eZend_Search_Lucene_Search_Similarity_Default)B UZend_Search_Lucene_Search_QueryToken3A iZend_Search_Lucene_Search_QueryParserException   : | gADq+b#d5


e
$			X	OJ2)kT5   |9Z uZend_Service_DeveloperGarden_Request_SendSms_SendSMS>Y Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS9X uZend_Service_DeveloperGarden_Request_RequestAbstractIW Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequestEV Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest3U iZend_Service_DeveloperGarden_Request_ExceptionRT %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequestYS 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequestdR IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequestQQ #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequestRP %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequestYO 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequestdN IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequestQM #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequestOL Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequestUK +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequestUJ +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequestVI -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequestaH CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequestZG 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequestTF )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequestRE %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequestYD 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequestQC #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequestQB #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequestaA CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequestN@ Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformationL? Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalanceJ> Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool-= ]Zend_Service_DeveloperGarden_LocalSearch>< Zend_Service_DeveloperGarden_LocalSearch_SearchParameters7; qZend_Service_DeveloperGarden_LocalSearch_Exception,: [Zend_Service_DeveloperGarden_IpLocation69 oZend_Service_DeveloperGarden_IpLocation_IpAddress+8 YZend_Service_DeveloperGarden_Exception,7 [Zend_Service_DeveloperGarden_Credential06 cZend_Service_DeveloperGarden_ConferenceCallC5 Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatusC4 Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail<3 {Zend_Service_DeveloperGarden_ConferenceCall_Participant:2 wZend_Service_DeveloperGarden_ConferenceCall_ExceptionD1 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceScheduleB0 Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetailC/ Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount-. ]Zend_Service_DeveloperGarden_Client_Soap2- gZend_Service_DeveloperGarden_Client_Exception7, qZend_Service_DeveloperGarden_Client_ClientAbstract1+ eZend_Service_DeveloperGarden_BaseUserServiceA* Zend_Service_DeveloperGarden_BaseUserService_AccountBalance) 9Zend_Service_Delicious&( OZend_Service_Delicious_SimplePost$' KZend_Service_Delicious_PostList & CZend_Service_Delicious_Post%% MZend_Service_Delicious_Exception#$ IZend_Service_Console_Exception!# EZend_Service_Console_Command7" qZend_Service_Console_Command_ParameterSource_StdIn8! sZend_Service_Console_Command_ParameterSource_Prompt   -  l&M}0L"


+		{	d	S+fOC,w!                                                                                       f MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponseS 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponseT )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponsef MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponseS 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponseU +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseTypeQ  #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseTypeW~ /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse[} 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseTypeW| /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse\{ 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseTypeXz 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponsegy OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseTypecx GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse`w AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType\v 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseZu 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseTypeVt -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseXs 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseTypeTr )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse_q ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType[p 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseWo /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseTypeSn 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseQm #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstractSl 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponseJk Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseTypegj OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseTypeci GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseWh /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponseUg +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponseSf 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse3e iZend_Service_DeveloperGarden_Response_BaseTypeJd Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstractCc Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCallGb Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced=a }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallA` Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatusA_ Zend_Service_DeveloperGarden_Request_SmsValidation_ValidateN^ Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeywordC] Zend_Service_DeveloperGarden_Request_SmsValidation_InvalidateL\ Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbersB[ Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract   @  K8\~2;


W

		d	z0@l>WU!lAzJ^/                                 )G UZend_Service_Ebay_Finding_Storefront+F YZend_Service_Ebay_Finding_ShippingInfo+E YZend_Service_Ebay_Finding_Set_Abstract,D [Zend_Service_Ebay_Finding_SellingStatus)C UZend_Service_Ebay_Finding_SellerInfo,B [Zend_Service_Ebay_Finding_Search_Result*A WZend_Service_Ebay_Finding_Search_Item.@ _Zend_Service_Ebay_Finding_Search_Item_Set0? cZend_Service_Ebay_Finding_Response_Keywords-> ]Zend_Service_Ebay_Finding_Response_Items2= gZend_Service_Ebay_Finding_Response_Histograms0< cZend_Service_Ebay_Finding_Response_Abstract/; aZend_Service_Ebay_Finding_PaginationOutput*: WZend_Service_Ebay_Finding_ListingInfo(9 SZend_Service_Ebay_Finding_Exception,8 [Zend_Service_Ebay_Finding_Error_Message)7 UZend_Service_Ebay_Finding_Error_Data-6 ]Zend_Service_Ebay_Finding_Error_Data_Set'5 QZend_Service_Ebay_Finding_Category14 eZend_Service_Ebay_Finding_Category_Histogram53 mZend_Service_Ebay_Finding_Category_Histogram_Set;2 yZend_Service_Ebay_Finding_Category_Histogram_Container%1 MZend_Service_Ebay_Finding_Aspect)0 UZend_Service_Ebay_Finding_Aspect_Set5/ mZend_Service_Ebay_Finding_Aspect_Histogram_Value9. uZend_Service_Ebay_Finding_Aspect_Histogram_Value_Set9- uZend_Service_Ebay_Finding_Aspect_Histogram_Container', QZend_Service_Ebay_Finding_Abstract + CZend_Service_Ebay_Exception* AZend_Service_Ebay_Abstract+) YZend_Service_DeveloperGarden_VoiceCall/( aZend_Service_DeveloperGarden_SmsValidation)' UZend_Service_DeveloperGarden_SendSms5& mZend_Service_DeveloperGarden_SecurityTokenServer;% yZend_Service_DeveloperGarden_SecurityTokenServer_CacheK$ Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstractL# Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponseP" !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponseG! Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponseJ  Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponseK Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2ResponseL Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponseI Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumberW /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponseJ Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponseU +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponseC Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponseC Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstractH Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponseU +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponseQ #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponseI Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception; yZend_Service_DeveloperGarden_Response_ResponseAbstractO Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseTypeK Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseA Zend_Service_DeveloperGarden_Response_IpLocation_RegionTypeK Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseTypeG Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseL Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationTypeI Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType> Zend_Service_DeveloperGarden_Response_IpLocation_CityType4
 kZend_Service_DeveloperGarden_Response_ExceptionT	 )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponse   X  ~Y>V$xHZ"|U7



x
O
'					`	.|X/vW1wCqEjE `(R@^                                            4 kZend_Service_WindowsAzure_Credentials_SharedKeyA Zend_Service_WindowsAzure_Credentials_SharedAccessSignature4 kZend_Service_WindowsAzure_Credentials_Exception> Zend_Service_WindowsAzure_Credentials_CredentialsAbstract2 gZend_Service_WindowsAzure_CommandLine_Storage2 gZend_Service_WindowsAzure_CommandLine_Service !ScaffolderW /Zend_Service_WindowsAzure_CommandLine_PackageScaffolder_PackageScaffolderAbstract2 gZend_Service_WindowsAzure_CommandLine_PackageD 	Zend_Service_WindowsAzure_CommandLine_GetAsynchronousOperation5 mZend_Service_WindowsAzure_CommandLine_Deployment6 oZend_Service_WindowsAzure_CommandLine_Certificate 5Zend_Service_Twitter" GZend_Service_Twitter_Response# IZend_Service_Twitter_Exception ;Zend_Service_Technorati# IZend_Service_Technorati_Weblog" GZend_Service_Technorati_Utils* WZend_Service_Technorati_TagsResultSet' QZend_Service_Technorati_TagsResult) UZend_Service_Technorati_TagResultSet&
 OZend_Service_Technorati_TagResult,	 [Zend_Service_Technorati_SearchResultSet) UZend_Service_Technorati_SearchResult& OZend_Service_Technorati_ResultSet# IZend_Service_Technorati_Result* WZend_Service_Technorati_KeyInfoResult* WZend_Service_Technorati_GetInfoResult& OZend_Service_Technorati_Exception1 eZend_Service_Technorati_DailyCountsResultSet. _Zend_Service_Technorati_DailyCountsResult,  [Zend_Service_Technorati_CosmosResultSet) UZend_Service_Technorati_CosmosResult+~ YZend_Service_Technorati_BlogInfoResult#} IZend_Service_Technorati_Author| ;Zend_Service_StrikeIron({ SZend_Service_StrikeIron_ZipCodeInfo2z gZend_Service_StrikeIron_USAddressVerification-y ]Zend_Service_StrikeIron_SalesUseTaxBasic&x OZend_Service_StrikeIron_Exception&w OZend_Service_StrikeIron_Decorator!v EZend_Service_StrikeIron_Base;u yZend_Service_SqlAzure_Management_ServiceEntityAbstract4t kZend_Service_SqlAzure_Management_ServerInstance:s wZend_Service_SqlAzure_Management_FirewallRuleInstance/r aZend_Service_SqlAzure_Management_Exception,q [Zend_Service_SqlAzure_Management_Client$p KZend_Service_SqlAzure_Exceptiono ;Zend_Service_SlideShare&n OZend_Service_SlideShare_SlideShow&m OZend_Service_SlideShare_Exception%l MZend_Service_ShortUrl_TinyUrlCom&k OZend_Service_ShortUrl_MetamarkNet!j EZend_Service_ShortUrl_JdemCzi AZend_Service_ShortUrl_IsGd$h KZend_Service_ShortUrl_Exception g CZend_Service_ShortUrl_BitLy,f [Zend_Service_ShortUrl_AbstractShortenere 9Zend_Service_ReCaptcha$d KZend_Service_ReCaptcha_Response$c KZend_Service_ReCaptcha_MailHide.b _Zend_Service_ReCaptcha_MailHide_Exception%a MZend_Service_ReCaptcha_Exception#` IZend_Service_Rackspace_Servers5_ mZend_Service_Rackspace_Servers_SharedIpGroupList1^ eZend_Service_Rackspace_Servers_SharedIpGroup.] _Zend_Service_Rackspace_Servers_ServerList*\ WZend_Service_Rackspace_Servers_Server-[ ]Zend_Service_Rackspace_Servers_ImageList)Z UZend_Service_Rackspace_Servers_Image-Y ]Zend_Service_Rackspace_Servers_Exception!X EZend_Service_Rackspace_Files,W [Zend_Service_Rackspace_Files_ObjectList(V SZend_Service_Rackspace_Files_Object+U YZend_Service_Rackspace_Files_Exception/T aZend_Service_Rackspace_Files_ContainerList+S YZend_Service_Rackspace_Files_Container%R MZend_Service_Rackspace_Exception$Q KZend_Service_Rackspace_AbstractP 7Zend_Service_LiveDocx$O KZend_Service_LiveDocx_MailMerge$N KZend_Service_LiveDocx_ExceptionM 3Zend_Service_Flickr"L GZend_Service_Flickr_ResultSetK AZend_Service_Flickr_ResultJ ?Zend_Service_Flickr_ImageI 9Zend_Service_ExceptionH ?Zend_Service_Ebay_Finding   F  ~&\t#4	e"


p
:			o	*^s2`2Rz@c,i;vJ)                                    &e OZend_Service_Yahoo_VideoResultSet#d IZend_Service_Yahoo_VideoResult!c EZend_Service_Yahoo_ResultSetb ?Zend_Service_Yahoo_Result)a UZend_Service_Yahoo_PageDataResultSet&` OZend_Service_Yahoo_PageDataResult%_ MZend_Service_Yahoo_NewsResultSet"^ GZend_Service_Yahoo_NewsResult&] OZend_Service_Yahoo_LocalResultSet#\ IZend_Service_Yahoo_LocalResult+[ YZend_Service_Yahoo_InlinkDataResultSet(Z SZend_Service_Yahoo_InlinkDataResult&Y OZend_Service_Yahoo_ImageResultSet#X IZend_Service_Yahoo_ImageResultW =Zend_Service_Yahoo_Image&V OZend_Service_WindowsAzure_Storage4U kZend_Service_WindowsAzure_Storage_TableInstance7T qZend_Service_WindowsAzure_Storage_TableEntityQuery2S gZend_Service_WindowsAzure_Storage_TableEntity,R [Zend_Service_WindowsAzure_Storage_Table<Q {Zend_Service_WindowsAzure_Storage_StorageEntityAbstract7P qZend_Service_WindowsAzure_Storage_SignedIdentifier3O iZend_Service_WindowsAzure_Storage_QueueMessage4N kZend_Service_WindowsAzure_Storage_QueueInstance,M [Zend_Service_WindowsAzure_Storage_Queue9L uZend_Service_WindowsAzure_Storage_PageRegionInstance4K kZend_Service_WindowsAzure_Storage_LeaseInstance9J uZend_Service_WindowsAzure_Storage_DynamicTableEntity3I iZend_Service_WindowsAzure_Storage_BlobInstance4H kZend_Service_WindowsAzure_Storage_BlobContainer+G YZend_Service_WindowsAzure_Storage_Blob2F gZend_Service_WindowsAzure_Storage_Blob_Stream;E yZend_Service_WindowsAzure_Storage_BatchStorageAbstract,D [Zend_Service_WindowsAzure_Storage_Batch-C ]Zend_Service_WindowsAzure_SessionHandler>B Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract1A eZend_Service_WindowsAzure_RetryPolicy_RetryN2@ gZend_Service_WindowsAzure_RetryPolicy_NoRetry4? kZend_Service_WindowsAzure_RetryPolicy_ExceptionH> Zend_Service_WindowsAzure_Management_SubscriptionOperationInstanceA= Zend_Service_WindowsAzure_Management_StorageServiceInstance@< Zend_Service_WindowsAzure_Management_ServiceEntityAbstractB; Zend_Service_WindowsAzure_Management_OperationStatusInstanceB: Zend_Service_WindowsAzure_Management_OperatingSystemInstanceH9 Zend_Service_WindowsAzure_Management_OperatingSystemFamilyInstance:8 wZend_Service_WindowsAzure_Management_LocationInstance@7 Zend_Service_WindowsAzure_Management_HostedServiceInstance36 iZend_Service_WindowsAzure_Management_Exception<5 {Zend_Service_WindowsAzure_Management_DeploymentInstance04 cZend_Service_WindowsAzure_Management_Client=3 }Zend_Service_WindowsAzure_Management_CertificateInstance@2 Zend_Service_WindowsAzure_Management_AffinityGroupInstance61 oZend_Service_WindowsAzure_Log_Writer_WindowsAzure90 uZend_Service_WindowsAzure_Log_Formatter_WindowsAzure,/ [Zend_Service_WindowsAzure_Log_Exception(. SZend_Service_WindowsAzure_ExceptionJ- Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscription2, gZend_Service_WindowsAzure_Diagnostics_Manager3+ iZend_Service_WindowsAzure_Diagnostics_LogLevel4* kZend_Service_WindowsAzure_Diagnostics_ExceptionN) Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscriptionH( Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLogL' Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCountersK& Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstract<% {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogsA$ Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstanceD# 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectoriesU" +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogsD! 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSources8  sZend_Service_WindowsAzure_Credentials_SharedKeyLite   c  ~`BaC$mU5X&~Z4




t
^
D
/
					S	$k<	j>a0~Q"kDrXCo6?                                           DH 	Zend_Tool_Framework_Client_Console_ResponseDecorator_ColorizerCG Zend_Tool_Framework_Client_Console_ResponseDecorator_BlockizeFF Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter0E cZend_Tool_Framework_Client_Console_Manifest2D gZend_Tool_Framework_Client_Console_HelpSystem6C oZend_Tool_Framework_Client_Console_ArgumentParser&B OZend_Tool_Framework_Client_Config(A SZend_Tool_Framework_Client_Abstract*@ WZend_Tool_Framework_Action_Repository)? UZend_Tool_Framework_Action_Exception$> KZend_Tool_Framework_Action_Base= 'Zend_TimeSync< 1Zend_TimeSync_Sntp; 9Zend_TimeSync_Protocol: /Zend_TimeSync_Ntp9 ;Zend_TimeSync_Exception8 +Zend_Text_Table7 3Zend_Text_Table_Row6 ?Zend_Text_Table_Exception&5 OZend_Text_Table_Decorator_Unicode$4 KZend_Text_Table_Decorator_Ascii3 9Zend_Text_Table_Column2 3Zend_Text_MultiByte1 -Zend_Text_Figlet0 AZend_Text_Figlet_Exception/ 3Zend_Text_Exception&. OZend_Test_PHPUnit_Db_SimpleTester,- [Zend_Test_PHPUnit_Db_Operation_Truncate*, WZend_Test_PHPUnit_Db_Operation_Insert-+ ]Zend_Test_PHPUnit_Db_Operation_DeleteAll** WZend_Test_PHPUnit_Db_Metadata_Generic#) IZend_Test_PHPUnit_Db_Exception,( [Zend_Test_PHPUnit_Db_DataSet_QueryTable.' _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet0& cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet)% UZend_Test_PHPUnit_Db_DataSet_DbTable*$ WZend_Test_PHPUnit_Db_DataSet_DbRowset$# KZend_Test_PHPUnit_Db_Connection'" QZend_Test_PHPUnit_DatabaseTestCase)! UZend_Test_PHPUnit_ControllerTestCase2  gZend_Test_PHPUnit_Constraint_ResponseHeader412 gZend_Test_PHPUnit_Constraint_ResponseHeader372 gZend_Test_PHPUnit_Constraint_ResponseHeader340 cZend_Test_PHPUnit_Constraint_ResponseHeader, [Zend_Test_PHPUnit_Constraint_Redirect41, [Zend_Test_PHPUnit_Constraint_Redirect37, [Zend_Test_PHPUnit_Constraint_Redirect34* WZend_Test_PHPUnit_Constraint_Redirect+ YZend_Test_PHPUnit_Constraint_Exception, [Zend_Test_PHPUnit_Constraint_DomQuery41, [Zend_Test_PHPUnit_Constraint_DomQuery37, [Zend_Test_PHPUnit_Constraint_DomQuery34* WZend_Test_PHPUnit_Constraint_DomQuery 7Zend_Test_DbStatement 3Zend_Test_DbAdapter /Zend_Tag_ItemList 'Zend_Tag_Item 1Zend_Tag_Exception )Zend_Tag_Cloud =Zend_Tag_Cloud_Exception! EZend_Tag_Cloud_Decorator_Tag% MZend_Tag_Cloud_Decorator_HtmlTag'
 QZend_Tag_Cloud_Decorator_HtmlCloud'	 QZend_Tag_Cloud_Decorator_Exception# IZend_Tag_Cloud_Decorator_Cloud! EZend_Stdlib_SplPriorityQueue -SplPriorityQueue ?Zend_Stdlib_PriorityQueue3 iZend_Stdlib_Exception_InvalidCallbackException  CZend_Stdlib_CallbackHandler )Zend_Soap_Wsdl/ aZend_Soap_Wsdl_Strategy_DefaultComplexType&  OZend_Soap_Wsdl_Strategy_Composite0 cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence/~ aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex$} KZend_Soap_Wsdl_Strategy_AnyType%| MZend_Soap_Wsdl_Strategy_Abstract{ =Zend_Soap_Wsdl_Exceptionz -Zend_Soap_Servery 9Zend_Soap_Server_Proxyx AZend_Soap_Server_Exceptionw -Zend_Soap_Clientv 9Zend_Soap_Client_Localu AZend_Soap_Client_Exceptiont ;Zend_Soap_Client_DotNets ;Zend_Soap_Client_Commonr 9Zend_Soap_AutoDiscover%q MZend_Soap_AutoDiscover_Exceptionp %Zend_Session)o UZend_Session_Validator_HttpUserAgent$n KZend_Session_Validator_Abstract'm QZend_Session_SaveHandler_Exception%l MZend_Session_SaveHandler_DbTablek 9Zend_Session_Namespacej 9Zend_Session_Exceptioni 7Zend_Session_Abstracth 1Zend_Service_Yahoo$g KZend_Service_Yahoo_WebResultSet!f EZend_Service_Yahoo_WebResult   M  c(\g<Z,qE



d
6
				U	!}GP$m7a/e,c6b-c/                                      2 gZend_Tool_Project_Context_Zf_ModulesDirectory1 eZend_Tool_Project_Context_Zf_ModuleDirectory1 eZend_Tool_Project_Context_Zf_ModelsDirectory+ YZend_Tool_Project_Context_Zf_ModelFile/ aZend_Tool_Project_Context_Zf_LogsDirectory2 gZend_Tool_Project_Context_Zf_LocalesDirectory2 gZend_Tool_Project_Context_Zf_LibraryDirectory2 gZend_Tool_Project_Context_Zf_LayoutsDirectory8 sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory2 gZend_Tool_Project_Context_Zf_LayoutScriptFile. _Zend_Tool_Project_Context_Zf_HtaccessFile0
 cZend_Tool_Project_Context_Zf_FormsDirectory*	 WZend_Tool_Project_Context_Zf_FormFile/ aZend_Tool_Project_Context_Zf_DocsDirectory- ]Zend_Tool_Project_Context_Zf_DbTableFile2 gZend_Tool_Project_Context_Zf_DbTableDirectory/ aZend_Tool_Project_Context_Zf_DataDirectory6 oZend_Tool_Project_Context_Zf_ControllersDirectory0 cZend_Tool_Project_Context_Zf_ControllerFile2 gZend_Tool_Project_Context_Zf_ConfigsDirectory, [Zend_Tool_Project_Context_Zf_ConfigFile0  cZend_Tool_Project_Context_Zf_CacheDirectory/ aZend_Tool_Project_Context_Zf_BootstrapFile6~ oZend_Tool_Project_Context_Zf_ApplicationDirectory7} qZend_Tool_Project_Context_Zf_ApplicationConfigFile/| aZend_Tool_Project_Context_Zf_ApisDirectory.{ _Zend_Tool_Project_Context_Zf_ActionMethod3z iZend_Tool_Project_Context_Zf_AbstractClassFile@y Zend_Tool_Project_Context_System_ProjectProvidersDirectory8x sZend_Tool_Project_Context_System_ProjectProfileFile6w oZend_Tool_Project_Context_System_ProjectDirectory)v UZend_Tool_Project_Context_Repository.u _Zend_Tool_Project_Context_Filesystem_File3t iZend_Tool_Project_Context_Filesystem_Directory2s gZend_Tool_Project_Context_Filesystem_Abstract(r SZend_Tool_Project_Context_Exception-q ]Zend_Tool_Project_Context_Content_Engine3p iZend_Tool_Project_Context_Content_Engine_Phtml;o yZend_Tool_Project_Context_Content_Engine_CodeGenerator0n cZend_Tool_Framework_System_Provider_Version0m cZend_Tool_Framework_System_Provider_Phpinfo1l eZend_Tool_Framework_System_Provider_Manifest/k aZend_Tool_Framework_System_Provider_Config(j SZend_Tool_Framework_System_Manifest-i ]Zend_Tool_Framework_System_Action_Delete-h ]Zend_Tool_Framework_System_Action_Create!g EZend_Tool_Framework_Registry+f YZend_Tool_Framework_Registry_Exception+e YZend_Tool_Framework_Provider_Signature,d [Zend_Tool_Framework_Provider_Repository+c YZend_Tool_Framework_Provider_Exception*b WZend_Tool_Framework_Provider_Abstract&a OZend_Tool_Framework_Metadata_Tool)` UZend_Tool_Framework_Metadata_Dynamic'_ QZend_Tool_Framework_Metadata_Basic,^ [Zend_Tool_Framework_Manifest_Repository2] gZend_Tool_Framework_Manifest_ProviderMetadata*\ WZend_Tool_Framework_Manifest_Metadata+[ YZend_Tool_Framework_Manifest_Exception0Z cZend_Tool_Framework_Manifest_ActionMetadata1Y eZend_Tool_Framework_Loader_IncludePathLoaderJX Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator+W YZend_Tool_Framework_Loader_BasicLoader(V SZend_Tool_Framework_Loader_Abstract"U GZend_Tool_Framework_Exception'T QZend_Tool_Framework_Client_Storage1S eZend_Tool_Framework_Client_Storage_Directory(R SZend_Tool_Framework_Client_ResponseDQ 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator'P QZend_Tool_Framework_Client_Request(O SZend_Tool_Framework_Client_Manifest9N uZend_Tool_Framework_Client_Interactive_InputResponse8M sZend_Tool_Framework_Client_Interactive_InputRequest8L sZend_Tool_Framework_Client_Interactive_InputHandler)K UZend_Tool_Framework_Client_Exception'J QZend_Tool_Framework_Client_ConsoleDI 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Indention   T  Z&q;MAR


e
0			z	G	yNr6i<j?hAkI'nT?/[7                       $i KZend_Validate_Barcode_Code93ext!h EZend_Validate_Barcode_Code93$g KZend_Validate_Barcode_Code39ext!f EZend_Validate_Barcode_Code39,e [Zend_Validate_Barcode_Code25interleaved!d EZend_Validate_Barcode_Code25*c WZend_Validate_Barcode_AdapterAbstractb 3Zend_Validate_Alphaa 3Zend_Validate_Alnum` 9Zend_Validate_Abstract_ Zend_Uri^ 'Zend_Uri_Http] 1Zend_Uri_Exception\ )Zend_Translate[ 7Zend_Translate_PluralZ =Zend_Translate_ExceptionY 9Zend_Translate_Adapter!X EZend_Translate_Adapter_XmlTm!W EZend_Translate_Adapter_XliffV AZend_Translate_Adapter_TmxU AZend_Translate_Adapter_TbxT ?Zend_Translate_Adapter_QtS AZend_Translate_Adapter_Ini#R IZend_Translate_Adapter_GettextQ AZend_Translate_Adapter_Csv!P EZend_Translate_Adapter_Array$O KZend_Tool_Project_Provider_View$N KZend_Tool_Project_Provider_Test/M aZend_Tool_Project_Provider_ProjectProvider'L QZend_Tool_Project_Provider_Project'K QZend_Tool_Project_Provider_Profile&J OZend_Tool_Project_Provider_Module%I MZend_Tool_Project_Provider_Model(H SZend_Tool_Project_Provider_Manifest&G OZend_Tool_Project_Provider_Layout$F KZend_Tool_Project_Provider_Form)E UZend_Tool_Project_Provider_Exception'D QZend_Tool_Project_Provider_DbTable)C UZend_Tool_Project_Provider_DbAdapter*B WZend_Tool_Project_Provider_Controller+A YZend_Tool_Project_Provider_Application&@ OZend_Tool_Project_Provider_Action(? SZend_Tool_Project_Provider_Abstract> ?Zend_Tool_Project_Profile'= QZend_Tool_Project_Profile_Resource9< uZend_Tool_Project_Profile_Resource_SearchConstraints1; eZend_Tool_Project_Profile_Resource_Container=: }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter59 mZend_Tool_Project_Profile_Iterator_ContextFilter-8 ]Zend_Tool_Project_Profile_FileParser_Xml(7 SZend_Tool_Project_Profile_Exception 6 CZend_Tool_Project_Exception<5 {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory04 cZend_Tool_Project_Context_Zf_ViewsDirectory63 oZend_Tool_Project_Context_Zf_ViewScriptsDirectory02 cZend_Tool_Project_Context_Zf_ViewScriptFile61 oZend_Tool_Project_Context_Zf_ViewHelpersDirectory60 oZend_Tool_Project_Context_Zf_ViewFiltersDirectoryA/ Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory2. gZend_Tool_Project_Context_Zf_UploadsDirectory0- cZend_Tool_Project_Context_Zf_TestsDirectory7, qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile:+ wZend_Tool_Project_Context_Zf_TestPHPUnitBootstrapFile@* Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory1) eZend_Tool_Project_Context_Zf_TestLibraryFile6( oZend_Tool_Project_Context_Zf_TestLibraryDirectory:' wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFileB& Zend_Tool_Project_Context_Zf_TestApplicationModulesDirectoryA% Zend_Tool_Project_Context_Zf_TestApplicationModuleDirectory:$ wZend_Tool_Project_Context_Zf_TestApplicationDirectory@# Zend_Tool_Project_Context_Zf_TestApplicationControllerFileE" Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory>! Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile=  }Zend_Tool_Project_Context_Zf_TestApplicationActionMethod4 kZend_Tool_Project_Context_Zf_TemporaryDirectory3 iZend_Tool_Project_Context_Zf_SessionsDirectory3 iZend_Tool_Project_Context_Zf_ServicesDirectory8 sZend_Tool_Project_Context_Zf_SearchIndexesDirectory< {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory8 sZend_Tool_Project_Context_Zf_PublicScriptsDirectory1 eZend_Tool_Project_Context_Zf_PublicIndexFile7 qZend_Tool_Project_Context_Zf_PublicImagesDirectory1 eZend_Tool_Project_Context_Zf_PublicDirectory5 mZend_Tool_Project_Context_Zf_ProjectProviderFile   t  tR0{N,	sQ/z`?vV+



y
U
.
					i	H	$		x[B*~V1jI*
fI&vT2~[8lJ(}W2       ] ;Zend_View_Helper_Layout\ 7Zend_View_Helper_Json"[ GZend_View_Helper_InlineScript#Z IZend_View_Helper_HtmlQuicktimeY ?Zend_View_Helper_HtmlPage X CZend_View_Helper_HtmlObjectW ?Zend_View_Helper_HtmlListV AZend_View_Helper_HtmlFlash!U EZend_View_Helper_HtmlElementT AZend_View_Helper_HeadTitleS AZend_View_Helper_HeadStyle R CZend_View_Helper_HeadScriptQ ?Zend_View_Helper_HeadMetaP ?Zend_View_Helper_HeadLinkO ?Zend_View_Helper_Gravatar"N GZend_View_Helper_FormTextareaM ?Zend_View_Helper_FormText L CZend_View_Helper_FormSubmit K CZend_View_Helper_FormSelectJ AZend_View_Helper_FormResetI AZend_View_Helper_FormRadio"H GZend_View_Helper_FormPasswordG ?Zend_View_Helper_FormNote'F QZend_View_Helper_FormMultiCheckboxE AZend_View_Helper_FormLabelD AZend_View_Helper_FormImage C CZend_View_Helper_FormHiddenB ?Zend_View_Helper_FormFile A CZend_View_Helper_FormErrors!@ EZend_View_Helper_FormElement"? GZend_View_Helper_FormCheckbox > CZend_View_Helper_FormButton= 7Zend_View_Helper_Form< ?Zend_View_Helper_Fieldset; =Zend_View_Helper_Doctype!: EZend_View_Helper_DeclareVars9 9Zend_View_Helper_Cycle8 ?Zend_View_Helper_Currency7 =Zend_View_Helper_BaseUrl6 ;Zend_View_Helper_Action5 ?Zend_View_Helper_Abstract4 3Zend_View_Exception3 1Zend_View_Abstract2 %Zend_Version1 'Zend_Validate0 AZend_Validate_StringLength#/ IZend_Validate_Sitemap_Priority. ?Zend_Validate_Sitemap_Loc"- GZend_Validate_Sitemap_Lastmod%, MZend_Validate_Sitemap_Changefreq+ 3Zend_Validate_Regex* 9Zend_Validate_PostCode) 9Zend_Validate_NotEmpty( 9Zend_Validate_LessThan' 7Zend_Validate_Ldap_Dn& 1Zend_Validate_Isbn% -Zend_Validate_Ip$ /Zend_Validate_Int# 7Zend_Validate_InArray" ;Zend_Validate_Identical! 1Zend_Validate_Iban  9Zend_Validate_Hostname /Zend_Validate_Hex ?Zend_Validate_GreaterThan 3Zend_Validate_Float! EZend_Validate_File_WordCount ?Zend_Validate_File_Upload ;Zend_Validate_File_Size ;Zend_Validate_File_Sha1! EZend_Validate_File_NotExists  CZend_Validate_File_MimeType 9Zend_Validate_File_Md5 AZend_Validate_File_IsImage$ KZend_Validate_File_IsCompressed! EZend_Validate_File_ImageSize ;Zend_Validate_File_Hash! EZend_Validate_File_FilesSize! EZend_Validate_File_Extension ?Zend_Validate_File_Exists' QZend_Validate_File_ExcludeMimeType( SZend_Validate_File_ExcludeExtension =Zend_Validate_File_Crc32 =Zend_Validate_File_Count
 ;Zend_Validate_Exception	 AZend_Validate_EmailAddress 5Zend_Validate_Digits" GZend_Validate_Db_RecordExists$ KZend_Validate_Db_NoRecordExists ?Zend_Validate_Db_Abstract 1Zend_Validate_Date =Zend_Validate_CreditCard 3Zend_Validate_Ccnum 9Zend_Validate_Callback  7Zend_Validate_Between 7Zend_Validate_Barcode~ AZend_Validate_Barcode_Upce} AZend_Validate_Barcode_Upca| AZend_Validate_Barcode_Sscc${ KZend_Validate_Barcode_Royalmail"z GZend_Validate_Barcode_Postnet!y EZend_Validate_Barcode_Planet#x IZend_Validate_Barcode_Leitcode w CZend_Validate_Barcode_Itf14v AZend_Validate_Barcode_Issn*u WZend_Validate_Barcode_IntelligentMail$t KZend_Validate_Barcode_Identcode!s EZend_Validate_Barcode_Gtin14!r EZend_Validate_Barcode_Gtin13!q EZend_Validate_Barcode_Gtin12p AZend_Validate_Barcode_Ean8o AZend_Validate_Barcode_Ean5n AZend_Validate_Barcode_Ean2 m CZend_Validate_Barcode_Ean18 l CZend_Validate_Barcode_Ean14 k CZend_Validate_Barcode_Ean13 j CZend_Validate_Barcode_Ean12   l  vN# h1[.
~\D3
jA'



k
=
					o	H	(	kK*hF&eL2qN0`={Z9sS1zM                  *I WZend_Amf_Value_Messaging_ErrorMessage,H [Zend_Amf_Value_Messaging_CommandMessage*G WZend_Amf_Value_Messaging_AsyncMessage-F ]Zend_Amf_Value_Messaging_ArrayCollection0E cZend_Amf_Value_Messaging_AcknowledgeMessage-D ]Zend_Amf_Value_Messaging_AbstractMessage!C EZend_Amf_Value_MessageHeaderB AZend_Amf_Value_MessageBodyA =Zend_Amf_Value_ByteArray@ AZend_Amf_Util_BinaryStream? +Zend_Amf_Server> ?Zend_Amf_Server_Exception= /Zend_Amf_Response< 9Zend_Amf_Response_Http; -Zend_Amf_Request: 7Zend_Amf_Request_Http9 ?Zend_Amf_Parse_TypeLoader8 ?Zend_Amf_Parse_Serializer#7 IZend_Amf_Parse_Resource_Stream(6 SZend_Amf_Parse_Resource_MysqlResult)5 UZend_Amf_Parse_Resource_MysqliResult 4 CZend_Amf_Parse_OutputStream3 AZend_Amf_Parse_InputStream 2 CZend_Amf_Parse_Deserializer#1 IZend_Amf_Parse_Amf3_Serializer%0 MZend_Amf_Parse_Amf3_Deserializer#/ IZend_Amf_Parse_Amf0_Serializer%. MZend_Amf_Parse_Amf0_Deserializer- 1Zend_Amf_Exception, 1Zend_Amf_Constants+ 9Zend_Amf_Auth_Abstract * CZend_Amf_Adobe_Introspector) AZend_Amf_Adobe_DbInspector( 3Zend_Amf_Adobe_Auth' Zend_Acl& 'Zend_Acl_Role% 9Zend_Acl_Role_Registry%$ MZend_Acl_Role_Registry_Exception# /Zend_Acl_Resource" 1Zend_Acl_Exception! /Zend_XmlRpc_Value  =Zend_XmlRpc_Value_Struct =Zend_XmlRpc_Value_String =Zend_XmlRpc_Value_Scalar 7Zend_XmlRpc_Value_Nil ?Zend_XmlRpc_Value_Integer  CZend_XmlRpc_Value_Exception =Zend_XmlRpc_Value_Double AZend_XmlRpc_Value_DateTime! EZend_XmlRpc_Value_Collection ?Zend_XmlRpc_Value_Boolean! EZend_XmlRpc_Value_BigInteger =Zend_XmlRpc_Value_Base64 ;Zend_XmlRpc_Value_Array 1Zend_XmlRpc_Server ?Zend_XmlRpc_Server_System =Zend_XmlRpc_Server_Fault! EZend_XmlRpc_Server_Exception =Zend_XmlRpc_Server_Cache 5Zend_XmlRpc_Response ?Zend_XmlRpc_Response_Http 3Zend_XmlRpc_Request ?Zend_XmlRpc_Request_Stdin
 =Zend_XmlRpc_Request_Http$	 KZend_XmlRpc_Generator_XmlWriter, [Zend_XmlRpc_Generator_GeneratorAbstract& OZend_XmlRpc_Generator_DomDocument /Zend_XmlRpc_Fault 7Zend_XmlRpc_Exception 1Zend_XmlRpc_Client# IZend_XmlRpc_Client_ServerProxy+ YZend_XmlRpc_Client_ServerIntrospection+ YZend_XmlRpc_Client_IntrospectException%  MZend_XmlRpc_Client_HttpException& OZend_XmlRpc_Client_FaultException!~ EZend_XmlRpc_Client_Exception} /Zend_Xml_Security| 1Zend_Xml_Exception&{ OZend_Wildfire_Protocol_JsonStream!z EZend_Wildfire_Plugin_FirePhp.y _Zend_Wildfire_Plugin_FirePhp_TableMessage)x UZend_Wildfire_Plugin_FirePhp_Messagew ;Zend_Wildfire_Exception&v OZend_Wildfire_Channel_HttpHeadersu Zend_Viewt -Zend_View_Streams AZend_View_Helper_UserAgentr 5Zend_View_Helper_Urlq AZend_View_Helper_Translatep AZend_View_Helper_ServerUrl)o UZend_View_Helper_RenderToPlaceholder!n EZend_View_Helper_Placeholder*m WZend_View_Helper_Placeholder_Registry4l kZend_View_Helper_Placeholder_Registry_Exception+k YZend_View_Helper_Placeholder_Container6j oZend_View_Helper_Placeholder_Container_Standalone5i mZend_View_Helper_Placeholder_Container_Exception4h kZend_View_Helper_Placeholder_Container_Abstract!g EZend_View_Helper_PartialLoopf =Zend_View_Helper_Partial'e QZend_View_Helper_Partial_Exception'd QZend_View_Helper_PaginationControl c CZend_View_Helper_Navigation(b SZend_View_Helper_Navigation_Sitemap%a MZend_View_Helper_Navigation_Menu&` OZend_View_Helper_Navigation_Links/_ aZend_View_Helper_Navigation_HelperAbstract,^ [Zend_View_Helper_Navigation_Breadcrumbs   Z  b;h<tQ1Pb4



z
P
)
				P	(wT4
Y7fEv@J\?&ToA                               6m oZend_Tool_Framework_Manifest_MetadataManifestable+l YZend_Tool_Framework_Manifest_Interface+k YZend_Tool_Framework_Manifest_Indexable4j kZend_Tool_Framework_Manifest_ActionManifestable)i UZend_Tool_Framework_Loader_Interface8h sZend_Tool_Framework_Client_Storage_AdapterInterfaceDg 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface;f yZend_Tool_Framework_Client_Interactive_OutputInterface:e wZend_Tool_Framework_Client_Interactive_InputInterface)d UZend_Tool_Framework_Action_Interface(c SZend_Text_Table_Decorator_Interfaceb /Zend_Tag_Taggablea 7Zend_Stdlib_Exception&` OZend_Soap_Wsdl_Strategy_Interface%_ MZend_Session_Validator_Interface'^ QZend_Session_SaveHandler_Interface$] KZend_Service_ShortUrl_ShortenerI\ Zend_Service_DeveloperGarden_Response_SecurityTokenServer_InterfaceK[ Zend_Service_Console_Command_ParameterSource_ParameterSourceInterfaceZ 7Zend_Server_Interface-Y ]Zend_Serializer_Adapter_AdapterInterface4X kZend_Search_Lucene_Search_Highlighter_Interface!W EZend_Search_Lucene_Interface3V iZend_Search_Lucene_Index_TermsStream_Interface$U KZend_Queue_Stomp_FrameInterface0T cZend_Queue_Stomp_Client_ConnectionInterface(S SZend_Queue_Adapter_AdapterInterfaceR ?Zend_Pdf_Filter_Interface&Q OZend_Pdf_ElementFactory_InterfaceP ?Zend_Pdf_Canvas_Interface,O [Zend_Paginator_ScrollingStyle_Interface$N KZend_Paginator_AdapterAggregate%M MZend_Paginator_Adapter_Interface&L OZend_Oauth_Config_ConfigInterface'K QZend_Mobile_Push_Message_InterfaceJ AZend_Mobile_Push_Interface$I KZend_Memory_Container_Interface1H eZend_Markup_Renderer_TokenConverterInterface'G QZend_Markup_Parser_ParserInterface)F UZend_Mail_Storage_Writable_Interface'E QZend_Mail_Storage_Folder_InterfaceD =Zend_Mail_Part_Interface C CZend_Mail_Message_Interface!B EZend_Log_Formatter_InterfaceA ?Zend_Log_Filter_Interface@ ?Zend_Log_FactoryInterface? ?Zend_Loader_SplAutoloader'> QZend_Loader_PluginLoader_Interface%= MZend_Loader_Autoloader_Interface0< cZend_Ldap_Node_Schema_ObjectClass_Interface2; gZend_Ldap_Node_Schema_AttributeType_Interface : CZend_Http_UserAgent_Storage)9 UZend_Http_UserAgent_Features_Adapter8 AZend_Http_UserAgent_Device$7 KZend_Http_Client_Adapter_Stream'6 QZend_Http_Client_Adapter_Interface5 AZend_Gdata_App_MediaSource.4 _Zend_Form_Decorator_Marker_File_Interface"3 GZend_Form_Decorator_Interface2 7Zend_Filter_Interface"1 GZend_Filter_Encrypt_Interface+0 YZend_Filter_Compress_CompressInterface0/ cZend_Feed_Writer_Renderer_RendererInterface1. eZend_Feed_Writer_Extension_RendererInterface#- IZend_Feed_Reader_FeedInterface$, KZend_Feed_Reader_EntryInterface7+ qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface-* ]Zend_Feed_Pubsubhubbub_CallbackInterface ) CZend_Feed_Builder_Interface1( eZend_EventManager_SharedEventCollectionAware,' [Zend_EventManager_SharedEventCollection(& SZend_EventManager_ListenerAggregate% =Zend_EventManager_Filter $ CZend_EventManager_Exception(# SZend_EventManager_EventManagerAware'" QZend_EventManager_EventDescription&! OZend_EventManager_EventCollection   CZend_Db_Statement_Interface$ KZend_Currency_CurrencyInterface) UZend_Crypt_Math_BigInteger_Interface+ YZend_Controller_Router_Route_Interface% MZend_Controller_Router_Interface) UZend_Controller_Dispatcher_Interface% MZend_Controller_Action_Interface& OZend_Cloud_StorageService_Adapter$ KZend_Cloud_QueueService_Adapter& OZend_Cloud_Infrastructure_Adapter, [Zend_Cloud_DocumentService_QueryAdapter' QZend_Cloud_DocumentService_Adapter 5Zend_Captcha_Adapter   \  h*i4q4eJ#k4




g
C
'				~	U	-	X5tIY2wR5lJkA wM!zP'                          $I KZend_Paginator_AdapterAggregate%H MZend_Paginator_Adapter_Interface&G OZend_Oauth_Config_ConfigInterface'F QZend_Mobile_Push_Message_InterfaceE AZend_Mobile_Push_Interface$D KZend_Memory_Container_Interface1C eZend_Markup_Renderer_TokenConverterInterface'B QZend_Markup_Parser_ParserInterface)A UZend_Mail_Storage_Writable_Interface'@ QZend_Mail_Storage_Folder_Interface? =Zend_Mail_Part_Interface > CZend_Mail_Message_Interface!= EZend_Log_Formatter_Interface< ?Zend_Log_Filter_Interface; ?Zend_Log_FactoryInterface: ?Zend_Loader_SplAutoloader'9 QZend_Loader_PluginLoader_Interface%8 MZend_Loader_Autoloader_Interface07 cZend_Ldap_Node_Schema_ObjectClass_Interface26 gZend_Ldap_Node_Schema_AttributeType_Interface 5 CZend_Http_UserAgent_Storage)4 UZend_Http_UserAgent_Features_Adapter3 AZend_Http_UserAgent_Device$2 KZend_Http_Client_Adapter_Stream'1 QZend_Http_Client_Adapter_Interface0 AZend_Gdata_App_MediaSource./ _Zend_Form_Decorator_Marker_File_Interface". GZend_Form_Decorator_Interface- 7Zend_Filter_Interface", GZend_Filter_Encrypt_Interface++ YZend_Filter_Compress_CompressInterface0* cZend_Feed_Writer_Renderer_RendererInterface1) eZend_Feed_Writer_Extension_RendererInterface#( IZend_Feed_Reader_FeedInterface$' KZend_Feed_Reader_EntryInterface7& qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface-% ]Zend_Feed_Pubsubhubbub_CallbackInterface $ CZend_Feed_Builder_Interface1# eZend_EventManager_SharedEventCollectionAware," [Zend_EventManager_SharedEventCollection(! SZend_EventManager_ListenerAggregate  =Zend_EventManager_Filter  CZend_EventManager_Exception( SZend_EventManager_EventManagerAware' QZend_EventManager_EventDescription& OZend_EventManager_EventCollection  CZend_Db_Statement_Interface$ KZend_Currency_CurrencyInterface) UZend_Crypt_Math_BigInteger_Interface+ YZend_Controller_Router_Route_Interface% MZend_Controller_Router_Interface) UZend_Controller_Dispatcher_Interface% MZend_Controller_Action_Interface& OZend_Cloud_StorageService_Adapter$ KZend_Cloud_QueueService_Adapter& OZend_Cloud_Infrastructure_Adapter, [Zend_Cloud_DocumentService_QueryAdapter' QZend_Cloud_DocumentService_Adapter 5Zend_Captcha_Adapter! EZend_Cache_Backend_Interface) UZend_Cache_Backend_ExtendedInterface  CZend_Auth_Storage_Interface  CZend_Auth_Adapter_Interface.
 _Zend_Auth_Adapter_Http_Resolver_Interface'	 QZend_Application_Resource_Resource4 kZend_Application_Bootstrap_ResourceBootstrapper, [Zend_Application_Bootstrap_Bootstrapper ;Zend_Acl_Role_Interface  CZend_Acl_Resource_Interface ?Zend_Acl_Assert_Interface# IZend_Wildfire_Plugin_Interface$ KZend_Wildfire_Channel_Interface 3Zend_View_Interface'  QZend_View_Helper_Navigation_Helper AZend_View_Helper_Interface~ ;Zend_Validate_Interface+} YZend_Validate_Barcode_AdapterInterface3| iZend_Tool_Project_Profile_FileParser_Interface:{ wZend_Tool_Project_Context_System_TopLevelRestrictable5z mZend_Tool_Project_Context_System_NotOverwritable/y aZend_Tool_Project_Context_System_Interface(x SZend_Tool_Project_Context_Interface+w YZend_Tool_Framework_Registry_Interface2v gZend_Tool_Framework_Registry_EnabledInterface-u ]Zend_Tool_Framework_Provider_Pretendable+t YZend_Tool_Framework_Provider_Interface.s _Zend_Tool_Framework_Provider_Interactable/r aZend_Tool_Framework_Provider_Initializable;q yZend_Tool_Framework_Provider_DocblockManifestInterface+p YZend_Tool_Framework_Metadata_Interface.o _Zend_Tool_Framework_Metadata_Attributable6n oZend_Tool_Framework_Manifest_ProviderManifestable   j O#\6e?g>iF




r
Z
7
					{	N	,	e@gG' mY;kL(hC)nL, {]D"|?                                            43 kZend_Cloud_DocumentService_Adapter_WindowsAzure:2 wZend_Cloud_DocumentService_Adapter_WindowsAzure_Query01 cZend_Cloud_DocumentService_Adapter_SimpleDb60 oZend_Cloud_DocumentService_Adapter_SimpleDb_Query7/ qZend_Cloud_DocumentService_Adapter_AbstractAdapter. AZend_Cloud_AbstractFactory- /Zend_Captcha_Word, 9Zend_Captcha_ReCaptcha+ 1Zend_Captcha_Image* 3Zend_Captcha_Figlet) 9Zend_Captcha_Exception( /Zend_Captcha_Dumb' /Zend_Captcha_Base& !Zend_Cache% 1Zend_Cache_Manager$ =Zend_Cache_Frontend_Page# AZend_Cache_Frontend_Output!" EZend_Cache_Frontend_Function! =Zend_Cache_Frontend_File  ?Zend_Cache_Frontend_Class  CZend_Cache_Frontend_Capture 5Zend_Cache_Exception +Zend_Cache_Core 1Zend_Cache_Backend" GZend_Cache_Backend_ZendServer( SZend_Cache_Backend_ZendServer_ShMem' QZend_Cache_Backend_ZendServer_Disk$ KZend_Cache_Backend_ZendPlatform ?Zend_Cache_Backend_Xcache  CZend_Cache_Backend_WinCache! EZend_Cache_Backend_TwoLevels ;Zend_Cache_Backend_Test ?Zend_Cache_Backend_Static ?Zend_Cache_Backend_Sqlite! EZend_Cache_Backend_Memcached$ KZend_Cache_Backend_Libmemcached ;Zend_Cache_Backend_File! EZend_Cache_Backend_BlackHole 9Zend_Cache_Backend_Apc %Zend_Barcode ?Zend_Barcode_Renderer_Svg+
 YZend_Barcode_Renderer_RendererAbstract	 ?Zend_Barcode_Renderer_Pdf  CZend_Barcode_Renderer_Image$ KZend_Barcode_Renderer_Exception =Zend_Barcode_Object_Upce =Zend_Barcode_Object_Upca" GZend_Barcode_Object_Royalmail  CZend_Barcode_Object_Postnet AZend_Barcode_Object_Planet' QZend_Barcode_Object_ObjectAbstract!  EZend_Barcode_Object_Leitcode ?Zend_Barcode_Object_Itf14"~ GZend_Barcode_Object_Identcode"} GZend_Barcode_Object_Exception| ?Zend_Barcode_Object_Error{ =Zend_Barcode_Object_Ean8z =Zend_Barcode_Object_Ean5y =Zend_Barcode_Object_Ean2x ?Zend_Barcode_Object_Ean13w AZend_Barcode_Object_Code39*v WZend_Barcode_Object_Code25interleavedu AZend_Barcode_Object_Code25 t CZend_Barcode_Object_Code128s 9Zend_Barcode_Exceptionr Zend_Authq ?Zend_Auth_Storage_Session$p KZend_Auth_Storage_NonPersistent o CZend_Auth_Storage_Exceptionn -Zend_Auth_Resultm 3Zend_Auth_Exceptionl =Zend_Auth_Adapter_OpenIdk 9Zend_Auth_Adapter_Ldapj 9Zend_Auth_Adapter_Http)i UZend_Auth_Adapter_Http_Resolver_File.h _Zend_Auth_Adapter_Http_Resolver_Exception g CZend_Auth_Adapter_Exceptionf =Zend_Auth_Adapter_Digeste ?Zend_Auth_Adapter_DbTabled -Zend_Application#c IZend_Application_Resource_View(b SZend_Application_Resource_UserAgent(a SZend_Application_Resource_Translate&` OZend_Application_Resource_Session%_ MZend_Application_Resource_Router/^ aZend_Application_Resource_ResourceAbstract)] UZend_Application_Resource_Navigation&\ OZend_Application_Resource_Multidb&[ OZend_Application_Resource_Modules#Z IZend_Application_Resource_Mail"Y GZend_Application_Resource_Log%X MZend_Application_Resource_Locale%W MZend_Application_Resource_Layout.V _Zend_Application_Resource_Frontcontroller(U SZend_Application_Resource_Exception#T IZend_Application_Resource_Dojo!S EZend_Application_Resource_Db+R YZend_Application_Resource_Cachemanager&Q OZend_Application_Module_Bootstrap'P QZend_Application_Module_AutoloaderO AZend_Application_Exception)N UZend_Application_Bootstrap_Exception1M eZend_Application_Bootstrap_BootstrapAbstract)L UZend_Application_Bootstrap_BootstrapK ?Zend_Amf_Value_TraitsInfo-J ]Zend_Amf_Value_Messaging_RemotingMessage   ]  {Q)tI vE~U.vJ



y
R
/
			u	J	#{V!jR2w`H5n=b/xFmB!c:                                        & OZend_Controller_Request_Apache404% MZend_Controller_Request_Abstract& OZend_Controller_Plugin_PutHandler( SZend_Controller_Plugin_ErrorHandler" GZend_Controller_Plugin_Broker' QZend_Controller_Plugin_ActionStack$
 KZend_Controller_Plugin_Abstract	 7Zend_Controller_Front ?Zend_Controller_Exception( SZend_Controller_Dispatcher_Standard) UZend_Controller_Dispatcher_Exception( SZend_Controller_Dispatcher_Abstract 9Zend_Controller_Action( SZend_Controller_Action_HelperBroker6 oZend_Controller_Action_HelperBroker_PriorityStack/ aZend_Controller_Action_Helper_ViewRenderer&  OZend_Controller_Action_Helper_Url- ]Zend_Controller_Action_Helper_Redirector'~ QZend_Controller_Action_Helper_Json1} eZend_Controller_Action_Helper_FlashMessenger0| cZend_Controller_Action_Helper_ContextSwitch({ SZend_Controller_Action_Helper_Cache<z {Zend_Controller_Action_Helper_AutoCompleteScriptaculous3y iZend_Controller_Action_Helper_AutoCompleteDojo8x sZend_Controller_Action_Helper_AutoComplete_Abstract.w _Zend_Controller_Action_Helper_AjaxContext.v _Zend_Controller_Action_Helper_ActionStack+u YZend_Controller_Action_Helper_Abstract%t MZend_Controller_Action_Exceptions 3Zend_Console_Getopt"r GZend_Console_Getopt_Exceptionq #Zend_Configp -Zend_Config_Yamlo +Zend_Config_Xmln 1Zend_Config_Writerm ;Zend_Config_Writer_Yamll 9Zend_Config_Writer_Xmlk ;Zend_Config_Writer_Jsonj 9Zend_Config_Writer_Ini$i KZend_Config_Writer_FileAbstracth =Zend_Config_Writer_Arrayg -Zend_Config_Jsonf +Zend_Config_Inie 7Zend_Config_Exception$d KZend_CodeGenerator_Php_Property1c eZend_CodeGenerator_Php_Property_DefaultValue%b MZend_CodeGenerator_Php_Parameter2a gZend_CodeGenerator_Php_Parameter_DefaultValue"` GZend_CodeGenerator_Php_Method,_ [Zend_CodeGenerator_Php_Member_Container+^ YZend_CodeGenerator_Php_Member_Abstract ] CZend_CodeGenerator_Php_File%\ MZend_CodeGenerator_Php_Exception$[ KZend_CodeGenerator_Php_Docblock(Z SZend_CodeGenerator_Php_Docblock_Tag/Y aZend_CodeGenerator_Php_Docblock_Tag_Return.X _Zend_CodeGenerator_Php_Docblock_Tag_Param0W cZend_CodeGenerator_Php_Docblock_Tag_License!V EZend_CodeGenerator_Php_Class U CZend_CodeGenerator_Php_Body$T KZend_CodeGenerator_Php_Abstract!S EZend_CodeGenerator_Exception R CZend_CodeGenerator_Abstract&Q OZend_Cloud_StorageService_Factory(P SZend_Cloud_StorageService_Exception3O iZend_Cloud_StorageService_Adapter_WindowsAzure)N UZend_Cloud_StorageService_Adapter_S30M cZend_Cloud_StorageService_Adapter_Rackspace1L eZend_Cloud_StorageService_Adapter_FileSystem'K QZend_Cloud_QueueService_MessageSet$J KZend_Cloud_QueueService_Message$I KZend_Cloud_QueueService_Factory&H OZend_Cloud_QueueService_Exception.G _Zend_Cloud_QueueService_Adapter_ZendQueue1F eZend_Cloud_QueueService_Adapter_WindowsAzure(E SZend_Cloud_QueueService_Adapter_Sqs4D kZend_Cloud_QueueService_Adapter_AbstractAdapter.C _Zend_Cloud_OperationNotAvailableException+B YZend_Cloud_Infrastructure_InstanceList'A QZend_Cloud_Infrastructure_Instance(@ SZend_Cloud_Infrastructure_ImageList$? KZend_Cloud_Infrastructure_Image&> OZend_Cloud_Infrastructure_Factory(= SZend_Cloud_Infrastructure_Exception0< cZend_Cloud_Infrastructure_Adapter_Rackspace*; WZend_Cloud_Infrastructure_Adapter_Ec26: oZend_Cloud_Infrastructure_Adapter_AbstractAdapter9 5Zend_Cloud_Exception%8 MZend_Cloud_DocumentService_Query'7 QZend_Cloud_DocumentService_Factory)6 UZend_Cloud_DocumentService_Exception+5 YZend_Cloud_DocumentService_DocumentSet(4 SZend_Cloud_DocumentService_Document   q  a8qI#tJt]4hF%





{
`
O
/

					`	B	wX7`B*
cCpP7|W1kPd7_:   $ KZend_Dojo_Form_Element_ComboBox$  KZend_Dojo_Form_Element_CheckBox" GZend_Dojo_Form_Element_Button ~ CZend_Dojo_Form_DisplayGroup*} WZend_Dojo_Form_Decorator_TabContainer,| [Zend_Dojo_Form_Decorator_StackContainer,{ [Zend_Dojo_Form_Decorator_SplitContainer'z QZend_Dojo_Form_Decorator_DijitForm*y WZend_Dojo_Form_Decorator_DijitElement,x [Zend_Dojo_Form_Decorator_DijitContainer)w UZend_Dojo_Form_Decorator_ContentPane-v ]Zend_Dojo_Form_Decorator_BorderContainer+u YZend_Dojo_Form_Decorator_AccordionPane0t cZend_Dojo_Form_Decorator_AccordionContainers 3Zend_Dojo_Exceptionr )Zend_Dojo_Dataq 5Zend_Dojo_BuildLayerp !Zend_Debugo Zend_Dbn 'Zend_Db_Tablem 5Zend_Db_Table_Select#l IZend_Db_Table_Select_Exceptionk 5Zend_Db_Table_Rowset#j IZend_Db_Table_Rowset_Exception"i GZend_Db_Table_Rowset_Abstracth /Zend_Db_Table_Row g CZend_Db_Table_Row_Exceptionf AZend_Db_Table_Row_Abstracte ;Zend_Db_Table_Exceptiond =Zend_Db_Table_Definitionc 9Zend_Db_Table_Abstractb /Zend_Db_Statementa =Zend_Db_Statement_Sqlsrv'` QZend_Db_Statement_Sqlsrv_Exception_ 7Zend_Db_Statement_Pdo^ ?Zend_Db_Statement_Pdo_Oci] ?Zend_Db_Statement_Pdo_Ibm\ =Zend_Db_Statement_Oracle'[ QZend_Db_Statement_Oracle_ExceptionZ =Zend_Db_Statement_Mysqli'Y QZend_Db_Statement_Mysqli_Exception X CZend_Db_Statement_ExceptionW 7Zend_Db_Statement_Db2$V KZend_Db_Statement_Db2_ExceptionU )Zend_Db_SelectT =Zend_Db_Select_ExceptionS -Zend_Db_ProfilerR 9Zend_Db_Profiler_QueryQ =Zend_Db_Profiler_FirebugP AZend_Db_Profiler_ExceptionO %Zend_Db_ExprN /Zend_Db_ExceptionM 9Zend_Db_Adapter_Sqlsrv%L MZend_Db_Adapter_Sqlsrv_ExceptionK AZend_Db_Adapter_Pdo_SqliteJ ?Zend_Db_Adapter_Pdo_PgsqlI ;Zend_Db_Adapter_Pdo_OciH ?Zend_Db_Adapter_Pdo_MysqlG ?Zend_Db_Adapter_Pdo_MssqlF ;Zend_Db_Adapter_Pdo_Ibm E CZend_Db_Adapter_Pdo_Ibm_Ids D CZend_Db_Adapter_Pdo_Ibm_Db2!C EZend_Db_Adapter_Pdo_AbstractB 9Zend_Db_Adapter_Oracle%A MZend_Db_Adapter_Oracle_Exception@ 9Zend_Db_Adapter_Mysqli%? MZend_Db_Adapter_Mysqli_Exception> ?Zend_Db_Adapter_Exception= 3Zend_Db_Adapter_Db2"< GZend_Db_Adapter_Db2_Exception; =Zend_Db_Adapter_Abstract: Zend_Date9 3Zend_Date_Exception8 5Zend_Date_DateObject7 -Zend_Date_Cities6 'Zend_Currency5 ;Zend_Currency_Exception4 !Zend_Crypt3 )Zend_Crypt_Rsa2 1Zend_Crypt_Rsa_Key1 ?Zend_Crypt_Rsa_Key_Public0 AZend_Crypt_Rsa_Key_Private/ =Zend_Crypt_Rsa_Exception. +Zend_Crypt_Math- ?Zend_Crypt_Math_Exception, AZend_Crypt_Math_BigInteger#+ IZend_Crypt_Math_BigInteger_Gmp)* UZend_Crypt_Math_BigInteger_Exception&) OZend_Crypt_Math_BigInteger_Bcmath( +Zend_Crypt_Hmac' ?Zend_Crypt_Hmac_Exception& 5Zend_Crypt_Exception% =Zend_Crypt_DiffieHellman'$ QZend_Crypt_DiffieHellman_Exception!# EZend_Controller_Router_Route(" SZend_Controller_Router_Route_Static'! QZend_Controller_Router_Route_Regex(  SZend_Controller_Router_Route_Module* WZend_Controller_Router_Route_Hostname' QZend_Controller_Router_Route_Chain* WZend_Controller_Router_Route_Abstract# IZend_Controller_Router_Rewrite% MZend_Controller_Router_Exception$ KZend_Controller_Router_Abstract* WZend_Controller_Response_HttpTestCase" GZend_Controller_Response_Http' QZend_Controller_Response_Exception! EZend_Controller_Response_Cli& OZend_Controller_Response_Abstract# IZend_Controller_Request_Simple) UZend_Controller_Request_HttpTestCase! EZend_Controller_Request_Http& OZend_Controller_Request_Exception   d  [6S)_5T)c6



i
G
#				{	P	#~R([/l0tHmM4zR'jA#tQ/	             *e WZend_Feed_Reader_Extension_Atom_Entry#d IZend_Feed_Reader_EntryAbstractc AZend_Feed_Reader_Entry_Rss b CZend_Feed_Reader_Entry_Atom a CZend_Feed_Reader_Collection3` iZend_Feed_Reader_Collection_CollectionAbstract)_ UZend_Feed_Reader_Collection_Category'^ QZend_Feed_Reader_Collection_Author] 9Zend_Feed_Pubsubhubbub&\ OZend_Feed_Pubsubhubbub_Subscriber/[ aZend_Feed_Pubsubhubbub_Subscriber_Callback%Z MZend_Feed_Pubsubhubbub_Publisher.Y _Zend_Feed_Pubsubhubbub_Model_Subscription/X aZend_Feed_Pubsubhubbub_Model_ModelAbstract(W SZend_Feed_Pubsubhubbub_HttpResponse%V MZend_Feed_Pubsubhubbub_Exception,U [Zend_Feed_Pubsubhubbub_CallbackAbstractT 3Zend_Feed_ExceptionS 3Zend_Feed_Entry_RssR 5Zend_Feed_Entry_AtomQ =Zend_Feed_Entry_AbstractP /Zend_Feed_ElementO /Zend_Feed_BuilderN =Zend_Feed_Builder_Header$M KZend_Feed_Builder_Header_Itunes L CZend_Feed_Builder_ExceptionK ;Zend_Feed_Builder_EntryJ )Zend_Feed_AtomI 1Zend_Feed_AbstractH )Zend_Exception)G UZend_EventManager_StaticEventManager)F UZend_EventManager_SharedEventManager)E UZend_EventManager_ResponseCollectionD SplStack)C UZend_EventManager_GlobalEventManager"B GZend_EventManager_FilterChain,A [Zend_EventManager_Filter_FilterIterator9@ uZend_EventManager_Exception_InvalidArgumentException#? IZend_EventManager_EventManager> ;Zend_EventManager_Event= )Zend_Dom_Query< 7Zend_Dom_Query_Result; =Zend_Dom_Query_Css2Xpath: 1Zend_Dom_Exception9 Zend_Dojo)8 UZend_Dojo_View_Helper_VerticalSlider,7 [Zend_Dojo_View_Helper_ValidationTextBox&6 OZend_Dojo_View_Helper_TimeTextBox"5 GZend_Dojo_View_Helper_TextBox#4 IZend_Dojo_View_Helper_Textarea'3 QZend_Dojo_View_Helper_TabContainer'2 QZend_Dojo_View_Helper_SubmitButton)1 UZend_Dojo_View_Helper_StackContainer)0 UZend_Dojo_View_Helper_SplitContainer!/ EZend_Dojo_View_Helper_Slider). UZend_Dojo_View_Helper_SimpleTextarea&- OZend_Dojo_View_Helper_RadioButton*, WZend_Dojo_View_Helper_PasswordTextBox(+ SZend_Dojo_View_Helper_NumberTextBox(* SZend_Dojo_View_Helper_NumberSpinner+) YZend_Dojo_View_Helper_HorizontalSlider( AZend_Dojo_View_Helper_Form*' WZend_Dojo_View_Helper_FilteringSelect!& EZend_Dojo_View_Helper_Editor% AZend_Dojo_View_Helper_Dojo)$ UZend_Dojo_View_Helper_Dojo_Container)# UZend_Dojo_View_Helper_DijitContainer " CZend_Dojo_View_Helper_Dijit&! OZend_Dojo_View_Helper_DateTextBox&  OZend_Dojo_View_Helper_CustomDijit* WZend_Dojo_View_Helper_CurrencyTextBox& OZend_Dojo_View_Helper_ContentPane# IZend_Dojo_View_Helper_ComboBox# IZend_Dojo_View_Helper_CheckBox! EZend_Dojo_View_Helper_Button* WZend_Dojo_View_Helper_BorderContainer( SZend_Dojo_View_Helper_AccordionPane- ]Zend_Dojo_View_Helper_AccordionContainer =Zend_Dojo_View_Exception )Zend_Dojo_Form 9Zend_Dojo_Form_SubForm* WZend_Dojo_Form_Element_VerticalSlider- ]Zend_Dojo_Form_Element_ValidationTextBox' QZend_Dojo_Form_Element_TimeTextBox# IZend_Dojo_Form_Element_TextBox$ KZend_Dojo_Form_Element_Textarea( SZend_Dojo_Form_Element_SubmitButton" GZend_Dojo_Form_Element_Slider* WZend_Dojo_Form_Element_SimpleTextarea' QZend_Dojo_Form_Element_RadioButton+ YZend_Dojo_Form_Element_PasswordTextBox)
 UZend_Dojo_Form_Element_NumberTextBox)	 UZend_Dojo_Form_Element_NumberSpinner, [Zend_Dojo_Form_Element_HorizontalSlider+ YZend_Dojo_Form_Element_FilteringSelect" GZend_Dojo_Form_Element_Editor& OZend_Dojo_Form_Element_DijitMulti! EZend_Dojo_Form_Element_Dijit' QZend_Dojo_Form_Element_DateTextBox+ YZend_Dojo_Form_Element_CurrencyTextBox   d  l5qAL#nN0M


}
F
			b	8	X&hW5nU9vV6nK0pP3z^=k=                              %I MZend_Filter_Word_DashToSeparator%H MZend_Filter_Word_DashToCamelCase+G YZend_Filter_Word_CamelCaseToUnderscore*F WZend_Filter_Word_CamelCaseToSeparator%E MZend_Filter_Word_CamelCaseToDashD 7Zend_Filter_StripTagsC ?Zend_Filter_StripNewlinesB 9Zend_Filter_StringTrimA ?Zend_Filter_StringToUpper@ ?Zend_Filter_StringToLower? 5Zend_Filter_RealPath> ;Zend_Filter_PregReplace= -Zend_Filter_Null&< OZend_Filter_NormalizedToLocalized&; OZend_Filter_LocalizedToNormalized: +Zend_Filter_Int9 /Zend_Filter_Input8 7Zend_Filter_Inflector7 =Zend_Filter_HtmlEntities6 AZend_Filter_File_UpperCase5 ;Zend_Filter_File_Rename4 AZend_Filter_File_LowerCase3 =Zend_Filter_File_Encrypt2 =Zend_Filter_File_Decrypt1 7Zend_Filter_Exception0 3Zend_Filter_Encrypt / CZend_Filter_Encrypt_Openssl. AZend_Filter_Encrypt_Mcrypt- +Zend_Filter_Dir, 1Zend_Filter_Digits+ 3Zend_Filter_Decrypt* 9Zend_Filter_Decompress) 5Zend_Filter_Compress( =Zend_Filter_Compress_Zip' =Zend_Filter_Compress_Tar& =Zend_Filter_Compress_Rar% =Zend_Filter_Compress_Lzf$ ;Zend_Filter_Compress_Gz*# WZend_Filter_Compress_CompressAbstract" =Zend_Filter_Compress_Bz2! 5Zend_Filter_Callback  3Zend_Filter_Boolean 5Zend_Filter_BaseName /Zend_Filter_Alpha /Zend_Filter_Alnum 1Zend_File_Transfer! EZend_File_Transfer_Exception$ KZend_File_Transfer_Adapter_Http( SZend_File_Transfer_Adapter_Abstract 9Zend_File_PhpClassFile AZend_File_ClassFileLocator Zend_Feed -Zend_Feed_Writer ;Zend_Feed_Writer_Source/ aZend_Feed_Writer_Renderer_RendererAbstract' QZend_Feed_Writer_Renderer_Feed_Rss( SZend_Feed_Writer_Renderer_Feed_Atom/ aZend_Feed_Writer_Renderer_Feed_Atom_Source5 mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract( SZend_Feed_Writer_Renderer_Entry_Rss) UZend_Feed_Writer_Renderer_Entry_Atom1 eZend_Feed_Writer_Renderer_Entry_Atom_Deleted 7Zend_Feed_Writer_Feed'
 QZend_Feed_Writer_Feed_FeedAbstract<	 {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry8 sZend_Feed_Writer_Extension_Threading_Renderer_Entry4 kZend_Feed_Writer_Extension_Slash_Renderer_Entry0 cZend_Feed_Writer_Extension_RendererAbstract4 kZend_Feed_Writer_Extension_ITunes_Renderer_Feed5 mZend_Feed_Writer_Extension_ITunes_Renderer_Entry+ YZend_Feed_Writer_Extension_ITunes_Feed, [Zend_Feed_Writer_Extension_ITunes_Entry8 sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed9  uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry6 oZend_Feed_Writer_Extension_Content_Renderer_Entry2~ gZend_Feed_Writer_Extension_Atom_Renderer_Feed6} oZend_Feed_Writer_Exception_InvalidMethodException| 9Zend_Feed_Writer_Entry{ =Zend_Feed_Writer_Deletedz 'Zend_Feed_Rssy -Zend_Feed_Readerx =Zend_Feed_Reader_FeedSet"w GZend_Feed_Reader_FeedAbstractv ?Zend_Feed_Reader_Feed_Rssu AZend_Feed_Reader_Feed_Atom&t OZend_Feed_Reader_Feed_Atom_Source3s iZend_Feed_Reader_Extension_WellFormedWeb_Entry,r [Zend_Feed_Reader_Extension_Thread_Entry0q cZend_Feed_Reader_Extension_Syndication_Feed+p YZend_Feed_Reader_Extension_Slash_Entry,o [Zend_Feed_Reader_Extension_Podcast_Feed-n ]Zend_Feed_Reader_Extension_Podcast_Entry,m [Zend_Feed_Reader_Extension_FeedAbstract-l ]Zend_Feed_Reader_Extension_EntryAbstract/k aZend_Feed_Reader_Extension_DublinCore_Feed0j cZend_Feed_Reader_Extension_DublinCore_Entry4i kZend_Feed_Reader_Extension_CreativeCommons_Feed5h mZend_Feed_Reader_Extension_CreativeCommons_Entry-g ]Zend_Feed_Reader_Extension_Content_Entry)f UZend_Feed_Reader_Extension_Atom_Feed   j  W*nJb=hG&nN-




m
N
'
					d	D	&	^6lKT9X0gA`9pK%xQ-  3 AZend_Gdata_App_IOException,2 [Zend_Gdata_App_InvalidArgumentException!1 EZend_Gdata_App_HttpException$0 KZend_Gdata_App_FeedSourceParent#/ IZend_Gdata_App_FeedEntryParent. 3Zend_Gdata_App_Feed- =Zend_Gdata_App_Extension!, EZend_Gdata_App_Extension_Uri%+ MZend_Gdata_App_Extension_Updated#* IZend_Gdata_App_Extension_Title") GZend_Gdata_App_Extension_Text%( MZend_Gdata_App_Extension_Summary&' OZend_Gdata_App_Extension_Subtitle$& KZend_Gdata_App_Extension_Source$% KZend_Gdata_App_Extension_Rights'$ QZend_Gdata_App_Extension_Published$# KZend_Gdata_App_Extension_Person"" GZend_Gdata_App_Extension_Name"! GZend_Gdata_App_Extension_Logo"  GZend_Gdata_App_Extension_Link  CZend_Gdata_App_Extension_Id" GZend_Gdata_App_Extension_Icon' QZend_Gdata_App_Extension_Generator# IZend_Gdata_App_Extension_Email% MZend_Gdata_App_Extension_Element$ KZend_Gdata_App_Extension_Edited# IZend_Gdata_App_Extension_Draft% MZend_Gdata_App_Extension_Control) UZend_Gdata_App_Extension_Contributor% MZend_Gdata_App_Extension_Content& OZend_Gdata_App_Extension_Category$ KZend_Gdata_App_Extension_Author =Zend_Gdata_App_Exception 5Zend_Gdata_App_Entry, [Zend_Gdata_App_CaptchaRequiredException# IZend_Gdata_App_BaseMediaSource 3Zend_Gdata_App_Base* WZend_Gdata_App_BadMethodCallException! EZend_Gdata_App_AuthException 5Zend_Gdata_Analytics+ YZend_Gdata_Analytics_Extension_TableId,
 [Zend_Gdata_Analytics_Extension_Property*	 WZend_Gdata_Analytics_Extension_Metric ?Zend_Gdata_Analytics_Goal- ]Zend_Gdata_Analytics_Extension_Dimension# IZend_Gdata_Analytics_DataQuery" GZend_Gdata_Analytics_DataFeed# IZend_Gdata_Analytics_DataEntry& OZend_Gdata_Analytics_AccountQuery% MZend_Gdata_Analytics_AccountFeed& OZend_Gdata_Analytics_AccountEntry  Zend_Form /Zend_Form_SubForm~ 3Zend_Form_Exception} /Zend_Form_Element| ;Zend_Form_Element_Xhtml{ AZend_Form_Element_Textareaz 9Zend_Form_Element_Texty =Zend_Form_Element_Submitx =Zend_Form_Element_Selectw ;Zend_Form_Element_Resetv ;Zend_Form_Element_Radiou AZend_Form_Element_Passwordt 9Zend_Form_Element_Note"s GZend_Form_Element_Multiselect$r KZend_Form_Element_MultiCheckboxq ;Zend_Form_Element_Multip ;Zend_Form_Element_Imageo =Zend_Form_Element_Hiddenn 9Zend_Form_Element_Hashm 9Zend_Form_Element_File l CZend_Form_Element_Exceptionk AZend_Form_Element_Checkboxj ?Zend_Form_Element_Captchai =Zend_Form_Element_Buttonh 9Zend_Form_DisplayGroup#g IZend_Form_Decorator_ViewScript#f IZend_Form_Decorator_ViewHelper e CZend_Form_Decorator_Tooltip(d SZend_Form_Decorator_PrepareElementsc ?Zend_Form_Decorator_Labelb ?Zend_Form_Decorator_Image a CZend_Form_Decorator_HtmlTag#` IZend_Form_Decorator_FormErrors%_ MZend_Form_Decorator_FormElements^ =Zend_Form_Decorator_Form] =Zend_Form_Decorator_File!\ EZend_Form_Decorator_Fieldset"[ GZend_Form_Decorator_ExceptionZ AZend_Form_Decorator_Errors$Y KZend_Form_Decorator_DtDdWrapper$X KZend_Form_Decorator_Description W CZend_Form_Decorator_Captcha%V MZend_Form_Decorator_Captcha_Word*U WZend_Form_Decorator_Captcha_ReCaptcha!T EZend_Form_Decorator_Callback!S EZend_Form_Decorator_AbstractR #Zend_Filter+Q YZend_Filter_Word_UnderscoreToSeparator&P OZend_Filter_Word_UnderscoreToDash+O YZend_Filter_Word_UnderscoreToCamelCase*N WZend_Filter_Word_SeparatorToSeparator%M MZend_Filter_Word_SeparatorToDash*L WZend_Filter_Word_SeparatorToCamelCase(K SZend_Filter_Word_Separator_Abstract&J OZend_Filter_Word_DashToUnderscore   a  iB,b6T&}X2R$



e
A
&
					T	(e4uX.Z5i>uPlE]=!
f7                                 9Zend_Gdata_Gapps_Error- ]Zend_Gdata_Gapps_EmailListRecipientQuery, [Zend_Gdata_Gapps_EmailListRecipientFeed- ]Zend_Gdata_Gapps_EmailListRecipientEntry$ KZend_Gdata_Gapps_EmailListQuery# IZend_Gdata_Gapps_EmailListFeed$ KZend_Gdata_Gapps_EmailListEntry +Zend_Gdata_Feed 5Zend_Gdata_Extension =Zend_Gdata_Extension_Who
 AZend_Gdata_Extension_Where	 ?Zend_Gdata_Extension_When$ KZend_Gdata_Extension_Visibility& OZend_Gdata_Extension_Transparency" GZend_Gdata_Extension_Reminder- ]Zend_Gdata_Extension_RecurrenceException$ KZend_Gdata_Extension_Recurrence  CZend_Gdata_Extension_Rating' QZend_Gdata_Extension_OriginalEvent0 cZend_Gdata_Extension_OpenSearchTotalResults.  _Zend_Gdata_Extension_OpenSearchStartIndex0 cZend_Gdata_Extension_OpenSearchItemsPerPage"~ GZend_Gdata_Extension_FeedLink*} WZend_Gdata_Extension_ExtendedProperty%| MZend_Gdata_Extension_EventStatus#{ IZend_Gdata_Extension_EntryLink"z GZend_Gdata_Extension_Comments&y OZend_Gdata_Extension_AttendeeType(x SZend_Gdata_Extension_AttendeeStatusw +Zend_Gdata_Exifv 5Zend_Gdata_Exif_Feed#u IZend_Gdata_Exif_Extension_Time#t IZend_Gdata_Exif_Extension_Tags$s KZend_Gdata_Exif_Extension_Model#r IZend_Gdata_Exif_Extension_Make"q GZend_Gdata_Exif_Extension_Iso,p [Zend_Gdata_Exif_Extension_ImageUniqueId$o KZend_Gdata_Exif_Extension_FStop*n WZend_Gdata_Exif_Extension_FocalLength$m KZend_Gdata_Exif_Extension_Flash'l QZend_Gdata_Exif_Extension_Exposure'k QZend_Gdata_Exif_Extension_Distancej 7Zend_Gdata_Exif_Entryi -Zend_Gdata_Entryh 7Zend_Gdata_DublinCore*g WZend_Gdata_DublinCore_Extension_Title,f [Zend_Gdata_DublinCore_Extension_Subject+e YZend_Gdata_DublinCore_Extension_Rights.d _Zend_Gdata_DublinCore_Extension_Publisher-c ]Zend_Gdata_DublinCore_Extension_Language/b aZend_Gdata_DublinCore_Extension_Identifier+a YZend_Gdata_DublinCore_Extension_Format0` cZend_Gdata_DublinCore_Extension_Description)_ UZend_Gdata_DublinCore_Extension_Date,^ [Zend_Gdata_DublinCore_Extension_Creator] +Zend_Gdata_Docs\ 7Zend_Gdata_Docs_Query%[ MZend_Gdata_Docs_DocumentListFeed&Z OZend_Gdata_Docs_DocumentListEntryY 9Zend_Gdata_ClientLoginX 3Zend_Gdata_Calendar!W EZend_Gdata_Calendar_ListFeed"V GZend_Gdata_Calendar_ListEntry-U ]Zend_Gdata_Calendar_Extension_WebContent+T YZend_Gdata_Calendar_Extension_Timezone9S uZend_Gdata_Calendar_Extension_SendEventNotifications+R YZend_Gdata_Calendar_Extension_Selected+Q YZend_Gdata_Calendar_Extension_QuickAdd'P QZend_Gdata_Calendar_Extension_Link)O UZend_Gdata_Calendar_Extension_Hidden(N SZend_Gdata_Calendar_Extension_Color.M _Zend_Gdata_Calendar_Extension_AccessLevel#L IZend_Gdata_Calendar_EventQuery"K GZend_Gdata_Calendar_EventFeed#J IZend_Gdata_Calendar_EventEntryI -Zend_Gdata_Books!H EZend_Gdata_Books_VolumeQuery G CZend_Gdata_Books_VolumeFeed!F EZend_Gdata_Books_VolumeEntry+E YZend_Gdata_Books_Extension_Viewability-D ]Zend_Gdata_Books_Extension_ThumbnailLink&C OZend_Gdata_Books_Extension_Review+B YZend_Gdata_Books_Extension_PreviewLink(A SZend_Gdata_Books_Extension_InfoLink-@ ]Zend_Gdata_Books_Extension_Embeddability)? UZend_Gdata_Books_Extension_BooksLink-> ]Zend_Gdata_Books_Extension_BooksCategory.= _Zend_Gdata_Books_Extension_AnnotationLink$< KZend_Gdata_Books_CollectionFeed%; MZend_Gdata_Books_CollectionEntry: 1Zend_Gdata_AuthSub9 )Zend_Gdata_App$8 KZend_Gdata_App_VersionException7 3Zend_Gdata_App_Util#6 IZend_Gdata_App_MediaFileSource5 ?Zend_Gdata_App_MediaEntry24 gZend_Gdata_App_LoggingHttpClientAdapterSocket   c  Z/{X4~[=yI,
`;#



p
Z
3
				v	]	1	wH]-rA]:nBc7K jB                           *w WZend_Gdata_Photos_Extension_Timestamp*v WZend_Gdata_Photos_Extension_Thumbnail%u MZend_Gdata_Photos_Extension_Size)t UZend_Gdata_Photos_Extension_Rotation+s YZend_Gdata_Photos_Extension_QuotaLimit-r ]Zend_Gdata_Photos_Extension_QuotaCurrent)q UZend_Gdata_Photos_Extension_Position(p SZend_Gdata_Photos_Extension_PhotoId3o iZend_Gdata_Photos_Extension_NumPhotosRemaining*n WZend_Gdata_Photos_Extension_NumPhotos)m UZend_Gdata_Photos_Extension_Nickname%l MZend_Gdata_Photos_Extension_Name2k gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum)j UZend_Gdata_Photos_Extension_Location#i IZend_Gdata_Photos_Extension_Id'h QZend_Gdata_Photos_Extension_Height2g gZend_Gdata_Photos_Extension_CommentingEnabled-f ]Zend_Gdata_Photos_Extension_CommentCount'e QZend_Gdata_Photos_Extension_Client)d UZend_Gdata_Photos_Extension_Checksum*c WZend_Gdata_Photos_Extension_BytesUsed(b SZend_Gdata_Photos_Extension_AlbumId'a QZend_Gdata_Photos_Extension_Access#` IZend_Gdata_Photos_CommentEntry!_ EZend_Gdata_Photos_AlbumQuery ^ CZend_Gdata_Photos_AlbumFeed!] EZend_Gdata_Photos_AlbumEntry\ 3Zend_Gdata_MimeFile[ ?Zend_Gdata_MimeBodyStringZ AZend_Gdata_MediaMimeStreamY -Zend_Gdata_MediaX 7Zend_Gdata_Media_Feed*W WZend_Gdata_Media_Extension_MediaTitle.V _Zend_Gdata_Media_Extension_MediaThumbnail)U UZend_Gdata_Media_Extension_MediaText0T cZend_Gdata_Media_Extension_MediaRestriction+S YZend_Gdata_Media_Extension_MediaRating+R YZend_Gdata_Media_Extension_MediaPlayer-Q ]Zend_Gdata_Media_Extension_MediaKeywords)P UZend_Gdata_Media_Extension_MediaHash*O WZend_Gdata_Media_Extension_MediaGroup0N cZend_Gdata_Media_Extension_MediaDescription+M YZend_Gdata_Media_Extension_MediaCredit.L _Zend_Gdata_Media_Extension_MediaCopyright,K [Zend_Gdata_Media_Extension_MediaContent-J ]Zend_Gdata_Media_Extension_MediaCategoryI 9Zend_Gdata_Media_EntryH AZend_Gdata_Kind_EventEntryG 7Zend_Gdata_HttpClient*F WZend_Gdata_HttpAdapterStreamingSocket)E UZend_Gdata_HttpAdapterStreamingProxyD /Zend_Gdata_HealthC ;Zend_Gdata_Health_Query&B OZend_Gdata_Health_ProfileListFeed'A QZend_Gdata_Health_ProfileListEntry"@ GZend_Gdata_Health_ProfileFeed#? IZend_Gdata_Health_ProfileEntry$> KZend_Gdata_Health_Extension_Ccr= )Zend_Gdata_Geo< 3Zend_Gdata_Geo_Feed$; KZend_Gdata_Geo_Extension_GmlPos&: OZend_Gdata_Geo_Extension_GmlPoint)9 UZend_Gdata_Geo_Extension_GeoRssWhere8 5Zend_Gdata_Geo_Entry7 -Zend_Gdata_Gbase"6 GZend_Gdata_Gbase_SnippetQuery!5 EZend_Gdata_Gbase_SnippetFeed"4 GZend_Gdata_Gbase_SnippetEntry3 9Zend_Gdata_Gbase_Query2 AZend_Gdata_Gbase_ItemQuery1 ?Zend_Gdata_Gbase_ItemFeed0 AZend_Gdata_Gbase_ItemEntry/ 7Zend_Gdata_Gbase_Feed-. ]Zend_Gdata_Gbase_Extension_BaseAttribute- 9Zend_Gdata_Gbase_Entry, -Zend_Gdata_Gapps+ AZend_Gdata_Gapps_UserQuery* ?Zend_Gdata_Gapps_UserFeed) AZend_Gdata_Gapps_UserEntry&( OZend_Gdata_Gapps_ServiceException' 9Zend_Gdata_Gapps_Query & CZend_Gdata_Gapps_OwnerQuery% AZend_Gdata_Gapps_OwnerFeed $ CZend_Gdata_Gapps_OwnerEntry## IZend_Gdata_Gapps_NicknameQuery"" GZend_Gdata_Gapps_NicknameFeed#! IZend_Gdata_Gapps_NicknameEntry!  EZend_Gdata_Gapps_MemberQuery  CZend_Gdata_Gapps_MemberFeed! EZend_Gdata_Gapps_MemberEntry  CZend_Gdata_Gapps_GroupQuery AZend_Gdata_Gapps_GroupFeed  CZend_Gdata_Gapps_GroupEntry% MZend_Gdata_Gapps_Extension_Quota( SZend_Gdata_Gapps_Extension_Property( SZend_Gdata_Gapps_Extension_Nickname$ KZend_Gdata_Gapps_Extension_Name% MZend_Gdata_Gapps_Extension_Login) UZend_Gdata_Gapps_Extension_EmailList   ]  Z6eL4_-zQ!xP)



c
;
				[	.	 |O&i9Z(vId9d@k?{aO*                          #T IZend_Http_Client_Adapter_Proxy'S QZend_Http_Client_Adapter_Exception"R GZend_Http_Client_Adapter_CurlQ !Zend_GdataP 1Zend_Gdata_YouTube"O GZend_Gdata_YouTube_VideoQuery!N EZend_Gdata_YouTube_VideoFeed"M GZend_Gdata_YouTube_VideoEntry(L SZend_Gdata_YouTube_UserProfileEntry(K SZend_Gdata_YouTube_SubscriptionFeed)J UZend_Gdata_YouTube_SubscriptionEntry)I UZend_Gdata_YouTube_PlaylistVideoFeed*H WZend_Gdata_YouTube_PlaylistVideoEntry(G SZend_Gdata_YouTube_PlaylistListFeed)F UZend_Gdata_YouTube_PlaylistListEntry"E GZend_Gdata_YouTube_MediaEntry!D EZend_Gdata_YouTube_InboxFeed"C GZend_Gdata_YouTube_InboxEntry)B UZend_Gdata_YouTube_Extension_VideoId*A WZend_Gdata_YouTube_Extension_Username*@ WZend_Gdata_YouTube_Extension_Uploaded'? QZend_Gdata_YouTube_Extension_Token(> SZend_Gdata_YouTube_Extension_Status,= [Zend_Gdata_YouTube_Extension_Statistics'< QZend_Gdata_YouTube_Extension_State(; SZend_Gdata_YouTube_Extension_School-: ]Zend_Gdata_YouTube_Extension_ReleaseDate.9 _Zend_Gdata_YouTube_Extension_Relationship*8 WZend_Gdata_YouTube_Extension_Recorded&7 OZend_Gdata_YouTube_Extension_Racy-6 ]Zend_Gdata_YouTube_Extension_QueryString)5 UZend_Gdata_YouTube_Extension_Private*4 WZend_Gdata_YouTube_Extension_Position/3 aZend_Gdata_YouTube_Extension_PlaylistTitle,2 [Zend_Gdata_YouTube_Extension_PlaylistId,1 [Zend_Gdata_YouTube_Extension_Occupation)0 UZend_Gdata_YouTube_Extension_NoEmbed'/ QZend_Gdata_YouTube_Extension_Music(. SZend_Gdata_YouTube_Extension_Movies-- ]Zend_Gdata_YouTube_Extension_MediaRating,, [Zend_Gdata_YouTube_Extension_MediaGroup-+ ]Zend_Gdata_YouTube_Extension_MediaCredit.* _Zend_Gdata_YouTube_Extension_MediaContent*) WZend_Gdata_YouTube_Extension_Location&( OZend_Gdata_YouTube_Extension_Link*' WZend_Gdata_YouTube_Extension_LastName*& WZend_Gdata_YouTube_Extension_Hometown)% UZend_Gdata_YouTube_Extension_Hobbies($ SZend_Gdata_YouTube_Extension_Gender+# YZend_Gdata_YouTube_Extension_FirstName*" WZend_Gdata_YouTube_Extension_Duration-! ]Zend_Gdata_YouTube_Extension_Description+  YZend_Gdata_YouTube_Extension_CountHint) UZend_Gdata_YouTube_Extension_Control) UZend_Gdata_YouTube_Extension_Company' QZend_Gdata_YouTube_Extension_Books% MZend_Gdata_YouTube_Extension_Age) UZend_Gdata_YouTube_Extension_AboutMe# IZend_Gdata_YouTube_ContactFeed$ KZend_Gdata_YouTube_ContactEntry# IZend_Gdata_YouTube_CommentFeed$ KZend_Gdata_YouTube_CommentEntry$ KZend_Gdata_YouTube_ActivityFeed% MZend_Gdata_YouTube_ActivityEntry ;Zend_Gdata_Spreadsheets* WZend_Gdata_Spreadsheets_WorksheetFeed+ YZend_Gdata_Spreadsheets_WorksheetEntry, [Zend_Gdata_Spreadsheets_SpreadsheetFeed- ]Zend_Gdata_Spreadsheets_SpreadsheetEntry& OZend_Gdata_Spreadsheets_ListQuery% MZend_Gdata_Spreadsheets_ListFeed& OZend_Gdata_Spreadsheets_ListEntry/ aZend_Gdata_Spreadsheets_Extension_RowCount- ]Zend_Gdata_Spreadsheets_Extension_Custom/
 aZend_Gdata_Spreadsheets_Extension_ColCount+	 YZend_Gdata_Spreadsheets_Extension_Cell* WZend_Gdata_Spreadsheets_DocumentQuery& OZend_Gdata_Spreadsheets_CellQuery% MZend_Gdata_Spreadsheets_CellFeed& OZend_Gdata_Spreadsheets_CellEntry -Zend_Gdata_Query /Zend_Gdata_Photos  CZend_Gdata_Photos_UserQuery AZend_Gdata_Photos_UserFeed   CZend_Gdata_Photos_UserEntry AZend_Gdata_Photos_TagEntry!~ EZend_Gdata_Photos_PhotoQuery } CZend_Gdata_Photos_PhotoFeed!| EZend_Gdata_Photos_PhotoEntry&{ OZend_Gdata_Photos_Extension_Width'z QZend_Gdata_Photos_Extension_Weight(y SZend_Gdata_Photos_Extension_Version%x MZend_Gdata_Photos_Extension_User   q  zbG,{a7i4xV3iI$	





j
H
#
				|	d	S	 |`; rU9b4^*wZD3mP&tZ8 tT1     E ?Zend_Log_Formatter_SimpleD AZend_Log_Formatter_Firebug C CZend_Log_Formatter_AbstractB =Zend_Log_Filter_SuppressA =Zend_Log_Filter_Priority@ ;Zend_Log_Filter_Message? =Zend_Log_Filter_Abstract> 1Zend_Log_Exception= #Zend_Locale< -Zend_Locale_Math; =Zend_Locale_Math_PhpMath: AZend_Locale_Math_Exception9 1Zend_Locale_Format8 7Zend_Locale_Exception7 -Zend_Locale_Data!6 EZend_Locale_Data_Translation5 #Zend_Loader#4 IZend_Loader_StandardAutoloader3 =Zend_Loader_PluginLoader'2 QZend_Loader_PluginLoader_Exception1 7Zend_Loader_Exception30 iZend_Loader_Exception_InvalidArgumentException#/ IZend_Loader_ClassMapAutoloader". GZend_Loader_AutoloaderFactory- 9Zend_Loader_Autoloader$, KZend_Loader_Autoloader_Resource+ Zend_Ldap* )Zend_Ldap_Node) 7Zend_Ldap_Node_Schema#( IZend_Ldap_Node_Schema_OpenLdap/' aZend_Ldap_Node_Schema_ObjectClass_OpenLdap6& oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectory% AZend_Ldap_Node_Schema_Item1$ eZend_Ldap_Node_Schema_AttributeType_OpenLdap8# sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory*" WZend_Ldap_Node_Schema_ActiveDirectory! 9Zend_Ldap_Node_RootDse$  KZend_Ldap_Node_RootDse_OpenLdap& OZend_Ldap_Node_RootDse_eDirectory+ YZend_Ldap_Node_RootDse_ActiveDirectory ?Zend_Ldap_Node_Collection$ KZend_Ldap_Node_ChildrenIterator ;Zend_Ldap_Node_Abstract 9Zend_Ldap_Ldif_Encoder -Zend_Ldap_Filter ;Zend_Ldap_Filter_String 3Zend_Ldap_Filter_Or 5Zend_Ldap_Filter_Not 7Zend_Ldap_Filter_Mask =Zend_Ldap_Filter_Logical AZend_Ldap_Filter_Exception 5Zend_Ldap_Filter_And ?Zend_Ldap_Filter_Abstract 3Zend_Ldap_Exception %Zend_Ldap_Dn 3Zend_Ldap_Converter" GZend_Ldap_Converter_Exception 5Zend_Ldap_Collection* WZend_Ldap_Collection_Iterator_Default
 3Zend_Ldap_Attribute	 #Zend_Layout 7Zend_Layout_Exception) UZend_Layout_Controller_Plugin_Layout0 cZend_Layout_Controller_Action_Helper_Layout Zend_Json -Zend_Json_Server 5Zend_Json_Server_Smd! EZend_Json_Server_Smd_Service ?Zend_Json_Server_Response#  IZend_Json_Server_Response_Http =Zend_Json_Server_Request"~ GZend_Json_Server_Request_Http} AZend_Json_Server_Exception| 9Zend_Json_Server_Error{ 9Zend_Json_Server_Cachez )Zend_Json_Expry 3Zend_Json_Exceptionx /Zend_Json_Encoderw /Zend_Json_Decoderv 3Zend_Http_UserAgent"u GZend_Http_UserAgent_Validatort =Zend_Http_UserAgent_Text(s SZend_Http_UserAgent_Storage_Session.r _Zend_Http_UserAgent_Storage_NonPersistent*q WZend_Http_UserAgent_Storage_Exceptionp =Zend_Http_UserAgent_Spamo ?Zend_Http_UserAgent_Probe n CZend_Http_UserAgent_Offlinem AZend_Http_UserAgent_Mobilel =Zend_Http_UserAgent_Feed+k YZend_Http_UserAgent_Features_Exception3j iZend_Http_UserAgent_Features_Adapter_TeraWurfl5i mZend_Http_UserAgent_Features_Adapter_DeviceAtlas2h gZend_Http_UserAgent_Features_Adapter_Browscap"g GZend_Http_UserAgent_Exceptionf ?Zend_Http_UserAgent_Email e CZend_Http_UserAgent_Desktop d CZend_Http_UserAgent_Console c CZend_Http_UserAgent_Checkerb ;Zend_Http_UserAgent_Bot'a QZend_Http_UserAgent_AbstractDevice` 1Zend_Http_Response_ ?Zend_Http_Response_Stream^ AZend_Http_Header_SetCookie0] cZend_Http_Header_Exception_RuntimeException8\ sZend_Http_Header_Exception_InvalidArgumentException[ 3Zend_Http_ExceptionZ 3Zend_Http_CookieJarY -Zend_Http_CookieX -Zend_Http_ClientW AZend_Http_Client_Exception"V GZend_Http_Client_Adapter_Test$U KZend_Http_Client_Adapter_Socket   v  mQ5tYC h>mO.fF"




i
C
					W	>	!	b? oO5kQ1yU1sX?)T#_+	uQ(           '; QZend_Mobile_Push_Message_Mpns_Tile&: OZend_Mobile_Push_Message_Mpns_Raw!9 EZend_Mobile_Push_Message_Gcm'8 QZend_Mobile_Push_Message_Exception"7 GZend_Mobile_Push_Message_Apns&6 OZend_Mobile_Push_Message_Abstract5 5Zend_Mobile_Push_Gcm4 AZend_Mobile_Push_Exception13 eZend_Mobile_Push_Exception_ServerUnavailable-2 ]Zend_Mobile_Push_Exception_QuotaExceeded,1 [Zend_Mobile_Push_Exception_InvalidTopic,0 [Zend_Mobile_Push_Exception_InvalidToken3/ iZend_Mobile_Push_Exception_InvalidRegistration.. _Zend_Mobile_Push_Exception_InvalidPayload0- cZend_Mobile_Push_Exception_InvalidAuthToken3, iZend_Mobile_Push_Exception_DeviceQuotaExceeded+ 7Zend_Mobile_Push_Apns* ?Zend_Mobile_Push_Abstract) 7Zend_Mobile_Exception( Zend_Mime' )Zend_Mime_Part& /Zend_Mime_Message% 3Zend_Mime_Exception$ -Zend_Mime_Decode# #Zend_Memory" /Zend_Memory_Value! 3Zend_Memory_Manager  7Zend_Memory_Exception 7Zend_Memory_Container" GZend_Memory_Container_Movable! EZend_Memory_Container_Locked! EZend_Memory_AccessController 3Zend_Measure_Weight 3Zend_Measure_Volume% MZend_Measure_Viscosity_Kinematic# IZend_Measure_Viscosity_Dynamic 3Zend_Measure_Torque /Zend_Measure_Time =Zend_Measure_Temperature 1Zend_Measure_Speed 7Zend_Measure_Pressure 1Zend_Measure_Power 3Zend_Measure_Number 9Zend_Measure_Lightness 3Zend_Measure_Length ?Zend_Measure_Illumination 9Zend_Measure_Frequency 1Zend_Measure_Force =Zend_Measure_Flow_Volume
 9Zend_Measure_Flow_Mole	 9Zend_Measure_Flow_Mass 9Zend_Measure_Exception 3Zend_Measure_Energy 5Zend_Measure_Density 5Zend_Measure_Current  CZend_Measure_Cooking_Weight  CZend_Measure_Cooking_Volume =Zend_Measure_Capacitance 3Zend_Measure_Binary  /Zend_Measure_Area 1Zend_Measure_Angle~ ?Zend_Measure_Acceleration} 7Zend_Measure_Abstract| #Zend_Markup{ 7Zend_Markup_TokenListz /Zend_Markup_Token*y WZend_Markup_Renderer_RendererAbstractx ?Zend_Markup_Renderer_Html"w GZend_Markup_Renderer_Html_Url#v IZend_Markup_Renderer_Html_List"u GZend_Markup_Renderer_Html_Img+t YZend_Markup_Renderer_Html_HtmlAbstract#s IZend_Markup_Renderer_Html_Code#r IZend_Markup_Renderer_Exception!q EZend_Markup_Parser_Exceptionp ?Zend_Markup_Parser_Bbcodeo 7Zend_Markup_Exceptionn Zend_Mailm =Zend_Mail_Transport_Smtp!l EZend_Mail_Transport_Sendmailk =Zend_Mail_Transport_File"j GZend_Mail_Transport_Exception!i EZend_Mail_Transport_Abstracth /Zend_Mail_Storage'g QZend_Mail_Storage_Writable_Maildirf 9Zend_Mail_Storage_Pop3e 9Zend_Mail_Storage_Mboxd ?Zend_Mail_Storage_Maildirc 9Zend_Mail_Storage_Imapb =Zend_Mail_Storage_Folder"a GZend_Mail_Storage_Folder_Mbox%` MZend_Mail_Storage_Folder_Maildir _ CZend_Mail_Storage_Exception^ AZend_Mail_Storage_Abstract] ;Zend_Mail_Protocol_Smtp'\ QZend_Mail_Protocol_Smtp_Auth_Plain'[ QZend_Mail_Protocol_Smtp_Auth_Login)Z UZend_Mail_Protocol_Smtp_Auth_Crammd5Y ;Zend_Mail_Protocol_Pop3X ;Zend_Mail_Protocol_Imap!W EZend_Mail_Protocol_Exception V CZend_Mail_Protocol_AbstractU )Zend_Mail_PartT 3Zend_Mail_Part_FileS /Zend_Mail_MessageR 9Zend_Mail_Message_FileQ 3Zend_Mail_ExceptionP Zend_Log O CZend_Log_Writer_ZendMonitorN 9Zend_Log_Writer_SyslogM 9Zend_Log_Writer_StreamL 5Zend_Log_Writer_NullK 5Zend_Log_Writer_MockJ 5Zend_Log_Writer_MailI ;Zend_Log_Writer_FirebugH 1Zend_Log_Writer_DbG =Zend_Log_Writer_AbstractF 9Zend_Log_Formatter_Xml   s  nG&y`E)b<m[2mI 





Y
2
				l	?	eC!dG%oO-pL*jJ^4sP3_=           #. IZend_Pdf_Element_String_Binary- ;Zend_Pdf_Element_Stream, AZend_Pdf_Element_Reference%+ MZend_Pdf_Element_Reference_Table'* QZend_Pdf_Element_Reference_Context) ;Zend_Pdf_Element_Object#( IZend_Pdf_Element_Object_Stream' =Zend_Pdf_Element_Numeric& 7Zend_Pdf_Element_Null% 7Zend_Pdf_Element_Name $ CZend_Pdf_Element_Dictionary# =Zend_Pdf_Element_Boolean" 9Zend_Pdf_Element_Array! 5Zend_Pdf_Destination  ?Zend_Pdf_Destination_Zoom! EZend_Pdf_Destination_Unknown AZend_Pdf_Destination_Named' QZend_Pdf_Destination_FitVertically& OZend_Pdf_Destination_FitRectangle) UZend_Pdf_Destination_FitHorizontally2 gZend_Pdf_Destination_FitBoundingBoxVertically4 kZend_Pdf_Destination_FitBoundingBoxHorizontally( SZend_Pdf_Destination_FitBoundingBox =Zend_Pdf_Destination_Fit" GZend_Pdf_Destination_Explicit )Zend_Pdf_Color 1Zend_Pdf_Color_Rgb 3Zend_Pdf_Color_Html =Zend_Pdf_Color_GrayScale 3Zend_Pdf_Color_Cmyk 'Zend_Pdf_Cmap AZend_Pdf_Cmap_TrimmedTable! EZend_Pdf_Cmap_SegmentToDelta AZend_Pdf_Cmap_ByteEncoding& OZend_Pdf_Cmap_ByteEncoding_Static +Zend_Pdf_Canvas
 =Zend_Pdf_Canvas_Abstract	 3Zend_Pdf_Annotation =Zend_Pdf_Annotation_Text AZend_Pdf_Annotation_Markup =Zend_Pdf_Annotation_Link' QZend_Pdf_Annotation_FileAttachment +Zend_Pdf_Action 3Zend_Pdf_Action_URI ;Zend_Pdf_Action_Unknown 7Zend_Pdf_Action_Trans  9Zend_Pdf_Action_Thread AZend_Pdf_Action_SubmitForm~ 7Zend_Pdf_Action_Sound } CZend_Pdf_Action_SetOCGState| ?Zend_Pdf_Action_ResetForm{ ?Zend_Pdf_Action_Renditionz 7Zend_Pdf_Action_Namedy 7Zend_Pdf_Action_Moviex 9Zend_Pdf_Action_Launchw AZend_Pdf_Action_JavaScriptv AZend_Pdf_Action_ImportDatau 5Zend_Pdf_Action_Hidet 7Zend_Pdf_Action_GoToRs 7Zend_Pdf_Action_GoToEr AZend_Pdf_Action_GoTo3DViewq 5Zend_Pdf_Action_GoTop )Zend_Paginator-o ]Zend_Paginator_SerializableLimitIterator*n WZend_Paginator_ScrollingStyle_Sliding*m WZend_Paginator_ScrollingStyle_Jumping*l WZend_Paginator_ScrollingStyle_Elastic&k OZend_Paginator_ScrollingStyle_Allj =Zend_Paginator_Exception i CZend_Paginator_Adapter_Null$h KZend_Paginator_Adapter_Iterator)g UZend_Paginator_Adapter_DbTableSelect$f KZend_Paginator_Adapter_DbSelect!e EZend_Paginator_Adapter_Arrayd #Zend_OpenIdc 5Zend_OpenId_Providerb ?Zend_OpenId_Provider_User&a OZend_OpenId_Provider_User_Session!` EZend_OpenId_Provider_Storage&_ OZend_OpenId_Provider_Storage_File^ 7Zend_OpenId_Extension] AZend_OpenId_Extension_Sreg\ 7Zend_OpenId_Exception[ 5Zend_OpenId_Consumer!Z EZend_OpenId_Consumer_Storage&Y OZend_OpenId_Consumer_Storage_FileX !Zend_OauthW -Zend_Oauth_TokenV =Zend_Oauth_Token_Request'U QZend_Oauth_Token_AuthorizedRequestT ;Zend_Oauth_Token_Access+S YZend_Oauth_Signature_SignatureAbstractR =Zend_Oauth_Signature_Rsa#Q IZend_Oauth_Signature_PlaintextP ?Zend_Oauth_Signature_HmacO +Zend_Oauth_HttpN ;Zend_Oauth_Http_Utility&M OZend_Oauth_Http_UserAuthorization!L EZend_Oauth_Http_RequestToken K CZend_Oauth_Http_AccessTokenJ 5Zend_Oauth_ExceptionI 3Zend_Oauth_ConsumerH /Zend_Oauth_ConfigG /Zend_Oauth_ClientF +Zend_NavigationE 5Zend_Navigation_PageD =Zend_Navigation_Page_UriC =Zend_Navigation_Page_MvcB ?Zend_Navigation_ExceptionA ?Zend_Navigation_Container$@ KZend_Mobile_Push_Test_ApnsProxy"? GZend_Mobile_Push_Response_Gcm> 7Zend_Mobile_Push_Mpns"= GZend_Mobile_Push_Message_Mpns(< SZend_Mobile_Push_Message_Mpns_Toast   g  k9e9bA,zD}P



>
			I	
_%^:kE$hD4tR:hD%{Q2lL+
                          5Zend_Reflection_File ?Zend_Reflection_Extension ?Zend_Reflection_Exception =Zend_Reflection_Docblock! EZend_Reflection_Docblock_Tag( SZend_Reflection_Docblock_Tag_Return' QZend_Reflection_Docblock_Tag_Param 7Zend_Reflection_Class !Zend_Queue 9Zend_Queue_Stomp_Frame ;Zend_Queue_Stomp_Client'
 QZend_Queue_Stomp_Client_Connection	 1Zend_Queue_Message# IZend_Queue_Message_PlatformJob  CZend_Queue_Message_Iterator 5Zend_Queue_Exception( SZend_Queue_Adapter_PlatformJobQueue ;Zend_Queue_Adapter_Null! EZend_Queue_Adapter_Memcacheq 7Zend_Queue_Adapter_Db  CZend_Queue_Adapter_Db_Queue"  GZend_Queue_Adapter_Db_Message =Zend_Queue_Adapter_Array'~ QZend_Queue_Adapter_AdapterAbstract } CZend_Queue_Adapter_Activemq| -Zend_ProgressBar{ AZend_ProgressBar_Exceptionz =Zend_ProgressBar_Adapter$y KZend_ProgressBar_Adapter_JsPush$x KZend_ProgressBar_Adapter_JsPull'w QZend_ProgressBar_Adapter_Exception%v MZend_ProgressBar_Adapter_Consoleu Zend_Pdf!t EZend_Pdf_UpdateInfoContainers -Zend_Pdf_Trailerr ;Zend_Pdf_Trailer_Keeperq AZend_Pdf_Trailer_Generatorp +Zend_Pdf_Targeto )Zend_Pdf_Stylen 7Zend_Pdf_StringParserm /Zend_Pdf_Resourcel ?Zend_Pdf_Resource_Unified#k IZend_Pdf_Resource_ImageFactoryj ;Zend_Pdf_Resource_Image!i EZend_Pdf_Resource_Image_Tiff h CZend_Pdf_Resource_Image_Png!g EZend_Pdf_Resource_Image_Jpeg$f KZend_Pdf_Resource_GraphicsStatee 9Zend_Pdf_Resource_Font!d EZend_Pdf_Resource_Font_Type0"c GZend_Pdf_Resource_Font_Simple+b YZend_Pdf_Resource_Font_Simple_Standard8a sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats6` oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman7_ qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic;^ yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic5] mZend_Pdf_Resource_Font_Simple_Standard_TimesBold2\ gZend_Pdf_Resource_Font_Simple_Standard_Symbol<[ {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueAZ Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique9Y uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold5X mZend_Pdf_Resource_Font_Simple_Standard_Helvetica:W wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique>V Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique7U qZend_Pdf_Resource_Font_Simple_Standard_CourierBold3T iZend_Pdf_Resource_Font_Simple_Standard_Courier)S UZend_Pdf_Resource_Font_Simple_Parsed2R gZend_Pdf_Resource_Font_Simple_Parsed_TrueType*Q WZend_Pdf_Resource_Font_FontDescriptor%P MZend_Pdf_Resource_Font_Extracted#O IZend_Pdf_Resource_Font_CidFont,N [Zend_Pdf_Resource_Font_CidFont_TrueType M CZend_Pdf_Resource_Extractor$L KZend_Pdf_Resource_ContentStream3K iZend_Pdf_RecursivelyIteratableObjectsContainerJ +Zend_Pdf_ParserI 'Zend_Pdf_PageH -Zend_Pdf_OutlineG ;Zend_Pdf_Outline_LoadedF =Zend_Pdf_Outline_CreatedE /Zend_Pdf_NameTreeD )Zend_Pdf_ImageC 'Zend_Pdf_FontB ?Zend_Pdf_Filter_RunLength A CZend_Pdf_Filter_Compression$@ KZend_Pdf_Filter_Compression_Lzw&? OZend_Pdf_Filter_Compression_Flate> =Zend_Pdf_Filter_AsciiHex= ;Zend_Pdf_Filter_Ascii85"< GZend_Pdf_FileParserDataSource); UZend_Pdf_FileParserDataSource_String': QZend_Pdf_FileParserDataSource_File9 3Zend_Pdf_FileParser8 ?Zend_Pdf_FileParser_Image"7 GZend_Pdf_FileParser_Image_Png6 =Zend_Pdf_FileParser_Font&5 OZend_Pdf_FileParser_Font_OpenType/4 aZend_Pdf_FileParser_Font_OpenType_TrueType3 1Zend_Pdf_Exception2 ;Zend_Pdf_ElementFactory"1 GZend_Pdf_ElementFactory_Proxy0 -Zend_Pdf_Element/ ;Zend_Pdf_Element_String   V  lJ!zbEx=p5t7



m
@
				z	V	6	nBnI xF]0o4\0 q@]'                     1k eZend_Search_Lucene_Search_Similarity_Default)j UZend_Search_Lucene_Search_QueryToken3i iZend_Search_Lucene_Search_QueryParserException1h eZend_Search_Lucene_Search_QueryParserContext*g WZend_Search_Lucene_Search_QueryParser)f UZend_Search_Lucene_Search_QueryLexer'e QZend_Search_Lucene_Search_QueryHit)d UZend_Search_Lucene_Search_QueryEntry.c _Zend_Search_Lucene_Search_QueryEntry_Term2b gZend_Search_Lucene_Search_QueryEntry_Subquery0a cZend_Search_Lucene_Search_QueryEntry_Phrase$` KZend_Search_Lucene_Search_Query-_ ]Zend_Search_Lucene_Search_Query_Wildcard)^ UZend_Search_Lucene_Search_Query_Term*] WZend_Search_Lucene_Search_Query_Range2\ gZend_Search_Lucene_Search_Query_Preprocessing7[ qZend_Search_Lucene_Search_Query_Preprocessing_Term9Z uZend_Search_Lucene_Search_Query_Preprocessing_Phrase8Y sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy+X YZend_Search_Lucene_Search_Query_Phrase.W _Zend_Search_Lucene_Search_Query_MultiTerm2V gZend_Search_Lucene_Search_Query_Insignificant*U WZend_Search_Lucene_Search_Query_Fuzzy*T WZend_Search_Lucene_Search_Query_Empty,S [Zend_Search_Lucene_Search_Query_Boolean2R gZend_Search_Lucene_Search_Highlighter_Default:Q wZend_Search_Lucene_Search_BooleanExpressionRecognizerP =Zend_Search_Lucene_Proxy%O MZend_Search_Lucene_PriorityQueue/N aZend_Search_Lucene_Interface_MultiSearcher%M MZend_Search_Lucene_MultiSearcher#L IZend_Search_Lucene_LockManager$K KZend_Search_Lucene_Index_Writer0J cZend_Search_Lucene_Index_TermsPriorityQueue&I OZend_Search_Lucene_Index_TermInfo"H GZend_Search_Lucene_Index_Term+G YZend_Search_Lucene_Index_SegmentWriter8F sZend_Search_Lucene_Index_SegmentWriter_StreamWriter:E wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter+D YZend_Search_Lucene_Index_SegmentMerger)C UZend_Search_Lucene_Index_SegmentInfo'B QZend_Search_Lucene_Index_FieldInfo(A SZend_Search_Lucene_Index_DocsFilter.@ _Zend_Search_Lucene_Index_DictionaryLoader!? EZend_Search_Lucene_FSMAction> 9Zend_Search_Lucene_FSM= =Zend_Search_Lucene_Field!< EZend_Search_Lucene_Exception ; CZend_Search_Lucene_Document%: MZend_Search_Lucene_Document_Xlsx%9 MZend_Search_Lucene_Document_Pptx(8 SZend_Search_Lucene_Document_OpenXml%7 MZend_Search_Lucene_Document_Html*6 WZend_Search_Lucene_Document_Exception%5 MZend_Search_Lucene_Document_Docx,4 [Zend_Search_Lucene_Analysis_TokenFilter63 oZend_Search_Lucene_Analysis_TokenFilter_StopWords72 qZend_Search_Lucene_Analysis_TokenFilter_ShortWords:1 wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf860 oZend_Search_Lucene_Analysis_TokenFilter_LowerCase&/ OZend_Search_Lucene_Analysis_Token). UZend_Search_Lucene_Analysis_Analyzer0- cZend_Search_Lucene_Analysis_Analyzer_Common8, sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumI+ Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive5* mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8F) Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive8( sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumI' Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive5& mZend_Search_Lucene_Analysis_Analyzer_Common_TextF% Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive$ 7Zend_Search_Exception# -Zend_Rest_Server" AZend_Rest_Server_Exception! +Zend_Rest_Route  3Zend_Rest_Exception 5Zend_Rest_Controller -Zend_Rest_Client ;Zend_Rest_Client_Result& OZend_Rest_Client_Result_Exception AZend_Rest_Client_Exception 'Zend_Registry =Zend_Reflection_Property ?Zend_Reflection_Parameter 9Zend_Reflection_Method =Zend_Reflection_Function   `  vD]+Z6sG#{X3



o
H
#
 				h	K	/	V)|R/W/mBnM( e7uZ7L                                       !K EZend_Service_Console_Command7J qZend_Service_Console_Command_ParameterSource_StdIn8I sZend_Service_Console_Command_ParameterSource_Prompt5H mZend_Service_Console_Command_ParameterSource_Env<G {Zend_Service_Console_Command_ParameterSource_ConfigFile6F oZend_Service_Console_Command_ParameterSource_Argv E CZend_Service_AudioscrobblerD 3Zend_Service_AmazonC ;Zend_Service_Amazon_Sqs&B OZend_Service_Amazon_Sqs_Exception!A EZend_Service_Amazon_SimpleDb*@ WZend_Service_Amazon_SimpleDb_Response&? OZend_Service_Amazon_SimpleDb_Page+> YZend_Service_Amazon_SimpleDb_Exception+= YZend_Service_Amazon_SimpleDb_Attribute'< QZend_Service_Amazon_SimilarProduct; 9Zend_Service_Amazon_S3": GZend_Service_Amazon_S3_Stream%9 MZend_Service_Amazon_S3_Exception"8 GZend_Service_Amazon_ResultSet7 ?Zend_Service_Amazon_Query!6 EZend_Service_Amazon_OfferSet5 ?Zend_Service_Amazon_Offer&4 OZend_Service_Amazon_ListmaniaList3 =Zend_Service_Amazon_Item2 ?Zend_Service_Amazon_Image"1 GZend_Service_Amazon_Exception(0 SZend_Service_Amazon_EditorialReview/ ;Zend_Service_Amazon_Ec2+. YZend_Service_Amazon_Ec2_Securitygroups%- MZend_Service_Amazon_Ec2_Response#, IZend_Service_Amazon_Ec2_Region$+ KZend_Service_Amazon_Ec2_Keypair%* MZend_Service_Amazon_Ec2_Instance-) ]Zend_Service_Amazon_Ec2_Instance_Windows.( _Zend_Service_Amazon_Ec2_Instance_Reserved"' GZend_Service_Amazon_Ec2_Image&& OZend_Service_Amazon_Ec2_Exception&% OZend_Service_Amazon_Ec2_Elasticip $ CZend_Service_Amazon_Ec2_Ebs'# QZend_Service_Amazon_Ec2_CloudWatch." _Zend_Service_Amazon_Ec2_Availabilityzones%! MZend_Service_Amazon_Ec2_Abstract'  QZend_Service_Amazon_CustomerReview' QZend_Service_Amazon_Authentication* WZend_Service_Amazon_Authentication_V2* WZend_Service_Amazon_Authentication_V1* WZend_Service_Amazon_Authentication_S31 eZend_Service_Amazon_Authentication_Exception$ KZend_Service_Amazon_Accessories! EZend_Service_Amazon_Abstract 5Zend_Service_Akismet 7Zend_Service_Abstract 9Zend_Server_Reflection' QZend_Server_Reflection_ReturnValue% MZend_Server_Reflection_Prototype% MZend_Server_Reflection_Parameter  CZend_Server_Reflection_Node" GZend_Server_Reflection_Method$ KZend_Server_Reflection_Function- ]Zend_Server_Reflection_Function_Abstract% MZend_Server_Reflection_Exception! EZend_Server_Reflection_Class! EZend_Server_Method_Prototype! EZend_Server_Method_Parameter"
 GZend_Server_Method_Definition 	 CZend_Server_Method_Callback 7Zend_Server_Exception 9Zend_Server_Definition /Zend_Server_Cache 5Zend_Server_Abstract +Zend_Serializer ?Zend_Serializer_Exception! EZend_Serializer_Adapter_Wddx) UZend_Serializer_Adapter_PythonPickle)  UZend_Serializer_Adapter_PhpSerialize$ KZend_Serializer_Adapter_PhpCode!~ EZend_Serializer_Adapter_Json%} MZend_Serializer_Adapter_Igbinary!| EZend_Serializer_Adapter_Amf3!{ EZend_Serializer_Adapter_Amf0,z [Zend_Serializer_Adapter_AdapterAbstracty 1Zend_Search_Lucene0x cZend_Search_Lucene_TermStreamsPriorityQueue$w KZend_Search_Lucene_Storage_File+v YZend_Search_Lucene_Storage_File_Memory/u aZend_Search_Lucene_Storage_File_Filesystem)t UZend_Search_Lucene_Storage_Directory4s kZend_Search_Lucene_Storage_Directory_Filesystem%r MZend_Search_Lucene_Search_Weight*q WZend_Search_Lucene_Search_Weight_Term,p [Zend_Search_Lucene_Search_Weight_Phrase/o aZend_Search_Lucene_Search_Weight_MultiTerm+n YZend_Search_Lucene_Search_Weight_Empty-m ]Zend_Search_Lucene_Search_Weight_Boolean)l UZend_Search_Lucene_Search_Similarity   9  h?!o:
8v0g8



@			<8/rpYIbQ         L Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbersB Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract9 uZend_Service_DeveloperGarden_Request_SendSms_SendSMS> Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS9  uZend_Service_DeveloperGarden_Request_RequestAbstractI Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequestE~ Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest3} iZend_Service_DeveloperGarden_Request_ExceptionR| %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequestY{ 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequestdz IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequestQy #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequestRx %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequestYw 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequestdv IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequestQu #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequestOt Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequestUs +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequestUr +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequestVq -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequestap CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequestZo 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequestTn )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequestRm %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequestYl 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequestQk #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequestQj #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequestai CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequestNh Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformationLg Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalanceJf Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool-e ]Zend_Service_DeveloperGarden_LocalSearch>d Zend_Service_DeveloperGarden_LocalSearch_SearchParameters7c qZend_Service_DeveloperGarden_LocalSearch_Exception,b [Zend_Service_DeveloperGarden_IpLocation6a oZend_Service_DeveloperGarden_IpLocation_IpAddress+` YZend_Service_DeveloperGarden_Exception,_ [Zend_Service_DeveloperGarden_Credential0^ cZend_Service_DeveloperGarden_ConferenceCallC] Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatusC\ Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail<[ {Zend_Service_DeveloperGarden_ConferenceCall_Participant:Z wZend_Service_DeveloperGarden_ConferenceCall_ExceptionDY 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceScheduleBX Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetailCW Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount-V ]Zend_Service_DeveloperGarden_Client_Soap2U gZend_Service_DeveloperGarden_Client_Exception7T qZend_Service_DeveloperGarden_Client_ClientAbstract1S eZend_Service_DeveloperGarden_BaseUserServiceAR Zend_Service_DeveloperGarden_BaseUserService_AccountBalanceQ 9Zend_Service_Delicious&P OZend_Service_Delicious_SimplePost$O KZend_Service_Delicious_PostList N CZend_Service_Delicious_Post%M MZend_Service_Delicious_Exception#L IZend_Service_Console_Exception   -  i%W8 i

i
		OD%UA+)bL                                                       T1 )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse[0 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponsef/ MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponseS. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponseT- )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse[, 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponsef+ MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponseS* 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponseU) +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseTypeQ( #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse[' 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseTypeW& /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse[% 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseTypeW$ /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse\# 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseTypeX" 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseg! OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseTypec  GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse` AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType\ 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseZ 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseTypeV -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseX 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseTypeT )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse_ ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseW /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseTypeS 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseQ #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstractS 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponseJ Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseTypeg OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseTypec GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseW /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponseU +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponseS 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse3 iZend_Service_DeveloperGarden_Response_BaseTypeJ Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstractC Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCallG
 Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced=	 }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallA Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatusA Zend_Service_DeveloperGarden_Request_SmsValidation_ValidateN Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeywordC Zend_Service_DeveloperGarden_Request_SmsValidation_Invalidate   D  <Uq3;d

e
		|	/CS!HB
|P!d/n?\;              u 3Zend_Service_Flickr"t GZend_Service_Flickr_ResultSets AZend_Service_Flickr_Resultr ?Zend_Service_Flickr_Imageq 9Zend_Service_Exceptionp ?Zend_Service_Ebay_Finding)o UZend_Service_Ebay_Finding_Storefront+n YZend_Service_Ebay_Finding_ShippingInfo+m YZend_Service_Ebay_Finding_Set_Abstract,l [Zend_Service_Ebay_Finding_SellingStatus)k UZend_Service_Ebay_Finding_SellerInfo,j [Zend_Service_Ebay_Finding_Search_Result*i WZend_Service_Ebay_Finding_Search_Item.h _Zend_Service_Ebay_Finding_Search_Item_Set0g cZend_Service_Ebay_Finding_Response_Keywords-f ]Zend_Service_Ebay_Finding_Response_Items2e gZend_Service_Ebay_Finding_Response_Histograms0d cZend_Service_Ebay_Finding_Response_Abstract/c aZend_Service_Ebay_Finding_PaginationOutput*b WZend_Service_Ebay_Finding_ListingInfo(a SZend_Service_Ebay_Finding_Exception,` [Zend_Service_Ebay_Finding_Error_Message)_ UZend_Service_Ebay_Finding_Error_Data-^ ]Zend_Service_Ebay_Finding_Error_Data_Set'] QZend_Service_Ebay_Finding_Category1\ eZend_Service_Ebay_Finding_Category_Histogram5[ mZend_Service_Ebay_Finding_Category_Histogram_Set;Z yZend_Service_Ebay_Finding_Category_Histogram_Container%Y MZend_Service_Ebay_Finding_Aspect)X UZend_Service_Ebay_Finding_Aspect_Set5W mZend_Service_Ebay_Finding_Aspect_Histogram_Value9V uZend_Service_Ebay_Finding_Aspect_Histogram_Value_Set9U uZend_Service_Ebay_Finding_Aspect_Histogram_Container'T QZend_Service_Ebay_Finding_Abstract S CZend_Service_Ebay_ExceptionR AZend_Service_Ebay_Abstract+Q YZend_Service_DeveloperGarden_VoiceCall/P aZend_Service_DeveloperGarden_SmsValidation)O UZend_Service_DeveloperGarden_SendSms5N mZend_Service_DeveloperGarden_SecurityTokenServer;M yZend_Service_DeveloperGarden_SecurityTokenServer_CacheKL Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstractLK Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponsePJ !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponseGI Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponseJH Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponseKG Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2ResponseLF Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponseIE Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumberWD /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponseJC Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponseUB +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponseCA Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponseC@ Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstractH? Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponseU> +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponseQ= #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponseI< Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception;; yZend_Service_DeveloperGarden_Response_ResponseAbstractO: Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseTypeK9 Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseA8 Zend_Service_DeveloperGarden_Response_IpLocation_RegionTypeK7 Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseTypeG6 Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseL5 Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationTypeI4 Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType>3 Zend_Service_DeveloperGarden_Response_IpLocation_CityType42 kZend_Service_DeveloperGarden_Response_Exception   U  nF^:
Pe>^:



x
Q
"			|	>	c8j9\3Y,w["nW j#                          UJ +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogsDI 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSources8H sZend_Service_WindowsAzure_Credentials_SharedKeyLite4G kZend_Service_WindowsAzure_Credentials_SharedKeyAF Zend_Service_WindowsAzure_Credentials_SharedAccessSignature4E kZend_Service_WindowsAzure_Credentials_Exception>D Zend_Service_WindowsAzure_Credentials_CredentialsAbstract2C gZend_Service_WindowsAzure_CommandLine_Storage2B gZend_Service_WindowsAzure_CommandLine_ServiceA !ScaffolderW@ /Zend_Service_WindowsAzure_CommandLine_PackageScaffolder_PackageScaffolderAbstract2? gZend_Service_WindowsAzure_CommandLine_PackageD> 	Zend_Service_WindowsAzure_CommandLine_GetAsynchronousOperation5= mZend_Service_WindowsAzure_CommandLine_Deployment6< oZend_Service_WindowsAzure_CommandLine_Certificate; 5Zend_Service_Twitter": GZend_Service_Twitter_Response#9 IZend_Service_Twitter_Exception8 ;Zend_Service_Technorati#7 IZend_Service_Technorati_Weblog"6 GZend_Service_Technorati_Utils*5 WZend_Service_Technorati_TagsResultSet'4 QZend_Service_Technorati_TagsResult)3 UZend_Service_Technorati_TagResultSet&2 OZend_Service_Technorati_TagResult,1 [Zend_Service_Technorati_SearchResultSet)0 UZend_Service_Technorati_SearchResult&/ OZend_Service_Technorati_ResultSet#. IZend_Service_Technorati_Result*- WZend_Service_Technorati_KeyInfoResult*, WZend_Service_Technorati_GetInfoResult&+ OZend_Service_Technorati_Exception1* eZend_Service_Technorati_DailyCountsResultSet.) _Zend_Service_Technorati_DailyCountsResult,( [Zend_Service_Technorati_CosmosResultSet)' UZend_Service_Technorati_CosmosResult+& YZend_Service_Technorati_BlogInfoResult#% IZend_Service_Technorati_Author$ ;Zend_Service_StrikeIron(# SZend_Service_StrikeIron_ZipCodeInfo2" gZend_Service_StrikeIron_USAddressVerification-! ]Zend_Service_StrikeIron_SalesUseTaxBasic&  OZend_Service_StrikeIron_Exception& OZend_Service_StrikeIron_Decorator! EZend_Service_StrikeIron_Base; yZend_Service_SqlAzure_Management_ServiceEntityAbstract4 kZend_Service_SqlAzure_Management_ServerInstance: wZend_Service_SqlAzure_Management_FirewallRuleInstance/ aZend_Service_SqlAzure_Management_Exception, [Zend_Service_SqlAzure_Management_Client$ KZend_Service_SqlAzure_Exception ;Zend_Service_SlideShare& OZend_Service_SlideShare_SlideShow& OZend_Service_SlideShare_Exception% MZend_Service_ShortUrl_TinyUrlCom& OZend_Service_ShortUrl_MetamarkNet! EZend_Service_ShortUrl_JdemCz AZend_Service_ShortUrl_IsGd$ KZend_Service_ShortUrl_Exception  CZend_Service_ShortUrl_BitLy, [Zend_Service_ShortUrl_AbstractShortener 9Zend_Service_ReCaptcha$ KZend_Service_ReCaptcha_Response$ KZend_Service_ReCaptcha_MailHide.
 _Zend_Service_ReCaptcha_MailHide_Exception%	 MZend_Service_ReCaptcha_Exception# IZend_Service_Rackspace_Servers5 mZend_Service_Rackspace_Servers_SharedIpGroupList1 eZend_Service_Rackspace_Servers_SharedIpGroup. _Zend_Service_Rackspace_Servers_ServerList* WZend_Service_Rackspace_Servers_Server- ]Zend_Service_Rackspace_Servers_ImageList) UZend_Service_Rackspace_Servers_Image- ]Zend_Service_Rackspace_Servers_Exception!  EZend_Service_Rackspace_Files, [Zend_Service_Rackspace_Files_ObjectList(~ SZend_Service_Rackspace_Files_Object+} YZend_Service_Rackspace_Files_Exception/| aZend_Service_Rackspace_Files_ContainerList+{ YZend_Service_Rackspace_Files_Container%z MZend_Service_Rackspace_Exception$y KZend_Service_Rackspace_Abstractx 7Zend_Service_LiveDocx$w KZend_Service_LiveDocx_MailMerge$v KZend_Service_LiveDocx_Exception   J  u6N[x?J


I
		|	8Mo:c,Tw=nCyP$lE+                 % MZend_Session_SaveHandler_DbTable 9Zend_Session_Namespace 9Zend_Session_Exception 7Zend_Session_Abstract 1Zend_Service_Yahoo$ KZend_Service_Yahoo_WebResultSet! EZend_Service_Yahoo_WebResult& OZend_Service_Yahoo_VideoResultSet# IZend_Service_Yahoo_VideoResult! EZend_Service_Yahoo_ResultSet
 ?Zend_Service_Yahoo_Result)	 UZend_Service_Yahoo_PageDataResultSet& OZend_Service_Yahoo_PageDataResult% MZend_Service_Yahoo_NewsResultSet" GZend_Service_Yahoo_NewsResult& OZend_Service_Yahoo_LocalResultSet# IZend_Service_Yahoo_LocalResult+ YZend_Service_Yahoo_InlinkDataResultSet( SZend_Service_Yahoo_InlinkDataResult& OZend_Service_Yahoo_ImageResultSet#  IZend_Service_Yahoo_ImageResult =Zend_Service_Yahoo_Image&~ OZend_Service_WindowsAzure_Storage4} kZend_Service_WindowsAzure_Storage_TableInstance7| qZend_Service_WindowsAzure_Storage_TableEntityQuery2{ gZend_Service_WindowsAzure_Storage_TableEntity,z [Zend_Service_WindowsAzure_Storage_Table<y {Zend_Service_WindowsAzure_Storage_StorageEntityAbstract7x qZend_Service_WindowsAzure_Storage_SignedIdentifier3w iZend_Service_WindowsAzure_Storage_QueueMessage4v kZend_Service_WindowsAzure_Storage_QueueInstance,u [Zend_Service_WindowsAzure_Storage_Queue9t uZend_Service_WindowsAzure_Storage_PageRegionInstance4s kZend_Service_WindowsAzure_Storage_LeaseInstance9r uZend_Service_WindowsAzure_Storage_DynamicTableEntity3q iZend_Service_WindowsAzure_Storage_BlobInstance4p kZend_Service_WindowsAzure_Storage_BlobContainer+o YZend_Service_WindowsAzure_Storage_Blob2n gZend_Service_WindowsAzure_Storage_Blob_Stream;m yZend_Service_WindowsAzure_Storage_BatchStorageAbstract,l [Zend_Service_WindowsAzure_Storage_Batch-k ]Zend_Service_WindowsAzure_SessionHandler>j Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract1i eZend_Service_WindowsAzure_RetryPolicy_RetryN2h gZend_Service_WindowsAzure_RetryPolicy_NoRetry4g kZend_Service_WindowsAzure_RetryPolicy_ExceptionHf Zend_Service_WindowsAzure_Management_SubscriptionOperationInstanceAe Zend_Service_WindowsAzure_Management_StorageServiceInstance@d Zend_Service_WindowsAzure_Management_ServiceEntityAbstractBc Zend_Service_WindowsAzure_Management_OperationStatusInstanceBb Zend_Service_WindowsAzure_Management_OperatingSystemInstanceHa Zend_Service_WindowsAzure_Management_OperatingSystemFamilyInstance:` wZend_Service_WindowsAzure_Management_LocationInstance@_ Zend_Service_WindowsAzure_Management_HostedServiceInstance3^ iZend_Service_WindowsAzure_Management_Exception<] {Zend_Service_WindowsAzure_Management_DeploymentInstance0\ cZend_Service_WindowsAzure_Management_Client=[ }Zend_Service_WindowsAzure_Management_CertificateInstance@Z Zend_Service_WindowsAzure_Management_AffinityGroupInstance6Y oZend_Service_WindowsAzure_Log_Writer_WindowsAzure9X uZend_Service_WindowsAzure_Log_Formatter_WindowsAzure,W [Zend_Service_WindowsAzure_Log_Exception(V SZend_Service_WindowsAzure_ExceptionJU Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscription2T gZend_Service_WindowsAzure_Diagnostics_Manager3S iZend_Service_WindowsAzure_Diagnostics_LogLevel4R kZend_Service_WindowsAzure_Diagnostics_ExceptionNQ Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscriptionHP Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLogLO Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCountersKN Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstract<M {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogsAL Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstanceDK 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectories   a  oG)
qS;g>|d@zZD*




h
9

				Q	"P$zGd7oQ*vX>)~Uk%mA  8u sZend_Tool_Framework_Client_Interactive_InputRequest8t sZend_Tool_Framework_Client_Interactive_InputHandler)s UZend_Tool_Framework_Client_Exception'r QZend_Tool_Framework_Client_ConsoleDq 	Zend_Tool_Framework_Client_Console_ResponseDecorator_IndentionDp 	Zend_Tool_Framework_Client_Console_ResponseDecorator_ColorizerCo Zend_Tool_Framework_Client_Console_ResponseDecorator_BlockizeFn Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter0m cZend_Tool_Framework_Client_Console_Manifest2l gZend_Tool_Framework_Client_Console_HelpSystem6k oZend_Tool_Framework_Client_Console_ArgumentParser&j OZend_Tool_Framework_Client_Config(i SZend_Tool_Framework_Client_Abstract*h WZend_Tool_Framework_Action_Repository)g UZend_Tool_Framework_Action_Exception$f KZend_Tool_Framework_Action_Basee 'Zend_TimeSyncd 1Zend_TimeSync_Sntpc 9Zend_TimeSync_Protocolb /Zend_TimeSync_Ntpa ;Zend_TimeSync_Exception` +Zend_Text_Table_ 3Zend_Text_Table_Row^ ?Zend_Text_Table_Exception&] OZend_Text_Table_Decorator_Unicode$\ KZend_Text_Table_Decorator_Ascii[ 9Zend_Text_Table_ColumnZ 3Zend_Text_MultiByteY -Zend_Text_FigletX AZend_Text_Figlet_ExceptionW 3Zend_Text_Exception&V OZend_Test_PHPUnit_Db_SimpleTester,U [Zend_Test_PHPUnit_Db_Operation_Truncate*T WZend_Test_PHPUnit_Db_Operation_Insert-S ]Zend_Test_PHPUnit_Db_Operation_DeleteAll*R WZend_Test_PHPUnit_Db_Metadata_Generic#Q IZend_Test_PHPUnit_Db_Exception,P [Zend_Test_PHPUnit_Db_DataSet_QueryTable.O _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet0N cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet)M UZend_Test_PHPUnit_Db_DataSet_DbTable*L WZend_Test_PHPUnit_Db_DataSet_DbRowset$K KZend_Test_PHPUnit_Db_Connection'J QZend_Test_PHPUnit_DatabaseTestCase)I UZend_Test_PHPUnit_ControllerTestCase2H gZend_Test_PHPUnit_Constraint_ResponseHeader412G gZend_Test_PHPUnit_Constraint_ResponseHeader372F gZend_Test_PHPUnit_Constraint_ResponseHeader340E cZend_Test_PHPUnit_Constraint_ResponseHeader,D [Zend_Test_PHPUnit_Constraint_Redirect41,C [Zend_Test_PHPUnit_Constraint_Redirect37,B [Zend_Test_PHPUnit_Constraint_Redirect34*A WZend_Test_PHPUnit_Constraint_Redirect+@ YZend_Test_PHPUnit_Constraint_Exception,? [Zend_Test_PHPUnit_Constraint_DomQuery41,> [Zend_Test_PHPUnit_Constraint_DomQuery37,= [Zend_Test_PHPUnit_Constraint_DomQuery34*< WZend_Test_PHPUnit_Constraint_DomQuery; 7Zend_Test_DbStatement: 3Zend_Test_DbAdapter9 /Zend_Tag_ItemList8 'Zend_Tag_Item7 1Zend_Tag_Exception6 )Zend_Tag_Cloud5 =Zend_Tag_Cloud_Exception!4 EZend_Tag_Cloud_Decorator_Tag%3 MZend_Tag_Cloud_Decorator_HtmlTag'2 QZend_Tag_Cloud_Decorator_HtmlCloud'1 QZend_Tag_Cloud_Decorator_Exception#0 IZend_Tag_Cloud_Decorator_Cloud!/ EZend_Stdlib_SplPriorityQueue. -SplPriorityQueue- ?Zend_Stdlib_PriorityQueue3, iZend_Stdlib_Exception_InvalidCallbackException + CZend_Stdlib_CallbackHandler* )Zend_Soap_Wsdl/) aZend_Soap_Wsdl_Strategy_DefaultComplexType&( OZend_Soap_Wsdl_Strategy_Composite0' cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence/& aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex$% KZend_Soap_Wsdl_Strategy_AnyType%$ MZend_Soap_Wsdl_Strategy_Abstract# =Zend_Soap_Wsdl_Exception" -Zend_Soap_Server! 9Zend_Soap_Server_Proxy  AZend_Soap_Server_Exception -Zend_Soap_Client 9Zend_Soap_Client_Local AZend_Soap_Client_Exception ;Zend_Soap_Client_DotNet ;Zend_Soap_Client_Common 9Zend_Soap_AutoDiscover% MZend_Soap_AutoDiscover_Exception %Zend_Session) UZend_Session_Validator_HttpUserAgent$ KZend_Session_Validator_Abstract' QZend_Session_SaveHandler_Exception   M  o(zO!m?X/wI%



h
4
			Z	*c7JtBx?vIu@vBm3                                    8B sZend_Tool_Project_Context_Zf_PublicScriptsDirectory1A eZend_Tool_Project_Context_Zf_PublicIndexFile7@ qZend_Tool_Project_Context_Zf_PublicImagesDirectory1? eZend_Tool_Project_Context_Zf_PublicDirectory5> mZend_Tool_Project_Context_Zf_ProjectProviderFile2= gZend_Tool_Project_Context_Zf_ModulesDirectory1< eZend_Tool_Project_Context_Zf_ModuleDirectory1; eZend_Tool_Project_Context_Zf_ModelsDirectory+: YZend_Tool_Project_Context_Zf_ModelFile/9 aZend_Tool_Project_Context_Zf_LogsDirectory28 gZend_Tool_Project_Context_Zf_LocalesDirectory27 gZend_Tool_Project_Context_Zf_LibraryDirectory26 gZend_Tool_Project_Context_Zf_LayoutsDirectory85 sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory24 gZend_Tool_Project_Context_Zf_LayoutScriptFile.3 _Zend_Tool_Project_Context_Zf_HtaccessFile02 cZend_Tool_Project_Context_Zf_FormsDirectory*1 WZend_Tool_Project_Context_Zf_FormFile/0 aZend_Tool_Project_Context_Zf_DocsDirectory-/ ]Zend_Tool_Project_Context_Zf_DbTableFile2. gZend_Tool_Project_Context_Zf_DbTableDirectory/- aZend_Tool_Project_Context_Zf_DataDirectory6, oZend_Tool_Project_Context_Zf_ControllersDirectory0+ cZend_Tool_Project_Context_Zf_ControllerFile2* gZend_Tool_Project_Context_Zf_ConfigsDirectory,) [Zend_Tool_Project_Context_Zf_ConfigFile0( cZend_Tool_Project_Context_Zf_CacheDirectory/' aZend_Tool_Project_Context_Zf_BootstrapFile6& oZend_Tool_Project_Context_Zf_ApplicationDirectory7% qZend_Tool_Project_Context_Zf_ApplicationConfigFile/$ aZend_Tool_Project_Context_Zf_ApisDirectory.# _Zend_Tool_Project_Context_Zf_ActionMethod3" iZend_Tool_Project_Context_Zf_AbstractClassFile@! Zend_Tool_Project_Context_System_ProjectProvidersDirectory8  sZend_Tool_Project_Context_System_ProjectProfileFile6 oZend_Tool_Project_Context_System_ProjectDirectory) UZend_Tool_Project_Context_Repository. _Zend_Tool_Project_Context_Filesystem_File3 iZend_Tool_Project_Context_Filesystem_Directory2 gZend_Tool_Project_Context_Filesystem_Abstract( SZend_Tool_Project_Context_Exception- ]Zend_Tool_Project_Context_Content_Engine3 iZend_Tool_Project_Context_Content_Engine_Phtml; yZend_Tool_Project_Context_Content_Engine_CodeGenerator0 cZend_Tool_Framework_System_Provider_Version0 cZend_Tool_Framework_System_Provider_Phpinfo1 eZend_Tool_Framework_System_Provider_Manifest/ aZend_Tool_Framework_System_Provider_Config( SZend_Tool_Framework_System_Manifest- ]Zend_Tool_Framework_System_Action_Delete- ]Zend_Tool_Framework_System_Action_Create! EZend_Tool_Framework_Registry+ YZend_Tool_Framework_Registry_Exception+ YZend_Tool_Framework_Provider_Signature, [Zend_Tool_Framework_Provider_Repository+ YZend_Tool_Framework_Provider_Exception*
 WZend_Tool_Framework_Provider_Abstract&	 OZend_Tool_Framework_Metadata_Tool) UZend_Tool_Framework_Metadata_Dynamic' QZend_Tool_Framework_Metadata_Basic, [Zend_Tool_Framework_Manifest_Repository2 gZend_Tool_Framework_Manifest_ProviderMetadata* WZend_Tool_Framework_Manifest_Metadata+ YZend_Tool_Framework_Manifest_Exception0 cZend_Tool_Framework_Manifest_ActionMetadata1 eZend_Tool_Framework_Loader_IncludePathLoaderJ  Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator+ YZend_Tool_Framework_Loader_BasicLoader(~ SZend_Tool_Framework_Loader_Abstract"} GZend_Tool_Framework_Exception'| QZend_Tool_Framework_Client_Storage1{ eZend_Tool_Framework_Client_Storage_Directory(z SZend_Tool_Framework_Client_ResponseDy 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator'x QZend_Tool_Framework_Client_Request(w SZend_Tool_Framework_Client_Manifest9v uZend_Tool_Framework_Client_Interactive_InputResponse   W  PbVg$zE


\
#				c	3K! ~Q%T,}V/^<iTD&pL%qN,
                ! EZend_Validate_Barcode_Gtin12 AZend_Validate_Barcode_Ean8 AZend_Validate_Barcode_Ean5 AZend_Validate_Barcode_Ean2  CZend_Validate_Barcode_Ean18  CZend_Validate_Barcode_Ean14  CZend_Validate_Barcode_Ean13  CZend_Validate_Barcode_Ean12$ KZend_Validate_Barcode_Code93ext! EZend_Validate_Barcode_Code93$ KZend_Validate_Barcode_Code39ext! EZend_Validate_Barcode_Code39, [Zend_Validate_Barcode_Code25interleaved! EZend_Validate_Barcode_Code25* WZend_Validate_Barcode_AdapterAbstract
 3Zend_Validate_Alpha	 3Zend_Validate_Alnum 9Zend_Validate_Abstract Zend_Uri 'Zend_Uri_Http 1Zend_Uri_Exception )Zend_Translate 7Zend_Translate_Plural =Zend_Translate_Exception 9Zend_Translate_Adapter!  EZend_Translate_Adapter_XmlTm! EZend_Translate_Adapter_Xliff~ AZend_Translate_Adapter_Tmx} AZend_Translate_Adapter_Tbx| ?Zend_Translate_Adapter_Qt{ AZend_Translate_Adapter_Ini#z IZend_Translate_Adapter_Gettexty AZend_Translate_Adapter_Csv!x EZend_Translate_Adapter_Array$w KZend_Tool_Project_Provider_View$v KZend_Tool_Project_Provider_Test/u aZend_Tool_Project_Provider_ProjectProvider't QZend_Tool_Project_Provider_Project's QZend_Tool_Project_Provider_Profile&r OZend_Tool_Project_Provider_Module%q MZend_Tool_Project_Provider_Model(p SZend_Tool_Project_Provider_Manifest&o OZend_Tool_Project_Provider_Layout$n KZend_Tool_Project_Provider_Form)m UZend_Tool_Project_Provider_Exception'l QZend_Tool_Project_Provider_DbTable)k UZend_Tool_Project_Provider_DbAdapter*j WZend_Tool_Project_Provider_Controller+i YZend_Tool_Project_Provider_Application&h OZend_Tool_Project_Provider_Action(g SZend_Tool_Project_Provider_Abstractf ?Zend_Tool_Project_Profile'e QZend_Tool_Project_Profile_Resource9d uZend_Tool_Project_Profile_Resource_SearchConstraints1c eZend_Tool_Project_Profile_Resource_Container=b }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter5a mZend_Tool_Project_Profile_Iterator_ContextFilter-` ]Zend_Tool_Project_Profile_FileParser_Xml(_ SZend_Tool_Project_Profile_Exception ^ CZend_Tool_Project_Exception<] {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory0\ cZend_Tool_Project_Context_Zf_ViewsDirectory6[ oZend_Tool_Project_Context_Zf_ViewScriptsDirectory0Z cZend_Tool_Project_Context_Zf_ViewScriptFile6Y oZend_Tool_Project_Context_Zf_ViewHelpersDirectory6X oZend_Tool_Project_Context_Zf_ViewFiltersDirectoryAW Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory2V gZend_Tool_Project_Context_Zf_UploadsDirectory0U cZend_Tool_Project_Context_Zf_TestsDirectory7T qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile:S wZend_Tool_Project_Context_Zf_TestPHPUnitBootstrapFile@R Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory1Q eZend_Tool_Project_Context_Zf_TestLibraryFile6P oZend_Tool_Project_Context_Zf_TestLibraryDirectory:O wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFileBN Zend_Tool_Project_Context_Zf_TestApplicationModulesDirectoryAM Zend_Tool_Project_Context_Zf_TestApplicationModuleDirectory:L wZend_Tool_Project_Context_Zf_TestApplicationDirectory@K Zend_Tool_Project_Context_Zf_TestApplicationControllerFileEJ Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory>I Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile=H }Zend_Tool_Project_Context_Zf_TestApplicationActionMethod4G kZend_Tool_Project_Context_Zf_TemporaryDirectory3F iZend_Tool_Project_Context_Zf_SessionsDirectory3E iZend_Tool_Project_Context_Zf_ServicesDirectory8D sZend_Tool_Project_Context_Zf_SearchIndexesDirectory<C {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory   r dBgE#vU.	lAkD"




^
:
						q	X	@	&		lG& _@ |_<jHqN-`>mH+Z/                                  CZend_View_Helper_Navigation(
 SZend_View_Helper_Navigation_Sitemap%	 MZend_View_Helper_Navigation_Menu& OZend_View_Helper_Navigation_Links/ aZend_View_Helper_Navigation_HelperAbstract, [Zend_View_Helper_Navigation_Breadcrumbs ;Zend_View_Helper_Layout 7Zend_View_Helper_Json" GZend_View_Helper_InlineScript# IZend_View_Helper_HtmlQuicktime ?Zend_View_Helper_HtmlPage   CZend_View_Helper_HtmlObject ?Zend_View_Helper_HtmlList~ AZend_View_Helper_HtmlFlash!} EZend_View_Helper_HtmlElement| AZend_View_Helper_HeadTitle{ AZend_View_Helper_HeadStyle z CZend_View_Helper_HeadScripty ?Zend_View_Helper_HeadMetax ?Zend_View_Helper_HeadLinkw ?Zend_View_Helper_Gravatar"v GZend_View_Helper_FormTextareau ?Zend_View_Helper_FormText t CZend_View_Helper_FormSubmit s CZend_View_Helper_FormSelectr AZend_View_Helper_FormResetq AZend_View_Helper_FormRadio"p GZend_View_Helper_FormPasswordo ?Zend_View_Helper_FormNote'n QZend_View_Helper_FormMultiCheckboxm AZend_View_Helper_FormLabell AZend_View_Helper_FormImage k CZend_View_Helper_FormHiddenj ?Zend_View_Helper_FormFile i CZend_View_Helper_FormErrors!h EZend_View_Helper_FormElement"g GZend_View_Helper_FormCheckbox f CZend_View_Helper_FormButtone 7Zend_View_Helper_Formd ?Zend_View_Helper_Fieldsetc =Zend_View_Helper_Doctype!b EZend_View_Helper_DeclareVarsa 9Zend_View_Helper_Cycle` ?Zend_View_Helper_Currency_ =Zend_View_Helper_BaseUrl^ ;Zend_View_Helper_Action] ?Zend_View_Helper_Abstract\ 3Zend_View_Exception[ 1Zend_View_AbstractZ %Zend_VersionY 'Zend_ValidateX AZend_Validate_StringLength#W IZend_Validate_Sitemap_PriorityV ?Zend_Validate_Sitemap_Loc"U GZend_Validate_Sitemap_Lastmod%T MZend_Validate_Sitemap_ChangefreqS 3Zend_Validate_RegexR 9Zend_Validate_PostCodeQ 9Zend_Validate_NotEmptyP 9Zend_Validate_LessThanO 7Zend_Validate_Ldap_DnN 1Zend_Validate_IsbnM -Zend_Validate_IpL /Zend_Validate_IntK 7Zend_Validate_InArrayJ ;Zend_Validate_IdenticalI 1Zend_Validate_IbanH 9Zend_Validate_HostnameG /Zend_Validate_HexF ?Zend_Validate_GreaterThanE 3Zend_Validate_Float!D EZend_Validate_File_WordCountC ?Zend_Validate_File_UploadB ;Zend_Validate_File_SizeA ;Zend_Validate_File_Sha1!@ EZend_Validate_File_NotExists ? CZend_Validate_File_MimeType> 9Zend_Validate_File_Md5= AZend_Validate_File_IsImage$< KZend_Validate_File_IsCompressed!; EZend_Validate_File_ImageSize: ;Zend_Validate_File_Hash!9 EZend_Validate_File_FilesSize!8 EZend_Validate_File_Extension7 ?Zend_Validate_File_Exists'6 QZend_Validate_File_ExcludeMimeType(5 SZend_Validate_File_ExcludeExtension4 =Zend_Validate_File_Crc323 =Zend_Validate_File_Count2 ;Zend_Validate_Exception1 AZend_Validate_EmailAddress0 5Zend_Validate_Digits"/ GZend_Validate_Db_RecordExists$. KZend_Validate_Db_NoRecordExists- ?Zend_Validate_Db_Abstract, 1Zend_Validate_Date+ =Zend_Validate_CreditCard* 3Zend_Validate_Ccnum) 9Zend_Validate_Callback( 7Zend_Validate_Between' 7Zend_Validate_Barcode& AZend_Validate_Barcode_Upce% AZend_Validate_Barcode_Upca$ AZend_Validate_Barcode_Sscc$# KZend_Validate_Barcode_Royalmail"" GZend_Validate_Barcode_Postnet!! EZend_Validate_Barcode_Planet#  IZend_Validate_Barcode_Leitcode  CZend_Validate_Barcode_Itf14 AZend_Validate_Barcode_Issn* WZend_Validate_Barcode_IntelligentMail$ KZend_Validate_Barcode_Identcode! EZend_Validate_Barcode_Gtin14! EZend_Validate_Barcode_Gtin13   l  h1[.
~\D3
jA'k=




o
H
(
					k	K	*	hF&eL2qN0`={Z9sS1zMt@                   w AZend_Application_Exception)v UZend_Application_Bootstrap_Exception1u eZend_Application_Bootstrap_BootstrapAbstract)t UZend_Application_Bootstrap_Bootstraps ?Zend_Amf_Value_TraitsInfo-r ]Zend_Amf_Value_Messaging_RemotingMessage*q WZend_Amf_Value_Messaging_ErrorMessage,p [Zend_Amf_Value_Messaging_CommandMessage*o WZend_Amf_Value_Messaging_AsyncMessage-n ]Zend_Amf_Value_Messaging_ArrayCollection0m cZend_Amf_Value_Messaging_AcknowledgeMessage-l ]Zend_Amf_Value_Messaging_AbstractMessage!k EZend_Amf_Value_MessageHeaderj AZend_Amf_Value_MessageBodyi =Zend_Amf_Value_ByteArrayh AZend_Amf_Util_BinaryStreamg +Zend_Amf_Serverf ?Zend_Amf_Server_Exceptione /Zend_Amf_Responsed 9Zend_Amf_Response_Httpc -Zend_Amf_Requestb 7Zend_Amf_Request_Httpa ?Zend_Amf_Parse_TypeLoader` ?Zend_Amf_Parse_Serializer#_ IZend_Amf_Parse_Resource_Stream(^ SZend_Amf_Parse_Resource_MysqlResult)] UZend_Amf_Parse_Resource_MysqliResult \ CZend_Amf_Parse_OutputStream[ AZend_Amf_Parse_InputStream Z CZend_Amf_Parse_Deserializer#Y IZend_Amf_Parse_Amf3_Serializer%X MZend_Amf_Parse_Amf3_Deserializer#W IZend_Amf_Parse_Amf0_Serializer%V MZend_Amf_Parse_Amf0_DeserializerU 1Zend_Amf_ExceptionT 1Zend_Amf_ConstantsS 9Zend_Amf_Auth_Abstract R CZend_Amf_Adobe_IntrospectorQ AZend_Amf_Adobe_DbInspectorP 3Zend_Amf_Adobe_AuthO Zend_AclN 'Zend_Acl_RoleM 9Zend_Acl_Role_Registry%L MZend_Acl_Role_Registry_ExceptionK /Zend_Acl_ResourceJ 1Zend_Acl_ExceptionI /Zend_XmlRpc_ValueH =Zend_XmlRpc_Value_StructG =Zend_XmlRpc_Value_StringF =Zend_XmlRpc_Value_ScalarE 7Zend_XmlRpc_Value_NilD ?Zend_XmlRpc_Value_Integer C CZend_XmlRpc_Value_ExceptionB =Zend_XmlRpc_Value_DoubleA AZend_XmlRpc_Value_DateTime!@ EZend_XmlRpc_Value_Collection? ?Zend_XmlRpc_Value_Boolean!> EZend_XmlRpc_Value_BigInteger= =Zend_XmlRpc_Value_Base64< ;Zend_XmlRpc_Value_Array; 1Zend_XmlRpc_Server: ?Zend_XmlRpc_Server_System9 =Zend_XmlRpc_Server_Fault!8 EZend_XmlRpc_Server_Exception7 =Zend_XmlRpc_Server_Cache6 5Zend_XmlRpc_Response5 ?Zend_XmlRpc_Response_Http4 3Zend_XmlRpc_Request3 ?Zend_XmlRpc_Request_Stdin2 =Zend_XmlRpc_Request_Http$1 KZend_XmlRpc_Generator_XmlWriter,0 [Zend_XmlRpc_Generator_GeneratorAbstract&/ OZend_XmlRpc_Generator_DomDocument. /Zend_XmlRpc_Fault- 7Zend_XmlRpc_Exception, 1Zend_XmlRpc_Client#+ IZend_XmlRpc_Client_ServerProxy+* YZend_XmlRpc_Client_ServerIntrospection+) YZend_XmlRpc_Client_IntrospectException%( MZend_XmlRpc_Client_HttpException&' OZend_XmlRpc_Client_FaultException!& EZend_XmlRpc_Client_Exception% /Zend_Xml_Security$ 1Zend_Xml_Exception&# OZend_Wildfire_Protocol_JsonStream!" EZend_Wildfire_Plugin_FirePhp.! _Zend_Wildfire_Plugin_FirePhp_TableMessage)  UZend_Wildfire_Plugin_FirePhp_Message ;Zend_Wildfire_Exception& OZend_Wildfire_Channel_HttpHeaders Zend_View -Zend_View_Stream AZend_View_Helper_UserAgent 5Zend_View_Helper_Url AZend_View_Helper_Translate AZend_View_Helper_ServerUrl) UZend_View_Helper_RenderToPlaceholder! EZend_View_Helper_Placeholder* WZend_View_Helper_Placeholder_Registry4 kZend_View_Helper_Placeholder_Registry_Exception+ YZend_View_Helper_Placeholder_Container6 oZend_View_Helper_Placeholder_Container_Standalone5 mZend_View_Helper_Placeholder_Container_Exception4 kZend_View_Helper_Placeholder_Container_Abstract! EZend_View_Helper_PartialLoop =Zend_View_Helper_Partial' QZend_View_Helper_Partial_Exception' QZend_View_Helper_PaginationControl   W  f;P iBf:x=


~
E
			o	=	yK yChB!yOlBrFzQ'_+                                   -  ]Zend_Feed_Pubsubhubbub_CallbackInterface  CZend_Feed_Builder_Interface1 eZend_EventManager_SharedEventCollectionAware, [Zend_EventManager_SharedEventCollection( SZend_EventManager_ListenerAggregate =Zend_EventManager_Filter  CZend_EventManager_Exception( SZend_EventManager_EventManagerAware' QZend_EventManager_EventDescription& OZend_EventManager_EventCollection  CZend_Db_Statement_Interface$ KZend_Currency_CurrencyInterface) UZend_Crypt_Math_BigInteger_Interface+ YZend_Controller_Router_Route_Interface% MZend_Controller_Router_Interface) UZend_Controller_Dispatcher_Interface% MZend_Controller_Action_Interface& OZend_Cloud_StorageService_Adapter$ KZend_Cloud_QueueService_Adapter& OZend_Cloud_Infrastructure_Adapter, [Zend_Cloud_DocumentService_QueryAdapter' QZend_Cloud_DocumentService_Adapter
 5Zend_Captcha_Adapter!	 EZend_Cache_Backend_Interface) UZend_Cache_Backend_ExtendedInterface  CZend_Auth_Storage_Interface  CZend_Auth_Adapter_Interface. _Zend_Auth_Adapter_Http_Resolver_Interface' QZend_Application_Resource_Resource4 kZend_Application_Bootstrap_ResourceBootstrapper, [Zend_Application_Bootstrap_Bootstrapper ;Zend_Acl_Role_Interface   CZend_Acl_Resource_Interface ?Zend_Acl_Assert_Interface#~ IZend_Wildfire_Plugin_Interface$} KZend_Wildfire_Channel_Interface| 3Zend_View_Interface'{ QZend_View_Helper_Navigation_Helperz AZend_View_Helper_Interfacey ;Zend_Validate_Interface+x YZend_Validate_Barcode_AdapterInterface3w iZend_Tool_Project_Profile_FileParser_Interface:v wZend_Tool_Project_Context_System_TopLevelRestrictable5u mZend_Tool_Project_Context_System_NotOverwritable/t aZend_Tool_Project_Context_System_Interface(s SZend_Tool_Project_Context_Interface+r YZend_Tool_Framework_Registry_Interface2q gZend_Tool_Framework_Registry_EnabledInterface-p ]Zend_Tool_Framework_Provider_Pretendable+o YZend_Tool_Framework_Provider_Interface.n _Zend_Tool_Framework_Provider_Interactable/m aZend_Tool_Framework_Provider_Initializable;l yZend_Tool_Framework_Provider_DocblockManifestInterface+k YZend_Tool_Framework_Metadata_Interface.j _Zend_Tool_Framework_Metadata_Attributable6i oZend_Tool_Framework_Manifest_ProviderManifestable6h oZend_Tool_Framework_Manifest_MetadataManifestable+g YZend_Tool_Framework_Manifest_Interface+f YZend_Tool_Framework_Manifest_Indexable4e kZend_Tool_Framework_Manifest_ActionManifestable)d UZend_Tool_Framework_Loader_Interface8c sZend_Tool_Framework_Client_Storage_AdapterInterfaceDb 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface;a yZend_Tool_Framework_Client_Interactive_OutputInterface:` wZend_Tool_Framework_Client_Interactive_InputInterface)_ UZend_Tool_Framework_Action_Interface(^ SZend_Text_Table_Decorator_Interface] /Zend_Tag_Taggable\ 7Zend_Stdlib_Exception&[ OZend_Soap_Wsdl_Strategy_Interface%Z MZend_Session_Validator_Interface'Y QZend_Session_SaveHandler_Interface$X KZend_Service_ShortUrl_ShortenerIW Zend_Service_DeveloperGarden_Response_SecurityTokenServer_InterfaceKV Zend_Service_Console_Command_ParameterSource_ParameterSourceInterfaceU 7Zend_Server_Interface-T ]Zend_Serializer_Adapter_AdapterInterface4S kZend_Search_Lucene_Search_Highlighter_Interface!R EZend_Search_Lucene_Interface3Q iZend_Search_Lucene_Index_TermsStream_Interface$P KZend_Queue_Stomp_FrameInterface0O cZend_Queue_Stomp_Client_ConnectionInterface(N SZend_Queue_Adapter_AdapterInterfaceM ?Zend_Pdf_Filter_Interface&L OZend_Pdf_ElementFactory_InterfaceK ?Zend_Pdf_Canvas_Interface,J [Zend_Paginator_ScrollingStyle_Interface   j [5
d>f=hEqY6




z
M
+

					d	?	fF&lX:jK'gB(mK+z\C!{>X0                                                        a 5Zend_Cloud_Exception%` MZend_Cloud_DocumentService_Query'_ QZend_Cloud_DocumentService_Factory)^ UZend_Cloud_DocumentService_Exception+] YZend_Cloud_DocumentService_DocumentSet(\ SZend_Cloud_DocumentService_Document4[ kZend_Cloud_DocumentService_Adapter_WindowsAzure:Z wZend_Cloud_DocumentService_Adapter_WindowsAzure_Query0Y cZend_Cloud_DocumentService_Adapter_SimpleDb6X oZend_Cloud_DocumentService_Adapter_SimpleDb_Query7W qZend_Cloud_DocumentService_Adapter_AbstractAdapterV AZend_Cloud_AbstractFactoryU /Zend_Captcha_WordT 9Zend_Captcha_ReCaptchaS 1Zend_Captcha_ImageR 3Zend_Captcha_FigletQ 9Zend_Captcha_ExceptionP /Zend_Captcha_DumbO /Zend_Captcha_BaseN !Zend_CacheM 1Zend_Cache_ManagerL =Zend_Cache_Frontend_PageK AZend_Cache_Frontend_Output!J EZend_Cache_Frontend_FunctionI =Zend_Cache_Frontend_FileH ?Zend_Cache_Frontend_Class G CZend_Cache_Frontend_CaptureF 5Zend_Cache_ExceptionE +Zend_Cache_CoreD 1Zend_Cache_Backend"C GZend_Cache_Backend_ZendServer(B SZend_Cache_Backend_ZendServer_ShMem'A QZend_Cache_Backend_ZendServer_Disk$@ KZend_Cache_Backend_ZendPlatform? ?Zend_Cache_Backend_Xcache > CZend_Cache_Backend_WinCache!= EZend_Cache_Backend_TwoLevels< ;Zend_Cache_Backend_Test; ?Zend_Cache_Backend_Static: ?Zend_Cache_Backend_Sqlite!9 EZend_Cache_Backend_Memcached$8 KZend_Cache_Backend_Libmemcached7 ;Zend_Cache_Backend_File!6 EZend_Cache_Backend_BlackHole5 9Zend_Cache_Backend_Apc4 %Zend_Barcode3 ?Zend_Barcode_Renderer_Svg+2 YZend_Barcode_Renderer_RendererAbstract1 ?Zend_Barcode_Renderer_Pdf 0 CZend_Barcode_Renderer_Image$/ KZend_Barcode_Renderer_Exception. =Zend_Barcode_Object_Upce- =Zend_Barcode_Object_Upca", GZend_Barcode_Object_Royalmail + CZend_Barcode_Object_Postnet* AZend_Barcode_Object_Planet') QZend_Barcode_Object_ObjectAbstract!( EZend_Barcode_Object_Leitcode' ?Zend_Barcode_Object_Itf14"& GZend_Barcode_Object_Identcode"% GZend_Barcode_Object_Exception$ ?Zend_Barcode_Object_Error# =Zend_Barcode_Object_Ean8" =Zend_Barcode_Object_Ean5! =Zend_Barcode_Object_Ean2  ?Zend_Barcode_Object_Ean13 AZend_Barcode_Object_Code39* WZend_Barcode_Object_Code25interleaved AZend_Barcode_Object_Code25  CZend_Barcode_Object_Code128 9Zend_Barcode_Exception Zend_Auth ?Zend_Auth_Storage_Session$ KZend_Auth_Storage_NonPersistent  CZend_Auth_Storage_Exception -Zend_Auth_Result 3Zend_Auth_Exception =Zend_Auth_Adapter_OpenId 9Zend_Auth_Adapter_Ldap 9Zend_Auth_Adapter_Http) UZend_Auth_Adapter_Http_Resolver_File. _Zend_Auth_Adapter_Http_Resolver_Exception  CZend_Auth_Adapter_Exception =Zend_Auth_Adapter_Digest ?Zend_Auth_Adapter_DbTable -Zend_Application# IZend_Application_Resource_View(
 SZend_Application_Resource_UserAgent(	 SZend_Application_Resource_Translate& OZend_Application_Resource_Session% MZend_Application_Resource_Router/ aZend_Application_Resource_ResourceAbstract) UZend_Application_Resource_Navigation& OZend_Application_Resource_Multidb& OZend_Application_Resource_Modules# IZend_Application_Resource_Mail" GZend_Application_Resource_Log%  MZend_Application_Resource_Locale% MZend_Application_Resource_Layout.~ _Zend_Application_Resource_Frontcontroller(} SZend_Application_Resource_Exception#| IZend_Application_Resource_Dojo!{ EZend_Application_Resource_Db+z YZend_Application_Resource_Cachemanager&y OZend_Application_Module_Bootstrap'x QZend_Application_Module_Autoloader   ^  g<i8qH!i=lE"



h
=
				n	I	t]E%jS;(a0U"k9 `5V-c=    '? QZend_Controller_Response_Exception!> EZend_Controller_Response_Cli&= OZend_Controller_Response_Abstract#< IZend_Controller_Request_Simple); UZend_Controller_Request_HttpTestCase!: EZend_Controller_Request_Http&9 OZend_Controller_Request_Exception&8 OZend_Controller_Request_Apache404%7 MZend_Controller_Request_Abstract&6 OZend_Controller_Plugin_PutHandler(5 SZend_Controller_Plugin_ErrorHandler"4 GZend_Controller_Plugin_Broker'3 QZend_Controller_Plugin_ActionStack$2 KZend_Controller_Plugin_Abstract1 7Zend_Controller_Front0 ?Zend_Controller_Exception(/ SZend_Controller_Dispatcher_Standard). UZend_Controller_Dispatcher_Exception(- SZend_Controller_Dispatcher_Abstract, 9Zend_Controller_Action(+ SZend_Controller_Action_HelperBroker6* oZend_Controller_Action_HelperBroker_PriorityStack/) aZend_Controller_Action_Helper_ViewRenderer&( OZend_Controller_Action_Helper_Url-' ]Zend_Controller_Action_Helper_Redirector'& QZend_Controller_Action_Helper_Json1% eZend_Controller_Action_Helper_FlashMessenger0$ cZend_Controller_Action_Helper_ContextSwitch(# SZend_Controller_Action_Helper_Cache<" {Zend_Controller_Action_Helper_AutoCompleteScriptaculous3! iZend_Controller_Action_Helper_AutoCompleteDojo8  sZend_Controller_Action_Helper_AutoComplete_Abstract. _Zend_Controller_Action_Helper_AjaxContext. _Zend_Controller_Action_Helper_ActionStack+ YZend_Controller_Action_Helper_Abstract% MZend_Controller_Action_Exception 3Zend_Console_Getopt" GZend_Console_Getopt_Exception #Zend_Config -Zend_Config_Yaml +Zend_Config_Xml 1Zend_Config_Writer ;Zend_Config_Writer_Yaml 9Zend_Config_Writer_Xml ;Zend_Config_Writer_Json 9Zend_Config_Writer_Ini$ KZend_Config_Writer_FileAbstract =Zend_Config_Writer_Array -Zend_Config_Json +Zend_Config_Ini 7Zend_Config_Exception$ KZend_CodeGenerator_Php_Property1 eZend_CodeGenerator_Php_Property_DefaultValue%
 MZend_CodeGenerator_Php_Parameter2	 gZend_CodeGenerator_Php_Parameter_DefaultValue" GZend_CodeGenerator_Php_Method, [Zend_CodeGenerator_Php_Member_Container+ YZend_CodeGenerator_Php_Member_Abstract  CZend_CodeGenerator_Php_File% MZend_CodeGenerator_Php_Exception$ KZend_CodeGenerator_Php_Docblock( SZend_CodeGenerator_Php_Docblock_Tag/ aZend_CodeGenerator_Php_Docblock_Tag_Return.  _Zend_CodeGenerator_Php_Docblock_Tag_Param0 cZend_CodeGenerator_Php_Docblock_Tag_License!~ EZend_CodeGenerator_Php_Class } CZend_CodeGenerator_Php_Body$| KZend_CodeGenerator_Php_Abstract!{ EZend_CodeGenerator_Exception z CZend_CodeGenerator_Abstract&y OZend_Cloud_StorageService_Factory(x SZend_Cloud_StorageService_Exception3w iZend_Cloud_StorageService_Adapter_WindowsAzure)v UZend_Cloud_StorageService_Adapter_S30u cZend_Cloud_StorageService_Adapter_Rackspace1t eZend_Cloud_StorageService_Adapter_FileSystem's QZend_Cloud_QueueService_MessageSet$r KZend_Cloud_QueueService_Message$q KZend_Cloud_QueueService_Factory&p OZend_Cloud_QueueService_Exception.o _Zend_Cloud_QueueService_Adapter_ZendQueue1n eZend_Cloud_QueueService_Adapter_WindowsAzure(m SZend_Cloud_QueueService_Adapter_Sqs4l kZend_Cloud_QueueService_Adapter_AbstractAdapter.k _Zend_Cloud_OperationNotAvailableException+j YZend_Cloud_Infrastructure_InstanceList'i QZend_Cloud_Infrastructure_Instance(h SZend_Cloud_Infrastructure_ImageList$g KZend_Cloud_Infrastructure_Image&f OZend_Cloud_Infrastructure_Factory(e SZend_Cloud_Infrastructure_Exception0d cZend_Cloud_Infrastructure_Adapter_Rackspace*c WZend_Cloud_Infrastructure_Adapter_Ec26b oZend_Cloud_Infrastructure_Adapter_AbstractAdapter   p
 _9`5sJ~\;!veE 



v
X
4
					n	M	+	vX@ 
yY/fM/mG+f3zM#uP)]8
                                  +/ YZend_Dojo_Form_Element_FilteringSelect". GZend_Dojo_Form_Element_Editor&- OZend_Dojo_Form_Element_DijitMulti!, EZend_Dojo_Form_Element_Dijit'+ QZend_Dojo_Form_Element_DateTextBox+* YZend_Dojo_Form_Element_CurrencyTextBox$) KZend_Dojo_Form_Element_ComboBox$( KZend_Dojo_Form_Element_CheckBox"' GZend_Dojo_Form_Element_Button & CZend_Dojo_Form_DisplayGroup*% WZend_Dojo_Form_Decorator_TabContainer,$ [Zend_Dojo_Form_Decorator_StackContainer,# [Zend_Dojo_Form_Decorator_SplitContainer'" QZend_Dojo_Form_Decorator_DijitForm*! WZend_Dojo_Form_Decorator_DijitElement,  [Zend_Dojo_Form_Decorator_DijitContainer) UZend_Dojo_Form_Decorator_ContentPane- ]Zend_Dojo_Form_Decorator_BorderContainer+ YZend_Dojo_Form_Decorator_AccordionPane0 cZend_Dojo_Form_Decorator_AccordionContainer 3Zend_Dojo_Exception )Zend_Dojo_Data 5Zend_Dojo_BuildLayer !Zend_Debug Zend_Db 'Zend_Db_Table 5Zend_Db_Table_Select# IZend_Db_Table_Select_Exception 5Zend_Db_Table_Rowset# IZend_Db_Table_Rowset_Exception" GZend_Db_Table_Rowset_Abstract /Zend_Db_Table_Row  CZend_Db_Table_Row_Exception AZend_Db_Table_Row_Abstract ;Zend_Db_Table_Exception =Zend_Db_Table_Definition 9Zend_Db_Table_Abstract
 /Zend_Db_Statement	 =Zend_Db_Statement_Sqlsrv' QZend_Db_Statement_Sqlsrv_Exception 7Zend_Db_Statement_Pdo ?Zend_Db_Statement_Pdo_Oci ?Zend_Db_Statement_Pdo_Ibm =Zend_Db_Statement_Oracle' QZend_Db_Statement_Oracle_Exception =Zend_Db_Statement_Mysqli' QZend_Db_Statement_Mysqli_Exception   CZend_Db_Statement_Exception 7Zend_Db_Statement_Db2$~ KZend_Db_Statement_Db2_Exception} )Zend_Db_Select| =Zend_Db_Select_Exception{ -Zend_Db_Profilerz 9Zend_Db_Profiler_Queryy =Zend_Db_Profiler_Firebugx AZend_Db_Profiler_Exceptionw %Zend_Db_Exprv /Zend_Db_Exceptionu 9Zend_Db_Adapter_Sqlsrv%t MZend_Db_Adapter_Sqlsrv_Exceptions AZend_Db_Adapter_Pdo_Sqliter ?Zend_Db_Adapter_Pdo_Pgsqlq ;Zend_Db_Adapter_Pdo_Ocip ?Zend_Db_Adapter_Pdo_Mysqlo ?Zend_Db_Adapter_Pdo_Mssqln ;Zend_Db_Adapter_Pdo_Ibm m CZend_Db_Adapter_Pdo_Ibm_Ids l CZend_Db_Adapter_Pdo_Ibm_Db2!k EZend_Db_Adapter_Pdo_Abstractj 9Zend_Db_Adapter_Oracle%i MZend_Db_Adapter_Oracle_Exceptionh 9Zend_Db_Adapter_Mysqli%g MZend_Db_Adapter_Mysqli_Exceptionf ?Zend_Db_Adapter_Exceptione 3Zend_Db_Adapter_Db2"d GZend_Db_Adapter_Db2_Exceptionc =Zend_Db_Adapter_Abstractb Zend_Datea 3Zend_Date_Exception` 5Zend_Date_DateObject_ -Zend_Date_Cities^ 'Zend_Currency] ;Zend_Currency_Exception\ !Zend_Crypt[ )Zend_Crypt_RsaZ 1Zend_Crypt_Rsa_KeyY ?Zend_Crypt_Rsa_Key_PublicX AZend_Crypt_Rsa_Key_PrivateW =Zend_Crypt_Rsa_ExceptionV +Zend_Crypt_MathU ?Zend_Crypt_Math_ExceptionT AZend_Crypt_Math_BigInteger#S IZend_Crypt_Math_BigInteger_Gmp)R UZend_Crypt_Math_BigInteger_Exception&Q OZend_Crypt_Math_BigInteger_BcmathP +Zend_Crypt_HmacO ?Zend_Crypt_Hmac_ExceptionN 5Zend_Crypt_ExceptionM =Zend_Crypt_DiffieHellman'L QZend_Crypt_DiffieHellman_Exception!K EZend_Controller_Router_Route(J SZend_Controller_Router_Route_Static'I QZend_Controller_Router_Route_Regex(H SZend_Controller_Router_Route_Module*G WZend_Controller_Router_Route_Hostname'F QZend_Controller_Router_Route_Chain*E WZend_Controller_Router_Route_Abstract#D IZend_Controller_Router_Rewrite%C MZend_Controller_Router_Exception$B KZend_Controller_Router_Abstract*A WZend_Controller_Response_HttpTestCase"@ GZend_Controller_Response_Http   c  yK!}W-|L![.a?



s
H
				v	J	 S'd(l@eE,rJb9lI'x@	         0 cZend_Feed_Reader_Extension_DublinCore_Entry4 kZend_Feed_Reader_Extension_CreativeCommons_Feed5 mZend_Feed_Reader_Extension_CreativeCommons_Entry- ]Zend_Feed_Reader_Extension_Content_Entry) UZend_Feed_Reader_Extension_Atom_Feed* WZend_Feed_Reader_Extension_Atom_Entry# IZend_Feed_Reader_EntryAbstract AZend_Feed_Reader_Entry_Rss 
 CZend_Feed_Reader_Entry_Atom 	 CZend_Feed_Reader_Collection3 iZend_Feed_Reader_Collection_CollectionAbstract) UZend_Feed_Reader_Collection_Category' QZend_Feed_Reader_Collection_Author 9Zend_Feed_Pubsubhubbub& OZend_Feed_Pubsubhubbub_Subscriber/ aZend_Feed_Pubsubhubbub_Subscriber_Callback% MZend_Feed_Pubsubhubbub_Publisher. _Zend_Feed_Pubsubhubbub_Model_Subscription/  aZend_Feed_Pubsubhubbub_Model_ModelAbstract( SZend_Feed_Pubsubhubbub_HttpResponse%~ MZend_Feed_Pubsubhubbub_Exception,} [Zend_Feed_Pubsubhubbub_CallbackAbstract| 3Zend_Feed_Exception{ 3Zend_Feed_Entry_Rssz 5Zend_Feed_Entry_Atomy =Zend_Feed_Entry_Abstractx /Zend_Feed_Elementw /Zend_Feed_Builderv =Zend_Feed_Builder_Header$u KZend_Feed_Builder_Header_Itunes t CZend_Feed_Builder_Exceptions ;Zend_Feed_Builder_Entryr )Zend_Feed_Atomq 1Zend_Feed_Abstractp )Zend_Exception)o UZend_EventManager_StaticEventManager)n UZend_EventManager_SharedEventManager)m UZend_EventManager_ResponseCollectionl SplStack)k UZend_EventManager_GlobalEventManager"j GZend_EventManager_FilterChain,i [Zend_EventManager_Filter_FilterIterator9h uZend_EventManager_Exception_InvalidArgumentException#g IZend_EventManager_EventManagerf ;Zend_EventManager_Evente )Zend_Dom_Queryd 7Zend_Dom_Query_Resultc =Zend_Dom_Query_Css2Xpathb 1Zend_Dom_Exceptiona Zend_Dojo)` UZend_Dojo_View_Helper_VerticalSlider,_ [Zend_Dojo_View_Helper_ValidationTextBox&^ OZend_Dojo_View_Helper_TimeTextBox"] GZend_Dojo_View_Helper_TextBox#\ IZend_Dojo_View_Helper_Textarea'[ QZend_Dojo_View_Helper_TabContainer'Z QZend_Dojo_View_Helper_SubmitButton)Y UZend_Dojo_View_Helper_StackContainer)X UZend_Dojo_View_Helper_SplitContainer!W EZend_Dojo_View_Helper_Slider)V UZend_Dojo_View_Helper_SimpleTextarea&U OZend_Dojo_View_Helper_RadioButton*T WZend_Dojo_View_Helper_PasswordTextBox(S SZend_Dojo_View_Helper_NumberTextBox(R SZend_Dojo_View_Helper_NumberSpinner+Q YZend_Dojo_View_Helper_HorizontalSliderP AZend_Dojo_View_Helper_Form*O WZend_Dojo_View_Helper_FilteringSelect!N EZend_Dojo_View_Helper_EditorM AZend_Dojo_View_Helper_Dojo)L UZend_Dojo_View_Helper_Dojo_Container)K UZend_Dojo_View_Helper_DijitContainer J CZend_Dojo_View_Helper_Dijit&I OZend_Dojo_View_Helper_DateTextBox&H OZend_Dojo_View_Helper_CustomDijit*G WZend_Dojo_View_Helper_CurrencyTextBox&F OZend_Dojo_View_Helper_ContentPane#E IZend_Dojo_View_Helper_ComboBox#D IZend_Dojo_View_Helper_CheckBox!C EZend_Dojo_View_Helper_Button*B WZend_Dojo_View_Helper_BorderContainer(A SZend_Dojo_View_Helper_AccordionPane-@ ]Zend_Dojo_View_Helper_AccordionContainer? =Zend_Dojo_View_Exception> )Zend_Dojo_Form= 9Zend_Dojo_Form_SubForm*< WZend_Dojo_Form_Element_VerticalSlider-; ]Zend_Dojo_Form_Element_ValidationTextBox': QZend_Dojo_Form_Element_TimeTextBox#9 IZend_Dojo_Form_Element_TextBox$8 KZend_Dojo_Form_Element_Textarea(7 SZend_Dojo_Form_Element_SubmitButton"6 GZend_Dojo_Form_Element_Slider*5 WZend_Dojo_Form_Element_SimpleTextarea'4 QZend_Dojo_Form_Element_RadioButton+3 YZend_Dojo_Form_Element_PasswordTextBox)2 UZend_Dojo_Form_Element_NumberTextBox)1 UZend_Dojo_Form_Element_NumberSpinner,0 [Zend_Dojo_Form_Element_HorizontalSlider   e  o?J!lL.K{D


`
6
				V	$~fU3lS7 tT4lI.nN1x\;i;jB                      +w YZend_Filter_Word_UnderscoreToCamelCase*v WZend_Filter_Word_SeparatorToSeparator%u MZend_Filter_Word_SeparatorToDash*t WZend_Filter_Word_SeparatorToCamelCase(s SZend_Filter_Word_Separator_Abstract&r OZend_Filter_Word_DashToUnderscore%q MZend_Filter_Word_DashToSeparator%p MZend_Filter_Word_DashToCamelCase+o YZend_Filter_Word_CamelCaseToUnderscore*n WZend_Filter_Word_CamelCaseToSeparator%m MZend_Filter_Word_CamelCaseToDashl 7Zend_Filter_StripTagsk ?Zend_Filter_StripNewlinesj 9Zend_Filter_StringTrimi ?Zend_Filter_StringToUpperh ?Zend_Filter_StringToLowerg 5Zend_Filter_RealPathf ;Zend_Filter_PregReplacee -Zend_Filter_Null&d OZend_Filter_NormalizedToLocalized&c OZend_Filter_LocalizedToNormalizedb +Zend_Filter_Inta /Zend_Filter_Input` 7Zend_Filter_Inflector_ =Zend_Filter_HtmlEntities^ AZend_Filter_File_UpperCase] ;Zend_Filter_File_Rename\ AZend_Filter_File_LowerCase[ =Zend_Filter_File_EncryptZ =Zend_Filter_File_DecryptY 7Zend_Filter_ExceptionX 3Zend_Filter_Encrypt W CZend_Filter_Encrypt_OpensslV AZend_Filter_Encrypt_McryptU +Zend_Filter_DirT 1Zend_Filter_DigitsS 3Zend_Filter_DecryptR 9Zend_Filter_DecompressQ 5Zend_Filter_CompressP =Zend_Filter_Compress_ZipO =Zend_Filter_Compress_TarN =Zend_Filter_Compress_RarM =Zend_Filter_Compress_LzfL ;Zend_Filter_Compress_Gz*K WZend_Filter_Compress_CompressAbstractJ =Zend_Filter_Compress_Bz2I 5Zend_Filter_CallbackH 3Zend_Filter_BooleanG 5Zend_Filter_BaseNameF /Zend_Filter_AlphaE /Zend_Filter_AlnumD 1Zend_File_Transfer!C EZend_File_Transfer_Exception$B KZend_File_Transfer_Adapter_Http(A SZend_File_Transfer_Adapter_Abstract@ 9Zend_File_PhpClassFile? AZend_File_ClassFileLocator> Zend_Feed= -Zend_Feed_Writer< ;Zend_Feed_Writer_Source/; aZend_Feed_Writer_Renderer_RendererAbstract': QZend_Feed_Writer_Renderer_Feed_Rss(9 SZend_Feed_Writer_Renderer_Feed_Atom/8 aZend_Feed_Writer_Renderer_Feed_Atom_Source57 mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract(6 SZend_Feed_Writer_Renderer_Entry_Rss)5 UZend_Feed_Writer_Renderer_Entry_Atom14 eZend_Feed_Writer_Renderer_Entry_Atom_Deleted3 7Zend_Feed_Writer_Feed'2 QZend_Feed_Writer_Feed_FeedAbstract<1 {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry80 sZend_Feed_Writer_Extension_Threading_Renderer_Entry4/ kZend_Feed_Writer_Extension_Slash_Renderer_Entry0. cZend_Feed_Writer_Extension_RendererAbstract4- kZend_Feed_Writer_Extension_ITunes_Renderer_Feed5, mZend_Feed_Writer_Extension_ITunes_Renderer_Entry++ YZend_Feed_Writer_Extension_ITunes_Feed,* [Zend_Feed_Writer_Extension_ITunes_Entry8) sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed9( uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry6' oZend_Feed_Writer_Extension_Content_Renderer_Entry2& gZend_Feed_Writer_Extension_Atom_Renderer_Feed6% oZend_Feed_Writer_Exception_InvalidMethodException$ 9Zend_Feed_Writer_Entry# =Zend_Feed_Writer_Deleted" 'Zend_Feed_Rss! -Zend_Feed_Reader  =Zend_Feed_Reader_FeedSet" GZend_Feed_Reader_FeedAbstract ?Zend_Feed_Reader_Feed_Rss AZend_Feed_Reader_Feed_Atom& OZend_Feed_Reader_Feed_Atom_Source3 iZend_Feed_Reader_Extension_WellFormedWeb_Entry, [Zend_Feed_Reader_Extension_Thread_Entry0 cZend_Feed_Reader_Extension_Syndication_Feed+ YZend_Feed_Reader_Extension_Slash_Entry, [Zend_Feed_Reader_Extension_Podcast_Feed- ]Zend_Feed_Reader_Extension_Podcast_Entry, [Zend_Feed_Reader_Extension_FeedAbstract- ]Zend_Feed_Reader_Extension_EntryAbstract/ aZend_Feed_Reader_Extension_DublinCore_Feed   k  rN!fAlK*rR1qR+




h
H
*
						b	:	pO"X=\4kEd=tO)|U1dI"                     b 1Zend_Gdata_AuthSuba )Zend_Gdata_App$` KZend_Gdata_App_VersionException_ 3Zend_Gdata_App_Util#^ IZend_Gdata_App_MediaFileSource] ?Zend_Gdata_App_MediaEntry2\ gZend_Gdata_App_LoggingHttpClientAdapterSocket[ AZend_Gdata_App_IOException,Z [Zend_Gdata_App_InvalidArgumentException!Y EZend_Gdata_App_HttpException$X KZend_Gdata_App_FeedSourceParent#W IZend_Gdata_App_FeedEntryParentV 3Zend_Gdata_App_FeedU =Zend_Gdata_App_Extension!T EZend_Gdata_App_Extension_Uri%S MZend_Gdata_App_Extension_Updated#R IZend_Gdata_App_Extension_Title"Q GZend_Gdata_App_Extension_Text%P MZend_Gdata_App_Extension_Summary&O OZend_Gdata_App_Extension_Subtitle$N KZend_Gdata_App_Extension_Source$M KZend_Gdata_App_Extension_Rights'L QZend_Gdata_App_Extension_Published$K KZend_Gdata_App_Extension_Person"J GZend_Gdata_App_Extension_Name"I GZend_Gdata_App_Extension_Logo"H GZend_Gdata_App_Extension_Link G CZend_Gdata_App_Extension_Id"F GZend_Gdata_App_Extension_Icon'E QZend_Gdata_App_Extension_Generator#D IZend_Gdata_App_Extension_Email%C MZend_Gdata_App_Extension_Element$B KZend_Gdata_App_Extension_Edited#A IZend_Gdata_App_Extension_Draft%@ MZend_Gdata_App_Extension_Control)? UZend_Gdata_App_Extension_Contributor%> MZend_Gdata_App_Extension_Content&= OZend_Gdata_App_Extension_Category$< KZend_Gdata_App_Extension_Author; =Zend_Gdata_App_Exception: 5Zend_Gdata_App_Entry,9 [Zend_Gdata_App_CaptchaRequiredException#8 IZend_Gdata_App_BaseMediaSource7 3Zend_Gdata_App_Base*6 WZend_Gdata_App_BadMethodCallException!5 EZend_Gdata_App_AuthException4 5Zend_Gdata_Analytics+3 YZend_Gdata_Analytics_Extension_TableId,2 [Zend_Gdata_Analytics_Extension_Property*1 WZend_Gdata_Analytics_Extension_Metric0 ?Zend_Gdata_Analytics_Goal-/ ]Zend_Gdata_Analytics_Extension_Dimension#. IZend_Gdata_Analytics_DataQuery"- GZend_Gdata_Analytics_DataFeed#, IZend_Gdata_Analytics_DataEntry&+ OZend_Gdata_Analytics_AccountQuery%* MZend_Gdata_Analytics_AccountFeed&) OZend_Gdata_Analytics_AccountEntry( Zend_Form' /Zend_Form_SubForm& 3Zend_Form_Exception% /Zend_Form_Element$ ;Zend_Form_Element_Xhtml# AZend_Form_Element_Textarea" 9Zend_Form_Element_Text! =Zend_Form_Element_Submit  =Zend_Form_Element_Select ;Zend_Form_Element_Reset ;Zend_Form_Element_Radio AZend_Form_Element_Password 9Zend_Form_Element_Note" GZend_Form_Element_Multiselect$ KZend_Form_Element_MultiCheckbox ;Zend_Form_Element_Multi ;Zend_Form_Element_Image =Zend_Form_Element_Hidden 9Zend_Form_Element_Hash 9Zend_Form_Element_File  CZend_Form_Element_Exception AZend_Form_Element_Checkbox ?Zend_Form_Element_Captcha =Zend_Form_Element_Button 9Zend_Form_DisplayGroup# IZend_Form_Decorator_ViewScript# IZend_Form_Decorator_ViewHelper  CZend_Form_Decorator_Tooltip( SZend_Form_Decorator_PrepareElements ?Zend_Form_Decorator_Label
 ?Zend_Form_Decorator_Image 	 CZend_Form_Decorator_HtmlTag# IZend_Form_Decorator_FormErrors% MZend_Form_Decorator_FormElements =Zend_Form_Decorator_Form =Zend_Form_Decorator_File! EZend_Form_Decorator_Fieldset" GZend_Form_Decorator_Exception AZend_Form_Decorator_Errors$ KZend_Form_Decorator_DtDdWrapper$  KZend_Form_Decorator_Description  CZend_Form_Decorator_Captcha%~ MZend_Form_Decorator_Captcha_Word*} WZend_Form_Decorator_Captcha_ReCaptcha!| EZend_Form_Decorator_Callback!{ EZend_Form_Decorator_Abstractz #Zend_Filter+y YZend_Filter_Word_UnderscoreToSeparator&x OZend_Filter_Word_UnderscoreToDash   `  P$rBkF n@xS/




q
B
				S	"{cFwH#nW,c>}Z3mK+T%\1                       %B MZend_Gdata_Gapps_Extension_Quota(A SZend_Gdata_Gapps_Extension_Property(@ SZend_Gdata_Gapps_Extension_Nickname$? KZend_Gdata_Gapps_Extension_Name%> MZend_Gdata_Gapps_Extension_Login)= UZend_Gdata_Gapps_Extension_EmailList< 9Zend_Gdata_Gapps_Error-; ]Zend_Gdata_Gapps_EmailListRecipientQuery,: [Zend_Gdata_Gapps_EmailListRecipientFeed-9 ]Zend_Gdata_Gapps_EmailListRecipientEntry$8 KZend_Gdata_Gapps_EmailListQuery#7 IZend_Gdata_Gapps_EmailListFeed$6 KZend_Gdata_Gapps_EmailListEntry5 +Zend_Gdata_Feed4 5Zend_Gdata_Extension3 =Zend_Gdata_Extension_Who2 AZend_Gdata_Extension_Where1 ?Zend_Gdata_Extension_When$0 KZend_Gdata_Extension_Visibility&/ OZend_Gdata_Extension_Transparency". GZend_Gdata_Extension_Reminder-- ]Zend_Gdata_Extension_RecurrenceException$, KZend_Gdata_Extension_Recurrence + CZend_Gdata_Extension_Rating'* QZend_Gdata_Extension_OriginalEvent0) cZend_Gdata_Extension_OpenSearchTotalResults.( _Zend_Gdata_Extension_OpenSearchStartIndex0' cZend_Gdata_Extension_OpenSearchItemsPerPage"& GZend_Gdata_Extension_FeedLink*% WZend_Gdata_Extension_ExtendedProperty%$ MZend_Gdata_Extension_EventStatus## IZend_Gdata_Extension_EntryLink"" GZend_Gdata_Extension_Comments&! OZend_Gdata_Extension_AttendeeType(  SZend_Gdata_Extension_AttendeeStatus +Zend_Gdata_Exif 5Zend_Gdata_Exif_Feed# IZend_Gdata_Exif_Extension_Time# IZend_Gdata_Exif_Extension_Tags$ KZend_Gdata_Exif_Extension_Model# IZend_Gdata_Exif_Extension_Make" GZend_Gdata_Exif_Extension_Iso, [Zend_Gdata_Exif_Extension_ImageUniqueId$ KZend_Gdata_Exif_Extension_FStop* WZend_Gdata_Exif_Extension_FocalLength$ KZend_Gdata_Exif_Extension_Flash' QZend_Gdata_Exif_Extension_Exposure' QZend_Gdata_Exif_Extension_Distance 7Zend_Gdata_Exif_Entry -Zend_Gdata_Entry 7Zend_Gdata_DublinCore* WZend_Gdata_DublinCore_Extension_Title, [Zend_Gdata_DublinCore_Extension_Subject+ YZend_Gdata_DublinCore_Extension_Rights. _Zend_Gdata_DublinCore_Extension_Publisher- ]Zend_Gdata_DublinCore_Extension_Language/
 aZend_Gdata_DublinCore_Extension_Identifier+	 YZend_Gdata_DublinCore_Extension_Format0 cZend_Gdata_DublinCore_Extension_Description) UZend_Gdata_DublinCore_Extension_Date, [Zend_Gdata_DublinCore_Extension_Creator +Zend_Gdata_Docs 7Zend_Gdata_Docs_Query% MZend_Gdata_Docs_DocumentListFeed& OZend_Gdata_Docs_DocumentListEntry 9Zend_Gdata_ClientLogin  3Zend_Gdata_Calendar! EZend_Gdata_Calendar_ListFeed"~ GZend_Gdata_Calendar_ListEntry-} ]Zend_Gdata_Calendar_Extension_WebContent+| YZend_Gdata_Calendar_Extension_Timezone9{ uZend_Gdata_Calendar_Extension_SendEventNotifications+z YZend_Gdata_Calendar_Extension_Selected+y YZend_Gdata_Calendar_Extension_QuickAdd'x QZend_Gdata_Calendar_Extension_Link)w UZend_Gdata_Calendar_Extension_Hidden(v SZend_Gdata_Calendar_Extension_Color.u _Zend_Gdata_Calendar_Extension_AccessLevel#t IZend_Gdata_Calendar_EventQuery"s GZend_Gdata_Calendar_EventFeed#r IZend_Gdata_Calendar_EventEntryq -Zend_Gdata_Books!p EZend_Gdata_Books_VolumeQuery o CZend_Gdata_Books_VolumeFeed!n EZend_Gdata_Books_VolumeEntry+m YZend_Gdata_Books_Extension_Viewability-l ]Zend_Gdata_Books_Extension_ThumbnailLink&k OZend_Gdata_Books_Extension_Review+j YZend_Gdata_Books_Extension_PreviewLink(i SZend_Gdata_Books_Extension_InfoLink-h ]Zend_Gdata_Books_Extension_Embeddability)g UZend_Gdata_Books_Extension_BooksLink-f ]Zend_Gdata_Books_Extension_BooksCategory.e _Zend_Gdata_Books_Extension_AnnotationLink$d KZend_Gdata_Books_CollectionFeed%c MZend_Gdata_Books_CollectionEntry   d  tQ-wT6rB%}Y4 iS,



o
V
*					p	A	V&k:zV3g;\0zDc;d;  !& EZend_Gdata_Photos_PhotoQuery % CZend_Gdata_Photos_PhotoFeed!$ EZend_Gdata_Photos_PhotoEntry&# OZend_Gdata_Photos_Extension_Width'" QZend_Gdata_Photos_Extension_Weight(! SZend_Gdata_Photos_Extension_Version%  MZend_Gdata_Photos_Extension_User* WZend_Gdata_Photos_Extension_Timestamp* WZend_Gdata_Photos_Extension_Thumbnail% MZend_Gdata_Photos_Extension_Size) UZend_Gdata_Photos_Extension_Rotation+ YZend_Gdata_Photos_Extension_QuotaLimit- ]Zend_Gdata_Photos_Extension_QuotaCurrent) UZend_Gdata_Photos_Extension_Position( SZend_Gdata_Photos_Extension_PhotoId3 iZend_Gdata_Photos_Extension_NumPhotosRemaining* WZend_Gdata_Photos_Extension_NumPhotos) UZend_Gdata_Photos_Extension_Nickname% MZend_Gdata_Photos_Extension_Name2 gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum) UZend_Gdata_Photos_Extension_Location# IZend_Gdata_Photos_Extension_Id' QZend_Gdata_Photos_Extension_Height2 gZend_Gdata_Photos_Extension_CommentingEnabled- ]Zend_Gdata_Photos_Extension_CommentCount' QZend_Gdata_Photos_Extension_Client) UZend_Gdata_Photos_Extension_Checksum* WZend_Gdata_Photos_Extension_BytesUsed(
 SZend_Gdata_Photos_Extension_AlbumId'	 QZend_Gdata_Photos_Extension_Access# IZend_Gdata_Photos_CommentEntry! EZend_Gdata_Photos_AlbumQuery  CZend_Gdata_Photos_AlbumFeed! EZend_Gdata_Photos_AlbumEntry 3Zend_Gdata_MimeFile ?Zend_Gdata_MimeBodyString AZend_Gdata_MediaMimeStream -Zend_Gdata_Media  7Zend_Gdata_Media_Feed* WZend_Gdata_Media_Extension_MediaTitle.~ _Zend_Gdata_Media_Extension_MediaThumbnail)} UZend_Gdata_Media_Extension_MediaText0| cZend_Gdata_Media_Extension_MediaRestriction+{ YZend_Gdata_Media_Extension_MediaRating+z YZend_Gdata_Media_Extension_MediaPlayer-y ]Zend_Gdata_Media_Extension_MediaKeywords)x UZend_Gdata_Media_Extension_MediaHash*w WZend_Gdata_Media_Extension_MediaGroup0v cZend_Gdata_Media_Extension_MediaDescription+u YZend_Gdata_Media_Extension_MediaCredit.t _Zend_Gdata_Media_Extension_MediaCopyright,s [Zend_Gdata_Media_Extension_MediaContent-r ]Zend_Gdata_Media_Extension_MediaCategoryq 9Zend_Gdata_Media_Entryp AZend_Gdata_Kind_EventEntryo 7Zend_Gdata_HttpClient*n WZend_Gdata_HttpAdapterStreamingSocket)m UZend_Gdata_HttpAdapterStreamingProxyl /Zend_Gdata_Healthk ;Zend_Gdata_Health_Query&j OZend_Gdata_Health_ProfileListFeed'i QZend_Gdata_Health_ProfileListEntry"h GZend_Gdata_Health_ProfileFeed#g IZend_Gdata_Health_ProfileEntry$f KZend_Gdata_Health_Extension_Ccre )Zend_Gdata_Geod 3Zend_Gdata_Geo_Feed$c KZend_Gdata_Geo_Extension_GmlPos&b OZend_Gdata_Geo_Extension_GmlPoint)a UZend_Gdata_Geo_Extension_GeoRssWhere` 5Zend_Gdata_Geo_Entry_ -Zend_Gdata_Gbase"^ GZend_Gdata_Gbase_SnippetQuery!] EZend_Gdata_Gbase_SnippetFeed"\ GZend_Gdata_Gbase_SnippetEntry[ 9Zend_Gdata_Gbase_QueryZ AZend_Gdata_Gbase_ItemQueryY ?Zend_Gdata_Gbase_ItemFeedX AZend_Gdata_Gbase_ItemEntryW 7Zend_Gdata_Gbase_Feed-V ]Zend_Gdata_Gbase_Extension_BaseAttributeU 9Zend_Gdata_Gbase_EntryT -Zend_Gdata_GappsS AZend_Gdata_Gapps_UserQueryR ?Zend_Gdata_Gapps_UserFeedQ AZend_Gdata_Gapps_UserEntry&P OZend_Gdata_Gapps_ServiceExceptionO 9Zend_Gdata_Gapps_Query N CZend_Gdata_Gapps_OwnerQueryM AZend_Gdata_Gapps_OwnerFeed L CZend_Gdata_Gapps_OwnerEntry#K IZend_Gdata_Gapps_NicknameQuery"J GZend_Gdata_Gapps_NicknameFeed#I IZend_Gdata_Gapps_NicknameEntry!H EZend_Gdata_Gapps_MemberQuery G CZend_Gdata_Gapps_MemberFeed!F EZend_Gdata_Gapps_MemberEntry E CZend_Gdata_Gapps_GroupQueryD AZend_Gdata_Gapps_GroupFeed C CZend_Gdata_Gapps_GroupEntry   ^  v]Ep>b2a:tL"



l
?
				`	7	
zJk9Z)uJ uQ, |P%r`;}eM2                         8 sZend_Http_Header_Exception_InvalidArgumentException 3Zend_Http_Exception 3Zend_Http_CookieJar -Zend_Http_Cookie  -Zend_Http_Client AZend_Http_Client_Exception"~ GZend_Http_Client_Adapter_Test$} KZend_Http_Client_Adapter_Socket#| IZend_Http_Client_Adapter_Proxy'{ QZend_Http_Client_Adapter_Exception"z GZend_Http_Client_Adapter_Curly !Zend_Gdatax 1Zend_Gdata_YouTube"w GZend_Gdata_YouTube_VideoQuery!v EZend_Gdata_YouTube_VideoFeed"u GZend_Gdata_YouTube_VideoEntry(t SZend_Gdata_YouTube_UserProfileEntry(s SZend_Gdata_YouTube_SubscriptionFeed)r UZend_Gdata_YouTube_SubscriptionEntry)q UZend_Gdata_YouTube_PlaylistVideoFeed*p WZend_Gdata_YouTube_PlaylistVideoEntry(o SZend_Gdata_YouTube_PlaylistListFeed)n UZend_Gdata_YouTube_PlaylistListEntry"m GZend_Gdata_YouTube_MediaEntry!l EZend_Gdata_YouTube_InboxFeed"k GZend_Gdata_YouTube_InboxEntry)j UZend_Gdata_YouTube_Extension_VideoId*i WZend_Gdata_YouTube_Extension_Username*h WZend_Gdata_YouTube_Extension_Uploaded'g QZend_Gdata_YouTube_Extension_Token(f SZend_Gdata_YouTube_Extension_Status,e [Zend_Gdata_YouTube_Extension_Statistics'd QZend_Gdata_YouTube_Extension_State(c SZend_Gdata_YouTube_Extension_School-b ]Zend_Gdata_YouTube_Extension_ReleaseDate.a _Zend_Gdata_YouTube_Extension_Relationship*` WZend_Gdata_YouTube_Extension_Recorded&_ OZend_Gdata_YouTube_Extension_Racy-^ ]Zend_Gdata_YouTube_Extension_QueryString)] UZend_Gdata_YouTube_Extension_Private*\ WZend_Gdata_YouTube_Extension_Position/[ aZend_Gdata_YouTube_Extension_PlaylistTitle,Z [Zend_Gdata_YouTube_Extension_PlaylistId,Y [Zend_Gdata_YouTube_Extension_Occupation)X UZend_Gdata_YouTube_Extension_NoEmbed'W QZend_Gdata_YouTube_Extension_Music(V SZend_Gdata_YouTube_Extension_Movies-U ]Zend_Gdata_YouTube_Extension_MediaRating,T [Zend_Gdata_YouTube_Extension_MediaGroup-S ]Zend_Gdata_YouTube_Extension_MediaCredit.R _Zend_Gdata_YouTube_Extension_MediaContent*Q WZend_Gdata_YouTube_Extension_Location&P OZend_Gdata_YouTube_Extension_Link*O WZend_Gdata_YouTube_Extension_LastName*N WZend_Gdata_YouTube_Extension_Hometown)M UZend_Gdata_YouTube_Extension_Hobbies(L SZend_Gdata_YouTube_Extension_Gender+K YZend_Gdata_YouTube_Extension_FirstName*J WZend_Gdata_YouTube_Extension_Duration-I ]Zend_Gdata_YouTube_Extension_Description+H YZend_Gdata_YouTube_Extension_CountHint)G UZend_Gdata_YouTube_Extension_Control)F UZend_Gdata_YouTube_Extension_Company'E QZend_Gdata_YouTube_Extension_Books%D MZend_Gdata_YouTube_Extension_Age)C UZend_Gdata_YouTube_Extension_AboutMe#B IZend_Gdata_YouTube_ContactFeed$A KZend_Gdata_YouTube_ContactEntry#@ IZend_Gdata_YouTube_CommentFeed$? KZend_Gdata_YouTube_CommentEntry$> KZend_Gdata_YouTube_ActivityFeed%= MZend_Gdata_YouTube_ActivityEntry< ;Zend_Gdata_Spreadsheets*; WZend_Gdata_Spreadsheets_WorksheetFeed+: YZend_Gdata_Spreadsheets_WorksheetEntry,9 [Zend_Gdata_Spreadsheets_SpreadsheetFeed-8 ]Zend_Gdata_Spreadsheets_SpreadsheetEntry&7 OZend_Gdata_Spreadsheets_ListQuery%6 MZend_Gdata_Spreadsheets_ListFeed&5 OZend_Gdata_Spreadsheets_ListEntry/4 aZend_Gdata_Spreadsheets_Extension_RowCount-3 ]Zend_Gdata_Spreadsheets_Extension_Custom/2 aZend_Gdata_Spreadsheets_Extension_ColCount+1 YZend_Gdata_Spreadsheets_Extension_Cell*0 WZend_Gdata_Spreadsheets_DocumentQuery&/ OZend_Gdata_Spreadsheets_CellQuery%. MZend_Gdata_Spreadsheets_CellFeed&- OZend_Gdata_Spreadsheets_CellEntry, -Zend_Gdata_Query+ /Zend_Gdata_Photos * CZend_Gdata_Photos_UserQuery) AZend_Gdata_Photos_UserFeed ( CZend_Gdata_Photos_UserEntry' AZend_Gdata_Photos_TagEntry   r  fL"yTcAT4sU3




g
O
>
					g	K	&	}]@$	nMIbE/X;|_E#_?bF*     v 9Zend_Log_Writer_Streamu 5Zend_Log_Writer_Nullt 5Zend_Log_Writer_Mocks 5Zend_Log_Writer_Mailr ;Zend_Log_Writer_Firebugq 1Zend_Log_Writer_Dbp =Zend_Log_Writer_Abstracto 9Zend_Log_Formatter_Xmln ?Zend_Log_Formatter_Simplem AZend_Log_Formatter_Firebug l CZend_Log_Formatter_Abstractk =Zend_Log_Filter_Suppressj =Zend_Log_Filter_Priorityi ;Zend_Log_Filter_Messageh =Zend_Log_Filter_Abstractg 1Zend_Log_Exceptionf #Zend_Localee -Zend_Locale_Mathd =Zend_Locale_Math_PhpMathc AZend_Locale_Math_Exceptionb 1Zend_Locale_Formata 7Zend_Locale_Exception` -Zend_Locale_Data!_ EZend_Locale_Data_Translation^ #Zend_Loader#] IZend_Loader_StandardAutoloader\ =Zend_Loader_PluginLoader'[ QZend_Loader_PluginLoader_ExceptionZ 7Zend_Loader_Exception3Y iZend_Loader_Exception_InvalidArgumentException#X IZend_Loader_ClassMapAutoloader"W GZend_Loader_AutoloaderFactoryV 9Zend_Loader_Autoloader$U KZend_Loader_Autoloader_ResourceT Zend_LdapS )Zend_Ldap_NodeR 7Zend_Ldap_Node_Schema#Q IZend_Ldap_Node_Schema_OpenLdap/P aZend_Ldap_Node_Schema_ObjectClass_OpenLdap6O oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectoryN AZend_Ldap_Node_Schema_Item1M eZend_Ldap_Node_Schema_AttributeType_OpenLdap8L sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory*K WZend_Ldap_Node_Schema_ActiveDirectoryJ 9Zend_Ldap_Node_RootDse$I KZend_Ldap_Node_RootDse_OpenLdap&H OZend_Ldap_Node_RootDse_eDirectory+G YZend_Ldap_Node_RootDse_ActiveDirectoryF ?Zend_Ldap_Node_Collection$E KZend_Ldap_Node_ChildrenIteratorD ;Zend_Ldap_Node_AbstractC 9Zend_Ldap_Ldif_EncoderB -Zend_Ldap_FilterA ;Zend_Ldap_Filter_String@ 3Zend_Ldap_Filter_Or? 5Zend_Ldap_Filter_Not> 7Zend_Ldap_Filter_Mask= =Zend_Ldap_Filter_Logical< AZend_Ldap_Filter_Exception; 5Zend_Ldap_Filter_And: ?Zend_Ldap_Filter_Abstract9 3Zend_Ldap_Exception8 %Zend_Ldap_Dn7 3Zend_Ldap_Converter"6 GZend_Ldap_Converter_Exception5 5Zend_Ldap_Collection*4 WZend_Ldap_Collection_Iterator_Default3 3Zend_Ldap_Attribute2 #Zend_Layout1 7Zend_Layout_Exception)0 UZend_Layout_Controller_Plugin_Layout0/ cZend_Layout_Controller_Action_Helper_Layout. Zend_Json- -Zend_Json_Server, 5Zend_Json_Server_Smd!+ EZend_Json_Server_Smd_Service* ?Zend_Json_Server_Response#) IZend_Json_Server_Response_Http( =Zend_Json_Server_Request"' GZend_Json_Server_Request_Http& AZend_Json_Server_Exception% 9Zend_Json_Server_Error$ 9Zend_Json_Server_Cache# )Zend_Json_Expr" 3Zend_Json_Exception! /Zend_Json_Encoder  /Zend_Json_Decoder 3Zend_Http_UserAgent" GZend_Http_UserAgent_Validator =Zend_Http_UserAgent_Text( SZend_Http_UserAgent_Storage_Session. _Zend_Http_UserAgent_Storage_NonPersistent* WZend_Http_UserAgent_Storage_Exception =Zend_Http_UserAgent_Spam ?Zend_Http_UserAgent_Probe  CZend_Http_UserAgent_Offline AZend_Http_UserAgent_Mobile =Zend_Http_UserAgent_Feed+ YZend_Http_UserAgent_Features_Exception3 iZend_Http_UserAgent_Features_Adapter_TeraWurfl5 mZend_Http_UserAgent_Features_Adapter_DeviceAtlas2 gZend_Http_UserAgent_Features_Adapter_Browscap" GZend_Http_UserAgent_Exception ?Zend_Http_UserAgent_Email  CZend_Http_UserAgent_Desktop  CZend_Http_UserAgent_Console  CZend_Http_UserAgent_Checker ;Zend_Http_UserAgent_Bot'
 QZend_Http_UserAgent_AbstractDevice	 1Zend_Http_Response ?Zend_Http_Response_Stream AZend_Http_Header_SetCookie! EZend_Http_Header_HeaderValue0 cZend_Http_Header_Exception_RuntimeException   t qM/`4
|T/jQ-vU1



l
G
&						r	X	?	$	kM/}_D*yQ6tY@-|_)`1fAuP3                              "j GZend_Mobile_Push_Response_Gcmi 7Zend_Mobile_Push_Mpns"h GZend_Mobile_Push_Message_Mpns(g SZend_Mobile_Push_Message_Mpns_Toast'f QZend_Mobile_Push_Message_Mpns_Tile&e OZend_Mobile_Push_Message_Mpns_Raw!d EZend_Mobile_Push_Message_Gcm'c QZend_Mobile_Push_Message_Exception"b GZend_Mobile_Push_Message_Apns&a OZend_Mobile_Push_Message_Abstract` 5Zend_Mobile_Push_Gcm_ AZend_Mobile_Push_Exception1^ eZend_Mobile_Push_Exception_ServerUnavailable-] ]Zend_Mobile_Push_Exception_QuotaExceeded,\ [Zend_Mobile_Push_Exception_InvalidTopic,[ [Zend_Mobile_Push_Exception_InvalidToken3Z iZend_Mobile_Push_Exception_InvalidRegistration.Y _Zend_Mobile_Push_Exception_InvalidPayload0X cZend_Mobile_Push_Exception_InvalidAuthToken3W iZend_Mobile_Push_Exception_DeviceQuotaExceededV 7Zend_Mobile_Push_ApnsU ?Zend_Mobile_Push_AbstractT 7Zend_Mobile_ExceptionS Zend_MimeR )Zend_Mime_PartQ /Zend_Mime_MessageP 3Zend_Mime_ExceptionO -Zend_Mime_DecodeN #Zend_MemoryM /Zend_Memory_ValueL 3Zend_Memory_ManagerK 7Zend_Memory_ExceptionJ 7Zend_Memory_Container"I GZend_Memory_Container_Movable!H EZend_Memory_Container_Locked!G EZend_Memory_AccessControllerF 3Zend_Measure_WeightE 3Zend_Measure_Volume%D MZend_Measure_Viscosity_Kinematic#C IZend_Measure_Viscosity_DynamicB 3Zend_Measure_TorqueA /Zend_Measure_Time@ =Zend_Measure_Temperature? 1Zend_Measure_Speed> 7Zend_Measure_Pressure= 1Zend_Measure_Power< 3Zend_Measure_Number; 9Zend_Measure_Lightness: 3Zend_Measure_Length9 ?Zend_Measure_Illumination8 9Zend_Measure_Frequency7 1Zend_Measure_Force6 =Zend_Measure_Flow_Volume5 9Zend_Measure_Flow_Mole4 9Zend_Measure_Flow_Mass3 9Zend_Measure_Exception2 3Zend_Measure_Energy1 5Zend_Measure_Density0 5Zend_Measure_Current / CZend_Measure_Cooking_Weight . CZend_Measure_Cooking_Volume- =Zend_Measure_Capacitance, 3Zend_Measure_Binary+ /Zend_Measure_Area* 1Zend_Measure_Angle) ?Zend_Measure_Acceleration( 7Zend_Measure_Abstract' #Zend_Markup& 7Zend_Markup_TokenList% /Zend_Markup_Token*$ WZend_Markup_Renderer_RendererAbstract# ?Zend_Markup_Renderer_Html"" GZend_Markup_Renderer_Html_Url#! IZend_Markup_Renderer_Html_List"  GZend_Markup_Renderer_Html_Img+ YZend_Markup_Renderer_Html_HtmlAbstract# IZend_Markup_Renderer_Html_Code# IZend_Markup_Renderer_Exception! EZend_Markup_Parser_Exception ?Zend_Markup_Parser_Bbcode 7Zend_Markup_Exception Zend_Mail =Zend_Mail_Transport_Smtp! EZend_Mail_Transport_Sendmail =Zend_Mail_Transport_File" GZend_Mail_Transport_Exception! EZend_Mail_Transport_Abstract /Zend_Mail_Storage' QZend_Mail_Storage_Writable_Maildir 9Zend_Mail_Storage_Pop3 9Zend_Mail_Storage_Mbox ?Zend_Mail_Storage_Maildir 9Zend_Mail_Storage_Imap =Zend_Mail_Storage_Folder" GZend_Mail_Storage_Folder_Mbox% MZend_Mail_Storage_Folder_Maildir 
 CZend_Mail_Storage_Exception	 AZend_Mail_Storage_Abstract ;Zend_Mail_Protocol_Smtp' QZend_Mail_Protocol_Smtp_Auth_Plain' QZend_Mail_Protocol_Smtp_Auth_Login) UZend_Mail_Protocol_Smtp_Auth_Crammd5 ;Zend_Mail_Protocol_Pop3 ;Zend_Mail_Protocol_Imap! EZend_Mail_Protocol_Exception  CZend_Mail_Protocol_Abstract  )Zend_Mail_Part 3Zend_Mail_Part_File~ /Zend_Mail_Message} 9Zend_Mail_Message_File!| EZend_Mail_Header_HeaderValue { CZend_Mail_Header_HeaderNamez 3Zend_Mail_Exceptiony Zend_Log x CZend_Log_Writer_ZendMonitorw 9Zend_Log_Writer_Syslog   t  wW;$tK,a7gE(ub>




X
+					o	M	0	x[:|]B+dM$lQ7!zE_C%bCkS.      ^ 1Zend_Pdf_Exception] ;Zend_Pdf_ElementFactory"\ GZend_Pdf_ElementFactory_Proxy[ -Zend_Pdf_ElementZ ;Zend_Pdf_Element_String#Y IZend_Pdf_Element_String_BinaryX ;Zend_Pdf_Element_StreamW AZend_Pdf_Element_Reference%V MZend_Pdf_Element_Reference_Table'U QZend_Pdf_Element_Reference_ContextT ;Zend_Pdf_Element_Object#S IZend_Pdf_Element_Object_StreamR =Zend_Pdf_Element_NumericQ 7Zend_Pdf_Element_NullP 7Zend_Pdf_Element_Name O CZend_Pdf_Element_DictionaryN =Zend_Pdf_Element_BooleanM 9Zend_Pdf_Element_ArrayL 5Zend_Pdf_DestinationK ?Zend_Pdf_Destination_Zoom!J EZend_Pdf_Destination_UnknownI AZend_Pdf_Destination_Named'H QZend_Pdf_Destination_FitVertically&G OZend_Pdf_Destination_FitRectangle)F UZend_Pdf_Destination_FitHorizontally2E gZend_Pdf_Destination_FitBoundingBoxVertically4D kZend_Pdf_Destination_FitBoundingBoxHorizontally(C SZend_Pdf_Destination_FitBoundingBoxB =Zend_Pdf_Destination_Fit"A GZend_Pdf_Destination_Explicit@ )Zend_Pdf_Color? 1Zend_Pdf_Color_Rgb> 3Zend_Pdf_Color_Html= =Zend_Pdf_Color_GrayScale< 3Zend_Pdf_Color_Cmyk; 'Zend_Pdf_Cmap: AZend_Pdf_Cmap_TrimmedTable!9 EZend_Pdf_Cmap_SegmentToDelta8 AZend_Pdf_Cmap_ByteEncoding&7 OZend_Pdf_Cmap_ByteEncoding_Static6 +Zend_Pdf_Canvas5 =Zend_Pdf_Canvas_Abstract4 3Zend_Pdf_Annotation3 =Zend_Pdf_Annotation_Text2 AZend_Pdf_Annotation_Markup1 =Zend_Pdf_Annotation_Link'0 QZend_Pdf_Annotation_FileAttachment/ +Zend_Pdf_Action. 3Zend_Pdf_Action_URI- ;Zend_Pdf_Action_Unknown, 7Zend_Pdf_Action_Trans+ 9Zend_Pdf_Action_Thread* AZend_Pdf_Action_SubmitForm) 7Zend_Pdf_Action_Sound ( CZend_Pdf_Action_SetOCGState' ?Zend_Pdf_Action_ResetForm& ?Zend_Pdf_Action_Rendition% 7Zend_Pdf_Action_Named$ 7Zend_Pdf_Action_Movie# 9Zend_Pdf_Action_Launch" AZend_Pdf_Action_JavaScript! AZend_Pdf_Action_ImportData  5Zend_Pdf_Action_Hide 7Zend_Pdf_Action_GoToR 7Zend_Pdf_Action_GoToE AZend_Pdf_Action_GoTo3DView 5Zend_Pdf_Action_GoTo )Zend_Paginator- ]Zend_Paginator_SerializableLimitIterator* WZend_Paginator_ScrollingStyle_Sliding* WZend_Paginator_ScrollingStyle_Jumping* WZend_Paginator_ScrollingStyle_Elastic& OZend_Paginator_ScrollingStyle_All =Zend_Paginator_Exception  CZend_Paginator_Adapter_Null$ KZend_Paginator_Adapter_Iterator) UZend_Paginator_Adapter_DbTableSelect$ KZend_Paginator_Adapter_DbSelect! EZend_Paginator_Adapter_Array #Zend_OpenId 5Zend_OpenId_Provider ?Zend_OpenId_Provider_User& OZend_OpenId_Provider_User_Session! EZend_OpenId_Provider_Storage&
 OZend_OpenId_Provider_Storage_File	 7Zend_OpenId_Extension AZend_OpenId_Extension_Sreg 7Zend_OpenId_Exception 5Zend_OpenId_Consumer! EZend_OpenId_Consumer_Storage& OZend_OpenId_Consumer_Storage_File !Zend_Oauth -Zend_Oauth_Token =Zend_Oauth_Token_Request'  QZend_Oauth_Token_AuthorizedRequest ;Zend_Oauth_Token_Access+~ YZend_Oauth_Signature_SignatureAbstract} =Zend_Oauth_Signature_Rsa#| IZend_Oauth_Signature_Plaintext{ ?Zend_Oauth_Signature_Hmacz +Zend_Oauth_Httpy ;Zend_Oauth_Http_Utility&x OZend_Oauth_Http_UserAuthorization!w EZend_Oauth_Http_RequestToken v CZend_Oauth_Http_AccessTokenu 5Zend_Oauth_Exceptiont 3Zend_Oauth_Consumers /Zend_Oauth_Configr /Zend_Oauth_Clientq +Zend_Navigationp 5Zend_Navigation_Pageo =Zend_Navigation_Page_Urin =Zend_Navigation_Page_Mvcm ?Zend_Navigation_Exceptionl ?Zend_Navigation_Container$k KZend_Mobile_Push_Test_ApnsProxy   g  `?$jArS;&`:N


^
"			j	2FfC mV4wP)	b=sP*zP%cE$                          E 'Zend_RegistryD =Zend_Reflection_PropertyC ?Zend_Reflection_ParameterB 9Zend_Reflection_MethodA =Zend_Reflection_Function@ 5Zend_Reflection_File? ?Zend_Reflection_Extension> ?Zend_Reflection_Exception= =Zend_Reflection_Docblock!< EZend_Reflection_Docblock_Tag(; SZend_Reflection_Docblock_Tag_Return': QZend_Reflection_Docblock_Tag_Param9 7Zend_Reflection_Class8 !Zend_Queue7 9Zend_Queue_Stomp_Frame6 ;Zend_Queue_Stomp_Client'5 QZend_Queue_Stomp_Client_Connection4 1Zend_Queue_Message#3 IZend_Queue_Message_PlatformJob 2 CZend_Queue_Message_Iterator1 5Zend_Queue_Exception(0 SZend_Queue_Adapter_PlatformJobQueue/ ;Zend_Queue_Adapter_Null!. EZend_Queue_Adapter_Memcacheq- 7Zend_Queue_Adapter_Db , CZend_Queue_Adapter_Db_Queue"+ GZend_Queue_Adapter_Db_Message* =Zend_Queue_Adapter_Array') QZend_Queue_Adapter_AdapterAbstract ( CZend_Queue_Adapter_Activemq' -Zend_ProgressBar& AZend_ProgressBar_Exception% =Zend_ProgressBar_Adapter$$ KZend_ProgressBar_Adapter_JsPush$# KZend_ProgressBar_Adapter_JsPull'" QZend_ProgressBar_Adapter_Exception%! MZend_ProgressBar_Adapter_Console  Zend_Pdf! EZend_Pdf_UpdateInfoContainer -Zend_Pdf_Trailer ;Zend_Pdf_Trailer_Keeper AZend_Pdf_Trailer_Generator +Zend_Pdf_Target )Zend_Pdf_Style 7Zend_Pdf_StringParser /Zend_Pdf_Resource ?Zend_Pdf_Resource_Unified# IZend_Pdf_Resource_ImageFactory ;Zend_Pdf_Resource_Image! EZend_Pdf_Resource_Image_Tiff  CZend_Pdf_Resource_Image_Png! EZend_Pdf_Resource_Image_Jpeg$ KZend_Pdf_Resource_GraphicsState 9Zend_Pdf_Resource_Font! EZend_Pdf_Resource_Font_Type0" GZend_Pdf_Resource_Font_Simple+ YZend_Pdf_Resource_Font_Simple_Standard8 sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats6 oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman7
 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic;	 yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic5 mZend_Pdf_Resource_Font_Simple_Standard_TimesBold2 gZend_Pdf_Resource_Font_Simple_Standard_Symbol< {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueA Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique9 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold5 mZend_Pdf_Resource_Font_Simple_Standard_Helvetica: wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique> Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique7  qZend_Pdf_Resource_Font_Simple_Standard_CourierBold3 iZend_Pdf_Resource_Font_Simple_Standard_Courier)~ UZend_Pdf_Resource_Font_Simple_Parsed2} gZend_Pdf_Resource_Font_Simple_Parsed_TrueType*| WZend_Pdf_Resource_Font_FontDescriptor%{ MZend_Pdf_Resource_Font_Extracted#z IZend_Pdf_Resource_Font_CidFont,y [Zend_Pdf_Resource_Font_CidFont_TrueType x CZend_Pdf_Resource_Extractor$w KZend_Pdf_Resource_ContentStream3v iZend_Pdf_RecursivelyIteratableObjectsContaineru +Zend_Pdf_Parsert 'Zend_Pdf_Pages -Zend_Pdf_Outliner ;Zend_Pdf_Outline_Loadedq =Zend_Pdf_Outline_Createdp /Zend_Pdf_NameTreeo )Zend_Pdf_Imagen 'Zend_Pdf_Fontm ?Zend_Pdf_Filter_RunLength l CZend_Pdf_Filter_Compression$k KZend_Pdf_Filter_Compression_Lzw&j OZend_Pdf_Filter_Compression_Flatei =Zend_Pdf_Filter_AsciiHexh ;Zend_Pdf_Filter_Ascii85"g GZend_Pdf_FileParserDataSource)f UZend_Pdf_FileParserDataSource_String'e QZend_Pdf_FileParserDataSource_Filed 3Zend_Pdf_FileParserc ?Zend_Pdf_FileParser_Image"b GZend_Pdf_FileParser_Image_Pnga =Zend_Pdf_FileParser_Font&` OZend_Pdf_FileParser_Font_OpenType/_ aZend_Pdf_FileParser_Font_OpenType_TrueType   T  ~bG0XPjAX)



Y
1
					W	,	k0Z4U b1Rm:~R%[/                                   + YZend_Search_Lucene_Search_Weight_Empty- ]Zend_Search_Lucene_Search_Weight_Boolean) UZend_Search_Lucene_Search_Similarity1 eZend_Search_Lucene_Search_Similarity_Default) UZend_Search_Lucene_Search_QueryToken3 iZend_Search_Lucene_Search_QueryParserException1 eZend_Search_Lucene_Search_QueryParserContext* WZend_Search_Lucene_Search_QueryParser) UZend_Search_Lucene_Search_QueryLexer' QZend_Search_Lucene_Search_QueryHit) UZend_Search_Lucene_Search_QueryEntry. _Zend_Search_Lucene_Search_QueryEntry_Term2 gZend_Search_Lucene_Search_QueryEntry_Subquery0 cZend_Search_Lucene_Search_QueryEntry_Phrase$ KZend_Search_Lucene_Search_Query-
 ]Zend_Search_Lucene_Search_Query_Wildcard)	 UZend_Search_Lucene_Search_Query_Term* WZend_Search_Lucene_Search_Query_Range2 gZend_Search_Lucene_Search_Query_Preprocessing7 qZend_Search_Lucene_Search_Query_Preprocessing_Term9 uZend_Search_Lucene_Search_Query_Preprocessing_Phrase8 sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy+ YZend_Search_Lucene_Search_Query_Phrase. _Zend_Search_Lucene_Search_Query_MultiTerm2 gZend_Search_Lucene_Search_Query_Insignificant*  WZend_Search_Lucene_Search_Query_Fuzzy* WZend_Search_Lucene_Search_Query_Empty,~ [Zend_Search_Lucene_Search_Query_Boolean2} gZend_Search_Lucene_Search_Highlighter_Default:| wZend_Search_Lucene_Search_BooleanExpressionRecognizer{ =Zend_Search_Lucene_Proxy%z MZend_Search_Lucene_PriorityQueue/y aZend_Search_Lucene_Interface_MultiSearcher%x MZend_Search_Lucene_MultiSearcher#w IZend_Search_Lucene_LockManager$v KZend_Search_Lucene_Index_Writer0u cZend_Search_Lucene_Index_TermsPriorityQueue&t OZend_Search_Lucene_Index_TermInfo"s GZend_Search_Lucene_Index_Term+r YZend_Search_Lucene_Index_SegmentWriter8q sZend_Search_Lucene_Index_SegmentWriter_StreamWriter:p wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter+o YZend_Search_Lucene_Index_SegmentMerger)n UZend_Search_Lucene_Index_SegmentInfo'm QZend_Search_Lucene_Index_FieldInfo(l SZend_Search_Lucene_Index_DocsFilter.k _Zend_Search_Lucene_Index_DictionaryLoader!j EZend_Search_Lucene_FSMActioni 9Zend_Search_Lucene_FSMh =Zend_Search_Lucene_Field!g EZend_Search_Lucene_Exception f CZend_Search_Lucene_Document%e MZend_Search_Lucene_Document_Xlsx%d MZend_Search_Lucene_Document_Pptx(c SZend_Search_Lucene_Document_OpenXml%b MZend_Search_Lucene_Document_Html*a WZend_Search_Lucene_Document_Exception%` MZend_Search_Lucene_Document_Docx,_ [Zend_Search_Lucene_Analysis_TokenFilter6^ oZend_Search_Lucene_Analysis_TokenFilter_StopWords7] qZend_Search_Lucene_Analysis_TokenFilter_ShortWords:\ wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf86[ oZend_Search_Lucene_Analysis_TokenFilter_LowerCase&Z OZend_Search_Lucene_Analysis_Token)Y UZend_Search_Lucene_Analysis_Analyzer0X cZend_Search_Lucene_Analysis_Analyzer_Common8W sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumIV Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive5U mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8FT Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive8S sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumIR Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive5Q mZend_Search_Lucene_Analysis_Analyzer_Common_TextFP Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiveO 7Zend_Search_ExceptionN -Zend_Rest_ServerM AZend_Rest_Server_ExceptionL +Zend_Rest_RouteK 3Zend_Rest_ExceptionJ 5Zend_Rest_ControllerI -Zend_Rest_ClientH ;Zend_Rest_Client_Result&G OZend_Rest_Client_Result_ExceptionF AZend_Rest_Client_Exception   a  rJ`-tP)uY@"uQ)




b
:
					n	:	_7gBlDf=eGkGIxR*                       $z KZend_Service_Delicious_PostList y CZend_Service_Delicious_Post%x MZend_Service_Delicious_Exception#w IZend_Service_Console_Exception!v EZend_Service_Console_Command7u qZend_Service_Console_Command_ParameterSource_StdIn8t sZend_Service_Console_Command_ParameterSource_Prompt5s mZend_Service_Console_Command_ParameterSource_Env<r {Zend_Service_Console_Command_ParameterSource_ConfigFile6q oZend_Service_Console_Command_ParameterSource_Argv p CZend_Service_Audioscrobblero 3Zend_Service_Amazonn ;Zend_Service_Amazon_Sqs&m OZend_Service_Amazon_Sqs_Exception!l EZend_Service_Amazon_SimpleDb*k WZend_Service_Amazon_SimpleDb_Response&j OZend_Service_Amazon_SimpleDb_Page+i YZend_Service_Amazon_SimpleDb_Exception+h YZend_Service_Amazon_SimpleDb_Attribute'g QZend_Service_Amazon_SimilarProductf 9Zend_Service_Amazon_S3"e GZend_Service_Amazon_S3_Stream%d MZend_Service_Amazon_S3_Exception"c GZend_Service_Amazon_ResultSetb ?Zend_Service_Amazon_Query!a EZend_Service_Amazon_OfferSet` ?Zend_Service_Amazon_Offer&_ OZend_Service_Amazon_ListmaniaList^ =Zend_Service_Amazon_Item] ?Zend_Service_Amazon_Image"\ GZend_Service_Amazon_Exception([ SZend_Service_Amazon_EditorialReviewZ ;Zend_Service_Amazon_Ec2+Y YZend_Service_Amazon_Ec2_Securitygroups%X MZend_Service_Amazon_Ec2_Response#W IZend_Service_Amazon_Ec2_Region$V KZend_Service_Amazon_Ec2_Keypair%U MZend_Service_Amazon_Ec2_Instance-T ]Zend_Service_Amazon_Ec2_Instance_Windows.S _Zend_Service_Amazon_Ec2_Instance_Reserved"R GZend_Service_Amazon_Ec2_Image&Q OZend_Service_Amazon_Ec2_Exception&P OZend_Service_Amazon_Ec2_Elasticip O CZend_Service_Amazon_Ec2_Ebs'N QZend_Service_Amazon_Ec2_CloudWatch.M _Zend_Service_Amazon_Ec2_Availabilityzones%L MZend_Service_Amazon_Ec2_Abstract'K QZend_Service_Amazon_CustomerReview'J QZend_Service_Amazon_Authentication*I WZend_Service_Amazon_Authentication_V2*H WZend_Service_Amazon_Authentication_V1*G WZend_Service_Amazon_Authentication_S31F eZend_Service_Amazon_Authentication_Exception$E KZend_Service_Amazon_Accessories!D EZend_Service_Amazon_AbstractC 5Zend_Service_AkismetB 7Zend_Service_AbstractA 9Zend_Server_Reflection'@ QZend_Server_Reflection_ReturnValue%? MZend_Server_Reflection_Prototype%> MZend_Server_Reflection_Parameter = CZend_Server_Reflection_Node"< GZend_Server_Reflection_Method$; KZend_Server_Reflection_Function-: ]Zend_Server_Reflection_Function_Abstract%9 MZend_Server_Reflection_Exception!8 EZend_Server_Reflection_Class!7 EZend_Server_Method_Prototype!6 EZend_Server_Method_Parameter"5 GZend_Server_Method_Definition 4 CZend_Server_Method_Callback3 7Zend_Server_Exception2 9Zend_Server_Definition1 /Zend_Server_Cache0 5Zend_Server_Abstract/ +Zend_Serializer. ?Zend_Serializer_Exception!- EZend_Serializer_Adapter_Wddx), UZend_Serializer_Adapter_PythonPickle)+ UZend_Serializer_Adapter_PhpSerialize$* KZend_Serializer_Adapter_PhpCode!) EZend_Serializer_Adapter_Json%( MZend_Serializer_Adapter_Igbinary!' EZend_Serializer_Adapter_Amf3!& EZend_Serializer_Adapter_Amf0,% [Zend_Serializer_Adapter_AdapterAbstract$ 1Zend_Search_Lucene0# cZend_Search_Lucene_TermStreamsPriorityQueue$" KZend_Search_Lucene_Storage_File+! YZend_Search_Lucene_Storage_File_Memory/  aZend_Search_Lucene_Storage_File_Filesystem) UZend_Search_Lucene_Storage_Directory4 kZend_Search_Lucene_Storage_Directory_Filesystem% MZend_Search_Lucene_Search_Weight* WZend_Search_Lucene_Search_Weight_Term, [Zend_Search_Lucene_Search_Weight_Phrase/ aZend_Search_Lucene_Search_Weight_MultiTerm   7  uA\Tf8U%


8			,{$c
ZMH0f*h              N1 Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeywordC0 Zend_Service_DeveloperGarden_Request_SmsValidation_InvalidateL/ Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbersB. Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract9- uZend_Service_DeveloperGarden_Request_SendSms_SendSMS>, Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS9+ uZend_Service_DeveloperGarden_Request_RequestAbstractI* Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequestE) Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest3( iZend_Service_DeveloperGarden_Request_ExceptionR' %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequestY& 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequestd% IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequestQ$ #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequestR# %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequestY" 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequestd! IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequestQ  #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequestO Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequestU +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequestU +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequestV -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequesta CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequestZ 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequestT )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequestR %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequestY 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequestQ #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequestQ #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequesta CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequestN Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformationL Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalanceJ Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool- ]Zend_Service_DeveloperGarden_LocalSearch> Zend_Service_DeveloperGarden_LocalSearch_SearchParameters7 qZend_Service_DeveloperGarden_LocalSearch_Exception, [Zend_Service_DeveloperGarden_IpLocation6 oZend_Service_DeveloperGarden_IpLocation_IpAddress+ YZend_Service_DeveloperGarden_Exception,
 [Zend_Service_DeveloperGarden_Credential0	 cZend_Service_DeveloperGarden_ConferenceCallC Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatusC Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail< {Zend_Service_DeveloperGarden_ConferenceCall_Participant: wZend_Service_DeveloperGarden_ConferenceCall_ExceptionD 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceScheduleB Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetailC Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount- ]Zend_Service_DeveloperGarden_Client_Soap2  gZend_Service_DeveloperGarden_Client_Exception7 qZend_Service_DeveloperGarden_Client_ClientAbstract1~ eZend_Service_DeveloperGarden_BaseUserServiceA} Zend_Service_DeveloperGarden_BaseUserService_AccountBalance| 9Zend_Service_Delicious&{ OZend_Service_Delicious_SimplePost   . j x8[%wM V 

H			4~V2z nWL.   j      I_ Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType>^ Zend_Service_DeveloperGarden_Response_IpLocation_CityType4] kZend_Service_DeveloperGarden_Response_ExceptionT\ )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse[[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponsefZ MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponseSY 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponseTX )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse[W 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponsefV MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponseSU 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponseUT +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseTypeQS #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse[R 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseTypeWQ /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse[P 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseTypeWO /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse\N 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseTypeXM 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponsegL OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseTypecK GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse`J AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType\I 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseZH 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseTypeVG -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseXF 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseTypeTE )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse_D ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType[C 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseWB /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseTypeSA 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseQ@ #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstractS? 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponseJ> Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseTypeg= OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseTypec< GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseW; /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponseU: +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponseS9 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse38 iZend_Service_DeveloperGarden_Response_BaseTypeJ7 Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstractC6 Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCallG5 Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced=4 }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallA3 Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatusA2 Zend_Service_DeveloperGarden_Request_SmsValidation_Validate   F  g5Wn()


@			V	{CrHlDp@[(_2zL y^7                   %% MZend_Service_Rackspace_Exception$$ KZend_Service_Rackspace_Abstract# 7Zend_Service_LiveDocx$" KZend_Service_LiveDocx_MailMerge$! KZend_Service_LiveDocx_Exception  3Zend_Service_Flickr" GZend_Service_Flickr_ResultSet AZend_Service_Flickr_Result ?Zend_Service_Flickr_Image 9Zend_Service_Exception ?Zend_Service_Ebay_Finding) UZend_Service_Ebay_Finding_Storefront+ YZend_Service_Ebay_Finding_ShippingInfo+ YZend_Service_Ebay_Finding_Set_Abstract, [Zend_Service_Ebay_Finding_SellingStatus) UZend_Service_Ebay_Finding_SellerInfo, [Zend_Service_Ebay_Finding_Search_Result* WZend_Service_Ebay_Finding_Search_Item. _Zend_Service_Ebay_Finding_Search_Item_Set0 cZend_Service_Ebay_Finding_Response_Keywords- ]Zend_Service_Ebay_Finding_Response_Items2 gZend_Service_Ebay_Finding_Response_Histograms0 cZend_Service_Ebay_Finding_Response_Abstract/ aZend_Service_Ebay_Finding_PaginationOutput* WZend_Service_Ebay_Finding_ListingInfo( SZend_Service_Ebay_Finding_Exception, [Zend_Service_Ebay_Finding_Error_Message)
 UZend_Service_Ebay_Finding_Error_Data-	 ]Zend_Service_Ebay_Finding_Error_Data_Set' QZend_Service_Ebay_Finding_Category1 eZend_Service_Ebay_Finding_Category_Histogram5 mZend_Service_Ebay_Finding_Category_Histogram_Set; yZend_Service_Ebay_Finding_Category_Histogram_Container% MZend_Service_Ebay_Finding_Aspect) UZend_Service_Ebay_Finding_Aspect_Set5 mZend_Service_Ebay_Finding_Aspect_Histogram_Value9 uZend_Service_Ebay_Finding_Aspect_Histogram_Value_Set9  uZend_Service_Ebay_Finding_Aspect_Histogram_Container' QZend_Service_Ebay_Finding_Abstract ~ CZend_Service_Ebay_Exception} AZend_Service_Ebay_Abstract+| YZend_Service_DeveloperGarden_VoiceCall/{ aZend_Service_DeveloperGarden_SmsValidation)z UZend_Service_DeveloperGarden_SendSms5y mZend_Service_DeveloperGarden_SecurityTokenServer;x yZend_Service_DeveloperGarden_SecurityTokenServer_CacheKw Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstractLv Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponsePu !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponseGt Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponseJs Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponseKr Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2ResponseLq Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponseIp Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumberWo /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponseJn Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponseUm +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponseCl Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponseCk Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstractHj Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponseUi +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponseQh #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponseIg Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception;f yZend_Service_DeveloperGarden_Response_ResponseAbstractOe Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseTypeKd Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseAc Zend_Service_DeveloperGarden_Response_IpLocation_RegionTypeKb Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseTypeGa Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseL` Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationType   S  rGh;
xPa:zQ2


m
6					R	S$i<i=|V1](R_$>               <x {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogsAw Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstanceDv 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectoriesUu +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogsDt 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSources8s sZend_Service_WindowsAzure_Credentials_SharedKeyLite4r kZend_Service_WindowsAzure_Credentials_SharedKeyAq Zend_Service_WindowsAzure_Credentials_SharedAccessSignature4p kZend_Service_WindowsAzure_Credentials_Exception>o Zend_Service_WindowsAzure_Credentials_CredentialsAbstract2n gZend_Service_WindowsAzure_CommandLine_Storage2m gZend_Service_WindowsAzure_CommandLine_Servicel !ScaffolderWk /Zend_Service_WindowsAzure_CommandLine_PackageScaffolder_PackageScaffolderAbstract2j gZend_Service_WindowsAzure_CommandLine_PackageDi 	Zend_Service_WindowsAzure_CommandLine_GetAsynchronousOperation5h mZend_Service_WindowsAzure_CommandLine_Deployment6g oZend_Service_WindowsAzure_CommandLine_Certificatef 5Zend_Service_Twitter"e GZend_Service_Twitter_Response#d IZend_Service_Twitter_Exceptionc ;Zend_Service_Technorati#b IZend_Service_Technorati_Weblog"a GZend_Service_Technorati_Utils*` WZend_Service_Technorati_TagsResultSet'_ QZend_Service_Technorati_TagsResult)^ UZend_Service_Technorati_TagResultSet&] OZend_Service_Technorati_TagResult,\ [Zend_Service_Technorati_SearchResultSet)[ UZend_Service_Technorati_SearchResult&Z OZend_Service_Technorati_ResultSet#Y IZend_Service_Technorati_Result*X WZend_Service_Technorati_KeyInfoResult*W WZend_Service_Technorati_GetInfoResult&V OZend_Service_Technorati_Exception1U eZend_Service_Technorati_DailyCountsResultSet.T _Zend_Service_Technorati_DailyCountsResult,S [Zend_Service_Technorati_CosmosResultSet)R UZend_Service_Technorati_CosmosResult+Q YZend_Service_Technorati_BlogInfoResult#P IZend_Service_Technorati_AuthorO ;Zend_Service_StrikeIron(N SZend_Service_StrikeIron_ZipCodeInfo2M gZend_Service_StrikeIron_USAddressVerification-L ]Zend_Service_StrikeIron_SalesUseTaxBasic&K OZend_Service_StrikeIron_Exception&J OZend_Service_StrikeIron_Decorator!I EZend_Service_StrikeIron_Base;H yZend_Service_SqlAzure_Management_ServiceEntityAbstract4G kZend_Service_SqlAzure_Management_ServerInstance:F wZend_Service_SqlAzure_Management_FirewallRuleInstance/E aZend_Service_SqlAzure_Management_Exception,D [Zend_Service_SqlAzure_Management_Client$C KZend_Service_SqlAzure_ExceptionB ;Zend_Service_SlideShare&A OZend_Service_SlideShare_SlideShow&@ OZend_Service_SlideShare_Exception%? MZend_Service_ShortUrl_TinyUrlCom&> OZend_Service_ShortUrl_MetamarkNet!= EZend_Service_ShortUrl_JdemCz< AZend_Service_ShortUrl_IsGd$; KZend_Service_ShortUrl_Exception : CZend_Service_ShortUrl_BitLy,9 [Zend_Service_ShortUrl_AbstractShortener8 9Zend_Service_ReCaptcha$7 KZend_Service_ReCaptcha_Response$6 KZend_Service_ReCaptcha_MailHide.5 _Zend_Service_ReCaptcha_MailHide_Exception%4 MZend_Service_ReCaptcha_Exception#3 IZend_Service_Rackspace_Servers52 mZend_Service_Rackspace_Servers_SharedIpGroupList11 eZend_Service_Rackspace_Servers_SharedIpGroup.0 _Zend_Service_Rackspace_Servers_ServerList*/ WZend_Service_Rackspace_Servers_Server-. ]Zend_Service_Rackspace_Servers_ImageList)- UZend_Service_Rackspace_Servers_Image-, ]Zend_Service_Rackspace_Servers_Exception!+ EZend_Service_Rackspace_Files,* [Zend_Service_Rackspace_Files_ObjectList() SZend_Service_Rackspace_Files_Object+( YZend_Service_Rackspace_Files_Exception/' aZend_Service_Rackspace_Files_ContainerList+& YZend_Service_Rackspace_Files_Container   L  cZ%~B	S^


F
			K	w9i-TvAa8kCZ6tJ#                              D %Zend_Session)C UZend_Session_Validator_HttpUserAgent%B MZend_Session_Validator_Exception$A KZend_Session_Validator_Abstract'@ QZend_Session_SaveHandler_Exception%? MZend_Session_SaveHandler_DbTable> 9Zend_Session_Namespace= 9Zend_Session_Exception< 7Zend_Session_Abstract; 1Zend_Service_Yahoo$: KZend_Service_Yahoo_WebResultSet!9 EZend_Service_Yahoo_WebResult&8 OZend_Service_Yahoo_VideoResultSet#7 IZend_Service_Yahoo_VideoResult!6 EZend_Service_Yahoo_ResultSet5 ?Zend_Service_Yahoo_Result)4 UZend_Service_Yahoo_PageDataResultSet&3 OZend_Service_Yahoo_PageDataResult%2 MZend_Service_Yahoo_NewsResultSet"1 GZend_Service_Yahoo_NewsResult&0 OZend_Service_Yahoo_LocalResultSet#/ IZend_Service_Yahoo_LocalResult+. YZend_Service_Yahoo_InlinkDataResultSet(- SZend_Service_Yahoo_InlinkDataResult&, OZend_Service_Yahoo_ImageResultSet#+ IZend_Service_Yahoo_ImageResult* =Zend_Service_Yahoo_Image&) OZend_Service_WindowsAzure_Storage4( kZend_Service_WindowsAzure_Storage_TableInstance7' qZend_Service_WindowsAzure_Storage_TableEntityQuery2& gZend_Service_WindowsAzure_Storage_TableEntity,% [Zend_Service_WindowsAzure_Storage_Table<$ {Zend_Service_WindowsAzure_Storage_StorageEntityAbstract7# qZend_Service_WindowsAzure_Storage_SignedIdentifier3" iZend_Service_WindowsAzure_Storage_QueueMessage4! kZend_Service_WindowsAzure_Storage_QueueInstance,  [Zend_Service_WindowsAzure_Storage_Queue9 uZend_Service_WindowsAzure_Storage_PageRegionInstance4 kZend_Service_WindowsAzure_Storage_LeaseInstance9 uZend_Service_WindowsAzure_Storage_DynamicTableEntity3 iZend_Service_WindowsAzure_Storage_BlobInstance4 kZend_Service_WindowsAzure_Storage_BlobContainer+ YZend_Service_WindowsAzure_Storage_Blob2 gZend_Service_WindowsAzure_Storage_Blob_Stream; yZend_Service_WindowsAzure_Storage_BatchStorageAbstract, [Zend_Service_WindowsAzure_Storage_Batch- ]Zend_Service_WindowsAzure_SessionHandler> Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract1 eZend_Service_WindowsAzure_RetryPolicy_RetryN2 gZend_Service_WindowsAzure_RetryPolicy_NoRetry4 kZend_Service_WindowsAzure_RetryPolicy_ExceptionH Zend_Service_WindowsAzure_Management_SubscriptionOperationInstanceA Zend_Service_WindowsAzure_Management_StorageServiceInstance@ Zend_Service_WindowsAzure_Management_ServiceEntityAbstractB Zend_Service_WindowsAzure_Management_OperationStatusInstanceB Zend_Service_WindowsAzure_Management_OperatingSystemInstanceH Zend_Service_WindowsAzure_Management_OperatingSystemFamilyInstance: wZend_Service_WindowsAzure_Management_LocationInstance@
 Zend_Service_WindowsAzure_Management_HostedServiceInstance3	 iZend_Service_WindowsAzure_Management_Exception< {Zend_Service_WindowsAzure_Management_DeploymentInstance0 cZend_Service_WindowsAzure_Management_Client= }Zend_Service_WindowsAzure_Management_CertificateInstance@ Zend_Service_WindowsAzure_Management_AffinityGroupInstance6 oZend_Service_WindowsAzure_Log_Writer_WindowsAzure9 uZend_Service_WindowsAzure_Log_Formatter_WindowsAzure, [Zend_Service_WindowsAzure_Log_Exception( SZend_Service_WindowsAzure_ExceptionJ  Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscription2 gZend_Service_WindowsAzure_Diagnostics_Manager3~ iZend_Service_WindowsAzure_Diagnostics_LogLevel4} kZend_Service_WindowsAzure_Diagnostics_ExceptionN| Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscriptionH{ Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLogLz Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCountersKy Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstract   `  |Z<$]+d.W/rU(



m
@
				K	d7xR%pU3 qV? g:xEo(\      '$ QZend_Tool_Framework_Client_Request(# SZend_Tool_Framework_Client_Manifest9" uZend_Tool_Framework_Client_Interactive_InputResponse8! sZend_Tool_Framework_Client_Interactive_InputRequest8  sZend_Tool_Framework_Client_Interactive_InputHandler) UZend_Tool_Framework_Client_Exception' QZend_Tool_Framework_Client_ConsoleD 	Zend_Tool_Framework_Client_Console_ResponseDecorator_IndentionD 	Zend_Tool_Framework_Client_Console_ResponseDecorator_ColorizerC Zend_Tool_Framework_Client_Console_ResponseDecorator_BlockizeF Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter0 cZend_Tool_Framework_Client_Console_Manifest2 gZend_Tool_Framework_Client_Console_HelpSystem6 oZend_Tool_Framework_Client_Console_ArgumentParser& OZend_Tool_Framework_Client_Config( SZend_Tool_Framework_Client_Abstract* WZend_Tool_Framework_Action_Repository) UZend_Tool_Framework_Action_Exception$ KZend_Tool_Framework_Action_Base 'Zend_TimeSync 1Zend_TimeSync_Sntp 9Zend_TimeSync_Protocol /Zend_TimeSync_Ntp ;Zend_TimeSync_Exception +Zend_Text_Table 3Zend_Text_Table_Row
 ?Zend_Text_Table_Exception&	 OZend_Text_Table_Decorator_Unicode$ KZend_Text_Table_Decorator_Ascii 9Zend_Text_Table_Column 3Zend_Text_MultiByte -Zend_Text_Figlet AZend_Text_Figlet_Exception 3Zend_Text_Exception& OZend_Test_PHPUnit_Db_SimpleTester, [Zend_Test_PHPUnit_Db_Operation_Truncate*  WZend_Test_PHPUnit_Db_Operation_Insert- ]Zend_Test_PHPUnit_Db_Operation_DeleteAll*~ WZend_Test_PHPUnit_Db_Metadata_Generic#} IZend_Test_PHPUnit_Db_Exception,| [Zend_Test_PHPUnit_Db_DataSet_QueryTable.{ _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet0z cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet)y UZend_Test_PHPUnit_Db_DataSet_DbTable*x WZend_Test_PHPUnit_Db_DataSet_DbRowset$w KZend_Test_PHPUnit_Db_Connection'v QZend_Test_PHPUnit_DatabaseTestCase)u UZend_Test_PHPUnit_ControllerTestCase2t gZend_Test_PHPUnit_Constraint_ResponseHeader412s gZend_Test_PHPUnit_Constraint_ResponseHeader372r gZend_Test_PHPUnit_Constraint_ResponseHeader340q cZend_Test_PHPUnit_Constraint_ResponseHeader,p [Zend_Test_PHPUnit_Constraint_Redirect41,o [Zend_Test_PHPUnit_Constraint_Redirect37,n [Zend_Test_PHPUnit_Constraint_Redirect34*m WZend_Test_PHPUnit_Constraint_Redirect+l YZend_Test_PHPUnit_Constraint_Exception,k [Zend_Test_PHPUnit_Constraint_DomQuery41,j [Zend_Test_PHPUnit_Constraint_DomQuery37,i [Zend_Test_PHPUnit_Constraint_DomQuery34*h WZend_Test_PHPUnit_Constraint_DomQueryg 7Zend_Test_DbStatementf 3Zend_Test_DbAdaptere /Zend_Tag_ItemListd 'Zend_Tag_Itemc 1Zend_Tag_Exceptionb )Zend_Tag_Clouda =Zend_Tag_Cloud_Exception!` EZend_Tag_Cloud_Decorator_Tag%_ MZend_Tag_Cloud_Decorator_HtmlTag'^ QZend_Tag_Cloud_Decorator_HtmlCloud'] QZend_Tag_Cloud_Decorator_Exception#\ IZend_Tag_Cloud_Decorator_Cloud![ EZend_Stdlib_SplPriorityQueueZ -SplPriorityQueueY ?Zend_Stdlib_PriorityQueue3X iZend_Stdlib_Exception_InvalidCallbackException W CZend_Stdlib_CallbackHandlerV )Zend_Soap_Wsdl/U aZend_Soap_Wsdl_Strategy_DefaultComplexType&T OZend_Soap_Wsdl_Strategy_Composite0S cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence/R aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex$Q KZend_Soap_Wsdl_Strategy_AnyType%P MZend_Soap_Wsdl_Strategy_AbstractO =Zend_Soap_Wsdl_ExceptionN -Zend_Soap_ServerM 9Zend_Soap_Server_ProxyL AZend_Soap_Server_ExceptionK -Zend_Soap_ClientJ 9Zend_Soap_Client_LocalI AZend_Soap_Client_ExceptionH ;Zend_Soap_Client_DotNetG ;Zend_Soap_Client_CommonF 9Zend_Soap_AutoDiscover%E MZend_Soap_AutoDiscover_Exception   M  Z0e1n?e6V+



_
!				[	%Tx>q<	i9vAg5j2U     3q iZend_Tool_Project_Context_Zf_ServicesDirectory8p sZend_Tool_Project_Context_Zf_SearchIndexesDirectory<o {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory8n sZend_Tool_Project_Context_Zf_PublicScriptsDirectory1m eZend_Tool_Project_Context_Zf_PublicIndexFile7l qZend_Tool_Project_Context_Zf_PublicImagesDirectory1k eZend_Tool_Project_Context_Zf_PublicDirectory5j mZend_Tool_Project_Context_Zf_ProjectProviderFile2i gZend_Tool_Project_Context_Zf_ModulesDirectory1h eZend_Tool_Project_Context_Zf_ModuleDirectory1g eZend_Tool_Project_Context_Zf_ModelsDirectory+f YZend_Tool_Project_Context_Zf_ModelFile/e aZend_Tool_Project_Context_Zf_LogsDirectory2d gZend_Tool_Project_Context_Zf_LocalesDirectory2c gZend_Tool_Project_Context_Zf_LibraryDirectory2b gZend_Tool_Project_Context_Zf_LayoutsDirectory8a sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory2` gZend_Tool_Project_Context_Zf_LayoutScriptFile._ _Zend_Tool_Project_Context_Zf_HtaccessFile0^ cZend_Tool_Project_Context_Zf_FormsDirectory*] WZend_Tool_Project_Context_Zf_FormFile/\ aZend_Tool_Project_Context_Zf_DocsDirectory-[ ]Zend_Tool_Project_Context_Zf_DbTableFile2Z gZend_Tool_Project_Context_Zf_DbTableDirectory/Y aZend_Tool_Project_Context_Zf_DataDirectory6X oZend_Tool_Project_Context_Zf_ControllersDirectory0W cZend_Tool_Project_Context_Zf_ControllerFile2V gZend_Tool_Project_Context_Zf_ConfigsDirectory,U [Zend_Tool_Project_Context_Zf_ConfigFile0T cZend_Tool_Project_Context_Zf_CacheDirectory/S aZend_Tool_Project_Context_Zf_BootstrapFile6R oZend_Tool_Project_Context_Zf_ApplicationDirectory7Q qZend_Tool_Project_Context_Zf_ApplicationConfigFile/P aZend_Tool_Project_Context_Zf_ApisDirectory.O _Zend_Tool_Project_Context_Zf_ActionMethod3N iZend_Tool_Project_Context_Zf_AbstractClassFile@M Zend_Tool_Project_Context_System_ProjectProvidersDirectory8L sZend_Tool_Project_Context_System_ProjectProfileFile6K oZend_Tool_Project_Context_System_ProjectDirectory)J UZend_Tool_Project_Context_Repository.I _Zend_Tool_Project_Context_Filesystem_File3H iZend_Tool_Project_Context_Filesystem_Directory2G gZend_Tool_Project_Context_Filesystem_Abstract(F SZend_Tool_Project_Context_Exception-E ]Zend_Tool_Project_Context_Content_Engine3D iZend_Tool_Project_Context_Content_Engine_Phtml;C yZend_Tool_Project_Context_Content_Engine_CodeGenerator0B cZend_Tool_Framework_System_Provider_Version0A cZend_Tool_Framework_System_Provider_Phpinfo1@ eZend_Tool_Framework_System_Provider_Manifest/? aZend_Tool_Framework_System_Provider_Config(> SZend_Tool_Framework_System_Manifest-= ]Zend_Tool_Framework_System_Action_Delete-< ]Zend_Tool_Framework_System_Action_Create!; EZend_Tool_Framework_Registry+: YZend_Tool_Framework_Registry_Exception+9 YZend_Tool_Framework_Provider_Signature,8 [Zend_Tool_Framework_Provider_Repository+7 YZend_Tool_Framework_Provider_Exception*6 WZend_Tool_Framework_Provider_Abstract&5 OZend_Tool_Framework_Metadata_Tool)4 UZend_Tool_Framework_Metadata_Dynamic'3 QZend_Tool_Framework_Metadata_Basic,2 [Zend_Tool_Framework_Manifest_Repository21 gZend_Tool_Framework_Manifest_ProviderMetadata*0 WZend_Tool_Framework_Manifest_Metadata+/ YZend_Tool_Framework_Manifest_Exception0. cZend_Tool_Framework_Manifest_ActionMetadata1- eZend_Tool_Framework_Loader_IncludePathLoaderJ, Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator++ YZend_Tool_Framework_Loader_BasicLoader(* SZend_Tool_Framework_Loader_Abstract") GZend_Tool_Framework_Exception'( QZend_Tool_Framework_Client_Storage1' eZend_Tool_Framework_Client_Storage_Directory(& SZend_Tool_Framework_Client_ResponseD% 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator   X  SJK]*x?


a
>
			k	7\.X/_-sQ0fI3sO gD!tP,                                 *I WZend_Validate_Barcode_IntelligentMail$H KZend_Validate_Barcode_Identcode!G EZend_Validate_Barcode_Gtin14!F EZend_Validate_Barcode_Gtin13!E EZend_Validate_Barcode_Gtin12D AZend_Validate_Barcode_Ean8C AZend_Validate_Barcode_Ean5B AZend_Validate_Barcode_Ean2 A CZend_Validate_Barcode_Ean18 @ CZend_Validate_Barcode_Ean14 ? CZend_Validate_Barcode_Ean13 > CZend_Validate_Barcode_Ean12$= KZend_Validate_Barcode_Code93ext!< EZend_Validate_Barcode_Code93$; KZend_Validate_Barcode_Code39ext!: EZend_Validate_Barcode_Code39,9 [Zend_Validate_Barcode_Code25interleaved!8 EZend_Validate_Barcode_Code25*7 WZend_Validate_Barcode_AdapterAbstract6 3Zend_Validate_Alpha5 3Zend_Validate_Alnum4 9Zend_Validate_Abstract3 Zend_Uri2 'Zend_Uri_Http1 1Zend_Uri_Exception0 )Zend_Translate/ 7Zend_Translate_Plural. =Zend_Translate_Exception- 9Zend_Translate_Adapter!, EZend_Translate_Adapter_XmlTm!+ EZend_Translate_Adapter_Xliff* AZend_Translate_Adapter_Tmx) AZend_Translate_Adapter_Tbx( ?Zend_Translate_Adapter_Qt' AZend_Translate_Adapter_Ini#& IZend_Translate_Adapter_Gettext% AZend_Translate_Adapter_Csv!$ EZend_Translate_Adapter_Array$# KZend_Tool_Project_Provider_View$" KZend_Tool_Project_Provider_Test/! aZend_Tool_Project_Provider_ProjectProvider'  QZend_Tool_Project_Provider_Project' QZend_Tool_Project_Provider_Profile& OZend_Tool_Project_Provider_Module% MZend_Tool_Project_Provider_Model( SZend_Tool_Project_Provider_Manifest& OZend_Tool_Project_Provider_Layout$ KZend_Tool_Project_Provider_Form) UZend_Tool_Project_Provider_Exception' QZend_Tool_Project_Provider_DbTable) UZend_Tool_Project_Provider_DbAdapter* WZend_Tool_Project_Provider_Controller+ YZend_Tool_Project_Provider_Application& OZend_Tool_Project_Provider_Action( SZend_Tool_Project_Provider_Abstract ?Zend_Tool_Project_Profile' QZend_Tool_Project_Profile_Resource9 uZend_Tool_Project_Profile_Resource_SearchConstraints1 eZend_Tool_Project_Profile_Resource_Container= }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter5 mZend_Tool_Project_Profile_Iterator_ContextFilter- ]Zend_Tool_Project_Profile_FileParser_Xml( SZend_Tool_Project_Profile_Exception 
 CZend_Tool_Project_Exception<	 {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory0 cZend_Tool_Project_Context_Zf_ViewsDirectory6 oZend_Tool_Project_Context_Zf_ViewScriptsDirectory0 cZend_Tool_Project_Context_Zf_ViewScriptFile6 oZend_Tool_Project_Context_Zf_ViewHelpersDirectory6 oZend_Tool_Project_Context_Zf_ViewFiltersDirectoryA Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory2 gZend_Tool_Project_Context_Zf_UploadsDirectory0 cZend_Tool_Project_Context_Zf_TestsDirectory7  qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile: wZend_Tool_Project_Context_Zf_TestPHPUnitBootstrapFile@~ Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory1} eZend_Tool_Project_Context_Zf_TestLibraryFile6| oZend_Tool_Project_Context_Zf_TestLibraryDirectory:{ wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFileBz Zend_Tool_Project_Context_Zf_TestApplicationModulesDirectoryAy Zend_Tool_Project_Context_Zf_TestApplicationModuleDirectory:x wZend_Tool_Project_Context_Zf_TestApplicationDirectory@w Zend_Tool_Project_Context_Zf_TestApplicationControllerFileEv Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory>u Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile=t }Zend_Tool_Project_Context_Zf_TestApplicationActionMethod4s kZend_Tool_Project_Context_Zf_TemporaryDirectory3r iZend_Tool_Project_Context_Zf_SessionsDirectory   r qL%gL,gH(nJ+}Y:





c
I
*
						i	K	0	zeQ7}Y9lK(tR0bAsP/	yG~T4                                    !; EZend_View_Helper_PartialLoop: =Zend_View_Helper_Partial'9 QZend_View_Helper_Partial_Exception'8 QZend_View_Helper_PaginationControl 7 CZend_View_Helper_Navigation(6 SZend_View_Helper_Navigation_Sitemap%5 MZend_View_Helper_Navigation_Menu&4 OZend_View_Helper_Navigation_Links/3 aZend_View_Helper_Navigation_HelperAbstract,2 [Zend_View_Helper_Navigation_Breadcrumbs1 ;Zend_View_Helper_Layout0 7Zend_View_Helper_Json"/ GZend_View_Helper_InlineScript#. IZend_View_Helper_HtmlQuicktime- ?Zend_View_Helper_HtmlPage , CZend_View_Helper_HtmlObject+ ?Zend_View_Helper_HtmlList* AZend_View_Helper_HtmlFlash!) EZend_View_Helper_HtmlElement( AZend_View_Helper_HeadTitle' AZend_View_Helper_HeadStyle & CZend_View_Helper_HeadScript% ?Zend_View_Helper_HeadMeta$ ?Zend_View_Helper_HeadLink# ?Zend_View_Helper_Gravatar"" GZend_View_Helper_FormTextarea! ?Zend_View_Helper_FormText   CZend_View_Helper_FormSubmit  CZend_View_Helper_FormSelect AZend_View_Helper_FormReset AZend_View_Helper_FormRadio" GZend_View_Helper_FormPassword ?Zend_View_Helper_FormNote' QZend_View_Helper_FormMultiCheckbox AZend_View_Helper_FormLabel AZend_View_Helper_FormImage  CZend_View_Helper_FormHidden ?Zend_View_Helper_FormFile  CZend_View_Helper_FormErrors! EZend_View_Helper_FormElement" GZend_View_Helper_FormCheckbox  CZend_View_Helper_FormButton 7Zend_View_Helper_Form ?Zend_View_Helper_Fieldset =Zend_View_Helper_Doctype! EZend_View_Helper_DeclareVars 9Zend_View_Helper_Cycle ?Zend_View_Helper_Currency =Zend_View_Helper_BaseUrl
 ;Zend_View_Helper_Action	 ?Zend_View_Helper_Abstract 3Zend_View_Exception 1Zend_View_Abstract %Zend_Version 'Zend_Validate AZend_Validate_StringLength# IZend_Validate_Sitemap_Priority ?Zend_Validate_Sitemap_Loc" GZend_Validate_Sitemap_Lastmod%  MZend_Validate_Sitemap_Changefreq 3Zend_Validate_Regex~ 9Zend_Validate_PostCode} 9Zend_Validate_NotEmpty| 9Zend_Validate_LessThan{ 7Zend_Validate_Ldap_Dnz 1Zend_Validate_Isbny -Zend_Validate_Ipx /Zend_Validate_Intw 7Zend_Validate_InArrayv ;Zend_Validate_Identicalu 1Zend_Validate_Ibant 9Zend_Validate_Hostnames /Zend_Validate_Hexr ?Zend_Validate_GreaterThanq 3Zend_Validate_Float!p EZend_Validate_File_WordCounto ?Zend_Validate_File_Uploadn ;Zend_Validate_File_Sizem ;Zend_Validate_File_Sha1!l EZend_Validate_File_NotExists k CZend_Validate_File_MimeTypej 9Zend_Validate_File_Md5i AZend_Validate_File_IsImage$h KZend_Validate_File_IsCompressed!g EZend_Validate_File_ImageSizef ;Zend_Validate_File_Hash!e EZend_Validate_File_FilesSize!d EZend_Validate_File_Extensionc ?Zend_Validate_File_Exists'b QZend_Validate_File_ExcludeMimeType(a SZend_Validate_File_ExcludeExtension` =Zend_Validate_File_Crc32_ =Zend_Validate_File_Count^ ;Zend_Validate_Exception] AZend_Validate_EmailAddress\ 5Zend_Validate_Digits"[ GZend_Validate_Db_RecordExists$Z KZend_Validate_Db_NoRecordExistsY ?Zend_Validate_Db_AbstractX 1Zend_Validate_DateW =Zend_Validate_CreditCardV 3Zend_Validate_CcnumU 9Zend_Validate_CallbackT 7Zend_Validate_BetweenS 7Zend_Validate_BarcodeR AZend_Validate_Barcode_UpceQ AZend_Validate_Barcode_UpcaP AZend_Validate_Barcode_Sscc$O KZend_Validate_Barcode_Royalmail"N GZend_Validate_Barcode_Postnet!M EZend_Validate_Barcode_Planet#L IZend_Validate_Barcode_Leitcode K CZend_Validate_Barcode_Itf14J AZend_Validate_Barcode_Issn   l  X*vT2W&Y1x_6




c
G
'
					i	E	$	 z]=kVF+	lFd9~eD-uBY8`7	      !' EZend_Application_Resource_Db+& YZend_Application_Resource_Cachemanager&% OZend_Application_Module_Bootstrap'$ QZend_Application_Module_Autoloader# AZend_Application_Exception)" UZend_Application_Bootstrap_Exception1! eZend_Application_Bootstrap_BootstrapAbstract)  UZend_Application_Bootstrap_Bootstrap ?Zend_Amf_Value_TraitsInfo- ]Zend_Amf_Value_Messaging_RemotingMessage* WZend_Amf_Value_Messaging_ErrorMessage, [Zend_Amf_Value_Messaging_CommandMessage* WZend_Amf_Value_Messaging_AsyncMessage- ]Zend_Amf_Value_Messaging_ArrayCollection0 cZend_Amf_Value_Messaging_AcknowledgeMessage- ]Zend_Amf_Value_Messaging_AbstractMessage! EZend_Amf_Value_MessageHeader AZend_Amf_Value_MessageBody =Zend_Amf_Value_ByteArray AZend_Amf_Util_BinaryStream +Zend_Amf_Server ?Zend_Amf_Server_Exception /Zend_Amf_Response 9Zend_Amf_Response_Http -Zend_Amf_Request 7Zend_Amf_Request_Http ?Zend_Amf_Parse_TypeLoader ?Zend_Amf_Parse_Serializer# IZend_Amf_Parse_Resource_Stream(
 SZend_Amf_Parse_Resource_MysqlResult)	 UZend_Amf_Parse_Resource_MysqliResult  CZend_Amf_Parse_OutputStream AZend_Amf_Parse_InputStream  CZend_Amf_Parse_Deserializer# IZend_Amf_Parse_Amf3_Serializer% MZend_Amf_Parse_Amf3_Deserializer# IZend_Amf_Parse_Amf0_Serializer% MZend_Amf_Parse_Amf0_Deserializer 1Zend_Amf_Exception  1Zend_Amf_Constants 9Zend_Amf_Auth_Abstract ~ CZend_Amf_Adobe_Introspector} AZend_Amf_Adobe_DbInspector| 3Zend_Amf_Adobe_Auth{ Zend_Aclz 'Zend_Acl_Roley 9Zend_Acl_Role_Registry%x MZend_Acl_Role_Registry_Exceptionw /Zend_Acl_Resourcev 1Zend_Acl_Exceptionu /Zend_XmlRpc_Valuet =Zend_XmlRpc_Value_Structs =Zend_XmlRpc_Value_Stringr =Zend_XmlRpc_Value_Scalarq 7Zend_XmlRpc_Value_Nilp ?Zend_XmlRpc_Value_Integer o CZend_XmlRpc_Value_Exceptionn =Zend_XmlRpc_Value_Doublem AZend_XmlRpc_Value_DateTime!l EZend_XmlRpc_Value_Collectionk ?Zend_XmlRpc_Value_Boolean!j EZend_XmlRpc_Value_BigIntegeri =Zend_XmlRpc_Value_Base64h ;Zend_XmlRpc_Value_Arrayg 1Zend_XmlRpc_Serverf ?Zend_XmlRpc_Server_Systeme =Zend_XmlRpc_Server_Fault!d EZend_XmlRpc_Server_Exceptionc =Zend_XmlRpc_Server_Cacheb 5Zend_XmlRpc_Responsea ?Zend_XmlRpc_Response_Http` 3Zend_XmlRpc_Request_ ?Zend_XmlRpc_Request_Stdin^ =Zend_XmlRpc_Request_Http$] KZend_XmlRpc_Generator_XmlWriter,\ [Zend_XmlRpc_Generator_GeneratorAbstract&[ OZend_XmlRpc_Generator_DomDocumentZ /Zend_XmlRpc_FaultY 7Zend_XmlRpc_ExceptionX 1Zend_XmlRpc_Client#W IZend_XmlRpc_Client_ServerProxy+V YZend_XmlRpc_Client_ServerIntrospection+U YZend_XmlRpc_Client_IntrospectException%T MZend_XmlRpc_Client_HttpException&S OZend_XmlRpc_Client_FaultException!R EZend_XmlRpc_Client_ExceptionQ /Zend_Xml_SecurityP 1Zend_Xml_Exception&O OZend_Wildfire_Protocol_JsonStream!N EZend_Wildfire_Plugin_FirePhp.M _Zend_Wildfire_Plugin_FirePhp_TableMessage)L UZend_Wildfire_Plugin_FirePhp_MessageK ;Zend_Wildfire_Exception&J OZend_Wildfire_Channel_HttpHeadersI Zend_ViewH -Zend_View_StreamG AZend_View_Helper_UserAgentF 5Zend_View_Helper_UrlE AZend_View_Helper_TranslateD AZend_View_Helper_ServerUrl)C UZend_View_Helper_RenderToPlaceholder!B EZend_View_Helper_Placeholder*A WZend_View_Helper_Placeholder_Registry4@ kZend_View_Helper_Placeholder_Registry_Exception+? YZend_View_Helper_Placeholder_Container6> oZend_View_Helper_Placeholder_Container_Standalone5= mZend_View_Helper_Placeholder_Container_Exception4< kZend_View_Helper_Placeholder_Container_Abstract   W  yE}L* h3 lK'd0	



l
E
					M	&eH]5BVQ Q#e3Z;                                w 3Zend_View_Interface'v QZend_View_Helper_Navigation_Helperu AZend_View_Helper_Interfacet ;Zend_Validate_Interface+s YZend_Validate_Barcode_AdapterInterface3r iZend_Tool_Project_Profile_FileParser_Interface:q wZend_Tool_Project_Context_System_TopLevelRestrictable5p mZend_Tool_Project_Context_System_NotOverwritable/o aZend_Tool_Project_Context_System_Interface(n SZend_Tool_Project_Context_Interface+m YZend_Tool_Framework_Registry_Interface2l gZend_Tool_Framework_Registry_EnabledInterface-k ]Zend_Tool_Framework_Provider_Pretendable+j YZend_Tool_Framework_Provider_Interface.i _Zend_Tool_Framework_Provider_Interactable/h aZend_Tool_Framework_Provider_Initializable;g yZend_Tool_Framework_Provider_DocblockManifestInterface+f YZend_Tool_Framework_Metadata_Interface.e _Zend_Tool_Framework_Metadata_Attributable6d oZend_Tool_Framework_Manifest_ProviderManifestable6c oZend_Tool_Framework_Manifest_MetadataManifestable+b YZend_Tool_Framework_Manifest_Interface+a YZend_Tool_Framework_Manifest_Indexable4` kZend_Tool_Framework_Manifest_ActionManifestable)_ UZend_Tool_Framework_Loader_Interface8^ sZend_Tool_Framework_Client_Storage_AdapterInterfaceD] 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface;\ yZend_Tool_Framework_Client_Interactive_OutputInterface:[ wZend_Tool_Framework_Client_Interactive_InputInterface)Z UZend_Tool_Framework_Action_Interface(Y SZend_Text_Table_Decorator_InterfaceX /Zend_Tag_TaggableW 7Zend_Stdlib_Exception&V OZend_Soap_Wsdl_Strategy_Interface%U MZend_Session_Validator_Interface'T QZend_Session_SaveHandler_Interface$S KZend_Service_ShortUrl_ShortenerIR Zend_Service_DeveloperGarden_Response_SecurityTokenServer_InterfaceKQ Zend_Service_Console_Command_ParameterSource_ParameterSourceInterfaceP 7Zend_Server_Interface-O ]Zend_Serializer_Adapter_AdapterInterface4N kZend_Search_Lucene_Search_Highlighter_Interface!M EZend_Search_Lucene_Interface3L iZend_Search_Lucene_Index_TermsStream_Interface$K KZend_Queue_Stomp_FrameInterface0J cZend_Queue_Stomp_Client_ConnectionInterface(I SZend_Queue_Adapter_AdapterInterfaceH ?Zend_Pdf_Filter_Interface&G OZend_Pdf_ElementFactory_InterfaceF ?Zend_Pdf_Canvas_Interface,E [Zend_Paginator_ScrollingStyle_Interface$D KZend_Paginator_AdapterAggregate%C MZend_Paginator_Adapter_Interface&B OZend_Oauth_Config_ConfigInterface'A QZend_Mobile_Push_Message_Interface@ AZend_Mobile_Push_Interface$? KZend_Memory_Container_Interface1> eZend_Markup_Renderer_TokenConverterInterface'= QZend_Markup_Parser_ParserInterface)< UZend_Mail_Storage_Writable_Interface'; QZend_Mail_Storage_Folder_Interface: =Zend_Mail_Part_Interface 9 CZend_Mail_Message_Interface!8 EZend_Log_Formatter_Interface7 ?Zend_Log_Filter_Interface6 ?Zend_Log_FactoryInterface5 ?Zend_Loader_SplAutoloader'4 QZend_Loader_PluginLoader_Interface%3 MZend_Loader_Autoloader_Interface02 cZend_Ldap_Node_Schema_ObjectClass_Interface21 gZend_Ldap_Node_Schema_AttributeType_Interface 0 CZend_Http_UserAgent_Storage)/ UZend_Http_UserAgent_Features_Adapter. AZend_Http_UserAgent_Device$- KZend_Http_Client_Adapter_Stream', QZend_Http_Client_Adapter_Interface+ AZend_Gdata_App_MediaSource.* _Zend_Form_Decorator_Marker_File_Interface") GZend_Form_Decorator_Interface( 7Zend_Filter_Interface"' GZend_Filter_Encrypt_Interface+& YZend_Filter_Compress_CompressInterface0% cZend_Feed_Writer_Renderer_RendererInterface1$ eZend_Feed_Writer_Extension_RendererInterface## IZend_Feed_Reader_FeedInterface$" KZend_Feed_Reader_EntryInterface7! qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface   ^  oP!lI[4a5mJ*



y
I
				[	-	sI" |I!pM-yR0_>o9C~U8      )U UZend_Tool_Framework_Action_Interface(T SZend_Text_Table_Decorator_InterfaceS /Zend_Tag_TaggableR 7Zend_Stdlib_Exception&Q OZend_Soap_Wsdl_Strategy_Interface%P MZend_Session_Validator_Interface'O QZend_Session_SaveHandler_Interface$N KZend_Service_ShortUrl_ShortenerIM Zend_Service_DeveloperGarden_Response_SecurityTokenServer_InterfaceKL Zend_Service_Console_Command_ParameterSource_ParameterSourceInterfaceK 7Zend_Server_Interface-J ]Zend_Serializer_Adapter_AdapterInterface4I kZend_Search_Lucene_Search_Highlighter_Interface!H EZend_Search_Lucene_Interface3G iZend_Search_Lucene_Index_TermsStream_Interface$F KZend_Queue_Stomp_FrameInterface0E cZend_Queue_Stomp_Client_ConnectionInterface(D SZend_Queue_Adapter_AdapterInterfaceC ?Zend_Pdf_Filter_Interface&B OZend_Pdf_ElementFactory_InterfaceA ?Zend_Pdf_Canvas_Interface,@ [Zend_Paginator_ScrollingStyle_Interface$? KZend_Paginator_AdapterAggregate%> MZend_Paginator_Adapter_Interface&= OZend_Oauth_Config_ConfigInterface'< QZend_Mobile_Push_Message_Interface; AZend_Mobile_Push_Interface$: KZend_Memory_Container_Interface19 eZend_Markup_Renderer_TokenConverterInterface'8 QZend_Markup_Parser_ParserInterface)7 UZend_Mail_Storage_Writable_Interface'6 QZend_Mail_Storage_Folder_Interface5 =Zend_Mail_Part_Interface 4 CZend_Mail_Message_Interface!3 EZend_Log_Formatter_Interface2 ?Zend_Log_Filter_Interface1 ?Zend_Log_FactoryInterface0 ?Zend_Loader_SplAutoloader'/ QZend_Loader_PluginLoader_Interface%. MZend_Loader_Autoloader_Interface0- cZend_Ldap_Node_Schema_ObjectClass_Interface2, gZend_Ldap_Node_Schema_AttributeType_Interface + CZend_Http_UserAgent_Storage)* UZend_Http_UserAgent_Features_Adapter) AZend_Http_UserAgent_Device$( KZend_Http_Client_Adapter_Stream'' QZend_Http_Client_Adapter_Interface& AZend_Gdata_App_MediaSource.% _Zend_Form_Decorator_Marker_File_Interface"$ GZend_Form_Decorator_Interface# 7Zend_Filter_Interface"" GZend_Filter_Encrypt_Interface+! YZend_Filter_Compress_CompressInterface0  cZend_Feed_Writer_Renderer_RendererInterface1 eZend_Feed_Writer_Extension_RendererInterface# IZend_Feed_Reader_FeedInterface$ KZend_Feed_Reader_EntryInterface7 qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface- ]Zend_Feed_Pubsubhubbub_CallbackInterface  CZend_Feed_Builder_Interface1 eZend_EventManager_SharedEventCollectionAware, [Zend_EventManager_SharedEventCollection( SZend_EventManager_ListenerAggregate =Zend_EventManager_Filter  CZend_EventManager_Exception( SZend_EventManager_EventManagerAware' QZend_EventManager_EventDescription& OZend_EventManager_EventCollection  CZend_Db_Statement_Interface$ KZend_Currency_CurrencyInterface) UZend_Crypt_Math_BigInteger_Interface+ YZend_Controller_Router_Route_Interface% MZend_Controller_Router_Interface) UZend_Controller_Dispatcher_Interface% MZend_Controller_Action_Interface&
 OZend_Cloud_StorageService_Adapter$	 KZend_Cloud_QueueService_Adapter& OZend_Cloud_Infrastructure_Adapter, [Zend_Cloud_DocumentService_QueryAdapter' QZend_Cloud_DocumentService_Adapter 5Zend_Captcha_Adapter! EZend_Cache_Backend_Interface) UZend_Cache_Backend_ExtendedInterface  CZend_Auth_Storage_Interface  CZend_Auth_Adapter_Interface.  _Zend_Auth_Adapter_Http_Resolver_Interface' QZend_Application_Resource_Resource4~ kZend_Application_Bootstrap_ResourceBootstrapper,} [Zend_Application_Bootstrap_Bootstrapper| ;Zend_Acl_Role_Interface { CZend_Acl_Resource_Interfacez ?Zend_Acl_Assert_Interface#y IZend_Wildfire_Plugin_Interface$x KZend_Wildfire_Channel_Interface   j  ~V.	e3fN-oQ1dA




o
O
.
					u	S	0	`2uQ0a7wV6rT9S S'S                           ( SZend_Cloud_Infrastructure_Exception0 cZend_Cloud_Infrastructure_Adapter_Rackspace* WZend_Cloud_Infrastructure_Adapter_Ec26 oZend_Cloud_Infrastructure_Adapter_AbstractAdapter 5Zend_Cloud_Exception% MZend_Cloud_DocumentService_Query' QZend_Cloud_DocumentService_Factory)
 UZend_Cloud_DocumentService_Exception+	 YZend_Cloud_DocumentService_DocumentSet( SZend_Cloud_DocumentService_Document4 kZend_Cloud_DocumentService_Adapter_WindowsAzure: wZend_Cloud_DocumentService_Adapter_WindowsAzure_Query0 cZend_Cloud_DocumentService_Adapter_SimpleDb6 oZend_Cloud_DocumentService_Adapter_SimpleDb_Query7 qZend_Cloud_DocumentService_Adapter_AbstractAdapter AZend_Cloud_AbstractFactory /Zend_Captcha_Word  9Zend_Captcha_ReCaptcha 1Zend_Captcha_Image~ 3Zend_Captcha_Figlet} 9Zend_Captcha_Exception| /Zend_Captcha_Dumb{ /Zend_Captcha_Basez !Zend_Cachey 1Zend_Cache_Managerx =Zend_Cache_Frontend_Pagew AZend_Cache_Frontend_Output!v EZend_Cache_Frontend_Functionu =Zend_Cache_Frontend_Filet ?Zend_Cache_Frontend_Class s CZend_Cache_Frontend_Capturer 5Zend_Cache_Exceptionq +Zend_Cache_Corep 1Zend_Cache_Backend"o GZend_Cache_Backend_ZendServer(n SZend_Cache_Backend_ZendServer_ShMem'm QZend_Cache_Backend_ZendServer_Disk$l KZend_Cache_Backend_ZendPlatformk ?Zend_Cache_Backend_Xcache j CZend_Cache_Backend_WinCache!i EZend_Cache_Backend_TwoLevelsh ;Zend_Cache_Backend_Testg ?Zend_Cache_Backend_Staticf ?Zend_Cache_Backend_Sqlite!e EZend_Cache_Backend_Memcached$d KZend_Cache_Backend_Libmemcachedc ;Zend_Cache_Backend_File!b EZend_Cache_Backend_BlackHolea 9Zend_Cache_Backend_Apc` %Zend_Barcode_ ?Zend_Barcode_Renderer_Svg+^ YZend_Barcode_Renderer_RendererAbstract] ?Zend_Barcode_Renderer_Pdf \ CZend_Barcode_Renderer_Image$[ KZend_Barcode_Renderer_ExceptionZ =Zend_Barcode_Object_UpceY =Zend_Barcode_Object_Upca"X GZend_Barcode_Object_Royalmail W CZend_Barcode_Object_PostnetV AZend_Barcode_Object_Planet'U QZend_Barcode_Object_ObjectAbstract!T EZend_Barcode_Object_LeitcodeS ?Zend_Barcode_Object_Itf14"R GZend_Barcode_Object_Identcode"Q GZend_Barcode_Object_ExceptionP ?Zend_Barcode_Object_ErrorO =Zend_Barcode_Object_Ean8N =Zend_Barcode_Object_Ean5M =Zend_Barcode_Object_Ean2L ?Zend_Barcode_Object_Ean13K AZend_Barcode_Object_Code39*J WZend_Barcode_Object_Code25interleavedI AZend_Barcode_Object_Code25 H CZend_Barcode_Object_Code128G 9Zend_Barcode_ExceptionF Zend_AuthE ?Zend_Auth_Storage_Session$D KZend_Auth_Storage_NonPersistent C CZend_Auth_Storage_ExceptionB -Zend_Auth_ResultA 3Zend_Auth_Exception@ =Zend_Auth_Adapter_OpenId? 9Zend_Auth_Adapter_Ldap> 9Zend_Auth_Adapter_Http)= UZend_Auth_Adapter_Http_Resolver_File.< _Zend_Auth_Adapter_Http_Resolver_Exception ; CZend_Auth_Adapter_Exception: =Zend_Auth_Adapter_Digest9 ?Zend_Auth_Adapter_DbTable8 -Zend_Application#7 IZend_Application_Resource_View(6 SZend_Application_Resource_UserAgent(5 SZend_Application_Resource_Translate&4 OZend_Application_Resource_Session%3 MZend_Application_Resource_Router/2 aZend_Application_Resource_ResourceAbstract)1 UZend_Application_Resource_Navigation&0 OZend_Application_Resource_Multidb&/ OZend_Application_Resource_Modules#. IZend_Application_Resource_Mail"- GZend_Application_Resource_Log%, MZend_Application_Resource_Locale%+ MZend_Application_Resource_Layout.* _Zend_Application_Resource_Frontcontroller() SZend_Application_Resource_Exception#( IZend_Application_Resource_Dojo   ^  [-f5`-wT0	^,



a
2
			|	U	8	!		gH.V%DX/{P$jEwS'e8                                      %o MZend_Controller_Router_Exception$n KZend_Controller_Router_Abstract*m WZend_Controller_Response_HttpTestCase"l GZend_Controller_Response_Http'k QZend_Controller_Response_Exception!j EZend_Controller_Response_Cli&i OZend_Controller_Response_Abstract#h IZend_Controller_Request_Simple)g UZend_Controller_Request_HttpTestCase!f EZend_Controller_Request_Http&e OZend_Controller_Request_Exception&d OZend_Controller_Request_Apache404%c MZend_Controller_Request_Abstract&b OZend_Controller_Plugin_PutHandler(a SZend_Controller_Plugin_ErrorHandler"` GZend_Controller_Plugin_Broker'_ QZend_Controller_Plugin_ActionStack$^ KZend_Controller_Plugin_Abstract] 7Zend_Controller_Front\ ?Zend_Controller_Exception([ SZend_Controller_Dispatcher_Standard)Z UZend_Controller_Dispatcher_Exception(Y SZend_Controller_Dispatcher_AbstractX 9Zend_Controller_Action(W SZend_Controller_Action_HelperBroker6V oZend_Controller_Action_HelperBroker_PriorityStack/U aZend_Controller_Action_Helper_ViewRenderer&T OZend_Controller_Action_Helper_Url-S ]Zend_Controller_Action_Helper_Redirector'R QZend_Controller_Action_Helper_Json1Q eZend_Controller_Action_Helper_FlashMessenger0P cZend_Controller_Action_Helper_ContextSwitch(O SZend_Controller_Action_Helper_Cache<N {Zend_Controller_Action_Helper_AutoCompleteScriptaculous3M iZend_Controller_Action_Helper_AutoCompleteDojo8L sZend_Controller_Action_Helper_AutoComplete_Abstract.K _Zend_Controller_Action_Helper_AjaxContext.J _Zend_Controller_Action_Helper_ActionStack+I YZend_Controller_Action_Helper_Abstract%H MZend_Controller_Action_ExceptionG 3Zend_Console_Getopt"F GZend_Console_Getopt_ExceptionE #Zend_ConfigD -Zend_Config_YamlC +Zend_Config_XmlB 1Zend_Config_WriterA ;Zend_Config_Writer_Yaml@ 9Zend_Config_Writer_Xml? ;Zend_Config_Writer_Json> 9Zend_Config_Writer_Ini$= KZend_Config_Writer_FileAbstract< =Zend_Config_Writer_Array; -Zend_Config_Json: +Zend_Config_Ini9 7Zend_Config_Exception$8 KZend_CodeGenerator_Php_Property17 eZend_CodeGenerator_Php_Property_DefaultValue%6 MZend_CodeGenerator_Php_Parameter25 gZend_CodeGenerator_Php_Parameter_DefaultValue"4 GZend_CodeGenerator_Php_Method,3 [Zend_CodeGenerator_Php_Member_Container+2 YZend_CodeGenerator_Php_Member_Abstract 1 CZend_CodeGenerator_Php_File%0 MZend_CodeGenerator_Php_Exception$/ KZend_CodeGenerator_Php_Docblock(. SZend_CodeGenerator_Php_Docblock_Tag/- aZend_CodeGenerator_Php_Docblock_Tag_Return., _Zend_CodeGenerator_Php_Docblock_Tag_Param0+ cZend_CodeGenerator_Php_Docblock_Tag_License!* EZend_CodeGenerator_Php_Class ) CZend_CodeGenerator_Php_Body$( KZend_CodeGenerator_Php_Abstract!' EZend_CodeGenerator_Exception & CZend_CodeGenerator_Abstract&% OZend_Cloud_StorageService_Factory($ SZend_Cloud_StorageService_Exception3# iZend_Cloud_StorageService_Adapter_WindowsAzure)" UZend_Cloud_StorageService_Adapter_S30! cZend_Cloud_StorageService_Adapter_Rackspace1  eZend_Cloud_StorageService_Adapter_FileSystem' QZend_Cloud_QueueService_MessageSet$ KZend_Cloud_QueueService_Message$ KZend_Cloud_QueueService_Factory& OZend_Cloud_QueueService_Exception. _Zend_Cloud_QueueService_Adapter_ZendQueue1 eZend_Cloud_QueueService_Adapter_WindowsAzure( SZend_Cloud_QueueService_Adapter_Sqs4 kZend_Cloud_QueueService_Adapter_AbstractAdapter. _Zend_Cloud_OperationNotAvailableException+ YZend_Cloud_Infrastructure_InstanceList' QZend_Cloud_Infrastructure_Instance( SZend_Cloud_Infrastructure_ImageList$ KZend_Cloud_Infrastructure_Image& OZend_Cloud_Infrastructure_Factory   p  V+hL+wV?{fN2]?




p
O
.
					m	Y	7	gDnQ'oL3ufT8"vJf9uK'|P$               +_ YZend_Dojo_Form_Element_PasswordTextBox)^ UZend_Dojo_Form_Element_NumberTextBox)] UZend_Dojo_Form_Element_NumberSpinner,\ [Zend_Dojo_Form_Element_HorizontalSlider+[ YZend_Dojo_Form_Element_FilteringSelect"Z GZend_Dojo_Form_Element_Editor&Y OZend_Dojo_Form_Element_DijitMulti!X EZend_Dojo_Form_Element_Dijit'W QZend_Dojo_Form_Element_DateTextBox+V YZend_Dojo_Form_Element_CurrencyTextBox$U KZend_Dojo_Form_Element_ComboBox$T KZend_Dojo_Form_Element_CheckBox"S GZend_Dojo_Form_Element_Button R CZend_Dojo_Form_DisplayGroup*Q WZend_Dojo_Form_Decorator_TabContainer,P [Zend_Dojo_Form_Decorator_StackContainer,O [Zend_Dojo_Form_Decorator_SplitContainer'N QZend_Dojo_Form_Decorator_DijitForm*M WZend_Dojo_Form_Decorator_DijitElement,L [Zend_Dojo_Form_Decorator_DijitContainer)K UZend_Dojo_Form_Decorator_ContentPane-J ]Zend_Dojo_Form_Decorator_BorderContainer+I YZend_Dojo_Form_Decorator_AccordionPane0H cZend_Dojo_Form_Decorator_AccordionContainerG 3Zend_Dojo_ExceptionF )Zend_Dojo_DataE 5Zend_Dojo_BuildLayerD !Zend_DebugC Zend_DbB 'Zend_Db_TableA 5Zend_Db_Table_Select#@ IZend_Db_Table_Select_Exception? 5Zend_Db_Table_Rowset#> IZend_Db_Table_Rowset_Exception"= GZend_Db_Table_Rowset_Abstract< /Zend_Db_Table_Row ; CZend_Db_Table_Row_Exception: AZend_Db_Table_Row_Abstract9 ;Zend_Db_Table_Exception8 =Zend_Db_Table_Definition7 9Zend_Db_Table_Abstract6 /Zend_Db_Statement5 =Zend_Db_Statement_Sqlsrv'4 QZend_Db_Statement_Sqlsrv_Exception3 7Zend_Db_Statement_Pdo2 ?Zend_Db_Statement_Pdo_Oci1 ?Zend_Db_Statement_Pdo_Ibm0 =Zend_Db_Statement_Oracle'/ QZend_Db_Statement_Oracle_Exception. =Zend_Db_Statement_Mysqli'- QZend_Db_Statement_Mysqli_Exception , CZend_Db_Statement_Exception+ 7Zend_Db_Statement_Db2$* KZend_Db_Statement_Db2_Exception) )Zend_Db_Select( =Zend_Db_Select_Exception' -Zend_Db_Profiler& 9Zend_Db_Profiler_Query% =Zend_Db_Profiler_Firebug$ AZend_Db_Profiler_Exception# %Zend_Db_Expr" /Zend_Db_Exception! 9Zend_Db_Adapter_Sqlsrv%  MZend_Db_Adapter_Sqlsrv_Exception AZend_Db_Adapter_Pdo_Sqlite ?Zend_Db_Adapter_Pdo_Pgsql ;Zend_Db_Adapter_Pdo_Oci ?Zend_Db_Adapter_Pdo_Mysql ?Zend_Db_Adapter_Pdo_Mssql ;Zend_Db_Adapter_Pdo_Ibm  CZend_Db_Adapter_Pdo_Ibm_Ids  CZend_Db_Adapter_Pdo_Ibm_Db2! EZend_Db_Adapter_Pdo_Abstract 9Zend_Db_Adapter_Oracle% MZend_Db_Adapter_Oracle_Exception 9Zend_Db_Adapter_Mysqli% MZend_Db_Adapter_Mysqli_Exception ?Zend_Db_Adapter_Exception 3Zend_Db_Adapter_Db2" GZend_Db_Adapter_Db2_Exception =Zend_Db_Adapter_Abstract Zend_Date 3Zend_Date_Exception 5Zend_Date_DateObject -Zend_Date_Cities
 'Zend_Currency	 ;Zend_Currency_Exception !Zend_Crypt )Zend_Crypt_Rsa 1Zend_Crypt_Rsa_Key ?Zend_Crypt_Rsa_Key_Public AZend_Crypt_Rsa_Key_Private =Zend_Crypt_Rsa_Exception +Zend_Crypt_Math ?Zend_Crypt_Math_Exception  AZend_Crypt_Math_BigInteger# IZend_Crypt_Math_BigInteger_Gmp)~ UZend_Crypt_Math_BigInteger_Exception&} OZend_Crypt_Math_BigInteger_Bcmath| +Zend_Crypt_Hmac{ ?Zend_Crypt_Hmac_Exceptionz 5Zend_Crypt_Exceptiony =Zend_Crypt_DiffieHellman'x QZend_Crypt_DiffieHellman_Exception!w EZend_Controller_Router_Route(v SZend_Controller_Router_Route_Static'u QZend_Controller_Router_Route_Regex(t SZend_Controller_Router_Route_Module*s WZend_Controller_Router_Route_Hostname'r QZend_Controller_Router_Route_Chain*q WZend_Controller_Router_Route_Abstract#p IZend_Controller_Router_Rewrite   b  Y2gQ1_9nBS(



{
W
+					`	7	t^?]M!dAqV'qIzD!]-Y)                                               ,A [Zend_Feed_Reader_Extension_FeedAbstract-@ ]Zend_Feed_Reader_Extension_EntryAbstract/? aZend_Feed_Reader_Extension_DublinCore_Feed0> cZend_Feed_Reader_Extension_DublinCore_Entry4= kZend_Feed_Reader_Extension_CreativeCommons_Feed5< mZend_Feed_Reader_Extension_CreativeCommons_Entry-; ]Zend_Feed_Reader_Extension_Content_Entry): UZend_Feed_Reader_Extension_Atom_Feed*9 WZend_Feed_Reader_Extension_Atom_Entry#8 IZend_Feed_Reader_EntryAbstract7 AZend_Feed_Reader_Entry_Rss 6 CZend_Feed_Reader_Entry_Atom 5 CZend_Feed_Reader_Collection34 iZend_Feed_Reader_Collection_CollectionAbstract)3 UZend_Feed_Reader_Collection_Category'2 QZend_Feed_Reader_Collection_Author1 9Zend_Feed_Pubsubhubbub&0 OZend_Feed_Pubsubhubbub_Subscriber// aZend_Feed_Pubsubhubbub_Subscriber_Callback%. MZend_Feed_Pubsubhubbub_Publisher.- _Zend_Feed_Pubsubhubbub_Model_Subscription/, aZend_Feed_Pubsubhubbub_Model_ModelAbstract(+ SZend_Feed_Pubsubhubbub_HttpResponse%* MZend_Feed_Pubsubhubbub_Exception,) [Zend_Feed_Pubsubhubbub_CallbackAbstract( 3Zend_Feed_Exception' 3Zend_Feed_Entry_Rss& 5Zend_Feed_Entry_Atom% =Zend_Feed_Entry_Abstract$ /Zend_Feed_Element# /Zend_Feed_Builder" =Zend_Feed_Builder_Header$! KZend_Feed_Builder_Header_Itunes   CZend_Feed_Builder_Exception ;Zend_Feed_Builder_Entry )Zend_Feed_Atom 1Zend_Feed_Abstract )Zend_Exception) UZend_EventManager_StaticEventManager) UZend_EventManager_SharedEventManager) UZend_EventManager_ResponseCollection SplStack) UZend_EventManager_GlobalEventManager" GZend_EventManager_FilterChain, [Zend_EventManager_Filter_FilterIterator9 uZend_EventManager_Exception_InvalidArgumentException# IZend_EventManager_EventManager ;Zend_EventManager_Event )Zend_Dom_Query 7Zend_Dom_Query_Result =Zend_Dom_Query_Css2Xpath 1Zend_Dom_Exception Zend_Dojo) UZend_Dojo_View_Helper_VerticalSlider, [Zend_Dojo_View_Helper_ValidationTextBox&
 OZend_Dojo_View_Helper_TimeTextBox"	 GZend_Dojo_View_Helper_TextBox# IZend_Dojo_View_Helper_Textarea' QZend_Dojo_View_Helper_TabContainer' QZend_Dojo_View_Helper_SubmitButton) UZend_Dojo_View_Helper_StackContainer) UZend_Dojo_View_Helper_SplitContainer! EZend_Dojo_View_Helper_Slider) UZend_Dojo_View_Helper_SimpleTextarea& OZend_Dojo_View_Helper_RadioButton*  WZend_Dojo_View_Helper_PasswordTextBox( SZend_Dojo_View_Helper_NumberTextBox(~ SZend_Dojo_View_Helper_NumberSpinner+} YZend_Dojo_View_Helper_HorizontalSlider| AZend_Dojo_View_Helper_Form*{ WZend_Dojo_View_Helper_FilteringSelect!z EZend_Dojo_View_Helper_Editory AZend_Dojo_View_Helper_Dojo)x UZend_Dojo_View_Helper_Dojo_Container)w UZend_Dojo_View_Helper_DijitContainer v CZend_Dojo_View_Helper_Dijit&u OZend_Dojo_View_Helper_DateTextBox&t OZend_Dojo_View_Helper_CustomDijit*s WZend_Dojo_View_Helper_CurrencyTextBox&r OZend_Dojo_View_Helper_ContentPane#q IZend_Dojo_View_Helper_ComboBox#p IZend_Dojo_View_Helper_CheckBox!o EZend_Dojo_View_Helper_Button*n WZend_Dojo_View_Helper_BorderContainer(m SZend_Dojo_View_Helper_AccordionPane-l ]Zend_Dojo_View_Helper_AccordionContainerk =Zend_Dojo_View_Exceptionj )Zend_Dojo_Formi 9Zend_Dojo_Form_SubForm*h WZend_Dojo_Form_Element_VerticalSlider-g ]Zend_Dojo_Form_Element_ValidationTextBox'f QZend_Dojo_Form_Element_TimeTextBox#e IZend_Dojo_Form_Element_TextBox$d KZend_Dojo_Form_Element_Textarea(c SZend_Dojo_Form_Element_SubmitButton"b GZend_Dojo_Form_Element_Slider*a WZend_Dojo_Form_Element_SimpleTextarea'` QZend_Dojo_Form_Element_RadioButton   f  s@oJ*QrDk0



v
J
				`	.	{T0qD%kP6b@!i@(	lO'|S(xO!                       !' EZend_Form_Decorator_Abstract& #Zend_Filter+% YZend_Filter_Word_UnderscoreToSeparator&$ OZend_Filter_Word_UnderscoreToDash+# YZend_Filter_Word_UnderscoreToCamelCase*" WZend_Filter_Word_SeparatorToSeparator%! MZend_Filter_Word_SeparatorToDash*  WZend_Filter_Word_SeparatorToCamelCase( SZend_Filter_Word_Separator_Abstract& OZend_Filter_Word_DashToUnderscore% MZend_Filter_Word_DashToSeparator% MZend_Filter_Word_DashToCamelCase+ YZend_Filter_Word_CamelCaseToUnderscore* WZend_Filter_Word_CamelCaseToSeparator% MZend_Filter_Word_CamelCaseToDash 7Zend_Filter_StripTags ?Zend_Filter_StripNewlines 9Zend_Filter_StringTrim ?Zend_Filter_StringToUpper ?Zend_Filter_StringToLower 5Zend_Filter_RealPath ;Zend_Filter_PregReplace -Zend_Filter_Null& OZend_Filter_NormalizedToLocalized& OZend_Filter_LocalizedToNormalized +Zend_Filter_Int /Zend_Filter_Input 7Zend_Filter_Inflector =Zend_Filter_HtmlEntities
 AZend_Filter_File_UpperCase	 ;Zend_Filter_File_Rename AZend_Filter_File_LowerCase =Zend_Filter_File_Encrypt =Zend_Filter_File_Decrypt 7Zend_Filter_Exception 3Zend_Filter_Encrypt  CZend_Filter_Encrypt_Openssl AZend_Filter_Encrypt_Mcrypt +Zend_Filter_Dir  1Zend_Filter_Digits 3Zend_Filter_Decrypt~ 9Zend_Filter_Decompress} 5Zend_Filter_Compress| =Zend_Filter_Compress_Zip{ =Zend_Filter_Compress_Tarz =Zend_Filter_Compress_Rary =Zend_Filter_Compress_Lzfx ;Zend_Filter_Compress_Gz*w WZend_Filter_Compress_CompressAbstractv =Zend_Filter_Compress_Bz2u 5Zend_Filter_Callbackt 3Zend_Filter_Booleans 5Zend_Filter_BaseNamer /Zend_Filter_Alphaq /Zend_Filter_Alnump 1Zend_File_Transfer!o EZend_File_Transfer_Exception$n KZend_File_Transfer_Adapter_Http(m SZend_File_Transfer_Adapter_Abstractl 9Zend_File_PhpClassFilek AZend_File_ClassFileLocatorj Zend_Feedi -Zend_Feed_Writerh ;Zend_Feed_Writer_Source/g aZend_Feed_Writer_Renderer_RendererAbstract'f QZend_Feed_Writer_Renderer_Feed_Rss(e SZend_Feed_Writer_Renderer_Feed_Atom/d aZend_Feed_Writer_Renderer_Feed_Atom_Source5c mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract(b SZend_Feed_Writer_Renderer_Entry_Rss)a UZend_Feed_Writer_Renderer_Entry_Atom1` eZend_Feed_Writer_Renderer_Entry_Atom_Deleted_ 7Zend_Feed_Writer_Feed'^ QZend_Feed_Writer_Feed_FeedAbstract<] {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry8\ sZend_Feed_Writer_Extension_Threading_Renderer_Entry4[ kZend_Feed_Writer_Extension_Slash_Renderer_Entry0Z cZend_Feed_Writer_Extension_RendererAbstract4Y kZend_Feed_Writer_Extension_ITunes_Renderer_Feed5X mZend_Feed_Writer_Extension_ITunes_Renderer_Entry+W YZend_Feed_Writer_Extension_ITunes_Feed,V [Zend_Feed_Writer_Extension_ITunes_Entry8U sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed9T uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry6S oZend_Feed_Writer_Extension_Content_Renderer_Entry2R gZend_Feed_Writer_Extension_Atom_Renderer_Feed6Q oZend_Feed_Writer_Exception_InvalidMethodExceptionP 9Zend_Feed_Writer_EntryO =Zend_Feed_Writer_DeletedN 'Zend_Feed_RssM -Zend_Feed_ReaderL =Zend_Feed_Reader_FeedSet"K GZend_Feed_Reader_FeedAbstractJ ?Zend_Feed_Reader_Feed_RssI AZend_Feed_Reader_Feed_Atom&H OZend_Feed_Reader_Feed_Atom_Source3G iZend_Feed_Reader_Extension_WellFormedWeb_Entry,F [Zend_Feed_Reader_Extension_Thread_Entry0E cZend_Feed_Reader_Extension_Syndication_Feed+D YZend_Feed_Reader_Extension_Slash_Entry,C [Zend_Feed_Reader_Extension_Podcast_Feed-B ]Zend_Feed_Reader_Extension_Podcast_Entry   j  d=kCjD z\>vT5




w
^
C
*
				y	T	.S7vZ:nH!a<zS*kK0
n9X1                                     . _Zend_Gdata_Books_Extension_AnnotationLink$ KZend_Gdata_Books_CollectionFeed% MZend_Gdata_Books_CollectionEntry 1Zend_Gdata_AuthSub )Zend_Gdata_App$ KZend_Gdata_App_VersionException 3Zend_Gdata_App_Util#
 IZend_Gdata_App_MediaFileSource	 ?Zend_Gdata_App_MediaEntry2 gZend_Gdata_App_LoggingHttpClientAdapterSocket AZend_Gdata_App_IOException, [Zend_Gdata_App_InvalidArgumentException! EZend_Gdata_App_HttpException$ KZend_Gdata_App_FeedSourceParent# IZend_Gdata_App_FeedEntryParent 3Zend_Gdata_App_Feed =Zend_Gdata_App_Extension!  EZend_Gdata_App_Extension_Uri% MZend_Gdata_App_Extension_Updated#~ IZend_Gdata_App_Extension_Title"} GZend_Gdata_App_Extension_Text%| MZend_Gdata_App_Extension_Summary&{ OZend_Gdata_App_Extension_Subtitle$z KZend_Gdata_App_Extension_Source$y KZend_Gdata_App_Extension_Rights'x QZend_Gdata_App_Extension_Published$w KZend_Gdata_App_Extension_Person"v GZend_Gdata_App_Extension_Name"u GZend_Gdata_App_Extension_Logo"t GZend_Gdata_App_Extension_Link s CZend_Gdata_App_Extension_Id"r GZend_Gdata_App_Extension_Icon'q QZend_Gdata_App_Extension_Generator#p IZend_Gdata_App_Extension_Email%o MZend_Gdata_App_Extension_Element$n KZend_Gdata_App_Extension_Edited#m IZend_Gdata_App_Extension_Draft%l MZend_Gdata_App_Extension_Control)k UZend_Gdata_App_Extension_Contributor%j MZend_Gdata_App_Extension_Content&i OZend_Gdata_App_Extension_Category$h KZend_Gdata_App_Extension_Authorg =Zend_Gdata_App_Exceptionf 5Zend_Gdata_App_Entry,e [Zend_Gdata_App_CaptchaRequiredException#d IZend_Gdata_App_BaseMediaSourcec 3Zend_Gdata_App_Base*b WZend_Gdata_App_BadMethodCallException!a EZend_Gdata_App_AuthException` 5Zend_Gdata_Analytics+_ YZend_Gdata_Analytics_Extension_TableId,^ [Zend_Gdata_Analytics_Extension_Property*] WZend_Gdata_Analytics_Extension_Metric\ ?Zend_Gdata_Analytics_Goal-[ ]Zend_Gdata_Analytics_Extension_Dimension#Z IZend_Gdata_Analytics_DataQuery"Y GZend_Gdata_Analytics_DataFeed#X IZend_Gdata_Analytics_DataEntry&W OZend_Gdata_Analytics_AccountQuery%V MZend_Gdata_Analytics_AccountFeed&U OZend_Gdata_Analytics_AccountEntryT Zend_FormS /Zend_Form_SubFormR 3Zend_Form_ExceptionQ /Zend_Form_ElementP ;Zend_Form_Element_XhtmlO AZend_Form_Element_TextareaN 9Zend_Form_Element_TextM =Zend_Form_Element_SubmitL =Zend_Form_Element_SelectK ;Zend_Form_Element_ResetJ ;Zend_Form_Element_RadioI AZend_Form_Element_PasswordH 9Zend_Form_Element_Note"G GZend_Form_Element_Multiselect$F KZend_Form_Element_MultiCheckboxE ;Zend_Form_Element_MultiD ;Zend_Form_Element_ImageC =Zend_Form_Element_HiddenB 9Zend_Form_Element_HashA 9Zend_Form_Element_File @ CZend_Form_Element_Exception? AZend_Form_Element_Checkbox> ?Zend_Form_Element_Captcha= =Zend_Form_Element_Button< 9Zend_Form_DisplayGroup#; IZend_Form_Decorator_ViewScript#: IZend_Form_Decorator_ViewHelper 9 CZend_Form_Decorator_Tooltip(8 SZend_Form_Decorator_PrepareElements7 ?Zend_Form_Decorator_Label6 ?Zend_Form_Decorator_Image 5 CZend_Form_Decorator_HtmlTag#4 IZend_Form_Decorator_FormErrors%3 MZend_Form_Decorator_FormElements2 =Zend_Form_Decorator_Form1 =Zend_Form_Decorator_File!0 EZend_Form_Decorator_Fieldset"/ GZend_Form_Decorator_Exception. AZend_Form_Decorator_Errors$- KZend_Form_Decorator_DtDdWrapper$, KZend_Form_Decorator_Description + CZend_Form_Decorator_Captcha%* MZend_Form_Decorator_Captcha_Word*) WZend_Form_Decorator_Captcha_ReCaptcha!( EZend_Form_Decorator_Callback   a  tIpM)oDV(vM%



c
5
			t	E	rK}V0
^8Z'^5xQ+uW+^;          !r EZend_Gdata_Gapps_MemberEntry q CZend_Gdata_Gapps_GroupQueryp AZend_Gdata_Gapps_GroupFeed o CZend_Gdata_Gapps_GroupEntry%n MZend_Gdata_Gapps_Extension_Quota(m SZend_Gdata_Gapps_Extension_Property(l SZend_Gdata_Gapps_Extension_Nickname$k KZend_Gdata_Gapps_Extension_Name%j MZend_Gdata_Gapps_Extension_Login)i UZend_Gdata_Gapps_Extension_EmailListh 9Zend_Gdata_Gapps_Error-g ]Zend_Gdata_Gapps_EmailListRecipientQuery,f [Zend_Gdata_Gapps_EmailListRecipientFeed-e ]Zend_Gdata_Gapps_EmailListRecipientEntry$d KZend_Gdata_Gapps_EmailListQuery#c IZend_Gdata_Gapps_EmailListFeed$b KZend_Gdata_Gapps_EmailListEntrya +Zend_Gdata_Feed` 5Zend_Gdata_Extension_ =Zend_Gdata_Extension_Who^ AZend_Gdata_Extension_Where] ?Zend_Gdata_Extension_When$\ KZend_Gdata_Extension_Visibility&[ OZend_Gdata_Extension_Transparency"Z GZend_Gdata_Extension_Reminder-Y ]Zend_Gdata_Extension_RecurrenceException$X KZend_Gdata_Extension_Recurrence W CZend_Gdata_Extension_Rating'V QZend_Gdata_Extension_OriginalEvent0U cZend_Gdata_Extension_OpenSearchTotalResults.T _Zend_Gdata_Extension_OpenSearchStartIndex0S cZend_Gdata_Extension_OpenSearchItemsPerPage"R GZend_Gdata_Extension_FeedLink*Q WZend_Gdata_Extension_ExtendedProperty%P MZend_Gdata_Extension_EventStatus#O IZend_Gdata_Extension_EntryLink"N GZend_Gdata_Extension_Comments&M OZend_Gdata_Extension_AttendeeType(L SZend_Gdata_Extension_AttendeeStatusK +Zend_Gdata_ExifJ 5Zend_Gdata_Exif_Feed#I IZend_Gdata_Exif_Extension_Time#H IZend_Gdata_Exif_Extension_Tags$G KZend_Gdata_Exif_Extension_Model#F IZend_Gdata_Exif_Extension_Make"E GZend_Gdata_Exif_Extension_Iso,D [Zend_Gdata_Exif_Extension_ImageUniqueId$C KZend_Gdata_Exif_Extension_FStop*B WZend_Gdata_Exif_Extension_FocalLength$A KZend_Gdata_Exif_Extension_Flash'@ QZend_Gdata_Exif_Extension_Exposure'? QZend_Gdata_Exif_Extension_Distance> 7Zend_Gdata_Exif_Entry= -Zend_Gdata_Entry< 7Zend_Gdata_DublinCore*; WZend_Gdata_DublinCore_Extension_Title,: [Zend_Gdata_DublinCore_Extension_Subject+9 YZend_Gdata_DublinCore_Extension_Rights.8 _Zend_Gdata_DublinCore_Extension_Publisher-7 ]Zend_Gdata_DublinCore_Extension_Language/6 aZend_Gdata_DublinCore_Extension_Identifier+5 YZend_Gdata_DublinCore_Extension_Format04 cZend_Gdata_DublinCore_Extension_Description)3 UZend_Gdata_DublinCore_Extension_Date,2 [Zend_Gdata_DublinCore_Extension_Creator1 +Zend_Gdata_Docs0 7Zend_Gdata_Docs_Query%/ MZend_Gdata_Docs_DocumentListFeed&. OZend_Gdata_Docs_DocumentListEntry- 9Zend_Gdata_ClientLogin, 3Zend_Gdata_Calendar!+ EZend_Gdata_Calendar_ListFeed"* GZend_Gdata_Calendar_ListEntry-) ]Zend_Gdata_Calendar_Extension_WebContent+( YZend_Gdata_Calendar_Extension_Timezone9' uZend_Gdata_Calendar_Extension_SendEventNotifications+& YZend_Gdata_Calendar_Extension_Selected+% YZend_Gdata_Calendar_Extension_QuickAdd'$ QZend_Gdata_Calendar_Extension_Link)# UZend_Gdata_Calendar_Extension_Hidden(" SZend_Gdata_Calendar_Extension_Color.! _Zend_Gdata_Calendar_Extension_AccessLevel#  IZend_Gdata_Calendar_EventQuery" GZend_Gdata_Calendar_EventFeed# IZend_Gdata_Calendar_EventEntry -Zend_Gdata_Books! EZend_Gdata_Books_VolumeQuery  CZend_Gdata_Books_VolumeFeed! EZend_Gdata_Books_VolumeEntry+ YZend_Gdata_Books_Extension_Viewability- ]Zend_Gdata_Books_Extension_ThumbnailLink& OZend_Gdata_Books_Extension_Review+ YZend_Gdata_Books_Extension_PreviewLink( SZend_Gdata_Books_Extension_InfoLink- ]Zend_Gdata_Books_Extension_Embeddability) UZend_Gdata_Books_Extension_BooksLink- ]Zend_Gdata_Books_Extension_BooksCategory   d  nH%wV4nL.	`7mC




l
J
,				n	;	V#|dB!uK m8_3yImE\:     V CZend_Gdata_Photos_UserQueryU AZend_Gdata_Photos_UserFeed T CZend_Gdata_Photos_UserEntryS AZend_Gdata_Photos_TagEntry!R EZend_Gdata_Photos_PhotoQuery Q CZend_Gdata_Photos_PhotoFeed!P EZend_Gdata_Photos_PhotoEntry&O OZend_Gdata_Photos_Extension_Width'N QZend_Gdata_Photos_Extension_Weight(M SZend_Gdata_Photos_Extension_Version%L MZend_Gdata_Photos_Extension_User*K WZend_Gdata_Photos_Extension_Timestamp*J WZend_Gdata_Photos_Extension_Thumbnail%I MZend_Gdata_Photos_Extension_Size)H UZend_Gdata_Photos_Extension_Rotation+G YZend_Gdata_Photos_Extension_QuotaLimit-F ]Zend_Gdata_Photos_Extension_QuotaCurrent)E UZend_Gdata_Photos_Extension_Position(D SZend_Gdata_Photos_Extension_PhotoId3C iZend_Gdata_Photos_Extension_NumPhotosRemaining*B WZend_Gdata_Photos_Extension_NumPhotos)A UZend_Gdata_Photos_Extension_Nickname%@ MZend_Gdata_Photos_Extension_Name2? gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum)> UZend_Gdata_Photos_Extension_Location#= IZend_Gdata_Photos_Extension_Id'< QZend_Gdata_Photos_Extension_Height2; gZend_Gdata_Photos_Extension_CommentingEnabled-: ]Zend_Gdata_Photos_Extension_CommentCount'9 QZend_Gdata_Photos_Extension_Client)8 UZend_Gdata_Photos_Extension_Checksum*7 WZend_Gdata_Photos_Extension_BytesUsed(6 SZend_Gdata_Photos_Extension_AlbumId'5 QZend_Gdata_Photos_Extension_Access#4 IZend_Gdata_Photos_CommentEntry!3 EZend_Gdata_Photos_AlbumQuery 2 CZend_Gdata_Photos_AlbumFeed!1 EZend_Gdata_Photos_AlbumEntry0 3Zend_Gdata_MimeFile/ ?Zend_Gdata_MimeBodyString. AZend_Gdata_MediaMimeStream- -Zend_Gdata_Media, 7Zend_Gdata_Media_Feed*+ WZend_Gdata_Media_Extension_MediaTitle.* _Zend_Gdata_Media_Extension_MediaThumbnail)) UZend_Gdata_Media_Extension_MediaText0( cZend_Gdata_Media_Extension_MediaRestriction+' YZend_Gdata_Media_Extension_MediaRating+& YZend_Gdata_Media_Extension_MediaPlayer-% ]Zend_Gdata_Media_Extension_MediaKeywords)$ UZend_Gdata_Media_Extension_MediaHash*# WZend_Gdata_Media_Extension_MediaGroup0" cZend_Gdata_Media_Extension_MediaDescription+! YZend_Gdata_Media_Extension_MediaCredit.  _Zend_Gdata_Media_Extension_MediaCopyright, [Zend_Gdata_Media_Extension_MediaContent- ]Zend_Gdata_Media_Extension_MediaCategory 9Zend_Gdata_Media_Entry AZend_Gdata_Kind_EventEntry 7Zend_Gdata_HttpClient* WZend_Gdata_HttpAdapterStreamingSocket) UZend_Gdata_HttpAdapterStreamingProxy /Zend_Gdata_Health ;Zend_Gdata_Health_Query& OZend_Gdata_Health_ProfileListFeed' QZend_Gdata_Health_ProfileListEntry" GZend_Gdata_Health_ProfileFeed# IZend_Gdata_Health_ProfileEntry$ KZend_Gdata_Health_Extension_Ccr )Zend_Gdata_Geo 3Zend_Gdata_Geo_Feed$ KZend_Gdata_Geo_Extension_GmlPos& OZend_Gdata_Geo_Extension_GmlPoint) UZend_Gdata_Geo_Extension_GeoRssWhere 5Zend_Gdata_Geo_Entry -Zend_Gdata_Gbase"
 GZend_Gdata_Gbase_SnippetQuery!	 EZend_Gdata_Gbase_SnippetFeed" GZend_Gdata_Gbase_SnippetEntry 9Zend_Gdata_Gbase_Query AZend_Gdata_Gbase_ItemQuery ?Zend_Gdata_Gbase_ItemFeed AZend_Gdata_Gbase_ItemEntry 7Zend_Gdata_Gbase_Feed- ]Zend_Gdata_Gbase_Extension_BaseAttribute 9Zend_Gdata_Gbase_Entry  -Zend_Gdata_Gapps AZend_Gdata_Gapps_UserQuery~ ?Zend_Gdata_Gapps_UserFeed} AZend_Gdata_Gapps_UserEntry&| OZend_Gdata_Gapps_ServiceException{ 9Zend_Gdata_Gapps_Query z CZend_Gdata_Gapps_OwnerQueryy AZend_Gdata_Gapps_OwnerFeed x CZend_Gdata_Gapps_OwnerEntry#w IZend_Gdata_Gapps_NicknameQuery"v GZend_Gdata_Gapps_NicknameFeed#u IZend_Gdata_Gapps_NicknameEntry!t EZend_Gdata_Gapps_MemberQuery s CZend_Gdata_Gapps_MemberFeed   ^  ~U(f=_2wP*T&



p
D
				c	3	S$j:X.}P$_2_;uN)f3          4 ?Zend_Http_Response_Stream3 AZend_Http_Header_SetCookie!2 EZend_Http_Header_HeaderValue01 cZend_Http_Header_Exception_RuntimeException80 sZend_Http_Header_Exception_InvalidArgumentException/ 3Zend_Http_Exception. 3Zend_Http_CookieJar- -Zend_Http_Cookie, -Zend_Http_Client+ AZend_Http_Client_Exception"* GZend_Http_Client_Adapter_Test$) KZend_Http_Client_Adapter_Socket#( IZend_Http_Client_Adapter_Proxy'' QZend_Http_Client_Adapter_Exception"& GZend_Http_Client_Adapter_Curl% !Zend_Gdata$ 1Zend_Gdata_YouTube"# GZend_Gdata_YouTube_VideoQuery!" EZend_Gdata_YouTube_VideoFeed"! GZend_Gdata_YouTube_VideoEntry(  SZend_Gdata_YouTube_UserProfileEntry( SZend_Gdata_YouTube_SubscriptionFeed) UZend_Gdata_YouTube_SubscriptionEntry) UZend_Gdata_YouTube_PlaylistVideoFeed* WZend_Gdata_YouTube_PlaylistVideoEntry( SZend_Gdata_YouTube_PlaylistListFeed) UZend_Gdata_YouTube_PlaylistListEntry" GZend_Gdata_YouTube_MediaEntry! EZend_Gdata_YouTube_InboxFeed" GZend_Gdata_YouTube_InboxEntry) UZend_Gdata_YouTube_Extension_VideoId* WZend_Gdata_YouTube_Extension_Username* WZend_Gdata_YouTube_Extension_Uploaded' QZend_Gdata_YouTube_Extension_Token( SZend_Gdata_YouTube_Extension_Status, [Zend_Gdata_YouTube_Extension_Statistics' QZend_Gdata_YouTube_Extension_State( SZend_Gdata_YouTube_Extension_School- ]Zend_Gdata_YouTube_Extension_ReleaseDate. _Zend_Gdata_YouTube_Extension_Relationship* WZend_Gdata_YouTube_Extension_Recorded& OZend_Gdata_YouTube_Extension_Racy-
 ]Zend_Gdata_YouTube_Extension_QueryString)	 UZend_Gdata_YouTube_Extension_Private* WZend_Gdata_YouTube_Extension_Position/ aZend_Gdata_YouTube_Extension_PlaylistTitle, [Zend_Gdata_YouTube_Extension_PlaylistId, [Zend_Gdata_YouTube_Extension_Occupation) UZend_Gdata_YouTube_Extension_NoEmbed' QZend_Gdata_YouTube_Extension_Music( SZend_Gdata_YouTube_Extension_Movies- ]Zend_Gdata_YouTube_Extension_MediaRating,  [Zend_Gdata_YouTube_Extension_MediaGroup- ]Zend_Gdata_YouTube_Extension_MediaCredit.~ _Zend_Gdata_YouTube_Extension_MediaContent*} WZend_Gdata_YouTube_Extension_Location&| OZend_Gdata_YouTube_Extension_Link*{ WZend_Gdata_YouTube_Extension_LastName*z WZend_Gdata_YouTube_Extension_Hometown)y UZend_Gdata_YouTube_Extension_Hobbies(x SZend_Gdata_YouTube_Extension_Gender+w YZend_Gdata_YouTube_Extension_FirstName*v WZend_Gdata_YouTube_Extension_Duration-u ]Zend_Gdata_YouTube_Extension_Description+t YZend_Gdata_YouTube_Extension_CountHint)s UZend_Gdata_YouTube_Extension_Control)r UZend_Gdata_YouTube_Extension_Company'q QZend_Gdata_YouTube_Extension_Books%p MZend_Gdata_YouTube_Extension_Age)o UZend_Gdata_YouTube_Extension_AboutMe#n IZend_Gdata_YouTube_ContactFeed$m KZend_Gdata_YouTube_ContactEntry#l IZend_Gdata_YouTube_CommentFeed$k KZend_Gdata_YouTube_CommentEntry$j KZend_Gdata_YouTube_ActivityFeed%i MZend_Gdata_YouTube_ActivityEntryh ;Zend_Gdata_Spreadsheets*g WZend_Gdata_Spreadsheets_WorksheetFeed+f YZend_Gdata_Spreadsheets_WorksheetEntry,e [Zend_Gdata_Spreadsheets_SpreadsheetFeed-d ]Zend_Gdata_Spreadsheets_SpreadsheetEntry&c OZend_Gdata_Spreadsheets_ListQuery%b MZend_Gdata_Spreadsheets_ListFeed&a OZend_Gdata_Spreadsheets_ListEntry/` aZend_Gdata_Spreadsheets_Extension_RowCount-_ ]Zend_Gdata_Spreadsheets_Extension_Custom/^ aZend_Gdata_Spreadsheets_Extension_ColCount+] YZend_Gdata_Spreadsheets_Extension_Cell*\ WZend_Gdata_Spreadsheets_DocumentQuery&[ OZend_Gdata_Spreadsheets_CellQuery%Z MZend_Gdata_Spreadsheets_CellFeed&Y OZend_Gdata_Spreadsheets_CellEntryX -Zend_Gdata_QueryW /Zend_Gdata_Photos   s  zW4KwJu\A+bA



y
\
I
.
					v	U	9	lN/iKT"sN(eR.rX8sU5lI9               ' CZend_Mail_Header_HeaderName& 3Zend_Mail_Exception% Zend_Log $ CZend_Log_Writer_ZendMonitor# 9Zend_Log_Writer_Syslog" 9Zend_Log_Writer_Stream! 5Zend_Log_Writer_Null  5Zend_Log_Writer_Mock 5Zend_Log_Writer_Mail ;Zend_Log_Writer_Firebug 1Zend_Log_Writer_Db =Zend_Log_Writer_Abstract 9Zend_Log_Formatter_Xml ?Zend_Log_Formatter_Simple AZend_Log_Formatter_Firebug  CZend_Log_Formatter_Abstract =Zend_Log_Filter_Suppress =Zend_Log_Filter_Priority ;Zend_Log_Filter_Message =Zend_Log_Filter_Abstract 1Zend_Log_Exception #Zend_Locale -Zend_Locale_Math =Zend_Locale_Math_PhpMath AZend_Locale_Math_Exception 1Zend_Locale_Format 7Zend_Locale_Exception -Zend_Locale_Data! EZend_Locale_Data_Translation
 #Zend_Loader#	 IZend_Loader_StandardAutoloader =Zend_Loader_PluginLoader' QZend_Loader_PluginLoader_Exception 7Zend_Loader_Exception3 iZend_Loader_Exception_InvalidArgumentException# IZend_Loader_ClassMapAutoloader" GZend_Loader_AutoloaderFactory 9Zend_Loader_Autoloader$ KZend_Loader_Autoloader_Resource  Zend_Ldap )Zend_Ldap_Node~ 7Zend_Ldap_Node_Schema#} IZend_Ldap_Node_Schema_OpenLdap/| aZend_Ldap_Node_Schema_ObjectClass_OpenLdap6{ oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectoryz AZend_Ldap_Node_Schema_Item1y eZend_Ldap_Node_Schema_AttributeType_OpenLdap8x sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory*w WZend_Ldap_Node_Schema_ActiveDirectoryv 9Zend_Ldap_Node_RootDse$u KZend_Ldap_Node_RootDse_OpenLdap&t OZend_Ldap_Node_RootDse_eDirectory+s YZend_Ldap_Node_RootDse_ActiveDirectoryr ?Zend_Ldap_Node_Collection$q KZend_Ldap_Node_ChildrenIteratorp ;Zend_Ldap_Node_Abstracto 9Zend_Ldap_Ldif_Encodern -Zend_Ldap_Filterm ;Zend_Ldap_Filter_Stringl 3Zend_Ldap_Filter_Ork 5Zend_Ldap_Filter_Notj 7Zend_Ldap_Filter_Maski =Zend_Ldap_Filter_Logicalh AZend_Ldap_Filter_Exceptiong 5Zend_Ldap_Filter_Andf ?Zend_Ldap_Filter_Abstracte 3Zend_Ldap_Exceptiond %Zend_Ldap_Dnc 3Zend_Ldap_Converter"b GZend_Ldap_Converter_Exceptiona 5Zend_Ldap_Collection*` WZend_Ldap_Collection_Iterator_Default_ 3Zend_Ldap_Attribute^ #Zend_Layout] 7Zend_Layout_Exception)\ UZend_Layout_Controller_Plugin_Layout0[ cZend_Layout_Controller_Action_Helper_LayoutZ Zend_JsonY -Zend_Json_ServerX 5Zend_Json_Server_Smd!W EZend_Json_Server_Smd_ServiceV ?Zend_Json_Server_Response#U IZend_Json_Server_Response_HttpT =Zend_Json_Server_Request"S GZend_Json_Server_Request_HttpR AZend_Json_Server_ExceptionQ 9Zend_Json_Server_ErrorP 9Zend_Json_Server_CacheO )Zend_Json_ExprN 3Zend_Json_ExceptionM /Zend_Json_EncoderL /Zend_Json_DecoderK 3Zend_Http_UserAgent"J GZend_Http_UserAgent_ValidatorI =Zend_Http_UserAgent_Text(H SZend_Http_UserAgent_Storage_Session.G _Zend_Http_UserAgent_Storage_NonPersistent*F WZend_Http_UserAgent_Storage_ExceptionE =Zend_Http_UserAgent_SpamD ?Zend_Http_UserAgent_Probe C CZend_Http_UserAgent_OfflineB AZend_Http_UserAgent_MobileA =Zend_Http_UserAgent_Feed+@ YZend_Http_UserAgent_Features_Exception3? iZend_Http_UserAgent_Features_Adapter_TeraWurfl5> mZend_Http_UserAgent_Features_Adapter_DeviceAtlas2= gZend_Http_UserAgent_Features_Adapter_Browscap"< GZend_Http_UserAgent_Exception; ?Zend_Http_UserAgent_Email : CZend_Http_UserAgent_Desktop 9 CZend_Http_UserAgent_Console 8 CZend_Http_UserAgent_Checker7 ;Zend_Http_UserAgent_Bot'6 QZend_Http_UserAgent_AbstractDevice5 1Zend_Http_Response   t  tQ-oP._A#wS3"tF!




o
R
?
"
					p	M	1	fH'bI.b= pZI,T\:Y/vU4      =Zend_Navigation_Page_Uri =Zend_Navigation_Page_Mvc ?Zend_Navigation_Exception ?Zend_Navigation_Container$ KZend_Mobile_Push_Test_ApnsProxy" GZend_Mobile_Push_Response_Gcm 7Zend_Mobile_Push_Mpns" GZend_Mobile_Push_Message_Mpns( SZend_Mobile_Push_Message_Mpns_Toast' QZend_Mobile_Push_Message_Mpns_Tile& OZend_Mobile_Push_Message_Mpns_Raw! EZend_Mobile_Push_Message_Gcm' QZend_Mobile_Push_Message_Exception" GZend_Mobile_Push_Message_Apns& OZend_Mobile_Push_Message_Abstract 5Zend_Mobile_Push_Gcm AZend_Mobile_Push_Exception1
 eZend_Mobile_Push_Exception_ServerUnavailable-	 ]Zend_Mobile_Push_Exception_QuotaExceeded, [Zend_Mobile_Push_Exception_InvalidTopic, [Zend_Mobile_Push_Exception_InvalidToken3 iZend_Mobile_Push_Exception_InvalidRegistration. _Zend_Mobile_Push_Exception_InvalidPayload0 cZend_Mobile_Push_Exception_InvalidAuthToken3 iZend_Mobile_Push_Exception_DeviceQuotaExceeded 7Zend_Mobile_Push_Apns ?Zend_Mobile_Push_Abstract  7Zend_Mobile_Exception Zend_Mime~ )Zend_Mime_Part} /Zend_Mime_Message| 3Zend_Mime_Exception{ -Zend_Mime_Decodez #Zend_Memoryy /Zend_Memory_Valuex 3Zend_Memory_Managerw 7Zend_Memory_Exceptionv 7Zend_Memory_Container"u GZend_Memory_Container_Movable!t EZend_Memory_Container_Locked!s EZend_Memory_AccessControllerr 3Zend_Measure_Weightq 3Zend_Measure_Volume%p MZend_Measure_Viscosity_Kinematic#o IZend_Measure_Viscosity_Dynamicn 3Zend_Measure_Torquem /Zend_Measure_Timel =Zend_Measure_Temperaturek 1Zend_Measure_Speedj 7Zend_Measure_Pressurei 1Zend_Measure_Powerh 3Zend_Measure_Numberg 9Zend_Measure_Lightnessf 3Zend_Measure_Lengthe ?Zend_Measure_Illuminationd 9Zend_Measure_Frequencyc 1Zend_Measure_Forceb =Zend_Measure_Flow_Volumea 9Zend_Measure_Flow_Mole` 9Zend_Measure_Flow_Mass_ 9Zend_Measure_Exception^ 3Zend_Measure_Energy] 5Zend_Measure_Density\ 5Zend_Measure_Current [ CZend_Measure_Cooking_Weight Z CZend_Measure_Cooking_VolumeY =Zend_Measure_CapacitanceX 3Zend_Measure_BinaryW /Zend_Measure_AreaV 1Zend_Measure_AngleU ?Zend_Measure_AccelerationT 7Zend_Measure_AbstractS #Zend_MarkupR 7Zend_Markup_TokenListQ /Zend_Markup_Token*P WZend_Markup_Renderer_RendererAbstractO ?Zend_Markup_Renderer_Html"N GZend_Markup_Renderer_Html_Url#M IZend_Markup_Renderer_Html_List"L GZend_Markup_Renderer_Html_Img+K YZend_Markup_Renderer_Html_HtmlAbstract#J IZend_Markup_Renderer_Html_Code#I IZend_Markup_Renderer_Exception!H EZend_Markup_Parser_ExceptionG ?Zend_Markup_Parser_BbcodeF 7Zend_Markup_ExceptionE Zend_MailD =Zend_Mail_Transport_Smtp!C EZend_Mail_Transport_SendmailB =Zend_Mail_Transport_File"A GZend_Mail_Transport_Exception!@ EZend_Mail_Transport_Abstract? /Zend_Mail_Storage'> QZend_Mail_Storage_Writable_Maildir= 9Zend_Mail_Storage_Pop3< 9Zend_Mail_Storage_Mbox; ?Zend_Mail_Storage_Maildir: 9Zend_Mail_Storage_Imap9 =Zend_Mail_Storage_Folder"8 GZend_Mail_Storage_Folder_Mbox%7 MZend_Mail_Storage_Folder_Maildir 6 CZend_Mail_Storage_Exception5 AZend_Mail_Storage_Abstract4 ;Zend_Mail_Protocol_Smtp'3 QZend_Mail_Protocol_Smtp_Auth_Plain'2 QZend_Mail_Protocol_Smtp_Auth_Login)1 UZend_Mail_Protocol_Smtp_Auth_Crammd50 ;Zend_Mail_Protocol_Pop3/ ;Zend_Mail_Protocol_Imap!. EZend_Mail_Protocol_Exception - CZend_Mail_Protocol_Abstract, )Zend_Mail_Part+ 3Zend_Mail_Part_File* /Zend_Mail_Message) 9Zend_Mail_Message_File!( EZend_Mail_Header_HeaderValue   s  dAwW)
mI-[:mJ*


z
J
4
					~	\	>	!	`B%hH-eP5Z#oM)nQ1xY3lC#                 " GZend_Pdf_FileParser_Image_Png =Zend_Pdf_FileParser_Font& OZend_Pdf_FileParser_Font_OpenType/ aZend_Pdf_FileParser_Font_OpenType_TrueType
 1Zend_Pdf_Exception	 ;Zend_Pdf_ElementFactory" GZend_Pdf_ElementFactory_Proxy -Zend_Pdf_Element ;Zend_Pdf_Element_String# IZend_Pdf_Element_String_Binary ;Zend_Pdf_Element_Stream AZend_Pdf_Element_Reference% MZend_Pdf_Element_Reference_Table' QZend_Pdf_Element_Reference_Context  ;Zend_Pdf_Element_Object# IZend_Pdf_Element_Object_Stream~ =Zend_Pdf_Element_Numeric} 7Zend_Pdf_Element_Null| 7Zend_Pdf_Element_Name { CZend_Pdf_Element_Dictionaryz =Zend_Pdf_Element_Booleany 9Zend_Pdf_Element_Arrayx 5Zend_Pdf_Destinationw ?Zend_Pdf_Destination_Zoom!v EZend_Pdf_Destination_Unknownu AZend_Pdf_Destination_Named't QZend_Pdf_Destination_FitVertically&s OZend_Pdf_Destination_FitRectangle)r UZend_Pdf_Destination_FitHorizontally2q gZend_Pdf_Destination_FitBoundingBoxVertically4p kZend_Pdf_Destination_FitBoundingBoxHorizontally(o SZend_Pdf_Destination_FitBoundingBoxn =Zend_Pdf_Destination_Fit"m GZend_Pdf_Destination_Explicitl )Zend_Pdf_Colork 1Zend_Pdf_Color_Rgbj 3Zend_Pdf_Color_Htmli =Zend_Pdf_Color_GrayScaleh 3Zend_Pdf_Color_Cmykg 'Zend_Pdf_Cmapf AZend_Pdf_Cmap_TrimmedTable!e EZend_Pdf_Cmap_SegmentToDeltad AZend_Pdf_Cmap_ByteEncoding&c OZend_Pdf_Cmap_ByteEncoding_Staticb +Zend_Pdf_Canvasa =Zend_Pdf_Canvas_Abstract` 3Zend_Pdf_Annotation_ =Zend_Pdf_Annotation_Text^ AZend_Pdf_Annotation_Markup] =Zend_Pdf_Annotation_Link'\ QZend_Pdf_Annotation_FileAttachment[ +Zend_Pdf_ActionZ 3Zend_Pdf_Action_URIY ;Zend_Pdf_Action_UnknownX 7Zend_Pdf_Action_TransW 9Zend_Pdf_Action_ThreadV AZend_Pdf_Action_SubmitFormU 7Zend_Pdf_Action_Sound T CZend_Pdf_Action_SetOCGStateS ?Zend_Pdf_Action_ResetFormR ?Zend_Pdf_Action_RenditionQ 7Zend_Pdf_Action_NamedP 7Zend_Pdf_Action_MovieO 9Zend_Pdf_Action_LaunchN AZend_Pdf_Action_JavaScriptM AZend_Pdf_Action_ImportDataL 5Zend_Pdf_Action_HideK 7Zend_Pdf_Action_GoToRJ 7Zend_Pdf_Action_GoToEI AZend_Pdf_Action_GoTo3DViewH 5Zend_Pdf_Action_GoToG )Zend_Paginator-F ]Zend_Paginator_SerializableLimitIterator*E WZend_Paginator_ScrollingStyle_Sliding*D WZend_Paginator_ScrollingStyle_Jumping*C WZend_Paginator_ScrollingStyle_Elastic&B OZend_Paginator_ScrollingStyle_AllA =Zend_Paginator_Exception @ CZend_Paginator_Adapter_Null$? KZend_Paginator_Adapter_Iterator)> UZend_Paginator_Adapter_DbTableSelect$= KZend_Paginator_Adapter_DbSelect!< EZend_Paginator_Adapter_Array; #Zend_OpenId: 5Zend_OpenId_Provider9 ?Zend_OpenId_Provider_User&8 OZend_OpenId_Provider_User_Session!7 EZend_OpenId_Provider_Storage&6 OZend_OpenId_Provider_Storage_File5 7Zend_OpenId_Extension4 AZend_OpenId_Extension_Sreg3 7Zend_OpenId_Exception2 5Zend_OpenId_Consumer!1 EZend_OpenId_Consumer_Storage&0 OZend_OpenId_Consumer_Storage_File/ !Zend_Oauth. -Zend_Oauth_Token- =Zend_Oauth_Token_Request', QZend_Oauth_Token_AuthorizedRequest+ ;Zend_Oauth_Token_Access+* YZend_Oauth_Signature_SignatureAbstract) =Zend_Oauth_Signature_Rsa#( IZend_Oauth_Signature_Plaintext' ?Zend_Oauth_Signature_Hmac& +Zend_Oauth_Http% ;Zend_Oauth_Http_Utility&$ OZend_Oauth_Http_UserAuthorization!# EZend_Oauth_Http_RequestToken " CZend_Oauth_Http_AccessToken! 5Zend_Oauth_Exception  3Zend_Oauth_Consumer /Zend_Oauth_Config /Zend_Oauth_Client +Zend_Navigation 5Zend_Navigation_Page   h  nI*
vaK2yR/ P$s6


~
?

			Z	!oQ*zY@#yiAoL"yZ/gI7`?#mD%                          v 5Zend_Rest_Controlleru -Zend_Rest_Clientt ;Zend_Rest_Client_Result&s OZend_Rest_Client_Result_Exceptionr AZend_Rest_Client_Exceptionq 'Zend_Registryp =Zend_Reflection_Propertyo ?Zend_Reflection_Parametern 9Zend_Reflection_Methodm =Zend_Reflection_Functionl 5Zend_Reflection_Filek ?Zend_Reflection_Extensionj ?Zend_Reflection_Exceptioni =Zend_Reflection_Docblock!h EZend_Reflection_Docblock_Tag(g SZend_Reflection_Docblock_Tag_Return'f QZend_Reflection_Docblock_Tag_Parame 7Zend_Reflection_Classd !Zend_Queuec 9Zend_Queue_Stomp_Frameb ;Zend_Queue_Stomp_Client'a QZend_Queue_Stomp_Client_Connection` 1Zend_Queue_Message#_ IZend_Queue_Message_PlatformJob ^ CZend_Queue_Message_Iterator] 5Zend_Queue_Exception(\ SZend_Queue_Adapter_PlatformJobQueue[ ;Zend_Queue_Adapter_Null!Z EZend_Queue_Adapter_MemcacheqY 7Zend_Queue_Adapter_Db X CZend_Queue_Adapter_Db_Queue"W GZend_Queue_Adapter_Db_MessageV =Zend_Queue_Adapter_Array'U QZend_Queue_Adapter_AdapterAbstract T CZend_Queue_Adapter_ActivemqS -Zend_ProgressBarR AZend_ProgressBar_ExceptionQ =Zend_ProgressBar_Adapter$P KZend_ProgressBar_Adapter_JsPush$O KZend_ProgressBar_Adapter_JsPull'N QZend_ProgressBar_Adapter_Exception%M MZend_ProgressBar_Adapter_ConsoleL Zend_Pdf!K EZend_Pdf_UpdateInfoContainerJ -Zend_Pdf_TrailerI ;Zend_Pdf_Trailer_KeeperH AZend_Pdf_Trailer_GeneratorG +Zend_Pdf_TargetF )Zend_Pdf_StyleE 7Zend_Pdf_StringParserD /Zend_Pdf_ResourceC ?Zend_Pdf_Resource_Unified#B IZend_Pdf_Resource_ImageFactoryA ;Zend_Pdf_Resource_Image!@ EZend_Pdf_Resource_Image_Tiff ? CZend_Pdf_Resource_Image_Png!> EZend_Pdf_Resource_Image_Jpeg$= KZend_Pdf_Resource_GraphicsState< 9Zend_Pdf_Resource_Font!; EZend_Pdf_Resource_Font_Type0": GZend_Pdf_Resource_Font_Simple+9 YZend_Pdf_Resource_Font_Simple_Standard88 sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats67 oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman76 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic;5 yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic54 mZend_Pdf_Resource_Font_Simple_Standard_TimesBold23 gZend_Pdf_Resource_Font_Simple_Standard_Symbol<2 {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueA1 Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique90 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold5/ mZend_Pdf_Resource_Font_Simple_Standard_Helvetica:. wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique>- Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique7, qZend_Pdf_Resource_Font_Simple_Standard_CourierBold3+ iZend_Pdf_Resource_Font_Simple_Standard_Courier)* UZend_Pdf_Resource_Font_Simple_Parsed2) gZend_Pdf_Resource_Font_Simple_Parsed_TrueType*( WZend_Pdf_Resource_Font_FontDescriptor%' MZend_Pdf_Resource_Font_Extracted#& IZend_Pdf_Resource_Font_CidFont,% [Zend_Pdf_Resource_Font_CidFont_TrueType $ CZend_Pdf_Resource_Extractor$# KZend_Pdf_Resource_ContentStream3" iZend_Pdf_RecursivelyIteratableObjectsContainer! +Zend_Pdf_Parser  'Zend_Pdf_Page -Zend_Pdf_Outline ;Zend_Pdf_Outline_Loaded =Zend_Pdf_Outline_Created /Zend_Pdf_NameTree )Zend_Pdf_Image 'Zend_Pdf_Font ?Zend_Pdf_Filter_RunLength  CZend_Pdf_Filter_Compression$ KZend_Pdf_Filter_Compression_Lzw& OZend_Pdf_Filter_Compression_Flate =Zend_Pdf_Filter_AsciiHex ;Zend_Pdf_Filter_Ascii85" GZend_Pdf_FileParserDataSource) UZend_Pdf_FileParserDataSource_String' QZend_Pdf_FileParserDataSource_File 3Zend_Pdf_FileParser ?Zend_Pdf_FileParser_Image   S  w.o&g4i/rJ




h
J
&				t	F		{RxP0b5 f*b2rFY-o=             %I MZend_Search_Lucene_Search_Weight*H WZend_Search_Lucene_Search_Weight_Term,G [Zend_Search_Lucene_Search_Weight_Phrase/F aZend_Search_Lucene_Search_Weight_MultiTerm+E YZend_Search_Lucene_Search_Weight_Empty-D ]Zend_Search_Lucene_Search_Weight_Boolean)C UZend_Search_Lucene_Search_Similarity1B eZend_Search_Lucene_Search_Similarity_Default)A UZend_Search_Lucene_Search_QueryToken3@ iZend_Search_Lucene_Search_QueryParserException1? eZend_Search_Lucene_Search_QueryParserContext*> WZend_Search_Lucene_Search_QueryParser)= UZend_Search_Lucene_Search_QueryLexer'< QZend_Search_Lucene_Search_QueryHit); UZend_Search_Lucene_Search_QueryEntry.: _Zend_Search_Lucene_Search_QueryEntry_Term29 gZend_Search_Lucene_Search_QueryEntry_Subquery08 cZend_Search_Lucene_Search_QueryEntry_Phrase$7 KZend_Search_Lucene_Search_Query-6 ]Zend_Search_Lucene_Search_Query_Wildcard)5 UZend_Search_Lucene_Search_Query_Term*4 WZend_Search_Lucene_Search_Query_Range23 gZend_Search_Lucene_Search_Query_Preprocessing72 qZend_Search_Lucene_Search_Query_Preprocessing_Term91 uZend_Search_Lucene_Search_Query_Preprocessing_Phrase80 sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy+/ YZend_Search_Lucene_Search_Query_Phrase.. _Zend_Search_Lucene_Search_Query_MultiTerm2- gZend_Search_Lucene_Search_Query_Insignificant*, WZend_Search_Lucene_Search_Query_Fuzzy*+ WZend_Search_Lucene_Search_Query_Empty,* [Zend_Search_Lucene_Search_Query_Boolean2) gZend_Search_Lucene_Search_Highlighter_Default:( wZend_Search_Lucene_Search_BooleanExpressionRecognizer' =Zend_Search_Lucene_Proxy%& MZend_Search_Lucene_PriorityQueue/% aZend_Search_Lucene_Interface_MultiSearcher%$ MZend_Search_Lucene_MultiSearcher## IZend_Search_Lucene_LockManager$" KZend_Search_Lucene_Index_Writer0! cZend_Search_Lucene_Index_TermsPriorityQueue&  OZend_Search_Lucene_Index_TermInfo" GZend_Search_Lucene_Index_Term+ YZend_Search_Lucene_Index_SegmentWriter8 sZend_Search_Lucene_Index_SegmentWriter_StreamWriter: wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter+ YZend_Search_Lucene_Index_SegmentMerger) UZend_Search_Lucene_Index_SegmentInfo' QZend_Search_Lucene_Index_FieldInfo( SZend_Search_Lucene_Index_DocsFilter. _Zend_Search_Lucene_Index_DictionaryLoader! EZend_Search_Lucene_FSMAction 9Zend_Search_Lucene_FSM =Zend_Search_Lucene_Field! EZend_Search_Lucene_Exception  CZend_Search_Lucene_Document% MZend_Search_Lucene_Document_Xlsx% MZend_Search_Lucene_Document_Pptx( SZend_Search_Lucene_Document_OpenXml% MZend_Search_Lucene_Document_Html* WZend_Search_Lucene_Document_Exception% MZend_Search_Lucene_Document_Docx, [Zend_Search_Lucene_Analysis_TokenFilter6
 oZend_Search_Lucene_Analysis_TokenFilter_StopWords7	 qZend_Search_Lucene_Analysis_TokenFilter_ShortWords: wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf86 oZend_Search_Lucene_Analysis_TokenFilter_LowerCase& OZend_Search_Lucene_Analysis_Token) UZend_Search_Lucene_Analysis_Analyzer0 cZend_Search_Lucene_Analysis_Analyzer_Common8 sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumI Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive5 mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8F  Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive8 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumI~ Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive5} mZend_Search_Lucene_Analysis_Analyzer_Common_TextF| Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive{ 7Zend_Search_Exceptionz -Zend_Rest_Servery AZend_Rest_Server_Exceptionx +Zend_Rest_Routew 3Zend_Rest_Exception   a  k=vR*cB+sO+c@




o
K
$				i	?	oFoH"]<h@wN!w>R.mO              1* eZend_Service_DeveloperGarden_BaseUserServiceA) Zend_Service_DeveloperGarden_BaseUserService_AccountBalance( 9Zend_Service_Delicious&' OZend_Service_Delicious_SimplePost$& KZend_Service_Delicious_PostList % CZend_Service_Delicious_Post%$ MZend_Service_Delicious_Exception## IZend_Service_Console_Exception!" EZend_Service_Console_Command7! qZend_Service_Console_Command_ParameterSource_StdIn8  sZend_Service_Console_Command_ParameterSource_Prompt5 mZend_Service_Console_Command_ParameterSource_Env< {Zend_Service_Console_Command_ParameterSource_ConfigFile6 oZend_Service_Console_Command_ParameterSource_Argv  CZend_Service_Audioscrobbler 3Zend_Service_Amazon ;Zend_Service_Amazon_Sqs& OZend_Service_Amazon_Sqs_Exception! EZend_Service_Amazon_SimpleDb* WZend_Service_Amazon_SimpleDb_Response& OZend_Service_Amazon_SimpleDb_Page+ YZend_Service_Amazon_SimpleDb_Exception+ YZend_Service_Amazon_SimpleDb_Attribute' QZend_Service_Amazon_SimilarProduct 9Zend_Service_Amazon_S3" GZend_Service_Amazon_S3_Stream% MZend_Service_Amazon_S3_Exception" GZend_Service_Amazon_ResultSet ?Zend_Service_Amazon_Query! EZend_Service_Amazon_OfferSet ?Zend_Service_Amazon_Offer& OZend_Service_Amazon_ListmaniaList
 =Zend_Service_Amazon_Item	 ?Zend_Service_Amazon_Image" GZend_Service_Amazon_Exception( SZend_Service_Amazon_EditorialReview ;Zend_Service_Amazon_Ec2+ YZend_Service_Amazon_Ec2_Securitygroups% MZend_Service_Amazon_Ec2_Response# IZend_Service_Amazon_Ec2_Region$ KZend_Service_Amazon_Ec2_Keypair% MZend_Service_Amazon_Ec2_Instance-  ]Zend_Service_Amazon_Ec2_Instance_Windows. _Zend_Service_Amazon_Ec2_Instance_Reserved"~ GZend_Service_Amazon_Ec2_Image&} OZend_Service_Amazon_Ec2_Exception&| OZend_Service_Amazon_Ec2_Elasticip { CZend_Service_Amazon_Ec2_Ebs'z QZend_Service_Amazon_Ec2_CloudWatch.y _Zend_Service_Amazon_Ec2_Availabilityzones%x MZend_Service_Amazon_Ec2_Abstract'w QZend_Service_Amazon_CustomerReview'v QZend_Service_Amazon_Authentication*u WZend_Service_Amazon_Authentication_V2*t WZend_Service_Amazon_Authentication_V1*s WZend_Service_Amazon_Authentication_S31r eZend_Service_Amazon_Authentication_Exception$q KZend_Service_Amazon_Accessories!p EZend_Service_Amazon_Abstracto 5Zend_Service_Akismetn 7Zend_Service_Abstractm 9Zend_Server_Reflection'l QZend_Server_Reflection_ReturnValue%k MZend_Server_Reflection_Prototype%j MZend_Server_Reflection_Parameter i CZend_Server_Reflection_Node"h GZend_Server_Reflection_Method$g KZend_Server_Reflection_Function-f ]Zend_Server_Reflection_Function_Abstract%e MZend_Server_Reflection_Exception!d EZend_Server_Reflection_Class!c EZend_Server_Method_Prototype!b EZend_Server_Method_Parameter"a GZend_Server_Method_Definition ` CZend_Server_Method_Callback_ 7Zend_Server_Exception^ 9Zend_Server_Definition] /Zend_Server_Cache\ 5Zend_Server_Abstract[ +Zend_SerializerZ ?Zend_Serializer_Exception!Y EZend_Serializer_Adapter_Wddx)X UZend_Serializer_Adapter_PythonPickle)W UZend_Serializer_Adapter_PhpSerialize$V KZend_Serializer_Adapter_PhpCode!U EZend_Serializer_Adapter_Json%T MZend_Serializer_Adapter_Igbinary!S EZend_Serializer_Adapter_Amf3!R EZend_Serializer_Adapter_Amf0,Q [Zend_Serializer_Adapter_AdapterAbstractP 1Zend_Search_Lucene0O cZend_Search_Lucene_TermStreamsPriorityQueue$N KZend_Search_Lucene_Storage_File+M YZend_Search_Lucene_Storage_File_Memory/L aZend_Search_Lucene_Storage_File_Filesystem)K UZend_Search_Lucene_Storage_Directory4J kZend_Search_Lucene_Storage_Directory_Filesystem   6 y aRT%UH


?			:"qs[Dq%l'A   y     =` }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallA_ Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatusA^ Zend_Service_DeveloperGarden_Request_SmsValidation_ValidateN] Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeywordC\ Zend_Service_DeveloperGarden_Request_SmsValidation_InvalidateL[ Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbersBZ Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract9Y uZend_Service_DeveloperGarden_Request_SendSms_SendSMS>X Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS9W uZend_Service_DeveloperGarden_Request_RequestAbstractIV Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequestEU Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest3T iZend_Service_DeveloperGarden_Request_ExceptionRS %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequestYR 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequestdQ IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequestQP #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequestRO %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequestYN 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequestdM IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequestQL #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequestOK Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequestUJ +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequestUI +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequestVH -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequestaG CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequestZF 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequestTE )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequestRD %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequestYC 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequestQB #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequestQA #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequesta@ CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequestN? Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformationL> Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalanceJ= Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool-< ]Zend_Service_DeveloperGarden_LocalSearch>; Zend_Service_DeveloperGarden_LocalSearch_SearchParameters7: qZend_Service_DeveloperGarden_LocalSearch_Exception,9 [Zend_Service_DeveloperGarden_IpLocation68 oZend_Service_DeveloperGarden_IpLocation_IpAddress+7 YZend_Service_DeveloperGarden_Exception,6 [Zend_Service_DeveloperGarden_Credential05 cZend_Service_DeveloperGarden_ConferenceCallC4 Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatusC3 Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail<2 {Zend_Service_DeveloperGarden_ConferenceCall_Participant:1 wZend_Service_DeveloperGarden_ConferenceCall_ExceptionD0 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceScheduleB/ Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetailC. Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount-- ]Zend_Service_DeveloperGarden_Client_Soap2, gZend_Service_DeveloperGarden_Client_Exception7+ qZend_Service_DeveloperGarden_Client_ClientAbstract   -  p#?rn

W			FYB6jM~2                                                         G Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseL Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationTypeI Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType>
 Zend_Service_DeveloperGarden_Response_IpLocation_CityType4	 kZend_Service_DeveloperGarden_Response_ExceptionT )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponsef MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponseS 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponseT )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponsef MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponseS 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponseU  +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseTypeQ #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse[~ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseTypeW} /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse[| 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseTypeW{ /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse\z 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseTypeXy 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponsegx OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseTypecw GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse`v AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType\u 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseZt 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseTypeVs -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseXr 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseTypeTq )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse_p ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType[o 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseWn /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseTypeSm 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseQl #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstractSk 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponseJj Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseTypegi OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseTypech GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseWg /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponseUf +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponseSe 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse3d iZend_Service_DeveloperGarden_Response_BaseTypeJc Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstractCb Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCallGa Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced   G  n DMiv'


B			R	~P.i1g3	~S&\)pAzY7e=                           +T YZend_Service_Rackspace_Files_Exception/S aZend_Service_Rackspace_Files_ContainerList+R YZend_Service_Rackspace_Files_Container%Q MZend_Service_Rackspace_Exception$P KZend_Service_Rackspace_AbstractO 7Zend_Service_LiveDocx$N KZend_Service_LiveDocx_MailMerge$M KZend_Service_LiveDocx_ExceptionL 3Zend_Service_Flickr"K GZend_Service_Flickr_ResultSetJ AZend_Service_Flickr_ResultI ?Zend_Service_Flickr_ImageH 9Zend_Service_ExceptionG ?Zend_Service_Ebay_Finding)F UZend_Service_Ebay_Finding_Storefront+E YZend_Service_Ebay_Finding_ShippingInfo+D YZend_Service_Ebay_Finding_Set_Abstract,C [Zend_Service_Ebay_Finding_SellingStatus)B UZend_Service_Ebay_Finding_SellerInfo,A [Zend_Service_Ebay_Finding_Search_Result*@ WZend_Service_Ebay_Finding_Search_Item.? _Zend_Service_Ebay_Finding_Search_Item_Set0> cZend_Service_Ebay_Finding_Response_Keywords-= ]Zend_Service_Ebay_Finding_Response_Items2< gZend_Service_Ebay_Finding_Response_Histograms0; cZend_Service_Ebay_Finding_Response_Abstract/: aZend_Service_Ebay_Finding_PaginationOutput*9 WZend_Service_Ebay_Finding_ListingInfo(8 SZend_Service_Ebay_Finding_Exception,7 [Zend_Service_Ebay_Finding_Error_Message)6 UZend_Service_Ebay_Finding_Error_Data-5 ]Zend_Service_Ebay_Finding_Error_Data_Set'4 QZend_Service_Ebay_Finding_Category13 eZend_Service_Ebay_Finding_Category_Histogram52 mZend_Service_Ebay_Finding_Category_Histogram_Set;1 yZend_Service_Ebay_Finding_Category_Histogram_Container%0 MZend_Service_Ebay_Finding_Aspect)/ UZend_Service_Ebay_Finding_Aspect_Set5. mZend_Service_Ebay_Finding_Aspect_Histogram_Value9- uZend_Service_Ebay_Finding_Aspect_Histogram_Value_Set9, uZend_Service_Ebay_Finding_Aspect_Histogram_Container'+ QZend_Service_Ebay_Finding_Abstract * CZend_Service_Ebay_Exception) AZend_Service_Ebay_Abstract+( YZend_Service_DeveloperGarden_VoiceCall/' aZend_Service_DeveloperGarden_SmsValidation)& UZend_Service_DeveloperGarden_SendSms5% mZend_Service_DeveloperGarden_SecurityTokenServer;$ yZend_Service_DeveloperGarden_SecurityTokenServer_CacheK# Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstractL" Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponseP! !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponseG  Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponseJ Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponseK Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2ResponseL Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponseI Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumberW /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponseJ Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponseU +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponseC Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponseC Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstractH Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponseU +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponseQ #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponseI Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception; yZend_Service_DeveloperGarden_Response_ResponseAbstractO Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseTypeK Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseA Zend_Service_DeveloperGarden_Response_IpLocation_RegionTypeK Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseType   R  R&d,_AY1j8



b
9
				a	;	M${O tO)
j2\Jh$kI  L& Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCountersK% Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstract<$ {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogsA# Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstanceD" 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectoriesU! +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogsD  	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSources8 sZend_Service_WindowsAzure_Credentials_SharedKeyLite4 kZend_Service_WindowsAzure_Credentials_SharedKeyA Zend_Service_WindowsAzure_Credentials_SharedAccessSignature4 kZend_Service_WindowsAzure_Credentials_Exception> Zend_Service_WindowsAzure_Credentials_CredentialsAbstract2 gZend_Service_WindowsAzure_CommandLine_Storage2 gZend_Service_WindowsAzure_CommandLine_Service !ScaffolderW /Zend_Service_WindowsAzure_CommandLine_PackageScaffolder_PackageScaffolderAbstract2 gZend_Service_WindowsAzure_CommandLine_PackageD 	Zend_Service_WindowsAzure_CommandLine_GetAsynchronousOperation5 mZend_Service_WindowsAzure_CommandLine_Deployment6 oZend_Service_WindowsAzure_CommandLine_Certificate 5Zend_Service_Twitter" GZend_Service_Twitter_Response# IZend_Service_Twitter_Exception ;Zend_Service_Technorati# IZend_Service_Technorati_Weblog" GZend_Service_Technorati_Utils* WZend_Service_Technorati_TagsResultSet' QZend_Service_Technorati_TagsResult)
 UZend_Service_Technorati_TagResultSet&	 OZend_Service_Technorati_TagResult, [Zend_Service_Technorati_SearchResultSet) UZend_Service_Technorati_SearchResult& OZend_Service_Technorati_ResultSet# IZend_Service_Technorati_Result* WZend_Service_Technorati_KeyInfoResult* WZend_Service_Technorati_GetInfoResult& OZend_Service_Technorati_Exception1 eZend_Service_Technorati_DailyCountsResultSet.  _Zend_Service_Technorati_DailyCountsResult, [Zend_Service_Technorati_CosmosResultSet)~ UZend_Service_Technorati_CosmosResult+} YZend_Service_Technorati_BlogInfoResult#| IZend_Service_Technorati_Author{ ;Zend_Service_StrikeIron(z SZend_Service_StrikeIron_ZipCodeInfo2y gZend_Service_StrikeIron_USAddressVerification-x ]Zend_Service_StrikeIron_SalesUseTaxBasic&w OZend_Service_StrikeIron_Exception&v OZend_Service_StrikeIron_Decorator!u EZend_Service_StrikeIron_Base;t yZend_Service_SqlAzure_Management_ServiceEntityAbstract4s kZend_Service_SqlAzure_Management_ServerInstance:r wZend_Service_SqlAzure_Management_FirewallRuleInstance/q aZend_Service_SqlAzure_Management_Exception,p [Zend_Service_SqlAzure_Management_Client$o KZend_Service_SqlAzure_Exceptionn ;Zend_Service_SlideShare&m OZend_Service_SlideShare_SlideShow&l OZend_Service_SlideShare_Exception%k MZend_Service_ShortUrl_TinyUrlCom&j OZend_Service_ShortUrl_MetamarkNet!i EZend_Service_ShortUrl_JdemCzh AZend_Service_ShortUrl_IsGd$g KZend_Service_ShortUrl_Exception f CZend_Service_ShortUrl_BitLy,e [Zend_Service_ShortUrl_AbstractShortenerd 9Zend_Service_ReCaptcha$c KZend_Service_ReCaptcha_Response$b KZend_Service_ReCaptcha_MailHide.a _Zend_Service_ReCaptcha_MailHide_Exception%` MZend_Service_ReCaptcha_Exception#_ IZend_Service_Rackspace_Servers5^ mZend_Service_Rackspace_Servers_SharedIpGroupList1] eZend_Service_Rackspace_Servers_SharedIpGroup.\ _Zend_Service_Rackspace_Servers_ServerList*[ WZend_Service_Rackspace_Servers_Server-Z ]Zend_Service_Rackspace_Servers_ImageList)Y UZend_Service_Rackspace_Servers_Image-X ]Zend_Service_Rackspace_Servers_Exception!W EZend_Service_Rackspace_Files,V [Zend_Service_Rackspace_Files_ObjectList(U SZend_Service_Rackspace_Files_Object   O  d-uJc#{8k&


T
			s	C	s<W(BmD$|V-jF uW9lX0               u AZend_Soap_Client_Exceptiont ;Zend_Soap_Client_DotNets ;Zend_Soap_Client_Commonr 9Zend_Soap_AutoDiscover%q MZend_Soap_AutoDiscover_Exceptionp %Zend_Session)o UZend_Session_Validator_HttpUserAgent%n MZend_Session_Validator_Exception$m KZend_Session_Validator_Abstract'l QZend_Session_SaveHandler_Exception%k MZend_Session_SaveHandler_DbTablej 9Zend_Session_Namespacei 9Zend_Session_Exceptionh 7Zend_Session_Abstractg 1Zend_Service_Yahoo$f KZend_Service_Yahoo_WebResultSet!e EZend_Service_Yahoo_WebResult&d OZend_Service_Yahoo_VideoResultSet#c IZend_Service_Yahoo_VideoResult!b EZend_Service_Yahoo_ResultSeta ?Zend_Service_Yahoo_Result)` UZend_Service_Yahoo_PageDataResultSet&_ OZend_Service_Yahoo_PageDataResult%^ MZend_Service_Yahoo_NewsResultSet"] GZend_Service_Yahoo_NewsResult&\ OZend_Service_Yahoo_LocalResultSet#[ IZend_Service_Yahoo_LocalResult+Z YZend_Service_Yahoo_InlinkDataResultSet(Y SZend_Service_Yahoo_InlinkDataResult&X OZend_Service_Yahoo_ImageResultSet#W IZend_Service_Yahoo_ImageResultV =Zend_Service_Yahoo_Image&U OZend_Service_WindowsAzure_Storage4T kZend_Service_WindowsAzure_Storage_TableInstance7S qZend_Service_WindowsAzure_Storage_TableEntityQuery2R gZend_Service_WindowsAzure_Storage_TableEntity,Q [Zend_Service_WindowsAzure_Storage_Table<P {Zend_Service_WindowsAzure_Storage_StorageEntityAbstract7O qZend_Service_WindowsAzure_Storage_SignedIdentifier3N iZend_Service_WindowsAzure_Storage_QueueMessage4M kZend_Service_WindowsAzure_Storage_QueueInstance,L [Zend_Service_WindowsAzure_Storage_Queue9K uZend_Service_WindowsAzure_Storage_PageRegionInstance4J kZend_Service_WindowsAzure_Storage_LeaseInstance9I uZend_Service_WindowsAzure_Storage_DynamicTableEntity3H iZend_Service_WindowsAzure_Storage_BlobInstance4G kZend_Service_WindowsAzure_Storage_BlobContainer+F YZend_Service_WindowsAzure_Storage_Blob2E gZend_Service_WindowsAzure_Storage_Blob_Stream;D yZend_Service_WindowsAzure_Storage_BatchStorageAbstract,C [Zend_Service_WindowsAzure_Storage_Batch-B ]Zend_Service_WindowsAzure_SessionHandler>A Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract1@ eZend_Service_WindowsAzure_RetryPolicy_RetryN2? gZend_Service_WindowsAzure_RetryPolicy_NoRetry4> kZend_Service_WindowsAzure_RetryPolicy_ExceptionH= Zend_Service_WindowsAzure_Management_SubscriptionOperationInstanceA< Zend_Service_WindowsAzure_Management_StorageServiceInstance@; Zend_Service_WindowsAzure_Management_ServiceEntityAbstractB: Zend_Service_WindowsAzure_Management_OperationStatusInstanceB9 Zend_Service_WindowsAzure_Management_OperatingSystemInstanceH8 Zend_Service_WindowsAzure_Management_OperatingSystemFamilyInstance:7 wZend_Service_WindowsAzure_Management_LocationInstance@6 Zend_Service_WindowsAzure_Management_HostedServiceInstance35 iZend_Service_WindowsAzure_Management_Exception<4 {Zend_Service_WindowsAzure_Management_DeploymentInstance03 cZend_Service_WindowsAzure_Management_Client=2 }Zend_Service_WindowsAzure_Management_CertificateInstance@1 Zend_Service_WindowsAzure_Management_AffinityGroupInstance60 oZend_Service_WindowsAzure_Log_Writer_WindowsAzure9/ uZend_Service_WindowsAzure_Log_Formatter_WindowsAzure,. [Zend_Service_WindowsAzure_Log_Exception(- SZend_Service_WindowsAzure_ExceptionJ, Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscription2+ gZend_Service_WindowsAzure_Diagnostics_Manager3* iZend_Service_WindowsAzure_Diagnostics_LogLevel4) kZend_Service_WindowsAzure_Diagnostics_ExceptionN( Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscriptionH' Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLog   ^  rR*uC-
wQ'{aL3pA



Y
&				[	1	
~Mn?a8u`9S\x=q*         1S eZend_Tool_Framework_Client_Storage_Directory(R SZend_Tool_Framework_Client_ResponseDQ 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator'P QZend_Tool_Framework_Client_Request(O SZend_Tool_Framework_Client_Manifest9N uZend_Tool_Framework_Client_Interactive_InputResponse8M sZend_Tool_Framework_Client_Interactive_InputRequest8L sZend_Tool_Framework_Client_Interactive_InputHandler)K UZend_Tool_Framework_Client_Exception'J QZend_Tool_Framework_Client_ConsoleDI 	Zend_Tool_Framework_Client_Console_ResponseDecorator_IndentionDH 	Zend_Tool_Framework_Client_Console_ResponseDecorator_ColorizerCG Zend_Tool_Framework_Client_Console_ResponseDecorator_BlockizeFF Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter0E cZend_Tool_Framework_Client_Console_Manifest2D gZend_Tool_Framework_Client_Console_HelpSystem6C oZend_Tool_Framework_Client_Console_ArgumentParser&B OZend_Tool_Framework_Client_Config(A SZend_Tool_Framework_Client_Abstract*@ WZend_Tool_Framework_Action_Repository)? UZend_Tool_Framework_Action_Exception$> KZend_Tool_Framework_Action_Base= 'Zend_TimeSync< 1Zend_TimeSync_Sntp; 9Zend_TimeSync_Protocol: /Zend_TimeSync_Ntp9 ;Zend_TimeSync_Exception8 +Zend_Text_Table7 3Zend_Text_Table_Row6 ?Zend_Text_Table_Exception&5 OZend_Text_Table_Decorator_Unicode$4 KZend_Text_Table_Decorator_Ascii3 9Zend_Text_Table_Column2 3Zend_Text_MultiByte1 -Zend_Text_Figlet0 AZend_Text_Figlet_Exception/ 3Zend_Text_Exception&. OZend_Test_PHPUnit_Db_SimpleTester,- [Zend_Test_PHPUnit_Db_Operation_Truncate*, WZend_Test_PHPUnit_Db_Operation_Insert-+ ]Zend_Test_PHPUnit_Db_Operation_DeleteAll** WZend_Test_PHPUnit_Db_Metadata_Generic#) IZend_Test_PHPUnit_Db_Exception,( [Zend_Test_PHPUnit_Db_DataSet_QueryTable.' _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet0& cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet)% UZend_Test_PHPUnit_Db_DataSet_DbTable*$ WZend_Test_PHPUnit_Db_DataSet_DbRowset$# KZend_Test_PHPUnit_Db_Connection'" QZend_Test_PHPUnit_DatabaseTestCase)! UZend_Test_PHPUnit_ControllerTestCase2  gZend_Test_PHPUnit_Constraint_ResponseHeader412 gZend_Test_PHPUnit_Constraint_ResponseHeader372 gZend_Test_PHPUnit_Constraint_ResponseHeader340 cZend_Test_PHPUnit_Constraint_ResponseHeader, [Zend_Test_PHPUnit_Constraint_Redirect41, [Zend_Test_PHPUnit_Constraint_Redirect37, [Zend_Test_PHPUnit_Constraint_Redirect34* WZend_Test_PHPUnit_Constraint_Redirect+ YZend_Test_PHPUnit_Constraint_Exception, [Zend_Test_PHPUnit_Constraint_DomQuery41, [Zend_Test_PHPUnit_Constraint_DomQuery37, [Zend_Test_PHPUnit_Constraint_DomQuery34* WZend_Test_PHPUnit_Constraint_DomQuery 7Zend_Test_DbStatement 3Zend_Test_DbAdapter /Zend_Tag_ItemList 'Zend_Tag_Item 1Zend_Tag_Exception )Zend_Tag_Cloud =Zend_Tag_Cloud_Exception! EZend_Tag_Cloud_Decorator_Tag% MZend_Tag_Cloud_Decorator_HtmlTag'
 QZend_Tag_Cloud_Decorator_HtmlCloud'	 QZend_Tag_Cloud_Decorator_Exception# IZend_Tag_Cloud_Decorator_Cloud! EZend_Stdlib_SplPriorityQueue -SplPriorityQueue ?Zend_Stdlib_PriorityQueue3 iZend_Stdlib_Exception_InvalidCallbackException  CZend_Stdlib_CallbackHandler )Zend_Soap_Wsdl/ aZend_Soap_Wsdl_Strategy_DefaultComplexType&  OZend_Soap_Wsdl_Strategy_Composite0 cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence/~ aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex$} KZend_Soap_Wsdl_Strategy_AnyType%| MZend_Soap_Wsdl_Strategy_Abstract{ =Zend_Soap_Wsdl_Exceptionz -Zend_Soap_Servery 9Zend_Soap_Server_Proxyx AZend_Soap_Server_Exceptionw -Zend_Soap_Clientv 9Zend_Soap_Client_Local   L  XvIf9\,k8


a
6
			n	5PyFvDMwByEj6K                                                               4 kZend_Tool_Project_Context_Zf_TemporaryDirectory3 iZend_Tool_Project_Context_Zf_SessionsDirectory3 iZend_Tool_Project_Context_Zf_ServicesDirectory8 sZend_Tool_Project_Context_Zf_SearchIndexesDirectory< {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory8 sZend_Tool_Project_Context_Zf_PublicScriptsDirectory1 eZend_Tool_Project_Context_Zf_PublicIndexFile7 qZend_Tool_Project_Context_Zf_PublicImagesDirectory1 eZend_Tool_Project_Context_Zf_PublicDirectory5 mZend_Tool_Project_Context_Zf_ProjectProviderFile2 gZend_Tool_Project_Context_Zf_ModulesDirectory1 eZend_Tool_Project_Context_Zf_ModuleDirectory1 eZend_Tool_Project_Context_Zf_ModelsDirectory+ YZend_Tool_Project_Context_Zf_ModelFile/ aZend_Tool_Project_Context_Zf_LogsDirectory2 gZend_Tool_Project_Context_Zf_LocalesDirectory2 gZend_Tool_Project_Context_Zf_LibraryDirectory2 gZend_Tool_Project_Context_Zf_LayoutsDirectory8 sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory2 gZend_Tool_Project_Context_Zf_LayoutScriptFile. _Zend_Tool_Project_Context_Zf_HtaccessFile0
 cZend_Tool_Project_Context_Zf_FormsDirectory*	 WZend_Tool_Project_Context_Zf_FormFile/ aZend_Tool_Project_Context_Zf_DocsDirectory- ]Zend_Tool_Project_Context_Zf_DbTableFile2 gZend_Tool_Project_Context_Zf_DbTableDirectory/ aZend_Tool_Project_Context_Zf_DataDirectory6 oZend_Tool_Project_Context_Zf_ControllersDirectory0 cZend_Tool_Project_Context_Zf_ControllerFile2 gZend_Tool_Project_Context_Zf_ConfigsDirectory, [Zend_Tool_Project_Context_Zf_ConfigFile0  cZend_Tool_Project_Context_Zf_CacheDirectory/ aZend_Tool_Project_Context_Zf_BootstrapFile6~ oZend_Tool_Project_Context_Zf_ApplicationDirectory7} qZend_Tool_Project_Context_Zf_ApplicationConfigFile/| aZend_Tool_Project_Context_Zf_ApisDirectory.{ _Zend_Tool_Project_Context_Zf_ActionMethod3z iZend_Tool_Project_Context_Zf_AbstractClassFile@y Zend_Tool_Project_Context_System_ProjectProvidersDirectory8x sZend_Tool_Project_Context_System_ProjectProfileFile6w oZend_Tool_Project_Context_System_ProjectDirectory)v UZend_Tool_Project_Context_Repository.u _Zend_Tool_Project_Context_Filesystem_File3t iZend_Tool_Project_Context_Filesystem_Directory2s gZend_Tool_Project_Context_Filesystem_Abstract(r SZend_Tool_Project_Context_Exception-q ]Zend_Tool_Project_Context_Content_Engine3p iZend_Tool_Project_Context_Content_Engine_Phtml;o yZend_Tool_Project_Context_Content_Engine_CodeGenerator0n cZend_Tool_Framework_System_Provider_Version0m cZend_Tool_Framework_System_Provider_Phpinfo1l eZend_Tool_Framework_System_Provider_Manifest/k aZend_Tool_Framework_System_Provider_Config(j SZend_Tool_Framework_System_Manifest-i ]Zend_Tool_Framework_System_Action_Delete-h ]Zend_Tool_Framework_System_Action_Create!g EZend_Tool_Framework_Registry+f YZend_Tool_Framework_Registry_Exception+e YZend_Tool_Framework_Provider_Signature,d [Zend_Tool_Framework_Provider_Repository+c YZend_Tool_Framework_Provider_Exception*b WZend_Tool_Framework_Provider_Abstract&a OZend_Tool_Framework_Metadata_Tool)` UZend_Tool_Framework_Metadata_Dynamic'_ QZend_Tool_Framework_Metadata_Basic,^ [Zend_Tool_Framework_Manifest_Repository2] gZend_Tool_Framework_Manifest_ProviderMetadata*\ WZend_Tool_Framework_Manifest_Metadata+[ YZend_Tool_Framework_Manifest_Exception0Z cZend_Tool_Framework_Manifest_ActionMetadata1Y eZend_Tool_Framework_Loader_IncludePathLoaderJX Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator+W YZend_Tool_Framework_Loader_BasicLoader(V SZend_Tool_Framework_Loader_Abstract"U GZend_Tool_Framework_Exception'T QZend_Tool_Framework_Client_Storage   Y  7s.Aby@



P
			h	>	nBqI sL({Y5qaC(iBkI'rE#                                  #x IZend_Validate_Barcode_Leitcode w CZend_Validate_Barcode_Itf14v AZend_Validate_Barcode_Issn*u WZend_Validate_Barcode_IntelligentMail$t KZend_Validate_Barcode_Identcode!s EZend_Validate_Barcode_Gtin14!r EZend_Validate_Barcode_Gtin13!q EZend_Validate_Barcode_Gtin12p AZend_Validate_Barcode_Ean8o AZend_Validate_Barcode_Ean5n AZend_Validate_Barcode_Ean2 m CZend_Validate_Barcode_Ean18 l CZend_Validate_Barcode_Ean14 k CZend_Validate_Barcode_Ean13 j CZend_Validate_Barcode_Ean12$i KZend_Validate_Barcode_Code93ext!h EZend_Validate_Barcode_Code93$g KZend_Validate_Barcode_Code39ext!f EZend_Validate_Barcode_Code39,e [Zend_Validate_Barcode_Code25interleaved!d EZend_Validate_Barcode_Code25*c WZend_Validate_Barcode_AdapterAbstractb 3Zend_Validate_Alphaa 3Zend_Validate_Alnum` 9Zend_Validate_Abstract_ Zend_Uri^ 'Zend_Uri_Http] 1Zend_Uri_Exception\ )Zend_Translate[ 7Zend_Translate_PluralZ =Zend_Translate_ExceptionY 9Zend_Translate_Adapter!X EZend_Translate_Adapter_XmlTm!W EZend_Translate_Adapter_XliffV AZend_Translate_Adapter_TmxU AZend_Translate_Adapter_TbxT ?Zend_Translate_Adapter_QtS AZend_Translate_Adapter_Ini#R IZend_Translate_Adapter_GettextQ AZend_Translate_Adapter_Csv!P EZend_Translate_Adapter_Array$O KZend_Tool_Project_Provider_View$N KZend_Tool_Project_Provider_Test/M aZend_Tool_Project_Provider_ProjectProvider'L QZend_Tool_Project_Provider_Project'K QZend_Tool_Project_Provider_Profile&J OZend_Tool_Project_Provider_Module%I MZend_Tool_Project_Provider_Model(H SZend_Tool_Project_Provider_Manifest&G OZend_Tool_Project_Provider_Layout$F KZend_Tool_Project_Provider_Form)E UZend_Tool_Project_Provider_Exception'D QZend_Tool_Project_Provider_DbTable)C UZend_Tool_Project_Provider_DbAdapter*B WZend_Tool_Project_Provider_Controller+A YZend_Tool_Project_Provider_Application&@ OZend_Tool_Project_Provider_Action(? SZend_Tool_Project_Provider_Abstract> ?Zend_Tool_Project_Profile'= QZend_Tool_Project_Profile_Resource9< uZend_Tool_Project_Profile_Resource_SearchConstraints1; eZend_Tool_Project_Profile_Resource_Container=: }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter59 mZend_Tool_Project_Profile_Iterator_ContextFilter-8 ]Zend_Tool_Project_Profile_FileParser_Xml(7 SZend_Tool_Project_Profile_Exception 6 CZend_Tool_Project_Exception<5 {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory04 cZend_Tool_Project_Context_Zf_ViewsDirectory63 oZend_Tool_Project_Context_Zf_ViewScriptsDirectory02 cZend_Tool_Project_Context_Zf_ViewScriptFile61 oZend_Tool_Project_Context_Zf_ViewHelpersDirectory60 oZend_Tool_Project_Context_Zf_ViewFiltersDirectoryA/ Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory2. gZend_Tool_Project_Context_Zf_UploadsDirectory0- cZend_Tool_Project_Context_Zf_TestsDirectory7, qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile:+ wZend_Tool_Project_Context_Zf_TestPHPUnitBootstrapFile@* Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory1) eZend_Tool_Project_Context_Zf_TestLibraryFile6( oZend_Tool_Project_Context_Zf_TestLibraryDirectory:' wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFileB& Zend_Tool_Project_Context_Zf_TestApplicationModulesDirectoryA% Zend_Tool_Project_Context_Zf_TestApplicationModuleDirectory:$ wZend_Tool_Project_Context_Zf_TestApplicationDirectory@# Zend_Tool_Project_Context_Zf_TestApplicationControllerFileE" Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory>! Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile=  }Zend_Tool_Project_Context_Zf_TestApplicationActionMethod   q nL*}\5sHrK)eA&




x
_
G
-
					s	N	-	fG'fCqO%xU4gE!tO2a6{D                                  5i mZend_View_Helper_Placeholder_Container_Exception4h kZend_View_Helper_Placeholder_Container_Abstract!g EZend_View_Helper_PartialLoopf =Zend_View_Helper_Partial'e QZend_View_Helper_Partial_Exception'd QZend_View_Helper_PaginationControl c CZend_View_Helper_Navigation(b SZend_View_Helper_Navigation_Sitemap%a MZend_View_Helper_Navigation_Menu&` OZend_View_Helper_Navigation_Links/_ aZend_View_Helper_Navigation_HelperAbstract,^ [Zend_View_Helper_Navigation_Breadcrumbs] ;Zend_View_Helper_Layout\ 7Zend_View_Helper_Json"[ GZend_View_Helper_InlineScript#Z IZend_View_Helper_HtmlQuicktimeY ?Zend_View_Helper_HtmlPage X CZend_View_Helper_HtmlObjectW ?Zend_View_Helper_HtmlListV AZend_View_Helper_HtmlFlash!U EZend_View_Helper_HtmlElementT AZend_View_Helper_HeadTitleS AZend_View_Helper_HeadStyle R CZend_View_Helper_HeadScriptQ ?Zend_View_Helper_HeadMetaP ?Zend_View_Helper_HeadLinkO ?Zend_View_Helper_Gravatar"N GZend_View_Helper_FormTextareaM ?Zend_View_Helper_FormText L CZend_View_Helper_FormSubmit K CZend_View_Helper_FormSelectJ AZend_View_Helper_FormResetI AZend_View_Helper_FormRadio"H GZend_View_Helper_FormPasswordG ?Zend_View_Helper_FormNote'F QZend_View_Helper_FormMultiCheckboxE AZend_View_Helper_FormLabelD AZend_View_Helper_FormImage C CZend_View_Helper_FormHiddenB ?Zend_View_Helper_FormFile A CZend_View_Helper_FormErrors!@ EZend_View_Helper_FormElement"? GZend_View_Helper_FormCheckbox > CZend_View_Helper_FormButton= 7Zend_View_Helper_Form< ?Zend_View_Helper_Fieldset; =Zend_View_Helper_Doctype!: EZend_View_Helper_DeclareVars9 9Zend_View_Helper_Cycle8 ?Zend_View_Helper_Currency7 =Zend_View_Helper_BaseUrl6 ;Zend_View_Helper_Action5 ?Zend_View_Helper_Abstract4 3Zend_View_Exception3 1Zend_View_Abstract2 %Zend_Version1 'Zend_Validate0 AZend_Validate_StringLength#/ IZend_Validate_Sitemap_Priority. ?Zend_Validate_Sitemap_Loc"- GZend_Validate_Sitemap_Lastmod%, MZend_Validate_Sitemap_Changefreq+ 3Zend_Validate_Regex* 9Zend_Validate_PostCode) 9Zend_Validate_NotEmpty( 9Zend_Validate_LessThan' 7Zend_Validate_Ldap_Dn& 1Zend_Validate_Isbn% -Zend_Validate_Ip$ /Zend_Validate_Int# 7Zend_Validate_InArray" ;Zend_Validate_Identical! 1Zend_Validate_Iban  9Zend_Validate_Hostname /Zend_Validate_Hex ?Zend_Validate_GreaterThan 3Zend_Validate_Float! EZend_Validate_File_WordCount ?Zend_Validate_File_Upload ;Zend_Validate_File_Size ;Zend_Validate_File_Sha1! EZend_Validate_File_NotExists  CZend_Validate_File_MimeType 9Zend_Validate_File_Md5 AZend_Validate_File_IsImage$ KZend_Validate_File_IsCompressed! EZend_Validate_File_ImageSize ;Zend_Validate_File_Hash! EZend_Validate_File_FilesSize! EZend_Validate_File_Extension ?Zend_Validate_File_Exists' QZend_Validate_File_ExcludeMimeType( SZend_Validate_File_ExcludeExtension =Zend_Validate_File_Crc32 =Zend_Validate_File_Count
 ;Zend_Validate_Exception	 AZend_Validate_EmailAddress 5Zend_Validate_Digits" GZend_Validate_Db_RecordExists$ KZend_Validate_Db_NoRecordExists ?Zend_Validate_Db_Abstract 1Zend_Validate_Date =Zend_Validate_CreditCard 3Zend_Validate_Ccnum 9Zend_Validate_Callback  7Zend_Validate_Between 7Zend_Validate_Barcode~ AZend_Validate_Barcode_Upce} AZend_Validate_Barcode_Upca| AZend_Validate_Barcode_Sscc${ KZend_Validate_Barcode_Royalmail"z GZend_Validate_Barcode_Postnet!y EZend_Validate_Barcode_Planet   l b5cK:qH.rDvO/




r
R
1
					o	M	-	
lS9 xU7gD"a@#zZ8T%{GxT.                                   (U SZend_Application_Resource_Exception#T IZend_Application_Resource_Dojo!S EZend_Application_Resource_Db+R YZend_Application_Resource_Cachemanager&Q OZend_Application_Module_Bootstrap'P QZend_Application_Module_AutoloaderO AZend_Application_Exception)N UZend_Application_Bootstrap_Exception1M eZend_Application_Bootstrap_BootstrapAbstract)L UZend_Application_Bootstrap_BootstrapK ?Zend_Amf_Value_TraitsInfo-J ]Zend_Amf_Value_Messaging_RemotingMessage*I WZend_Amf_Value_Messaging_ErrorMessage,H [Zend_Amf_Value_Messaging_CommandMessage*G WZend_Amf_Value_Messaging_AsyncMessage-F ]Zend_Amf_Value_Messaging_ArrayCollection0E cZend_Amf_Value_Messaging_AcknowledgeMessage-D ]Zend_Amf_Value_Messaging_AbstractMessage!C EZend_Amf_Value_MessageHeaderB AZend_Amf_Value_MessageBodyA =Zend_Amf_Value_ByteArray@ AZend_Amf_Util_BinaryStream? +Zend_Amf_Server> ?Zend_Amf_Server_Exception= /Zend_Amf_Response< 9Zend_Amf_Response_Http; -Zend_Amf_Request: 7Zend_Amf_Request_Http9 ?Zend_Amf_Parse_TypeLoader8 ?Zend_Amf_Parse_Serializer#7 IZend_Amf_Parse_Resource_Stream(6 SZend_Amf_Parse_Resource_MysqlResult)5 UZend_Amf_Parse_Resource_MysqliResult 4 CZend_Amf_Parse_OutputStream3 AZend_Amf_Parse_InputStream 2 CZend_Amf_Parse_Deserializer#1 IZend_Amf_Parse_Amf3_Serializer%0 MZend_Amf_Parse_Amf3_Deserializer#/ IZend_Amf_Parse_Amf0_Serializer%. MZend_Amf_Parse_Amf0_Deserializer- 1Zend_Amf_Exception, 1Zend_Amf_Constants+ 9Zend_Amf_Auth_Abstract * CZend_Amf_Adobe_Introspector) AZend_Amf_Adobe_DbInspector( 3Zend_Amf_Adobe_Auth' Zend_Acl& 'Zend_Acl_Role% 9Zend_Acl_Role_Registry%$ MZend_Acl_Role_Registry_Exception# /Zend_Acl_Resource" 1Zend_Acl_Exception! /Zend_XmlRpc_Value  =Zend_XmlRpc_Value_Struct =Zend_XmlRpc_Value_String =Zend_XmlRpc_Value_Scalar 7Zend_XmlRpc_Value_Nil ?Zend_XmlRpc_Value_Integer  CZend_XmlRpc_Value_Exception =Zend_XmlRpc_Value_Double AZend_XmlRpc_Value_DateTime! EZend_XmlRpc_Value_Collection ?Zend_XmlRpc_Value_Boolean! EZend_XmlRpc_Value_BigInteger =Zend_XmlRpc_Value_Base64 ;Zend_XmlRpc_Value_Array 1Zend_XmlRpc_Server ?Zend_XmlRpc_Server_System =Zend_XmlRpc_Server_Fault! EZend_XmlRpc_Server_Exception =Zend_XmlRpc_Server_Cache 5Zend_XmlRpc_Response ?Zend_XmlRpc_Response_Http 3Zend_XmlRpc_Request ?Zend_XmlRpc_Request_Stdin
 =Zend_XmlRpc_Request_Http$	 KZend_XmlRpc_Generator_XmlWriter, [Zend_XmlRpc_Generator_GeneratorAbstract& OZend_XmlRpc_Generator_DomDocument /Zend_XmlRpc_Fault 7Zend_XmlRpc_Exception 1Zend_XmlRpc_Client# IZend_XmlRpc_Client_ServerProxy+ YZend_XmlRpc_Client_ServerIntrospection+ YZend_XmlRpc_Client_IntrospectException%  MZend_XmlRpc_Client_HttpException& OZend_XmlRpc_Client_FaultException!~ EZend_XmlRpc_Client_Exception} /Zend_Xml_Security| 1Zend_Xml_Exception&{ OZend_Wildfire_Protocol_JsonStream!z EZend_Wildfire_Plugin_FirePhp.y _Zend_Wildfire_Plugin_FirePhp_TableMessage)x UZend_Wildfire_Plugin_FirePhp_Messagew ;Zend_Wildfire_Exception&v OZend_Wildfire_Channel_HttpHeadersu Zend_Viewt -Zend_View_Streams AZend_View_Helper_UserAgentr 5Zend_View_Helper_Urlq AZend_View_Helper_Translatep AZend_View_Helper_ServerUrl)o UZend_View_Helper_RenderToPlaceholder!n EZend_View_Helper_Placeholder*m WZend_View_Helper_Placeholder_Registry4l kZend_View_Helper_Placeholder_Registry_Exception+k YZend_View_Helper_Placeholder_Container6j oZend_View_Helper_Placeholder_Container_Standalone   Y  >rDs5t?|?	



p
U
.
				v	?	rN2`8c@T%d=]@wU)vL+
             !. EZend_Log_Formatter_Interface- ?Zend_Log_Filter_Interface, ?Zend_Log_FactoryInterface+ ?Zend_Loader_SplAutoloader'* QZend_Loader_PluginLoader_Interface%) MZend_Loader_Autoloader_Interface0( cZend_Ldap_Node_Schema_ObjectClass_Interface2' gZend_Ldap_Node_Schema_AttributeType_Interface & CZend_Http_UserAgent_Storage)% UZend_Http_UserAgent_Features_Adapter$ AZend_Http_UserAgent_Device$# KZend_Http_Client_Adapter_Stream'" QZend_Http_Client_Adapter_Interface! AZend_Gdata_App_MediaSource.  _Zend_Form_Decorator_Marker_File_Interface" GZend_Form_Decorator_Interface 7Zend_Filter_Interface" GZend_Filter_Encrypt_Interface+ YZend_Filter_Compress_CompressInterface0 cZend_Feed_Writer_Renderer_RendererInterface1 eZend_Feed_Writer_Extension_RendererInterface# IZend_Feed_Reader_FeedInterface$ KZend_Feed_Reader_EntryInterface7 qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface- ]Zend_Feed_Pubsubhubbub_CallbackInterface  CZend_Feed_Builder_Interface1 eZend_EventManager_SharedEventCollectionAware, [Zend_EventManager_SharedEventCollection( SZend_EventManager_ListenerAggregate =Zend_EventManager_Filter  CZend_EventManager_Exception( SZend_EventManager_EventManagerAware' QZend_EventManager_EventDescription& OZend_EventManager_EventCollection  CZend_Db_Statement_Interface$ KZend_Currency_CurrencyInterface)
 UZend_Crypt_Math_BigInteger_Interface+	 YZend_Controller_Router_Route_Interface% MZend_Controller_Router_Interface) UZend_Controller_Dispatcher_Interface% MZend_Controller_Action_Interface& OZend_Cloud_StorageService_Adapter$ KZend_Cloud_QueueService_Adapter& OZend_Cloud_Infrastructure_Adapter, [Zend_Cloud_DocumentService_QueryAdapter' QZend_Cloud_DocumentService_Adapter  5Zend_Captcha_Adapter! EZend_Cache_Backend_Interface)~ UZend_Cache_Backend_ExtendedInterface } CZend_Auth_Storage_Interface | CZend_Auth_Adapter_Interface.{ _Zend_Auth_Adapter_Http_Resolver_Interface'z QZend_Application_Resource_Resource4y kZend_Application_Bootstrap_ResourceBootstrapper,x [Zend_Application_Bootstrap_Bootstrapperw ;Zend_Acl_Role_Interface v CZend_Acl_Resource_Interfaceu ?Zend_Acl_Assert_Interface#t IZend_Wildfire_Plugin_Interface$s KZend_Wildfire_Channel_Interfacer 3Zend_View_Interface'q QZend_View_Helper_Navigation_Helperp AZend_View_Helper_Interfaceo ;Zend_Validate_Interface+n YZend_Validate_Barcode_AdapterInterface3m iZend_Tool_Project_Profile_FileParser_Interface:l wZend_Tool_Project_Context_System_TopLevelRestrictable5k mZend_Tool_Project_Context_System_NotOverwritable/j aZend_Tool_Project_Context_System_Interface(i SZend_Tool_Project_Context_Interface+h YZend_Tool_Framework_Registry_Interface2g gZend_Tool_Framework_Registry_EnabledInterface-f ]Zend_Tool_Framework_Provider_Pretendable+e YZend_Tool_Framework_Provider_Interface.d _Zend_Tool_Framework_Provider_Interactable/c aZend_Tool_Framework_Provider_Initializable;b yZend_Tool_Framework_Provider_DocblockManifestInterface+a YZend_Tool_Framework_Metadata_Interface.` _Zend_Tool_Framework_Metadata_Attributable6_ oZend_Tool_Framework_Manifest_ProviderManifestable6^ oZend_Tool_Framework_Manifest_MetadataManifestable+] YZend_Tool_Framework_Manifest_Interface+\ YZend_Tool_Framework_Manifest_Indexable4[ kZend_Tool_Framework_Manifest_ActionManifestable)Z UZend_Tool_Framework_Loader_Interface8Y sZend_Tool_Framework_Client_Storage_AdapterInterfaceDX 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface;W yZend_Tool_Framework_Client_Interactive_OutputInterface:V wZend_Tool_Framework_Client_Interactive_InputInterface   j  Z4\3~^;
gO,pC! 




Z
5
					\	<	bN0`A]8cA!pR9q4xN&
qF                           $? KZend_Cloud_Infrastructure_Image&> OZend_Cloud_Infrastructure_Factory(= SZend_Cloud_Infrastructure_Exception0< cZend_Cloud_Infrastructure_Adapter_Rackspace*; WZend_Cloud_Infrastructure_Adapter_Ec26: oZend_Cloud_Infrastructure_Adapter_AbstractAdapter9 5Zend_Cloud_Exception%8 MZend_Cloud_DocumentService_Query'7 QZend_Cloud_DocumentService_Factory)6 UZend_Cloud_DocumentService_Exception+5 YZend_Cloud_DocumentService_DocumentSet(4 SZend_Cloud_DocumentService_Document43 kZend_Cloud_DocumentService_Adapter_WindowsAzure:2 wZend_Cloud_DocumentService_Adapter_WindowsAzure_Query01 cZend_Cloud_DocumentService_Adapter_SimpleDb60 oZend_Cloud_DocumentService_Adapter_SimpleDb_Query7/ qZend_Cloud_DocumentService_Adapter_AbstractAdapter. AZend_Cloud_AbstractFactory- /Zend_Captcha_Word, 9Zend_Captcha_ReCaptcha+ 1Zend_Captcha_Image* 3Zend_Captcha_Figlet) 9Zend_Captcha_Exception( /Zend_Captcha_Dumb' /Zend_Captcha_Base& !Zend_Cache% 1Zend_Cache_Manager$ =Zend_Cache_Frontend_Page# AZend_Cache_Frontend_Output!" EZend_Cache_Frontend_Function! =Zend_Cache_Frontend_File  ?Zend_Cache_Frontend_Class  CZend_Cache_Frontend_Capture 5Zend_Cache_Exception +Zend_Cache_Core 1Zend_Cache_Backend" GZend_Cache_Backend_ZendServer( SZend_Cache_Backend_ZendServer_ShMem' QZend_Cache_Backend_ZendServer_Disk$ KZend_Cache_Backend_ZendPlatform ?Zend_Cache_Backend_Xcache  CZend_Cache_Backend_WinCache! EZend_Cache_Backend_TwoLevels ;Zend_Cache_Backend_Test ?Zend_Cache_Backend_Static ?Zend_Cache_Backend_Sqlite! EZend_Cache_Backend_Memcached$ KZend_Cache_Backend_Libmemcached ;Zend_Cache_Backend_File! EZend_Cache_Backend_BlackHole 9Zend_Cache_Backend_Apc %Zend_Barcode ?Zend_Barcode_Renderer_Svg+
 YZend_Barcode_Renderer_RendererAbstract	 ?Zend_Barcode_Renderer_Pdf  CZend_Barcode_Renderer_Image$ KZend_Barcode_Renderer_Exception =Zend_Barcode_Object_Upce =Zend_Barcode_Object_Upca" GZend_Barcode_Object_Royalmail  CZend_Barcode_Object_Postnet AZend_Barcode_Object_Planet' QZend_Barcode_Object_ObjectAbstract!  EZend_Barcode_Object_Leitcode ?Zend_Barcode_Object_Itf14"~ GZend_Barcode_Object_Identcode"} GZend_Barcode_Object_Exception| ?Zend_Barcode_Object_Error{ =Zend_Barcode_Object_Ean8z =Zend_Barcode_Object_Ean5y =Zend_Barcode_Object_Ean2x ?Zend_Barcode_Object_Ean13w AZend_Barcode_Object_Code39*v WZend_Barcode_Object_Code25interleavedu AZend_Barcode_Object_Code25 t CZend_Barcode_Object_Code128s 9Zend_Barcode_Exceptionr Zend_Authq ?Zend_Auth_Storage_Session$p KZend_Auth_Storage_NonPersistent o CZend_Auth_Storage_Exceptionn -Zend_Auth_Resultm 3Zend_Auth_Exceptionl =Zend_Auth_Adapter_OpenIdk 9Zend_Auth_Adapter_Ldapj 9Zend_Auth_Adapter_Http)i UZend_Auth_Adapter_Http_Resolver_File.h _Zend_Auth_Adapter_Http_Resolver_Exception g CZend_Auth_Adapter_Exceptionf =Zend_Auth_Adapter_Digeste ?Zend_Auth_Adapter_DbTabled -Zend_Application#c IZend_Application_Resource_View(b SZend_Application_Resource_UserAgent(a SZend_Application_Resource_Translate&` OZend_Application_Resource_Session%_ MZend_Application_Resource_Router/^ aZend_Application_Resource_ResourceAbstract)] UZend_Application_Resource_Navigation&\ OZend_Application_Resource_Multidb&[ OZend_Application_Resource_Modules#Z IZend_Application_Resource_Mail"Y GZend_Application_Resource_Log%X MZend_Application_Resource_Locale%W MZend_Application_Resource_Layout.V _Zend_Application_Resource_Frontcontroller   ^  }L\5}QY6|Q*



]
(
 				q	Y	9	~gO<uD	i6MtI(jAwQ(a9                                   * WZend_Controller_Router_Route_Abstract# IZend_Controller_Router_Rewrite% MZend_Controller_Router_Exception$ KZend_Controller_Router_Abstract* WZend_Controller_Response_HttpTestCase" GZend_Controller_Response_Http' QZend_Controller_Response_Exception! EZend_Controller_Response_Cli& OZend_Controller_Response_Abstract# IZend_Controller_Request_Simple) UZend_Controller_Request_HttpTestCase! EZend_Controller_Request_Http& OZend_Controller_Request_Exception& OZend_Controller_Request_Apache404% MZend_Controller_Request_Abstract& OZend_Controller_Plugin_PutHandler( SZend_Controller_Plugin_ErrorHandler" GZend_Controller_Plugin_Broker' QZend_Controller_Plugin_ActionStack$
 KZend_Controller_Plugin_Abstract	 7Zend_Controller_Front ?Zend_Controller_Exception( SZend_Controller_Dispatcher_Standard) UZend_Controller_Dispatcher_Exception( SZend_Controller_Dispatcher_Abstract 9Zend_Controller_Action( SZend_Controller_Action_HelperBroker6 oZend_Controller_Action_HelperBroker_PriorityStack/ aZend_Controller_Action_Helper_ViewRenderer&  OZend_Controller_Action_Helper_Url- ]Zend_Controller_Action_Helper_Redirector'~ QZend_Controller_Action_Helper_Json1} eZend_Controller_Action_Helper_FlashMessenger0| cZend_Controller_Action_Helper_ContextSwitch({ SZend_Controller_Action_Helper_Cache<z {Zend_Controller_Action_Helper_AutoCompleteScriptaculous3y iZend_Controller_Action_Helper_AutoCompleteDojo8x sZend_Controller_Action_Helper_AutoComplete_Abstract.w _Zend_Controller_Action_Helper_AjaxContext.v _Zend_Controller_Action_Helper_ActionStack+u YZend_Controller_Action_Helper_Abstract%t MZend_Controller_Action_Exceptions 3Zend_Console_Getopt"r GZend_Console_Getopt_Exceptionq #Zend_Configp -Zend_Config_Yamlo +Zend_Config_Xmln 1Zend_Config_Writerm ;Zend_Config_Writer_Yamll 9Zend_Config_Writer_Xmlk ;Zend_Config_Writer_Jsonj 9Zend_Config_Writer_Ini$i KZend_Config_Writer_FileAbstracth =Zend_Config_Writer_Arrayg -Zend_Config_Jsonf +Zend_Config_Inie 7Zend_Config_Exception$d KZend_CodeGenerator_Php_Property1c eZend_CodeGenerator_Php_Property_DefaultValue%b MZend_CodeGenerator_Php_Parameter2a gZend_CodeGenerator_Php_Parameter_DefaultValue"` GZend_CodeGenerator_Php_Method,_ [Zend_CodeGenerator_Php_Member_Container+^ YZend_CodeGenerator_Php_Member_Abstract ] CZend_CodeGenerator_Php_File%\ MZend_CodeGenerator_Php_Exception$[ KZend_CodeGenerator_Php_Docblock(Z SZend_CodeGenerator_Php_Docblock_Tag/Y aZend_CodeGenerator_Php_Docblock_Tag_Return.X _Zend_CodeGenerator_Php_Docblock_Tag_Param0W cZend_CodeGenerator_Php_Docblock_Tag_License!V EZend_CodeGenerator_Php_Class U CZend_CodeGenerator_Php_Body$T KZend_CodeGenerator_Php_Abstract!S EZend_CodeGenerator_Exception R CZend_CodeGenerator_Abstract&Q OZend_Cloud_StorageService_Factory(P SZend_Cloud_StorageService_Exception3O iZend_Cloud_StorageService_Adapter_WindowsAzure)N UZend_Cloud_StorageService_Adapter_S30M cZend_Cloud_StorageService_Adapter_Rackspace1L eZend_Cloud_StorageService_Adapter_FileSystem'K QZend_Cloud_QueueService_MessageSet$J KZend_Cloud_QueueService_Message$I KZend_Cloud_QueueService_Factory&H OZend_Cloud_QueueService_Exception.G _Zend_Cloud_QueueService_Adapter_ZendQueue1F eZend_Cloud_QueueService_Adapter_WindowsAzure(E SZend_Cloud_QueueService_Adapter_Sqs4D kZend_Cloud_QueueService_Adapter_AbstractAdapter.C _Zend_Cloud_OperationNotAvailableException+B YZend_Cloud_Infrastructure_InstanceList'A QZend_Cloud_Infrastructure_Instance(@ SZend_Cloud_Infrastructure_ImageList   p  ~T)~g>rP/jY9jL(




b
A
						j	L	4	mM#zZA#a;uZ'nAiDzQ,wI           * WZend_Dojo_Form_Element_SimpleTextarea' QZend_Dojo_Form_Element_RadioButton+ YZend_Dojo_Form_Element_PasswordTextBox)
 UZend_Dojo_Form_Element_NumberTextBox)	 UZend_Dojo_Form_Element_NumberSpinner, [Zend_Dojo_Form_Element_HorizontalSlider+ YZend_Dojo_Form_Element_FilteringSelect" GZend_Dojo_Form_Element_Editor& OZend_Dojo_Form_Element_DijitMulti! EZend_Dojo_Form_Element_Dijit' QZend_Dojo_Form_Element_DateTextBox+ YZend_Dojo_Form_Element_CurrencyTextBox$ KZend_Dojo_Form_Element_ComboBox$  KZend_Dojo_Form_Element_CheckBox" GZend_Dojo_Form_Element_Button ~ CZend_Dojo_Form_DisplayGroup*} WZend_Dojo_Form_Decorator_TabContainer,| [Zend_Dojo_Form_Decorator_StackContainer,{ [Zend_Dojo_Form_Decorator_SplitContainer'z QZend_Dojo_Form_Decorator_DijitForm*y WZend_Dojo_Form_Decorator_DijitElement,x [Zend_Dojo_Form_Decorator_DijitContainer)w UZend_Dojo_Form_Decorator_ContentPane-v ]Zend_Dojo_Form_Decorator_BorderContainer+u YZend_Dojo_Form_Decorator_AccordionPane0t cZend_Dojo_Form_Decorator_AccordionContainers 3Zend_Dojo_Exceptionr )Zend_Dojo_Dataq 5Zend_Dojo_BuildLayerp !Zend_Debugo Zend_Dbn 'Zend_Db_Tablem 5Zend_Db_Table_Select#l IZend_Db_Table_Select_Exceptionk 5Zend_Db_Table_Rowset#j IZend_Db_Table_Rowset_Exception"i GZend_Db_Table_Rowset_Abstracth /Zend_Db_Table_Row g CZend_Db_Table_Row_Exceptionf AZend_Db_Table_Row_Abstracte ;Zend_Db_Table_Exceptiond =Zend_Db_Table_Definitionc 9Zend_Db_Table_Abstractb /Zend_Db_Statementa =Zend_Db_Statement_Sqlsrv'` QZend_Db_Statement_Sqlsrv_Exception_ 7Zend_Db_Statement_Pdo^ ?Zend_Db_Statement_Pdo_Oci] ?Zend_Db_Statement_Pdo_Ibm\ =Zend_Db_Statement_Oracle'[ QZend_Db_Statement_Oracle_ExceptionZ =Zend_Db_Statement_Mysqli'Y QZend_Db_Statement_Mysqli_Exception X CZend_Db_Statement_ExceptionW 7Zend_Db_Statement_Db2$V KZend_Db_Statement_Db2_ExceptionU )Zend_Db_SelectT =Zend_Db_Select_ExceptionS -Zend_Db_ProfilerR 9Zend_Db_Profiler_QueryQ =Zend_Db_Profiler_FirebugP AZend_Db_Profiler_ExceptionO %Zend_Db_ExprN /Zend_Db_ExceptionM 9Zend_Db_Adapter_Sqlsrv%L MZend_Db_Adapter_Sqlsrv_ExceptionK AZend_Db_Adapter_Pdo_SqliteJ ?Zend_Db_Adapter_Pdo_PgsqlI ;Zend_Db_Adapter_Pdo_OciH ?Zend_Db_Adapter_Pdo_MysqlG ?Zend_Db_Adapter_Pdo_MssqlF ;Zend_Db_Adapter_Pdo_Ibm E CZend_Db_Adapter_Pdo_Ibm_Ids D CZend_Db_Adapter_Pdo_Ibm_Db2!C EZend_Db_Adapter_Pdo_AbstractB 9Zend_Db_Adapter_Oracle%A MZend_Db_Adapter_Oracle_Exception@ 9Zend_Db_Adapter_Mysqli%? MZend_Db_Adapter_Mysqli_Exception> ?Zend_Db_Adapter_Exception= 3Zend_Db_Adapter_Db2"< GZend_Db_Adapter_Db2_Exception; =Zend_Db_Adapter_Abstract: Zend_Date9 3Zend_Date_Exception8 5Zend_Date_DateObject7 -Zend_Date_Cities6 'Zend_Currency5 ;Zend_Currency_Exception4 !Zend_Crypt3 )Zend_Crypt_Rsa2 1Zend_Crypt_Rsa_Key1 ?Zend_Crypt_Rsa_Key_Public0 AZend_Crypt_Rsa_Key_Private/ =Zend_Crypt_Rsa_Exception. +Zend_Crypt_Math- ?Zend_Crypt_Math_Exception, AZend_Crypt_Math_BigInteger#+ IZend_Crypt_Math_BigInteger_Gmp)* UZend_Crypt_Math_BigInteger_Exception&) OZend_Crypt_Math_BigInteger_Bcmath( +Zend_Crypt_Hmac' ?Zend_Crypt_Hmac_Exception& 5Zend_Crypt_Exception% =Zend_Crypt_DiffieHellman'$ QZend_Crypt_DiffieHellman_Exception!# EZend_Controller_Router_Route(" SZend_Controller_Router_Route_Static'! QZend_Controller_Router_Route_Regex(  SZend_Controller_Router_Route_Module* WZend_Controller_Router_Route_Hostname' QZend_Controller_Router_Route_Chain   b  c9	X- g:mK'T'




V
,
				_	3	"	p4xL 
qQ8~V+nE'xU3LQ!                                       ,o [Zend_Feed_Reader_Extension_Podcast_Feed-n ]Zend_Feed_Reader_Extension_Podcast_Entry,m [Zend_Feed_Reader_Extension_FeedAbstract-l ]Zend_Feed_Reader_Extension_EntryAbstract/k aZend_Feed_Reader_Extension_DublinCore_Feed0j cZend_Feed_Reader_Extension_DublinCore_Entry4i kZend_Feed_Reader_Extension_CreativeCommons_Feed5h mZend_Feed_Reader_Extension_CreativeCommons_Entry-g ]Zend_Feed_Reader_Extension_Content_Entry)f UZend_Feed_Reader_Extension_Atom_Feed*e WZend_Feed_Reader_Extension_Atom_Entry#d IZend_Feed_Reader_EntryAbstractc AZend_Feed_Reader_Entry_Rss b CZend_Feed_Reader_Entry_Atom a CZend_Feed_Reader_Collection3` iZend_Feed_Reader_Collection_CollectionAbstract)_ UZend_Feed_Reader_Collection_Category'^ QZend_Feed_Reader_Collection_Author] 9Zend_Feed_Pubsubhubbub&\ OZend_Feed_Pubsubhubbub_Subscriber/[ aZend_Feed_Pubsubhubbub_Subscriber_Callback%Z MZend_Feed_Pubsubhubbub_Publisher.Y _Zend_Feed_Pubsubhubbub_Model_Subscription/X aZend_Feed_Pubsubhubbub_Model_ModelAbstract(W SZend_Feed_Pubsubhubbub_HttpResponse%V MZend_Feed_Pubsubhubbub_Exception,U [Zend_Feed_Pubsubhubbub_CallbackAbstractT 3Zend_Feed_ExceptionS 3Zend_Feed_Entry_RssR 5Zend_Feed_Entry_AtomQ =Zend_Feed_Entry_AbstractP /Zend_Feed_ElementO /Zend_Feed_BuilderN =Zend_Feed_Builder_Header$M KZend_Feed_Builder_Header_Itunes L CZend_Feed_Builder_ExceptionK ;Zend_Feed_Builder_EntryJ )Zend_Feed_AtomI 1Zend_Feed_AbstractH )Zend_Exception)G UZend_EventManager_StaticEventManager)F UZend_EventManager_SharedEventManager)E UZend_EventManager_ResponseCollectionD SplStack)C UZend_EventManager_GlobalEventManager"B GZend_EventManager_FilterChain,A [Zend_EventManager_Filter_FilterIterator9@ uZend_EventManager_Exception_InvalidArgumentException#? IZend_EventManager_EventManager> ;Zend_EventManager_Event= )Zend_Dom_Query< 7Zend_Dom_Query_Result; =Zend_Dom_Query_Css2Xpath: 1Zend_Dom_Exception9 Zend_Dojo)8 UZend_Dojo_View_Helper_VerticalSlider,7 [Zend_Dojo_View_Helper_ValidationTextBox&6 OZend_Dojo_View_Helper_TimeTextBox"5 GZend_Dojo_View_Helper_TextBox#4 IZend_Dojo_View_Helper_Textarea'3 QZend_Dojo_View_Helper_TabContainer'2 QZend_Dojo_View_Helper_SubmitButton)1 UZend_Dojo_View_Helper_StackContainer)0 UZend_Dojo_View_Helper_SplitContainer!/ EZend_Dojo_View_Helper_Slider). UZend_Dojo_View_Helper_SimpleTextarea&- OZend_Dojo_View_Helper_RadioButton*, WZend_Dojo_View_Helper_PasswordTextBox(+ SZend_Dojo_View_Helper_NumberTextBox(* SZend_Dojo_View_Helper_NumberSpinner+) YZend_Dojo_View_Helper_HorizontalSlider( AZend_Dojo_View_Helper_Form*' WZend_Dojo_View_Helper_FilteringSelect!& EZend_Dojo_View_Helper_Editor% AZend_Dojo_View_Helper_Dojo)$ UZend_Dojo_View_Helper_Dojo_Container)# UZend_Dojo_View_Helper_DijitContainer " CZend_Dojo_View_Helper_Dijit&! OZend_Dojo_View_Helper_DateTextBox&  OZend_Dojo_View_Helper_CustomDijit* WZend_Dojo_View_Helper_CurrencyTextBox& OZend_Dojo_View_Helper_ContentPane# IZend_Dojo_View_Helper_ComboBox# IZend_Dojo_View_Helper_CheckBox! EZend_Dojo_View_Helper_Button* WZend_Dojo_View_Helper_BorderContainer( SZend_Dojo_View_Helper_AccordionPane- ]Zend_Dojo_View_Helper_AccordionContainer =Zend_Dojo_View_Exception )Zend_Dojo_Form 9Zend_Dojo_Form_SubForm* WZend_Dojo_Form_Element_VerticalSlider- ]Zend_Dojo_Form_Element_ValidationTextBox' QZend_Dojo_Form_Element_TimeTextBox# IZend_Dojo_Form_Element_TextBox$ KZend_Dojo_Form_Element_Textarea( SZend_Dojo_Form_Element_SubmitButton" GZend_Dojo_Form_Element_Slider   f  p:q\<w; k4P&	


~
F
				n	V	E	#	u\C'dD$~\9^>!hL+
Y+Z2mI%                                     *U WZend_Form_Decorator_Captcha_ReCaptcha!T EZend_Form_Decorator_Callback!S EZend_Form_Decorator_AbstractR #Zend_Filter+Q YZend_Filter_Word_UnderscoreToSeparator&P OZend_Filter_Word_UnderscoreToDash+O YZend_Filter_Word_UnderscoreToCamelCase*N WZend_Filter_Word_SeparatorToSeparator%M MZend_Filter_Word_SeparatorToDash*L WZend_Filter_Word_SeparatorToCamelCase(K SZend_Filter_Word_Separator_Abstract&J OZend_Filter_Word_DashToUnderscore%I MZend_Filter_Word_DashToSeparator%H MZend_Filter_Word_DashToCamelCase+G YZend_Filter_Word_CamelCaseToUnderscore*F WZend_Filter_Word_CamelCaseToSeparator%E MZend_Filter_Word_CamelCaseToDashD 7Zend_Filter_StripTagsC ?Zend_Filter_StripNewlinesB 9Zend_Filter_StringTrimA ?Zend_Filter_StringToUpper@ ?Zend_Filter_StringToLower? 5Zend_Filter_RealPath> ;Zend_Filter_PregReplace= -Zend_Filter_Null&< OZend_Filter_NormalizedToLocalized&; OZend_Filter_LocalizedToNormalized: +Zend_Filter_Int9 /Zend_Filter_Input8 7Zend_Filter_Inflector7 =Zend_Filter_HtmlEntities6 AZend_Filter_File_UpperCase5 ;Zend_Filter_File_Rename4 AZend_Filter_File_LowerCase3 =Zend_Filter_File_Encrypt2 =Zend_Filter_File_Decrypt1 7Zend_Filter_Exception0 3Zend_Filter_Encrypt / CZend_Filter_Encrypt_Openssl. AZend_Filter_Encrypt_Mcrypt- +Zend_Filter_Dir, 1Zend_Filter_Digits+ 3Zend_Filter_Decrypt* 9Zend_Filter_Decompress) 5Zend_Filter_Compress( =Zend_Filter_Compress_Zip' =Zend_Filter_Compress_Tar& =Zend_Filter_Compress_Rar% =Zend_Filter_Compress_Lzf$ ;Zend_Filter_Compress_Gz*# WZend_Filter_Compress_CompressAbstract" =Zend_Filter_Compress_Bz2! 5Zend_Filter_Callback  3Zend_Filter_Boolean 5Zend_Filter_BaseName /Zend_Filter_Alpha /Zend_Filter_Alnum 1Zend_File_Transfer! EZend_File_Transfer_Exception$ KZend_File_Transfer_Adapter_Http( SZend_File_Transfer_Adapter_Abstract 9Zend_File_PhpClassFile AZend_File_ClassFileLocator Zend_Feed -Zend_Feed_Writer ;Zend_Feed_Writer_Source/ aZend_Feed_Writer_Renderer_RendererAbstract' QZend_Feed_Writer_Renderer_Feed_Rss( SZend_Feed_Writer_Renderer_Feed_Atom/ aZend_Feed_Writer_Renderer_Feed_Atom_Source5 mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract( SZend_Feed_Writer_Renderer_Entry_Rss) UZend_Feed_Writer_Renderer_Entry_Atom1 eZend_Feed_Writer_Renderer_Entry_Atom_Deleted 7Zend_Feed_Writer_Feed'
 QZend_Feed_Writer_Feed_FeedAbstract<	 {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry8 sZend_Feed_Writer_Extension_Threading_Renderer_Entry4 kZend_Feed_Writer_Extension_Slash_Renderer_Entry0 cZend_Feed_Writer_Extension_RendererAbstract4 kZend_Feed_Writer_Extension_ITunes_Renderer_Feed5 mZend_Feed_Writer_Extension_ITunes_Renderer_Entry+ YZend_Feed_Writer_Extension_ITunes_Feed, [Zend_Feed_Writer_Extension_ITunes_Entry8 sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed9  uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry6 oZend_Feed_Writer_Extension_Content_Renderer_Entry2~ gZend_Feed_Writer_Extension_Atom_Renderer_Feed6} oZend_Feed_Writer_Exception_InvalidMethodException| 9Zend_Feed_Writer_Entry{ =Zend_Feed_Writer_Deletedz 'Zend_Feed_Rssy -Zend_Feed_Readerx =Zend_Feed_Reader_FeedSet"w GZend_Feed_Reader_FeedAbstractv ?Zend_Feed_Reader_Feed_Rssu AZend_Feed_Reader_Feed_Atom&t OZend_Feed_Reader_Feed_Atom_Source3s iZend_Feed_Reader_Extension_WellFormedWeb_Entry,r [Zend_Feed_Reader_Extension_Thread_Entry0q cZend_Feed_Reader_Extension_Syndication_Feed+p YZend_Feed_Reader_Extension_Slash_Entry   j  gE nK*	oQ1oP1
gG'	




{
j
A
					O	.	d7d;rJ$hC{S.[4iC(Q!                          )? UZend_Gdata_Books_Extension_BooksLink-> ]Zend_Gdata_Books_Extension_BooksCategory.= _Zend_Gdata_Books_Extension_AnnotationLink$< KZend_Gdata_Books_CollectionFeed%; MZend_Gdata_Books_CollectionEntry: 1Zend_Gdata_AuthSub9 )Zend_Gdata_App$8 KZend_Gdata_App_VersionException7 3Zend_Gdata_App_Util#6 IZend_Gdata_App_MediaFileSource5 ?Zend_Gdata_App_MediaEntry24 gZend_Gdata_App_LoggingHttpClientAdapterSocket3 AZend_Gdata_App_IOException,2 [Zend_Gdata_App_InvalidArgumentException!1 EZend_Gdata_App_HttpException$0 KZend_Gdata_App_FeedSourceParent#/ IZend_Gdata_App_FeedEntryParent. 3Zend_Gdata_App_Feed- =Zend_Gdata_App_Extension!, EZend_Gdata_App_Extension_Uri%+ MZend_Gdata_App_Extension_Updated#* IZend_Gdata_App_Extension_Title") GZend_Gdata_App_Extension_Text%( MZend_Gdata_App_Extension_Summary&' OZend_Gdata_App_Extension_Subtitle$& KZend_Gdata_App_Extension_Source$% KZend_Gdata_App_Extension_Rights'$ QZend_Gdata_App_Extension_Published$# KZend_Gdata_App_Extension_Person"" GZend_Gdata_App_Extension_Name"! GZend_Gdata_App_Extension_Logo"  GZend_Gdata_App_Extension_Link  CZend_Gdata_App_Extension_Id" GZend_Gdata_App_Extension_Icon' QZend_Gdata_App_Extension_Generator# IZend_Gdata_App_Extension_Email% MZend_Gdata_App_Extension_Element$ KZend_Gdata_App_Extension_Edited# IZend_Gdata_App_Extension_Draft% MZend_Gdata_App_Extension_Control) UZend_Gdata_App_Extension_Contributor% MZend_Gdata_App_Extension_Content& OZend_Gdata_App_Extension_Category$ KZend_Gdata_App_Extension_Author =Zend_Gdata_App_Exception 5Zend_Gdata_App_Entry, [Zend_Gdata_App_CaptchaRequiredException# IZend_Gdata_App_BaseMediaSource 3Zend_Gdata_App_Base* WZend_Gdata_App_BadMethodCallException! EZend_Gdata_App_AuthException 5Zend_Gdata_Analytics+ YZend_Gdata_Analytics_Extension_TableId,
 [Zend_Gdata_Analytics_Extension_Property*	 WZend_Gdata_Analytics_Extension_Metric ?Zend_Gdata_Analytics_Goal- ]Zend_Gdata_Analytics_Extension_Dimension# IZend_Gdata_Analytics_DataQuery" GZend_Gdata_Analytics_DataFeed# IZend_Gdata_Analytics_DataEntry& OZend_Gdata_Analytics_AccountQuery% MZend_Gdata_Analytics_AccountFeed& OZend_Gdata_Analytics_AccountEntry  Zend_Form /Zend_Form_SubForm~ 3Zend_Form_Exception} /Zend_Form_Element| ;Zend_Form_Element_Xhtml{ AZend_Form_Element_Textareaz 9Zend_Form_Element_Texty =Zend_Form_Element_Submitx =Zend_Form_Element_Selectw ;Zend_Form_Element_Resetv ;Zend_Form_Element_Radiou AZend_Form_Element_Passwordt 9Zend_Form_Element_Note"s GZend_Form_Element_Multiselect$r KZend_Form_Element_MultiCheckboxq ;Zend_Form_Element_Multip ;Zend_Form_Element_Imageo =Zend_Form_Element_Hiddenn 9Zend_Form_Element_Hashm 9Zend_Form_Element_File l CZend_Form_Element_Exceptionk AZend_Form_Element_Checkboxj ?Zend_Form_Element_Captchai =Zend_Form_Element_Buttonh 9Zend_Form_DisplayGroup#g IZend_Form_Decorator_ViewScript#f IZend_Form_Decorator_ViewHelper e CZend_Form_Decorator_Tooltip(d SZend_Form_Decorator_PrepareElementsc ?Zend_Form_Decorator_Labelb ?Zend_Form_Decorator_Image a CZend_Form_Decorator_HtmlTag#` IZend_Form_Decorator_FormErrors%_ MZend_Form_Decorator_FormElements^ =Zend_Form_Decorator_Form] =Zend_Form_Decorator_File!\ EZend_Form_Decorator_Fieldset"[ GZend_Form_Decorator_ExceptionZ AZend_Form_Decorator_Errors$Y KZend_Form_Decorator_DtDdWrapper$X KZend_Form_Decorator_Description W CZend_Form_Decorator_Captcha%V MZend_Form_Decorator_Captcha_Word   a  wNmG"tJT/dM



_
/				t	W	?	"zS$fJ3l?Y6jI'`0_8uR.                              !  EZend_Gdata_Gapps_MemberQuery  CZend_Gdata_Gapps_MemberFeed! EZend_Gdata_Gapps_MemberEntry  CZend_Gdata_Gapps_GroupQuery AZend_Gdata_Gapps_GroupFeed  CZend_Gdata_Gapps_GroupEntry% MZend_Gdata_Gapps_Extension_Quota( SZend_Gdata_Gapps_Extension_Property( SZend_Gdata_Gapps_Extension_Nickname$ KZend_Gdata_Gapps_Extension_Name% MZend_Gdata_Gapps_Extension_Login) UZend_Gdata_Gapps_Extension_EmailList 9Zend_Gdata_Gapps_Error- ]Zend_Gdata_Gapps_EmailListRecipientQuery, [Zend_Gdata_Gapps_EmailListRecipientFeed- ]Zend_Gdata_Gapps_EmailListRecipientEntry$ KZend_Gdata_Gapps_EmailListQuery# IZend_Gdata_Gapps_EmailListFeed$ KZend_Gdata_Gapps_EmailListEntry +Zend_Gdata_Feed 5Zend_Gdata_Extension =Zend_Gdata_Extension_Who
 AZend_Gdata_Extension_Where	 ?Zend_Gdata_Extension_When$ KZend_Gdata_Extension_Visibility& OZend_Gdata_Extension_Transparency" GZend_Gdata_Extension_Reminder- ]Zend_Gdata_Extension_RecurrenceException$ KZend_Gdata_Extension_Recurrence  CZend_Gdata_Extension_Rating' QZend_Gdata_Extension_OriginalEvent0 cZend_Gdata_Extension_OpenSearchTotalResults.  _Zend_Gdata_Extension_OpenSearchStartIndex0 cZend_Gdata_Extension_OpenSearchItemsPerPage"~ GZend_Gdata_Extension_FeedLink*} WZend_Gdata_Extension_ExtendedProperty%| MZend_Gdata_Extension_EventStatus#{ IZend_Gdata_Extension_EntryLink"z GZend_Gdata_Extension_Comments&y OZend_Gdata_Extension_AttendeeType(x SZend_Gdata_Extension_AttendeeStatusw +Zend_Gdata_Exifv 5Zend_Gdata_Exif_Feed#u IZend_Gdata_Exif_Extension_Time#t IZend_Gdata_Exif_Extension_Tags$s KZend_Gdata_Exif_Extension_Model#r IZend_Gdata_Exif_Extension_Make"q GZend_Gdata_Exif_Extension_Iso,p [Zend_Gdata_Exif_Extension_ImageUniqueId$o KZend_Gdata_Exif_Extension_FStop*n WZend_Gdata_Exif_Extension_FocalLength$m KZend_Gdata_Exif_Extension_Flash'l QZend_Gdata_Exif_Extension_Exposure'k QZend_Gdata_Exif_Extension_Distancej 7Zend_Gdata_Exif_Entryi -Zend_Gdata_Entryh 7Zend_Gdata_DublinCore*g WZend_Gdata_DublinCore_Extension_Title,f [Zend_Gdata_DublinCore_Extension_Subject+e YZend_Gdata_DublinCore_Extension_Rights.d _Zend_Gdata_DublinCore_Extension_Publisher-c ]Zend_Gdata_DublinCore_Extension_Language/b aZend_Gdata_DublinCore_Extension_Identifier+a YZend_Gdata_DublinCore_Extension_Format0` cZend_Gdata_DublinCore_Extension_Description)_ UZend_Gdata_DublinCore_Extension_Date,^ [Zend_Gdata_DublinCore_Extension_Creator] +Zend_Gdata_Docs\ 7Zend_Gdata_Docs_Query%[ MZend_Gdata_Docs_DocumentListFeed&Z OZend_Gdata_Docs_DocumentListEntryY 9Zend_Gdata_ClientLoginX 3Zend_Gdata_Calendar!W EZend_Gdata_Calendar_ListFeed"V GZend_Gdata_Calendar_ListEntry-U ]Zend_Gdata_Calendar_Extension_WebContent+T YZend_Gdata_Calendar_Extension_Timezone9S uZend_Gdata_Calendar_Extension_SendEventNotifications+R YZend_Gdata_Calendar_Extension_Selected+Q YZend_Gdata_Calendar_Extension_QuickAdd'P QZend_Gdata_Calendar_Extension_Link)O UZend_Gdata_Calendar_Extension_Hidden(N SZend_Gdata_Calendar_Extension_Color.M _Zend_Gdata_Calendar_Extension_AccessLevel#L IZend_Gdata_Calendar_EventQuery"K GZend_Gdata_Calendar_EventFeed#J IZend_Gdata_Calendar_EventEntryI -Zend_Gdata_Books!H EZend_Gdata_Books_VolumeQuery G CZend_Gdata_Books_VolumeFeed!F EZend_Gdata_Books_VolumeEntry+E YZend_Gdata_Books_Extension_Viewability-D ]Zend_Gdata_Books_Extension_ThumbnailLink&C OZend_Gdata_Books_Extension_Review+B YZend_Gdata_Books_Extension_PreviewLink(A SZend_Gdata_Books_Extension_InfoLink-@ ]Zend_Gdata_Books_Extension_Embeddability   d  lJ'	{cEuP,~W<&aB)




s
C
				U	)j>hM)g:U/zMb6a7^<                           -Zend_Gdata_Query /Zend_Gdata_Photos  CZend_Gdata_Photos_UserQuery AZend_Gdata_Photos_UserFeed   CZend_Gdata_Photos_UserEntry AZend_Gdata_Photos_TagEntry!~ EZend_Gdata_Photos_PhotoQuery } CZend_Gdata_Photos_PhotoFeed!| EZend_Gdata_Photos_PhotoEntry&{ OZend_Gdata_Photos_Extension_Width'z QZend_Gdata_Photos_Extension_Weight(y SZend_Gdata_Photos_Extension_Version%x MZend_Gdata_Photos_Extension_User*w WZend_Gdata_Photos_Extension_Timestamp*v WZend_Gdata_Photos_Extension_Thumbnail%u MZend_Gdata_Photos_Extension_Size)t UZend_Gdata_Photos_Extension_Rotation+s YZend_Gdata_Photos_Extension_QuotaLimit-r ]Zend_Gdata_Photos_Extension_QuotaCurrent)q UZend_Gdata_Photos_Extension_Position(p SZend_Gdata_Photos_Extension_PhotoId3o iZend_Gdata_Photos_Extension_NumPhotosRemaining*n WZend_Gdata_Photos_Extension_NumPhotos)m UZend_Gdata_Photos_Extension_Nickname%l MZend_Gdata_Photos_Extension_Name2k gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum)j UZend_Gdata_Photos_Extension_Location#i IZend_Gdata_Photos_Extension_Id'h QZend_Gdata_Photos_Extension_Height2g gZend_Gdata_Photos_Extension_CommentingEnabled-f ]Zend_Gdata_Photos_Extension_CommentCount'e QZend_Gdata_Photos_Extension_Client)d UZend_Gdata_Photos_Extension_Checksum*c WZend_Gdata_Photos_Extension_BytesUsed(b SZend_Gdata_Photos_Extension_AlbumId'a QZend_Gdata_Photos_Extension_Access#` IZend_Gdata_Photos_CommentEntry!_ EZend_Gdata_Photos_AlbumQuery ^ CZend_Gdata_Photos_AlbumFeed!] EZend_Gdata_Photos_AlbumEntry\ 3Zend_Gdata_MimeFile[ ?Zend_Gdata_MimeBodyStringZ AZend_Gdata_MediaMimeStreamY -Zend_Gdata_MediaX 7Zend_Gdata_Media_Feed*W WZend_Gdata_Media_Extension_MediaTitle.V _Zend_Gdata_Media_Extension_MediaThumbnail)U UZend_Gdata_Media_Extension_MediaText0T cZend_Gdata_Media_Extension_MediaRestriction+S YZend_Gdata_Media_Extension_MediaRating+R YZend_Gdata_Media_Extension_MediaPlayer-Q ]Zend_Gdata_Media_Extension_MediaKeywords)P UZend_Gdata_Media_Extension_MediaHash*O WZend_Gdata_Media_Extension_MediaGroup0N cZend_Gdata_Media_Extension_MediaDescription+M YZend_Gdata_Media_Extension_MediaCredit.L _Zend_Gdata_Media_Extension_MediaCopyright,K [Zend_Gdata_Media_Extension_MediaContent-J ]Zend_Gdata_Media_Extension_MediaCategoryI 9Zend_Gdata_Media_EntryH AZend_Gdata_Kind_EventEntryG 7Zend_Gdata_HttpClient*F WZend_Gdata_HttpAdapterStreamingSocket)E UZend_Gdata_HttpAdapterStreamingProxyD /Zend_Gdata_HealthC ;Zend_Gdata_Health_Query&B OZend_Gdata_Health_ProfileListFeed'A QZend_Gdata_Health_ProfileListEntry"@ GZend_Gdata_Health_ProfileFeed#? IZend_Gdata_Health_ProfileEntry$> KZend_Gdata_Health_Extension_Ccr= )Zend_Gdata_Geo< 3Zend_Gdata_Geo_Feed$; KZend_Gdata_Geo_Extension_GmlPos&: OZend_Gdata_Geo_Extension_GmlPoint)9 UZend_Gdata_Geo_Extension_GeoRssWhere8 5Zend_Gdata_Geo_Entry7 -Zend_Gdata_Gbase"6 GZend_Gdata_Gbase_SnippetQuery!5 EZend_Gdata_Gbase_SnippetFeed"4 GZend_Gdata_Gbase_SnippetEntry3 9Zend_Gdata_Gbase_Query2 AZend_Gdata_Gbase_ItemQuery1 ?Zend_Gdata_Gbase_ItemFeed0 AZend_Gdata_Gbase_ItemEntry/ 7Zend_Gdata_Gbase_Feed-. ]Zend_Gdata_Gbase_Extension_BaseAttribute- 9Zend_Gdata_Gbase_Entry, -Zend_Gdata_Gapps+ AZend_Gdata_Gapps_UserQuery* ?Zend_Gdata_Gapps_UserFeed) AZend_Gdata_Gapps_UserEntry&( OZend_Gdata_Gapps_ServiceException' 9Zend_Gdata_Gapps_Query & CZend_Gdata_Gapps_OwnerQuery% AZend_Gdata_Gapps_OwnerFeed $ CZend_Gdata_Gapps_OwnerEntry## IZend_Gdata_Gapps_NicknameQuery"" GZend_Gdata_Gapps_NicknameFeed#! IZend_Gdata_Gapps_NicknameEntry   ]  Y+nFcD[/W'



u
H
				d	5	U&kB_0U0c7lG-Z8 d@                                   a 1Zend_Http_Response` ?Zend_Http_Response_Stream_ AZend_Http_Header_SetCookie!^ EZend_Http_Header_HeaderValue0] cZend_Http_Header_Exception_RuntimeException8\ sZend_Http_Header_Exception_InvalidArgumentException[ 3Zend_Http_ExceptionZ 3Zend_Http_CookieJarY -Zend_Http_CookieX -Zend_Http_ClientW AZend_Http_Client_Exception"V GZend_Http_Client_Adapter_Test$U KZend_Http_Client_Adapter_Socket#T IZend_Http_Client_Adapter_Proxy'S QZend_Http_Client_Adapter_Exception"R GZend_Http_Client_Adapter_CurlQ !Zend_GdataP 1Zend_Gdata_YouTube"O GZend_Gdata_YouTube_VideoQuery!N EZend_Gdata_YouTube_VideoFeed"M GZend_Gdata_YouTube_VideoEntry(L SZend_Gdata_YouTube_UserProfileEntry(K SZend_Gdata_YouTube_SubscriptionFeed)J UZend_Gdata_YouTube_SubscriptionEntry)I UZend_Gdata_YouTube_PlaylistVideoFeed*H WZend_Gdata_YouTube_PlaylistVideoEntry(G SZend_Gdata_YouTube_PlaylistListFeed)F UZend_Gdata_YouTube_PlaylistListEntry"E GZend_Gdata_YouTube_MediaEntry!D EZend_Gdata_YouTube_InboxFeed"C GZend_Gdata_YouTube_InboxEntry)B UZend_Gdata_YouTube_Extension_VideoId*A WZend_Gdata_YouTube_Extension_Username*@ WZend_Gdata_YouTube_Extension_Uploaded'? QZend_Gdata_YouTube_Extension_Token(> SZend_Gdata_YouTube_Extension_Status,= [Zend_Gdata_YouTube_Extension_Statistics'< QZend_Gdata_YouTube_Extension_State(; SZend_Gdata_YouTube_Extension_School-: ]Zend_Gdata_YouTube_Extension_ReleaseDate.9 _Zend_Gdata_YouTube_Extension_Relationship*8 WZend_Gdata_YouTube_Extension_Recorded&7 OZend_Gdata_YouTube_Extension_Racy-6 ]Zend_Gdata_YouTube_Extension_QueryString)5 UZend_Gdata_YouTube_Extension_Private*4 WZend_Gdata_YouTube_Extension_Position/3 aZend_Gdata_YouTube_Extension_PlaylistTitle,2 [Zend_Gdata_YouTube_Extension_PlaylistId,1 [Zend_Gdata_YouTube_Extension_Occupation)0 UZend_Gdata_YouTube_Extension_NoEmbed'/ QZend_Gdata_YouTube_Extension_Music(. SZend_Gdata_YouTube_Extension_Movies-- ]Zend_Gdata_YouTube_Extension_MediaRating,, [Zend_Gdata_YouTube_Extension_MediaGroup-+ ]Zend_Gdata_YouTube_Extension_MediaCredit.* _Zend_Gdata_YouTube_Extension_MediaContent*) WZend_Gdata_YouTube_Extension_Location&( OZend_Gdata_YouTube_Extension_Link*' WZend_Gdata_YouTube_Extension_LastName*& WZend_Gdata_YouTube_Extension_Hometown)% UZend_Gdata_YouTube_Extension_Hobbies($ SZend_Gdata_YouTube_Extension_Gender+# YZend_Gdata_YouTube_Extension_FirstName*" WZend_Gdata_YouTube_Extension_Duration-! ]Zend_Gdata_YouTube_Extension_Description+  YZend_Gdata_YouTube_Extension_CountHint) UZend_Gdata_YouTube_Extension_Control) UZend_Gdata_YouTube_Extension_Company' QZend_Gdata_YouTube_Extension_Books% MZend_Gdata_YouTube_Extension_Age) UZend_Gdata_YouTube_Extension_AboutMe# IZend_Gdata_YouTube_ContactFeed$ KZend_Gdata_YouTube_ContactEntry# IZend_Gdata_YouTube_CommentFeed$ KZend_Gdata_YouTube_CommentEntry$ KZend_Gdata_YouTube_ActivityFeed% MZend_Gdata_YouTube_ActivityEntry ;Zend_Gdata_Spreadsheets* WZend_Gdata_Spreadsheets_WorksheetFeed+ YZend_Gdata_Spreadsheets_WorksheetEntry, [Zend_Gdata_Spreadsheets_SpreadsheetFeed- ]Zend_Gdata_Spreadsheets_SpreadsheetEntry& OZend_Gdata_Spreadsheets_ListQuery% MZend_Gdata_Spreadsheets_ListFeed& OZend_Gdata_Spreadsheets_ListEntry/ aZend_Gdata_Spreadsheets_Extension_RowCount- ]Zend_Gdata_Spreadsheets_Extension_Custom/
 aZend_Gdata_Spreadsheets_Extension_ColCount+	 YZend_Gdata_Spreadsheets_Extension_Cell* WZend_Gdata_Spreadsheets_DocumentQuery& OZend_Gdata_Spreadsheets_CellQuery% MZend_Gdata_Spreadsheets_CellFeed& OZend_Gdata_Spreadsheets_CellEntry   s  qN-e7d3v[E'	|[7



v
c
H
						o	S	1	hI"e8n<hBlH0rR3oO5cS8    !T EZend_Mail_Header_HeaderValue S CZend_Mail_Header_HeaderNameR 3Zend_Mail_ExceptionQ Zend_Log P CZend_Log_Writer_ZendMonitorO 9Zend_Log_Writer_SyslogN 9Zend_Log_Writer_StreamM 5Zend_Log_Writer_NullL 5Zend_Log_Writer_MockK 5Zend_Log_Writer_MailJ ;Zend_Log_Writer_FirebugI 1Zend_Log_Writer_DbH =Zend_Log_Writer_AbstractG 9Zend_Log_Formatter_XmlF ?Zend_Log_Formatter_SimpleE AZend_Log_Formatter_Firebug D CZend_Log_Formatter_AbstractC =Zend_Log_Filter_SuppressB =Zend_Log_Filter_PriorityA ;Zend_Log_Filter_Message@ =Zend_Log_Filter_Abstract? 1Zend_Log_Exception> #Zend_Locale= -Zend_Locale_Math< =Zend_Locale_Math_PhpMath; AZend_Locale_Math_Exception: 1Zend_Locale_Format9 7Zend_Locale_Exception8 -Zend_Locale_Data!7 EZend_Locale_Data_Translation6 #Zend_Loader#5 IZend_Loader_StandardAutoloader4 =Zend_Loader_PluginLoader'3 QZend_Loader_PluginLoader_Exception2 7Zend_Loader_Exception31 iZend_Loader_Exception_InvalidArgumentException#0 IZend_Loader_ClassMapAutoloader"/ GZend_Loader_AutoloaderFactory. 9Zend_Loader_Autoloader$- KZend_Loader_Autoloader_Resource, Zend_Ldap+ )Zend_Ldap_Node* 7Zend_Ldap_Node_Schema#) IZend_Ldap_Node_Schema_OpenLdap/( aZend_Ldap_Node_Schema_ObjectClass_OpenLdap6' oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectory& AZend_Ldap_Node_Schema_Item1% eZend_Ldap_Node_Schema_AttributeType_OpenLdap8$ sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory*# WZend_Ldap_Node_Schema_ActiveDirectory" 9Zend_Ldap_Node_RootDse$! KZend_Ldap_Node_RootDse_OpenLdap&  OZend_Ldap_Node_RootDse_eDirectory+ YZend_Ldap_Node_RootDse_ActiveDirectory ?Zend_Ldap_Node_Collection$ KZend_Ldap_Node_ChildrenIterator ;Zend_Ldap_Node_Abstract 9Zend_Ldap_Ldif_Encoder -Zend_Ldap_Filter ;Zend_Ldap_Filter_String 3Zend_Ldap_Filter_Or 5Zend_Ldap_Filter_Not 7Zend_Ldap_Filter_Mask =Zend_Ldap_Filter_Logical AZend_Ldap_Filter_Exception 5Zend_Ldap_Filter_And ?Zend_Ldap_Filter_Abstract 3Zend_Ldap_Exception %Zend_Ldap_Dn 3Zend_Ldap_Converter" GZend_Ldap_Converter_Exception 5Zend_Ldap_Collection* WZend_Ldap_Collection_Iterator_Default 3Zend_Ldap_Attribute
 #Zend_Layout	 7Zend_Layout_Exception) UZend_Layout_Controller_Plugin_Layout0 cZend_Layout_Controller_Action_Helper_Layout Zend_Json -Zend_Json_Server 5Zend_Json_Server_Smd! EZend_Json_Server_Smd_Service ?Zend_Json_Server_Response# IZend_Json_Server_Response_Http  =Zend_Json_Server_Request" GZend_Json_Server_Request_Http~ AZend_Json_Server_Exception} 9Zend_Json_Server_Error| 9Zend_Json_Server_Cache{ )Zend_Json_Exprz 3Zend_Json_Exceptiony /Zend_Json_Encoderx /Zend_Json_Decoderw 3Zend_Http_UserAgent"v GZend_Http_UserAgent_Validatoru =Zend_Http_UserAgent_Text(t SZend_Http_UserAgent_Storage_Session.s _Zend_Http_UserAgent_Storage_NonPersistent*r WZend_Http_UserAgent_Storage_Exceptionq =Zend_Http_UserAgent_Spamp ?Zend_Http_UserAgent_Probe o CZend_Http_UserAgent_Offlinen AZend_Http_UserAgent_Mobilem =Zend_Http_UserAgent_Feed+l YZend_Http_UserAgent_Features_Exception3k iZend_Http_UserAgent_Features_Adapter_TeraWurfl5j mZend_Http_UserAgent_Features_Adapter_DeviceAtlas2i gZend_Http_UserAgent_Features_Adapter_Browscap"h GZend_Http_UserAgent_Exceptiong ?Zend_Http_UserAgent_Email f CZend_Http_UserAgent_Desktop e CZend_Http_UserAgent_Console d CZend_Http_UserAgent_Checkerc ;Zend_Http_UserAgent_Bot'b QZend_Http_UserAgent_AbstractDevice   t  uQ2tR/eGwWF)jE




v
c
F
%
					q	U	9		 lK0mR,aD'~mP/xB^B}S(yX8             H 5Zend_Navigation_PageG =Zend_Navigation_Page_UriF =Zend_Navigation_Page_MvcE ?Zend_Navigation_ExceptionD ?Zend_Navigation_Container$C KZend_Mobile_Push_Test_ApnsProxy"B GZend_Mobile_Push_Response_GcmA 7Zend_Mobile_Push_Mpns"@ GZend_Mobile_Push_Message_Mpns(? SZend_Mobile_Push_Message_Mpns_Toast'> QZend_Mobile_Push_Message_Mpns_Tile&= OZend_Mobile_Push_Message_Mpns_Raw!< EZend_Mobile_Push_Message_Gcm'; QZend_Mobile_Push_Message_Exception": GZend_Mobile_Push_Message_Apns&9 OZend_Mobile_Push_Message_Abstract8 5Zend_Mobile_Push_Gcm7 AZend_Mobile_Push_Exception16 eZend_Mobile_Push_Exception_ServerUnavailable-5 ]Zend_Mobile_Push_Exception_QuotaExceeded,4 [Zend_Mobile_Push_Exception_InvalidTopic,3 [Zend_Mobile_Push_Exception_InvalidToken32 iZend_Mobile_Push_Exception_InvalidRegistration.1 _Zend_Mobile_Push_Exception_InvalidPayload00 cZend_Mobile_Push_Exception_InvalidAuthToken3/ iZend_Mobile_Push_Exception_DeviceQuotaExceeded. 7Zend_Mobile_Push_Apns- ?Zend_Mobile_Push_Abstract, 7Zend_Mobile_Exception+ Zend_Mime* )Zend_Mime_Part) /Zend_Mime_Message( 3Zend_Mime_Exception' -Zend_Mime_Decode& #Zend_Memory% /Zend_Memory_Value$ 3Zend_Memory_Manager# 7Zend_Memory_Exception" 7Zend_Memory_Container"! GZend_Memory_Container_Movable!  EZend_Memory_Container_Locked! EZend_Memory_AccessController 3Zend_Measure_Weight 3Zend_Measure_Volume% MZend_Measure_Viscosity_Kinematic# IZend_Measure_Viscosity_Dynamic 3Zend_Measure_Torque /Zend_Measure_Time =Zend_Measure_Temperature 1Zend_Measure_Speed 7Zend_Measure_Pressure 1Zend_Measure_Power 3Zend_Measure_Number 9Zend_Measure_Lightness 3Zend_Measure_Length ?Zend_Measure_Illumination 9Zend_Measure_Frequency 1Zend_Measure_Force =Zend_Measure_Flow_Volume 9Zend_Measure_Flow_Mole 9Zend_Measure_Flow_Mass 9Zend_Measure_Exception
 3Zend_Measure_Energy	 5Zend_Measure_Density 5Zend_Measure_Current  CZend_Measure_Cooking_Weight  CZend_Measure_Cooking_Volume =Zend_Measure_Capacitance 3Zend_Measure_Binary /Zend_Measure_Area 1Zend_Measure_Angle ?Zend_Measure_Acceleration  7Zend_Measure_Abstract #Zend_Markup~ 7Zend_Markup_TokenList} /Zend_Markup_Token*| WZend_Markup_Renderer_RendererAbstract{ ?Zend_Markup_Renderer_Html"z GZend_Markup_Renderer_Html_Url#y IZend_Markup_Renderer_Html_List"x GZend_Markup_Renderer_Html_Img+w YZend_Markup_Renderer_Html_HtmlAbstract#v IZend_Markup_Renderer_Html_Code#u IZend_Markup_Renderer_Exception!t EZend_Markup_Parser_Exceptions ?Zend_Markup_Parser_Bbcoder 7Zend_Markup_Exceptionq Zend_Mailp =Zend_Mail_Transport_Smtp!o EZend_Mail_Transport_Sendmailn =Zend_Mail_Transport_File"m GZend_Mail_Transport_Exception!l EZend_Mail_Transport_Abstractk /Zend_Mail_Storage'j QZend_Mail_Storage_Writable_Maildiri 9Zend_Mail_Storage_Pop3h 9Zend_Mail_Storage_Mboxg ?Zend_Mail_Storage_Maildirf 9Zend_Mail_Storage_Imape =Zend_Mail_Storage_Folder"d GZend_Mail_Storage_Folder_Mbox%c MZend_Mail_Storage_Folder_Maildir b CZend_Mail_Storage_Exceptiona AZend_Mail_Storage_Abstract` ;Zend_Mail_Protocol_Smtp'_ QZend_Mail_Protocol_Smtp_Auth_Plain'^ QZend_Mail_Protocol_Smtp_Auth_Login)] UZend_Mail_Protocol_Smtp_Auth_Crammd5\ ;Zend_Mail_Protocol_Pop3[ ;Zend_Mail_Protocol_Imap!Z EZend_Mail_Protocol_Exception Y CZend_Mail_Protocol_AbstractX )Zend_Mail_PartW 3Zend_Mail_Part_FileV /Zend_Mail_MessageU 9Zend_Mail_Message_File   s  ]9sE&eI,
wV:'fF



f
P
4
					x	Z	=	 |^A"dI)lQ1v?
iE$mM'uO0_?            ; ?Zend_Pdf_FileParser_Image": GZend_Pdf_FileParser_Image_Png9 =Zend_Pdf_FileParser_Font&8 OZend_Pdf_FileParser_Font_OpenType/7 aZend_Pdf_FileParser_Font_OpenType_TrueType6 1Zend_Pdf_Exception5 ;Zend_Pdf_ElementFactory"4 GZend_Pdf_ElementFactory_Proxy3 -Zend_Pdf_Element2 ;Zend_Pdf_Element_String#1 IZend_Pdf_Element_String_Binary0 ;Zend_Pdf_Element_Stream/ AZend_Pdf_Element_Reference%. MZend_Pdf_Element_Reference_Table'- QZend_Pdf_Element_Reference_Context, ;Zend_Pdf_Element_Object#+ IZend_Pdf_Element_Object_Stream* =Zend_Pdf_Element_Numeric) 7Zend_Pdf_Element_Null( 7Zend_Pdf_Element_Name ' CZend_Pdf_Element_Dictionary& =Zend_Pdf_Element_Boolean% 9Zend_Pdf_Element_Array$ 5Zend_Pdf_Destination# ?Zend_Pdf_Destination_Zoom!" EZend_Pdf_Destination_Unknown! AZend_Pdf_Destination_Named'  QZend_Pdf_Destination_FitVertically& OZend_Pdf_Destination_FitRectangle) UZend_Pdf_Destination_FitHorizontally2 gZend_Pdf_Destination_FitBoundingBoxVertically4 kZend_Pdf_Destination_FitBoundingBoxHorizontally( SZend_Pdf_Destination_FitBoundingBox =Zend_Pdf_Destination_Fit" GZend_Pdf_Destination_Explicit )Zend_Pdf_Color 1Zend_Pdf_Color_Rgb 3Zend_Pdf_Color_Html =Zend_Pdf_Color_GrayScale 3Zend_Pdf_Color_Cmyk 'Zend_Pdf_Cmap AZend_Pdf_Cmap_TrimmedTable! EZend_Pdf_Cmap_SegmentToDelta AZend_Pdf_Cmap_ByteEncoding& OZend_Pdf_Cmap_ByteEncoding_Static +Zend_Pdf_Canvas =Zend_Pdf_Canvas_Abstract 3Zend_Pdf_Annotation =Zend_Pdf_Annotation_Text
 AZend_Pdf_Annotation_Markup	 =Zend_Pdf_Annotation_Link' QZend_Pdf_Annotation_FileAttachment +Zend_Pdf_Action 3Zend_Pdf_Action_URI ;Zend_Pdf_Action_Unknown 7Zend_Pdf_Action_Trans 9Zend_Pdf_Action_Thread AZend_Pdf_Action_SubmitForm 7Zend_Pdf_Action_Sound   CZend_Pdf_Action_SetOCGState ?Zend_Pdf_Action_ResetForm~ ?Zend_Pdf_Action_Rendition} 7Zend_Pdf_Action_Named| 7Zend_Pdf_Action_Movie{ 9Zend_Pdf_Action_Launchz AZend_Pdf_Action_JavaScripty AZend_Pdf_Action_ImportDatax 5Zend_Pdf_Action_Hidew 7Zend_Pdf_Action_GoToRv 7Zend_Pdf_Action_GoToEu AZend_Pdf_Action_GoTo3DViewt 5Zend_Pdf_Action_GoTos )Zend_Paginator-r ]Zend_Paginator_SerializableLimitIterator*q WZend_Paginator_ScrollingStyle_Sliding*p WZend_Paginator_ScrollingStyle_Jumping*o WZend_Paginator_ScrollingStyle_Elastic&n OZend_Paginator_ScrollingStyle_Allm =Zend_Paginator_Exception l CZend_Paginator_Adapter_Null$k KZend_Paginator_Adapter_Iterator)j UZend_Paginator_Adapter_DbTableSelect$i KZend_Paginator_Adapter_DbSelect!h EZend_Paginator_Adapter_Arrayg #Zend_OpenIdf 5Zend_OpenId_Providere ?Zend_OpenId_Provider_User&d OZend_OpenId_Provider_User_Session!c EZend_OpenId_Provider_Storage&b OZend_OpenId_Provider_Storage_Filea 7Zend_OpenId_Extension` AZend_OpenId_Extension_Sreg_ 7Zend_OpenId_Exception^ 5Zend_OpenId_Consumer!] EZend_OpenId_Consumer_Storage&\ OZend_OpenId_Consumer_Storage_File[ !Zend_OauthZ -Zend_Oauth_TokenY =Zend_Oauth_Token_Request'X QZend_Oauth_Token_AuthorizedRequestW ;Zend_Oauth_Token_Access+V YZend_Oauth_Signature_SignatureAbstractU =Zend_Oauth_Signature_Rsa#T IZend_Oauth_Signature_PlaintextS ?Zend_Oauth_Signature_HmacR +Zend_Oauth_HttpQ ;Zend_Oauth_Http_Utility&P OZend_Oauth_Http_UserAuthorization!O EZend_Oauth_Http_RequestToken N CZend_Oauth_Http_AccessTokenM 5Zend_Oauth_ExceptionL 3Zend_Oauth_ConsumerK /Zend_Oauth_ConfigJ /Zend_Oauth_ClientI +Zend_Navigation   i  jK+lS3sP!qEW


`
+			{	B	rK'zaD.b8mC#{P4jX;`D$eF.        $ +Zend_Rest_Route# 3Zend_Rest_Exception" 5Zend_Rest_Controller! -Zend_Rest_Client  ;Zend_Rest_Client_Result& OZend_Rest_Client_Result_Exception AZend_Rest_Client_Exception 'Zend_Registry =Zend_Reflection_Property ?Zend_Reflection_Parameter 9Zend_Reflection_Method =Zend_Reflection_Function 5Zend_Reflection_File ?Zend_Reflection_Extension ?Zend_Reflection_Exception =Zend_Reflection_Docblock! EZend_Reflection_Docblock_Tag( SZend_Reflection_Docblock_Tag_Return' QZend_Reflection_Docblock_Tag_Param 7Zend_Reflection_Class !Zend_Queue 9Zend_Queue_Stomp_Frame ;Zend_Queue_Stomp_Client' QZend_Queue_Stomp_Client_Connection 1Zend_Queue_Message# IZend_Queue_Message_PlatformJob 
 CZend_Queue_Message_Iterator	 5Zend_Queue_Exception( SZend_Queue_Adapter_PlatformJobQueue ;Zend_Queue_Adapter_Null! EZend_Queue_Adapter_Memcacheq 7Zend_Queue_Adapter_Db  CZend_Queue_Adapter_Db_Queue" GZend_Queue_Adapter_Db_Message =Zend_Queue_Adapter_Array' QZend_Queue_Adapter_AdapterAbstract   CZend_Queue_Adapter_Activemq -Zend_ProgressBar~ AZend_ProgressBar_Exception} =Zend_ProgressBar_Adapter$| KZend_ProgressBar_Adapter_JsPush${ KZend_ProgressBar_Adapter_JsPull'z QZend_ProgressBar_Adapter_Exception%y MZend_ProgressBar_Adapter_Consolex Zend_Pdf!w EZend_Pdf_UpdateInfoContainerv -Zend_Pdf_Traileru ;Zend_Pdf_Trailer_Keepert AZend_Pdf_Trailer_Generators +Zend_Pdf_Targetr )Zend_Pdf_Styleq 7Zend_Pdf_StringParserp /Zend_Pdf_Resourceo ?Zend_Pdf_Resource_Unified#n IZend_Pdf_Resource_ImageFactorym ;Zend_Pdf_Resource_Image!l EZend_Pdf_Resource_Image_Tiff k CZend_Pdf_Resource_Image_Png!j EZend_Pdf_Resource_Image_Jpeg$i KZend_Pdf_Resource_GraphicsStateh 9Zend_Pdf_Resource_Font!g EZend_Pdf_Resource_Font_Type0"f GZend_Pdf_Resource_Font_Simple+e YZend_Pdf_Resource_Font_Simple_Standard8d sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats6c oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman7b qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic;a yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic5` mZend_Pdf_Resource_Font_Simple_Standard_TimesBold2_ gZend_Pdf_Resource_Font_Simple_Standard_Symbol<^ {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueA] Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique9\ uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold5[ mZend_Pdf_Resource_Font_Simple_Standard_Helvetica:Z wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique>Y Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique7X qZend_Pdf_Resource_Font_Simple_Standard_CourierBold3W iZend_Pdf_Resource_Font_Simple_Standard_Courier)V UZend_Pdf_Resource_Font_Simple_Parsed2U gZend_Pdf_Resource_Font_Simple_Parsed_TrueType*T WZend_Pdf_Resource_Font_FontDescriptor%S MZend_Pdf_Resource_Font_Extracted#R IZend_Pdf_Resource_Font_CidFont,Q [Zend_Pdf_Resource_Font_CidFont_TrueType P CZend_Pdf_Resource_Extractor$O KZend_Pdf_Resource_ContentStream3N iZend_Pdf_RecursivelyIteratableObjectsContainerM +Zend_Pdf_ParserL 'Zend_Pdf_PageK -Zend_Pdf_OutlineJ ;Zend_Pdf_Outline_LoadedI =Zend_Pdf_Outline_CreatedH /Zend_Pdf_NameTreeG )Zend_Pdf_ImageF 'Zend_Pdf_FontE ?Zend_Pdf_Filter_RunLength D CZend_Pdf_Filter_Compression$C KZend_Pdf_Filter_Compression_Lzw&B OZend_Pdf_Filter_Compression_FlateA =Zend_Pdf_Filter_AsciiHex@ ;Zend_Pdf_Filter_Ascii85"? GZend_Pdf_FileParserDataSource)> UZend_Pdf_FileParserDataSource_String'= QZend_Pdf_FileParserDataSource_File< 3Zend_Pdf_FileParser   R  `(X f:a(|Q)



|
X
'				x	;	 Q*b%g2\"d=
xN"_+o@          4v kZend_Search_Lucene_Storage_Directory_Filesystem%u MZend_Search_Lucene_Search_Weight*t WZend_Search_Lucene_Search_Weight_Term,s [Zend_Search_Lucene_Search_Weight_Phrase/r aZend_Search_Lucene_Search_Weight_MultiTerm+q YZend_Search_Lucene_Search_Weight_Empty-p ]Zend_Search_Lucene_Search_Weight_Boolean)o UZend_Search_Lucene_Search_Similarity1n eZend_Search_Lucene_Search_Similarity_Default)m UZend_Search_Lucene_Search_QueryToken3l iZend_Search_Lucene_Search_QueryParserException1k eZend_Search_Lucene_Search_QueryParserContext*j WZend_Search_Lucene_Search_QueryParser)i UZend_Search_Lucene_Search_QueryLexer'h QZend_Search_Lucene_Search_QueryHit)g UZend_Search_Lucene_Search_QueryEntry.f _Zend_Search_Lucene_Search_QueryEntry_Term2e gZend_Search_Lucene_Search_QueryEntry_Subquery0d cZend_Search_Lucene_Search_QueryEntry_Phrase$c KZend_Search_Lucene_Search_Query-b ]Zend_Search_Lucene_Search_Query_Wildcard)a UZend_Search_Lucene_Search_Query_Term*` WZend_Search_Lucene_Search_Query_Range2_ gZend_Search_Lucene_Search_Query_Preprocessing7^ qZend_Search_Lucene_Search_Query_Preprocessing_Term9] uZend_Search_Lucene_Search_Query_Preprocessing_Phrase8\ sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy+[ YZend_Search_Lucene_Search_Query_Phrase.Z _Zend_Search_Lucene_Search_Query_MultiTerm2Y gZend_Search_Lucene_Search_Query_Insignificant*X WZend_Search_Lucene_Search_Query_Fuzzy*W WZend_Search_Lucene_Search_Query_Empty,V [Zend_Search_Lucene_Search_Query_Boolean2U gZend_Search_Lucene_Search_Highlighter_Default:T wZend_Search_Lucene_Search_BooleanExpressionRecognizerS =Zend_Search_Lucene_Proxy%R MZend_Search_Lucene_PriorityQueue/Q aZend_Search_Lucene_Interface_MultiSearcher%P MZend_Search_Lucene_MultiSearcher#O IZend_Search_Lucene_LockManager$N KZend_Search_Lucene_Index_Writer0M cZend_Search_Lucene_Index_TermsPriorityQueue&L OZend_Search_Lucene_Index_TermInfo"K GZend_Search_Lucene_Index_Term+J YZend_Search_Lucene_Index_SegmentWriter8I sZend_Search_Lucene_Index_SegmentWriter_StreamWriter:H wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter+G YZend_Search_Lucene_Index_SegmentMerger)F UZend_Search_Lucene_Index_SegmentInfo'E QZend_Search_Lucene_Index_FieldInfo(D SZend_Search_Lucene_Index_DocsFilter.C _Zend_Search_Lucene_Index_DictionaryLoader!B EZend_Search_Lucene_FSMActionA 9Zend_Search_Lucene_FSM@ =Zend_Search_Lucene_Field!? EZend_Search_Lucene_Exception > CZend_Search_Lucene_Document%= MZend_Search_Lucene_Document_Xlsx%< MZend_Search_Lucene_Document_Pptx(; SZend_Search_Lucene_Document_OpenXml%: MZend_Search_Lucene_Document_Html*9 WZend_Search_Lucene_Document_Exception%8 MZend_Search_Lucene_Document_Docx,7 [Zend_Search_Lucene_Analysis_TokenFilter66 oZend_Search_Lucene_Analysis_TokenFilter_StopWords75 qZend_Search_Lucene_Analysis_TokenFilter_ShortWords:4 wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf863 oZend_Search_Lucene_Analysis_TokenFilter_LowerCase&2 OZend_Search_Lucene_Analysis_Token)1 UZend_Search_Lucene_Analysis_Analyzer00 cZend_Search_Lucene_Analysis_Analyzer_Common8/ sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumI. Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive5- mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8F, Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive8+ sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumI* Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive5) mZend_Search_Lucene_Analysis_Analyzer_Common_TextF( Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive' 7Zend_Search_Exception& -Zend_Rest_Server% AZend_Rest_Server_Exception   b  tM a=ybF-b>wO'





[
'				v	L	$}T/Y1sS*	wR4
X4u6e?dA                9X uZend_Service_Ebay_Finding_Aspect_Histogram_Container'W QZend_Service_Ebay_Finding_Abstract V CZend_Service_Ebay_ExceptionU AZend_Service_Ebay_AbstractT 9Zend_Service_Delicious&S OZend_Service_Delicious_SimplePost$R KZend_Service_Delicious_PostList Q CZend_Service_Delicious_Post%P MZend_Service_Delicious_Exception#O IZend_Service_Console_Exception!N EZend_Service_Console_Command7M qZend_Service_Console_Command_ParameterSource_StdIn8L sZend_Service_Console_Command_ParameterSource_Prompt5K mZend_Service_Console_Command_ParameterSource_Env<J {Zend_Service_Console_Command_ParameterSource_ConfigFile6I oZend_Service_Console_Command_ParameterSource_Argv H CZend_Service_AudioscrobblerG 3Zend_Service_AmazonF ;Zend_Service_Amazon_Sqs&E OZend_Service_Amazon_Sqs_Exception!D EZend_Service_Amazon_SimpleDb*C WZend_Service_Amazon_SimpleDb_Response&B OZend_Service_Amazon_SimpleDb_Page+A YZend_Service_Amazon_SimpleDb_Exception+@ YZend_Service_Amazon_SimpleDb_Attribute'? QZend_Service_Amazon_SimilarProduct> 9Zend_Service_Amazon_S3"= GZend_Service_Amazon_S3_Stream%< MZend_Service_Amazon_S3_Exception"; GZend_Service_Amazon_ResultSet: ?Zend_Service_Amazon_Query!9 EZend_Service_Amazon_OfferSet8 ?Zend_Service_Amazon_Offer&7 OZend_Service_Amazon_ListmaniaList6 =Zend_Service_Amazon_Item5 ?Zend_Service_Amazon_Image"4 GZend_Service_Amazon_Exception(3 SZend_Service_Amazon_EditorialReview2 ;Zend_Service_Amazon_Ec2+1 YZend_Service_Amazon_Ec2_Securitygroups%0 MZend_Service_Amazon_Ec2_Response#/ IZend_Service_Amazon_Ec2_Region$. KZend_Service_Amazon_Ec2_Keypair%- MZend_Service_Amazon_Ec2_Instance-, ]Zend_Service_Amazon_Ec2_Instance_Windows.+ _Zend_Service_Amazon_Ec2_Instance_Reserved"* GZend_Service_Amazon_Ec2_Image&) OZend_Service_Amazon_Ec2_Exception&( OZend_Service_Amazon_Ec2_Elasticip ' CZend_Service_Amazon_Ec2_Ebs'& QZend_Service_Amazon_Ec2_CloudWatch.% _Zend_Service_Amazon_Ec2_Availabilityzones%$ MZend_Service_Amazon_Ec2_Abstract'# QZend_Service_Amazon_CustomerReview'" QZend_Service_Amazon_Authentication*! WZend_Service_Amazon_Authentication_V2*  WZend_Service_Amazon_Authentication_V1* WZend_Service_Amazon_Authentication_S31 eZend_Service_Amazon_Authentication_Exception$ KZend_Service_Amazon_Accessories! EZend_Service_Amazon_Abstract 5Zend_Service_Akismet 7Zend_Service_Abstract 9Zend_Server_Reflection' QZend_Server_Reflection_ReturnValue% MZend_Server_Reflection_Prototype% MZend_Server_Reflection_Parameter  CZend_Server_Reflection_Node" GZend_Server_Reflection_Method$ KZend_Server_Reflection_Function- ]Zend_Server_Reflection_Function_Abstract% MZend_Server_Reflection_Exception! EZend_Server_Reflection_Class! EZend_Server_Method_Prototype! EZend_Server_Method_Parameter" GZend_Server_Method_Definition  CZend_Server_Method_Callback 7Zend_Server_Exception
 9Zend_Server_Definition	 /Zend_Server_Cache 5Zend_Server_Abstract +Zend_Serializer ?Zend_Serializer_Exception! EZend_Serializer_Adapter_Wddx) UZend_Serializer_Adapter_PythonPickle) UZend_Serializer_Adapter_PhpSerialize$ KZend_Serializer_Adapter_PhpCode! EZend_Serializer_Adapter_Json%  MZend_Serializer_Adapter_Igbinary! EZend_Serializer_Adapter_Amf3!~ EZend_Serializer_Adapter_Amf0,} [Zend_Serializer_Adapter_AdapterAbstract| 1Zend_Search_Lucene0{ cZend_Search_Lucene_TermStreamsPriorityQueue$z KZend_Search_Lucene_Storage_File+y YZend_Search_Lucene_Storage_File_Memory/x aZend_Search_Lucene_Storage_File_Filesystem)w UZend_Search_Lucene_Storage_Directory   W  `8d4OS&n@




m
R
+
				j	8	
\0 n6iKc;tBlCkE L        W/ /Zend_Service_WindowsAzure_CommandLine_PackageScaffolder_PackageScaffolderAbstract2. gZend_Service_WindowsAzure_CommandLine_PackageD- 	Zend_Service_WindowsAzure_CommandLine_GetAsynchronousOperation5, mZend_Service_WindowsAzure_CommandLine_Deployment6+ oZend_Service_WindowsAzure_CommandLine_Certificate* 5Zend_Service_Twitter") GZend_Service_Twitter_Response#( IZend_Service_Twitter_Exception' ;Zend_Service_StrikeIron(& SZend_Service_StrikeIron_ZipCodeInfo2% gZend_Service_StrikeIron_USAddressVerification-$ ]Zend_Service_StrikeIron_SalesUseTaxBasic&# OZend_Service_StrikeIron_Exception&" OZend_Service_StrikeIron_Decorator!! EZend_Service_StrikeIron_Base;  yZend_Service_SqlAzure_Management_ServiceEntityAbstract4 kZend_Service_SqlAzure_Management_ServerInstance: wZend_Service_SqlAzure_Management_FirewallRuleInstance/ aZend_Service_SqlAzure_Management_Exception, [Zend_Service_SqlAzure_Management_Client$ KZend_Service_SqlAzure_Exception ;Zend_Service_SlideShare& OZend_Service_SlideShare_SlideShow& OZend_Service_SlideShare_Exception% MZend_Service_ShortUrl_TinyUrlCom& OZend_Service_ShortUrl_MetamarkNet! EZend_Service_ShortUrl_JdemCz AZend_Service_ShortUrl_IsGd$ KZend_Service_ShortUrl_Exception  CZend_Service_ShortUrl_BitLy, [Zend_Service_ShortUrl_AbstractShortener 9Zend_Service_ReCaptcha$ KZend_Service_ReCaptcha_Response$ KZend_Service_ReCaptcha_MailHide. _Zend_Service_ReCaptcha_MailHide_Exception% MZend_Service_ReCaptcha_Exception# IZend_Service_Rackspace_Servers5
 mZend_Service_Rackspace_Servers_SharedIpGroupList1	 eZend_Service_Rackspace_Servers_SharedIpGroup. _Zend_Service_Rackspace_Servers_ServerList* WZend_Service_Rackspace_Servers_Server- ]Zend_Service_Rackspace_Servers_ImageList) UZend_Service_Rackspace_Servers_Image- ]Zend_Service_Rackspace_Servers_Exception! EZend_Service_Rackspace_Files, [Zend_Service_Rackspace_Files_ObjectList( SZend_Service_Rackspace_Files_Object+  YZend_Service_Rackspace_Files_Exception/ aZend_Service_Rackspace_Files_ContainerList+~ YZend_Service_Rackspace_Files_Container%} MZend_Service_Rackspace_Exception$| KZend_Service_Rackspace_Abstract{ 7Zend_Service_LiveDocx$z KZend_Service_LiveDocx_MailMerge$y KZend_Service_LiveDocx_Exceptionx 3Zend_Service_Flickr"w GZend_Service_Flickr_ResultSetv AZend_Service_Flickr_Resultu ?Zend_Service_Flickr_Imaget 9Zend_Service_Exceptions ?Zend_Service_Ebay_Finding)r UZend_Service_Ebay_Finding_Storefront+q YZend_Service_Ebay_Finding_ShippingInfo+p YZend_Service_Ebay_Finding_Set_Abstract,o [Zend_Service_Ebay_Finding_SellingStatus)n UZend_Service_Ebay_Finding_SellerInfo,m [Zend_Service_Ebay_Finding_Search_Result*l WZend_Service_Ebay_Finding_Search_Item.k _Zend_Service_Ebay_Finding_Search_Item_Set0j cZend_Service_Ebay_Finding_Response_Keywords-i ]Zend_Service_Ebay_Finding_Response_Items2h gZend_Service_Ebay_Finding_Response_Histograms0g cZend_Service_Ebay_Finding_Response_Abstract/f aZend_Service_Ebay_Finding_PaginationOutput*e WZend_Service_Ebay_Finding_ListingInfo(d SZend_Service_Ebay_Finding_Exception,c [Zend_Service_Ebay_Finding_Error_Message)b UZend_Service_Ebay_Finding_Error_Data-a ]Zend_Service_Ebay_Finding_Error_Data_Set'` QZend_Service_Ebay_Finding_Category1_ eZend_Service_Ebay_Finding_Category_Histogram5^ mZend_Service_Ebay_Finding_Category_Histogram_Set;] yZend_Service_Ebay_Finding_Category_Histogram_Container%\ MZend_Service_Ebay_Finding_Aspect)[ UZend_Service_Ebay_Finding_Aspect_Set5Z mZend_Service_Ebay_Finding_Aspect_Histogram_Value9Y uZend_Service_Ebay_Finding_Aspect_Histogram_Value_Set   D  CVp,P}G


k
/			s	@	K v3m8d&VxAc.tN%                         #s IZend_Service_Yahoo_LocalResult+r YZend_Service_Yahoo_InlinkDataResultSet(q SZend_Service_Yahoo_InlinkDataResult&p OZend_Service_Yahoo_ImageResultSet#o IZend_Service_Yahoo_ImageResultn =Zend_Service_Yahoo_Image&m OZend_Service_WindowsAzure_Storage4l kZend_Service_WindowsAzure_Storage_TableInstance7k qZend_Service_WindowsAzure_Storage_TableEntityQuery2j gZend_Service_WindowsAzure_Storage_TableEntity,i [Zend_Service_WindowsAzure_Storage_Table<h {Zend_Service_WindowsAzure_Storage_StorageEntityAbstract7g qZend_Service_WindowsAzure_Storage_SignedIdentifier3f iZend_Service_WindowsAzure_Storage_QueueMessage4e kZend_Service_WindowsAzure_Storage_QueueInstance,d [Zend_Service_WindowsAzure_Storage_Queue9c uZend_Service_WindowsAzure_Storage_PageRegionInstance4b kZend_Service_WindowsAzure_Storage_LeaseInstance9a uZend_Service_WindowsAzure_Storage_DynamicTableEntity3` iZend_Service_WindowsAzure_Storage_BlobInstance4_ kZend_Service_WindowsAzure_Storage_BlobContainer+^ YZend_Service_WindowsAzure_Storage_Blob2] gZend_Service_WindowsAzure_Storage_Blob_Stream;\ yZend_Service_WindowsAzure_Storage_BatchStorageAbstract,[ [Zend_Service_WindowsAzure_Storage_Batch-Z ]Zend_Service_WindowsAzure_SessionHandler>Y Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract1X eZend_Service_WindowsAzure_RetryPolicy_RetryN2W gZend_Service_WindowsAzure_RetryPolicy_NoRetry4V kZend_Service_WindowsAzure_RetryPolicy_ExceptionHU Zend_Service_WindowsAzure_Management_SubscriptionOperationInstanceAT Zend_Service_WindowsAzure_Management_StorageServiceInstance@S Zend_Service_WindowsAzure_Management_ServiceEntityAbstractBR Zend_Service_WindowsAzure_Management_OperationStatusInstanceBQ Zend_Service_WindowsAzure_Management_OperatingSystemInstanceHP Zend_Service_WindowsAzure_Management_OperatingSystemFamilyInstance:O wZend_Service_WindowsAzure_Management_LocationInstance@N Zend_Service_WindowsAzure_Management_HostedServiceInstance3M iZend_Service_WindowsAzure_Management_Exception<L {Zend_Service_WindowsAzure_Management_DeploymentInstance0K cZend_Service_WindowsAzure_Management_Client=J }Zend_Service_WindowsAzure_Management_CertificateInstance@I Zend_Service_WindowsAzure_Management_AffinityGroupInstance6H oZend_Service_WindowsAzure_Log_Writer_WindowsAzure9G uZend_Service_WindowsAzure_Log_Formatter_WindowsAzure,F [Zend_Service_WindowsAzure_Log_Exception(E SZend_Service_WindowsAzure_ExceptionJD Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscription2C gZend_Service_WindowsAzure_Diagnostics_Manager3B iZend_Service_WindowsAzure_Diagnostics_LogLevel4A kZend_Service_WindowsAzure_Diagnostics_ExceptionN@ Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscriptionH? Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLogL> Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCountersK= Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstract<< {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogsA; Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstanceD: 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectoriesU9 +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogsD8 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSources87 sZend_Service_WindowsAzure_Credentials_SharedKeyLite46 kZend_Service_WindowsAzure_Credentials_SharedKeyA5 Zend_Service_WindowsAzure_Credentials_SharedAccessSignature44 kZend_Service_WindowsAzure_Credentials_Exception>3 Zend_Service_WindowsAzure_Credentials_CredentialsAbstract22 gZend_Service_WindowsAzure_CommandLine_Storage21 gZend_Service_WindowsAzure_CommandLine_Service0 !Scaffolder   g  a5}V<jB~\>&_-




f
0
					Y	1	tW*oBMf9zT'rW5sXA"	i<                   &Z OZend_Tool_Framework_Client_Config(Y SZend_Tool_Framework_Client_Abstract*X WZend_Tool_Framework_Action_Repository)W UZend_Tool_Framework_Action_Exception$V KZend_Tool_Framework_Action_BaseU 'Zend_TimeSyncT 1Zend_TimeSync_SntpS 9Zend_TimeSync_ProtocolR /Zend_TimeSync_NtpQ ;Zend_TimeSync_ExceptionP +Zend_Text_TableO 3Zend_Text_Table_RowN ?Zend_Text_Table_Exception&M OZend_Text_Table_Decorator_Unicode$L KZend_Text_Table_Decorator_AsciiK 9Zend_Text_Table_ColumnJ 3Zend_Text_MultiByteI -Zend_Text_FigletH AZend_Text_Figlet_ExceptionG 3Zend_Text_Exception&F OZend_Test_PHPUnit_Db_SimpleTester,E [Zend_Test_PHPUnit_Db_Operation_Truncate*D WZend_Test_PHPUnit_Db_Operation_Insert-C ]Zend_Test_PHPUnit_Db_Operation_DeleteAll*B WZend_Test_PHPUnit_Db_Metadata_Generic#A IZend_Test_PHPUnit_Db_Exception,@ [Zend_Test_PHPUnit_Db_DataSet_QueryTable.? _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet0> cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet)= UZend_Test_PHPUnit_Db_DataSet_DbTable*< WZend_Test_PHPUnit_Db_DataSet_DbRowset$; KZend_Test_PHPUnit_Db_Connection': QZend_Test_PHPUnit_DatabaseTestCase)9 UZend_Test_PHPUnit_ControllerTestCase28 gZend_Test_PHPUnit_Constraint_ResponseHeader4127 gZend_Test_PHPUnit_Constraint_ResponseHeader3726 gZend_Test_PHPUnit_Constraint_ResponseHeader3405 cZend_Test_PHPUnit_Constraint_ResponseHeader,4 [Zend_Test_PHPUnit_Constraint_Redirect41,3 [Zend_Test_PHPUnit_Constraint_Redirect37,2 [Zend_Test_PHPUnit_Constraint_Redirect34*1 WZend_Test_PHPUnit_Constraint_Redirect+0 YZend_Test_PHPUnit_Constraint_Exception,/ [Zend_Test_PHPUnit_Constraint_DomQuery41,. [Zend_Test_PHPUnit_Constraint_DomQuery37,- [Zend_Test_PHPUnit_Constraint_DomQuery34*, WZend_Test_PHPUnit_Constraint_DomQuery+ 7Zend_Test_DbStatement* 3Zend_Test_DbAdapter) /Zend_Tag_ItemList( 'Zend_Tag_Item' 1Zend_Tag_Exception& )Zend_Tag_Cloud% =Zend_Tag_Cloud_Exception!$ EZend_Tag_Cloud_Decorator_Tag%# MZend_Tag_Cloud_Decorator_HtmlTag'" QZend_Tag_Cloud_Decorator_HtmlCloud'! QZend_Tag_Cloud_Decorator_Exception#  IZend_Tag_Cloud_Decorator_Cloud! EZend_Stdlib_SplPriorityQueue -SplPriorityQueue ?Zend_Stdlib_PriorityQueue3 iZend_Stdlib_Exception_InvalidCallbackException  CZend_Stdlib_CallbackHandler )Zend_Soap_Wsdl/ aZend_Soap_Wsdl_Strategy_DefaultComplexType& OZend_Soap_Wsdl_Strategy_Composite0 cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence/ aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex$ KZend_Soap_Wsdl_Strategy_AnyType% MZend_Soap_Wsdl_Strategy_Abstract =Zend_Soap_Wsdl_Exception -Zend_Soap_Server 9Zend_Soap_Server_Proxy AZend_Soap_Server_Exception -Zend_Soap_Client 9Zend_Soap_Client_Local AZend_Soap_Client_Exception ;Zend_Soap_Client_DotNet ;Zend_Soap_Client_Common
 9Zend_Soap_AutoDiscover%	 MZend_Soap_AutoDiscover_Exception %Zend_Session) UZend_Session_Validator_HttpUserAgent% MZend_Session_Validator_Exception$ KZend_Session_Validator_Abstract' QZend_Session_SaveHandler_Exception% MZend_Session_SaveHandler_DbTable 9Zend_Session_Namespace 9Zend_Session_Exception  7Zend_Session_Abstract 1Zend_Service_Yahoo$~ KZend_Service_Yahoo_WebResultSet!} EZend_Service_Yahoo_WebResult&| OZend_Service_Yahoo_VideoResultSet#{ IZend_Service_Yahoo_VideoResult!z EZend_Service_Yahoo_ResultSety ?Zend_Service_Yahoo_Result)x UZend_Service_Yahoo_PageDataResultSet&w OZend_Service_Yahoo_PageDataResult%v MZend_Service_Yahoo_NewsResultSet"u GZend_Service_Yahoo_NewsResult&t OZend_Service_Yahoo_LocalResultSet   L  _Bv:s?J



S
$				x	J	k;wDu@
t9]#V!N[&                        2& gZend_Tool_Project_Context_Zf_LayoutsDirectory8% sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory2$ gZend_Tool_Project_Context_Zf_LayoutScriptFile.# _Zend_Tool_Project_Context_Zf_HtaccessFile0" cZend_Tool_Project_Context_Zf_FormsDirectory*! WZend_Tool_Project_Context_Zf_FormFile/  aZend_Tool_Project_Context_Zf_DocsDirectory- ]Zend_Tool_Project_Context_Zf_DbTableFile2 gZend_Tool_Project_Context_Zf_DbTableDirectory/ aZend_Tool_Project_Context_Zf_DataDirectory6 oZend_Tool_Project_Context_Zf_ControllersDirectory0 cZend_Tool_Project_Context_Zf_ControllerFile2 gZend_Tool_Project_Context_Zf_ConfigsDirectory, [Zend_Tool_Project_Context_Zf_ConfigFile0 cZend_Tool_Project_Context_Zf_CacheDirectory/ aZend_Tool_Project_Context_Zf_BootstrapFile6 oZend_Tool_Project_Context_Zf_ApplicationDirectory7 qZend_Tool_Project_Context_Zf_ApplicationConfigFile/ aZend_Tool_Project_Context_Zf_ApisDirectory. _Zend_Tool_Project_Context_Zf_ActionMethod3 iZend_Tool_Project_Context_Zf_AbstractClassFile@ Zend_Tool_Project_Context_System_ProjectProvidersDirectory8 sZend_Tool_Project_Context_System_ProjectProfileFile6 oZend_Tool_Project_Context_System_ProjectDirectory) UZend_Tool_Project_Context_Repository. _Zend_Tool_Project_Context_Filesystem_File3 iZend_Tool_Project_Context_Filesystem_Directory2 gZend_Tool_Project_Context_Filesystem_Abstract(
 SZend_Tool_Project_Context_Exception-	 ]Zend_Tool_Project_Context_Content_Engine3 iZend_Tool_Project_Context_Content_Engine_Phtml; yZend_Tool_Project_Context_Content_Engine_CodeGenerator0 cZend_Tool_Framework_System_Provider_Version0 cZend_Tool_Framework_System_Provider_Phpinfo1 eZend_Tool_Framework_System_Provider_Manifest/ aZend_Tool_Framework_System_Provider_Config( SZend_Tool_Framework_System_Manifest- ]Zend_Tool_Framework_System_Action_Delete-  ]Zend_Tool_Framework_System_Action_Create! EZend_Tool_Framework_Registry+~ YZend_Tool_Framework_Registry_Exception+} YZend_Tool_Framework_Provider_Signature,| [Zend_Tool_Framework_Provider_Repository+{ YZend_Tool_Framework_Provider_Exception*z WZend_Tool_Framework_Provider_Abstract&y OZend_Tool_Framework_Metadata_Tool)x UZend_Tool_Framework_Metadata_Dynamic'w QZend_Tool_Framework_Metadata_Basic,v [Zend_Tool_Framework_Manifest_Repository2u gZend_Tool_Framework_Manifest_ProviderMetadata*t WZend_Tool_Framework_Manifest_Metadata+s YZend_Tool_Framework_Manifest_Exception0r cZend_Tool_Framework_Manifest_ActionMetadata1q eZend_Tool_Framework_Loader_IncludePathLoaderJp Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator+o YZend_Tool_Framework_Loader_BasicLoader(n SZend_Tool_Framework_Loader_Abstract"m GZend_Tool_Framework_Exception'l QZend_Tool_Framework_Client_Storage1k eZend_Tool_Framework_Client_Storage_Directory(j SZend_Tool_Framework_Client_ResponseDi 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator'h QZend_Tool_Framework_Client_Request(g SZend_Tool_Framework_Client_Manifest9f uZend_Tool_Framework_Client_Interactive_InputResponse8e sZend_Tool_Framework_Client_Interactive_InputRequest8d sZend_Tool_Framework_Client_Interactive_InputHandler)c UZend_Tool_Framework_Client_Exception'b QZend_Tool_Framework_Client_ConsoleDa 	Zend_Tool_Framework_Client_Console_ResponseDecorator_IndentionD` 	Zend_Tool_Framework_Client_Console_ResponseDecorator_ColorizerC_ Zend_Tool_Framework_Client_Console_ResponseDecorator_BlockizeF^ Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter0] cZend_Tool_Framework_Client_Console_Manifest2\ gZend_Tool_Framework_Client_Console_HelpSystem6[ oZend_Tool_Framework_Client_Console_ArgumentParser   Q  d6a-E
g'[


X
			k	1Lt5?Y0S,]3mG%xZ:                                 w Zend_Uriv 'Zend_Uri_Httpu 1Zend_Uri_Exceptiont )Zend_Translates 7Zend_Translate_Pluralr =Zend_Translate_Exceptionq 9Zend_Translate_Adapter!p EZend_Translate_Adapter_XmlTm!o EZend_Translate_Adapter_Xliffn AZend_Translate_Adapter_Tmxm AZend_Translate_Adapter_Tbxl ?Zend_Translate_Adapter_Qtk AZend_Translate_Adapter_Ini#j IZend_Translate_Adapter_Gettexti AZend_Translate_Adapter_Csv!h EZend_Translate_Adapter_Array$g KZend_Tool_Project_Provider_View$f KZend_Tool_Project_Provider_Test/e aZend_Tool_Project_Provider_ProjectProvider'd QZend_Tool_Project_Provider_Project'c QZend_Tool_Project_Provider_Profile&b OZend_Tool_Project_Provider_Module%a MZend_Tool_Project_Provider_Model(` SZend_Tool_Project_Provider_Manifest&_ OZend_Tool_Project_Provider_Layout$^ KZend_Tool_Project_Provider_Form)] UZend_Tool_Project_Provider_Exception'\ QZend_Tool_Project_Provider_DbTable)[ UZend_Tool_Project_Provider_DbAdapter*Z WZend_Tool_Project_Provider_Controller+Y YZend_Tool_Project_Provider_Application&X OZend_Tool_Project_Provider_Action(W SZend_Tool_Project_Provider_AbstractV ?Zend_Tool_Project_Profile'U QZend_Tool_Project_Profile_Resource9T uZend_Tool_Project_Profile_Resource_SearchConstraints1S eZend_Tool_Project_Profile_Resource_Container=R }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter5Q mZend_Tool_Project_Profile_Iterator_ContextFilter-P ]Zend_Tool_Project_Profile_FileParser_Xml(O SZend_Tool_Project_Profile_Exception N CZend_Tool_Project_Exception<M {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory0L cZend_Tool_Project_Context_Zf_ViewsDirectory6K oZend_Tool_Project_Context_Zf_ViewScriptsDirectory0J cZend_Tool_Project_Context_Zf_ViewScriptFile6I oZend_Tool_Project_Context_Zf_ViewHelpersDirectory6H oZend_Tool_Project_Context_Zf_ViewFiltersDirectoryAG Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory2F gZend_Tool_Project_Context_Zf_UploadsDirectory0E cZend_Tool_Project_Context_Zf_TestsDirectory7D qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile:C wZend_Tool_Project_Context_Zf_TestPHPUnitBootstrapFile@B Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory1A eZend_Tool_Project_Context_Zf_TestLibraryFile6@ oZend_Tool_Project_Context_Zf_TestLibraryDirectory:? wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFileB> Zend_Tool_Project_Context_Zf_TestApplicationModulesDirectoryA= Zend_Tool_Project_Context_Zf_TestApplicationModuleDirectory:< wZend_Tool_Project_Context_Zf_TestApplicationDirectory@; Zend_Tool_Project_Context_Zf_TestApplicationControllerFileE: Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory>9 Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile=8 }Zend_Tool_Project_Context_Zf_TestApplicationActionMethod47 kZend_Tool_Project_Context_Zf_TemporaryDirectory36 iZend_Tool_Project_Context_Zf_SessionsDirectory35 iZend_Tool_Project_Context_Zf_ServicesDirectory84 sZend_Tool_Project_Context_Zf_SearchIndexesDirectory<3 {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory82 sZend_Tool_Project_Context_Zf_PublicScriptsDirectory11 eZend_Tool_Project_Context_Zf_PublicIndexFile70 qZend_Tool_Project_Context_Zf_PublicImagesDirectory1/ eZend_Tool_Project_Context_Zf_PublicDirectory5. mZend_Tool_Project_Context_Zf_ProjectProviderFile2- gZend_Tool_Project_Context_Zf_ModulesDirectory1, eZend_Tool_Project_Context_Zf_ModuleDirectory1+ eZend_Tool_Project_Context_Zf_ModelsDirectory+* YZend_Tool_Project_Context_Zf_ModelFile/) aZend_Tool_Project_Context_Zf_LogsDirectory2( gZend_Tool_Project_Context_Zf_LocalesDirectory2' gZend_Tool_Project_Context_Zf_LibraryDirectory   s [,sP-
\8yU0	iK0




m
K
,
				v	R	.	a=~eG-kM/^I5 a=sP/}X6gF%                     j CZend_View_Helper_HeadScripti ?Zend_View_Helper_HeadMetah ?Zend_View_Helper_HeadLinkg ?Zend_View_Helper_Gravatar"f GZend_View_Helper_FormTextareae ?Zend_View_Helper_FormText d CZend_View_Helper_FormSubmit c CZend_View_Helper_FormSelectb AZend_View_Helper_FormReseta AZend_View_Helper_FormRadio"` GZend_View_Helper_FormPassword_ ?Zend_View_Helper_FormNote'^ QZend_View_Helper_FormMultiCheckbox] AZend_View_Helper_FormLabel\ AZend_View_Helper_FormImage [ CZend_View_Helper_FormHiddenZ ?Zend_View_Helper_FormFile Y CZend_View_Helper_FormErrors!X EZend_View_Helper_FormElement"W GZend_View_Helper_FormCheckbox V CZend_View_Helper_FormButtonU 7Zend_View_Helper_FormT ?Zend_View_Helper_FieldsetS =Zend_View_Helper_Doctype!R EZend_View_Helper_DeclareVarsQ 9Zend_View_Helper_CycleP ?Zend_View_Helper_CurrencyO =Zend_View_Helper_BaseUrlN ;Zend_View_Helper_ActionM ?Zend_View_Helper_AbstractL 3Zend_View_ExceptionK 1Zend_View_AbstractJ %Zend_VersionI 'Zend_ValidateH AZend_Validate_StringLength#G IZend_Validate_Sitemap_PriorityF ?Zend_Validate_Sitemap_Loc"E GZend_Validate_Sitemap_Lastmod%D MZend_Validate_Sitemap_ChangefreqC 3Zend_Validate_RegexB 9Zend_Validate_PostCodeA 9Zend_Validate_NotEmpty@ 9Zend_Validate_LessThan? 7Zend_Validate_Ldap_Dn> 1Zend_Validate_Isbn= -Zend_Validate_Ip< /Zend_Validate_Int; 7Zend_Validate_InArray: ;Zend_Validate_Identical9 1Zend_Validate_Iban8 9Zend_Validate_Hostname7 /Zend_Validate_Hex6 ?Zend_Validate_GreaterThan5 3Zend_Validate_Float!4 EZend_Validate_File_WordCount3 ?Zend_Validate_File_Upload2 ;Zend_Validate_File_Size1 ;Zend_Validate_File_Sha1!0 EZend_Validate_File_NotExists / CZend_Validate_File_MimeType. 9Zend_Validate_File_Md5- AZend_Validate_File_IsImage$, KZend_Validate_File_IsCompressed!+ EZend_Validate_File_ImageSize* ;Zend_Validate_File_Hash!) EZend_Validate_File_FilesSize!( EZend_Validate_File_Extension' ?Zend_Validate_File_Exists'& QZend_Validate_File_ExcludeMimeType(% SZend_Validate_File_ExcludeExtension$ =Zend_Validate_File_Crc32# =Zend_Validate_File_Count" ;Zend_Validate_Exception! AZend_Validate_EmailAddress  5Zend_Validate_Digits" GZend_Validate_Db_RecordExists$ KZend_Validate_Db_NoRecordExists ?Zend_Validate_Db_Abstract 1Zend_Validate_Date =Zend_Validate_CreditCard 3Zend_Validate_Ccnum 9Zend_Validate_Callback 7Zend_Validate_Between 7Zend_Validate_Barcode AZend_Validate_Barcode_Upce AZend_Validate_Barcode_Upca AZend_Validate_Barcode_Sscc$ KZend_Validate_Barcode_Royalmail" GZend_Validate_Barcode_Postnet! EZend_Validate_Barcode_Planet# IZend_Validate_Barcode_Leitcode  CZend_Validate_Barcode_Itf14 AZend_Validate_Barcode_Issn* WZend_Validate_Barcode_IntelligentMail$ KZend_Validate_Barcode_Identcode! EZend_Validate_Barcode_Gtin14!
 EZend_Validate_Barcode_Gtin13!	 EZend_Validate_Barcode_Gtin12 AZend_Validate_Barcode_Ean8 AZend_Validate_Barcode_Ean5 AZend_Validate_Barcode_Ean2  CZend_Validate_Barcode_Ean18  CZend_Validate_Barcode_Ean14  CZend_Validate_Barcode_Ean13  CZend_Validate_Barcode_Ean12$ KZend_Validate_Barcode_Code93ext!  EZend_Validate_Barcode_Code93$ KZend_Validate_Barcode_Code39ext!~ EZend_Validate_Barcode_Code39,} [Zend_Validate_Barcode_Code25interleaved!| EZend_Validate_Barcode_Code25*{ WZend_Validate_Barcode_AdapterAbstractz 3Zend_Validate_Alphay 3Zend_Validate_Alnumx 9Zend_Validate_Abstract   n  vU2[) `6JhF$




u
I
					t	K	#jQ(vU9{[7lO/{]H8^8V+pW6                          X AZend_Amf_Util_BinaryStreamW +Zend_Amf_ServerV ?Zend_Amf_Server_ExceptionU /Zend_Amf_ResponseT 9Zend_Amf_Response_HttpS -Zend_Amf_RequestR 7Zend_Amf_Request_HttpQ ?Zend_Amf_Parse_TypeLoaderP ?Zend_Amf_Parse_Serializer#O IZend_Amf_Parse_Resource_Stream(N SZend_Amf_Parse_Resource_MysqlResult)M UZend_Amf_Parse_Resource_MysqliResult L CZend_Amf_Parse_OutputStreamK AZend_Amf_Parse_InputStream J CZend_Amf_Parse_Deserializer#I IZend_Amf_Parse_Amf3_Serializer%H MZend_Amf_Parse_Amf3_Deserializer#G IZend_Amf_Parse_Amf0_Serializer%F MZend_Amf_Parse_Amf0_DeserializerE 1Zend_Amf_ExceptionD 1Zend_Amf_ConstantsC 9Zend_Amf_Auth_Abstract B CZend_Amf_Adobe_IntrospectorA AZend_Amf_Adobe_DbInspector@ 3Zend_Amf_Adobe_Auth? Zend_Acl> 'Zend_Acl_Role= 9Zend_Acl_Role_Registry%< MZend_Acl_Role_Registry_Exception; /Zend_Acl_Resource: 1Zend_Acl_Exception9 /Zend_XmlRpc_Value8 =Zend_XmlRpc_Value_Struct7 =Zend_XmlRpc_Value_String6 =Zend_XmlRpc_Value_Scalar5 7Zend_XmlRpc_Value_Nil4 ?Zend_XmlRpc_Value_Integer 3 CZend_XmlRpc_Value_Exception2 =Zend_XmlRpc_Value_Double1 AZend_XmlRpc_Value_DateTime!0 EZend_XmlRpc_Value_Collection/ ?Zend_XmlRpc_Value_Boolean!. EZend_XmlRpc_Value_BigInteger- =Zend_XmlRpc_Value_Base64, ;Zend_XmlRpc_Value_Array+ 1Zend_XmlRpc_Server* ?Zend_XmlRpc_Server_System) =Zend_XmlRpc_Server_Fault!( EZend_XmlRpc_Server_Exception' =Zend_XmlRpc_Server_Cache& 5Zend_XmlRpc_Response% ?Zend_XmlRpc_Response_Http$ 3Zend_XmlRpc_Request# ?Zend_XmlRpc_Request_Stdin" =Zend_XmlRpc_Request_Http$! KZend_XmlRpc_Generator_XmlWriter,  [Zend_XmlRpc_Generator_GeneratorAbstract& OZend_XmlRpc_Generator_DomDocument /Zend_XmlRpc_Fault 7Zend_XmlRpc_Exception 1Zend_XmlRpc_Client# IZend_XmlRpc_Client_ServerProxy+ YZend_XmlRpc_Client_ServerIntrospection+ YZend_XmlRpc_Client_IntrospectException% MZend_XmlRpc_Client_HttpException& OZend_XmlRpc_Client_FaultException! EZend_XmlRpc_Client_Exception /Zend_Xml_Security 1Zend_Xml_Exception& OZend_Wildfire_Protocol_JsonStream! EZend_Wildfire_Plugin_FirePhp. _Zend_Wildfire_Plugin_FirePhp_TableMessage) UZend_Wildfire_Plugin_FirePhp_Message ;Zend_Wildfire_Exception& OZend_Wildfire_Channel_HttpHeaders Zend_View -Zend_View_Stream AZend_View_Helper_UserAgent
 5Zend_View_Helper_Url	 AZend_View_Helper_Translate AZend_View_Helper_ServerUrl) UZend_View_Helper_RenderToPlaceholder! EZend_View_Helper_Placeholder* WZend_View_Helper_Placeholder_Registry4 kZend_View_Helper_Placeholder_Registry_Exception+ YZend_View_Helper_Placeholder_Container6 oZend_View_Helper_Placeholder_Container_Standalone5 mZend_View_Helper_Placeholder_Container_Exception4  kZend_View_Helper_Placeholder_Container_Abstract! EZend_View_Helper_PartialLoop~ =Zend_View_Helper_Partial'} QZend_View_Helper_Partial_Exception'| QZend_View_Helper_PaginationControl { CZend_View_Helper_Navigation(z SZend_View_Helper_Navigation_Sitemap%y MZend_View_Helper_Navigation_Menu&x OZend_View_Helper_Navigation_Links/w aZend_View_Helper_Navigation_HelperAbstract,v [Zend_View_Helper_Navigation_Breadcrumbsu ;Zend_View_Helper_Layoutt 7Zend_View_Helper_Json"s GZend_View_Helper_InlineScript#r IZend_View_Helper_HtmlQuicktimeq ?Zend_View_Helper_HtmlPage p CZend_View_Helper_HtmlObjecto ?Zend_View_Helper_HtmlListn AZend_View_Helper_HtmlFlash!m EZend_View_Helper_HtmlElementl AZend_View_Helper_HeadTitlek AZend_View_Helper_HeadStyle   Y  g=	mEY&n>!Z1



g
)			{	D	vEvHX `>hIeB}T-Z.   & OZend_EventManager_EventCollection  CZend_Db_Statement_Interface$ KZend_Currency_CurrencyInterface) UZend_Crypt_Math_BigInteger_Interface+ YZend_Controller_Router_Route_Interface% MZend_Controller_Router_Interface) UZend_Controller_Dispatcher_Interface%  MZend_Controller_Action_Interface& OZend_Cloud_StorageService_Adapter$~ KZend_Cloud_QueueService_Adapter&} OZend_Cloud_Infrastructure_Adapter,| [Zend_Cloud_DocumentService_QueryAdapter'{ QZend_Cloud_DocumentService_Adapterz 5Zend_Captcha_Adapter!y EZend_Cache_Backend_Interface)x UZend_Cache_Backend_ExtendedInterface w CZend_Auth_Storage_Interface v CZend_Auth_Adapter_Interface.u _Zend_Auth_Adapter_Http_Resolver_Interface't QZend_Application_Resource_Resource4s kZend_Application_Bootstrap_ResourceBootstrapper,r [Zend_Application_Bootstrap_Bootstrapperq ;Zend_Acl_Role_Interface p CZend_Acl_Resource_Interfaceo ?Zend_Acl_Assert_Interface#n IZend_Wildfire_Plugin_Interface$m KZend_Wildfire_Channel_Interfacel 3Zend_View_Interface'k QZend_View_Helper_Navigation_Helperj AZend_View_Helper_Interfacei ;Zend_Validate_Interface+h YZend_Validate_Barcode_AdapterInterface3g iZend_Tool_Project_Profile_FileParser_Interface:f wZend_Tool_Project_Context_System_TopLevelRestrictable5e mZend_Tool_Project_Context_System_NotOverwritable/d aZend_Tool_Project_Context_System_Interface(c SZend_Tool_Project_Context_Interface+b YZend_Tool_Framework_Registry_Interface2a gZend_Tool_Framework_Registry_EnabledInterface-` ]Zend_Tool_Framework_Provider_Pretendable+_ YZend_Tool_Framework_Provider_Interface.^ _Zend_Tool_Framework_Provider_Interactable/] aZend_Tool_Framework_Provider_Initializable;\ yZend_Tool_Framework_Provider_DocblockManifestInterface+[ YZend_Tool_Framework_Metadata_Interface.Z _Zend_Tool_Framework_Metadata_Attributable6Y oZend_Tool_Framework_Manifest_ProviderManifestable6X oZend_Tool_Framework_Manifest_MetadataManifestable+W YZend_Tool_Framework_Manifest_Interface+V YZend_Tool_Framework_Manifest_Indexable4U kZend_Tool_Framework_Manifest_ActionManifestable)T UZend_Tool_Framework_Loader_Interface8S sZend_Tool_Framework_Client_Storage_AdapterInterfaceDR 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface;Q yZend_Tool_Framework_Client_Interactive_OutputInterface:P wZend_Tool_Framework_Client_Interactive_InputInterface)O UZend_Tool_Framework_Action_Interface(N SZend_Text_Table_Decorator_InterfaceM /Zend_Tag_TaggableL 7Zend_Stdlib_Exception&K OZend_Soap_Wsdl_Strategy_Interface%J MZend_Session_Validator_Interface'I QZend_Session_SaveHandler_Interface$H KZend_Service_ShortUrl_ShortenerKG Zend_Service_Console_Command_ParameterSource_ParameterSourceInterfaceF 7Zend_Server_Interface-E ]Zend_Serializer_Adapter_AdapterInterface4D kZend_Search_Lucene_Search_Highlighter_Interface!C EZend_Search_Lucene_Interface3B iZend_Search_Lucene_Index_TermsStream_Interface$A KZend_Queue_Stomp_FrameInterface0@ cZend_Queue_Stomp_Client_ConnectionInterface(? SZend_Queue_Adapter_AdapterInterface> ?Zend_Pdf_Filter_Interface&= OZend_Pdf_ElementFactory_Interface< ?Zend_Pdf_Canvas_Interface,; [Zend_Paginator_ScrollingStyle_Interface$: KZend_Paginator_AdapterAggregate%9 MZend_Paginator_Adapter_Interface&8 OZend_Oauth_Config_ConfigInterface'7 QZend_Mobile_Push_Message_Interface6 AZend_Mobile_Push_Interface$5 KZend_Memory_Container_Interface14 eZend_Markup_Renderer_TokenConverterInterface'3 QZend_Markup_Parser_ParserInterface)2 UZend_Mail_Storage_Writable_Interface'1 QZend_Mail_Storage_Folder_Interface0 =Zend_Mail_Part_Interface / CZend_Mail_Message_Interface   i  j7~N-U,X0k?



f
@
(
				e	F	'	cQ2xW6`5^:nN&xT2
rZ=mR?%                   A 9Zend_Captcha_Exception@ /Zend_Captcha_Dumb? /Zend_Captcha_Base> !Zend_Cache= 1Zend_Cache_Manager< =Zend_Cache_Frontend_Page; AZend_Cache_Frontend_Output!: EZend_Cache_Frontend_Function9 =Zend_Cache_Frontend_File8 ?Zend_Cache_Frontend_Class 7 CZend_Cache_Frontend_Capture6 5Zend_Cache_Exception5 +Zend_Cache_Core4 1Zend_Cache_Backend"3 GZend_Cache_Backend_ZendServer(2 SZend_Cache_Backend_ZendServer_ShMem'1 QZend_Cache_Backend_ZendServer_Disk$0 KZend_Cache_Backend_ZendPlatform/ ?Zend_Cache_Backend_Xcache . CZend_Cache_Backend_WinCache!- EZend_Cache_Backend_TwoLevels, ;Zend_Cache_Backend_Test+ ?Zend_Cache_Backend_Static* ?Zend_Cache_Backend_Sqlite!) EZend_Cache_Backend_Memcached$( KZend_Cache_Backend_Libmemcached' ;Zend_Cache_Backend_File!& EZend_Cache_Backend_BlackHole% 9Zend_Cache_Backend_Apc$ %Zend_Barcode# ?Zend_Barcode_Renderer_Svg+" YZend_Barcode_Renderer_RendererAbstract! ?Zend_Barcode_Renderer_Pdf   CZend_Barcode_Renderer_Image$ KZend_Barcode_Renderer_Exception =Zend_Barcode_Object_Upce =Zend_Barcode_Object_Upca" GZend_Barcode_Object_Royalmail  CZend_Barcode_Object_Postnet AZend_Barcode_Object_Planet' QZend_Barcode_Object_ObjectAbstract! EZend_Barcode_Object_Leitcode ?Zend_Barcode_Object_Itf14" GZend_Barcode_Object_Identcode" GZend_Barcode_Object_Exception ?Zend_Barcode_Object_Error =Zend_Barcode_Object_Ean8 =Zend_Barcode_Object_Ean5 =Zend_Barcode_Object_Ean2 ?Zend_Barcode_Object_Ean13 AZend_Barcode_Object_Code39* WZend_Barcode_Object_Code25interleaved AZend_Barcode_Object_Code25  CZend_Barcode_Object_Code128 9Zend_Barcode_Exception
 Zend_Auth	 ?Zend_Auth_Storage_Session$ KZend_Auth_Storage_NonPersistent  CZend_Auth_Storage_Exception -Zend_Auth_Result 3Zend_Auth_Exception =Zend_Auth_Adapter_OpenId 9Zend_Auth_Adapter_Ldap 9Zend_Auth_Adapter_Http) UZend_Auth_Adapter_Http_Resolver_File.  _Zend_Auth_Adapter_Http_Resolver_Exception  CZend_Auth_Adapter_Exception~ =Zend_Auth_Adapter_Digest} ?Zend_Auth_Adapter_DbTable| -Zend_Application#{ IZend_Application_Resource_View(z SZend_Application_Resource_UserAgent(y SZend_Application_Resource_Translate&x OZend_Application_Resource_Session%w MZend_Application_Resource_Router/v aZend_Application_Resource_ResourceAbstract)u UZend_Application_Resource_Navigation&t OZend_Application_Resource_Multidb&s OZend_Application_Resource_Modules#r IZend_Application_Resource_Mail"q GZend_Application_Resource_Log%p MZend_Application_Resource_Locale%o MZend_Application_Resource_Layout.n _Zend_Application_Resource_Frontcontroller(m SZend_Application_Resource_Exception#l IZend_Application_Resource_Dojo!k EZend_Application_Resource_Db+j YZend_Application_Resource_Cachemanager&i OZend_Application_Module_Bootstrap'h QZend_Application_Module_Autoloaderg AZend_Application_Exception)f UZend_Application_Bootstrap_Exception1e eZend_Application_Bootstrap_BootstrapAbstract)d UZend_Application_Bootstrap_Bootstrapc ?Zend_Amf_Value_TraitsInfo-b ]Zend_Amf_Value_Messaging_RemotingMessage*a WZend_Amf_Value_Messaging_ErrorMessage,` [Zend_Amf_Value_Messaging_CommandMessage*_ WZend_Amf_Value_Messaging_AsyncMessage-^ ]Zend_Amf_Value_Messaging_ArrayCollection0] cZend_Amf_Value_Messaging_AcknowledgeMessage-\ ]Zend_Amf_Value_Messaging_AbstractMessage![ EZend_Amf_Value_MessageHeaderZ AZend_Amf_Value_MessageBodyY =Zend_Amf_Value_ByteArray   [  m2N"rUc;K



f
>
			}	F	[6qI wAlK#rYEyGh4yF      9Zend_Controller_Action( SZend_Controller_Action_HelperBroker6 oZend_Controller_Action_HelperBroker_PriorityStack/ aZend_Controller_Action_Helper_ViewRenderer& OZend_Controller_Action_Helper_Url- ]Zend_Controller_Action_Helper_Redirector' QZend_Controller_Action_Helper_Json1 eZend_Controller_Action_Helper_FlashMessenger0 cZend_Controller_Action_Helper_ContextSwitch( SZend_Controller_Action_Helper_Cache< {Zend_Controller_Action_Helper_AutoCompleteScriptaculous3 iZend_Controller_Action_Helper_AutoCompleteDojo8 sZend_Controller_Action_Helper_AutoComplete_Abstract. _Zend_Controller_Action_Helper_AjaxContext. _Zend_Controller_Action_Helper_ActionStack+ YZend_Controller_Action_Helper_Abstract% MZend_Controller_Action_Exception 3Zend_Console_Getopt"
 GZend_Console_Getopt_Exception	 #Zend_Config -Zend_Config_Yaml +Zend_Config_Xml 1Zend_Config_Writer ;Zend_Config_Writer_Yaml 9Zend_Config_Writer_Xml ;Zend_Config_Writer_Json 9Zend_Config_Writer_Ini$ KZend_Config_Writer_FileAbstract  =Zend_Config_Writer_Array -Zend_Config_Json~ +Zend_Config_Ini} 7Zend_Config_Exception$| KZend_CodeGenerator_Php_Property1{ eZend_CodeGenerator_Php_Property_DefaultValue%z MZend_CodeGenerator_Php_Parameter2y gZend_CodeGenerator_Php_Parameter_DefaultValue"x GZend_CodeGenerator_Php_Method,w [Zend_CodeGenerator_Php_Member_Container+v YZend_CodeGenerator_Php_Member_Abstract u CZend_CodeGenerator_Php_File%t MZend_CodeGenerator_Php_Exception$s KZend_CodeGenerator_Php_Docblock(r SZend_CodeGenerator_Php_Docblock_Tag/q aZend_CodeGenerator_Php_Docblock_Tag_Return.p _Zend_CodeGenerator_Php_Docblock_Tag_Param0o cZend_CodeGenerator_Php_Docblock_Tag_License!n EZend_CodeGenerator_Php_Class m CZend_CodeGenerator_Php_Body$l KZend_CodeGenerator_Php_Abstract!k EZend_CodeGenerator_Exception j CZend_CodeGenerator_Abstract&i OZend_Cloud_StorageService_Factory(h SZend_Cloud_StorageService_Exception3g iZend_Cloud_StorageService_Adapter_WindowsAzure)f UZend_Cloud_StorageService_Adapter_S30e cZend_Cloud_StorageService_Adapter_Rackspace1d eZend_Cloud_StorageService_Adapter_FileSystem'c QZend_Cloud_QueueService_MessageSet$b KZend_Cloud_QueueService_Message$a KZend_Cloud_QueueService_Factory&` OZend_Cloud_QueueService_Exception._ _Zend_Cloud_QueueService_Adapter_ZendQueue1^ eZend_Cloud_QueueService_Adapter_WindowsAzure(] SZend_Cloud_QueueService_Adapter_Sqs4\ kZend_Cloud_QueueService_Adapter_AbstractAdapter.[ _Zend_Cloud_OperationNotAvailableException+Z YZend_Cloud_Infrastructure_InstanceList'Y QZend_Cloud_Infrastructure_Instance(X SZend_Cloud_Infrastructure_ImageList$W KZend_Cloud_Infrastructure_Image&V OZend_Cloud_Infrastructure_Factory(U SZend_Cloud_Infrastructure_Exception0T cZend_Cloud_Infrastructure_Adapter_Rackspace*S WZend_Cloud_Infrastructure_Adapter_Ec26R oZend_Cloud_Infrastructure_Adapter_AbstractAdapterQ 5Zend_Cloud_Exception%P MZend_Cloud_DocumentService_Query'O QZend_Cloud_DocumentService_Factory)N UZend_Cloud_DocumentService_Exception+M YZend_Cloud_DocumentService_DocumentSet(L SZend_Cloud_DocumentService_Document4K kZend_Cloud_DocumentService_Adapter_WindowsAzure:J wZend_Cloud_DocumentService_Adapter_WindowsAzure_Query0I cZend_Cloud_DocumentService_Adapter_SimpleDb6H oZend_Cloud_DocumentService_Adapter_SimpleDb_Query7G qZend_Cloud_DocumentService_Adapter_AbstractAdapterF AZend_Cloud_AbstractFactoryE /Zend_Captcha_WordD 9Zend_Captcha_ReCaptchaC 1Zend_Captcha_ImageB 3Zend_Captcha_Figlet   o {Y;lCvL'W0}R&



v
^
4
					b	?		lP>qH)zX8|Y8 ^3d9{W=yiV9"                                 3Zend_Dojo_Exception
 )Zend_Dojo_Data	 5Zend_Dojo_BuildLayer !Zend_Debug Zend_Db 'Zend_Db_Table 5Zend_Db_Table_Select# IZend_Db_Table_Select_Exception 5Zend_Db_Table_Rowset# IZend_Db_Table_Rowset_Exception" GZend_Db_Table_Rowset_Abstract  /Zend_Db_Table_Row  CZend_Db_Table_Row_Exception~ AZend_Db_Table_Row_Abstract} ;Zend_Db_Table_Exception| =Zend_Db_Table_Definition{ 9Zend_Db_Table_Abstractz /Zend_Db_Statementy =Zend_Db_Statement_Sqlsrv'x QZend_Db_Statement_Sqlsrv_Exceptionw 7Zend_Db_Statement_Pdov ?Zend_Db_Statement_Pdo_Ociu ?Zend_Db_Statement_Pdo_Ibmt =Zend_Db_Statement_Oracle's QZend_Db_Statement_Oracle_Exceptionr =Zend_Db_Statement_Mysqli'q QZend_Db_Statement_Mysqli_Exception p CZend_Db_Statement_Exceptiono 7Zend_Db_Statement_Db2$n KZend_Db_Statement_Db2_Exceptionm )Zend_Db_Selectl =Zend_Db_Select_Exceptionk -Zend_Db_Profilerj 9Zend_Db_Profiler_Queryi =Zend_Db_Profiler_Firebugh AZend_Db_Profiler_Exceptiong %Zend_Db_Exprf /Zend_Db_Exceptione 9Zend_Db_Adapter_Sqlsrv%d MZend_Db_Adapter_Sqlsrv_Exceptionc AZend_Db_Adapter_Pdo_Sqliteb ?Zend_Db_Adapter_Pdo_Pgsqla ;Zend_Db_Adapter_Pdo_Oci` ?Zend_Db_Adapter_Pdo_Mysql_ ?Zend_Db_Adapter_Pdo_Mssql^ ;Zend_Db_Adapter_Pdo_Ibm ] CZend_Db_Adapter_Pdo_Ibm_Ids \ CZend_Db_Adapter_Pdo_Ibm_Db2![ EZend_Db_Adapter_Pdo_AbstractZ 9Zend_Db_Adapter_Oracle%Y MZend_Db_Adapter_Oracle_ExceptionX 9Zend_Db_Adapter_Mysqli%W MZend_Db_Adapter_Mysqli_ExceptionV ?Zend_Db_Adapter_ExceptionU 3Zend_Db_Adapter_Db2"T GZend_Db_Adapter_Db2_ExceptionS =Zend_Db_Adapter_AbstractR Zend_DateQ 3Zend_Date_ExceptionP 5Zend_Date_DateObjectO -Zend_Date_CitiesN 'Zend_CurrencyM ;Zend_Currency_ExceptionL !Zend_CryptK )Zend_Crypt_RsaJ 1Zend_Crypt_Rsa_KeyI ?Zend_Crypt_Rsa_Key_PublicH AZend_Crypt_Rsa_Key_PrivateG =Zend_Crypt_Rsa_ExceptionF +Zend_Crypt_MathE ?Zend_Crypt_Math_ExceptionD AZend_Crypt_Math_BigInteger#C IZend_Crypt_Math_BigInteger_Gmp)B UZend_Crypt_Math_BigInteger_Exception&A OZend_Crypt_Math_BigInteger_Bcmath@ +Zend_Crypt_Hmac? ?Zend_Crypt_Hmac_Exception> 5Zend_Crypt_Exception= =Zend_Crypt_DiffieHellman'< QZend_Crypt_DiffieHellman_Exception!; EZend_Controller_Router_Route(: SZend_Controller_Router_Route_Static'9 QZend_Controller_Router_Route_Regex(8 SZend_Controller_Router_Route_Module*7 WZend_Controller_Router_Route_Hostname'6 QZend_Controller_Router_Route_Chain*5 WZend_Controller_Router_Route_Abstract#4 IZend_Controller_Router_Rewrite%3 MZend_Controller_Router_Exception$2 KZend_Controller_Router_Abstract*1 WZend_Controller_Response_HttpTestCase"0 GZend_Controller_Response_Http'/ QZend_Controller_Response_Exception!. EZend_Controller_Response_Cli&- OZend_Controller_Response_Abstract#, IZend_Controller_Request_Simple)+ UZend_Controller_Request_HttpTestCase!* EZend_Controller_Request_Http&) OZend_Controller_Request_Exception&( OZend_Controller_Request_Apache404%' MZend_Controller_Request_Abstract&& OZend_Controller_Plugin_PutHandler(% SZend_Controller_Plugin_ErrorHandler"$ GZend_Controller_Plugin_Broker'# QZend_Controller_Plugin_ActionStack$" KZend_Controller_Plugin_Abstract! 7Zend_Controller_Front  ?Zend_Controller_Exception( SZend_Controller_Dispatcher_Standard) UZend_Controller_Dispatcher_Exception( SZend_Controller_Dispatcher_Abstract   a  l?V(_4`3~X,



S
4
				q	L	%|R.^;\/
Z3tY8O)dM2tZ9                            l 3Zend_Feed_Exceptionk 3Zend_Feed_Entry_Rssj 5Zend_Feed_Entry_Atomi =Zend_Feed_Entry_Abstracth /Zend_Feed_Elementg /Zend_Feed_Builderf =Zend_Feed_Builder_Header$e KZend_Feed_Builder_Header_Itunes d CZend_Feed_Builder_Exceptionc ;Zend_Feed_Builder_Entryb )Zend_Feed_Atoma 1Zend_Feed_Abstract` )Zend_Exception)_ UZend_EventManager_StaticEventManager)^ UZend_EventManager_SharedEventManager)] UZend_EventManager_ResponseCollection\ SplStack)[ UZend_EventManager_GlobalEventManager"Z GZend_EventManager_FilterChain,Y [Zend_EventManager_Filter_FilterIterator9X uZend_EventManager_Exception_InvalidArgumentException#W IZend_EventManager_EventManagerV ;Zend_EventManager_EventU )Zend_Dom_QueryT 7Zend_Dom_Query_ResultS =Zend_Dom_Query_Css2XpathR 1Zend_Dom_ExceptionQ Zend_Dojo)P UZend_Dojo_View_Helper_VerticalSlider,O [Zend_Dojo_View_Helper_ValidationTextBox&N OZend_Dojo_View_Helper_TimeTextBox"M GZend_Dojo_View_Helper_TextBox#L IZend_Dojo_View_Helper_Textarea'K QZend_Dojo_View_Helper_TabContainer'J QZend_Dojo_View_Helper_SubmitButton)I UZend_Dojo_View_Helper_StackContainer)H UZend_Dojo_View_Helper_SplitContainer!G EZend_Dojo_View_Helper_Slider)F UZend_Dojo_View_Helper_SimpleTextarea&E OZend_Dojo_View_Helper_RadioButton*D WZend_Dojo_View_Helper_PasswordTextBox(C SZend_Dojo_View_Helper_NumberTextBox(B SZend_Dojo_View_Helper_NumberSpinner+A YZend_Dojo_View_Helper_HorizontalSlider@ AZend_Dojo_View_Helper_Form*? WZend_Dojo_View_Helper_FilteringSelect!> EZend_Dojo_View_Helper_Editor= AZend_Dojo_View_Helper_Dojo)< UZend_Dojo_View_Helper_Dojo_Container); UZend_Dojo_View_Helper_DijitContainer : CZend_Dojo_View_Helper_Dijit&9 OZend_Dojo_View_Helper_DateTextBox&8 OZend_Dojo_View_Helper_CustomDijit*7 WZend_Dojo_View_Helper_CurrencyTextBox&6 OZend_Dojo_View_Helper_ContentPane#5 IZend_Dojo_View_Helper_ComboBox#4 IZend_Dojo_View_Helper_CheckBox!3 EZend_Dojo_View_Helper_Button*2 WZend_Dojo_View_Helper_BorderContainer(1 SZend_Dojo_View_Helper_AccordionPane-0 ]Zend_Dojo_View_Helper_AccordionContainer/ =Zend_Dojo_View_Exception. )Zend_Dojo_Form- 9Zend_Dojo_Form_SubForm*, WZend_Dojo_Form_Element_VerticalSlider-+ ]Zend_Dojo_Form_Element_ValidationTextBox'* QZend_Dojo_Form_Element_TimeTextBox#) IZend_Dojo_Form_Element_TextBox$( KZend_Dojo_Form_Element_Textarea(' SZend_Dojo_Form_Element_SubmitButton"& GZend_Dojo_Form_Element_Slider*% WZend_Dojo_Form_Element_SimpleTextarea'$ QZend_Dojo_Form_Element_RadioButton+# YZend_Dojo_Form_Element_PasswordTextBox)" UZend_Dojo_Form_Element_NumberTextBox)! UZend_Dojo_Form_Element_NumberSpinner,  [Zend_Dojo_Form_Element_HorizontalSlider+ YZend_Dojo_Form_Element_FilteringSelect" GZend_Dojo_Form_Element_Editor& OZend_Dojo_Form_Element_DijitMulti! EZend_Dojo_Form_Element_Dijit' QZend_Dojo_Form_Element_DateTextBox+ YZend_Dojo_Form_Element_CurrencyTextBox$ KZend_Dojo_Form_Element_ComboBox$ KZend_Dojo_Form_Element_CheckBox" GZend_Dojo_Form_Element_Button  CZend_Dojo_Form_DisplayGroup* WZend_Dojo_Form_Decorator_TabContainer, [Zend_Dojo_Form_Decorator_StackContainer, [Zend_Dojo_Form_Decorator_SplitContainer' QZend_Dojo_Form_Decorator_DijitForm* WZend_Dojo_Form_Decorator_DijitElement, [Zend_Dojo_Form_Decorator_DijitContainer) UZend_Dojo_Form_Decorator_ContentPane- ]Zend_Dojo_Form_Decorator_BorderContainer+ YZend_Dojo_Form_Decorator_AccordionPane0 cZend_Dojo_Form_Decorator_AccordionContainer   ^  {HqFwP"SZ*



`
6
					{	Z	;	TH`5PsZH%rX>!yX7jG#      J =Zend_Filter_File_DecryptI 7Zend_Filter_ExceptionH 3Zend_Filter_Encrypt G CZend_Filter_Encrypt_OpensslF AZend_Filter_Encrypt_McryptE +Zend_Filter_DirD 1Zend_Filter_DigitsC 3Zend_Filter_DecryptB 9Zend_Filter_DecompressA 5Zend_Filter_Compress@ =Zend_Filter_Compress_Zip? =Zend_Filter_Compress_Tar> =Zend_Filter_Compress_Rar= =Zend_Filter_Compress_Lzf< ;Zend_Filter_Compress_Gz*; WZend_Filter_Compress_CompressAbstract: =Zend_Filter_Compress_Bz29 5Zend_Filter_Callback8 3Zend_Filter_Boolean7 5Zend_Filter_BaseName6 /Zend_Filter_Alpha5 /Zend_Filter_Alnum4 1Zend_File_Transfer!3 EZend_File_Transfer_Exception$2 KZend_File_Transfer_Adapter_Http(1 SZend_File_Transfer_Adapter_Abstract0 9Zend_File_PhpClassFile/ AZend_File_ClassFileLocator. Zend_Feed- -Zend_Feed_Writer, ;Zend_Feed_Writer_Source/+ aZend_Feed_Writer_Renderer_RendererAbstract'* QZend_Feed_Writer_Renderer_Feed_Rss() SZend_Feed_Writer_Renderer_Feed_Atom/( aZend_Feed_Writer_Renderer_Feed_Atom_Source5' mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract(& SZend_Feed_Writer_Renderer_Entry_Rss)% UZend_Feed_Writer_Renderer_Entry_Atom1$ eZend_Feed_Writer_Renderer_Entry_Atom_Deleted# 7Zend_Feed_Writer_Feed'" QZend_Feed_Writer_Feed_FeedAbstract<! {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry8  sZend_Feed_Writer_Extension_Threading_Renderer_Entry4 kZend_Feed_Writer_Extension_Slash_Renderer_Entry0 cZend_Feed_Writer_Extension_RendererAbstract4 kZend_Feed_Writer_Extension_ITunes_Renderer_Feed5 mZend_Feed_Writer_Extension_ITunes_Renderer_Entry+ YZend_Feed_Writer_Extension_ITunes_Feed, [Zend_Feed_Writer_Extension_ITunes_Entry8 sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed9 uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry6 oZend_Feed_Writer_Extension_Content_Renderer_Entry2 gZend_Feed_Writer_Extension_Atom_Renderer_Feed6 oZend_Feed_Writer_Exception_InvalidMethodException 9Zend_Feed_Writer_Entry =Zend_Feed_Writer_Deleted 'Zend_Feed_Rss -Zend_Feed_Reader =Zend_Feed_Reader_FeedSet" GZend_Feed_Reader_FeedAbstract ?Zend_Feed_Reader_Feed_Rss AZend_Feed_Reader_Feed_Atom& OZend_Feed_Reader_Feed_Atom_Source3 iZend_Feed_Reader_Extension_WellFormedWeb_Entry,
 [Zend_Feed_Reader_Extension_Thread_Entry0	 cZend_Feed_Reader_Extension_Syndication_Feed+ YZend_Feed_Reader_Extension_Slash_Entry, [Zend_Feed_Reader_Extension_Podcast_Feed- ]Zend_Feed_Reader_Extension_Podcast_Entry, [Zend_Feed_Reader_Extension_FeedAbstract- ]Zend_Feed_Reader_Extension_EntryAbstract/ aZend_Feed_Reader_Extension_DublinCore_Feed0 cZend_Feed_Reader_Extension_DublinCore_Entry4 kZend_Feed_Reader_Extension_CreativeCommons_Feed5  mZend_Feed_Reader_Extension_CreativeCommons_Entry- ]Zend_Feed_Reader_Extension_Content_Entry)~ UZend_Feed_Reader_Extension_Atom_Feed*} WZend_Feed_Reader_Extension_Atom_Entry#| IZend_Feed_Reader_EntryAbstract{ AZend_Feed_Reader_Entry_Rss z CZend_Feed_Reader_Entry_Atom y CZend_Feed_Reader_Collection3x iZend_Feed_Reader_Collection_CollectionAbstract)w UZend_Feed_Reader_Collection_Category'v QZend_Feed_Reader_Collection_Authoru 9Zend_Feed_Pubsubhubbub&t OZend_Feed_Pubsubhubbub_Subscriber/s aZend_Feed_Pubsubhubbub_Subscriber_Callback%r MZend_Feed_Pubsubhubbub_Publisher.q _Zend_Feed_Pubsubhubbub_Model_Subscription/p aZend_Feed_Pubsubhubbub_Model_ModelAbstract(o SZend_Feed_Pubsubhubbub_HttpResponse%n MZend_Feed_Pubsubhubbub_Exception,m [Zend_Feed_Pubsubhubbub_CallbackAbstract   i  yX: {^<d5_6lG"




W
4
				~	W	3	xQ2jI)	yY9{_E3	iBbE bApI!                               %3 MZend_Gdata_App_Extension_Element$2 KZend_Gdata_App_Extension_Edited#1 IZend_Gdata_App_Extension_Draft%0 MZend_Gdata_App_Extension_Control)/ UZend_Gdata_App_Extension_Contributor%. MZend_Gdata_App_Extension_Content&- OZend_Gdata_App_Extension_Category$, KZend_Gdata_App_Extension_Author+ =Zend_Gdata_App_Exception* 5Zend_Gdata_App_Entry,) [Zend_Gdata_App_CaptchaRequiredException#( IZend_Gdata_App_BaseMediaSource' 3Zend_Gdata_App_Base*& WZend_Gdata_App_BadMethodCallException!% EZend_Gdata_App_AuthException$ 5Zend_Gdata_Analytics+# YZend_Gdata_Analytics_Extension_TableId," [Zend_Gdata_Analytics_Extension_Property*! WZend_Gdata_Analytics_Extension_Metric  ?Zend_Gdata_Analytics_Goal- ]Zend_Gdata_Analytics_Extension_Dimension# IZend_Gdata_Analytics_DataQuery" GZend_Gdata_Analytics_DataFeed# IZend_Gdata_Analytics_DataEntry& OZend_Gdata_Analytics_AccountQuery% MZend_Gdata_Analytics_AccountFeed& OZend_Gdata_Analytics_AccountEntry Zend_Form /Zend_Form_SubForm 3Zend_Form_Exception /Zend_Form_Element ;Zend_Form_Element_Xhtml AZend_Form_Element_Textarea 9Zend_Form_Element_Text =Zend_Form_Element_Submit =Zend_Form_Element_Select ;Zend_Form_Element_Reset ;Zend_Form_Element_Radio AZend_Form_Element_Password 9Zend_Form_Element_Note" GZend_Form_Element_Multiselect$
 KZend_Form_Element_MultiCheckbox	 ;Zend_Form_Element_Multi ;Zend_Form_Element_Image =Zend_Form_Element_Hidden 9Zend_Form_Element_Hash 9Zend_Form_Element_File  CZend_Form_Element_Exception AZend_Form_Element_Checkbox ?Zend_Form_Element_Captcha =Zend_Form_Element_Button  9Zend_Form_DisplayGroup# IZend_Form_Decorator_ViewScript#~ IZend_Form_Decorator_ViewHelper } CZend_Form_Decorator_Tooltip(| SZend_Form_Decorator_PrepareElements{ ?Zend_Form_Decorator_Labelz ?Zend_Form_Decorator_Image y CZend_Form_Decorator_HtmlTag#x IZend_Form_Decorator_FormErrors%w MZend_Form_Decorator_FormElementsv =Zend_Form_Decorator_Formu =Zend_Form_Decorator_File!t EZend_Form_Decorator_Fieldset"s GZend_Form_Decorator_Exceptionr AZend_Form_Decorator_Errors$q KZend_Form_Decorator_DtDdWrapper$p KZend_Form_Decorator_Description o CZend_Form_Decorator_Captcha%n MZend_Form_Decorator_Captcha_Word*m WZend_Form_Decorator_Captcha_ReCaptcha!l EZend_Form_Decorator_Callback!k EZend_Form_Decorator_Abstractj #Zend_Filter+i YZend_Filter_Word_UnderscoreToSeparator&h OZend_Filter_Word_UnderscoreToDash+g YZend_Filter_Word_UnderscoreToCamelCase*f WZend_Filter_Word_SeparatorToSeparator%e MZend_Filter_Word_SeparatorToDash*d WZend_Filter_Word_SeparatorToCamelCase(c SZend_Filter_Word_Separator_Abstract&b OZend_Filter_Word_DashToUnderscore%a MZend_Filter_Word_DashToSeparator%` MZend_Filter_Word_DashToCamelCase+_ YZend_Filter_Word_CamelCaseToUnderscore*^ WZend_Filter_Word_CamelCaseToSeparator%] MZend_Filter_Word_CamelCaseToDash\ 7Zend_Filter_StripTags[ ?Zend_Filter_StripNewlinesZ 9Zend_Filter_StringTrimY ?Zend_Filter_StringToUpperX ?Zend_Filter_StringToLowerW 5Zend_Filter_RealPathV ;Zend_Filter_PregReplaceU -Zend_Filter_Null&T OZend_Filter_NormalizedToLocalized&S OZend_Filter_LocalizedToNormalizedR +Zend_Filter_IntQ /Zend_Filter_InputP 7Zend_Filter_InflectorO =Zend_Filter_HtmlEntitiesN AZend_Filter_File_UpperCaseM ;Zend_Filter_File_RenameL AZend_Filter_File_LowerCaseK =Zend_Filter_File_Encrypt   `  d>wO%a@$]'h?



V
*				q	L	(	vDb%z^?Y%`1~S( zT-V,                        # IZend_Gdata_Extension_EntryLink" GZend_Gdata_Extension_Comments& OZend_Gdata_Extension_AttendeeType( SZend_Gdata_Extension_AttendeeStatus +Zend_Gdata_Exif 5Zend_Gdata_Exif_Feed# IZend_Gdata_Exif_Extension_Time# IZend_Gdata_Exif_Extension_Tags$ KZend_Gdata_Exif_Extension_Model#
 IZend_Gdata_Exif_Extension_Make"	 GZend_Gdata_Exif_Extension_Iso, [Zend_Gdata_Exif_Extension_ImageUniqueId$ KZend_Gdata_Exif_Extension_FStop* WZend_Gdata_Exif_Extension_FocalLength$ KZend_Gdata_Exif_Extension_Flash' QZend_Gdata_Exif_Extension_Exposure' QZend_Gdata_Exif_Extension_Distance 7Zend_Gdata_Exif_Entry -Zend_Gdata_Entry  7Zend_Gdata_DublinCore* WZend_Gdata_DublinCore_Extension_Title,~ [Zend_Gdata_DublinCore_Extension_Subject+} YZend_Gdata_DublinCore_Extension_Rights.| _Zend_Gdata_DublinCore_Extension_Publisher-{ ]Zend_Gdata_DublinCore_Extension_Language/z aZend_Gdata_DublinCore_Extension_Identifier+y YZend_Gdata_DublinCore_Extension_Format0x cZend_Gdata_DublinCore_Extension_Description)w UZend_Gdata_DublinCore_Extension_Date,v [Zend_Gdata_DublinCore_Extension_Creatoru +Zend_Gdata_Docst 7Zend_Gdata_Docs_Query%s MZend_Gdata_Docs_DocumentListFeed&r OZend_Gdata_Docs_DocumentListEntryq 9Zend_Gdata_ClientLoginp 3Zend_Gdata_Calendar!o EZend_Gdata_Calendar_ListFeed"n GZend_Gdata_Calendar_ListEntry-m ]Zend_Gdata_Calendar_Extension_WebContent+l YZend_Gdata_Calendar_Extension_Timezone9k uZend_Gdata_Calendar_Extension_SendEventNotifications+j YZend_Gdata_Calendar_Extension_Selected+i YZend_Gdata_Calendar_Extension_QuickAdd'h QZend_Gdata_Calendar_Extension_Link)g UZend_Gdata_Calendar_Extension_Hidden(f SZend_Gdata_Calendar_Extension_Color.e _Zend_Gdata_Calendar_Extension_AccessLevel#d IZend_Gdata_Calendar_EventQuery"c GZend_Gdata_Calendar_EventFeed#b IZend_Gdata_Calendar_EventEntrya -Zend_Gdata_Books!` EZend_Gdata_Books_VolumeQuery _ CZend_Gdata_Books_VolumeFeed!^ EZend_Gdata_Books_VolumeEntry+] YZend_Gdata_Books_Extension_Viewability-\ ]Zend_Gdata_Books_Extension_ThumbnailLink&[ OZend_Gdata_Books_Extension_Review+Z YZend_Gdata_Books_Extension_PreviewLink(Y SZend_Gdata_Books_Extension_InfoLink-X ]Zend_Gdata_Books_Extension_Embeddability)W UZend_Gdata_Books_Extension_BooksLink-V ]Zend_Gdata_Books_Extension_BooksCategory.U _Zend_Gdata_Books_Extension_AnnotationLink$T KZend_Gdata_Books_CollectionFeed%S MZend_Gdata_Books_CollectionEntryR 1Zend_Gdata_AuthSubQ )Zend_Gdata_App$P KZend_Gdata_App_VersionExceptionO 3Zend_Gdata_App_Util#N IZend_Gdata_App_MediaFileSourceM ?Zend_Gdata_App_MediaEntry2L gZend_Gdata_App_LoggingHttpClientAdapterSocketK AZend_Gdata_App_IOException,J [Zend_Gdata_App_InvalidArgumentException!I EZend_Gdata_App_HttpException$H KZend_Gdata_App_FeedSourceParent#G IZend_Gdata_App_FeedEntryParentF 3Zend_Gdata_App_FeedE =Zend_Gdata_App_Extension!D EZend_Gdata_App_Extension_Uri%C MZend_Gdata_App_Extension_Updated#B IZend_Gdata_App_Extension_Title"A GZend_Gdata_App_Extension_Text%@ MZend_Gdata_App_Extension_Summary&? OZend_Gdata_App_Extension_Subtitle$> KZend_Gdata_App_Extension_Source$= KZend_Gdata_App_Extension_Rights'< QZend_Gdata_App_Extension_Published$; KZend_Gdata_App_Extension_Person": GZend_Gdata_App_Extension_Name"9 GZend_Gdata_App_Extension_Logo"8 GZend_Gdata_App_Extension_Link 7 CZend_Gdata_App_Extension_Id"6 GZend_Gdata_App_Extension_Icon'5 QZend_Gdata_App_Extension_Generator#4 IZend_Gdata_App_Extension_Email   d  OrAcF.V%\0



w
S
.
				s	O	0	f5jEjN7mM3xGT'd7}[?   !w EZend_Gdata_Photos_AlbumQuery v CZend_Gdata_Photos_AlbumFeed!u EZend_Gdata_Photos_AlbumEntryt 3Zend_Gdata_MimeFiles ?Zend_Gdata_MimeBodyStringr AZend_Gdata_MediaMimeStreamq -Zend_Gdata_Mediap 7Zend_Gdata_Media_Feed*o WZend_Gdata_Media_Extension_MediaTitle.n _Zend_Gdata_Media_Extension_MediaThumbnail)m UZend_Gdata_Media_Extension_MediaText0l cZend_Gdata_Media_Extension_MediaRestriction+k YZend_Gdata_Media_Extension_MediaRating+j YZend_Gdata_Media_Extension_MediaPlayer-i ]Zend_Gdata_Media_Extension_MediaKeywords)h UZend_Gdata_Media_Extension_MediaHash*g WZend_Gdata_Media_Extension_MediaGroup0f cZend_Gdata_Media_Extension_MediaDescription+e YZend_Gdata_Media_Extension_MediaCredit.d _Zend_Gdata_Media_Extension_MediaCopyright,c [Zend_Gdata_Media_Extension_MediaContent-b ]Zend_Gdata_Media_Extension_MediaCategorya 9Zend_Gdata_Media_Entry` AZend_Gdata_Kind_EventEntry_ 7Zend_Gdata_HttpClient*^ WZend_Gdata_HttpAdapterStreamingSocket)] UZend_Gdata_HttpAdapterStreamingProxy\ /Zend_Gdata_Health[ ;Zend_Gdata_Health_Query&Z OZend_Gdata_Health_ProfileListFeed'Y QZend_Gdata_Health_ProfileListEntry"X GZend_Gdata_Health_ProfileFeed#W IZend_Gdata_Health_ProfileEntry$V KZend_Gdata_Health_Extension_CcrU )Zend_Gdata_GeoT 3Zend_Gdata_Geo_Feed$S KZend_Gdata_Geo_Extension_GmlPos&R OZend_Gdata_Geo_Extension_GmlPoint)Q UZend_Gdata_Geo_Extension_GeoRssWhereP 5Zend_Gdata_Geo_EntryO -Zend_Gdata_Gbase"N GZend_Gdata_Gbase_SnippetQuery!M EZend_Gdata_Gbase_SnippetFeed"L GZend_Gdata_Gbase_SnippetEntryK 9Zend_Gdata_Gbase_QueryJ AZend_Gdata_Gbase_ItemQueryI ?Zend_Gdata_Gbase_ItemFeedH AZend_Gdata_Gbase_ItemEntryG 7Zend_Gdata_Gbase_Feed-F ]Zend_Gdata_Gbase_Extension_BaseAttributeE 9Zend_Gdata_Gbase_EntryD -Zend_Gdata_GappsC AZend_Gdata_Gapps_UserQueryB ?Zend_Gdata_Gapps_UserFeedA AZend_Gdata_Gapps_UserEntry&@ OZend_Gdata_Gapps_ServiceException? 9Zend_Gdata_Gapps_Query > CZend_Gdata_Gapps_OwnerQuery= AZend_Gdata_Gapps_OwnerFeed < CZend_Gdata_Gapps_OwnerEntry#; IZend_Gdata_Gapps_NicknameQuery": GZend_Gdata_Gapps_NicknameFeed#9 IZend_Gdata_Gapps_NicknameEntry!8 EZend_Gdata_Gapps_MemberQuery 7 CZend_Gdata_Gapps_MemberFeed!6 EZend_Gdata_Gapps_MemberEntry 5 CZend_Gdata_Gapps_GroupQuery4 AZend_Gdata_Gapps_GroupFeed 3 CZend_Gdata_Gapps_GroupEntry%2 MZend_Gdata_Gapps_Extension_Quota(1 SZend_Gdata_Gapps_Extension_Property(0 SZend_Gdata_Gapps_Extension_Nickname$/ KZend_Gdata_Gapps_Extension_Name%. MZend_Gdata_Gapps_Extension_Login)- UZend_Gdata_Gapps_Extension_EmailList, 9Zend_Gdata_Gapps_Error-+ ]Zend_Gdata_Gapps_EmailListRecipientQuery,* [Zend_Gdata_Gapps_EmailListRecipientFeed-) ]Zend_Gdata_Gapps_EmailListRecipientEntry$( KZend_Gdata_Gapps_EmailListQuery#' IZend_Gdata_Gapps_EmailListFeed$& KZend_Gdata_Gapps_EmailListEntry% +Zend_Gdata_Feed$ 5Zend_Gdata_Extension# =Zend_Gdata_Extension_Who" AZend_Gdata_Extension_Where! ?Zend_Gdata_Extension_When$  KZend_Gdata_Extension_Visibility& OZend_Gdata_Extension_Transparency" GZend_Gdata_Extension_Reminder- ]Zend_Gdata_Extension_RecurrenceException$ KZend_Gdata_Extension_Recurrence  CZend_Gdata_Extension_Rating' QZend_Gdata_Extension_OriginalEvent0 cZend_Gdata_Extension_OpenSearchTotalResults. _Zend_Gdata_Extension_OpenSearchStartIndex0 cZend_Gdata_Extension_OpenSearchItemsPerPage" GZend_Gdata_Extension_FeedLink* WZend_Gdata_Extension_ExtendedProperty% MZend_Gdata_Extension_EventStatus   Y  T'jC\%l?e:




[
8
					d	6	pFc5uM&xKb5Of9	xK          *P WZend_Gdata_YouTube_Extension_Recorded&O OZend_Gdata_YouTube_Extension_Racy-N ]Zend_Gdata_YouTube_Extension_QueryString)M UZend_Gdata_YouTube_Extension_Private*L WZend_Gdata_YouTube_Extension_Position/K aZend_Gdata_YouTube_Extension_PlaylistTitle,J [Zend_Gdata_YouTube_Extension_PlaylistId,I [Zend_Gdata_YouTube_Extension_Occupation)H UZend_Gdata_YouTube_Extension_NoEmbed'G QZend_Gdata_YouTube_Extension_Music(F SZend_Gdata_YouTube_Extension_Movies-E ]Zend_Gdata_YouTube_Extension_MediaRating,D [Zend_Gdata_YouTube_Extension_MediaGroup-C ]Zend_Gdata_YouTube_Extension_MediaCredit.B _Zend_Gdata_YouTube_Extension_MediaContent*A WZend_Gdata_YouTube_Extension_Location&@ OZend_Gdata_YouTube_Extension_Link*? WZend_Gdata_YouTube_Extension_LastName*> WZend_Gdata_YouTube_Extension_Hometown)= UZend_Gdata_YouTube_Extension_Hobbies(< SZend_Gdata_YouTube_Extension_Gender+; YZend_Gdata_YouTube_Extension_FirstName*: WZend_Gdata_YouTube_Extension_Duration-9 ]Zend_Gdata_YouTube_Extension_Description+8 YZend_Gdata_YouTube_Extension_CountHint)7 UZend_Gdata_YouTube_Extension_Control)6 UZend_Gdata_YouTube_Extension_Company'5 QZend_Gdata_YouTube_Extension_Books%4 MZend_Gdata_YouTube_Extension_Age)3 UZend_Gdata_YouTube_Extension_AboutMe#2 IZend_Gdata_YouTube_ContactFeed$1 KZend_Gdata_YouTube_ContactEntry#0 IZend_Gdata_YouTube_CommentFeed$/ KZend_Gdata_YouTube_CommentEntry$. KZend_Gdata_YouTube_ActivityFeed%- MZend_Gdata_YouTube_ActivityEntry, ;Zend_Gdata_Spreadsheets*+ WZend_Gdata_Spreadsheets_WorksheetFeed+* YZend_Gdata_Spreadsheets_WorksheetEntry,) [Zend_Gdata_Spreadsheets_SpreadsheetFeed-( ]Zend_Gdata_Spreadsheets_SpreadsheetEntry&' OZend_Gdata_Spreadsheets_ListQuery%& MZend_Gdata_Spreadsheets_ListFeed&% OZend_Gdata_Spreadsheets_ListEntry/$ aZend_Gdata_Spreadsheets_Extension_RowCount-# ]Zend_Gdata_Spreadsheets_Extension_Custom/" aZend_Gdata_Spreadsheets_Extension_ColCount+! YZend_Gdata_Spreadsheets_Extension_Cell*  WZend_Gdata_Spreadsheets_DocumentQuery& OZend_Gdata_Spreadsheets_CellQuery% MZend_Gdata_Spreadsheets_CellFeed& OZend_Gdata_Spreadsheets_CellEntry -Zend_Gdata_Query /Zend_Gdata_Photos  CZend_Gdata_Photos_UserQuery AZend_Gdata_Photos_UserFeed  CZend_Gdata_Photos_UserEntry AZend_Gdata_Photos_TagEntry! EZend_Gdata_Photos_PhotoQuery  CZend_Gdata_Photos_PhotoFeed! EZend_Gdata_Photos_PhotoEntry& OZend_Gdata_Photos_Extension_Width' QZend_Gdata_Photos_Extension_Weight( SZend_Gdata_Photos_Extension_Version% MZend_Gdata_Photos_Extension_User* WZend_Gdata_Photos_Extension_Timestamp* WZend_Gdata_Photos_Extension_Thumbnail% MZend_Gdata_Photos_Extension_Size) UZend_Gdata_Photos_Extension_Rotation+ YZend_Gdata_Photos_Extension_QuotaLimit-
 ]Zend_Gdata_Photos_Extension_QuotaCurrent)	 UZend_Gdata_Photos_Extension_Position( SZend_Gdata_Photos_Extension_PhotoId3 iZend_Gdata_Photos_Extension_NumPhotosRemaining* WZend_Gdata_Photos_Extension_NumPhotos) UZend_Gdata_Photos_Extension_Nickname% MZend_Gdata_Photos_Extension_Name2 gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum) UZend_Gdata_Photos_Extension_Location# IZend_Gdata_Photos_Extension_Id'  QZend_Gdata_Photos_Extension_Height2 gZend_Gdata_Photos_Extension_CommentingEnabled-~ ]Zend_Gdata_Photos_Extension_CommentCount'} QZend_Gdata_Photos_Extension_Client)| UZend_Gdata_Photos_Extension_Checksum*{ WZend_Gdata_Photos_Extension_BytesUsed(z SZend_Gdata_Photos_Extension_AlbumId'y QZend_Gdata_Photos_Extension_Access#x IZend_Gdata_Photos_CommentEntry   i  qFc6l>fA uM'




^
*
				z	Z	6	p7 iG&yS7oI(r>xR6!dG+i:               $9 KZend_Ldap_Node_RootDse_OpenLdap&8 OZend_Ldap_Node_RootDse_eDirectory+7 YZend_Ldap_Node_RootDse_ActiveDirectory6 ?Zend_Ldap_Node_Collection$5 KZend_Ldap_Node_ChildrenIterator4 ;Zend_Ldap_Node_Abstract3 9Zend_Ldap_Ldif_Encoder2 -Zend_Ldap_Filter1 ;Zend_Ldap_Filter_String0 3Zend_Ldap_Filter_Or/ 5Zend_Ldap_Filter_Not. 7Zend_Ldap_Filter_Mask- =Zend_Ldap_Filter_Logical, AZend_Ldap_Filter_Exception+ 5Zend_Ldap_Filter_And* ?Zend_Ldap_Filter_Abstract) 3Zend_Ldap_Exception( %Zend_Ldap_Dn' 3Zend_Ldap_Converter"& GZend_Ldap_Converter_Exception% 5Zend_Ldap_Collection*$ WZend_Ldap_Collection_Iterator_Default# 3Zend_Ldap_Attribute" #Zend_Layout! 7Zend_Layout_Exception)  UZend_Layout_Controller_Plugin_Layout0 cZend_Layout_Controller_Action_Helper_Layout Zend_Json -Zend_Json_Server 5Zend_Json_Server_Smd! EZend_Json_Server_Smd_Service ?Zend_Json_Server_Response# IZend_Json_Server_Response_Http =Zend_Json_Server_Request" GZend_Json_Server_Request_Http AZend_Json_Server_Exception 9Zend_Json_Server_Error 9Zend_Json_Server_Cache )Zend_Json_Expr 3Zend_Json_Exception /Zend_Json_Encoder /Zend_Json_Decoder 3Zend_Http_UserAgent" GZend_Http_UserAgent_Validator =Zend_Http_UserAgent_Text( SZend_Http_UserAgent_Storage_Session. _Zend_Http_UserAgent_Storage_NonPersistent*
 WZend_Http_UserAgent_Storage_Exception	 =Zend_Http_UserAgent_Spam ?Zend_Http_UserAgent_Probe  CZend_Http_UserAgent_Offline AZend_Http_UserAgent_Mobile =Zend_Http_UserAgent_Feed+ YZend_Http_UserAgent_Features_Exception3 iZend_Http_UserAgent_Features_Adapter_TeraWurfl5 mZend_Http_UserAgent_Features_Adapter_DeviceAtlas2 gZend_Http_UserAgent_Features_Adapter_Browscap"  GZend_Http_UserAgent_Exception ?Zend_Http_UserAgent_Email ~ CZend_Http_UserAgent_Desktop } CZend_Http_UserAgent_Console | CZend_Http_UserAgent_Checker{ ;Zend_Http_UserAgent_Bot'z QZend_Http_UserAgent_AbstractDevicey 1Zend_Http_Responsex ?Zend_Http_Response_Streamw AZend_Http_Header_SetCookie!v EZend_Http_Header_HeaderValue0u cZend_Http_Header_Exception_RuntimeException8t sZend_Http_Header_Exception_InvalidArgumentExceptions 3Zend_Http_Exceptionr 3Zend_Http_CookieJarq -Zend_Http_Cookiep -Zend_Http_Cliento AZend_Http_Client_Exception"n GZend_Http_Client_Adapter_Test$m KZend_Http_Client_Adapter_Socket#l IZend_Http_Client_Adapter_Proxy'k QZend_Http_Client_Adapter_Exception"j GZend_Http_Client_Adapter_Curli !Zend_Gdatah 1Zend_Gdata_YouTube"g GZend_Gdata_YouTube_VideoQuery!f EZend_Gdata_YouTube_VideoFeed"e GZend_Gdata_YouTube_VideoEntry(d SZend_Gdata_YouTube_UserProfileEntry(c SZend_Gdata_YouTube_SubscriptionFeed)b UZend_Gdata_YouTube_SubscriptionEntry)a UZend_Gdata_YouTube_PlaylistVideoFeed*` WZend_Gdata_YouTube_PlaylistVideoEntry(_ SZend_Gdata_YouTube_PlaylistListFeed)^ UZend_Gdata_YouTube_PlaylistListEntry"] GZend_Gdata_YouTube_MediaEntry!\ EZend_Gdata_YouTube_InboxFeed"[ GZend_Gdata_YouTube_InboxEntry)Z UZend_Gdata_YouTube_Extension_VideoId*Y WZend_Gdata_YouTube_Extension_Username*X WZend_Gdata_YouTube_Extension_Uploaded'W QZend_Gdata_YouTube_Extension_Token(V SZend_Gdata_YouTube_Extension_Status,U [Zend_Gdata_YouTube_Extension_Statistics'T QZend_Gdata_YouTube_Extension_State(S SZend_Gdata_YouTube_Extension_School-R ]Zend_Gdata_YouTube_Extension_ReleaseDate.Q _Zend_Gdata_YouTube_Extension_Relationship   s  wBmVDy[0x]: oN*




j
M
0
						`	;		fF\3mB(vdF$\5sU3y\?#kI-     , 3Zend_Measure_Number+ 9Zend_Measure_Lightness* 3Zend_Measure_Length) ?Zend_Measure_Illumination( 9Zend_Measure_Frequency' 1Zend_Measure_Force& =Zend_Measure_Flow_Volume% 9Zend_Measure_Flow_Mole$ 9Zend_Measure_Flow_Mass# 9Zend_Measure_Exception" 3Zend_Measure_Energy! 5Zend_Measure_Density  5Zend_Measure_Current  CZend_Measure_Cooking_Weight  CZend_Measure_Cooking_Volume =Zend_Measure_Capacitance 3Zend_Measure_Binary /Zend_Measure_Area 1Zend_Measure_Angle ?Zend_Measure_Acceleration 7Zend_Measure_Abstract #Zend_Markup 7Zend_Markup_TokenList /Zend_Markup_Token* WZend_Markup_Renderer_RendererAbstract ?Zend_Markup_Renderer_Html" GZend_Markup_Renderer_Html_Url# IZend_Markup_Renderer_Html_List" GZend_Markup_Renderer_Html_Img+ YZend_Markup_Renderer_Html_HtmlAbstract# IZend_Markup_Renderer_Html_Code# IZend_Markup_Renderer_Exception! EZend_Markup_Parser_Exception ?Zend_Markup_Parser_Bbcode
 7Zend_Markup_Exception	 Zend_Mail =Zend_Mail_Transport_Smtp! EZend_Mail_Transport_Sendmail =Zend_Mail_Transport_File" GZend_Mail_Transport_Exception! EZend_Mail_Transport_Abstract /Zend_Mail_Storage' QZend_Mail_Storage_Writable_Maildir 9Zend_Mail_Storage_Pop3  9Zend_Mail_Storage_Mbox ?Zend_Mail_Storage_Maildir~ 9Zend_Mail_Storage_Imap} =Zend_Mail_Storage_Folder"| GZend_Mail_Storage_Folder_Mbox%{ MZend_Mail_Storage_Folder_Maildir z CZend_Mail_Storage_Exceptiony AZend_Mail_Storage_Abstractx ;Zend_Mail_Protocol_Smtp'w QZend_Mail_Protocol_Smtp_Auth_Plain'v QZend_Mail_Protocol_Smtp_Auth_Login)u UZend_Mail_Protocol_Smtp_Auth_Crammd5t ;Zend_Mail_Protocol_Pop3s ;Zend_Mail_Protocol_Imap!r EZend_Mail_Protocol_Exception q CZend_Mail_Protocol_Abstractp )Zend_Mail_Parto 3Zend_Mail_Part_Filen /Zend_Mail_Messagem 9Zend_Mail_Message_File!l EZend_Mail_Header_HeaderValue k CZend_Mail_Header_HeaderNamej 3Zend_Mail_Exceptioni Zend_Log h CZend_Log_Writer_ZendMonitorg 9Zend_Log_Writer_Syslogf 9Zend_Log_Writer_Streame 5Zend_Log_Writer_Nulld 5Zend_Log_Writer_Mockc 5Zend_Log_Writer_Mailb ;Zend_Log_Writer_Firebuga 1Zend_Log_Writer_Db` =Zend_Log_Writer_Abstract_ 9Zend_Log_Formatter_Xml^ ?Zend_Log_Formatter_Simple] AZend_Log_Formatter_Firebug \ CZend_Log_Formatter_Abstract[ =Zend_Log_Filter_SuppressZ =Zend_Log_Filter_PriorityY ;Zend_Log_Filter_MessageX =Zend_Log_Filter_AbstractW 1Zend_Log_ExceptionV #Zend_LocaleU -Zend_Locale_MathT =Zend_Locale_Math_PhpMathS AZend_Locale_Math_ExceptionR 1Zend_Locale_FormatQ 7Zend_Locale_ExceptionP -Zend_Locale_Data!O EZend_Locale_Data_TranslationN #Zend_Loader#M IZend_Loader_StandardAutoloaderL =Zend_Loader_PluginLoader'K QZend_Loader_PluginLoader_ExceptionJ 7Zend_Loader_Exception3I iZend_Loader_Exception_InvalidArgumentException#H IZend_Loader_ClassMapAutoloader"G GZend_Loader_AutoloaderFactoryF 9Zend_Loader_Autoloader$E KZend_Loader_Autoloader_ResourceD Zend_LdapC )Zend_Ldap_NodeB 7Zend_Ldap_Node_Schema#A IZend_Ldap_Node_Schema_OpenLdap/@ aZend_Ldap_Node_Schema_ObjectClass_OpenLdap6? oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectory> AZend_Ldap_Node_Schema_Item1= eZend_Ldap_Node_Schema_AttributeType_OpenLdap8< sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory*; WZend_Ldap_Node_Schema_ActiveDirectory: 9Zend_Ldap_Node_RootDse   o  qU.]?!q_Ad-gD'




]
2
				t	R	0	iL(X7pF!{V,
_7l>z]:xT6                9Zend_Pdf_Action_Thread AZend_Pdf_Action_SubmitForm 7Zend_Pdf_Action_Sound  CZend_Pdf_Action_SetOCGState ?Zend_Pdf_Action_ResetForm ?Zend_Pdf_Action_Rendition 7Zend_Pdf_Action_Named 7Zend_Pdf_Action_Movie 9Zend_Pdf_Action_Launch AZend_Pdf_Action_JavaScript AZend_Pdf_Action_ImportData 5Zend_Pdf_Action_Hide 7Zend_Pdf_Action_GoToR 7Zend_Pdf_Action_GoToE AZend_Pdf_Action_GoTo3DView 5Zend_Pdf_Action_GoTo )Zend_Paginator-
 ]Zend_Paginator_SerializableLimitIterator*	 WZend_Paginator_ScrollingStyle_Sliding* WZend_Paginator_ScrollingStyle_Jumping* WZend_Paginator_ScrollingStyle_Elastic& OZend_Paginator_ScrollingStyle_All =Zend_Paginator_Exception  CZend_Paginator_Adapter_Null$ KZend_Paginator_Adapter_Iterator) UZend_Paginator_Adapter_DbTableSelect$ KZend_Paginator_Adapter_DbSelect!  EZend_Paginator_Adapter_Array #Zend_OpenId~ 5Zend_OpenId_Provider} ?Zend_OpenId_Provider_User&| OZend_OpenId_Provider_User_Session!{ EZend_OpenId_Provider_Storage&z OZend_OpenId_Provider_Storage_Filey 7Zend_OpenId_Extensionx AZend_OpenId_Extension_Sregw 7Zend_OpenId_Exceptionv 5Zend_OpenId_Consumer!u EZend_OpenId_Consumer_Storage&t OZend_OpenId_Consumer_Storage_Files !Zend_Oauthr -Zend_Oauth_Tokenq =Zend_Oauth_Token_Request'p QZend_Oauth_Token_AuthorizedRequesto ;Zend_Oauth_Token_Access+n YZend_Oauth_Signature_SignatureAbstractm =Zend_Oauth_Signature_Rsa#l IZend_Oauth_Signature_Plaintextk ?Zend_Oauth_Signature_Hmacj +Zend_Oauth_Httpi ;Zend_Oauth_Http_Utility&h OZend_Oauth_Http_UserAuthorization!g EZend_Oauth_Http_RequestToken f CZend_Oauth_Http_AccessTokene 5Zend_Oauth_Exceptiond 3Zend_Oauth_Consumerc /Zend_Oauth_Configb /Zend_Oauth_Clienta +Zend_Navigation` 5Zend_Navigation_Page_ =Zend_Navigation_Page_Uri^ =Zend_Navigation_Page_Mvc] ?Zend_Navigation_Exception\ ?Zend_Navigation_Container$[ KZend_Mobile_Push_Test_ApnsProxy"Z GZend_Mobile_Push_Response_GcmY 7Zend_Mobile_Push_Mpns"X GZend_Mobile_Push_Message_Mpns(W SZend_Mobile_Push_Message_Mpns_Toast'V QZend_Mobile_Push_Message_Mpns_Tile&U OZend_Mobile_Push_Message_Mpns_Raw!T EZend_Mobile_Push_Message_Gcm'S QZend_Mobile_Push_Message_Exception"R GZend_Mobile_Push_Message_Apns&Q OZend_Mobile_Push_Message_AbstractP 5Zend_Mobile_Push_GcmO AZend_Mobile_Push_Exception1N eZend_Mobile_Push_Exception_ServerUnavailable-M ]Zend_Mobile_Push_Exception_QuotaExceeded,L [Zend_Mobile_Push_Exception_InvalidTopic,K [Zend_Mobile_Push_Exception_InvalidToken3J iZend_Mobile_Push_Exception_InvalidRegistration.I _Zend_Mobile_Push_Exception_InvalidPayload0H cZend_Mobile_Push_Exception_InvalidAuthToken3G iZend_Mobile_Push_Exception_DeviceQuotaExceededF 7Zend_Mobile_Push_ApnsE ?Zend_Mobile_Push_AbstractD 7Zend_Mobile_ExceptionC Zend_MimeB )Zend_Mime_PartA /Zend_Mime_Message@ 3Zend_Mime_Exception? -Zend_Mime_Decode> #Zend_Memory= /Zend_Memory_Value< 3Zend_Memory_Manager; 7Zend_Memory_Exception: 7Zend_Memory_Container"9 GZend_Memory_Container_Movable!8 EZend_Memory_Container_Locked!7 EZend_Memory_AccessController6 3Zend_Measure_Weight5 3Zend_Measure_Volume%4 MZend_Measure_Viscosity_Kinematic#3 IZend_Measure_Viscosity_Dynamic2 3Zend_Measure_Torque1 /Zend_Measure_Time0 =Zend_Measure_Temperature/ 1Zend_Measure_Speed. 7Zend_Measure_Pressure- 1Zend_Measure_Power   c  cB\7sM, e;jI%




V
-

					d	D	)cG^6hO9!nGVb%j1}A                               "~ GZend_Pdf_Resource_Font_Simple+} YZend_Pdf_Resource_Font_Simple_Standard8| sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats6{ oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman7z qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic;y yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic5x mZend_Pdf_Resource_Font_Simple_Standard_TimesBold2w gZend_Pdf_Resource_Font_Simple_Standard_Symbol<v {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueAu Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique9t uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold5s mZend_Pdf_Resource_Font_Simple_Standard_Helvetica:r wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique>q Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique7p qZend_Pdf_Resource_Font_Simple_Standard_CourierBold3o iZend_Pdf_Resource_Font_Simple_Standard_Courier)n UZend_Pdf_Resource_Font_Simple_Parsed2m gZend_Pdf_Resource_Font_Simple_Parsed_TrueType*l WZend_Pdf_Resource_Font_FontDescriptor%k MZend_Pdf_Resource_Font_Extracted#j IZend_Pdf_Resource_Font_CidFont,i [Zend_Pdf_Resource_Font_CidFont_TrueType h CZend_Pdf_Resource_Extractor$g KZend_Pdf_Resource_ContentStream3f iZend_Pdf_RecursivelyIteratableObjectsContainere +Zend_Pdf_Parserd 'Zend_Pdf_Pagec -Zend_Pdf_Outlineb ;Zend_Pdf_Outline_Loadeda =Zend_Pdf_Outline_Created` /Zend_Pdf_NameTree_ )Zend_Pdf_Image^ 'Zend_Pdf_Font] ?Zend_Pdf_Filter_RunLength \ CZend_Pdf_Filter_Compression$[ KZend_Pdf_Filter_Compression_Lzw&Z OZend_Pdf_Filter_Compression_FlateY =Zend_Pdf_Filter_AsciiHexX ;Zend_Pdf_Filter_Ascii85"W GZend_Pdf_FileParserDataSource)V UZend_Pdf_FileParserDataSource_String'U QZend_Pdf_FileParserDataSource_FileT 3Zend_Pdf_FileParserS ?Zend_Pdf_FileParser_Image"R GZend_Pdf_FileParser_Image_PngQ =Zend_Pdf_FileParser_Font&P OZend_Pdf_FileParser_Font_OpenType/O aZend_Pdf_FileParser_Font_OpenType_TrueTypeN 1Zend_Pdf_ExceptionM ;Zend_Pdf_ElementFactory"L GZend_Pdf_ElementFactory_ProxyK -Zend_Pdf_ElementJ ;Zend_Pdf_Element_String#I IZend_Pdf_Element_String_BinaryH ;Zend_Pdf_Element_StreamG AZend_Pdf_Element_Reference%F MZend_Pdf_Element_Reference_Table'E QZend_Pdf_Element_Reference_ContextD ;Zend_Pdf_Element_Object#C IZend_Pdf_Element_Object_StreamB =Zend_Pdf_Element_NumericA 7Zend_Pdf_Element_Null@ 7Zend_Pdf_Element_Name ? CZend_Pdf_Element_Dictionary> =Zend_Pdf_Element_Boolean= 9Zend_Pdf_Element_Array< 5Zend_Pdf_Destination; ?Zend_Pdf_Destination_Zoom!: EZend_Pdf_Destination_Unknown9 AZend_Pdf_Destination_Named'8 QZend_Pdf_Destination_FitVertically&7 OZend_Pdf_Destination_FitRectangle)6 UZend_Pdf_Destination_FitHorizontally25 gZend_Pdf_Destination_FitBoundingBoxVertically44 kZend_Pdf_Destination_FitBoundingBoxHorizontally(3 SZend_Pdf_Destination_FitBoundingBox2 =Zend_Pdf_Destination_Fit"1 GZend_Pdf_Destination_Explicit0 )Zend_Pdf_Color/ 1Zend_Pdf_Color_Rgb. 3Zend_Pdf_Color_Html- =Zend_Pdf_Color_GrayScale, 3Zend_Pdf_Color_Cmyk+ 'Zend_Pdf_Cmap* AZend_Pdf_Cmap_TrimmedTable!) EZend_Pdf_Cmap_SegmentToDelta( AZend_Pdf_Cmap_ByteEncoding&' OZend_Pdf_Cmap_ByteEncoding_Static& +Zend_Pdf_Canvas% =Zend_Pdf_Canvas_Abstract$ 3Zend_Pdf_Annotation# =Zend_Pdf_Annotation_Text" AZend_Pdf_Annotation_Markup! =Zend_Pdf_Annotation_Link'  QZend_Pdf_Annotation_FileAttachment +Zend_Pdf_Action 3Zend_Pdf_Action_URI ;Zend_Pdf_Action_Unknown 7Zend_Pdf_Action_Trans   b oK&nV3pH tS-	z]9




z
\
1
				{	^	=	xX?"J>|Hy>}T(lM(rC                                                         :` wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter+_ YZend_Search_Lucene_Index_SegmentMerger)^ UZend_Search_Lucene_Index_SegmentInfo'] QZend_Search_Lucene_Index_FieldInfo(\ SZend_Search_Lucene_Index_DocsFilter.[ _Zend_Search_Lucene_Index_DictionaryLoader!Z EZend_Search_Lucene_FSMActionY 9Zend_Search_Lucene_FSMX =Zend_Search_Lucene_Field!W EZend_Search_Lucene_Exception V CZend_Search_Lucene_Document%U MZend_Search_Lucene_Document_Xlsx%T MZend_Search_Lucene_Document_Pptx(S SZend_Search_Lucene_Document_OpenXml%R MZend_Search_Lucene_Document_Html*Q WZend_Search_Lucene_Document_Exception%P MZend_Search_Lucene_Document_Docx,O [Zend_Search_Lucene_Analysis_TokenFilter6N oZend_Search_Lucene_Analysis_TokenFilter_StopWords7M qZend_Search_Lucene_Analysis_TokenFilter_ShortWords:L wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf86K oZend_Search_Lucene_Analysis_TokenFilter_LowerCase&J OZend_Search_Lucene_Analysis_Token)I UZend_Search_Lucene_Analysis_Analyzer0H cZend_Search_Lucene_Analysis_Analyzer_Common8G sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumIF Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive5E mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8FD Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive8C sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumIB Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive5A mZend_Search_Lucene_Analysis_Analyzer_Common_TextF@ Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive? 7Zend_Search_Exception> -Zend_Rest_Server= AZend_Rest_Server_Exception< +Zend_Rest_Route; 3Zend_Rest_Exception: 5Zend_Rest_Controller9 -Zend_Rest_Client8 ;Zend_Rest_Client_Result&7 OZend_Rest_Client_Result_Exception6 AZend_Rest_Client_Exception5 'Zend_Registry4 =Zend_Reflection_Property3 ?Zend_Reflection_Parameter2 9Zend_Reflection_Method1 =Zend_Reflection_Function0 5Zend_Reflection_File/ ?Zend_Reflection_Extension. ?Zend_Reflection_Exception- =Zend_Reflection_Docblock!, EZend_Reflection_Docblock_Tag(+ SZend_Reflection_Docblock_Tag_Return'* QZend_Reflection_Docblock_Tag_Param) 7Zend_Reflection_Class( !Zend_Queue' 9Zend_Queue_Stomp_Frame& ;Zend_Queue_Stomp_Client'% QZend_Queue_Stomp_Client_Connection$ 1Zend_Queue_Message## IZend_Queue_Message_PlatformJob " CZend_Queue_Message_Iterator! 5Zend_Queue_Exception(  SZend_Queue_Adapter_PlatformJobQueue ;Zend_Queue_Adapter_Null! EZend_Queue_Adapter_Memcacheq 7Zend_Queue_Adapter_Db  CZend_Queue_Adapter_Db_Queue" GZend_Queue_Adapter_Db_Message =Zend_Queue_Adapter_Array' QZend_Queue_Adapter_AdapterAbstract  CZend_Queue_Adapter_Activemq -Zend_ProgressBar AZend_ProgressBar_Exception =Zend_ProgressBar_Adapter$ KZend_ProgressBar_Adapter_JsPush$ KZend_ProgressBar_Adapter_JsPull' QZend_ProgressBar_Adapter_Exception% MZend_ProgressBar_Adapter_Console Zend_Pdf! EZend_Pdf_UpdateInfoContainer -Zend_Pdf_Trailer ;Zend_Pdf_Trailer_Keeper AZend_Pdf_Trailer_Generator +Zend_Pdf_Target
 )Zend_Pdf_Style	 7Zend_Pdf_StringParser /Zend_Pdf_Resource ?Zend_Pdf_Resource_Unified# IZend_Pdf_Resource_ImageFactory ;Zend_Pdf_Resource_Image! EZend_Pdf_Resource_Image_Tiff  CZend_Pdf_Resource_Image_Png! EZend_Pdf_Resource_Image_Jpeg$ KZend_Pdf_Resource_GraphicsState  9Zend_Pdf_Resource_Font! EZend_Pdf_Resource_Font_Type0   Y  oEf=xJIm@


}
K
				c	,l=
K`E}U(eF(oFzQ&J        *9 WZend_Service_Amazon_Authentication_V2*8 WZend_Service_Amazon_Authentication_V1*7 WZend_Service_Amazon_Authentication_S316 eZend_Service_Amazon_Authentication_Exception$5 KZend_Service_Amazon_Accessories!4 EZend_Service_Amazon_Abstract3 5Zend_Service_Akismet2 7Zend_Service_Abstract1 9Zend_Server_Reflection'0 QZend_Server_Reflection_ReturnValue%/ MZend_Server_Reflection_Prototype%. MZend_Server_Reflection_Parameter - CZend_Server_Reflection_Node", GZend_Server_Reflection_Method$+ KZend_Server_Reflection_Function-* ]Zend_Server_Reflection_Function_Abstract%) MZend_Server_Reflection_Exception!( EZend_Server_Reflection_Class!' EZend_Server_Method_Prototype!& EZend_Server_Method_Parameter"% GZend_Server_Method_Definition $ CZend_Server_Method_Callback# 7Zend_Server_Exception" 9Zend_Server_Definition! /Zend_Server_Cache  5Zend_Server_Abstract +Zend_Serializer ?Zend_Serializer_Exception! EZend_Serializer_Adapter_Wddx) UZend_Serializer_Adapter_PythonPickle) UZend_Serializer_Adapter_PhpSerialize$ KZend_Serializer_Adapter_PhpCode! EZend_Serializer_Adapter_Json% MZend_Serializer_Adapter_Igbinary! EZend_Serializer_Adapter_Amf3! EZend_Serializer_Adapter_Amf0, [Zend_Serializer_Adapter_AdapterAbstract 1Zend_Search_Lucene0 cZend_Search_Lucene_TermStreamsPriorityQueue$ KZend_Search_Lucene_Storage_File+ YZend_Search_Lucene_Storage_File_Memory/ aZend_Search_Lucene_Storage_File_Filesystem) UZend_Search_Lucene_Storage_Directory4 kZend_Search_Lucene_Storage_Directory_Filesystem% MZend_Search_Lucene_Search_Weight* WZend_Search_Lucene_Search_Weight_Term, [Zend_Search_Lucene_Search_Weight_Phrase/
 aZend_Search_Lucene_Search_Weight_MultiTerm+	 YZend_Search_Lucene_Search_Weight_Empty- ]Zend_Search_Lucene_Search_Weight_Boolean) UZend_Search_Lucene_Search_Similarity1 eZend_Search_Lucene_Search_Similarity_Default) UZend_Search_Lucene_Search_QueryToken3 iZend_Search_Lucene_Search_QueryParserException1 eZend_Search_Lucene_Search_QueryParserContext* WZend_Search_Lucene_Search_QueryParser) UZend_Search_Lucene_Search_QueryLexer'  QZend_Search_Lucene_Search_QueryHit) UZend_Search_Lucene_Search_QueryEntry.~ _Zend_Search_Lucene_Search_QueryEntry_Term2} gZend_Search_Lucene_Search_QueryEntry_Subquery0| cZend_Search_Lucene_Search_QueryEntry_Phrase${ KZend_Search_Lucene_Search_Query-z ]Zend_Search_Lucene_Search_Query_Wildcard)y UZend_Search_Lucene_Search_Query_Term*x WZend_Search_Lucene_Search_Query_Range2w gZend_Search_Lucene_Search_Query_Preprocessing7v qZend_Search_Lucene_Search_Query_Preprocessing_Term9u uZend_Search_Lucene_Search_Query_Preprocessing_Phrase8t sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy+s YZend_Search_Lucene_Search_Query_Phrase.r _Zend_Search_Lucene_Search_Query_MultiTerm2q gZend_Search_Lucene_Search_Query_Insignificant*p WZend_Search_Lucene_Search_Query_Fuzzy*o WZend_Search_Lucene_Search_Query_Empty,n [Zend_Search_Lucene_Search_Query_Boolean2m gZend_Search_Lucene_Search_Highlighter_Default:l wZend_Search_Lucene_Search_BooleanExpressionRecognizerk =Zend_Search_Lucene_Proxy%j MZend_Search_Lucene_PriorityQueue/i aZend_Search_Lucene_Interface_MultiSearcher%h MZend_Search_Lucene_MultiSearcher#g IZend_Search_Lucene_LockManager$f KZend_Search_Lucene_Index_Writer0e cZend_Search_Lucene_Index_TermsPriorityQueue&d OZend_Search_Lucene_Index_TermInfo"c GZend_Search_Lucene_Index_Term+b YZend_Search_Lucene_Index_SegmentWriter8a sZend_Search_Lucene_Index_SegmentWriter_StreamWriter   Z  O$ T#S3tR-wL



q
G
'
			m	4qH$lAa8`/xEvDZ+xR6               7Zend_Service_LiveDocx$ KZend_Service_LiveDocx_MailMerge$ KZend_Service_LiveDocx_Exception 3Zend_Service_Flickr" GZend_Service_Flickr_ResultSet AZend_Service_Flickr_Result ?Zend_Service_Flickr_Image 9Zend_Service_Exception ?Zend_Service_Ebay_Finding)
 UZend_Service_Ebay_Finding_Storefront+	 YZend_Service_Ebay_Finding_ShippingInfo+ YZend_Service_Ebay_Finding_Set_Abstract, [Zend_Service_Ebay_Finding_SellingStatus) UZend_Service_Ebay_Finding_SellerInfo, [Zend_Service_Ebay_Finding_Search_Result* WZend_Service_Ebay_Finding_Search_Item. _Zend_Service_Ebay_Finding_Search_Item_Set0 cZend_Service_Ebay_Finding_Response_Keywords- ]Zend_Service_Ebay_Finding_Response_Items2  gZend_Service_Ebay_Finding_Response_Histograms0 cZend_Service_Ebay_Finding_Response_Abstract/~ aZend_Service_Ebay_Finding_PaginationOutput*} WZend_Service_Ebay_Finding_ListingInfo(| SZend_Service_Ebay_Finding_Exception,{ [Zend_Service_Ebay_Finding_Error_Message)z UZend_Service_Ebay_Finding_Error_Data-y ]Zend_Service_Ebay_Finding_Error_Data_Set'x QZend_Service_Ebay_Finding_Category1w eZend_Service_Ebay_Finding_Category_Histogram5v mZend_Service_Ebay_Finding_Category_Histogram_Set;u yZend_Service_Ebay_Finding_Category_Histogram_Container%t MZend_Service_Ebay_Finding_Aspect)s UZend_Service_Ebay_Finding_Aspect_Set5r mZend_Service_Ebay_Finding_Aspect_Histogram_Value9q uZend_Service_Ebay_Finding_Aspect_Histogram_Value_Set9p uZend_Service_Ebay_Finding_Aspect_Histogram_Container'o QZend_Service_Ebay_Finding_Abstract n CZend_Service_Ebay_Exceptionm AZend_Service_Ebay_Abstractl 9Zend_Service_Delicious&k OZend_Service_Delicious_SimplePost$j KZend_Service_Delicious_PostList i CZend_Service_Delicious_Post%h MZend_Service_Delicious_Exception#g IZend_Service_Console_Exception!f EZend_Service_Console_Command7e qZend_Service_Console_Command_ParameterSource_StdIn8d sZend_Service_Console_Command_ParameterSource_Prompt5c mZend_Service_Console_Command_ParameterSource_Env<b {Zend_Service_Console_Command_ParameterSource_ConfigFile6a oZend_Service_Console_Command_ParameterSource_Argv ` CZend_Service_Audioscrobbler_ 3Zend_Service_Amazon^ ;Zend_Service_Amazon_Sqs&] OZend_Service_Amazon_Sqs_Exception!\ EZend_Service_Amazon_SimpleDb*[ WZend_Service_Amazon_SimpleDb_Response&Z OZend_Service_Amazon_SimpleDb_Page+Y YZend_Service_Amazon_SimpleDb_Exception+X YZend_Service_Amazon_SimpleDb_Attribute'W QZend_Service_Amazon_SimilarProductV 9Zend_Service_Amazon_S3"U GZend_Service_Amazon_S3_Stream%T MZend_Service_Amazon_S3_Exception"S GZend_Service_Amazon_ResultSetR ?Zend_Service_Amazon_Query!Q EZend_Service_Amazon_OfferSetP ?Zend_Service_Amazon_Offer&O OZend_Service_Amazon_ListmaniaListN =Zend_Service_Amazon_ItemM ?Zend_Service_Amazon_Image"L GZend_Service_Amazon_Exception(K SZend_Service_Amazon_EditorialReviewJ ;Zend_Service_Amazon_Ec2+I YZend_Service_Amazon_Ec2_Securitygroups%H MZend_Service_Amazon_Ec2_Response#G IZend_Service_Amazon_Ec2_Region$F KZend_Service_Amazon_Ec2_Keypair%E MZend_Service_Amazon_Ec2_Instance-D ]Zend_Service_Amazon_Ec2_Instance_Windows.C _Zend_Service_Amazon_Ec2_Instance_Reserved"B GZend_Service_Amazon_Ec2_Image&A OZend_Service_Amazon_Ec2_Exception&@ OZend_Service_Amazon_Ec2_Elasticip ? CZend_Service_Amazon_Ec2_Ebs'> QZend_Service_Amazon_Ec2_CloudWatch.= _Zend_Service_Amazon_Ec2_Availabilityzones%< MZend_Service_Amazon_Ec2_Abstract'; QZend_Service_Amazon_CustomerReview': QZend_Service_Amazon_Authentication   L  Ml?y@nOa8



l
9				_	5	xX1{3Y#d,O3ER&                           9_ uZend_Service_WindowsAzure_Log_Formatter_WindowsAzure,^ [Zend_Service_WindowsAzure_Log_Exception(] SZend_Service_WindowsAzure_ExceptionJ\ Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscription2[ gZend_Service_WindowsAzure_Diagnostics_Manager3Z iZend_Service_WindowsAzure_Diagnostics_LogLevel4Y kZend_Service_WindowsAzure_Diagnostics_ExceptionNX Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscriptionHW Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLogLV Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCountersKU Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstract<T {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogsAS Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstanceDR 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectoriesUQ +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogsDP 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSources8O sZend_Service_WindowsAzure_Credentials_SharedKeyLite4N kZend_Service_WindowsAzure_Credentials_SharedKeyAM Zend_Service_WindowsAzure_Credentials_SharedAccessSignature4L kZend_Service_WindowsAzure_Credentials_Exception>K Zend_Service_WindowsAzure_Credentials_CredentialsAbstract2J gZend_Service_WindowsAzure_CommandLine_Storage2I gZend_Service_WindowsAzure_CommandLine_ServiceH !ScaffolderWG /Zend_Service_WindowsAzure_CommandLine_PackageScaffolder_PackageScaffolderAbstract2F gZend_Service_WindowsAzure_CommandLine_PackageDE 	Zend_Service_WindowsAzure_CommandLine_GetAsynchronousOperation5D mZend_Service_WindowsAzure_CommandLine_Deployment6C oZend_Service_WindowsAzure_CommandLine_CertificateB 5Zend_Service_Twitter"A GZend_Service_Twitter_Response#@ IZend_Service_Twitter_Exception? ;Zend_Service_StrikeIron(> SZend_Service_StrikeIron_ZipCodeInfo2= gZend_Service_StrikeIron_USAddressVerification-< ]Zend_Service_StrikeIron_SalesUseTaxBasic&; OZend_Service_StrikeIron_Exception&: OZend_Service_StrikeIron_Decorator!9 EZend_Service_StrikeIron_Base;8 yZend_Service_SqlAzure_Management_ServiceEntityAbstract47 kZend_Service_SqlAzure_Management_ServerInstance:6 wZend_Service_SqlAzure_Management_FirewallRuleInstance/5 aZend_Service_SqlAzure_Management_Exception,4 [Zend_Service_SqlAzure_Management_Client$3 KZend_Service_SqlAzure_Exception2 ;Zend_Service_SlideShare&1 OZend_Service_SlideShare_SlideShow&0 OZend_Service_SlideShare_Exception%/ MZend_Service_ShortUrl_TinyUrlCom&. OZend_Service_ShortUrl_MetamarkNet!- EZend_Service_ShortUrl_JdemCz, AZend_Service_ShortUrl_IsGd$+ KZend_Service_ShortUrl_Exception * CZend_Service_ShortUrl_BitLy,) [Zend_Service_ShortUrl_AbstractShortener( 9Zend_Service_ReCaptcha$' KZend_Service_ReCaptcha_Response$& KZend_Service_ReCaptcha_MailHide.% _Zend_Service_ReCaptcha_MailHide_Exception%$ MZend_Service_ReCaptcha_Exception## IZend_Service_Rackspace_Servers5" mZend_Service_Rackspace_Servers_SharedIpGroupList1! eZend_Service_Rackspace_Servers_SharedIpGroup.  _Zend_Service_Rackspace_Servers_ServerList* WZend_Service_Rackspace_Servers_Server- ]Zend_Service_Rackspace_Servers_ImageList) UZend_Service_Rackspace_Servers_Image- ]Zend_Service_Rackspace_Servers_Exception! EZend_Service_Rackspace_Files, [Zend_Service_Rackspace_Files_ObjectList( SZend_Service_Rackspace_Files_Object+ YZend_Service_Rackspace_Files_Exception/ aZend_Service_Rackspace_Files_ContainerList+ YZend_Service_Rackspace_Files_Container% MZend_Service_Rackspace_Exception$ KZend_Service_Rackspace_Abstract   R  AR<g/Q!


}
E
			\	,Bi?rK!{Y4{]>zM8nU2U!                          /1 aZend_Soap_Wsdl_Strategy_DefaultComplexType&0 OZend_Soap_Wsdl_Strategy_Composite0/ cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence/. aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex$- KZend_Soap_Wsdl_Strategy_AnyType%, MZend_Soap_Wsdl_Strategy_Abstract+ =Zend_Soap_Wsdl_Exception* -Zend_Soap_Server) 9Zend_Soap_Server_Proxy( AZend_Soap_Server_Exception' -Zend_Soap_Client& 9Zend_Soap_Client_Local% AZend_Soap_Client_Exception$ ;Zend_Soap_Client_DotNet# ;Zend_Soap_Client_Common" 9Zend_Soap_AutoDiscover%! MZend_Soap_AutoDiscover_Exception  %Zend_Session) UZend_Session_Validator_HttpUserAgent% MZend_Session_Validator_Exception$ KZend_Session_Validator_Abstract' QZend_Session_SaveHandler_Exception% MZend_Session_SaveHandler_DbTable 9Zend_Session_Namespace 9Zend_Session_Exception 7Zend_Session_Abstract 1Zend_Service_Yahoo$ KZend_Service_Yahoo_WebResultSet! EZend_Service_Yahoo_WebResult& OZend_Service_Yahoo_VideoResultSet# IZend_Service_Yahoo_VideoResult! EZend_Service_Yahoo_ResultSet ?Zend_Service_Yahoo_Result) UZend_Service_Yahoo_PageDataResultSet& OZend_Service_Yahoo_PageDataResult% MZend_Service_Yahoo_NewsResultSet" GZend_Service_Yahoo_NewsResult& OZend_Service_Yahoo_LocalResultSet# IZend_Service_Yahoo_LocalResult+
 YZend_Service_Yahoo_InlinkDataResultSet(	 SZend_Service_Yahoo_InlinkDataResult& OZend_Service_Yahoo_ImageResultSet# IZend_Service_Yahoo_ImageResult =Zend_Service_Yahoo_Image& OZend_Service_WindowsAzure_Storage4 kZend_Service_WindowsAzure_Storage_TableInstance7 qZend_Service_WindowsAzure_Storage_TableEntityQuery2 gZend_Service_WindowsAzure_Storage_TableEntity, [Zend_Service_WindowsAzure_Storage_Table<  {Zend_Service_WindowsAzure_Storage_StorageEntityAbstract7 qZend_Service_WindowsAzure_Storage_SignedIdentifier3~ iZend_Service_WindowsAzure_Storage_QueueMessage4} kZend_Service_WindowsAzure_Storage_QueueInstance,| [Zend_Service_WindowsAzure_Storage_Queue9{ uZend_Service_WindowsAzure_Storage_PageRegionInstance4z kZend_Service_WindowsAzure_Storage_LeaseInstance9y uZend_Service_WindowsAzure_Storage_DynamicTableEntity3x iZend_Service_WindowsAzure_Storage_BlobInstance4w kZend_Service_WindowsAzure_Storage_BlobContainer+v YZend_Service_WindowsAzure_Storage_Blob2u gZend_Service_WindowsAzure_Storage_Blob_Stream;t yZend_Service_WindowsAzure_Storage_BatchStorageAbstract,s [Zend_Service_WindowsAzure_Storage_Batch-r ]Zend_Service_WindowsAzure_SessionHandler>q Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract1p eZend_Service_WindowsAzure_RetryPolicy_RetryN2o gZend_Service_WindowsAzure_RetryPolicy_NoRetry4n kZend_Service_WindowsAzure_RetryPolicy_ExceptionHm Zend_Service_WindowsAzure_Management_SubscriptionOperationInstanceAl Zend_Service_WindowsAzure_Management_StorageServiceInstance@k Zend_Service_WindowsAzure_Management_ServiceEntityAbstractBj Zend_Service_WindowsAzure_Management_OperationStatusInstanceBi Zend_Service_WindowsAzure_Management_OperatingSystemInstanceHh Zend_Service_WindowsAzure_Management_OperatingSystemFamilyInstance:g wZend_Service_WindowsAzure_Management_LocationInstance@f Zend_Service_WindowsAzure_Management_HostedServiceInstance3e iZend_Service_WindowsAzure_Management_Exception<d {Zend_Service_WindowsAzure_Management_DeploymentInstance0c cZend_Service_WindowsAzure_Management_Client=b }Zend_Service_WindowsAzure_Management_CertificateInstance@a Zend_Service_WindowsAzure_Management_AffinityGroupInstance6` oZend_Service_WindowsAzure_Log_Writer_WindowsAzure   Y  lS.cB+xH[+[%



w
J
				_	.	 gN2kK1^2dCs6
k6<                          0
 cZend_Tool_Framework_Manifest_ActionMetadata1	 eZend_Tool_Framework_Loader_IncludePathLoaderJ Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator+ YZend_Tool_Framework_Loader_BasicLoader( SZend_Tool_Framework_Loader_Abstract" GZend_Tool_Framework_Exception' QZend_Tool_Framework_Client_Storage1 eZend_Tool_Framework_Client_Storage_Directory( SZend_Tool_Framework_Client_ResponseD 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator'  QZend_Tool_Framework_Client_Request( SZend_Tool_Framework_Client_Manifest9~ uZend_Tool_Framework_Client_Interactive_InputResponse8} sZend_Tool_Framework_Client_Interactive_InputRequest8| sZend_Tool_Framework_Client_Interactive_InputHandler){ UZend_Tool_Framework_Client_Exception'z QZend_Tool_Framework_Client_ConsoleDy 	Zend_Tool_Framework_Client_Console_ResponseDecorator_IndentionDx 	Zend_Tool_Framework_Client_Console_ResponseDecorator_ColorizerCw Zend_Tool_Framework_Client_Console_ResponseDecorator_BlockizeFv Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter0u cZend_Tool_Framework_Client_Console_Manifest2t gZend_Tool_Framework_Client_Console_HelpSystem6s oZend_Tool_Framework_Client_Console_ArgumentParser&r OZend_Tool_Framework_Client_Config(q SZend_Tool_Framework_Client_Abstract*p WZend_Tool_Framework_Action_Repository)o UZend_Tool_Framework_Action_Exception$n KZend_Tool_Framework_Action_Basem 'Zend_TimeSyncl 1Zend_TimeSync_Sntpk 9Zend_TimeSync_Protocolj /Zend_TimeSync_Ntpi ;Zend_TimeSync_Exceptionh +Zend_Text_Tableg 3Zend_Text_Table_Rowf ?Zend_Text_Table_Exception&e OZend_Text_Table_Decorator_Unicode$d KZend_Text_Table_Decorator_Asciic 9Zend_Text_Table_Columnb 3Zend_Text_MultiBytea -Zend_Text_Figlet` AZend_Text_Figlet_Exception_ 3Zend_Text_Exception&^ OZend_Test_PHPUnit_Db_SimpleTester,] [Zend_Test_PHPUnit_Db_Operation_Truncate*\ WZend_Test_PHPUnit_Db_Operation_Insert-[ ]Zend_Test_PHPUnit_Db_Operation_DeleteAll*Z WZend_Test_PHPUnit_Db_Metadata_Generic#Y IZend_Test_PHPUnit_Db_Exception,X [Zend_Test_PHPUnit_Db_DataSet_QueryTable.W _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet0V cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet)U UZend_Test_PHPUnit_Db_DataSet_DbTable*T WZend_Test_PHPUnit_Db_DataSet_DbRowset$S KZend_Test_PHPUnit_Db_Connection'R QZend_Test_PHPUnit_DatabaseTestCase)Q UZend_Test_PHPUnit_ControllerTestCase2P gZend_Test_PHPUnit_Constraint_ResponseHeader412O gZend_Test_PHPUnit_Constraint_ResponseHeader372N gZend_Test_PHPUnit_Constraint_ResponseHeader340M cZend_Test_PHPUnit_Constraint_ResponseHeader,L [Zend_Test_PHPUnit_Constraint_Redirect41,K [Zend_Test_PHPUnit_Constraint_Redirect37,J [Zend_Test_PHPUnit_Constraint_Redirect34*I WZend_Test_PHPUnit_Constraint_Redirect+H YZend_Test_PHPUnit_Constraint_Exception,G [Zend_Test_PHPUnit_Constraint_DomQuery41,F [Zend_Test_PHPUnit_Constraint_DomQuery37,E [Zend_Test_PHPUnit_Constraint_DomQuery34*D WZend_Test_PHPUnit_Constraint_DomQueryC 7Zend_Test_DbStatementB 3Zend_Test_DbAdapterA /Zend_Tag_ItemList@ 'Zend_Tag_Item? 1Zend_Tag_Exception> )Zend_Tag_Cloud= =Zend_Tag_Cloud_Exception!< EZend_Tag_Cloud_Decorator_Tag%; MZend_Tag_Cloud_Decorator_HtmlTag': QZend_Tag_Cloud_Decorator_HtmlCloud'9 QZend_Tag_Cloud_Decorator_Exception#8 IZend_Tag_Cloud_Decorator_Cloud!7 EZend_Stdlib_SplPriorityQueue6 -SplPriorityQueue5 ?Zend_Stdlib_PriorityQueue34 iZend_Stdlib_Exception_InvalidCallbackException 3 CZend_Stdlib_CallbackHandler2 )Zend_Soap_Wsdl   J  m=^.zIMzD


t
8				X	|Lu?yGi3 g1Sd-r)             :T wZend_Tool_Project_Context_Zf_TestApplicationDirectory@S Zend_Tool_Project_Context_Zf_TestApplicationControllerFileER Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory>Q Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile=P }Zend_Tool_Project_Context_Zf_TestApplicationActionMethod4O kZend_Tool_Project_Context_Zf_TemporaryDirectory3N iZend_Tool_Project_Context_Zf_SessionsDirectory3M iZend_Tool_Project_Context_Zf_ServicesDirectory8L sZend_Tool_Project_Context_Zf_SearchIndexesDirectory<K {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory8J sZend_Tool_Project_Context_Zf_PublicScriptsDirectory1I eZend_Tool_Project_Context_Zf_PublicIndexFile7H qZend_Tool_Project_Context_Zf_PublicImagesDirectory1G eZend_Tool_Project_Context_Zf_PublicDirectory5F mZend_Tool_Project_Context_Zf_ProjectProviderFile2E gZend_Tool_Project_Context_Zf_ModulesDirectory1D eZend_Tool_Project_Context_Zf_ModuleDirectory1C eZend_Tool_Project_Context_Zf_ModelsDirectory+B YZend_Tool_Project_Context_Zf_ModelFile/A aZend_Tool_Project_Context_Zf_LogsDirectory2@ gZend_Tool_Project_Context_Zf_LocalesDirectory2? gZend_Tool_Project_Context_Zf_LibraryDirectory2> gZend_Tool_Project_Context_Zf_LayoutsDirectory8= sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory2< gZend_Tool_Project_Context_Zf_LayoutScriptFile.; _Zend_Tool_Project_Context_Zf_HtaccessFile0: cZend_Tool_Project_Context_Zf_FormsDirectory*9 WZend_Tool_Project_Context_Zf_FormFile/8 aZend_Tool_Project_Context_Zf_DocsDirectory-7 ]Zend_Tool_Project_Context_Zf_DbTableFile26 gZend_Tool_Project_Context_Zf_DbTableDirectory/5 aZend_Tool_Project_Context_Zf_DataDirectory64 oZend_Tool_Project_Context_Zf_ControllersDirectory03 cZend_Tool_Project_Context_Zf_ControllerFile22 gZend_Tool_Project_Context_Zf_ConfigsDirectory,1 [Zend_Tool_Project_Context_Zf_ConfigFile00 cZend_Tool_Project_Context_Zf_CacheDirectory// aZend_Tool_Project_Context_Zf_BootstrapFile6. oZend_Tool_Project_Context_Zf_ApplicationDirectory7- qZend_Tool_Project_Context_Zf_ApplicationConfigFile/, aZend_Tool_Project_Context_Zf_ApisDirectory.+ _Zend_Tool_Project_Context_Zf_ActionMethod3* iZend_Tool_Project_Context_Zf_AbstractClassFile@) Zend_Tool_Project_Context_System_ProjectProvidersDirectory8( sZend_Tool_Project_Context_System_ProjectProfileFile6' oZend_Tool_Project_Context_System_ProjectDirectory)& UZend_Tool_Project_Context_Repository.% _Zend_Tool_Project_Context_Filesystem_File3$ iZend_Tool_Project_Context_Filesystem_Directory2# gZend_Tool_Project_Context_Filesystem_Abstract(" SZend_Tool_Project_Context_Exception-! ]Zend_Tool_Project_Context_Content_Engine3  iZend_Tool_Project_Context_Content_Engine_Phtml; yZend_Tool_Project_Context_Content_Engine_CodeGenerator0 cZend_Tool_Framework_System_Provider_Version0 cZend_Tool_Framework_System_Provider_Phpinfo1 eZend_Tool_Framework_System_Provider_Manifest/ aZend_Tool_Framework_System_Provider_Config( SZend_Tool_Framework_System_Manifest- ]Zend_Tool_Framework_System_Action_Delete- ]Zend_Tool_Framework_System_Action_Create! EZend_Tool_Framework_Registry+ YZend_Tool_Framework_Registry_Exception+ YZend_Tool_Framework_Provider_Signature, [Zend_Tool_Framework_Provider_Repository+ YZend_Tool_Framework_Provider_Exception* WZend_Tool_Framework_Provider_Abstract& OZend_Tool_Framework_Metadata_Tool) UZend_Tool_Framework_Metadata_Dynamic' QZend_Tool_Framework_Metadata_Basic, [Zend_Tool_Framework_Manifest_Repository2 gZend_Tool_Framework_Manifest_ProviderMetadata* WZend_Tool_Framework_Manifest_Metadata+ YZend_Tool_Framework_Manifest_Exception   [  u7F\"zFL


n
L
 				l	A	mCjE"pK&oP4pH#kH%k=\9                         / 7Zend_Validate_Barcode. AZend_Validate_Barcode_Upce- AZend_Validate_Barcode_Upca, AZend_Validate_Barcode_Sscc$+ KZend_Validate_Barcode_Royalmail"* GZend_Validate_Barcode_Postnet!) EZend_Validate_Barcode_Planet#( IZend_Validate_Barcode_Leitcode ' CZend_Validate_Barcode_Itf14& AZend_Validate_Barcode_Issn*% WZend_Validate_Barcode_IntelligentMail$$ KZend_Validate_Barcode_Identcode!# EZend_Validate_Barcode_Gtin14!" EZend_Validate_Barcode_Gtin13!! EZend_Validate_Barcode_Gtin12  AZend_Validate_Barcode_Ean8 AZend_Validate_Barcode_Ean5 AZend_Validate_Barcode_Ean2  CZend_Validate_Barcode_Ean18  CZend_Validate_Barcode_Ean14  CZend_Validate_Barcode_Ean13  CZend_Validate_Barcode_Ean12$ KZend_Validate_Barcode_Code93ext! EZend_Validate_Barcode_Code93$ KZend_Validate_Barcode_Code39ext! EZend_Validate_Barcode_Code39, [Zend_Validate_Barcode_Code25interleaved! EZend_Validate_Barcode_Code25* WZend_Validate_Barcode_AdapterAbstract 3Zend_Validate_Alpha 3Zend_Validate_Alnum 9Zend_Validate_Abstract Zend_Uri 'Zend_Uri_Http 1Zend_Uri_Exception )Zend_Translate 7Zend_Translate_Plural
 =Zend_Translate_Exception	 9Zend_Translate_Adapter! EZend_Translate_Adapter_XmlTm! EZend_Translate_Adapter_Xliff AZend_Translate_Adapter_Tmx AZend_Translate_Adapter_Tbx ?Zend_Translate_Adapter_Qt AZend_Translate_Adapter_Ini# IZend_Translate_Adapter_Gettext AZend_Translate_Adapter_Csv!  EZend_Translate_Adapter_Array$ KZend_Tool_Project_Provider_View$~ KZend_Tool_Project_Provider_Test/} aZend_Tool_Project_Provider_ProjectProvider'| QZend_Tool_Project_Provider_Project'{ QZend_Tool_Project_Provider_Profile&z OZend_Tool_Project_Provider_Module%y MZend_Tool_Project_Provider_Model(x SZend_Tool_Project_Provider_Manifest&w OZend_Tool_Project_Provider_Layout$v KZend_Tool_Project_Provider_Form)u UZend_Tool_Project_Provider_Exception't QZend_Tool_Project_Provider_DbTable)s UZend_Tool_Project_Provider_DbAdapter*r WZend_Tool_Project_Provider_Controller+q YZend_Tool_Project_Provider_Application&p OZend_Tool_Project_Provider_Action(o SZend_Tool_Project_Provider_Abstractn ?Zend_Tool_Project_Profile'm QZend_Tool_Project_Profile_Resource9l uZend_Tool_Project_Profile_Resource_SearchConstraints1k eZend_Tool_Project_Profile_Resource_Container=j }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter5i mZend_Tool_Project_Profile_Iterator_ContextFilter-h ]Zend_Tool_Project_Profile_FileParser_Xml(g SZend_Tool_Project_Profile_Exception f CZend_Tool_Project_Exception<e {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory0d cZend_Tool_Project_Context_Zf_ViewsDirectory6c oZend_Tool_Project_Context_Zf_ViewScriptsDirectory0b cZend_Tool_Project_Context_Zf_ViewScriptFile6a oZend_Tool_Project_Context_Zf_ViewHelpersDirectory6` oZend_Tool_Project_Context_Zf_ViewFiltersDirectoryA_ Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory2^ gZend_Tool_Project_Context_Zf_UploadsDirectory0] cZend_Tool_Project_Context_Zf_TestsDirectory7\ qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile:[ wZend_Tool_Project_Context_Zf_TestPHPUnitBootstrapFile@Z Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory1Y eZend_Tool_Project_Context_Zf_TestLibraryFile6X oZend_Tool_Project_Context_Zf_TestLibraryDirectory:W wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFileBV Zend_Tool_Project_Context_Zf_TestApplicationModulesDirectoryAU Zend_Tool_Project_Context_Zf_TestApplicationModuleDirectory   m  kI!zY-vQ)~^<eG-




~
b
9
					|	a	E	#	|[9fBfCoM)yU3xEwL+[,                   4 kZend_View_Helper_Placeholder_Registry_Exception+ YZend_View_Helper_Placeholder_Container6 oZend_View_Helper_Placeholder_Container_Standalone5 mZend_View_Helper_Placeholder_Container_Exception4 kZend_View_Helper_Placeholder_Container_Abstract! EZend_View_Helper_PartialLoop =Zend_View_Helper_Partial' QZend_View_Helper_Partial_Exception' QZend_View_Helper_PaginationControl  CZend_View_Helper_Navigation( SZend_View_Helper_Navigation_Sitemap% MZend_View_Helper_Navigation_Menu& OZend_View_Helper_Navigation_Links/ aZend_View_Helper_Navigation_HelperAbstract, [Zend_View_Helper_Navigation_Breadcrumbs ;Zend_View_Helper_Layout 7Zend_View_Helper_Json" GZend_View_Helper_InlineScript#
 IZend_View_Helper_HtmlQuicktime	 ?Zend_View_Helper_HtmlPage  CZend_View_Helper_HtmlObject ?Zend_View_Helper_HtmlList AZend_View_Helper_HtmlFlash! EZend_View_Helper_HtmlElement AZend_View_Helper_HeadTitle AZend_View_Helper_HeadStyle  CZend_View_Helper_HeadScript ?Zend_View_Helper_HeadMeta  ?Zend_View_Helper_HeadLink ?Zend_View_Helper_Gravatar"~ GZend_View_Helper_FormTextarea} ?Zend_View_Helper_FormText | CZend_View_Helper_FormSubmit { CZend_View_Helper_FormSelectz AZend_View_Helper_FormResety AZend_View_Helper_FormRadio"x GZend_View_Helper_FormPasswordw ?Zend_View_Helper_FormNote'v QZend_View_Helper_FormMultiCheckboxu AZend_View_Helper_FormLabelt AZend_View_Helper_FormImage s CZend_View_Helper_FormHiddenr ?Zend_View_Helper_FormFile q CZend_View_Helper_FormErrors!p EZend_View_Helper_FormElement"o GZend_View_Helper_FormCheckbox n CZend_View_Helper_FormButtonm 7Zend_View_Helper_Forml ?Zend_View_Helper_Fieldsetk =Zend_View_Helper_Doctype!j EZend_View_Helper_DeclareVarsi 9Zend_View_Helper_Cycleh ?Zend_View_Helper_Currencyg =Zend_View_Helper_BaseUrlf ;Zend_View_Helper_Actione ?Zend_View_Helper_Abstractd 3Zend_View_Exceptionc 1Zend_View_Abstractb %Zend_Versiona 'Zend_Validate` AZend_Validate_StringLength#_ IZend_Validate_Sitemap_Priority^ ?Zend_Validate_Sitemap_Loc"] GZend_Validate_Sitemap_Lastmod%\ MZend_Validate_Sitemap_Changefreq[ 3Zend_Validate_RegexZ 9Zend_Validate_PostCodeY 9Zend_Validate_NotEmptyX 9Zend_Validate_LessThanW 7Zend_Validate_Ldap_DnV 1Zend_Validate_IsbnU -Zend_Validate_IpT /Zend_Validate_IntS 7Zend_Validate_InArrayR ;Zend_Validate_IdenticalQ 1Zend_Validate_IbanP 9Zend_Validate_HostnameO /Zend_Validate_HexN ?Zend_Validate_GreaterThanM 3Zend_Validate_Float!L EZend_Validate_File_WordCountK ?Zend_Validate_File_UploadJ ;Zend_Validate_File_SizeI ;Zend_Validate_File_Sha1!H EZend_Validate_File_NotExists G CZend_Validate_File_MimeTypeF 9Zend_Validate_File_Md5E AZend_Validate_File_IsImage$D KZend_Validate_File_IsCompressed!C EZend_Validate_File_ImageSizeB ;Zend_Validate_File_Hash!A EZend_Validate_File_FilesSize!@ EZend_Validate_File_Extension? ?Zend_Validate_File_Exists'> QZend_Validate_File_ExcludeMimeType(= SZend_Validate_File_ExcludeExtension< =Zend_Validate_File_Crc32; =Zend_Validate_File_Count: ;Zend_Validate_Exception9 AZend_Validate_EmailAddress8 5Zend_Validate_Digits"7 GZend_Validate_Db_RecordExists$6 KZend_Validate_Db_NoRecordExists5 ?Zend_Validate_Db_Abstract4 1Zend_Validate_Date3 =Zend_Validate_CreditCard2 3Zend_Validate_Ccnum1 9Zend_Validate_Callback0 7Zend_Validate_Between   j ]:X&}S*lR(qO2




n
M
(
				y	W	9	^?){`7yU(sZ;![*g9W4	d8                                          . _Zend_Application_Resource_Frontcontroller	( SZend_Application_Resource_Exception	# IZend_Application_Resource_Dojo	! EZend_Application_Resource_Db	+ YZend_Application_Resource_Cachemanager	& OZend_Application_Module_Bootstrap	'  QZend_Application_Module_Autoloader	 AZend_Application_Exception	)~ UZend_Application_Bootstrap_Exception	1} eZend_Application_Bootstrap_BootstrapAbstract	)| UZend_Application_Bootstrap_Bootstrap	{ ?Zend_Amf_Value_TraitsInfo	-z ]Zend_Amf_Value_Messaging_RemotingMessage	*y WZend_Amf_Value_Messaging_ErrorMessage	,x [Zend_Amf_Value_Messaging_CommandMessage	*w WZend_Amf_Value_Messaging_AsyncMessage	-v ]Zend_Amf_Value_Messaging_ArrayCollection	0u cZend_Amf_Value_Messaging_AcknowledgeMessage	-t ]Zend_Amf_Value_Messaging_AbstractMessage	!s EZend_Amf_Value_MessageHeader	r AZend_Amf_Value_MessageBody	q =Zend_Amf_Value_ByteArray	p AZend_Amf_Util_BinaryStream	o +Zend_Amf_Server	n ?Zend_Amf_Server_Exception	m /Zend_Amf_Response	l 9Zend_Amf_Response_Http	k -Zend_Amf_Request	j 7Zend_Amf_Request_Http	i ?Zend_Amf_Parse_TypeLoader	h ?Zend_Amf_Parse_Serializer	#g IZend_Amf_Parse_Resource_Stream	(f SZend_Amf_Parse_Resource_MysqlResult	)e UZend_Amf_Parse_Resource_MysqliResult	 d CZend_Amf_Parse_OutputStream	c AZend_Amf_Parse_InputStream	 b CZend_Amf_Parse_Deserializer	#a IZend_Amf_Parse_Amf3_Serializer	%` MZend_Amf_Parse_Amf3_Deserializer	#_ IZend_Amf_Parse_Amf0_Serializer	%^ MZend_Amf_Parse_Amf0_Deserializer	] 1Zend_Amf_Exception	\ 1Zend_Amf_Constants	[ 9Zend_Amf_Auth_Abstract	 Z CZend_Amf_Adobe_Introspector	Y AZend_Amf_Adobe_DbInspector	X 3Zend_Amf_Adobe_Auth	W Zend_Acl	V 'Zend_Acl_Role	U 9Zend_Acl_Role_Registry	%T MZend_Acl_Role_Registry_Exception	S /Zend_Acl_Resource	R 1Zend_Acl_Exception	Q /Zend_XmlRpc_ValueP =Zend_XmlRpc_Value_StructO =Zend_XmlRpc_Value_StringN =Zend_XmlRpc_Value_ScalarM 7Zend_XmlRpc_Value_NilL ?Zend_XmlRpc_Value_Integer K CZend_XmlRpc_Value_ExceptionJ =Zend_XmlRpc_Value_DoubleI AZend_XmlRpc_Value_DateTime!H EZend_XmlRpc_Value_CollectionG ?Zend_XmlRpc_Value_Boolean!F EZend_XmlRpc_Value_BigIntegerE =Zend_XmlRpc_Value_Base64D ;Zend_XmlRpc_Value_ArrayC 1Zend_XmlRpc_ServerB ?Zend_XmlRpc_Server_SystemA =Zend_XmlRpc_Server_Fault!@ EZend_XmlRpc_Server_Exception? =Zend_XmlRpc_Server_Cache> 5Zend_XmlRpc_Response= ?Zend_XmlRpc_Response_Http< 3Zend_XmlRpc_Request; ?Zend_XmlRpc_Request_Stdin: =Zend_XmlRpc_Request_Http$9 KZend_XmlRpc_Generator_XmlWriter,8 [Zend_XmlRpc_Generator_GeneratorAbstract&7 OZend_XmlRpc_Generator_DomDocument6 /Zend_XmlRpc_Fault5 7Zend_XmlRpc_Exception4 1Zend_XmlRpc_Client#3 IZend_XmlRpc_Client_ServerProxy+2 YZend_XmlRpc_Client_ServerIntrospection+1 YZend_XmlRpc_Client_IntrospectException%0 MZend_XmlRpc_Client_HttpException&/ OZend_XmlRpc_Client_FaultException!. EZend_XmlRpc_Client_Exception- /Zend_Xml_Security, 1Zend_Xml_Exception&+ OZend_Wildfire_Protocol_JsonStream!* EZend_Wildfire_Plugin_FirePhp.) _Zend_Wildfire_Plugin_FirePhp_TableMessage)( UZend_Wildfire_Plugin_FirePhp_Message' ;Zend_Wildfire_Exception&& OZend_Wildfire_Channel_HttpHeaders% Zend_View$ -Zend_View_Stream# AZend_View_Helper_UserAgent" 5Zend_View_Helper_Url! AZend_View_Helper_Translate  AZend_View_Helper_ServerUrl) UZend_View_Helper_RenderToPlaceholder! EZend_View_Helper_Placeholder* WZend_View_Helper_Placeholder_Registry   X  h=M& kF)`>_5




k
A
				n	D	|S2wSZ0~RU)]$U$c8                       5_ mZend_Tool_Project_Context_System_NotOverwritable/^ aZend_Tool_Project_Context_System_Interface(] SZend_Tool_Project_Context_Interface+\ YZend_Tool_Framework_Registry_Interface2[ gZend_Tool_Framework_Registry_EnabledInterface-Z ]Zend_Tool_Framework_Provider_Pretendable+Y YZend_Tool_Framework_Provider_Interface.X _Zend_Tool_Framework_Provider_Interactable/W aZend_Tool_Framework_Provider_Initializable;V yZend_Tool_Framework_Provider_DocblockManifestInterface+U YZend_Tool_Framework_Metadata_Interface.T _Zend_Tool_Framework_Metadata_Attributable6S oZend_Tool_Framework_Manifest_ProviderManifestable6R oZend_Tool_Framework_Manifest_MetadataManifestable+Q YZend_Tool_Framework_Manifest_Interface+P YZend_Tool_Framework_Manifest_Indexable4O kZend_Tool_Framework_Manifest_ActionManifestable)N UZend_Tool_Framework_Loader_Interface8M sZend_Tool_Framework_Client_Storage_AdapterInterfaceDL 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface;K yZend_Tool_Framework_Client_Interactive_OutputInterface:J wZend_Tool_Framework_Client_Interactive_InputInterface)I UZend_Tool_Framework_Action_Interface(H SZend_Text_Table_Decorator_InterfaceG /Zend_Tag_TaggableF 7Zend_Stdlib_Exception&E OZend_Soap_Wsdl_Strategy_Interface%D MZend_Session_Validator_Interface'C QZend_Session_SaveHandler_Interface$B KZend_Service_ShortUrl_ShortenerKA Zend_Service_Console_Command_ParameterSource_ParameterSourceInterface@ 7Zend_Server_Interface-? ]Zend_Serializer_Adapter_AdapterInterface4> kZend_Search_Lucene_Search_Highlighter_Interface!= EZend_Search_Lucene_Interface3< iZend_Search_Lucene_Index_TermsStream_Interface$; KZend_Queue_Stomp_FrameInterface0: cZend_Queue_Stomp_Client_ConnectionInterface(9 SZend_Queue_Adapter_AdapterInterface8 ?Zend_Pdf_Filter_Interface&7 OZend_Pdf_ElementFactory_Interface6 ?Zend_Pdf_Canvas_Interface,5 [Zend_Paginator_ScrollingStyle_Interface$4 KZend_Paginator_AdapterAggregate%3 MZend_Paginator_Adapter_Interface&2 OZend_Oauth_Config_ConfigInterface'1 QZend_Mobile_Push_Message_Interface0 AZend_Mobile_Push_Interface$/ KZend_Memory_Container_Interface1. eZend_Markup_Renderer_TokenConverterInterface'- QZend_Markup_Parser_ParserInterface), UZend_Mail_Storage_Writable_Interface'+ QZend_Mail_Storage_Folder_Interface* =Zend_Mail_Part_Interface ) CZend_Mail_Message_Interface!( EZend_Log_Formatter_Interface' ?Zend_Log_Filter_Interface& ?Zend_Log_FactoryInterface% ?Zend_Loader_SplAutoloader'$ QZend_Loader_PluginLoader_Interface%# MZend_Loader_Autoloader_Interface0" cZend_Ldap_Node_Schema_ObjectClass_Interface2! gZend_Ldap_Node_Schema_AttributeType_Interface   CZend_Http_UserAgent_Storage) UZend_Http_UserAgent_Features_Adapter AZend_Http_UserAgent_Device$ KZend_Http_Client_Adapter_Stream' QZend_Http_Client_Adapter_Interface AZend_Gdata_App_MediaSource. _Zend_Form_Decorator_Marker_File_Interface" GZend_Form_Decorator_Interface 7Zend_Filter_Interface" GZend_Filter_Encrypt_Interface+ YZend_Filter_Compress_CompressInterface0 cZend_Feed_Writer_Renderer_RendererInterface1 eZend_Feed_Writer_Extension_RendererInterface# IZend_Feed_Reader_FeedInterface$ KZend_Feed_Reader_EntryInterface7 qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface- ]Zend_Feed_Pubsubhubbub_CallbackInterface  CZend_Feed_Builder_Interface1 eZend_EventManager_SharedEventCollectionAware, [Zend_EventManager_SharedEventCollection( SZend_EventManager_ListenerAggregate =Zend_EventManager_Filter 
 CZend_EventManager_Exception(	 SZend_EventManager_EventManagerAware' QZend_EventManager_EventDescription   ^  _@kH)hE"]4h:



q
F
#
			u	R	"g4nL"U"mI&R+	g8oHj         '= QZend_Session_SaveHandler_Interface	$< KZend_Service_ShortUrl_Shortener	K; Zend_Service_Console_Command_ParameterSource_ParameterSourceInterface	: 7Zend_Server_Interface	-9 ]Zend_Serializer_Adapter_AdapterInterface	48 kZend_Search_Lucene_Search_Highlighter_Interface	!7 EZend_Search_Lucene_Interface	36 iZend_Search_Lucene_Index_TermsStream_Interface	$5 KZend_Queue_Stomp_FrameInterface	04 cZend_Queue_Stomp_Client_ConnectionInterface	(3 SZend_Queue_Adapter_AdapterInterface	2 ?Zend_Pdf_Filter_Interface	&1 OZend_Pdf_ElementFactory_Interface	0 ?Zend_Pdf_Canvas_Interface	,/ [Zend_Paginator_ScrollingStyle_Interface	$. KZend_Paginator_AdapterAggregate	%- MZend_Paginator_Adapter_Interface	&, OZend_Oauth_Config_ConfigInterface	'+ QZend_Mobile_Push_Message_Interface	* AZend_Mobile_Push_Interface	$) KZend_Memory_Container_Interface	1( eZend_Markup_Renderer_TokenConverterInterface	'' QZend_Markup_Parser_ParserInterface	)& UZend_Mail_Storage_Writable_Interface	'% QZend_Mail_Storage_Folder_Interface	$ =Zend_Mail_Part_Interface	 # CZend_Mail_Message_Interface	!" EZend_Log_Formatter_Interface	! ?Zend_Log_Filter_Interface	  ?Zend_Log_FactoryInterface	 ?Zend_Loader_SplAutoloader	' QZend_Loader_PluginLoader_Interface	% MZend_Loader_Autoloader_Interface	0 cZend_Ldap_Node_Schema_ObjectClass_Interface	2 gZend_Ldap_Node_Schema_AttributeType_Interface	  CZend_Http_UserAgent_Storage	) UZend_Http_UserAgent_Features_Adapter	 AZend_Http_UserAgent_Device	$ KZend_Http_Client_Adapter_Stream	' QZend_Http_Client_Adapter_Interface	 AZend_Gdata_App_MediaSource	. _Zend_Form_Decorator_Marker_File_Interface	" GZend_Form_Decorator_Interface	 7Zend_Filter_Interface	" GZend_Filter_Encrypt_Interface	+ YZend_Filter_Compress_CompressInterface	0 cZend_Feed_Writer_Renderer_RendererInterface	1 eZend_Feed_Writer_Extension_RendererInterface	# IZend_Feed_Reader_FeedInterface	$ KZend_Feed_Reader_EntryInterface	7 qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface	-
 ]Zend_Feed_Pubsubhubbub_CallbackInterface	 	 CZend_Feed_Builder_Interface	1 eZend_EventManager_SharedEventCollectionAware	, [Zend_EventManager_SharedEventCollection	( SZend_EventManager_ListenerAggregate	 =Zend_EventManager_Filter	  CZend_EventManager_Exception	( SZend_EventManager_EventManagerAware	' QZend_EventManager_EventDescription	& OZend_EventManager_EventCollection	   CZend_Db_Statement_Interface	$ KZend_Currency_CurrencyInterface	)~ UZend_Crypt_Math_BigInteger_Interface	+} YZend_Controller_Router_Route_Interface	%| MZend_Controller_Router_Interface	){ UZend_Controller_Dispatcher_Interface	%z MZend_Controller_Action_Interface	&y OZend_Cloud_StorageService_Adapter	$x KZend_Cloud_QueueService_Adapter	&w OZend_Cloud_Infrastructure_Adapter	,v [Zend_Cloud_DocumentService_QueryAdapter	'u QZend_Cloud_DocumentService_Adapter	t 5Zend_Captcha_Adapter	!s EZend_Cache_Backend_Interface	)r UZend_Cache_Backend_ExtendedInterface	 q CZend_Auth_Storage_Interface	 p CZend_Auth_Adapter_Interface	.o _Zend_Auth_Adapter_Http_Resolver_Interface	'n QZend_Application_Resource_Resource	4m kZend_Application_Bootstrap_ResourceBootstrapper	,l [Zend_Application_Bootstrap_Bootstrapper	k ;Zend_Acl_Role_Interface	 j CZend_Acl_Resource_Interface	i ?Zend_Acl_Assert_Interface	#h IZend_Wildfire_Plugin_Interface$g KZend_Wildfire_Channel_Interfacef 3Zend_View_Interface'e QZend_View_Helper_Navigation_Helperd AZend_View_Helper_Interfacec ;Zend_Validate_Interface+b YZend_Validate_Barcode_AdapterInterface3a iZend_Tool_Project_Profile_FileParser_Interface:` wZend_Tool_Project_Context_System_TopLevelRestrictable   h  a7Z.[)hDT1




d
>
					_	>	^I*vT4vJ$	mH%gL-{G	vIp<               &n OZend_Cloud_Infrastructure_Factory	(m SZend_Cloud_Infrastructure_Exception	0l cZend_Cloud_Infrastructure_Adapter_Rackspace	*k WZend_Cloud_Infrastructure_Adapter_Ec2	6j oZend_Cloud_Infrastructure_Adapter_AbstractAdapter	i 5Zend_Cloud_Exception	%h MZend_Cloud_DocumentService_Query	'g QZend_Cloud_DocumentService_Factory	)f UZend_Cloud_DocumentService_Exception	+e YZend_Cloud_DocumentService_DocumentSet	(d SZend_Cloud_DocumentService_Document	4c kZend_Cloud_DocumentService_Adapter_WindowsAzure	:b wZend_Cloud_DocumentService_Adapter_WindowsAzure_Query	0a cZend_Cloud_DocumentService_Adapter_SimpleDb	6` oZend_Cloud_DocumentService_Adapter_SimpleDb_Query	7_ qZend_Cloud_DocumentService_Adapter_AbstractAdapter	^ AZend_Cloud_AbstractFactory	] /Zend_Captcha_Word	\ 9Zend_Captcha_ReCaptcha	[ 1Zend_Captcha_Image	Z 3Zend_Captcha_Figlet	Y 9Zend_Captcha_Exception	X /Zend_Captcha_Dumb	W /Zend_Captcha_Base	V !Zend_Cache	U 1Zend_Cache_Manager	T =Zend_Cache_Frontend_Page	S AZend_Cache_Frontend_Output	!R EZend_Cache_Frontend_Function	Q =Zend_Cache_Frontend_File	P ?Zend_Cache_Frontend_Class	 O CZend_Cache_Frontend_Capture	N 5Zend_Cache_Exception	M +Zend_Cache_Core	L 1Zend_Cache_Backend	"K GZend_Cache_Backend_ZendServer	(J SZend_Cache_Backend_ZendServer_ShMem	'I QZend_Cache_Backend_ZendServer_Disk	$H KZend_Cache_Backend_ZendPlatform	G ?Zend_Cache_Backend_Xcache	 F CZend_Cache_Backend_WinCache	!E EZend_Cache_Backend_TwoLevels	D ;Zend_Cache_Backend_Test	C ?Zend_Cache_Backend_Static	B ?Zend_Cache_Backend_Sqlite	!A EZend_Cache_Backend_Memcached	$@ KZend_Cache_Backend_Libmemcached	? ;Zend_Cache_Backend_File	!> EZend_Cache_Backend_BlackHole	= 9Zend_Cache_Backend_Apc	< %Zend_Barcode	; ?Zend_Barcode_Renderer_Svg	+: YZend_Barcode_Renderer_RendererAbstract	9 ?Zend_Barcode_Renderer_Pdf	 8 CZend_Barcode_Renderer_Image	$7 KZend_Barcode_Renderer_Exception	6 =Zend_Barcode_Object_Upce	5 =Zend_Barcode_Object_Upca	"4 GZend_Barcode_Object_Royalmail	 3 CZend_Barcode_Object_Postnet	2 AZend_Barcode_Object_Planet	'1 QZend_Barcode_Object_ObjectAbstract	!0 EZend_Barcode_Object_Leitcode	/ ?Zend_Barcode_Object_Itf14	". GZend_Barcode_Object_Identcode	"- GZend_Barcode_Object_Exception	, ?Zend_Barcode_Object_Error	+ =Zend_Barcode_Object_Ean8	* =Zend_Barcode_Object_Ean5	) =Zend_Barcode_Object_Ean2	( ?Zend_Barcode_Object_Ean13	' AZend_Barcode_Object_Code39	*& WZend_Barcode_Object_Code25interleaved	% AZend_Barcode_Object_Code25	 $ CZend_Barcode_Object_Code128	# 9Zend_Barcode_Exception	" Zend_Auth	! ?Zend_Auth_Storage_Session	$  KZend_Auth_Storage_NonPersistent	  CZend_Auth_Storage_Exception	 -Zend_Auth_Result	 3Zend_Auth_Exception	 =Zend_Auth_Adapter_OpenId	 9Zend_Auth_Adapter_Ldap	 9Zend_Auth_Adapter_Http	) UZend_Auth_Adapter_Http_Resolver_File	. _Zend_Auth_Adapter_Http_Resolver_Exception	  CZend_Auth_Adapter_Exception	 =Zend_Auth_Adapter_Digest	 ?Zend_Auth_Adapter_DbTable	 -Zend_Application	# IZend_Application_Resource_View	( SZend_Application_Resource_UserAgent	( SZend_Application_Resource_Translate	& OZend_Application_Resource_Session	% MZend_Application_Resource_Router	/ aZend_Application_Resource_ResourceAbstract	) UZend_Application_Resource_Navigation	& OZend_Application_Resource_Multidb	& OZend_Application_Resource_Modules	#
 IZend_Application_Resource_Mail	"	 GZend_Application_Resource_Log	% MZend_Application_Resource_Locale	% MZend_Application_Resource_Layout	   \  R U+{GiDm:



j
:
				X	:	"		bB'wHq1q@}^2qF wM(Z4                               $J KZend_Controller_Router_Abstract	*I WZend_Controller_Response_HttpTestCase	"H GZend_Controller_Response_Http	'G QZend_Controller_Response_Exception	!F EZend_Controller_Response_Cli	&E OZend_Controller_Response_Abstract	#D IZend_Controller_Request_Simple	)C UZend_Controller_Request_HttpTestCase	!B EZend_Controller_Request_Http	&A OZend_Controller_Request_Exception	&@ OZend_Controller_Request_Apache404	%? MZend_Controller_Request_Abstract	&> OZend_Controller_Plugin_PutHandler	(= SZend_Controller_Plugin_ErrorHandler	"< GZend_Controller_Plugin_Broker	'; QZend_Controller_Plugin_ActionStack	$: KZend_Controller_Plugin_Abstract	9 7Zend_Controller_Front	8 ?Zend_Controller_Exception	(7 SZend_Controller_Dispatcher_Standard	)6 UZend_Controller_Dispatcher_Exception	(5 SZend_Controller_Dispatcher_Abstract	4 9Zend_Controller_Action	(3 SZend_Controller_Action_HelperBroker	62 oZend_Controller_Action_HelperBroker_PriorityStack	/1 aZend_Controller_Action_Helper_ViewRenderer	&0 OZend_Controller_Action_Helper_Url	-/ ]Zend_Controller_Action_Helper_Redirector	'. QZend_Controller_Action_Helper_Json	1- eZend_Controller_Action_Helper_FlashMessenger	0, cZend_Controller_Action_Helper_ContextSwitch	(+ SZend_Controller_Action_Helper_Cache	<* {Zend_Controller_Action_Helper_AutoCompleteScriptaculous	3) iZend_Controller_Action_Helper_AutoCompleteDojo	8( sZend_Controller_Action_Helper_AutoComplete_Abstract	.' _Zend_Controller_Action_Helper_AjaxContext	.& _Zend_Controller_Action_Helper_ActionStack	+% YZend_Controller_Action_Helper_Abstract	%$ MZend_Controller_Action_Exception	# 3Zend_Console_Getopt	"" GZend_Console_Getopt_Exception	! #Zend_Config	  -Zend_Config_Yaml	 +Zend_Config_Xml	 1Zend_Config_Writer	 ;Zend_Config_Writer_Yaml	 9Zend_Config_Writer_Xml	 ;Zend_Config_Writer_Json	 9Zend_Config_Writer_Ini	$ KZend_Config_Writer_FileAbstract	 =Zend_Config_Writer_Array	 -Zend_Config_Json	 +Zend_Config_Ini	 7Zend_Config_Exception	$ KZend_CodeGenerator_Php_Property	1 eZend_CodeGenerator_Php_Property_DefaultValue	% MZend_CodeGenerator_Php_Parameter	2 gZend_CodeGenerator_Php_Parameter_DefaultValue	" GZend_CodeGenerator_Php_Method	, [Zend_CodeGenerator_Php_Member_Container	+ YZend_CodeGenerator_Php_Member_Abstract	  CZend_CodeGenerator_Php_File	% MZend_CodeGenerator_Php_Exception	$ KZend_CodeGenerator_Php_Docblock	(
 SZend_CodeGenerator_Php_Docblock_Tag	/	 aZend_CodeGenerator_Php_Docblock_Tag_Return	. _Zend_CodeGenerator_Php_Docblock_Tag_Param	0 cZend_CodeGenerator_Php_Docblock_Tag_License	! EZend_CodeGenerator_Php_Class	  CZend_CodeGenerator_Php_Body	$ KZend_CodeGenerator_Php_Abstract	! EZend_CodeGenerator_Exception	  CZend_CodeGenerator_Abstract	& OZend_Cloud_StorageService_Factory	(  SZend_Cloud_StorageService_Exception	3 iZend_Cloud_StorageService_Adapter_WindowsAzure	)~ UZend_Cloud_StorageService_Adapter_S3	0} cZend_Cloud_StorageService_Adapter_Rackspace	1| eZend_Cloud_StorageService_Adapter_FileSystem	'{ QZend_Cloud_QueueService_MessageSet	$z KZend_Cloud_QueueService_Message	$y KZend_Cloud_QueueService_Factory	&x OZend_Cloud_QueueService_Exception	.w _Zend_Cloud_QueueService_Adapter_ZendQueue	1v eZend_Cloud_QueueService_Adapter_WindowsAzure	(u SZend_Cloud_QueueService_Adapter_Sqs	4t kZend_Cloud_QueueService_Adapter_AbstractAdapter	.s _Zend_Cloud_OperationNotAvailableException	+r YZend_Cloud_Infrastructure_InstanceList	'q QZend_Cloud_Infrastructure_Instance	(p SZend_Cloud_Infrastructure_ImageList	$o KZend_Cloud_Infrastructure_Image	   n  W)V5`=kX8"	w[9




`
<
					s	J	+	_H gF$~_>pS,R#g<d<kE   ,8 [Zend_Dojo_Form_Element_HorizontalSlider	+7 YZend_Dojo_Form_Element_FilteringSelect	"6 GZend_Dojo_Form_Element_Editor	&5 OZend_Dojo_Form_Element_DijitMulti	!4 EZend_Dojo_Form_Element_Dijit	'3 QZend_Dojo_Form_Element_DateTextBox	+2 YZend_Dojo_Form_Element_CurrencyTextBox	$1 KZend_Dojo_Form_Element_ComboBox	$0 KZend_Dojo_Form_Element_CheckBox	"/ GZend_Dojo_Form_Element_Button	 . CZend_Dojo_Form_DisplayGroup	*- WZend_Dojo_Form_Decorator_TabContainer	,, [Zend_Dojo_Form_Decorator_StackContainer	,+ [Zend_Dojo_Form_Decorator_SplitContainer	'* QZend_Dojo_Form_Decorator_DijitForm	*) WZend_Dojo_Form_Decorator_DijitElement	,( [Zend_Dojo_Form_Decorator_DijitContainer	)' UZend_Dojo_Form_Decorator_ContentPane	-& ]Zend_Dojo_Form_Decorator_BorderContainer	+% YZend_Dojo_Form_Decorator_AccordionPane	0$ cZend_Dojo_Form_Decorator_AccordionContainer	# 3Zend_Dojo_Exception	" )Zend_Dojo_Data	! 5Zend_Dojo_BuildLayer	  !Zend_Debug	 Zend_Db	 'Zend_Db_Table	 5Zend_Db_Table_Select	# IZend_Db_Table_Select_Exception	 5Zend_Db_Table_Rowset	# IZend_Db_Table_Rowset_Exception	" GZend_Db_Table_Rowset_Abstract	 /Zend_Db_Table_Row	  CZend_Db_Table_Row_Exception	 AZend_Db_Table_Row_Abstract	 ;Zend_Db_Table_Exception	 =Zend_Db_Table_Definition	 9Zend_Db_Table_Abstract	 /Zend_Db_Statement	 =Zend_Db_Statement_Sqlsrv	' QZend_Db_Statement_Sqlsrv_Exception	 7Zend_Db_Statement_Pdo	 ?Zend_Db_Statement_Pdo_Oci	 ?Zend_Db_Statement_Pdo_Ibm	 =Zend_Db_Statement_Oracle	' QZend_Db_Statement_Oracle_Exception	
 =Zend_Db_Statement_Mysqli	'	 QZend_Db_Statement_Mysqli_Exception	  CZend_Db_Statement_Exception	 7Zend_Db_Statement_Db2	$ KZend_Db_Statement_Db2_Exception	 )Zend_Db_Select	 =Zend_Db_Select_Exception	 -Zend_Db_Profiler	 9Zend_Db_Profiler_Query	 =Zend_Db_Profiler_Firebug	  AZend_Db_Profiler_Exception	 %Zend_Db_Expr	~ /Zend_Db_Exception	} 9Zend_Db_Adapter_Sqlsrv	%| MZend_Db_Adapter_Sqlsrv_Exception	{ AZend_Db_Adapter_Pdo_Sqlite	z ?Zend_Db_Adapter_Pdo_Pgsql	y ;Zend_Db_Adapter_Pdo_Oci	x ?Zend_Db_Adapter_Pdo_Mysql	w ?Zend_Db_Adapter_Pdo_Mssql	v ;Zend_Db_Adapter_Pdo_Ibm	 u CZend_Db_Adapter_Pdo_Ibm_Ids	 t CZend_Db_Adapter_Pdo_Ibm_Db2	!s EZend_Db_Adapter_Pdo_Abstract	r 9Zend_Db_Adapter_Oracle	%q MZend_Db_Adapter_Oracle_Exception	p 9Zend_Db_Adapter_Mysqli	%o MZend_Db_Adapter_Mysqli_Exception	n ?Zend_Db_Adapter_Exception	m 3Zend_Db_Adapter_Db2	"l GZend_Db_Adapter_Db2_Exception	k =Zend_Db_Adapter_Abstract	j Zend_Date	i 3Zend_Date_Exception	h 5Zend_Date_DateObject	g -Zend_Date_Cities	f 'Zend_Currency	e ;Zend_Currency_Exception	d !Zend_Crypt	c )Zend_Crypt_Rsa	b 1Zend_Crypt_Rsa_Key	a ?Zend_Crypt_Rsa_Key_Public	` AZend_Crypt_Rsa_Key_Private	_ =Zend_Crypt_Rsa_Exception	^ +Zend_Crypt_Math	] ?Zend_Crypt_Math_Exception	\ AZend_Crypt_Math_BigInteger	#[ IZend_Crypt_Math_BigInteger_Gmp	)Z UZend_Crypt_Math_BigInteger_Exception	&Y OZend_Crypt_Math_BigInteger_Bcmath	X +Zend_Crypt_Hmac	W ?Zend_Crypt_Hmac_Exception	V 5Zend_Crypt_Exception	U =Zend_Crypt_DiffieHellman	'T QZend_Crypt_DiffieHellman_Exception	!S EZend_Controller_Router_Route	(R SZend_Controller_Router_Route_Static	'Q QZend_Controller_Router_Route_Regex	(P SZend_Controller_Router_Route_Module	*O WZend_Controller_Router_Route_Hostname	'N QZend_Controller_Router_Route_Chain	*M WZend_Controller_Router_Route_Abstract	#L IZend_Controller_Router_Rewrite	%K MZend_Controller_Router_Exception	   a  wL}R!k?tFtQ,




T
&				}	P	%S&\^1wO.T+q>fByH              4 kZend_Feed_Reader_Extension_CreativeCommons_Feed	5 mZend_Feed_Reader_Extension_CreativeCommons_Entry	- ]Zend_Feed_Reader_Extension_Content_Entry	) UZend_Feed_Reader_Extension_Atom_Feed	* WZend_Feed_Reader_Extension_Atom_Entry	# IZend_Feed_Reader_EntryAbstract	 AZend_Feed_Reader_Entry_Rss	  CZend_Feed_Reader_Entry_Atom	  CZend_Feed_Reader_Collection	3 iZend_Feed_Reader_Collection_CollectionAbstract	) UZend_Feed_Reader_Collection_Category	' QZend_Feed_Reader_Collection_Author	 9Zend_Feed_Pubsubhubbub	& OZend_Feed_Pubsubhubbub_Subscriber	/ aZend_Feed_Pubsubhubbub_Subscriber_Callback	%
 MZend_Feed_Pubsubhubbub_Publisher	.	 _Zend_Feed_Pubsubhubbub_Model_Subscription	/ aZend_Feed_Pubsubhubbub_Model_ModelAbstract	( SZend_Feed_Pubsubhubbub_HttpResponse	% MZend_Feed_Pubsubhubbub_Exception	, [Zend_Feed_Pubsubhubbub_CallbackAbstract	 3Zend_Feed_Exception	 3Zend_Feed_Entry_Rss	 5Zend_Feed_Entry_Atom	 =Zend_Feed_Entry_Abstract	  /Zend_Feed_Element	 /Zend_Feed_Builder	~ =Zend_Feed_Builder_Header	$} KZend_Feed_Builder_Header_Itunes	 | CZend_Feed_Builder_Exception	{ ;Zend_Feed_Builder_Entry	z )Zend_Feed_Atom	y 1Zend_Feed_Abstract	x )Zend_Exception	)w UZend_EventManager_StaticEventManager	)v UZend_EventManager_SharedEventManager	)u UZend_EventManager_ResponseCollection	t SplStack	)s UZend_EventManager_GlobalEventManager	"r GZend_EventManager_FilterChain	,q [Zend_EventManager_Filter_FilterIterator	9p uZend_EventManager_Exception_InvalidArgumentException	#o IZend_EventManager_EventManager	n ;Zend_EventManager_Event	m )Zend_Dom_Query	l 7Zend_Dom_Query_Result	k =Zend_Dom_Query_Css2Xpath	j 1Zend_Dom_Exception	i Zend_Dojo	)h UZend_Dojo_View_Helper_VerticalSlider	,g [Zend_Dojo_View_Helper_ValidationTextBox	&f OZend_Dojo_View_Helper_TimeTextBox	"e GZend_Dojo_View_Helper_TextBox	#d IZend_Dojo_View_Helper_Textarea	'c QZend_Dojo_View_Helper_TabContainer	'b QZend_Dojo_View_Helper_SubmitButton	)a UZend_Dojo_View_Helper_StackContainer	)` UZend_Dojo_View_Helper_SplitContainer	!_ EZend_Dojo_View_Helper_Slider	)^ UZend_Dojo_View_Helper_SimpleTextarea	&] OZend_Dojo_View_Helper_RadioButton	*\ WZend_Dojo_View_Helper_PasswordTextBox	([ SZend_Dojo_View_Helper_NumberTextBox	(Z SZend_Dojo_View_Helper_NumberSpinner	+Y YZend_Dojo_View_Helper_HorizontalSlider	X AZend_Dojo_View_Helper_Form	*W WZend_Dojo_View_Helper_FilteringSelect	!V EZend_Dojo_View_Helper_Editor	U AZend_Dojo_View_Helper_Dojo	)T UZend_Dojo_View_Helper_Dojo_Container	)S UZend_Dojo_View_Helper_DijitContainer	 R CZend_Dojo_View_Helper_Dijit	&Q OZend_Dojo_View_Helper_DateTextBox	&P OZend_Dojo_View_Helper_CustomDijit	*O WZend_Dojo_View_Helper_CurrencyTextBox	&N OZend_Dojo_View_Helper_ContentPane	#M IZend_Dojo_View_Helper_ComboBox	#L IZend_Dojo_View_Helper_CheckBox	!K EZend_Dojo_View_Helper_Button	*J WZend_Dojo_View_Helper_BorderContainer	(I SZend_Dojo_View_Helper_AccordionPane	-H ]Zend_Dojo_View_Helper_AccordionContainer	G =Zend_Dojo_View_Exception	F )Zend_Dojo_Form	E 9Zend_Dojo_Form_SubForm	*D WZend_Dojo_Form_Element_VerticalSlider	-C ]Zend_Dojo_Form_Element_ValidationTextBox	'B QZend_Dojo_Form_Element_TimeTextBox	#A IZend_Dojo_Form_Element_TextBox	$@ KZend_Dojo_Form_Element_Textarea	(? SZend_Dojo_Form_Element_SubmitButton	"> GZend_Dojo_Form_Element_Slider	*= WZend_Dojo_Form_Element_SimpleTextarea	'< QZend_Dojo_Form_Element_RadioButton	+; YZend_Dojo_Form_Element_PasswordTextBox	): UZend_Dojo_Form_Element_NumberTextBox	)9 UZend_Dojo_Form_Element_NumberSpinner	   c  h8tDxW>(x>f-



M
				b	6s@ _:tF&fJ/uT1}S)pN0X.       *| WZend_Filter_Word_SeparatorToCamelCase	({ SZend_Filter_Word_Separator_Abstract	&z OZend_Filter_Word_DashToUnderscore	%y MZend_Filter_Word_DashToSeparator	%x MZend_Filter_Word_DashToCamelCase	+w YZend_Filter_Word_CamelCaseToUnderscore	*v WZend_Filter_Word_CamelCaseToSeparator	%u MZend_Filter_Word_CamelCaseToDash	t 7Zend_Filter_StripTags	s ?Zend_Filter_StripNewlines	r 9Zend_Filter_StringTrim	q ?Zend_Filter_StringToUpper	p ?Zend_Filter_StringToLower	o 5Zend_Filter_RealPath	n ;Zend_Filter_PregReplace	m -Zend_Filter_Null	&l OZend_Filter_NormalizedToLocalized	&k OZend_Filter_LocalizedToNormalized	j +Zend_Filter_Int	i /Zend_Filter_Input	h 7Zend_Filter_Inflector	g =Zend_Filter_HtmlEntities	f AZend_Filter_File_UpperCase	e ;Zend_Filter_File_Rename	d AZend_Filter_File_LowerCase	c =Zend_Filter_File_Encrypt	b =Zend_Filter_File_Decrypt	a 7Zend_Filter_Exception	` 3Zend_Filter_Encrypt	 _ CZend_Filter_Encrypt_Openssl	^ AZend_Filter_Encrypt_Mcrypt	] +Zend_Filter_Dir	\ 1Zend_Filter_Digits	[ 3Zend_Filter_Decrypt	Z 9Zend_Filter_Decompress	Y 5Zend_Filter_Compress	X =Zend_Filter_Compress_Zip	W =Zend_Filter_Compress_Tar	V =Zend_Filter_Compress_Rar	U =Zend_Filter_Compress_Lzf	T ;Zend_Filter_Compress_Gz	*S WZend_Filter_Compress_CompressAbstract	R =Zend_Filter_Compress_Bz2	Q 5Zend_Filter_Callback	P 3Zend_Filter_Boolean	O 5Zend_Filter_BaseName	N /Zend_Filter_Alpha	M /Zend_Filter_Alnum	L 1Zend_File_Transfer	!K EZend_File_Transfer_Exception	$J KZend_File_Transfer_Adapter_Http	(I SZend_File_Transfer_Adapter_Abstract	H 9Zend_File_PhpClassFile	G AZend_File_ClassFileLocator	F Zend_Feed	E -Zend_Feed_Writer	D ;Zend_Feed_Writer_Source	/C aZend_Feed_Writer_Renderer_RendererAbstract	'B QZend_Feed_Writer_Renderer_Feed_Rss	(A SZend_Feed_Writer_Renderer_Feed_Atom	/@ aZend_Feed_Writer_Renderer_Feed_Atom_Source	5? mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract	(> SZend_Feed_Writer_Renderer_Entry_Rss	)= UZend_Feed_Writer_Renderer_Entry_Atom	1< eZend_Feed_Writer_Renderer_Entry_Atom_Deleted	; 7Zend_Feed_Writer_Feed	': QZend_Feed_Writer_Feed_FeedAbstract	<9 {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry	88 sZend_Feed_Writer_Extension_Threading_Renderer_Entry	47 kZend_Feed_Writer_Extension_Slash_Renderer_Entry	06 cZend_Feed_Writer_Extension_RendererAbstract	45 kZend_Feed_Writer_Extension_ITunes_Renderer_Feed	54 mZend_Feed_Writer_Extension_ITunes_Renderer_Entry	+3 YZend_Feed_Writer_Extension_ITunes_Feed	,2 [Zend_Feed_Writer_Extension_ITunes_Entry	81 sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed	90 uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry	6/ oZend_Feed_Writer_Extension_Content_Renderer_Entry	2. gZend_Feed_Writer_Extension_Atom_Renderer_Feed	6- oZend_Feed_Writer_Exception_InvalidMethodException	, 9Zend_Feed_Writer_Entry	+ =Zend_Feed_Writer_Deleted	* 'Zend_Feed_Rss	) -Zend_Feed_Reader	( =Zend_Feed_Reader_FeedSet	"' GZend_Feed_Reader_FeedAbstract	& ?Zend_Feed_Reader_Feed_Rss	% AZend_Feed_Reader_Feed_Atom	&$ OZend_Feed_Reader_Feed_Atom_Source	3# iZend_Feed_Reader_Extension_WellFormedWeb_Entry	," [Zend_Feed_Reader_Extension_Thread_Entry	0! cZend_Feed_Reader_Extension_Syndication_Feed	+  YZend_Feed_Reader_Extension_Slash_Entry	, [Zend_Feed_Reader_Extension_Podcast_Feed	- ]Zend_Feed_Reader_Extension_Podcast_Entry	, [Zend_Feed_Reader_Extension_FeedAbstract	- ]Zend_Feed_Reader_Extension_EntryAbstract	/ aZend_Feed_Reader_Extension_DublinCore_Feed	0 cZend_Feed_Reader_Extension_DublinCore_Entry	   g  zP!lH iHd@mI*




\
=
					y	V	6		 W0
b2wP g:rG!c8oHnI                                 c AZend_Gdata_App_IOException	,b [Zend_Gdata_App_InvalidArgumentException	!a EZend_Gdata_App_HttpException	$` KZend_Gdata_App_FeedSourceParent	#_ IZend_Gdata_App_FeedEntryParent	^ 3Zend_Gdata_App_Feed	] =Zend_Gdata_App_Extension	!\ EZend_Gdata_App_Extension_Uri	%[ MZend_Gdata_App_Extension_Updated	#Z IZend_Gdata_App_Extension_Title	"Y GZend_Gdata_App_Extension_Text	%X MZend_Gdata_App_Extension_Summary	&W OZend_Gdata_App_Extension_Subtitle	$V KZend_Gdata_App_Extension_Source	$U KZend_Gdata_App_Extension_Rights	'T QZend_Gdata_App_Extension_Published	$S KZend_Gdata_App_Extension_Person	"R GZend_Gdata_App_Extension_Name	"Q GZend_Gdata_App_Extension_Logo	"P GZend_Gdata_App_Extension_Link	 O CZend_Gdata_App_Extension_Id	"N GZend_Gdata_App_Extension_Icon	'M QZend_Gdata_App_Extension_Generator	#L IZend_Gdata_App_Extension_Email	%K MZend_Gdata_App_Extension_Element	$J KZend_Gdata_App_Extension_Edited	#I IZend_Gdata_App_Extension_Draft	%H MZend_Gdata_App_Extension_Control	)G UZend_Gdata_App_Extension_Contributor	%F MZend_Gdata_App_Extension_Content	&E OZend_Gdata_App_Extension_Category	$D KZend_Gdata_App_Extension_Author	C =Zend_Gdata_App_Exception	B 5Zend_Gdata_App_Entry	,A [Zend_Gdata_App_CaptchaRequiredException	#@ IZend_Gdata_App_BaseMediaSource	? 3Zend_Gdata_App_Base	*> WZend_Gdata_App_BadMethodCallException	!= EZend_Gdata_App_AuthException	< 5Zend_Gdata_Analytics	+; YZend_Gdata_Analytics_Extension_TableId	,: [Zend_Gdata_Analytics_Extension_Property	*9 WZend_Gdata_Analytics_Extension_Metric	8 ?Zend_Gdata_Analytics_Goal	-7 ]Zend_Gdata_Analytics_Extension_Dimension	#6 IZend_Gdata_Analytics_DataQuery	"5 GZend_Gdata_Analytics_DataFeed	#4 IZend_Gdata_Analytics_DataEntry	&3 OZend_Gdata_Analytics_AccountQuery	%2 MZend_Gdata_Analytics_AccountFeed	&1 OZend_Gdata_Analytics_AccountEntry	0 Zend_Form	/ /Zend_Form_SubForm	. 3Zend_Form_Exception	- /Zend_Form_Element	, ;Zend_Form_Element_Xhtml	+ AZend_Form_Element_Textarea	* 9Zend_Form_Element_Text	) =Zend_Form_Element_Submit	( =Zend_Form_Element_Select	' ;Zend_Form_Element_Reset	& ;Zend_Form_Element_Radio	% AZend_Form_Element_Password	$ 9Zend_Form_Element_Note	"# GZend_Form_Element_Multiselect	$" KZend_Form_Element_MultiCheckbox	! ;Zend_Form_Element_Multi	  ;Zend_Form_Element_Image	 =Zend_Form_Element_Hidden	 9Zend_Form_Element_Hash	 9Zend_Form_Element_File	  CZend_Form_Element_Exception	 AZend_Form_Element_Checkbox	 ?Zend_Form_Element_Captcha	 =Zend_Form_Element_Button	 9Zend_Form_DisplayGroup	# IZend_Form_Decorator_ViewScript	# IZend_Form_Decorator_ViewHelper	  CZend_Form_Decorator_Tooltip	( SZend_Form_Decorator_PrepareElements	 ?Zend_Form_Decorator_Label	 ?Zend_Form_Decorator_Image	  CZend_Form_Decorator_HtmlTag	# IZend_Form_Decorator_FormErrors	% MZend_Form_Decorator_FormElements	 =Zend_Form_Decorator_Form	 =Zend_Form_Decorator_File	! EZend_Form_Decorator_Fieldset	" GZend_Form_Decorator_Exception	
 AZend_Form_Decorator_Errors	$	 KZend_Form_Decorator_DtDdWrapper	$ KZend_Form_Decorator_Description	  CZend_Form_Decorator_Captcha	% MZend_Form_Decorator_Captcha_Word	* WZend_Form_Decorator_Captcha_ReCaptcha	! EZend_Form_Decorator_Callback	! EZend_Form_Decorator_Abstract	 #Zend_Filter	+ YZend_Filter_Word_UnderscoreToSeparator	&  OZend_Filter_Word_UnderscoreToDash	+ YZend_Filter_Word_UnderscoreToCamelCase	*~ WZend_Filter_Word_SeparatorToSeparator	%} MZend_Filter_Word_SeparatorToDash	   _  e=&W*tCf@c4


h
B

				q	Y	)f5vX?!uMZ=%Y+k@sK)a9                   ,B [Zend_Gdata_Gapps_EmailListRecipientFeed	-A ]Zend_Gdata_Gapps_EmailListRecipientEntry	$@ KZend_Gdata_Gapps_EmailListQuery	#? IZend_Gdata_Gapps_EmailListFeed	$> KZend_Gdata_Gapps_EmailListEntry	= +Zend_Gdata_Feed	< 5Zend_Gdata_Extension	; =Zend_Gdata_Extension_Who	: AZend_Gdata_Extension_Where	9 ?Zend_Gdata_Extension_When	$8 KZend_Gdata_Extension_Visibility	&7 OZend_Gdata_Extension_Transparency	"6 GZend_Gdata_Extension_Reminder	-5 ]Zend_Gdata_Extension_RecurrenceException	$4 KZend_Gdata_Extension_Recurrence	 3 CZend_Gdata_Extension_Rating	'2 QZend_Gdata_Extension_OriginalEvent	01 cZend_Gdata_Extension_OpenSearchTotalResults	.0 _Zend_Gdata_Extension_OpenSearchStartIndex	0/ cZend_Gdata_Extension_OpenSearchItemsPerPage	". GZend_Gdata_Extension_FeedLink	*- WZend_Gdata_Extension_ExtendedProperty	%, MZend_Gdata_Extension_EventStatus	#+ IZend_Gdata_Extension_EntryLink	"* GZend_Gdata_Extension_Comments	&) OZend_Gdata_Extension_AttendeeType	(( SZend_Gdata_Extension_AttendeeStatus	' +Zend_Gdata_Exif	& 5Zend_Gdata_Exif_Feed	#% IZend_Gdata_Exif_Extension_Time	#$ IZend_Gdata_Exif_Extension_Tags	$# KZend_Gdata_Exif_Extension_Model	#" IZend_Gdata_Exif_Extension_Make	"! GZend_Gdata_Exif_Extension_Iso	,  [Zend_Gdata_Exif_Extension_ImageUniqueId	$ KZend_Gdata_Exif_Extension_FStop	* WZend_Gdata_Exif_Extension_FocalLength	$ KZend_Gdata_Exif_Extension_Flash	' QZend_Gdata_Exif_Extension_Exposure	' QZend_Gdata_Exif_Extension_Distance	 7Zend_Gdata_Exif_Entry	 -Zend_Gdata_Entry	 7Zend_Gdata_DublinCore	* WZend_Gdata_DublinCore_Extension_Title	, [Zend_Gdata_DublinCore_Extension_Subject	+ YZend_Gdata_DublinCore_Extension_Rights	. _Zend_Gdata_DublinCore_Extension_Publisher	- ]Zend_Gdata_DublinCore_Extension_Language	/ aZend_Gdata_DublinCore_Extension_Identifier	+ YZend_Gdata_DublinCore_Extension_Format	0 cZend_Gdata_DublinCore_Extension_Description	) UZend_Gdata_DublinCore_Extension_Date	, [Zend_Gdata_DublinCore_Extension_Creator	 +Zend_Gdata_Docs	 7Zend_Gdata_Docs_Query	% MZend_Gdata_Docs_DocumentListFeed	&
 OZend_Gdata_Docs_DocumentListEntry		 9Zend_Gdata_ClientLogin	 3Zend_Gdata_Calendar	! EZend_Gdata_Calendar_ListFeed	" GZend_Gdata_Calendar_ListEntry	- ]Zend_Gdata_Calendar_Extension_WebContent	+ YZend_Gdata_Calendar_Extension_Timezone	9 uZend_Gdata_Calendar_Extension_SendEventNotifications	+ YZend_Gdata_Calendar_Extension_Selected	+ YZend_Gdata_Calendar_Extension_QuickAdd	'  QZend_Gdata_Calendar_Extension_Link	) UZend_Gdata_Calendar_Extension_Hidden	(~ SZend_Gdata_Calendar_Extension_Color	.} _Zend_Gdata_Calendar_Extension_AccessLevel	#| IZend_Gdata_Calendar_EventQuery	"{ GZend_Gdata_Calendar_EventFeed	#z IZend_Gdata_Calendar_EventEntry	y -Zend_Gdata_Books	!x EZend_Gdata_Books_VolumeQuery	 w CZend_Gdata_Books_VolumeFeed	!v EZend_Gdata_Books_VolumeEntry	+u YZend_Gdata_Books_Extension_Viewability	-t ]Zend_Gdata_Books_Extension_ThumbnailLink	&s OZend_Gdata_Books_Extension_Review	+r YZend_Gdata_Books_Extension_PreviewLink	(q SZend_Gdata_Books_Extension_InfoLink	-p ]Zend_Gdata_Books_Extension_Embeddability	)o UZend_Gdata_Books_Extension_BooksLink	-n ]Zend_Gdata_Books_Extension_BooksCategory	.m _Zend_Gdata_Books_Extension_AnnotationLink	$l KZend_Gdata_Books_CollectionFeed	%k MZend_Gdata_Books_CollectionEntry	j 1Zend_Gdata_AuthSub	i )Zend_Gdata_App	$h KZend_Gdata_App_VersionException	g 3Zend_Gdata_App_Util	#f IZend_Gdata_App_MediaFileSource	e ?Zend_Gdata_App_MediaEntry	2d gZend_Gdata_App_LoggingHttpClientAdapterSocket	   a  Z2jF!d@kH/|Y:




f
<
					l	A	dA"`,qBcJ'{T)wF[2tG                              +# YZend_Gdata_Photos_Extension_QuotaLimit	-" ]Zend_Gdata_Photos_Extension_QuotaCurrent	)! UZend_Gdata_Photos_Extension_Position	(  SZend_Gdata_Photos_Extension_PhotoId	3 iZend_Gdata_Photos_Extension_NumPhotosRemaining	* WZend_Gdata_Photos_Extension_NumPhotos	) UZend_Gdata_Photos_Extension_Nickname	% MZend_Gdata_Photos_Extension_Name	2 gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum	) UZend_Gdata_Photos_Extension_Location	# IZend_Gdata_Photos_Extension_Id	' QZend_Gdata_Photos_Extension_Height	2 gZend_Gdata_Photos_Extension_CommentingEnabled	- ]Zend_Gdata_Photos_Extension_CommentCount	' QZend_Gdata_Photos_Extension_Client	) UZend_Gdata_Photos_Extension_Checksum	* WZend_Gdata_Photos_Extension_BytesUsed	( SZend_Gdata_Photos_Extension_AlbumId	' QZend_Gdata_Photos_Extension_Access	# IZend_Gdata_Photos_CommentEntry	! EZend_Gdata_Photos_AlbumQuery	  CZend_Gdata_Photos_AlbumFeed	! EZend_Gdata_Photos_AlbumEntry	 3Zend_Gdata_MimeFile	 ?Zend_Gdata_MimeBodyString	
 AZend_Gdata_MediaMimeStream		 -Zend_Gdata_Media	 7Zend_Gdata_Media_Feed	* WZend_Gdata_Media_Extension_MediaTitle	. _Zend_Gdata_Media_Extension_MediaThumbnail	) UZend_Gdata_Media_Extension_MediaText	0 cZend_Gdata_Media_Extension_MediaRestriction	+ YZend_Gdata_Media_Extension_MediaRating	+ YZend_Gdata_Media_Extension_MediaPlayer	- ]Zend_Gdata_Media_Extension_MediaKeywords	)  UZend_Gdata_Media_Extension_MediaHash	* WZend_Gdata_Media_Extension_MediaGroup	0~ cZend_Gdata_Media_Extension_MediaDescription	+} YZend_Gdata_Media_Extension_MediaCredit	.| _Zend_Gdata_Media_Extension_MediaCopyright	,{ [Zend_Gdata_Media_Extension_MediaContent	-z ]Zend_Gdata_Media_Extension_MediaCategory	y 9Zend_Gdata_Media_Entry	x AZend_Gdata_Kind_EventEntry	w 7Zend_Gdata_HttpClient	*v WZend_Gdata_HttpAdapterStreamingSocket	)u UZend_Gdata_HttpAdapterStreamingProxy	t /Zend_Gdata_Health	s ;Zend_Gdata_Health_Query	&r OZend_Gdata_Health_ProfileListFeed	'q QZend_Gdata_Health_ProfileListEntry	"p GZend_Gdata_Health_ProfileFeed	#o IZend_Gdata_Health_ProfileEntry	$n KZend_Gdata_Health_Extension_Ccr	m )Zend_Gdata_Geo	l 3Zend_Gdata_Geo_Feed	$k KZend_Gdata_Geo_Extension_GmlPos	&j OZend_Gdata_Geo_Extension_GmlPoint	)i UZend_Gdata_Geo_Extension_GeoRssWhere	h 5Zend_Gdata_Geo_Entry	g -Zend_Gdata_Gbase	"f GZend_Gdata_Gbase_SnippetQuery	!e EZend_Gdata_Gbase_SnippetFeed	"d GZend_Gdata_Gbase_SnippetEntry	c 9Zend_Gdata_Gbase_Query	b AZend_Gdata_Gbase_ItemQuery	a ?Zend_Gdata_Gbase_ItemFeed	` AZend_Gdata_Gbase_ItemEntry	_ 7Zend_Gdata_Gbase_Feed	-^ ]Zend_Gdata_Gbase_Extension_BaseAttribute	] 9Zend_Gdata_Gbase_Entry	\ -Zend_Gdata_Gapps	[ AZend_Gdata_Gapps_UserQuery	Z ?Zend_Gdata_Gapps_UserFeed	Y AZend_Gdata_Gapps_UserEntry	&X OZend_Gdata_Gapps_ServiceException	W 9Zend_Gdata_Gapps_Query	 V CZend_Gdata_Gapps_OwnerQuery	U AZend_Gdata_Gapps_OwnerFeed	 T CZend_Gdata_Gapps_OwnerEntry	#S IZend_Gdata_Gapps_NicknameQuery	"R GZend_Gdata_Gapps_NicknameFeed	#Q IZend_Gdata_Gapps_NicknameEntry	!P EZend_Gdata_Gapps_MemberQuery	 O CZend_Gdata_Gapps_MemberFeed	!N EZend_Gdata_Gapps_MemberEntry	 M CZend_Gdata_Gapps_GroupQuery	L AZend_Gdata_Gapps_GroupFeed	 K CZend_Gdata_Gapps_GroupEntry	%J MZend_Gdata_Gapps_Extension_Quota	(I SZend_Gdata_Gapps_Extension_Property	(H SZend_Gdata_Gapps_Extension_Nickname	$G KZend_Gdata_Gapps_Extension_Name	%F MZend_Gdata_Gapps_Extension_Login	)E UZend_Gdata_Gapps_Extension_EmailList	D 9Zend_Gdata_Gapps_Error	-C ]Zend_Gdata_Gapps_EmailListRecipientQuery	   Z  |N%[6uK"h7V&




X
0
					d	9	Q"mCQ%m:V$l@fAg:  "} GZend_Gdata_YouTube_VideoEntry	(| SZend_Gdata_YouTube_UserProfileEntry	({ SZend_Gdata_YouTube_SubscriptionFeed	)z UZend_Gdata_YouTube_SubscriptionEntry	)y UZend_Gdata_YouTube_PlaylistVideoFeed	*x WZend_Gdata_YouTube_PlaylistVideoEntry	(w SZend_Gdata_YouTube_PlaylistListFeed	)v UZend_Gdata_YouTube_PlaylistListEntry	"u GZend_Gdata_YouTube_MediaEntry	!t EZend_Gdata_YouTube_InboxFeed	"s GZend_Gdata_YouTube_InboxEntry	)r UZend_Gdata_YouTube_Extension_VideoId	*q WZend_Gdata_YouTube_Extension_Username	*p WZend_Gdata_YouTube_Extension_Uploaded	'o QZend_Gdata_YouTube_Extension_Token	(n SZend_Gdata_YouTube_Extension_Status	,m [Zend_Gdata_YouTube_Extension_Statistics	'l QZend_Gdata_YouTube_Extension_State	(k SZend_Gdata_YouTube_Extension_School	-j ]Zend_Gdata_YouTube_Extension_ReleaseDate	.i _Zend_Gdata_YouTube_Extension_Relationship	*h WZend_Gdata_YouTube_Extension_Recorded	&g OZend_Gdata_YouTube_Extension_Racy	-f ]Zend_Gdata_YouTube_Extension_QueryString	)e UZend_Gdata_YouTube_Extension_Private	*d WZend_Gdata_YouTube_Extension_Position	/c aZend_Gdata_YouTube_Extension_PlaylistTitle	,b [Zend_Gdata_YouTube_Extension_PlaylistId	,a [Zend_Gdata_YouTube_Extension_Occupation	)` UZend_Gdata_YouTube_Extension_NoEmbed	'_ QZend_Gdata_YouTube_Extension_Music	(^ SZend_Gdata_YouTube_Extension_Movies	-] ]Zend_Gdata_YouTube_Extension_MediaRating	,\ [Zend_Gdata_YouTube_Extension_MediaGroup	-[ ]Zend_Gdata_YouTube_Extension_MediaCredit	.Z _Zend_Gdata_YouTube_Extension_MediaContent	*Y WZend_Gdata_YouTube_Extension_Location	&X OZend_Gdata_YouTube_Extension_Link	*W WZend_Gdata_YouTube_Extension_LastName	*V WZend_Gdata_YouTube_Extension_Hometown	)U UZend_Gdata_YouTube_Extension_Hobbies	(T SZend_Gdata_YouTube_Extension_Gender	+S YZend_Gdata_YouTube_Extension_FirstName	*R WZend_Gdata_YouTube_Extension_Duration	-Q ]Zend_Gdata_YouTube_Extension_Description	+P YZend_Gdata_YouTube_Extension_CountHint	)O UZend_Gdata_YouTube_Extension_Control	)N UZend_Gdata_YouTube_Extension_Company	'M QZend_Gdata_YouTube_Extension_Books	%L MZend_Gdata_YouTube_Extension_Age	)K UZend_Gdata_YouTube_Extension_AboutMe	#J IZend_Gdata_YouTube_ContactFeed	$I KZend_Gdata_YouTube_ContactEntry	#H IZend_Gdata_YouTube_CommentFeed	$G KZend_Gdata_YouTube_CommentEntry	$F KZend_Gdata_YouTube_ActivityFeed	%E MZend_Gdata_YouTube_ActivityEntry	D ;Zend_Gdata_Spreadsheets	*C WZend_Gdata_Spreadsheets_WorksheetFeed	+B YZend_Gdata_Spreadsheets_WorksheetEntry	,A [Zend_Gdata_Spreadsheets_SpreadsheetFeed	-@ ]Zend_Gdata_Spreadsheets_SpreadsheetEntry	&? OZend_Gdata_Spreadsheets_ListQuery	%> MZend_Gdata_Spreadsheets_ListFeed	&= OZend_Gdata_Spreadsheets_ListEntry	/< aZend_Gdata_Spreadsheets_Extension_RowCount	-; ]Zend_Gdata_Spreadsheets_Extension_Custom	/: aZend_Gdata_Spreadsheets_Extension_ColCount	+9 YZend_Gdata_Spreadsheets_Extension_Cell	*8 WZend_Gdata_Spreadsheets_DocumentQuery	&7 OZend_Gdata_Spreadsheets_CellQuery	%6 MZend_Gdata_Spreadsheets_CellFeed	&5 OZend_Gdata_Spreadsheets_CellEntry	4 -Zend_Gdata_Query	3 /Zend_Gdata_Photos	 2 CZend_Gdata_Photos_UserQuery	1 AZend_Gdata_Photos_UserFeed	 0 CZend_Gdata_Photos_UserEntry	/ AZend_Gdata_Photos_TagEntry	!. EZend_Gdata_Photos_PhotoQuery	 - CZend_Gdata_Photos_PhotoFeed	!, EZend_Gdata_Photos_PhotoEntry	&+ OZend_Gdata_Photos_Extension_Width	'* QZend_Gdata_Photos_Extension_Weight	() SZend_Gdata_Photos_Extension_Version	%( MZend_Gdata_Photos_Extension_User	*' WZend_Gdata_Photos_Extension_Timestamp	*& WZend_Gdata_Photos_Extension_Thumbnail	%% MZend_Gdata_Photos_Extension_Size	)$ UZend_Gdata_Photos_Extension_Rotation	   l  a6lP4|Z?f@
kJ'



`
4
						j	K	,		yT7y]/}`=mM%c5g4Y2jV1                           i 7Zend_Locale_Exception	h -Zend_Locale_Data	!g EZend_Locale_Data_Translation	f #Zend_Loader	#e IZend_Loader_StandardAutoloader	d =Zend_Loader_PluginLoader	'c QZend_Loader_PluginLoader_Exception	b 7Zend_Loader_Exception	3a iZend_Loader_Exception_InvalidArgumentException	#` IZend_Loader_ClassMapAutoloader	"_ GZend_Loader_AutoloaderFactory	^ 9Zend_Loader_Autoloader	$] KZend_Loader_Autoloader_Resource	\ Zend_Ldap	[ )Zend_Ldap_Node	Z 7Zend_Ldap_Node_Schema	#Y IZend_Ldap_Node_Schema_OpenLdap	/X aZend_Ldap_Node_Schema_ObjectClass_OpenLdap	6W oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectory	V AZend_Ldap_Node_Schema_Item	1U eZend_Ldap_Node_Schema_AttributeType_OpenLdap	8T sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory	*S WZend_Ldap_Node_Schema_ActiveDirectory	R 9Zend_Ldap_Node_RootDse	$Q KZend_Ldap_Node_RootDse_OpenLdap	&P OZend_Ldap_Node_RootDse_eDirectory	+O YZend_Ldap_Node_RootDse_ActiveDirectory	N ?Zend_Ldap_Node_Collection	$M KZend_Ldap_Node_ChildrenIterator	L ;Zend_Ldap_Node_Abstract	K 9Zend_Ldap_Ldif_Encoder	J -Zend_Ldap_Filter	I ;Zend_Ldap_Filter_String	H 3Zend_Ldap_Filter_Or	G 5Zend_Ldap_Filter_Not	F 7Zend_Ldap_Filter_Mask	E =Zend_Ldap_Filter_Logical	D AZend_Ldap_Filter_Exception	C 5Zend_Ldap_Filter_And	B ?Zend_Ldap_Filter_Abstract	A 3Zend_Ldap_Exception	@ %Zend_Ldap_Dn	? 3Zend_Ldap_Converter	"> GZend_Ldap_Converter_Exception	= 5Zend_Ldap_Collection	*< WZend_Ldap_Collection_Iterator_Default	; 3Zend_Ldap_Attribute	: #Zend_Layout	9 7Zend_Layout_Exception	)8 UZend_Layout_Controller_Plugin_Layout	07 cZend_Layout_Controller_Action_Helper_Layout	6 Zend_Json	5 -Zend_Json_Server	4 5Zend_Json_Server_Smd	!3 EZend_Json_Server_Smd_Service	2 ?Zend_Json_Server_Response	#1 IZend_Json_Server_Response_Http	0 =Zend_Json_Server_Request	"/ GZend_Json_Server_Request_Http	. AZend_Json_Server_Exception	- 9Zend_Json_Server_Error	, 9Zend_Json_Server_Cache	+ )Zend_Json_Expr	* 3Zend_Json_Exception	) /Zend_Json_Encoder	( /Zend_Json_Decoder	' 3Zend_Http_UserAgent	"& GZend_Http_UserAgent_Validator	% =Zend_Http_UserAgent_Text	($ SZend_Http_UserAgent_Storage_Session	.# _Zend_Http_UserAgent_Storage_NonPersistent	*" WZend_Http_UserAgent_Storage_Exception	! =Zend_Http_UserAgent_Spam	  ?Zend_Http_UserAgent_Probe	  CZend_Http_UserAgent_Offline	 AZend_Http_UserAgent_Mobile	 =Zend_Http_UserAgent_Feed	+ YZend_Http_UserAgent_Features_Exception	3 iZend_Http_UserAgent_Features_Adapter_TeraWurfl	5 mZend_Http_UserAgent_Features_Adapter_DeviceAtlas	2 gZend_Http_UserAgent_Features_Adapter_Browscap	" GZend_Http_UserAgent_Exception	 ?Zend_Http_UserAgent_Email	  CZend_Http_UserAgent_Desktop	  CZend_Http_UserAgent_Console	  CZend_Http_UserAgent_Checker	 ;Zend_Http_UserAgent_Bot	' QZend_Http_UserAgent_AbstractDevice	 1Zend_Http_Response	 ?Zend_Http_Response_Stream	 AZend_Http_Header_SetCookie	! EZend_Http_Header_HeaderValue	0 cZend_Http_Header_Exception_RuntimeException	8 sZend_Http_Header_Exception_InvalidArgumentException	 3Zend_Http_Exception	
 3Zend_Http_CookieJar		 -Zend_Http_Cookie	 -Zend_Http_Client	 AZend_Http_Client_Exception	" GZend_Http_Client_Adapter_Test	$ KZend_Http_Client_Adapter_Socket	# IZend_Http_Client_Adapter_Proxy	' QZend_Http_Client_Adapter_Exception	" GZend_Http_Client_Adapter_Curl	 !Zend_Gdata	  1Zend_Gdata_YouTube	" GZend_Gdata_YouTube_VideoQuery	!~ EZend_Gdata_YouTube_VideoFeed	   w tY8mN-|]9(nW3vK+



t
U
3
					e	D	`9
uG-jI%mN-z_A&cG"eQ8{D                          0` cZend_Mobile_Push_Exception_InvalidAuthToken	3_ iZend_Mobile_Push_Exception_DeviceQuotaExceeded	^ 7Zend_Mobile_Push_Apns	] ?Zend_Mobile_Push_Abstract	\ 7Zend_Mobile_Exception	[ Zend_Mime	Z )Zend_Mime_Part	Y /Zend_Mime_Message	X 3Zend_Mime_Exception	W -Zend_Mime_Decode	V #Zend_Memory	U /Zend_Memory_Value	T 3Zend_Memory_Manager	S 7Zend_Memory_Exception	R 7Zend_Memory_Container	"Q GZend_Memory_Container_Movable	!P EZend_Memory_Container_Locked	!O EZend_Memory_AccessController	N 3Zend_Measure_Weight	M 3Zend_Measure_Volume	%L MZend_Measure_Viscosity_Kinematic	#K IZend_Measure_Viscosity_Dynamic	J 3Zend_Measure_Torque	I /Zend_Measure_Time	H =Zend_Measure_Temperature	G 1Zend_Measure_Speed	F 7Zend_Measure_Pressure	E 1Zend_Measure_Power	D 3Zend_Measure_Number	C 9Zend_Measure_Lightness	B 3Zend_Measure_Length	A ?Zend_Measure_Illumination	@ 9Zend_Measure_Frequency	? 1Zend_Measure_Force	> =Zend_Measure_Flow_Volume	= 9Zend_Measure_Flow_Mole	< 9Zend_Measure_Flow_Mass	; 9Zend_Measure_Exception	: 3Zend_Measure_Energy	9 5Zend_Measure_Density	8 5Zend_Measure_Current	 7 CZend_Measure_Cooking_Weight	 6 CZend_Measure_Cooking_Volume	5 =Zend_Measure_Capacitance	4 3Zend_Measure_Binary	3 /Zend_Measure_Area	2 1Zend_Measure_Angle	1 ?Zend_Measure_Acceleration	0 7Zend_Measure_Abstract	/ #Zend_Markup	. 7Zend_Markup_TokenList	- /Zend_Markup_Token	*, WZend_Markup_Renderer_RendererAbstract	+ ?Zend_Markup_Renderer_Html	"* GZend_Markup_Renderer_Html_Url	#) IZend_Markup_Renderer_Html_List	"( GZend_Markup_Renderer_Html_Img	+' YZend_Markup_Renderer_Html_HtmlAbstract	#& IZend_Markup_Renderer_Html_Code	#% IZend_Markup_Renderer_Exception	!$ EZend_Markup_Parser_Exception	# ?Zend_Markup_Parser_Bbcode	" 7Zend_Markup_Exception	! Zend_Mail	  =Zend_Mail_Transport_Smtp	! EZend_Mail_Transport_Sendmail	 =Zend_Mail_Transport_File	" GZend_Mail_Transport_Exception	! EZend_Mail_Transport_Abstract	 /Zend_Mail_Storage	' QZend_Mail_Storage_Writable_Maildir	 9Zend_Mail_Storage_Pop3	 9Zend_Mail_Storage_Mbox	 ?Zend_Mail_Storage_Maildir	 9Zend_Mail_Storage_Imap	 =Zend_Mail_Storage_Folder	" GZend_Mail_Storage_Folder_Mbox	% MZend_Mail_Storage_Folder_Maildir	  CZend_Mail_Storage_Exception	 AZend_Mail_Storage_Abstract	 ;Zend_Mail_Protocol_Smtp	' QZend_Mail_Protocol_Smtp_Auth_Plain	' QZend_Mail_Protocol_Smtp_Auth_Login	) UZend_Mail_Protocol_Smtp_Auth_Crammd5	 ;Zend_Mail_Protocol_Pop3	 ;Zend_Mail_Protocol_Imap	!
 EZend_Mail_Protocol_Exception	 	 CZend_Mail_Protocol_Abstract	 )Zend_Mail_Part	 3Zend_Mail_Part_File	 /Zend_Mail_Message	 9Zend_Mail_Message_File	! EZend_Mail_Header_HeaderValue	  CZend_Mail_Header_HeaderName	 3Zend_Mail_Exception	 Zend_Log	   CZend_Log_Writer_ZendMonitor	 9Zend_Log_Writer_Syslog	~ 9Zend_Log_Writer_Stream	} 5Zend_Log_Writer_Null	| 5Zend_Log_Writer_Mock	{ 5Zend_Log_Writer_Mail	z ;Zend_Log_Writer_Firebug	y 1Zend_Log_Writer_Db	x =Zend_Log_Writer_Abstract	w 9Zend_Log_Formatter_Xml	v ?Zend_Log_Formatter_Simple	u AZend_Log_Formatter_Firebug	 t CZend_Log_Formatter_Abstract	s =Zend_Log_Filter_Suppress	r =Zend_Log_Filter_Priority	q ;Zend_Log_Filter_Message	p =Zend_Log_Filter_Abstract	o 1Zend_Log_Exception	n #Zend_Locale	m -Zend_Locale_Math	l =Zend_Locale_Math_PhpMath	k AZend_Locale_Math_Exception	j 1Zend_Locale_Format	   m  g7gApJ,yX;#	mC#



r
R
'
					n	P	-	tWC}\2w`C bD&}^@ }\@r\@^&               2M gZend_Pdf_Destination_FitBoundingBoxVertically	4L kZend_Pdf_Destination_FitBoundingBoxHorizontally	(K SZend_Pdf_Destination_FitBoundingBox	J =Zend_Pdf_Destination_Fit	"I GZend_Pdf_Destination_Explicit	H )Zend_Pdf_Color	G 1Zend_Pdf_Color_Rgb	F 3Zend_Pdf_Color_Html	E =Zend_Pdf_Color_GrayScale	D 3Zend_Pdf_Color_Cmyk	C 'Zend_Pdf_Cmap	B AZend_Pdf_Cmap_TrimmedTable	!A EZend_Pdf_Cmap_SegmentToDelta	@ AZend_Pdf_Cmap_ByteEncoding	&? OZend_Pdf_Cmap_ByteEncoding_Static	> +Zend_Pdf_Canvas	= =Zend_Pdf_Canvas_Abstract	< 3Zend_Pdf_Annotation	; =Zend_Pdf_Annotation_Text	: AZend_Pdf_Annotation_Markup	9 =Zend_Pdf_Annotation_Link	'8 QZend_Pdf_Annotation_FileAttachment	7 +Zend_Pdf_Action	6 3Zend_Pdf_Action_URI	5 ;Zend_Pdf_Action_Unknown	4 7Zend_Pdf_Action_Trans	3 9Zend_Pdf_Action_Thread	2 AZend_Pdf_Action_SubmitForm	1 7Zend_Pdf_Action_Sound	 0 CZend_Pdf_Action_SetOCGState	/ ?Zend_Pdf_Action_ResetForm	. ?Zend_Pdf_Action_Rendition	- 7Zend_Pdf_Action_Named	, 7Zend_Pdf_Action_Movie	+ 9Zend_Pdf_Action_Launch	* AZend_Pdf_Action_JavaScript	) AZend_Pdf_Action_ImportData	( 5Zend_Pdf_Action_Hide	' 7Zend_Pdf_Action_GoToR	& 7Zend_Pdf_Action_GoToE	% AZend_Pdf_Action_GoTo3DView	$ 5Zend_Pdf_Action_GoTo	# )Zend_Paginator	-" ]Zend_Paginator_SerializableLimitIterator	*! WZend_Paginator_ScrollingStyle_Sliding	*  WZend_Paginator_ScrollingStyle_Jumping	* WZend_Paginator_ScrollingStyle_Elastic	& OZend_Paginator_ScrollingStyle_All	 =Zend_Paginator_Exception	  CZend_Paginator_Adapter_Null	$ KZend_Paginator_Adapter_Iterator	) UZend_Paginator_Adapter_DbTableSelect	$ KZend_Paginator_Adapter_DbSelect	! EZend_Paginator_Adapter_Array	 #Zend_OpenId	 5Zend_OpenId_Provider	 ?Zend_OpenId_Provider_User	& OZend_OpenId_Provider_User_Session	! EZend_OpenId_Provider_Storage	& OZend_OpenId_Provider_Storage_File	 7Zend_OpenId_Extension	 AZend_OpenId_Extension_Sreg	 7Zend_OpenId_Exception	 5Zend_OpenId_Consumer	! EZend_OpenId_Consumer_Storage	& OZend_OpenId_Consumer_Storage_File	 !Zend_Oauth	
 -Zend_Oauth_Token		 =Zend_Oauth_Token_Request	' QZend_Oauth_Token_AuthorizedRequest	 ;Zend_Oauth_Token_Access	+ YZend_Oauth_Signature_SignatureAbstract	 =Zend_Oauth_Signature_Rsa	# IZend_Oauth_Signature_Plaintext	 ?Zend_Oauth_Signature_Hmac	 +Zend_Oauth_Http	 ;Zend_Oauth_Http_Utility	&  OZend_Oauth_Http_UserAuthorization	! EZend_Oauth_Http_RequestToken	 ~ CZend_Oauth_Http_AccessToken	} 5Zend_Oauth_Exception	| 3Zend_Oauth_Consumer	{ /Zend_Oauth_Config	z /Zend_Oauth_Client	y +Zend_Navigation	x 5Zend_Navigation_Page	w =Zend_Navigation_Page_Uri	v =Zend_Navigation_Page_Mvc	u ?Zend_Navigation_Exception	t ?Zend_Navigation_Container	$s KZend_Mobile_Push_Test_ApnsProxy	"r GZend_Mobile_Push_Response_Gcm	q 7Zend_Mobile_Push_Mpns	"p GZend_Mobile_Push_Message_Mpns	(o SZend_Mobile_Push_Message_Mpns_Toast	'n QZend_Mobile_Push_Message_Mpns_Tile	&m OZend_Mobile_Push_Message_Mpns_Raw	!l EZend_Mobile_Push_Message_Gcm	'k QZend_Mobile_Push_Message_Exception	"j GZend_Mobile_Push_Message_Apns	&i OZend_Mobile_Push_Message_Abstract	h 5Zend_Mobile_Push_Gcm	g AZend_Mobile_Push_Exception	1f eZend_Mobile_Push_Exception_ServerUnavailable	-e ]Zend_Mobile_Push_Exception_QuotaExceeded	,d [Zend_Mobile_Push_Exception_InvalidTopic	,c [Zend_Mobile_Push_Exception_InvalidToken	3b iZend_Mobile_Push_Exception_InvalidRegistration	.a _Zend_Mobile_Push_Exception_InvalidPayload	   c  ~[6uW6xX1d:]7




^
H
1
						X	0	^(G	N`%Z5`9mT/zY6                                             0 CZend_Queue_Adapter_Activemq	/ -Zend_ProgressBar	. AZend_ProgressBar_Exception	- =Zend_ProgressBar_Adapter	$, KZend_ProgressBar_Adapter_JsPush	$+ KZend_ProgressBar_Adapter_JsPull	'* QZend_ProgressBar_Adapter_Exception	%) MZend_ProgressBar_Adapter_Console	( Zend_Pdf	!' EZend_Pdf_UpdateInfoContainer	& -Zend_Pdf_Trailer	% ;Zend_Pdf_Trailer_Keeper	$ AZend_Pdf_Trailer_Generator	# +Zend_Pdf_Target	" )Zend_Pdf_Style	! 7Zend_Pdf_StringParser	  /Zend_Pdf_Resource	 ?Zend_Pdf_Resource_Unified	# IZend_Pdf_Resource_ImageFactory	 ;Zend_Pdf_Resource_Image	! EZend_Pdf_Resource_Image_Tiff	  CZend_Pdf_Resource_Image_Png	! EZend_Pdf_Resource_Image_Jpeg	$ KZend_Pdf_Resource_GraphicsState	 9Zend_Pdf_Resource_Font	! EZend_Pdf_Resource_Font_Type0	" GZend_Pdf_Resource_Font_Simple	+ YZend_Pdf_Resource_Font_Simple_Standard	8 sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats	6 oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman	7 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic	; yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic	5 mZend_Pdf_Resource_Font_Simple_Standard_TimesBold	2 gZend_Pdf_Resource_Font_Simple_Standard_Symbol	< {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaOblique	A Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique	9 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold	5 mZend_Pdf_Resource_Font_Simple_Standard_Helvetica	:
 wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique	>	 Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique	7 qZend_Pdf_Resource_Font_Simple_Standard_CourierBold	3 iZend_Pdf_Resource_Font_Simple_Standard_Courier	) UZend_Pdf_Resource_Font_Simple_Parsed	2 gZend_Pdf_Resource_Font_Simple_Parsed_TrueType	* WZend_Pdf_Resource_Font_FontDescriptor	% MZend_Pdf_Resource_Font_Extracted	# IZend_Pdf_Resource_Font_CidFont	, [Zend_Pdf_Resource_Font_CidFont_TrueType	   CZend_Pdf_Resource_Extractor	$ KZend_Pdf_Resource_ContentStream	3~ iZend_Pdf_RecursivelyIteratableObjectsContainer	} +Zend_Pdf_Parser	| 'Zend_Pdf_Page	{ -Zend_Pdf_Outline	z ;Zend_Pdf_Outline_Loaded	y =Zend_Pdf_Outline_Created	x /Zend_Pdf_NameTree	w )Zend_Pdf_Image	v 'Zend_Pdf_Font	u ?Zend_Pdf_Filter_RunLength	 t CZend_Pdf_Filter_Compression	$s KZend_Pdf_Filter_Compression_Lzw	&r OZend_Pdf_Filter_Compression_Flate	q =Zend_Pdf_Filter_AsciiHex	p ;Zend_Pdf_Filter_Ascii85	"o GZend_Pdf_FileParserDataSource	)n UZend_Pdf_FileParserDataSource_String	'm QZend_Pdf_FileParserDataSource_File	l 3Zend_Pdf_FileParser	k ?Zend_Pdf_FileParser_Image	"j GZend_Pdf_FileParser_Image_Png	i =Zend_Pdf_FileParser_Font	&h OZend_Pdf_FileParser_Font_OpenType	/g aZend_Pdf_FileParser_Font_OpenType_TrueType	f 1Zend_Pdf_Exception	e ;Zend_Pdf_ElementFactory	"d GZend_Pdf_ElementFactory_Proxy	c -Zend_Pdf_Element	b ;Zend_Pdf_Element_String	#a IZend_Pdf_Element_String_Binary	` ;Zend_Pdf_Element_Stream	_ AZend_Pdf_Element_Reference	%^ MZend_Pdf_Element_Reference_Table	'] QZend_Pdf_Element_Reference_Context	\ ;Zend_Pdf_Element_Object	#[ IZend_Pdf_Element_Object_Stream	Z =Zend_Pdf_Element_Numeric	Y 7Zend_Pdf_Element_Null	X 7Zend_Pdf_Element_Name	 W CZend_Pdf_Element_Dictionary	V =Zend_Pdf_Element_Boolean	U 9Zend_Pdf_Element_Array	T 5Zend_Pdf_Destination	S ?Zend_Pdf_Destination_Zoom	!R EZend_Pdf_Destination_Unknown	Q AZend_Pdf_Destination_Named	'P QZend_Pdf_Destination_FitVertically	&O OZend_Pdf_Destination_FitRectangle	)N UZend_Pdf_Destination_FitHorizontally	   [  jL'sX-fA ]<&gO,


r
%			f	|Re5`7W+ f*wO(DL                                              + YZend_Search_Lucene_Search_Query_Phrase	.
 _Zend_Search_Lucene_Search_Query_MultiTerm	2	 gZend_Search_Lucene_Search_Query_Insignificant	* WZend_Search_Lucene_Search_Query_Fuzzy	* WZend_Search_Lucene_Search_Query_Empty	, [Zend_Search_Lucene_Search_Query_Boolean	2 gZend_Search_Lucene_Search_Highlighter_Default	: wZend_Search_Lucene_Search_BooleanExpressionRecognizer	 =Zend_Search_Lucene_Proxy	% MZend_Search_Lucene_PriorityQueue	/ aZend_Search_Lucene_Interface_MultiSearcher	%  MZend_Search_Lucene_MultiSearcher	# IZend_Search_Lucene_LockManager	$~ KZend_Search_Lucene_Index_Writer	0} cZend_Search_Lucene_Index_TermsPriorityQueue	&| OZend_Search_Lucene_Index_TermInfo	"{ GZend_Search_Lucene_Index_Term	+z YZend_Search_Lucene_Index_SegmentWriter	8y sZend_Search_Lucene_Index_SegmentWriter_StreamWriter	:x wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter	+w YZend_Search_Lucene_Index_SegmentMerger	)v UZend_Search_Lucene_Index_SegmentInfo	'u QZend_Search_Lucene_Index_FieldInfo	(t SZend_Search_Lucene_Index_DocsFilter	.s _Zend_Search_Lucene_Index_DictionaryLoader	!r EZend_Search_Lucene_FSMAction	q 9Zend_Search_Lucene_FSM	p =Zend_Search_Lucene_Field	!o EZend_Search_Lucene_Exception	 n CZend_Search_Lucene_Document	%m MZend_Search_Lucene_Document_Xlsx	%l MZend_Search_Lucene_Document_Pptx	(k SZend_Search_Lucene_Document_OpenXml	%j MZend_Search_Lucene_Document_Html	*i WZend_Search_Lucene_Document_Exception	%h MZend_Search_Lucene_Document_Docx	,g [Zend_Search_Lucene_Analysis_TokenFilter	6f oZend_Search_Lucene_Analysis_TokenFilter_StopWords	7e qZend_Search_Lucene_Analysis_TokenFilter_ShortWords	:d wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8	6c oZend_Search_Lucene_Analysis_TokenFilter_LowerCase	&b OZend_Search_Lucene_Analysis_Token	)a UZend_Search_Lucene_Analysis_Analyzer	0` cZend_Search_Lucene_Analysis_Analyzer_Common	8_ sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num	I^ Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive	5] mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8	F\ Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive	8[ sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum	IZ Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive	5Y mZend_Search_Lucene_Analysis_Analyzer_Common_Text	FX Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive	W 7Zend_Search_Exception	V -Zend_Rest_Server	U AZend_Rest_Server_Exception	T +Zend_Rest_Route	S 3Zend_Rest_Exception	R 5Zend_Rest_Controller	Q -Zend_Rest_Client	P ;Zend_Rest_Client_Result	&O OZend_Rest_Client_Result_Exception	N AZend_Rest_Client_Exception	M 'Zend_Registry	L =Zend_Reflection_Property	K ?Zend_Reflection_Parameter	J 9Zend_Reflection_Method	I =Zend_Reflection_Function	H 5Zend_Reflection_File	G ?Zend_Reflection_Extension	F ?Zend_Reflection_Exception	E =Zend_Reflection_Docblock	!D EZend_Reflection_Docblock_Tag	(C SZend_Reflection_Docblock_Tag_Return	'B QZend_Reflection_Docblock_Tag_Param	A 7Zend_Reflection_Class	@ !Zend_Queue	? 9Zend_Queue_Stomp_Frame	> ;Zend_Queue_Stomp_Client	'= QZend_Queue_Stomp_Client_Connection	< 1Zend_Queue_Message	#; IZend_Queue_Message_PlatformJob	 : CZend_Queue_Message_Iterator	9 5Zend_Queue_Exception	(8 SZend_Queue_Adapter_PlatformJobQueue	7 ;Zend_Queue_Adapter_Null	!6 EZend_Queue_Adapter_Memcacheq	5 7Zend_Queue_Adapter_Db	 4 CZend_Queue_Adapter_Db_Queue	"3 GZend_Queue_Adapter_Db_Message	2 =Zend_Queue_Adapter_Array	'1 QZend_Queue_Adapter_AdapterAbstract	   [  Lb.nAzEU'



f
7
				k	F	vQ/Y4hBdG"i;_;^5nB                             f =Zend_Service_Amazon_Item	e ?Zend_Service_Amazon_Image	"d GZend_Service_Amazon_Exception	(c SZend_Service_Amazon_EditorialReview	b ;Zend_Service_Amazon_Ec2	+a YZend_Service_Amazon_Ec2_Securitygroups	%` MZend_Service_Amazon_Ec2_Response	#_ IZend_Service_Amazon_Ec2_Region	$^ KZend_Service_Amazon_Ec2_Keypair	%] MZend_Service_Amazon_Ec2_Instance	-\ ]Zend_Service_Amazon_Ec2_Instance_Windows	.[ _Zend_Service_Amazon_Ec2_Instance_Reserved	"Z GZend_Service_Amazon_Ec2_Image	&Y OZend_Service_Amazon_Ec2_Exception	&X OZend_Service_Amazon_Ec2_Elasticip	 W CZend_Service_Amazon_Ec2_Ebs	'V QZend_Service_Amazon_Ec2_CloudWatch	.U _Zend_Service_Amazon_Ec2_Availabilityzones	%T MZend_Service_Amazon_Ec2_Abstract	'S QZend_Service_Amazon_CustomerReview	'R QZend_Service_Amazon_Authentication	*Q WZend_Service_Amazon_Authentication_V2	*P WZend_Service_Amazon_Authentication_V1	*O WZend_Service_Amazon_Authentication_S3	1N eZend_Service_Amazon_Authentication_Exception	$M KZend_Service_Amazon_Accessories	!L EZend_Service_Amazon_Abstract	K 5Zend_Service_Akismet	J 7Zend_Service_Abstract	I 9Zend_Server_Reflection	'H QZend_Server_Reflection_ReturnValue	%G MZend_Server_Reflection_Prototype	%F MZend_Server_Reflection_Parameter	 E CZend_Server_Reflection_Node	"D GZend_Server_Reflection_Method	$C KZend_Server_Reflection_Function	-B ]Zend_Server_Reflection_Function_Abstract	%A MZend_Server_Reflection_Exception	!@ EZend_Server_Reflection_Class	!? EZend_Server_Method_Prototype	!> EZend_Server_Method_Parameter	"= GZend_Server_Method_Definition	 < CZend_Server_Method_Callback	; 7Zend_Server_Exception	: 9Zend_Server_Definition	9 /Zend_Server_Cache	8 5Zend_Server_Abstract	7 +Zend_Serializer	6 ?Zend_Serializer_Exception	!5 EZend_Serializer_Adapter_Wddx	)4 UZend_Serializer_Adapter_PythonPickle	)3 UZend_Serializer_Adapter_PhpSerialize	$2 KZend_Serializer_Adapter_PhpCode	!1 EZend_Serializer_Adapter_Json	%0 MZend_Serializer_Adapter_Igbinary	!/ EZend_Serializer_Adapter_Amf3	!. EZend_Serializer_Adapter_Amf0	,- [Zend_Serializer_Adapter_AdapterAbstract	, 1Zend_Search_Lucene	0+ cZend_Search_Lucene_TermStreamsPriorityQueue	$* KZend_Search_Lucene_Storage_File	+) YZend_Search_Lucene_Storage_File_Memory	/( aZend_Search_Lucene_Storage_File_Filesystem	)' UZend_Search_Lucene_Storage_Directory	4& kZend_Search_Lucene_Storage_Directory_Filesystem	%% MZend_Search_Lucene_Search_Weight	*$ WZend_Search_Lucene_Search_Weight_Term	,# [Zend_Search_Lucene_Search_Weight_Phrase	/" aZend_Search_Lucene_Search_Weight_MultiTerm	+! YZend_Search_Lucene_Search_Weight_Empty	-  ]Zend_Search_Lucene_Search_Weight_Boolean	) UZend_Search_Lucene_Search_Similarity	1 eZend_Search_Lucene_Search_Similarity_Default	) UZend_Search_Lucene_Search_QueryToken	3 iZend_Search_Lucene_Search_QueryParserException	1 eZend_Search_Lucene_Search_QueryParserContext	* WZend_Search_Lucene_Search_QueryParser	) UZend_Search_Lucene_Search_QueryLexer	' QZend_Search_Lucene_Search_QueryHit	) UZend_Search_Lucene_Search_QueryEntry	. _Zend_Search_Lucene_Search_QueryEntry_Term	2 gZend_Search_Lucene_Search_QueryEntry_Subquery	0 cZend_Search_Lucene_Search_QueryEntry_Phrase	$ KZend_Search_Lucene_Search_Query	- ]Zend_Search_Lucene_Search_Query_Wildcard	) UZend_Search_Lucene_Search_Query_Term	* WZend_Search_Lucene_Search_Query_Range	2 gZend_Search_Lucene_Search_Query_Preprocessing	7 qZend_Search_Lucene_Search_Query_Preprocessing_Term	9 uZend_Search_Lucene_Search_Query_Preprocessing_Phrase	8 sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy	   X  mGP&mIZ^4



f
)				[	"d4s=xH`>pH*wHi8
jC          $> KZend_Service_ReCaptcha_MailHide	.= _Zend_Service_ReCaptcha_MailHide_Exception	%< MZend_Service_ReCaptcha_Exception	#; IZend_Service_Rackspace_Servers	5: mZend_Service_Rackspace_Servers_SharedIpGroupList	19 eZend_Service_Rackspace_Servers_SharedIpGroup	.8 _Zend_Service_Rackspace_Servers_ServerList	*7 WZend_Service_Rackspace_Servers_Server	-6 ]Zend_Service_Rackspace_Servers_ImageList	)5 UZend_Service_Rackspace_Servers_Image	-4 ]Zend_Service_Rackspace_Servers_Exception	!3 EZend_Service_Rackspace_Files	,2 [Zend_Service_Rackspace_Files_ObjectList	(1 SZend_Service_Rackspace_Files_Object	+0 YZend_Service_Rackspace_Files_Exception	// aZend_Service_Rackspace_Files_ContainerList	+. YZend_Service_Rackspace_Files_Container	%- MZend_Service_Rackspace_Exception	$, KZend_Service_Rackspace_Abstract	+ 7Zend_Service_LiveDocx	$* KZend_Service_LiveDocx_MailMerge	$) KZend_Service_LiveDocx_Exception	( 3Zend_Service_Flickr	"' GZend_Service_Flickr_ResultSet	& AZend_Service_Flickr_Result	% ?Zend_Service_Flickr_Image	$ 9Zend_Service_Exception	# ?Zend_Service_Ebay_Finding	)" UZend_Service_Ebay_Finding_Storefront	+! YZend_Service_Ebay_Finding_ShippingInfo	+  YZend_Service_Ebay_Finding_Set_Abstract	, [Zend_Service_Ebay_Finding_SellingStatus	) UZend_Service_Ebay_Finding_SellerInfo	, [Zend_Service_Ebay_Finding_Search_Result	* WZend_Service_Ebay_Finding_Search_Item	. _Zend_Service_Ebay_Finding_Search_Item_Set	0 cZend_Service_Ebay_Finding_Response_Keywords	- ]Zend_Service_Ebay_Finding_Response_Items	2 gZend_Service_Ebay_Finding_Response_Histograms	0 cZend_Service_Ebay_Finding_Response_Abstract	/ aZend_Service_Ebay_Finding_PaginationOutput	* WZend_Service_Ebay_Finding_ListingInfo	( SZend_Service_Ebay_Finding_Exception	, [Zend_Service_Ebay_Finding_Error_Message	) UZend_Service_Ebay_Finding_Error_Data	- ]Zend_Service_Ebay_Finding_Error_Data_Set	' QZend_Service_Ebay_Finding_Category	1 eZend_Service_Ebay_Finding_Category_Histogram	5 mZend_Service_Ebay_Finding_Category_Histogram_Set	; yZend_Service_Ebay_Finding_Category_Histogram_Container	% MZend_Service_Ebay_Finding_Aspect	) UZend_Service_Ebay_Finding_Aspect_Set	5
 mZend_Service_Ebay_Finding_Aspect_Histogram_Value	9	 uZend_Service_Ebay_Finding_Aspect_Histogram_Value_Set	9 uZend_Service_Ebay_Finding_Aspect_Histogram_Container	' QZend_Service_Ebay_Finding_Abstract	  CZend_Service_Ebay_Exception	 AZend_Service_Ebay_Abstract	 9Zend_Service_Delicious	& OZend_Service_Delicious_SimplePost	$ KZend_Service_Delicious_PostList	  CZend_Service_Delicious_Post	%  MZend_Service_Delicious_Exception	# IZend_Service_Console_Exception	!~ EZend_Service_Console_Command	7} qZend_Service_Console_Command_ParameterSource_StdIn	8| sZend_Service_Console_Command_ParameterSource_Prompt	5{ mZend_Service_Console_Command_ParameterSource_Env	<z {Zend_Service_Console_Command_ParameterSource_ConfigFile	6y oZend_Service_Console_Command_ParameterSource_Argv	 x CZend_Service_Audioscrobbler	w 3Zend_Service_Amazon	v ;Zend_Service_Amazon_Sqs	&u OZend_Service_Amazon_Sqs_Exception	!t EZend_Service_Amazon_SimpleDb	*s WZend_Service_Amazon_SimpleDb_Response	&r OZend_Service_Amazon_SimpleDb_Page	+q YZend_Service_Amazon_SimpleDb_Exception	+p YZend_Service_Amazon_SimpleDb_Attribute	'o QZend_Service_Amazon_SimilarProduct	n 9Zend_Service_Amazon_S3	"m GZend_Service_Amazon_S3_Stream	%l MZend_Service_Amazon_S3_Exception	"k GZend_Service_Amazon_ResultSet	j ?Zend_Service_Amazon_Query	!i EZend_Service_Amazon_OfferSet	h ?Zend_Service_Amazon_Offer	&g OZend_Service_Amazon_ListmaniaList	   F  e=xN.e-uDuX


g
				K	Zq,Mw@
`#d0u7_                                                                   A Zend_Service_WindowsAzure_Management_StorageServiceInstance	@ Zend_Service_WindowsAzure_Management_ServiceEntityAbstract	B Zend_Service_WindowsAzure_Management_OperationStatusInstance	B Zend_Service_WindowsAzure_Management_OperatingSystemInstance	H  Zend_Service_WindowsAzure_Management_OperatingSystemFamilyInstance	: wZend_Service_WindowsAzure_Management_LocationInstance	@~ Zend_Service_WindowsAzure_Management_HostedServiceInstance	3} iZend_Service_WindowsAzure_Management_Exception	<| {Zend_Service_WindowsAzure_Management_DeploymentInstance	0{ cZend_Service_WindowsAzure_Management_Client	=z }Zend_Service_WindowsAzure_Management_CertificateInstance	@y Zend_Service_WindowsAzure_Management_AffinityGroupInstance	6x oZend_Service_WindowsAzure_Log_Writer_WindowsAzure	9w uZend_Service_WindowsAzure_Log_Formatter_WindowsAzure	,v [Zend_Service_WindowsAzure_Log_Exception	(u SZend_Service_WindowsAzure_Exception	Jt Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscription	2s gZend_Service_WindowsAzure_Diagnostics_Manager	3r iZend_Service_WindowsAzure_Diagnostics_LogLevel	4q kZend_Service_WindowsAzure_Diagnostics_Exception	Np Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscription	Ho Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLog	Ln Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCounters	Km Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstract	<l {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogs	Ak Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstance	Dj 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectories	Ui +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogs	Dh 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSources	8g sZend_Service_WindowsAzure_Credentials_SharedKeyLite	4f kZend_Service_WindowsAzure_Credentials_SharedKey	Ae Zend_Service_WindowsAzure_Credentials_SharedAccessSignature	4d kZend_Service_WindowsAzure_Credentials_Exception	>c Zend_Service_WindowsAzure_Credentials_CredentialsAbstract	2b gZend_Service_WindowsAzure_CommandLine_Storage	2a gZend_Service_WindowsAzure_CommandLine_Service	` !Scaffolder	W_ /Zend_Service_WindowsAzure_CommandLine_PackageScaffolder_PackageScaffolderAbstract	2^ gZend_Service_WindowsAzure_CommandLine_Package	D] 	Zend_Service_WindowsAzure_CommandLine_GetAsynchronousOperation	5\ mZend_Service_WindowsAzure_CommandLine_Deployment	6[ oZend_Service_WindowsAzure_CommandLine_Certificate	Z 5Zend_Service_Twitter	"Y GZend_Service_Twitter_Response	#X IZend_Service_Twitter_Exception	W ;Zend_Service_StrikeIron	(V SZend_Service_StrikeIron_ZipCodeInfo	2U gZend_Service_StrikeIron_USAddressVerification	-T ]Zend_Service_StrikeIron_SalesUseTaxBasic	&S OZend_Service_StrikeIron_Exception	&R OZend_Service_StrikeIron_Decorator	!Q EZend_Service_StrikeIron_Base	;P yZend_Service_SqlAzure_Management_ServiceEntityAbstract	4O kZend_Service_SqlAzure_Management_ServerInstance	:N wZend_Service_SqlAzure_Management_FirewallRuleInstance	/M aZend_Service_SqlAzure_Management_Exception	,L [Zend_Service_SqlAzure_Management_Client	$K KZend_Service_SqlAzure_Exception	J ;Zend_Service_SlideShare	&I OZend_Service_SlideShare_SlideShow	&H OZend_Service_SlideShare_Exception	%G MZend_Service_ShortUrl_TinyUrlCom	&F OZend_Service_ShortUrl_MetamarkNet	!E EZend_Service_ShortUrl_JdemCz	D AZend_Service_ShortUrl_IsGd	$C KZend_Service_ShortUrl_Exception	 B CZend_Service_ShortUrl_BitLy	,A [Zend_Service_ShortUrl_AbstractShortener	@ 9Zend_Service_ReCaptcha	$? KZend_Service_ReCaptcha_Response	   \  |Fn/[yA
_)



k
D
				n	H	Z0lC\=`G&nD}d?tS<!Y)            +` YZend_Test_PHPUnit_Constraint_Exception	,_ [Zend_Test_PHPUnit_Constraint_DomQuery41	,^ [Zend_Test_PHPUnit_Constraint_DomQuery37	,] [Zend_Test_PHPUnit_Constraint_DomQuery34	*\ WZend_Test_PHPUnit_Constraint_DomQuery	[ 7Zend_Test_DbStatement	Z 3Zend_Test_DbAdapter	Y /Zend_Tag_ItemList	X 'Zend_Tag_Item	W 1Zend_Tag_Exception	V )Zend_Tag_Cloud	U =Zend_Tag_Cloud_Exception	!T EZend_Tag_Cloud_Decorator_Tag	%S MZend_Tag_Cloud_Decorator_HtmlTag	'R QZend_Tag_Cloud_Decorator_HtmlCloud	'Q QZend_Tag_Cloud_Decorator_Exception	#P IZend_Tag_Cloud_Decorator_Cloud	!O EZend_Stdlib_SplPriorityQueue	N -SplPriorityQueue	M ?Zend_Stdlib_PriorityQueue	3L iZend_Stdlib_Exception_InvalidCallbackException	 K CZend_Stdlib_CallbackHandler	J )Zend_Soap_Wsdl	/I aZend_Soap_Wsdl_Strategy_DefaultComplexType	&H OZend_Soap_Wsdl_Strategy_Composite	0G cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence	/F aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex	$E KZend_Soap_Wsdl_Strategy_AnyType	%D MZend_Soap_Wsdl_Strategy_Abstract	C =Zend_Soap_Wsdl_Exception	B -Zend_Soap_Server	A 9Zend_Soap_Server_Proxy	@ AZend_Soap_Server_Exception	? -Zend_Soap_Client	> 9Zend_Soap_Client_Local	= AZend_Soap_Client_Exception	< ;Zend_Soap_Client_DotNet	; ;Zend_Soap_Client_Common	: 9Zend_Soap_AutoDiscover	%9 MZend_Soap_AutoDiscover_Exception	8 %Zend_Session	)7 UZend_Session_Validator_HttpUserAgent	%6 MZend_Session_Validator_Exception	$5 KZend_Session_Validator_Abstract	'4 QZend_Session_SaveHandler_Exception	%3 MZend_Session_SaveHandler_DbTable	2 9Zend_Session_Namespace	1 9Zend_Session_Exception	0 7Zend_Session_Abstract	/ 1Zend_Service_Yahoo	$. KZend_Service_Yahoo_WebResultSet	!- EZend_Service_Yahoo_WebResult	&, OZend_Service_Yahoo_VideoResultSet	#+ IZend_Service_Yahoo_VideoResult	!* EZend_Service_Yahoo_ResultSet	) ?Zend_Service_Yahoo_Result	)( UZend_Service_Yahoo_PageDataResultSet	&' OZend_Service_Yahoo_PageDataResult	%& MZend_Service_Yahoo_NewsResultSet	"% GZend_Service_Yahoo_NewsResult	&$ OZend_Service_Yahoo_LocalResultSet	## IZend_Service_Yahoo_LocalResult	+" YZend_Service_Yahoo_InlinkDataResultSet	(! SZend_Service_Yahoo_InlinkDataResult	&  OZend_Service_Yahoo_ImageResultSet	# IZend_Service_Yahoo_ImageResult	 =Zend_Service_Yahoo_Image	& OZend_Service_WindowsAzure_Storage	4 kZend_Service_WindowsAzure_Storage_TableInstance	7 qZend_Service_WindowsAzure_Storage_TableEntityQuery	2 gZend_Service_WindowsAzure_Storage_TableEntity	, [Zend_Service_WindowsAzure_Storage_Table	< {Zend_Service_WindowsAzure_Storage_StorageEntityAbstract	7 qZend_Service_WindowsAzure_Storage_SignedIdentifier	3 iZend_Service_WindowsAzure_Storage_QueueMessage	4 kZend_Service_WindowsAzure_Storage_QueueInstance	, [Zend_Service_WindowsAzure_Storage_Queue	9 uZend_Service_WindowsAzure_Storage_PageRegionInstance	4 kZend_Service_WindowsAzure_Storage_LeaseInstance	9 uZend_Service_WindowsAzure_Storage_DynamicTableEntity	3 iZend_Service_WindowsAzure_Storage_BlobInstance	4 kZend_Service_WindowsAzure_Storage_BlobContainer	+ YZend_Service_WindowsAzure_Storage_Blob	2 gZend_Service_WindowsAzure_Storage_Blob_Stream	; yZend_Service_WindowsAzure_Storage_BatchStorageAbstract	, [Zend_Service_WindowsAzure_Storage_Batch	-
 ]Zend_Service_WindowsAzure_SessionHandler	>	 Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract	1 eZend_Service_WindowsAzure_RetryPolicy_RetryN	2 gZend_Service_WindowsAzure_RetryPolicy_NoRetry	4 kZend_Service_WindowsAzure_RetryPolicy_Exception	H Zend_Service_WindowsAzure_Management_SubscriptionOperationInstance	   T  rBl?]+uGyZ2




x
Y
>
(
 			y	O	a_2}Q&}R, NW,xHc7                                14 eZend_Tool_Framework_System_Provider_Manifest	/3 aZend_Tool_Framework_System_Provider_Config	(2 SZend_Tool_Framework_System_Manifest	-1 ]Zend_Tool_Framework_System_Action_Delete	-0 ]Zend_Tool_Framework_System_Action_Create	!/ EZend_Tool_Framework_Registry	+. YZend_Tool_Framework_Registry_Exception	+- YZend_Tool_Framework_Provider_Signature	,, [Zend_Tool_Framework_Provider_Repository	++ YZend_Tool_Framework_Provider_Exception	** WZend_Tool_Framework_Provider_Abstract	&) OZend_Tool_Framework_Metadata_Tool	)( UZend_Tool_Framework_Metadata_Dynamic	'' QZend_Tool_Framework_Metadata_Basic	,& [Zend_Tool_Framework_Manifest_Repository	2% gZend_Tool_Framework_Manifest_ProviderMetadata	*$ WZend_Tool_Framework_Manifest_Metadata	+# YZend_Tool_Framework_Manifest_Exception	0" cZend_Tool_Framework_Manifest_ActionMetadata	1! eZend_Tool_Framework_Loader_IncludePathLoader	J  Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator	+ YZend_Tool_Framework_Loader_BasicLoader	( SZend_Tool_Framework_Loader_Abstract	" GZend_Tool_Framework_Exception	' QZend_Tool_Framework_Client_Storage	1 eZend_Tool_Framework_Client_Storage_Directory	( SZend_Tool_Framework_Client_Response	D 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator	' QZend_Tool_Framework_Client_Request	( SZend_Tool_Framework_Client_Manifest	9 uZend_Tool_Framework_Client_Interactive_InputResponse	8 sZend_Tool_Framework_Client_Interactive_InputRequest	8 sZend_Tool_Framework_Client_Interactive_InputHandler	) UZend_Tool_Framework_Client_Exception	' QZend_Tool_Framework_Client_Console	D 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Indention	D 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizer	C Zend_Tool_Framework_Client_Console_ResponseDecorator_Blockize	F Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter	0 cZend_Tool_Framework_Client_Console_Manifest	2 gZend_Tool_Framework_Client_Console_HelpSystem	6 oZend_Tool_Framework_Client_Console_ArgumentParser	&
 OZend_Tool_Framework_Client_Config	(	 SZend_Tool_Framework_Client_Abstract	* WZend_Tool_Framework_Action_Repository	) UZend_Tool_Framework_Action_Exception	$ KZend_Tool_Framework_Action_Base	 'Zend_TimeSync	 1Zend_TimeSync_Sntp	 9Zend_TimeSync_Protocol	 /Zend_TimeSync_Ntp	 ;Zend_TimeSync_Exception	  +Zend_Text_Table	 3Zend_Text_Table_Row	~ ?Zend_Text_Table_Exception	&} OZend_Text_Table_Decorator_Unicode	$| KZend_Text_Table_Decorator_Ascii	{ 9Zend_Text_Table_Column	z 3Zend_Text_MultiByte	y -Zend_Text_Figlet	x AZend_Text_Figlet_Exception	w 3Zend_Text_Exception	&v OZend_Test_PHPUnit_Db_SimpleTester	,u [Zend_Test_PHPUnit_Db_Operation_Truncate	*t WZend_Test_PHPUnit_Db_Operation_Insert	-s ]Zend_Test_PHPUnit_Db_Operation_DeleteAll	*r WZend_Test_PHPUnit_Db_Metadata_Generic	#q IZend_Test_PHPUnit_Db_Exception	,p [Zend_Test_PHPUnit_Db_DataSet_QueryTable	.o _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet	0n cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet	)m UZend_Test_PHPUnit_Db_DataSet_DbTable	*l WZend_Test_PHPUnit_Db_DataSet_DbRowset	$k KZend_Test_PHPUnit_Db_Connection	'j QZend_Test_PHPUnit_DatabaseTestCase	)i UZend_Test_PHPUnit_ControllerTestCase	2h gZend_Test_PHPUnit_Constraint_ResponseHeader41	2g gZend_Test_PHPUnit_Constraint_ResponseHeader37	2f gZend_Test_PHPUnit_Constraint_ResponseHeader34	0e cZend_Test_PHPUnit_Constraint_ResponseHeader	,d [Zend_Test_PHPUnit_Constraint_Redirect41	,c [Zend_Test_PHPUnit_Constraint_Redirect37	,b [Zend_Test_PHPUnit_Constraint_Redirect34	*a WZend_Test_PHPUnit_Constraint_Redirect	   F  Y"X&?h.a-



Y
&				\	 ~K|Cb"x@t0g)v8N                    0z cZend_Tool_Project_Context_Zf_ViewScriptFile	6y oZend_Tool_Project_Context_Zf_ViewHelpersDirectory	6x oZend_Tool_Project_Context_Zf_ViewFiltersDirectory	Aw Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory	2v gZend_Tool_Project_Context_Zf_UploadsDirectory	0u cZend_Tool_Project_Context_Zf_TestsDirectory	7t qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile	:s wZend_Tool_Project_Context_Zf_TestPHPUnitBootstrapFile	@r Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory	1q eZend_Tool_Project_Context_Zf_TestLibraryFile	6p oZend_Tool_Project_Context_Zf_TestLibraryDirectory	:o wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFile	Bn Zend_Tool_Project_Context_Zf_TestApplicationModulesDirectory	Am Zend_Tool_Project_Context_Zf_TestApplicationModuleDirectory	:l wZend_Tool_Project_Context_Zf_TestApplicationDirectory	@k Zend_Tool_Project_Context_Zf_TestApplicationControllerFile	Ej Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory	>i Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile	=h }Zend_Tool_Project_Context_Zf_TestApplicationActionMethod	4g kZend_Tool_Project_Context_Zf_TemporaryDirectory	3f iZend_Tool_Project_Context_Zf_SessionsDirectory	3e iZend_Tool_Project_Context_Zf_ServicesDirectory	8d sZend_Tool_Project_Context_Zf_SearchIndexesDirectory	<c {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory	8b sZend_Tool_Project_Context_Zf_PublicScriptsDirectory	1a eZend_Tool_Project_Context_Zf_PublicIndexFile	7` qZend_Tool_Project_Context_Zf_PublicImagesDirectory	1_ eZend_Tool_Project_Context_Zf_PublicDirectory	5^ mZend_Tool_Project_Context_Zf_ProjectProviderFile	2] gZend_Tool_Project_Context_Zf_ModulesDirectory	1\ eZend_Tool_Project_Context_Zf_ModuleDirectory	1[ eZend_Tool_Project_Context_Zf_ModelsDirectory	+Z YZend_Tool_Project_Context_Zf_ModelFile	/Y aZend_Tool_Project_Context_Zf_LogsDirectory	2X gZend_Tool_Project_Context_Zf_LocalesDirectory	2W gZend_Tool_Project_Context_Zf_LibraryDirectory	2V gZend_Tool_Project_Context_Zf_LayoutsDirectory	8U sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory	2T gZend_Tool_Project_Context_Zf_LayoutScriptFile	.S _Zend_Tool_Project_Context_Zf_HtaccessFile	0R cZend_Tool_Project_Context_Zf_FormsDirectory	*Q WZend_Tool_Project_Context_Zf_FormFile	/P aZend_Tool_Project_Context_Zf_DocsDirectory	-O ]Zend_Tool_Project_Context_Zf_DbTableFile	2N gZend_Tool_Project_Context_Zf_DbTableDirectory	/M aZend_Tool_Project_Context_Zf_DataDirectory	6L oZend_Tool_Project_Context_Zf_ControllersDirectory	0K cZend_Tool_Project_Context_Zf_ControllerFile	2J gZend_Tool_Project_Context_Zf_ConfigsDirectory	,I [Zend_Tool_Project_Context_Zf_ConfigFile	0H cZend_Tool_Project_Context_Zf_CacheDirectory	/G aZend_Tool_Project_Context_Zf_BootstrapFile	6F oZend_Tool_Project_Context_Zf_ApplicationDirectory	7E qZend_Tool_Project_Context_Zf_ApplicationConfigFile	/D aZend_Tool_Project_Context_Zf_ApisDirectory	.C _Zend_Tool_Project_Context_Zf_ActionMethod	3B iZend_Tool_Project_Context_Zf_AbstractClassFile	@A Zend_Tool_Project_Context_System_ProjectProvidersDirectory	8@ sZend_Tool_Project_Context_System_ProjectProfileFile	6? oZend_Tool_Project_Context_System_ProjectDirectory	)> UZend_Tool_Project_Context_Repository	.= _Zend_Tool_Project_Context_Filesystem_File	3< iZend_Tool_Project_Context_Filesystem_Directory	2; gZend_Tool_Project_Context_Filesystem_Abstract	(: SZend_Tool_Project_Context_Exception	-9 ]Zend_Tool_Project_Context_Content_Engine	38 iZend_Tool_Project_Context_Content_Engine_Phtml	;7 yZend_Tool_Project_Context_Content_Engine_CodeGenerator	06 cZend_Tool_Framework_System_Provider_Version	05 cZend_Tool_Framework_System_Provider_Phpinfo	   e  R.W"lB`8d9



n
G
$
				r	S	2	d6oG#qN)fBb?!jBzN#rJ'                    _ CZend_Validate_File_MimeType	^ 9Zend_Validate_File_Md5	] AZend_Validate_File_IsImage	$\ KZend_Validate_File_IsCompressed	![ EZend_Validate_File_ImageSize	Z ;Zend_Validate_File_Hash	!Y EZend_Validate_File_FilesSize	!X EZend_Validate_File_Extension	W ?Zend_Validate_File_Exists	'V QZend_Validate_File_ExcludeMimeType	(U SZend_Validate_File_ExcludeExtension	T =Zend_Validate_File_Crc32	S =Zend_Validate_File_Count	R ;Zend_Validate_Exception	Q AZend_Validate_EmailAddress	P 5Zend_Validate_Digits	"O GZend_Validate_Db_RecordExists	$N KZend_Validate_Db_NoRecordExists	M ?Zend_Validate_Db_Abstract	L 1Zend_Validate_Date	K =Zend_Validate_CreditCard	J 3Zend_Validate_Ccnum	I 9Zend_Validate_Callback	H 7Zend_Validate_Between	G 7Zend_Validate_Barcode	F AZend_Validate_Barcode_Upce	E AZend_Validate_Barcode_Upca	D AZend_Validate_Barcode_Sscc	$C KZend_Validate_Barcode_Royalmail	"B GZend_Validate_Barcode_Postnet	!A EZend_Validate_Barcode_Planet	#@ IZend_Validate_Barcode_Leitcode	 ? CZend_Validate_Barcode_Itf14	> AZend_Validate_Barcode_Issn	*= WZend_Validate_Barcode_IntelligentMail	$< KZend_Validate_Barcode_Identcode	!; EZend_Validate_Barcode_Gtin14	!: EZend_Validate_Barcode_Gtin13	!9 EZend_Validate_Barcode_Gtin12	8 AZend_Validate_Barcode_Ean8	7 AZend_Validate_Barcode_Ean5	6 AZend_Validate_Barcode_Ean2	 5 CZend_Validate_Barcode_Ean18	 4 CZend_Validate_Barcode_Ean14	 3 CZend_Validate_Barcode_Ean13	 2 CZend_Validate_Barcode_Ean12	$1 KZend_Validate_Barcode_Code93ext	!0 EZend_Validate_Barcode_Code93	$/ KZend_Validate_Barcode_Code39ext	!. EZend_Validate_Barcode_Code39	,- [Zend_Validate_Barcode_Code25interleaved	!, EZend_Validate_Barcode_Code25	*+ WZend_Validate_Barcode_AdapterAbstract	* 3Zend_Validate_Alpha	) 3Zend_Validate_Alnum	( 9Zend_Validate_Abstract	' Zend_Uri	& 'Zend_Uri_Http	% 1Zend_Uri_Exception	$ )Zend_Translate	# 7Zend_Translate_Plural	" =Zend_Translate_Exception	! 9Zend_Translate_Adapter	!  EZend_Translate_Adapter_XmlTm	! EZend_Translate_Adapter_Xliff	 AZend_Translate_Adapter_Tmx	 AZend_Translate_Adapter_Tbx	 ?Zend_Translate_Adapter_Qt	 AZend_Translate_Adapter_Ini	# IZend_Translate_Adapter_Gettext	 AZend_Translate_Adapter_Csv	! EZend_Translate_Adapter_Array	$ KZend_Tool_Project_Provider_View	$ KZend_Tool_Project_Provider_Test	/ aZend_Tool_Project_Provider_ProjectProvider	' QZend_Tool_Project_Provider_Project	' QZend_Tool_Project_Provider_Profile	& OZend_Tool_Project_Provider_Module	% MZend_Tool_Project_Provider_Model	( SZend_Tool_Project_Provider_Manifest	& OZend_Tool_Project_Provider_Layout	$ KZend_Tool_Project_Provider_Form	) UZend_Tool_Project_Provider_Exception	' QZend_Tool_Project_Provider_DbTable	) UZend_Tool_Project_Provider_DbAdapter	*
 WZend_Tool_Project_Provider_Controller	+	 YZend_Tool_Project_Provider_Application	& OZend_Tool_Project_Provider_Action	( SZend_Tool_Project_Provider_Abstract	 ?Zend_Tool_Project_Profile	' QZend_Tool_Project_Profile_Resource	9 uZend_Tool_Project_Profile_Resource_SearchConstraints	1 eZend_Tool_Project_Profile_Resource_Container	= }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter	5 mZend_Tool_Project_Profile_Iterator_ContextFilter	-  ]Zend_Tool_Project_Profile_FileParser_Xml	( SZend_Tool_Project_Profile_Exception	 ~ CZend_Tool_Project_Exception	<} {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory	0| cZend_Tool_Project_Context_Zf_ViewsDirectory	6{ oZend_Tool_Project_Context_Zf_ViewScriptsDirectory	   k  yT8jQ6vP.`@vX4




\
9
					\	8	fC pI#X/hCi1kN+ W2[,                                +J YZend_XmlRpc_Client_ServerIntrospection	+I YZend_XmlRpc_Client_IntrospectException	%H MZend_XmlRpc_Client_HttpException	&G OZend_XmlRpc_Client_FaultException	!F EZend_XmlRpc_Client_Exception	E /Zend_Xml_Security	D 1Zend_Xml_Exception	&C OZend_Wildfire_Protocol_JsonStream	!B EZend_Wildfire_Plugin_FirePhp	.A _Zend_Wildfire_Plugin_FirePhp_TableMessage	)@ UZend_Wildfire_Plugin_FirePhp_Message	? ;Zend_Wildfire_Exception	&> OZend_Wildfire_Channel_HttpHeaders	= Zend_View	< -Zend_View_Stream	; AZend_View_Helper_UserAgent	: 5Zend_View_Helper_Url	9 AZend_View_Helper_Translate	8 AZend_View_Helper_ServerUrl	)7 UZend_View_Helper_RenderToPlaceholder	!6 EZend_View_Helper_Placeholder	*5 WZend_View_Helper_Placeholder_Registry	44 kZend_View_Helper_Placeholder_Registry_Exception	+3 YZend_View_Helper_Placeholder_Container	62 oZend_View_Helper_Placeholder_Container_Standalone	51 mZend_View_Helper_Placeholder_Container_Exception	40 kZend_View_Helper_Placeholder_Container_Abstract	!/ EZend_View_Helper_PartialLoop	. =Zend_View_Helper_Partial	'- QZend_View_Helper_Partial_Exception	', QZend_View_Helper_PaginationControl	 + CZend_View_Helper_Navigation	(* SZend_View_Helper_Navigation_Sitemap	%) MZend_View_Helper_Navigation_Menu	&( OZend_View_Helper_Navigation_Links	/' aZend_View_Helper_Navigation_HelperAbstract	,& [Zend_View_Helper_Navigation_Breadcrumbs	% ;Zend_View_Helper_Layout	$ 7Zend_View_Helper_Json	"# GZend_View_Helper_InlineScript	#" IZend_View_Helper_HtmlQuicktime	! ?Zend_View_Helper_HtmlPage	   CZend_View_Helper_HtmlObject	 ?Zend_View_Helper_HtmlList	 AZend_View_Helper_HtmlFlash	! EZend_View_Helper_HtmlElement	 AZend_View_Helper_HeadTitle	 AZend_View_Helper_HeadStyle	  CZend_View_Helper_HeadScript	 ?Zend_View_Helper_HeadMeta	 ?Zend_View_Helper_HeadLink	 ?Zend_View_Helper_Gravatar	" GZend_View_Helper_FormTextarea	 ?Zend_View_Helper_FormText	  CZend_View_Helper_FormSubmit	  CZend_View_Helper_FormSelect	 AZend_View_Helper_FormReset	 AZend_View_Helper_FormRadio	" GZend_View_Helper_FormPassword	 ?Zend_View_Helper_FormNote	' QZend_View_Helper_FormMultiCheckbox	 AZend_View_Helper_FormLabel	 AZend_View_Helper_FormImage	  CZend_View_Helper_FormHidden	
 ?Zend_View_Helper_FormFile	 	 CZend_View_Helper_FormErrors	! EZend_View_Helper_FormElement	" GZend_View_Helper_FormCheckbox	  CZend_View_Helper_FormButton	 7Zend_View_Helper_Form	 ?Zend_View_Helper_Fieldset	 =Zend_View_Helper_Doctype	! EZend_View_Helper_DeclareVars	 9Zend_View_Helper_Cycle	  ?Zend_View_Helper_Currency	 =Zend_View_Helper_BaseUrl	~ ;Zend_View_Helper_Action	} ?Zend_View_Helper_Abstract	| 3Zend_View_Exception	{ 1Zend_View_Abstract	z %Zend_Version	y 'Zend_Validate	x AZend_Validate_StringLength	#w IZend_Validate_Sitemap_Priority	v ?Zend_Validate_Sitemap_Loc	"u GZend_Validate_Sitemap_Lastmod	%t MZend_Validate_Sitemap_Changefreq	s 3Zend_Validate_Regex	r 9Zend_Validate_PostCode	q 9Zend_Validate_NotEmpty	p 9Zend_Validate_LessThan	o 7Zend_Validate_Ldap_Dn	n 1Zend_Validate_Isbn	m -Zend_Validate_Ip	l /Zend_Validate_Int	k 7Zend_Validate_InArray	j ;Zend_Validate_Identical	i 1Zend_Validate_Iban	h 9Zend_Validate_Hostname	g /Zend_Validate_Hex	f ?Zend_Validate_GreaterThan	e 3Zend_Validate_Float	!d EZend_Validate_File_WordCount	c ?Zend_Validate_File_Upload	b ;Zend_Validate_File_Size	a ;Zend_Validate_File_Sha1	!` EZend_Validate_File_NotExists	   i  \,fE \:mL+
s]L0




k
D
					\	0		oU3^*m<h=l:qGh<c6                               3 9Zend_Auth_Adapter_Ldap
2 9Zend_Auth_Adapter_Http
)1 UZend_Auth_Adapter_Http_Resolver_File
.0 _Zend_Auth_Adapter_Http_Resolver_Exception
 / CZend_Auth_Adapter_Exception
. =Zend_Auth_Adapter_Digest
- ?Zend_Auth_Adapter_DbTable
, -Zend_Application
#+ IZend_Application_Resource_View
(* SZend_Application_Resource_UserAgent
() SZend_Application_Resource_Translate
&( OZend_Application_Resource_Session
%' MZend_Application_Resource_Router
/& aZend_Application_Resource_ResourceAbstract
)% UZend_Application_Resource_Navigation
&$ OZend_Application_Resource_Multidb
&# OZend_Application_Resource_Modules
#" IZend_Application_Resource_Mail
"! GZend_Application_Resource_Log
%  MZend_Application_Resource_Locale
% MZend_Application_Resource_Layout
. _Zend_Application_Resource_Frontcontroller
( SZend_Application_Resource_Exception
# IZend_Application_Resource_Dojo
! EZend_Application_Resource_Db
+ YZend_Application_Resource_Cachemanager
& OZend_Application_Module_Bootstrap
' QZend_Application_Module_Autoloader
 AZend_Application_Exception
) UZend_Application_Bootstrap_Exception
1 eZend_Application_Bootstrap_BootstrapAbstract
) UZend_Application_Bootstrap_Bootstrap
 ?Zend_Amf_Value_TraitsInfo
- ]Zend_Amf_Value_Messaging_RemotingMessage
* WZend_Amf_Value_Messaging_ErrorMessage
, [Zend_Amf_Value_Messaging_CommandMessage
* WZend_Amf_Value_Messaging_AsyncMessage
- ]Zend_Amf_Value_Messaging_ArrayCollection
0 cZend_Amf_Value_Messaging_AcknowledgeMessage
- ]Zend_Amf_Value_Messaging_AbstractMessage
! EZend_Amf_Value_MessageHeader

 AZend_Amf_Value_MessageBody
	 =Zend_Amf_Value_ByteArray
 AZend_Amf_Util_BinaryStream
 +Zend_Amf_Server
 ?Zend_Amf_Server_Exception
 /Zend_Amf_Response
 9Zend_Amf_Response_Http
 -Zend_Amf_Request
 7Zend_Amf_Request_Http
 ?Zend_Amf_Parse_TypeLoader
  ?Zend_Amf_Parse_Serializer
# IZend_Amf_Parse_Resource_Stream
(~ SZend_Amf_Parse_Resource_MysqlResult
)} UZend_Amf_Parse_Resource_MysqliResult
 | CZend_Amf_Parse_OutputStream
{ AZend_Amf_Parse_InputStream
 z CZend_Amf_Parse_Deserializer
#y IZend_Amf_Parse_Amf3_Serializer
%x MZend_Amf_Parse_Amf3_Deserializer
#w IZend_Amf_Parse_Amf0_Serializer
%v MZend_Amf_Parse_Amf0_Deserializer
u 1Zend_Amf_Exception
t 1Zend_Amf_Constants
s 9Zend_Amf_Auth_Abstract
 r CZend_Amf_Adobe_Introspector
q AZend_Amf_Adobe_DbInspector
p 3Zend_Amf_Adobe_Auth
o Zend_Acl
n 'Zend_Acl_Role
m 9Zend_Acl_Role_Registry
%l MZend_Acl_Role_Registry_Exception
k /Zend_Acl_Resource
j 1Zend_Acl_Exception
i /Zend_XmlRpc_Value	h =Zend_XmlRpc_Value_Struct	g =Zend_XmlRpc_Value_String	f =Zend_XmlRpc_Value_Scalar	e 7Zend_XmlRpc_Value_Nil	d ?Zend_XmlRpc_Value_Integer	 c CZend_XmlRpc_Value_Exception	b =Zend_XmlRpc_Value_Double	a AZend_XmlRpc_Value_DateTime	!` EZend_XmlRpc_Value_Collection	_ ?Zend_XmlRpc_Value_Boolean	!^ EZend_XmlRpc_Value_BigInteger	] =Zend_XmlRpc_Value_Base64	\ ;Zend_XmlRpc_Value_Array	[ 1Zend_XmlRpc_Server	Z ?Zend_XmlRpc_Server_System	Y =Zend_XmlRpc_Server_Fault	!X EZend_XmlRpc_Server_Exception	W =Zend_XmlRpc_Server_Cache	V 5Zend_XmlRpc_Response	U ?Zend_XmlRpc_Response_Http	T 3Zend_XmlRpc_Request	S ?Zend_XmlRpc_Request_Stdin	R =Zend_XmlRpc_Request_Http	$Q KZend_XmlRpc_Generator_XmlWriter	,P [Zend_XmlRpc_Generator_GeneratorAbstract	&O OZend_XmlRpc_Generator_DomDocument	N /Zend_XmlRpc_Fault	M 7Zend_XmlRpc_Exception	L 1Zend_XmlRpc_Client	#K IZend_XmlRpc_Client_ServerProxy	   Y  yN"`%f-W%a3


a
+					w	P	*		a7pT*Z.b9vG_9b=wK(        0 cZend_Ldap_Node_Schema_ObjectClass_Interface
2 gZend_Ldap_Node_Schema_AttributeType_Interface
  CZend_Http_UserAgent_Storage
) UZend_Http_UserAgent_Features_Adapter
 AZend_Http_UserAgent_Device
$ KZend_Http_Client_Adapter_Stream
' QZend_Http_Client_Adapter_Interface
 AZend_Gdata_App_MediaSource
. _Zend_Form_Decorator_Marker_File_Interface
" GZend_Form_Decorator_Interface
 7Zend_Filter_Interface
" GZend_Filter_Encrypt_Interface
+
 YZend_Filter_Compress_CompressInterface
0	 cZend_Feed_Writer_Renderer_RendererInterface
1 eZend_Feed_Writer_Extension_RendererInterface
# IZend_Feed_Reader_FeedInterface
$ KZend_Feed_Reader_EntryInterface
7 qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface
- ]Zend_Feed_Pubsubhubbub_CallbackInterface
  CZend_Feed_Builder_Interface
1 eZend_EventManager_SharedEventCollectionAware
, [Zend_EventManager_SharedEventCollection
(  SZend_EventManager_ListenerAggregate
 =Zend_EventManager_Filter
 ~ CZend_EventManager_Exception
(} SZend_EventManager_EventManagerAware
'| QZend_EventManager_EventDescription
&{ OZend_EventManager_EventCollection
 z CZend_Db_Statement_Interface
$y KZend_Currency_CurrencyInterface
)x UZend_Crypt_Math_BigInteger_Interface
+w YZend_Controller_Router_Route_Interface
%v MZend_Controller_Router_Interface
)u UZend_Controller_Dispatcher_Interface
%t MZend_Controller_Action_Interface
&s OZend_Cloud_StorageService_Adapter
$r KZend_Cloud_QueueService_Adapter
&q OZend_Cloud_Infrastructure_Adapter
,p [Zend_Cloud_DocumentService_QueryAdapter
'o QZend_Cloud_DocumentService_Adapter
n 5Zend_Captcha_Adapter
!m EZend_Cache_Backend_Interface
)l UZend_Cache_Backend_ExtendedInterface
 k CZend_Auth_Storage_Interface
 j CZend_Auth_Adapter_Interface
.i _Zend_Auth_Adapter_Http_Resolver_Interface
'h QZend_Application_Resource_Resource
4g kZend_Application_Bootstrap_ResourceBootstrapper
,f [Zend_Application_Bootstrap_Bootstrapper
e ;Zend_Acl_Role_Interface
 d CZend_Acl_Resource_Interface
c ?Zend_Acl_Assert_Interface
#b IZend_Wildfire_Plugin_Interface	$a KZend_Wildfire_Channel_Interface	` 3Zend_View_Interface	'_ QZend_View_Helper_Navigation_Helper	^ AZend_View_Helper_Interface	] ;Zend_Validate_Interface	+\ YZend_Validate_Barcode_AdapterInterface	3[ iZend_Tool_Project_Profile_FileParser_Interface	:Z wZend_Tool_Project_Context_System_TopLevelRestrictable	5Y mZend_Tool_Project_Context_System_NotOverwritable	/X aZend_Tool_Project_Context_System_Interface	(W SZend_Tool_Project_Context_Interface	+V YZend_Tool_Framework_Registry_Interface	2U gZend_Tool_Framework_Registry_EnabledInterface	-T ]Zend_Tool_Framework_Provider_Pretendable	+S YZend_Tool_Framework_Provider_Interface	.R _Zend_Tool_Framework_Provider_Interactable	/Q aZend_Tool_Framework_Provider_Initializable	;P yZend_Tool_Framework_Provider_DocblockManifestInterface	+O YZend_Tool_Framework_Metadata_Interface	.N _Zend_Tool_Framework_Metadata_Attributable	6M oZend_Tool_Framework_Manifest_ProviderManifestable	6L oZend_Tool_Framework_Manifest_MetadataManifestable	+K YZend_Tool_Framework_Manifest_Interface	+J YZend_Tool_Framework_Manifest_Indexable	4I kZend_Tool_Framework_Manifest_ActionManifestable	)H UZend_Tool_Framework_Loader_Interface	8G sZend_Tool_Framework_Client_Storage_AdapterInterface	DF 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface	;E yZend_Tool_Framework_Client_Interactive_OutputInterface	:D wZend_Tool_Framework_Client_Interactive_InputInterface	)C UZend_Tool_Framework_Action_Interface	(B SZend_Text_Table_Decorator_Interface	A /Zend_Tag_Taggable	@ 7Zend_Stdlib_Exception	&? OZend_Soap_Wsdl_Strategy_Interface	%> MZend_Session_Validator_Interface	   e  ^<*sQ0^9_7lG'




v
Q
-
				f	K	3	gF+oU2K`7~R( zH}S+oB              ( SZend_Cloud_StorageService_Exception
3 iZend_Cloud_StorageService_Adapter_WindowsAzure
) UZend_Cloud_StorageService_Adapter_S3
0 cZend_Cloud_StorageService_Adapter_Rackspace
1 eZend_Cloud_StorageService_Adapter_FileSystem
' QZend_Cloud_QueueService_MessageSet
$ KZend_Cloud_QueueService_Message
$ KZend_Cloud_QueueService_Factory
& OZend_Cloud_QueueService_Exception
. _Zend_Cloud_QueueService_Adapter_ZendQueue
1 eZend_Cloud_QueueService_Adapter_WindowsAzure
( SZend_Cloud_QueueService_Adapter_Sqs
4 kZend_Cloud_QueueService_Adapter_AbstractAdapter
. _Zend_Cloud_OperationNotAvailableException
+
 YZend_Cloud_Infrastructure_InstanceList
'	 QZend_Cloud_Infrastructure_Instance
( SZend_Cloud_Infrastructure_ImageList
$ KZend_Cloud_Infrastructure_Image
& OZend_Cloud_Infrastructure_Factory
( SZend_Cloud_Infrastructure_Exception
0 cZend_Cloud_Infrastructure_Adapter_Rackspace
* WZend_Cloud_Infrastructure_Adapter_Ec2
6 oZend_Cloud_Infrastructure_Adapter_AbstractAdapter
 5Zend_Cloud_Exception
%  MZend_Cloud_DocumentService_Query
' QZend_Cloud_DocumentService_Factory
)~ UZend_Cloud_DocumentService_Exception
+} YZend_Cloud_DocumentService_DocumentSet
(| SZend_Cloud_DocumentService_Document
4{ kZend_Cloud_DocumentService_Adapter_WindowsAzure
:z wZend_Cloud_DocumentService_Adapter_WindowsAzure_Query
0y cZend_Cloud_DocumentService_Adapter_SimpleDb
6x oZend_Cloud_DocumentService_Adapter_SimpleDb_Query
7w qZend_Cloud_DocumentService_Adapter_AbstractAdapter
v AZend_Cloud_AbstractFactory
u /Zend_Captcha_Word
t 9Zend_Captcha_ReCaptcha
s 1Zend_Captcha_Image
r 3Zend_Captcha_Figlet
q 9Zend_Captcha_Exception
p /Zend_Captcha_Dumb
o /Zend_Captcha_Base
n !Zend_Cache
m 1Zend_Cache_Manager
l =Zend_Cache_Frontend_Page
k AZend_Cache_Frontend_Output
!j EZend_Cache_Frontend_Function
i =Zend_Cache_Frontend_File
h ?Zend_Cache_Frontend_Class
 g CZend_Cache_Frontend_Capture
f 5Zend_Cache_Exception
e +Zend_Cache_Core
d 1Zend_Cache_Backend
"c GZend_Cache_Backend_ZendServer
(b SZend_Cache_Backend_ZendServer_ShMem
'a QZend_Cache_Backend_ZendServer_Disk
$` KZend_Cache_Backend_ZendPlatform
_ ?Zend_Cache_Backend_Xcache
 ^ CZend_Cache_Backend_WinCache
!] EZend_Cache_Backend_TwoLevels
\ ;Zend_Cache_Backend_Test
[ ?Zend_Cache_Backend_Static
Z ?Zend_Cache_Backend_Sqlite
!Y EZend_Cache_Backend_Memcached
$X KZend_Cache_Backend_Libmemcached
W ;Zend_Cache_Backend_File
!V EZend_Cache_Backend_BlackHole
U 9Zend_Cache_Backend_Apc
T %Zend_Barcode
S ?Zend_Barcode_Renderer_Svg
+R YZend_Barcode_Renderer_RendererAbstract
Q ?Zend_Barcode_Renderer_Pdf
 P CZend_Barcode_Renderer_Image
$O KZend_Barcode_Renderer_Exception
N =Zend_Barcode_Object_Upce
M =Zend_Barcode_Object_Upca
"L GZend_Barcode_Object_Royalmail
 K CZend_Barcode_Object_Postnet
J AZend_Barcode_Object_Planet
'I QZend_Barcode_Object_ObjectAbstract
!H EZend_Barcode_Object_Leitcode
G ?Zend_Barcode_Object_Itf14
"F GZend_Barcode_Object_Identcode
"E GZend_Barcode_Object_Exception
D ?Zend_Barcode_Object_Error
C =Zend_Barcode_Object_Ean8
B =Zend_Barcode_Object_Ean5
A =Zend_Barcode_Object_Ean2
@ ?Zend_Barcode_Object_Ean13
? AZend_Barcode_Object_Code39
*> WZend_Barcode_Object_Code25interleaved
= AZend_Barcode_Object_Code25
 < CZend_Barcode_Object_Code128
; 9Zend_Barcode_Exception
: Zend_Auth
9 ?Zend_Auth_Storage_Session
$8 KZend_Auth_Storage_NonPersistent
 7 CZend_Auth_Storage_Exception
6 -Zend_Auth_Result
5 3Zend_Auth_Exception
4 =Zend_Auth_Adapter_OpenId
   `  eAW/]'kR1	pX?+



_
-			z	N	_,{N" i=qD}O'~P$}\?dB*	                               x AZend_Crypt_Rsa_Key_Private
w =Zend_Crypt_Rsa_Exception
v +Zend_Crypt_Math
u ?Zend_Crypt_Math_Exception
t AZend_Crypt_Math_BigInteger
#s IZend_Crypt_Math_BigInteger_Gmp
)r UZend_Crypt_Math_BigInteger_Exception
&q OZend_Crypt_Math_BigInteger_Bcmath
p +Zend_Crypt_Hmac
o ?Zend_Crypt_Hmac_Exception
n 5Zend_Crypt_Exception
m =Zend_Crypt_DiffieHellman
'l QZend_Crypt_DiffieHellman_Exception
!k EZend_Controller_Router_Route
(j SZend_Controller_Router_Route_Static
'i QZend_Controller_Router_Route_Regex
(h SZend_Controller_Router_Route_Module
*g WZend_Controller_Router_Route_Hostname
'f QZend_Controller_Router_Route_Chain
*e WZend_Controller_Router_Route_Abstract
#d IZend_Controller_Router_Rewrite
%c MZend_Controller_Router_Exception
$b KZend_Controller_Router_Abstract
*a WZend_Controller_Response_HttpTestCase
"` GZend_Controller_Response_Http
'_ QZend_Controller_Response_Exception
!^ EZend_Controller_Response_Cli
&] OZend_Controller_Response_Abstract
#\ IZend_Controller_Request_Simple
)[ UZend_Controller_Request_HttpTestCase
!Z EZend_Controller_Request_Http
&Y OZend_Controller_Request_Exception
&X OZend_Controller_Request_Apache404
%W MZend_Controller_Request_Abstract
&V OZend_Controller_Plugin_PutHandler
(U SZend_Controller_Plugin_ErrorHandler
"T GZend_Controller_Plugin_Broker
'S QZend_Controller_Plugin_ActionStack
$R KZend_Controller_Plugin_Abstract
Q 7Zend_Controller_Front
P ?Zend_Controller_Exception
(O SZend_Controller_Dispatcher_Standard
)N UZend_Controller_Dispatcher_Exception
(M SZend_Controller_Dispatcher_Abstract
L 9Zend_Controller_Action
(K SZend_Controller_Action_HelperBroker
6J oZend_Controller_Action_HelperBroker_PriorityStack
/I aZend_Controller_Action_Helper_ViewRenderer
&H OZend_Controller_Action_Helper_Url
-G ]Zend_Controller_Action_Helper_Redirector
'F QZend_Controller_Action_Helper_Json
1E eZend_Controller_Action_Helper_FlashMessenger
0D cZend_Controller_Action_Helper_ContextSwitch
(C SZend_Controller_Action_Helper_Cache
<B {Zend_Controller_Action_Helper_AutoCompleteScriptaculous
3A iZend_Controller_Action_Helper_AutoCompleteDojo
8@ sZend_Controller_Action_Helper_AutoComplete_Abstract
.? _Zend_Controller_Action_Helper_AjaxContext
.> _Zend_Controller_Action_Helper_ActionStack
+= YZend_Controller_Action_Helper_Abstract
%< MZend_Controller_Action_Exception
; 3Zend_Console_Getopt
": GZend_Console_Getopt_Exception
9 #Zend_Config
8 -Zend_Config_Yaml
7 +Zend_Config_Xml
6 1Zend_Config_Writer
5 ;Zend_Config_Writer_Yaml
4 9Zend_Config_Writer_Xml
3 ;Zend_Config_Writer_Json
2 9Zend_Config_Writer_Ini
$1 KZend_Config_Writer_FileAbstract
0 =Zend_Config_Writer_Array
/ -Zend_Config_Json
. +Zend_Config_Ini
- 7Zend_Config_Exception
$, KZend_CodeGenerator_Php_Property
1+ eZend_CodeGenerator_Php_Property_DefaultValue
%* MZend_CodeGenerator_Php_Parameter
2) gZend_CodeGenerator_Php_Parameter_DefaultValue
"( GZend_CodeGenerator_Php_Method
,' [Zend_CodeGenerator_Php_Member_Container
+& YZend_CodeGenerator_Php_Member_Abstract
 % CZend_CodeGenerator_Php_File
%$ MZend_CodeGenerator_Php_Exception
$# KZend_CodeGenerator_Php_Docblock
(" SZend_CodeGenerator_Php_Docblock_Tag
/! aZend_CodeGenerator_Php_Docblock_Tag_Return
.  _Zend_CodeGenerator_Php_Docblock_Tag_Param
0 cZend_CodeGenerator_Php_Docblock_Tag_License
! EZend_CodeGenerator_Php_Class
  CZend_CodeGenerator_Php_Body
$ KZend_CodeGenerator_Php_Abstract
! EZend_CodeGenerator_Exception
  CZend_CodeGenerator_Abstract
& OZend_Cloud_StorageService_Factory
   l  ycJ-zQ2	}];lR=aC




e
C
%						_	<	mP:*d3}M}U&W'sEyHf8             #d IZend_Dojo_View_Helper_CheckBox
!c EZend_Dojo_View_Helper_Button
*b WZend_Dojo_View_Helper_BorderContainer
(a SZend_Dojo_View_Helper_AccordionPane
-` ]Zend_Dojo_View_Helper_AccordionContainer
_ =Zend_Dojo_View_Exception
^ )Zend_Dojo_Form
] 9Zend_Dojo_Form_SubForm
*\ WZend_Dojo_Form_Element_VerticalSlider
-[ ]Zend_Dojo_Form_Element_ValidationTextBox
'Z QZend_Dojo_Form_Element_TimeTextBox
#Y IZend_Dojo_Form_Element_TextBox
$X KZend_Dojo_Form_Element_Textarea
(W SZend_Dojo_Form_Element_SubmitButton
"V GZend_Dojo_Form_Element_Slider
*U WZend_Dojo_Form_Element_SimpleTextarea
'T QZend_Dojo_Form_Element_RadioButton
+S YZend_Dojo_Form_Element_PasswordTextBox
)R UZend_Dojo_Form_Element_NumberTextBox
)Q UZend_Dojo_Form_Element_NumberSpinner
,P [Zend_Dojo_Form_Element_HorizontalSlider
+O YZend_Dojo_Form_Element_FilteringSelect
"N GZend_Dojo_Form_Element_Editor
&M OZend_Dojo_Form_Element_DijitMulti
!L EZend_Dojo_Form_Element_Dijit
'K QZend_Dojo_Form_Element_DateTextBox
+J YZend_Dojo_Form_Element_CurrencyTextBox
$I KZend_Dojo_Form_Element_ComboBox
$H KZend_Dojo_Form_Element_CheckBox
"G GZend_Dojo_Form_Element_Button
 F CZend_Dojo_Form_DisplayGroup
*E WZend_Dojo_Form_Decorator_TabContainer
,D [Zend_Dojo_Form_Decorator_StackContainer
,C [Zend_Dojo_Form_Decorator_SplitContainer
'B QZend_Dojo_Form_Decorator_DijitForm
*A WZend_Dojo_Form_Decorator_DijitElement
,@ [Zend_Dojo_Form_Decorator_DijitContainer
)? UZend_Dojo_Form_Decorator_ContentPane
-> ]Zend_Dojo_Form_Decorator_BorderContainer
+= YZend_Dojo_Form_Decorator_AccordionPane
0< cZend_Dojo_Form_Decorator_AccordionContainer
; 3Zend_Dojo_Exception
: )Zend_Dojo_Data
9 5Zend_Dojo_BuildLayer
8 !Zend_Debug
7 Zend_Db
6 'Zend_Db_Table
5 5Zend_Db_Table_Select
#4 IZend_Db_Table_Select_Exception
3 5Zend_Db_Table_Rowset
#2 IZend_Db_Table_Rowset_Exception
"1 GZend_Db_Table_Rowset_Abstract
0 /Zend_Db_Table_Row
 / CZend_Db_Table_Row_Exception
. AZend_Db_Table_Row_Abstract
- ;Zend_Db_Table_Exception
, =Zend_Db_Table_Definition
+ 9Zend_Db_Table_Abstract
* /Zend_Db_Statement
) =Zend_Db_Statement_Sqlsrv
'( QZend_Db_Statement_Sqlsrv_Exception
' 7Zend_Db_Statement_Pdo
& ?Zend_Db_Statement_Pdo_Oci
% ?Zend_Db_Statement_Pdo_Ibm
$ =Zend_Db_Statement_Oracle
'# QZend_Db_Statement_Oracle_Exception
" =Zend_Db_Statement_Mysqli
'! QZend_Db_Statement_Mysqli_Exception
   CZend_Db_Statement_Exception
 7Zend_Db_Statement_Db2
$ KZend_Db_Statement_Db2_Exception
 )Zend_Db_Select
 =Zend_Db_Select_Exception
 -Zend_Db_Profiler
 9Zend_Db_Profiler_Query
 =Zend_Db_Profiler_Firebug
 AZend_Db_Profiler_Exception
 %Zend_Db_Expr
 /Zend_Db_Exception
 9Zend_Db_Adapter_Sqlsrv
% MZend_Db_Adapter_Sqlsrv_Exception
 AZend_Db_Adapter_Pdo_Sqlite
 ?Zend_Db_Adapter_Pdo_Pgsql
 ;Zend_Db_Adapter_Pdo_Oci
 ?Zend_Db_Adapter_Pdo_Mysql
 ?Zend_Db_Adapter_Pdo_Mssql
 ;Zend_Db_Adapter_Pdo_Ibm
  CZend_Db_Adapter_Pdo_Ibm_Ids
  CZend_Db_Adapter_Pdo_Ibm_Db2
! EZend_Db_Adapter_Pdo_Abstract

 9Zend_Db_Adapter_Oracle
%	 MZend_Db_Adapter_Oracle_Exception
 9Zend_Db_Adapter_Mysqli
% MZend_Db_Adapter_Mysqli_Exception
 ?Zend_Db_Adapter_Exception
 3Zend_Db_Adapter_Db2
" GZend_Db_Adapter_Db2_Exception
 =Zend_Db_Adapter_Abstract
 Zend_Date
 3Zend_Date_Exception
  5Zend_Date_DateObject
 -Zend_Date_Cities
~ 'Zend_Currency
} ;Zend_Currency_Exception
| !Zend_Crypt
{ )Zend_Crypt_Rsa
z 1Zend_Crypt_Rsa_Key
y ?Zend_Crypt_Rsa_Key_Public
   `  W-	g9a7
`5aO4




Z
*
				l	?	(	iO5f:yO0}Y6JzJViP:                                                   D 9Zend_Feed_Writer_Entry
C =Zend_Feed_Writer_Deleted
B 'Zend_Feed_Rss
A -Zend_Feed_Reader
@ =Zend_Feed_Reader_FeedSet
"? GZend_Feed_Reader_FeedAbstract
> ?Zend_Feed_Reader_Feed_Rss
= AZend_Feed_Reader_Feed_Atom
&< OZend_Feed_Reader_Feed_Atom_Source
3; iZend_Feed_Reader_Extension_WellFormedWeb_Entry
,: [Zend_Feed_Reader_Extension_Thread_Entry
09 cZend_Feed_Reader_Extension_Syndication_Feed
+8 YZend_Feed_Reader_Extension_Slash_Entry
,7 [Zend_Feed_Reader_Extension_Podcast_Feed
-6 ]Zend_Feed_Reader_Extension_Podcast_Entry
,5 [Zend_Feed_Reader_Extension_FeedAbstract
-4 ]Zend_Feed_Reader_Extension_EntryAbstract
/3 aZend_Feed_Reader_Extension_DublinCore_Feed
02 cZend_Feed_Reader_Extension_DublinCore_Entry
41 kZend_Feed_Reader_Extension_CreativeCommons_Feed
50 mZend_Feed_Reader_Extension_CreativeCommons_Entry
-/ ]Zend_Feed_Reader_Extension_Content_Entry
). UZend_Feed_Reader_Extension_Atom_Feed
*- WZend_Feed_Reader_Extension_Atom_Entry
#, IZend_Feed_Reader_EntryAbstract
+ AZend_Feed_Reader_Entry_Rss
 * CZend_Feed_Reader_Entry_Atom
 ) CZend_Feed_Reader_Collection
3( iZend_Feed_Reader_Collection_CollectionAbstract
)' UZend_Feed_Reader_Collection_Category
'& QZend_Feed_Reader_Collection_Author
% 9Zend_Feed_Pubsubhubbub
&$ OZend_Feed_Pubsubhubbub_Subscriber
/# aZend_Feed_Pubsubhubbub_Subscriber_Callback
%" MZend_Feed_Pubsubhubbub_Publisher
.! _Zend_Feed_Pubsubhubbub_Model_Subscription
/  aZend_Feed_Pubsubhubbub_Model_ModelAbstract
( SZend_Feed_Pubsubhubbub_HttpResponse
% MZend_Feed_Pubsubhubbub_Exception
, [Zend_Feed_Pubsubhubbub_CallbackAbstract
 3Zend_Feed_Exception
 3Zend_Feed_Entry_Rss
 5Zend_Feed_Entry_Atom
 =Zend_Feed_Entry_Abstract
 /Zend_Feed_Element
 /Zend_Feed_Builder
 =Zend_Feed_Builder_Header
$ KZend_Feed_Builder_Header_Itunes
  CZend_Feed_Builder_Exception
 ;Zend_Feed_Builder_Entry
 )Zend_Feed_Atom
 1Zend_Feed_Abstract
 )Zend_Exception
) UZend_EventManager_StaticEventManager
) UZend_EventManager_SharedEventManager
) UZend_EventManager_ResponseCollection
 SplStack
) UZend_EventManager_GlobalEventManager
"
 GZend_EventManager_FilterChain
,	 [Zend_EventManager_Filter_FilterIterator
9 uZend_EventManager_Exception_InvalidArgumentException
# IZend_EventManager_EventManager
 ;Zend_EventManager_Event
 )Zend_Dom_Query
 7Zend_Dom_Query_Result
 =Zend_Dom_Query_Css2Xpath
 1Zend_Dom_Exception
 Zend_Dojo
)  UZend_Dojo_View_Helper_VerticalSlider
, [Zend_Dojo_View_Helper_ValidationTextBox
&~ OZend_Dojo_View_Helper_TimeTextBox
"} GZend_Dojo_View_Helper_TextBox
#| IZend_Dojo_View_Helper_Textarea
'{ QZend_Dojo_View_Helper_TabContainer
'z QZend_Dojo_View_Helper_SubmitButton
)y UZend_Dojo_View_Helper_StackContainer
)x UZend_Dojo_View_Helper_SplitContainer
!w EZend_Dojo_View_Helper_Slider
)v UZend_Dojo_View_Helper_SimpleTextarea
&u OZend_Dojo_View_Helper_RadioButton
*t WZend_Dojo_View_Helper_PasswordTextBox
(s SZend_Dojo_View_Helper_NumberTextBox
(r SZend_Dojo_View_Helper_NumberSpinner
+q YZend_Dojo_View_Helper_HorizontalSlider
p AZend_Dojo_View_Helper_Form
*o WZend_Dojo_View_Helper_FilteringSelect
!n EZend_Dojo_View_Helper_Editor
m AZend_Dojo_View_Helper_Dojo
)l UZend_Dojo_View_Helper_Dojo_Container
)k UZend_Dojo_View_Helper_DijitContainer
 j CZend_Dojo_View_Helper_Dijit
&i OZend_Dojo_View_Helper_DateTextBox
&h OZend_Dojo_View_Helper_CustomDijit
*g WZend_Dojo_View_Helper_CurrencyTextBox
&f OZend_Dojo_View_Helper_ContentPane
#e IZend_Dojo_View_Helper_ComboBox
   d  V~Ee%zNX8



w
R
7

					^	>	~bG/lI)kA(fHpFf<X4vU4                     #( IZend_Form_Decorator_FormErrors
%' MZend_Form_Decorator_FormElements
& =Zend_Form_Decorator_Form
% =Zend_Form_Decorator_File
!$ EZend_Form_Decorator_Fieldset
"# GZend_Form_Decorator_Exception
" AZend_Form_Decorator_Errors
$! KZend_Form_Decorator_DtDdWrapper
$  KZend_Form_Decorator_Description
  CZend_Form_Decorator_Captcha
% MZend_Form_Decorator_Captcha_Word
* WZend_Form_Decorator_Captcha_ReCaptcha
! EZend_Form_Decorator_Callback
! EZend_Form_Decorator_Abstract
 #Zend_Filter
+ YZend_Filter_Word_UnderscoreToSeparator
& OZend_Filter_Word_UnderscoreToDash
+ YZend_Filter_Word_UnderscoreToCamelCase
* WZend_Filter_Word_SeparatorToSeparator
% MZend_Filter_Word_SeparatorToDash
* WZend_Filter_Word_SeparatorToCamelCase
( SZend_Filter_Word_Separator_Abstract
& OZend_Filter_Word_DashToUnderscore
% MZend_Filter_Word_DashToSeparator
% MZend_Filter_Word_DashToCamelCase
+ YZend_Filter_Word_CamelCaseToUnderscore
* WZend_Filter_Word_CamelCaseToSeparator
% MZend_Filter_Word_CamelCaseToDash
 7Zend_Filter_StripTags
 ?Zend_Filter_StripNewlines

 9Zend_Filter_StringTrim
	 ?Zend_Filter_StringToUpper
 ?Zend_Filter_StringToLower
 5Zend_Filter_RealPath
 ;Zend_Filter_PregReplace
 -Zend_Filter_Null
& OZend_Filter_NormalizedToLocalized
& OZend_Filter_LocalizedToNormalized
 +Zend_Filter_Int
 /Zend_Filter_Input
  7Zend_Filter_Inflector
 =Zend_Filter_HtmlEntities
~ AZend_Filter_File_UpperCase
} ;Zend_Filter_File_Rename
| AZend_Filter_File_LowerCase
{ =Zend_Filter_File_Encrypt
z =Zend_Filter_File_Decrypt
y 7Zend_Filter_Exception
x 3Zend_Filter_Encrypt
 w CZend_Filter_Encrypt_Openssl
v AZend_Filter_Encrypt_Mcrypt
u +Zend_Filter_Dir
t 1Zend_Filter_Digits
s 3Zend_Filter_Decrypt
r 9Zend_Filter_Decompress
q 5Zend_Filter_Compress
p =Zend_Filter_Compress_Zip
o =Zend_Filter_Compress_Tar
n =Zend_Filter_Compress_Rar
m =Zend_Filter_Compress_Lzf
l ;Zend_Filter_Compress_Gz
*k WZend_Filter_Compress_CompressAbstract
j =Zend_Filter_Compress_Bz2
i 5Zend_Filter_Callback
h 3Zend_Filter_Boolean
g 5Zend_Filter_BaseName
f /Zend_Filter_Alpha
e /Zend_Filter_Alnum
d 1Zend_File_Transfer
!c EZend_File_Transfer_Exception
$b KZend_File_Transfer_Adapter_Http
(a SZend_File_Transfer_Adapter_Abstract
` 9Zend_File_PhpClassFile
_ AZend_File_ClassFileLocator
^ Zend_Feed
] -Zend_Feed_Writer
\ ;Zend_Feed_Writer_Source
/[ aZend_Feed_Writer_Renderer_RendererAbstract
'Z QZend_Feed_Writer_Renderer_Feed_Rss
(Y SZend_Feed_Writer_Renderer_Feed_Atom
/X aZend_Feed_Writer_Renderer_Feed_Atom_Source
5W mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract
(V SZend_Feed_Writer_Renderer_Entry_Rss
)U UZend_Feed_Writer_Renderer_Entry_Atom
1T eZend_Feed_Writer_Renderer_Entry_Atom_Deleted
S 7Zend_Feed_Writer_Feed
'R QZend_Feed_Writer_Feed_FeedAbstract
<Q {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry
8P sZend_Feed_Writer_Extension_Threading_Renderer_Entry
4O kZend_Feed_Writer_Extension_Slash_Renderer_Entry
0N cZend_Feed_Writer_Extension_RendererAbstract
4M kZend_Feed_Writer_Extension_ITunes_Renderer_Feed
5L mZend_Feed_Writer_Extension_ITunes_Renderer_Entry
+K YZend_Feed_Writer_Extension_ITunes_Feed
,J [Zend_Feed_Writer_Extension_ITunes_Entry
8I sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed
9H uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry
6G oZend_Feed_Writer_Extension_Content_Renderer_Entry
2F gZend_Feed_Writer_Extension_Atom_Renderer_Feed
6E oZend_Feed_Writer_Exception_InvalidMethodException
   f  lH!uQ2dE"^>$_8



j
:
					X	(	oBzO)k@wP'vQ!c;$	U(rA                          ! EZend_Gdata_Books_VolumeEntry
+ YZend_Gdata_Books_Extension_Viewability
- ]Zend_Gdata_Books_Extension_ThumbnailLink
& OZend_Gdata_Books_Extension_Review
+
 YZend_Gdata_Books_Extension_PreviewLink
(	 SZend_Gdata_Books_Extension_InfoLink
- ]Zend_Gdata_Books_Extension_Embeddability
) UZend_Gdata_Books_Extension_BooksLink
- ]Zend_Gdata_Books_Extension_BooksCategory
. _Zend_Gdata_Books_Extension_AnnotationLink
$ KZend_Gdata_Books_CollectionFeed
% MZend_Gdata_Books_CollectionEntry
 1Zend_Gdata_AuthSub
 )Zend_Gdata_App
$  KZend_Gdata_App_VersionException
 3Zend_Gdata_App_Util
#~ IZend_Gdata_App_MediaFileSource
} ?Zend_Gdata_App_MediaEntry
2| gZend_Gdata_App_LoggingHttpClientAdapterSocket
{ AZend_Gdata_App_IOException
,z [Zend_Gdata_App_InvalidArgumentException
!y EZend_Gdata_App_HttpException
$x KZend_Gdata_App_FeedSourceParent
#w IZend_Gdata_App_FeedEntryParent
v 3Zend_Gdata_App_Feed
u =Zend_Gdata_App_Extension
!t EZend_Gdata_App_Extension_Uri
%s MZend_Gdata_App_Extension_Updated
#r IZend_Gdata_App_Extension_Title
"q GZend_Gdata_App_Extension_Text
%p MZend_Gdata_App_Extension_Summary
&o OZend_Gdata_App_Extension_Subtitle
$n KZend_Gdata_App_Extension_Source
$m KZend_Gdata_App_Extension_Rights
'l QZend_Gdata_App_Extension_Published
$k KZend_Gdata_App_Extension_Person
"j GZend_Gdata_App_Extension_Name
"i GZend_Gdata_App_Extension_Logo
"h GZend_Gdata_App_Extension_Link
 g CZend_Gdata_App_Extension_Id
"f GZend_Gdata_App_Extension_Icon
'e QZend_Gdata_App_Extension_Generator
#d IZend_Gdata_App_Extension_Email
%c MZend_Gdata_App_Extension_Element
$b KZend_Gdata_App_Extension_Edited
#a IZend_Gdata_App_Extension_Draft
%` MZend_Gdata_App_Extension_Control
)_ UZend_Gdata_App_Extension_Contributor
%^ MZend_Gdata_App_Extension_Content
&] OZend_Gdata_App_Extension_Category
$\ KZend_Gdata_App_Extension_Author
[ =Zend_Gdata_App_Exception
Z 5Zend_Gdata_App_Entry
,Y [Zend_Gdata_App_CaptchaRequiredException
#X IZend_Gdata_App_BaseMediaSource
W 3Zend_Gdata_App_Base
*V WZend_Gdata_App_BadMethodCallException
!U EZend_Gdata_App_AuthException
T 5Zend_Gdata_Analytics
+S YZend_Gdata_Analytics_Extension_TableId
,R [Zend_Gdata_Analytics_Extension_Property
*Q WZend_Gdata_Analytics_Extension_Metric
P ?Zend_Gdata_Analytics_Goal
-O ]Zend_Gdata_Analytics_Extension_Dimension
#N IZend_Gdata_Analytics_DataQuery
"M GZend_Gdata_Analytics_DataFeed
#L IZend_Gdata_Analytics_DataEntry
&K OZend_Gdata_Analytics_AccountQuery
%J MZend_Gdata_Analytics_AccountFeed
&I OZend_Gdata_Analytics_AccountEntry
H Zend_Form
G /Zend_Form_SubForm
F 3Zend_Form_Exception
E /Zend_Form_Element
D ;Zend_Form_Element_Xhtml
C AZend_Form_Element_Textarea
B 9Zend_Form_Element_Text
A =Zend_Form_Element_Submit
@ =Zend_Form_Element_Select
? ;Zend_Form_Element_Reset
> ;Zend_Form_Element_Radio
= AZend_Form_Element_Password
< 9Zend_Form_Element_Note
"; GZend_Form_Element_Multiselect
$: KZend_Form_Element_MultiCheckbox
9 ;Zend_Form_Element_Multi
8 ;Zend_Form_Element_Image
7 =Zend_Form_Element_Hidden
6 9Zend_Form_Element_Hash
5 9Zend_Form_Element_File
 4 CZend_Form_Element_Exception
3 AZend_Form_Element_Checkbox
2 ?Zend_Form_Element_Captcha
1 =Zend_Form_Element_Button
0 9Zend_Form_DisplayGroup
#/ IZend_Form_Decorator_ViewScript
#. IZend_Form_Decorator_ViewHelper
 - CZend_Form_Decorator_Tooltip
(, SZend_Form_Decorator_PrepareElements
+ ?Zend_Form_Decorator_Label
* ?Zend_Form_Decorator_Image
 ) CZend_Form_Decorator_HtmlTag
   `  wQ*tEyS.j:wF



i
P
2
				^	.	kN6
j<|Q-\:rJlCvS/
tM)                            n CZend_Gdata_Gapps_OwnerQuery
m AZend_Gdata_Gapps_OwnerFeed
 l CZend_Gdata_Gapps_OwnerEntry
#k IZend_Gdata_Gapps_NicknameQuery
"j GZend_Gdata_Gapps_NicknameFeed
#i IZend_Gdata_Gapps_NicknameEntry
!h EZend_Gdata_Gapps_MemberQuery
 g CZend_Gdata_Gapps_MemberFeed
!f EZend_Gdata_Gapps_MemberEntry
 e CZend_Gdata_Gapps_GroupQuery
d AZend_Gdata_Gapps_GroupFeed
 c CZend_Gdata_Gapps_GroupEntry
%b MZend_Gdata_Gapps_Extension_Quota
(a SZend_Gdata_Gapps_Extension_Property
(` SZend_Gdata_Gapps_Extension_Nickname
$_ KZend_Gdata_Gapps_Extension_Name
%^ MZend_Gdata_Gapps_Extension_Login
)] UZend_Gdata_Gapps_Extension_EmailList
\ 9Zend_Gdata_Gapps_Error
-[ ]Zend_Gdata_Gapps_EmailListRecipientQuery
,Z [Zend_Gdata_Gapps_EmailListRecipientFeed
-Y ]Zend_Gdata_Gapps_EmailListRecipientEntry
$X KZend_Gdata_Gapps_EmailListQuery
#W IZend_Gdata_Gapps_EmailListFeed
$V KZend_Gdata_Gapps_EmailListEntry
U +Zend_Gdata_Feed
T 5Zend_Gdata_Extension
S =Zend_Gdata_Extension_Who
R AZend_Gdata_Extension_Where
Q ?Zend_Gdata_Extension_When
$P KZend_Gdata_Extension_Visibility
&O OZend_Gdata_Extension_Transparency
"N GZend_Gdata_Extension_Reminder
-M ]Zend_Gdata_Extension_RecurrenceException
$L KZend_Gdata_Extension_Recurrence
 K CZend_Gdata_Extension_Rating
'J QZend_Gdata_Extension_OriginalEvent
0I cZend_Gdata_Extension_OpenSearchTotalResults
.H _Zend_Gdata_Extension_OpenSearchStartIndex
0G cZend_Gdata_Extension_OpenSearchItemsPerPage
"F GZend_Gdata_Extension_FeedLink
*E WZend_Gdata_Extension_ExtendedProperty
%D MZend_Gdata_Extension_EventStatus
#C IZend_Gdata_Extension_EntryLink
"B GZend_Gdata_Extension_Comments
&A OZend_Gdata_Extension_AttendeeType
(@ SZend_Gdata_Extension_AttendeeStatus
? +Zend_Gdata_Exif
> 5Zend_Gdata_Exif_Feed
#= IZend_Gdata_Exif_Extension_Time
#< IZend_Gdata_Exif_Extension_Tags
$; KZend_Gdata_Exif_Extension_Model
#: IZend_Gdata_Exif_Extension_Make
"9 GZend_Gdata_Exif_Extension_Iso
,8 [Zend_Gdata_Exif_Extension_ImageUniqueId
$7 KZend_Gdata_Exif_Extension_FStop
*6 WZend_Gdata_Exif_Extension_FocalLength
$5 KZend_Gdata_Exif_Extension_Flash
'4 QZend_Gdata_Exif_Extension_Exposure
'3 QZend_Gdata_Exif_Extension_Distance
2 7Zend_Gdata_Exif_Entry
1 -Zend_Gdata_Entry
0 7Zend_Gdata_DublinCore
*/ WZend_Gdata_DublinCore_Extension_Title
,. [Zend_Gdata_DublinCore_Extension_Subject
+- YZend_Gdata_DublinCore_Extension_Rights
., _Zend_Gdata_DublinCore_Extension_Publisher
-+ ]Zend_Gdata_DublinCore_Extension_Language
/* aZend_Gdata_DublinCore_Extension_Identifier
+) YZend_Gdata_DublinCore_Extension_Format
0( cZend_Gdata_DublinCore_Extension_Description
)' UZend_Gdata_DublinCore_Extension_Date
,& [Zend_Gdata_DublinCore_Extension_Creator
% +Zend_Gdata_Docs
$ 7Zend_Gdata_Docs_Query
%# MZend_Gdata_Docs_DocumentListFeed
&" OZend_Gdata_Docs_DocumentListEntry
! 9Zend_Gdata_ClientLogin
  3Zend_Gdata_Calendar
! EZend_Gdata_Calendar_ListFeed
" GZend_Gdata_Calendar_ListEntry
- ]Zend_Gdata_Calendar_Extension_WebContent
+ YZend_Gdata_Calendar_Extension_Timezone
9 uZend_Gdata_Calendar_Extension_SendEventNotifications
+ YZend_Gdata_Calendar_Extension_Selected
+ YZend_Gdata_Calendar_Extension_QuickAdd
' QZend_Gdata_Calendar_Extension_Link
) UZend_Gdata_Calendar_Extension_Hidden
( SZend_Gdata_Calendar_Extension_Color
. _Zend_Gdata_Calendar_Extension_AccessLevel
# IZend_Gdata_Calendar_EventQuery
" GZend_Gdata_Calendar_EventFeed
# IZend_Gdata_Calendar_EventEntry
 -Zend_Gdata_Books
! EZend_Gdata_Books_VolumeQuery
  CZend_Gdata_Books_VolumeFeed
   a  rO6`AmCsHkH)



g
3
			x	I	jQ.[0~Mb9{Nj<mI$|c9                             &O OZend_Gdata_Spreadsheets_CellQuery
%N MZend_Gdata_Spreadsheets_CellFeed
&M OZend_Gdata_Spreadsheets_CellEntry
L -Zend_Gdata_Query
K /Zend_Gdata_Photos
 J CZend_Gdata_Photos_UserQuery
I AZend_Gdata_Photos_UserFeed
 H CZend_Gdata_Photos_UserEntry
G AZend_Gdata_Photos_TagEntry
!F EZend_Gdata_Photos_PhotoQuery
 E CZend_Gdata_Photos_PhotoFeed
!D EZend_Gdata_Photos_PhotoEntry
&C OZend_Gdata_Photos_Extension_Width
'B QZend_Gdata_Photos_Extension_Weight
(A SZend_Gdata_Photos_Extension_Version
%@ MZend_Gdata_Photos_Extension_User
*? WZend_Gdata_Photos_Extension_Timestamp
*> WZend_Gdata_Photos_Extension_Thumbnail
%= MZend_Gdata_Photos_Extension_Size
)< UZend_Gdata_Photos_Extension_Rotation
+; YZend_Gdata_Photos_Extension_QuotaLimit
-: ]Zend_Gdata_Photos_Extension_QuotaCurrent
)9 UZend_Gdata_Photos_Extension_Position
(8 SZend_Gdata_Photos_Extension_PhotoId
37 iZend_Gdata_Photos_Extension_NumPhotosRemaining
*6 WZend_Gdata_Photos_Extension_NumPhotos
)5 UZend_Gdata_Photos_Extension_Nickname
%4 MZend_Gdata_Photos_Extension_Name
23 gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum
)2 UZend_Gdata_Photos_Extension_Location
#1 IZend_Gdata_Photos_Extension_Id
'0 QZend_Gdata_Photos_Extension_Height
2/ gZend_Gdata_Photos_Extension_CommentingEnabled
-. ]Zend_Gdata_Photos_Extension_CommentCount
'- QZend_Gdata_Photos_Extension_Client
), UZend_Gdata_Photos_Extension_Checksum
*+ WZend_Gdata_Photos_Extension_BytesUsed
(* SZend_Gdata_Photos_Extension_AlbumId
') QZend_Gdata_Photos_Extension_Access
#( IZend_Gdata_Photos_CommentEntry
!' EZend_Gdata_Photos_AlbumQuery
 & CZend_Gdata_Photos_AlbumFeed
!% EZend_Gdata_Photos_AlbumEntry
$ 3Zend_Gdata_MimeFile
# ?Zend_Gdata_MimeBodyString
" AZend_Gdata_MediaMimeStream
! -Zend_Gdata_Media
  7Zend_Gdata_Media_Feed
* WZend_Gdata_Media_Extension_MediaTitle
. _Zend_Gdata_Media_Extension_MediaThumbnail
) UZend_Gdata_Media_Extension_MediaText
0 cZend_Gdata_Media_Extension_MediaRestriction
+ YZend_Gdata_Media_Extension_MediaRating
+ YZend_Gdata_Media_Extension_MediaPlayer
- ]Zend_Gdata_Media_Extension_MediaKeywords
) UZend_Gdata_Media_Extension_MediaHash
* WZend_Gdata_Media_Extension_MediaGroup
0 cZend_Gdata_Media_Extension_MediaDescription
+ YZend_Gdata_Media_Extension_MediaCredit
. _Zend_Gdata_Media_Extension_MediaCopyright
, [Zend_Gdata_Media_Extension_MediaContent
- ]Zend_Gdata_Media_Extension_MediaCategory
 9Zend_Gdata_Media_Entry
 AZend_Gdata_Kind_EventEntry
 7Zend_Gdata_HttpClient
* WZend_Gdata_HttpAdapterStreamingSocket
) UZend_Gdata_HttpAdapterStreamingProxy
 /Zend_Gdata_Health
 ;Zend_Gdata_Health_Query
&
 OZend_Gdata_Health_ProfileListFeed
'	 QZend_Gdata_Health_ProfileListEntry
" GZend_Gdata_Health_ProfileFeed
# IZend_Gdata_Health_ProfileEntry
$ KZend_Gdata_Health_Extension_Ccr
 )Zend_Gdata_Geo
 3Zend_Gdata_Geo_Feed
$ KZend_Gdata_Geo_Extension_GmlPos
& OZend_Gdata_Geo_Extension_GmlPoint
) UZend_Gdata_Geo_Extension_GeoRssWhere
  5Zend_Gdata_Geo_Entry
 -Zend_Gdata_Gbase
"~ GZend_Gdata_Gbase_SnippetQuery
!} EZend_Gdata_Gbase_SnippetFeed
"| GZend_Gdata_Gbase_SnippetEntry
{ 9Zend_Gdata_Gbase_Query
z AZend_Gdata_Gbase_ItemQuery
y ?Zend_Gdata_Gbase_ItemFeed
x AZend_Gdata_Gbase_ItemEntry
w 7Zend_Gdata_Gbase_Feed
-v ]Zend_Gdata_Gbase_Extension_BaseAttribute
u 9Zend_Gdata_Gbase_Entry
t -Zend_Gdata_Gapps
s AZend_Gdata_Gapps_UserQuery
r ?Zend_Gdata_Gapps_UserFeed
q AZend_Gdata_Gapps_UserEntry
&p OZend_Gdata_Gapps_ServiceException
o 9Zend_Gdata_Gapps_Query
   [  p?^.`8lAY*



u
K
				Y	-	uB^,tHnI#oBy^K%bI0c@                           '* QZend_Http_UserAgent_AbstractDevice
) 1Zend_Http_Response
( ?Zend_Http_Response_Stream
' AZend_Http_Header_SetCookie
!& EZend_Http_Header_HeaderValue
0% cZend_Http_Header_Exception_RuntimeException
8$ sZend_Http_Header_Exception_InvalidArgumentException
# 3Zend_Http_Exception
" 3Zend_Http_CookieJar
! -Zend_Http_Cookie
  -Zend_Http_Client
 AZend_Http_Client_Exception
" GZend_Http_Client_Adapter_Test
$ KZend_Http_Client_Adapter_Socket
# IZend_Http_Client_Adapter_Proxy
' QZend_Http_Client_Adapter_Exception
" GZend_Http_Client_Adapter_Curl
 !Zend_Gdata
 1Zend_Gdata_YouTube
" GZend_Gdata_YouTube_VideoQuery
! EZend_Gdata_YouTube_VideoFeed
" GZend_Gdata_YouTube_VideoEntry
( SZend_Gdata_YouTube_UserProfileEntry
( SZend_Gdata_YouTube_SubscriptionFeed
) UZend_Gdata_YouTube_SubscriptionEntry
) UZend_Gdata_YouTube_PlaylistVideoFeed
* WZend_Gdata_YouTube_PlaylistVideoEntry
( SZend_Gdata_YouTube_PlaylistListFeed
) UZend_Gdata_YouTube_PlaylistListEntry
" GZend_Gdata_YouTube_MediaEntry
! EZend_Gdata_YouTube_InboxFeed
" GZend_Gdata_YouTube_InboxEntry
)
 UZend_Gdata_YouTube_Extension_VideoId
*	 WZend_Gdata_YouTube_Extension_Username
* WZend_Gdata_YouTube_Extension_Uploaded
' QZend_Gdata_YouTube_Extension_Token
( SZend_Gdata_YouTube_Extension_Status
, [Zend_Gdata_YouTube_Extension_Statistics
' QZend_Gdata_YouTube_Extension_State
( SZend_Gdata_YouTube_Extension_School
- ]Zend_Gdata_YouTube_Extension_ReleaseDate
. _Zend_Gdata_YouTube_Extension_Relationship
*  WZend_Gdata_YouTube_Extension_Recorded
& OZend_Gdata_YouTube_Extension_Racy
-~ ]Zend_Gdata_YouTube_Extension_QueryString
)} UZend_Gdata_YouTube_Extension_Private
*| WZend_Gdata_YouTube_Extension_Position
/{ aZend_Gdata_YouTube_Extension_PlaylistTitle
,z [Zend_Gdata_YouTube_Extension_PlaylistId
,y [Zend_Gdata_YouTube_Extension_Occupation
)x UZend_Gdata_YouTube_Extension_NoEmbed
'w QZend_Gdata_YouTube_Extension_Music
(v SZend_Gdata_YouTube_Extension_Movies
-u ]Zend_Gdata_YouTube_Extension_MediaRating
,t [Zend_Gdata_YouTube_Extension_MediaGroup
-s ]Zend_Gdata_YouTube_Extension_MediaCredit
.r _Zend_Gdata_YouTube_Extension_MediaContent
*q WZend_Gdata_YouTube_Extension_Location
&p OZend_Gdata_YouTube_Extension_Link
*o WZend_Gdata_YouTube_Extension_LastName
*n WZend_Gdata_YouTube_Extension_Hometown
)m UZend_Gdata_YouTube_Extension_Hobbies
(l SZend_Gdata_YouTube_Extension_Gender
+k YZend_Gdata_YouTube_Extension_FirstName
*j WZend_Gdata_YouTube_Extension_Duration
-i ]Zend_Gdata_YouTube_Extension_Description
+h YZend_Gdata_YouTube_Extension_CountHint
)g UZend_Gdata_YouTube_Extension_Control
)f UZend_Gdata_YouTube_Extension_Company
'e QZend_Gdata_YouTube_Extension_Books
%d MZend_Gdata_YouTube_Extension_Age
)c UZend_Gdata_YouTube_Extension_AboutMe
#b IZend_Gdata_YouTube_ContactFeed
$a KZend_Gdata_YouTube_ContactEntry
#` IZend_Gdata_YouTube_CommentFeed
$_ KZend_Gdata_YouTube_CommentEntry
$^ KZend_Gdata_YouTube_ActivityFeed
%] MZend_Gdata_YouTube_ActivityEntry
\ ;Zend_Gdata_Spreadsheets
*[ WZend_Gdata_Spreadsheets_WorksheetFeed
+Z YZend_Gdata_Spreadsheets_WorksheetEntry
,Y [Zend_Gdata_Spreadsheets_SpreadsheetFeed
-X ]Zend_Gdata_Spreadsheets_SpreadsheetEntry
&W OZend_Gdata_Spreadsheets_ListQuery
%V MZend_Gdata_Spreadsheets_ListFeed
&U OZend_Gdata_Spreadsheets_ListEntry
/T aZend_Gdata_Spreadsheets_Extension_RowCount
-S ]Zend_Gdata_Spreadsheets_Extension_Custom
/R aZend_Gdata_Spreadsheets_Extension_ColCount
+Q YZend_Gdata_Spreadsheets_Extension_Cell
*P WZend_Gdata_Spreadsheets_DocumentQuery
   p  tR,W6~L mV7e@#




y
e
I
						i	L	)	xY9nO!S kE}VBnZ?uS4bC            3Zend_Mail_Exception
 Zend_Log
  CZend_Log_Writer_ZendMonitor
 9Zend_Log_Writer_Syslog
 9Zend_Log_Writer_Stream
 5Zend_Log_Writer_Null
 5Zend_Log_Writer_Mock
 5Zend_Log_Writer_Mail
 ;Zend_Log_Writer_Firebug
 1Zend_Log_Writer_Db
 =Zend_Log_Writer_Abstract
 9Zend_Log_Formatter_Xml
 ?Zend_Log_Formatter_Simple
 AZend_Log_Formatter_Firebug
  CZend_Log_Formatter_Abstract
 =Zend_Log_Filter_Suppress

 =Zend_Log_Filter_Priority
	 ;Zend_Log_Filter_Message
 =Zend_Log_Filter_Abstract
 1Zend_Log_Exception
 #Zend_Locale
 -Zend_Locale_Math
 =Zend_Locale_Math_PhpMath
 AZend_Locale_Math_Exception
 1Zend_Locale_Format
 7Zend_Locale_Exception
  -Zend_Locale_Data
! EZend_Locale_Data_Translation
~ #Zend_Loader
#} IZend_Loader_StandardAutoloader
| =Zend_Loader_PluginLoader
'{ QZend_Loader_PluginLoader_Exception
z 7Zend_Loader_Exception
3y iZend_Loader_Exception_InvalidArgumentException
#x IZend_Loader_ClassMapAutoloader
"w GZend_Loader_AutoloaderFactory
v 9Zend_Loader_Autoloader
$u KZend_Loader_Autoloader_Resource
t Zend_Ldap
s )Zend_Ldap_Node
r 7Zend_Ldap_Node_Schema
#q IZend_Ldap_Node_Schema_OpenLdap
/p aZend_Ldap_Node_Schema_ObjectClass_OpenLdap
6o oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectory
n AZend_Ldap_Node_Schema_Item
1m eZend_Ldap_Node_Schema_AttributeType_OpenLdap
8l sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory
*k WZend_Ldap_Node_Schema_ActiveDirectory
j 9Zend_Ldap_Node_RootDse
$i KZend_Ldap_Node_RootDse_OpenLdap
&h OZend_Ldap_Node_RootDse_eDirectory
+g YZend_Ldap_Node_RootDse_ActiveDirectory
f ?Zend_Ldap_Node_Collection
$e KZend_Ldap_Node_ChildrenIterator
d ;Zend_Ldap_Node_Abstract
c 9Zend_Ldap_Ldif_Encoder
b -Zend_Ldap_Filter
a ;Zend_Ldap_Filter_String
` 3Zend_Ldap_Filter_Or
_ 5Zend_Ldap_Filter_Not
^ 7Zend_Ldap_Filter_Mask
] =Zend_Ldap_Filter_Logical
\ AZend_Ldap_Filter_Exception
[ 5Zend_Ldap_Filter_And
Z ?Zend_Ldap_Filter_Abstract
Y 3Zend_Ldap_Exception
X %Zend_Ldap_Dn
W 3Zend_Ldap_Converter
"V GZend_Ldap_Converter_Exception
U 5Zend_Ldap_Collection
*T WZend_Ldap_Collection_Iterator_Default
S 3Zend_Ldap_Attribute
R #Zend_Layout
Q 7Zend_Layout_Exception
)P UZend_Layout_Controller_Plugin_Layout
0O cZend_Layout_Controller_Action_Helper_Layout
N Zend_Json
M -Zend_Json_Server
L 5Zend_Json_Server_Smd
!K EZend_Json_Server_Smd_Service
J ?Zend_Json_Server_Response
#I IZend_Json_Server_Response_Http
H =Zend_Json_Server_Request
"G GZend_Json_Server_Request_Http
F AZend_Json_Server_Exception
E 9Zend_Json_Server_Error
D 9Zend_Json_Server_Cache
C )Zend_Json_Expr
B 3Zend_Json_Exception
A /Zend_Json_Encoder
@ /Zend_Json_Decoder
? 3Zend_Http_UserAgent
"> GZend_Http_UserAgent_Validator
= =Zend_Http_UserAgent_Text
(< SZend_Http_UserAgent_Storage_Session
.; _Zend_Http_UserAgent_Storage_NonPersistent
*: WZend_Http_UserAgent_Storage_Exception
9 =Zend_Http_UserAgent_Spam
8 ?Zend_Http_UserAgent_Probe
 7 CZend_Http_UserAgent_Offline
6 AZend_Http_UserAgent_Mobile
5 =Zend_Http_UserAgent_Feed
+4 YZend_Http_UserAgent_Features_Exception
33 iZend_Http_UserAgent_Features_Adapter_TeraWurfl
52 mZend_Http_UserAgent_Features_Adapter_DeviceAtlas
21 gZend_Http_UserAgent_Features_Adapter_Browscap
"0 GZend_Http_UserAgent_Exception
/ ?Zend_Http_UserAgent_Email
 . CZend_Http_UserAgent_Desktop
 - CZend_Http_UserAgent_Console
 , CZend_Http_UserAgent_Checker
+ ;Zend_Http_UserAgent_Bot
   p
 ~bK'j?hI'Y8{T-




i
;
!
					z	^	=	aB!nS5sW;sYE,o8k;
kEtN0
                                  "
 GZend_Mobile_Push_Response_Gcm
	 7Zend_Mobile_Push_Mpns
" GZend_Mobile_Push_Message_Mpns
( SZend_Mobile_Push_Message_Mpns_Toast
' QZend_Mobile_Push_Message_Mpns_Tile
& OZend_Mobile_Push_Message_Mpns_Raw
! EZend_Mobile_Push_Message_Gcm
' QZend_Mobile_Push_Message_Exception
" GZend_Mobile_Push_Message_Apns
& OZend_Mobile_Push_Message_Abstract
  5Zend_Mobile_Push_Gcm
 AZend_Mobile_Push_Exception
1~ eZend_Mobile_Push_Exception_ServerUnavailable
-} ]Zend_Mobile_Push_Exception_QuotaExceeded
,| [Zend_Mobile_Push_Exception_InvalidTopic
,{ [Zend_Mobile_Push_Exception_InvalidToken
3z iZend_Mobile_Push_Exception_InvalidRegistration
.y _Zend_Mobile_Push_Exception_InvalidPayload
0x cZend_Mobile_Push_Exception_InvalidAuthToken
3w iZend_Mobile_Push_Exception_DeviceQuotaExceeded
v 7Zend_Mobile_Push_Apns
u ?Zend_Mobile_Push_Abstract
t 7Zend_Mobile_Exception
s Zend_Mime
r )Zend_Mime_Part
q /Zend_Mime_Message
p 3Zend_Mime_Exception
o -Zend_Mime_Decode
n #Zend_Memory
m /Zend_Memory_Value
l 3Zend_Memory_Manager
k 7Zend_Memory_Exception
j 7Zend_Memory_Container
"i GZend_Memory_Container_Movable
!h EZend_Memory_Container_Locked
!g EZend_Memory_AccessController
f 3Zend_Measure_Weight
e 3Zend_Measure_Volume
%d MZend_Measure_Viscosity_Kinematic
#c IZend_Measure_Viscosity_Dynamic
b 3Zend_Measure_Torque
a /Zend_Measure_Time
` =Zend_Measure_Temperature
_ 1Zend_Measure_Speed
^ 7Zend_Measure_Pressure
] 1Zend_Measure_Power
\ 3Zend_Measure_Number
[ 9Zend_Measure_Lightness
Z 3Zend_Measure_Length
Y ?Zend_Measure_Illumination
X 9Zend_Measure_Frequency
W 1Zend_Measure_Force
V =Zend_Measure_Flow_Volume
U 9Zend_Measure_Flow_Mole
T 9Zend_Measure_Flow_Mass
S 9Zend_Measure_Exception
R 3Zend_Measure_Energy
Q 5Zend_Measure_Density
P 5Zend_Measure_Current
 O CZend_Measure_Cooking_Weight
 N CZend_Measure_Cooking_Volume
M =Zend_Measure_Capacitance
L 3Zend_Measure_Binary
K /Zend_Measure_Area
J 1Zend_Measure_Angle
I ?Zend_Measure_Acceleration
H 7Zend_Measure_Abstract
G #Zend_Markup
F 7Zend_Markup_TokenList
E /Zend_Markup_Token
*D WZend_Markup_Renderer_RendererAbstract
C ?Zend_Markup_Renderer_Html
"B GZend_Markup_Renderer_Html_Url
#A IZend_Markup_Renderer_Html_List
"@ GZend_Markup_Renderer_Html_Img
+? YZend_Markup_Renderer_Html_HtmlAbstract
#> IZend_Markup_Renderer_Html_Code
#= IZend_Markup_Renderer_Exception
!< EZend_Markup_Parser_Exception
; ?Zend_Markup_Parser_Bbcode
: 7Zend_Markup_Exception
9 Zend_Mail
8 =Zend_Mail_Transport_Smtp
!7 EZend_Mail_Transport_Sendmail
6 =Zend_Mail_Transport_File
"5 GZend_Mail_Transport_Exception
!4 EZend_Mail_Transport_Abstract
3 /Zend_Mail_Storage
'2 QZend_Mail_Storage_Writable_Maildir
1 9Zend_Mail_Storage_Pop3
0 9Zend_Mail_Storage_Mbox
/ ?Zend_Mail_Storage_Maildir
. 9Zend_Mail_Storage_Imap
- =Zend_Mail_Storage_Folder
", GZend_Mail_Storage_Folder_Mbox
%+ MZend_Mail_Storage_Folder_Maildir
 * CZend_Mail_Storage_Exception
) AZend_Mail_Storage_Abstract
( ;Zend_Mail_Protocol_Smtp
'' QZend_Mail_Protocol_Smtp_Auth_Plain
'& QZend_Mail_Protocol_Smtp_Auth_Login
)% UZend_Mail_Protocol_Smtp_Auth_Crammd5
$ ;Zend_Mail_Protocol_Pop3
# ;Zend_Mail_Protocol_Imap
!" EZend_Mail_Protocol_Exception
 ! CZend_Mail_Protocol_Abstract
  )Zend_Mail_Part
 3Zend_Mail_Part_File
 /Zend_Mail_Message
 9Zend_Mail_Message_File
! EZend_Mail_Header_HeaderValue
  CZend_Mail_Header_HeaderName
   p  sR5g=lL! hJ'	nQ=



w
V
,				q	Z	=	{\> wX:wV:lV:X hE }_A bB                    z ;Zend_Pdf_Element_String
#y IZend_Pdf_Element_String_Binary
x ;Zend_Pdf_Element_Stream
w AZend_Pdf_Element_Reference
%v MZend_Pdf_Element_Reference_Table
'u QZend_Pdf_Element_Reference_Context
t ;Zend_Pdf_Element_Object
#s IZend_Pdf_Element_Object_Stream
r =Zend_Pdf_Element_Numeric
q 7Zend_Pdf_Element_Null
p 7Zend_Pdf_Element_Name
 o CZend_Pdf_Element_Dictionary
n =Zend_Pdf_Element_Boolean
m 9Zend_Pdf_Element_Array
l 5Zend_Pdf_Destination
k ?Zend_Pdf_Destination_Zoom
!j EZend_Pdf_Destination_Unknown
i AZend_Pdf_Destination_Named
'h QZend_Pdf_Destination_FitVertically
&g OZend_Pdf_Destination_FitRectangle
)f UZend_Pdf_Destination_FitHorizontally
2e gZend_Pdf_Destination_FitBoundingBoxVertically
4d kZend_Pdf_Destination_FitBoundingBoxHorizontally
(c SZend_Pdf_Destination_FitBoundingBox
b =Zend_Pdf_Destination_Fit
"a GZend_Pdf_Destination_Explicit
` )Zend_Pdf_Color
_ 1Zend_Pdf_Color_Rgb
^ 3Zend_Pdf_Color_Html
] =Zend_Pdf_Color_GrayScale
\ 3Zend_Pdf_Color_Cmyk
[ 'Zend_Pdf_Cmap
Z AZend_Pdf_Cmap_TrimmedTable
!Y EZend_Pdf_Cmap_SegmentToDelta
X AZend_Pdf_Cmap_ByteEncoding
&W OZend_Pdf_Cmap_ByteEncoding_Static
V +Zend_Pdf_Canvas
U =Zend_Pdf_Canvas_Abstract
T 3Zend_Pdf_Annotation
S =Zend_Pdf_Annotation_Text
R AZend_Pdf_Annotation_Markup
Q =Zend_Pdf_Annotation_Link
'P QZend_Pdf_Annotation_FileAttachment
O +Zend_Pdf_Action
N 3Zend_Pdf_Action_URI
M ;Zend_Pdf_Action_Unknown
L 7Zend_Pdf_Action_Trans
K 9Zend_Pdf_Action_Thread
J AZend_Pdf_Action_SubmitForm
I 7Zend_Pdf_Action_Sound
 H CZend_Pdf_Action_SetOCGState
G ?Zend_Pdf_Action_ResetForm
F ?Zend_Pdf_Action_Rendition
E 7Zend_Pdf_Action_Named
D 7Zend_Pdf_Action_Movie
C 9Zend_Pdf_Action_Launch
B AZend_Pdf_Action_JavaScript
A AZend_Pdf_Action_ImportData
@ 5Zend_Pdf_Action_Hide
? 7Zend_Pdf_Action_GoToR
> 7Zend_Pdf_Action_GoToE
= AZend_Pdf_Action_GoTo3DView
< 5Zend_Pdf_Action_GoTo
; )Zend_Paginator
-: ]Zend_Paginator_SerializableLimitIterator
*9 WZend_Paginator_ScrollingStyle_Sliding
*8 WZend_Paginator_ScrollingStyle_Jumping
*7 WZend_Paginator_ScrollingStyle_Elastic
&6 OZend_Paginator_ScrollingStyle_All
5 =Zend_Paginator_Exception
 4 CZend_Paginator_Adapter_Null
$3 KZend_Paginator_Adapter_Iterator
)2 UZend_Paginator_Adapter_DbTableSelect
$1 KZend_Paginator_Adapter_DbSelect
!0 EZend_Paginator_Adapter_Array
/ #Zend_OpenId
. 5Zend_OpenId_Provider
- ?Zend_OpenId_Provider_User
&, OZend_OpenId_Provider_User_Session
!+ EZend_OpenId_Provider_Storage
&* OZend_OpenId_Provider_Storage_File
) 7Zend_OpenId_Extension
( AZend_OpenId_Extension_Sreg
' 7Zend_OpenId_Exception
& 5Zend_OpenId_Consumer
!% EZend_OpenId_Consumer_Storage
&$ OZend_OpenId_Consumer_Storage_File
# !Zend_Oauth
" -Zend_Oauth_Token
! =Zend_Oauth_Token_Request
'  QZend_Oauth_Token_AuthorizedRequest
 ;Zend_Oauth_Token_Access
+ YZend_Oauth_Signature_SignatureAbstract
 =Zend_Oauth_Signature_Rsa
# IZend_Oauth_Signature_Plaintext
 ?Zend_Oauth_Signature_Hmac
 +Zend_Oauth_Http
 ;Zend_Oauth_Http_Utility
& OZend_Oauth_Http_UserAuthorization
! EZend_Oauth_Http_RequestToken
  CZend_Oauth_Http_AccessToken
 5Zend_Oauth_Exception
 3Zend_Oauth_Consumer
 /Zend_Oauth_Config
 /Zend_Oauth_Client
 +Zend_Navigation
 5Zend_Navigation_Page
 =Zend_Navigation_Page_Uri
 =Zend_Navigation_Page_Mvc
 ?Zend_Navigation_Exception
 ?Zend_Navigation_Container
$ KZend_Mobile_Push_Test_ApnsProxy
   d  S)yL&oM7 ~G{M


x
6				=OoI$oO(|\CiH%vR4[@zN)                       ^ ?Zend_Reflection_Exception
] =Zend_Reflection_Docblock
!\ EZend_Reflection_Docblock_Tag
([ SZend_Reflection_Docblock_Tag_Return
'Z QZend_Reflection_Docblock_Tag_Param
Y 7Zend_Reflection_Class
X !Zend_Queue
W 9Zend_Queue_Stomp_Frame
V ;Zend_Queue_Stomp_Client
'U QZend_Queue_Stomp_Client_Connection
T 1Zend_Queue_Message
#S IZend_Queue_Message_PlatformJob
 R CZend_Queue_Message_Iterator
Q 5Zend_Queue_Exception
(P SZend_Queue_Adapter_PlatformJobQueue
O ;Zend_Queue_Adapter_Null
!N EZend_Queue_Adapter_Memcacheq
M 7Zend_Queue_Adapter_Db
 L CZend_Queue_Adapter_Db_Queue
"K GZend_Queue_Adapter_Db_Message
J =Zend_Queue_Adapter_Array
'I QZend_Queue_Adapter_AdapterAbstract
 H CZend_Queue_Adapter_Activemq
G -Zend_ProgressBar
F AZend_ProgressBar_Exception
E =Zend_ProgressBar_Adapter
$D KZend_ProgressBar_Adapter_JsPush
$C KZend_ProgressBar_Adapter_JsPull
'B QZend_ProgressBar_Adapter_Exception
%A MZend_ProgressBar_Adapter_Console
@ Zend_Pdf
!? EZend_Pdf_UpdateInfoContainer
> -Zend_Pdf_Trailer
= ;Zend_Pdf_Trailer_Keeper
< AZend_Pdf_Trailer_Generator
; +Zend_Pdf_Target
: )Zend_Pdf_Style
9 7Zend_Pdf_StringParser
8 /Zend_Pdf_Resource
7 ?Zend_Pdf_Resource_Unified
#6 IZend_Pdf_Resource_ImageFactory
5 ;Zend_Pdf_Resource_Image
!4 EZend_Pdf_Resource_Image_Tiff
 3 CZend_Pdf_Resource_Image_Png
!2 EZend_Pdf_Resource_Image_Jpeg
$1 KZend_Pdf_Resource_GraphicsState
0 9Zend_Pdf_Resource_Font
!/ EZend_Pdf_Resource_Font_Type0
". GZend_Pdf_Resource_Font_Simple
+- YZend_Pdf_Resource_Font_Simple_Standard
8, sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats
6+ oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman
7* qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic
;) yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic
5( mZend_Pdf_Resource_Font_Simple_Standard_TimesBold
2' gZend_Pdf_Resource_Font_Simple_Standard_Symbol
<& {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaOblique
A% Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique
9$ uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold
5# mZend_Pdf_Resource_Font_Simple_Standard_Helvetica
:" wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique
>! Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique
7  qZend_Pdf_Resource_Font_Simple_Standard_CourierBold
3 iZend_Pdf_Resource_Font_Simple_Standard_Courier
) UZend_Pdf_Resource_Font_Simple_Parsed
2 gZend_Pdf_Resource_Font_Simple_Parsed_TrueType
* WZend_Pdf_Resource_Font_FontDescriptor
% MZend_Pdf_Resource_Font_Extracted
# IZend_Pdf_Resource_Font_CidFont
, [Zend_Pdf_Resource_Font_CidFont_TrueType
  CZend_Pdf_Resource_Extractor
$ KZend_Pdf_Resource_ContentStream
3 iZend_Pdf_RecursivelyIteratableObjectsContainer
 +Zend_Pdf_Parser
 'Zend_Pdf_Page
 -Zend_Pdf_Outline
 ;Zend_Pdf_Outline_Loaded
 =Zend_Pdf_Outline_Created
 /Zend_Pdf_NameTree
 )Zend_Pdf_Image
 'Zend_Pdf_Font
 ?Zend_Pdf_Filter_RunLength
  CZend_Pdf_Filter_Compression
$ KZend_Pdf_Filter_Compression_Lzw
&
 OZend_Pdf_Filter_Compression_Flate
	 =Zend_Pdf_Filter_AsciiHex
 ;Zend_Pdf_Filter_Ascii85
" GZend_Pdf_FileParserDataSource
) UZend_Pdf_FileParserDataSource_String
' QZend_Pdf_FileParserDataSource_File
 3Zend_Pdf_FileParser
 ?Zend_Pdf_FileParser_Image
" GZend_Pdf_FileParser_Image_Png
 =Zend_Pdf_FileParser_Font
&  OZend_Pdf_FileParser_Font_OpenType
/ aZend_Pdf_FileParser_Font_OpenType_TrueType
~ 1Zend_Pdf_Exception
} ;Zend_Pdf_ElementFactory
"| GZend_Pdf_ElementFactory_Proxy
{ -Zend_Pdf_Element
   U  _>(iQ.t'h~T


g
7
				b	9	Y-h,yQ*FNt9wO[.                           13 eZend_Search_Lucene_Search_QueryParserContext
*2 WZend_Search_Lucene_Search_QueryParser
)1 UZend_Search_Lucene_Search_QueryLexer
'0 QZend_Search_Lucene_Search_QueryHit
)/ UZend_Search_Lucene_Search_QueryEntry
.. _Zend_Search_Lucene_Search_QueryEntry_Term
2- gZend_Search_Lucene_Search_QueryEntry_Subquery
0, cZend_Search_Lucene_Search_QueryEntry_Phrase
$+ KZend_Search_Lucene_Search_Query
-* ]Zend_Search_Lucene_Search_Query_Wildcard
)) UZend_Search_Lucene_Search_Query_Term
*( WZend_Search_Lucene_Search_Query_Range
2' gZend_Search_Lucene_Search_Query_Preprocessing
7& qZend_Search_Lucene_Search_Query_Preprocessing_Term
9% uZend_Search_Lucene_Search_Query_Preprocessing_Phrase
8$ sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy
+# YZend_Search_Lucene_Search_Query_Phrase
." _Zend_Search_Lucene_Search_Query_MultiTerm
2! gZend_Search_Lucene_Search_Query_Insignificant
*  WZend_Search_Lucene_Search_Query_Fuzzy
* WZend_Search_Lucene_Search_Query_Empty
, [Zend_Search_Lucene_Search_Query_Boolean
2 gZend_Search_Lucene_Search_Highlighter_Default
: wZend_Search_Lucene_Search_BooleanExpressionRecognizer
 =Zend_Search_Lucene_Proxy
% MZend_Search_Lucene_PriorityQueue
/ aZend_Search_Lucene_Interface_MultiSearcher
% MZend_Search_Lucene_MultiSearcher
# IZend_Search_Lucene_LockManager
$ KZend_Search_Lucene_Index_Writer
0 cZend_Search_Lucene_Index_TermsPriorityQueue
& OZend_Search_Lucene_Index_TermInfo
" GZend_Search_Lucene_Index_Term
+ YZend_Search_Lucene_Index_SegmentWriter
8 sZend_Search_Lucene_Index_SegmentWriter_StreamWriter
: wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter
+ YZend_Search_Lucene_Index_SegmentMerger
) UZend_Search_Lucene_Index_SegmentInfo
' QZend_Search_Lucene_Index_FieldInfo
( SZend_Search_Lucene_Index_DocsFilter
. _Zend_Search_Lucene_Index_DictionaryLoader
!
 EZend_Search_Lucene_FSMAction
	 9Zend_Search_Lucene_FSM
 =Zend_Search_Lucene_Field
! EZend_Search_Lucene_Exception
  CZend_Search_Lucene_Document
% MZend_Search_Lucene_Document_Xlsx
% MZend_Search_Lucene_Document_Pptx
( SZend_Search_Lucene_Document_OpenXml
% MZend_Search_Lucene_Document_Html
* WZend_Search_Lucene_Document_Exception
%  MZend_Search_Lucene_Document_Docx
, [Zend_Search_Lucene_Analysis_TokenFilter
6~ oZend_Search_Lucene_Analysis_TokenFilter_StopWords
7} qZend_Search_Lucene_Analysis_TokenFilter_ShortWords
:| wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8
6{ oZend_Search_Lucene_Analysis_TokenFilter_LowerCase
&z OZend_Search_Lucene_Analysis_Token
)y UZend_Search_Lucene_Analysis_Analyzer
0x cZend_Search_Lucene_Analysis_Analyzer_Common
8w sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num
Iv Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive
5u mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8
Ft Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive
8s sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum
Ir Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive
5q mZend_Search_Lucene_Analysis_Analyzer_Common_Text
Fp Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive
o 7Zend_Search_Exception
n -Zend_Rest_Server
m AZend_Rest_Server_Exception
l +Zend_Rest_Route
k 3Zend_Rest_Exception
j 5Zend_Rest_Controller
i -Zend_Rest_Client
h ;Zend_Rest_Client_Result
&g OZend_Rest_Client_Result_Exception
f AZend_Rest_Client_Exception
e 'Zend_Registry
d =Zend_Reflection_Property
c ?Zend_Reflection_Parameter
b 9Zend_Reflection_Method
a =Zend_Reflection_Function
` 5Zend_Reflection_File
_ ?Zend_Reflection_Extension
   _  g:	wI Y1h?sQ9



{
V
1
				d	@	iD]2]3	W/d>hBzK!hD
     < {Zend_Service_Console_Command_ParameterSource_ConfigFile
6 oZend_Service_Console_Command_ParameterSource_Argv
  CZend_Service_Audioscrobbler
 3Zend_Service_Amazon
 ;Zend_Service_Amazon_Sqs
& OZend_Service_Amazon_Sqs_Exception
! EZend_Service_Amazon_SimpleDb
* WZend_Service_Amazon_SimpleDb_Response
&
 OZend_Service_Amazon_SimpleDb_Page
+	 YZend_Service_Amazon_SimpleDb_Exception
+ YZend_Service_Amazon_SimpleDb_Attribute
' QZend_Service_Amazon_SimilarProduct
 9Zend_Service_Amazon_S3
" GZend_Service_Amazon_S3_Stream
% MZend_Service_Amazon_S3_Exception
" GZend_Service_Amazon_ResultSet
 ?Zend_Service_Amazon_Query
! EZend_Service_Amazon_OfferSet
  ?Zend_Service_Amazon_Offer
& OZend_Service_Amazon_ListmaniaList
~ =Zend_Service_Amazon_Item
} ?Zend_Service_Amazon_Image
"| GZend_Service_Amazon_Exception
({ SZend_Service_Amazon_EditorialReview
z ;Zend_Service_Amazon_Ec2
+y YZend_Service_Amazon_Ec2_Securitygroups
%x MZend_Service_Amazon_Ec2_Response
#w IZend_Service_Amazon_Ec2_Region
$v KZend_Service_Amazon_Ec2_Keypair
%u MZend_Service_Amazon_Ec2_Instance
-t ]Zend_Service_Amazon_Ec2_Instance_Windows
.s _Zend_Service_Amazon_Ec2_Instance_Reserved
"r GZend_Service_Amazon_Ec2_Image
&q OZend_Service_Amazon_Ec2_Exception
&p OZend_Service_Amazon_Ec2_Elasticip
 o CZend_Service_Amazon_Ec2_Ebs
'n QZend_Service_Amazon_Ec2_CloudWatch
.m _Zend_Service_Amazon_Ec2_Availabilityzones
%l MZend_Service_Amazon_Ec2_Abstract
'k QZend_Service_Amazon_CustomerReview
'j QZend_Service_Amazon_Authentication
*i WZend_Service_Amazon_Authentication_V2
*h WZend_Service_Amazon_Authentication_V1
*g WZend_Service_Amazon_Authentication_S3
1f eZend_Service_Amazon_Authentication_Exception
$e KZend_Service_Amazon_Accessories
!d EZend_Service_Amazon_Abstract
c 5Zend_Service_Akismet
b 7Zend_Service_Abstract
a 9Zend_Server_Reflection
'` QZend_Server_Reflection_ReturnValue
%_ MZend_Server_Reflection_Prototype
%^ MZend_Server_Reflection_Parameter
 ] CZend_Server_Reflection_Node
"\ GZend_Server_Reflection_Method
$[ KZend_Server_Reflection_Function
-Z ]Zend_Server_Reflection_Function_Abstract
%Y MZend_Server_Reflection_Exception
!X EZend_Server_Reflection_Class
!W EZend_Server_Method_Prototype
!V EZend_Server_Method_Parameter
"U GZend_Server_Method_Definition
 T CZend_Server_Method_Callback
S 7Zend_Server_Exception
R 9Zend_Server_Definition
Q /Zend_Server_Cache
P 5Zend_Server_Abstract
O +Zend_Serializer
N ?Zend_Serializer_Exception
!M EZend_Serializer_Adapter_Wddx
)L UZend_Serializer_Adapter_PythonPickle
)K UZend_Serializer_Adapter_PhpSerialize
$J KZend_Serializer_Adapter_PhpCode
!I EZend_Serializer_Adapter_Json
%H MZend_Serializer_Adapter_Igbinary
!G EZend_Serializer_Adapter_Amf3
!F EZend_Serializer_Adapter_Amf0
,E [Zend_Serializer_Adapter_AdapterAbstract
D 1Zend_Search_Lucene
0C cZend_Search_Lucene_TermStreamsPriorityQueue
$B KZend_Search_Lucene_Storage_File
+A YZend_Search_Lucene_Storage_File_Memory
/@ aZend_Search_Lucene_Storage_File_Filesystem
)? UZend_Search_Lucene_Storage_Directory
4> kZend_Search_Lucene_Storage_Directory_Filesystem
%= MZend_Search_Lucene_Search_Weight
*< WZend_Search_Lucene_Search_Weight_Term
,; [Zend_Search_Lucene_Search_Weight_Phrase
/: aZend_Search_Lucene_Search_Weight_MultiTerm
+9 YZend_Search_Lucene_Search_Weight_Empty
-8 ]Zend_Search_Lucene_Search_Weight_Boolean
)7 UZend_Search_Lucene_Search_Similarity
16 eZend_Search_Lucene_Search_Similarity_Default
)5 UZend_Search_Lucene_Search_QueryToken
34 iZend_Search_Lucene_Search_QueryParserException
   W  P+eF#Z!Se9


n
=
				y	L	oP.y[3
yMi;	tKzV.i?V      !i EZend_Service_StrikeIron_Base
;h yZend_Service_SqlAzure_Management_ServiceEntityAbstract
4g kZend_Service_SqlAzure_Management_ServerInstance
:f wZend_Service_SqlAzure_Management_FirewallRuleInstance
/e aZend_Service_SqlAzure_Management_Exception
,d [Zend_Service_SqlAzure_Management_Client
$c KZend_Service_SqlAzure_Exception
b ;Zend_Service_SlideShare
&a OZend_Service_SlideShare_SlideShow
&` OZend_Service_SlideShare_Exception
%_ MZend_Service_ShortUrl_TinyUrlCom
&^ OZend_Service_ShortUrl_MetamarkNet
!] EZend_Service_ShortUrl_JdemCz
\ AZend_Service_ShortUrl_IsGd
$[ KZend_Service_ShortUrl_Exception
 Z CZend_Service_ShortUrl_BitLy
,Y [Zend_Service_ShortUrl_AbstractShortener
X 9Zend_Service_ReCaptcha
$W KZend_Service_ReCaptcha_Response
$V KZend_Service_ReCaptcha_MailHide
.U _Zend_Service_ReCaptcha_MailHide_Exception
%T MZend_Service_ReCaptcha_Exception
#S IZend_Service_Rackspace_Servers
5R mZend_Service_Rackspace_Servers_SharedIpGroupList
1Q eZend_Service_Rackspace_Servers_SharedIpGroup
.P _Zend_Service_Rackspace_Servers_ServerList
*O WZend_Service_Rackspace_Servers_Server
-N ]Zend_Service_Rackspace_Servers_ImageList
)M UZend_Service_Rackspace_Servers_Image
-L ]Zend_Service_Rackspace_Servers_Exception
!K EZend_Service_Rackspace_Files
,J [Zend_Service_Rackspace_Files_ObjectList
(I SZend_Service_Rackspace_Files_Object
+H YZend_Service_Rackspace_Files_Exception
/G aZend_Service_Rackspace_Files_ContainerList
+F YZend_Service_Rackspace_Files_Container
%E MZend_Service_Rackspace_Exception
$D KZend_Service_Rackspace_Abstract
C 7Zend_Service_LiveDocx
$B KZend_Service_LiveDocx_MailMerge
$A KZend_Service_LiveDocx_Exception
@ 3Zend_Service_Flickr
"? GZend_Service_Flickr_ResultSet
> AZend_Service_Flickr_Result
= ?Zend_Service_Flickr_Image
< 9Zend_Service_Exception
; ?Zend_Service_Ebay_Finding
): UZend_Service_Ebay_Finding_Storefront
+9 YZend_Service_Ebay_Finding_ShippingInfo
+8 YZend_Service_Ebay_Finding_Set_Abstract
,7 [Zend_Service_Ebay_Finding_SellingStatus
)6 UZend_Service_Ebay_Finding_SellerInfo
,5 [Zend_Service_Ebay_Finding_Search_Result
*4 WZend_Service_Ebay_Finding_Search_Item
.3 _Zend_Service_Ebay_Finding_Search_Item_Set
02 cZend_Service_Ebay_Finding_Response_Keywords
-1 ]Zend_Service_Ebay_Finding_Response_Items
20 gZend_Service_Ebay_Finding_Response_Histograms
0/ cZend_Service_Ebay_Finding_Response_Abstract
/. aZend_Service_Ebay_Finding_PaginationOutput
*- WZend_Service_Ebay_Finding_ListingInfo
(, SZend_Service_Ebay_Finding_Exception
,+ [Zend_Service_Ebay_Finding_Error_Message
)* UZend_Service_Ebay_Finding_Error_Data
-) ]Zend_Service_Ebay_Finding_Error_Data_Set
'( QZend_Service_Ebay_Finding_Category
1' eZend_Service_Ebay_Finding_Category_Histogram
5& mZend_Service_Ebay_Finding_Category_Histogram_Set
;% yZend_Service_Ebay_Finding_Category_Histogram_Container
%$ MZend_Service_Ebay_Finding_Aspect
)# UZend_Service_Ebay_Finding_Aspect_Set
5" mZend_Service_Ebay_Finding_Aspect_Histogram_Value
9! uZend_Service_Ebay_Finding_Aspect_Histogram_Value_Set
9  uZend_Service_Ebay_Finding_Aspect_Histogram_Container
' QZend_Service_Ebay_Finding_Abstract
  CZend_Service_Ebay_Exception
 AZend_Service_Ebay_Abstract
 9Zend_Service_Delicious
& OZend_Service_Delicious_SimplePost
$ KZend_Service_Delicious_PostList
  CZend_Service_Delicious_Post
% MZend_Service_Delicious_Exception
# IZend_Service_Console_Exception
! EZend_Service_Console_Command
7 qZend_Service_Console_Command_ParameterSource_StdIn
8 sZend_Service_Console_Command_ParameterSource_Prompt
5 mZend_Service_Console_Command_ParameterSource_Env
   B  {EUC0JI


c
#			8wAZ g'n"RS{<h+                                            9+ uZend_Service_WindowsAzure_Storage_PageRegionInstance
4* kZend_Service_WindowsAzure_Storage_LeaseInstance
9) uZend_Service_WindowsAzure_Storage_DynamicTableEntity
3( iZend_Service_WindowsAzure_Storage_BlobInstance
4' kZend_Service_WindowsAzure_Storage_BlobContainer
+& YZend_Service_WindowsAzure_Storage_Blob
2% gZend_Service_WindowsAzure_Storage_Blob_Stream
;$ yZend_Service_WindowsAzure_Storage_BatchStorageAbstract
,# [Zend_Service_WindowsAzure_Storage_Batch
-" ]Zend_Service_WindowsAzure_SessionHandler
>! Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract
1  eZend_Service_WindowsAzure_RetryPolicy_RetryN
2 gZend_Service_WindowsAzure_RetryPolicy_NoRetry
4 kZend_Service_WindowsAzure_RetryPolicy_Exception
H Zend_Service_WindowsAzure_Management_SubscriptionOperationInstance
A Zend_Service_WindowsAzure_Management_StorageServiceInstance
@ Zend_Service_WindowsAzure_Management_ServiceEntityAbstract
B Zend_Service_WindowsAzure_Management_OperationStatusInstance
B Zend_Service_WindowsAzure_Management_OperatingSystemInstance
H Zend_Service_WindowsAzure_Management_OperatingSystemFamilyInstance
: wZend_Service_WindowsAzure_Management_LocationInstance
@ Zend_Service_WindowsAzure_Management_HostedServiceInstance
3 iZend_Service_WindowsAzure_Management_Exception
< {Zend_Service_WindowsAzure_Management_DeploymentInstance
0 cZend_Service_WindowsAzure_Management_Client
= }Zend_Service_WindowsAzure_Management_CertificateInstance
@ Zend_Service_WindowsAzure_Management_AffinityGroupInstance
6 oZend_Service_WindowsAzure_Log_Writer_WindowsAzure
9 uZend_Service_WindowsAzure_Log_Formatter_WindowsAzure
, [Zend_Service_WindowsAzure_Log_Exception
( SZend_Service_WindowsAzure_Exception
J Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscription
2 gZend_Service_WindowsAzure_Diagnostics_Manager
3
 iZend_Service_WindowsAzure_Diagnostics_LogLevel
4	 kZend_Service_WindowsAzure_Diagnostics_Exception
N Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscription
H Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLog
L Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCounters
K Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstract
< {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogs
A Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstance
D 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectories
U +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogs
D  	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSources
8 sZend_Service_WindowsAzure_Credentials_SharedKeyLite
4~ kZend_Service_WindowsAzure_Credentials_SharedKey
A} Zend_Service_WindowsAzure_Credentials_SharedAccessSignature
4| kZend_Service_WindowsAzure_Credentials_Exception
>{ Zend_Service_WindowsAzure_Credentials_CredentialsAbstract
2z gZend_Service_WindowsAzure_CommandLine_Storage
2y gZend_Service_WindowsAzure_CommandLine_Service
x !Scaffolder
Ww /Zend_Service_WindowsAzure_CommandLine_PackageScaffolder_PackageScaffolderAbstract
2v gZend_Service_WindowsAzure_CommandLine_Package
Du 	Zend_Service_WindowsAzure_CommandLine_GetAsynchronousOperation
5t mZend_Service_WindowsAzure_CommandLine_Deployment
6s oZend_Service_WindowsAzure_CommandLine_Certificate
r 5Zend_Service_Twitter
"q GZend_Service_Twitter_Response
#p IZend_Service_Twitter_Exception
o ;Zend_Service_StrikeIron
(n SZend_Service_StrikeIron_ZipCodeInfo
2m gZend_Service_StrikeIron_USAddressVerification
-l ]Zend_Service_StrikeIron_SalesUseTaxBasic
&k OZend_Service_StrikeIron_Exception
&j OZend_Service_StrikeIron_Decorator
   _  a&EqEvLb:



o
G
					t	T	1	}T,hQ-oDxbH,P!c/`5~L   *
 WZend_Test_PHPUnit_Db_Metadata_Generic
#	 IZend_Test_PHPUnit_Db_Exception
, [Zend_Test_PHPUnit_Db_DataSet_QueryTable
. _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet
0 cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet
) UZend_Test_PHPUnit_Db_DataSet_DbTable
* WZend_Test_PHPUnit_Db_DataSet_DbRowset
$ KZend_Test_PHPUnit_Db_Connection
' QZend_Test_PHPUnit_DatabaseTestCase
) UZend_Test_PHPUnit_ControllerTestCase
2  gZend_Test_PHPUnit_Constraint_ResponseHeader41
2 gZend_Test_PHPUnit_Constraint_ResponseHeader37
2~ gZend_Test_PHPUnit_Constraint_ResponseHeader34
0} cZend_Test_PHPUnit_Constraint_ResponseHeader
,| [Zend_Test_PHPUnit_Constraint_Redirect41
,{ [Zend_Test_PHPUnit_Constraint_Redirect37
,z [Zend_Test_PHPUnit_Constraint_Redirect34
*y WZend_Test_PHPUnit_Constraint_Redirect
+x YZend_Test_PHPUnit_Constraint_Exception
,w [Zend_Test_PHPUnit_Constraint_DomQuery41
,v [Zend_Test_PHPUnit_Constraint_DomQuery37
,u [Zend_Test_PHPUnit_Constraint_DomQuery34
*t WZend_Test_PHPUnit_Constraint_DomQuery
s 7Zend_Test_DbStatement
r 3Zend_Test_DbAdapter
q /Zend_Tag_ItemList
p 'Zend_Tag_Item
o 1Zend_Tag_Exception
n )Zend_Tag_Cloud
m =Zend_Tag_Cloud_Exception
!l EZend_Tag_Cloud_Decorator_Tag
%k MZend_Tag_Cloud_Decorator_HtmlTag
'j QZend_Tag_Cloud_Decorator_HtmlCloud
'i QZend_Tag_Cloud_Decorator_Exception
#h IZend_Tag_Cloud_Decorator_Cloud
!g EZend_Stdlib_SplPriorityQueue
f -SplPriorityQueue
e ?Zend_Stdlib_PriorityQueue
3d iZend_Stdlib_Exception_InvalidCallbackException
 c CZend_Stdlib_CallbackHandler
b )Zend_Soap_Wsdl
/a aZend_Soap_Wsdl_Strategy_DefaultComplexType
&` OZend_Soap_Wsdl_Strategy_Composite
0_ cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence
/^ aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex
$] KZend_Soap_Wsdl_Strategy_AnyType
%\ MZend_Soap_Wsdl_Strategy_Abstract
[ =Zend_Soap_Wsdl_Exception
Z -Zend_Soap_Server
Y 9Zend_Soap_Server_Proxy
X AZend_Soap_Server_Exception
W -Zend_Soap_Client
V 9Zend_Soap_Client_Local
U AZend_Soap_Client_Exception
T ;Zend_Soap_Client_DotNet
S ;Zend_Soap_Client_Common
R 9Zend_Soap_AutoDiscover
%Q MZend_Soap_AutoDiscover_Exception
P %Zend_Session
)O UZend_Session_Validator_HttpUserAgent
%N MZend_Session_Validator_Exception
$M KZend_Session_Validator_Abstract
'L QZend_Session_SaveHandler_Exception
%K MZend_Session_SaveHandler_DbTable
J 9Zend_Session_Namespace
I 9Zend_Session_Exception
H 7Zend_Session_Abstract
G 1Zend_Service_Yahoo
$F KZend_Service_Yahoo_WebResultSet
!E EZend_Service_Yahoo_WebResult
&D OZend_Service_Yahoo_VideoResultSet
#C IZend_Service_Yahoo_VideoResult
!B EZend_Service_Yahoo_ResultSet
A ?Zend_Service_Yahoo_Result
)@ UZend_Service_Yahoo_PageDataResultSet
&? OZend_Service_Yahoo_PageDataResult
%> MZend_Service_Yahoo_NewsResultSet
"= GZend_Service_Yahoo_NewsResult
&< OZend_Service_Yahoo_LocalResultSet
#; IZend_Service_Yahoo_LocalResult
+: YZend_Service_Yahoo_InlinkDataResultSet
(9 SZend_Service_Yahoo_InlinkDataResult
&8 OZend_Service_Yahoo_ImageResultSet
#7 IZend_Service_Yahoo_ImageResult
6 =Zend_Service_Yahoo_Image
&5 OZend_Service_WindowsAzure_Storage
44 kZend_Service_WindowsAzure_Storage_TableInstance
73 qZend_Service_WindowsAzure_Storage_TableEntityQuery
22 gZend_Service_WindowsAzure_Storage_TableEntity
,1 [Zend_Service_WindowsAzure_Storage_Table
<0 {Zend_Service_WindowsAzure_Storage_StorageEntityAbstract
7/ qZend_Service_WindowsAzure_Storage_SignedIdentifier
3. iZend_Service_WindowsAzure_Storage_QueueMessage
4- kZend_Service_WindowsAzure_Storage_QueueInstance
,, [Zend_Service_WindowsAzure_Storage_Queue
   R  qG+b@$Z-o9t,



P
				8	Z+tEY/sD^)KO"h1                                  /\ aZend_Tool_Project_Context_Zf_ApisDirectory
.[ _Zend_Tool_Project_Context_Zf_ActionMethod
3Z iZend_Tool_Project_Context_Zf_AbstractClassFile
@Y Zend_Tool_Project_Context_System_ProjectProvidersDirectory
8X sZend_Tool_Project_Context_System_ProjectProfileFile
6W oZend_Tool_Project_Context_System_ProjectDirectory
)V UZend_Tool_Project_Context_Repository
.U _Zend_Tool_Project_Context_Filesystem_File
3T iZend_Tool_Project_Context_Filesystem_Directory
2S gZend_Tool_Project_Context_Filesystem_Abstract
(R SZend_Tool_Project_Context_Exception
-Q ]Zend_Tool_Project_Context_Content_Engine
3P iZend_Tool_Project_Context_Content_Engine_Phtml
;O yZend_Tool_Project_Context_Content_Engine_CodeGenerator
0N cZend_Tool_Framework_System_Provider_Version
0M cZend_Tool_Framework_System_Provider_Phpinfo
1L eZend_Tool_Framework_System_Provider_Manifest
/K aZend_Tool_Framework_System_Provider_Config
(J SZend_Tool_Framework_System_Manifest
-I ]Zend_Tool_Framework_System_Action_Delete
-H ]Zend_Tool_Framework_System_Action_Create
!G EZend_Tool_Framework_Registry
+F YZend_Tool_Framework_Registry_Exception
+E YZend_Tool_Framework_Provider_Signature
,D [Zend_Tool_Framework_Provider_Repository
+C YZend_Tool_Framework_Provider_Exception
*B WZend_Tool_Framework_Provider_Abstract
&A OZend_Tool_Framework_Metadata_Tool
)@ UZend_Tool_Framework_Metadata_Dynamic
'? QZend_Tool_Framework_Metadata_Basic
,> [Zend_Tool_Framework_Manifest_Repository
2= gZend_Tool_Framework_Manifest_ProviderMetadata
*< WZend_Tool_Framework_Manifest_Metadata
+; YZend_Tool_Framework_Manifest_Exception
0: cZend_Tool_Framework_Manifest_ActionMetadata
19 eZend_Tool_Framework_Loader_IncludePathLoader
J8 Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator
+7 YZend_Tool_Framework_Loader_BasicLoader
(6 SZend_Tool_Framework_Loader_Abstract
"5 GZend_Tool_Framework_Exception
'4 QZend_Tool_Framework_Client_Storage
13 eZend_Tool_Framework_Client_Storage_Directory
(2 SZend_Tool_Framework_Client_Response
D1 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator
'0 QZend_Tool_Framework_Client_Request
(/ SZend_Tool_Framework_Client_Manifest
9. uZend_Tool_Framework_Client_Interactive_InputResponse
8- sZend_Tool_Framework_Client_Interactive_InputRequest
8, sZend_Tool_Framework_Client_Interactive_InputHandler
)+ UZend_Tool_Framework_Client_Exception
'* QZend_Tool_Framework_Client_Console
D) 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Indention
D( 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizer
C' Zend_Tool_Framework_Client_Console_ResponseDecorator_Blockize
F& Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter
0% cZend_Tool_Framework_Client_Console_Manifest
2$ gZend_Tool_Framework_Client_Console_HelpSystem
6# oZend_Tool_Framework_Client_Console_ArgumentParser
&" OZend_Tool_Framework_Client_Config
(! SZend_Tool_Framework_Client_Abstract
*  WZend_Tool_Framework_Action_Repository
) UZend_Tool_Framework_Action_Exception
$ KZend_Tool_Framework_Action_Base
 'Zend_TimeSync
 1Zend_TimeSync_Sntp
 9Zend_TimeSync_Protocol
 /Zend_TimeSync_Ntp
 ;Zend_TimeSync_Exception
 +Zend_Text_Table
 3Zend_Text_Table_Row
 ?Zend_Text_Table_Exception
& OZend_Text_Table_Decorator_Unicode
$ KZend_Text_Table_Decorator_Ascii
 9Zend_Text_Table_Column
 3Zend_Text_MultiByte
 -Zend_Text_Figlet
 AZend_Text_Figlet_Exception
 3Zend_Text_Exception
& OZend_Test_PHPUnit_Db_SimpleTester
, [Zend_Test_PHPUnit_Db_Operation_Truncate
* WZend_Test_PHPUnit_Db_Operation_Insert
- ]Zend_Test_PHPUnit_Db_Operation_DeleteAll
   G  X$PU!}GyD


k
0				C	\O
LZ&q7U1Z%oE                                       )# UZend_Tool_Project_Provider_DbAdapter
*" WZend_Tool_Project_Provider_Controller
+! YZend_Tool_Project_Provider_Application
&  OZend_Tool_Project_Provider_Action
( SZend_Tool_Project_Provider_Abstract
 ?Zend_Tool_Project_Profile
' QZend_Tool_Project_Profile_Resource
9 uZend_Tool_Project_Profile_Resource_SearchConstraints
1 eZend_Tool_Project_Profile_Resource_Container
= }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter
5 mZend_Tool_Project_Profile_Iterator_ContextFilter
- ]Zend_Tool_Project_Profile_FileParser_Xml
( SZend_Tool_Project_Profile_Exception
  CZend_Tool_Project_Exception
< {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory
0 cZend_Tool_Project_Context_Zf_ViewsDirectory
6 oZend_Tool_Project_Context_Zf_ViewScriptsDirectory
0 cZend_Tool_Project_Context_Zf_ViewScriptFile
6 oZend_Tool_Project_Context_Zf_ViewHelpersDirectory
6 oZend_Tool_Project_Context_Zf_ViewFiltersDirectory
A Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory
2 gZend_Tool_Project_Context_Zf_UploadsDirectory
0 cZend_Tool_Project_Context_Zf_TestsDirectory
7 qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile
: wZend_Tool_Project_Context_Zf_TestPHPUnitBootstrapFile
@
 Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory
1	 eZend_Tool_Project_Context_Zf_TestLibraryFile
6 oZend_Tool_Project_Context_Zf_TestLibraryDirectory
: wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFile
B Zend_Tool_Project_Context_Zf_TestApplicationModulesDirectory
A Zend_Tool_Project_Context_Zf_TestApplicationModuleDirectory
: wZend_Tool_Project_Context_Zf_TestApplicationDirectory
@ Zend_Tool_Project_Context_Zf_TestApplicationControllerFile
E Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory
> Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile
=  }Zend_Tool_Project_Context_Zf_TestApplicationActionMethod
4 kZend_Tool_Project_Context_Zf_TemporaryDirectory
3~ iZend_Tool_Project_Context_Zf_SessionsDirectory
3} iZend_Tool_Project_Context_Zf_ServicesDirectory
8| sZend_Tool_Project_Context_Zf_SearchIndexesDirectory
<{ {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory
8z sZend_Tool_Project_Context_Zf_PublicScriptsDirectory
1y eZend_Tool_Project_Context_Zf_PublicIndexFile
7x qZend_Tool_Project_Context_Zf_PublicImagesDirectory
1w eZend_Tool_Project_Context_Zf_PublicDirectory
5v mZend_Tool_Project_Context_Zf_ProjectProviderFile
2u gZend_Tool_Project_Context_Zf_ModulesDirectory
1t eZend_Tool_Project_Context_Zf_ModuleDirectory
1s eZend_Tool_Project_Context_Zf_ModelsDirectory
+r YZend_Tool_Project_Context_Zf_ModelFile
/q aZend_Tool_Project_Context_Zf_LogsDirectory
2p gZend_Tool_Project_Context_Zf_LocalesDirectory
2o gZend_Tool_Project_Context_Zf_LibraryDirectory
2n gZend_Tool_Project_Context_Zf_LayoutsDirectory
8m sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory
2l gZend_Tool_Project_Context_Zf_LayoutScriptFile
.k _Zend_Tool_Project_Context_Zf_HtaccessFile
0j cZend_Tool_Project_Context_Zf_FormsDirectory
*i WZend_Tool_Project_Context_Zf_FormFile
/h aZend_Tool_Project_Context_Zf_DocsDirectory
-g ]Zend_Tool_Project_Context_Zf_DbTableFile
2f gZend_Tool_Project_Context_Zf_DbTableDirectory
/e aZend_Tool_Project_Context_Zf_DataDirectory
6d oZend_Tool_Project_Context_Zf_ControllersDirectory
0c cZend_Tool_Project_Context_Zf_ControllerFile
2b gZend_Tool_Project_Context_Zf_ConfigsDirectory
,a [Zend_Tool_Project_Context_Zf_ConfigFile
0` cZend_Tool_Project_Context_Zf_CacheDirectory
/_ aZend_Tool_Project_Context_Zf_BootstrapFile
6^ oZend_Tool_Project_Context_Zf_ApplicationDirectory
7] qZend_Tool_Project_Context_Zf_ApplicationConfigFile
   n  V*N&lJ'z\E*~Y)



k
G
#					q	L	'c>iK,dG$kI$oP,dB(	}bD%|Z3                        'Zend_Validate
 AZend_Validate_StringLength
# IZend_Validate_Sitemap_Priority
 ?Zend_Validate_Sitemap_Loc
" GZend_Validate_Sitemap_Lastmod
% MZend_Validate_Sitemap_Changefreq
 3Zend_Validate_Regex

 9Zend_Validate_PostCode
	 9Zend_Validate_NotEmpty
 9Zend_Validate_LessThan
 7Zend_Validate_Ldap_Dn
 1Zend_Validate_Isbn
 -Zend_Validate_Ip
 /Zend_Validate_Int
 7Zend_Validate_InArray
 ;Zend_Validate_Identical
 1Zend_Validate_Iban
  9Zend_Validate_Hostname
 /Zend_Validate_Hex
~ ?Zend_Validate_GreaterThan
} 3Zend_Validate_Float
!| EZend_Validate_File_WordCount
{ ?Zend_Validate_File_Upload
z ;Zend_Validate_File_Size
y ;Zend_Validate_File_Sha1
!x EZend_Validate_File_NotExists
 w CZend_Validate_File_MimeType
v 9Zend_Validate_File_Md5
u AZend_Validate_File_IsImage
$t KZend_Validate_File_IsCompressed
!s EZend_Validate_File_ImageSize
r ;Zend_Validate_File_Hash
!q EZend_Validate_File_FilesSize
!p EZend_Validate_File_Extension
o ?Zend_Validate_File_Exists
'n QZend_Validate_File_ExcludeMimeType
(m SZend_Validate_File_ExcludeExtension
l =Zend_Validate_File_Crc32
k =Zend_Validate_File_Count
j ;Zend_Validate_Exception
i AZend_Validate_EmailAddress
h 5Zend_Validate_Digits
"g GZend_Validate_Db_RecordExists
$f KZend_Validate_Db_NoRecordExists
e ?Zend_Validate_Db_Abstract
d 1Zend_Validate_Date
c =Zend_Validate_CreditCard
b 3Zend_Validate_Ccnum
a 9Zend_Validate_Callback
` 7Zend_Validate_Between
_ 7Zend_Validate_Barcode
^ AZend_Validate_Barcode_Upce
] AZend_Validate_Barcode_Upca
\ AZend_Validate_Barcode_Sscc
$[ KZend_Validate_Barcode_Royalmail
"Z GZend_Validate_Barcode_Postnet
!Y EZend_Validate_Barcode_Planet
#X IZend_Validate_Barcode_Leitcode
 W CZend_Validate_Barcode_Itf14
V AZend_Validate_Barcode_Issn
*U WZend_Validate_Barcode_IntelligentMail
$T KZend_Validate_Barcode_Identcode
!S EZend_Validate_Barcode_Gtin14
!R EZend_Validate_Barcode_Gtin13
!Q EZend_Validate_Barcode_Gtin12
P AZend_Validate_Barcode_Ean8
O AZend_Validate_Barcode_Ean5
N AZend_Validate_Barcode_Ean2
 M CZend_Validate_Barcode_Ean18
 L CZend_Validate_Barcode_Ean14
 K CZend_Validate_Barcode_Ean13
 J CZend_Validate_Barcode_Ean12
$I KZend_Validate_Barcode_Code93ext
!H EZend_Validate_Barcode_Code93
$G KZend_Validate_Barcode_Code39ext
!F EZend_Validate_Barcode_Code39
,E [Zend_Validate_Barcode_Code25interleaved
!D EZend_Validate_Barcode_Code25
*C WZend_Validate_Barcode_AdapterAbstract
B 3Zend_Validate_Alpha
A 3Zend_Validate_Alnum
@ 9Zend_Validate_Abstract
? Zend_Uri
> 'Zend_Uri_Http
= 1Zend_Uri_Exception
< )Zend_Translate
; 7Zend_Translate_Plural
: =Zend_Translate_Exception
9 9Zend_Translate_Adapter
!8 EZend_Translate_Adapter_XmlTm
!7 EZend_Translate_Adapter_Xliff
6 AZend_Translate_Adapter_Tmx
5 AZend_Translate_Adapter_Tbx
4 ?Zend_Translate_Adapter_Qt
3 AZend_Translate_Adapter_Ini
#2 IZend_Translate_Adapter_Gettext
1 AZend_Translate_Adapter_Csv
!0 EZend_Translate_Adapter_Array
$/ KZend_Tool_Project_Provider_View
$. KZend_Tool_Project_Provider_Test
/- aZend_Tool_Project_Provider_ProjectProvider
', QZend_Tool_Project_Provider_Project
'+ QZend_Tool_Project_Provider_Profile
&* OZend_Tool_Project_Provider_Module
%) MZend_Tool_Project_Provider_Model
(( SZend_Tool_Project_Provider_Manifest
&' OZend_Tool_Project_Provider_Layout
$& KZend_Tool_Project_Provider_Form
)% UZend_Tool_Project_Provider_Exception
'$ QZend_Tool_Project_Provider_DbTable
   j  rQ/f@k@jH" uR-




{
U
7
				a	5	u=c5]D2d:^/[3tO.iD!   { CZend_XmlRpc_Value_Exception
z =Zend_XmlRpc_Value_Double
y AZend_XmlRpc_Value_DateTime
!x EZend_XmlRpc_Value_Collection
w ?Zend_XmlRpc_Value_Boolean
!v EZend_XmlRpc_Value_BigInteger
u =Zend_XmlRpc_Value_Base64
t ;Zend_XmlRpc_Value_Array
s 1Zend_XmlRpc_Server
r ?Zend_XmlRpc_Server_System
q =Zend_XmlRpc_Server_Fault
!p EZend_XmlRpc_Server_Exception
o =Zend_XmlRpc_Server_Cache
n 5Zend_XmlRpc_Response
m ?Zend_XmlRpc_Response_Http
l 3Zend_XmlRpc_Request
k ?Zend_XmlRpc_Request_Stdin
j =Zend_XmlRpc_Request_Http
$i KZend_XmlRpc_Generator_XmlWriter
,h [Zend_XmlRpc_Generator_GeneratorAbstract
&g OZend_XmlRpc_Generator_DomDocument
f /Zend_XmlRpc_Fault
e 7Zend_XmlRpc_Exception
d 1Zend_XmlRpc_Client
#c IZend_XmlRpc_Client_ServerProxy
+b YZend_XmlRpc_Client_ServerIntrospection
+a YZend_XmlRpc_Client_IntrospectException
%` MZend_XmlRpc_Client_HttpException
&_ OZend_XmlRpc_Client_FaultException
!^ EZend_XmlRpc_Client_Exception
] /Zend_Xml_Security
\ 1Zend_Xml_Exception
&[ OZend_Wildfire_Protocol_JsonStream
!Z EZend_Wildfire_Plugin_FirePhp
.Y _Zend_Wildfire_Plugin_FirePhp_TableMessage
)X UZend_Wildfire_Plugin_FirePhp_Message
W ;Zend_Wildfire_Exception
&V OZend_Wildfire_Channel_HttpHeaders
U Zend_View
T -Zend_View_Stream
S AZend_View_Helper_UserAgent
R 5Zend_View_Helper_Url
Q AZend_View_Helper_Translate
P AZend_View_Helper_ServerUrl
)O UZend_View_Helper_RenderToPlaceholder
!N EZend_View_Helper_Placeholder
*M WZend_View_Helper_Placeholder_Registry
4L kZend_View_Helper_Placeholder_Registry_Exception
+K YZend_View_Helper_Placeholder_Container
6J oZend_View_Helper_Placeholder_Container_Standalone
5I mZend_View_Helper_Placeholder_Container_Exception
4H kZend_View_Helper_Placeholder_Container_Abstract
!G EZend_View_Helper_PartialLoop
F =Zend_View_Helper_Partial
'E QZend_View_Helper_Partial_Exception
'D QZend_View_Helper_PaginationControl
 C CZend_View_Helper_Navigation
(B SZend_View_Helper_Navigation_Sitemap
%A MZend_View_Helper_Navigation_Menu
&@ OZend_View_Helper_Navigation_Links
/? aZend_View_Helper_Navigation_HelperAbstract
,> [Zend_View_Helper_Navigation_Breadcrumbs
= ;Zend_View_Helper_Layout
< 7Zend_View_Helper_Json
"; GZend_View_Helper_InlineScript
#: IZend_View_Helper_HtmlQuicktime
9 ?Zend_View_Helper_HtmlPage
 8 CZend_View_Helper_HtmlObject
7 ?Zend_View_Helper_HtmlList
6 AZend_View_Helper_HtmlFlash
!5 EZend_View_Helper_HtmlElement
4 AZend_View_Helper_HeadTitle
3 AZend_View_Helper_HeadStyle
 2 CZend_View_Helper_HeadScript
1 ?Zend_View_Helper_HeadMeta
0 ?Zend_View_Helper_HeadLink
/ ?Zend_View_Helper_Gravatar
". GZend_View_Helper_FormTextarea
- ?Zend_View_Helper_FormText
 , CZend_View_Helper_FormSubmit
 + CZend_View_Helper_FormSelect
* AZend_View_Helper_FormReset
) AZend_View_Helper_FormRadio
"( GZend_View_Helper_FormPassword
' ?Zend_View_Helper_FormNote
'& QZend_View_Helper_FormMultiCheckbox
% AZend_View_Helper_FormLabel
$ AZend_View_Helper_FormImage
 # CZend_View_Helper_FormHidden
" ?Zend_View_Helper_FormFile
 ! CZend_View_Helper_FormErrors
!  EZend_View_Helper_FormElement
" GZend_View_Helper_FormCheckbox
  CZend_View_Helper_FormButton
 7Zend_View_Helper_Form
 ?Zend_View_Helper_Fieldset
 =Zend_View_Helper_Doctype
! EZend_View_Helper_DeclareVars
 9Zend_View_Helper_Cycle
 ?Zend_View_Helper_Currency
 =Zend_View_Helper_BaseUrl
 ;Zend_View_Helper_Action
 ?Zend_View_Helper_Abstract
 3Zend_View_Exception
 1Zend_View_Abstract
 %Zend_Version
   i  ~]C(`<nG# \:nK*


}
L
				m	@	f7d;m:hO-jG(dR3yX7a6                       d CZend_Barcode_Object_Postnetc AZend_Barcode_Object_Planet'b QZend_Barcode_Object_ObjectAbstract!a EZend_Barcode_Object_Leitcode` ?Zend_Barcode_Object_Itf14"_ GZend_Barcode_Object_Identcode"^ GZend_Barcode_Object_Exception] ?Zend_Barcode_Object_Error\ =Zend_Barcode_Object_Ean8[ =Zend_Barcode_Object_Ean5Z =Zend_Barcode_Object_Ean2Y ?Zend_Barcode_Object_Ean13X AZend_Barcode_Object_Code39*W WZend_Barcode_Object_Code25interleavedV AZend_Barcode_Object_Code25 U CZend_Barcode_Object_Code128T 9Zend_Barcode_ExceptionS Zend_AuthR ?Zend_Auth_Storage_Session$Q KZend_Auth_Storage_NonPersistent P CZend_Auth_Storage_ExceptionO -Zend_Auth_ResultN 3Zend_Auth_ExceptionM =Zend_Auth_Adapter_OpenIdL 9Zend_Auth_Adapter_LdapK AZend_Auth_Adapter_InfoCardJ 9Zend_Auth_Adapter_Http)I UZend_Auth_Adapter_Http_Resolver_File.H _Zend_Auth_Adapter_Http_Resolver_Exception G CZend_Auth_Adapter_ExceptionF =Zend_Auth_Adapter_DigestE ?Zend_Auth_Adapter_DbTableD -Zend_Application#C IZend_Application_Resource_View(B SZend_Application_Resource_UserAgent(A SZend_Application_Resource_Translate&@ OZend_Application_Resource_Session%? MZend_Application_Resource_Router/> aZend_Application_Resource_ResourceAbstract)= UZend_Application_Resource_Navigation&< OZend_Application_Resource_Multidb&; OZend_Application_Resource_Modules#: IZend_Application_Resource_Mail"9 GZend_Application_Resource_Log%8 MZend_Application_Resource_Locale%7 MZend_Application_Resource_Layout.6 _Zend_Application_Resource_Frontcontroller(5 SZend_Application_Resource_Exception#4 IZend_Application_Resource_Dojo!3 EZend_Application_Resource_Db+2 YZend_Application_Resource_Cachemanager&1 OZend_Application_Module_Bootstrap'0 QZend_Application_Module_Autoloader/ AZend_Application_Exception). UZend_Application_Bootstrap_Exception1- eZend_Application_Bootstrap_BootstrapAbstract), UZend_Application_Bootstrap_Bootstrap+ ?Zend_Amf_Value_TraitsInfo-* ]Zend_Amf_Value_Messaging_RemotingMessage*) WZend_Amf_Value_Messaging_ErrorMessage,( [Zend_Amf_Value_Messaging_CommandMessage*' WZend_Amf_Value_Messaging_AsyncMessage-& ]Zend_Amf_Value_Messaging_ArrayCollection0% cZend_Amf_Value_Messaging_AcknowledgeMessage-$ ]Zend_Amf_Value_Messaging_AbstractMessage!# EZend_Amf_Value_MessageHeader" AZend_Amf_Value_MessageBody! =Zend_Amf_Value_ByteArray  AZend_Amf_Util_BinaryStream +Zend_Amf_Server ?Zend_Amf_Server_Exception /Zend_Amf_Response 9Zend_Amf_Response_Http -Zend_Amf_Request 7Zend_Amf_Request_Http ?Zend_Amf_Parse_TypeLoader ?Zend_Amf_Parse_Serializer# IZend_Amf_Parse_Resource_Stream( SZend_Amf_Parse_Resource_MysqlResult) UZend_Amf_Parse_Resource_MysqliResult  CZend_Amf_Parse_OutputStream AZend_Amf_Parse_InputStream  CZend_Amf_Parse_Deserializer# IZend_Amf_Parse_Amf3_Serializer% MZend_Amf_Parse_Amf3_Deserializer# IZend_Amf_Parse_Amf0_Serializer% MZend_Amf_Parse_Amf0_Deserializer 1Zend_Amf_Exception 1Zend_Amf_Constants 9Zend_Amf_Auth_Abstract 
 CZend_Amf_Adobe_Introspector	 AZend_Amf_Adobe_DbInspector 3Zend_Amf_Adobe_Auth Zend_Acl 'Zend_Acl_Role 9Zend_Acl_Role_Registry% MZend_Acl_Role_Registry_Exception /Zend_Acl_Resource 1Zend_Acl_Exception /Zend_XmlRpc_Value
  =Zend_XmlRpc_Value_Struct
 =Zend_XmlRpc_Value_String
~ =Zend_XmlRpc_Value_Scalar
} 7Zend_XmlRpc_Value_Nil
| ?Zend_XmlRpc_Value_Integer
   Y  lK'd0	lEM&eH




X
;
"				P		k=l> o?
G
e; pA
i={T+                              )o UZend_Controller_Dispatcher_Interface%n MZend_Controller_Action_Interface&m OZend_Cloud_StorageService_Adapter$l KZend_Cloud_QueueService_Adapter&k OZend_Cloud_Infrastructure_Adapter,j [Zend_Cloud_DocumentService_QueryAdapter'i QZend_Cloud_DocumentService_Adapterh 5Zend_Captcha_Adapter!g EZend_Cache_Backend_Interface)f UZend_Cache_Backend_ExtendedInterface e CZend_Auth_Storage_Interface d CZend_Auth_Adapter_Interface.c _Zend_Auth_Adapter_Http_Resolver_Interface'b QZend_Application_Resource_Resource4a kZend_Application_Bootstrap_ResourceBootstrapper,` [Zend_Application_Bootstrap_Bootstrapper_ ;Zend_Acl_Role_Interface ^ CZend_Acl_Resource_Interface] ?Zend_Acl_Assert_Interface#\ IZend_Wildfire_Plugin_Interface
$[ KZend_Wildfire_Channel_Interface
Z 3Zend_View_Interface
'Y QZend_View_Helper_Navigation_Helper
X AZend_View_Helper_Interface
W ;Zend_Validate_Interface
+V YZend_Validate_Barcode_AdapterInterface
3U iZend_Tool_Project_Profile_FileParser_Interface
:T wZend_Tool_Project_Context_System_TopLevelRestrictable
5S mZend_Tool_Project_Context_System_NotOverwritable
/R aZend_Tool_Project_Context_System_Interface
(Q SZend_Tool_Project_Context_Interface
+P YZend_Tool_Framework_Registry_Interface
2O gZend_Tool_Framework_Registry_EnabledInterface
-N ]Zend_Tool_Framework_Provider_Pretendable
+M YZend_Tool_Framework_Provider_Interface
.L _Zend_Tool_Framework_Provider_Interactable
/K aZend_Tool_Framework_Provider_Initializable
;J yZend_Tool_Framework_Provider_DocblockManifestInterface
+I YZend_Tool_Framework_Metadata_Interface
.H _Zend_Tool_Framework_Metadata_Attributable
6G oZend_Tool_Framework_Manifest_ProviderManifestable
6F oZend_Tool_Framework_Manifest_MetadataManifestable
+E YZend_Tool_Framework_Manifest_Interface
+D YZend_Tool_Framework_Manifest_Indexable
4C kZend_Tool_Framework_Manifest_ActionManifestable
)B UZend_Tool_Framework_Loader_Interface
8A sZend_Tool_Framework_Client_Storage_AdapterInterface
D@ 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface
;? yZend_Tool_Framework_Client_Interactive_OutputInterface
:> wZend_Tool_Framework_Client_Interactive_InputInterface
)= UZend_Tool_Framework_Action_Interface
(< SZend_Text_Table_Decorator_Interface
; /Zend_Tag_Taggable
: 7Zend_Stdlib_Exception
&9 OZend_Soap_Wsdl_Strategy_Interface
%8 MZend_Session_Validator_Interface
'7 QZend_Session_SaveHandler_Interface
$6 KZend_Service_ShortUrl_Shortener
K5 Zend_Service_Console_Command_ParameterSource_ParameterSourceInterface
4 7Zend_Server_Interface
-3 ]Zend_Serializer_Adapter_AdapterInterface
42 kZend_Search_Lucene_Search_Highlighter_Interface
!1 EZend_Search_Lucene_Interface
30 iZend_Search_Lucene_Index_TermsStream_Interface
$/ KZend_Queue_Stomp_FrameInterface
0. cZend_Queue_Stomp_Client_ConnectionInterface
(- SZend_Queue_Adapter_AdapterInterface
, ?Zend_Pdf_Filter_Interface
&+ OZend_Pdf_ElementFactory_Interface
* ?Zend_Pdf_Canvas_Interface
,) [Zend_Paginator_ScrollingStyle_Interface
$( KZend_Paginator_AdapterAggregate
%' MZend_Paginator_Adapter_Interface
&& OZend_Oauth_Config_ConfigInterface
'% QZend_Mobile_Push_Message_Interface
$ AZend_Mobile_Push_Interface
$# KZend_Memory_Container_Interface
1" eZend_Markup_Renderer_TokenConverterInterface
'! QZend_Markup_Parser_ParserInterface
)  UZend_Mail_Storage_Writable_Interface
' QZend_Mail_Storage_Folder_Interface
 =Zend_Mail_Part_Interface
  CZend_Mail_Message_Interface
! EZend_Log_Formatter_Interface
 ?Zend_Log_Filter_Interface
 ?Zend_Log_FactoryInterface
 ?Zend_Loader_SplAutoloader
' QZend_Loader_PluginLoader_Interface
% MZend_Loader_Autoloader_Interface
   `  pL*`8fDlO+	dQ7





k
0				L	 pSa9Id<uHrJ&h<hB                            %D MZend_CodeGenerator_Php_Parameter2C gZend_CodeGenerator_Php_Parameter_DefaultValue"B GZend_CodeGenerator_Php_Method,A [Zend_CodeGenerator_Php_Member_Container+@ YZend_CodeGenerator_Php_Member_Abstract ? CZend_CodeGenerator_Php_File%> MZend_CodeGenerator_Php_Exception$= KZend_CodeGenerator_Php_Docblock(< SZend_CodeGenerator_Php_Docblock_Tag/; aZend_CodeGenerator_Php_Docblock_Tag_Return.: _Zend_CodeGenerator_Php_Docblock_Tag_Param09 cZend_CodeGenerator_Php_Docblock_Tag_License!8 EZend_CodeGenerator_Php_Class 7 CZend_CodeGenerator_Php_Body$6 KZend_CodeGenerator_Php_Abstract!5 EZend_CodeGenerator_Exception 4 CZend_CodeGenerator_Abstract&3 OZend_Cloud_StorageService_Factory(2 SZend_Cloud_StorageService_Exception31 iZend_Cloud_StorageService_Adapter_WindowsAzure)0 UZend_Cloud_StorageService_Adapter_S30/ cZend_Cloud_StorageService_Adapter_Rackspace/. aZend_Cloud_StorageService_Adapter_Nirvanix1- eZend_Cloud_StorageService_Adapter_FileSystem', QZend_Cloud_QueueService_MessageSet$+ KZend_Cloud_QueueService_Message$* KZend_Cloud_QueueService_Factory&) OZend_Cloud_QueueService_Exception.( _Zend_Cloud_QueueService_Adapter_ZendQueue1' eZend_Cloud_QueueService_Adapter_WindowsAzure(& SZend_Cloud_QueueService_Adapter_Sqs4% kZend_Cloud_QueueService_Adapter_AbstractAdapter.$ _Zend_Cloud_OperationNotAvailableException+# YZend_Cloud_Infrastructure_InstanceList'" QZend_Cloud_Infrastructure_Instance(! SZend_Cloud_Infrastructure_ImageList$  KZend_Cloud_Infrastructure_Image& OZend_Cloud_Infrastructure_Factory( SZend_Cloud_Infrastructure_Exception0 cZend_Cloud_Infrastructure_Adapter_Rackspace* WZend_Cloud_Infrastructure_Adapter_Ec26 oZend_Cloud_Infrastructure_Adapter_AbstractAdapter 5Zend_Cloud_Exception% MZend_Cloud_DocumentService_Query' QZend_Cloud_DocumentService_Factory) UZend_Cloud_DocumentService_Exception+ YZend_Cloud_DocumentService_DocumentSet( SZend_Cloud_DocumentService_Document4 kZend_Cloud_DocumentService_Adapter_WindowsAzure: wZend_Cloud_DocumentService_Adapter_WindowsAzure_Query0 cZend_Cloud_DocumentService_Adapter_SimpleDb6 oZend_Cloud_DocumentService_Adapter_SimpleDb_Query7 qZend_Cloud_DocumentService_Adapter_AbstractAdapter AZend_Cloud_AbstractFactory /Zend_Captcha_Word 9Zend_Captcha_ReCaptcha 1Zend_Captcha_Image 3Zend_Captcha_Figlet
 9Zend_Captcha_Exception	 /Zend_Captcha_Dumb /Zend_Captcha_Base !Zend_Cache 1Zend_Cache_Manager =Zend_Cache_Frontend_Page AZend_Cache_Frontend_Output! EZend_Cache_Frontend_Function =Zend_Cache_Frontend_File ?Zend_Cache_Frontend_Class   CZend_Cache_Frontend_Capture 5Zend_Cache_Exception~ +Zend_Cache_Core} 1Zend_Cache_Backend"| GZend_Cache_Backend_ZendServer({ SZend_Cache_Backend_ZendServer_ShMem'z QZend_Cache_Backend_ZendServer_Disk$y KZend_Cache_Backend_ZendPlatformx ?Zend_Cache_Backend_Xcache w CZend_Cache_Backend_WinCache!v EZend_Cache_Backend_TwoLevelsu ;Zend_Cache_Backend_Testt ?Zend_Cache_Backend_Statics ?Zend_Cache_Backend_Sqlite!r EZend_Cache_Backend_Memcached$q KZend_Cache_Backend_Libmemcachedp ;Zend_Cache_Backend_File!o EZend_Cache_Backend_BlackHolen 9Zend_Cache_Backend_Apcm %Zend_Barcodel ?Zend_Barcode_Renderer_Svg+k YZend_Barcode_Renderer_RendererAbstractj ?Zend_Barcode_Renderer_Pdf i CZend_Barcode_Renderer_Image$h KZend_Barcode_Renderer_Exceptiong =Zend_Barcode_Object_Upcef =Zend_Barcode_Object_Upca"e GZend_Barcode_Object_Royalmail   g  mT3rZA-a/|Pa.



}
P
$
				k	?	sFQ) R&^AfD,aK2b9eE#            + ;Zend_Db_Adapter_Pdo_Oci* ?Zend_Db_Adapter_Pdo_Mysql) ?Zend_Db_Adapter_Pdo_Mssql( ;Zend_Db_Adapter_Pdo_Ibm ' CZend_Db_Adapter_Pdo_Ibm_Ids & CZend_Db_Adapter_Pdo_Ibm_Db2!% EZend_Db_Adapter_Pdo_Abstract$ 9Zend_Db_Adapter_Oracle%# MZend_Db_Adapter_Oracle_Exception" 9Zend_Db_Adapter_Mysqli%! MZend_Db_Adapter_Mysqli_Exception  ?Zend_Db_Adapter_Exception 3Zend_Db_Adapter_Db2" GZend_Db_Adapter_Db2_Exception =Zend_Db_Adapter_Abstract Zend_Date 3Zend_Date_Exception 5Zend_Date_DateObject -Zend_Date_Cities 'Zend_Currency ;Zend_Currency_Exception !Zend_Crypt )Zend_Crypt_Rsa 1Zend_Crypt_Rsa_Key ?Zend_Crypt_Rsa_Key_Public AZend_Crypt_Rsa_Key_Private =Zend_Crypt_Rsa_Exception +Zend_Crypt_Math ?Zend_Crypt_Math_Exception AZend_Crypt_Math_BigInteger# IZend_Crypt_Math_BigInteger_Gmp) UZend_Crypt_Math_BigInteger_Exception& OZend_Crypt_Math_BigInteger_Bcmath
 +Zend_Crypt_Hmac	 ?Zend_Crypt_Hmac_Exception 5Zend_Crypt_Exception =Zend_Crypt_DiffieHellman' QZend_Crypt_DiffieHellman_Exception! EZend_Controller_Router_Route( SZend_Controller_Router_Route_Static' QZend_Controller_Router_Route_Regex( SZend_Controller_Router_Route_Module* WZend_Controller_Router_Route_Hostname'  QZend_Controller_Router_Route_Chain* WZend_Controller_Router_Route_Abstract#~ IZend_Controller_Router_Rewrite%} MZend_Controller_Router_Exception$| KZend_Controller_Router_Abstract*{ WZend_Controller_Response_HttpTestCase"z GZend_Controller_Response_Http'y QZend_Controller_Response_Exception!x EZend_Controller_Response_Cli&w OZend_Controller_Response_Abstract#v IZend_Controller_Request_Simple)u UZend_Controller_Request_HttpTestCase!t EZend_Controller_Request_Http&s OZend_Controller_Request_Exception&r OZend_Controller_Request_Apache404%q MZend_Controller_Request_Abstract&p OZend_Controller_Plugin_PutHandler(o SZend_Controller_Plugin_ErrorHandler"n GZend_Controller_Plugin_Broker'm QZend_Controller_Plugin_ActionStack$l KZend_Controller_Plugin_Abstractk 7Zend_Controller_Frontj ?Zend_Controller_Exception(i SZend_Controller_Dispatcher_Standard)h UZend_Controller_Dispatcher_Exception(g SZend_Controller_Dispatcher_Abstractf 9Zend_Controller_Action(e SZend_Controller_Action_HelperBroker6d oZend_Controller_Action_HelperBroker_PriorityStack/c aZend_Controller_Action_Helper_ViewRenderer&b OZend_Controller_Action_Helper_Url-a ]Zend_Controller_Action_Helper_Redirector'` QZend_Controller_Action_Helper_Json1_ eZend_Controller_Action_Helper_FlashMessenger0^ cZend_Controller_Action_Helper_ContextSwitch(] SZend_Controller_Action_Helper_Cache<\ {Zend_Controller_Action_Helper_AutoCompleteScriptaculous3[ iZend_Controller_Action_Helper_AutoCompleteDojo8Z sZend_Controller_Action_Helper_AutoComplete_Abstract.Y _Zend_Controller_Action_Helper_AjaxContext.X _Zend_Controller_Action_Helper_ActionStack+W YZend_Controller_Action_Helper_Abstract%V MZend_Controller_Action_ExceptionU 3Zend_Console_Getopt"T GZend_Console_Getopt_ExceptionS #Zend_ConfigR -Zend_Config_YamlQ +Zend_Config_XmlP 1Zend_Config_WriterO ;Zend_Config_Writer_YamlN 9Zend_Config_Writer_XmlM ;Zend_Config_Writer_JsonL 9Zend_Config_Writer_Ini$K KZend_Config_Writer_FileAbstractJ =Zend_Config_Writer_ArrayI -Zend_Config_JsonH +Zend_Config_IniG 7Zend_Config_Exception$F KZend_CodeGenerator_Php_Property1E eZend_CodeGenerator_Php_Property_DefaultValue   f  sYD! hJ&lJ,fCtWA1



k
:
				T	$\-^.zL&O!m?tJ Z,	T*      ! EZend_Dojo_View_Helper_Slider) UZend_Dojo_View_Helper_SimpleTextarea& OZend_Dojo_View_Helper_RadioButton* WZend_Dojo_View_Helper_PasswordTextBox( SZend_Dojo_View_Helper_NumberTextBox( SZend_Dojo_View_Helper_NumberSpinner+ YZend_Dojo_View_Helper_HorizontalSlider
 AZend_Dojo_View_Helper_Form*	 WZend_Dojo_View_Helper_FilteringSelect! EZend_Dojo_View_Helper_Editor AZend_Dojo_View_Helper_Dojo) UZend_Dojo_View_Helper_Dojo_Container) UZend_Dojo_View_Helper_DijitContainer  CZend_Dojo_View_Helper_Dijit& OZend_Dojo_View_Helper_DateTextBox& OZend_Dojo_View_Helper_CustomDijit* WZend_Dojo_View_Helper_CurrencyTextBox&  OZend_Dojo_View_Helper_ContentPane# IZend_Dojo_View_Helper_ComboBox#~ IZend_Dojo_View_Helper_CheckBox!} EZend_Dojo_View_Helper_Button*| WZend_Dojo_View_Helper_BorderContainer({ SZend_Dojo_View_Helper_AccordionPane-z ]Zend_Dojo_View_Helper_AccordionContainery =Zend_Dojo_View_Exceptionx )Zend_Dojo_Formw 9Zend_Dojo_Form_SubForm*v WZend_Dojo_Form_Element_VerticalSlider-u ]Zend_Dojo_Form_Element_ValidationTextBox't QZend_Dojo_Form_Element_TimeTextBox#s IZend_Dojo_Form_Element_TextBox$r KZend_Dojo_Form_Element_Textarea(q SZend_Dojo_Form_Element_SubmitButton"p GZend_Dojo_Form_Element_Slider*o WZend_Dojo_Form_Element_SimpleTextarea'n QZend_Dojo_Form_Element_RadioButton+m YZend_Dojo_Form_Element_PasswordTextBox)l UZend_Dojo_Form_Element_NumberTextBox)k UZend_Dojo_Form_Element_NumberSpinner,j [Zend_Dojo_Form_Element_HorizontalSlider+i YZend_Dojo_Form_Element_FilteringSelect"h GZend_Dojo_Form_Element_Editor&g OZend_Dojo_Form_Element_DijitMulti!f EZend_Dojo_Form_Element_Dijit'e QZend_Dojo_Form_Element_DateTextBox+d YZend_Dojo_Form_Element_CurrencyTextBox$c KZend_Dojo_Form_Element_ComboBox$b KZend_Dojo_Form_Element_CheckBox"a GZend_Dojo_Form_Element_Button ` CZend_Dojo_Form_DisplayGroup*_ WZend_Dojo_Form_Decorator_TabContainer,^ [Zend_Dojo_Form_Decorator_StackContainer,] [Zend_Dojo_Form_Decorator_SplitContainer'\ QZend_Dojo_Form_Decorator_DijitForm*[ WZend_Dojo_Form_Decorator_DijitElement,Z [Zend_Dojo_Form_Decorator_DijitContainer)Y UZend_Dojo_Form_Decorator_ContentPane-X ]Zend_Dojo_Form_Decorator_BorderContainer+W YZend_Dojo_Form_Decorator_AccordionPane0V cZend_Dojo_Form_Decorator_AccordionContainerU 3Zend_Dojo_ExceptionT )Zend_Dojo_DataS 5Zend_Dojo_BuildLayerR !Zend_DebugQ Zend_DbP 'Zend_Db_TableO 5Zend_Db_Table_Select#N IZend_Db_Table_Select_ExceptionM 5Zend_Db_Table_Rowset#L IZend_Db_Table_Rowset_Exception"K GZend_Db_Table_Rowset_AbstractJ /Zend_Db_Table_Row I CZend_Db_Table_Row_ExceptionH AZend_Db_Table_Row_AbstractG ;Zend_Db_Table_ExceptionF =Zend_Db_Table_DefinitionE 9Zend_Db_Table_AbstractD /Zend_Db_StatementC =Zend_Db_Statement_Sqlsrv'B QZend_Db_Statement_Sqlsrv_ExceptionA 7Zend_Db_Statement_Pdo@ ?Zend_Db_Statement_Pdo_Oci? ?Zend_Db_Statement_Pdo_Ibm> =Zend_Db_Statement_Oracle'= QZend_Db_Statement_Oracle_Exception< =Zend_Db_Statement_Mysqli'; QZend_Db_Statement_Mysqli_Exception : CZend_Db_Statement_Exception9 7Zend_Db_Statement_Db2$8 KZend_Db_Statement_Db2_Exception7 )Zend_Db_Select6 =Zend_Db_Select_Exception5 -Zend_Db_Profiler4 9Zend_Db_Profiler_Query3 =Zend_Db_Profiler_Firebug2 AZend_Db_Profiler_Exception1 %Zend_Db_Expr0 /Zend_Db_Exception/ 9Zend_Db_Adapter_Sqlsrv%. MZend_Db_Adapter_Sqlsrv_Exception- AZend_Db_Adapter_Pdo_Sqlite, ?Zend_Db_Adapter_Pdo_Pgsql   \  {P)|jO.uEZC(jP/




U
"				j	K	 tQ*e-e4q:kU4k.Z"z:                                                  m 7Zend_Feed_Writer_Feed'l QZend_Feed_Writer_Feed_FeedAbstract<k {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry8j sZend_Feed_Writer_Extension_Threading_Renderer_Entry4i kZend_Feed_Writer_Extension_Slash_Renderer_Entry0h cZend_Feed_Writer_Extension_RendererAbstract4g kZend_Feed_Writer_Extension_ITunes_Renderer_Feed5f mZend_Feed_Writer_Extension_ITunes_Renderer_Entry+e YZend_Feed_Writer_Extension_ITunes_Feed,d [Zend_Feed_Writer_Extension_ITunes_Entry8c sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed9b uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry6a oZend_Feed_Writer_Extension_Content_Renderer_Entry2` gZend_Feed_Writer_Extension_Atom_Renderer_Feed6_ oZend_Feed_Writer_Exception_InvalidMethodException^ 9Zend_Feed_Writer_Entry] =Zend_Feed_Writer_Deleted\ 'Zend_Feed_Rss[ -Zend_Feed_ReaderZ =Zend_Feed_Reader_FeedSet"Y GZend_Feed_Reader_FeedAbstractX ?Zend_Feed_Reader_Feed_RssW AZend_Feed_Reader_Feed_Atom&V OZend_Feed_Reader_Feed_Atom_Source3U iZend_Feed_Reader_Extension_WellFormedWeb_Entry,T [Zend_Feed_Reader_Extension_Thread_Entry0S cZend_Feed_Reader_Extension_Syndication_Feed+R YZend_Feed_Reader_Extension_Slash_Entry,Q [Zend_Feed_Reader_Extension_Podcast_Feed-P ]Zend_Feed_Reader_Extension_Podcast_Entry,O [Zend_Feed_Reader_Extension_FeedAbstract-N ]Zend_Feed_Reader_Extension_EntryAbstract/M aZend_Feed_Reader_Extension_DublinCore_Feed0L cZend_Feed_Reader_Extension_DublinCore_Entry4K kZend_Feed_Reader_Extension_CreativeCommons_Feed5J mZend_Feed_Reader_Extension_CreativeCommons_Entry-I ]Zend_Feed_Reader_Extension_Content_Entry)H UZend_Feed_Reader_Extension_Atom_Feed*G WZend_Feed_Reader_Extension_Atom_Entry#F IZend_Feed_Reader_EntryAbstractE AZend_Feed_Reader_Entry_Rss D CZend_Feed_Reader_Entry_Atom C CZend_Feed_Reader_Collection3B iZend_Feed_Reader_Collection_CollectionAbstract)A UZend_Feed_Reader_Collection_Category'@ QZend_Feed_Reader_Collection_Author? 9Zend_Feed_Pubsubhubbub&> OZend_Feed_Pubsubhubbub_Subscriber/= aZend_Feed_Pubsubhubbub_Subscriber_Callback%< MZend_Feed_Pubsubhubbub_Publisher.; _Zend_Feed_Pubsubhubbub_Model_Subscription/: aZend_Feed_Pubsubhubbub_Model_ModelAbstract(9 SZend_Feed_Pubsubhubbub_HttpResponse%8 MZend_Feed_Pubsubhubbub_Exception,7 [Zend_Feed_Pubsubhubbub_CallbackAbstract6 3Zend_Feed_Exception5 3Zend_Feed_Entry_Rss4 5Zend_Feed_Entry_Atom3 =Zend_Feed_Entry_Abstract2 /Zend_Feed_Element1 /Zend_Feed_Builder0 =Zend_Feed_Builder_Header$/ KZend_Feed_Builder_Header_Itunes . CZend_Feed_Builder_Exception- ;Zend_Feed_Builder_Entry, )Zend_Feed_Atom+ 1Zend_Feed_Abstract* )Zend_Exception)) UZend_EventManager_StaticEventManager)( UZend_EventManager_SharedEventManager)' UZend_EventManager_ResponseCollection& SplStack)% UZend_EventManager_GlobalEventManager"$ GZend_EventManager_FilterChain,# [Zend_EventManager_Filter_FilterIterator9" uZend_EventManager_Exception_InvalidArgumentException#! IZend_EventManager_EventManager  ;Zend_EventManager_Event )Zend_Dom_Query 7Zend_Dom_Query_Result =Zend_Dom_Query_Css2Xpath 1Zend_Dom_Exception Zend_Dojo) UZend_Dojo_View_Helper_VerticalSlider, [Zend_Dojo_View_Helper_ValidationTextBox& OZend_Dojo_View_Helper_TimeTextBox" GZend_Dojo_View_Helper_TextBox# IZend_Dojo_View_Helper_Textarea' QZend_Dojo_View_Helper_TabContainer' QZend_Dojo_View_Helper_SubmitButton) UZend_Dojo_View_Helper_StackContainer) UZend_Dojo_View_Helper_SplitContainer   l  r9|\C1z`F)`?rO+




l
I
(

					k	K	.	b4]/P<wO'wN'oH!xY:lI)	         Y =Zend_Form_Element_SelectX ;Zend_Form_Element_ResetW ;Zend_Form_Element_RadioV AZend_Form_Element_PasswordU 9Zend_Form_Element_Note"T GZend_Form_Element_Multiselect$S KZend_Form_Element_MultiCheckboxR ;Zend_Form_Element_MultiQ ;Zend_Form_Element_ImageP =Zend_Form_Element_HiddenO 9Zend_Form_Element_HashN 9Zend_Form_Element_File M CZend_Form_Element_ExceptionL AZend_Form_Element_CheckboxK ?Zend_Form_Element_CaptchaJ =Zend_Form_Element_ButtonI 9Zend_Form_DisplayGroup#H IZend_Form_Decorator_ViewScript#G IZend_Form_Decorator_ViewHelper F CZend_Form_Decorator_Tooltip(E SZend_Form_Decorator_PrepareElementsD ?Zend_Form_Decorator_LabelC ?Zend_Form_Decorator_Image B CZend_Form_Decorator_HtmlTag#A IZend_Form_Decorator_FormErrors%@ MZend_Form_Decorator_FormElements? =Zend_Form_Decorator_Form> =Zend_Form_Decorator_File!= EZend_Form_Decorator_Fieldset"< GZend_Form_Decorator_Exception; AZend_Form_Decorator_Errors$: KZend_Form_Decorator_DtDdWrapper$9 KZend_Form_Decorator_Description 8 CZend_Form_Decorator_Captcha%7 MZend_Form_Decorator_Captcha_Word*6 WZend_Form_Decorator_Captcha_ReCaptcha!5 EZend_Form_Decorator_Callback!4 EZend_Form_Decorator_Abstract3 #Zend_Filter+2 YZend_Filter_Word_UnderscoreToSeparator&1 OZend_Filter_Word_UnderscoreToDash+0 YZend_Filter_Word_UnderscoreToCamelCase*/ WZend_Filter_Word_SeparatorToSeparator%. MZend_Filter_Word_SeparatorToDash*- WZend_Filter_Word_SeparatorToCamelCase(, SZend_Filter_Word_Separator_Abstract&+ OZend_Filter_Word_DashToUnderscore%* MZend_Filter_Word_DashToSeparator%) MZend_Filter_Word_DashToCamelCase+( YZend_Filter_Word_CamelCaseToUnderscore*' WZend_Filter_Word_CamelCaseToSeparator%& MZend_Filter_Word_CamelCaseToDash% 7Zend_Filter_StripTags$ ?Zend_Filter_StripNewlines# 9Zend_Filter_StringTrim" ?Zend_Filter_StringToUpper! ?Zend_Filter_StringToLower  5Zend_Filter_RealPath ;Zend_Filter_PregReplace -Zend_Filter_Null& OZend_Filter_NormalizedToLocalized& OZend_Filter_LocalizedToNormalized +Zend_Filter_Int /Zend_Filter_Input 7Zend_Filter_Inflector =Zend_Filter_HtmlEntities AZend_Filter_File_UpperCase ;Zend_Filter_File_Rename AZend_Filter_File_LowerCase =Zend_Filter_File_Encrypt =Zend_Filter_File_Decrypt 7Zend_Filter_Exception 3Zend_Filter_Encrypt  CZend_Filter_Encrypt_Openssl AZend_Filter_Encrypt_Mcrypt +Zend_Filter_Dir 1Zend_Filter_Digits 3Zend_Filter_Decrypt 9Zend_Filter_Decompress
 5Zend_Filter_Compress	 =Zend_Filter_Compress_Zip =Zend_Filter_Compress_Tar =Zend_Filter_Compress_Rar =Zend_Filter_Compress_Lzf ;Zend_Filter_Compress_Gz* WZend_Filter_Compress_CompressAbstract =Zend_Filter_Compress_Bz2 5Zend_Filter_Callback 3Zend_Filter_Boolean  5Zend_Filter_BaseName /Zend_Filter_Alpha~ /Zend_Filter_Alnum} 1Zend_File_Transfer!| EZend_File_Transfer_Exception${ KZend_File_Transfer_Adapter_Http(z SZend_File_Transfer_Adapter_Abstracty AZend_File_ClassFileLocatorx Zend_Feedw -Zend_Feed_Writerv ;Zend_Feed_Writer_Source/u aZend_Feed_Writer_Renderer_RendererAbstract't QZend_Feed_Writer_Renderer_Feed_Rss(s SZend_Feed_Writer_Renderer_Feed_Atom/r aZend_Feed_Writer_Renderer_Feed_Atom_Source5q mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract(p SZend_Feed_Writer_Renderer_Entry_Rss)o UZend_Feed_Writer_Renderer_Entry_Atom1n eZend_Feed_Writer_Renderer_Entry_Atom_Deleted   b  }cG-wQ*yJ-gJ)X1	



h
D
					W	/	fA `=zcHg6
Q,}V$qBZ>                                          &; OZend_Gdata_Docs_DocumentListEntry: 9Zend_Gdata_ClientLogin9 3Zend_Gdata_Calendar!8 EZend_Gdata_Calendar_ListFeed"7 GZend_Gdata_Calendar_ListEntry-6 ]Zend_Gdata_Calendar_Extension_WebContent+5 YZend_Gdata_Calendar_Extension_Timezone94 uZend_Gdata_Calendar_Extension_SendEventNotifications+3 YZend_Gdata_Calendar_Extension_Selected+2 YZend_Gdata_Calendar_Extension_QuickAdd'1 QZend_Gdata_Calendar_Extension_Link)0 UZend_Gdata_Calendar_Extension_Hidden(/ SZend_Gdata_Calendar_Extension_Color.. _Zend_Gdata_Calendar_Extension_AccessLevel#- IZend_Gdata_Calendar_EventQuery", GZend_Gdata_Calendar_EventFeed#+ IZend_Gdata_Calendar_EventEntry* -Zend_Gdata_Books!) EZend_Gdata_Books_VolumeQuery ( CZend_Gdata_Books_VolumeFeed!' EZend_Gdata_Books_VolumeEntry+& YZend_Gdata_Books_Extension_Viewability-% ]Zend_Gdata_Books_Extension_ThumbnailLink&$ OZend_Gdata_Books_Extension_Review+# YZend_Gdata_Books_Extension_PreviewLink(" SZend_Gdata_Books_Extension_InfoLink-! ]Zend_Gdata_Books_Extension_Embeddability)  UZend_Gdata_Books_Extension_BooksLink- ]Zend_Gdata_Books_Extension_BooksCategory. _Zend_Gdata_Books_Extension_AnnotationLink$ KZend_Gdata_Books_CollectionFeed% MZend_Gdata_Books_CollectionEntry 1Zend_Gdata_AuthSub )Zend_Gdata_App$ KZend_Gdata_App_VersionException 3Zend_Gdata_App_Util# IZend_Gdata_App_MediaFileSource ?Zend_Gdata_App_MediaEntry2 gZend_Gdata_App_LoggingHttpClientAdapterSocket AZend_Gdata_App_IOException, [Zend_Gdata_App_InvalidArgumentException! EZend_Gdata_App_HttpException$ KZend_Gdata_App_FeedSourceParent# IZend_Gdata_App_FeedEntryParent 3Zend_Gdata_App_Feed =Zend_Gdata_App_Extension! EZend_Gdata_App_Extension_Uri% MZend_Gdata_App_Extension_Updated# IZend_Gdata_App_Extension_Title"
 GZend_Gdata_App_Extension_Text%	 MZend_Gdata_App_Extension_Summary& OZend_Gdata_App_Extension_Subtitle$ KZend_Gdata_App_Extension_Source$ KZend_Gdata_App_Extension_Rights' QZend_Gdata_App_Extension_Published$ KZend_Gdata_App_Extension_Person" GZend_Gdata_App_Extension_Name" GZend_Gdata_App_Extension_Logo" GZend_Gdata_App_Extension_Link   CZend_Gdata_App_Extension_Id" GZend_Gdata_App_Extension_Icon'~ QZend_Gdata_App_Extension_Generator#} IZend_Gdata_App_Extension_Email%| MZend_Gdata_App_Extension_Element${ KZend_Gdata_App_Extension_Edited#z IZend_Gdata_App_Extension_Draft%y MZend_Gdata_App_Extension_Control)x UZend_Gdata_App_Extension_Contributor%w MZend_Gdata_App_Extension_Content&v OZend_Gdata_App_Extension_Category$u KZend_Gdata_App_Extension_Authort =Zend_Gdata_App_Exceptions 5Zend_Gdata_App_Entry,r [Zend_Gdata_App_CaptchaRequiredException#q IZend_Gdata_App_BaseMediaSourcep 3Zend_Gdata_App_Base*o WZend_Gdata_App_BadMethodCallException!n EZend_Gdata_App_AuthExceptionm 5Zend_Gdata_Analytics+l YZend_Gdata_Analytics_Extension_TableId,k [Zend_Gdata_Analytics_Extension_Property*j WZend_Gdata_Analytics_Extension_Metrici ?Zend_Gdata_Analytics_Goal-h ]Zend_Gdata_Analytics_Extension_Dimension#g IZend_Gdata_Analytics_DataQuery"f GZend_Gdata_Analytics_DataFeed#e IZend_Gdata_Analytics_DataEntry&d OZend_Gdata_Analytics_AccountQuery%c MZend_Gdata_Analytics_AccountFeed&b OZend_Gdata_Analytics_AccountEntrya Zend_Form` /Zend_Form_SubForm_ 3Zend_Form_Exception^ /Zend_Form_Element] ;Zend_Form_Element_Xhtml\ AZend_Form_Element_Textarea[ 9Zend_Form_Element_TextZ =Zend_Form_Element_Submit   d  qD}Ki>e?mA



s
M
				d	<	qN-P zR&fA`=hO0yZ4\4          $ KZend_Gdata_Health_Extension_Ccr )Zend_Gdata_Geo 3Zend_Gdata_Geo_Feed$ KZend_Gdata_Geo_Extension_GmlPos& OZend_Gdata_Geo_Extension_GmlPoint) UZend_Gdata_Geo_Extension_GeoRssWhere 5Zend_Gdata_Geo_Entry -Zend_Gdata_Gbase" GZend_Gdata_Gbase_SnippetQuery! EZend_Gdata_Gbase_SnippetFeed" GZend_Gdata_Gbase_SnippetEntry 9Zend_Gdata_Gbase_Query AZend_Gdata_Gbase_ItemQuery ?Zend_Gdata_Gbase_ItemFeed AZend_Gdata_Gbase_ItemEntry 7Zend_Gdata_Gbase_Feed- ]Zend_Gdata_Gbase_Extension_BaseAttribute 9Zend_Gdata_Gbase_Entry -Zend_Gdata_Gapps AZend_Gdata_Gapps_UserQuery ?Zend_Gdata_Gapps_UserFeed
 AZend_Gdata_Gapps_UserEntry&	 OZend_Gdata_Gapps_ServiceException 9Zend_Gdata_Gapps_Query  CZend_Gdata_Gapps_OwnerQuery AZend_Gdata_Gapps_OwnerFeed  CZend_Gdata_Gapps_OwnerEntry# IZend_Gdata_Gapps_NicknameQuery" GZend_Gdata_Gapps_NicknameFeed# IZend_Gdata_Gapps_NicknameEntry! EZend_Gdata_Gapps_MemberQuery   CZend_Gdata_Gapps_MemberFeed! EZend_Gdata_Gapps_MemberEntry ~ CZend_Gdata_Gapps_GroupQuery} AZend_Gdata_Gapps_GroupFeed | CZend_Gdata_Gapps_GroupEntry%{ MZend_Gdata_Gapps_Extension_Quota(z SZend_Gdata_Gapps_Extension_Property(y SZend_Gdata_Gapps_Extension_Nickname$x KZend_Gdata_Gapps_Extension_Name%w MZend_Gdata_Gapps_Extension_Login)v UZend_Gdata_Gapps_Extension_EmailListu 9Zend_Gdata_Gapps_Error-t ]Zend_Gdata_Gapps_EmailListRecipientQuery,s [Zend_Gdata_Gapps_EmailListRecipientFeed-r ]Zend_Gdata_Gapps_EmailListRecipientEntry$q KZend_Gdata_Gapps_EmailListQuery#p IZend_Gdata_Gapps_EmailListFeed$o KZend_Gdata_Gapps_EmailListEntryn +Zend_Gdata_Feedm 5Zend_Gdata_Extensionl =Zend_Gdata_Extension_Whok AZend_Gdata_Extension_Wherej ?Zend_Gdata_Extension_When$i KZend_Gdata_Extension_Visibility&h OZend_Gdata_Extension_Transparency"g GZend_Gdata_Extension_Reminder-f ]Zend_Gdata_Extension_RecurrenceException$e KZend_Gdata_Extension_Recurrence d CZend_Gdata_Extension_Rating'c QZend_Gdata_Extension_OriginalEvent0b cZend_Gdata_Extension_OpenSearchTotalResults.a _Zend_Gdata_Extension_OpenSearchStartIndex0` cZend_Gdata_Extension_OpenSearchItemsPerPage"_ GZend_Gdata_Extension_FeedLink*^ WZend_Gdata_Extension_ExtendedProperty%] MZend_Gdata_Extension_EventStatus#\ IZend_Gdata_Extension_EntryLink"[ GZend_Gdata_Extension_Comments&Z OZend_Gdata_Extension_AttendeeType(Y SZend_Gdata_Extension_AttendeeStatusX +Zend_Gdata_ExifW 5Zend_Gdata_Exif_Feed#V IZend_Gdata_Exif_Extension_Time#U IZend_Gdata_Exif_Extension_Tags$T KZend_Gdata_Exif_Extension_Model#S IZend_Gdata_Exif_Extension_Make"R GZend_Gdata_Exif_Extension_Iso,Q [Zend_Gdata_Exif_Extension_ImageUniqueId$P KZend_Gdata_Exif_Extension_FStop*O WZend_Gdata_Exif_Extension_FocalLength$N KZend_Gdata_Exif_Extension_Flash'M QZend_Gdata_Exif_Extension_Exposure'L QZend_Gdata_Exif_Extension_DistanceK 7Zend_Gdata_Exif_EntryJ -Zend_Gdata_EntryI 7Zend_Gdata_DublinCore*H WZend_Gdata_DublinCore_Extension_Title,G [Zend_Gdata_DublinCore_Extension_Subject+F YZend_Gdata_DublinCore_Extension_Rights.E _Zend_Gdata_DublinCore_Extension_Publisher-D ]Zend_Gdata_DublinCore_Extension_Language/C aZend_Gdata_DublinCore_Extension_Identifier+B YZend_Gdata_DublinCore_Extension_Format0A cZend_Gdata_DublinCore_Extension_Description)@ UZend_Gdata_DublinCore_Extension_Date,? [Zend_Gdata_DublinCore_Extension_Creator> +Zend_Gdata_Docs= 7Zend_Gdata_Docs_Query%< MZend_Gdata_Docs_DocumentListFeed   \  ^>$i8sEU(nL0



p
D
				W	,	yL].|S'dAyP&e2T%^7                                         #{ IZend_Gdata_YouTube_ContactFeed$z KZend_Gdata_YouTube_ContactEntry#y IZend_Gdata_YouTube_CommentFeed$x KZend_Gdata_YouTube_CommentEntry$w KZend_Gdata_YouTube_ActivityFeed%v MZend_Gdata_YouTube_ActivityEntryu ;Zend_Gdata_Spreadsheets*t WZend_Gdata_Spreadsheets_WorksheetFeed+s YZend_Gdata_Spreadsheets_WorksheetEntry,r [Zend_Gdata_Spreadsheets_SpreadsheetFeed-q ]Zend_Gdata_Spreadsheets_SpreadsheetEntry&p OZend_Gdata_Spreadsheets_ListQuery%o MZend_Gdata_Spreadsheets_ListFeed&n OZend_Gdata_Spreadsheets_ListEntry/m aZend_Gdata_Spreadsheets_Extension_RowCount-l ]Zend_Gdata_Spreadsheets_Extension_Custom/k aZend_Gdata_Spreadsheets_Extension_ColCount+j YZend_Gdata_Spreadsheets_Extension_Cell*i WZend_Gdata_Spreadsheets_DocumentQuery&h OZend_Gdata_Spreadsheets_CellQuery%g MZend_Gdata_Spreadsheets_CellFeed&f OZend_Gdata_Spreadsheets_CellEntrye -Zend_Gdata_Queryd /Zend_Gdata_Photos c CZend_Gdata_Photos_UserQueryb AZend_Gdata_Photos_UserFeed a CZend_Gdata_Photos_UserEntry` AZend_Gdata_Photos_TagEntry!_ EZend_Gdata_Photos_PhotoQuery ^ CZend_Gdata_Photos_PhotoFeed!] EZend_Gdata_Photos_PhotoEntry&\ OZend_Gdata_Photos_Extension_Width'[ QZend_Gdata_Photos_Extension_Weight(Z SZend_Gdata_Photos_Extension_Version%Y MZend_Gdata_Photos_Extension_User*X WZend_Gdata_Photos_Extension_Timestamp*W WZend_Gdata_Photos_Extension_Thumbnail%V MZend_Gdata_Photos_Extension_Size)U UZend_Gdata_Photos_Extension_Rotation+T YZend_Gdata_Photos_Extension_QuotaLimit-S ]Zend_Gdata_Photos_Extension_QuotaCurrent)R UZend_Gdata_Photos_Extension_Position(Q SZend_Gdata_Photos_Extension_PhotoId3P iZend_Gdata_Photos_Extension_NumPhotosRemaining*O WZend_Gdata_Photos_Extension_NumPhotos)N UZend_Gdata_Photos_Extension_Nickname%M MZend_Gdata_Photos_Extension_Name2L gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum)K UZend_Gdata_Photos_Extension_Location#J IZend_Gdata_Photos_Extension_Id'I QZend_Gdata_Photos_Extension_Height2H gZend_Gdata_Photos_Extension_CommentingEnabled-G ]Zend_Gdata_Photos_Extension_CommentCount'F QZend_Gdata_Photos_Extension_Client)E UZend_Gdata_Photos_Extension_Checksum*D WZend_Gdata_Photos_Extension_BytesUsed(C SZend_Gdata_Photos_Extension_AlbumId'B QZend_Gdata_Photos_Extension_Access#A IZend_Gdata_Photos_CommentEntry!@ EZend_Gdata_Photos_AlbumQuery ? CZend_Gdata_Photos_AlbumFeed!> EZend_Gdata_Photos_AlbumEntry= 3Zend_Gdata_MimeFile< ?Zend_Gdata_MimeBodyString; AZend_Gdata_MediaMimeStream: -Zend_Gdata_Media9 7Zend_Gdata_Media_Feed*8 WZend_Gdata_Media_Extension_MediaTitle.7 _Zend_Gdata_Media_Extension_MediaThumbnail)6 UZend_Gdata_Media_Extension_MediaText05 cZend_Gdata_Media_Extension_MediaRestriction+4 YZend_Gdata_Media_Extension_MediaRating+3 YZend_Gdata_Media_Extension_MediaPlayer-2 ]Zend_Gdata_Media_Extension_MediaKeywords)1 UZend_Gdata_Media_Extension_MediaHash*0 WZend_Gdata_Media_Extension_MediaGroup0/ cZend_Gdata_Media_Extension_MediaDescription+. YZend_Gdata_Media_Extension_MediaCredit.- _Zend_Gdata_Media_Extension_MediaCopyright,, [Zend_Gdata_Media_Extension_MediaContent-+ ]Zend_Gdata_Media_Extension_MediaCategory* 9Zend_Gdata_Media_Entry) AZend_Gdata_Kind_EventEntry( 7Zend_Gdata_HttpClient*' WZend_Gdata_HttpAdapterStreamingSocket)& UZend_Gdata_HttpAdapterStreamingProxy% /Zend_Gdata_Health$ ;Zend_Gdata_Health_Query&# OZend_Gdata_Health_ProfileListFeed'" QZend_Gdata_Health_ProfileListEntry"! GZend_Gdata_Health_ProfileFeed#  IZend_Gdata_Health_ProfileEntry   ]  R%h<[)k@R%



j
9
				[	-a4T(c8nR6f;g1qN*[:                  "X GZend_InfoCard_Adapter_DefaultW 3Zend_Http_UserAgent"V GZend_Http_UserAgent_ValidatorU =Zend_Http_UserAgent_Text(T SZend_Http_UserAgent_Storage_Session.S _Zend_Http_UserAgent_Storage_NonPersistent*R WZend_Http_UserAgent_Storage_ExceptionQ =Zend_Http_UserAgent_SpamP ?Zend_Http_UserAgent_Probe O CZend_Http_UserAgent_OfflineN AZend_Http_UserAgent_MobileM =Zend_Http_UserAgent_Feed+L YZend_Http_UserAgent_Features_Exception3K iZend_Http_UserAgent_Features_Adapter_TeraWurfl5J mZend_Http_UserAgent_Features_Adapter_DeviceAtlas2I gZend_Http_UserAgent_Features_Adapter_Browscap"H GZend_Http_UserAgent_ExceptionG ?Zend_Http_UserAgent_Email F CZend_Http_UserAgent_Desktop E CZend_Http_UserAgent_Console D CZend_Http_UserAgent_CheckerC ;Zend_Http_UserAgent_Bot'B QZend_Http_UserAgent_AbstractDeviceA 1Zend_Http_Response@ ?Zend_Http_Response_Stream? AZend_Http_Header_SetCookie0> cZend_Http_Header_Exception_RuntimeException8= sZend_Http_Header_Exception_InvalidArgumentException< 3Zend_Http_Exception; 3Zend_Http_CookieJar: -Zend_Http_Cookie9 -Zend_Http_Client8 AZend_Http_Client_Exception"7 GZend_Http_Client_Adapter_Test$6 KZend_Http_Client_Adapter_Socket#5 IZend_Http_Client_Adapter_Proxy'4 QZend_Http_Client_Adapter_Exception"3 GZend_Http_Client_Adapter_Curl2 !Zend_Gdata1 1Zend_Gdata_YouTube"0 GZend_Gdata_YouTube_VideoQuery!/ EZend_Gdata_YouTube_VideoFeed". GZend_Gdata_YouTube_VideoEntry(- SZend_Gdata_YouTube_UserProfileEntry(, SZend_Gdata_YouTube_SubscriptionFeed)+ UZend_Gdata_YouTube_SubscriptionEntry)* UZend_Gdata_YouTube_PlaylistVideoFeed*) WZend_Gdata_YouTube_PlaylistVideoEntry(( SZend_Gdata_YouTube_PlaylistListFeed)' UZend_Gdata_YouTube_PlaylistListEntry"& GZend_Gdata_YouTube_MediaEntry!% EZend_Gdata_YouTube_InboxFeed"$ GZend_Gdata_YouTube_InboxEntry)# UZend_Gdata_YouTube_Extension_VideoId*" WZend_Gdata_YouTube_Extension_Username*! WZend_Gdata_YouTube_Extension_Uploaded'  QZend_Gdata_YouTube_Extension_Token( SZend_Gdata_YouTube_Extension_Status, [Zend_Gdata_YouTube_Extension_Statistics' QZend_Gdata_YouTube_Extension_State( SZend_Gdata_YouTube_Extension_School- ]Zend_Gdata_YouTube_Extension_ReleaseDate. _Zend_Gdata_YouTube_Extension_Relationship* WZend_Gdata_YouTube_Extension_Recorded& OZend_Gdata_YouTube_Extension_Racy- ]Zend_Gdata_YouTube_Extension_QueryString) UZend_Gdata_YouTube_Extension_Private* WZend_Gdata_YouTube_Extension_Position/ aZend_Gdata_YouTube_Extension_PlaylistTitle, [Zend_Gdata_YouTube_Extension_PlaylistId, [Zend_Gdata_YouTube_Extension_Occupation) UZend_Gdata_YouTube_Extension_NoEmbed' QZend_Gdata_YouTube_Extension_Music( SZend_Gdata_YouTube_Extension_Movies- ]Zend_Gdata_YouTube_Extension_MediaRating, [Zend_Gdata_YouTube_Extension_MediaGroup- ]Zend_Gdata_YouTube_Extension_MediaCredit. _Zend_Gdata_YouTube_Extension_MediaContent*
 WZend_Gdata_YouTube_Extension_Location&	 OZend_Gdata_YouTube_Extension_Link* WZend_Gdata_YouTube_Extension_LastName* WZend_Gdata_YouTube_Extension_Hometown) UZend_Gdata_YouTube_Extension_Hobbies( SZend_Gdata_YouTube_Extension_Gender+ YZend_Gdata_YouTube_Extension_FirstName* WZend_Gdata_YouTube_Extension_Duration- ]Zend_Gdata_YouTube_Extension_Description+ YZend_Gdata_YouTube_Extension_CountHint)  UZend_Gdata_YouTube_Extension_Control) UZend_Gdata_YouTube_Extension_Company'~ QZend_Gdata_YouTube_Extension_Books%} MZend_Gdata_YouTube_Extension_Age)| UZend_Gdata_YouTube_Extension_AboutMe   j  RnE%V.dBf9





h
I
*
				w	R	5		
w[-{^;kK#a3e2}W0hT/lQ0                    B =Zend_Log_Filter_PriorityA ;Zend_Log_Filter_Message@ =Zend_Log_Filter_Abstract? 1Zend_Log_Exception> #Zend_Locale= -Zend_Locale_Math< =Zend_Locale_Math_PhpMath; AZend_Locale_Math_Exception: 1Zend_Locale_Format9 7Zend_Locale_Exception8 -Zend_Locale_Data!7 EZend_Locale_Data_Translation6 #Zend_Loader#5 IZend_Loader_StandardAutoloader4 =Zend_Loader_PluginLoader'3 QZend_Loader_PluginLoader_Exception2 7Zend_Loader_Exception31 iZend_Loader_Exception_InvalidArgumentException#0 IZend_Loader_ClassMapAutoloader"/ GZend_Loader_AutoloaderFactory. 9Zend_Loader_Autoloader$- KZend_Loader_Autoloader_Resource, Zend_Ldap+ )Zend_Ldap_Node* 7Zend_Ldap_Node_Schema#) IZend_Ldap_Node_Schema_OpenLdap/( aZend_Ldap_Node_Schema_ObjectClass_OpenLdap6' oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectory& AZend_Ldap_Node_Schema_Item1% eZend_Ldap_Node_Schema_AttributeType_OpenLdap8$ sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory*# WZend_Ldap_Node_Schema_ActiveDirectory" 9Zend_Ldap_Node_RootDse$! KZend_Ldap_Node_RootDse_OpenLdap&  OZend_Ldap_Node_RootDse_eDirectory+ YZend_Ldap_Node_RootDse_ActiveDirectory ?Zend_Ldap_Node_Collection$ KZend_Ldap_Node_ChildrenIterator ;Zend_Ldap_Node_Abstract 9Zend_Ldap_Ldif_Encoder -Zend_Ldap_Filter ;Zend_Ldap_Filter_String 3Zend_Ldap_Filter_Or 5Zend_Ldap_Filter_Not 7Zend_Ldap_Filter_Mask =Zend_Ldap_Filter_Logical AZend_Ldap_Filter_Exception 5Zend_Ldap_Filter_And ?Zend_Ldap_Filter_Abstract 3Zend_Ldap_Exception %Zend_Ldap_Dn 3Zend_Ldap_Converter" GZend_Ldap_Converter_Exception 5Zend_Ldap_Collection* WZend_Ldap_Collection_Iterator_Default 3Zend_Ldap_Attribute
 #Zend_Layout	 7Zend_Layout_Exception) UZend_Layout_Controller_Plugin_Layout0 cZend_Layout_Controller_Action_Helper_Layout Zend_Json -Zend_Json_Server 5Zend_Json_Server_Smd! EZend_Json_Server_Smd_Service ?Zend_Json_Server_Response# IZend_Json_Server_Response_Http  =Zend_Json_Server_Request" GZend_Json_Server_Request_Http~ AZend_Json_Server_Exception} 9Zend_Json_Server_Error| 9Zend_Json_Server_Cache{ )Zend_Json_Exprz 3Zend_Json_Exceptiony /Zend_Json_Encoderx /Zend_Json_Decoderw 'Zend_InfoCard-v ]Zend_InfoCard_Xml_SecurityTokenReferenceu AZend_InfoCard_Xml_Security)t UZend_InfoCard_Xml_Security_Transform4s kZend_InfoCard_Xml_Security_Transform_XmlExcC14N3r iZend_InfoCard_Xml_Security_Transform_Exception<q {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignature)p UZend_InfoCard_Xml_Security_Exceptiono ?Zend_InfoCard_Xml_KeyInfo&n OZend_InfoCard_Xml_KeyInfo_XmlDSig&m OZend_InfoCard_Xml_KeyInfo_Default'l QZend_InfoCard_Xml_KeyInfo_Abstract k CZend_InfoCard_Xml_Exception#j IZend_InfoCard_Xml_EncryptedKey$i KZend_InfoCard_Xml_EncryptedData+h YZend_InfoCard_Xml_EncryptedData_XmlEnc-g ]Zend_InfoCard_Xml_EncryptedData_Abstractf ?Zend_InfoCard_Xml_Element e CZend_InfoCard_Xml_Assertion%d MZend_InfoCard_Xml_Assertion_Samlc ;Zend_InfoCard_Exception%b MZend_InfoCard_Exception_Abstracta 5Zend_InfoCard_Claims` 5Zend_InfoCard_Cipher5_ mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc5^ mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc4] kZend_InfoCard_Cipher_Symmetric_Adapter_Abstract)\ UZend_InfoCard_Cipher_Pki_Adapter_Rsa.[ _Zend_InfoCard_Cipher_Pki_Adapter_Abstract#Z IZend_InfoCard_Cipher_Exception$Y KZend_InfoCard_Adapter_Exception   t  vW6fB1`@ }Z6fG



q
P
>
 					\	6	aM/wS6dE#xW=!tO)nT=+b0h3    6 5Zend_Mobile_Push_Gcm5 AZend_Mobile_Push_Exception14 eZend_Mobile_Push_Exception_ServerUnavailable-3 ]Zend_Mobile_Push_Exception_QuotaExceeded,2 [Zend_Mobile_Push_Exception_InvalidTopic,1 [Zend_Mobile_Push_Exception_InvalidToken30 iZend_Mobile_Push_Exception_InvalidRegistration./ _Zend_Mobile_Push_Exception_InvalidPayload0. cZend_Mobile_Push_Exception_InvalidAuthToken3- iZend_Mobile_Push_Exception_DeviceQuotaExceeded, 7Zend_Mobile_Push_Apns+ ?Zend_Mobile_Push_Abstract* 7Zend_Mobile_Exception) Zend_Mime( )Zend_Mime_Part' /Zend_Mime_Message& 3Zend_Mime_Exception% -Zend_Mime_Decode$ #Zend_Memory# /Zend_Memory_Value" 3Zend_Memory_Manager! 7Zend_Memory_Exception  7Zend_Memory_Container" GZend_Memory_Container_Movable! EZend_Memory_Container_Locked! EZend_Memory_AccessController 3Zend_Measure_Weight 3Zend_Measure_Volume% MZend_Measure_Viscosity_Kinematic# IZend_Measure_Viscosity_Dynamic 3Zend_Measure_Torque /Zend_Measure_Time =Zend_Measure_Temperature 1Zend_Measure_Speed 7Zend_Measure_Pressure 1Zend_Measure_Power 3Zend_Measure_Number 9Zend_Measure_Lightness 3Zend_Measure_Length ?Zend_Measure_Illumination 9Zend_Measure_Frequency 1Zend_Measure_Force =Zend_Measure_Flow_Volume 9Zend_Measure_Flow_Mole
 9Zend_Measure_Flow_Mass	 9Zend_Measure_Exception 3Zend_Measure_Energy 5Zend_Measure_Density 5Zend_Measure_Current  CZend_Measure_Cooking_Weight  CZend_Measure_Cooking_Volume =Zend_Measure_Capacitance 3Zend_Measure_Binary /Zend_Measure_Area  1Zend_Measure_Angle ?Zend_Measure_Acceleration~ 7Zend_Measure_Abstract} #Zend_Markup| 7Zend_Markup_TokenList{ /Zend_Markup_Token*z WZend_Markup_Renderer_RendererAbstracty ?Zend_Markup_Renderer_Html"x GZend_Markup_Renderer_Html_Url#w IZend_Markup_Renderer_Html_List"v GZend_Markup_Renderer_Html_Img+u YZend_Markup_Renderer_Html_HtmlAbstract#t IZend_Markup_Renderer_Html_Code#s IZend_Markup_Renderer_Exception!r EZend_Markup_Parser_Exceptionq ?Zend_Markup_Parser_Bbcodep 7Zend_Markup_Exceptiono Zend_Mailn =Zend_Mail_Transport_Smtp!m EZend_Mail_Transport_Sendmaill =Zend_Mail_Transport_File"k GZend_Mail_Transport_Exception!j EZend_Mail_Transport_Abstracti /Zend_Mail_Storage'h QZend_Mail_Storage_Writable_Maildirg 9Zend_Mail_Storage_Pop3f 9Zend_Mail_Storage_Mboxe ?Zend_Mail_Storage_Maildird 9Zend_Mail_Storage_Imapc =Zend_Mail_Storage_Folder"b GZend_Mail_Storage_Folder_Mbox%a MZend_Mail_Storage_Folder_Maildir ` CZend_Mail_Storage_Exception_ AZend_Mail_Storage_Abstract^ ;Zend_Mail_Protocol_Smtp'] QZend_Mail_Protocol_Smtp_Auth_Plain'\ QZend_Mail_Protocol_Smtp_Auth_Login)[ UZend_Mail_Protocol_Smtp_Auth_Crammd5Z ;Zend_Mail_Protocol_Pop3Y ;Zend_Mail_Protocol_Imap!X EZend_Mail_Protocol_Exception W CZend_Mail_Protocol_AbstractV )Zend_Mail_PartU 3Zend_Mail_Part_FileT /Zend_Mail_MessageS 9Zend_Mail_Message_FileR 3Zend_Mail_ExceptionQ Zend_Log P CZend_Log_Writer_ZendMonitorO 9Zend_Log_Writer_SyslogN 9Zend_Log_Writer_StreamM 5Zend_Log_Writer_NullL 5Zend_Log_Writer_MockK 5Zend_Log_Writer_MailJ ;Zend_Log_Writer_FirebugI 1Zend_Log_Writer_DbH =Zend_Log_Writer_AbstractG 9Zend_Log_Formatter_XmlF ?Zend_Log_Formatter_SimpleE AZend_Log_Formatter_Firebug D CZend_Log_Formatter_AbstractC =Zend_Log_Filter_Suppress   o  `6uM+	x^B%zX1u\I




~
T
/
					e	8	sEqS6sQ-s[0vL)rW@_2sV7              % CZend_Pdf_Element_Dictionary$ =Zend_Pdf_Element_Boolean# 9Zend_Pdf_Element_Array" 5Zend_Pdf_Destination! ?Zend_Pdf_Destination_Zoom!  EZend_Pdf_Destination_Unknown AZend_Pdf_Destination_Named' QZend_Pdf_Destination_FitVertically& OZend_Pdf_Destination_FitRectangle) UZend_Pdf_Destination_FitHorizontally2 gZend_Pdf_Destination_FitBoundingBoxVertically4 kZend_Pdf_Destination_FitBoundingBoxHorizontally( SZend_Pdf_Destination_FitBoundingBox =Zend_Pdf_Destination_Fit" GZend_Pdf_Destination_Explicit )Zend_Pdf_Color 1Zend_Pdf_Color_Rgb 3Zend_Pdf_Color_Html =Zend_Pdf_Color_GrayScale 3Zend_Pdf_Color_Cmyk 'Zend_Pdf_Cmap AZend_Pdf_Cmap_TrimmedTable! EZend_Pdf_Cmap_SegmentToDelta AZend_Pdf_Cmap_ByteEncoding& OZend_Pdf_Cmap_ByteEncoding_Static +Zend_Pdf_Canvas =Zend_Pdf_Canvas_Abstract
 3Zend_Pdf_Annotation	 =Zend_Pdf_Annotation_Text AZend_Pdf_Annotation_Markup =Zend_Pdf_Annotation_Link' QZend_Pdf_Annotation_FileAttachment +Zend_Pdf_Action 3Zend_Pdf_Action_URI ;Zend_Pdf_Action_Unknown 7Zend_Pdf_Action_Trans 9Zend_Pdf_Action_Thread  AZend_Pdf_Action_SubmitForm 7Zend_Pdf_Action_Sound ~ CZend_Pdf_Action_SetOCGState} ?Zend_Pdf_Action_ResetForm| ?Zend_Pdf_Action_Rendition{ 7Zend_Pdf_Action_Namedz 7Zend_Pdf_Action_Moviey 9Zend_Pdf_Action_Launchx AZend_Pdf_Action_JavaScriptw AZend_Pdf_Action_ImportDatav 5Zend_Pdf_Action_Hideu 7Zend_Pdf_Action_GoToRt 7Zend_Pdf_Action_GoToEs AZend_Pdf_Action_GoTo3DViewr 5Zend_Pdf_Action_GoToq )Zend_Paginator-p ]Zend_Paginator_SerializableLimitIterator*o WZend_Paginator_ScrollingStyle_Sliding*n WZend_Paginator_ScrollingStyle_Jumping*m WZend_Paginator_ScrollingStyle_Elastic&l OZend_Paginator_ScrollingStyle_Allk =Zend_Paginator_Exception j CZend_Paginator_Adapter_Null$i KZend_Paginator_Adapter_Iterator)h UZend_Paginator_Adapter_DbTableSelect$g KZend_Paginator_Adapter_DbSelect!f EZend_Paginator_Adapter_Arraye #Zend_OpenIdd 5Zend_OpenId_Providerc ?Zend_OpenId_Provider_User&b OZend_OpenId_Provider_User_Session!a EZend_OpenId_Provider_Storage&` OZend_OpenId_Provider_Storage_File_ 7Zend_OpenId_Extension^ AZend_OpenId_Extension_Sreg] 7Zend_OpenId_Exception\ 5Zend_OpenId_Consumer![ EZend_OpenId_Consumer_Storage&Z OZend_OpenId_Consumer_Storage_FileY !Zend_OauthX -Zend_Oauth_TokenW =Zend_Oauth_Token_Request'V QZend_Oauth_Token_AuthorizedRequestU ;Zend_Oauth_Token_Access+T YZend_Oauth_Signature_SignatureAbstractS =Zend_Oauth_Signature_Rsa#R IZend_Oauth_Signature_PlaintextQ ?Zend_Oauth_Signature_HmacP +Zend_Oauth_HttpO ;Zend_Oauth_Http_Utility&N OZend_Oauth_Http_UserAuthorization!M EZend_Oauth_Http_RequestToken L CZend_Oauth_Http_AccessTokenK 5Zend_Oauth_ExceptionJ 3Zend_Oauth_ConsumerI /Zend_Oauth_ConfigH /Zend_Oauth_ClientG +Zend_NavigationF 5Zend_Navigation_PageE =Zend_Navigation_Page_UriD =Zend_Navigation_Page_MvcC ?Zend_Navigation_ExceptionB ?Zend_Navigation_Container$A KZend_Mobile_Push_Test_ApnsProxy"@ GZend_Mobile_Push_Response_Gcm? 7Zend_Mobile_Push_Mpns"> GZend_Mobile_Push_Message_Mpns(= SZend_Mobile_Push_Message_Mpns_Toast'< QZend_Mobile_Push_Message_Mpns_Tile&; OZend_Mobile_Push_Message_Mpns_Raw!: EZend_Mobile_Push_Message_Gcm'9 QZend_Mobile_Push_Message_Exception"8 GZend_Mobile_Push_Message_Apns&7 OZend_Mobile_Push_Message_Abstract   d  |\1~e?`>"c9cC*



y
I
"				h	1v= {EX[6jL5b7f;mA$           #	 IZend_Queue_Message_PlatformJob  CZend_Queue_Message_Iterator 5Zend_Queue_Exception( SZend_Queue_Adapter_PlatformJobQueue ;Zend_Queue_Adapter_Null! EZend_Queue_Adapter_Memcacheq 7Zend_Queue_Adapter_Db  CZend_Queue_Adapter_Db_Queue" GZend_Queue_Adapter_Db_Message  =Zend_Queue_Adapter_Array' QZend_Queue_Adapter_AdapterAbstract ~ CZend_Queue_Adapter_Activemq} -Zend_ProgressBar| AZend_ProgressBar_Exception{ =Zend_ProgressBar_Adapter$z KZend_ProgressBar_Adapter_JsPush$y KZend_ProgressBar_Adapter_JsPull'x QZend_ProgressBar_Adapter_Exception%w MZend_ProgressBar_Adapter_Consolev Zend_Pdf!u EZend_Pdf_UpdateInfoContainert -Zend_Pdf_Trailers ;Zend_Pdf_Trailer_Keeperr AZend_Pdf_Trailer_Generatorq +Zend_Pdf_Targetp )Zend_Pdf_Styleo 7Zend_Pdf_StringParsern /Zend_Pdf_Resourcem ?Zend_Pdf_Resource_Unified#l IZend_Pdf_Resource_ImageFactoryk ;Zend_Pdf_Resource_Image!j EZend_Pdf_Resource_Image_Tiff i CZend_Pdf_Resource_Image_Png!h EZend_Pdf_Resource_Image_Jpeg$g KZend_Pdf_Resource_GraphicsStatef 9Zend_Pdf_Resource_Font!e EZend_Pdf_Resource_Font_Type0"d GZend_Pdf_Resource_Font_Simple+c YZend_Pdf_Resource_Font_Simple_Standard8b sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats6a oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman7` qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic;_ yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic5^ mZend_Pdf_Resource_Font_Simple_Standard_TimesBold2] gZend_Pdf_Resource_Font_Simple_Standard_Symbol<\ {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueA[ Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique9Z uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold5Y mZend_Pdf_Resource_Font_Simple_Standard_Helvetica:X wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique>W Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique7V qZend_Pdf_Resource_Font_Simple_Standard_CourierBold3U iZend_Pdf_Resource_Font_Simple_Standard_Courier)T UZend_Pdf_Resource_Font_Simple_Parsed2S gZend_Pdf_Resource_Font_Simple_Parsed_TrueType*R WZend_Pdf_Resource_Font_FontDescriptor%Q MZend_Pdf_Resource_Font_Extracted#P IZend_Pdf_Resource_Font_CidFont,O [Zend_Pdf_Resource_Font_CidFont_TrueType N CZend_Pdf_Resource_Extractor$M KZend_Pdf_Resource_ContentStream3L iZend_Pdf_RecursivelyIteratableObjectsContainerK +Zend_Pdf_ParserJ 'Zend_Pdf_PageI -Zend_Pdf_OutlineH ;Zend_Pdf_Outline_LoadedG =Zend_Pdf_Outline_CreatedF /Zend_Pdf_NameTreeE )Zend_Pdf_ImageD 'Zend_Pdf_FontC ?Zend_Pdf_Filter_RunLength B CZend_Pdf_Filter_Compression$A KZend_Pdf_Filter_Compression_Lzw&@ OZend_Pdf_Filter_Compression_Flate? =Zend_Pdf_Filter_AsciiHex> ;Zend_Pdf_Filter_Ascii85"= GZend_Pdf_FileParserDataSource)< UZend_Pdf_FileParserDataSource_String'; QZend_Pdf_FileParserDataSource_File: 3Zend_Pdf_FileParser9 ?Zend_Pdf_FileParser_Image"8 GZend_Pdf_FileParser_Image_Png7 =Zend_Pdf_FileParser_Font&6 OZend_Pdf_FileParser_Font_OpenType/5 aZend_Pdf_FileParser_Font_OpenType_TrueType4 1Zend_Pdf_Exception3 ;Zend_Pdf_ElementFactory"2 GZend_Pdf_ElementFactory_Proxy1 -Zend_Pdf_Element0 ;Zend_Pdf_Element_String#/ IZend_Pdf_Element_String_Binary. ;Zend_Pdf_Element_Stream- AZend_Pdf_Element_Reference%, MZend_Pdf_Element_Reference_Table'+ QZend_Pdf_Element_Reference_Context* ;Zend_Pdf_Element_Object#) IZend_Pdf_Element_Object_Stream( =Zend_Pdf_Element_Numeric' 7Zend_Pdf_Element_Null& 7Zend_Pdf_Element_Name   X  {hJiL+fF-8v,


j
6
				g	,kB{Z;`1b8Y0k=x<`3                                   $a KZend_Search_Lucene_Search_Query-` ]Zend_Search_Lucene_Search_Query_Wildcard)_ UZend_Search_Lucene_Search_Query_Term*^ WZend_Search_Lucene_Search_Query_Range2] gZend_Search_Lucene_Search_Query_Preprocessing7\ qZend_Search_Lucene_Search_Query_Preprocessing_Term9[ uZend_Search_Lucene_Search_Query_Preprocessing_Phrase8Z sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy+Y YZend_Search_Lucene_Search_Query_Phrase.X _Zend_Search_Lucene_Search_Query_MultiTerm2W gZend_Search_Lucene_Search_Query_Insignificant*V WZend_Search_Lucene_Search_Query_Fuzzy*U WZend_Search_Lucene_Search_Query_Empty,T [Zend_Search_Lucene_Search_Query_Boolean2S gZend_Search_Lucene_Search_Highlighter_Default:R wZend_Search_Lucene_Search_BooleanExpressionRecognizerQ =Zend_Search_Lucene_Proxy%P MZend_Search_Lucene_PriorityQueue/O aZend_Search_Lucene_Interface_MultiSearcher%N MZend_Search_Lucene_MultiSearcher#M IZend_Search_Lucene_LockManager$L KZend_Search_Lucene_Index_Writer0K cZend_Search_Lucene_Index_TermsPriorityQueue&J OZend_Search_Lucene_Index_TermInfo"I GZend_Search_Lucene_Index_Term+H YZend_Search_Lucene_Index_SegmentWriter8G sZend_Search_Lucene_Index_SegmentWriter_StreamWriter:F wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter+E YZend_Search_Lucene_Index_SegmentMerger)D UZend_Search_Lucene_Index_SegmentInfo'C QZend_Search_Lucene_Index_FieldInfo(B SZend_Search_Lucene_Index_DocsFilter.A _Zend_Search_Lucene_Index_DictionaryLoader!@ EZend_Search_Lucene_FSMAction? 9Zend_Search_Lucene_FSM> =Zend_Search_Lucene_Field!= EZend_Search_Lucene_Exception < CZend_Search_Lucene_Document%; MZend_Search_Lucene_Document_Xlsx%: MZend_Search_Lucene_Document_Pptx(9 SZend_Search_Lucene_Document_OpenXml%8 MZend_Search_Lucene_Document_Html*7 WZend_Search_Lucene_Document_Exception%6 MZend_Search_Lucene_Document_Docx,5 [Zend_Search_Lucene_Analysis_TokenFilter64 oZend_Search_Lucene_Analysis_TokenFilter_StopWords73 qZend_Search_Lucene_Analysis_TokenFilter_ShortWords:2 wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf861 oZend_Search_Lucene_Analysis_TokenFilter_LowerCase&0 OZend_Search_Lucene_Analysis_Token)/ UZend_Search_Lucene_Analysis_Analyzer0. cZend_Search_Lucene_Analysis_Analyzer_Common8- sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumI, Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive5+ mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8F* Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive8) sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumI( Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive5' mZend_Search_Lucene_Analysis_Analyzer_Common_TextF& Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive% 7Zend_Search_Exception$ -Zend_Rest_Server# AZend_Rest_Server_Exception" +Zend_Rest_Route! 3Zend_Rest_Exception  5Zend_Rest_Controller -Zend_Rest_Client ;Zend_Rest_Client_Result& OZend_Rest_Client_Result_Exception AZend_Rest_Client_Exception 'Zend_Registry =Zend_Reflection_Property ?Zend_Reflection_Parameter 9Zend_Reflection_Method =Zend_Reflection_Function 5Zend_Reflection_File ?Zend_Reflection_Extension ?Zend_Reflection_Exception =Zend_Reflection_Docblock! EZend_Reflection_Docblock_Tag( SZend_Reflection_Docblock_Tag_Return' QZend_Reflection_Docblock_Tag_Param 7Zend_Reflection_Class !Zend_Queue 9Zend_Queue_Stomp_Frame ;Zend_Queue_Stomp_Client' QZend_Queue_Stomp_Client_Connection
 1Zend_Queue_Message   ^  d7|EV#d7y^.	



n
A
					~	_	A	_.j? c5Z(_-[,wM+oP%     +? YZend_Service_Amazon_SimpleDb_Exception+> YZend_Service_Amazon_SimpleDb_Attribute'= QZend_Service_Amazon_SimilarProduct< 9Zend_Service_Amazon_S3"; GZend_Service_Amazon_S3_Stream%: MZend_Service_Amazon_S3_Exception"9 GZend_Service_Amazon_ResultSet8 ?Zend_Service_Amazon_Query!7 EZend_Service_Amazon_OfferSet6 ?Zend_Service_Amazon_Offer&5 OZend_Service_Amazon_ListmaniaList4 =Zend_Service_Amazon_Item3 ?Zend_Service_Amazon_Image"2 GZend_Service_Amazon_Exception(1 SZend_Service_Amazon_EditorialReview0 ;Zend_Service_Amazon_Ec2+/ YZend_Service_Amazon_Ec2_Securitygroups%. MZend_Service_Amazon_Ec2_Response#- IZend_Service_Amazon_Ec2_Region$, KZend_Service_Amazon_Ec2_Keypair%+ MZend_Service_Amazon_Ec2_Instance-* ]Zend_Service_Amazon_Ec2_Instance_Windows.) _Zend_Service_Amazon_Ec2_Instance_Reserved"( GZend_Service_Amazon_Ec2_Image&' OZend_Service_Amazon_Ec2_Exception&& OZend_Service_Amazon_Ec2_Elasticip % CZend_Service_Amazon_Ec2_Ebs'$ QZend_Service_Amazon_Ec2_CloudWatch.# _Zend_Service_Amazon_Ec2_Availabilityzones%" MZend_Service_Amazon_Ec2_Abstract'! QZend_Service_Amazon_CustomerReview'  QZend_Service_Amazon_Authentication* WZend_Service_Amazon_Authentication_V2* WZend_Service_Amazon_Authentication_V1* WZend_Service_Amazon_Authentication_S31 eZend_Service_Amazon_Authentication_Exception$ KZend_Service_Amazon_Accessories! EZend_Service_Amazon_Abstract 5Zend_Service_Akismet 7Zend_Service_Abstract 9Zend_Server_Reflection' QZend_Server_Reflection_ReturnValue% MZend_Server_Reflection_Prototype% MZend_Server_Reflection_Parameter  CZend_Server_Reflection_Node" GZend_Server_Reflection_Method$ KZend_Server_Reflection_Function- ]Zend_Server_Reflection_Function_Abstract% MZend_Server_Reflection_Exception! EZend_Server_Reflection_Class! EZend_Server_Method_Prototype! EZend_Server_Method_Parameter" GZend_Server_Method_Definition 
 CZend_Server_Method_Callback	 7Zend_Server_Exception 9Zend_Server_Definition /Zend_Server_Cache 5Zend_Server_Abstract +Zend_Serializer ?Zend_Serializer_Exception! EZend_Serializer_Adapter_Wddx) UZend_Serializer_Adapter_PythonPickle) UZend_Serializer_Adapter_PhpSerialize$  KZend_Serializer_Adapter_PhpCode! EZend_Serializer_Adapter_Json%~ MZend_Serializer_Adapter_Igbinary!} EZend_Serializer_Adapter_Amf3!| EZend_Serializer_Adapter_Amf0,{ [Zend_Serializer_Adapter_AdapterAbstractz 1Zend_Search_Lucene0y cZend_Search_Lucene_TermStreamsPriorityQueue$x KZend_Search_Lucene_Storage_File+w YZend_Search_Lucene_Storage_File_Memory/v aZend_Search_Lucene_Storage_File_Filesystem)u UZend_Search_Lucene_Storage_Directory4t kZend_Search_Lucene_Storage_Directory_Filesystem%s MZend_Search_Lucene_Search_Weight*r WZend_Search_Lucene_Search_Weight_Term,q [Zend_Search_Lucene_Search_Weight_Phrase/p aZend_Search_Lucene_Search_Weight_MultiTerm+o YZend_Search_Lucene_Search_Weight_Empty-n ]Zend_Search_Lucene_Search_Weight_Boolean)m UZend_Search_Lucene_Search_Similarity1l eZend_Search_Lucene_Search_Similarity_Default)k UZend_Search_Lucene_Search_QueryToken3j iZend_Search_Lucene_Search_QueryParserException1i eZend_Search_Lucene_Search_QueryParserContext*h WZend_Search_Lucene_Search_QueryParser)g UZend_Search_Lucene_Search_QueryLexer'f QZend_Search_Lucene_Search_QueryHit)e UZend_Search_Lucene_Search_QueryEntry.d _Zend_Search_Lucene_Search_QueryEntry_Term2c gZend_Search_Lucene_Search_QueryEntry_Subquery0b cZend_Search_Lucene_Search_QueryEntry_Phrase   :  Y9Z;PJ>



q
A
			E>7+lgM:P                                                               Iy Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequestEx Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest3w iZend_Service_DeveloperGarden_Request_ExceptionRv %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequestYu 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequestdt IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequestQs #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequestRr %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequestYq 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequestdp IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequestQo #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequestOn Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequestUm +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequestUl +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequestVk -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequestaj CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequestZi 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequestTh )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequestRg %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequestYf 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequestQe #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequestQd #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequestac CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequestNb Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformationLa Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalanceJ` Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool-_ ]Zend_Service_DeveloperGarden_LocalSearch>^ Zend_Service_DeveloperGarden_LocalSearch_SearchParameters7] qZend_Service_DeveloperGarden_LocalSearch_Exception,\ [Zend_Service_DeveloperGarden_IpLocation6[ oZend_Service_DeveloperGarden_IpLocation_IpAddress+Z YZend_Service_DeveloperGarden_Exception,Y [Zend_Service_DeveloperGarden_Credential0X cZend_Service_DeveloperGarden_ConferenceCallCW Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatusCV Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail<U {Zend_Service_DeveloperGarden_ConferenceCall_Participant:T wZend_Service_DeveloperGarden_ConferenceCall_ExceptionDS 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceScheduleBR Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetailCQ Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount-P ]Zend_Service_DeveloperGarden_Client_Soap2O gZend_Service_DeveloperGarden_Client_Exception7N qZend_Service_DeveloperGarden_Client_ClientAbstract1M eZend_Service_DeveloperGarden_BaseUserServiceAL Zend_Service_DeveloperGarden_BaseUserService_AccountBalanceK 9Zend_Service_Delicious&J OZend_Service_Delicious_SimplePost$I KZend_Service_Delicious_PostList H CZend_Service_Delicious_Post%G MZend_Service_Delicious_Exception F CZend_Service_AudioscrobblerE 3Zend_Service_AmazonD ;Zend_Service_Amazon_Sqs&C OZend_Service_Amazon_Sqs_Exception!B EZend_Service_Amazon_SimpleDb*A WZend_Service_Amazon_SimpleDb_Response&@ OZend_Service_Amazon_SimpleDb_Page   .  DgJj3(

V
		\	K4|Q*paG                                              T' )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse[& 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponsef% MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponseS$ 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponseU# +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseTypeQ" #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse[! 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseTypeW  /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseTypeW /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse\ 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseTypeX 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseg OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseTypec GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse` AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType\ 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseZ 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseTypeV -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseX 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseTypeT )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse_ ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseW /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseTypeS 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseQ #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstractS 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponseJ Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseTypeg OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseTypec GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseW
 /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponseU	 +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponseS 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse3 iZend_Service_DeveloperGarden_Response_BaseTypeJ Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstractC Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCallG Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced= }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallA Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatusA Zend_Service_DeveloperGarden_Request_SmsValidation_ValidateN  Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeywordC Zend_Service_DeveloperGarden_Request_SmsValidation_InvalidateL~ Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbersB} Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract9| uZend_Service_DeveloperGarden_Request_SendSms_SendSMS>{ Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS9z uZend_Service_DeveloperGarden_Request_RequestAbstract   =  ?Pq&Cd

j
#			5=Ub#[8o6	h3zN R               ,d [Zend_Service_Ebay_Finding_Search_Result*c WZend_Service_Ebay_Finding_Search_Item.b _Zend_Service_Ebay_Finding_Search_Item_Set0a cZend_Service_Ebay_Finding_Response_Keywords-` ]Zend_Service_Ebay_Finding_Response_Items2_ gZend_Service_Ebay_Finding_Response_Histograms0^ cZend_Service_Ebay_Finding_Response_Abstract/] aZend_Service_Ebay_Finding_PaginationOutput*\ WZend_Service_Ebay_Finding_ListingInfo([ SZend_Service_Ebay_Finding_Exception,Z [Zend_Service_Ebay_Finding_Error_Message)Y UZend_Service_Ebay_Finding_Error_Data-X ]Zend_Service_Ebay_Finding_Error_Data_Set'W QZend_Service_Ebay_Finding_Category1V eZend_Service_Ebay_Finding_Category_Histogram5U mZend_Service_Ebay_Finding_Category_Histogram_Set;T yZend_Service_Ebay_Finding_Category_Histogram_Container%S MZend_Service_Ebay_Finding_Aspect)R UZend_Service_Ebay_Finding_Aspect_Set5Q mZend_Service_Ebay_Finding_Aspect_Histogram_Value9P uZend_Service_Ebay_Finding_Aspect_Histogram_Value_Set9O uZend_Service_Ebay_Finding_Aspect_Histogram_Container'N QZend_Service_Ebay_Finding_Abstract M CZend_Service_Ebay_ExceptionL AZend_Service_Ebay_Abstract+K YZend_Service_DeveloperGarden_VoiceCall/J aZend_Service_DeveloperGarden_SmsValidation)I UZend_Service_DeveloperGarden_SendSms5H mZend_Service_DeveloperGarden_SecurityTokenServer;G yZend_Service_DeveloperGarden_SecurityTokenServer_CacheKF Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstractLE Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponsePD !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponseGC Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponseJB Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponseKA Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2ResponseL@ Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponseI? Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumberW> /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponseJ= Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponseU< +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponseC; Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponseC: Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstractH9 Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponseU8 +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponseQ7 #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponseI6 Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception;5 yZend_Service_DeveloperGarden_Response_ResponseAbstractO4 Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseTypeK3 Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseA2 Zend_Service_DeveloperGarden_Response_IpLocation_RegionTypeK1 Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseTypeG0 Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseL/ Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationTypeI. Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType>- Zend_Service_DeveloperGarden_Response_IpLocation_CityType4, kZend_Service_DeveloperGarden_Response_ExceptionT+ )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse[* 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponsef) MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponseS( 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponse   Y  tElP( `9h9Z)



[
4
				j	:	|S)TzP&sLY/U%uO(f-                                            D= 	Zend_Service_WindowsAzure_CommandLine_GetAsynchronousOperation5< mZend_Service_WindowsAzure_CommandLine_Deployment6; oZend_Service_WindowsAzure_CommandLine_Certificate: 5Zend_Service_Twitter 9 CZend_Service_Twitter_Search#8 IZend_Service_Twitter_Exception7 ;Zend_Service_Technorati#6 IZend_Service_Technorati_Weblog"5 GZend_Service_Technorati_Utils*4 WZend_Service_Technorati_TagsResultSet'3 QZend_Service_Technorati_TagsResult)2 UZend_Service_Technorati_TagResultSet&1 OZend_Service_Technorati_TagResult,0 [Zend_Service_Technorati_SearchResultSet)/ UZend_Service_Technorati_SearchResult&. OZend_Service_Technorati_ResultSet#- IZend_Service_Technorati_Result*, WZend_Service_Technorati_KeyInfoResult*+ WZend_Service_Technorati_GetInfoResult&* OZend_Service_Technorati_Exception1) eZend_Service_Technorati_DailyCountsResultSet.( _Zend_Service_Technorati_DailyCountsResult,' [Zend_Service_Technorati_CosmosResultSet)& UZend_Service_Technorati_CosmosResult+% YZend_Service_Technorati_BlogInfoResult#$ IZend_Service_Technorati_Author# ;Zend_Service_StrikeIron(" SZend_Service_StrikeIron_ZipCodeInfo2! gZend_Service_StrikeIron_USAddressVerification-  ]Zend_Service_StrikeIron_SalesUseTaxBasic& OZend_Service_StrikeIron_Exception& OZend_Service_StrikeIron_Decorator! EZend_Service_StrikeIron_Base; yZend_Service_SqlAzure_Management_ServiceEntityAbstract4 kZend_Service_SqlAzure_Management_ServerInstance: wZend_Service_SqlAzure_Management_FirewallRuleInstance/ aZend_Service_SqlAzure_Management_Exception, [Zend_Service_SqlAzure_Management_Client$ KZend_Service_SqlAzure_Exception ;Zend_Service_SlideShare& OZend_Service_SlideShare_SlideShow& OZend_Service_SlideShare_Exception% MZend_Service_ShortUrl_TinyUrlCom& OZend_Service_ShortUrl_MetamarkNet! EZend_Service_ShortUrl_JdemCz AZend_Service_ShortUrl_IsGd$ KZend_Service_ShortUrl_Exception  CZend_Service_ShortUrl_BitLy, [Zend_Service_ShortUrl_AbstractShortener 9Zend_Service_ReCaptcha$ KZend_Service_ReCaptcha_Response$
 KZend_Service_ReCaptcha_MailHide.	 _Zend_Service_ReCaptcha_MailHide_Exception% MZend_Service_ReCaptcha_Exception# IZend_Service_Rackspace_Servers5 mZend_Service_Rackspace_Servers_SharedIpGroupList1 eZend_Service_Rackspace_Servers_SharedIpGroup. _Zend_Service_Rackspace_Servers_ServerList* WZend_Service_Rackspace_Servers_Server- ]Zend_Service_Rackspace_Servers_ImageList) UZend_Service_Rackspace_Servers_Image-  ]Zend_Service_Rackspace_Servers_Exception! EZend_Service_Rackspace_Files,~ [Zend_Service_Rackspace_Files_ObjectList(} SZend_Service_Rackspace_Files_Object+| YZend_Service_Rackspace_Files_Exception/{ aZend_Service_Rackspace_Files_ContainerList+z YZend_Service_Rackspace_Files_Container%y MZend_Service_Rackspace_Exception$x KZend_Service_Rackspace_Abstractw 7Zend_Service_Nirvanix#v IZend_Service_Nirvanix_Response)u UZend_Service_Nirvanix_Namespace_Imfs)t UZend_Service_Nirvanix_Namespace_Base$s KZend_Service_Nirvanix_Exceptionr 7Zend_Service_LiveDocx$q KZend_Service_LiveDocx_MailMerge$p KZend_Service_LiveDocx_Exceptiono 3Zend_Service_Flickr"n GZend_Service_Flickr_ResultSetm AZend_Service_Flickr_Resultl ?Zend_Service_Flickr_Imagek 9Zend_Service_Exceptionj ?Zend_Service_Ebay_Finding)i UZend_Service_Ebay_Finding_Storefront+h YZend_Service_Ebay_Finding_ShippingInfo+g YZend_Service_Ebay_Finding_Set_Abstract,f [Zend_Service_Ebay_Finding_SellingStatus)e UZend_Service_Ebay_Finding_SellerInfo   B  o`Mg"f@U


^
			m	)t=o)Zk)S$x@d)H                     # IZend_Service_Yahoo_ImageResult~ =Zend_Service_Yahoo_Image&} OZend_Service_WindowsAzure_Storage4| kZend_Service_WindowsAzure_Storage_TableInstance7{ qZend_Service_WindowsAzure_Storage_TableEntityQuery2z gZend_Service_WindowsAzure_Storage_TableEntity,y [Zend_Service_WindowsAzure_Storage_Table<x {Zend_Service_WindowsAzure_Storage_StorageEntityAbstract7w qZend_Service_WindowsAzure_Storage_SignedIdentifier3v iZend_Service_WindowsAzure_Storage_QueueMessage4u kZend_Service_WindowsAzure_Storage_QueueInstance,t [Zend_Service_WindowsAzure_Storage_Queue9s uZend_Service_WindowsAzure_Storage_PageRegionInstance4r kZend_Service_WindowsAzure_Storage_LeaseInstance9q uZend_Service_WindowsAzure_Storage_DynamicTableEntity3p iZend_Service_WindowsAzure_Storage_BlobInstance4o kZend_Service_WindowsAzure_Storage_BlobContainer+n YZend_Service_WindowsAzure_Storage_Blob2m gZend_Service_WindowsAzure_Storage_Blob_Stream;l yZend_Service_WindowsAzure_Storage_BatchStorageAbstract,k [Zend_Service_WindowsAzure_Storage_Batch-j ]Zend_Service_WindowsAzure_SessionHandler>i Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract1h eZend_Service_WindowsAzure_RetryPolicy_RetryN2g gZend_Service_WindowsAzure_RetryPolicy_NoRetry4f kZend_Service_WindowsAzure_RetryPolicy_ExceptionHe Zend_Service_WindowsAzure_Management_SubscriptionOperationInstanceAd Zend_Service_WindowsAzure_Management_StorageServiceInstance@c Zend_Service_WindowsAzure_Management_ServiceEntityAbstractBb Zend_Service_WindowsAzure_Management_OperationStatusInstanceBa Zend_Service_WindowsAzure_Management_OperatingSystemInstanceH` Zend_Service_WindowsAzure_Management_OperatingSystemFamilyInstance:_ wZend_Service_WindowsAzure_Management_LocationInstance@^ Zend_Service_WindowsAzure_Management_HostedServiceInstance3] iZend_Service_WindowsAzure_Management_Exception<\ {Zend_Service_WindowsAzure_Management_DeploymentInstance0[ cZend_Service_WindowsAzure_Management_Client=Z }Zend_Service_WindowsAzure_Management_CertificateInstance@Y Zend_Service_WindowsAzure_Management_AffinityGroupInstance6X oZend_Service_WindowsAzure_Log_Writer_WindowsAzure9W uZend_Service_WindowsAzure_Log_Formatter_WindowsAzure(V SZend_Service_WindowsAzure_ExceptionJU Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscription2T gZend_Service_WindowsAzure_Diagnostics_Manager3S iZend_Service_WindowsAzure_Diagnostics_LogLevel4R kZend_Service_WindowsAzure_Diagnostics_ExceptionNQ Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscriptionHP Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLogLO Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCountersKN Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstract<M {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogsAL Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstanceDK 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectoriesUJ +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogsDI 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSources8H sZend_Service_WindowsAzure_Credentials_SharedKeyLite4G kZend_Service_WindowsAzure_Credentials_SharedKeyAF Zend_Service_WindowsAzure_Credentials_SharedAccessSignature4E kZend_Service_WindowsAzure_Credentials_Exception>D Zend_Service_WindowsAzure_Credentials_CredentialsAbstract2C gZend_Service_WindowsAzure_CommandLine_Storage2B gZend_Service_WindowsAzure_CommandLine_ServiceA !Scaffolder@ SampleW? /Zend_Service_WindowsAzure_CommandLine_PackageScaffolder_PackageScaffolderAbstract2> gZend_Service_WindowsAzure_CommandLine_Package   e  {T*b=fG(jA"dE,



S
)					b	I	$~Y8!n?]/lE^ByW;#qDP Fd Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter0c cZend_Tool_Framework_Client_Console_Manifest2b gZend_Tool_Framework_Client_Console_HelpSystem6a oZend_Tool_Framework_Client_Console_ArgumentParser&` OZend_Tool_Framework_Client_Config(_ SZend_Tool_Framework_Client_Abstract*^ WZend_Tool_Framework_Action_Repository)] UZend_Tool_Framework_Action_Exception$\ KZend_Tool_Framework_Action_Base[ 'Zend_TimeSyncZ 1Zend_TimeSync_SntpY 9Zend_TimeSync_ProtocolX /Zend_TimeSync_NtpW ;Zend_TimeSync_ExceptionV +Zend_Text_TableU 3Zend_Text_Table_RowT ?Zend_Text_Table_Exception&S OZend_Text_Table_Decorator_Unicode$R KZend_Text_Table_Decorator_AsciiQ 9Zend_Text_Table_ColumnP 3Zend_Text_MultiByteO -Zend_Text_FigletN AZend_Text_Figlet_ExceptionM 3Zend_Text_Exception&L OZend_Test_PHPUnit_Db_SimpleTester,K [Zend_Test_PHPUnit_Db_Operation_Truncate*J WZend_Test_PHPUnit_Db_Operation_Insert-I ]Zend_Test_PHPUnit_Db_Operation_DeleteAll*H WZend_Test_PHPUnit_Db_Metadata_Generic#G IZend_Test_PHPUnit_Db_Exception,F [Zend_Test_PHPUnit_Db_DataSet_QueryTable.E _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet0D cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet)C UZend_Test_PHPUnit_Db_DataSet_DbTable*B WZend_Test_PHPUnit_Db_DataSet_DbRowset$A KZend_Test_PHPUnit_Db_Connection'@ QZend_Test_PHPUnit_DatabaseTestCase)? UZend_Test_PHPUnit_ControllerTestCase0> cZend_Test_PHPUnit_Constraint_ResponseHeader*= WZend_Test_PHPUnit_Constraint_Redirect+< YZend_Test_PHPUnit_Constraint_Exception*; WZend_Test_PHPUnit_Constraint_DomQuery: 7Zend_Test_DbStatement9 3Zend_Test_DbAdapter8 /Zend_Tag_ItemList7 'Zend_Tag_Item6 1Zend_Tag_Exception5 )Zend_Tag_Cloud4 =Zend_Tag_Cloud_Exception!3 EZend_Tag_Cloud_Decorator_Tag%2 MZend_Tag_Cloud_Decorator_HtmlTag'1 QZend_Tag_Cloud_Decorator_HtmlCloud'0 QZend_Tag_Cloud_Decorator_Exception#/ IZend_Tag_Cloud_Decorator_Cloud!. EZend_Stdlib_SplPriorityQueue- -SplPriorityQueue, ?Zend_Stdlib_PriorityQueue3+ iZend_Stdlib_Exception_InvalidCallbackException * CZend_Stdlib_CallbackHandler) )Zend_Soap_Wsdl/( aZend_Soap_Wsdl_Strategy_DefaultComplexType&' OZend_Soap_Wsdl_Strategy_Composite0& cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence/% aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex$$ KZend_Soap_Wsdl_Strategy_AnyType%# MZend_Soap_Wsdl_Strategy_Abstract" =Zend_Soap_Wsdl_Exception! -Zend_Soap_Server  9Zend_Soap_Server_Proxy AZend_Soap_Server_Exception -Zend_Soap_Client 9Zend_Soap_Client_Local AZend_Soap_Client_Exception ;Zend_Soap_Client_DotNet ;Zend_Soap_Client_Common 9Zend_Soap_AutoDiscover% MZend_Soap_AutoDiscover_Exception %Zend_Session) UZend_Session_Validator_HttpUserAgent$ KZend_Session_Validator_Abstract' QZend_Session_SaveHandler_Exception% MZend_Session_SaveHandler_DbTable 9Zend_Session_Namespace 9Zend_Session_Exception 7Zend_Session_Abstract 1Zend_Service_Yahoo$ KZend_Service_Yahoo_WebResultSet! EZend_Service_Yahoo_WebResult& OZend_Service_Yahoo_VideoResultSet# IZend_Service_Yahoo_VideoResult!
 EZend_Service_Yahoo_ResultSet	 ?Zend_Service_Yahoo_Result) UZend_Service_Yahoo_PageDataResultSet& OZend_Service_Yahoo_PageDataResult% MZend_Service_Yahoo_NewsResultSet" GZend_Service_Yahoo_NewsResult& OZend_Service_Yahoo_LocalResultSet# IZend_Service_Yahoo_LocalResult+ YZend_Service_Yahoo_InlinkDataResultSet( SZend_Service_Yahoo_InlinkDataResult&  OZend_Service_Yahoo_ImageResultSet   K  q)Y}Qp"\&



t
F
				d	3	n:_3g-vDi5a.f2 X"                             // aZend_Tool_Project_Context_Zf_LogsDirectory2. gZend_Tool_Project_Context_Zf_LocalesDirectory2- gZend_Tool_Project_Context_Zf_LibraryDirectory2, gZend_Tool_Project_Context_Zf_LayoutsDirectory8+ sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory2* gZend_Tool_Project_Context_Zf_LayoutScriptFile.) _Zend_Tool_Project_Context_Zf_HtaccessFile0( cZend_Tool_Project_Context_Zf_FormsDirectory*' WZend_Tool_Project_Context_Zf_FormFile/& aZend_Tool_Project_Context_Zf_DocsDirectory-% ]Zend_Tool_Project_Context_Zf_DbTableFile2$ gZend_Tool_Project_Context_Zf_DbTableDirectory/# aZend_Tool_Project_Context_Zf_DataDirectory6" oZend_Tool_Project_Context_Zf_ControllersDirectory0! cZend_Tool_Project_Context_Zf_ControllerFile2  gZend_Tool_Project_Context_Zf_ConfigsDirectory, [Zend_Tool_Project_Context_Zf_ConfigFile0 cZend_Tool_Project_Context_Zf_CacheDirectory/ aZend_Tool_Project_Context_Zf_BootstrapFile6 oZend_Tool_Project_Context_Zf_ApplicationDirectory7 qZend_Tool_Project_Context_Zf_ApplicationConfigFile/ aZend_Tool_Project_Context_Zf_ApisDirectory. _Zend_Tool_Project_Context_Zf_ActionMethod3 iZend_Tool_Project_Context_Zf_AbstractClassFile@ Zend_Tool_Project_Context_System_ProjectProvidersDirectory8 sZend_Tool_Project_Context_System_ProjectProfileFile6 oZend_Tool_Project_Context_System_ProjectDirectory) UZend_Tool_Project_Context_Repository. _Zend_Tool_Project_Context_Filesystem_File3 iZend_Tool_Project_Context_Filesystem_Directory2 gZend_Tool_Project_Context_Filesystem_Abstract( SZend_Tool_Project_Context_Exception- ]Zend_Tool_Project_Context_Content_Engine3 iZend_Tool_Project_Context_Content_Engine_Phtml; yZend_Tool_Project_Context_Content_Engine_CodeGenerator0 cZend_Tool_Framework_System_Provider_Version0 cZend_Tool_Framework_System_Provider_Phpinfo1
 eZend_Tool_Framework_System_Provider_Manifest/	 aZend_Tool_Framework_System_Provider_Config( SZend_Tool_Framework_System_Manifest- ]Zend_Tool_Framework_System_Action_Delete- ]Zend_Tool_Framework_System_Action_Create! EZend_Tool_Framework_Registry+ YZend_Tool_Framework_Registry_Exception+ YZend_Tool_Framework_Provider_Signature, [Zend_Tool_Framework_Provider_Repository+ YZend_Tool_Framework_Provider_Exception*  WZend_Tool_Framework_Provider_Abstract& OZend_Tool_Framework_Metadata_Tool)~ UZend_Tool_Framework_Metadata_Dynamic'} QZend_Tool_Framework_Metadata_Basic,| [Zend_Tool_Framework_Manifest_Repository2{ gZend_Tool_Framework_Manifest_ProviderMetadata*z WZend_Tool_Framework_Manifest_Metadata+y YZend_Tool_Framework_Manifest_Exception0x cZend_Tool_Framework_Manifest_ActionMetadata1w eZend_Tool_Framework_Loader_IncludePathLoaderJv Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator+u YZend_Tool_Framework_Loader_BasicLoader(t SZend_Tool_Framework_Loader_Abstract"s GZend_Tool_Framework_Exception'r QZend_Tool_Framework_Client_Storage1q eZend_Tool_Framework_Client_Storage_Directory(p SZend_Tool_Framework_Client_ResponseDo 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator'n QZend_Tool_Framework_Client_Request(m SZend_Tool_Framework_Client_Manifest9l uZend_Tool_Framework_Client_Interactive_InputResponse8k sZend_Tool_Framework_Client_Interactive_InputRequest8j sZend_Tool_Framework_Client_Interactive_InputHandler)i UZend_Tool_Framework_Client_Exception'h QZend_Tool_Framework_Client_ConsoleDg 	Zend_Tool_Framework_Client_Console_ResponseDecorator_IndentionDf 	Zend_Tool_Framework_Client_Console_ResponseDecorator_ColorizerCe Zend_Tool_Framework_Client_Console_ResponseDecorator_Blockize   Q  g1Sd-r)b


o
+			~	H	[!],}@n@i=a9]:oX='                          3Zend_Validate_Alpha 3Zend_Validate_Alnum~ 9Zend_Validate_Abstract} Zend_Uri| 'Zend_Uri_Http{ 1Zend_Uri_Exceptionz )Zend_Translatey 7Zend_Translate_Pluralx =Zend_Translate_Exceptionw 9Zend_Translate_Adapter!v EZend_Translate_Adapter_XmlTm!u EZend_Translate_Adapter_Xlifft AZend_Translate_Adapter_Tmxs AZend_Translate_Adapter_Tbxr ?Zend_Translate_Adapter_Qtq AZend_Translate_Adapter_Ini#p IZend_Translate_Adapter_Gettexto AZend_Translate_Adapter_Csv!n EZend_Translate_Adapter_Array$m KZend_Tool_Project_Provider_View$l KZend_Tool_Project_Provider_Test/k aZend_Tool_Project_Provider_ProjectProvider'j QZend_Tool_Project_Provider_Project'i QZend_Tool_Project_Provider_Profile&h OZend_Tool_Project_Provider_Module%g MZend_Tool_Project_Provider_Model(f SZend_Tool_Project_Provider_Manifest&e OZend_Tool_Project_Provider_Layout$d KZend_Tool_Project_Provider_Form)c UZend_Tool_Project_Provider_Exception'b QZend_Tool_Project_Provider_DbTable)a UZend_Tool_Project_Provider_DbAdapter*` WZend_Tool_Project_Provider_Controller+_ YZend_Tool_Project_Provider_Application&^ OZend_Tool_Project_Provider_Action(] SZend_Tool_Project_Provider_Abstract\ ?Zend_Tool_Project_Profile'[ QZend_Tool_Project_Profile_Resource9Z uZend_Tool_Project_Profile_Resource_SearchConstraints1Y eZend_Tool_Project_Profile_Resource_Container=X }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter5W mZend_Tool_Project_Profile_Iterator_ContextFilter-V ]Zend_Tool_Project_Profile_FileParser_Xml(U SZend_Tool_Project_Profile_Exception T CZend_Tool_Project_Exception<S {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory0R cZend_Tool_Project_Context_Zf_ViewsDirectory6Q oZend_Tool_Project_Context_Zf_ViewScriptsDirectory0P cZend_Tool_Project_Context_Zf_ViewScriptFile6O oZend_Tool_Project_Context_Zf_ViewHelpersDirectory6N oZend_Tool_Project_Context_Zf_ViewFiltersDirectoryAM Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory2L gZend_Tool_Project_Context_Zf_UploadsDirectory0K cZend_Tool_Project_Context_Zf_TestsDirectory7J qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile:I wZend_Tool_Project_Context_Zf_TestPHPUnitBootstrapFile@H Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory1G eZend_Tool_Project_Context_Zf_TestLibraryFile6F oZend_Tool_Project_Context_Zf_TestLibraryDirectory:E wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFileBD Zend_Tool_Project_Context_Zf_TestApplicationModulesDirectoryAC Zend_Tool_Project_Context_Zf_TestApplicationModuleDirectory:B wZend_Tool_Project_Context_Zf_TestApplicationDirectory@A Zend_Tool_Project_Context_Zf_TestApplicationControllerFileE@ Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory>? Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile=> }Zend_Tool_Project_Context_Zf_TestApplicationActionMethod4= kZend_Tool_Project_Context_Zf_TemporaryDirectory3< iZend_Tool_Project_Context_Zf_SessionsDirectory3; iZend_Tool_Project_Context_Zf_ServicesDirectory8: sZend_Tool_Project_Context_Zf_SearchIndexesDirectory<9 {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory88 sZend_Tool_Project_Context_Zf_PublicScriptsDirectory17 eZend_Tool_Project_Context_Zf_PublicIndexFile76 qZend_Tool_Project_Context_Zf_PublicImagesDirectory15 eZend_Tool_Project_Context_Zf_PublicDirectory54 mZend_Tool_Project_Context_Zf_ProjectProviderFile23 gZend_Tool_Project_Context_Zf_ModulesDirectory12 eZend_Tool_Project_Context_Zf_ModuleDirectory11 eZend_Tool_Project_Context_Zf_ModelsDirectory+0 YZend_Tool_Project_Context_Zf_ModelFile   o
 }X0wS0{S%lD!dC(



x
X
7
				x	S	3	[;|]B"yZ;dN9}^9iE#lF# pN,
                                    o ?Zend_View_Helper_HeadMetan ?Zend_View_Helper_HeadLinkm ?Zend_View_Helper_Gravatar"l GZend_View_Helper_FormTextareak ?Zend_View_Helper_FormText j CZend_View_Helper_FormSubmit i CZend_View_Helper_FormSelecth AZend_View_Helper_FormResetg AZend_View_Helper_FormRadio"f GZend_View_Helper_FormPassworde ?Zend_View_Helper_FormNote'd QZend_View_Helper_FormMultiCheckboxc AZend_View_Helper_FormLabelb AZend_View_Helper_FormImage a CZend_View_Helper_FormHidden` ?Zend_View_Helper_FormFile _ CZend_View_Helper_FormErrors!^ EZend_View_Helper_FormElement"] GZend_View_Helper_FormCheckbox \ CZend_View_Helper_FormButton[ 7Zend_View_Helper_FormZ ?Zend_View_Helper_FieldsetY =Zend_View_Helper_Doctype!X EZend_View_Helper_DeclareVarsW 9Zend_View_Helper_CycleV ?Zend_View_Helper_CurrencyU =Zend_View_Helper_BaseUrlT ;Zend_View_Helper_ActionS ?Zend_View_Helper_AbstractR 3Zend_View_ExceptionQ 1Zend_View_AbstractP %Zend_VersionO 'Zend_ValidateN AZend_Validate_StringLength#M IZend_Validate_Sitemap_PriorityL ?Zend_Validate_Sitemap_Loc"K GZend_Validate_Sitemap_Lastmod%J MZend_Validate_Sitemap_ChangefreqI 3Zend_Validate_RegexH 9Zend_Validate_PostCodeG 9Zend_Validate_NotEmptyF 9Zend_Validate_LessThanE 7Zend_Validate_Ldap_DnD 1Zend_Validate_IsbnC -Zend_Validate_IpB /Zend_Validate_IntA 7Zend_Validate_InArray@ ;Zend_Validate_Identical? 1Zend_Validate_Iban> 9Zend_Validate_Hostname= /Zend_Validate_Hex< ?Zend_Validate_GreaterThan; 3Zend_Validate_Float!: EZend_Validate_File_WordCount9 ?Zend_Validate_File_Upload8 ;Zend_Validate_File_Size7 ;Zend_Validate_File_Sha1!6 EZend_Validate_File_NotExists 5 CZend_Validate_File_MimeType4 9Zend_Validate_File_Md53 AZend_Validate_File_IsImage$2 KZend_Validate_File_IsCompressed!1 EZend_Validate_File_ImageSize0 ;Zend_Validate_File_Hash!/ EZend_Validate_File_FilesSize!. EZend_Validate_File_Extension- ?Zend_Validate_File_Exists', QZend_Validate_File_ExcludeMimeType(+ SZend_Validate_File_ExcludeExtension* =Zend_Validate_File_Crc32) =Zend_Validate_File_Count( ;Zend_Validate_Exception' AZend_Validate_EmailAddress& 5Zend_Validate_Digits"% GZend_Validate_Db_RecordExists$$ KZend_Validate_Db_NoRecordExists# ?Zend_Validate_Db_Abstract" 1Zend_Validate_Date! =Zend_Validate_CreditCard  3Zend_Validate_Ccnum 9Zend_Validate_Callback 7Zend_Validate_Between 7Zend_Validate_Barcode AZend_Validate_Barcode_Upce AZend_Validate_Barcode_Upca AZend_Validate_Barcode_Sscc$ KZend_Validate_Barcode_Royalmail" GZend_Validate_Barcode_Postnet! EZend_Validate_Barcode_Planet# IZend_Validate_Barcode_Leitcode  CZend_Validate_Barcode_Itf14 AZend_Validate_Barcode_Issn* WZend_Validate_Barcode_IntelligentMail$ KZend_Validate_Barcode_Identcode! EZend_Validate_Barcode_Gtin14! EZend_Validate_Barcode_Gtin13! EZend_Validate_Barcode_Gtin12 AZend_Validate_Barcode_Ean8 AZend_Validate_Barcode_Ean5 AZend_Validate_Barcode_Ean2  CZend_Validate_Barcode_Ean18 
 CZend_Validate_Barcode_Ean14 	 CZend_Validate_Barcode_Ean13  CZend_Validate_Barcode_Ean12$ KZend_Validate_Barcode_Code93ext! EZend_Validate_Barcode_Code93$ KZend_Validate_Barcode_Code39ext! EZend_Validate_Barcode_Code39, [Zend_Validate_Barcode_Code25interleaved! EZend_Validate_Barcode_Code25* WZend_Validate_Barcode_AdapterAbstract   j  qN,{[+yU*HyT'




g
U
+
				]	8	`E'jH,
dI)yX4w\BpQ6{W4nL.                           Y 9Zend_Amf_Response_HttpX -Zend_Amf_RequestW 7Zend_Amf_Request_HttpV ?Zend_Amf_Parse_TypeLoaderU ?Zend_Amf_Parse_Serializer#T IZend_Amf_Parse_Resource_Stream(S SZend_Amf_Parse_Resource_MysqlResult)R UZend_Amf_Parse_Resource_MysqliResult Q CZend_Amf_Parse_OutputStreamP AZend_Amf_Parse_InputStream O CZend_Amf_Parse_Deserializer#N IZend_Amf_Parse_Amf3_Serializer%M MZend_Amf_Parse_Amf3_Deserializer#L IZend_Amf_Parse_Amf0_Serializer%K MZend_Amf_Parse_Amf0_DeserializerJ 1Zend_Amf_ExceptionI 1Zend_Amf_ConstantsH 9Zend_Amf_Auth_Abstract G CZend_Amf_Adobe_IntrospectorF AZend_Amf_Adobe_DbInspectorE 3Zend_Amf_Adobe_AuthD Zend_AclC 'Zend_Acl_RoleB 9Zend_Acl_Role_Registry%A MZend_Acl_Role_Registry_Exception@ /Zend_Acl_Resource? 1Zend_Acl_Exception> /Zend_XmlRpc_Value= =Zend_XmlRpc_Value_Struct< =Zend_XmlRpc_Value_String; =Zend_XmlRpc_Value_Scalar: 7Zend_XmlRpc_Value_Nil9 ?Zend_XmlRpc_Value_Integer 8 CZend_XmlRpc_Value_Exception7 =Zend_XmlRpc_Value_Double6 AZend_XmlRpc_Value_DateTime!5 EZend_XmlRpc_Value_Collection4 ?Zend_XmlRpc_Value_Boolean!3 EZend_XmlRpc_Value_BigInteger2 =Zend_XmlRpc_Value_Base641 ;Zend_XmlRpc_Value_Array0 1Zend_XmlRpc_Server/ ?Zend_XmlRpc_Server_System. =Zend_XmlRpc_Server_Fault!- EZend_XmlRpc_Server_Exception, =Zend_XmlRpc_Server_Cache+ 5Zend_XmlRpc_Response* ?Zend_XmlRpc_Response_Http) 3Zend_XmlRpc_Request( ?Zend_XmlRpc_Request_Stdin' =Zend_XmlRpc_Request_Http$& KZend_XmlRpc_Generator_XmlWriter,% [Zend_XmlRpc_Generator_GeneratorAbstract&$ OZend_XmlRpc_Generator_DomDocument# /Zend_XmlRpc_Fault" 7Zend_XmlRpc_Exception! 1Zend_XmlRpc_Client#  IZend_XmlRpc_Client_ServerProxy+ YZend_XmlRpc_Client_ServerIntrospection+ YZend_XmlRpc_Client_IntrospectException% MZend_XmlRpc_Client_HttpException& OZend_XmlRpc_Client_FaultException! EZend_XmlRpc_Client_Exception& OZend_Wildfire_Protocol_JsonStream! EZend_Wildfire_Plugin_FirePhp. _Zend_Wildfire_Plugin_FirePhp_TableMessage) UZend_Wildfire_Plugin_FirePhp_Message ;Zend_Wildfire_Exception& OZend_Wildfire_Channel_HttpHeaders Zend_View -Zend_View_Stream AZend_View_Helper_UserAgent 5Zend_View_Helper_Url AZend_View_Helper_Translate =Zend_View_Helper_TinySrc AZend_View_Helper_ServerUrl) UZend_View_Helper_RenderToPlaceholder! EZend_View_Helper_Placeholder* WZend_View_Helper_Placeholder_Registry4
 kZend_View_Helper_Placeholder_Registry_Exception+	 YZend_View_Helper_Placeholder_Container6 oZend_View_Helper_Placeholder_Container_Standalone5 mZend_View_Helper_Placeholder_Container_Exception4 kZend_View_Helper_Placeholder_Container_Abstract! EZend_View_Helper_PartialLoop =Zend_View_Helper_Partial' QZend_View_Helper_Partial_Exception' QZend_View_Helper_PaginationControl  CZend_View_Helper_Navigation(  SZend_View_Helper_Navigation_Sitemap% MZend_View_Helper_Navigation_Menu&~ OZend_View_Helper_Navigation_Links/} aZend_View_Helper_Navigation_HelperAbstract,| [Zend_View_Helper_Navigation_Breadcrumbs{ ;Zend_View_Helper_Layoutz 7Zend_View_Helper_Json"y GZend_View_Helper_InlineScript#x IZend_View_Helper_HtmlQuicktimew ?Zend_View_Helper_HtmlPage v CZend_View_Helper_HtmlObjectu ?Zend_View_Helper_HtmlListt AZend_View_Helper_HtmlFlash!s EZend_View_Helper_HtmlElementr AZend_View_Helper_HeadTitleq AZend_View_Helper_HeadStyle p CZend_View_Helper_HeadScript   Z  ~W4sHX1vQ4kI



{
A
				T	dC"pDsJ"a6Ka9FZ#             +I YZend_Tool_Framework_Manifest_Interface+H YZend_Tool_Framework_Manifest_Indexable4G kZend_Tool_Framework_Manifest_ActionManifestable)F UZend_Tool_Framework_Loader_Interface8E sZend_Tool_Framework_Client_Storage_AdapterInterfaceDD 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface;C yZend_Tool_Framework_Client_Interactive_OutputInterface:B wZend_Tool_Framework_Client_Interactive_InputInterface)A UZend_Tool_Framework_Action_Interface(@ SZend_Text_Table_Decorator_Interface? /Zend_Tag_Taggable> 7Zend_Stdlib_Exception&= OZend_Soap_Wsdl_Strategy_Interface%< MZend_Session_Validator_Interface'; QZend_Session_SaveHandler_Interface$: KZend_Service_ShortUrl_ShortenerI9 Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Interface8 7Zend_Server_Interface-7 ]Zend_Serializer_Adapter_AdapterInterface46 kZend_Search_Lucene_Search_Highlighter_Interface!5 EZend_Search_Lucene_Interface34 iZend_Search_Lucene_Index_TermsStream_Interface$3 KZend_Queue_Stomp_FrameInterface02 cZend_Queue_Stomp_Client_ConnectionInterface(1 SZend_Queue_Adapter_AdapterInterface0 ?Zend_Pdf_Filter_Interface&/ OZend_Pdf_ElementFactory_Interface. ?Zend_Pdf_Canvas_Interface,- [Zend_Paginator_ScrollingStyle_Interface$, KZend_Paginator_AdapterAggregate%+ MZend_Paginator_Adapter_Interface&* OZend_Oauth_Config_ConfigInterface') QZend_Mobile_Push_Message_Interface( AZend_Mobile_Push_Interface$' KZend_Memory_Container_Interface1& eZend_Markup_Renderer_TokenConverterInterface'% QZend_Markup_Parser_ParserInterface)$ UZend_Mail_Storage_Writable_Interface'# QZend_Mail_Storage_Folder_Interface" =Zend_Mail_Part_Interface ! CZend_Mail_Message_Interface!  EZend_Log_Formatter_Interface ?Zend_Log_Filter_Interface ?Zend_Log_FactoryInterface ?Zend_Loader_SplAutoloader' QZend_Loader_PluginLoader_Interface% MZend_Loader_Autoloader_Interface0 cZend_Ldap_Node_Schema_ObjectClass_Interface2 gZend_Ldap_Node_Schema_AttributeType_Interface3 iZend_InfoCard_Xml_Security_Transform_Interface( SZend_InfoCard_Xml_KeyInfo_Interface( SZend_InfoCard_Xml_Element_Interface* WZend_InfoCard_Xml_Assertion_Interface- ]Zend_InfoCard_Cipher_Symmetric_Interface7 qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface7 qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interface+ YZend_InfoCard_Cipher_Pki_Rsa_Interface' QZend_InfoCard_Cipher_Pki_Interface$ KZend_InfoCard_Adapter_Interface  CZend_Http_UserAgent_Storage) UZend_Http_UserAgent_Features_Adapter AZend_Http_UserAgent_Device$ KZend_Http_Client_Adapter_Stream'
 QZend_Http_Client_Adapter_Interface	 AZend_Gdata_App_MediaSource. _Zend_Form_Decorator_Marker_File_Interface" GZend_Form_Decorator_Interface 7Zend_Filter_Interface" GZend_Filter_Encrypt_Interface+ YZend_Filter_Compress_CompressInterface0 cZend_Feed_Writer_Renderer_RendererInterface1 eZend_Feed_Writer_Extension_RendererInterface# IZend_Feed_Reader_FeedInterface$  KZend_Feed_Reader_EntryInterface7 qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface-~ ]Zend_Feed_Pubsubhubbub_CallbackInterface } CZend_Feed_Builder_Interface1| eZend_EventManager_SharedEventCollectionAware,{ [Zend_EventManager_SharedEventCollection(z SZend_EventManager_ListenerAggregatey =Zend_EventManager_Filter x CZend_EventManager_Exception(w SZend_EventManager_EventManagerAware'v QZend_EventManager_EventDescription&u OZend_EventManager_EventCollection t CZend_Db_Statement_Interface$s KZend_Currency_CurrencyInterface)r UZend_Crypt_Math_BigInteger_Interface+q YZend_Controller_Router_Route_Interface%p MZend_Controller_Router_Interface   Z  ]/`0p8xV,a2



}
Z
.

				l	E	rF~[;Z l>Z3qC	rG~V,               # ?Zend_Log_Filter_Interface" ?Zend_Log_FactoryInterface! ?Zend_Loader_SplAutoloader'  QZend_Loader_PluginLoader_Interface% MZend_Loader_Autoloader_Interface0 cZend_Ldap_Node_Schema_ObjectClass_Interface2 gZend_Ldap_Node_Schema_AttributeType_Interface3 iZend_InfoCard_Xml_Security_Transform_Interface( SZend_InfoCard_Xml_KeyInfo_Interface( SZend_InfoCard_Xml_Element_Interface* WZend_InfoCard_Xml_Assertion_Interface- ]Zend_InfoCard_Cipher_Symmetric_Interface7 qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface7 qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interface+ YZend_InfoCard_Cipher_Pki_Rsa_Interface' QZend_InfoCard_Cipher_Pki_Interface$ KZend_InfoCard_Adapter_Interface  CZend_Http_UserAgent_Storage) UZend_Http_UserAgent_Features_Adapter AZend_Http_UserAgent_Device$ KZend_Http_Client_Adapter_Stream' QZend_Http_Client_Adapter_Interface AZend_Gdata_App_MediaSource. _Zend_Form_Decorator_Marker_File_Interface" GZend_Form_Decorator_Interface
 7Zend_Filter_Interface"	 GZend_Filter_Encrypt_Interface+ YZend_Filter_Compress_CompressInterface0 cZend_Feed_Writer_Renderer_RendererInterface1 eZend_Feed_Writer_Extension_RendererInterface# IZend_Feed_Reader_FeedInterface$ KZend_Feed_Reader_EntryInterface7 qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface- ]Zend_Feed_Pubsubhubbub_CallbackInterface  CZend_Feed_Builder_Interface1  eZend_EventManager_SharedEventCollectionAware, [Zend_EventManager_SharedEventCollection(~ SZend_EventManager_ListenerAggregate} =Zend_EventManager_Filter | CZend_EventManager_Exception({ SZend_EventManager_EventManagerAware'z QZend_EventManager_EventDescription&y OZend_EventManager_EventCollection x CZend_Db_Statement_Interface$w KZend_Currency_CurrencyInterface)v UZend_Crypt_Math_BigInteger_Interface+u YZend_Controller_Router_Route_Interface%t MZend_Controller_Router_Interface)s UZend_Controller_Dispatcher_Interface%r MZend_Controller_Action_Interface&q OZend_Cloud_StorageService_Adapter$p KZend_Cloud_QueueService_Adapter&o OZend_Cloud_Infrastructure_Adapter,n [Zend_Cloud_DocumentService_QueryAdapter'm QZend_Cloud_DocumentService_Adapterl 5Zend_Captcha_Adapter!k EZend_Cache_Backend_Interface)j UZend_Cache_Backend_ExtendedInterface i CZend_Auth_Storage_Interface h CZend_Auth_Adapter_Interface.g _Zend_Auth_Adapter_Http_Resolver_Interface'f QZend_Application_Resource_Resource4e kZend_Application_Bootstrap_ResourceBootstrapper,d [Zend_Application_Bootstrap_Bootstrapperc ;Zend_Acl_Role_Interface b CZend_Acl_Resource_Interfacea ?Zend_Acl_Assert_Interface#` IZend_Wildfire_Plugin_Interface$_ KZend_Wildfire_Channel_Interface^ 3Zend_View_Interface'] QZend_View_Helper_Navigation_Helper\ AZend_View_Helper_Interface[ ;Zend_Validate_Interface+Z YZend_Validate_Barcode_AdapterInterface3Y iZend_Tool_Project_Profile_FileParser_Interface:X wZend_Tool_Project_Context_System_TopLevelRestrictable5W mZend_Tool_Project_Context_System_NotOverwritable/V aZend_Tool_Project_Context_System_Interface(U SZend_Tool_Project_Context_Interface+T YZend_Tool_Framework_Registry_Interface2S gZend_Tool_Framework_Registry_EnabledInterface-R ]Zend_Tool_Framework_Provider_Pretendable+Q YZend_Tool_Framework_Provider_Interface.P _Zend_Tool_Framework_Provider_Interactable/O aZend_Tool_Framework_Provider_Initializable;N yZend_Tool_Framework_Provider_DocblockManifestInterface+M YZend_Tool_Framework_Metadata_Interface.L _Zend_Tool_Framework_Metadata_Attributable6K oZend_Tool_Framework_Manifest_ProviderManifestable6J oZend_Tool_Framework_Manifest_MetadataManifestable   g  hE \,~IuP)yS,


x
O
%					k	J	&fE)qM*uT2tQ-yW(e@qI|X6                           !@ EZend_Cache_Frontend_Function? =Zend_Cache_Frontend_File> ?Zend_Cache_Frontend_Class = CZend_Cache_Frontend_Capture< 5Zend_Cache_Exception; +Zend_Cache_Core: 1Zend_Cache_Backend"9 GZend_Cache_Backend_ZendServer(8 SZend_Cache_Backend_ZendServer_ShMem'7 QZend_Cache_Backend_ZendServer_Disk$6 KZend_Cache_Backend_ZendPlatform5 ?Zend_Cache_Backend_Xcache 4 CZend_Cache_Backend_WinCache!3 EZend_Cache_Backend_TwoLevels2 ;Zend_Cache_Backend_Test1 ?Zend_Cache_Backend_Static0 ?Zend_Cache_Backend_Sqlite!/ EZend_Cache_Backend_Memcached$. KZend_Cache_Backend_Libmemcached- ;Zend_Cache_Backend_File!, EZend_Cache_Backend_BlackHole+ 9Zend_Cache_Backend_Apc* %Zend_Barcode) ?Zend_Barcode_Renderer_Svg+( YZend_Barcode_Renderer_RendererAbstract' ?Zend_Barcode_Renderer_Pdf & CZend_Barcode_Renderer_Image$% KZend_Barcode_Renderer_Exception$ =Zend_Barcode_Object_Upce# =Zend_Barcode_Object_Upca"" GZend_Barcode_Object_Royalmail ! CZend_Barcode_Object_Postnet  AZend_Barcode_Object_Planet' QZend_Barcode_Object_ObjectAbstract! EZend_Barcode_Object_Leitcode ?Zend_Barcode_Object_Itf14" GZend_Barcode_Object_Identcode" GZend_Barcode_Object_Exception ?Zend_Barcode_Object_Error =Zend_Barcode_Object_Ean8 =Zend_Barcode_Object_Ean5 =Zend_Barcode_Object_Ean2 ?Zend_Barcode_Object_Ean13 AZend_Barcode_Object_Code39* WZend_Barcode_Object_Code25interleaved AZend_Barcode_Object_Code25  CZend_Barcode_Object_Code128 9Zend_Barcode_Exception Zend_Auth ?Zend_Auth_Storage_Session$ KZend_Auth_Storage_NonPersistent  CZend_Auth_Storage_Exception -Zend_Auth_Result 3Zend_Auth_Exception
 =Zend_Auth_Adapter_OpenId	 9Zend_Auth_Adapter_Ldap AZend_Auth_Adapter_InfoCard 9Zend_Auth_Adapter_Http) UZend_Auth_Adapter_Http_Resolver_File. _Zend_Auth_Adapter_Http_Resolver_Exception  CZend_Auth_Adapter_Exception =Zend_Auth_Adapter_Digest ?Zend_Auth_Adapter_DbTable -Zend_Application#  IZend_Application_Resource_View( SZend_Application_Resource_UserAgent(~ SZend_Application_Resource_Translate&} OZend_Application_Resource_Session%| MZend_Application_Resource_Router/{ aZend_Application_Resource_ResourceAbstract)z UZend_Application_Resource_Navigation&y OZend_Application_Resource_Multidb&x OZend_Application_Resource_Modules#w IZend_Application_Resource_Mail"v GZend_Application_Resource_Log%u MZend_Application_Resource_Locale%t MZend_Application_Resource_Layout.s _Zend_Application_Resource_Frontcontroller(r SZend_Application_Resource_Exception#q IZend_Application_Resource_Dojo!p EZend_Application_Resource_Db+o YZend_Application_Resource_Cachemanager&n OZend_Application_Module_Bootstrap'm QZend_Application_Module_Autoloaderl AZend_Application_Exception)k UZend_Application_Bootstrap_Exception1j eZend_Application_Bootstrap_BootstrapAbstract)i UZend_Application_Bootstrap_Bootstraph ?Zend_Amf_Value_TraitsInfo-g ]Zend_Amf_Value_Messaging_RemotingMessage*f WZend_Amf_Value_Messaging_ErrorMessage,e [Zend_Amf_Value_Messaging_CommandMessage*d WZend_Amf_Value_Messaging_AsyncMessage-c ]Zend_Amf_Value_Messaging_ArrayCollection0b cZend_Amf_Value_Messaging_AcknowledgeMessage-a ]Zend_Amf_Value_Messaging_AbstractMessage!` EZend_Amf_Value_MessageHeader_ AZend_Amf_Value_MessageBody^ =Zend_Amf_Value_ByteArray] AZend_Amf_Util_BinaryStream\ +Zend_Amf_Server[ ?Zend_Amf_Server_ExceptionZ /Zend_Amf_Response   ]  tZ;m3].V(vJ



Z
%				y	N	N"c>
yQ(I tS+zaM'Op<                           ' QZend_Controller_Action_Helper_Json1 eZend_Controller_Action_Helper_FlashMessenger0 cZend_Controller_Action_Helper_ContextSwitch( SZend_Controller_Action_Helper_Cache< {Zend_Controller_Action_Helper_AutoCompleteScriptaculous3 iZend_Controller_Action_Helper_AutoCompleteDojo8 sZend_Controller_Action_Helper_AutoComplete_Abstract. _Zend_Controller_Action_Helper_AjaxContext. _Zend_Controller_Action_Helper_ActionStack+ YZend_Controller_Action_Helper_Abstract% MZend_Controller_Action_Exception 3Zend_Console_Getopt" GZend_Console_Getopt_Exception #Zend_Config -Zend_Config_Yaml +Zend_Config_Xml 1Zend_Config_Writer ;Zend_Config_Writer_Yaml 9Zend_Config_Writer_Xml
 ;Zend_Config_Writer_Json	 9Zend_Config_Writer_Ini$ KZend_Config_Writer_FileAbstract =Zend_Config_Writer_Array -Zend_Config_Json +Zend_Config_Ini 7Zend_Config_Exception$ KZend_CodeGenerator_Php_Property1 eZend_CodeGenerator_Php_Property_DefaultValue% MZend_CodeGenerator_Php_Parameter2  gZend_CodeGenerator_Php_Parameter_DefaultValue" GZend_CodeGenerator_Php_Method,~ [Zend_CodeGenerator_Php_Member_Container+} YZend_CodeGenerator_Php_Member_Abstract | CZend_CodeGenerator_Php_File%{ MZend_CodeGenerator_Php_Exception$z KZend_CodeGenerator_Php_Docblock(y SZend_CodeGenerator_Php_Docblock_Tag/x aZend_CodeGenerator_Php_Docblock_Tag_Return.w _Zend_CodeGenerator_Php_Docblock_Tag_Param0v cZend_CodeGenerator_Php_Docblock_Tag_License!u EZend_CodeGenerator_Php_Class t CZend_CodeGenerator_Php_Body$s KZend_CodeGenerator_Php_Abstract!r EZend_CodeGenerator_Exception q CZend_CodeGenerator_Abstract&p OZend_Cloud_StorageService_Factory(o SZend_Cloud_StorageService_Exception3n iZend_Cloud_StorageService_Adapter_WindowsAzure)m UZend_Cloud_StorageService_Adapter_S30l cZend_Cloud_StorageService_Adapter_Rackspace/k aZend_Cloud_StorageService_Adapter_Nirvanix1j eZend_Cloud_StorageService_Adapter_FileSystem'i QZend_Cloud_QueueService_MessageSet$h KZend_Cloud_QueueService_Message$g KZend_Cloud_QueueService_Factory&f OZend_Cloud_QueueService_Exception.e _Zend_Cloud_QueueService_Adapter_ZendQueue1d eZend_Cloud_QueueService_Adapter_WindowsAzure(c SZend_Cloud_QueueService_Adapter_Sqs4b kZend_Cloud_QueueService_Adapter_AbstractAdapter.a _Zend_Cloud_OperationNotAvailableException+` YZend_Cloud_Infrastructure_InstanceList'_ QZend_Cloud_Infrastructure_Instance(^ SZend_Cloud_Infrastructure_ImageList$] KZend_Cloud_Infrastructure_Image&\ OZend_Cloud_Infrastructure_Factory([ SZend_Cloud_Infrastructure_Exception0Z cZend_Cloud_Infrastructure_Adapter_Rackspace*Y WZend_Cloud_Infrastructure_Adapter_Ec26X oZend_Cloud_Infrastructure_Adapter_AbstractAdapterW 5Zend_Cloud_Exception%V MZend_Cloud_DocumentService_Query'U QZend_Cloud_DocumentService_Factory)T UZend_Cloud_DocumentService_Exception+S YZend_Cloud_DocumentService_DocumentSet(R SZend_Cloud_DocumentService_Document4Q kZend_Cloud_DocumentService_Adapter_WindowsAzure:P wZend_Cloud_DocumentService_Adapter_WindowsAzure_Query0O cZend_Cloud_DocumentService_Adapter_SimpleDb6N oZend_Cloud_DocumentService_Adapter_SimpleDb_Query7M qZend_Cloud_DocumentService_Adapter_AbstractAdapterL AZend_Cloud_AbstractFactoryK /Zend_Captcha_WordJ 9Zend_Captcha_ReCaptchaI 1Zend_Captcha_ImageH 3Zend_Captcha_FigletG 9Zend_Captcha_ExceptionF /Zend_Captcha_DumbE /Zend_Captcha_BaseD !Zend_CacheC 1Zend_Cache_ManagerB =Zend_Cache_Frontend_PageA AZend_Cache_Frontend_Output   k r8hF( Y0c9mD



j
?
					c	K	!pO,
vY=+
}^5gE%~iF%oK oQ&hD*                                      " GZend_Db_Table_Rowset_Abstract /Zend_Db_Table_Row  CZend_Db_Table_Row_Exception AZend_Db_Table_Row_Abstract ;Zend_Db_Table_Exception =Zend_Db_Table_Definition 9Zend_Db_Table_Abstract /Zend_Db_Statement  =Zend_Db_Statement_Sqlsrv' QZend_Db_Statement_Sqlsrv_Exception~ 7Zend_Db_Statement_Pdo} ?Zend_Db_Statement_Pdo_Oci| ?Zend_Db_Statement_Pdo_Ibm{ =Zend_Db_Statement_Oracle'z QZend_Db_Statement_Oracle_Exceptiony =Zend_Db_Statement_Mysqli'x QZend_Db_Statement_Mysqli_Exception w CZend_Db_Statement_Exceptionv 7Zend_Db_Statement_Db2$u KZend_Db_Statement_Db2_Exceptiont )Zend_Db_Selects =Zend_Db_Select_Exceptionr -Zend_Db_Profilerq 9Zend_Db_Profiler_Queryp =Zend_Db_Profiler_Firebugo AZend_Db_Profiler_Exceptionn %Zend_Db_Exprm /Zend_Db_Exceptionl 9Zend_Db_Adapter_Sqlsrv%k MZend_Db_Adapter_Sqlsrv_Exceptionj AZend_Db_Adapter_Pdo_Sqlitei ?Zend_Db_Adapter_Pdo_Pgsqlh ;Zend_Db_Adapter_Pdo_Ocig ?Zend_Db_Adapter_Pdo_Mysqlf ?Zend_Db_Adapter_Pdo_Mssqle ;Zend_Db_Adapter_Pdo_Ibm d CZend_Db_Adapter_Pdo_Ibm_Ids c CZend_Db_Adapter_Pdo_Ibm_Db2!b EZend_Db_Adapter_Pdo_Abstracta 9Zend_Db_Adapter_Oracle%` MZend_Db_Adapter_Oracle_Exception_ 9Zend_Db_Adapter_Mysqli%^ MZend_Db_Adapter_Mysqli_Exception] ?Zend_Db_Adapter_Exception\ 3Zend_Db_Adapter_Db2"[ GZend_Db_Adapter_Db2_ExceptionZ =Zend_Db_Adapter_AbstractY Zend_DateX 3Zend_Date_ExceptionW 5Zend_Date_DateObjectV -Zend_Date_CitiesU 'Zend_CurrencyT ;Zend_Currency_ExceptionS !Zend_CryptR )Zend_Crypt_RsaQ 1Zend_Crypt_Rsa_KeyP ?Zend_Crypt_Rsa_Key_PublicO AZend_Crypt_Rsa_Key_PrivateN =Zend_Crypt_Rsa_ExceptionM +Zend_Crypt_MathL ?Zend_Crypt_Math_ExceptionK AZend_Crypt_Math_BigInteger#J IZend_Crypt_Math_BigInteger_Gmp)I UZend_Crypt_Math_BigInteger_Exception&H OZend_Crypt_Math_BigInteger_BcmathG +Zend_Crypt_HmacF ?Zend_Crypt_Hmac_ExceptionE 5Zend_Crypt_ExceptionD =Zend_Crypt_DiffieHellman'C QZend_Crypt_DiffieHellman_Exception!B EZend_Controller_Router_Route(A SZend_Controller_Router_Route_Static'@ QZend_Controller_Router_Route_Regex(? SZend_Controller_Router_Route_Module*> WZend_Controller_Router_Route_Hostname'= QZend_Controller_Router_Route_Chain*< WZend_Controller_Router_Route_Abstract#; IZend_Controller_Router_Rewrite%: MZend_Controller_Router_Exception$9 KZend_Controller_Router_Abstract*8 WZend_Controller_Response_HttpTestCase"7 GZend_Controller_Response_Http'6 QZend_Controller_Response_Exception!5 EZend_Controller_Response_Cli&4 OZend_Controller_Response_Abstract#3 IZend_Controller_Request_Simple)2 UZend_Controller_Request_HttpTestCase!1 EZend_Controller_Request_Http&0 OZend_Controller_Request_Exception&/ OZend_Controller_Request_Apache404%. MZend_Controller_Request_Abstract&- OZend_Controller_Plugin_PutHandler(, SZend_Controller_Plugin_ErrorHandler"+ GZend_Controller_Plugin_Broker'* QZend_Controller_Plugin_ActionStack$) KZend_Controller_Plugin_Abstract( 7Zend_Controller_Front' ?Zend_Controller_Exception(& SZend_Controller_Dispatcher_Standard)% UZend_Controller_Dispatcher_Exception($ SZend_Controller_Dispatcher_Abstract# 9Zend_Controller_Action(" SZend_Controller_Action_HelperBroker6! oZend_Controller_Action_HelperBroker_PriorityStack/  aZend_Controller_Action_Helper_ViewRenderer& OZend_Controller_Action_Helper_Url- ]Zend_Controller_Action_Helper_Redirector   b  xbR?"[.uE}N#O"



m
G
				p	B	#	`;kA{M*uKtI"ucH'	n>S<!
                               j ;Zend_Feed_Builder_Entryi )Zend_Feed_Atomh 1Zend_Feed_Abstractg )Zend_Exception)f UZend_EventManager_StaticEventManager)e UZend_EventManager_SharedEventManager)d UZend_EventManager_ResponseCollectionc SplStack)b UZend_EventManager_GlobalEventManager"a GZend_EventManager_FilterChain,` [Zend_EventManager_Filter_FilterIterator9_ uZend_EventManager_Exception_InvalidArgumentException#^ IZend_EventManager_EventManager] ;Zend_EventManager_Event\ )Zend_Dom_Query[ 7Zend_Dom_Query_ResultZ =Zend_Dom_Query_Css2XpathY 1Zend_Dom_ExceptionX Zend_Dojo)W UZend_Dojo_View_Helper_VerticalSlider,V [Zend_Dojo_View_Helper_ValidationTextBox&U OZend_Dojo_View_Helper_TimeTextBox"T GZend_Dojo_View_Helper_TextBox#S IZend_Dojo_View_Helper_Textarea'R QZend_Dojo_View_Helper_TabContainer'Q QZend_Dojo_View_Helper_SubmitButton)P UZend_Dojo_View_Helper_StackContainer)O UZend_Dojo_View_Helper_SplitContainer!N EZend_Dojo_View_Helper_Slider)M UZend_Dojo_View_Helper_SimpleTextarea&L OZend_Dojo_View_Helper_RadioButton*K WZend_Dojo_View_Helper_PasswordTextBox(J SZend_Dojo_View_Helper_NumberTextBox(I SZend_Dojo_View_Helper_NumberSpinner+H YZend_Dojo_View_Helper_HorizontalSliderG AZend_Dojo_View_Helper_Form*F WZend_Dojo_View_Helper_FilteringSelect!E EZend_Dojo_View_Helper_EditorD AZend_Dojo_View_Helper_Dojo)C UZend_Dojo_View_Helper_Dojo_Container)B UZend_Dojo_View_Helper_DijitContainer A CZend_Dojo_View_Helper_Dijit&@ OZend_Dojo_View_Helper_DateTextBox&? OZend_Dojo_View_Helper_CustomDijit*> WZend_Dojo_View_Helper_CurrencyTextBox&= OZend_Dojo_View_Helper_ContentPane#< IZend_Dojo_View_Helper_ComboBox#; IZend_Dojo_View_Helper_CheckBox!: EZend_Dojo_View_Helper_Button*9 WZend_Dojo_View_Helper_BorderContainer(8 SZend_Dojo_View_Helper_AccordionPane-7 ]Zend_Dojo_View_Helper_AccordionContainer6 =Zend_Dojo_View_Exception5 )Zend_Dojo_Form4 9Zend_Dojo_Form_SubForm*3 WZend_Dojo_Form_Element_VerticalSlider-2 ]Zend_Dojo_Form_Element_ValidationTextBox'1 QZend_Dojo_Form_Element_TimeTextBox#0 IZend_Dojo_Form_Element_TextBox$/ KZend_Dojo_Form_Element_Textarea(. SZend_Dojo_Form_Element_SubmitButton"- GZend_Dojo_Form_Element_Slider*, WZend_Dojo_Form_Element_SimpleTextarea'+ QZend_Dojo_Form_Element_RadioButton+* YZend_Dojo_Form_Element_PasswordTextBox)) UZend_Dojo_Form_Element_NumberTextBox)( UZend_Dojo_Form_Element_NumberSpinner,' [Zend_Dojo_Form_Element_HorizontalSlider+& YZend_Dojo_Form_Element_FilteringSelect"% GZend_Dojo_Form_Element_Editor&$ OZend_Dojo_Form_Element_DijitMulti!# EZend_Dojo_Form_Element_Dijit'" QZend_Dojo_Form_Element_DateTextBox+! YZend_Dojo_Form_Element_CurrencyTextBox$  KZend_Dojo_Form_Element_ComboBox$ KZend_Dojo_Form_Element_CheckBox" GZend_Dojo_Form_Element_Button  CZend_Dojo_Form_DisplayGroup* WZend_Dojo_Form_Decorator_TabContainer, [Zend_Dojo_Form_Decorator_StackContainer, [Zend_Dojo_Form_Decorator_SplitContainer' QZend_Dojo_Form_Decorator_DijitForm* WZend_Dojo_Form_Decorator_DijitElement, [Zend_Dojo_Form_Decorator_DijitContainer) UZend_Dojo_Form_Decorator_ContentPane- ]Zend_Dojo_Form_Decorator_BorderContainer+ YZend_Dojo_Form_Decorator_AccordionPane0 cZend_Dojo_Form_Decorator_AccordionContainer 3Zend_Dojo_Exception )Zend_Dojo_Data 5Zend_Dojo_BuildLayer !Zend_Debug Zend_Db 'Zend_Db_Table 5Zend_Db_Table_Select# IZend_Db_Table_Select_Exception
 5Zend_Db_Table_Rowset#	 IZend_Db_Table_Rowset_Exception   ]  y_>!d1yZ/`9t<


t
C
				I	zdC$z=i1I r9|\C1z`F)`?                                G 5Zend_Filter_CompressF =Zend_Filter_Compress_ZipE =Zend_Filter_Compress_TarD =Zend_Filter_Compress_RarC =Zend_Filter_Compress_LzfB ;Zend_Filter_Compress_Gz*A WZend_Filter_Compress_CompressAbstract@ =Zend_Filter_Compress_Bz2? 5Zend_Filter_Callback> 3Zend_Filter_Boolean= 5Zend_Filter_BaseName< /Zend_Filter_Alpha; /Zend_Filter_Alnum: 1Zend_File_Transfer!9 EZend_File_Transfer_Exception$8 KZend_File_Transfer_Adapter_Http(7 SZend_File_Transfer_Adapter_Abstract6 AZend_File_ClassFileLocator5 Zend_Feed4 -Zend_Feed_Writer3 ;Zend_Feed_Writer_Source/2 aZend_Feed_Writer_Renderer_RendererAbstract'1 QZend_Feed_Writer_Renderer_Feed_Rss(0 SZend_Feed_Writer_Renderer_Feed_Atom// aZend_Feed_Writer_Renderer_Feed_Atom_Source5. mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract(- SZend_Feed_Writer_Renderer_Entry_Rss), UZend_Feed_Writer_Renderer_Entry_Atom1+ eZend_Feed_Writer_Renderer_Entry_Atom_Deleted* 7Zend_Feed_Writer_Feed') QZend_Feed_Writer_Feed_FeedAbstract<( {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry8' sZend_Feed_Writer_Extension_Threading_Renderer_Entry4& kZend_Feed_Writer_Extension_Slash_Renderer_Entry0% cZend_Feed_Writer_Extension_RendererAbstract4$ kZend_Feed_Writer_Extension_ITunes_Renderer_Feed5# mZend_Feed_Writer_Extension_ITunes_Renderer_Entry+" YZend_Feed_Writer_Extension_ITunes_Feed,! [Zend_Feed_Writer_Extension_ITunes_Entry8  sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed9 uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry6 oZend_Feed_Writer_Extension_Content_Renderer_Entry2 gZend_Feed_Writer_Extension_Atom_Renderer_Feed6 oZend_Feed_Writer_Exception_InvalidMethodException 9Zend_Feed_Writer_Entry =Zend_Feed_Writer_Deleted 'Zend_Feed_Rss -Zend_Feed_Reader =Zend_Feed_Reader_FeedSet" GZend_Feed_Reader_FeedAbstract ?Zend_Feed_Reader_Feed_Rss AZend_Feed_Reader_Feed_Atom& OZend_Feed_Reader_Feed_Atom_Source3 iZend_Feed_Reader_Extension_WellFormedWeb_Entry, [Zend_Feed_Reader_Extension_Thread_Entry0 cZend_Feed_Reader_Extension_Syndication_Feed+ YZend_Feed_Reader_Extension_Slash_Entry, [Zend_Feed_Reader_Extension_Podcast_Feed- ]Zend_Feed_Reader_Extension_Podcast_Entry, [Zend_Feed_Reader_Extension_FeedAbstract- ]Zend_Feed_Reader_Extension_EntryAbstract/
 aZend_Feed_Reader_Extension_DublinCore_Feed0	 cZend_Feed_Reader_Extension_DublinCore_Entry4 kZend_Feed_Reader_Extension_CreativeCommons_Feed5 mZend_Feed_Reader_Extension_CreativeCommons_Entry- ]Zend_Feed_Reader_Extension_Content_Entry) UZend_Feed_Reader_Extension_Atom_Feed* WZend_Feed_Reader_Extension_Atom_Entry# IZend_Feed_Reader_EntryAbstract AZend_Feed_Reader_Entry_Rss  CZend_Feed_Reader_Entry_Atom   CZend_Feed_Reader_Collection3 iZend_Feed_Reader_Collection_CollectionAbstract)~ UZend_Feed_Reader_Collection_Category'} QZend_Feed_Reader_Collection_Author| 9Zend_Feed_Pubsubhubbub&{ OZend_Feed_Pubsubhubbub_Subscriber/z aZend_Feed_Pubsubhubbub_Subscriber_Callback%y MZend_Feed_Pubsubhubbub_Publisher.x _Zend_Feed_Pubsubhubbub_Model_Subscription/w aZend_Feed_Pubsubhubbub_Model_ModelAbstract(v SZend_Feed_Pubsubhubbub_HttpResponse%u MZend_Feed_Pubsubhubbub_Exception,t [Zend_Feed_Pubsubhubbub_CallbackAbstracts 3Zend_Feed_Exceptionr 3Zend_Feed_Entry_Rssq 5Zend_Feed_Entry_Atomp =Zend_Feed_Entry_Abstracto /Zend_Feed_Elementn /Zend_Feed_Builderm =Zend_Feed_Builder_Header$l KZend_Feed_Builder_Header_Itunes k CZend_Feed_Builder_Exception   k	 oK/iH*kN,
T%}O&



p
\
7
				o	G	$nG#hA"yZ9iI)kO5#Y2R5oR1	                                           $2 KZend_Gdata_App_Extension_Author1 =Zend_Gdata_App_Exception0 5Zend_Gdata_App_Entry,/ [Zend_Gdata_App_CaptchaRequiredException#. IZend_Gdata_App_BaseMediaSource- 3Zend_Gdata_App_Base*, WZend_Gdata_App_BadMethodCallException!+ EZend_Gdata_App_AuthException* 5Zend_Gdata_Analytics+) YZend_Gdata_Analytics_Extension_TableId,( [Zend_Gdata_Analytics_Extension_Property*' WZend_Gdata_Analytics_Extension_Metric& ?Zend_Gdata_Analytics_Goal-% ]Zend_Gdata_Analytics_Extension_Dimension#$ IZend_Gdata_Analytics_DataQuery"# GZend_Gdata_Analytics_DataFeed#" IZend_Gdata_Analytics_DataEntry&! OZend_Gdata_Analytics_AccountQuery%  MZend_Gdata_Analytics_AccountFeed& OZend_Gdata_Analytics_AccountEntry Zend_Form /Zend_Form_SubForm 3Zend_Form_Exception /Zend_Form_Element ;Zend_Form_Element_Xhtml AZend_Form_Element_Textarea 9Zend_Form_Element_Text =Zend_Form_Element_Submit =Zend_Form_Element_Select ;Zend_Form_Element_Reset ;Zend_Form_Element_Radio AZend_Form_Element_Password 9Zend_Form_Element_Note" GZend_Form_Element_Multiselect$ KZend_Form_Element_MultiCheckbox ;Zend_Form_Element_Multi ;Zend_Form_Element_Image =Zend_Form_Element_Hidden 9Zend_Form_Element_Hash 9Zend_Form_Element_File 
 CZend_Form_Element_Exception	 AZend_Form_Element_Checkbox ?Zend_Form_Element_Captcha =Zend_Form_Element_Button 9Zend_Form_DisplayGroup# IZend_Form_Decorator_ViewScript# IZend_Form_Decorator_ViewHelper  CZend_Form_Decorator_Tooltip( SZend_Form_Decorator_PrepareElements ?Zend_Form_Decorator_Label  ?Zend_Form_Decorator_Image  CZend_Form_Decorator_HtmlTag#~ IZend_Form_Decorator_FormErrors%} MZend_Form_Decorator_FormElements| =Zend_Form_Decorator_Form{ =Zend_Form_Decorator_File!z EZend_Form_Decorator_Fieldset"y GZend_Form_Decorator_Exceptionx AZend_Form_Decorator_Errors$w KZend_Form_Decorator_DtDdWrapper$v KZend_Form_Decorator_Description u CZend_Form_Decorator_Captcha%t MZend_Form_Decorator_Captcha_Word*s WZend_Form_Decorator_Captcha_ReCaptcha!r EZend_Form_Decorator_Callback!q EZend_Form_Decorator_Abstractp #Zend_Filter+o YZend_Filter_Word_UnderscoreToSeparator&n OZend_Filter_Word_UnderscoreToDash+m YZend_Filter_Word_UnderscoreToCamelCase*l WZend_Filter_Word_SeparatorToSeparator%k MZend_Filter_Word_SeparatorToDash*j WZend_Filter_Word_SeparatorToCamelCase(i SZend_Filter_Word_Separator_Abstract&h OZend_Filter_Word_DashToUnderscore%g MZend_Filter_Word_DashToSeparator%f MZend_Filter_Word_DashToCamelCase+e YZend_Filter_Word_CamelCaseToUnderscore*d WZend_Filter_Word_CamelCaseToSeparator%c MZend_Filter_Word_CamelCaseToDashb 7Zend_Filter_StripTagsa ?Zend_Filter_StripNewlines` 9Zend_Filter_StringTrim_ ?Zend_Filter_StringToUpper^ ?Zend_Filter_StringToLower] 5Zend_Filter_RealPath\ ;Zend_Filter_PregReplace[ -Zend_Filter_Null&Z OZend_Filter_NormalizedToLocalized&Y OZend_Filter_LocalizedToNormalizedX +Zend_Filter_IntW /Zend_Filter_InputV 7Zend_Filter_InflectorU =Zend_Filter_HtmlEntitiesT AZend_Filter_File_UpperCaseS ;Zend_Filter_File_RenameR AZend_Filter_File_LowerCaseQ =Zend_Filter_File_EncryptP =Zend_Filter_File_DecryptO 7Zend_Filter_ExceptionN 3Zend_Filter_Encrypt M CZend_Filter_Encrypt_OpensslL AZend_Filter_Encrypt_McryptK +Zend_Filter_DirJ 1Zend_Filter_DigitsI 3Zend_Filter_DecryptH 9Zend_Filter_Decompress   _  W0gC~V.e@_<



y
b
G
				f	5		P+|U#pA~Y=e8q?{]2Y3                               $ KZend_Gdata_Exif_Extension_Model# IZend_Gdata_Exif_Extension_Make" GZend_Gdata_Exif_Extension_Iso, [Zend_Gdata_Exif_Extension_ImageUniqueId$ KZend_Gdata_Exif_Extension_FStop* WZend_Gdata_Exif_Extension_FocalLength$ KZend_Gdata_Exif_Extension_Flash'
 QZend_Gdata_Exif_Extension_Exposure'	 QZend_Gdata_Exif_Extension_Distance 7Zend_Gdata_Exif_Entry -Zend_Gdata_Entry 7Zend_Gdata_DublinCore* WZend_Gdata_DublinCore_Extension_Title, [Zend_Gdata_DublinCore_Extension_Subject+ YZend_Gdata_DublinCore_Extension_Rights. _Zend_Gdata_DublinCore_Extension_Publisher- ]Zend_Gdata_DublinCore_Extension_Language/  aZend_Gdata_DublinCore_Extension_Identifier+ YZend_Gdata_DublinCore_Extension_Format0~ cZend_Gdata_DublinCore_Extension_Description)} UZend_Gdata_DublinCore_Extension_Date,| [Zend_Gdata_DublinCore_Extension_Creator{ +Zend_Gdata_Docsz 7Zend_Gdata_Docs_Query%y MZend_Gdata_Docs_DocumentListFeed&x OZend_Gdata_Docs_DocumentListEntryw 9Zend_Gdata_ClientLoginv 3Zend_Gdata_Calendar!u EZend_Gdata_Calendar_ListFeed"t GZend_Gdata_Calendar_ListEntry-s ]Zend_Gdata_Calendar_Extension_WebContent+r YZend_Gdata_Calendar_Extension_Timezone9q uZend_Gdata_Calendar_Extension_SendEventNotifications+p YZend_Gdata_Calendar_Extension_Selected+o YZend_Gdata_Calendar_Extension_QuickAdd'n QZend_Gdata_Calendar_Extension_Link)m UZend_Gdata_Calendar_Extension_Hidden(l SZend_Gdata_Calendar_Extension_Color.k _Zend_Gdata_Calendar_Extension_AccessLevel#j IZend_Gdata_Calendar_EventQuery"i GZend_Gdata_Calendar_EventFeed#h IZend_Gdata_Calendar_EventEntryg -Zend_Gdata_Books!f EZend_Gdata_Books_VolumeQuery e CZend_Gdata_Books_VolumeFeed!d EZend_Gdata_Books_VolumeEntry+c YZend_Gdata_Books_Extension_Viewability-b ]Zend_Gdata_Books_Extension_ThumbnailLink&a OZend_Gdata_Books_Extension_Review+` YZend_Gdata_Books_Extension_PreviewLink(_ SZend_Gdata_Books_Extension_InfoLink-^ ]Zend_Gdata_Books_Extension_Embeddability)] UZend_Gdata_Books_Extension_BooksLink-\ ]Zend_Gdata_Books_Extension_BooksCategory.[ _Zend_Gdata_Books_Extension_AnnotationLink$Z KZend_Gdata_Books_CollectionFeed%Y MZend_Gdata_Books_CollectionEntryX 1Zend_Gdata_AuthSubW )Zend_Gdata_App$V KZend_Gdata_App_VersionExceptionU 3Zend_Gdata_App_Util#T IZend_Gdata_App_MediaFileSourceS ?Zend_Gdata_App_MediaEntry2R gZend_Gdata_App_LoggingHttpClientAdapterSocketQ AZend_Gdata_App_IOException,P [Zend_Gdata_App_InvalidArgumentException!O EZend_Gdata_App_HttpException$N KZend_Gdata_App_FeedSourceParent#M IZend_Gdata_App_FeedEntryParentL 3Zend_Gdata_App_FeedK =Zend_Gdata_App_Extension!J EZend_Gdata_App_Extension_Uri%I MZend_Gdata_App_Extension_Updated#H IZend_Gdata_App_Extension_Title"G GZend_Gdata_App_Extension_Text%F MZend_Gdata_App_Extension_Summary&E OZend_Gdata_App_Extension_Subtitle$D KZend_Gdata_App_Extension_Source$C KZend_Gdata_App_Extension_Rights'B QZend_Gdata_App_Extension_Published$A KZend_Gdata_App_Extension_Person"@ GZend_Gdata_App_Extension_Name"? GZend_Gdata_App_Extension_Logo"> GZend_Gdata_App_Extension_Link = CZend_Gdata_App_Extension_Id"< GZend_Gdata_App_Extension_Icon'; QZend_Gdata_App_Extension_Generator#: IZend_Gdata_App_Extension_Email%9 MZend_Gdata_App_Extension_Element$8 KZend_Gdata_App_Extension_Edited#7 IZend_Gdata_App_Extension_Draft%6 MZend_Gdata_App_Extension_Control)5 UZend_Gdata_App_Extension_Contributor%4 MZend_Gdata_App_Extension_Content&3 OZend_Gdata_App_Extension_Category   c  }Q'])tL^= `0




b
6

				v	Q	-	pM)
x_@jDlD(qG'qR!\.r>                  .t _Zend_Gdata_Media_Extension_MediaThumbnail)s UZend_Gdata_Media_Extension_MediaText0r cZend_Gdata_Media_Extension_MediaRestriction+q YZend_Gdata_Media_Extension_MediaRating+p YZend_Gdata_Media_Extension_MediaPlayer-o ]Zend_Gdata_Media_Extension_MediaKeywords)n UZend_Gdata_Media_Extension_MediaHash*m WZend_Gdata_Media_Extension_MediaGroup0l cZend_Gdata_Media_Extension_MediaDescription+k YZend_Gdata_Media_Extension_MediaCredit.j _Zend_Gdata_Media_Extension_MediaCopyright,i [Zend_Gdata_Media_Extension_MediaContent-h ]Zend_Gdata_Media_Extension_MediaCategoryg 9Zend_Gdata_Media_Entryf AZend_Gdata_Kind_EventEntrye 7Zend_Gdata_HttpClient*d WZend_Gdata_HttpAdapterStreamingSocket)c UZend_Gdata_HttpAdapterStreamingProxyb /Zend_Gdata_Healtha ;Zend_Gdata_Health_Query&` OZend_Gdata_Health_ProfileListFeed'_ QZend_Gdata_Health_ProfileListEntry"^ GZend_Gdata_Health_ProfileFeed#] IZend_Gdata_Health_ProfileEntry$\ KZend_Gdata_Health_Extension_Ccr[ )Zend_Gdata_GeoZ 3Zend_Gdata_Geo_Feed$Y KZend_Gdata_Geo_Extension_GmlPos&X OZend_Gdata_Geo_Extension_GmlPoint)W UZend_Gdata_Geo_Extension_GeoRssWhereV 5Zend_Gdata_Geo_EntryU -Zend_Gdata_Gbase"T GZend_Gdata_Gbase_SnippetQuery!S EZend_Gdata_Gbase_SnippetFeed"R GZend_Gdata_Gbase_SnippetEntryQ 9Zend_Gdata_Gbase_QueryP AZend_Gdata_Gbase_ItemQueryO ?Zend_Gdata_Gbase_ItemFeedN AZend_Gdata_Gbase_ItemEntryM 7Zend_Gdata_Gbase_Feed-L ]Zend_Gdata_Gbase_Extension_BaseAttributeK 9Zend_Gdata_Gbase_EntryJ -Zend_Gdata_GappsI AZend_Gdata_Gapps_UserQueryH ?Zend_Gdata_Gapps_UserFeedG AZend_Gdata_Gapps_UserEntry&F OZend_Gdata_Gapps_ServiceExceptionE 9Zend_Gdata_Gapps_Query D CZend_Gdata_Gapps_OwnerQueryC AZend_Gdata_Gapps_OwnerFeed B CZend_Gdata_Gapps_OwnerEntry#A IZend_Gdata_Gapps_NicknameQuery"@ GZend_Gdata_Gapps_NicknameFeed#? IZend_Gdata_Gapps_NicknameEntry!> EZend_Gdata_Gapps_MemberQuery = CZend_Gdata_Gapps_MemberFeed!< EZend_Gdata_Gapps_MemberEntry ; CZend_Gdata_Gapps_GroupQuery: AZend_Gdata_Gapps_GroupFeed 9 CZend_Gdata_Gapps_GroupEntry%8 MZend_Gdata_Gapps_Extension_Quota(7 SZend_Gdata_Gapps_Extension_Property(6 SZend_Gdata_Gapps_Extension_Nickname$5 KZend_Gdata_Gapps_Extension_Name%4 MZend_Gdata_Gapps_Extension_Login)3 UZend_Gdata_Gapps_Extension_EmailList2 9Zend_Gdata_Gapps_Error-1 ]Zend_Gdata_Gapps_EmailListRecipientQuery,0 [Zend_Gdata_Gapps_EmailListRecipientFeed-/ ]Zend_Gdata_Gapps_EmailListRecipientEntry$. KZend_Gdata_Gapps_EmailListQuery#- IZend_Gdata_Gapps_EmailListFeed$, KZend_Gdata_Gapps_EmailListEntry+ +Zend_Gdata_Feed* 5Zend_Gdata_Extension) =Zend_Gdata_Extension_Who( AZend_Gdata_Extension_Where' ?Zend_Gdata_Extension_When$& KZend_Gdata_Extension_Visibility&% OZend_Gdata_Extension_Transparency"$ GZend_Gdata_Extension_Reminder-# ]Zend_Gdata_Extension_RecurrenceException$" KZend_Gdata_Extension_Recurrence ! CZend_Gdata_Extension_Rating'  QZend_Gdata_Extension_OriginalEvent0 cZend_Gdata_Extension_OpenSearchTotalResults. _Zend_Gdata_Extension_OpenSearchStartIndex0 cZend_Gdata_Extension_OpenSearchItemsPerPage" GZend_Gdata_Extension_FeedLink* WZend_Gdata_Extension_ExtendedProperty% MZend_Gdata_Extension_EventStatus# IZend_Gdata_Extension_EntryLink" GZend_Gdata_Extension_Comments& OZend_Gdata_Extension_AttendeeType( SZend_Gdata_Extension_AttendeeStatus +Zend_Gdata_Exif 5Zend_Gdata_Exif_Feed# IZend_Gdata_Exif_Extension_Time# IZend_Gdata_Exif_Extension_Tags   [  xV:zN a6V(g8



]
1
				n	K	'	Z0o<^/hAqDZ.{M]2                        ,O [Zend_Gdata_YouTube_Extension_Occupation)N UZend_Gdata_YouTube_Extension_NoEmbed'M QZend_Gdata_YouTube_Extension_Music(L SZend_Gdata_YouTube_Extension_Movies-K ]Zend_Gdata_YouTube_Extension_MediaRating,J [Zend_Gdata_YouTube_Extension_MediaGroup-I ]Zend_Gdata_YouTube_Extension_MediaCredit.H _Zend_Gdata_YouTube_Extension_MediaContent*G WZend_Gdata_YouTube_Extension_Location&F OZend_Gdata_YouTube_Extension_Link*E WZend_Gdata_YouTube_Extension_LastName*D WZend_Gdata_YouTube_Extension_Hometown)C UZend_Gdata_YouTube_Extension_Hobbies(B SZend_Gdata_YouTube_Extension_Gender+A YZend_Gdata_YouTube_Extension_FirstName*@ WZend_Gdata_YouTube_Extension_Duration-? ]Zend_Gdata_YouTube_Extension_Description+> YZend_Gdata_YouTube_Extension_CountHint)= UZend_Gdata_YouTube_Extension_Control)< UZend_Gdata_YouTube_Extension_Company'; QZend_Gdata_YouTube_Extension_Books%: MZend_Gdata_YouTube_Extension_Age)9 UZend_Gdata_YouTube_Extension_AboutMe#8 IZend_Gdata_YouTube_ContactFeed$7 KZend_Gdata_YouTube_ContactEntry#6 IZend_Gdata_YouTube_CommentFeed$5 KZend_Gdata_YouTube_CommentEntry$4 KZend_Gdata_YouTube_ActivityFeed%3 MZend_Gdata_YouTube_ActivityEntry2 ;Zend_Gdata_Spreadsheets*1 WZend_Gdata_Spreadsheets_WorksheetFeed+0 YZend_Gdata_Spreadsheets_WorksheetEntry,/ [Zend_Gdata_Spreadsheets_SpreadsheetFeed-. ]Zend_Gdata_Spreadsheets_SpreadsheetEntry&- OZend_Gdata_Spreadsheets_ListQuery%, MZend_Gdata_Spreadsheets_ListFeed&+ OZend_Gdata_Spreadsheets_ListEntry/* aZend_Gdata_Spreadsheets_Extension_RowCount-) ]Zend_Gdata_Spreadsheets_Extension_Custom/( aZend_Gdata_Spreadsheets_Extension_ColCount+' YZend_Gdata_Spreadsheets_Extension_Cell*& WZend_Gdata_Spreadsheets_DocumentQuery&% OZend_Gdata_Spreadsheets_CellQuery%$ MZend_Gdata_Spreadsheets_CellFeed&# OZend_Gdata_Spreadsheets_CellEntry" -Zend_Gdata_Query! /Zend_Gdata_Photos   CZend_Gdata_Photos_UserQuery AZend_Gdata_Photos_UserFeed  CZend_Gdata_Photos_UserEntry AZend_Gdata_Photos_TagEntry! EZend_Gdata_Photos_PhotoQuery  CZend_Gdata_Photos_PhotoFeed! EZend_Gdata_Photos_PhotoEntry& OZend_Gdata_Photos_Extension_Width' QZend_Gdata_Photos_Extension_Weight( SZend_Gdata_Photos_Extension_Version% MZend_Gdata_Photos_Extension_User* WZend_Gdata_Photos_Extension_Timestamp* WZend_Gdata_Photos_Extension_Thumbnail% MZend_Gdata_Photos_Extension_Size) UZend_Gdata_Photos_Extension_Rotation+ YZend_Gdata_Photos_Extension_QuotaLimit- ]Zend_Gdata_Photos_Extension_QuotaCurrent) UZend_Gdata_Photos_Extension_Position( SZend_Gdata_Photos_Extension_PhotoId3 iZend_Gdata_Photos_Extension_NumPhotosRemaining* WZend_Gdata_Photos_Extension_NumPhotos) UZend_Gdata_Photos_Extension_Nickname%
 MZend_Gdata_Photos_Extension_Name2	 gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum) UZend_Gdata_Photos_Extension_Location# IZend_Gdata_Photos_Extension_Id' QZend_Gdata_Photos_Extension_Height2 gZend_Gdata_Photos_Extension_CommentingEnabled- ]Zend_Gdata_Photos_Extension_CommentCount' QZend_Gdata_Photos_Extension_Client) UZend_Gdata_Photos_Extension_Checksum* WZend_Gdata_Photos_Extension_BytesUsed(  SZend_Gdata_Photos_Extension_AlbumId' QZend_Gdata_Photos_Extension_Access#~ IZend_Gdata_Photos_CommentEntry!} EZend_Gdata_Photos_AlbumQuery | CZend_Gdata_Photos_AlbumFeed!{ EZend_Gdata_Photos_AlbumEntryz 3Zend_Gdata_MimeFiley ?Zend_Gdata_MimeBodyStringx AZend_Gdata_MediaMimeStreamw -Zend_Gdata_Mediav 7Zend_Gdata_Media_Feed*u WZend_Gdata_Media_Extension_MediaTitle   ^ oBV*xJ~Q%qE





U
.
					o	S	X8NkG%xW1nA	z]4tE}S1                                                                )- UZend_InfoCard_Xml_Security_Exception, ?Zend_InfoCard_Xml_KeyInfo&+ OZend_InfoCard_Xml_KeyInfo_XmlDSig&* OZend_InfoCard_Xml_KeyInfo_Default') QZend_InfoCard_Xml_KeyInfo_Abstract ( CZend_InfoCard_Xml_Exception#' IZend_InfoCard_Xml_EncryptedKey$& KZend_InfoCard_Xml_EncryptedData+% YZend_InfoCard_Xml_EncryptedData_XmlEnc-$ ]Zend_InfoCard_Xml_EncryptedData_Abstract# ?Zend_InfoCard_Xml_Element " CZend_InfoCard_Xml_Assertion%! MZend_InfoCard_Xml_Assertion_Saml  ;Zend_InfoCard_Exception% MZend_InfoCard_Exception_Abstract 5Zend_InfoCard_Claims 5Zend_InfoCard_Cipher5 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc5 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc4 kZend_InfoCard_Cipher_Symmetric_Adapter_Abstract) UZend_InfoCard_Cipher_Pki_Adapter_Rsa. _Zend_InfoCard_Cipher_Pki_Adapter_Abstract# IZend_InfoCard_Cipher_Exception$ KZend_InfoCard_Adapter_Exception" GZend_InfoCard_Adapter_Default 3Zend_Http_UserAgent" GZend_Http_UserAgent_Validator =Zend_Http_UserAgent_Text( SZend_Http_UserAgent_Storage_Session. _Zend_Http_UserAgent_Storage_NonPersistent* WZend_Http_UserAgent_Storage_Exception =Zend_Http_UserAgent_Spam ?Zend_Http_UserAgent_Probe  CZend_Http_UserAgent_Offline AZend_Http_UserAgent_Mobile
 =Zend_Http_UserAgent_Feed+	 YZend_Http_UserAgent_Features_Exception3 iZend_Http_UserAgent_Features_Adapter_TeraWurfl5 mZend_Http_UserAgent_Features_Adapter_DeviceAtlas2 gZend_Http_UserAgent_Features_Adapter_Browscap" GZend_Http_UserAgent_Exception ?Zend_Http_UserAgent_Email  CZend_Http_UserAgent_Desktop  CZend_Http_UserAgent_Console  CZend_Http_UserAgent_Checker  ;Zend_Http_UserAgent_Bot' QZend_Http_UserAgent_AbstractDevice~ 1Zend_Http_Response} ?Zend_Http_Response_Stream| AZend_Http_Header_SetCookie0{ cZend_Http_Header_Exception_RuntimeException8z sZend_Http_Header_Exception_InvalidArgumentExceptiony 3Zend_Http_Exceptionx 3Zend_Http_CookieJarw -Zend_Http_Cookiev -Zend_Http_Clientu AZend_Http_Client_Exception"t GZend_Http_Client_Adapter_Test$s KZend_Http_Client_Adapter_Socket#r IZend_Http_Client_Adapter_Proxy'q QZend_Http_Client_Adapter_Exception"p GZend_Http_Client_Adapter_Curlo !Zend_Gdatan 1Zend_Gdata_YouTube"m GZend_Gdata_YouTube_VideoQuery!l EZend_Gdata_YouTube_VideoFeed"k GZend_Gdata_YouTube_VideoEntry(j SZend_Gdata_YouTube_UserProfileEntry(i SZend_Gdata_YouTube_SubscriptionFeed)h UZend_Gdata_YouTube_SubscriptionEntry)g UZend_Gdata_YouTube_PlaylistVideoFeed*f WZend_Gdata_YouTube_PlaylistVideoEntry(e SZend_Gdata_YouTube_PlaylistListFeed)d UZend_Gdata_YouTube_PlaylistListEntry"c GZend_Gdata_YouTube_MediaEntry!b EZend_Gdata_YouTube_InboxFeed"a GZend_Gdata_YouTube_InboxEntry)` UZend_Gdata_YouTube_Extension_VideoId*_ WZend_Gdata_YouTube_Extension_Username*^ WZend_Gdata_YouTube_Extension_Uploaded'] QZend_Gdata_YouTube_Extension_Token(\ SZend_Gdata_YouTube_Extension_Status,[ [Zend_Gdata_YouTube_Extension_Statistics'Z QZend_Gdata_YouTube_Extension_State(Y SZend_Gdata_YouTube_Extension_School-X ]Zend_Gdata_YouTube_Extension_ReleaseDate.W _Zend_Gdata_YouTube_Extension_Relationship*V WZend_Gdata_YouTube_Extension_Recorded&U OZend_Gdata_YouTube_Extension_Racy-T ]Zend_Gdata_YouTube_Extension_QueryString)S UZend_Gdata_YouTube_Extension_Private*R WZend_Gdata_YouTube_Extension_Position/Q aZend_Gdata_YouTube_Extension_PlaylistTitle,P [Zend_Gdata_YouTube_Extension_PlaylistId   p Q$jS4b= vbFfI&




u
V
6
				k	L	PhBzS?kW<rP1~_@_:wW4                                          CZend_Mail_Storage_Exception AZend_Mail_Storage_Abstract ;Zend_Mail_Protocol_Smtp' QZend_Mail_Protocol_Smtp_Auth_Plain' QZend_Mail_Protocol_Smtp_Auth_Login) UZend_Mail_Protocol_Smtp_Auth_Crammd5 ;Zend_Mail_Protocol_Pop3 ;Zend_Mail_Protocol_Imap! EZend_Mail_Protocol_Exception  CZend_Mail_Protocol_Abstract )Zend_Mail_Part 3Zend_Mail_Part_File /Zend_Mail_Message 9Zend_Mail_Message_File 3Zend_Mail_Exception Zend_Log  CZend_Log_Writer_ZendMonitor 9Zend_Log_Writer_Syslog 9Zend_Log_Writer_Stream
 5Zend_Log_Writer_Null	 5Zend_Log_Writer_Mock 5Zend_Log_Writer_Mail ;Zend_Log_Writer_Firebug 1Zend_Log_Writer_Db =Zend_Log_Writer_Abstract 9Zend_Log_Formatter_Xml ?Zend_Log_Formatter_Simple AZend_Log_Formatter_Firebug  CZend_Log_Formatter_Abstract  =Zend_Log_Filter_Suppress =Zend_Log_Filter_Priority~ ;Zend_Log_Filter_Message} =Zend_Log_Filter_Abstract| 1Zend_Log_Exception{ #Zend_Localez -Zend_Locale_Mathy =Zend_Locale_Math_PhpMathx AZend_Locale_Math_Exceptionw 1Zend_Locale_Formatv 7Zend_Locale_Exceptionu -Zend_Locale_Data!t EZend_Locale_Data_Translations #Zend_Loader#r IZend_Loader_StandardAutoloaderq =Zend_Loader_PluginLoader'p QZend_Loader_PluginLoader_Exceptiono 7Zend_Loader_Exception3n iZend_Loader_Exception_InvalidArgumentException#m IZend_Loader_ClassMapAutoloader"l GZend_Loader_AutoloaderFactoryk 9Zend_Loader_Autoloader$j KZend_Loader_Autoloader_Resourcei Zend_Ldaph )Zend_Ldap_Nodeg 7Zend_Ldap_Node_Schema#f IZend_Ldap_Node_Schema_OpenLdap/e aZend_Ldap_Node_Schema_ObjectClass_OpenLdap6d oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectoryc AZend_Ldap_Node_Schema_Item1b eZend_Ldap_Node_Schema_AttributeType_OpenLdap8a sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory*` WZend_Ldap_Node_Schema_ActiveDirectory_ 9Zend_Ldap_Node_RootDse$^ KZend_Ldap_Node_RootDse_OpenLdap&] OZend_Ldap_Node_RootDse_eDirectory+\ YZend_Ldap_Node_RootDse_ActiveDirectory[ ?Zend_Ldap_Node_Collection$Z KZend_Ldap_Node_ChildrenIteratorY ;Zend_Ldap_Node_AbstractX 9Zend_Ldap_Ldif_EncoderW -Zend_Ldap_FilterV ;Zend_Ldap_Filter_StringU 3Zend_Ldap_Filter_OrT 5Zend_Ldap_Filter_NotS 7Zend_Ldap_Filter_MaskR =Zend_Ldap_Filter_LogicalQ AZend_Ldap_Filter_ExceptionP 5Zend_Ldap_Filter_AndO ?Zend_Ldap_Filter_AbstractN 3Zend_Ldap_ExceptionM %Zend_Ldap_DnL 3Zend_Ldap_Converter"K GZend_Ldap_Converter_ExceptionJ 5Zend_Ldap_Collection*I WZend_Ldap_Collection_Iterator_DefaultH 3Zend_Ldap_AttributeG #Zend_LayoutF 7Zend_Layout_Exception)E UZend_Layout_Controller_Plugin_Layout0D cZend_Layout_Controller_Action_Helper_LayoutC Zend_JsonB -Zend_Json_ServerA 5Zend_Json_Server_Smd!@ EZend_Json_Server_Smd_Service? ?Zend_Json_Server_Response#> IZend_Json_Server_Response_Http= =Zend_Json_Server_Request"< GZend_Json_Server_Request_Http; AZend_Json_Server_Exception: 9Zend_Json_Server_Error9 9Zend_Json_Server_Cache8 )Zend_Json_Expr7 3Zend_Json_Exception6 /Zend_Json_Encoder5 /Zend_Json_Decoder4 'Zend_InfoCard-3 ]Zend_InfoCard_Xml_SecurityTokenReference2 AZend_InfoCard_Xml_Security)1 UZend_InfoCard_Xml_Security_Transform40 kZend_InfoCard_Xml_Security_Transform_XmlExcC14N3/ iZend_InfoCard_Xml_Security_Transform_Exception<. {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignature   r  qO0`;|U& cI+eA 




j
I
.
					{	]	B	!	c>mT8`,c2mBvX2
gO5oO7   # IZend_Oauth_Signature_Plaintext ?Zend_Oauth_Signature_Hmac +Zend_Oauth_Http ;Zend_Oauth_Http_Utility& OZend_Oauth_Http_UserAuthorization!
 EZend_Oauth_Http_RequestToken 	 CZend_Oauth_Http_AccessToken 5Zend_Oauth_Exception 3Zend_Oauth_Consumer /Zend_Oauth_Config /Zend_Oauth_Client +Zend_Navigation 5Zend_Navigation_Page =Zend_Navigation_Page_Uri =Zend_Navigation_Page_Mvc  ?Zend_Navigation_Exception ?Zend_Navigation_Container$~ KZend_Mobile_Push_Test_ApnsProxy"} GZend_Mobile_Push_Response_Gcm| 7Zend_Mobile_Push_Mpns"{ GZend_Mobile_Push_Message_Mpns(z SZend_Mobile_Push_Message_Mpns_Toast'y QZend_Mobile_Push_Message_Mpns_Tile&x OZend_Mobile_Push_Message_Mpns_Raw!w EZend_Mobile_Push_Message_Gcm'v QZend_Mobile_Push_Message_Exception"u GZend_Mobile_Push_Message_Apns&t OZend_Mobile_Push_Message_Abstracts 5Zend_Mobile_Push_Gcmr AZend_Mobile_Push_Exception1q eZend_Mobile_Push_Exception_ServerUnavailable-p ]Zend_Mobile_Push_Exception_QuotaExceeded,o [Zend_Mobile_Push_Exception_InvalidTopic,n [Zend_Mobile_Push_Exception_InvalidToken3m iZend_Mobile_Push_Exception_InvalidRegistration.l _Zend_Mobile_Push_Exception_InvalidPayload0k cZend_Mobile_Push_Exception_InvalidAuthToken3j iZend_Mobile_Push_Exception_DeviceQuotaExceededi 7Zend_Mobile_Push_Apnsh ?Zend_Mobile_Push_Abstractg 7Zend_Mobile_Exceptionf Zend_Mimee )Zend_Mime_Partd /Zend_Mime_Messagec 3Zend_Mime_Exceptionb -Zend_Mime_Decodea #Zend_Memory` /Zend_Memory_Value_ 3Zend_Memory_Manager^ 7Zend_Memory_Exception] 7Zend_Memory_Container"\ GZend_Memory_Container_Movable![ EZend_Memory_Container_Locked!Z EZend_Memory_AccessControllerY 3Zend_Measure_WeightX 3Zend_Measure_Volume%W MZend_Measure_Viscosity_Kinematic#V IZend_Measure_Viscosity_DynamicU 3Zend_Measure_TorqueT /Zend_Measure_TimeS =Zend_Measure_TemperatureR 1Zend_Measure_SpeedQ 7Zend_Measure_PressureP 1Zend_Measure_PowerO 3Zend_Measure_NumberN 9Zend_Measure_LightnessM 3Zend_Measure_LengthL ?Zend_Measure_IlluminationK 9Zend_Measure_FrequencyJ 1Zend_Measure_ForceI =Zend_Measure_Flow_VolumeH 9Zend_Measure_Flow_MoleG 9Zend_Measure_Flow_MassF 9Zend_Measure_ExceptionE 3Zend_Measure_EnergyD 5Zend_Measure_DensityC 5Zend_Measure_Current B CZend_Measure_Cooking_Weight A CZend_Measure_Cooking_Volume@ =Zend_Measure_Capacitance? 3Zend_Measure_Binary> /Zend_Measure_Area= 1Zend_Measure_Angle< ?Zend_Measure_Acceleration; 7Zend_Measure_Abstract: #Zend_Markup9 7Zend_Markup_TokenList8 /Zend_Markup_Token*7 WZend_Markup_Renderer_RendererAbstract6 ?Zend_Markup_Renderer_Html"5 GZend_Markup_Renderer_Html_Url#4 IZend_Markup_Renderer_Html_List"3 GZend_Markup_Renderer_Html_Img+2 YZend_Markup_Renderer_Html_HtmlAbstract#1 IZend_Markup_Renderer_Html_Code#0 IZend_Markup_Renderer_Exception!/ EZend_Markup_Parser_Exception. ?Zend_Markup_Parser_Bbcode- 7Zend_Markup_Exception, Zend_Mail+ =Zend_Mail_Transport_Smtp!* EZend_Mail_Transport_Sendmail) =Zend_Mail_Transport_File"( GZend_Mail_Transport_Exception!' EZend_Mail_Transport_Abstract& /Zend_Mail_Storage'% QZend_Mail_Storage_Writable_Maildir$ 9Zend_Mail_Storage_Pop3# 9Zend_Mail_Storage_Mbox" ?Zend_Mail_Storage_Maildir! 9Zend_Mail_Storage_Imap  =Zend_Mail_Storage_Folder" GZend_Mail_Storage_Folder_Mbox% MZend_Mail_Storage_Folder_Maildir   n  eD+kM#\4pB^@"




d
B
 					~	^	B	*~]E~]A&d.dB%d=_?& hG!eE$                       &} OZend_Pdf_Filter_Compression_Flate| =Zend_Pdf_Filter_AsciiHex{ ;Zend_Pdf_Filter_Ascii85"z GZend_Pdf_FileParserDataSource)y UZend_Pdf_FileParserDataSource_String'x QZend_Pdf_FileParserDataSource_Filew 3Zend_Pdf_FileParserv ?Zend_Pdf_FileParser_Image"u GZend_Pdf_FileParser_Image_Pngt =Zend_Pdf_FileParser_Font&s OZend_Pdf_FileParser_Font_OpenType/r aZend_Pdf_FileParser_Font_OpenType_TrueTypeq 1Zend_Pdf_Exceptionp ;Zend_Pdf_ElementFactory"o GZend_Pdf_ElementFactory_Proxyn -Zend_Pdf_Elementm ;Zend_Pdf_Element_String#l IZend_Pdf_Element_String_Binaryk ;Zend_Pdf_Element_Streamj AZend_Pdf_Element_Reference%i MZend_Pdf_Element_Reference_Table'h QZend_Pdf_Element_Reference_Contextg ;Zend_Pdf_Element_Object#f IZend_Pdf_Element_Object_Streame =Zend_Pdf_Element_Numericd 7Zend_Pdf_Element_Nullc 7Zend_Pdf_Element_Name b CZend_Pdf_Element_Dictionarya =Zend_Pdf_Element_Boolean` 9Zend_Pdf_Element_Array_ 5Zend_Pdf_Destination^ ?Zend_Pdf_Destination_Zoom!] EZend_Pdf_Destination_Unknown\ AZend_Pdf_Destination_Named'[ QZend_Pdf_Destination_FitVertically&Z OZend_Pdf_Destination_FitRectangle)Y UZend_Pdf_Destination_FitHorizontally2X gZend_Pdf_Destination_FitBoundingBoxVertically4W kZend_Pdf_Destination_FitBoundingBoxHorizontally(V SZend_Pdf_Destination_FitBoundingBoxU =Zend_Pdf_Destination_Fit"T GZend_Pdf_Destination_ExplicitS )Zend_Pdf_ColorR 1Zend_Pdf_Color_RgbQ 3Zend_Pdf_Color_HtmlP =Zend_Pdf_Color_GrayScaleO 3Zend_Pdf_Color_CmykN 'Zend_Pdf_CmapM AZend_Pdf_Cmap_TrimmedTable!L EZend_Pdf_Cmap_SegmentToDeltaK AZend_Pdf_Cmap_ByteEncoding&J OZend_Pdf_Cmap_ByteEncoding_StaticI +Zend_Pdf_CanvasH =Zend_Pdf_Canvas_AbstractG 3Zend_Pdf_AnnotationF =Zend_Pdf_Annotation_TextE AZend_Pdf_Annotation_MarkupD =Zend_Pdf_Annotation_Link'C QZend_Pdf_Annotation_FileAttachmentB +Zend_Pdf_ActionA 3Zend_Pdf_Action_URI@ ;Zend_Pdf_Action_Unknown? 7Zend_Pdf_Action_Trans> 9Zend_Pdf_Action_Thread= AZend_Pdf_Action_SubmitForm< 7Zend_Pdf_Action_Sound ; CZend_Pdf_Action_SetOCGState: ?Zend_Pdf_Action_ResetForm9 ?Zend_Pdf_Action_Rendition8 7Zend_Pdf_Action_Named7 7Zend_Pdf_Action_Movie6 9Zend_Pdf_Action_Launch5 AZend_Pdf_Action_JavaScript4 AZend_Pdf_Action_ImportData3 5Zend_Pdf_Action_Hide2 7Zend_Pdf_Action_GoToR1 7Zend_Pdf_Action_GoToE0 AZend_Pdf_Action_GoTo3DView/ 5Zend_Pdf_Action_GoTo. )Zend_Paginator-- ]Zend_Paginator_SerializableLimitIterator*, WZend_Paginator_ScrollingStyle_Sliding*+ WZend_Paginator_ScrollingStyle_Jumping** WZend_Paginator_ScrollingStyle_Elastic&) OZend_Paginator_ScrollingStyle_All( =Zend_Paginator_Exception ' CZend_Paginator_Adapter_Null$& KZend_Paginator_Adapter_Iterator)% UZend_Paginator_Adapter_DbTableSelect$$ KZend_Paginator_Adapter_DbSelect!# EZend_Paginator_Adapter_Array" #Zend_OpenId! 5Zend_OpenId_Provider  ?Zend_OpenId_Provider_User& OZend_OpenId_Provider_User_Session! EZend_OpenId_Provider_Storage& OZend_OpenId_Provider_Storage_File 7Zend_OpenId_Extension AZend_OpenId_Extension_Sreg 7Zend_OpenId_Exception 5Zend_OpenId_Consumer! EZend_OpenId_Consumer_Storage& OZend_OpenId_Consumer_Storage_File !Zend_Oauth -Zend_Oauth_Token =Zend_Oauth_Token_Request' QZend_Oauth_Token_AuthorizedRequest ;Zend_Oauth_Token_Access+ YZend_Oauth_Signature_SignatureAbstract =Zend_Oauth_Signature_Rsa   f  |eK*
d@\/{=B


Y
				i	J	"mK1cR)jQ-yT4Z:nM+	iS0|Y@"     Fc Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiveb 7Zend_Search_Exceptiona -Zend_Rest_Server` AZend_Rest_Server_Exception_ +Zend_Rest_Route^ 3Zend_Rest_Exception] 5Zend_Rest_Controller\ -Zend_Rest_Client[ ;Zend_Rest_Client_Result&Z OZend_Rest_Client_Result_ExceptionY AZend_Rest_Client_ExceptionX 'Zend_RegistryW =Zend_Reflection_PropertyV ?Zend_Reflection_ParameterU 9Zend_Reflection_MethodT =Zend_Reflection_FunctionS 5Zend_Reflection_FileR ?Zend_Reflection_ExtensionQ ?Zend_Reflection_ExceptionP =Zend_Reflection_Docblock!O EZend_Reflection_Docblock_Tag(N SZend_Reflection_Docblock_Tag_Return'M QZend_Reflection_Docblock_Tag_ParamL 7Zend_Reflection_ClassK !Zend_QueueJ 9Zend_Queue_Stomp_FrameI ;Zend_Queue_Stomp_Client'H QZend_Queue_Stomp_Client_ConnectionG 1Zend_Queue_Message#F IZend_Queue_Message_PlatformJob E CZend_Queue_Message_IteratorD 5Zend_Queue_Exception(C SZend_Queue_Adapter_PlatformJobQueueB ;Zend_Queue_Adapter_Null!A EZend_Queue_Adapter_Memcacheq@ 7Zend_Queue_Adapter_Db ? CZend_Queue_Adapter_Db_Queue"> GZend_Queue_Adapter_Db_Message= =Zend_Queue_Adapter_Array'< QZend_Queue_Adapter_AdapterAbstract ; CZend_Queue_Adapter_Activemq: -Zend_ProgressBar9 AZend_ProgressBar_Exception8 =Zend_ProgressBar_Adapter$7 KZend_ProgressBar_Adapter_JsPush$6 KZend_ProgressBar_Adapter_JsPull'5 QZend_ProgressBar_Adapter_Exception%4 MZend_ProgressBar_Adapter_Console3 Zend_Pdf!2 EZend_Pdf_UpdateInfoContainer1 -Zend_Pdf_Trailer0 ;Zend_Pdf_Trailer_Keeper/ AZend_Pdf_Trailer_Generator. +Zend_Pdf_Target- )Zend_Pdf_Style, 7Zend_Pdf_StringParser+ /Zend_Pdf_Resource* ?Zend_Pdf_Resource_Unified#) IZend_Pdf_Resource_ImageFactory( ;Zend_Pdf_Resource_Image!' EZend_Pdf_Resource_Image_Tiff & CZend_Pdf_Resource_Image_Png!% EZend_Pdf_Resource_Image_Jpeg$$ KZend_Pdf_Resource_GraphicsState# 9Zend_Pdf_Resource_Font!" EZend_Pdf_Resource_Font_Type0"! GZend_Pdf_Resource_Font_Simple+  YZend_Pdf_Resource_Font_Simple_Standard8 sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats6 oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman7 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic; yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic5 mZend_Pdf_Resource_Font_Simple_Standard_TimesBold2 gZend_Pdf_Resource_Font_Simple_Standard_Symbol< {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueA Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique9 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold5 mZend_Pdf_Resource_Font_Simple_Standard_Helvetica: wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique> Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique7 qZend_Pdf_Resource_Font_Simple_Standard_CourierBold3 iZend_Pdf_Resource_Font_Simple_Standard_Courier) UZend_Pdf_Resource_Font_Simple_Parsed2 gZend_Pdf_Resource_Font_Simple_Parsed_TrueType* WZend_Pdf_Resource_Font_FontDescriptor% MZend_Pdf_Resource_Font_Extracted# IZend_Pdf_Resource_Font_CidFont, [Zend_Pdf_Resource_Font_CidFont_TrueType  CZend_Pdf_Resource_Extractor$
 KZend_Pdf_Resource_ContentStream3	 iZend_Pdf_RecursivelyIteratableObjectsContainer +Zend_Pdf_Parser 'Zend_Pdf_Page -Zend_Pdf_Outline ;Zend_Pdf_Outline_Loaded =Zend_Pdf_Outline_Created /Zend_Pdf_NameTree )Zend_Pdf_Image 'Zend_Pdf_Font  ?Zend_Pdf_Filter_RunLength  CZend_Pdf_Filter_Compression$~ KZend_Pdf_Filter_Compression_Lzw   O  z>n2m/a3
hC"



U
(				P	*	 }T!c3o@V(n8SX'g>                                                    )2 UZend_Search_Lucene_Storage_Directory41 kZend_Search_Lucene_Storage_Directory_Filesystem%0 MZend_Search_Lucene_Search_Weight*/ WZend_Search_Lucene_Search_Weight_Term,. [Zend_Search_Lucene_Search_Weight_Phrase/- aZend_Search_Lucene_Search_Weight_MultiTerm+, YZend_Search_Lucene_Search_Weight_Empty-+ ]Zend_Search_Lucene_Search_Weight_Boolean)* UZend_Search_Lucene_Search_Similarity1) eZend_Search_Lucene_Search_Similarity_Default)( UZend_Search_Lucene_Search_QueryToken3' iZend_Search_Lucene_Search_QueryParserException1& eZend_Search_Lucene_Search_QueryParserContext*% WZend_Search_Lucene_Search_QueryParser)$ UZend_Search_Lucene_Search_QueryLexer'# QZend_Search_Lucene_Search_QueryHit)" UZend_Search_Lucene_Search_QueryEntry.! _Zend_Search_Lucene_Search_QueryEntry_Term2  gZend_Search_Lucene_Search_QueryEntry_Subquery0 cZend_Search_Lucene_Search_QueryEntry_Phrase$ KZend_Search_Lucene_Search_Query- ]Zend_Search_Lucene_Search_Query_Wildcard) UZend_Search_Lucene_Search_Query_Term* WZend_Search_Lucene_Search_Query_Range2 gZend_Search_Lucene_Search_Query_Preprocessing7 qZend_Search_Lucene_Search_Query_Preprocessing_Term9 uZend_Search_Lucene_Search_Query_Preprocessing_Phrase8 sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy+ YZend_Search_Lucene_Search_Query_Phrase. _Zend_Search_Lucene_Search_Query_MultiTerm2 gZend_Search_Lucene_Search_Query_Insignificant* WZend_Search_Lucene_Search_Query_Fuzzy* WZend_Search_Lucene_Search_Query_Empty, [Zend_Search_Lucene_Search_Query_Boolean2 gZend_Search_Lucene_Search_Highlighter_Default: wZend_Search_Lucene_Search_BooleanExpressionRecognizer =Zend_Search_Lucene_Proxy% MZend_Search_Lucene_PriorityQueue/ aZend_Search_Lucene_Interface_MultiSearcher% MZend_Search_Lucene_MultiSearcher#
 IZend_Search_Lucene_LockManager$	 KZend_Search_Lucene_Index_Writer0 cZend_Search_Lucene_Index_TermsPriorityQueue& OZend_Search_Lucene_Index_TermInfo" GZend_Search_Lucene_Index_Term+ YZend_Search_Lucene_Index_SegmentWriter8 sZend_Search_Lucene_Index_SegmentWriter_StreamWriter: wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter+ YZend_Search_Lucene_Index_SegmentMerger) UZend_Search_Lucene_Index_SegmentInfo'  QZend_Search_Lucene_Index_FieldInfo( SZend_Search_Lucene_Index_DocsFilter.~ _Zend_Search_Lucene_Index_DictionaryLoader!} EZend_Search_Lucene_FSMAction| 9Zend_Search_Lucene_FSM{ =Zend_Search_Lucene_Field!z EZend_Search_Lucene_Exception y CZend_Search_Lucene_Document%x MZend_Search_Lucene_Document_Xlsx%w MZend_Search_Lucene_Document_Pptx(v SZend_Search_Lucene_Document_OpenXml%u MZend_Search_Lucene_Document_Html*t WZend_Search_Lucene_Document_Exception%s MZend_Search_Lucene_Document_Docx,r [Zend_Search_Lucene_Analysis_TokenFilter6q oZend_Search_Lucene_Analysis_TokenFilter_StopWords7p qZend_Search_Lucene_Analysis_TokenFilter_ShortWords:o wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf86n oZend_Search_Lucene_Analysis_TokenFilter_LowerCase&m OZend_Search_Lucene_Analysis_Token)l UZend_Search_Lucene_Analysis_Analyzer0k cZend_Search_Lucene_Analysis_Analyzer_Common8j sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumIi Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive5h mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Fg Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive8f sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumIe Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive5d mZend_Search_Lucene_Analysis_Analyzer_Common_Text   ^  vB'_7
~aG(
vQ(\3




a
,				w	L	#xN(tM$a@^8f8`<Qh"                       D 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceScheduleB Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetailC Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount- ]Zend_Service_DeveloperGarden_Client_Soap2 gZend_Service_DeveloperGarden_Client_Exception7 qZend_Service_DeveloperGarden_Client_ClientAbstract1
 eZend_Service_DeveloperGarden_BaseUserServiceA	 Zend_Service_DeveloperGarden_BaseUserService_AccountBalance 9Zend_Service_Delicious& OZend_Service_Delicious_SimplePost$ KZend_Service_Delicious_PostList  CZend_Service_Delicious_Post% MZend_Service_Delicious_Exception  CZend_Service_Audioscrobbler 3Zend_Service_Amazon ;Zend_Service_Amazon_Sqs&  OZend_Service_Amazon_Sqs_Exception! EZend_Service_Amazon_SimpleDb*~ WZend_Service_Amazon_SimpleDb_Response&} OZend_Service_Amazon_SimpleDb_Page+| YZend_Service_Amazon_SimpleDb_Exception+{ YZend_Service_Amazon_SimpleDb_Attribute'z QZend_Service_Amazon_SimilarProducty 9Zend_Service_Amazon_S3"x GZend_Service_Amazon_S3_Stream%w MZend_Service_Amazon_S3_Exception"v GZend_Service_Amazon_ResultSetu ?Zend_Service_Amazon_Query!t EZend_Service_Amazon_OfferSets ?Zend_Service_Amazon_Offer&r OZend_Service_Amazon_ListmaniaListq =Zend_Service_Amazon_Itemp ?Zend_Service_Amazon_Image"o GZend_Service_Amazon_Exception(n SZend_Service_Amazon_EditorialReviewm ;Zend_Service_Amazon_Ec2+l YZend_Service_Amazon_Ec2_Securitygroups%k MZend_Service_Amazon_Ec2_Response#j IZend_Service_Amazon_Ec2_Region$i KZend_Service_Amazon_Ec2_Keypair%h MZend_Service_Amazon_Ec2_Instance-g ]Zend_Service_Amazon_Ec2_Instance_Windows.f _Zend_Service_Amazon_Ec2_Instance_Reserved"e GZend_Service_Amazon_Ec2_Image&d OZend_Service_Amazon_Ec2_Exception&c OZend_Service_Amazon_Ec2_Elasticip b CZend_Service_Amazon_Ec2_Ebs'a QZend_Service_Amazon_Ec2_CloudWatch.` _Zend_Service_Amazon_Ec2_Availabilityzones%_ MZend_Service_Amazon_Ec2_Abstract'^ QZend_Service_Amazon_CustomerReview'] QZend_Service_Amazon_Authentication*\ WZend_Service_Amazon_Authentication_V2*[ WZend_Service_Amazon_Authentication_V1*Z WZend_Service_Amazon_Authentication_S31Y eZend_Service_Amazon_Authentication_Exception$X KZend_Service_Amazon_Accessories!W EZend_Service_Amazon_AbstractV 5Zend_Service_AkismetU 7Zend_Service_AbstractT 9Zend_Server_Reflection'S QZend_Server_Reflection_ReturnValue%R MZend_Server_Reflection_Prototype%Q MZend_Server_Reflection_Parameter P CZend_Server_Reflection_Node"O GZend_Server_Reflection_Method$N KZend_Server_Reflection_Function-M ]Zend_Server_Reflection_Function_Abstract%L MZend_Server_Reflection_Exception!K EZend_Server_Reflection_Class!J EZend_Server_Method_Prototype!I EZend_Server_Method_Parameter"H GZend_Server_Method_Definition G CZend_Server_Method_CallbackF 7Zend_Server_ExceptionE 9Zend_Server_DefinitionD /Zend_Server_CacheC 5Zend_Server_AbstractB +Zend_SerializerA ?Zend_Serializer_Exception!@ EZend_Serializer_Adapter_Wddx)? UZend_Serializer_Adapter_PythonPickle)> UZend_Serializer_Adapter_PhpSerialize$= KZend_Serializer_Adapter_PhpCode!< EZend_Serializer_Adapter_Json%; MZend_Serializer_Adapter_Igbinary!: EZend_Serializer_Adapter_Amf3!9 EZend_Serializer_Adapter_Amf0,8 [Zend_Serializer_Adapter_AdapterAbstract7 1Zend_Search_Lucene06 cZend_Search_Lucene_TermStreamsPriorityQueue$5 KZend_Search_Lucene_Storage_File+4 YZend_Search_Lucene_Storage_File_Memory/3 aZend_Search_Lucene_Storage_File_Filesystem   4  ;a'zIYJ


?		|	"p`X=p3n@o(                                                     3D iZend_Service_DeveloperGarden_Response_BaseTypeJC Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstractCB Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCallGA Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced=@ }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallA? Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatusA> Zend_Service_DeveloperGarden_Request_SmsValidation_ValidateN= Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeywordC< Zend_Service_DeveloperGarden_Request_SmsValidation_InvalidateL; Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbersB: Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract99 uZend_Service_DeveloperGarden_Request_SendSms_SendSMS>8 Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS97 uZend_Service_DeveloperGarden_Request_RequestAbstractI6 Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequestE5 Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest34 iZend_Service_DeveloperGarden_Request_ExceptionR3 %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequestY2 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequestd1 IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequestQ0 #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequestR/ %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequestY. 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequestd- IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequestQ, #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequestO+ Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequestU* +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequestU) +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequestV( -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequesta' CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequestZ& 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequestT% )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequestR$ %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequestY# 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequestQ" #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequestQ! #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequesta  CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequestN Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformationL Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalanceJ Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool- ]Zend_Service_DeveloperGarden_LocalSearch> Zend_Service_DeveloperGarden_LocalSearch_SearchParameters7 qZend_Service_DeveloperGarden_LocalSearch_Exception, [Zend_Service_DeveloperGarden_IpLocation6 oZend_Service_DeveloperGarden_IpLocation_IpAddress+ YZend_Service_DeveloperGarden_Exception, [Zend_Service_DeveloperGarden_Credential0 cZend_Service_DeveloperGarden_ConferenceCallC Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatusC Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail< {Zend_Service_DeveloperGarden_ConferenceCall_Participant: wZend_Service_DeveloperGarden_ConferenceCall_Exception   ,  P#~)w]

I			W=.~]=k4                                                                  Kp Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseAo Zend_Service_DeveloperGarden_Response_IpLocation_RegionTypeKn Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseTypeGm Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseLl Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationTypeIk Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType>j Zend_Service_DeveloperGarden_Response_IpLocation_CityType4i kZend_Service_DeveloperGarden_Response_ExceptionTh )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse[g 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponseff MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponseSe 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponseTd )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse[c 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponsefb MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponseSa 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponseU` +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseTypeQ_ #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse[^ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseTypeW] /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse[\ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseTypeW[ /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse\Z 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseTypeXY 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponsegX OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseTypecW GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse`V AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType\U 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseZT 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseTypeVS -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseXR 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseTypeTQ )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse_P ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType[O 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseWN /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseTypeSM 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseQL #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstractSK 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponseJJ Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseTypegI OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseTypecH GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseWG /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponseUF +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponseSE 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse   H  n!s'@J]

n
			z	G	i,^%g7v@{KcA" sK-f>                             /8 aZend_Service_Rackspace_Files_ContainerList+7 YZend_Service_Rackspace_Files_Container%6 MZend_Service_Rackspace_Exception$5 KZend_Service_Rackspace_Abstract4 7Zend_Service_Nirvanix#3 IZend_Service_Nirvanix_Response)2 UZend_Service_Nirvanix_Namespace_Imfs)1 UZend_Service_Nirvanix_Namespace_Base$0 KZend_Service_Nirvanix_Exception/ 7Zend_Service_LiveDocx$. KZend_Service_LiveDocx_MailMerge$- KZend_Service_LiveDocx_Exception, 3Zend_Service_Flickr"+ GZend_Service_Flickr_ResultSet* AZend_Service_Flickr_Result) ?Zend_Service_Flickr_Image( 9Zend_Service_Exception' ?Zend_Service_Ebay_Finding)& UZend_Service_Ebay_Finding_Storefront+% YZend_Service_Ebay_Finding_ShippingInfo+$ YZend_Service_Ebay_Finding_Set_Abstract,# [Zend_Service_Ebay_Finding_SellingStatus)" UZend_Service_Ebay_Finding_SellerInfo,! [Zend_Service_Ebay_Finding_Search_Result*  WZend_Service_Ebay_Finding_Search_Item. _Zend_Service_Ebay_Finding_Search_Item_Set0 cZend_Service_Ebay_Finding_Response_Keywords- ]Zend_Service_Ebay_Finding_Response_Items2 gZend_Service_Ebay_Finding_Response_Histograms0 cZend_Service_Ebay_Finding_Response_Abstract/ aZend_Service_Ebay_Finding_PaginationOutput* WZend_Service_Ebay_Finding_ListingInfo( SZend_Service_Ebay_Finding_Exception, [Zend_Service_Ebay_Finding_Error_Message) UZend_Service_Ebay_Finding_Error_Data- ]Zend_Service_Ebay_Finding_Error_Data_Set' QZend_Service_Ebay_Finding_Category1 eZend_Service_Ebay_Finding_Category_Histogram5 mZend_Service_Ebay_Finding_Category_Histogram_Set; yZend_Service_Ebay_Finding_Category_Histogram_Container% MZend_Service_Ebay_Finding_Aspect) UZend_Service_Ebay_Finding_Aspect_Set5 mZend_Service_Ebay_Finding_Aspect_Histogram_Value9 uZend_Service_Ebay_Finding_Aspect_Histogram_Value_Set9 uZend_Service_Ebay_Finding_Aspect_Histogram_Container' QZend_Service_Ebay_Finding_Abstract 
 CZend_Service_Ebay_Exception	 AZend_Service_Ebay_Abstract+ YZend_Service_DeveloperGarden_VoiceCall/ aZend_Service_DeveloperGarden_SmsValidation) UZend_Service_DeveloperGarden_SendSms5 mZend_Service_DeveloperGarden_SecurityTokenServer; yZend_Service_DeveloperGarden_SecurityTokenServer_CacheK Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstractL Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponseP !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponseG  Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponseJ Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponseK~ Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2ResponseL} Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponseI| Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumberW{ /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponseJz Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponseUy +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponseCx Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponseCw Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstractHv Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponseUu +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponseQt #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponseIs Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception;r yZend_Service_DeveloperGarden_Response_ResponseAbstractOq Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseType   Q  uPa,qI!c>wO


v
7
				W	+	X&kDf;yS6{Ek)t8O
                                 <	 {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogsA Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstanceD 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectoriesU +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogsD 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSources8 sZend_Service_WindowsAzure_Credentials_SharedKeyLite4 kZend_Service_WindowsAzure_Credentials_SharedKeyA Zend_Service_WindowsAzure_Credentials_SharedAccessSignature4 kZend_Service_WindowsAzure_Credentials_Exception>  Zend_Service_WindowsAzure_Credentials_CredentialsAbstract2 gZend_Service_WindowsAzure_CommandLine_Storage2~ gZend_Service_WindowsAzure_CommandLine_Service} !ScaffolderW| /Zend_Service_WindowsAzure_CommandLine_PackageScaffolder_PackageScaffolderAbstract2{ gZend_Service_WindowsAzure_CommandLine_PackageDz 	Zend_Service_WindowsAzure_CommandLine_GetAsynchronousOperation5y mZend_Service_WindowsAzure_CommandLine_Deployment6x oZend_Service_WindowsAzure_CommandLine_Certificatew 5Zend_Service_Twitter"v GZend_Service_Twitter_Response#u IZend_Service_Twitter_Exceptiont ;Zend_Service_Technorati#s IZend_Service_Technorati_Weblog"r GZend_Service_Technorati_Utils*q WZend_Service_Technorati_TagsResultSet'p QZend_Service_Technorati_TagsResult)o UZend_Service_Technorati_TagResultSet&n OZend_Service_Technorati_TagResult,m [Zend_Service_Technorati_SearchResultSet)l UZend_Service_Technorati_SearchResult&k OZend_Service_Technorati_ResultSet#j IZend_Service_Technorati_Result*i WZend_Service_Technorati_KeyInfoResult*h WZend_Service_Technorati_GetInfoResult&g OZend_Service_Technorati_Exception1f eZend_Service_Technorati_DailyCountsResultSet.e _Zend_Service_Technorati_DailyCountsResult,d [Zend_Service_Technorati_CosmosResultSet)c UZend_Service_Technorati_CosmosResult+b YZend_Service_Technorati_BlogInfoResult#a IZend_Service_Technorati_Author` ;Zend_Service_StrikeIron(_ SZend_Service_StrikeIron_ZipCodeInfo2^ gZend_Service_StrikeIron_USAddressVerification-] ]Zend_Service_StrikeIron_SalesUseTaxBasic&\ OZend_Service_StrikeIron_Exception&[ OZend_Service_StrikeIron_Decorator!Z EZend_Service_StrikeIron_Base;Y yZend_Service_SqlAzure_Management_ServiceEntityAbstract4X kZend_Service_SqlAzure_Management_ServerInstance:W wZend_Service_SqlAzure_Management_FirewallRuleInstance/V aZend_Service_SqlAzure_Management_Exception,U [Zend_Service_SqlAzure_Management_Client$T KZend_Service_SqlAzure_ExceptionS ;Zend_Service_SlideShare&R OZend_Service_SlideShare_SlideShow&Q OZend_Service_SlideShare_Exception%P MZend_Service_ShortUrl_TinyUrlCom&O OZend_Service_ShortUrl_MetamarkNet!N EZend_Service_ShortUrl_JdemCzM AZend_Service_ShortUrl_IsGd$L KZend_Service_ShortUrl_Exception K CZend_Service_ShortUrl_BitLy,J [Zend_Service_ShortUrl_AbstractShortenerI 9Zend_Service_ReCaptcha$H KZend_Service_ReCaptcha_Response$G KZend_Service_ReCaptcha_MailHide.F _Zend_Service_ReCaptcha_MailHide_Exception%E MZend_Service_ReCaptcha_Exception#D IZend_Service_Rackspace_Servers5C mZend_Service_Rackspace_Servers_SharedIpGroupList1B eZend_Service_Rackspace_Servers_SharedIpGroup.A _Zend_Service_Rackspace_Servers_ServerList*@ WZend_Service_Rackspace_Servers_Server-? ]Zend_Service_Rackspace_Servers_ImageList)> UZend_Service_Rackspace_Servers_Image-= ]Zend_Service_Rackspace_Servers_Exception!< EZend_Service_Rackspace_Files,; [Zend_Service_Rackspace_Files_ObjectList(: SZend_Service_Rackspace_Files_Object+9 YZend_Service_Rackspace_Files_Exception   J  aTt7xDK


s
/			f	0X|Ec+yIvU.X2	kDuV-                   )S UZend_Session_Validator_HttpUserAgent$R KZend_Session_Validator_Abstract'Q QZend_Session_SaveHandler_Exception%P MZend_Session_SaveHandler_DbTableO 9Zend_Session_NamespaceN 9Zend_Session_ExceptionM 7Zend_Session_AbstractL 1Zend_Service_Yahoo$K KZend_Service_Yahoo_WebResultSet!J EZend_Service_Yahoo_WebResult&I OZend_Service_Yahoo_VideoResultSet#H IZend_Service_Yahoo_VideoResult!G EZend_Service_Yahoo_ResultSetF ?Zend_Service_Yahoo_Result)E UZend_Service_Yahoo_PageDataResultSet&D OZend_Service_Yahoo_PageDataResult%C MZend_Service_Yahoo_NewsResultSet"B GZend_Service_Yahoo_NewsResult&A OZend_Service_Yahoo_LocalResultSet#@ IZend_Service_Yahoo_LocalResult+? YZend_Service_Yahoo_InlinkDataResultSet(> SZend_Service_Yahoo_InlinkDataResult&= OZend_Service_Yahoo_ImageResultSet#< IZend_Service_Yahoo_ImageResult; =Zend_Service_Yahoo_Image&: OZend_Service_WindowsAzure_Storage49 kZend_Service_WindowsAzure_Storage_TableInstance78 qZend_Service_WindowsAzure_Storage_TableEntityQuery27 gZend_Service_WindowsAzure_Storage_TableEntity,6 [Zend_Service_WindowsAzure_Storage_Table<5 {Zend_Service_WindowsAzure_Storage_StorageEntityAbstract74 qZend_Service_WindowsAzure_Storage_SignedIdentifier33 iZend_Service_WindowsAzure_Storage_QueueMessage42 kZend_Service_WindowsAzure_Storage_QueueInstance,1 [Zend_Service_WindowsAzure_Storage_Queue90 uZend_Service_WindowsAzure_Storage_PageRegionInstance4/ kZend_Service_WindowsAzure_Storage_LeaseInstance9. uZend_Service_WindowsAzure_Storage_DynamicTableEntity3- iZend_Service_WindowsAzure_Storage_BlobInstance4, kZend_Service_WindowsAzure_Storage_BlobContainer++ YZend_Service_WindowsAzure_Storage_Blob2* gZend_Service_WindowsAzure_Storage_Blob_Stream;) yZend_Service_WindowsAzure_Storage_BatchStorageAbstract,( [Zend_Service_WindowsAzure_Storage_Batch-' ]Zend_Service_WindowsAzure_SessionHandler>& Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract1% eZend_Service_WindowsAzure_RetryPolicy_RetryN2$ gZend_Service_WindowsAzure_RetryPolicy_NoRetry4# kZend_Service_WindowsAzure_RetryPolicy_ExceptionH" Zend_Service_WindowsAzure_Management_SubscriptionOperationInstanceA! Zend_Service_WindowsAzure_Management_StorageServiceInstance@  Zend_Service_WindowsAzure_Management_ServiceEntityAbstractB Zend_Service_WindowsAzure_Management_OperationStatusInstanceB Zend_Service_WindowsAzure_Management_OperatingSystemInstanceH Zend_Service_WindowsAzure_Management_OperatingSystemFamilyInstance: wZend_Service_WindowsAzure_Management_LocationInstance@ Zend_Service_WindowsAzure_Management_HostedServiceInstance3 iZend_Service_WindowsAzure_Management_Exception< {Zend_Service_WindowsAzure_Management_DeploymentInstance0 cZend_Service_WindowsAzure_Management_Client= }Zend_Service_WindowsAzure_Management_CertificateInstance@ Zend_Service_WindowsAzure_Management_AffinityGroupInstance6 oZend_Service_WindowsAzure_Log_Writer_WindowsAzure9 uZend_Service_WindowsAzure_Log_Formatter_WindowsAzure, [Zend_Service_WindowsAzure_Log_Exception( SZend_Service_WindowsAzure_ExceptionJ Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscription2 gZend_Service_WindowsAzure_Diagnostics_Manager3 iZend_Service_WindowsAzure_Diagnostics_LogLevel4 kZend_Service_WindowsAzure_Diagnostics_ExceptionN Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscriptionH Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLogL Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCountersK
 Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstract   ^  c@!c;w`<~S(qW;



^
1
				O	g9	kL$jK0kAS|Q$oCoD                                               (1 SZend_Tool_Framework_Loader_Abstract"0 GZend_Tool_Framework_Exception'/ QZend_Tool_Framework_Client_Storage1. eZend_Tool_Framework_Client_Storage_Directory(- SZend_Tool_Framework_Client_ResponseD, 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator'+ QZend_Tool_Framework_Client_Request(* SZend_Tool_Framework_Client_Manifest9) uZend_Tool_Framework_Client_Interactive_InputResponse8( sZend_Tool_Framework_Client_Interactive_InputRequest8' sZend_Tool_Framework_Client_Interactive_InputHandler)& UZend_Tool_Framework_Client_Exception'% QZend_Tool_Framework_Client_ConsoleD$ 	Zend_Tool_Framework_Client_Console_ResponseDecorator_IndentionD# 	Zend_Tool_Framework_Client_Console_ResponseDecorator_ColorizerC" Zend_Tool_Framework_Client_Console_ResponseDecorator_BlockizeF! Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter0  cZend_Tool_Framework_Client_Console_Manifest2 gZend_Tool_Framework_Client_Console_HelpSystem6 oZend_Tool_Framework_Client_Console_ArgumentParser& OZend_Tool_Framework_Client_Config( SZend_Tool_Framework_Client_Abstract* WZend_Tool_Framework_Action_Repository) UZend_Tool_Framework_Action_Exception$ KZend_Tool_Framework_Action_Base 'Zend_TimeSync 1Zend_TimeSync_Sntp 9Zend_TimeSync_Protocol /Zend_TimeSync_Ntp ;Zend_TimeSync_Exception +Zend_Text_Table 3Zend_Text_Table_Row ?Zend_Text_Table_Exception& OZend_Text_Table_Decorator_Unicode$ KZend_Text_Table_Decorator_Ascii 9Zend_Text_Table_Column 3Zend_Text_MultiByte -Zend_Text_Figlet AZend_Text_Figlet_Exception
 3Zend_Text_Exception&	 OZend_Test_PHPUnit_Db_SimpleTester, [Zend_Test_PHPUnit_Db_Operation_Truncate* WZend_Test_PHPUnit_Db_Operation_Insert- ]Zend_Test_PHPUnit_Db_Operation_DeleteAll* WZend_Test_PHPUnit_Db_Metadata_Generic# IZend_Test_PHPUnit_Db_Exception, [Zend_Test_PHPUnit_Db_DataSet_QueryTable. _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet0 cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet)  UZend_Test_PHPUnit_Db_DataSet_DbTable* WZend_Test_PHPUnit_Db_DataSet_DbRowset$~ KZend_Test_PHPUnit_Db_Connection'} QZend_Test_PHPUnit_DatabaseTestCase)| UZend_Test_PHPUnit_ControllerTestCase0{ cZend_Test_PHPUnit_Constraint_ResponseHeader*z WZend_Test_PHPUnit_Constraint_Redirect+y YZend_Test_PHPUnit_Constraint_Exception*x WZend_Test_PHPUnit_Constraint_DomQueryw 7Zend_Test_DbStatementv 3Zend_Test_DbAdapteru /Zend_Tag_ItemListt 'Zend_Tag_Items 1Zend_Tag_Exceptionr )Zend_Tag_Cloudq =Zend_Tag_Cloud_Exception!p EZend_Tag_Cloud_Decorator_Tag%o MZend_Tag_Cloud_Decorator_HtmlTag'n QZend_Tag_Cloud_Decorator_HtmlCloud'm QZend_Tag_Cloud_Decorator_Exception#l IZend_Tag_Cloud_Decorator_Cloud!k EZend_Stdlib_SplPriorityQueuej -SplPriorityQueuei ?Zend_Stdlib_PriorityQueue3h iZend_Stdlib_Exception_InvalidCallbackException g CZend_Stdlib_CallbackHandlerf )Zend_Soap_Wsdl/e aZend_Soap_Wsdl_Strategy_DefaultComplexType&d OZend_Soap_Wsdl_Strategy_Composite0c cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence/b aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex$a KZend_Soap_Wsdl_Strategy_AnyType%` MZend_Soap_Wsdl_Strategy_Abstract_ =Zend_Soap_Wsdl_Exception^ -Zend_Soap_Server] 9Zend_Soap_Server_Proxy\ AZend_Soap_Server_Exception[ -Zend_Soap_ClientZ 9Zend_Soap_Client_LocalY AZend_Soap_Client_ExceptionX ;Zend_Soap_Client_DotNetW ;Zend_Soap_Client_CommonV 9Zend_Soap_AutoDiscover%U MZend_Soap_AutoDiscover_ExceptionT %Zend_Session   J  NW,xHc7g(



^
'				R	r7f0Y(a+MKm1~G                                                   ={ }Zend_Tool_Project_Context_Zf_TestApplicationActionMethod4z kZend_Tool_Project_Context_Zf_TemporaryDirectory3y iZend_Tool_Project_Context_Zf_SessionsDirectory3x iZend_Tool_Project_Context_Zf_ServicesDirectory8w sZend_Tool_Project_Context_Zf_SearchIndexesDirectory<v {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory8u sZend_Tool_Project_Context_Zf_PublicScriptsDirectory1t eZend_Tool_Project_Context_Zf_PublicIndexFile7s qZend_Tool_Project_Context_Zf_PublicImagesDirectory1r eZend_Tool_Project_Context_Zf_PublicDirectory5q mZend_Tool_Project_Context_Zf_ProjectProviderFile2p gZend_Tool_Project_Context_Zf_ModulesDirectory1o eZend_Tool_Project_Context_Zf_ModuleDirectory1n eZend_Tool_Project_Context_Zf_ModelsDirectory+m YZend_Tool_Project_Context_Zf_ModelFile/l aZend_Tool_Project_Context_Zf_LogsDirectory2k gZend_Tool_Project_Context_Zf_LocalesDirectory2j gZend_Tool_Project_Context_Zf_LibraryDirectory2i gZend_Tool_Project_Context_Zf_LayoutsDirectory8h sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory2g gZend_Tool_Project_Context_Zf_LayoutScriptFile.f _Zend_Tool_Project_Context_Zf_HtaccessFile0e cZend_Tool_Project_Context_Zf_FormsDirectory*d WZend_Tool_Project_Context_Zf_FormFile/c aZend_Tool_Project_Context_Zf_DocsDirectory-b ]Zend_Tool_Project_Context_Zf_DbTableFile2a gZend_Tool_Project_Context_Zf_DbTableDirectory/` aZend_Tool_Project_Context_Zf_DataDirectory6_ oZend_Tool_Project_Context_Zf_ControllersDirectory0^ cZend_Tool_Project_Context_Zf_ControllerFile2] gZend_Tool_Project_Context_Zf_ConfigsDirectory,\ [Zend_Tool_Project_Context_Zf_ConfigFile0[ cZend_Tool_Project_Context_Zf_CacheDirectory/Z aZend_Tool_Project_Context_Zf_BootstrapFile6Y oZend_Tool_Project_Context_Zf_ApplicationDirectory7X qZend_Tool_Project_Context_Zf_ApplicationConfigFile/W aZend_Tool_Project_Context_Zf_ApisDirectory.V _Zend_Tool_Project_Context_Zf_ActionMethod3U iZend_Tool_Project_Context_Zf_AbstractClassFile@T Zend_Tool_Project_Context_System_ProjectProvidersDirectory8S sZend_Tool_Project_Context_System_ProjectProfileFile6R oZend_Tool_Project_Context_System_ProjectDirectory)Q UZend_Tool_Project_Context_Repository.P _Zend_Tool_Project_Context_Filesystem_File3O iZend_Tool_Project_Context_Filesystem_Directory2N gZend_Tool_Project_Context_Filesystem_Abstract(M SZend_Tool_Project_Context_Exception-L ]Zend_Tool_Project_Context_Content_Engine3K iZend_Tool_Project_Context_Content_Engine_Phtml;J yZend_Tool_Project_Context_Content_Engine_CodeGenerator0I cZend_Tool_Framework_System_Provider_Version0H cZend_Tool_Framework_System_Provider_Phpinfo1G eZend_Tool_Framework_System_Provider_Manifest/F aZend_Tool_Framework_System_Provider_Config(E SZend_Tool_Framework_System_Manifest-D ]Zend_Tool_Framework_System_Action_Delete-C ]Zend_Tool_Framework_System_Action_Create!B EZend_Tool_Framework_Registry+A YZend_Tool_Framework_Registry_Exception+@ YZend_Tool_Framework_Provider_Signature,? [Zend_Tool_Framework_Provider_Repository+> YZend_Tool_Framework_Provider_Exception*= WZend_Tool_Framework_Provider_Abstract&< OZend_Tool_Framework_Metadata_Tool); UZend_Tool_Framework_Metadata_Dynamic': QZend_Tool_Framework_Metadata_Basic,9 [Zend_Tool_Framework_Manifest_Repository28 gZend_Tool_Framework_Manifest_ProviderMetadata*7 WZend_Tool_Framework_Manifest_Metadata+6 YZend_Tool_Framework_Manifest_Exception05 cZend_Tool_Framework_Manifest_ActionMetadata14 eZend_Tool_Framework_Loader_IncludePathLoaderJ3 Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator+2 YZend_Tool_Framework_Loader_BasicLoader   X  u1h*w9Om9



x
?				a	?	_4`6]8c>sbC'c;^;^0            #S IZend_Validate_Barcode_Leitcode R CZend_Validate_Barcode_Itf14Q AZend_Validate_Barcode_Issn*P WZend_Validate_Barcode_IntelligentMail$O KZend_Validate_Barcode_Identcode!N EZend_Validate_Barcode_Gtin14!M EZend_Validate_Barcode_Gtin13!L EZend_Validate_Barcode_Gtin12K AZend_Validate_Barcode_Ean8J AZend_Validate_Barcode_Ean5I AZend_Validate_Barcode_Ean2 H CZend_Validate_Barcode_Ean18 G CZend_Validate_Barcode_Ean14 F CZend_Validate_Barcode_Ean13 E CZend_Validate_Barcode_Ean12$D KZend_Validate_Barcode_Code93ext!C EZend_Validate_Barcode_Code93$B KZend_Validate_Barcode_Code39ext!A EZend_Validate_Barcode_Code39,@ [Zend_Validate_Barcode_Code25interleaved!? EZend_Validate_Barcode_Code25*> WZend_Validate_Barcode_AdapterAbstract= 3Zend_Validate_Alpha< 3Zend_Validate_Alnum; 9Zend_Validate_Abstract: Zend_Uri9 'Zend_Uri_Http8 1Zend_Uri_Exception7 )Zend_Translate6 7Zend_Translate_Plural5 =Zend_Translate_Exception4 9Zend_Translate_Adapter!3 EZend_Translate_Adapter_XmlTm!2 EZend_Translate_Adapter_Xliff1 AZend_Translate_Adapter_Tmx0 AZend_Translate_Adapter_Tbx/ ?Zend_Translate_Adapter_Qt. AZend_Translate_Adapter_Ini#- IZend_Translate_Adapter_Gettext, AZend_Translate_Adapter_Csv!+ EZend_Translate_Adapter_Array$* KZend_Tool_Project_Provider_View$) KZend_Tool_Project_Provider_Test/( aZend_Tool_Project_Provider_ProjectProvider'' QZend_Tool_Project_Provider_Project'& QZend_Tool_Project_Provider_Profile&% OZend_Tool_Project_Provider_Module%$ MZend_Tool_Project_Provider_Model(# SZend_Tool_Project_Provider_Manifest&" OZend_Tool_Project_Provider_Layout$! KZend_Tool_Project_Provider_Form)  UZend_Tool_Project_Provider_Exception' QZend_Tool_Project_Provider_DbTable) UZend_Tool_Project_Provider_DbAdapter* WZend_Tool_Project_Provider_Controller+ YZend_Tool_Project_Provider_Application& OZend_Tool_Project_Provider_Action( SZend_Tool_Project_Provider_Abstract ?Zend_Tool_Project_Profile' QZend_Tool_Project_Profile_Resource9 uZend_Tool_Project_Profile_Resource_SearchConstraints1 eZend_Tool_Project_Profile_Resource_Container= }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter5 mZend_Tool_Project_Profile_Iterator_ContextFilter- ]Zend_Tool_Project_Profile_FileParser_Xml( SZend_Tool_Project_Profile_Exception  CZend_Tool_Project_Exception< {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory0 cZend_Tool_Project_Context_Zf_ViewsDirectory6 oZend_Tool_Project_Context_Zf_ViewScriptsDirectory0 cZend_Tool_Project_Context_Zf_ViewScriptFile6 oZend_Tool_Project_Context_Zf_ViewHelpersDirectory6 oZend_Tool_Project_Context_Zf_ViewFiltersDirectoryA
 Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory2	 gZend_Tool_Project_Context_Zf_UploadsDirectory0 cZend_Tool_Project_Context_Zf_TestsDirectory7 qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile: wZend_Tool_Project_Context_Zf_TestPHPUnitBootstrapFile@ Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory1 eZend_Tool_Project_Context_Zf_TestLibraryFile6 oZend_Tool_Project_Context_Zf_TestLibraryDirectory: wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFileB Zend_Tool_Project_Context_Zf_TestApplicationModulesDirectoryA  Zend_Tool_Project_Context_Zf_TestApplicationModuleDirectory: wZend_Tool_Project_Context_Zf_TestApplicationDirectory@~ Zend_Tool_Project_Context_Zf_TestApplicationControllerFileE} Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory>| Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile   o jG$qO'_3|W/dB




k
M
3
						h	?	gK)	a?!lH%lI%uS/[9~K!}R1                                      !B EZend_View_Helper_PartialLoopA =Zend_View_Helper_Partial'@ QZend_View_Helper_Partial_Exception'? QZend_View_Helper_PaginationControl > CZend_View_Helper_Navigation(= SZend_View_Helper_Navigation_Sitemap%< MZend_View_Helper_Navigation_Menu&; OZend_View_Helper_Navigation_Links/: aZend_View_Helper_Navigation_HelperAbstract,9 [Zend_View_Helper_Navigation_Breadcrumbs8 ;Zend_View_Helper_Layout7 7Zend_View_Helper_Json"6 GZend_View_Helper_InlineScript#5 IZend_View_Helper_HtmlQuicktime4 ?Zend_View_Helper_HtmlPage 3 CZend_View_Helper_HtmlObject2 ?Zend_View_Helper_HtmlList1 AZend_View_Helper_HtmlFlash!0 EZend_View_Helper_HtmlElement/ AZend_View_Helper_HeadTitle. AZend_View_Helper_HeadStyle - CZend_View_Helper_HeadScript, ?Zend_View_Helper_HeadMeta+ ?Zend_View_Helper_HeadLink* ?Zend_View_Helper_Gravatar") GZend_View_Helper_FormTextarea( ?Zend_View_Helper_FormText ' CZend_View_Helper_FormSubmit & CZend_View_Helper_FormSelect% AZend_View_Helper_FormReset$ AZend_View_Helper_FormRadio"# GZend_View_Helper_FormPassword" ?Zend_View_Helper_FormNote'! QZend_View_Helper_FormMultiCheckbox  AZend_View_Helper_FormLabel AZend_View_Helper_FormImage  CZend_View_Helper_FormHidden ?Zend_View_Helper_FormFile  CZend_View_Helper_FormErrors! EZend_View_Helper_FormElement" GZend_View_Helper_FormCheckbox  CZend_View_Helper_FormButton 7Zend_View_Helper_Form ?Zend_View_Helper_Fieldset =Zend_View_Helper_Doctype! EZend_View_Helper_DeclareVars 9Zend_View_Helper_Cycle ?Zend_View_Helper_Currency =Zend_View_Helper_BaseUrl ;Zend_View_Helper_Action ?Zend_View_Helper_Abstract 3Zend_View_Exception 1Zend_View_Abstract %Zend_Version 'Zend_Validate AZend_Validate_StringLength#
 IZend_Validate_Sitemap_Priority	 ?Zend_Validate_Sitemap_Loc" GZend_Validate_Sitemap_Lastmod% MZend_Validate_Sitemap_Changefreq 3Zend_Validate_Regex 9Zend_Validate_PostCode 9Zend_Validate_NotEmpty 9Zend_Validate_LessThan 7Zend_Validate_Ldap_Dn 1Zend_Validate_Isbn  -Zend_Validate_Ip /Zend_Validate_Int~ 7Zend_Validate_InArray} ;Zend_Validate_Identical| 1Zend_Validate_Iban{ 9Zend_Validate_Hostnamez /Zend_Validate_Hexy ?Zend_Validate_GreaterThanx 3Zend_Validate_Float!w EZend_Validate_File_WordCountv ?Zend_Validate_File_Uploadu ;Zend_Validate_File_Sizet ;Zend_Validate_File_Sha1!s EZend_Validate_File_NotExists r CZend_Validate_File_MimeTypeq 9Zend_Validate_File_Md5p AZend_Validate_File_IsImage$o KZend_Validate_File_IsCompressed!n EZend_Validate_File_ImageSizem ;Zend_Validate_File_Hash!l EZend_Validate_File_FilesSize!k EZend_Validate_File_Extensionj ?Zend_Validate_File_Exists'i QZend_Validate_File_ExcludeMimeType(h SZend_Validate_File_ExcludeExtensiong =Zend_Validate_File_Crc32f =Zend_Validate_File_Counte ;Zend_Validate_Exceptiond AZend_Validate_EmailAddressc 5Zend_Validate_Digits"b GZend_Validate_Db_RecordExists$a KZend_Validate_Db_NoRecordExists` ?Zend_Validate_Db_Abstract_ 1Zend_Validate_Date^ =Zend_Validate_CreditCard] 3Zend_Validate_Ccnum\ 9Zend_Validate_Callback[ 7Zend_Validate_BetweenZ 7Zend_Validate_BarcodeY AZend_Validate_Barcode_UpceX AZend_Validate_Barcode_UpcaW AZend_Validate_Barcode_Sscc$V KZend_Validate_Barcode_Royalmail"U GZend_Validate_Barcode_Postnet!T EZend_Validate_Barcode_Planet   i  U&nK*rR%U,nT*




s
Q
4
					p	O	*	{Y;`A+}b9{W*u\=#],i;
Y6        &+ OZend_Application_Module_Bootstrap'* QZend_Application_Module_Autoloader) AZend_Application_Exception)( UZend_Application_Bootstrap_Exception1' eZend_Application_Bootstrap_BootstrapAbstract)& UZend_Application_Bootstrap_Bootstrap% ?Zend_Amf_Value_TraitsInfo-$ ]Zend_Amf_Value_Messaging_RemotingMessage*# WZend_Amf_Value_Messaging_ErrorMessage," [Zend_Amf_Value_Messaging_CommandMessage*! WZend_Amf_Value_Messaging_AsyncMessage-  ]Zend_Amf_Value_Messaging_ArrayCollection0 cZend_Amf_Value_Messaging_AcknowledgeMessage- ]Zend_Amf_Value_Messaging_AbstractMessage! EZend_Amf_Value_MessageHeader AZend_Amf_Value_MessageBody =Zend_Amf_Value_ByteArray AZend_Amf_Util_BinaryStream +Zend_Amf_Server ?Zend_Amf_Server_Exception /Zend_Amf_Response 9Zend_Amf_Response_Http -Zend_Amf_Request 7Zend_Amf_Request_Http ?Zend_Amf_Parse_TypeLoader ?Zend_Amf_Parse_Serializer# IZend_Amf_Parse_Resource_Stream( SZend_Amf_Parse_Resource_MysqlResult) UZend_Amf_Parse_Resource_MysqliResult  CZend_Amf_Parse_OutputStream AZend_Amf_Parse_InputStream  CZend_Amf_Parse_Deserializer# IZend_Amf_Parse_Amf3_Serializer%
 MZend_Amf_Parse_Amf3_Deserializer#	 IZend_Amf_Parse_Amf0_Serializer% MZend_Amf_Parse_Amf0_Deserializer 1Zend_Amf_Exception 1Zend_Amf_Constants 9Zend_Amf_Auth_Abstract  CZend_Amf_Adobe_Introspector AZend_Amf_Adobe_DbInspector 3Zend_Amf_Adobe_Auth Zend_Acl  'Zend_Acl_Role 9Zend_Acl_Role_Registry%~ MZend_Acl_Role_Registry_Exception} /Zend_Acl_Resource| 1Zend_Acl_Exception{ /Zend_XmlRpc_Valuez =Zend_XmlRpc_Value_Structy =Zend_XmlRpc_Value_Stringx =Zend_XmlRpc_Value_Scalarw 7Zend_XmlRpc_Value_Nilv ?Zend_XmlRpc_Value_Integer u CZend_XmlRpc_Value_Exceptiont =Zend_XmlRpc_Value_Doubles AZend_XmlRpc_Value_DateTime!r EZend_XmlRpc_Value_Collectionq ?Zend_XmlRpc_Value_Boolean!p EZend_XmlRpc_Value_BigIntegero =Zend_XmlRpc_Value_Base64n ;Zend_XmlRpc_Value_Arraym 1Zend_XmlRpc_Serverl ?Zend_XmlRpc_Server_Systemk =Zend_XmlRpc_Server_Fault!j EZend_XmlRpc_Server_Exceptioni =Zend_XmlRpc_Server_Cacheh 5Zend_XmlRpc_Responseg ?Zend_XmlRpc_Response_Httpf 3Zend_XmlRpc_Requeste ?Zend_XmlRpc_Request_Stdind =Zend_XmlRpc_Request_Http$c KZend_XmlRpc_Generator_XmlWriter,b [Zend_XmlRpc_Generator_GeneratorAbstract&a OZend_XmlRpc_Generator_DomDocument` /Zend_XmlRpc_Fault_ 7Zend_XmlRpc_Exception^ 1Zend_XmlRpc_Client#] IZend_XmlRpc_Client_ServerProxy+\ YZend_XmlRpc_Client_ServerIntrospection+[ YZend_XmlRpc_Client_IntrospectException%Z MZend_XmlRpc_Client_HttpException&Y OZend_XmlRpc_Client_FaultException!X EZend_XmlRpc_Client_Exception&W OZend_Wildfire_Protocol_JsonStream!V EZend_Wildfire_Plugin_FirePhp.U _Zend_Wildfire_Plugin_FirePhp_TableMessage)T UZend_Wildfire_Plugin_FirePhp_MessageS ;Zend_Wildfire_Exception&R OZend_Wildfire_Channel_HttpHeadersQ Zend_ViewP -Zend_View_StreamO AZend_View_Helper_UserAgentN 5Zend_View_Helper_UrlM AZend_View_Helper_TranslateL =Zend_View_Helper_TinySrcK AZend_View_Helper_ServerUrl)J UZend_View_Helper_RenderToPlaceholder!I EZend_View_Helper_Placeholder*H WZend_View_Helper_Placeholder_Registry4G kZend_View_Helper_Placeholder_Registry_Exception+F YZend_View_Helper_Placeholder_Container6E oZend_View_Helper_Placeholder_Container_Standalone5D mZend_View_Helper_Placeholder_Container_Exception4C kZend_View_Helper_Placeholder_Container_Abstract   Y  oCrI!`5J`8




E
			Y	"T#T&h6]>iF'fC [2f8           | CZend_Db_Statement_Interface${ KZend_Currency_CurrencyInterface)z UZend_Crypt_Math_BigInteger_Interface+y YZend_Controller_Router_Route_Interface%x MZend_Controller_Router_Interface)w UZend_Controller_Dispatcher_Interface%v MZend_Controller_Action_Interface&u OZend_Cloud_StorageService_Adapter$t KZend_Cloud_QueueService_Adapter&s OZend_Cloud_Infrastructure_Adapter,r [Zend_Cloud_DocumentService_QueryAdapter'q QZend_Cloud_DocumentService_Adapterp 5Zend_Captcha_Adapter!o EZend_Cache_Backend_Interface)n UZend_Cache_Backend_ExtendedInterface m CZend_Auth_Storage_Interface l CZend_Auth_Adapter_Interface.k _Zend_Auth_Adapter_Http_Resolver_Interface'j QZend_Application_Resource_Resource4i kZend_Application_Bootstrap_ResourceBootstrapper,h [Zend_Application_Bootstrap_Bootstrapperg ;Zend_Acl_Role_Interface f CZend_Acl_Resource_Interfacee ?Zend_Acl_Assert_Interface#d IZend_Wildfire_Plugin_Interface$c KZend_Wildfire_Channel_Interfaceb 3Zend_View_Interface'a QZend_View_Helper_Navigation_Helper` AZend_View_Helper_Interface_ ;Zend_Validate_Interface+^ YZend_Validate_Barcode_AdapterInterface3] iZend_Tool_Project_Profile_FileParser_Interface:\ wZend_Tool_Project_Context_System_TopLevelRestrictable5[ mZend_Tool_Project_Context_System_NotOverwritable/Z aZend_Tool_Project_Context_System_Interface(Y SZend_Tool_Project_Context_Interface+X YZend_Tool_Framework_Registry_Interface2W gZend_Tool_Framework_Registry_EnabledInterface-V ]Zend_Tool_Framework_Provider_Pretendable+U YZend_Tool_Framework_Provider_Interface.T _Zend_Tool_Framework_Provider_Interactable/S aZend_Tool_Framework_Provider_Initializable;R yZend_Tool_Framework_Provider_DocblockManifestInterface+Q YZend_Tool_Framework_Metadata_Interface.P _Zend_Tool_Framework_Metadata_Attributable6O oZend_Tool_Framework_Manifest_ProviderManifestable6N oZend_Tool_Framework_Manifest_MetadataManifestable+M YZend_Tool_Framework_Manifest_Interface+L YZend_Tool_Framework_Manifest_Indexable4K kZend_Tool_Framework_Manifest_ActionManifestable)J UZend_Tool_Framework_Loader_Interface8I sZend_Tool_Framework_Client_Storage_AdapterInterfaceDH 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface;G yZend_Tool_Framework_Client_Interactive_OutputInterface:F wZend_Tool_Framework_Client_Interactive_InputInterface)E UZend_Tool_Framework_Action_Interface(D SZend_Text_Table_Decorator_InterfaceC /Zend_Tag_TaggableB 7Zend_Stdlib_Exception&A OZend_Soap_Wsdl_Strategy_Interface%@ MZend_Session_Validator_Interface'? QZend_Session_SaveHandler_Interface$> KZend_Service_ShortUrl_ShortenerI= Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Interface< 7Zend_Server_Interface-; ]Zend_Serializer_Adapter_AdapterInterface4: kZend_Search_Lucene_Search_Highlighter_Interface!9 EZend_Search_Lucene_Interface38 iZend_Search_Lucene_Index_TermsStream_Interface$7 KZend_Queue_Stomp_FrameInterface06 cZend_Queue_Stomp_Client_ConnectionInterface(5 SZend_Queue_Adapter_AdapterInterface4 ?Zend_Pdf_Filter_Interface&3 OZend_Pdf_ElementFactory_Interface2 ?Zend_Pdf_Canvas_Interface,1 [Zend_Paginator_ScrollingStyle_Interface$0 KZend_Paginator_AdapterAggregate%/ MZend_Paginator_Adapter_Interface&. OZend_Oauth_Config_ConfigInterface'- QZend_Mobile_Push_Message_Interface, AZend_Mobile_Push_Interface$+ KZend_Memory_Container_Interface1* eZend_Markup_Renderer_TokenConverterInterface') QZend_Markup_Parser_ParserInterface)( UZend_Mail_Storage_Writable_Interface'' QZend_Mail_Storage_Folder_Interface& =Zend_Mail_Part_Interface % CZend_Mail_Message_Interface!$ EZend_Log_Formatter_Interface   h  Y'^4U)P#kC!



{
X
6
					e	C	eDpQ,{[6qK0oL+sT:n0pE                                         5Zend_Cloud_Exception% MZend_Cloud_DocumentService_Query' QZend_Cloud_DocumentService_Factory) UZend_Cloud_DocumentService_Exception+ YZend_Cloud_DocumentService_DocumentSet( SZend_Cloud_DocumentService_Document4 kZend_Cloud_DocumentService_Adapter_WindowsAzure: wZend_Cloud_DocumentService_Adapter_WindowsAzure_Query0 cZend_Cloud_DocumentService_Adapter_SimpleDb6
 oZend_Cloud_DocumentService_Adapter_SimpleDb_Query7	 qZend_Cloud_DocumentService_Adapter_AbstractAdapter AZend_Cloud_AbstractFactory /Zend_Captcha_Word 9Zend_Captcha_ReCaptcha 1Zend_Captcha_Image 3Zend_Captcha_Figlet 9Zend_Captcha_Exception /Zend_Captcha_Dumb /Zend_Captcha_Base  !Zend_Cache 1Zend_Cache_Manager~ =Zend_Cache_Frontend_Page} AZend_Cache_Frontend_Output!| EZend_Cache_Frontend_Function{ =Zend_Cache_Frontend_Filez ?Zend_Cache_Frontend_Class y CZend_Cache_Frontend_Capturex 5Zend_Cache_Exceptionw +Zend_Cache_Corev 1Zend_Cache_Backend"u GZend_Cache_Backend_ZendServer(t SZend_Cache_Backend_ZendServer_ShMem's QZend_Cache_Backend_ZendServer_Disk$r KZend_Cache_Backend_ZendPlatformq ?Zend_Cache_Backend_Xcache p CZend_Cache_Backend_WinCache!o EZend_Cache_Backend_TwoLevelsn ;Zend_Cache_Backend_Testm ?Zend_Cache_Backend_Staticl ?Zend_Cache_Backend_Sqlite!k EZend_Cache_Backend_Memcached$j KZend_Cache_Backend_Libmemcachedi ;Zend_Cache_Backend_File!h EZend_Cache_Backend_BlackHoleg 9Zend_Cache_Backend_Apcf %Zend_Barcodee ?Zend_Barcode_Renderer_Svg+d YZend_Barcode_Renderer_RendererAbstractc ?Zend_Barcode_Renderer_Pdf b CZend_Barcode_Renderer_Image$a KZend_Barcode_Renderer_Exception` =Zend_Barcode_Object_Upce_ =Zend_Barcode_Object_Upca"^ GZend_Barcode_Object_Royalmail ] CZend_Barcode_Object_Postnet\ AZend_Barcode_Object_Planet'[ QZend_Barcode_Object_ObjectAbstract!Z EZend_Barcode_Object_LeitcodeY ?Zend_Barcode_Object_Itf14"X GZend_Barcode_Object_Identcode"W GZend_Barcode_Object_ExceptionV ?Zend_Barcode_Object_ErrorU =Zend_Barcode_Object_Ean8T =Zend_Barcode_Object_Ean5S =Zend_Barcode_Object_Ean2R ?Zend_Barcode_Object_Ean13Q AZend_Barcode_Object_Code39*P WZend_Barcode_Object_Code25interleavedO AZend_Barcode_Object_Code25 N CZend_Barcode_Object_Code128M 9Zend_Barcode_ExceptionL Zend_AuthK ?Zend_Auth_Storage_Session$J KZend_Auth_Storage_NonPersistent I CZend_Auth_Storage_ExceptionH -Zend_Auth_ResultG 3Zend_Auth_ExceptionF =Zend_Auth_Adapter_OpenIdE 9Zend_Auth_Adapter_LdapD 9Zend_Auth_Adapter_Http)C UZend_Auth_Adapter_Http_Resolver_File.B _Zend_Auth_Adapter_Http_Resolver_Exception A CZend_Auth_Adapter_Exception@ =Zend_Auth_Adapter_Digest? ?Zend_Auth_Adapter_DbTable> -Zend_Application#= IZend_Application_Resource_View(< SZend_Application_Resource_UserAgent(; SZend_Application_Resource_Translate&: OZend_Application_Resource_Session%9 MZend_Application_Resource_Router/8 aZend_Application_Resource_ResourceAbstract)7 UZend_Application_Resource_Navigation&6 OZend_Application_Resource_Multidb&5 OZend_Application_Resource_Modules#4 IZend_Application_Resource_Mail"3 GZend_Application_Resource_Log%2 MZend_Application_Resource_Locale%1 MZend_Application_Resource_Layout.0 _Zend_Application_Resource_Frontcontroller(/ SZend_Application_Resource_Exception#. IZend_Application_Resource_Dojo!- EZend_Application_Resource_Db+, YZend_Application_Resource_Cachemanager   [  d8`.c9U(wR*


{
H
				x	H	"fH0pP5V$?N$l@T.[6	                                     #n IZend_Controller_Request_Simple)m UZend_Controller_Request_HttpTestCase!l EZend_Controller_Request_Http&k OZend_Controller_Request_Exception&j OZend_Controller_Request_Apache404%i MZend_Controller_Request_Abstract&h OZend_Controller_Plugin_PutHandler(g SZend_Controller_Plugin_ErrorHandler"f GZend_Controller_Plugin_Broker'e QZend_Controller_Plugin_ActionStack$d KZend_Controller_Plugin_Abstractc 7Zend_Controller_Frontb ?Zend_Controller_Exception(a SZend_Controller_Dispatcher_Standard)` UZend_Controller_Dispatcher_Exception(_ SZend_Controller_Dispatcher_Abstract^ 9Zend_Controller_Action(] SZend_Controller_Action_HelperBroker6\ oZend_Controller_Action_HelperBroker_PriorityStack/[ aZend_Controller_Action_Helper_ViewRenderer&Z OZend_Controller_Action_Helper_Url-Y ]Zend_Controller_Action_Helper_Redirector'X QZend_Controller_Action_Helper_Json1W eZend_Controller_Action_Helper_FlashMessenger0V cZend_Controller_Action_Helper_ContextSwitch(U SZend_Controller_Action_Helper_Cache<T {Zend_Controller_Action_Helper_AutoCompleteScriptaculous3S iZend_Controller_Action_Helper_AutoCompleteDojo8R sZend_Controller_Action_Helper_AutoComplete_Abstract.Q _Zend_Controller_Action_Helper_AjaxContext.P _Zend_Controller_Action_Helper_ActionStack+O YZend_Controller_Action_Helper_Abstract%N MZend_Controller_Action_ExceptionM 3Zend_Console_Getopt"L GZend_Console_Getopt_ExceptionK #Zend_ConfigJ -Zend_Config_YamlI +Zend_Config_XmlH 1Zend_Config_WriterG ;Zend_Config_Writer_YamlF 9Zend_Config_Writer_XmlE ;Zend_Config_Writer_JsonD 9Zend_Config_Writer_Ini$C KZend_Config_Writer_FileAbstractB =Zend_Config_Writer_ArrayA -Zend_Config_Json@ +Zend_Config_Ini? 7Zend_Config_Exception$> KZend_CodeGenerator_Php_Property1= eZend_CodeGenerator_Php_Property_DefaultValue%< MZend_CodeGenerator_Php_Parameter2; gZend_CodeGenerator_Php_Parameter_DefaultValue": GZend_CodeGenerator_Php_Method,9 [Zend_CodeGenerator_Php_Member_Container+8 YZend_CodeGenerator_Php_Member_Abstract 7 CZend_CodeGenerator_Php_File%6 MZend_CodeGenerator_Php_Exception$5 KZend_CodeGenerator_Php_Docblock(4 SZend_CodeGenerator_Php_Docblock_Tag/3 aZend_CodeGenerator_Php_Docblock_Tag_Return.2 _Zend_CodeGenerator_Php_Docblock_Tag_Param01 cZend_CodeGenerator_Php_Docblock_Tag_License!0 EZend_CodeGenerator_Php_Class / CZend_CodeGenerator_Php_Body$. KZend_CodeGenerator_Php_Abstract!- EZend_CodeGenerator_Exception , CZend_CodeGenerator_Abstract&+ OZend_Cloud_StorageService_Factory(* SZend_Cloud_StorageService_Exception3) iZend_Cloud_StorageService_Adapter_WindowsAzure)( UZend_Cloud_StorageService_Adapter_S30' cZend_Cloud_StorageService_Adapter_Rackspace1& eZend_Cloud_StorageService_Adapter_FileSystem'% QZend_Cloud_QueueService_MessageSet$$ KZend_Cloud_QueueService_Message$# KZend_Cloud_QueueService_Factory&" OZend_Cloud_QueueService_Exception.! _Zend_Cloud_QueueService_Adapter_ZendQueue1  eZend_Cloud_QueueService_Adapter_WindowsAzure( SZend_Cloud_QueueService_Adapter_Sqs4 kZend_Cloud_QueueService_Adapter_AbstractAdapter. _Zend_Cloud_OperationNotAvailableException+ YZend_Cloud_Infrastructure_InstanceList' QZend_Cloud_Infrastructure_Instance( SZend_Cloud_Infrastructure_ImageList$ KZend_Cloud_Infrastructure_Image& OZend_Cloud_Infrastructure_Factory( SZend_Cloud_Infrastructure_Exception0 cZend_Cloud_Infrastructure_Adapter_Rackspace* WZend_Cloud_Infrastructure_Adapter_Ec26 oZend_Cloud_Infrastructure_Adapter_AbstractAdapter   n  `2
a3`?" jG%ubB,





e
C
					j	F	&	}T5iR*qP.iH(z]6\-qFnF            +\ YZend_Dojo_Form_Element_CurrencyTextBox$[ KZend_Dojo_Form_Element_ComboBox$Z KZend_Dojo_Form_Element_CheckBox"Y GZend_Dojo_Form_Element_Button X CZend_Dojo_Form_DisplayGroup*W WZend_Dojo_Form_Decorator_TabContainer,V [Zend_Dojo_Form_Decorator_StackContainer,U [Zend_Dojo_Form_Decorator_SplitContainer'T QZend_Dojo_Form_Decorator_DijitForm*S WZend_Dojo_Form_Decorator_DijitElement,R [Zend_Dojo_Form_Decorator_DijitContainer)Q UZend_Dojo_Form_Decorator_ContentPane-P ]Zend_Dojo_Form_Decorator_BorderContainer+O YZend_Dojo_Form_Decorator_AccordionPane0N cZend_Dojo_Form_Decorator_AccordionContainerM 3Zend_Dojo_ExceptionL )Zend_Dojo_DataK 5Zend_Dojo_BuildLayerJ !Zend_DebugI Zend_DbH 'Zend_Db_TableG 5Zend_Db_Table_Select#F IZend_Db_Table_Select_ExceptionE 5Zend_Db_Table_Rowset#D IZend_Db_Table_Rowset_Exception"C GZend_Db_Table_Rowset_AbstractB /Zend_Db_Table_Row A CZend_Db_Table_Row_Exception@ AZend_Db_Table_Row_Abstract? ;Zend_Db_Table_Exception> =Zend_Db_Table_Definition= 9Zend_Db_Table_Abstract< /Zend_Db_Statement; =Zend_Db_Statement_Sqlsrv': QZend_Db_Statement_Sqlsrv_Exception9 7Zend_Db_Statement_Pdo8 ?Zend_Db_Statement_Pdo_Oci7 ?Zend_Db_Statement_Pdo_Ibm6 =Zend_Db_Statement_Oracle'5 QZend_Db_Statement_Oracle_Exception4 =Zend_Db_Statement_Mysqli'3 QZend_Db_Statement_Mysqli_Exception 2 CZend_Db_Statement_Exception1 7Zend_Db_Statement_Db2$0 KZend_Db_Statement_Db2_Exception/ )Zend_Db_Select. =Zend_Db_Select_Exception- -Zend_Db_Profiler, 9Zend_Db_Profiler_Query+ =Zend_Db_Profiler_Firebug* AZend_Db_Profiler_Exception) %Zend_Db_Expr( /Zend_Db_Exception' 9Zend_Db_Adapter_Sqlsrv%& MZend_Db_Adapter_Sqlsrv_Exception% AZend_Db_Adapter_Pdo_Sqlite$ ?Zend_Db_Adapter_Pdo_Pgsql# ;Zend_Db_Adapter_Pdo_Oci" ?Zend_Db_Adapter_Pdo_Mysql! ?Zend_Db_Adapter_Pdo_Mssql  ;Zend_Db_Adapter_Pdo_Ibm  CZend_Db_Adapter_Pdo_Ibm_Ids  CZend_Db_Adapter_Pdo_Ibm_Db2! EZend_Db_Adapter_Pdo_Abstract 9Zend_Db_Adapter_Oracle% MZend_Db_Adapter_Oracle_Exception 9Zend_Db_Adapter_Mysqli% MZend_Db_Adapter_Mysqli_Exception ?Zend_Db_Adapter_Exception 3Zend_Db_Adapter_Db2" GZend_Db_Adapter_Db2_Exception =Zend_Db_Adapter_Abstract Zend_Date 3Zend_Date_Exception 5Zend_Date_DateObject -Zend_Date_Cities 'Zend_Currency ;Zend_Currency_Exception !Zend_Crypt )Zend_Crypt_Rsa 1Zend_Crypt_Rsa_Key ?Zend_Crypt_Rsa_Key_Public
 AZend_Crypt_Rsa_Key_Private	 =Zend_Crypt_Rsa_Exception +Zend_Crypt_Math ?Zend_Crypt_Math_Exception AZend_Crypt_Math_BigInteger# IZend_Crypt_Math_BigInteger_Gmp) UZend_Crypt_Math_BigInteger_Exception& OZend_Crypt_Math_BigInteger_Bcmath +Zend_Crypt_Hmac ?Zend_Crypt_Hmac_Exception  5Zend_Crypt_Exception =Zend_Crypt_DiffieHellman'~ QZend_Crypt_DiffieHellman_Exception!} EZend_Controller_Router_Route(| SZend_Controller_Router_Route_Static'{ QZend_Controller_Router_Route_Regex(z SZend_Controller_Router_Route_Module*y WZend_Controller_Router_Route_Hostname'x QZend_Controller_Router_Route_Chain*w WZend_Controller_Router_Route_Abstract#v IZend_Controller_Router_Rewrite%u MZend_Controller_Router_Exception$t KZend_Controller_Router_Abstract*s WZend_Controller_Response_HttpTestCase"r GZend_Controller_Response_Http'q QZend_Controller_Response_Exception!p EZend_Controller_Response_Cli&o OZend_Controller_Response_Abstract   b  `1xM~S"l@uG



u
R
-					U	'~Q&T'] _2xP/U, r?gC           #> IZend_Feed_Reader_EntryAbstract= AZend_Feed_Reader_Entry_Rss < CZend_Feed_Reader_Entry_Atom ; CZend_Feed_Reader_Collection3: iZend_Feed_Reader_Collection_CollectionAbstract)9 UZend_Feed_Reader_Collection_Category'8 QZend_Feed_Reader_Collection_Author7 9Zend_Feed_Pubsubhubbub&6 OZend_Feed_Pubsubhubbub_Subscriber/5 aZend_Feed_Pubsubhubbub_Subscriber_Callback%4 MZend_Feed_Pubsubhubbub_Publisher.3 _Zend_Feed_Pubsubhubbub_Model_Subscription/2 aZend_Feed_Pubsubhubbub_Model_ModelAbstract(1 SZend_Feed_Pubsubhubbub_HttpResponse%0 MZend_Feed_Pubsubhubbub_Exception,/ [Zend_Feed_Pubsubhubbub_CallbackAbstract. 3Zend_Feed_Exception- 3Zend_Feed_Entry_Rss, 5Zend_Feed_Entry_Atom+ =Zend_Feed_Entry_Abstract* /Zend_Feed_Element) /Zend_Feed_Builder( =Zend_Feed_Builder_Header$' KZend_Feed_Builder_Header_Itunes & CZend_Feed_Builder_Exception% ;Zend_Feed_Builder_Entry$ )Zend_Feed_Atom# 1Zend_Feed_Abstract" )Zend_Exception)! UZend_EventManager_StaticEventManager)  UZend_EventManager_SharedEventManager) UZend_EventManager_ResponseCollection SplStack) UZend_EventManager_GlobalEventManager" GZend_EventManager_FilterChain, [Zend_EventManager_Filter_FilterIterator9 uZend_EventManager_Exception_InvalidArgumentException# IZend_EventManager_EventManager ;Zend_EventManager_Event )Zend_Dom_Query 7Zend_Dom_Query_Result =Zend_Dom_Query_Css2Xpath 1Zend_Dom_Exception Zend_Dojo) UZend_Dojo_View_Helper_VerticalSlider, [Zend_Dojo_View_Helper_ValidationTextBox& OZend_Dojo_View_Helper_TimeTextBox" GZend_Dojo_View_Helper_TextBox# IZend_Dojo_View_Helper_Textarea' QZend_Dojo_View_Helper_TabContainer' QZend_Dojo_View_Helper_SubmitButton) UZend_Dojo_View_Helper_StackContainer)
 UZend_Dojo_View_Helper_SplitContainer!	 EZend_Dojo_View_Helper_Slider) UZend_Dojo_View_Helper_SimpleTextarea& OZend_Dojo_View_Helper_RadioButton* WZend_Dojo_View_Helper_PasswordTextBox( SZend_Dojo_View_Helper_NumberTextBox( SZend_Dojo_View_Helper_NumberSpinner+ YZend_Dojo_View_Helper_HorizontalSlider AZend_Dojo_View_Helper_Form* WZend_Dojo_View_Helper_FilteringSelect!  EZend_Dojo_View_Helper_Editor AZend_Dojo_View_Helper_Dojo)~ UZend_Dojo_View_Helper_Dojo_Container)} UZend_Dojo_View_Helper_DijitContainer | CZend_Dojo_View_Helper_Dijit&{ OZend_Dojo_View_Helper_DateTextBox&z OZend_Dojo_View_Helper_CustomDijit*y WZend_Dojo_View_Helper_CurrencyTextBox&x OZend_Dojo_View_Helper_ContentPane#w IZend_Dojo_View_Helper_ComboBox#v IZend_Dojo_View_Helper_CheckBox!u EZend_Dojo_View_Helper_Button*t WZend_Dojo_View_Helper_BorderContainer(s SZend_Dojo_View_Helper_AccordionPane-r ]Zend_Dojo_View_Helper_AccordionContainerq =Zend_Dojo_View_Exceptionp )Zend_Dojo_Formo 9Zend_Dojo_Form_SubForm*n WZend_Dojo_Form_Element_VerticalSlider-m ]Zend_Dojo_Form_Element_ValidationTextBox'l QZend_Dojo_Form_Element_TimeTextBox#k IZend_Dojo_Form_Element_TextBox$j KZend_Dojo_Form_Element_Textarea(i SZend_Dojo_Form_Element_SubmitButton"h GZend_Dojo_Form_Element_Slider*g WZend_Dojo_Form_Element_SimpleTextarea'f QZend_Dojo_Form_Element_RadioButton+e YZend_Dojo_Form_Element_PasswordTextBox)d UZend_Dojo_Form_Element_NumberTextBox)c UZend_Dojo_Form_Element_NumberSpinner,b [Zend_Dojo_Form_Element_HorizontalSlider+a YZend_Dojo_Form_Element_FilteringSelect"` GZend_Dojo_Form_Element_Editor&_ OZend_Dojo_Form_Element_DijitMulti!^ EZend_Dojo_Form_Element_Dijit'] QZend_Dojo_Form_Element_DateTextBox   b  t;k;
wG{ZA+
{A


i
0				P	e9 vC#
b="wI)iM2xW4V,sQ3
                 *  WZend_Filter_Word_CamelCaseToSeparator% MZend_Filter_Word_CamelCaseToDash 7Zend_Filter_StripTags ?Zend_Filter_StripNewlines 9Zend_Filter_StringTrim ?Zend_Filter_StringToUpper ?Zend_Filter_StringToLower 5Zend_Filter_RealPath ;Zend_Filter_PregReplace -Zend_Filter_Null& OZend_Filter_NormalizedToLocalized& OZend_Filter_LocalizedToNormalized +Zend_Filter_Int /Zend_Filter_Input 7Zend_Filter_Inflector =Zend_Filter_HtmlEntities AZend_Filter_File_UpperCase ;Zend_Filter_File_Rename AZend_Filter_File_LowerCase =Zend_Filter_File_Encrypt =Zend_Filter_File_Decrypt 7Zend_Filter_Exception
 3Zend_Filter_Encrypt 	 CZend_Filter_Encrypt_Openssl AZend_Filter_Encrypt_Mcrypt +Zend_Filter_Dir 1Zend_Filter_Digits 3Zend_Filter_Decrypt 9Zend_Filter_Decompress 5Zend_Filter_Compress =Zend_Filter_Compress_Zip =Zend_Filter_Compress_Tar  =Zend_Filter_Compress_Rar =Zend_Filter_Compress_Lzf~ ;Zend_Filter_Compress_Gz*} WZend_Filter_Compress_CompressAbstract| =Zend_Filter_Compress_Bz2{ 5Zend_Filter_Callbackz 3Zend_Filter_Booleany 5Zend_Filter_BaseNamex /Zend_Filter_Alphaw /Zend_Filter_Alnumv 1Zend_File_Transfer!u EZend_File_Transfer_Exception$t KZend_File_Transfer_Adapter_Http(s SZend_File_Transfer_Adapter_Abstractr 9Zend_File_PhpClassFileq AZend_File_ClassFileLocatorp Zend_Feedo -Zend_Feed_Writern ;Zend_Feed_Writer_Source/m aZend_Feed_Writer_Renderer_RendererAbstract'l QZend_Feed_Writer_Renderer_Feed_Rss(k SZend_Feed_Writer_Renderer_Feed_Atom/j aZend_Feed_Writer_Renderer_Feed_Atom_Source5i mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract(h SZend_Feed_Writer_Renderer_Entry_Rss)g UZend_Feed_Writer_Renderer_Entry_Atom1f eZend_Feed_Writer_Renderer_Entry_Atom_Deletede 7Zend_Feed_Writer_Feed'd QZend_Feed_Writer_Feed_FeedAbstract<c {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry8b sZend_Feed_Writer_Extension_Threading_Renderer_Entry4a kZend_Feed_Writer_Extension_Slash_Renderer_Entry0` cZend_Feed_Writer_Extension_RendererAbstract4_ kZend_Feed_Writer_Extension_ITunes_Renderer_Feed5^ mZend_Feed_Writer_Extension_ITunes_Renderer_Entry+] YZend_Feed_Writer_Extension_ITunes_Feed,\ [Zend_Feed_Writer_Extension_ITunes_Entry8[ sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed9Z uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry6Y oZend_Feed_Writer_Extension_Content_Renderer_Entry2X gZend_Feed_Writer_Extension_Atom_Renderer_Feed6W oZend_Feed_Writer_Exception_InvalidMethodExceptionV 9Zend_Feed_Writer_EntryU =Zend_Feed_Writer_DeletedT 'Zend_Feed_RssS -Zend_Feed_ReaderR =Zend_Feed_Reader_FeedSet"Q GZend_Feed_Reader_FeedAbstractP ?Zend_Feed_Reader_Feed_RssO AZend_Feed_Reader_Feed_Atom&N OZend_Feed_Reader_Feed_Atom_Source3M iZend_Feed_Reader_Extension_WellFormedWeb_Entry,L [Zend_Feed_Reader_Extension_Thread_Entry0K cZend_Feed_Reader_Extension_Syndication_Feed+J YZend_Feed_Reader_Extension_Slash_Entry,I [Zend_Feed_Reader_Extension_Podcast_Feed-H ]Zend_Feed_Reader_Extension_Podcast_Entry,G [Zend_Feed_Reader_Extension_FeedAbstract-F ]Zend_Feed_Reader_Extension_EntryAbstract/E aZend_Feed_Reader_Extension_DublinCore_Feed0D cZend_Feed_Reader_Extension_DublinCore_Entry4C kZend_Feed_Reader_Extension_CreativeCommons_Feed5B mZend_Feed_Reader_Extension_CreativeCommons_Entry-A ]Zend_Feed_Reader_Extension_Content_Entry)@ UZend_Feed_Reader_Extension_Atom_Feed*? WZend_Feed_Reader_Extension_Atom_Entry   f  U)uKgCdC_;




h
D
%
				}	W	8	tQ1|R+]-rKb5mB^3jC                                  ! EZend_Gdata_App_Extension_Uri% MZend_Gdata_App_Extension_Updated# IZend_Gdata_App_Extension_Title" GZend_Gdata_App_Extension_Text% MZend_Gdata_App_Extension_Summary& OZend_Gdata_App_Extension_Subtitle$  KZend_Gdata_App_Extension_Source$ KZend_Gdata_App_Extension_Rights'~ QZend_Gdata_App_Extension_Published$} KZend_Gdata_App_Extension_Person"| GZend_Gdata_App_Extension_Name"{ GZend_Gdata_App_Extension_Logo"z GZend_Gdata_App_Extension_Link y CZend_Gdata_App_Extension_Id"x GZend_Gdata_App_Extension_Icon'w QZend_Gdata_App_Extension_Generator#v IZend_Gdata_App_Extension_Email%u MZend_Gdata_App_Extension_Element$t KZend_Gdata_App_Extension_Edited#s IZend_Gdata_App_Extension_Draft%r MZend_Gdata_App_Extension_Control)q UZend_Gdata_App_Extension_Contributor%p MZend_Gdata_App_Extension_Content&o OZend_Gdata_App_Extension_Category$n KZend_Gdata_App_Extension_Authorm =Zend_Gdata_App_Exceptionl 5Zend_Gdata_App_Entry,k [Zend_Gdata_App_CaptchaRequiredException#j IZend_Gdata_App_BaseMediaSourcei 3Zend_Gdata_App_Base*h WZend_Gdata_App_BadMethodCallException!g EZend_Gdata_App_AuthExceptionf 5Zend_Gdata_Analytics+e YZend_Gdata_Analytics_Extension_TableId,d [Zend_Gdata_Analytics_Extension_Property*c WZend_Gdata_Analytics_Extension_Metricb ?Zend_Gdata_Analytics_Goal-a ]Zend_Gdata_Analytics_Extension_Dimension#` IZend_Gdata_Analytics_DataQuery"_ GZend_Gdata_Analytics_DataFeed#^ IZend_Gdata_Analytics_DataEntry&] OZend_Gdata_Analytics_AccountQuery%\ MZend_Gdata_Analytics_AccountFeed&[ OZend_Gdata_Analytics_AccountEntryZ Zend_FormY /Zend_Form_SubFormX 3Zend_Form_ExceptionW /Zend_Form_ElementV ;Zend_Form_Element_XhtmlU AZend_Form_Element_TextareaT 9Zend_Form_Element_TextS =Zend_Form_Element_SubmitR =Zend_Form_Element_SelectQ ;Zend_Form_Element_ResetP ;Zend_Form_Element_RadioO AZend_Form_Element_PasswordN 9Zend_Form_Element_Note"M GZend_Form_Element_Multiselect$L KZend_Form_Element_MultiCheckboxK ;Zend_Form_Element_MultiJ ;Zend_Form_Element_ImageI =Zend_Form_Element_HiddenH 9Zend_Form_Element_HashG 9Zend_Form_Element_File F CZend_Form_Element_ExceptionE AZend_Form_Element_CheckboxD ?Zend_Form_Element_CaptchaC =Zend_Form_Element_ButtonB 9Zend_Form_DisplayGroup#A IZend_Form_Decorator_ViewScript#@ IZend_Form_Decorator_ViewHelper ? CZend_Form_Decorator_Tooltip(> SZend_Form_Decorator_PrepareElements= ?Zend_Form_Decorator_Label< ?Zend_Form_Decorator_Image ; CZend_Form_Decorator_HtmlTag#: IZend_Form_Decorator_FormErrors%9 MZend_Form_Decorator_FormElements8 =Zend_Form_Decorator_Form7 =Zend_Form_Decorator_File!6 EZend_Form_Decorator_Fieldset"5 GZend_Form_Decorator_Exception4 AZend_Form_Decorator_Errors$3 KZend_Form_Decorator_DtDdWrapper$2 KZend_Form_Decorator_Description 1 CZend_Form_Decorator_Captcha%0 MZend_Form_Decorator_Captcha_Word*/ WZend_Form_Decorator_Captcha_ReCaptcha!. EZend_Form_Decorator_Callback!- EZend_Form_Decorator_Abstract, #Zend_Filter++ YZend_Filter_Word_UnderscoreToSeparator&* OZend_Filter_Word_UnderscoreToDash+) YZend_Filter_Word_UnderscoreToCamelCase*( WZend_Filter_Word_SeparatorToSeparator%' MZend_Filter_Word_SeparatorToDash*& WZend_Filter_Word_SeparatorToCamelCase(% SZend_Filter_Word_Separator_Abstract&$ OZend_Filter_Word_DashToUnderscore%# MZend_Filter_Word_DashToSeparator%" MZend_Filter_Word_DashToCamelCase+! YZend_Filter_Word_CamelCaseToUnderscore   _  tO}a9"S&p?b<



_
0
			d	>	mU%b1rT;qI}V9!~U'g<oG%                            e =Zend_Gdata_Extension_Whod AZend_Gdata_Extension_Wherec ?Zend_Gdata_Extension_When$b KZend_Gdata_Extension_Visibility&a OZend_Gdata_Extension_Transparency"` GZend_Gdata_Extension_Reminder-_ ]Zend_Gdata_Extension_RecurrenceException$^ KZend_Gdata_Extension_Recurrence ] CZend_Gdata_Extension_Rating'\ QZend_Gdata_Extension_OriginalEvent0[ cZend_Gdata_Extension_OpenSearchTotalResults.Z _Zend_Gdata_Extension_OpenSearchStartIndex0Y cZend_Gdata_Extension_OpenSearchItemsPerPage"X GZend_Gdata_Extension_FeedLink*W WZend_Gdata_Extension_ExtendedProperty%V MZend_Gdata_Extension_EventStatus#U IZend_Gdata_Extension_EntryLink"T GZend_Gdata_Extension_Comments&S OZend_Gdata_Extension_AttendeeType(R SZend_Gdata_Extension_AttendeeStatusQ +Zend_Gdata_ExifP 5Zend_Gdata_Exif_Feed#O IZend_Gdata_Exif_Extension_Time#N IZend_Gdata_Exif_Extension_Tags$M KZend_Gdata_Exif_Extension_Model#L IZend_Gdata_Exif_Extension_Make"K GZend_Gdata_Exif_Extension_Iso,J [Zend_Gdata_Exif_Extension_ImageUniqueId$I KZend_Gdata_Exif_Extension_FStop*H WZend_Gdata_Exif_Extension_FocalLength$G KZend_Gdata_Exif_Extension_Flash'F QZend_Gdata_Exif_Extension_Exposure'E QZend_Gdata_Exif_Extension_DistanceD 7Zend_Gdata_Exif_EntryC -Zend_Gdata_EntryB 7Zend_Gdata_DublinCore*A WZend_Gdata_DublinCore_Extension_Title,@ [Zend_Gdata_DublinCore_Extension_Subject+? YZend_Gdata_DublinCore_Extension_Rights.> _Zend_Gdata_DublinCore_Extension_Publisher-= ]Zend_Gdata_DublinCore_Extension_Language/< aZend_Gdata_DublinCore_Extension_Identifier+; YZend_Gdata_DublinCore_Extension_Format0: cZend_Gdata_DublinCore_Extension_Description)9 UZend_Gdata_DublinCore_Extension_Date,8 [Zend_Gdata_DublinCore_Extension_Creator7 +Zend_Gdata_Docs6 7Zend_Gdata_Docs_Query%5 MZend_Gdata_Docs_DocumentListFeed&4 OZend_Gdata_Docs_DocumentListEntry3 9Zend_Gdata_ClientLogin2 3Zend_Gdata_Calendar!1 EZend_Gdata_Calendar_ListFeed"0 GZend_Gdata_Calendar_ListEntry-/ ]Zend_Gdata_Calendar_Extension_WebContent+. YZend_Gdata_Calendar_Extension_Timezone9- uZend_Gdata_Calendar_Extension_SendEventNotifications+, YZend_Gdata_Calendar_Extension_Selected++ YZend_Gdata_Calendar_Extension_QuickAdd'* QZend_Gdata_Calendar_Extension_Link)) UZend_Gdata_Calendar_Extension_Hidden(( SZend_Gdata_Calendar_Extension_Color.' _Zend_Gdata_Calendar_Extension_AccessLevel#& IZend_Gdata_Calendar_EventQuery"% GZend_Gdata_Calendar_EventFeed#$ IZend_Gdata_Calendar_EventEntry# -Zend_Gdata_Books!" EZend_Gdata_Books_VolumeQuery ! CZend_Gdata_Books_VolumeFeed!  EZend_Gdata_Books_VolumeEntry+ YZend_Gdata_Books_Extension_Viewability- ]Zend_Gdata_Books_Extension_ThumbnailLink& OZend_Gdata_Books_Extension_Review+ YZend_Gdata_Books_Extension_PreviewLink( SZend_Gdata_Books_Extension_InfoLink- ]Zend_Gdata_Books_Extension_Embeddability) UZend_Gdata_Books_Extension_BooksLink- ]Zend_Gdata_Books_Extension_BooksCategory. _Zend_Gdata_Books_Extension_AnnotationLink$ KZend_Gdata_Books_CollectionFeed% MZend_Gdata_Books_CollectionEntry 1Zend_Gdata_AuthSub )Zend_Gdata_App$ KZend_Gdata_App_VersionException 3Zend_Gdata_App_Util# IZend_Gdata_App_MediaFileSource ?Zend_Gdata_App_MediaEntry2 gZend_Gdata_App_LoggingHttpClientAdapterSocket AZend_Gdata_App_IOException, [Zend_Gdata_App_InvalidArgumentException! EZend_Gdata_App_HttpException$
 KZend_Gdata_App_FeedSourceParent#	 IZend_Gdata_App_FeedEntryParent 3Zend_Gdata_App_Feed =Zend_Gdata_App_Extension   b  |T#vM%]9~W3^;"



o
L
-
					Y	/	_4
uW4Sd5tV=nGj9N%                                             )G UZend_Gdata_Photos_Extension_Nickname%F MZend_Gdata_Photos_Extension_Name2E gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum)D UZend_Gdata_Photos_Extension_Location#C IZend_Gdata_Photos_Extension_Id'B QZend_Gdata_Photos_Extension_Height2A gZend_Gdata_Photos_Extension_CommentingEnabled-@ ]Zend_Gdata_Photos_Extension_CommentCount'? QZend_Gdata_Photos_Extension_Client)> UZend_Gdata_Photos_Extension_Checksum*= WZend_Gdata_Photos_Extension_BytesUsed(< SZend_Gdata_Photos_Extension_AlbumId'; QZend_Gdata_Photos_Extension_Access#: IZend_Gdata_Photos_CommentEntry!9 EZend_Gdata_Photos_AlbumQuery 8 CZend_Gdata_Photos_AlbumFeed!7 EZend_Gdata_Photos_AlbumEntry6 3Zend_Gdata_MimeFile5 ?Zend_Gdata_MimeBodyString4 AZend_Gdata_MediaMimeStream3 -Zend_Gdata_Media2 7Zend_Gdata_Media_Feed*1 WZend_Gdata_Media_Extension_MediaTitle.0 _Zend_Gdata_Media_Extension_MediaThumbnail)/ UZend_Gdata_Media_Extension_MediaText0. cZend_Gdata_Media_Extension_MediaRestriction+- YZend_Gdata_Media_Extension_MediaRating+, YZend_Gdata_Media_Extension_MediaPlayer-+ ]Zend_Gdata_Media_Extension_MediaKeywords)* UZend_Gdata_Media_Extension_MediaHash*) WZend_Gdata_Media_Extension_MediaGroup0( cZend_Gdata_Media_Extension_MediaDescription+' YZend_Gdata_Media_Extension_MediaCredit.& _Zend_Gdata_Media_Extension_MediaCopyright,% [Zend_Gdata_Media_Extension_MediaContent-$ ]Zend_Gdata_Media_Extension_MediaCategory# 9Zend_Gdata_Media_Entry" AZend_Gdata_Kind_EventEntry! 7Zend_Gdata_HttpClient*  WZend_Gdata_HttpAdapterStreamingSocket) UZend_Gdata_HttpAdapterStreamingProxy /Zend_Gdata_Health ;Zend_Gdata_Health_Query& OZend_Gdata_Health_ProfileListFeed' QZend_Gdata_Health_ProfileListEntry" GZend_Gdata_Health_ProfileFeed# IZend_Gdata_Health_ProfileEntry$ KZend_Gdata_Health_Extension_Ccr )Zend_Gdata_Geo 3Zend_Gdata_Geo_Feed$ KZend_Gdata_Geo_Extension_GmlPos& OZend_Gdata_Geo_Extension_GmlPoint) UZend_Gdata_Geo_Extension_GeoRssWhere 5Zend_Gdata_Geo_Entry -Zend_Gdata_Gbase" GZend_Gdata_Gbase_SnippetQuery! EZend_Gdata_Gbase_SnippetFeed" GZend_Gdata_Gbase_SnippetEntry 9Zend_Gdata_Gbase_Query AZend_Gdata_Gbase_ItemQuery ?Zend_Gdata_Gbase_ItemFeed
 AZend_Gdata_Gbase_ItemEntry	 7Zend_Gdata_Gbase_Feed- ]Zend_Gdata_Gbase_Extension_BaseAttribute 9Zend_Gdata_Gbase_Entry -Zend_Gdata_Gapps AZend_Gdata_Gapps_UserQuery ?Zend_Gdata_Gapps_UserFeed AZend_Gdata_Gapps_UserEntry& OZend_Gdata_Gapps_ServiceException 9Zend_Gdata_Gapps_Query   CZend_Gdata_Gapps_OwnerQuery AZend_Gdata_Gapps_OwnerFeed ~ CZend_Gdata_Gapps_OwnerEntry#} IZend_Gdata_Gapps_NicknameQuery"| GZend_Gdata_Gapps_NicknameFeed#{ IZend_Gdata_Gapps_NicknameEntry!z EZend_Gdata_Gapps_MemberQuery y CZend_Gdata_Gapps_MemberFeed!x EZend_Gdata_Gapps_MemberEntry w CZend_Gdata_Gapps_GroupQueryv AZend_Gdata_Gapps_GroupFeed u CZend_Gdata_Gapps_GroupEntry%t MZend_Gdata_Gapps_Extension_Quota(s SZend_Gdata_Gapps_Extension_Property(r SZend_Gdata_Gapps_Extension_Nickname$q KZend_Gdata_Gapps_Extension_Name%p MZend_Gdata_Gapps_Extension_Login)o UZend_Gdata_Gapps_Extension_EmailListn 9Zend_Gdata_Gapps_Error-m ]Zend_Gdata_Gapps_EmailListRecipientQuery,l [Zend_Gdata_Gapps_EmailListRecipientFeed-k ]Zend_Gdata_Gapps_EmailListRecipientEntry$j KZend_Gdata_Gapps_EmailListQuery#i IZend_Gdata_Gapps_EmailListFeed$h KZend_Gdata_Gapps_EmailListEntryg +Zend_Gdata_Feedf 5Zend_Gdata_Extension   Y  oB^0a=pW-}J



i
8
				b	:	oFa3}O%d3Of8~N"nH#                        )  UZend_Gdata_YouTube_PlaylistListEntry" GZend_Gdata_YouTube_MediaEntry! EZend_Gdata_YouTube_InboxFeed" GZend_Gdata_YouTube_InboxEntry) UZend_Gdata_YouTube_Extension_VideoId* WZend_Gdata_YouTube_Extension_Username* WZend_Gdata_YouTube_Extension_Uploaded' QZend_Gdata_YouTube_Extension_Token( SZend_Gdata_YouTube_Extension_Status, [Zend_Gdata_YouTube_Extension_Statistics' QZend_Gdata_YouTube_Extension_State( SZend_Gdata_YouTube_Extension_School- ]Zend_Gdata_YouTube_Extension_ReleaseDate. _Zend_Gdata_YouTube_Extension_Relationship* WZend_Gdata_YouTube_Extension_Recorded& OZend_Gdata_YouTube_Extension_Racy- ]Zend_Gdata_YouTube_Extension_QueryString) UZend_Gdata_YouTube_Extension_Private* WZend_Gdata_YouTube_Extension_Position/ aZend_Gdata_YouTube_Extension_PlaylistTitle, [Zend_Gdata_YouTube_Extension_PlaylistId, [Zend_Gdata_YouTube_Extension_Occupation)
 UZend_Gdata_YouTube_Extension_NoEmbed'	 QZend_Gdata_YouTube_Extension_Music( SZend_Gdata_YouTube_Extension_Movies- ]Zend_Gdata_YouTube_Extension_MediaRating, [Zend_Gdata_YouTube_Extension_MediaGroup- ]Zend_Gdata_YouTube_Extension_MediaCredit. _Zend_Gdata_YouTube_Extension_MediaContent* WZend_Gdata_YouTube_Extension_Location& OZend_Gdata_YouTube_Extension_Link* WZend_Gdata_YouTube_Extension_LastName*  WZend_Gdata_YouTube_Extension_Hometown) UZend_Gdata_YouTube_Extension_Hobbies(~ SZend_Gdata_YouTube_Extension_Gender+} YZend_Gdata_YouTube_Extension_FirstName*| WZend_Gdata_YouTube_Extension_Duration-{ ]Zend_Gdata_YouTube_Extension_Description+z YZend_Gdata_YouTube_Extension_CountHint)y UZend_Gdata_YouTube_Extension_Control)x UZend_Gdata_YouTube_Extension_Company'w QZend_Gdata_YouTube_Extension_Books%v MZend_Gdata_YouTube_Extension_Age)u UZend_Gdata_YouTube_Extension_AboutMe#t IZend_Gdata_YouTube_ContactFeed$s KZend_Gdata_YouTube_ContactEntry#r IZend_Gdata_YouTube_CommentFeed$q KZend_Gdata_YouTube_CommentEntry$p KZend_Gdata_YouTube_ActivityFeed%o MZend_Gdata_YouTube_ActivityEntryn ;Zend_Gdata_Spreadsheets*m WZend_Gdata_Spreadsheets_WorksheetFeed+l YZend_Gdata_Spreadsheets_WorksheetEntry,k [Zend_Gdata_Spreadsheets_SpreadsheetFeed-j ]Zend_Gdata_Spreadsheets_SpreadsheetEntry&i OZend_Gdata_Spreadsheets_ListQuery%h MZend_Gdata_Spreadsheets_ListFeed&g OZend_Gdata_Spreadsheets_ListEntry/f aZend_Gdata_Spreadsheets_Extension_RowCount-e ]Zend_Gdata_Spreadsheets_Extension_Custom/d aZend_Gdata_Spreadsheets_Extension_ColCount+c YZend_Gdata_Spreadsheets_Extension_Cell*b WZend_Gdata_Spreadsheets_DocumentQuery&a OZend_Gdata_Spreadsheets_CellQuery%` MZend_Gdata_Spreadsheets_CellFeed&_ OZend_Gdata_Spreadsheets_CellEntry^ -Zend_Gdata_Query] /Zend_Gdata_Photos \ CZend_Gdata_Photos_UserQuery[ AZend_Gdata_Photos_UserFeed Z CZend_Gdata_Photos_UserEntryY AZend_Gdata_Photos_TagEntry!X EZend_Gdata_Photos_PhotoQuery W CZend_Gdata_Photos_PhotoFeed!V EZend_Gdata_Photos_PhotoEntry&U OZend_Gdata_Photos_Extension_Width'T QZend_Gdata_Photos_Extension_Weight(S SZend_Gdata_Photos_Extension_Version%R MZend_Gdata_Photos_Extension_User*Q WZend_Gdata_Photos_Extension_Timestamp*P WZend_Gdata_Photos_Extension_Thumbnail%O MZend_Gdata_Photos_Extension_Size)N UZend_Gdata_Photos_Extension_Rotation+M YZend_Gdata_Photos_Extension_QuotaLimit-L ]Zend_Gdata_Photos_Extension_QuotaCurrent)K UZend_Gdata_Photos_Extension_Position(J SZend_Gdata_Photos_Extension_PhotoId3I iZend_Gdata_Photos_Extension_NumPhotosRemaining*H WZend_Gdata_Photos_Extension_NumPhotos   j  yL hU/lS:oM2{Y3



^
=
					S	'	t]>lG*lP"pS0`@uV(Z' rL%                   3
 iZend_Loader_Exception_InvalidArgumentException#	 IZend_Loader_ClassMapAutoloader" GZend_Loader_AutoloaderFactory 9Zend_Loader_Autoloader$ KZend_Loader_Autoloader_Resource Zend_Ldap )Zend_Ldap_Node 7Zend_Ldap_Node_Schema# IZend_Ldap_Node_Schema_OpenLdap/ aZend_Ldap_Node_Schema_ObjectClass_OpenLdap6  oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectory AZend_Ldap_Node_Schema_Item1~ eZend_Ldap_Node_Schema_AttributeType_OpenLdap8} sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory*| WZend_Ldap_Node_Schema_ActiveDirectory{ 9Zend_Ldap_Node_RootDse$z KZend_Ldap_Node_RootDse_OpenLdap&y OZend_Ldap_Node_RootDse_eDirectory+x YZend_Ldap_Node_RootDse_ActiveDirectoryw ?Zend_Ldap_Node_Collection$v KZend_Ldap_Node_ChildrenIteratoru ;Zend_Ldap_Node_Abstractt 9Zend_Ldap_Ldif_Encoders -Zend_Ldap_Filterr ;Zend_Ldap_Filter_Stringq 3Zend_Ldap_Filter_Orp 5Zend_Ldap_Filter_Noto 7Zend_Ldap_Filter_Maskn =Zend_Ldap_Filter_Logicalm AZend_Ldap_Filter_Exceptionl 5Zend_Ldap_Filter_Andk ?Zend_Ldap_Filter_Abstractj 3Zend_Ldap_Exceptioni %Zend_Ldap_Dnh 3Zend_Ldap_Converter"g GZend_Ldap_Converter_Exceptionf 5Zend_Ldap_Collection*e WZend_Ldap_Collection_Iterator_Defaultd 3Zend_Ldap_Attributec #Zend_Layoutb 7Zend_Layout_Exception)a UZend_Layout_Controller_Plugin_Layout0` cZend_Layout_Controller_Action_Helper_Layout_ Zend_Json^ -Zend_Json_Server] 5Zend_Json_Server_Smd!\ EZend_Json_Server_Smd_Service[ ?Zend_Json_Server_Response#Z IZend_Json_Server_Response_HttpY =Zend_Json_Server_Request"X GZend_Json_Server_Request_HttpW AZend_Json_Server_ExceptionV 9Zend_Json_Server_ErrorU 9Zend_Json_Server_CacheT )Zend_Json_ExprS 3Zend_Json_ExceptionR /Zend_Json_EncoderQ /Zend_Json_DecoderP 3Zend_Http_UserAgent"O GZend_Http_UserAgent_ValidatorN =Zend_Http_UserAgent_Text(M SZend_Http_UserAgent_Storage_Session.L _Zend_Http_UserAgent_Storage_NonPersistent*K WZend_Http_UserAgent_Storage_ExceptionJ =Zend_Http_UserAgent_SpamI ?Zend_Http_UserAgent_Probe H CZend_Http_UserAgent_OfflineG AZend_Http_UserAgent_MobileF =Zend_Http_UserAgent_Feed+E YZend_Http_UserAgent_Features_Exception3D iZend_Http_UserAgent_Features_Adapter_TeraWurfl5C mZend_Http_UserAgent_Features_Adapter_DeviceAtlas2B gZend_Http_UserAgent_Features_Adapter_Browscap"A GZend_Http_UserAgent_Exception@ ?Zend_Http_UserAgent_Email ? CZend_Http_UserAgent_Desktop > CZend_Http_UserAgent_Console = CZend_Http_UserAgent_Checker< ;Zend_Http_UserAgent_Bot'; QZend_Http_UserAgent_AbstractDevice: 1Zend_Http_Response9 ?Zend_Http_Response_Stream8 AZend_Http_Header_SetCookie07 cZend_Http_Header_Exception_RuntimeException86 sZend_Http_Header_Exception_InvalidArgumentException5 3Zend_Http_Exception4 3Zend_Http_CookieJar3 -Zend_Http_Cookie2 -Zend_Http_Client1 AZend_Http_Client_Exception"0 GZend_Http_Client_Adapter_Test$/ KZend_Http_Client_Adapter_Socket#. IZend_Http_Client_Adapter_Proxy'- QZend_Http_Client_Adapter_Exception", GZend_Http_Client_Adapter_Curl+ !Zend_Gdata* 1Zend_Gdata_YouTube") GZend_Gdata_YouTube_VideoQuery!( EZend_Gdata_YouTube_VideoFeed"' GZend_Gdata_YouTube_VideoEntry(& SZend_Gdata_YouTube_UserProfileEntry(% SZend_Gdata_YouTube_SubscriptionFeed)$ UZend_Gdata_YouTube_SubscriptionEntry)# UZend_Gdata_YouTube_PlaylistVideoFeed*" WZend_Gdata_YouTube_PlaylistVideoEntry(! SZend_Gdata_YouTube_PlaylistListFeed   y o[6sX7lM,{\8'{V6



s
P
,
				{	\	=	gF4R,uWC%mI,uZ;nM3jEdJ3!          7Zend_Mobile_Exception Zend_Mime )Zend_Mime_Part  /Zend_Mime_Message 3Zend_Mime_Exception~ -Zend_Mime_Decode} #Zend_Memory| /Zend_Memory_Value{ 3Zend_Memory_Managerz 7Zend_Memory_Exceptiony 7Zend_Memory_Container"x GZend_Memory_Container_Movable!w EZend_Memory_Container_Locked!v EZend_Memory_AccessControlleru 3Zend_Measure_Weightt 3Zend_Measure_Volume%s MZend_Measure_Viscosity_Kinematic#r IZend_Measure_Viscosity_Dynamicq 3Zend_Measure_Torquep /Zend_Measure_Timeo =Zend_Measure_Temperaturen 1Zend_Measure_Speedm 7Zend_Measure_Pressurel 1Zend_Measure_Powerk 3Zend_Measure_Numberj 9Zend_Measure_Lightnessi 3Zend_Measure_Lengthh ?Zend_Measure_Illuminationg 9Zend_Measure_Frequencyf 1Zend_Measure_Forcee =Zend_Measure_Flow_Volumed 9Zend_Measure_Flow_Molec 9Zend_Measure_Flow_Massb 9Zend_Measure_Exceptiona 3Zend_Measure_Energy` 5Zend_Measure_Density_ 5Zend_Measure_Current ^ CZend_Measure_Cooking_Weight ] CZend_Measure_Cooking_Volume\ =Zend_Measure_Capacitance[ 3Zend_Measure_BinaryZ /Zend_Measure_AreaY 1Zend_Measure_AngleX ?Zend_Measure_AccelerationW 7Zend_Measure_AbstractV #Zend_MarkupU 7Zend_Markup_TokenListT /Zend_Markup_Token*S WZend_Markup_Renderer_RendererAbstractR ?Zend_Markup_Renderer_Html"Q GZend_Markup_Renderer_Html_Url#P IZend_Markup_Renderer_Html_List"O GZend_Markup_Renderer_Html_Img+N YZend_Markup_Renderer_Html_HtmlAbstract#M IZend_Markup_Renderer_Html_Code#L IZend_Markup_Renderer_Exception!K EZend_Markup_Parser_ExceptionJ ?Zend_Markup_Parser_BbcodeI 7Zend_Markup_ExceptionH Zend_MailG =Zend_Mail_Transport_Smtp!F EZend_Mail_Transport_SendmailE =Zend_Mail_Transport_File"D GZend_Mail_Transport_Exception!C EZend_Mail_Transport_AbstractB /Zend_Mail_Storage'A QZend_Mail_Storage_Writable_Maildir@ 9Zend_Mail_Storage_Pop3? 9Zend_Mail_Storage_Mbox> ?Zend_Mail_Storage_Maildir= 9Zend_Mail_Storage_Imap< =Zend_Mail_Storage_Folder"; GZend_Mail_Storage_Folder_Mbox%: MZend_Mail_Storage_Folder_Maildir 9 CZend_Mail_Storage_Exception8 AZend_Mail_Storage_Abstract7 ;Zend_Mail_Protocol_Smtp'6 QZend_Mail_Protocol_Smtp_Auth_Plain'5 QZend_Mail_Protocol_Smtp_Auth_Login)4 UZend_Mail_Protocol_Smtp_Auth_Crammd53 ;Zend_Mail_Protocol_Pop32 ;Zend_Mail_Protocol_Imap!1 EZend_Mail_Protocol_Exception 0 CZend_Mail_Protocol_Abstract/ )Zend_Mail_Part. 3Zend_Mail_Part_File- /Zend_Mail_Message, 9Zend_Mail_Message_File+ 3Zend_Mail_Exception* Zend_Log ) CZend_Log_Writer_ZendMonitor( 9Zend_Log_Writer_Syslog' 9Zend_Log_Writer_Stream& 5Zend_Log_Writer_Null% 5Zend_Log_Writer_Mock$ 5Zend_Log_Writer_Mail# ;Zend_Log_Writer_Firebug" 1Zend_Log_Writer_Db! =Zend_Log_Writer_Abstract  9Zend_Log_Formatter_Xml ?Zend_Log_Formatter_Simple AZend_Log_Formatter_Firebug  CZend_Log_Formatter_Abstract =Zend_Log_Filter_Suppress =Zend_Log_Filter_Priority ;Zend_Log_Filter_Message =Zend_Log_Filter_Abstract 1Zend_Log_Exception #Zend_Locale -Zend_Locale_Math =Zend_Locale_Math_PhpMath AZend_Locale_Math_Exception 1Zend_Locale_Format 7Zend_Locale_Exception -Zend_Locale_Data! EZend_Locale_Data_Translation #Zend_Loader# IZend_Loader_StandardAutoloader =Zend_Loader_PluginLoader' QZend_Loader_PluginLoader_Exception 7Zend_Loader_Exception   m  U#[&kF[3x^D(



x
`
>
				|	[	B	/	d:sKY+uW9{Y7uYAt\2tX=&                               "p GZend_Pdf_Destination_Explicito )Zend_Pdf_Colorn 1Zend_Pdf_Color_Rgbm 3Zend_Pdf_Color_Htmll =Zend_Pdf_Color_GrayScalek 3Zend_Pdf_Color_Cmykj 'Zend_Pdf_Cmapi AZend_Pdf_Cmap_TrimmedTable!h EZend_Pdf_Cmap_SegmentToDeltag AZend_Pdf_Cmap_ByteEncoding&f OZend_Pdf_Cmap_ByteEncoding_Statice +Zend_Pdf_Canvasd =Zend_Pdf_Canvas_Abstractc 3Zend_Pdf_Annotationb =Zend_Pdf_Annotation_Texta AZend_Pdf_Annotation_Markup` =Zend_Pdf_Annotation_Link'_ QZend_Pdf_Annotation_FileAttachment^ +Zend_Pdf_Action] 3Zend_Pdf_Action_URI\ ;Zend_Pdf_Action_Unknown[ 7Zend_Pdf_Action_TransZ 9Zend_Pdf_Action_ThreadY AZend_Pdf_Action_SubmitFormX 7Zend_Pdf_Action_Sound W CZend_Pdf_Action_SetOCGStateV ?Zend_Pdf_Action_ResetFormU ?Zend_Pdf_Action_RenditionT 7Zend_Pdf_Action_NamedS 7Zend_Pdf_Action_MovieR 9Zend_Pdf_Action_LaunchQ AZend_Pdf_Action_JavaScriptP AZend_Pdf_Action_ImportDataO 5Zend_Pdf_Action_HideN 7Zend_Pdf_Action_GoToRM 7Zend_Pdf_Action_GoToEL AZend_Pdf_Action_GoTo3DViewK 5Zend_Pdf_Action_GoToJ )Zend_Paginator-I ]Zend_Paginator_SerializableLimitIterator*H WZend_Paginator_ScrollingStyle_Sliding*G WZend_Paginator_ScrollingStyle_Jumping*F WZend_Paginator_ScrollingStyle_Elastic&E OZend_Paginator_ScrollingStyle_AllD =Zend_Paginator_Exception C CZend_Paginator_Adapter_Null$B KZend_Paginator_Adapter_Iterator)A UZend_Paginator_Adapter_DbTableSelect$@ KZend_Paginator_Adapter_DbSelect!? EZend_Paginator_Adapter_Array> #Zend_OpenId= 5Zend_OpenId_Provider< ?Zend_OpenId_Provider_User&; OZend_OpenId_Provider_User_Session!: EZend_OpenId_Provider_Storage&9 OZend_OpenId_Provider_Storage_File8 7Zend_OpenId_Extension7 AZend_OpenId_Extension_Sreg6 7Zend_OpenId_Exception5 5Zend_OpenId_Consumer!4 EZend_OpenId_Consumer_Storage&3 OZend_OpenId_Consumer_Storage_File2 !Zend_Oauth1 -Zend_Oauth_Token0 =Zend_Oauth_Token_Request'/ QZend_Oauth_Token_AuthorizedRequest. ;Zend_Oauth_Token_Access+- YZend_Oauth_Signature_SignatureAbstract, =Zend_Oauth_Signature_Rsa#+ IZend_Oauth_Signature_Plaintext* ?Zend_Oauth_Signature_Hmac) +Zend_Oauth_Http( ;Zend_Oauth_Http_Utility&' OZend_Oauth_Http_UserAuthorization!& EZend_Oauth_Http_RequestToken % CZend_Oauth_Http_AccessToken$ 5Zend_Oauth_Exception# 3Zend_Oauth_Consumer" /Zend_Oauth_Config! /Zend_Oauth_Client  +Zend_Navigation 5Zend_Navigation_Page =Zend_Navigation_Page_Uri =Zend_Navigation_Page_Mvc ?Zend_Navigation_Exception ?Zend_Navigation_Container$ KZend_Mobile_Push_Test_ApnsProxy" GZend_Mobile_Push_Response_Gcm 7Zend_Mobile_Push_Mpns" GZend_Mobile_Push_Message_Mpns( SZend_Mobile_Push_Message_Mpns_Toast' QZend_Mobile_Push_Message_Mpns_Tile& OZend_Mobile_Push_Message_Mpns_Raw! EZend_Mobile_Push_Message_Gcm' QZend_Mobile_Push_Message_Exception" GZend_Mobile_Push_Message_Apns& OZend_Mobile_Push_Message_Abstract 5Zend_Mobile_Push_Gcm AZend_Mobile_Push_Exception1 eZend_Mobile_Push_Exception_ServerUnavailable- ]Zend_Mobile_Push_Exception_QuotaExceeded, [Zend_Mobile_Push_Exception_InvalidTopic,
 [Zend_Mobile_Push_Exception_InvalidToken3	 iZend_Mobile_Push_Exception_InvalidRegistration. _Zend_Mobile_Push_Exception_InvalidPayload0 cZend_Mobile_Push_Exception_InvalidAuthToken3 iZend_Mobile_Push_Exception_DeviceQuotaExceeded 7Zend_Mobile_Push_Apns ?Zend_Mobile_Push_Abstract   b  {E{Y<{T4	vV=^8



|
\
;
					v	\	;		uQ!m@	NSj0z[3~\B$tc:                            $R KZend_ProgressBar_Adapter_JsPull'Q QZend_ProgressBar_Adapter_Exception%P MZend_ProgressBar_Adapter_ConsoleO Zend_Pdf!N EZend_Pdf_UpdateInfoContainerM -Zend_Pdf_TrailerL ;Zend_Pdf_Trailer_KeeperK AZend_Pdf_Trailer_GeneratorJ +Zend_Pdf_TargetI )Zend_Pdf_StyleH 7Zend_Pdf_StringParserG /Zend_Pdf_ResourceF ?Zend_Pdf_Resource_Unified#E IZend_Pdf_Resource_ImageFactoryD ;Zend_Pdf_Resource_Image!C EZend_Pdf_Resource_Image_Tiff B CZend_Pdf_Resource_Image_Png!A EZend_Pdf_Resource_Image_Jpeg$@ KZend_Pdf_Resource_GraphicsState? 9Zend_Pdf_Resource_Font!> EZend_Pdf_Resource_Font_Type0"= GZend_Pdf_Resource_Font_Simple+< YZend_Pdf_Resource_Font_Simple_Standard8; sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats6: oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman79 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic;8 yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic57 mZend_Pdf_Resource_Font_Simple_Standard_TimesBold26 gZend_Pdf_Resource_Font_Simple_Standard_Symbol<5 {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueA4 Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique93 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold52 mZend_Pdf_Resource_Font_Simple_Standard_Helvetica:1 wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique>0 Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique7/ qZend_Pdf_Resource_Font_Simple_Standard_CourierBold3. iZend_Pdf_Resource_Font_Simple_Standard_Courier)- UZend_Pdf_Resource_Font_Simple_Parsed2, gZend_Pdf_Resource_Font_Simple_Parsed_TrueType*+ WZend_Pdf_Resource_Font_FontDescriptor%* MZend_Pdf_Resource_Font_Extracted#) IZend_Pdf_Resource_Font_CidFont,( [Zend_Pdf_Resource_Font_CidFont_TrueType ' CZend_Pdf_Resource_Extractor$& KZend_Pdf_Resource_ContentStream3% iZend_Pdf_RecursivelyIteratableObjectsContainer$ +Zend_Pdf_Parser# 'Zend_Pdf_Page" -Zend_Pdf_Outline! ;Zend_Pdf_Outline_Loaded  =Zend_Pdf_Outline_Created /Zend_Pdf_NameTree )Zend_Pdf_Image 'Zend_Pdf_Font ?Zend_Pdf_Filter_RunLength  CZend_Pdf_Filter_Compression$ KZend_Pdf_Filter_Compression_Lzw& OZend_Pdf_Filter_Compression_Flate =Zend_Pdf_Filter_AsciiHex ;Zend_Pdf_Filter_Ascii85" GZend_Pdf_FileParserDataSource) UZend_Pdf_FileParserDataSource_String' QZend_Pdf_FileParserDataSource_File 3Zend_Pdf_FileParser ?Zend_Pdf_FileParser_Image" GZend_Pdf_FileParser_Image_Png =Zend_Pdf_FileParser_Font& OZend_Pdf_FileParser_Font_OpenType/ aZend_Pdf_FileParser_Font_OpenType_TrueType 1Zend_Pdf_Exception ;Zend_Pdf_ElementFactory" GZend_Pdf_ElementFactory_Proxy
 -Zend_Pdf_Element	 ;Zend_Pdf_Element_String# IZend_Pdf_Element_String_Binary ;Zend_Pdf_Element_Stream AZend_Pdf_Element_Reference% MZend_Pdf_Element_Reference_Table' QZend_Pdf_Element_Reference_Context ;Zend_Pdf_Element_Object# IZend_Pdf_Element_Object_Stream =Zend_Pdf_Element_Numeric  7Zend_Pdf_Element_Null 7Zend_Pdf_Element_Name ~ CZend_Pdf_Element_Dictionary} =Zend_Pdf_Element_Boolean| 9Zend_Pdf_Element_Array{ 5Zend_Pdf_Destinationz ?Zend_Pdf_Destination_Zoom!y EZend_Pdf_Destination_Unknownx AZend_Pdf_Destination_Named'w QZend_Pdf_Destination_FitVertically&v OZend_Pdf_Destination_FitRectangle)u UZend_Pdf_Destination_FitHorizontally2t gZend_Pdf_Destination_FitBoundingBoxVertically4s kZend_Pdf_Destination_FitBoundingBoxHorizontally(r SZend_Pdf_Destination_FitBoundingBoxq =Zend_Pdf_Destination_Fit   ]  {W,~^2dE2wU3}Z0





j
L
		|	@p4 o1c5jE$W*R,V#e5                        */ WZend_Search_Lucene_Search_Query_Fuzzy*. WZend_Search_Lucene_Search_Query_Empty,- [Zend_Search_Lucene_Search_Query_Boolean2, gZend_Search_Lucene_Search_Highlighter_Default:+ wZend_Search_Lucene_Search_BooleanExpressionRecognizer* =Zend_Search_Lucene_Proxy%) MZend_Search_Lucene_PriorityQueue/( aZend_Search_Lucene_Interface_MultiSearcher%' MZend_Search_Lucene_MultiSearcher#& IZend_Search_Lucene_LockManager$% KZend_Search_Lucene_Index_Writer0$ cZend_Search_Lucene_Index_TermsPriorityQueue&# OZend_Search_Lucene_Index_TermInfo"" GZend_Search_Lucene_Index_Term+! YZend_Search_Lucene_Index_SegmentWriter8  sZend_Search_Lucene_Index_SegmentWriter_StreamWriter: wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter+ YZend_Search_Lucene_Index_SegmentMerger) UZend_Search_Lucene_Index_SegmentInfo' QZend_Search_Lucene_Index_FieldInfo( SZend_Search_Lucene_Index_DocsFilter. _Zend_Search_Lucene_Index_DictionaryLoader! EZend_Search_Lucene_FSMAction 9Zend_Search_Lucene_FSM =Zend_Search_Lucene_Field! EZend_Search_Lucene_Exception  CZend_Search_Lucene_Document% MZend_Search_Lucene_Document_Xlsx% MZend_Search_Lucene_Document_Pptx( SZend_Search_Lucene_Document_OpenXml% MZend_Search_Lucene_Document_Html* WZend_Search_Lucene_Document_Exception% MZend_Search_Lucene_Document_Docx, [Zend_Search_Lucene_Analysis_TokenFilter6 oZend_Search_Lucene_Analysis_TokenFilter_StopWords7 qZend_Search_Lucene_Analysis_TokenFilter_ShortWords: wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf86
 oZend_Search_Lucene_Analysis_TokenFilter_LowerCase&	 OZend_Search_Lucene_Analysis_Token) UZend_Search_Lucene_Analysis_Analyzer0 cZend_Search_Lucene_Analysis_Analyzer_Common8 sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumI Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive5 mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8F Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive8 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumI Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive5  mZend_Search_Lucene_Analysis_Analyzer_Common_TextF Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive~ 7Zend_Search_Exception} -Zend_Rest_Server| AZend_Rest_Server_Exception{ +Zend_Rest_Routez 3Zend_Rest_Exceptiony 5Zend_Rest_Controllerx -Zend_Rest_Clientw ;Zend_Rest_Client_Result&v OZend_Rest_Client_Result_Exceptionu AZend_Rest_Client_Exceptiont 'Zend_Registrys =Zend_Reflection_Propertyr ?Zend_Reflection_Parameterq 9Zend_Reflection_Methodp =Zend_Reflection_Functiono 5Zend_Reflection_Filen ?Zend_Reflection_Extensionm ?Zend_Reflection_Exceptionl =Zend_Reflection_Docblock!k EZend_Reflection_Docblock_Tag(j SZend_Reflection_Docblock_Tag_Return'i QZend_Reflection_Docblock_Tag_Paramh 7Zend_Reflection_Classg !Zend_Queuef 9Zend_Queue_Stomp_Framee ;Zend_Queue_Stomp_Client'd QZend_Queue_Stomp_Client_Connectionc 1Zend_Queue_Message#b IZend_Queue_Message_PlatformJob a CZend_Queue_Message_Iterator` 5Zend_Queue_Exception(_ SZend_Queue_Adapter_PlatformJobQueue^ ;Zend_Queue_Adapter_Null!] EZend_Queue_Adapter_Memcacheq\ 7Zend_Queue_Adapter_Db [ CZend_Queue_Adapter_Db_Queue"Z GZend_Queue_Adapter_Db_MessageY =Zend_Queue_Adapter_Array'X QZend_Queue_Adapter_AdapterAbstract W CZend_Queue_Adapter_ActivemqV -Zend_ProgressBarU AZend_ProgressBar_ExceptionT =Zend_ProgressBar_Adapter$S KZend_ProgressBar_Adapter_JsPush   Z  i-Q$a/|GP!



g
/
			x	D	)a9cI*xS*^5
c. yN%zP*vO&                             	 ;Zend_Service_Amazon_Ec2+ YZend_Service_Amazon_Ec2_Securitygroups% MZend_Service_Amazon_Ec2_Response# IZend_Service_Amazon_Ec2_Region$ KZend_Service_Amazon_Ec2_Keypair% MZend_Service_Amazon_Ec2_Instance- ]Zend_Service_Amazon_Ec2_Instance_Windows. _Zend_Service_Amazon_Ec2_Instance_Reserved" GZend_Service_Amazon_Ec2_Image&  OZend_Service_Amazon_Ec2_Exception& OZend_Service_Amazon_Ec2_Elasticip ~ CZend_Service_Amazon_Ec2_Ebs'} QZend_Service_Amazon_Ec2_CloudWatch.| _Zend_Service_Amazon_Ec2_Availabilityzones%{ MZend_Service_Amazon_Ec2_Abstract'z QZend_Service_Amazon_CustomerReview'y QZend_Service_Amazon_Authentication*x WZend_Service_Amazon_Authentication_V2*w WZend_Service_Amazon_Authentication_V1*v WZend_Service_Amazon_Authentication_S31u eZend_Service_Amazon_Authentication_Exception$t KZend_Service_Amazon_Accessories!s EZend_Service_Amazon_Abstractr 5Zend_Service_Akismetq 7Zend_Service_Abstractp 9Zend_Server_Reflection'o QZend_Server_Reflection_ReturnValue%n MZend_Server_Reflection_Prototype%m MZend_Server_Reflection_Parameter l CZend_Server_Reflection_Node"k GZend_Server_Reflection_Method$j KZend_Server_Reflection_Function-i ]Zend_Server_Reflection_Function_Abstract%h MZend_Server_Reflection_Exception!g EZend_Server_Reflection_Class!f EZend_Server_Method_Prototype!e EZend_Server_Method_Parameter"d GZend_Server_Method_Definition c CZend_Server_Method_Callbackb 7Zend_Server_Exceptiona 9Zend_Server_Definition` /Zend_Server_Cache_ 5Zend_Server_Abstract^ +Zend_Serializer] ?Zend_Serializer_Exception!\ EZend_Serializer_Adapter_Wddx)[ UZend_Serializer_Adapter_PythonPickle)Z UZend_Serializer_Adapter_PhpSerialize$Y KZend_Serializer_Adapter_PhpCode!X EZend_Serializer_Adapter_Json%W MZend_Serializer_Adapter_Igbinary!V EZend_Serializer_Adapter_Amf3!U EZend_Serializer_Adapter_Amf0,T [Zend_Serializer_Adapter_AdapterAbstractS 1Zend_Search_Lucene0R cZend_Search_Lucene_TermStreamsPriorityQueue$Q KZend_Search_Lucene_Storage_File+P YZend_Search_Lucene_Storage_File_Memory/O aZend_Search_Lucene_Storage_File_Filesystem)N UZend_Search_Lucene_Storage_Directory4M kZend_Search_Lucene_Storage_Directory_Filesystem%L MZend_Search_Lucene_Search_Weight*K WZend_Search_Lucene_Search_Weight_Term,J [Zend_Search_Lucene_Search_Weight_Phrase/I aZend_Search_Lucene_Search_Weight_MultiTerm+H YZend_Search_Lucene_Search_Weight_Empty-G ]Zend_Search_Lucene_Search_Weight_Boolean)F UZend_Search_Lucene_Search_Similarity1E eZend_Search_Lucene_Search_Similarity_Default)D UZend_Search_Lucene_Search_QueryToken3C iZend_Search_Lucene_Search_QueryParserException1B eZend_Search_Lucene_Search_QueryParserContext*A WZend_Search_Lucene_Search_QueryParser)@ UZend_Search_Lucene_Search_QueryLexer'? QZend_Search_Lucene_Search_QueryHit)> UZend_Search_Lucene_Search_QueryEntry.= _Zend_Search_Lucene_Search_QueryEntry_Term2< gZend_Search_Lucene_Search_QueryEntry_Subquery0; cZend_Search_Lucene_Search_QueryEntry_Phrase$: KZend_Search_Lucene_Search_Query-9 ]Zend_Search_Lucene_Search_Query_Wildcard)8 UZend_Search_Lucene_Search_Query_Term*7 WZend_Search_Lucene_Search_Query_Range26 gZend_Search_Lucene_Search_Query_Preprocessing75 qZend_Search_Lucene_Search_Query_Preprocessing_Term94 uZend_Search_Lucene_Search_Query_Preprocessing_Phrase83 sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy+2 YZend_Search_Lucene_Search_Query_Phrase.1 _Zend_Search_Lucene_Search_Query_MultiTerm20 gZend_Search_Lucene_Search_Query_Insignificant   B  kAcDc>g?|A


M
			@f,N ^OD'u"e                                       RK %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequestYJ 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequestdI IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequestQH #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequestOG Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequestUF +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequestUE +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequestVD -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequestaC CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequestZB 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequestTA )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequestR@ %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequestY? 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequestQ> #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequestQ= #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequesta< CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequestN; Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformationL: Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalanceJ9 Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool-8 ]Zend_Service_DeveloperGarden_LocalSearch>7 Zend_Service_DeveloperGarden_LocalSearch_SearchParameters76 qZend_Service_DeveloperGarden_LocalSearch_Exception,5 [Zend_Service_DeveloperGarden_IpLocation64 oZend_Service_DeveloperGarden_IpLocation_IpAddress+3 YZend_Service_DeveloperGarden_Exception,2 [Zend_Service_DeveloperGarden_Credential01 cZend_Service_DeveloperGarden_ConferenceCallC0 Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatusC/ Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail<. {Zend_Service_DeveloperGarden_ConferenceCall_Participant:- wZend_Service_DeveloperGarden_ConferenceCall_ExceptionD, 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceScheduleB+ Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetailC* Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount-) ]Zend_Service_DeveloperGarden_Client_Soap2( gZend_Service_DeveloperGarden_Client_Exception7' qZend_Service_DeveloperGarden_Client_ClientAbstract1& eZend_Service_DeveloperGarden_BaseUserServiceA% Zend_Service_DeveloperGarden_BaseUserService_AccountBalance$ 9Zend_Service_Delicious&# OZend_Service_Delicious_SimplePost$" KZend_Service_Delicious_PostList ! CZend_Service_Delicious_Post%  MZend_Service_Delicious_Exception  CZend_Service_Audioscrobbler 3Zend_Service_Amazon ;Zend_Service_Amazon_Sqs& OZend_Service_Amazon_Sqs_Exception! EZend_Service_Amazon_SimpleDb* WZend_Service_Amazon_SimpleDb_Response& OZend_Service_Amazon_SimpleDb_Page+ YZend_Service_Amazon_SimpleDb_Exception+ YZend_Service_Amazon_SimpleDb_Attribute' QZend_Service_Amazon_SimilarProduct 9Zend_Service_Amazon_S3" GZend_Service_Amazon_S3_Stream% MZend_Service_Amazon_S3_Exception" GZend_Service_Amazon_ResultSet ?Zend_Service_Amazon_Query! EZend_Service_Amazon_OfferSet ?Zend_Service_Amazon_Offer& OZend_Service_Amazon_ListmaniaList =Zend_Service_Amazon_Item ?Zend_Service_Amazon_Image" GZend_Service_Amazon_Exception(
 SZend_Service_Amazon_EditorialReview   / y CYDq*N

{
-			FtmS?{M3  y                   [z 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseTypeWy /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse[x 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseTypeWw /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse\v 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseTypeXu 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponsegt OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseTypecs GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse`r AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType\q 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseZp 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseTypeVo -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseXn 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseTypeTm )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse_l ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType[k 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseWj /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseTypeSi 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseQh #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstractSg 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponseJf Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseTypege OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseTypecd GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseWc /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponseUb +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponseSa 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse3` iZend_Service_DeveloperGarden_Response_BaseTypeJ_ Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstractC^ Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCallG] Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced=\ }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallA[ Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatusAZ Zend_Service_DeveloperGarden_Request_SmsValidation_ValidateNY Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeywordCX Zend_Service_DeveloperGarden_Request_SmsValidation_InvalidateLW Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbersBV Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract9U uZend_Service_DeveloperGarden_Request_SendSms_SendSMS>T Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS9S uZend_Service_DeveloperGarden_Request_RequestAbstractIR Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequestEQ Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest3P iZend_Service_DeveloperGarden_Request_ExceptionRO %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequestYN 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequestdM IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequestQL #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequest   8  R2b*K 

l
			>D]gz/<d5I{B               )2 UZend_Service_Ebay_Finding_Error_Data-1 ]Zend_Service_Ebay_Finding_Error_Data_Set'0 QZend_Service_Ebay_Finding_Category1/ eZend_Service_Ebay_Finding_Category_Histogram5. mZend_Service_Ebay_Finding_Category_Histogram_Set;- yZend_Service_Ebay_Finding_Category_Histogram_Container%, MZend_Service_Ebay_Finding_Aspect)+ UZend_Service_Ebay_Finding_Aspect_Set5* mZend_Service_Ebay_Finding_Aspect_Histogram_Value9) uZend_Service_Ebay_Finding_Aspect_Histogram_Value_Set9( uZend_Service_Ebay_Finding_Aspect_Histogram_Container'' QZend_Service_Ebay_Finding_Abstract & CZend_Service_Ebay_Exception% AZend_Service_Ebay_Abstract+$ YZend_Service_DeveloperGarden_VoiceCall/# aZend_Service_DeveloperGarden_SmsValidation)" UZend_Service_DeveloperGarden_SendSms5! mZend_Service_DeveloperGarden_SecurityTokenServer;  yZend_Service_DeveloperGarden_SecurityTokenServer_CacheK Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstractL Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponseP !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponseG Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponseJ Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponseK Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2ResponseL Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponseI Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumberW /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponseJ Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponseU +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponseC Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponseC Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstractH Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponseU +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponseQ #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponseI Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception; yZend_Service_DeveloperGarden_Response_ResponseAbstractO Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseTypeK Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseA Zend_Service_DeveloperGarden_Response_IpLocation_RegionTypeK
 Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseTypeG	 Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseL Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationTypeI Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType> Zend_Service_DeveloperGarden_Response_IpLocation_CityType4 kZend_Service_DeveloperGarden_Response_ExceptionT )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponsef MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponseS 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponseT  )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponsef~ MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponseS} 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponseU| +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseTypeQ{ #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse   X  vCtBX)vP4uF



c
2
			t	?	\4vQ'b2J%j>k9~W- yN                              #
 IZend_Service_Technorati_Weblog"	 GZend_Service_Technorati_Utils* WZend_Service_Technorati_TagsResultSet' QZend_Service_Technorati_TagsResult) UZend_Service_Technorati_TagResultSet& OZend_Service_Technorati_TagResult, [Zend_Service_Technorati_SearchResultSet) UZend_Service_Technorati_SearchResult& OZend_Service_Technorati_ResultSet# IZend_Service_Technorati_Result*  WZend_Service_Technorati_KeyInfoResult* WZend_Service_Technorati_GetInfoResult&~ OZend_Service_Technorati_Exception1} eZend_Service_Technorati_DailyCountsResultSet.| _Zend_Service_Technorati_DailyCountsResult,{ [Zend_Service_Technorati_CosmosResultSet)z UZend_Service_Technorati_CosmosResult+y YZend_Service_Technorati_BlogInfoResult#x IZend_Service_Technorati_Authorw ;Zend_Service_StrikeIron(v SZend_Service_StrikeIron_ZipCodeInfo2u gZend_Service_StrikeIron_USAddressVerification-t ]Zend_Service_StrikeIron_SalesUseTaxBasic&s OZend_Service_StrikeIron_Exception&r OZend_Service_StrikeIron_Decorator!q EZend_Service_StrikeIron_Base;p yZend_Service_SqlAzure_Management_ServiceEntityAbstract4o kZend_Service_SqlAzure_Management_ServerInstance:n wZend_Service_SqlAzure_Management_FirewallRuleInstance/m aZend_Service_SqlAzure_Management_Exception,l [Zend_Service_SqlAzure_Management_Client$k KZend_Service_SqlAzure_Exceptionj ;Zend_Service_SlideShare&i OZend_Service_SlideShare_SlideShow&h OZend_Service_SlideShare_Exception%g MZend_Service_ShortUrl_TinyUrlCom&f OZend_Service_ShortUrl_MetamarkNet!e EZend_Service_ShortUrl_JdemCzd AZend_Service_ShortUrl_IsGd$c KZend_Service_ShortUrl_Exception b CZend_Service_ShortUrl_BitLy,a [Zend_Service_ShortUrl_AbstractShortener` 9Zend_Service_ReCaptcha$_ KZend_Service_ReCaptcha_Response$^ KZend_Service_ReCaptcha_MailHide.] _Zend_Service_ReCaptcha_MailHide_Exception%\ MZend_Service_ReCaptcha_Exception#[ IZend_Service_Rackspace_Servers5Z mZend_Service_Rackspace_Servers_SharedIpGroupList1Y eZend_Service_Rackspace_Servers_SharedIpGroup.X _Zend_Service_Rackspace_Servers_ServerList*W WZend_Service_Rackspace_Servers_Server-V ]Zend_Service_Rackspace_Servers_ImageList)U UZend_Service_Rackspace_Servers_Image-T ]Zend_Service_Rackspace_Servers_Exception!S EZend_Service_Rackspace_Files,R [Zend_Service_Rackspace_Files_ObjectList(Q SZend_Service_Rackspace_Files_Object+P YZend_Service_Rackspace_Files_Exception/O aZend_Service_Rackspace_Files_ContainerList+N YZend_Service_Rackspace_Files_Container%M MZend_Service_Rackspace_Exception$L KZend_Service_Rackspace_AbstractK 7Zend_Service_LiveDocx$J KZend_Service_LiveDocx_MailMerge$I KZend_Service_LiveDocx_ExceptionH 3Zend_Service_Flickr"G GZend_Service_Flickr_ResultSetF AZend_Service_Flickr_ResultE ?Zend_Service_Flickr_ImageD 9Zend_Service_ExceptionC ?Zend_Service_Ebay_Finding)B UZend_Service_Ebay_Finding_Storefront+A YZend_Service_Ebay_Finding_ShippingInfo+@ YZend_Service_Ebay_Finding_Set_Abstract,? [Zend_Service_Ebay_Finding_SellingStatus)> UZend_Service_Ebay_Finding_SellerInfo,= [Zend_Service_Ebay_Finding_Search_Result*< WZend_Service_Ebay_Finding_Search_Item.; _Zend_Service_Ebay_Finding_Search_Item_Set0: cZend_Service_Ebay_Finding_Response_Keywords-9 ]Zend_Service_Ebay_Finding_Response_Items28 gZend_Service_Ebay_Finding_Response_Histograms07 cZend_Service_Ebay_Finding_Response_Abstract/6 aZend_Service_Ebay_Finding_PaginationOutput*5 WZend_Service_Ebay_Finding_ListingInfo(4 SZend_Service_Ebay_Finding_Exception,3 [Zend_Service_Ebay_Finding_Error_Message   A  v<*i1x0J


k
			^	(~ANU	}9p:b#Om5                                                           7K qZend_Service_WindowsAzure_Storage_SignedIdentifier3J iZend_Service_WindowsAzure_Storage_QueueMessage4I kZend_Service_WindowsAzure_Storage_QueueInstance,H [Zend_Service_WindowsAzure_Storage_Queue9G uZend_Service_WindowsAzure_Storage_PageRegionInstance4F kZend_Service_WindowsAzure_Storage_LeaseInstance9E uZend_Service_WindowsAzure_Storage_DynamicTableEntity3D iZend_Service_WindowsAzure_Storage_BlobInstance4C kZend_Service_WindowsAzure_Storage_BlobContainer+B YZend_Service_WindowsAzure_Storage_Blob2A gZend_Service_WindowsAzure_Storage_Blob_Stream;@ yZend_Service_WindowsAzure_Storage_BatchStorageAbstract,? [Zend_Service_WindowsAzure_Storage_Batch-> ]Zend_Service_WindowsAzure_SessionHandler>= Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract1< eZend_Service_WindowsAzure_RetryPolicy_RetryN2; gZend_Service_WindowsAzure_RetryPolicy_NoRetry4: kZend_Service_WindowsAzure_RetryPolicy_ExceptionH9 Zend_Service_WindowsAzure_Management_SubscriptionOperationInstanceA8 Zend_Service_WindowsAzure_Management_StorageServiceInstance@7 Zend_Service_WindowsAzure_Management_ServiceEntityAbstractB6 Zend_Service_WindowsAzure_Management_OperationStatusInstanceB5 Zend_Service_WindowsAzure_Management_OperatingSystemInstanceH4 Zend_Service_WindowsAzure_Management_OperatingSystemFamilyInstance:3 wZend_Service_WindowsAzure_Management_LocationInstance@2 Zend_Service_WindowsAzure_Management_HostedServiceInstance31 iZend_Service_WindowsAzure_Management_Exception<0 {Zend_Service_WindowsAzure_Management_DeploymentInstance0/ cZend_Service_WindowsAzure_Management_Client=. }Zend_Service_WindowsAzure_Management_CertificateInstance@- Zend_Service_WindowsAzure_Management_AffinityGroupInstance6, oZend_Service_WindowsAzure_Log_Writer_WindowsAzure9+ uZend_Service_WindowsAzure_Log_Formatter_WindowsAzure,* [Zend_Service_WindowsAzure_Log_Exception() SZend_Service_WindowsAzure_ExceptionJ( Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscription2' gZend_Service_WindowsAzure_Diagnostics_Manager3& iZend_Service_WindowsAzure_Diagnostics_LogLevel4% kZend_Service_WindowsAzure_Diagnostics_ExceptionN$ Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscriptionH# Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLogL" Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCountersK! Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstract<  {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogsA Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstanceD 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectoriesU +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogsD 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSources8 sZend_Service_WindowsAzure_Credentials_SharedKeyLite4 kZend_Service_WindowsAzure_Credentials_SharedKeyA Zend_Service_WindowsAzure_Credentials_SharedAccessSignature4 kZend_Service_WindowsAzure_Credentials_Exception> Zend_Service_WindowsAzure_Credentials_CredentialsAbstract2 gZend_Service_WindowsAzure_CommandLine_Storage2 gZend_Service_WindowsAzure_CommandLine_Service !ScaffolderW /Zend_Service_WindowsAzure_CommandLine_PackageScaffolder_PackageScaffolderAbstract2 gZend_Service_WindowsAzure_CommandLine_PackageD 	Zend_Service_WindowsAzure_CommandLine_GetAsynchronousOperation5 mZend_Service_WindowsAzure_CommandLine_Deployment6 oZend_Service_WindowsAzure_CommandLine_Certificate 5Zend_Service_Twitter" GZend_Service_Twitter_Response# IZend_Service_Twitter_Exception ;Zend_Service_Technorati   e  ZuKyP&a<tI!




w
W
4
						W	/kT0rG{eK/R%wC[-{_@x^?$                     $0 KZend_Tool_Framework_Action_Base/ 'Zend_TimeSync. 1Zend_TimeSync_Sntp- 9Zend_TimeSync_Protocol, /Zend_TimeSync_Ntp+ ;Zend_TimeSync_Exception* +Zend_Text_Table) 3Zend_Text_Table_Row( ?Zend_Text_Table_Exception&' OZend_Text_Table_Decorator_Unicode$& KZend_Text_Table_Decorator_Ascii% 9Zend_Text_Table_Column$ 3Zend_Text_MultiByte# -Zend_Text_Figlet" AZend_Text_Figlet_Exception! 3Zend_Text_Exception&  OZend_Test_PHPUnit_Db_SimpleTester, [Zend_Test_PHPUnit_Db_Operation_Truncate* WZend_Test_PHPUnit_Db_Operation_Insert- ]Zend_Test_PHPUnit_Db_Operation_DeleteAll* WZend_Test_PHPUnit_Db_Metadata_Generic# IZend_Test_PHPUnit_Db_Exception, [Zend_Test_PHPUnit_Db_DataSet_QueryTable. _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet0 cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet) UZend_Test_PHPUnit_Db_DataSet_DbTable* WZend_Test_PHPUnit_Db_DataSet_DbRowset$ KZend_Test_PHPUnit_Db_Connection' QZend_Test_PHPUnit_DatabaseTestCase) UZend_Test_PHPUnit_ControllerTestCase0 cZend_Test_PHPUnit_Constraint_ResponseHeader* WZend_Test_PHPUnit_Constraint_Redirect+ YZend_Test_PHPUnit_Constraint_Exception* WZend_Test_PHPUnit_Constraint_DomQuery 7Zend_Test_DbStatement 3Zend_Test_DbAdapter /Zend_Tag_ItemList 'Zend_Tag_Item
 1Zend_Tag_Exception	 )Zend_Tag_Cloud =Zend_Tag_Cloud_Exception! EZend_Tag_Cloud_Decorator_Tag% MZend_Tag_Cloud_Decorator_HtmlTag' QZend_Tag_Cloud_Decorator_HtmlCloud' QZend_Tag_Cloud_Decorator_Exception# IZend_Tag_Cloud_Decorator_Cloud! EZend_Stdlib_SplPriorityQueue -SplPriorityQueue  ?Zend_Stdlib_PriorityQueue3 iZend_Stdlib_Exception_InvalidCallbackException ~ CZend_Stdlib_CallbackHandler} )Zend_Soap_Wsdl/| aZend_Soap_Wsdl_Strategy_DefaultComplexType&{ OZend_Soap_Wsdl_Strategy_Composite0z cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence/y aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex$x KZend_Soap_Wsdl_Strategy_AnyType%w MZend_Soap_Wsdl_Strategy_Abstractv =Zend_Soap_Wsdl_Exceptionu -Zend_Soap_Servert 9Zend_Soap_Server_Proxys AZend_Soap_Server_Exceptionr -Zend_Soap_Clientq 9Zend_Soap_Client_Localp AZend_Soap_Client_Exceptiono ;Zend_Soap_Client_DotNetn ;Zend_Soap_Client_Commonm 9Zend_Soap_AutoDiscover%l MZend_Soap_AutoDiscover_Exceptionk %Zend_Session)j UZend_Session_Validator_HttpUserAgent$i KZend_Session_Validator_Abstract'h QZend_Session_SaveHandler_Exception%g MZend_Session_SaveHandler_DbTablef 9Zend_Session_Namespacee 9Zend_Session_Exceptiond 7Zend_Session_Abstractc 1Zend_Service_Yahoo$b KZend_Service_Yahoo_WebResultSet!a EZend_Service_Yahoo_WebResult&` OZend_Service_Yahoo_VideoResultSet#_ IZend_Service_Yahoo_VideoResult!^ EZend_Service_Yahoo_ResultSet] ?Zend_Service_Yahoo_Result)\ UZend_Service_Yahoo_PageDataResultSet&[ OZend_Service_Yahoo_PageDataResult%Z MZend_Service_Yahoo_NewsResultSet"Y GZend_Service_Yahoo_NewsResult&X OZend_Service_Yahoo_LocalResultSet#W IZend_Service_Yahoo_LocalResult+V YZend_Service_Yahoo_InlinkDataResultSet(U SZend_Service_Yahoo_InlinkDataResult&T OZend_Service_Yahoo_ImageResultSet#S IZend_Service_Yahoo_ImageResultR =Zend_Service_Yahoo_Image&Q OZend_Service_WindowsAzure_Storage4P kZend_Service_WindowsAzure_Storage_TableInstance7O qZend_Service_WindowsAzure_Storage_TableEntityQuery2N gZend_Service_WindowsAzure_Storage_TableEntity,M [Zend_Service_WindowsAzure_Storage_Table<L {Zend_Service_WindowsAzure_Storage_StorageEntityAbstract   K  yOa_2}Q&}R, 


N
				W	,xHc7g(^'Rr7f0Y(                                           *{ WZend_Tool_Project_Context_Zf_FormFile/z aZend_Tool_Project_Context_Zf_DocsDirectory-y ]Zend_Tool_Project_Context_Zf_DbTableFile2x gZend_Tool_Project_Context_Zf_DbTableDirectory/w aZend_Tool_Project_Context_Zf_DataDirectory6v oZend_Tool_Project_Context_Zf_ControllersDirectory0u cZend_Tool_Project_Context_Zf_ControllerFile2t gZend_Tool_Project_Context_Zf_ConfigsDirectory,s [Zend_Tool_Project_Context_Zf_ConfigFile0r cZend_Tool_Project_Context_Zf_CacheDirectory/q aZend_Tool_Project_Context_Zf_BootstrapFile6p oZend_Tool_Project_Context_Zf_ApplicationDirectory7o qZend_Tool_Project_Context_Zf_ApplicationConfigFile/n aZend_Tool_Project_Context_Zf_ApisDirectory.m _Zend_Tool_Project_Context_Zf_ActionMethod3l iZend_Tool_Project_Context_Zf_AbstractClassFile@k Zend_Tool_Project_Context_System_ProjectProvidersDirectory8j sZend_Tool_Project_Context_System_ProjectProfileFile6i oZend_Tool_Project_Context_System_ProjectDirectory)h UZend_Tool_Project_Context_Repository.g _Zend_Tool_Project_Context_Filesystem_File3f iZend_Tool_Project_Context_Filesystem_Directory2e gZend_Tool_Project_Context_Filesystem_Abstract(d SZend_Tool_Project_Context_Exception-c ]Zend_Tool_Project_Context_Content_Engine3b iZend_Tool_Project_Context_Content_Engine_Phtml;a yZend_Tool_Project_Context_Content_Engine_CodeGenerator0` cZend_Tool_Framework_System_Provider_Version0_ cZend_Tool_Framework_System_Provider_Phpinfo1^ eZend_Tool_Framework_System_Provider_Manifest/] aZend_Tool_Framework_System_Provider_Config(\ SZend_Tool_Framework_System_Manifest-[ ]Zend_Tool_Framework_System_Action_Delete-Z ]Zend_Tool_Framework_System_Action_Create!Y EZend_Tool_Framework_Registry+X YZend_Tool_Framework_Registry_Exception+W YZend_Tool_Framework_Provider_Signature,V [Zend_Tool_Framework_Provider_Repository+U YZend_Tool_Framework_Provider_Exception*T WZend_Tool_Framework_Provider_Abstract&S OZend_Tool_Framework_Metadata_Tool)R UZend_Tool_Framework_Metadata_Dynamic'Q QZend_Tool_Framework_Metadata_Basic,P [Zend_Tool_Framework_Manifest_Repository2O gZend_Tool_Framework_Manifest_ProviderMetadata*N WZend_Tool_Framework_Manifest_Metadata+M YZend_Tool_Framework_Manifest_Exception0L cZend_Tool_Framework_Manifest_ActionMetadata1K eZend_Tool_Framework_Loader_IncludePathLoaderJJ Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator+I YZend_Tool_Framework_Loader_BasicLoader(H SZend_Tool_Framework_Loader_Abstract"G GZend_Tool_Framework_Exception'F QZend_Tool_Framework_Client_Storage1E eZend_Tool_Framework_Client_Storage_Directory(D SZend_Tool_Framework_Client_ResponseDC 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator'B QZend_Tool_Framework_Client_Request(A SZend_Tool_Framework_Client_Manifest9@ uZend_Tool_Framework_Client_Interactive_InputResponse8? sZend_Tool_Framework_Client_Interactive_InputRequest8> sZend_Tool_Framework_Client_Interactive_InputHandler)= UZend_Tool_Framework_Client_Exception'< QZend_Tool_Framework_Client_ConsoleD; 	Zend_Tool_Framework_Client_Console_ResponseDecorator_IndentionD: 	Zend_Tool_Framework_Client_Console_ResponseDecorator_ColorizerC9 Zend_Tool_Framework_Client_Console_ResponseDecorator_BlockizeF8 Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter07 cZend_Tool_Framework_Client_Console_Manifest26 gZend_Tool_Framework_Client_Console_HelpSystem65 oZend_Tool_Framework_Client_Console_ArgumentParser&4 OZend_Tool_Framework_Client_Config(3 SZend_Tool_Framework_Client_Abstract*2 WZend_Tool_Framework_Action_Repository)1 UZend_Tool_Framework_Action_Exception   K  d(S$Kj*H

|
8			o	1~@Vt@ FhFf;g=d?                     F ?Zend_Translate_Adapter_QtE AZend_Translate_Adapter_Ini#D IZend_Translate_Adapter_GettextC AZend_Translate_Adapter_Csv!B EZend_Translate_Adapter_Array$A KZend_Tool_Project_Provider_View$@ KZend_Tool_Project_Provider_Test/? aZend_Tool_Project_Provider_ProjectProvider'> QZend_Tool_Project_Provider_Project'= QZend_Tool_Project_Provider_Profile&< OZend_Tool_Project_Provider_Module%; MZend_Tool_Project_Provider_Model(: SZend_Tool_Project_Provider_Manifest&9 OZend_Tool_Project_Provider_Layout$8 KZend_Tool_Project_Provider_Form)7 UZend_Tool_Project_Provider_Exception'6 QZend_Tool_Project_Provider_DbTable)5 UZend_Tool_Project_Provider_DbAdapter*4 WZend_Tool_Project_Provider_Controller+3 YZend_Tool_Project_Provider_Application&2 OZend_Tool_Project_Provider_Action(1 SZend_Tool_Project_Provider_Abstract0 ?Zend_Tool_Project_Profile'/ QZend_Tool_Project_Profile_Resource9. uZend_Tool_Project_Profile_Resource_SearchConstraints1- eZend_Tool_Project_Profile_Resource_Container=, }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter5+ mZend_Tool_Project_Profile_Iterator_ContextFilter-* ]Zend_Tool_Project_Profile_FileParser_Xml() SZend_Tool_Project_Profile_Exception ( CZend_Tool_Project_Exception<' {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory0& cZend_Tool_Project_Context_Zf_ViewsDirectory6% oZend_Tool_Project_Context_Zf_ViewScriptsDirectory0$ cZend_Tool_Project_Context_Zf_ViewScriptFile6# oZend_Tool_Project_Context_Zf_ViewHelpersDirectory6" oZend_Tool_Project_Context_Zf_ViewFiltersDirectoryA! Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory2  gZend_Tool_Project_Context_Zf_UploadsDirectory0 cZend_Tool_Project_Context_Zf_TestsDirectory7 qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile: wZend_Tool_Project_Context_Zf_TestPHPUnitBootstrapFile@ Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory1 eZend_Tool_Project_Context_Zf_TestLibraryFile6 oZend_Tool_Project_Context_Zf_TestLibraryDirectory: wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFileB Zend_Tool_Project_Context_Zf_TestApplicationModulesDirectoryA Zend_Tool_Project_Context_Zf_TestApplicationModuleDirectory: wZend_Tool_Project_Context_Zf_TestApplicationDirectory@ Zend_Tool_Project_Context_Zf_TestApplicationControllerFileE Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory> Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile= }Zend_Tool_Project_Context_Zf_TestApplicationActionMethod4 kZend_Tool_Project_Context_Zf_TemporaryDirectory3 iZend_Tool_Project_Context_Zf_SessionsDirectory3 iZend_Tool_Project_Context_Zf_ServicesDirectory8 sZend_Tool_Project_Context_Zf_SearchIndexesDirectory< {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory8 sZend_Tool_Project_Context_Zf_PublicScriptsDirectory1 eZend_Tool_Project_Context_Zf_PublicIndexFile7
 qZend_Tool_Project_Context_Zf_PublicImagesDirectory1	 eZend_Tool_Project_Context_Zf_PublicDirectory5 mZend_Tool_Project_Context_Zf_ProjectProviderFile2 gZend_Tool_Project_Context_Zf_ModulesDirectory1 eZend_Tool_Project_Context_Zf_ModuleDirectory1 eZend_Tool_Project_Context_Zf_ModelsDirectory+ YZend_Tool_Project_Context_Zf_ModelFile/ aZend_Tool_Project_Context_Zf_LogsDirectory2 gZend_Tool_Project_Context_Zf_LocalesDirectory2 gZend_Tool_Project_Context_Zf_LibraryDirectory2  gZend_Tool_Project_Context_Zf_LayoutsDirectory8 sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory2~ gZend_Tool_Project_Context_Zf_LayoutScriptFile.} _Zend_Tool_Project_Context_Zf_HtaccessFile0| cZend_Tool_Project_Context_Zf_FormsDirectory   r  pQ0~b4mE!oL'd@




`
=

					h	@	xL!pH%}[6fL3X2dB"zX:a>     '8 QZend_View_Helper_FormMultiCheckbox7 AZend_View_Helper_FormLabel6 AZend_View_Helper_FormImage 5 CZend_View_Helper_FormHidden4 ?Zend_View_Helper_FormFile 3 CZend_View_Helper_FormErrors!2 EZend_View_Helper_FormElement"1 GZend_View_Helper_FormCheckbox 0 CZend_View_Helper_FormButton/ 7Zend_View_Helper_Form. ?Zend_View_Helper_Fieldset- =Zend_View_Helper_Doctype!, EZend_View_Helper_DeclareVars+ 9Zend_View_Helper_Cycle* ?Zend_View_Helper_Currency) =Zend_View_Helper_BaseUrl( ;Zend_View_Helper_Action' ?Zend_View_Helper_Abstract& 3Zend_View_Exception% 1Zend_View_Abstract$ %Zend_Version# 'Zend_Validate" AZend_Validate_StringLength#! IZend_Validate_Sitemap_Priority  ?Zend_Validate_Sitemap_Loc" GZend_Validate_Sitemap_Lastmod% MZend_Validate_Sitemap_Changefreq 3Zend_Validate_Regex 9Zend_Validate_PostCode 9Zend_Validate_NotEmpty 9Zend_Validate_LessThan 7Zend_Validate_Ldap_Dn 1Zend_Validate_Isbn -Zend_Validate_Ip /Zend_Validate_Int 7Zend_Validate_InArray ;Zend_Validate_Identical 1Zend_Validate_Iban 9Zend_Validate_Hostname /Zend_Validate_Hex ?Zend_Validate_GreaterThan 3Zend_Validate_Float! EZend_Validate_File_WordCount ?Zend_Validate_File_Upload ;Zend_Validate_File_Size ;Zend_Validate_File_Sha1!
 EZend_Validate_File_NotExists 	 CZend_Validate_File_MimeType 9Zend_Validate_File_Md5 AZend_Validate_File_IsImage$ KZend_Validate_File_IsCompressed! EZend_Validate_File_ImageSize ;Zend_Validate_File_Hash! EZend_Validate_File_FilesSize! EZend_Validate_File_Extension ?Zend_Validate_File_Exists'  QZend_Validate_File_ExcludeMimeType( SZend_Validate_File_ExcludeExtension~ =Zend_Validate_File_Crc32} =Zend_Validate_File_Count| ;Zend_Validate_Exception{ AZend_Validate_EmailAddressz 5Zend_Validate_Digits"y GZend_Validate_Db_RecordExists$x KZend_Validate_Db_NoRecordExistsw ?Zend_Validate_Db_Abstractv 1Zend_Validate_Dateu =Zend_Validate_CreditCardt 3Zend_Validate_Ccnums 9Zend_Validate_Callbackr 7Zend_Validate_Betweenq 7Zend_Validate_Barcodep AZend_Validate_Barcode_Upceo AZend_Validate_Barcode_Upcan AZend_Validate_Barcode_Sscc$m KZend_Validate_Barcode_Royalmail"l GZend_Validate_Barcode_Postnet!k EZend_Validate_Barcode_Planet#j IZend_Validate_Barcode_Leitcode i CZend_Validate_Barcode_Itf14h AZend_Validate_Barcode_Issn*g WZend_Validate_Barcode_IntelligentMail$f KZend_Validate_Barcode_Identcode!e EZend_Validate_Barcode_Gtin14!d EZend_Validate_Barcode_Gtin13!c EZend_Validate_Barcode_Gtin12b AZend_Validate_Barcode_Ean8a AZend_Validate_Barcode_Ean5` AZend_Validate_Barcode_Ean2 _ CZend_Validate_Barcode_Ean18 ^ CZend_Validate_Barcode_Ean14 ] CZend_Validate_Barcode_Ean13 \ CZend_Validate_Barcode_Ean12$[ KZend_Validate_Barcode_Code93ext!Z EZend_Validate_Barcode_Code93$Y KZend_Validate_Barcode_Code39ext!X EZend_Validate_Barcode_Code39,W [Zend_Validate_Barcode_Code25interleaved!V EZend_Validate_Barcode_Code25*U WZend_Validate_Barcode_AdapterAbstractT 3Zend_Validate_AlphaS 3Zend_Validate_AlnumR 9Zend_Validate_AbstractQ Zend_UriP 'Zend_Uri_HttpO 1Zend_Uri_ExceptionN )Zend_TranslateM 7Zend_Translate_PluralL =Zend_Translate_ExceptionK 9Zend_Translate_Adapter!J EZend_Translate_Adapter_XmlTm!I EZend_Translate_Adapter_XliffH AZend_Translate_Adapter_TmxG AZend_Translate_Adapter_Tbx   k  rN*|X5b;tJ!{Z5



[
#					]	@		{I$vMuKrU4pK)z\;bL;Z3
      ## IZend_Amf_Parse_Amf3_Serializer%" MZend_Amf_Parse_Amf3_Deserializer#! IZend_Amf_Parse_Amf0_Serializer%  MZend_Amf_Parse_Amf0_Deserializer 1Zend_Amf_Exception 1Zend_Amf_Constants 9Zend_Amf_Auth_Abstract  CZend_Amf_Adobe_Introspector AZend_Amf_Adobe_DbInspector 3Zend_Amf_Adobe_Auth Zend_Acl 'Zend_Acl_Role 9Zend_Acl_Role_Registry% MZend_Acl_Role_Registry_Exception /Zend_Acl_Resource 1Zend_Acl_Exception /Zend_XmlRpc_Value =Zend_XmlRpc_Value_Struct =Zend_XmlRpc_Value_String =Zend_XmlRpc_Value_Scalar 7Zend_XmlRpc_Value_Nil ?Zend_XmlRpc_Value_Integer  CZend_XmlRpc_Value_Exception =Zend_XmlRpc_Value_Double AZend_XmlRpc_Value_DateTime!
 EZend_XmlRpc_Value_Collection	 ?Zend_XmlRpc_Value_Boolean! EZend_XmlRpc_Value_BigInteger =Zend_XmlRpc_Value_Base64 ;Zend_XmlRpc_Value_Array 1Zend_XmlRpc_Server ?Zend_XmlRpc_Server_System =Zend_XmlRpc_Server_Fault! EZend_XmlRpc_Server_Exception =Zend_XmlRpc_Server_Cache  5Zend_XmlRpc_Response ?Zend_XmlRpc_Response_Http~ 3Zend_XmlRpc_Request} ?Zend_XmlRpc_Request_Stdin| =Zend_XmlRpc_Request_Http${ KZend_XmlRpc_Generator_XmlWriter,z [Zend_XmlRpc_Generator_GeneratorAbstract&y OZend_XmlRpc_Generator_DomDocumentx /Zend_XmlRpc_Faultw 7Zend_XmlRpc_Exceptionv 1Zend_XmlRpc_Client#u IZend_XmlRpc_Client_ServerProxy+t YZend_XmlRpc_Client_ServerIntrospection+s YZend_XmlRpc_Client_IntrospectException%r MZend_XmlRpc_Client_HttpException&q OZend_XmlRpc_Client_FaultException!p EZend_XmlRpc_Client_Exceptiono /Zend_Xml_Securityn 1Zend_Xml_Exception&m OZend_Wildfire_Protocol_JsonStream!l EZend_Wildfire_Plugin_FirePhp.k _Zend_Wildfire_Plugin_FirePhp_TableMessage)j UZend_Wildfire_Plugin_FirePhp_Messagei ;Zend_Wildfire_Exception&h OZend_Wildfire_Channel_HttpHeadersg Zend_Viewf -Zend_View_Streame AZend_View_Helper_UserAgentd 5Zend_View_Helper_Urlc AZend_View_Helper_Translateb AZend_View_Helper_ServerUrl)a UZend_View_Helper_RenderToPlaceholder!` EZend_View_Helper_Placeholder*_ WZend_View_Helper_Placeholder_Registry4^ kZend_View_Helper_Placeholder_Registry_Exception+] YZend_View_Helper_Placeholder_Container6\ oZend_View_Helper_Placeholder_Container_Standalone5[ mZend_View_Helper_Placeholder_Container_Exception4Z kZend_View_Helper_Placeholder_Container_Abstract!Y EZend_View_Helper_PartialLoopX =Zend_View_Helper_Partial'W QZend_View_Helper_Partial_Exception'V QZend_View_Helper_PaginationControl U CZend_View_Helper_Navigation(T SZend_View_Helper_Navigation_Sitemap%S MZend_View_Helper_Navigation_Menu&R OZend_View_Helper_Navigation_Links/Q aZend_View_Helper_Navigation_HelperAbstract,P [Zend_View_Helper_Navigation_BreadcrumbsO ;Zend_View_Helper_LayoutN 7Zend_View_Helper_Json"M GZend_View_Helper_InlineScript#L IZend_View_Helper_HtmlQuicktimeK ?Zend_View_Helper_HtmlPage J CZend_View_Helper_HtmlObjectI ?Zend_View_Helper_HtmlListH AZend_View_Helper_HtmlFlash!G EZend_View_Helper_HtmlElementF AZend_View_Helper_HeadTitleE AZend_View_Helper_HeadStyle D CZend_View_Helper_HeadScriptC ?Zend_View_Helper_HeadMetaB ?Zend_View_Helper_HeadLinkA ?Zend_View_Helper_Gravatar"@ GZend_View_Helper_FormTextarea? ?Zend_View_Helper_FormText > CZend_View_Helper_FormSubmit = CZend_View_Helper_FormSelect< AZend_View_Helper_FormReset; AZend_View_Helper_FormRadio": GZend_View_Helper_FormPassword9 ?Zend_View_Helper_FormNote   X  _?^$pB ^7^6




b
B
				g	E	tS*	N*Z3	W+i.o6`.j<                                        /T aZend_Tool_Project_Context_System_Interface(S SZend_Tool_Project_Context_Interface+R YZend_Tool_Framework_Registry_Interface2Q gZend_Tool_Framework_Registry_EnabledInterface-P ]Zend_Tool_Framework_Provider_Pretendable+O YZend_Tool_Framework_Provider_Interface.N _Zend_Tool_Framework_Provider_Interactable/M aZend_Tool_Framework_Provider_Initializable;L yZend_Tool_Framework_Provider_DocblockManifestInterface+K YZend_Tool_Framework_Metadata_Interface.J _Zend_Tool_Framework_Metadata_Attributable6I oZend_Tool_Framework_Manifest_ProviderManifestable6H oZend_Tool_Framework_Manifest_MetadataManifestable+G YZend_Tool_Framework_Manifest_Interface+F YZend_Tool_Framework_Manifest_Indexable4E kZend_Tool_Framework_Manifest_ActionManifestable)D UZend_Tool_Framework_Loader_Interface8C sZend_Tool_Framework_Client_Storage_AdapterInterfaceDB 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface;A yZend_Tool_Framework_Client_Interactive_OutputInterface:@ wZend_Tool_Framework_Client_Interactive_InputInterface)? UZend_Tool_Framework_Action_Interface(> SZend_Text_Table_Decorator_Interface= /Zend_Tag_Taggable< 7Zend_Stdlib_Exception&; OZend_Soap_Wsdl_Strategy_Interface%: MZend_Session_Validator_Interface'9 QZend_Session_SaveHandler_Interface$8 KZend_Service_ShortUrl_ShortenerI7 Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Interface6 7Zend_Server_Interface-5 ]Zend_Serializer_Adapter_AdapterInterface44 kZend_Search_Lucene_Search_Highlighter_Interface!3 EZend_Search_Lucene_Interface32 iZend_Search_Lucene_Index_TermsStream_Interface$1 KZend_Queue_Stomp_FrameInterface00 cZend_Queue_Stomp_Client_ConnectionInterface(/ SZend_Queue_Adapter_AdapterInterface. ?Zend_Pdf_Filter_Interface&- OZend_Pdf_ElementFactory_Interface, ?Zend_Pdf_Canvas_Interface,+ [Zend_Paginator_ScrollingStyle_Interface$* KZend_Paginator_AdapterAggregate%) MZend_Paginator_Adapter_Interface&( OZend_Oauth_Config_ConfigInterface'' QZend_Mobile_Push_Message_Interface& AZend_Mobile_Push_Interface$% KZend_Memory_Container_Interface1$ eZend_Markup_Renderer_TokenConverterInterface'# QZend_Markup_Parser_ParserInterface)" UZend_Mail_Storage_Writable_Interface'! QZend_Mail_Storage_Folder_Interface  =Zend_Mail_Part_Interface  CZend_Mail_Message_Interface! EZend_Log_Formatter_Interface ?Zend_Log_Filter_Interface ?Zend_Log_FactoryInterface ?Zend_Loader_SplAutoloader' QZend_Loader_PluginLoader_Interface% MZend_Loader_Autoloader_Interface0 cZend_Ldap_Node_Schema_ObjectClass_Interface2 gZend_Ldap_Node_Schema_AttributeType_Interface  CZend_Http_UserAgent_Storage) UZend_Http_UserAgent_Features_Adapter AZend_Http_UserAgent_Device$ KZend_Http_Client_Adapter_Stream' QZend_Http_Client_Adapter_Interface AZend_Gdata_App_MediaSource. _Zend_Form_Decorator_Marker_File_Interface" GZend_Form_Decorator_Interface 7Zend_Filter_Interface" GZend_Filter_Encrypt_Interface+ YZend_Filter_Compress_CompressInterface0 cZend_Feed_Writer_Renderer_RendererInterface1
 eZend_Feed_Writer_Extension_RendererInterface#	 IZend_Feed_Reader_FeedInterface$ KZend_Feed_Reader_EntryInterface7 qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface- ]Zend_Feed_Pubsubhubbub_CallbackInterface  CZend_Feed_Builder_Interface1 eZend_EventManager_SharedEventCollectionAware, [Zend_EventManager_SharedEventCollection( SZend_EventManager_ListenerAggregate =Zend_EventManager_Filter   CZend_EventManager_Exception( SZend_EventManager_EventManagerAware'~ QZend_EventManager_EventDescription&} OZend_EventManager_EventCollection   ]  U'zT3a0~T%X0



c
9
				q	=	c/g6uRwV5xN~V/ j7O2                                     I1 Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Interface0 7Zend_Server_Interface-/ ]Zend_Serializer_Adapter_AdapterInterface4. kZend_Search_Lucene_Search_Highlighter_Interface!- EZend_Search_Lucene_Interface3, iZend_Search_Lucene_Index_TermsStream_Interface$+ KZend_Queue_Stomp_FrameInterface0* cZend_Queue_Stomp_Client_ConnectionInterface() SZend_Queue_Adapter_AdapterInterface( ?Zend_Pdf_Filter_Interface&' OZend_Pdf_ElementFactory_Interface& ?Zend_Pdf_Canvas_Interface,% [Zend_Paginator_ScrollingStyle_Interface$$ KZend_Paginator_AdapterAggregate%# MZend_Paginator_Adapter_Interface&" OZend_Oauth_Config_ConfigInterface'! QZend_Mobile_Push_Message_Interface  AZend_Mobile_Push_Interface$ KZend_Memory_Container_Interface1 eZend_Markup_Renderer_TokenConverterInterface' QZend_Markup_Parser_ParserInterface) UZend_Mail_Storage_Writable_Interface' QZend_Mail_Storage_Folder_Interface =Zend_Mail_Part_Interface  CZend_Mail_Message_Interface! EZend_Log_Formatter_Interface ?Zend_Log_Filter_Interface ?Zend_Log_FactoryInterface ?Zend_Loader_SplAutoloader' QZend_Loader_PluginLoader_Interface% MZend_Loader_Autoloader_Interface0 cZend_Ldap_Node_Schema_ObjectClass_Interface2 gZend_Ldap_Node_Schema_AttributeType_Interface  CZend_Http_UserAgent_Storage) UZend_Http_UserAgent_Features_Adapter AZend_Http_UserAgent_Device$ KZend_Http_Client_Adapter_Stream' QZend_Http_Client_Adapter_Interface AZend_Gdata_App_MediaSource.
 _Zend_Form_Decorator_Marker_File_Interface"	 GZend_Form_Decorator_Interface 7Zend_Filter_Interface" GZend_Filter_Encrypt_Interface+ YZend_Filter_Compress_CompressInterface0 cZend_Feed_Writer_Renderer_RendererInterface1 eZend_Feed_Writer_Extension_RendererInterface# IZend_Feed_Reader_FeedInterface$ KZend_Feed_Reader_EntryInterface7 qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface-  ]Zend_Feed_Pubsubhubbub_CallbackInterface  CZend_Feed_Builder_Interface1~ eZend_EventManager_SharedEventCollectionAware,} [Zend_EventManager_SharedEventCollection(| SZend_EventManager_ListenerAggregate{ =Zend_EventManager_Filter z CZend_EventManager_Exception(y SZend_EventManager_EventManagerAware'x QZend_EventManager_EventDescription&w OZend_EventManager_EventCollection v CZend_Db_Statement_Interface$u KZend_Currency_CurrencyInterface)t UZend_Crypt_Math_BigInteger_Interface+s YZend_Controller_Router_Route_Interface%r MZend_Controller_Router_Interface)q UZend_Controller_Dispatcher_Interface%p MZend_Controller_Action_Interface&o OZend_Cloud_StorageService_Adapter$n KZend_Cloud_QueueService_Adapter&m OZend_Cloud_Infrastructure_Adapter,l [Zend_Cloud_DocumentService_QueryAdapter'k QZend_Cloud_DocumentService_Adapterj 5Zend_Captcha_Adapter!i EZend_Cache_Backend_Interface)h UZend_Cache_Backend_ExtendedInterface g CZend_Auth_Storage_Interface f CZend_Auth_Adapter_Interface.e _Zend_Auth_Adapter_Http_Resolver_Interface'd QZend_Application_Resource_Resource4c kZend_Application_Bootstrap_ResourceBootstrapper,b [Zend_Application_Bootstrap_Bootstrappera ;Zend_Acl_Role_Interface ` CZend_Acl_Resource_Interface_ ?Zend_Acl_Assert_Interface#^ IZend_Wildfire_Plugin_Interface$] KZend_Wildfire_Channel_Interface\ 3Zend_View_Interface'[ QZend_View_Helper_Navigation_HelperZ AZend_View_Helper_InterfaceY ;Zend_Validate_Interface+X YZend_Validate_Barcode_AdapterInterface3W iZend_Tool_Project_Profile_FileParser_Interface:V wZend_Tool_Project_Context_System_TopLevelRestrictable5U mZend_Tool_Project_Context_System_NotOverwritable   g  h<{a?'j6yH&tI



x
F
				}	S	&tH!oB#b@.wU4b=c;pK+zU1                  $
 KZend_Cache_Backend_ZendPlatform	 ?Zend_Cache_Backend_Xcache  CZend_Cache_Backend_WinCache! EZend_Cache_Backend_TwoLevels ;Zend_Cache_Backend_Test ?Zend_Cache_Backend_Static ?Zend_Cache_Backend_Sqlite! EZend_Cache_Backend_Memcached$ KZend_Cache_Backend_Libmemcached ;Zend_Cache_Backend_File!  EZend_Cache_Backend_BlackHole 9Zend_Cache_Backend_Apc~ %Zend_Barcode} ?Zend_Barcode_Renderer_Svg+| YZend_Barcode_Renderer_RendererAbstract{ ?Zend_Barcode_Renderer_Pdf z CZend_Barcode_Renderer_Image$y KZend_Barcode_Renderer_Exceptionx =Zend_Barcode_Object_Upcew =Zend_Barcode_Object_Upca"v GZend_Barcode_Object_Royalmail u CZend_Barcode_Object_Postnett AZend_Barcode_Object_Planet's QZend_Barcode_Object_ObjectAbstract!r EZend_Barcode_Object_Leitcodeq ?Zend_Barcode_Object_Itf14"p GZend_Barcode_Object_Identcode"o GZend_Barcode_Object_Exceptionn ?Zend_Barcode_Object_Errorm =Zend_Barcode_Object_Ean8l =Zend_Barcode_Object_Ean5k =Zend_Barcode_Object_Ean2j ?Zend_Barcode_Object_Ean13i AZend_Barcode_Object_Code39*h WZend_Barcode_Object_Code25interleavedg AZend_Barcode_Object_Code25 f CZend_Barcode_Object_Code128e 9Zend_Barcode_Exceptiond Zend_Authc ?Zend_Auth_Storage_Session$b KZend_Auth_Storage_NonPersistent a CZend_Auth_Storage_Exception` -Zend_Auth_Result_ 3Zend_Auth_Exception^ =Zend_Auth_Adapter_OpenId] 9Zend_Auth_Adapter_Ldap\ 9Zend_Auth_Adapter_Http)[ UZend_Auth_Adapter_Http_Resolver_File.Z _Zend_Auth_Adapter_Http_Resolver_Exception Y CZend_Auth_Adapter_ExceptionX =Zend_Auth_Adapter_DigestW ?Zend_Auth_Adapter_DbTableV -Zend_Application#U IZend_Application_Resource_View(T SZend_Application_Resource_UserAgent(S SZend_Application_Resource_Translate&R OZend_Application_Resource_Session%Q MZend_Application_Resource_Router/P aZend_Application_Resource_ResourceAbstract)O UZend_Application_Resource_Navigation&N OZend_Application_Resource_Multidb&M OZend_Application_Resource_Modules#L IZend_Application_Resource_Mail"K GZend_Application_Resource_Log%J MZend_Application_Resource_Locale%I MZend_Application_Resource_Layout.H _Zend_Application_Resource_Frontcontroller(G SZend_Application_Resource_Exception#F IZend_Application_Resource_Dojo!E EZend_Application_Resource_Db+D YZend_Application_Resource_Cachemanager&C OZend_Application_Module_Bootstrap'B QZend_Application_Module_AutoloaderA AZend_Application_Exception)@ UZend_Application_Bootstrap_Exception1? eZend_Application_Bootstrap_BootstrapAbstract)> UZend_Application_Bootstrap_Bootstrap= ?Zend_Amf_Value_TraitsInfo-< ]Zend_Amf_Value_Messaging_RemotingMessage*; WZend_Amf_Value_Messaging_ErrorMessage,: [Zend_Amf_Value_Messaging_CommandMessage*9 WZend_Amf_Value_Messaging_AsyncMessage-8 ]Zend_Amf_Value_Messaging_ArrayCollection07 cZend_Amf_Value_Messaging_AcknowledgeMessage-6 ]Zend_Amf_Value_Messaging_AbstractMessage!5 EZend_Amf_Value_MessageHeader4 AZend_Amf_Value_MessageBody3 =Zend_Amf_Value_ByteArray2 AZend_Amf_Util_BinaryStream1 +Zend_Amf_Server0 ?Zend_Amf_Server_Exception/ /Zend_Amf_Response. 9Zend_Amf_Response_Http- -Zend_Amf_Request, 7Zend_Amf_Request_Http+ ?Zend_Amf_Parse_TypeLoader* ?Zend_Amf_Parse_Serializer#) IZend_Amf_Parse_Resource_Stream(( SZend_Amf_Parse_Resource_MysqlResult)' UZend_Amf_Parse_Resource_MysqliResult & CZend_Amf_Parse_OutputStream% AZend_Amf_Parse_InputStream $ CZend_Amf_Parse_Deserializer   `  hP3cH5rOh0}T7



o
E
				e	-	pH _(a=S+Y#gN-lT;'[)                                      8j sZend_Controller_Action_Helper_AutoComplete_Abstract.i _Zend_Controller_Action_Helper_AjaxContext.h _Zend_Controller_Action_Helper_ActionStack+g YZend_Controller_Action_Helper_Abstract%f MZend_Controller_Action_Exceptione 3Zend_Console_Getopt"d GZend_Console_Getopt_Exceptionc #Zend_Configb -Zend_Config_Yamla +Zend_Config_Xml` 1Zend_Config_Writer_ ;Zend_Config_Writer_Yaml^ 9Zend_Config_Writer_Xml] ;Zend_Config_Writer_Json\ 9Zend_Config_Writer_Ini$[ KZend_Config_Writer_FileAbstractZ =Zend_Config_Writer_ArrayY -Zend_Config_JsonX +Zend_Config_IniW 7Zend_Config_Exception$V KZend_CodeGenerator_Php_Property1U eZend_CodeGenerator_Php_Property_DefaultValue%T MZend_CodeGenerator_Php_Parameter2S gZend_CodeGenerator_Php_Parameter_DefaultValue"R GZend_CodeGenerator_Php_Method,Q [Zend_CodeGenerator_Php_Member_Container+P YZend_CodeGenerator_Php_Member_Abstract O CZend_CodeGenerator_Php_File%N MZend_CodeGenerator_Php_Exception$M KZend_CodeGenerator_Php_Docblock(L SZend_CodeGenerator_Php_Docblock_Tag/K aZend_CodeGenerator_Php_Docblock_Tag_Return.J _Zend_CodeGenerator_Php_Docblock_Tag_Param0I cZend_CodeGenerator_Php_Docblock_Tag_License!H EZend_CodeGenerator_Php_Class G CZend_CodeGenerator_Php_Body$F KZend_CodeGenerator_Php_Abstract!E EZend_CodeGenerator_Exception D CZend_CodeGenerator_Abstract&C OZend_Cloud_StorageService_Factory(B SZend_Cloud_StorageService_Exception3A iZend_Cloud_StorageService_Adapter_WindowsAzure)@ UZend_Cloud_StorageService_Adapter_S30? cZend_Cloud_StorageService_Adapter_Rackspace1> eZend_Cloud_StorageService_Adapter_FileSystem'= QZend_Cloud_QueueService_MessageSet$< KZend_Cloud_QueueService_Message$; KZend_Cloud_QueueService_Factory&: OZend_Cloud_QueueService_Exception.9 _Zend_Cloud_QueueService_Adapter_ZendQueue18 eZend_Cloud_QueueService_Adapter_WindowsAzure(7 SZend_Cloud_QueueService_Adapter_Sqs46 kZend_Cloud_QueueService_Adapter_AbstractAdapter.5 _Zend_Cloud_OperationNotAvailableException+4 YZend_Cloud_Infrastructure_InstanceList'3 QZend_Cloud_Infrastructure_Instance(2 SZend_Cloud_Infrastructure_ImageList$1 KZend_Cloud_Infrastructure_Image&0 OZend_Cloud_Infrastructure_Factory(/ SZend_Cloud_Infrastructure_Exception0. cZend_Cloud_Infrastructure_Adapter_Rackspace*- WZend_Cloud_Infrastructure_Adapter_Ec26, oZend_Cloud_Infrastructure_Adapter_AbstractAdapter+ 5Zend_Cloud_Exception%* MZend_Cloud_DocumentService_Query') QZend_Cloud_DocumentService_Factory)( UZend_Cloud_DocumentService_Exception+' YZend_Cloud_DocumentService_DocumentSet(& SZend_Cloud_DocumentService_Document4% kZend_Cloud_DocumentService_Adapter_WindowsAzure:$ wZend_Cloud_DocumentService_Adapter_WindowsAzure_Query0# cZend_Cloud_DocumentService_Adapter_SimpleDb6" oZend_Cloud_DocumentService_Adapter_SimpleDb_Query7! qZend_Cloud_DocumentService_Adapter_AbstractAdapter  AZend_Cloud_AbstractFactory /Zend_Captcha_Word 9Zend_Captcha_ReCaptcha 1Zend_Captcha_Image 3Zend_Captcha_Figlet 9Zend_Captcha_Exception /Zend_Captcha_Dumb /Zend_Captcha_Base !Zend_Cache 1Zend_Cache_Manager =Zend_Cache_Frontend_Page AZend_Cache_Frontend_Output! EZend_Cache_Frontend_Function =Zend_Cache_Frontend_File ?Zend_Cache_Frontend_Class  CZend_Cache_Frontend_Capture 5Zend_Cache_Exception +Zend_Cache_Core 1Zend_Cache_Backend" GZend_Cache_Backend_ZendServer( SZend_Cache_Backend_ZendServer_ShMem' QZend_Cache_Backend_ZendServer_Disk   h  ])n;]1xL"S,



^
6
				_	3	kN,sQ9nX?"oF'rR0aG2~V8|Z8                        'R QZend_Db_Statement_Sqlsrv_ExceptionQ 7Zend_Db_Statement_PdoP ?Zend_Db_Statement_Pdo_OciO ?Zend_Db_Statement_Pdo_IbmN =Zend_Db_Statement_Oracle'M QZend_Db_Statement_Oracle_ExceptionL =Zend_Db_Statement_Mysqli'K QZend_Db_Statement_Mysqli_Exception J CZend_Db_Statement_ExceptionI 7Zend_Db_Statement_Db2$H KZend_Db_Statement_Db2_ExceptionG )Zend_Db_SelectF =Zend_Db_Select_ExceptionE -Zend_Db_ProfilerD 9Zend_Db_Profiler_QueryC =Zend_Db_Profiler_FirebugB AZend_Db_Profiler_ExceptionA %Zend_Db_Expr@ /Zend_Db_Exception? 9Zend_Db_Adapter_Sqlsrv%> MZend_Db_Adapter_Sqlsrv_Exception= AZend_Db_Adapter_Pdo_Sqlite< ?Zend_Db_Adapter_Pdo_Pgsql; ;Zend_Db_Adapter_Pdo_Oci: ?Zend_Db_Adapter_Pdo_Mysql9 ?Zend_Db_Adapter_Pdo_Mssql8 ;Zend_Db_Adapter_Pdo_Ibm 7 CZend_Db_Adapter_Pdo_Ibm_Ids 6 CZend_Db_Adapter_Pdo_Ibm_Db2!5 EZend_Db_Adapter_Pdo_Abstract4 9Zend_Db_Adapter_Oracle%3 MZend_Db_Adapter_Oracle_Exception2 9Zend_Db_Adapter_Mysqli%1 MZend_Db_Adapter_Mysqli_Exception0 ?Zend_Db_Adapter_Exception/ 3Zend_Db_Adapter_Db2". GZend_Db_Adapter_Db2_Exception- =Zend_Db_Adapter_Abstract, Zend_Date+ 3Zend_Date_Exception* 5Zend_Date_DateObject) -Zend_Date_Cities( 'Zend_Currency' ;Zend_Currency_Exception& !Zend_Crypt% )Zend_Crypt_Rsa$ 1Zend_Crypt_Rsa_Key# ?Zend_Crypt_Rsa_Key_Public" AZend_Crypt_Rsa_Key_Private! =Zend_Crypt_Rsa_Exception  +Zend_Crypt_Math ?Zend_Crypt_Math_Exception AZend_Crypt_Math_BigInteger# IZend_Crypt_Math_BigInteger_Gmp) UZend_Crypt_Math_BigInteger_Exception& OZend_Crypt_Math_BigInteger_Bcmath +Zend_Crypt_Hmac ?Zend_Crypt_Hmac_Exception 5Zend_Crypt_Exception =Zend_Crypt_DiffieHellman' QZend_Crypt_DiffieHellman_Exception! EZend_Controller_Router_Route( SZend_Controller_Router_Route_Static' QZend_Controller_Router_Route_Regex( SZend_Controller_Router_Route_Module* WZend_Controller_Router_Route_Hostname' QZend_Controller_Router_Route_Chain* WZend_Controller_Router_Route_Abstract# IZend_Controller_Router_Rewrite% MZend_Controller_Router_Exception$ KZend_Controller_Router_Abstract* WZend_Controller_Response_HttpTestCase"
 GZend_Controller_Response_Http'	 QZend_Controller_Response_Exception! EZend_Controller_Response_Cli& OZend_Controller_Response_Abstract# IZend_Controller_Request_Simple) UZend_Controller_Request_HttpTestCase! EZend_Controller_Request_Http& OZend_Controller_Request_Exception& OZend_Controller_Request_Apache404% MZend_Controller_Request_Abstract&  OZend_Controller_Plugin_PutHandler( SZend_Controller_Plugin_ErrorHandler"~ GZend_Controller_Plugin_Broker'} QZend_Controller_Plugin_ActionStack$| KZend_Controller_Plugin_Abstract{ 7Zend_Controller_Frontz ?Zend_Controller_Exception(y SZend_Controller_Dispatcher_Standard)x UZend_Controller_Dispatcher_Exception(w SZend_Controller_Dispatcher_Abstractv 9Zend_Controller_Action(u SZend_Controller_Action_HelperBroker6t oZend_Controller_Action_HelperBroker_PriorityStack/s aZend_Controller_Action_Helper_ViewRenderer&r OZend_Controller_Action_Helper_Url-q ]Zend_Controller_Action_Helper_Redirector'p QZend_Controller_Action_Helper_Json1o eZend_Controller_Action_Helper_FlashMessenger0n cZend_Controller_Action_Helper_ContextSwitch(m SZend_Controller_Action_Helper_Cache<l {Zend_Controller_Action_Helper_AutoCompleteScriptaculous3k iZend_Controller_Action_Helper_AutoCompleteDojo   b  eBsV@0 j9S#[,



]
-
 			y	K	%N l>sI~Y+S)}R' SA&L                                           "4 GZend_EventManager_FilterChain,3 [Zend_EventManager_Filter_FilterIterator92 uZend_EventManager_Exception_InvalidArgumentException#1 IZend_EventManager_EventManager0 ;Zend_EventManager_Event/ )Zend_Dom_Query. 7Zend_Dom_Query_Result- =Zend_Dom_Query_Css2Xpath, 1Zend_Dom_Exception+ Zend_Dojo)* UZend_Dojo_View_Helper_VerticalSlider,) [Zend_Dojo_View_Helper_ValidationTextBox&( OZend_Dojo_View_Helper_TimeTextBox"' GZend_Dojo_View_Helper_TextBox#& IZend_Dojo_View_Helper_Textarea'% QZend_Dojo_View_Helper_TabContainer'$ QZend_Dojo_View_Helper_SubmitButton)# UZend_Dojo_View_Helper_StackContainer)" UZend_Dojo_View_Helper_SplitContainer!! EZend_Dojo_View_Helper_Slider)  UZend_Dojo_View_Helper_SimpleTextarea& OZend_Dojo_View_Helper_RadioButton* WZend_Dojo_View_Helper_PasswordTextBox( SZend_Dojo_View_Helper_NumberTextBox( SZend_Dojo_View_Helper_NumberSpinner+ YZend_Dojo_View_Helper_HorizontalSlider AZend_Dojo_View_Helper_Form* WZend_Dojo_View_Helper_FilteringSelect! EZend_Dojo_View_Helper_Editor AZend_Dojo_View_Helper_Dojo) UZend_Dojo_View_Helper_Dojo_Container) UZend_Dojo_View_Helper_DijitContainer  CZend_Dojo_View_Helper_Dijit& OZend_Dojo_View_Helper_DateTextBox& OZend_Dojo_View_Helper_CustomDijit* WZend_Dojo_View_Helper_CurrencyTextBox& OZend_Dojo_View_Helper_ContentPane# IZend_Dojo_View_Helper_ComboBox# IZend_Dojo_View_Helper_CheckBox! EZend_Dojo_View_Helper_Button* WZend_Dojo_View_Helper_BorderContainer( SZend_Dojo_View_Helper_AccordionPane-
 ]Zend_Dojo_View_Helper_AccordionContainer	 =Zend_Dojo_View_Exception )Zend_Dojo_Form 9Zend_Dojo_Form_SubForm* WZend_Dojo_Form_Element_VerticalSlider- ]Zend_Dojo_Form_Element_ValidationTextBox' QZend_Dojo_Form_Element_TimeTextBox# IZend_Dojo_Form_Element_TextBox$ KZend_Dojo_Form_Element_Textarea( SZend_Dojo_Form_Element_SubmitButton"  GZend_Dojo_Form_Element_Slider* WZend_Dojo_Form_Element_SimpleTextarea'~ QZend_Dojo_Form_Element_RadioButton+} YZend_Dojo_Form_Element_PasswordTextBox)| UZend_Dojo_Form_Element_NumberTextBox){ UZend_Dojo_Form_Element_NumberSpinner,z [Zend_Dojo_Form_Element_HorizontalSlider+y YZend_Dojo_Form_Element_FilteringSelect"x GZend_Dojo_Form_Element_Editor&w OZend_Dojo_Form_Element_DijitMulti!v EZend_Dojo_Form_Element_Dijit'u QZend_Dojo_Form_Element_DateTextBox+t YZend_Dojo_Form_Element_CurrencyTextBox$s KZend_Dojo_Form_Element_ComboBox$r KZend_Dojo_Form_Element_CheckBox"q GZend_Dojo_Form_Element_Button p CZend_Dojo_Form_DisplayGroup*o WZend_Dojo_Form_Decorator_TabContainer,n [Zend_Dojo_Form_Decorator_StackContainer,m [Zend_Dojo_Form_Decorator_SplitContainer'l QZend_Dojo_Form_Decorator_DijitForm*k WZend_Dojo_Form_Decorator_DijitElement,j [Zend_Dojo_Form_Decorator_DijitContainer)i UZend_Dojo_Form_Decorator_ContentPane-h ]Zend_Dojo_Form_Decorator_BorderContainer+g YZend_Dojo_Form_Decorator_AccordionPane0f cZend_Dojo_Form_Decorator_AccordionContainere 3Zend_Dojo_Exceptiond )Zend_Dojo_Datac 5Zend_Dojo_BuildLayerb !Zend_Debuga Zend_Db` 'Zend_Db_Table_ 5Zend_Db_Table_Select#^ IZend_Db_Table_Select_Exception] 5Zend_Db_Table_Rowset#\ IZend_Db_Table_Rowset_Exception"[ GZend_Db_Table_Rowset_AbstractZ /Zend_Db_Table_Row Y CZend_Db_Table_Row_ExceptionX AZend_Db_Table_Row_AbstractW ;Zend_Db_Table_ExceptionV =Zend_Db_Table_DefinitionU 9Zend_Db_Table_AbstractT /Zend_Db_StatementS =Zend_Db_Statement_Sqlsrv   ]  h;$	eK1b6uK,yU2



F
			v	F	ReL6Lt;[pDN.mH-                             5Zend_Filter_BaseName /Zend_Filter_Alpha /Zend_Filter_Alnum 1Zend_File_Transfer! EZend_File_Transfer_Exception$ KZend_File_Transfer_Adapter_Http( SZend_File_Transfer_Adapter_Abstract
 9Zend_File_PhpClassFile	 AZend_File_ClassFileLocator Zend_Feed -Zend_Feed_Writer ;Zend_Feed_Writer_Source/ aZend_Feed_Writer_Renderer_RendererAbstract' QZend_Feed_Writer_Renderer_Feed_Rss( SZend_Feed_Writer_Renderer_Feed_Atom/ aZend_Feed_Writer_Renderer_Feed_Atom_Source5 mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract(  SZend_Feed_Writer_Renderer_Entry_Rss) UZend_Feed_Writer_Renderer_Entry_Atom1~ eZend_Feed_Writer_Renderer_Entry_Atom_Deleted} 7Zend_Feed_Writer_Feed'| QZend_Feed_Writer_Feed_FeedAbstract<{ {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry8z sZend_Feed_Writer_Extension_Threading_Renderer_Entry4y kZend_Feed_Writer_Extension_Slash_Renderer_Entry0x cZend_Feed_Writer_Extension_RendererAbstract4w kZend_Feed_Writer_Extension_ITunes_Renderer_Feed5v mZend_Feed_Writer_Extension_ITunes_Renderer_Entry+u YZend_Feed_Writer_Extension_ITunes_Feed,t [Zend_Feed_Writer_Extension_ITunes_Entry8s sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed9r uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry6q oZend_Feed_Writer_Extension_Content_Renderer_Entry2p gZend_Feed_Writer_Extension_Atom_Renderer_Feed6o oZend_Feed_Writer_Exception_InvalidMethodExceptionn 9Zend_Feed_Writer_Entrym =Zend_Feed_Writer_Deletedl 'Zend_Feed_Rssk -Zend_Feed_Readerj =Zend_Feed_Reader_FeedSet"i GZend_Feed_Reader_FeedAbstracth ?Zend_Feed_Reader_Feed_Rssg AZend_Feed_Reader_Feed_Atom&f OZend_Feed_Reader_Feed_Atom_Source3e iZend_Feed_Reader_Extension_WellFormedWeb_Entry,d [Zend_Feed_Reader_Extension_Thread_Entry0c cZend_Feed_Reader_Extension_Syndication_Feed+b YZend_Feed_Reader_Extension_Slash_Entry,a [Zend_Feed_Reader_Extension_Podcast_Feed-` ]Zend_Feed_Reader_Extension_Podcast_Entry,_ [Zend_Feed_Reader_Extension_FeedAbstract-^ ]Zend_Feed_Reader_Extension_EntryAbstract/] aZend_Feed_Reader_Extension_DublinCore_Feed0\ cZend_Feed_Reader_Extension_DublinCore_Entry4[ kZend_Feed_Reader_Extension_CreativeCommons_Feed5Z mZend_Feed_Reader_Extension_CreativeCommons_Entry-Y ]Zend_Feed_Reader_Extension_Content_Entry)X UZend_Feed_Reader_Extension_Atom_Feed*W WZend_Feed_Reader_Extension_Atom_Entry#V IZend_Feed_Reader_EntryAbstractU AZend_Feed_Reader_Entry_Rss T CZend_Feed_Reader_Entry_Atom S CZend_Feed_Reader_Collection3R iZend_Feed_Reader_Collection_CollectionAbstract)Q UZend_Feed_Reader_Collection_Category'P QZend_Feed_Reader_Collection_AuthorO 9Zend_Feed_Pubsubhubbub&N OZend_Feed_Pubsubhubbub_Subscriber/M aZend_Feed_Pubsubhubbub_Subscriber_Callback%L MZend_Feed_Pubsubhubbub_Publisher.K _Zend_Feed_Pubsubhubbub_Model_Subscription/J aZend_Feed_Pubsubhubbub_Model_ModelAbstract(I SZend_Feed_Pubsubhubbub_HttpResponse%H MZend_Feed_Pubsubhubbub_Exception,G [Zend_Feed_Pubsubhubbub_CallbackAbstractF 3Zend_Feed_ExceptionE 3Zend_Feed_Entry_RssD 5Zend_Feed_Entry_AtomC =Zend_Feed_Entry_AbstractB /Zend_Feed_ElementA /Zend_Feed_Builder@ =Zend_Feed_Builder_Header$? KZend_Feed_Builder_Header_Itunes > CZend_Feed_Builder_Exception= ;Zend_Feed_Builder_Entry< )Zend_Feed_Atom; 1Zend_Feed_Abstract: )Zend_Exception)9 UZend_EventManager_StaticEventManager)8 UZend_EventManager_SharedEventManager)7 UZend_EventManager_ResponseCollection6 SplStack)5 UZend_EventManager_GlobalEventManager   m  xX7|aI&cC [B"b9



`
4
				V	'	rN&oN%jFsO0bC  \<"]6h8	           ~ 5Zend_Gdata_Analytics+} YZend_Gdata_Analytics_Extension_TableId,| [Zend_Gdata_Analytics_Extension_Property*{ WZend_Gdata_Analytics_Extension_Metricz ?Zend_Gdata_Analytics_Goal-y ]Zend_Gdata_Analytics_Extension_Dimension#x IZend_Gdata_Analytics_DataQuery"w GZend_Gdata_Analytics_DataFeed#v IZend_Gdata_Analytics_DataEntry&u OZend_Gdata_Analytics_AccountQuery%t MZend_Gdata_Analytics_AccountFeed&s OZend_Gdata_Analytics_AccountEntryr Zend_Formq /Zend_Form_SubFormp 3Zend_Form_Exceptiono /Zend_Form_Elementn ;Zend_Form_Element_Xhtmlm AZend_Form_Element_Textareal 9Zend_Form_Element_Textk =Zend_Form_Element_Submitj =Zend_Form_Element_Selecti ;Zend_Form_Element_Reseth ;Zend_Form_Element_Radiog AZend_Form_Element_Passwordf 9Zend_Form_Element_Note"e GZend_Form_Element_Multiselect$d KZend_Form_Element_MultiCheckboxc ;Zend_Form_Element_Multib ;Zend_Form_Element_Imagea =Zend_Form_Element_Hidden` 9Zend_Form_Element_Hash_ 9Zend_Form_Element_File ^ CZend_Form_Element_Exception] AZend_Form_Element_Checkbox\ ?Zend_Form_Element_Captcha[ =Zend_Form_Element_ButtonZ 9Zend_Form_DisplayGroup#Y IZend_Form_Decorator_ViewScript#X IZend_Form_Decorator_ViewHelper W CZend_Form_Decorator_Tooltip(V SZend_Form_Decorator_PrepareElementsU ?Zend_Form_Decorator_LabelT ?Zend_Form_Decorator_Image S CZend_Form_Decorator_HtmlTag#R IZend_Form_Decorator_FormErrors%Q MZend_Form_Decorator_FormElementsP =Zend_Form_Decorator_FormO =Zend_Form_Decorator_File!N EZend_Form_Decorator_Fieldset"M GZend_Form_Decorator_ExceptionL AZend_Form_Decorator_Errors$K KZend_Form_Decorator_DtDdWrapper$J KZend_Form_Decorator_Description I CZend_Form_Decorator_Captcha%H MZend_Form_Decorator_Captcha_Word*G WZend_Form_Decorator_Captcha_ReCaptcha!F EZend_Form_Decorator_Callback!E EZend_Form_Decorator_AbstractD #Zend_Filter+C YZend_Filter_Word_UnderscoreToSeparator&B OZend_Filter_Word_UnderscoreToDash+A YZend_Filter_Word_UnderscoreToCamelCase*@ WZend_Filter_Word_SeparatorToSeparator%? MZend_Filter_Word_SeparatorToDash*> WZend_Filter_Word_SeparatorToCamelCase(= SZend_Filter_Word_Separator_Abstract&< OZend_Filter_Word_DashToUnderscore%; MZend_Filter_Word_DashToSeparator%: MZend_Filter_Word_DashToCamelCase+9 YZend_Filter_Word_CamelCaseToUnderscore*8 WZend_Filter_Word_CamelCaseToSeparator%7 MZend_Filter_Word_CamelCaseToDash6 7Zend_Filter_StripTags5 ?Zend_Filter_StripNewlines4 9Zend_Filter_StringTrim3 ?Zend_Filter_StringToUpper2 ?Zend_Filter_StringToLower1 5Zend_Filter_RealPath0 ;Zend_Filter_PregReplace/ -Zend_Filter_Null&. OZend_Filter_NormalizedToLocalized&- OZend_Filter_LocalizedToNormalized, +Zend_Filter_Int+ /Zend_Filter_Input* 7Zend_Filter_Inflector) =Zend_Filter_HtmlEntities( AZend_Filter_File_UpperCase' ;Zend_Filter_File_Rename& AZend_Filter_File_LowerCase% =Zend_Filter_File_Encrypt$ =Zend_Filter_File_Decrypt# 7Zend_Filter_Exception" 3Zend_Filter_Encrypt ! CZend_Filter_Encrypt_Openssl  AZend_Filter_Encrypt_Mcrypt +Zend_Filter_Dir 1Zend_Filter_Digits 3Zend_Filter_Decrypt 9Zend_Filter_Decompress 5Zend_Filter_Compress =Zend_Filter_Compress_Zip =Zend_Filter_Compress_Tar =Zend_Filter_Compress_Rar =Zend_Filter_Compress_Lzf ;Zend_Filter_Compress_Gz* WZend_Filter_Compress_CompressAbstract =Zend_Filter_Compress_Bz2 5Zend_Filter_Callback 3Zend_Filter_Boolean   `  j:T+a;}R*b9




c
3
				u	M	6	g:	S$vP)sDxR-i9vEhO1                    '^ QZend_Gdata_Exif_Extension_Exposure'] QZend_Gdata_Exif_Extension_Distance\ 7Zend_Gdata_Exif_Entry[ -Zend_Gdata_EntryZ 7Zend_Gdata_DublinCore*Y WZend_Gdata_DublinCore_Extension_Title,X [Zend_Gdata_DublinCore_Extension_Subject+W YZend_Gdata_DublinCore_Extension_Rights.V _Zend_Gdata_DublinCore_Extension_Publisher-U ]Zend_Gdata_DublinCore_Extension_Language/T aZend_Gdata_DublinCore_Extension_Identifier+S YZend_Gdata_DublinCore_Extension_Format0R cZend_Gdata_DublinCore_Extension_Description)Q UZend_Gdata_DublinCore_Extension_Date,P [Zend_Gdata_DublinCore_Extension_CreatorO +Zend_Gdata_DocsN 7Zend_Gdata_Docs_Query%M MZend_Gdata_Docs_DocumentListFeed&L OZend_Gdata_Docs_DocumentListEntryK 9Zend_Gdata_ClientLoginJ 3Zend_Gdata_Calendar!I EZend_Gdata_Calendar_ListFeed"H GZend_Gdata_Calendar_ListEntry-G ]Zend_Gdata_Calendar_Extension_WebContent+F YZend_Gdata_Calendar_Extension_Timezone9E uZend_Gdata_Calendar_Extension_SendEventNotifications+D YZend_Gdata_Calendar_Extension_Selected+C YZend_Gdata_Calendar_Extension_QuickAdd'B QZend_Gdata_Calendar_Extension_Link)A UZend_Gdata_Calendar_Extension_Hidden(@ SZend_Gdata_Calendar_Extension_Color.? _Zend_Gdata_Calendar_Extension_AccessLevel#> IZend_Gdata_Calendar_EventQuery"= GZend_Gdata_Calendar_EventFeed#< IZend_Gdata_Calendar_EventEntry; -Zend_Gdata_Books!: EZend_Gdata_Books_VolumeQuery 9 CZend_Gdata_Books_VolumeFeed!8 EZend_Gdata_Books_VolumeEntry+7 YZend_Gdata_Books_Extension_Viewability-6 ]Zend_Gdata_Books_Extension_ThumbnailLink&5 OZend_Gdata_Books_Extension_Review+4 YZend_Gdata_Books_Extension_PreviewLink(3 SZend_Gdata_Books_Extension_InfoLink-2 ]Zend_Gdata_Books_Extension_Embeddability)1 UZend_Gdata_Books_Extension_BooksLink-0 ]Zend_Gdata_Books_Extension_BooksCategory./ _Zend_Gdata_Books_Extension_AnnotationLink$. KZend_Gdata_Books_CollectionFeed%- MZend_Gdata_Books_CollectionEntry, 1Zend_Gdata_AuthSub+ )Zend_Gdata_App$* KZend_Gdata_App_VersionException) 3Zend_Gdata_App_Util#( IZend_Gdata_App_MediaFileSource' ?Zend_Gdata_App_MediaEntry2& gZend_Gdata_App_LoggingHttpClientAdapterSocket% AZend_Gdata_App_IOException,$ [Zend_Gdata_App_InvalidArgumentException!# EZend_Gdata_App_HttpException$" KZend_Gdata_App_FeedSourceParent#! IZend_Gdata_App_FeedEntryParent  3Zend_Gdata_App_Feed =Zend_Gdata_App_Extension! EZend_Gdata_App_Extension_Uri% MZend_Gdata_App_Extension_Updated# IZend_Gdata_App_Extension_Title" GZend_Gdata_App_Extension_Text% MZend_Gdata_App_Extension_Summary& OZend_Gdata_App_Extension_Subtitle$ KZend_Gdata_App_Extension_Source$ KZend_Gdata_App_Extension_Rights' QZend_Gdata_App_Extension_Published$ KZend_Gdata_App_Extension_Person" GZend_Gdata_App_Extension_Name" GZend_Gdata_App_Extension_Logo" GZend_Gdata_App_Extension_Link  CZend_Gdata_App_Extension_Id" GZend_Gdata_App_Extension_Icon' QZend_Gdata_App_Extension_Generator# IZend_Gdata_App_Extension_Email% MZend_Gdata_App_Extension_Element$ KZend_Gdata_App_Extension_Edited# IZend_Gdata_App_Extension_Draft%
 MZend_Gdata_App_Extension_Control)	 UZend_Gdata_App_Extension_Contributor% MZend_Gdata_App_Extension_Content& OZend_Gdata_App_Extension_Category$ KZend_Gdata_App_Extension_Author =Zend_Gdata_App_Exception 5Zend_Gdata_App_Entry, [Zend_Gdata_App_CaptchaRequiredException# IZend_Gdata_App_BaseMediaSource 3Zend_Gdata_App_Base*  WZend_Gdata_App_BadMethodCallException! EZend_Gdata_App_AuthException   d  R,rZ.`:uQ)^;




n
=
				g	?	wS.
qM*xU<fG!sI!yN$qN/m9               )B UZend_Gdata_Media_Extension_MediaHash*A WZend_Gdata_Media_Extension_MediaGroup0@ cZend_Gdata_Media_Extension_MediaDescription+? YZend_Gdata_Media_Extension_MediaCredit.> _Zend_Gdata_Media_Extension_MediaCopyright,= [Zend_Gdata_Media_Extension_MediaContent-< ]Zend_Gdata_Media_Extension_MediaCategory; 9Zend_Gdata_Media_Entry: AZend_Gdata_Kind_EventEntry9 7Zend_Gdata_HttpClient*8 WZend_Gdata_HttpAdapterStreamingSocket)7 UZend_Gdata_HttpAdapterStreamingProxy6 /Zend_Gdata_Health5 ;Zend_Gdata_Health_Query&4 OZend_Gdata_Health_ProfileListFeed'3 QZend_Gdata_Health_ProfileListEntry"2 GZend_Gdata_Health_ProfileFeed#1 IZend_Gdata_Health_ProfileEntry$0 KZend_Gdata_Health_Extension_Ccr/ )Zend_Gdata_Geo. 3Zend_Gdata_Geo_Feed$- KZend_Gdata_Geo_Extension_GmlPos&, OZend_Gdata_Geo_Extension_GmlPoint)+ UZend_Gdata_Geo_Extension_GeoRssWhere* 5Zend_Gdata_Geo_Entry) -Zend_Gdata_Gbase"( GZend_Gdata_Gbase_SnippetQuery!' EZend_Gdata_Gbase_SnippetFeed"& GZend_Gdata_Gbase_SnippetEntry% 9Zend_Gdata_Gbase_Query$ AZend_Gdata_Gbase_ItemQuery# ?Zend_Gdata_Gbase_ItemFeed" AZend_Gdata_Gbase_ItemEntry! 7Zend_Gdata_Gbase_Feed-  ]Zend_Gdata_Gbase_Extension_BaseAttribute 9Zend_Gdata_Gbase_Entry -Zend_Gdata_Gapps AZend_Gdata_Gapps_UserQuery ?Zend_Gdata_Gapps_UserFeed AZend_Gdata_Gapps_UserEntry& OZend_Gdata_Gapps_ServiceException 9Zend_Gdata_Gapps_Query  CZend_Gdata_Gapps_OwnerQuery AZend_Gdata_Gapps_OwnerFeed  CZend_Gdata_Gapps_OwnerEntry# IZend_Gdata_Gapps_NicknameQuery" GZend_Gdata_Gapps_NicknameFeed# IZend_Gdata_Gapps_NicknameEntry! EZend_Gdata_Gapps_MemberQuery  CZend_Gdata_Gapps_MemberFeed! EZend_Gdata_Gapps_MemberEntry  CZend_Gdata_Gapps_GroupQuery AZend_Gdata_Gapps_GroupFeed  CZend_Gdata_Gapps_GroupEntry% MZend_Gdata_Gapps_Extension_Quota( SZend_Gdata_Gapps_Extension_Property(
 SZend_Gdata_Gapps_Extension_Nickname$	 KZend_Gdata_Gapps_Extension_Name% MZend_Gdata_Gapps_Extension_Login) UZend_Gdata_Gapps_Extension_EmailList 9Zend_Gdata_Gapps_Error- ]Zend_Gdata_Gapps_EmailListRecipientQuery, [Zend_Gdata_Gapps_EmailListRecipientFeed- ]Zend_Gdata_Gapps_EmailListRecipientEntry$ KZend_Gdata_Gapps_EmailListQuery# IZend_Gdata_Gapps_EmailListFeed$  KZend_Gdata_Gapps_EmailListEntry +Zend_Gdata_Feed~ 5Zend_Gdata_Extension} =Zend_Gdata_Extension_Who| AZend_Gdata_Extension_Where{ ?Zend_Gdata_Extension_When$z KZend_Gdata_Extension_Visibility&y OZend_Gdata_Extension_Transparency"x GZend_Gdata_Extension_Reminder-w ]Zend_Gdata_Extension_RecurrenceException$v KZend_Gdata_Extension_Recurrence u CZend_Gdata_Extension_Rating't QZend_Gdata_Extension_OriginalEvent0s cZend_Gdata_Extension_OpenSearchTotalResults.r _Zend_Gdata_Extension_OpenSearchStartIndex0q cZend_Gdata_Extension_OpenSearchItemsPerPage"p GZend_Gdata_Extension_FeedLink*o WZend_Gdata_Extension_ExtendedProperty%n MZend_Gdata_Extension_EventStatus#m IZend_Gdata_Extension_EntryLink"l GZend_Gdata_Extension_Comments&k OZend_Gdata_Extension_AttendeeType(j SZend_Gdata_Extension_AttendeeStatusi +Zend_Gdata_Exifh 5Zend_Gdata_Exif_Feed#g IZend_Gdata_Exif_Extension_Time#f IZend_Gdata_Exif_Extension_Tags$e KZend_Gdata_Exif_Extension_Model#d IZend_Gdata_Exif_Extension_Make"c GZend_Gdata_Exif_Extension_Iso,b [Zend_Gdata_Exif_Extension_ImageUniqueId$a KZend_Gdata_Exif_Extension_FStop*` WZend_Gdata_Exif_Extension_FocalLength$_ KZend_Gdata_Exif_Extension_Flash   [  q=yV4X,u?a4


v
E
				d	;	qL)a8~Ml<nFzO"g8Y+            - ]Zend_Gdata_YouTube_Extension_MediaCredit. _Zend_Gdata_YouTube_Extension_MediaContent* WZend_Gdata_YouTube_Extension_Location& OZend_Gdata_YouTube_Extension_Link* WZend_Gdata_YouTube_Extension_LastName* WZend_Gdata_YouTube_Extension_Hometown) UZend_Gdata_YouTube_Extension_Hobbies( SZend_Gdata_YouTube_Extension_Gender+ YZend_Gdata_YouTube_Extension_FirstName* WZend_Gdata_YouTube_Extension_Duration- ]Zend_Gdata_YouTube_Extension_Description+ YZend_Gdata_YouTube_Extension_CountHint) UZend_Gdata_YouTube_Extension_Control) UZend_Gdata_YouTube_Extension_Company' QZend_Gdata_YouTube_Extension_Books% MZend_Gdata_YouTube_Extension_Age) UZend_Gdata_YouTube_Extension_AboutMe# IZend_Gdata_YouTube_ContactFeed$ KZend_Gdata_YouTube_ContactEntry#
 IZend_Gdata_YouTube_CommentFeed$	 KZend_Gdata_YouTube_CommentEntry$ KZend_Gdata_YouTube_ActivityFeed% MZend_Gdata_YouTube_ActivityEntry ;Zend_Gdata_Spreadsheets* WZend_Gdata_Spreadsheets_WorksheetFeed+ YZend_Gdata_Spreadsheets_WorksheetEntry, [Zend_Gdata_Spreadsheets_SpreadsheetFeed- ]Zend_Gdata_Spreadsheets_SpreadsheetEntry& OZend_Gdata_Spreadsheets_ListQuery%  MZend_Gdata_Spreadsheets_ListFeed& OZend_Gdata_Spreadsheets_ListEntry/~ aZend_Gdata_Spreadsheets_Extension_RowCount-} ]Zend_Gdata_Spreadsheets_Extension_Custom/| aZend_Gdata_Spreadsheets_Extension_ColCount+{ YZend_Gdata_Spreadsheets_Extension_Cell*z WZend_Gdata_Spreadsheets_DocumentQuery&y OZend_Gdata_Spreadsheets_CellQuery%x MZend_Gdata_Spreadsheets_CellFeed&w OZend_Gdata_Spreadsheets_CellEntryv -Zend_Gdata_Queryu /Zend_Gdata_Photos t CZend_Gdata_Photos_UserQuerys AZend_Gdata_Photos_UserFeed r CZend_Gdata_Photos_UserEntryq AZend_Gdata_Photos_TagEntry!p EZend_Gdata_Photos_PhotoQuery o CZend_Gdata_Photos_PhotoFeed!n EZend_Gdata_Photos_PhotoEntry&m OZend_Gdata_Photos_Extension_Width'l QZend_Gdata_Photos_Extension_Weight(k SZend_Gdata_Photos_Extension_Version%j MZend_Gdata_Photos_Extension_User*i WZend_Gdata_Photos_Extension_Timestamp*h WZend_Gdata_Photos_Extension_Thumbnail%g MZend_Gdata_Photos_Extension_Size)f UZend_Gdata_Photos_Extension_Rotation+e YZend_Gdata_Photos_Extension_QuotaLimit-d ]Zend_Gdata_Photos_Extension_QuotaCurrent)c UZend_Gdata_Photos_Extension_Position(b SZend_Gdata_Photos_Extension_PhotoId3a iZend_Gdata_Photos_Extension_NumPhotosRemaining*` WZend_Gdata_Photos_Extension_NumPhotos)_ UZend_Gdata_Photos_Extension_Nickname%^ MZend_Gdata_Photos_Extension_Name2] gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum)\ UZend_Gdata_Photos_Extension_Location#[ IZend_Gdata_Photos_Extension_Id'Z QZend_Gdata_Photos_Extension_Height2Y gZend_Gdata_Photos_Extension_CommentingEnabled-X ]Zend_Gdata_Photos_Extension_CommentCount'W QZend_Gdata_Photos_Extension_Client)V UZend_Gdata_Photos_Extension_Checksum*U WZend_Gdata_Photos_Extension_BytesUsed(T SZend_Gdata_Photos_Extension_AlbumId'S QZend_Gdata_Photos_Extension_Access#R IZend_Gdata_Photos_CommentEntry!Q EZend_Gdata_Photos_AlbumQuery P CZend_Gdata_Photos_AlbumFeed!O EZend_Gdata_Photos_AlbumEntryN 3Zend_Gdata_MimeFileM ?Zend_Gdata_MimeBodyStringL AZend_Gdata_MediaMimeStreamK -Zend_Gdata_MediaJ 7Zend_Gdata_Media_Feed*I WZend_Gdata_Media_Extension_MediaTitle.H _Zend_Gdata_Media_Extension_MediaThumbnail)G UZend_Gdata_Media_Extension_MediaText0F cZend_Gdata_Media_Extension_MediaRestriction+E YZend_Gdata_Media_Extension_MediaRating+D YZend_Gdata_Media_Extension_MediaPlayer-C ]Zend_Gdata_Media_Extension_MediaKeywords   d  sHZ-rAc5i<



\
0

					k	@	vZ>nC#o9 yV2cB z[8fM;^A                             %Zend_Ldap_Dn  3Zend_Ldap_Converter" GZend_Ldap_Converter_Exception~ 5Zend_Ldap_Collection*} WZend_Ldap_Collection_Iterator_Default| 3Zend_Ldap_Attribute{ #Zend_Layoutz 7Zend_Layout_Exception)y UZend_Layout_Controller_Plugin_Layout0x cZend_Layout_Controller_Action_Helper_Layoutw Zend_Jsonv -Zend_Json_Serveru 5Zend_Json_Server_Smd!t EZend_Json_Server_Smd_Services ?Zend_Json_Server_Response#r IZend_Json_Server_Response_Httpq =Zend_Json_Server_Request"p GZend_Json_Server_Request_Httpo AZend_Json_Server_Exceptionn 9Zend_Json_Server_Errorm 9Zend_Json_Server_Cachel )Zend_Json_Exprk 3Zend_Json_Exceptionj /Zend_Json_Encoderi /Zend_Json_Decoderh 3Zend_Http_UserAgent"g GZend_Http_UserAgent_Validatorf =Zend_Http_UserAgent_Text(e SZend_Http_UserAgent_Storage_Session.d _Zend_Http_UserAgent_Storage_NonPersistent*c WZend_Http_UserAgent_Storage_Exceptionb =Zend_Http_UserAgent_Spama ?Zend_Http_UserAgent_Probe ` CZend_Http_UserAgent_Offline_ AZend_Http_UserAgent_Mobile^ =Zend_Http_UserAgent_Feed+] YZend_Http_UserAgent_Features_Exception3\ iZend_Http_UserAgent_Features_Adapter_TeraWurfl5[ mZend_Http_UserAgent_Features_Adapter_DeviceAtlas2Z gZend_Http_UserAgent_Features_Adapter_Browscap"Y GZend_Http_UserAgent_ExceptionX ?Zend_Http_UserAgent_Email W CZend_Http_UserAgent_Desktop V CZend_Http_UserAgent_Console U CZend_Http_UserAgent_CheckerT ;Zend_Http_UserAgent_Bot'S QZend_Http_UserAgent_AbstractDeviceR 1Zend_Http_ResponseQ ?Zend_Http_Response_StreamP AZend_Http_Header_SetCookie0O cZend_Http_Header_Exception_RuntimeException8N sZend_Http_Header_Exception_InvalidArgumentExceptionM 3Zend_Http_ExceptionL 3Zend_Http_CookieJarK -Zend_Http_CookieJ -Zend_Http_ClientI AZend_Http_Client_Exception"H GZend_Http_Client_Adapter_Test$G KZend_Http_Client_Adapter_Socket#F IZend_Http_Client_Adapter_Proxy'E QZend_Http_Client_Adapter_Exception"D GZend_Http_Client_Adapter_CurlC !Zend_GdataB 1Zend_Gdata_YouTube"A GZend_Gdata_YouTube_VideoQuery!@ EZend_Gdata_YouTube_VideoFeed"? GZend_Gdata_YouTube_VideoEntry(> SZend_Gdata_YouTube_UserProfileEntry(= SZend_Gdata_YouTube_SubscriptionFeed)< UZend_Gdata_YouTube_SubscriptionEntry); UZend_Gdata_YouTube_PlaylistVideoFeed*: WZend_Gdata_YouTube_PlaylistVideoEntry(9 SZend_Gdata_YouTube_PlaylistListFeed)8 UZend_Gdata_YouTube_PlaylistListEntry"7 GZend_Gdata_YouTube_MediaEntry!6 EZend_Gdata_YouTube_InboxFeed"5 GZend_Gdata_YouTube_InboxEntry)4 UZend_Gdata_YouTube_Extension_VideoId*3 WZend_Gdata_YouTube_Extension_Username*2 WZend_Gdata_YouTube_Extension_Uploaded'1 QZend_Gdata_YouTube_Extension_Token(0 SZend_Gdata_YouTube_Extension_Status,/ [Zend_Gdata_YouTube_Extension_Statistics'. QZend_Gdata_YouTube_Extension_State(- SZend_Gdata_YouTube_Extension_School-, ]Zend_Gdata_YouTube_Extension_ReleaseDate.+ _Zend_Gdata_YouTube_Extension_Relationship** WZend_Gdata_YouTube_Extension_Recorded&) OZend_Gdata_YouTube_Extension_Racy-( ]Zend_Gdata_YouTube_Extension_QueryString)' UZend_Gdata_YouTube_Extension_Private*& WZend_Gdata_YouTube_Extension_Position/% aZend_Gdata_YouTube_Extension_PlaylistTitle,$ [Zend_Gdata_YouTube_Extension_PlaylistId,# [Zend_Gdata_YouTube_Extension_Occupation)" UZend_Gdata_YouTube_Extension_NoEmbed'! QZend_Gdata_YouTube_Extension_Music(  SZend_Gdata_YouTube_Extension_Movies- ]Zend_Gdata_YouTube_Extension_MediaRating, [Zend_Gdata_YouTube_Extension_MediaGroup   r  aC&
jHz>	yR4w@"




v
]
?
$
					w	W	6	lQ1xgK,vV)lC}R8tV4lEeC(       s 3Zend_Measure_Binaryr /Zend_Measure_Areaq 1Zend_Measure_Anglep ?Zend_Measure_Accelerationo 7Zend_Measure_Abstractn #Zend_Markupm 7Zend_Markup_TokenListl /Zend_Markup_Token*k WZend_Markup_Renderer_RendererAbstractj ?Zend_Markup_Renderer_Html"i GZend_Markup_Renderer_Html_Url#h IZend_Markup_Renderer_Html_List"g GZend_Markup_Renderer_Html_Img+f YZend_Markup_Renderer_Html_HtmlAbstract#e IZend_Markup_Renderer_Html_Code#d IZend_Markup_Renderer_Exception!c EZend_Markup_Parser_Exceptionb ?Zend_Markup_Parser_Bbcodea 7Zend_Markup_Exception` Zend_Mail_ =Zend_Mail_Transport_Smtp!^ EZend_Mail_Transport_Sendmail] =Zend_Mail_Transport_File"\ GZend_Mail_Transport_Exception![ EZend_Mail_Transport_AbstractZ /Zend_Mail_Storage'Y QZend_Mail_Storage_Writable_MaildirX 9Zend_Mail_Storage_Pop3W 9Zend_Mail_Storage_MboxV ?Zend_Mail_Storage_MaildirU 9Zend_Mail_Storage_ImapT =Zend_Mail_Storage_Folder"S GZend_Mail_Storage_Folder_Mbox%R MZend_Mail_Storage_Folder_Maildir Q CZend_Mail_Storage_ExceptionP AZend_Mail_Storage_AbstractO ;Zend_Mail_Protocol_Smtp'N QZend_Mail_Protocol_Smtp_Auth_Plain'M QZend_Mail_Protocol_Smtp_Auth_Login)L UZend_Mail_Protocol_Smtp_Auth_Crammd5K ;Zend_Mail_Protocol_Pop3J ;Zend_Mail_Protocol_Imap!I EZend_Mail_Protocol_Exception H CZend_Mail_Protocol_AbstractG )Zend_Mail_PartF 3Zend_Mail_Part_FileE /Zend_Mail_MessageD 9Zend_Mail_Message_FileC 3Zend_Mail_ExceptionB Zend_Log A CZend_Log_Writer_ZendMonitor@ 9Zend_Log_Writer_Syslog? 9Zend_Log_Writer_Stream> 5Zend_Log_Writer_Null= 5Zend_Log_Writer_Mock< 5Zend_Log_Writer_Mail; ;Zend_Log_Writer_Firebug: 1Zend_Log_Writer_Db9 =Zend_Log_Writer_Abstract8 9Zend_Log_Formatter_Xml7 ?Zend_Log_Formatter_Simple6 AZend_Log_Formatter_Firebug 5 CZend_Log_Formatter_Abstract4 =Zend_Log_Filter_Suppress3 =Zend_Log_Filter_Priority2 ;Zend_Log_Filter_Message1 =Zend_Log_Filter_Abstract0 1Zend_Log_Exception/ #Zend_Locale. -Zend_Locale_Math- =Zend_Locale_Math_PhpMath, AZend_Locale_Math_Exception+ 1Zend_Locale_Format* 7Zend_Locale_Exception) -Zend_Locale_Data!( EZend_Locale_Data_Translation' #Zend_Loader#& IZend_Loader_StandardAutoloader% =Zend_Loader_PluginLoader'$ QZend_Loader_PluginLoader_Exception# 7Zend_Loader_Exception3" iZend_Loader_Exception_InvalidArgumentException#! IZend_Loader_ClassMapAutoloader"  GZend_Loader_AutoloaderFactory 9Zend_Loader_Autoloader$ KZend_Loader_Autoloader_Resource Zend_Ldap )Zend_Ldap_Node 7Zend_Ldap_Node_Schema# IZend_Ldap_Node_Schema_OpenLdap/ aZend_Ldap_Node_Schema_ObjectClass_OpenLdap6 oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectory AZend_Ldap_Node_Schema_Item1 eZend_Ldap_Node_Schema_AttributeType_OpenLdap8 sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory* WZend_Ldap_Node_Schema_ActiveDirectory 9Zend_Ldap_Node_RootDse$ KZend_Ldap_Node_RootDse_OpenLdap& OZend_Ldap_Node_RootDse_eDirectory+ YZend_Ldap_Node_RootDse_ActiveDirectory ?Zend_Ldap_Node_Collection$ KZend_Ldap_Node_ChildrenIterator ;Zend_Ldap_Node_Abstract 9Zend_Ldap_Ldif_Encoder -Zend_Ldap_Filter
 ;Zend_Ldap_Filter_String	 3Zend_Ldap_Filter_Or 5Zend_Ldap_Filter_Not 7Zend_Ldap_Filter_Mask =Zend_Ldap_Filter_Logical AZend_Ldap_Filter_Exception 5Zend_Ldap_Filter_And ?Zend_Ldap_Filter_Abstract 3Zend_Ldap_Exception   p  z]A"gK,e>mO1oQ/


t
=
			w	T	7	mBb@y\8hGV1f<oG#|N  c 5Zend_Pdf_Action_GoTob )Zend_Paginator-a ]Zend_Paginator_SerializableLimitIterator*` WZend_Paginator_ScrollingStyle_Sliding*_ WZend_Paginator_ScrollingStyle_Jumping*^ WZend_Paginator_ScrollingStyle_Elastic&] OZend_Paginator_ScrollingStyle_All\ =Zend_Paginator_Exception [ CZend_Paginator_Adapter_Null$Z KZend_Paginator_Adapter_Iterator)Y UZend_Paginator_Adapter_DbTableSelect$X KZend_Paginator_Adapter_DbSelect!W EZend_Paginator_Adapter_ArrayV #Zend_OpenIdU 5Zend_OpenId_ProviderT ?Zend_OpenId_Provider_User&S OZend_OpenId_Provider_User_Session!R EZend_OpenId_Provider_Storage&Q OZend_OpenId_Provider_Storage_FileP 7Zend_OpenId_ExtensionO AZend_OpenId_Extension_SregN 7Zend_OpenId_ExceptionM 5Zend_OpenId_Consumer!L EZend_OpenId_Consumer_Storage&K OZend_OpenId_Consumer_Storage_FileJ !Zend_OauthI -Zend_Oauth_TokenH =Zend_Oauth_Token_Request'G QZend_Oauth_Token_AuthorizedRequestF ;Zend_Oauth_Token_Access+E YZend_Oauth_Signature_SignatureAbstractD =Zend_Oauth_Signature_Rsa#C IZend_Oauth_Signature_PlaintextB ?Zend_Oauth_Signature_HmacA +Zend_Oauth_Http@ ;Zend_Oauth_Http_Utility&? OZend_Oauth_Http_UserAuthorization!> EZend_Oauth_Http_RequestToken = CZend_Oauth_Http_AccessToken< 5Zend_Oauth_Exception; 3Zend_Oauth_Consumer: /Zend_Oauth_Config9 /Zend_Oauth_Client8 +Zend_Navigation7 5Zend_Navigation_Page6 =Zend_Navigation_Page_Uri5 =Zend_Navigation_Page_Mvc4 ?Zend_Navigation_Exception3 ?Zend_Navigation_Container$2 KZend_Mobile_Push_Test_ApnsProxy"1 GZend_Mobile_Push_Response_Gcm0 7Zend_Mobile_Push_Mpns"/ GZend_Mobile_Push_Message_Mpns(. SZend_Mobile_Push_Message_Mpns_Toast'- QZend_Mobile_Push_Message_Mpns_Tile&, OZend_Mobile_Push_Message_Mpns_Raw!+ EZend_Mobile_Push_Message_Gcm'* QZend_Mobile_Push_Message_Exception") GZend_Mobile_Push_Message_Apns&( OZend_Mobile_Push_Message_Abstract' 5Zend_Mobile_Push_Gcm& AZend_Mobile_Push_Exception1% eZend_Mobile_Push_Exception_ServerUnavailable-$ ]Zend_Mobile_Push_Exception_QuotaExceeded,# [Zend_Mobile_Push_Exception_InvalidTopic," [Zend_Mobile_Push_Exception_InvalidToken3! iZend_Mobile_Push_Exception_InvalidRegistration.  _Zend_Mobile_Push_Exception_InvalidPayload0 cZend_Mobile_Push_Exception_InvalidAuthToken3 iZend_Mobile_Push_Exception_DeviceQuotaExceeded 7Zend_Mobile_Push_Apns ?Zend_Mobile_Push_Abstract 7Zend_Mobile_Exception Zend_Mime )Zend_Mime_Part /Zend_Mime_Message 3Zend_Mime_Exception -Zend_Mime_Decode #Zend_Memory /Zend_Memory_Value 3Zend_Memory_Manager 7Zend_Memory_Exception 7Zend_Memory_Container" GZend_Memory_Container_Movable! EZend_Memory_Container_Locked! EZend_Memory_AccessController 3Zend_Measure_Weight 3Zend_Measure_Volume% MZend_Measure_Viscosity_Kinematic#
 IZend_Measure_Viscosity_Dynamic	 3Zend_Measure_Torque /Zend_Measure_Time =Zend_Measure_Temperature 1Zend_Measure_Speed 7Zend_Measure_Pressure 1Zend_Measure_Power 3Zend_Measure_Number 9Zend_Measure_Lightness 3Zend_Measure_Length  ?Zend_Measure_Illumination 9Zend_Measure_Frequency~ 1Zend_Measure_Force} =Zend_Measure_Flow_Volume| 9Zend_Measure_Flow_Mole{ 9Zend_Measure_Flow_Massz 9Zend_Measure_Exceptiony 3Zend_Measure_Energyx 5Zend_Measure_Densityw 5Zend_Measure_Current v CZend_Measure_Cooking_Weight u CZend_Measure_Cooking_Volumet =Zend_Measure_Capacitance   i  a>{]:~]:wR/hG



V
+
					d	@	"	qH%_D~b7
yQ-jT<b9q6}@                                  AL Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique9K uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold5J mZend_Pdf_Resource_Font_Simple_Standard_Helvetica:I wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique>H Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique7G qZend_Pdf_Resource_Font_Simple_Standard_CourierBold3F iZend_Pdf_Resource_Font_Simple_Standard_Courier)E UZend_Pdf_Resource_Font_Simple_Parsed2D gZend_Pdf_Resource_Font_Simple_Parsed_TrueType*C WZend_Pdf_Resource_Font_FontDescriptor%B MZend_Pdf_Resource_Font_Extracted#A IZend_Pdf_Resource_Font_CidFont,@ [Zend_Pdf_Resource_Font_CidFont_TrueType ? CZend_Pdf_Resource_Extractor$> KZend_Pdf_Resource_ContentStream3= iZend_Pdf_RecursivelyIteratableObjectsContainer< +Zend_Pdf_Parser; 'Zend_Pdf_Page: -Zend_Pdf_Outline9 ;Zend_Pdf_Outline_Loaded8 =Zend_Pdf_Outline_Created7 /Zend_Pdf_NameTree6 )Zend_Pdf_Image5 'Zend_Pdf_Font4 ?Zend_Pdf_Filter_RunLength 3 CZend_Pdf_Filter_Compression$2 KZend_Pdf_Filter_Compression_Lzw&1 OZend_Pdf_Filter_Compression_Flate0 =Zend_Pdf_Filter_AsciiHex/ ;Zend_Pdf_Filter_Ascii85". GZend_Pdf_FileParserDataSource)- UZend_Pdf_FileParserDataSource_String', QZend_Pdf_FileParserDataSource_File+ 3Zend_Pdf_FileParser* ?Zend_Pdf_FileParser_Image") GZend_Pdf_FileParser_Image_Png( =Zend_Pdf_FileParser_Font&' OZend_Pdf_FileParser_Font_OpenType/& aZend_Pdf_FileParser_Font_OpenType_TrueType% 1Zend_Pdf_Exception$ ;Zend_Pdf_ElementFactory"# GZend_Pdf_ElementFactory_Proxy" -Zend_Pdf_Element! ;Zend_Pdf_Element_String#  IZend_Pdf_Element_String_Binary ;Zend_Pdf_Element_Stream AZend_Pdf_Element_Reference% MZend_Pdf_Element_Reference_Table' QZend_Pdf_Element_Reference_Context ;Zend_Pdf_Element_Object# IZend_Pdf_Element_Object_Stream =Zend_Pdf_Element_Numeric 7Zend_Pdf_Element_Null 7Zend_Pdf_Element_Name  CZend_Pdf_Element_Dictionary =Zend_Pdf_Element_Boolean 9Zend_Pdf_Element_Array 5Zend_Pdf_Destination ?Zend_Pdf_Destination_Zoom! EZend_Pdf_Destination_Unknown AZend_Pdf_Destination_Named' QZend_Pdf_Destination_FitVertically& OZend_Pdf_Destination_FitRectangle) UZend_Pdf_Destination_FitHorizontally2 gZend_Pdf_Destination_FitBoundingBoxVertically4 kZend_Pdf_Destination_FitBoundingBoxHorizontally(
 SZend_Pdf_Destination_FitBoundingBox	 =Zend_Pdf_Destination_Fit" GZend_Pdf_Destination_Explicit )Zend_Pdf_Color 1Zend_Pdf_Color_Rgb 3Zend_Pdf_Color_Html =Zend_Pdf_Color_GrayScale 3Zend_Pdf_Color_Cmyk 'Zend_Pdf_Cmap AZend_Pdf_Cmap_TrimmedTable!  EZend_Pdf_Cmap_SegmentToDelta AZend_Pdf_Cmap_ByteEncoding&~ OZend_Pdf_Cmap_ByteEncoding_Static} +Zend_Pdf_Canvas| =Zend_Pdf_Canvas_Abstract{ 3Zend_Pdf_Annotationz =Zend_Pdf_Annotation_Texty AZend_Pdf_Annotation_Markupx =Zend_Pdf_Annotation_Link'w QZend_Pdf_Annotation_FileAttachmentv +Zend_Pdf_Actionu 3Zend_Pdf_Action_URIt ;Zend_Pdf_Action_Unknowns 7Zend_Pdf_Action_Transr 9Zend_Pdf_Action_Threadq AZend_Pdf_Action_SubmitFormp 7Zend_Pdf_Action_Sound o CZend_Pdf_Action_SetOCGStaten ?Zend_Pdf_Action_ResetFormm ?Zend_Pdf_Action_Renditionl 7Zend_Pdf_Action_Namedk 7Zend_Pdf_Action_Moviej 9Zend_Pdf_Action_Launchi AZend_Pdf_Action_JavaScripth AZend_Pdf_Action_ImportDatag 5Zend_Pdf_Action_Hidef 7Zend_Pdf_Action_GoToRe 7Zend_Pdf_Action_GoToEd AZend_Pdf_Action_GoTo3DView   `  Qa2{W2zb?|T,




_
9
					i	E		h=jI*dK.VJT'J`4                           %, MZend_Search_Lucene_Document_Xlsx%+ MZend_Search_Lucene_Document_Pptx(* SZend_Search_Lucene_Document_OpenXml%) MZend_Search_Lucene_Document_Html*( WZend_Search_Lucene_Document_Exception%' MZend_Search_Lucene_Document_Docx,& [Zend_Search_Lucene_Analysis_TokenFilter6% oZend_Search_Lucene_Analysis_TokenFilter_StopWords7$ qZend_Search_Lucene_Analysis_TokenFilter_ShortWords:# wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf86" oZend_Search_Lucene_Analysis_TokenFilter_LowerCase&! OZend_Search_Lucene_Analysis_Token)  UZend_Search_Lucene_Analysis_Analyzer0 cZend_Search_Lucene_Analysis_Analyzer_Common8 sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumI Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive5 mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8F Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive8 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumI Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive5 mZend_Search_Lucene_Analysis_Analyzer_Common_TextF Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive 7Zend_Search_Exception -Zend_Rest_Server AZend_Rest_Server_Exception +Zend_Rest_Route 3Zend_Rest_Exception 5Zend_Rest_Controller -Zend_Rest_Client ;Zend_Rest_Client_Result& OZend_Rest_Client_Result_Exception AZend_Rest_Client_Exception 'Zend_Registry =Zend_Reflection_Property
 ?Zend_Reflection_Parameter	 9Zend_Reflection_Method =Zend_Reflection_Function 5Zend_Reflection_File ?Zend_Reflection_Extension ?Zend_Reflection_Exception =Zend_Reflection_Docblock! EZend_Reflection_Docblock_Tag( SZend_Reflection_Docblock_Tag_Return' QZend_Reflection_Docblock_Tag_Param  7Zend_Reflection_Class !Zend_Queue~ 9Zend_Queue_Stomp_Frame} ;Zend_Queue_Stomp_Client'| QZend_Queue_Stomp_Client_Connection{ 1Zend_Queue_Message#z IZend_Queue_Message_PlatformJob y CZend_Queue_Message_Iteratorx 5Zend_Queue_Exception(w SZend_Queue_Adapter_PlatformJobQueuev ;Zend_Queue_Adapter_Null!u EZend_Queue_Adapter_Memcacheqt 7Zend_Queue_Adapter_Db s CZend_Queue_Adapter_Db_Queue"r GZend_Queue_Adapter_Db_Messageq =Zend_Queue_Adapter_Array'p QZend_Queue_Adapter_AdapterAbstract o CZend_Queue_Adapter_Activemqn -Zend_ProgressBarm AZend_ProgressBar_Exceptionl =Zend_ProgressBar_Adapter$k KZend_ProgressBar_Adapter_JsPush$j KZend_ProgressBar_Adapter_JsPull'i QZend_ProgressBar_Adapter_Exception%h MZend_ProgressBar_Adapter_Consoleg Zend_Pdf!f EZend_Pdf_UpdateInfoContainere -Zend_Pdf_Trailerd ;Zend_Pdf_Trailer_Keeperc AZend_Pdf_Trailer_Generatorb +Zend_Pdf_Targeta )Zend_Pdf_Style` 7Zend_Pdf_StringParser_ /Zend_Pdf_Resource^ ?Zend_Pdf_Resource_Unified#] IZend_Pdf_Resource_ImageFactory\ ;Zend_Pdf_Resource_Image![ EZend_Pdf_Resource_Image_Tiff Z CZend_Pdf_Resource_Image_Png!Y EZend_Pdf_Resource_Image_Jpeg$X KZend_Pdf_Resource_GraphicsStateW 9Zend_Pdf_Resource_Font!V EZend_Pdf_Resource_Font_Type0"U GZend_Pdf_Resource_Font_Simple+T YZend_Pdf_Resource_Font_Simple_Standard8S sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats6R oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman7Q qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic;P yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic5O mZend_Pdf_Resource_Font_Simple_Standard_TimesBold2N gZend_Pdf_Resource_Font_Simple_Standard_Symbol<M {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaOblique   X  wR m/t@lKyK


x
;
 			o	>	zM"[.l9	zMtDW*uW3uD                              CZend_Server_Reflection_Node" GZend_Server_Reflection_Method$ KZend_Server_Reflection_Function- ]Zend_Server_Reflection_Function_Abstract%  MZend_Server_Reflection_Exception! EZend_Server_Reflection_Class!~ EZend_Server_Method_Prototype!} EZend_Server_Method_Parameter"| GZend_Server_Method_Definition { CZend_Server_Method_Callbackz 7Zend_Server_Exceptiony 9Zend_Server_Definitionx /Zend_Server_Cachew 5Zend_Server_Abstractv +Zend_Serializeru ?Zend_Serializer_Exception!t EZend_Serializer_Adapter_Wddx)s UZend_Serializer_Adapter_PythonPickle)r UZend_Serializer_Adapter_PhpSerialize$q KZend_Serializer_Adapter_PhpCode!p EZend_Serializer_Adapter_Json%o MZend_Serializer_Adapter_Igbinary!n EZend_Serializer_Adapter_Amf3!m EZend_Serializer_Adapter_Amf0,l [Zend_Serializer_Adapter_AdapterAbstractk 1Zend_Search_Lucene0j cZend_Search_Lucene_TermStreamsPriorityQueue$i KZend_Search_Lucene_Storage_File+h YZend_Search_Lucene_Storage_File_Memory/g aZend_Search_Lucene_Storage_File_Filesystem)f UZend_Search_Lucene_Storage_Directory4e kZend_Search_Lucene_Storage_Directory_Filesystem%d MZend_Search_Lucene_Search_Weight*c WZend_Search_Lucene_Search_Weight_Term,b [Zend_Search_Lucene_Search_Weight_Phrase/a aZend_Search_Lucene_Search_Weight_MultiTerm+` YZend_Search_Lucene_Search_Weight_Empty-_ ]Zend_Search_Lucene_Search_Weight_Boolean)^ UZend_Search_Lucene_Search_Similarity1] eZend_Search_Lucene_Search_Similarity_Default)\ UZend_Search_Lucene_Search_QueryToken3[ iZend_Search_Lucene_Search_QueryParserException1Z eZend_Search_Lucene_Search_QueryParserContext*Y WZend_Search_Lucene_Search_QueryParser)X UZend_Search_Lucene_Search_QueryLexer'W QZend_Search_Lucene_Search_QueryHit)V UZend_Search_Lucene_Search_QueryEntry.U _Zend_Search_Lucene_Search_QueryEntry_Term2T gZend_Search_Lucene_Search_QueryEntry_Subquery0S cZend_Search_Lucene_Search_QueryEntry_Phrase$R KZend_Search_Lucene_Search_Query-Q ]Zend_Search_Lucene_Search_Query_Wildcard)P UZend_Search_Lucene_Search_Query_Term*O WZend_Search_Lucene_Search_Query_Range2N gZend_Search_Lucene_Search_Query_Preprocessing7M qZend_Search_Lucene_Search_Query_Preprocessing_Term9L uZend_Search_Lucene_Search_Query_Preprocessing_Phrase8K sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy+J YZend_Search_Lucene_Search_Query_Phrase.I _Zend_Search_Lucene_Search_Query_MultiTerm2H gZend_Search_Lucene_Search_Query_Insignificant*G WZend_Search_Lucene_Search_Query_Fuzzy*F WZend_Search_Lucene_Search_Query_Empty,E [Zend_Search_Lucene_Search_Query_Boolean2D gZend_Search_Lucene_Search_Highlighter_Default:C wZend_Search_Lucene_Search_BooleanExpressionRecognizerB =Zend_Search_Lucene_Proxy%A MZend_Search_Lucene_PriorityQueue/@ aZend_Search_Lucene_Interface_MultiSearcher%? MZend_Search_Lucene_MultiSearcher#> IZend_Search_Lucene_LockManager$= KZend_Search_Lucene_Index_Writer0< cZend_Search_Lucene_Index_TermsPriorityQueue&; OZend_Search_Lucene_Index_TermInfo": GZend_Search_Lucene_Index_Term+9 YZend_Search_Lucene_Index_SegmentWriter88 sZend_Search_Lucene_Index_SegmentWriter_StreamWriter:7 wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter+6 YZend_Search_Lucene_Index_SegmentMerger)5 UZend_Search_Lucene_Index_SegmentInfo'4 QZend_Search_Lucene_Index_FieldInfo(3 SZend_Search_Lucene_Index_DocsFilter.2 _Zend_Search_Lucene_Index_DictionaryLoader!1 EZend_Search_Lucene_FSMAction0 9Zend_Search_Lucene_FSM/ =Zend_Search_Lucene_Field!. EZend_Search_Lucene_Exception - CZend_Search_Lucene_Document   Q  dF)yKlAq@pP$




o
J
(
				i	:	dD(eF[*UI|LP I                                                                           QU #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequestaT CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequestNS Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformationLR Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalanceJQ Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool-P ]Zend_Service_DeveloperGarden_LocalSearch>O Zend_Service_DeveloperGarden_LocalSearch_SearchParameters7N qZend_Service_DeveloperGarden_LocalSearch_Exception,M [Zend_Service_DeveloperGarden_IpLocation6L oZend_Service_DeveloperGarden_IpLocation_IpAddress+K YZend_Service_DeveloperGarden_Exception,J [Zend_Service_DeveloperGarden_Credential0I cZend_Service_DeveloperGarden_ConferenceCallCH Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatusCG Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail<F {Zend_Service_DeveloperGarden_ConferenceCall_Participant:E wZend_Service_DeveloperGarden_ConferenceCall_ExceptionDD 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceScheduleBC Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetailCB Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount-A ]Zend_Service_DeveloperGarden_Client_Soap2@ gZend_Service_DeveloperGarden_Client_Exception7? qZend_Service_DeveloperGarden_Client_ClientAbstract1> eZend_Service_DeveloperGarden_BaseUserServiceA= Zend_Service_DeveloperGarden_BaseUserService_AccountBalance< 9Zend_Service_Delicious&; OZend_Service_Delicious_SimplePost$: KZend_Service_Delicious_PostList 9 CZend_Service_Delicious_Post%8 MZend_Service_Delicious_Exception 7 CZend_Service_Audioscrobbler6 3Zend_Service_Amazon5 ;Zend_Service_Amazon_Sqs&4 OZend_Service_Amazon_Sqs_Exception!3 EZend_Service_Amazon_SimpleDb*2 WZend_Service_Amazon_SimpleDb_Response&1 OZend_Service_Amazon_SimpleDb_Page+0 YZend_Service_Amazon_SimpleDb_Exception+/ YZend_Service_Amazon_SimpleDb_Attribute'. QZend_Service_Amazon_SimilarProduct- 9Zend_Service_Amazon_S3", GZend_Service_Amazon_S3_Stream%+ MZend_Service_Amazon_S3_Exception"* GZend_Service_Amazon_ResultSet) ?Zend_Service_Amazon_Query!( EZend_Service_Amazon_OfferSet' ?Zend_Service_Amazon_Offer&& OZend_Service_Amazon_ListmaniaList% =Zend_Service_Amazon_Item$ ?Zend_Service_Amazon_Image"# GZend_Service_Amazon_Exception(" SZend_Service_Amazon_EditorialReview! ;Zend_Service_Amazon_Ec2+  YZend_Service_Amazon_Ec2_Securitygroups% MZend_Service_Amazon_Ec2_Response# IZend_Service_Amazon_Ec2_Region$ KZend_Service_Amazon_Ec2_Keypair% MZend_Service_Amazon_Ec2_Instance- ]Zend_Service_Amazon_Ec2_Instance_Windows. _Zend_Service_Amazon_Ec2_Instance_Reserved" GZend_Service_Amazon_Ec2_Image& OZend_Service_Amazon_Ec2_Exception& OZend_Service_Amazon_Ec2_Elasticip  CZend_Service_Amazon_Ec2_Ebs' QZend_Service_Amazon_Ec2_CloudWatch. _Zend_Service_Amazon_Ec2_Availabilityzones% MZend_Service_Amazon_Ec2_Abstract' QZend_Service_Amazon_CustomerReview' QZend_Service_Amazon_Authentication* WZend_Service_Amazon_Authentication_V2* WZend_Service_Amazon_Authentication_V1* WZend_Service_Amazon_Authentication_S31 eZend_Service_Amazon_Authentication_Exception$ KZend_Service_Amazon_Accessories! EZend_Service_Amazon_Abstract
 5Zend_Service_Akismet	 7Zend_Service_Abstract 9Zend_Server_Reflection' QZend_Server_Reflection_ReturnValue% MZend_Server_Reflection_Prototype% MZend_Server_Reflection_Parameter   /  NB*~)d

Q			g	R8\;T'-{                                                                                    _ ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseW /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseTypeS 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseQ  #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstractS 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponseJ~ Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseTypeg} OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseTypec| GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseW{ /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponseUz +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponseSy 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse3x iZend_Service_DeveloperGarden_Response_BaseTypeJw Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstractCv Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCallGu Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced=t }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallAs Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatusAr Zend_Service_DeveloperGarden_Request_SmsValidation_ValidateNq Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeywordCp Zend_Service_DeveloperGarden_Request_SmsValidation_InvalidateLo Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbersBn Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract9m uZend_Service_DeveloperGarden_Request_SendSms_SendSMS>l Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS9k uZend_Service_DeveloperGarden_Request_RequestAbstractIj Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequestEi Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest3h iZend_Service_DeveloperGarden_Request_ExceptionRg %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequestYf 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequestde IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequestQd #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequestRc %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequestYb 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequestda IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequestQ` #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequestO_ Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequestU^ +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequestU] +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequestV\ -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequesta[ CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequestZZ 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequestTY )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequestRX %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequestYW 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequestQV #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequest   .  L4iB-

y
 		_	 Q0i:Y^+5                                                    K2 Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2ResponseL1 Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponseI0 Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumberW/ /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponseJ. Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponseU- +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponseC, Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponseC+ Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstractH* Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponseU) +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponseQ( #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponseI' Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception;& yZend_Service_DeveloperGarden_Response_ResponseAbstractO% Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseTypeK$ Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseA# Zend_Service_DeveloperGarden_Response_IpLocation_RegionTypeK" Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseTypeG! Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseL  Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationTypeI Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType> Zend_Service_DeveloperGarden_Response_IpLocation_CityType4 kZend_Service_DeveloperGarden_Response_ExceptionT )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponsef MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponseS 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponseT )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponsef MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponseS 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponseU +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseTypeQ #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseTypeW /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseTypeW /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse\ 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseTypeX 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseg OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseTypec GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse`
 AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType\	 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseZ 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseTypeV -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseX 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseTypeT )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse   S  gt5mJ&HzE



`
2				d	0sCwU2Z1tDb0r@}U2fF               / aZend_Service_SqlAzure_Management_Exception, [Zend_Service_SqlAzure_Management_Client$ KZend_Service_SqlAzure_Exception ;Zend_Service_SlideShare& OZend_Service_SlideShare_SlideShow&  OZend_Service_SlideShare_Exception% MZend_Service_ShortUrl_TinyUrlCom&~ OZend_Service_ShortUrl_MetamarkNet!} EZend_Service_ShortUrl_JdemCz| AZend_Service_ShortUrl_IsGd${ KZend_Service_ShortUrl_Exception z CZend_Service_ShortUrl_BitLy,y [Zend_Service_ShortUrl_AbstractShortenerx 9Zend_Service_ReCaptcha$w KZend_Service_ReCaptcha_Response$v KZend_Service_ReCaptcha_MailHide.u _Zend_Service_ReCaptcha_MailHide_Exception%t MZend_Service_ReCaptcha_Exception#s IZend_Service_Rackspace_Servers5r mZend_Service_Rackspace_Servers_SharedIpGroupList1q eZend_Service_Rackspace_Servers_SharedIpGroup.p _Zend_Service_Rackspace_Servers_ServerList*o WZend_Service_Rackspace_Servers_Server-n ]Zend_Service_Rackspace_Servers_ImageList)m UZend_Service_Rackspace_Servers_Image-l ]Zend_Service_Rackspace_Servers_Exception!k EZend_Service_Rackspace_Files,j [Zend_Service_Rackspace_Files_ObjectList(i SZend_Service_Rackspace_Files_Object+h YZend_Service_Rackspace_Files_Exception/g aZend_Service_Rackspace_Files_ContainerList+f YZend_Service_Rackspace_Files_Container%e MZend_Service_Rackspace_Exception$d KZend_Service_Rackspace_Abstractc 7Zend_Service_LiveDocx$b KZend_Service_LiveDocx_MailMerge$a KZend_Service_LiveDocx_Exception` 3Zend_Service_Flickr"_ GZend_Service_Flickr_ResultSet^ AZend_Service_Flickr_Result] ?Zend_Service_Flickr_Image\ 9Zend_Service_Exception[ ?Zend_Service_Ebay_Finding)Z UZend_Service_Ebay_Finding_Storefront+Y YZend_Service_Ebay_Finding_ShippingInfo+X YZend_Service_Ebay_Finding_Set_Abstract,W [Zend_Service_Ebay_Finding_SellingStatus)V UZend_Service_Ebay_Finding_SellerInfo,U [Zend_Service_Ebay_Finding_Search_Result*T WZend_Service_Ebay_Finding_Search_Item.S _Zend_Service_Ebay_Finding_Search_Item_Set0R cZend_Service_Ebay_Finding_Response_Keywords-Q ]Zend_Service_Ebay_Finding_Response_Items2P gZend_Service_Ebay_Finding_Response_Histograms0O cZend_Service_Ebay_Finding_Response_Abstract/N aZend_Service_Ebay_Finding_PaginationOutput*M WZend_Service_Ebay_Finding_ListingInfo(L SZend_Service_Ebay_Finding_Exception,K [Zend_Service_Ebay_Finding_Error_Message)J UZend_Service_Ebay_Finding_Error_Data-I ]Zend_Service_Ebay_Finding_Error_Data_Set'H QZend_Service_Ebay_Finding_Category1G eZend_Service_Ebay_Finding_Category_Histogram5F mZend_Service_Ebay_Finding_Category_Histogram_Set;E yZend_Service_Ebay_Finding_Category_Histogram_Container%D MZend_Service_Ebay_Finding_Aspect)C UZend_Service_Ebay_Finding_Aspect_Set5B mZend_Service_Ebay_Finding_Aspect_Histogram_Value9A uZend_Service_Ebay_Finding_Aspect_Histogram_Value_Set9@ uZend_Service_Ebay_Finding_Aspect_Histogram_Container'? QZend_Service_Ebay_Finding_Abstract > CZend_Service_Ebay_Exception= AZend_Service_Ebay_Abstract+< YZend_Service_DeveloperGarden_VoiceCall/; aZend_Service_DeveloperGarden_SmsValidation): UZend_Service_DeveloperGarden_SendSms59 mZend_Service_DeveloperGarden_SecurityTokenServer;8 yZend_Service_DeveloperGarden_SecurityTokenServer_CacheK7 Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstractL6 Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponseP5 !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponseG4 Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponseJ3 Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponse   G  K&k?l:X.zO!




g
J
			Y=Lc?i2RV"g)                                                                        HL Zend_Service_WindowsAzure_Management_OperatingSystemFamilyInstance:K wZend_Service_WindowsAzure_Management_LocationInstance@J Zend_Service_WindowsAzure_Management_HostedServiceInstance3I iZend_Service_WindowsAzure_Management_Exception<H {Zend_Service_WindowsAzure_Management_DeploymentInstance0G cZend_Service_WindowsAzure_Management_Client=F }Zend_Service_WindowsAzure_Management_CertificateInstance@E Zend_Service_WindowsAzure_Management_AffinityGroupInstance6D oZend_Service_WindowsAzure_Log_Writer_WindowsAzure9C uZend_Service_WindowsAzure_Log_Formatter_WindowsAzure,B [Zend_Service_WindowsAzure_Log_Exception(A SZend_Service_WindowsAzure_ExceptionJ@ Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscription2? gZend_Service_WindowsAzure_Diagnostics_Manager3> iZend_Service_WindowsAzure_Diagnostics_LogLevel4= kZend_Service_WindowsAzure_Diagnostics_ExceptionN< Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscriptionH; Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLogL: Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCountersK9 Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstract<8 {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogsA7 Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstanceD6 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectoriesU5 +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogsD4 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSources83 sZend_Service_WindowsAzure_Credentials_SharedKeyLite42 kZend_Service_WindowsAzure_Credentials_SharedKeyA1 Zend_Service_WindowsAzure_Credentials_SharedAccessSignature40 kZend_Service_WindowsAzure_Credentials_Exception>/ Zend_Service_WindowsAzure_Credentials_CredentialsAbstract2. gZend_Service_WindowsAzure_CommandLine_Storage2- gZend_Service_WindowsAzure_CommandLine_Service, !ScaffolderW+ /Zend_Service_WindowsAzure_CommandLine_PackageScaffolder_PackageScaffolderAbstract2* gZend_Service_WindowsAzure_CommandLine_PackageD) 	Zend_Service_WindowsAzure_CommandLine_GetAsynchronousOperation5( mZend_Service_WindowsAzure_CommandLine_Deployment6' oZend_Service_WindowsAzure_CommandLine_Certificate& 5Zend_Service_Twitter"% GZend_Service_Twitter_Response#$ IZend_Service_Twitter_Exception# ;Zend_Service_Technorati#" IZend_Service_Technorati_Weblog"! GZend_Service_Technorati_Utils*  WZend_Service_Technorati_TagsResultSet' QZend_Service_Technorati_TagsResult) UZend_Service_Technorati_TagResultSet& OZend_Service_Technorati_TagResult, [Zend_Service_Technorati_SearchResultSet) UZend_Service_Technorati_SearchResult& OZend_Service_Technorati_ResultSet# IZend_Service_Technorati_Result* WZend_Service_Technorati_KeyInfoResult* WZend_Service_Technorati_GetInfoResult& OZend_Service_Technorati_Exception1 eZend_Service_Technorati_DailyCountsResultSet. _Zend_Service_Technorati_DailyCountsResult, [Zend_Service_Technorati_CosmosResultSet) UZend_Service_Technorati_CosmosResult+ YZend_Service_Technorati_BlogInfoResult# IZend_Service_Technorati_Author ;Zend_Service_StrikeIron( SZend_Service_StrikeIron_ZipCodeInfo2 gZend_Service_StrikeIron_USAddressVerification- ]Zend_Service_StrikeIron_SalesUseTaxBasic& OZend_Service_StrikeIron_Exception&
 OZend_Service_StrikeIron_Decorator!	 EZend_Service_StrikeIron_Base; yZend_Service_SqlAzure_Management_ServiceEntityAbstract4 kZend_Service_SqlAzure_Management_ServerInstance: wZend_Service_SqlAzure_Management_FirewallRuleInstance   Z  t0g1Y}F	d,


z
J
			w	V	/	Y3
lEvW.pQ1t[:X%xS,gP5                 & 7Zend_Test_DbStatement% 3Zend_Test_DbAdapter$ /Zend_Tag_ItemList# 'Zend_Tag_Item" 1Zend_Tag_Exception! )Zend_Tag_Cloud  =Zend_Tag_Cloud_Exception! EZend_Tag_Cloud_Decorator_Tag% MZend_Tag_Cloud_Decorator_HtmlTag' QZend_Tag_Cloud_Decorator_HtmlCloud' QZend_Tag_Cloud_Decorator_Exception# IZend_Tag_Cloud_Decorator_Cloud! EZend_Stdlib_SplPriorityQueue -SplPriorityQueue ?Zend_Stdlib_PriorityQueue3 iZend_Stdlib_Exception_InvalidCallbackException  CZend_Stdlib_CallbackHandler )Zend_Soap_Wsdl/ aZend_Soap_Wsdl_Strategy_DefaultComplexType& OZend_Soap_Wsdl_Strategy_Composite0 cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence/ aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex$ KZend_Soap_Wsdl_Strategy_AnyType% MZend_Soap_Wsdl_Strategy_Abstract =Zend_Soap_Wsdl_Exception -Zend_Soap_Server 9Zend_Soap_Server_Proxy AZend_Soap_Server_Exception
 -Zend_Soap_Client	 9Zend_Soap_Client_Local AZend_Soap_Client_Exception ;Zend_Soap_Client_DotNet ;Zend_Soap_Client_Common 9Zend_Soap_AutoDiscover% MZend_Soap_AutoDiscover_Exception %Zend_Session) UZend_Session_Validator_HttpUserAgent$ KZend_Session_Validator_Abstract'  QZend_Session_SaveHandler_Exception% MZend_Session_SaveHandler_DbTable~ 9Zend_Session_Namespace} 9Zend_Session_Exception| 7Zend_Session_Abstract{ 1Zend_Service_Yahoo$z KZend_Service_Yahoo_WebResultSet!y EZend_Service_Yahoo_WebResult&x OZend_Service_Yahoo_VideoResultSet#w IZend_Service_Yahoo_VideoResult!v EZend_Service_Yahoo_ResultSetu ?Zend_Service_Yahoo_Result)t UZend_Service_Yahoo_PageDataResultSet&s OZend_Service_Yahoo_PageDataResult%r MZend_Service_Yahoo_NewsResultSet"q GZend_Service_Yahoo_NewsResult&p OZend_Service_Yahoo_LocalResultSet#o IZend_Service_Yahoo_LocalResult+n YZend_Service_Yahoo_InlinkDataResultSet(m SZend_Service_Yahoo_InlinkDataResult&l OZend_Service_Yahoo_ImageResultSet#k IZend_Service_Yahoo_ImageResultj =Zend_Service_Yahoo_Image&i OZend_Service_WindowsAzure_Storage4h kZend_Service_WindowsAzure_Storage_TableInstance7g qZend_Service_WindowsAzure_Storage_TableEntityQuery2f gZend_Service_WindowsAzure_Storage_TableEntity,e [Zend_Service_WindowsAzure_Storage_Table<d {Zend_Service_WindowsAzure_Storage_StorageEntityAbstract7c qZend_Service_WindowsAzure_Storage_SignedIdentifier3b iZend_Service_WindowsAzure_Storage_QueueMessage4a kZend_Service_WindowsAzure_Storage_QueueInstance,` [Zend_Service_WindowsAzure_Storage_Queue9_ uZend_Service_WindowsAzure_Storage_PageRegionInstance4^ kZend_Service_WindowsAzure_Storage_LeaseInstance9] uZend_Service_WindowsAzure_Storage_DynamicTableEntity3\ iZend_Service_WindowsAzure_Storage_BlobInstance4[ kZend_Service_WindowsAzure_Storage_BlobContainer+Z YZend_Service_WindowsAzure_Storage_Blob2Y gZend_Service_WindowsAzure_Storage_Blob_Stream;X yZend_Service_WindowsAzure_Storage_BatchStorageAbstract,W [Zend_Service_WindowsAzure_Storage_Batch-V ]Zend_Service_WindowsAzure_SessionHandler>U Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract1T eZend_Service_WindowsAzure_RetryPolicy_RetryN2S gZend_Service_WindowsAzure_RetryPolicy_NoRetry4R kZend_Service_WindowsAzure_RetryPolicy_ExceptionHQ Zend_Service_WindowsAzure_Management_SubscriptionOperationInstanceAP Zend_Service_WindowsAzure_Management_StorageServiceInstance@O Zend_Service_WindowsAzure_Management_ServiceEntityAbstractBN Zend_Service_WindowsAzure_Management_OperationStatusInstanceBM Zend_Service_WindowsAzure_Management_OperatingSystemInstance   T  uAf2 {JjN/gM.



z
N
$				6_4R&R'X#\,|Mi8p<                        3z iZend_Tool_Project_Context_Content_Engine_Phtml;y yZend_Tool_Project_Context_Content_Engine_CodeGenerator0x cZend_Tool_Framework_System_Provider_Version0w cZend_Tool_Framework_System_Provider_Phpinfo1v eZend_Tool_Framework_System_Provider_Manifest/u aZend_Tool_Framework_System_Provider_Config(t SZend_Tool_Framework_System_Manifest-s ]Zend_Tool_Framework_System_Action_Delete-r ]Zend_Tool_Framework_System_Action_Create!q EZend_Tool_Framework_Registry+p YZend_Tool_Framework_Registry_Exception+o YZend_Tool_Framework_Provider_Signature,n [Zend_Tool_Framework_Provider_Repository+m YZend_Tool_Framework_Provider_Exception*l WZend_Tool_Framework_Provider_Abstract&k OZend_Tool_Framework_Metadata_Tool)j UZend_Tool_Framework_Metadata_Dynamic'i QZend_Tool_Framework_Metadata_Basic,h [Zend_Tool_Framework_Manifest_Repository2g gZend_Tool_Framework_Manifest_ProviderMetadata*f WZend_Tool_Framework_Manifest_Metadata+e YZend_Tool_Framework_Manifest_Exception0d cZend_Tool_Framework_Manifest_ActionMetadata1c eZend_Tool_Framework_Loader_IncludePathLoaderJb Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator+a YZend_Tool_Framework_Loader_BasicLoader(` SZend_Tool_Framework_Loader_Abstract"_ GZend_Tool_Framework_Exception'^ QZend_Tool_Framework_Client_Storage1] eZend_Tool_Framework_Client_Storage_Directory(\ SZend_Tool_Framework_Client_ResponseD[ 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator'Z QZend_Tool_Framework_Client_Request(Y SZend_Tool_Framework_Client_Manifest9X uZend_Tool_Framework_Client_Interactive_InputResponse8W sZend_Tool_Framework_Client_Interactive_InputRequest8V sZend_Tool_Framework_Client_Interactive_InputHandler)U UZend_Tool_Framework_Client_Exception'T QZend_Tool_Framework_Client_ConsoleDS 	Zend_Tool_Framework_Client_Console_ResponseDecorator_IndentionDR 	Zend_Tool_Framework_Client_Console_ResponseDecorator_ColorizerCQ Zend_Tool_Framework_Client_Console_ResponseDecorator_BlockizeFP Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter0O cZend_Tool_Framework_Client_Console_Manifest2N gZend_Tool_Framework_Client_Console_HelpSystem6M oZend_Tool_Framework_Client_Console_ArgumentParser&L OZend_Tool_Framework_Client_Config(K SZend_Tool_Framework_Client_Abstract*J WZend_Tool_Framework_Action_Repository)I UZend_Tool_Framework_Action_Exception$H KZend_Tool_Framework_Action_BaseG 'Zend_TimeSyncF 1Zend_TimeSync_SntpE 9Zend_TimeSync_ProtocolD /Zend_TimeSync_NtpC ;Zend_TimeSync_ExceptionB +Zend_Text_TableA 3Zend_Text_Table_Row@ ?Zend_Text_Table_Exception&? OZend_Text_Table_Decorator_Unicode$> KZend_Text_Table_Decorator_Ascii= 9Zend_Text_Table_Column< 3Zend_Text_MultiByte; -Zend_Text_Figlet: AZend_Text_Figlet_Exception9 3Zend_Text_Exception&8 OZend_Test_PHPUnit_Db_SimpleTester,7 [Zend_Test_PHPUnit_Db_Operation_Truncate*6 WZend_Test_PHPUnit_Db_Operation_Insert-5 ]Zend_Test_PHPUnit_Db_Operation_DeleteAll*4 WZend_Test_PHPUnit_Db_Metadata_Generic#3 IZend_Test_PHPUnit_Db_Exception,2 [Zend_Test_PHPUnit_Db_DataSet_QueryTable.1 _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet00 cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet)/ UZend_Test_PHPUnit_Db_DataSet_DbTable*. WZend_Test_PHPUnit_Db_DataSet_DbRowset$- KZend_Test_PHPUnit_Db_Connection', QZend_Test_PHPUnit_DatabaseTestCase)+ UZend_Test_PHPUnit_ControllerTestCase0* cZend_Test_PHPUnit_Constraint_ResponseHeader*) WZend_Test_PHPUnit_Constraint_Redirect+( YZend_Test_PHPUnit_Constraint_Exception*' WZend_Test_PHPUnit_Constraint_DomQuery   F  m6aFu?h7


p
:				\	)Z!|@ VRETq,J                                 @ CZend_Tool_Project_Exception<? {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory0> cZend_Tool_Project_Context_Zf_ViewsDirectory6= oZend_Tool_Project_Context_Zf_ViewScriptsDirectory0< cZend_Tool_Project_Context_Zf_ViewScriptFile6; oZend_Tool_Project_Context_Zf_ViewHelpersDirectory6: oZend_Tool_Project_Context_Zf_ViewFiltersDirectoryA9 Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory28 gZend_Tool_Project_Context_Zf_UploadsDirectory07 cZend_Tool_Project_Context_Zf_TestsDirectory76 qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile:5 wZend_Tool_Project_Context_Zf_TestPHPUnitBootstrapFile@4 Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory13 eZend_Tool_Project_Context_Zf_TestLibraryFile62 oZend_Tool_Project_Context_Zf_TestLibraryDirectory:1 wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFileB0 Zend_Tool_Project_Context_Zf_TestApplicationModulesDirectoryA/ Zend_Tool_Project_Context_Zf_TestApplicationModuleDirectory:. wZend_Tool_Project_Context_Zf_TestApplicationDirectory@- Zend_Tool_Project_Context_Zf_TestApplicationControllerFileE, Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory>+ Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile=* }Zend_Tool_Project_Context_Zf_TestApplicationActionMethod4) kZend_Tool_Project_Context_Zf_TemporaryDirectory3( iZend_Tool_Project_Context_Zf_SessionsDirectory3' iZend_Tool_Project_Context_Zf_ServicesDirectory8& sZend_Tool_Project_Context_Zf_SearchIndexesDirectory<% {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory8$ sZend_Tool_Project_Context_Zf_PublicScriptsDirectory1# eZend_Tool_Project_Context_Zf_PublicIndexFile7" qZend_Tool_Project_Context_Zf_PublicImagesDirectory1! eZend_Tool_Project_Context_Zf_PublicDirectory5  mZend_Tool_Project_Context_Zf_ProjectProviderFile2 gZend_Tool_Project_Context_Zf_ModulesDirectory1 eZend_Tool_Project_Context_Zf_ModuleDirectory1 eZend_Tool_Project_Context_Zf_ModelsDirectory+ YZend_Tool_Project_Context_Zf_ModelFile/ aZend_Tool_Project_Context_Zf_LogsDirectory2 gZend_Tool_Project_Context_Zf_LocalesDirectory2 gZend_Tool_Project_Context_Zf_LibraryDirectory2 gZend_Tool_Project_Context_Zf_LayoutsDirectory8 sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory2 gZend_Tool_Project_Context_Zf_LayoutScriptFile. _Zend_Tool_Project_Context_Zf_HtaccessFile0 cZend_Tool_Project_Context_Zf_FormsDirectory* WZend_Tool_Project_Context_Zf_FormFile/ aZend_Tool_Project_Context_Zf_DocsDirectory- ]Zend_Tool_Project_Context_Zf_DbTableFile2 gZend_Tool_Project_Context_Zf_DbTableDirectory/ aZend_Tool_Project_Context_Zf_DataDirectory6 oZend_Tool_Project_Context_Zf_ControllersDirectory0 cZend_Tool_Project_Context_Zf_ControllerFile2 gZend_Tool_Project_Context_Zf_ConfigsDirectory, [Zend_Tool_Project_Context_Zf_ConfigFile0
 cZend_Tool_Project_Context_Zf_CacheDirectory/	 aZend_Tool_Project_Context_Zf_BootstrapFile6 oZend_Tool_Project_Context_Zf_ApplicationDirectory7 qZend_Tool_Project_Context_Zf_ApplicationConfigFile/ aZend_Tool_Project_Context_Zf_ApisDirectory. _Zend_Tool_Project_Context_Zf_ActionMethod3 iZend_Tool_Project_Context_Zf_AbstractClassFile@ Zend_Tool_Project_Context_System_ProjectProvidersDirectory8 sZend_Tool_Project_Context_System_ProjectProfileFile6 oZend_Tool_Project_Context_System_ProjectDirectory)  UZend_Tool_Project_Context_Repository. _Zend_Tool_Project_Context_Filesystem_File3~ iZend_Tool_Project_Context_Filesystem_Directory2} gZend_Tool_Project_Context_Filesystem_Abstract(| SZend_Tool_Project_Context_Exception-{ ]Zend_Tool_Project_Context_Content_Engine   g  j)j>_2
a6c@




i
D
%
						n	R	6	fAfC [8zW4y^<mL iDqQ/
                         ' 3Zend_Validate_Float!& EZend_Validate_File_WordCount% ?Zend_Validate_File_Upload$ ;Zend_Validate_File_Size# ;Zend_Validate_File_Sha1!" EZend_Validate_File_NotExists ! CZend_Validate_File_MimeType  9Zend_Validate_File_Md5 AZend_Validate_File_IsImage$ KZend_Validate_File_IsCompressed! EZend_Validate_File_ImageSize ;Zend_Validate_File_Hash! EZend_Validate_File_FilesSize! EZend_Validate_File_Extension ?Zend_Validate_File_Exists' QZend_Validate_File_ExcludeMimeType( SZend_Validate_File_ExcludeExtension =Zend_Validate_File_Crc32 =Zend_Validate_File_Count ;Zend_Validate_Exception AZend_Validate_EmailAddress 5Zend_Validate_Digits" GZend_Validate_Db_RecordExists$ KZend_Validate_Db_NoRecordExists ?Zend_Validate_Db_Abstract 1Zend_Validate_Date =Zend_Validate_CreditCard 3Zend_Validate_Ccnum 9Zend_Validate_Callback
 7Zend_Validate_Between	 7Zend_Validate_Barcode AZend_Validate_Barcode_Upce AZend_Validate_Barcode_Upca AZend_Validate_Barcode_Sscc$ KZend_Validate_Barcode_Royalmail" GZend_Validate_Barcode_Postnet! EZend_Validate_Barcode_Planet# IZend_Validate_Barcode_Leitcode  CZend_Validate_Barcode_Itf14  AZend_Validate_Barcode_Issn* WZend_Validate_Barcode_IntelligentMail$~ KZend_Validate_Barcode_Identcode!} EZend_Validate_Barcode_Gtin14!| EZend_Validate_Barcode_Gtin13!{ EZend_Validate_Barcode_Gtin12z AZend_Validate_Barcode_Ean8y AZend_Validate_Barcode_Ean5x AZend_Validate_Barcode_Ean2 w CZend_Validate_Barcode_Ean18 v CZend_Validate_Barcode_Ean14 u CZend_Validate_Barcode_Ean13 t CZend_Validate_Barcode_Ean12$s KZend_Validate_Barcode_Code93ext!r EZend_Validate_Barcode_Code93$q KZend_Validate_Barcode_Code39ext!p EZend_Validate_Barcode_Code39,o [Zend_Validate_Barcode_Code25interleaved!n EZend_Validate_Barcode_Code25*m WZend_Validate_Barcode_AdapterAbstractl 3Zend_Validate_Alphak 3Zend_Validate_Alnumj 9Zend_Validate_Abstracti Zend_Urih 'Zend_Uri_Httpg 1Zend_Uri_Exceptionf )Zend_Translatee 7Zend_Translate_Plurald =Zend_Translate_Exceptionc 9Zend_Translate_Adapter!b EZend_Translate_Adapter_XmlTm!a EZend_Translate_Adapter_Xliff` AZend_Translate_Adapter_Tmx_ AZend_Translate_Adapter_Tbx^ ?Zend_Translate_Adapter_Qt] AZend_Translate_Adapter_Ini#\ IZend_Translate_Adapter_Gettext[ AZend_Translate_Adapter_Csv!Z EZend_Translate_Adapter_Array$Y KZend_Tool_Project_Provider_View$X KZend_Tool_Project_Provider_Test/W aZend_Tool_Project_Provider_ProjectProvider'V QZend_Tool_Project_Provider_Project'U QZend_Tool_Project_Provider_Profile&T OZend_Tool_Project_Provider_Module%S MZend_Tool_Project_Provider_Model(R SZend_Tool_Project_Provider_Manifest&Q OZend_Tool_Project_Provider_Layout$P KZend_Tool_Project_Provider_Form)O UZend_Tool_Project_Provider_Exception'N QZend_Tool_Project_Provider_DbTable)M UZend_Tool_Project_Provider_DbAdapter*L WZend_Tool_Project_Provider_Controller+K YZend_Tool_Project_Provider_Application&J OZend_Tool_Project_Provider_Action(I SZend_Tool_Project_Provider_AbstractH ?Zend_Tool_Project_Profile'G QZend_Tool_Project_Profile_Resource9F uZend_Tool_Project_Profile_Resource_SearchConstraints1E eZend_Tool_Project_Profile_Resource_Container=D }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter5C mZend_Tool_Project_Profile_Iterator_ContextFilter-B ]Zend_Tool_Project_Profile_FileParser_Xml(A SZend_Tool_Project_Profile_Exception   k  jL2g>fJ(`> kG$



k
H
$
 				t	R	.	~Z8}J |Q0`1yV3~QvL#eK!                    , [Zend_XmlRpc_Generator_GeneratorAbstract& OZend_XmlRpc_Generator_DomDocument /Zend_XmlRpc_Fault 7Zend_XmlRpc_Exception 1Zend_XmlRpc_Client# IZend_XmlRpc_Client_ServerProxy+ YZend_XmlRpc_Client_ServerIntrospection+ YZend_XmlRpc_Client_IntrospectException%
 MZend_XmlRpc_Client_HttpException&	 OZend_XmlRpc_Client_FaultException! EZend_XmlRpc_Client_Exception /Zend_Xml_Security 1Zend_Xml_Exception& OZend_Wildfire_Protocol_JsonStream! EZend_Wildfire_Plugin_FirePhp. _Zend_Wildfire_Plugin_FirePhp_TableMessage) UZend_Wildfire_Plugin_FirePhp_Message ;Zend_Wildfire_Exception&  OZend_Wildfire_Channel_HttpHeaders Zend_View~ -Zend_View_Stream} AZend_View_Helper_UserAgent| 5Zend_View_Helper_Url{ AZend_View_Helper_Translatez AZend_View_Helper_ServerUrl)y UZend_View_Helper_RenderToPlaceholder!x EZend_View_Helper_Placeholder*w WZend_View_Helper_Placeholder_Registry4v kZend_View_Helper_Placeholder_Registry_Exception+u YZend_View_Helper_Placeholder_Container6t oZend_View_Helper_Placeholder_Container_Standalone5s mZend_View_Helper_Placeholder_Container_Exception4r kZend_View_Helper_Placeholder_Container_Abstract!q EZend_View_Helper_PartialLoopp =Zend_View_Helper_Partial'o QZend_View_Helper_Partial_Exception'n QZend_View_Helper_PaginationControl m CZend_View_Helper_Navigation(l SZend_View_Helper_Navigation_Sitemap%k MZend_View_Helper_Navigation_Menu&j OZend_View_Helper_Navigation_Links/i aZend_View_Helper_Navigation_HelperAbstract,h [Zend_View_Helper_Navigation_Breadcrumbsg ;Zend_View_Helper_Layoutf 7Zend_View_Helper_Json"e GZend_View_Helper_InlineScript#d IZend_View_Helper_HtmlQuicktimec ?Zend_View_Helper_HtmlPage b CZend_View_Helper_HtmlObjecta ?Zend_View_Helper_HtmlList` AZend_View_Helper_HtmlFlash!_ EZend_View_Helper_HtmlElement^ AZend_View_Helper_HeadTitle] AZend_View_Helper_HeadStyle \ CZend_View_Helper_HeadScript[ ?Zend_View_Helper_HeadMetaZ ?Zend_View_Helper_HeadLinkY ?Zend_View_Helper_Gravatar"X GZend_View_Helper_FormTextareaW ?Zend_View_Helper_FormText V CZend_View_Helper_FormSubmit U CZend_View_Helper_FormSelectT AZend_View_Helper_FormResetS AZend_View_Helper_FormRadio"R GZend_View_Helper_FormPasswordQ ?Zend_View_Helper_FormNote'P QZend_View_Helper_FormMultiCheckboxO AZend_View_Helper_FormLabelN AZend_View_Helper_FormImage M CZend_View_Helper_FormHiddenL ?Zend_View_Helper_FormFile K CZend_View_Helper_FormErrors!J EZend_View_Helper_FormElement"I GZend_View_Helper_FormCheckbox H CZend_View_Helper_FormButtonG 7Zend_View_Helper_FormF ?Zend_View_Helper_FieldsetE =Zend_View_Helper_Doctype!D EZend_View_Helper_DeclareVarsC 9Zend_View_Helper_CycleB ?Zend_View_Helper_CurrencyA =Zend_View_Helper_BaseUrl@ ;Zend_View_Helper_Action? ?Zend_View_Helper_Abstract> 3Zend_View_Exception= 1Zend_View_Abstract< %Zend_Version; 'Zend_Validate: AZend_Validate_StringLength#9 IZend_Validate_Sitemap_Priority8 ?Zend_Validate_Sitemap_Loc"7 GZend_Validate_Sitemap_Lastmod%6 MZend_Validate_Sitemap_Changefreq5 3Zend_Validate_Regex4 9Zend_Validate_PostCode3 9Zend_Validate_NotEmpty2 9Zend_Validate_LessThan1 7Zend_Validate_Ldap_Dn0 1Zend_Validate_Isbn/ -Zend_Validate_Ip. /Zend_Validate_Int- 7Zend_Validate_InArray, ;Zend_Validate_Identical+ 1Zend_Validate_Iban* 9Zend_Validate_Hostname) /Zend_Validate_Hex( ?Zend_Validate_GreaterThan   j  yW:vU0_A fG1 h?




]
0
				{	b	C	)	c2oA_<l@oEh<i7
vR*                           | Zend_Auth{ ?Zend_Auth_Storage_Session$z KZend_Auth_Storage_NonPersistent y CZend_Auth_Storage_Exceptionx -Zend_Auth_Resultw 3Zend_Auth_Exceptionv =Zend_Auth_Adapter_OpenIdu 9Zend_Auth_Adapter_Ldapt 9Zend_Auth_Adapter_Http)s UZend_Auth_Adapter_Http_Resolver_File.r _Zend_Auth_Adapter_Http_Resolver_Exception q CZend_Auth_Adapter_Exceptionp =Zend_Auth_Adapter_Digesto ?Zend_Auth_Adapter_DbTablen -Zend_Application#m IZend_Application_Resource_View(l SZend_Application_Resource_UserAgent(k SZend_Application_Resource_Translate&j OZend_Application_Resource_Session%i MZend_Application_Resource_Router/h aZend_Application_Resource_ResourceAbstract)g UZend_Application_Resource_Navigation&f OZend_Application_Resource_Multidb&e OZend_Application_Resource_Modules#d IZend_Application_Resource_Mail"c GZend_Application_Resource_Log%b MZend_Application_Resource_Locale%a MZend_Application_Resource_Layout.` _Zend_Application_Resource_Frontcontroller(_ SZend_Application_Resource_Exception#^ IZend_Application_Resource_Dojo!] EZend_Application_Resource_Db+\ YZend_Application_Resource_Cachemanager&[ OZend_Application_Module_Bootstrap'Z QZend_Application_Module_AutoloaderY AZend_Application_Exception)X UZend_Application_Bootstrap_Exception1W eZend_Application_Bootstrap_BootstrapAbstract)V UZend_Application_Bootstrap_BootstrapU ?Zend_Amf_Value_TraitsInfo-T ]Zend_Amf_Value_Messaging_RemotingMessage*S WZend_Amf_Value_Messaging_ErrorMessage,R [Zend_Amf_Value_Messaging_CommandMessage*Q WZend_Amf_Value_Messaging_AsyncMessage-P ]Zend_Amf_Value_Messaging_ArrayCollection0O cZend_Amf_Value_Messaging_AcknowledgeMessage-N ]Zend_Amf_Value_Messaging_AbstractMessage!M EZend_Amf_Value_MessageHeaderL AZend_Amf_Value_MessageBodyK =Zend_Amf_Value_ByteArrayJ AZend_Amf_Util_BinaryStreamI +Zend_Amf_ServerH ?Zend_Amf_Server_ExceptionG /Zend_Amf_ResponseF 9Zend_Amf_Response_HttpE -Zend_Amf_RequestD 7Zend_Amf_Request_HttpC ?Zend_Amf_Parse_TypeLoaderB ?Zend_Amf_Parse_Serializer#A IZend_Amf_Parse_Resource_Stream(@ SZend_Amf_Parse_Resource_MysqlResult)? UZend_Amf_Parse_Resource_MysqliResult > CZend_Amf_Parse_OutputStream= AZend_Amf_Parse_InputStream < CZend_Amf_Parse_Deserializer#; IZend_Amf_Parse_Amf3_Serializer%: MZend_Amf_Parse_Amf3_Deserializer#9 IZend_Amf_Parse_Amf0_Serializer%8 MZend_Amf_Parse_Amf0_Deserializer7 1Zend_Amf_Exception6 1Zend_Amf_Constants5 9Zend_Amf_Auth_Abstract 4 CZend_Amf_Adobe_Introspector3 AZend_Amf_Adobe_DbInspector2 3Zend_Amf_Adobe_Auth1 Zend_Acl0 'Zend_Acl_Role/ 9Zend_Acl_Role_Registry%. MZend_Acl_Role_Registry_Exception- /Zend_Acl_Resource, 1Zend_Acl_Exception+ /Zend_XmlRpc_Value* =Zend_XmlRpc_Value_Struct) =Zend_XmlRpc_Value_String( =Zend_XmlRpc_Value_Scalar' 7Zend_XmlRpc_Value_Nil& ?Zend_XmlRpc_Value_Integer % CZend_XmlRpc_Value_Exception$ =Zend_XmlRpc_Value_Double# AZend_XmlRpc_Value_DateTime!" EZend_XmlRpc_Value_Collection! ?Zend_XmlRpc_Value_Boolean!  EZend_XmlRpc_Value_BigInteger =Zend_XmlRpc_Value_Base64 ;Zend_XmlRpc_Value_Array 1Zend_XmlRpc_Server ?Zend_XmlRpc_Server_System =Zend_XmlRpc_Server_Fault! EZend_XmlRpc_Server_Exception =Zend_XmlRpc_Server_Cache 5Zend_XmlRpc_Response ?Zend_XmlRpc_Response_Http 3Zend_XmlRpc_Request ?Zend_XmlRpc_Request_Stdin =Zend_XmlRpc_Request_Http$ KZend_XmlRpc_Generator_XmlWriter   Y  ^A(VqCrDuE



M
				k	A	&vGoCZ1	[4pP%o5S.oH&                                
 CZend_Http_UserAgent_Storage)	 UZend_Http_UserAgent_Features_Adapter AZend_Http_UserAgent_Device$ KZend_Http_Client_Adapter_Stream' QZend_Http_Client_Adapter_Interface AZend_Gdata_App_MediaSource. _Zend_Form_Decorator_Marker_File_Interface" GZend_Form_Decorator_Interface 7Zend_Filter_Interface" GZend_Filter_Encrypt_Interface+  YZend_Filter_Compress_CompressInterface0 cZend_Feed_Writer_Renderer_RendererInterface1~ eZend_Feed_Writer_Extension_RendererInterface#} IZend_Feed_Reader_FeedInterface$| KZend_Feed_Reader_EntryInterface7{ qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface-z ]Zend_Feed_Pubsubhubbub_CallbackInterface y CZend_Feed_Builder_Interface1x eZend_EventManager_SharedEventCollectionAware,w [Zend_EventManager_SharedEventCollection(v SZend_EventManager_ListenerAggregateu =Zend_EventManager_Filter t CZend_EventManager_Exception(s SZend_EventManager_EventManagerAware'r QZend_EventManager_EventDescription&q OZend_EventManager_EventCollection p CZend_Db_Statement_Interface$o KZend_Currency_CurrencyInterface)n UZend_Crypt_Math_BigInteger_Interface+m YZend_Controller_Router_Route_Interface%l MZend_Controller_Router_Interface)k UZend_Controller_Dispatcher_Interface%j MZend_Controller_Action_Interface&i OZend_Cloud_StorageService_Adapter$h KZend_Cloud_QueueService_Adapter&g OZend_Cloud_Infrastructure_Adapter,f [Zend_Cloud_DocumentService_QueryAdapter'e QZend_Cloud_DocumentService_Adapterd 5Zend_Captcha_Adapter!c EZend_Cache_Backend_Interface)b UZend_Cache_Backend_ExtendedInterface a CZend_Auth_Storage_Interface ` CZend_Auth_Adapter_Interface._ _Zend_Auth_Adapter_Http_Resolver_Interface'^ QZend_Application_Resource_Resource4] kZend_Application_Bootstrap_ResourceBootstrapper,\ [Zend_Application_Bootstrap_Bootstrapper[ ;Zend_Acl_Role_Interface Z CZend_Acl_Resource_InterfaceY ?Zend_Acl_Assert_Interface#X IZend_Wildfire_Plugin_Interface$W KZend_Wildfire_Channel_InterfaceV 3Zend_View_Interface'U QZend_View_Helper_Navigation_HelperT AZend_View_Helper_InterfaceS ;Zend_Validate_Interface+R YZend_Validate_Barcode_AdapterInterface3Q iZend_Tool_Project_Profile_FileParser_Interface:P wZend_Tool_Project_Context_System_TopLevelRestrictable5O mZend_Tool_Project_Context_System_NotOverwritable/N aZend_Tool_Project_Context_System_Interface(M SZend_Tool_Project_Context_Interface+L YZend_Tool_Framework_Registry_Interface2K gZend_Tool_Framework_Registry_EnabledInterface-J ]Zend_Tool_Framework_Provider_Pretendable+I YZend_Tool_Framework_Provider_Interface.H _Zend_Tool_Framework_Provider_Interactable/G aZend_Tool_Framework_Provider_Initializable;F yZend_Tool_Framework_Provider_DocblockManifestInterface+E YZend_Tool_Framework_Metadata_Interface.D _Zend_Tool_Framework_Metadata_Attributable6C oZend_Tool_Framework_Manifest_ProviderManifestable6B oZend_Tool_Framework_Manifest_MetadataManifestable+A YZend_Tool_Framework_Manifest_Interface+@ YZend_Tool_Framework_Manifest_Indexable4? kZend_Tool_Framework_Manifest_ActionManifestable)> UZend_Tool_Framework_Loader_Interface8= sZend_Tool_Framework_Client_Storage_AdapterInterfaceD< 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface;; yZend_Tool_Framework_Client_Interactive_OutputInterface:: wZend_Tool_Framework_Client_Interactive_InputInterface)9 UZend_Tool_Framework_Action_Interface(8 SZend_Text_Table_Decorator_Interface7 /Zend_Tag_Taggable6 7Zend_Stdlib_Exception&5 OZend_Soap_Wsdl_Strategy_Interface%4 MZend_Session_Validator_Interface'3 QZend_Session_SaveHandler_Interface$2 KZend_Service_ShortUrl_Shortener   d  lI'|V4wV5vaBlL'



b
<
!
						`	=		dE+_!a6T(PS)yEgB   !` EZend_CodeGenerator_Php_Class _ CZend_CodeGenerator_Php_Body$^ KZend_CodeGenerator_Php_Abstract!] EZend_CodeGenerator_Exception \ CZend_CodeGenerator_Abstract&[ OZend_Cloud_StorageService_Factory(Z SZend_Cloud_StorageService_Exception3Y iZend_Cloud_StorageService_Adapter_WindowsAzure)X UZend_Cloud_StorageService_Adapter_S30W cZend_Cloud_StorageService_Adapter_Rackspace1V eZend_Cloud_StorageService_Adapter_FileSystem'U QZend_Cloud_QueueService_MessageSet$T KZend_Cloud_QueueService_Message$S KZend_Cloud_QueueService_Factory&R OZend_Cloud_QueueService_Exception.Q _Zend_Cloud_QueueService_Adapter_ZendQueue1P eZend_Cloud_QueueService_Adapter_WindowsAzure(O SZend_Cloud_QueueService_Adapter_Sqs4N kZend_Cloud_QueueService_Adapter_AbstractAdapter.M _Zend_Cloud_OperationNotAvailableException+L YZend_Cloud_Infrastructure_InstanceList'K QZend_Cloud_Infrastructure_Instance(J SZend_Cloud_Infrastructure_ImageList$I KZend_Cloud_Infrastructure_Image&H OZend_Cloud_Infrastructure_Factory(G SZend_Cloud_Infrastructure_Exception0F cZend_Cloud_Infrastructure_Adapter_Rackspace*E WZend_Cloud_Infrastructure_Adapter_Ec26D oZend_Cloud_Infrastructure_Adapter_AbstractAdapterC 5Zend_Cloud_Exception%B MZend_Cloud_DocumentService_Query'A QZend_Cloud_DocumentService_Factory)@ UZend_Cloud_DocumentService_Exception+? YZend_Cloud_DocumentService_DocumentSet(> SZend_Cloud_DocumentService_Document4= kZend_Cloud_DocumentService_Adapter_WindowsAzure:< wZend_Cloud_DocumentService_Adapter_WindowsAzure_Query0; cZend_Cloud_DocumentService_Adapter_SimpleDb6: oZend_Cloud_DocumentService_Adapter_SimpleDb_Query79 qZend_Cloud_DocumentService_Adapter_AbstractAdapter8 AZend_Cloud_AbstractFactory7 /Zend_Captcha_Word6 9Zend_Captcha_ReCaptcha5 1Zend_Captcha_Image4 3Zend_Captcha_Figlet3 9Zend_Captcha_Exception2 /Zend_Captcha_Dumb1 /Zend_Captcha_Base0 !Zend_Cache/ 1Zend_Cache_Manager. =Zend_Cache_Frontend_Page- AZend_Cache_Frontend_Output!, EZend_Cache_Frontend_Function+ =Zend_Cache_Frontend_File* ?Zend_Cache_Frontend_Class ) CZend_Cache_Frontend_Capture( 5Zend_Cache_Exception' +Zend_Cache_Core& 1Zend_Cache_Backend"% GZend_Cache_Backend_ZendServer($ SZend_Cache_Backend_ZendServer_ShMem'# QZend_Cache_Backend_ZendServer_Disk$" KZend_Cache_Backend_ZendPlatform! ?Zend_Cache_Backend_Xcache   CZend_Cache_Backend_WinCache! EZend_Cache_Backend_TwoLevels ;Zend_Cache_Backend_Test ?Zend_Cache_Backend_Static ?Zend_Cache_Backend_Sqlite! EZend_Cache_Backend_Memcached$ KZend_Cache_Backend_Libmemcached ;Zend_Cache_Backend_File! EZend_Cache_Backend_BlackHole 9Zend_Cache_Backend_Apc %Zend_Barcode ?Zend_Barcode_Renderer_Svg+ YZend_Barcode_Renderer_RendererAbstract ?Zend_Barcode_Renderer_Pdf  CZend_Barcode_Renderer_Image$ KZend_Barcode_Renderer_Exception =Zend_Barcode_Object_Upce =Zend_Barcode_Object_Upca" GZend_Barcode_Object_Royalmail  CZend_Barcode_Object_Postnet AZend_Barcode_Object_Planet' QZend_Barcode_Object_ObjectAbstract!
 EZend_Barcode_Object_Leitcode	 ?Zend_Barcode_Object_Itf14" GZend_Barcode_Object_Identcode" GZend_Barcode_Object_Exception ?Zend_Barcode_Object_Error =Zend_Barcode_Object_Ean8 =Zend_Barcode_Object_Ean5 =Zend_Barcode_Object_Ean2 ?Zend_Barcode_Object_Ean13 AZend_Barcode_Object_Code39*  WZend_Barcode_Object_Code25interleaved AZend_Barcode_Object_Code25 ~ CZend_Barcode_Object_Code128} 9Zend_Barcode_Exception   c  g;gAgO6oT<#uC


^
2				m	C	_2sM!zU(a3b4a@#kH&vcC-               C 3Zend_Date_ExceptionB 5Zend_Date_DateObjectA -Zend_Date_Cities@ 'Zend_Currency? ;Zend_Currency_Exception> !Zend_Crypt= )Zend_Crypt_Rsa< 1Zend_Crypt_Rsa_Key; ?Zend_Crypt_Rsa_Key_Public: AZend_Crypt_Rsa_Key_Private9 =Zend_Crypt_Rsa_Exception8 +Zend_Crypt_Math7 ?Zend_Crypt_Math_Exception6 AZend_Crypt_Math_BigInteger#5 IZend_Crypt_Math_BigInteger_Gmp)4 UZend_Crypt_Math_BigInteger_Exception&3 OZend_Crypt_Math_BigInteger_Bcmath2 +Zend_Crypt_Hmac1 ?Zend_Crypt_Hmac_Exception0 5Zend_Crypt_Exception/ =Zend_Crypt_DiffieHellman'. QZend_Crypt_DiffieHellman_Exception!- EZend_Controller_Router_Route(, SZend_Controller_Router_Route_Static'+ QZend_Controller_Router_Route_Regex(* SZend_Controller_Router_Route_Module*) WZend_Controller_Router_Route_Hostname'( QZend_Controller_Router_Route_Chain*' WZend_Controller_Router_Route_Abstract#& IZend_Controller_Router_Rewrite%% MZend_Controller_Router_Exception$$ KZend_Controller_Router_Abstract*# WZend_Controller_Response_HttpTestCase"" GZend_Controller_Response_Http'! QZend_Controller_Response_Exception!  EZend_Controller_Response_Cli& OZend_Controller_Response_Abstract# IZend_Controller_Request_Simple) UZend_Controller_Request_HttpTestCase! EZend_Controller_Request_Http& OZend_Controller_Request_Exception& OZend_Controller_Request_Apache404% MZend_Controller_Request_Abstract& OZend_Controller_Plugin_PutHandler( SZend_Controller_Plugin_ErrorHandler" GZend_Controller_Plugin_Broker' QZend_Controller_Plugin_ActionStack$ KZend_Controller_Plugin_Abstract 7Zend_Controller_Front ?Zend_Controller_Exception( SZend_Controller_Dispatcher_Standard) UZend_Controller_Dispatcher_Exception( SZend_Controller_Dispatcher_Abstract 9Zend_Controller_Action( SZend_Controller_Action_HelperBroker6 oZend_Controller_Action_HelperBroker_PriorityStack/ aZend_Controller_Action_Helper_ViewRenderer&
 OZend_Controller_Action_Helper_Url-	 ]Zend_Controller_Action_Helper_Redirector' QZend_Controller_Action_Helper_Json1 eZend_Controller_Action_Helper_FlashMessenger0 cZend_Controller_Action_Helper_ContextSwitch( SZend_Controller_Action_Helper_Cache< {Zend_Controller_Action_Helper_AutoCompleteScriptaculous3 iZend_Controller_Action_Helper_AutoCompleteDojo8 sZend_Controller_Action_Helper_AutoComplete_Abstract. _Zend_Controller_Action_Helper_AjaxContext.  _Zend_Controller_Action_Helper_ActionStack+ YZend_Controller_Action_Helper_Abstract%~ MZend_Controller_Action_Exception} 3Zend_Console_Getopt"| GZend_Console_Getopt_Exception{ #Zend_Configz -Zend_Config_Yamly +Zend_Config_Xmlx 1Zend_Config_Writerw ;Zend_Config_Writer_Yamlv 9Zend_Config_Writer_Xmlu ;Zend_Config_Writer_Jsont 9Zend_Config_Writer_Ini$s KZend_Config_Writer_FileAbstractr =Zend_Config_Writer_Arrayq -Zend_Config_Jsonp +Zend_Config_Inio 7Zend_Config_Exception$n KZend_CodeGenerator_Php_Property1m eZend_CodeGenerator_Php_Property_DefaultValue%l MZend_CodeGenerator_Php_Parameter2k gZend_CodeGenerator_Php_Parameter_DefaultValue"j GZend_CodeGenerator_Php_Method,i [Zend_CodeGenerator_Php_Member_Container+h YZend_CodeGenerator_Php_Member_Abstract g CZend_CodeGenerator_Php_File%f MZend_CodeGenerator_Php_Exception$e KZend_CodeGenerator_Php_Docblock(d SZend_CodeGenerator_Php_Docblock_Tag/c aZend_CodeGenerator_Php_Docblock_Tag_Return.b _Zend_CodeGenerator_Php_Docblock_Tag_Param0a cZend_CodeGenerator_Php_Docblock_Tag_License   i  i@!lL*z[A,	xP2vT2




n
N
+
					\	?	)		S"l<lDuFb4h7	U'\2            , CZend_Dojo_View_Helper_Dijit&+ OZend_Dojo_View_Helper_DateTextBox&* OZend_Dojo_View_Helper_CustomDijit*) WZend_Dojo_View_Helper_CurrencyTextBox&( OZend_Dojo_View_Helper_ContentPane#' IZend_Dojo_View_Helper_ComboBox#& IZend_Dojo_View_Helper_CheckBox!% EZend_Dojo_View_Helper_Button*$ WZend_Dojo_View_Helper_BorderContainer(# SZend_Dojo_View_Helper_AccordionPane-" ]Zend_Dojo_View_Helper_AccordionContainer! =Zend_Dojo_View_Exception  )Zend_Dojo_Form 9Zend_Dojo_Form_SubForm* WZend_Dojo_Form_Element_VerticalSlider- ]Zend_Dojo_Form_Element_ValidationTextBox' QZend_Dojo_Form_Element_TimeTextBox# IZend_Dojo_Form_Element_TextBox$ KZend_Dojo_Form_Element_Textarea( SZend_Dojo_Form_Element_SubmitButton" GZend_Dojo_Form_Element_Slider* WZend_Dojo_Form_Element_SimpleTextarea' QZend_Dojo_Form_Element_RadioButton+ YZend_Dojo_Form_Element_PasswordTextBox) UZend_Dojo_Form_Element_NumberTextBox) UZend_Dojo_Form_Element_NumberSpinner, [Zend_Dojo_Form_Element_HorizontalSlider+ YZend_Dojo_Form_Element_FilteringSelect" GZend_Dojo_Form_Element_Editor& OZend_Dojo_Form_Element_DijitMulti! EZend_Dojo_Form_Element_Dijit' QZend_Dojo_Form_Element_DateTextBox+ YZend_Dojo_Form_Element_CurrencyTextBox$ KZend_Dojo_Form_Element_ComboBox$
 KZend_Dojo_Form_Element_CheckBox"	 GZend_Dojo_Form_Element_Button  CZend_Dojo_Form_DisplayGroup* WZend_Dojo_Form_Decorator_TabContainer, [Zend_Dojo_Form_Decorator_StackContainer, [Zend_Dojo_Form_Decorator_SplitContainer' QZend_Dojo_Form_Decorator_DijitForm* WZend_Dojo_Form_Decorator_DijitElement, [Zend_Dojo_Form_Decorator_DijitContainer) UZend_Dojo_Form_Decorator_ContentPane-  ]Zend_Dojo_Form_Decorator_BorderContainer+ YZend_Dojo_Form_Decorator_AccordionPane0~ cZend_Dojo_Form_Decorator_AccordionContainer} 3Zend_Dojo_Exception| )Zend_Dojo_Data{ 5Zend_Dojo_BuildLayerz !Zend_Debugy Zend_Dbx 'Zend_Db_Tablew 5Zend_Db_Table_Select#v IZend_Db_Table_Select_Exceptionu 5Zend_Db_Table_Rowset#t IZend_Db_Table_Rowset_Exception"s GZend_Db_Table_Rowset_Abstractr /Zend_Db_Table_Row q CZend_Db_Table_Row_Exceptionp AZend_Db_Table_Row_Abstracto ;Zend_Db_Table_Exceptionn =Zend_Db_Table_Definitionm 9Zend_Db_Table_Abstractl /Zend_Db_Statementk =Zend_Db_Statement_Sqlsrv'j QZend_Db_Statement_Sqlsrv_Exceptioni 7Zend_Db_Statement_Pdoh ?Zend_Db_Statement_Pdo_Ocig ?Zend_Db_Statement_Pdo_Ibmf =Zend_Db_Statement_Oracle'e QZend_Db_Statement_Oracle_Exceptiond =Zend_Db_Statement_Mysqli'c QZend_Db_Statement_Mysqli_Exception b CZend_Db_Statement_Exceptiona 7Zend_Db_Statement_Db2$` KZend_Db_Statement_Db2_Exception_ )Zend_Db_Select^ =Zend_Db_Select_Exception] -Zend_Db_Profiler\ 9Zend_Db_Profiler_Query[ =Zend_Db_Profiler_FirebugZ AZend_Db_Profiler_ExceptionY %Zend_Db_ExprX /Zend_Db_ExceptionW 9Zend_Db_Adapter_Sqlsrv%V MZend_Db_Adapter_Sqlsrv_ExceptionU AZend_Db_Adapter_Pdo_SqliteT ?Zend_Db_Adapter_Pdo_PgsqlS ;Zend_Db_Adapter_Pdo_OciR ?Zend_Db_Adapter_Pdo_MysqlQ ?Zend_Db_Adapter_Pdo_MssqlP ;Zend_Db_Adapter_Pdo_Ibm O CZend_Db_Adapter_Pdo_Ibm_Ids N CZend_Db_Adapter_Pdo_Ibm_Db2!M EZend_Db_Adapter_Pdo_AbstractL 9Zend_Db_Adapter_Oracle%K MZend_Db_Adapter_Oracle_ExceptionJ 9Zend_Db_Adapter_Mysqli%I MZend_Db_Adapter_Mysqli_ExceptionH ?Zend_Db_Adapter_ExceptionG 3Zend_Db_Adapter_Db2"F GZend_Db_Adapter_Db2_ExceptionE =Zend_Db_Adapter_AbstractD Zend_Date   _  ^0X.W,XF+
Q!




c
6

					`	F	,	]1pF'tP-zA	qA}M`G1G
         8 sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed9
 uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry6	 oZend_Feed_Writer_Extension_Content_Renderer_Entry2 gZend_Feed_Writer_Extension_Atom_Renderer_Feed6 oZend_Feed_Writer_Exception_InvalidMethodException 9Zend_Feed_Writer_Entry =Zend_Feed_Writer_Deleted 'Zend_Feed_Rss -Zend_Feed_Reader =Zend_Feed_Reader_FeedSet" GZend_Feed_Reader_FeedAbstract  ?Zend_Feed_Reader_Feed_Rss AZend_Feed_Reader_Feed_Atom&~ OZend_Feed_Reader_Feed_Atom_Source3} iZend_Feed_Reader_Extension_WellFormedWeb_Entry,| [Zend_Feed_Reader_Extension_Thread_Entry0{ cZend_Feed_Reader_Extension_Syndication_Feed+z YZend_Feed_Reader_Extension_Slash_Entry,y [Zend_Feed_Reader_Extension_Podcast_Feed-x ]Zend_Feed_Reader_Extension_Podcast_Entry,w [Zend_Feed_Reader_Extension_FeedAbstract-v ]Zend_Feed_Reader_Extension_EntryAbstract/u aZend_Feed_Reader_Extension_DublinCore_Feed0t cZend_Feed_Reader_Extension_DublinCore_Entry4s kZend_Feed_Reader_Extension_CreativeCommons_Feed5r mZend_Feed_Reader_Extension_CreativeCommons_Entry-q ]Zend_Feed_Reader_Extension_Content_Entry)p UZend_Feed_Reader_Extension_Atom_Feed*o WZend_Feed_Reader_Extension_Atom_Entry#n IZend_Feed_Reader_EntryAbstractm AZend_Feed_Reader_Entry_Rss l CZend_Feed_Reader_Entry_Atom k CZend_Feed_Reader_Collection3j iZend_Feed_Reader_Collection_CollectionAbstract)i UZend_Feed_Reader_Collection_Category'h QZend_Feed_Reader_Collection_Authorg 9Zend_Feed_Pubsubhubbub&f OZend_Feed_Pubsubhubbub_Subscriber/e aZend_Feed_Pubsubhubbub_Subscriber_Callback%d MZend_Feed_Pubsubhubbub_Publisher.c _Zend_Feed_Pubsubhubbub_Model_Subscription/b aZend_Feed_Pubsubhubbub_Model_ModelAbstract(a SZend_Feed_Pubsubhubbub_HttpResponse%` MZend_Feed_Pubsubhubbub_Exception,_ [Zend_Feed_Pubsubhubbub_CallbackAbstract^ 3Zend_Feed_Exception] 3Zend_Feed_Entry_Rss\ 5Zend_Feed_Entry_Atom[ =Zend_Feed_Entry_AbstractZ /Zend_Feed_ElementY /Zend_Feed_BuilderX =Zend_Feed_Builder_Header$W KZend_Feed_Builder_Header_Itunes V CZend_Feed_Builder_ExceptionU ;Zend_Feed_Builder_EntryT )Zend_Feed_AtomS 1Zend_Feed_AbstractR )Zend_Exception)Q UZend_EventManager_StaticEventManager)P UZend_EventManager_SharedEventManager)O UZend_EventManager_ResponseCollectionN SplStack)M UZend_EventManager_GlobalEventManager"L GZend_EventManager_FilterChain,K [Zend_EventManager_Filter_FilterIterator9J uZend_EventManager_Exception_InvalidArgumentException#I IZend_EventManager_EventManagerH ;Zend_EventManager_EventG )Zend_Dom_QueryF 7Zend_Dom_Query_ResultE =Zend_Dom_Query_Css2XpathD 1Zend_Dom_ExceptionC Zend_Dojo)B UZend_Dojo_View_Helper_VerticalSlider,A [Zend_Dojo_View_Helper_ValidationTextBox&@ OZend_Dojo_View_Helper_TimeTextBox"? GZend_Dojo_View_Helper_TextBox#> IZend_Dojo_View_Helper_Textarea'= QZend_Dojo_View_Helper_TabContainer'< QZend_Dojo_View_Helper_SubmitButton); UZend_Dojo_View_Helper_StackContainer): UZend_Dojo_View_Helper_SplitContainer!9 EZend_Dojo_View_Helper_Slider)8 UZend_Dojo_View_Helper_SimpleTextarea&7 OZend_Dojo_View_Helper_RadioButton*6 WZend_Dojo_View_Helper_PasswordTextBox(5 SZend_Dojo_View_Helper_NumberTextBox(4 SZend_Dojo_View_Helper_NumberSpinner+3 YZend_Dojo_View_Helper_HorizontalSlider2 AZend_Dojo_View_Helper_Form*1 WZend_Dojo_View_Helper_FilteringSelect!0 EZend_Dojo_View_Helper_Editor/ AZend_Dojo_View_Helper_Dojo). UZend_Dojo_View_Helper_Dojo_Container)- UZend_Dojo_View_Helper_DijitContainer   g  h0Hq8{[B0uZ@&	




a
@
						j	R	/	lL)dK+kBi=_0{W/xW.sO(             r 9Zend_Form_DisplayGroup#q IZend_Form_Decorator_ViewScript#p IZend_Form_Decorator_ViewHelper o CZend_Form_Decorator_Tooltip(n SZend_Form_Decorator_PrepareElementsm ?Zend_Form_Decorator_Labell ?Zend_Form_Decorator_Image k CZend_Form_Decorator_HtmlTag#j IZend_Form_Decorator_FormErrors%i MZend_Form_Decorator_FormElementsh =Zend_Form_Decorator_Formg =Zend_Form_Decorator_File!f EZend_Form_Decorator_Fieldset"e GZend_Form_Decorator_Exceptiond AZend_Form_Decorator_Errors$c KZend_Form_Decorator_DtDdWrapper$b KZend_Form_Decorator_Description a CZend_Form_Decorator_Captcha%` MZend_Form_Decorator_Captcha_Word*_ WZend_Form_Decorator_Captcha_ReCaptcha!^ EZend_Form_Decorator_Callback!] EZend_Form_Decorator_Abstract\ #Zend_Filter+[ YZend_Filter_Word_UnderscoreToSeparator&Z OZend_Filter_Word_UnderscoreToDash+Y YZend_Filter_Word_UnderscoreToCamelCase*X WZend_Filter_Word_SeparatorToSeparator%W MZend_Filter_Word_SeparatorToDash*V WZend_Filter_Word_SeparatorToCamelCase(U SZend_Filter_Word_Separator_Abstract&T OZend_Filter_Word_DashToUnderscore%S MZend_Filter_Word_DashToSeparator%R MZend_Filter_Word_DashToCamelCase+Q YZend_Filter_Word_CamelCaseToUnderscore*P WZend_Filter_Word_CamelCaseToSeparator%O MZend_Filter_Word_CamelCaseToDashN 7Zend_Filter_StripTagsM ?Zend_Filter_StripNewlinesL 9Zend_Filter_StringTrimK ?Zend_Filter_StringToUpperJ ?Zend_Filter_StringToLowerI 5Zend_Filter_RealPathH ;Zend_Filter_PregReplaceG -Zend_Filter_Null&F OZend_Filter_NormalizedToLocalized&E OZend_Filter_LocalizedToNormalizedD +Zend_Filter_IntC /Zend_Filter_InputB 7Zend_Filter_InflectorA =Zend_Filter_HtmlEntities@ AZend_Filter_File_UpperCase? ;Zend_Filter_File_Rename> AZend_Filter_File_LowerCase= =Zend_Filter_File_Encrypt< =Zend_Filter_File_Decrypt; 7Zend_Filter_Exception: 3Zend_Filter_Encrypt 9 CZend_Filter_Encrypt_Openssl8 AZend_Filter_Encrypt_Mcrypt7 +Zend_Filter_Dir6 1Zend_Filter_Digits5 3Zend_Filter_Decrypt4 9Zend_Filter_Decompress3 5Zend_Filter_Compress2 =Zend_Filter_Compress_Zip1 =Zend_Filter_Compress_Tar0 =Zend_Filter_Compress_Rar/ =Zend_Filter_Compress_Lzf. ;Zend_Filter_Compress_Gz*- WZend_Filter_Compress_CompressAbstract, =Zend_Filter_Compress_Bz2+ 5Zend_Filter_Callback* 3Zend_Filter_Boolean) 5Zend_Filter_BaseName( /Zend_Filter_Alpha' /Zend_Filter_Alnum& 1Zend_File_Transfer!% EZend_File_Transfer_Exception$$ KZend_File_Transfer_Adapter_Http(# SZend_File_Transfer_Adapter_Abstract" 9Zend_File_PhpClassFile! AZend_File_ClassFileLocator  Zend_Feed -Zend_Feed_Writer ;Zend_Feed_Writer_Source/ aZend_Feed_Writer_Renderer_RendererAbstract' QZend_Feed_Writer_Renderer_Feed_Rss( SZend_Feed_Writer_Renderer_Feed_Atom/ aZend_Feed_Writer_Renderer_Feed_Atom_Source5 mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract( SZend_Feed_Writer_Renderer_Entry_Rss) UZend_Feed_Writer_Renderer_Entry_Atom1 eZend_Feed_Writer_Renderer_Entry_Atom_Deleted 7Zend_Feed_Writer_Feed' QZend_Feed_Writer_Feed_FeedAbstract< {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry8 sZend_Feed_Writer_Extension_Threading_Renderer_Entry4 kZend_Feed_Writer_Extension_Slash_Renderer_Entry0 cZend_Feed_Writer_Extension_RendererAbstract4 kZend_Feed_Writer_Extension_ITunes_Renderer_Feed5 mZend_Feed_Writer_Extension_ITunes_Renderer_Entry+ YZend_Feed_Writer_Extension_ITunes_Feed, [Zend_Feed_Writer_Extension_ITunes_Entry   f  vW8jG'cI-]7_0



}
M
0
				g	>	tN*e=uL'vF#`I.zMf7c<
           (X SZend_Gdata_Calendar_Extension_Color.W _Zend_Gdata_Calendar_Extension_AccessLevel#V IZend_Gdata_Calendar_EventQuery"U GZend_Gdata_Calendar_EventFeed#T IZend_Gdata_Calendar_EventEntryS -Zend_Gdata_Books!R EZend_Gdata_Books_VolumeQuery Q CZend_Gdata_Books_VolumeFeed!P EZend_Gdata_Books_VolumeEntry+O YZend_Gdata_Books_Extension_Viewability-N ]Zend_Gdata_Books_Extension_ThumbnailLink&M OZend_Gdata_Books_Extension_Review+L YZend_Gdata_Books_Extension_PreviewLink(K SZend_Gdata_Books_Extension_InfoLink-J ]Zend_Gdata_Books_Extension_Embeddability)I UZend_Gdata_Books_Extension_BooksLink-H ]Zend_Gdata_Books_Extension_BooksCategory.G _Zend_Gdata_Books_Extension_AnnotationLink$F KZend_Gdata_Books_CollectionFeed%E MZend_Gdata_Books_CollectionEntryD 1Zend_Gdata_AuthSubC )Zend_Gdata_App$B KZend_Gdata_App_VersionExceptionA 3Zend_Gdata_App_Util#@ IZend_Gdata_App_MediaFileSource? ?Zend_Gdata_App_MediaEntry2> gZend_Gdata_App_LoggingHttpClientAdapterSocket= AZend_Gdata_App_IOException,< [Zend_Gdata_App_InvalidArgumentException!; EZend_Gdata_App_HttpException$: KZend_Gdata_App_FeedSourceParent#9 IZend_Gdata_App_FeedEntryParent8 3Zend_Gdata_App_Feed7 =Zend_Gdata_App_Extension!6 EZend_Gdata_App_Extension_Uri%5 MZend_Gdata_App_Extension_Updated#4 IZend_Gdata_App_Extension_Title"3 GZend_Gdata_App_Extension_Text%2 MZend_Gdata_App_Extension_Summary&1 OZend_Gdata_App_Extension_Subtitle$0 KZend_Gdata_App_Extension_Source$/ KZend_Gdata_App_Extension_Rights'. QZend_Gdata_App_Extension_Published$- KZend_Gdata_App_Extension_Person", GZend_Gdata_App_Extension_Name"+ GZend_Gdata_App_Extension_Logo"* GZend_Gdata_App_Extension_Link ) CZend_Gdata_App_Extension_Id"( GZend_Gdata_App_Extension_Icon'' QZend_Gdata_App_Extension_Generator#& IZend_Gdata_App_Extension_Email%% MZend_Gdata_App_Extension_Element$$ KZend_Gdata_App_Extension_Edited## IZend_Gdata_App_Extension_Draft%" MZend_Gdata_App_Extension_Control)! UZend_Gdata_App_Extension_Contributor%  MZend_Gdata_App_Extension_Content& OZend_Gdata_App_Extension_Category$ KZend_Gdata_App_Extension_Author =Zend_Gdata_App_Exception 5Zend_Gdata_App_Entry, [Zend_Gdata_App_CaptchaRequiredException# IZend_Gdata_App_BaseMediaSource 3Zend_Gdata_App_Base* WZend_Gdata_App_BadMethodCallException! EZend_Gdata_App_AuthException 5Zend_Gdata_Analytics+ YZend_Gdata_Analytics_Extension_TableId, [Zend_Gdata_Analytics_Extension_Property* WZend_Gdata_Analytics_Extension_Metric ?Zend_Gdata_Analytics_Goal- ]Zend_Gdata_Analytics_Extension_Dimension# IZend_Gdata_Analytics_DataQuery" GZend_Gdata_Analytics_DataFeed# IZend_Gdata_Analytics_DataEntry& OZend_Gdata_Analytics_AccountQuery% MZend_Gdata_Analytics_AccountFeed& OZend_Gdata_Analytics_AccountEntry
 Zend_Form	 /Zend_Form_SubForm 3Zend_Form_Exception /Zend_Form_Element ;Zend_Form_Element_Xhtml AZend_Form_Element_Textarea 9Zend_Form_Element_Text =Zend_Form_Element_Submit =Zend_Form_Element_Select ;Zend_Form_Element_Reset  ;Zend_Form_Element_Radio AZend_Form_Element_Password~ 9Zend_Form_Element_Note"} GZend_Form_Element_Multiselect$| KZend_Form_Element_MultiCheckbox{ ;Zend_Form_Element_Multiz ;Zend_Form_Element_Imagey =Zend_Form_Element_Hiddenx 9Zend_Form_Element_Hashw 9Zend_Form_Element_File v CZend_Form_Element_Exceptionu AZend_Form_Element_Checkboxt ?Zend_Form_Element_Captchas =Zend_Form_Element_Button   a  yJbF'nAzHf;



b
<
					j	>	pJa9nK*~MwO#c>]:eL-                      9 7Zend_Gdata_Gbase_Feed-8 ]Zend_Gdata_Gbase_Extension_BaseAttribute7 9Zend_Gdata_Gbase_Entry6 -Zend_Gdata_Gapps5 AZend_Gdata_Gapps_UserQuery4 ?Zend_Gdata_Gapps_UserFeed3 AZend_Gdata_Gapps_UserEntry&2 OZend_Gdata_Gapps_ServiceException1 9Zend_Gdata_Gapps_Query 0 CZend_Gdata_Gapps_OwnerQuery/ AZend_Gdata_Gapps_OwnerFeed . CZend_Gdata_Gapps_OwnerEntry#- IZend_Gdata_Gapps_NicknameQuery", GZend_Gdata_Gapps_NicknameFeed#+ IZend_Gdata_Gapps_NicknameEntry!* EZend_Gdata_Gapps_MemberQuery ) CZend_Gdata_Gapps_MemberFeed!( EZend_Gdata_Gapps_MemberEntry ' CZend_Gdata_Gapps_GroupQuery& AZend_Gdata_Gapps_GroupFeed % CZend_Gdata_Gapps_GroupEntry%$ MZend_Gdata_Gapps_Extension_Quota(# SZend_Gdata_Gapps_Extension_Property(" SZend_Gdata_Gapps_Extension_Nickname$! KZend_Gdata_Gapps_Extension_Name%  MZend_Gdata_Gapps_Extension_Login) UZend_Gdata_Gapps_Extension_EmailList 9Zend_Gdata_Gapps_Error- ]Zend_Gdata_Gapps_EmailListRecipientQuery, [Zend_Gdata_Gapps_EmailListRecipientFeed- ]Zend_Gdata_Gapps_EmailListRecipientEntry$ KZend_Gdata_Gapps_EmailListQuery# IZend_Gdata_Gapps_EmailListFeed$ KZend_Gdata_Gapps_EmailListEntry +Zend_Gdata_Feed 5Zend_Gdata_Extension =Zend_Gdata_Extension_Who AZend_Gdata_Extension_Where ?Zend_Gdata_Extension_When$ KZend_Gdata_Extension_Visibility& OZend_Gdata_Extension_Transparency" GZend_Gdata_Extension_Reminder- ]Zend_Gdata_Extension_RecurrenceException$ KZend_Gdata_Extension_Recurrence  CZend_Gdata_Extension_Rating' QZend_Gdata_Extension_OriginalEvent0 cZend_Gdata_Extension_OpenSearchTotalResults.
 _Zend_Gdata_Extension_OpenSearchStartIndex0	 cZend_Gdata_Extension_OpenSearchItemsPerPage" GZend_Gdata_Extension_FeedLink* WZend_Gdata_Extension_ExtendedProperty% MZend_Gdata_Extension_EventStatus# IZend_Gdata_Extension_EntryLink" GZend_Gdata_Extension_Comments& OZend_Gdata_Extension_AttendeeType( SZend_Gdata_Extension_AttendeeStatus +Zend_Gdata_Exif  5Zend_Gdata_Exif_Feed# IZend_Gdata_Exif_Extension_Time#~ IZend_Gdata_Exif_Extension_Tags$} KZend_Gdata_Exif_Extension_Model#| IZend_Gdata_Exif_Extension_Make"{ GZend_Gdata_Exif_Extension_Iso,z [Zend_Gdata_Exif_Extension_ImageUniqueId$y KZend_Gdata_Exif_Extension_FStop*x WZend_Gdata_Exif_Extension_FocalLength$w KZend_Gdata_Exif_Extension_Flash'v QZend_Gdata_Exif_Extension_Exposure'u QZend_Gdata_Exif_Extension_Distancet 7Zend_Gdata_Exif_Entrys -Zend_Gdata_Entryr 7Zend_Gdata_DublinCore*q WZend_Gdata_DublinCore_Extension_Title,p [Zend_Gdata_DublinCore_Extension_Subject+o YZend_Gdata_DublinCore_Extension_Rights.n _Zend_Gdata_DublinCore_Extension_Publisher-m ]Zend_Gdata_DublinCore_Extension_Language/l aZend_Gdata_DublinCore_Extension_Identifier+k YZend_Gdata_DublinCore_Extension_Format0j cZend_Gdata_DublinCore_Extension_Description)i UZend_Gdata_DublinCore_Extension_Date,h [Zend_Gdata_DublinCore_Extension_Creatorg +Zend_Gdata_Docsf 7Zend_Gdata_Docs_Query%e MZend_Gdata_Docs_DocumentListFeed&d OZend_Gdata_Docs_DocumentListEntryc 9Zend_Gdata_ClientLoginb 3Zend_Gdata_Calendar!a EZend_Gdata_Calendar_ListFeed"` GZend_Gdata_Calendar_ListEntry-_ ]Zend_Gdata_Calendar_Extension_WebContent+^ YZend_Gdata_Calendar_Extension_Timezone9] uZend_Gdata_Calendar_Extension_SendEventNotifications+\ YZend_Gdata_Calendar_Extension_Selected+[ YZend_Gdata_Calendar_Extension_QuickAdd'Z QZend_Gdata_Calendar_Extension_Link)Y UZend_Gdata_Calendar_Extension_Hidden   _  yS.{S7 V6a0 k=



M
 					f	D	(	h<O$qDU&tK\9qH]*                   % MZend_Gdata_Spreadsheets_ListFeed& OZend_Gdata_Spreadsheets_ListEntry/ aZend_Gdata_Spreadsheets_Extension_RowCount- ]Zend_Gdata_Spreadsheets_Extension_Custom/ aZend_Gdata_Spreadsheets_Extension_ColCount+ YZend_Gdata_Spreadsheets_Extension_Cell* WZend_Gdata_Spreadsheets_DocumentQuery& OZend_Gdata_Spreadsheets_CellQuery% MZend_Gdata_Spreadsheets_CellFeed& OZend_Gdata_Spreadsheets_CellEntry -Zend_Gdata_Query /Zend_Gdata_Photos  CZend_Gdata_Photos_UserQuery AZend_Gdata_Photos_UserFeed 
 CZend_Gdata_Photos_UserEntry	 AZend_Gdata_Photos_TagEntry! EZend_Gdata_Photos_PhotoQuery  CZend_Gdata_Photos_PhotoFeed! EZend_Gdata_Photos_PhotoEntry& OZend_Gdata_Photos_Extension_Width' QZend_Gdata_Photos_Extension_Weight( SZend_Gdata_Photos_Extension_Version% MZend_Gdata_Photos_Extension_User* WZend_Gdata_Photos_Extension_Timestamp*  WZend_Gdata_Photos_Extension_Thumbnail% MZend_Gdata_Photos_Extension_Size)~ UZend_Gdata_Photos_Extension_Rotation+} YZend_Gdata_Photos_Extension_QuotaLimit-| ]Zend_Gdata_Photos_Extension_QuotaCurrent){ UZend_Gdata_Photos_Extension_Position(z SZend_Gdata_Photos_Extension_PhotoId3y iZend_Gdata_Photos_Extension_NumPhotosRemaining*x WZend_Gdata_Photos_Extension_NumPhotos)w UZend_Gdata_Photos_Extension_Nickname%v MZend_Gdata_Photos_Extension_Name2u gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum)t UZend_Gdata_Photos_Extension_Location#s IZend_Gdata_Photos_Extension_Id'r QZend_Gdata_Photos_Extension_Height2q gZend_Gdata_Photos_Extension_CommentingEnabled-p ]Zend_Gdata_Photos_Extension_CommentCount'o QZend_Gdata_Photos_Extension_Client)n UZend_Gdata_Photos_Extension_Checksum*m WZend_Gdata_Photos_Extension_BytesUsed(l SZend_Gdata_Photos_Extension_AlbumId'k QZend_Gdata_Photos_Extension_Access#j IZend_Gdata_Photos_CommentEntry!i EZend_Gdata_Photos_AlbumQuery h CZend_Gdata_Photos_AlbumFeed!g EZend_Gdata_Photos_AlbumEntryf 3Zend_Gdata_MimeFilee ?Zend_Gdata_MimeBodyStringd AZend_Gdata_MediaMimeStreamc -Zend_Gdata_Mediab 7Zend_Gdata_Media_Feed*a WZend_Gdata_Media_Extension_MediaTitle.` _Zend_Gdata_Media_Extension_MediaThumbnail)_ UZend_Gdata_Media_Extension_MediaText0^ cZend_Gdata_Media_Extension_MediaRestriction+] YZend_Gdata_Media_Extension_MediaRating+\ YZend_Gdata_Media_Extension_MediaPlayer-[ ]Zend_Gdata_Media_Extension_MediaKeywords)Z UZend_Gdata_Media_Extension_MediaHash*Y WZend_Gdata_Media_Extension_MediaGroup0X cZend_Gdata_Media_Extension_MediaDescription+W YZend_Gdata_Media_Extension_MediaCredit.V _Zend_Gdata_Media_Extension_MediaCopyright,U [Zend_Gdata_Media_Extension_MediaContent-T ]Zend_Gdata_Media_Extension_MediaCategoryS 9Zend_Gdata_Media_EntryR AZend_Gdata_Kind_EventEntryQ 7Zend_Gdata_HttpClient*P WZend_Gdata_HttpAdapterStreamingSocket)O UZend_Gdata_HttpAdapterStreamingProxyN /Zend_Gdata_HealthM ;Zend_Gdata_Health_Query&L OZend_Gdata_Health_ProfileListFeed'K QZend_Gdata_Health_ProfileListEntry"J GZend_Gdata_Health_ProfileFeed#I IZend_Gdata_Health_ProfileEntry$H KZend_Gdata_Health_Extension_CcrG )Zend_Gdata_GeoF 3Zend_Gdata_Geo_Feed$E KZend_Gdata_Geo_Extension_GmlPos&D OZend_Gdata_Geo_Extension_GmlPoint)C UZend_Gdata_Geo_Extension_GeoRssWhereB 5Zend_Gdata_Geo_EntryA -Zend_Gdata_Gbase"@ GZend_Gdata_Gbase_SnippetQuery!? EZend_Gdata_Gbase_SnippetFeed"> GZend_Gdata_Gbase_SnippetEntry= 9Zend_Gdata_Gbase_Query< AZend_Gdata_Gbase_ItemQuery; ?Zend_Gdata_Gbase_ItemFeed: AZend_Gdata_Gbase_ItemEntry   \  uFX0	[.qEd2


t
I
				[	.sBd6j=]1lAw[?oD$ p:           3t iZend_Http_UserAgent_Features_Adapter_TeraWurfl5s mZend_Http_UserAgent_Features_Adapter_DeviceAtlas2r gZend_Http_UserAgent_Features_Adapter_Browscap"q GZend_Http_UserAgent_Exceptionp ?Zend_Http_UserAgent_Email o CZend_Http_UserAgent_Desktop n CZend_Http_UserAgent_Console m CZend_Http_UserAgent_Checkerl ;Zend_Http_UserAgent_Bot'k QZend_Http_UserAgent_AbstractDevicej 1Zend_Http_Responsei ?Zend_Http_Response_Streamh AZend_Http_Header_SetCookie0g cZend_Http_Header_Exception_RuntimeException8f sZend_Http_Header_Exception_InvalidArgumentExceptione 3Zend_Http_Exceptiond 3Zend_Http_CookieJarc -Zend_Http_Cookieb -Zend_Http_Clienta AZend_Http_Client_Exception"` GZend_Http_Client_Adapter_Test$_ KZend_Http_Client_Adapter_Socket#^ IZend_Http_Client_Adapter_Proxy'] QZend_Http_Client_Adapter_Exception"\ GZend_Http_Client_Adapter_Curl[ !Zend_GdataZ 1Zend_Gdata_YouTube"Y GZend_Gdata_YouTube_VideoQuery!X EZend_Gdata_YouTube_VideoFeed"W GZend_Gdata_YouTube_VideoEntry(V SZend_Gdata_YouTube_UserProfileEntry(U SZend_Gdata_YouTube_SubscriptionFeed)T UZend_Gdata_YouTube_SubscriptionEntry)S UZend_Gdata_YouTube_PlaylistVideoFeed*R WZend_Gdata_YouTube_PlaylistVideoEntry(Q SZend_Gdata_YouTube_PlaylistListFeed)P UZend_Gdata_YouTube_PlaylistListEntry"O GZend_Gdata_YouTube_MediaEntry!N EZend_Gdata_YouTube_InboxFeed"M GZend_Gdata_YouTube_InboxEntry)L UZend_Gdata_YouTube_Extension_VideoId*K WZend_Gdata_YouTube_Extension_Username*J WZend_Gdata_YouTube_Extension_Uploaded'I QZend_Gdata_YouTube_Extension_Token(H SZend_Gdata_YouTube_Extension_Status,G [Zend_Gdata_YouTube_Extension_Statistics'F QZend_Gdata_YouTube_Extension_State(E SZend_Gdata_YouTube_Extension_School-D ]Zend_Gdata_YouTube_Extension_ReleaseDate.C _Zend_Gdata_YouTube_Extension_Relationship*B WZend_Gdata_YouTube_Extension_Recorded&A OZend_Gdata_YouTube_Extension_Racy-@ ]Zend_Gdata_YouTube_Extension_QueryString)? UZend_Gdata_YouTube_Extension_Private*> WZend_Gdata_YouTube_Extension_Position/= aZend_Gdata_YouTube_Extension_PlaylistTitle,< [Zend_Gdata_YouTube_Extension_PlaylistId,; [Zend_Gdata_YouTube_Extension_Occupation): UZend_Gdata_YouTube_Extension_NoEmbed'9 QZend_Gdata_YouTube_Extension_Music(8 SZend_Gdata_YouTube_Extension_Movies-7 ]Zend_Gdata_YouTube_Extension_MediaRating,6 [Zend_Gdata_YouTube_Extension_MediaGroup-5 ]Zend_Gdata_YouTube_Extension_MediaCredit.4 _Zend_Gdata_YouTube_Extension_MediaContent*3 WZend_Gdata_YouTube_Extension_Location&2 OZend_Gdata_YouTube_Extension_Link*1 WZend_Gdata_YouTube_Extension_LastName*0 WZend_Gdata_YouTube_Extension_Hometown)/ UZend_Gdata_YouTube_Extension_Hobbies(. SZend_Gdata_YouTube_Extension_Gender+- YZend_Gdata_YouTube_Extension_FirstName*, WZend_Gdata_YouTube_Extension_Duration-+ ]Zend_Gdata_YouTube_Extension_Description+* YZend_Gdata_YouTube_Extension_CountHint)) UZend_Gdata_YouTube_Extension_Control)( UZend_Gdata_YouTube_Extension_Company'' QZend_Gdata_YouTube_Extension_Books%& MZend_Gdata_YouTube_Extension_Age)% UZend_Gdata_YouTube_Extension_AboutMe#$ IZend_Gdata_YouTube_ContactFeed$# KZend_Gdata_YouTube_ContactEntry#" IZend_Gdata_YouTube_CommentFeed$! KZend_Gdata_YouTube_CommentEntry$  KZend_Gdata_YouTube_ActivityFeed% MZend_Gdata_YouTube_ActivityEntry ;Zend_Gdata_Spreadsheets* WZend_Gdata_Spreadsheets_WorksheetFeed+ YZend_Gdata_Spreadsheets_WorksheetEntry, [Zend_Gdata_Spreadsheets_SpreadsheetFeed- ]Zend_Gdata_Spreadsheets_SpreadsheetEntry& OZend_Gdata_Spreadsheets_ListQuery   r  iG&yS7oI(r>xR6!




d
G
+
					i	:	_*sU>,aC~`E"xW6rR5lM3 wJ         'f QZend_Mail_Protocol_Smtp_Auth_Plain'e QZend_Mail_Protocol_Smtp_Auth_Login)d UZend_Mail_Protocol_Smtp_Auth_Crammd5c ;Zend_Mail_Protocol_Pop3b ;Zend_Mail_Protocol_Imap!a EZend_Mail_Protocol_Exception ` CZend_Mail_Protocol_Abstract_ )Zend_Mail_Part^ 3Zend_Mail_Part_File] /Zend_Mail_Message\ 9Zend_Mail_Message_File[ 3Zend_Mail_ExceptionZ Zend_Log Y CZend_Log_Writer_ZendMonitorX 9Zend_Log_Writer_SyslogW 9Zend_Log_Writer_StreamV 5Zend_Log_Writer_NullU 5Zend_Log_Writer_MockT 5Zend_Log_Writer_MailS ;Zend_Log_Writer_FirebugR 1Zend_Log_Writer_DbQ =Zend_Log_Writer_AbstractP 9Zend_Log_Formatter_XmlO ?Zend_Log_Formatter_SimpleN AZend_Log_Formatter_Firebug M CZend_Log_Formatter_AbstractL =Zend_Log_Filter_SuppressK =Zend_Log_Filter_PriorityJ ;Zend_Log_Filter_MessageI =Zend_Log_Filter_AbstractH 1Zend_Log_ExceptionG #Zend_LocaleF -Zend_Locale_MathE =Zend_Locale_Math_PhpMathD AZend_Locale_Math_ExceptionC 1Zend_Locale_FormatB 7Zend_Locale_ExceptionA -Zend_Locale_Data!@ EZend_Locale_Data_Translation? #Zend_Loader#> IZend_Loader_StandardAutoloader= =Zend_Loader_PluginLoader'< QZend_Loader_PluginLoader_Exception; 7Zend_Loader_Exception3: iZend_Loader_Exception_InvalidArgumentException#9 IZend_Loader_ClassMapAutoloader"8 GZend_Loader_AutoloaderFactory7 9Zend_Loader_Autoloader$6 KZend_Loader_Autoloader_Resource5 Zend_Ldap4 )Zend_Ldap_Node3 7Zend_Ldap_Node_Schema#2 IZend_Ldap_Node_Schema_OpenLdap/1 aZend_Ldap_Node_Schema_ObjectClass_OpenLdap60 oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectory/ AZend_Ldap_Node_Schema_Item1. eZend_Ldap_Node_Schema_AttributeType_OpenLdap8- sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory*, WZend_Ldap_Node_Schema_ActiveDirectory+ 9Zend_Ldap_Node_RootDse$* KZend_Ldap_Node_RootDse_OpenLdap&) OZend_Ldap_Node_RootDse_eDirectory+( YZend_Ldap_Node_RootDse_ActiveDirectory' ?Zend_Ldap_Node_Collection$& KZend_Ldap_Node_ChildrenIterator% ;Zend_Ldap_Node_Abstract$ 9Zend_Ldap_Ldif_Encoder# -Zend_Ldap_Filter" ;Zend_Ldap_Filter_String! 3Zend_Ldap_Filter_Or  5Zend_Ldap_Filter_Not 7Zend_Ldap_Filter_Mask =Zend_Ldap_Filter_Logical AZend_Ldap_Filter_Exception 5Zend_Ldap_Filter_And ?Zend_Ldap_Filter_Abstract 3Zend_Ldap_Exception %Zend_Ldap_Dn 3Zend_Ldap_Converter" GZend_Ldap_Converter_Exception 5Zend_Ldap_Collection* WZend_Ldap_Collection_Iterator_Default 3Zend_Ldap_Attribute #Zend_Layout 7Zend_Layout_Exception) UZend_Layout_Controller_Plugin_Layout0 cZend_Layout_Controller_Action_Helper_Layout Zend_Json -Zend_Json_Server 5Zend_Json_Server_Smd! EZend_Json_Server_Smd_Service ?Zend_Json_Server_Response#
 IZend_Json_Server_Response_Http	 =Zend_Json_Server_Request" GZend_Json_Server_Request_Http AZend_Json_Server_Exception 9Zend_Json_Server_Error 9Zend_Json_Server_Cache )Zend_Json_Expr 3Zend_Json_Exception /Zend_Json_Encoder /Zend_Json_Decoder  3Zend_Http_UserAgent" GZend_Http_UserAgent_Validator~ =Zend_Http_UserAgent_Text(} SZend_Http_UserAgent_Storage_Session.| _Zend_Http_UserAgent_Storage_NonPersistent*{ WZend_Http_UserAgent_Storage_Exceptionz =Zend_Http_UserAgent_Spamy ?Zend_Http_UserAgent_Probe x CZend_Http_UserAgent_Offlinew AZend_Http_UserAgent_Mobilev =Zend_Http_UserAgent_Feed+u YZend_Http_UserAgent_Features_Exception   q pJ)
e@a<rL*pU;




|
`
A
"
					j	K	/	]4nP4pN0\,sV,a5_> {W2                              &W OZend_Oauth_Http_UserAuthorization!V EZend_Oauth_Http_RequestToken U CZend_Oauth_Http_AccessTokenT 5Zend_Oauth_ExceptionS 3Zend_Oauth_ConsumerR /Zend_Oauth_ConfigQ /Zend_Oauth_ClientP +Zend_NavigationO 5Zend_Navigation_PageN =Zend_Navigation_Page_UriM =Zend_Navigation_Page_MvcL ?Zend_Navigation_ExceptionK ?Zend_Navigation_Container$J KZend_Mobile_Push_Test_ApnsProxy"I GZend_Mobile_Push_Response_GcmH 7Zend_Mobile_Push_Mpns"G GZend_Mobile_Push_Message_Mpns(F SZend_Mobile_Push_Message_Mpns_Toast'E QZend_Mobile_Push_Message_Mpns_Tile&D OZend_Mobile_Push_Message_Mpns_Raw!C EZend_Mobile_Push_Message_Gcm'B QZend_Mobile_Push_Message_Exception"A GZend_Mobile_Push_Message_Apns&@ OZend_Mobile_Push_Message_Abstract? 5Zend_Mobile_Push_Gcm> AZend_Mobile_Push_Exception1= eZend_Mobile_Push_Exception_ServerUnavailable-< ]Zend_Mobile_Push_Exception_QuotaExceeded,; [Zend_Mobile_Push_Exception_InvalidTopic,: [Zend_Mobile_Push_Exception_InvalidToken39 iZend_Mobile_Push_Exception_InvalidRegistration.8 _Zend_Mobile_Push_Exception_InvalidPayload07 cZend_Mobile_Push_Exception_InvalidAuthToken36 iZend_Mobile_Push_Exception_DeviceQuotaExceeded5 7Zend_Mobile_Push_Apns4 ?Zend_Mobile_Push_Abstract3 7Zend_Mobile_Exception2 Zend_Mime1 )Zend_Mime_Part0 /Zend_Mime_Message/ 3Zend_Mime_Exception. -Zend_Mime_Decode- #Zend_Memory, /Zend_Memory_Value+ 3Zend_Memory_Manager* 7Zend_Memory_Exception) 7Zend_Memory_Container"( GZend_Memory_Container_Movable!' EZend_Memory_Container_Locked!& EZend_Memory_AccessController% 3Zend_Measure_Weight$ 3Zend_Measure_Volume%# MZend_Measure_Viscosity_Kinematic#" IZend_Measure_Viscosity_Dynamic! 3Zend_Measure_Torque  /Zend_Measure_Time =Zend_Measure_Temperature 1Zend_Measure_Speed 7Zend_Measure_Pressure 1Zend_Measure_Power 3Zend_Measure_Number 9Zend_Measure_Lightness 3Zend_Measure_Length ?Zend_Measure_Illumination 9Zend_Measure_Frequency 1Zend_Measure_Force =Zend_Measure_Flow_Volume 9Zend_Measure_Flow_Mole 9Zend_Measure_Flow_Mass 9Zend_Measure_Exception 3Zend_Measure_Energy 5Zend_Measure_Density 5Zend_Measure_Current  CZend_Measure_Cooking_Weight  CZend_Measure_Cooking_Volume =Zend_Measure_Capacitance 3Zend_Measure_Binary
 /Zend_Measure_Area	 1Zend_Measure_Angle ?Zend_Measure_Acceleration 7Zend_Measure_Abstract #Zend_Markup 7Zend_Markup_TokenList /Zend_Markup_Token* WZend_Markup_Renderer_RendererAbstract ?Zend_Markup_Renderer_Html" GZend_Markup_Renderer_Html_Url#  IZend_Markup_Renderer_Html_List" GZend_Markup_Renderer_Html_Img+~ YZend_Markup_Renderer_Html_HtmlAbstract#} IZend_Markup_Renderer_Html_Code#| IZend_Markup_Renderer_Exception!{ EZend_Markup_Parser_Exceptionz ?Zend_Markup_Parser_Bbcodey 7Zend_Markup_Exceptionx Zend_Mailw =Zend_Mail_Transport_Smtp!v EZend_Mail_Transport_Sendmailu =Zend_Mail_Transport_File"t GZend_Mail_Transport_Exception!s EZend_Mail_Transport_Abstractr /Zend_Mail_Storage'q QZend_Mail_Storage_Writable_Maildirp 9Zend_Mail_Storage_Pop3o 9Zend_Mail_Storage_Mboxn ?Zend_Mail_Storage_Maildirm 9Zend_Mail_Storage_Imapl =Zend_Mail_Storage_Folder"k GZend_Mail_Storage_Folder_Mbox%j MZend_Mail_Storage_Folder_Maildir i CZend_Mail_Storage_Exceptionh AZend_Mail_Storage_Abstractg ;Zend_Mail_Protocol_Smtp   n
 ^/mH+}S1 ^:e4 




a
>

				{	]	:	~]:wR/hGV+d@"qH%_D~b7
                                      )E UZend_Pdf_FileParserDataSource_String'D QZend_Pdf_FileParserDataSource_FileC 3Zend_Pdf_FileParserB ?Zend_Pdf_FileParser_Image"A GZend_Pdf_FileParser_Image_Png@ =Zend_Pdf_FileParser_Font&? OZend_Pdf_FileParser_Font_OpenType/> aZend_Pdf_FileParser_Font_OpenType_TrueType= 1Zend_Pdf_Exception< ;Zend_Pdf_ElementFactory"; GZend_Pdf_ElementFactory_Proxy: -Zend_Pdf_Element9 ;Zend_Pdf_Element_String#8 IZend_Pdf_Element_String_Binary7 ;Zend_Pdf_Element_Stream6 AZend_Pdf_Element_Reference%5 MZend_Pdf_Element_Reference_Table'4 QZend_Pdf_Element_Reference_Context3 ;Zend_Pdf_Element_Object#2 IZend_Pdf_Element_Object_Stream1 =Zend_Pdf_Element_Numeric0 7Zend_Pdf_Element_Null/ 7Zend_Pdf_Element_Name . CZend_Pdf_Element_Dictionary- =Zend_Pdf_Element_Boolean, 9Zend_Pdf_Element_Array+ 5Zend_Pdf_Destination* ?Zend_Pdf_Destination_Zoom!) EZend_Pdf_Destination_Unknown( AZend_Pdf_Destination_Named'' QZend_Pdf_Destination_FitVertically&& OZend_Pdf_Destination_FitRectangle)% UZend_Pdf_Destination_FitHorizontally2$ gZend_Pdf_Destination_FitBoundingBoxVertically4# kZend_Pdf_Destination_FitBoundingBoxHorizontally(" SZend_Pdf_Destination_FitBoundingBox! =Zend_Pdf_Destination_Fit"  GZend_Pdf_Destination_Explicit )Zend_Pdf_Color 1Zend_Pdf_Color_Rgb 3Zend_Pdf_Color_Html =Zend_Pdf_Color_GrayScale 3Zend_Pdf_Color_Cmyk 'Zend_Pdf_Cmap AZend_Pdf_Cmap_TrimmedTable! EZend_Pdf_Cmap_SegmentToDelta AZend_Pdf_Cmap_ByteEncoding& OZend_Pdf_Cmap_ByteEncoding_Static +Zend_Pdf_Canvas =Zend_Pdf_Canvas_Abstract 3Zend_Pdf_Annotation =Zend_Pdf_Annotation_Text AZend_Pdf_Annotation_Markup =Zend_Pdf_Annotation_Link' QZend_Pdf_Annotation_FileAttachment +Zend_Pdf_Action 3Zend_Pdf_Action_URI ;Zend_Pdf_Action_Unknown 7Zend_Pdf_Action_Trans
 9Zend_Pdf_Action_Thread	 AZend_Pdf_Action_SubmitForm 7Zend_Pdf_Action_Sound  CZend_Pdf_Action_SetOCGState ?Zend_Pdf_Action_ResetForm ?Zend_Pdf_Action_Rendition 7Zend_Pdf_Action_Named 7Zend_Pdf_Action_Movie 9Zend_Pdf_Action_Launch AZend_Pdf_Action_JavaScript  AZend_Pdf_Action_ImportData 5Zend_Pdf_Action_Hide~ 7Zend_Pdf_Action_GoToR} 7Zend_Pdf_Action_GoToE| AZend_Pdf_Action_GoTo3DView{ 5Zend_Pdf_Action_GoToz )Zend_Paginator-y ]Zend_Paginator_SerializableLimitIterator*x WZend_Paginator_ScrollingStyle_Sliding*w WZend_Paginator_ScrollingStyle_Jumping*v WZend_Paginator_ScrollingStyle_Elastic&u OZend_Paginator_ScrollingStyle_Allt =Zend_Paginator_Exception s CZend_Paginator_Adapter_Null$r KZend_Paginator_Adapter_Iterator)q UZend_Paginator_Adapter_DbTableSelect$p KZend_Paginator_Adapter_DbSelect!o EZend_Paginator_Adapter_Arrayn #Zend_OpenIdm 5Zend_OpenId_Providerl ?Zend_OpenId_Provider_User&k OZend_OpenId_Provider_User_Session!j EZend_OpenId_Provider_Storage&i OZend_OpenId_Provider_Storage_Fileh 7Zend_OpenId_Extensiong AZend_OpenId_Extension_Sregf 7Zend_OpenId_Exceptione 5Zend_OpenId_Consumer!d EZend_OpenId_Consumer_Storage&c OZend_OpenId_Consumer_Storage_Fileb !Zend_Oautha -Zend_Oauth_Token` =Zend_Oauth_Token_Request'_ QZend_Oauth_Token_AuthorizedRequest^ ;Zend_Oauth_Token_Access+] YZend_Oauth_Signature_SignatureAbstract\ =Zend_Oauth_Signature_Rsa#[ IZend_Oauth_Signature_PlaintextZ ?Zend_Oauth_Signature_HmacY +Zend_Oauth_HttpX ;Zend_Oauth_Http_Utility   f  oG#y`J2X/g,s6


{
B
			R	#lH#kS0mEqP*wZ6wY.x[:uU<                        + +Zend_Rest_Route* 3Zend_Rest_Exception) 5Zend_Rest_Controller( -Zend_Rest_Client' ;Zend_Rest_Client_Result&& OZend_Rest_Client_Result_Exception% AZend_Rest_Client_Exception$ 'Zend_Registry# =Zend_Reflection_Property" ?Zend_Reflection_Parameter! 9Zend_Reflection_Method  =Zend_Reflection_Function 5Zend_Reflection_File ?Zend_Reflection_Extension ?Zend_Reflection_Exception =Zend_Reflection_Docblock! EZend_Reflection_Docblock_Tag( SZend_Reflection_Docblock_Tag_Return' QZend_Reflection_Docblock_Tag_Param 7Zend_Reflection_Class !Zend_Queue 9Zend_Queue_Stomp_Frame ;Zend_Queue_Stomp_Client' QZend_Queue_Stomp_Client_Connection 1Zend_Queue_Message# IZend_Queue_Message_PlatformJob  CZend_Queue_Message_Iterator 5Zend_Queue_Exception( SZend_Queue_Adapter_PlatformJobQueue ;Zend_Queue_Adapter_Null! EZend_Queue_Adapter_Memcacheq 7Zend_Queue_Adapter_Db  CZend_Queue_Adapter_Db_Queue"
 GZend_Queue_Adapter_Db_Message	 =Zend_Queue_Adapter_Array' QZend_Queue_Adapter_AdapterAbstract  CZend_Queue_Adapter_Activemq -Zend_ProgressBar AZend_ProgressBar_Exception =Zend_ProgressBar_Adapter$ KZend_ProgressBar_Adapter_JsPush$ KZend_ProgressBar_Adapter_JsPull' QZend_ProgressBar_Adapter_Exception%  MZend_ProgressBar_Adapter_Console Zend_Pdf!~ EZend_Pdf_UpdateInfoContainer} -Zend_Pdf_Trailer| ;Zend_Pdf_Trailer_Keeper{ AZend_Pdf_Trailer_Generatorz +Zend_Pdf_Targety )Zend_Pdf_Stylex 7Zend_Pdf_StringParserw /Zend_Pdf_Resourcev ?Zend_Pdf_Resource_Unified#u IZend_Pdf_Resource_ImageFactoryt ;Zend_Pdf_Resource_Image!s EZend_Pdf_Resource_Image_Tiff r CZend_Pdf_Resource_Image_Png!q EZend_Pdf_Resource_Image_Jpeg$p KZend_Pdf_Resource_GraphicsStateo 9Zend_Pdf_Resource_Font!n EZend_Pdf_Resource_Font_Type0"m GZend_Pdf_Resource_Font_Simple+l YZend_Pdf_Resource_Font_Simple_Standard8k sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats6j oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman7i qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic;h yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic5g mZend_Pdf_Resource_Font_Simple_Standard_TimesBold2f gZend_Pdf_Resource_Font_Simple_Standard_Symbol<e {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueAd Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique9c uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold5b mZend_Pdf_Resource_Font_Simple_Standard_Helvetica:a wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique>` Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique7_ qZend_Pdf_Resource_Font_Simple_Standard_CourierBold3^ iZend_Pdf_Resource_Font_Simple_Standard_Courier)] UZend_Pdf_Resource_Font_Simple_Parsed2\ gZend_Pdf_Resource_Font_Simple_Parsed_TrueType*[ WZend_Pdf_Resource_Font_FontDescriptor%Z MZend_Pdf_Resource_Font_Extracted#Y IZend_Pdf_Resource_Font_CidFont,X [Zend_Pdf_Resource_Font_CidFont_TrueType W CZend_Pdf_Resource_Extractor$V KZend_Pdf_Resource_ContentStream3U iZend_Pdf_RecursivelyIteratableObjectsContainerT +Zend_Pdf_ParserS 'Zend_Pdf_PageR -Zend_Pdf_OutlineQ ;Zend_Pdf_Outline_LoadedP =Zend_Pdf_Outline_CreatedO /Zend_Pdf_NameTreeN )Zend_Pdf_ImageM 'Zend_Pdf_FontL ?Zend_Pdf_Filter_RunLength K CZend_Pdf_Filter_Compression$J KZend_Pdf_Filter_Compression_Lzw&I OZend_Pdf_Filter_Compression_FlateH =Zend_Pdf_Filter_AsciiHexG ;Zend_Pdf_Filter_Ascii85"F GZend_Pdf_FileParserDataSource   P  \#PZ-Pf:



~
_
:
				U	\( }T3a3`#W&b5
zCT!                             *{ WZend_Search_Lucene_Search_Weight_Term,z [Zend_Search_Lucene_Search_Weight_Phrase/y aZend_Search_Lucene_Search_Weight_MultiTerm+x YZend_Search_Lucene_Search_Weight_Empty-w ]Zend_Search_Lucene_Search_Weight_Boolean)v UZend_Search_Lucene_Search_Similarity1u eZend_Search_Lucene_Search_Similarity_Default)t UZend_Search_Lucene_Search_QueryToken3s iZend_Search_Lucene_Search_QueryParserException1r eZend_Search_Lucene_Search_QueryParserContext*q WZend_Search_Lucene_Search_QueryParser)p UZend_Search_Lucene_Search_QueryLexer'o QZend_Search_Lucene_Search_QueryHit)n UZend_Search_Lucene_Search_QueryEntry.m _Zend_Search_Lucene_Search_QueryEntry_Term2l gZend_Search_Lucene_Search_QueryEntry_Subquery0k cZend_Search_Lucene_Search_QueryEntry_Phrase$j KZend_Search_Lucene_Search_Query-i ]Zend_Search_Lucene_Search_Query_Wildcard)h UZend_Search_Lucene_Search_Query_Term*g WZend_Search_Lucene_Search_Query_Range2f gZend_Search_Lucene_Search_Query_Preprocessing7e qZend_Search_Lucene_Search_Query_Preprocessing_Term9d uZend_Search_Lucene_Search_Query_Preprocessing_Phrase8c sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy+b YZend_Search_Lucene_Search_Query_Phrase.a _Zend_Search_Lucene_Search_Query_MultiTerm2` gZend_Search_Lucene_Search_Query_Insignificant*_ WZend_Search_Lucene_Search_Query_Fuzzy*^ WZend_Search_Lucene_Search_Query_Empty,] [Zend_Search_Lucene_Search_Query_Boolean2\ gZend_Search_Lucene_Search_Highlighter_Default:[ wZend_Search_Lucene_Search_BooleanExpressionRecognizerZ =Zend_Search_Lucene_Proxy%Y MZend_Search_Lucene_PriorityQueue/X aZend_Search_Lucene_Interface_MultiSearcher%W MZend_Search_Lucene_MultiSearcher#V IZend_Search_Lucene_LockManager$U KZend_Search_Lucene_Index_Writer0T cZend_Search_Lucene_Index_TermsPriorityQueue&S OZend_Search_Lucene_Index_TermInfo"R GZend_Search_Lucene_Index_Term+Q YZend_Search_Lucene_Index_SegmentWriter8P sZend_Search_Lucene_Index_SegmentWriter_StreamWriter:O wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter+N YZend_Search_Lucene_Index_SegmentMerger)M UZend_Search_Lucene_Index_SegmentInfo'L QZend_Search_Lucene_Index_FieldInfo(K SZend_Search_Lucene_Index_DocsFilter.J _Zend_Search_Lucene_Index_DictionaryLoader!I EZend_Search_Lucene_FSMActionH 9Zend_Search_Lucene_FSMG =Zend_Search_Lucene_Field!F EZend_Search_Lucene_Exception E CZend_Search_Lucene_Document%D MZend_Search_Lucene_Document_Xlsx%C MZend_Search_Lucene_Document_Pptx(B SZend_Search_Lucene_Document_OpenXml%A MZend_Search_Lucene_Document_Html*@ WZend_Search_Lucene_Document_Exception%? MZend_Search_Lucene_Document_Docx,> [Zend_Search_Lucene_Analysis_TokenFilter6= oZend_Search_Lucene_Analysis_TokenFilter_StopWords7< qZend_Search_Lucene_Analysis_TokenFilter_ShortWords:; wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf86: oZend_Search_Lucene_Analysis_TokenFilter_LowerCase&9 OZend_Search_Lucene_Analysis_Token)8 UZend_Search_Lucene_Analysis_Analyzer07 cZend_Search_Lucene_Analysis_Analyzer_Common86 sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumI5 Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive54 mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8F3 Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive82 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumI1 Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive50 mZend_Search_Lucene_Analysis_Analyzer_Common_TextF/ Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive. 7Zend_Search_Exception- -Zend_Rest_Server, AZend_Rest_Server_Exception   _  r?iD|O*|X2iA



z
[
=
 				p	B	c8h7gGfA`1[;\=R!                     CZ Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount-Y ]Zend_Service_DeveloperGarden_Client_Soap2X gZend_Service_DeveloperGarden_Client_Exception7W qZend_Service_DeveloperGarden_Client_ClientAbstract1V eZend_Service_DeveloperGarden_BaseUserServiceAU Zend_Service_DeveloperGarden_BaseUserService_AccountBalanceT 9Zend_Service_Delicious&S OZend_Service_Delicious_SimplePost$R KZend_Service_Delicious_PostList Q CZend_Service_Delicious_Post%P MZend_Service_Delicious_Exception O CZend_Service_AudioscrobblerN 3Zend_Service_AmazonM ;Zend_Service_Amazon_Sqs&L OZend_Service_Amazon_Sqs_Exception!K EZend_Service_Amazon_SimpleDb*J WZend_Service_Amazon_SimpleDb_Response&I OZend_Service_Amazon_SimpleDb_Page+H YZend_Service_Amazon_SimpleDb_Exception+G YZend_Service_Amazon_SimpleDb_Attribute'F QZend_Service_Amazon_SimilarProductE 9Zend_Service_Amazon_S3"D GZend_Service_Amazon_S3_Stream%C MZend_Service_Amazon_S3_Exception"B GZend_Service_Amazon_ResultSetA ?Zend_Service_Amazon_Query!@ EZend_Service_Amazon_OfferSet? ?Zend_Service_Amazon_Offer&> OZend_Service_Amazon_ListmaniaList= =Zend_Service_Amazon_Item< ?Zend_Service_Amazon_Image"; GZend_Service_Amazon_Exception(: SZend_Service_Amazon_EditorialReview9 ;Zend_Service_Amazon_Ec2+8 YZend_Service_Amazon_Ec2_Securitygroups%7 MZend_Service_Amazon_Ec2_Response#6 IZend_Service_Amazon_Ec2_Region$5 KZend_Service_Amazon_Ec2_Keypair%4 MZend_Service_Amazon_Ec2_Instance-3 ]Zend_Service_Amazon_Ec2_Instance_Windows.2 _Zend_Service_Amazon_Ec2_Instance_Reserved"1 GZend_Service_Amazon_Ec2_Image&0 OZend_Service_Amazon_Ec2_Exception&/ OZend_Service_Amazon_Ec2_Elasticip . CZend_Service_Amazon_Ec2_Ebs'- QZend_Service_Amazon_Ec2_CloudWatch., _Zend_Service_Amazon_Ec2_Availabilityzones%+ MZend_Service_Amazon_Ec2_Abstract'* QZend_Service_Amazon_CustomerReview') QZend_Service_Amazon_Authentication*( WZend_Service_Amazon_Authentication_V2*' WZend_Service_Amazon_Authentication_V1*& WZend_Service_Amazon_Authentication_S31% eZend_Service_Amazon_Authentication_Exception$$ KZend_Service_Amazon_Accessories!# EZend_Service_Amazon_Abstract" 5Zend_Service_Akismet! 7Zend_Service_Abstract  9Zend_Server_Reflection' QZend_Server_Reflection_ReturnValue% MZend_Server_Reflection_Prototype% MZend_Server_Reflection_Parameter  CZend_Server_Reflection_Node" GZend_Server_Reflection_Method$ KZend_Server_Reflection_Function- ]Zend_Server_Reflection_Function_Abstract% MZend_Server_Reflection_Exception! EZend_Server_Reflection_Class! EZend_Server_Method_Prototype! EZend_Server_Method_Parameter" GZend_Server_Method_Definition  CZend_Server_Method_Callback 7Zend_Server_Exception 9Zend_Server_Definition /Zend_Server_Cache 5Zend_Server_Abstract +Zend_Serializer ?Zend_Serializer_Exception! EZend_Serializer_Adapter_Wddx) UZend_Serializer_Adapter_PythonPickle)
 UZend_Serializer_Adapter_PhpSerialize$	 KZend_Serializer_Adapter_PhpCode! EZend_Serializer_Adapter_Json% MZend_Serializer_Adapter_Igbinary! EZend_Serializer_Adapter_Amf3! EZend_Serializer_Adapter_Amf0, [Zend_Serializer_Adapter_AdapterAbstract 1Zend_Search_Lucene0 cZend_Search_Lucene_TermStreamsPriorityQueue$ KZend_Search_Lucene_Storage_File+  YZend_Search_Lucene_Storage_File_Memory/ aZend_Search_Lucene_Storage_File_Filesystem)~ UZend_Search_Lucene_Storage_Directory4} kZend_Search_Lucene_Storage_Directory_Filesystem%| MZend_Search_Lucene_Search_Weight   4  r4f2i.mf

_
			S;:ubx/c&Im,                                            C Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCallG Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced= }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallA Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatusA
 Zend_Service_DeveloperGarden_Request_SmsValidation_ValidateN	 Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeywordC Zend_Service_DeveloperGarden_Request_SmsValidation_InvalidateL Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbersB Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract9 uZend_Service_DeveloperGarden_Request_SendSms_SendSMS> Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS9 uZend_Service_DeveloperGarden_Request_RequestAbstractI Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequestE Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest3  iZend_Service_DeveloperGarden_Request_ExceptionR %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequestY~ 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequestd} IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequestQ| #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequestR{ %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequestYz 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequestdy IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequestQx #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequestOw Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequestUv +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequestUu +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequestVt -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequestas CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequestZr 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequestTq )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequestRp %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequestYo 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequestQn #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequestQm #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequestal CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequestNk Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformationLj Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalanceJi Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool-h ]Zend_Service_DeveloperGarden_LocalSearch>g Zend_Service_DeveloperGarden_LocalSearch_SearchParameters7f qZend_Service_DeveloperGarden_LocalSearch_Exception,e [Zend_Service_DeveloperGarden_IpLocation6d oZend_Service_DeveloperGarden_IpLocation_IpAddress+c YZend_Service_DeveloperGarden_Exception,b [Zend_Service_DeveloperGarden_Credential0a cZend_Service_DeveloperGarden_ConferenceCallC` Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatusC_ Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail<^ {Zend_Service_DeveloperGarden_ConferenceCall_Participant:] wZend_Service_DeveloperGarden_ConferenceCall_ExceptionD\ 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceScheduleB[ Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail   - j {$p	PM0

|
"		d	 .r]P0`(I   j        A; Zend_Service_DeveloperGarden_Response_IpLocation_RegionTypeK: Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseTypeG9 Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseL8 Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationTypeI7 Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType>6 Zend_Service_DeveloperGarden_Response_IpLocation_CityType45 kZend_Service_DeveloperGarden_Response_ExceptionT4 )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse[3 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponsef2 MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponseS1 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponseT0 )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse[/ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponsef. MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponseS- 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponseU, +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseTypeQ+ #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse[* 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseTypeW) /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse[( 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseTypeW' /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse\& 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseTypeX% 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseg$ OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseTypec# GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse`" AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType\! 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseZ  5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseTypeV -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseX 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseTypeT )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse_ ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseW /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseTypeS 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseQ #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstractS 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponseJ Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseTypeg OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseTypec GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseW /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponseU +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponseS 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse3 iZend_Service_DeveloperGarden_Response_BaseTypeJ Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstract   G  ^}$JH\

o
			X	+WwNvE['Z,pAhL$^+             , [Zend_Service_Rackspace_Files_ObjectList( SZend_Service_Rackspace_Files_Object+  YZend_Service_Rackspace_Files_Exception/ aZend_Service_Rackspace_Files_ContainerList+~ YZend_Service_Rackspace_Files_Container%} MZend_Service_Rackspace_Exception$| KZend_Service_Rackspace_Abstract{ 7Zend_Service_LiveDocx$z KZend_Service_LiveDocx_MailMerge$y KZend_Service_LiveDocx_Exceptionx 3Zend_Service_Flickr"w GZend_Service_Flickr_ResultSetv AZend_Service_Flickr_Resultu ?Zend_Service_Flickr_Imaget 9Zend_Service_Exceptions ?Zend_Service_Ebay_Finding)r UZend_Service_Ebay_Finding_Storefront+q YZend_Service_Ebay_Finding_ShippingInfo+p YZend_Service_Ebay_Finding_Set_Abstract,o [Zend_Service_Ebay_Finding_SellingStatus)n UZend_Service_Ebay_Finding_SellerInfo,m [Zend_Service_Ebay_Finding_Search_Result*l WZend_Service_Ebay_Finding_Search_Item.k _Zend_Service_Ebay_Finding_Search_Item_Set0j cZend_Service_Ebay_Finding_Response_Keywords-i ]Zend_Service_Ebay_Finding_Response_Items2h gZend_Service_Ebay_Finding_Response_Histograms0g cZend_Service_Ebay_Finding_Response_Abstract/f aZend_Service_Ebay_Finding_PaginationOutput*e WZend_Service_Ebay_Finding_ListingInfo(d SZend_Service_Ebay_Finding_Exception,c [Zend_Service_Ebay_Finding_Error_Message)b UZend_Service_Ebay_Finding_Error_Data-a ]Zend_Service_Ebay_Finding_Error_Data_Set'` QZend_Service_Ebay_Finding_Category1_ eZend_Service_Ebay_Finding_Category_Histogram5^ mZend_Service_Ebay_Finding_Category_Histogram_Set;] yZend_Service_Ebay_Finding_Category_Histogram_Container%\ MZend_Service_Ebay_Finding_Aspect)[ UZend_Service_Ebay_Finding_Aspect_Set5Z mZend_Service_Ebay_Finding_Aspect_Histogram_Value9Y uZend_Service_Ebay_Finding_Aspect_Histogram_Value_Set9X uZend_Service_Ebay_Finding_Aspect_Histogram_Container'W QZend_Service_Ebay_Finding_Abstract V CZend_Service_Ebay_ExceptionU AZend_Service_Ebay_Abstract+T YZend_Service_DeveloperGarden_VoiceCall/S aZend_Service_DeveloperGarden_SmsValidation)R UZend_Service_DeveloperGarden_SendSms5Q mZend_Service_DeveloperGarden_SecurityTokenServer;P yZend_Service_DeveloperGarden_SecurityTokenServer_CacheKO Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstractLN Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponsePM !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponseGL Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponseJK Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponseKJ Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2ResponseLI Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponseIH Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumberWG /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponseJF Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponseUE +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponseCD Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponseCC Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstractHB Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponseUA +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponseQ@ #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponseI? Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception;> yZend_Service_DeveloperGarden_Response_ResponseAbstractO= Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseTypeK< Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponse   P  }L~W.]9vL"w9


s
I
				o	@	|R$xHrK+Nub,|7{"U               LR Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCountersKQ Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstract<P {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogsAO Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstanceDN 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectoriesUM +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogsDL 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSources8K sZend_Service_WindowsAzure_Credentials_SharedKeyLite4J kZend_Service_WindowsAzure_Credentials_SharedKeyAI Zend_Service_WindowsAzure_Credentials_SharedAccessSignature4H kZend_Service_WindowsAzure_Credentials_Exception>G Zend_Service_WindowsAzure_Credentials_CredentialsAbstract2F gZend_Service_WindowsAzure_CommandLine_Storage2E gZend_Service_WindowsAzure_CommandLine_ServiceD !ScaffolderWC /Zend_Service_WindowsAzure_CommandLine_PackageScaffolder_PackageScaffolderAbstract2B gZend_Service_WindowsAzure_CommandLine_PackageDA 	Zend_Service_WindowsAzure_CommandLine_GetAsynchronousOperation5@ mZend_Service_WindowsAzure_CommandLine_Deployment6? oZend_Service_WindowsAzure_CommandLine_Certificate> 5Zend_Service_Twitter"= GZend_Service_Twitter_Response#< IZend_Service_Twitter_Exception; ;Zend_Service_Technorati#: IZend_Service_Technorati_Weblog"9 GZend_Service_Technorati_Utils*8 WZend_Service_Technorati_TagsResultSet'7 QZend_Service_Technorati_TagsResult)6 UZend_Service_Technorati_TagResultSet&5 OZend_Service_Technorati_TagResult,4 [Zend_Service_Technorati_SearchResultSet)3 UZend_Service_Technorati_SearchResult&2 OZend_Service_Technorati_ResultSet#1 IZend_Service_Technorati_Result*0 WZend_Service_Technorati_KeyInfoResult*/ WZend_Service_Technorati_GetInfoResult&. OZend_Service_Technorati_Exception1- eZend_Service_Technorati_DailyCountsResultSet., _Zend_Service_Technorati_DailyCountsResult,+ [Zend_Service_Technorati_CosmosResultSet)* UZend_Service_Technorati_CosmosResult+) YZend_Service_Technorati_BlogInfoResult#( IZend_Service_Technorati_Author' ;Zend_Service_StrikeIron(& SZend_Service_StrikeIron_ZipCodeInfo2% gZend_Service_StrikeIron_USAddressVerification-$ ]Zend_Service_StrikeIron_SalesUseTaxBasic&# OZend_Service_StrikeIron_Exception&" OZend_Service_StrikeIron_Decorator!! EZend_Service_StrikeIron_Base;  yZend_Service_SqlAzure_Management_ServiceEntityAbstract4 kZend_Service_SqlAzure_Management_ServerInstance: wZend_Service_SqlAzure_Management_FirewallRuleInstance/ aZend_Service_SqlAzure_Management_Exception, [Zend_Service_SqlAzure_Management_Client$ KZend_Service_SqlAzure_Exception ;Zend_Service_SlideShare& OZend_Service_SlideShare_SlideShow& OZend_Service_SlideShare_Exception% MZend_Service_ShortUrl_TinyUrlCom& OZend_Service_ShortUrl_MetamarkNet! EZend_Service_ShortUrl_JdemCz AZend_Service_ShortUrl_IsGd$ KZend_Service_ShortUrl_Exception  CZend_Service_ShortUrl_BitLy, [Zend_Service_ShortUrl_AbstractShortener 9Zend_Service_ReCaptcha$ KZend_Service_ReCaptcha_Response$ KZend_Service_ReCaptcha_MailHide. _Zend_Service_ReCaptcha_MailHide_Exception% MZend_Service_ReCaptcha_Exception# IZend_Service_Rackspace_Servers5
 mZend_Service_Rackspace_Servers_SharedIpGroupList1	 eZend_Service_Rackspace_Servers_SharedIpGroup. _Zend_Service_Rackspace_Servers_ServerList* WZend_Service_Rackspace_Servers_Server- ]Zend_Service_Rackspace_Servers_ImageList) UZend_Service_Rackspace_Servers_Image- ]Zend_Service_Rackspace_Servers_Exception! EZend_Service_Rackspace_Files   M  b*oCXl(X


=
			X	'So2Xw?wH!~Q/
lQ3yL7                 ;Zend_Soap_Client_DotNet ;Zend_Soap_Client_Common 9Zend_Soap_AutoDiscover% MZend_Soap_AutoDiscover_Exception %Zend_Session) UZend_Session_Validator_HttpUserAgent$ KZend_Session_Validator_Abstract' QZend_Session_SaveHandler_Exception% MZend_Session_SaveHandler_DbTable 9Zend_Session_Namespace 9Zend_Session_Exception 7Zend_Session_Abstract 1Zend_Service_Yahoo$ KZend_Service_Yahoo_WebResultSet! EZend_Service_Yahoo_WebResult& OZend_Service_Yahoo_VideoResultSet# IZend_Service_Yahoo_VideoResult! EZend_Service_Yahoo_ResultSet ?Zend_Service_Yahoo_Result) UZend_Service_Yahoo_PageDataResultSet& OZend_Service_Yahoo_PageDataResult%
 MZend_Service_Yahoo_NewsResultSet"	 GZend_Service_Yahoo_NewsResult& OZend_Service_Yahoo_LocalResultSet# IZend_Service_Yahoo_LocalResult+ YZend_Service_Yahoo_InlinkDataResultSet( SZend_Service_Yahoo_InlinkDataResult& OZend_Service_Yahoo_ImageResultSet# IZend_Service_Yahoo_ImageResult =Zend_Service_Yahoo_Image& OZend_Service_WindowsAzure_Storage4  kZend_Service_WindowsAzure_Storage_TableInstance7 qZend_Service_WindowsAzure_Storage_TableEntityQuery2~ gZend_Service_WindowsAzure_Storage_TableEntity,} [Zend_Service_WindowsAzure_Storage_Table<| {Zend_Service_WindowsAzure_Storage_StorageEntityAbstract7{ qZend_Service_WindowsAzure_Storage_SignedIdentifier3z iZend_Service_WindowsAzure_Storage_QueueMessage4y kZend_Service_WindowsAzure_Storage_QueueInstance,x [Zend_Service_WindowsAzure_Storage_Queue9w uZend_Service_WindowsAzure_Storage_PageRegionInstance4v kZend_Service_WindowsAzure_Storage_LeaseInstance9u uZend_Service_WindowsAzure_Storage_DynamicTableEntity3t iZend_Service_WindowsAzure_Storage_BlobInstance4s kZend_Service_WindowsAzure_Storage_BlobContainer+r YZend_Service_WindowsAzure_Storage_Blob2q gZend_Service_WindowsAzure_Storage_Blob_Stream;p yZend_Service_WindowsAzure_Storage_BatchStorageAbstract,o [Zend_Service_WindowsAzure_Storage_Batch-n ]Zend_Service_WindowsAzure_SessionHandler>m Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract1l eZend_Service_WindowsAzure_RetryPolicy_RetryN2k gZend_Service_WindowsAzure_RetryPolicy_NoRetry4j kZend_Service_WindowsAzure_RetryPolicy_ExceptionHi Zend_Service_WindowsAzure_Management_SubscriptionOperationInstanceAh Zend_Service_WindowsAzure_Management_StorageServiceInstance@g Zend_Service_WindowsAzure_Management_ServiceEntityAbstractBf Zend_Service_WindowsAzure_Management_OperationStatusInstanceBe Zend_Service_WindowsAzure_Management_OperatingSystemInstanceHd Zend_Service_WindowsAzure_Management_OperatingSystemFamilyInstance:c wZend_Service_WindowsAzure_Management_LocationInstance@b Zend_Service_WindowsAzure_Management_HostedServiceInstance3a iZend_Service_WindowsAzure_Management_Exception<` {Zend_Service_WindowsAzure_Management_DeploymentInstance0_ cZend_Service_WindowsAzure_Management_Client=^ }Zend_Service_WindowsAzure_Management_CertificateInstance@] Zend_Service_WindowsAzure_Management_AffinityGroupInstance6\ oZend_Service_WindowsAzure_Log_Writer_WindowsAzure9[ uZend_Service_WindowsAzure_Log_Formatter_WindowsAzure,Z [Zend_Service_WindowsAzure_Log_Exception(Y SZend_Service_WindowsAzure_ExceptionJX Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscription2W gZend_Service_WindowsAzure_Diagnostics_Manager3V iZend_Service_WindowsAzure_Diagnostics_LogLevel4U kZend_Service_WindowsAzure_Diagnostics_ExceptionNT Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscriptionHS Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLog   \  cJ) qGgBwV?$]/



{
M
 				c	5	|`=$uYA!b4n:aImA`                              1{ eZend_Tool_Framework_Loader_IncludePathLoaderJz Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator+y YZend_Tool_Framework_Loader_BasicLoader(x SZend_Tool_Framework_Loader_Abstract"w GZend_Tool_Framework_Exception'v QZend_Tool_Framework_Client_Storage1u eZend_Tool_Framework_Client_Storage_Directory(t SZend_Tool_Framework_Client_ResponseDs 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator'r QZend_Tool_Framework_Client_Request(q SZend_Tool_Framework_Client_Manifest9p uZend_Tool_Framework_Client_Interactive_InputResponse8o sZend_Tool_Framework_Client_Interactive_InputRequest8n sZend_Tool_Framework_Client_Interactive_InputHandler)m UZend_Tool_Framework_Client_Exception'l QZend_Tool_Framework_Client_ConsoleDk 	Zend_Tool_Framework_Client_Console_ResponseDecorator_IndentionDj 	Zend_Tool_Framework_Client_Console_ResponseDecorator_ColorizerCi Zend_Tool_Framework_Client_Console_ResponseDecorator_BlockizeFh Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter0g cZend_Tool_Framework_Client_Console_Manifest2f gZend_Tool_Framework_Client_Console_HelpSystem6e oZend_Tool_Framework_Client_Console_ArgumentParser&d OZend_Tool_Framework_Client_Config(c SZend_Tool_Framework_Client_Abstract*b WZend_Tool_Framework_Action_Repository)a UZend_Tool_Framework_Action_Exception$` KZend_Tool_Framework_Action_Base_ 'Zend_TimeSync^ 1Zend_TimeSync_Sntp] 9Zend_TimeSync_Protocol\ /Zend_TimeSync_Ntp[ ;Zend_TimeSync_ExceptionZ +Zend_Text_TableY 3Zend_Text_Table_RowX ?Zend_Text_Table_Exception&W OZend_Text_Table_Decorator_Unicode$V KZend_Text_Table_Decorator_AsciiU 9Zend_Text_Table_ColumnT 3Zend_Text_MultiByteS -Zend_Text_FigletR AZend_Text_Figlet_ExceptionQ 3Zend_Text_Exception&P OZend_Test_PHPUnit_Db_SimpleTester,O [Zend_Test_PHPUnit_Db_Operation_Truncate*N WZend_Test_PHPUnit_Db_Operation_Insert-M ]Zend_Test_PHPUnit_Db_Operation_DeleteAll*L WZend_Test_PHPUnit_Db_Metadata_Generic#K IZend_Test_PHPUnit_Db_Exception,J [Zend_Test_PHPUnit_Db_DataSet_QueryTable.I _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet0H cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet)G UZend_Test_PHPUnit_Db_DataSet_DbTable*F WZend_Test_PHPUnit_Db_DataSet_DbRowset$E KZend_Test_PHPUnit_Db_Connection'D QZend_Test_PHPUnit_DatabaseTestCase)C UZend_Test_PHPUnit_ControllerTestCase0B cZend_Test_PHPUnit_Constraint_ResponseHeader*A WZend_Test_PHPUnit_Constraint_Redirect+@ YZend_Test_PHPUnit_Constraint_Exception*? WZend_Test_PHPUnit_Constraint_DomQuery> 7Zend_Test_DbStatement= 3Zend_Test_DbAdapter< /Zend_Tag_ItemList; 'Zend_Tag_Item: 1Zend_Tag_Exception9 )Zend_Tag_Cloud8 =Zend_Tag_Cloud_Exception!7 EZend_Tag_Cloud_Decorator_Tag%6 MZend_Tag_Cloud_Decorator_HtmlTag'5 QZend_Tag_Cloud_Decorator_HtmlCloud'4 QZend_Tag_Cloud_Decorator_Exception#3 IZend_Tag_Cloud_Decorator_Cloud!2 EZend_Stdlib_SplPriorityQueue1 -SplPriorityQueue0 ?Zend_Stdlib_PriorityQueue3/ iZend_Stdlib_Exception_InvalidCallbackException . CZend_Stdlib_CallbackHandler- )Zend_Soap_Wsdl/, aZend_Soap_Wsdl_Strategy_DefaultComplexType&+ OZend_Soap_Wsdl_Strategy_Composite0* cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence/) aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex$( KZend_Soap_Wsdl_Strategy_AnyType%' MZend_Soap_Wsdl_Strategy_Abstract& =Zend_Soap_Wsdl_Exception% -Zend_Soap_Server$ 9Zend_Soap_Server_Proxy# AZend_Soap_Server_Exception" -Zend_Soap_Client! 9Zend_Soap_Client_Local  AZend_Soap_Client_Exception   J  o9	Y*wFMrF


z
@
			W	$|HtAyEk5h3Tg0>                       @E Zend_Tool_Project_Context_Zf_TestApplicationControllerFileED Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory>C Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile=B }Zend_Tool_Project_Context_Zf_TestApplicationActionMethod4A kZend_Tool_Project_Context_Zf_TemporaryDirectory3@ iZend_Tool_Project_Context_Zf_SessionsDirectory3? iZend_Tool_Project_Context_Zf_ServicesDirectory8> sZend_Tool_Project_Context_Zf_SearchIndexesDirectory<= {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory8< sZend_Tool_Project_Context_Zf_PublicScriptsDirectory1; eZend_Tool_Project_Context_Zf_PublicIndexFile7: qZend_Tool_Project_Context_Zf_PublicImagesDirectory19 eZend_Tool_Project_Context_Zf_PublicDirectory58 mZend_Tool_Project_Context_Zf_ProjectProviderFile27 gZend_Tool_Project_Context_Zf_ModulesDirectory16 eZend_Tool_Project_Context_Zf_ModuleDirectory15 eZend_Tool_Project_Context_Zf_ModelsDirectory+4 YZend_Tool_Project_Context_Zf_ModelFile/3 aZend_Tool_Project_Context_Zf_LogsDirectory22 gZend_Tool_Project_Context_Zf_LocalesDirectory21 gZend_Tool_Project_Context_Zf_LibraryDirectory20 gZend_Tool_Project_Context_Zf_LayoutsDirectory8/ sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory2. gZend_Tool_Project_Context_Zf_LayoutScriptFile.- _Zend_Tool_Project_Context_Zf_HtaccessFile0, cZend_Tool_Project_Context_Zf_FormsDirectory*+ WZend_Tool_Project_Context_Zf_FormFile/* aZend_Tool_Project_Context_Zf_DocsDirectory-) ]Zend_Tool_Project_Context_Zf_DbTableFile2( gZend_Tool_Project_Context_Zf_DbTableDirectory/' aZend_Tool_Project_Context_Zf_DataDirectory6& oZend_Tool_Project_Context_Zf_ControllersDirectory0% cZend_Tool_Project_Context_Zf_ControllerFile2$ gZend_Tool_Project_Context_Zf_ConfigsDirectory,# [Zend_Tool_Project_Context_Zf_ConfigFile0" cZend_Tool_Project_Context_Zf_CacheDirectory/! aZend_Tool_Project_Context_Zf_BootstrapFile6  oZend_Tool_Project_Context_Zf_ApplicationDirectory7 qZend_Tool_Project_Context_Zf_ApplicationConfigFile/ aZend_Tool_Project_Context_Zf_ApisDirectory. _Zend_Tool_Project_Context_Zf_ActionMethod3 iZend_Tool_Project_Context_Zf_AbstractClassFile@ Zend_Tool_Project_Context_System_ProjectProvidersDirectory8 sZend_Tool_Project_Context_System_ProjectProfileFile6 oZend_Tool_Project_Context_System_ProjectDirectory) UZend_Tool_Project_Context_Repository. _Zend_Tool_Project_Context_Filesystem_File3 iZend_Tool_Project_Context_Filesystem_Directory2 gZend_Tool_Project_Context_Filesystem_Abstract( SZend_Tool_Project_Context_Exception- ]Zend_Tool_Project_Context_Content_Engine3 iZend_Tool_Project_Context_Content_Engine_Phtml; yZend_Tool_Project_Context_Content_Engine_CodeGenerator0 cZend_Tool_Framework_System_Provider_Version0 cZend_Tool_Framework_System_Provider_Phpinfo1 eZend_Tool_Framework_System_Provider_Manifest/ aZend_Tool_Framework_System_Provider_Config( SZend_Tool_Framework_System_Manifest- ]Zend_Tool_Framework_System_Action_Delete-
 ]Zend_Tool_Framework_System_Action_Create!	 EZend_Tool_Framework_Registry+ YZend_Tool_Framework_Registry_Exception+ YZend_Tool_Framework_Provider_Signature, [Zend_Tool_Framework_Provider_Repository+ YZend_Tool_Framework_Provider_Exception* WZend_Tool_Framework_Provider_Abstract& OZend_Tool_Framework_Metadata_Tool) UZend_Tool_Framework_Metadata_Dynamic' QZend_Tool_Framework_Metadata_Basic,  [Zend_Tool_Framework_Manifest_Repository2 gZend_Tool_Framework_Manifest_ProviderMetadata*~ WZend_Tool_Framework_Manifest_Metadata+} YZend_Tool_Framework_Manifest_Exception0| cZend_Tool_Framework_Manifest_ActionMetadata   Z  }7Fcv<xG


[
0
				[	.	X/|T,xU2sXB1W2
uQ-
zU-lF                               AZend_Validate_Barcode_Upca AZend_Validate_Barcode_Sscc$ KZend_Validate_Barcode_Royalmail" GZend_Validate_Barcode_Postnet! EZend_Validate_Barcode_Planet# IZend_Validate_Barcode_Leitcode  CZend_Validate_Barcode_Itf14 AZend_Validate_Barcode_Issn* WZend_Validate_Barcode_IntelligentMail$ KZend_Validate_Barcode_Identcode! EZend_Validate_Barcode_Gtin14! EZend_Validate_Barcode_Gtin13! EZend_Validate_Barcode_Gtin12 AZend_Validate_Barcode_Ean8 AZend_Validate_Barcode_Ean5 AZend_Validate_Barcode_Ean2  CZend_Validate_Barcode_Ean18  CZend_Validate_Barcode_Ean14  CZend_Validate_Barcode_Ean13  CZend_Validate_Barcode_Ean12$ KZend_Validate_Barcode_Code93ext!
 EZend_Validate_Barcode_Code93$	 KZend_Validate_Barcode_Code39ext! EZend_Validate_Barcode_Code39, [Zend_Validate_Barcode_Code25interleaved! EZend_Validate_Barcode_Code25* WZend_Validate_Barcode_AdapterAbstract 3Zend_Validate_Alpha 3Zend_Validate_Alnum 9Zend_Validate_Abstract Zend_Uri  'Zend_Uri_Http 1Zend_Uri_Exception~ )Zend_Translate} 7Zend_Translate_Plural| =Zend_Translate_Exception{ 9Zend_Translate_Adapter!z EZend_Translate_Adapter_XmlTm!y EZend_Translate_Adapter_Xliffx AZend_Translate_Adapter_Tmxw AZend_Translate_Adapter_Tbxv ?Zend_Translate_Adapter_Qtu AZend_Translate_Adapter_Ini#t IZend_Translate_Adapter_Gettexts AZend_Translate_Adapter_Csv!r EZend_Translate_Adapter_Array$q KZend_Tool_Project_Provider_View$p KZend_Tool_Project_Provider_Test/o aZend_Tool_Project_Provider_ProjectProvider'n QZend_Tool_Project_Provider_Project'm QZend_Tool_Project_Provider_Profile&l OZend_Tool_Project_Provider_Module%k MZend_Tool_Project_Provider_Model(j SZend_Tool_Project_Provider_Manifest&i OZend_Tool_Project_Provider_Layout$h KZend_Tool_Project_Provider_Form)g UZend_Tool_Project_Provider_Exception'f QZend_Tool_Project_Provider_DbTable)e UZend_Tool_Project_Provider_DbAdapter*d WZend_Tool_Project_Provider_Controller+c YZend_Tool_Project_Provider_Application&b OZend_Tool_Project_Provider_Action(a SZend_Tool_Project_Provider_Abstract` ?Zend_Tool_Project_Profile'_ QZend_Tool_Project_Profile_Resource9^ uZend_Tool_Project_Profile_Resource_SearchConstraints1] eZend_Tool_Project_Profile_Resource_Container=\ }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter5[ mZend_Tool_Project_Profile_Iterator_ContextFilter-Z ]Zend_Tool_Project_Profile_FileParser_Xml(Y SZend_Tool_Project_Profile_Exception X CZend_Tool_Project_Exception<W {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory0V cZend_Tool_Project_Context_Zf_ViewsDirectory6U oZend_Tool_Project_Context_Zf_ViewScriptsDirectory0T cZend_Tool_Project_Context_Zf_ViewScriptFile6S oZend_Tool_Project_Context_Zf_ViewHelpersDirectory6R oZend_Tool_Project_Context_Zf_ViewFiltersDirectoryAQ Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory2P gZend_Tool_Project_Context_Zf_UploadsDirectory0O cZend_Tool_Project_Context_Zf_TestsDirectory7N qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile:M wZend_Tool_Project_Context_Zf_TestPHPUnitBootstrapFile@L Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory1K eZend_Tool_Project_Context_Zf_TestLibraryFile6J oZend_Tool_Project_Context_Zf_TestLibraryDirectory:I wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFileBH Zend_Tool_Project_Context_Zf_TestApplicationModulesDirectoryAG Zend_Tool_Project_Context_Zf_TestApplicationModuleDirectory:F wZend_Tool_Project_Context_Zf_TestApplicationDirectory   n  fE*zZ9zU5]=~_D$




{
\
=
!					f	P	;	 	`;kG%nH%rP.}Z8g7a6T        + YZend_View_Helper_Placeholder_Container6 oZend_View_Helper_Placeholder_Container_Standalone5 mZend_View_Helper_Placeholder_Container_Exception4
 kZend_View_Helper_Placeholder_Container_Abstract!	 EZend_View_Helper_PartialLoop =Zend_View_Helper_Partial' QZend_View_Helper_Partial_Exception' QZend_View_Helper_PaginationControl  CZend_View_Helper_Navigation( SZend_View_Helper_Navigation_Sitemap% MZend_View_Helper_Navigation_Menu& OZend_View_Helper_Navigation_Links/ aZend_View_Helper_Navigation_HelperAbstract,  [Zend_View_Helper_Navigation_Breadcrumbs ;Zend_View_Helper_Layout~ 7Zend_View_Helper_Json"} GZend_View_Helper_InlineScript#| IZend_View_Helper_HtmlQuicktime{ ?Zend_View_Helper_HtmlPage z CZend_View_Helper_HtmlObjecty ?Zend_View_Helper_HtmlListx AZend_View_Helper_HtmlFlash!w EZend_View_Helper_HtmlElementv AZend_View_Helper_HeadTitleu AZend_View_Helper_HeadStyle t CZend_View_Helper_HeadScripts ?Zend_View_Helper_HeadMetar ?Zend_View_Helper_HeadLinkq ?Zend_View_Helper_Gravatar"p GZend_View_Helper_FormTextareao ?Zend_View_Helper_FormText n CZend_View_Helper_FormSubmit m CZend_View_Helper_FormSelectl AZend_View_Helper_FormResetk AZend_View_Helper_FormRadio"j GZend_View_Helper_FormPasswordi ?Zend_View_Helper_FormNote'h QZend_View_Helper_FormMultiCheckboxg AZend_View_Helper_FormLabelf AZend_View_Helper_FormImage e CZend_View_Helper_FormHiddend ?Zend_View_Helper_FormFile c CZend_View_Helper_FormErrors!b EZend_View_Helper_FormElement"a GZend_View_Helper_FormCheckbox ` CZend_View_Helper_FormButton_ 7Zend_View_Helper_Form^ ?Zend_View_Helper_Fieldset] =Zend_View_Helper_Doctype!\ EZend_View_Helper_DeclareVars[ 9Zend_View_Helper_CycleZ ?Zend_View_Helper_CurrencyY =Zend_View_Helper_BaseUrlX ;Zend_View_Helper_ActionW ?Zend_View_Helper_AbstractV 3Zend_View_ExceptionU 1Zend_View_AbstractT %Zend_VersionS 'Zend_ValidateR AZend_Validate_StringLength#Q IZend_Validate_Sitemap_PriorityP ?Zend_Validate_Sitemap_Loc"O GZend_Validate_Sitemap_Lastmod%N MZend_Validate_Sitemap_ChangefreqM 3Zend_Validate_RegexL 9Zend_Validate_PostCodeK 9Zend_Validate_NotEmptyJ 9Zend_Validate_LessThanI 7Zend_Validate_Ldap_DnH 1Zend_Validate_IsbnG -Zend_Validate_IpF /Zend_Validate_IntE 7Zend_Validate_InArrayD ;Zend_Validate_IdenticalC 1Zend_Validate_IbanB 9Zend_Validate_HostnameA /Zend_Validate_Hex@ ?Zend_Validate_GreaterThan? 3Zend_Validate_Float!> EZend_Validate_File_WordCount= ?Zend_Validate_File_Upload< ;Zend_Validate_File_Size; ;Zend_Validate_File_Sha1!: EZend_Validate_File_NotExists 9 CZend_Validate_File_MimeType8 9Zend_Validate_File_Md57 AZend_Validate_File_IsImage$6 KZend_Validate_File_IsCompressed!5 EZend_Validate_File_ImageSize4 ;Zend_Validate_File_Hash!3 EZend_Validate_File_FilesSize!2 EZend_Validate_File_Extension1 ?Zend_Validate_File_Exists'0 QZend_Validate_File_ExcludeMimeType(/ SZend_Validate_File_ExcludeExtension. =Zend_Validate_File_Crc32- =Zend_Validate_File_Count, ;Zend_Validate_Exception+ AZend_Validate_EmailAddress* 5Zend_Validate_Digits") GZend_Validate_Db_RecordExists$( KZend_Validate_Db_NoRecordExists' ?Zend_Validate_Db_Abstract& 1Zend_Validate_Date% =Zend_Validate_CreditCard$ 3Zend_Validate_Ccnum# 9Zend_Validate_Callback" 7Zend_Validate_Between! 7Zend_Validate_Barcode  AZend_Validate_Barcode_Upce   j  uH%mM jEmR4wU9




q
V
6
					e	A		iO&}^C(dA{Y;"kH#_/LxS,                                     (w SZend_Application_Resource_Exception#v IZend_Application_Resource_Dojo!u EZend_Application_Resource_Db+t YZend_Application_Resource_Cachemanager&s OZend_Application_Module_Bootstrap'r QZend_Application_Module_Autoloaderq AZend_Application_Exception)p UZend_Application_Bootstrap_Exception1o eZend_Application_Bootstrap_BootstrapAbstract)n UZend_Application_Bootstrap_Bootstrapm ?Zend_Amf_Value_TraitsInfo-l ]Zend_Amf_Value_Messaging_RemotingMessage*k WZend_Amf_Value_Messaging_ErrorMessage,j [Zend_Amf_Value_Messaging_CommandMessage*i WZend_Amf_Value_Messaging_AsyncMessage-h ]Zend_Amf_Value_Messaging_ArrayCollection0g cZend_Amf_Value_Messaging_AcknowledgeMessage-f ]Zend_Amf_Value_Messaging_AbstractMessage!e EZend_Amf_Value_MessageHeaderd AZend_Amf_Value_MessageBodyc =Zend_Amf_Value_ByteArrayb AZend_Amf_Util_BinaryStreama +Zend_Amf_Server` ?Zend_Amf_Server_Exception_ /Zend_Amf_Response^ 9Zend_Amf_Response_Http] -Zend_Amf_Request\ 7Zend_Amf_Request_Http[ ?Zend_Amf_Parse_TypeLoaderZ ?Zend_Amf_Parse_Serializer#Y IZend_Amf_Parse_Resource_Stream(X SZend_Amf_Parse_Resource_MysqlResult)W UZend_Amf_Parse_Resource_MysqliResult V CZend_Amf_Parse_OutputStreamU AZend_Amf_Parse_InputStream T CZend_Amf_Parse_Deserializer#S IZend_Amf_Parse_Amf3_Serializer%R MZend_Amf_Parse_Amf3_Deserializer#Q IZend_Amf_Parse_Amf0_Serializer%P MZend_Amf_Parse_Amf0_DeserializerO 1Zend_Amf_ExceptionN 1Zend_Amf_ConstantsM 9Zend_Amf_Auth_Abstract L CZend_Amf_Adobe_IntrospectorK AZend_Amf_Adobe_DbInspectorJ 3Zend_Amf_Adobe_AuthI Zend_AclH 'Zend_Acl_RoleG 9Zend_Acl_Role_Registry%F MZend_Acl_Role_Registry_ExceptionE /Zend_Acl_ResourceD 1Zend_Acl_ExceptionC /Zend_XmlRpc_ValueB =Zend_XmlRpc_Value_StructA =Zend_XmlRpc_Value_String@ =Zend_XmlRpc_Value_Scalar? 7Zend_XmlRpc_Value_Nil> ?Zend_XmlRpc_Value_Integer = CZend_XmlRpc_Value_Exception< =Zend_XmlRpc_Value_Double; AZend_XmlRpc_Value_DateTime!: EZend_XmlRpc_Value_Collection9 ?Zend_XmlRpc_Value_Boolean!8 EZend_XmlRpc_Value_BigInteger7 =Zend_XmlRpc_Value_Base646 ;Zend_XmlRpc_Value_Array5 1Zend_XmlRpc_Server4 ?Zend_XmlRpc_Server_System3 =Zend_XmlRpc_Server_Fault!2 EZend_XmlRpc_Server_Exception1 =Zend_XmlRpc_Server_Cache0 5Zend_XmlRpc_Response/ ?Zend_XmlRpc_Response_Http. 3Zend_XmlRpc_Request- ?Zend_XmlRpc_Request_Stdin, =Zend_XmlRpc_Request_Http$+ KZend_XmlRpc_Generator_XmlWriter,* [Zend_XmlRpc_Generator_GeneratorAbstract&) OZend_XmlRpc_Generator_DomDocument( /Zend_XmlRpc_Fault' 7Zend_XmlRpc_Exception& 1Zend_XmlRpc_Client#% IZend_XmlRpc_Client_ServerProxy+$ YZend_XmlRpc_Client_ServerIntrospection+# YZend_XmlRpc_Client_IntrospectException%" MZend_XmlRpc_Client_HttpException&! OZend_XmlRpc_Client_FaultException!  EZend_XmlRpc_Client_Exception /Zend_Xml_Security 1Zend_Xml_Exception& OZend_Wildfire_Protocol_JsonStream! EZend_Wildfire_Plugin_FirePhp. _Zend_Wildfire_Plugin_FirePhp_TableMessage) UZend_Wildfire_Plugin_FirePhp_Message ;Zend_Wildfire_Exception& OZend_Wildfire_Channel_HttpHeaders Zend_View -Zend_View_Stream AZend_View_Helper_UserAgent 5Zend_View_Helper_Url AZend_View_Helper_Translate AZend_View_Helper_ServerUrl) UZend_View_Helper_RenderToPlaceholder! EZend_View_Helper_Placeholder* WZend_View_Helper_Placeholder_Registry4 kZend_View_Helper_Placeholder_Registry_Exception   Y  pF%|R&U,dCd-



m
C
					e	(h<p7h7	vKn@!mL)
zI&m>             &c OZend_Cloud_StorageService_Adapter$b KZend_Cloud_QueueService_Adapter&a OZend_Cloud_Infrastructure_Adapter,` [Zend_Cloud_DocumentService_QueryAdapter'_ QZend_Cloud_DocumentService_Adapter^ 5Zend_Captcha_Adapter!] EZend_Cache_Backend_Interface)\ UZend_Cache_Backend_ExtendedInterface [ CZend_Auth_Storage_Interface Z CZend_Auth_Adapter_Interface.Y _Zend_Auth_Adapter_Http_Resolver_Interface'X QZend_Application_Resource_Resource4W kZend_Application_Bootstrap_ResourceBootstrapper,V [Zend_Application_Bootstrap_BootstrapperU ;Zend_Acl_Role_Interface T CZend_Acl_Resource_InterfaceS ?Zend_Acl_Assert_Interface#R IZend_Wildfire_Plugin_Interface$Q KZend_Wildfire_Channel_InterfaceP 3Zend_View_Interface'O QZend_View_Helper_Navigation_HelperN AZend_View_Helper_InterfaceM ;Zend_Validate_Interface+L YZend_Validate_Barcode_AdapterInterface3K iZend_Tool_Project_Profile_FileParser_Interface:J wZend_Tool_Project_Context_System_TopLevelRestrictable5I mZend_Tool_Project_Context_System_NotOverwritable/H aZend_Tool_Project_Context_System_Interface(G SZend_Tool_Project_Context_Interface+F YZend_Tool_Framework_Registry_Interface2E gZend_Tool_Framework_Registry_EnabledInterface-D ]Zend_Tool_Framework_Provider_Pretendable+C YZend_Tool_Framework_Provider_Interface.B _Zend_Tool_Framework_Provider_Interactable/A aZend_Tool_Framework_Provider_Initializable;@ yZend_Tool_Framework_Provider_DocblockManifestInterface+? YZend_Tool_Framework_Metadata_Interface.> _Zend_Tool_Framework_Metadata_Attributable6= oZend_Tool_Framework_Manifest_ProviderManifestable6< oZend_Tool_Framework_Manifest_MetadataManifestable+; YZend_Tool_Framework_Manifest_Interface+: YZend_Tool_Framework_Manifest_Indexable49 kZend_Tool_Framework_Manifest_ActionManifestable)8 UZend_Tool_Framework_Loader_Interface87 sZend_Tool_Framework_Client_Storage_AdapterInterfaceD6 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface;5 yZend_Tool_Framework_Client_Interactive_OutputInterface:4 wZend_Tool_Framework_Client_Interactive_InputInterface)3 UZend_Tool_Framework_Action_Interface(2 SZend_Text_Table_Decorator_Interface1 /Zend_Tag_Taggable0 7Zend_Stdlib_Exception&/ OZend_Soap_Wsdl_Strategy_Interface%. MZend_Session_Validator_Interface'- QZend_Session_SaveHandler_Interface$, KZend_Service_ShortUrl_ShortenerI+ Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Interface* 7Zend_Server_Interface-) ]Zend_Serializer_Adapter_AdapterInterface4( kZend_Search_Lucene_Search_Highlighter_Interface!' EZend_Search_Lucene_Interface3& iZend_Search_Lucene_Index_TermsStream_Interface$% KZend_Queue_Stomp_FrameInterface0$ cZend_Queue_Stomp_Client_ConnectionInterface(# SZend_Queue_Adapter_AdapterInterface" ?Zend_Pdf_Filter_Interface&! OZend_Pdf_ElementFactory_Interface  ?Zend_Pdf_Canvas_Interface, [Zend_Paginator_ScrollingStyle_Interface$ KZend_Paginator_AdapterAggregate% MZend_Paginator_Adapter_Interface& OZend_Oauth_Config_ConfigInterface' QZend_Mobile_Push_Message_Interface AZend_Mobile_Push_Interface$ KZend_Memory_Container_Interface1 eZend_Markup_Renderer_TokenConverterInterface' QZend_Markup_Parser_ParserInterface) UZend_Mail_Storage_Writable_Interface' QZend_Mail_Storage_Folder_Interface =Zend_Mail_Part_Interface  CZend_Mail_Message_Interface! EZend_Log_Formatter_Interface ?Zend_Log_Filter_Interface ?Zend_Log_FactoryInterface ?Zend_Loader_SplAutoloader' QZend_Loader_PluginLoader_Interface% MZend_Loader_Autoloader_Interface0 cZend_Ldap_Node_Schema_ObjectClass_Interface2 gZend_Ldap_Node_Schema_AttributeType_Interface   h  |V/{R(nM)kO6sP"




z
X
2
				w	S	-	}N,fD"oD~\;pQ5IsDl>
       (_ SZend_Cloud_Infrastructure_Exception0^ cZend_Cloud_Infrastructure_Adapter_Rackspace*] WZend_Cloud_Infrastructure_Adapter_Ec26\ oZend_Cloud_Infrastructure_Adapter_AbstractAdapter[ 5Zend_Cloud_Exception%Z MZend_Cloud_DocumentService_Query'Y QZend_Cloud_DocumentService_Factory)X UZend_Cloud_DocumentService_Exception+W YZend_Cloud_DocumentService_DocumentSet(V SZend_Cloud_DocumentService_Document4U kZend_Cloud_DocumentService_Adapter_WindowsAzure:T wZend_Cloud_DocumentService_Adapter_WindowsAzure_Query0S cZend_Cloud_DocumentService_Adapter_SimpleDb6R oZend_Cloud_DocumentService_Adapter_SimpleDb_Query7Q qZend_Cloud_DocumentService_Adapter_AbstractAdapterP AZend_Cloud_AbstractFactoryO /Zend_Captcha_WordN 9Zend_Captcha_ReCaptchaM 1Zend_Captcha_ImageL 3Zend_Captcha_FigletK 9Zend_Captcha_ExceptionJ /Zend_Captcha_DumbI /Zend_Captcha_BaseH !Zend_CacheG 1Zend_Cache_ManagerF =Zend_Cache_Frontend_PageE AZend_Cache_Frontend_Output!D EZend_Cache_Frontend_FunctionC =Zend_Cache_Frontend_FileB ?Zend_Cache_Frontend_Class A CZend_Cache_Frontend_Capture@ 5Zend_Cache_Exception? +Zend_Cache_Core> 1Zend_Cache_Backend"= GZend_Cache_Backend_ZendServer(< SZend_Cache_Backend_ZendServer_ShMem'; QZend_Cache_Backend_ZendServer_Disk$: KZend_Cache_Backend_ZendPlatform9 ?Zend_Cache_Backend_Xcache 8 CZend_Cache_Backend_WinCache!7 EZend_Cache_Backend_TwoLevels6 ;Zend_Cache_Backend_Test5 ?Zend_Cache_Backend_Static4 ?Zend_Cache_Backend_Sqlite!3 EZend_Cache_Backend_Memcached$2 KZend_Cache_Backend_Libmemcached1 ;Zend_Cache_Backend_File!0 EZend_Cache_Backend_BlackHole/ 9Zend_Cache_Backend_Apc. %Zend_Barcode- ?Zend_Barcode_Renderer_Svg+, YZend_Barcode_Renderer_RendererAbstract+ ?Zend_Barcode_Renderer_Pdf * CZend_Barcode_Renderer_Image$) KZend_Barcode_Renderer_Exception( =Zend_Barcode_Object_Upce' =Zend_Barcode_Object_Upca"& GZend_Barcode_Object_Royalmail % CZend_Barcode_Object_Postnet$ AZend_Barcode_Object_Planet'# QZend_Barcode_Object_ObjectAbstract!" EZend_Barcode_Object_Leitcode! ?Zend_Barcode_Object_Itf14"  GZend_Barcode_Object_Identcode" GZend_Barcode_Object_Exception ?Zend_Barcode_Object_Error =Zend_Barcode_Object_Ean8 =Zend_Barcode_Object_Ean5 =Zend_Barcode_Object_Ean2 ?Zend_Barcode_Object_Ean13 AZend_Barcode_Object_Code39* WZend_Barcode_Object_Code25interleaved AZend_Barcode_Object_Code25  CZend_Barcode_Object_Code128 9Zend_Barcode_Exception Zend_Auth ?Zend_Auth_Storage_Session$ KZend_Auth_Storage_NonPersistent  CZend_Auth_Storage_Exception -Zend_Auth_Result 3Zend_Auth_Exception =Zend_Auth_Adapter_OpenId 9Zend_Auth_Adapter_Ldap 9Zend_Auth_Adapter_Http) UZend_Auth_Adapter_Http_Resolver_File.
 _Zend_Auth_Adapter_Http_Resolver_Exception 	 CZend_Auth_Adapter_Exception =Zend_Auth_Adapter_Digest ?Zend_Auth_Adapter_DbTable -Zend_Application# IZend_Application_Resource_View( SZend_Application_Resource_UserAgent( SZend_Application_Resource_Translate& OZend_Application_Resource_Session% MZend_Application_Resource_Router/  aZend_Application_Resource_ResourceAbstract) UZend_Application_Resource_Navigation&~ OZend_Application_Resource_Multidb&} OZend_Application_Resource_Modules#| IZend_Application_Resource_Mail"{ GZend_Application_Resource_Log%z MZend_Application_Resource_Locale%y MZend_Application_Resource_Layout.x _Zend_Application_Resource_Frontcontroller   \  W(]+Qc?uC



o
@
				V	.	wW8vM~GrGS4oGwM#[0
                             *; WZend_Controller_Response_HttpTestCase": GZend_Controller_Response_Http'9 QZend_Controller_Response_Exception!8 EZend_Controller_Response_Cli&7 OZend_Controller_Response_Abstract#6 IZend_Controller_Request_Simple)5 UZend_Controller_Request_HttpTestCase!4 EZend_Controller_Request_Http&3 OZend_Controller_Request_Exception&2 OZend_Controller_Request_Apache404%1 MZend_Controller_Request_Abstract&0 OZend_Controller_Plugin_PutHandler(/ SZend_Controller_Plugin_ErrorHandler". GZend_Controller_Plugin_Broker'- QZend_Controller_Plugin_ActionStack$, KZend_Controller_Plugin_Abstract+ 7Zend_Controller_Front* ?Zend_Controller_Exception() SZend_Controller_Dispatcher_Standard)( UZend_Controller_Dispatcher_Exception(' SZend_Controller_Dispatcher_Abstract& 9Zend_Controller_Action(% SZend_Controller_Action_HelperBroker6$ oZend_Controller_Action_HelperBroker_PriorityStack/# aZend_Controller_Action_Helper_ViewRenderer&" OZend_Controller_Action_Helper_Url-! ]Zend_Controller_Action_Helper_Redirector'  QZend_Controller_Action_Helper_Json1 eZend_Controller_Action_Helper_FlashMessenger0 cZend_Controller_Action_Helper_ContextSwitch( SZend_Controller_Action_Helper_Cache< {Zend_Controller_Action_Helper_AutoCompleteScriptaculous3 iZend_Controller_Action_Helper_AutoCompleteDojo8 sZend_Controller_Action_Helper_AutoComplete_Abstract. _Zend_Controller_Action_Helper_AjaxContext. _Zend_Controller_Action_Helper_ActionStack+ YZend_Controller_Action_Helper_Abstract% MZend_Controller_Action_Exception 3Zend_Console_Getopt" GZend_Console_Getopt_Exception #Zend_Config -Zend_Config_Yaml +Zend_Config_Xml 1Zend_Config_Writer ;Zend_Config_Writer_Yaml 9Zend_Config_Writer_Xml ;Zend_Config_Writer_Json 9Zend_Config_Writer_Ini$ KZend_Config_Writer_FileAbstract
 =Zend_Config_Writer_Array	 -Zend_Config_Json +Zend_Config_Ini 7Zend_Config_Exception$ KZend_CodeGenerator_Php_Property1 eZend_CodeGenerator_Php_Property_DefaultValue% MZend_CodeGenerator_Php_Parameter2 gZend_CodeGenerator_Php_Parameter_DefaultValue" GZend_CodeGenerator_Php_Method, [Zend_CodeGenerator_Php_Member_Container+  YZend_CodeGenerator_Php_Member_Abstract  CZend_CodeGenerator_Php_File%~ MZend_CodeGenerator_Php_Exception$} KZend_CodeGenerator_Php_Docblock(| SZend_CodeGenerator_Php_Docblock_Tag/{ aZend_CodeGenerator_Php_Docblock_Tag_Return.z _Zend_CodeGenerator_Php_Docblock_Tag_Param0y cZend_CodeGenerator_Php_Docblock_Tag_License!x EZend_CodeGenerator_Php_Class w CZend_CodeGenerator_Php_Body$v KZend_CodeGenerator_Php_Abstract!u EZend_CodeGenerator_Exception t CZend_CodeGenerator_Abstract&s OZend_Cloud_StorageService_Factory(r SZend_Cloud_StorageService_Exception3q iZend_Cloud_StorageService_Adapter_WindowsAzure)p UZend_Cloud_StorageService_Adapter_S30o cZend_Cloud_StorageService_Adapter_Rackspace1n eZend_Cloud_StorageService_Adapter_FileSystem'm QZend_Cloud_QueueService_MessageSet$l KZend_Cloud_QueueService_Message$k KZend_Cloud_QueueService_Factory&j OZend_Cloud_QueueService_Exception.i _Zend_Cloud_QueueService_Adapter_ZendQueue1h eZend_Cloud_QueueService_Adapter_WindowsAzure(g SZend_Cloud_QueueService_Adapter_Sqs4f kZend_Cloud_QueueService_Adapter_AbstractAdapter.e _Zend_Cloud_OperationNotAvailableException+d YZend_Cloud_Infrastructure_InstanceList'c QZend_Cloud_Infrastructure_Instance(b SZend_Cloud_Infrastructure_ImageList$a KZend_Cloud_Infrastructure_Image&` OZend_Cloud_Infrastructure_Factory   n  Z/~Y._8uZC0uO3




\
8
					n	K	"	qX7 j?pV7oH+z^*m?b<mC           +) YZend_Dojo_Form_Element_FilteringSelect"( GZend_Dojo_Form_Element_Editor&' OZend_Dojo_Form_Element_DijitMulti!& EZend_Dojo_Form_Element_Dijit'% QZend_Dojo_Form_Element_DateTextBox+$ YZend_Dojo_Form_Element_CurrencyTextBox$# KZend_Dojo_Form_Element_ComboBox$" KZend_Dojo_Form_Element_CheckBox"! GZend_Dojo_Form_Element_Button   CZend_Dojo_Form_DisplayGroup* WZend_Dojo_Form_Decorator_TabContainer, [Zend_Dojo_Form_Decorator_StackContainer, [Zend_Dojo_Form_Decorator_SplitContainer' QZend_Dojo_Form_Decorator_DijitForm* WZend_Dojo_Form_Decorator_DijitElement, [Zend_Dojo_Form_Decorator_DijitContainer) UZend_Dojo_Form_Decorator_ContentPane- ]Zend_Dojo_Form_Decorator_BorderContainer+ YZend_Dojo_Form_Decorator_AccordionPane0 cZend_Dojo_Form_Decorator_AccordionContainer 3Zend_Dojo_Exception )Zend_Dojo_Data 5Zend_Dojo_BuildLayer !Zend_Debug Zend_Db 'Zend_Db_Table 5Zend_Db_Table_Select# IZend_Db_Table_Select_Exception 5Zend_Db_Table_Rowset# IZend_Db_Table_Rowset_Exception" GZend_Db_Table_Rowset_Abstract
 /Zend_Db_Table_Row 	 CZend_Db_Table_Row_Exception AZend_Db_Table_Row_Abstract ;Zend_Db_Table_Exception =Zend_Db_Table_Definition 9Zend_Db_Table_Abstract /Zend_Db_Statement =Zend_Db_Statement_Sqlsrv' QZend_Db_Statement_Sqlsrv_Exception 7Zend_Db_Statement_Pdo  ?Zend_Db_Statement_Pdo_Oci ?Zend_Db_Statement_Pdo_Ibm~ =Zend_Db_Statement_Oracle'} QZend_Db_Statement_Oracle_Exception| =Zend_Db_Statement_Mysqli'{ QZend_Db_Statement_Mysqli_Exception z CZend_Db_Statement_Exceptiony 7Zend_Db_Statement_Db2$x KZend_Db_Statement_Db2_Exceptionw )Zend_Db_Selectv =Zend_Db_Select_Exceptionu -Zend_Db_Profilert 9Zend_Db_Profiler_Querys =Zend_Db_Profiler_Firebugr AZend_Db_Profiler_Exceptionq %Zend_Db_Exprp /Zend_Db_Exceptiono 9Zend_Db_Adapter_Sqlsrv%n MZend_Db_Adapter_Sqlsrv_Exceptionm AZend_Db_Adapter_Pdo_Sqlitel ?Zend_Db_Adapter_Pdo_Pgsqlk ;Zend_Db_Adapter_Pdo_Ocij ?Zend_Db_Adapter_Pdo_Mysqli ?Zend_Db_Adapter_Pdo_Mssqlh ;Zend_Db_Adapter_Pdo_Ibm g CZend_Db_Adapter_Pdo_Ibm_Ids f CZend_Db_Adapter_Pdo_Ibm_Db2!e EZend_Db_Adapter_Pdo_Abstractd 9Zend_Db_Adapter_Oracle%c MZend_Db_Adapter_Oracle_Exceptionb 9Zend_Db_Adapter_Mysqli%a MZend_Db_Adapter_Mysqli_Exception` ?Zend_Db_Adapter_Exception_ 3Zend_Db_Adapter_Db2"^ GZend_Db_Adapter_Db2_Exception] =Zend_Db_Adapter_Abstract\ Zend_Date[ 3Zend_Date_ExceptionZ 5Zend_Date_DateObjectY -Zend_Date_CitiesX 'Zend_CurrencyW ;Zend_Currency_ExceptionV !Zend_CryptU )Zend_Crypt_RsaT 1Zend_Crypt_Rsa_KeyS ?Zend_Crypt_Rsa_Key_PublicR AZend_Crypt_Rsa_Key_PrivateQ =Zend_Crypt_Rsa_ExceptionP +Zend_Crypt_MathO ?Zend_Crypt_Math_ExceptionN AZend_Crypt_Math_BigInteger#M IZend_Crypt_Math_BigInteger_Gmp)L UZend_Crypt_Math_BigInteger_Exception&K OZend_Crypt_Math_BigInteger_BcmathJ +Zend_Crypt_HmacI ?Zend_Crypt_Hmac_ExceptionH 5Zend_Crypt_ExceptionG =Zend_Crypt_DiffieHellman'F QZend_Crypt_DiffieHellman_Exception!E EZend_Controller_Router_Route(D SZend_Controller_Router_Route_Static'C QZend_Controller_Router_Route_Regex(B SZend_Controller_Router_Route_Module*A WZend_Controller_Router_Route_Hostname'@ QZend_Controller_Router_Route_Chain*? WZend_Controller_Router_Route_Abstract#> IZend_Controller_Router_Rewrite%= MZend_Controller_Router_Exception$< KZend_Controller_Router_Abstract   a  vGtM"l;nDqD!



|
P
$				z	M	 }S#sS,l[.kGpT$jAm6vI                      5
 mZend_Feed_Reader_Extension_CreativeCommons_Entry-	 ]Zend_Feed_Reader_Extension_Content_Entry) UZend_Feed_Reader_Extension_Atom_Feed* WZend_Feed_Reader_Extension_Atom_Entry# IZend_Feed_Reader_EntryAbstract AZend_Feed_Reader_Entry_Rss  CZend_Feed_Reader_Entry_Atom  CZend_Feed_Reader_Collection3 iZend_Feed_Reader_Collection_CollectionAbstract) UZend_Feed_Reader_Collection_Category'  QZend_Feed_Reader_Collection_Author 9Zend_Feed_Pubsubhubbub&~ OZend_Feed_Pubsubhubbub_Subscriber/} aZend_Feed_Pubsubhubbub_Subscriber_Callback%| MZend_Feed_Pubsubhubbub_Publisher.{ _Zend_Feed_Pubsubhubbub_Model_Subscription/z aZend_Feed_Pubsubhubbub_Model_ModelAbstract(y SZend_Feed_Pubsubhubbub_HttpResponse%x MZend_Feed_Pubsubhubbub_Exception,w [Zend_Feed_Pubsubhubbub_CallbackAbstractv 3Zend_Feed_Exceptionu 3Zend_Feed_Entry_Rsst 5Zend_Feed_Entry_Atoms =Zend_Feed_Entry_Abstractr /Zend_Feed_Elementq /Zend_Feed_Builderp =Zend_Feed_Builder_Header$o KZend_Feed_Builder_Header_Itunes n CZend_Feed_Builder_Exceptionm ;Zend_Feed_Builder_Entryl )Zend_Feed_Atomk 1Zend_Feed_Abstractj )Zend_Exception)i UZend_EventManager_StaticEventManager)h UZend_EventManager_SharedEventManager)g UZend_EventManager_ResponseCollectionf SplStack)e UZend_EventManager_GlobalEventManager"d GZend_EventManager_FilterChain,c [Zend_EventManager_Filter_FilterIterator9b uZend_EventManager_Exception_InvalidArgumentException#a IZend_EventManager_EventManager` ;Zend_EventManager_Event_ )Zend_Dom_Query^ 7Zend_Dom_Query_Result] =Zend_Dom_Query_Css2Xpath\ 1Zend_Dom_Exception[ Zend_Dojo)Z UZend_Dojo_View_Helper_VerticalSlider,Y [Zend_Dojo_View_Helper_ValidationTextBox&X OZend_Dojo_View_Helper_TimeTextBox"W GZend_Dojo_View_Helper_TextBox#V IZend_Dojo_View_Helper_Textarea'U QZend_Dojo_View_Helper_TabContainer'T QZend_Dojo_View_Helper_SubmitButton)S UZend_Dojo_View_Helper_StackContainer)R UZend_Dojo_View_Helper_SplitContainer!Q EZend_Dojo_View_Helper_Slider)P UZend_Dojo_View_Helper_SimpleTextarea&O OZend_Dojo_View_Helper_RadioButton*N WZend_Dojo_View_Helper_PasswordTextBox(M SZend_Dojo_View_Helper_NumberTextBox(L SZend_Dojo_View_Helper_NumberSpinner+K YZend_Dojo_View_Helper_HorizontalSliderJ AZend_Dojo_View_Helper_Form*I WZend_Dojo_View_Helper_FilteringSelect!H EZend_Dojo_View_Helper_EditorG AZend_Dojo_View_Helper_Dojo)F UZend_Dojo_View_Helper_Dojo_Container)E UZend_Dojo_View_Helper_DijitContainer D CZend_Dojo_View_Helper_Dijit&C OZend_Dojo_View_Helper_DateTextBox&B OZend_Dojo_View_Helper_CustomDijit*A WZend_Dojo_View_Helper_CurrencyTextBox&@ OZend_Dojo_View_Helper_ContentPane#? IZend_Dojo_View_Helper_ComboBox#> IZend_Dojo_View_Helper_CheckBox!= EZend_Dojo_View_Helper_Button*< WZend_Dojo_View_Helper_BorderContainer(; SZend_Dojo_View_Helper_AccordionPane-: ]Zend_Dojo_View_Helper_AccordionContainer9 =Zend_Dojo_View_Exception8 )Zend_Dojo_Form7 9Zend_Dojo_Form_SubForm*6 WZend_Dojo_Form_Element_VerticalSlider-5 ]Zend_Dojo_Form_Element_ValidationTextBox'4 QZend_Dojo_Form_Element_TimeTextBox#3 IZend_Dojo_Form_Element_TextBox$2 KZend_Dojo_Form_Element_Textarea(1 SZend_Dojo_Form_Element_SubmitButton"0 GZend_Dojo_Form_Element_Slider*/ WZend_Dojo_Form_Element_SimpleTextarea'. QZend_Dojo_Form_Element_RadioButton+- YZend_Dojo_Form_Element_PasswordTextBox), UZend_Dojo_Form_Element_NumberTextBox)+ UZend_Dojo_Form_Element_NumberSpinner,* [Zend_Dojo_Form_Element_HorizontalSlider   b  a0 p<f@v@].



Q
				W	*f;{O'z]<jM.|^=w]EyW8rI                                            &l OZend_Filter_Word_DashToUnderscore%k MZend_Filter_Word_DashToSeparator%j MZend_Filter_Word_DashToCamelCase+i YZend_Filter_Word_CamelCaseToUnderscore*h WZend_Filter_Word_CamelCaseToSeparator%g MZend_Filter_Word_CamelCaseToDashf 7Zend_Filter_StripTagse ?Zend_Filter_StripNewlinesd 9Zend_Filter_StringTrimc ?Zend_Filter_StringToUpperb ?Zend_Filter_StringToLowera 5Zend_Filter_RealPath` ;Zend_Filter_PregReplace_ -Zend_Filter_Null&^ OZend_Filter_NormalizedToLocalized&] OZend_Filter_LocalizedToNormalized\ +Zend_Filter_Int[ /Zend_Filter_InputZ 7Zend_Filter_InflectorY =Zend_Filter_HtmlEntitiesX AZend_Filter_File_UpperCaseW ;Zend_Filter_File_RenameV AZend_Filter_File_LowerCaseU =Zend_Filter_File_EncryptT =Zend_Filter_File_DecryptS 7Zend_Filter_ExceptionR 3Zend_Filter_Encrypt Q CZend_Filter_Encrypt_OpensslP AZend_Filter_Encrypt_McryptO +Zend_Filter_DirN 1Zend_Filter_DigitsM 3Zend_Filter_DecryptL 9Zend_Filter_DecompressK 5Zend_Filter_CompressJ =Zend_Filter_Compress_ZipI =Zend_Filter_Compress_TarH =Zend_Filter_Compress_RarG =Zend_Filter_Compress_LzfF ;Zend_Filter_Compress_Gz*E WZend_Filter_Compress_CompressAbstractD =Zend_Filter_Compress_Bz2C 5Zend_Filter_CallbackB 3Zend_Filter_BooleanA 5Zend_Filter_BaseName@ /Zend_Filter_Alpha? /Zend_Filter_Alnum> 1Zend_File_Transfer!= EZend_File_Transfer_Exception$< KZend_File_Transfer_Adapter_Http(; SZend_File_Transfer_Adapter_Abstract: 9Zend_File_PhpClassFile9 AZend_File_ClassFileLocator8 Zend_Feed7 -Zend_Feed_Writer6 ;Zend_Feed_Writer_Source/5 aZend_Feed_Writer_Renderer_RendererAbstract'4 QZend_Feed_Writer_Renderer_Feed_Rss(3 SZend_Feed_Writer_Renderer_Feed_Atom/2 aZend_Feed_Writer_Renderer_Feed_Atom_Source51 mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract(0 SZend_Feed_Writer_Renderer_Entry_Rss)/ UZend_Feed_Writer_Renderer_Entry_Atom1. eZend_Feed_Writer_Renderer_Entry_Atom_Deleted- 7Zend_Feed_Writer_Feed', QZend_Feed_Writer_Feed_FeedAbstract<+ {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry8* sZend_Feed_Writer_Extension_Threading_Renderer_Entry4) kZend_Feed_Writer_Extension_Slash_Renderer_Entry0( cZend_Feed_Writer_Extension_RendererAbstract4' kZend_Feed_Writer_Extension_ITunes_Renderer_Feed5& mZend_Feed_Writer_Extension_ITunes_Renderer_Entry+% YZend_Feed_Writer_Extension_ITunes_Feed,$ [Zend_Feed_Writer_Extension_ITunes_Entry8# sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed9" uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry6! oZend_Feed_Writer_Extension_Content_Renderer_Entry2  gZend_Feed_Writer_Extension_Atom_Renderer_Feed6 oZend_Feed_Writer_Exception_InvalidMethodException 9Zend_Feed_Writer_Entry =Zend_Feed_Writer_Deleted 'Zend_Feed_Rss -Zend_Feed_Reader =Zend_Feed_Reader_FeedSet" GZend_Feed_Reader_FeedAbstract ?Zend_Feed_Reader_Feed_Rss AZend_Feed_Reader_Feed_Atom& OZend_Feed_Reader_Feed_Atom_Source3 iZend_Feed_Reader_Extension_WellFormedWeb_Entry, [Zend_Feed_Reader_Extension_Thread_Entry0 cZend_Feed_Reader_Extension_Syndication_Feed+ YZend_Feed_Reader_Extension_Slash_Entry, [Zend_Feed_Reader_Extension_Podcast_Feed- ]Zend_Feed_Reader_Extension_Podcast_Entry, [Zend_Feed_Reader_Extension_FeedAbstract- ]Zend_Feed_Reader_Extension_EntryAbstract/ aZend_Feed_Reader_Extension_DublinCore_Feed0 cZend_Feed_Reader_Extension_DublinCore_Entry4 kZend_Feed_Reader_Extension_CreativeCommons_Feed   g  }O i;{U0zX6
yX6




p
P
(
					_	>	zP'X6g9`6h?}W1	d;c<                          !S EZend_Gdata_App_HttpException$R KZend_Gdata_App_FeedSourceParent#Q IZend_Gdata_App_FeedEntryParentP 3Zend_Gdata_App_FeedO =Zend_Gdata_App_Extension!N EZend_Gdata_App_Extension_Uri%M MZend_Gdata_App_Extension_Updated#L IZend_Gdata_App_Extension_Title"K GZend_Gdata_App_Extension_Text%J MZend_Gdata_App_Extension_Summary&I OZend_Gdata_App_Extension_Subtitle$H KZend_Gdata_App_Extension_Source$G KZend_Gdata_App_Extension_Rights'F QZend_Gdata_App_Extension_Published$E KZend_Gdata_App_Extension_Person"D GZend_Gdata_App_Extension_Name"C GZend_Gdata_App_Extension_Logo"B GZend_Gdata_App_Extension_Link A CZend_Gdata_App_Extension_Id"@ GZend_Gdata_App_Extension_Icon'? QZend_Gdata_App_Extension_Generator#> IZend_Gdata_App_Extension_Email%= MZend_Gdata_App_Extension_Element$< KZend_Gdata_App_Extension_Edited#; IZend_Gdata_App_Extension_Draft%: MZend_Gdata_App_Extension_Control)9 UZend_Gdata_App_Extension_Contributor%8 MZend_Gdata_App_Extension_Content&7 OZend_Gdata_App_Extension_Category$6 KZend_Gdata_App_Extension_Author5 =Zend_Gdata_App_Exception4 5Zend_Gdata_App_Entry,3 [Zend_Gdata_App_CaptchaRequiredException#2 IZend_Gdata_App_BaseMediaSource1 3Zend_Gdata_App_Base*0 WZend_Gdata_App_BadMethodCallException!/ EZend_Gdata_App_AuthException. 5Zend_Gdata_Analytics+- YZend_Gdata_Analytics_Extension_TableId,, [Zend_Gdata_Analytics_Extension_Property*+ WZend_Gdata_Analytics_Extension_Metric* ?Zend_Gdata_Analytics_Goal-) ]Zend_Gdata_Analytics_Extension_Dimension#( IZend_Gdata_Analytics_DataQuery"' GZend_Gdata_Analytics_DataFeed#& IZend_Gdata_Analytics_DataEntry&% OZend_Gdata_Analytics_AccountQuery%$ MZend_Gdata_Analytics_AccountFeed&# OZend_Gdata_Analytics_AccountEntry" Zend_Form! /Zend_Form_SubForm  3Zend_Form_Exception /Zend_Form_Element ;Zend_Form_Element_Xhtml AZend_Form_Element_Textarea 9Zend_Form_Element_Text =Zend_Form_Element_Submit =Zend_Form_Element_Select ;Zend_Form_Element_Reset ;Zend_Form_Element_Radio AZend_Form_Element_Password 9Zend_Form_Element_Note" GZend_Form_Element_Multiselect$ KZend_Form_Element_MultiCheckbox ;Zend_Form_Element_Multi ;Zend_Form_Element_Image =Zend_Form_Element_Hidden 9Zend_Form_Element_Hash 9Zend_Form_Element_File  CZend_Form_Element_Exception AZend_Form_Element_Checkbox ?Zend_Form_Element_Captcha =Zend_Form_Element_Button
 9Zend_Form_DisplayGroup#	 IZend_Form_Decorator_ViewScript# IZend_Form_Decorator_ViewHelper  CZend_Form_Decorator_Tooltip( SZend_Form_Decorator_PrepareElements ?Zend_Form_Decorator_Label ?Zend_Form_Decorator_Image  CZend_Form_Decorator_HtmlTag# IZend_Form_Decorator_FormErrors% MZend_Form_Decorator_FormElements  =Zend_Form_Decorator_Form =Zend_Form_Decorator_File!~ EZend_Form_Decorator_Fieldset"} GZend_Form_Decorator_Exception| AZend_Form_Decorator_Errors${ KZend_Form_Decorator_DtDdWrapper$z KZend_Form_Decorator_Description y CZend_Form_Decorator_Captcha%x MZend_Form_Decorator_Captcha_Word*w WZend_Form_Decorator_Captcha_ReCaptcha!v EZend_Form_Decorator_Callback!u EZend_Form_Decorator_Abstractt #Zend_Filter+s YZend_Filter_Word_UnderscoreToSeparator&r OZend_Filter_Word_UnderscoreToDash+q YZend_Filter_Word_UnderscoreToCamelCase*p WZend_Filter_Word_SeparatorToSeparator%o MZend_Filter_Word_SeparatorToDash*n WZend_Filter_Word_SeparatorToCamelCase(m SZend_Filter_Word_Separator_Abstract   _  wU.g5zK!xS:h;


u
F
					e	<		uFQ#xP"}U.|V/~LpJ u]5                                 $2 KZend_Gdata_Gapps_EmailListQuery#1 IZend_Gdata_Gapps_EmailListFeed$0 KZend_Gdata_Gapps_EmailListEntry/ +Zend_Gdata_Feed. 5Zend_Gdata_Extension- =Zend_Gdata_Extension_Who, AZend_Gdata_Extension_Where+ ?Zend_Gdata_Extension_When$* KZend_Gdata_Extension_Visibility&) OZend_Gdata_Extension_Transparency"( GZend_Gdata_Extension_Reminder-' ]Zend_Gdata_Extension_RecurrenceException$& KZend_Gdata_Extension_Recurrence % CZend_Gdata_Extension_Rating'$ QZend_Gdata_Extension_OriginalEvent0# cZend_Gdata_Extension_OpenSearchTotalResults." _Zend_Gdata_Extension_OpenSearchStartIndex0! cZend_Gdata_Extension_OpenSearchItemsPerPage"  GZend_Gdata_Extension_FeedLink* WZend_Gdata_Extension_ExtendedProperty% MZend_Gdata_Extension_EventStatus# IZend_Gdata_Extension_EntryLink" GZend_Gdata_Extension_Comments& OZend_Gdata_Extension_AttendeeType( SZend_Gdata_Extension_AttendeeStatus +Zend_Gdata_Exif 5Zend_Gdata_Exif_Feed# IZend_Gdata_Exif_Extension_Time# IZend_Gdata_Exif_Extension_Tags$ KZend_Gdata_Exif_Extension_Model# IZend_Gdata_Exif_Extension_Make" GZend_Gdata_Exif_Extension_Iso, [Zend_Gdata_Exif_Extension_ImageUniqueId$ KZend_Gdata_Exif_Extension_FStop* WZend_Gdata_Exif_Extension_FocalLength$ KZend_Gdata_Exif_Extension_Flash' QZend_Gdata_Exif_Extension_Exposure' QZend_Gdata_Exif_Extension_Distance 7Zend_Gdata_Exif_Entry -Zend_Gdata_Entry
 7Zend_Gdata_DublinCore*	 WZend_Gdata_DublinCore_Extension_Title, [Zend_Gdata_DublinCore_Extension_Subject+ YZend_Gdata_DublinCore_Extension_Rights. _Zend_Gdata_DublinCore_Extension_Publisher- ]Zend_Gdata_DublinCore_Extension_Language/ aZend_Gdata_DublinCore_Extension_Identifier+ YZend_Gdata_DublinCore_Extension_Format0 cZend_Gdata_DublinCore_Extension_Description) UZend_Gdata_DublinCore_Extension_Date,  [Zend_Gdata_DublinCore_Extension_Creator +Zend_Gdata_Docs~ 7Zend_Gdata_Docs_Query%} MZend_Gdata_Docs_DocumentListFeed&| OZend_Gdata_Docs_DocumentListEntry{ 9Zend_Gdata_ClientLoginz 3Zend_Gdata_Calendar!y EZend_Gdata_Calendar_ListFeed"x GZend_Gdata_Calendar_ListEntry-w ]Zend_Gdata_Calendar_Extension_WebContent+v YZend_Gdata_Calendar_Extension_Timezone9u uZend_Gdata_Calendar_Extension_SendEventNotifications+t YZend_Gdata_Calendar_Extension_Selected+s YZend_Gdata_Calendar_Extension_QuickAdd'r QZend_Gdata_Calendar_Extension_Link)q UZend_Gdata_Calendar_Extension_Hidden(p SZend_Gdata_Calendar_Extension_Color.o _Zend_Gdata_Calendar_Extension_AccessLevel#n IZend_Gdata_Calendar_EventQuery"m GZend_Gdata_Calendar_EventFeed#l IZend_Gdata_Calendar_EventEntryk -Zend_Gdata_Books!j EZend_Gdata_Books_VolumeQuery i CZend_Gdata_Books_VolumeFeed!h EZend_Gdata_Books_VolumeEntry+g YZend_Gdata_Books_Extension_Viewability-f ]Zend_Gdata_Books_Extension_ThumbnailLink&e OZend_Gdata_Books_Extension_Review+d YZend_Gdata_Books_Extension_PreviewLink(c SZend_Gdata_Books_Extension_InfoLink-b ]Zend_Gdata_Books_Extension_Embeddability)a UZend_Gdata_Books_Extension_BooksLink-` ]Zend_Gdata_Books_Extension_BooksCategory._ _Zend_Gdata_Books_Extension_AnnotationLink$^ KZend_Gdata_Books_CollectionFeed%] MZend_Gdata_Books_CollectionEntry\ 1Zend_Gdata_AuthSub[ )Zend_Gdata_App$Z KZend_Gdata_App_VersionExceptionY 3Zend_Gdata_App_Util#X IZend_Gdata_App_MediaFileSourceW ?Zend_Gdata_App_MediaEntry2V gZend_Gdata_App_LoggingHttpClientAdapterSocketU AZend_Gdata_App_IOException,T [Zend_Gdata_App_InvalidArgumentException   a  nO"yP,	wP*yO,
~`=




h
O
2
					X	1	|O!`.p?N c?nA]0v?                             ) UZend_Gdata_Photos_Extension_Position( SZend_Gdata_Photos_Extension_PhotoId3 iZend_Gdata_Photos_Extension_NumPhotosRemaining* WZend_Gdata_Photos_Extension_NumPhotos) UZend_Gdata_Photos_Extension_Nickname% MZend_Gdata_Photos_Extension_Name2 gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum) UZend_Gdata_Photos_Extension_Location# IZend_Gdata_Photos_Extension_Id'
 QZend_Gdata_Photos_Extension_Height2	 gZend_Gdata_Photos_Extension_CommentingEnabled- ]Zend_Gdata_Photos_Extension_CommentCount' QZend_Gdata_Photos_Extension_Client) UZend_Gdata_Photos_Extension_Checksum* WZend_Gdata_Photos_Extension_BytesUsed( SZend_Gdata_Photos_Extension_AlbumId' QZend_Gdata_Photos_Extension_Access# IZend_Gdata_Photos_CommentEntry! EZend_Gdata_Photos_AlbumQuery   CZend_Gdata_Photos_AlbumFeed! EZend_Gdata_Photos_AlbumEntry~ 3Zend_Gdata_MimeFile} ?Zend_Gdata_MimeBodyString| AZend_Gdata_MediaMimeStream{ -Zend_Gdata_Mediaz 7Zend_Gdata_Media_Feed*y WZend_Gdata_Media_Extension_MediaTitle.x _Zend_Gdata_Media_Extension_MediaThumbnail)w UZend_Gdata_Media_Extension_MediaText0v cZend_Gdata_Media_Extension_MediaRestriction+u YZend_Gdata_Media_Extension_MediaRating+t YZend_Gdata_Media_Extension_MediaPlayer-s ]Zend_Gdata_Media_Extension_MediaKeywords)r UZend_Gdata_Media_Extension_MediaHash*q WZend_Gdata_Media_Extension_MediaGroup0p cZend_Gdata_Media_Extension_MediaDescription+o YZend_Gdata_Media_Extension_MediaCredit.n _Zend_Gdata_Media_Extension_MediaCopyright,m [Zend_Gdata_Media_Extension_MediaContent-l ]Zend_Gdata_Media_Extension_MediaCategoryk 9Zend_Gdata_Media_Entryj AZend_Gdata_Kind_EventEntryi 7Zend_Gdata_HttpClient*h WZend_Gdata_HttpAdapterStreamingSocket)g UZend_Gdata_HttpAdapterStreamingProxyf /Zend_Gdata_Healthe ;Zend_Gdata_Health_Query&d OZend_Gdata_Health_ProfileListFeed'c QZend_Gdata_Health_ProfileListEntry"b GZend_Gdata_Health_ProfileFeed#a IZend_Gdata_Health_ProfileEntry$` KZend_Gdata_Health_Extension_Ccr_ )Zend_Gdata_Geo^ 3Zend_Gdata_Geo_Feed$] KZend_Gdata_Geo_Extension_GmlPos&\ OZend_Gdata_Geo_Extension_GmlPoint)[ UZend_Gdata_Geo_Extension_GeoRssWhereZ 5Zend_Gdata_Geo_EntryY -Zend_Gdata_Gbase"X GZend_Gdata_Gbase_SnippetQuery!W EZend_Gdata_Gbase_SnippetFeed"V GZend_Gdata_Gbase_SnippetEntryU 9Zend_Gdata_Gbase_QueryT AZend_Gdata_Gbase_ItemQueryS ?Zend_Gdata_Gbase_ItemFeedR AZend_Gdata_Gbase_ItemEntryQ 7Zend_Gdata_Gbase_Feed-P ]Zend_Gdata_Gbase_Extension_BaseAttributeO 9Zend_Gdata_Gbase_EntryN -Zend_Gdata_GappsM AZend_Gdata_Gapps_UserQueryL ?Zend_Gdata_Gapps_UserFeedK AZend_Gdata_Gapps_UserEntry&J OZend_Gdata_Gapps_ServiceExceptionI 9Zend_Gdata_Gapps_Query H CZend_Gdata_Gapps_OwnerQueryG AZend_Gdata_Gapps_OwnerFeed F CZend_Gdata_Gapps_OwnerEntry#E IZend_Gdata_Gapps_NicknameQuery"D GZend_Gdata_Gapps_NicknameFeed#C IZend_Gdata_Gapps_NicknameEntry!B EZend_Gdata_Gapps_MemberQuery A CZend_Gdata_Gapps_MemberFeed!@ EZend_Gdata_Gapps_MemberEntry ? CZend_Gdata_Gapps_GroupQuery> AZend_Gdata_Gapps_GroupFeed = CZend_Gdata_Gapps_GroupEntry%< MZend_Gdata_Gapps_Extension_Quota(; SZend_Gdata_Gapps_Extension_Property(: SZend_Gdata_Gapps_Extension_Nickname$9 KZend_Gdata_Gapps_Extension_Name%8 MZend_Gdata_Gapps_Extension_Login)7 UZend_Gdata_Gapps_Extension_EmailList6 9Zend_Gdata_Gapps_Error-5 ]Zend_Gdata_Gapps_EmailListRecipientQuery,4 [Zend_Gdata_Gapps_EmailListRecipientFeed-3 ]Zend_Gdata_Gapps_EmailListRecipientEntry   Y  sJnDlH.j;zQ'



i
I
 					Z	-	Pi;R"m=N$g<Y,b4                                 )l UZend_Gdata_YouTube_SubscriptionEntry)k UZend_Gdata_YouTube_PlaylistVideoFeed*j WZend_Gdata_YouTube_PlaylistVideoEntry(i SZend_Gdata_YouTube_PlaylistListFeed)h UZend_Gdata_YouTube_PlaylistListEntry"g GZend_Gdata_YouTube_MediaEntry!f EZend_Gdata_YouTube_InboxFeed"e GZend_Gdata_YouTube_InboxEntry)d UZend_Gdata_YouTube_Extension_VideoId*c WZend_Gdata_YouTube_Extension_Username*b WZend_Gdata_YouTube_Extension_Uploaded'a QZend_Gdata_YouTube_Extension_Token(` SZend_Gdata_YouTube_Extension_Status,_ [Zend_Gdata_YouTube_Extension_Statistics'^ QZend_Gdata_YouTube_Extension_State(] SZend_Gdata_YouTube_Extension_School-\ ]Zend_Gdata_YouTube_Extension_ReleaseDate.[ _Zend_Gdata_YouTube_Extension_Relationship*Z WZend_Gdata_YouTube_Extension_Recorded&Y OZend_Gdata_YouTube_Extension_Racy-X ]Zend_Gdata_YouTube_Extension_QueryString)W UZend_Gdata_YouTube_Extension_Private*V WZend_Gdata_YouTube_Extension_Position/U aZend_Gdata_YouTube_Extension_PlaylistTitle,T [Zend_Gdata_YouTube_Extension_PlaylistId,S [Zend_Gdata_YouTube_Extension_Occupation)R UZend_Gdata_YouTube_Extension_NoEmbed'Q QZend_Gdata_YouTube_Extension_Music(P SZend_Gdata_YouTube_Extension_Movies-O ]Zend_Gdata_YouTube_Extension_MediaRating,N [Zend_Gdata_YouTube_Extension_MediaGroup-M ]Zend_Gdata_YouTube_Extension_MediaCredit.L _Zend_Gdata_YouTube_Extension_MediaContent*K WZend_Gdata_YouTube_Extension_Location&J OZend_Gdata_YouTube_Extension_Link*I WZend_Gdata_YouTube_Extension_LastName*H WZend_Gdata_YouTube_Extension_Hometown)G UZend_Gdata_YouTube_Extension_Hobbies(F SZend_Gdata_YouTube_Extension_Gender+E YZend_Gdata_YouTube_Extension_FirstName*D WZend_Gdata_YouTube_Extension_Duration-C ]Zend_Gdata_YouTube_Extension_Description+B YZend_Gdata_YouTube_Extension_CountHint)A UZend_Gdata_YouTube_Extension_Control)@ UZend_Gdata_YouTube_Extension_Company'? QZend_Gdata_YouTube_Extension_Books%> MZend_Gdata_YouTube_Extension_Age)= UZend_Gdata_YouTube_Extension_AboutMe#< IZend_Gdata_YouTube_ContactFeed$; KZend_Gdata_YouTube_ContactEntry#: IZend_Gdata_YouTube_CommentFeed$9 KZend_Gdata_YouTube_CommentEntry$8 KZend_Gdata_YouTube_ActivityFeed%7 MZend_Gdata_YouTube_ActivityEntry6 ;Zend_Gdata_Spreadsheets*5 WZend_Gdata_Spreadsheets_WorksheetFeed+4 YZend_Gdata_Spreadsheets_WorksheetEntry,3 [Zend_Gdata_Spreadsheets_SpreadsheetFeed-2 ]Zend_Gdata_Spreadsheets_SpreadsheetEntry&1 OZend_Gdata_Spreadsheets_ListQuery%0 MZend_Gdata_Spreadsheets_ListFeed&/ OZend_Gdata_Spreadsheets_ListEntry/. aZend_Gdata_Spreadsheets_Extension_RowCount-- ]Zend_Gdata_Spreadsheets_Extension_Custom/, aZend_Gdata_Spreadsheets_Extension_ColCount++ YZend_Gdata_Spreadsheets_Extension_Cell** WZend_Gdata_Spreadsheets_DocumentQuery&) OZend_Gdata_Spreadsheets_CellQuery%( MZend_Gdata_Spreadsheets_CellFeed&' OZend_Gdata_Spreadsheets_CellEntry& -Zend_Gdata_Query% /Zend_Gdata_Photos $ CZend_Gdata_Photos_UserQuery# AZend_Gdata_Photos_UserFeed " CZend_Gdata_Photos_UserEntry! AZend_Gdata_Photos_TagEntry!  EZend_Gdata_Photos_PhotoQuery  CZend_Gdata_Photos_PhotoFeed! EZend_Gdata_Photos_PhotoEntry& OZend_Gdata_Photos_Extension_Width' QZend_Gdata_Photos_Extension_Weight( SZend_Gdata_Photos_Extension_Version% MZend_Gdata_Photos_Extension_User* WZend_Gdata_Photos_Extension_Timestamp* WZend_Gdata_Photos_Extension_Thumbnail% MZend_Gdata_Photos_Extension_Size) UZend_Gdata_Photos_Extension_Rotation+ YZend_Gdata_Photos_Extension_QuotaLimit- ]Zend_Gdata_Photos_Extension_QuotaCurrent   k  ]7	iC zF#wS/xA




g
9
				x	^	D	(	iB R4 wbF$lL3{Q)
kHmE& Y8                                W #Zend_Loader#V IZend_Loader_StandardAutoloaderU =Zend_Loader_PluginLoader'T QZend_Loader_PluginLoader_ExceptionS 7Zend_Loader_Exception3R iZend_Loader_Exception_InvalidArgumentException#Q IZend_Loader_ClassMapAutoloader"P GZend_Loader_AutoloaderFactoryO 9Zend_Loader_Autoloader$N KZend_Loader_Autoloader_ResourceM Zend_LdapL )Zend_Ldap_NodeK 7Zend_Ldap_Node_Schema#J IZend_Ldap_Node_Schema_OpenLdap/I aZend_Ldap_Node_Schema_ObjectClass_OpenLdap6H oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectoryG AZend_Ldap_Node_Schema_Item1F eZend_Ldap_Node_Schema_AttributeType_OpenLdap8E sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory*D WZend_Ldap_Node_Schema_ActiveDirectoryC 9Zend_Ldap_Node_RootDse$B KZend_Ldap_Node_RootDse_OpenLdap&A OZend_Ldap_Node_RootDse_eDirectory+@ YZend_Ldap_Node_RootDse_ActiveDirectory? ?Zend_Ldap_Node_Collection$> KZend_Ldap_Node_ChildrenIterator= ;Zend_Ldap_Node_Abstract< 9Zend_Ldap_Ldif_Encoder; -Zend_Ldap_Filter: ;Zend_Ldap_Filter_String9 3Zend_Ldap_Filter_Or8 5Zend_Ldap_Filter_Not7 7Zend_Ldap_Filter_Mask6 =Zend_Ldap_Filter_Logical5 AZend_Ldap_Filter_Exception4 5Zend_Ldap_Filter_And3 ?Zend_Ldap_Filter_Abstract2 3Zend_Ldap_Exception1 %Zend_Ldap_Dn0 3Zend_Ldap_Converter"/ GZend_Ldap_Converter_Exception. 5Zend_Ldap_Collection*- WZend_Ldap_Collection_Iterator_Default, 3Zend_Ldap_Attribute+ #Zend_Layout* 7Zend_Layout_Exception)) UZend_Layout_Controller_Plugin_Layout0( cZend_Layout_Controller_Action_Helper_Layout' Zend_Json& -Zend_Json_Server% 5Zend_Json_Server_Smd!$ EZend_Json_Server_Smd_Service# ?Zend_Json_Server_Response#" IZend_Json_Server_Response_Http! =Zend_Json_Server_Request"  GZend_Json_Server_Request_Http AZend_Json_Server_Exception 9Zend_Json_Server_Error 9Zend_Json_Server_Cache )Zend_Json_Expr 3Zend_Json_Exception /Zend_Json_Encoder /Zend_Json_Decoder 3Zend_Http_UserAgent" GZend_Http_UserAgent_Validator =Zend_Http_UserAgent_Text( SZend_Http_UserAgent_Storage_Session. _Zend_Http_UserAgent_Storage_NonPersistent* WZend_Http_UserAgent_Storage_Exception =Zend_Http_UserAgent_Spam ?Zend_Http_UserAgent_Probe  CZend_Http_UserAgent_Offline AZend_Http_UserAgent_Mobile =Zend_Http_UserAgent_Feed+ YZend_Http_UserAgent_Features_Exception3 iZend_Http_UserAgent_Features_Adapter_TeraWurfl5 mZend_Http_UserAgent_Features_Adapter_DeviceAtlas2
 gZend_Http_UserAgent_Features_Adapter_Browscap"	 GZend_Http_UserAgent_Exception ?Zend_Http_UserAgent_Email  CZend_Http_UserAgent_Desktop  CZend_Http_UserAgent_Console  CZend_Http_UserAgent_Checker ;Zend_Http_UserAgent_Bot' QZend_Http_UserAgent_AbstractDevice 1Zend_Http_Response ?Zend_Http_Response_Stream  AZend_Http_Header_SetCookie0 cZend_Http_Header_Exception_RuntimeException8~ sZend_Http_Header_Exception_InvalidArgumentException} 3Zend_Http_Exception| 3Zend_Http_CookieJar{ -Zend_Http_Cookiez -Zend_Http_Clienty AZend_Http_Client_Exception"x GZend_Http_Client_Adapter_Test$w KZend_Http_Client_Adapter_Socket#v IZend_Http_Client_Adapter_Proxy'u QZend_Http_Client_Adapter_Exception"t GZend_Http_Client_Adapter_Curls !Zend_Gdatar 1Zend_Gdata_YouTube"q GZend_Gdata_YouTube_VideoQuery!p EZend_Gdata_YouTube_VideoFeed"o GZend_Gdata_YouTube_VideoEntry(n SZend_Gdata_YouTube_UserProfileEntry(m SZend_Gdata_YouTube_SubscriptionFeed   x  fE,zV3y\? w[D c8




a
B
 
				x	R	1	tM&b4sW6yZ;gL.lP4lR>%	h1      0O cZend_Mobile_Push_Exception_InvalidAuthToken3N iZend_Mobile_Push_Exception_DeviceQuotaExceededM 7Zend_Mobile_Push_ApnsL ?Zend_Mobile_Push_AbstractK 7Zend_Mobile_ExceptionJ Zend_MimeI )Zend_Mime_PartH /Zend_Mime_MessageG 3Zend_Mime_ExceptionF -Zend_Mime_DecodeE #Zend_MemoryD /Zend_Memory_ValueC 3Zend_Memory_ManagerB 7Zend_Memory_ExceptionA 7Zend_Memory_Container"@ GZend_Memory_Container_Movable!? EZend_Memory_Container_Locked!> EZend_Memory_AccessController= 3Zend_Measure_Weight< 3Zend_Measure_Volume%; MZend_Measure_Viscosity_Kinematic#: IZend_Measure_Viscosity_Dynamic9 3Zend_Measure_Torque8 /Zend_Measure_Time7 =Zend_Measure_Temperature6 1Zend_Measure_Speed5 7Zend_Measure_Pressure4 1Zend_Measure_Power3 3Zend_Measure_Number2 9Zend_Measure_Lightness1 3Zend_Measure_Length0 ?Zend_Measure_Illumination/ 9Zend_Measure_Frequency. 1Zend_Measure_Force- =Zend_Measure_Flow_Volume, 9Zend_Measure_Flow_Mole+ 9Zend_Measure_Flow_Mass* 9Zend_Measure_Exception) 3Zend_Measure_Energy( 5Zend_Measure_Density' 5Zend_Measure_Current & CZend_Measure_Cooking_Weight % CZend_Measure_Cooking_Volume$ =Zend_Measure_Capacitance# 3Zend_Measure_Binary" /Zend_Measure_Area! 1Zend_Measure_Angle  ?Zend_Measure_Acceleration 7Zend_Measure_Abstract #Zend_Markup 7Zend_Markup_TokenList /Zend_Markup_Token* WZend_Markup_Renderer_RendererAbstract ?Zend_Markup_Renderer_Html" GZend_Markup_Renderer_Html_Url# IZend_Markup_Renderer_Html_List" GZend_Markup_Renderer_Html_Img+ YZend_Markup_Renderer_Html_HtmlAbstract# IZend_Markup_Renderer_Html_Code# IZend_Markup_Renderer_Exception! EZend_Markup_Parser_Exception ?Zend_Markup_Parser_Bbcode 7Zend_Markup_Exception Zend_Mail =Zend_Mail_Transport_Smtp! EZend_Mail_Transport_Sendmail =Zend_Mail_Transport_File" GZend_Mail_Transport_Exception! EZend_Mail_Transport_Abstract
 /Zend_Mail_Storage'	 QZend_Mail_Storage_Writable_Maildir 9Zend_Mail_Storage_Pop3 9Zend_Mail_Storage_Mbox ?Zend_Mail_Storage_Maildir 9Zend_Mail_Storage_Imap =Zend_Mail_Storage_Folder" GZend_Mail_Storage_Folder_Mbox% MZend_Mail_Storage_Folder_Maildir  CZend_Mail_Storage_Exception  AZend_Mail_Storage_Abstract ;Zend_Mail_Protocol_Smtp'~ QZend_Mail_Protocol_Smtp_Auth_Plain'} QZend_Mail_Protocol_Smtp_Auth_Login)| UZend_Mail_Protocol_Smtp_Auth_Crammd5{ ;Zend_Mail_Protocol_Pop3z ;Zend_Mail_Protocol_Imap!y EZend_Mail_Protocol_Exception x CZend_Mail_Protocol_Abstractw )Zend_Mail_Partv 3Zend_Mail_Part_Fileu /Zend_Mail_Messaget 9Zend_Mail_Message_Files 3Zend_Mail_Exceptionr Zend_Log q CZend_Log_Writer_ZendMonitorp 9Zend_Log_Writer_Syslogo 9Zend_Log_Writer_Streamn 5Zend_Log_Writer_Nullm 5Zend_Log_Writer_Mockl 5Zend_Log_Writer_Mailk ;Zend_Log_Writer_Firebugj 1Zend_Log_Writer_Dbi =Zend_Log_Writer_Abstracth 9Zend_Log_Formatter_Xmlg ?Zend_Log_Formatter_Simplef AZend_Log_Formatter_Firebug e CZend_Log_Formatter_Abstractd =Zend_Log_Filter_Suppressc =Zend_Log_Filter_Priorityb ;Zend_Log_Filter_Messagea =Zend_Log_Filter_Abstract` 1Zend_Log_Exception_ #Zend_Locale^ -Zend_Locale_Math] =Zend_Locale_Math_PhpMath\ AZend_Locale_Math_Exception[ 1Zend_Locale_FormatZ 7Zend_Locale_ExceptionY -Zend_Locale_Data!X EZend_Locale_Data_Translation   m  g7gApJ,yX;#	mC#



r
R
'
					n	P	-	tWC}\2w`C bD&}^@ }\@r\@^&               2< gZend_Pdf_Destination_FitBoundingBoxVertically4; kZend_Pdf_Destination_FitBoundingBoxHorizontally(: SZend_Pdf_Destination_FitBoundingBox9 =Zend_Pdf_Destination_Fit"8 GZend_Pdf_Destination_Explicit7 )Zend_Pdf_Color6 1Zend_Pdf_Color_Rgb5 3Zend_Pdf_Color_Html4 =Zend_Pdf_Color_GrayScale3 3Zend_Pdf_Color_Cmyk2 'Zend_Pdf_Cmap1 AZend_Pdf_Cmap_TrimmedTable!0 EZend_Pdf_Cmap_SegmentToDelta/ AZend_Pdf_Cmap_ByteEncoding&. OZend_Pdf_Cmap_ByteEncoding_Static- +Zend_Pdf_Canvas, =Zend_Pdf_Canvas_Abstract+ 3Zend_Pdf_Annotation* =Zend_Pdf_Annotation_Text) AZend_Pdf_Annotation_Markup( =Zend_Pdf_Annotation_Link'' QZend_Pdf_Annotation_FileAttachment& +Zend_Pdf_Action% 3Zend_Pdf_Action_URI$ ;Zend_Pdf_Action_Unknown# 7Zend_Pdf_Action_Trans" 9Zend_Pdf_Action_Thread! AZend_Pdf_Action_SubmitForm  7Zend_Pdf_Action_Sound  CZend_Pdf_Action_SetOCGState ?Zend_Pdf_Action_ResetForm ?Zend_Pdf_Action_Rendition 7Zend_Pdf_Action_Named 7Zend_Pdf_Action_Movie 9Zend_Pdf_Action_Launch AZend_Pdf_Action_JavaScript AZend_Pdf_Action_ImportData 5Zend_Pdf_Action_Hide 7Zend_Pdf_Action_GoToR 7Zend_Pdf_Action_GoToE AZend_Pdf_Action_GoTo3DView 5Zend_Pdf_Action_GoTo )Zend_Paginator- ]Zend_Paginator_SerializableLimitIterator* WZend_Paginator_ScrollingStyle_Sliding* WZend_Paginator_ScrollingStyle_Jumping* WZend_Paginator_ScrollingStyle_Elastic& OZend_Paginator_ScrollingStyle_All =Zend_Paginator_Exception  CZend_Paginator_Adapter_Null$
 KZend_Paginator_Adapter_Iterator)	 UZend_Paginator_Adapter_DbTableSelect$ KZend_Paginator_Adapter_DbSelect! EZend_Paginator_Adapter_Array #Zend_OpenId 5Zend_OpenId_Provider ?Zend_OpenId_Provider_User& OZend_OpenId_Provider_User_Session! EZend_OpenId_Provider_Storage& OZend_OpenId_Provider_Storage_File  7Zend_OpenId_Extension AZend_OpenId_Extension_Sreg~ 7Zend_OpenId_Exception} 5Zend_OpenId_Consumer!| EZend_OpenId_Consumer_Storage&{ OZend_OpenId_Consumer_Storage_Filez !Zend_Oauthy -Zend_Oauth_Tokenx =Zend_Oauth_Token_Request'w QZend_Oauth_Token_AuthorizedRequestv ;Zend_Oauth_Token_Access+u YZend_Oauth_Signature_SignatureAbstractt =Zend_Oauth_Signature_Rsa#s IZend_Oauth_Signature_Plaintextr ?Zend_Oauth_Signature_Hmacq +Zend_Oauth_Httpp ;Zend_Oauth_Http_Utility&o OZend_Oauth_Http_UserAuthorization!n EZend_Oauth_Http_RequestToken m CZend_Oauth_Http_AccessTokenl 5Zend_Oauth_Exceptionk 3Zend_Oauth_Consumerj /Zend_Oauth_Configi /Zend_Oauth_Clienth +Zend_Navigationg 5Zend_Navigation_Pagef =Zend_Navigation_Page_Urie =Zend_Navigation_Page_Mvcd ?Zend_Navigation_Exceptionc ?Zend_Navigation_Container$b KZend_Mobile_Push_Test_ApnsProxy"a GZend_Mobile_Push_Response_Gcm` 7Zend_Mobile_Push_Mpns"_ GZend_Mobile_Push_Message_Mpns(^ SZend_Mobile_Push_Message_Mpns_Toast'] QZend_Mobile_Push_Message_Mpns_Tile&\ OZend_Mobile_Push_Message_Mpns_Raw![ EZend_Mobile_Push_Message_Gcm'Z QZend_Mobile_Push_Message_Exception"Y GZend_Mobile_Push_Message_Apns&X OZend_Mobile_Push_Message_AbstractW 5Zend_Mobile_Push_GcmV AZend_Mobile_Push_Exception1U eZend_Mobile_Push_Exception_ServerUnavailable-T ]Zend_Mobile_Push_Exception_QuotaExceeded,S [Zend_Mobile_Push_Exception_InvalidTopic,R [Zend_Mobile_Push_Exception_InvalidToken3Q iZend_Mobile_Push_Exception_InvalidRegistration.P _Zend_Mobile_Push_Exception_InvalidPayload   c  ~[6uW6xX1d:]7




^
H
1
						X	0	^(G	N`%Z5`9mT/zY6                                              CZend_Queue_Adapter_Activemq -Zend_ProgressBar AZend_ProgressBar_Exception =Zend_ProgressBar_Adapter$ KZend_ProgressBar_Adapter_JsPush$ KZend_ProgressBar_Adapter_JsPull' QZend_ProgressBar_Adapter_Exception% MZend_ProgressBar_Adapter_Console Zend_Pdf! EZend_Pdf_UpdateInfoContainer -Zend_Pdf_Trailer ;Zend_Pdf_Trailer_Keeper AZend_Pdf_Trailer_Generator +Zend_Pdf_Target )Zend_Pdf_Style 7Zend_Pdf_StringParser /Zend_Pdf_Resource ?Zend_Pdf_Resource_Unified# IZend_Pdf_Resource_ImageFactory ;Zend_Pdf_Resource_Image! EZend_Pdf_Resource_Image_Tiff 
 CZend_Pdf_Resource_Image_Png!	 EZend_Pdf_Resource_Image_Jpeg$ KZend_Pdf_Resource_GraphicsState 9Zend_Pdf_Resource_Font! EZend_Pdf_Resource_Font_Type0" GZend_Pdf_Resource_Font_Simple+ YZend_Pdf_Resource_Font_Simple_Standard8 sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats6 oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman7 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic;  yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic5 mZend_Pdf_Resource_Font_Simple_Standard_TimesBold2~ gZend_Pdf_Resource_Font_Simple_Standard_Symbol<} {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueA| Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique9{ uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold5z mZend_Pdf_Resource_Font_Simple_Standard_Helvetica:y wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique>x Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique7w qZend_Pdf_Resource_Font_Simple_Standard_CourierBold3v iZend_Pdf_Resource_Font_Simple_Standard_Courier)u UZend_Pdf_Resource_Font_Simple_Parsed2t gZend_Pdf_Resource_Font_Simple_Parsed_TrueType*s WZend_Pdf_Resource_Font_FontDescriptor%r MZend_Pdf_Resource_Font_Extracted#q IZend_Pdf_Resource_Font_CidFont,p [Zend_Pdf_Resource_Font_CidFont_TrueType o CZend_Pdf_Resource_Extractor$n KZend_Pdf_Resource_ContentStream3m iZend_Pdf_RecursivelyIteratableObjectsContainerl +Zend_Pdf_Parserk 'Zend_Pdf_Pagej -Zend_Pdf_Outlinei ;Zend_Pdf_Outline_Loadedh =Zend_Pdf_Outline_Createdg /Zend_Pdf_NameTreef )Zend_Pdf_Imagee 'Zend_Pdf_Fontd ?Zend_Pdf_Filter_RunLength c CZend_Pdf_Filter_Compression$b KZend_Pdf_Filter_Compression_Lzw&a OZend_Pdf_Filter_Compression_Flate` =Zend_Pdf_Filter_AsciiHex_ ;Zend_Pdf_Filter_Ascii85"^ GZend_Pdf_FileParserDataSource)] UZend_Pdf_FileParserDataSource_String'\ QZend_Pdf_FileParserDataSource_File[ 3Zend_Pdf_FileParserZ ?Zend_Pdf_FileParser_Image"Y GZend_Pdf_FileParser_Image_PngX =Zend_Pdf_FileParser_Font&W OZend_Pdf_FileParser_Font_OpenType/V aZend_Pdf_FileParser_Font_OpenType_TrueTypeU 1Zend_Pdf_ExceptionT ;Zend_Pdf_ElementFactory"S GZend_Pdf_ElementFactory_ProxyR -Zend_Pdf_ElementQ ;Zend_Pdf_Element_String#P IZend_Pdf_Element_String_BinaryO ;Zend_Pdf_Element_StreamN AZend_Pdf_Element_Reference%M MZend_Pdf_Element_Reference_Table'L QZend_Pdf_Element_Reference_ContextK ;Zend_Pdf_Element_Object#J IZend_Pdf_Element_Object_StreamI =Zend_Pdf_Element_NumericH 7Zend_Pdf_Element_NullG 7Zend_Pdf_Element_Name F CZend_Pdf_Element_DictionaryE =Zend_Pdf_Element_BooleanD 9Zend_Pdf_Element_ArrayC 5Zend_Pdf_DestinationB ?Zend_Pdf_Destination_Zoom!A EZend_Pdf_Destination_Unknown@ AZend_Pdf_Destination_Named'? QZend_Pdf_Destination_FitVertically&> OZend_Pdf_Destination_FitRectangle)= UZend_Pdf_Destination_FitHorizontally   [  jL'sX-fA ]<&gO,


r
%			f	|Re5`7W+ f*wO(DL                                              +z YZend_Search_Lucene_Search_Query_Phrase.y _Zend_Search_Lucene_Search_Query_MultiTerm2x gZend_Search_Lucene_Search_Query_Insignificant*w WZend_Search_Lucene_Search_Query_Fuzzy*v WZend_Search_Lucene_Search_Query_Empty,u [Zend_Search_Lucene_Search_Query_Boolean2t gZend_Search_Lucene_Search_Highlighter_Default:s wZend_Search_Lucene_Search_BooleanExpressionRecognizerr =Zend_Search_Lucene_Proxy%q MZend_Search_Lucene_PriorityQueue/p aZend_Search_Lucene_Interface_MultiSearcher%o MZend_Search_Lucene_MultiSearcher#n IZend_Search_Lucene_LockManager$m KZend_Search_Lucene_Index_Writer0l cZend_Search_Lucene_Index_TermsPriorityQueue&k OZend_Search_Lucene_Index_TermInfo"j GZend_Search_Lucene_Index_Term+i YZend_Search_Lucene_Index_SegmentWriter8h sZend_Search_Lucene_Index_SegmentWriter_StreamWriter:g wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter+f YZend_Search_Lucene_Index_SegmentMerger)e UZend_Search_Lucene_Index_SegmentInfo'd QZend_Search_Lucene_Index_FieldInfo(c SZend_Search_Lucene_Index_DocsFilter.b _Zend_Search_Lucene_Index_DictionaryLoader!a EZend_Search_Lucene_FSMAction` 9Zend_Search_Lucene_FSM_ =Zend_Search_Lucene_Field!^ EZend_Search_Lucene_Exception ] CZend_Search_Lucene_Document%\ MZend_Search_Lucene_Document_Xlsx%[ MZend_Search_Lucene_Document_Pptx(Z SZend_Search_Lucene_Document_OpenXml%Y MZend_Search_Lucene_Document_Html*X WZend_Search_Lucene_Document_Exception%W MZend_Search_Lucene_Document_Docx,V [Zend_Search_Lucene_Analysis_TokenFilter6U oZend_Search_Lucene_Analysis_TokenFilter_StopWords7T qZend_Search_Lucene_Analysis_TokenFilter_ShortWords:S wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf86R oZend_Search_Lucene_Analysis_TokenFilter_LowerCase&Q OZend_Search_Lucene_Analysis_Token)P UZend_Search_Lucene_Analysis_Analyzer0O cZend_Search_Lucene_Analysis_Analyzer_Common8N sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumIM Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive5L mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8FK Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive8J sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumII Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive5H mZend_Search_Lucene_Analysis_Analyzer_Common_TextFG Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiveF 7Zend_Search_ExceptionE -Zend_Rest_ServerD AZend_Rest_Server_ExceptionC +Zend_Rest_RouteB 3Zend_Rest_ExceptionA 5Zend_Rest_Controller@ -Zend_Rest_Client? ;Zend_Rest_Client_Result&> OZend_Rest_Client_Result_Exception= AZend_Rest_Client_Exception< 'Zend_Registry; =Zend_Reflection_Property: ?Zend_Reflection_Parameter9 9Zend_Reflection_Method8 =Zend_Reflection_Function7 5Zend_Reflection_File6 ?Zend_Reflection_Extension5 ?Zend_Reflection_Exception4 =Zend_Reflection_Docblock!3 EZend_Reflection_Docblock_Tag(2 SZend_Reflection_Docblock_Tag_Return'1 QZend_Reflection_Docblock_Tag_Param0 7Zend_Reflection_Class/ !Zend_Queue. 9Zend_Queue_Stomp_Frame- ;Zend_Queue_Stomp_Client', QZend_Queue_Stomp_Client_Connection+ 1Zend_Queue_Message#* IZend_Queue_Message_PlatformJob ) CZend_Queue_Message_Iterator( 5Zend_Queue_Exception(' SZend_Queue_Adapter_PlatformJobQueue& ;Zend_Queue_Adapter_Null!% EZend_Queue_Adapter_Memcacheq$ 7Zend_Queue_Adapter_Db # CZend_Queue_Adapter_Db_Queue"" GZend_Queue_Adapter_Db_Message! =Zend_Queue_Adapter_Array'  QZend_Queue_Adapter_AdapterAbstract   [  Lb.nAzEU'



f
7
				k	F	vQ/Y4hBdG"i;_;^5nB                             U =Zend_Service_Amazon_ItemT ?Zend_Service_Amazon_Image"S GZend_Service_Amazon_Exception(R SZend_Service_Amazon_EditorialReviewQ ;Zend_Service_Amazon_Ec2+P YZend_Service_Amazon_Ec2_Securitygroups%O MZend_Service_Amazon_Ec2_Response#N IZend_Service_Amazon_Ec2_Region$M KZend_Service_Amazon_Ec2_Keypair%L MZend_Service_Amazon_Ec2_Instance-K ]Zend_Service_Amazon_Ec2_Instance_Windows.J _Zend_Service_Amazon_Ec2_Instance_Reserved"I GZend_Service_Amazon_Ec2_Image&H OZend_Service_Amazon_Ec2_Exception&G OZend_Service_Amazon_Ec2_Elasticip F CZend_Service_Amazon_Ec2_Ebs'E QZend_Service_Amazon_Ec2_CloudWatch.D _Zend_Service_Amazon_Ec2_Availabilityzones%C MZend_Service_Amazon_Ec2_Abstract'B QZend_Service_Amazon_CustomerReview'A QZend_Service_Amazon_Authentication*@ WZend_Service_Amazon_Authentication_V2*? WZend_Service_Amazon_Authentication_V1*> WZend_Service_Amazon_Authentication_S31= eZend_Service_Amazon_Authentication_Exception$< KZend_Service_Amazon_Accessories!; EZend_Service_Amazon_Abstract: 5Zend_Service_Akismet9 7Zend_Service_Abstract8 9Zend_Server_Reflection'7 QZend_Server_Reflection_ReturnValue%6 MZend_Server_Reflection_Prototype%5 MZend_Server_Reflection_Parameter 4 CZend_Server_Reflection_Node"3 GZend_Server_Reflection_Method$2 KZend_Server_Reflection_Function-1 ]Zend_Server_Reflection_Function_Abstract%0 MZend_Server_Reflection_Exception!/ EZend_Server_Reflection_Class!. EZend_Server_Method_Prototype!- EZend_Server_Method_Parameter", GZend_Server_Method_Definition + CZend_Server_Method_Callback* 7Zend_Server_Exception) 9Zend_Server_Definition( /Zend_Server_Cache' 5Zend_Server_Abstract& +Zend_Serializer% ?Zend_Serializer_Exception!$ EZend_Serializer_Adapter_Wddx)# UZend_Serializer_Adapter_PythonPickle)" UZend_Serializer_Adapter_PhpSerialize$! KZend_Serializer_Adapter_PhpCode!  EZend_Serializer_Adapter_Json% MZend_Serializer_Adapter_Igbinary! EZend_Serializer_Adapter_Amf3! EZend_Serializer_Adapter_Amf0, [Zend_Serializer_Adapter_AdapterAbstract 1Zend_Search_Lucene0 cZend_Search_Lucene_TermStreamsPriorityQueue$ KZend_Search_Lucene_Storage_File+ YZend_Search_Lucene_Storage_File_Memory/ aZend_Search_Lucene_Storage_File_Filesystem) UZend_Search_Lucene_Storage_Directory4 kZend_Search_Lucene_Storage_Directory_Filesystem% MZend_Search_Lucene_Search_Weight* WZend_Search_Lucene_Search_Weight_Term, [Zend_Search_Lucene_Search_Weight_Phrase/ aZend_Search_Lucene_Search_Weight_MultiTerm+ YZend_Search_Lucene_Search_Weight_Empty- ]Zend_Search_Lucene_Search_Weight_Boolean) UZend_Search_Lucene_Search_Similarity1 eZend_Search_Lucene_Search_Similarity_Default) UZend_Search_Lucene_Search_QueryToken3 iZend_Search_Lucene_Search_QueryParserException1
 eZend_Search_Lucene_Search_QueryParserContext*	 WZend_Search_Lucene_Search_QueryParser) UZend_Search_Lucene_Search_QueryLexer' QZend_Search_Lucene_Search_QueryHit) UZend_Search_Lucene_Search_QueryEntry. _Zend_Search_Lucene_Search_QueryEntry_Term2 gZend_Search_Lucene_Search_QueryEntry_Subquery0 cZend_Search_Lucene_Search_QueryEntry_Phrase$ KZend_Search_Lucene_Search_Query- ]Zend_Search_Lucene_Search_Query_Wildcard)  UZend_Search_Lucene_Search_Query_Term* WZend_Search_Lucene_Search_Query_Range2~ gZend_Search_Lucene_Search_Query_Preprocessing7} qZend_Search_Lucene_Search_Query_Preprocessing_Term9| uZend_Search_Lucene_Search_Query_Preprocessing_Phrase8{ sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy   @  mGP&mI Fo(


\
			Z	*VE91{c
bG    d IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequestQ #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequestR %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequestY 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequestd IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequestQ #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequestO Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequestU +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequestU +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequestV -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequesta CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequestZ
 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequestT	 )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequestR %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequestY 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequestQ #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequestQ #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequesta CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequestN Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformationL Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalanceJ Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool-  ]Zend_Service_DeveloperGarden_LocalSearch> Zend_Service_DeveloperGarden_LocalSearch_SearchParameters7~ qZend_Service_DeveloperGarden_LocalSearch_Exception,} [Zend_Service_DeveloperGarden_IpLocation6| oZend_Service_DeveloperGarden_IpLocation_IpAddress+{ YZend_Service_DeveloperGarden_Exception,z [Zend_Service_DeveloperGarden_Credential0y cZend_Service_DeveloperGarden_ConferenceCallCx Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatusCw Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail<v {Zend_Service_DeveloperGarden_ConferenceCall_Participant:u wZend_Service_DeveloperGarden_ConferenceCall_ExceptionDt 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceScheduleBs Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetailCr Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount-q ]Zend_Service_DeveloperGarden_Client_Soap2p gZend_Service_DeveloperGarden_Client_Exception7o qZend_Service_DeveloperGarden_Client_ClientAbstract1n eZend_Service_DeveloperGarden_BaseUserServiceAm Zend_Service_DeveloperGarden_BaseUserService_AccountBalancel 9Zend_Service_Delicious&k OZend_Service_Delicious_SimplePost$j KZend_Service_Delicious_PostList i CZend_Service_Delicious_Post%h MZend_Service_Delicious_Exception g CZend_Service_Audioscrobblerf 3Zend_Service_Amazone ;Zend_Service_Amazon_Sqs&d OZend_Service_Amazon_Sqs_Exception!c EZend_Service_Amazon_SimpleDb*b WZend_Service_Amazon_SimpleDb_Response&a OZend_Service_Amazon_SimpleDb_Page+` YZend_Service_Amazon_SimpleDb_Exception+_ YZend_Service_Amazon_SimpleDb_Attribute'^ QZend_Service_Amazon_SimilarProduct] 9Zend_Service_Amazon_S3"\ GZend_Service_Amazon_S3_Stream%[ MZend_Service_Amazon_S3_Exception"Z GZend_Service_Amazon_ResultSetY ?Zend_Service_Amazon_Query!X EZend_Service_Amazon_OfferSetW ?Zend_Service_Amazon_Offer&V OZend_Service_Amazon_ListmaniaList   /  MC~.P8


\
		A1*hZ8f
O6                                    UD +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseTypeQC #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse[B 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseTypeWA /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse[@ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseTypeW? /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse\> 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseTypeX= 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseg< OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseTypec; GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse`: AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType\9 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseZ8 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseTypeV7 -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseX6 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseTypeT5 )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse_4 ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType[3 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseW2 /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseTypeS1 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseQ0 #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstractS/ 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponseJ. Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseTypeg- OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseTypec, GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseW+ /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponseU* +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponseS) 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse3( iZend_Service_DeveloperGarden_Response_BaseTypeJ' Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstractC& Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCallG% Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced=$ }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallA# Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatusA" Zend_Service_DeveloperGarden_Request_SmsValidation_ValidateN! Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeywordC  Zend_Service_DeveloperGarden_Request_SmsValidation_InvalidateL Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbersB Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract9 uZend_Service_DeveloperGarden_Request_SendSms_SendSMS> Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS9 uZend_Service_DeveloperGarden_Request_RequestAbstractI Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequestE Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest3 iZend_Service_DeveloperGarden_Request_ExceptionR %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequestY 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequest   9  ?1hI_

x
9			>dbv(9rEq4h)_2                                                *} WZend_Service_Ebay_Finding_ListingInfo(| SZend_Service_Ebay_Finding_Exception,{ [Zend_Service_Ebay_Finding_Error_Message)z UZend_Service_Ebay_Finding_Error_Data-y ]Zend_Service_Ebay_Finding_Error_Data_Set'x QZend_Service_Ebay_Finding_Category1w eZend_Service_Ebay_Finding_Category_Histogram5v mZend_Service_Ebay_Finding_Category_Histogram_Set;u yZend_Service_Ebay_Finding_Category_Histogram_Container%t MZend_Service_Ebay_Finding_Aspect)s UZend_Service_Ebay_Finding_Aspect_Set5r mZend_Service_Ebay_Finding_Aspect_Histogram_Value9q uZend_Service_Ebay_Finding_Aspect_Histogram_Value_Set9p uZend_Service_Ebay_Finding_Aspect_Histogram_Container'o QZend_Service_Ebay_Finding_Abstract n CZend_Service_Ebay_Exceptionm AZend_Service_Ebay_Abstract+l YZend_Service_DeveloperGarden_VoiceCall/k aZend_Service_DeveloperGarden_SmsValidation)j UZend_Service_DeveloperGarden_SendSms5i mZend_Service_DeveloperGarden_SecurityTokenServer;h yZend_Service_DeveloperGarden_SecurityTokenServer_CacheKg Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstractLf Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponsePe !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponseGd Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponseJc Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponseKb Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2ResponseLa Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponseI` Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumberW_ /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponseJ^ Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponseU] +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponseC\ Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponseC[ Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstractHZ Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponseUY +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponseQX #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponseIW Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception;V yZend_Service_DeveloperGarden_Response_ResponseAbstractOU Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseTypeKT Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseAS Zend_Service_DeveloperGarden_Response_IpLocation_RegionTypeKR Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseTypeGQ Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseLP Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationTypeIO Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType>N Zend_Service_DeveloperGarden_Response_IpLocation_CityType4M kZend_Service_DeveloperGarden_Response_ExceptionTL )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse[K 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponsefJ MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponseSI 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponseTH )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse[G 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponsefF MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponseSE 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponse   Y  c2nAdE# nP(nB



^
0				i	@	oK# ^4K[*R%d6Z0]=                           V 5Zend_Service_Twitter"U GZend_Service_Twitter_Response#T IZend_Service_Twitter_ExceptionS ;Zend_Service_Technorati#R IZend_Service_Technorati_Weblog"Q GZend_Service_Technorati_Utils*P WZend_Service_Technorati_TagsResultSet'O QZend_Service_Technorati_TagsResult)N UZend_Service_Technorati_TagResultSet&M OZend_Service_Technorati_TagResult,L [Zend_Service_Technorati_SearchResultSet)K UZend_Service_Technorati_SearchResult&J OZend_Service_Technorati_ResultSet#I IZend_Service_Technorati_Result*H WZend_Service_Technorati_KeyInfoResult*G WZend_Service_Technorati_GetInfoResult&F OZend_Service_Technorati_Exception1E eZend_Service_Technorati_DailyCountsResultSet.D _Zend_Service_Technorati_DailyCountsResult,C [Zend_Service_Technorati_CosmosResultSet)B UZend_Service_Technorati_CosmosResult+A YZend_Service_Technorati_BlogInfoResult#@ IZend_Service_Technorati_Author? ;Zend_Service_StrikeIron(> SZend_Service_StrikeIron_ZipCodeInfo2= gZend_Service_StrikeIron_USAddressVerification-< ]Zend_Service_StrikeIron_SalesUseTaxBasic&; OZend_Service_StrikeIron_Exception&: OZend_Service_StrikeIron_Decorator!9 EZend_Service_StrikeIron_Base;8 yZend_Service_SqlAzure_Management_ServiceEntityAbstract47 kZend_Service_SqlAzure_Management_ServerInstance:6 wZend_Service_SqlAzure_Management_FirewallRuleInstance/5 aZend_Service_SqlAzure_Management_Exception,4 [Zend_Service_SqlAzure_Management_Client$3 KZend_Service_SqlAzure_Exception2 ;Zend_Service_SlideShare&1 OZend_Service_SlideShare_SlideShow&0 OZend_Service_SlideShare_Exception%/ MZend_Service_ShortUrl_TinyUrlCom&. OZend_Service_ShortUrl_MetamarkNet!- EZend_Service_ShortUrl_JdemCz, AZend_Service_ShortUrl_IsGd$+ KZend_Service_ShortUrl_Exception * CZend_Service_ShortUrl_BitLy,) [Zend_Service_ShortUrl_AbstractShortener( 9Zend_Service_ReCaptcha$' KZend_Service_ReCaptcha_Response$& KZend_Service_ReCaptcha_MailHide.% _Zend_Service_ReCaptcha_MailHide_Exception%$ MZend_Service_ReCaptcha_Exception## IZend_Service_Rackspace_Servers5" mZend_Service_Rackspace_Servers_SharedIpGroupList1! eZend_Service_Rackspace_Servers_SharedIpGroup.  _Zend_Service_Rackspace_Servers_ServerList* WZend_Service_Rackspace_Servers_Server- ]Zend_Service_Rackspace_Servers_ImageList) UZend_Service_Rackspace_Servers_Image- ]Zend_Service_Rackspace_Servers_Exception! EZend_Service_Rackspace_Files, [Zend_Service_Rackspace_Files_ObjectList( SZend_Service_Rackspace_Files_Object+ YZend_Service_Rackspace_Files_Exception/ aZend_Service_Rackspace_Files_ContainerList+ YZend_Service_Rackspace_Files_Container% MZend_Service_Rackspace_Exception$ KZend_Service_Rackspace_Abstract 7Zend_Service_LiveDocx$ KZend_Service_LiveDocx_MailMerge$ KZend_Service_LiveDocx_Exception 3Zend_Service_Flickr" GZend_Service_Flickr_ResultSet AZend_Service_Flickr_Result ?Zend_Service_Flickr_Image 9Zend_Service_Exception ?Zend_Service_Ebay_Finding)
 UZend_Service_Ebay_Finding_Storefront+	 YZend_Service_Ebay_Finding_ShippingInfo+ YZend_Service_Ebay_Finding_Set_Abstract, [Zend_Service_Ebay_Finding_SellingStatus) UZend_Service_Ebay_Finding_SellerInfo, [Zend_Service_Ebay_Finding_Search_Result* WZend_Service_Ebay_Finding_Search_Item. _Zend_Service_Ebay_Finding_Search_Item_Set0 cZend_Service_Ebay_Finding_Response_Keywords- ]Zend_Service_Ebay_Finding_Response_Items2  gZend_Service_Ebay_Finding_Response_Histograms0 cZend_Service_Ebay_Finding_Response_Abstract/~ aZend_Service_Ebay_Finding_PaginationOutput   @  Ek5v>aE


W
			d	8	MaM~2MwHd'M                                 2 gZend_Service_WindowsAzure_Storage_TableEntity, [Zend_Service_WindowsAzure_Storage_Table< {Zend_Service_WindowsAzure_Storage_StorageEntityAbstract7 qZend_Service_WindowsAzure_Storage_SignedIdentifier3 iZend_Service_WindowsAzure_Storage_QueueMessage4 kZend_Service_WindowsAzure_Storage_QueueInstance, [Zend_Service_WindowsAzure_Storage_Queue9 uZend_Service_WindowsAzure_Storage_PageRegionInstance4 kZend_Service_WindowsAzure_Storage_LeaseInstance9 uZend_Service_WindowsAzure_Storage_DynamicTableEntity3 iZend_Service_WindowsAzure_Storage_BlobInstance4 kZend_Service_WindowsAzure_Storage_BlobContainer+
 YZend_Service_WindowsAzure_Storage_Blob2	 gZend_Service_WindowsAzure_Storage_Blob_Stream; yZend_Service_WindowsAzure_Storage_BatchStorageAbstract, [Zend_Service_WindowsAzure_Storage_Batch- ]Zend_Service_WindowsAzure_SessionHandler> Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract1 eZend_Service_WindowsAzure_RetryPolicy_RetryN2 gZend_Service_WindowsAzure_RetryPolicy_NoRetry4 kZend_Service_WindowsAzure_RetryPolicy_ExceptionH Zend_Service_WindowsAzure_Management_SubscriptionOperationInstanceA  Zend_Service_WindowsAzure_Management_StorageServiceInstance@ Zend_Service_WindowsAzure_Management_ServiceEntityAbstractB~ Zend_Service_WindowsAzure_Management_OperationStatusInstanceB} Zend_Service_WindowsAzure_Management_OperatingSystemInstanceH| Zend_Service_WindowsAzure_Management_OperatingSystemFamilyInstance:{ wZend_Service_WindowsAzure_Management_LocationInstance@z Zend_Service_WindowsAzure_Management_HostedServiceInstance3y iZend_Service_WindowsAzure_Management_Exception<x {Zend_Service_WindowsAzure_Management_DeploymentInstance0w cZend_Service_WindowsAzure_Management_Client=v }Zend_Service_WindowsAzure_Management_CertificateInstance@u Zend_Service_WindowsAzure_Management_AffinityGroupInstance6t oZend_Service_WindowsAzure_Log_Writer_WindowsAzure9s uZend_Service_WindowsAzure_Log_Formatter_WindowsAzure,r [Zend_Service_WindowsAzure_Log_Exception(q SZend_Service_WindowsAzure_ExceptionJp Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscription2o gZend_Service_WindowsAzure_Diagnostics_Manager3n iZend_Service_WindowsAzure_Diagnostics_LogLevel4m kZend_Service_WindowsAzure_Diagnostics_ExceptionNl Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscriptionHk Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLogLj Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCountersKi Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstract<h {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogsAg Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstanceDf 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectoriesUe +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogsDd 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSources8c sZend_Service_WindowsAzure_Credentials_SharedKeyLite4b kZend_Service_WindowsAzure_Credentials_SharedKeyAa Zend_Service_WindowsAzure_Credentials_SharedAccessSignature4` kZend_Service_WindowsAzure_Credentials_Exception>_ Zend_Service_WindowsAzure_Credentials_CredentialsAbstract2^ gZend_Service_WindowsAzure_CommandLine_Storage2] gZend_Service_WindowsAzure_CommandLine_Service\ !ScaffolderW[ /Zend_Service_WindowsAzure_CommandLine_PackageScaffolder_PackageScaffolderAbstract2Z gZend_Service_WindowsAzure_CommandLine_PackageDY 	Zend_Service_WindowsAzure_CommandLine_GetAsynchronousOperation5X mZend_Service_WindowsAzure_CommandLine_Deployment6W oZend_Service_WindowsAzure_CommandLine_Certificate   f  cBoE}X1bC\=





`
G
&				n	D	}d?tS<!Z,xJ`2y]:!rV>_1        &| OZend_Tool_Framework_Client_Config({ SZend_Tool_Framework_Client_Abstract*z WZend_Tool_Framework_Action_Repository)y UZend_Tool_Framework_Action_Exception$x KZend_Tool_Framework_Action_Basew 'Zend_TimeSyncv 1Zend_TimeSync_Sntpu 9Zend_TimeSync_Protocolt /Zend_TimeSync_Ntps ;Zend_TimeSync_Exceptionr +Zend_Text_Tableq 3Zend_Text_Table_Rowp ?Zend_Text_Table_Exception&o OZend_Text_Table_Decorator_Unicode$n KZend_Text_Table_Decorator_Asciim 9Zend_Text_Table_Columnl 3Zend_Text_MultiBytek -Zend_Text_Figletj AZend_Text_Figlet_Exceptioni 3Zend_Text_Exception&h OZend_Test_PHPUnit_Db_SimpleTester,g [Zend_Test_PHPUnit_Db_Operation_Truncate*f WZend_Test_PHPUnit_Db_Operation_Insert-e ]Zend_Test_PHPUnit_Db_Operation_DeleteAll*d WZend_Test_PHPUnit_Db_Metadata_Generic#c IZend_Test_PHPUnit_Db_Exception,b [Zend_Test_PHPUnit_Db_DataSet_QueryTable.a _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet0` cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet)_ UZend_Test_PHPUnit_Db_DataSet_DbTable*^ WZend_Test_PHPUnit_Db_DataSet_DbRowset$] KZend_Test_PHPUnit_Db_Connection'\ QZend_Test_PHPUnit_DatabaseTestCase)[ UZend_Test_PHPUnit_ControllerTestCase0Z cZend_Test_PHPUnit_Constraint_ResponseHeader*Y WZend_Test_PHPUnit_Constraint_Redirect+X YZend_Test_PHPUnit_Constraint_Exception*W WZend_Test_PHPUnit_Constraint_DomQueryV 7Zend_Test_DbStatementU 3Zend_Test_DbAdapterT /Zend_Tag_ItemListS 'Zend_Tag_ItemR 1Zend_Tag_ExceptionQ )Zend_Tag_CloudP =Zend_Tag_Cloud_Exception!O EZend_Tag_Cloud_Decorator_Tag%N MZend_Tag_Cloud_Decorator_HtmlTag'M QZend_Tag_Cloud_Decorator_HtmlCloud'L QZend_Tag_Cloud_Decorator_Exception#K IZend_Tag_Cloud_Decorator_Cloud!J EZend_Stdlib_SplPriorityQueueI -SplPriorityQueueH ?Zend_Stdlib_PriorityQueue3G iZend_Stdlib_Exception_InvalidCallbackException F CZend_Stdlib_CallbackHandlerE )Zend_Soap_Wsdl/D aZend_Soap_Wsdl_Strategy_DefaultComplexType&C OZend_Soap_Wsdl_Strategy_Composite0B cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence/A aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex$@ KZend_Soap_Wsdl_Strategy_AnyType%? MZend_Soap_Wsdl_Strategy_Abstract> =Zend_Soap_Wsdl_Exception= -Zend_Soap_Server< 9Zend_Soap_Server_Proxy; AZend_Soap_Server_Exception: -Zend_Soap_Client9 9Zend_Soap_Client_Local8 AZend_Soap_Client_Exception7 ;Zend_Soap_Client_DotNet6 ;Zend_Soap_Client_Common5 9Zend_Soap_AutoDiscover%4 MZend_Soap_AutoDiscover_Exception3 %Zend_Session)2 UZend_Session_Validator_HttpUserAgent$1 KZend_Session_Validator_Abstract'0 QZend_Session_SaveHandler_Exception%/ MZend_Session_SaveHandler_DbTable. 9Zend_Session_Namespace- 9Zend_Session_Exception, 7Zend_Session_Abstract+ 1Zend_Service_Yahoo$* KZend_Service_Yahoo_WebResultSet!) EZend_Service_Yahoo_WebResult&( OZend_Service_Yahoo_VideoResultSet#' IZend_Service_Yahoo_VideoResult!& EZend_Service_Yahoo_ResultSet% ?Zend_Service_Yahoo_Result)$ UZend_Service_Yahoo_PageDataResultSet&# OZend_Service_Yahoo_PageDataResult%" MZend_Service_Yahoo_NewsResultSet"! GZend_Service_Yahoo_NewsResult&  OZend_Service_Yahoo_LocalResultSet# IZend_Service_Yahoo_LocalResult+ YZend_Service_Yahoo_InlinkDataResultSet( SZend_Service_Yahoo_InlinkDataResult& OZend_Service_Yahoo_ImageResultSet# IZend_Service_Yahoo_ImageResult =Zend_Service_Yahoo_Image& OZend_Service_WindowsAzure_Storage4 kZend_Service_WindowsAzure_Storage_TableInstance7 qZend_Service_WindowsAzure_Storage_TableEntityQuery   K  \;k.c.4



n
8
				X	)vELqEy?V#{Gs@
xD    8G sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory2F gZend_Tool_Project_Context_Zf_LayoutScriptFile.E _Zend_Tool_Project_Context_Zf_HtaccessFile0D cZend_Tool_Project_Context_Zf_FormsDirectory*C WZend_Tool_Project_Context_Zf_FormFile/B aZend_Tool_Project_Context_Zf_DocsDirectory-A ]Zend_Tool_Project_Context_Zf_DbTableFile2@ gZend_Tool_Project_Context_Zf_DbTableDirectory/? aZend_Tool_Project_Context_Zf_DataDirectory6> oZend_Tool_Project_Context_Zf_ControllersDirectory0= cZend_Tool_Project_Context_Zf_ControllerFile2< gZend_Tool_Project_Context_Zf_ConfigsDirectory,; [Zend_Tool_Project_Context_Zf_ConfigFile0: cZend_Tool_Project_Context_Zf_CacheDirectory/9 aZend_Tool_Project_Context_Zf_BootstrapFile68 oZend_Tool_Project_Context_Zf_ApplicationDirectory77 qZend_Tool_Project_Context_Zf_ApplicationConfigFile/6 aZend_Tool_Project_Context_Zf_ApisDirectory.5 _Zend_Tool_Project_Context_Zf_ActionMethod34 iZend_Tool_Project_Context_Zf_AbstractClassFile@3 Zend_Tool_Project_Context_System_ProjectProvidersDirectory82 sZend_Tool_Project_Context_System_ProjectProfileFile61 oZend_Tool_Project_Context_System_ProjectDirectory)0 UZend_Tool_Project_Context_Repository./ _Zend_Tool_Project_Context_Filesystem_File3. iZend_Tool_Project_Context_Filesystem_Directory2- gZend_Tool_Project_Context_Filesystem_Abstract(, SZend_Tool_Project_Context_Exception-+ ]Zend_Tool_Project_Context_Content_Engine3* iZend_Tool_Project_Context_Content_Engine_Phtml;) yZend_Tool_Project_Context_Content_Engine_CodeGenerator0( cZend_Tool_Framework_System_Provider_Version0' cZend_Tool_Framework_System_Provider_Phpinfo1& eZend_Tool_Framework_System_Provider_Manifest/% aZend_Tool_Framework_System_Provider_Config($ SZend_Tool_Framework_System_Manifest-# ]Zend_Tool_Framework_System_Action_Delete-" ]Zend_Tool_Framework_System_Action_Create!! EZend_Tool_Framework_Registry+  YZend_Tool_Framework_Registry_Exception+ YZend_Tool_Framework_Provider_Signature, [Zend_Tool_Framework_Provider_Repository+ YZend_Tool_Framework_Provider_Exception* WZend_Tool_Framework_Provider_Abstract& OZend_Tool_Framework_Metadata_Tool) UZend_Tool_Framework_Metadata_Dynamic' QZend_Tool_Framework_Metadata_Basic, [Zend_Tool_Framework_Manifest_Repository2 gZend_Tool_Framework_Manifest_ProviderMetadata* WZend_Tool_Framework_Manifest_Metadata+ YZend_Tool_Framework_Manifest_Exception0 cZend_Tool_Framework_Manifest_ActionMetadata1 eZend_Tool_Framework_Loader_IncludePathLoaderJ Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator+ YZend_Tool_Framework_Loader_BasicLoader( SZend_Tool_Framework_Loader_Abstract" GZend_Tool_Framework_Exception' QZend_Tool_Framework_Client_Storage1 eZend_Tool_Framework_Client_Storage_Directory( SZend_Tool_Framework_Client_ResponseD 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator'
 QZend_Tool_Framework_Client_Request(	 SZend_Tool_Framework_Client_Manifest9 uZend_Tool_Framework_Client_Interactive_InputResponse8 sZend_Tool_Framework_Client_Interactive_InputRequest8 sZend_Tool_Framework_Client_Interactive_InputHandler) UZend_Tool_Framework_Client_Exception' QZend_Tool_Framework_Client_ConsoleD 	Zend_Tool_Framework_Client_Console_ResponseDecorator_IndentionD 	Zend_Tool_Framework_Client_Console_ResponseDecorator_ColorizerC Zend_Tool_Framework_Client_Console_ResponseDecorator_BlockizeF  Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter0 cZend_Tool_Framework_Client_Console_Manifest2~ gZend_Tool_Framework_Client_Console_HelpSystem6} oZend_Tool_Framework_Client_Console_ArgumentParser   M  ^+\#~BX T


G
				V	s.LWk@k>h?d<eB                          =Zend_Translate_Exception 9Zend_Translate_Adapter! EZend_Translate_Adapter_XmlTm! EZend_Translate_Adapter_Xliff AZend_Translate_Adapter_Tmx AZend_Translate_Adapter_Tbx ?Zend_Translate_Adapter_Qt AZend_Translate_Adapter_Ini# IZend_Translate_Adapter_Gettext AZend_Translate_Adapter_Csv!
 EZend_Translate_Adapter_Array$	 KZend_Tool_Project_Provider_View$ KZend_Tool_Project_Provider_Test/ aZend_Tool_Project_Provider_ProjectProvider' QZend_Tool_Project_Provider_Project' QZend_Tool_Project_Provider_Profile& OZend_Tool_Project_Provider_Module% MZend_Tool_Project_Provider_Model( SZend_Tool_Project_Provider_Manifest& OZend_Tool_Project_Provider_Layout$  KZend_Tool_Project_Provider_Form) UZend_Tool_Project_Provider_Exception'~ QZend_Tool_Project_Provider_DbTable)} UZend_Tool_Project_Provider_DbAdapter*| WZend_Tool_Project_Provider_Controller+{ YZend_Tool_Project_Provider_Application&z OZend_Tool_Project_Provider_Action(y SZend_Tool_Project_Provider_Abstractx ?Zend_Tool_Project_Profile'w QZend_Tool_Project_Profile_Resource9v uZend_Tool_Project_Profile_Resource_SearchConstraints1u eZend_Tool_Project_Profile_Resource_Container=t }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter5s mZend_Tool_Project_Profile_Iterator_ContextFilter-r ]Zend_Tool_Project_Profile_FileParser_Xml(q SZend_Tool_Project_Profile_Exception p CZend_Tool_Project_Exception<o {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory0n cZend_Tool_Project_Context_Zf_ViewsDirectory6m oZend_Tool_Project_Context_Zf_ViewScriptsDirectory0l cZend_Tool_Project_Context_Zf_ViewScriptFile6k oZend_Tool_Project_Context_Zf_ViewHelpersDirectory6j oZend_Tool_Project_Context_Zf_ViewFiltersDirectoryAi Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory2h gZend_Tool_Project_Context_Zf_UploadsDirectory0g cZend_Tool_Project_Context_Zf_TestsDirectory7f qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile:e wZend_Tool_Project_Context_Zf_TestPHPUnitBootstrapFile@d Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory1c eZend_Tool_Project_Context_Zf_TestLibraryFile6b oZend_Tool_Project_Context_Zf_TestLibraryDirectory:a wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFileB` Zend_Tool_Project_Context_Zf_TestApplicationModulesDirectoryA_ Zend_Tool_Project_Context_Zf_TestApplicationModuleDirectory:^ wZend_Tool_Project_Context_Zf_TestApplicationDirectory@] Zend_Tool_Project_Context_Zf_TestApplicationControllerFileE\ Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory>[ Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile=Z }Zend_Tool_Project_Context_Zf_TestApplicationActionMethod4Y kZend_Tool_Project_Context_Zf_TemporaryDirectory3X iZend_Tool_Project_Context_Zf_SessionsDirectory3W iZend_Tool_Project_Context_Zf_ServicesDirectory8V sZend_Tool_Project_Context_Zf_SearchIndexesDirectory<U {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory8T sZend_Tool_Project_Context_Zf_PublicScriptsDirectory1S eZend_Tool_Project_Context_Zf_PublicIndexFile7R qZend_Tool_Project_Context_Zf_PublicImagesDirectory1Q eZend_Tool_Project_Context_Zf_PublicDirectory5P mZend_Tool_Project_Context_Zf_ProjectProviderFile2O gZend_Tool_Project_Context_Zf_ModulesDirectory1N eZend_Tool_Project_Context_Zf_ModuleDirectory1M eZend_Tool_Project_Context_Zf_ModelsDirectory+L YZend_Tool_Project_Context_Zf_ModelFile/K aZend_Tool_Project_Context_Zf_LogsDirectory2J gZend_Tool_Project_Context_Zf_LocalesDirectory2I gZend_Tool_Project_Context_Zf_LibraryDirectory2H gZend_Tool_Project_Context_Zf_LayoutsDirectory   q jN2b=b?W4vS0




u
Z
8
					i	H	e@mM+tT6mQ(kP4kJ(
wU1xU2                                      CZend_View_Helper_FormSelect AZend_View_Helper_FormReset AZend_View_Helper_FormRadio" GZend_View_Helper_FormPassword ?Zend_View_Helper_FormNote'  QZend_View_Helper_FormMultiCheckbox AZend_View_Helper_FormLabel~ AZend_View_Helper_FormImage } CZend_View_Helper_FormHidden| ?Zend_View_Helper_FormFile { CZend_View_Helper_FormErrors!z EZend_View_Helper_FormElement"y GZend_View_Helper_FormCheckbox x CZend_View_Helper_FormButtonw 7Zend_View_Helper_Formv ?Zend_View_Helper_Fieldsetu =Zend_View_Helper_Doctype!t EZend_View_Helper_DeclareVarss 9Zend_View_Helper_Cycler ?Zend_View_Helper_Currencyq =Zend_View_Helper_BaseUrlp ;Zend_View_Helper_Actiono ?Zend_View_Helper_Abstractn 3Zend_View_Exceptionm 1Zend_View_Abstractl %Zend_Versionk 'Zend_Validatej AZend_Validate_StringLength#i IZend_Validate_Sitemap_Priorityh ?Zend_Validate_Sitemap_Loc"g GZend_Validate_Sitemap_Lastmod%f MZend_Validate_Sitemap_Changefreqe 3Zend_Validate_Regexd 9Zend_Validate_PostCodec 9Zend_Validate_NotEmptyb 9Zend_Validate_LessThana 7Zend_Validate_Ldap_Dn` 1Zend_Validate_Isbn_ -Zend_Validate_Ip^ /Zend_Validate_Int] 7Zend_Validate_InArray\ ;Zend_Validate_Identical[ 1Zend_Validate_IbanZ 9Zend_Validate_HostnameY /Zend_Validate_HexX ?Zend_Validate_GreaterThanW 3Zend_Validate_Float!V EZend_Validate_File_WordCountU ?Zend_Validate_File_UploadT ;Zend_Validate_File_SizeS ;Zend_Validate_File_Sha1!R EZend_Validate_File_NotExists Q CZend_Validate_File_MimeTypeP 9Zend_Validate_File_Md5O AZend_Validate_File_IsImage$N KZend_Validate_File_IsCompressed!M EZend_Validate_File_ImageSizeL ;Zend_Validate_File_Hash!K EZend_Validate_File_FilesSize!J EZend_Validate_File_ExtensionI ?Zend_Validate_File_Exists'H QZend_Validate_File_ExcludeMimeType(G SZend_Validate_File_ExcludeExtensionF =Zend_Validate_File_Crc32E =Zend_Validate_File_CountD ;Zend_Validate_ExceptionC AZend_Validate_EmailAddressB 5Zend_Validate_Digits"A GZend_Validate_Db_RecordExists$@ KZend_Validate_Db_NoRecordExists? ?Zend_Validate_Db_Abstract> 1Zend_Validate_Date= =Zend_Validate_CreditCard< 3Zend_Validate_Ccnum; 9Zend_Validate_Callback: 7Zend_Validate_Between9 7Zend_Validate_Barcode8 AZend_Validate_Barcode_Upce7 AZend_Validate_Barcode_Upca6 AZend_Validate_Barcode_Sscc$5 KZend_Validate_Barcode_Royalmail"4 GZend_Validate_Barcode_Postnet!3 EZend_Validate_Barcode_Planet#2 IZend_Validate_Barcode_Leitcode 1 CZend_Validate_Barcode_Itf140 AZend_Validate_Barcode_Issn*/ WZend_Validate_Barcode_IntelligentMail$. KZend_Validate_Barcode_Identcode!- EZend_Validate_Barcode_Gtin14!, EZend_Validate_Barcode_Gtin13!+ EZend_Validate_Barcode_Gtin12* AZend_Validate_Barcode_Ean8) AZend_Validate_Barcode_Ean5( AZend_Validate_Barcode_Ean2 ' CZend_Validate_Barcode_Ean18 & CZend_Validate_Barcode_Ean14 % CZend_Validate_Barcode_Ean13 $ CZend_Validate_Barcode_Ean12$# KZend_Validate_Barcode_Code93ext!" EZend_Validate_Barcode_Code93$! KZend_Validate_Barcode_Code39ext!  EZend_Validate_Barcode_Code39, [Zend_Validate_Barcode_Code25interleaved! EZend_Validate_Barcode_Code25* WZend_Validate_Barcode_AdapterAbstract 3Zend_Validate_Alpha 3Zend_Validate_Alnum 9Zend_Validate_Abstract Zend_Uri 'Zend_Uri_Http 1Zend_Uri_Exception )Zend_Translate 7Zend_Translate_Plural   j  rP.
|Z6Y&X-v<



U
2
					z	Z	-wR(z_A'bF$~cC"rN,v\3kP5qN*                                  )o UZend_Amf_Parse_Resource_MysqliResult n CZend_Amf_Parse_OutputStreamm AZend_Amf_Parse_InputStream l CZend_Amf_Parse_Deserializer#k IZend_Amf_Parse_Amf3_Serializer%j MZend_Amf_Parse_Amf3_Deserializer#i IZend_Amf_Parse_Amf0_Serializer%h MZend_Amf_Parse_Amf0_Deserializerg 1Zend_Amf_Exceptionf 1Zend_Amf_Constantse 9Zend_Amf_Auth_Abstract d CZend_Amf_Adobe_Introspectorc AZend_Amf_Adobe_DbInspectorb 3Zend_Amf_Adobe_Autha Zend_Acl` 'Zend_Acl_Role_ 9Zend_Acl_Role_Registry%^ MZend_Acl_Role_Registry_Exception] /Zend_Acl_Resource\ 1Zend_Acl_Exception[ /Zend_XmlRpc_ValueZ =Zend_XmlRpc_Value_StructY =Zend_XmlRpc_Value_StringX =Zend_XmlRpc_Value_ScalarW 7Zend_XmlRpc_Value_NilV ?Zend_XmlRpc_Value_Integer U CZend_XmlRpc_Value_ExceptionT =Zend_XmlRpc_Value_DoubleS AZend_XmlRpc_Value_DateTime!R EZend_XmlRpc_Value_CollectionQ ?Zend_XmlRpc_Value_Boolean!P EZend_XmlRpc_Value_BigIntegerO =Zend_XmlRpc_Value_Base64N ;Zend_XmlRpc_Value_ArrayM 1Zend_XmlRpc_ServerL ?Zend_XmlRpc_Server_SystemK =Zend_XmlRpc_Server_Fault!J EZend_XmlRpc_Server_ExceptionI =Zend_XmlRpc_Server_CacheH 5Zend_XmlRpc_ResponseG ?Zend_XmlRpc_Response_HttpF 3Zend_XmlRpc_RequestE ?Zend_XmlRpc_Request_StdinD =Zend_XmlRpc_Request_Http$C KZend_XmlRpc_Generator_XmlWriter,B [Zend_XmlRpc_Generator_GeneratorAbstract&A OZend_XmlRpc_Generator_DomDocument@ /Zend_XmlRpc_Fault? 7Zend_XmlRpc_Exception> 1Zend_XmlRpc_Client#= IZend_XmlRpc_Client_ServerProxy+< YZend_XmlRpc_Client_ServerIntrospection+; YZend_XmlRpc_Client_IntrospectException%: MZend_XmlRpc_Client_HttpException&9 OZend_XmlRpc_Client_FaultException!8 EZend_XmlRpc_Client_Exception7 /Zend_Xml_Security6 1Zend_Xml_Exception&5 OZend_Wildfire_Protocol_JsonStream!4 EZend_Wildfire_Plugin_FirePhp.3 _Zend_Wildfire_Plugin_FirePhp_TableMessage)2 UZend_Wildfire_Plugin_FirePhp_Message1 ;Zend_Wildfire_Exception&0 OZend_Wildfire_Channel_HttpHeaders/ Zend_View. -Zend_View_Stream- AZend_View_Helper_UserAgent, 5Zend_View_Helper_Url+ AZend_View_Helper_Translate* AZend_View_Helper_ServerUrl)) UZend_View_Helper_RenderToPlaceholder!( EZend_View_Helper_Placeholder*' WZend_View_Helper_Placeholder_Registry4& kZend_View_Helper_Placeholder_Registry_Exception+% YZend_View_Helper_Placeholder_Container6$ oZend_View_Helper_Placeholder_Container_Standalone5# mZend_View_Helper_Placeholder_Container_Exception4" kZend_View_Helper_Placeholder_Container_Abstract!! EZend_View_Helper_PartialLoop  =Zend_View_Helper_Partial' QZend_View_Helper_Partial_Exception' QZend_View_Helper_PaginationControl  CZend_View_Helper_Navigation( SZend_View_Helper_Navigation_Sitemap% MZend_View_Helper_Navigation_Menu& OZend_View_Helper_Navigation_Links/ aZend_View_Helper_Navigation_HelperAbstract, [Zend_View_Helper_Navigation_Breadcrumbs ;Zend_View_Helper_Layout 7Zend_View_Helper_Json" GZend_View_Helper_InlineScript# IZend_View_Helper_HtmlQuicktime ?Zend_View_Helper_HtmlPage  CZend_View_Helper_HtmlObject ?Zend_View_Helper_HtmlList AZend_View_Helper_HtmlFlash! EZend_View_Helper_HtmlElement AZend_View_Helper_HeadTitle AZend_View_Helper_HeadStyle  CZend_View_Helper_HeadScript ?Zend_View_Helper_HeadMeta
 ?Zend_View_Helper_HeadLink	 ?Zend_View_Helper_Gravatar" GZend_View_Helper_FormTextarea ?Zend_View_Helper_FormText  CZend_View_Helper_FormSubmit   Y  V*b?n>P"h>



q
>
					e	B	"nG%T3
d.
:{b7I}O~@                                    .< _Zend_Tool_Framework_Provider_Interactable/; aZend_Tool_Framework_Provider_Initializable;: yZend_Tool_Framework_Provider_DocblockManifestInterface+9 YZend_Tool_Framework_Metadata_Interface.8 _Zend_Tool_Framework_Metadata_Attributable67 oZend_Tool_Framework_Manifest_ProviderManifestable66 oZend_Tool_Framework_Manifest_MetadataManifestable+5 YZend_Tool_Framework_Manifest_Interface+4 YZend_Tool_Framework_Manifest_Indexable43 kZend_Tool_Framework_Manifest_ActionManifestable)2 UZend_Tool_Framework_Loader_Interface81 sZend_Tool_Framework_Client_Storage_AdapterInterfaceD0 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface;/ yZend_Tool_Framework_Client_Interactive_OutputInterface:. wZend_Tool_Framework_Client_Interactive_InputInterface)- UZend_Tool_Framework_Action_Interface(, SZend_Text_Table_Decorator_Interface+ /Zend_Tag_Taggable* 7Zend_Stdlib_Exception&) OZend_Soap_Wsdl_Strategy_Interface%( MZend_Session_Validator_Interface'' QZend_Session_SaveHandler_Interface$& KZend_Service_ShortUrl_ShortenerI% Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Interface$ 7Zend_Server_Interface-# ]Zend_Serializer_Adapter_AdapterInterface4" kZend_Search_Lucene_Search_Highlighter_Interface!! EZend_Search_Lucene_Interface3  iZend_Search_Lucene_Index_TermsStream_Interface$ KZend_Queue_Stomp_FrameInterface0 cZend_Queue_Stomp_Client_ConnectionInterface( SZend_Queue_Adapter_AdapterInterface ?Zend_Pdf_Filter_Interface& OZend_Pdf_ElementFactory_Interface ?Zend_Pdf_Canvas_Interface, [Zend_Paginator_ScrollingStyle_Interface$ KZend_Paginator_AdapterAggregate% MZend_Paginator_Adapter_Interface& OZend_Oauth_Config_ConfigInterface' QZend_Mobile_Push_Message_Interface AZend_Mobile_Push_Interface$ KZend_Memory_Container_Interface1 eZend_Markup_Renderer_TokenConverterInterface' QZend_Markup_Parser_ParserInterface) UZend_Mail_Storage_Writable_Interface' QZend_Mail_Storage_Folder_Interface =Zend_Mail_Part_Interface  CZend_Mail_Message_Interface! EZend_Log_Formatter_Interface ?Zend_Log_Filter_Interface
 ?Zend_Log_FactoryInterface	 ?Zend_Loader_SplAutoloader' QZend_Loader_PluginLoader_Interface% MZend_Loader_Autoloader_Interface0 cZend_Ldap_Node_Schema_ObjectClass_Interface2 gZend_Ldap_Node_Schema_AttributeType_Interface  CZend_Http_UserAgent_Storage) UZend_Http_UserAgent_Features_Adapter AZend_Http_UserAgent_Device$ KZend_Http_Client_Adapter_Stream'  QZend_Http_Client_Adapter_Interface AZend_Gdata_App_MediaSource.~ _Zend_Form_Decorator_Marker_File_Interface"} GZend_Form_Decorator_Interface| 7Zend_Filter_Interface"{ GZend_Filter_Encrypt_Interface+z YZend_Filter_Compress_CompressInterface0y cZend_Feed_Writer_Renderer_RendererInterface1x eZend_Feed_Writer_Extension_RendererInterface#w IZend_Feed_Reader_FeedInterface$v KZend_Feed_Reader_EntryInterface7u qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface-t ]Zend_Feed_Pubsubhubbub_CallbackInterface s CZend_Feed_Builder_Interface1r eZend_EventManager_SharedEventCollectionAware,q [Zend_EventManager_SharedEventCollection(p SZend_EventManager_ListenerAggregateo =Zend_EventManager_Filter n CZend_EventManager_Exception(m SZend_EventManager_EventManagerAware'l QZend_EventManager_EventDescription&k OZend_EventManager_EventCollection j CZend_Db_Statement_Interface$i KZend_Currency_CurrencyInterface)h UZend_Crypt_Math_BigInteger_Interface+g YZend_Controller_Router_Route_Interface%f MZend_Controller_Router_Interface)e UZend_Controller_Dispatcher_Interface%d MZend_Controller_Action_Interface   ]  m?m7	\6mC|`6



f
:
				n	E	SkEnIW4zY8Z0`8wL                                                 $ KZend_Queue_Stomp_FrameInterface0 cZend_Queue_Stomp_Client_ConnectionInterface( SZend_Queue_Adapter_AdapterInterface ?Zend_Pdf_Filter_Interface& OZend_Pdf_ElementFactory_Interface ?Zend_Pdf_Canvas_Interface, [Zend_Paginator_ScrollingStyle_Interface$ KZend_Paginator_AdapterAggregate% MZend_Paginator_Adapter_Interface& OZend_Oauth_Config_ConfigInterface' QZend_Mobile_Push_Message_Interface AZend_Mobile_Push_Interface$ KZend_Memory_Container_Interface1 eZend_Markup_Renderer_TokenConverterInterface' QZend_Markup_Parser_ParserInterface)
 UZend_Mail_Storage_Writable_Interface'	 QZend_Mail_Storage_Folder_Interface =Zend_Mail_Part_Interface  CZend_Mail_Message_Interface! EZend_Log_Formatter_Interface ?Zend_Log_Filter_Interface ?Zend_Log_FactoryInterface ?Zend_Loader_SplAutoloader' QZend_Loader_PluginLoader_Interface% MZend_Loader_Autoloader_Interface0  cZend_Ldap_Node_Schema_ObjectClass_Interface2 gZend_Ldap_Node_Schema_AttributeType_Interface ~ CZend_Http_UserAgent_Storage)} UZend_Http_UserAgent_Features_Adapter| AZend_Http_UserAgent_Device${ KZend_Http_Client_Adapter_Stream'z QZend_Http_Client_Adapter_Interfacey AZend_Gdata_App_MediaSource.x _Zend_Form_Decorator_Marker_File_Interface"w GZend_Form_Decorator_Interfacev 7Zend_Filter_Interface"u GZend_Filter_Encrypt_Interface+t YZend_Filter_Compress_CompressInterface0s cZend_Feed_Writer_Renderer_RendererInterface1r eZend_Feed_Writer_Extension_RendererInterface#q IZend_Feed_Reader_FeedInterface$p KZend_Feed_Reader_EntryInterface7o qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface-n ]Zend_Feed_Pubsubhubbub_CallbackInterface m CZend_Feed_Builder_Interface1l eZend_EventManager_SharedEventCollectionAware,k [Zend_EventManager_SharedEventCollection(j SZend_EventManager_ListenerAggregatei =Zend_EventManager_Filter h CZend_EventManager_Exception(g SZend_EventManager_EventManagerAware'f QZend_EventManager_EventDescription&e OZend_EventManager_EventCollection d CZend_Db_Statement_Interface$c KZend_Currency_CurrencyInterface)b UZend_Crypt_Math_BigInteger_Interface+a YZend_Controller_Router_Route_Interface%` MZend_Controller_Router_Interface)_ UZend_Controller_Dispatcher_Interface%^ MZend_Controller_Action_Interface&] OZend_Cloud_StorageService_Adapter$\ KZend_Cloud_QueueService_Adapter&[ OZend_Cloud_Infrastructure_Adapter,Z [Zend_Cloud_DocumentService_QueryAdapter'Y QZend_Cloud_DocumentService_AdapterX 5Zend_Captcha_Adapter!W EZend_Cache_Backend_Interface)V UZend_Cache_Backend_ExtendedInterface U CZend_Auth_Storage_Interface T CZend_Auth_Adapter_Interface.S _Zend_Auth_Adapter_Http_Resolver_Interface'R QZend_Application_Resource_Resource4Q kZend_Application_Bootstrap_ResourceBootstrapper,P [Zend_Application_Bootstrap_BootstrapperO ;Zend_Acl_Role_Interface N CZend_Acl_Resource_InterfaceM ?Zend_Acl_Assert_Interface#L IZend_Wildfire_Plugin_Interface$K KZend_Wildfire_Channel_InterfaceJ 3Zend_View_Interface'I QZend_View_Helper_Navigation_HelperH AZend_View_Helper_InterfaceG ;Zend_Validate_Interface+F YZend_Validate_Barcode_AdapterInterface3E iZend_Tool_Project_Profile_FileParser_Interface:D wZend_Tool_Project_Context_System_TopLevelRestrictable5C mZend_Tool_Project_Context_System_NotOverwritable/B aZend_Tool_Project_Context_System_Interface(A SZend_Tool_Project_Context_Interface+@ YZend_Tool_Framework_Registry_Interface2? gZend_Tool_Framework_Registry_EnabledInterface-> ]Zend_Tool_Framework_Provider_Pretendable+= YZend_Tool_Framework_Provider_Interface   g  iK2{X3o?\/c<



f
?
				b	8	~]9{_F"`2hBc=^<'vT2T(                  V 1Zend_Cache_Backend"U GZend_Cache_Backend_ZendServer(T SZend_Cache_Backend_ZendServer_ShMem'S QZend_Cache_Backend_ZendServer_Disk$R KZend_Cache_Backend_ZendPlatformQ ?Zend_Cache_Backend_Xcache P CZend_Cache_Backend_WinCache!O EZend_Cache_Backend_TwoLevelsN ;Zend_Cache_Backend_TestM ?Zend_Cache_Backend_StaticL ?Zend_Cache_Backend_Sqlite!K EZend_Cache_Backend_Memcached$J KZend_Cache_Backend_LibmemcachedI ;Zend_Cache_Backend_File!H EZend_Cache_Backend_BlackHoleG 9Zend_Cache_Backend_ApcF %Zend_BarcodeE ?Zend_Barcode_Renderer_Svg+D YZend_Barcode_Renderer_RendererAbstractC ?Zend_Barcode_Renderer_Pdf B CZend_Barcode_Renderer_Image$A KZend_Barcode_Renderer_Exception@ =Zend_Barcode_Object_Upce? =Zend_Barcode_Object_Upca"> GZend_Barcode_Object_Royalmail = CZend_Barcode_Object_Postnet< AZend_Barcode_Object_Planet'; QZend_Barcode_Object_ObjectAbstract!: EZend_Barcode_Object_Leitcode9 ?Zend_Barcode_Object_Itf14"8 GZend_Barcode_Object_Identcode"7 GZend_Barcode_Object_Exception6 ?Zend_Barcode_Object_Error5 =Zend_Barcode_Object_Ean84 =Zend_Barcode_Object_Ean53 =Zend_Barcode_Object_Ean22 ?Zend_Barcode_Object_Ean131 AZend_Barcode_Object_Code39*0 WZend_Barcode_Object_Code25interleaved/ AZend_Barcode_Object_Code25 . CZend_Barcode_Object_Code128- 9Zend_Barcode_Exception, Zend_Auth+ ?Zend_Auth_Storage_Session$* KZend_Auth_Storage_NonPersistent ) CZend_Auth_Storage_Exception( -Zend_Auth_Result' 3Zend_Auth_Exception& =Zend_Auth_Adapter_OpenId% 9Zend_Auth_Adapter_Ldap$ 9Zend_Auth_Adapter_Http)# UZend_Auth_Adapter_Http_Resolver_File." _Zend_Auth_Adapter_Http_Resolver_Exception ! CZend_Auth_Adapter_Exception  =Zend_Auth_Adapter_Digest ?Zend_Auth_Adapter_DbTable -Zend_Application# IZend_Application_Resource_View( SZend_Application_Resource_UserAgent( SZend_Application_Resource_Translate& OZend_Application_Resource_Session% MZend_Application_Resource_Router/ aZend_Application_Resource_ResourceAbstract) UZend_Application_Resource_Navigation& OZend_Application_Resource_Multidb& OZend_Application_Resource_Modules# IZend_Application_Resource_Mail" GZend_Application_Resource_Log% MZend_Application_Resource_Locale% MZend_Application_Resource_Layout. _Zend_Application_Resource_Frontcontroller( SZend_Application_Resource_Exception# IZend_Application_Resource_Dojo! EZend_Application_Resource_Db+ YZend_Application_Resource_Cachemanager& OZend_Application_Module_Bootstrap'
 QZend_Application_Module_Autoloader	 AZend_Application_Exception) UZend_Application_Bootstrap_Exception1 eZend_Application_Bootstrap_BootstrapAbstract) UZend_Application_Bootstrap_Bootstrap ?Zend_Amf_Value_TraitsInfo- ]Zend_Amf_Value_Messaging_RemotingMessage* WZend_Amf_Value_Messaging_ErrorMessage, [Zend_Amf_Value_Messaging_CommandMessage* WZend_Amf_Value_Messaging_AsyncMessage-  ]Zend_Amf_Value_Messaging_ArrayCollection0 cZend_Amf_Value_Messaging_AcknowledgeMessage-~ ]Zend_Amf_Value_Messaging_AbstractMessage!} EZend_Amf_Value_MessageHeader| AZend_Amf_Value_MessageBody{ =Zend_Amf_Value_ByteArrayz AZend_Amf_Util_BinaryStreamy +Zend_Amf_Serverx ?Zend_Amf_Server_Exceptionw /Zend_Amf_Responsev 9Zend_Amf_Response_Httpu -Zend_Amf_Requestt 7Zend_Amf_Request_Https ?Zend_Amf_Parse_TypeLoaderr ?Zend_Amf_Parse_Serializer#q IZend_Amf_Parse_Resource_Stream(p SZend_Amf_Parse_Resource_MysqlResult   _  d?z^C$
r> m@g3



^
/				d	2	X$jF!|JvG]5~^?}T%N                             (5 SZend_Controller_Action_Helper_Cache<4 {Zend_Controller_Action_Helper_AutoCompleteScriptaculous33 iZend_Controller_Action_Helper_AutoCompleteDojo82 sZend_Controller_Action_Helper_AutoComplete_Abstract.1 _Zend_Controller_Action_Helper_AjaxContext.0 _Zend_Controller_Action_Helper_ActionStack+/ YZend_Controller_Action_Helper_Abstract%. MZend_Controller_Action_Exception- 3Zend_Console_Getopt", GZend_Console_Getopt_Exception+ #Zend_Config* -Zend_Config_Yaml) +Zend_Config_Xml( 1Zend_Config_Writer' ;Zend_Config_Writer_Yaml& 9Zend_Config_Writer_Xml% ;Zend_Config_Writer_Json$ 9Zend_Config_Writer_Ini$# KZend_Config_Writer_FileAbstract" =Zend_Config_Writer_Array! -Zend_Config_Json  +Zend_Config_Ini 7Zend_Config_Exception$ KZend_CodeGenerator_Php_Property1 eZend_CodeGenerator_Php_Property_DefaultValue% MZend_CodeGenerator_Php_Parameter2 gZend_CodeGenerator_Php_Parameter_DefaultValue" GZend_CodeGenerator_Php_Method, [Zend_CodeGenerator_Php_Member_Container+ YZend_CodeGenerator_Php_Member_Abstract  CZend_CodeGenerator_Php_File% MZend_CodeGenerator_Php_Exception$ KZend_CodeGenerator_Php_Docblock( SZend_CodeGenerator_Php_Docblock_Tag/ aZend_CodeGenerator_Php_Docblock_Tag_Return. _Zend_CodeGenerator_Php_Docblock_Tag_Param0 cZend_CodeGenerator_Php_Docblock_Tag_License! EZend_CodeGenerator_Php_Class  CZend_CodeGenerator_Php_Body$ KZend_CodeGenerator_Php_Abstract! EZend_CodeGenerator_Exception  CZend_CodeGenerator_Abstract& OZend_Cloud_StorageService_Factory(
 SZend_Cloud_StorageService_Exception3	 iZend_Cloud_StorageService_Adapter_WindowsAzure) UZend_Cloud_StorageService_Adapter_S30 cZend_Cloud_StorageService_Adapter_Rackspace1 eZend_Cloud_StorageService_Adapter_FileSystem' QZend_Cloud_QueueService_MessageSet$ KZend_Cloud_QueueService_Message$ KZend_Cloud_QueueService_Factory& OZend_Cloud_QueueService_Exception. _Zend_Cloud_QueueService_Adapter_ZendQueue1  eZend_Cloud_QueueService_Adapter_WindowsAzure( SZend_Cloud_QueueService_Adapter_Sqs4~ kZend_Cloud_QueueService_Adapter_AbstractAdapter.} _Zend_Cloud_OperationNotAvailableException+| YZend_Cloud_Infrastructure_InstanceList'{ QZend_Cloud_Infrastructure_Instance(z SZend_Cloud_Infrastructure_ImageList$y KZend_Cloud_Infrastructure_Image&x OZend_Cloud_Infrastructure_Factory(w SZend_Cloud_Infrastructure_Exception0v cZend_Cloud_Infrastructure_Adapter_Rackspace*u WZend_Cloud_Infrastructure_Adapter_Ec26t oZend_Cloud_Infrastructure_Adapter_AbstractAdapters 5Zend_Cloud_Exception%r MZend_Cloud_DocumentService_Query'q QZend_Cloud_DocumentService_Factory)p UZend_Cloud_DocumentService_Exception+o YZend_Cloud_DocumentService_DocumentSet(n SZend_Cloud_DocumentService_Document4m kZend_Cloud_DocumentService_Adapter_WindowsAzure:l wZend_Cloud_DocumentService_Adapter_WindowsAzure_Query0k cZend_Cloud_DocumentService_Adapter_SimpleDb6j oZend_Cloud_DocumentService_Adapter_SimpleDb_Query7i qZend_Cloud_DocumentService_Adapter_AbstractAdapterh AZend_Cloud_AbstractFactoryg /Zend_Captcha_Wordf 9Zend_Captcha_ReCaptchae 1Zend_Captcha_Imaged 3Zend_Captcha_Figletc 9Zend_Captcha_Exceptionb /Zend_Captcha_Dumba /Zend_Captcha_Base` !Zend_Cache_ 1Zend_Cache_Manager^ =Zend_Cache_Frontend_Page] AZend_Cache_Frontend_Output!\ EZend_Cache_Frontend_Function[ =Zend_Cache_Frontend_FileZ ?Zend_Cache_Frontend_Class Y CZend_Cache_Frontend_CaptureX 5Zend_Cache_ExceptionW +Zend_Cache_Core   j  l;xY- lArH#U/



[
0
				Z	/	`9v[D1vP4]9oL#rY8!k@qW8                             ;Zend_Db_Table_Exception =Zend_Db_Table_Definition 9Zend_Db_Table_Abstract /Zend_Db_Statement =Zend_Db_Statement_Sqlsrv' QZend_Db_Statement_Sqlsrv_Exception 7Zend_Db_Statement_Pdo ?Zend_Db_Statement_Pdo_Oci ?Zend_Db_Statement_Pdo_Ibm =Zend_Db_Statement_Oracle' QZend_Db_Statement_Oracle_Exception =Zend_Db_Statement_Mysqli' QZend_Db_Statement_Mysqli_Exception  CZend_Db_Statement_Exception 7Zend_Db_Statement_Db2$ KZend_Db_Statement_Db2_Exception )Zend_Db_Select =Zend_Db_Select_Exception -Zend_Db_Profiler 9Zend_Db_Profiler_Query =Zend_Db_Profiler_Firebug
 AZend_Db_Profiler_Exception	 %Zend_Db_Expr /Zend_Db_Exception 9Zend_Db_Adapter_Sqlsrv% MZend_Db_Adapter_Sqlsrv_Exception AZend_Db_Adapter_Pdo_Sqlite ?Zend_Db_Adapter_Pdo_Pgsql ;Zend_Db_Adapter_Pdo_Oci ?Zend_Db_Adapter_Pdo_Mysql ?Zend_Db_Adapter_Pdo_Mssql  ;Zend_Db_Adapter_Pdo_Ibm  CZend_Db_Adapter_Pdo_Ibm_Ids ~ CZend_Db_Adapter_Pdo_Ibm_Db2!} EZend_Db_Adapter_Pdo_Abstract| 9Zend_Db_Adapter_Oracle%{ MZend_Db_Adapter_Oracle_Exceptionz 9Zend_Db_Adapter_Mysqli%y MZend_Db_Adapter_Mysqli_Exceptionx ?Zend_Db_Adapter_Exceptionw 3Zend_Db_Adapter_Db2"v GZend_Db_Adapter_Db2_Exceptionu =Zend_Db_Adapter_Abstractt Zend_Dates 3Zend_Date_Exceptionr 5Zend_Date_DateObjectq -Zend_Date_Citiesp 'Zend_Currencyo ;Zend_Currency_Exceptionn !Zend_Cryptm )Zend_Crypt_Rsal 1Zend_Crypt_Rsa_Keyk ?Zend_Crypt_Rsa_Key_Publicj AZend_Crypt_Rsa_Key_Privatei =Zend_Crypt_Rsa_Exceptionh +Zend_Crypt_Mathg ?Zend_Crypt_Math_Exceptionf AZend_Crypt_Math_BigInteger#e IZend_Crypt_Math_BigInteger_Gmp)d UZend_Crypt_Math_BigInteger_Exception&c OZend_Crypt_Math_BigInteger_Bcmathb +Zend_Crypt_Hmaca ?Zend_Crypt_Hmac_Exception` 5Zend_Crypt_Exception_ =Zend_Crypt_DiffieHellman'^ QZend_Crypt_DiffieHellman_Exception!] EZend_Controller_Router_Route(\ SZend_Controller_Router_Route_Static'[ QZend_Controller_Router_Route_Regex(Z SZend_Controller_Router_Route_Module*Y WZend_Controller_Router_Route_Hostname'X QZend_Controller_Router_Route_Chain*W WZend_Controller_Router_Route_Abstract#V IZend_Controller_Router_Rewrite%U MZend_Controller_Router_Exception$T KZend_Controller_Router_Abstract*S WZend_Controller_Response_HttpTestCase"R GZend_Controller_Response_Http'Q QZend_Controller_Response_Exception!P EZend_Controller_Response_Cli&O OZend_Controller_Response_Abstract#N IZend_Controller_Request_Simple)M UZend_Controller_Request_HttpTestCase!L EZend_Controller_Request_Http&K OZend_Controller_Request_Exception&J OZend_Controller_Request_Apache404%I MZend_Controller_Request_Abstract&H OZend_Controller_Plugin_PutHandler(G SZend_Controller_Plugin_ErrorHandler"F GZend_Controller_Plugin_Broker'E QZend_Controller_Plugin_ActionStack$D KZend_Controller_Plugin_AbstractC 7Zend_Controller_FrontB ?Zend_Controller_Exception(A SZend_Controller_Dispatcher_Standard)@ UZend_Controller_Dispatcher_Exception(? SZend_Controller_Dispatcher_Abstract> 9Zend_Controller_Action(= SZend_Controller_Action_HelperBroker6< oZend_Controller_Action_HelperBroker_PriorityStack/; aZend_Controller_Action_Helper_ViewRenderer&: OZend_Controller_Action_Helper_Url-9 ]Zend_Controller_Action_Helper_Redirector'8 QZend_Controller_Action_Helper_Json17 eZend_Controller_Action_Helper_FlashMessenger06 cZend_Controller_Action_Helper_ContextSwitch   b  yR5h4wIlFwM'



n
?
				l	E	d3f<i<tHrEuKkK$dS&  ) UZend_EventManager_StaticEventManager)  UZend_EventManager_SharedEventManager) UZend_EventManager_ResponseCollection~ SplStack)} UZend_EventManager_GlobalEventManager"| GZend_EventManager_FilterChain,{ [Zend_EventManager_Filter_FilterIterator9z uZend_EventManager_Exception_InvalidArgumentException#y IZend_EventManager_EventManagerx ;Zend_EventManager_Eventw )Zend_Dom_Queryv 7Zend_Dom_Query_Resultu =Zend_Dom_Query_Css2Xpatht 1Zend_Dom_Exceptions Zend_Dojo)r UZend_Dojo_View_Helper_VerticalSlider,q [Zend_Dojo_View_Helper_ValidationTextBox&p OZend_Dojo_View_Helper_TimeTextBox"o GZend_Dojo_View_Helper_TextBox#n IZend_Dojo_View_Helper_Textarea'm QZend_Dojo_View_Helper_TabContainer'l QZend_Dojo_View_Helper_SubmitButton)k UZend_Dojo_View_Helper_StackContainer)j UZend_Dojo_View_Helper_SplitContainer!i EZend_Dojo_View_Helper_Slider)h UZend_Dojo_View_Helper_SimpleTextarea&g OZend_Dojo_View_Helper_RadioButton*f WZend_Dojo_View_Helper_PasswordTextBox(e SZend_Dojo_View_Helper_NumberTextBox(d SZend_Dojo_View_Helper_NumberSpinner+c YZend_Dojo_View_Helper_HorizontalSliderb AZend_Dojo_View_Helper_Form*a WZend_Dojo_View_Helper_FilteringSelect!` EZend_Dojo_View_Helper_Editor_ AZend_Dojo_View_Helper_Dojo)^ UZend_Dojo_View_Helper_Dojo_Container)] UZend_Dojo_View_Helper_DijitContainer \ CZend_Dojo_View_Helper_Dijit&[ OZend_Dojo_View_Helper_DateTextBox&Z OZend_Dojo_View_Helper_CustomDijit*Y WZend_Dojo_View_Helper_CurrencyTextBox&X OZend_Dojo_View_Helper_ContentPane#W IZend_Dojo_View_Helper_ComboBox#V IZend_Dojo_View_Helper_CheckBox!U EZend_Dojo_View_Helper_Button*T WZend_Dojo_View_Helper_BorderContainer(S SZend_Dojo_View_Helper_AccordionPane-R ]Zend_Dojo_View_Helper_AccordionContainerQ =Zend_Dojo_View_ExceptionP )Zend_Dojo_FormO 9Zend_Dojo_Form_SubForm*N WZend_Dojo_Form_Element_VerticalSlider-M ]Zend_Dojo_Form_Element_ValidationTextBox'L QZend_Dojo_Form_Element_TimeTextBox#K IZend_Dojo_Form_Element_TextBox$J KZend_Dojo_Form_Element_Textarea(I SZend_Dojo_Form_Element_SubmitButton"H GZend_Dojo_Form_Element_Slider*G WZend_Dojo_Form_Element_SimpleTextarea'F QZend_Dojo_Form_Element_RadioButton+E YZend_Dojo_Form_Element_PasswordTextBox)D UZend_Dojo_Form_Element_NumberTextBox)C UZend_Dojo_Form_Element_NumberSpinner,B [Zend_Dojo_Form_Element_HorizontalSlider+A YZend_Dojo_Form_Element_FilteringSelect"@ GZend_Dojo_Form_Element_Editor&? OZend_Dojo_Form_Element_DijitMulti!> EZend_Dojo_Form_Element_Dijit'= QZend_Dojo_Form_Element_DateTextBox+< YZend_Dojo_Form_Element_CurrencyTextBox$; KZend_Dojo_Form_Element_ComboBox$: KZend_Dojo_Form_Element_CheckBox"9 GZend_Dojo_Form_Element_Button 8 CZend_Dojo_Form_DisplayGroup*7 WZend_Dojo_Form_Decorator_TabContainer,6 [Zend_Dojo_Form_Decorator_StackContainer,5 [Zend_Dojo_Form_Decorator_SplitContainer'4 QZend_Dojo_Form_Decorator_DijitForm*3 WZend_Dojo_Form_Decorator_DijitElement,2 [Zend_Dojo_Form_Decorator_DijitContainer)1 UZend_Dojo_Form_Decorator_ContentPane-0 ]Zend_Dojo_Form_Decorator_BorderContainer+/ YZend_Dojo_Form_Decorator_AccordionPane0. cZend_Dojo_Form_Decorator_AccordionContainer- 3Zend_Dojo_Exception, )Zend_Dojo_Data+ 5Zend_Dojo_BuildLayer* !Zend_Debug) Zend_Db( 'Zend_Db_Table' 5Zend_Db_Table_Select#& IZend_Db_Table_Select_Exception% 5Zend_Db_Table_Rowset#$ IZend_Db_Table_Rowset_Exception"# GZend_Db_Table_Rowset_Abstract" /Zend_Db_Table_Row ! CZend_Db_Table_Row_Exception  AZend_Db_Table_Row_Abstract   ^  sK*P'm:b>uD


l
;
			{	G	qK*Kh9 \ b5	qFZ2hG                      _ =Zend_Filter_Compress_Lzf^ ;Zend_Filter_Compress_Gz*] WZend_Filter_Compress_CompressAbstract\ =Zend_Filter_Compress_Bz2[ 5Zend_Filter_CallbackZ 3Zend_Filter_BooleanY 5Zend_Filter_BaseNameX /Zend_Filter_AlphaW /Zend_Filter_AlnumV 1Zend_File_Transfer!U EZend_File_Transfer_Exception$T KZend_File_Transfer_Adapter_Http(S SZend_File_Transfer_Adapter_AbstractR 9Zend_File_PhpClassFileQ AZend_File_ClassFileLocatorP Zend_FeedO -Zend_Feed_WriterN ;Zend_Feed_Writer_Source/M aZend_Feed_Writer_Renderer_RendererAbstract'L QZend_Feed_Writer_Renderer_Feed_Rss(K SZend_Feed_Writer_Renderer_Feed_Atom/J aZend_Feed_Writer_Renderer_Feed_Atom_Source5I mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract(H SZend_Feed_Writer_Renderer_Entry_Rss)G UZend_Feed_Writer_Renderer_Entry_Atom1F eZend_Feed_Writer_Renderer_Entry_Atom_DeletedE 7Zend_Feed_Writer_Feed'D QZend_Feed_Writer_Feed_FeedAbstract<C {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry8B sZend_Feed_Writer_Extension_Threading_Renderer_Entry4A kZend_Feed_Writer_Extension_Slash_Renderer_Entry0@ cZend_Feed_Writer_Extension_RendererAbstract4? kZend_Feed_Writer_Extension_ITunes_Renderer_Feed5> mZend_Feed_Writer_Extension_ITunes_Renderer_Entry+= YZend_Feed_Writer_Extension_ITunes_Feed,< [Zend_Feed_Writer_Extension_ITunes_Entry8; sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed9: uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry69 oZend_Feed_Writer_Extension_Content_Renderer_Entry28 gZend_Feed_Writer_Extension_Atom_Renderer_Feed67 oZend_Feed_Writer_Exception_InvalidMethodException6 9Zend_Feed_Writer_Entry5 =Zend_Feed_Writer_Deleted4 'Zend_Feed_Rss3 -Zend_Feed_Reader2 =Zend_Feed_Reader_FeedSet"1 GZend_Feed_Reader_FeedAbstract0 ?Zend_Feed_Reader_Feed_Rss/ AZend_Feed_Reader_Feed_Atom&. OZend_Feed_Reader_Feed_Atom_Source3- iZend_Feed_Reader_Extension_WellFormedWeb_Entry,, [Zend_Feed_Reader_Extension_Thread_Entry0+ cZend_Feed_Reader_Extension_Syndication_Feed+* YZend_Feed_Reader_Extension_Slash_Entry,) [Zend_Feed_Reader_Extension_Podcast_Feed-( ]Zend_Feed_Reader_Extension_Podcast_Entry,' [Zend_Feed_Reader_Extension_FeedAbstract-& ]Zend_Feed_Reader_Extension_EntryAbstract/% aZend_Feed_Reader_Extension_DublinCore_Feed0$ cZend_Feed_Reader_Extension_DublinCore_Entry4# kZend_Feed_Reader_Extension_CreativeCommons_Feed5" mZend_Feed_Reader_Extension_CreativeCommons_Entry-! ]Zend_Feed_Reader_Extension_Content_Entry)  UZend_Feed_Reader_Extension_Atom_Feed* WZend_Feed_Reader_Extension_Atom_Entry# IZend_Feed_Reader_EntryAbstract AZend_Feed_Reader_Entry_Rss  CZend_Feed_Reader_Entry_Atom  CZend_Feed_Reader_Collection3 iZend_Feed_Reader_Collection_CollectionAbstract) UZend_Feed_Reader_Collection_Category' QZend_Feed_Reader_Collection_Author 9Zend_Feed_Pubsubhubbub& OZend_Feed_Pubsubhubbub_Subscriber/ aZend_Feed_Pubsubhubbub_Subscriber_Callback% MZend_Feed_Pubsubhubbub_Publisher. _Zend_Feed_Pubsubhubbub_Model_Subscription/ aZend_Feed_Pubsubhubbub_Model_ModelAbstract( SZend_Feed_Pubsubhubbub_HttpResponse% MZend_Feed_Pubsubhubbub_Exception, [Zend_Feed_Pubsubhubbub_CallbackAbstract 3Zend_Feed_Exception 3Zend_Feed_Entry_Rss 5Zend_Feed_Entry_Atom =Zend_Feed_Entry_Abstract
 /Zend_Feed_Element	 /Zend_Feed_Builder =Zend_Feed_Builder_Header$ KZend_Feed_Builder_Header_Itunes  CZend_Feed_Builder_Exception ;Zend_Feed_Builder_Entry )Zend_Feed_Atom 1Zend_Feed_Abstract )Zend_Exception   l  aE*pO,xN$kI+|S)



x
I
					d	;	~Y8_3_<yQ+gH%yP&_1bF                ,K [Zend_Gdata_App_CaptchaRequiredException#J IZend_Gdata_App_BaseMediaSourceI 3Zend_Gdata_App_Base*H WZend_Gdata_App_BadMethodCallException!G EZend_Gdata_App_AuthExceptionF 5Zend_Gdata_Analytics+E YZend_Gdata_Analytics_Extension_TableId,D [Zend_Gdata_Analytics_Extension_Property*C WZend_Gdata_Analytics_Extension_MetricB ?Zend_Gdata_Analytics_Goal-A ]Zend_Gdata_Analytics_Extension_Dimension#@ IZend_Gdata_Analytics_DataQuery"? GZend_Gdata_Analytics_DataFeed#> IZend_Gdata_Analytics_DataEntry&= OZend_Gdata_Analytics_AccountQuery%< MZend_Gdata_Analytics_AccountFeed&; OZend_Gdata_Analytics_AccountEntry: Zend_Form9 /Zend_Form_SubForm8 3Zend_Form_Exception7 /Zend_Form_Element6 ;Zend_Form_Element_Xhtml5 AZend_Form_Element_Textarea4 9Zend_Form_Element_Text3 =Zend_Form_Element_Submit2 =Zend_Form_Element_Select1 ;Zend_Form_Element_Reset0 ;Zend_Form_Element_Radio/ AZend_Form_Element_Password. 9Zend_Form_Element_Note"- GZend_Form_Element_Multiselect$, KZend_Form_Element_MultiCheckbox+ ;Zend_Form_Element_Multi* ;Zend_Form_Element_Image) =Zend_Form_Element_Hidden( 9Zend_Form_Element_Hash' 9Zend_Form_Element_File & CZend_Form_Element_Exception% AZend_Form_Element_Checkbox$ ?Zend_Form_Element_Captcha# =Zend_Form_Element_Button" 9Zend_Form_DisplayGroup#! IZend_Form_Decorator_ViewScript#  IZend_Form_Decorator_ViewHelper  CZend_Form_Decorator_Tooltip( SZend_Form_Decorator_PrepareElements ?Zend_Form_Decorator_Label ?Zend_Form_Decorator_Image  CZend_Form_Decorator_HtmlTag# IZend_Form_Decorator_FormErrors% MZend_Form_Decorator_FormElements =Zend_Form_Decorator_Form =Zend_Form_Decorator_File! EZend_Form_Decorator_Fieldset" GZend_Form_Decorator_Exception AZend_Form_Decorator_Errors$ KZend_Form_Decorator_DtDdWrapper$ KZend_Form_Decorator_Description  CZend_Form_Decorator_Captcha% MZend_Form_Decorator_Captcha_Word* WZend_Form_Decorator_Captcha_ReCaptcha! EZend_Form_Decorator_Callback! EZend_Form_Decorator_Abstract #Zend_Filter+ YZend_Filter_Word_UnderscoreToSeparator&
 OZend_Filter_Word_UnderscoreToDash+	 YZend_Filter_Word_UnderscoreToCamelCase* WZend_Filter_Word_SeparatorToSeparator% MZend_Filter_Word_SeparatorToDash* WZend_Filter_Word_SeparatorToCamelCase( SZend_Filter_Word_Separator_Abstract& OZend_Filter_Word_DashToUnderscore% MZend_Filter_Word_DashToSeparator% MZend_Filter_Word_DashToCamelCase+ YZend_Filter_Word_CamelCaseToUnderscore*  WZend_Filter_Word_CamelCaseToSeparator% MZend_Filter_Word_CamelCaseToDash~ 7Zend_Filter_StripTags} ?Zend_Filter_StripNewlines| 9Zend_Filter_StringTrim{ ?Zend_Filter_StringToUpperz ?Zend_Filter_StringToLowery 5Zend_Filter_RealPathx ;Zend_Filter_PregReplacew -Zend_Filter_Null&v OZend_Filter_NormalizedToLocalized&u OZend_Filter_LocalizedToNormalizedt +Zend_Filter_Ints /Zend_Filter_Inputr 7Zend_Filter_Inflectorq =Zend_Filter_HtmlEntitiesp AZend_Filter_File_UpperCaseo ;Zend_Filter_File_Renamen AZend_Filter_File_LowerCasem =Zend_Filter_File_Encryptl =Zend_Filter_File_Decryptk 7Zend_Filter_Exceptionj 3Zend_Filter_Encrypt i CZend_Filter_Encrypt_Opensslh AZend_Filter_Encrypt_Mcryptg +Zend_Filter_Dirf 1Zend_Filter_Digitse 3Zend_Filter_Decryptd 9Zend_Filter_Decompressc 5Zend_Filter_Compressb =Zend_Filter_Compress_Zipa =Zend_Filter_Compress_Tar` =Zend_Filter_Compress_Rar   `  pGyR'kCuO(vN)



~
W
;
					^	-	 tJ|c<d9
o>eG/o<zL.yK#       "+ GZend_Gdata_Exif_Extension_Iso,* [Zend_Gdata_Exif_Extension_ImageUniqueId$) KZend_Gdata_Exif_Extension_FStop*( WZend_Gdata_Exif_Extension_FocalLength$' KZend_Gdata_Exif_Extension_Flash'& QZend_Gdata_Exif_Extension_Exposure'% QZend_Gdata_Exif_Extension_Distance$ 7Zend_Gdata_Exif_Entry# -Zend_Gdata_Entry" 7Zend_Gdata_DublinCore*! WZend_Gdata_DublinCore_Extension_Title,  [Zend_Gdata_DublinCore_Extension_Subject+ YZend_Gdata_DublinCore_Extension_Rights. _Zend_Gdata_DublinCore_Extension_Publisher- ]Zend_Gdata_DublinCore_Extension_Language/ aZend_Gdata_DublinCore_Extension_Identifier+ YZend_Gdata_DublinCore_Extension_Format0 cZend_Gdata_DublinCore_Extension_Description) UZend_Gdata_DublinCore_Extension_Date, [Zend_Gdata_DublinCore_Extension_Creator +Zend_Gdata_Docs 7Zend_Gdata_Docs_Query% MZend_Gdata_Docs_DocumentListFeed& OZend_Gdata_Docs_DocumentListEntry 9Zend_Gdata_ClientLogin 3Zend_Gdata_Calendar! EZend_Gdata_Calendar_ListFeed" GZend_Gdata_Calendar_ListEntry- ]Zend_Gdata_Calendar_Extension_WebContent+ YZend_Gdata_Calendar_Extension_Timezone9 uZend_Gdata_Calendar_Extension_SendEventNotifications+ YZend_Gdata_Calendar_Extension_Selected+ YZend_Gdata_Calendar_Extension_QuickAdd'
 QZend_Gdata_Calendar_Extension_Link)	 UZend_Gdata_Calendar_Extension_Hidden( SZend_Gdata_Calendar_Extension_Color. _Zend_Gdata_Calendar_Extension_AccessLevel# IZend_Gdata_Calendar_EventQuery" GZend_Gdata_Calendar_EventFeed# IZend_Gdata_Calendar_EventEntry -Zend_Gdata_Books! EZend_Gdata_Books_VolumeQuery  CZend_Gdata_Books_VolumeFeed!  EZend_Gdata_Books_VolumeEntry+ YZend_Gdata_Books_Extension_Viewability-~ ]Zend_Gdata_Books_Extension_ThumbnailLink&} OZend_Gdata_Books_Extension_Review+| YZend_Gdata_Books_Extension_PreviewLink({ SZend_Gdata_Books_Extension_InfoLink-z ]Zend_Gdata_Books_Extension_Embeddability)y UZend_Gdata_Books_Extension_BooksLink-x ]Zend_Gdata_Books_Extension_BooksCategory.w _Zend_Gdata_Books_Extension_AnnotationLink$v KZend_Gdata_Books_CollectionFeed%u MZend_Gdata_Books_CollectionEntryt 1Zend_Gdata_AuthSubs )Zend_Gdata_App$r KZend_Gdata_App_VersionExceptionq 3Zend_Gdata_App_Util#p IZend_Gdata_App_MediaFileSourceo ?Zend_Gdata_App_MediaEntry2n gZend_Gdata_App_LoggingHttpClientAdapterSocketm AZend_Gdata_App_IOException,l [Zend_Gdata_App_InvalidArgumentException!k EZend_Gdata_App_HttpException$j KZend_Gdata_App_FeedSourceParent#i IZend_Gdata_App_FeedEntryParenth 3Zend_Gdata_App_Feedg =Zend_Gdata_App_Extension!f EZend_Gdata_App_Extension_Uri%e MZend_Gdata_App_Extension_Updated#d IZend_Gdata_App_Extension_Title"c GZend_Gdata_App_Extension_Text%b MZend_Gdata_App_Extension_Summary&a OZend_Gdata_App_Extension_Subtitle$` KZend_Gdata_App_Extension_Source$_ KZend_Gdata_App_Extension_Rights'^ QZend_Gdata_App_Extension_Published$] KZend_Gdata_App_Extension_Person"\ GZend_Gdata_App_Extension_Name"[ GZend_Gdata_App_Extension_Logo"Z GZend_Gdata_App_Extension_Link Y CZend_Gdata_App_Extension_Id"X GZend_Gdata_App_Extension_Icon'W QZend_Gdata_App_Extension_Generator#V IZend_Gdata_App_Extension_Email%U MZend_Gdata_App_Extension_Element$T KZend_Gdata_App_Extension_Edited#S IZend_Gdata_App_Extension_Draft%R MZend_Gdata_App_Extension_Control)Q UZend_Gdata_App_Extension_Contributor%P MZend_Gdata_App_Extension_Content&O OZend_Gdata_App_Extension_Category$N KZend_Gdata_App_Extension_AuthorM =Zend_Gdata_App_ExceptionL 5Zend_Gdata_App_Entry   c  cF.b4tI%|T2jB



d
;
				n	K	'	lE!nL)]:tGsM"cE"pAR#                                  0 cZend_Gdata_Media_Extension_MediaRestriction+ YZend_Gdata_Media_Extension_MediaRating+ YZend_Gdata_Media_Extension_MediaPlayer- ]Zend_Gdata_Media_Extension_MediaKeywords)
 UZend_Gdata_Media_Extension_MediaHash*	 WZend_Gdata_Media_Extension_MediaGroup0 cZend_Gdata_Media_Extension_MediaDescription+ YZend_Gdata_Media_Extension_MediaCredit. _Zend_Gdata_Media_Extension_MediaCopyright, [Zend_Gdata_Media_Extension_MediaContent- ]Zend_Gdata_Media_Extension_MediaCategory 9Zend_Gdata_Media_Entry AZend_Gdata_Kind_EventEntry 7Zend_Gdata_HttpClient*  WZend_Gdata_HttpAdapterStreamingSocket) UZend_Gdata_HttpAdapterStreamingProxy~ /Zend_Gdata_Health} ;Zend_Gdata_Health_Query&| OZend_Gdata_Health_ProfileListFeed'{ QZend_Gdata_Health_ProfileListEntry"z GZend_Gdata_Health_ProfileFeed#y IZend_Gdata_Health_ProfileEntry$x KZend_Gdata_Health_Extension_Ccrw )Zend_Gdata_Geov 3Zend_Gdata_Geo_Feed$u KZend_Gdata_Geo_Extension_GmlPos&t OZend_Gdata_Geo_Extension_GmlPoint)s UZend_Gdata_Geo_Extension_GeoRssWherer 5Zend_Gdata_Geo_Entryq -Zend_Gdata_Gbase"p GZend_Gdata_Gbase_SnippetQuery!o EZend_Gdata_Gbase_SnippetFeed"n GZend_Gdata_Gbase_SnippetEntrym 9Zend_Gdata_Gbase_Queryl AZend_Gdata_Gbase_ItemQueryk ?Zend_Gdata_Gbase_ItemFeedj AZend_Gdata_Gbase_ItemEntryi 7Zend_Gdata_Gbase_Feed-h ]Zend_Gdata_Gbase_Extension_BaseAttributeg 9Zend_Gdata_Gbase_Entryf -Zend_Gdata_Gappse AZend_Gdata_Gapps_UserQueryd ?Zend_Gdata_Gapps_UserFeedc AZend_Gdata_Gapps_UserEntry&b OZend_Gdata_Gapps_ServiceExceptiona 9Zend_Gdata_Gapps_Query ` CZend_Gdata_Gapps_OwnerQuery_ AZend_Gdata_Gapps_OwnerFeed ^ CZend_Gdata_Gapps_OwnerEntry#] IZend_Gdata_Gapps_NicknameQuery"\ GZend_Gdata_Gapps_NicknameFeed#[ IZend_Gdata_Gapps_NicknameEntry!Z EZend_Gdata_Gapps_MemberQuery Y CZend_Gdata_Gapps_MemberFeed!X EZend_Gdata_Gapps_MemberEntry W CZend_Gdata_Gapps_GroupQueryV AZend_Gdata_Gapps_GroupFeed U CZend_Gdata_Gapps_GroupEntry%T MZend_Gdata_Gapps_Extension_Quota(S SZend_Gdata_Gapps_Extension_Property(R SZend_Gdata_Gapps_Extension_Nickname$Q KZend_Gdata_Gapps_Extension_Name%P MZend_Gdata_Gapps_Extension_Login)O UZend_Gdata_Gapps_Extension_EmailListN 9Zend_Gdata_Gapps_Error-M ]Zend_Gdata_Gapps_EmailListRecipientQuery,L [Zend_Gdata_Gapps_EmailListRecipientFeed-K ]Zend_Gdata_Gapps_EmailListRecipientEntry$J KZend_Gdata_Gapps_EmailListQuery#I IZend_Gdata_Gapps_EmailListFeed$H KZend_Gdata_Gapps_EmailListEntryG +Zend_Gdata_FeedF 5Zend_Gdata_ExtensionE =Zend_Gdata_Extension_WhoD AZend_Gdata_Extension_WhereC ?Zend_Gdata_Extension_When$B KZend_Gdata_Extension_Visibility&A OZend_Gdata_Extension_Transparency"@ GZend_Gdata_Extension_Reminder-? ]Zend_Gdata_Extension_RecurrenceException$> KZend_Gdata_Extension_Recurrence = CZend_Gdata_Extension_Rating'< QZend_Gdata_Extension_OriginalEvent0; cZend_Gdata_Extension_OpenSearchTotalResults.: _Zend_Gdata_Extension_OpenSearchStartIndex09 cZend_Gdata_Extension_OpenSearchItemsPerPage"8 GZend_Gdata_Extension_FeedLink*7 WZend_Gdata_Extension_ExtendedProperty%6 MZend_Gdata_Extension_EventStatus#5 IZend_Gdata_Extension_EntryLink"4 GZend_Gdata_Extension_Comments&3 OZend_Gdata_Extension_AttendeeType(2 SZend_Gdata_Extension_AttendeeStatus1 +Zend_Gdata_Exif0 5Zend_Gdata_Exif_Feed#/ IZend_Gdata_Exif_Extension_Time#. IZend_Gdata_Exif_Extension_Tags$- KZend_Gdata_Exif_Extension_Model#, IZend_Gdata_Exif_Extension_Make   [  sU<mFi8M$f9



U
'				}	X	4	gN$tA`/Y1	f=X*tF[*                       'i QZend_Gdata_YouTube_Extension_Music(h SZend_Gdata_YouTube_Extension_Movies-g ]Zend_Gdata_YouTube_Extension_MediaRating,f [Zend_Gdata_YouTube_Extension_MediaGroup-e ]Zend_Gdata_YouTube_Extension_MediaCredit.d _Zend_Gdata_YouTube_Extension_MediaContent*c WZend_Gdata_YouTube_Extension_Location&b OZend_Gdata_YouTube_Extension_Link*a WZend_Gdata_YouTube_Extension_LastName*` WZend_Gdata_YouTube_Extension_Hometown)_ UZend_Gdata_YouTube_Extension_Hobbies(^ SZend_Gdata_YouTube_Extension_Gender+] YZend_Gdata_YouTube_Extension_FirstName*\ WZend_Gdata_YouTube_Extension_Duration-[ ]Zend_Gdata_YouTube_Extension_Description+Z YZend_Gdata_YouTube_Extension_CountHint)Y UZend_Gdata_YouTube_Extension_Control)X UZend_Gdata_YouTube_Extension_Company'W QZend_Gdata_YouTube_Extension_Books%V MZend_Gdata_YouTube_Extension_Age)U UZend_Gdata_YouTube_Extension_AboutMe#T IZend_Gdata_YouTube_ContactFeed$S KZend_Gdata_YouTube_ContactEntry#R IZend_Gdata_YouTube_CommentFeed$Q KZend_Gdata_YouTube_CommentEntry$P KZend_Gdata_YouTube_ActivityFeed%O MZend_Gdata_YouTube_ActivityEntryN ;Zend_Gdata_Spreadsheets*M WZend_Gdata_Spreadsheets_WorksheetFeed+L YZend_Gdata_Spreadsheets_WorksheetEntry,K [Zend_Gdata_Spreadsheets_SpreadsheetFeed-J ]Zend_Gdata_Spreadsheets_SpreadsheetEntry&I OZend_Gdata_Spreadsheets_ListQuery%H MZend_Gdata_Spreadsheets_ListFeed&G OZend_Gdata_Spreadsheets_ListEntry/F aZend_Gdata_Spreadsheets_Extension_RowCount-E ]Zend_Gdata_Spreadsheets_Extension_Custom/D aZend_Gdata_Spreadsheets_Extension_ColCount+C YZend_Gdata_Spreadsheets_Extension_Cell*B WZend_Gdata_Spreadsheets_DocumentQuery&A OZend_Gdata_Spreadsheets_CellQuery%@ MZend_Gdata_Spreadsheets_CellFeed&? OZend_Gdata_Spreadsheets_CellEntry> -Zend_Gdata_Query= /Zend_Gdata_Photos < CZend_Gdata_Photos_UserQuery; AZend_Gdata_Photos_UserFeed : CZend_Gdata_Photos_UserEntry9 AZend_Gdata_Photos_TagEntry!8 EZend_Gdata_Photos_PhotoQuery 7 CZend_Gdata_Photos_PhotoFeed!6 EZend_Gdata_Photos_PhotoEntry&5 OZend_Gdata_Photos_Extension_Width'4 QZend_Gdata_Photos_Extension_Weight(3 SZend_Gdata_Photos_Extension_Version%2 MZend_Gdata_Photos_Extension_User*1 WZend_Gdata_Photos_Extension_Timestamp*0 WZend_Gdata_Photos_Extension_Thumbnail%/ MZend_Gdata_Photos_Extension_Size). UZend_Gdata_Photos_Extension_Rotation+- YZend_Gdata_Photos_Extension_QuotaLimit-, ]Zend_Gdata_Photos_Extension_QuotaCurrent)+ UZend_Gdata_Photos_Extension_Position(* SZend_Gdata_Photos_Extension_PhotoId3) iZend_Gdata_Photos_Extension_NumPhotosRemaining*( WZend_Gdata_Photos_Extension_NumPhotos)' UZend_Gdata_Photos_Extension_Nickname%& MZend_Gdata_Photos_Extension_Name2% gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum)$ UZend_Gdata_Photos_Extension_Location## IZend_Gdata_Photos_Extension_Id'" QZend_Gdata_Photos_Extension_Height2! gZend_Gdata_Photos_Extension_CommentingEnabled-  ]Zend_Gdata_Photos_Extension_CommentCount' QZend_Gdata_Photos_Extension_Client) UZend_Gdata_Photos_Extension_Checksum* WZend_Gdata_Photos_Extension_BytesUsed( SZend_Gdata_Photos_Extension_AlbumId' QZend_Gdata_Photos_Extension_Access# IZend_Gdata_Photos_CommentEntry! EZend_Gdata_Photos_AlbumQuery  CZend_Gdata_Photos_AlbumFeed! EZend_Gdata_Photos_AlbumEntry 3Zend_Gdata_MimeFile ?Zend_Gdata_MimeBodyString AZend_Gdata_MediaMimeStream -Zend_Gdata_Media 7Zend_Gdata_Media_Feed* WZend_Gdata_Media_Extension_MediaTitle. _Zend_Gdata_Media_Extension_MediaThumbnail) UZend_Gdata_Media_Extension_MediaText   f  s@\*rFlG!m@



w
\
I
#					`	G	.	cA&oM'R1yGhQ2`;t`DdG$                  O 7Zend_Ldap_Filter_MaskN =Zend_Ldap_Filter_LogicalM AZend_Ldap_Filter_ExceptionL 5Zend_Ldap_Filter_AndK ?Zend_Ldap_Filter_AbstractJ 3Zend_Ldap_ExceptionI %Zend_Ldap_DnH 3Zend_Ldap_Converter"G GZend_Ldap_Converter_ExceptionF 5Zend_Ldap_Collection*E WZend_Ldap_Collection_Iterator_DefaultD 3Zend_Ldap_AttributeC #Zend_LayoutB 7Zend_Layout_Exception)A UZend_Layout_Controller_Plugin_Layout0@ cZend_Layout_Controller_Action_Helper_Layout? Zend_Json> -Zend_Json_Server= 5Zend_Json_Server_Smd!< EZend_Json_Server_Smd_Service; ?Zend_Json_Server_Response#: IZend_Json_Server_Response_Http9 =Zend_Json_Server_Request"8 GZend_Json_Server_Request_Http7 AZend_Json_Server_Exception6 9Zend_Json_Server_Error5 9Zend_Json_Server_Cache4 )Zend_Json_Expr3 3Zend_Json_Exception2 /Zend_Json_Encoder1 /Zend_Json_Decoder0 3Zend_Http_UserAgent"/ GZend_Http_UserAgent_Validator. =Zend_Http_UserAgent_Text(- SZend_Http_UserAgent_Storage_Session., _Zend_Http_UserAgent_Storage_NonPersistent*+ WZend_Http_UserAgent_Storage_Exception* =Zend_Http_UserAgent_Spam) ?Zend_Http_UserAgent_Probe ( CZend_Http_UserAgent_Offline' AZend_Http_UserAgent_Mobile& =Zend_Http_UserAgent_Feed+% YZend_Http_UserAgent_Features_Exception3$ iZend_Http_UserAgent_Features_Adapter_TeraWurfl5# mZend_Http_UserAgent_Features_Adapter_DeviceAtlas2" gZend_Http_UserAgent_Features_Adapter_Browscap"! GZend_Http_UserAgent_Exception  ?Zend_Http_UserAgent_Email  CZend_Http_UserAgent_Desktop  CZend_Http_UserAgent_Console  CZend_Http_UserAgent_Checker ;Zend_Http_UserAgent_Bot' QZend_Http_UserAgent_AbstractDevice 1Zend_Http_Response ?Zend_Http_Response_Stream AZend_Http_Header_SetCookie0 cZend_Http_Header_Exception_RuntimeException8 sZend_Http_Header_Exception_InvalidArgumentException 3Zend_Http_Exception 3Zend_Http_CookieJar -Zend_Http_Cookie -Zend_Http_Client AZend_Http_Client_Exception" GZend_Http_Client_Adapter_Test$ KZend_Http_Client_Adapter_Socket# IZend_Http_Client_Adapter_Proxy' QZend_Http_Client_Adapter_Exception" GZend_Http_Client_Adapter_Curl !Zend_Gdata
 1Zend_Gdata_YouTube"	 GZend_Gdata_YouTube_VideoQuery! EZend_Gdata_YouTube_VideoFeed" GZend_Gdata_YouTube_VideoEntry( SZend_Gdata_YouTube_UserProfileEntry( SZend_Gdata_YouTube_SubscriptionFeed) UZend_Gdata_YouTube_SubscriptionEntry) UZend_Gdata_YouTube_PlaylistVideoFeed* WZend_Gdata_YouTube_PlaylistVideoEntry( SZend_Gdata_YouTube_PlaylistListFeed)  UZend_Gdata_YouTube_PlaylistListEntry" GZend_Gdata_YouTube_MediaEntry!~ EZend_Gdata_YouTube_InboxFeed"} GZend_Gdata_YouTube_InboxEntry)| UZend_Gdata_YouTube_Extension_VideoId*{ WZend_Gdata_YouTube_Extension_Username*z WZend_Gdata_YouTube_Extension_Uploaded'y QZend_Gdata_YouTube_Extension_Token(x SZend_Gdata_YouTube_Extension_Status,w [Zend_Gdata_YouTube_Extension_Statistics'v QZend_Gdata_YouTube_Extension_State(u SZend_Gdata_YouTube_Extension_School-t ]Zend_Gdata_YouTube_Extension_ReleaseDate.s _Zend_Gdata_YouTube_Extension_Relationship*r WZend_Gdata_YouTube_Extension_Recorded&q OZend_Gdata_YouTube_Extension_Racy-p ]Zend_Gdata_YouTube_Extension_QueryString)o UZend_Gdata_YouTube_Extension_Private*n WZend_Gdata_YouTube_Extension_Position/m aZend_Gdata_YouTube_Extension_PlaylistTitle,l [Zend_Gdata_YouTube_Extension_PlaylistId,k [Zend_Gdata_YouTube_Extension_Occupation)j UZend_Gdata_YouTube_Extension_NoEmbed   r  oO'e7i6[4lX3





p
U
4
					i	J	)	xY5$xS3pM) xY:dC1~O)rT@" jF)     A 3Zend_Measure_Energy@ 5Zend_Measure_Density? 5Zend_Measure_Current > CZend_Measure_Cooking_Weight = CZend_Measure_Cooking_Volume< =Zend_Measure_Capacitance; 3Zend_Measure_Binary: /Zend_Measure_Area9 1Zend_Measure_Angle8 ?Zend_Measure_Acceleration7 7Zend_Measure_Abstract6 #Zend_Markup5 7Zend_Markup_TokenList4 /Zend_Markup_Token*3 WZend_Markup_Renderer_RendererAbstract2 ?Zend_Markup_Renderer_Html"1 GZend_Markup_Renderer_Html_Url#0 IZend_Markup_Renderer_Html_List"/ GZend_Markup_Renderer_Html_Img+. YZend_Markup_Renderer_Html_HtmlAbstract#- IZend_Markup_Renderer_Html_Code#, IZend_Markup_Renderer_Exception!+ EZend_Markup_Parser_Exception* ?Zend_Markup_Parser_Bbcode) 7Zend_Markup_Exception( Zend_Mail' =Zend_Mail_Transport_Smtp!& EZend_Mail_Transport_Sendmail% =Zend_Mail_Transport_File"$ GZend_Mail_Transport_Exception!# EZend_Mail_Transport_Abstract" /Zend_Mail_Storage'! QZend_Mail_Storage_Writable_Maildir  9Zend_Mail_Storage_Pop3 9Zend_Mail_Storage_Mbox ?Zend_Mail_Storage_Maildir 9Zend_Mail_Storage_Imap =Zend_Mail_Storage_Folder" GZend_Mail_Storage_Folder_Mbox% MZend_Mail_Storage_Folder_Maildir  CZend_Mail_Storage_Exception AZend_Mail_Storage_Abstract ;Zend_Mail_Protocol_Smtp' QZend_Mail_Protocol_Smtp_Auth_Plain' QZend_Mail_Protocol_Smtp_Auth_Login) UZend_Mail_Protocol_Smtp_Auth_Crammd5 ;Zend_Mail_Protocol_Pop3 ;Zend_Mail_Protocol_Imap! EZend_Mail_Protocol_Exception  CZend_Mail_Protocol_Abstract )Zend_Mail_Part 3Zend_Mail_Part_File /Zend_Mail_Message 9Zend_Mail_Message_File 3Zend_Mail_Exception
 Zend_Log 	 CZend_Log_Writer_ZendMonitor 9Zend_Log_Writer_Syslog 9Zend_Log_Writer_Stream 5Zend_Log_Writer_Null 5Zend_Log_Writer_Mock 5Zend_Log_Writer_Mail ;Zend_Log_Writer_Firebug 1Zend_Log_Writer_Db =Zend_Log_Writer_Abstract  9Zend_Log_Formatter_Xml ?Zend_Log_Formatter_Simple~ AZend_Log_Formatter_Firebug } CZend_Log_Formatter_Abstract| =Zend_Log_Filter_Suppress{ =Zend_Log_Filter_Priorityz ;Zend_Log_Filter_Messagey =Zend_Log_Filter_Abstractx 1Zend_Log_Exceptionw #Zend_Localev -Zend_Locale_Mathu =Zend_Locale_Math_PhpMatht AZend_Locale_Math_Exceptions 1Zend_Locale_Formatr 7Zend_Locale_Exceptionq -Zend_Locale_Data!p EZend_Locale_Data_Translationo #Zend_Loader#n IZend_Loader_StandardAutoloaderm =Zend_Loader_PluginLoader'l QZend_Loader_PluginLoader_Exceptionk 7Zend_Loader_Exception3j iZend_Loader_Exception_InvalidArgumentException#i IZend_Loader_ClassMapAutoloader"h GZend_Loader_AutoloaderFactoryg 9Zend_Loader_Autoloader$f KZend_Loader_Autoloader_Resourcee Zend_Ldapd )Zend_Ldap_Nodec 7Zend_Ldap_Node_Schema#b IZend_Ldap_Node_Schema_OpenLdap/a aZend_Ldap_Node_Schema_ObjectClass_OpenLdap6` oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectory_ AZend_Ldap_Node_Schema_Item1^ eZend_Ldap_Node_Schema_AttributeType_OpenLdap8] sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory*\ WZend_Ldap_Node_Schema_ActiveDirectory[ 9Zend_Ldap_Node_RootDse$Z KZend_Ldap_Node_RootDse_OpenLdap&Y OZend_Ldap_Node_RootDse_eDirectory+X YZend_Ldap_Node_RootDse_ActiveDirectoryW ?Zend_Ldap_Node_Collection$V KZend_Ldap_Node_ChildrenIteratorU ;Zend_Ldap_Node_AbstractT 9Zend_Ldap_Ldif_EncoderS -Zend_Ldap_FilterR ;Zend_Ldap_Filter_StringQ 3Zend_Ldap_Filter_OrP 5Zend_Ldap_Filter_Not   o	 gH&
{Z@$wR,qW@.e3



k
6
				{	V	,	kC!nT8pN'kR?tJ%[.i;gI,	                                   0 AZend_Pdf_Action_ImportData/ 5Zend_Pdf_Action_Hide. 7Zend_Pdf_Action_GoToR- 7Zend_Pdf_Action_GoToE, AZend_Pdf_Action_GoTo3DView+ 5Zend_Pdf_Action_GoTo* )Zend_Paginator-) ]Zend_Paginator_SerializableLimitIterator*( WZend_Paginator_ScrollingStyle_Sliding*' WZend_Paginator_ScrollingStyle_Jumping*& WZend_Paginator_ScrollingStyle_Elastic&% OZend_Paginator_ScrollingStyle_All$ =Zend_Paginator_Exception # CZend_Paginator_Adapter_Null$" KZend_Paginator_Adapter_Iterator)! UZend_Paginator_Adapter_DbTableSelect$  KZend_Paginator_Adapter_DbSelect! EZend_Paginator_Adapter_Array #Zend_OpenId 5Zend_OpenId_Provider ?Zend_OpenId_Provider_User& OZend_OpenId_Provider_User_Session! EZend_OpenId_Provider_Storage& OZend_OpenId_Provider_Storage_File 7Zend_OpenId_Extension AZend_OpenId_Extension_Sreg 7Zend_OpenId_Exception 5Zend_OpenId_Consumer! EZend_OpenId_Consumer_Storage& OZend_OpenId_Consumer_Storage_File !Zend_Oauth -Zend_Oauth_Token =Zend_Oauth_Token_Request' QZend_Oauth_Token_AuthorizedRequest ;Zend_Oauth_Token_Access+ YZend_Oauth_Signature_SignatureAbstract =Zend_Oauth_Signature_Rsa# IZend_Oauth_Signature_Plaintext
 ?Zend_Oauth_Signature_Hmac	 +Zend_Oauth_Http ;Zend_Oauth_Http_Utility& OZend_Oauth_Http_UserAuthorization! EZend_Oauth_Http_RequestToken  CZend_Oauth_Http_AccessToken 5Zend_Oauth_Exception 3Zend_Oauth_Consumer /Zend_Oauth_Config /Zend_Oauth_Client  +Zend_Navigation 5Zend_Navigation_Page~ =Zend_Navigation_Page_Uri} =Zend_Navigation_Page_Mvc| ?Zend_Navigation_Exception{ ?Zend_Navigation_Container$z KZend_Mobile_Push_Test_ApnsProxy"y GZend_Mobile_Push_Response_Gcmx 7Zend_Mobile_Push_Mpns"w GZend_Mobile_Push_Message_Mpns(v SZend_Mobile_Push_Message_Mpns_Toast'u QZend_Mobile_Push_Message_Mpns_Tile&t OZend_Mobile_Push_Message_Mpns_Raw!s EZend_Mobile_Push_Message_Gcm'r QZend_Mobile_Push_Message_Exception"q GZend_Mobile_Push_Message_Apns&p OZend_Mobile_Push_Message_Abstracto 5Zend_Mobile_Push_Gcmn AZend_Mobile_Push_Exception1m eZend_Mobile_Push_Exception_ServerUnavailable-l ]Zend_Mobile_Push_Exception_QuotaExceeded,k [Zend_Mobile_Push_Exception_InvalidTopic,j [Zend_Mobile_Push_Exception_InvalidToken3i iZend_Mobile_Push_Exception_InvalidRegistration.h _Zend_Mobile_Push_Exception_InvalidPayload0g cZend_Mobile_Push_Exception_InvalidAuthToken3f iZend_Mobile_Push_Exception_DeviceQuotaExceedede 7Zend_Mobile_Push_Apnsd ?Zend_Mobile_Push_Abstractc 7Zend_Mobile_Exceptionb Zend_Mimea )Zend_Mime_Part` /Zend_Mime_Message_ 3Zend_Mime_Exception^ -Zend_Mime_Decode] #Zend_Memory\ /Zend_Memory_Value[ 3Zend_Memory_ManagerZ 7Zend_Memory_ExceptionY 7Zend_Memory_Container"X GZend_Memory_Container_Movable!W EZend_Memory_Container_Locked!V EZend_Memory_AccessControllerU 3Zend_Measure_WeightT 3Zend_Measure_Volume%S MZend_Measure_Viscosity_Kinematic#R IZend_Measure_Viscosity_DynamicQ 3Zend_Measure_TorqueP /Zend_Measure_TimeO =Zend_Measure_TemperatureN 1Zend_Measure_SpeedM 7Zend_Measure_PressureL 1Zend_Measure_PowerK 3Zend_Measure_NumberJ 9Zend_Measure_LightnessI 3Zend_Measure_LengthH ?Zend_Measure_IlluminationG 9Zend_Measure_FrequencyF 1Zend_Measure_ForceE =Zend_Measure_Flow_VolumeD 9Zend_Measure_Flow_MoleC 9Zend_Measure_Flow_MassB 9Zend_Measure_Exception   g  `>|`H{c9{_D-L




`
C
$
					[	;	}]De?cB}cB"	|X(tGUZ$                      5 mZend_Pdf_Resource_Font_Simple_Standard_TimesBold2 gZend_Pdf_Resource_Font_Simple_Standard_Symbol< {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueA Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique9 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold5 mZend_Pdf_Resource_Font_Simple_Standard_Helvetica: wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique> Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique7 qZend_Pdf_Resource_Font_Simple_Standard_CourierBold3 iZend_Pdf_Resource_Font_Simple_Standard_Courier) UZend_Pdf_Resource_Font_Simple_Parsed2 gZend_Pdf_Resource_Font_Simple_Parsed_TrueType* WZend_Pdf_Resource_Font_FontDescriptor%
 MZend_Pdf_Resource_Font_Extracted#	 IZend_Pdf_Resource_Font_CidFont, [Zend_Pdf_Resource_Font_CidFont_TrueType  CZend_Pdf_Resource_Extractor$ KZend_Pdf_Resource_ContentStream3 iZend_Pdf_RecursivelyIteratableObjectsContainer +Zend_Pdf_Parser 'Zend_Pdf_Page -Zend_Pdf_Outline ;Zend_Pdf_Outline_Loaded  =Zend_Pdf_Outline_Created /Zend_Pdf_NameTree~ )Zend_Pdf_Image} 'Zend_Pdf_Font| ?Zend_Pdf_Filter_RunLength { CZend_Pdf_Filter_Compression$z KZend_Pdf_Filter_Compression_Lzw&y OZend_Pdf_Filter_Compression_Flatex =Zend_Pdf_Filter_AsciiHexw ;Zend_Pdf_Filter_Ascii85"v GZend_Pdf_FileParserDataSource)u UZend_Pdf_FileParserDataSource_String't QZend_Pdf_FileParserDataSource_Files 3Zend_Pdf_FileParserr ?Zend_Pdf_FileParser_Image"q GZend_Pdf_FileParser_Image_Pngp =Zend_Pdf_FileParser_Font&o OZend_Pdf_FileParser_Font_OpenType/n aZend_Pdf_FileParser_Font_OpenType_TrueTypem 1Zend_Pdf_Exceptionl ;Zend_Pdf_ElementFactory"k GZend_Pdf_ElementFactory_Proxyj -Zend_Pdf_Elementi ;Zend_Pdf_Element_String#h IZend_Pdf_Element_String_Binaryg ;Zend_Pdf_Element_Streamf AZend_Pdf_Element_Reference%e MZend_Pdf_Element_Reference_Table'd QZend_Pdf_Element_Reference_Contextc ;Zend_Pdf_Element_Object#b IZend_Pdf_Element_Object_Streama =Zend_Pdf_Element_Numeric` 7Zend_Pdf_Element_Null_ 7Zend_Pdf_Element_Name ^ CZend_Pdf_Element_Dictionary] =Zend_Pdf_Element_Boolean\ 9Zend_Pdf_Element_Array[ 5Zend_Pdf_DestinationZ ?Zend_Pdf_Destination_Zoom!Y EZend_Pdf_Destination_UnknownX AZend_Pdf_Destination_Named'W QZend_Pdf_Destination_FitVertically&V OZend_Pdf_Destination_FitRectangle)U UZend_Pdf_Destination_FitHorizontally2T gZend_Pdf_Destination_FitBoundingBoxVertically4S kZend_Pdf_Destination_FitBoundingBoxHorizontally(R SZend_Pdf_Destination_FitBoundingBoxQ =Zend_Pdf_Destination_Fit"P GZend_Pdf_Destination_ExplicitO )Zend_Pdf_ColorN 1Zend_Pdf_Color_RgbM 3Zend_Pdf_Color_HtmlL =Zend_Pdf_Color_GrayScaleK 3Zend_Pdf_Color_CmykJ 'Zend_Pdf_CmapI AZend_Pdf_Cmap_TrimmedTable!H EZend_Pdf_Cmap_SegmentToDeltaG AZend_Pdf_Cmap_ByteEncoding&F OZend_Pdf_Cmap_ByteEncoding_StaticE +Zend_Pdf_CanvasD =Zend_Pdf_Canvas_AbstractC 3Zend_Pdf_AnnotationB =Zend_Pdf_Annotation_TextA AZend_Pdf_Annotation_Markup@ =Zend_Pdf_Annotation_Link'? QZend_Pdf_Annotation_FileAttachment> +Zend_Pdf_Action= 3Zend_Pdf_Action_URI< ;Zend_Pdf_Action_Unknown; 7Zend_Pdf_Action_Trans: 9Zend_Pdf_Action_Thread9 AZend_Pdf_Action_SubmitForm8 7Zend_Pdf_Action_Sound 7 CZend_Pdf_Action_SetOCGState6 ?Zend_Pdf_Action_ResetForm5 ?Zend_Pdf_Action_Rendition4 7Zend_Pdf_Action_Named3 7Zend_Pdf_Action_Movie2 9Zend_Pdf_Action_Launch1 AZend_Pdf_Action_JavaScript   b  LwO*x^@)V+~Z/




a
5
					g	H	5	zX6]3mOCs7r4f8mH'                        !y EZend_Search_Lucene_FSMActionx 9Zend_Search_Lucene_FSMw =Zend_Search_Lucene_Field!v EZend_Search_Lucene_Exception u CZend_Search_Lucene_Document%t MZend_Search_Lucene_Document_Xlsx%s MZend_Search_Lucene_Document_Pptx(r SZend_Search_Lucene_Document_OpenXml%q MZend_Search_Lucene_Document_Html*p WZend_Search_Lucene_Document_Exception%o MZend_Search_Lucene_Document_Docx,n [Zend_Search_Lucene_Analysis_TokenFilter6m oZend_Search_Lucene_Analysis_TokenFilter_StopWords7l qZend_Search_Lucene_Analysis_TokenFilter_ShortWords:k wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf86j oZend_Search_Lucene_Analysis_TokenFilter_LowerCase&i OZend_Search_Lucene_Analysis_Token)h UZend_Search_Lucene_Analysis_Analyzer0g cZend_Search_Lucene_Analysis_Analyzer_Common8f sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumIe Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive5d mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Fc Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive8b sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumIa Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive5` mZend_Search_Lucene_Analysis_Analyzer_Common_TextF_ Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive^ 7Zend_Search_Exception] -Zend_Rest_Server\ AZend_Rest_Server_Exception[ +Zend_Rest_RouteZ 3Zend_Rest_ExceptionY 5Zend_Rest_ControllerX -Zend_Rest_ClientW ;Zend_Rest_Client_Result&V OZend_Rest_Client_Result_ExceptionU AZend_Rest_Client_ExceptionT 'Zend_RegistryS =Zend_Reflection_PropertyR ?Zend_Reflection_ParameterQ 9Zend_Reflection_MethodP =Zend_Reflection_FunctionO 5Zend_Reflection_FileN ?Zend_Reflection_ExtensionM ?Zend_Reflection_ExceptionL =Zend_Reflection_Docblock!K EZend_Reflection_Docblock_Tag(J SZend_Reflection_Docblock_Tag_Return'I QZend_Reflection_Docblock_Tag_ParamH 7Zend_Reflection_ClassG !Zend_QueueF 9Zend_Queue_Stomp_FrameE ;Zend_Queue_Stomp_Client'D QZend_Queue_Stomp_Client_ConnectionC 1Zend_Queue_Message#B IZend_Queue_Message_PlatformJob A CZend_Queue_Message_Iterator@ 5Zend_Queue_Exception(? SZend_Queue_Adapter_PlatformJobQueue> ;Zend_Queue_Adapter_Null!= EZend_Queue_Adapter_Memcacheq< 7Zend_Queue_Adapter_Db ; CZend_Queue_Adapter_Db_Queue": GZend_Queue_Adapter_Db_Message9 =Zend_Queue_Adapter_Array'8 QZend_Queue_Adapter_AdapterAbstract 7 CZend_Queue_Adapter_Activemq6 -Zend_ProgressBar5 AZend_ProgressBar_Exception4 =Zend_ProgressBar_Adapter$3 KZend_ProgressBar_Adapter_JsPush$2 KZend_ProgressBar_Adapter_JsPull'1 QZend_ProgressBar_Adapter_Exception%0 MZend_ProgressBar_Adapter_Console/ Zend_Pdf!. EZend_Pdf_UpdateInfoContainer- -Zend_Pdf_Trailer, ;Zend_Pdf_Trailer_Keeper+ AZend_Pdf_Trailer_Generator* +Zend_Pdf_Target) )Zend_Pdf_Style( 7Zend_Pdf_StringParser' /Zend_Pdf_Resource& ?Zend_Pdf_Resource_Unified#% IZend_Pdf_Resource_ImageFactory$ ;Zend_Pdf_Resource_Image!# EZend_Pdf_Resource_Image_Tiff " CZend_Pdf_Resource_Image_Png!! EZend_Pdf_Resource_Image_Jpeg$  KZend_Pdf_Resource_GraphicsState 9Zend_Pdf_Resource_Font! EZend_Pdf_Resource_Font_Type0" GZend_Pdf_Resource_Font_Simple+ YZend_Pdf_Resource_Font_Simple_Standard8 sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats6 oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman7 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic; yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic   X  wJrL"vCU'b&


x
J
				Z	(u@	zI`(q="Z2y\B#qL#W.                Q 7Zend_Service_AbstractP 9Zend_Server_Reflection'O QZend_Server_Reflection_ReturnValue%N MZend_Server_Reflection_Prototype%M MZend_Server_Reflection_Parameter L CZend_Server_Reflection_Node"K GZend_Server_Reflection_Method$J KZend_Server_Reflection_Function-I ]Zend_Server_Reflection_Function_Abstract%H MZend_Server_Reflection_Exception!G EZend_Server_Reflection_Class!F EZend_Server_Method_Prototype!E EZend_Server_Method_Parameter"D GZend_Server_Method_Definition C CZend_Server_Method_CallbackB 7Zend_Server_ExceptionA 9Zend_Server_Definition@ /Zend_Server_Cache? 5Zend_Server_Abstract> +Zend_Serializer= ?Zend_Serializer_Exception!< EZend_Serializer_Adapter_Wddx); UZend_Serializer_Adapter_PythonPickle): UZend_Serializer_Adapter_PhpSerialize$9 KZend_Serializer_Adapter_PhpCode!8 EZend_Serializer_Adapter_Json%7 MZend_Serializer_Adapter_Igbinary!6 EZend_Serializer_Adapter_Amf3!5 EZend_Serializer_Adapter_Amf0,4 [Zend_Serializer_Adapter_AdapterAbstract3 1Zend_Search_Lucene02 cZend_Search_Lucene_TermStreamsPriorityQueue$1 KZend_Search_Lucene_Storage_File+0 YZend_Search_Lucene_Storage_File_Memory// aZend_Search_Lucene_Storage_File_Filesystem). UZend_Search_Lucene_Storage_Directory4- kZend_Search_Lucene_Storage_Directory_Filesystem%, MZend_Search_Lucene_Search_Weight*+ WZend_Search_Lucene_Search_Weight_Term,* [Zend_Search_Lucene_Search_Weight_Phrase/) aZend_Search_Lucene_Search_Weight_MultiTerm+( YZend_Search_Lucene_Search_Weight_Empty-' ]Zend_Search_Lucene_Search_Weight_Boolean)& UZend_Search_Lucene_Search_Similarity1% eZend_Search_Lucene_Search_Similarity_Default)$ UZend_Search_Lucene_Search_QueryToken3# iZend_Search_Lucene_Search_QueryParserException1" eZend_Search_Lucene_Search_QueryParserContext*! WZend_Search_Lucene_Search_QueryParser)  UZend_Search_Lucene_Search_QueryLexer' QZend_Search_Lucene_Search_QueryHit) UZend_Search_Lucene_Search_QueryEntry. _Zend_Search_Lucene_Search_QueryEntry_Term2 gZend_Search_Lucene_Search_QueryEntry_Subquery0 cZend_Search_Lucene_Search_QueryEntry_Phrase$ KZend_Search_Lucene_Search_Query- ]Zend_Search_Lucene_Search_Query_Wildcard) UZend_Search_Lucene_Search_Query_Term* WZend_Search_Lucene_Search_Query_Range2 gZend_Search_Lucene_Search_Query_Preprocessing7 qZend_Search_Lucene_Search_Query_Preprocessing_Term9 uZend_Search_Lucene_Search_Query_Preprocessing_Phrase8 sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy+ YZend_Search_Lucene_Search_Query_Phrase. _Zend_Search_Lucene_Search_Query_MultiTerm2 gZend_Search_Lucene_Search_Query_Insignificant* WZend_Search_Lucene_Search_Query_Fuzzy* WZend_Search_Lucene_Search_Query_Empty, [Zend_Search_Lucene_Search_Query_Boolean2 gZend_Search_Lucene_Search_Highlighter_Default: wZend_Search_Lucene_Search_BooleanExpressionRecognizer
 =Zend_Search_Lucene_Proxy%	 MZend_Search_Lucene_PriorityQueue/ aZend_Search_Lucene_Interface_MultiSearcher% MZend_Search_Lucene_MultiSearcher# IZend_Search_Lucene_LockManager$ KZend_Search_Lucene_Index_Writer0 cZend_Search_Lucene_Index_TermsPriorityQueue& OZend_Search_Lucene_Index_TermInfo" GZend_Search_Lucene_Index_Term+ YZend_Search_Lucene_Index_SegmentWriter8  sZend_Search_Lucene_Index_SegmentWriter_StreamWriter: wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter+~ YZend_Search_Lucene_Index_SegmentMerger)} UZend_Search_Lucene_Index_SegmentInfo'| QZend_Search_Lucene_Index_FieldInfo({ SZend_Search_Lucene_Index_DocsFilter.z _Zend_Search_Lucene_Index_DictionaryLoader   Q  a3X&]+Y*
uK)



m
N
#				m	H	DoHEn'[Y)UD                                                                         N" Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformationL! Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalanceJ  Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool- ]Zend_Service_DeveloperGarden_LocalSearch> Zend_Service_DeveloperGarden_LocalSearch_SearchParameters7 qZend_Service_DeveloperGarden_LocalSearch_Exception, [Zend_Service_DeveloperGarden_IpLocation6 oZend_Service_DeveloperGarden_IpLocation_IpAddress+ YZend_Service_DeveloperGarden_Exception, [Zend_Service_DeveloperGarden_Credential0 cZend_Service_DeveloperGarden_ConferenceCallC Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatusC Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail< {Zend_Service_DeveloperGarden_ConferenceCall_Participant: wZend_Service_DeveloperGarden_ConferenceCall_ExceptionD 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceScheduleB Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetailC Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount- ]Zend_Service_DeveloperGarden_Client_Soap2 gZend_Service_DeveloperGarden_Client_Exception7 qZend_Service_DeveloperGarden_Client_ClientAbstract1 eZend_Service_DeveloperGarden_BaseUserServiceA Zend_Service_DeveloperGarden_BaseUserService_AccountBalance 9Zend_Service_Delicious&
 OZend_Service_Delicious_SimplePost$	 KZend_Service_Delicious_PostList  CZend_Service_Delicious_Post% MZend_Service_Delicious_Exception# IZend_Service_Console_Exception! EZend_Service_Console_Command7 qZend_Service_Console_Command_ParameterSource_StdIn8 sZend_Service_Console_Command_ParameterSource_Prompt5 mZend_Service_Console_Command_ParameterSource_Env< {Zend_Service_Console_Command_ParameterSource_ConfigFile6  oZend_Service_Console_Command_ParameterSource_Argv  CZend_Service_Audioscrobbler~ 3Zend_Service_Amazon} ;Zend_Service_Amazon_Sqs&| OZend_Service_Amazon_Sqs_Exception!{ EZend_Service_Amazon_SimpleDb*z WZend_Service_Amazon_SimpleDb_Response&y OZend_Service_Amazon_SimpleDb_Page+x YZend_Service_Amazon_SimpleDb_Exception+w YZend_Service_Amazon_SimpleDb_Attribute'v QZend_Service_Amazon_SimilarProductu 9Zend_Service_Amazon_S3"t GZend_Service_Amazon_S3_Stream%s MZend_Service_Amazon_S3_Exception"r GZend_Service_Amazon_ResultSetq ?Zend_Service_Amazon_Query!p EZend_Service_Amazon_OfferSeto ?Zend_Service_Amazon_Offer&n OZend_Service_Amazon_ListmaniaListm =Zend_Service_Amazon_Iteml ?Zend_Service_Amazon_Image"k GZend_Service_Amazon_Exception(j SZend_Service_Amazon_EditorialReviewi ;Zend_Service_Amazon_Ec2+h YZend_Service_Amazon_Ec2_Securitygroups%g MZend_Service_Amazon_Ec2_Response#f IZend_Service_Amazon_Ec2_Region$e KZend_Service_Amazon_Ec2_Keypair%d MZend_Service_Amazon_Ec2_Instance-c ]Zend_Service_Amazon_Ec2_Instance_Windows.b _Zend_Service_Amazon_Ec2_Instance_Reserved"a GZend_Service_Amazon_Ec2_Image&` OZend_Service_Amazon_Ec2_Exception&_ OZend_Service_Amazon_Ec2_Elasticip ^ CZend_Service_Amazon_Ec2_Ebs'] QZend_Service_Amazon_Ec2_CloudWatch.\ _Zend_Service_Amazon_Ec2_Availabilityzones%[ MZend_Service_Amazon_Ec2_Abstract'Z QZend_Service_Amazon_CustomerReview'Y QZend_Service_Amazon_Authentication*X WZend_Service_Amazon_Authentication_V2*W WZend_Service_Amazon_Authentication_V1*V WZend_Service_Amazon_Authentication_S31U eZend_Service_Amazon_Authentication_Exception$T KZend_Service_Amazon_Accessories!S EZend_Service_Amazon_AbstractR 5Zend_Service_Akismet   /  F>#po

T			:d[~,aJ?ms                                                                                            WQ /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseTypeSP 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseQO #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstractSN 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponseJM Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseTypegL OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseTypecK GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseWJ /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponseUI +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponseSH 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse3G iZend_Service_DeveloperGarden_Response_BaseTypeJF Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstractCE Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCallGD Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced=C }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallAB Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatusAA Zend_Service_DeveloperGarden_Request_SmsValidation_ValidateN@ Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeywordC? Zend_Service_DeveloperGarden_Request_SmsValidation_InvalidateL> Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbersB= Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract9< uZend_Service_DeveloperGarden_Request_SendSms_SendSMS>; Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS9: uZend_Service_DeveloperGarden_Request_RequestAbstractI9 Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequestE8 Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest37 iZend_Service_DeveloperGarden_Request_ExceptionR6 %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequestY5 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequestd4 IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequestQ3 #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequestR2 %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequestY1 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequestd0 IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequestQ/ #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequestO. Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequestU- +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequestU, +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequestV+ -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequesta* CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequestZ) 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequestT( )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequestR' %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequestY& 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequestQ% #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequestQ$ #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequesta# CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequest   . s >0r<%

k
		^	>%n6Wx)JP	i  s               I Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumberW~ /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponseJ} Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponseU| +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponseC{ Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponseCz Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstractHy Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponseUx +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponseQw #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponseIv Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception;u yZend_Service_DeveloperGarden_Response_ResponseAbstractOt Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseTypeKs Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseAr Zend_Service_DeveloperGarden_Response_IpLocation_RegionTypeKq Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseTypeGp Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseLo Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationTypeIn Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType>m Zend_Service_DeveloperGarden_Response_IpLocation_CityType4l kZend_Service_DeveloperGarden_Response_ExceptionTk )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse[j 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponsefi MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponseSh 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponseTg )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse[f 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponsefe MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponseSd 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponseUc +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseTypeQb #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse[a 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseTypeW` /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse[_ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseTypeW^ /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse\] 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseTypeX\ 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseg[ OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseTypecZ GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse`Y AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType\X 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseZW 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseTypeVV -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseXU 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseTypeTT )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse_S ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType[R 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponse   Q  at$]0\|S


{
J
				`	,_1uFmQ)c0O"\#yQ2nD                               &P OZend_Service_SlideShare_SlideShow&O OZend_Service_SlideShare_Exception%N MZend_Service_ShortUrl_TinyUrlCom&M OZend_Service_ShortUrl_MetamarkNet!L EZend_Service_ShortUrl_JdemCzK AZend_Service_ShortUrl_IsGd$J KZend_Service_ShortUrl_Exception I CZend_Service_ShortUrl_BitLy,H [Zend_Service_ShortUrl_AbstractShortenerG 9Zend_Service_ReCaptcha$F KZend_Service_ReCaptcha_Response$E KZend_Service_ReCaptcha_MailHide.D _Zend_Service_ReCaptcha_MailHide_Exception%C MZend_Service_ReCaptcha_Exception#B IZend_Service_Rackspace_Servers5A mZend_Service_Rackspace_Servers_SharedIpGroupList1@ eZend_Service_Rackspace_Servers_SharedIpGroup.? _Zend_Service_Rackspace_Servers_ServerList*> WZend_Service_Rackspace_Servers_Server-= ]Zend_Service_Rackspace_Servers_ImageList)< UZend_Service_Rackspace_Servers_Image-; ]Zend_Service_Rackspace_Servers_Exception!: EZend_Service_Rackspace_Files,9 [Zend_Service_Rackspace_Files_ObjectList(8 SZend_Service_Rackspace_Files_Object+7 YZend_Service_Rackspace_Files_Exception/6 aZend_Service_Rackspace_Files_ContainerList+5 YZend_Service_Rackspace_Files_Container%4 MZend_Service_Rackspace_Exception$3 KZend_Service_Rackspace_Abstract2 7Zend_Service_LiveDocx$1 KZend_Service_LiveDocx_MailMerge$0 KZend_Service_LiveDocx_Exception/ 3Zend_Service_Flickr". GZend_Service_Flickr_ResultSet- AZend_Service_Flickr_Result, ?Zend_Service_Flickr_Image+ 9Zend_Service_Exception* ?Zend_Service_Ebay_Finding)) UZend_Service_Ebay_Finding_Storefront+( YZend_Service_Ebay_Finding_ShippingInfo+' YZend_Service_Ebay_Finding_Set_Abstract,& [Zend_Service_Ebay_Finding_SellingStatus)% UZend_Service_Ebay_Finding_SellerInfo,$ [Zend_Service_Ebay_Finding_Search_Result*# WZend_Service_Ebay_Finding_Search_Item." _Zend_Service_Ebay_Finding_Search_Item_Set0! cZend_Service_Ebay_Finding_Response_Keywords-  ]Zend_Service_Ebay_Finding_Response_Items2 gZend_Service_Ebay_Finding_Response_Histograms0 cZend_Service_Ebay_Finding_Response_Abstract/ aZend_Service_Ebay_Finding_PaginationOutput* WZend_Service_Ebay_Finding_ListingInfo( SZend_Service_Ebay_Finding_Exception, [Zend_Service_Ebay_Finding_Error_Message) UZend_Service_Ebay_Finding_Error_Data- ]Zend_Service_Ebay_Finding_Error_Data_Set' QZend_Service_Ebay_Finding_Category1 eZend_Service_Ebay_Finding_Category_Histogram5 mZend_Service_Ebay_Finding_Category_Histogram_Set; yZend_Service_Ebay_Finding_Category_Histogram_Container% MZend_Service_Ebay_Finding_Aspect) UZend_Service_Ebay_Finding_Aspect_Set5 mZend_Service_Ebay_Finding_Aspect_Histogram_Value9 uZend_Service_Ebay_Finding_Aspect_Histogram_Value_Set9 uZend_Service_Ebay_Finding_Aspect_Histogram_Container' QZend_Service_Ebay_Finding_Abstract  CZend_Service_Ebay_Exception AZend_Service_Ebay_Abstract+ YZend_Service_DeveloperGarden_VoiceCall/
 aZend_Service_DeveloperGarden_SmsValidation)	 UZend_Service_DeveloperGarden_SendSms5 mZend_Service_DeveloperGarden_SecurityTokenServer; yZend_Service_DeveloperGarden_SecurityTokenServer_CacheK Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstractL Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponseP !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponseG Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponseJ Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponseK Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2ResponseL  Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponse   I  U{Q'tMZ0V&



v
P
)
					e	,S@
ZY s3HQj0w7                                    @ Zend_Service_WindowsAzure_Management_HostedServiceInstance3 iZend_Service_WindowsAzure_Management_Exception< {Zend_Service_WindowsAzure_Management_DeploymentInstance0 cZend_Service_WindowsAzure_Management_Client= }Zend_Service_WindowsAzure_Management_CertificateInstance@ Zend_Service_WindowsAzure_Management_AffinityGroupInstance6 oZend_Service_WindowsAzure_Log_Writer_WindowsAzure9 uZend_Service_WindowsAzure_Log_Formatter_WindowsAzure, [Zend_Service_WindowsAzure_Log_Exception( SZend_Service_WindowsAzure_ExceptionJ Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscription2 gZend_Service_WindowsAzure_Diagnostics_Manager3 iZend_Service_WindowsAzure_Diagnostics_LogLevel4 kZend_Service_WindowsAzure_Diagnostics_ExceptionN Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscriptionH
 Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLogL	 Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCountersK Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstract< {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogsA Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstanceD 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectoriesU +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogsD 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSources8 sZend_Service_WindowsAzure_Credentials_SharedKeyLite4 kZend_Service_WindowsAzure_Credentials_SharedKeyA  Zend_Service_WindowsAzure_Credentials_SharedAccessSignature4 kZend_Service_WindowsAzure_Credentials_Exception>~ Zend_Service_WindowsAzure_Credentials_CredentialsAbstract2} gZend_Service_WindowsAzure_CommandLine_Storage2| gZend_Service_WindowsAzure_CommandLine_Service{ !ScaffolderWz /Zend_Service_WindowsAzure_CommandLine_PackageScaffolder_PackageScaffolderAbstract2y gZend_Service_WindowsAzure_CommandLine_PackageDx 	Zend_Service_WindowsAzure_CommandLine_GetAsynchronousOperation5w mZend_Service_WindowsAzure_CommandLine_Deployment6v oZend_Service_WindowsAzure_CommandLine_Certificateu 5Zend_Service_Twitter"t GZend_Service_Twitter_Response#s IZend_Service_Twitter_Exceptionr ;Zend_Service_Technorati#q IZend_Service_Technorati_Weblog"p GZend_Service_Technorati_Utils*o WZend_Service_Technorati_TagsResultSet'n QZend_Service_Technorati_TagsResult)m UZend_Service_Technorati_TagResultSet&l OZend_Service_Technorati_TagResult,k [Zend_Service_Technorati_SearchResultSet)j UZend_Service_Technorati_SearchResult&i OZend_Service_Technorati_ResultSet#h IZend_Service_Technorati_Result*g WZend_Service_Technorati_KeyInfoResult*f WZend_Service_Technorati_GetInfoResult&e OZend_Service_Technorati_Exception1d eZend_Service_Technorati_DailyCountsResultSet.c _Zend_Service_Technorati_DailyCountsResult,b [Zend_Service_Technorati_CosmosResultSet)a UZend_Service_Technorati_CosmosResult+` YZend_Service_Technorati_BlogInfoResult#_ IZend_Service_Technorati_Author^ ;Zend_Service_StrikeIron(] SZend_Service_StrikeIron_ZipCodeInfo2\ gZend_Service_StrikeIron_USAddressVerification-[ ]Zend_Service_StrikeIron_SalesUseTaxBasic&Z OZend_Service_StrikeIron_Exception&Y OZend_Service_StrikeIron_Decorator!X EZend_Service_StrikeIron_Base;W yZend_Service_SqlAzure_Management_ServiceEntityAbstract4V kZend_Service_SqlAzure_Management_ServerInstance:U wZend_Service_SqlAzure_Management_FirewallRuleInstance/T aZend_Service_SqlAzure_Management_Exception,S [Zend_Service_SqlAzure_Management_Client$R KZend_Service_SqlAzure_ExceptionQ ;Zend_Service_SlideShare   W  v0ar0Z+G



k
0				O	{O V)lD)yQ$dE,	_,`)wL#                   p )Zend_Tag_Cloudo =Zend_Tag_Cloud_Exception!n EZend_Tag_Cloud_Decorator_Tag%m MZend_Tag_Cloud_Decorator_HtmlTag'l QZend_Tag_Cloud_Decorator_HtmlCloud'k QZend_Tag_Cloud_Decorator_Exception#j IZend_Tag_Cloud_Decorator_Cloud!i EZend_Stdlib_SplPriorityQueueh -SplPriorityQueueg ?Zend_Stdlib_PriorityQueue3f iZend_Stdlib_Exception_InvalidCallbackException e CZend_Stdlib_CallbackHandlerd )Zend_Soap_Wsdl/c aZend_Soap_Wsdl_Strategy_DefaultComplexType&b OZend_Soap_Wsdl_Strategy_Composite0a cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence/` aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex$_ KZend_Soap_Wsdl_Strategy_AnyType%^ MZend_Soap_Wsdl_Strategy_Abstract] =Zend_Soap_Wsdl_Exception\ -Zend_Soap_Server[ 9Zend_Soap_Server_ProxyZ AZend_Soap_Server_ExceptionY -Zend_Soap_ClientX 9Zend_Soap_Client_LocalW AZend_Soap_Client_ExceptionV ;Zend_Soap_Client_DotNetU ;Zend_Soap_Client_CommonT 9Zend_Soap_AutoDiscover%S MZend_Soap_AutoDiscover_ExceptionR %Zend_Session)Q UZend_Session_Validator_HttpUserAgent$P KZend_Session_Validator_Abstract'O QZend_Session_SaveHandler_Exception%N MZend_Session_SaveHandler_DbTableM 9Zend_Session_NamespaceL 9Zend_Session_ExceptionK 7Zend_Session_AbstractJ 1Zend_Service_Yahoo$I KZend_Service_Yahoo_WebResultSet!H EZend_Service_Yahoo_WebResult&G OZend_Service_Yahoo_VideoResultSet#F IZend_Service_Yahoo_VideoResult!E EZend_Service_Yahoo_ResultSetD ?Zend_Service_Yahoo_Result)C UZend_Service_Yahoo_PageDataResultSet&B OZend_Service_Yahoo_PageDataResult%A MZend_Service_Yahoo_NewsResultSet"@ GZend_Service_Yahoo_NewsResult&? OZend_Service_Yahoo_LocalResultSet#> IZend_Service_Yahoo_LocalResult+= YZend_Service_Yahoo_InlinkDataResultSet(< SZend_Service_Yahoo_InlinkDataResult&; OZend_Service_Yahoo_ImageResultSet#: IZend_Service_Yahoo_ImageResult9 =Zend_Service_Yahoo_Image&8 OZend_Service_WindowsAzure_Storage47 kZend_Service_WindowsAzure_Storage_TableInstance76 qZend_Service_WindowsAzure_Storage_TableEntityQuery25 gZend_Service_WindowsAzure_Storage_TableEntity,4 [Zend_Service_WindowsAzure_Storage_Table<3 {Zend_Service_WindowsAzure_Storage_StorageEntityAbstract72 qZend_Service_WindowsAzure_Storage_SignedIdentifier31 iZend_Service_WindowsAzure_Storage_QueueMessage40 kZend_Service_WindowsAzure_Storage_QueueInstance,/ [Zend_Service_WindowsAzure_Storage_Queue9. uZend_Service_WindowsAzure_Storage_PageRegionInstance4- kZend_Service_WindowsAzure_Storage_LeaseInstance9, uZend_Service_WindowsAzure_Storage_DynamicTableEntity3+ iZend_Service_WindowsAzure_Storage_BlobInstance4* kZend_Service_WindowsAzure_Storage_BlobContainer+) YZend_Service_WindowsAzure_Storage_Blob2( gZend_Service_WindowsAzure_Storage_Blob_Stream;' yZend_Service_WindowsAzure_Storage_BatchStorageAbstract,& [Zend_Service_WindowsAzure_Storage_Batch-% ]Zend_Service_WindowsAzure_SessionHandler>$ Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract1# eZend_Service_WindowsAzure_RetryPolicy_RetryN2" gZend_Service_WindowsAzure_RetryPolicy_NoRetry4! kZend_Service_WindowsAzure_RetryPolicy_ExceptionH  Zend_Service_WindowsAzure_Management_SubscriptionOperationInstanceA Zend_Service_WindowsAzure_Management_StorageServiceInstance@ Zend_Service_WindowsAzure_Management_ServiceEntityAbstractB Zend_Service_WindowsAzure_Management_OperationStatusInstanceB Zend_Service_WindowsAzure_Management_OperatingSystemInstanceH Zend_Service_WindowsAzure_Management_OperatingSystemFamilyInstance: wZend_Service_WindowsAzure_Management_LocationInstance   W  {Md<{K$g=!X6




x
P
#				e	/j"F
v.|P!j;|O%i:T   0G cZend_Tool_Framework_System_Provider_Version0F cZend_Tool_Framework_System_Provider_Phpinfo1E eZend_Tool_Framework_System_Provider_Manifest/D aZend_Tool_Framework_System_Provider_Config(C SZend_Tool_Framework_System_Manifest-B ]Zend_Tool_Framework_System_Action_Delete-A ]Zend_Tool_Framework_System_Action_Create!@ EZend_Tool_Framework_Registry+? YZend_Tool_Framework_Registry_Exception+> YZend_Tool_Framework_Provider_Signature,= [Zend_Tool_Framework_Provider_Repository+< YZend_Tool_Framework_Provider_Exception*; WZend_Tool_Framework_Provider_Abstract&: OZend_Tool_Framework_Metadata_Tool)9 UZend_Tool_Framework_Metadata_Dynamic'8 QZend_Tool_Framework_Metadata_Basic,7 [Zend_Tool_Framework_Manifest_Repository26 gZend_Tool_Framework_Manifest_ProviderMetadata*5 WZend_Tool_Framework_Manifest_Metadata+4 YZend_Tool_Framework_Manifest_Exception03 cZend_Tool_Framework_Manifest_ActionMetadata12 eZend_Tool_Framework_Loader_IncludePathLoaderJ1 Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator+0 YZend_Tool_Framework_Loader_BasicLoader(/ SZend_Tool_Framework_Loader_Abstract". GZend_Tool_Framework_Exception'- QZend_Tool_Framework_Client_Storage1, eZend_Tool_Framework_Client_Storage_Directory(+ SZend_Tool_Framework_Client_ResponseD* 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator') QZend_Tool_Framework_Client_Request(( SZend_Tool_Framework_Client_Manifest9' uZend_Tool_Framework_Client_Interactive_InputResponse8& sZend_Tool_Framework_Client_Interactive_InputRequest8% sZend_Tool_Framework_Client_Interactive_InputHandler)$ UZend_Tool_Framework_Client_Exception'# QZend_Tool_Framework_Client_ConsoleD" 	Zend_Tool_Framework_Client_Console_ResponseDecorator_IndentionD! 	Zend_Tool_Framework_Client_Console_ResponseDecorator_ColorizerC  Zend_Tool_Framework_Client_Console_ResponseDecorator_BlockizeF Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter0 cZend_Tool_Framework_Client_Console_Manifest2 gZend_Tool_Framework_Client_Console_HelpSystem6 oZend_Tool_Framework_Client_Console_ArgumentParser& OZend_Tool_Framework_Client_Config( SZend_Tool_Framework_Client_Abstract* WZend_Tool_Framework_Action_Repository) UZend_Tool_Framework_Action_Exception$ KZend_Tool_Framework_Action_Base 'Zend_TimeSync 1Zend_TimeSync_Sntp 9Zend_TimeSync_Protocol /Zend_TimeSync_Ntp ;Zend_TimeSync_Exception +Zend_Text_Table 3Zend_Text_Table_Row ?Zend_Text_Table_Exception& OZend_Text_Table_Decorator_Unicode$ KZend_Text_Table_Decorator_Ascii 9Zend_Text_Table_Column 3Zend_Text_MultiByte
 -Zend_Text_Figlet	 AZend_Text_Figlet_Exception 3Zend_Text_Exception& OZend_Test_PHPUnit_Db_SimpleTester, [Zend_Test_PHPUnit_Db_Operation_Truncate* WZend_Test_PHPUnit_Db_Operation_Insert- ]Zend_Test_PHPUnit_Db_Operation_DeleteAll* WZend_Test_PHPUnit_Db_Metadata_Generic# IZend_Test_PHPUnit_Db_Exception, [Zend_Test_PHPUnit_Db_DataSet_QueryTable.  _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet0 cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet)~ UZend_Test_PHPUnit_Db_DataSet_DbTable*} WZend_Test_PHPUnit_Db_DataSet_DbRowset$| KZend_Test_PHPUnit_Db_Connection'{ QZend_Test_PHPUnit_DatabaseTestCase)z UZend_Test_PHPUnit_ControllerTestCase0y cZend_Test_PHPUnit_Constraint_ResponseHeader*x WZend_Test_PHPUnit_Constraint_Redirect+w YZend_Test_PHPUnit_Constraint_Exception*v WZend_Test_PHPUnit_Constraint_DomQueryu 7Zend_Test_DbStatementt 3Zend_Test_DbAdapters /Zend_Tag_ItemListr 'Zend_Tag_Itemq 1Zend_Tag_Exception   F  Y-a'p>c/[(



`
,				R	Ov;Ng%ZW"e1|B              0 cZend_Tool_Project_Context_Zf_ViewsDirectory6 oZend_Tool_Project_Context_Zf_ViewScriptsDirectory0 cZend_Tool_Project_Context_Zf_ViewScriptFile6
 oZend_Tool_Project_Context_Zf_ViewHelpersDirectory6	 oZend_Tool_Project_Context_Zf_ViewFiltersDirectoryA Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory2 gZend_Tool_Project_Context_Zf_UploadsDirectory0 cZend_Tool_Project_Context_Zf_TestsDirectory7 qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile: wZend_Tool_Project_Context_Zf_TestPHPUnitBootstrapFile@ Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory1 eZend_Tool_Project_Context_Zf_TestLibraryFile6 oZend_Tool_Project_Context_Zf_TestLibraryDirectory:  wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFileB Zend_Tool_Project_Context_Zf_TestApplicationModulesDirectoryA~ Zend_Tool_Project_Context_Zf_TestApplicationModuleDirectory:} wZend_Tool_Project_Context_Zf_TestApplicationDirectory@| Zend_Tool_Project_Context_Zf_TestApplicationControllerFileE{ Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory>z Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile=y }Zend_Tool_Project_Context_Zf_TestApplicationActionMethod4x kZend_Tool_Project_Context_Zf_TemporaryDirectory3w iZend_Tool_Project_Context_Zf_SessionsDirectory3v iZend_Tool_Project_Context_Zf_ServicesDirectory8u sZend_Tool_Project_Context_Zf_SearchIndexesDirectory<t {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory8s sZend_Tool_Project_Context_Zf_PublicScriptsDirectory1r eZend_Tool_Project_Context_Zf_PublicIndexFile7q qZend_Tool_Project_Context_Zf_PublicImagesDirectory1p eZend_Tool_Project_Context_Zf_PublicDirectory5o mZend_Tool_Project_Context_Zf_ProjectProviderFile2n gZend_Tool_Project_Context_Zf_ModulesDirectory1m eZend_Tool_Project_Context_Zf_ModuleDirectory1l eZend_Tool_Project_Context_Zf_ModelsDirectory+k YZend_Tool_Project_Context_Zf_ModelFile/j aZend_Tool_Project_Context_Zf_LogsDirectory2i gZend_Tool_Project_Context_Zf_LocalesDirectory2h gZend_Tool_Project_Context_Zf_LibraryDirectory2g gZend_Tool_Project_Context_Zf_LayoutsDirectory8f sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory2e gZend_Tool_Project_Context_Zf_LayoutScriptFile.d _Zend_Tool_Project_Context_Zf_HtaccessFile0c cZend_Tool_Project_Context_Zf_FormsDirectory*b WZend_Tool_Project_Context_Zf_FormFile/a aZend_Tool_Project_Context_Zf_DocsDirectory-` ]Zend_Tool_Project_Context_Zf_DbTableFile2_ gZend_Tool_Project_Context_Zf_DbTableDirectory/^ aZend_Tool_Project_Context_Zf_DataDirectory6] oZend_Tool_Project_Context_Zf_ControllersDirectory0\ cZend_Tool_Project_Context_Zf_ControllerFile2[ gZend_Tool_Project_Context_Zf_ConfigsDirectory,Z [Zend_Tool_Project_Context_Zf_ConfigFile0Y cZend_Tool_Project_Context_Zf_CacheDirectory/X aZend_Tool_Project_Context_Zf_BootstrapFile6W oZend_Tool_Project_Context_Zf_ApplicationDirectory7V qZend_Tool_Project_Context_Zf_ApplicationConfigFile/U aZend_Tool_Project_Context_Zf_ApisDirectory.T _Zend_Tool_Project_Context_Zf_ActionMethod3S iZend_Tool_Project_Context_Zf_AbstractClassFile@R Zend_Tool_Project_Context_System_ProjectProvidersDirectory8Q sZend_Tool_Project_Context_System_ProjectProfileFile6P oZend_Tool_Project_Context_System_ProjectDirectory)O UZend_Tool_Project_Context_Repository.N _Zend_Tool_Project_Context_Filesystem_File3M iZend_Tool_Project_Context_Filesystem_Directory2L gZend_Tool_Project_Context_Filesystem_Abstract(K SZend_Tool_Project_Context_Exception-J ]Zend_Tool_Project_Context_Content_Engine3I iZend_Tool_Project_Context_Content_Engine_Phtml;H yZend_Tool_Project_Context_Content_Engine_CodeGenerator   f  p?S(S&|P'tL$




p
M
*
					k	P	:	)	
O*mI%rM%d>qR6mJ*	oJ%vR-                          s ;Zend_Validate_File_Sizer ;Zend_Validate_File_Sha1!q EZend_Validate_File_NotExists p CZend_Validate_File_MimeTypeo 9Zend_Validate_File_Md5n AZend_Validate_File_IsImage$m KZend_Validate_File_IsCompressed!l EZend_Validate_File_ImageSizek ;Zend_Validate_File_Hash!j EZend_Validate_File_FilesSize!i EZend_Validate_File_Extensionh ?Zend_Validate_File_Exists'g QZend_Validate_File_ExcludeMimeType(f SZend_Validate_File_ExcludeExtensione =Zend_Validate_File_Crc32d =Zend_Validate_File_Countc ;Zend_Validate_Exceptionb AZend_Validate_EmailAddressa 5Zend_Validate_Digits"` GZend_Validate_Db_RecordExists$_ KZend_Validate_Db_NoRecordExists^ ?Zend_Validate_Db_Abstract] 1Zend_Validate_Date\ =Zend_Validate_CreditCard[ 3Zend_Validate_CcnumZ 9Zend_Validate_CallbackY 7Zend_Validate_BetweenX 7Zend_Validate_BarcodeW AZend_Validate_Barcode_UpceV AZend_Validate_Barcode_UpcaU AZend_Validate_Barcode_Sscc$T KZend_Validate_Barcode_Royalmail"S GZend_Validate_Barcode_Postnet!R EZend_Validate_Barcode_Planet#Q IZend_Validate_Barcode_Leitcode P CZend_Validate_Barcode_Itf14O AZend_Validate_Barcode_Issn*N WZend_Validate_Barcode_IntelligentMail$M KZend_Validate_Barcode_Identcode!L EZend_Validate_Barcode_Gtin14!K EZend_Validate_Barcode_Gtin13!J EZend_Validate_Barcode_Gtin12I AZend_Validate_Barcode_Ean8H AZend_Validate_Barcode_Ean5G AZend_Validate_Barcode_Ean2 F CZend_Validate_Barcode_Ean18 E CZend_Validate_Barcode_Ean14 D CZend_Validate_Barcode_Ean13 C CZend_Validate_Barcode_Ean12$B KZend_Validate_Barcode_Code93ext!A EZend_Validate_Barcode_Code93$@ KZend_Validate_Barcode_Code39ext!? EZend_Validate_Barcode_Code39,> [Zend_Validate_Barcode_Code25interleaved!= EZend_Validate_Barcode_Code25*< WZend_Validate_Barcode_AdapterAbstract; 3Zend_Validate_Alpha: 3Zend_Validate_Alnum9 9Zend_Validate_Abstract8 Zend_Uri7 'Zend_Uri_Http6 1Zend_Uri_Exception5 )Zend_Translate4 7Zend_Translate_Plural3 =Zend_Translate_Exception2 9Zend_Translate_Adapter!1 EZend_Translate_Adapter_XmlTm!0 EZend_Translate_Adapter_Xliff/ AZend_Translate_Adapter_Tmx. AZend_Translate_Adapter_Tbx- ?Zend_Translate_Adapter_Qt, AZend_Translate_Adapter_Ini#+ IZend_Translate_Adapter_Gettext* AZend_Translate_Adapter_Csv!) EZend_Translate_Adapter_Array$( KZend_Tool_Project_Provider_View$' KZend_Tool_Project_Provider_Test/& aZend_Tool_Project_Provider_ProjectProvider'% QZend_Tool_Project_Provider_Project'$ QZend_Tool_Project_Provider_Profile&# OZend_Tool_Project_Provider_Module%" MZend_Tool_Project_Provider_Model(! SZend_Tool_Project_Provider_Manifest&  OZend_Tool_Project_Provider_Layout$ KZend_Tool_Project_Provider_Form) UZend_Tool_Project_Provider_Exception' QZend_Tool_Project_Provider_DbTable) UZend_Tool_Project_Provider_DbAdapter* WZend_Tool_Project_Provider_Controller+ YZend_Tool_Project_Provider_Application& OZend_Tool_Project_Provider_Action( SZend_Tool_Project_Provider_Abstract ?Zend_Tool_Project_Profile' QZend_Tool_Project_Profile_Resource9 uZend_Tool_Project_Profile_Resource_SearchConstraints1 eZend_Tool_Project_Profile_Resource_Container= }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter5 mZend_Tool_Project_Profile_Iterator_ContextFilter- ]Zend_Tool_Project_Profile_FileParser_Xml( SZend_Tool_Project_Profile_Exception  CZend_Tool_Project_Exception< {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory   l  {aB'}^? lI3bCsN*



s
Q
+
				{	U	3	`=jJhDp7hCwe;mR8b;          _ /Zend_XmlRpc_Fault^ 7Zend_XmlRpc_Exception] 1Zend_XmlRpc_Client#\ IZend_XmlRpc_Client_ServerProxy+[ YZend_XmlRpc_Client_ServerIntrospection+Z YZend_XmlRpc_Client_IntrospectException%Y MZend_XmlRpc_Client_HttpException&X OZend_XmlRpc_Client_FaultException!W EZend_XmlRpc_Client_ExceptionV /Zend_Xml_SecurityU 1Zend_Xml_Exception&T OZend_Wildfire_Protocol_JsonStream!S EZend_Wildfire_Plugin_FirePhp.R _Zend_Wildfire_Plugin_FirePhp_TableMessage)Q UZend_Wildfire_Plugin_FirePhp_MessageP ;Zend_Wildfire_Exception&O OZend_Wildfire_Channel_HttpHeadersN Zend_ViewM -Zend_View_StreamL AZend_View_Helper_UserAgentK 5Zend_View_Helper_UrlJ AZend_View_Helper_TranslateI AZend_View_Helper_ServerUrl)H UZend_View_Helper_RenderToPlaceholder!G EZend_View_Helper_Placeholder*F WZend_View_Helper_Placeholder_Registry4E kZend_View_Helper_Placeholder_Registry_Exception+D YZend_View_Helper_Placeholder_Container6C oZend_View_Helper_Placeholder_Container_Standalone5B mZend_View_Helper_Placeholder_Container_Exception4A kZend_View_Helper_Placeholder_Container_Abstract!@ EZend_View_Helper_PartialLoop? =Zend_View_Helper_Partial'> QZend_View_Helper_Partial_Exception'= QZend_View_Helper_PaginationControl < CZend_View_Helper_Navigation(; SZend_View_Helper_Navigation_Sitemap%: MZend_View_Helper_Navigation_Menu&9 OZend_View_Helper_Navigation_Links/8 aZend_View_Helper_Navigation_HelperAbstract,7 [Zend_View_Helper_Navigation_Breadcrumbs6 ;Zend_View_Helper_Layout5 7Zend_View_Helper_Json"4 GZend_View_Helper_InlineScript#3 IZend_View_Helper_HtmlQuicktime2 ?Zend_View_Helper_HtmlPage 1 CZend_View_Helper_HtmlObject0 ?Zend_View_Helper_HtmlList/ AZend_View_Helper_HtmlFlash!. EZend_View_Helper_HtmlElement- AZend_View_Helper_HeadTitle, AZend_View_Helper_HeadStyle + CZend_View_Helper_HeadScript* ?Zend_View_Helper_HeadMeta) ?Zend_View_Helper_HeadLink( ?Zend_View_Helper_Gravatar"' GZend_View_Helper_FormTextarea& ?Zend_View_Helper_FormText % CZend_View_Helper_FormSubmit $ CZend_View_Helper_FormSelect# AZend_View_Helper_FormReset" AZend_View_Helper_FormRadio"! GZend_View_Helper_FormPassword  ?Zend_View_Helper_FormNote' QZend_View_Helper_FormMultiCheckbox AZend_View_Helper_FormLabel AZend_View_Helper_FormImage  CZend_View_Helper_FormHidden ?Zend_View_Helper_FormFile  CZend_View_Helper_FormErrors! EZend_View_Helper_FormElement" GZend_View_Helper_FormCheckbox  CZend_View_Helper_FormButton 7Zend_View_Helper_Form ?Zend_View_Helper_Fieldset =Zend_View_Helper_Doctype! EZend_View_Helper_DeclareVars 9Zend_View_Helper_Cycle ?Zend_View_Helper_Currency =Zend_View_Helper_BaseUrl ;Zend_View_Helper_Action ?Zend_View_Helper_Abstract 3Zend_View_Exception 1Zend_View_Abstract %Zend_Version
 'Zend_Validate	 AZend_Validate_StringLength# IZend_Validate_Sitemap_Priority ?Zend_Validate_Sitemap_Loc" GZend_Validate_Sitemap_Lastmod% MZend_Validate_Sitemap_Changefreq 3Zend_Validate_Regex 9Zend_Validate_PostCode 9Zend_Validate_NotEmpty 9Zend_Validate_LessThan  7Zend_Validate_Ldap_Dn 1Zend_Validate_Isbn~ -Zend_Validate_Ip} /Zend_Validate_Int| 7Zend_Validate_InArray{ ;Zend_Validate_Identicalz 1Zend_Validate_Ibany 9Zend_Validate_Hostnamex /Zend_Validate_Hexw ?Zend_Validate_GreaterThanv 3Zend_Validate_Float!u EZend_Validate_File_WordCountt ?Zend_Validate_File_Upload   i  ~];yW<lK'jO5cD)



n
J
'
				a	?	!	rQ.	sEg2^9b<a8vT3rQ5                                H CZend_Auth_Storage_ExceptionG -Zend_Auth_ResultF 3Zend_Auth_ExceptionE =Zend_Auth_Adapter_OpenIdD 9Zend_Auth_Adapter_LdapC 9Zend_Auth_Adapter_Http)B UZend_Auth_Adapter_Http_Resolver_File.A _Zend_Auth_Adapter_Http_Resolver_Exception @ CZend_Auth_Adapter_Exception? =Zend_Auth_Adapter_Digest> ?Zend_Auth_Adapter_DbTable= -Zend_Application#< IZend_Application_Resource_View(; SZend_Application_Resource_UserAgent(: SZend_Application_Resource_Translate&9 OZend_Application_Resource_Session%8 MZend_Application_Resource_Router/7 aZend_Application_Resource_ResourceAbstract)6 UZend_Application_Resource_Navigation&5 OZend_Application_Resource_Multidb&4 OZend_Application_Resource_Modules#3 IZend_Application_Resource_Mail"2 GZend_Application_Resource_Log%1 MZend_Application_Resource_Locale%0 MZend_Application_Resource_Layout./ _Zend_Application_Resource_Frontcontroller(. SZend_Application_Resource_Exception#- IZend_Application_Resource_Dojo!, EZend_Application_Resource_Db++ YZend_Application_Resource_Cachemanager&* OZend_Application_Module_Bootstrap') QZend_Application_Module_Autoloader( AZend_Application_Exception)' UZend_Application_Bootstrap_Exception1& eZend_Application_Bootstrap_BootstrapAbstract)% UZend_Application_Bootstrap_Bootstrap$ ?Zend_Amf_Value_TraitsInfo-# ]Zend_Amf_Value_Messaging_RemotingMessage*" WZend_Amf_Value_Messaging_ErrorMessage,! [Zend_Amf_Value_Messaging_CommandMessage*  WZend_Amf_Value_Messaging_AsyncMessage- ]Zend_Amf_Value_Messaging_ArrayCollection0 cZend_Amf_Value_Messaging_AcknowledgeMessage- ]Zend_Amf_Value_Messaging_AbstractMessage! EZend_Amf_Value_MessageHeader AZend_Amf_Value_MessageBody =Zend_Amf_Value_ByteArray AZend_Amf_Util_BinaryStream +Zend_Amf_Server ?Zend_Amf_Server_Exception /Zend_Amf_Response 9Zend_Amf_Response_Http -Zend_Amf_Request 7Zend_Amf_Request_Http ?Zend_Amf_Parse_TypeLoader ?Zend_Amf_Parse_Serializer# IZend_Amf_Parse_Resource_Stream( SZend_Amf_Parse_Resource_MysqlResult) UZend_Amf_Parse_Resource_MysqliResult  CZend_Amf_Parse_OutputStream AZend_Amf_Parse_InputStream  CZend_Amf_Parse_Deserializer#
 IZend_Amf_Parse_Amf3_Serializer%	 MZend_Amf_Parse_Amf3_Deserializer# IZend_Amf_Parse_Amf0_Serializer% MZend_Amf_Parse_Amf0_Deserializer 1Zend_Amf_Exception 1Zend_Amf_Constants 9Zend_Amf_Auth_Abstract  CZend_Amf_Adobe_Introspector AZend_Amf_Adobe_DbInspector 3Zend_Amf_Adobe_Auth  Zend_Acl 'Zend_Acl_Role~ 9Zend_Acl_Role_Registry%} MZend_Acl_Role_Registry_Exception| /Zend_Acl_Resource{ 1Zend_Acl_Exceptionz /Zend_XmlRpc_Valuey =Zend_XmlRpc_Value_Structx =Zend_XmlRpc_Value_Stringw =Zend_XmlRpc_Value_Scalarv 7Zend_XmlRpc_Value_Nilu ?Zend_XmlRpc_Value_Integer t CZend_XmlRpc_Value_Exceptions =Zend_XmlRpc_Value_Doubler AZend_XmlRpc_Value_DateTime!q EZend_XmlRpc_Value_Collectionp ?Zend_XmlRpc_Value_Boolean!o EZend_XmlRpc_Value_BigIntegern =Zend_XmlRpc_Value_Base64m ;Zend_XmlRpc_Value_Arrayl 1Zend_XmlRpc_Serverk ?Zend_XmlRpc_Server_Systemj =Zend_XmlRpc_Server_Fault!i EZend_XmlRpc_Server_Exceptionh =Zend_XmlRpc_Server_Cacheg 5Zend_XmlRpc_Responsef ?Zend_XmlRpc_Response_Httpe 3Zend_XmlRpc_Requestd ?Zend_XmlRpc_Request_Stdinc =Zend_XmlRpc_Request_Http$b KZend_XmlRpc_Generator_XmlWriter,a [Zend_XmlRpc_Generator_GeneratorAbstract&` OZend_XmlRpc_Generator_DomDocument   W  o?"a7Y\0d+



\
+				j	?	b4a@n=a2	e=pF~J'p<	  "p GZend_Filter_Encrypt_Interface+o YZend_Filter_Compress_CompressInterface0n cZend_Feed_Writer_Renderer_RendererInterface1m eZend_Feed_Writer_Extension_RendererInterface#l IZend_Feed_Reader_FeedInterface$k KZend_Feed_Reader_EntryInterface7j qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface-i ]Zend_Feed_Pubsubhubbub_CallbackInterface h CZend_Feed_Builder_Interface1g eZend_EventManager_SharedEventCollectionAware,f [Zend_EventManager_SharedEventCollection(e SZend_EventManager_ListenerAggregated =Zend_EventManager_Filter c CZend_EventManager_Exception(b SZend_EventManager_EventManagerAware'a QZend_EventManager_EventDescription&` OZend_EventManager_EventCollection _ CZend_Db_Statement_Interface$^ KZend_Currency_CurrencyInterface)] UZend_Crypt_Math_BigInteger_Interface+\ YZend_Controller_Router_Route_Interface%[ MZend_Controller_Router_Interface)Z UZend_Controller_Dispatcher_Interface%Y MZend_Controller_Action_Interface&X OZend_Cloud_StorageService_Adapter$W KZend_Cloud_QueueService_Adapter&V OZend_Cloud_Infrastructure_Adapter,U [Zend_Cloud_DocumentService_QueryAdapter'T QZend_Cloud_DocumentService_AdapterS 5Zend_Captcha_Adapter!R EZend_Cache_Backend_Interface)Q UZend_Cache_Backend_ExtendedInterface P CZend_Auth_Storage_Interface O CZend_Auth_Adapter_Interface.N _Zend_Auth_Adapter_Http_Resolver_Interface'M QZend_Application_Resource_Resource4L kZend_Application_Bootstrap_ResourceBootstrapper,K [Zend_Application_Bootstrap_BootstrapperJ ;Zend_Acl_Role_Interface I CZend_Acl_Resource_InterfaceH ?Zend_Acl_Assert_Interface#G IZend_Wildfire_Plugin_Interface$F KZend_Wildfire_Channel_InterfaceE 3Zend_View_Interface'D QZend_View_Helper_Navigation_HelperC AZend_View_Helper_InterfaceB ;Zend_Validate_Interface+A YZend_Validate_Barcode_AdapterInterface3@ iZend_Tool_Project_Profile_FileParser_Interface:? wZend_Tool_Project_Context_System_TopLevelRestrictable5> mZend_Tool_Project_Context_System_NotOverwritable/= aZend_Tool_Project_Context_System_Interface(< SZend_Tool_Project_Context_Interface+; YZend_Tool_Framework_Registry_Interface2: gZend_Tool_Framework_Registry_EnabledInterface-9 ]Zend_Tool_Framework_Provider_Pretendable+8 YZend_Tool_Framework_Provider_Interface.7 _Zend_Tool_Framework_Provider_Interactable/6 aZend_Tool_Framework_Provider_Initializable;5 yZend_Tool_Framework_Provider_DocblockManifestInterface+4 YZend_Tool_Framework_Metadata_Interface.3 _Zend_Tool_Framework_Metadata_Attributable62 oZend_Tool_Framework_Manifest_ProviderManifestable61 oZend_Tool_Framework_Manifest_MetadataManifestable+0 YZend_Tool_Framework_Manifest_Interface+/ YZend_Tool_Framework_Manifest_Indexable4. kZend_Tool_Framework_Manifest_ActionManifestable)- UZend_Tool_Framework_Loader_Interface8, sZend_Tool_Framework_Client_Storage_AdapterInterfaceD+ 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface;* yZend_Tool_Framework_Client_Interactive_OutputInterface:) wZend_Tool_Framework_Client_Interactive_InputInterface)( UZend_Tool_Framework_Action_Interface(' SZend_Text_Table_Decorator_Interface& /Zend_Tag_Taggable% 7Zend_Stdlib_Exception&$ OZend_Soap_Wsdl_Strategy_Interface%# MZend_Session_Validator_Interface'" QZend_Session_SaveHandler_Interface$! KZend_Service_ShortUrl_ShortenerI  Zend_Service_DeveloperGarden_Response_SecurityTokenServer_InterfaceK Zend_Service_Console_Command_ParameterSource_ParameterSourceInterface 7Zend_Server_Interface- ]Zend_Serializer_Adapter_AdapterInterface4 kZend_Search_Lucene_Search_Highlighter_Interface! EZend_Search_Lucene_Interface3 iZend_Search_Lucene_Index_TermsStream_Interface   d  a>hF eAk<yT2




]
2
					l	J	)	x^?#q7a2Z,zN#^)}RY/                       !, EZend_CodeGenerator_Exception + CZend_CodeGenerator_Abstract&* OZend_Cloud_StorageService_Factory() SZend_Cloud_StorageService_Exception3( iZend_Cloud_StorageService_Adapter_WindowsAzure)' UZend_Cloud_StorageService_Adapter_S30& cZend_Cloud_StorageService_Adapter_Rackspace1% eZend_Cloud_StorageService_Adapter_FileSystem'$ QZend_Cloud_QueueService_MessageSet$# KZend_Cloud_QueueService_Message$" KZend_Cloud_QueueService_Factory&! OZend_Cloud_QueueService_Exception.  _Zend_Cloud_QueueService_Adapter_ZendQueue1 eZend_Cloud_QueueService_Adapter_WindowsAzure( SZend_Cloud_QueueService_Adapter_Sqs4 kZend_Cloud_QueueService_Adapter_AbstractAdapter. _Zend_Cloud_OperationNotAvailableException+ YZend_Cloud_Infrastructure_InstanceList' QZend_Cloud_Infrastructure_Instance( SZend_Cloud_Infrastructure_ImageList$ KZend_Cloud_Infrastructure_Image& OZend_Cloud_Infrastructure_Factory( SZend_Cloud_Infrastructure_Exception0 cZend_Cloud_Infrastructure_Adapter_Rackspace* WZend_Cloud_Infrastructure_Adapter_Ec26 oZend_Cloud_Infrastructure_Adapter_AbstractAdapter 5Zend_Cloud_Exception% MZend_Cloud_DocumentService_Query' QZend_Cloud_DocumentService_Factory) UZend_Cloud_DocumentService_Exception+ YZend_Cloud_DocumentService_DocumentSet( SZend_Cloud_DocumentService_Document4 kZend_Cloud_DocumentService_Adapter_WindowsAzure: wZend_Cloud_DocumentService_Adapter_WindowsAzure_Query0
 cZend_Cloud_DocumentService_Adapter_SimpleDb6	 oZend_Cloud_DocumentService_Adapter_SimpleDb_Query7 qZend_Cloud_DocumentService_Adapter_AbstractAdapter AZend_Cloud_AbstractFactory /Zend_Captcha_Word 9Zend_Captcha_ReCaptcha 1Zend_Captcha_Image 3Zend_Captcha_Figlet 9Zend_Captcha_Exception /Zend_Captcha_Dumb  /Zend_Captcha_Base !Zend_Cache~ 1Zend_Cache_Manager} =Zend_Cache_Frontend_Page| AZend_Cache_Frontend_Output!{ EZend_Cache_Frontend_Functionz =Zend_Cache_Frontend_Filey ?Zend_Cache_Frontend_Class x CZend_Cache_Frontend_Capturew 5Zend_Cache_Exceptionv +Zend_Cache_Coreu 1Zend_Cache_Backend"t GZend_Cache_Backend_ZendServer(s SZend_Cache_Backend_ZendServer_ShMem'r QZend_Cache_Backend_ZendServer_Disk$q KZend_Cache_Backend_ZendPlatformp ?Zend_Cache_Backend_Xcache o CZend_Cache_Backend_WinCache!n EZend_Cache_Backend_TwoLevelsm ;Zend_Cache_Backend_Testl ?Zend_Cache_Backend_Statick ?Zend_Cache_Backend_Sqlite!j EZend_Cache_Backend_Memcached$i KZend_Cache_Backend_Libmemcachedh ;Zend_Cache_Backend_File!g EZend_Cache_Backend_BlackHolef 9Zend_Cache_Backend_Apce %Zend_Barcoded ?Zend_Barcode_Renderer_Svg+c YZend_Barcode_Renderer_RendererAbstractb ?Zend_Barcode_Renderer_Pdf a CZend_Barcode_Renderer_Image$` KZend_Barcode_Renderer_Exception_ =Zend_Barcode_Object_Upce^ =Zend_Barcode_Object_Upca"] GZend_Barcode_Object_Royalmail \ CZend_Barcode_Object_Postnet[ AZend_Barcode_Object_Planet'Z QZend_Barcode_Object_ObjectAbstract!Y EZend_Barcode_Object_LeitcodeX ?Zend_Barcode_Object_Itf14"W GZend_Barcode_Object_Identcode"V GZend_Barcode_Object_ExceptionU ?Zend_Barcode_Object_ErrorT =Zend_Barcode_Object_Ean8S =Zend_Barcode_Object_Ean5R =Zend_Barcode_Object_Ean2Q ?Zend_Barcode_Object_Ean13P AZend_Barcode_Object_Code39*O WZend_Barcode_Object_Code25interleavedN AZend_Barcode_Object_Code25 M CZend_Barcode_Object_Code128L 9Zend_Barcode_ExceptionK Zend_AuthJ ?Zend_Auth_Storage_Session$I KZend_Auth_Storage_NonPersistent   b  [)yU&q<|]=x\3


d
-				X	-e9sU-]3	fAqJl@xN!|Y7         ;Zend_Currency_Exception !Zend_Crypt )Zend_Crypt_Rsa 1Zend_Crypt_Rsa_Key
 ?Zend_Crypt_Rsa_Key_Public	 AZend_Crypt_Rsa_Key_Private =Zend_Crypt_Rsa_Exception +Zend_Crypt_Math ?Zend_Crypt_Math_Exception AZend_Crypt_Math_BigInteger# IZend_Crypt_Math_BigInteger_Gmp) UZend_Crypt_Math_BigInteger_Exception& OZend_Crypt_Math_BigInteger_Bcmath +Zend_Crypt_Hmac  ?Zend_Crypt_Hmac_Exception 5Zend_Crypt_Exception~ =Zend_Crypt_DiffieHellman'} QZend_Crypt_DiffieHellman_Exception!| EZend_Controller_Router_Route({ SZend_Controller_Router_Route_Static'z QZend_Controller_Router_Route_Regex(y SZend_Controller_Router_Route_Module*x WZend_Controller_Router_Route_Hostname'w QZend_Controller_Router_Route_Chain*v WZend_Controller_Router_Route_Abstract#u IZend_Controller_Router_Rewrite%t MZend_Controller_Router_Exception$s KZend_Controller_Router_Abstract*r WZend_Controller_Response_HttpTestCase"q GZend_Controller_Response_Http'p QZend_Controller_Response_Exception!o EZend_Controller_Response_Cli&n OZend_Controller_Response_Abstract#m IZend_Controller_Request_Simple)l UZend_Controller_Request_HttpTestCase!k EZend_Controller_Request_Http&j OZend_Controller_Request_Exception&i OZend_Controller_Request_Apache404%h MZend_Controller_Request_Abstract&g OZend_Controller_Plugin_PutHandler(f SZend_Controller_Plugin_ErrorHandler"e GZend_Controller_Plugin_Broker'd QZend_Controller_Plugin_ActionStack$c KZend_Controller_Plugin_Abstractb 7Zend_Controller_Fronta ?Zend_Controller_Exception(` SZend_Controller_Dispatcher_Standard)_ UZend_Controller_Dispatcher_Exception(^ SZend_Controller_Dispatcher_Abstract] 9Zend_Controller_Action(\ SZend_Controller_Action_HelperBroker6[ oZend_Controller_Action_HelperBroker_PriorityStack/Z aZend_Controller_Action_Helper_ViewRenderer&Y OZend_Controller_Action_Helper_Url-X ]Zend_Controller_Action_Helper_Redirector'W QZend_Controller_Action_Helper_Json1V eZend_Controller_Action_Helper_FlashMessenger0U cZend_Controller_Action_Helper_ContextSwitch(T SZend_Controller_Action_Helper_Cache<S {Zend_Controller_Action_Helper_AutoCompleteScriptaculous3R iZend_Controller_Action_Helper_AutoCompleteDojo8Q sZend_Controller_Action_Helper_AutoComplete_Abstract.P _Zend_Controller_Action_Helper_AjaxContext.O _Zend_Controller_Action_Helper_ActionStack+N YZend_Controller_Action_Helper_Abstract%M MZend_Controller_Action_ExceptionL 3Zend_Console_Getopt"K GZend_Console_Getopt_ExceptionJ #Zend_ConfigI -Zend_Config_YamlH +Zend_Config_XmlG 1Zend_Config_WriterF ;Zend_Config_Writer_YamlE 9Zend_Config_Writer_XmlD ;Zend_Config_Writer_JsonC 9Zend_Config_Writer_Ini$B KZend_Config_Writer_FileAbstractA =Zend_Config_Writer_Array@ -Zend_Config_Json? +Zend_Config_Ini> 7Zend_Config_Exception$= KZend_CodeGenerator_Php_Property1< eZend_CodeGenerator_Php_Property_DefaultValue%; MZend_CodeGenerator_Php_Parameter2: gZend_CodeGenerator_Php_Parameter_DefaultValue"9 GZend_CodeGenerator_Php_Method,8 [Zend_CodeGenerator_Php_Member_Container+7 YZend_CodeGenerator_Php_Member_Abstract 6 CZend_CodeGenerator_Php_File%5 MZend_CodeGenerator_Php_Exception$4 KZend_CodeGenerator_Php_Docblock(3 SZend_CodeGenerator_Php_Docblock_Tag/2 aZend_CodeGenerator_Php_Docblock_Tag_Return.1 _Zend_CodeGenerator_Php_Docblock_Tag_Param00 cZend_CodeGenerator_Php_Docblock_Tag_License!/ EZend_CodeGenerator_Php_Class . CZend_CodeGenerator_Php_Body$- KZend_CodeGenerator_Php_Abstract   j  e?#qL(^;aH'{Z/




`
F
'
					_	8	jN]/vR,]3T%zR+ kJsL"                         *x WZend_Dojo_View_Helper_CurrencyTextBox&w OZend_Dojo_View_Helper_ContentPane#v IZend_Dojo_View_Helper_ComboBox#u IZend_Dojo_View_Helper_CheckBox!t EZend_Dojo_View_Helper_Button*s WZend_Dojo_View_Helper_BorderContainer(r SZend_Dojo_View_Helper_AccordionPane-q ]Zend_Dojo_View_Helper_AccordionContainerp =Zend_Dojo_View_Exceptiono )Zend_Dojo_Formn 9Zend_Dojo_Form_SubForm*m WZend_Dojo_Form_Element_VerticalSlider-l ]Zend_Dojo_Form_Element_ValidationTextBox'k QZend_Dojo_Form_Element_TimeTextBox#j IZend_Dojo_Form_Element_TextBox$i KZend_Dojo_Form_Element_Textarea(h SZend_Dojo_Form_Element_SubmitButton"g GZend_Dojo_Form_Element_Slider*f WZend_Dojo_Form_Element_SimpleTextarea'e QZend_Dojo_Form_Element_RadioButton+d YZend_Dojo_Form_Element_PasswordTextBox)c UZend_Dojo_Form_Element_NumberTextBox)b UZend_Dojo_Form_Element_NumberSpinner,a [Zend_Dojo_Form_Element_HorizontalSlider+` YZend_Dojo_Form_Element_FilteringSelect"_ GZend_Dojo_Form_Element_Editor&^ OZend_Dojo_Form_Element_DijitMulti!] EZend_Dojo_Form_Element_Dijit'\ QZend_Dojo_Form_Element_DateTextBox+[ YZend_Dojo_Form_Element_CurrencyTextBox$Z KZend_Dojo_Form_Element_ComboBox$Y KZend_Dojo_Form_Element_CheckBox"X GZend_Dojo_Form_Element_Button W CZend_Dojo_Form_DisplayGroup*V WZend_Dojo_Form_Decorator_TabContainer,U [Zend_Dojo_Form_Decorator_StackContainer,T [Zend_Dojo_Form_Decorator_SplitContainer'S QZend_Dojo_Form_Decorator_DijitForm*R WZend_Dojo_Form_Decorator_DijitElement,Q [Zend_Dojo_Form_Decorator_DijitContainer)P UZend_Dojo_Form_Decorator_ContentPane-O ]Zend_Dojo_Form_Decorator_BorderContainer+N YZend_Dojo_Form_Decorator_AccordionPane0M cZend_Dojo_Form_Decorator_AccordionContainerL 3Zend_Dojo_ExceptionK )Zend_Dojo_DataJ 5Zend_Dojo_BuildLayerI !Zend_DebugH Zend_DbG 'Zend_Db_TableF 5Zend_Db_Table_Select#E IZend_Db_Table_Select_ExceptionD 5Zend_Db_Table_Rowset#C IZend_Db_Table_Rowset_Exception"B GZend_Db_Table_Rowset_AbstractA /Zend_Db_Table_Row @ CZend_Db_Table_Row_Exception? AZend_Db_Table_Row_Abstract> ;Zend_Db_Table_Exception= =Zend_Db_Table_Definition< 9Zend_Db_Table_Abstract; /Zend_Db_Statement: =Zend_Db_Statement_Sqlsrv'9 QZend_Db_Statement_Sqlsrv_Exception8 7Zend_Db_Statement_Pdo7 ?Zend_Db_Statement_Pdo_Oci6 ?Zend_Db_Statement_Pdo_Ibm5 =Zend_Db_Statement_Oracle'4 QZend_Db_Statement_Oracle_Exception3 =Zend_Db_Statement_Mysqli'2 QZend_Db_Statement_Mysqli_Exception 1 CZend_Db_Statement_Exception0 7Zend_Db_Statement_Db2$/ KZend_Db_Statement_Db2_Exception. )Zend_Db_Select- =Zend_Db_Select_Exception, -Zend_Db_Profiler+ 9Zend_Db_Profiler_Query* =Zend_Db_Profiler_Firebug) AZend_Db_Profiler_Exception( %Zend_Db_Expr' /Zend_Db_Exception& 9Zend_Db_Adapter_Sqlsrv%% MZend_Db_Adapter_Sqlsrv_Exception$ AZend_Db_Adapter_Pdo_Sqlite# ?Zend_Db_Adapter_Pdo_Pgsql" ;Zend_Db_Adapter_Pdo_Oci! ?Zend_Db_Adapter_Pdo_Mysql  ?Zend_Db_Adapter_Pdo_Mssql ;Zend_Db_Adapter_Pdo_Ibm  CZend_Db_Adapter_Pdo_Ibm_Ids  CZend_Db_Adapter_Pdo_Ibm_Db2! EZend_Db_Adapter_Pdo_Abstract 9Zend_Db_Adapter_Oracle% MZend_Db_Adapter_Oracle_Exception 9Zend_Db_Adapter_Mysqli% MZend_Db_Adapter_Mysqli_Exception ?Zend_Db_Adapter_Exception 3Zend_Db_Adapter_Db2" GZend_Db_Adapter_Db2_Exception =Zend_Db_Adapter_Abstract Zend_Date 3Zend_Date_Exception 5Zend_Date_DateObject -Zend_Date_Cities 'Zend_Currency   `  [.f:d7
g=t]=



V
E
					u	U	1		vZ>T+W `3]*h9tQ/	y?	        6X oZend_Feed_Writer_Extension_Content_Renderer_Entry2W gZend_Feed_Writer_Extension_Atom_Renderer_Feed6V oZend_Feed_Writer_Exception_InvalidMethodExceptionU 9Zend_Feed_Writer_EntryT =Zend_Feed_Writer_DeletedS 'Zend_Feed_RssR -Zend_Feed_ReaderQ =Zend_Feed_Reader_FeedSet"P GZend_Feed_Reader_FeedAbstractO ?Zend_Feed_Reader_Feed_RssN AZend_Feed_Reader_Feed_Atom&M OZend_Feed_Reader_Feed_Atom_Source3L iZend_Feed_Reader_Extension_WellFormedWeb_Entry,K [Zend_Feed_Reader_Extension_Thread_Entry0J cZend_Feed_Reader_Extension_Syndication_Feed+I YZend_Feed_Reader_Extension_Slash_Entry,H [Zend_Feed_Reader_Extension_Podcast_Feed-G ]Zend_Feed_Reader_Extension_Podcast_Entry,F [Zend_Feed_Reader_Extension_FeedAbstract-E ]Zend_Feed_Reader_Extension_EntryAbstract/D aZend_Feed_Reader_Extension_DublinCore_Feed0C cZend_Feed_Reader_Extension_DublinCore_Entry4B kZend_Feed_Reader_Extension_CreativeCommons_Feed5A mZend_Feed_Reader_Extension_CreativeCommons_Entry-@ ]Zend_Feed_Reader_Extension_Content_Entry)? UZend_Feed_Reader_Extension_Atom_Feed*> WZend_Feed_Reader_Extension_Atom_Entry#= IZend_Feed_Reader_EntryAbstract< AZend_Feed_Reader_Entry_Rss ; CZend_Feed_Reader_Entry_Atom : CZend_Feed_Reader_Collection39 iZend_Feed_Reader_Collection_CollectionAbstract)8 UZend_Feed_Reader_Collection_Category'7 QZend_Feed_Reader_Collection_Author6 9Zend_Feed_Pubsubhubbub&5 OZend_Feed_Pubsubhubbub_Subscriber/4 aZend_Feed_Pubsubhubbub_Subscriber_Callback%3 MZend_Feed_Pubsubhubbub_Publisher.2 _Zend_Feed_Pubsubhubbub_Model_Subscription/1 aZend_Feed_Pubsubhubbub_Model_ModelAbstract(0 SZend_Feed_Pubsubhubbub_HttpResponse%/ MZend_Feed_Pubsubhubbub_Exception,. [Zend_Feed_Pubsubhubbub_CallbackAbstract- 3Zend_Feed_Exception, 3Zend_Feed_Entry_Rss+ 5Zend_Feed_Entry_Atom* =Zend_Feed_Entry_Abstract) /Zend_Feed_Element( /Zend_Feed_Builder' =Zend_Feed_Builder_Header$& KZend_Feed_Builder_Header_Itunes % CZend_Feed_Builder_Exception$ ;Zend_Feed_Builder_Entry# )Zend_Feed_Atom" 1Zend_Feed_Abstract! )Zend_Exception)  UZend_EventManager_StaticEventManager) UZend_EventManager_SharedEventManager) UZend_EventManager_ResponseCollection SplStack) UZend_EventManager_GlobalEventManager" GZend_EventManager_FilterChain, [Zend_EventManager_Filter_FilterIterator9 uZend_EventManager_Exception_InvalidArgumentException# IZend_EventManager_EventManager ;Zend_EventManager_Event )Zend_Dom_Query 7Zend_Dom_Query_Result =Zend_Dom_Query_Css2Xpath 1Zend_Dom_Exception Zend_Dojo) UZend_Dojo_View_Helper_VerticalSlider, [Zend_Dojo_View_Helper_ValidationTextBox& OZend_Dojo_View_Helper_TimeTextBox" GZend_Dojo_View_Helper_TextBox# IZend_Dojo_View_Helper_Textarea' QZend_Dojo_View_Helper_TabContainer' QZend_Dojo_View_Helper_SubmitButton)
 UZend_Dojo_View_Helper_StackContainer)	 UZend_Dojo_View_Helper_SplitContainer! EZend_Dojo_View_Helper_Slider) UZend_Dojo_View_Helper_SimpleTextarea& OZend_Dojo_View_Helper_RadioButton* WZend_Dojo_View_Helper_PasswordTextBox( SZend_Dojo_View_Helper_NumberTextBox( SZend_Dojo_View_Helper_NumberSpinner+ YZend_Dojo_View_Helper_HorizontalSlider AZend_Dojo_View_Helper_Form*  WZend_Dojo_View_Helper_FilteringSelect! EZend_Dojo_View_Helper_Editor~ AZend_Dojo_View_Helper_Dojo)} UZend_Dojo_View_Helper_Dojo_Container)| UZend_Dojo_View_Helper_DijitContainer { CZend_Dojo_View_Helper_Dijit&z OZend_Dojo_View_Helper_DateTextBox&y OZend_Dojo_View_Helper_CustomDijit   f  W(KQ$`5uI!





t
W
6
					d	G	(	vX7qW?sQ2lCm?~Y+kE jH&     > CZend_Form_Decorator_Tooltip(= SZend_Form_Decorator_PrepareElements< ?Zend_Form_Decorator_Label; ?Zend_Form_Decorator_Image : CZend_Form_Decorator_HtmlTag#9 IZend_Form_Decorator_FormErrors%8 MZend_Form_Decorator_FormElements7 =Zend_Form_Decorator_Form6 =Zend_Form_Decorator_File!5 EZend_Form_Decorator_Fieldset"4 GZend_Form_Decorator_Exception3 AZend_Form_Decorator_Errors$2 KZend_Form_Decorator_DtDdWrapper$1 KZend_Form_Decorator_Description 0 CZend_Form_Decorator_Captcha%/ MZend_Form_Decorator_Captcha_Word*. WZend_Form_Decorator_Captcha_ReCaptcha!- EZend_Form_Decorator_Callback!, EZend_Form_Decorator_Abstract+ #Zend_Filter+* YZend_Filter_Word_UnderscoreToSeparator&) OZend_Filter_Word_UnderscoreToDash+( YZend_Filter_Word_UnderscoreToCamelCase*' WZend_Filter_Word_SeparatorToSeparator%& MZend_Filter_Word_SeparatorToDash*% WZend_Filter_Word_SeparatorToCamelCase($ SZend_Filter_Word_Separator_Abstract&# OZend_Filter_Word_DashToUnderscore%" MZend_Filter_Word_DashToSeparator%! MZend_Filter_Word_DashToCamelCase+  YZend_Filter_Word_CamelCaseToUnderscore* WZend_Filter_Word_CamelCaseToSeparator% MZend_Filter_Word_CamelCaseToDash 7Zend_Filter_StripTags ?Zend_Filter_StripNewlines 9Zend_Filter_StringTrim ?Zend_Filter_StringToUpper ?Zend_Filter_StringToLower 5Zend_Filter_RealPath ;Zend_Filter_PregReplace -Zend_Filter_Null& OZend_Filter_NormalizedToLocalized& OZend_Filter_LocalizedToNormalized +Zend_Filter_Int /Zend_Filter_Input 7Zend_Filter_Inflector =Zend_Filter_HtmlEntities AZend_Filter_File_UpperCase ;Zend_Filter_File_Rename AZend_Filter_File_LowerCase =Zend_Filter_File_Encrypt =Zend_Filter_File_Decrypt
 7Zend_Filter_Exception	 3Zend_Filter_Encrypt  CZend_Filter_Encrypt_Openssl AZend_Filter_Encrypt_Mcrypt +Zend_Filter_Dir 1Zend_Filter_Digits 3Zend_Filter_Decrypt 9Zend_Filter_Decompress 5Zend_Filter_Compress =Zend_Filter_Compress_Zip  =Zend_Filter_Compress_Tar =Zend_Filter_Compress_Rar~ =Zend_Filter_Compress_Lzf} ;Zend_Filter_Compress_Gz*| WZend_Filter_Compress_CompressAbstract{ =Zend_Filter_Compress_Bz2z 5Zend_Filter_Callbacky 3Zend_Filter_Booleanx 5Zend_Filter_BaseNamew /Zend_Filter_Alphav /Zend_Filter_Alnumu 1Zend_File_Transfer!t EZend_File_Transfer_Exception$s KZend_File_Transfer_Adapter_Http(r SZend_File_Transfer_Adapter_Abstractq 9Zend_File_PhpClassFilep AZend_File_ClassFileLocatoro Zend_Feedn -Zend_Feed_Writerm ;Zend_Feed_Writer_Source/l aZend_Feed_Writer_Renderer_RendererAbstract'k QZend_Feed_Writer_Renderer_Feed_Rss(j SZend_Feed_Writer_Renderer_Feed_Atom/i aZend_Feed_Writer_Renderer_Feed_Atom_Source5h mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract(g SZend_Feed_Writer_Renderer_Entry_Rss)f UZend_Feed_Writer_Renderer_Entry_Atom1e eZend_Feed_Writer_Renderer_Entry_Atom_Deletedd 7Zend_Feed_Writer_Feed'c QZend_Feed_Writer_Feed_FeedAbstract<b {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry8a sZend_Feed_Writer_Extension_Threading_Renderer_Entry4` kZend_Feed_Writer_Extension_Slash_Renderer_Entry0_ cZend_Feed_Writer_Extension_RendererAbstract4^ kZend_Feed_Writer_Extension_ITunes_Renderer_Feed5] mZend_Feed_Writer_Extension_ITunes_Renderer_Entry+\ YZend_Feed_Writer_Extension_ITunes_Feed,[ [Zend_Feed_Writer_Extension_ITunes_Entry8Z sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed9Y uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry   f  rP-	jByX9jArP"




S
7
				z	P	'Y2qK#~U/}V.	^7p>T*\C                                   "$ GZend_Gdata_Calendar_EventFeed## IZend_Gdata_Calendar_EventEntry" -Zend_Gdata_Books!! EZend_Gdata_Books_VolumeQuery   CZend_Gdata_Books_VolumeFeed! EZend_Gdata_Books_VolumeEntry+ YZend_Gdata_Books_Extension_Viewability- ]Zend_Gdata_Books_Extension_ThumbnailLink& OZend_Gdata_Books_Extension_Review+ YZend_Gdata_Books_Extension_PreviewLink( SZend_Gdata_Books_Extension_InfoLink- ]Zend_Gdata_Books_Extension_Embeddability) UZend_Gdata_Books_Extension_BooksLink- ]Zend_Gdata_Books_Extension_BooksCategory. _Zend_Gdata_Books_Extension_AnnotationLink$ KZend_Gdata_Books_CollectionFeed% MZend_Gdata_Books_CollectionEntry 1Zend_Gdata_AuthSub )Zend_Gdata_App$ KZend_Gdata_App_VersionException 3Zend_Gdata_App_Util# IZend_Gdata_App_MediaFileSource ?Zend_Gdata_App_MediaEntry2 gZend_Gdata_App_LoggingHttpClientAdapterSocket AZend_Gdata_App_IOException, [Zend_Gdata_App_InvalidArgumentException!
 EZend_Gdata_App_HttpException$	 KZend_Gdata_App_FeedSourceParent# IZend_Gdata_App_FeedEntryParent 3Zend_Gdata_App_Feed =Zend_Gdata_App_Extension! EZend_Gdata_App_Extension_Uri% MZend_Gdata_App_Extension_Updated# IZend_Gdata_App_Extension_Title" GZend_Gdata_App_Extension_Text% MZend_Gdata_App_Extension_Summary&  OZend_Gdata_App_Extension_Subtitle$ KZend_Gdata_App_Extension_Source$~ KZend_Gdata_App_Extension_Rights'} QZend_Gdata_App_Extension_Published$| KZend_Gdata_App_Extension_Person"{ GZend_Gdata_App_Extension_Name"z GZend_Gdata_App_Extension_Logo"y GZend_Gdata_App_Extension_Link x CZend_Gdata_App_Extension_Id"w GZend_Gdata_App_Extension_Icon'v QZend_Gdata_App_Extension_Generator#u IZend_Gdata_App_Extension_Email%t MZend_Gdata_App_Extension_Element$s KZend_Gdata_App_Extension_Edited#r IZend_Gdata_App_Extension_Draft%q MZend_Gdata_App_Extension_Control)p UZend_Gdata_App_Extension_Contributor%o MZend_Gdata_App_Extension_Content&n OZend_Gdata_App_Extension_Category$m KZend_Gdata_App_Extension_Authorl =Zend_Gdata_App_Exceptionk 5Zend_Gdata_App_Entry,j [Zend_Gdata_App_CaptchaRequiredException#i IZend_Gdata_App_BaseMediaSourceh 3Zend_Gdata_App_Base*g WZend_Gdata_App_BadMethodCallException!f EZend_Gdata_App_AuthExceptione 5Zend_Gdata_Analytics+d YZend_Gdata_Analytics_Extension_TableId,c [Zend_Gdata_Analytics_Extension_Property*b WZend_Gdata_Analytics_Extension_Metrica ?Zend_Gdata_Analytics_Goal-` ]Zend_Gdata_Analytics_Extension_Dimension#_ IZend_Gdata_Analytics_DataQuery"^ GZend_Gdata_Analytics_DataFeed#] IZend_Gdata_Analytics_DataEntry&\ OZend_Gdata_Analytics_AccountQuery%[ MZend_Gdata_Analytics_AccountFeed&Z OZend_Gdata_Analytics_AccountEntryY Zend_FormX /Zend_Form_SubFormW 3Zend_Form_ExceptionV /Zend_Form_ElementU ;Zend_Form_Element_XhtmlT AZend_Form_Element_TextareaS 9Zend_Form_Element_TextR =Zend_Form_Element_SubmitQ =Zend_Form_Element_SelectP ;Zend_Form_Element_ResetO ;Zend_Form_Element_RadioN AZend_Form_Element_PasswordM 9Zend_Form_Element_Note"L GZend_Form_Element_Multiselect$K KZend_Form_Element_MultiCheckboxJ ;Zend_Form_Element_MultiI ;Zend_Form_Element_ImageH =Zend_Form_Element_HiddenG 9Zend_Form_Element_HashF 9Zend_Form_Element_File E CZend_Form_Element_ExceptionD AZend_Form_Element_CheckboxC ?Zend_Form_Element_CaptchaB =Zend_Form_Element_ButtonA 9Zend_Form_DisplayGroup#@ IZend_Form_Decorator_ViewScript#? IZend_Form_Decorator_ViewHelper   `  {N#Y(xO1Y&d6




c
5
				h	A	iB_+ ]3pH!gHrI%pI#rH%                          AZend_Gdata_Gapps_UserQuery ?Zend_Gdata_Gapps_UserFeed AZend_Gdata_Gapps_UserEntry& OZend_Gdata_Gapps_ServiceException  9Zend_Gdata_Gapps_Query  CZend_Gdata_Gapps_OwnerQuery~ AZend_Gdata_Gapps_OwnerFeed } CZend_Gdata_Gapps_OwnerEntry#| IZend_Gdata_Gapps_NicknameQuery"{ GZend_Gdata_Gapps_NicknameFeed#z IZend_Gdata_Gapps_NicknameEntry!y EZend_Gdata_Gapps_MemberQuery x CZend_Gdata_Gapps_MemberFeed!w EZend_Gdata_Gapps_MemberEntry v CZend_Gdata_Gapps_GroupQueryu AZend_Gdata_Gapps_GroupFeed t CZend_Gdata_Gapps_GroupEntry%s MZend_Gdata_Gapps_Extension_Quota(r SZend_Gdata_Gapps_Extension_Property(q SZend_Gdata_Gapps_Extension_Nickname$p KZend_Gdata_Gapps_Extension_Name%o MZend_Gdata_Gapps_Extension_Login)n UZend_Gdata_Gapps_Extension_EmailListm 9Zend_Gdata_Gapps_Error-l ]Zend_Gdata_Gapps_EmailListRecipientQuery,k [Zend_Gdata_Gapps_EmailListRecipientFeed-j ]Zend_Gdata_Gapps_EmailListRecipientEntry$i KZend_Gdata_Gapps_EmailListQuery#h IZend_Gdata_Gapps_EmailListFeed$g KZend_Gdata_Gapps_EmailListEntryf +Zend_Gdata_Feede 5Zend_Gdata_Extensiond =Zend_Gdata_Extension_Whoc AZend_Gdata_Extension_Whereb ?Zend_Gdata_Extension_When$a KZend_Gdata_Extension_Visibility&` OZend_Gdata_Extension_Transparency"_ GZend_Gdata_Extension_Reminder-^ ]Zend_Gdata_Extension_RecurrenceException$] KZend_Gdata_Extension_Recurrence \ CZend_Gdata_Extension_Rating'[ QZend_Gdata_Extension_OriginalEvent0Z cZend_Gdata_Extension_OpenSearchTotalResults.Y _Zend_Gdata_Extension_OpenSearchStartIndex0X cZend_Gdata_Extension_OpenSearchItemsPerPage"W GZend_Gdata_Extension_FeedLink*V WZend_Gdata_Extension_ExtendedProperty%U MZend_Gdata_Extension_EventStatus#T IZend_Gdata_Extension_EntryLink"S GZend_Gdata_Extension_Comments&R OZend_Gdata_Extension_AttendeeType(Q SZend_Gdata_Extension_AttendeeStatusP +Zend_Gdata_ExifO 5Zend_Gdata_Exif_Feed#N IZend_Gdata_Exif_Extension_Time#M IZend_Gdata_Exif_Extension_Tags$L KZend_Gdata_Exif_Extension_Model#K IZend_Gdata_Exif_Extension_Make"J GZend_Gdata_Exif_Extension_Iso,I [Zend_Gdata_Exif_Extension_ImageUniqueId$H KZend_Gdata_Exif_Extension_FStop*G WZend_Gdata_Exif_Extension_FocalLength$F KZend_Gdata_Exif_Extension_Flash'E QZend_Gdata_Exif_Extension_Exposure'D QZend_Gdata_Exif_Extension_DistanceC 7Zend_Gdata_Exif_EntryB -Zend_Gdata_EntryA 7Zend_Gdata_DublinCore*@ WZend_Gdata_DublinCore_Extension_Title,? [Zend_Gdata_DublinCore_Extension_Subject+> YZend_Gdata_DublinCore_Extension_Rights.= _Zend_Gdata_DublinCore_Extension_Publisher-< ]Zend_Gdata_DublinCore_Extension_Language/; aZend_Gdata_DublinCore_Extension_Identifier+: YZend_Gdata_DublinCore_Extension_Format09 cZend_Gdata_DublinCore_Extension_Description)8 UZend_Gdata_DublinCore_Extension_Date,7 [Zend_Gdata_DublinCore_Extension_Creator6 +Zend_Gdata_Docs5 7Zend_Gdata_Docs_Query%4 MZend_Gdata_Docs_DocumentListFeed&3 OZend_Gdata_Docs_DocumentListEntry2 9Zend_Gdata_ClientLogin1 3Zend_Gdata_Calendar!0 EZend_Gdata_Calendar_ListFeed"/ GZend_Gdata_Calendar_ListEntry-. ]Zend_Gdata_Calendar_Extension_WebContent+- YZend_Gdata_Calendar_Extension_Timezone9, uZend_Gdata_Calendar_Extension_SendEventNotifications++ YZend_Gdata_Calendar_Extension_Selected+* YZend_Gdata_Calendar_Extension_QuickAdd') QZend_Gdata_Calendar_Extension_Link)( UZend_Gdata_Calendar_Extension_Hidden(' SZend_Gdata_Calendar_Extension_Color.& _Zend_Gdata_Calendar_Extension_AccessLevel#% IZend_Gdata_Calendar_EventQuery   `  yV4hKqJ$h:yG



X
)				g	9		|X3Z/vIX,rImCkG-i:               -d ]Zend_Gdata_Spreadsheets_Extension_Custom/c aZend_Gdata_Spreadsheets_Extension_ColCount+b YZend_Gdata_Spreadsheets_Extension_Cell*a WZend_Gdata_Spreadsheets_DocumentQuery&` OZend_Gdata_Spreadsheets_CellQuery%_ MZend_Gdata_Spreadsheets_CellFeed&^ OZend_Gdata_Spreadsheets_CellEntry] -Zend_Gdata_Query\ /Zend_Gdata_Photos [ CZend_Gdata_Photos_UserQueryZ AZend_Gdata_Photos_UserFeed Y CZend_Gdata_Photos_UserEntryX AZend_Gdata_Photos_TagEntry!W EZend_Gdata_Photos_PhotoQuery V CZend_Gdata_Photos_PhotoFeed!U EZend_Gdata_Photos_PhotoEntry&T OZend_Gdata_Photos_Extension_Width'S QZend_Gdata_Photos_Extension_Weight(R SZend_Gdata_Photos_Extension_Version%Q MZend_Gdata_Photos_Extension_User*P WZend_Gdata_Photos_Extension_Timestamp*O WZend_Gdata_Photos_Extension_Thumbnail%N MZend_Gdata_Photos_Extension_Size)M UZend_Gdata_Photos_Extension_Rotation+L YZend_Gdata_Photos_Extension_QuotaLimit-K ]Zend_Gdata_Photos_Extension_QuotaCurrent)J UZend_Gdata_Photos_Extension_Position(I SZend_Gdata_Photos_Extension_PhotoId3H iZend_Gdata_Photos_Extension_NumPhotosRemaining*G WZend_Gdata_Photos_Extension_NumPhotos)F UZend_Gdata_Photos_Extension_Nickname%E MZend_Gdata_Photos_Extension_Name2D gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum)C UZend_Gdata_Photos_Extension_Location#B IZend_Gdata_Photos_Extension_Id'A QZend_Gdata_Photos_Extension_Height2@ gZend_Gdata_Photos_Extension_CommentingEnabled-? ]Zend_Gdata_Photos_Extension_CommentCount'> QZend_Gdata_Photos_Extension_Client)= UZend_Gdata_Photos_Extension_Checksum*< WZend_Gdata_Photos_Extension_BytesUsed(; SZend_Gdata_Photos_Extension_AlbumId': QZend_Gdata_Photos_Extension_Access#9 IZend_Gdata_Photos_CommentEntry!8 EZend_Gdata_Photos_AlbumQuery 7 CZend_Gdata_Photos_AlbumFeed!6 EZend_Gdata_Photos_AlbumEntry5 3Zend_Gdata_MimeFile4 ?Zend_Gdata_MimeBodyString3 AZend_Gdata_MediaMimeStream2 -Zend_Gdata_Media1 7Zend_Gdata_Media_Feed*0 WZend_Gdata_Media_Extension_MediaTitle./ _Zend_Gdata_Media_Extension_MediaThumbnail). UZend_Gdata_Media_Extension_MediaText0- cZend_Gdata_Media_Extension_MediaRestriction+, YZend_Gdata_Media_Extension_MediaRating++ YZend_Gdata_Media_Extension_MediaPlayer-* ]Zend_Gdata_Media_Extension_MediaKeywords)) UZend_Gdata_Media_Extension_MediaHash*( WZend_Gdata_Media_Extension_MediaGroup0' cZend_Gdata_Media_Extension_MediaDescription+& YZend_Gdata_Media_Extension_MediaCredit.% _Zend_Gdata_Media_Extension_MediaCopyright,$ [Zend_Gdata_Media_Extension_MediaContent-# ]Zend_Gdata_Media_Extension_MediaCategory" 9Zend_Gdata_Media_Entry! AZend_Gdata_Kind_EventEntry  7Zend_Gdata_HttpClient* WZend_Gdata_HttpAdapterStreamingSocket) UZend_Gdata_HttpAdapterStreamingProxy /Zend_Gdata_Health ;Zend_Gdata_Health_Query& OZend_Gdata_Health_ProfileListFeed' QZend_Gdata_Health_ProfileListEntry" GZend_Gdata_Health_ProfileFeed# IZend_Gdata_Health_ProfileEntry$ KZend_Gdata_Health_Extension_Ccr )Zend_Gdata_Geo 3Zend_Gdata_Geo_Feed$ KZend_Gdata_Geo_Extension_GmlPos& OZend_Gdata_Geo_Extension_GmlPoint) UZend_Gdata_Geo_Extension_GeoRssWhere 5Zend_Gdata_Geo_Entry -Zend_Gdata_Gbase" GZend_Gdata_Gbase_SnippetQuery! EZend_Gdata_Gbase_SnippetFeed" GZend_Gdata_Gbase_SnippetEntry 9Zend_Gdata_Gbase_Query AZend_Gdata_Gbase_ItemQuery
 ?Zend_Gdata_Gbase_ItemFeed	 AZend_Gdata_Gbase_ItemEntry 7Zend_Gdata_Gbase_Feed- ]Zend_Gdata_Gbase_Extension_BaseAttribute 9Zend_Gdata_Gbase_Entry -Zend_Gdata_Gapps   \  zPrI!V-yHd6


{
K
				f	6	wMe5	U/
]0`:lF#
}I&zV2                                           "@ GZend_Http_UserAgent_Exception? ?Zend_Http_UserAgent_Email > CZend_Http_UserAgent_Desktop = CZend_Http_UserAgent_Console < CZend_Http_UserAgent_Checker; ;Zend_Http_UserAgent_Bot': QZend_Http_UserAgent_AbstractDevice9 1Zend_Http_Response8 ?Zend_Http_Response_Stream7 AZend_Http_Header_SetCookie06 cZend_Http_Header_Exception_RuntimeException85 sZend_Http_Header_Exception_InvalidArgumentException4 3Zend_Http_Exception3 3Zend_Http_CookieJar2 -Zend_Http_Cookie1 -Zend_Http_Client0 AZend_Http_Client_Exception"/ GZend_Http_Client_Adapter_Test$. KZend_Http_Client_Adapter_Socket#- IZend_Http_Client_Adapter_Proxy', QZend_Http_Client_Adapter_Exception"+ GZend_Http_Client_Adapter_Curl* !Zend_Gdata) 1Zend_Gdata_YouTube"( GZend_Gdata_YouTube_VideoQuery!' EZend_Gdata_YouTube_VideoFeed"& GZend_Gdata_YouTube_VideoEntry(% SZend_Gdata_YouTube_UserProfileEntry($ SZend_Gdata_YouTube_SubscriptionFeed)# UZend_Gdata_YouTube_SubscriptionEntry)" UZend_Gdata_YouTube_PlaylistVideoFeed*! WZend_Gdata_YouTube_PlaylistVideoEntry(  SZend_Gdata_YouTube_PlaylistListFeed) UZend_Gdata_YouTube_PlaylistListEntry" GZend_Gdata_YouTube_MediaEntry! EZend_Gdata_YouTube_InboxFeed" GZend_Gdata_YouTube_InboxEntry) UZend_Gdata_YouTube_Extension_VideoId* WZend_Gdata_YouTube_Extension_Username* WZend_Gdata_YouTube_Extension_Uploaded' QZend_Gdata_YouTube_Extension_Token( SZend_Gdata_YouTube_Extension_Status, [Zend_Gdata_YouTube_Extension_Statistics' QZend_Gdata_YouTube_Extension_State( SZend_Gdata_YouTube_Extension_School- ]Zend_Gdata_YouTube_Extension_ReleaseDate. _Zend_Gdata_YouTube_Extension_Relationship* WZend_Gdata_YouTube_Extension_Recorded& OZend_Gdata_YouTube_Extension_Racy- ]Zend_Gdata_YouTube_Extension_QueryString) UZend_Gdata_YouTube_Extension_Private* WZend_Gdata_YouTube_Extension_Position/ aZend_Gdata_YouTube_Extension_PlaylistTitle, [Zend_Gdata_YouTube_Extension_PlaylistId,
 [Zend_Gdata_YouTube_Extension_Occupation)	 UZend_Gdata_YouTube_Extension_NoEmbed' QZend_Gdata_YouTube_Extension_Music( SZend_Gdata_YouTube_Extension_Movies- ]Zend_Gdata_YouTube_Extension_MediaRating, [Zend_Gdata_YouTube_Extension_MediaGroup- ]Zend_Gdata_YouTube_Extension_MediaCredit. _Zend_Gdata_YouTube_Extension_MediaContent* WZend_Gdata_YouTube_Extension_Location& OZend_Gdata_YouTube_Extension_Link*  WZend_Gdata_YouTube_Extension_LastName* WZend_Gdata_YouTube_Extension_Hometown)~ UZend_Gdata_YouTube_Extension_Hobbies(} SZend_Gdata_YouTube_Extension_Gender+| YZend_Gdata_YouTube_Extension_FirstName*{ WZend_Gdata_YouTube_Extension_Duration-z ]Zend_Gdata_YouTube_Extension_Description+y YZend_Gdata_YouTube_Extension_CountHint)x UZend_Gdata_YouTube_Extension_Control)w UZend_Gdata_YouTube_Extension_Company'v QZend_Gdata_YouTube_Extension_Books%u MZend_Gdata_YouTube_Extension_Age)t UZend_Gdata_YouTube_Extension_AboutMe#s IZend_Gdata_YouTube_ContactFeed$r KZend_Gdata_YouTube_ContactEntry#q IZend_Gdata_YouTube_CommentFeed$p KZend_Gdata_YouTube_CommentEntry$o KZend_Gdata_YouTube_ActivityFeed%n MZend_Gdata_YouTube_ActivityEntrym ;Zend_Gdata_Spreadsheets*l WZend_Gdata_Spreadsheets_WorksheetFeed+k YZend_Gdata_Spreadsheets_WorksheetEntry,j [Zend_Gdata_Spreadsheets_SpreadsheetFeed-i ]Zend_Gdata_Spreadsheets_SpreadsheetEntry&h OZend_Gdata_Spreadsheets_ListQuery%g MZend_Gdata_Spreadsheets_ListFeed&f OZend_Gdata_Spreadsheets_ListEntry/e aZend_Gdata_Spreadsheets_Extension_RowCount   q  Z+
R w]A*[9kM9




{
_
=
 						e	L	-	jB#a'^?rQ*|[B.lI'rU6qZ6        1 ;Zend_Mail_Protocol_Imap!0 EZend_Mail_Protocol_Exception / CZend_Mail_Protocol_Abstract. )Zend_Mail_Part- 3Zend_Mail_Part_File, /Zend_Mail_Message+ 9Zend_Mail_Message_File* 3Zend_Mail_Exception) Zend_Log ( CZend_Log_Writer_ZendMonitor' 9Zend_Log_Writer_Syslog& 9Zend_Log_Writer_Stream% 5Zend_Log_Writer_Null$ 5Zend_Log_Writer_Mock# 5Zend_Log_Writer_Mail" ;Zend_Log_Writer_Firebug! 1Zend_Log_Writer_Db  =Zend_Log_Writer_Abstract 9Zend_Log_Formatter_Xml ?Zend_Log_Formatter_Simple AZend_Log_Formatter_Firebug  CZend_Log_Formatter_Abstract =Zend_Log_Filter_Suppress =Zend_Log_Filter_Priority ;Zend_Log_Filter_Message =Zend_Log_Filter_Abstract 1Zend_Log_Exception #Zend_Locale -Zend_Locale_Math =Zend_Locale_Math_PhpMath AZend_Locale_Math_Exception 1Zend_Locale_Format 7Zend_Locale_Exception -Zend_Locale_Data! EZend_Locale_Data_Translation #Zend_Loader# IZend_Loader_StandardAutoloader =Zend_Loader_PluginLoader' QZend_Loader_PluginLoader_Exception
 7Zend_Loader_Exception3	 iZend_Loader_Exception_InvalidArgumentException# IZend_Loader_ClassMapAutoloader" GZend_Loader_AutoloaderFactory 9Zend_Loader_Autoloader$ KZend_Loader_Autoloader_Resource Zend_Ldap )Zend_Ldap_Node 7Zend_Ldap_Node_Schema# IZend_Ldap_Node_Schema_OpenLdap/  aZend_Ldap_Node_Schema_ObjectClass_OpenLdap6 oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectory~ AZend_Ldap_Node_Schema_Item1} eZend_Ldap_Node_Schema_AttributeType_OpenLdap8| sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory*{ WZend_Ldap_Node_Schema_ActiveDirectoryz 9Zend_Ldap_Node_RootDse$y KZend_Ldap_Node_RootDse_OpenLdap&x OZend_Ldap_Node_RootDse_eDirectory+w YZend_Ldap_Node_RootDse_ActiveDirectoryv ?Zend_Ldap_Node_Collection$u KZend_Ldap_Node_ChildrenIteratort ;Zend_Ldap_Node_Abstracts 9Zend_Ldap_Ldif_Encoderr -Zend_Ldap_Filterq ;Zend_Ldap_Filter_Stringp 3Zend_Ldap_Filter_Oro 5Zend_Ldap_Filter_Notn 7Zend_Ldap_Filter_Maskm =Zend_Ldap_Filter_Logicall AZend_Ldap_Filter_Exceptionk 5Zend_Ldap_Filter_Andj ?Zend_Ldap_Filter_Abstracti 3Zend_Ldap_Exceptionh %Zend_Ldap_Dng 3Zend_Ldap_Converter"f GZend_Ldap_Converter_Exceptione 5Zend_Ldap_Collection*d WZend_Ldap_Collection_Iterator_Defaultc 3Zend_Ldap_Attributeb #Zend_Layouta 7Zend_Layout_Exception)` UZend_Layout_Controller_Plugin_Layout0_ cZend_Layout_Controller_Action_Helper_Layout^ Zend_Json] -Zend_Json_Server\ 5Zend_Json_Server_Smd![ EZend_Json_Server_Smd_ServiceZ ?Zend_Json_Server_Response#Y IZend_Json_Server_Response_HttpX =Zend_Json_Server_Request"W GZend_Json_Server_Request_HttpV AZend_Json_Server_ExceptionU 9Zend_Json_Server_ErrorT 9Zend_Json_Server_CacheS )Zend_Json_ExprR 3Zend_Json_ExceptionQ /Zend_Json_EncoderP /Zend_Json_DecoderO 3Zend_Http_UserAgent"N GZend_Http_UserAgent_ValidatorM =Zend_Http_UserAgent_Text(L SZend_Http_UserAgent_Storage_Session.K _Zend_Http_UserAgent_Storage_NonPersistent*J WZend_Http_UserAgent_Storage_ExceptionI =Zend_Http_UserAgent_SpamH ?Zend_Http_UserAgent_Probe G CZend_Http_UserAgent_OfflineF AZend_Http_UserAgent_MobileE =Zend_Http_UserAgent_Feed+D YZend_Http_UserAgent_Features_Exception3C iZend_Http_UserAgent_Features_Adapter_TeraWurfl5B mZend_Http_UserAgent_Features_Adapter_DeviceAtlas2A gZend_Http_UserAgent_Features_Adapter_Browscap   q  ]=gE&wV1rKY?!




|
[
7
						`	?	$	qS8uY4wcJ.V"Y(c8lN( z]E+            " 3Zend_Oauth_Consumer! /Zend_Oauth_Config  /Zend_Oauth_Client +Zend_Navigation 5Zend_Navigation_Page =Zend_Navigation_Page_Uri =Zend_Navigation_Page_Mvc ?Zend_Navigation_Exception ?Zend_Navigation_Container$ KZend_Mobile_Push_Test_ApnsProxy" GZend_Mobile_Push_Response_Gcm 7Zend_Mobile_Push_Mpns" GZend_Mobile_Push_Message_Mpns( SZend_Mobile_Push_Message_Mpns_Toast' QZend_Mobile_Push_Message_Mpns_Tile& OZend_Mobile_Push_Message_Mpns_Raw! EZend_Mobile_Push_Message_Gcm' QZend_Mobile_Push_Message_Exception" GZend_Mobile_Push_Message_Apns& OZend_Mobile_Push_Message_Abstract 5Zend_Mobile_Push_Gcm AZend_Mobile_Push_Exception1 eZend_Mobile_Push_Exception_ServerUnavailable- ]Zend_Mobile_Push_Exception_QuotaExceeded,
 [Zend_Mobile_Push_Exception_InvalidTopic,	 [Zend_Mobile_Push_Exception_InvalidToken3 iZend_Mobile_Push_Exception_InvalidRegistration. _Zend_Mobile_Push_Exception_InvalidPayload0 cZend_Mobile_Push_Exception_InvalidAuthToken3 iZend_Mobile_Push_Exception_DeviceQuotaExceeded 7Zend_Mobile_Push_Apns ?Zend_Mobile_Push_Abstract 7Zend_Mobile_Exception Zend_Mime  )Zend_Mime_Part /Zend_Mime_Message~ 3Zend_Mime_Exception} -Zend_Mime_Decode| #Zend_Memory{ /Zend_Memory_Valuez 3Zend_Memory_Managery 7Zend_Memory_Exceptionx 7Zend_Memory_Container"w GZend_Memory_Container_Movable!v EZend_Memory_Container_Locked!u EZend_Memory_AccessControllert 3Zend_Measure_Weights 3Zend_Measure_Volume%r MZend_Measure_Viscosity_Kinematic#q IZend_Measure_Viscosity_Dynamicp 3Zend_Measure_Torqueo /Zend_Measure_Timen =Zend_Measure_Temperaturem 1Zend_Measure_Speedl 7Zend_Measure_Pressurek 1Zend_Measure_Powerj 3Zend_Measure_Numberi 9Zend_Measure_Lightnessh 3Zend_Measure_Lengthg ?Zend_Measure_Illuminationf 9Zend_Measure_Frequencye 1Zend_Measure_Forced =Zend_Measure_Flow_Volumec 9Zend_Measure_Flow_Moleb 9Zend_Measure_Flow_Massa 9Zend_Measure_Exception` 3Zend_Measure_Energy_ 5Zend_Measure_Density^ 5Zend_Measure_Current ] CZend_Measure_Cooking_Weight \ CZend_Measure_Cooking_Volume[ =Zend_Measure_CapacitanceZ 3Zend_Measure_BinaryY /Zend_Measure_AreaX 1Zend_Measure_AngleW ?Zend_Measure_AccelerationV 7Zend_Measure_AbstractU #Zend_MarkupT 7Zend_Markup_TokenListS /Zend_Markup_Token*R WZend_Markup_Renderer_RendererAbstractQ ?Zend_Markup_Renderer_Html"P GZend_Markup_Renderer_Html_Url#O IZend_Markup_Renderer_Html_List"N GZend_Markup_Renderer_Html_Img+M YZend_Markup_Renderer_Html_HtmlAbstract#L IZend_Markup_Renderer_Html_Code#K IZend_Markup_Renderer_Exception!J EZend_Markup_Parser_ExceptionI ?Zend_Markup_Parser_BbcodeH 7Zend_Markup_ExceptionG Zend_MailF =Zend_Mail_Transport_Smtp!E EZend_Mail_Transport_SendmailD =Zend_Mail_Transport_File"C GZend_Mail_Transport_Exception!B EZend_Mail_Transport_AbstractA /Zend_Mail_Storage'@ QZend_Mail_Storage_Writable_Maildir? 9Zend_Mail_Storage_Pop3> 9Zend_Mail_Storage_Mbox= ?Zend_Mail_Storage_Maildir< 9Zend_Mail_Storage_Imap; =Zend_Mail_Storage_Folder": GZend_Mail_Storage_Folder_Mbox%9 MZend_Mail_Storage_Folder_Maildir 8 CZend_Mail_Storage_Exception7 AZend_Mail_Storage_Abstract6 ;Zend_Mail_Protocol_Smtp'5 QZend_Mail_Protocol_Smtp_Auth_Plain'4 QZend_Mail_Protocol_Smtp_Auth_Login)3 UZend_Mail_Protocol_Smtp_Auth_Crammd52 ;Zend_Mail_Protocol_Pop3   o  pP8T3}Z<pK#_1



p
M
/
					q	S	1	mM1mL4
mL0SxS1tS,uN.W6          ?Zend_Pdf_FileParser_Image" GZend_Pdf_FileParser_Image_Png =Zend_Pdf_FileParser_Font& OZend_Pdf_FileParser_Font_OpenType/ aZend_Pdf_FileParser_Font_OpenType_TrueType 1Zend_Pdf_Exception ;Zend_Pdf_ElementFactory"
 GZend_Pdf_ElementFactory_Proxy	 -Zend_Pdf_Element ;Zend_Pdf_Element_String# IZend_Pdf_Element_String_Binary ;Zend_Pdf_Element_Stream AZend_Pdf_Element_Reference% MZend_Pdf_Element_Reference_Table' QZend_Pdf_Element_Reference_Context ;Zend_Pdf_Element_Object# IZend_Pdf_Element_Object_Stream  =Zend_Pdf_Element_Numeric 7Zend_Pdf_Element_Null~ 7Zend_Pdf_Element_Name } CZend_Pdf_Element_Dictionary| =Zend_Pdf_Element_Boolean{ 9Zend_Pdf_Element_Arrayz 5Zend_Pdf_Destinationy ?Zend_Pdf_Destination_Zoom!x EZend_Pdf_Destination_Unknownw AZend_Pdf_Destination_Named'v QZend_Pdf_Destination_FitVertically&u OZend_Pdf_Destination_FitRectangle)t UZend_Pdf_Destination_FitHorizontally2s gZend_Pdf_Destination_FitBoundingBoxVertically4r kZend_Pdf_Destination_FitBoundingBoxHorizontally(q SZend_Pdf_Destination_FitBoundingBoxp =Zend_Pdf_Destination_Fit"o GZend_Pdf_Destination_Explicitn )Zend_Pdf_Colorm 1Zend_Pdf_Color_Rgbl 3Zend_Pdf_Color_Htmlk =Zend_Pdf_Color_GrayScalej 3Zend_Pdf_Color_Cmyki 'Zend_Pdf_Cmaph AZend_Pdf_Cmap_TrimmedTable!g EZend_Pdf_Cmap_SegmentToDeltaf AZend_Pdf_Cmap_ByteEncoding&e OZend_Pdf_Cmap_ByteEncoding_Staticd +Zend_Pdf_Canvasc =Zend_Pdf_Canvas_Abstractb 3Zend_Pdf_Annotationa =Zend_Pdf_Annotation_Text` AZend_Pdf_Annotation_Markup_ =Zend_Pdf_Annotation_Link'^ QZend_Pdf_Annotation_FileAttachment] +Zend_Pdf_Action\ 3Zend_Pdf_Action_URI[ ;Zend_Pdf_Action_UnknownZ 7Zend_Pdf_Action_TransY 9Zend_Pdf_Action_ThreadX AZend_Pdf_Action_SubmitFormW 7Zend_Pdf_Action_Sound V CZend_Pdf_Action_SetOCGStateU ?Zend_Pdf_Action_ResetFormT ?Zend_Pdf_Action_RenditionS 7Zend_Pdf_Action_NamedR 7Zend_Pdf_Action_MovieQ 9Zend_Pdf_Action_LaunchP AZend_Pdf_Action_JavaScriptO AZend_Pdf_Action_ImportDataN 5Zend_Pdf_Action_HideM 7Zend_Pdf_Action_GoToRL 7Zend_Pdf_Action_GoToEK AZend_Pdf_Action_GoTo3DViewJ 5Zend_Pdf_Action_GoToI )Zend_Paginator-H ]Zend_Paginator_SerializableLimitIterator*G WZend_Paginator_ScrollingStyle_Sliding*F WZend_Paginator_ScrollingStyle_Jumping*E WZend_Paginator_ScrollingStyle_Elastic&D OZend_Paginator_ScrollingStyle_AllC =Zend_Paginator_Exception B CZend_Paginator_Adapter_Null$A KZend_Paginator_Adapter_Iterator)@ UZend_Paginator_Adapter_DbTableSelect$? KZend_Paginator_Adapter_DbSelect!> EZend_Paginator_Adapter_Array= #Zend_OpenId< 5Zend_OpenId_Provider; ?Zend_OpenId_Provider_User&: OZend_OpenId_Provider_User_Session!9 EZend_OpenId_Provider_Storage&8 OZend_OpenId_Provider_Storage_File7 7Zend_OpenId_Extension6 AZend_OpenId_Extension_Sreg5 7Zend_OpenId_Exception4 5Zend_OpenId_Consumer!3 EZend_OpenId_Consumer_Storage&2 OZend_OpenId_Consumer_Storage_File1 !Zend_Oauth0 -Zend_Oauth_Token/ =Zend_Oauth_Token_Request'. QZend_Oauth_Token_AuthorizedRequest- ;Zend_Oauth_Token_Access+, YZend_Oauth_Signature_SignatureAbstract+ =Zend_Oauth_Signature_Rsa#* IZend_Oauth_Signature_Plaintext) ?Zend_Oauth_Signature_Hmac( +Zend_Oauth_Http' ;Zend_Oauth_Http_Utility&& OZend_Oauth_Http_UserAuthorization!% EZend_Oauth_Http_RequestToken $ CZend_Oauth_Http_AccessToken# 5Zend_Oauth_Exception   e  fF%w`F%_;W*v8


}
=
			T	dEhF,^M$eL(tO/U5iH&dN+                v ;Zend_Rest_Client_Result&u OZend_Rest_Client_Result_Exceptiont AZend_Rest_Client_Exceptions 'Zend_Registryr =Zend_Reflection_Propertyq ?Zend_Reflection_Parameterp 9Zend_Reflection_Methodo =Zend_Reflection_Functionn 5Zend_Reflection_Filem ?Zend_Reflection_Extensionl ?Zend_Reflection_Exceptionk =Zend_Reflection_Docblock!j EZend_Reflection_Docblock_Tag(i SZend_Reflection_Docblock_Tag_Return'h QZend_Reflection_Docblock_Tag_Paramg 7Zend_Reflection_Classf !Zend_Queuee 9Zend_Queue_Stomp_Framed ;Zend_Queue_Stomp_Client'c QZend_Queue_Stomp_Client_Connectionb 1Zend_Queue_Message#a IZend_Queue_Message_PlatformJob ` CZend_Queue_Message_Iterator_ 5Zend_Queue_Exception(^ SZend_Queue_Adapter_PlatformJobQueue] ;Zend_Queue_Adapter_Null!\ EZend_Queue_Adapter_Memcacheq[ 7Zend_Queue_Adapter_Db Z CZend_Queue_Adapter_Db_Queue"Y GZend_Queue_Adapter_Db_MessageX =Zend_Queue_Adapter_Array'W QZend_Queue_Adapter_AdapterAbstract V CZend_Queue_Adapter_ActivemqU -Zend_ProgressBarT AZend_ProgressBar_ExceptionS =Zend_ProgressBar_Adapter$R KZend_ProgressBar_Adapter_JsPush$Q KZend_ProgressBar_Adapter_JsPull'P QZend_ProgressBar_Adapter_Exception%O MZend_ProgressBar_Adapter_ConsoleN Zend_Pdf!M EZend_Pdf_UpdateInfoContainerL -Zend_Pdf_TrailerK ;Zend_Pdf_Trailer_KeeperJ AZend_Pdf_Trailer_GeneratorI +Zend_Pdf_TargetH )Zend_Pdf_StyleG 7Zend_Pdf_StringParserF /Zend_Pdf_ResourceE ?Zend_Pdf_Resource_Unified#D IZend_Pdf_Resource_ImageFactoryC ;Zend_Pdf_Resource_Image!B EZend_Pdf_Resource_Image_Tiff A CZend_Pdf_Resource_Image_Png!@ EZend_Pdf_Resource_Image_Jpeg$? KZend_Pdf_Resource_GraphicsState> 9Zend_Pdf_Resource_Font!= EZend_Pdf_Resource_Font_Type0"< GZend_Pdf_Resource_Font_Simple+; YZend_Pdf_Resource_Font_Simple_Standard8: sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats69 oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman78 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic;7 yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic56 mZend_Pdf_Resource_Font_Simple_Standard_TimesBold25 gZend_Pdf_Resource_Font_Simple_Standard_Symbol<4 {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueA3 Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique92 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold51 mZend_Pdf_Resource_Font_Simple_Standard_Helvetica:0 wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique>/ Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique7. qZend_Pdf_Resource_Font_Simple_Standard_CourierBold3- iZend_Pdf_Resource_Font_Simple_Standard_Courier), UZend_Pdf_Resource_Font_Simple_Parsed2+ gZend_Pdf_Resource_Font_Simple_Parsed_TrueType** WZend_Pdf_Resource_Font_FontDescriptor%) MZend_Pdf_Resource_Font_Extracted#( IZend_Pdf_Resource_Font_CidFont,' [Zend_Pdf_Resource_Font_CidFont_TrueType & CZend_Pdf_Resource_Extractor$% KZend_Pdf_Resource_ContentStream3$ iZend_Pdf_RecursivelyIteratableObjectsContainer# +Zend_Pdf_Parser" 'Zend_Pdf_Page! -Zend_Pdf_Outline  ;Zend_Pdf_Outline_Loaded =Zend_Pdf_Outline_Created /Zend_Pdf_NameTree )Zend_Pdf_Image 'Zend_Pdf_Font ?Zend_Pdf_Filter_RunLength  CZend_Pdf_Filter_Compression$ KZend_Pdf_Filter_Compression_Lzw& OZend_Pdf_Filter_Compression_Flate =Zend_Pdf_Filter_AsciiHex ;Zend_Pdf_Filter_Ascii85" GZend_Pdf_FileParserDataSource) UZend_Pdf_FileParserDataSource_String' QZend_Pdf_FileParserDataSource_File 3Zend_Pdf_FileParser   R  sZ<l0`$_!|S%



~
Z
5
				r	G	qBoFU%a2~H`*sEwJ             /H aZend_Search_Lucene_Search_Weight_MultiTerm+G YZend_Search_Lucene_Search_Weight_Empty-F ]Zend_Search_Lucene_Search_Weight_Boolean)E UZend_Search_Lucene_Search_Similarity1D eZend_Search_Lucene_Search_Similarity_Default)C UZend_Search_Lucene_Search_QueryToken3B iZend_Search_Lucene_Search_QueryParserException1A eZend_Search_Lucene_Search_QueryParserContext*@ WZend_Search_Lucene_Search_QueryParser)? UZend_Search_Lucene_Search_QueryLexer'> QZend_Search_Lucene_Search_QueryHit)= UZend_Search_Lucene_Search_QueryEntry.< _Zend_Search_Lucene_Search_QueryEntry_Term2; gZend_Search_Lucene_Search_QueryEntry_Subquery0: cZend_Search_Lucene_Search_QueryEntry_Phrase$9 KZend_Search_Lucene_Search_Query-8 ]Zend_Search_Lucene_Search_Query_Wildcard)7 UZend_Search_Lucene_Search_Query_Term*6 WZend_Search_Lucene_Search_Query_Range25 gZend_Search_Lucene_Search_Query_Preprocessing74 qZend_Search_Lucene_Search_Query_Preprocessing_Term93 uZend_Search_Lucene_Search_Query_Preprocessing_Phrase82 sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy+1 YZend_Search_Lucene_Search_Query_Phrase.0 _Zend_Search_Lucene_Search_Query_MultiTerm2/ gZend_Search_Lucene_Search_Query_Insignificant*. WZend_Search_Lucene_Search_Query_Fuzzy*- WZend_Search_Lucene_Search_Query_Empty,, [Zend_Search_Lucene_Search_Query_Boolean2+ gZend_Search_Lucene_Search_Highlighter_Default:* wZend_Search_Lucene_Search_BooleanExpressionRecognizer) =Zend_Search_Lucene_Proxy%( MZend_Search_Lucene_PriorityQueue/' aZend_Search_Lucene_Interface_MultiSearcher%& MZend_Search_Lucene_MultiSearcher#% IZend_Search_Lucene_LockManager$$ KZend_Search_Lucene_Index_Writer0# cZend_Search_Lucene_Index_TermsPriorityQueue&" OZend_Search_Lucene_Index_TermInfo"! GZend_Search_Lucene_Index_Term+  YZend_Search_Lucene_Index_SegmentWriter8 sZend_Search_Lucene_Index_SegmentWriter_StreamWriter: wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter+ YZend_Search_Lucene_Index_SegmentMerger) UZend_Search_Lucene_Index_SegmentInfo' QZend_Search_Lucene_Index_FieldInfo( SZend_Search_Lucene_Index_DocsFilter. _Zend_Search_Lucene_Index_DictionaryLoader! EZend_Search_Lucene_FSMAction 9Zend_Search_Lucene_FSM =Zend_Search_Lucene_Field! EZend_Search_Lucene_Exception  CZend_Search_Lucene_Document% MZend_Search_Lucene_Document_Xlsx% MZend_Search_Lucene_Document_Pptx( SZend_Search_Lucene_Document_OpenXml% MZend_Search_Lucene_Document_Html* WZend_Search_Lucene_Document_Exception% MZend_Search_Lucene_Document_Docx, [Zend_Search_Lucene_Analysis_TokenFilter6 oZend_Search_Lucene_Analysis_TokenFilter_StopWords7 qZend_Search_Lucene_Analysis_TokenFilter_ShortWords:
 wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf86	 oZend_Search_Lucene_Analysis_TokenFilter_LowerCase& OZend_Search_Lucene_Analysis_Token) UZend_Search_Lucene_Analysis_Analyzer0 cZend_Search_Lucene_Analysis_Analyzer_Common8 sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumI Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive5 mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8F Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive8 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumI  Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive5 mZend_Search_Lucene_Analysis_Analyzer_Common_TextF~ Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive} 7Zend_Search_Exception| -Zend_Rest_Server{ AZend_Rest_Server_Exceptionz +Zend_Rest_Routey 3Zend_Rest_Exceptionx 5Zend_Rest_Controllerw -Zend_Rest_Client   _  yAV;sKu[<e<



p
G
					u	@	`7b<
a8	uT*rL-zL'c#sN'                       ' CZend_Service_Delicious_Post%& MZend_Service_Delicious_Exception#% IZend_Service_Console_Exception!$ EZend_Service_Console_Command7# qZend_Service_Console_Command_ParameterSource_StdIn8" sZend_Service_Console_Command_ParameterSource_Prompt5! mZend_Service_Console_Command_ParameterSource_Env<  {Zend_Service_Console_Command_ParameterSource_ConfigFile6 oZend_Service_Console_Command_ParameterSource_Argv  CZend_Service_Audioscrobbler 3Zend_Service_Amazon ;Zend_Service_Amazon_Sqs& OZend_Service_Amazon_Sqs_Exception! EZend_Service_Amazon_SimpleDb* WZend_Service_Amazon_SimpleDb_Response& OZend_Service_Amazon_SimpleDb_Page+ YZend_Service_Amazon_SimpleDb_Exception+ YZend_Service_Amazon_SimpleDb_Attribute' QZend_Service_Amazon_SimilarProduct 9Zend_Service_Amazon_S3" GZend_Service_Amazon_S3_Stream% MZend_Service_Amazon_S3_Exception" GZend_Service_Amazon_ResultSet ?Zend_Service_Amazon_Query! EZend_Service_Amazon_OfferSet ?Zend_Service_Amazon_Offer& OZend_Service_Amazon_ListmaniaList =Zend_Service_Amazon_Item ?Zend_Service_Amazon_Image"
 GZend_Service_Amazon_Exception(	 SZend_Service_Amazon_EditorialReview ;Zend_Service_Amazon_Ec2+ YZend_Service_Amazon_Ec2_Securitygroups% MZend_Service_Amazon_Ec2_Response# IZend_Service_Amazon_Ec2_Region$ KZend_Service_Amazon_Ec2_Keypair% MZend_Service_Amazon_Ec2_Instance- ]Zend_Service_Amazon_Ec2_Instance_Windows. _Zend_Service_Amazon_Ec2_Instance_Reserved"  GZend_Service_Amazon_Ec2_Image& OZend_Service_Amazon_Ec2_Exception&~ OZend_Service_Amazon_Ec2_Elasticip } CZend_Service_Amazon_Ec2_Ebs'| QZend_Service_Amazon_Ec2_CloudWatch.{ _Zend_Service_Amazon_Ec2_Availabilityzones%z MZend_Service_Amazon_Ec2_Abstract'y QZend_Service_Amazon_CustomerReview'x QZend_Service_Amazon_Authentication*w WZend_Service_Amazon_Authentication_V2*v WZend_Service_Amazon_Authentication_V1*u WZend_Service_Amazon_Authentication_S31t eZend_Service_Amazon_Authentication_Exception$s KZend_Service_Amazon_Accessories!r EZend_Service_Amazon_Abstractq 5Zend_Service_Akismetp 7Zend_Service_Abstracto 9Zend_Server_Reflection'n QZend_Server_Reflection_ReturnValue%m MZend_Server_Reflection_Prototype%l MZend_Server_Reflection_Parameter k CZend_Server_Reflection_Node"j GZend_Server_Reflection_Method$i KZend_Server_Reflection_Function-h ]Zend_Server_Reflection_Function_Abstract%g MZend_Server_Reflection_Exception!f EZend_Server_Reflection_Class!e EZend_Server_Method_Prototype!d EZend_Server_Method_Parameter"c GZend_Server_Method_Definition b CZend_Server_Method_Callbacka 7Zend_Server_Exception` 9Zend_Server_Definition_ /Zend_Server_Cache^ 5Zend_Server_Abstract] +Zend_Serializer\ ?Zend_Serializer_Exception![ EZend_Serializer_Adapter_Wddx)Z UZend_Serializer_Adapter_PythonPickle)Y UZend_Serializer_Adapter_PhpSerialize$X KZend_Serializer_Adapter_PhpCode!W EZend_Serializer_Adapter_Json%V MZend_Serializer_Adapter_Igbinary!U EZend_Serializer_Adapter_Amf3!T EZend_Serializer_Adapter_Amf0,S [Zend_Serializer_Adapter_AdapterAbstractR 1Zend_Search_Lucene0Q cZend_Search_Lucene_TermStreamsPriorityQueue$P KZend_Search_Lucene_Storage_File+O YZend_Search_Lucene_Storage_File_Memory/N aZend_Search_Lucene_Storage_File_Filesystem)M UZend_Search_Lucene_Storage_Directory4L kZend_Search_Lucene_Storage_Directory_Filesystem%K MZend_Search_Lucene_Search_Weight*J WZend_Search_Lucene_Search_Weight_Term,I [Zend_Search_Lucene_Search_Weight_Phrase   6  Js,` ^.Z


I			=5gfK1[R                                                                         L] Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbersB\ Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract9[ uZend_Service_DeveloperGarden_Request_SendSms_SendSMS>Z Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS9Y uZend_Service_DeveloperGarden_Request_RequestAbstractIX Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequestEW Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest3V iZend_Service_DeveloperGarden_Request_ExceptionRU %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequestYT 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequestdS IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequestQR #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequestRQ %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequestYP 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequestdO IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequestQN #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequestOM Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequestUL +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequestUK +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequestVJ -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequestaI CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequestZH 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequestTG )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequestRF %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequestYE 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequestQD #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequestQC #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequestaB CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequestNA Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformationL@ Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalanceJ? Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool-> ]Zend_Service_DeveloperGarden_LocalSearch>= Zend_Service_DeveloperGarden_LocalSearch_SearchParameters7< qZend_Service_DeveloperGarden_LocalSearch_Exception,; [Zend_Service_DeveloperGarden_IpLocation6: oZend_Service_DeveloperGarden_IpLocation_IpAddress+9 YZend_Service_DeveloperGarden_Exception,8 [Zend_Service_DeveloperGarden_Credential07 cZend_Service_DeveloperGarden_ConferenceCallC6 Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatusC5 Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail<4 {Zend_Service_DeveloperGarden_ConferenceCall_Participant:3 wZend_Service_DeveloperGarden_ConferenceCall_ExceptionD2 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceScheduleB1 Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetailC0 Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount-/ ]Zend_Service_DeveloperGarden_Client_Soap2. gZend_Service_DeveloperGarden_Client_Exception7- qZend_Service_DeveloperGarden_Client_ClientAbstract1, eZend_Service_DeveloperGarden_BaseUserServiceA+ Zend_Service_DeveloperGarden_BaseUserService_AccountBalance* 9Zend_Service_Delicious&) OZend_Service_Delicious_SimplePost$( KZend_Service_Delicious_PostList   - j g"Q
.zZ

W			:,n
8|!gZ:!  j        T
 )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse[	 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponsef MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponseS 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponseT )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponsef MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponseS 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponseU +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseTypeQ #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse[  7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseTypeW /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse[~ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseTypeW} /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse\| 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseTypeX{ 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponsegz OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseTypecy GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse`x AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType\w 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseZv 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseTypeVu -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseXt 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseTypeTs )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse_r ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType[q 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseWp /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseTypeSo 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseQn #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstractSm 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponseJl Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseTypegk OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseTypecj GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseWi /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponseUh +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponseSg 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse3f iZend_Service_DeveloperGarden_Response_BaseTypeJe Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstractCd Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCallGc Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced=b }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallAa Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatusA` Zend_Service_DeveloperGarden_Request_SmsValidation_ValidateN_ Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeywordC^ Zend_Service_DeveloperGarden_Request_SmsValidation_Invalidate   B  9O
h).T


R
		f	y)b5a$XO"e1d6zK                L AZend_Service_Flickr_ResultK ?Zend_Service_Flickr_ImageJ 9Zend_Service_ExceptionI ?Zend_Service_Ebay_Finding)H UZend_Service_Ebay_Finding_Storefront+G YZend_Service_Ebay_Finding_ShippingInfo+F YZend_Service_Ebay_Finding_Set_Abstract,E [Zend_Service_Ebay_Finding_SellingStatus)D UZend_Service_Ebay_Finding_SellerInfo,C [Zend_Service_Ebay_Finding_Search_Result*B WZend_Service_Ebay_Finding_Search_Item.A _Zend_Service_Ebay_Finding_Search_Item_Set0@ cZend_Service_Ebay_Finding_Response_Keywords-? ]Zend_Service_Ebay_Finding_Response_Items2> gZend_Service_Ebay_Finding_Response_Histograms0= cZend_Service_Ebay_Finding_Response_Abstract/< aZend_Service_Ebay_Finding_PaginationOutput*; WZend_Service_Ebay_Finding_ListingInfo(: SZend_Service_Ebay_Finding_Exception,9 [Zend_Service_Ebay_Finding_Error_Message)8 UZend_Service_Ebay_Finding_Error_Data-7 ]Zend_Service_Ebay_Finding_Error_Data_Set'6 QZend_Service_Ebay_Finding_Category15 eZend_Service_Ebay_Finding_Category_Histogram54 mZend_Service_Ebay_Finding_Category_Histogram_Set;3 yZend_Service_Ebay_Finding_Category_Histogram_Container%2 MZend_Service_Ebay_Finding_Aspect)1 UZend_Service_Ebay_Finding_Aspect_Set50 mZend_Service_Ebay_Finding_Aspect_Histogram_Value9/ uZend_Service_Ebay_Finding_Aspect_Histogram_Value_Set9. uZend_Service_Ebay_Finding_Aspect_Histogram_Container'- QZend_Service_Ebay_Finding_Abstract , CZend_Service_Ebay_Exception+ AZend_Service_Ebay_Abstract+* YZend_Service_DeveloperGarden_VoiceCall/) aZend_Service_DeveloperGarden_SmsValidation)( UZend_Service_DeveloperGarden_SendSms5' mZend_Service_DeveloperGarden_SecurityTokenServer;& yZend_Service_DeveloperGarden_SecurityTokenServer_CacheK% Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstractL$ Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponseP# !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponseG" Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponseJ! Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponseK  Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2ResponseL Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponseI Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumberW /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponseJ Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponseU +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponseC Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponseC Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstractH Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponseU +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponseQ #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponseI Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception; yZend_Service_DeveloperGarden_Response_ResponseAbstractO Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseTypeK Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseA Zend_Service_DeveloperGarden_Response_IpLocation_RegionTypeK Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseTypeG Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseL Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationTypeI Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType> Zend_Service_DeveloperGarden_Response_IpLocation_CityType4 kZend_Service_DeveloperGarden_Response_Exception   U  nP(nB^0i@oK# 



^
4
				K	[*R%d6Z0]=`t>I                                    8! sZend_Service_WindowsAzure_Credentials_SharedKeyLite4  kZend_Service_WindowsAzure_Credentials_SharedKeyA Zend_Service_WindowsAzure_Credentials_SharedAccessSignature4 kZend_Service_WindowsAzure_Credentials_Exception> Zend_Service_WindowsAzure_Credentials_CredentialsAbstract2 gZend_Service_WindowsAzure_CommandLine_Storage2 gZend_Service_WindowsAzure_CommandLine_Service !ScaffolderW /Zend_Service_WindowsAzure_CommandLine_PackageScaffolder_PackageScaffolderAbstract2 gZend_Service_WindowsAzure_CommandLine_PackageD 	Zend_Service_WindowsAzure_CommandLine_GetAsynchronousOperation5 mZend_Service_WindowsAzure_CommandLine_Deployment6 oZend_Service_WindowsAzure_CommandLine_Certificate 5Zend_Service_Twitter" GZend_Service_Twitter_Response# IZend_Service_Twitter_Exception ;Zend_Service_Technorati# IZend_Service_Technorati_Weblog" GZend_Service_Technorati_Utils* WZend_Service_Technorati_TagsResultSet' QZend_Service_Technorati_TagsResult) UZend_Service_Technorati_TagResultSet& OZend_Service_Technorati_TagResult,
 [Zend_Service_Technorati_SearchResultSet)	 UZend_Service_Technorati_SearchResult& OZend_Service_Technorati_ResultSet# IZend_Service_Technorati_Result* WZend_Service_Technorati_KeyInfoResult* WZend_Service_Technorati_GetInfoResult& OZend_Service_Technorati_Exception1 eZend_Service_Technorati_DailyCountsResultSet. _Zend_Service_Technorati_DailyCountsResult, [Zend_Service_Technorati_CosmosResultSet)  UZend_Service_Technorati_CosmosResult+ YZend_Service_Technorati_BlogInfoResult#~ IZend_Service_Technorati_Author} ;Zend_Service_StrikeIron(| SZend_Service_StrikeIron_ZipCodeInfo2{ gZend_Service_StrikeIron_USAddressVerification-z ]Zend_Service_StrikeIron_SalesUseTaxBasic&y OZend_Service_StrikeIron_Exception&x OZend_Service_StrikeIron_Decorator!w EZend_Service_StrikeIron_Base;v yZend_Service_SqlAzure_Management_ServiceEntityAbstract4u kZend_Service_SqlAzure_Management_ServerInstance:t wZend_Service_SqlAzure_Management_FirewallRuleInstance/s aZend_Service_SqlAzure_Management_Exception,r [Zend_Service_SqlAzure_Management_Client$q KZend_Service_SqlAzure_Exceptionp ;Zend_Service_SlideShare&o OZend_Service_SlideShare_SlideShow&n OZend_Service_SlideShare_Exception%m MZend_Service_ShortUrl_TinyUrlCom&l OZend_Service_ShortUrl_MetamarkNet!k EZend_Service_ShortUrl_JdemCzj AZend_Service_ShortUrl_IsGd$i KZend_Service_ShortUrl_Exception h CZend_Service_ShortUrl_BitLy,g [Zend_Service_ShortUrl_AbstractShortenerf 9Zend_Service_ReCaptcha$e KZend_Service_ReCaptcha_Response$d KZend_Service_ReCaptcha_MailHide.c _Zend_Service_ReCaptcha_MailHide_Exception%b MZend_Service_ReCaptcha_Exception#a IZend_Service_Rackspace_Servers5` mZend_Service_Rackspace_Servers_SharedIpGroupList1_ eZend_Service_Rackspace_Servers_SharedIpGroup.^ _Zend_Service_Rackspace_Servers_ServerList*] WZend_Service_Rackspace_Servers_Server-\ ]Zend_Service_Rackspace_Servers_ImageList)[ UZend_Service_Rackspace_Servers_Image-Z ]Zend_Service_Rackspace_Servers_Exception!Y EZend_Service_Rackspace_Files,X [Zend_Service_Rackspace_Files_ObjectList(W SZend_Service_Rackspace_Files_Object+V YZend_Service_Rackspace_Files_Exception/U aZend_Service_Rackspace_Files_ContainerList+T YZend_Service_Rackspace_Files_Container%S MZend_Service_Rackspace_Exception$R KZend_Service_Rackspace_AbstractQ 7Zend_Service_LiveDocx$P KZend_Service_LiveDocx_MailMerge$O KZend_Service_LiveDocx_ExceptionN 3Zend_Service_Flickr"M GZend_Service_Flickr_ResultSet   E  _CUb6K



_
			K	|0KuFb%Kj2j;qD"                             &f OZend_Service_Yahoo_VideoResultSet#e IZend_Service_Yahoo_VideoResult!d EZend_Service_Yahoo_ResultSetc ?Zend_Service_Yahoo_Result)b UZend_Service_Yahoo_PageDataResultSet&a OZend_Service_Yahoo_PageDataResult%` MZend_Service_Yahoo_NewsResultSet"_ GZend_Service_Yahoo_NewsResult&^ OZend_Service_Yahoo_LocalResultSet#] IZend_Service_Yahoo_LocalResult+\ YZend_Service_Yahoo_InlinkDataResultSet([ SZend_Service_Yahoo_InlinkDataResult&Z OZend_Service_Yahoo_ImageResultSet#Y IZend_Service_Yahoo_ImageResultX =Zend_Service_Yahoo_Image&W OZend_Service_WindowsAzure_Storage4V kZend_Service_WindowsAzure_Storage_TableInstance7U qZend_Service_WindowsAzure_Storage_TableEntityQuery2T gZend_Service_WindowsAzure_Storage_TableEntity,S [Zend_Service_WindowsAzure_Storage_Table<R {Zend_Service_WindowsAzure_Storage_StorageEntityAbstract7Q qZend_Service_WindowsAzure_Storage_SignedIdentifier3P iZend_Service_WindowsAzure_Storage_QueueMessage4O kZend_Service_WindowsAzure_Storage_QueueInstance,N [Zend_Service_WindowsAzure_Storage_Queue9M uZend_Service_WindowsAzure_Storage_PageRegionInstance4L kZend_Service_WindowsAzure_Storage_LeaseInstance9K uZend_Service_WindowsAzure_Storage_DynamicTableEntity3J iZend_Service_WindowsAzure_Storage_BlobInstance4I kZend_Service_WindowsAzure_Storage_BlobContainer+H YZend_Service_WindowsAzure_Storage_Blob2G gZend_Service_WindowsAzure_Storage_Blob_Stream;F yZend_Service_WindowsAzure_Storage_BatchStorageAbstract,E [Zend_Service_WindowsAzure_Storage_Batch-D ]Zend_Service_WindowsAzure_SessionHandler>C Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract1B eZend_Service_WindowsAzure_RetryPolicy_RetryN2A gZend_Service_WindowsAzure_RetryPolicy_NoRetry4@ kZend_Service_WindowsAzure_RetryPolicy_ExceptionH? Zend_Service_WindowsAzure_Management_SubscriptionOperationInstanceA> Zend_Service_WindowsAzure_Management_StorageServiceInstance@= Zend_Service_WindowsAzure_Management_ServiceEntityAbstractB< Zend_Service_WindowsAzure_Management_OperationStatusInstanceB; Zend_Service_WindowsAzure_Management_OperatingSystemInstanceH: Zend_Service_WindowsAzure_Management_OperatingSystemFamilyInstance:9 wZend_Service_WindowsAzure_Management_LocationInstance@8 Zend_Service_WindowsAzure_Management_HostedServiceInstance37 iZend_Service_WindowsAzure_Management_Exception<6 {Zend_Service_WindowsAzure_Management_DeploymentInstance05 cZend_Service_WindowsAzure_Management_Client=4 }Zend_Service_WindowsAzure_Management_CertificateInstance@3 Zend_Service_WindowsAzure_Management_AffinityGroupInstance62 oZend_Service_WindowsAzure_Log_Writer_WindowsAzure91 uZend_Service_WindowsAzure_Log_Formatter_WindowsAzure,0 [Zend_Service_WindowsAzure_Log_Exception(/ SZend_Service_WindowsAzure_ExceptionJ. Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscription2- gZend_Service_WindowsAzure_Diagnostics_Manager3, iZend_Service_WindowsAzure_Diagnostics_LogLevel4+ kZend_Service_WindowsAzure_Diagnostics_ExceptionN* Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscriptionH) Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLogL( Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCountersK' Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstract<& {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogsA% Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstanceD$ 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectoriesU# +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogsD" 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSources   a  z[<~U6xY@g=
v]8



m
L
5

					S	%qCY+rV3kO7X*d0W{?             (G SZend_Tool_Framework_Client_Manifest9F uZend_Tool_Framework_Client_Interactive_InputResponse8E sZend_Tool_Framework_Client_Interactive_InputRequest8D sZend_Tool_Framework_Client_Interactive_InputHandler)C UZend_Tool_Framework_Client_Exception'B QZend_Tool_Framework_Client_ConsoleDA 	Zend_Tool_Framework_Client_Console_ResponseDecorator_IndentionD@ 	Zend_Tool_Framework_Client_Console_ResponseDecorator_ColorizerC? Zend_Tool_Framework_Client_Console_ResponseDecorator_BlockizeF> Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter0= cZend_Tool_Framework_Client_Console_Manifest2< gZend_Tool_Framework_Client_Console_HelpSystem6; oZend_Tool_Framework_Client_Console_ArgumentParser&: OZend_Tool_Framework_Client_Config(9 SZend_Tool_Framework_Client_Abstract*8 WZend_Tool_Framework_Action_Repository)7 UZend_Tool_Framework_Action_Exception$6 KZend_Tool_Framework_Action_Base5 'Zend_TimeSync4 1Zend_TimeSync_Sntp3 9Zend_TimeSync_Protocol2 /Zend_TimeSync_Ntp1 ;Zend_TimeSync_Exception0 +Zend_Text_Table/ 3Zend_Text_Table_Row. ?Zend_Text_Table_Exception&- OZend_Text_Table_Decorator_Unicode$, KZend_Text_Table_Decorator_Ascii+ 9Zend_Text_Table_Column* 3Zend_Text_MultiByte) -Zend_Text_Figlet( AZend_Text_Figlet_Exception' 3Zend_Text_Exception&& OZend_Test_PHPUnit_Db_SimpleTester,% [Zend_Test_PHPUnit_Db_Operation_Truncate*$ WZend_Test_PHPUnit_Db_Operation_Insert-# ]Zend_Test_PHPUnit_Db_Operation_DeleteAll*" WZend_Test_PHPUnit_Db_Metadata_Generic#! IZend_Test_PHPUnit_Db_Exception,  [Zend_Test_PHPUnit_Db_DataSet_QueryTable. _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet0 cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet) UZend_Test_PHPUnit_Db_DataSet_DbTable* WZend_Test_PHPUnit_Db_DataSet_DbRowset$ KZend_Test_PHPUnit_Db_Connection' QZend_Test_PHPUnit_DatabaseTestCase) UZend_Test_PHPUnit_ControllerTestCase0 cZend_Test_PHPUnit_Constraint_ResponseHeader* WZend_Test_PHPUnit_Constraint_Redirect+ YZend_Test_PHPUnit_Constraint_Exception* WZend_Test_PHPUnit_Constraint_DomQuery 7Zend_Test_DbStatement 3Zend_Test_DbAdapter /Zend_Tag_ItemList 'Zend_Tag_Item 1Zend_Tag_Exception )Zend_Tag_Cloud =Zend_Tag_Cloud_Exception! EZend_Tag_Cloud_Decorator_Tag% MZend_Tag_Cloud_Decorator_HtmlTag' QZend_Tag_Cloud_Decorator_HtmlCloud'
 QZend_Tag_Cloud_Decorator_Exception#	 IZend_Tag_Cloud_Decorator_Cloud! EZend_Stdlib_SplPriorityQueue -SplPriorityQueue ?Zend_Stdlib_PriorityQueue3 iZend_Stdlib_Exception_InvalidCallbackException  CZend_Stdlib_CallbackHandler )Zend_Soap_Wsdl/ aZend_Soap_Wsdl_Strategy_DefaultComplexType& OZend_Soap_Wsdl_Strategy_Composite0  cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence/ aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex$~ KZend_Soap_Wsdl_Strategy_AnyType%} MZend_Soap_Wsdl_Strategy_Abstract| =Zend_Soap_Wsdl_Exception{ -Zend_Soap_Serverz 9Zend_Soap_Server_Proxyy AZend_Soap_Server_Exceptionx -Zend_Soap_Clientw 9Zend_Soap_Client_Localv AZend_Soap_Client_Exceptionu ;Zend_Soap_Client_DotNett ;Zend_Soap_Client_Commons 9Zend_Soap_AutoDiscover%r MZend_Soap_AutoDiscover_Exceptionq %Zend_Session)p UZend_Session_Validator_HttpUserAgent$o KZend_Session_Validator_Abstract'n QZend_Session_SaveHandler_Exception%m MZend_Session_SaveHandler_DbTablel 9Zend_Session_Namespacek 9Zend_Session_Exceptionj 7Zend_Session_Abstracti 1Zend_Service_Yahoo$h KZend_Service_Yahoo_WebResultSet!g EZend_Service_Yahoo_WebResult   L  a,2l6V'tC


~
J
			o	C	w=T!yEq>vBh2e0Q  < {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory8 sZend_Tool_Project_Context_Zf_PublicScriptsDirectory1 eZend_Tool_Project_Context_Zf_PublicIndexFile7 qZend_Tool_Project_Context_Zf_PublicImagesDirectory1 eZend_Tool_Project_Context_Zf_PublicDirectory5 mZend_Tool_Project_Context_Zf_ProjectProviderFile2 gZend_Tool_Project_Context_Zf_ModulesDirectory1 eZend_Tool_Project_Context_Zf_ModuleDirectory1 eZend_Tool_Project_Context_Zf_ModelsDirectory+
 YZend_Tool_Project_Context_Zf_ModelFile/	 aZend_Tool_Project_Context_Zf_LogsDirectory2 gZend_Tool_Project_Context_Zf_LocalesDirectory2 gZend_Tool_Project_Context_Zf_LibraryDirectory2 gZend_Tool_Project_Context_Zf_LayoutsDirectory8 sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory2 gZend_Tool_Project_Context_Zf_LayoutScriptFile. _Zend_Tool_Project_Context_Zf_HtaccessFile0 cZend_Tool_Project_Context_Zf_FormsDirectory* WZend_Tool_Project_Context_Zf_FormFile/  aZend_Tool_Project_Context_Zf_DocsDirectory- ]Zend_Tool_Project_Context_Zf_DbTableFile2~ gZend_Tool_Project_Context_Zf_DbTableDirectory/} aZend_Tool_Project_Context_Zf_DataDirectory6| oZend_Tool_Project_Context_Zf_ControllersDirectory0{ cZend_Tool_Project_Context_Zf_ControllerFile2z gZend_Tool_Project_Context_Zf_ConfigsDirectory,y [Zend_Tool_Project_Context_Zf_ConfigFile0x cZend_Tool_Project_Context_Zf_CacheDirectory/w aZend_Tool_Project_Context_Zf_BootstrapFile6v oZend_Tool_Project_Context_Zf_ApplicationDirectory7u qZend_Tool_Project_Context_Zf_ApplicationConfigFile/t aZend_Tool_Project_Context_Zf_ApisDirectory.s _Zend_Tool_Project_Context_Zf_ActionMethod3r iZend_Tool_Project_Context_Zf_AbstractClassFile@q Zend_Tool_Project_Context_System_ProjectProvidersDirectory8p sZend_Tool_Project_Context_System_ProjectProfileFile6o oZend_Tool_Project_Context_System_ProjectDirectory)n UZend_Tool_Project_Context_Repository.m _Zend_Tool_Project_Context_Filesystem_File3l iZend_Tool_Project_Context_Filesystem_Directory2k gZend_Tool_Project_Context_Filesystem_Abstract(j SZend_Tool_Project_Context_Exception-i ]Zend_Tool_Project_Context_Content_Engine3h iZend_Tool_Project_Context_Content_Engine_Phtml;g yZend_Tool_Project_Context_Content_Engine_CodeGenerator0f cZend_Tool_Framework_System_Provider_Version0e cZend_Tool_Framework_System_Provider_Phpinfo1d eZend_Tool_Framework_System_Provider_Manifest/c aZend_Tool_Framework_System_Provider_Config(b SZend_Tool_Framework_System_Manifest-a ]Zend_Tool_Framework_System_Action_Delete-` ]Zend_Tool_Framework_System_Action_Create!_ EZend_Tool_Framework_Registry+^ YZend_Tool_Framework_Registry_Exception+] YZend_Tool_Framework_Provider_Signature,\ [Zend_Tool_Framework_Provider_Repository+[ YZend_Tool_Framework_Provider_Exception*Z WZend_Tool_Framework_Provider_Abstract&Y OZend_Tool_Framework_Metadata_Tool)X UZend_Tool_Framework_Metadata_Dynamic'W QZend_Tool_Framework_Metadata_Basic,V [Zend_Tool_Framework_Manifest_Repository2U gZend_Tool_Framework_Manifest_ProviderMetadata*T WZend_Tool_Framework_Manifest_Metadata+S YZend_Tool_Framework_Manifest_Exception0R cZend_Tool_Framework_Manifest_ActionMetadata1Q eZend_Tool_Framework_Loader_IncludePathLoaderJP Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator+O YZend_Tool_Framework_Loader_BasicLoader(N SZend_Tool_Framework_Loader_Abstract"M GZend_Tool_Framework_Exception'L QZend_Tool_Framework_Client_Storage1K eZend_Tool_Framework_Client_Storage_Directory(J SZend_Tool_Framework_Client_ResponseDI 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator'H QZend_Tool_Framework_Client_Request   U  VRETq,



J
				U	i>i<f=b:c@fP? e@_;                                  h AZend_Validate_Barcode_Ean8g AZend_Validate_Barcode_Ean5f AZend_Validate_Barcode_Ean2 e CZend_Validate_Barcode_Ean18 d CZend_Validate_Barcode_Ean14 c CZend_Validate_Barcode_Ean13 b CZend_Validate_Barcode_Ean12$a KZend_Validate_Barcode_Code93ext!` EZend_Validate_Barcode_Code93$_ KZend_Validate_Barcode_Code39ext!^ EZend_Validate_Barcode_Code39,] [Zend_Validate_Barcode_Code25interleaved!\ EZend_Validate_Barcode_Code25*[ WZend_Validate_Barcode_AdapterAbstractZ 3Zend_Validate_AlphaY 3Zend_Validate_AlnumX 9Zend_Validate_AbstractW Zend_UriV 'Zend_Uri_HttpU 1Zend_Uri_ExceptionT )Zend_TranslateS 7Zend_Translate_PluralR =Zend_Translate_ExceptionQ 9Zend_Translate_Adapter!P EZend_Translate_Adapter_XmlTm!O EZend_Translate_Adapter_XliffN AZend_Translate_Adapter_TmxM AZend_Translate_Adapter_TbxL ?Zend_Translate_Adapter_QtK AZend_Translate_Adapter_Ini#J IZend_Translate_Adapter_GettextI AZend_Translate_Adapter_Csv!H EZend_Translate_Adapter_Array$G KZend_Tool_Project_Provider_View$F KZend_Tool_Project_Provider_Test/E aZend_Tool_Project_Provider_ProjectProvider'D QZend_Tool_Project_Provider_Project'C QZend_Tool_Project_Provider_Profile&B OZend_Tool_Project_Provider_Module%A MZend_Tool_Project_Provider_Model(@ SZend_Tool_Project_Provider_Manifest&? OZend_Tool_Project_Provider_Layout$> KZend_Tool_Project_Provider_Form)= UZend_Tool_Project_Provider_Exception'< QZend_Tool_Project_Provider_DbTable); UZend_Tool_Project_Provider_DbAdapter*: WZend_Tool_Project_Provider_Controller+9 YZend_Tool_Project_Provider_Application&8 OZend_Tool_Project_Provider_Action(7 SZend_Tool_Project_Provider_Abstract6 ?Zend_Tool_Project_Profile'5 QZend_Tool_Project_Profile_Resource94 uZend_Tool_Project_Profile_Resource_SearchConstraints13 eZend_Tool_Project_Profile_Resource_Container=2 }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter51 mZend_Tool_Project_Profile_Iterator_ContextFilter-0 ]Zend_Tool_Project_Profile_FileParser_Xml(/ SZend_Tool_Project_Profile_Exception . CZend_Tool_Project_Exception<- {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory0, cZend_Tool_Project_Context_Zf_ViewsDirectory6+ oZend_Tool_Project_Context_Zf_ViewScriptsDirectory0* cZend_Tool_Project_Context_Zf_ViewScriptFile6) oZend_Tool_Project_Context_Zf_ViewHelpersDirectory6( oZend_Tool_Project_Context_Zf_ViewFiltersDirectoryA' Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory2& gZend_Tool_Project_Context_Zf_UploadsDirectory0% cZend_Tool_Project_Context_Zf_TestsDirectory7$ qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile:# wZend_Tool_Project_Context_Zf_TestPHPUnitBootstrapFile@" Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory1! eZend_Tool_Project_Context_Zf_TestLibraryFile6  oZend_Tool_Project_Context_Zf_TestLibraryDirectory: wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFileB Zend_Tool_Project_Context_Zf_TestApplicationModulesDirectoryA Zend_Tool_Project_Context_Zf_TestApplicationModuleDirectory: wZend_Tool_Project_Context_Zf_TestApplicationDirectory@ Zend_Tool_Project_Context_Zf_TestApplicationControllerFileE Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory> Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile= }Zend_Tool_Project_Context_Zf_TestApplicationActionMethod4 kZend_Tool_Project_Context_Zf_TemporaryDirectory3 iZend_Tool_Project_Context_Zf_SessionsDirectory3 iZend_Tool_Project_Context_Zf_ServicesDirectory8 sZend_Tool_Project_Context_Zf_SearchIndexesDirectory   p  i;Z7zY>nM, iI$




q
Q
1
					s	X	8		 pQ5zdO4tO.[9\9dB nL({K       &X OZend_View_Helper_Navigation_Links/W aZend_View_Helper_Navigation_HelperAbstract,V [Zend_View_Helper_Navigation_BreadcrumbsU ;Zend_View_Helper_LayoutT 7Zend_View_Helper_Json"S GZend_View_Helper_InlineScript#R IZend_View_Helper_HtmlQuicktimeQ ?Zend_View_Helper_HtmlPage P CZend_View_Helper_HtmlObjectO ?Zend_View_Helper_HtmlListN AZend_View_Helper_HtmlFlash!M EZend_View_Helper_HtmlElementL AZend_View_Helper_HeadTitleK AZend_View_Helper_HeadStyle J CZend_View_Helper_HeadScriptI ?Zend_View_Helper_HeadMetaH ?Zend_View_Helper_HeadLinkG ?Zend_View_Helper_Gravatar"F GZend_View_Helper_FormTextareaE ?Zend_View_Helper_FormText D CZend_View_Helper_FormSubmit C CZend_View_Helper_FormSelectB AZend_View_Helper_FormResetA AZend_View_Helper_FormRadio"@ GZend_View_Helper_FormPassword? ?Zend_View_Helper_FormNote'> QZend_View_Helper_FormMultiCheckbox= AZend_View_Helper_FormLabel< AZend_View_Helper_FormImage ; CZend_View_Helper_FormHidden: ?Zend_View_Helper_FormFile 9 CZend_View_Helper_FormErrors!8 EZend_View_Helper_FormElement"7 GZend_View_Helper_FormCheckbox 6 CZend_View_Helper_FormButton5 7Zend_View_Helper_Form4 ?Zend_View_Helper_Fieldset3 =Zend_View_Helper_Doctype!2 EZend_View_Helper_DeclareVars1 9Zend_View_Helper_Cycle0 ?Zend_View_Helper_Currency/ =Zend_View_Helper_BaseUrl. ;Zend_View_Helper_Action- ?Zend_View_Helper_Abstract, 3Zend_View_Exception+ 1Zend_View_Abstract* %Zend_Version) 'Zend_Validate( AZend_Validate_StringLength#' IZend_Validate_Sitemap_Priority& ?Zend_Validate_Sitemap_Loc"% GZend_Validate_Sitemap_Lastmod%$ MZend_Validate_Sitemap_Changefreq# 3Zend_Validate_Regex" 9Zend_Validate_PostCode! 9Zend_Validate_NotEmpty  9Zend_Validate_LessThan 7Zend_Validate_Ldap_Dn 1Zend_Validate_Isbn -Zend_Validate_Ip /Zend_Validate_Int 7Zend_Validate_InArray ;Zend_Validate_Identical 1Zend_Validate_Iban 9Zend_Validate_Hostname /Zend_Validate_Hex ?Zend_Validate_GreaterThan 3Zend_Validate_Float! EZend_Validate_File_WordCount ?Zend_Validate_File_Upload ;Zend_Validate_File_Size ;Zend_Validate_File_Sha1! EZend_Validate_File_NotExists  CZend_Validate_File_MimeType 9Zend_Validate_File_Md5 AZend_Validate_File_IsImage$ KZend_Validate_File_IsCompressed! EZend_Validate_File_ImageSize
 ;Zend_Validate_File_Hash!	 EZend_Validate_File_FilesSize! EZend_Validate_File_Extension ?Zend_Validate_File_Exists' QZend_Validate_File_ExcludeMimeType( SZend_Validate_File_ExcludeExtension =Zend_Validate_File_Crc32 =Zend_Validate_File_Count ;Zend_Validate_Exception AZend_Validate_EmailAddress  5Zend_Validate_Digits" GZend_Validate_Db_RecordExists$~ KZend_Validate_Db_NoRecordExists} ?Zend_Validate_Db_Abstract| 1Zend_Validate_Date{ =Zend_Validate_CreditCardz 3Zend_Validate_Ccnumy 9Zend_Validate_Callbackx 7Zend_Validate_Betweenw 7Zend_Validate_Barcodev AZend_Validate_Barcode_Upceu AZend_Validate_Barcode_Upcat AZend_Validate_Barcode_Sscc$s KZend_Validate_Barcode_Royalmail"r GZend_Validate_Barcode_Postnet!q EZend_Validate_Barcode_Planet#p IZend_Validate_Barcode_Leitcode o CZend_Validate_Barcode_Itf14n AZend_Validate_Barcode_Issn*m WZend_Validate_Barcode_IntelligentMail$l KZend_Validate_Barcode_Identcode!k EZend_Validate_Barcode_Gtin14!j EZend_Validate_Barcode_Gtin13!i EZend_Validate_Barcode_Gtin12   n  \1z@Y6~^1{V,


~
c
E
+
				f	J	(	gG&vR0lM lDtK,~dJ'rG&{kT9"     F ;Zend_Feed_EntryAbstractE /Zend_Feed_ElementD )Zend_Feed_AtomC 1Zend_Feed_AbstractB )Zend_ExceptionA Zend_Db@ 'Zend_Db_Table? 5Zend_Db_Table_Rowset> /Zend_Db_Table_Row = CZend_Db_Table_Row_Exception< ;Zend_Db_Table_Exception; /Zend_Db_Statement: =Zend_Db_Statement_Oracle'9 QZend_Db_Statement_Oracle_Exception8 =Zend_Db_Statement_Mysqli 7 CZend_Db_Statement_Exception6 )Zend_Db_Select5 =Zend_Db_Select_Exception4 -Zend_Db_Profiler3 9Zend_Db_Profiler_Query2 AZend_Db_Profiler_Exception1 /Zend_Db_Inflector0 /Zend_Db_Exception/ AZend_Db_Adapter_Pdo_Sqlite. ?Zend_Db_Adapter_Pdo_Pgsql- ?Zend_Db_Adapter_Pdo_Mysql, ?Zend_Db_Adapter_Pdo_Mssql!+ EZend_Db_Adapter_Pdo_Abstract* 9Zend_Db_Adapter_Oracle%) MZend_Db_Adapter_Oracle_Exception( 9Zend_Db_Adapter_Mysqli' ?Zend_Db_Adapter_Exception& =Zend_Db_Adapter_Abstract% 9Zend_Controller_Router%$ MZend_Controller_Router_Exception"# GZend_Controller_Plugin_Broker$" KZend_Controller_Plugin_Abstract! 7Zend_Controller_Front$  KZend_Controller_Front_Exception ?Zend_Controller_Exception AZend_Controller_Dispatcher% MZend_Controller_Dispatcher_Token) UZend_Controller_Dispatcher_Exception 9Zend_Controller_Action% MZend_Controller_Action_Exception /Zend_XmlRpc_Value =Zend_XmlRpc_Value_Struct =Zend_XmlRpc_Value_String =Zend_XmlRpc_Value_Scalar 7Zend_XmlRpc_Value_Nil ?Zend_XmlRpc_Value_Integer  CZend_XmlRpc_Value_Exception =Zend_XmlRpc_Value_Double AZend_XmlRpc_Value_DateTime! EZend_XmlRpc_Value_Collection ?Zend_XmlRpc_Value_Boolean! EZend_XmlRpc_Value_BigInteger =Zend_XmlRpc_Value_Base64 ;Zend_XmlRpc_Value_Array 1Zend_XmlRpc_Server
 ?Zend_XmlRpc_Server_System	 =Zend_XmlRpc_Server_Fault! EZend_XmlRpc_Server_Exception =Zend_XmlRpc_Server_Cache 5Zend_XmlRpc_Response ?Zend_XmlRpc_Response_Http 3Zend_XmlRpc_Request ?Zend_XmlRpc_Request_Stdin =Zend_XmlRpc_Request_Http$ KZend_XmlRpc_Generator_XmlWriter,  [Zend_XmlRpc_Generator_GeneratorAbstract& OZend_XmlRpc_Generator_DomDocument~ /Zend_XmlRpc_Fault} 7Zend_XmlRpc_Exception| 1Zend_XmlRpc_Client#{ IZend_XmlRpc_Client_ServerProxy+z YZend_XmlRpc_Client_ServerIntrospection+y YZend_XmlRpc_Client_IntrospectException%x MZend_XmlRpc_Client_HttpException&w OZend_XmlRpc_Client_FaultException!v EZend_XmlRpc_Client_Exceptionu /Zend_Xml_Securityt 1Zend_Xml_Exception&s OZend_Wildfire_Protocol_JsonStream!r EZend_Wildfire_Plugin_FirePhp.q _Zend_Wildfire_Plugin_FirePhp_TableMessage)p UZend_Wildfire_Plugin_FirePhp_Messageo ;Zend_Wildfire_Exception&n OZend_Wildfire_Channel_HttpHeadersm Zend_Viewl -Zend_View_Streamk AZend_View_Helper_UserAgentj 5Zend_View_Helper_Urli AZend_View_Helper_Translateh AZend_View_Helper_ServerUrl)g UZend_View_Helper_RenderToPlaceholder!f EZend_View_Helper_Placeholder*e WZend_View_Helper_Placeholder_Registry4d kZend_View_Helper_Placeholder_Registry_Exception+c YZend_View_Helper_Placeholder_Container6b oZend_View_Helper_Placeholder_Container_Standalone5a mZend_View_Helper_Placeholder_Container_Exception4` kZend_View_Helper_Placeholder_Container_Abstract!_ EZend_View_Helper_PartialLoop^ =Zend_View_Helper_Partial'] QZend_View_Helper_Partial_Exception'\ QZend_View_Helper_PaginationControl [ CZend_View_Helper_Navigation(Z SZend_View_Helper_Navigation_Sitemap%Y MZend_View_Helper_Navigation_Menu   X  kAtAhE%qJ(W6



g
1
				;vM0E`2a3d4t<|Z0tL)                                           "H GZend_Mail_Transport_InterfaceG AZend_Log_Adapter_Interface F CZend_Db_Statement_Interface%E MZend_Controller_Router_Interface%D MZend_Controller_Plugin_Interface)C UZend_Controller_Dispatcher_Interface#B IZend_Wildfire_Plugin_Interface$A KZend_Wildfire_Channel_Interface@ 3Zend_View_Interface'? QZend_View_Helper_Navigation_Helper> AZend_View_Helper_Interface= ;Zend_Validate_Interface+< YZend_Validate_Barcode_AdapterInterface3; iZend_Tool_Project_Profile_FileParser_Interface:: wZend_Tool_Project_Context_System_TopLevelRestrictable59 mZend_Tool_Project_Context_System_NotOverwritable/8 aZend_Tool_Project_Context_System_Interface(7 SZend_Tool_Project_Context_Interface+6 YZend_Tool_Framework_Registry_Interface25 gZend_Tool_Framework_Registry_EnabledInterface-4 ]Zend_Tool_Framework_Provider_Pretendable+3 YZend_Tool_Framework_Provider_Interface.2 _Zend_Tool_Framework_Provider_Interactable/1 aZend_Tool_Framework_Provider_Initializable;0 yZend_Tool_Framework_Provider_DocblockManifestInterface+/ YZend_Tool_Framework_Metadata_Interface.. _Zend_Tool_Framework_Metadata_Attributable6- oZend_Tool_Framework_Manifest_ProviderManifestable6, oZend_Tool_Framework_Manifest_MetadataManifestable++ YZend_Tool_Framework_Manifest_Interface+* YZend_Tool_Framework_Manifest_Indexable4) kZend_Tool_Framework_Manifest_ActionManifestable)( UZend_Tool_Framework_Loader_Interface8' sZend_Tool_Framework_Client_Storage_AdapterInterfaceD& 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface;% yZend_Tool_Framework_Client_Interactive_OutputInterface:$ wZend_Tool_Framework_Client_Interactive_InputInterface)# UZend_Tool_Framework_Action_Interface(" SZend_Text_Table_Decorator_Interface! /Zend_Tag_Taggable  7Zend_Stdlib_Exception& OZend_Soap_Wsdl_Strategy_Interface% MZend_Session_Validator_Interface' QZend_Session_SaveHandler_Interface$ KZend_Service_ShortUrl_ShortenerI Zend_Service_DeveloperGarden_Response_SecurityTokenServer_InterfaceK Zend_Service_Console_Command_ParameterSource_ParameterSourceInterface 7Zend_Server_Interface- ]Zend_Serializer_Adapter_AdapterInterface4 kZend_Search_Lucene_Search_Highlighter_Interface! EZend_Search_Lucene_Interface3 iZend_Search_Lucene_Index_TermsStream_Interface$ KZend_Queue_Stomp_FrameInterface0 cZend_Queue_Stomp_Client_ConnectionInterface( SZend_Queue_Adapter_AdapterInterface ?Zend_Pdf_Filter_Interface& OZend_Pdf_ElementFactory_Interface ?Zend_Pdf_Canvas_Interface, [Zend_Paginator_ScrollingStyle_Interface$ KZend_Paginator_AdapterAggregate% MZend_Paginator_Adapter_Interface& OZend_Oauth_Config_ConfigInterface'
 QZend_Mobile_Push_Message_Interface	 AZend_Mobile_Push_Interface$ KZend_Memory_Container_Interface1 eZend_Markup_Renderer_TokenConverterInterface' QZend_Markup_Parser_ParserInterface) UZend_Mail_Storage_Writable_Interface' QZend_Mail_Storage_Folder_Interface =Zend_Mail_Part_Interface  CZend_Mail_Message_Interface! EZend_Log_Formatter_Interface  ?Zend_Log_Filter_Interface ?Zend_Log_FactoryInterface~ ?Zend_Loader_SplAutoloader'} QZend_Loader_PluginLoader_Interface%| MZend_Loader_Autoloader_Interface0{ cZend_Ldap_Node_Schema_ObjectClass_Interface2z gZend_Ldap_Node_Schema_AttributeType_Interface y CZend_Http_UserAgent_Storage)x UZend_Http_UserAgent_Features_Adapterw AZend_Http_UserAgent_Device$v KZend_Http_Client_Adapter_Stream'u QZend_Http_Client_Adapter_Interfacet AZend_Gdata_App_MediaSource.s _Zend_Form_Decorator_Marker_File_Interface"r GZend_Form_Decorator_Interfaceq 7Zend_Filter_Interface   {
 gS2~dJ.eT8w[:oQ0	



r
R
+
						o	P	:		zUD&d:dE# \2pK&nR.zX2\J%
            A 1Zend_XmlRpc_Client!@ EZend_XmlRpc_Client_Exception? Zend_View"> GZend_View_Helper_FormTextarea= ?Zend_View_Helper_FormText < CZend_View_Helper_FormSubmit ; CZend_View_Helper_FormSelect: AZend_View_Helper_FormReset9 AZend_View_Helper_FormRadio"8 GZend_View_Helper_FormPassword7 ?Zend_View_Helper_FormNote6 AZend_View_Helper_FormImage 5 CZend_View_Helper_FormHidden4 ?Zend_View_Helper_FormFile!3 EZend_View_Helper_FormElement"2 GZend_View_Helper_FormCheckbox 1 CZend_View_Helper_FormButton0 3Zend_View_Exception/ 1Zend_View_Abstract. Zend_Uri- +Zend_Uri_Mailto, 'Zend_Uri_Http+ 1Zend_Uri_Exception* 1Zend_Service_Yahoo$) KZend_Service_Yahoo_WebResultSet!( EZend_Service_Yahoo_WebResult!' EZend_Service_Yahoo_ResultSet& ?Zend_Service_Yahoo_Result%% MZend_Service_Yahoo_NewsResultSet"$ GZend_Service_Yahoo_NewsResult&# OZend_Service_Yahoo_LocalResultSet#" IZend_Service_Yahoo_LocalResult&! OZend_Service_Yahoo_ImageResultSet#  IZend_Service_Yahoo_ImageResult =Zend_Service_Yahoo_Image /Zend_Service_Rest 3Zend_Service_Flickr" GZend_Service_Flickr_ResultSet AZend_Service_Flickr_Result ?Zend_Service_Flickr_Image 9Zend_Service_Exception 3Zend_Service_Amazon' QZend_Service_Amazon_SimilarProduct" GZend_Service_Amazon_ResultSet ?Zend_Service_Amazon_Query! EZend_Service_Amazon_OfferSet ?Zend_Service_Amazon_Offer& OZend_Service_Amazon_ListmaniaList =Zend_Service_Amazon_Item ?Zend_Service_Amazon_Image( SZend_Service_Amazon_EditorialReview' QZend_Service_Amazon_CustomerReview$ KZend_Service_Amazon_Accessories 7Zend_Service_Abstract Zend_Pdf!
 EZend_Pdf_UpdateInfoContainer	 -Zend_Pdf_Trailer ;Zend_Pdf_Trailer_Keeper AZend_Pdf_Trailer_Generator )Zend_Pdf_Style /Zend_Pdf_Resource )Zend_Pdf_Image 3Zend_Pdf_Image_JPEG 'Zend_Pdf_Font 9Zend_Pdf_Font_Standard  /Zend_Pdf_PHPArray +Zend_Pdf_Parser~ 'Zend_Pdf_Page} 1Zend_Pdf_Exception| ;Zend_Pdf_ElementFactory{ -Zend_Pdf_Elementz ;Zend_Pdf_Element_String#y IZend_Pdf_Element_String_Binaryx ;Zend_Pdf_Element_Streamw AZend_Pdf_Element_Reference%v MZend_Pdf_Element_Reference_Table'u QZend_Pdf_Element_Reference_Contextt ;Zend_Pdf_Element_Object#s IZend_Pdf_Element_Object_Streamr =Zend_Pdf_Element_Numericq 7Zend_Pdf_Element_Nullp 7Zend_Pdf_Element_Name o CZend_Pdf_Element_Dictionaryn =Zend_Pdf_Element_Booleanm 9Zend_Pdf_Element_Arrayl )Zend_Pdf_Constk )Zend_Pdf_Colorj 1Zend_Pdf_Color_RGBi =Zend_Pdf_Color_GrayScaleh 3Zend_Pdf_Color_CMYKg Zend_Mimef )Zend_Mime_Parte /Zend_Mime_Messaged Zend_Mailc =Zend_Mail_Transport_Smtp!b EZend_Mail_Transport_Sendmail"a GZend_Mail_Transport_Exception` 3Zend_Mail_Exception_ Zend_Log^ 1Zend_Log_Exception] 7Zend_Log_Adapter_Null\ 7Zend_Log_Adapter_File[ AZend_Log_Adapter_ExceptionZ 3Zend_Log_Adapter_DbY =Zend_Log_Adapter_ConsoleX Zend_JsonW 3Zend_Json_ExceptionV /Zend_Json_EncoderU /Zend_Json_DecoderT -Zend_InputFilterS AZend_InputFilter_ExceptionR +Zend_HttpClientQ =Zend_HttpClient_ResponseP 5Zend_HttpClient_FileO ?Zend_HttpClient_ExceptionN =Zend_HttpClient_AbstractM #Zend_FilterL 7Zend_Filter_ExceptionK Zend_FeedJ 'Zend_Feed_RssI 3Zend_Feed_ExceptionH 1Zend_Feed_EntryRssG 3Zend_Feed_EntryAtom   | Z7mSFc;fD%tR/





h
D
#					y	_	B	,		}bF0 pT9z^;lK9pQ0h=qQ6gQ2                          = +Zend_Pdf_Parser< 9Zend_Pdf_Parser_Stream; 'Zend_Pdf_Page: +Zend_Pdf_Filter 9 CZend_Pdf_Filter_Compression$8 KZend_Pdf_Filter_Compression_LZW&7 OZend_Pdf_Filter_Compression_Flate6 =Zend_Pdf_Filter_ASCIIHEX5 ;Zend_Pdf_Filter_ASCII854 1Zend_Pdf_Exception3 ;Zend_Pdf_ElementFactory2 -Zend_Pdf_Element1 ;Zend_Pdf_Element_String#0 IZend_Pdf_Element_String_Binary/ ;Zend_Pdf_Element_Stream. AZend_Pdf_Element_Reference%- MZend_Pdf_Element_Reference_Table', QZend_Pdf_Element_Reference_Context+ ;Zend_Pdf_Element_Object#* IZend_Pdf_Element_Object_Stream) =Zend_Pdf_Element_Numeric( 7Zend_Pdf_Element_Null' 7Zend_Pdf_Element_Name & CZend_Pdf_Element_Dictionary% =Zend_Pdf_Element_Boolean$ 9Zend_Pdf_Element_Array# )Zend_Pdf_Const" )Zend_Pdf_Color! 1Zend_Pdf_Color_RGB  =Zend_Pdf_Color_GrayScale 3Zend_Pdf_Color_CMYK Zend_Mime )Zend_Mime_Part /Zend_Mime_Message Zend_Mail =Zend_Mail_Transport_Smtp! EZend_Mail_Transport_Sendmail" GZend_Mail_Transport_Exception 3Zend_Mail_Exception Zend_Log 1Zend_Log_Exception 7Zend_Log_Adapter_Null 7Zend_Log_Adapter_File AZend_Log_Adapter_Exception 3Zend_Log_Adapter_Db =Zend_Log_Adapter_Console Zend_Json 3Zend_Json_Exception /Zend_Json_Encoder /Zend_Json_Decoder -Zend_InputFilter
 AZend_InputFilter_Exception	 1Zend_Http_Response 3Zend_Http_Exception -Zend_Http_Client 7Zend_Http_Client_File AZend_Http_Client_Exception ?Zend_Http_Client_Abstract #Zend_Filter 7Zend_Filter_Exception Zend_Feed  'Zend_Feed_Rss 3Zend_Feed_Exception~ 1Zend_Feed_EntryRss} 3Zend_Feed_EntryAtom| ;Zend_Feed_EntryAbstract{ /Zend_Feed_Elementz )Zend_Feed_Atomy 1Zend_Feed_Abstractx )Zend_Exceptionw Zend_Dbv 'Zend_Db_Tableu 5Zend_Db_Table_Rowsett /Zend_Db_Table_Row s CZend_Db_Table_Row_Exceptionr ;Zend_Db_Table_Exceptionq /Zend_Db_Statementp =Zend_Db_Statement_Oracle'o QZend_Db_Statement_Oracle_Exceptionn =Zend_Db_Statement_Mysqli m CZend_Db_Statement_Exceptionl )Zend_Db_Selectk =Zend_Db_Select_Exceptionj -Zend_Db_Profileri 9Zend_Db_Profiler_Queryh AZend_Db_Profiler_Exceptiong /Zend_Db_Inflectorf /Zend_Db_Exceptione AZend_Db_Adapter_Pdo_Sqlited ?Zend_Db_Adapter_Pdo_Pgsqlc ?Zend_Db_Adapter_Pdo_Mysqlb ?Zend_Db_Adapter_Pdo_Mssql!a EZend_Db_Adapter_Pdo_Abstract` 9Zend_Db_Adapter_Oracle%_ MZend_Db_Adapter_Oracle_Exception^ 9Zend_Db_Adapter_Mysqli] ?Zend_Db_Adapter_Exception\ =Zend_Db_Adapter_Abstract[ 9Zend_Controller_Router%Z MZend_Controller_Router_Exception"Y GZend_Controller_Plugin_Broker$X KZend_Controller_Plugin_AbstractW 7Zend_Controller_Front$V KZend_Controller_Front_ExceptionU ?Zend_Controller_ExceptionT AZend_Controller_Dispatcher%S MZend_Controller_Dispatcher_Token)R UZend_Controller_Dispatcher_ExceptionQ 9Zend_Controller_Action%P MZend_Controller_Action_Exception	O ZendN /Zend_XmlRpc_ValueM =Zend_XmlRpc_Value_StructL =Zend_XmlRpc_Value_StringK =Zend_XmlRpc_Value_ScalarJ ?Zend_XmlRpc_Value_Integer I CZend_XmlRpc_Value_ExceptionH =Zend_XmlRpc_Value_DoubleG AZend_XmlRpc_Value_DateTime!F EZend_XmlRpc_Value_CollectionE ?Zend_XmlRpc_Value_BooleanD =Zend_XmlRpc_Value_Base64C ;Zend_XmlRpc_Value_ArrayB 7Zend_XmlRpc_Exception   h  z^G-wfHd: f;g5



X
+				e	5	yFfD#j?#}cBzQ/
qYH-\9cA	             !% EZend_XmlRpc_Client_Exception$ Zend_View"# GZend_View_Helper_FormTextarea" ?Zend_View_Helper_FormText ! CZend_View_Helper_FormSubmit   CZend_View_Helper_FormSelect AZend_View_Helper_FormReset AZend_View_Helper_FormRadio" GZend_View_Helper_FormPassword ?Zend_View_Helper_FormNote AZend_View_Helper_FormImage  CZend_View_Helper_FormHidden ?Zend_View_Helper_FormFile! EZend_View_Helper_FormElement" GZend_View_Helper_FormCheckbox  CZend_View_Helper_FormButton 3Zend_View_Exception 1Zend_View_Abstract Zend_Uri +Zend_Uri_Mailto 'Zend_Uri_Http 1Zend_Uri_Exception 1Zend_Service_Yahoo$ KZend_Service_Yahoo_WebResultSet! EZend_Service_Yahoo_WebResult! EZend_Service_Yahoo_ResultSet ?Zend_Service_Yahoo_Result%
 MZend_Service_Yahoo_NewsResultSet"	 GZend_Service_Yahoo_NewsResult& OZend_Service_Yahoo_LocalResultSet# IZend_Service_Yahoo_LocalResult& OZend_Service_Yahoo_ImageResultSet# IZend_Service_Yahoo_ImageResult =Zend_Service_Yahoo_Image /Zend_Service_Rest 3Zend_Service_Flickr" GZend_Service_Flickr_ResultSet  AZend_Service_Flickr_Result ?Zend_Service_Flickr_Image~ 9Zend_Service_Exception} 3Zend_Service_Amazon'| QZend_Service_Amazon_SimilarProduct"{ GZend_Service_Amazon_ResultSetz ?Zend_Service_Amazon_Query!y EZend_Service_Amazon_OfferSetx ?Zend_Service_Amazon_Offer&w OZend_Service_Amazon_ListmaniaListv =Zend_Service_Amazon_Itemu ?Zend_Service_Amazon_Image(t SZend_Service_Amazon_EditorialReview's QZend_Service_Amazon_CustomerReview$r KZend_Service_Amazon_Accessoriesq 7Zend_Service_Abstractp 1Zend_Search_Lucene$o KZend_Search_Lucene_Storage_File/n aZend_Search_Lucene_Storage_File_Filesystem)m UZend_Search_Lucene_Storage_Directory4l kZend_Search_Lucene_Storage_Directory_Filesystem%k MZend_Search_Lucene_Search_Weight*j WZend_Search_Lucene_Search_Weight_Term,i [Zend_Search_Lucene_Search_Weight_Phrase/h aZend_Search_Lucene_Search_Weight_MultiTerm)g UZend_Search_Lucene_Search_Similarity1f eZend_Search_Lucene_Search_Similarity_Default-e ]Zend_Search_Lucene_Search_QueryTokenizer)d UZend_Search_Lucene_Search_QueryToken*c WZend_Search_Lucene_Search_QueryParser'b QZend_Search_Lucene_Search_QueryHit$a KZend_Search_Lucene_Search_Query)` UZend_Search_Lucene_Search_Query_Term+_ YZend_Search_Lucene_Search_Query_Phrase.^ _Zend_Search_Lucene_Search_Query_MultiTerm$] KZend_Search_Lucene_Index_Writer&\ OZend_Search_Lucene_Index_TermInfo"[ GZend_Search_Lucene_Index_Term+Z YZend_Search_Lucene_Index_SegmentWriter)Y UZend_Search_Lucene_Index_SegmentInfo'X QZend_Search_Lucene_Index_FieldInfoW =Zend_Search_Lucene_Field!V EZend_Search_Lucene_Exception U CZend_Search_Lucene_Document,T [Zend_Search_Lucene_Analysis_TokenFilter6S oZend_Search_Lucene_Analysis_TokenFilter_LowerCase&R OZend_Search_Lucene_Analysis_Token)Q UZend_Search_Lucene_Analysis_Analyzer0P cZend_Search_Lucene_Analysis_Analyzer_Common5O mZend_Search_Lucene_Analysis_Analyzer_Common_TextFN Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiveM 7Zend_Search_ExceptionL Zend_Pdf!K EZend_Pdf_UpdateInfoContainerJ -Zend_Pdf_TrailerI ;Zend_Pdf_Trailer_KeeperH AZend_Pdf_Trailer_GeneratorG )Zend_Pdf_StyleF 7Zend_Pdf_StringParserE /Zend_Pdf_ResourceD )Zend_Pdf_ImageC 3Zend_Pdf_Image_TIFFB 1Zend_Pdf_Image_PNGA 3Zend_Pdf_Image_JPEG@ 'Zend_Pdf_Font? 9Zend_Pdf_Font_Standard> /Zend_Pdf_PHPArray   } yX6fE$
fD#oW?+jH 



l
K
%
						[	9	{\C"U4ybG0{]C/|bH,~cR6w]F4
mL0                   " 1Zend_Pdf_Color_RGB! 3Zend_Pdf_Color_HTML  =Zend_Pdf_Color_GrayScale 3Zend_Pdf_Color_CMYK 'Zend_Pdf_Cmap AZend_Pdf_Cmap_TrimmedTable! EZend_Pdf_Cmap_SegmentToDelta AZend_Pdf_Cmap_ByteEncoding& OZend_Pdf_Cmap_ByteEncoding_Static Zend_Mime )Zend_Mime_Part /Zend_Mime_Message 3Zend_Mime_Exception Zend_Mail =Zend_Mail_Transport_Smtp! EZend_Mail_Transport_Sendmail" GZend_Mail_Transport_Exception! EZend_Mail_Transport_Abstract 3Zend_Mail_Exception Zend_Log 1Zend_Log_Exception 7Zend_Log_Adapter_Null 7Zend_Log_Adapter_File AZend_Log_Adapter_Exception
 3Zend_Log_Adapter_Db	 =Zend_Log_Adapter_Console Zend_Json 3Zend_Json_Exception /Zend_Json_Encoder /Zend_Json_Decoder 1Zend_Http_Response 3Zend_Http_Exception -Zend_Http_Client 7Zend_Http_Client_File  AZend_Http_Client_Exception ?Zend_Http_Client_Abstract~ #Zend_Filter} /Zend_Filter_Input| 7Zend_Filter_Exception{ Zend_Feedz 'Zend_Feed_Rssy 3Zend_Feed_Exceptionx 1Zend_Feed_EntryRssw 3Zend_Feed_EntryAtomv ;Zend_Feed_EntryAbstractu /Zend_Feed_Elementt )Zend_Feed_Atoms 1Zend_Feed_Abstractr )Zend_Exceptionq Zend_Dbp 'Zend_Db_Tableo 5Zend_Db_Table_Rowsetn /Zend_Db_Table_Row m CZend_Db_Table_Row_Exceptionl ;Zend_Db_Table_Exceptionk /Zend_Db_Statementj =Zend_Db_Statement_Oracle'i QZend_Db_Statement_Oracle_Exceptionh =Zend_Db_Statement_Mysqli g CZend_Db_Statement_Exceptionf 7Zend_Db_Statement_Db2$e KZend_Db_Statement_Db2_Exceptiond )Zend_Db_Selectc =Zend_Db_Select_Exceptionb -Zend_Db_Profilera 9Zend_Db_Profiler_Query` AZend_Db_Profiler_Exception_ /Zend_Db_Inflector^ /Zend_Db_Exception] AZend_Db_Adapter_Pdo_Sqlite\ ?Zend_Db_Adapter_Pdo_Pgsql[ ?Zend_Db_Adapter_Pdo_MysqlZ ?Zend_Db_Adapter_Pdo_Mssql!Y EZend_Db_Adapter_Pdo_AbstractX 9Zend_Db_Adapter_Oracle%W MZend_Db_Adapter_Oracle_ExceptionV 9Zend_Db_Adapter_MysqliU ?Zend_Db_Adapter_ExceptionT 3Zend_Db_Adapter_Db2"S GZend_Db_Adapter_Db2_ExceptionR =Zend_Db_Adapter_AbstractQ 9Zend_Controller_Router%P MZend_Controller_Router_Exception"O GZend_Controller_Plugin_Broker$N KZend_Controller_Plugin_AbstractM 7Zend_Controller_Front$L KZend_Controller_Front_ExceptionK ?Zend_Controller_ExceptionJ AZend_Controller_Dispatcher%I MZend_Controller_Dispatcher_Token)H UZend_Controller_Dispatcher_ExceptionG 9Zend_Controller_Action%F MZend_Controller_Action_ExceptionE #Zend_ConfigD +Zend_Config_XmlC +Zend_Config_IniB 7Zend_Config_ExceptionA /Zend_Config_Array@ !Zend_Cache? =Zend_Cache_Frontend_Page> AZend_Cache_Frontend_Output!= EZend_Cache_Frontend_Function< =Zend_Cache_Frontend_File; ?Zend_Cache_Frontend_Class: 5Zend_Cache_Exception9 +Zend_Cache_Core8 ;Zend_Cache_Backend_Test7 ?Zend_Cache_Backend_Sqlite6 ;Zend_Cache_Backend_File	5 Zend4 /Zend_XmlRpc_Value3 =Zend_XmlRpc_Value_Struct2 =Zend_XmlRpc_Value_String1 =Zend_XmlRpc_Value_Scalar0 ?Zend_XmlRpc_Value_Integer / CZend_XmlRpc_Value_Exception. =Zend_XmlRpc_Value_Double- AZend_XmlRpc_Value_DateTime!, EZend_XmlRpc_Value_Collection+ ?Zend_XmlRpc_Value_Boolean* =Zend_XmlRpc_Value_Base64) ;Zend_XmlRpc_Value_Array( 7Zend_XmlRpc_Exception' 1Zend_XmlRpc_Client*& WZend_XmlRpc_Client_NamespaceDecorator   k  a?zW5~P-|T&zR$




c
H
'
				m	?	~T,hDX6hI.wT0hK!tW-_@                3 CZend_Auth_Adapter_Interface.2 _Zend_Auth_Adapter_Http_Resolver_Interface1 ;Zend_Acl_Role_Interface 0 CZend_Acl_Resource_Interface/ ?Zend_Acl_Assert_Interface. 3Zend_View_Interface- ;Zend_Validate_Interface%, MZend_Validate_Hostname_Interface%+ MZend_Session_Validator_Interface'* QZend_Session_SaveHandler_Interface) 7Zend_Server_Interface( 9Zend_Request_Interface' +Zend_Pdf_Filter)& UZend_Mail_Storage_Writable_Interface'% QZend_Mail_Storage_Folder_Interface$ AZend_Log_Adapter_Interface'# QZend_Http_Client_Adapter_Interface" 7Zend_Filter_Interface ! CZend_Feed_Builder_Interface   CZend_Db_Statement_Interface+ YZend_Controller_Router_Route_Interface% MZend_Controller_Router_Interface) UZend_Controller_Dispatcher_Interface! EZend_Cache_Backend_Interface  CZend_Auth_Storage_Interface  CZend_Auth_Adapter_Interface. _Zend_Auth_Adapter_Http_Resolver_Interface ;Zend_Acl_Role_Interface  CZend_Acl_Resource_Interface ?Zend_Acl_Assert_Interface 3Zend_View_Interface ;Zend_Validate_Interface% MZend_Session_Validator_Interface' QZend_Session_SaveHandler_Interface 7Zend_Server_Interface 9Zend_Request_Interface +Zend_Pdf_Filter' QZend_Mail_Storage_Folder_Interface AZend_Log_Adapter_Interface' QZend_Http_Client_Adapter_Interface 7Zend_Filter_Interface 
 CZend_Db_Statement_Interface+	 YZend_Controller_Router_Route_Interface% MZend_Controller_Router_Interface) UZend_Controller_Dispatcher_Interface! EZend_Cache_Backend_Interface  CZend_Auth_Storage_Interface  CZend_Auth_Adapter_Interface ;Zend_Acl_Role_Interface  CZend_Acl_Resource_Interface ?Zend_Acl_Assert_Interface  3Zend_View_Interface% MZend_Session_Validator_Interface'~ QZend_Session_SaveHandler_Interface} 7Zend_Server_Interface| 9Zend_Request_Interface{ +Zend_Pdf_Filterz AZend_Log_Adapter_Interface'y QZend_Http_Client_Adapter_Interface x CZend_Db_Statement_Interface+w YZend_Controller_Router_Route_Interface%v MZend_Controller_Router_Interface)u UZend_Controller_Dispatcher_Interface!t EZend_Cache_Backend_Interfaces ;Zend_Acl_Role_Interface r CZend_Acl_Resource_Interfaceq ?Zend_Acl_Assert_Interfacep 3Zend_View_Interfaceo 7Zend_Server_Interfacen 9Zend_Request_Interfacem +Zend_Pdf_Filterl AZend_Log_Adapter_Interface'k QZend_Http_Client_Adapter_Interface j CZend_Db_Statement_Interface+i YZend_Controller_Router_Route_Interface%h MZend_Controller_Router_Interface)g UZend_Controller_Dispatcher_Interface!f EZend_Cache_Backend_Interfacee +Zend_Pdf_Filterd AZend_Log_Adapter_Interface c CZend_Db_Statement_Interface+b YZend_Controller_Router_Route_Interface%a MZend_Controller_Router_Interface%` MZend_Controller_Plugin_Interface)_ UZend_Controller_Dispatcher_Interface!^ EZend_Cache_Backend_Interface] +Zend_Pdf_Filter\ AZend_Log_Adapter_Interface [ CZend_Db_Statement_Interface+Z YZend_Controller_Router_Route_Interface%Y MZend_Controller_Router_Interface%X MZend_Controller_Plugin_Interface)W UZend_Controller_Dispatcher_Interface!V EZend_Cache_Backend_InterfaceU +Zend_Pdf_FilterT AZend_Log_Adapter_Interface S CZend_Db_Statement_Interface%R MZend_Controller_Router_Interface%Q MZend_Controller_Plugin_Interface)P UZend_Controller_Dispatcher_Interface!O EZend_Cache_Backend_Interface"N GZend_Mail_Transport_InterfaceM AZend_Log_Adapter_Interface L CZend_Db_Statement_Interface%K MZend_Controller_Router_Interface%J MZend_Controller_Plugin_Interface)I UZend_Controller_Dispatcher_Interface   a  gI(jJ#|R1wV,}c2



k
4
			V	'V!pR8qS	oEqFr@c6p@                                % MZend_Search_Lucene_Search_Weight* WZend_Search_Lucene_Search_Weight_Term, [Zend_Search_Lucene_Search_Weight_Phrase/  aZend_Search_Lucene_Search_Weight_MultiTerm) UZend_Search_Lucene_Search_Similarity1~ eZend_Search_Lucene_Search_Similarity_Default-} ]Zend_Search_Lucene_Search_QueryTokenizer)| UZend_Search_Lucene_Search_QueryToken*{ WZend_Search_Lucene_Search_QueryParser'z QZend_Search_Lucene_Search_QueryHit$y KZend_Search_Lucene_Search_Query)x UZend_Search_Lucene_Search_Query_Term+w YZend_Search_Lucene_Search_Query_Phrase.v _Zend_Search_Lucene_Search_Query_MultiTerm$u KZend_Search_Lucene_Index_Writer&t OZend_Search_Lucene_Index_TermInfo"s GZend_Search_Lucene_Index_Term+r YZend_Search_Lucene_Index_SegmentWriter)q UZend_Search_Lucene_Index_SegmentInfo'p QZend_Search_Lucene_Index_FieldInfoo =Zend_Search_Lucene_Field!n EZend_Search_Lucene_Exception m CZend_Search_Lucene_Document,l [Zend_Search_Lucene_Analysis_TokenFilter6k oZend_Search_Lucene_Analysis_TokenFilter_LowerCase&j OZend_Search_Lucene_Analysis_Token)i UZend_Search_Lucene_Analysis_Analyzer0h cZend_Search_Lucene_Analysis_Analyzer_Common5g mZend_Search_Lucene_Analysis_Analyzer_Common_TextFf Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitivee 7Zend_Search_Exceptiond Zend_Pdf!c EZend_Pdf_UpdateInfoContainerb -Zend_Pdf_Trailera ;Zend_Pdf_Trailer_Keeper` AZend_Pdf_Trailer_Generator_ )Zend_Pdf_Style^ 7Zend_Pdf_StringParser] /Zend_Pdf_Resource\ 7Zend_Pdf_ImageFactory[ )Zend_Pdf_ImageZ 3Zend_Pdf_Image_TIFFY 1Zend_Pdf_Image_PNGX 3Zend_Pdf_Image_JPEGW 9Zend_Pdf_Resource_Font$V KZend_Pdf_Resource_Font_Standard1U eZend_Pdf_Resource_Font_Standard_ZapfDingbats/T aZend_Pdf_Resource_Font_Standard_TimesRoman0S cZend_Pdf_Resource_Font_Standard_TimesItalic4R kZend_Pdf_Resource_Font_Standard_TimesBoldItalic.Q _Zend_Pdf_Resource_Font_Standard_TimesBold+P YZend_Pdf_Resource_Font_Standard_Symbol5O mZend_Pdf_Resource_Font_Standard_HelveticaOblique9N uZend_Pdf_Resource_Font_Standard_HelveticaBoldOblique2M gZend_Pdf_Resource_Font_Standard_HelveticaBold.L _Zend_Pdf_Resource_Font_Standard_Helvetica3K iZend_Pdf_Resource_Font_Standard_CourierOblique7J qZend_Pdf_Resource_Font_Standard_CourierBoldOblique0I cZend_Pdf_Resource_Font_Standard_CourierBold,H [Zend_Pdf_Resource_Font_Standard_Courier$G KZend_Pdf_Resource_Font_OpenType-F ]Zend_Pdf_Resource_Font_OpenType_TrueTypeE /Zend_Pdf_PHPArrayD +Zend_Pdf_ParserC 9Zend_Pdf_Parser_StreamB 'Zend_Pdf_PageA 'Zend_Pdf_Font @ CZend_Pdf_Filter_Compression$? KZend_Pdf_Filter_Compression_LZW&> OZend_Pdf_Filter_Compression_Flate= =Zend_Pdf_Filter_ASCIIHEX< ;Zend_Pdf_Filter_ASCII85"; GZend_Pdf_FileParserDataSource): UZend_Pdf_FileParserDataSource_String'9 QZend_Pdf_FileParserDataSource_File8 3Zend_Pdf_FileParser7 =Zend_Pdf_FileParser_Font&6 OZend_Pdf_FileParser_Font_OpenType/5 aZend_Pdf_FileParser_Font_OpenType_TrueType4 1Zend_Pdf_Exception3 ;Zend_Pdf_ElementFactory2 -Zend_Pdf_Element1 ;Zend_Pdf_Element_String#0 IZend_Pdf_Element_String_Binary/ ;Zend_Pdf_Element_Stream. AZend_Pdf_Element_Reference%- MZend_Pdf_Element_Reference_Table', QZend_Pdf_Element_Reference_Context+ ;Zend_Pdf_Element_Object#* IZend_Pdf_Element_Object_Stream) =Zend_Pdf_Element_Numeric( 7Zend_Pdf_Element_Null' 7Zend_Pdf_Element_Name & CZend_Pdf_Element_Dictionary% =Zend_Pdf_Element_Boolean$ 9Zend_Pdf_Element_Array# )Zend_Pdf_Color   q  h@%fEaE&d=sQ,




{
j
O
3
				~	[	9	c=+^<lK*}]E(|iO1xO,
vP'^5        !t EZend_Db_Adapter_Pdo_Abstracts 9Zend_Db_Adapter_Oracle%r MZend_Db_Adapter_Oracle_Exceptionq ?Zend_Db_Adapter_Exceptionp 3Zend_Db_Adapter_Db2"o GZend_Db_Adapter_Db2_Exceptionn =Zend_Db_Adapter_Abstractm 9Zend_Controller_Router!l EZend_Controller_Router_Route%k MZend_Controller_Router_Exception"j GZend_Controller_RewriteRouter"i GZend_Controller_Plugin_Broker$h KZend_Controller_Plugin_Abstractg 7Zend_Controller_Front$f KZend_Controller_Front_Exceptione ?Zend_Controller_Exceptiond AZend_Controller_Dispatcher%c MZend_Controller_Dispatcher_Token)b UZend_Controller_Dispatcher_Exceptiona 9Zend_Controller_Action%` MZend_Controller_Action_Exception_ #Zend_Config^ +Zend_Config_Xml] +Zend_Config_Ini\ 7Zend_Config_Exception[ /Zend_Config_ArrayZ !Zend_CacheY =Zend_Cache_Frontend_PageX AZend_Cache_Frontend_Output!W EZend_Cache_Frontend_FunctionV =Zend_Cache_Frontend_FileU ?Zend_Cache_Frontend_ClassT 5Zend_Cache_ExceptionS +Zend_Cache_CoreR ;Zend_Cache_Backend_TestQ ?Zend_Cache_Backend_Sqlite!P EZend_Cache_Backend_MemcachedO ;Zend_Cache_Backend_FileN 9Zend_Cache_Backend_APC	M ZendL /Zend_XmlRpc_ValueK =Zend_XmlRpc_Value_StructJ =Zend_XmlRpc_Value_StringI =Zend_XmlRpc_Value_ScalarH ?Zend_XmlRpc_Value_Integer G CZend_XmlRpc_Value_ExceptionF =Zend_XmlRpc_Value_DoubleE AZend_XmlRpc_Value_DateTime!D EZend_XmlRpc_Value_CollectionC ?Zend_XmlRpc_Value_BooleanB =Zend_XmlRpc_Value_Base64A ;Zend_XmlRpc_Value_Array@ 7Zend_XmlRpc_Exception? 1Zend_XmlRpc_Client*> WZend_XmlRpc_Client_NamespaceDecorator!= EZend_XmlRpc_Client_Exception< Zend_View"; GZend_View_Helper_FormTextarea: ?Zend_View_Helper_FormText 9 CZend_View_Helper_FormSubmit 8 CZend_View_Helper_FormSelect7 AZend_View_Helper_FormReset6 AZend_View_Helper_FormRadio"5 GZend_View_Helper_FormPassword4 ?Zend_View_Helper_FormNote3 AZend_View_Helper_FormImage 2 CZend_View_Helper_FormHidden1 ?Zend_View_Helper_FormFile!0 EZend_View_Helper_FormElement"/ GZend_View_Helper_FormCheckbox . CZend_View_Helper_FormButton- 3Zend_View_Exception, 1Zend_View_Abstract+ Zend_Uri* +Zend_Uri_Mailto) 'Zend_Uri_Http( 1Zend_Uri_Exception' 1Zend_Service_Yahoo$& KZend_Service_Yahoo_WebResultSet!% EZend_Service_Yahoo_WebResult!$ EZend_Service_Yahoo_ResultSet# ?Zend_Service_Yahoo_Result%" MZend_Service_Yahoo_NewsResultSet"! GZend_Service_Yahoo_NewsResult&  OZend_Service_Yahoo_LocalResultSet# IZend_Service_Yahoo_LocalResult& OZend_Service_Yahoo_ImageResultSet# IZend_Service_Yahoo_ImageResult =Zend_Service_Yahoo_Image /Zend_Service_Rest 3Zend_Service_Flickr" GZend_Service_Flickr_ResultSet AZend_Service_Flickr_Result ?Zend_Service_Flickr_Image 9Zend_Service_Exception 3Zend_Service_Amazon' QZend_Service_Amazon_SimilarProduct" GZend_Service_Amazon_ResultSet ?Zend_Service_Amazon_Query! EZend_Service_Amazon_OfferSet ?Zend_Service_Amazon_Offer& OZend_Service_Amazon_ListmaniaList =Zend_Service_Amazon_Item ?Zend_Service_Amazon_Image( SZend_Service_Amazon_EditorialReview' QZend_Service_Amazon_CustomerReview$
 KZend_Service_Amazon_Accessories	 7Zend_Service_Abstract 1Zend_Search_Lucene$ KZend_Search_Lucene_Storage_File/ aZend_Search_Lucene_Storage_File_Filesystem) UZend_Search_Lucene_Storage_Directory4 kZend_Search_Lucene_Storage_Directory_Filesystem   v w]C jF%{aD.dH2 qX<!





_
A
#
					k	J	8		gD.c?!pG$i6wQ1nO7`%I                            5j mZend_Pdf_Resource_Font_Standard_HelveticaOblique9i uZend_Pdf_Resource_Font_Standard_HelveticaBoldOblique2h gZend_Pdf_Resource_Font_Standard_HelveticaBold.g _Zend_Pdf_Resource_Font_Standard_Helvetica3f iZend_Pdf_Resource_Font_Standard_CourierOblique7e qZend_Pdf_Resource_Font_Standard_CourierBoldOblique0d cZend_Pdf_Resource_Font_Standard_CourierBold,c [Zend_Pdf_Resource_Font_Standard_Courier$b KZend_Pdf_Resource_Font_OpenType-a ]Zend_Pdf_Resource_Font_OpenType_TrueType` /Zend_Pdf_PHPArray_ +Zend_Pdf_Parser^ 9Zend_Pdf_Parser_Stream] 'Zend_Pdf_Page\ 'Zend_Pdf_Font [ CZend_Pdf_Filter_Compression$Z KZend_Pdf_Filter_Compression_LZW&Y OZend_Pdf_Filter_Compression_FlateX =Zend_Pdf_Filter_ASCIIHEXW ;Zend_Pdf_Filter_ASCII85"V GZend_Pdf_FileParserDataSource)U UZend_Pdf_FileParserDataSource_String'T QZend_Pdf_FileParserDataSource_FileS 3Zend_Pdf_FileParserR =Zend_Pdf_FileParser_Font&Q OZend_Pdf_FileParser_Font_OpenType/P aZend_Pdf_FileParser_Font_OpenType_TrueTypeO 1Zend_Pdf_ExceptionN ;Zend_Pdf_ElementFactoryM -Zend_Pdf_ElementL ;Zend_Pdf_Element_String#K IZend_Pdf_Element_String_BinaryJ ;Zend_Pdf_Element_StreamI AZend_Pdf_Element_Reference%H MZend_Pdf_Element_Reference_Table'G QZend_Pdf_Element_Reference_ContextF ;Zend_Pdf_Element_Object#E IZend_Pdf_Element_Object_StreamD =Zend_Pdf_Element_NumericC 7Zend_Pdf_Element_NullB 7Zend_Pdf_Element_Name A CZend_Pdf_Element_Dictionary@ =Zend_Pdf_Element_Boolean? 9Zend_Pdf_Element_Array> )Zend_Pdf_Color= 1Zend_Pdf_Color_RGB< 3Zend_Pdf_Color_HTML; =Zend_Pdf_Color_GrayScale: 3Zend_Pdf_Color_CMYK9 'Zend_Pdf_Cmap8 AZend_Pdf_Cmap_TrimmedTable!7 EZend_Pdf_Cmap_SegmentToDelta6 AZend_Pdf_Cmap_ByteEncoding&5 OZend_Pdf_Cmap_ByteEncoding_Static4 Zend_Mime3 )Zend_Mime_Part2 /Zend_Mime_Message1 3Zend_Mime_Exception0 Zend_Mail/ =Zend_Mail_Transport_Smtp!. EZend_Mail_Transport_Sendmail"- GZend_Mail_Transport_Exception!, EZend_Mail_Transport_Abstract+ 3Zend_Mail_Exception* Zend_Log) 1Zend_Log_Exception( 7Zend_Log_Adapter_Null' 7Zend_Log_Adapter_File& AZend_Log_Adapter_Exception% 3Zend_Log_Adapter_Db$ =Zend_Log_Adapter_Console# Zend_Json" 3Zend_Json_Exception! /Zend_Json_Encoder  /Zend_Json_Decoder 1Zend_Http_Response 3Zend_Http_Exception -Zend_Http_Client 7Zend_Http_Client_File AZend_Http_Client_Exception ?Zend_Http_Client_Abstract #Zend_Filter /Zend_Filter_Input 7Zend_Filter_Exception Zend_Feed 'Zend_Feed_Rss 3Zend_Feed_Exception 1Zend_Feed_EntryRss 3Zend_Feed_EntryAtom ;Zend_Feed_EntryAbstract /Zend_Feed_Element )Zend_Feed_Atom 1Zend_Feed_Abstract )Zend_Exception Zend_Db 'Zend_Db_Table
 5Zend_Db_Table_Rowset	 /Zend_Db_Table_Row  CZend_Db_Table_Row_Exception ;Zend_Db_Table_Exception /Zend_Db_Statement =Zend_Db_Statement_Oracle' QZend_Db_Statement_Oracle_Exception =Zend_Db_Statement_Mysqli  CZend_Db_Statement_Exception 7Zend_Db_Statement_Db2$  KZend_Db_Statement_Db2_Exception )Zend_Db_Select~ =Zend_Db_Select_Exception} -Zend_Db_Profiler| 9Zend_Db_Profiler_Query{ AZend_Db_Profiler_Exceptionz /Zend_Db_Inflectory /Zend_Db_Exceptionx AZend_Db_Adapter_Pdo_Sqlitew ?Zend_Db_Adapter_Pdo_Pgsqlv ?Zend_Db_Adapter_Pdo_Mysqlu ?Zend_Db_Adapter_Pdo_Mssql   d  g3 hM1jQ,zFa<



n
D
				f	;	zM[.rGgEtN2U/rW<&|W5                               N AZend_View_Helper_FormImage M CZend_View_Helper_FormHiddenL ?Zend_View_Helper_FormFile!K EZend_View_Helper_FormElement"J GZend_View_Helper_FormCheckbox I CZend_View_Helper_FormButtonH 3Zend_View_ExceptionG 1Zend_View_AbstractF Zend_UriE +Zend_Uri_MailtoD 'Zend_Uri_HttpC 1Zend_Uri_ExceptionB 1Zend_Service_Yahoo$A KZend_Service_Yahoo_WebResultSet!@ EZend_Service_Yahoo_WebResult!? EZend_Service_Yahoo_ResultSet> ?Zend_Service_Yahoo_Result%= MZend_Service_Yahoo_NewsResultSet"< GZend_Service_Yahoo_NewsResult&; OZend_Service_Yahoo_LocalResultSet#: IZend_Service_Yahoo_LocalResult&9 OZend_Service_Yahoo_ImageResultSet#8 IZend_Service_Yahoo_ImageResult7 =Zend_Service_Yahoo_Image6 /Zend_Service_Rest5 3Zend_Service_Flickr"4 GZend_Service_Flickr_ResultSet3 AZend_Service_Flickr_Result2 ?Zend_Service_Flickr_Image1 9Zend_Service_Exception0 3Zend_Service_Amazon'/ QZend_Service_Amazon_SimilarProduct". GZend_Service_Amazon_ResultSet- ?Zend_Service_Amazon_Query!, EZend_Service_Amazon_OfferSet+ ?Zend_Service_Amazon_Offer&* OZend_Service_Amazon_ListmaniaList) =Zend_Service_Amazon_Item( ?Zend_Service_Amazon_Image(' SZend_Service_Amazon_EditorialReview'& QZend_Service_Amazon_CustomerReview$% KZend_Service_Amazon_Accessories$ 7Zend_Service_Abstract# 1Zend_Search_Lucene$" KZend_Search_Lucene_Storage_File/! aZend_Search_Lucene_Storage_File_Filesystem)  UZend_Search_Lucene_Storage_Directory4 kZend_Search_Lucene_Storage_Directory_Filesystem% MZend_Search_Lucene_Search_Weight* WZend_Search_Lucene_Search_Weight_Term, [Zend_Search_Lucene_Search_Weight_Phrase/ aZend_Search_Lucene_Search_Weight_MultiTerm) UZend_Search_Lucene_Search_Similarity1 eZend_Search_Lucene_Search_Similarity_Default- ]Zend_Search_Lucene_Search_QueryTokenizer) UZend_Search_Lucene_Search_QueryToken* WZend_Search_Lucene_Search_QueryParser' QZend_Search_Lucene_Search_QueryHit$ KZend_Search_Lucene_Search_Query) UZend_Search_Lucene_Search_Query_Term+ YZend_Search_Lucene_Search_Query_Phrase. _Zend_Search_Lucene_Search_Query_MultiTerm$ KZend_Search_Lucene_Index_Writer& OZend_Search_Lucene_Index_TermInfo" GZend_Search_Lucene_Index_Term+ YZend_Search_Lucene_Index_SegmentWriter) UZend_Search_Lucene_Index_SegmentInfo' QZend_Search_Lucene_Index_FieldInfo
 =Zend_Search_Lucene_Field!	 EZend_Search_Lucene_Exception  CZend_Search_Lucene_Document, [Zend_Search_Lucene_Analysis_TokenFilter6 oZend_Search_Lucene_Analysis_TokenFilter_LowerCase& OZend_Search_Lucene_Analysis_Token) UZend_Search_Lucene_Analysis_Analyzer0 cZend_Search_Lucene_Analysis_Analyzer_Common5 mZend_Search_Lucene_Analysis_Analyzer_Common_TextF Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive  7Zend_Search_Exception Zend_Pdf!~ EZend_Pdf_UpdateInfoContainer} -Zend_Pdf_Trailer| ;Zend_Pdf_Trailer_Keeper{ AZend_Pdf_Trailer_Generatorz )Zend_Pdf_Styley 7Zend_Pdf_StringParserx /Zend_Pdf_Resourcew 7Zend_Pdf_ImageFactoryv )Zend_Pdf_Imageu 3Zend_Pdf_Image_TIFFt 1Zend_Pdf_Image_PNGs 3Zend_Pdf_Image_JPEGr 9Zend_Pdf_Resource_Font$q KZend_Pdf_Resource_Font_Standard1p eZend_Pdf_Resource_Font_Standard_ZapfDingbats/o aZend_Pdf_Resource_Font_Standard_TimesRoman0n cZend_Pdf_Resource_Font_Standard_TimesItalic4m kZend_Pdf_Resource_Font_Standard_TimesBoldItalic.l _Zend_Pdf_Resource_Font_Standard_TimesBold+k YZend_Pdf_Resource_Font_Standard_Symbol   {  rN*}bD$xT2iD"oJ'





h
I
					h	@	f@$sQ/}\EnT4jP0}iG$fT3pK%   !I EZend_Mail_Transport_Sendmail"H GZend_Mail_Transport_Exception!G EZend_Mail_Transport_AbstractF 3Zend_Mail_ExceptionE Zend_LogD 1Zend_Log_ExceptionC 7Zend_Log_Adapter_NullB 7Zend_Log_Adapter_FileA AZend_Log_Adapter_Exception@ 3Zend_Log_Adapter_Db? =Zend_Log_Adapter_Console> Zend_Json= 3Zend_Json_Exception< /Zend_Json_Encoder; /Zend_Json_Decoder: 1Zend_Http_Response9 3Zend_Http_Exception8 -Zend_Http_Client7 7Zend_Http_Client_File6 AZend_Http_Client_Exception5 ?Zend_Http_Client_Abstract4 #Zend_Filter3 /Zend_Filter_Input2 7Zend_Filter_Exception1 Zend_Feed0 'Zend_Feed_Rss/ 3Zend_Feed_Exception. 1Zend_Feed_EntryRss- 3Zend_Feed_EntryAtom, ;Zend_Feed_EntryAbstract+ /Zend_Feed_Element* )Zend_Feed_Atom) 1Zend_Feed_Abstract( )Zend_Exception' Zend_Db& 'Zend_Db_Table% 5Zend_Db_Table_Rowset$ /Zend_Db_Table_Row # CZend_Db_Table_Row_Exception" ;Zend_Db_Table_Exception! /Zend_Db_Statement  =Zend_Db_Statement_Oracle' QZend_Db_Statement_Oracle_Exception =Zend_Db_Statement_Mysqli  CZend_Db_Statement_Exception 7Zend_Db_Statement_Db2$ KZend_Db_Statement_Db2_Exception )Zend_Db_Select =Zend_Db_Select_Exception -Zend_Db_Profiler 9Zend_Db_Profiler_Query AZend_Db_Profiler_Exception /Zend_Db_Inflector /Zend_Db_Exception AZend_Db_Adapter_Pdo_Sqlite ?Zend_Db_Adapter_Pdo_Pgsql ?Zend_Db_Adapter_Pdo_Mysql ?Zend_Db_Adapter_Pdo_Mssql! EZend_Db_Adapter_Pdo_Abstract 9Zend_Db_Adapter_Oracle% MZend_Db_Adapter_Oracle_Exception ?Zend_Db_Adapter_Exception 3Zend_Db_Adapter_Db2"
 GZend_Db_Adapter_Db2_Exception	 =Zend_Db_Adapter_Abstract 9Zend_Controller_Router! EZend_Controller_Router_Route% MZend_Controller_Router_Exception" GZend_Controller_RewriteRouter" GZend_Controller_Plugin_Broker$ KZend_Controller_Plugin_Abstract 7Zend_Controller_Front$ KZend_Controller_Front_Exception  ?Zend_Controller_Exception AZend_Controller_Dispatcher%~ MZend_Controller_Dispatcher_Token)} UZend_Controller_Dispatcher_Exception| 9Zend_Controller_Action%{ MZend_Controller_Action_Exceptionz #Zend_Configy +Zend_Config_Xmlx +Zend_Config_Iniw 7Zend_Config_Exceptionv !Zend_Cacheu =Zend_Cache_Frontend_Paget AZend_Cache_Frontend_Output!s EZend_Cache_Frontend_Functionr =Zend_Cache_Frontend_Fileq ?Zend_Cache_Frontend_Classp 5Zend_Cache_Exceptiono +Zend_Cache_Coren 1Zend_Cache_Backendm ;Zend_Cache_Backend_Testl ?Zend_Cache_Backend_Sqlite!k EZend_Cache_Backend_Memcachedj ;Zend_Cache_Backend_Filei 9Zend_Cache_Backend_APC	h Zendg /Zend_XmlRpc_Valuef =Zend_XmlRpc_Value_Structe =Zend_XmlRpc_Value_Stringd =Zend_XmlRpc_Value_Scalarc ?Zend_XmlRpc_Value_Integer b CZend_XmlRpc_Value_Exceptiona =Zend_XmlRpc_Value_Double` AZend_XmlRpc_Value_DateTime!_ EZend_XmlRpc_Value_Collection^ ?Zend_XmlRpc_Value_Boolean] =Zend_XmlRpc_Value_Base64\ ;Zend_XmlRpc_Value_Array[ 7Zend_XmlRpc_ExceptionZ 1Zend_XmlRpc_Client*Y WZend_XmlRpc_Client_NamespaceDecorator!X EZend_XmlRpc_Client_ExceptionW Zend_View"V GZend_View_Helper_FormTextareaU ?Zend_View_Helper_FormText T CZend_View_Helper_FormSubmit S CZend_View_Helper_FormSelectR AZend_View_Helper_FormResetQ AZend_View_Helper_FormRadio"P GZend_View_Helper_FormPasswordO ?Zend_View_Helper_FormNote   d  nD!jO8wP0rR9d9



{
S
/

					Y	)QvDpH)iR/Xb5}X7v8                                             8- sZend_Search_Lucene_Index_SegmentWriter_StreamWriter:, wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter++ YZend_Search_Lucene_Index_SegmentMerger6* oZend_Search_Lucene_Index_SegmentInfoPriorityQueue)) UZend_Search_Lucene_Index_SegmentInfo'( QZend_Search_Lucene_Index_FieldInfo' =Zend_Search_Lucene_Field!& EZend_Search_Lucene_Exception % CZend_Search_Lucene_Document,$ [Zend_Search_Lucene_Analysis_TokenFilter6# oZend_Search_Lucene_Analysis_TokenFilter_LowerCase&" OZend_Search_Lucene_Analysis_Token)! UZend_Search_Lucene_Analysis_Analyzer0  cZend_Search_Lucene_Analysis_Analyzer_Common8 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumI Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive5 mZend_Search_Lucene_Analysis_Analyzer_Common_TextF Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive 7Zend_Search_Exception Zend_Pdf! EZend_Pdf_UpdateInfoContainer -Zend_Pdf_Trailer ;Zend_Pdf_Trailer_Keeper AZend_Pdf_Trailer_Generator )Zend_Pdf_Style 7Zend_Pdf_StringParser /Zend_Pdf_Resource 7Zend_Pdf_ImageFactory )Zend_Pdf_Image 3Zend_Pdf_Image_TIFF 1Zend_Pdf_Image_PNG 3Zend_Pdf_Image_JPEG 9Zend_Pdf_Resource_Font$ KZend_Pdf_Resource_Font_Standard1 eZend_Pdf_Resource_Font_Standard_ZapfDingbats/
 aZend_Pdf_Resource_Font_Standard_TimesRoman0	 cZend_Pdf_Resource_Font_Standard_TimesItalic4 kZend_Pdf_Resource_Font_Standard_TimesBoldItalic. _Zend_Pdf_Resource_Font_Standard_TimesBold+ YZend_Pdf_Resource_Font_Standard_Symbol5 mZend_Pdf_Resource_Font_Standard_HelveticaOblique9 uZend_Pdf_Resource_Font_Standard_HelveticaBoldOblique2 gZend_Pdf_Resource_Font_Standard_HelveticaBold. _Zend_Pdf_Resource_Font_Standard_Helvetica3 iZend_Pdf_Resource_Font_Standard_CourierOblique7  qZend_Pdf_Resource_Font_Standard_CourierBoldOblique0 cZend_Pdf_Resource_Font_Standard_CourierBold,~ [Zend_Pdf_Resource_Font_Standard_Courier$} KZend_Pdf_Resource_Font_OpenType-| ]Zend_Pdf_Resource_Font_OpenType_TrueType{ /Zend_Pdf_PHPArrayz +Zend_Pdf_Parsery 9Zend_Pdf_Parser_Streamx 'Zend_Pdf_Pagew 'Zend_Pdf_Font v CZend_Pdf_Filter_Compression$u KZend_Pdf_Filter_Compression_LZW&t OZend_Pdf_Filter_Compression_Flates =Zend_Pdf_Filter_ASCIIHEXr ;Zend_Pdf_Filter_ASCII85"q GZend_Pdf_FileParserDataSource)p UZend_Pdf_FileParserDataSource_String'o QZend_Pdf_FileParserDataSource_Filen 3Zend_Pdf_FileParserm =Zend_Pdf_FileParser_Font&l OZend_Pdf_FileParser_Font_OpenType/k aZend_Pdf_FileParser_Font_OpenType_TrueTypej 1Zend_Pdf_Exceptioni ;Zend_Pdf_ElementFactoryh -Zend_Pdf_Elementg ;Zend_Pdf_Element_String#f IZend_Pdf_Element_String_Binarye ;Zend_Pdf_Element_Streamd AZend_Pdf_Element_Reference%c MZend_Pdf_Element_Reference_Table'b QZend_Pdf_Element_Reference_Contexta ;Zend_Pdf_Element_Object#` IZend_Pdf_Element_Object_Stream_ =Zend_Pdf_Element_Numeric^ 7Zend_Pdf_Element_Null] 7Zend_Pdf_Element_Name \ CZend_Pdf_Element_Dictionary[ =Zend_Pdf_Element_BooleanZ 9Zend_Pdf_Element_ArrayY )Zend_Pdf_ColorX 1Zend_Pdf_Color_RGBW 3Zend_Pdf_Color_HTMLV =Zend_Pdf_Color_GrayScaleU 3Zend_Pdf_Color_CMYKT 'Zend_Pdf_CmapS AZend_Pdf_Cmap_TrimmedTable!R EZend_Pdf_Cmap_SegmentToDeltaQ AZend_Pdf_Cmap_ByteEncoding&P OZend_Pdf_Cmap_ByteEncoding_StaticO Zend_MimeN )Zend_Mime_PartM /Zend_Mime_MessageL 3Zend_Mime_ExceptionK Zend_MailJ =Zend_Mail_Transport_Smtp   j  Y0 rJ^1 oFkM%




a
?
					l	J	'	Y2rM%
yU/
Y6qL]:pVI*
pS1                ! EZend_Cache_Frontend_Function =Zend_Cache_Frontend_File ?Zend_Cache_Frontend_Class 5Zend_Cache_Exception +Zend_Cache_Core 1Zend_Cache_Backend ;Zend_Cache_Backend_Test ?Zend_Cache_Backend_Sqlite! EZend_Cache_Backend_Memcached ;Zend_Cache_Backend_File 9Zend_Cache_Backend_APC	 Zend /Zend_XmlRpc_Value
 =Zend_XmlRpc_Value_Struct	 =Zend_XmlRpc_Value_String =Zend_XmlRpc_Value_Scalar ?Zend_XmlRpc_Value_Integer  CZend_XmlRpc_Value_Exception =Zend_XmlRpc_Value_Double AZend_XmlRpc_Value_DateTime! EZend_XmlRpc_Value_Collection ?Zend_XmlRpc_Value_Boolean =Zend_XmlRpc_Value_Base64  ;Zend_XmlRpc_Value_Array 7Zend_XmlRpc_Exception~ 1Zend_XmlRpc_Client*} WZend_XmlRpc_Client_NamespaceDecorator!| EZend_XmlRpc_Client_Exception{ Zend_View"z GZend_View_Helper_FormTextareay ?Zend_View_Helper_FormText x CZend_View_Helper_FormSubmit w CZend_View_Helper_FormSelectv AZend_View_Helper_FormResetu AZend_View_Helper_FormRadio"t GZend_View_Helper_FormPasswords ?Zend_View_Helper_FormNoter AZend_View_Helper_FormImage q CZend_View_Helper_FormHiddenp ?Zend_View_Helper_FormFile!o EZend_View_Helper_FormElement"n GZend_View_Helper_FormCheckbox m CZend_View_Helper_FormButtonl 3Zend_View_Exceptionk 1Zend_View_Abstractj Zend_Urii +Zend_Uri_Mailtoh 'Zend_Uri_Httpg 1Zend_Uri_Exceptionf 1Zend_Service_Yahoo$e KZend_Service_Yahoo_WebResultSet!d EZend_Service_Yahoo_WebResult!c EZend_Service_Yahoo_ResultSetb ?Zend_Service_Yahoo_Result%a MZend_Service_Yahoo_NewsResultSet"` GZend_Service_Yahoo_NewsResult&_ OZend_Service_Yahoo_LocalResultSet#^ IZend_Service_Yahoo_LocalResult&] OZend_Service_Yahoo_ImageResultSet#\ IZend_Service_Yahoo_ImageResult[ =Zend_Service_Yahoo_ImageZ /Zend_Service_RestY 3Zend_Service_Flickr"X GZend_Service_Flickr_ResultSetW AZend_Service_Flickr_ResultV ?Zend_Service_Flickr_ImageU 9Zend_Service_ExceptionT 3Zend_Service_Amazon'S QZend_Service_Amazon_SimilarProduct"R GZend_Service_Amazon_ResultSetQ ?Zend_Service_Amazon_Query!P EZend_Service_Amazon_OfferSetO ?Zend_Service_Amazon_Offer&N OZend_Service_Amazon_ListmaniaListM =Zend_Service_Amazon_ItemL ?Zend_Service_Amazon_Image(K SZend_Service_Amazon_EditorialReview'J QZend_Service_Amazon_CustomerReview$I KZend_Service_Amazon_AccessoriesH 7Zend_Service_AbstractG 1Zend_Search_Lucene$F KZend_Search_Lucene_Storage_File/E aZend_Search_Lucene_Storage_File_Filesystem)D UZend_Search_Lucene_Storage_Directory4C kZend_Search_Lucene_Storage_Directory_Filesystem%B MZend_Search_Lucene_Search_Weight*A WZend_Search_Lucene_Search_Weight_Term,@ [Zend_Search_Lucene_Search_Weight_Phrase/? aZend_Search_Lucene_Search_Weight_MultiTerm-> ]Zend_Search_Lucene_Search_Weight_Boolean)= UZend_Search_Lucene_Search_Similarity1< eZend_Search_Lucene_Search_Similarity_Default-; ]Zend_Search_Lucene_Search_QueryTokenizer): UZend_Search_Lucene_Search_QueryToken*9 WZend_Search_Lucene_Search_QueryParser'8 QZend_Search_Lucene_Search_QueryHit$7 KZend_Search_Lucene_Search_Query)6 UZend_Search_Lucene_Search_Query_Term+5 YZend_Search_Lucene_Search_Query_Phrase.4 _Zend_Search_Lucene_Search_Query_MultiTerm,3 [Zend_Search_Lucene_Search_Query_Boolean%2 MZend_Search_Lucene_PriorityQueue$1 KZend_Search_Lucene_Index_Writer&0 OZend_Search_Lucene_Index_TermInfo"/ GZend_Search_Lucene_Index_Term+. YZend_Search_Lucene_Index_SegmentWriter   } s[G(pJ!]7~X<iI'




u
T
=
					f	L	,	ybH(uaF.eR'hL1oQ3{ZH,wT>"sO1                  7Zend_Pdf_Element_Null 7Zend_Pdf_Element_Name  CZend_Pdf_Element_Dictionary =Zend_Pdf_Element_Boolean 9Zend_Pdf_Element_Array )Zend_Pdf_Color 1Zend_Pdf_Color_RGB 3Zend_Pdf_Color_HTML =Zend_Pdf_Color_GrayScale 3Zend_Pdf_Color_CMYK
 'Zend_Pdf_Cmap	 AZend_Pdf_Cmap_TrimmedTable! EZend_Pdf_Cmap_SegmentToDelta AZend_Pdf_Cmap_ByteEncoding& OZend_Pdf_Cmap_ByteEncoding_Static Zend_Mime )Zend_Mime_Part /Zend_Mime_Message 3Zend_Mime_Exception Zend_Mail  =Zend_Mail_Transport_Smtp! EZend_Mail_Transport_Sendmail"~ GZend_Mail_Transport_Exception!} EZend_Mail_Transport_Abstract| 3Zend_Mail_Exception{ Zend_Logz 1Zend_Log_Exceptiony 7Zend_Log_Adapter_Nullx 7Zend_Log_Adapter_Filew AZend_Log_Adapter_Exceptionv 3Zend_Log_Adapter_Dbu =Zend_Log_Adapter_Consolet Zend_Jsons 3Zend_Json_Exceptionr /Zend_Json_Encoderq /Zend_Json_Decoderp 1Zend_Http_Responseo 3Zend_Http_Exceptionn 3Zend_Http_CookieJarm -Zend_Http_Cookiel -Zend_Http_Clientk AZend_Http_Client_Exception"j GZend_Http_Client_Adapter_Test$i KZend_Http_Client_Adapter_Socket'h QZend_Http_Client_Adapter_Exceptiong !Zend_Gdataf ;Zend_Gdata_Spreadsheetse 5Zend_Gdata_Exceptiond +Zend_Gdata_Datac 7Zend_Gdata_CodeSearchb 9Zend_Gdata_ClientLogina 3Zend_Gdata_Calendar` 1Zend_Gdata_Blogger_ +Zend_Gdata_Base^ 1Zend_Gdata_AuthSub] #Zend_Filter\ /Zend_Filter_Input[ 7Zend_Filter_ExceptionZ Zend_FeedY 'Zend_Feed_RssX 3Zend_Feed_ExceptionW 1Zend_Feed_EntryRssV 3Zend_Feed_EntryAtomU ;Zend_Feed_EntryAbstractT /Zend_Feed_ElementS )Zend_Feed_AtomR 1Zend_Feed_AbstractQ )Zend_ExceptionP Zend_DbO 'Zend_Db_TableN 5Zend_Db_Table_RowsetM /Zend_Db_Table_Row L CZend_Db_Table_Row_ExceptionK ;Zend_Db_Table_ExceptionJ /Zend_Db_StatementI =Zend_Db_Statement_Oracle'H QZend_Db_Statement_Oracle_ExceptionG =Zend_Db_Statement_Mysqli F CZend_Db_Statement_ExceptionE 7Zend_Db_Statement_Db2$D KZend_Db_Statement_Db2_ExceptionC )Zend_Db_SelectB =Zend_Db_Select_ExceptionA -Zend_Db_Profiler@ 9Zend_Db_Profiler_Query? AZend_Db_Profiler_Exception> /Zend_Db_Inflector= /Zend_Db_Exception< AZend_Db_Adapter_Pdo_Sqlite; ?Zend_Db_Adapter_Pdo_Pgsql: ;Zend_Db_Adapter_Pdo_Oci9 ?Zend_Db_Adapter_Pdo_Mysql8 ?Zend_Db_Adapter_Pdo_Mssql!7 EZend_Db_Adapter_Pdo_Abstract6 9Zend_Db_Adapter_Oracle%5 MZend_Db_Adapter_Oracle_Exception4 ?Zend_Db_Adapter_Exception3 3Zend_Db_Adapter_Db2"2 GZend_Db_Adapter_Db2_Exception1 =Zend_Db_Adapter_Abstract0 9Zend_Controller_Router'/ QZend_Controller_Router_StaticRoute!. EZend_Controller_Router_Route%- MZend_Controller_Router_Exception", GZend_Controller_RewriteRouter"+ GZend_Controller_Response_Http!* EZend_Controller_Response_Cli&) OZend_Controller_Response_Abstract!( EZend_Controller_Request_Http&' OZend_Controller_Request_Exception%& MZend_Controller_Request_Abstract"% GZend_Controller_Plugin_Broker$$ KZend_Controller_Plugin_Abstract# 7Zend_Controller_Front" ?Zend_Controller_Exception! AZend_Controller_Dispatcher)  UZend_Controller_Dispatcher_Exception 9Zend_Controller_Action #Zend_Config +Zend_Config_Xml +Zend_Config_Ini 7Zend_Config_Exception !Zend_Cache =Zend_Cache_Frontend_Page AZend_Cache_Frontend_Output   ^  mD!f3	tN.kL4]"



F
			t	@	uZ>'	w^9(q$]#~Z5x>f@W)      +r YZend_Search_Lucene_Search_Query_Phrase.q _Zend_Search_Lucene_Search_Query_MultiTerm*p WZend_Search_Lucene_Search_Query_Empty,o [Zend_Search_Lucene_Search_Query_Boolean:n wZend_Search_Lucene_Search_BooleanExpressionRecognizer%m MZend_Search_Lucene_PriorityQueue$l KZend_Search_Lucene_Index_Writer&k OZend_Search_Lucene_Index_TermInfo"j GZend_Search_Lucene_Index_Term+i YZend_Search_Lucene_Index_SegmentWriter8h sZend_Search_Lucene_Index_SegmentWriter_StreamWriter:g wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter+f YZend_Search_Lucene_Index_SegmentMerger6e oZend_Search_Lucene_Index_SegmentInfoPriorityQueue)d UZend_Search_Lucene_Index_SegmentInfo'c QZend_Search_Lucene_Index_FieldInfo!b EZend_Search_Lucene_FSMActiona 9Zend_Search_Lucene_FSM` =Zend_Search_Lucene_Field!_ EZend_Search_Lucene_Exception ^ CZend_Search_Lucene_Document,] [Zend_Search_Lucene_Analysis_TokenFilter6\ oZend_Search_Lucene_Analysis_TokenFilter_StopWords7[ qZend_Search_Lucene_Analysis_TokenFilter_ShortWords6Z oZend_Search_Lucene_Analysis_TokenFilter_LowerCase&Y OZend_Search_Lucene_Analysis_Token)X UZend_Search_Lucene_Analysis_Analyzer0W cZend_Search_Lucene_Analysis_Analyzer_Common8V sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumIU Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive5T mZend_Search_Lucene_Analysis_Analyzer_Common_TextFS Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiveR 7Zend_Search_ExceptionQ 'Zend_RegistryP Zend_Pdf!O EZend_Pdf_UpdateInfoContainerN -Zend_Pdf_TrailerM ;Zend_Pdf_Trailer_KeeperL AZend_Pdf_Trailer_GeneratorK )Zend_Pdf_StyleJ 7Zend_Pdf_StringParserI /Zend_Pdf_ResourceH 7Zend_Pdf_ImageFactoryG )Zend_Pdf_ImageF 3Zend_Pdf_Image_TIFFE 1Zend_Pdf_Image_PNGD 3Zend_Pdf_Image_JPEGC 9Zend_Pdf_Resource_Font$B KZend_Pdf_Resource_Font_Standard1A eZend_Pdf_Resource_Font_Standard_ZapfDingbats/@ aZend_Pdf_Resource_Font_Standard_TimesRoman0? cZend_Pdf_Resource_Font_Standard_TimesItalic4> kZend_Pdf_Resource_Font_Standard_TimesBoldItalic.= _Zend_Pdf_Resource_Font_Standard_TimesBold+< YZend_Pdf_Resource_Font_Standard_Symbol5; mZend_Pdf_Resource_Font_Standard_HelveticaOblique9: uZend_Pdf_Resource_Font_Standard_HelveticaBoldOblique29 gZend_Pdf_Resource_Font_Standard_HelveticaBold.8 _Zend_Pdf_Resource_Font_Standard_Helvetica37 iZend_Pdf_Resource_Font_Standard_CourierOblique76 qZend_Pdf_Resource_Font_Standard_CourierBoldOblique05 cZend_Pdf_Resource_Font_Standard_CourierBold,4 [Zend_Pdf_Resource_Font_Standard_Courier$3 KZend_Pdf_Resource_Font_OpenType-2 ]Zend_Pdf_Resource_Font_OpenType_TrueType1 /Zend_Pdf_PHPArray0 +Zend_Pdf_Parser/ 9Zend_Pdf_Parser_Stream. 'Zend_Pdf_Page- 'Zend_Pdf_Font , CZend_Pdf_Filter_Compression$+ KZend_Pdf_Filter_Compression_LZW&* OZend_Pdf_Filter_Compression_Flate) =Zend_Pdf_Filter_ASCIIHEX( ;Zend_Pdf_Filter_ASCII85"' GZend_Pdf_FileParserDataSource)& UZend_Pdf_FileParserDataSource_String'% QZend_Pdf_FileParserDataSource_File$ 3Zend_Pdf_FileParser# =Zend_Pdf_FileParser_Font&" OZend_Pdf_FileParser_Font_OpenType/! aZend_Pdf_FileParser_Font_OpenType_TrueType  1Zend_Pdf_Exception ;Zend_Pdf_ElementFactory -Zend_Pdf_Element ;Zend_Pdf_Element_String# IZend_Pdf_Element_String_Binary ;Zend_Pdf_Element_Stream AZend_Pdf_Element_Reference% MZend_Pdf_Element_Reference_Table' QZend_Pdf_Element_Reference_Context ;Zend_Pdf_Element_Object# IZend_Pdf_Element_Object_Stream =Zend_Pdf_Element_Numeric   f  wA\'a0pGlO1



d
@
					^	3	xS1`:kA^C(hC!oL(}kFnS5      X ?Zend_XmlRpc_Request_StdinW =Zend_XmlRpc_Request_HttpV /Zend_XmlRpc_FaultU 7Zend_XmlRpc_ExceptionT 1Zend_XmlRpc_Client#S IZend_XmlRpc_Client_ServerProxy+R YZend_XmlRpc_Client_ServerIntrospection+Q YZend_XmlRpc_Client_IntrospectException%P MZend_XmlRpc_Client_HttpException&O OZend_XmlRpc_Client_FaultException!N EZend_XmlRpc_Client_ExceptionM Zend_ViewL 5Zend_View_Helper_UrlK ?Zend_View_Helper_HtmlList"J GZend_View_Helper_FormTextareaI ?Zend_View_Helper_FormText H CZend_View_Helper_FormSubmit G CZend_View_Helper_FormSelectF AZend_View_Helper_FormResetE AZend_View_Helper_FormRadio"D GZend_View_Helper_FormPasswordC ?Zend_View_Helper_FormNoteB AZend_View_Helper_FormImage A CZend_View_Helper_FormHidden@ ?Zend_View_Helper_FormFile!? EZend_View_Helper_FormElement"> GZend_View_Helper_FormCheckbox = CZend_View_Helper_FormButton< 3Zend_View_Exception; 1Zend_View_Abstract: Zend_Uri9 +Zend_Uri_Mailto8 'Zend_Uri_Http7 1Zend_Uri_Exception6 1Zend_Service_Yahoo$5 KZend_Service_Yahoo_WebResultSet!4 EZend_Service_Yahoo_WebResult!3 EZend_Service_Yahoo_ResultSet2 ?Zend_Service_Yahoo_Result%1 MZend_Service_Yahoo_NewsResultSet"0 GZend_Service_Yahoo_NewsResult&/ OZend_Service_Yahoo_LocalResultSet#. IZend_Service_Yahoo_LocalResult&- OZend_Service_Yahoo_ImageResultSet#, IZend_Service_Yahoo_ImageResult+ =Zend_Service_Yahoo_Image* /Zend_Service_Rest) 3Zend_Service_Flickr"( GZend_Service_Flickr_ResultSet' AZend_Service_Flickr_Result& ?Zend_Service_Flickr_Image% 9Zend_Service_Exception$ 3Zend_Service_Amazon'# QZend_Service_Amazon_SimilarProduct"" GZend_Service_Amazon_ResultSet! ?Zend_Service_Amazon_Query!  EZend_Service_Amazon_OfferSet ?Zend_Service_Amazon_Offer& OZend_Service_Amazon_ListmaniaList =Zend_Service_Amazon_Item ?Zend_Service_Amazon_Image( SZend_Service_Amazon_EditorialReview' QZend_Service_Amazon_CustomerReview$ KZend_Service_Amazon_Accessories 7Zend_Service_Abstract 9Zend_Server_Reflection' QZend_Server_Reflection_ReturnValue% MZend_Server_Reflection_Prototype% MZend_Server_Reflection_Parameter  CZend_Server_Reflection_Node" GZend_Server_Reflection_Method$ KZend_Server_Reflection_Function- ]Zend_Server_Reflection_Function_Abstract% MZend_Server_Reflection_Exception! EZend_Server_Reflection_Class 7Zend_Server_Exception 5Zend_Server_Abstract 1Zend_Search_Lucene$
 KZend_Search_Lucene_Storage_File/	 aZend_Search_Lucene_Storage_File_Filesystem) UZend_Search_Lucene_Storage_Directory4 kZend_Search_Lucene_Storage_Directory_Filesystem% MZend_Search_Lucene_Search_Weight* WZend_Search_Lucene_Search_Weight_Term, [Zend_Search_Lucene_Search_Weight_Phrase/ aZend_Search_Lucene_Search_Weight_MultiTerm+ YZend_Search_Lucene_Search_Weight_Empty- ]Zend_Search_Lucene_Search_Weight_Boolean)  UZend_Search_Lucene_Search_Similarity1 eZend_Search_Lucene_Search_Similarity_Default)~ UZend_Search_Lucene_Search_QueryToken3} iZend_Search_Lucene_Search_QueryParserException1| eZend_Search_Lucene_Search_QueryParserContext*{ WZend_Search_Lucene_Search_QueryParser)z UZend_Search_Lucene_Search_QueryLexer'y QZend_Search_Lucene_Search_QueryHit)x UZend_Search_Lucene_Search_QueryEntry.w _Zend_Search_Lucene_Search_QueryEntry_Term2v gZend_Search_Lucene_Search_QueryEntry_Subquery0u cZend_Search_Lucene_Search_QueryEntry_Phrase$t KZend_Search_Lucene_Search_Query)s UZend_Search_Lucene_Search_Query_Term   { _>#xW3lR)
]=]:





X
5
				~	T	/	i@mL&
{Y7{\C"U4ybG0{]C/z[=%          S 5Zend_Gdata_ExceptionR +Zend_Gdata_DataQ 7Zend_Gdata_CodeSearchP 9Zend_Gdata_ClientLoginO 3Zend_Gdata_CalendarN 1Zend_Gdata_BloggerM +Zend_Gdata_Base&L OZend_Gdata_BadMethodCallExceptionK 1Zend_Gdata_AuthSubJ =Zend_Gdata_AuthExceptionI #Zend_FilterH /Zend_Filter_InputG 7Zend_Filter_ExceptionF Zend_FeedE 'Zend_Feed_RssD 3Zend_Feed_ExceptionC 1Zend_Feed_EntryRssB 3Zend_Feed_EntryAtomA ;Zend_Feed_EntryAbstract@ /Zend_Feed_Element? )Zend_Feed_Atom> 1Zend_Feed_Abstract= )Zend_Exception< Zend_Db; 'Zend_Db_Table: 5Zend_Db_Table_Rowset9 /Zend_Db_Table_Row 8 CZend_Db_Table_Row_Exception7 ;Zend_Db_Table_Exception6 /Zend_Db_Statement5 =Zend_Db_Statement_Oracle'4 QZend_Db_Statement_Oracle_Exception3 =Zend_Db_Statement_Mysqli 2 CZend_Db_Statement_Exception1 7Zend_Db_Statement_Db2$0 KZend_Db_Statement_Db2_Exception/ )Zend_Db_Select. =Zend_Db_Select_Exception- -Zend_Db_Profiler, 9Zend_Db_Profiler_Query+ AZend_Db_Profiler_Exception* /Zend_Db_Inflector) /Zend_Db_Exception( AZend_Db_Adapter_Pdo_Sqlite' ?Zend_Db_Adapter_Pdo_Pgsql& ;Zend_Db_Adapter_Pdo_Oci% ?Zend_Db_Adapter_Pdo_Mysql$ ?Zend_Db_Adapter_Pdo_Mssql!# EZend_Db_Adapter_Pdo_Abstract" 9Zend_Db_Adapter_Oracle%! MZend_Db_Adapter_Oracle_Exception  ?Zend_Db_Adapter_Exception 3Zend_Db_Adapter_Db2" GZend_Db_Adapter_Db2_Exception =Zend_Db_Adapter_Abstract Zend_Date 3Zend_Date_Exception 5Zend_Date_DateObject -Zend_Date_Cities 9Zend_Controller_Router' QZend_Controller_Router_StaticRoute! EZend_Controller_Router_Route% MZend_Controller_Router_Exception" GZend_Controller_RewriteRouter" GZend_Controller_Response_Http' QZend_Controller_Response_Exception! EZend_Controller_Response_Cli& OZend_Controller_Response_Abstract! EZend_Controller_Request_Http& OZend_Controller_Request_Exception% MZend_Controller_Request_Abstract" GZend_Controller_Plugin_Broker$ KZend_Controller_Plugin_Abstract
 7Zend_Controller_Front	 ?Zend_Controller_Exception AZend_Controller_Dispatcher) UZend_Controller_Dispatcher_Exception 9Zend_Controller_Action #Zend_Config +Zend_Config_Xml +Zend_Config_Ini 7Zend_Config_Exception !Zend_Cache  =Zend_Cache_Frontend_Page AZend_Cache_Frontend_Output!~ EZend_Cache_Frontend_Function} =Zend_Cache_Frontend_File| ?Zend_Cache_Frontend_Class{ 5Zend_Cache_Exceptionz +Zend_Cache_Corey 1Zend_Cache_Backend$x KZend_Cache_Backend_ZendPlatformw ;Zend_Cache_Backend_Testv ?Zend_Cache_Backend_Sqlite!u EZend_Cache_Backend_Memcachedt ;Zend_Cache_Backend_Files 9Zend_Cache_Backend_APCr Zend_Aclq 'Zend_Acl_Rolep 9Zend_Acl_Role_Registry%o MZend_Acl_Role_Registry_Exceptionn /Zend_Acl_Resourcem 1Zend_Acl_Exception	l Zendk /Zend_XmlRpc_Valuej =Zend_XmlRpc_Value_Structi =Zend_XmlRpc_Value_Stringh =Zend_XmlRpc_Value_Scalarg ?Zend_XmlRpc_Value_Integer f CZend_XmlRpc_Value_Exceptione =Zend_XmlRpc_Value_Doubled AZend_XmlRpc_Value_DateTime!c EZend_XmlRpc_Value_Collectionb ?Zend_XmlRpc_Value_Booleana =Zend_XmlRpc_Value_Base64` ;Zend_XmlRpc_Value_Array_ 1Zend_XmlRpc_Server^ =Zend_XmlRpc_Server_Fault!] EZend_XmlRpc_Server_Exception\ =Zend_XmlRpc_Server_Cache[ 5Zend_XmlRpc_ResponseZ ?Zend_XmlRpc_Response_HttpY 3Zend_XmlRpc_Request   y U.oS8a@'w\K/
nL1




u
X
<
						b	F	'	zS*~T1z_H)`@bI)tIc?)i9           0L cZend_Pdf_Resource_Font_Standard_CourierBold,K [Zend_Pdf_Resource_Font_Standard_Courier$J KZend_Pdf_Resource_Font_OpenType-I ]Zend_Pdf_Resource_Font_OpenType_TrueTypeH /Zend_Pdf_PHPArrayG +Zend_Pdf_ParserF 9Zend_Pdf_Parser_StreamE 'Zend_Pdf_PageD 'Zend_Pdf_Font C CZend_Pdf_Filter_Compression$B KZend_Pdf_Filter_Compression_LZW&A OZend_Pdf_Filter_Compression_Flate@ =Zend_Pdf_Filter_ASCIIHEX? ;Zend_Pdf_Filter_ASCII85"> GZend_Pdf_FileParserDataSource)= UZend_Pdf_FileParserDataSource_String'< QZend_Pdf_FileParserDataSource_File; 3Zend_Pdf_FileParser: =Zend_Pdf_FileParser_Font&9 OZend_Pdf_FileParser_Font_OpenType/8 aZend_Pdf_FileParser_Font_OpenType_TrueType7 1Zend_Pdf_Exception6 ;Zend_Pdf_ElementFactory5 -Zend_Pdf_Element4 ;Zend_Pdf_Element_String#3 IZend_Pdf_Element_String_Binary2 ;Zend_Pdf_Element_Stream1 AZend_Pdf_Element_Reference%0 MZend_Pdf_Element_Reference_Table'/ QZend_Pdf_Element_Reference_Context. ;Zend_Pdf_Element_Object#- IZend_Pdf_Element_Object_Stream, =Zend_Pdf_Element_Numeric+ 7Zend_Pdf_Element_Null* 7Zend_Pdf_Element_Name ) CZend_Pdf_Element_Dictionary( =Zend_Pdf_Element_Boolean' 9Zend_Pdf_Element_Array& )Zend_Pdf_Color% 1Zend_Pdf_Color_RGB$ 3Zend_Pdf_Color_HTML# =Zend_Pdf_Color_GrayScale" 3Zend_Pdf_Color_CMYK! 'Zend_Pdf_Cmap  AZend_Pdf_Cmap_TrimmedTable! EZend_Pdf_Cmap_SegmentToDelta AZend_Pdf_Cmap_ByteEncoding& OZend_Pdf_Cmap_ByteEncoding_Static Zend_Mime )Zend_Mime_Part /Zend_Mime_Message 3Zend_Mime_Exception %Zend_Measure 3Zend_Measure_Weight 3Zend_Measure_Volume% MZend_Measure_Viscosity_Kinematic# IZend_Measure_Viscosity_Dynamic 3Zend_Measure_Torque =Zend_Measure_Temperature 1Zend_Measure_Speed 7Zend_Measure_Pressure 1Zend_Measure_Power 3Zend_Measure_Number 9Zend_Measure_Lightness 3Zend_Measure_Length ?Zend_Measure_Illumination
 9Zend_Measure_Frequency	 1Zend_Measure_Force =Zend_Measure_Flow_Volume 9Zend_Measure_Flow_Mole 9Zend_Measure_Flow_Mass 9Zend_Measure_Exception 3Zend_Measure_Energy 5Zend_Measure_Density 5Zend_Measure_Current  CZend_Measure_Cooking_Weight   CZend_Measure_Cooking_Volume =Zend_Measure_Capacitance~ 3Zend_Measure_Binary} /Zend_Measure_Area| 1Zend_Measure_Angle{ ?Zend_Measure_Accelerationz 7Zend_Measure_Abstracty Zend_Mailx =Zend_Mail_Transport_Smtp!w EZend_Mail_Transport_Sendmail"v GZend_Mail_Transport_Exception!u EZend_Mail_Transport_Abstractt 3Zend_Mail_Exceptions Zend_Logr 1Zend_Log_Exceptionq 7Zend_Log_Adapter_Nullp 7Zend_Log_Adapter_Fileo AZend_Log_Adapter_Exceptionn 3Zend_Log_Adapter_Dbm =Zend_Log_Adapter_Consolel #Zend_Localek -Zend_Locale_Mathj =Zend_Locale_Math_PhpMathi AZend_Locale_Math_Exceptionh 1Zend_Locale_Formatg 7Zend_Locale_Exceptionf -Zend_Locale_Datae Zend_Jsond 3Zend_Json_Exceptionc /Zend_Json_Encoderb /Zend_Json_Decodera 1Zend_Http_Response` 3Zend_Http_Exception_ 3Zend_Http_CookieJar^ -Zend_Http_Cookie] -Zend_Http_Client\ AZend_Http_Client_Exception"[ GZend_Http_Client_Adapter_Test$Z KZend_Http_Client_Adapter_Socket#Y IZend_Http_Client_Adapter_Proxy'X QZend_Http_Client_Adapter_ExceptionW !Zend_GdataV ;Zend_Gdata_Spreadsheets(U SZend_Gdata_InvalidArgumentExceptionT =Zend_Gdata_HttpException   W  \&O{S4t]:M


W
*
 			Q	!sHt8	h*k>zM"[.l9	zM       # 5Zend_Server_Abstract" 1Zend_Search_Lucene$! KZend_Search_Lucene_Storage_File/  aZend_Search_Lucene_Storage_File_Filesystem) UZend_Search_Lucene_Storage_Directory4 kZend_Search_Lucene_Storage_Directory_Filesystem% MZend_Search_Lucene_Search_Weight* WZend_Search_Lucene_Search_Weight_Term, [Zend_Search_Lucene_Search_Weight_Phrase/ aZend_Search_Lucene_Search_Weight_MultiTerm+ YZend_Search_Lucene_Search_Weight_Empty- ]Zend_Search_Lucene_Search_Weight_Boolean) UZend_Search_Lucene_Search_Similarity1 eZend_Search_Lucene_Search_Similarity_Default) UZend_Search_Lucene_Search_QueryToken3 iZend_Search_Lucene_Search_QueryParserException1 eZend_Search_Lucene_Search_QueryParserContext* WZend_Search_Lucene_Search_QueryParser) UZend_Search_Lucene_Search_QueryLexer' QZend_Search_Lucene_Search_QueryHit) UZend_Search_Lucene_Search_QueryEntry. _Zend_Search_Lucene_Search_QueryEntry_Term2 gZend_Search_Lucene_Search_QueryEntry_Subquery0 cZend_Search_Lucene_Search_QueryEntry_Phrase$ KZend_Search_Lucene_Search_Query)
 UZend_Search_Lucene_Search_Query_Term+	 YZend_Search_Lucene_Search_Query_Phrase. _Zend_Search_Lucene_Search_Query_MultiTerm* WZend_Search_Lucene_Search_Query_Empty, [Zend_Search_Lucene_Search_Query_Boolean: wZend_Search_Lucene_Search_BooleanExpressionRecognizer% MZend_Search_Lucene_PriorityQueue$ KZend_Search_Lucene_Index_Writer& OZend_Search_Lucene_Index_TermInfo" GZend_Search_Lucene_Index_Term+  YZend_Search_Lucene_Index_SegmentWriter8 sZend_Search_Lucene_Index_SegmentWriter_StreamWriter:~ wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter+} YZend_Search_Lucene_Index_SegmentMerger6| oZend_Search_Lucene_Index_SegmentInfoPriorityQueue){ UZend_Search_Lucene_Index_SegmentInfo'z QZend_Search_Lucene_Index_FieldInfo!y EZend_Search_Lucene_FSMActionx 9Zend_Search_Lucene_FSMw =Zend_Search_Lucene_Field!v EZend_Search_Lucene_Exception u CZend_Search_Lucene_Document,t [Zend_Search_Lucene_Analysis_TokenFilter6s oZend_Search_Lucene_Analysis_TokenFilter_StopWords7r qZend_Search_Lucene_Analysis_TokenFilter_ShortWords6q oZend_Search_Lucene_Analysis_TokenFilter_LowerCase&p OZend_Search_Lucene_Analysis_Token)o UZend_Search_Lucene_Analysis_Analyzer0n cZend_Search_Lucene_Analysis_Analyzer_Common8m sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumIl Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive5k mZend_Search_Lucene_Analysis_Analyzer_Common_TextFj Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitivei 7Zend_Search_Exceptionh 'Zend_Registryg Zend_Pdf!f EZend_Pdf_UpdateInfoContainere -Zend_Pdf_Trailerd ;Zend_Pdf_Trailer_Keeperc AZend_Pdf_Trailer_Generatorb )Zend_Pdf_Stylea 7Zend_Pdf_StringParser` /Zend_Pdf_Resource_ 7Zend_Pdf_ImageFactory^ )Zend_Pdf_Image] 3Zend_Pdf_Image_TIFF\ 1Zend_Pdf_Image_PNG[ 3Zend_Pdf_Image_JPEGZ 9Zend_Pdf_Resource_Font$Y KZend_Pdf_Resource_Font_Standard1X eZend_Pdf_Resource_Font_Standard_ZapfDingbats/W aZend_Pdf_Resource_Font_Standard_TimesRoman0V cZend_Pdf_Resource_Font_Standard_TimesItalic4U kZend_Pdf_Resource_Font_Standard_TimesBoldItalic.T _Zend_Pdf_Resource_Font_Standard_TimesBold+S YZend_Pdf_Resource_Font_Standard_Symbol5R mZend_Pdf_Resource_Font_Standard_HelveticaOblique9Q uZend_Pdf_Resource_Font_Standard_HelveticaBoldOblique2P gZend_Pdf_Resource_Font_Standard_HelveticaBold.O _Zend_Pdf_Resource_Font_Standard_Helvetica3N iZend_Pdf_Resource_Font_Standard_CourierOblique7M qZend_Pdf_Resource_Font_Standard_CourierBoldOblique   r  c;tU7uK)uV4mC




\
7
					f	Q	6	 	vQ/}Z6yT*|aC)jE$	^=zmR8hO+	             Zend_Auth ?Zend_Auth_Storage_Session  CZend_Auth_Storage_Exception -Zend_Auth_Result 3Zend_Auth_Exception  CZend_Auth_Adapter_Exception =Zend_Auth_Adapter_Digest Zend_Acl 'Zend_Acl_Role 9Zend_Acl_Role_Registry% MZend_Acl_Role_Registry_Exception
 /Zend_Acl_Resource	 1Zend_Acl_Exception	 Zend /Zend_XmlRpc_Value =Zend_XmlRpc_Value_Struct =Zend_XmlRpc_Value_String =Zend_XmlRpc_Value_Scalar ?Zend_XmlRpc_Value_Integer  CZend_XmlRpc_Value_Exception =Zend_XmlRpc_Value_Double  AZend_XmlRpc_Value_DateTime! EZend_XmlRpc_Value_Collection~ ?Zend_XmlRpc_Value_Boolean} =Zend_XmlRpc_Value_Base64| ;Zend_XmlRpc_Value_Array{ 1Zend_XmlRpc_Serverz =Zend_XmlRpc_Server_Fault!y EZend_XmlRpc_Server_Exceptionx =Zend_XmlRpc_Server_Cachew 5Zend_XmlRpc_Responsev ?Zend_XmlRpc_Response_Httpu 3Zend_XmlRpc_Requestt ?Zend_XmlRpc_Request_Stdins =Zend_XmlRpc_Request_Httpr /Zend_XmlRpc_Faultq 7Zend_XmlRpc_Exceptionp 1Zend_XmlRpc_Client#o IZend_XmlRpc_Client_ServerProxy+n YZend_XmlRpc_Client_ServerIntrospection+m YZend_XmlRpc_Client_IntrospectException%l MZend_XmlRpc_Client_HttpException&k OZend_XmlRpc_Client_FaultException!j EZend_XmlRpc_Client_Exceptioni Zend_Viewh 5Zend_View_Helper_Urlg ?Zend_View_Helper_HtmlList"f GZend_View_Helper_FormTextareae ?Zend_View_Helper_FormText d CZend_View_Helper_FormSubmit c CZend_View_Helper_FormSelectb AZend_View_Helper_FormReseta AZend_View_Helper_FormRadio"` GZend_View_Helper_FormPassword_ ?Zend_View_Helper_FormNote^ AZend_View_Helper_FormImage ] CZend_View_Helper_FormHidden\ ?Zend_View_Helper_FormFile![ EZend_View_Helper_FormElement"Z GZend_View_Helper_FormCheckbox Y CZend_View_Helper_FormButtonX 3Zend_View_ExceptionW 1Zend_View_AbstractV Zend_UriU +Zend_Uri_MailtoT 'Zend_Uri_HttpS 1Zend_Uri_ExceptionR %Zend_Session)Q UZend_Session_Validator_HttpUserAgent$P KZend_Session_Validator_AbstractO 9Zend_Session_ExceptionN /Zend_Session_CoreM 1Zend_Service_Yahoo$L KZend_Service_Yahoo_WebResultSet!K EZend_Service_Yahoo_WebResult!J EZend_Service_Yahoo_ResultSetI ?Zend_Service_Yahoo_Result%H MZend_Service_Yahoo_NewsResultSet"G GZend_Service_Yahoo_NewsResult&F OZend_Service_Yahoo_LocalResultSet#E IZend_Service_Yahoo_LocalResult&D OZend_Service_Yahoo_ImageResultSet#C IZend_Service_Yahoo_ImageResultB =Zend_Service_Yahoo_ImageA /Zend_Service_Rest@ 3Zend_Service_Flickr"? GZend_Service_Flickr_ResultSet> AZend_Service_Flickr_Result= ?Zend_Service_Flickr_Image< 9Zend_Service_Exception; 3Zend_Service_Amazon': QZend_Service_Amazon_SimilarProduct"9 GZend_Service_Amazon_ResultSet8 ?Zend_Service_Amazon_Query!7 EZend_Service_Amazon_OfferSet6 ?Zend_Service_Amazon_Offer&5 OZend_Service_Amazon_ListmaniaList4 =Zend_Service_Amazon_Item3 ?Zend_Service_Amazon_Image(2 SZend_Service_Amazon_EditorialReview'1 QZend_Service_Amazon_CustomerReview$0 KZend_Service_Amazon_Accessories/ 7Zend_Service_Abstract. 9Zend_Server_Reflection'- QZend_Server_Reflection_ReturnValue%, MZend_Server_Reflection_Prototype%+ MZend_Server_Reflection_Parameter * CZend_Server_Reflection_Node") GZend_Server_Reflection_Method$( KZend_Server_Reflection_Function-' ]Zend_Server_Reflection_Function_Abstract%& MZend_Server_Reflection_Exception!% EZend_Server_Reflection_Class$ 7Zend_Server_Exception   y	 zZ2zW6#`4sM$[5



e
@
'

					y	W	.	dA'|e=tT0pP4iQ3dP/|^F)~W/	               " GZend_Http_Client_Adapter_Test$ KZend_Http_Client_Adapter_Socket# IZend_Http_Client_Adapter_Proxy' QZend_Http_Client_Adapter_Exception
 !Zend_Gdata	 ;Zend_Gdata_Spreadsheets( SZend_Gdata_InvalidArgumentException =Zend_Gdata_HttpException 5Zend_Gdata_Exception +Zend_Gdata_Data 7Zend_Gdata_CodeSearch 9Zend_Gdata_ClientLogin 3Zend_Gdata_Calendar 1Zend_Gdata_Blogger  +Zend_Gdata_Base& OZend_Gdata_BadMethodCallException~ 1Zend_Gdata_AuthSub} =Zend_Gdata_AuthException| #Zend_Filter{ 7Zend_Filter_StripTagsz 9Zend_Filter_StringTrimy ?Zend_Filter_StringToLowerx 5Zend_Filter_RealPathw +Zend_Filter_Intv /Zend_Filter_Inputu =Zend_Filter_HtmlEntitiest 7Zend_Filter_Exceptions +Zend_Filter_Dirr 1Zend_Filter_Digitsq 5Zend_Filter_BaseNamep /Zend_Filter_Alphao /Zend_Filter_Alnumn Zend_Feedm 'Zend_Feed_Rssl 3Zend_Feed_Exceptionk 1Zend_Feed_EntryRssj 3Zend_Feed_EntryAtomi ;Zend_Feed_EntryAbstracth /Zend_Feed_Elementg )Zend_Feed_Atomf 1Zend_Feed_Abstracte )Zend_Exceptiond Zend_Dbc 'Zend_Db_Tableb 5Zend_Db_Table_Rowseta /Zend_Db_Table_Row ` CZend_Db_Table_Row_Exception_ ;Zend_Db_Table_Exception^ /Zend_Db_Statement] =Zend_Db_Statement_Oracle'\ QZend_Db_Statement_Oracle_Exception[ =Zend_Db_Statement_Mysqli Z CZend_Db_Statement_ExceptionY 7Zend_Db_Statement_Db2$X KZend_Db_Statement_Db2_ExceptionW )Zend_Db_SelectV =Zend_Db_Select_ExceptionU -Zend_Db_ProfilerT 9Zend_Db_Profiler_QueryS AZend_Db_Profiler_ExceptionR /Zend_Db_InflectorQ %Zend_Db_ExprP /Zend_Db_ExceptionO AZend_Db_Adapter_Pdo_SqliteN ?Zend_Db_Adapter_Pdo_PgsqlM ;Zend_Db_Adapter_Pdo_OciL ?Zend_Db_Adapter_Pdo_MysqlK ?Zend_Db_Adapter_Pdo_Mssql!J EZend_Db_Adapter_Pdo_AbstractI 9Zend_Db_Adapter_Oracle%H MZend_Db_Adapter_Oracle_ExceptionG ?Zend_Db_Adapter_ExceptionF 3Zend_Db_Adapter_Db2"E GZend_Db_Adapter_Db2_ExceptionD =Zend_Db_Adapter_AbstractC Zend_DateB 3Zend_Date_ExceptionA 5Zend_Date_DateObject@ -Zend_Date_Cities!? EZend_Controller_Router_Route(> SZend_Controller_Router_Route_Static(= SZend_Controller_Router_Route_Module#< IZend_Controller_Router_Rewrite%; MZend_Controller_Router_Exception$: KZend_Controller_Router_Abstract"9 GZend_Controller_Response_Http'8 QZend_Controller_Response_Exception!7 EZend_Controller_Response_Cli&6 OZend_Controller_Response_Abstract!5 EZend_Controller_Request_Http&4 OZend_Controller_Request_Exception%3 MZend_Controller_Request_Abstract"2 GZend_Controller_Plugin_Broker$1 KZend_Controller_Plugin_Abstract0 7Zend_Controller_Front/ ?Zend_Controller_Exception(. SZend_Controller_Dispatcher_Standard)- UZend_Controller_Dispatcher_Exception(, SZend_Controller_Dispatcher_Abstract+ 9Zend_Controller_Action* 3Zend_Console_Getopt") GZend_Console_Getopt_Exception( #Zend_Config' +Zend_Config_Xml& +Zend_Config_Ini% 7Zend_Config_Exception$ !Zend_Cache# =Zend_Cache_Frontend_Page" AZend_Cache_Frontend_Output!! EZend_Cache_Frontend_Function  =Zend_Cache_Frontend_File ?Zend_Cache_Frontend_Class 5Zend_Cache_Exception +Zend_Cache_Core 1Zend_Cache_Backend$ KZend_Cache_Backend_ZendPlatform ;Zend_Cache_Backend_Test ?Zend_Cache_Backend_Sqlite! EZend_Cache_Backend_Memcached ;Zend_Cache_Backend_File 9Zend_Cache_Backend_APC   y sX>$`G3|kO5h=\;




q
L
+
						g	C		lK0}_D#fJ0r\@mO1uR2d:_>                          & OZend_Pdf_Filter_Compression_Flate =Zend_Pdf_Filter_ASCIIHEX ;Zend_Pdf_Filter_ASCII85" GZend_Pdf_FileParserDataSource) UZend_Pdf_FileParserDataSource_String' QZend_Pdf_FileParserDataSource_File 3Zend_Pdf_FileParser  =Zend_Pdf_FileParser_Font& OZend_Pdf_FileParser_Font_OpenType/~ aZend_Pdf_FileParser_Font_OpenType_TrueType} 1Zend_Pdf_Exception| ;Zend_Pdf_ElementFactory{ -Zend_Pdf_Elementz ;Zend_Pdf_Element_String#y IZend_Pdf_Element_String_Binaryx ;Zend_Pdf_Element_Streamw AZend_Pdf_Element_Reference%v MZend_Pdf_Element_Reference_Table'u QZend_Pdf_Element_Reference_Contextt ;Zend_Pdf_Element_Object#s IZend_Pdf_Element_Object_Streamr =Zend_Pdf_Element_Numericq 7Zend_Pdf_Element_Nullp 7Zend_Pdf_Element_Name o CZend_Pdf_Element_Dictionaryn =Zend_Pdf_Element_Booleanm 9Zend_Pdf_Element_Arrayl )Zend_Pdf_Colork 1Zend_Pdf_Color_RGBj 3Zend_Pdf_Color_HTMLi =Zend_Pdf_Color_GrayScaleh 3Zend_Pdf_Color_CMYKg 'Zend_Pdf_Cmapf AZend_Pdf_Cmap_TrimmedTable!e EZend_Pdf_Cmap_SegmentToDeltad AZend_Pdf_Cmap_ByteEncoding&c OZend_Pdf_Cmap_ByteEncoding_Staticb Zend_Mimea )Zend_Mime_Part` /Zend_Mime_Message_ 3Zend_Mime_Exception^ -Zend_Mime_Decode] 3Zend_Measure_Weight\ 3Zend_Measure_Volume%[ MZend_Measure_Viscosity_Kinematic#Z IZend_Measure_Viscosity_DynamicY 3Zend_Measure_TorqueX =Zend_Measure_TemperatureW 1Zend_Measure_SpeedV 7Zend_Measure_PressureU 1Zend_Measure_PowerT 3Zend_Measure_NumberS 9Zend_Measure_LightnessR 3Zend_Measure_LengthQ ?Zend_Measure_IlluminationP 9Zend_Measure_FrequencyO 1Zend_Measure_ForceN =Zend_Measure_Flow_VolumeM 9Zend_Measure_Flow_MoleL 9Zend_Measure_Flow_MassK 9Zend_Measure_ExceptionJ 3Zend_Measure_EnergyI 5Zend_Measure_DensityH 5Zend_Measure_Current G CZend_Measure_Cooking_Weight F CZend_Measure_Cooking_VolumeE =Zend_Measure_CapacitanceD 3Zend_Measure_BinaryC /Zend_Measure_AreaB 1Zend_Measure_AngleA ?Zend_Measure_Acceleration@ 7Zend_Measure_Abstract? Zend_Mail> =Zend_Mail_Transport_Smtp!= EZend_Mail_Transport_Sendmail"< GZend_Mail_Transport_Exception!; EZend_Mail_Transport_Abstract: 9Zend_Mail_Storage_Pop39 9Zend_Mail_Storage_Mbox8 ?Zend_Mail_Storage_Maildir7 9Zend_Mail_Storage_Imap6 =Zend_Mail_Storage_Folder"5 GZend_Mail_Storage_Folder_Mbox%4 MZend_Mail_Storage_Folder_Maildir 3 CZend_Mail_Storage_Exception2 AZend_Mail_Storage_Abstract1 ;Zend_Mail_Protocol_Smtp'0 QZend_Mail_Protocol_Smtp_Auth_Plain'/ QZend_Mail_Protocol_Smtp_Auth_Login). UZend_Mail_Protocol_Smtp_Auth_Crammd5- ;Zend_Mail_Protocol_Pop3, ;Zend_Mail_Protocol_Imap!+ EZend_Mail_Protocol_Exception * CZend_Mail_Protocol_Abstract) )Zend_Mail_Part( /Zend_Mail_Message' 3Zend_Mail_Exception& Zend_Log% 1Zend_Log_Exception$ 7Zend_Log_Adapter_Null# 7Zend_Log_Adapter_File" AZend_Log_Adapter_Exception! 3Zend_Log_Adapter_Db  =Zend_Log_Adapter_Console #Zend_Locale -Zend_Locale_Math =Zend_Locale_Math_PhpMath AZend_Locale_Math_Exception 1Zend_Locale_Format 7Zend_Locale_Exception -Zend_Locale_Data Zend_Json 3Zend_Json_Exception /Zend_Json_Encoder /Zend_Json_Decoder 1Zend_Http_Response 3Zend_Http_Exception 3Zend_Http_CookieJar -Zend_Http_Cookie -Zend_Http_Client AZend_Http_Client_Exception   Z  iQ7z?c*]*w[D&




{
V
E
/
					{	]	Q{QrI% i>j.^ a4pC                                                )a UZend_Search_Lucene_Search_QueryLexer'` QZend_Search_Lucene_Search_QueryHit)_ UZend_Search_Lucene_Search_QueryEntry.^ _Zend_Search_Lucene_Search_QueryEntry_Term2] gZend_Search_Lucene_Search_QueryEntry_Subquery0\ cZend_Search_Lucene_Search_QueryEntry_Phrase$[ KZend_Search_Lucene_Search_Query)Z UZend_Search_Lucene_Search_Query_Term+Y YZend_Search_Lucene_Search_Query_Phrase.X _Zend_Search_Lucene_Search_Query_MultiTerm*W WZend_Search_Lucene_Search_Query_Empty,V [Zend_Search_Lucene_Search_Query_Boolean:U wZend_Search_Lucene_Search_BooleanExpressionRecognizer%T MZend_Search_Lucene_PriorityQueue$S KZend_Search_Lucene_Index_Writer&R OZend_Search_Lucene_Index_TermInfo"Q GZend_Search_Lucene_Index_Term+P YZend_Search_Lucene_Index_SegmentWriter8O sZend_Search_Lucene_Index_SegmentWriter_StreamWriter:N wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter+M YZend_Search_Lucene_Index_SegmentMerger6L oZend_Search_Lucene_Index_SegmentInfoPriorityQueue)K UZend_Search_Lucene_Index_SegmentInfo'J QZend_Search_Lucene_Index_FieldInfo.I _Zend_Search_Lucene_Index_DictionaryLoader!H EZend_Search_Lucene_FSMActionG 9Zend_Search_Lucene_FSMF =Zend_Search_Lucene_Field!E EZend_Search_Lucene_Exception D CZend_Search_Lucene_Document%C MZend_Search_Lucene_Document_Html,B [Zend_Search_Lucene_Analysis_TokenFilter6A oZend_Search_Lucene_Analysis_TokenFilter_StopWords7@ qZend_Search_Lucene_Analysis_TokenFilter_ShortWords6? oZend_Search_Lucene_Analysis_TokenFilter_LowerCase&> OZend_Search_Lucene_Analysis_Token)= UZend_Search_Lucene_Analysis_Analyzer0< cZend_Search_Lucene_Analysis_Analyzer_Common8; sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num5: mZend_Search_Lucene_Analysis_Analyzer_Common_Utf889 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumI8 Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive57 mZend_Search_Lucene_Analysis_Analyzer_Common_TextF6 Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive5 7Zend_Search_Exception4 -Zend_Rest_Server3 AZend_Rest_Server_Exception2 3Zend_Rest_Exception1 -Zend_Rest_Client0 ;Zend_Rest_Client_Result/ AZend_Rest_Client_Exception. 'Zend_Registry- Zend_Pdf!, EZend_Pdf_UpdateInfoContainer+ -Zend_Pdf_Trailer* ;Zend_Pdf_Trailer_Keeper) AZend_Pdf_Trailer_Generator( )Zend_Pdf_Style' 7Zend_Pdf_StringParser& /Zend_Pdf_Resource% 7Zend_Pdf_ImageFactory$ )Zend_Pdf_Image# 3Zend_Pdf_Image_TIFF" 1Zend_Pdf_Image_PNG! 3Zend_Pdf_Image_JPEG  9Zend_Pdf_Resource_Font$ KZend_Pdf_Resource_Font_Standard1 eZend_Pdf_Resource_Font_Standard_ZapfDingbats/ aZend_Pdf_Resource_Font_Standard_TimesRoman0 cZend_Pdf_Resource_Font_Standard_TimesItalic4 kZend_Pdf_Resource_Font_Standard_TimesBoldItalic. _Zend_Pdf_Resource_Font_Standard_TimesBold+ YZend_Pdf_Resource_Font_Standard_Symbol5 mZend_Pdf_Resource_Font_Standard_HelveticaOblique9 uZend_Pdf_Resource_Font_Standard_HelveticaBoldOblique2 gZend_Pdf_Resource_Font_Standard_HelveticaBold. _Zend_Pdf_Resource_Font_Standard_Helvetica3 iZend_Pdf_Resource_Font_Standard_CourierOblique7 qZend_Pdf_Resource_Font_Standard_CourierBoldOblique0 cZend_Pdf_Resource_Font_Standard_CourierBold, [Zend_Pdf_Resource_Font_Standard_Courier$ KZend_Pdf_Resource_Font_OpenType- ]Zend_Pdf_Resource_Font_OpenType_TrueType /Zend_Pdf_PHPArray +Zend_Pdf_Parser 9Zend_Pdf_Parser_Stream 'Zend_Pdf_Page
 'Zend_Pdf_Font 	 CZend_Pdf_Filter_Compression$ KZend_Pdf_Filter_Compression_LZW   k  f9wDX%xS*^5





]
1
				}	[	5	
dH.kEmO0v^M1`D"y]:$	~\8c?                          "L GZend_View_Helper_FormTextareaK ?Zend_View_Helper_FormText J CZend_View_Helper_FormSubmit I CZend_View_Helper_FormSelectH AZend_View_Helper_FormResetG AZend_View_Helper_FormRadio"F GZend_View_Helper_FormPasswordE ?Zend_View_Helper_FormNoteD AZend_View_Helper_FormImage C CZend_View_Helper_FormHiddenB ?Zend_View_Helper_FormFile!A EZend_View_Helper_FormElement"@ GZend_View_Helper_FormCheckbox ? CZend_View_Helper_FormButton> 3Zend_View_Exception= 1Zend_View_Abstract< 'Zend_Validate; AZend_Validate_StringLength: 3Zend_Validate_Regex9 9Zend_Validate_LessThan8 -Zend_Validate_Ip7 /Zend_Validate_Int6 7Zend_Validate_InArray5 9Zend_Validate_Hostname4 /Zend_Validate_Hex3 ?Zend_Validate_GreaterThan2 3Zend_Validate_Float1 ;Zend_Validate_Exception0 AZend_Validate_EmailAddress/ 5Zend_Validate_Digits. 1Zend_Validate_Date- 3Zend_Validate_Ccnum, 7Zend_Validate_Between+ 3Zend_Validate_Alpha* 3Zend_Validate_Alnum) Zend_Uri( +Zend_Uri_Mailto' 'Zend_Uri_Http& 1Zend_Uri_Exception% %Zend_Session)$ UZend_Session_Validator_HttpUserAgent$# KZend_Session_Validator_Abstract" 9Zend_Session_Namespace! 9Zend_Session_Exception  7Zend_Session_Abstract 1Zend_Service_Yahoo$ KZend_Service_Yahoo_WebResultSet! EZend_Service_Yahoo_WebResult! EZend_Service_Yahoo_ResultSet ?Zend_Service_Yahoo_Result% MZend_Service_Yahoo_NewsResultSet" GZend_Service_Yahoo_NewsResult& OZend_Service_Yahoo_LocalResultSet# IZend_Service_Yahoo_LocalResult& OZend_Service_Yahoo_ImageResultSet# IZend_Service_Yahoo_ImageResult =Zend_Service_Yahoo_Image /Zend_Service_Rest 3Zend_Service_Flickr" GZend_Service_Flickr_ResultSet AZend_Service_Flickr_Result ?Zend_Service_Flickr_Image 9Zend_Service_Exception 3Zend_Service_Amazon' QZend_Service_Amazon_SimilarProduct" GZend_Service_Amazon_ResultSet
 ?Zend_Service_Amazon_Query!	 EZend_Service_Amazon_OfferSet ?Zend_Service_Amazon_Offer& OZend_Service_Amazon_ListmaniaList =Zend_Service_Amazon_Item ?Zend_Service_Amazon_Image( SZend_Service_Amazon_EditorialReview' QZend_Service_Amazon_CustomerReview$ KZend_Service_Amazon_Accessories 5Zend_Service_Akismet  7Zend_Service_Abstract 9Zend_Server_Reflection'~ QZend_Server_Reflection_ReturnValue%} MZend_Server_Reflection_Prototype%| MZend_Server_Reflection_Parameter { CZend_Server_Reflection_Node"z GZend_Server_Reflection_Method$y KZend_Server_Reflection_Function-x ]Zend_Server_Reflection_Function_Abstract%w MZend_Server_Reflection_Exception!v EZend_Server_Reflection_Classu 7Zend_Server_Exceptiont 5Zend_Server_Abstracts 1Zend_Search_Lucene$r KZend_Search_Lucene_Storage_File+q YZend_Search_Lucene_Storage_File_Memory/p aZend_Search_Lucene_Storage_File_Filesystem)o UZend_Search_Lucene_Storage_Directory4n kZend_Search_Lucene_Storage_Directory_Filesystem%m MZend_Search_Lucene_Search_Weight*l WZend_Search_Lucene_Search_Weight_Term,k [Zend_Search_Lucene_Search_Weight_Phrase/j aZend_Search_Lucene_Search_Weight_MultiTerm+i YZend_Search_Lucene_Search_Weight_Empty-h ]Zend_Search_Lucene_Search_Weight_Boolean)g UZend_Search_Lucene_Search_Similarity1f eZend_Search_Lucene_Search_Similarity_Default)e UZend_Search_Lucene_Search_QueryToken3d iZend_Search_Lucene_Search_QueryParserException1c eZend_Search_Lucene_Search_QueryParserContext*b WZend_Search_Lucene_Search_QueryParser   t  `7y_> {Z?sO-nE&




f
9
						n	N	)	oM,zbN(hF( b8qJ{iH"sT/lW=            @ 9Zend_Db_Profiler_Query? AZend_Db_Profiler_Exception> /Zend_Db_Inflector= %Zend_Db_Expr< /Zend_Db_Exception; AZend_Db_Adapter_Pdo_Sqlite: ?Zend_Db_Adapter_Pdo_Pgsql9 ;Zend_Db_Adapter_Pdo_Oci8 ?Zend_Db_Adapter_Pdo_Mysql7 ?Zend_Db_Adapter_Pdo_Mssql!6 EZend_Db_Adapter_Pdo_Abstract5 9Zend_Db_Adapter_Oracle%4 MZend_Db_Adapter_Oracle_Exception3 9Zend_Db_Adapter_Mysqli%2 MZend_Db_Adapter_Mysqli_Exception1 ?Zend_Db_Adapter_Exception0 3Zend_Db_Adapter_Db2"/ GZend_Db_Adapter_Db2_Exception. =Zend_Db_Adapter_Abstract- Zend_Date, 3Zend_Date_Exception+ 5Zend_Date_DateObject* -Zend_Date_Cities!) EZend_Controller_Router_Route(( SZend_Controller_Router_Route_Static(' SZend_Controller_Router_Route_Module#& IZend_Controller_Router_Rewrite%% MZend_Controller_Router_Exception$$ KZend_Controller_Router_Abstract"# GZend_Controller_Response_Http'" QZend_Controller_Response_Exception!! EZend_Controller_Response_Cli&  OZend_Controller_Response_Abstract! EZend_Controller_Request_Http& OZend_Controller_Request_Exception% MZend_Controller_Request_Abstract" GZend_Controller_Plugin_Broker$ KZend_Controller_Plugin_Abstract 7Zend_Controller_Front ?Zend_Controller_Exception( SZend_Controller_Dispatcher_Standard) UZend_Controller_Dispatcher_Exception( SZend_Controller_Dispatcher_Abstract 9Zend_Controller_Action 3Zend_Console_Getopt" GZend_Console_Getopt_Exception #Zend_Config +Zend_Config_Xml +Zend_Config_Ini 7Zend_Config_Exception !Zend_Cache =Zend_Cache_Frontend_Page AZend_Cache_Frontend_Output! EZend_Cache_Frontend_Function
 =Zend_Cache_Frontend_File	 ?Zend_Cache_Frontend_Class 5Zend_Cache_Exception +Zend_Cache_Core 1Zend_Cache_Backend$ KZend_Cache_Backend_ZendPlatform ;Zend_Cache_Backend_Test ?Zend_Cache_Backend_Sqlite! EZend_Cache_Backend_Memcached ;Zend_Cache_Backend_File  9Zend_Cache_Backend_APC Zend_Auth~ ?Zend_Auth_Storage_Session } CZend_Auth_Storage_Exception| -Zend_Auth_Result{ 3Zend_Auth_Exceptionz 9Zend_Auth_Adapter_Http)y UZend_Auth_Adapter_Http_Resolver_File.x _Zend_Auth_Adapter_Http_Resolver_Exception w CZend_Auth_Adapter_Exceptionv =Zend_Auth_Adapter_Digestu ?Zend_Auth_Adapter_DbTablet Zend_Acls 'Zend_Acl_Roler 9Zend_Acl_Role_Registry%q MZend_Acl_Role_Registry_Exceptionp /Zend_Acl_Resourceo 1Zend_Acl_Exception	n Zendm /Zend_XmlRpc_Valuel =Zend_XmlRpc_Value_Structk =Zend_XmlRpc_Value_Stringj =Zend_XmlRpc_Value_Scalari ?Zend_XmlRpc_Value_Integer h CZend_XmlRpc_Value_Exceptiong =Zend_XmlRpc_Value_Doublef AZend_XmlRpc_Value_DateTime!e EZend_XmlRpc_Value_Collectiond ?Zend_XmlRpc_Value_Booleanc =Zend_XmlRpc_Value_Base64b ;Zend_XmlRpc_Value_Arraya 1Zend_XmlRpc_Server` =Zend_XmlRpc_Server_Fault!_ EZend_XmlRpc_Server_Exception^ =Zend_XmlRpc_Server_Cache] 5Zend_XmlRpc_Response\ ?Zend_XmlRpc_Response_Http[ 3Zend_XmlRpc_RequestZ ?Zend_XmlRpc_Request_StdinY =Zend_XmlRpc_Request_HttpX /Zend_XmlRpc_FaultW 7Zend_XmlRpc_ExceptionV 1Zend_XmlRpc_Client#U IZend_XmlRpc_Client_ServerProxy+T YZend_XmlRpc_Client_ServerIntrospection+S YZend_XmlRpc_Client_IntrospectException%R MZend_XmlRpc_Client_HttpException&Q OZend_XmlRpc_Client_FaultException!P EZend_XmlRpc_Client_ExceptionO Zend_ViewN 5Zend_View_Helper_UrlM ?Zend_View_Helper_HtmlList   ~	 iEtT0hQ1pT9qS2





i
N
$
						c	B	iC gK9%vbA%~dM)lA!jK)
[6rQ-	      > CZend_Measure_Cooking_Weight = CZend_Measure_Cooking_Volume< =Zend_Measure_Capacitance; 3Zend_Measure_Binary: /Zend_Measure_Area9 1Zend_Measure_Angle8 ?Zend_Measure_Acceleration7 7Zend_Measure_Abstract6 Zend_Mail5 =Zend_Mail_Transport_Smtp!4 EZend_Mail_Transport_Sendmail"3 GZend_Mail_Transport_Exception!2 EZend_Mail_Transport_Abstract1 /Zend_Mail_Storage'0 QZend_Mail_Storage_Writable_Maildir/ 9Zend_Mail_Storage_Pop3. 9Zend_Mail_Storage_Mbox- ?Zend_Mail_Storage_Maildir, 9Zend_Mail_Storage_Imap+ =Zend_Mail_Storage_Folder"* GZend_Mail_Storage_Folder_Mbox%) MZend_Mail_Storage_Folder_Maildir ( CZend_Mail_Storage_Exception' AZend_Mail_Storage_Abstract& ;Zend_Mail_Protocol_Smtp'% QZend_Mail_Protocol_Smtp_Auth_Plain'$ QZend_Mail_Protocol_Smtp_Auth_Login)# UZend_Mail_Protocol_Smtp_Auth_Crammd5" ;Zend_Mail_Protocol_Pop3! ;Zend_Mail_Protocol_Imap!  EZend_Mail_Protocol_Exception  CZend_Mail_Protocol_Abstract )Zend_Mail_Part /Zend_Mail_Message 3Zend_Mail_Exception Zend_Log 1Zend_Log_Exception 7Zend_Log_Adapter_Null 7Zend_Log_Adapter_File AZend_Log_Adapter_Exception 3Zend_Log_Adapter_Db =Zend_Log_Adapter_Console #Zend_Locale -Zend_Locale_Math =Zend_Locale_Math_PhpMath AZend_Locale_Math_Exception 1Zend_Locale_Format 7Zend_Locale_Exception -Zend_Locale_Data #Zend_Loader Zend_Json 3Zend_Json_Exception
 /Zend_Json_Encoder	 /Zend_Json_Decoder 1Zend_Http_Response 3Zend_Http_Exception 3Zend_Http_CookieJar -Zend_Http_Cookie -Zend_Http_Client AZend_Http_Client_Exception" GZend_Http_Client_Adapter_Test$ KZend_Http_Client_Adapter_Socket#  IZend_Http_Client_Adapter_Proxy' QZend_Http_Client_Adapter_Exception~ !Zend_Gdata} ;Zend_Gdata_Spreadsheets(| SZend_Gdata_InvalidArgumentException{ =Zend_Gdata_HttpExceptionz 5Zend_Gdata_Exceptiony +Zend_Gdata_Datax 7Zend_Gdata_CodeSearchw 9Zend_Gdata_ClientLoginv 3Zend_Gdata_Calendaru 1Zend_Gdata_Bloggert +Zend_Gdata_Base&s OZend_Gdata_BadMethodCallExceptionr 1Zend_Gdata_AuthSubq =Zend_Gdata_AuthExceptionp #Zend_Filtero 7Zend_Filter_StripTagsn 9Zend_Filter_StringTrimm ?Zend_Filter_StringToLowerl 5Zend_Filter_RealPathk +Zend_Filter_Intj =Zend_Filter_HtmlEntitiesi 7Zend_Filter_Exceptionh +Zend_Filter_Dirg 1Zend_Filter_Digitsf 5Zend_Filter_BaseNamee /Zend_Filter_Alphad /Zend_Filter_Alnumc Zend_Feedb 'Zend_Feed_Rssa 3Zend_Feed_Exception` 1Zend_Feed_EntryRss_ 3Zend_Feed_EntryAtom^ ;Zend_Feed_EntryAbstract] /Zend_Feed_Element\ /Zend_Feed_Builder[ =Zend_Feed_Builder_Header$Z KZend_Feed_Builder_Header_Itunes Y CZend_Feed_Builder_ExceptionX ;Zend_Feed_Builder_EntryW )Zend_Feed_AtomV 1Zend_Feed_AbstractU )Zend_ExceptionT !Zend_DebugS Zend_DbR 'Zend_Db_TableQ 5Zend_Db_Table_Rowset"P GZend_Db_Table_Rowset_AbstractO /Zend_Db_Table_Row N CZend_Db_Table_Row_ExceptionM ;Zend_Db_Table_ExceptionL 9Zend_Db_Table_AbstractK /Zend_Db_StatementJ =Zend_Db_Statement_Oracle'I QZend_Db_Statement_Oracle_ExceptionH =Zend_Db_Statement_Mysqli'G QZend_Db_Statement_Mysqli_Exception F CZend_Db_Statement_ExceptionE 7Zend_Db_Statement_Db2$D KZend_Db_Statement_Db2_ExceptionC )Zend_Db_SelectB =Zend_Db_Select_ExceptionA -Zend_Db_Profiler   o lM,y^@%|`G+vS=! rN0




V
3
					x	E	`@}^F,o4XRlP9pK:$pR                                  F- Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive, 7Zend_Search_Exception+ -Zend_Rest_Server* AZend_Rest_Server_Exception) 3Zend_Rest_Exception( -Zend_Rest_Client' ;Zend_Rest_Client_Result& AZend_Rest_Client_Exception% 'Zend_Registry$ Zend_Pdf!# EZend_Pdf_UpdateInfoContainer" -Zend_Pdf_Trailer! ;Zend_Pdf_Trailer_Keeper  AZend_Pdf_Trailer_Generator )Zend_Pdf_Style 7Zend_Pdf_StringParser /Zend_Pdf_Resource 7Zend_Pdf_ImageFactory )Zend_Pdf_Image 3Zend_Pdf_Image_Tiff 1Zend_Pdf_Image_Png 3Zend_Pdf_Image_Jpeg 9Zend_Pdf_Resource_Font$ KZend_Pdf_Resource_Font_Standard1 eZend_Pdf_Resource_Font_Standard_ZapfDingbats/ aZend_Pdf_Resource_Font_Standard_TimesRoman0 cZend_Pdf_Resource_Font_Standard_TimesItalic4 kZend_Pdf_Resource_Font_Standard_TimesBoldItalic. _Zend_Pdf_Resource_Font_Standard_TimesBold+ YZend_Pdf_Resource_Font_Standard_Symbol5 mZend_Pdf_Resource_Font_Standard_HelveticaOblique9 uZend_Pdf_Resource_Font_Standard_HelveticaBoldOblique2 gZend_Pdf_Resource_Font_Standard_HelveticaBold. _Zend_Pdf_Resource_Font_Standard_Helvetica3 iZend_Pdf_Resource_Font_Standard_CourierOblique7
 qZend_Pdf_Resource_Font_Standard_CourierBoldOblique0	 cZend_Pdf_Resource_Font_Standard_CourierBold, [Zend_Pdf_Resource_Font_Standard_Courier$ KZend_Pdf_Resource_Font_OpenType- ]Zend_Pdf_Resource_Font_OpenType_TrueType /Zend_Pdf_PhpArray +Zend_Pdf_Parser 9Zend_Pdf_Parser_Stream 'Zend_Pdf_Page 'Zend_Pdf_Font   CZend_Pdf_Filter_Compression$ KZend_Pdf_Filter_Compression_Lzw&~ OZend_Pdf_Filter_Compression_Flate} =Zend_Pdf_Filter_AsciiHex| ;Zend_Pdf_Filter_Ascii85"{ GZend_Pdf_FileParserDataSource)z UZend_Pdf_FileParserDataSource_String'y QZend_Pdf_FileParserDataSource_Filex 3Zend_Pdf_FileParserw =Zend_Pdf_FileParser_Font&v OZend_Pdf_FileParser_Font_OpenType/u aZend_Pdf_FileParser_Font_OpenType_TrueTypet 1Zend_Pdf_Exceptions ;Zend_Pdf_ElementFactoryr -Zend_Pdf_Elementq ;Zend_Pdf_Element_String#p IZend_Pdf_Element_String_Binaryo ;Zend_Pdf_Element_Streamn AZend_Pdf_Element_Reference%m MZend_Pdf_Element_Reference_Table'l QZend_Pdf_Element_Reference_Contextk ;Zend_Pdf_Element_Object#j IZend_Pdf_Element_Object_Streami =Zend_Pdf_Element_Numerich 7Zend_Pdf_Element_Nullg 7Zend_Pdf_Element_Name f CZend_Pdf_Element_Dictionarye =Zend_Pdf_Element_Booleand 9Zend_Pdf_Element_Arrayc )Zend_Pdf_Colorb 1Zend_Pdf_Color_Rgba 3Zend_Pdf_Color_Html` =Zend_Pdf_Color_GrayScale_ 3Zend_Pdf_Color_Cmyk^ 'Zend_Pdf_Cmap] AZend_Pdf_Cmap_TrimmedTable!\ EZend_Pdf_Cmap_SegmentToDelta[ AZend_Pdf_Cmap_ByteEncoding&Z OZend_Pdf_Cmap_ByteEncoding_StaticY Zend_MimeX )Zend_Mime_PartW /Zend_Mime_MessageV 3Zend_Mime_ExceptionU -Zend_Mime_DecodeT 3Zend_Measure_WeightS 3Zend_Measure_Volume%R MZend_Measure_Viscosity_Kinematic#Q IZend_Measure_Viscosity_DynamicP 3Zend_Measure_TorqueO =Zend_Measure_TemperatureN 1Zend_Measure_SpeedM 7Zend_Measure_PressureL 1Zend_Measure_PowerK 3Zend_Measure_NumberJ 9Zend_Measure_LightnessI 3Zend_Measure_LengthH ?Zend_Measure_IlluminationG 9Zend_Measure_FrequencyF 1Zend_Measure_ForceE =Zend_Measure_Flow_VolumeD 9Zend_Measure_Flow_MoleC 9Zend_Measure_Flow_MassB 9Zend_Measure_ExceptionA 3Zend_Measure_Energy@ 5Zend_Measure_Density? 5Zend_Measure_Current   W  z>h>_6V+W



t
K
			}	N	!]0u>~O]0nP+_6`5	zU3                   3Zend_Service_Amazon' QZend_Service_Amazon_SimilarProduct" GZend_Service_Amazon_ResultSet ?Zend_Service_Amazon_Query!  EZend_Service_Amazon_OfferSet ?Zend_Service_Amazon_Offer&~ OZend_Service_Amazon_ListmaniaList} =Zend_Service_Amazon_Item| ?Zend_Service_Amazon_Image({ SZend_Service_Amazon_EditorialReview'z QZend_Service_Amazon_CustomerReview$y KZend_Service_Amazon_Accessoriesx 5Zend_Service_Akismetw 7Zend_Service_Abstractv 9Zend_Server_Reflection'u QZend_Server_Reflection_ReturnValue%t MZend_Server_Reflection_Prototype%s MZend_Server_Reflection_Parameter r CZend_Server_Reflection_Node"q GZend_Server_Reflection_Method$p KZend_Server_Reflection_Function-o ]Zend_Server_Reflection_Function_Abstract%n MZend_Server_Reflection_Exception!m EZend_Server_Reflection_Classl 7Zend_Server_Exceptionk 5Zend_Server_Abstractj 1Zend_Search_Lucene$i KZend_Search_Lucene_Storage_File+h YZend_Search_Lucene_Storage_File_Memory/g aZend_Search_Lucene_Storage_File_Filesystem)f UZend_Search_Lucene_Storage_Directory4e kZend_Search_Lucene_Storage_Directory_Filesystem%d MZend_Search_Lucene_Search_Weight*c WZend_Search_Lucene_Search_Weight_Term,b [Zend_Search_Lucene_Search_Weight_Phrase/a aZend_Search_Lucene_Search_Weight_MultiTerm+` YZend_Search_Lucene_Search_Weight_Empty-_ ]Zend_Search_Lucene_Search_Weight_Boolean)^ UZend_Search_Lucene_Search_Similarity1] eZend_Search_Lucene_Search_Similarity_Default)\ UZend_Search_Lucene_Search_QueryToken3[ iZend_Search_Lucene_Search_QueryParserException1Z eZend_Search_Lucene_Search_QueryParserContext*Y WZend_Search_Lucene_Search_QueryParser)X UZend_Search_Lucene_Search_QueryLexer'W QZend_Search_Lucene_Search_QueryHit)V UZend_Search_Lucene_Search_QueryEntry.U _Zend_Search_Lucene_Search_QueryEntry_Term2T gZend_Search_Lucene_Search_QueryEntry_Subquery0S cZend_Search_Lucene_Search_QueryEntry_Phrase$R KZend_Search_Lucene_Search_Query)Q UZend_Search_Lucene_Search_Query_Term+P YZend_Search_Lucene_Search_Query_Phrase.O _Zend_Search_Lucene_Search_Query_MultiTerm*N WZend_Search_Lucene_Search_Query_Empty,M [Zend_Search_Lucene_Search_Query_Boolean:L wZend_Search_Lucene_Search_BooleanExpressionRecognizer%K MZend_Search_Lucene_PriorityQueue$J KZend_Search_Lucene_Index_Writer&I OZend_Search_Lucene_Index_TermInfo"H GZend_Search_Lucene_Index_Term+G YZend_Search_Lucene_Index_SegmentWriter8F sZend_Search_Lucene_Index_SegmentWriter_StreamWriter:E wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter+D YZend_Search_Lucene_Index_SegmentMerger6C oZend_Search_Lucene_Index_SegmentInfoPriorityQueue)B UZend_Search_Lucene_Index_SegmentInfo'A QZend_Search_Lucene_Index_FieldInfo.@ _Zend_Search_Lucene_Index_DictionaryLoader!? EZend_Search_Lucene_FSMAction> 9Zend_Search_Lucene_FSM= =Zend_Search_Lucene_Field!< EZend_Search_Lucene_Exception ; CZend_Search_Lucene_Document%: MZend_Search_Lucene_Document_Html,9 [Zend_Search_Lucene_Analysis_TokenFilter68 oZend_Search_Lucene_Analysis_TokenFilter_StopWords77 qZend_Search_Lucene_Analysis_TokenFilter_ShortWords66 oZend_Search_Lucene_Analysis_TokenFilter_LowerCase&5 OZend_Search_Lucene_Analysis_Token)4 UZend_Search_Lucene_Analysis_Analyzer03 cZend_Search_Lucene_Analysis_Analyzer_Common82 sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num51 mZend_Search_Lucene_Analysis_Analyzer_Common_Utf880 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumI/ Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive5. mZend_Search_Lucene_Analysis_Analyzer_Common_Text   s g=xX3g<Y2rM%





Y
D
					n	M	6		jO2uS1hJ0sW3]7a?"i:}a?"                   w =Zend_XmlRpc_Server_Cachev 5Zend_XmlRpc_Responseu ?Zend_XmlRpc_Response_Httpt 3Zend_XmlRpc_Requests ?Zend_XmlRpc_Request_Stdinr =Zend_XmlRpc_Request_Httpq /Zend_XmlRpc_Faultp 7Zend_XmlRpc_Exceptiono 1Zend_XmlRpc_Client#n IZend_XmlRpc_Client_ServerProxy+m YZend_XmlRpc_Client_ServerIntrospection+l YZend_XmlRpc_Client_IntrospectException%k MZend_XmlRpc_Client_HttpException&j OZend_XmlRpc_Client_FaultException!i EZend_XmlRpc_Client_Exceptionh Zend_Viewg 5Zend_View_Helper_Urlf ?Zend_View_Helper_HtmlList"e GZend_View_Helper_FormTextaread ?Zend_View_Helper_FormText c CZend_View_Helper_FormSubmit b CZend_View_Helper_FormSelecta AZend_View_Helper_FormReset` AZend_View_Helper_FormRadio"_ GZend_View_Helper_FormPassword^ ?Zend_View_Helper_FormNote] AZend_View_Helper_FormImage \ CZend_View_Helper_FormHidden[ ?Zend_View_Helper_FormFile!Z EZend_View_Helper_FormElement"Y GZend_View_Helper_FormCheckbox X CZend_View_Helper_FormButtonW 3Zend_View_ExceptionV 1Zend_View_AbstractU %Zend_VersionT 'Zend_ValidateS AZend_Validate_StringLengthR 3Zend_Validate_RegexQ 9Zend_Validate_LessThanP -Zend_Validate_IpO /Zend_Validate_IntN 7Zend_Validate_InArrayM 9Zend_Validate_HostnameL ?Zend_Validate_Hostname_SeK ?Zend_Validate_Hostname_NoJ ?Zend_Validate_Hostname_LiI ?Zend_Validate_Hostname_HuH ?Zend_Validate_Hostname_FiG ?Zend_Validate_Hostname_DeF ?Zend_Validate_Hostname_ChE ?Zend_Validate_Hostname_AtD /Zend_Validate_HexC ?Zend_Validate_GreaterThanB 3Zend_Validate_FloatA ;Zend_Validate_Exception@ AZend_Validate_EmailAddress? 5Zend_Validate_Digits> 1Zend_Validate_Date= 3Zend_Validate_Ccnum< 7Zend_Validate_Between; 3Zend_Validate_Alpha: 3Zend_Validate_Alnum9 Zend_Uri8 +Zend_Uri_Mailto7 'Zend_Uri_Http6 1Zend_Uri_Exception5 )Zend_Translate4 =Zend_Translate_Exception3 9Zend_Translate_Adapter!2 EZend_Translate_Adapter_Xliff1 AZend_Translate_Adapter_Tmx#0 IZend_Translate_Adapter_Gettext/ AZend_Translate_Adapter_Csv!. EZend_Translate_Adapter_Array- %Zend_Session), UZend_Session_Validator_HttpUserAgent$+ KZend_Session_Validator_Abstract* 9Zend_Session_Namespace) 9Zend_Session_Exception( 7Zend_Session_Abstract' 1Zend_Service_Yahoo$& KZend_Service_Yahoo_WebResultSet!% EZend_Service_Yahoo_WebResult!$ EZend_Service_Yahoo_ResultSet# ?Zend_Service_Yahoo_Result%" MZend_Service_Yahoo_NewsResultSet"! GZend_Service_Yahoo_NewsResult&  OZend_Service_Yahoo_LocalResultSet# IZend_Service_Yahoo_LocalResult& OZend_Service_Yahoo_ImageResultSet# IZend_Service_Yahoo_ImageResult =Zend_Service_Yahoo_Image 1Zend_Service_Simpy$ KZend_Service_Simpy_WatchlistSet* WZend_Service_Simpy_WatchlistFilterSet' QZend_Service_Simpy_WatchlistFilter! EZend_Service_Simpy_Watchlist ?Zend_Service_Simpy_TagSet 9Zend_Service_Simpy_Tag AZend_Service_Simpy_NoteSet ;Zend_Service_Simpy_Note AZend_Service_Simpy_LinkSet! EZend_Service_Simpy_LinkQuery ;Zend_Service_Simpy_Link 3Zend_Service_Flickr" GZend_Service_Flickr_ResultSet AZend_Service_Flickr_Result ?Zend_Service_Flickr_Image 9Zend_Service_Exception
 9Zend_Service_Delicious&	 OZend_Service_Delicious_SimplePost$ KZend_Service_Delicious_PostList  CZend_Service_Delicious_Post% MZend_Service_Delicious_Exception  CZend_Service_Audioscrobbler   u  ^<lK*p_=z^E!gG




g
D
#
						l	M	!`:sH"~R-fDmK+	z[B!
uT)hN(    l 'Zend_Db_Tablek 5Zend_Db_Table_Rowset"j GZend_Db_Table_Rowset_Abstracti /Zend_Db_Table_Row h CZend_Db_Table_Row_Exceptiong AZend_Db_Table_Row_Abstractf ;Zend_Db_Table_Exceptione 9Zend_Db_Table_Abstractd /Zend_Db_Statementc =Zend_Db_Statement_Oracle'b QZend_Db_Statement_Oracle_Exceptiona =Zend_Db_Statement_Mysqli'` QZend_Db_Statement_Mysqli_Exception _ CZend_Db_Statement_Exception^ 7Zend_Db_Statement_Db2$] KZend_Db_Statement_Db2_Exception\ )Zend_Db_Select[ =Zend_Db_Select_ExceptionZ -Zend_Db_ProfilerY 9Zend_Db_Profiler_QueryX AZend_Db_Profiler_ExceptionW /Zend_Db_InflectorV %Zend_Db_ExprU /Zend_Db_ExceptionT AZend_Db_Adapter_Pdo_SqliteS ?Zend_Db_Adapter_Pdo_PgsqlR ;Zend_Db_Adapter_Pdo_OciQ ?Zend_Db_Adapter_Pdo_MysqlP ?Zend_Db_Adapter_Pdo_Mssql!O EZend_Db_Adapter_Pdo_AbstractN 9Zend_Db_Adapter_Oracle%M MZend_Db_Adapter_Oracle_ExceptionL 9Zend_Db_Adapter_Mysqli%K MZend_Db_Adapter_Mysqli_ExceptionJ ?Zend_Db_Adapter_ExceptionI 3Zend_Db_Adapter_Db2"H GZend_Db_Adapter_Db2_ExceptionG =Zend_Db_Adapter_AbstractF Zend_DateE 3Zend_Date_ExceptionD 5Zend_Date_DateObjectC -Zend_Date_Cities!B EZend_Controller_Router_Route(A SZend_Controller_Router_Route_Static(@ SZend_Controller_Router_Route_Module#? IZend_Controller_Router_Rewrite%> MZend_Controller_Router_Exception$= KZend_Controller_Router_Abstract"< GZend_Controller_Response_Http'; QZend_Controller_Response_Exception!: EZend_Controller_Response_Cli&9 OZend_Controller_Response_Abstract!8 EZend_Controller_Request_Http&7 OZend_Controller_Request_Exception%6 MZend_Controller_Request_Abstract"5 GZend_Controller_Plugin_Broker$4 KZend_Controller_Plugin_Abstract3 7Zend_Controller_Front2 ?Zend_Controller_Exception(1 SZend_Controller_Dispatcher_Standard)0 UZend_Controller_Dispatcher_Exception(/ SZend_Controller_Dispatcher_Abstract. 9Zend_Controller_Action- 3Zend_Console_Getopt", GZend_Console_Getopt_Exception+ #Zend_Config* +Zend_Config_Xml) +Zend_Config_Ini( 7Zend_Config_Exception' !Zend_Cache& =Zend_Cache_Frontend_Page% AZend_Cache_Frontend_Output!$ EZend_Cache_Frontend_Function# =Zend_Cache_Frontend_File" ?Zend_Cache_Frontend_Class! 5Zend_Cache_Exception  +Zend_Cache_Core 1Zend_Cache_Backend$ KZend_Cache_Backend_ZendPlatform ;Zend_Cache_Backend_Test ?Zend_Cache_Backend_Sqlite! EZend_Cache_Backend_Memcached ;Zend_Cache_Backend_File 9Zend_Cache_Backend_APC Zend_Auth ?Zend_Auth_Storage_Session  CZend_Auth_Storage_Exception -Zend_Auth_Result 3Zend_Auth_Exception 9Zend_Auth_Adapter_Http) UZend_Auth_Adapter_Http_Resolver_File. _Zend_Auth_Adapter_Http_Resolver_Exception  CZend_Auth_Adapter_Exception =Zend_Auth_Adapter_Digest ?Zend_Auth_Adapter_DbTable Zend_Acl 'Zend_Acl_Role 9Zend_Acl_Role_Registry%
 MZend_Acl_Role_Registry_Exception	 /Zend_Acl_Resource 1Zend_Acl_Exception	 Zend /Zend_XmlRpc_Value =Zend_XmlRpc_Value_Struct =Zend_XmlRpc_Value_String =Zend_XmlRpc_Value_Scalar ?Zend_XmlRpc_Value_Integer  CZend_XmlRpc_Value_Exception  =Zend_XmlRpc_Value_Double AZend_XmlRpc_Value_DateTime!~ EZend_XmlRpc_Value_Collection} ?Zend_XmlRpc_Value_Boolean| =Zend_XmlRpc_Value_Base64{ ;Zend_XmlRpc_Value_Arrayz 1Zend_XmlRpc_Servery =Zend_XmlRpc_Server_Fault!x EZend_XmlRpc_Server_Exception    tP(|`J8u]@gO4Y9&




c
J
1
						|	h	O	1	hE'	lG'dAlM.yXF(pL/x]> qP4       #k IZend_Measure_Viscosity_Dynamicj 3Zend_Measure_Torquei =Zend_Measure_Temperatureh 1Zend_Measure_Speedg 7Zend_Measure_Pressuref 1Zend_Measure_Powere 3Zend_Measure_Numberd 9Zend_Measure_Lightnessc 3Zend_Measure_Lengthb ?Zend_Measure_Illuminationa 9Zend_Measure_Frequency` 1Zend_Measure_Force_ =Zend_Measure_Flow_Volume^ 9Zend_Measure_Flow_Mole] 9Zend_Measure_Flow_Mass\ 9Zend_Measure_Exception[ 3Zend_Measure_EnergyZ 5Zend_Measure_DensityY 5Zend_Measure_Current X CZend_Measure_Cooking_Weight W CZend_Measure_Cooking_VolumeV =Zend_Measure_CapacitanceU 3Zend_Measure_BinaryT /Zend_Measure_AreaS 1Zend_Measure_AngleR ?Zend_Measure_AccelerationQ 7Zend_Measure_AbstractP Zend_MailO =Zend_Mail_Transport_Smtp!N EZend_Mail_Transport_Sendmail"M GZend_Mail_Transport_Exception!L EZend_Mail_Transport_AbstractK /Zend_Mail_Storage'J QZend_Mail_Storage_Writable_MaildirI 9Zend_Mail_Storage_Pop3H 9Zend_Mail_Storage_MboxG ?Zend_Mail_Storage_MaildirF 9Zend_Mail_Storage_ImapE =Zend_Mail_Storage_Folder"D GZend_Mail_Storage_Folder_Mbox%C MZend_Mail_Storage_Folder_Maildir B CZend_Mail_Storage_ExceptionA AZend_Mail_Storage_Abstract@ ;Zend_Mail_Protocol_Smtp'? QZend_Mail_Protocol_Smtp_Auth_Plain'> QZend_Mail_Protocol_Smtp_Auth_Login)= UZend_Mail_Protocol_Smtp_Auth_Crammd5< ;Zend_Mail_Protocol_Pop3; ;Zend_Mail_Protocol_Imap!: EZend_Mail_Protocol_Exception 9 CZend_Mail_Protocol_Abstract8 )Zend_Mail_Part7 /Zend_Mail_Message6 3Zend_Mail_Exception5 Zend_Log4 1Zend_Log_Exception3 7Zend_Log_Adapter_Null2 7Zend_Log_Adapter_File1 AZend_Log_Adapter_Exception0 3Zend_Log_Adapter_Db/ =Zend_Log_Adapter_Console. #Zend_Locale- -Zend_Locale_Math, =Zend_Locale_Math_PhpMath+ AZend_Locale_Math_Exception* 1Zend_Locale_Format) 7Zend_Locale_Exception( -Zend_Locale_Data' #Zend_Loader& Zend_Json% 3Zend_Json_Exception$ /Zend_Json_Encoder# /Zend_Json_Decoder" 1Zend_Http_Response! 3Zend_Http_Exception  3Zend_Http_CookieJar -Zend_Http_Cookie -Zend_Http_Client AZend_Http_Client_Exception" GZend_Http_Client_Adapter_Test$ KZend_Http_Client_Adapter_Socket# IZend_Http_Client_Adapter_Proxy' QZend_Http_Client_Adapter_Exception !Zend_Gdata ;Zend_Gdata_Spreadsheets( SZend_Gdata_InvalidArgumentException =Zend_Gdata_HttpException 5Zend_Gdata_Exception +Zend_Gdata_Data 7Zend_Gdata_CodeSearch 9Zend_Gdata_ClientLogin 3Zend_Gdata_Calendar 1Zend_Gdata_Blogger +Zend_Gdata_Base& OZend_Gdata_BadMethodCallException 1Zend_Gdata_AuthSub =Zend_Gdata_AuthException
 #Zend_Filter	 7Zend_Filter_StripTags 9Zend_Filter_StringTrim ?Zend_Filter_StringToLower 5Zend_Filter_RealPath +Zend_Filter_Int =Zend_Filter_HtmlEntities 7Zend_Filter_Exception +Zend_Filter_Dir 1Zend_Filter_Digits  5Zend_Filter_BaseName /Zend_Filter_Alpha~ /Zend_Filter_Alnum} Zend_Feed| 'Zend_Feed_Rss{ 3Zend_Feed_Exceptionz 1Zend_Feed_EntryRssy 3Zend_Feed_EntryAtomx ;Zend_Feed_EntryAbstractw /Zend_Feed_Elementv /Zend_Feed_Builderu =Zend_Feed_Builder_Header$t KZend_Feed_Builder_Header_Itunes s CZend_Feed_Builder_Exceptionr ;Zend_Feed_Builder_Entryq )Zend_Feed_Atomp 1Zend_Feed_Abstracto )Zend_Exceptionn !Zend_Debugm Zend_Db   g  jP9'|`?#oQ0	rR+Z9




^
4
						k	:	s<
^/^)xZ@"yc@ GLK 6R oZend_Search_Lucene_Analysis_TokenFilter_StopWords7Q qZend_Search_Lucene_Analysis_TokenFilter_ShortWords6P oZend_Search_Lucene_Analysis_TokenFilter_LowerCase&O OZend_Search_Lucene_Analysis_Token)N UZend_Search_Lucene_Analysis_Analyzer0M cZend_Search_Lucene_Analysis_Analyzer_Common8L sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num5K mZend_Search_Lucene_Analysis_Analyzer_Common_Utf88J sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumII Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive5H mZend_Search_Lucene_Analysis_Analyzer_Common_TextFG Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiveF 7Zend_Search_ExceptionE -Zend_Rest_ServerD AZend_Rest_Server_ExceptionC 3Zend_Rest_ExceptionB -Zend_Rest_ClientA ;Zend_Rest_Client_Result@ AZend_Rest_Client_Exception? 'Zend_Registry> Zend_Pdf!= EZend_Pdf_UpdateInfoContainer< -Zend_Pdf_Trailer; ;Zend_Pdf_Trailer_Keeper: AZend_Pdf_Trailer_Generator9 )Zend_Pdf_Style8 7Zend_Pdf_StringParser7 /Zend_Pdf_Resource6 7Zend_Pdf_ImageFactory5 )Zend_Pdf_Image4 3Zend_Pdf_Image_Tiff3 1Zend_Pdf_Image_Png2 3Zend_Pdf_Image_Jpeg1 9Zend_Pdf_Resource_Font$0 KZend_Pdf_Resource_Font_Standard1/ eZend_Pdf_Resource_Font_Standard_ZapfDingbats/. aZend_Pdf_Resource_Font_Standard_TimesRoman0- cZend_Pdf_Resource_Font_Standard_TimesItalic4, kZend_Pdf_Resource_Font_Standard_TimesBoldItalic.+ _Zend_Pdf_Resource_Font_Standard_TimesBold+* YZend_Pdf_Resource_Font_Standard_Symbol5) mZend_Pdf_Resource_Font_Standard_HelveticaOblique9( uZend_Pdf_Resource_Font_Standard_HelveticaBoldOblique2' gZend_Pdf_Resource_Font_Standard_HelveticaBold.& _Zend_Pdf_Resource_Font_Standard_Helvetica3% iZend_Pdf_Resource_Font_Standard_CourierOblique7$ qZend_Pdf_Resource_Font_Standard_CourierBoldOblique0# cZend_Pdf_Resource_Font_Standard_CourierBold," [Zend_Pdf_Resource_Font_Standard_Courier$! KZend_Pdf_Resource_Font_OpenType-  ]Zend_Pdf_Resource_Font_OpenType_TrueType /Zend_Pdf_PhpArray +Zend_Pdf_Parser 9Zend_Pdf_Parser_Stream 'Zend_Pdf_Page 'Zend_Pdf_Font  CZend_Pdf_Filter_Compression$ KZend_Pdf_Filter_Compression_Lzw& OZend_Pdf_Filter_Compression_Flate =Zend_Pdf_Filter_AsciiHex ;Zend_Pdf_Filter_Ascii85" GZend_Pdf_FileParserDataSource) UZend_Pdf_FileParserDataSource_String' QZend_Pdf_FileParserDataSource_File 3Zend_Pdf_FileParser =Zend_Pdf_FileParser_Font& OZend_Pdf_FileParser_Font_OpenType/ aZend_Pdf_FileParser_Font_OpenType_TrueType 1Zend_Pdf_Exception ;Zend_Pdf_ElementFactory -Zend_Pdf_Element ;Zend_Pdf_Element_String#
 IZend_Pdf_Element_String_Binary	 ;Zend_Pdf_Element_Stream AZend_Pdf_Element_Reference% MZend_Pdf_Element_Reference_Table' QZend_Pdf_Element_Reference_Context ;Zend_Pdf_Element_Object# IZend_Pdf_Element_Object_Stream =Zend_Pdf_Element_Numeric 7Zend_Pdf_Element_Null 7Zend_Pdf_Element_Name   CZend_Pdf_Element_Dictionary =Zend_Pdf_Element_Boolean~ 9Zend_Pdf_Element_Array} )Zend_Pdf_Color| 1Zend_Pdf_Color_Rgb{ 3Zend_Pdf_Color_Htmlz =Zend_Pdf_Color_GrayScaley 3Zend_Pdf_Color_Cmykx 'Zend_Pdf_Cmapw AZend_Pdf_Cmap_TrimmedTable!v EZend_Pdf_Cmap_SegmentToDeltau AZend_Pdf_Cmap_ByteEncoding&t OZend_Pdf_Cmap_ByteEncoding_Statics Zend_Mimer )Zend_Mime_Partq /Zend_Mime_Messagep 3Zend_Mime_Exceptiono -Zend_Mime_Decoden 3Zend_Measure_Weightm 3Zend_Measure_Volume%l MZend_Measure_Viscosity_Kinematic   ]  ^=o5]7~N j6 


v
I
				M	 ]/n?sB~S4zX7~S7tU6jG'                                    / 9Zend_Service_Simpy_Tag. AZend_Service_Simpy_NoteSet- ;Zend_Service_Simpy_Note, AZend_Service_Simpy_LinkSet!+ EZend_Service_Simpy_LinkQuery* ;Zend_Service_Simpy_Link) 3Zend_Service_Flickr"( GZend_Service_Flickr_ResultSet' AZend_Service_Flickr_Result& ?Zend_Service_Flickr_Image% 9Zend_Service_Exception$ 9Zend_Service_Delicious&# OZend_Service_Delicious_SimplePost$" KZend_Service_Delicious_PostList ! CZend_Service_Delicious_Post%  MZend_Service_Delicious_Exception  CZend_Service_Audioscrobbler 3Zend_Service_Amazon' QZend_Service_Amazon_SimilarProduct" GZend_Service_Amazon_ResultSet ?Zend_Service_Amazon_Query! EZend_Service_Amazon_OfferSet ?Zend_Service_Amazon_Offer& OZend_Service_Amazon_ListmaniaList =Zend_Service_Amazon_Item ?Zend_Service_Amazon_Image( SZend_Service_Amazon_EditorialReview' QZend_Service_Amazon_CustomerReview$ KZend_Service_Amazon_Accessories 5Zend_Service_Akismet 7Zend_Service_Abstract 9Zend_Server_Reflection' QZend_Server_Reflection_ReturnValue% MZend_Server_Reflection_Prototype% MZend_Server_Reflection_Parameter  CZend_Server_Reflection_Node" GZend_Server_Reflection_Method$
 KZend_Server_Reflection_Function-	 ]Zend_Server_Reflection_Function_Abstract% MZend_Server_Reflection_Exception! EZend_Server_Reflection_Class 7Zend_Server_Exception 5Zend_Server_Abstract 1Zend_Search_Lucene$ KZend_Search_Lucene_Storage_File+ YZend_Search_Lucene_Storage_File_Memory/ aZend_Search_Lucene_Storage_File_Filesystem)  UZend_Search_Lucene_Storage_Directory4 kZend_Search_Lucene_Storage_Directory_Filesystem%~ MZend_Search_Lucene_Search_Weight*} WZend_Search_Lucene_Search_Weight_Term,| [Zend_Search_Lucene_Search_Weight_Phrase/{ aZend_Search_Lucene_Search_Weight_MultiTerm+z YZend_Search_Lucene_Search_Weight_Empty-y ]Zend_Search_Lucene_Search_Weight_Boolean)x UZend_Search_Lucene_Search_Similarity1w eZend_Search_Lucene_Search_Similarity_Default)v UZend_Search_Lucene_Search_QueryToken3u iZend_Search_Lucene_Search_QueryParserException1t eZend_Search_Lucene_Search_QueryParserContext*s WZend_Search_Lucene_Search_QueryParser)r UZend_Search_Lucene_Search_QueryLexer'q QZend_Search_Lucene_Search_QueryHit)p UZend_Search_Lucene_Search_QueryEntry.o _Zend_Search_Lucene_Search_QueryEntry_Term2n gZend_Search_Lucene_Search_QueryEntry_Subquery0m cZend_Search_Lucene_Search_QueryEntry_Phrase$l KZend_Search_Lucene_Search_Query)k UZend_Search_Lucene_Search_Query_Term+j YZend_Search_Lucene_Search_Query_Phrase.i _Zend_Search_Lucene_Search_Query_MultiTerm*h WZend_Search_Lucene_Search_Query_Empty,g [Zend_Search_Lucene_Search_Query_Boolean:f wZend_Search_Lucene_Search_BooleanExpressionRecognizer%e MZend_Search_Lucene_PriorityQueue$d KZend_Search_Lucene_Index_Writer&c OZend_Search_Lucene_Index_TermInfo"b GZend_Search_Lucene_Index_Term+a YZend_Search_Lucene_Index_SegmentWriter8` sZend_Search_Lucene_Index_SegmentWriter_StreamWriter:_ wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter+^ YZend_Search_Lucene_Index_SegmentMerger6] oZend_Search_Lucene_Index_SegmentInfoPriorityQueue)\ UZend_Search_Lucene_Index_SegmentInfo'[ QZend_Search_Lucene_Index_FieldInfo.Z _Zend_Search_Lucene_Index_DictionaryLoader!Y EZend_Search_Lucene_FSMActionX 9Zend_Search_Lucene_FSMW =Zend_Search_Lucene_Field!V EZend_Search_Lucene_Exception U CZend_Search_Lucene_Document%T MZend_Search_Lucene_Document_Html,S [Zend_Search_Lucene_Analysis_TokenFilter  F   }wqke_YSMGA;5/)#{uoic]WQKE?93-'!	ysmga[UOIC=71+%}wqke_YSMGA;5/)#{tmf_XQJC<5.' 



















x
q
j
c
\
U
N
G
@
9
2
+
$




																			|	u	n	g	`	Y	R	K	D	=	6	/	(	!				yrkd]VOHA:3,%	}vohaZSLE>70)"zsle^WPIB;4-&
~wpib[TMF?81*# {tmf_XQJC<5.'   k  l  w    -  >  @  L  a        #  L  S  X  r      -  I  N  j  t    ߂"  ނ%  ݂=  ܂A  ڂF  قX  ؂h  ׂ  ւG  Ղf  Ԃ!  ӂL  ҂
  т]  Ђ'  ςH  ΂v  ͂  ̂"  ˂1  ʂ@  ɂd  Ȃ  ǂ$  Ƃ>  łX  Ăx  Â  ,  H  _  s    G  p    P    Q  "  Q  y    0  A  O  i    +  K  _      5  V  o      G  |    V  }  D    U  z    <  O  W  l    2  S  l  
  )  ;  _  w      E  {    R    ;    Z  {  ~+  }E  |W  {f  zt  y  x9  wX  vr  u  t,  sC  r`  p|  o  n'  m@  lz  k&  jL  i  h2  g  fU  e  d,  cL  bc  as  `  _  ^B  ]^  \~  [  Z4  YR  Xj  W
  T#  S8  RF  Q{  P0  OK  N
  M2  Lz  KK  J	  I/  HR  Gp  F  E
  D   CG  Be  A  @   ?>  >\  =n  <  :+  9B  8S  7{  61  5S  4	  38  2p  1D  0  /2  .c  -}  ,  +  *-  )O  (t  '  &2  %G  $j  #  "  !@  Y  o     /  d    =  d  '  y  ?  a  	  %  6  B  X  {    ;  
Y  	m    +  D  d  {    #   \   
   +   i      3   ^   z   
      *   O   n      (   D   d   x      쁢3   끡J   ꁠ_   遟z   聟4   灞`   恞   偝>   䁜f   ぜ   ⁛0   ၚM   `   ߁i   ށ}   ݁#   ܁B   ہc   ځ|   ف   ؁8   ׁJ   ցn   Ӂ   ҁ   с/   ЁT   ρ
   ΁1   ́_   ́   ˁ9   ʁ`   Ɂ~   ȁ   ǁ,   Ɓ9   ŁP   āw   Á   3   J   l         A   X   j   w   &   Z   s   /   X   v   $   ;   H   T   a          ?   U   o         ?   U   i   x      S   u   &   T      `   *   I   v         '   4   V   r      '   A   _   o      '   ;   I   q   $   D   x   %   _   1   z   ~   }E   |^   {j   zv   y   x&   wB   vb   uw   t   s/   r?   qa   ow   n   m   lB   ku   j   iJ   hu   g1   f   eK   dk   c   b.   a;   `E   _T   ^w   ]   \3   [I   Ze   Y   X   W3   TI   S]   Ri   Q   PH   Oe   N   MG   L   KZ   J    I@   Hi   G   F   E   D*   CM   Bj   A	   @    ?<   >X   =g   <
   :    94   8A   7m   6    5:   4w   3   2`   11   0s   /   .7   -R   ,`   +e   *}   )   (;   'Z   &p   %
   $(   #8   "Z   p         6   h      <   _   #   s   1   S   p            *   M   e         
.   	F   X   r   d{tmf_XQJC<5.' x												~	w	p	i	b	[	T	M	F	?	8	1	*	#					 {tmf_XQJC<5.' xqjc\UNG@92+$|ung`YRKD=6/(!yrkd]VOHA:3,%	}vohaZSLE>70)"yrkd]VOHA:3,%	}vohaZSLE>70)"



















z
s
l
e
^
W
P
I
B
;
4
-
&





							qjc\UNG@92+$|ung`YRKD=6/(!         넍c  鄌{  脌  焋  愊S  儊  䄉%  ㄈQ  ℈#  ᄇs    ߄G  ބc  ݄u  ܄}  ۄ  ڄ6  لW  ؄x  ׄ  փ/  ՃL  ԃ`  ҃w  у  Ѓ#  σA  ΃x  ̓  ̃E  ˃  ʃT  Ƀ  ȃ=  ǃ`  ƃ}  Ń  ă  Ã2  W  t    '  J  a      +  ;  j    <  f  8  	  6  `        0  U  t    -  L  k  }    -  B  Z    :  a    k  5  V  }    &  3  M  t    1  B  g      4  K  [    ;  W    P  !  S  {    ~3  }=  |M  {q  z  y2  xJ  wh  v  u  s5  rK  qa  p{  o3  nY  m  l  kK  je  it  h  g  f?  e\  d}  c  b2  aK  `h  ^  ]  \$  [V  Z  Y(  XS  W%  Vu  U  TJ  Si  Rz  Q  P  O:  NZ  M{  L  K2  JQ  Ic  G|  F  E!  DI  C_  Bm  A  @/  ?=  >N  =]  <  ;  :)  9M  8i  7u  6  5  4=  3N  2`  1w  0  /  .2  -T  ,Y  +x  )  (  '%  &M  %[  $q  #}  "  !   E  W  j  y  
    C  U  d  v      9  O  \  j  {  
  2  E  R  
e  	v    )  ?  B  P  [  }       $  /  a~  `  _*  ^A  ]z  \"  [P  Z}  YO  X  WE  Vt  U  T#  S+  R?  Qd  P  O%  N=  M\  L{  K  I'  H=  GR  Fk  E$  DK  Cs  B*  A}  @G  ?h  >  =,  <9  ;F  :_  9  8#  7C  6V  5w  4  3-  1C  0Z  /l  .  -H  ,g  +  *Y  )*  (c  '
  &(  %C  $N  #\  "   !$   A  [  v    )  G  _  u    ;  i    <    \     /  I  Y  `  w  
  	<  ]  r    0  I  ]   t    *  a    +  n  ?    %  E  b  k  y    ?  \  w    턏1  섎D  p       E  a      6  N  j      /  M    (  Z     M    U  |    8  A  N  l    0  P  c  ~  }!  |9  yV  xm  w  v  uQ  tz  s&  rS  q%  pu  o  nJ  mi  lz  k  j  i;  hZ  g{  f  e2  dQ  cc  R  k  l  w    -  >  @  L  a        #  L  S  X  r      -  I  N  j  t    ߂"  ނ%  ݂=  ܂A  ڂF  قX  ؂h  ׂ  ւG  Ղf  Ԃ!  ӂL  ҂
  т]  Ђ'  ςH  ΂v  ͂  ̂"  ˂1  ʂ@  ɂd  Ȃ  ǂ$  Ƃ>  łX  Ăx  Â  ,  H   u  `8Z4w\> qN'mW?.





a
A
%
					a	?	iJ._:fCtb=eJ,tS.jG&}cV;!       %$ MZend_Acl_Role_Registry_Exception# /Zend_Acl_Resource" 1Zend_Acl_Exception	! Zend  /Zend_XmlRpc_Value =Zend_XmlRpc_Value_Struct =Zend_XmlRpc_Value_String =Zend_XmlRpc_Value_Scalar ?Zend_XmlRpc_Value_Integer  CZend_XmlRpc_Value_Exception =Zend_XmlRpc_Value_Double AZend_XmlRpc_Value_DateTime! EZend_XmlRpc_Value_Collection ?Zend_XmlRpc_Value_Boolean =Zend_XmlRpc_Value_Base64 ;Zend_XmlRpc_Value_Array 1Zend_XmlRpc_Server =Zend_XmlRpc_Server_Fault! EZend_XmlRpc_Server_Exception =Zend_XmlRpc_Server_Cache 5Zend_XmlRpc_Response ?Zend_XmlRpc_Response_Http 3Zend_XmlRpc_Request ?Zend_XmlRpc_Request_Stdin =Zend_XmlRpc_Request_Http /Zend_XmlRpc_Fault
 7Zend_XmlRpc_Exception	 1Zend_XmlRpc_Client# IZend_XmlRpc_Client_ServerProxy+ YZend_XmlRpc_Client_ServerIntrospection+ YZend_XmlRpc_Client_IntrospectException% MZend_XmlRpc_Client_HttpException& OZend_XmlRpc_Client_FaultException! EZend_XmlRpc_Client_Exception Zend_View 5Zend_View_Helper_Url  ?Zend_View_Helper_HtmlList" GZend_View_Helper_FormTextarea~ ?Zend_View_Helper_FormText } CZend_View_Helper_FormSubmit | CZend_View_Helper_FormSelect{ AZend_View_Helper_FormResetz AZend_View_Helper_FormRadio"y GZend_View_Helper_FormPasswordx ?Zend_View_Helper_FormNotew AZend_View_Helper_FormImage v CZend_View_Helper_FormHiddenu ?Zend_View_Helper_FormFile!t EZend_View_Helper_FormElement"s GZend_View_Helper_FormCheckbox r CZend_View_Helper_FormButtonq 3Zend_View_Exceptionp 1Zend_View_Abstracto %Zend_Versionn 'Zend_Validatem AZend_Validate_StringLengthl 3Zend_Validate_Regexk 9Zend_Validate_LessThanj -Zend_Validate_Ipi /Zend_Validate_Inth 7Zend_Validate_InArrayg 9Zend_Validate_Hostnamef ?Zend_Validate_Hostname_See ?Zend_Validate_Hostname_Nod ?Zend_Validate_Hostname_Lic ?Zend_Validate_Hostname_Hub ?Zend_Validate_Hostname_Fia ?Zend_Validate_Hostname_De` ?Zend_Validate_Hostname_Ch_ ?Zend_Validate_Hostname_At^ /Zend_Validate_Hex] ?Zend_Validate_GreaterThan\ 3Zend_Validate_Float[ ;Zend_Validate_ExceptionZ AZend_Validate_EmailAddressY 5Zend_Validate_DigitsX 1Zend_Validate_DateW 3Zend_Validate_CcnumV 7Zend_Validate_BetweenU 3Zend_Validate_AlphaT 3Zend_Validate_AlnumS Zend_UriR +Zend_Uri_MailtoQ 'Zend_Uri_HttpP 1Zend_Uri_ExceptionO )Zend_TranslateN =Zend_Translate_ExceptionM 9Zend_Translate_Adapter!L EZend_Translate_Adapter_XliffK AZend_Translate_Adapter_Tmx#J IZend_Translate_Adapter_GettextI AZend_Translate_Adapter_Csv!H EZend_Translate_Adapter_ArrayG %Zend_Session)F UZend_Session_Validator_HttpUserAgent$E KZend_Session_Validator_AbstractD 9Zend_Session_NamespaceC 9Zend_Session_ExceptionB 7Zend_Session_AbstractA 1Zend_Service_Yahoo$@ KZend_Service_Yahoo_WebResultSet!? EZend_Service_Yahoo_WebResult!> EZend_Service_Yahoo_ResultSet= ?Zend_Service_Yahoo_Result%< MZend_Service_Yahoo_NewsResultSet"; GZend_Service_Yahoo_NewsResult&: OZend_Service_Yahoo_LocalResultSet#9 IZend_Service_Yahoo_LocalResult&8 OZend_Service_Yahoo_ImageResultSet#7 IZend_Service_Yahoo_ImageResult6 =Zend_Service_Yahoo_Image5 1Zend_Service_Simpy$4 KZend_Service_Simpy_WatchlistSet*3 WZend_Service_Simpy_WatchlistFilterSet'2 QZend_Service_Simpy_WatchlistFilter!1 EZend_Service_Simpy_Watchlist0 ?Zend_Service_Simpy_TagSet   j  e7^2fG,uR.fI




]
F
(
				m	N	3	|Y5	mP&dM/tU:`<tW-kB$ iJ/                  CZend_Acl_Resource_Interface! ?Zend_Acl_Assert_Interface! 3Zend_View_Interface  ;Zend_Validate_Interface % MZend_Validate_Hostname_Interface % MZend_Session_Validator_Interface ' QZend_Session_SaveHandler_Interface  7Zend_Server_Interface ! EZend_Search_Lucene_Interface  9Zend_Request_Interface & OZend_Pdf_ElementFactory_Interface $ KZend_Memory_Container_Interface ) UZend_Mail_Storage_Writable_Interface ' QZend_Mail_Storage_Folder_Interface ! EZend_Log_Formatter_Interface  ?Zend_Log_Filter_Interface ' QZend_Http_Client_Adapter_Interface  7Zend_Filter_Interface   CZend_Feed_Builder_Interface  
 CZend_Db_Statement_Interface +	 YZend_Controller_Router_Route_Interface % MZend_Controller_Router_Interface ) UZend_Controller_Dispatcher_Interface ! EZend_Cache_Backend_Interface   CZend_Auth_Storage_Interface   CZend_Auth_Adapter_Interface . _Zend_Auth_Adapter_Http_Resolver_Interface  ;Zend_Acl_Role_Interface   CZend_Acl_Resource_Interface   ?Zend_Acl_Assert_Interface  3Zend_View_Interface~ ;Zend_Validate_Interface%} MZend_Validate_Hostname_Interface%| MZend_Session_Validator_Interface'{ QZend_Session_SaveHandler_Interfacez 7Zend_Server_Interface!y EZend_Search_Lucene_Interfacex 9Zend_Request_Interfacew +Zend_Pdf_Filter$v KZend_Memory_Container_Interface)u UZend_Mail_Storage_Writable_Interface't QZend_Mail_Storage_Folder_Interface!s EZend_Log_Formatter_Interfacer ?Zend_Log_Filter_Interface'q QZend_Http_Client_Adapter_Interfacep 7Zend_Filter_Interface o CZend_Feed_Builder_Interface n CZend_Db_Statement_Interface+m YZend_Controller_Router_Route_Interface%l MZend_Controller_Router_Interface)k UZend_Controller_Dispatcher_Interface!j EZend_Cache_Backend_Interface i CZend_Auth_Storage_Interface h CZend_Auth_Adapter_Interface.g _Zend_Auth_Adapter_Http_Resolver_Interfacef ;Zend_Acl_Role_Interface e CZend_Acl_Resource_Interfaced ?Zend_Acl_Assert_Interfacec 3Zend_View_Interfaceb ;Zend_Validate_Interface%a MZend_Validate_Hostname_Interface%` MZend_Session_Validator_Interface'_ QZend_Session_SaveHandler_Interface^ 7Zend_Server_Interface!] EZend_Search_Lucene_Interface\ 9Zend_Request_Interface[ +Zend_Pdf_Filter$Z KZend_Memory_Container_Interface)Y UZend_Mail_Storage_Writable_Interface'X QZend_Mail_Storage_Folder_Interface!W EZend_Log_Formatter_InterfaceV ?Zend_Log_Filter_Interface'U QZend_Http_Client_Adapter_InterfaceT 7Zend_Filter_Interface S CZend_Feed_Builder_Interface R CZend_Db_Statement_Interface+Q YZend_Controller_Router_Route_Interface%P MZend_Controller_Router_Interface)O UZend_Controller_Dispatcher_Interface!N EZend_Cache_Backend_Interface M CZend_Auth_Storage_Interface L CZend_Auth_Adapter_Interface.K _Zend_Auth_Adapter_Http_Resolver_InterfaceJ ;Zend_Acl_Role_Interface I CZend_Acl_Resource_InterfaceH ?Zend_Acl_Assert_InterfaceG 3Zend_View_InterfaceF ;Zend_Validate_Interface%E MZend_Validate_Hostname_Interface%D MZend_Session_Validator_Interface'C QZend_Session_SaveHandler_InterfaceB 7Zend_Server_InterfaceA 9Zend_Request_Interface@ +Zend_Pdf_Filter)? UZend_Mail_Storage_Writable_Interface'> QZend_Mail_Storage_Folder_Interface= AZend_Log_Adapter_Interface'< QZend_Http_Client_Adapter_Interface; 7Zend_Filter_Interface : CZend_Feed_Builder_Interface 9 CZend_Db_Statement_Interface+8 YZend_Controller_Router_Route_Interface%7 MZend_Controller_Router_Interface)6 UZend_Controller_Dispatcher_Interface!5 EZend_Cache_Backend_Interface 4 CZend_Auth_Storage_Interface   w wS!|T2 zR7wVC%T'




m
D
				{	U	-	Z5nL#uS3cJ)}\1pV0qM%y]G5            /Zend_Filter_Alpha /Zend_Filter_Alnum Zend_Feed 'Zend_Feed_Rss 3Zend_Feed_Exception 1Zend_Feed_EntryRss 3Zend_Feed_EntryAtom ;Zend_Feed_EntryAbstract /Zend_Feed_Element /Zend_Feed_Builder =Zend_Feed_Builder_Header$ KZend_Feed_Builder_Header_Itunes  CZend_Feed_Builder_Exception ;Zend_Feed_Builder_Entry )Zend_Feed_Atom 1Zend_Feed_Abstract )Zend_Exception
 !Zend_Debug	 Zend_Db 'Zend_Db_Table 5Zend_Db_Table_Rowset" GZend_Db_Table_Rowset_Abstract /Zend_Db_Table_Row  CZend_Db_Table_Row_Exception AZend_Db_Table_Row_Abstract ;Zend_Db_Table_Exception 9Zend_Db_Table_Abstract  /Zend_Db_Statement =Zend_Db_Statement_Oracle'~ QZend_Db_Statement_Oracle_Exception} =Zend_Db_Statement_Mysqli'| QZend_Db_Statement_Mysqli_Exception { CZend_Db_Statement_Exceptionz 7Zend_Db_Statement_Db2$y KZend_Db_Statement_Db2_Exceptionx )Zend_Db_Selectw =Zend_Db_Select_Exceptionv -Zend_Db_Profileru 9Zend_Db_Profiler_Queryt AZend_Db_Profiler_Exceptions /Zend_Db_Inflectorr %Zend_Db_Exprq /Zend_Db_Exceptionp AZend_Db_Adapter_Pdo_Sqliteo ?Zend_Db_Adapter_Pdo_Pgsqln ;Zend_Db_Adapter_Pdo_Ocim ?Zend_Db_Adapter_Pdo_Mysqll ?Zend_Db_Adapter_Pdo_Mssql!k EZend_Db_Adapter_Pdo_Abstractj 9Zend_Db_Adapter_Oracle%i MZend_Db_Adapter_Oracle_Exceptionh 9Zend_Db_Adapter_Mysqli%g MZend_Db_Adapter_Mysqli_Exceptionf ?Zend_Db_Adapter_Exceptione 3Zend_Db_Adapter_Db2"d GZend_Db_Adapter_Db2_Exceptionc =Zend_Db_Adapter_Abstractb Zend_Datea 3Zend_Date_Exception` 5Zend_Date_DateObject_ -Zend_Date_Cities!^ EZend_Controller_Router_Route(] SZend_Controller_Router_Route_Static'\ QZend_Controller_Router_Route_Regex([ SZend_Controller_Router_Route_Module#Z IZend_Controller_Router_Rewrite%Y MZend_Controller_Router_Exception$X KZend_Controller_Router_Abstract"W GZend_Controller_Response_Http'V QZend_Controller_Response_Exception!U EZend_Controller_Response_Cli&T OZend_Controller_Response_Abstract!S EZend_Controller_Request_Http&R OZend_Controller_Request_Exception%Q MZend_Controller_Request_Abstract"P GZend_Controller_Plugin_Broker$O KZend_Controller_Plugin_AbstractN 7Zend_Controller_FrontM ?Zend_Controller_Exception(L SZend_Controller_Dispatcher_Standard)K UZend_Controller_Dispatcher_Exception(J SZend_Controller_Dispatcher_AbstractI 9Zend_Controller_ActionH 3Zend_Console_Getopt"G GZend_Console_Getopt_ExceptionF #Zend_ConfigE +Zend_Config_XmlD +Zend_Config_IniC 7Zend_Config_ExceptionB !Zend_CacheA =Zend_Cache_Frontend_Page@ AZend_Cache_Frontend_Output!? EZend_Cache_Frontend_Function> =Zend_Cache_Frontend_File= ?Zend_Cache_Frontend_Class< 5Zend_Cache_Exception; +Zend_Cache_Core: 1Zend_Cache_Backend$9 KZend_Cache_Backend_ZendPlatform8 ;Zend_Cache_Backend_Test7 ?Zend_Cache_Backend_Sqlite!6 EZend_Cache_Backend_Memcached5 ;Zend_Cache_Backend_File4 9Zend_Cache_Backend_APC3 Zend_Auth2 ?Zend_Auth_Storage_Session$1 KZend_Auth_Storage_NonPersistent 0 CZend_Auth_Storage_Exception/ -Zend_Auth_Result. 3Zend_Auth_Exception- 9Zend_Auth_Adapter_Http), UZend_Auth_Adapter_Http_Resolver_File.+ _Zend_Auth_Adapter_Http_Resolver_Exception * CZend_Auth_Adapter_Exception) =Zend_Auth_Adapter_Digest( ?Zend_Auth_Adapter_DbTable' Zend_Acl& 'Zend_Acl_Role% 9Zend_Acl_Role_Registry   } qY<cK0U5"_F-xdK-





f
E
#
					o	^	B	(	[0uO.jElR6wX9bF+eI-eK7 3Zend_Mime_Exception -Zend_Mime_Decode #Zend_Memory /Zend_Memory_Value 3Zend_Memory_Manager 7Zend_Memory_Exception 7Zend_Memory_Container" GZend_Memory_Container_Movable! EZend_Memory_Container_Locked! EZend_Memory_AccessController 3Zend_Measure_Weight 3Zend_Measure_Volume% MZend_Measure_Viscosity_Kinematic# IZend_Measure_Viscosity_Dynamic
 3Zend_Measure_Torque	 =Zend_Measure_Temperature 1Zend_Measure_Speed 7Zend_Measure_Pressure 1Zend_Measure_Power 3Zend_Measure_Number 9Zend_Measure_Lightness 3Zend_Measure_Length ?Zend_Measure_Illumination 9Zend_Measure_Frequency  1Zend_Measure_Force =Zend_Measure_Flow_Volume~ 9Zend_Measure_Flow_Mole} 9Zend_Measure_Flow_Mass| 9Zend_Measure_Exception{ 3Zend_Measure_Energyz 5Zend_Measure_Densityy 5Zend_Measure_Current x CZend_Measure_Cooking_Weight w CZend_Measure_Cooking_Volumev =Zend_Measure_Capacitanceu 3Zend_Measure_Binaryt /Zend_Measure_Areas 1Zend_Measure_Angler ?Zend_Measure_Accelerationq 7Zend_Measure_Abstractp Zend_Mailo =Zend_Mail_Transport_Smtp!n EZend_Mail_Transport_Sendmail"m GZend_Mail_Transport_Exception!l EZend_Mail_Transport_Abstractk /Zend_Mail_Storage'j QZend_Mail_Storage_Writable_Maildiri 9Zend_Mail_Storage_Pop3h 9Zend_Mail_Storage_Mboxg ?Zend_Mail_Storage_Maildirf 9Zend_Mail_Storage_Imape =Zend_Mail_Storage_Folder"d GZend_Mail_Storage_Folder_Mbox%c MZend_Mail_Storage_Folder_Maildir b CZend_Mail_Storage_Exceptiona AZend_Mail_Storage_Abstract` ;Zend_Mail_Protocol_Smtp'_ QZend_Mail_Protocol_Smtp_Auth_Plain'^ QZend_Mail_Protocol_Smtp_Auth_Login)] UZend_Mail_Protocol_Smtp_Auth_Crammd5\ ;Zend_Mail_Protocol_Pop3[ ;Zend_Mail_Protocol_Imap!Z EZend_Mail_Protocol_Exception Y CZend_Mail_Protocol_AbstractX )Zend_Mail_PartW /Zend_Mail_MessageV 3Zend_Mail_ExceptionU Zend_LogT 9Zend_Log_Writer_StreamS 5Zend_Log_Writer_NullR 5Zend_Log_Writer_MockQ 1Zend_Log_Writer_DbP =Zend_Log_Writer_AbstractO 9Zend_Log_Formatter_XmlN ?Zend_Log_Formatter_SimpleM =Zend_Log_Filter_PriorityL ;Zend_Log_Filter_MessageK 1Zend_Log_ExceptionJ #Zend_LocaleI -Zend_Locale_MathH =Zend_Locale_Math_PhpMathG AZend_Locale_Math_ExceptionF 1Zend_Locale_FormatE 7Zend_Locale_ExceptionD -Zend_Locale_DataC #Zend_LoaderB Zend_JsonA 3Zend_Json_Exception@ /Zend_Json_Encoder? /Zend_Json_Decoder> 1Zend_Http_Response= 3Zend_Http_Exception< 3Zend_Http_CookieJar; -Zend_Http_Cookie: -Zend_Http_Client9 AZend_Http_Client_Exception"8 GZend_Http_Client_Adapter_Test$7 KZend_Http_Client_Adapter_Socket#6 IZend_Http_Client_Adapter_Proxy'5 QZend_Http_Client_Adapter_Exception4 !Zend_Gdata3 ;Zend_Gdata_Spreadsheets(2 SZend_Gdata_InvalidArgumentException1 =Zend_Gdata_HttpException0 5Zend_Gdata_Exception/ +Zend_Gdata_Data. 7Zend_Gdata_CodeSearch- 9Zend_Gdata_ClientLogin, 3Zend_Gdata_Calendar+ 1Zend_Gdata_Blogger* +Zend_Gdata_Base&) OZend_Gdata_BadMethodCallException( 1Zend_Gdata_AuthSub' =Zend_Gdata_AuthException& #Zend_Filter% 7Zend_Filter_StripTags$ 9Zend_Filter_StringTrim# ?Zend_Filter_StringToLower" 5Zend_Filter_RealPath! +Zend_Filter_Int  =Zend_Filter_HtmlEntities 7Zend_Filter_Exception +Zend_Filter_Dir 1Zend_Filter_Digits 5Zend_Filter_BaseName   e  pK(hG#T+hMk@




Z
6
 
						q	I	sAf4`8mS5vS3Z!_#^#                        6} oZend_Search_Lucene_Analysis_TokenFilter_StopWords7| qZend_Search_Lucene_Analysis_TokenFilter_ShortWords6{ oZend_Search_Lucene_Analysis_TokenFilter_LowerCase&z OZend_Search_Lucene_Analysis_Token)y UZend_Search_Lucene_Analysis_Analyzer0x cZend_Search_Lucene_Analysis_Analyzer_Common8w sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num5v mZend_Search_Lucene_Analysis_Analyzer_Common_Utf88u sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumIt Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive5s mZend_Search_Lucene_Analysis_Analyzer_Common_TextFr Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiveq 7Zend_Search_Exceptionp -Zend_Rest_Servero AZend_Rest_Server_Exceptionn 3Zend_Rest_Exceptionm -Zend_Rest_Clientl ;Zend_Rest_Client_Resultk AZend_Rest_Client_Exceptionj 'Zend_Registryi Zend_Pdf!h EZend_Pdf_UpdateInfoContainerg -Zend_Pdf_Trailerf ;Zend_Pdf_Trailer_Keepere AZend_Pdf_Trailer_Generatord )Zend_Pdf_Stylec 7Zend_Pdf_StringParserb /Zend_Pdf_Resourcea 7Zend_Pdf_ImageFactory` ;Zend_Pdf_Resource_Image!_ EZend_Pdf_Resource_Image_Tiff ^ CZend_Pdf_Resource_Image_Png!] EZend_Pdf_Resource_Image_Jpeg\ 9Zend_Pdf_Resource_Font$[ KZend_Pdf_Resource_Font_Standard1Z eZend_Pdf_Resource_Font_Standard_ZapfDingbats/Y aZend_Pdf_Resource_Font_Standard_TimesRoman0X cZend_Pdf_Resource_Font_Standard_TimesItalic4W kZend_Pdf_Resource_Font_Standard_TimesBoldItalic.V _Zend_Pdf_Resource_Font_Standard_TimesBold+U YZend_Pdf_Resource_Font_Standard_Symbol5T mZend_Pdf_Resource_Font_Standard_HelveticaOblique9S uZend_Pdf_Resource_Font_Standard_HelveticaBoldOblique2R gZend_Pdf_Resource_Font_Standard_HelveticaBold.Q _Zend_Pdf_Resource_Font_Standard_Helvetica3P iZend_Pdf_Resource_Font_Standard_CourierOblique7O qZend_Pdf_Resource_Font_Standard_CourierBoldOblique0N cZend_Pdf_Resource_Font_Standard_CourierBold,M [Zend_Pdf_Resource_Font_Standard_Courier$L KZend_Pdf_Resource_Font_OpenType-K ]Zend_Pdf_Resource_Font_OpenType_TrueTypeJ /Zend_Pdf_PhpArrayI +Zend_Pdf_ParserH 9Zend_Pdf_Parser_StreamG 'Zend_Pdf_PageF )Zend_Pdf_ImageE 'Zend_Pdf_Font D CZend_Pdf_Filter_Compression$C KZend_Pdf_Filter_Compression_Lzw&B OZend_Pdf_Filter_Compression_FlateA =Zend_Pdf_Filter_AsciiHex@ ;Zend_Pdf_Filter_Ascii85"? GZend_Pdf_FileParserDataSource)> UZend_Pdf_FileParserDataSource_String'= QZend_Pdf_FileParserDataSource_File< 3Zend_Pdf_FileParser; ?Zend_Pdf_FileParser_Image": GZend_Pdf_FileParser_Image_Png9 =Zend_Pdf_FileParser_Font&8 OZend_Pdf_FileParser_Font_OpenType/7 aZend_Pdf_FileParser_Font_OpenType_TrueType6 1Zend_Pdf_Exception5 ;Zend_Pdf_ElementFactory4 -Zend_Pdf_Element3 ;Zend_Pdf_Element_String#2 IZend_Pdf_Element_String_Binary1 ;Zend_Pdf_Element_Stream0 AZend_Pdf_Element_Reference%/ MZend_Pdf_Element_Reference_Table'. QZend_Pdf_Element_Reference_Context- ;Zend_Pdf_Element_Object#, IZend_Pdf_Element_Object_Stream+ =Zend_Pdf_Element_Numeric* 7Zend_Pdf_Element_Null) 7Zend_Pdf_Element_Name ( CZend_Pdf_Element_Dictionary' =Zend_Pdf_Element_Boolean& 9Zend_Pdf_Element_Array% )Zend_Pdf_Color$ 1Zend_Pdf_Color_Rgb# 3Zend_Pdf_Color_Html" =Zend_Pdf_Color_GrayScale! 3Zend_Pdf_Color_Cmyk  'Zend_Pdf_Cmap AZend_Pdf_Cmap_TrimmedTable! EZend_Pdf_Cmap_SegmentToDelta AZend_Pdf_Cmap_ByteEncoding& OZend_Pdf_Cmap_ByteEncoding_Static Zend_Mime )Zend_Mime_Part /Zend_Mime_Message   ^  ^=o5]7]-qI



U
(				a	,l<M{R!]2Y7]2}S4nI&  [ 9Zend_Service_Simpy_TagZ AZend_Service_Simpy_NoteSetY ;Zend_Service_Simpy_NoteX AZend_Service_Simpy_LinkSet!W EZend_Service_Simpy_LinkQueryV ;Zend_Service_Simpy_LinkU 3Zend_Service_Flickr"T GZend_Service_Flickr_ResultSetS AZend_Service_Flickr_ResultR ?Zend_Service_Flickr_ImageQ 9Zend_Service_ExceptionP 9Zend_Service_Delicious&O OZend_Service_Delicious_SimplePost$N KZend_Service_Delicious_PostList M CZend_Service_Delicious_Post%L MZend_Service_Delicious_Exception K CZend_Service_AudioscrobblerJ 3Zend_Service_Amazon'I QZend_Service_Amazon_SimilarProduct"H GZend_Service_Amazon_ResultSetG ?Zend_Service_Amazon_Query!F EZend_Service_Amazon_OfferSetE ?Zend_Service_Amazon_Offer&D OZend_Service_Amazon_ListmaniaListC =Zend_Service_Amazon_ItemB ?Zend_Service_Amazon_Image(A SZend_Service_Amazon_EditorialReview'@ QZend_Service_Amazon_CustomerReview$? KZend_Service_Amazon_Accessories> 5Zend_Service_Akismet= 7Zend_Service_Abstract< 9Zend_Server_Reflection'; QZend_Server_Reflection_ReturnValue%: MZend_Server_Reflection_Prototype%9 MZend_Server_Reflection_Parameter 8 CZend_Server_Reflection_Node"7 GZend_Server_Reflection_Method$6 KZend_Server_Reflection_Function-5 ]Zend_Server_Reflection_Function_Abstract%4 MZend_Server_Reflection_Exception!3 EZend_Server_Reflection_Class2 7Zend_Server_Exception1 5Zend_Server_Abstract0 1Zend_Search_Lucene$/ KZend_Search_Lucene_Storage_File+. YZend_Search_Lucene_Storage_File_Memory/- aZend_Search_Lucene_Storage_File_Filesystem), UZend_Search_Lucene_Storage_Directory4+ kZend_Search_Lucene_Storage_Directory_Filesystem%* MZend_Search_Lucene_Search_Weight*) WZend_Search_Lucene_Search_Weight_Term,( [Zend_Search_Lucene_Search_Weight_Phrase/' aZend_Search_Lucene_Search_Weight_MultiTerm+& YZend_Search_Lucene_Search_Weight_Empty-% ]Zend_Search_Lucene_Search_Weight_Boolean)$ UZend_Search_Lucene_Search_Similarity1# eZend_Search_Lucene_Search_Similarity_Default)" UZend_Search_Lucene_Search_QueryToken3! iZend_Search_Lucene_Search_QueryParserException1  eZend_Search_Lucene_Search_QueryParserContext* WZend_Search_Lucene_Search_QueryParser) UZend_Search_Lucene_Search_QueryLexer' QZend_Search_Lucene_Search_QueryHit) UZend_Search_Lucene_Search_QueryEntry. _Zend_Search_Lucene_Search_QueryEntry_Term2 gZend_Search_Lucene_Search_QueryEntry_Subquery0 cZend_Search_Lucene_Search_QueryEntry_Phrase$ KZend_Search_Lucene_Search_Query) UZend_Search_Lucene_Search_Query_Term+ YZend_Search_Lucene_Search_Query_Phrase. _Zend_Search_Lucene_Search_Query_MultiTerm* WZend_Search_Lucene_Search_Query_Empty, [Zend_Search_Lucene_Search_Query_Boolean: wZend_Search_Lucene_Search_BooleanExpressionRecognizer =Zend_Search_Lucene_Proxy% MZend_Search_Lucene_PriorityQueue$ KZend_Search_Lucene_Index_Writer& OZend_Search_Lucene_Index_TermInfo" GZend_Search_Lucene_Index_Term+ YZend_Search_Lucene_Index_SegmentWriter8 sZend_Search_Lucene_Index_SegmentWriter_StreamWriter:
 wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter+	 YZend_Search_Lucene_Index_SegmentMerger6 oZend_Search_Lucene_Index_SegmentInfoPriorityQueue) UZend_Search_Lucene_Index_SegmentInfo' QZend_Search_Lucene_Index_FieldInfo. _Zend_Search_Lucene_Index_DictionaryLoader! EZend_Search_Lucene_FSMAction 9Zend_Search_Lucene_FSM =Zend_Search_Lucene_Field! EZend_Search_Lucene_Exception   CZend_Search_Lucene_Document% MZend_Search_Lucene_Document_Html,~ [Zend_Search_Lucene_Analysis_TokenFilter   u  `8Z4w\> qN'mW?.





a
A
%
					a	?	iJ.`:dAlO=g@%lO.	jE"yX>1           P /Zend_Acl_ResourceO 1Zend_Acl_Exception	N ZendM /Zend_XmlRpc_ValueL =Zend_XmlRpc_Value_StructK =Zend_XmlRpc_Value_StringJ =Zend_XmlRpc_Value_ScalarI ?Zend_XmlRpc_Value_Integer H CZend_XmlRpc_Value_ExceptionG =Zend_XmlRpc_Value_DoubleF AZend_XmlRpc_Value_DateTime!E EZend_XmlRpc_Value_CollectionD ?Zend_XmlRpc_Value_BooleanC =Zend_XmlRpc_Value_Base64B ;Zend_XmlRpc_Value_ArrayA 1Zend_XmlRpc_Server@ =Zend_XmlRpc_Server_Fault!? EZend_XmlRpc_Server_Exception> =Zend_XmlRpc_Server_Cache= 5Zend_XmlRpc_Response< ?Zend_XmlRpc_Response_Http; 3Zend_XmlRpc_Request: ?Zend_XmlRpc_Request_Stdin9 =Zend_XmlRpc_Request_Http8 /Zend_XmlRpc_Fault7 7Zend_XmlRpc_Exception6 1Zend_XmlRpc_Client#5 IZend_XmlRpc_Client_ServerProxy+4 YZend_XmlRpc_Client_ServerIntrospection+3 YZend_XmlRpc_Client_IntrospectException%2 MZend_XmlRpc_Client_HttpException&1 OZend_XmlRpc_Client_FaultException!0 EZend_XmlRpc_Client_Exception/ Zend_View. 5Zend_View_Helper_Url- ?Zend_View_Helper_HtmlList", GZend_View_Helper_FormTextarea+ ?Zend_View_Helper_FormText * CZend_View_Helper_FormSubmit ) CZend_View_Helper_FormSelect( AZend_View_Helper_FormReset' AZend_View_Helper_FormRadio"& GZend_View_Helper_FormPassword% ?Zend_View_Helper_FormNote$ AZend_View_Helper_FormImage # CZend_View_Helper_FormHidden" ?Zend_View_Helper_FormFile!! EZend_View_Helper_FormElement"  GZend_View_Helper_FormCheckbox  CZend_View_Helper_FormButton! EZend_View_Helper_DeclareVars 3Zend_View_Exception 1Zend_View_Abstract %Zend_Version 'Zend_Validate AZend_Validate_StringLength 3Zend_Validate_Regex 9Zend_Validate_LessThan -Zend_Validate_Ip /Zend_Validate_Int 7Zend_Validate_InArray 9Zend_Validate_Hostname ?Zend_Validate_Hostname_Se ?Zend_Validate_Hostname_No ?Zend_Validate_Hostname_Li ?Zend_Validate_Hostname_Hu ?Zend_Validate_Hostname_Fi ?Zend_Validate_Hostname_De ?Zend_Validate_Hostname_Ch ?Zend_Validate_Hostname_At
 /Zend_Validate_Hex	 ?Zend_Validate_GreaterThan 3Zend_Validate_Float ;Zend_Validate_Exception AZend_Validate_EmailAddress 5Zend_Validate_Digits 1Zend_Validate_Date 3Zend_Validate_Ccnum 7Zend_Validate_Between 3Zend_Validate_Alpha  3Zend_Validate_Alnum Zend_Uri~ +Zend_Uri_Mailto} 'Zend_Uri_Http| 1Zend_Uri_Exception{ )Zend_Translatez =Zend_Translate_Exceptiony 9Zend_Translate_Adapter!x EZend_Translate_Adapter_Xliffw AZend_Translate_Adapter_Tmx#v IZend_Translate_Adapter_Gettextu AZend_Translate_Adapter_Csv!t EZend_Translate_Adapter_Arrays %Zend_Session)r UZend_Session_Validator_HttpUserAgent$q KZend_Session_Validator_Abstractp 9Zend_Session_Namespaceo 9Zend_Session_Exceptionn 7Zend_Session_Abstractm 1Zend_Service_Yahoo$l KZend_Service_Yahoo_WebResultSet!k EZend_Service_Yahoo_WebResult!j EZend_Service_Yahoo_ResultSeti ?Zend_Service_Yahoo_Result%h MZend_Service_Yahoo_NewsResultSet"g GZend_Service_Yahoo_NewsResult&f OZend_Service_Yahoo_LocalResultSet#e IZend_Service_Yahoo_LocalResult&d OZend_Service_Yahoo_ImageResultSet#c IZend_Service_Yahoo_ImageResultb =Zend_Service_Yahoo_Imagea 1Zend_Service_Simpy$` KZend_Service_Simpy_WatchlistSet*_ WZend_Service_Simpy_WatchlistFilterSet'^ QZend_Service_Simpy_WatchlistFilter!] EZend_Service_Simpy_Watchlist\ ?Zend_Service_Simpy_TagSet   r oN*wS+	qQ)qN-vM



b
C
				~	V	0	i>tIsM1Z8hE&k@zW3kT4                                     B CZend_Feed_Builder_ExceptionA ;Zend_Feed_Builder_Entry@ )Zend_Feed_Atom? 1Zend_Feed_Abstract> )Zend_Exception= !Zend_Debug< Zend_Db; 'Zend_Db_Table: 5Zend_Db_Table_Rowset"9 GZend_Db_Table_Rowset_Abstract8 /Zend_Db_Table_Row 7 CZend_Db_Table_Row_Exception6 AZend_Db_Table_Row_Abstract5 ;Zend_Db_Table_Exception4 9Zend_Db_Table_Abstract3 /Zend_Db_Statement2 =Zend_Db_Statement_Oracle'1 QZend_Db_Statement_Oracle_Exception0 =Zend_Db_Statement_Mysqli'/ QZend_Db_Statement_Mysqli_Exception . CZend_Db_Statement_Exception- 7Zend_Db_Statement_Db2$, KZend_Db_Statement_Db2_Exception+ )Zend_Db_Select* =Zend_Db_Select_Exception) -Zend_Db_Profiler( 9Zend_Db_Profiler_Query' AZend_Db_Profiler_Exception& /Zend_Db_Inflector% %Zend_Db_Expr$ /Zend_Db_Exception# AZend_Db_Adapter_Pdo_Sqlite" ?Zend_Db_Adapter_Pdo_Pgsql! ;Zend_Db_Adapter_Pdo_Oci  ?Zend_Db_Adapter_Pdo_Mysql ?Zend_Db_Adapter_Pdo_Mssql! EZend_Db_Adapter_Pdo_Abstract 9Zend_Db_Adapter_Oracle% MZend_Db_Adapter_Oracle_Exception 9Zend_Db_Adapter_Mysqli% MZend_Db_Adapter_Mysqli_Exception ?Zend_Db_Adapter_Exception 3Zend_Db_Adapter_Db2" GZend_Db_Adapter_Db2_Exception =Zend_Db_Adapter_Abstract Zend_Date 3Zend_Date_Exception 5Zend_Date_DateObject -Zend_Date_Cities! EZend_Controller_Router_Route( SZend_Controller_Router_Route_Static' QZend_Controller_Router_Route_Regex( SZend_Controller_Router_Route_Module# IZend_Controller_Router_Rewrite% MZend_Controller_Router_Exception$ KZend_Controller_Router_Abstract"
 GZend_Controller_Response_Http'	 QZend_Controller_Response_Exception! EZend_Controller_Response_Cli& OZend_Controller_Response_Abstract! EZend_Controller_Request_Http& OZend_Controller_Request_Exception% MZend_Controller_Request_Abstract" GZend_Controller_Plugin_Broker$ KZend_Controller_Plugin_Abstract 7Zend_Controller_Front  ?Zend_Controller_Exception( SZend_Controller_Dispatcher_Standard)~ UZend_Controller_Dispatcher_Exception(} SZend_Controller_Dispatcher_Abstract| 9Zend_Controller_Action({ SZend_Controller_Action_HelperBroker&z OZend_Controller_Action_Helper_Url-y ]Zend_Controller_Action_Helper_Redirector1x eZend_Controller_Action_Helper_FlashMessenger+w YZend_Controller_Action_Helper_Abstract%v MZend_Controller_Action_Exceptionu 3Zend_Console_Getopt"t GZend_Console_Getopt_Exceptions #Zend_Configr +Zend_Config_Xmlq +Zend_Config_Inip 7Zend_Config_Exceptiono !Zend_Cachen =Zend_Cache_Frontend_Pagem AZend_Cache_Frontend_Output!l EZend_Cache_Frontend_Functionk =Zend_Cache_Frontend_Filej ?Zend_Cache_Frontend_Classi 5Zend_Cache_Exceptionh +Zend_Cache_Coreg 1Zend_Cache_Backend$f KZend_Cache_Backend_ZendPlatforme ;Zend_Cache_Backend_Testd ?Zend_Cache_Backend_Sqlite!c EZend_Cache_Backend_Memcachedb ;Zend_Cache_Backend_Filea 9Zend_Cache_Backend_APC` Zend_Auth_ ?Zend_Auth_Storage_Session$^ KZend_Auth_Storage_NonPersistent ] CZend_Auth_Storage_Exception\ -Zend_Auth_Result[ 3Zend_Auth_ExceptionZ 9Zend_Auth_Adapter_Http)Y UZend_Auth_Adapter_Http_Resolver_File.X _Zend_Auth_Adapter_Http_Resolver_Exception W CZend_Auth_Adapter_ExceptionV =Zend_Auth_Adapter_DigestU ?Zend_Auth_Adapter_DbTableT Zend_AclS 'Zend_Acl_RoleR 9Zend_Acl_Role_Registry%Q MZend_Acl_Role_Registry_Exception   }! cG,|dF%}\AsV5	\6





t
Z
>
,
						i	U	:	v[>![;xU1aBlZ<`C&
qR0dH!                               #? IZend_Measure_Viscosity_Dynamic> 3Zend_Measure_Torque= =Zend_Measure_Temperature< 1Zend_Measure_Speed; 7Zend_Measure_Pressure: 1Zend_Measure_Power9 3Zend_Measure_Number8 9Zend_Measure_Lightness7 3Zend_Measure_Length6 ?Zend_Measure_Illumination5 9Zend_Measure_Frequency4 1Zend_Measure_Force3 =Zend_Measure_Flow_Volume2 9Zend_Measure_Flow_Mole1 9Zend_Measure_Flow_Mass0 9Zend_Measure_Exception/ 3Zend_Measure_Energy. 5Zend_Measure_Density- 5Zend_Measure_Current , CZend_Measure_Cooking_Weight + CZend_Measure_Cooking_Volume* =Zend_Measure_Capacitance) 3Zend_Measure_Binary( /Zend_Measure_Area' 1Zend_Measure_Angle& ?Zend_Measure_Acceleration% 7Zend_Measure_Abstract$ Zend_Mail# =Zend_Mail_Transport_Smtp!" EZend_Mail_Transport_Sendmail"! GZend_Mail_Transport_Exception!  EZend_Mail_Transport_Abstract /Zend_Mail_Storage' QZend_Mail_Storage_Writable_Maildir 9Zend_Mail_Storage_Pop3 9Zend_Mail_Storage_Mbox ?Zend_Mail_Storage_Maildir 9Zend_Mail_Storage_Imap =Zend_Mail_Storage_Folder" GZend_Mail_Storage_Folder_Mbox% MZend_Mail_Storage_Folder_Maildir  CZend_Mail_Storage_Exception AZend_Mail_Storage_Abstract ;Zend_Mail_Protocol_Smtp' QZend_Mail_Protocol_Smtp_Auth_Plain' QZend_Mail_Protocol_Smtp_Auth_Login) UZend_Mail_Protocol_Smtp_Auth_Crammd5 ;Zend_Mail_Protocol_Pop3 ;Zend_Mail_Protocol_Imap! EZend_Mail_Protocol_Exception  CZend_Mail_Protocol_Abstract )Zend_Mail_Part /Zend_Mail_Message
 3Zend_Mail_Exception	 Zend_Log 9Zend_Log_Writer_Stream 5Zend_Log_Writer_Null 5Zend_Log_Writer_Mock 1Zend_Log_Writer_Db =Zend_Log_Writer_Abstract 9Zend_Log_Formatter_Xml ?Zend_Log_Formatter_Simple =Zend_Log_Filter_Suppress  =Zend_Log_Filter_Priority ;Zend_Log_Filter_Message~ 1Zend_Log_Exception} #Zend_Locale| -Zend_Locale_Math{ =Zend_Locale_Math_PhpMathz AZend_Locale_Math_Exceptiony 1Zend_Locale_Formatx 7Zend_Locale_Exceptionw -Zend_Locale_Datav #Zend_Loaderu Zend_Jsont 3Zend_Json_Exceptions /Zend_Json_Encoderr /Zend_Json_Decoderq 1Zend_Http_Responsep 3Zend_Http_Exceptiono 3Zend_Http_CookieJarn -Zend_Http_Cookiem -Zend_Http_Clientl AZend_Http_Client_Exception"k GZend_Http_Client_Adapter_Test$j KZend_Http_Client_Adapter_Socket#i IZend_Http_Client_Adapter_Proxy'h QZend_Http_Client_Adapter_Exceptiong !Zend_Gdataf ;Zend_Gdata_Spreadsheets(e SZend_Gdata_InvalidArgumentExceptiond =Zend_Gdata_HttpExceptionc 5Zend_Gdata_Exceptionb +Zend_Gdata_Dataa 7Zend_Gdata_CodeSearch` 9Zend_Gdata_ClientLogin_ 3Zend_Gdata_Calendar^ 1Zend_Gdata_Blogger] +Zend_Gdata_Base&\ OZend_Gdata_BadMethodCallException[ 1Zend_Gdata_AuthSubZ =Zend_Gdata_AuthExceptionY #Zend_FilterX 7Zend_Filter_StripTagsW 9Zend_Filter_StringTrimV ?Zend_Filter_StringToLowerU 5Zend_Filter_RealPathT +Zend_Filter_IntS =Zend_Filter_HtmlEntitiesR 7Zend_Filter_ExceptionQ +Zend_Filter_DirP 1Zend_Filter_DigitsO 5Zend_Filter_BaseNameN /Zend_Filter_AlphaM /Zend_Filter_AlnumL Zend_FeedK 'Zend_Feed_RssJ 3Zend_Feed_ExceptionI 1Zend_Feed_EntryRssH 3Zend_Feed_EntryAtomG ;Zend_Feed_EntryAbstractF /Zend_Feed_ElementE /Zend_Feed_BuilderD =Zend_Feed_Builder_Header$C KZend_Feed_Builder_Header_Itunes   j zU/tZC1jI-y[:|\5




d
C
					a	A	 }gH0YB	p<	hDoO6 rO6H                                                8) sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumI( Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive5' mZend_Search_Lucene_Analysis_Analyzer_Common_TextF& Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive% 7Zend_Search_Exception$ -Zend_Rest_Server# AZend_Rest_Server_Exception" 3Zend_Rest_Exception! -Zend_Rest_Client  ;Zend_Rest_Client_Result AZend_Rest_Client_Exception 'Zend_Registry Zend_Pdf! EZend_Pdf_UpdateInfoContainer -Zend_Pdf_Trailer ;Zend_Pdf_Trailer_Keeper AZend_Pdf_Trailer_Generator )Zend_Pdf_Style 7Zend_Pdf_StringParser /Zend_Pdf_Resource 7Zend_Pdf_ImageFactory ;Zend_Pdf_Resource_Image! EZend_Pdf_Resource_Image_Tiff  CZend_Pdf_Resource_Image_Png! EZend_Pdf_Resource_Image_Jpeg 9Zend_Pdf_Resource_Font$ KZend_Pdf_Resource_Font_Standard1 eZend_Pdf_Resource_Font_Standard_ZapfDingbats/ aZend_Pdf_Resource_Font_Standard_TimesRoman0 cZend_Pdf_Resource_Font_Standard_TimesItalic4 kZend_Pdf_Resource_Font_Standard_TimesBoldItalic.
 _Zend_Pdf_Resource_Font_Standard_TimesBold+	 YZend_Pdf_Resource_Font_Standard_Symbol5 mZend_Pdf_Resource_Font_Standard_HelveticaOblique9 uZend_Pdf_Resource_Font_Standard_HelveticaBoldOblique2 gZend_Pdf_Resource_Font_Standard_HelveticaBold. _Zend_Pdf_Resource_Font_Standard_Helvetica3 iZend_Pdf_Resource_Font_Standard_CourierOblique7 qZend_Pdf_Resource_Font_Standard_CourierBoldOblique0 cZend_Pdf_Resource_Font_Standard_CourierBold, [Zend_Pdf_Resource_Font_Standard_Courier$  KZend_Pdf_Resource_Font_OpenType- ]Zend_Pdf_Resource_Font_OpenType_TrueType~ /Zend_Pdf_PhpArray} +Zend_Pdf_Parser| 9Zend_Pdf_Parser_Stream{ 'Zend_Pdf_Pagez )Zend_Pdf_Imagey 'Zend_Pdf_Font x CZend_Pdf_Filter_Compression$w KZend_Pdf_Filter_Compression_Lzw&v OZend_Pdf_Filter_Compression_Flateu =Zend_Pdf_Filter_AsciiHext ;Zend_Pdf_Filter_Ascii85"s GZend_Pdf_FileParserDataSource)r UZend_Pdf_FileParserDataSource_String'q QZend_Pdf_FileParserDataSource_Filep 3Zend_Pdf_FileParsero ?Zend_Pdf_FileParser_Image"n GZend_Pdf_FileParser_Image_Pngm =Zend_Pdf_FileParser_Font&l OZend_Pdf_FileParser_Font_OpenType/k aZend_Pdf_FileParser_Font_OpenType_TrueTypej 1Zend_Pdf_Exceptioni ;Zend_Pdf_ElementFactoryh -Zend_Pdf_Elementg ;Zend_Pdf_Element_String#f IZend_Pdf_Element_String_Binarye ;Zend_Pdf_Element_Streamd AZend_Pdf_Element_Reference%c MZend_Pdf_Element_Reference_Table'b QZend_Pdf_Element_Reference_Contexta ;Zend_Pdf_Element_Object#` IZend_Pdf_Element_Object_Stream_ =Zend_Pdf_Element_Numeric^ 7Zend_Pdf_Element_Null] 7Zend_Pdf_Element_Name \ CZend_Pdf_Element_Dictionary[ =Zend_Pdf_Element_BooleanZ 9Zend_Pdf_Element_ArrayY )Zend_Pdf_ColorX 1Zend_Pdf_Color_RgbW 3Zend_Pdf_Color_HtmlV =Zend_Pdf_Color_GrayScaleU 3Zend_Pdf_Color_CmykT 'Zend_Pdf_CmapS AZend_Pdf_Cmap_TrimmedTable!R EZend_Pdf_Cmap_SegmentToDeltaQ AZend_Pdf_Cmap_ByteEncoding&P OZend_Pdf_Cmap_ByteEncoding_StaticO Zend_MimeN )Zend_Mime_PartM /Zend_Mime_MessageL 3Zend_Mime_ExceptionK -Zend_Mime_DecodeJ #Zend_MemoryI /Zend_Memory_ValueH 3Zend_Memory_ManagerG 7Zend_Memory_ExceptionF 7Zend_Memory_Container"E GZend_Memory_Container_Movable!D EZend_Memory_Container_Locked!C EZend_Memory_AccessControllerB 3Zend_Measure_WeightA 3Zend_Measure_Volume%@ MZend_Measure_Viscosity_Kinematic   Y  W* Q!oJW^6


~
P
				f	0yK}P_6oG,rJ$ dF)g=gC                      $ KZend_Service_Delicious_PostList  CZend_Service_Delicious_Post%  MZend_Service_Delicious_Exception  CZend_Service_Audioscrobbler~ 3Zend_Service_Amazon'} QZend_Service_Amazon_SimilarProduct"| GZend_Service_Amazon_ResultSet{ ?Zend_Service_Amazon_Query!z EZend_Service_Amazon_OfferSety ?Zend_Service_Amazon_Offer&x OZend_Service_Amazon_ListmaniaListw =Zend_Service_Amazon_Itemv ?Zend_Service_Amazon_Image(u SZend_Service_Amazon_EditorialReview't QZend_Service_Amazon_CustomerReview$s KZend_Service_Amazon_Accessoriesr 5Zend_Service_Akismetq 7Zend_Service_Abstractp 9Zend_Server_Reflection'o QZend_Server_Reflection_ReturnValue%n MZend_Server_Reflection_Prototype%m MZend_Server_Reflection_Parameter l CZend_Server_Reflection_Node"k GZend_Server_Reflection_Method$j KZend_Server_Reflection_Function-i ]Zend_Server_Reflection_Function_Abstract%h MZend_Server_Reflection_Exception!g EZend_Server_Reflection_Classf 7Zend_Server_Exceptione 5Zend_Server_Abstractd 1Zend_Search_Lucene$c KZend_Search_Lucene_Storage_File+b YZend_Search_Lucene_Storage_File_Memory/a aZend_Search_Lucene_Storage_File_Filesystem)` UZend_Search_Lucene_Storage_Directory4_ kZend_Search_Lucene_Storage_Directory_Filesystem%^ MZend_Search_Lucene_Search_Weight*] WZend_Search_Lucene_Search_Weight_Term,\ [Zend_Search_Lucene_Search_Weight_Phrase/[ aZend_Search_Lucene_Search_Weight_MultiTerm+Z YZend_Search_Lucene_Search_Weight_Empty-Y ]Zend_Search_Lucene_Search_Weight_Boolean)X UZend_Search_Lucene_Search_Similarity1W eZend_Search_Lucene_Search_Similarity_Default)V UZend_Search_Lucene_Search_QueryToken3U iZend_Search_Lucene_Search_QueryParserException1T eZend_Search_Lucene_Search_QueryParserContext*S WZend_Search_Lucene_Search_QueryParser)R UZend_Search_Lucene_Search_QueryLexer'Q QZend_Search_Lucene_Search_QueryHit)P UZend_Search_Lucene_Search_QueryEntry.O _Zend_Search_Lucene_Search_QueryEntry_Term2N gZend_Search_Lucene_Search_QueryEntry_Subquery0M cZend_Search_Lucene_Search_QueryEntry_Phrase$L KZend_Search_Lucene_Search_Query)K UZend_Search_Lucene_Search_Query_Term+J YZend_Search_Lucene_Search_Query_Phrase.I _Zend_Search_Lucene_Search_Query_MultiTerm*H WZend_Search_Lucene_Search_Query_Empty,G [Zend_Search_Lucene_Search_Query_Boolean:F wZend_Search_Lucene_Search_BooleanExpressionRecognizerE =Zend_Search_Lucene_Proxy%D MZend_Search_Lucene_PriorityQueue$C KZend_Search_Lucene_Index_Writer&B OZend_Search_Lucene_Index_TermInfo"A GZend_Search_Lucene_Index_Term+@ YZend_Search_Lucene_Index_SegmentWriter8? sZend_Search_Lucene_Index_SegmentWriter_StreamWriter:> wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter+= YZend_Search_Lucene_Index_SegmentMerger6< oZend_Search_Lucene_Index_SegmentInfoPriorityQueue); UZend_Search_Lucene_Index_SegmentInfo': QZend_Search_Lucene_Index_FieldInfo.9 _Zend_Search_Lucene_Index_DictionaryLoader!8 EZend_Search_Lucene_FSMAction7 9Zend_Search_Lucene_FSM6 =Zend_Search_Lucene_Field!5 EZend_Search_Lucene_Exception 4 CZend_Search_Lucene_Document%3 MZend_Search_Lucene_Document_Html,2 [Zend_Search_Lucene_Analysis_TokenFilter61 oZend_Search_Lucene_Analysis_TokenFilter_StopWords70 qZend_Search_Lucene_Analysis_TokenFilter_ShortWords6/ oZend_Search_Lucene_Analysis_TokenFilter_LowerCase&. OZend_Search_Lucene_Analysis_Token)- UZend_Search_Lucene_Analysis_Analyzer0, cZend_Search_Lucene_Analysis_Analyzer_Common8+ sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num5* mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8   t  vS-fG% dC{R0fG




n
K
&
						u	Y	=		lJ0dB uR<'\:eA_5lN4uP/     v ;Zend_XmlRpc_Value_Arrayu 1Zend_XmlRpc_Servert =Zend_XmlRpc_Server_Fault!s EZend_XmlRpc_Server_Exceptionr =Zend_XmlRpc_Server_Cacheq 5Zend_XmlRpc_Responsep ?Zend_XmlRpc_Response_Httpo 3Zend_XmlRpc_Requestn ?Zend_XmlRpc_Request_Stdinm =Zend_XmlRpc_Request_Httpl /Zend_XmlRpc_Faultk 7Zend_XmlRpc_Exceptionj 1Zend_XmlRpc_Client#i IZend_XmlRpc_Client_ServerProxy+h YZend_XmlRpc_Client_ServerIntrospection+g YZend_XmlRpc_Client_IntrospectException%f MZend_XmlRpc_Client_HttpException&e OZend_XmlRpc_Client_FaultException!d EZend_XmlRpc_Client_Exceptionc Zend_Viewb 5Zend_View_Helper_Urla ?Zend_View_Helper_HtmlList"` GZend_View_Helper_FormTextarea_ ?Zend_View_Helper_FormText ^ CZend_View_Helper_FormSubmit ] CZend_View_Helper_FormSelect\ AZend_View_Helper_FormReset[ AZend_View_Helper_FormRadio"Z GZend_View_Helper_FormPasswordY ?Zend_View_Helper_FormNoteX AZend_View_Helper_FormImage W CZend_View_Helper_FormHiddenV ?Zend_View_Helper_FormFile!U EZend_View_Helper_FormElement"T GZend_View_Helper_FormCheckbox S CZend_View_Helper_FormButton!R EZend_View_Helper_DeclareVarsQ 3Zend_View_ExceptionP 1Zend_View_AbstractO %Zend_VersionN 'Zend_ValidateM AZend_Validate_StringLengthL 3Zend_Validate_RegexK 9Zend_Validate_LessThanJ -Zend_Validate_IpI /Zend_Validate_IntH 7Zend_Validate_InArrayG 9Zend_Validate_HostnameF ?Zend_Validate_Hostname_SeE ?Zend_Validate_Hostname_NoD ?Zend_Validate_Hostname_LiC ?Zend_Validate_Hostname_HuB ?Zend_Validate_Hostname_FiA ?Zend_Validate_Hostname_De@ ?Zend_Validate_Hostname_Ch? ?Zend_Validate_Hostname_At> /Zend_Validate_Hex= ?Zend_Validate_GreaterThan< 3Zend_Validate_Float; ;Zend_Validate_Exception: AZend_Validate_EmailAddress9 5Zend_Validate_Digits8 1Zend_Validate_Date7 3Zend_Validate_Ccnum6 7Zend_Validate_Between5 3Zend_Validate_Alpha4 3Zend_Validate_Alnum3 Zend_Uri2 +Zend_Uri_Mailto1 'Zend_Uri_Http0 1Zend_Uri_Exception/ )Zend_Translate. =Zend_Translate_Exception- 9Zend_Translate_Adapter!, EZend_Translate_Adapter_Xliff+ AZend_Translate_Adapter_Tmx#* IZend_Translate_Adapter_Gettext) AZend_Translate_Adapter_Csv!( EZend_Translate_Adapter_Array' %Zend_Session)& UZend_Session_Validator_HttpUserAgent$% KZend_Session_Validator_Abstract$ 9Zend_Session_Namespace# 9Zend_Session_Exception" 7Zend_Session_Abstract! 1Zend_Service_Yahoo$  KZend_Service_Yahoo_WebResultSet! EZend_Service_Yahoo_WebResult! EZend_Service_Yahoo_ResultSet ?Zend_Service_Yahoo_Result% MZend_Service_Yahoo_NewsResultSet" GZend_Service_Yahoo_NewsResult& OZend_Service_Yahoo_LocalResultSet# IZend_Service_Yahoo_LocalResult& OZend_Service_Yahoo_ImageResultSet# IZend_Service_Yahoo_ImageResult =Zend_Service_Yahoo_Image 1Zend_Service_Simpy$ KZend_Service_Simpy_WatchlistSet* WZend_Service_Simpy_WatchlistFilterSet' QZend_Service_Simpy_WatchlistFilter! EZend_Service_Simpy_Watchlist ?Zend_Service_Simpy_TagSet 9Zend_Service_Simpy_Tag AZend_Service_Simpy_NoteSet ;Zend_Service_Simpy_Note AZend_Service_Simpy_LinkSet! EZend_Service_Simpy_LinkQuery
 ;Zend_Service_Simpy_Link	 3Zend_Service_Flickr" GZend_Service_Flickr_ResultSet AZend_Service_Flickr_Result ?Zend_Service_Flickr_Image 9Zend_Service_Exception 9Zend_Service_Delicious& OZend_Service_Delicious_SimplePost   o uT0v\3T'eS4jR5




v
X
@
(
				z	E	l@Y-a<sGygF qR-jU2|X-                                      e =Zend_Db_Statement_Mysqli 'd QZend_Db_Statement_Mysqli_Exception  c CZend_Db_Statement_Exception b 7Zend_Db_Statement_Db2 $a KZend_Db_Statement_Db2_Exception ` )Zend_Db_Select _ =Zend_Db_Select_Exception ^ -Zend_Db_Profiler ] 9Zend_Db_Profiler_Query \ AZend_Db_Profiler_Exception [ %Zend_Db_Expr Z /Zend_Db_Exception Y AZend_Db_Adapter_Pdo_Sqlite X ?Zend_Db_Adapter_Pdo_Pgsql W ;Zend_Db_Adapter_Pdo_Oci V ?Zend_Db_Adapter_Pdo_Mysql U ?Zend_Db_Adapter_Pdo_Mssql !T EZend_Db_Adapter_Pdo_Abstract S 9Zend_Db_Adapter_Oracle %R MZend_Db_Adapter_Oracle_Exception Q 9Zend_Db_Adapter_Mysqli %P MZend_Db_Adapter_Mysqli_Exception O ?Zend_Db_Adapter_Exception N 3Zend_Db_Adapter_Db2 "M GZend_Db_Adapter_Db2_Exception L =Zend_Db_Adapter_Abstract K Zend_Date J 3Zend_Date_Exception I 5Zend_Date_DateObject H -Zend_Date_Cities !G EZend_Controller_Router_Route (F SZend_Controller_Router_Route_Static 'E QZend_Controller_Router_Route_Regex (D SZend_Controller_Router_Route_Module #C IZend_Controller_Router_Rewrite %B MZend_Controller_Router_Exception $A KZend_Controller_Router_Abstract "@ GZend_Controller_Response_Http '? QZend_Controller_Response_Exception !> EZend_Controller_Response_Cli &= OZend_Controller_Response_Abstract !< EZend_Controller_Request_Http &; OZend_Controller_Request_Exception &: OZend_Controller_Request_Apache404 %9 MZend_Controller_Request_Abstract (8 SZend_Controller_Plugin_ErrorHandler "7 GZend_Controller_Plugin_Broker $6 KZend_Controller_Plugin_Abstract 5 7Zend_Controller_Front 4 ?Zend_Controller_Exception (3 SZend_Controller_Dispatcher_Standard )2 UZend_Controller_Dispatcher_Exception (1 SZend_Controller_Dispatcher_Abstract 0 9Zend_Controller_Action (/ SZend_Controller_Action_HelperBroker /. aZend_Controller_Action_Helper_ViewRenderer &- OZend_Controller_Action_Helper_Url -, ]Zend_Controller_Action_Helper_Redirector 1+ eZend_Controller_Action_Helper_FlashMessenger +* YZend_Controller_Action_Helper_Abstract %) MZend_Controller_Action_Exception ( 3Zend_Console_Getopt "' GZend_Console_Getopt_Exception & #Zend_Config % +Zend_Config_Xml $ +Zend_Config_Ini # 7Zend_Config_Exception " !Zend_Cache ! =Zend_Cache_Frontend_Page   AZend_Cache_Frontend_Output ! EZend_Cache_Frontend_Function  =Zend_Cache_Frontend_File  ?Zend_Cache_Frontend_Class  5Zend_Cache_Exception  +Zend_Cache_Core  1Zend_Cache_Backend $ KZend_Cache_Backend_ZendPlatform  ;Zend_Cache_Backend_Test  ?Zend_Cache_Backend_Sqlite ! EZend_Cache_Backend_Memcached  ;Zend_Cache_Backend_File  9Zend_Cache_Backend_Apc  Zend_Auth  ?Zend_Auth_Storage_Session $ KZend_Auth_Storage_NonPersistent   CZend_Auth_Storage_Exception  -Zend_Auth_Result  3Zend_Auth_Exception  9Zend_Auth_Adapter_Http ) UZend_Auth_Adapter_Http_Resolver_File . _Zend_Auth_Adapter_Http_Resolver_Exception  
 CZend_Auth_Adapter_Exception 	 =Zend_Auth_Adapter_Digest  ?Zend_Auth_Adapter_DbTable  Zend_Acl  'Zend_Acl_Role  9Zend_Acl_Role_Registry % MZend_Acl_Role_Registry_Exception  /Zend_Acl_Resource  1Zend_Acl_Exception  /Zend_XmlRpc_Value  =Zend_XmlRpc_Value_Struct =Zend_XmlRpc_Value_String~ =Zend_XmlRpc_Value_Scalar} ?Zend_XmlRpc_Value_Integer | CZend_XmlRpc_Value_Exception{ =Zend_XmlRpc_Value_Doublez AZend_XmlRpc_Value_DateTime!y EZend_XmlRpc_Value_Collectionx ?Zend_XmlRpc_Value_Booleanw =Zend_XmlRpc_Value_Base64   m  |]=s`I.pV5gL4bC%




d
<
				l	C	[5h?g@uN(vKP*[5]+                      0R cZend_Gdata_Extension_OpenSearchTotalResults .Q _Zend_Gdata_Extension_OpenSearchStartIndex 0P cZend_Gdata_Extension_OpenSearchItemsPerPage "O GZend_Gdata_Extension_FeedLink *N WZend_Gdata_Extension_ExtendedProperty %M MZend_Gdata_Extension_EventStatus #L IZend_Gdata_Extension_EntryLink "K GZend_Gdata_Extension_Comments &J OZend_Gdata_Extension_AttendeeType (I SZend_Gdata_Extension_AttendeeStatus H -Zend_Gdata_Entry G 9Zend_Gdata_ClientLogin F 3Zend_Gdata_Calendar !E EZend_Gdata_Calendar_ListFeed "D GZend_Gdata_Calendar_ListEntry -C ]Zend_Gdata_Calendar_Extension_WebContent +B YZend_Gdata_Calendar_Extension_Timezone 9A uZend_Gdata_Calendar_Extension_SendEventNotifications +@ YZend_Gdata_Calendar_Extension_Selected +? YZend_Gdata_Calendar_Extension_QuickAdd '> QZend_Gdata_Calendar_Extension_Link )= UZend_Gdata_Calendar_Extension_Hidden (< SZend_Gdata_Calendar_Extension_Color .; _Zend_Gdata_Calendar_Extension_AccessLevel #: IZend_Gdata_Calendar_EventQuery "9 GZend_Gdata_Calendar_EventFeed #8 IZend_Gdata_Calendar_EventEntry 7 1Zend_Gdata_AuthSub 6 )Zend_Gdata_App 5 3Zend_Gdata_App_Util ,4 [Zend_Gdata_App_InvalidArgumentException !3 EZend_Gdata_App_HttpException $2 KZend_Gdata_App_FeedSourceParent #1 IZend_Gdata_App_FeedEntryParent 0 3Zend_Gdata_App_Feed / =Zend_Gdata_App_Extension !. EZend_Gdata_App_Extension_Uri %- MZend_Gdata_App_Extension_Updated #, IZend_Gdata_App_Extension_Title "+ GZend_Gdata_App_Extension_Text %* MZend_Gdata_App_Extension_Summary &) OZend_Gdata_App_Extension_Subtitle $( KZend_Gdata_App_Extension_Source $' KZend_Gdata_App_Extension_Rights '& QZend_Gdata_App_Extension_Published $% KZend_Gdata_App_Extension_Person "$ GZend_Gdata_App_Extension_Name "# GZend_Gdata_App_Extension_Logo "" GZend_Gdata_App_Extension_Link  ! CZend_Gdata_App_Extension_Id "  GZend_Gdata_App_Extension_Icon ' QZend_Gdata_App_Extension_Generator # IZend_Gdata_App_Extension_Email % MZend_Gdata_App_Extension_Element # IZend_Gdata_App_Extension_Draft % MZend_Gdata_App_Extension_Control ) UZend_Gdata_App_Extension_Contributor % MZend_Gdata_App_Extension_Content & OZend_Gdata_App_Extension_Category $ KZend_Gdata_App_Extension_Author  =Zend_Gdata_App_Exception  5Zend_Gdata_App_Entry  3Zend_Gdata_App_Base * WZend_Gdata_App_BadMethodCallException ! EZend_Gdata_App_AuthException  #Zend_Filter  7Zend_Filter_StripTags  9Zend_Filter_StringTrim  ?Zend_Filter_StringToUpper  ?Zend_Filter_StringToLower  5Zend_Filter_RealPath  +Zend_Filter_Int 
 /Zend_Filter_Input 	 =Zend_Filter_HtmlEntities  7Zend_Filter_Exception  +Zend_Filter_Dir  1Zend_Filter_Digits  5Zend_Filter_BaseName  /Zend_Filter_Alpha  /Zend_Filter_Alnum  Zend_Feed  'Zend_Feed_Rss   3Zend_Feed_Exception  3Zend_Feed_Entry_Rss ~ 5Zend_Feed_Entry_Atom } =Zend_Feed_Entry_Abstract | /Zend_Feed_Element { /Zend_Feed_Builder z =Zend_Feed_Builder_Header $y KZend_Feed_Builder_Header_Itunes  x CZend_Feed_Builder_Exception w ;Zend_Feed_Builder_Entry v )Zend_Feed_Atom u 1Zend_Feed_Abstract t )Zend_Exception s !Zend_Debug r Zend_Db q 'Zend_Db_Table p 5Zend_Db_Table_Rowset "o GZend_Db_Table_Rowset_Abstract n /Zend_Db_Table_Row  m CZend_Db_Table_Row_Exception l AZend_Db_Table_Row_Abstract k ;Zend_Db_Table_Exception j 9Zend_Db_Table_Abstract i /Zend_Db_Statement h 7Zend_Db_Statement_Pdo g =Zend_Db_Statement_Oracle 'f QZend_Db_Statement_Oracle_Exception    s  |V,iF-S i?aN#




r
Y
=
!
						w	Y	>	qP.ziM3f;Z9uP*w]A cD%mQ6                E 1Zend_Measure_Speed D 7Zend_Measure_Pressure C 1Zend_Measure_Power B 3Zend_Measure_Number A 9Zend_Measure_Lightness @ 3Zend_Measure_Length ? ?Zend_Measure_Illumination > 9Zend_Measure_Frequency = 1Zend_Measure_Force < =Zend_Measure_Flow_Volume ; 9Zend_Measure_Flow_Mole : 9Zend_Measure_Flow_Mass 9 9Zend_Measure_Exception 8 3Zend_Measure_Energy 7 5Zend_Measure_Density 6 5Zend_Measure_Current  5 CZend_Measure_Cooking_Weight  4 CZend_Measure_Cooking_Volume 3 =Zend_Measure_Capacitance 2 3Zend_Measure_Binary 1 /Zend_Measure_Area 0 1Zend_Measure_Angle / ?Zend_Measure_Acceleration . 7Zend_Measure_Abstract - Zend_Mail , =Zend_Mail_Transport_Smtp !+ EZend_Mail_Transport_Sendmail "* GZend_Mail_Transport_Exception !) EZend_Mail_Transport_Abstract ( /Zend_Mail_Storage '' QZend_Mail_Storage_Writable_Maildir & 9Zend_Mail_Storage_Pop3 % 9Zend_Mail_Storage_Mbox $ ?Zend_Mail_Storage_Maildir # 9Zend_Mail_Storage_Imap " =Zend_Mail_Storage_Folder "! GZend_Mail_Storage_Folder_Mbox %  MZend_Mail_Storage_Folder_Maildir   CZend_Mail_Storage_Exception  AZend_Mail_Storage_Abstract  ;Zend_Mail_Protocol_Smtp ' QZend_Mail_Protocol_Smtp_Auth_Plain ' QZend_Mail_Protocol_Smtp_Auth_Login ) UZend_Mail_Protocol_Smtp_Auth_Crammd5  ;Zend_Mail_Protocol_Pop3  ;Zend_Mail_Protocol_Imap ! EZend_Mail_Protocol_Exception   CZend_Mail_Protocol_Abstract  )Zend_Mail_Part  /Zend_Mail_Message  3Zend_Mail_Exception  Zend_Log  9Zend_Log_Writer_Stream  5Zend_Log_Writer_Null  5Zend_Log_Writer_Mock  1Zend_Log_Writer_Db  =Zend_Log_Writer_Abstract  9Zend_Log_Formatter_Xml  ?Zend_Log_Formatter_Simple 
 =Zend_Log_Filter_Suppress 	 =Zend_Log_Filter_Priority  ;Zend_Log_Filter_Message  1Zend_Log_Exception  #Zend_Locale  -Zend_Locale_Math  =Zend_Locale_Math_PhpMath  AZend_Locale_Math_Exception  1Zend_Locale_Format  7Zend_Locale_Exception   -Zend_Locale_Data  #Zend_Loader ~ Zend_Json } 3Zend_Json_Exception | /Zend_Json_Encoder { /Zend_Json_Decoder z 1Zend_Http_Response y 3Zend_Http_Exception x 3Zend_Http_CookieJar w -Zend_Http_Cookie v -Zend_Http_Client u AZend_Http_Client_Exception "t GZend_Http_Client_Adapter_Test $s KZend_Http_Client_Adapter_Socket #r IZend_Http_Client_Adapter_Proxy 'q QZend_Http_Client_Adapter_Exception p !Zend_Gdata o ;Zend_Gdata_Spreadsheets *n WZend_Gdata_Spreadsheets_WorksheetFeed +m YZend_Gdata_Spreadsheets_WorksheetEntry ,l [Zend_Gdata_Spreadsheets_SpreadsheetFeed -k ]Zend_Gdata_Spreadsheets_SpreadsheetEntry &j OZend_Gdata_Spreadsheets_ListQuery %i MZend_Gdata_Spreadsheets_ListFeed &h OZend_Gdata_Spreadsheets_ListEntry /g aZend_Gdata_Spreadsheets_Extension_RowCount -f ]Zend_Gdata_Spreadsheets_Extension_Custom /e aZend_Gdata_Spreadsheets_Extension_ColCount +d YZend_Gdata_Spreadsheets_Extension_Cell *c WZend_Gdata_Spreadsheets_DocumentQuery &b OZend_Gdata_Spreadsheets_CellQuery %a MZend_Gdata_Spreadsheets_CellFeed &` OZend_Gdata_Spreadsheets_CellEntry _ -Zend_Gdata_Query ^ AZend_Gdata_Kind_EventEntry ] +Zend_Gdata_Feed \ 5Zend_Gdata_Extension [ =Zend_Gdata_Extension_Who Z AZend_Gdata_Extension_Where Y ?Zend_Gdata_Extension_When $X KZend_Gdata_Extension_Visibility &W OZend_Gdata_Extension_Transparency "V GZend_Gdata_Extension_Reminder -U ]Zend_Gdata_Extension_RecurrenceException $T KZend_Gdata_Extension_Recurrence 'S QZend_Gdata_Extension_OriginalEvent    m  sW;sYE,[8"xW3d;




r
R
7
				q	U	*lD tC|Eg8g2
}]6fU?m#         52 mZend_Search_Lucene_Analysis_Analyzer_Common_Text F1 Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive 0 7Zend_Search_Exception / -Zend_Rest_Server . AZend_Rest_Server_Exception - 3Zend_Rest_Exception , -Zend_Rest_Client + ;Zend_Rest_Client_Result * AZend_Rest_Client_Exception ) 'Zend_Registry ( Zend_Pdf !' EZend_Pdf_UpdateInfoContainer & -Zend_Pdf_Trailer % ;Zend_Pdf_Trailer_Keeper $ AZend_Pdf_Trailer_Generator # )Zend_Pdf_Style " 7Zend_Pdf_StringParser ! /Zend_Pdf_Resource #  IZend_Pdf_Resource_ImageFactory  ;Zend_Pdf_Resource_Image ! EZend_Pdf_Resource_Image_Tiff   CZend_Pdf_Resource_Image_Png ! EZend_Pdf_Resource_Image_Jpeg  9Zend_Pdf_Resource_Font $ KZend_Pdf_Resource_Font_Standard 1 eZend_Pdf_Resource_Font_Standard_ZapfDingbats / aZend_Pdf_Resource_Font_Standard_TimesRoman 0 cZend_Pdf_Resource_Font_Standard_TimesItalic 4 kZend_Pdf_Resource_Font_Standard_TimesBoldItalic . _Zend_Pdf_Resource_Font_Standard_TimesBold + YZend_Pdf_Resource_Font_Standard_Symbol 5 mZend_Pdf_Resource_Font_Standard_HelveticaOblique 9 uZend_Pdf_Resource_Font_Standard_HelveticaBoldOblique 2 gZend_Pdf_Resource_Font_Standard_HelveticaBold . _Zend_Pdf_Resource_Font_Standard_Helvetica 3 iZend_Pdf_Resource_Font_Standard_CourierOblique 7 qZend_Pdf_Resource_Font_Standard_CourierBoldOblique 0 cZend_Pdf_Resource_Font_Standard_CourierBold , [Zend_Pdf_Resource_Font_Standard_Courier $ KZend_Pdf_Resource_Font_OpenType -
 ]Zend_Pdf_Resource_Font_OpenType_TrueType 	 /Zend_Pdf_PhpArray  +Zend_Pdf_Parser  9Zend_Pdf_Parser_Stream  'Zend_Pdf_Page  )Zend_Pdf_Image  'Zend_Pdf_Font  +Zend_Pdf_Filter   CZend_Pdf_Filter_Compression $ KZend_Pdf_Filter_Compression_Lzw &  OZend_Pdf_Filter_Compression_Flate  =Zend_Pdf_Filter_AsciiHex ~ ;Zend_Pdf_Filter_Ascii85 "} GZend_Pdf_FileParserDataSource )| UZend_Pdf_FileParserDataSource_String '{ QZend_Pdf_FileParserDataSource_File z 3Zend_Pdf_FileParser y ?Zend_Pdf_FileParser_Image "x GZend_Pdf_FileParser_Image_Png w =Zend_Pdf_FileParser_Font &v OZend_Pdf_FileParser_Font_OpenType /u aZend_Pdf_FileParser_Font_OpenType_TrueType t 1Zend_Pdf_Exception s ;Zend_Pdf_ElementFactory "r GZend_Pdf_ElementFactory_Proxy q -Zend_Pdf_Element p ;Zend_Pdf_Element_String #o IZend_Pdf_Element_String_Binary n ;Zend_Pdf_Element_Stream m AZend_Pdf_Element_Reference %l MZend_Pdf_Element_Reference_Table 'k QZend_Pdf_Element_Reference_Context j ;Zend_Pdf_Element_Object #i IZend_Pdf_Element_Object_Stream h =Zend_Pdf_Element_Numeric g 7Zend_Pdf_Element_Null f 7Zend_Pdf_Element_Name  e CZend_Pdf_Element_Dictionary d =Zend_Pdf_Element_Boolean c 9Zend_Pdf_Element_Array b )Zend_Pdf_Color a 1Zend_Pdf_Color_Rgb ` 3Zend_Pdf_Color_Html _ =Zend_Pdf_Color_GrayScale ^ 3Zend_Pdf_Color_Cmyk ] 'Zend_Pdf_Cmap \ AZend_Pdf_Cmap_TrimmedTable ![ EZend_Pdf_Cmap_SegmentToDelta Z AZend_Pdf_Cmap_ByteEncoding &Y OZend_Pdf_Cmap_ByteEncoding_Static X Zend_Mime W )Zend_Mime_Part V /Zend_Mime_Message U 3Zend_Mime_Exception T -Zend_Mime_Decode S #Zend_Memory R /Zend_Memory_Value Q 3Zend_Memory_Manager P 7Zend_Memory_Exception O 7Zend_Memory_Container "N GZend_Memory_Container_Movable !M EZend_Memory_Container_Locked !L EZend_Memory_AccessController K 3Zend_Measure_Weight J 3Zend_Measure_Volume %I MZend_Measure_Viscosity_Kinematic #H IZend_Measure_Viscosity_Dynamic G 3Zend_Measure_Torque F =Zend_Measure_Temperature    X  w>w=oK&d7T%




c
%				f	9	uHV)g4uHhCwN%xM!mK%      
 CZend_Service_Audioscrobbler 	 3Zend_Service_Amazon ' QZend_Service_Amazon_SimilarProduct " GZend_Service_Amazon_ResultSet  ?Zend_Service_Amazon_Query ! EZend_Service_Amazon_OfferSet  ?Zend_Service_Amazon_Offer & OZend_Service_Amazon_ListmaniaList  =Zend_Service_Amazon_Item  ?Zend_Service_Amazon_Image (  SZend_Service_Amazon_EditorialReview ' QZend_Service_Amazon_CustomerReview $~ KZend_Service_Amazon_Accessories } 5Zend_Service_Akismet | 7Zend_Service_Abstract { 9Zend_Server_Reflection 'z QZend_Server_Reflection_ReturnValue %y MZend_Server_Reflection_Prototype %x MZend_Server_Reflection_Parameter  w CZend_Server_Reflection_Node "v GZend_Server_Reflection_Method $u KZend_Server_Reflection_Function -t ]Zend_Server_Reflection_Function_Abstract %s MZend_Server_Reflection_Exception !r EZend_Server_Reflection_Class q 7Zend_Server_Exception p 5Zend_Server_Abstract o 1Zend_Search_Lucene $n KZend_Search_Lucene_Storage_File +m YZend_Search_Lucene_Storage_File_Memory /l aZend_Search_Lucene_Storage_File_Filesystem )k UZend_Search_Lucene_Storage_Directory 4j kZend_Search_Lucene_Storage_Directory_Filesystem %i MZend_Search_Lucene_Search_Weight *h WZend_Search_Lucene_Search_Weight_Term ,g [Zend_Search_Lucene_Search_Weight_Phrase /f aZend_Search_Lucene_Search_Weight_MultiTerm +e YZend_Search_Lucene_Search_Weight_Empty -d ]Zend_Search_Lucene_Search_Weight_Boolean )c UZend_Search_Lucene_Search_Similarity 1b eZend_Search_Lucene_Search_Similarity_Default )a UZend_Search_Lucene_Search_QueryToken 3` iZend_Search_Lucene_Search_QueryParserException 1_ eZend_Search_Lucene_Search_QueryParserContext *^ WZend_Search_Lucene_Search_QueryParser )] UZend_Search_Lucene_Search_QueryLexer '\ QZend_Search_Lucene_Search_QueryHit )[ UZend_Search_Lucene_Search_QueryEntry .Z _Zend_Search_Lucene_Search_QueryEntry_Term 2Y gZend_Search_Lucene_Search_QueryEntry_Subquery 0X cZend_Search_Lucene_Search_QueryEntry_Phrase $W KZend_Search_Lucene_Search_Query )V UZend_Search_Lucene_Search_Query_Term +U YZend_Search_Lucene_Search_Query_Phrase .T _Zend_Search_Lucene_Search_Query_MultiTerm *S WZend_Search_Lucene_Search_Query_Empty ,R [Zend_Search_Lucene_Search_Query_Boolean :Q wZend_Search_Lucene_Search_BooleanExpressionRecognizer P =Zend_Search_Lucene_Proxy %O MZend_Search_Lucene_PriorityQueue $N KZend_Search_Lucene_Index_Writer &M OZend_Search_Lucene_Index_TermInfo "L GZend_Search_Lucene_Index_Term +K YZend_Search_Lucene_Index_SegmentWriter 8J sZend_Search_Lucene_Index_SegmentWriter_StreamWriter :I wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter +H YZend_Search_Lucene_Index_SegmentMerger 6G oZend_Search_Lucene_Index_SegmentInfoPriorityQueue )F UZend_Search_Lucene_Index_SegmentInfo 'E QZend_Search_Lucene_Index_FieldInfo .D _Zend_Search_Lucene_Index_DictionaryLoader !C EZend_Search_Lucene_FSMAction B 9Zend_Search_Lucene_FSM A =Zend_Search_Lucene_Field !@ EZend_Search_Lucene_Exception  ? CZend_Search_Lucene_Document %> MZend_Search_Lucene_Document_Html ,= [Zend_Search_Lucene_Analysis_TokenFilter 6< oZend_Search_Lucene_Analysis_TokenFilter_StopWords 7; qZend_Search_Lucene_Analysis_TokenFilter_ShortWords 6: oZend_Search_Lucene_Analysis_TokenFilter_LowerCase &9 OZend_Search_Lucene_Analysis_Token )8 UZend_Search_Lucene_Analysis_Analyzer 07 cZend_Search_Lucene_Analysis_Analyzer_Common 86 sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num 55 mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8 84 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum I3 Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive    q  aB#|W4`2
vE{Q* 



j
E

				~	Q	<	cD#sU9fD" xV7iS>#sQ-
|Y5xS)                       %{ MZend_XmlRpc_Client_HttpException &z OZend_XmlRpc_Client_FaultException !y EZend_XmlRpc_Client_Exception x Zend_View w 5Zend_View_Helper_Url v ?Zend_View_Helper_HtmlList "u GZend_View_Helper_FormTextarea t ?Zend_View_Helper_FormText  s CZend_View_Helper_FormSubmit  r CZend_View_Helper_FormSelect q AZend_View_Helper_FormReset p AZend_View_Helper_FormRadio "o GZend_View_Helper_FormPassword n ?Zend_View_Helper_FormNote m AZend_View_Helper_FormLabel l AZend_View_Helper_FormImage  k CZend_View_Helper_FormHidden j ?Zend_View_Helper_FormFile !i EZend_View_Helper_FormElement "h GZend_View_Helper_FormCheckbox  g CZend_View_Helper_FormButton !f EZend_View_Helper_DeclareVars e 3Zend_View_Exception d 1Zend_View_Abstract c %Zend_Version b 'Zend_Validate a AZend_Validate_StringLength ` 3Zend_Validate_Regex _ 9Zend_Validate_NotEmpty ^ 9Zend_Validate_LessThan ] -Zend_Validate_Ip \ /Zend_Validate_Int [ 7Zend_Validate_InArray Z 9Zend_Validate_Hostname Y ?Zend_Validate_Hostname_Se X ?Zend_Validate_Hostname_No W ?Zend_Validate_Hostname_Li V ?Zend_Validate_Hostname_Hu U ?Zend_Validate_Hostname_Fi T ?Zend_Validate_Hostname_De S ?Zend_Validate_Hostname_Ch R ?Zend_Validate_Hostname_At Q /Zend_Validate_Hex P ?Zend_Validate_GreaterThan O 3Zend_Validate_Float N ;Zend_Validate_Exception M AZend_Validate_EmailAddress L 5Zend_Validate_Digits K 1Zend_Validate_Date J 3Zend_Validate_Ccnum I 7Zend_Validate_Between H 3Zend_Validate_Alpha G 3Zend_Validate_Alnum F 9Zend_Validate_Abstract E Zend_Uri D 'Zend_Uri_Http C 1Zend_Uri_Exception B )Zend_Translate A =Zend_Translate_Exception @ 9Zend_Translate_Adapter !? EZend_Translate_Adapter_Xliff > AZend_Translate_Adapter_Tmx = ?Zend_Translate_Adapter_Qt #< IZend_Translate_Adapter_Gettext ; AZend_Translate_Adapter_Csv !: EZend_Translate_Adapter_Array 9 %Zend_Session )8 UZend_Session_Validator_HttpUserAgent $7 KZend_Session_Validator_Abstract 6 9Zend_Session_Namespace 5 9Zend_Session_Exception 4 7Zend_Session_Abstract 3 1Zend_Service_Yahoo $2 KZend_Service_Yahoo_WebResultSet !1 EZend_Service_Yahoo_WebResult !0 EZend_Service_Yahoo_ResultSet / ?Zend_Service_Yahoo_Result %. MZend_Service_Yahoo_NewsResultSet "- GZend_Service_Yahoo_NewsResult &, OZend_Service_Yahoo_LocalResultSet #+ IZend_Service_Yahoo_LocalResult &* OZend_Service_Yahoo_ImageResultSet #) IZend_Service_Yahoo_ImageResult ( =Zend_Service_Yahoo_Image ' ;Zend_Service_StrikeIron (& SZend_Service_StrikeIron_ZipCodeInfo 2% gZend_Service_StrikeIron_USAddressVerification -$ ]Zend_Service_StrikeIron_SalesUseTaxBasic &# OZend_Service_StrikeIron_Exception &" OZend_Service_StrikeIron_Decorator !! EZend_Service_StrikeIron_Base   1Zend_Service_Simpy $ KZend_Service_Simpy_WatchlistSet * WZend_Service_Simpy_WatchlistFilterSet ' QZend_Service_Simpy_WatchlistFilter ! EZend_Service_Simpy_Watchlist  ?Zend_Service_Simpy_TagSet  9Zend_Service_Simpy_Tag  AZend_Service_Simpy_NoteSet  ;Zend_Service_Simpy_Note  AZend_Service_Simpy_LinkSet ! EZend_Service_Simpy_LinkQuery  ;Zend_Service_Simpy_Link  3Zend_Service_Flickr " GZend_Service_Flickr_ResultSet  AZend_Service_Flickr_Result  ?Zend_Service_Flickr_Image  9Zend_Service_Exception  9Zend_Service_Delicious & OZend_Service_Delicious_SimplePost $ KZend_Service_Delicious_PostList   CZend_Service_Delicious_Post % MZend_Service_Delicious_Exception    o  {`B(iD#]<y^Dn<




o
M
;
					m	R	:	q^@(b-sT(gAsN#Y.yX2d?                      j ?Zend_Db_Adapter_Pdo_Mysql!i ?Zend_Db_Adapter_Pdo_Mssql!!h EZend_Db_Adapter_Pdo_Abstract!g 9Zend_Db_Adapter_Oracle!%f MZend_Db_Adapter_Oracle_Exception!e 9Zend_Db_Adapter_Mysqli!%d MZend_Db_Adapter_Mysqli_Exception!c ?Zend_Db_Adapter_Exception!b 3Zend_Db_Adapter_Db2!"a GZend_Db_Adapter_Db2_Exception!` =Zend_Db_Adapter_Abstract!_ Zend_Date!^ 3Zend_Date_Exception!] 5Zend_Date_DateObject!\ -Zend_Date_Cities!![ EZend_Controller_Router_Route!(Z SZend_Controller_Router_Route_Static!'Y QZend_Controller_Router_Route_Regex!(X SZend_Controller_Router_Route_Module!#W IZend_Controller_Router_Rewrite!%V MZend_Controller_Router_Exception!$U KZend_Controller_Router_Abstract!"T GZend_Controller_Response_Http!'S QZend_Controller_Response_Exception!!R EZend_Controller_Response_Cli!&Q OZend_Controller_Response_Abstract!!P EZend_Controller_Request_Http!&O OZend_Controller_Request_Exception!%N MZend_Controller_Request_Abstract!(M SZend_Controller_Plugin_ErrorHandler!"L GZend_Controller_Plugin_Broker!$K KZend_Controller_Plugin_Abstract!J 7Zend_Controller_Front!I ?Zend_Controller_Exception!(H SZend_Controller_Dispatcher_Standard!)G UZend_Controller_Dispatcher_Exception!(F SZend_Controller_Dispatcher_Abstract!E 9Zend_Controller_Action!(D SZend_Controller_Action_HelperBroker!/C aZend_Controller_Action_Helper_ViewRenderer!&B OZend_Controller_Action_Helper_Url!-A ]Zend_Controller_Action_Helper_Redirector!1@ eZend_Controller_Action_Helper_FlashMessenger!+? YZend_Controller_Action_Helper_Abstract!%> MZend_Controller_Action_Exception!= 3Zend_Console_Getopt!"< GZend_Console_Getopt_Exception!; #Zend_Config!: +Zend_Config_Xml!9 +Zend_Config_Ini!8 7Zend_Config_Exception!7 !Zend_Cache!6 =Zend_Cache_Frontend_Page!5 AZend_Cache_Frontend_Output!!4 EZend_Cache_Frontend_Function!3 =Zend_Cache_Frontend_File!2 ?Zend_Cache_Frontend_Class!1 5Zend_Cache_Exception!0 +Zend_Cache_Core!/ 1Zend_Cache_Backend!$. KZend_Cache_Backend_ZendPlatform!- ;Zend_Cache_Backend_Test!, ?Zend_Cache_Backend_Sqlite!!+ EZend_Cache_Backend_Memcached!* ;Zend_Cache_Backend_File!) 9Zend_Cache_Backend_APC!( Zend_Auth!' ?Zend_Auth_Storage_Session!$& KZend_Auth_Storage_NonPersistent! % CZend_Auth_Storage_Exception!$ -Zend_Auth_Result!# 3Zend_Auth_Exception!" 9Zend_Auth_Adapter_Http!)! UZend_Auth_Adapter_Http_Resolver_File!.  _Zend_Auth_Adapter_Http_Resolver_Exception!  CZend_Auth_Adapter_Exception! =Zend_Auth_Adapter_Digest! ?Zend_Auth_Adapter_DbTable! Zend_Acl! 'Zend_Acl_Role! 9Zend_Acl_Role_Registry!% MZend_Acl_Role_Registry_Exception! /Zend_Acl_Resource! 1Zend_Acl_Exception! /Zend_XmlRpc_Value  =Zend_XmlRpc_Value_Struct  =Zend_XmlRpc_Value_String  =Zend_XmlRpc_Value_Scalar  ?Zend_XmlRpc_Value_Integer   CZend_XmlRpc_Value_Exception  =Zend_XmlRpc_Value_Double  AZend_XmlRpc_Value_DateTime ! EZend_XmlRpc_Value_Collection  ?Zend_XmlRpc_Value_Boolean  =Zend_XmlRpc_Value_Base64  ;Zend_XmlRpc_Value_Array 
 1Zend_XmlRpc_Server 	 =Zend_XmlRpc_Server_Fault ! EZend_XmlRpc_Server_Exception  =Zend_XmlRpc_Server_Cache  5Zend_XmlRpc_Response  ?Zend_XmlRpc_Response_Http  3Zend_XmlRpc_Request  ?Zend_XmlRpc_Request_Stdin  =Zend_XmlRpc_Request_Http  /Zend_XmlRpc_Fault   7Zend_XmlRpc_Exception  1Zend_XmlRpc_Client #~ IZend_XmlRpc_Client_ServerProxy +} YZend_XmlRpc_Client_ServerIntrospection +| YZend_XmlRpc_Client_IntrospectException    r lR/yU*	fF#|iR7  y_>!




|
j
P
6
						u	X	6	vY8g@{U/	f<xW;{dI*nEW,                        $\ KZend_Gdata_Extension_Recurrence!'[ QZend_Gdata_Extension_OriginalEvent!0Z cZend_Gdata_Extension_OpenSearchTotalResults!.Y _Zend_Gdata_Extension_OpenSearchStartIndex!0X cZend_Gdata_Extension_OpenSearchItemsPerPage!"W GZend_Gdata_Extension_FeedLink!*V WZend_Gdata_Extension_ExtendedProperty!%U MZend_Gdata_Extension_EventStatus!#T IZend_Gdata_Extension_EntryLink!"S GZend_Gdata_Extension_Comments!&R OZend_Gdata_Extension_AttendeeType!(Q SZend_Gdata_Extension_AttendeeStatus!P -Zend_Gdata_Entry!O 9Zend_Gdata_ClientLogin!N 1Zend_Gdata_AuthSub!M )Zend_Gdata_App!L 3Zend_Gdata_App_Util!,K [Zend_Gdata_App_InvalidArgumentException!!J EZend_Gdata_App_HttpException!$I KZend_Gdata_App_FeedSourceParent!#H IZend_Gdata_App_FeedEntryParent!G 3Zend_Gdata_App_Feed!F =Zend_Gdata_App_Extension!!E EZend_Gdata_App_Extension_Uri!%D MZend_Gdata_App_Extension_Updated!#C IZend_Gdata_App_Extension_Title!"B GZend_Gdata_App_Extension_Text!%A MZend_Gdata_App_Extension_Summary!&@ OZend_Gdata_App_Extension_Subtitle!$? KZend_Gdata_App_Extension_Source!$> KZend_Gdata_App_Extension_Rights!'= QZend_Gdata_App_Extension_Published!$< KZend_Gdata_App_Extension_Person!"; GZend_Gdata_App_Extension_Name!": GZend_Gdata_App_Extension_Logo!"9 GZend_Gdata_App_Extension_Link! 8 CZend_Gdata_App_Extension_Id!"7 GZend_Gdata_App_Extension_Icon!'6 QZend_Gdata_App_Extension_Generator!#5 IZend_Gdata_App_Extension_Email!%4 MZend_Gdata_App_Extension_Element!#3 IZend_Gdata_App_Extension_Draft!%2 MZend_Gdata_App_Extension_Control!)1 UZend_Gdata_App_Extension_Contributor!%0 MZend_Gdata_App_Extension_Content!&/ OZend_Gdata_App_Extension_Category!$. KZend_Gdata_App_Extension_Author!- =Zend_Gdata_App_Exception!, 5Zend_Gdata_App_Entry!+ 3Zend_Gdata_App_Base!** WZend_Gdata_App_BadMethodCallException!!) EZend_Gdata_App_AuthException!( #Zend_Filter!' 7Zend_Filter_StripTags!& 9Zend_Filter_StringTrim!% ?Zend_Filter_StringToLower!$ 5Zend_Filter_RealPath!# +Zend_Filter_Int!" /Zend_Filter_Input!! =Zend_Filter_HtmlEntities!  7Zend_Filter_Exception! +Zend_Filter_Dir! 1Zend_Filter_Digits! 5Zend_Filter_BaseName! /Zend_Filter_Alpha! /Zend_Filter_Alnum! Zend_Feed! 'Zend_Feed_Rss! 3Zend_Feed_Exception! 1Zend_Feed_EntryRss! 3Zend_Feed_EntryAtom! ;Zend_Feed_EntryAbstract! 3Zend_Feed_Entry_Rss! 5Zend_Feed_Entry_Atom! =Zend_Feed_Entry_Abstract! /Zend_Feed_Element! /Zend_Feed_Builder! =Zend_Feed_Builder_Header!$ KZend_Feed_Builder_Header_Itunes!  CZend_Feed_Builder_Exception! ;Zend_Feed_Builder_Entry! )Zend_Feed_Atom!
 1Zend_Feed_Abstract!	 )Zend_Exception! !Zend_Debug! Zend_Db! 'Zend_Db_Table! 5Zend_Db_Table_Rowset!" GZend_Db_Table_Rowset_Abstract! /Zend_Db_Table_Row!  CZend_Db_Table_Row_Exception! AZend_Db_Table_Row_Abstract!  ;Zend_Db_Table_Exception! 9Zend_Db_Table_Abstract!~ /Zend_Db_Statement!} 7Zend_Db_Statement_Pdo!| =Zend_Db_Statement_Oracle!'{ QZend_Db_Statement_Oracle_Exception!z =Zend_Db_Statement_Mysqli!'y QZend_Db_Statement_Mysqli_Exception! x CZend_Db_Statement_Exception!w 7Zend_Db_Statement_Db2!$v KZend_Db_Statement_Db2_Exception!u )Zend_Db_Select!t =Zend_Db_Select_Exception!s -Zend_Db_Profiler!r 9Zend_Db_Profiler_Query!q AZend_Db_Profiler_Exception!p /Zend_Db_Inflector!o %Zend_Db_Expr!n /Zend_Db_Exception!m AZend_Db_Adapter_Pdo_Sqlite!l ?Zend_Db_Adapter_Pdo_Pgsql!k ;Zend_Db_Adapter_Pdo_Oci!   s W5V-sBa1vO'




t
Y
?
%
							n	M	4	 	bA&	oK&cC mK,}X7%sO+xW<kP/                                     O 3Zend_Measure_Torque!N =Zend_Measure_Temperature!M 1Zend_Measure_Speed!L 7Zend_Measure_Pressure!K 1Zend_Measure_Power!J 3Zend_Measure_Number!I 9Zend_Measure_Lightness!H 3Zend_Measure_Length!G ?Zend_Measure_Illumination!F 9Zend_Measure_Frequency!E 1Zend_Measure_Force!D =Zend_Measure_Flow_Volume!C 9Zend_Measure_Flow_Mole!B 9Zend_Measure_Flow_Mass!A 9Zend_Measure_Exception!@ 3Zend_Measure_Energy!? 5Zend_Measure_Density!> 5Zend_Measure_Current! = CZend_Measure_Cooking_Weight! < CZend_Measure_Cooking_Volume!; =Zend_Measure_Capacitance!: 3Zend_Measure_Binary!9 /Zend_Measure_Area!8 1Zend_Measure_Angle!7 ?Zend_Measure_Acceleration!6 7Zend_Measure_Abstract!5 Zend_Mail!4 =Zend_Mail_Transport_Smtp!!3 EZend_Mail_Transport_Sendmail!"2 GZend_Mail_Transport_Exception!!1 EZend_Mail_Transport_Abstract!0 /Zend_Mail_Storage!'/ QZend_Mail_Storage_Writable_Maildir!. 9Zend_Mail_Storage_Pop3!- 9Zend_Mail_Storage_Mbox!, ?Zend_Mail_Storage_Maildir!+ 9Zend_Mail_Storage_Imap!* =Zend_Mail_Storage_Folder!") GZend_Mail_Storage_Folder_Mbox!%( MZend_Mail_Storage_Folder_Maildir! ' CZend_Mail_Storage_Exception!& AZend_Mail_Storage_Abstract!% ;Zend_Mail_Protocol_Smtp!'$ QZend_Mail_Protocol_Smtp_Auth_Plain!'# QZend_Mail_Protocol_Smtp_Auth_Login!)" UZend_Mail_Protocol_Smtp_Auth_Crammd5!! ;Zend_Mail_Protocol_Pop3!  ;Zend_Mail_Protocol_Imap!! EZend_Mail_Protocol_Exception!  CZend_Mail_Protocol_Abstract! )Zend_Mail_Part! /Zend_Mail_Message! 3Zend_Mail_Exception! Zend_Log! 9Zend_Log_Writer_Stream! 5Zend_Log_Writer_Null! 5Zend_Log_Writer_Mock! 1Zend_Log_Writer_Db! =Zend_Log_Writer_Abstract! 9Zend_Log_Formatter_Xml! ?Zend_Log_Formatter_Simple! =Zend_Log_Filter_Suppress! =Zend_Log_Filter_Priority! ;Zend_Log_Filter_Message! 1Zend_Log_Exception! #Zend_Locale! -Zend_Locale_Math! =Zend_Locale_Math_PhpMath! AZend_Locale_Math_Exception!
 1Zend_Locale_Format!	 7Zend_Locale_Exception! -Zend_Locale_Data! #Zend_Loader! Zend_Json! 3Zend_Json_Exception! /Zend_Json_Encoder! /Zend_Json_Decoder! 1Zend_Http_Response! 3Zend_Http_Exception!  3Zend_Http_CookieJar! -Zend_Http_Cookie!~ -Zend_Http_Client!} AZend_Http_Client_Exception!"| GZend_Http_Client_Adapter_Test!${ KZend_Http_Client_Adapter_Socket!#z IZend_Http_Client_Adapter_Proxy!'y QZend_Http_Client_Adapter_Exception!x !Zend_Gdata!w ;Zend_Gdata_Spreadsheets!*v WZend_Gdata_Spreadsheets_WorksheetFeed!+u YZend_Gdata_Spreadsheets_WorksheetEntry!,t [Zend_Gdata_Spreadsheets_SpreadsheetFeed!-s ]Zend_Gdata_Spreadsheets_SpreadsheetEntry!&r OZend_Gdata_Spreadsheets_ListQuery!%q MZend_Gdata_Spreadsheets_ListFeed!&p OZend_Gdata_Spreadsheets_ListEntry!/o aZend_Gdata_Spreadsheets_Extension_RowCount!-n ]Zend_Gdata_Spreadsheets_Extension_Custom!/m aZend_Gdata_Spreadsheets_Extension_ColCount!+l YZend_Gdata_Spreadsheets_Extension_Cell!*k WZend_Gdata_Spreadsheets_DocumentQuery!&j OZend_Gdata_Spreadsheets_CellQuery!%i MZend_Gdata_Spreadsheets_CellFeed!&h OZend_Gdata_Spreadsheets_CellEntry!g -Zend_Gdata_Query!f AZend_Gdata_Kind_EventEntry!e +Zend_Gdata_Feed!d 5Zend_Gdata_Extension!c =Zend_Gdata_Extension_Who!b AZend_Gdata_Extension_Where!a ?Zend_Gdata_Extension_When!$` KZend_Gdata_Extension_Visibility!&_ OZend_Gdata_Extension_Transparency!"^ GZend_Gdata_Extension_Reminder!-] ]Zend_Gdata_Extension_RecurrenceException!   j xS.iM3
u_C"pR4xU5




g
=
					`	:	mV@!	f2XIfAyb?w^Be                                                            I9 Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive!58 mZend_Search_Lucene_Analysis_Analyzer_Common_Text!F7 Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive!6 7Zend_Search_Exception!5 -Zend_Rest_Server!4 AZend_Rest_Server_Exception!3 3Zend_Rest_Exception!2 -Zend_Rest_Client!1 ;Zend_Rest_Client_Result!0 AZend_Rest_Client_Exception!/ 'Zend_Registry!. Zend_Pdf!!- EZend_Pdf_UpdateInfoContainer!, -Zend_Pdf_Trailer!+ ;Zend_Pdf_Trailer_Keeper!* AZend_Pdf_Trailer_Generator!) )Zend_Pdf_Style!( 7Zend_Pdf_StringParser!' /Zend_Pdf_Resource!#& IZend_Pdf_Resource_ImageFactory!% ;Zend_Pdf_Resource_Image!!$ EZend_Pdf_Resource_Image_Tiff! # CZend_Pdf_Resource_Image_Png!!" EZend_Pdf_Resource_Image_Jpeg!! 9Zend_Pdf_Resource_Font!$  KZend_Pdf_Resource_Font_Standard!1 eZend_Pdf_Resource_Font_Standard_ZapfDingbats!/ aZend_Pdf_Resource_Font_Standard_TimesRoman!0 cZend_Pdf_Resource_Font_Standard_TimesItalic!4 kZend_Pdf_Resource_Font_Standard_TimesBoldItalic!. _Zend_Pdf_Resource_Font_Standard_TimesBold!+ YZend_Pdf_Resource_Font_Standard_Symbol!5 mZend_Pdf_Resource_Font_Standard_HelveticaOblique!9 uZend_Pdf_Resource_Font_Standard_HelveticaBoldOblique!2 gZend_Pdf_Resource_Font_Standard_HelveticaBold!. _Zend_Pdf_Resource_Font_Standard_Helvetica!3 iZend_Pdf_Resource_Font_Standard_CourierOblique!7 qZend_Pdf_Resource_Font_Standard_CourierBoldOblique!0 cZend_Pdf_Resource_Font_Standard_CourierBold!, [Zend_Pdf_Resource_Font_Standard_Courier!$ KZend_Pdf_Resource_Font_OpenType!- ]Zend_Pdf_Resource_Font_OpenType_TrueType! /Zend_Pdf_PhpArray! +Zend_Pdf_Parser! 9Zend_Pdf_Parser_Stream! 'Zend_Pdf_Page! )Zend_Pdf_Image!
 'Zend_Pdf_Font! 	 CZend_Pdf_Filter_Compression!$ KZend_Pdf_Filter_Compression_Lzw!& OZend_Pdf_Filter_Compression_Flate! =Zend_Pdf_Filter_AsciiHex! ;Zend_Pdf_Filter_Ascii85!" GZend_Pdf_FileParserDataSource!) UZend_Pdf_FileParserDataSource_String!' QZend_Pdf_FileParserDataSource_File! 3Zend_Pdf_FileParser!  ?Zend_Pdf_FileParser_Image!" GZend_Pdf_FileParser_Image_Png!~ =Zend_Pdf_FileParser_Font!&} OZend_Pdf_FileParser_Font_OpenType!/| aZend_Pdf_FileParser_Font_OpenType_TrueType!{ 1Zend_Pdf_Exception!z ;Zend_Pdf_ElementFactory!y -Zend_Pdf_Element!x ;Zend_Pdf_Element_String!#w IZend_Pdf_Element_String_Binary!v ;Zend_Pdf_Element_Stream!u AZend_Pdf_Element_Reference!%t MZend_Pdf_Element_Reference_Table!'s QZend_Pdf_Element_Reference_Context!r ;Zend_Pdf_Element_Object!#q IZend_Pdf_Element_Object_Stream!p =Zend_Pdf_Element_Numeric!o 7Zend_Pdf_Element_Null!n 7Zend_Pdf_Element_Name! m CZend_Pdf_Element_Dictionary!l =Zend_Pdf_Element_Boolean!k 9Zend_Pdf_Element_Array!j )Zend_Pdf_Color!i 1Zend_Pdf_Color_Rgb!h 3Zend_Pdf_Color_Html!g =Zend_Pdf_Color_GrayScale!f 3Zend_Pdf_Color_Cmyk!e 'Zend_Pdf_Cmap!d AZend_Pdf_Cmap_TrimmedTable!!c EZend_Pdf_Cmap_SegmentToDelta!b AZend_Pdf_Cmap_ByteEncoding!&a OZend_Pdf_Cmap_ByteEncoding_Static!` Zend_Mime!_ )Zend_Mime_Part!^ /Zend_Mime_Message!] 3Zend_Mime_Exception!\ -Zend_Mime_Decode![ #Zend_Memory!Z /Zend_Memory_Value!Y 3Zend_Memory_Manager!X 7Zend_Memory_Exception!W 7Zend_Memory_Container!"V GZend_Memory_Container_Movable!!U EZend_Memory_Container_Locked!!T EZend_Memory_AccessController!S 3Zend_Measure_Weight!R 3Zend_Measure_Volume!%Q MZend_Measure_Viscosity_Kinematic!#P IZend_Measure_Viscosity_Dynamic!   Y  OOsR3JrL"



r
B
				^	*j=vAQ#b3g6rG(
nL+rG+    CZend_Service_Delicious_Post!% MZend_Service_Delicious_Exception!  CZend_Service_Audioscrobbler! 3Zend_Service_Amazon!' QZend_Service_Amazon_SimilarProduct!" GZend_Service_Amazon_ResultSet! ?Zend_Service_Amazon_Query!! EZend_Service_Amazon_OfferSet!
 ?Zend_Service_Amazon_Offer!&	 OZend_Service_Amazon_ListmaniaList! =Zend_Service_Amazon_Item! ?Zend_Service_Amazon_Image!( SZend_Service_Amazon_EditorialReview!' QZend_Service_Amazon_CustomerReview!$ KZend_Service_Amazon_Accessories! 5Zend_Service_Akismet! 7Zend_Service_Abstract! 9Zend_Server_Reflection!'  QZend_Server_Reflection_ReturnValue!% MZend_Server_Reflection_Prototype!%~ MZend_Server_Reflection_Parameter! } CZend_Server_Reflection_Node!"| GZend_Server_Reflection_Method!${ KZend_Server_Reflection_Function!-z ]Zend_Server_Reflection_Function_Abstract!%y MZend_Server_Reflection_Exception!!x EZend_Server_Reflection_Class!w 7Zend_Server_Exception!v 5Zend_Server_Abstract!u 1Zend_Search_Lucene!$t KZend_Search_Lucene_Storage_File!+s YZend_Search_Lucene_Storage_File_Memory!/r aZend_Search_Lucene_Storage_File_Filesystem!)q UZend_Search_Lucene_Storage_Directory!4p kZend_Search_Lucene_Storage_Directory_Filesystem!%o MZend_Search_Lucene_Search_Weight!*n WZend_Search_Lucene_Search_Weight_Term!,m [Zend_Search_Lucene_Search_Weight_Phrase!/l aZend_Search_Lucene_Search_Weight_MultiTerm!+k YZend_Search_Lucene_Search_Weight_Empty!-j ]Zend_Search_Lucene_Search_Weight_Boolean!)i UZend_Search_Lucene_Search_Similarity!1h eZend_Search_Lucene_Search_Similarity_Default!)g UZend_Search_Lucene_Search_QueryToken!3f iZend_Search_Lucene_Search_QueryParserException!1e eZend_Search_Lucene_Search_QueryParserContext!*d WZend_Search_Lucene_Search_QueryParser!)c UZend_Search_Lucene_Search_QueryLexer!'b QZend_Search_Lucene_Search_QueryHit!)a UZend_Search_Lucene_Search_QueryEntry!.` _Zend_Search_Lucene_Search_QueryEntry_Term!2_ gZend_Search_Lucene_Search_QueryEntry_Subquery!0^ cZend_Search_Lucene_Search_QueryEntry_Phrase!$] KZend_Search_Lucene_Search_Query!)\ UZend_Search_Lucene_Search_Query_Term!+[ YZend_Search_Lucene_Search_Query_Phrase!.Z _Zend_Search_Lucene_Search_Query_MultiTerm!*Y WZend_Search_Lucene_Search_Query_Empty!,X [Zend_Search_Lucene_Search_Query_Boolean!:W wZend_Search_Lucene_Search_BooleanExpressionRecognizer!V =Zend_Search_Lucene_Proxy!%U MZend_Search_Lucene_PriorityQueue!$T KZend_Search_Lucene_Index_Writer!&S OZend_Search_Lucene_Index_TermInfo!"R GZend_Search_Lucene_Index_Term!+Q YZend_Search_Lucene_Index_SegmentWriter!8P sZend_Search_Lucene_Index_SegmentWriter_StreamWriter!:O wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter!+N YZend_Search_Lucene_Index_SegmentMerger!6M oZend_Search_Lucene_Index_SegmentInfoPriorityQueue!)L UZend_Search_Lucene_Index_SegmentInfo!'K QZend_Search_Lucene_Index_FieldInfo!.J _Zend_Search_Lucene_Index_DictionaryLoader!!I EZend_Search_Lucene_FSMAction!H 9Zend_Search_Lucene_FSM!G =Zend_Search_Lucene_Field!!F EZend_Search_Lucene_Exception! E CZend_Search_Lucene_Document!%D MZend_Search_Lucene_Document_Html!,C [Zend_Search_Lucene_Analysis_TokenFilter!6B oZend_Search_Lucene_Analysis_TokenFilter_StopWords!7A qZend_Search_Lucene_Analysis_TokenFilter_ShortWords!6@ oZend_Search_Lucene_Analysis_TokenFilter_LowerCase!&? OZend_Search_Lucene_Analysis_Token!)> UZend_Search_Lucene_Analysis_Analyzer!0= cZend_Search_Lucene_Analysis_Analyzer_Common!8< sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num!5; mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8!8: sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum!   s pN+a>W<yS*{]>




m
F
$
					j	T	<	+	b?a?z`G(	hCkH& rP*a2hF*                           ?Zend_XmlRpc_Response_Http! 3Zend_XmlRpc_Request! ?Zend_XmlRpc_Request_Stdin! =Zend_XmlRpc_Request_Http! /Zend_XmlRpc_Fault!  7Zend_XmlRpc_Exception! 1Zend_XmlRpc_Client!#~ IZend_XmlRpc_Client_ServerProxy!+} YZend_XmlRpc_Client_ServerIntrospection!+| YZend_XmlRpc_Client_IntrospectException!%{ MZend_XmlRpc_Client_HttpException!&z OZend_XmlRpc_Client_FaultException!!y EZend_XmlRpc_Client_Exception!x Zend_View!w 5Zend_View_Helper_Url!v ?Zend_View_Helper_HtmlList!"u GZend_View_Helper_FormTextarea!t ?Zend_View_Helper_FormText! s CZend_View_Helper_FormSubmit! r CZend_View_Helper_FormSelect!q AZend_View_Helper_FormReset!p AZend_View_Helper_FormRadio!"o GZend_View_Helper_FormPassword!n ?Zend_View_Helper_FormNote!m AZend_View_Helper_FormLabel!l AZend_View_Helper_FormImage! k CZend_View_Helper_FormHidden!j ?Zend_View_Helper_FormFile!!i EZend_View_Helper_FormElement!"h GZend_View_Helper_FormCheckbox! g CZend_View_Helper_FormButton!!f EZend_View_Helper_DeclareVars!e 3Zend_View_Exception!d 1Zend_View_Abstract!c %Zend_Version!b 'Zend_Validate!a AZend_Validate_StringLength!` 3Zend_Validate_Regex!_ 9Zend_Validate_NotEmpty!^ 9Zend_Validate_LessThan!] -Zend_Validate_Ip!\ /Zend_Validate_Int![ 7Zend_Validate_InArray!Z 9Zend_Validate_Hostname!Y ?Zend_Validate_Hostname_Se!X ?Zend_Validate_Hostname_No!W ?Zend_Validate_Hostname_Li!V ?Zend_Validate_Hostname_Hu!U ?Zend_Validate_Hostname_Fi!T ?Zend_Validate_Hostname_De!S ?Zend_Validate_Hostname_Ch!R ?Zend_Validate_Hostname_At!Q /Zend_Validate_Hex!P ?Zend_Validate_GreaterThan!O 3Zend_Validate_Float!N ;Zend_Validate_Exception!M AZend_Validate_EmailAddress!L 5Zend_Validate_Digits!K 1Zend_Validate_Date!J 3Zend_Validate_Ccnum!I 7Zend_Validate_Between!H 3Zend_Validate_Alpha!G 3Zend_Validate_Alnum!F 9Zend_Validate_Abstract!E Zend_Uri!D +Zend_Uri_Mailto!C 'Zend_Uri_Http!B 1Zend_Uri_Exception!A )Zend_Translate!@ =Zend_Translate_Exception!? 9Zend_Translate_Adapter!!> EZend_Translate_Adapter_Xliff!= AZend_Translate_Adapter_Tmx!< ?Zend_Translate_Adapter_Qt!#; IZend_Translate_Adapter_Gettext!: AZend_Translate_Adapter_Csv!!9 EZend_Translate_Adapter_Array!8 %Zend_Session!)7 UZend_Session_Validator_HttpUserAgent!$6 KZend_Session_Validator_Abstract!5 9Zend_Session_Namespace!4 9Zend_Session_Exception!3 7Zend_Session_Abstract!2 1Zend_Service_Yahoo!$1 KZend_Service_Yahoo_WebResultSet!!0 EZend_Service_Yahoo_WebResult!!/ EZend_Service_Yahoo_ResultSet!. ?Zend_Service_Yahoo_Result!%- MZend_Service_Yahoo_NewsResultSet!", GZend_Service_Yahoo_NewsResult!&+ OZend_Service_Yahoo_LocalResultSet!#* IZend_Service_Yahoo_LocalResult!&) OZend_Service_Yahoo_ImageResultSet!#( IZend_Service_Yahoo_ImageResult!' =Zend_Service_Yahoo_Image!& 1Zend_Service_Simpy!$% KZend_Service_Simpy_WatchlistSet!*$ WZend_Service_Simpy_WatchlistFilterSet!'# QZend_Service_Simpy_WatchlistFilter!!" EZend_Service_Simpy_Watchlist!! ?Zend_Service_Simpy_TagSet!  9Zend_Service_Simpy_Tag! AZend_Service_Simpy_NoteSet! ;Zend_Service_Simpy_Note! AZend_Service_Simpy_LinkSet!! EZend_Service_Simpy_LinkQuery! ;Zend_Service_Simpy_Link! 3Zend_Service_Flickr!" GZend_Service_Flickr_ResultSet! AZend_Service_Flickr_Result! ?Zend_Service_Flickr_Image! 9Zend_Service_Exception! 9Zend_Service_Delicious!& OZend_Service_Delicious_SimplePost!$ KZend_Service_Delicious_PostList!   q  |aA qO.tU?.hI-uU0




v
T
3
						i	U	/	U+T(nE|V.[6 oM$vT4dK*  $v KZend_Db_Statement_Db2_Exception"u )Zend_Db_Select"t =Zend_Db_Select_Exception"s -Zend_Db_Profiler"r 9Zend_Db_Profiler_Query"q AZend_Db_Profiler_Exception"p /Zend_Db_Inflector"o %Zend_Db_Expr"n /Zend_Db_Exception"m AZend_Db_Adapter_Pdo_Sqlite"l ?Zend_Db_Adapter_Pdo_Pgsql"k ;Zend_Db_Adapter_Pdo_Oci"j ?Zend_Db_Adapter_Pdo_Mysql"i ?Zend_Db_Adapter_Pdo_Mssql"!h EZend_Db_Adapter_Pdo_Abstract"g 9Zend_Db_Adapter_Oracle"%f MZend_Db_Adapter_Oracle_Exception"e 9Zend_Db_Adapter_Mysqli"%d MZend_Db_Adapter_Mysqli_Exception"c ?Zend_Db_Adapter_Exception"b 3Zend_Db_Adapter_Db2""a GZend_Db_Adapter_Db2_Exception"` =Zend_Db_Adapter_Abstract"_ Zend_Date"^ 3Zend_Date_Exception"] 5Zend_Date_DateObject"\ -Zend_Date_Cities"![ EZend_Controller_Router_Route"(Z SZend_Controller_Router_Route_Static"'Y QZend_Controller_Router_Route_Regex"(X SZend_Controller_Router_Route_Module"#W IZend_Controller_Router_Rewrite"%V MZend_Controller_Router_Exception"$U KZend_Controller_Router_Abstract""T GZend_Controller_Response_Http"'S QZend_Controller_Response_Exception"!R EZend_Controller_Response_Cli"&Q OZend_Controller_Response_Abstract"!P EZend_Controller_Request_Http"&O OZend_Controller_Request_Exception"%N MZend_Controller_Request_Abstract"(M SZend_Controller_Plugin_ErrorHandler""L GZend_Controller_Plugin_Broker"$K KZend_Controller_Plugin_Abstract"J 7Zend_Controller_Front"I ?Zend_Controller_Exception"(H SZend_Controller_Dispatcher_Standard")G UZend_Controller_Dispatcher_Exception"(F SZend_Controller_Dispatcher_Abstract"E 9Zend_Controller_Action"(D SZend_Controller_Action_HelperBroker"/C aZend_Controller_Action_Helper_ViewRenderer"&B OZend_Controller_Action_Helper_Url"-A ]Zend_Controller_Action_Helper_Redirector"1@ eZend_Controller_Action_Helper_FlashMessenger"+? YZend_Controller_Action_Helper_Abstract"%> MZend_Controller_Action_Exception"= 3Zend_Console_Getopt""< GZend_Console_Getopt_Exception"; #Zend_Config": +Zend_Config_Xml"9 +Zend_Config_Ini"8 7Zend_Config_Exception"7 !Zend_Cache"6 =Zend_Cache_Frontend_Page"5 AZend_Cache_Frontend_Output"!4 EZend_Cache_Frontend_Function"3 =Zend_Cache_Frontend_File"2 ?Zend_Cache_Frontend_Class"1 5Zend_Cache_Exception"0 +Zend_Cache_Core"/ 1Zend_Cache_Backend"$. KZend_Cache_Backend_ZendPlatform"- ;Zend_Cache_Backend_Test", ?Zend_Cache_Backend_Sqlite"!+ EZend_Cache_Backend_Memcached"* ;Zend_Cache_Backend_File") 9Zend_Cache_Backend_APC"( Zend_Auth"' ?Zend_Auth_Storage_Session"$& KZend_Auth_Storage_NonPersistent" % CZend_Auth_Storage_Exception"$ -Zend_Auth_Result"# 3Zend_Auth_Exception"" 9Zend_Auth_Adapter_Http")! UZend_Auth_Adapter_Http_Resolver_File".  _Zend_Auth_Adapter_Http_Resolver_Exception"  CZend_Auth_Adapter_Exception" =Zend_Auth_Adapter_Digest" ?Zend_Auth_Adapter_DbTable" Zend_Acl" 'Zend_Acl_Role" 9Zend_Acl_Role_Registry"% MZend_Acl_Role_Registry_Exception" /Zend_Acl_Resource" 1Zend_Acl_Exception" /Zend_XmlRpc_Value! =Zend_XmlRpc_Value_Struct! =Zend_XmlRpc_Value_String! =Zend_XmlRpc_Value_Scalar! ?Zend_XmlRpc_Value_Integer!  CZend_XmlRpc_Value_Exception! =Zend_XmlRpc_Value_Double! AZend_XmlRpc_Value_DateTime!! EZend_XmlRpc_Value_Collection! ?Zend_XmlRpc_Value_Boolean! =Zend_XmlRpc_Value_Base64! ;Zend_XmlRpc_Value_Array!
 1Zend_XmlRpc_Server!	 =Zend_XmlRpc_Server_Fault!! EZend_XmlRpc_Server_Exception! =Zend_XmlRpc_Server_Cache! 5Zend_XmlRpc_Response!   j  jF~a7u^@fK*qM!




h
>
				|	e	G	#	mR1xT( oE$ lN*tY8[/vL+aJ,                 7Zend_Server_Interface$! EZend_Search_Lucene_Interface$ 9Zend_Request_Interface$ +Zend_Pdf_Filter$& OZend_Pdf_ElementFactory_Interface$$ KZend_Memory_Container_Interface$) UZend_Mail_Storage_Writable_Interface$'  QZend_Mail_Storage_Folder_Interface$! EZend_Log_Formatter_Interface$~ ?Zend_Log_Filter_Interface$'} QZend_Http_Client_Adapter_Interface$| 7Zend_Filter_Interface$ { CZend_Feed_Builder_Interface$ z CZend_Db_Statement_Interface$+y YZend_Controller_Router_Route_Interface$%x MZend_Controller_Router_Interface$)w UZend_Controller_Dispatcher_Interface$!v EZend_Cache_Backend_Interface$ u CZend_Auth_Storage_Interface$ t CZend_Auth_Adapter_Interface$.s _Zend_Auth_Adapter_Http_Resolver_Interface$r ;Zend_Acl_Role_Interface$ q CZend_Acl_Resource_Interface$p ?Zend_Acl_Assert_Interface$o 3Zend_View_Interface#n ;Zend_Validate_Interface#%m MZend_Validate_Hostname_Interface#%l MZend_Session_Validator_Interface#'k QZend_Session_SaveHandler_Interface#j 7Zend_Server_Interface#!i EZend_Search_Lucene_Interface#h 9Zend_Request_Interface#g +Zend_Pdf_Filter#$f KZend_Memory_Container_Interface#)e UZend_Mail_Storage_Writable_Interface#'d QZend_Mail_Storage_Folder_Interface#!c EZend_Log_Formatter_Interface#b ?Zend_Log_Filter_Interface#'a QZend_Http_Client_Adapter_Interface#` 7Zend_Filter_Interface# _ CZend_Feed_Builder_Interface# ^ CZend_Db_Statement_Interface#+] YZend_Controller_Router_Route_Interface#%\ MZend_Controller_Router_Interface#)[ UZend_Controller_Dispatcher_Interface#!Z EZend_Cache_Backend_Interface# Y CZend_Auth_Storage_Interface# X CZend_Auth_Adapter_Interface#.W _Zend_Auth_Adapter_Http_Resolver_Interface#V ;Zend_Acl_Role_Interface# U CZend_Acl_Resource_Interface#T ?Zend_Acl_Assert_Interface#S 3Zend_View_Interface"R ;Zend_Validate_Interface"%Q MZend_Validate_Hostname_Interface"%P MZend_Session_Validator_Interface"'O QZend_Session_SaveHandler_Interface"N 7Zend_Server_Interface"!M EZend_Search_Lucene_Interface"L 9Zend_Request_Interface"K +Zend_Pdf_Filter"$J KZend_Memory_Container_Interface")I UZend_Mail_Storage_Writable_Interface"'H QZend_Mail_Storage_Folder_Interface"!G EZend_Log_Formatter_Interface"F ?Zend_Log_Filter_Interface"'E QZend_Http_Client_Adapter_Interface"D 7Zend_Filter_Interface" C CZend_Feed_Builder_Interface" B CZend_Db_Statement_Interface"+A YZend_Controller_Router_Route_Interface"%@ MZend_Controller_Router_Interface")? UZend_Controller_Dispatcher_Interface"!> EZend_Cache_Backend_Interface" = CZend_Auth_Storage_Interface" < CZend_Auth_Adapter_Interface".; _Zend_Auth_Adapter_Http_Resolver_Interface": ;Zend_Acl_Role_Interface" 9 CZend_Acl_Resource_Interface"8 ?Zend_Acl_Assert_Interface"7 3Zend_View_Interface!6 ;Zend_Validate_Interface!%5 MZend_Validate_Hostname_Interface!%4 MZend_Session_Validator_Interface!'3 QZend_Session_SaveHandler_Interface!2 7Zend_Server_Interface!!1 EZend_Search_Lucene_Interface!0 9Zend_Request_Interface!/ +Zend_Pdf_Filter!$. KZend_Memory_Container_Interface!)- UZend_Mail_Storage_Writable_Interface!', QZend_Mail_Storage_Folder_Interface!!+ EZend_Log_Formatter_Interface!* ?Zend_Log_Filter_Interface!') QZend_Http_Client_Adapter_Interface!( 7Zend_Filter_Interface! ' CZend_Feed_Builder_Interface! & CZend_Db_Statement_Interface!+% YZend_Controller_Router_Route_Interface!%$ MZend_Controller_Router_Interface!)# UZend_Controller_Dispatcher_Interface!!" EZend_Cache_Backend_Interface! ! CZend_Auth_Storage_Interface!   CZend_Auth_Adapter_Interface!. _Zend_Auth_Adapter_Http_Resolver_Interface! ;Zend_Acl_Role_Interface!   n rG&hN(iEnR<*gM5





^
0
					[	.	c=T,d;e5sA_"w[<#W)                               "d GZend_Gdata_Extension_FeedLink"*c WZend_Gdata_Extension_ExtendedProperty"%b MZend_Gdata_Extension_EventStatus"#a IZend_Gdata_Extension_EntryLink""` GZend_Gdata_Extension_Comments"&_ OZend_Gdata_Extension_AttendeeType"(^ SZend_Gdata_Extension_AttendeeStatus"] -Zend_Gdata_Entry"\ 9Zend_Gdata_ClientLogin"[ 3Zend_Gdata_Calendar"!Z EZend_Gdata_Calendar_ListFeed""Y GZend_Gdata_Calendar_ListEntry"-X ]Zend_Gdata_Calendar_Extension_WebContent"+W YZend_Gdata_Calendar_Extension_Timezone"9V uZend_Gdata_Calendar_Extension_SendEventNotifications"+U YZend_Gdata_Calendar_Extension_Selected"+T YZend_Gdata_Calendar_Extension_QuickAdd"'S QZend_Gdata_Calendar_Extension_Link")R UZend_Gdata_Calendar_Extension_Hidden"(Q SZend_Gdata_Calendar_Extension_Color".P _Zend_Gdata_Calendar_Extension_AccessLevel"#O IZend_Gdata_Calendar_EventQuery""N GZend_Gdata_Calendar_EventFeed"#M IZend_Gdata_Calendar_EventEntry"L 1Zend_Gdata_AuthSub"K )Zend_Gdata_App"J 3Zend_Gdata_App_Util",I [Zend_Gdata_App_InvalidArgumentException"!H EZend_Gdata_App_HttpException"$G KZend_Gdata_App_FeedSourceParent"#F IZend_Gdata_App_FeedEntryParent"E 3Zend_Gdata_App_Feed"D =Zend_Gdata_App_Extension"!C EZend_Gdata_App_Extension_Uri"%B MZend_Gdata_App_Extension_Updated"#A IZend_Gdata_App_Extension_Title""@ GZend_Gdata_App_Extension_Text"%? MZend_Gdata_App_Extension_Summary"&> OZend_Gdata_App_Extension_Subtitle"$= KZend_Gdata_App_Extension_Source"$< KZend_Gdata_App_Extension_Rights"'; QZend_Gdata_App_Extension_Published"$: KZend_Gdata_App_Extension_Person""9 GZend_Gdata_App_Extension_Name""8 GZend_Gdata_App_Extension_Logo""7 GZend_Gdata_App_Extension_Link" 6 CZend_Gdata_App_Extension_Id""5 GZend_Gdata_App_Extension_Icon"'4 QZend_Gdata_App_Extension_Generator"#3 IZend_Gdata_App_Extension_Email"%2 MZend_Gdata_App_Extension_Element"#1 IZend_Gdata_App_Extension_Draft"%0 MZend_Gdata_App_Extension_Control")/ UZend_Gdata_App_Extension_Contributor"%. MZend_Gdata_App_Extension_Content"&- OZend_Gdata_App_Extension_Category"$, KZend_Gdata_App_Extension_Author"+ =Zend_Gdata_App_Exception"* 5Zend_Gdata_App_Entry") 3Zend_Gdata_App_Base"*( WZend_Gdata_App_BadMethodCallException"!' EZend_Gdata_App_AuthException"& #Zend_Filter"% 7Zend_Filter_StripTags"$ 9Zend_Filter_StringTrim"# ?Zend_Filter_StringToUpper"" ?Zend_Filter_StringToLower"! 5Zend_Filter_RealPath"  +Zend_Filter_Int" /Zend_Filter_Input" =Zend_Filter_HtmlEntities" 7Zend_Filter_Exception" +Zend_Filter_Dir" 1Zend_Filter_Digits" 5Zend_Filter_BaseName" /Zend_Filter_Alpha" /Zend_Filter_Alnum" Zend_Feed" 'Zend_Feed_Rss" 3Zend_Feed_Exception" 3Zend_Feed_Entry_Rss" 5Zend_Feed_Entry_Atom" =Zend_Feed_Entry_Abstract" /Zend_Feed_Element" /Zend_Feed_Builder" =Zend_Feed_Builder_Header"$ KZend_Feed_Builder_Header_Itunes"  CZend_Feed_Builder_Exception" ;Zend_Feed_Builder_Entry" )Zend_Feed_Atom"
 1Zend_Feed_Abstract"	 )Zend_Exception" !Zend_Debug" Zend_Db" 'Zend_Db_Table" 5Zend_Db_Table_Rowset"" GZend_Db_Table_Rowset_Abstract" /Zend_Db_Table_Row"  CZend_Db_Table_Row_Exception" AZend_Db_Table_Row_Abstract"  ;Zend_Db_Table_Exception" 9Zend_Db_Table_Abstract"~ /Zend_Db_Statement"} 7Zend_Db_Statement_Pdo"| =Zend_Db_Statement_Oracle"'{ QZend_Db_Statement_Oracle_Exception"z =Zend_Db_Statement_Mysqli"'y QZend_Db_Statement_Mysqli_Exception" x CZend_Db_Statement_Exception"w 7Zend_Db_Statement_Db2"   q  f;jH%i@U"tD




b
:
						l	R	8		
`G3uT9^9vV3^? kJ8b>!jO0         U 3Zend_Measure_Length"T ?Zend_Measure_Illumination"S 9Zend_Measure_Frequency"R 1Zend_Measure_Force"Q =Zend_Measure_Flow_Volume"P 9Zend_Measure_Flow_Mole"O 9Zend_Measure_Flow_Mass"N 9Zend_Measure_Exception"M 3Zend_Measure_Energy"L 5Zend_Measure_Density"K 5Zend_Measure_Current" J CZend_Measure_Cooking_Weight" I CZend_Measure_Cooking_Volume"H =Zend_Measure_Capacitance"G 3Zend_Measure_Binary"F /Zend_Measure_Area"E 1Zend_Measure_Angle"D ?Zend_Measure_Acceleration"C 7Zend_Measure_Abstract"B Zend_Mail"A =Zend_Mail_Transport_Smtp"!@ EZend_Mail_Transport_Sendmail""? GZend_Mail_Transport_Exception"!> EZend_Mail_Transport_Abstract"= /Zend_Mail_Storage"'< QZend_Mail_Storage_Writable_Maildir"; 9Zend_Mail_Storage_Pop3": 9Zend_Mail_Storage_Mbox"9 ?Zend_Mail_Storage_Maildir"8 9Zend_Mail_Storage_Imap"7 =Zend_Mail_Storage_Folder""6 GZend_Mail_Storage_Folder_Mbox"%5 MZend_Mail_Storage_Folder_Maildir" 4 CZend_Mail_Storage_Exception"3 AZend_Mail_Storage_Abstract"2 ;Zend_Mail_Protocol_Smtp"'1 QZend_Mail_Protocol_Smtp_Auth_Plain"'0 QZend_Mail_Protocol_Smtp_Auth_Login")/ UZend_Mail_Protocol_Smtp_Auth_Crammd5". ;Zend_Mail_Protocol_Pop3"- ;Zend_Mail_Protocol_Imap"!, EZend_Mail_Protocol_Exception" + CZend_Mail_Protocol_Abstract"* )Zend_Mail_Part") /Zend_Mail_Message"( 3Zend_Mail_Exception"' Zend_Log"& 9Zend_Log_Writer_Stream"% 5Zend_Log_Writer_Null"$ 5Zend_Log_Writer_Mock"# 1Zend_Log_Writer_Db"" =Zend_Log_Writer_Abstract"! 9Zend_Log_Formatter_Xml"  ?Zend_Log_Formatter_Simple" =Zend_Log_Filter_Suppress" =Zend_Log_Filter_Priority" ;Zend_Log_Filter_Message" 1Zend_Log_Exception" #Zend_Locale" -Zend_Locale_Math" =Zend_Locale_Math_PhpMath" AZend_Locale_Math_Exception" 1Zend_Locale_Format" 7Zend_Locale_Exception" -Zend_Locale_Data" #Zend_Loader" Zend_Json" 3Zend_Json_Exception" /Zend_Json_Encoder" /Zend_Json_Decoder" 1Zend_Http_Response" 3Zend_Http_Exception" 3Zend_Http_CookieJar" -Zend_Http_Cookie" -Zend_Http_Client"
 AZend_Http_Client_Exception""	 GZend_Http_Client_Adapter_Test"$ KZend_Http_Client_Adapter_Socket"# IZend_Http_Client_Adapter_Proxy"' QZend_Http_Client_Adapter_Exception" !Zend_Gdata" ;Zend_Gdata_Spreadsheets"* WZend_Gdata_Spreadsheets_WorksheetFeed"+ YZend_Gdata_Spreadsheets_WorksheetEntry", [Zend_Gdata_Spreadsheets_SpreadsheetFeed"-  ]Zend_Gdata_Spreadsheets_SpreadsheetEntry"& OZend_Gdata_Spreadsheets_ListQuery"%~ MZend_Gdata_Spreadsheets_ListFeed"&} OZend_Gdata_Spreadsheets_ListEntry"/| aZend_Gdata_Spreadsheets_Extension_RowCount"-{ ]Zend_Gdata_Spreadsheets_Extension_Custom"/z aZend_Gdata_Spreadsheets_Extension_ColCount"+y YZend_Gdata_Spreadsheets_Extension_Cell"*x WZend_Gdata_Spreadsheets_DocumentQuery"&w OZend_Gdata_Spreadsheets_CellQuery"%v MZend_Gdata_Spreadsheets_CellFeed"&u OZend_Gdata_Spreadsheets_CellEntry"t -Zend_Gdata_Query"s AZend_Gdata_Kind_EventEntry"r +Zend_Gdata_Feed"q 5Zend_Gdata_Extension"p =Zend_Gdata_Extension_Who"o AZend_Gdata_Extension_Where"n ?Zend_Gdata_Extension_When"$m KZend_Gdata_Extension_Visibility"&l OZend_Gdata_Extension_Transparency""k GZend_Gdata_Extension_Reminder"-j ]Zend_Gdata_Extension_RecurrenceException"$i KZend_Gdata_Extension_Recurrence"'h QZend_Gdata_Extension_OriginalEvent"0g cZend_Gdata_Extension_OpenSearchTotalResults".f _Zend_Gdata_Extension_OpenSearchStartIndex"0e cZend_Gdata_Extension_OpenSearchItemsPerPage"   n qP4b< gP>wV:hG  



i
B
"
					q	P	*	nN-tU=#f+O}IuQ,sS:vS:                                                        C 7Zend_Search_Exception"B -Zend_Rest_Server"A AZend_Rest_Server_Exception"@ 3Zend_Rest_Exception"? -Zend_Rest_Client"> ;Zend_Rest_Client_Result"= AZend_Rest_Client_Exception"< 'Zend_Registry"; Zend_Pdf"!: EZend_Pdf_UpdateInfoContainer"9 -Zend_Pdf_Trailer"8 ;Zend_Pdf_Trailer_Keeper"7 AZend_Pdf_Trailer_Generator"6 )Zend_Pdf_Style"5 7Zend_Pdf_StringParser"4 /Zend_Pdf_Resource"#3 IZend_Pdf_Resource_ImageFactory"2 ;Zend_Pdf_Resource_Image"!1 EZend_Pdf_Resource_Image_Tiff" 0 CZend_Pdf_Resource_Image_Png"!/ EZend_Pdf_Resource_Image_Jpeg". 9Zend_Pdf_Resource_Font"$- KZend_Pdf_Resource_Font_Standard"1, eZend_Pdf_Resource_Font_Standard_ZapfDingbats"/+ aZend_Pdf_Resource_Font_Standard_TimesRoman"0* cZend_Pdf_Resource_Font_Standard_TimesItalic"4) kZend_Pdf_Resource_Font_Standard_TimesBoldItalic".( _Zend_Pdf_Resource_Font_Standard_TimesBold"+' YZend_Pdf_Resource_Font_Standard_Symbol"5& mZend_Pdf_Resource_Font_Standard_HelveticaOblique"9% uZend_Pdf_Resource_Font_Standard_HelveticaBoldOblique"2$ gZend_Pdf_Resource_Font_Standard_HelveticaBold".# _Zend_Pdf_Resource_Font_Standard_Helvetica"3" iZend_Pdf_Resource_Font_Standard_CourierOblique"7! qZend_Pdf_Resource_Font_Standard_CourierBoldOblique"0  cZend_Pdf_Resource_Font_Standard_CourierBold", [Zend_Pdf_Resource_Font_Standard_Courier"$ KZend_Pdf_Resource_Font_OpenType"- ]Zend_Pdf_Resource_Font_OpenType_TrueType" /Zend_Pdf_PhpArray" +Zend_Pdf_Parser" 9Zend_Pdf_Parser_Stream" 'Zend_Pdf_Page" )Zend_Pdf_Image" 'Zend_Pdf_Font"  CZend_Pdf_Filter_Compression"$ KZend_Pdf_Filter_Compression_Lzw"& OZend_Pdf_Filter_Compression_Flate" =Zend_Pdf_Filter_AsciiHex" ;Zend_Pdf_Filter_Ascii85"" GZend_Pdf_FileParserDataSource") UZend_Pdf_FileParserDataSource_String"' QZend_Pdf_FileParserDataSource_File" 3Zend_Pdf_FileParser" ?Zend_Pdf_FileParser_Image"" GZend_Pdf_FileParser_Image_Png" =Zend_Pdf_FileParser_Font"&
 OZend_Pdf_FileParser_Font_OpenType"/	 aZend_Pdf_FileParser_Font_OpenType_TrueType" 1Zend_Pdf_Exception" ;Zend_Pdf_ElementFactory" -Zend_Pdf_Element" ;Zend_Pdf_Element_String"# IZend_Pdf_Element_String_Binary" ;Zend_Pdf_Element_Stream" AZend_Pdf_Element_Reference"% MZend_Pdf_Element_Reference_Table"'  QZend_Pdf_Element_Reference_Context" ;Zend_Pdf_Element_Object"#~ IZend_Pdf_Element_Object_Stream"} =Zend_Pdf_Element_Numeric"| 7Zend_Pdf_Element_Null"{ 7Zend_Pdf_Element_Name" z CZend_Pdf_Element_Dictionary"y =Zend_Pdf_Element_Boolean"x 9Zend_Pdf_Element_Array"w )Zend_Pdf_Color"v 1Zend_Pdf_Color_Rgb"u 3Zend_Pdf_Color_Html"t =Zend_Pdf_Color_GrayScale"s 3Zend_Pdf_Color_Cmyk"r 'Zend_Pdf_Cmap"q AZend_Pdf_Cmap_TrimmedTable"!p EZend_Pdf_Cmap_SegmentToDelta"o AZend_Pdf_Cmap_ByteEncoding"&n OZend_Pdf_Cmap_ByteEncoding_Static"m Zend_Mime"l )Zend_Mime_Part"k /Zend_Mime_Message"j 3Zend_Mime_Exception"i -Zend_Mime_Decode"h #Zend_Memory"g /Zend_Memory_Value"f 3Zend_Memory_Manager"e 7Zend_Memory_Exception"d 7Zend_Memory_Container""c GZend_Memory_Container_Movable"!b EZend_Memory_Container_Locked"!a EZend_Memory_AccessController"` 3Zend_Measure_Weight"_ 3Zend_Measure_Volume"%^ MZend_Measure_Viscosity_Kinematic"#] IZend_Measure_Viscosity_Dynamic"\ 3Zend_Measure_Torque"[ =Zend_Measure_Temperature"Z 1Zend_Measure_Speed"Y 7Zend_Measure_Pressure"X 1Zend_Measure_Power"W 3Zend_Measure_Number"V 9Zend_Measure_Lightness"   V  }0KEc>zK


|
R
*
			r	D	Z$m?
qDS*c; f>wX:|[1                       ?Zend_Service_Amazon_Query"! EZend_Service_Amazon_OfferSet" ?Zend_Service_Amazon_Offer"& OZend_Service_Amazon_ListmaniaList" =Zend_Service_Amazon_Item" ?Zend_Service_Amazon_Image"( SZend_Service_Amazon_EditorialReview"' QZend_Service_Amazon_CustomerReview"$ KZend_Service_Amazon_Accessories" 5Zend_Service_Akismet" 7Zend_Service_Abstract" 9Zend_Server_Reflection"' QZend_Server_Reflection_ReturnValue"% MZend_Server_Reflection_Prototype"% MZend_Server_Reflection_Parameter" 
 CZend_Server_Reflection_Node""	 GZend_Server_Reflection_Method"$ KZend_Server_Reflection_Function"- ]Zend_Server_Reflection_Function_Abstract"% MZend_Server_Reflection_Exception"! EZend_Server_Reflection_Class" 7Zend_Server_Exception" 5Zend_Server_Abstract" 1Zend_Search_Lucene"$ KZend_Search_Lucene_Storage_File"+  YZend_Search_Lucene_Storage_File_Memory"/ aZend_Search_Lucene_Storage_File_Filesystem")~ UZend_Search_Lucene_Storage_Directory"4} kZend_Search_Lucene_Storage_Directory_Filesystem"%| MZend_Search_Lucene_Search_Weight"*{ WZend_Search_Lucene_Search_Weight_Term",z [Zend_Search_Lucene_Search_Weight_Phrase"/y aZend_Search_Lucene_Search_Weight_MultiTerm"+x YZend_Search_Lucene_Search_Weight_Empty"-w ]Zend_Search_Lucene_Search_Weight_Boolean")v UZend_Search_Lucene_Search_Similarity"1u eZend_Search_Lucene_Search_Similarity_Default")t UZend_Search_Lucene_Search_QueryToken"3s iZend_Search_Lucene_Search_QueryParserException"1r eZend_Search_Lucene_Search_QueryParserContext"*q WZend_Search_Lucene_Search_QueryParser")p UZend_Search_Lucene_Search_QueryLexer"'o QZend_Search_Lucene_Search_QueryHit")n UZend_Search_Lucene_Search_QueryEntry".m _Zend_Search_Lucene_Search_QueryEntry_Term"2l gZend_Search_Lucene_Search_QueryEntry_Subquery"0k cZend_Search_Lucene_Search_QueryEntry_Phrase"$j KZend_Search_Lucene_Search_Query")i UZend_Search_Lucene_Search_Query_Term"+h YZend_Search_Lucene_Search_Query_Phrase".g _Zend_Search_Lucene_Search_Query_MultiTerm"*f WZend_Search_Lucene_Search_Query_Empty",e [Zend_Search_Lucene_Search_Query_Boolean":d wZend_Search_Lucene_Search_BooleanExpressionRecognizer"c =Zend_Search_Lucene_Proxy"%b MZend_Search_Lucene_PriorityQueue"$a KZend_Search_Lucene_Index_Writer"&` OZend_Search_Lucene_Index_TermInfo""_ GZend_Search_Lucene_Index_Term"+^ YZend_Search_Lucene_Index_SegmentWriter"8] sZend_Search_Lucene_Index_SegmentWriter_StreamWriter":\ wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter"+[ YZend_Search_Lucene_Index_SegmentMerger"6Z oZend_Search_Lucene_Index_SegmentInfoPriorityQueue")Y UZend_Search_Lucene_Index_SegmentInfo"'X QZend_Search_Lucene_Index_FieldInfo".W _Zend_Search_Lucene_Index_DictionaryLoader"!V EZend_Search_Lucene_FSMAction"U 9Zend_Search_Lucene_FSM"T =Zend_Search_Lucene_Field"!S EZend_Search_Lucene_Exception" R CZend_Search_Lucene_Document"%Q MZend_Search_Lucene_Document_Html",P [Zend_Search_Lucene_Analysis_TokenFilter"6O oZend_Search_Lucene_Analysis_TokenFilter_StopWords"7N qZend_Search_Lucene_Analysis_TokenFilter_ShortWords"6M oZend_Search_Lucene_Analysis_TokenFilter_LowerCase"&L OZend_Search_Lucene_Analysis_Token")K UZend_Search_Lucene_Analysis_Analyzer"0J cZend_Search_Lucene_Analysis_Analyzer_Common"8I sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num"5H mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8"8G sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum"IF Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive"5E mZend_Search_Lucene_Analysis_Analyzer_Common_Text"FD Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive"   q  oF"pM'`Ay^9~R2



o
I
 					q	S	4	c<{`J2!uX5yW5pV=z^9a>hF                      
 ?Zend_View_Helper_HtmlList""	 GZend_View_Helper_FormTextarea" ?Zend_View_Helper_FormText"  CZend_View_Helper_FormSubmit"  CZend_View_Helper_FormSelect" AZend_View_Helper_FormReset" AZend_View_Helper_FormRadio"" GZend_View_Helper_FormPassword" ?Zend_View_Helper_FormNote" AZend_View_Helper_FormLabel"  AZend_View_Helper_FormImage"  CZend_View_Helper_FormHidden"~ ?Zend_View_Helper_FormFile"!} EZend_View_Helper_FormElement""| GZend_View_Helper_FormCheckbox" { CZend_View_Helper_FormButton"!z EZend_View_Helper_DeclareVars"y 3Zend_View_Exception"x 1Zend_View_Abstract"w %Zend_Version"v 'Zend_Validate"u AZend_Validate_StringLength"t 3Zend_Validate_Regex"s 9Zend_Validate_NotEmpty"r 9Zend_Validate_LessThan"q -Zend_Validate_Ip"p /Zend_Validate_Int"o 7Zend_Validate_InArray"n 9Zend_Validate_Hostname"m ?Zend_Validate_Hostname_Se"l ?Zend_Validate_Hostname_No"k ?Zend_Validate_Hostname_Li"j ?Zend_Validate_Hostname_Hu"i ?Zend_Validate_Hostname_Fi"h ?Zend_Validate_Hostname_De"g ?Zend_Validate_Hostname_Ch"f ?Zend_Validate_Hostname_At"e /Zend_Validate_Hex"d ?Zend_Validate_GreaterThan"c 3Zend_Validate_Float"b ;Zend_Validate_Exception"a AZend_Validate_EmailAddress"` 5Zend_Validate_Digits"_ 1Zend_Validate_Date"^ 3Zend_Validate_Ccnum"] 7Zend_Validate_Between"\ 3Zend_Validate_Alpha"[ 3Zend_Validate_Alnum"Z 9Zend_Validate_Abstract"Y Zend_Uri"X +Zend_Uri_Mailto"W 'Zend_Uri_Http"V 1Zend_Uri_Exception"U )Zend_Translate"T =Zend_Translate_Exception"S 9Zend_Translate_Adapter"!R EZend_Translate_Adapter_Xliff"Q AZend_Translate_Adapter_Tmx"P ?Zend_Translate_Adapter_Qt"#O IZend_Translate_Adapter_Gettext"N AZend_Translate_Adapter_Csv"!M EZend_Translate_Adapter_Array"L %Zend_Session")K UZend_Session_Validator_HttpUserAgent"$J KZend_Session_Validator_Abstract"I 9Zend_Session_Namespace"H 9Zend_Session_Exception"G 7Zend_Session_Abstract"F 1Zend_Service_Yahoo"$E KZend_Service_Yahoo_WebResultSet"!D EZend_Service_Yahoo_WebResult"!C EZend_Service_Yahoo_ResultSet"B ?Zend_Service_Yahoo_Result"%A MZend_Service_Yahoo_NewsResultSet""@ GZend_Service_Yahoo_NewsResult"&? OZend_Service_Yahoo_LocalResultSet"#> IZend_Service_Yahoo_LocalResult"&= OZend_Service_Yahoo_ImageResultSet"#< IZend_Service_Yahoo_ImageResult"; =Zend_Service_Yahoo_Image": ;Zend_Service_StrikeIron"(9 SZend_Service_StrikeIron_ZipCodeInfo"28 gZend_Service_StrikeIron_USAddressVerification"-7 ]Zend_Service_StrikeIron_SalesUseTaxBasic"&6 OZend_Service_StrikeIron_Exception"&5 OZend_Service_StrikeIron_Decorator"!4 EZend_Service_StrikeIron_Base"3 1Zend_Service_Simpy"$2 KZend_Service_Simpy_WatchlistSet"*1 WZend_Service_Simpy_WatchlistFilterSet"'0 QZend_Service_Simpy_WatchlistFilter"!/ EZend_Service_Simpy_Watchlist". ?Zend_Service_Simpy_TagSet"- 9Zend_Service_Simpy_Tag", AZend_Service_Simpy_NoteSet"+ ;Zend_Service_Simpy_Note"* AZend_Service_Simpy_LinkSet"!) EZend_Service_Simpy_LinkQuery"( ;Zend_Service_Simpy_Link"' 3Zend_Service_Flickr""& GZend_Service_Flickr_ResultSet"% AZend_Service_Flickr_Result"$ ?Zend_Service_Flickr_Image"# 9Zend_Service_Exception"" 9Zend_Service_Delicious"&! OZend_Service_Delicious_SimplePost"$  KZend_Service_Delicious_PostList"  CZend_Service_Delicious_Post"% MZend_Service_Delicious_Exception"  CZend_Service_Audioscrobbler" 3Zend_Service_Amazon"' QZend_Service_Amazon_SimilarProduct"" GZend_Service_Amazon_ResultSet"   o Y*`>" |aA qO.tU?.



h
I
-
					u	U	0	vT3iU/U+T(nE|V.[6 oM$                               y 9Zend_Db_Adapter_Mysqli#%x MZend_Db_Adapter_Mysqli_Exception#w ?Zend_Db_Adapter_Exception#v 3Zend_Db_Adapter_Db2#"u GZend_Db_Adapter_Db2_Exception#t =Zend_Db_Adapter_Abstract#s Zend_Date#r 3Zend_Date_Exception#q 5Zend_Date_DateObject#p -Zend_Date_Cities#!o EZend_Controller_Router_Route#(n SZend_Controller_Router_Route_Static#'m QZend_Controller_Router_Route_Regex#(l SZend_Controller_Router_Route_Module##k IZend_Controller_Router_Rewrite#%j MZend_Controller_Router_Exception#$i KZend_Controller_Router_Abstract#"h GZend_Controller_Response_Http#'g QZend_Controller_Response_Exception#!f EZend_Controller_Response_Cli#&e OZend_Controller_Response_Abstract#!d EZend_Controller_Request_Http#&c OZend_Controller_Request_Exception#%b MZend_Controller_Request_Abstract#(a SZend_Controller_Plugin_ErrorHandler#"` GZend_Controller_Plugin_Broker#$_ KZend_Controller_Plugin_Abstract#^ 7Zend_Controller_Front#] ?Zend_Controller_Exception#(\ SZend_Controller_Dispatcher_Standard#)[ UZend_Controller_Dispatcher_Exception#(Z SZend_Controller_Dispatcher_Abstract#Y 9Zend_Controller_Action#(X SZend_Controller_Action_HelperBroker#/W aZend_Controller_Action_Helper_ViewRenderer#&V OZend_Controller_Action_Helper_Url#-U ]Zend_Controller_Action_Helper_Redirector#1T eZend_Controller_Action_Helper_FlashMessenger#+S YZend_Controller_Action_Helper_Abstract#%R MZend_Controller_Action_Exception#Q 3Zend_Console_Getopt#"P GZend_Console_Getopt_Exception#O #Zend_Config#N +Zend_Config_Xml#M +Zend_Config_Ini#L 7Zend_Config_Exception#K !Zend_Cache#J =Zend_Cache_Frontend_Page#I AZend_Cache_Frontend_Output#!H EZend_Cache_Frontend_Function#G =Zend_Cache_Frontend_File#F ?Zend_Cache_Frontend_Class#E 5Zend_Cache_Exception#D +Zend_Cache_Core#C 1Zend_Cache_Backend#$B KZend_Cache_Backend_ZendPlatform#A ;Zend_Cache_Backend_Test#@ ?Zend_Cache_Backend_Sqlite#!? EZend_Cache_Backend_Memcached#> ;Zend_Cache_Backend_File#= 9Zend_Cache_Backend_APC#< Zend_Auth#; ?Zend_Auth_Storage_Session#$: KZend_Auth_Storage_NonPersistent# 9 CZend_Auth_Storage_Exception#8 -Zend_Auth_Result#7 3Zend_Auth_Exception#6 9Zend_Auth_Adapter_Http#)5 UZend_Auth_Adapter_Http_Resolver_File#.4 _Zend_Auth_Adapter_Http_Resolver_Exception# 3 CZend_Auth_Adapter_Exception#2 =Zend_Auth_Adapter_Digest#1 ?Zend_Auth_Adapter_DbTable#0 Zend_Acl#/ 'Zend_Acl_Role#. 9Zend_Acl_Role_Registry#%- MZend_Acl_Role_Registry_Exception#, /Zend_Acl_Resource#+ 1Zend_Acl_Exception#* /Zend_XmlRpc_Value") =Zend_XmlRpc_Value_Struct"( =Zend_XmlRpc_Value_String"' =Zend_XmlRpc_Value_Scalar"& ?Zend_XmlRpc_Value_Integer" % CZend_XmlRpc_Value_Exception"$ =Zend_XmlRpc_Value_Double"# AZend_XmlRpc_Value_DateTime"!" EZend_XmlRpc_Value_Collection"! ?Zend_XmlRpc_Value_Boolean"  =Zend_XmlRpc_Value_Base64" ;Zend_XmlRpc_Value_Array" 1Zend_XmlRpc_Server" =Zend_XmlRpc_Server_Fault"! EZend_XmlRpc_Server_Exception" =Zend_XmlRpc_Server_Cache" 5Zend_XmlRpc_Response" ?Zend_XmlRpc_Response_Http" 3Zend_XmlRpc_Request" ?Zend_XmlRpc_Request_Stdin" =Zend_XmlRpc_Request_Http" /Zend_XmlRpc_Fault" 7Zend_XmlRpc_Exception" 1Zend_XmlRpc_Client"# IZend_XmlRpc_Client_ServerProxy"+ YZend_XmlRpc_Client_ServerIntrospection"+ YZend_XmlRpc_Client_IntrospectException"% MZend_XmlRpc_Client_HttpException"& OZend_XmlRpc_Client_FaultException"! EZend_XmlRpc_Client_Exception" Zend_View" 5Zend_View_Helper_Url"   q qO/~_F%yX-rN4oO+




p
T
8
"
						n	M	3	}iDjAtI#e:qJ!pKY'tE                              9j uZend_Gdata_Calendar_Extension_SendEventNotifications#+i YZend_Gdata_Calendar_Extension_Selected#+h YZend_Gdata_Calendar_Extension_QuickAdd#'g QZend_Gdata_Calendar_Extension_Link#)f UZend_Gdata_Calendar_Extension_Hidden#(e SZend_Gdata_Calendar_Extension_Color#.d _Zend_Gdata_Calendar_Extension_AccessLevel##c IZend_Gdata_Calendar_EventQuery#"b GZend_Gdata_Calendar_EventFeed##a IZend_Gdata_Calendar_EventEntry#` 1Zend_Gdata_AuthSub#_ )Zend_Gdata_App#^ 3Zend_Gdata_App_Util#,] [Zend_Gdata_App_InvalidArgumentException#!\ EZend_Gdata_App_HttpException#$[ KZend_Gdata_App_FeedSourceParent##Z IZend_Gdata_App_FeedEntryParent#Y 3Zend_Gdata_App_Feed#X =Zend_Gdata_App_Extension#!W EZend_Gdata_App_Extension_Uri#%V MZend_Gdata_App_Extension_Updated##U IZend_Gdata_App_Extension_Title#"T GZend_Gdata_App_Extension_Text#%S MZend_Gdata_App_Extension_Summary#&R OZend_Gdata_App_Extension_Subtitle#$Q KZend_Gdata_App_Extension_Source#$P KZend_Gdata_App_Extension_Rights#'O QZend_Gdata_App_Extension_Published#$N KZend_Gdata_App_Extension_Person#"M GZend_Gdata_App_Extension_Name#"L GZend_Gdata_App_Extension_Logo#"K GZend_Gdata_App_Extension_Link# J CZend_Gdata_App_Extension_Id#"I GZend_Gdata_App_Extension_Icon#'H QZend_Gdata_App_Extension_Generator##G IZend_Gdata_App_Extension_Email#%F MZend_Gdata_App_Extension_Element##E IZend_Gdata_App_Extension_Draft#%D MZend_Gdata_App_Extension_Control#)C UZend_Gdata_App_Extension_Contributor#%B MZend_Gdata_App_Extension_Content#&A OZend_Gdata_App_Extension_Category#$@ KZend_Gdata_App_Extension_Author#? =Zend_Gdata_App_Exception#> 5Zend_Gdata_App_Entry#= 3Zend_Gdata_App_Base#*< WZend_Gdata_App_BadMethodCallException#!; EZend_Gdata_App_AuthException#: #Zend_Filter#9 7Zend_Filter_StripTags#8 9Zend_Filter_StringTrim#7 ?Zend_Filter_StringToUpper#6 ?Zend_Filter_StringToLower#5 5Zend_Filter_RealPath#4 +Zend_Filter_Int#3 /Zend_Filter_Input#2 =Zend_Filter_HtmlEntities#1 7Zend_Filter_Exception#0 +Zend_Filter_Dir#/ 1Zend_Filter_Digits#. 5Zend_Filter_BaseName#- /Zend_Filter_Alpha#, /Zend_Filter_Alnum#+ Zend_Feed#* 'Zend_Feed_Rss#) 3Zend_Feed_Exception#( 3Zend_Feed_Entry_Rss#' 5Zend_Feed_Entry_Atom#& =Zend_Feed_Entry_Abstract#% /Zend_Feed_Element#$ /Zend_Feed_Builder## =Zend_Feed_Builder_Header#$" KZend_Feed_Builder_Header_Itunes# ! CZend_Feed_Builder_Exception#  ;Zend_Feed_Builder_Entry# )Zend_Feed_Atom# 1Zend_Feed_Abstract# )Zend_Exception# !Zend_Debug# Zend_Db# 'Zend_Db_Table# 5Zend_Db_Table_Rowset#" GZend_Db_Table_Rowset_Abstract# /Zend_Db_Table_Row#  CZend_Db_Table_Row_Exception# AZend_Db_Table_Row_Abstract# ;Zend_Db_Table_Exception# 9Zend_Db_Table_Abstract# /Zend_Db_Statement# 7Zend_Db_Statement_Pdo# =Zend_Db_Statement_Oracle#' QZend_Db_Statement_Oracle_Exception# =Zend_Db_Statement_Mysqli#' QZend_Db_Statement_Mysqli_Exception#  CZend_Db_Statement_Exception# 7Zend_Db_Statement_Db2#$
 KZend_Db_Statement_Db2_Exception#	 )Zend_Db_Select# =Zend_Db_Select_Exception# -Zend_Db_Profiler# 9Zend_Db_Profiler_Query# AZend_Db_Profiler_Exception# /Zend_Db_Inflector# %Zend_Db_Expr# /Zend_Db_Exception# AZend_Db_Adapter_Pdo_Sqlite#  ?Zend_Db_Adapter_Pdo_Pgsql# ;Zend_Db_Adapter_Pdo_Oci#~ ?Zend_Db_Adapter_Pdo_Mysql#} ?Zend_Db_Adapter_Pdo_Mssql#!| EZend_Db_Adapter_Pdo_Abstract#{ 9Zend_Db_Adapter_Oracle#%z MZend_Db_Adapter_Oracle_Exception#   m  zU9^5{GsK)tJ!



g
6
				U	%jChM3bA(uV5zc?W7a? qL+                          W 7Zend_Measure_Abstract#V Zend_Mail#U =Zend_Mail_Transport_Smtp#!T EZend_Mail_Transport_Sendmail#"S GZend_Mail_Transport_Exception#!R EZend_Mail_Transport_Abstract#Q /Zend_Mail_Storage#'P QZend_Mail_Storage_Writable_Maildir#O 9Zend_Mail_Storage_Pop3#N 9Zend_Mail_Storage_Mbox#M ?Zend_Mail_Storage_Maildir#L 9Zend_Mail_Storage_Imap#K =Zend_Mail_Storage_Folder#"J GZend_Mail_Storage_Folder_Mbox#%I MZend_Mail_Storage_Folder_Maildir# H CZend_Mail_Storage_Exception#G AZend_Mail_Storage_Abstract#F ;Zend_Mail_Protocol_Smtp#'E QZend_Mail_Protocol_Smtp_Auth_Plain#'D QZend_Mail_Protocol_Smtp_Auth_Login#)C UZend_Mail_Protocol_Smtp_Auth_Crammd5#B ;Zend_Mail_Protocol_Pop3#A ;Zend_Mail_Protocol_Imap#!@ EZend_Mail_Protocol_Exception# ? CZend_Mail_Protocol_Abstract#> )Zend_Mail_Part#= /Zend_Mail_Message#< 3Zend_Mail_Exception#; Zend_Log#: 9Zend_Log_Writer_Stream#9 5Zend_Log_Writer_Null#8 5Zend_Log_Writer_Mock#7 1Zend_Log_Writer_Db#6 =Zend_Log_Writer_Abstract#5 9Zend_Log_Formatter_Xml#4 ?Zend_Log_Formatter_Simple#3 =Zend_Log_Filter_Suppress#2 =Zend_Log_Filter_Priority#1 ;Zend_Log_Filter_Message#0 1Zend_Log_Exception#/ #Zend_Locale#. -Zend_Locale_Math#- =Zend_Locale_Math_PhpMath#, AZend_Locale_Math_Exception#+ 1Zend_Locale_Format#* 7Zend_Locale_Exception#) -Zend_Locale_Data#( #Zend_Loader#' Zend_Json#& 3Zend_Json_Exception#% /Zend_Json_Encoder#$ /Zend_Json_Decoder## 1Zend_Http_Response#" 3Zend_Http_Exception#! 3Zend_Http_CookieJar#  -Zend_Http_Cookie# -Zend_Http_Client# AZend_Http_Client_Exception#" GZend_Http_Client_Adapter_Test#$ KZend_Http_Client_Adapter_Socket## IZend_Http_Client_Adapter_Proxy#' QZend_Http_Client_Adapter_Exception# !Zend_Gdata# ;Zend_Gdata_Spreadsheets#* WZend_Gdata_Spreadsheets_WorksheetFeed#+ YZend_Gdata_Spreadsheets_WorksheetEntry#, [Zend_Gdata_Spreadsheets_SpreadsheetFeed#- ]Zend_Gdata_Spreadsheets_SpreadsheetEntry#& OZend_Gdata_Spreadsheets_ListQuery#% MZend_Gdata_Spreadsheets_ListFeed#& OZend_Gdata_Spreadsheets_ListEntry#/ aZend_Gdata_Spreadsheets_Extension_RowCount#- ]Zend_Gdata_Spreadsheets_Extension_Custom#/ aZend_Gdata_Spreadsheets_Extension_ColCount#+ YZend_Gdata_Spreadsheets_Extension_Cell#* WZend_Gdata_Spreadsheets_DocumentQuery#& OZend_Gdata_Spreadsheets_CellQuery#%
 MZend_Gdata_Spreadsheets_CellFeed#&	 OZend_Gdata_Spreadsheets_CellEntry# -Zend_Gdata_Query# AZend_Gdata_Kind_EventEntry# +Zend_Gdata_Feed# 5Zend_Gdata_Extension# =Zend_Gdata_Extension_Who# AZend_Gdata_Extension_Where# ?Zend_Gdata_Extension_When#$ KZend_Gdata_Extension_Visibility#&  OZend_Gdata_Extension_Transparency#" GZend_Gdata_Extension_Reminder#-~ ]Zend_Gdata_Extension_RecurrenceException#$} KZend_Gdata_Extension_Recurrence#'| QZend_Gdata_Extension_OriginalEvent#0{ cZend_Gdata_Extension_OpenSearchTotalResults#.z _Zend_Gdata_Extension_OpenSearchStartIndex#0y cZend_Gdata_Extension_OpenSearchItemsPerPage#"x GZend_Gdata_Extension_FeedLink#*w WZend_Gdata_Extension_ExtendedProperty#%v MZend_Gdata_Extension_EventStatus##u IZend_Gdata_Extension_EntryLink#"t GZend_Gdata_Extension_Comments#&s OZend_Gdata_Extension_AttendeeType#(r SZend_Gdata_Extension_AttendeeStatus#q -Zend_Gdata_Entry#p 9Zend_Gdata_ClientLogin#o 3Zend_Gdata_Calendar#!n EZend_Gdata_Calendar_ListFeed#"m GZend_Gdata_Calendar_ListEntry#-l ]Zend_Gdata_Calendar_Extension_WebContent#+k YZend_Gdata_Calendar_Extension_Timezone#   n lH$qP5dI(_:uY?(




k
O
.
					|	^	@	aAsI(lF&ybL-r>d'U!rM)                                !E EZend_Pdf_Resource_Image_Tiff# D CZend_Pdf_Resource_Image_Png#!C EZend_Pdf_Resource_Image_Jpeg#B 9Zend_Pdf_Resource_Font#$A KZend_Pdf_Resource_Font_Standard#1@ eZend_Pdf_Resource_Font_Standard_ZapfDingbats#/? aZend_Pdf_Resource_Font_Standard_TimesRoman#0> cZend_Pdf_Resource_Font_Standard_TimesItalic#4= kZend_Pdf_Resource_Font_Standard_TimesBoldItalic#.< _Zend_Pdf_Resource_Font_Standard_TimesBold#+; YZend_Pdf_Resource_Font_Standard_Symbol#5: mZend_Pdf_Resource_Font_Standard_HelveticaOblique#99 uZend_Pdf_Resource_Font_Standard_HelveticaBoldOblique#28 gZend_Pdf_Resource_Font_Standard_HelveticaBold#.7 _Zend_Pdf_Resource_Font_Standard_Helvetica#36 iZend_Pdf_Resource_Font_Standard_CourierOblique#75 qZend_Pdf_Resource_Font_Standard_CourierBoldOblique#04 cZend_Pdf_Resource_Font_Standard_CourierBold#,3 [Zend_Pdf_Resource_Font_Standard_Courier#$2 KZend_Pdf_Resource_Font_OpenType#-1 ]Zend_Pdf_Resource_Font_OpenType_TrueType#0 /Zend_Pdf_PhpArray#/ +Zend_Pdf_Parser#. 9Zend_Pdf_Parser_Stream#- 'Zend_Pdf_Page#, )Zend_Pdf_Image#+ 'Zend_Pdf_Font# * CZend_Pdf_Filter_Compression#$) KZend_Pdf_Filter_Compression_Lzw#&( OZend_Pdf_Filter_Compression_Flate#' =Zend_Pdf_Filter_AsciiHex#& ;Zend_Pdf_Filter_Ascii85#"% GZend_Pdf_FileParserDataSource#)$ UZend_Pdf_FileParserDataSource_String#'# QZend_Pdf_FileParserDataSource_File#" 3Zend_Pdf_FileParser#! ?Zend_Pdf_FileParser_Image#"  GZend_Pdf_FileParser_Image_Png# =Zend_Pdf_FileParser_Font#& OZend_Pdf_FileParser_Font_OpenType#/ aZend_Pdf_FileParser_Font_OpenType_TrueType# 1Zend_Pdf_Exception# ;Zend_Pdf_ElementFactory# -Zend_Pdf_Element# ;Zend_Pdf_Element_String## IZend_Pdf_Element_String_Binary# ;Zend_Pdf_Element_Stream# AZend_Pdf_Element_Reference#% MZend_Pdf_Element_Reference_Table#' QZend_Pdf_Element_Reference_Context# ;Zend_Pdf_Element_Object## IZend_Pdf_Element_Object_Stream# =Zend_Pdf_Element_Numeric# 7Zend_Pdf_Element_Null# 7Zend_Pdf_Element_Name#  CZend_Pdf_Element_Dictionary# =Zend_Pdf_Element_Boolean# 9Zend_Pdf_Element_Array# )Zend_Pdf_Color#
 1Zend_Pdf_Color_Rgb#	 3Zend_Pdf_Color_Html# =Zend_Pdf_Color_GrayScale# 3Zend_Pdf_Color_Cmyk# 'Zend_Pdf_Cmap# AZend_Pdf_Cmap_TrimmedTable#! EZend_Pdf_Cmap_SegmentToDelta# AZend_Pdf_Cmap_ByteEncoding#& OZend_Pdf_Cmap_ByteEncoding_Static# Zend_Mime#  )Zend_Mime_Part# /Zend_Mime_Message#~ 3Zend_Mime_Exception#} -Zend_Mime_Decode#| #Zend_Memory#{ /Zend_Memory_Value#z 3Zend_Memory_Manager#y 7Zend_Memory_Exception#x 7Zend_Memory_Container#"w GZend_Memory_Container_Movable#!v EZend_Memory_Container_Locked#!u EZend_Memory_AccessController#t 3Zend_Measure_Weight#s 3Zend_Measure_Volume#%r MZend_Measure_Viscosity_Kinematic##q IZend_Measure_Viscosity_Dynamic#p 3Zend_Measure_Torque#o =Zend_Measure_Temperature#n 1Zend_Measure_Speed#m 7Zend_Measure_Pressure#l 1Zend_Measure_Power#k 3Zend_Measure_Number#j 9Zend_Measure_Lightness#i 3Zend_Measure_Length#h ?Zend_Measure_Illumination#g 9Zend_Measure_Frequency#f 1Zend_Measure_Force#e =Zend_Measure_Flow_Volume#d 9Zend_Measure_Flow_Mole#c 9Zend_Measure_Flow_Mass#b 9Zend_Measure_Exception#a 3Zend_Measure_Energy#` 5Zend_Measure_Density#_ 5Zend_Measure_Current# ^ CZend_Measure_Cooking_Weight# ] CZend_Measure_Cooking_Volume#\ =Zend_Measure_Capacitance#[ 3Zend_Measure_Binary#Z /Zend_Measure_Area#Y 1Zend_Measure_Angle#X ?Zend_Measure_Acceleration#   Y  jG'fJ'm o;o5



r
S
.				j	;lBb4~J]/a4qCS+V.                                             CZend_Server_Reflection_Node#" GZend_Server_Reflection_Method#$ KZend_Server_Reflection_Function#- ]Zend_Server_Reflection_Function_Abstract#% MZend_Server_Reflection_Exception#! EZend_Server_Reflection_Class# 7Zend_Server_Exception# 5Zend_Server_Abstract# 1Zend_Search_Lucene#$ KZend_Search_Lucene_Storage_File#+ YZend_Search_Lucene_Storage_File_Memory#/ aZend_Search_Lucene_Storage_File_Filesystem#) UZend_Search_Lucene_Storage_Directory#4 kZend_Search_Lucene_Storage_Directory_Filesystem#% MZend_Search_Lucene_Search_Weight#* WZend_Search_Lucene_Search_Weight_Term#, [Zend_Search_Lucene_Search_Weight_Phrase#/ aZend_Search_Lucene_Search_Weight_MultiTerm#+ YZend_Search_Lucene_Search_Weight_Empty#- ]Zend_Search_Lucene_Search_Weight_Boolean#)
 UZend_Search_Lucene_Search_Similarity#1	 eZend_Search_Lucene_Search_Similarity_Default#) UZend_Search_Lucene_Search_QueryToken#3 iZend_Search_Lucene_Search_QueryParserException#1 eZend_Search_Lucene_Search_QueryParserContext#* WZend_Search_Lucene_Search_QueryParser#) UZend_Search_Lucene_Search_QueryLexer#' QZend_Search_Lucene_Search_QueryHit#) UZend_Search_Lucene_Search_QueryEntry#. _Zend_Search_Lucene_Search_QueryEntry_Term#2  gZend_Search_Lucene_Search_QueryEntry_Subquery#0 cZend_Search_Lucene_Search_QueryEntry_Phrase#$~ KZend_Search_Lucene_Search_Query#)} UZend_Search_Lucene_Search_Query_Term#+| YZend_Search_Lucene_Search_Query_Phrase#.{ _Zend_Search_Lucene_Search_Query_MultiTerm#*z WZend_Search_Lucene_Search_Query_Empty#,y [Zend_Search_Lucene_Search_Query_Boolean#:x wZend_Search_Lucene_Search_BooleanExpressionRecognizer#w =Zend_Search_Lucene_Proxy#%v MZend_Search_Lucene_PriorityQueue#$u KZend_Search_Lucene_Index_Writer#&t OZend_Search_Lucene_Index_TermInfo#"s GZend_Search_Lucene_Index_Term#+r YZend_Search_Lucene_Index_SegmentWriter#8q sZend_Search_Lucene_Index_SegmentWriter_StreamWriter#:p wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter#+o YZend_Search_Lucene_Index_SegmentMerger#6n oZend_Search_Lucene_Index_SegmentInfoPriorityQueue#)m UZend_Search_Lucene_Index_SegmentInfo#'l QZend_Search_Lucene_Index_FieldInfo#.k _Zend_Search_Lucene_Index_DictionaryLoader#!j EZend_Search_Lucene_FSMAction#i 9Zend_Search_Lucene_FSM#h =Zend_Search_Lucene_Field#!g EZend_Search_Lucene_Exception# f CZend_Search_Lucene_Document#%e MZend_Search_Lucene_Document_Html#,d [Zend_Search_Lucene_Analysis_TokenFilter#6c oZend_Search_Lucene_Analysis_TokenFilter_StopWords#7b qZend_Search_Lucene_Analysis_TokenFilter_ShortWords#6a oZend_Search_Lucene_Analysis_TokenFilter_LowerCase#&` OZend_Search_Lucene_Analysis_Token#)_ UZend_Search_Lucene_Analysis_Analyzer#0^ cZend_Search_Lucene_Analysis_Analyzer_Common#8] sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num#5\ mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8#8[ sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum#IZ Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive#5Y mZend_Search_Lucene_Analysis_Analyzer_Common_Text#FX Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive#W 7Zend_Search_Exception#V -Zend_Rest_Server#U AZend_Rest_Server_Exception#T 3Zend_Rest_Exception#S -Zend_Rest_Client#R ;Zend_Rest_Client_Result#Q AZend_Rest_Client_Exception#P 'Zend_Registry#O Zend_Pdf#!N EZend_Pdf_UpdateInfoContainer#M -Zend_Pdf_Trailer#L ;Zend_Pdf_Trailer_Keeper#K AZend_Pdf_Trailer_Generator#J )Zend_Pdf_Style#I 7Zend_Pdf_StringParser#H /Zend_Pdf_Resource##G IZend_Pdf_Resource_ImageFactory#F ;Zend_Pdf_Resource_Image#   p dF)g=gCfD!wW4



u
M
2
				R	&	mC`E'Z7fO4dI,	oM+	bD*~iN2                                     ! EZend_View_Helper_DeclareVars# 3Zend_View_Exception# 1Zend_View_Abstract# %Zend_Version#
 'Zend_Validate#	 AZend_Validate_StringLength# 3Zend_Validate_Regex# 9Zend_Validate_NotEmpty# 9Zend_Validate_LessThan# -Zend_Validate_Ip# /Zend_Validate_Int# 7Zend_Validate_InArray# 9Zend_Validate_Hostname# ?Zend_Validate_Hostname_Se#  ?Zend_Validate_Hostname_No# ?Zend_Validate_Hostname_Li#~ ?Zend_Validate_Hostname_Hu#} ?Zend_Validate_Hostname_Fi#| ?Zend_Validate_Hostname_De#{ ?Zend_Validate_Hostname_Ch#z ?Zend_Validate_Hostname_At#y /Zend_Validate_Hex#x ?Zend_Validate_GreaterThan#w 3Zend_Validate_Float#v ;Zend_Validate_Exception#u AZend_Validate_EmailAddress#t 5Zend_Validate_Digits#s 1Zend_Validate_Date#r 3Zend_Validate_Ccnum#q 7Zend_Validate_Between#p 3Zend_Validate_Alpha#o 3Zend_Validate_Alnum#n 9Zend_Validate_Abstract#m Zend_Uri#l +Zend_Uri_Mailto#k 'Zend_Uri_Http#j 1Zend_Uri_Exception#i )Zend_Translate#h =Zend_Translate_Exception#g 9Zend_Translate_Adapter#!f EZend_Translate_Adapter_Xliff#e AZend_Translate_Adapter_Tmx#d ?Zend_Translate_Adapter_Qt##c IZend_Translate_Adapter_Gettext#b AZend_Translate_Adapter_Csv#!a EZend_Translate_Adapter_Array#` %Zend_Session#)_ UZend_Session_Validator_HttpUserAgent#$^ KZend_Session_Validator_Abstract#] 9Zend_Session_Namespace#\ 9Zend_Session_Exception#[ 7Zend_Session_Abstract#Z 1Zend_Service_Yahoo#$Y KZend_Service_Yahoo_WebResultSet#!X EZend_Service_Yahoo_WebResult#!W EZend_Service_Yahoo_ResultSet#V ?Zend_Service_Yahoo_Result#%U MZend_Service_Yahoo_NewsResultSet#"T GZend_Service_Yahoo_NewsResult#&S OZend_Service_Yahoo_LocalResultSet##R IZend_Service_Yahoo_LocalResult#&Q OZend_Service_Yahoo_ImageResultSet##P IZend_Service_Yahoo_ImageResult#O =Zend_Service_Yahoo_Image#N ;Zend_Service_StrikeIron#(M SZend_Service_StrikeIron_ZipCodeInfo#2L gZend_Service_StrikeIron_USAddressVerification#-K ]Zend_Service_StrikeIron_SalesUseTaxBasic#&J OZend_Service_StrikeIron_Exception#&I OZend_Service_StrikeIron_Decorator#!H EZend_Service_StrikeIron_Base#G 1Zend_Service_Simpy#$F KZend_Service_Simpy_WatchlistSet#*E WZend_Service_Simpy_WatchlistFilterSet#'D QZend_Service_Simpy_WatchlistFilter#!C EZend_Service_Simpy_Watchlist#B ?Zend_Service_Simpy_TagSet#A 9Zend_Service_Simpy_Tag#@ AZend_Service_Simpy_NoteSet#? ;Zend_Service_Simpy_Note#> AZend_Service_Simpy_LinkSet#!= EZend_Service_Simpy_LinkQuery#< ;Zend_Service_Simpy_Link#; 3Zend_Service_Flickr#": GZend_Service_Flickr_ResultSet#9 AZend_Service_Flickr_Result#8 ?Zend_Service_Flickr_Image#7 9Zend_Service_Exception#6 9Zend_Service_Delicious#&5 OZend_Service_Delicious_SimplePost#$4 KZend_Service_Delicious_PostList# 3 CZend_Service_Delicious_Post#%2 MZend_Service_Delicious_Exception# 1 CZend_Service_Audioscrobbler#0 3Zend_Service_Amazon#'/ QZend_Service_Amazon_SimilarProduct#". GZend_Service_Amazon_ResultSet#- ?Zend_Service_Amazon_Query#!, EZend_Service_Amazon_OfferSet#+ ?Zend_Service_Amazon_Offer#&* OZend_Service_Amazon_ListmaniaList#) =Zend_Service_Amazon_Item#( ?Zend_Service_Amazon_Image#(' SZend_Service_Amazon_EditorialReview#'& QZend_Service_Amazon_CustomerReview#$% KZend_Service_Amazon_Accessories#$ 5Zend_Service_Akismet## 7Zend_Service_Abstract#" 9Zend_Server_Reflection#'! QZend_Server_Reflection_ReturnValue#%  MZend_Server_Reflection_Prototype#% MZend_Server_Reflection_Parameter#   o  oK(wS/qG~`F%bA&



{
Z
6
					|	b	9		Z-kY:pX;|^F.KrF_3
lA              $} KZend_Controller_Router_Abstract$"| GZend_Controller_Response_Http$'{ QZend_Controller_Response_Exception$!z EZend_Controller_Response_Cli$&y OZend_Controller_Response_Abstract$!x EZend_Controller_Request_Http$&w OZend_Controller_Request_Exception$%v MZend_Controller_Request_Abstract$(u SZend_Controller_Plugin_ErrorHandler$"t GZend_Controller_Plugin_Broker$$s KZend_Controller_Plugin_Abstract$r 7Zend_Controller_Front$q ?Zend_Controller_Exception$(p SZend_Controller_Dispatcher_Standard$)o UZend_Controller_Dispatcher_Exception$(n SZend_Controller_Dispatcher_Abstract$m 9Zend_Controller_Action$(l SZend_Controller_Action_HelperBroker$/k aZend_Controller_Action_Helper_ViewRenderer$&j OZend_Controller_Action_Helper_Url$-i ]Zend_Controller_Action_Helper_Redirector$1h eZend_Controller_Action_Helper_FlashMessenger$+g YZend_Controller_Action_Helper_Abstract$%f MZend_Controller_Action_Exception$e 3Zend_Console_Getopt$"d GZend_Console_Getopt_Exception$c #Zend_Config$b +Zend_Config_Xml$a +Zend_Config_Ini$` 7Zend_Config_Exception$_ !Zend_Cache$^ =Zend_Cache_Frontend_Page$] AZend_Cache_Frontend_Output$!\ EZend_Cache_Frontend_Function$[ =Zend_Cache_Frontend_File$Z ?Zend_Cache_Frontend_Class$Y 5Zend_Cache_Exception$X +Zend_Cache_Core$W 1Zend_Cache_Backend$$V KZend_Cache_Backend_ZendPlatform$U ;Zend_Cache_Backend_Test$T ?Zend_Cache_Backend_Sqlite$!S EZend_Cache_Backend_Memcached$R ;Zend_Cache_Backend_File$Q 9Zend_Cache_Backend_APC$P Zend_Auth$O ?Zend_Auth_Storage_Session$$N KZend_Auth_Storage_NonPersistent$ M CZend_Auth_Storage_Exception$L -Zend_Auth_Result$K 3Zend_Auth_Exception$J 9Zend_Auth_Adapter_Http$)I UZend_Auth_Adapter_Http_Resolver_File$.H _Zend_Auth_Adapter_Http_Resolver_Exception$ G CZend_Auth_Adapter_Exception$F =Zend_Auth_Adapter_Digest$E ?Zend_Auth_Adapter_DbTable$D Zend_Acl$C 'Zend_Acl_Role$B 9Zend_Acl_Role_Registry$%A MZend_Acl_Role_Registry_Exception$@ /Zend_Acl_Resource$? 1Zend_Acl_Exception$> /Zend_XmlRpc_Value#= =Zend_XmlRpc_Value_Struct#< =Zend_XmlRpc_Value_String#; =Zend_XmlRpc_Value_Scalar#: ?Zend_XmlRpc_Value_Integer# 9 CZend_XmlRpc_Value_Exception#8 =Zend_XmlRpc_Value_Double#7 AZend_XmlRpc_Value_DateTime#!6 EZend_XmlRpc_Value_Collection#5 ?Zend_XmlRpc_Value_Boolean#4 =Zend_XmlRpc_Value_Base64#3 ;Zend_XmlRpc_Value_Array#2 1Zend_XmlRpc_Server#1 =Zend_XmlRpc_Server_Fault#!0 EZend_XmlRpc_Server_Exception#/ =Zend_XmlRpc_Server_Cache#. 5Zend_XmlRpc_Response#- ?Zend_XmlRpc_Response_Http#, 3Zend_XmlRpc_Request#+ ?Zend_XmlRpc_Request_Stdin#* =Zend_XmlRpc_Request_Http#) /Zend_XmlRpc_Fault#( 7Zend_XmlRpc_Exception#' 1Zend_XmlRpc_Client##& IZend_XmlRpc_Client_ServerProxy#+% YZend_XmlRpc_Client_ServerIntrospection#+$ YZend_XmlRpc_Client_IntrospectException#%# MZend_XmlRpc_Client_HttpException#&" OZend_XmlRpc_Client_FaultException#!! EZend_XmlRpc_Client_Exception#  Zend_View# 5Zend_View_Helper_Url# ?Zend_View_Helper_HtmlList#" GZend_View_Helper_FormTextarea# ?Zend_View_Helper_FormText#  CZend_View_Helper_FormSubmit#  CZend_View_Helper_FormSelect# AZend_View_Helper_FormReset# AZend_View_Helper_FormRadio#" GZend_View_Helper_FormPassword# ?Zend_View_Helper_FormNote# AZend_View_Helper_FormLabel# AZend_View_Helper_FormImage#  CZend_View_Helper_FormHidden# ?Zend_View_Helper_FormFile#! EZend_View_Helper_FormElement#" GZend_View_Helper_FormCheckbox#  CZend_View_Helper_FormButton#   t  Y-]AjH&oP7jI





c
?
%							w	`	@	~aE)}_>$nZ5[2e:~V+b;a< q 3Zend_Gdata_App_Util$,p [Zend_Gdata_App_InvalidArgumentException$!o EZend_Gdata_App_HttpException$$n KZend_Gdata_App_FeedSourceParent$#m IZend_Gdata_App_FeedEntryParent$l 3Zend_Gdata_App_Feed$k =Zend_Gdata_App_Extension$!j EZend_Gdata_App_Extension_Uri$%i MZend_Gdata_App_Extension_Updated$#h IZend_Gdata_App_Extension_Title$"g GZend_Gdata_App_Extension_Text$%f MZend_Gdata_App_Extension_Summary$&e OZend_Gdata_App_Extension_Subtitle$$d KZend_Gdata_App_Extension_Source$$c KZend_Gdata_App_Extension_Rights$'b QZend_Gdata_App_Extension_Published$$a KZend_Gdata_App_Extension_Person$"` GZend_Gdata_App_Extension_Name$"_ GZend_Gdata_App_Extension_Logo$"^ GZend_Gdata_App_Extension_Link$ ] CZend_Gdata_App_Extension_Id$"\ GZend_Gdata_App_Extension_Icon$'[ QZend_Gdata_App_Extension_Generator$#Z IZend_Gdata_App_Extension_Email$%Y MZend_Gdata_App_Extension_Element$#X IZend_Gdata_App_Extension_Draft$%W MZend_Gdata_App_Extension_Control$)V UZend_Gdata_App_Extension_Contributor$%U MZend_Gdata_App_Extension_Content$&T OZend_Gdata_App_Extension_Category$$S KZend_Gdata_App_Extension_Author$R =Zend_Gdata_App_Exception$Q 5Zend_Gdata_App_Entry$P 3Zend_Gdata_App_Base$*O WZend_Gdata_App_BadMethodCallException$!N EZend_Gdata_App_AuthException$M #Zend_Filter$L 7Zend_Filter_StripTags$K 9Zend_Filter_StringTrim$J ?Zend_Filter_StringToUpper$I ?Zend_Filter_StringToLower$H 5Zend_Filter_RealPath$G +Zend_Filter_Int$F /Zend_Filter_Input$E =Zend_Filter_HtmlEntities$D 7Zend_Filter_Exception$C +Zend_Filter_Dir$B 1Zend_Filter_Digits$A 5Zend_Filter_BaseName$@ /Zend_Filter_Alpha$? /Zend_Filter_Alnum$> Zend_Feed$= 'Zend_Feed_Rss$< 3Zend_Feed_Exception$; 3Zend_Feed_Entry_Rss$: 5Zend_Feed_Entry_Atom$9 =Zend_Feed_Entry_Abstract$8 /Zend_Feed_Element$7 /Zend_Feed_Builder$6 =Zend_Feed_Builder_Header$$5 KZend_Feed_Builder_Header_Itunes$ 4 CZend_Feed_Builder_Exception$3 ;Zend_Feed_Builder_Entry$2 )Zend_Feed_Atom$1 1Zend_Feed_Abstract$0 )Zend_Exception$/ !Zend_Debug$. Zend_Db$- 'Zend_Db_Table$, 5Zend_Db_Table_Rowset$"+ GZend_Db_Table_Rowset_Abstract$* /Zend_Db_Table_Row$ ) CZend_Db_Table_Row_Exception$( AZend_Db_Table_Row_Abstract$' ;Zend_Db_Table_Exception$& 9Zend_Db_Table_Abstract$% /Zend_Db_Statement$$ 7Zend_Db_Statement_Pdo$# =Zend_Db_Statement_Oracle$'" QZend_Db_Statement_Oracle_Exception$! =Zend_Db_Statement_Mysqli$'  QZend_Db_Statement_Mysqli_Exception$  CZend_Db_Statement_Exception$ 7Zend_Db_Statement_Db2$$ KZend_Db_Statement_Db2_Exception$ )Zend_Db_Select$ =Zend_Db_Select_Exception$ -Zend_Db_Profiler$ 9Zend_Db_Profiler_Query$ AZend_Db_Profiler_Exception$ %Zend_Db_Expr$ /Zend_Db_Exception$ AZend_Db_Adapter_Pdo_Sqlite$ ?Zend_Db_Adapter_Pdo_Pgsql$ ;Zend_Db_Adapter_Pdo_Oci$ ?Zend_Db_Adapter_Pdo_Mysql$ ?Zend_Db_Adapter_Pdo_Mssql$! EZend_Db_Adapter_Pdo_Abstract$ 9Zend_Db_Adapter_Oracle$% MZend_Db_Adapter_Oracle_Exception$ 9Zend_Db_Adapter_Mysqli$% MZend_Db_Adapter_Mysqli_Exception$ ?Zend_Db_Adapter_Exception$
 3Zend_Db_Adapter_Db2$"	 GZend_Db_Adapter_Db2_Exception$ =Zend_Db_Adapter_Abstract$ Zend_Date$ 3Zend_Date_Exception$ 5Zend_Date_DateObject$ -Zend_Date_Cities$! EZend_Controller_Router_Route$( SZend_Controller_Router_Route_Static$' QZend_Controller_Router_Route_Regex$(  SZend_Controller_Router_Route_Module$# IZend_Controller_Router_Rewrite$%~ MZend_Controller_Router_Exception$   j  Z(uF	^B#
g>P%



|
T
2
					}	S	*	 p?^.sL$qV<"kJ1~_>#lH#`@                               [ CZend_Mail_Storage_Exception$Z AZend_Mail_Storage_Abstract$Y ;Zend_Mail_Protocol_Smtp$'X QZend_Mail_Protocol_Smtp_Auth_Plain$'W QZend_Mail_Protocol_Smtp_Auth_Login$)V UZend_Mail_Protocol_Smtp_Auth_Crammd5$U ;Zend_Mail_Protocol_Pop3$T ;Zend_Mail_Protocol_Imap$!S EZend_Mail_Protocol_Exception$ R CZend_Mail_Protocol_Abstract$Q )Zend_Mail_Part$P /Zend_Mail_Message$O 3Zend_Mail_Exception$N Zend_Log$M 9Zend_Log_Writer_Stream$L 5Zend_Log_Writer_Null$K 5Zend_Log_Writer_Mock$J 1Zend_Log_Writer_Db$I =Zend_Log_Writer_Abstract$H 9Zend_Log_Formatter_Xml$G ?Zend_Log_Formatter_Simple$F =Zend_Log_Filter_Suppress$E =Zend_Log_Filter_Priority$D ;Zend_Log_Filter_Message$C 1Zend_Log_Exception$B #Zend_Locale$A -Zend_Locale_Math$@ =Zend_Locale_Math_PhpMath$? AZend_Locale_Math_Exception$> 1Zend_Locale_Format$= 7Zend_Locale_Exception$< -Zend_Locale_Data$; #Zend_Loader$: Zend_Json$9 3Zend_Json_Exception$8 /Zend_Json_Encoder$7 /Zend_Json_Decoder$6 1Zend_Http_Response$5 3Zend_Http_Exception$4 3Zend_Http_CookieJar$3 -Zend_Http_Cookie$2 -Zend_Http_Client$1 AZend_Http_Client_Exception$"0 GZend_Http_Client_Adapter_Test$$/ KZend_Http_Client_Adapter_Socket$#. IZend_Http_Client_Adapter_Proxy$'- QZend_Http_Client_Adapter_Exception$, !Zend_Gdata$+ ;Zend_Gdata_Spreadsheets$** WZend_Gdata_Spreadsheets_WorksheetFeed$+) YZend_Gdata_Spreadsheets_WorksheetEntry$,( [Zend_Gdata_Spreadsheets_SpreadsheetFeed$-' ]Zend_Gdata_Spreadsheets_SpreadsheetEntry$&& OZend_Gdata_Spreadsheets_ListQuery$%% MZend_Gdata_Spreadsheets_ListFeed$&$ OZend_Gdata_Spreadsheets_ListEntry$/# aZend_Gdata_Spreadsheets_Extension_RowCount$-" ]Zend_Gdata_Spreadsheets_Extension_Custom$/! aZend_Gdata_Spreadsheets_Extension_ColCount$+  YZend_Gdata_Spreadsheets_Extension_Cell$* WZend_Gdata_Spreadsheets_DocumentQuery$& OZend_Gdata_Spreadsheets_CellQuery$% MZend_Gdata_Spreadsheets_CellFeed$& OZend_Gdata_Spreadsheets_CellEntry$ -Zend_Gdata_Query$ AZend_Gdata_Kind_EventEntry$ +Zend_Gdata_Feed$ 5Zend_Gdata_Extension$ =Zend_Gdata_Extension_Who$ AZend_Gdata_Extension_Where$ ?Zend_Gdata_Extension_When$$ KZend_Gdata_Extension_Visibility$& OZend_Gdata_Extension_Transparency$" GZend_Gdata_Extension_Reminder$- ]Zend_Gdata_Extension_RecurrenceException$$ KZend_Gdata_Extension_Recurrence$' QZend_Gdata_Extension_OriginalEvent$0 cZend_Gdata_Extension_OpenSearchTotalResults$. _Zend_Gdata_Extension_OpenSearchStartIndex$0 cZend_Gdata_Extension_OpenSearchItemsPerPage$" GZend_Gdata_Extension_FeedLink$*
 WZend_Gdata_Extension_ExtendedProperty$%	 MZend_Gdata_Extension_EventStatus$# IZend_Gdata_Extension_EntryLink$" GZend_Gdata_Extension_Comments$& OZend_Gdata_Extension_AttendeeType$( SZend_Gdata_Extension_AttendeeStatus$ -Zend_Gdata_Entry$ 9Zend_Gdata_ClientLogin$ 3Zend_Gdata_Calendar$! EZend_Gdata_Calendar_ListFeed$"  GZend_Gdata_Calendar_ListEntry$- ]Zend_Gdata_Calendar_Extension_WebContent$+~ YZend_Gdata_Calendar_Extension_Timezone$9} uZend_Gdata_Calendar_Extension_SendEventNotifications$+| YZend_Gdata_Calendar_Extension_Selected$+{ YZend_Gdata_Calendar_Extension_QuickAdd$'z QZend_Gdata_Calendar_Extension_Link$)y UZend_Gdata_Calendar_Extension_Hidden$(x SZend_Gdata_Calendar_Extension_Color$.w _Zend_Gdata_Calendar_Extension_AccessLevel$#v IZend_Gdata_Calendar_EventQuery$"u GZend_Gdata_Calendar_EventFeed$#t IZend_Gdata_Calendar_EventEntry$s 1Zend_Gdata_AuthSub$r )Zend_Gdata_App$   r qO0\;)wS/|[@!oT3




j
E

						d	J	3	!vZ9iK*lL%X.~Q+t^G1W#I                                9M uZend_Pdf_Resource_Font_Standard_HelveticaBoldOblique$2L gZend_Pdf_Resource_Font_Standard_HelveticaBold$.K _Zend_Pdf_Resource_Font_Standard_Helvetica$3J iZend_Pdf_Resource_Font_Standard_CourierOblique$7I qZend_Pdf_Resource_Font_Standard_CourierBoldOblique$0H cZend_Pdf_Resource_Font_Standard_CourierBold$,G [Zend_Pdf_Resource_Font_Standard_Courier$$F KZend_Pdf_Resource_Font_OpenType$-E ]Zend_Pdf_Resource_Font_OpenType_TrueType$D /Zend_Pdf_PhpArray$C +Zend_Pdf_Parser$B 9Zend_Pdf_Parser_Stream$A 'Zend_Pdf_Page$@ )Zend_Pdf_Image$? 'Zend_Pdf_Font$ > CZend_Pdf_Filter_Compression$$= KZend_Pdf_Filter_Compression_Lzw$&< OZend_Pdf_Filter_Compression_Flate$; =Zend_Pdf_Filter_AsciiHex$: ;Zend_Pdf_Filter_Ascii85$"9 GZend_Pdf_FileParserDataSource$)8 UZend_Pdf_FileParserDataSource_String$'7 QZend_Pdf_FileParserDataSource_File$6 3Zend_Pdf_FileParser$5 ?Zend_Pdf_FileParser_Image$"4 GZend_Pdf_FileParser_Image_Png$3 =Zend_Pdf_FileParser_Font$&2 OZend_Pdf_FileParser_Font_OpenType$/1 aZend_Pdf_FileParser_Font_OpenType_TrueType$0 1Zend_Pdf_Exception$/ ;Zend_Pdf_ElementFactory$". GZend_Pdf_ElementFactory_Proxy$- -Zend_Pdf_Element$, ;Zend_Pdf_Element_String$#+ IZend_Pdf_Element_String_Binary$* ;Zend_Pdf_Element_Stream$) AZend_Pdf_Element_Reference$%( MZend_Pdf_Element_Reference_Table$'' QZend_Pdf_Element_Reference_Context$& ;Zend_Pdf_Element_Object$#% IZend_Pdf_Element_Object_Stream$$ =Zend_Pdf_Element_Numeric$# 7Zend_Pdf_Element_Null$" 7Zend_Pdf_Element_Name$ ! CZend_Pdf_Element_Dictionary$  =Zend_Pdf_Element_Boolean$ 9Zend_Pdf_Element_Array$ )Zend_Pdf_Color$ 1Zend_Pdf_Color_Rgb$ 3Zend_Pdf_Color_Html$ =Zend_Pdf_Color_GrayScale$ 3Zend_Pdf_Color_Cmyk$ 'Zend_Pdf_Cmap$ AZend_Pdf_Cmap_TrimmedTable$! EZend_Pdf_Cmap_SegmentToDelta$ AZend_Pdf_Cmap_ByteEncoding$& OZend_Pdf_Cmap_ByteEncoding_Static$ Zend_Mime$ )Zend_Mime_Part$ /Zend_Mime_Message$ 3Zend_Mime_Exception$ -Zend_Mime_Decode$ #Zend_Memory$ /Zend_Memory_Value$ 3Zend_Memory_Manager$ 7Zend_Memory_Exception$ 7Zend_Memory_Container$"
 GZend_Memory_Container_Movable$!	 EZend_Memory_Container_Locked$! EZend_Memory_AccessController$ 3Zend_Measure_Weight$ 3Zend_Measure_Volume$% MZend_Measure_Viscosity_Kinematic$# IZend_Measure_Viscosity_Dynamic$ 3Zend_Measure_Torque$ =Zend_Measure_Temperature$ 1Zend_Measure_Speed$  7Zend_Measure_Pressure$ 1Zend_Measure_Power$~ 3Zend_Measure_Number$} 9Zend_Measure_Lightness$| 3Zend_Measure_Length${ ?Zend_Measure_Illumination$z 9Zend_Measure_Frequency$y 1Zend_Measure_Force$x =Zend_Measure_Flow_Volume$w 9Zend_Measure_Flow_Mole$v 9Zend_Measure_Flow_Mass$u 9Zend_Measure_Exception$t 3Zend_Measure_Energy$s 5Zend_Measure_Density$r 5Zend_Measure_Current$ q CZend_Measure_Cooking_Weight$ p CZend_Measure_Cooking_Volume$o =Zend_Measure_Capacitance$n 3Zend_Measure_Binary$m /Zend_Measure_Area$l 1Zend_Measure_Angle$k ?Zend_Measure_Acceleration$j 7Zend_Measure_Abstract$i Zend_Mail$h =Zend_Mail_Transport_Smtp$!g EZend_Mail_Transport_Sendmail$"f GZend_Mail_Transport_Exception$!e EZend_Mail_Transport_Abstract$d /Zend_Mail_Storage$'c QZend_Mail_Storage_Writable_Maildir$b 9Zend_Mail_Storage_Pop3$a 9Zend_Mail_Storage_Mbox$` ?Zend_Mail_Storage_Maildir$_ 9Zend_Mail_Storage_Imap$^ =Zend_Mail_Storage_Folder$"] GZend_Mail_Storage_Folder_Mbox$%\ MZend_Mail_Storage_Folder_Maildir$   X  f.jK&|^G$|\C'J



L
				L	pO0GoIo?['g:s>~N          4% kZend_Search_Lucene_Storage_Directory_Filesystem$%$ MZend_Search_Lucene_Search_Weight$*# WZend_Search_Lucene_Search_Weight_Term$," [Zend_Search_Lucene_Search_Weight_Phrase$/! aZend_Search_Lucene_Search_Weight_MultiTerm$+  YZend_Search_Lucene_Search_Weight_Empty$- ]Zend_Search_Lucene_Search_Weight_Boolean$) UZend_Search_Lucene_Search_Similarity$1 eZend_Search_Lucene_Search_Similarity_Default$) UZend_Search_Lucene_Search_QueryToken$3 iZend_Search_Lucene_Search_QueryParserException$1 eZend_Search_Lucene_Search_QueryParserContext$* WZend_Search_Lucene_Search_QueryParser$) UZend_Search_Lucene_Search_QueryLexer$' QZend_Search_Lucene_Search_QueryHit$) UZend_Search_Lucene_Search_QueryEntry$. _Zend_Search_Lucene_Search_QueryEntry_Term$2 gZend_Search_Lucene_Search_QueryEntry_Subquery$0 cZend_Search_Lucene_Search_QueryEntry_Phrase$$ KZend_Search_Lucene_Search_Query$) UZend_Search_Lucene_Search_Query_Term$+ YZend_Search_Lucene_Search_Query_Phrase$. _Zend_Search_Lucene_Search_Query_MultiTerm$* WZend_Search_Lucene_Search_Query_Empty$, [Zend_Search_Lucene_Search_Query_Boolean$: wZend_Search_Lucene_Search_BooleanExpressionRecognizer$ =Zend_Search_Lucene_Proxy$%
 MZend_Search_Lucene_PriorityQueue$$	 KZend_Search_Lucene_Index_Writer$& OZend_Search_Lucene_Index_TermInfo$" GZend_Search_Lucene_Index_Term$+ YZend_Search_Lucene_Index_SegmentWriter$8 sZend_Search_Lucene_Index_SegmentWriter_StreamWriter$: wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter$+ YZend_Search_Lucene_Index_SegmentMerger$6 oZend_Search_Lucene_Index_SegmentInfoPriorityQueue$) UZend_Search_Lucene_Index_SegmentInfo$'  QZend_Search_Lucene_Index_FieldInfo$. _Zend_Search_Lucene_Index_DictionaryLoader$!~ EZend_Search_Lucene_FSMAction$} 9Zend_Search_Lucene_FSM$| =Zend_Search_Lucene_Field$!{ EZend_Search_Lucene_Exception$ z CZend_Search_Lucene_Document$%y MZend_Search_Lucene_Document_Html$,x [Zend_Search_Lucene_Analysis_TokenFilter$6w oZend_Search_Lucene_Analysis_TokenFilter_StopWords$7v qZend_Search_Lucene_Analysis_TokenFilter_ShortWords$6u oZend_Search_Lucene_Analysis_TokenFilter_LowerCase$&t OZend_Search_Lucene_Analysis_Token$)s UZend_Search_Lucene_Analysis_Analyzer$0r cZend_Search_Lucene_Analysis_Analyzer_Common$8q sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num$5p mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8$8o sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum$In Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive$5m mZend_Search_Lucene_Analysis_Analyzer_Common_Text$Fl Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive$k 7Zend_Search_Exception$j -Zend_Rest_Server$i AZend_Rest_Server_Exception$h 3Zend_Rest_Exception$g -Zend_Rest_Client$f ;Zend_Rest_Client_Result$e AZend_Rest_Client_Exception$d 'Zend_Registry$c Zend_Pdf$!b EZend_Pdf_UpdateInfoContainer$a -Zend_Pdf_Trailer$` ;Zend_Pdf_Trailer_Keeper$_ AZend_Pdf_Trailer_Generator$^ )Zend_Pdf_Style$] 7Zend_Pdf_StringParser$\ /Zend_Pdf_Resource$#[ IZend_Pdf_Resource_ImageFactory$Z ;Zend_Pdf_Resource_Image$!Y EZend_Pdf_Resource_Image_Tiff$ X CZend_Pdf_Resource_Image_Png$!W EZend_Pdf_Resource_Image_Jpeg$V 9Zend_Pdf_Resource_Font$$U KZend_Pdf_Resource_Font_Standard$1T eZend_Pdf_Resource_Font_Standard_ZapfDingbats$/S aZend_Pdf_Resource_Font_Standard_TimesRoman$0R cZend_Pdf_Resource_Font_Standard_TimesItalic$4Q kZend_Pdf_Resource_Font_Standard_TimesBoldItalic$.P _Zend_Pdf_Resource_Font_Standard_TimesBold$+O YZend_Pdf_Resource_Font_Standard_Symbol$5N mZend_Pdf_Resource_Font_Standard_HelveticaOblique$   m  qI.tL&fH+i?iE




h
F
#					y	Y	6	wO4T(oEbG)
\9hQ6 fK.qO-         ?Zend_Validate_Hostname_Hu$ ?Zend_Validate_Hostname_Fi$ ?Zend_Validate_Hostname_De$ ?Zend_Validate_Hostname_Ch$ ?Zend_Validate_Hostname_At$ /Zend_Validate_Hex$ ?Zend_Validate_GreaterThan$ 3Zend_Validate_Float$
 ;Zend_Validate_Exception$	 AZend_Validate_EmailAddress$ 5Zend_Validate_Digits$ 1Zend_Validate_Date$ 3Zend_Validate_Ccnum$ 7Zend_Validate_Between$ 3Zend_Validate_Alpha$ 3Zend_Validate_Alnum$ 9Zend_Validate_Abstract$ Zend_Uri$  +Zend_Uri_Mailto$ 'Zend_Uri_Http$~ 1Zend_Uri_Exception$} )Zend_Translate$| =Zend_Translate_Exception${ 9Zend_Translate_Adapter$!z EZend_Translate_Adapter_Xliff$y AZend_Translate_Adapter_Tmx$x ?Zend_Translate_Adapter_Qt$#w IZend_Translate_Adapter_Gettext$v AZend_Translate_Adapter_Csv$!u EZend_Translate_Adapter_Array$t %Zend_Session$)s UZend_Session_Validator_HttpUserAgent$$r KZend_Session_Validator_Abstract$q 9Zend_Session_Namespace$p 9Zend_Session_Exception$o 7Zend_Session_Abstract$n 1Zend_Service_Yahoo$$m KZend_Service_Yahoo_WebResultSet$!l EZend_Service_Yahoo_WebResult$!k EZend_Service_Yahoo_ResultSet$j ?Zend_Service_Yahoo_Result$%i MZend_Service_Yahoo_NewsResultSet$"h GZend_Service_Yahoo_NewsResult$&g OZend_Service_Yahoo_LocalResultSet$#f IZend_Service_Yahoo_LocalResult$&e OZend_Service_Yahoo_ImageResultSet$#d IZend_Service_Yahoo_ImageResult$c =Zend_Service_Yahoo_Image$b ;Zend_Service_StrikeIron$(a SZend_Service_StrikeIron_ZipCodeInfo$2` gZend_Service_StrikeIron_USAddressVerification$-_ ]Zend_Service_StrikeIron_SalesUseTaxBasic$&^ OZend_Service_StrikeIron_Exception$&] OZend_Service_StrikeIron_Decorator$!\ EZend_Service_StrikeIron_Base$[ 1Zend_Service_Simpy$$Z KZend_Service_Simpy_WatchlistSet$*Y WZend_Service_Simpy_WatchlistFilterSet$'X QZend_Service_Simpy_WatchlistFilter$!W EZend_Service_Simpy_Watchlist$V ?Zend_Service_Simpy_TagSet$U 9Zend_Service_Simpy_Tag$T AZend_Service_Simpy_NoteSet$S ;Zend_Service_Simpy_Note$R AZend_Service_Simpy_LinkSet$!Q EZend_Service_Simpy_LinkQuery$P ;Zend_Service_Simpy_Link$O 3Zend_Service_Flickr$"N GZend_Service_Flickr_ResultSet$M AZend_Service_Flickr_Result$L ?Zend_Service_Flickr_Image$K 9Zend_Service_Exception$J 9Zend_Service_Delicious$&I OZend_Service_Delicious_SimplePost$$H KZend_Service_Delicious_PostList$ G CZend_Service_Delicious_Post$%F MZend_Service_Delicious_Exception$ E CZend_Service_Audioscrobbler$D 3Zend_Service_Amazon$'C QZend_Service_Amazon_SimilarProduct$"B GZend_Service_Amazon_ResultSet$A ?Zend_Service_Amazon_Query$!@ EZend_Service_Amazon_OfferSet$? ?Zend_Service_Amazon_Offer$&> OZend_Service_Amazon_ListmaniaList$= =Zend_Service_Amazon_Item$< ?Zend_Service_Amazon_Image$(; SZend_Service_Amazon_EditorialReview$': QZend_Service_Amazon_CustomerReview$$9 KZend_Service_Amazon_Accessories$8 5Zend_Service_Akismet$7 7Zend_Service_Abstract$6 9Zend_Server_Reflection$'5 QZend_Server_Reflection_ReturnValue$%4 MZend_Server_Reflection_Prototype$%3 MZend_Server_Reflection_Parameter$ 2 CZend_Server_Reflection_Node$"1 GZend_Server_Reflection_Method$$0 KZend_Server_Reflection_Function$-/ ]Zend_Server_Reflection_Function_Abstract$%. MZend_Server_Reflection_Exception$!- EZend_Server_Reflection_Class$, 7Zend_Server_Exception$+ 5Zend_Server_Abstract$* 1Zend_Search_Lucene$$) KZend_Search_Lucene_Storage_File$+( YZend_Search_Lucene_Storage_File_Memory$/' aZend_Search_Lucene_Storage_File_Filesystem$)& UZend_Search_Lucene_Storage_Directory$   s  {]C*gK&qN+	yU3mD




l
K
)
					g	L	,	\:_@*S4`@~a?lT@q@l?     ?Zend_Controller_Exception%( SZend_Controller_Dispatcher_Standard%) UZend_Controller_Dispatcher_Exception%( SZend_Controller_Dispatcher_Abstract% 9Zend_Controller_Action%(  SZend_Controller_Action_HelperBroker%/ aZend_Controller_Action_Helper_ViewRenderer%&~ OZend_Controller_Action_Helper_Url%-} ]Zend_Controller_Action_Helper_Redirector%1| eZend_Controller_Action_Helper_FlashMessenger%+{ YZend_Controller_Action_Helper_Abstract%%z MZend_Controller_Action_Exception%y 3Zend_Console_Getopt%"x GZend_Console_Getopt_Exception%w #Zend_Config%v +Zend_Config_Xml%u +Zend_Config_Ini%t 7Zend_Config_Exception%s !Zend_Cache%r =Zend_Cache_Frontend_Page%q AZend_Cache_Frontend_Output%!p EZend_Cache_Frontend_Function%o =Zend_Cache_Frontend_File%n ?Zend_Cache_Frontend_Class%m 5Zend_Cache_Exception%l +Zend_Cache_Core%k 1Zend_Cache_Backend%$j KZend_Cache_Backend_ZendPlatform%i ;Zend_Cache_Backend_Test%h ?Zend_Cache_Backend_Sqlite%!g EZend_Cache_Backend_Memcached%f ;Zend_Cache_Backend_File%e 9Zend_Cache_Backend_Apc%d Zend_Auth%c ?Zend_Auth_Storage_Session%$b KZend_Auth_Storage_NonPersistent% a CZend_Auth_Storage_Exception%` -Zend_Auth_Result%_ 3Zend_Auth_Exception%^ 9Zend_Auth_Adapter_Http%)] UZend_Auth_Adapter_Http_Resolver_File%.\ _Zend_Auth_Adapter_Http_Resolver_Exception% [ CZend_Auth_Adapter_Exception%Z =Zend_Auth_Adapter_Digest%Y ?Zend_Auth_Adapter_DbTable%X Zend_Acl%W 'Zend_Acl_Role%V 9Zend_Acl_Role_Registry%%U MZend_Acl_Role_Registry_Exception%T /Zend_Acl_Resource%S 1Zend_Acl_Exception%R /Zend_XmlRpc_Value$Q =Zend_XmlRpc_Value_Struct$P =Zend_XmlRpc_Value_String$O =Zend_XmlRpc_Value_Scalar$N ?Zend_XmlRpc_Value_Integer$ M CZend_XmlRpc_Value_Exception$L =Zend_XmlRpc_Value_Double$K AZend_XmlRpc_Value_DateTime$!J EZend_XmlRpc_Value_Collection$I ?Zend_XmlRpc_Value_Boolean$H =Zend_XmlRpc_Value_Base64$G ;Zend_XmlRpc_Value_Array$F 1Zend_XmlRpc_Server$E =Zend_XmlRpc_Server_Fault$!D EZend_XmlRpc_Server_Exception$C =Zend_XmlRpc_Server_Cache$B 5Zend_XmlRpc_Response$A ?Zend_XmlRpc_Response_Http$@ 3Zend_XmlRpc_Request$? ?Zend_XmlRpc_Request_Stdin$> =Zend_XmlRpc_Request_Http$= /Zend_XmlRpc_Fault$< 7Zend_XmlRpc_Exception$; 1Zend_XmlRpc_Client$#: IZend_XmlRpc_Client_ServerProxy$+9 YZend_XmlRpc_Client_ServerIntrospection$+8 YZend_XmlRpc_Client_IntrospectException$%7 MZend_XmlRpc_Client_HttpException$&6 OZend_XmlRpc_Client_FaultException$!5 EZend_XmlRpc_Client_Exception$4 Zend_View$3 5Zend_View_Helper_Url$2 ?Zend_View_Helper_HtmlList$"1 GZend_View_Helper_FormTextarea$0 ?Zend_View_Helper_FormText$ / CZend_View_Helper_FormSubmit$ . CZend_View_Helper_FormSelect$- AZend_View_Helper_FormReset$, AZend_View_Helper_FormRadio$"+ GZend_View_Helper_FormPassword$* ?Zend_View_Helper_FormNote$) AZend_View_Helper_FormLabel$( AZend_View_Helper_FormImage$ ' CZend_View_Helper_FormHidden$& ?Zend_View_Helper_FormFile$!% EZend_View_Helper_FormElement$"$ GZend_View_Helper_FormCheckbox$ # CZend_View_Helper_FormButton$!" EZend_View_Helper_DeclareVars$! 3Zend_View_Exception$  1Zend_View_Abstract$ %Zend_Version$ 'Zend_Validate$ AZend_Validate_StringLength$ 3Zend_Validate_Regex$ 9Zend_Validate_NotEmpty$ 9Zend_Validate_LessThan$ -Zend_Validate_Ip$ /Zend_Validate_Int$ 7Zend_Validate_InArray$ 9Zend_Validate_Hostname$ ?Zend_Validate_Hostname_Se$ ?Zend_Validate_Hostname_No$ ?Zend_Validate_Hostname_Li$   i  gL+rN"i?}T3Z; 




i
F
"				}	Z	=	xQ(~V.`=tQ.V*wZ0bC|T&        p CZend_Feed_Builder_Interface( o CZend_Db_Statement_Interface(+n YZend_Controller_Router_Route_Interface(%m MZend_Controller_Router_Interface()l UZend_Controller_Dispatcher_Interface(!k EZend_Cache_Backend_Interface( j CZend_Auth_Storage_Interface( i CZend_Auth_Adapter_Interface(.h _Zend_Auth_Adapter_Http_Resolver_Interface(g ;Zend_Acl_Role_Interface( f CZend_Acl_Resource_Interface(e ?Zend_Acl_Assert_Interface(d 3Zend_View_Interface'c ;Zend_Validate_Interface'%b MZend_Validate_Hostname_Interface'%a MZend_Session_Validator_Interface''` QZend_Session_SaveHandler_Interface'_ 7Zend_Server_Interface'!^ EZend_Search_Lucene_Interface'] 9Zend_Request_Interface'\ ?Zend_Pdf_Filter_Interface'&[ OZend_Pdf_ElementFactory_Interface'$Z KZend_Memory_Container_Interface')Y UZend_Mail_Storage_Writable_Interface''X QZend_Mail_Storage_Folder_Interface'!W EZend_Log_Formatter_Interface'V ?Zend_Log_Filter_Interface''U QZend_Http_Client_Adapter_Interface'T AZend_Gdata_App_MediaSource'S 7Zend_Filter_Interface' R CZend_Feed_Builder_Interface' Q CZend_Db_Statement_Interface'+P YZend_Controller_Router_Route_Interface'%O MZend_Controller_Router_Interface')N UZend_Controller_Dispatcher_Interface'!M EZend_Cache_Backend_Interface' L CZend_Auth_Storage_Interface' K CZend_Auth_Adapter_Interface'.J _Zend_Auth_Adapter_Http_Resolver_Interface'I ;Zend_Acl_Role_Interface' H CZend_Acl_Resource_Interface'G ?Zend_Acl_Assert_Interface'F 3Zend_View_Interface&E ;Zend_Validate_Interface&%D MZend_Validate_Hostname_Interface&%C MZend_Session_Validator_Interface&'B QZend_Session_SaveHandler_Interface&A 7Zend_Server_Interface&!@ EZend_Search_Lucene_Interface&? 9Zend_Request_Interface&> ?Zend_Pdf_Filter_Interface&&= OZend_Pdf_ElementFactory_Interface&$< KZend_Memory_Container_Interface&); UZend_Mail_Storage_Writable_Interface&': QZend_Mail_Storage_Folder_Interface&!9 EZend_Log_Formatter_Interface&8 ?Zend_Log_Filter_Interface&'7 QZend_Http_Client_Adapter_Interface&6 7Zend_Filter_Interface& 5 CZend_Feed_Builder_Interface& 4 CZend_Db_Statement_Interface&+3 YZend_Controller_Router_Route_Interface&%2 MZend_Controller_Router_Interface&)1 UZend_Controller_Dispatcher_Interface&!0 EZend_Cache_Backend_Interface& / CZend_Auth_Storage_Interface& . CZend_Auth_Adapter_Interface&.- _Zend_Auth_Adapter_Http_Resolver_Interface&, ;Zend_Acl_Role_Interface& + CZend_Acl_Resource_Interface&* ?Zend_Acl_Assert_Interface&) 3Zend_View_Interface%( ;Zend_Validate_Interface%%' MZend_Validate_Hostname_Interface%%& MZend_Session_Validator_Interface%'% QZend_Session_SaveHandler_Interface%$ 7Zend_Server_Interface%!# EZend_Search_Lucene_Interface%" 9Zend_Request_Interface%! ?Zend_Pdf_Filter_Interface%&  OZend_Pdf_ElementFactory_Interface%$ KZend_Memory_Container_Interface%) UZend_Mail_Storage_Writable_Interface%' QZend_Mail_Storage_Folder_Interface%! EZend_Log_Formatter_Interface% ?Zend_Log_Filter_Interface%' QZend_Http_Client_Adapter_Interface% 7Zend_Filter_Interface%  CZend_Feed_Builder_Interface%  CZend_Db_Statement_Interface%+ YZend_Controller_Router_Route_Interface%% MZend_Controller_Router_Interface%) UZend_Controller_Dispatcher_Interface%! EZend_Cache_Backend_Interface%  CZend_Auth_Storage_Interface%  CZend_Auth_Adapter_Interface%. _Zend_Auth_Adapter_Http_Resolver_Interface% ;Zend_Acl_Role_Interface%  CZend_Acl_Resource_Interface% ?Zend_Acl_Assert_Interface% 3Zend_View_Interface$ ;Zend_Validate_Interface$%
 MZend_Validate_Hostname_Interface$%	 MZend_Session_Validator_Interface$' QZend_Session_SaveHandler_Interface$   s h?wL&W+[?hF$




m
N
5
					h	G	a=#u^>|_C'{]<"
lX3Y0c8|T)                   $x KZend_Gdata_App_Extension_Rights%'w QZend_Gdata_App_Extension_Published%$v KZend_Gdata_App_Extension_Person%"u GZend_Gdata_App_Extension_Name%"t GZend_Gdata_App_Extension_Logo%"s GZend_Gdata_App_Extension_Link% r CZend_Gdata_App_Extension_Id%"q GZend_Gdata_App_Extension_Icon%'p QZend_Gdata_App_Extension_Generator%#o IZend_Gdata_App_Extension_Email%%n MZend_Gdata_App_Extension_Element%#m IZend_Gdata_App_Extension_Draft%%l MZend_Gdata_App_Extension_Control%)k UZend_Gdata_App_Extension_Contributor%%j MZend_Gdata_App_Extension_Content%&i OZend_Gdata_App_Extension_Category%$h KZend_Gdata_App_Extension_Author%g =Zend_Gdata_App_Exception%f 5Zend_Gdata_App_Entry%e 3Zend_Gdata_App_Base%*d WZend_Gdata_App_BadMethodCallException%!c EZend_Gdata_App_AuthException%b #Zend_Filter%a 7Zend_Filter_StripTags%` 9Zend_Filter_StringTrim%_ ?Zend_Filter_StringToUpper%^ ?Zend_Filter_StringToLower%] 5Zend_Filter_RealPath%\ +Zend_Filter_Int%[ /Zend_Filter_Input%Z =Zend_Filter_HtmlEntities%Y 7Zend_Filter_Exception%X +Zend_Filter_Dir%W 1Zend_Filter_Digits%V 5Zend_Filter_BaseName%U /Zend_Filter_Alpha%T /Zend_Filter_Alnum%S Zend_Feed%R 'Zend_Feed_Rss%Q 3Zend_Feed_Exception%P 3Zend_Feed_Entry_Rss%O 5Zend_Feed_Entry_Atom%N =Zend_Feed_Entry_Abstract%M /Zend_Feed_Element%L /Zend_Feed_Builder%K =Zend_Feed_Builder_Header%$J KZend_Feed_Builder_Header_Itunes% I CZend_Feed_Builder_Exception%H ;Zend_Feed_Builder_Entry%G )Zend_Feed_Atom%F 1Zend_Feed_Abstract%E )Zend_Exception%D !Zend_Debug%C Zend_Db%B 'Zend_Db_Table%A 5Zend_Db_Table_Rowset%"@ GZend_Db_Table_Rowset_Abstract%? /Zend_Db_Table_Row% > CZend_Db_Table_Row_Exception%= AZend_Db_Table_Row_Abstract%< ;Zend_Db_Table_Exception%; 9Zend_Db_Table_Abstract%: /Zend_Db_Statement%9 7Zend_Db_Statement_Pdo%8 =Zend_Db_Statement_Oracle%'7 QZend_Db_Statement_Oracle_Exception%6 =Zend_Db_Statement_Mysqli%'5 QZend_Db_Statement_Mysqli_Exception% 4 CZend_Db_Statement_Exception%3 7Zend_Db_Statement_Db2%$2 KZend_Db_Statement_Db2_Exception%1 )Zend_Db_Select%0 =Zend_Db_Select_Exception%/ -Zend_Db_Profiler%. 9Zend_Db_Profiler_Query%- AZend_Db_Profiler_Exception%, %Zend_Db_Expr%+ /Zend_Db_Exception%* AZend_Db_Adapter_Pdo_Sqlite%) ?Zend_Db_Adapter_Pdo_Pgsql%( ;Zend_Db_Adapter_Pdo_Oci%' ?Zend_Db_Adapter_Pdo_Mysql%& ?Zend_Db_Adapter_Pdo_Mssql%!% EZend_Db_Adapter_Pdo_Abstract%$ 9Zend_Db_Adapter_Oracle%%# MZend_Db_Adapter_Oracle_Exception%" 9Zend_Db_Adapter_Mysqli%%! MZend_Db_Adapter_Mysqli_Exception%  ?Zend_Db_Adapter_Exception% 3Zend_Db_Adapter_Db2%" GZend_Db_Adapter_Db2_Exception% =Zend_Db_Adapter_Abstract% Zend_Date% 3Zend_Date_Exception% 5Zend_Date_DateObject% -Zend_Date_Cities%! EZend_Controller_Router_Route%( SZend_Controller_Router_Route_Static%' QZend_Controller_Router_Route_Regex%( SZend_Controller_Router_Route_Module%# IZend_Controller_Router_Rewrite%% MZend_Controller_Router_Exception%$ KZend_Controller_Router_Abstract%" GZend_Controller_Response_Http%' QZend_Controller_Response_Exception%! EZend_Controller_Response_Cli%& OZend_Controller_Response_Abstract%! EZend_Controller_Request_Http%& OZend_Controller_Request_Exception%& OZend_Controller_Request_Apache404%%
 MZend_Controller_Request_Abstract%(	 SZend_Controller_Plugin_ErrorHandler%" GZend_Controller_Plugin_Broker%$ KZend_Controller_Plugin_Abstract% 7Zend_Controller_Front%   a  _8^9	nGb3pK/



{
T
+				q	=	iA~W/~Q( ^7mJ1W$mCeR'                $Y KZend_Http_Client_Adapter_Socket%#X IZend_Http_Client_Adapter_Proxy%'W QZend_Http_Client_Adapter_Exception%V !Zend_Gdata%U ;Zend_Gdata_Spreadsheets%*T WZend_Gdata_Spreadsheets_WorksheetFeed%+S YZend_Gdata_Spreadsheets_WorksheetEntry%,R [Zend_Gdata_Spreadsheets_SpreadsheetFeed%-Q ]Zend_Gdata_Spreadsheets_SpreadsheetEntry%&P OZend_Gdata_Spreadsheets_ListQuery%%O MZend_Gdata_Spreadsheets_ListFeed%&N OZend_Gdata_Spreadsheets_ListEntry%/M aZend_Gdata_Spreadsheets_Extension_RowCount%-L ]Zend_Gdata_Spreadsheets_Extension_Custom%/K aZend_Gdata_Spreadsheets_Extension_ColCount%+J YZend_Gdata_Spreadsheets_Extension_Cell%*I WZend_Gdata_Spreadsheets_DocumentQuery%&H OZend_Gdata_Spreadsheets_CellQuery%%G MZend_Gdata_Spreadsheets_CellFeed%&F OZend_Gdata_Spreadsheets_CellEntry%E -Zend_Gdata_Query%D AZend_Gdata_Kind_EventEntry%C -Zend_Gdata_Gapps%B AZend_Gdata_Gapps_UserQuery%A ?Zend_Gdata_Gapps_UserFeed%@ AZend_Gdata_Gapps_UserEntry%&? OZend_Gdata_Gapps_ServiceException%> 9Zend_Gdata_Gapps_Query%#= IZend_Gdata_Gapps_NicknameQuery%"< GZend_Gdata_Gapps_NicknameFeed%#; IZend_Gdata_Gapps_NicknameEntry%%: MZend_Gdata_Gapps_Extension_Quota%(9 SZend_Gdata_Gapps_Extension_Nickname%$8 KZend_Gdata_Gapps_Extension_Name%%7 MZend_Gdata_Gapps_Extension_Login%)6 UZend_Gdata_Gapps_Extension_EmailList%5 9Zend_Gdata_Gapps_Error%-4 ]Zend_Gdata_Gapps_EmailListRecipientQuery%,3 [Zend_Gdata_Gapps_EmailListRecipientFeed%-2 ]Zend_Gdata_Gapps_EmailListRecipientEntry%$1 KZend_Gdata_Gapps_EmailListQuery%#0 IZend_Gdata_Gapps_EmailListFeed%$/ KZend_Gdata_Gapps_EmailListEntry%. +Zend_Gdata_Feed%- 5Zend_Gdata_Extension%, =Zend_Gdata_Extension_Who%+ AZend_Gdata_Extension_Where%* ?Zend_Gdata_Extension_When%$) KZend_Gdata_Extension_Visibility%&( OZend_Gdata_Extension_Transparency%"' GZend_Gdata_Extension_Reminder%-& ]Zend_Gdata_Extension_RecurrenceException%$% KZend_Gdata_Extension_Recurrence%'$ QZend_Gdata_Extension_OriginalEvent%0# cZend_Gdata_Extension_OpenSearchTotalResults%." _Zend_Gdata_Extension_OpenSearchStartIndex%0! cZend_Gdata_Extension_OpenSearchItemsPerPage%"  GZend_Gdata_Extension_FeedLink%* WZend_Gdata_Extension_ExtendedProperty%% MZend_Gdata_Extension_EventStatus%# IZend_Gdata_Extension_EntryLink%" GZend_Gdata_Extension_Comments%& OZend_Gdata_Extension_AttendeeType%( SZend_Gdata_Extension_AttendeeStatus% -Zend_Gdata_Entry% 9Zend_Gdata_ClientLogin% 3Zend_Gdata_Calendar%! EZend_Gdata_Calendar_ListFeed%" GZend_Gdata_Calendar_ListEntry%- ]Zend_Gdata_Calendar_Extension_WebContent%+ YZend_Gdata_Calendar_Extension_Timezone%9 uZend_Gdata_Calendar_Extension_SendEventNotifications%+ YZend_Gdata_Calendar_Extension_Selected%+ YZend_Gdata_Calendar_Extension_QuickAdd%' QZend_Gdata_Calendar_Extension_Link%) UZend_Gdata_Calendar_Extension_Hidden%( SZend_Gdata_Calendar_Extension_Color%. _Zend_Gdata_Calendar_Extension_AccessLevel%# IZend_Gdata_Calendar_EventQuery%"
 GZend_Gdata_Calendar_EventFeed%#	 IZend_Gdata_Calendar_EventEntry% 1Zend_Gdata_AuthSub% )Zend_Gdata_App% 3Zend_Gdata_App_Util%, [Zend_Gdata_App_InvalidArgumentException%! EZend_Gdata_App_HttpException%$ KZend_Gdata_App_FeedSourceParent%# IZend_Gdata_App_FeedEntryParent% 3Zend_Gdata_App_Feed%  =Zend_Gdata_App_Extension%! EZend_Gdata_App_Extension_Uri%%~ MZend_Gdata_App_Extension_Updated%#} IZend_Gdata_App_Extension_Title%"| GZend_Gdata_App_Extension_Text%%{ MZend_Gdata_App_Extension_Summary%&z OZend_Gdata_App_Extension_Subtitle%$y KZend_Gdata_App_Extension_Source%   { iM2~`E"xW5pT:#mB




a
@
!					|	W	1	~dH'jK,tX=w[?w]I0_<&
|[7h?                              T AZend_Pdf_Element_Reference%%S MZend_Pdf_Element_Reference_Table%'R QZend_Pdf_Element_Reference_Context%Q ;Zend_Pdf_Element_Object%#P IZend_Pdf_Element_Object_Stream%O =Zend_Pdf_Element_Numeric%N 7Zend_Pdf_Element_Null%M 7Zend_Pdf_Element_Name% L CZend_Pdf_Element_Dictionary%K =Zend_Pdf_Element_Boolean%J 9Zend_Pdf_Element_Array%I )Zend_Pdf_Color%H 1Zend_Pdf_Color_Rgb%G 3Zend_Pdf_Color_Html%F =Zend_Pdf_Color_GrayScale%E 3Zend_Pdf_Color_Cmyk%D 'Zend_Pdf_Cmap%C AZend_Pdf_Cmap_TrimmedTable%!B EZend_Pdf_Cmap_SegmentToDelta%A AZend_Pdf_Cmap_ByteEncoding%&@ OZend_Pdf_Cmap_ByteEncoding_Static%? Zend_Mime%> )Zend_Mime_Part%= /Zend_Mime_Message%< 3Zend_Mime_Exception%; -Zend_Mime_Decode%: #Zend_Memory%9 /Zend_Memory_Value%8 3Zend_Memory_Manager%7 7Zend_Memory_Exception%6 7Zend_Memory_Container%"5 GZend_Memory_Container_Movable%!4 EZend_Memory_Container_Locked%!3 EZend_Memory_AccessController%2 3Zend_Measure_Weight%1 3Zend_Measure_Volume%%0 MZend_Measure_Viscosity_Kinematic%#/ IZend_Measure_Viscosity_Dynamic%. 3Zend_Measure_Torque%- =Zend_Measure_Temperature%, 1Zend_Measure_Speed%+ 7Zend_Measure_Pressure%* 1Zend_Measure_Power%) 3Zend_Measure_Number%( 9Zend_Measure_Lightness%' 3Zend_Measure_Length%& ?Zend_Measure_Illumination%% 9Zend_Measure_Frequency%$ 1Zend_Measure_Force%# =Zend_Measure_Flow_Volume%" 9Zend_Measure_Flow_Mole%! 9Zend_Measure_Flow_Mass%  9Zend_Measure_Exception% 3Zend_Measure_Energy% 5Zend_Measure_Density% 5Zend_Measure_Current%  CZend_Measure_Cooking_Weight%  CZend_Measure_Cooking_Volume% =Zend_Measure_Capacitance% 3Zend_Measure_Binary% /Zend_Measure_Area% 1Zend_Measure_Angle% ?Zend_Measure_Acceleration% 7Zend_Measure_Abstract% Zend_Mail% =Zend_Mail_Transport_Smtp%! EZend_Mail_Transport_Sendmail%" GZend_Mail_Transport_Exception%! EZend_Mail_Transport_Abstract% /Zend_Mail_Storage%' QZend_Mail_Storage_Writable_Maildir% 9Zend_Mail_Storage_Pop3% 9Zend_Mail_Storage_Mbox% ?Zend_Mail_Storage_Maildir%
 9Zend_Mail_Storage_Imap%	 =Zend_Mail_Storage_Folder%" GZend_Mail_Storage_Folder_Mbox%% MZend_Mail_Storage_Folder_Maildir%  CZend_Mail_Storage_Exception% AZend_Mail_Storage_Abstract% ;Zend_Mail_Protocol_Smtp%' QZend_Mail_Protocol_Smtp_Auth_Plain%' QZend_Mail_Protocol_Smtp_Auth_Login%) UZend_Mail_Protocol_Smtp_Auth_Crammd5%  ;Zend_Mail_Protocol_Pop3% ;Zend_Mail_Protocol_Imap%!~ EZend_Mail_Protocol_Exception% } CZend_Mail_Protocol_Abstract%| )Zend_Mail_Part%{ /Zend_Mail_Message%z 3Zend_Mail_Exception%y Zend_Log%x 9Zend_Log_Writer_Stream%w 5Zend_Log_Writer_Null%v 5Zend_Log_Writer_Mock%u 1Zend_Log_Writer_Db%t =Zend_Log_Writer_Abstract%s 9Zend_Log_Formatter_Xml%r ?Zend_Log_Formatter_Simple%q =Zend_Log_Filter_Suppress%p =Zend_Log_Filter_Priority%o ;Zend_Log_Filter_Message%n 1Zend_Log_Exception%m #Zend_Locale%l -Zend_Locale_Math%k =Zend_Locale_Math_PhpMath%j AZend_Locale_Math_Exception%i 1Zend_Locale_Format%h 7Zend_Locale_Exception%g -Zend_Locale_Data%!f EZend_Locale_Data_Translation%e #Zend_Loader%d Zend_Json%c 3Zend_Json_Exception%b /Zend_Json_Encoder%a /Zend_Json_Decoder%` 1Zend_Http_Response%_ 3Zend_Http_Exception%^ 3Zend_Http_CookieJar%] -Zend_Http_Cookie%\ -Zend_Http_Client%[ AZend_Http_Client_Exception%"Z GZend_Http_Client_Adapter_Test%   ^  Z:{Y=~T,tC|E


g
8
			g	2	
}]6fU?m#a(a'Y5yN!z>                                      "2 GZend_Search_Lucene_Index_Term%+1 YZend_Search_Lucene_Index_SegmentWriter%80 sZend_Search_Lucene_Index_SegmentWriter_StreamWriter%:/ wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter%+. YZend_Search_Lucene_Index_SegmentMerger%6- oZend_Search_Lucene_Index_SegmentInfoPriorityQueue%), UZend_Search_Lucene_Index_SegmentInfo%'+ QZend_Search_Lucene_Index_FieldInfo%.* _Zend_Search_Lucene_Index_DictionaryLoader%!) EZend_Search_Lucene_FSMAction%( 9Zend_Search_Lucene_FSM%' =Zend_Search_Lucene_Field%!& EZend_Search_Lucene_Exception% % CZend_Search_Lucene_Document%%$ MZend_Search_Lucene_Document_Html%,# [Zend_Search_Lucene_Analysis_TokenFilter%6" oZend_Search_Lucene_Analysis_TokenFilter_StopWords%7! qZend_Search_Lucene_Analysis_TokenFilter_ShortWords%6  oZend_Search_Lucene_Analysis_TokenFilter_LowerCase%& OZend_Search_Lucene_Analysis_Token%) UZend_Search_Lucene_Analysis_Analyzer%0 cZend_Search_Lucene_Analysis_Analyzer_Common%8 sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num%5 mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8%8 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum%I Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive%5 mZend_Search_Lucene_Analysis_Analyzer_Common_Text%F Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive% 7Zend_Search_Exception% -Zend_Rest_Server% AZend_Rest_Server_Exception% 3Zend_Rest_Exception% -Zend_Rest_Client% ;Zend_Rest_Client_Result% AZend_Rest_Client_Exception% 'Zend_Registry% Zend_Pdf%! EZend_Pdf_UpdateInfoContainer% -Zend_Pdf_Trailer% ;Zend_Pdf_Trailer_Keeper%
 AZend_Pdf_Trailer_Generator%	 )Zend_Pdf_Style% 7Zend_Pdf_StringParser% /Zend_Pdf_Resource%# IZend_Pdf_Resource_ImageFactory% ;Zend_Pdf_Resource_Image%! EZend_Pdf_Resource_Image_Tiff%  CZend_Pdf_Resource_Image_Png%! EZend_Pdf_Resource_Image_Jpeg% 9Zend_Pdf_Resource_Font%$  KZend_Pdf_Resource_Font_Standard%1 eZend_Pdf_Resource_Font_Standard_ZapfDingbats%/~ aZend_Pdf_Resource_Font_Standard_TimesRoman%0} cZend_Pdf_Resource_Font_Standard_TimesItalic%4| kZend_Pdf_Resource_Font_Standard_TimesBoldItalic%.{ _Zend_Pdf_Resource_Font_Standard_TimesBold%+z YZend_Pdf_Resource_Font_Standard_Symbol%5y mZend_Pdf_Resource_Font_Standard_HelveticaOblique%9x uZend_Pdf_Resource_Font_Standard_HelveticaBoldOblique%2w gZend_Pdf_Resource_Font_Standard_HelveticaBold%.v _Zend_Pdf_Resource_Font_Standard_Helvetica%3u iZend_Pdf_Resource_Font_Standard_CourierOblique%7t qZend_Pdf_Resource_Font_Standard_CourierBoldOblique%0s cZend_Pdf_Resource_Font_Standard_CourierBold%,r [Zend_Pdf_Resource_Font_Standard_Courier%$q KZend_Pdf_Resource_Font_OpenType%-p ]Zend_Pdf_Resource_Font_OpenType_TrueType%o /Zend_Pdf_PhpArray%n +Zend_Pdf_Parser%m 9Zend_Pdf_Parser_Stream%l 'Zend_Pdf_Page%k )Zend_Pdf_Image%j 'Zend_Pdf_Font% i CZend_Pdf_Filter_Compression%$h KZend_Pdf_Filter_Compression_Lzw%&g OZend_Pdf_Filter_Compression_Flate%f =Zend_Pdf_Filter_AsciiHex%e ;Zend_Pdf_Filter_Ascii85%"d GZend_Pdf_FileParserDataSource%)c UZend_Pdf_FileParserDataSource_String%'b QZend_Pdf_FileParserDataSource_File%a 3Zend_Pdf_FileParser%` ?Zend_Pdf_FileParser_Image%"_ GZend_Pdf_FileParser_Image_Png%^ =Zend_Pdf_FileParser_Font%&] OZend_Pdf_FileParser_Font_OpenType%/\ aZend_Pdf_FileParser_Font_OpenType_TrueType%[ 1Zend_Pdf_Exception%Z ;Zend_Pdf_ElementFactory%"Y GZend_Pdf_ElementFactory_Proxy%X -Zend_Pdf_Element%W ;Zend_Pdf_Element_String%#V IZend_Pdf_Element_String_Binary%U ;Zend_Pdf_Element_Stream%   _  d&`1r@X!a2



x
@
				n	Q	3	fBkC]8\8c=!vW5tO%hH'                  & OZend_Service_Yahoo_ImageResultSet%# IZend_Service_Yahoo_ImageResult% =Zend_Service_Yahoo_Image% ;Zend_Service_StrikeIron%( SZend_Service_StrikeIron_ZipCodeInfo%2 gZend_Service_StrikeIron_USAddressVerification%- ]Zend_Service_StrikeIron_SalesUseTaxBasic%&
 OZend_Service_StrikeIron_Exception%&	 OZend_Service_StrikeIron_Decorator%! EZend_Service_StrikeIron_Base% 1Zend_Service_Simpy%$ KZend_Service_Simpy_WatchlistSet%* WZend_Service_Simpy_WatchlistFilterSet%' QZend_Service_Simpy_WatchlistFilter%! EZend_Service_Simpy_Watchlist% ?Zend_Service_Simpy_TagSet% 9Zend_Service_Simpy_Tag%  AZend_Service_Simpy_NoteSet% ;Zend_Service_Simpy_Note%~ AZend_Service_Simpy_LinkSet%!} EZend_Service_Simpy_LinkQuery%| ;Zend_Service_Simpy_Link%{ 3Zend_Service_Flickr%"z GZend_Service_Flickr_ResultSet%y AZend_Service_Flickr_Result%x ?Zend_Service_Flickr_Image%w 9Zend_Service_Exception%v 9Zend_Service_Delicious%&u OZend_Service_Delicious_SimplePost%$t KZend_Service_Delicious_PostList% s CZend_Service_Delicious_Post%%r MZend_Service_Delicious_Exception% q CZend_Service_Audioscrobbler%p 3Zend_Service_Amazon%'o QZend_Service_Amazon_SimilarProduct%"n GZend_Service_Amazon_ResultSet%m ?Zend_Service_Amazon_Query%!l EZend_Service_Amazon_OfferSet%k ?Zend_Service_Amazon_Offer%&j OZend_Service_Amazon_ListmaniaList%i =Zend_Service_Amazon_Item%h ?Zend_Service_Amazon_Image%(g SZend_Service_Amazon_EditorialReview%'f QZend_Service_Amazon_CustomerReview%$e KZend_Service_Amazon_Accessories%d 5Zend_Service_Akismet%c 7Zend_Service_Abstract%b 9Zend_Server_Reflection%'a QZend_Server_Reflection_ReturnValue%%` MZend_Server_Reflection_Prototype%%_ MZend_Server_Reflection_Parameter% ^ CZend_Server_Reflection_Node%"] GZend_Server_Reflection_Method%$\ KZend_Server_Reflection_Function%-[ ]Zend_Server_Reflection_Function_Abstract%%Z MZend_Server_Reflection_Exception%!Y EZend_Server_Reflection_Class%X 7Zend_Server_Exception%W 5Zend_Server_Abstract%V 1Zend_Search_Lucene%$U KZend_Search_Lucene_Storage_File%+T YZend_Search_Lucene_Storage_File_Memory%/S aZend_Search_Lucene_Storage_File_Filesystem%)R UZend_Search_Lucene_Storage_Directory%4Q kZend_Search_Lucene_Storage_Directory_Filesystem%%P MZend_Search_Lucene_Search_Weight%*O WZend_Search_Lucene_Search_Weight_Term%,N [Zend_Search_Lucene_Search_Weight_Phrase%/M aZend_Search_Lucene_Search_Weight_MultiTerm%+L YZend_Search_Lucene_Search_Weight_Empty%-K ]Zend_Search_Lucene_Search_Weight_Boolean%)J UZend_Search_Lucene_Search_Similarity%1I eZend_Search_Lucene_Search_Similarity_Default%)H UZend_Search_Lucene_Search_QueryToken%3G iZend_Search_Lucene_Search_QueryParserException%1F eZend_Search_Lucene_Search_QueryParserContext%*E WZend_Search_Lucene_Search_QueryParser%)D UZend_Search_Lucene_Search_QueryLexer%'C QZend_Search_Lucene_Search_QueryHit%)B UZend_Search_Lucene_Search_QueryEntry%.A _Zend_Search_Lucene_Search_QueryEntry_Term%2@ gZend_Search_Lucene_Search_QueryEntry_Subquery%0? cZend_Search_Lucene_Search_QueryEntry_Phrase%$> KZend_Search_Lucene_Search_Query%)= UZend_Search_Lucene_Search_Query_Term%+< YZend_Search_Lucene_Search_Query_Phrase%.; _Zend_Search_Lucene_Search_Query_MultiTerm%2: gZend_Search_Lucene_Search_Query_Insignificant%*9 WZend_Search_Lucene_Search_Query_Empty%,8 [Zend_Search_Lucene_Search_Query_Boolean%:7 wZend_Search_Lucene_Search_BooleanExpressionRecognizer%6 =Zend_Search_Lucene_Proxy%%5 MZend_Search_Lucene_PriorityQueue%$4 KZend_Search_Lucene_Index_Writer%&3 OZend_Search_Lucene_Index_TermInfo%   u `>tU- |Z7yZ>"mQ/




k
I
'
					v	W	;		mG" tN+xV9'Q*xV9vT/cB(bA                                             CZend_Auth_Adapter_Exception& =Zend_Auth_Adapter_Digest& ?Zend_Auth_Adapter_DbTable& Zend_Acl& 'Zend_Acl_Role& 9Zend_Acl_Role_Registry&%  MZend_Acl_Role_Registry_Exception& /Zend_Acl_Resource&~ 1Zend_Acl_Exception&} /Zend_XmlRpc_Value%| =Zend_XmlRpc_Value_Struct%{ =Zend_XmlRpc_Value_String%z =Zend_XmlRpc_Value_Scalar%y ?Zend_XmlRpc_Value_Integer% x CZend_XmlRpc_Value_Exception%w =Zend_XmlRpc_Value_Double%v AZend_XmlRpc_Value_DateTime%!u EZend_XmlRpc_Value_Collection%t ?Zend_XmlRpc_Value_Boolean%s =Zend_XmlRpc_Value_Base64%r ;Zend_XmlRpc_Value_Array%q 1Zend_XmlRpc_Server%p =Zend_XmlRpc_Server_Fault%!o EZend_XmlRpc_Server_Exception%n =Zend_XmlRpc_Server_Cache%m 5Zend_XmlRpc_Response%l ?Zend_XmlRpc_Response_Http%k 3Zend_XmlRpc_Request%j ?Zend_XmlRpc_Request_Stdin%i =Zend_XmlRpc_Request_Http%h /Zend_XmlRpc_Fault%g 7Zend_XmlRpc_Exception%f 1Zend_XmlRpc_Client%#e IZend_XmlRpc_Client_ServerProxy%+d YZend_XmlRpc_Client_ServerIntrospection%+c YZend_XmlRpc_Client_IntrospectException%%b MZend_XmlRpc_Client_HttpException%&a OZend_XmlRpc_Client_FaultException%!` EZend_XmlRpc_Client_Exception%_ Zend_View%^ 5Zend_View_Helper_Url%] ?Zend_View_Helper_HtmlList%"\ GZend_View_Helper_FormTextarea%[ ?Zend_View_Helper_FormText% Z CZend_View_Helper_FormSubmit% Y CZend_View_Helper_FormSelect%X AZend_View_Helper_FormReset%W AZend_View_Helper_FormRadio%"V GZend_View_Helper_FormPassword%U ?Zend_View_Helper_FormNote%T AZend_View_Helper_FormLabel%S AZend_View_Helper_FormImage% R CZend_View_Helper_FormHidden%Q ?Zend_View_Helper_FormFile%!P EZend_View_Helper_FormElement%"O GZend_View_Helper_FormCheckbox% N CZend_View_Helper_FormButton%!M EZend_View_Helper_DeclareVars%L 3Zend_View_Exception%K 1Zend_View_Abstract%J %Zend_Version%I 'Zend_Validate%H AZend_Validate_StringLength%G 3Zend_Validate_Regex%F 9Zend_Validate_NotEmpty%E 9Zend_Validate_LessThan%D -Zend_Validate_Ip%C /Zend_Validate_Int%B 7Zend_Validate_InArray%A 9Zend_Validate_Hostname%@ ?Zend_Validate_Hostname_Se%? ?Zend_Validate_Hostname_No%> ?Zend_Validate_Hostname_Li%= ?Zend_Validate_Hostname_Hu%< ?Zend_Validate_Hostname_Fi%; ?Zend_Validate_Hostname_De%: ?Zend_Validate_Hostname_Ch%9 ?Zend_Validate_Hostname_At%8 /Zend_Validate_Hex%7 ?Zend_Validate_GreaterThan%6 3Zend_Validate_Float%5 ;Zend_Validate_Exception%4 AZend_Validate_EmailAddress%3 5Zend_Validate_Digits%2 1Zend_Validate_Date%1 3Zend_Validate_Ccnum%0 7Zend_Validate_Between%/ 3Zend_Validate_Alpha%. 3Zend_Validate_Alnum%- 9Zend_Validate_Abstract%, Zend_Uri%+ 'Zend_Uri_Http%* 1Zend_Uri_Exception%) )Zend_Translate%( =Zend_Translate_Exception%' 9Zend_Translate_Adapter%!& EZend_Translate_Adapter_Xliff%% AZend_Translate_Adapter_Tmx%$ ?Zend_Translate_Adapter_Qt%## IZend_Translate_Adapter_Gettext%" AZend_Translate_Adapter_Csv%!! EZend_Translate_Adapter_Array%  %Zend_Session%) UZend_Session_Validator_HttpUserAgent%$ KZend_Session_Validator_Abstract% 9Zend_Session_Namespace% 9Zend_Session_Exception% 7Zend_Session_Abstract% 1Zend_Service_Yahoo%$ KZend_Service_Yahoo_WebResultSet%! EZend_Service_Yahoo_WebResult%! EZend_Service_Yahoo_ResultSet% ?Zend_Service_Yahoo_Result%% MZend_Service_Yahoo_NewsResultSet%" GZend_Service_Yahoo_NewsResult%& OZend_Service_Yahoo_LocalResultSet%# IZend_Service_Yahoo_LocalResult%   q fM)iG'lG$hL#d1



a
?
!				~	T	*	e=jE%dH&qQ/yV7|Q0kK(nW<%                           w ;Zend_Feed_Builder_Entry&v )Zend_Feed_Atom&u 1Zend_Feed_Abstract&t )Zend_Exception&s !Zend_Debug&r Zend_Db&q 'Zend_Db_Table&p 5Zend_Db_Table_Rowset&"o GZend_Db_Table_Rowset_Abstract&n /Zend_Db_Table_Row& m CZend_Db_Table_Row_Exception&l AZend_Db_Table_Row_Abstract&k ;Zend_Db_Table_Exception&j 9Zend_Db_Table_Abstract&i /Zend_Db_Statement&h 7Zend_Db_Statement_Pdo&g ?Zend_Db_Statement_Pdo_Ibm&f =Zend_Db_Statement_Oracle&'e QZend_Db_Statement_Oracle_Exception&d =Zend_Db_Statement_Mysqli&'c QZend_Db_Statement_Mysqli_Exception& b CZend_Db_Statement_Exception&a 7Zend_Db_Statement_Db2&$` KZend_Db_Statement_Db2_Exception&_ )Zend_Db_Select&^ =Zend_Db_Select_Exception&] -Zend_Db_Profiler&\ 9Zend_Db_Profiler_Query&[ AZend_Db_Profiler_Exception&Z %Zend_Db_Expr&Y /Zend_Db_Exception&X AZend_Db_Adapter_Pdo_Sqlite&W ?Zend_Db_Adapter_Pdo_Pgsql&V ;Zend_Db_Adapter_Pdo_Oci&U ?Zend_Db_Adapter_Pdo_Mysql&T ?Zend_Db_Adapter_Pdo_Mssql&S ;Zend_Db_Adapter_Pdo_Ibm&!R EZend_Db_Adapter_Pdo_Abstract&Q 9Zend_Db_Adapter_Oracle&%P MZend_Db_Adapter_Oracle_Exception&O 9Zend_Db_Adapter_Mysqli&%N MZend_Db_Adapter_Mysqli_Exception&M ?Zend_Db_Adapter_Exception&L 3Zend_Db_Adapter_Db2&"K GZend_Db_Adapter_Db2_Exception&J =Zend_Db_Adapter_Abstract&I Zend_Date&H 3Zend_Date_Exception&G 5Zend_Date_DateObject&F -Zend_Date_Cities&E 'Zend_Currency&D ;Zend_Currency_Exception&!C EZend_Controller_Router_Route&(B SZend_Controller_Router_Route_Static&'A QZend_Controller_Router_Route_Regex&(@ SZend_Controller_Router_Route_Module&#? IZend_Controller_Router_Rewrite&%> MZend_Controller_Router_Exception&$= KZend_Controller_Router_Abstract&"< GZend_Controller_Response_Http&'; QZend_Controller_Response_Exception&!: EZend_Controller_Response_Cli&&9 OZend_Controller_Response_Abstract&!8 EZend_Controller_Request_Http&&7 OZend_Controller_Request_Exception&&6 OZend_Controller_Request_Apache404&%5 MZend_Controller_Request_Abstract&(4 SZend_Controller_Plugin_ErrorHandler&"3 GZend_Controller_Plugin_Broker&$2 KZend_Controller_Plugin_Abstract&1 7Zend_Controller_Front&0 ?Zend_Controller_Exception&(/ SZend_Controller_Dispatcher_Standard&). UZend_Controller_Dispatcher_Exception&(- SZend_Controller_Dispatcher_Abstract&, 9Zend_Controller_Action&(+ SZend_Controller_Action_HelperBroker&/* aZend_Controller_Action_Helper_ViewRenderer&&) OZend_Controller_Action_Helper_Url&-( ]Zend_Controller_Action_Helper_Redirector&1' eZend_Controller_Action_Helper_FlashMessenger&+& YZend_Controller_Action_Helper_Abstract&%% MZend_Controller_Action_Exception&$ 3Zend_Console_Getopt&"# GZend_Console_Getopt_Exception&" #Zend_Config&! +Zend_Config_Xml&  +Zend_Config_Ini& 7Zend_Config_Exception& !Zend_Cache& =Zend_Cache_Frontend_Page& AZend_Cache_Frontend_Output&! EZend_Cache_Frontend_Function& =Zend_Cache_Frontend_File& ?Zend_Cache_Frontend_Class& 5Zend_Cache_Exception& +Zend_Cache_Core& 1Zend_Cache_Backend&$ KZend_Cache_Backend_ZendPlatform& ;Zend_Cache_Backend_Test& ?Zend_Cache_Backend_Sqlite&! EZend_Cache_Backend_Memcached& ;Zend_Cache_Backend_File& 9Zend_Cache_Backend_Apc& Zend_Auth& ?Zend_Auth_Storage_Session&$ KZend_Auth_Storage_NonPersistent&  CZend_Auth_Storage_Exception& -Zend_Auth_Result&
 3Zend_Auth_Exception&	 9Zend_Auth_Adapter_Http&) UZend_Auth_Adapter_Http_Resolver_File&. _Zend_Auth_Adapter_Http_Resolver_Exception&   i  y_>!pU=kL.{^=lE




Z
4
				k	A	}\@iN'|O$Z)^4j6}L&nQ9                 #` IZend_Gdata_Gapps_EmailListFeed&$_ KZend_Gdata_Gapps_EmailListEntry&^ +Zend_Gdata_Feed&] 5Zend_Gdata_Extension&\ =Zend_Gdata_Extension_Who&[ AZend_Gdata_Extension_Where&Z ?Zend_Gdata_Extension_When&$Y KZend_Gdata_Extension_Visibility&&X OZend_Gdata_Extension_Transparency&"W GZend_Gdata_Extension_Reminder&-V ]Zend_Gdata_Extension_RecurrenceException&$U KZend_Gdata_Extension_Recurrence&'T QZend_Gdata_Extension_OriginalEvent&0S cZend_Gdata_Extension_OpenSearchTotalResults&.R _Zend_Gdata_Extension_OpenSearchStartIndex&0Q cZend_Gdata_Extension_OpenSearchItemsPerPage&"P GZend_Gdata_Extension_FeedLink&*O WZend_Gdata_Extension_ExtendedProperty&%N MZend_Gdata_Extension_EventStatus&#M IZend_Gdata_Extension_EntryLink&"L GZend_Gdata_Extension_Comments&&K OZend_Gdata_Extension_AttendeeType&(J SZend_Gdata_Extension_AttendeeStatus&I -Zend_Gdata_Entry&H 9Zend_Gdata_ClientLogin&G 3Zend_Gdata_Calendar&!F EZend_Gdata_Calendar_ListFeed&"E GZend_Gdata_Calendar_ListEntry&-D ]Zend_Gdata_Calendar_Extension_WebContent&+C YZend_Gdata_Calendar_Extension_Timezone&9B uZend_Gdata_Calendar_Extension_SendEventNotifications&+A YZend_Gdata_Calendar_Extension_Selected&+@ YZend_Gdata_Calendar_Extension_QuickAdd&'? QZend_Gdata_Calendar_Extension_Link&)> UZend_Gdata_Calendar_Extension_Hidden&(= SZend_Gdata_Calendar_Extension_Color&.< _Zend_Gdata_Calendar_Extension_AccessLevel&#; IZend_Gdata_Calendar_EventQuery&": GZend_Gdata_Calendar_EventFeed&#9 IZend_Gdata_Calendar_EventEntry&8 1Zend_Gdata_AuthSub&7 )Zend_Gdata_App&6 3Zend_Gdata_App_Util&,5 [Zend_Gdata_App_InvalidArgumentException&!4 EZend_Gdata_App_HttpException&$3 KZend_Gdata_App_FeedSourceParent&#2 IZend_Gdata_App_FeedEntryParent&1 3Zend_Gdata_App_Feed&0 =Zend_Gdata_App_Extension&!/ EZend_Gdata_App_Extension_Uri&%. MZend_Gdata_App_Extension_Updated&#- IZend_Gdata_App_Extension_Title&", GZend_Gdata_App_Extension_Text&%+ MZend_Gdata_App_Extension_Summary&&* OZend_Gdata_App_Extension_Subtitle&$) KZend_Gdata_App_Extension_Source&$( KZend_Gdata_App_Extension_Rights&'' QZend_Gdata_App_Extension_Published&$& KZend_Gdata_App_Extension_Person&"% GZend_Gdata_App_Extension_Name&"$ GZend_Gdata_App_Extension_Logo&"# GZend_Gdata_App_Extension_Link& " CZend_Gdata_App_Extension_Id&"! GZend_Gdata_App_Extension_Icon&'  QZend_Gdata_App_Extension_Generator&# IZend_Gdata_App_Extension_Email&% MZend_Gdata_App_Extension_Element&# IZend_Gdata_App_Extension_Draft&% MZend_Gdata_App_Extension_Control&) UZend_Gdata_App_Extension_Contributor&% MZend_Gdata_App_Extension_Content&& OZend_Gdata_App_Extension_Category&$ KZend_Gdata_App_Extension_Author& =Zend_Gdata_App_Exception& 5Zend_Gdata_App_Entry&, [Zend_Gdata_App_CaptchaRequiredException& 3Zend_Gdata_App_Base&* WZend_Gdata_App_BadMethodCallException&! EZend_Gdata_App_AuthException& #Zend_Filter& 7Zend_Filter_StripTags& 9Zend_Filter_StringTrim& ?Zend_Filter_StringToUpper& ?Zend_Filter_StringToLower& 5Zend_Filter_RealPath& +Zend_Filter_Int&
 /Zend_Filter_Input&	 =Zend_Filter_HtmlEntities& 7Zend_Filter_Exception& +Zend_Filter_Dir& 1Zend_Filter_Digits& 5Zend_Filter_BaseName& /Zend_Filter_Alpha& /Zend_Filter_Alnum& Zend_Feed& 'Zend_Feed_Rss&  3Zend_Feed_Exception& 3Zend_Feed_Entry_Rss&~ 5Zend_Feed_Entry_Atom&} =Zend_Feed_Entry_Abstract&| /Zend_Feed_Element&{ /Zend_Feed_Builder&z =Zend_Feed_Builder_Header&$y KZend_Feed_Builder_Header_Itunes& x CZend_Feed_Builder_Exception&   n  wF'}T-tR/c@!t[1



N
				m	<	|Q*kO4 bG$zY7rV<%oDcB#~Y3          N =Zend_Mail_Transport_Smtp&!M EZend_Mail_Transport_Sendmail&"L GZend_Mail_Transport_Exception&!K EZend_Mail_Transport_Abstract&J /Zend_Mail_Storage&'I QZend_Mail_Storage_Writable_Maildir&H 9Zend_Mail_Storage_Pop3&G 9Zend_Mail_Storage_Mbox&F ?Zend_Mail_Storage_Maildir&E 9Zend_Mail_Storage_Imap&D =Zend_Mail_Storage_Folder&"C GZend_Mail_Storage_Folder_Mbox&%B MZend_Mail_Storage_Folder_Maildir& A CZend_Mail_Storage_Exception&@ AZend_Mail_Storage_Abstract&? ;Zend_Mail_Protocol_Smtp&'> QZend_Mail_Protocol_Smtp_Auth_Plain&'= QZend_Mail_Protocol_Smtp_Auth_Login&)< UZend_Mail_Protocol_Smtp_Auth_Crammd5&; ;Zend_Mail_Protocol_Pop3&: ;Zend_Mail_Protocol_Imap&!9 EZend_Mail_Protocol_Exception& 8 CZend_Mail_Protocol_Abstract&7 )Zend_Mail_Part&6 /Zend_Mail_Message&5 3Zend_Mail_Exception&4 Zend_Log&3 9Zend_Log_Writer_Stream&2 5Zend_Log_Writer_Null&1 5Zend_Log_Writer_Mock&0 1Zend_Log_Writer_Db&/ =Zend_Log_Writer_Abstract&. 9Zend_Log_Formatter_Xml&- ?Zend_Log_Formatter_Simple&, =Zend_Log_Filter_Suppress&+ =Zend_Log_Filter_Priority&* ;Zend_Log_Filter_Message&) 1Zend_Log_Exception&( #Zend_Locale&' -Zend_Locale_Math&& =Zend_Locale_Math_PhpMath&% AZend_Locale_Math_Exception&$ 1Zend_Locale_Format&# 7Zend_Locale_Exception&" -Zend_Locale_Data&!! EZend_Locale_Data_Translation&  #Zend_Loader& Zend_Json& 3Zend_Json_Exception& /Zend_Json_Encoder& /Zend_Json_Decoder& 1Zend_Http_Response& 3Zend_Http_Exception& 3Zend_Http_CookieJar& -Zend_Http_Cookie& -Zend_Http_Client& AZend_Http_Client_Exception&" GZend_Http_Client_Adapter_Test&$ KZend_Http_Client_Adapter_Socket&# IZend_Http_Client_Adapter_Proxy&' QZend_Http_Client_Adapter_Exception& !Zend_Gdata& ;Zend_Gdata_Spreadsheets&* WZend_Gdata_Spreadsheets_WorksheetFeed&+ YZend_Gdata_Spreadsheets_WorksheetEntry&, [Zend_Gdata_Spreadsheets_SpreadsheetFeed&- ]Zend_Gdata_Spreadsheets_SpreadsheetEntry&& OZend_Gdata_Spreadsheets_ListQuery&%
 MZend_Gdata_Spreadsheets_ListFeed&&	 OZend_Gdata_Spreadsheets_ListEntry&/ aZend_Gdata_Spreadsheets_Extension_RowCount&- ]Zend_Gdata_Spreadsheets_Extension_Custom&/ aZend_Gdata_Spreadsheets_Extension_ColCount&+ YZend_Gdata_Spreadsheets_Extension_Cell&* WZend_Gdata_Spreadsheets_DocumentQuery&& OZend_Gdata_Spreadsheets_CellQuery&% MZend_Gdata_Spreadsheets_CellFeed&& OZend_Gdata_Spreadsheets_CellEntry&  -Zend_Gdata_Query& AZend_Gdata_Kind_EventEntry&~ -Zend_Gdata_Gbase&"} GZend_Gdata_Gbase_SnippetQuery&!| EZend_Gdata_Gbase_SnippetFeed&"{ GZend_Gdata_Gbase_SnippetEntry&z 9Zend_Gdata_Gbase_Query&y AZend_Gdata_Gbase_ItemQuery&x ?Zend_Gdata_Gbase_ItemFeed&w AZend_Gdata_Gbase_ItemEntry&v 7Zend_Gdata_Gbase_Feed&-u ]Zend_Gdata_Gbase_Extension_BaseAttribute&t 9Zend_Gdata_Gbase_Entry&s -Zend_Gdata_Gapps&r AZend_Gdata_Gapps_UserQuery&q ?Zend_Gdata_Gapps_UserFeed&p AZend_Gdata_Gapps_UserEntry&&o OZend_Gdata_Gapps_ServiceException&n 9Zend_Gdata_Gapps_Query&#m IZend_Gdata_Gapps_NicknameQuery&"l GZend_Gdata_Gapps_NicknameFeed&#k IZend_Gdata_Gapps_NicknameEntry&%j MZend_Gdata_Gapps_Extension_Quota&(i SZend_Gdata_Gapps_Extension_Nickname&$h KZend_Gdata_Gapps_Extension_Name&%g MZend_Gdata_Gapps_Extension_Login&)f UZend_Gdata_Gapps_Extension_EmailList&e 9Zend_Gdata_Gapps_Error&-d ]Zend_Gdata_Gapps_EmailListRecipientQuery&,c [Zend_Gdata_Gapps_EmailListRecipientFeed&-b ]Zend_Gdata_Gapps_EmailListRecipientEntry&$a KZend_Gdata_Gapps_EmailListQuery&   o  y]<`A mR4pT/
r^E)




t
Q
;
						p	L	.	}T1kPnC]9#tLvDi7c;                  != EZend_Pdf_Resource_Image_Jpeg&< 9Zend_Pdf_Resource_Font&$; KZend_Pdf_Resource_Font_Standard&1: eZend_Pdf_Resource_Font_Standard_ZapfDingbats&/9 aZend_Pdf_Resource_Font_Standard_TimesRoman&08 cZend_Pdf_Resource_Font_Standard_TimesItalic&47 kZend_Pdf_Resource_Font_Standard_TimesBoldItalic&.6 _Zend_Pdf_Resource_Font_Standard_TimesBold&+5 YZend_Pdf_Resource_Font_Standard_Symbol&54 mZend_Pdf_Resource_Font_Standard_HelveticaOblique&93 uZend_Pdf_Resource_Font_Standard_HelveticaBoldOblique&22 gZend_Pdf_Resource_Font_Standard_HelveticaBold&.1 _Zend_Pdf_Resource_Font_Standard_Helvetica&30 iZend_Pdf_Resource_Font_Standard_CourierOblique&7/ qZend_Pdf_Resource_Font_Standard_CourierBoldOblique&0. cZend_Pdf_Resource_Font_Standard_CourierBold&,- [Zend_Pdf_Resource_Font_Standard_Courier&$, KZend_Pdf_Resource_Font_OpenType&-+ ]Zend_Pdf_Resource_Font_OpenType_TrueType&* /Zend_Pdf_PhpArray&) +Zend_Pdf_Parser&( 9Zend_Pdf_Parser_Stream&' 'Zend_Pdf_Page&& )Zend_Pdf_Image&% 'Zend_Pdf_Font& $ CZend_Pdf_Filter_Compression&$# KZend_Pdf_Filter_Compression_Lzw&&" OZend_Pdf_Filter_Compression_Flate&! =Zend_Pdf_Filter_AsciiHex&  ;Zend_Pdf_Filter_Ascii85&" GZend_Pdf_FileParserDataSource&) UZend_Pdf_FileParserDataSource_String&' QZend_Pdf_FileParserDataSource_File& 3Zend_Pdf_FileParser& ?Zend_Pdf_FileParser_Image&" GZend_Pdf_FileParser_Image_Png& =Zend_Pdf_FileParser_Font&& OZend_Pdf_FileParser_Font_OpenType&/ aZend_Pdf_FileParser_Font_OpenType_TrueType& 1Zend_Pdf_Exception& ;Zend_Pdf_ElementFactory&" GZend_Pdf_ElementFactory_Proxy& -Zend_Pdf_Element& ;Zend_Pdf_Element_String&# IZend_Pdf_Element_String_Binary& ;Zend_Pdf_Element_Stream& AZend_Pdf_Element_Reference&% MZend_Pdf_Element_Reference_Table&' QZend_Pdf_Element_Reference_Context& ;Zend_Pdf_Element_Object&# IZend_Pdf_Element_Object_Stream&
 =Zend_Pdf_Element_Numeric&	 7Zend_Pdf_Element_Null& 7Zend_Pdf_Element_Name&  CZend_Pdf_Element_Dictionary& =Zend_Pdf_Element_Boolean& 9Zend_Pdf_Element_Array& )Zend_Pdf_Color& 1Zend_Pdf_Color_Rgb& 3Zend_Pdf_Color_Html& =Zend_Pdf_Color_GrayScale&  3Zend_Pdf_Color_Cmyk& 'Zend_Pdf_Cmap&~ AZend_Pdf_Cmap_TrimmedTable&!} EZend_Pdf_Cmap_SegmentToDelta&| AZend_Pdf_Cmap_ByteEncoding&&{ OZend_Pdf_Cmap_ByteEncoding_Static&z Zend_Mime&y )Zend_Mime_Part&x /Zend_Mime_Message&w 3Zend_Mime_Exception&v -Zend_Mime_Decode&u #Zend_Memory&t /Zend_Memory_Value&s 3Zend_Memory_Manager&r 7Zend_Memory_Exception&q 7Zend_Memory_Container&"p GZend_Memory_Container_Movable&!o EZend_Memory_Container_Locked&!n EZend_Memory_AccessController&m 3Zend_Measure_Weight&l 3Zend_Measure_Volume&%k MZend_Measure_Viscosity_Kinematic&#j IZend_Measure_Viscosity_Dynamic&i 3Zend_Measure_Torque&h =Zend_Measure_Temperature&g 1Zend_Measure_Speed&f 7Zend_Measure_Pressure&e 1Zend_Measure_Power&d 3Zend_Measure_Number&c 9Zend_Measure_Lightness&b 3Zend_Measure_Length&a ?Zend_Measure_Illumination&` 9Zend_Measure_Frequency&_ 1Zend_Measure_Force&^ =Zend_Measure_Flow_Volume&] 9Zend_Measure_Flow_Mole&\ 9Zend_Measure_Flow_Mass&[ 9Zend_Measure_Exception&Z 3Zend_Measure_Energy&Y 5Zend_Measure_Density&X 5Zend_Measure_Current& W CZend_Measure_Cooking_Weight& V CZend_Measure_Cooking_Volume&U =Zend_Measure_Capacitance&T 3Zend_Measure_Binary&S /Zend_Measure_Area&R 1Zend_Measure_Angle&Q ?Zend_Measure_Acceleration&P 7Zend_Measure_Abstract&O Zend_Mail&   Y  pV8!yV6]$b&a&



o
J
)

				[	!xI#IT'c6{DU"c6tV1                              - ]Zend_Server_Reflection_Function_Abstract&% MZend_Server_Reflection_Exception&! EZend_Server_Reflection_Class& 7Zend_Server_Exception& 5Zend_Server_Abstract& 1Zend_Search_Lucene&$ KZend_Search_Lucene_Storage_File&+ YZend_Search_Lucene_Storage_File_Memory&/ aZend_Search_Lucene_Storage_File_Filesystem&) UZend_Search_Lucene_Storage_Directory&4 kZend_Search_Lucene_Storage_Directory_Filesystem&% MZend_Search_Lucene_Search_Weight&*
 WZend_Search_Lucene_Search_Weight_Term&,	 [Zend_Search_Lucene_Search_Weight_Phrase&/ aZend_Search_Lucene_Search_Weight_MultiTerm&+ YZend_Search_Lucene_Search_Weight_Empty&- ]Zend_Search_Lucene_Search_Weight_Boolean&) UZend_Search_Lucene_Search_Similarity&1 eZend_Search_Lucene_Search_Similarity_Default&) UZend_Search_Lucene_Search_QueryToken&3 iZend_Search_Lucene_Search_QueryParserException&1 eZend_Search_Lucene_Search_QueryParserContext&*  WZend_Search_Lucene_Search_QueryParser&) UZend_Search_Lucene_Search_QueryLexer&'~ QZend_Search_Lucene_Search_QueryHit&)} UZend_Search_Lucene_Search_QueryEntry&.| _Zend_Search_Lucene_Search_QueryEntry_Term&2{ gZend_Search_Lucene_Search_QueryEntry_Subquery&0z cZend_Search_Lucene_Search_QueryEntry_Phrase&$y KZend_Search_Lucene_Search_Query&)x UZend_Search_Lucene_Search_Query_Term&+w YZend_Search_Lucene_Search_Query_Phrase&.v _Zend_Search_Lucene_Search_Query_MultiTerm&2u gZend_Search_Lucene_Search_Query_Insignificant&*t WZend_Search_Lucene_Search_Query_Empty&,s [Zend_Search_Lucene_Search_Query_Boolean&:r wZend_Search_Lucene_Search_BooleanExpressionRecognizer&q =Zend_Search_Lucene_Proxy&%p MZend_Search_Lucene_PriorityQueue&$o KZend_Search_Lucene_Index_Writer&&n OZend_Search_Lucene_Index_TermInfo&"m GZend_Search_Lucene_Index_Term&+l YZend_Search_Lucene_Index_SegmentWriter&8k sZend_Search_Lucene_Index_SegmentWriter_StreamWriter&:j wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter&+i YZend_Search_Lucene_Index_SegmentMerger&6h oZend_Search_Lucene_Index_SegmentInfoPriorityQueue&)g UZend_Search_Lucene_Index_SegmentInfo&'f QZend_Search_Lucene_Index_FieldInfo&.e _Zend_Search_Lucene_Index_DictionaryLoader&!d EZend_Search_Lucene_FSMAction&c 9Zend_Search_Lucene_FSM&b =Zend_Search_Lucene_Field&!a EZend_Search_Lucene_Exception& ` CZend_Search_Lucene_Document&%_ MZend_Search_Lucene_Document_Html&,^ [Zend_Search_Lucene_Analysis_TokenFilter&6] oZend_Search_Lucene_Analysis_TokenFilter_StopWords&7\ qZend_Search_Lucene_Analysis_TokenFilter_ShortWords&6[ oZend_Search_Lucene_Analysis_TokenFilter_LowerCase&&Z OZend_Search_Lucene_Analysis_Token&)Y UZend_Search_Lucene_Analysis_Analyzer&0X cZend_Search_Lucene_Analysis_Analyzer_Common&8W sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num&5V mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8&8U sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum&IT Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive&5S mZend_Search_Lucene_Analysis_Analyzer_Common_Text&FR Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive&Q 7Zend_Search_Exception&P -Zend_Rest_Server&O AZend_Rest_Server_Exception&N 3Zend_Rest_Exception&M -Zend_Rest_Client&L ;Zend_Rest_Client_Result&K AZend_Rest_Client_Exception&J 'Zend_Registry&I Zend_Pdf&!H EZend_Pdf_UpdateInfoContainer&G -Zend_Pdf_Trailer&F ;Zend_Pdf_Trailer_Keeper&E AZend_Pdf_Trailer_Generator&D )Zend_Pdf_Style&C 7Zend_Pdf_StringParser&B /Zend_Pdf_Resource&#A IZend_Pdf_Resource_ImageFactory&@ ;Zend_Pdf_Resource_Image&!? EZend_Pdf_Resource_Image_Tiff& > CZend_Pdf_Resource_Image_Png&   p  e<d8b<\2mM(




\
1
				q	G	sL"`;wO"|Y4|`D&
sQ7kI'y]:$              1Zend_View_Abstract& %Zend_Version& 'Zend_Validate& AZend_Validate_StringLength& 3Zend_Validate_Regex& 9Zend_Validate_NotEmpty&  9Zend_Validate_LessThan& -Zend_Validate_Ip&~ /Zend_Validate_Int&} 7Zend_Validate_InArray&| 9Zend_Validate_Hostname&{ ?Zend_Validate_Hostname_Se&z ?Zend_Validate_Hostname_No&y ?Zend_Validate_Hostname_Li&x ?Zend_Validate_Hostname_Hu&w ?Zend_Validate_Hostname_Fi&v ?Zend_Validate_Hostname_De&u ?Zend_Validate_Hostname_Ch&t ?Zend_Validate_Hostname_At&s /Zend_Validate_Hex&r ?Zend_Validate_GreaterThan&q 3Zend_Validate_Float&p ;Zend_Validate_Exception&o AZend_Validate_EmailAddress&n 5Zend_Validate_Digits&m 1Zend_Validate_Date&l 3Zend_Validate_Ccnum&k 7Zend_Validate_Between&j 3Zend_Validate_Alpha&i 3Zend_Validate_Alnum&h 9Zend_Validate_Abstract&g Zend_Uri&f 'Zend_Uri_Http&e 1Zend_Uri_Exception&d )Zend_Translate&c =Zend_Translate_Exception&b 9Zend_Translate_Adapter&!a EZend_Translate_Adapter_Xliff&` AZend_Translate_Adapter_Tmx&_ ?Zend_Translate_Adapter_Qt&#^ IZend_Translate_Adapter_Gettext&] AZend_Translate_Adapter_Csv&!\ EZend_Translate_Adapter_Array&[ %Zend_Session&)Z UZend_Session_Validator_HttpUserAgent&$Y KZend_Session_Validator_Abstract&X 9Zend_Session_Namespace&W 9Zend_Session_Exception&V 7Zend_Session_Abstract&U 1Zend_Service_Yahoo&$T KZend_Service_Yahoo_WebResultSet&!S EZend_Service_Yahoo_WebResult&!R EZend_Service_Yahoo_ResultSet&Q ?Zend_Service_Yahoo_Result&%P MZend_Service_Yahoo_NewsResultSet&"O GZend_Service_Yahoo_NewsResult&&N OZend_Service_Yahoo_LocalResultSet&#M IZend_Service_Yahoo_LocalResult&&L OZend_Service_Yahoo_ImageResultSet&#K IZend_Service_Yahoo_ImageResult&J =Zend_Service_Yahoo_Image&I ;Zend_Service_StrikeIron&(H SZend_Service_StrikeIron_ZipCodeInfo&2G gZend_Service_StrikeIron_USAddressVerification&-F ]Zend_Service_StrikeIron_SalesUseTaxBasic&&E OZend_Service_StrikeIron_Exception&&D OZend_Service_StrikeIron_Decorator&!C EZend_Service_StrikeIron_Base&B 1Zend_Service_Simpy&$A KZend_Service_Simpy_WatchlistSet&*@ WZend_Service_Simpy_WatchlistFilterSet&'? QZend_Service_Simpy_WatchlistFilter&!> EZend_Service_Simpy_Watchlist&= ?Zend_Service_Simpy_TagSet&< 9Zend_Service_Simpy_Tag&; AZend_Service_Simpy_NoteSet&: ;Zend_Service_Simpy_Note&9 AZend_Service_Simpy_LinkSet&!8 EZend_Service_Simpy_LinkQuery&7 ;Zend_Service_Simpy_Link&6 3Zend_Service_Flickr&"5 GZend_Service_Flickr_ResultSet&4 AZend_Service_Flickr_Result&3 ?Zend_Service_Flickr_Image&2 9Zend_Service_Exception&1 9Zend_Service_Delicious&&0 OZend_Service_Delicious_SimplePost&$/ KZend_Service_Delicious_PostList& . CZend_Service_Delicious_Post&%- MZend_Service_Delicious_Exception& , CZend_Service_Audioscrobbler&+ 3Zend_Service_Amazon&'* QZend_Service_Amazon_SimilarProduct&") GZend_Service_Amazon_ResultSet&( ?Zend_Service_Amazon_Query&!' EZend_Service_Amazon_OfferSet&& ?Zend_Service_Amazon_Offer&&% OZend_Service_Amazon_ListmaniaList&$ =Zend_Service_Amazon_Item&# ?Zend_Service_Amazon_Image&(" SZend_Service_Amazon_EditorialReview&'! QZend_Service_Amazon_CustomerReview&$  KZend_Service_Amazon_Accessories& 5Zend_Service_Akismet& 7Zend_Service_Abstract& 9Zend_Server_Reflection&' QZend_Server_Reflection_ReturnValue&% MZend_Server_Reflection_Prototype&% MZend_Server_Reflection_Parameter&  CZend_Server_Reflection_Node&" GZend_Server_Reflection_Method&$ KZend_Server_Reflection_Function&   o uP.
|Y6gU0X=gF! 




]
:
					p	V	;	!oKtL*rJ/oN;n?
|P1lDuP&                           !u EZend_Controller_Response_Cli'&t OZend_Controller_Response_Abstract'!s EZend_Controller_Request_Http'&r OZend_Controller_Request_Exception'&q OZend_Controller_Request_Apache404'%p MZend_Controller_Request_Abstract'(o SZend_Controller_Plugin_ErrorHandler'"n GZend_Controller_Plugin_Broker'$m KZend_Controller_Plugin_Abstract'l 7Zend_Controller_Front'k ?Zend_Controller_Exception'(j SZend_Controller_Dispatcher_Standard')i UZend_Controller_Dispatcher_Exception'(h SZend_Controller_Dispatcher_Abstract'g 9Zend_Controller_Action'(f SZend_Controller_Action_HelperBroker'/e aZend_Controller_Action_Helper_ViewRenderer'&d OZend_Controller_Action_Helper_Url'-c ]Zend_Controller_Action_Helper_Redirector'1b eZend_Controller_Action_Helper_FlashMessenger'+a YZend_Controller_Action_Helper_Abstract'%` MZend_Controller_Action_Exception'_ 3Zend_Console_Getopt'"^ GZend_Console_Getopt_Exception'] #Zend_Config'\ +Zend_Config_Xml'[ +Zend_Config_Ini'Z 7Zend_Config_Exception'Y !Zend_Cache'X =Zend_Cache_Frontend_Page'W AZend_Cache_Frontend_Output'!V EZend_Cache_Frontend_Function'U =Zend_Cache_Frontend_File'T ?Zend_Cache_Frontend_Class'S 5Zend_Cache_Exception'R +Zend_Cache_Core'Q 1Zend_Cache_Backend'$P KZend_Cache_Backend_ZendPlatform'O ;Zend_Cache_Backend_Test'N ?Zend_Cache_Backend_Sqlite'!M EZend_Cache_Backend_Memcached'L ;Zend_Cache_Backend_File'K 9Zend_Cache_Backend_Apc'J Zend_Auth'I ?Zend_Auth_Storage_Session'$H KZend_Auth_Storage_NonPersistent' G CZend_Auth_Storage_Exception'F -Zend_Auth_Result'E 3Zend_Auth_Exception'D 9Zend_Auth_Adapter_Http')C UZend_Auth_Adapter_Http_Resolver_File'.B _Zend_Auth_Adapter_Http_Resolver_Exception' A CZend_Auth_Adapter_Exception'@ =Zend_Auth_Adapter_Digest'? ?Zend_Auth_Adapter_DbTable'> Zend_Acl'= 'Zend_Acl_Role'< 9Zend_Acl_Role_Registry'%; MZend_Acl_Role_Registry_Exception': /Zend_Acl_Resource'9 1Zend_Acl_Exception'8 /Zend_XmlRpc_Value&7 =Zend_XmlRpc_Value_Struct&6 =Zend_XmlRpc_Value_String&5 =Zend_XmlRpc_Value_Scalar&4 ?Zend_XmlRpc_Value_Integer& 3 CZend_XmlRpc_Value_Exception&2 =Zend_XmlRpc_Value_Double&1 AZend_XmlRpc_Value_DateTime&!0 EZend_XmlRpc_Value_Collection&/ ?Zend_XmlRpc_Value_Boolean&. =Zend_XmlRpc_Value_Base64&- ;Zend_XmlRpc_Value_Array&, 1Zend_XmlRpc_Server&+ =Zend_XmlRpc_Server_Fault&!* EZend_XmlRpc_Server_Exception&) =Zend_XmlRpc_Server_Cache&( 5Zend_XmlRpc_Response&' ?Zend_XmlRpc_Response_Http&& 3Zend_XmlRpc_Request&% ?Zend_XmlRpc_Request_Stdin&$ =Zend_XmlRpc_Request_Http&# /Zend_XmlRpc_Fault&" 7Zend_XmlRpc_Exception&! 1Zend_XmlRpc_Client&#  IZend_XmlRpc_Client_ServerProxy&+ YZend_XmlRpc_Client_ServerIntrospection&+ YZend_XmlRpc_Client_IntrospectException&% MZend_XmlRpc_Client_HttpException&& OZend_XmlRpc_Client_FaultException&! EZend_XmlRpc_Client_Exception& Zend_View& 5Zend_View_Helper_Url& ?Zend_View_Helper_HtmlList&" GZend_View_Helper_FormTextarea& ?Zend_View_Helper_FormText&  CZend_View_Helper_FormSubmit&  CZend_View_Helper_FormSelect& AZend_View_Helper_FormReset& AZend_View_Helper_FormRadio&" GZend_View_Helper_FormPassword& ?Zend_View_Helper_FormNote& AZend_View_Helper_FormLabel& AZend_View_Helper_FormImage&  CZend_View_Helper_FormHidden& ?Zend_View_Helper_FormFile&! EZend_View_Helper_FormElement&"
 GZend_View_Helper_FormCheckbox& 	 CZend_View_Helper_FormButton&! EZend_View_Helper_DeclareVars& 3Zend_View_Exception&   t  ^7oY@#pG(yW7hG0



z
O
.
					r	N	4	oO+pT8"nM3}iDe=mD\6i@    #i IZend_Gdata_App_Extension_Title'"h GZend_Gdata_App_Extension_Text'%g MZend_Gdata_App_Extension_Summary'&f OZend_Gdata_App_Extension_Subtitle'$e KZend_Gdata_App_Extension_Source'$d KZend_Gdata_App_Extension_Rights''c QZend_Gdata_App_Extension_Published'$b KZend_Gdata_App_Extension_Person'"a GZend_Gdata_App_Extension_Name'"` GZend_Gdata_App_Extension_Logo'"_ GZend_Gdata_App_Extension_Link' ^ CZend_Gdata_App_Extension_Id'"] GZend_Gdata_App_Extension_Icon''\ QZend_Gdata_App_Extension_Generator'#[ IZend_Gdata_App_Extension_Email'%Z MZend_Gdata_App_Extension_Element'#Y IZend_Gdata_App_Extension_Draft'%X MZend_Gdata_App_Extension_Control')W UZend_Gdata_App_Extension_Contributor'%V MZend_Gdata_App_Extension_Content'&U OZend_Gdata_App_Extension_Category'$T KZend_Gdata_App_Extension_Author'S =Zend_Gdata_App_Exception'R 5Zend_Gdata_App_Entry',Q [Zend_Gdata_App_CaptchaRequiredException'#P IZend_Gdata_App_BaseMediaSource'O 3Zend_Gdata_App_Base'*N WZend_Gdata_App_BadMethodCallException'!M EZend_Gdata_App_AuthException'L #Zend_Filter'K 7Zend_Filter_StripTags'J 9Zend_Filter_StringTrim'I ?Zend_Filter_StringToUpper'H ?Zend_Filter_StringToLower'G 5Zend_Filter_RealPath'F +Zend_Filter_Int'E /Zend_Filter_Input'D =Zend_Filter_HtmlEntities'C 7Zend_Filter_Exception'B +Zend_Filter_Dir'A 1Zend_Filter_Digits'@ 5Zend_Filter_BaseName'? /Zend_Filter_Alpha'> /Zend_Filter_Alnum'= Zend_Feed'< 'Zend_Feed_Rss'; 3Zend_Feed_Exception': 3Zend_Feed_Entry_Rss'9 5Zend_Feed_Entry_Atom'8 =Zend_Feed_Entry_Abstract'7 /Zend_Feed_Element'6 /Zend_Feed_Builder'5 =Zend_Feed_Builder_Header'$4 KZend_Feed_Builder_Header_Itunes' 3 CZend_Feed_Builder_Exception'2 ;Zend_Feed_Builder_Entry'1 )Zend_Feed_Atom'0 1Zend_Feed_Abstract'/ )Zend_Exception'. !Zend_Debug'- Zend_Db', 'Zend_Db_Table'+ 5Zend_Db_Table_Rowset'"* GZend_Db_Table_Rowset_Abstract') /Zend_Db_Table_Row' ( CZend_Db_Table_Row_Exception'' AZend_Db_Table_Row_Abstract'& ;Zend_Db_Table_Exception'% 9Zend_Db_Table_Abstract'$ /Zend_Db_Statement'# 7Zend_Db_Statement_Pdo'" ?Zend_Db_Statement_Pdo_Ibm'! =Zend_Db_Statement_Oracle''  QZend_Db_Statement_Oracle_Exception' =Zend_Db_Statement_Mysqli'' QZend_Db_Statement_Mysqli_Exception'  CZend_Db_Statement_Exception' 7Zend_Db_Statement_Db2'$ KZend_Db_Statement_Db2_Exception' )Zend_Db_Select' =Zend_Db_Select_Exception' -Zend_Db_Profiler' 9Zend_Db_Profiler_Query' AZend_Db_Profiler_Exception' %Zend_Db_Expr' /Zend_Db_Exception' AZend_Db_Adapter_Pdo_Sqlite' ?Zend_Db_Adapter_Pdo_Pgsql' ;Zend_Db_Adapter_Pdo_Oci' ?Zend_Db_Adapter_Pdo_Mysql' ?Zend_Db_Adapter_Pdo_Mssql' ;Zend_Db_Adapter_Pdo_Ibm'! EZend_Db_Adapter_Pdo_Abstract' 9Zend_Db_Adapter_Oracle'% MZend_Db_Adapter_Oracle_Exception'
 9Zend_Db_Adapter_Mysqli'%	 MZend_Db_Adapter_Mysqli_Exception' ?Zend_Db_Adapter_Exception' 3Zend_Db_Adapter_Db2'" GZend_Db_Adapter_Db2_Exception' =Zend_Db_Adapter_Abstract' Zend_Date' 3Zend_Date_Exception' 5Zend_Date_DateObject' -Zend_Date_Cities'  'Zend_Currency' ;Zend_Currency_Exception'!~ EZend_Controller_Router_Route'(} SZend_Controller_Router_Route_Static''| QZend_Controller_Router_Route_Regex'({ SZend_Controller_Router_Route_Module'#z IZend_Controller_Router_Rewrite'%y MZend_Controller_Router_Exception'$x KZend_Controller_Router_Abstract'"w GZend_Controller_Response_Http''v QZend_Controller_Response_Exception'   d  uN&eI2qER#lB





V
.
 				[	3	Z4\*N(pS;c2i@`>qO,                        "M GZend_Gdata_Gbase_SnippetEntry'L 9Zend_Gdata_Gbase_Query'K AZend_Gdata_Gbase_ItemQuery'J ?Zend_Gdata_Gbase_ItemFeed'I AZend_Gdata_Gbase_ItemEntry'H 7Zend_Gdata_Gbase_Feed'-G ]Zend_Gdata_Gbase_Extension_BaseAttribute'F 9Zend_Gdata_Gbase_Entry'E -Zend_Gdata_Gapps'D AZend_Gdata_Gapps_UserQuery'C ?Zend_Gdata_Gapps_UserFeed'B AZend_Gdata_Gapps_UserEntry'&A OZend_Gdata_Gapps_ServiceException'@ 9Zend_Gdata_Gapps_Query'#? IZend_Gdata_Gapps_NicknameQuery'"> GZend_Gdata_Gapps_NicknameFeed'#= IZend_Gdata_Gapps_NicknameEntry'%< MZend_Gdata_Gapps_Extension_Quota'(; SZend_Gdata_Gapps_Extension_Nickname'$: KZend_Gdata_Gapps_Extension_Name'%9 MZend_Gdata_Gapps_Extension_Login')8 UZend_Gdata_Gapps_Extension_EmailList'7 9Zend_Gdata_Gapps_Error'-6 ]Zend_Gdata_Gapps_EmailListRecipientQuery',5 [Zend_Gdata_Gapps_EmailListRecipientFeed'-4 ]Zend_Gdata_Gapps_EmailListRecipientEntry'$3 KZend_Gdata_Gapps_EmailListQuery'#2 IZend_Gdata_Gapps_EmailListFeed'$1 KZend_Gdata_Gapps_EmailListEntry'0 +Zend_Gdata_Feed'/ 5Zend_Gdata_Extension'. =Zend_Gdata_Extension_Who'- AZend_Gdata_Extension_Where', ?Zend_Gdata_Extension_When'$+ KZend_Gdata_Extension_Visibility'&* OZend_Gdata_Extension_Transparency'") GZend_Gdata_Extension_Reminder'-( ]Zend_Gdata_Extension_RecurrenceException'$' KZend_Gdata_Extension_Recurrence' & CZend_Gdata_Extension_Rating''% QZend_Gdata_Extension_OriginalEvent'0$ cZend_Gdata_Extension_OpenSearchTotalResults'.# _Zend_Gdata_Extension_OpenSearchStartIndex'0" cZend_Gdata_Extension_OpenSearchItemsPerPage'"! GZend_Gdata_Extension_FeedLink'*  WZend_Gdata_Extension_ExtendedProperty'% MZend_Gdata_Extension_EventStatus'# IZend_Gdata_Extension_EntryLink'" GZend_Gdata_Extension_Comments'& OZend_Gdata_Extension_AttendeeType'( SZend_Gdata_Extension_AttendeeStatus' +Zend_Gdata_Exif' 5Zend_Gdata_Exif_Feed'# IZend_Gdata_Exif_Extension_Time'# IZend_Gdata_Exif_Extension_Tags'$ KZend_Gdata_Exif_Extension_Model'# IZend_Gdata_Exif_Extension_Make'" GZend_Gdata_Exif_Extension_Iso', [Zend_Gdata_Exif_Extension_ImageUniqueId'$ KZend_Gdata_Exif_Extension_FStop'* WZend_Gdata_Exif_Extension_FocalLength'$ KZend_Gdata_Exif_Extension_Flash'' QZend_Gdata_Exif_Extension_Exposure'' QZend_Gdata_Exif_Extension_Distance' 7Zend_Gdata_Exif_Entry' -Zend_Gdata_Entry' +Zend_Gdata_Docs'
 7Zend_Gdata_Docs_Query'%	 MZend_Gdata_Docs_DocumentListFeed'& OZend_Gdata_Docs_DocumentListEntry' 9Zend_Gdata_ClientLogin' 3Zend_Gdata_Calendar'! EZend_Gdata_Calendar_ListFeed'" GZend_Gdata_Calendar_ListEntry'- ]Zend_Gdata_Calendar_Extension_WebContent'+ YZend_Gdata_Calendar_Extension_Timezone'9 uZend_Gdata_Calendar_Extension_SendEventNotifications'+  YZend_Gdata_Calendar_Extension_Selected'+ YZend_Gdata_Calendar_Extension_QuickAdd''~ QZend_Gdata_Calendar_Extension_Link')} UZend_Gdata_Calendar_Extension_Hidden'(| SZend_Gdata_Calendar_Extension_Color'.{ _Zend_Gdata_Calendar_Extension_AccessLevel'#z IZend_Gdata_Calendar_EventQuery'"y GZend_Gdata_Calendar_EventFeed'#x IZend_Gdata_Calendar_EventEntry'w 1Zend_Gdata_AuthSub'v )Zend_Gdata_App'u 3Zend_Gdata_App_Util'#t IZend_Gdata_App_MediaFileSource's ?Zend_Gdata_App_MediaEntry'r AZend_Gdata_App_IOException',q [Zend_Gdata_App_InvalidArgumentException'!p EZend_Gdata_App_HttpException'$o KZend_Gdata_App_FeedSourceParent'#n IZend_Gdata_App_FeedEntryParent'm 3Zend_Gdata_App_Feed'l =Zend_Gdata_App_Extension'!k EZend_Gdata_App_Extension_Uri'%j MZend_Gdata_App_Extension_Updated'   \  R( Z*g:	wJjE



l
A
				[	%j>[-U0}Y?&{Lb8zZ2h;
                             *) WZend_Gdata_YouTube_Extension_Duration'-( ]Zend_Gdata_YouTube_Extension_Description')' UZend_Gdata_YouTube_Extension_Company''& QZend_Gdata_YouTube_Extension_Books'%% MZend_Gdata_YouTube_Extension_Age'#$ IZend_Gdata_YouTube_ContactFeed'$# KZend_Gdata_YouTube_ContactEntry'#" IZend_Gdata_YouTube_CommentFeed'$! KZend_Gdata_YouTube_CommentEntry'  ;Zend_Gdata_Spreadsheets'* WZend_Gdata_Spreadsheets_WorksheetFeed'+ YZend_Gdata_Spreadsheets_WorksheetEntry', [Zend_Gdata_Spreadsheets_SpreadsheetFeed'- ]Zend_Gdata_Spreadsheets_SpreadsheetEntry'& OZend_Gdata_Spreadsheets_ListQuery'% MZend_Gdata_Spreadsheets_ListFeed'& OZend_Gdata_Spreadsheets_ListEntry'/ aZend_Gdata_Spreadsheets_Extension_RowCount'- ]Zend_Gdata_Spreadsheets_Extension_Custom'/ aZend_Gdata_Spreadsheets_Extension_ColCount'+ YZend_Gdata_Spreadsheets_Extension_Cell'* WZend_Gdata_Spreadsheets_DocumentQuery'& OZend_Gdata_Spreadsheets_CellQuery'% MZend_Gdata_Spreadsheets_CellFeed'& OZend_Gdata_Spreadsheets_CellEntry' -Zend_Gdata_Query' /Zend_Gdata_Photos'  CZend_Gdata_Photos_UserQuery' AZend_Gdata_Photos_UserFeed'  CZend_Gdata_Photos_UserEntry' AZend_Gdata_Photos_TagEntry'!
 EZend_Gdata_Photos_PhotoQuery' 	 CZend_Gdata_Photos_PhotoFeed'! EZend_Gdata_Photos_PhotoEntry'& OZend_Gdata_Photos_Extension_Width'' QZend_Gdata_Photos_Extension_Weight'( SZend_Gdata_Photos_Extension_Version'% MZend_Gdata_Photos_Extension_User'* WZend_Gdata_Photos_Extension_Timestamp'* WZend_Gdata_Photos_Extension_Thumbnail'% MZend_Gdata_Photos_Extension_Size')  UZend_Gdata_Photos_Extension_Rotation'+ YZend_Gdata_Photos_Extension_QuotaLimit'-~ ]Zend_Gdata_Photos_Extension_QuotaCurrent')} UZend_Gdata_Photos_Extension_Position'(| SZend_Gdata_Photos_Extension_PhotoId'3{ iZend_Gdata_Photos_Extension_NumPhotosRemaining'*z WZend_Gdata_Photos_Extension_NumPhotos')y UZend_Gdata_Photos_Extension_Nickname'%x MZend_Gdata_Photos_Extension_Name'2w gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum')v UZend_Gdata_Photos_Extension_Location'#u IZend_Gdata_Photos_Extension_Id''t QZend_Gdata_Photos_Extension_Height'2s gZend_Gdata_Photos_Extension_CommentingEnabled'-r ]Zend_Gdata_Photos_Extension_CommentCount''q QZend_Gdata_Photos_Extension_Client')p UZend_Gdata_Photos_Extension_Checksum'*o WZend_Gdata_Photos_Extension_BytesUsed'(n SZend_Gdata_Photos_Extension_AlbumId''m QZend_Gdata_Photos_Extension_Access'#l IZend_Gdata_Photos_CommentEntry'!k EZend_Gdata_Photos_AlbumQuery' j CZend_Gdata_Photos_AlbumFeed'!i EZend_Gdata_Photos_AlbumEntry'h -Zend_Gdata_Media'g 7Zend_Gdata_Media_Feed'*f WZend_Gdata_Media_Extension_MediaTitle'.e _Zend_Gdata_Media_Extension_MediaThumbnail')d UZend_Gdata_Media_Extension_MediaText'0c cZend_Gdata_Media_Extension_MediaRestriction'+b YZend_Gdata_Media_Extension_MediaRating'+a YZend_Gdata_Media_Extension_MediaPlayer'-` ]Zend_Gdata_Media_Extension_MediaKeywords')_ UZend_Gdata_Media_Extension_MediaHash'*^ WZend_Gdata_Media_Extension_MediaGroup'0] cZend_Gdata_Media_Extension_MediaDescription'+\ YZend_Gdata_Media_Extension_MediaCredit'.[ _Zend_Gdata_Media_Extension_MediaCopyright',Z [Zend_Gdata_Media_Extension_MediaContent'-Y ]Zend_Gdata_Media_Extension_MediaCategory'X 9Zend_Gdata_Media_Entry'W AZend_Gdata_Kind_EventEntry'V )Zend_Gdata_Geo'U 3Zend_Gdata_Geo_Feed'$T KZend_Gdata_Geo_Extension_GmlPos'&S OZend_Gdata_Geo_Extension_GmlPoint')R UZend_Gdata_Geo_Extension_GeoRssWhere'Q 5Zend_Gdata_Geo_Entry'P -Zend_Gdata_Gbase'"O GZend_Gdata_Gbase_SnippetQuery'!N EZend_Gdata_Gbase_SnippetFeed'   o  yKe5zNqEe?




t
L
&
					~	d	J	.		nM4 bA&	oK&cC mK,}X7%sO+xW<                       ?Zend_Measure_Illumination' 9Zend_Measure_Frequency' 1Zend_Measure_Force' =Zend_Measure_Flow_Volume' 9Zend_Measure_Flow_Mole' 9Zend_Measure_Flow_Mass' 9Zend_Measure_Exception' 3Zend_Measure_Energy' 5Zend_Measure_Density' 5Zend_Measure_Current'  CZend_Measure_Cooking_Weight'  CZend_Measure_Cooking_Volume' =Zend_Measure_Capacitance' 3Zend_Measure_Binary'
 /Zend_Measure_Area'	 1Zend_Measure_Angle' ?Zend_Measure_Acceleration' 7Zend_Measure_Abstract' Zend_Mail' =Zend_Mail_Transport_Smtp'! EZend_Mail_Transport_Sendmail'" GZend_Mail_Transport_Exception'! EZend_Mail_Transport_Abstract' /Zend_Mail_Storage''  QZend_Mail_Storage_Writable_Maildir' 9Zend_Mail_Storage_Pop3'~ 9Zend_Mail_Storage_Mbox'} ?Zend_Mail_Storage_Maildir'| 9Zend_Mail_Storage_Imap'{ =Zend_Mail_Storage_Folder'"z GZend_Mail_Storage_Folder_Mbox'%y MZend_Mail_Storage_Folder_Maildir' x CZend_Mail_Storage_Exception'w AZend_Mail_Storage_Abstract'v ;Zend_Mail_Protocol_Smtp''u QZend_Mail_Protocol_Smtp_Auth_Plain''t QZend_Mail_Protocol_Smtp_Auth_Login')s UZend_Mail_Protocol_Smtp_Auth_Crammd5'r ;Zend_Mail_Protocol_Pop3'q ;Zend_Mail_Protocol_Imap'!p EZend_Mail_Protocol_Exception' o CZend_Mail_Protocol_Abstract'n )Zend_Mail_Part'm /Zend_Mail_Message'l 3Zend_Mail_Exception'k Zend_Log'j 9Zend_Log_Writer_Stream'i 5Zend_Log_Writer_Null'h 5Zend_Log_Writer_Mock'g 1Zend_Log_Writer_Db'f =Zend_Log_Writer_Abstract'e 9Zend_Log_Formatter_Xml'd ?Zend_Log_Formatter_Simple'c =Zend_Log_Filter_Suppress'b =Zend_Log_Filter_Priority'a ;Zend_Log_Filter_Message'` 1Zend_Log_Exception'_ #Zend_Locale'^ -Zend_Locale_Math'] =Zend_Locale_Math_PhpMath'\ AZend_Locale_Math_Exception'[ 1Zend_Locale_Format'Z 7Zend_Locale_Exception'Y -Zend_Locale_Data'!X EZend_Locale_Data_Translation'W #Zend_Loader'V Zend_Json'U 3Zend_Json_Exception'T /Zend_Json_Encoder'S /Zend_Json_Decoder'R 1Zend_Http_Response'Q 3Zend_Http_Exception'P 3Zend_Http_CookieJar'O -Zend_Http_Cookie'N -Zend_Http_Client'M AZend_Http_Client_Exception'"L GZend_Http_Client_Adapter_Test'$K KZend_Http_Client_Adapter_Socket'#J IZend_Http_Client_Adapter_Proxy''I QZend_Http_Client_Adapter_Exception'H !Zend_Gdata'G 1Zend_Gdata_YouTube'"F GZend_Gdata_YouTube_VideoQuery'!E EZend_Gdata_YouTube_VideoFeed'"D GZend_Gdata_YouTube_VideoEntry'(C SZend_Gdata_YouTube_UserProfileEntry'(B SZend_Gdata_YouTube_SubscriptionFeed')A UZend_Gdata_YouTube_SubscriptionEntry')@ UZend_Gdata_YouTube_PlaylistVideoFeed'*? WZend_Gdata_YouTube_PlaylistVideoEntry'(> SZend_Gdata_YouTube_PlaylistListFeed')= UZend_Gdata_YouTube_PlaylistListEntry'"< GZend_Gdata_YouTube_MediaEntry'*; WZend_Gdata_YouTube_Extension_Username'(: SZend_Gdata_YouTube_Extension_Status',9 [Zend_Gdata_YouTube_Extension_Statistics'(8 SZend_Gdata_YouTube_Extension_School'-7 ]Zend_Gdata_YouTube_Extension_ReleaseDate'.6 _Zend_Gdata_YouTube_Extension_Relationship'&5 OZend_Gdata_YouTube_Extension_Racy'*4 WZend_Gdata_YouTube_Extension_Position',3 [Zend_Gdata_YouTube_Extension_Occupation')2 UZend_Gdata_YouTube_Extension_NoEmbed''1 QZend_Gdata_YouTube_Extension_Music'(0 SZend_Gdata_YouTube_Extension_Movies',/ [Zend_Gdata_YouTube_Extension_MediaGroup'.. _Zend_Gdata_YouTube_Extension_MediaContent'*- WZend_Gdata_YouTube_Extension_Location'*, WZend_Gdata_YouTube_Extension_Hometown')+ UZend_Gdata_YouTube_Extension_Hobbies'(* SZend_Gdata_YouTube_Extension_Gender'   o  pU4kF eK4"w[:jL+



m
M
&
					Y	/	R,u_H2X$Js;wX3kT1iP4                    -Zend_Rest_Server' AZend_Rest_Server_Exception' 3Zend_Rest_Exception' -Zend_Rest_Client' ;Zend_Rest_Client_Result' AZend_Rest_Client_Exception' 'Zend_Registry'  Zend_Pdf'! EZend_Pdf_UpdateInfoContainer'~ -Zend_Pdf_Trailer'} ;Zend_Pdf_Trailer_Keeper'| AZend_Pdf_Trailer_Generator'{ )Zend_Pdf_Style'z 7Zend_Pdf_StringParser'y /Zend_Pdf_Resource'#x IZend_Pdf_Resource_ImageFactory'w ;Zend_Pdf_Resource_Image'!v EZend_Pdf_Resource_Image_Tiff' u CZend_Pdf_Resource_Image_Png'!t EZend_Pdf_Resource_Image_Jpeg's 9Zend_Pdf_Resource_Font'$r KZend_Pdf_Resource_Font_Standard'1q eZend_Pdf_Resource_Font_Standard_ZapfDingbats'/p aZend_Pdf_Resource_Font_Standard_TimesRoman'0o cZend_Pdf_Resource_Font_Standard_TimesItalic'4n kZend_Pdf_Resource_Font_Standard_TimesBoldItalic'.m _Zend_Pdf_Resource_Font_Standard_TimesBold'+l YZend_Pdf_Resource_Font_Standard_Symbol'5k mZend_Pdf_Resource_Font_Standard_HelveticaOblique'9j uZend_Pdf_Resource_Font_Standard_HelveticaBoldOblique'2i gZend_Pdf_Resource_Font_Standard_HelveticaBold'.h _Zend_Pdf_Resource_Font_Standard_Helvetica'3g iZend_Pdf_Resource_Font_Standard_CourierOblique'7f qZend_Pdf_Resource_Font_Standard_CourierBoldOblique'0e cZend_Pdf_Resource_Font_Standard_CourierBold',d [Zend_Pdf_Resource_Font_Standard_Courier'$c KZend_Pdf_Resource_Font_OpenType'-b ]Zend_Pdf_Resource_Font_OpenType_TrueType'a /Zend_Pdf_PhpArray'` +Zend_Pdf_Parser'_ 9Zend_Pdf_Parser_Stream'^ 'Zend_Pdf_Page'] )Zend_Pdf_Image'\ 'Zend_Pdf_Font' [ CZend_Pdf_Filter_Compression'$Z KZend_Pdf_Filter_Compression_Lzw'&Y OZend_Pdf_Filter_Compression_Flate'X =Zend_Pdf_Filter_AsciiHex'W ;Zend_Pdf_Filter_Ascii85'"V GZend_Pdf_FileParserDataSource')U UZend_Pdf_FileParserDataSource_String''T QZend_Pdf_FileParserDataSource_File'S 3Zend_Pdf_FileParser'R ?Zend_Pdf_FileParser_Image'"Q GZend_Pdf_FileParser_Image_Png'P =Zend_Pdf_FileParser_Font'&O OZend_Pdf_FileParser_Font_OpenType'/N aZend_Pdf_FileParser_Font_OpenType_TrueType'M 1Zend_Pdf_Exception'L ;Zend_Pdf_ElementFactory'"K GZend_Pdf_ElementFactory_Proxy'J -Zend_Pdf_Element'I ;Zend_Pdf_Element_String'#H IZend_Pdf_Element_String_Binary'G ;Zend_Pdf_Element_Stream'F AZend_Pdf_Element_Reference'%E MZend_Pdf_Element_Reference_Table''D QZend_Pdf_Element_Reference_Context'C ;Zend_Pdf_Element_Object'#B IZend_Pdf_Element_Object_Stream'A =Zend_Pdf_Element_Numeric'@ 7Zend_Pdf_Element_Null'? 7Zend_Pdf_Element_Name' > CZend_Pdf_Element_Dictionary'= =Zend_Pdf_Element_Boolean'< 9Zend_Pdf_Element_Array'; )Zend_Pdf_Color': 1Zend_Pdf_Color_Rgb'9 3Zend_Pdf_Color_Html'8 =Zend_Pdf_Color_GrayScale'7 3Zend_Pdf_Color_Cmyk'6 'Zend_Pdf_Cmap'5 AZend_Pdf_Cmap_TrimmedTable'!4 EZend_Pdf_Cmap_SegmentToDelta'3 AZend_Pdf_Cmap_ByteEncoding'&2 OZend_Pdf_Cmap_ByteEncoding_Static'1 Zend_Mime'0 )Zend_Mime_Part'/ /Zend_Mime_Message'. 3Zend_Mime_Exception'- -Zend_Mime_Decode', #Zend_Memory'+ /Zend_Memory_Value'* 3Zend_Memory_Manager') 7Zend_Memory_Exception'( 7Zend_Memory_Container'"' GZend_Memory_Container_Movable'!& EZend_Memory_Container_Locked'!% EZend_Memory_AccessController'$ 3Zend_Measure_Weight'# 3Zend_Measure_Volume'%" MZend_Measure_Viscosity_Kinematic'#! IZend_Measure_Viscosity_Dynamic'  3Zend_Measure_Torque' =Zend_Measure_Temperature' 1Zend_Measure_Speed' 7Zend_Measure_Pressure' 1Zend_Measure_Power' 3Zend_Measure_Number' 9Zend_Measure_Lightness' 3Zend_Measure_Length'   V  _a- a'dE \-



^
4
				T	&b:qFR]-q>lCwN#vJ(         ] ?Zend_Service_Amazon_Offer'&\ OZend_Service_Amazon_ListmaniaList'[ =Zend_Service_Amazon_Item'Z ?Zend_Service_Amazon_Image'(Y SZend_Service_Amazon_EditorialReview''X QZend_Service_Amazon_CustomerReview'$W KZend_Service_Amazon_Accessories'V 5Zend_Service_Akismet'U 7Zend_Service_Abstract'T 9Zend_Server_Reflection''S QZend_Server_Reflection_ReturnValue'%R MZend_Server_Reflection_Prototype'%Q MZend_Server_Reflection_Parameter' P CZend_Server_Reflection_Node'"O GZend_Server_Reflection_Method'$N KZend_Server_Reflection_Function'-M ]Zend_Server_Reflection_Function_Abstract'%L MZend_Server_Reflection_Exception'!K EZend_Server_Reflection_Class'J 7Zend_Server_Exception'I 5Zend_Server_Abstract'H 1Zend_Search_Lucene'$G KZend_Search_Lucene_Storage_File'+F YZend_Search_Lucene_Storage_File_Memory'/E aZend_Search_Lucene_Storage_File_Filesystem')D UZend_Search_Lucene_Storage_Directory'4C kZend_Search_Lucene_Storage_Directory_Filesystem'%B MZend_Search_Lucene_Search_Weight'*A WZend_Search_Lucene_Search_Weight_Term',@ [Zend_Search_Lucene_Search_Weight_Phrase'/? aZend_Search_Lucene_Search_Weight_MultiTerm'+> YZend_Search_Lucene_Search_Weight_Empty'-= ]Zend_Search_Lucene_Search_Weight_Boolean')< UZend_Search_Lucene_Search_Similarity'1; eZend_Search_Lucene_Search_Similarity_Default'): UZend_Search_Lucene_Search_QueryToken'39 iZend_Search_Lucene_Search_QueryParserException'18 eZend_Search_Lucene_Search_QueryParserContext'*7 WZend_Search_Lucene_Search_QueryParser')6 UZend_Search_Lucene_Search_QueryLexer''5 QZend_Search_Lucene_Search_QueryHit')4 UZend_Search_Lucene_Search_QueryEntry'.3 _Zend_Search_Lucene_Search_QueryEntry_Term'22 gZend_Search_Lucene_Search_QueryEntry_Subquery'01 cZend_Search_Lucene_Search_QueryEntry_Phrase'$0 KZend_Search_Lucene_Search_Query')/ UZend_Search_Lucene_Search_Query_Term'+. YZend_Search_Lucene_Search_Query_Phrase'.- _Zend_Search_Lucene_Search_Query_MultiTerm'2, gZend_Search_Lucene_Search_Query_Insignificant'*+ WZend_Search_Lucene_Search_Query_Empty',* [Zend_Search_Lucene_Search_Query_Boolean':) wZend_Search_Lucene_Search_BooleanExpressionRecognizer'( =Zend_Search_Lucene_Proxy'%' MZend_Search_Lucene_PriorityQueue'$& KZend_Search_Lucene_Index_Writer'&% OZend_Search_Lucene_Index_TermInfo'"$ GZend_Search_Lucene_Index_Term'+# YZend_Search_Lucene_Index_SegmentWriter'8" sZend_Search_Lucene_Index_SegmentWriter_StreamWriter':! wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter'+  YZend_Search_Lucene_Index_SegmentMerger'6 oZend_Search_Lucene_Index_SegmentInfoPriorityQueue') UZend_Search_Lucene_Index_SegmentInfo'' QZend_Search_Lucene_Index_FieldInfo'. _Zend_Search_Lucene_Index_DictionaryLoader'! EZend_Search_Lucene_FSMAction' 9Zend_Search_Lucene_FSM' =Zend_Search_Lucene_Field'! EZend_Search_Lucene_Exception'  CZend_Search_Lucene_Document'% MZend_Search_Lucene_Document_Html', [Zend_Search_Lucene_Analysis_TokenFilter'6 oZend_Search_Lucene_Analysis_TokenFilter_StopWords'7 qZend_Search_Lucene_Analysis_TokenFilter_ShortWords'6 oZend_Search_Lucene_Analysis_TokenFilter_LowerCase'& OZend_Search_Lucene_Analysis_Token') UZend_Search_Lucene_Analysis_Analyzer'0 cZend_Search_Lucene_Analysis_Analyzer_Common'8 sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num'5 mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8'8 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum'I Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive'5
 mZend_Search_Lucene_Analysis_Analyzer_Common_Text'F	 Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive' 7Zend_Search_Exception'   q  hL(jK)\<Z2m7



y
R
(
				m	E	*	yd?hC$oS5`F$zX6lI3xS1\9         N CZend_View_Helper_FormSubmit' M CZend_View_Helper_FormSelect'L AZend_View_Helper_FormReset'K AZend_View_Helper_FormRadio'"J GZend_View_Helper_FormPassword'I ?Zend_View_Helper_FormNote'H AZend_View_Helper_FormLabel'G AZend_View_Helper_FormImage' F CZend_View_Helper_FormHidden'E ?Zend_View_Helper_FormFile'!D EZend_View_Helper_FormElement'"C GZend_View_Helper_FormCheckbox' B CZend_View_Helper_FormButton'!A EZend_View_Helper_DeclareVars'@ 3Zend_View_Exception'? 1Zend_View_Abstract'> %Zend_Version'= 'Zend_Validate'< AZend_Validate_StringLength'; 3Zend_Validate_Regex': 9Zend_Validate_NotEmpty'9 9Zend_Validate_LessThan'8 -Zend_Validate_Ip'7 /Zend_Validate_Int'6 7Zend_Validate_InArray'5 9Zend_Validate_Hostname'4 ?Zend_Validate_Hostname_Se'3 ?Zend_Validate_Hostname_No'2 ?Zend_Validate_Hostname_Li'1 ?Zend_Validate_Hostname_Hu'0 ?Zend_Validate_Hostname_Fi'/ ?Zend_Validate_Hostname_De'. ?Zend_Validate_Hostname_Ch'- ?Zend_Validate_Hostname_At', /Zend_Validate_Hex'+ ?Zend_Validate_GreaterThan'* 3Zend_Validate_Float') ;Zend_Validate_Exception'( AZend_Validate_EmailAddress'' 5Zend_Validate_Digits'& 1Zend_Validate_Date'% 3Zend_Validate_Ccnum'$ 7Zend_Validate_Between'# 3Zend_Validate_Alpha'" 3Zend_Validate_Alnum'! 9Zend_Validate_Abstract'  Zend_Uri' 'Zend_Uri_Http' 1Zend_Uri_Exception' )Zend_Translate' =Zend_Translate_Exception' 9Zend_Translate_Adapter'! EZend_Translate_Adapter_XmlTm'! EZend_Translate_Adapter_Xliff' AZend_Translate_Adapter_Tmx' AZend_Translate_Adapter_Tbx' ?Zend_Translate_Adapter_Qt'# IZend_Translate_Adapter_Gettext' AZend_Translate_Adapter_Csv'! EZend_Translate_Adapter_Array' %Zend_Session') UZend_Session_Validator_HttpUserAgent'$ KZend_Session_Validator_Abstract' 9Zend_Session_Namespace' 9Zend_Session_Exception' 7Zend_Session_Abstract' 1Zend_Service_Yahoo'$ KZend_Service_Yahoo_WebResultSet'!
 EZend_Service_Yahoo_WebResult'!	 EZend_Service_Yahoo_ResultSet' ?Zend_Service_Yahoo_Result'% MZend_Service_Yahoo_NewsResultSet'" GZend_Service_Yahoo_NewsResult'& OZend_Service_Yahoo_LocalResultSet'# IZend_Service_Yahoo_LocalResult'& OZend_Service_Yahoo_ImageResultSet'# IZend_Service_Yahoo_ImageResult' =Zend_Service_Yahoo_Image'  ;Zend_Service_StrikeIron'( SZend_Service_StrikeIron_ZipCodeInfo'2~ gZend_Service_StrikeIron_USAddressVerification'-} ]Zend_Service_StrikeIron_SalesUseTaxBasic'&| OZend_Service_StrikeIron_Exception'&{ OZend_Service_StrikeIron_Decorator'!z EZend_Service_StrikeIron_Base'y 1Zend_Service_Simpy'$x KZend_Service_Simpy_WatchlistSet'*w WZend_Service_Simpy_WatchlistFilterSet''v QZend_Service_Simpy_WatchlistFilter'!u EZend_Service_Simpy_Watchlist't ?Zend_Service_Simpy_TagSet's 9Zend_Service_Simpy_Tag'r AZend_Service_Simpy_NoteSet'q ;Zend_Service_Simpy_Note'p AZend_Service_Simpy_LinkSet'!o EZend_Service_Simpy_LinkQuery'n ;Zend_Service_Simpy_Link'm 3Zend_Service_Flickr'"l GZend_Service_Flickr_ResultSet'k AZend_Service_Flickr_Result'j ?Zend_Service_Flickr_Image'i 9Zend_Service_Exception'h 9Zend_Service_Delicious'&g OZend_Service_Delicious_SimplePost'$f KZend_Service_Delicious_PostList' e CZend_Service_Delicious_Post'%d MZend_Service_Delicious_Exception' c CZend_Service_Audioscrobbler'b 3Zend_Service_Amazon''a QZend_Service_Amazon_SimilarProduct'"` GZend_Service_Amazon_ResultSet'_ ?Zend_Service_Amazon_Query'!^ EZend_Service_Amazon_OfferSet'   o ygBjO1yX3oL+hM3






]
+						^	<	*	\A)`M/QbC~V0b8qJlS6                                  = Zend_Date(< 3Zend_Date_Exception(; 5Zend_Date_DateObject(: -Zend_Date_Cities(9 'Zend_Currency(8 ;Zend_Currency_Exception(!7 EZend_Controller_Router_Route((6 SZend_Controller_Router_Route_Static('5 QZend_Controller_Router_Route_Regex((4 SZend_Controller_Router_Route_Module(#3 IZend_Controller_Router_Rewrite(%2 MZend_Controller_Router_Exception($1 KZend_Controller_Router_Abstract("0 GZend_Controller_Response_Http('/ QZend_Controller_Response_Exception(!. EZend_Controller_Response_Cli(&- OZend_Controller_Response_Abstract(!, EZend_Controller_Request_Http(&+ OZend_Controller_Request_Exception(&* OZend_Controller_Request_Apache404(%) MZend_Controller_Request_Abstract((( SZend_Controller_Plugin_ErrorHandler("' GZend_Controller_Plugin_Broker($& KZend_Controller_Plugin_Abstract(% 7Zend_Controller_Front($ ?Zend_Controller_Exception((# SZend_Controller_Dispatcher_Standard()" UZend_Controller_Dispatcher_Exception((! SZend_Controller_Dispatcher_Abstract(  9Zend_Controller_Action(( SZend_Controller_Action_HelperBroker(/ aZend_Controller_Action_Helper_ViewRenderer(& OZend_Controller_Action_Helper_Url(- ]Zend_Controller_Action_Helper_Redirector(1 eZend_Controller_Action_Helper_FlashMessenger(+ YZend_Controller_Action_Helper_Abstract(% MZend_Controller_Action_Exception( 3Zend_Console_Getopt(" GZend_Console_Getopt_Exception( #Zend_Config( +Zend_Config_Xml( +Zend_Config_Ini( 7Zend_Config_Exception( !Zend_Cache( =Zend_Cache_Frontend_Page( AZend_Cache_Frontend_Output(! EZend_Cache_Frontend_Function( =Zend_Cache_Frontend_File( ?Zend_Cache_Frontend_Class( 5Zend_Cache_Exception( +Zend_Cache_Core(
 1Zend_Cache_Backend($	 KZend_Cache_Backend_ZendPlatform( ;Zend_Cache_Backend_Test( ?Zend_Cache_Backend_Sqlite(! EZend_Cache_Backend_Memcached( ;Zend_Cache_Backend_File( 9Zend_Cache_Backend_Apc( Zend_Auth( ?Zend_Auth_Storage_Session($ KZend_Auth_Storage_NonPersistent(   CZend_Auth_Storage_Exception( -Zend_Auth_Result(~ 3Zend_Auth_Exception(} 9Zend_Auth_Adapter_Http()| UZend_Auth_Adapter_Http_Resolver_File(.{ _Zend_Auth_Adapter_Http_Resolver_Exception( z CZend_Auth_Adapter_Exception(y =Zend_Auth_Adapter_Digest(x ?Zend_Auth_Adapter_DbTable(w Zend_Acl(v 'Zend_Acl_Role(u 9Zend_Acl_Role_Registry(%t MZend_Acl_Role_Registry_Exception(s /Zend_Acl_Resource(r 1Zend_Acl_Exception(q /Zend_XmlRpc_Value'p =Zend_XmlRpc_Value_Struct'o =Zend_XmlRpc_Value_String'n =Zend_XmlRpc_Value_Scalar'm ?Zend_XmlRpc_Value_Integer' l CZend_XmlRpc_Value_Exception'k =Zend_XmlRpc_Value_Double'j AZend_XmlRpc_Value_DateTime'!i EZend_XmlRpc_Value_Collection'h ?Zend_XmlRpc_Value_Boolean'g =Zend_XmlRpc_Value_Base64'f ;Zend_XmlRpc_Value_Array'e 1Zend_XmlRpc_Server'd =Zend_XmlRpc_Server_Fault'!c EZend_XmlRpc_Server_Exception'b =Zend_XmlRpc_Server_Cache'a 5Zend_XmlRpc_Response'` ?Zend_XmlRpc_Response_Http'_ 3Zend_XmlRpc_Request'^ ?Zend_XmlRpc_Request_Stdin'] =Zend_XmlRpc_Request_Http'\ /Zend_XmlRpc_Fault'[ 7Zend_XmlRpc_Exception'Z 1Zend_XmlRpc_Client'#Y IZend_XmlRpc_Client_ServerProxy'+X YZend_XmlRpc_Client_ServerIntrospection'+W YZend_XmlRpc_Client_IntrospectException'%V MZend_XmlRpc_Client_HttpException'&U OZend_XmlRpc_Client_FaultException'!T EZend_XmlRpc_Client_Exception'S Zend_View'R 5Zend_View_Helper_Url'Q ?Zend_View_Helper_HtmlList'"P GZend_View_Helper_FormTextarea'O ?Zend_View_Helper_FormText'   r {R3
~^<cD+
^=xX5





{
d
I
2
					q	P	3	gO1}^@,fI( W0kE~V,hG+d.                                / ?Zend_Gdata_App_MediaEntry(2. gZend_Gdata_App_LoggingHttpClientAdapterSocket(- AZend_Gdata_App_IOException(,, [Zend_Gdata_App_InvalidArgumentException(!+ EZend_Gdata_App_HttpException($* KZend_Gdata_App_FeedSourceParent(#) IZend_Gdata_App_FeedEntryParent(( 3Zend_Gdata_App_Feed(' =Zend_Gdata_App_Extension(!& EZend_Gdata_App_Extension_Uri(%% MZend_Gdata_App_Extension_Updated(#$ IZend_Gdata_App_Extension_Title("# GZend_Gdata_App_Extension_Text(%" MZend_Gdata_App_Extension_Summary(&! OZend_Gdata_App_Extension_Subtitle($  KZend_Gdata_App_Extension_Source($ KZend_Gdata_App_Extension_Rights(' QZend_Gdata_App_Extension_Published($ KZend_Gdata_App_Extension_Person(" GZend_Gdata_App_Extension_Name(" GZend_Gdata_App_Extension_Logo(" GZend_Gdata_App_Extension_Link(  CZend_Gdata_App_Extension_Id(" GZend_Gdata_App_Extension_Icon(' QZend_Gdata_App_Extension_Generator(# IZend_Gdata_App_Extension_Email(% MZend_Gdata_App_Extension_Element(# IZend_Gdata_App_Extension_Draft(% MZend_Gdata_App_Extension_Control() UZend_Gdata_App_Extension_Contributor(% MZend_Gdata_App_Extension_Content(& OZend_Gdata_App_Extension_Category($ KZend_Gdata_App_Extension_Author( =Zend_Gdata_App_Exception( 5Zend_Gdata_App_Entry(, [Zend_Gdata_App_CaptchaRequiredException(# IZend_Gdata_App_BaseMediaSource(
 3Zend_Gdata_App_Base(*	 WZend_Gdata_App_BadMethodCallException(! EZend_Gdata_App_AuthException( #Zend_Filter( 7Zend_Filter_StripTags( 9Zend_Filter_StringTrim( ?Zend_Filter_StringToUpper( ?Zend_Filter_StringToLower( 5Zend_Filter_RealPath( +Zend_Filter_Int(  /Zend_Filter_Input( =Zend_Filter_HtmlEntities(~ 7Zend_Filter_Exception(} +Zend_Filter_Dir(| 1Zend_Filter_Digits({ 5Zend_Filter_BaseName(z /Zend_Filter_Alpha(y /Zend_Filter_Alnum(x Zend_Feed(w 'Zend_Feed_Rss(v 3Zend_Feed_Exception(u 3Zend_Feed_Entry_Rss(t 5Zend_Feed_Entry_Atom(s =Zend_Feed_Entry_Abstract(r /Zend_Feed_Element(q /Zend_Feed_Builder(p =Zend_Feed_Builder_Header($o KZend_Feed_Builder_Header_Itunes( n CZend_Feed_Builder_Exception(m ;Zend_Feed_Builder_Entry(l )Zend_Feed_Atom(k 1Zend_Feed_Abstract(j )Zend_Exception(i !Zend_Debug(h Zend_Db(g 'Zend_Db_Table(f 5Zend_Db_Table_Rowset("e GZend_Db_Table_Rowset_Abstract(d /Zend_Db_Table_Row( c CZend_Db_Table_Row_Exception(b AZend_Db_Table_Row_Abstract(a ;Zend_Db_Table_Exception(` 9Zend_Db_Table_Abstract(_ /Zend_Db_Statement(^ 7Zend_Db_Statement_Pdo(] ?Zend_Db_Statement_Pdo_Ibm(\ =Zend_Db_Statement_Oracle('[ QZend_Db_Statement_Oracle_Exception(Z =Zend_Db_Statement_Mysqli('Y QZend_Db_Statement_Mysqli_Exception( X CZend_Db_Statement_Exception(W 7Zend_Db_Statement_Db2($V KZend_Db_Statement_Db2_Exception(U )Zend_Db_Select(T =Zend_Db_Select_Exception(S -Zend_Db_Profiler(R 9Zend_Db_Profiler_Query(Q AZend_Db_Profiler_Exception(P %Zend_Db_Expr(O /Zend_Db_Exception(N AZend_Db_Adapter_Pdo_Sqlite(M ?Zend_Db_Adapter_Pdo_Pgsql(L ;Zend_Db_Adapter_Pdo_Oci(K ?Zend_Db_Adapter_Pdo_Mysql(J ?Zend_Db_Adapter_Pdo_Mssql(I ;Zend_Db_Adapter_Pdo_Ibm( H CZend_Db_Adapter_Pdo_Ibm_Ids( G CZend_Db_Adapter_Pdo_Ibm_Db2(!F EZend_Db_Adapter_Pdo_Abstract(E 9Zend_Db_Adapter_Oracle(%D MZend_Db_Adapter_Oracle_Exception(C 9Zend_Db_Adapter_Mysqli(%B MZend_Db_Adapter_Mysqli_Exception(A ?Zend_Db_Adapter_Exception(@ 3Zend_Db_Adapter_Db2("? GZend_Db_Adapter_Db2_Exception(> =Zend_Db_Adapter_Abstract(   e  d>a2f@oW> tL




Y
<
$					X	*	j?rJ(`8Z1	g@!vW&[6[?(                      9Zend_Gdata_Media_Entry( AZend_Gdata_Kind_EventEntry( )Zend_Gdata_Geo( 3Zend_Gdata_Geo_Feed($ KZend_Gdata_Geo_Extension_GmlPos(& OZend_Gdata_Geo_Extension_GmlPoint() UZend_Gdata_Geo_Extension_GeoRssWhere( 5Zend_Gdata_Geo_Entry( -Zend_Gdata_Gbase(" GZend_Gdata_Gbase_SnippetQuery(!
 EZend_Gdata_Gbase_SnippetFeed("	 GZend_Gdata_Gbase_SnippetEntry( 9Zend_Gdata_Gbase_Query( AZend_Gdata_Gbase_ItemQuery( ?Zend_Gdata_Gbase_ItemFeed( AZend_Gdata_Gbase_ItemEntry( 7Zend_Gdata_Gbase_Feed(- ]Zend_Gdata_Gbase_Extension_BaseAttribute( 9Zend_Gdata_Gbase_Entry( -Zend_Gdata_Gapps(  AZend_Gdata_Gapps_UserQuery( ?Zend_Gdata_Gapps_UserFeed(~ AZend_Gdata_Gapps_UserEntry(&} OZend_Gdata_Gapps_ServiceException(| 9Zend_Gdata_Gapps_Query(#{ IZend_Gdata_Gapps_NicknameQuery("z GZend_Gdata_Gapps_NicknameFeed(#y IZend_Gdata_Gapps_NicknameEntry(%x MZend_Gdata_Gapps_Extension_Quota((w SZend_Gdata_Gapps_Extension_Nickname($v KZend_Gdata_Gapps_Extension_Name(%u MZend_Gdata_Gapps_Extension_Login()t UZend_Gdata_Gapps_Extension_EmailList(s 9Zend_Gdata_Gapps_Error(-r ]Zend_Gdata_Gapps_EmailListRecipientQuery(,q [Zend_Gdata_Gapps_EmailListRecipientFeed(-p ]Zend_Gdata_Gapps_EmailListRecipientEntry($o KZend_Gdata_Gapps_EmailListQuery(#n IZend_Gdata_Gapps_EmailListFeed($m KZend_Gdata_Gapps_EmailListEntry(l +Zend_Gdata_Feed(k 5Zend_Gdata_Extension(j =Zend_Gdata_Extension_Who(i AZend_Gdata_Extension_Where(h ?Zend_Gdata_Extension_When($g KZend_Gdata_Extension_Visibility(&f OZend_Gdata_Extension_Transparency("e GZend_Gdata_Extension_Reminder(-d ]Zend_Gdata_Extension_RecurrenceException($c KZend_Gdata_Extension_Recurrence( b CZend_Gdata_Extension_Rating('a QZend_Gdata_Extension_OriginalEvent(0` cZend_Gdata_Extension_OpenSearchTotalResults(._ _Zend_Gdata_Extension_OpenSearchStartIndex(0^ cZend_Gdata_Extension_OpenSearchItemsPerPage("] GZend_Gdata_Extension_FeedLink(*\ WZend_Gdata_Extension_ExtendedProperty(%[ MZend_Gdata_Extension_EventStatus(#Z IZend_Gdata_Extension_EntryLink("Y GZend_Gdata_Extension_Comments(&X OZend_Gdata_Extension_AttendeeType((W SZend_Gdata_Extension_AttendeeStatus(V +Zend_Gdata_Exif(U 5Zend_Gdata_Exif_Feed(#T IZend_Gdata_Exif_Extension_Time(#S IZend_Gdata_Exif_Extension_Tags($R KZend_Gdata_Exif_Extension_Model(#Q IZend_Gdata_Exif_Extension_Make("P GZend_Gdata_Exif_Extension_Iso(,O [Zend_Gdata_Exif_Extension_ImageUniqueId($N KZend_Gdata_Exif_Extension_FStop(*M WZend_Gdata_Exif_Extension_FocalLength($L KZend_Gdata_Exif_Extension_Flash('K QZend_Gdata_Exif_Extension_Exposure('J QZend_Gdata_Exif_Extension_Distance(I 7Zend_Gdata_Exif_Entry(H -Zend_Gdata_Entry(G +Zend_Gdata_Docs(F 7Zend_Gdata_Docs_Query(%E MZend_Gdata_Docs_DocumentListFeed(&D OZend_Gdata_Docs_DocumentListEntry(C 9Zend_Gdata_ClientLogin(B 3Zend_Gdata_Calendar(!A EZend_Gdata_Calendar_ListFeed("@ GZend_Gdata_Calendar_ListEntry(-? ]Zend_Gdata_Calendar_Extension_WebContent(+> YZend_Gdata_Calendar_Extension_Timezone(9= uZend_Gdata_Calendar_Extension_SendEventNotifications(+< YZend_Gdata_Calendar_Extension_Selected(+; YZend_Gdata_Calendar_Extension_QuickAdd(': QZend_Gdata_Calendar_Extension_Link()9 UZend_Gdata_Calendar_Extension_Hidden((8 SZend_Gdata_Calendar_Extension_Color(.7 _Zend_Gdata_Calendar_Extension_AccessLevel(#6 IZend_Gdata_Calendar_EventQuery("5 GZend_Gdata_Calendar_EventFeed(#4 IZend_Gdata_Calendar_EventEntry(3 1Zend_Gdata_AuthSub(2 )Zend_Gdata_App(1 3Zend_Gdata_App_Util(#0 IZend_Gdata_App_MediaFileSource(   Y  m>
~O _A(h<O$



q
D
				U	&tK\9qH]* |LX1Q%r@                                           (m SZend_Gdata_YouTube_Extension_Movies(,l [Zend_Gdata_YouTube_Extension_MediaGroup(.k _Zend_Gdata_YouTube_Extension_MediaContent(*j WZend_Gdata_YouTube_Extension_Location(&i OZend_Gdata_YouTube_Extension_Link(*h WZend_Gdata_YouTube_Extension_Hometown()g UZend_Gdata_YouTube_Extension_Hobbies((f SZend_Gdata_YouTube_Extension_Gender(*e WZend_Gdata_YouTube_Extension_Duration(-d ]Zend_Gdata_YouTube_Extension_Description()c UZend_Gdata_YouTube_Extension_Company('b QZend_Gdata_YouTube_Extension_Books(%a MZend_Gdata_YouTube_Extension_Age(#` IZend_Gdata_YouTube_ContactFeed($_ KZend_Gdata_YouTube_ContactEntry(#^ IZend_Gdata_YouTube_CommentFeed($] KZend_Gdata_YouTube_CommentEntry(\ ;Zend_Gdata_Spreadsheets(*[ WZend_Gdata_Spreadsheets_WorksheetFeed(+Z YZend_Gdata_Spreadsheets_WorksheetEntry(,Y [Zend_Gdata_Spreadsheets_SpreadsheetFeed(-X ]Zend_Gdata_Spreadsheets_SpreadsheetEntry(&W OZend_Gdata_Spreadsheets_ListQuery(%V MZend_Gdata_Spreadsheets_ListFeed(&U OZend_Gdata_Spreadsheets_ListEntry(/T aZend_Gdata_Spreadsheets_Extension_RowCount(-S ]Zend_Gdata_Spreadsheets_Extension_Custom(/R aZend_Gdata_Spreadsheets_Extension_ColCount(+Q YZend_Gdata_Spreadsheets_Extension_Cell(*P WZend_Gdata_Spreadsheets_DocumentQuery(&O OZend_Gdata_Spreadsheets_CellQuery(%N MZend_Gdata_Spreadsheets_CellFeed(&M OZend_Gdata_Spreadsheets_CellEntry(L -Zend_Gdata_Query(K /Zend_Gdata_Photos( J CZend_Gdata_Photos_UserQuery(I AZend_Gdata_Photos_UserFeed( H CZend_Gdata_Photos_UserEntry(G AZend_Gdata_Photos_TagEntry(!F EZend_Gdata_Photos_PhotoQuery( E CZend_Gdata_Photos_PhotoFeed(!D EZend_Gdata_Photos_PhotoEntry(&C OZend_Gdata_Photos_Extension_Width('B QZend_Gdata_Photos_Extension_Weight((A SZend_Gdata_Photos_Extension_Version(%@ MZend_Gdata_Photos_Extension_User(*? WZend_Gdata_Photos_Extension_Timestamp(*> WZend_Gdata_Photos_Extension_Thumbnail(%= MZend_Gdata_Photos_Extension_Size()< UZend_Gdata_Photos_Extension_Rotation(+; YZend_Gdata_Photos_Extension_QuotaLimit(-: ]Zend_Gdata_Photos_Extension_QuotaCurrent()9 UZend_Gdata_Photos_Extension_Position((8 SZend_Gdata_Photos_Extension_PhotoId(37 iZend_Gdata_Photos_Extension_NumPhotosRemaining(*6 WZend_Gdata_Photos_Extension_NumPhotos()5 UZend_Gdata_Photos_Extension_Nickname(%4 MZend_Gdata_Photos_Extension_Name(23 gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum()2 UZend_Gdata_Photos_Extension_Location(#1 IZend_Gdata_Photos_Extension_Id('0 QZend_Gdata_Photos_Extension_Height(2/ gZend_Gdata_Photos_Extension_CommentingEnabled(-. ]Zend_Gdata_Photos_Extension_CommentCount('- QZend_Gdata_Photos_Extension_Client(), UZend_Gdata_Photos_Extension_Checksum(*+ WZend_Gdata_Photos_Extension_BytesUsed((* SZend_Gdata_Photos_Extension_AlbumId(') QZend_Gdata_Photos_Extension_Access(#( IZend_Gdata_Photos_CommentEntry(!' EZend_Gdata_Photos_AlbumQuery( & CZend_Gdata_Photos_AlbumFeed(!% EZend_Gdata_Photos_AlbumEntry($ -Zend_Gdata_Media(# 7Zend_Gdata_Media_Feed(*" WZend_Gdata_Media_Extension_MediaTitle(.! _Zend_Gdata_Media_Extension_MediaThumbnail()  UZend_Gdata_Media_Extension_MediaText(0 cZend_Gdata_Media_Extension_MediaRestriction(+ YZend_Gdata_Media_Extension_MediaRating(+ YZend_Gdata_Media_Extension_MediaPlayer(- ]Zend_Gdata_Media_Extension_MediaKeywords() UZend_Gdata_Media_Extension_MediaHash(* WZend_Gdata_Media_Extension_MediaGroup(0 cZend_Gdata_Media_Extension_MediaDescription(+ YZend_Gdata_Media_Extension_MediaCredit(. _Zend_Gdata_Media_Extension_MediaCopyright(, [Zend_Gdata_Media_Extension_MediaContent(- ]Zend_Gdata_Media_Extension_MediaCategory(   r xJ a5
]/}W2d>




|
b
F
4
 						e	L	8	zY>!c>{[8cD%pO=gC&	oT5hG+                        #_ IZend_Measure_Viscosity_Dynamic(^ 3Zend_Measure_Torque(] =Zend_Measure_Temperature(\ 1Zend_Measure_Speed([ 7Zend_Measure_Pressure(Z 1Zend_Measure_Power(Y 3Zend_Measure_Number(X 9Zend_Measure_Lightness(W 3Zend_Measure_Length(V ?Zend_Measure_Illumination(U 9Zend_Measure_Frequency(T 1Zend_Measure_Force(S =Zend_Measure_Flow_Volume(R 9Zend_Measure_Flow_Mole(Q 9Zend_Measure_Flow_Mass(P 9Zend_Measure_Exception(O 3Zend_Measure_Energy(N 5Zend_Measure_Density(M 5Zend_Measure_Current( L CZend_Measure_Cooking_Weight( K CZend_Measure_Cooking_Volume(J =Zend_Measure_Capacitance(I 3Zend_Measure_Binary(H /Zend_Measure_Area(G 1Zend_Measure_Angle(F ?Zend_Measure_Acceleration(E 7Zend_Measure_Abstract(D Zend_Mail(C =Zend_Mail_Transport_Smtp(!B EZend_Mail_Transport_Sendmail("A GZend_Mail_Transport_Exception(!@ EZend_Mail_Transport_Abstract(? /Zend_Mail_Storage('> QZend_Mail_Storage_Writable_Maildir(= 9Zend_Mail_Storage_Pop3(< 9Zend_Mail_Storage_Mbox(; ?Zend_Mail_Storage_Maildir(: 9Zend_Mail_Storage_Imap(9 =Zend_Mail_Storage_Folder("8 GZend_Mail_Storage_Folder_Mbox(%7 MZend_Mail_Storage_Folder_Maildir( 6 CZend_Mail_Storage_Exception(5 AZend_Mail_Storage_Abstract(4 ;Zend_Mail_Protocol_Smtp('3 QZend_Mail_Protocol_Smtp_Auth_Plain('2 QZend_Mail_Protocol_Smtp_Auth_Login()1 UZend_Mail_Protocol_Smtp_Auth_Crammd5(0 ;Zend_Mail_Protocol_Pop3(/ ;Zend_Mail_Protocol_Imap(!. EZend_Mail_Protocol_Exception( - CZend_Mail_Protocol_Abstract(, )Zend_Mail_Part(+ /Zend_Mail_Message(* 3Zend_Mail_Exception() Zend_Log(( 9Zend_Log_Writer_Stream(' 5Zend_Log_Writer_Null(& 5Zend_Log_Writer_Mock(% 1Zend_Log_Writer_Db($ =Zend_Log_Writer_Abstract(# 9Zend_Log_Formatter_Xml(" ?Zend_Log_Formatter_Simple(! =Zend_Log_Filter_Suppress(  =Zend_Log_Filter_Priority( ;Zend_Log_Filter_Message( 1Zend_Log_Exception( #Zend_Locale( -Zend_Locale_Math( =Zend_Locale_Math_PhpMath( AZend_Locale_Math_Exception( 1Zend_Locale_Format( 7Zend_Locale_Exception( -Zend_Locale_Data(! EZend_Locale_Data_Translation( #Zend_Loader( Zend_Json( 3Zend_Json_Exception( /Zend_Json_Encoder( /Zend_Json_Decoder( 1Zend_Http_Response( 3Zend_Http_Exception( 3Zend_Http_CookieJar( -Zend_Http_Cookie( -Zend_Http_Client( AZend_Http_Client_Exception("
 GZend_Http_Client_Adapter_Test($	 KZend_Http_Client_Adapter_Socket(# IZend_Http_Client_Adapter_Proxy(' QZend_Http_Client_Adapter_Exception( !Zend_Gdata( 1Zend_Gdata_YouTube(" GZend_Gdata_YouTube_VideoQuery(! EZend_Gdata_YouTube_VideoFeed(" GZend_Gdata_YouTube_VideoEntry(( SZend_Gdata_YouTube_UserProfileEntry((  SZend_Gdata_YouTube_SubscriptionFeed() UZend_Gdata_YouTube_SubscriptionEntry()~ UZend_Gdata_YouTube_PlaylistVideoFeed(*} WZend_Gdata_YouTube_PlaylistVideoEntry((| SZend_Gdata_YouTube_PlaylistListFeed(){ UZend_Gdata_YouTube_PlaylistListEntry("z GZend_Gdata_YouTube_MediaEntry(*y WZend_Gdata_YouTube_Extension_Username('x QZend_Gdata_YouTube_Extension_Token((w SZend_Gdata_YouTube_Extension_Status(,v [Zend_Gdata_YouTube_Extension_Statistics((u SZend_Gdata_YouTube_Extension_School(-t ]Zend_Gdata_YouTube_Extension_ReleaseDate(.s _Zend_Gdata_YouTube_Extension_Relationship(&r OZend_Gdata_YouTube_Extension_Racy(*q WZend_Gdata_YouTube_Extension_Position(,p [Zend_Gdata_YouTube_Extension_Occupation()o UZend_Gdata_YouTube_Extension_NoEmbed('n QZend_Gdata_YouTube_Extension_Music(   j zU/tZC1jI-y[:|\5




h
>
					a	;	nWA"
g3YJgBzc@ x_C f                                                             II Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive(5H mZend_Search_Lucene_Analysis_Analyzer_Common_Text(FG Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive(F 7Zend_Search_Exception(E -Zend_Rest_Server(D AZend_Rest_Server_Exception(C 3Zend_Rest_Exception(B -Zend_Rest_Client(A ;Zend_Rest_Client_Result(@ AZend_Rest_Client_Exception(? 'Zend_Registry(> Zend_Pdf(!= EZend_Pdf_UpdateInfoContainer(< -Zend_Pdf_Trailer(; ;Zend_Pdf_Trailer_Keeper(: AZend_Pdf_Trailer_Generator(9 )Zend_Pdf_Style(8 7Zend_Pdf_StringParser(7 /Zend_Pdf_Resource(#6 IZend_Pdf_Resource_ImageFactory(5 ;Zend_Pdf_Resource_Image(!4 EZend_Pdf_Resource_Image_Tiff( 3 CZend_Pdf_Resource_Image_Png(!2 EZend_Pdf_Resource_Image_Jpeg(1 9Zend_Pdf_Resource_Font($0 KZend_Pdf_Resource_Font_Standard(1/ eZend_Pdf_Resource_Font_Standard_ZapfDingbats(/. aZend_Pdf_Resource_Font_Standard_TimesRoman(0- cZend_Pdf_Resource_Font_Standard_TimesItalic(4, kZend_Pdf_Resource_Font_Standard_TimesBoldItalic(.+ _Zend_Pdf_Resource_Font_Standard_TimesBold(+* YZend_Pdf_Resource_Font_Standard_Symbol(5) mZend_Pdf_Resource_Font_Standard_HelveticaOblique(9( uZend_Pdf_Resource_Font_Standard_HelveticaBoldOblique(2' gZend_Pdf_Resource_Font_Standard_HelveticaBold(.& _Zend_Pdf_Resource_Font_Standard_Helvetica(3% iZend_Pdf_Resource_Font_Standard_CourierOblique(7$ qZend_Pdf_Resource_Font_Standard_CourierBoldOblique(0# cZend_Pdf_Resource_Font_Standard_CourierBold(," [Zend_Pdf_Resource_Font_Standard_Courier($! KZend_Pdf_Resource_Font_OpenType(-  ]Zend_Pdf_Resource_Font_OpenType_TrueType( /Zend_Pdf_PhpArray( +Zend_Pdf_Parser( 9Zend_Pdf_Parser_Stream( 'Zend_Pdf_Page( )Zend_Pdf_Image( 'Zend_Pdf_Font(  CZend_Pdf_Filter_Compression($ KZend_Pdf_Filter_Compression_Lzw(& OZend_Pdf_Filter_Compression_Flate( =Zend_Pdf_Filter_AsciiHex( ;Zend_Pdf_Filter_Ascii85(" GZend_Pdf_FileParserDataSource() UZend_Pdf_FileParserDataSource_String(' QZend_Pdf_FileParserDataSource_File( 3Zend_Pdf_FileParser( ?Zend_Pdf_FileParser_Image(" GZend_Pdf_FileParser_Image_Png( =Zend_Pdf_FileParser_Font(& OZend_Pdf_FileParser_Font_OpenType(/ aZend_Pdf_FileParser_Font_OpenType_TrueType( 1Zend_Pdf_Exception(
 ;Zend_Pdf_ElementFactory("	 GZend_Pdf_ElementFactory_Proxy( -Zend_Pdf_Element( ;Zend_Pdf_Element_String(# IZend_Pdf_Element_String_Binary( ;Zend_Pdf_Element_Stream( AZend_Pdf_Element_Reference(% MZend_Pdf_Element_Reference_Table(' QZend_Pdf_Element_Reference_Context( ;Zend_Pdf_Element_Object(#  IZend_Pdf_Element_Object_Stream( =Zend_Pdf_Element_Numeric(~ 7Zend_Pdf_Element_Null(} 7Zend_Pdf_Element_Name( | CZend_Pdf_Element_Dictionary({ =Zend_Pdf_Element_Boolean(z 9Zend_Pdf_Element_Array(y )Zend_Pdf_Color(x 1Zend_Pdf_Color_Rgb(w 3Zend_Pdf_Color_Html(v =Zend_Pdf_Color_GrayScale(u 3Zend_Pdf_Color_Cmyk(t 'Zend_Pdf_Cmap(s AZend_Pdf_Cmap_TrimmedTable(!r EZend_Pdf_Cmap_SegmentToDelta(q AZend_Pdf_Cmap_ByteEncoding(&p OZend_Pdf_Cmap_ByteEncoding_Static(o Zend_Mime(n )Zend_Mime_Part(m /Zend_Mime_Message(l 3Zend_Mime_Exception(k -Zend_Mime_Decode(j #Zend_Memory(i /Zend_Memory_Value(h 3Zend_Memory_Manager(g 7Zend_Memory_Exception(f 7Zend_Memory_Container("e GZend_Memory_Container_Movable(!d EZend_Memory_Container_Locked(!c EZend_Memory_AccessController(b 3Zend_Measure_Weight(a 3Zend_Measure_Volume(%` MZend_Measure_Viscosity_Kinematic(   X  OOsR3JrL"



r
B
			}	P	(_4m@~K_,Z1 e<d8b<                            ! CZend_Service_Audioscrobbler(  3Zend_Service_Amazon(' QZend_Service_Amazon_SimilarProduct(" GZend_Service_Amazon_ResultSet( ?Zend_Service_Amazon_Query(! EZend_Service_Amazon_OfferSet( ?Zend_Service_Amazon_Offer(& OZend_Service_Amazon_ListmaniaList( =Zend_Service_Amazon_Item( ?Zend_Service_Amazon_Image(( SZend_Service_Amazon_EditorialReview(' QZend_Service_Amazon_CustomerReview($ KZend_Service_Amazon_Accessories( 5Zend_Service_Akismet( 7Zend_Service_Abstract( 9Zend_Server_Reflection(' QZend_Server_Reflection_ReturnValue(% MZend_Server_Reflection_Prototype(% MZend_Server_Reflection_Parameter(  CZend_Server_Reflection_Node(" GZend_Server_Reflection_Method($ KZend_Server_Reflection_Function(- ]Zend_Server_Reflection_Function_Abstract(%
 MZend_Server_Reflection_Exception(!	 EZend_Server_Reflection_Class( 7Zend_Server_Exception( 5Zend_Server_Abstract( 1Zend_Search_Lucene($ KZend_Search_Lucene_Storage_File(+ YZend_Search_Lucene_Storage_File_Memory(/ aZend_Search_Lucene_Storage_File_Filesystem() UZend_Search_Lucene_Storage_Directory(4 kZend_Search_Lucene_Storage_Directory_Filesystem(%  MZend_Search_Lucene_Search_Weight(* WZend_Search_Lucene_Search_Weight_Term(,~ [Zend_Search_Lucene_Search_Weight_Phrase(/} aZend_Search_Lucene_Search_Weight_MultiTerm(+| YZend_Search_Lucene_Search_Weight_Empty(-{ ]Zend_Search_Lucene_Search_Weight_Boolean()z UZend_Search_Lucene_Search_Similarity(1y eZend_Search_Lucene_Search_Similarity_Default()x UZend_Search_Lucene_Search_QueryToken(3w iZend_Search_Lucene_Search_QueryParserException(1v eZend_Search_Lucene_Search_QueryParserContext(*u WZend_Search_Lucene_Search_QueryParser()t UZend_Search_Lucene_Search_QueryLexer('s QZend_Search_Lucene_Search_QueryHit()r UZend_Search_Lucene_Search_QueryEntry(.q _Zend_Search_Lucene_Search_QueryEntry_Term(2p gZend_Search_Lucene_Search_QueryEntry_Subquery(0o cZend_Search_Lucene_Search_QueryEntry_Phrase($n KZend_Search_Lucene_Search_Query()m UZend_Search_Lucene_Search_Query_Term(+l YZend_Search_Lucene_Search_Query_Phrase(.k _Zend_Search_Lucene_Search_Query_MultiTerm(2j gZend_Search_Lucene_Search_Query_Insignificant(*i WZend_Search_Lucene_Search_Query_Empty(,h [Zend_Search_Lucene_Search_Query_Boolean(:g wZend_Search_Lucene_Search_BooleanExpressionRecognizer(f =Zend_Search_Lucene_Proxy(%e MZend_Search_Lucene_PriorityQueue($d KZend_Search_Lucene_Index_Writer(&c OZend_Search_Lucene_Index_TermInfo("b GZend_Search_Lucene_Index_Term(+a YZend_Search_Lucene_Index_SegmentWriter(8` sZend_Search_Lucene_Index_SegmentWriter_StreamWriter(:_ wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter(+^ YZend_Search_Lucene_Index_SegmentMerger(6] oZend_Search_Lucene_Index_SegmentInfoPriorityQueue()\ UZend_Search_Lucene_Index_SegmentInfo('[ QZend_Search_Lucene_Index_FieldInfo(.Z _Zend_Search_Lucene_Index_DictionaryLoader(!Y EZend_Search_Lucene_FSMAction(X 9Zend_Search_Lucene_FSM(W =Zend_Search_Lucene_Field(!V EZend_Search_Lucene_Exception( U CZend_Search_Lucene_Document(%T MZend_Search_Lucene_Document_Html(,S [Zend_Search_Lucene_Analysis_TokenFilter(6R oZend_Search_Lucene_Analysis_TokenFilter_StopWords(7Q qZend_Search_Lucene_Analysis_TokenFilter_ShortWords(6P oZend_Search_Lucene_Analysis_TokenFilter_LowerCase(&O OZend_Search_Lucene_Analysis_Token()N UZend_Search_Lucene_Analysis_Analyzer(0M cZend_Search_Lucene_Analysis_Analyzer_Common(8L sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num(5K mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8(8J sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum(   q aB#|W4`2
vE{Q* 



j
E

				~	Q	<	e@cG+vZ8tR0`D!vP+	}W4_B0                                 ! EZend_XmlRpc_Client_Exception( Zend_View( 5Zend_View_Helper_Url( ?Zend_View_Helper_HtmlList(" GZend_View_Helper_FormTextarea( ?Zend_View_Helper_FormText(  CZend_View_Helper_FormSubmit(  CZend_View_Helper_FormSelect(
 AZend_View_Helper_FormReset(	 AZend_View_Helper_FormRadio(" GZend_View_Helper_FormPassword( ?Zend_View_Helper_FormNote( AZend_View_Helper_FormLabel( AZend_View_Helper_FormImage(  CZend_View_Helper_FormHidden( ?Zend_View_Helper_FormFile(! EZend_View_Helper_FormElement(" GZend_View_Helper_FormCheckbox(   CZend_View_Helper_FormButton(! EZend_View_Helper_DeclareVars(~ 3Zend_View_Exception(} 1Zend_View_Abstract(| %Zend_Version({ 'Zend_Validate(z AZend_Validate_StringLength(y 3Zend_Validate_Regex(x 9Zend_Validate_NotEmpty(w 9Zend_Validate_LessThan(v -Zend_Validate_Ip(u /Zend_Validate_Int(t 7Zend_Validate_InArray(s 9Zend_Validate_Hostname(r ?Zend_Validate_Hostname_Se(q ?Zend_Validate_Hostname_No(p ?Zend_Validate_Hostname_Li(o ?Zend_Validate_Hostname_Hu(n ?Zend_Validate_Hostname_Fi(m ?Zend_Validate_Hostname_De(l ?Zend_Validate_Hostname_Ch(k ?Zend_Validate_Hostname_At(j /Zend_Validate_Hex(i ?Zend_Validate_GreaterThan(h 3Zend_Validate_Float(g ;Zend_Validate_Exception(f AZend_Validate_EmailAddress(e 5Zend_Validate_Digits(d 1Zend_Validate_Date(c 3Zend_Validate_Ccnum(b 7Zend_Validate_Between(a 3Zend_Validate_Alpha(` 3Zend_Validate_Alnum(_ 9Zend_Validate_Abstract(^ Zend_Uri(] 'Zend_Uri_Http(\ 1Zend_Uri_Exception([ )Zend_Translate(Z =Zend_Translate_Exception(Y 9Zend_Translate_Adapter(!X EZend_Translate_Adapter_XmlTm(!W EZend_Translate_Adapter_Xliff(V AZend_Translate_Adapter_Tmx(U AZend_Translate_Adapter_Tbx(T ?Zend_Translate_Adapter_Qt(#S IZend_Translate_Adapter_Gettext(R AZend_Translate_Adapter_Csv(!Q EZend_Translate_Adapter_Array(P %Zend_Session()O UZend_Session_Validator_HttpUserAgent($N KZend_Session_Validator_Abstract(M 9Zend_Session_Namespace(L 9Zend_Session_Exception(K 7Zend_Session_Abstract(J 1Zend_Service_Yahoo($I KZend_Service_Yahoo_WebResultSet(!H EZend_Service_Yahoo_WebResult(!G EZend_Service_Yahoo_ResultSet(F ?Zend_Service_Yahoo_Result(%E MZend_Service_Yahoo_NewsResultSet("D GZend_Service_Yahoo_NewsResult(&C OZend_Service_Yahoo_LocalResultSet(#B IZend_Service_Yahoo_LocalResult(&A OZend_Service_Yahoo_ImageResultSet(#@ IZend_Service_Yahoo_ImageResult(? =Zend_Service_Yahoo_Image(> ;Zend_Service_StrikeIron((= SZend_Service_StrikeIron_ZipCodeInfo(2< gZend_Service_StrikeIron_USAddressVerification(-; ]Zend_Service_StrikeIron_SalesUseTaxBasic(&: OZend_Service_StrikeIron_Exception(&9 OZend_Service_StrikeIron_Decorator(!8 EZend_Service_StrikeIron_Base(7 1Zend_Service_Simpy($6 KZend_Service_Simpy_WatchlistSet(*5 WZend_Service_Simpy_WatchlistFilterSet('4 QZend_Service_Simpy_WatchlistFilter(!3 EZend_Service_Simpy_Watchlist(2 ?Zend_Service_Simpy_TagSet(1 9Zend_Service_Simpy_Tag(0 AZend_Service_Simpy_NoteSet(/ ;Zend_Service_Simpy_Note(. AZend_Service_Simpy_LinkSet(!- EZend_Service_Simpy_LinkQuery(, ;Zend_Service_Simpy_Link(+ 3Zend_Service_Flickr("* GZend_Service_Flickr_ResultSet() AZend_Service_Flickr_Result(( ?Zend_Service_Flickr_Image(' 9Zend_Service_Exception(& 9Zend_Service_Delicious(&% OZend_Service_Delicious_SimplePost($$ KZend_Service_Delicious_PostList( # CZend_Service_Delicious_Post(%" MZend_Service_Delicious_Exception(   j  ~O(vT7tR-
a@&fC 



z
Q
*
				f	?	iQ.`/rP#sIpG}Pw^<yV7       | -Zend_Auth_Result){ 3Zend_Auth_Exception)z =Zend_Auth_Adapter_OpenId)y 9Zend_Auth_Adapter_Ldap)x AZend_Auth_Adapter_InfoCard)w 9Zend_Auth_Adapter_Http))v UZend_Auth_Adapter_Http_Resolver_File).u _Zend_Auth_Adapter_Http_Resolver_Exception) t CZend_Auth_Adapter_Exception)s =Zend_Auth_Adapter_Digest)r ?Zend_Auth_Adapter_DbTable)q -Zend_Application)#p IZend_Application_Resource_View)(o SZend_Application_Resource_Translate)&n OZend_Application_Resource_Session)%m MZend_Application_Resource_Router)/l aZend_Application_Resource_ResourceAbstract))k UZend_Application_Resource_Navigation)&j OZend_Application_Resource_Multidb)&i OZend_Application_Resource_Modules)#h IZend_Application_Resource_Mail)"g GZend_Application_Resource_Log)%f MZend_Application_Resource_Locale)%e MZend_Application_Resource_Layout).d _Zend_Application_Resource_Frontcontroller)(c SZend_Application_Resource_Exception)#b IZend_Application_Resource_Dojo)!a EZend_Application_Resource_Db)+` YZend_Application_Resource_Cachemanager)&_ OZend_Application_Module_Bootstrap)'^ QZend_Application_Module_Autoloader)] AZend_Application_Exception))\ UZend_Application_Bootstrap_Exception)1[ eZend_Application_Bootstrap_BootstrapAbstract))Z UZend_Application_Bootstrap_Bootstrap)Y ?Zend_Amf_Value_TraitsInfo)-X ]Zend_Amf_Value_Messaging_RemotingMessage)*W WZend_Amf_Value_Messaging_ErrorMessage),V [Zend_Amf_Value_Messaging_CommandMessage)*U WZend_Amf_Value_Messaging_AsyncMessage)-T ]Zend_Amf_Value_Messaging_ArrayCollection)0S cZend_Amf_Value_Messaging_AcknowledgeMessage)-R ]Zend_Amf_Value_Messaging_AbstractMessage)!Q EZend_Amf_Value_MessageHeader)P AZend_Amf_Value_MessageBody)O =Zend_Amf_Value_ByteArray)N AZend_Amf_Util_BinaryStream)M +Zend_Amf_Server)L ?Zend_Amf_Server_Exception)K /Zend_Amf_Response)J 9Zend_Amf_Response_Http)I -Zend_Amf_Request)H 7Zend_Amf_Request_Http)G ?Zend_Amf_Parse_TypeLoader)F ?Zend_Amf_Parse_Serializer)#E IZend_Amf_Parse_Resource_Stream)(D SZend_Amf_Parse_Resource_MysqlResult))C UZend_Amf_Parse_Resource_MysqliResult) B CZend_Amf_Parse_OutputStream)A AZend_Amf_Parse_InputStream) @ CZend_Amf_Parse_Deserializer)#? IZend_Amf_Parse_Amf3_Serializer)%> MZend_Amf_Parse_Amf3_Deserializer)#= IZend_Amf_Parse_Amf0_Serializer)%< MZend_Amf_Parse_Amf0_Deserializer); 1Zend_Amf_Exception): 1Zend_Amf_Constants)9 9Zend_Amf_Auth_Abstract) 8 CZend_Amf_Adobe_Introspector)7 AZend_Amf_Adobe_DbInspector)6 3Zend_Amf_Adobe_Auth)5 Zend_Acl)4 'Zend_Acl_Role)3 9Zend_Acl_Role_Registry)%2 MZend_Acl_Role_Registry_Exception)1 /Zend_Acl_Resource)0 1Zend_Acl_Exception)/ /Zend_XmlRpc_Value(. =Zend_XmlRpc_Value_Struct(- =Zend_XmlRpc_Value_String(, =Zend_XmlRpc_Value_Scalar(+ ?Zend_XmlRpc_Value_Integer( * CZend_XmlRpc_Value_Exception() =Zend_XmlRpc_Value_Double(( AZend_XmlRpc_Value_DateTime(!' EZend_XmlRpc_Value_Collection(& ?Zend_XmlRpc_Value_Boolean(% =Zend_XmlRpc_Value_Base64($ ;Zend_XmlRpc_Value_Array(# 1Zend_XmlRpc_Server(" =Zend_XmlRpc_Server_Fault(!! EZend_XmlRpc_Server_Exception(  =Zend_XmlRpc_Server_Cache( 5Zend_XmlRpc_Response( ?Zend_XmlRpc_Response_Http( 3Zend_XmlRpc_Request( ?Zend_XmlRpc_Request_Stdin( =Zend_XmlRpc_Request_Http( /Zend_XmlRpc_Fault( 7Zend_XmlRpc_Exception( 1Zend_XmlRpc_Client(# IZend_XmlRpc_Client_ServerProxy(+ YZend_XmlRpc_Client_ServerIntrospection(+ YZend_XmlRpc_Client_IntrospectException(% MZend_XmlRpc_Client_HttpException(& OZend_XmlRpc_Client_FaultException(   ^  vR(mI,xW4T1zN&




_
/				t	A	{Y/Ob,rQ0sIvGxBN$                 &N OZend_Soap_Wsdl_Strategy_Interface)%M MZend_Session_Validator_Interface)'L QZend_Session_SaveHandler_Interface)IK Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Interface)J 7Zend_Server_Interface)-I ]Zend_Serializer_Adapter_AdapterInterface)4H kZend_Search_Lucene_Search_Highlighter_Interface)!G EZend_Search_Lucene_Interface)3F iZend_Search_Lucene_Index_TermsStream_Interface)$E KZend_Queue_Stomp_FrameInterface)0D cZend_Queue_Stomp_Client_ConnectionInterface)(C SZend_Queue_Adapter_AdapterInterface)B ?Zend_Pdf_Filter_Interface)&A OZend_Pdf_ElementFactory_Interface),@ [Zend_Paginator_ScrollingStyle_Interface)$? KZend_Paginator_AdapterAggregate)%> MZend_Paginator_Adapter_Interface)&= OZend_Oauth_Config_ConfigInterface)$< KZend_Memory_Container_Interface)1; eZend_Markup_Renderer_TokenConverterInterface)': QZend_Markup_Parser_ParserInterface))9 UZend_Mail_Storage_Writable_Interface)'8 QZend_Mail_Storage_Folder_Interface)7 =Zend_Mail_Part_Interface) 6 CZend_Mail_Message_Interface)!5 EZend_Log_Formatter_Interface)4 ?Zend_Log_Filter_Interface)3 ?Zend_Log_FactoryInterface)'2 QZend_Loader_PluginLoader_Interface)%1 MZend_Loader_Autoloader_Interface)00 cZend_Ldap_Node_Schema_ObjectClass_Interface)2/ gZend_Ldap_Node_Schema_AttributeType_Interface)3. iZend_InfoCard_Xml_Security_Transform_Interface)(- SZend_InfoCard_Xml_KeyInfo_Interface)(, SZend_InfoCard_Xml_Element_Interface)*+ WZend_InfoCard_Xml_Assertion_Interface)-* ]Zend_InfoCard_Cipher_Symmetric_Interface)7) qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface)7( qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interface)+' YZend_InfoCard_Cipher_Pki_Rsa_Interface)'& QZend_InfoCard_Cipher_Pki_Interface)$% KZend_InfoCard_Adapter_Interface)$$ KZend_Http_Client_Adapter_Stream)'# QZend_Http_Client_Adapter_Interface)" AZend_Gdata_App_MediaSource).! _Zend_Form_Decorator_Marker_File_Interface)"  GZend_Form_Decorator_Interface) 7Zend_Filter_Interface)" GZend_Filter_Encrypt_Interface)+ YZend_Filter_Compress_CompressInterface)0 cZend_Feed_Writer_Renderer_RendererInterface)1 eZend_Feed_Writer_Extension_RendererInterface)# IZend_Feed_Reader_FeedInterface)$ KZend_Feed_Reader_EntryInterface)7 qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface)- ]Zend_Feed_Pubsubhubbub_CallbackInterface)  CZend_Feed_Builder_Interface)  CZend_Db_Statement_Interface)$ KZend_Currency_CurrencyInterface)) UZend_Crypt_Math_BigInteger_Interface)+ YZend_Controller_Router_Route_Interface)% MZend_Controller_Router_Interface)) UZend_Controller_Dispatcher_Interface)% MZend_Controller_Action_Interface) 5Zend_Captcha_Adapter)! EZend_Cache_Backend_Interface)) UZend_Cache_Backend_ExtendedInterface)  CZend_Auth_Storage_Interface) 
 CZend_Auth_Adapter_Interface).	 _Zend_Auth_Adapter_Http_Resolver_Interface)' QZend_Application_Resource_Resource)4 kZend_Application_Bootstrap_ResourceBootstrapper), [Zend_Application_Bootstrap_Bootstrapper) ;Zend_Acl_Role_Interface)  CZend_Acl_Resource_Interface) ?Zend_Acl_Assert_Interface) 3Zend_View_Interface( ;Zend_Validate_Interface(%  MZend_Validate_Hostname_Interface(% MZend_Session_Validator_Interface('~ QZend_Session_SaveHandler_Interface(} 7Zend_Server_Interface(!| EZend_Search_Lucene_Interface({ 9Zend_Request_Interface(z ?Zend_Pdf_Filter_Interface(&y OZend_Pdf_ElementFactory_Interface($x KZend_Memory_Container_Interface()w UZend_Mail_Storage_Writable_Interface('v QZend_Mail_Storage_Folder_Interface(!u EZend_Log_Formatter_Interface(t ?Zend_Log_Filter_Interface('s QZend_Http_Client_Adapter_Interface(r AZend_Gdata_App_MediaSource(q 7Zend_Filter_Interface(   g a>hF eAk<'|Z:



t
N
3
					r	O	.		 vW=OmIe0jK0j8S'b8                                               /c aZend_Controller_Action_Helper_ViewRenderer)&b OZend_Controller_Action_Helper_Url)-a ]Zend_Controller_Action_Helper_Redirector)'` QZend_Controller_Action_Helper_Json)1_ eZend_Controller_Action_Helper_FlashMessenger)0^ cZend_Controller_Action_Helper_ContextSwitch)(] SZend_Controller_Action_Helper_Cache)<\ {Zend_Controller_Action_Helper_AutoCompleteScriptaculous)3[ iZend_Controller_Action_Helper_AutoCompleteDojo)8Z sZend_Controller_Action_Helper_AutoComplete_Abstract).Y _Zend_Controller_Action_Helper_AjaxContext).X _Zend_Controller_Action_Helper_ActionStack)+W YZend_Controller_Action_Helper_Abstract)%V MZend_Controller_Action_Exception)U 3Zend_Console_Getopt)"T GZend_Console_Getopt_Exception)S #Zend_Config)R +Zend_Config_Xml)Q 1Zend_Config_Writer)P 9Zend_Config_Writer_Xml)O 9Zend_Config_Writer_Ini)$N KZend_Config_Writer_FileAbstract)M =Zend_Config_Writer_Array)L +Zend_Config_Ini)K 7Zend_Config_Exception)$J KZend_CodeGenerator_Php_Property)1I eZend_CodeGenerator_Php_Property_DefaultValue)%H MZend_CodeGenerator_Php_Parameter)2G gZend_CodeGenerator_Php_Parameter_DefaultValue)"F GZend_CodeGenerator_Php_Method),E [Zend_CodeGenerator_Php_Member_Container)+D YZend_CodeGenerator_Php_Member_Abstract) C CZend_CodeGenerator_Php_File)%B MZend_CodeGenerator_Php_Exception)$A KZend_CodeGenerator_Php_Docblock)(@ SZend_CodeGenerator_Php_Docblock_Tag)/? aZend_CodeGenerator_Php_Docblock_Tag_Return).> _Zend_CodeGenerator_Php_Docblock_Tag_Param)0= cZend_CodeGenerator_Php_Docblock_Tag_License)!< EZend_CodeGenerator_Php_Class) ; CZend_CodeGenerator_Php_Body)$: KZend_CodeGenerator_Php_Abstract)!9 EZend_CodeGenerator_Exception) 8 CZend_CodeGenerator_Abstract)7 /Zend_Captcha_Word)6 9Zend_Captcha_ReCaptcha)5 1Zend_Captcha_Image)4 3Zend_Captcha_Figlet)3 9Zend_Captcha_Exception)2 /Zend_Captcha_Dumb)1 /Zend_Captcha_Base)0 !Zend_Cache)/ 1Zend_Cache_Manager). =Zend_Cache_Frontend_Page)- AZend_Cache_Frontend_Output)!, EZend_Cache_Frontend_Function)+ =Zend_Cache_Frontend_File)* ?Zend_Cache_Frontend_Class) ) CZend_Cache_Frontend_Capture)( 5Zend_Cache_Exception)' +Zend_Cache_Core)& 1Zend_Cache_Backend)"% GZend_Cache_Backend_ZendServer)($ SZend_Cache_Backend_ZendServer_ShMem)'# QZend_Cache_Backend_ZendServer_Disk)$" KZend_Cache_Backend_ZendPlatform)! ?Zend_Cache_Backend_Xcache)!  EZend_Cache_Backend_TwoLevels) ;Zend_Cache_Backend_Test) ?Zend_Cache_Backend_Static) ?Zend_Cache_Backend_Sqlite)! EZend_Cache_Backend_Memcached) ;Zend_Cache_Backend_File)! EZend_Cache_Backend_BlackHole) 9Zend_Cache_Backend_Apc) %Zend_Barcode)+ YZend_Barcode_Renderer_RendererAbstract) ?Zend_Barcode_Renderer_Pdf)  CZend_Barcode_Renderer_Image)$ KZend_Barcode_Renderer_Exception) =Zend_Barcode_Object_Upce) =Zend_Barcode_Object_Upca)" GZend_Barcode_Object_Royalmail)  CZend_Barcode_Object_Postnet) AZend_Barcode_Object_Planet)' QZend_Barcode_Object_ObjectAbstract)! EZend_Barcode_Object_Leitcode) ?Zend_Barcode_Object_Itf14)" GZend_Barcode_Object_Identcode)"
 GZend_Barcode_Object_Exception)	 ?Zend_Barcode_Object_Error) =Zend_Barcode_Object_Ean8) =Zend_Barcode_Object_Ean5) =Zend_Barcode_Object_Ean2) ?Zend_Barcode_Object_Ean13) AZend_Barcode_Object_Code39)* WZend_Barcode_Object_Code25interleaved) AZend_Barcode_Object_Code25) 9Zend_Barcode_Exception)  Zend_Auth) ?Zend_Auth_Storage_Session)$~ KZend_Auth_Storage_NonPersistent) } CZend_Auth_Storage_Exception)   n  {O"c=jEwQ#}R$



|
Q
0
					[	8	tT>%wU,|X8fG-{d<b@ {Z:oH+               Q !Zend_Debug)P Zend_Db)O 'Zend_Db_Table)N 5Zend_Db_Table_Select)#M IZend_Db_Table_Select_Exception)L 5Zend_Db_Table_Rowset)#K IZend_Db_Table_Rowset_Exception)"J GZend_Db_Table_Rowset_Abstract)I /Zend_Db_Table_Row) H CZend_Db_Table_Row_Exception)G AZend_Db_Table_Row_Abstract)F ;Zend_Db_Table_Exception)E =Zend_Db_Table_Definition)D 9Zend_Db_Table_Abstract)C /Zend_Db_Statement)B =Zend_Db_Statement_Sqlsrv)'A QZend_Db_Statement_Sqlsrv_Exception)@ 7Zend_Db_Statement_Pdo)? ?Zend_Db_Statement_Pdo_Oci)> ?Zend_Db_Statement_Pdo_Ibm)= =Zend_Db_Statement_Oracle)'< QZend_Db_Statement_Oracle_Exception); =Zend_Db_Statement_Mysqli)': QZend_Db_Statement_Mysqli_Exception) 9 CZend_Db_Statement_Exception)8 7Zend_Db_Statement_Db2)$7 KZend_Db_Statement_Db2_Exception)6 )Zend_Db_Select)5 =Zend_Db_Select_Exception)4 -Zend_Db_Profiler)3 9Zend_Db_Profiler_Query)2 =Zend_Db_Profiler_Firebug)1 AZend_Db_Profiler_Exception)0 %Zend_Db_Expr)/ /Zend_Db_Exception). 9Zend_Db_Adapter_Sqlsrv)%- MZend_Db_Adapter_Sqlsrv_Exception), AZend_Db_Adapter_Pdo_Sqlite)+ ?Zend_Db_Adapter_Pdo_Pgsql)* ;Zend_Db_Adapter_Pdo_Oci)) ?Zend_Db_Adapter_Pdo_Mysql)( ?Zend_Db_Adapter_Pdo_Mssql)' ;Zend_Db_Adapter_Pdo_Ibm) & CZend_Db_Adapter_Pdo_Ibm_Ids) % CZend_Db_Adapter_Pdo_Ibm_Db2)!$ EZend_Db_Adapter_Pdo_Abstract)# 9Zend_Db_Adapter_Oracle)%" MZend_Db_Adapter_Oracle_Exception)! 9Zend_Db_Adapter_Mysqli)%  MZend_Db_Adapter_Mysqli_Exception) ?Zend_Db_Adapter_Exception) 3Zend_Db_Adapter_Db2)" GZend_Db_Adapter_Db2_Exception) =Zend_Db_Adapter_Abstract) Zend_Date) 3Zend_Date_Exception) 5Zend_Date_DateObject) -Zend_Date_Cities) 'Zend_Currency) ;Zend_Currency_Exception) !Zend_Crypt) )Zend_Crypt_Rsa) 1Zend_Crypt_Rsa_Key) ?Zend_Crypt_Rsa_Key_Public) AZend_Crypt_Rsa_Key_Private) +Zend_Crypt_Math) ?Zend_Crypt_Math_Exception) AZend_Crypt_Math_BigInteger)# IZend_Crypt_Math_BigInteger_Gmp)) UZend_Crypt_Math_BigInteger_Exception)& OZend_Crypt_Math_BigInteger_Bcmath)
 +Zend_Crypt_Hmac)	 ?Zend_Crypt_Hmac_Exception) 5Zend_Crypt_Exception) =Zend_Crypt_DiffieHellman)' QZend_Crypt_DiffieHellman_Exception)! EZend_Controller_Router_Route)( SZend_Controller_Router_Route_Static)' QZend_Controller_Router_Route_Regex)( SZend_Controller_Router_Route_Module)* WZend_Controller_Router_Route_Hostname)'  QZend_Controller_Router_Route_Chain)* WZend_Controller_Router_Route_Abstract)#~ IZend_Controller_Router_Rewrite)%} MZend_Controller_Router_Exception)$| KZend_Controller_Router_Abstract)*{ WZend_Controller_Response_HttpTestCase)"z GZend_Controller_Response_Http)'y QZend_Controller_Response_Exception)!x EZend_Controller_Response_Cli)&w OZend_Controller_Response_Abstract)#v IZend_Controller_Request_Simple))u UZend_Controller_Request_HttpTestCase)!t EZend_Controller_Request_Http)&s OZend_Controller_Request_Exception)&r OZend_Controller_Request_Apache404)%q MZend_Controller_Request_Abstract)&p OZend_Controller_Plugin_PutHandler)(o SZend_Controller_Plugin_ErrorHandler)"n GZend_Controller_Plugin_Broker)'m QZend_Controller_Plugin_ActionStack)$l KZend_Controller_Plugin_Abstract)k 7Zend_Controller_Front)j ?Zend_Controller_Exception)(i SZend_Controller_Dispatcher_Standard))h UZend_Controller_Dispatcher_Exception)(g SZend_Controller_Dispatcher_Abstract)f 9Zend_Controller_Action)(e SZend_Controller_Action_HelperBroker)6d oZend_Controller_Action_HelperBroker_PriorityStack)   a  |Mf6f>o@\.



b
1
				{	O	!V,a<d6`5
c6$	jJ&kO3{I                                     /2 aZend_Feed_Pubsubhubbub_Subscriber_Callback)%1 MZend_Feed_Pubsubhubbub_Publisher).0 _Zend_Feed_Pubsubhubbub_Model_Subscription)// aZend_Feed_Pubsubhubbub_Model_ModelAbstract)(. SZend_Feed_Pubsubhubbub_HttpResponse)%- MZend_Feed_Pubsubhubbub_Exception),, [Zend_Feed_Pubsubhubbub_CallbackAbstract)+ 3Zend_Feed_Exception)* 3Zend_Feed_Entry_Rss)) 5Zend_Feed_Entry_Atom)( =Zend_Feed_Entry_Abstract)' /Zend_Feed_Element)& /Zend_Feed_Builder)% =Zend_Feed_Builder_Header)$$ KZend_Feed_Builder_Header_Itunes) # CZend_Feed_Builder_Exception)" ;Zend_Feed_Builder_Entry)! )Zend_Feed_Atom)  1Zend_Feed_Abstract) )Zend_Exception) )Zend_Dom_Query) 7Zend_Dom_Query_Result) =Zend_Dom_Query_Css2Xpath) 1Zend_Dom_Exception) Zend_Dojo)) UZend_Dojo_View_Helper_VerticalSlider), [Zend_Dojo_View_Helper_ValidationTextBox)& OZend_Dojo_View_Helper_TimeTextBox)" GZend_Dojo_View_Helper_TextBox)# IZend_Dojo_View_Helper_Textarea)' QZend_Dojo_View_Helper_TabContainer)' QZend_Dojo_View_Helper_SubmitButton)) UZend_Dojo_View_Helper_StackContainer)) UZend_Dojo_View_Helper_SplitContainer)! EZend_Dojo_View_Helper_Slider)) UZend_Dojo_View_Helper_SimpleTextarea)& OZend_Dojo_View_Helper_RadioButton)* WZend_Dojo_View_Helper_PasswordTextBox)( SZend_Dojo_View_Helper_NumberTextBox)( SZend_Dojo_View_Helper_NumberSpinner)+
 YZend_Dojo_View_Helper_HorizontalSlider)	 AZend_Dojo_View_Helper_Form)* WZend_Dojo_View_Helper_FilteringSelect)! EZend_Dojo_View_Helper_Editor) AZend_Dojo_View_Helper_Dojo)) UZend_Dojo_View_Helper_Dojo_Container)) UZend_Dojo_View_Helper_DijitContainer)  CZend_Dojo_View_Helper_Dijit)& OZend_Dojo_View_Helper_DateTextBox)& OZend_Dojo_View_Helper_CustomDijit)*  WZend_Dojo_View_Helper_CurrencyTextBox)& OZend_Dojo_View_Helper_ContentPane)#~ IZend_Dojo_View_Helper_ComboBox)#} IZend_Dojo_View_Helper_CheckBox)!| EZend_Dojo_View_Helper_Button)*{ WZend_Dojo_View_Helper_BorderContainer)(z SZend_Dojo_View_Helper_AccordionPane)-y ]Zend_Dojo_View_Helper_AccordionContainer)x =Zend_Dojo_View_Exception)w )Zend_Dojo_Form)v 9Zend_Dojo_Form_SubForm)*u WZend_Dojo_Form_Element_VerticalSlider)-t ]Zend_Dojo_Form_Element_ValidationTextBox)'s QZend_Dojo_Form_Element_TimeTextBox)#r IZend_Dojo_Form_Element_TextBox)$q KZend_Dojo_Form_Element_Textarea)(p SZend_Dojo_Form_Element_SubmitButton)"o GZend_Dojo_Form_Element_Slider)*n WZend_Dojo_Form_Element_SimpleTextarea)'m QZend_Dojo_Form_Element_RadioButton)+l YZend_Dojo_Form_Element_PasswordTextBox))k UZend_Dojo_Form_Element_NumberTextBox))j UZend_Dojo_Form_Element_NumberSpinner),i [Zend_Dojo_Form_Element_HorizontalSlider)+h YZend_Dojo_Form_Element_FilteringSelect)"g GZend_Dojo_Form_Element_Editor)&f OZend_Dojo_Form_Element_DijitMulti)!e EZend_Dojo_Form_Element_Dijit)'d QZend_Dojo_Form_Element_DateTextBox)+c YZend_Dojo_Form_Element_CurrencyTextBox)$b KZend_Dojo_Form_Element_ComboBox)$a KZend_Dojo_Form_Element_CheckBox)"` GZend_Dojo_Form_Element_Button) _ CZend_Dojo_Form_DisplayGroup)*^ WZend_Dojo_Form_Decorator_TabContainer),] [Zend_Dojo_Form_Decorator_StackContainer),\ [Zend_Dojo_Form_Decorator_SplitContainer)'[ QZend_Dojo_Form_Decorator_DijitForm)*Z WZend_Dojo_Form_Decorator_DijitElement),Y [Zend_Dojo_Form_Decorator_DijitContainer))X UZend_Dojo_Form_Decorator_ContentPane)-W ]Zend_Dojo_Form_Decorator_BorderContainer)+V YZend_Dojo_Form_Decorator_AccordionPane)0U cZend_Dojo_Form_Decorator_AccordionContainer)T 3Zend_Dojo_Exception)S )Zend_Dojo_Data)R 5Zend_Dojo_BuildLayer)   a  _(h;
e2pA|Y7





G
			^	.Z"{](c7b:pO!}`A%
qP/pX.    ;Zend_Filter_PregReplace) -Zend_Filter_Null)& OZend_Filter_NormalizedToLocalized)& OZend_Filter_LocalizedToNormalized) +Zend_Filter_Int) /Zend_Filter_Input) 7Zend_Filter_Inflector) =Zend_Filter_HtmlEntities) AZend_Filter_File_UpperCase)
 ;Zend_Filter_File_Rename)	 AZend_Filter_File_LowerCase) =Zend_Filter_File_Encrypt) =Zend_Filter_File_Decrypt) 7Zend_Filter_Exception) 3Zend_Filter_Encrypt)  CZend_Filter_Encrypt_Openssl) AZend_Filter_Encrypt_Mcrypt) +Zend_Filter_Dir) 1Zend_Filter_Digits)  3Zend_Filter_Decrypt) 9Zend_Filter_Decompress)~ 5Zend_Filter_Compress)} =Zend_Filter_Compress_Zip)| =Zend_Filter_Compress_Tar){ =Zend_Filter_Compress_Rar)z =Zend_Filter_Compress_Lzf)y ;Zend_Filter_Compress_Gz)*x WZend_Filter_Compress_CompressAbstract)w =Zend_Filter_Compress_Bz2)v 5Zend_Filter_Callback)u 3Zend_Filter_Boolean)t 5Zend_Filter_BaseName)s /Zend_Filter_Alpha)r /Zend_Filter_Alnum)q 1Zend_File_Transfer)!p EZend_File_Transfer_Exception)$o KZend_File_Transfer_Adapter_Http)(n SZend_File_Transfer_Adapter_Abstract)m Zend_Feed)l -Zend_Feed_Writer)k ;Zend_Feed_Writer_Source)/j aZend_Feed_Writer_Renderer_RendererAbstract)'i QZend_Feed_Writer_Renderer_Feed_Rss)(h SZend_Feed_Writer_Renderer_Feed_Atom)/g aZend_Feed_Writer_Renderer_Feed_Atom_Source)5f mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract)(e SZend_Feed_Writer_Renderer_Entry_Rss))d UZend_Feed_Writer_Renderer_Entry_Atom)1c eZend_Feed_Writer_Renderer_Entry_Atom_Deleted)b 7Zend_Feed_Writer_Feed)'a QZend_Feed_Writer_Feed_FeedAbstract)<` {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry)8_ sZend_Feed_Writer_Extension_Threading_Renderer_Entry)4^ kZend_Feed_Writer_Extension_Slash_Renderer_Entry)0] cZend_Feed_Writer_Extension_RendererAbstract)4\ kZend_Feed_Writer_Extension_ITunes_Renderer_Feed)5[ mZend_Feed_Writer_Extension_ITunes_Renderer_Entry)+Z YZend_Feed_Writer_Extension_ITunes_Feed),Y [Zend_Feed_Writer_Extension_ITunes_Entry)8X sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed)9W uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry)6V oZend_Feed_Writer_Extension_Content_Renderer_Entry)2U gZend_Feed_Writer_Extension_Atom_Renderer_Feed)6T oZend_Feed_Writer_Exception_InvalidMethodException)S 9Zend_Feed_Writer_Entry)R =Zend_Feed_Writer_Deleted)Q 'Zend_Feed_Rss)P -Zend_Feed_Reader)O =Zend_Feed_Reader_FeedSet)"N GZend_Feed_Reader_FeedAbstract)M ?Zend_Feed_Reader_Feed_Rss)L AZend_Feed_Reader_Feed_Atom)&K OZend_Feed_Reader_Feed_Atom_Source)3J iZend_Feed_Reader_Extension_WellFormedWeb_Entry),I [Zend_Feed_Reader_Extension_Thread_Entry)0H cZend_Feed_Reader_Extension_Syndication_Feed)+G YZend_Feed_Reader_Extension_Slash_Entry),F [Zend_Feed_Reader_Extension_Podcast_Feed)-E ]Zend_Feed_Reader_Extension_Podcast_Entry),D [Zend_Feed_Reader_Extension_FeedAbstract)-C ]Zend_Feed_Reader_Extension_EntryAbstract)/B aZend_Feed_Reader_Extension_DublinCore_Feed)0A cZend_Feed_Reader_Extension_DublinCore_Entry)4@ kZend_Feed_Reader_Extension_CreativeCommons_Feed)5? mZend_Feed_Reader_Extension_CreativeCommons_Entry)-> ]Zend_Feed_Reader_Extension_Content_Entry))= UZend_Feed_Reader_Extension_Atom_Feed)*< WZend_Feed_Reader_Extension_Atom_Entry)#; IZend_Feed_Reader_EntryAbstract): AZend_Feed_Reader_Entry_Rss) 9 CZend_Feed_Reader_Entry_Atom) 8 CZend_Feed_Reader_Collection)37 iZend_Feed_Reader_Collection_CollectionAbstract))6 UZend_Feed_Reader_Collection_Category)'5 QZend_Feed_Reader_Collection_Author)4 9Zend_Feed_Pubsubhubbub)&3 OZend_Feed_Pubsubhubbub_Subscriber)   h  ^@h>^4~Z2
{Z1




v
R
+
					[	<	nK+gM1o?"Y0	f@W/g>h8        2{ gZend_Gdata_App_LoggingHttpClientAdapterSocket)z AZend_Gdata_App_IOException),y [Zend_Gdata_App_InvalidArgumentException)!x EZend_Gdata_App_HttpException)$w KZend_Gdata_App_FeedSourceParent)#v IZend_Gdata_App_FeedEntryParent)u 3Zend_Gdata_App_Feed)t =Zend_Gdata_App_Extension)!s EZend_Gdata_App_Extension_Uri)%r MZend_Gdata_App_Extension_Updated)#q IZend_Gdata_App_Extension_Title)"p GZend_Gdata_App_Extension_Text)%o MZend_Gdata_App_Extension_Summary)&n OZend_Gdata_App_Extension_Subtitle)$m KZend_Gdata_App_Extension_Source)$l KZend_Gdata_App_Extension_Rights)'k QZend_Gdata_App_Extension_Published)$j KZend_Gdata_App_Extension_Person)"i GZend_Gdata_App_Extension_Name)"h GZend_Gdata_App_Extension_Logo)"g GZend_Gdata_App_Extension_Link) f CZend_Gdata_App_Extension_Id)"e GZend_Gdata_App_Extension_Icon)'d QZend_Gdata_App_Extension_Generator)#c IZend_Gdata_App_Extension_Email)%b MZend_Gdata_App_Extension_Element)$a KZend_Gdata_App_Extension_Edited)#` IZend_Gdata_App_Extension_Draft)%_ MZend_Gdata_App_Extension_Control))^ UZend_Gdata_App_Extension_Contributor)%] MZend_Gdata_App_Extension_Content)&\ OZend_Gdata_App_Extension_Category)$[ KZend_Gdata_App_Extension_Author)Z =Zend_Gdata_App_Exception)Y 5Zend_Gdata_App_Entry),X [Zend_Gdata_App_CaptchaRequiredException)#W IZend_Gdata_App_BaseMediaSource)V 3Zend_Gdata_App_Base)*U WZend_Gdata_App_BadMethodCallException)!T EZend_Gdata_App_AuthException)S Zend_Form)R /Zend_Form_SubForm)Q 3Zend_Form_Exception)P /Zend_Form_Element)O ;Zend_Form_Element_Xhtml)N AZend_Form_Element_Textarea)M 9Zend_Form_Element_Text)L =Zend_Form_Element_Submit)K =Zend_Form_Element_Select)J ;Zend_Form_Element_Reset)I ;Zend_Form_Element_Radio)H AZend_Form_Element_Password)"G GZend_Form_Element_Multiselect)$F KZend_Form_Element_MultiCheckbox)E ;Zend_Form_Element_Multi)D ;Zend_Form_Element_Image)C =Zend_Form_Element_Hidden)B 9Zend_Form_Element_Hash)A 9Zend_Form_Element_File) @ CZend_Form_Element_Exception)? AZend_Form_Element_Checkbox)> ?Zend_Form_Element_Captcha)= =Zend_Form_Element_Button)< 9Zend_Form_DisplayGroup)#; IZend_Form_Decorator_ViewScript)#: IZend_Form_Decorator_ViewHelper) 9 CZend_Form_Decorator_Tooltip)(8 SZend_Form_Decorator_PrepareElements)7 ?Zend_Form_Decorator_Label)6 ?Zend_Form_Decorator_Image) 5 CZend_Form_Decorator_HtmlTag)#4 IZend_Form_Decorator_FormErrors)%3 MZend_Form_Decorator_FormElements)2 =Zend_Form_Decorator_Form)1 =Zend_Form_Decorator_File)!0 EZend_Form_Decorator_Fieldset)"/ GZend_Form_Decorator_Exception). AZend_Form_Decorator_Errors)$- KZend_Form_Decorator_DtDdWrapper)$, KZend_Form_Decorator_Description) + CZend_Form_Decorator_Captcha)%* MZend_Form_Decorator_Captcha_Word)!) EZend_Form_Decorator_Callback)!( EZend_Form_Decorator_Abstract)' #Zend_Filter)+& YZend_Filter_Word_UnderscoreToSeparator)&% OZend_Filter_Word_UnderscoreToDash)+$ YZend_Filter_Word_UnderscoreToCamelCase)*# WZend_Filter_Word_SeparatorToSeparator)%" MZend_Filter_Word_SeparatorToDash)*! WZend_Filter_Word_SeparatorToCamelCase)(  SZend_Filter_Word_Separator_Abstract)& OZend_Filter_Word_DashToUnderscore)% MZend_Filter_Word_DashToSeparator)% MZend_Filter_Word_DashToCamelCase)+ YZend_Filter_Word_CamelCaseToUnderscore)* WZend_Filter_Word_CamelCaseToSeparator)% MZend_Filter_Word_CamelCaseToDash) 7Zend_Filter_StripTags) ?Zend_Filter_StripNewlines) 9Zend_Filter_StringTrim) ?Zend_Filter_StringToUpper) ?Zend_Filter_StringToLower) 5Zend_Filter_RealPath)   _  s\A`/yJ%vOj;



x
S
7
					_	2k9
uW,S-s[/a;vR*_<o>                        -Z ]Zend_Gdata_Gapps_EmailListRecipientQuery),Y [Zend_Gdata_Gapps_EmailListRecipientFeed)-X ]Zend_Gdata_Gapps_EmailListRecipientEntry)$W KZend_Gdata_Gapps_EmailListQuery)#V IZend_Gdata_Gapps_EmailListFeed)$U KZend_Gdata_Gapps_EmailListEntry)T +Zend_Gdata_Feed)S 5Zend_Gdata_Extension)R =Zend_Gdata_Extension_Who)Q AZend_Gdata_Extension_Where)P ?Zend_Gdata_Extension_When)$O KZend_Gdata_Extension_Visibility)&N OZend_Gdata_Extension_Transparency)"M GZend_Gdata_Extension_Reminder)-L ]Zend_Gdata_Extension_RecurrenceException)$K KZend_Gdata_Extension_Recurrence) J CZend_Gdata_Extension_Rating)'I QZend_Gdata_Extension_OriginalEvent)0H cZend_Gdata_Extension_OpenSearchTotalResults).G _Zend_Gdata_Extension_OpenSearchStartIndex)0F cZend_Gdata_Extension_OpenSearchItemsPerPage)"E GZend_Gdata_Extension_FeedLink)*D WZend_Gdata_Extension_ExtendedProperty)%C MZend_Gdata_Extension_EventStatus)#B IZend_Gdata_Extension_EntryLink)"A GZend_Gdata_Extension_Comments)&@ OZend_Gdata_Extension_AttendeeType)(? SZend_Gdata_Extension_AttendeeStatus)> +Zend_Gdata_Exif)= 5Zend_Gdata_Exif_Feed)#< IZend_Gdata_Exif_Extension_Time)#; IZend_Gdata_Exif_Extension_Tags)$: KZend_Gdata_Exif_Extension_Model)#9 IZend_Gdata_Exif_Extension_Make)"8 GZend_Gdata_Exif_Extension_Iso),7 [Zend_Gdata_Exif_Extension_ImageUniqueId)$6 KZend_Gdata_Exif_Extension_FStop)*5 WZend_Gdata_Exif_Extension_FocalLength)$4 KZend_Gdata_Exif_Extension_Flash)'3 QZend_Gdata_Exif_Extension_Exposure)'2 QZend_Gdata_Exif_Extension_Distance)1 7Zend_Gdata_Exif_Entry)0 -Zend_Gdata_Entry)/ 7Zend_Gdata_DublinCore)*. WZend_Gdata_DublinCore_Extension_Title),- [Zend_Gdata_DublinCore_Extension_Subject)+, YZend_Gdata_DublinCore_Extension_Rights).+ _Zend_Gdata_DublinCore_Extension_Publisher)-* ]Zend_Gdata_DublinCore_Extension_Language)/) aZend_Gdata_DublinCore_Extension_Identifier)+( YZend_Gdata_DublinCore_Extension_Format)0' cZend_Gdata_DublinCore_Extension_Description))& UZend_Gdata_DublinCore_Extension_Date),% [Zend_Gdata_DublinCore_Extension_Creator)$ +Zend_Gdata_Docs)# 7Zend_Gdata_Docs_Query)%" MZend_Gdata_Docs_DocumentListFeed)&! OZend_Gdata_Docs_DocumentListEntry)  9Zend_Gdata_ClientLogin) 3Zend_Gdata_Calendar)! EZend_Gdata_Calendar_ListFeed)" GZend_Gdata_Calendar_ListEntry)- ]Zend_Gdata_Calendar_Extension_WebContent)+ YZend_Gdata_Calendar_Extension_Timezone)9 uZend_Gdata_Calendar_Extension_SendEventNotifications)+ YZend_Gdata_Calendar_Extension_Selected)+ YZend_Gdata_Calendar_Extension_QuickAdd)' QZend_Gdata_Calendar_Extension_Link)) UZend_Gdata_Calendar_Extension_Hidden)( SZend_Gdata_Calendar_Extension_Color). _Zend_Gdata_Calendar_Extension_AccessLevel)# IZend_Gdata_Calendar_EventQuery)" GZend_Gdata_Calendar_EventFeed)# IZend_Gdata_Calendar_EventEntry) -Zend_Gdata_Books)! EZend_Gdata_Books_VolumeQuery)  CZend_Gdata_Books_VolumeFeed)! EZend_Gdata_Books_VolumeEntry)+ YZend_Gdata_Books_Extension_Viewability)- ]Zend_Gdata_Books_Extension_ThumbnailLink)&
 OZend_Gdata_Books_Extension_Review)+	 YZend_Gdata_Books_Extension_PreviewLink)( SZend_Gdata_Books_Extension_InfoLink)- ]Zend_Gdata_Books_Extension_Embeddability)) UZend_Gdata_Books_Extension_BooksLink)- ]Zend_Gdata_Books_Extension_BooksCategory). _Zend_Gdata_Books_Extension_AnnotationLink)$ KZend_Gdata_Books_CollectionFeed)% MZend_Gdata_Books_CollectionEntry) 1Zend_Gdata_AuthSub)  )Zend_Gdata_App)$ KZend_Gdata_App_VersionException)~ 3Zend_Gdata_App_Util)#} IZend_Gdata_App_MediaFileSource)| ?Zend_Gdata_App_MediaEntry)   `  c7{Q.b?jQ4Z3



~
Q
#
				b	0	rAP"eApC_2xA[2V,                             : CZend_Gdata_Photos_PhotoFeed)!9 EZend_Gdata_Photos_PhotoEntry)&8 OZend_Gdata_Photos_Extension_Width)'7 QZend_Gdata_Photos_Extension_Weight)(6 SZend_Gdata_Photos_Extension_Version)%5 MZend_Gdata_Photos_Extension_User)*4 WZend_Gdata_Photos_Extension_Timestamp)*3 WZend_Gdata_Photos_Extension_Thumbnail)%2 MZend_Gdata_Photos_Extension_Size))1 UZend_Gdata_Photos_Extension_Rotation)+0 YZend_Gdata_Photos_Extension_QuotaLimit)-/ ]Zend_Gdata_Photos_Extension_QuotaCurrent)). UZend_Gdata_Photos_Extension_Position)(- SZend_Gdata_Photos_Extension_PhotoId)3, iZend_Gdata_Photos_Extension_NumPhotosRemaining)*+ WZend_Gdata_Photos_Extension_NumPhotos))* UZend_Gdata_Photos_Extension_Nickname)%) MZend_Gdata_Photos_Extension_Name)2( gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum))' UZend_Gdata_Photos_Extension_Location)#& IZend_Gdata_Photos_Extension_Id)'% QZend_Gdata_Photos_Extension_Height)2$ gZend_Gdata_Photos_Extension_CommentingEnabled)-# ]Zend_Gdata_Photos_Extension_CommentCount)'" QZend_Gdata_Photos_Extension_Client))! UZend_Gdata_Photos_Extension_Checksum)*  WZend_Gdata_Photos_Extension_BytesUsed)( SZend_Gdata_Photos_Extension_AlbumId)' QZend_Gdata_Photos_Extension_Access)# IZend_Gdata_Photos_CommentEntry)! EZend_Gdata_Photos_AlbumQuery)  CZend_Gdata_Photos_AlbumFeed)! EZend_Gdata_Photos_AlbumEntry) 3Zend_Gdata_MimeFile) ?Zend_Gdata_MimeBodyString) AZend_Gdata_MediaMimeStream) -Zend_Gdata_Media) 7Zend_Gdata_Media_Feed)* WZend_Gdata_Media_Extension_MediaTitle). _Zend_Gdata_Media_Extension_MediaThumbnail)) UZend_Gdata_Media_Extension_MediaText)0 cZend_Gdata_Media_Extension_MediaRestriction)+ YZend_Gdata_Media_Extension_MediaRating)+ YZend_Gdata_Media_Extension_MediaPlayer)- ]Zend_Gdata_Media_Extension_MediaKeywords)) UZend_Gdata_Media_Extension_MediaHash)* WZend_Gdata_Media_Extension_MediaGroup)0 cZend_Gdata_Media_Extension_MediaDescription)+
 YZend_Gdata_Media_Extension_MediaCredit).	 _Zend_Gdata_Media_Extension_MediaCopyright), [Zend_Gdata_Media_Extension_MediaContent)- ]Zend_Gdata_Media_Extension_MediaCategory) 9Zend_Gdata_Media_Entry) AZend_Gdata_Kind_EventEntry) 7Zend_Gdata_HttpClient)* WZend_Gdata_HttpAdapterStreamingSocket)) UZend_Gdata_HttpAdapterStreamingProxy) /Zend_Gdata_Health)  ;Zend_Gdata_Health_Query)& OZend_Gdata_Health_ProfileListFeed)'~ QZend_Gdata_Health_ProfileListEntry)"} GZend_Gdata_Health_ProfileFeed)#| IZend_Gdata_Health_ProfileEntry)${ KZend_Gdata_Health_Extension_Ccr)z )Zend_Gdata_Geo)y 3Zend_Gdata_Geo_Feed)$x KZend_Gdata_Geo_Extension_GmlPos)&w OZend_Gdata_Geo_Extension_GmlPoint))v UZend_Gdata_Geo_Extension_GeoRssWhere)u 5Zend_Gdata_Geo_Entry)t -Zend_Gdata_Gbase)"s GZend_Gdata_Gbase_SnippetQuery)!r EZend_Gdata_Gbase_SnippetFeed)"q GZend_Gdata_Gbase_SnippetEntry)p 9Zend_Gdata_Gbase_Query)o AZend_Gdata_Gbase_ItemQuery)n ?Zend_Gdata_Gbase_ItemFeed)m AZend_Gdata_Gbase_ItemEntry)l 7Zend_Gdata_Gbase_Feed)-k ]Zend_Gdata_Gbase_Extension_BaseAttribute)j 9Zend_Gdata_Gbase_Entry)i -Zend_Gdata_Gapps)h AZend_Gdata_Gapps_UserQuery)g ?Zend_Gdata_Gapps_UserFeed)f AZend_Gdata_Gapps_UserEntry)&e OZend_Gdata_Gapps_ServiceException)d 9Zend_Gdata_Gapps_Query)#c IZend_Gdata_Gapps_NicknameQuery)"b GZend_Gdata_Gapps_NicknameFeed)#a IZend_Gdata_Gapps_NicknameEntry)%` MZend_Gdata_Gapps_Extension_Quota)(_ SZend_Gdata_Gapps_Extension_Nickname)$^ KZend_Gdata_Gapps_Extension_Name)%] MZend_Gdata_Gapps_Extension_Login))\ UZend_Gdata_Gapps_Extension_EmailList)[ 9Zend_Gdata_Gapps_Error)   \  qM3o@V,nN%_2	



U
$				n	@	W'rBS)lA^1g9a<pH"                 -Zend_Http_Cookie) -Zend_Http_Client) AZend_Http_Client_Exception)" GZend_Http_Client_Adapter_Test)$ KZend_Http_Client_Adapter_Socket)# IZend_Http_Client_Adapter_Proxy)' QZend_Http_Client_Adapter_Exception)" GZend_Http_Client_Adapter_Curl) !Zend_Gdata) 1Zend_Gdata_YouTube)" GZend_Gdata_YouTube_VideoQuery)! EZend_Gdata_YouTube_VideoFeed)"
 GZend_Gdata_YouTube_VideoEntry)(	 SZend_Gdata_YouTube_UserProfileEntry)( SZend_Gdata_YouTube_SubscriptionFeed)) UZend_Gdata_YouTube_SubscriptionEntry)) UZend_Gdata_YouTube_PlaylistVideoFeed)* WZend_Gdata_YouTube_PlaylistVideoEntry)( SZend_Gdata_YouTube_PlaylistListFeed)) UZend_Gdata_YouTube_PlaylistListEntry)" GZend_Gdata_YouTube_MediaEntry)! EZend_Gdata_YouTube_InboxFeed)"  GZend_Gdata_YouTube_InboxEntry)) UZend_Gdata_YouTube_Extension_VideoId)*~ WZend_Gdata_YouTube_Extension_Username)*} WZend_Gdata_YouTube_Extension_Uploaded)'| QZend_Gdata_YouTube_Extension_Token)({ SZend_Gdata_YouTube_Extension_Status),z [Zend_Gdata_YouTube_Extension_Statistics)'y QZend_Gdata_YouTube_Extension_State)(x SZend_Gdata_YouTube_Extension_School)-w ]Zend_Gdata_YouTube_Extension_ReleaseDate).v _Zend_Gdata_YouTube_Extension_Relationship)*u WZend_Gdata_YouTube_Extension_Recorded)&t OZend_Gdata_YouTube_Extension_Racy)-s ]Zend_Gdata_YouTube_Extension_QueryString))r UZend_Gdata_YouTube_Extension_Private)*q WZend_Gdata_YouTube_Extension_Position)/p aZend_Gdata_YouTube_Extension_PlaylistTitle),o [Zend_Gdata_YouTube_Extension_PlaylistId),n [Zend_Gdata_YouTube_Extension_Occupation))m UZend_Gdata_YouTube_Extension_NoEmbed)'l QZend_Gdata_YouTube_Extension_Music)(k SZend_Gdata_YouTube_Extension_Movies)-j ]Zend_Gdata_YouTube_Extension_MediaRating),i [Zend_Gdata_YouTube_Extension_MediaGroup)-h ]Zend_Gdata_YouTube_Extension_MediaCredit).g _Zend_Gdata_YouTube_Extension_MediaContent)*f WZend_Gdata_YouTube_Extension_Location)&e OZend_Gdata_YouTube_Extension_Link)*d WZend_Gdata_YouTube_Extension_LastName)*c WZend_Gdata_YouTube_Extension_Hometown))b UZend_Gdata_YouTube_Extension_Hobbies)(a SZend_Gdata_YouTube_Extension_Gender)+` YZend_Gdata_YouTube_Extension_FirstName)*_ WZend_Gdata_YouTube_Extension_Duration)-^ ]Zend_Gdata_YouTube_Extension_Description)+] YZend_Gdata_YouTube_Extension_CountHint))\ UZend_Gdata_YouTube_Extension_Control))[ UZend_Gdata_YouTube_Extension_Company)'Z QZend_Gdata_YouTube_Extension_Books)%Y MZend_Gdata_YouTube_Extension_Age))X UZend_Gdata_YouTube_Extension_AboutMe)#W IZend_Gdata_YouTube_ContactFeed)$V KZend_Gdata_YouTube_ContactEntry)#U IZend_Gdata_YouTube_CommentFeed)$T KZend_Gdata_YouTube_CommentEntry)$S KZend_Gdata_YouTube_ActivityFeed)%R MZend_Gdata_YouTube_ActivityEntry)Q ;Zend_Gdata_Spreadsheets)*P WZend_Gdata_Spreadsheets_WorksheetFeed)+O YZend_Gdata_Spreadsheets_WorksheetEntry),N [Zend_Gdata_Spreadsheets_SpreadsheetFeed)-M ]Zend_Gdata_Spreadsheets_SpreadsheetEntry)&L OZend_Gdata_Spreadsheets_ListQuery)%K MZend_Gdata_Spreadsheets_ListFeed)&J OZend_Gdata_Spreadsheets_ListEntry)/I aZend_Gdata_Spreadsheets_Extension_RowCount)-H ]Zend_Gdata_Spreadsheets_Extension_Custom)/G aZend_Gdata_Spreadsheets_Extension_ColCount)+F YZend_Gdata_Spreadsheets_Extension_Cell)*E WZend_Gdata_Spreadsheets_DocumentQuery)&D OZend_Gdata_Spreadsheets_CellQuery)%C MZend_Gdata_Spreadsheets_CellFeed)&B OZend_Gdata_Spreadsheets_CellEntry)A -Zend_Gdata_Query)@ /Zend_Gdata_Photos) ? CZend_Gdata_Photos_UserQuery)> AZend_Gdata_Photos_UserFeed) = CZend_Gdata_Photos_UserEntry)< AZend_Gdata_Photos_TagEntry)!; EZend_Gdata_Photos_PhotoQuery)   l  e=Fa=lHz:


{
J
4

 					l	F	%o;uYD(jN.]3M*xaO'eL.fF%   AZend_Log_Formatter_Firebug) =Zend_Log_Filter_Suppress)  =Zend_Log_Filter_Priority) ;Zend_Log_Filter_Message)~ =Zend_Log_Filter_Abstract)} 1Zend_Log_Exception)| #Zend_Locale){ -Zend_Locale_Math)z =Zend_Locale_Math_PhpMath)y AZend_Locale_Math_Exception)x 1Zend_Locale_Format)w 7Zend_Locale_Exception)v -Zend_Locale_Data)!u EZend_Locale_Data_Translation)t #Zend_Loader)s =Zend_Loader_PluginLoader)'r QZend_Loader_PluginLoader_Exception)q 7Zend_Loader_Exception)p 9Zend_Loader_Autoloader)$o KZend_Loader_Autoloader_Resource)n Zend_Ldap)m )Zend_Ldap_Node)l 7Zend_Ldap_Node_Schema)#k IZend_Ldap_Node_Schema_OpenLdap)/j aZend_Ldap_Node_Schema_ObjectClass_OpenLdap)6i oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectory)h AZend_Ldap_Node_Schema_Item)1g eZend_Ldap_Node_Schema_AttributeType_OpenLdap)8f sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory)*e WZend_Ldap_Node_Schema_ActiveDirectory)d 9Zend_Ldap_Node_RootDse)$c KZend_Ldap_Node_RootDse_OpenLdap)&b OZend_Ldap_Node_RootDse_eDirectory)+a YZend_Ldap_Node_RootDse_ActiveDirectory)` ?Zend_Ldap_Node_Collection)$_ KZend_Ldap_Node_ChildrenIterator)^ ;Zend_Ldap_Node_Abstract)] 9Zend_Ldap_Ldif_Encoder)\ -Zend_Ldap_Filter)[ ;Zend_Ldap_Filter_String)Z 3Zend_Ldap_Filter_Or)Y 5Zend_Ldap_Filter_Not)X 7Zend_Ldap_Filter_Mask)W =Zend_Ldap_Filter_Logical)V AZend_Ldap_Filter_Exception)U 5Zend_Ldap_Filter_And)T ?Zend_Ldap_Filter_Abstract)S 3Zend_Ldap_Exception)R %Zend_Ldap_Dn)Q 3Zend_Ldap_Converter)P 5Zend_Ldap_Collection)*O WZend_Ldap_Collection_Iterator_Default)N 3Zend_Ldap_Attribute)M #Zend_Layout)L 7Zend_Layout_Exception))K UZend_Layout_Controller_Plugin_Layout)0J cZend_Layout_Controller_Action_Helper_Layout)I Zend_Json)H -Zend_Json_Server)G 5Zend_Json_Server_Smd)!F EZend_Json_Server_Smd_Service)E ?Zend_Json_Server_Response)#D IZend_Json_Server_Response_Http)C =Zend_Json_Server_Request)"B GZend_Json_Server_Request_Http)A AZend_Json_Server_Exception)@ 9Zend_Json_Server_Error)? 9Zend_Json_Server_Cache)> )Zend_Json_Expr)= 3Zend_Json_Exception)< /Zend_Json_Encoder); /Zend_Json_Decoder): 'Zend_InfoCard)-9 ]Zend_InfoCard_Xml_SecurityTokenReference)8 AZend_InfoCard_Xml_Security))7 UZend_InfoCard_Xml_Security_Transform)46 kZend_InfoCard_Xml_Security_Transform_XmlExcC14N)35 iZend_InfoCard_Xml_Security_Transform_Exception)<4 {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignature))3 UZend_InfoCard_Xml_Security_Exception)2 ?Zend_InfoCard_Xml_KeyInfo)&1 OZend_InfoCard_Xml_KeyInfo_XmlDSig)&0 OZend_InfoCard_Xml_KeyInfo_Default)'/ QZend_InfoCard_Xml_KeyInfo_Abstract) . CZend_InfoCard_Xml_Exception)#- IZend_InfoCard_Xml_EncryptedKey)$, KZend_InfoCard_Xml_EncryptedData)++ YZend_InfoCard_Xml_EncryptedData_XmlEnc)-* ]Zend_InfoCard_Xml_EncryptedData_Abstract)) ?Zend_InfoCard_Xml_Element) ( CZend_InfoCard_Xml_Assertion)%' MZend_InfoCard_Xml_Assertion_Saml)& ;Zend_InfoCard_Exception)%% MZend_InfoCard_Exception_Abstract)$ 5Zend_InfoCard_Claims)# 5Zend_InfoCard_Cipher)5" mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc)5! mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc)4  kZend_InfoCard_Cipher_Symmetric_Adapter_Abstract)) UZend_InfoCard_Cipher_Pki_Adapter_Rsa). _Zend_InfoCard_Cipher_Pki_Adapter_Abstract)# IZend_InfoCard_Cipher_Exception)$ KZend_InfoCard_Adapter_Exception)" GZend_InfoCard_Adapter_Default) 1Zend_Http_Response) ?Zend_Http_Response_Stream) 3Zend_Http_Exception) 3Zend_Http_CookieJar)   x cF)}^D([0uO.jE





b
?
				u	O	-sX>"cD%mN2`7qS7	oM,iE uT%             z ;Zend_Oauth_Token_Access)+y YZend_Oauth_Signature_SignatureAbstract)x =Zend_Oauth_Signature_Rsa)#w IZend_Oauth_Signature_Plaintext)v ?Zend_Oauth_Signature_Hmac)u +Zend_Oauth_Http)t ;Zend_Oauth_Http_Utility)&s OZend_Oauth_Http_UserAuthorization)!r EZend_Oauth_Http_RequestToken) q CZend_Oauth_Http_AccessToken)p 5Zend_Oauth_Exception)o 3Zend_Oauth_Consumer)n /Zend_Oauth_Config)m /Zend_Oauth_Client)l +Zend_Navigation)k 5Zend_Navigation_Page)j =Zend_Navigation_Page_Uri)i =Zend_Navigation_Page_Mvc)h ?Zend_Navigation_Exception)g ?Zend_Navigation_Container)f Zend_Mime)e )Zend_Mime_Part)d /Zend_Mime_Message)c 3Zend_Mime_Exception)b -Zend_Mime_Decode)a #Zend_Memory)` /Zend_Memory_Value)_ 3Zend_Memory_Manager)^ 7Zend_Memory_Exception)] 7Zend_Memory_Container)"\ GZend_Memory_Container_Movable)![ EZend_Memory_Container_Locked)!Z EZend_Memory_AccessController)Y 3Zend_Measure_Weight)X 3Zend_Measure_Volume)%W MZend_Measure_Viscosity_Kinematic)#V IZend_Measure_Viscosity_Dynamic)U 3Zend_Measure_Torque)T /Zend_Measure_Time)S =Zend_Measure_Temperature)R 1Zend_Measure_Speed)Q 7Zend_Measure_Pressure)P 1Zend_Measure_Power)O 3Zend_Measure_Number)N 9Zend_Measure_Lightness)M 3Zend_Measure_Length)L ?Zend_Measure_Illumination)K 9Zend_Measure_Frequency)J 1Zend_Measure_Force)I =Zend_Measure_Flow_Volume)H 9Zend_Measure_Flow_Mole)G 9Zend_Measure_Flow_Mass)F 9Zend_Measure_Exception)E 3Zend_Measure_Energy)D 5Zend_Measure_Density)C 5Zend_Measure_Current) B CZend_Measure_Cooking_Weight) A CZend_Measure_Cooking_Volume)@ =Zend_Measure_Capacitance)? 3Zend_Measure_Binary)> /Zend_Measure_Area)= 1Zend_Measure_Angle)< ?Zend_Measure_Acceleration); 7Zend_Measure_Abstract): #Zend_Markup)9 7Zend_Markup_TokenList)8 /Zend_Markup_Token)*7 WZend_Markup_Renderer_RendererAbstract)6 ?Zend_Markup_Renderer_Html)"5 GZend_Markup_Renderer_Html_Url)#4 IZend_Markup_Renderer_Html_List)"3 GZend_Markup_Renderer_Html_Img)+2 YZend_Markup_Renderer_Html_HtmlAbstract)#1 IZend_Markup_Renderer_Html_Code)#0 IZend_Markup_Renderer_Exception)/ AZend_Markup_Parser_Textile)!. EZend_Markup_Parser_Exception)- ?Zend_Markup_Parser_Bbcode), 7Zend_Markup_Exception)+ Zend_Mail)* =Zend_Mail_Transport_Smtp)!) EZend_Mail_Transport_Sendmail)"( GZend_Mail_Transport_Exception)!' EZend_Mail_Transport_Abstract)& /Zend_Mail_Storage)'% QZend_Mail_Storage_Writable_Maildir)$ 9Zend_Mail_Storage_Pop3)# 9Zend_Mail_Storage_Mbox)" ?Zend_Mail_Storage_Maildir)! 9Zend_Mail_Storage_Imap)  =Zend_Mail_Storage_Folder)" GZend_Mail_Storage_Folder_Mbox)% MZend_Mail_Storage_Folder_Maildir)  CZend_Mail_Storage_Exception) AZend_Mail_Storage_Abstract) ;Zend_Mail_Protocol_Smtp)' QZend_Mail_Protocol_Smtp_Auth_Plain)' QZend_Mail_Protocol_Smtp_Auth_Login)) UZend_Mail_Protocol_Smtp_Auth_Crammd5) ;Zend_Mail_Protocol_Pop3) ;Zend_Mail_Protocol_Imap)! EZend_Mail_Protocol_Exception)  CZend_Mail_Protocol_Abstract) )Zend_Mail_Part) 3Zend_Mail_Part_File) /Zend_Mail_Message) 9Zend_Mail_Message_File) 3Zend_Mail_Exception) Zend_Log)  CZend_Log_Writer_ZendMonitor) 9Zend_Log_Writer_Syslog) 9Zend_Log_Writer_Stream)
 5Zend_Log_Writer_Null)	 5Zend_Log_Writer_Mock) 5Zend_Log_Writer_Mail) ;Zend_Log_Writer_Firebug) 1Zend_Log_Writer_Db) =Zend_Log_Writer_Abstract) 9Zend_Log_Formatter_Xml) ?Zend_Log_Formatter_Simple)   o  ^9nD"wO+
V%uR/




l
N
+
					o	N	+	
|YC'qEU2jL.rO/n;a4{W5         i /Zend_Pdf_NameTree)h )Zend_Pdf_Image)g 'Zend_Pdf_Font)f ?Zend_Pdf_Filter_RunLength) e CZend_Pdf_Filter_Compression)$d KZend_Pdf_Filter_Compression_Lzw)&c OZend_Pdf_Filter_Compression_Flate)b =Zend_Pdf_Filter_AsciiHex)a ;Zend_Pdf_Filter_Ascii85)"` GZend_Pdf_FileParserDataSource))_ UZend_Pdf_FileParserDataSource_String)'^ QZend_Pdf_FileParserDataSource_File)] 3Zend_Pdf_FileParser)\ ?Zend_Pdf_FileParser_Image)"[ GZend_Pdf_FileParser_Image_Png)Z =Zend_Pdf_FileParser_Font)&Y OZend_Pdf_FileParser_Font_OpenType)/X aZend_Pdf_FileParser_Font_OpenType_TrueType)W 1Zend_Pdf_Exception)V ;Zend_Pdf_ElementFactory)"U GZend_Pdf_ElementFactory_Proxy)T -Zend_Pdf_Element)S ;Zend_Pdf_Element_String)#R IZend_Pdf_Element_String_Binary)Q ;Zend_Pdf_Element_Stream)P AZend_Pdf_Element_Reference)%O MZend_Pdf_Element_Reference_Table)'N QZend_Pdf_Element_Reference_Context)M ;Zend_Pdf_Element_Object)#L IZend_Pdf_Element_Object_Stream)K =Zend_Pdf_Element_Numeric)J 7Zend_Pdf_Element_Null)I 7Zend_Pdf_Element_Name) H CZend_Pdf_Element_Dictionary)G =Zend_Pdf_Element_Boolean)F 9Zend_Pdf_Element_Array)E 5Zend_Pdf_Destination)D ?Zend_Pdf_Destination_Zoom)!C EZend_Pdf_Destination_Unknown)B AZend_Pdf_Destination_Named)'A QZend_Pdf_Destination_FitVertically)&@ OZend_Pdf_Destination_FitRectangle))? UZend_Pdf_Destination_FitHorizontally)2> gZend_Pdf_Destination_FitBoundingBoxVertically)4= kZend_Pdf_Destination_FitBoundingBoxHorizontally)(< SZend_Pdf_Destination_FitBoundingBox); =Zend_Pdf_Destination_Fit)": GZend_Pdf_Destination_Explicit)9 )Zend_Pdf_Color)8 1Zend_Pdf_Color_Rgb)7 3Zend_Pdf_Color_Html)6 =Zend_Pdf_Color_GrayScale)5 3Zend_Pdf_Color_Cmyk)4 'Zend_Pdf_Cmap)3 AZend_Pdf_Cmap_TrimmedTable)!2 EZend_Pdf_Cmap_SegmentToDelta)1 AZend_Pdf_Cmap_ByteEncoding)&0 OZend_Pdf_Cmap_ByteEncoding_Static)/ 3Zend_Pdf_Annotation). =Zend_Pdf_Annotation_Text)- AZend_Pdf_Annotation_Markup), =Zend_Pdf_Annotation_Link)'+ QZend_Pdf_Annotation_FileAttachment)* +Zend_Pdf_Action)) 3Zend_Pdf_Action_URI)( ;Zend_Pdf_Action_Unknown)' 7Zend_Pdf_Action_Trans)& 9Zend_Pdf_Action_Thread)% AZend_Pdf_Action_SubmitForm)$ 7Zend_Pdf_Action_Sound) # CZend_Pdf_Action_SetOCGState)" ?Zend_Pdf_Action_ResetForm)! ?Zend_Pdf_Action_Rendition)  7Zend_Pdf_Action_Named) 7Zend_Pdf_Action_Movie) 9Zend_Pdf_Action_Launch) AZend_Pdf_Action_JavaScript) AZend_Pdf_Action_ImportData) 5Zend_Pdf_Action_Hide) 7Zend_Pdf_Action_GoToR) 7Zend_Pdf_Action_GoToE) AZend_Pdf_Action_GoTo3DView) 5Zend_Pdf_Action_GoTo) )Zend_Paginator)- ]Zend_Paginator_SerializableLimitIterator)* WZend_Paginator_ScrollingStyle_Sliding)* WZend_Paginator_ScrollingStyle_Jumping)* WZend_Paginator_ScrollingStyle_Elastic)& OZend_Paginator_ScrollingStyle_All) =Zend_Paginator_Exception)  CZend_Paginator_Adapter_Null)$ KZend_Paginator_Adapter_Iterator)) UZend_Paginator_Adapter_DbTableSelect)$ KZend_Paginator_Adapter_DbSelect)! EZend_Paginator_Adapter_Array)
 #Zend_OpenId)	 5Zend_OpenId_Provider) ?Zend_OpenId_Provider_User)& OZend_OpenId_Provider_User_Session)! EZend_OpenId_Provider_Storage)& OZend_OpenId_Provider_Storage_File) 7Zend_OpenId_Extension) AZend_OpenId_Extension_Sreg) 7Zend_OpenId_Exception) 5Zend_OpenId_Consumer)!  EZend_OpenId_Consumer_Storage)& OZend_OpenId_Consumer_Storage_File)~ !Zend_Oauth)} -Zend_Oauth_Token)| =Zend_Oauth_Token_Request)'{ QZend_Oauth_Token_AuthorizedRequest)   a  xA]0|>CZ 



j
K
&
				|	^	G	/	tI!xM,S6fS5
vT7{Q1m#a                     5J mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8)FI Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive)8H sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum)IG Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive)5F mZend_Search_Lucene_Analysis_Analyzer_Common_Text)FE Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive)D 7Zend_Search_Exception)C -Zend_Rest_Server)B AZend_Rest_Server_Exception)A +Zend_Rest_Route)@ 3Zend_Rest_Exception)? 5Zend_Rest_Controller)> -Zend_Rest_Client)= ;Zend_Rest_Client_Result)&< OZend_Rest_Client_Result_Exception); AZend_Rest_Client_Exception): 'Zend_Registry)9 =Zend_Reflection_Property)8 ?Zend_Reflection_Parameter)7 9Zend_Reflection_Method)6 =Zend_Reflection_Function)5 5Zend_Reflection_File)4 ?Zend_Reflection_Extension)3 ?Zend_Reflection_Exception)2 =Zend_Reflection_Docblock)!1 EZend_Reflection_Docblock_Tag)(0 SZend_Reflection_Docblock_Tag_Return)'/ QZend_Reflection_Docblock_Tag_Param). 7Zend_Reflection_Class)- !Zend_Queue), 9Zend_Queue_Stomp_Frame)+ ;Zend_Queue_Stomp_Client)'* QZend_Queue_Stomp_Client_Connection)) 1Zend_Queue_Message)#( IZend_Queue_Message_PlatformJob) ' CZend_Queue_Message_Iterator)& 5Zend_Queue_Exception)(% SZend_Queue_Adapter_PlatformJobQueue)$ ;Zend_Queue_Adapter_Null)!# EZend_Queue_Adapter_Memcacheq)" 7Zend_Queue_Adapter_Db) ! CZend_Queue_Adapter_Db_Queue)"  GZend_Queue_Adapter_Db_Message) =Zend_Queue_Adapter_Array)' QZend_Queue_Adapter_AdapterAbstract)  CZend_Queue_Adapter_Activemq) -Zend_ProgressBar) AZend_ProgressBar_Exception) =Zend_ProgressBar_Adapter)$ KZend_ProgressBar_Adapter_JsPush)$ KZend_ProgressBar_Adapter_JsPull)' QZend_ProgressBar_Adapter_Exception)% MZend_ProgressBar_Adapter_Console) Zend_Pdf)! EZend_Pdf_UpdateInfoContainer) -Zend_Pdf_Trailer) ;Zend_Pdf_Trailer_Keeper) AZend_Pdf_Trailer_Generator) +Zend_Pdf_Target) )Zend_Pdf_Style) 7Zend_Pdf_StringParser) /Zend_Pdf_Resource)# IZend_Pdf_Resource_ImageFactory) ;Zend_Pdf_Resource_Image)!
 EZend_Pdf_Resource_Image_Tiff) 	 CZend_Pdf_Resource_Image_Png)! EZend_Pdf_Resource_Image_Jpeg) 9Zend_Pdf_Resource_Font)! EZend_Pdf_Resource_Font_Type0)" GZend_Pdf_Resource_Font_Simple)+ YZend_Pdf_Resource_Font_Simple_Standard)8 sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats)6 oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman)7 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic);  yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic)5 mZend_Pdf_Resource_Font_Simple_Standard_TimesBold)2~ gZend_Pdf_Resource_Font_Simple_Standard_Symbol)<} {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaOblique)A| Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique)9{ uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold)5z mZend_Pdf_Resource_Font_Simple_Standard_Helvetica):y wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique)>x Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique)7w qZend_Pdf_Resource_Font_Simple_Standard_CourierBold)3v iZend_Pdf_Resource_Font_Simple_Standard_Courier))u UZend_Pdf_Resource_Font_Simple_Parsed)2t gZend_Pdf_Resource_Font_Simple_Parsed_TrueType)*s WZend_Pdf_Resource_Font_FontDescriptor)%r MZend_Pdf_Resource_Font_Extracted)#q IZend_Pdf_Resource_Font_CidFont),p [Zend_Pdf_Resource_Font_CidFont_TrueType)3o iZend_Pdf_RecursivelyIteratableObjectsContainer)n +Zend_Pdf_Parser)m 'Zend_Pdf_Page)l -Zend_Pdf_Outline)k ;Zend_Pdf_Outline_Loaded)j =Zend_Pdf_Outline_Created)   R  wCt9xO#gH#m> 


o
E
				f	E	sEr5i8tGU(f3tGn>                                 % MZend_Serializer_Adapter_Igbinary)! EZend_Serializer_Adapter_Amf3)! EZend_Serializer_Adapter_Amf0), [Zend_Serializer_Adapter_AdapterAbstract) 1Zend_Search_Lucene)0 cZend_Search_Lucene_TermStreamsPriorityQueue)$ KZend_Search_Lucene_Storage_File)+ YZend_Search_Lucene_Storage_File_Memory)/ aZend_Search_Lucene_Storage_File_Filesystem)) UZend_Search_Lucene_Storage_Directory)4 kZend_Search_Lucene_Storage_Directory_Filesystem)% MZend_Search_Lucene_Search_Weight)* WZend_Search_Lucene_Search_Weight_Term), [Zend_Search_Lucene_Search_Weight_Phrase)/ aZend_Search_Lucene_Search_Weight_MultiTerm)+ YZend_Search_Lucene_Search_Weight_Empty)- ]Zend_Search_Lucene_Search_Weight_Boolean)) UZend_Search_Lucene_Search_Similarity)1
 eZend_Search_Lucene_Search_Similarity_Default))	 UZend_Search_Lucene_Search_QueryToken)3 iZend_Search_Lucene_Search_QueryParserException)1 eZend_Search_Lucene_Search_QueryParserContext)* WZend_Search_Lucene_Search_QueryParser)) UZend_Search_Lucene_Search_QueryLexer)' QZend_Search_Lucene_Search_QueryHit)) UZend_Search_Lucene_Search_QueryEntry). _Zend_Search_Lucene_Search_QueryEntry_Term)2 gZend_Search_Lucene_Search_QueryEntry_Subquery)0  cZend_Search_Lucene_Search_QueryEntry_Phrase)$ KZend_Search_Lucene_Search_Query)-~ ]Zend_Search_Lucene_Search_Query_Wildcard))} UZend_Search_Lucene_Search_Query_Term)*| WZend_Search_Lucene_Search_Query_Range)2{ gZend_Search_Lucene_Search_Query_Preprocessing)7z qZend_Search_Lucene_Search_Query_Preprocessing_Term)9y uZend_Search_Lucene_Search_Query_Preprocessing_Phrase)8x sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy)+w YZend_Search_Lucene_Search_Query_Phrase).v _Zend_Search_Lucene_Search_Query_MultiTerm)2u gZend_Search_Lucene_Search_Query_Insignificant)*t WZend_Search_Lucene_Search_Query_Fuzzy)*s WZend_Search_Lucene_Search_Query_Empty),r [Zend_Search_Lucene_Search_Query_Boolean)2q gZend_Search_Lucene_Search_Highlighter_Default):p wZend_Search_Lucene_Search_BooleanExpressionRecognizer)o =Zend_Search_Lucene_Proxy)%n MZend_Search_Lucene_PriorityQueue)/m aZend_Search_Lucene_Interface_MultiSearcher)#l IZend_Search_Lucene_LockManager)$k KZend_Search_Lucene_Index_Writer)0j cZend_Search_Lucene_Index_TermsPriorityQueue)&i OZend_Search_Lucene_Index_TermInfo)"h GZend_Search_Lucene_Index_Term)+g YZend_Search_Lucene_Index_SegmentWriter)8f sZend_Search_Lucene_Index_SegmentWriter_StreamWriter):e wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter)+d YZend_Search_Lucene_Index_SegmentMerger))c UZend_Search_Lucene_Index_SegmentInfo)'b QZend_Search_Lucene_Index_FieldInfo)(a SZend_Search_Lucene_Index_DocsFilter).` _Zend_Search_Lucene_Index_DictionaryLoader)!_ EZend_Search_Lucene_FSMAction)^ 9Zend_Search_Lucene_FSM)] =Zend_Search_Lucene_Field)!\ EZend_Search_Lucene_Exception) [ CZend_Search_Lucene_Document)%Z MZend_Search_Lucene_Document_Xlsx)%Y MZend_Search_Lucene_Document_Pptx)(X SZend_Search_Lucene_Document_OpenXml)%W MZend_Search_Lucene_Document_Html)*V WZend_Search_Lucene_Document_Exception)%U MZend_Search_Lucene_Document_Docx),T [Zend_Search_Lucene_Analysis_TokenFilter)6S oZend_Search_Lucene_Analysis_TokenFilter_StopWords)7R qZend_Search_Lucene_Analysis_TokenFilter_ShortWords):Q wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8)6P oZend_Search_Lucene_Analysis_TokenFilter_LowerCase)&O OZend_Search_Lucene_Analysis_Token))N UZend_Search_Lucene_Analysis_Analyzer)0M cZend_Search_Lucene_Analysis_Analyzer_Common)8L sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num)IK Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive)   Y  Y4b<sK%eG*W,



\
+
				[	;	|Z5T*
}U+W!cV|Bd             Lu Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalance)Jt Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool)-s ]Zend_Service_DeveloperGarden_LocalSearch)>r Zend_Service_DeveloperGarden_LocalSearch_SearchParameters)7q qZend_Service_DeveloperGarden_LocalSearch_Exception),p [Zend_Service_DeveloperGarden_IpLocation)6o oZend_Service_DeveloperGarden_IpLocation_IpAddress)+n YZend_Service_DeveloperGarden_Exception),m [Zend_Service_DeveloperGarden_Credential)0l cZend_Service_DeveloperGarden_ConferenceCall)Ck Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatus)Cj Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail)<i {Zend_Service_DeveloperGarden_ConferenceCall_Participant):h wZend_Service_DeveloperGarden_ConferenceCall_Exception)Dg 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceSchedule)Bf Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail)Ce Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount)-d ]Zend_Service_DeveloperGarden_Client_Soap)2c gZend_Service_DeveloperGarden_Client_Exception)7b qZend_Service_DeveloperGarden_Client_ClientAbstract)1a eZend_Service_DeveloperGarden_BaseUserService)A` Zend_Service_DeveloperGarden_BaseUserService_AccountBalance)_ 9Zend_Service_Delicious)&^ OZend_Service_Delicious_SimplePost)$] KZend_Service_Delicious_PostList) \ CZend_Service_Delicious_Post)%[ MZend_Service_Delicious_Exception) Z CZend_Service_Audioscrobbler)Y 3Zend_Service_Amazon)X ;Zend_Service_Amazon_Sqs)&W OZend_Service_Amazon_Sqs_Exception)'V QZend_Service_Amazon_SimilarProduct)U 9Zend_Service_Amazon_S3)"T GZend_Service_Amazon_S3_Stream)%S MZend_Service_Amazon_S3_Exception)"R GZend_Service_Amazon_ResultSet)Q ?Zend_Service_Amazon_Query)!P EZend_Service_Amazon_OfferSet)O ?Zend_Service_Amazon_Offer)&N OZend_Service_Amazon_ListmaniaList)M =Zend_Service_Amazon_Item)L ?Zend_Service_Amazon_Image)"K GZend_Service_Amazon_Exception)(J SZend_Service_Amazon_EditorialReview)I ;Zend_Service_Amazon_Ec2)+H YZend_Service_Amazon_Ec2_Securitygroups)%G MZend_Service_Amazon_Ec2_Response)#F IZend_Service_Amazon_Ec2_Region)$E KZend_Service_Amazon_Ec2_Keypair)%D MZend_Service_Amazon_Ec2_Instance)-C ]Zend_Service_Amazon_Ec2_Instance_Windows).B _Zend_Service_Amazon_Ec2_Instance_Reserved)"A GZend_Service_Amazon_Ec2_Image)&@ OZend_Service_Amazon_Ec2_Exception)&? OZend_Service_Amazon_Ec2_Elasticip) > CZend_Service_Amazon_Ec2_Ebs)'= QZend_Service_Amazon_Ec2_CloudWatch).< _Zend_Service_Amazon_Ec2_Availabilityzones)%; MZend_Service_Amazon_Ec2_Abstract)': QZend_Service_Amazon_CustomerReview)$9 KZend_Service_Amazon_Accessories)!8 EZend_Service_Amazon_Abstract)7 5Zend_Service_Akismet)6 7Zend_Service_Abstract)5 9Zend_Server_Reflection)'4 QZend_Server_Reflection_ReturnValue)%3 MZend_Server_Reflection_Prototype)%2 MZend_Server_Reflection_Parameter) 1 CZend_Server_Reflection_Node)"0 GZend_Server_Reflection_Method)$/ KZend_Server_Reflection_Function)-. ]Zend_Server_Reflection_Function_Abstract)%- MZend_Server_Reflection_Exception)!, EZend_Server_Reflection_Class)!+ EZend_Server_Method_Prototype)!* EZend_Server_Method_Parameter)") GZend_Server_Method_Definition) ( CZend_Server_Method_Callback)' 7Zend_Server_Exception)& 9Zend_Server_Definition)% /Zend_Server_Cache)$ 5Zend_Server_Abstract)# +Zend_Serializer)" ?Zend_Serializer_Exception)!! EZend_Serializer_Adapter_Wddx))  UZend_Serializer_Adapter_PythonPickle)) UZend_Serializer_Adapter_PhpSerialize)$ KZend_Serializer_Adapter_PhpCode)! EZend_Serializer_Adapter_Json)   0 o IB6wr

X
		E[F	s,P}/Hv!  o       W% /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType)S$ 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponse)Q# #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstract)S" 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponse)J! Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType)g  OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseType)c GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponse)W /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse)U +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponse)S 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse)3 iZend_Service_DeveloperGarden_Response_BaseType)J Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstract)C Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCall)G Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced)= }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCall)A Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatus)A Zend_Service_DeveloperGarden_Request_SmsValidation_Validate)N Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeyword)C Zend_Service_DeveloperGarden_Request_SmsValidation_Invalidate)L Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbers)B Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract)9 uZend_Service_DeveloperGarden_Request_SendSms_SendSMS)> Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS)9 uZend_Service_DeveloperGarden_Request_RequestAbstract)I Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequest)E Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest)3 iZend_Service_DeveloperGarden_Request_Exception)R
 %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequest)Y	 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequest)d IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequest)Q #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequest)R %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequest)Y 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequest)d IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequest)Q #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequest)O Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequest)U +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequest)U  +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequest)V -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequest)a~ CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequest)Z} 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequest)T| )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequest)R{ %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequest)Yz 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequest)Qy #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequest)Qx #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequest)aw CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequest)Nv Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformation)   . s >0r<%

k
		^	>%n6Wx)JP	i  s               IS Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumber)WR /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponse)JQ Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponse)UP +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponse)CO Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponse)CN Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstract)HM Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponse)UL +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponse)QK #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponse)IJ Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception);I yZend_Service_DeveloperGarden_Response_ResponseAbstract)OH Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseType)KG Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponse)AF Zend_Service_DeveloperGarden_Response_IpLocation_RegionType)KE Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseType)GD Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponse)LC Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationType)IB Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType)>A Zend_Service_DeveloperGarden_Response_IpLocation_CityType)4@ kZend_Service_DeveloperGarden_Response_Exception)T? )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse)[> 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponse)f= MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponse)S< 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponse)T; )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse)[: 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponse)f9 MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponse)S8 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponse)U7 +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType)Q6 #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse)[5 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseType)W4 /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse)[3 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseType)W2 /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse)\1 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseType)X0 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponse)g/ OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseType)c. GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse)`- AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType)\, 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponse)Z+ 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseType)V* -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponse)X) 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseType)T( )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse)_' ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType)[& 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponse)   U  at$]0jD( e8



p
H
)
					~	_	=	|R(^(Y)j<d7qJ&	Jt?                            -( ]Zend_Service_WindowsAzure_SessionHandler)>' Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract)1& eZend_Service_WindowsAzure_RetryPolicy_RetryN)2% gZend_Service_WindowsAzure_RetryPolicy_NoRetry)4$ kZend_Service_WindowsAzure_RetryPolicy_Exception)(# SZend_Service_WindowsAzure_Exception)8" sZend_Service_WindowsAzure_Credentials_SharedKeyLite)4! kZend_Service_WindowsAzure_Credentials_SharedKey)A  Zend_Service_WindowsAzure_Credentials_SharedAccessSignature)> Zend_Service_WindowsAzure_Credentials_CredentialsAbstract) 5Zend_Service_Twitter)  CZend_Service_Twitter_Search)# IZend_Service_Twitter_Exception) ;Zend_Service_Technorati)# IZend_Service_Technorati_Weblog)" GZend_Service_Technorati_Utils)* WZend_Service_Technorati_TagsResultSet)' QZend_Service_Technorati_TagsResult)) UZend_Service_Technorati_TagResultSet)& OZend_Service_Technorati_TagResult), [Zend_Service_Technorati_SearchResultSet)) UZend_Service_Technorati_SearchResult)& OZend_Service_Technorati_ResultSet)# IZend_Service_Technorati_Result)* WZend_Service_Technorati_KeyInfoResult)* WZend_Service_Technorati_GetInfoResult)& OZend_Service_Technorati_Exception)1 eZend_Service_Technorati_DailyCountsResultSet). _Zend_Service_Technorati_DailyCountsResult), [Zend_Service_Technorati_CosmosResultSet))
 UZend_Service_Technorati_CosmosResult)+	 YZend_Service_Technorati_BlogInfoResult)# IZend_Service_Technorati_Author) ;Zend_Service_StrikeIron)( SZend_Service_StrikeIron_ZipCodeInfo)2 gZend_Service_StrikeIron_USAddressVerification)- ]Zend_Service_StrikeIron_SalesUseTaxBasic)& OZend_Service_StrikeIron_Exception)& OZend_Service_StrikeIron_Decorator)! EZend_Service_StrikeIron_Base)  ;Zend_Service_SlideShare)& OZend_Service_SlideShare_SlideShow)&~ OZend_Service_SlideShare_Exception)} 1Zend_Service_Simpy)$| KZend_Service_Simpy_WatchlistSet)*{ WZend_Service_Simpy_WatchlistFilterSet)'z QZend_Service_Simpy_WatchlistFilter)!y EZend_Service_Simpy_Watchlist)x ?Zend_Service_Simpy_TagSet)w 9Zend_Service_Simpy_Tag)v AZend_Service_Simpy_NoteSet)u ;Zend_Service_Simpy_Note)t AZend_Service_Simpy_LinkSet)!s EZend_Service_Simpy_LinkQuery)r ;Zend_Service_Simpy_Link)q 9Zend_Service_ReCaptcha)$p KZend_Service_ReCaptcha_Response)$o KZend_Service_ReCaptcha_MailHide).n _Zend_Service_ReCaptcha_MailHide_Exception)%m MZend_Service_ReCaptcha_Exception)l 7Zend_Service_Nirvanix)#k IZend_Service_Nirvanix_Response))j UZend_Service_Nirvanix_Namespace_Imfs))i UZend_Service_Nirvanix_Namespace_Base)$h KZend_Service_Nirvanix_Exception)g 7Zend_Service_LiveDocx)$f KZend_Service_LiveDocx_MailMerge)$e KZend_Service_LiveDocx_Exception)d 3Zend_Service_Flickr)"c GZend_Service_Flickr_ResultSet)b AZend_Service_Flickr_Result)a ?Zend_Service_Flickr_Image)` 9Zend_Service_Exception)+_ YZend_Service_DeveloperGarden_VoiceCall)/^ aZend_Service_DeveloperGarden_SmsValidation))] UZend_Service_DeveloperGarden_SendSms)5\ mZend_Service_DeveloperGarden_SecurityTokenServer);[ yZend_Service_DeveloperGarden_SecurityTokenServer_Cache)KZ Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstract)LY Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponse)PX !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponse)GW Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponse)JV Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponse)KU Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2Response)LT Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponse)   _  [,Pv@[1_6



q
G
"						Z	/	}]=\4pY2mV;%tFd7zLwT;                    $ KZend_Text_Table_Decorator_Ascii) 9Zend_Text_Table_Column) 3Zend_Text_MultiByte) -Zend_Text_Figlet) AZend_Text_Figlet_Exception) 3Zend_Text_Exception)& OZend_Test_PHPUnit_Db_SimpleTester),  [Zend_Test_PHPUnit_Db_Operation_Truncate)* WZend_Test_PHPUnit_Db_Operation_Insert)-~ ]Zend_Test_PHPUnit_Db_Operation_DeleteAll)*} WZend_Test_PHPUnit_Db_Metadata_Generic)#| IZend_Test_PHPUnit_Db_Exception),{ [Zend_Test_PHPUnit_Db_DataSet_QueryTable).z _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet)0y cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet))x UZend_Test_PHPUnit_Db_DataSet_DbTable)*w WZend_Test_PHPUnit_Db_DataSet_DbRowset)$v KZend_Test_PHPUnit_Db_Connection)'u QZend_Test_PHPUnit_DatabaseTestCase))t UZend_Test_PHPUnit_ControllerTestCase)0s cZend_Test_PHPUnit_Constraint_ResponseHeader)*r WZend_Test_PHPUnit_Constraint_Redirect)+q YZend_Test_PHPUnit_Constraint_Exception)*p WZend_Test_PHPUnit_Constraint_DomQuery)o 7Zend_Test_DbStatement)n 3Zend_Test_DbAdapter)m /Zend_Tag_ItemList)l 'Zend_Tag_Item)k 1Zend_Tag_Exception)j )Zend_Tag_Cloud)i =Zend_Tag_Cloud_Exception)!h EZend_Tag_Cloud_Decorator_Tag)%g MZend_Tag_Cloud_Decorator_HtmlTag)'f QZend_Tag_Cloud_Decorator_HtmlCloud)'e QZend_Tag_Cloud_Decorator_Exception)#d IZend_Tag_Cloud_Decorator_Cloud)c )Zend_Soap_Wsdl)/b aZend_Soap_Wsdl_Strategy_DefaultComplexType)&a OZend_Soap_Wsdl_Strategy_Composite)0` cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence)/_ aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex)$^ KZend_Soap_Wsdl_Strategy_AnyType)%] MZend_Soap_Wsdl_Strategy_Abstract)\ =Zend_Soap_Wsdl_Exception)[ -Zend_Soap_Server)Z AZend_Soap_Server_Exception)Y -Zend_Soap_Client)X 9Zend_Soap_Client_Local)W AZend_Soap_Client_Exception)V ;Zend_Soap_Client_DotNet)U ;Zend_Soap_Client_Common)T 9Zend_Soap_AutoDiscover)%S MZend_Soap_AutoDiscover_Exception)R %Zend_Session))Q UZend_Session_Validator_HttpUserAgent)$P KZend_Session_Validator_Abstract)'O QZend_Session_SaveHandler_Exception)%N MZend_Session_SaveHandler_DbTable)M 9Zend_Session_Namespace)L 9Zend_Session_Exception)K 7Zend_Session_Abstract)J 1Zend_Service_Yahoo)$I KZend_Service_Yahoo_WebResultSet)!H EZend_Service_Yahoo_WebResult)&G OZend_Service_Yahoo_VideoResultSet)#F IZend_Service_Yahoo_VideoResult)!E EZend_Service_Yahoo_ResultSet)D ?Zend_Service_Yahoo_Result))C UZend_Service_Yahoo_PageDataResultSet)&B OZend_Service_Yahoo_PageDataResult)%A MZend_Service_Yahoo_NewsResultSet)"@ GZend_Service_Yahoo_NewsResult)&? OZend_Service_Yahoo_LocalResultSet)#> IZend_Service_Yahoo_LocalResult)+= YZend_Service_Yahoo_InlinkDataResultSet)(< SZend_Service_Yahoo_InlinkDataResult)&; OZend_Service_Yahoo_ImageResultSet)#: IZend_Service_Yahoo_ImageResult)9 =Zend_Service_Yahoo_Image)&8 OZend_Service_WindowsAzure_Storage)47 kZend_Service_WindowsAzure_Storage_TableInstance)76 qZend_Service_WindowsAzure_Storage_TableEntityQuery)25 gZend_Service_WindowsAzure_Storage_TableEntity),4 [Zend_Service_WindowsAzure_Storage_Table)73 qZend_Service_WindowsAzure_Storage_SignedIdentifier)32 iZend_Service_WindowsAzure_Storage_QueueMessage)41 kZend_Service_WindowsAzure_Storage_QueueInstance),0 [Zend_Service_WindowsAzure_Storage_Queue)9/ uZend_Service_WindowsAzure_Storage_DynamicTableEntity)3. iZend_Service_WindowsAzure_Storage_BlobInstance)4- kZend_Service_WindowsAzure_Storage_BlobContainer)+, YZend_Service_WindowsAzure_Storage_Blob)2+ gZend_Service_WindowsAzure_Storage_Blob_Stream);* yZend_Service_WindowsAzure_Storage_BatchStorageAbstract),) [Zend_Service_WindowsAzure_Storage_Batch)   O  `F'sGy/X- K



K
 				Q	e;P+j5W&[.t=c0b(                           2V gZend_Tool_Project_Context_Zf_DbTableDirectory)/U aZend_Tool_Project_Context_Zf_DataDirectory)6T oZend_Tool_Project_Context_Zf_ControllersDirectory)0S cZend_Tool_Project_Context_Zf_ControllerFile)2R gZend_Tool_Project_Context_Zf_ConfigsDirectory),Q [Zend_Tool_Project_Context_Zf_ConfigFile)0P cZend_Tool_Project_Context_Zf_CacheDirectory)/O aZend_Tool_Project_Context_Zf_BootstrapFile)6N oZend_Tool_Project_Context_Zf_ApplicationDirectory)7M qZend_Tool_Project_Context_Zf_ApplicationConfigFile)/L aZend_Tool_Project_Context_Zf_ApisDirectory).K _Zend_Tool_Project_Context_Zf_ActionMethod)3J iZend_Tool_Project_Context_Zf_AbstractClassFile)@I Zend_Tool_Project_Context_System_ProjectProvidersDirectory)8H sZend_Tool_Project_Context_System_ProjectProfileFile)6G oZend_Tool_Project_Context_System_ProjectDirectory))F UZend_Tool_Project_Context_Repository).E _Zend_Tool_Project_Context_Filesystem_File)3D iZend_Tool_Project_Context_Filesystem_Directory)2C gZend_Tool_Project_Context_Filesystem_Abstract)(B SZend_Tool_Project_Context_Exception)-A ]Zend_Tool_Project_Context_Content_Engine)3@ iZend_Tool_Project_Context_Content_Engine_Phtml);? yZend_Tool_Project_Context_Content_Engine_CodeGenerator)0> cZend_Tool_Framework_System_Provider_Version)0= cZend_Tool_Framework_System_Provider_Phpinfo)1< eZend_Tool_Framework_System_Provider_Manifest)/; aZend_Tool_Framework_System_Provider_Config)(: SZend_Tool_Framework_System_Manifest)-9 ]Zend_Tool_Framework_System_Action_Delete)-8 ]Zend_Tool_Framework_System_Action_Create)!7 EZend_Tool_Framework_Registry)+6 YZend_Tool_Framework_Registry_Exception)+5 YZend_Tool_Framework_Provider_Signature),4 [Zend_Tool_Framework_Provider_Repository)+3 YZend_Tool_Framework_Provider_Exception)*2 WZend_Tool_Framework_Provider_Abstract)&1 OZend_Tool_Framework_Metadata_Tool))0 UZend_Tool_Framework_Metadata_Dynamic)'/ QZend_Tool_Framework_Metadata_Basic),. [Zend_Tool_Framework_Manifest_Repository)+- YZend_Tool_Framework_Manifest_Exception)1, eZend_Tool_Framework_Loader_IncludePathLoader)J+ Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator)+* YZend_Tool_Framework_Loader_BasicLoader)() SZend_Tool_Framework_Loader_Abstract)"( GZend_Tool_Framework_Exception)'' QZend_Tool_Framework_Client_Storage)1& eZend_Tool_Framework_Client_Storage_Directory)(% SZend_Tool_Framework_Client_Response)D$ 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator)'# QZend_Tool_Framework_Client_Request)(" SZend_Tool_Framework_Client_Manifest)9! uZend_Tool_Framework_Client_Interactive_InputResponse)8  sZend_Tool_Framework_Client_Interactive_InputRequest)8 sZend_Tool_Framework_Client_Interactive_InputHandler)) UZend_Tool_Framework_Client_Exception)' QZend_Tool_Framework_Client_Console)D 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Indention)D 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizer)C Zend_Tool_Framework_Client_Console_ResponseDecorator_Blockize)F Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter)0 cZend_Tool_Framework_Client_Console_Manifest)2 gZend_Tool_Framework_Client_Console_HelpSystem)6 oZend_Tool_Framework_Client_Console_ArgumentParser)& OZend_Tool_Framework_Client_Config)( SZend_Tool_Framework_Client_Abstract)* WZend_Tool_Framework_Action_Repository)) UZend_Tool_Framework_Action_Exception)$ KZend_Tool_Framework_Action_Base) 'Zend_TimeSync) 1Zend_TimeSync_Sntp) 9Zend_TimeSync_Protocol) /Zend_TimeSync_Ntp) ;Zend_TimeSync_Exception) +Zend_Text_Table)
 3Zend_Text_Table_Row)	 ?Zend_Text_Table_Exception)& OZend_Text_Table_Decorator_Unicode)   N  m;]'[%|GX 


Q
			f	"}8V"a(uJ(uHrInF!oL'                                $ =Zend_Translate_Exception)# 9Zend_Translate_Adapter)!" EZend_Translate_Adapter_XmlTm)!! EZend_Translate_Adapter_Xliff)  AZend_Translate_Adapter_Tmx) AZend_Translate_Adapter_Tbx) ?Zend_Translate_Adapter_Qt) AZend_Translate_Adapter_Ini)# IZend_Translate_Adapter_Gettext) AZend_Translate_Adapter_Csv)! EZend_Translate_Adapter_Array)$ KZend_Tool_Project_Provider_View)$ KZend_Tool_Project_Provider_Test)/ aZend_Tool_Project_Provider_ProjectProvider)' QZend_Tool_Project_Provider_Project)' QZend_Tool_Project_Provider_Profile)& OZend_Tool_Project_Provider_Module)% MZend_Tool_Project_Provider_Model)( SZend_Tool_Project_Provider_Manifest)& OZend_Tool_Project_Provider_Layout)$ KZend_Tool_Project_Provider_Form)) UZend_Tool_Project_Provider_Exception)' QZend_Tool_Project_Provider_DbTable)) UZend_Tool_Project_Provider_DbAdapter)* WZend_Tool_Project_Provider_Controller)+ YZend_Tool_Project_Provider_Application)&
 OZend_Tool_Project_Provider_Action)(	 SZend_Tool_Project_Provider_Abstract) ?Zend_Tool_Project_Profile)' QZend_Tool_Project_Profile_Resource)9 uZend_Tool_Project_Profile_Resource_SearchConstraints)1 eZend_Tool_Project_Profile_Resource_Container)= }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter)5 mZend_Tool_Project_Profile_Iterator_ContextFilter)- ]Zend_Tool_Project_Profile_FileParser_Xml)( SZend_Tool_Project_Profile_Exception)   CZend_Tool_Project_Exception)< {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory)0~ cZend_Tool_Project_Context_Zf_ViewsDirectory)6} oZend_Tool_Project_Context_Zf_ViewScriptsDirectory)0| cZend_Tool_Project_Context_Zf_ViewScriptFile)6{ oZend_Tool_Project_Context_Zf_ViewHelpersDirectory)6z oZend_Tool_Project_Context_Zf_ViewFiltersDirectory)Ay Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory)2x gZend_Tool_Project_Context_Zf_UploadsDirectory)0w cZend_Tool_Project_Context_Zf_TestsDirectory)7v qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile)@u Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory)1t eZend_Tool_Project_Context_Zf_TestLibraryFile)6s oZend_Tool_Project_Context_Zf_TestLibraryDirectory):r wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFile):q wZend_Tool_Project_Context_Zf_TestApplicationDirectory)@p Zend_Tool_Project_Context_Zf_TestApplicationControllerFile)Eo Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory)>n Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile)4m kZend_Tool_Project_Context_Zf_TemporaryDirectory)3l iZend_Tool_Project_Context_Zf_SessionsDirectory)8k sZend_Tool_Project_Context_Zf_SearchIndexesDirectory)<j {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory)8i sZend_Tool_Project_Context_Zf_PublicScriptsDirectory)1h eZend_Tool_Project_Context_Zf_PublicIndexFile)7g qZend_Tool_Project_Context_Zf_PublicImagesDirectory)1f eZend_Tool_Project_Context_Zf_PublicDirectory)5e mZend_Tool_Project_Context_Zf_ProjectProviderFile)2d gZend_Tool_Project_Context_Zf_ModulesDirectory)1c eZend_Tool_Project_Context_Zf_ModuleDirectory)1b eZend_Tool_Project_Context_Zf_ModelsDirectory)+a YZend_Tool_Project_Context_Zf_ModelFile)/` aZend_Tool_Project_Context_Zf_LogsDirectory)2_ gZend_Tool_Project_Context_Zf_LocalesDirectory)2^ gZend_Tool_Project_Context_Zf_LibraryDirectory)2] gZend_Tool_Project_Context_Zf_LayoutsDirectory)8\ sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory)2[ gZend_Tool_Project_Context_Zf_LayoutScriptFile).Z _Zend_Tool_Project_Context_Zf_HtaccessFile)0Y cZend_Tool_Project_Context_Zf_FormsDirectory)*X WZend_Tool_Project_Context_Zf_FormFile)-W ]Zend_Tool_Project_Context_Zf_DbTableFile)   q jN2b=b?W4vS0




u
Z
8
					i	H	e@mM+tT6oF nR0hF(sO,	sP,                                CZend_View_Helper_FormSubmit)  CZend_View_Helper_FormSelect) AZend_View_Helper_FormReset) AZend_View_Helper_FormRadio)" GZend_View_Helper_FormPassword) ?Zend_View_Helper_FormNote)' QZend_View_Helper_FormMultiCheckbox) AZend_View_Helper_FormLabel) AZend_View_Helper_FormImage)  CZend_View_Helper_FormHidden) ?Zend_View_Helper_FormFile) 
 CZend_View_Helper_FormErrors)!	 EZend_View_Helper_FormElement)" GZend_View_Helper_FormCheckbox)  CZend_View_Helper_FormButton) 7Zend_View_Helper_Form) ?Zend_View_Helper_Fieldset) =Zend_View_Helper_Doctype)! EZend_View_Helper_DeclareVars) 9Zend_View_Helper_Cycle) ?Zend_View_Helper_Currency)  =Zend_View_Helper_BaseUrl) ;Zend_View_Helper_Action)~ ?Zend_View_Helper_Abstract)} 3Zend_View_Exception)| 1Zend_View_Abstract){ %Zend_Version)z 'Zend_Validate)y AZend_Validate_StringLength)#x IZend_Validate_Sitemap_Priority)w ?Zend_Validate_Sitemap_Loc)"v GZend_Validate_Sitemap_Lastmod)%u MZend_Validate_Sitemap_Changefreq)t 3Zend_Validate_Regex)s 9Zend_Validate_PostCode)r 9Zend_Validate_NotEmpty)q 9Zend_Validate_LessThan)p 1Zend_Validate_Isbn)o -Zend_Validate_Ip)n /Zend_Validate_Int)m 7Zend_Validate_InArray)l ;Zend_Validate_Identical)k 1Zend_Validate_Iban)j 9Zend_Validate_Hostname)i /Zend_Validate_Hex)h ?Zend_Validate_GreaterThan)g 3Zend_Validate_Float)!f EZend_Validate_File_WordCount)e ?Zend_Validate_File_Upload)d ;Zend_Validate_File_Size)c ;Zend_Validate_File_Sha1)!b EZend_Validate_File_NotExists) a CZend_Validate_File_MimeType)` 9Zend_Validate_File_Md5)_ AZend_Validate_File_IsImage)$^ KZend_Validate_File_IsCompressed)!] EZend_Validate_File_ImageSize)\ ;Zend_Validate_File_Hash)![ EZend_Validate_File_FilesSize)!Z EZend_Validate_File_Extension)Y ?Zend_Validate_File_Exists)'X QZend_Validate_File_ExcludeMimeType)(W SZend_Validate_File_ExcludeExtension)V =Zend_Validate_File_Crc32)U =Zend_Validate_File_Count)T ;Zend_Validate_Exception)S AZend_Validate_EmailAddress)R 5Zend_Validate_Digits)"Q GZend_Validate_Db_RecordExists)$P KZend_Validate_Db_NoRecordExists)O ?Zend_Validate_Db_Abstract)N 1Zend_Validate_Date)M =Zend_Validate_CreditCard)L 3Zend_Validate_Ccnum)K 9Zend_Validate_Callback)J 7Zend_Validate_Between)I 7Zend_Validate_Barcode)H AZend_Validate_Barcode_Upce)G AZend_Validate_Barcode_Upca)F AZend_Validate_Barcode_Sscc)$E KZend_Validate_Barcode_Royalmail)"D GZend_Validate_Barcode_Postnet)!C EZend_Validate_Barcode_Planet)#B IZend_Validate_Barcode_Leitcode) A CZend_Validate_Barcode_Itf14)@ AZend_Validate_Barcode_Issn)*? WZend_Validate_Barcode_IntelligentMail)$> KZend_Validate_Barcode_Identcode)!= EZend_Validate_Barcode_Gtin14)!< EZend_Validate_Barcode_Gtin13)!; EZend_Validate_Barcode_Gtin12): AZend_Validate_Barcode_Ean8)9 AZend_Validate_Barcode_Ean5)8 AZend_Validate_Barcode_Ean2) 7 CZend_Validate_Barcode_Ean18) 6 CZend_Validate_Barcode_Ean14) 5 CZend_Validate_Barcode_Ean13) 4 CZend_Validate_Barcode_Ean12)$3 KZend_Validate_Barcode_Code93ext)!2 EZend_Validate_Barcode_Code93)$1 KZend_Validate_Barcode_Code39ext)!0 EZend_Validate_Barcode_Code39),/ [Zend_Validate_Barcode_Code25interleaved)!. EZend_Validate_Barcode_Code25)*- WZend_Validate_Barcode_AdapterAbstract), 3Zend_Validate_Alpha)+ 3Zend_Validate_Alnum)* 9Zend_Validate_Abstract)) Zend_Uri)( 'Zend_Uri_Http)' 1Zend_Uri_Exception)& )Zend_Translate)% 7Zend_Translate_Plural)   j  tP-
|Z3lBsR-S



x
U
8

				d	?	n?kC" _>yT1jI/oL(	Z3oH&            7Zend_Amf_Request_Http*~ ?Zend_Amf_Parse_TypeLoader*} ?Zend_Amf_Parse_Serializer*#| IZend_Amf_Parse_Resource_Stream*({ SZend_Amf_Parse_Resource_MysqlResult*)z UZend_Amf_Parse_Resource_MysqliResult* y CZend_Amf_Parse_OutputStream*x AZend_Amf_Parse_InputStream* w CZend_Amf_Parse_Deserializer*#v IZend_Amf_Parse_Amf3_Serializer*%u MZend_Amf_Parse_Amf3_Deserializer*#t IZend_Amf_Parse_Amf0_Serializer*%s MZend_Amf_Parse_Amf0_Deserializer*r 1Zend_Amf_Exception*q 1Zend_Amf_Constants*p 9Zend_Amf_Auth_Abstract* o CZend_Amf_Adobe_Introspector*n AZend_Amf_Adobe_DbInspector*m 3Zend_Amf_Adobe_Auth*l Zend_Acl*k 'Zend_Acl_Role*j 9Zend_Acl_Role_Registry*%i MZend_Acl_Role_Registry_Exception*h /Zend_Acl_Resource*g 1Zend_Acl_Exception*f /Zend_XmlRpc_Value)e =Zend_XmlRpc_Value_Struct)d =Zend_XmlRpc_Value_String)c =Zend_XmlRpc_Value_Scalar)b 7Zend_XmlRpc_Value_Nil)a ?Zend_XmlRpc_Value_Integer) ` CZend_XmlRpc_Value_Exception)_ =Zend_XmlRpc_Value_Double)^ AZend_XmlRpc_Value_DateTime)!] EZend_XmlRpc_Value_Collection)\ ?Zend_XmlRpc_Value_Boolean)![ EZend_XmlRpc_Value_BigInteger)Z =Zend_XmlRpc_Value_Base64)Y ;Zend_XmlRpc_Value_Array)X 1Zend_XmlRpc_Server)W ?Zend_XmlRpc_Server_System)V =Zend_XmlRpc_Server_Fault)!U EZend_XmlRpc_Server_Exception)T =Zend_XmlRpc_Server_Cache)S 5Zend_XmlRpc_Response)R ?Zend_XmlRpc_Response_Http)Q 3Zend_XmlRpc_Request)P ?Zend_XmlRpc_Request_Stdin)O =Zend_XmlRpc_Request_Http)$N KZend_XmlRpc_Generator_XmlWriter),M [Zend_XmlRpc_Generator_GeneratorAbstract)&L OZend_XmlRpc_Generator_DomDocument)K /Zend_XmlRpc_Fault)J 7Zend_XmlRpc_Exception)I 1Zend_XmlRpc_Client)#H IZend_XmlRpc_Client_ServerProxy)+G YZend_XmlRpc_Client_ServerIntrospection)+F YZend_XmlRpc_Client_IntrospectException)%E MZend_XmlRpc_Client_HttpException)&D OZend_XmlRpc_Client_FaultException)!C EZend_XmlRpc_Client_Exception)&B OZend_Wildfire_Protocol_JsonStream)!A EZend_Wildfire_Plugin_FirePhp).@ _Zend_Wildfire_Plugin_FirePhp_TableMessage))? UZend_Wildfire_Plugin_FirePhp_Message)> ;Zend_Wildfire_Exception)&= OZend_Wildfire_Channel_HttpHeaders)< Zend_View); -Zend_View_Stream): 5Zend_View_Helper_Url)9 AZend_View_Helper_Translate)8 AZend_View_Helper_ServerUrl))7 UZend_View_Helper_RenderToPlaceholder)!6 EZend_View_Helper_Placeholder)*5 WZend_View_Helper_Placeholder_Registry)44 kZend_View_Helper_Placeholder_Registry_Exception)+3 YZend_View_Helper_Placeholder_Container)62 oZend_View_Helper_Placeholder_Container_Standalone)51 mZend_View_Helper_Placeholder_Container_Exception)40 kZend_View_Helper_Placeholder_Container_Abstract)!/ EZend_View_Helper_PartialLoop). =Zend_View_Helper_Partial)'- QZend_View_Helper_Partial_Exception)', QZend_View_Helper_PaginationControl) + CZend_View_Helper_Navigation)(* SZend_View_Helper_Navigation_Sitemap)%) MZend_View_Helper_Navigation_Menu)&( OZend_View_Helper_Navigation_Links)/' aZend_View_Helper_Navigation_HelperAbstract),& [Zend_View_Helper_Navigation_Breadcrumbs)% ;Zend_View_Helper_Layout)$ 7Zend_View_Helper_Json)"# GZend_View_Helper_InlineScript)#" IZend_View_Helper_HtmlQuicktime)! ?Zend_View_Helper_HtmlPage)   CZend_View_Helper_HtmlObject) ?Zend_View_Helper_HtmlList) AZend_View_Helper_HtmlFlash)! EZend_View_Helper_HtmlElement) AZend_View_Helper_HeadTitle) AZend_View_Helper_HeadStyle)  CZend_View_Helper_HeadScript) ?Zend_View_Helper_HeadMeta) ?Zend_View_Helper_HeadLink)" GZend_View_Helper_FormTextarea) ?Zend_View_Helper_FormText)   X  Sg0b1f6v>


~
\
2
					g	8	`4xJ['_.j<k@wO%|R&                               $& KZend_Memory_Container_Interface*'% QZend_Markup_Parser_ParserInterface*)$ UZend_Mail_Storage_Writable_Interface*'# QZend_Mail_Storage_Folder_Interface*" =Zend_Mail_Part_Interface* ! CZend_Mail_Message_Interface*!  EZend_Log_Formatter_Interface* ?Zend_Log_Filter_Interface* ?Zend_Log_FactoryInterface*' QZend_Loader_PluginLoader_Interface*% MZend_Loader_Autoloader_Interface*0 cZend_Ldap_Node_Schema_ObjectClass_Interface*2 gZend_Ldap_Node_Schema_AttributeType_Interface*3 iZend_InfoCard_Xml_Security_Transform_Interface*( SZend_InfoCard_Xml_KeyInfo_Interface*( SZend_InfoCard_Xml_Element_Interface** WZend_InfoCard_Xml_Assertion_Interface*- ]Zend_InfoCard_Cipher_Symmetric_Interface*7 qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface*7 qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interface*+ YZend_InfoCard_Cipher_Pki_Rsa_Interface*' QZend_InfoCard_Cipher_Pki_Interface*$ KZend_InfoCard_Adapter_Interface*$ KZend_Http_Client_Adapter_Stream*' QZend_Http_Client_Adapter_Interface* AZend_Gdata_App_MediaSource*. _Zend_Form_Decorator_Marker_File_Interface*" GZend_Form_Decorator_Interface*
 7Zend_Filter_Interface*"	 GZend_Filter_Encrypt_Interface*+ YZend_Filter_Compress_CompressInterface*0 cZend_Feed_Writer_Renderer_RendererInterface*1 eZend_Feed_Writer_Extension_RendererInterface*# IZend_Feed_Reader_FeedInterface*$ KZend_Feed_Reader_EntryInterface*- ]Zend_Feed_Pubsubhubbub_CallbackInterface*  CZend_Feed_Builder_Interface*  CZend_Db_Statement_Interface*)  UZend_Crypt_Math_BigInteger_Interface*+ YZend_Controller_Router_Route_Interface*%~ MZend_Controller_Router_Interface*)} UZend_Controller_Dispatcher_Interface*%| MZend_Controller_Action_Interface*{ 5Zend_Captcha_Adapter*!z EZend_Cache_Backend_Interface*)y UZend_Cache_Backend_ExtendedInterface* x CZend_Auth_Storage_Interface* w CZend_Auth_Adapter_Interface*.v _Zend_Auth_Adapter_Http_Resolver_Interface*'u QZend_Application_Resource_Resource*4t kZend_Application_Bootstrap_ResourceBootstrapper*,s [Zend_Application_Bootstrap_Bootstrapper*r ;Zend_Acl_Role_Interface* q CZend_Acl_Resource_Interface*p ?Zend_Acl_Assert_Interface*#o IZend_Wildfire_Plugin_Interface)$n KZend_Wildfire_Channel_Interface)m 3Zend_View_Interface)'l QZend_View_Helper_Navigation_Helper)k AZend_View_Helper_Interface)j ;Zend_Validate_Interface)+i YZend_Validate_Barcode_AdapterInterface)3h iZend_Tool_Project_Profile_FileParser_Interface):g wZend_Tool_Project_Context_System_TopLevelRestrictable)5f mZend_Tool_Project_Context_System_NotOverwritable)/e aZend_Tool_Project_Context_System_Interface)(d SZend_Tool_Project_Context_Interface)+c YZend_Tool_Framework_Registry_Interface)2b gZend_Tool_Framework_Registry_EnabledInterface)-a ]Zend_Tool_Framework_Provider_Pretendable)+` YZend_Tool_Framework_Provider_Interface)._ _Zend_Tool_Framework_Provider_Interactable);^ yZend_Tool_Framework_Provider_DocblockManifestInterface)+] YZend_Tool_Framework_Metadata_Interface).\ _Zend_Tool_Framework_Metadata_Attributable)6[ oZend_Tool_Framework_Manifest_ProviderManifestable)6Z oZend_Tool_Framework_Manifest_MetadataManifestable)+Y YZend_Tool_Framework_Manifest_Interface)+X YZend_Tool_Framework_Manifest_Indexable)4W kZend_Tool_Framework_Manifest_ActionManifestable))V UZend_Tool_Framework_Loader_Interface)8U sZend_Tool_Framework_Client_Storage_AdapterInterface)DT 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface);S yZend_Tool_Framework_Client_Interactive_OutputInterface):R wZend_Tool_Framework_Client_Interactive_InputInterface))Q UZend_Tool_Framework_Action_Interface)(P SZend_Text_Table_Decorator_Interface)O /Zend_Tag_Taggable)   i  tQ0R$sFl=jA



h
>
					k	9	nU1	pN(mK~\:T.wR/qV7c/                                    .h _Zend_CodeGenerator_Php_Docblock_Tag_Param*0g cZend_CodeGenerator_Php_Docblock_Tag_License*!f EZend_CodeGenerator_Php_Class* e CZend_CodeGenerator_Php_Body*$d KZend_CodeGenerator_Php_Abstract*!c EZend_CodeGenerator_Exception* b CZend_CodeGenerator_Abstract*a /Zend_Captcha_Word*` 9Zend_Captcha_ReCaptcha*_ 1Zend_Captcha_Image*^ 3Zend_Captcha_Figlet*] 9Zend_Captcha_Exception*\ /Zend_Captcha_Dumb*[ /Zend_Captcha_Base*Z !Zend_Cache*Y 1Zend_Cache_Manager*X =Zend_Cache_Frontend_Page*W AZend_Cache_Frontend_Output*!V EZend_Cache_Frontend_Function*U =Zend_Cache_Frontend_File*T ?Zend_Cache_Frontend_Class* S CZend_Cache_Frontend_Capture*R 5Zend_Cache_Exception*Q +Zend_Cache_Core*P 1Zend_Cache_Backend*"O GZend_Cache_Backend_ZendServer*(N SZend_Cache_Backend_ZendServer_ShMem*'M QZend_Cache_Backend_ZendServer_Disk*$L KZend_Cache_Backend_ZendPlatform*K ?Zend_Cache_Backend_Xcache*!J EZend_Cache_Backend_TwoLevels*I ;Zend_Cache_Backend_Test*H ?Zend_Cache_Backend_Static*G ?Zend_Cache_Backend_Sqlite*!F EZend_Cache_Backend_Memcached*E ;Zend_Cache_Backend_File*!D EZend_Cache_Backend_BlackHole*C 9Zend_Cache_Backend_Apc*B %Zend_Barcode*+A YZend_Barcode_Renderer_RendererAbstract*@ ?Zend_Barcode_Renderer_Pdf* ? CZend_Barcode_Renderer_Image*$> KZend_Barcode_Renderer_Exception*'= QZend_Barcode_Object_ObjectAbstract*< ?Zend_Barcode_Object_Itf14*; ?Zend_Barcode_Object_Int25*": GZend_Barcode_Object_Exception*9 ?Zend_Barcode_Object_Error*8 AZend_Barcode_Object_Code39*7 AZend_Barcode_Object_Code25*6 9Zend_Barcode_Exception*5 Zend_Auth*4 ?Zend_Auth_Storage_Session*$3 KZend_Auth_Storage_NonPersistent* 2 CZend_Auth_Storage_Exception*1 -Zend_Auth_Result*0 3Zend_Auth_Exception*/ =Zend_Auth_Adapter_OpenId*. 9Zend_Auth_Adapter_Ldap*- AZend_Auth_Adapter_InfoCard*, 9Zend_Auth_Adapter_Http*)+ UZend_Auth_Adapter_Http_Resolver_File*.* _Zend_Auth_Adapter_Http_Resolver_Exception* ) CZend_Auth_Adapter_Exception*( =Zend_Auth_Adapter_Digest*' ?Zend_Auth_Adapter_DbTable*& -Zend_Application*#% IZend_Application_Resource_View*($ SZend_Application_Resource_Translate*&# OZend_Application_Resource_Session*%" MZend_Application_Resource_Router*/! aZend_Application_Resource_ResourceAbstract*)  UZend_Application_Resource_Navigation*& OZend_Application_Resource_Modules*" GZend_Application_Resource_Log*% MZend_Application_Resource_Locale*% MZend_Application_Resource_Layout*. _Zend_Application_Resource_Frontcontroller*( SZend_Application_Resource_Exception*# IZend_Application_Resource_Dojo*! EZend_Application_Resource_Db*+ YZend_Application_Resource_CacheManager*& OZend_Application_Module_Bootstrap*' QZend_Application_Module_Autoloader* AZend_Application_Exception*) UZend_Application_Bootstrap_Exception*1 eZend_Application_Bootstrap_BootstrapAbstract*) UZend_Application_Bootstrap_Bootstrap* ?Zend_Amf_Value_TraitsInfo*- ]Zend_Amf_Value_Messaging_RemotingMessage** WZend_Amf_Value_Messaging_ErrorMessage*, [Zend_Amf_Value_Messaging_CommandMessage** WZend_Amf_Value_Messaging_AsyncMessage*- ]Zend_Amf_Value_Messaging_ArrayCollection*0
 cZend_Amf_Value_Messaging_AcknowledgeMessage*-	 ]Zend_Amf_Value_Messaging_AbstractMessage*! EZend_Amf_Value_MessageHeader* AZend_Amf_Value_MessageBody* =Zend_Amf_Value_ByteArray* AZend_Amf_Util_BinaryStream* +Zend_Amf_Server* ?Zend_Amf_Server_Exception* /Zend_Amf_Response* 9Zend_Amf_Response_Http*  -Zend_Amf_Request*   c  yP,qHlM.|Mv6



v
E
				c	7	
vK%|R- _9e:d9jC o\<&{_=                                        K 9Zend_Db_Adapter_Mysqli*%J MZend_Db_Adapter_Mysqli_Exception*I ?Zend_Db_Adapter_Exception*H 3Zend_Db_Adapter_Db2*"G GZend_Db_Adapter_Db2_Exception*F =Zend_Db_Adapter_Abstract*E Zend_Date*D 3Zend_Date_Exception*C 5Zend_Date_DateObject*B -Zend_Date_Cities*A 'Zend_Currency*@ ;Zend_Currency_Exception*? !Zend_Crypt*> )Zend_Crypt_Rsa*= 1Zend_Crypt_Rsa_Key*< ?Zend_Crypt_Rsa_Key_Public*; AZend_Crypt_Rsa_Key_Private*: +Zend_Crypt_Math*9 ?Zend_Crypt_Math_Exception*8 AZend_Crypt_Math_BigInteger*#7 IZend_Crypt_Math_BigInteger_Gmp*)6 UZend_Crypt_Math_BigInteger_Exception*&5 OZend_Crypt_Math_BigInteger_Bcmath*4 +Zend_Crypt_Hmac*3 ?Zend_Crypt_Hmac_Exception*2 5Zend_Crypt_Exception*1 =Zend_Crypt_DiffieHellman*'0 QZend_Crypt_DiffieHellman_Exception*!/ EZend_Controller_Router_Route*(. SZend_Controller_Router_Route_Static*'- QZend_Controller_Router_Route_Regex*(, SZend_Controller_Router_Route_Module**+ WZend_Controller_Router_Route_Hostname*'* QZend_Controller_Router_Route_Chain**) WZend_Controller_Router_Route_Abstract*#( IZend_Controller_Router_Rewrite*%' MZend_Controller_Router_Exception*$& KZend_Controller_Router_Abstract**% WZend_Controller_Response_HttpTestCase*"$ GZend_Controller_Response_Http*'# QZend_Controller_Response_Exception*!" EZend_Controller_Response_Cli*&! OZend_Controller_Response_Abstract*#  IZend_Controller_Request_Simple*) UZend_Controller_Request_HttpTestCase*! EZend_Controller_Request_Http*& OZend_Controller_Request_Exception*& OZend_Controller_Request_Apache404*% MZend_Controller_Request_Abstract*& OZend_Controller_Plugin_PutHandler*( SZend_Controller_Plugin_ErrorHandler*" GZend_Controller_Plugin_Broker*' QZend_Controller_Plugin_ActionStack*$ KZend_Controller_Plugin_Abstract* 7Zend_Controller_Front* ?Zend_Controller_Exception*( SZend_Controller_Dispatcher_Standard*) UZend_Controller_Dispatcher_Exception*( SZend_Controller_Dispatcher_Abstract* 9Zend_Controller_Action*( SZend_Controller_Action_HelperBroker*6 oZend_Controller_Action_HelperBroker_PriorityStack*/ aZend_Controller_Action_Helper_ViewRenderer*& OZend_Controller_Action_Helper_Url*- ]Zend_Controller_Action_Helper_Redirector*'
 QZend_Controller_Action_Helper_Json*1	 eZend_Controller_Action_Helper_FlashMessenger*0 cZend_Controller_Action_Helper_ContextSwitch*( SZend_Controller_Action_Helper_Cache*< {Zend_Controller_Action_Helper_AutoCompleteScriptaculous*3 iZend_Controller_Action_Helper_AutoCompleteDojo*8 sZend_Controller_Action_Helper_AutoComplete_Abstract*. _Zend_Controller_Action_Helper_AjaxContext*. _Zend_Controller_Action_Helper_ActionStack*+ YZend_Controller_Action_Helper_Abstract*%  MZend_Controller_Action_Exception* 3Zend_Console_Getopt*"~ GZend_Console_Getopt_Exception*} #Zend_Config*| +Zend_Config_Xml*{ 1Zend_Config_Writer*z 9Zend_Config_Writer_Xml*y 9Zend_Config_Writer_Ini*$x KZend_Config_Writer_FileAbstract*w =Zend_Config_Writer_Array*v +Zend_Config_Ini*u 7Zend_Config_Exception*$t KZend_CodeGenerator_Php_Property*1s eZend_CodeGenerator_Php_Property_DefaultValue*%r MZend_CodeGenerator_Php_Parameter*2q gZend_CodeGenerator_Php_Parameter_DefaultValue*"p GZend_CodeGenerator_Php_Method*,o [Zend_CodeGenerator_Php_Member_Container*+n YZend_CodeGenerator_Php_Member_Abstract* m CZend_CodeGenerator_Php_File*%l MZend_CodeGenerator_Php_Exception*$k KZend_CodeGenerator_Php_Docblock*(j SZend_CodeGenerator_Php_Docblock_Tag*/i aZend_CodeGenerator_Php_Docblock_Tag_Return*   g  oK+	Y: nW/vU3nM-





b
;

						a	2	vKsK#zT%lArG`4i;iF!                              *2 WZend_Dojo_View_Helper_FilteringSelect*!1 EZend_Dojo_View_Helper_Editor*0 AZend_Dojo_View_Helper_Dojo*)/ UZend_Dojo_View_Helper_Dojo_Container*). UZend_Dojo_View_Helper_DijitContainer* - CZend_Dojo_View_Helper_Dijit*&, OZend_Dojo_View_Helper_DateTextBox*&+ OZend_Dojo_View_Helper_CustomDijit*** WZend_Dojo_View_Helper_CurrencyTextBox*&) OZend_Dojo_View_Helper_ContentPane*#( IZend_Dojo_View_Helper_ComboBox*#' IZend_Dojo_View_Helper_CheckBox*!& EZend_Dojo_View_Helper_Button**% WZend_Dojo_View_Helper_BorderContainer*($ SZend_Dojo_View_Helper_AccordionPane*-# ]Zend_Dojo_View_Helper_AccordionContainer*" =Zend_Dojo_View_Exception*! )Zend_Dojo_Form*  9Zend_Dojo_Form_SubForm** WZend_Dojo_Form_Element_VerticalSlider*- ]Zend_Dojo_Form_Element_ValidationTextBox*' QZend_Dojo_Form_Element_TimeTextBox*# IZend_Dojo_Form_Element_TextBox*$ KZend_Dojo_Form_Element_Textarea*( SZend_Dojo_Form_Element_SubmitButton*" GZend_Dojo_Form_Element_Slider** WZend_Dojo_Form_Element_SimpleTextarea*' QZend_Dojo_Form_Element_RadioButton*+ YZend_Dojo_Form_Element_PasswordTextBox*) UZend_Dojo_Form_Element_NumberTextBox*) UZend_Dojo_Form_Element_NumberSpinner*, [Zend_Dojo_Form_Element_HorizontalSlider*+ YZend_Dojo_Form_Element_FilteringSelect*" GZend_Dojo_Form_Element_Editor*& OZend_Dojo_Form_Element_DijitMulti*! EZend_Dojo_Form_Element_Dijit*' QZend_Dojo_Form_Element_DateTextBox*+ YZend_Dojo_Form_Element_CurrencyTextBox*$ KZend_Dojo_Form_Element_ComboBox*$ KZend_Dojo_Form_Element_CheckBox*"
 GZend_Dojo_Form_Element_Button* 	 CZend_Dojo_Form_DisplayGroup** WZend_Dojo_Form_Decorator_TabContainer*, [Zend_Dojo_Form_Decorator_StackContainer*, [Zend_Dojo_Form_Decorator_SplitContainer*' QZend_Dojo_Form_Decorator_DijitForm** WZend_Dojo_Form_Decorator_DijitElement*, [Zend_Dojo_Form_Decorator_DijitContainer*) UZend_Dojo_Form_Decorator_ContentPane*- ]Zend_Dojo_Form_Decorator_BorderContainer*+  YZend_Dojo_Form_Decorator_AccordionPane*0 cZend_Dojo_Form_Decorator_AccordionContainer*~ 3Zend_Dojo_Exception*} )Zend_Dojo_Data*| 5Zend_Dojo_BuildLayer*{ !Zend_Debug*z Zend_Db*y 'Zend_Db_Table*x 5Zend_Db_Table_Select*#w IZend_Db_Table_Select_Exception*v 5Zend_Db_Table_Rowset*#u IZend_Db_Table_Rowset_Exception*"t GZend_Db_Table_Rowset_Abstract*s /Zend_Db_Table_Row* r CZend_Db_Table_Row_Exception*q AZend_Db_Table_Row_Abstract*p ;Zend_Db_Table_Exception*o =Zend_Db_Table_Definition*n 9Zend_Db_Table_Abstract*m /Zend_Db_Statement*l =Zend_Db_Statement_Sqlsrv*'k QZend_Db_Statement_Sqlsrv_Exception*j 7Zend_Db_Statement_Pdo*i ?Zend_Db_Statement_Pdo_Oci*h ?Zend_Db_Statement_Pdo_Ibm*g =Zend_Db_Statement_Oracle*'f QZend_Db_Statement_Oracle_Exception*e =Zend_Db_Statement_Mysqli*'d QZend_Db_Statement_Mysqli_Exception* c CZend_Db_Statement_Exception*b 7Zend_Db_Statement_Db2*$a KZend_Db_Statement_Db2_Exception*` )Zend_Db_Select*_ =Zend_Db_Select_Exception*^ -Zend_Db_Profiler*] 9Zend_Db_Profiler_Query*\ =Zend_Db_Profiler_Firebug*[ AZend_Db_Profiler_Exception*Z %Zend_Db_Expr*Y /Zend_Db_Exception*X 9Zend_Db_Adapter_Sqlsrv*%W MZend_Db_Adapter_Sqlsrv_Exception*V AZend_Db_Adapter_Pdo_Sqlite*U ?Zend_Db_Adapter_Pdo_Pgsql*T ;Zend_Db_Adapter_Pdo_Oci*S ?Zend_Db_Adapter_Pdo_Mysql*R ?Zend_Db_Adapter_Pdo_Mssql*Q ;Zend_Db_Adapter_Pdo_Ibm* P CZend_Db_Adapter_Pdo_Ibm_Ids* O CZend_Db_Adapter_Pdo_Ibm_Db2*!N EZend_Db_Adapter_Pdo_Abstract*M 9Zend_Db_Adapter_Oracle*%L MZend_Db_Adapter_Oracle_Exception*   \  V(R'U(s\<z]A%



m
;
				k	>	uGxDO [8G^.Z"[/                         ' QZend_Feed_Writer_Renderer_Feed_Rss*( SZend_Feed_Writer_Renderer_Feed_Atom*( SZend_Feed_Writer_Renderer_Entry_Rss*) UZend_Feed_Writer_Renderer_Entry_Atom*
 7Zend_Feed_Writer_Feed*<	 {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry*8 sZend_Feed_Writer_Extension_Threading_Renderer_Entry*4 kZend_Feed_Writer_Extension_Slash_Renderer_Entry*0 cZend_Feed_Writer_Extension_RendererAbstract*4 kZend_Feed_Writer_Extension_ITunes_Renderer_Feed*5 mZend_Feed_Writer_Extension_ITunes_Renderer_Entry*+ YZend_Feed_Writer_Extension_ITunes_Feed*, [Zend_Feed_Writer_Extension_ITunes_Entry*8 sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed*9  uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry*6 oZend_Feed_Writer_Extension_Content_Renderer_Entry*2~ gZend_Feed_Writer_Extension_Atom_Renderer_Feed*6} oZend_Feed_Writer_Exception_InvalidMethodException*| 9Zend_Feed_Writer_Entry*{ 'Zend_Feed_Rss*z -Zend_Feed_Reader*y =Zend_Feed_Reader_FeedSet*"x GZend_Feed_Reader_FeedAbstract*w ?Zend_Feed_Reader_Feed_Rss*v AZend_Feed_Reader_Feed_Atom*&u OZend_Feed_Reader_Feed_Atom_Source*3t iZend_Feed_Reader_Extension_WellFormedWeb_Entry*,s [Zend_Feed_Reader_Extension_Thread_Entry*0r cZend_Feed_Reader_Extension_Syndication_Feed*+q YZend_Feed_Reader_Extension_Slash_Entry*,p [Zend_Feed_Reader_Extension_Podcast_Feed*-o ]Zend_Feed_Reader_Extension_Podcast_Entry*,n [Zend_Feed_Reader_Extension_FeedAbstract*-m ]Zend_Feed_Reader_Extension_EntryAbstract*/l aZend_Feed_Reader_Extension_DublinCore_Feed*0k cZend_Feed_Reader_Extension_DublinCore_Entry*4j kZend_Feed_Reader_Extension_CreativeCommons_Feed*5i mZend_Feed_Reader_Extension_CreativeCommons_Entry*-h ]Zend_Feed_Reader_Extension_Content_Entry*)g UZend_Feed_Reader_Extension_Atom_Feed**f WZend_Feed_Reader_Extension_Atom_Entry*#e IZend_Feed_Reader_EntryAbstract*d AZend_Feed_Reader_Entry_Rss* c CZend_Feed_Reader_Entry_Atom* b CZend_Feed_Reader_Collection*3a iZend_Feed_Reader_Collection_CollectionAbstract*)` UZend_Feed_Reader_Collection_Category*'_ QZend_Feed_Reader_Collection_Author*^ 9Zend_Feed_Pubsubhubbub*&] OZend_Feed_Pubsubhubbub_Subscriber*/\ aZend_Feed_Pubsubhubbub_Subscriber_Callback*%[ MZend_Feed_Pubsubhubbub_Publisher*.Z _Zend_Feed_Pubsubhubbub_Model_Subscription*/Y aZend_Feed_Pubsubhubbub_Model_ModelAbstract*(X SZend_Feed_Pubsubhubbub_HttpResponse*%W MZend_Feed_Pubsubhubbub_Exception*,V [Zend_Feed_Pubsubhubbub_CallbackAbstract*U 3Zend_Feed_Exception*T 3Zend_Feed_Entry_Rss*S 5Zend_Feed_Entry_Atom*R =Zend_Feed_Entry_Abstract*Q /Zend_Feed_Element*P /Zend_Feed_Builder*O =Zend_Feed_Builder_Header*$N KZend_Feed_Builder_Header_Itunes* M CZend_Feed_Builder_Exception*L ;Zend_Feed_Builder_Entry*K )Zend_Feed_Atom*J 1Zend_Feed_Abstract*I )Zend_Exception*H )Zend_Dom_Query*G 7Zend_Dom_Query_Result*F =Zend_Dom_Query_Css2Xpath*E 1Zend_Dom_Exception*D Zend_Dojo*)C UZend_Dojo_View_Helper_VerticalSlider*,B [Zend_Dojo_View_Helper_ValidationTextBox*&A OZend_Dojo_View_Helper_TimeTextBox*"@ GZend_Dojo_View_Helper_TextBox*#? IZend_Dojo_View_Helper_Textarea*'> QZend_Dojo_View_Helper_TabContainer*'= QZend_Dojo_View_Helper_SubmitButton*)< UZend_Dojo_View_Helper_StackContainer*); UZend_Dojo_View_Helper_SplitContainer*!: EZend_Dojo_View_Helper_Slider*)9 UZend_Dojo_View_Helper_SimpleTextarea*&8 OZend_Dojo_View_Helper_RadioButton**7 WZend_Dojo_View_Helper_PasswordTextBox*(6 SZend_Dojo_View_Helper_NumberTextBox*(5 SZend_Dojo_View_Helper_NumberSpinner*+4 YZend_Dojo_View_Helper_HorizontalSlider*3 AZend_Dojo_View_Helper_Form*   o  vN)Q1qU:"_<^4




{
Y
;
				c	9	Y/ yU-vU,qM&zV7iF&bH, j:                       } =Zend_Gdata_App_Exception*| 5Zend_Gdata_App_Entry*,{ [Zend_Gdata_App_CaptchaRequiredException*#z IZend_Gdata_App_BaseMediaSource*y 3Zend_Gdata_App_Base**x WZend_Gdata_App_BadMethodCallException*!w EZend_Gdata_App_AuthException*v Zend_Form*u /Zend_Form_SubForm*t 3Zend_Form_Exception*s /Zend_Form_Element*r ;Zend_Form_Element_Xhtml*q AZend_Form_Element_Textarea*p 9Zend_Form_Element_Text*o =Zend_Form_Element_Submit*n =Zend_Form_Element_Select*m ;Zend_Form_Element_Reset*l ;Zend_Form_Element_Radio*k AZend_Form_Element_Password*"j GZend_Form_Element_Multiselect*$i KZend_Form_Element_MultiCheckbox*h ;Zend_Form_Element_Multi*g ;Zend_Form_Element_Image*f =Zend_Form_Element_Hidden*e 9Zend_Form_Element_Hash*d 9Zend_Form_Element_File* c CZend_Form_Element_Exception*b AZend_Form_Element_Checkbox*a ?Zend_Form_Element_Captcha*` =Zend_Form_Element_Button*_ 9Zend_Form_DisplayGroup*#^ IZend_Form_Decorator_ViewScript*#] IZend_Form_Decorator_ViewHelper* \ CZend_Form_Decorator_Tooltip*([ SZend_Form_Decorator_PrepareElements*Z ?Zend_Form_Decorator_Label*Y ?Zend_Form_Decorator_Image* X CZend_Form_Decorator_HtmlTag*#W IZend_Form_Decorator_FormErrors*%V MZend_Form_Decorator_FormElements*U =Zend_Form_Decorator_Form*T =Zend_Form_Decorator_File*!S EZend_Form_Decorator_Fieldset*"R GZend_Form_Decorator_Exception*Q AZend_Form_Decorator_Errors*$P KZend_Form_Decorator_DtDdWrapper*$O KZend_Form_Decorator_Description* N CZend_Form_Decorator_Captcha*%M MZend_Form_Decorator_Captcha_Word*!L EZend_Form_Decorator_Callback*!K EZend_Form_Decorator_Abstract*J #Zend_Filter*+I YZend_Filter_Word_UnderscoreToSeparator*&H OZend_Filter_Word_UnderscoreToDash*+G YZend_Filter_Word_UnderscoreToCamelCase**F WZend_Filter_Word_SeparatorToSeparator*%E MZend_Filter_Word_SeparatorToDash**D WZend_Filter_Word_SeparatorToCamelCase*(C SZend_Filter_Word_Separator_Abstract*&B OZend_Filter_Word_DashToUnderscore*%A MZend_Filter_Word_DashToSeparator*%@ MZend_Filter_Word_DashToCamelCase*+? YZend_Filter_Word_CamelCaseToUnderscore**> WZend_Filter_Word_CamelCaseToSeparator*%= MZend_Filter_Word_CamelCaseToDash*< 7Zend_Filter_StripTags*; ?Zend_Filter_StripNewlines*: 9Zend_Filter_StringTrim*9 ?Zend_Filter_StringToUpper*8 ?Zend_Filter_StringToLower*7 5Zend_Filter_RealPath*6 ;Zend_Filter_PregReplace*5 -Zend_Filter_Null*&4 OZend_Filter_NormalizedToLocalized*&3 OZend_Filter_LocalizedToNormalized*2 +Zend_Filter_Int*1 /Zend_Filter_Input*0 7Zend_Filter_Inflector*/ =Zend_Filter_HtmlEntities*. AZend_Filter_File_UpperCase*- ;Zend_Filter_File_Rename*, AZend_Filter_File_LowerCase*+ =Zend_Filter_File_Encrypt** =Zend_Filter_File_Decrypt*) 7Zend_Filter_Exception*( 3Zend_Filter_Encrypt* ' CZend_Filter_Encrypt_Openssl*& AZend_Filter_Encrypt_Mcrypt*% +Zend_Filter_Dir*$ 1Zend_Filter_Digits*# 3Zend_Filter_Decrypt*" 9Zend_Filter_Decompress*! 5Zend_Filter_Compress*  =Zend_Filter_Compress_Zip* =Zend_Filter_Compress_Tar* =Zend_Filter_Compress_Rar* =Zend_Filter_Compress_Lzf* ;Zend_Filter_Compress_Gz** WZend_Filter_Compress_CompressAbstract* =Zend_Filter_Compress_Bz2* 5Zend_Filter_Callback* 5Zend_Filter_BaseName* /Zend_Filter_Alpha* /Zend_Filter_Alnum* 1Zend_File_Transfer*! EZend_File_Transfer_Exception*$ KZend_File_Transfer_Adapter_Http*( SZend_File_Transfer_Adapter_Abstract* Zend_Feed* -Zend_Feed_Writer*/ aZend_Feed_Writer_Renderer_RendererAbstract*   _  X/e?V.f=g7



y
Q
:
				k	>	W(zT-wH|V1m=zIlS5
a1                               #\ IZend_Gdata_Exif_Extension_Make*"[ GZend_Gdata_Exif_Extension_Iso*,Z [Zend_Gdata_Exif_Extension_ImageUniqueId*$Y KZend_Gdata_Exif_Extension_FStop**X WZend_Gdata_Exif_Extension_FocalLength*$W KZend_Gdata_Exif_Extension_Flash*'V QZend_Gdata_Exif_Extension_Exposure*'U QZend_Gdata_Exif_Extension_Distance*T 7Zend_Gdata_Exif_Entry*S -Zend_Gdata_Entry*R 7Zend_Gdata_DublinCore**Q WZend_Gdata_DublinCore_Extension_Title*,P [Zend_Gdata_DublinCore_Extension_Subject*+O YZend_Gdata_DublinCore_Extension_Rights*.N _Zend_Gdata_DublinCore_Extension_Publisher*-M ]Zend_Gdata_DublinCore_Extension_Language*/L aZend_Gdata_DublinCore_Extension_Identifier*+K YZend_Gdata_DublinCore_Extension_Format*0J cZend_Gdata_DublinCore_Extension_Description*)I UZend_Gdata_DublinCore_Extension_Date*,H [Zend_Gdata_DublinCore_Extension_Creator*G +Zend_Gdata_Docs*F 7Zend_Gdata_Docs_Query*%E MZend_Gdata_Docs_DocumentListFeed*&D OZend_Gdata_Docs_DocumentListEntry*C 9Zend_Gdata_ClientLogin*B 3Zend_Gdata_Calendar*!A EZend_Gdata_Calendar_ListFeed*"@ GZend_Gdata_Calendar_ListEntry*-? ]Zend_Gdata_Calendar_Extension_WebContent*+> YZend_Gdata_Calendar_Extension_Timezone*9= uZend_Gdata_Calendar_Extension_SendEventNotifications*+< YZend_Gdata_Calendar_Extension_Selected*+; YZend_Gdata_Calendar_Extension_QuickAdd*': QZend_Gdata_Calendar_Extension_Link*)9 UZend_Gdata_Calendar_Extension_Hidden*(8 SZend_Gdata_Calendar_Extension_Color*.7 _Zend_Gdata_Calendar_Extension_AccessLevel*#6 IZend_Gdata_Calendar_EventQuery*"5 GZend_Gdata_Calendar_EventFeed*#4 IZend_Gdata_Calendar_EventEntry*3 -Zend_Gdata_Books*!2 EZend_Gdata_Books_VolumeQuery* 1 CZend_Gdata_Books_VolumeFeed*!0 EZend_Gdata_Books_VolumeEntry*+/ YZend_Gdata_Books_Extension_Viewability*-. ]Zend_Gdata_Books_Extension_ThumbnailLink*&- OZend_Gdata_Books_Extension_Review*+, YZend_Gdata_Books_Extension_PreviewLink*(+ SZend_Gdata_Books_Extension_InfoLink*-* ]Zend_Gdata_Books_Extension_Embeddability*)) UZend_Gdata_Books_Extension_BooksLink*-( ]Zend_Gdata_Books_Extension_BooksCategory*.' _Zend_Gdata_Books_Extension_AnnotationLink*$& KZend_Gdata_Books_CollectionFeed*%% MZend_Gdata_Books_CollectionEntry*$ 1Zend_Gdata_AuthSub*# )Zend_Gdata_App*$" KZend_Gdata_App_VersionException*! 3Zend_Gdata_App_Util*#  IZend_Gdata_App_MediaFileSource* ?Zend_Gdata_App_MediaEntry*2 gZend_Gdata_App_LoggingHttpClientAdapterSocket* AZend_Gdata_App_IOException*, [Zend_Gdata_App_InvalidArgumentException*! EZend_Gdata_App_HttpException*$ KZend_Gdata_App_FeedSourceParent*# IZend_Gdata_App_FeedEntryParent* 3Zend_Gdata_App_Feed* =Zend_Gdata_App_Extension*! EZend_Gdata_App_Extension_Uri*% MZend_Gdata_App_Extension_Updated*# IZend_Gdata_App_Extension_Title*" GZend_Gdata_App_Extension_Text*% MZend_Gdata_App_Extension_Summary*& OZend_Gdata_App_Extension_Subtitle*$ KZend_Gdata_App_Extension_Source*$ KZend_Gdata_App_Extension_Rights*' QZend_Gdata_App_Extension_Published*$ KZend_Gdata_App_Extension_Person*" GZend_Gdata_App_Extension_Name*" GZend_Gdata_App_Extension_Logo*"
 GZend_Gdata_App_Extension_Link* 	 CZend_Gdata_App_Extension_Id*" GZend_Gdata_App_Extension_Icon*' QZend_Gdata_App_Extension_Generator*# IZend_Gdata_App_Extension_Email*% MZend_Gdata_App_Extension_Element*$ KZend_Gdata_App_Extension_Edited*# IZend_Gdata_App_Extension_Draft*% MZend_Gdata_App_Extension_Control*) UZend_Gdata_App_Extension_Contributor*%  MZend_Gdata_App_Extension_Content*& OZend_Gdata_App_Extension_Category*$~ KZend_Gdata_App_Extension_Author*   c  mU)[5pL${Y6i8



b
:
				q	R	(	W9gA(pY1
oU(i9vIY'}a<                                      !? EZend_Gdata_Photos_AlbumQuery* > CZend_Gdata_Photos_AlbumFeed*!= EZend_Gdata_Photos_AlbumEntry*< 3Zend_Gdata_MimeFile*; ?Zend_Gdata_MimeBodyString*: AZend_Gdata_MediaMimeStream*9 -Zend_Gdata_Media*8 7Zend_Gdata_Media_Feed**7 WZend_Gdata_Media_Extension_MediaTitle*.6 _Zend_Gdata_Media_Extension_MediaThumbnail*)5 UZend_Gdata_Media_Extension_MediaText*04 cZend_Gdata_Media_Extension_MediaRestriction*+3 YZend_Gdata_Media_Extension_MediaRating*+2 YZend_Gdata_Media_Extension_MediaPlayer*-1 ]Zend_Gdata_Media_Extension_MediaKeywords*)0 UZend_Gdata_Media_Extension_MediaHash**/ WZend_Gdata_Media_Extension_MediaGroup*0. cZend_Gdata_Media_Extension_MediaDescription*+- YZend_Gdata_Media_Extension_MediaCredit*., _Zend_Gdata_Media_Extension_MediaCopyright*,+ [Zend_Gdata_Media_Extension_MediaContent*-* ]Zend_Gdata_Media_Extension_MediaCategory*) 9Zend_Gdata_Media_Entry*( AZend_Gdata_Kind_EventEntry*' 7Zend_Gdata_HttpClient**& WZend_Gdata_HttpAdapterStreamingSocket*)% UZend_Gdata_HttpAdapterStreamingProxy*$ /Zend_Gdata_Health*# ;Zend_Gdata_Health_Query*&" OZend_Gdata_Health_ProfileListFeed*'! QZend_Gdata_Health_ProfileListEntry*"  GZend_Gdata_Health_ProfileFeed*# IZend_Gdata_Health_ProfileEntry*$ KZend_Gdata_Health_Extension_Ccr* )Zend_Gdata_Geo* 3Zend_Gdata_Geo_Feed*$ KZend_Gdata_Geo_Extension_GmlPos*& OZend_Gdata_Geo_Extension_GmlPoint*) UZend_Gdata_Geo_Extension_GeoRssWhere* 5Zend_Gdata_Geo_Entry* -Zend_Gdata_Gbase*" GZend_Gdata_Gbase_SnippetQuery*! EZend_Gdata_Gbase_SnippetFeed*" GZend_Gdata_Gbase_SnippetEntry* 9Zend_Gdata_Gbase_Query* AZend_Gdata_Gbase_ItemQuery* ?Zend_Gdata_Gbase_ItemFeed* AZend_Gdata_Gbase_ItemEntry* 7Zend_Gdata_Gbase_Feed*- ]Zend_Gdata_Gbase_Extension_BaseAttribute* 9Zend_Gdata_Gbase_Entry* -Zend_Gdata_Gapps* AZend_Gdata_Gapps_UserQuery*
 ?Zend_Gdata_Gapps_UserFeed*	 AZend_Gdata_Gapps_UserEntry*& OZend_Gdata_Gapps_ServiceException* 9Zend_Gdata_Gapps_Query*# IZend_Gdata_Gapps_NicknameQuery*" GZend_Gdata_Gapps_NicknameFeed*# IZend_Gdata_Gapps_NicknameEntry*% MZend_Gdata_Gapps_Extension_Quota*( SZend_Gdata_Gapps_Extension_Nickname*$ KZend_Gdata_Gapps_Extension_Name*%  MZend_Gdata_Gapps_Extension_Login*) UZend_Gdata_Gapps_Extension_EmailList*~ 9Zend_Gdata_Gapps_Error*-} ]Zend_Gdata_Gapps_EmailListRecipientQuery*,| [Zend_Gdata_Gapps_EmailListRecipientFeed*-{ ]Zend_Gdata_Gapps_EmailListRecipientEntry*$z KZend_Gdata_Gapps_EmailListQuery*#y IZend_Gdata_Gapps_EmailListFeed*$x KZend_Gdata_Gapps_EmailListEntry*w +Zend_Gdata_Feed*v 5Zend_Gdata_Extension*u =Zend_Gdata_Extension_Who*t AZend_Gdata_Extension_Where*s ?Zend_Gdata_Extension_When*$r KZend_Gdata_Extension_Visibility*&q OZend_Gdata_Extension_Transparency*"p GZend_Gdata_Extension_Reminder*-o ]Zend_Gdata_Extension_RecurrenceException*$n KZend_Gdata_Extension_Recurrence* m CZend_Gdata_Extension_Rating*'l QZend_Gdata_Extension_OriginalEvent*0k cZend_Gdata_Extension_OpenSearchTotalResults*.j _Zend_Gdata_Extension_OpenSearchStartIndex*0i cZend_Gdata_Extension_OpenSearchItemsPerPage*"h GZend_Gdata_Extension_FeedLink**g WZend_Gdata_Extension_ExtendedProperty*%f MZend_Gdata_Extension_EventStatus*#e IZend_Gdata_Extension_EntryLink*"d GZend_Gdata_Extension_Comments*&c OZend_Gdata_Extension_AttendeeType*(b SZend_Gdata_Extension_AttendeeStatus*a +Zend_Gdata_Exif*` 5Zend_Gdata_Exif_Feed*#_ IZend_Gdata_Exif_Extension_Time*#^ IZend_Gdata_Exif_Extension_Tags*$] KZend_Gdata_Exif_Extension_Model*   Y  T'jC\%l?e:




[
8
					d	6	pFc5uM&xKb5Of9	xK          * WZend_Gdata_YouTube_Extension_Recorded*& OZend_Gdata_YouTube_Extension_Racy*- ]Zend_Gdata_YouTube_Extension_QueryString*) UZend_Gdata_YouTube_Extension_Private** WZend_Gdata_YouTube_Extension_Position*/ aZend_Gdata_YouTube_Extension_PlaylistTitle*, [Zend_Gdata_YouTube_Extension_PlaylistId*, [Zend_Gdata_YouTube_Extension_Occupation*) UZend_Gdata_YouTube_Extension_NoEmbed*' QZend_Gdata_YouTube_Extension_Music*( SZend_Gdata_YouTube_Extension_Movies*- ]Zend_Gdata_YouTube_Extension_MediaRating*, [Zend_Gdata_YouTube_Extension_MediaGroup*- ]Zend_Gdata_YouTube_Extension_MediaCredit*.
 _Zend_Gdata_YouTube_Extension_MediaContent**	 WZend_Gdata_YouTube_Extension_Location*& OZend_Gdata_YouTube_Extension_Link** WZend_Gdata_YouTube_Extension_LastName** WZend_Gdata_YouTube_Extension_Hometown*) UZend_Gdata_YouTube_Extension_Hobbies*( SZend_Gdata_YouTube_Extension_Gender*+ YZend_Gdata_YouTube_Extension_FirstName** WZend_Gdata_YouTube_Extension_Duration*- ]Zend_Gdata_YouTube_Extension_Description*+  YZend_Gdata_YouTube_Extension_CountHint*) UZend_Gdata_YouTube_Extension_Control*)~ UZend_Gdata_YouTube_Extension_Company*'} QZend_Gdata_YouTube_Extension_Books*%| MZend_Gdata_YouTube_Extension_Age*){ UZend_Gdata_YouTube_Extension_AboutMe*#z IZend_Gdata_YouTube_ContactFeed*$y KZend_Gdata_YouTube_ContactEntry*#x IZend_Gdata_YouTube_CommentFeed*$w KZend_Gdata_YouTube_CommentEntry*$v KZend_Gdata_YouTube_ActivityFeed*%u MZend_Gdata_YouTube_ActivityEntry*t ;Zend_Gdata_Spreadsheets**s WZend_Gdata_Spreadsheets_WorksheetFeed*+r YZend_Gdata_Spreadsheets_WorksheetEntry*,q [Zend_Gdata_Spreadsheets_SpreadsheetFeed*-p ]Zend_Gdata_Spreadsheets_SpreadsheetEntry*&o OZend_Gdata_Spreadsheets_ListQuery*%n MZend_Gdata_Spreadsheets_ListFeed*&m OZend_Gdata_Spreadsheets_ListEntry*/l aZend_Gdata_Spreadsheets_Extension_RowCount*-k ]Zend_Gdata_Spreadsheets_Extension_Custom*/j aZend_Gdata_Spreadsheets_Extension_ColCount*+i YZend_Gdata_Spreadsheets_Extension_Cell**h WZend_Gdata_Spreadsheets_DocumentQuery*&g OZend_Gdata_Spreadsheets_CellQuery*%f MZend_Gdata_Spreadsheets_CellFeed*&e OZend_Gdata_Spreadsheets_CellEntry*d -Zend_Gdata_Query*c /Zend_Gdata_Photos* b CZend_Gdata_Photos_UserQuery*a AZend_Gdata_Photos_UserFeed* ` CZend_Gdata_Photos_UserEntry*_ AZend_Gdata_Photos_TagEntry*!^ EZend_Gdata_Photos_PhotoQuery* ] CZend_Gdata_Photos_PhotoFeed*!\ EZend_Gdata_Photos_PhotoEntry*&[ OZend_Gdata_Photos_Extension_Width*'Z QZend_Gdata_Photos_Extension_Weight*(Y SZend_Gdata_Photos_Extension_Version*%X MZend_Gdata_Photos_Extension_User**W WZend_Gdata_Photos_Extension_Timestamp**V WZend_Gdata_Photos_Extension_Thumbnail*%U MZend_Gdata_Photos_Extension_Size*)T UZend_Gdata_Photos_Extension_Rotation*+S YZend_Gdata_Photos_Extension_QuotaLimit*-R ]Zend_Gdata_Photos_Extension_QuotaCurrent*)Q UZend_Gdata_Photos_Extension_Position*(P SZend_Gdata_Photos_Extension_PhotoId*3O iZend_Gdata_Photos_Extension_NumPhotosRemaining**N WZend_Gdata_Photos_Extension_NumPhotos*)M UZend_Gdata_Photos_Extension_Nickname*%L MZend_Gdata_Photos_Extension_Name*2K gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum*)J UZend_Gdata_Photos_Extension_Location*#I IZend_Gdata_Photos_Extension_Id*'H QZend_Gdata_Photos_Extension_Height*2G gZend_Gdata_Photos_Extension_CommentingEnabled*-F ]Zend_Gdata_Photos_Extension_CommentCount*'E QZend_Gdata_Photos_Extension_Client*)D UZend_Gdata_Photos_Extension_Checksum**C WZend_Gdata_Photos_Extension_BytesUsed*(B SZend_Gdata_Photos_Extension_AlbumId*'A QZend_Gdata_Photos_Extension_Access*#@ IZend_Gdata_Photos_CommentEntry*   g  qFc6l>fA uM'




x
]
7
				Q	|\3e>yLpMa>lSAdG+wY<                     -Zend_Ldap_Filter*~ ;Zend_Ldap_Filter_String*} 3Zend_Ldap_Filter_Or*| 5Zend_Ldap_Filter_Not*{ 7Zend_Ldap_Filter_Mask*z =Zend_Ldap_Filter_Logical*y AZend_Ldap_Filter_Exception*x 5Zend_Ldap_Filter_And*w ?Zend_Ldap_Filter_Abstract*v 3Zend_Ldap_Exception*u %Zend_Ldap_Dn*t 3Zend_Ldap_Converter*s 5Zend_Ldap_Collection**r WZend_Ldap_Collection_Iterator_Default*q 3Zend_Ldap_Attribute*p #Zend_Layout*o 7Zend_Layout_Exception*)n UZend_Layout_Controller_Plugin_Layout*0m cZend_Layout_Controller_Action_Helper_Layout*l Zend_Json*k -Zend_Json_Server*j 5Zend_Json_Server_Smd*!i EZend_Json_Server_Smd_Service*h ?Zend_Json_Server_Response*#g IZend_Json_Server_Response_Http*f =Zend_Json_Server_Request*"e GZend_Json_Server_Request_Http*d AZend_Json_Server_Exception*c 9Zend_Json_Server_Error*b 9Zend_Json_Server_Cache*a )Zend_Json_Expr*` 3Zend_Json_Exception*_ /Zend_Json_Encoder*^ /Zend_Json_Decoder*] 'Zend_InfoCard*-\ ]Zend_InfoCard_Xml_SecurityTokenReference*[ AZend_InfoCard_Xml_Security*)Z UZend_InfoCard_Xml_Security_Transform*4Y kZend_InfoCard_Xml_Security_Transform_XmlExcC14N*3X iZend_InfoCard_Xml_Security_Transform_Exception*<W {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignature*)V UZend_InfoCard_Xml_Security_Exception*U ?Zend_InfoCard_Xml_KeyInfo*&T OZend_InfoCard_Xml_KeyInfo_XmlDSig*&S OZend_InfoCard_Xml_KeyInfo_Default*'R QZend_InfoCard_Xml_KeyInfo_Abstract* Q CZend_InfoCard_Xml_Exception*#P IZend_InfoCard_Xml_EncryptedKey*$O KZend_InfoCard_Xml_EncryptedData*+N YZend_InfoCard_Xml_EncryptedData_XmlEnc*-M ]Zend_InfoCard_Xml_EncryptedData_Abstract*L ?Zend_InfoCard_Xml_Element* K CZend_InfoCard_Xml_Assertion*%J MZend_InfoCard_Xml_Assertion_Saml*I ;Zend_InfoCard_Exception*%H MZend_InfoCard_Exception_Abstract*G 5Zend_InfoCard_Claims*F 5Zend_InfoCard_Cipher*5E mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc*5D mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc*4C kZend_InfoCard_Cipher_Symmetric_Adapter_Abstract*)B UZend_InfoCard_Cipher_Pki_Adapter_Rsa*.A _Zend_InfoCard_Cipher_Pki_Adapter_Abstract*#@ IZend_InfoCard_Cipher_Exception*$? KZend_InfoCard_Adapter_Exception*"> GZend_InfoCard_Adapter_Default*= 1Zend_Http_Response*< ?Zend_Http_Response_Stream*; 3Zend_Http_Exception*: 3Zend_Http_CookieJar*9 -Zend_Http_Cookie*8 -Zend_Http_Client*7 AZend_Http_Client_Exception*"6 GZend_Http_Client_Adapter_Test*$5 KZend_Http_Client_Adapter_Socket*#4 IZend_Http_Client_Adapter_Proxy*'3 QZend_Http_Client_Adapter_Exception*"2 GZend_Http_Client_Adapter_Curl*1 !Zend_Gdata*0 1Zend_Gdata_YouTube*"/ GZend_Gdata_YouTube_VideoQuery*!. EZend_Gdata_YouTube_VideoFeed*"- GZend_Gdata_YouTube_VideoEntry*(, SZend_Gdata_YouTube_UserProfileEntry*(+ SZend_Gdata_YouTube_SubscriptionFeed*)* UZend_Gdata_YouTube_SubscriptionEntry*)) UZend_Gdata_YouTube_PlaylistVideoFeed**( WZend_Gdata_YouTube_PlaylistVideoEntry*(' SZend_Gdata_YouTube_PlaylistListFeed*)& UZend_Gdata_YouTube_PlaylistListEntry*"% GZend_Gdata_YouTube_MediaEntry*!$ EZend_Gdata_YouTube_InboxFeed*"# GZend_Gdata_YouTube_InboxEntry*)" UZend_Gdata_YouTube_Extension_VideoId**! WZend_Gdata_YouTube_Extension_Username**  WZend_Gdata_YouTube_Extension_Uploaded*' QZend_Gdata_YouTube_Extension_Token*( SZend_Gdata_YouTube_Extension_Status*, [Zend_Gdata_YouTube_Extension_Statistics*' QZend_Gdata_YouTube_Extension_State*( SZend_Gdata_YouTube_Extension_School*- ]Zend_Gdata_YouTube_Extension_ReleaseDate*. _Zend_Gdata_YouTube_Extension_Relationship*   u  wHm8cL:uP7rQ1




j
O
/
					v	e	I	*	tT'jA{P6uS.z\H*rN1z_@sR8    #t IZend_Measure_Viscosity_Dynamic*s 3Zend_Measure_Torque*r /Zend_Measure_Time*q =Zend_Measure_Temperature*p 1Zend_Measure_Speed*o 7Zend_Measure_Pressure*n 1Zend_Measure_Power*m 3Zend_Measure_Number*l 9Zend_Measure_Lightness*k 3Zend_Measure_Length*j ?Zend_Measure_Illumination*i 9Zend_Measure_Frequency*h 1Zend_Measure_Force*g =Zend_Measure_Flow_Volume*f 9Zend_Measure_Flow_Mole*e 9Zend_Measure_Flow_Mass*d 9Zend_Measure_Exception*c 3Zend_Measure_Energy*b 5Zend_Measure_Density*a 5Zend_Measure_Current* ` CZend_Measure_Cooking_Weight* _ CZend_Measure_Cooking_Volume*^ =Zend_Measure_Capacitance*] 3Zend_Measure_Binary*\ /Zend_Measure_Area*[ 1Zend_Measure_Angle*Z ?Zend_Measure_Acceleration*Y 7Zend_Measure_Abstract*X #Zend_Markup*W 7Zend_Markup_TokenList*V /Zend_Markup_Token**U WZend_Markup_Renderer_RendererAbstract*T ?Zend_Markup_Renderer_Html*#S IZend_Markup_Renderer_Exception*R AZend_Markup_Parser_Textile*!Q EZend_Markup_Parser_Exception*P ?Zend_Markup_Parser_Bbcode*O 7Zend_Markup_Exception*N Zend_Mail*M =Zend_Mail_Transport_Smtp*!L EZend_Mail_Transport_Sendmail*"K GZend_Mail_Transport_Exception*!J EZend_Mail_Transport_Abstract*I /Zend_Mail_Storage*'H QZend_Mail_Storage_Writable_Maildir*G 9Zend_Mail_Storage_Pop3*F 9Zend_Mail_Storage_Mbox*E ?Zend_Mail_Storage_Maildir*D 9Zend_Mail_Storage_Imap*C =Zend_Mail_Storage_Folder*"B GZend_Mail_Storage_Folder_Mbox*%A MZend_Mail_Storage_Folder_Maildir* @ CZend_Mail_Storage_Exception*? AZend_Mail_Storage_Abstract*> ;Zend_Mail_Protocol_Smtp*'= QZend_Mail_Protocol_Smtp_Auth_Plain*'< QZend_Mail_Protocol_Smtp_Auth_Login*); UZend_Mail_Protocol_Smtp_Auth_Crammd5*: ;Zend_Mail_Protocol_Pop3*9 ;Zend_Mail_Protocol_Imap*!8 EZend_Mail_Protocol_Exception* 7 CZend_Mail_Protocol_Abstract*6 )Zend_Mail_Part*5 3Zend_Mail_Part_File*4 /Zend_Mail_Message*3 9Zend_Mail_Message_File*2 3Zend_Mail_Exception*1 Zend_Log* 0 CZend_Log_Writer_ZendMonitor*/ 9Zend_Log_Writer_Syslog*. 9Zend_Log_Writer_Stream*- 5Zend_Log_Writer_Null*, 5Zend_Log_Writer_Mock*+ 5Zend_Log_Writer_Mail** ;Zend_Log_Writer_Firebug*) 1Zend_Log_Writer_Db*( =Zend_Log_Writer_Abstract*' 9Zend_Log_Formatter_Xml*& ?Zend_Log_Formatter_Simple*% AZend_Log_Formatter_Firebug*$ =Zend_Log_Filter_Suppress*# =Zend_Log_Filter_Priority*" ;Zend_Log_Filter_Message*! =Zend_Log_Filter_Abstract*  1Zend_Log_Exception* #Zend_Locale* -Zend_Locale_Math* =Zend_Locale_Math_PhpMath* AZend_Locale_Math_Exception* 1Zend_Locale_Format* 7Zend_Locale_Exception* -Zend_Locale_Data*! EZend_Locale_Data_Translation* #Zend_Loader* =Zend_Loader_PluginLoader*' QZend_Loader_PluginLoader_Exception* 7Zend_Loader_Exception* 9Zend_Loader_Autoloader*$ KZend_Loader_Autoloader_Resource* Zend_Ldap* )Zend_Ldap_Node* 7Zend_Ldap_Node_Schema*# IZend_Ldap_Node_Schema_OpenLdap*/ aZend_Ldap_Node_Schema_ObjectClass_OpenLdap*6 oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectory* AZend_Ldap_Node_Schema_Item*1
 eZend_Ldap_Node_Schema_AttributeType_OpenLdap*8	 sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory** WZend_Ldap_Node_Schema_ActiveDirectory* 9Zend_Ldap_Node_RootDse*$ KZend_Ldap_Node_RootDse_OpenLdap*& OZend_Ldap_Node_RootDse_eDirectory*+ YZend_Ldap_Node_RootDse_ActiveDirectory* ?Zend_Ldap_Node_Collection*$ KZend_Ldap_Node_ChildrenIterator* ;Zend_Ldap_Node_Abstract*  9Zend_Ldap_Ldif_Encoder*   q  zU/tZC1vL'
\2e=



r
D
						c	@	~Z<]<jG1_3nC |X:`=w\)                      &e OZend_Pdf_FileParser_Font_OpenType*/d aZend_Pdf_FileParser_Font_OpenType_TrueType*c 1Zend_Pdf_Exception*b ;Zend_Pdf_ElementFactory*"a GZend_Pdf_ElementFactory_Proxy*` -Zend_Pdf_Element*_ ;Zend_Pdf_Element_String*#^ IZend_Pdf_Element_String_Binary*] ;Zend_Pdf_Element_Stream*\ AZend_Pdf_Element_Reference*%[ MZend_Pdf_Element_Reference_Table*'Z QZend_Pdf_Element_Reference_Context*Y ;Zend_Pdf_Element_Object*#X IZend_Pdf_Element_Object_Stream*W =Zend_Pdf_Element_Numeric*V 7Zend_Pdf_Element_Null*U 7Zend_Pdf_Element_Name* T CZend_Pdf_Element_Dictionary*S =Zend_Pdf_Element_Boolean*R 9Zend_Pdf_Element_Array*Q 5Zend_Pdf_Destination*P ?Zend_Pdf_Destination_Zoom*!O EZend_Pdf_Destination_Unknown*N AZend_Pdf_Destination_Named*'M QZend_Pdf_Destination_FitVertically*&L OZend_Pdf_Destination_FitRectangle*)K UZend_Pdf_Destination_FitHorizontally*2J gZend_Pdf_Destination_FitBoundingBoxVertically*4I kZend_Pdf_Destination_FitBoundingBoxHorizontally*(H SZend_Pdf_Destination_FitBoundingBox*G =Zend_Pdf_Destination_Fit*"F GZend_Pdf_Destination_Explicit*E )Zend_Pdf_Color*D 1Zend_Pdf_Color_Rgb*C 3Zend_Pdf_Color_Html*B =Zend_Pdf_Color_GrayScale*A 3Zend_Pdf_Color_Cmyk*@ 'Zend_Pdf_Cmap*? AZend_Pdf_Cmap_TrimmedTable*!> EZend_Pdf_Cmap_SegmentToDelta*= AZend_Pdf_Cmap_ByteEncoding*&< OZend_Pdf_Cmap_ByteEncoding_Static*; 3Zend_Pdf_Annotation*: =Zend_Pdf_Annotation_Text*9 AZend_Pdf_Annotation_Markup*8 =Zend_Pdf_Annotation_Link*'7 QZend_Pdf_Annotation_FileAttachment*6 +Zend_Pdf_Action*5 3Zend_Pdf_Action_URI*4 ;Zend_Pdf_Action_Unknown*3 7Zend_Pdf_Action_Trans*2 9Zend_Pdf_Action_Thread*1 AZend_Pdf_Action_SubmitForm*0 7Zend_Pdf_Action_Sound* / CZend_Pdf_Action_SetOCGState*. ?Zend_Pdf_Action_ResetForm*- ?Zend_Pdf_Action_Rendition*, 7Zend_Pdf_Action_Named*+ 7Zend_Pdf_Action_Movie** 9Zend_Pdf_Action_Launch*) AZend_Pdf_Action_JavaScript*( AZend_Pdf_Action_ImportData*' 5Zend_Pdf_Action_Hide*& 7Zend_Pdf_Action_GoToR*% 7Zend_Pdf_Action_GoToE*$ AZend_Pdf_Action_GoTo3DView*# 5Zend_Pdf_Action_GoTo*" )Zend_Paginator*-! ]Zend_Paginator_SerializableLimitIterator**  WZend_Paginator_ScrollingStyle_Sliding** WZend_Paginator_ScrollingStyle_Jumping** WZend_Paginator_ScrollingStyle_Elastic*& OZend_Paginator_ScrollingStyle_All* =Zend_Paginator_Exception*  CZend_Paginator_Adapter_Null*$ KZend_Paginator_Adapter_Iterator*) UZend_Paginator_Adapter_DbTableSelect*$ KZend_Paginator_Adapter_DbSelect*! EZend_Paginator_Adapter_Array* #Zend_OpenId* 5Zend_OpenId_Provider* ?Zend_OpenId_Provider_User*& OZend_OpenId_Provider_User_Session*! EZend_OpenId_Provider_Storage*& OZend_OpenId_Provider_Storage_File* 7Zend_OpenId_Extension* AZend_OpenId_Extension_Sreg* 7Zend_OpenId_Exception* 5Zend_OpenId_Consumer*! EZend_OpenId_Consumer_Storage*& OZend_OpenId_Consumer_Storage_File*
 +Zend_Navigation*	 5Zend_Navigation_Page* =Zend_Navigation_Page_Uri* =Zend_Navigation_Page_Mvc* ?Zend_Navigation_Exception* ?Zend_Navigation_Container* Zend_Mime* )Zend_Mime_Part* /Zend_Mime_Message* 3Zend_Mime_Exception*  -Zend_Mime_Decode* #Zend_Memory*~ /Zend_Memory_Value*} 3Zend_Memory_Manager*| 7Zend_Memory_Exception*{ 7Zend_Memory_Container*"z GZend_Memory_Container_Movable*!y EZend_Memory_Container_Locked*!x EZend_Memory_AccessController*w 3Zend_Measure_Weight*v 3Zend_Measure_Volume*%u MZend_Measure_Viscosity_Kinematic*   f  {P#jF$mUp:Y


`
 			r	7lG(sY;$zQ&yU*	|\0bC0uS1{X.      K 5Zend_Rest_Controller*J -Zend_Rest_Client*I ;Zend_Rest_Client_Result*&H OZend_Rest_Client_Result_Exception*G AZend_Rest_Client_Exception*F 'Zend_Registry*E =Zend_Reflection_Property*D ?Zend_Reflection_Parameter*C 9Zend_Reflection_Method*B =Zend_Reflection_Function*A 5Zend_Reflection_File*@ ?Zend_Reflection_Extension*? ?Zend_Reflection_Exception*> =Zend_Reflection_Docblock*!= EZend_Reflection_Docblock_Tag*(< SZend_Reflection_Docblock_Tag_Return*'; QZend_Reflection_Docblock_Tag_Param*: 7Zend_Reflection_Class*9 !Zend_Queue*8 9Zend_Queue_Stomp_Frame*7 ;Zend_Queue_Stomp_Client*'6 QZend_Queue_Stomp_Client_Connection*5 1Zend_Queue_Message*#4 IZend_Queue_Message_PlatformJob* 3 CZend_Queue_Message_Iterator*2 5Zend_Queue_Exception*(1 SZend_Queue_Adapter_PlatformJobQueue*0 ;Zend_Queue_Adapter_Null*!/ EZend_Queue_Adapter_Memcacheq*. 7Zend_Queue_Adapter_Db* - CZend_Queue_Adapter_Db_Queue*", GZend_Queue_Adapter_Db_Message*+ =Zend_Queue_Adapter_Array*'* QZend_Queue_Adapter_AdapterAbstract* ) CZend_Queue_Adapter_Activemq*( -Zend_ProgressBar*' AZend_ProgressBar_Exception*& =Zend_ProgressBar_Adapter*$% KZend_ProgressBar_Adapter_JsPush*$$ KZend_ProgressBar_Adapter_JsPull*'# QZend_ProgressBar_Adapter_Exception*%" MZend_ProgressBar_Adapter_Console*! Zend_Pdf*!  EZend_Pdf_UpdateInfoContainer* -Zend_Pdf_Trailer* ;Zend_Pdf_Trailer_Keeper* AZend_Pdf_Trailer_Generator* +Zend_Pdf_Target* )Zend_Pdf_Style* 7Zend_Pdf_StringParser* /Zend_Pdf_Resource*# IZend_Pdf_Resource_ImageFactory* ;Zend_Pdf_Resource_Image*! EZend_Pdf_Resource_Image_Tiff*  CZend_Pdf_Resource_Image_Png*! EZend_Pdf_Resource_Image_Jpeg* 9Zend_Pdf_Resource_Font*! EZend_Pdf_Resource_Font_Type0*" GZend_Pdf_Resource_Font_Simple*+ YZend_Pdf_Resource_Font_Simple_Standard*8 sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats*6 oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman*7 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic*; yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic*5 mZend_Pdf_Resource_Font_Simple_Standard_TimesBold*2
 gZend_Pdf_Resource_Font_Simple_Standard_Symbol*<	 {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaOblique*A Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique*9 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold*5 mZend_Pdf_Resource_Font_Simple_Standard_Helvetica*: wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique*> Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique*7 qZend_Pdf_Resource_Font_Simple_Standard_CourierBold*3 iZend_Pdf_Resource_Font_Simple_Standard_Courier*) UZend_Pdf_Resource_Font_Simple_Parsed*2  gZend_Pdf_Resource_Font_Simple_Parsed_TrueType** WZend_Pdf_Resource_Font_FontDescriptor*%~ MZend_Pdf_Resource_Font_Extracted*#} IZend_Pdf_Resource_Font_CidFont*,| [Zend_Pdf_Resource_Font_CidFont_TrueType*3{ iZend_Pdf_RecursivelyIteratableObjectsContainer*z +Zend_Pdf_Parser*y 'Zend_Pdf_Page*x -Zend_Pdf_Outline*w ;Zend_Pdf_Outline_Loaded*v =Zend_Pdf_Outline_Created*u /Zend_Pdf_NameTree*t )Zend_Pdf_Image*s 'Zend_Pdf_Font*r ?Zend_Pdf_Filter_RunLength* q CZend_Pdf_Filter_Compression*$p KZend_Pdf_Filter_Compression_Lzw*&o OZend_Pdf_Filter_Compression_Flate*n =Zend_Pdf_Filter_AsciiHex*m ;Zend_Pdf_Filter_Ascii85*"l GZend_Pdf_FileParserDataSource*)k UZend_Pdf_FileParserDataSource_String*'j QZend_Pdf_FileParserDataSource_File*i 3Zend_Pdf_FileParser*h ?Zend_Pdf_FileParser_Image*"g GZend_Pdf_FileParser_Image_Png*f =Zend_Pdf_FileParser_Font*   Q  r(fZ&W[2



k
J
+
			}	P	!xR(rI(V(UyLW*o8xI                * WZend_Search_Lucene_Search_Weight_Term*, [Zend_Search_Lucene_Search_Weight_Phrase*/ aZend_Search_Lucene_Search_Weight_MultiTerm*+ YZend_Search_Lucene_Search_Weight_Empty*- ]Zend_Search_Lucene_Search_Weight_Boolean*) UZend_Search_Lucene_Search_Similarity*1 eZend_Search_Lucene_Search_Similarity_Default*) UZend_Search_Lucene_Search_QueryToken*3 iZend_Search_Lucene_Search_QueryParserException*1 eZend_Search_Lucene_Search_QueryParserContext** WZend_Search_Lucene_Search_QueryParser*) UZend_Search_Lucene_Search_QueryLexer*' QZend_Search_Lucene_Search_QueryHit*) UZend_Search_Lucene_Search_QueryEntry*. _Zend_Search_Lucene_Search_QueryEntry_Term*2 gZend_Search_Lucene_Search_QueryEntry_Subquery*0 cZend_Search_Lucene_Search_QueryEntry_Phrase*$ KZend_Search_Lucene_Search_Query*-
 ]Zend_Search_Lucene_Search_Query_Wildcard*)	 UZend_Search_Lucene_Search_Query_Term** WZend_Search_Lucene_Search_Query_Range*2 gZend_Search_Lucene_Search_Query_Preprocessing*7 qZend_Search_Lucene_Search_Query_Preprocessing_Term*9 uZend_Search_Lucene_Search_Query_Preprocessing_Phrase*8 sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy*+ YZend_Search_Lucene_Search_Query_Phrase*. _Zend_Search_Lucene_Search_Query_MultiTerm*2 gZend_Search_Lucene_Search_Query_Insignificant**  WZend_Search_Lucene_Search_Query_Fuzzy** WZend_Search_Lucene_Search_Query_Empty*,~ [Zend_Search_Lucene_Search_Query_Boolean*2} gZend_Search_Lucene_Search_Highlighter_Default*:| wZend_Search_Lucene_Search_BooleanExpressionRecognizer*{ =Zend_Search_Lucene_Proxy*%z MZend_Search_Lucene_PriorityQueue*/y aZend_Search_Lucene_Interface_MultiSearcher*#x IZend_Search_Lucene_LockManager*$w KZend_Search_Lucene_Index_Writer*0v cZend_Search_Lucene_Index_TermsPriorityQueue*&u OZend_Search_Lucene_Index_TermInfo*"t GZend_Search_Lucene_Index_Term*+s YZend_Search_Lucene_Index_SegmentWriter*8r sZend_Search_Lucene_Index_SegmentWriter_StreamWriter*:q wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter*+p YZend_Search_Lucene_Index_SegmentMerger*)o UZend_Search_Lucene_Index_SegmentInfo*'n QZend_Search_Lucene_Index_FieldInfo*(m SZend_Search_Lucene_Index_DocsFilter*.l _Zend_Search_Lucene_Index_DictionaryLoader*!k EZend_Search_Lucene_FSMAction*j 9Zend_Search_Lucene_FSM*i =Zend_Search_Lucene_Field*!h EZend_Search_Lucene_Exception* g CZend_Search_Lucene_Document*%f MZend_Search_Lucene_Document_Xlsx*%e MZend_Search_Lucene_Document_Pptx*(d SZend_Search_Lucene_Document_OpenXml*%c MZend_Search_Lucene_Document_Html**b WZend_Search_Lucene_Document_Exception*%a MZend_Search_Lucene_Document_Docx*,` [Zend_Search_Lucene_Analysis_TokenFilter*6_ oZend_Search_Lucene_Analysis_TokenFilter_StopWords*7^ qZend_Search_Lucene_Analysis_TokenFilter_ShortWords*:] wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8*6\ oZend_Search_Lucene_Analysis_TokenFilter_LowerCase*&[ OZend_Search_Lucene_Analysis_Token*)Z UZend_Search_Lucene_Analysis_Analyzer*0Y cZend_Search_Lucene_Analysis_Analyzer_Common*8X sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num*IW Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive*5V mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8*FU Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive*8T sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum*IS Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive*5R mZend_Search_Lucene_Analysis_Analyzer_Common_Text*FQ Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive*P 7Zend_Search_Exception*O -Zend_Rest_Server*N AZend_Rest_Server_Exception*M +Zend_Rest_Route*L 3Zend_Rest_Exception*   e  r?|bC%lCwN#|Q(



}
S
-				y	R	)fEc=i@jG!oBuM%~[<tY/                     ;Zend_Service_SlideShare*&  OZend_Service_SlideShare_SlideShow*& OZend_Service_SlideShare_Exception*~ 1Zend_Service_Simpy*$} KZend_Service_Simpy_WatchlistSet**| WZend_Service_Simpy_WatchlistFilterSet*'{ QZend_Service_Simpy_WatchlistFilter*!z EZend_Service_Simpy_Watchlist*y ?Zend_Service_Simpy_TagSet*x 9Zend_Service_Simpy_Tag*w AZend_Service_Simpy_NoteSet*v ;Zend_Service_Simpy_Note*u AZend_Service_Simpy_LinkSet*!t EZend_Service_Simpy_LinkQuery*s ;Zend_Service_Simpy_Link*r 9Zend_Service_ReCaptcha*$q KZend_Service_ReCaptcha_Response*$p KZend_Service_ReCaptcha_MailHide*.o _Zend_Service_ReCaptcha_MailHide_Exception*%n MZend_Service_ReCaptcha_Exception*m 7Zend_Service_Nirvanix*#l IZend_Service_Nirvanix_Response*)k UZend_Service_Nirvanix_Namespace_Imfs*)j UZend_Service_Nirvanix_Namespace_Base*$i KZend_Service_Nirvanix_Exception*h 7Zend_Service_LiveDocx*$g KZend_Service_LiveDocx_MailMerge*$f KZend_Service_LiveDocx_Exception*e 3Zend_Service_Flickr*"d GZend_Service_Flickr_ResultSet*c AZend_Service_Flickr_Result*b ?Zend_Service_Flickr_Image*a 9Zend_Service_Exception*` 9Zend_Service_Delicious*&_ OZend_Service_Delicious_SimplePost*$^ KZend_Service_Delicious_PostList* ] CZend_Service_Delicious_Post*%\ MZend_Service_Delicious_Exception* [ CZend_Service_Audioscrobbler*Z 3Zend_Service_Amazon*Y ;Zend_Service_Amazon_Sqs*&X OZend_Service_Amazon_Sqs_Exception*'W QZend_Service_Amazon_SimilarProduct*V 9Zend_Service_Amazon_S3*"U GZend_Service_Amazon_S3_Stream*%T MZend_Service_Amazon_S3_Exception*"S GZend_Service_Amazon_ResultSet*R ?Zend_Service_Amazon_Query*!Q EZend_Service_Amazon_OfferSet*P ?Zend_Service_Amazon_Offer*&O OZend_Service_Amazon_ListmaniaList*N =Zend_Service_Amazon_Item*M ?Zend_Service_Amazon_Image*"L GZend_Service_Amazon_Exception*(K SZend_Service_Amazon_EditorialReview*J ;Zend_Service_Amazon_Ec2*+I YZend_Service_Amazon_Ec2_Securitygroups*%H MZend_Service_Amazon_Ec2_Response*#G IZend_Service_Amazon_Ec2_Region*$F KZend_Service_Amazon_Ec2_Keypair*%E MZend_Service_Amazon_Ec2_Instance*-D ]Zend_Service_Amazon_Ec2_Instance_Windows*.C _Zend_Service_Amazon_Ec2_Instance_Reserved*"B GZend_Service_Amazon_Ec2_Image*&A OZend_Service_Amazon_Ec2_Exception*&@ OZend_Service_Amazon_Ec2_Elasticip* ? CZend_Service_Amazon_Ec2_Ebs*'> QZend_Service_Amazon_Ec2_CloudWatch*.= _Zend_Service_Amazon_Ec2_Availabilityzones*%< MZend_Service_Amazon_Ec2_Abstract*'; QZend_Service_Amazon_CustomerReview*$: KZend_Service_Amazon_Accessories*!9 EZend_Service_Amazon_Abstract*8 5Zend_Service_Akismet*7 7Zend_Service_Abstract*6 9Zend_Server_Reflection*'5 QZend_Server_Reflection_ReturnValue*%4 MZend_Server_Reflection_Prototype*%3 MZend_Server_Reflection_Parameter* 2 CZend_Server_Reflection_Node*"1 GZend_Server_Reflection_Method*$0 KZend_Server_Reflection_Function*-/ ]Zend_Server_Reflection_Function_Abstract*%. MZend_Server_Reflection_Exception*!- EZend_Server_Reflection_Class*!, EZend_Server_Method_Prototype*!+ EZend_Server_Method_Parameter*"* GZend_Server_Method_Definition* ) CZend_Server_Method_Callback*( 7Zend_Server_Exception*' 9Zend_Server_Definition*& /Zend_Server_Cache*% 5Zend_Server_Abstract*$ 1Zend_Search_Lucene*0# cZend_Search_Lucene_TermStreamsPriorityQueue*$" KZend_Search_Lucene_Storage_File*+! YZend_Search_Lucene_Storage_File_Memory*/  aZend_Search_Lucene_Storage_File_Filesystem*) UZend_Search_Lucene_Storage_Directory*4 kZend_Search_Lucene_Storage_Directory_Filesystem*% MZend_Search_Lucene_Search_Weight*   X  V ~Q!b4\/iB

z
B
			l	7UDj:gFsI#\5fG`A!         Y 9Zend_Soap_Client_Local*X AZend_Soap_Client_Exception*W ;Zend_Soap_Client_DotNet*V ;Zend_Soap_Client_Common*U 9Zend_Soap_AutoDiscover*%T MZend_Soap_AutoDiscover_Exception*S %Zend_Session*)R UZend_Session_Validator_HttpUserAgent*$Q KZend_Session_Validator_Abstract*'P QZend_Session_SaveHandler_Exception*%O MZend_Session_SaveHandler_DbTable*N 9Zend_Session_Namespace*M 9Zend_Session_Exception*L 7Zend_Session_Abstract*K 1Zend_Service_Yahoo*$J KZend_Service_Yahoo_WebResultSet*!I EZend_Service_Yahoo_WebResult*&H OZend_Service_Yahoo_VideoResultSet*#G IZend_Service_Yahoo_VideoResult*!F EZend_Service_Yahoo_ResultSet*E ?Zend_Service_Yahoo_Result*)D UZend_Service_Yahoo_PageDataResultSet*&C OZend_Service_Yahoo_PageDataResult*%B MZend_Service_Yahoo_NewsResultSet*"A GZend_Service_Yahoo_NewsResult*&@ OZend_Service_Yahoo_LocalResultSet*#? IZend_Service_Yahoo_LocalResult*+> YZend_Service_Yahoo_InlinkDataResultSet*(= SZend_Service_Yahoo_InlinkDataResult*&< OZend_Service_Yahoo_ImageResultSet*#; IZend_Service_Yahoo_ImageResult*: =Zend_Service_Yahoo_Image*&9 OZend_Service_WindowsAzure_Storage*48 kZend_Service_WindowsAzure_Storage_TableInstance*77 qZend_Service_WindowsAzure_Storage_TableEntityQuery*26 gZend_Service_WindowsAzure_Storage_TableEntity*,5 [Zend_Service_WindowsAzure_Storage_Table*74 qZend_Service_WindowsAzure_Storage_SignedIdentifier*33 iZend_Service_WindowsAzure_Storage_QueueMessage*42 kZend_Service_WindowsAzure_Storage_QueueInstance*,1 [Zend_Service_WindowsAzure_Storage_Queue*90 uZend_Service_WindowsAzure_Storage_DynamicTableEntity*3/ iZend_Service_WindowsAzure_Storage_BlobInstance*4. kZend_Service_WindowsAzure_Storage_BlobContainer*+- YZend_Service_WindowsAzure_Storage_Blob*2, gZend_Service_WindowsAzure_Storage_Blob_Stream*;+ yZend_Service_WindowsAzure_Storage_BatchStorageAbstract*,* [Zend_Service_WindowsAzure_Storage_Batch*-) ]Zend_Service_WindowsAzure_SessionHandler*>( Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract*1' eZend_Service_WindowsAzure_RetryPolicy_RetryN*2& gZend_Service_WindowsAzure_RetryPolicy_NoRetry*4% kZend_Service_WindowsAzure_RetryPolicy_Exception*($ SZend_Service_WindowsAzure_Exception*8# sZend_Service_WindowsAzure_Credentials_SharedKeyLite*4" kZend_Service_WindowsAzure_Credentials_SharedKey*A! Zend_Service_WindowsAzure_Credentials_SharedAccessSignature*>  Zend_Service_WindowsAzure_Credentials_CredentialsAbstract* 5Zend_Service_Twitter*  CZend_Service_Twitter_Search*# IZend_Service_Twitter_Exception* ;Zend_Service_Technorati*# IZend_Service_Technorati_Weblog*" GZend_Service_Technorati_Utils** WZend_Service_Technorati_TagsResultSet*' QZend_Service_Technorati_TagsResult*) UZend_Service_Technorati_TagResultSet*& OZend_Service_Technorati_TagResult*, [Zend_Service_Technorati_SearchResultSet*) UZend_Service_Technorati_SearchResult*& OZend_Service_Technorati_ResultSet*# IZend_Service_Technorati_Result** WZend_Service_Technorati_KeyInfoResult** WZend_Service_Technorati_GetInfoResult*& OZend_Service_Technorati_Exception*1 eZend_Service_Technorati_DailyCountsResultSet*. _Zend_Service_Technorati_DailyCountsResult*, [Zend_Service_Technorati_CosmosResultSet*) UZend_Service_Technorati_CosmosResult*+
 YZend_Service_Technorati_BlogInfoResult*#	 IZend_Service_Technorati_Author* ;Zend_Service_StrikeIron*( SZend_Service_StrikeIron_ZipCodeInfo*2 gZend_Service_StrikeIron_USAddressVerification*- ]Zend_Service_StrikeIron_SalesUseTaxBasic*& OZend_Service_StrikeIron_Exception*& OZend_Service_StrikeIron_Decorator*! EZend_Service_StrikeIron_Base*   Z  a9u^7r[@*yKi<



Q
 				|	Y	@	$	u]=#~P$V}5
e(](|.oB                                               *3 WZend_Tool_Framework_Provider_Abstract*&2 OZend_Tool_Framework_Metadata_Tool*)1 UZend_Tool_Framework_Metadata_Dynamic*'0 QZend_Tool_Framework_Metadata_Basic*,/ [Zend_Tool_Framework_Manifest_Repository*+. YZend_Tool_Framework_Manifest_Exception*1- eZend_Tool_Framework_Loader_IncludePathLoader*J, Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator*++ YZend_Tool_Framework_Loader_BasicLoader*(* SZend_Tool_Framework_Loader_Abstract*") GZend_Tool_Framework_Exception*'( QZend_Tool_Framework_Client_Storage*1' eZend_Tool_Framework_Client_Storage_Directory*(& SZend_Tool_Framework_Client_Response*D% 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator*'$ QZend_Tool_Framework_Client_Request*(# SZend_Tool_Framework_Client_Manifest*9" uZend_Tool_Framework_Client_Interactive_InputResponse*8! sZend_Tool_Framework_Client_Interactive_InputRequest*8  sZend_Tool_Framework_Client_Interactive_InputHandler*) UZend_Tool_Framework_Client_Exception*' QZend_Tool_Framework_Client_Console*D 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Indention*D 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizer*C Zend_Tool_Framework_Client_Console_ResponseDecorator_Blockize*F Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter*0 cZend_Tool_Framework_Client_Console_Manifest*2 gZend_Tool_Framework_Client_Console_HelpSystem*6 oZend_Tool_Framework_Client_Console_ArgumentParser*& OZend_Tool_Framework_Client_Config*( SZend_Tool_Framework_Client_Abstract** WZend_Tool_Framework_Action_Repository*) UZend_Tool_Framework_Action_Exception*$ KZend_Tool_Framework_Action_Base* 'Zend_TimeSync* 1Zend_TimeSync_Sntp* 9Zend_TimeSync_Protocol* /Zend_TimeSync_Ntp* ;Zend_TimeSync_Exception* +Zend_Text_Table* 3Zend_Text_Table_Row*
 ?Zend_Text_Table_Exception*&	 OZend_Text_Table_Decorator_Unicode*$ KZend_Text_Table_Decorator_Ascii* 9Zend_Text_Table_Column* 3Zend_Text_MultiByte* -Zend_Text_Figlet* AZend_Text_Figlet_Exception* 3Zend_Text_Exception*& OZend_Test_PHPUnit_Db_SimpleTester*, [Zend_Test_PHPUnit_Db_Operation_Truncate**  WZend_Test_PHPUnit_Db_Operation_Insert*- ]Zend_Test_PHPUnit_Db_Operation_DeleteAll**~ WZend_Test_PHPUnit_Db_Metadata_Generic*#} IZend_Test_PHPUnit_Db_Exception*,| [Zend_Test_PHPUnit_Db_DataSet_QueryTable*.{ _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet*0z cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet*)y UZend_Test_PHPUnit_Db_DataSet_DbTable**x WZend_Test_PHPUnit_Db_DataSet_DbRowset*$w KZend_Test_PHPUnit_Db_Connection*'v QZend_Test_PHPUnit_DatabaseTestCase*)u UZend_Test_PHPUnit_ControllerTestCase*0t cZend_Test_PHPUnit_Constraint_ResponseHeader**s WZend_Test_PHPUnit_Constraint_Redirect*+r YZend_Test_PHPUnit_Constraint_Exception**q WZend_Test_PHPUnit_Constraint_DomQuery*p 7Zend_Test_DbStatement*o 3Zend_Test_DbAdapter*n /Zend_Tag_ItemList*m 'Zend_Tag_Item*l 1Zend_Tag_Exception*k )Zend_Tag_Cloud*j =Zend_Tag_Cloud_Exception*!i EZend_Tag_Cloud_Decorator_Tag*%h MZend_Tag_Cloud_Decorator_HtmlTag*'g QZend_Tag_Cloud_Decorator_HtmlCloud*'f QZend_Tag_Cloud_Decorator_Exception*#e IZend_Tag_Cloud_Decorator_Cloud*d )Zend_Soap_Wsdl*/c aZend_Soap_Wsdl_Strategy_DefaultComplexType*&b OZend_Soap_Wsdl_Strategy_Composite*0a cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence*/` aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex*$_ KZend_Soap_Wsdl_Strategy_AnyType*%^ MZend_Soap_Wsdl_Strategy_Abstract*] =Zend_Soap_Wsdl_Exception*\ -Zend_Soap_Server*[ AZend_Soap_Server_Exception*Z -Zend_Soap_Client*   H  rC](JN!g0



V
#				U	S{EwBi.}A
GMe/                          6{ oZend_Tool_Project_Context_Zf_ViewFiltersDirectory*Az Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory*2y gZend_Tool_Project_Context_Zf_UploadsDirectory*0x cZend_Tool_Project_Context_Zf_TestsDirectory*7w qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile*@v Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory*1u eZend_Tool_Project_Context_Zf_TestLibraryFile*6t oZend_Tool_Project_Context_Zf_TestLibraryDirectory*:s wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFile*:r wZend_Tool_Project_Context_Zf_TestApplicationDirectory*@q Zend_Tool_Project_Context_Zf_TestApplicationControllerFile*Ep Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory*>o Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile*4n kZend_Tool_Project_Context_Zf_TemporaryDirectory*3m iZend_Tool_Project_Context_Zf_SessionsDirectory*8l sZend_Tool_Project_Context_Zf_SearchIndexesDirectory*<k {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory*8j sZend_Tool_Project_Context_Zf_PublicScriptsDirectory*1i eZend_Tool_Project_Context_Zf_PublicIndexFile*7h qZend_Tool_Project_Context_Zf_PublicImagesDirectory*1g eZend_Tool_Project_Context_Zf_PublicDirectory*5f mZend_Tool_Project_Context_Zf_ProjectProviderFile*2e gZend_Tool_Project_Context_Zf_ModulesDirectory*1d eZend_Tool_Project_Context_Zf_ModuleDirectory*1c eZend_Tool_Project_Context_Zf_ModelsDirectory*+b YZend_Tool_Project_Context_Zf_ModelFile*/a aZend_Tool_Project_Context_Zf_LogsDirectory*2` gZend_Tool_Project_Context_Zf_LocalesDirectory*2_ gZend_Tool_Project_Context_Zf_LibraryDirectory*2^ gZend_Tool_Project_Context_Zf_LayoutsDirectory*8] sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory*2\ gZend_Tool_Project_Context_Zf_LayoutScriptFile*.[ _Zend_Tool_Project_Context_Zf_HtaccessFile*0Z cZend_Tool_Project_Context_Zf_FormsDirectory**Y WZend_Tool_Project_Context_Zf_FormFile*-X ]Zend_Tool_Project_Context_Zf_DbTableFile*2W gZend_Tool_Project_Context_Zf_DbTableDirectory*/V aZend_Tool_Project_Context_Zf_DataDirectory*6U oZend_Tool_Project_Context_Zf_ControllersDirectory*0T cZend_Tool_Project_Context_Zf_ControllerFile*2S gZend_Tool_Project_Context_Zf_ConfigsDirectory*,R [Zend_Tool_Project_Context_Zf_ConfigFile*0Q cZend_Tool_Project_Context_Zf_CacheDirectory*/P aZend_Tool_Project_Context_Zf_BootstrapFile*6O oZend_Tool_Project_Context_Zf_ApplicationDirectory*7N qZend_Tool_Project_Context_Zf_ApplicationConfigFile*/M aZend_Tool_Project_Context_Zf_ApisDirectory*.L _Zend_Tool_Project_Context_Zf_ActionMethod*3K iZend_Tool_Project_Context_Zf_AbstractClassFile*@J Zend_Tool_Project_Context_System_ProjectProvidersDirectory*8I sZend_Tool_Project_Context_System_ProjectProfileFile*6H oZend_Tool_Project_Context_System_ProjectDirectory*)G UZend_Tool_Project_Context_Repository*.F _Zend_Tool_Project_Context_Filesystem_File*3E iZend_Tool_Project_Context_Filesystem_Directory*2D gZend_Tool_Project_Context_Filesystem_Abstract*(C SZend_Tool_Project_Context_Exception*-B ]Zend_Tool_Project_Context_Content_Engine*3A iZend_Tool_Project_Context_Content_Engine_Phtml*;@ yZend_Tool_Project_Context_Content_Engine_CodeGenerator*0? cZend_Tool_Framework_System_Provider_Version*0> cZend_Tool_Framework_System_Provider_Phpinfo*1= eZend_Tool_Framework_System_Provider_Manifest*/< aZend_Tool_Framework_System_Provider_Config*(; SZend_Tool_Framework_System_Manifest*-: ]Zend_Tool_Framework_System_Action_Delete*-9 ]Zend_Tool_Framework_System_Action_Create*!8 EZend_Tool_Framework_Registry*+7 YZend_Tool_Framework_Registry_Exception*+6 YZend_Tool_Framework_Provider_Signature*,5 [Zend_Tool_Framework_Provider_Repository*+4 YZend_Tool_Framework_Provider_Exception*   f  X$c*wL*wJtK!



p
H
				|	Z	7	lU:$iDkF!vX9qT1xV1|]9qO5         a ;Zend_Validate_Identical*` 1Zend_Validate_Iban*_ 9Zend_Validate_Hostname*^ /Zend_Validate_Hex*] ?Zend_Validate_GreaterThan*\ 3Zend_Validate_Float*![ EZend_Validate_File_WordCount*Z ?Zend_Validate_File_Upload*Y ;Zend_Validate_File_Size*X ;Zend_Validate_File_Sha1*!W EZend_Validate_File_NotExists* V CZend_Validate_File_MimeType*U 9Zend_Validate_File_Md5*T AZend_Validate_File_IsImage*$S KZend_Validate_File_IsCompressed*!R EZend_Validate_File_ImageSize*Q ;Zend_Validate_File_Hash*!P EZend_Validate_File_FilesSize*!O EZend_Validate_File_Extension*N ?Zend_Validate_File_Exists*'M QZend_Validate_File_ExcludeMimeType*(L SZend_Validate_File_ExcludeExtension*K =Zend_Validate_File_Crc32*J =Zend_Validate_File_Count*I ;Zend_Validate_Exception*H AZend_Validate_EmailAddress*G 5Zend_Validate_Digits*"F GZend_Validate_Db_RecordExists*$E KZend_Validate_Db_NoRecordExists*D ?Zend_Validate_Db_Abstract*C 1Zend_Validate_Date*B =Zend_Validate_CreditCard*A 3Zend_Validate_Ccnum*@ 9Zend_Validate_Callback*? 7Zend_Validate_Between*> 7Zend_Validate_Barcode*= AZend_Validate_Barcode_Upce*< AZend_Validate_Barcode_Upca*; AZend_Validate_Barcode_Sscc* : CZend_Validate_Barcode_Itf14*!9 EZend_Validate_Barcode_Gtin14*!8 EZend_Validate_Barcode_Gtin13*!7 EZend_Validate_Barcode_Gtin12*6 AZend_Validate_Barcode_Ean8* 5 CZend_Validate_Barcode_Ean14* 4 CZend_Validate_Barcode_Ean13* 3 CZend_Validate_Barcode_Ean12*!2 EZend_Validate_Barcode_Code93*!1 EZend_Validate_Barcode_Code39*!0 EZend_Validate_Barcode_Code25**/ WZend_Validate_Barcode_AdapterAbstract*. 3Zend_Validate_Alpha*- 3Zend_Validate_Alnum*, 9Zend_Validate_Abstract*+ Zend_Uri** 'Zend_Uri_Http*) 1Zend_Uri_Exception*( )Zend_Translate*' 7Zend_Translate_Plural*& =Zend_Translate_Exception*% 9Zend_Translate_Adapter*!$ EZend_Translate_Adapter_XmlTm*!# EZend_Translate_Adapter_Xliff*" AZend_Translate_Adapter_Tmx*! AZend_Translate_Adapter_Tbx*  ?Zend_Translate_Adapter_Qt* AZend_Translate_Adapter_Ini*# IZend_Translate_Adapter_Gettext* AZend_Translate_Adapter_Csv*! EZend_Translate_Adapter_Array*6 oZend_Tool_Project_Utility_ApplicationConfigWriter*$ KZend_Tool_Project_Provider_View*$ KZend_Tool_Project_Provider_Test*/ aZend_Tool_Project_Provider_ProjectProvider*' QZend_Tool_Project_Provider_Project*' QZend_Tool_Project_Provider_Profile*& OZend_Tool_Project_Provider_Module*% MZend_Tool_Project_Provider_Model*( SZend_Tool_Project_Provider_Manifest*& OZend_Tool_Project_Provider_Layout*$ KZend_Tool_Project_Provider_Form*) UZend_Tool_Project_Provider_Exception*' QZend_Tool_Project_Provider_DbTable*) UZend_Tool_Project_Provider_DbAdapter** WZend_Tool_Project_Provider_Controller*+ YZend_Tool_Project_Provider_Application*& OZend_Tool_Project_Provider_Action*(
 SZend_Tool_Project_Provider_Abstract*	 ?Zend_Tool_Project_Profile*' QZend_Tool_Project_Profile_Resource*9 uZend_Tool_Project_Profile_Resource_SearchConstraints*1 eZend_Tool_Project_Profile_Resource_Container*= }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter*5 mZend_Tool_Project_Profile_Iterator_ContextFilter*- ]Zend_Tool_Project_Profile_FileParser_Xml*( SZend_Tool_Project_Profile_Exception*  CZend_Tool_Project_Exception*<  {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory*0 cZend_Tool_Project_Context_Zf_ViewsDirectory*6~ oZend_Tool_Project_Context_Zf_ViewScriptsDirectory*0} cZend_Tool_Project_Context_Zf_ViewScriptFile*6| oZend_Tool_Project_Context_Zf_ViewHelpersDirectory*   j  qR6{eP5rQ/~\8\9




e
A
					m	K	$]3
dCsDiF)U0_0	\4uP/                       K 1Zend_XmlRpc_Server*J ?Zend_XmlRpc_Server_System*I =Zend_XmlRpc_Server_Fault*!H EZend_XmlRpc_Server_Exception*G =Zend_XmlRpc_Server_Cache*F 5Zend_XmlRpc_Response*E ?Zend_XmlRpc_Response_Http*D 3Zend_XmlRpc_Request*C ?Zend_XmlRpc_Request_Stdin*B =Zend_XmlRpc_Request_Http*$A KZend_XmlRpc_Generator_XmlWriter*,@ [Zend_XmlRpc_Generator_GeneratorAbstract*&? OZend_XmlRpc_Generator_DomDocument*> /Zend_XmlRpc_Fault*= 7Zend_XmlRpc_Exception*< 1Zend_XmlRpc_Client*#; IZend_XmlRpc_Client_ServerProxy*+: YZend_XmlRpc_Client_ServerIntrospection*+9 YZend_XmlRpc_Client_IntrospectException*%8 MZend_XmlRpc_Client_HttpException*&7 OZend_XmlRpc_Client_FaultException*!6 EZend_XmlRpc_Client_Exception*&5 OZend_Wildfire_Protocol_JsonStream*!4 EZend_Wildfire_Plugin_FirePhp*.3 _Zend_Wildfire_Plugin_FirePhp_TableMessage*)2 UZend_Wildfire_Plugin_FirePhp_Message*1 ;Zend_Wildfire_Exception*&0 OZend_Wildfire_Channel_HttpHeaders*/ Zend_View*. -Zend_View_Stream*- 5Zend_View_Helper_Url*, AZend_View_Helper_Translate*+ AZend_View_Helper_ServerUrl*)* UZend_View_Helper_RenderToPlaceholder*!) EZend_View_Helper_Placeholder**( WZend_View_Helper_Placeholder_Registry*4' kZend_View_Helper_Placeholder_Registry_Exception*+& YZend_View_Helper_Placeholder_Container*6% oZend_View_Helper_Placeholder_Container_Standalone*5$ mZend_View_Helper_Placeholder_Container_Exception*4# kZend_View_Helper_Placeholder_Container_Abstract*!" EZend_View_Helper_PartialLoop*! =Zend_View_Helper_Partial*'  QZend_View_Helper_Partial_Exception*' QZend_View_Helper_PaginationControl*  CZend_View_Helper_Navigation*( SZend_View_Helper_Navigation_Sitemap*% MZend_View_Helper_Navigation_Menu*& OZend_View_Helper_Navigation_Links*/ aZend_View_Helper_Navigation_HelperAbstract*, [Zend_View_Helper_Navigation_Breadcrumbs* ;Zend_View_Helper_Layout* 7Zend_View_Helper_Json*" GZend_View_Helper_InlineScript*# IZend_View_Helper_HtmlQuicktime* ?Zend_View_Helper_HtmlPage*  CZend_View_Helper_HtmlObject* ?Zend_View_Helper_HtmlList* AZend_View_Helper_HtmlFlash*! EZend_View_Helper_HtmlElement* AZend_View_Helper_HeadTitle* AZend_View_Helper_HeadStyle*  CZend_View_Helper_HeadScript* ?Zend_View_Helper_HeadMeta* ?Zend_View_Helper_HeadLink*"
 GZend_View_Helper_FormTextarea*	 ?Zend_View_Helper_FormText*  CZend_View_Helper_FormSubmit*  CZend_View_Helper_FormSelect* AZend_View_Helper_FormReset* AZend_View_Helper_FormRadio*" GZend_View_Helper_FormPassword* ?Zend_View_Helper_FormNote*' QZend_View_Helper_FormMultiCheckbox* AZend_View_Helper_FormLabel*  AZend_View_Helper_FormImage*  CZend_View_Helper_FormHidden*~ ?Zend_View_Helper_FormFile* } CZend_View_Helper_FormErrors*!| EZend_View_Helper_FormElement*"{ GZend_View_Helper_FormCheckbox* z CZend_View_Helper_FormButton*y 7Zend_View_Helper_Form*x ?Zend_View_Helper_Fieldset*w =Zend_View_Helper_Doctype*!v EZend_View_Helper_DeclareVars*u 9Zend_View_Helper_Cycle*t =Zend_View_Helper_BaseUrl*s ;Zend_View_Helper_Action*r ?Zend_View_Helper_Abstract*q 3Zend_View_Exception*p 1Zend_View_Abstract*o %Zend_Version*n 'Zend_Validate*m AZend_Validate_StringLength*#l IZend_Validate_Sitemap_Priority*k ?Zend_Validate_Sitemap_Loc*"j GZend_Validate_Sitemap_Lastmod*%i MZend_Validate_Sitemap_Changefreq*h 3Zend_Validate_Regex*g 9Zend_Validate_PostCode*f 9Zend_Validate_NotEmpty*e 9Zend_Validate_LessThan*d -Zend_Validate_Ip*c /Zend_Validate_Int*b 7Zend_Validate_InArray*   j  xS0iH.nK'Y2nG%




q
Y
6
				h	7		zX+{Q"xO& X%fD#^?{iJ'rQ/	        "5 GZend_Barcode_Object_Identcode+"4 GZend_Barcode_Object_Exception+3 ?Zend_Barcode_Object_Error+2 =Zend_Barcode_Object_Ean8+1 =Zend_Barcode_Object_Ean5+0 =Zend_Barcode_Object_Ean2+/ ?Zend_Barcode_Object_Ean13+. AZend_Barcode_Object_Code39+*- WZend_Barcode_Object_Code25interleaved+, AZend_Barcode_Object_Code25++ 9Zend_Barcode_Exception+* Zend_Auth+) ?Zend_Auth_Storage_Session+$( KZend_Auth_Storage_NonPersistent+ ' CZend_Auth_Storage_Exception+& -Zend_Auth_Result+% 3Zend_Auth_Exception+$ =Zend_Auth_Adapter_OpenId+# 9Zend_Auth_Adapter_Ldap+" AZend_Auth_Adapter_InfoCard+! 9Zend_Auth_Adapter_Http+)  UZend_Auth_Adapter_Http_Resolver_File+. _Zend_Auth_Adapter_Http_Resolver_Exception+  CZend_Auth_Adapter_Exception+ =Zend_Auth_Adapter_Digest+ ?Zend_Auth_Adapter_DbTable+ -Zend_Application+# IZend_Application_Resource_View+( SZend_Application_Resource_Translate+& OZend_Application_Resource_Session+% MZend_Application_Resource_Router+/ aZend_Application_Resource_ResourceAbstract+) UZend_Application_Resource_Navigation+& OZend_Application_Resource_Multidb+& OZend_Application_Resource_Modules+# IZend_Application_Resource_Mail+" GZend_Application_Resource_Log+% MZend_Application_Resource_Locale+% MZend_Application_Resource_Layout+. _Zend_Application_Resource_Frontcontroller+( SZend_Application_Resource_Exception+# IZend_Application_Resource_Dojo+! EZend_Application_Resource_Db++
 YZend_Application_Resource_Cachemanager+&	 OZend_Application_Module_Bootstrap+' QZend_Application_Module_Autoloader+ AZend_Application_Exception+) UZend_Application_Bootstrap_Exception+1 eZend_Application_Bootstrap_BootstrapAbstract+) UZend_Application_Bootstrap_Bootstrap+ ?Zend_Amf_Value_TraitsInfo+- ]Zend_Amf_Value_Messaging_RemotingMessage+* WZend_Amf_Value_Messaging_ErrorMessage+,  [Zend_Amf_Value_Messaging_CommandMessage+* WZend_Amf_Value_Messaging_AsyncMessage+-~ ]Zend_Amf_Value_Messaging_ArrayCollection+0} cZend_Amf_Value_Messaging_AcknowledgeMessage+-| ]Zend_Amf_Value_Messaging_AbstractMessage+!{ EZend_Amf_Value_MessageHeader+z AZend_Amf_Value_MessageBody+y =Zend_Amf_Value_ByteArray+x AZend_Amf_Util_BinaryStream+w +Zend_Amf_Server+v ?Zend_Amf_Server_Exception+u /Zend_Amf_Response+t 9Zend_Amf_Response_Http+s -Zend_Amf_Request+r 7Zend_Amf_Request_Http+q ?Zend_Amf_Parse_TypeLoader+p ?Zend_Amf_Parse_Serializer+#o IZend_Amf_Parse_Resource_Stream+(n SZend_Amf_Parse_Resource_MysqlResult+)m UZend_Amf_Parse_Resource_MysqliResult+ l CZend_Amf_Parse_OutputStream+k AZend_Amf_Parse_InputStream+ j CZend_Amf_Parse_Deserializer+#i IZend_Amf_Parse_Amf3_Serializer+%h MZend_Amf_Parse_Amf3_Deserializer+#g IZend_Amf_Parse_Amf0_Serializer+%f MZend_Amf_Parse_Amf0_Deserializer+e 1Zend_Amf_Exception+d 1Zend_Amf_Constants+c 9Zend_Amf_Auth_Abstract+ b CZend_Amf_Adobe_Introspector+a AZend_Amf_Adobe_DbInspector+` 3Zend_Amf_Adobe_Auth+_ Zend_Acl+^ 'Zend_Acl_Role+] 9Zend_Acl_Role_Registry+%\ MZend_Acl_Role_Registry_Exception+[ /Zend_Acl_Resource+Z 1Zend_Acl_Exception+Y /Zend_XmlRpc_Value*X =Zend_XmlRpc_Value_Struct*W =Zend_XmlRpc_Value_String*V =Zend_XmlRpc_Value_Scalar*U 7Zend_XmlRpc_Value_Nil*T ?Zend_XmlRpc_Value_Integer* S CZend_XmlRpc_Value_Exception*R =Zend_XmlRpc_Value_Double*Q AZend_XmlRpc_Value_DateTime*!P EZend_XmlRpc_Value_Collection*O ?Zend_XmlRpc_Value_Boolean*!N EZend_XmlRpc_Value_BigInteger*M =Zend_XmlRpc_Value_Base64*L ;Zend_XmlRpc_Value_Array*   X  Y8}Y"qFX^%



O
				]	2	 U'zT3a0~V*^;PW5e+           -~ ]Zend_InfoCard_Cipher_Symmetric_Interface+7} qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface+7| qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interface++{ YZend_InfoCard_Cipher_Pki_Rsa_Interface+'z QZend_InfoCard_Cipher_Pki_Interface+$y KZend_InfoCard_Adapter_Interface+$x KZend_Http_Client_Adapter_Stream+'w QZend_Http_Client_Adapter_Interface+v AZend_Gdata_App_MediaSource+.u _Zend_Form_Decorator_Marker_File_Interface+"t GZend_Form_Decorator_Interface+s 7Zend_Filter_Interface+"r GZend_Filter_Encrypt_Interface++q YZend_Filter_Compress_CompressInterface+0p cZend_Feed_Writer_Renderer_RendererInterface+1o eZend_Feed_Writer_Extension_RendererInterface+#n IZend_Feed_Reader_FeedInterface+$m KZend_Feed_Reader_EntryInterface+7l qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface+-k ]Zend_Feed_Pubsubhubbub_CallbackInterface+ j CZend_Feed_Builder_Interface+ i CZend_Db_Statement_Interface+$h KZend_Currency_CurrencyInterface+)g UZend_Crypt_Math_BigInteger_Interface++f YZend_Controller_Router_Route_Interface+%e MZend_Controller_Router_Interface+)d UZend_Controller_Dispatcher_Interface+%c MZend_Controller_Action_Interface+b 5Zend_Captcha_Adapter+!a EZend_Cache_Backend_Interface+)` UZend_Cache_Backend_ExtendedInterface+ _ CZend_Auth_Storage_Interface+ ^ CZend_Auth_Adapter_Interface+.] _Zend_Auth_Adapter_Http_Resolver_Interface+'\ QZend_Application_Resource_Resource+4[ kZend_Application_Bootstrap_ResourceBootstrapper+,Z [Zend_Application_Bootstrap_Bootstrapper+Y ;Zend_Acl_Role_Interface+ X CZend_Acl_Resource_Interface+W ?Zend_Acl_Assert_Interface+#V IZend_Wildfire_Plugin_Interface*$U KZend_Wildfire_Channel_Interface*T 3Zend_View_Interface*'S QZend_View_Helper_Navigation_Helper*R AZend_View_Helper_Interface*Q ;Zend_Validate_Interface*+P YZend_Validate_Barcode_AdapterInterface*3O iZend_Tool_Project_Profile_FileParser_Interface*:N wZend_Tool_Project_Context_System_TopLevelRestrictable*5M mZend_Tool_Project_Context_System_NotOverwritable*/L aZend_Tool_Project_Context_System_Interface*(K SZend_Tool_Project_Context_Interface*+J YZend_Tool_Framework_Registry_Interface*2I gZend_Tool_Framework_Registry_EnabledInterface*-H ]Zend_Tool_Framework_Provider_Pretendable*+G YZend_Tool_Framework_Provider_Interface*.F _Zend_Tool_Framework_Provider_Interactable*;E yZend_Tool_Framework_Provider_DocblockManifestInterface*+D YZend_Tool_Framework_Metadata_Interface*.C _Zend_Tool_Framework_Metadata_Attributable*6B oZend_Tool_Framework_Manifest_ProviderManifestable*6A oZend_Tool_Framework_Manifest_MetadataManifestable*+@ YZend_Tool_Framework_Manifest_Interface*+? YZend_Tool_Framework_Manifest_Indexable*4> kZend_Tool_Framework_Manifest_ActionManifestable*)= UZend_Tool_Framework_Loader_Interface*8< sZend_Tool_Framework_Client_Storage_AdapterInterface*D; 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface*;: yZend_Tool_Framework_Client_Interactive_OutputInterface*:9 wZend_Tool_Framework_Client_Interactive_InputInterface*)8 UZend_Tool_Framework_Action_Interface*(7 SZend_Text_Table_Decorator_Interface*6 /Zend_Tag_Taggable*&5 OZend_Soap_Wsdl_Strategy_Interface*%4 MZend_Session_Validator_Interface*'3 QZend_Session_SaveHandler_Interface*2 7Zend_Server_Interface*41 kZend_Search_Lucene_Search_Highlighter_Interface*!0 EZend_Search_Lucene_Interface*3/ iZend_Search_Lucene_Index_TermsStream_Interface*$. KZend_Queue_Stomp_FrameInterface*0- cZend_Queue_Stomp_Client_ConnectionInterface*(, SZend_Queue_Adapter_AdapterInterface*+ ?Zend_Pdf_Filter_Interface*&* OZend_Pdf_ElementFactory_Interface*,) [Zend_Paginator_ScrollingStyle_Interface*$( KZend_Paginator_AdapterAggregate*%' MZend_Paginator_Adapter_Interface*   e  kG! qB-`@zT9!xU4




|
]
C
					U	#sO k6pQ6
p>Y-h>Z-nH                                 & OZend_Controller_Plugin_PutHandler+( SZend_Controller_Plugin_ErrorHandler+" GZend_Controller_Plugin_Broker+' QZend_Controller_Plugin_ActionStack+$ KZend_Controller_Plugin_Abstract+ 7Zend_Controller_Front+ ?Zend_Controller_Exception+( SZend_Controller_Dispatcher_Standard+) UZend_Controller_Dispatcher_Exception+( SZend_Controller_Dispatcher_Abstract+ 9Zend_Controller_Action+( SZend_Controller_Action_HelperBroker+6 oZend_Controller_Action_HelperBroker_PriorityStack+/ aZend_Controller_Action_Helper_ViewRenderer+& OZend_Controller_Action_Helper_Url+- ]Zend_Controller_Action_Helper_Redirector+'
 QZend_Controller_Action_Helper_Json+1	 eZend_Controller_Action_Helper_FlashMessenger+0 cZend_Controller_Action_Helper_ContextSwitch+( SZend_Controller_Action_Helper_Cache+< {Zend_Controller_Action_Helper_AutoCompleteScriptaculous+3 iZend_Controller_Action_Helper_AutoCompleteDojo+8 sZend_Controller_Action_Helper_AutoComplete_Abstract+. _Zend_Controller_Action_Helper_AjaxContext+. _Zend_Controller_Action_Helper_ActionStack++ YZend_Controller_Action_Helper_Abstract+%  MZend_Controller_Action_Exception+ 3Zend_Console_Getopt+"~ GZend_Console_Getopt_Exception+} #Zend_Config+| +Zend_Config_Xml+{ 1Zend_Config_Writer+z 9Zend_Config_Writer_Xml+y 9Zend_Config_Writer_Ini+$x KZend_Config_Writer_FileAbstract+w =Zend_Config_Writer_Array+v +Zend_Config_Ini+u 7Zend_Config_Exception+$t KZend_CodeGenerator_Php_Property+1s eZend_CodeGenerator_Php_Property_DefaultValue+%r MZend_CodeGenerator_Php_Parameter+2q gZend_CodeGenerator_Php_Parameter_DefaultValue+"p GZend_CodeGenerator_Php_Method+,o [Zend_CodeGenerator_Php_Member_Container++n YZend_CodeGenerator_Php_Member_Abstract+ m CZend_CodeGenerator_Php_File+%l MZend_CodeGenerator_Php_Exception+$k KZend_CodeGenerator_Php_Docblock+(j SZend_CodeGenerator_Php_Docblock_Tag+/i aZend_CodeGenerator_Php_Docblock_Tag_Return+.h _Zend_CodeGenerator_Php_Docblock_Tag_Param+0g cZend_CodeGenerator_Php_Docblock_Tag_License+!f EZend_CodeGenerator_Php_Class+ e CZend_CodeGenerator_Php_Body+$d KZend_CodeGenerator_Php_Abstract+!c EZend_CodeGenerator_Exception+ b CZend_CodeGenerator_Abstract+a /Zend_Captcha_Word+` 9Zend_Captcha_ReCaptcha+_ 1Zend_Captcha_Image+^ 3Zend_Captcha_Figlet+] 9Zend_Captcha_Exception+\ /Zend_Captcha_Dumb+[ /Zend_Captcha_Base+Z !Zend_Cache+Y 1Zend_Cache_Manager+X =Zend_Cache_Frontend_Page+W AZend_Cache_Frontend_Output+!V EZend_Cache_Frontend_Function+U =Zend_Cache_Frontend_File+T ?Zend_Cache_Frontend_Class+ S CZend_Cache_Frontend_Capture+R 5Zend_Cache_Exception+Q +Zend_Cache_Core+P 1Zend_Cache_Backend+"O GZend_Cache_Backend_ZendServer+(N SZend_Cache_Backend_ZendServer_ShMem+'M QZend_Cache_Backend_ZendServer_Disk+$L KZend_Cache_Backend_ZendPlatform+K ?Zend_Cache_Backend_Xcache+!J EZend_Cache_Backend_TwoLevels+I ;Zend_Cache_Backend_Test+H ?Zend_Cache_Backend_Static+G ?Zend_Cache_Backend_Sqlite+!F EZend_Cache_Backend_Memcached+E ;Zend_Cache_Backend_File+!D EZend_Cache_Backend_BlackHole+C 9Zend_Cache_Backend_Apc+B %Zend_Barcode++A YZend_Barcode_Renderer_RendererAbstract+@ ?Zend_Barcode_Renderer_Pdf+ ? CZend_Barcode_Renderer_Image+$> KZend_Barcode_Renderer_Exception+= =Zend_Barcode_Object_Upce+< =Zend_Barcode_Object_Upca+"; GZend_Barcode_Object_Royalmail+ : CZend_Barcode_Object_Postnet+9 AZend_Barcode_Object_Planet+'8 QZend_Barcode_Object_ObjectAbstract+!7 EZend_Barcode_Object_Leitcode+6 ?Zend_Barcode_Object_Itf14+   m ^1
j<k=jI,
tQ/





m
W
>
!
					n	E	&qQ/`F1}U7{Y7sS0aD.X'qA                                               , [Zend_Dojo_Form_Decorator_StackContainer+, [Zend_Dojo_Form_Decorator_SplitContainer+' QZend_Dojo_Form_Decorator_DijitForm+* WZend_Dojo_Form_Decorator_DijitElement+, [Zend_Dojo_Form_Decorator_DijitContainer+) UZend_Dojo_Form_Decorator_ContentPane+- ]Zend_Dojo_Form_Decorator_BorderContainer++  YZend_Dojo_Form_Decorator_AccordionPane+0 cZend_Dojo_Form_Decorator_AccordionContainer+~ 3Zend_Dojo_Exception+} )Zend_Dojo_Data+| 5Zend_Dojo_BuildLayer+{ !Zend_Debug+z Zend_Db+y 'Zend_Db_Table+x 5Zend_Db_Table_Select+#w IZend_Db_Table_Select_Exception+v 5Zend_Db_Table_Rowset+#u IZend_Db_Table_Rowset_Exception+"t GZend_Db_Table_Rowset_Abstract+s /Zend_Db_Table_Row+ r CZend_Db_Table_Row_Exception+q AZend_Db_Table_Row_Abstract+p ;Zend_Db_Table_Exception+o =Zend_Db_Table_Definition+n 9Zend_Db_Table_Abstract+m /Zend_Db_Statement+l =Zend_Db_Statement_Sqlsrv+'k QZend_Db_Statement_Sqlsrv_Exception+j 7Zend_Db_Statement_Pdo+i ?Zend_Db_Statement_Pdo_Oci+h ?Zend_Db_Statement_Pdo_Ibm+g =Zend_Db_Statement_Oracle+'f QZend_Db_Statement_Oracle_Exception+e =Zend_Db_Statement_Mysqli+'d QZend_Db_Statement_Mysqli_Exception+ c CZend_Db_Statement_Exception+b 7Zend_Db_Statement_Db2+$a KZend_Db_Statement_Db2_Exception+` )Zend_Db_Select+_ =Zend_Db_Select_Exception+^ -Zend_Db_Profiler+] 9Zend_Db_Profiler_Query+\ =Zend_Db_Profiler_Firebug+[ AZend_Db_Profiler_Exception+Z %Zend_Db_Expr+Y /Zend_Db_Exception+X 9Zend_Db_Adapter_Sqlsrv+%W MZend_Db_Adapter_Sqlsrv_Exception+V AZend_Db_Adapter_Pdo_Sqlite+U ?Zend_Db_Adapter_Pdo_Pgsql+T ;Zend_Db_Adapter_Pdo_Oci+S ?Zend_Db_Adapter_Pdo_Mysql+R ?Zend_Db_Adapter_Pdo_Mssql+Q ;Zend_Db_Adapter_Pdo_Ibm+ P CZend_Db_Adapter_Pdo_Ibm_Ids+ O CZend_Db_Adapter_Pdo_Ibm_Db2+!N EZend_Db_Adapter_Pdo_Abstract+M 9Zend_Db_Adapter_Oracle+%L MZend_Db_Adapter_Oracle_Exception+K 9Zend_Db_Adapter_Mysqli+%J MZend_Db_Adapter_Mysqli_Exception+I ?Zend_Db_Adapter_Exception+H 3Zend_Db_Adapter_Db2+"G GZend_Db_Adapter_Db2_Exception+F =Zend_Db_Adapter_Abstract+E Zend_Date+D 3Zend_Date_Exception+C 5Zend_Date_DateObject+B -Zend_Date_Cities+A 'Zend_Currency+@ ;Zend_Currency_Exception+? !Zend_Crypt+> )Zend_Crypt_Rsa+= 1Zend_Crypt_Rsa_Key+< ?Zend_Crypt_Rsa_Key_Public+; AZend_Crypt_Rsa_Key_Private+: +Zend_Crypt_Math+9 ?Zend_Crypt_Math_Exception+8 AZend_Crypt_Math_BigInteger+#7 IZend_Crypt_Math_BigInteger_Gmp+)6 UZend_Crypt_Math_BigInteger_Exception+&5 OZend_Crypt_Math_BigInteger_Bcmath+4 +Zend_Crypt_Hmac+3 ?Zend_Crypt_Hmac_Exception+2 5Zend_Crypt_Exception+1 =Zend_Crypt_DiffieHellman+'0 QZend_Crypt_DiffieHellman_Exception+!/ EZend_Controller_Router_Route+(. SZend_Controller_Router_Route_Static+'- QZend_Controller_Router_Route_Regex+(, SZend_Controller_Router_Route_Module+*+ WZend_Controller_Router_Route_Hostname+'* QZend_Controller_Router_Route_Chain+*) WZend_Controller_Router_Route_Abstract+#( IZend_Controller_Router_Rewrite+%' MZend_Controller_Router_Exception+$& KZend_Controller_Router_Abstract+*% WZend_Controller_Response_HttpTestCase+"$ GZend_Controller_Response_Http+'# QZend_Controller_Response_Exception+!" EZend_Controller_Response_Cli+&! OZend_Controller_Response_Abstract+#  IZend_Controller_Request_Simple+) UZend_Controller_Request_HttpTestCase+! EZend_Controller_Request_Http+& OZend_Controller_Request_Exception+& OZend_Controller_Request_Apache404+% MZend_Controller_Request_Abstract+   a  `8	i:
V(\+uI



~
P
&				~	[	6	^0Z/]0{dD eI-uCsF}O"                                        -h ]Zend_Feed_Reader_Extension_Content_Entry+)g UZend_Feed_Reader_Extension_Atom_Feed+*f WZend_Feed_Reader_Extension_Atom_Entry+#e IZend_Feed_Reader_EntryAbstract+d AZend_Feed_Reader_Entry_Rss+ c CZend_Feed_Reader_Entry_Atom+ b CZend_Feed_Reader_Collection+3a iZend_Feed_Reader_Collection_CollectionAbstract+)` UZend_Feed_Reader_Collection_Category+'_ QZend_Feed_Reader_Collection_Author+^ 9Zend_Feed_Pubsubhubbub+&] OZend_Feed_Pubsubhubbub_Subscriber+/\ aZend_Feed_Pubsubhubbub_Subscriber_Callback+%[ MZend_Feed_Pubsubhubbub_Publisher+.Z _Zend_Feed_Pubsubhubbub_Model_Subscription+/Y aZend_Feed_Pubsubhubbub_Model_ModelAbstract+(X SZend_Feed_Pubsubhubbub_HttpResponse+%W MZend_Feed_Pubsubhubbub_Exception+,V [Zend_Feed_Pubsubhubbub_CallbackAbstract+U 3Zend_Feed_Exception+T 3Zend_Feed_Entry_Rss+S 5Zend_Feed_Entry_Atom+R =Zend_Feed_Entry_Abstract+Q /Zend_Feed_Element+P /Zend_Feed_Builder+O =Zend_Feed_Builder_Header+$N KZend_Feed_Builder_Header_Itunes+ M CZend_Feed_Builder_Exception+L ;Zend_Feed_Builder_Entry+K )Zend_Feed_Atom+J 1Zend_Feed_Abstract+I )Zend_Exception+H )Zend_Dom_Query+G 7Zend_Dom_Query_Result+F =Zend_Dom_Query_Css2Xpath+E 1Zend_Dom_Exception+D Zend_Dojo+)C UZend_Dojo_View_Helper_VerticalSlider+,B [Zend_Dojo_View_Helper_ValidationTextBox+&A OZend_Dojo_View_Helper_TimeTextBox+"@ GZend_Dojo_View_Helper_TextBox+#? IZend_Dojo_View_Helper_Textarea+'> QZend_Dojo_View_Helper_TabContainer+'= QZend_Dojo_View_Helper_SubmitButton+)< UZend_Dojo_View_Helper_StackContainer+); UZend_Dojo_View_Helper_SplitContainer+!: EZend_Dojo_View_Helper_Slider+)9 UZend_Dojo_View_Helper_SimpleTextarea+&8 OZend_Dojo_View_Helper_RadioButton+*7 WZend_Dojo_View_Helper_PasswordTextBox+(6 SZend_Dojo_View_Helper_NumberTextBox+(5 SZend_Dojo_View_Helper_NumberSpinner++4 YZend_Dojo_View_Helper_HorizontalSlider+3 AZend_Dojo_View_Helper_Form+*2 WZend_Dojo_View_Helper_FilteringSelect+!1 EZend_Dojo_View_Helper_Editor+0 AZend_Dojo_View_Helper_Dojo+)/ UZend_Dojo_View_Helper_Dojo_Container+). UZend_Dojo_View_Helper_DijitContainer+ - CZend_Dojo_View_Helper_Dijit+&, OZend_Dojo_View_Helper_DateTextBox+&+ OZend_Dojo_View_Helper_CustomDijit+** WZend_Dojo_View_Helper_CurrencyTextBox+&) OZend_Dojo_View_Helper_ContentPane+#( IZend_Dojo_View_Helper_ComboBox+#' IZend_Dojo_View_Helper_CheckBox+!& EZend_Dojo_View_Helper_Button+*% WZend_Dojo_View_Helper_BorderContainer+($ SZend_Dojo_View_Helper_AccordionPane+-# ]Zend_Dojo_View_Helper_AccordionContainer+" =Zend_Dojo_View_Exception+! )Zend_Dojo_Form+  9Zend_Dojo_Form_SubForm+* WZend_Dojo_Form_Element_VerticalSlider+- ]Zend_Dojo_Form_Element_ValidationTextBox+' QZend_Dojo_Form_Element_TimeTextBox+# IZend_Dojo_Form_Element_TextBox+$ KZend_Dojo_Form_Element_Textarea+( SZend_Dojo_Form_Element_SubmitButton+" GZend_Dojo_Form_Element_Slider+* WZend_Dojo_Form_Element_SimpleTextarea+' QZend_Dojo_Form_Element_RadioButton++ YZend_Dojo_Form_Element_PasswordTextBox+) UZend_Dojo_Form_Element_NumberTextBox+) UZend_Dojo_Form_Element_NumberSpinner+, [Zend_Dojo_Form_Element_HorizontalSlider++ YZend_Dojo_Form_Element_FilteringSelect+" GZend_Dojo_Form_Element_Editor+& OZend_Dojo_Form_Element_DijitMulti+! EZend_Dojo_Form_Element_Dijit+' QZend_Dojo_Form_Element_DateTextBox++ YZend_Dojo_Form_Element_CurrencyTextBox+$ KZend_Dojo_Form_Element_ComboBox+$ KZend_Dojo_Form_Element_CheckBox+"
 GZend_Dojo_Form_Element_Button+ 	 CZend_Dojo_Form_DisplayGroup+* WZend_Dojo_Form_Decorator_TabContainer+   b  [(f7rO-^(uE


q
9				r	F	e=sR$cD(tS2s[1mN,_6[,        +J YZend_Filter_Word_UnderscoreToSeparator+&I OZend_Filter_Word_UnderscoreToDash++H YZend_Filter_Word_UnderscoreToCamelCase+*G WZend_Filter_Word_SeparatorToSeparator+%F MZend_Filter_Word_SeparatorToDash+*E WZend_Filter_Word_SeparatorToCamelCase+(D SZend_Filter_Word_Separator_Abstract+&C OZend_Filter_Word_DashToUnderscore+%B MZend_Filter_Word_DashToSeparator+%A MZend_Filter_Word_DashToCamelCase++@ YZend_Filter_Word_CamelCaseToUnderscore+*? WZend_Filter_Word_CamelCaseToSeparator+%> MZend_Filter_Word_CamelCaseToDash+= 7Zend_Filter_StripTags+< ?Zend_Filter_StripNewlines+; 9Zend_Filter_StringTrim+: ?Zend_Filter_StringToUpper+9 ?Zend_Filter_StringToLower+8 5Zend_Filter_RealPath+7 ;Zend_Filter_PregReplace+6 -Zend_Filter_Null+&5 OZend_Filter_NormalizedToLocalized+&4 OZend_Filter_LocalizedToNormalized+3 +Zend_Filter_Int+2 /Zend_Filter_Input+1 7Zend_Filter_Inflector+0 =Zend_Filter_HtmlEntities+/ AZend_Filter_File_UpperCase+. ;Zend_Filter_File_Rename+- AZend_Filter_File_LowerCase+, =Zend_Filter_File_Encrypt++ =Zend_Filter_File_Decrypt+* 7Zend_Filter_Exception+) 3Zend_Filter_Encrypt+ ( CZend_Filter_Encrypt_Openssl+' AZend_Filter_Encrypt_Mcrypt+& +Zend_Filter_Dir+% 1Zend_Filter_Digits+$ 3Zend_Filter_Decrypt+# 9Zend_Filter_Decompress+" 5Zend_Filter_Compress+! =Zend_Filter_Compress_Zip+  =Zend_Filter_Compress_Tar+ =Zend_Filter_Compress_Rar+ =Zend_Filter_Compress_Lzf+ ;Zend_Filter_Compress_Gz+* WZend_Filter_Compress_CompressAbstract+ =Zend_Filter_Compress_Bz2+ 5Zend_Filter_Callback+ 3Zend_Filter_Boolean+ 5Zend_Filter_BaseName+ /Zend_Filter_Alpha+ /Zend_Filter_Alnum+ 1Zend_File_Transfer+! EZend_File_Transfer_Exception+$ KZend_File_Transfer_Adapter_Http+( SZend_File_Transfer_Adapter_Abstract+ Zend_Feed+ -Zend_Feed_Writer+/ aZend_Feed_Writer_Renderer_RendererAbstract+' QZend_Feed_Writer_Renderer_Feed_Rss+( SZend_Feed_Writer_Renderer_Feed_Atom+( SZend_Feed_Writer_Renderer_Entry_Rss+) UZend_Feed_Writer_Renderer_Entry_Atom+
 7Zend_Feed_Writer_Feed+<	 {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry+8 sZend_Feed_Writer_Extension_Threading_Renderer_Entry+4 kZend_Feed_Writer_Extension_Slash_Renderer_Entry+0 cZend_Feed_Writer_Extension_RendererAbstract+4 kZend_Feed_Writer_Extension_ITunes_Renderer_Feed+5 mZend_Feed_Writer_Extension_ITunes_Renderer_Entry++ YZend_Feed_Writer_Extension_ITunes_Feed+, [Zend_Feed_Writer_Extension_ITunes_Entry+8 sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed+9  uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry+6 oZend_Feed_Writer_Extension_Content_Renderer_Entry+2~ gZend_Feed_Writer_Extension_Atom_Renderer_Feed+6} oZend_Feed_Writer_Exception_InvalidMethodException+| 9Zend_Feed_Writer_Entry+{ 'Zend_Feed_Rss+z -Zend_Feed_Reader+y =Zend_Feed_Reader_FeedSet+"x GZend_Feed_Reader_FeedAbstract+w ?Zend_Feed_Reader_Feed_Rss+v AZend_Feed_Reader_Feed_Atom+&u OZend_Feed_Reader_Feed_Atom_Source+3t iZend_Feed_Reader_Extension_WellFormedWeb_Entry+,s [Zend_Feed_Reader_Extension_Thread_Entry+0r cZend_Feed_Reader_Extension_Syndication_Feed++q YZend_Feed_Reader_Extension_Slash_Entry+,p [Zend_Feed_Reader_Extension_Podcast_Feed+-o ]Zend_Feed_Reader_Extension_Podcast_Entry+,n [Zend_Feed_Reader_Extension_FeedAbstract+-m ]Zend_Feed_Reader_Extension_EntryAbstract+/l aZend_Feed_Reader_Extension_DublinCore_Feed+0k cZend_Feed_Reader_Extension_DublinCore_Entry+4j kZend_Feed_Reader_Extension_CreativeCommons_Feed+5i mZend_Feed_Reader_Extension_CreativeCommons_Entry+   h  yU-vU,qM&zV7iF&




b
H
,

 				j	:	T+a;}R*b9c3uM6g:	S$      2 CZend_Gdata_Books_VolumeFeed+!1 EZend_Gdata_Books_VolumeEntry++0 YZend_Gdata_Books_Extension_Viewability+-/ ]Zend_Gdata_Books_Extension_ThumbnailLink+&. OZend_Gdata_Books_Extension_Review++- YZend_Gdata_Books_Extension_PreviewLink+(, SZend_Gdata_Books_Extension_InfoLink+-+ ]Zend_Gdata_Books_Extension_Embeddability+)* UZend_Gdata_Books_Extension_BooksLink+-) ]Zend_Gdata_Books_Extension_BooksCategory+.( _Zend_Gdata_Books_Extension_AnnotationLink+$' KZend_Gdata_Books_CollectionFeed+%& MZend_Gdata_Books_CollectionEntry+% 1Zend_Gdata_AuthSub+$ )Zend_Gdata_App+$# KZend_Gdata_App_VersionException+" 3Zend_Gdata_App_Util+#! IZend_Gdata_App_MediaFileSource+  ?Zend_Gdata_App_MediaEntry+2 gZend_Gdata_App_LoggingHttpClientAdapterSocket+ AZend_Gdata_App_IOException+, [Zend_Gdata_App_InvalidArgumentException+! EZend_Gdata_App_HttpException+$ KZend_Gdata_App_FeedSourceParent+# IZend_Gdata_App_FeedEntryParent+ 3Zend_Gdata_App_Feed+ =Zend_Gdata_App_Extension+! EZend_Gdata_App_Extension_Uri+% MZend_Gdata_App_Extension_Updated+# IZend_Gdata_App_Extension_Title+" GZend_Gdata_App_Extension_Text+% MZend_Gdata_App_Extension_Summary+& OZend_Gdata_App_Extension_Subtitle+$ KZend_Gdata_App_Extension_Source+$ KZend_Gdata_App_Extension_Rights+' QZend_Gdata_App_Extension_Published+$ KZend_Gdata_App_Extension_Person+" GZend_Gdata_App_Extension_Name+" GZend_Gdata_App_Extension_Logo+" GZend_Gdata_App_Extension_Link+ 
 CZend_Gdata_App_Extension_Id+"	 GZend_Gdata_App_Extension_Icon+' QZend_Gdata_App_Extension_Generator+# IZend_Gdata_App_Extension_Email+% MZend_Gdata_App_Extension_Element+$ KZend_Gdata_App_Extension_Edited+# IZend_Gdata_App_Extension_Draft+% MZend_Gdata_App_Extension_Control+) UZend_Gdata_App_Extension_Contributor+% MZend_Gdata_App_Extension_Content+&  OZend_Gdata_App_Extension_Category+$ KZend_Gdata_App_Extension_Author+~ =Zend_Gdata_App_Exception+} 5Zend_Gdata_App_Entry+,| [Zend_Gdata_App_CaptchaRequiredException+#{ IZend_Gdata_App_BaseMediaSource+z 3Zend_Gdata_App_Base+*y WZend_Gdata_App_BadMethodCallException+!x EZend_Gdata_App_AuthException+w Zend_Form+v /Zend_Form_SubForm+u 3Zend_Form_Exception+t /Zend_Form_Element+s ;Zend_Form_Element_Xhtml+r AZend_Form_Element_Textarea+q 9Zend_Form_Element_Text+p =Zend_Form_Element_Submit+o =Zend_Form_Element_Select+n ;Zend_Form_Element_Reset+m ;Zend_Form_Element_Radio+l AZend_Form_Element_Password+"k GZend_Form_Element_Multiselect+$j KZend_Form_Element_MultiCheckbox+i ;Zend_Form_Element_Multi+h ;Zend_Form_Element_Image+g =Zend_Form_Element_Hidden+f 9Zend_Form_Element_Hash+e 9Zend_Form_Element_File+ d CZend_Form_Element_Exception+c AZend_Form_Element_Checkbox+b ?Zend_Form_Element_Captcha+a =Zend_Form_Element_Button+` 9Zend_Form_DisplayGroup+#_ IZend_Form_Decorator_ViewScript+#^ IZend_Form_Decorator_ViewHelper+ ] CZend_Form_Decorator_Tooltip+(\ SZend_Form_Decorator_PrepareElements+[ ?Zend_Form_Decorator_Label+Z ?Zend_Form_Decorator_Image+ Y CZend_Form_Decorator_HtmlTag+#X IZend_Form_Decorator_FormErrors+%W MZend_Form_Decorator_FormElements+V =Zend_Form_Decorator_Form+U =Zend_Form_Decorator_File+!T EZend_Form_Decorator_Fieldset+"S GZend_Form_Decorator_Exception+R AZend_Form_Decorator_Errors+$Q KZend_Form_Decorator_DtDdWrapper+$P KZend_Form_Decorator_Description+ O CZend_Form_Decorator_Captcha+%N MZend_Form_Decorator_Captcha_Word+!M EZend_Form_Decorator_Callback+!L EZend_Form_Decorator_Abstract+K #Zend_Filter+   a  uNi:wR6^1j8	



t
V
+
 				R	,	rZ.`:uQ)^;n=g?vW-
\>               AZend_Gdata_Gbase_ItemQuery+ ?Zend_Gdata_Gbase_ItemFeed+ AZend_Gdata_Gbase_ItemEntry+ 7Zend_Gdata_Gbase_Feed+- ]Zend_Gdata_Gbase_Extension_BaseAttribute+ 9Zend_Gdata_Gbase_Entry+ -Zend_Gdata_Gapps+ AZend_Gdata_Gapps_UserQuery+ ?Zend_Gdata_Gapps_UserFeed+
 AZend_Gdata_Gapps_UserEntry+&	 OZend_Gdata_Gapps_ServiceException+ 9Zend_Gdata_Gapps_Query+# IZend_Gdata_Gapps_NicknameQuery+" GZend_Gdata_Gapps_NicknameFeed+# IZend_Gdata_Gapps_NicknameEntry+% MZend_Gdata_Gapps_Extension_Quota+( SZend_Gdata_Gapps_Extension_Nickname+$ KZend_Gdata_Gapps_Extension_Name+% MZend_Gdata_Gapps_Extension_Login+)  UZend_Gdata_Gapps_Extension_EmailList+ 9Zend_Gdata_Gapps_Error+-~ ]Zend_Gdata_Gapps_EmailListRecipientQuery+,} [Zend_Gdata_Gapps_EmailListRecipientFeed+-| ]Zend_Gdata_Gapps_EmailListRecipientEntry+${ KZend_Gdata_Gapps_EmailListQuery+#z IZend_Gdata_Gapps_EmailListFeed+$y KZend_Gdata_Gapps_EmailListEntry+x +Zend_Gdata_Feed+w 5Zend_Gdata_Extension+v =Zend_Gdata_Extension_Who+u AZend_Gdata_Extension_Where+t ?Zend_Gdata_Extension_When+$s KZend_Gdata_Extension_Visibility+&r OZend_Gdata_Extension_Transparency+"q GZend_Gdata_Extension_Reminder+-p ]Zend_Gdata_Extension_RecurrenceException+$o KZend_Gdata_Extension_Recurrence+ n CZend_Gdata_Extension_Rating+'m QZend_Gdata_Extension_OriginalEvent+0l cZend_Gdata_Extension_OpenSearchTotalResults+.k _Zend_Gdata_Extension_OpenSearchStartIndex+0j cZend_Gdata_Extension_OpenSearchItemsPerPage+"i GZend_Gdata_Extension_FeedLink+*h WZend_Gdata_Extension_ExtendedProperty+%g MZend_Gdata_Extension_EventStatus+#f IZend_Gdata_Extension_EntryLink+"e GZend_Gdata_Extension_Comments+&d OZend_Gdata_Extension_AttendeeType+(c SZend_Gdata_Extension_AttendeeStatus+b +Zend_Gdata_Exif+a 5Zend_Gdata_Exif_Feed+#` IZend_Gdata_Exif_Extension_Time+#_ IZend_Gdata_Exif_Extension_Tags+$^ KZend_Gdata_Exif_Extension_Model+#] IZend_Gdata_Exif_Extension_Make+"\ GZend_Gdata_Exif_Extension_Iso+,[ [Zend_Gdata_Exif_Extension_ImageUniqueId+$Z KZend_Gdata_Exif_Extension_FStop+*Y WZend_Gdata_Exif_Extension_FocalLength+$X KZend_Gdata_Exif_Extension_Flash+'W QZend_Gdata_Exif_Extension_Exposure+'V QZend_Gdata_Exif_Extension_Distance+U 7Zend_Gdata_Exif_Entry+T -Zend_Gdata_Entry+S 7Zend_Gdata_DublinCore+*R WZend_Gdata_DublinCore_Extension_Title+,Q [Zend_Gdata_DublinCore_Extension_Subject++P YZend_Gdata_DublinCore_Extension_Rights+.O _Zend_Gdata_DublinCore_Extension_Publisher+-N ]Zend_Gdata_DublinCore_Extension_Language+/M aZend_Gdata_DublinCore_Extension_Identifier++L YZend_Gdata_DublinCore_Extension_Format+0K cZend_Gdata_DublinCore_Extension_Description+)J UZend_Gdata_DublinCore_Extension_Date+,I [Zend_Gdata_DublinCore_Extension_Creator+H +Zend_Gdata_Docs+G 7Zend_Gdata_Docs_Query+%F MZend_Gdata_Docs_DocumentListFeed+&E OZend_Gdata_Docs_DocumentListEntry+D 9Zend_Gdata_ClientLogin+C 3Zend_Gdata_Calendar+!B EZend_Gdata_Calendar_ListFeed+"A GZend_Gdata_Calendar_ListEntry+-@ ]Zend_Gdata_Calendar_Extension_WebContent++? YZend_Gdata_Calendar_Extension_Timezone+9> uZend_Gdata_Calendar_Extension_SendEventNotifications++= YZend_Gdata_Calendar_Extension_Selected++< YZend_Gdata_Calendar_Extension_QuickAdd+'; QZend_Gdata_Calendar_Extension_Link+): UZend_Gdata_Calendar_Extension_Hidden+(9 SZend_Gdata_Calendar_Extension_Color+.8 _Zend_Gdata_Calendar_Extension_AccessLevel+#7 IZend_Gdata_Calendar_EventQuery+"6 GZend_Gdata_Calendar_EventFeed+#5 IZend_Gdata_Calendar_EventEntry+4 -Zend_Gdata_Books+!3 EZend_Gdata_Books_VolumeQuery+   ^  pW:`9W)h6xG



V
(

					k	G	"vIe8~Ga8
\2}Z6X)h?                                 -q ]Zend_Gdata_Spreadsheets_SpreadsheetEntry+&p OZend_Gdata_Spreadsheets_ListQuery+%o MZend_Gdata_Spreadsheets_ListFeed+&n OZend_Gdata_Spreadsheets_ListEntry+/m aZend_Gdata_Spreadsheets_Extension_RowCount+-l ]Zend_Gdata_Spreadsheets_Extension_Custom+/k aZend_Gdata_Spreadsheets_Extension_ColCount++j YZend_Gdata_Spreadsheets_Extension_Cell+*i WZend_Gdata_Spreadsheets_DocumentQuery+&h OZend_Gdata_Spreadsheets_CellQuery+%g MZend_Gdata_Spreadsheets_CellFeed+&f OZend_Gdata_Spreadsheets_CellEntry+e -Zend_Gdata_Query+d /Zend_Gdata_Photos+ c CZend_Gdata_Photos_UserQuery+b AZend_Gdata_Photos_UserFeed+ a CZend_Gdata_Photos_UserEntry+` AZend_Gdata_Photos_TagEntry+!_ EZend_Gdata_Photos_PhotoQuery+ ^ CZend_Gdata_Photos_PhotoFeed+!] EZend_Gdata_Photos_PhotoEntry+&\ OZend_Gdata_Photos_Extension_Width+'[ QZend_Gdata_Photos_Extension_Weight+(Z SZend_Gdata_Photos_Extension_Version+%Y MZend_Gdata_Photos_Extension_User+*X WZend_Gdata_Photos_Extension_Timestamp+*W WZend_Gdata_Photos_Extension_Thumbnail+%V MZend_Gdata_Photos_Extension_Size+)U UZend_Gdata_Photos_Extension_Rotation++T YZend_Gdata_Photos_Extension_QuotaLimit+-S ]Zend_Gdata_Photos_Extension_QuotaCurrent+)R UZend_Gdata_Photos_Extension_Position+(Q SZend_Gdata_Photos_Extension_PhotoId+3P iZend_Gdata_Photos_Extension_NumPhotosRemaining+*O WZend_Gdata_Photos_Extension_NumPhotos+)N UZend_Gdata_Photos_Extension_Nickname+%M MZend_Gdata_Photos_Extension_Name+2L gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum+)K UZend_Gdata_Photos_Extension_Location+#J IZend_Gdata_Photos_Extension_Id+'I QZend_Gdata_Photos_Extension_Height+2H gZend_Gdata_Photos_Extension_CommentingEnabled+-G ]Zend_Gdata_Photos_Extension_CommentCount+'F QZend_Gdata_Photos_Extension_Client+)E UZend_Gdata_Photos_Extension_Checksum+*D WZend_Gdata_Photos_Extension_BytesUsed+(C SZend_Gdata_Photos_Extension_AlbumId+'B QZend_Gdata_Photos_Extension_Access+#A IZend_Gdata_Photos_CommentEntry+!@ EZend_Gdata_Photos_AlbumQuery+ ? CZend_Gdata_Photos_AlbumFeed+!> EZend_Gdata_Photos_AlbumEntry+= 3Zend_Gdata_MimeFile+< ?Zend_Gdata_MimeBodyString+; AZend_Gdata_MediaMimeStream+: -Zend_Gdata_Media+9 7Zend_Gdata_Media_Feed+*8 WZend_Gdata_Media_Extension_MediaTitle+.7 _Zend_Gdata_Media_Extension_MediaThumbnail+)6 UZend_Gdata_Media_Extension_MediaText+05 cZend_Gdata_Media_Extension_MediaRestriction++4 YZend_Gdata_Media_Extension_MediaRating++3 YZend_Gdata_Media_Extension_MediaPlayer+-2 ]Zend_Gdata_Media_Extension_MediaKeywords+)1 UZend_Gdata_Media_Extension_MediaHash+*0 WZend_Gdata_Media_Extension_MediaGroup+0/ cZend_Gdata_Media_Extension_MediaDescription++. YZend_Gdata_Media_Extension_MediaCredit+.- _Zend_Gdata_Media_Extension_MediaCopyright+,, [Zend_Gdata_Media_Extension_MediaContent+-+ ]Zend_Gdata_Media_Extension_MediaCategory+* 9Zend_Gdata_Media_Entry+) AZend_Gdata_Kind_EventEntry+( 7Zend_Gdata_HttpClient+*' WZend_Gdata_HttpAdapterStreamingSocket+)& UZend_Gdata_HttpAdapterStreamingProxy+% /Zend_Gdata_Health+$ ;Zend_Gdata_Health_Query+&# OZend_Gdata_Health_ProfileListFeed+'" QZend_Gdata_Health_ProfileListEntry+"! GZend_Gdata_Health_ProfileFeed+#  IZend_Gdata_Health_ProfileEntry+$ KZend_Gdata_Health_Extension_Ccr+ )Zend_Gdata_Geo+ 3Zend_Gdata_Geo_Feed+$ KZend_Gdata_Geo_Extension_GmlPos+& OZend_Gdata_Geo_Extension_GmlPoint+) UZend_Gdata_Geo_Extension_GeoRssWhere+ 5Zend_Gdata_Geo_Entry+ -Zend_Gdata_Gbase+" GZend_Gdata_Gbase_SnippetQuery+! EZend_Gdata_Gbase_SnippetFeed+" GZend_Gdata_Gbase_SnippetEntry+ 9Zend_Gdata_Gbase_Query+   \  sS*d7Z)sE\,



w
G
				X	.	 qFc6l>fA uM'x]7Q|\3                                              M ?Zend_InfoCard_Xml_Element+ L CZend_InfoCard_Xml_Assertion+%K MZend_InfoCard_Xml_Assertion_Saml+J ;Zend_InfoCard_Exception+%I MZend_InfoCard_Exception_Abstract+H 5Zend_InfoCard_Claims+G 5Zend_InfoCard_Cipher+5F mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc+5E mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc+4D kZend_InfoCard_Cipher_Symmetric_Adapter_Abstract+)C UZend_InfoCard_Cipher_Pki_Adapter_Rsa+.B _Zend_InfoCard_Cipher_Pki_Adapter_Abstract+#A IZend_InfoCard_Cipher_Exception+$@ KZend_InfoCard_Adapter_Exception+"? GZend_InfoCard_Adapter_Default+> 1Zend_Http_Response+= ?Zend_Http_Response_Stream+< 3Zend_Http_Exception+; 3Zend_Http_CookieJar+: -Zend_Http_Cookie+9 -Zend_Http_Client+8 AZend_Http_Client_Exception+"7 GZend_Http_Client_Adapter_Test+$6 KZend_Http_Client_Adapter_Socket+#5 IZend_Http_Client_Adapter_Proxy+'4 QZend_Http_Client_Adapter_Exception+"3 GZend_Http_Client_Adapter_Curl+2 !Zend_Gdata+1 1Zend_Gdata_YouTube+"0 GZend_Gdata_YouTube_VideoQuery+!/ EZend_Gdata_YouTube_VideoFeed+". GZend_Gdata_YouTube_VideoEntry+(- SZend_Gdata_YouTube_UserProfileEntry+(, SZend_Gdata_YouTube_SubscriptionFeed+)+ UZend_Gdata_YouTube_SubscriptionEntry+)* UZend_Gdata_YouTube_PlaylistVideoFeed+*) WZend_Gdata_YouTube_PlaylistVideoEntry+(( SZend_Gdata_YouTube_PlaylistListFeed+)' UZend_Gdata_YouTube_PlaylistListEntry+"& GZend_Gdata_YouTube_MediaEntry+!% EZend_Gdata_YouTube_InboxFeed+"$ GZend_Gdata_YouTube_InboxEntry+)# UZend_Gdata_YouTube_Extension_VideoId+*" WZend_Gdata_YouTube_Extension_Username+*! WZend_Gdata_YouTube_Extension_Uploaded+'  QZend_Gdata_YouTube_Extension_Token+( SZend_Gdata_YouTube_Extension_Status+, [Zend_Gdata_YouTube_Extension_Statistics+' QZend_Gdata_YouTube_Extension_State+( SZend_Gdata_YouTube_Extension_School+- ]Zend_Gdata_YouTube_Extension_ReleaseDate+. _Zend_Gdata_YouTube_Extension_Relationship+* WZend_Gdata_YouTube_Extension_Recorded+& OZend_Gdata_YouTube_Extension_Racy+- ]Zend_Gdata_YouTube_Extension_QueryString+) UZend_Gdata_YouTube_Extension_Private+* WZend_Gdata_YouTube_Extension_Position+/ aZend_Gdata_YouTube_Extension_PlaylistTitle+, [Zend_Gdata_YouTube_Extension_PlaylistId+, [Zend_Gdata_YouTube_Extension_Occupation+) UZend_Gdata_YouTube_Extension_NoEmbed+' QZend_Gdata_YouTube_Extension_Music+( SZend_Gdata_YouTube_Extension_Movies+- ]Zend_Gdata_YouTube_Extension_MediaRating+, [Zend_Gdata_YouTube_Extension_MediaGroup+- ]Zend_Gdata_YouTube_Extension_MediaCredit+. _Zend_Gdata_YouTube_Extension_MediaContent+*
 WZend_Gdata_YouTube_Extension_Location+&	 OZend_Gdata_YouTube_Extension_Link+* WZend_Gdata_YouTube_Extension_LastName+* WZend_Gdata_YouTube_Extension_Hometown+) UZend_Gdata_YouTube_Extension_Hobbies+( SZend_Gdata_YouTube_Extension_Gender++ YZend_Gdata_YouTube_Extension_FirstName+* WZend_Gdata_YouTube_Extension_Duration+- ]Zend_Gdata_YouTube_Extension_Description++ YZend_Gdata_YouTube_Extension_CountHint+)  UZend_Gdata_YouTube_Extension_Control+) UZend_Gdata_YouTube_Extension_Company+'~ QZend_Gdata_YouTube_Extension_Books+%} MZend_Gdata_YouTube_Extension_Age+)| UZend_Gdata_YouTube_Extension_AboutMe+#{ IZend_Gdata_YouTube_ContactFeed+$z KZend_Gdata_YouTube_ContactEntry+#y IZend_Gdata_YouTube_CommentFeed+$x KZend_Gdata_YouTube_CommentEntry+$w KZend_Gdata_YouTube_ActivityFeed+%v MZend_Gdata_YouTube_ActivityEntry+u ;Zend_Gdata_Spreadsheets+*t WZend_Gdata_Spreadsheets_WorksheetFeed++s YZend_Gdata_Spreadsheets_WorksheetEntry+,r [Zend_Gdata_Spreadsheets_SpreadsheetFeed+   p  xQ-_`/tQ+
fT 




w
Z
>
)
					l	O	3	qBg2{]F4oJ1lK+
dI)p_C$
nN!               '= QZend_Mail_Protocol_Smtp_Auth_Login+)< UZend_Mail_Protocol_Smtp_Auth_Crammd5+; ;Zend_Mail_Protocol_Pop3+: ;Zend_Mail_Protocol_Imap+!9 EZend_Mail_Protocol_Exception+ 8 CZend_Mail_Protocol_Abstract+7 )Zend_Mail_Part+6 3Zend_Mail_Part_File+5 /Zend_Mail_Message+4 9Zend_Mail_Message_File+3 3Zend_Mail_Exception+2 Zend_Log+ 1 CZend_Log_Writer_ZendMonitor+0 9Zend_Log_Writer_Syslog+/ 9Zend_Log_Writer_Stream+. 5Zend_Log_Writer_Null+- 5Zend_Log_Writer_Mock+, 5Zend_Log_Writer_Mail++ ;Zend_Log_Writer_Firebug+* 1Zend_Log_Writer_Db+) =Zend_Log_Writer_Abstract+( 9Zend_Log_Formatter_Xml+' ?Zend_Log_Formatter_Simple+& AZend_Log_Formatter_Firebug+% =Zend_Log_Filter_Suppress+$ =Zend_Log_Filter_Priority+# ;Zend_Log_Filter_Message+" =Zend_Log_Filter_Abstract+! 1Zend_Log_Exception+  #Zend_Locale+ -Zend_Locale_Math+ =Zend_Locale_Math_PhpMath+ AZend_Locale_Math_Exception+ 1Zend_Locale_Format+ 7Zend_Locale_Exception+ -Zend_Locale_Data+! EZend_Locale_Data_Translation+ #Zend_Loader+ =Zend_Loader_PluginLoader+' QZend_Loader_PluginLoader_Exception+ 7Zend_Loader_Exception+ 9Zend_Loader_Autoloader+$ KZend_Loader_Autoloader_Resource+ Zend_Ldap+ )Zend_Ldap_Node+ 7Zend_Ldap_Node_Schema+# IZend_Ldap_Node_Schema_OpenLdap+/ aZend_Ldap_Node_Schema_ObjectClass_OpenLdap+6 oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectory+ AZend_Ldap_Node_Schema_Item+1 eZend_Ldap_Node_Schema_AttributeType_OpenLdap+8
 sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory+*	 WZend_Ldap_Node_Schema_ActiveDirectory+ 9Zend_Ldap_Node_RootDse+$ KZend_Ldap_Node_RootDse_OpenLdap+& OZend_Ldap_Node_RootDse_eDirectory++ YZend_Ldap_Node_RootDse_ActiveDirectory+ ?Zend_Ldap_Node_Collection+$ KZend_Ldap_Node_ChildrenIterator+ ;Zend_Ldap_Node_Abstract+ 9Zend_Ldap_Ldif_Encoder+  -Zend_Ldap_Filter+ ;Zend_Ldap_Filter_String+~ 3Zend_Ldap_Filter_Or+} 5Zend_Ldap_Filter_Not+| 7Zend_Ldap_Filter_Mask+{ =Zend_Ldap_Filter_Logical+z AZend_Ldap_Filter_Exception+y 5Zend_Ldap_Filter_And+x ?Zend_Ldap_Filter_Abstract+w 3Zend_Ldap_Exception+v %Zend_Ldap_Dn+u 3Zend_Ldap_Converter+t 5Zend_Ldap_Collection+*s WZend_Ldap_Collection_Iterator_Default+r 3Zend_Ldap_Attribute+q #Zend_Layout+p 7Zend_Layout_Exception+)o UZend_Layout_Controller_Plugin_Layout+0n cZend_Layout_Controller_Action_Helper_Layout+m Zend_Json+l -Zend_Json_Server+k 5Zend_Json_Server_Smd+!j EZend_Json_Server_Smd_Service+i ?Zend_Json_Server_Response+#h IZend_Json_Server_Response_Http+g =Zend_Json_Server_Request+"f GZend_Json_Server_Request_Http+e AZend_Json_Server_Exception+d 9Zend_Json_Server_Error+c 9Zend_Json_Server_Cache+b )Zend_Json_Expr+a 3Zend_Json_Exception+` /Zend_Json_Encoder+_ /Zend_Json_Decoder+^ 'Zend_InfoCard+-] ]Zend_InfoCard_Xml_SecurityTokenReference+\ AZend_InfoCard_Xml_Security+)[ UZend_InfoCard_Xml_Security_Transform+4Z kZend_InfoCard_Xml_Security_Transform_XmlExcC14N+3Y iZend_InfoCard_Xml_Security_Transform_Exception+<X {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignature+)W UZend_InfoCard_Xml_Security_Exception+V ?Zend_InfoCard_Xml_KeyInfo+&U OZend_InfoCard_Xml_KeyInfo_XmlDSig+&T OZend_InfoCard_Xml_KeyInfo_Default+'S QZend_InfoCard_Xml_KeyInfo_Abstract+ R CZend_InfoCard_Xml_Exception+#Q IZend_InfoCard_Xml_EncryptedKey+$P KZend_InfoCard_Xml_EncryptedData++O YZend_InfoCard_Xml_EncryptedData_XmlEnc+-N ]Zend_InfoCard_Xml_EncryptedData_Abstract+   v  nET:yW2lEeC(




l
O
3
					{	Y	=		sW0_A#sa?rV9lE$p]3hCyL$              3 CZend_Paginator_Adapter_Null+$2 KZend_Paginator_Adapter_Iterator+)1 UZend_Paginator_Adapter_DbTableSelect+$0 KZend_Paginator_Adapter_DbSelect+!/ EZend_Paginator_Adapter_Array+. #Zend_OpenId+- 5Zend_OpenId_Provider+, ?Zend_OpenId_Provider_User+&+ OZend_OpenId_Provider_User_Session+!* EZend_OpenId_Provider_Storage+&) OZend_OpenId_Provider_Storage_File+( 7Zend_OpenId_Extension+' AZend_OpenId_Extension_Sreg+& 7Zend_OpenId_Exception+% 5Zend_OpenId_Consumer+!$ EZend_OpenId_Consumer_Storage+&# OZend_OpenId_Consumer_Storage_File+" !Zend_Oauth+! -Zend_Oauth_Token+  =Zend_Oauth_Token_Request+' QZend_Oauth_Token_AuthorizedRequest+ ;Zend_Oauth_Token_Access++ YZend_Oauth_Signature_SignatureAbstract+ =Zend_Oauth_Signature_Rsa+# IZend_Oauth_Signature_Plaintext+ ?Zend_Oauth_Signature_Hmac+ +Zend_Oauth_Http+ ;Zend_Oauth_Http_Utility+& OZend_Oauth_Http_UserAuthorization+! EZend_Oauth_Http_RequestToken+  CZend_Oauth_Http_AccessToken+ 5Zend_Oauth_Exception+ 3Zend_Oauth_Consumer+ /Zend_Oauth_Config+ /Zend_Oauth_Client+ +Zend_Navigation+ 5Zend_Navigation_Page+ =Zend_Navigation_Page_Uri+ =Zend_Navigation_Page_Mvc+ ?Zend_Navigation_Exception+ ?Zend_Navigation_Container+
 Zend_Mime+	 )Zend_Mime_Part+ /Zend_Mime_Message+ 3Zend_Mime_Exception+ -Zend_Mime_Decode+ #Zend_Memory+ /Zend_Memory_Value+ 3Zend_Memory_Manager+ 7Zend_Memory_Exception+ 7Zend_Memory_Container+"  GZend_Memory_Container_Movable+! EZend_Memory_Container_Locked+!~ EZend_Memory_AccessController+} 3Zend_Measure_Weight+| 3Zend_Measure_Volume+%{ MZend_Measure_Viscosity_Kinematic+#z IZend_Measure_Viscosity_Dynamic+y 3Zend_Measure_Torque+x /Zend_Measure_Time+w =Zend_Measure_Temperature+v 1Zend_Measure_Speed+u 7Zend_Measure_Pressure+t 1Zend_Measure_Power+s 3Zend_Measure_Number+r 9Zend_Measure_Lightness+q 3Zend_Measure_Length+p ?Zend_Measure_Illumination+o 9Zend_Measure_Frequency+n 1Zend_Measure_Force+m =Zend_Measure_Flow_Volume+l 9Zend_Measure_Flow_Mole+k 9Zend_Measure_Flow_Mass+j 9Zend_Measure_Exception+i 3Zend_Measure_Energy+h 5Zend_Measure_Density+g 5Zend_Measure_Current+ f CZend_Measure_Cooking_Weight+ e CZend_Measure_Cooking_Volume+d =Zend_Measure_Capacitance+c 3Zend_Measure_Binary+b /Zend_Measure_Area+a 1Zend_Measure_Angle+` ?Zend_Measure_Acceleration+_ 7Zend_Measure_Abstract+^ #Zend_Markup+] 7Zend_Markup_TokenList+\ /Zend_Markup_Token+*[ WZend_Markup_Renderer_RendererAbstract+Z ?Zend_Markup_Renderer_Html+"Y GZend_Markup_Renderer_Html_Url+#X IZend_Markup_Renderer_Html_List+"W GZend_Markup_Renderer_Html_Img++V YZend_Markup_Renderer_Html_HtmlAbstract+#U IZend_Markup_Renderer_Html_Code+#T IZend_Markup_Renderer_Exception+S AZend_Markup_Parser_Textile+!R EZend_Markup_Parser_Exception+Q ?Zend_Markup_Parser_Bbcode+P 7Zend_Markup_Exception+O Zend_Mail+N =Zend_Mail_Transport_Smtp+!M EZend_Mail_Transport_Sendmail+"L GZend_Mail_Transport_Exception+!K EZend_Mail_Transport_Abstract+J /Zend_Mail_Storage+'I QZend_Mail_Storage_Writable_Maildir+H 9Zend_Mail_Storage_Pop3+G 9Zend_Mail_Storage_Mbox+F ?Zend_Mail_Storage_Maildir+E 9Zend_Mail_Storage_Imap+D =Zend_Mail_Storage_Folder+"C GZend_Mail_Storage_Folder_Mbox+%B MZend_Mail_Storage_Folder_Maildir+ A CZend_Mail_Storage_Exception+@ AZend_Mail_Storage_Abstract+? ;Zend_Mail_Protocol_Smtp+'> QZend_Mail_Protocol_Smtp_Auth_Plain+   j Y+gJ'eA# oD# vQ.





g
F
				U	*	c?!pG$~^C}a6	xP,
iS;V ?                                     : wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique+> Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique+7 qZend_Pdf_Resource_Font_Simple_Standard_CourierBold+3 iZend_Pdf_Resource_Font_Simple_Standard_Courier+) UZend_Pdf_Resource_Font_Simple_Parsed+2 gZend_Pdf_Resource_Font_Simple_Parsed_TrueType+* WZend_Pdf_Resource_Font_FontDescriptor+% MZend_Pdf_Resource_Font_Extracted+# IZend_Pdf_Resource_Font_CidFont+, [Zend_Pdf_Resource_Font_CidFont_TrueType+3 iZend_Pdf_RecursivelyIteratableObjectsContainer+ +Zend_Pdf_Parser+ 'Zend_Pdf_Page+ -Zend_Pdf_Outline+ ;Zend_Pdf_Outline_Loaded+ =Zend_Pdf_Outline_Created+ /Zend_Pdf_NameTree+ )Zend_Pdf_Image+ 'Zend_Pdf_Font+
 ?Zend_Pdf_Filter_RunLength+ 	 CZend_Pdf_Filter_Compression+$ KZend_Pdf_Filter_Compression_Lzw+& OZend_Pdf_Filter_Compression_Flate+ =Zend_Pdf_Filter_AsciiHex+ ;Zend_Pdf_Filter_Ascii85+" GZend_Pdf_FileParserDataSource+) UZend_Pdf_FileParserDataSource_String+' QZend_Pdf_FileParserDataSource_File+ 3Zend_Pdf_FileParser+  ?Zend_Pdf_FileParser_Image+" GZend_Pdf_FileParser_Image_Png+~ =Zend_Pdf_FileParser_Font+&} OZend_Pdf_FileParser_Font_OpenType+/| aZend_Pdf_FileParser_Font_OpenType_TrueType+{ 1Zend_Pdf_Exception+z ;Zend_Pdf_ElementFactory+"y GZend_Pdf_ElementFactory_Proxy+x -Zend_Pdf_Element+w ;Zend_Pdf_Element_String+#v IZend_Pdf_Element_String_Binary+u ;Zend_Pdf_Element_Stream+t AZend_Pdf_Element_Reference+%s MZend_Pdf_Element_Reference_Table+'r QZend_Pdf_Element_Reference_Context+q ;Zend_Pdf_Element_Object+#p IZend_Pdf_Element_Object_Stream+o =Zend_Pdf_Element_Numeric+n 7Zend_Pdf_Element_Null+m 7Zend_Pdf_Element_Name+ l CZend_Pdf_Element_Dictionary+k =Zend_Pdf_Element_Boolean+j 9Zend_Pdf_Element_Array+i 5Zend_Pdf_Destination+h ?Zend_Pdf_Destination_Zoom+!g EZend_Pdf_Destination_Unknown+f AZend_Pdf_Destination_Named+'e QZend_Pdf_Destination_FitVertically+&d OZend_Pdf_Destination_FitRectangle+)c UZend_Pdf_Destination_FitHorizontally+2b gZend_Pdf_Destination_FitBoundingBoxVertically+4a kZend_Pdf_Destination_FitBoundingBoxHorizontally+(` SZend_Pdf_Destination_FitBoundingBox+_ =Zend_Pdf_Destination_Fit+"^ GZend_Pdf_Destination_Explicit+] )Zend_Pdf_Color+\ 1Zend_Pdf_Color_Rgb+[ 3Zend_Pdf_Color_Html+Z =Zend_Pdf_Color_GrayScale+Y 3Zend_Pdf_Color_Cmyk+X 'Zend_Pdf_Cmap+W AZend_Pdf_Cmap_TrimmedTable+!V EZend_Pdf_Cmap_SegmentToDelta+U AZend_Pdf_Cmap_ByteEncoding+&T OZend_Pdf_Cmap_ByteEncoding_Static+S 3Zend_Pdf_Annotation+R =Zend_Pdf_Annotation_Text+Q AZend_Pdf_Annotation_Markup+P =Zend_Pdf_Annotation_Link+'O QZend_Pdf_Annotation_FileAttachment+N +Zend_Pdf_Action+M 3Zend_Pdf_Action_URI+L ;Zend_Pdf_Action_Unknown+K 7Zend_Pdf_Action_Trans+J 9Zend_Pdf_Action_Thread+I AZend_Pdf_Action_SubmitForm+H 7Zend_Pdf_Action_Sound+ G CZend_Pdf_Action_SetOCGState+F ?Zend_Pdf_Action_ResetForm+E ?Zend_Pdf_Action_Rendition+D 7Zend_Pdf_Action_Named+C 7Zend_Pdf_Action_Movie+B 9Zend_Pdf_Action_Launch+A AZend_Pdf_Action_JavaScript+@ AZend_Pdf_Action_ImportData+? 5Zend_Pdf_Action_Hide+> 7Zend_Pdf_Action_GoToR+= 7Zend_Pdf_Action_GoToE+< AZend_Pdf_Action_GoTo3DView+; 5Zend_Pdf_Action_GoTo+: )Zend_Paginator+-9 ]Zend_Paginator_SerializableLimitIterator+*8 WZend_Paginator_ScrollingStyle_Sliding+*7 WZend_Paginator_ScrollingStyle_Jumping+*6 WZend_Paginator_ScrollingStyle_Elastic+&5 OZend_Paginator_ScrollingStyle_All+4 =Zend_Paginator_Exception+   ^  EWwQ,X> 	p_6



w
^
:
					a	A	gG({Z8v`=fM/_#SRoF                                            %{ MZend_Search_Lucene_Document_Html+*z WZend_Search_Lucene_Document_Exception+%y MZend_Search_Lucene_Document_Docx+,x [Zend_Search_Lucene_Analysis_TokenFilter+6w oZend_Search_Lucene_Analysis_TokenFilter_StopWords+7v qZend_Search_Lucene_Analysis_TokenFilter_ShortWords+:u wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8+6t oZend_Search_Lucene_Analysis_TokenFilter_LowerCase+&s OZend_Search_Lucene_Analysis_Token+)r UZend_Search_Lucene_Analysis_Analyzer+0q cZend_Search_Lucene_Analysis_Analyzer_Common+8p sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num+Io Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive+5n mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8+Fm Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive+8l sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum+Ik Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive+5j mZend_Search_Lucene_Analysis_Analyzer_Common_Text+Fi Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive+h 7Zend_Search_Exception+g -Zend_Rest_Server+f AZend_Rest_Server_Exception+e +Zend_Rest_Route+d 3Zend_Rest_Exception+c 5Zend_Rest_Controller+b -Zend_Rest_Client+a ;Zend_Rest_Client_Result+&` OZend_Rest_Client_Result_Exception+_ AZend_Rest_Client_Exception+^ 'Zend_Registry+] =Zend_Reflection_Property+\ ?Zend_Reflection_Parameter+[ 9Zend_Reflection_Method+Z =Zend_Reflection_Function+Y 5Zend_Reflection_File+X ?Zend_Reflection_Extension+W ?Zend_Reflection_Exception+V =Zend_Reflection_Docblock+!U EZend_Reflection_Docblock_Tag+(T SZend_Reflection_Docblock_Tag_Return+'S QZend_Reflection_Docblock_Tag_Param+R 7Zend_Reflection_Class+Q !Zend_Queue+P 9Zend_Queue_Stomp_Frame+O ;Zend_Queue_Stomp_Client+'N QZend_Queue_Stomp_Client_Connection+M 1Zend_Queue_Message+#L IZend_Queue_Message_PlatformJob+ K CZend_Queue_Message_Iterator+J 5Zend_Queue_Exception+(I SZend_Queue_Adapter_PlatformJobQueue+H ;Zend_Queue_Adapter_Null+!G EZend_Queue_Adapter_Memcacheq+F 7Zend_Queue_Adapter_Db+ E CZend_Queue_Adapter_Db_Queue+"D GZend_Queue_Adapter_Db_Message+C =Zend_Queue_Adapter_Array+'B QZend_Queue_Adapter_AdapterAbstract+ A CZend_Queue_Adapter_Activemq+@ -Zend_ProgressBar+? AZend_ProgressBar_Exception+> =Zend_ProgressBar_Adapter+$= KZend_ProgressBar_Adapter_JsPush+$< KZend_ProgressBar_Adapter_JsPull+'; QZend_ProgressBar_Adapter_Exception+%: MZend_ProgressBar_Adapter_Console+9 Zend_Pdf+!8 EZend_Pdf_UpdateInfoContainer+7 -Zend_Pdf_Trailer+6 ;Zend_Pdf_Trailer_Keeper+5 AZend_Pdf_Trailer_Generator+4 +Zend_Pdf_Target+3 )Zend_Pdf_Style+2 7Zend_Pdf_StringParser+1 /Zend_Pdf_Resource+#0 IZend_Pdf_Resource_ImageFactory+/ ;Zend_Pdf_Resource_Image+!. EZend_Pdf_Resource_Image_Tiff+ - CZend_Pdf_Resource_Image_Png+!, EZend_Pdf_Resource_Image_Jpeg++ 9Zend_Pdf_Resource_Font+!* EZend_Pdf_Resource_Font_Type0+") GZend_Pdf_Resource_Font_Simple++( YZend_Pdf_Resource_Font_Simple_Standard+8' sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats+6& oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman+7% qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic+;$ yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic+5# mZend_Pdf_Resource_Font_Simple_Standard_TimesBold+2" gZend_Pdf_Resource_Font_Simple_Standard_Symbol+<! {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaOblique+A  Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique+9 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold+5 mZend_Pdf_Resource_Font_Simple_Standard_Helvetica+   X  ^9vKuF s@R$



_
#			u	G	W%r=wF]%n:|W/vY? nI                  $S KZend_Server_Reflection_Function+-R ]Zend_Server_Reflection_Function_Abstract+%Q MZend_Server_Reflection_Exception+!P EZend_Server_Reflection_Class+!O EZend_Server_Method_Prototype+!N EZend_Server_Method_Parameter+"M GZend_Server_Method_Definition+ L CZend_Server_Method_Callback+K 7Zend_Server_Exception+J 9Zend_Server_Definition+I /Zend_Server_Cache+H 5Zend_Server_Abstract+G +Zend_Serializer+F ?Zend_Serializer_Exception+!E EZend_Serializer_Adapter_Wddx+)D UZend_Serializer_Adapter_PythonPickle+)C UZend_Serializer_Adapter_PhpSerialize+$B KZend_Serializer_Adapter_PhpCode+!A EZend_Serializer_Adapter_Json+%@ MZend_Serializer_Adapter_Igbinary+!? EZend_Serializer_Adapter_Amf3+!> EZend_Serializer_Adapter_Amf0+,= [Zend_Serializer_Adapter_AdapterAbstract+< 1Zend_Search_Lucene+0; cZend_Search_Lucene_TermStreamsPriorityQueue+$: KZend_Search_Lucene_Storage_File++9 YZend_Search_Lucene_Storage_File_Memory+/8 aZend_Search_Lucene_Storage_File_Filesystem+)7 UZend_Search_Lucene_Storage_Directory+46 kZend_Search_Lucene_Storage_Directory_Filesystem+%5 MZend_Search_Lucene_Search_Weight+*4 WZend_Search_Lucene_Search_Weight_Term+,3 [Zend_Search_Lucene_Search_Weight_Phrase+/2 aZend_Search_Lucene_Search_Weight_MultiTerm++1 YZend_Search_Lucene_Search_Weight_Empty+-0 ]Zend_Search_Lucene_Search_Weight_Boolean+)/ UZend_Search_Lucene_Search_Similarity+1. eZend_Search_Lucene_Search_Similarity_Default+)- UZend_Search_Lucene_Search_QueryToken+3, iZend_Search_Lucene_Search_QueryParserException+1+ eZend_Search_Lucene_Search_QueryParserContext+** WZend_Search_Lucene_Search_QueryParser+)) UZend_Search_Lucene_Search_QueryLexer+'( QZend_Search_Lucene_Search_QueryHit+)' UZend_Search_Lucene_Search_QueryEntry+.& _Zend_Search_Lucene_Search_QueryEntry_Term+2% gZend_Search_Lucene_Search_QueryEntry_Subquery+0$ cZend_Search_Lucene_Search_QueryEntry_Phrase+$# KZend_Search_Lucene_Search_Query+-" ]Zend_Search_Lucene_Search_Query_Wildcard+)! UZend_Search_Lucene_Search_Query_Term+*  WZend_Search_Lucene_Search_Query_Range+2 gZend_Search_Lucene_Search_Query_Preprocessing+7 qZend_Search_Lucene_Search_Query_Preprocessing_Term+9 uZend_Search_Lucene_Search_Query_Preprocessing_Phrase+8 sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy++ YZend_Search_Lucene_Search_Query_Phrase+. _Zend_Search_Lucene_Search_Query_MultiTerm+2 gZend_Search_Lucene_Search_Query_Insignificant+* WZend_Search_Lucene_Search_Query_Fuzzy+* WZend_Search_Lucene_Search_Query_Empty+, [Zend_Search_Lucene_Search_Query_Boolean+2 gZend_Search_Lucene_Search_Highlighter_Default+: wZend_Search_Lucene_Search_BooleanExpressionRecognizer+ =Zend_Search_Lucene_Proxy+% MZend_Search_Lucene_PriorityQueue+/ aZend_Search_Lucene_Interface_MultiSearcher+# IZend_Search_Lucene_LockManager+$ KZend_Search_Lucene_Index_Writer+0 cZend_Search_Lucene_Index_TermsPriorityQueue+& OZend_Search_Lucene_Index_TermInfo+" GZend_Search_Lucene_Index_Term++ YZend_Search_Lucene_Index_SegmentWriter+8
 sZend_Search_Lucene_Index_SegmentWriter_StreamWriter+:	 wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter++ YZend_Search_Lucene_Index_SegmentMerger+) UZend_Search_Lucene_Index_SegmentInfo+' QZend_Search_Lucene_Index_FieldInfo+( SZend_Search_Lucene_Index_DocsFilter+. _Zend_Search_Lucene_Index_DictionaryLoader+! EZend_Search_Lucene_FSMAction+ 9Zend_Search_Lucene_FSM+ =Zend_Search_Lucene_Field+!  EZend_Search_Lucene_Exception+  CZend_Search_Lucene_Document+%~ MZend_Search_Lucene_Document_Xlsx+%} MZend_Search_Lucene_Document_Pptx+(| SZend_Search_Lucene_Document_OpenXml+   N  d9g>iCh?|[1



y
S
4
						V	2	
|G^R`1J{)og              Z! 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequest+T  )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequest+R %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequest+Y 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequest+Q #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequest+Q #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequest+a CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequest+N Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformation+L Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalance+J Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool+- ]Zend_Service_DeveloperGarden_LocalSearch+> Zend_Service_DeveloperGarden_LocalSearch_SearchParameters+7 qZend_Service_DeveloperGarden_LocalSearch_Exception+, [Zend_Service_DeveloperGarden_IpLocation+6 oZend_Service_DeveloperGarden_IpLocation_IpAddress++ YZend_Service_DeveloperGarden_Exception+, [Zend_Service_DeveloperGarden_Credential+0 cZend_Service_DeveloperGarden_ConferenceCall+C Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatus+C Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail+< {Zend_Service_DeveloperGarden_ConferenceCall_Participant+: wZend_Service_DeveloperGarden_ConferenceCall_Exception+D 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceSchedule+B
 Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail+C	 Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount+- ]Zend_Service_DeveloperGarden_Client_Soap+2 gZend_Service_DeveloperGarden_Client_Exception+7 qZend_Service_DeveloperGarden_Client_ClientAbstract+1 eZend_Service_DeveloperGarden_BaseUserService+A Zend_Service_DeveloperGarden_BaseUserService_AccountBalance+ 9Zend_Service_Delicious+& OZend_Service_Delicious_SimplePost+$ KZend_Service_Delicious_PostList+   CZend_Service_Delicious_Post+% MZend_Service_Delicious_Exception+ ~ CZend_Service_Audioscrobbler+} 3Zend_Service_Amazon+| ;Zend_Service_Amazon_Sqs+&{ OZend_Service_Amazon_Sqs_Exception+'z QZend_Service_Amazon_SimilarProduct+y 9Zend_Service_Amazon_S3+"x GZend_Service_Amazon_S3_Stream+%w MZend_Service_Amazon_S3_Exception+"v GZend_Service_Amazon_ResultSet+u ?Zend_Service_Amazon_Query+!t EZend_Service_Amazon_OfferSet+s ?Zend_Service_Amazon_Offer+&r OZend_Service_Amazon_ListmaniaList+q =Zend_Service_Amazon_Item+p ?Zend_Service_Amazon_Image+"o GZend_Service_Amazon_Exception+(n SZend_Service_Amazon_EditorialReview+m ;Zend_Service_Amazon_Ec2++l YZend_Service_Amazon_Ec2_Securitygroups+%k MZend_Service_Amazon_Ec2_Response+#j IZend_Service_Amazon_Ec2_Region+$i KZend_Service_Amazon_Ec2_Keypair+%h MZend_Service_Amazon_Ec2_Instance+-g ]Zend_Service_Amazon_Ec2_Instance_Windows+.f _Zend_Service_Amazon_Ec2_Instance_Reserved+"e GZend_Service_Amazon_Ec2_Image+&d OZend_Service_Amazon_Ec2_Exception+&c OZend_Service_Amazon_Ec2_Elasticip+ b CZend_Service_Amazon_Ec2_Ebs+'a QZend_Service_Amazon_Ec2_CloudWatch+.` _Zend_Service_Amazon_Ec2_Availabilityzones+%_ MZend_Service_Amazon_Ec2_Abstract+'^ QZend_Service_Amazon_CustomerReview+$] KZend_Service_Amazon_Accessories+!\ EZend_Service_Amazon_Abstract+[ 5Zend_Service_Akismet+Z 7Zend_Service_Abstract+Y 9Zend_Server_Reflection+'X QZend_Server_Reflection_ReturnValue+%W MZend_Server_Reflection_Prototype+%V MZend_Server_Reflection_Parameter+ U CZend_Server_Reflection_Node+"T GZend_Server_Reflection_Method+   /  A<"w\%


R
			=_GkP@9wi                                                                      \P 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponse+ZO 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseType+VN -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponse+XM 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseType+TL )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse+_K ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType+[J 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponse+WI /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType+SH 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponse+QG #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstract+SF 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponse+JE Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType+gD OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseType+cC GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponse+WB /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse+UA +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponse+S@ 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse+3? iZend_Service_DeveloperGarden_Response_BaseType+J> Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstract+C= Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCall+G< Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced+=; }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCall+A: Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatus+A9 Zend_Service_DeveloperGarden_Request_SmsValidation_Validate+N8 Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeyword+C7 Zend_Service_DeveloperGarden_Request_SmsValidation_Invalidate+L6 Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbers+B5 Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract+94 uZend_Service_DeveloperGarden_Request_SendSms_SendSMS+>3 Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS+92 uZend_Service_DeveloperGarden_Request_RequestAbstract+I1 Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequest+E0 Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest+3/ iZend_Service_DeveloperGarden_Request_Exception+R. %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequest+Y- 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequest+d, IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequest+Q+ #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequest+R* %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequest+Y) 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequest+d( IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequest+Q' #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequest+O& Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequest+U% +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequest+U$ +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequest+V# -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequest+a" CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequest+   /  5nTE+

t
		T5Kd%*PNbu%                                                   ; yZend_Service_DeveloperGarden_SecurityTokenServer_Cache+K~ Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstract+L} Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponse+P| !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponse+G{ Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponse+Jz Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponse+Ky Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2Response+Lx Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponse+Iw Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumber+Wv /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponse+Ju Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponse+Ut +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponse+Cs Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponse+Cr Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstract+Hq Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponse+Up +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponse+Qo #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponse+In Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception+;m yZend_Service_DeveloperGarden_Response_ResponseAbstract+Ol Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseType+Kk Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponse+Aj Zend_Service_DeveloperGarden_Response_IpLocation_RegionType+Ki Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseType+Gh Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponse+Lg Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationType+If Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType+>e Zend_Service_DeveloperGarden_Response_IpLocation_CityType+4d kZend_Service_DeveloperGarden_Response_Exception+Tc )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse+[b 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponse+fa MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponse+S` 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponse+T_ )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse+[^ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponse+f] MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponse+S\ 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponse+U[ +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType+QZ #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse+[Y 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseType+WX /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse+[W 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseType+WV /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse+\U 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseType+XT 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponse+gS OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseType+cR GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse+`Q AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType+   X  g8jB${]4sN+W)



r
M
#				f	F	a,U(vH"s1xLg6b*N                                     7W qZend_Service_WindowsAzure_Storage_SignedIdentifier+3V iZend_Service_WindowsAzure_Storage_QueueMessage+4U kZend_Service_WindowsAzure_Storage_QueueInstance+,T [Zend_Service_WindowsAzure_Storage_Queue+9S uZend_Service_WindowsAzure_Storage_DynamicTableEntity+3R iZend_Service_WindowsAzure_Storage_BlobInstance+4Q kZend_Service_WindowsAzure_Storage_BlobContainer++P YZend_Service_WindowsAzure_Storage_Blob+2O gZend_Service_WindowsAzure_Storage_Blob_Stream+;N yZend_Service_WindowsAzure_Storage_BatchStorageAbstract+,M [Zend_Service_WindowsAzure_Storage_Batch+-L ]Zend_Service_WindowsAzure_SessionHandler+>K Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract+1J eZend_Service_WindowsAzure_RetryPolicy_RetryN+2I gZend_Service_WindowsAzure_RetryPolicy_NoRetry+4H kZend_Service_WindowsAzure_RetryPolicy_Exception+(G SZend_Service_WindowsAzure_Exception+8F sZend_Service_WindowsAzure_Credentials_SharedKeyLite+4E kZend_Service_WindowsAzure_Credentials_SharedKey+AD Zend_Service_WindowsAzure_Credentials_SharedAccessSignature+>C Zend_Service_WindowsAzure_Credentials_CredentialsAbstract+B 5Zend_Service_Twitter+ A CZend_Service_Twitter_Search+#@ IZend_Service_Twitter_Exception+? ;Zend_Service_Technorati+#> IZend_Service_Technorati_Weblog+"= GZend_Service_Technorati_Utils+*< WZend_Service_Technorati_TagsResultSet+'; QZend_Service_Technorati_TagsResult+): UZend_Service_Technorati_TagResultSet+&9 OZend_Service_Technorati_TagResult+,8 [Zend_Service_Technorati_SearchResultSet+)7 UZend_Service_Technorati_SearchResult+&6 OZend_Service_Technorati_ResultSet+#5 IZend_Service_Technorati_Result+*4 WZend_Service_Technorati_KeyInfoResult+*3 WZend_Service_Technorati_GetInfoResult+&2 OZend_Service_Technorati_Exception+11 eZend_Service_Technorati_DailyCountsResultSet+.0 _Zend_Service_Technorati_DailyCountsResult+,/ [Zend_Service_Technorati_CosmosResultSet+). UZend_Service_Technorati_CosmosResult++- YZend_Service_Technorati_BlogInfoResult+#, IZend_Service_Technorati_Author++ ;Zend_Service_StrikeIron+(* SZend_Service_StrikeIron_ZipCodeInfo+2) gZend_Service_StrikeIron_USAddressVerification+-( ]Zend_Service_StrikeIron_SalesUseTaxBasic+&' OZend_Service_StrikeIron_Exception+&& OZend_Service_StrikeIron_Decorator+!% EZend_Service_StrikeIron_Base+$ ;Zend_Service_SlideShare+&# OZend_Service_SlideShare_SlideShow+&" OZend_Service_SlideShare_Exception+! 1Zend_Service_Simpy+$  KZend_Service_Simpy_WatchlistSet+* WZend_Service_Simpy_WatchlistFilterSet+' QZend_Service_Simpy_WatchlistFilter+! EZend_Service_Simpy_Watchlist+ ?Zend_Service_Simpy_TagSet+ 9Zend_Service_Simpy_Tag+ AZend_Service_Simpy_NoteSet+ ;Zend_Service_Simpy_Note+ AZend_Service_Simpy_LinkSet+! EZend_Service_Simpy_LinkQuery+ ;Zend_Service_Simpy_Link+ 9Zend_Service_ReCaptcha+$ KZend_Service_ReCaptcha_Response+$ KZend_Service_ReCaptcha_MailHide+. _Zend_Service_ReCaptcha_MailHide_Exception+% MZend_Service_ReCaptcha_Exception+ 7Zend_Service_Nirvanix+# IZend_Service_Nirvanix_Response+) UZend_Service_Nirvanix_Namespace_Imfs+) UZend_Service_Nirvanix_Namespace_Base+$ KZend_Service_Nirvanix_Exception+ 7Zend_Service_LiveDocx+$
 KZend_Service_LiveDocx_MailMerge+$	 KZend_Service_LiveDocx_Exception+ 3Zend_Service_Flickr+" GZend_Service_Flickr_ResultSet+ AZend_Service_Flickr_Result+ ?Zend_Service_Flickr_Image+ 9Zend_Service_Exception++ YZend_Service_DeveloperGarden_VoiceCall+/ aZend_Service_DeveloperGarden_SmsValidation+) UZend_Service_DeveloperGarden_SendSms+5  mZend_Service_DeveloperGarden_SecurityTokenServer+   d  _'_0	f9|T9a4




t
U
<

 				[	'a6eI+l?]+uGyZ2xY>( yO                2; gZend_Tool_Framework_Client_Console_HelpSystem+6: oZend_Tool_Framework_Client_Console_ArgumentParser+&9 OZend_Tool_Framework_Client_Config+(8 SZend_Tool_Framework_Client_Abstract+*7 WZend_Tool_Framework_Action_Repository+)6 UZend_Tool_Framework_Action_Exception+$5 KZend_Tool_Framework_Action_Base+4 'Zend_TimeSync+3 1Zend_TimeSync_Sntp+2 9Zend_TimeSync_Protocol+1 /Zend_TimeSync_Ntp+0 ;Zend_TimeSync_Exception+/ +Zend_Text_Table+. 3Zend_Text_Table_Row+- ?Zend_Text_Table_Exception+&, OZend_Text_Table_Decorator_Unicode+$+ KZend_Text_Table_Decorator_Ascii+* 9Zend_Text_Table_Column+) 3Zend_Text_MultiByte+( -Zend_Text_Figlet+' AZend_Text_Figlet_Exception+& 3Zend_Text_Exception+&% OZend_Test_PHPUnit_Db_SimpleTester+,$ [Zend_Test_PHPUnit_Db_Operation_Truncate+*# WZend_Test_PHPUnit_Db_Operation_Insert+-" ]Zend_Test_PHPUnit_Db_Operation_DeleteAll+*! WZend_Test_PHPUnit_Db_Metadata_Generic+#  IZend_Test_PHPUnit_Db_Exception+, [Zend_Test_PHPUnit_Db_DataSet_QueryTable+. _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet+0 cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet+) UZend_Test_PHPUnit_Db_DataSet_DbTable+* WZend_Test_PHPUnit_Db_DataSet_DbRowset+$ KZend_Test_PHPUnit_Db_Connection+' QZend_Test_PHPUnit_DatabaseTestCase+) UZend_Test_PHPUnit_ControllerTestCase+0 cZend_Test_PHPUnit_Constraint_ResponseHeader+* WZend_Test_PHPUnit_Constraint_Redirect++ YZend_Test_PHPUnit_Constraint_Exception+* WZend_Test_PHPUnit_Constraint_DomQuery+ 7Zend_Test_DbStatement+ 3Zend_Test_DbAdapter+ /Zend_Tag_ItemList+ 'Zend_Tag_Item+ 1Zend_Tag_Exception+ )Zend_Tag_Cloud+ =Zend_Tag_Cloud_Exception+! EZend_Tag_Cloud_Decorator_Tag+% MZend_Tag_Cloud_Decorator_HtmlTag+'
 QZend_Tag_Cloud_Decorator_HtmlCloud+'	 QZend_Tag_Cloud_Decorator_Exception+# IZend_Tag_Cloud_Decorator_Cloud+ )Zend_Soap_Wsdl+/ aZend_Soap_Wsdl_Strategy_DefaultComplexType+& OZend_Soap_Wsdl_Strategy_Composite+0 cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence+/ aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex+$ KZend_Soap_Wsdl_Strategy_AnyType+% MZend_Soap_Wsdl_Strategy_Abstract+  =Zend_Soap_Wsdl_Exception+ -Zend_Soap_Server+~ AZend_Soap_Server_Exception+} -Zend_Soap_Client+| 9Zend_Soap_Client_Local+{ AZend_Soap_Client_Exception+z ;Zend_Soap_Client_DotNet+y ;Zend_Soap_Client_Common+x 9Zend_Soap_AutoDiscover+%w MZend_Soap_AutoDiscover_Exception+v %Zend_Session+)u UZend_Session_Validator_HttpUserAgent+$t KZend_Session_Validator_Abstract+'s QZend_Session_SaveHandler_Exception+%r MZend_Session_SaveHandler_DbTable+q 9Zend_Session_Namespace+p 9Zend_Session_Exception+o 7Zend_Session_Abstract+n 1Zend_Service_Yahoo+$m KZend_Service_Yahoo_WebResultSet+!l EZend_Service_Yahoo_WebResult+&k OZend_Service_Yahoo_VideoResultSet+#j IZend_Service_Yahoo_VideoResult+!i EZend_Service_Yahoo_ResultSet+h ?Zend_Service_Yahoo_Result+)g UZend_Service_Yahoo_PageDataResultSet+&f OZend_Service_Yahoo_PageDataResult+%e MZend_Service_Yahoo_NewsResultSet+"d GZend_Service_Yahoo_NewsResult+&c OZend_Service_Yahoo_LocalResultSet+#b IZend_Service_Yahoo_LocalResult++a YZend_Service_Yahoo_InlinkDataResultSet+(` SZend_Service_Yahoo_InlinkDataResult+&_ OZend_Service_Yahoo_ImageResultSet+#^ IZend_Service_Yahoo_ImageResult+] =Zend_Service_Yahoo_Image+&\ OZend_Service_WindowsAzure_Storage+4[ kZend_Service_WindowsAzure_Storage_TableInstance+7Z qZend_Service_WindowsAzure_Storage_TableEntityQuery+2Y gZend_Service_WindowsAzure_Storage_TableEntity+,X [Zend_Service_WindowsAzure_Storage_Table+   K  ;SrGsM!o@



`
1
			~	M	T yMG^+O{HMo9      1 eZend_Tool_Project_Context_Zf_ModelsDirectory++ YZend_Tool_Project_Context_Zf_ModelFile+/ aZend_Tool_Project_Context_Zf_LogsDirectory+2 gZend_Tool_Project_Context_Zf_LocalesDirectory+2 gZend_Tool_Project_Context_Zf_LibraryDirectory+2 gZend_Tool_Project_Context_Zf_LayoutsDirectory+8  sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory+2 gZend_Tool_Project_Context_Zf_LayoutScriptFile+.~ _Zend_Tool_Project_Context_Zf_HtaccessFile+0} cZend_Tool_Project_Context_Zf_FormsDirectory+*| WZend_Tool_Project_Context_Zf_FormFile+-{ ]Zend_Tool_Project_Context_Zf_DbTableFile+2z gZend_Tool_Project_Context_Zf_DbTableDirectory+/y aZend_Tool_Project_Context_Zf_DataDirectory+6x oZend_Tool_Project_Context_Zf_ControllersDirectory+0w cZend_Tool_Project_Context_Zf_ControllerFile+2v gZend_Tool_Project_Context_Zf_ConfigsDirectory+,u [Zend_Tool_Project_Context_Zf_ConfigFile+0t cZend_Tool_Project_Context_Zf_CacheDirectory+/s aZend_Tool_Project_Context_Zf_BootstrapFile+6r oZend_Tool_Project_Context_Zf_ApplicationDirectory+7q qZend_Tool_Project_Context_Zf_ApplicationConfigFile+/p aZend_Tool_Project_Context_Zf_ApisDirectory+.o _Zend_Tool_Project_Context_Zf_ActionMethod+3n iZend_Tool_Project_Context_Zf_AbstractClassFile+@m Zend_Tool_Project_Context_System_ProjectProvidersDirectory+8l sZend_Tool_Project_Context_System_ProjectProfileFile+6k oZend_Tool_Project_Context_System_ProjectDirectory+)j UZend_Tool_Project_Context_Repository+.i _Zend_Tool_Project_Context_Filesystem_File+3h iZend_Tool_Project_Context_Filesystem_Directory+2g gZend_Tool_Project_Context_Filesystem_Abstract+(f SZend_Tool_Project_Context_Exception+-e ]Zend_Tool_Project_Context_Content_Engine+3d iZend_Tool_Project_Context_Content_Engine_Phtml+;c yZend_Tool_Project_Context_Content_Engine_CodeGenerator+0b cZend_Tool_Framework_System_Provider_Version+0a cZend_Tool_Framework_System_Provider_Phpinfo+1` eZend_Tool_Framework_System_Provider_Manifest+/_ aZend_Tool_Framework_System_Provider_Config+(^ SZend_Tool_Framework_System_Manifest+-] ]Zend_Tool_Framework_System_Action_Delete+-\ ]Zend_Tool_Framework_System_Action_Create+![ EZend_Tool_Framework_Registry++Z YZend_Tool_Framework_Registry_Exception++Y YZend_Tool_Framework_Provider_Signature+,X [Zend_Tool_Framework_Provider_Repository++W YZend_Tool_Framework_Provider_Exception+*V WZend_Tool_Framework_Provider_Abstract+&U OZend_Tool_Framework_Metadata_Tool+)T UZend_Tool_Framework_Metadata_Dynamic+'S QZend_Tool_Framework_Metadata_Basic+,R [Zend_Tool_Framework_Manifest_Repository++Q YZend_Tool_Framework_Manifest_Exception+1P eZend_Tool_Framework_Loader_IncludePathLoader+JO Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator++N YZend_Tool_Framework_Loader_BasicLoader+(M SZend_Tool_Framework_Loader_Abstract+"L GZend_Tool_Framework_Exception+'K QZend_Tool_Framework_Client_Storage+1J eZend_Tool_Framework_Client_Storage_Directory+(I SZend_Tool_Framework_Client_Response+DH 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator+'G QZend_Tool_Framework_Client_Request+(F SZend_Tool_Framework_Client_Manifest+9E uZend_Tool_Framework_Client_Interactive_InputResponse+8D sZend_Tool_Framework_Client_Interactive_InputRequest+8C sZend_Tool_Framework_Client_Interactive_InputHandler+)B UZend_Tool_Framework_Client_Exception+'A QZend_Tool_Framework_Client_Console+D@ 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Indention+D? 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizer+C> Zend_Tool_Framework_Client_Console_ResponseDecorator_Blockize+F= Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter+0< cZend_Tool_Framework_Client_Console_Manifest+   U  \'{;NEW#


n
4
 			R	.	W"lB`8d9nG$rS2d6oG#         [ CZend_Validate_Barcode_Ean18+ Z CZend_Validate_Barcode_Ean14+ Y CZend_Validate_Barcode_Ean13+ X CZend_Validate_Barcode_Ean12+$W KZend_Validate_Barcode_Code93ext+!V EZend_Validate_Barcode_Code93+$U KZend_Validate_Barcode_Code39ext+!T EZend_Validate_Barcode_Code39+,S [Zend_Validate_Barcode_Code25interleaved+!R EZend_Validate_Barcode_Code25+*Q WZend_Validate_Barcode_AdapterAbstract+P 3Zend_Validate_Alpha+O 3Zend_Validate_Alnum+N 9Zend_Validate_Abstract+M Zend_Uri+L 'Zend_Uri_Http+K 1Zend_Uri_Exception+J )Zend_Translate+I 7Zend_Translate_Plural+H =Zend_Translate_Exception+G 9Zend_Translate_Adapter+!F EZend_Translate_Adapter_XmlTm+!E EZend_Translate_Adapter_Xliff+D AZend_Translate_Adapter_Tmx+C AZend_Translate_Adapter_Tbx+B ?Zend_Translate_Adapter_Qt+A AZend_Translate_Adapter_Ini+#@ IZend_Translate_Adapter_Gettext+? AZend_Translate_Adapter_Csv+!> EZend_Translate_Adapter_Array+$= KZend_Tool_Project_Provider_View+$< KZend_Tool_Project_Provider_Test+/; aZend_Tool_Project_Provider_ProjectProvider+': QZend_Tool_Project_Provider_Project+'9 QZend_Tool_Project_Provider_Profile+&8 OZend_Tool_Project_Provider_Module+%7 MZend_Tool_Project_Provider_Model+(6 SZend_Tool_Project_Provider_Manifest+&5 OZend_Tool_Project_Provider_Layout+$4 KZend_Tool_Project_Provider_Form+)3 UZend_Tool_Project_Provider_Exception+'2 QZend_Tool_Project_Provider_DbTable+)1 UZend_Tool_Project_Provider_DbAdapter+*0 WZend_Tool_Project_Provider_Controller++/ YZend_Tool_Project_Provider_Application+&. OZend_Tool_Project_Provider_Action+(- SZend_Tool_Project_Provider_Abstract+, ?Zend_Tool_Project_Profile+'+ QZend_Tool_Project_Profile_Resource+9* uZend_Tool_Project_Profile_Resource_SearchConstraints+1) eZend_Tool_Project_Profile_Resource_Container+=( }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter+5' mZend_Tool_Project_Profile_Iterator_ContextFilter+-& ]Zend_Tool_Project_Profile_FileParser_Xml+(% SZend_Tool_Project_Profile_Exception+ $ CZend_Tool_Project_Exception+<# {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory+0" cZend_Tool_Project_Context_Zf_ViewsDirectory+6! oZend_Tool_Project_Context_Zf_ViewScriptsDirectory+0  cZend_Tool_Project_Context_Zf_ViewScriptFile+6 oZend_Tool_Project_Context_Zf_ViewHelpersDirectory+6 oZend_Tool_Project_Context_Zf_ViewFiltersDirectory+A Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory+2 gZend_Tool_Project_Context_Zf_UploadsDirectory+0 cZend_Tool_Project_Context_Zf_TestsDirectory+7 qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile+@ Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory+1 eZend_Tool_Project_Context_Zf_TestLibraryFile+6 oZend_Tool_Project_Context_Zf_TestLibraryDirectory+: wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFile+: wZend_Tool_Project_Context_Zf_TestApplicationDirectory+@ Zend_Tool_Project_Context_Zf_TestApplicationControllerFile+E Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory+> Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile+4 kZend_Tool_Project_Context_Zf_TemporaryDirectory+3 iZend_Tool_Project_Context_Zf_SessionsDirectory+8 sZend_Tool_Project_Context_Zf_SearchIndexesDirectory+< {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory+8 sZend_Tool_Project_Context_Zf_PublicScriptsDirectory+1 eZend_Tool_Project_Context_Zf_PublicIndexFile+7 qZend_Tool_Project_Context_Zf_PublicImagesDirectory+1
 eZend_Tool_Project_Context_Zf_PublicDirectory+5	 mZend_Tool_Project_Context_Zf_ProjectProviderFile+2 gZend_Tool_Project_Context_Zf_ModulesDirectory+1 eZend_Tool_Project_Context_Zf_ModuleDirectory+   p  rM( d?jL-eH%lJ% 



p
Q
-
					e	C	)	
~cD%yR/jH)Y4Y7a;hE#rR"        /K aZend_View_Helper_Navigation_HelperAbstract+,J [Zend_View_Helper_Navigation_Breadcrumbs+I ;Zend_View_Helper_Layout+H 7Zend_View_Helper_Json+"G GZend_View_Helper_InlineScript+#F IZend_View_Helper_HtmlQuicktime+E ?Zend_View_Helper_HtmlPage+ D CZend_View_Helper_HtmlObject+C ?Zend_View_Helper_HtmlList+B AZend_View_Helper_HtmlFlash+!A EZend_View_Helper_HtmlElement+@ AZend_View_Helper_HeadTitle+? AZend_View_Helper_HeadStyle+ > CZend_View_Helper_HeadScript+= ?Zend_View_Helper_HeadMeta+< ?Zend_View_Helper_HeadLink+"; GZend_View_Helper_FormTextarea+: ?Zend_View_Helper_FormText+ 9 CZend_View_Helper_FormSubmit+ 8 CZend_View_Helper_FormSelect+7 AZend_View_Helper_FormReset+6 AZend_View_Helper_FormRadio+"5 GZend_View_Helper_FormPassword+4 ?Zend_View_Helper_FormNote+'3 QZend_View_Helper_FormMultiCheckbox+2 AZend_View_Helper_FormLabel+1 AZend_View_Helper_FormImage+ 0 CZend_View_Helper_FormHidden+/ ?Zend_View_Helper_FormFile+ . CZend_View_Helper_FormErrors+!- EZend_View_Helper_FormElement+", GZend_View_Helper_FormCheckbox+ + CZend_View_Helper_FormButton+* 7Zend_View_Helper_Form+) ?Zend_View_Helper_Fieldset+( =Zend_View_Helper_Doctype+!' EZend_View_Helper_DeclareVars+& 9Zend_View_Helper_Cycle+% ?Zend_View_Helper_Currency+$ =Zend_View_Helper_BaseUrl+# ;Zend_View_Helper_Action+" ?Zend_View_Helper_Abstract+! 3Zend_View_Exception+  1Zend_View_Abstract+ %Zend_Version+ 'Zend_Validate+ AZend_Validate_StringLength+# IZend_Validate_Sitemap_Priority+ ?Zend_Validate_Sitemap_Loc+" GZend_Validate_Sitemap_Lastmod+% MZend_Validate_Sitemap_Changefreq+ 3Zend_Validate_Regex+ 9Zend_Validate_PostCode+ 9Zend_Validate_NotEmpty+ 9Zend_Validate_LessThan+ 1Zend_Validate_Isbn+ -Zend_Validate_Ip+ /Zend_Validate_Int+ 7Zend_Validate_InArray+ ;Zend_Validate_Identical+ 1Zend_Validate_Iban+ 9Zend_Validate_Hostname+ /Zend_Validate_Hex+ ?Zend_Validate_GreaterThan+ 3Zend_Validate_Float+!
 EZend_Validate_File_WordCount+	 ?Zend_Validate_File_Upload+ ;Zend_Validate_File_Size+ ;Zend_Validate_File_Sha1+! EZend_Validate_File_NotExists+  CZend_Validate_File_MimeType+ 9Zend_Validate_File_Md5+ AZend_Validate_File_IsImage+$ KZend_Validate_File_IsCompressed+! EZend_Validate_File_ImageSize+  ;Zend_Validate_File_Hash+! EZend_Validate_File_FilesSize+!~ EZend_Validate_File_Extension+} ?Zend_Validate_File_Exists+'| QZend_Validate_File_ExcludeMimeType+({ SZend_Validate_File_ExcludeExtension+z =Zend_Validate_File_Crc32+y =Zend_Validate_File_Count+x ;Zend_Validate_Exception+w AZend_Validate_EmailAddress+v 5Zend_Validate_Digits+"u GZend_Validate_Db_RecordExists+$t KZend_Validate_Db_NoRecordExists+s ?Zend_Validate_Db_Abstract+r 1Zend_Validate_Date+q =Zend_Validate_CreditCard+p 3Zend_Validate_Ccnum+o 9Zend_Validate_Callback+n 7Zend_Validate_Between+m 7Zend_Validate_Barcode+l AZend_Validate_Barcode_Upce+k AZend_Validate_Barcode_Upca+j AZend_Validate_Barcode_Sscc+$i KZend_Validate_Barcode_Royalmail+"h GZend_Validate_Barcode_Postnet+!g EZend_Validate_Barcode_Planet+#f IZend_Validate_Barcode_Leitcode+ e CZend_Validate_Barcode_Itf14+d AZend_Validate_Barcode_Issn+*c WZend_Validate_Barcode_IntelligentMail+$b KZend_Validate_Barcode_Identcode+!a EZend_Validate_Barcode_Gtin14+!` EZend_Validate_Barcode_Gtin13+!_ EZend_Validate_Barcode_Gtin12+^ AZend_Validate_Barcode_Ean8+] AZend_Validate_Barcode_Ean5+\ AZend_Validate_Barcode_Ean2+   i  ]2P\/wW*Z1



s
Y
/					x	V	9	uT/^@eF0g>\/zaB(b1n@                    4 ?Zend_Amf_Value_TraitsInfo,-3 ]Zend_Amf_Value_Messaging_RemotingMessage,*2 WZend_Amf_Value_Messaging_ErrorMessage,,1 [Zend_Amf_Value_Messaging_CommandMessage,*0 WZend_Amf_Value_Messaging_AsyncMessage,-/ ]Zend_Amf_Value_Messaging_ArrayCollection,0. cZend_Amf_Value_Messaging_AcknowledgeMessage,-- ]Zend_Amf_Value_Messaging_AbstractMessage,!, EZend_Amf_Value_MessageHeader,+ AZend_Amf_Value_MessageBody,* =Zend_Amf_Value_ByteArray,) AZend_Amf_Util_BinaryStream,( +Zend_Amf_Server,' ?Zend_Amf_Server_Exception,& /Zend_Amf_Response,% 9Zend_Amf_Response_Http,$ -Zend_Amf_Request,# 7Zend_Amf_Request_Http," ?Zend_Amf_Parse_TypeLoader,! ?Zend_Amf_Parse_Serializer,#  IZend_Amf_Parse_Resource_Stream,( SZend_Amf_Parse_Resource_MysqlResult,) UZend_Amf_Parse_Resource_MysqliResult,  CZend_Amf_Parse_OutputStream, AZend_Amf_Parse_InputStream,  CZend_Amf_Parse_Deserializer,# IZend_Amf_Parse_Amf3_Serializer,% MZend_Amf_Parse_Amf3_Deserializer,# IZend_Amf_Parse_Amf0_Serializer,% MZend_Amf_Parse_Amf0_Deserializer, 1Zend_Amf_Exception, 1Zend_Amf_Constants, 9Zend_Amf_Auth_Abstract,  CZend_Amf_Adobe_Introspector, AZend_Amf_Adobe_DbInspector, 3Zend_Amf_Adobe_Auth, Zend_Acl, 'Zend_Acl_Role, 9Zend_Acl_Role_Registry,% MZend_Acl_Role_Registry_Exception, /Zend_Acl_Resource, 1Zend_Acl_Exception,
 /Zend_XmlRpc_Value+	 =Zend_XmlRpc_Value_Struct+ =Zend_XmlRpc_Value_String+ =Zend_XmlRpc_Value_Scalar+ 7Zend_XmlRpc_Value_Nil+ ?Zend_XmlRpc_Value_Integer+  CZend_XmlRpc_Value_Exception+ =Zend_XmlRpc_Value_Double+ AZend_XmlRpc_Value_DateTime+! EZend_XmlRpc_Value_Collection+  ?Zend_XmlRpc_Value_Boolean+! EZend_XmlRpc_Value_BigInteger+~ =Zend_XmlRpc_Value_Base64+} ;Zend_XmlRpc_Value_Array+| 1Zend_XmlRpc_Server+{ ?Zend_XmlRpc_Server_System+z =Zend_XmlRpc_Server_Fault+!y EZend_XmlRpc_Server_Exception+x =Zend_XmlRpc_Server_Cache+w 5Zend_XmlRpc_Response+v ?Zend_XmlRpc_Response_Http+u 3Zend_XmlRpc_Request+t ?Zend_XmlRpc_Request_Stdin+s =Zend_XmlRpc_Request_Http+$r KZend_XmlRpc_Generator_XmlWriter+,q [Zend_XmlRpc_Generator_GeneratorAbstract+&p OZend_XmlRpc_Generator_DomDocument+o /Zend_XmlRpc_Fault+n 7Zend_XmlRpc_Exception+m 1Zend_XmlRpc_Client+#l IZend_XmlRpc_Client_ServerProxy++k YZend_XmlRpc_Client_ServerIntrospection++j YZend_XmlRpc_Client_IntrospectException+%i MZend_XmlRpc_Client_HttpException+&h OZend_XmlRpc_Client_FaultException+!g EZend_XmlRpc_Client_Exception+&f OZend_Wildfire_Protocol_JsonStream+!e EZend_Wildfire_Plugin_FirePhp+.d _Zend_Wildfire_Plugin_FirePhp_TableMessage+)c UZend_Wildfire_Plugin_FirePhp_Message+b ;Zend_Wildfire_Exception+&a OZend_Wildfire_Channel_HttpHeaders+` Zend_View+_ -Zend_View_Stream+^ 5Zend_View_Helper_Url+] AZend_View_Helper_Translate+\ AZend_View_Helper_ServerUrl+)[ UZend_View_Helper_RenderToPlaceholder+!Z EZend_View_Helper_Placeholder+*Y WZend_View_Helper_Placeholder_Registry+4X kZend_View_Helper_Placeholder_Registry_Exception++W YZend_View_Helper_Placeholder_Container+6V oZend_View_Helper_Placeholder_Container_Standalone+5U mZend_View_Helper_Placeholder_Container_Exception+4T kZend_View_Helper_Placeholder_Container_Abstract+!S EZend_View_Helper_PartialLoop+R =Zend_View_Helper_Partial+'Q QZend_View_Helper_Partial_Exception+'P QZend_View_Helper_PaginationControl+ O CZend_View_Helper_Navigation+(N SZend_View_Helper_Navigation_Sitemap+%M MZend_View_Helper_Navigation_Menu+&L OZend_View_Helper_Navigation_Links+   X  }GlK'd0	b9]9


i
?
				~	A	UPT$d,lJ tU&qN"f8             V CZend_Db_Statement_Interface,$U KZend_Currency_CurrencyInterface,)T UZend_Crypt_Math_BigInteger_Interface,+S YZend_Controller_Router_Route_Interface,%R MZend_Controller_Router_Interface,)Q UZend_Controller_Dispatcher_Interface,%P MZend_Controller_Action_Interface,O 5Zend_Captcha_Adapter,!N EZend_Cache_Backend_Interface,)M UZend_Cache_Backend_ExtendedInterface, L CZend_Auth_Storage_Interface, K CZend_Auth_Adapter_Interface,.J _Zend_Auth_Adapter_Http_Resolver_Interface,'I QZend_Application_Resource_Resource,4H kZend_Application_Bootstrap_ResourceBootstrapper,,G [Zend_Application_Bootstrap_Bootstrapper,F ;Zend_Acl_Role_Interface, E CZend_Acl_Resource_Interface,D ?Zend_Acl_Assert_Interface,#C IZend_Wildfire_Plugin_Interface+$B KZend_Wildfire_Channel_Interface+A 3Zend_View_Interface+'@ QZend_View_Helper_Navigation_Helper+? AZend_View_Helper_Interface+> ;Zend_Validate_Interface++= YZend_Validate_Barcode_AdapterInterface+3< iZend_Tool_Project_Profile_FileParser_Interface+:; wZend_Tool_Project_Context_System_TopLevelRestrictable+5: mZend_Tool_Project_Context_System_NotOverwritable+/9 aZend_Tool_Project_Context_System_Interface+(8 SZend_Tool_Project_Context_Interface++7 YZend_Tool_Framework_Registry_Interface+26 gZend_Tool_Framework_Registry_EnabledInterface+-5 ]Zend_Tool_Framework_Provider_Pretendable++4 YZend_Tool_Framework_Provider_Interface+.3 _Zend_Tool_Framework_Provider_Interactable+;2 yZend_Tool_Framework_Provider_DocblockManifestInterface++1 YZend_Tool_Framework_Metadata_Interface+.0 _Zend_Tool_Framework_Metadata_Attributable+6/ oZend_Tool_Framework_Manifest_ProviderManifestable+6. oZend_Tool_Framework_Manifest_MetadataManifestable++- YZend_Tool_Framework_Manifest_Interface++, YZend_Tool_Framework_Manifest_Indexable+4+ kZend_Tool_Framework_Manifest_ActionManifestable+)* UZend_Tool_Framework_Loader_Interface+8) sZend_Tool_Framework_Client_Storage_AdapterInterface+D( 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface+;' yZend_Tool_Framework_Client_Interactive_OutputInterface+:& wZend_Tool_Framework_Client_Interactive_InputInterface+)% UZend_Tool_Framework_Action_Interface+($ SZend_Text_Table_Decorator_Interface+# /Zend_Tag_Taggable+&" OZend_Soap_Wsdl_Strategy_Interface+%! MZend_Session_Validator_Interface+'  QZend_Session_SaveHandler_Interface+I Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Interface+ 7Zend_Server_Interface+- ]Zend_Serializer_Adapter_AdapterInterface+4 kZend_Search_Lucene_Search_Highlighter_Interface+! EZend_Search_Lucene_Interface+3 iZend_Search_Lucene_Index_TermsStream_Interface+$ KZend_Queue_Stomp_FrameInterface+0 cZend_Queue_Stomp_Client_ConnectionInterface+( SZend_Queue_Adapter_AdapterInterface+ ?Zend_Pdf_Filter_Interface+& OZend_Pdf_ElementFactory_Interface+, [Zend_Paginator_ScrollingStyle_Interface+$ KZend_Paginator_AdapterAggregate+% MZend_Paginator_Adapter_Interface+& OZend_Oauth_Config_ConfigInterface+$ KZend_Memory_Container_Interface+1 eZend_Markup_Renderer_TokenConverterInterface+' QZend_Markup_Parser_ParserInterface+) UZend_Mail_Storage_Writable_Interface+' QZend_Mail_Storage_Folder_Interface+ =Zend_Mail_Part_Interface+ 
 CZend_Mail_Message_Interface+!	 EZend_Log_Formatter_Interface+ ?Zend_Log_Filter_Interface+ ?Zend_Log_FactoryInterface+' QZend_Loader_PluginLoader_Interface+% MZend_Loader_Autoloader_Interface+0 cZend_Ldap_Node_Schema_ObjectClass_Interface+2 gZend_Ldap_Node_Schema_AttributeType_Interface+3 iZend_InfoCard_Xml_Security_Transform_Interface+( SZend_InfoCard_Xml_KeyInfo_Interface+(  SZend_InfoCard_Xml_Element_Interface+* WZend_InfoCard_Xml_Assertion_Interface+   i  qN#~R W- zN'uH)




m
E
#
				~	\	;	iDjBtT/\1kI(w]>"]9{O'                                     % MZend_CodeGenerator_Php_Exception,$ KZend_CodeGenerator_Php_Docblock,( SZend_CodeGenerator_Php_Docblock_Tag,/ aZend_CodeGenerator_Php_Docblock_Tag_Return,. _Zend_CodeGenerator_Php_Docblock_Tag_Param,0 cZend_CodeGenerator_Php_Docblock_Tag_License,! EZend_CodeGenerator_Php_Class,  CZend_CodeGenerator_Php_Body,$ KZend_CodeGenerator_Php_Abstract,! EZend_CodeGenerator_Exception,  CZend_CodeGenerator_Abstract, /Zend_Captcha_Word, 9Zend_Captcha_ReCaptcha, 1Zend_Captcha_Image, 3Zend_Captcha_Figlet, 9Zend_Captcha_Exception, /Zend_Captcha_Dumb, /Zend_Captcha_Base, !Zend_Cache,
 1Zend_Cache_Manager,	 =Zend_Cache_Frontend_Page, AZend_Cache_Frontend_Output,! EZend_Cache_Frontend_Function, =Zend_Cache_Frontend_File, ?Zend_Cache_Frontend_Class,  CZend_Cache_Frontend_Capture, 5Zend_Cache_Exception, +Zend_Cache_Core, 1Zend_Cache_Backend,"  GZend_Cache_Backend_ZendServer,( SZend_Cache_Backend_ZendServer_ShMem,'~ QZend_Cache_Backend_ZendServer_Disk,$} KZend_Cache_Backend_ZendPlatform,| ?Zend_Cache_Backend_Xcache,!{ EZend_Cache_Backend_TwoLevels,z ;Zend_Cache_Backend_Test,y ?Zend_Cache_Backend_Static,x ?Zend_Cache_Backend_Sqlite,!w EZend_Cache_Backend_Memcached,v ;Zend_Cache_Backend_File,!u EZend_Cache_Backend_BlackHole,t 9Zend_Cache_Backend_Apc,s %Zend_Barcode,+r YZend_Barcode_Renderer_RendererAbstract,q ?Zend_Barcode_Renderer_Pdf, p CZend_Barcode_Renderer_Image,$o KZend_Barcode_Renderer_Exception,n =Zend_Barcode_Object_Upce,m =Zend_Barcode_Object_Upca,"l GZend_Barcode_Object_Royalmail, k CZend_Barcode_Object_Postnet,j AZend_Barcode_Object_Planet,'i QZend_Barcode_Object_ObjectAbstract,!h EZend_Barcode_Object_Leitcode,g ?Zend_Barcode_Object_Itf14,"f GZend_Barcode_Object_Identcode,"e GZend_Barcode_Object_Exception,d ?Zend_Barcode_Object_Error,c =Zend_Barcode_Object_Ean8,b =Zend_Barcode_Object_Ean5,a =Zend_Barcode_Object_Ean2,` ?Zend_Barcode_Object_Ean13,_ AZend_Barcode_Object_Code39,*^ WZend_Barcode_Object_Code25interleaved,] AZend_Barcode_Object_Code25,\ 9Zend_Barcode_Exception,[ Zend_Auth,Z ?Zend_Auth_Storage_Session,$Y KZend_Auth_Storage_NonPersistent, X CZend_Auth_Storage_Exception,W -Zend_Auth_Result,V 3Zend_Auth_Exception,U =Zend_Auth_Adapter_OpenId,T 9Zend_Auth_Adapter_Ldap,S AZend_Auth_Adapter_InfoCard,R 9Zend_Auth_Adapter_Http,)Q UZend_Auth_Adapter_Http_Resolver_File,.P _Zend_Auth_Adapter_Http_Resolver_Exception, O CZend_Auth_Adapter_Exception,N =Zend_Auth_Adapter_Digest,M ?Zend_Auth_Adapter_DbTable,L -Zend_Application,#K IZend_Application_Resource_View,(J SZend_Application_Resource_Translate,&I OZend_Application_Resource_Session,%H MZend_Application_Resource_Router,/G aZend_Application_Resource_ResourceAbstract,)F UZend_Application_Resource_Navigation,&E OZend_Application_Resource_Multidb,&D OZend_Application_Resource_Modules,#C IZend_Application_Resource_Mail,"B GZend_Application_Resource_Log,%A MZend_Application_Resource_Locale,%@ MZend_Application_Resource_Layout,.? _Zend_Application_Resource_Frontcontroller,(> SZend_Application_Resource_Exception,#= IZend_Application_Resource_Dojo,!< EZend_Application_Resource_Db,+; YZend_Application_Resource_Cachemanager,&: OZend_Application_Module_Bootstrap,'9 QZend_Application_Module_Autoloader,8 AZend_Application_Exception,)7 UZend_Application_Bootstrap_Exception,16 eZend_Application_Bootstrap_BootstrapAbstract,)5 UZend_Application_Bootstrap_Bootstrap,   d  }W!}eDqU,]&Q&



^
2
				l	N	&V,_:jCe9qGsQ6rQ+|]8                                   CZend_Db_Adapter_Pdo_Ibm_Ids,   CZend_Db_Adapter_Pdo_Ibm_Db2,! EZend_Db_Adapter_Pdo_Abstract,~ 9Zend_Db_Adapter_Oracle,%} MZend_Db_Adapter_Oracle_Exception,| 9Zend_Db_Adapter_Mysqli,%{ MZend_Db_Adapter_Mysqli_Exception,z ?Zend_Db_Adapter_Exception,y 3Zend_Db_Adapter_Db2,"x GZend_Db_Adapter_Db2_Exception,w =Zend_Db_Adapter_Abstract,v Zend_Date,u 3Zend_Date_Exception,t 5Zend_Date_DateObject,s -Zend_Date_Cities,r 'Zend_Currency,q ;Zend_Currency_Exception,p !Zend_Crypt,o )Zend_Crypt_Rsa,n 1Zend_Crypt_Rsa_Key,m ?Zend_Crypt_Rsa_Key_Public,l AZend_Crypt_Rsa_Key_Private,k +Zend_Crypt_Math,j ?Zend_Crypt_Math_Exception,i AZend_Crypt_Math_BigInteger,#h IZend_Crypt_Math_BigInteger_Gmp,)g UZend_Crypt_Math_BigInteger_Exception,&f OZend_Crypt_Math_BigInteger_Bcmath,e +Zend_Crypt_Hmac,d ?Zend_Crypt_Hmac_Exception,c 5Zend_Crypt_Exception,b =Zend_Crypt_DiffieHellman,'a QZend_Crypt_DiffieHellman_Exception,!` EZend_Controller_Router_Route,(_ SZend_Controller_Router_Route_Static,'^ QZend_Controller_Router_Route_Regex,(] SZend_Controller_Router_Route_Module,*\ WZend_Controller_Router_Route_Hostname,'[ QZend_Controller_Router_Route_Chain,*Z WZend_Controller_Router_Route_Abstract,#Y IZend_Controller_Router_Rewrite,%X MZend_Controller_Router_Exception,$W KZend_Controller_Router_Abstract,*V WZend_Controller_Response_HttpTestCase,"U GZend_Controller_Response_Http,'T QZend_Controller_Response_Exception,!S EZend_Controller_Response_Cli,&R OZend_Controller_Response_Abstract,#Q IZend_Controller_Request_Simple,)P UZend_Controller_Request_HttpTestCase,!O EZend_Controller_Request_Http,&N OZend_Controller_Request_Exception,&M OZend_Controller_Request_Apache404,%L MZend_Controller_Request_Abstract,&K OZend_Controller_Plugin_PutHandler,(J SZend_Controller_Plugin_ErrorHandler,"I GZend_Controller_Plugin_Broker,'H QZend_Controller_Plugin_ActionStack,$G KZend_Controller_Plugin_Abstract,F 7Zend_Controller_Front,E ?Zend_Controller_Exception,(D SZend_Controller_Dispatcher_Standard,)C UZend_Controller_Dispatcher_Exception,(B SZend_Controller_Dispatcher_Abstract,A 9Zend_Controller_Action,(@ SZend_Controller_Action_HelperBroker,6? oZend_Controller_Action_HelperBroker_PriorityStack,/> aZend_Controller_Action_Helper_ViewRenderer,&= OZend_Controller_Action_Helper_Url,-< ]Zend_Controller_Action_Helper_Redirector,'; QZend_Controller_Action_Helper_Json,1: eZend_Controller_Action_Helper_FlashMessenger,09 cZend_Controller_Action_Helper_ContextSwitch,(8 SZend_Controller_Action_Helper_Cache,<7 {Zend_Controller_Action_Helper_AutoCompleteScriptaculous,36 iZend_Controller_Action_Helper_AutoCompleteDojo,85 sZend_Controller_Action_Helper_AutoComplete_Abstract,.4 _Zend_Controller_Action_Helper_AjaxContext,.3 _Zend_Controller_Action_Helper_ActionStack,+2 YZend_Controller_Action_Helper_Abstract,%1 MZend_Controller_Action_Exception,0 3Zend_Console_Getopt,"/ GZend_Console_Getopt_Exception,. #Zend_Config,- +Zend_Config_Xml,, 1Zend_Config_Writer,+ 9Zend_Config_Writer_Xml,* 9Zend_Config_Writer_Ini,$) KZend_Config_Writer_FileAbstract,( =Zend_Config_Writer_Array,' +Zend_Config_Ini,& 7Zend_Config_Exception,$% KZend_CodeGenerator_Php_Property,1$ eZend_CodeGenerator_Php_Property_DefaultValue,%# MZend_CodeGenerator_Php_Parameter,2" gZend_CodeGenerator_Php_Parameter_DefaultValue,"! GZend_CodeGenerator_Php_Method,,  [Zend_CodeGenerator_Php_Member_Container,+ YZend_CodeGenerator_Php_Member_Abstract,  CZend_CodeGenerator_Php_File,   f  |Z7|]D#wV+
}\B#[4





}
f
J
				Y	+	 rN( ~Y/	}P!vN'~gFoHxKV*                                           (g SZend_Dojo_View_Helper_NumberTextBox,(f SZend_Dojo_View_Helper_NumberSpinner,+e YZend_Dojo_View_Helper_HorizontalSlider,d AZend_Dojo_View_Helper_Form,*c WZend_Dojo_View_Helper_FilteringSelect,!b EZend_Dojo_View_Helper_Editor,a AZend_Dojo_View_Helper_Dojo,)` UZend_Dojo_View_Helper_Dojo_Container,)_ UZend_Dojo_View_Helper_DijitContainer, ^ CZend_Dojo_View_Helper_Dijit,&] OZend_Dojo_View_Helper_DateTextBox,&\ OZend_Dojo_View_Helper_CustomDijit,*[ WZend_Dojo_View_Helper_CurrencyTextBox,&Z OZend_Dojo_View_Helper_ContentPane,#Y IZend_Dojo_View_Helper_ComboBox,#X IZend_Dojo_View_Helper_CheckBox,!W EZend_Dojo_View_Helper_Button,*V WZend_Dojo_View_Helper_BorderContainer,(U SZend_Dojo_View_Helper_AccordionPane,-T ]Zend_Dojo_View_Helper_AccordionContainer,S =Zend_Dojo_View_Exception,R )Zend_Dojo_Form,Q 9Zend_Dojo_Form_SubForm,*P WZend_Dojo_Form_Element_VerticalSlider,-O ]Zend_Dojo_Form_Element_ValidationTextBox,'N QZend_Dojo_Form_Element_TimeTextBox,#M IZend_Dojo_Form_Element_TextBox,$L KZend_Dojo_Form_Element_Textarea,(K SZend_Dojo_Form_Element_SubmitButton,"J GZend_Dojo_Form_Element_Slider,*I WZend_Dojo_Form_Element_SimpleTextarea,'H QZend_Dojo_Form_Element_RadioButton,+G YZend_Dojo_Form_Element_PasswordTextBox,)F UZend_Dojo_Form_Element_NumberTextBox,)E UZend_Dojo_Form_Element_NumberSpinner,,D [Zend_Dojo_Form_Element_HorizontalSlider,+C YZend_Dojo_Form_Element_FilteringSelect,"B GZend_Dojo_Form_Element_Editor,&A OZend_Dojo_Form_Element_DijitMulti,!@ EZend_Dojo_Form_Element_Dijit,'? QZend_Dojo_Form_Element_DateTextBox,+> YZend_Dojo_Form_Element_CurrencyTextBox,$= KZend_Dojo_Form_Element_ComboBox,$< KZend_Dojo_Form_Element_CheckBox,"; GZend_Dojo_Form_Element_Button, : CZend_Dojo_Form_DisplayGroup,*9 WZend_Dojo_Form_Decorator_TabContainer,,8 [Zend_Dojo_Form_Decorator_StackContainer,,7 [Zend_Dojo_Form_Decorator_SplitContainer,'6 QZend_Dojo_Form_Decorator_DijitForm,*5 WZend_Dojo_Form_Decorator_DijitElement,,4 [Zend_Dojo_Form_Decorator_DijitContainer,)3 UZend_Dojo_Form_Decorator_ContentPane,-2 ]Zend_Dojo_Form_Decorator_BorderContainer,+1 YZend_Dojo_Form_Decorator_AccordionPane,00 cZend_Dojo_Form_Decorator_AccordionContainer,/ 3Zend_Dojo_Exception,. )Zend_Dojo_Data,- 5Zend_Dojo_BuildLayer,, !Zend_Debug,+ Zend_Db,* 'Zend_Db_Table,) 5Zend_Db_Table_Select,#( IZend_Db_Table_Select_Exception,' 5Zend_Db_Table_Rowset,#& IZend_Db_Table_Rowset_Exception,"% GZend_Db_Table_Rowset_Abstract,$ /Zend_Db_Table_Row, # CZend_Db_Table_Row_Exception," AZend_Db_Table_Row_Abstract,! ;Zend_Db_Table_Exception,  =Zend_Db_Table_Definition, 9Zend_Db_Table_Abstract, /Zend_Db_Statement, =Zend_Db_Statement_Sqlsrv,' QZend_Db_Statement_Sqlsrv_Exception, 7Zend_Db_Statement_Pdo, ?Zend_Db_Statement_Pdo_Oci, ?Zend_Db_Statement_Pdo_Ibm, =Zend_Db_Statement_Oracle,' QZend_Db_Statement_Oracle_Exception, =Zend_Db_Statement_Mysqli,' QZend_Db_Statement_Mysqli_Exception,  CZend_Db_Statement_Exception, 7Zend_Db_Statement_Db2,$ KZend_Db_Statement_Db2_Exception, )Zend_Db_Select, =Zend_Db_Select_Exception, -Zend_Db_Profiler, 9Zend_Db_Profiler_Query, =Zend_Db_Profiler_Firebug, AZend_Db_Profiler_Exception, %Zend_Db_Expr,
 /Zend_Db_Exception,	 9Zend_Db_Adapter_Sqlsrv,% MZend_Db_Adapter_Sqlsrv_Exception, AZend_Db_Adapter_Pdo_Sqlite, ?Zend_Db_Adapter_Pdo_Pgsql, ;Zend_Db_Adapter_Pdo_Oci, ?Zend_Db_Adapter_Pdo_Mysql, ?Zend_Db_Adapter_Pdo_Mssql, ;Zend_Db_Adapter_Pdo_Ibm,   [  {V)Y/fO8y_E$vJ



_
@
				i	F	Z"Z)f/y`J+Dp8P%uB                                              'B QZend_Feed_Writer_Renderer_Feed_Rss,(A SZend_Feed_Writer_Renderer_Feed_Atom,/@ aZend_Feed_Writer_Renderer_Feed_Atom_Source,5? mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract,(> SZend_Feed_Writer_Renderer_Entry_Rss,)= UZend_Feed_Writer_Renderer_Entry_Atom,< 7Zend_Feed_Writer_Feed,'; QZend_Feed_Writer_Feed_FeedAbstract,<: {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry,89 sZend_Feed_Writer_Extension_Threading_Renderer_Entry,48 kZend_Feed_Writer_Extension_Slash_Renderer_Entry,07 cZend_Feed_Writer_Extension_RendererAbstract,46 kZend_Feed_Writer_Extension_ITunes_Renderer_Feed,55 mZend_Feed_Writer_Extension_ITunes_Renderer_Entry,+4 YZend_Feed_Writer_Extension_ITunes_Feed,,3 [Zend_Feed_Writer_Extension_ITunes_Entry,82 sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed,91 uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry,60 oZend_Feed_Writer_Extension_Content_Renderer_Entry,2/ gZend_Feed_Writer_Extension_Atom_Renderer_Feed,6. oZend_Feed_Writer_Exception_InvalidMethodException,- 9Zend_Feed_Writer_Entry,, 'Zend_Feed_Rss,+ -Zend_Feed_Reader,* =Zend_Feed_Reader_FeedSet,") GZend_Feed_Reader_FeedAbstract,( ?Zend_Feed_Reader_Feed_Rss,' AZend_Feed_Reader_Feed_Atom,&& OZend_Feed_Reader_Feed_Atom_Source,3% iZend_Feed_Reader_Extension_WellFormedWeb_Entry,,$ [Zend_Feed_Reader_Extension_Thread_Entry,0# cZend_Feed_Reader_Extension_Syndication_Feed,+" YZend_Feed_Reader_Extension_Slash_Entry,,! [Zend_Feed_Reader_Extension_Podcast_Feed,-  ]Zend_Feed_Reader_Extension_Podcast_Entry,, [Zend_Feed_Reader_Extension_FeedAbstract,- ]Zend_Feed_Reader_Extension_EntryAbstract,/ aZend_Feed_Reader_Extension_DublinCore_Feed,0 cZend_Feed_Reader_Extension_DublinCore_Entry,4 kZend_Feed_Reader_Extension_CreativeCommons_Feed,5 mZend_Feed_Reader_Extension_CreativeCommons_Entry,- ]Zend_Feed_Reader_Extension_Content_Entry,) UZend_Feed_Reader_Extension_Atom_Feed,* WZend_Feed_Reader_Extension_Atom_Entry,# IZend_Feed_Reader_EntryAbstract, AZend_Feed_Reader_Entry_Rss,  CZend_Feed_Reader_Entry_Atom,  CZend_Feed_Reader_Collection,3 iZend_Feed_Reader_Collection_CollectionAbstract,) UZend_Feed_Reader_Collection_Category,' QZend_Feed_Reader_Collection_Author, 9Zend_Feed_Pubsubhubbub,& OZend_Feed_Pubsubhubbub_Subscriber,/ aZend_Feed_Pubsubhubbub_Subscriber_Callback,% MZend_Feed_Pubsubhubbub_Publisher,. _Zend_Feed_Pubsubhubbub_Model_Subscription,/
 aZend_Feed_Pubsubhubbub_Model_ModelAbstract,(	 SZend_Feed_Pubsubhubbub_HttpResponse,% MZend_Feed_Pubsubhubbub_Exception,, [Zend_Feed_Pubsubhubbub_CallbackAbstract, 3Zend_Feed_Exception, 3Zend_Feed_Entry_Rss, 5Zend_Feed_Entry_Atom, =Zend_Feed_Entry_Abstract, /Zend_Feed_Element, /Zend_Feed_Builder,  =Zend_Feed_Builder_Header,$ KZend_Feed_Builder_Header_Itunes, ~ CZend_Feed_Builder_Exception,} ;Zend_Feed_Builder_Entry,| )Zend_Feed_Atom,{ 1Zend_Feed_Abstract,z )Zend_Exception,y )Zend_Dom_Query,x 7Zend_Dom_Query_Result,w =Zend_Dom_Query_Css2Xpath,v 1Zend_Dom_Exception,u Zend_Dojo,)t UZend_Dojo_View_Helper_VerticalSlider,,s [Zend_Dojo_View_Helper_ValidationTextBox,&r OZend_Dojo_View_Helper_TimeTextBox,"q GZend_Dojo_View_Helper_TextBox,#p IZend_Dojo_View_Helper_Textarea,'o QZend_Dojo_View_Helper_TabContainer,'n QZend_Dojo_View_Helper_SubmitButton,)m UZend_Dojo_View_Helper_StackContainer,)l UZend_Dojo_View_Helper_SplitContainer,!k EZend_Dojo_View_Helper_Slider,)j UZend_Dojo_View_Helper_SimpleTextarea,&i OZend_Dojo_View_Helper_RadioButton,*h WZend_Dojo_View_Helper_PasswordTextBox,   o  V.	dCqT5eD# ~dL"





^
?
				y	P	'zLf=[:a5a>{S-
iF&qU.                         ,1 [Zend_Gdata_App_CaptchaRequiredException,#0 IZend_Gdata_App_BaseMediaSource,/ 3Zend_Gdata_App_Base,*. WZend_Gdata_App_BadMethodCallException,!- EZend_Gdata_App_AuthException,, Zend_Form,+ /Zend_Form_SubForm,* 3Zend_Form_Exception,) /Zend_Form_Element,( ;Zend_Form_Element_Xhtml,' AZend_Form_Element_Textarea,& 9Zend_Form_Element_Text,% =Zend_Form_Element_Submit,$ =Zend_Form_Element_Select,# ;Zend_Form_Element_Reset," ;Zend_Form_Element_Radio,! AZend_Form_Element_Password,"  GZend_Form_Element_Multiselect,$ KZend_Form_Element_MultiCheckbox, ;Zend_Form_Element_Multi, ;Zend_Form_Element_Image, =Zend_Form_Element_Hidden, 9Zend_Form_Element_Hash, 9Zend_Form_Element_File,  CZend_Form_Element_Exception, AZend_Form_Element_Checkbox, ?Zend_Form_Element_Captcha, =Zend_Form_Element_Button, 9Zend_Form_DisplayGroup,# IZend_Form_Decorator_ViewScript,# IZend_Form_Decorator_ViewHelper,  CZend_Form_Decorator_Tooltip,( SZend_Form_Decorator_PrepareElements, ?Zend_Form_Decorator_Label, ?Zend_Form_Decorator_Image,  CZend_Form_Decorator_HtmlTag,# IZend_Form_Decorator_FormErrors,% MZend_Form_Decorator_FormElements, =Zend_Form_Decorator_Form,
 =Zend_Form_Decorator_File,!	 EZend_Form_Decorator_Fieldset," GZend_Form_Decorator_Exception, AZend_Form_Decorator_Errors,$ KZend_Form_Decorator_DtDdWrapper,$ KZend_Form_Decorator_Description,  CZend_Form_Decorator_Captcha,% MZend_Form_Decorator_Captcha_Word,! EZend_Form_Decorator_Callback,! EZend_Form_Decorator_Abstract,  #Zend_Filter,+ YZend_Filter_Word_UnderscoreToSeparator,&~ OZend_Filter_Word_UnderscoreToDash,+} YZend_Filter_Word_UnderscoreToCamelCase,*| WZend_Filter_Word_SeparatorToSeparator,%{ MZend_Filter_Word_SeparatorToDash,*z WZend_Filter_Word_SeparatorToCamelCase,(y SZend_Filter_Word_Separator_Abstract,&x OZend_Filter_Word_DashToUnderscore,%w MZend_Filter_Word_DashToSeparator,%v MZend_Filter_Word_DashToCamelCase,+u YZend_Filter_Word_CamelCaseToUnderscore,*t WZend_Filter_Word_CamelCaseToSeparator,%s MZend_Filter_Word_CamelCaseToDash,r 7Zend_Filter_StripTags,q ?Zend_Filter_StripNewlines,p 9Zend_Filter_StringTrim,o ?Zend_Filter_StringToUpper,n ?Zend_Filter_StringToLower,m 5Zend_Filter_RealPath,l ;Zend_Filter_PregReplace,k -Zend_Filter_Null,&j OZend_Filter_NormalizedToLocalized,&i OZend_Filter_LocalizedToNormalized,h +Zend_Filter_Int,g /Zend_Filter_Input,f 7Zend_Filter_Inflector,e =Zend_Filter_HtmlEntities,d AZend_Filter_File_UpperCase,c ;Zend_Filter_File_Rename,b AZend_Filter_File_LowerCase,a =Zend_Filter_File_Encrypt,` =Zend_Filter_File_Decrypt,_ 7Zend_Filter_Exception,^ 3Zend_Filter_Encrypt, ] CZend_Filter_Encrypt_Openssl,\ AZend_Filter_Encrypt_Mcrypt,[ +Zend_Filter_Dir,Z 1Zend_Filter_Digits,Y 3Zend_Filter_Decrypt,X 9Zend_Filter_Decompress,W 5Zend_Filter_Compress,V =Zend_Filter_Compress_Zip,U =Zend_Filter_Compress_Tar,T =Zend_Filter_Compress_Rar,S =Zend_Filter_Compress_Lzf,R ;Zend_Filter_Compress_Gz,*Q WZend_Filter_Compress_CompressAbstract,P =Zend_Filter_Compress_Bz2,O 5Zend_Filter_Callback,N 3Zend_Filter_Boolean,M 5Zend_Filter_BaseName,L /Zend_Filter_Alpha,K /Zend_Filter_Alnum,J 1Zend_File_Transfer,!I EZend_File_Transfer_Exception,$H KZend_File_Transfer_Adapter_Http,(G SZend_File_Transfer_Adapter_Abstract,F Zend_Feed,E -Zend_Feed_Writer,D ;Zend_Feed_Writer_Source,/C aZend_Feed_Writer_Renderer_RendererAbstract,   `  pGyR'kCuO(vN)



~
W
;
					^	-	 tJ|c<d9
o>eG/o<zL.yK#       " GZend_Gdata_Exif_Extension_Iso,, [Zend_Gdata_Exif_Extension_ImageUniqueId,$ KZend_Gdata_Exif_Extension_FStop,* WZend_Gdata_Exif_Extension_FocalLength,$ KZend_Gdata_Exif_Extension_Flash,' QZend_Gdata_Exif_Extension_Exposure,' QZend_Gdata_Exif_Extension_Distance,
 7Zend_Gdata_Exif_Entry,	 -Zend_Gdata_Entry, 7Zend_Gdata_DublinCore,* WZend_Gdata_DublinCore_Extension_Title,, [Zend_Gdata_DublinCore_Extension_Subject,+ YZend_Gdata_DublinCore_Extension_Rights,. _Zend_Gdata_DublinCore_Extension_Publisher,- ]Zend_Gdata_DublinCore_Extension_Language,/ aZend_Gdata_DublinCore_Extension_Identifier,+ YZend_Gdata_DublinCore_Extension_Format,0  cZend_Gdata_DublinCore_Extension_Description,) UZend_Gdata_DublinCore_Extension_Date,,~ [Zend_Gdata_DublinCore_Extension_Creator,} +Zend_Gdata_Docs,| 7Zend_Gdata_Docs_Query,%{ MZend_Gdata_Docs_DocumentListFeed,&z OZend_Gdata_Docs_DocumentListEntry,y 9Zend_Gdata_ClientLogin,x 3Zend_Gdata_Calendar,!w EZend_Gdata_Calendar_ListFeed,"v GZend_Gdata_Calendar_ListEntry,-u ]Zend_Gdata_Calendar_Extension_WebContent,+t YZend_Gdata_Calendar_Extension_Timezone,9s uZend_Gdata_Calendar_Extension_SendEventNotifications,+r YZend_Gdata_Calendar_Extension_Selected,+q YZend_Gdata_Calendar_Extension_QuickAdd,'p QZend_Gdata_Calendar_Extension_Link,)o UZend_Gdata_Calendar_Extension_Hidden,(n SZend_Gdata_Calendar_Extension_Color,.m _Zend_Gdata_Calendar_Extension_AccessLevel,#l IZend_Gdata_Calendar_EventQuery,"k GZend_Gdata_Calendar_EventFeed,#j IZend_Gdata_Calendar_EventEntry,i -Zend_Gdata_Books,!h EZend_Gdata_Books_VolumeQuery, g CZend_Gdata_Books_VolumeFeed,!f EZend_Gdata_Books_VolumeEntry,+e YZend_Gdata_Books_Extension_Viewability,-d ]Zend_Gdata_Books_Extension_ThumbnailLink,&c OZend_Gdata_Books_Extension_Review,+b YZend_Gdata_Books_Extension_PreviewLink,(a SZend_Gdata_Books_Extension_InfoLink,-` ]Zend_Gdata_Books_Extension_Embeddability,)_ UZend_Gdata_Books_Extension_BooksLink,-^ ]Zend_Gdata_Books_Extension_BooksCategory,.] _Zend_Gdata_Books_Extension_AnnotationLink,$\ KZend_Gdata_Books_CollectionFeed,%[ MZend_Gdata_Books_CollectionEntry,Z 1Zend_Gdata_AuthSub,Y )Zend_Gdata_App,$X KZend_Gdata_App_VersionException,W 3Zend_Gdata_App_Util,#V IZend_Gdata_App_MediaFileSource,U ?Zend_Gdata_App_MediaEntry,2T gZend_Gdata_App_LoggingHttpClientAdapterSocket,S AZend_Gdata_App_IOException,,R [Zend_Gdata_App_InvalidArgumentException,!Q EZend_Gdata_App_HttpException,$P KZend_Gdata_App_FeedSourceParent,#O IZend_Gdata_App_FeedEntryParent,N 3Zend_Gdata_App_Feed,M =Zend_Gdata_App_Extension,!L EZend_Gdata_App_Extension_Uri,%K MZend_Gdata_App_Extension_Updated,#J IZend_Gdata_App_Extension_Title,"I GZend_Gdata_App_Extension_Text,%H MZend_Gdata_App_Extension_Summary,&G OZend_Gdata_App_Extension_Subtitle,$F KZend_Gdata_App_Extension_Source,$E KZend_Gdata_App_Extension_Rights,'D QZend_Gdata_App_Extension_Published,$C KZend_Gdata_App_Extension_Person,"B GZend_Gdata_App_Extension_Name,"A GZend_Gdata_App_Extension_Logo,"@ GZend_Gdata_App_Extension_Link, ? CZend_Gdata_App_Extension_Id,"> GZend_Gdata_App_Extension_Icon,'= QZend_Gdata_App_Extension_Generator,#< IZend_Gdata_App_Extension_Email,%; MZend_Gdata_App_Extension_Element,$: KZend_Gdata_App_Extension_Edited,#9 IZend_Gdata_App_Extension_Draft,%8 MZend_Gdata_App_Extension_Control,)7 UZend_Gdata_App_Extension_Contributor,%6 MZend_Gdata_App_Extension_Content,&5 OZend_Gdata_App_Extension_Category,$4 KZend_Gdata_App_Extension_Author,3 =Zend_Gdata_App_Exception,2 5Zend_Gdata_App_Entry,   c  cF.b4tI%|T2jB



d
;
				q	J	+	a0e@eI2
hH.sB}O"_2 xV:                                     t CZend_Gdata_Photos_AlbumFeed,!s EZend_Gdata_Photos_AlbumEntry,r 3Zend_Gdata_MimeFile,q ?Zend_Gdata_MimeBodyString,p AZend_Gdata_MediaMimeStream,o -Zend_Gdata_Media,n 7Zend_Gdata_Media_Feed,*m WZend_Gdata_Media_Extension_MediaTitle,.l _Zend_Gdata_Media_Extension_MediaThumbnail,)k UZend_Gdata_Media_Extension_MediaText,0j cZend_Gdata_Media_Extension_MediaRestriction,+i YZend_Gdata_Media_Extension_MediaRating,+h YZend_Gdata_Media_Extension_MediaPlayer,-g ]Zend_Gdata_Media_Extension_MediaKeywords,)f UZend_Gdata_Media_Extension_MediaHash,*e WZend_Gdata_Media_Extension_MediaGroup,0d cZend_Gdata_Media_Extension_MediaDescription,+c YZend_Gdata_Media_Extension_MediaCredit,.b _Zend_Gdata_Media_Extension_MediaCopyright,,a [Zend_Gdata_Media_Extension_MediaContent,-` ]Zend_Gdata_Media_Extension_MediaCategory,_ 9Zend_Gdata_Media_Entry,^ AZend_Gdata_Kind_EventEntry,] 7Zend_Gdata_HttpClient,*\ WZend_Gdata_HttpAdapterStreamingSocket,)[ UZend_Gdata_HttpAdapterStreamingProxy,Z /Zend_Gdata_Health,Y ;Zend_Gdata_Health_Query,&X OZend_Gdata_Health_ProfileListFeed,'W QZend_Gdata_Health_ProfileListEntry,"V GZend_Gdata_Health_ProfileFeed,#U IZend_Gdata_Health_ProfileEntry,$T KZend_Gdata_Health_Extension_Ccr,S )Zend_Gdata_Geo,R 3Zend_Gdata_Geo_Feed,$Q KZend_Gdata_Geo_Extension_GmlPos,&P OZend_Gdata_Geo_Extension_GmlPoint,)O UZend_Gdata_Geo_Extension_GeoRssWhere,N 5Zend_Gdata_Geo_Entry,M -Zend_Gdata_Gbase,"L GZend_Gdata_Gbase_SnippetQuery,!K EZend_Gdata_Gbase_SnippetFeed,"J GZend_Gdata_Gbase_SnippetEntry,I 9Zend_Gdata_Gbase_Query,H AZend_Gdata_Gbase_ItemQuery,G ?Zend_Gdata_Gbase_ItemFeed,F AZend_Gdata_Gbase_ItemEntry,E 7Zend_Gdata_Gbase_Feed,-D ]Zend_Gdata_Gbase_Extension_BaseAttribute,C 9Zend_Gdata_Gbase_Entry,B -Zend_Gdata_Gapps,A AZend_Gdata_Gapps_UserQuery,@ ?Zend_Gdata_Gapps_UserFeed,? AZend_Gdata_Gapps_UserEntry,&> OZend_Gdata_Gapps_ServiceException,= 9Zend_Gdata_Gapps_Query,#< IZend_Gdata_Gapps_NicknameQuery,"; GZend_Gdata_Gapps_NicknameFeed,#: IZend_Gdata_Gapps_NicknameEntry,%9 MZend_Gdata_Gapps_Extension_Quota,(8 SZend_Gdata_Gapps_Extension_Nickname,$7 KZend_Gdata_Gapps_Extension_Name,%6 MZend_Gdata_Gapps_Extension_Login,)5 UZend_Gdata_Gapps_Extension_EmailList,4 9Zend_Gdata_Gapps_Error,-3 ]Zend_Gdata_Gapps_EmailListRecipientQuery,,2 [Zend_Gdata_Gapps_EmailListRecipientFeed,-1 ]Zend_Gdata_Gapps_EmailListRecipientEntry,$0 KZend_Gdata_Gapps_EmailListQuery,#/ IZend_Gdata_Gapps_EmailListFeed,$. KZend_Gdata_Gapps_EmailListEntry,- +Zend_Gdata_Feed,, 5Zend_Gdata_Extension,+ =Zend_Gdata_Extension_Who,* AZend_Gdata_Extension_Where,) ?Zend_Gdata_Extension_When,$( KZend_Gdata_Extension_Visibility,&' OZend_Gdata_Extension_Transparency,"& GZend_Gdata_Extension_Reminder,-% ]Zend_Gdata_Extension_RecurrenceException,$$ KZend_Gdata_Extension_Recurrence, # CZend_Gdata_Extension_Rating,'" QZend_Gdata_Extension_OriginalEvent,0! cZend_Gdata_Extension_OpenSearchTotalResults,.  _Zend_Gdata_Extension_OpenSearchStartIndex,0 cZend_Gdata_Extension_OpenSearchItemsPerPage," GZend_Gdata_Extension_FeedLink,* WZend_Gdata_Extension_ExtendedProperty,% MZend_Gdata_Extension_EventStatus,# IZend_Gdata_Extension_EntryLink," GZend_Gdata_Extension_Comments,& OZend_Gdata_Extension_AttendeeType,( SZend_Gdata_Extension_AttendeeStatus, +Zend_Gdata_Exif, 5Zend_Gdata_Exif_Feed,# IZend_Gdata_Exif_Extension_Time,# IZend_Gdata_Exif_Extension_Tags,$ KZend_Gdata_Exif_Extension_Model,# IZend_Gdata_Exif_Extension_Make,   Y  ]/pEe7 vGl@



}
Z
6
					i	?	~K!m>wP(S&i=\*lAS&                   &M OZend_Gdata_YouTube_Extension_Racy,-L ]Zend_Gdata_YouTube_Extension_QueryString,)K UZend_Gdata_YouTube_Extension_Private,*J WZend_Gdata_YouTube_Extension_Position,/I aZend_Gdata_YouTube_Extension_PlaylistTitle,,H [Zend_Gdata_YouTube_Extension_PlaylistId,,G [Zend_Gdata_YouTube_Extension_Occupation,)F UZend_Gdata_YouTube_Extension_NoEmbed,'E QZend_Gdata_YouTube_Extension_Music,(D SZend_Gdata_YouTube_Extension_Movies,-C ]Zend_Gdata_YouTube_Extension_MediaRating,,B [Zend_Gdata_YouTube_Extension_MediaGroup,-A ]Zend_Gdata_YouTube_Extension_MediaCredit,.@ _Zend_Gdata_YouTube_Extension_MediaContent,*? WZend_Gdata_YouTube_Extension_Location,&> OZend_Gdata_YouTube_Extension_Link,*= WZend_Gdata_YouTube_Extension_LastName,*< WZend_Gdata_YouTube_Extension_Hometown,); UZend_Gdata_YouTube_Extension_Hobbies,(: SZend_Gdata_YouTube_Extension_Gender,+9 YZend_Gdata_YouTube_Extension_FirstName,*8 WZend_Gdata_YouTube_Extension_Duration,-7 ]Zend_Gdata_YouTube_Extension_Description,+6 YZend_Gdata_YouTube_Extension_CountHint,)5 UZend_Gdata_YouTube_Extension_Control,)4 UZend_Gdata_YouTube_Extension_Company,'3 QZend_Gdata_YouTube_Extension_Books,%2 MZend_Gdata_YouTube_Extension_Age,)1 UZend_Gdata_YouTube_Extension_AboutMe,#0 IZend_Gdata_YouTube_ContactFeed,$/ KZend_Gdata_YouTube_ContactEntry,#. IZend_Gdata_YouTube_CommentFeed,$- KZend_Gdata_YouTube_CommentEntry,$, KZend_Gdata_YouTube_ActivityFeed,%+ MZend_Gdata_YouTube_ActivityEntry,* ;Zend_Gdata_Spreadsheets,*) WZend_Gdata_Spreadsheets_WorksheetFeed,+( YZend_Gdata_Spreadsheets_WorksheetEntry,,' [Zend_Gdata_Spreadsheets_SpreadsheetFeed,-& ]Zend_Gdata_Spreadsheets_SpreadsheetEntry,&% OZend_Gdata_Spreadsheets_ListQuery,%$ MZend_Gdata_Spreadsheets_ListFeed,&# OZend_Gdata_Spreadsheets_ListEntry,/" aZend_Gdata_Spreadsheets_Extension_RowCount,-! ]Zend_Gdata_Spreadsheets_Extension_Custom,/  aZend_Gdata_Spreadsheets_Extension_ColCount,+ YZend_Gdata_Spreadsheets_Extension_Cell,* WZend_Gdata_Spreadsheets_DocumentQuery,& OZend_Gdata_Spreadsheets_CellQuery,% MZend_Gdata_Spreadsheets_CellFeed,& OZend_Gdata_Spreadsheets_CellEntry, -Zend_Gdata_Query, /Zend_Gdata_Photos,  CZend_Gdata_Photos_UserQuery, AZend_Gdata_Photos_UserFeed,  CZend_Gdata_Photos_UserEntry, AZend_Gdata_Photos_TagEntry,! EZend_Gdata_Photos_PhotoQuery,  CZend_Gdata_Photos_PhotoFeed,! EZend_Gdata_Photos_PhotoEntry,& OZend_Gdata_Photos_Extension_Width,' QZend_Gdata_Photos_Extension_Weight,( SZend_Gdata_Photos_Extension_Version,% MZend_Gdata_Photos_Extension_User,* WZend_Gdata_Photos_Extension_Timestamp,* WZend_Gdata_Photos_Extension_Thumbnail,% MZend_Gdata_Photos_Extension_Size,)
 UZend_Gdata_Photos_Extension_Rotation,+	 YZend_Gdata_Photos_Extension_QuotaLimit,- ]Zend_Gdata_Photos_Extension_QuotaCurrent,) UZend_Gdata_Photos_Extension_Position,( SZend_Gdata_Photos_Extension_PhotoId,3 iZend_Gdata_Photos_Extension_NumPhotosRemaining,* WZend_Gdata_Photos_Extension_NumPhotos,) UZend_Gdata_Photos_Extension_Nickname,% MZend_Gdata_Photos_Extension_Name,2 gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum,)  UZend_Gdata_Photos_Extension_Location,# IZend_Gdata_Photos_Extension_Id,'~ QZend_Gdata_Photos_Extension_Height,2} gZend_Gdata_Photos_Extension_CommentingEnabled,-| ]Zend_Gdata_Photos_Extension_CommentCount,'{ QZend_Gdata_Photos_Extension_Client,)z UZend_Gdata_Photos_Extension_Checksum,*y WZend_Gdata_Photos_Extension_BytesUsed,(x SZend_Gdata_Photos_Extension_AlbumId,'w QZend_Gdata_Photos_Extension_Access,#v IZend_Gdata_Photos_CommentEntry,!u EZend_Gdata_Photos_AlbumQuery,   f  oCc5j>^8nG





l
J
/
					[	#wN._7mKoBqR3[>%d6jI+                               3 3Zend_Ldap_Filter_Or,2 5Zend_Ldap_Filter_Not,1 7Zend_Ldap_Filter_Mask,0 =Zend_Ldap_Filter_Logical,/ AZend_Ldap_Filter_Exception,. 5Zend_Ldap_Filter_And,- ?Zend_Ldap_Filter_Abstract,, 3Zend_Ldap_Exception,+ %Zend_Ldap_Dn,* 3Zend_Ldap_Converter,) 5Zend_Ldap_Collection,*( WZend_Ldap_Collection_Iterator_Default,' 3Zend_Ldap_Attribute,& #Zend_Layout,% 7Zend_Layout_Exception,)$ UZend_Layout_Controller_Plugin_Layout,0# cZend_Layout_Controller_Action_Helper_Layout," Zend_Json,! -Zend_Json_Server,  5Zend_Json_Server_Smd,! EZend_Json_Server_Smd_Service, ?Zend_Json_Server_Response,# IZend_Json_Server_Response_Http, =Zend_Json_Server_Request," GZend_Json_Server_Request_Http, AZend_Json_Server_Exception, 9Zend_Json_Server_Error, 9Zend_Json_Server_Cache, )Zend_Json_Expr, 3Zend_Json_Exception, /Zend_Json_Encoder, /Zend_Json_Decoder, 'Zend_InfoCard,- ]Zend_InfoCard_Xml_SecurityTokenReference, AZend_InfoCard_Xml_Security,) UZend_InfoCard_Xml_Security_Transform,4 kZend_InfoCard_Xml_Security_Transform_XmlExcC14N,3 iZend_InfoCard_Xml_Security_Transform_Exception,< {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignature,) UZend_InfoCard_Xml_Security_Exception, ?Zend_InfoCard_Xml_KeyInfo,&
 OZend_InfoCard_Xml_KeyInfo_XmlDSig,&	 OZend_InfoCard_Xml_KeyInfo_Default,' QZend_InfoCard_Xml_KeyInfo_Abstract,  CZend_InfoCard_Xml_Exception,# IZend_InfoCard_Xml_EncryptedKey,$ KZend_InfoCard_Xml_EncryptedData,+ YZend_InfoCard_Xml_EncryptedData_XmlEnc,- ]Zend_InfoCard_Xml_EncryptedData_Abstract, ?Zend_InfoCard_Xml_Element,  CZend_InfoCard_Xml_Assertion,%  MZend_InfoCard_Xml_Assertion_Saml, ;Zend_InfoCard_Exception,%~ MZend_InfoCard_Exception_Abstract,} 5Zend_InfoCard_Claims,| 5Zend_InfoCard_Cipher,5{ mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc,5z mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc,4y kZend_InfoCard_Cipher_Symmetric_Adapter_Abstract,)x UZend_InfoCard_Cipher_Pki_Adapter_Rsa,.w _Zend_InfoCard_Cipher_Pki_Adapter_Abstract,#v IZend_InfoCard_Cipher_Exception,$u KZend_InfoCard_Adapter_Exception,"t GZend_InfoCard_Adapter_Default,s 1Zend_Http_Response,r ?Zend_Http_Response_Stream,q 3Zend_Http_Exception,p 3Zend_Http_CookieJar,o -Zend_Http_Cookie,n -Zend_Http_Client,m AZend_Http_Client_Exception,"l GZend_Http_Client_Adapter_Test,$k KZend_Http_Client_Adapter_Socket,#j IZend_Http_Client_Adapter_Proxy,'i QZend_Http_Client_Adapter_Exception,"h GZend_Http_Client_Adapter_Curl,g !Zend_Gdata,f 1Zend_Gdata_YouTube,"e GZend_Gdata_YouTube_VideoQuery,!d EZend_Gdata_YouTube_VideoFeed,"c GZend_Gdata_YouTube_VideoEntry,(b SZend_Gdata_YouTube_UserProfileEntry,(a SZend_Gdata_YouTube_SubscriptionFeed,)` UZend_Gdata_YouTube_SubscriptionEntry,)_ UZend_Gdata_YouTube_PlaylistVideoFeed,*^ WZend_Gdata_YouTube_PlaylistVideoEntry,(] SZend_Gdata_YouTube_PlaylistListFeed,)\ UZend_Gdata_YouTube_PlaylistListEntry,"[ GZend_Gdata_YouTube_MediaEntry,!Z EZend_Gdata_YouTube_InboxFeed,"Y GZend_Gdata_YouTube_InboxEntry,)X UZend_Gdata_YouTube_Extension_VideoId,*W WZend_Gdata_YouTube_Extension_Username,*V WZend_Gdata_YouTube_Extension_Uploaded,'U QZend_Gdata_YouTube_Extension_Token,(T SZend_Gdata_YouTube_Extension_Status,,S [Zend_Gdata_YouTube_Extension_Statistics,'R QZend_Gdata_YouTube_Extension_State,(Q SZend_Gdata_YouTube_Extension_School,-P ]Zend_Gdata_YouTube_Extension_ReleaseDate,.O _Zend_Gdata_YouTube_Extension_Relationship,*N WZend_Gdata_YouTube_Extension_Recorded,   s  `>p4oH*qP<hT9




q
R
1
						a	=	,	[;xU1aBlZ<U/xZF(pL/x]>                   & 3Zend_Measure_Length,% ?Zend_Measure_Illumination,$ 9Zend_Measure_Frequency,# 1Zend_Measure_Force," =Zend_Measure_Flow_Volume,! 9Zend_Measure_Flow_Mole,  9Zend_Measure_Flow_Mass, 9Zend_Measure_Exception, 3Zend_Measure_Energy, 5Zend_Measure_Density, 5Zend_Measure_Current,  CZend_Measure_Cooking_Weight,  CZend_Measure_Cooking_Volume, =Zend_Measure_Capacitance, 3Zend_Measure_Binary, /Zend_Measure_Area, 1Zend_Measure_Angle, ?Zend_Measure_Acceleration, 7Zend_Measure_Abstract, #Zend_Markup, 7Zend_Markup_TokenList, /Zend_Markup_Token,* WZend_Markup_Renderer_RendererAbstract, ?Zend_Markup_Renderer_Html," GZend_Markup_Renderer_Html_Url,# IZend_Markup_Renderer_Html_List," GZend_Markup_Renderer_Html_Img,+ YZend_Markup_Renderer_Html_HtmlAbstract,#
 IZend_Markup_Renderer_Html_Code,#	 IZend_Markup_Renderer_Exception, AZend_Markup_Parser_Textile,! EZend_Markup_Parser_Exception, ?Zend_Markup_Parser_Bbcode, 7Zend_Markup_Exception, Zend_Mail, =Zend_Mail_Transport_Smtp,! EZend_Mail_Transport_Sendmail," GZend_Mail_Transport_Exception,!  EZend_Mail_Transport_Abstract, /Zend_Mail_Storage,'~ QZend_Mail_Storage_Writable_Maildir,} 9Zend_Mail_Storage_Pop3,| 9Zend_Mail_Storage_Mbox,{ ?Zend_Mail_Storage_Maildir,z 9Zend_Mail_Storage_Imap,y =Zend_Mail_Storage_Folder,"x GZend_Mail_Storage_Folder_Mbox,%w MZend_Mail_Storage_Folder_Maildir, v CZend_Mail_Storage_Exception,u AZend_Mail_Storage_Abstract,t ;Zend_Mail_Protocol_Smtp,'s QZend_Mail_Protocol_Smtp_Auth_Plain,'r QZend_Mail_Protocol_Smtp_Auth_Login,)q UZend_Mail_Protocol_Smtp_Auth_Crammd5,p ;Zend_Mail_Protocol_Pop3,o ;Zend_Mail_Protocol_Imap,!n EZend_Mail_Protocol_Exception, m CZend_Mail_Protocol_Abstract,l )Zend_Mail_Part,k 3Zend_Mail_Part_File,j /Zend_Mail_Message,i 9Zend_Mail_Message_File,h 3Zend_Mail_Exception,g Zend_Log, f CZend_Log_Writer_ZendMonitor,e 9Zend_Log_Writer_Syslog,d 9Zend_Log_Writer_Stream,c 5Zend_Log_Writer_Null,b 5Zend_Log_Writer_Mock,a 5Zend_Log_Writer_Mail,` ;Zend_Log_Writer_Firebug,_ 1Zend_Log_Writer_Db,^ =Zend_Log_Writer_Abstract,] 9Zend_Log_Formatter_Xml,\ ?Zend_Log_Formatter_Simple,[ AZend_Log_Formatter_Firebug,Z =Zend_Log_Filter_Suppress,Y =Zend_Log_Filter_Priority,X ;Zend_Log_Filter_Message,W =Zend_Log_Filter_Abstract,V 1Zend_Log_Exception,U #Zend_Locale,T -Zend_Locale_Math,S =Zend_Locale_Math_PhpMath,R AZend_Locale_Math_Exception,Q 1Zend_Locale_Format,P 7Zend_Locale_Exception,O -Zend_Locale_Data,!N EZend_Locale_Data_Translation,M #Zend_Loader,L =Zend_Loader_PluginLoader,'K QZend_Loader_PluginLoader_Exception,J 7Zend_Loader_Exception,I 9Zend_Loader_Autoloader,$H KZend_Loader_Autoloader_Resource,G Zend_Ldap,F )Zend_Ldap_Node,E 7Zend_Ldap_Node_Schema,#D IZend_Ldap_Node_Schema_OpenLdap,/C aZend_Ldap_Node_Schema_ObjectClass_OpenLdap,6B oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectory,A AZend_Ldap_Node_Schema_Item,1@ eZend_Ldap_Node_Schema_AttributeType_OpenLdap,8? sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory,*> WZend_Ldap_Node_Schema_ActiveDirectory,= 9Zend_Ldap_Node_RootDse,$< KZend_Ldap_Node_RootDse_OpenLdap,&; OZend_Ldap_Node_RootDse_eDirectory,+: YZend_Ldap_Node_RootDse_ActiveDirectory,9 ?Zend_Ldap_Node_Collection,$8 KZend_Ldap_Node_ChildrenIterator,7 ;Zend_Ldap_Node_Abstract,6 9Zend_Ldap_Ldif_Encoder,5 -Zend_Ldap_Filter,4 ;Zend_Ldap_Filter_String,   s qP6mH"gM6$iO5iQ/



m
L
3
 					s	U	+	d<xJfH*lJ(fJ2\9gP*	oB                                          & OZend_Pdf_Destination_FitRectangle,) UZend_Pdf_Destination_FitHorizontally,2 gZend_Pdf_Destination_FitBoundingBoxVertically,4 kZend_Pdf_Destination_FitBoundingBoxHorizontally,( SZend_Pdf_Destination_FitBoundingBox, =Zend_Pdf_Destination_Fit," GZend_Pdf_Destination_Explicit, )Zend_Pdf_Color, 1Zend_Pdf_Color_Rgb, 3Zend_Pdf_Color_Html, =Zend_Pdf_Color_GrayScale, 3Zend_Pdf_Color_Cmyk, 'Zend_Pdf_Cmap, AZend_Pdf_Cmap_TrimmedTable,! EZend_Pdf_Cmap_SegmentToDelta,
 AZend_Pdf_Cmap_ByteEncoding,&	 OZend_Pdf_Cmap_ByteEncoding_Static, 3Zend_Pdf_Annotation, =Zend_Pdf_Annotation_Text, AZend_Pdf_Annotation_Markup, =Zend_Pdf_Annotation_Link,' QZend_Pdf_Annotation_FileAttachment, +Zend_Pdf_Action, 3Zend_Pdf_Action_URI, ;Zend_Pdf_Action_Unknown,  7Zend_Pdf_Action_Trans, 9Zend_Pdf_Action_Thread,~ AZend_Pdf_Action_SubmitForm,} 7Zend_Pdf_Action_Sound, | CZend_Pdf_Action_SetOCGState,{ ?Zend_Pdf_Action_ResetForm,z ?Zend_Pdf_Action_Rendition,y 7Zend_Pdf_Action_Named,x 7Zend_Pdf_Action_Movie,w 9Zend_Pdf_Action_Launch,v AZend_Pdf_Action_JavaScript,u AZend_Pdf_Action_ImportData,t 5Zend_Pdf_Action_Hide,s 7Zend_Pdf_Action_GoToR,r 7Zend_Pdf_Action_GoToE,q AZend_Pdf_Action_GoTo3DView,p 5Zend_Pdf_Action_GoTo,o )Zend_Paginator,-n ]Zend_Paginator_SerializableLimitIterator,*m WZend_Paginator_ScrollingStyle_Sliding,*l WZend_Paginator_ScrollingStyle_Jumping,*k WZend_Paginator_ScrollingStyle_Elastic,&j OZend_Paginator_ScrollingStyle_All,i =Zend_Paginator_Exception, h CZend_Paginator_Adapter_Null,$g KZend_Paginator_Adapter_Iterator,)f UZend_Paginator_Adapter_DbTableSelect,$e KZend_Paginator_Adapter_DbSelect,!d EZend_Paginator_Adapter_Array,c #Zend_OpenId,b 5Zend_OpenId_Provider,a ?Zend_OpenId_Provider_User,&` OZend_OpenId_Provider_User_Session,!_ EZend_OpenId_Provider_Storage,&^ OZend_OpenId_Provider_Storage_File,] 7Zend_OpenId_Extension,\ AZend_OpenId_Extension_Sreg,[ 7Zend_OpenId_Exception,Z 5Zend_OpenId_Consumer,!Y EZend_OpenId_Consumer_Storage,&X OZend_OpenId_Consumer_Storage_File,W !Zend_Oauth,V -Zend_Oauth_Token,U =Zend_Oauth_Token_Request,'T QZend_Oauth_Token_AuthorizedRequest,S ;Zend_Oauth_Token_Access,+R YZend_Oauth_Signature_SignatureAbstract,Q =Zend_Oauth_Signature_Rsa,#P IZend_Oauth_Signature_Plaintext,O ?Zend_Oauth_Signature_Hmac,N +Zend_Oauth_Http,M ;Zend_Oauth_Http_Utility,&L OZend_Oauth_Http_UserAuthorization,!K EZend_Oauth_Http_RequestToken, J CZend_Oauth_Http_AccessToken,I 5Zend_Oauth_Exception,H 3Zend_Oauth_Consumer,G /Zend_Oauth_Config,F /Zend_Oauth_Client,E +Zend_Navigation,D 5Zend_Navigation_Page,C =Zend_Navigation_Page_Uri,B =Zend_Navigation_Page_Mvc,A ?Zend_Navigation_Exception,@ ?Zend_Navigation_Container,? Zend_Mime,> )Zend_Mime_Part,= /Zend_Mime_Message,< 3Zend_Mime_Exception,; -Zend_Mime_Decode,: #Zend_Memory,9 /Zend_Memory_Value,8 3Zend_Memory_Manager,7 7Zend_Memory_Exception,6 7Zend_Memory_Container,"5 GZend_Memory_Container_Movable,!4 EZend_Memory_Container_Locked,!3 EZend_Memory_AccessController,2 3Zend_Measure_Weight,1 3Zend_Measure_Volume,%0 MZend_Measure_Viscosity_Kinematic,#/ IZend_Measure_Viscosity_Dynamic,. 3Zend_Measure_Torque,- /Zend_Measure_Time,, =Zend_Measure_Temperature,+ 1Zend_Measure_Speed,* 7Zend_Measure_Pressure,) 1Zend_Measure_Power,( 3Zend_Measure_Number,' 9Zend_Measure_Lightness,   d  kN/fFhO)	pJ(nM#





n
M
-
					X	/	g,s6{BR#pK+zZAgF#
tP2                              } ;Zend_Queue_Adapter_Null,!| EZend_Queue_Adapter_Memcacheq,{ 7Zend_Queue_Adapter_Db, z CZend_Queue_Adapter_Db_Queue,"y GZend_Queue_Adapter_Db_Message,x =Zend_Queue_Adapter_Array,'w QZend_Queue_Adapter_AdapterAbstract, v CZend_Queue_Adapter_Activemq,u -Zend_ProgressBar,t AZend_ProgressBar_Exception,s =Zend_ProgressBar_Adapter,$r KZend_ProgressBar_Adapter_JsPush,$q KZend_ProgressBar_Adapter_JsPull,'p QZend_ProgressBar_Adapter_Exception,%o MZend_ProgressBar_Adapter_Console,n Zend_Pdf,!m EZend_Pdf_UpdateInfoContainer,l -Zend_Pdf_Trailer,k ;Zend_Pdf_Trailer_Keeper,j AZend_Pdf_Trailer_Generator,i +Zend_Pdf_Target,h )Zend_Pdf_Style,g 7Zend_Pdf_StringParser,f /Zend_Pdf_Resource,#e IZend_Pdf_Resource_ImageFactory,d ;Zend_Pdf_Resource_Image,!c EZend_Pdf_Resource_Image_Tiff, b CZend_Pdf_Resource_Image_Png,!a EZend_Pdf_Resource_Image_Jpeg,` 9Zend_Pdf_Resource_Font,!_ EZend_Pdf_Resource_Font_Type0,"^ GZend_Pdf_Resource_Font_Simple,+] YZend_Pdf_Resource_Font_Simple_Standard,8\ sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats,6[ oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman,7Z qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic,;Y yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic,5X mZend_Pdf_Resource_Font_Simple_Standard_TimesBold,2W gZend_Pdf_Resource_Font_Simple_Standard_Symbol,<V {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaOblique,AU Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique,9T uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold,5S mZend_Pdf_Resource_Font_Simple_Standard_Helvetica,:R wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique,>Q Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique,7P qZend_Pdf_Resource_Font_Simple_Standard_CourierBold,3O iZend_Pdf_Resource_Font_Simple_Standard_Courier,)N UZend_Pdf_Resource_Font_Simple_Parsed,2M gZend_Pdf_Resource_Font_Simple_Parsed_TrueType,*L WZend_Pdf_Resource_Font_FontDescriptor,%K MZend_Pdf_Resource_Font_Extracted,#J IZend_Pdf_Resource_Font_CidFont,,I [Zend_Pdf_Resource_Font_CidFont_TrueType,3H iZend_Pdf_RecursivelyIteratableObjectsContainer,G +Zend_Pdf_Parser,F 'Zend_Pdf_Page,E -Zend_Pdf_Outline,D ;Zend_Pdf_Outline_Loaded,C =Zend_Pdf_Outline_Created,B /Zend_Pdf_NameTree,A )Zend_Pdf_Image,@ 'Zend_Pdf_Font,? ?Zend_Pdf_Filter_RunLength, > CZend_Pdf_Filter_Compression,$= KZend_Pdf_Filter_Compression_Lzw,&< OZend_Pdf_Filter_Compression_Flate,; =Zend_Pdf_Filter_AsciiHex,: ;Zend_Pdf_Filter_Ascii85,"9 GZend_Pdf_FileParserDataSource,)8 UZend_Pdf_FileParserDataSource_String,'7 QZend_Pdf_FileParserDataSource_File,6 3Zend_Pdf_FileParser,5 ?Zend_Pdf_FileParser_Image,"4 GZend_Pdf_FileParser_Image_Png,3 =Zend_Pdf_FileParser_Font,&2 OZend_Pdf_FileParser_Font_OpenType,/1 aZend_Pdf_FileParser_Font_OpenType_TrueType,0 1Zend_Pdf_Exception,/ ;Zend_Pdf_ElementFactory,". GZend_Pdf_ElementFactory_Proxy,- -Zend_Pdf_Element,, ;Zend_Pdf_Element_String,#+ IZend_Pdf_Element_String_Binary,* ;Zend_Pdf_Element_Stream,) AZend_Pdf_Element_Reference,%( MZend_Pdf_Element_Reference_Table,'' QZend_Pdf_Element_Reference_Context,& ;Zend_Pdf_Element_Object,#% IZend_Pdf_Element_Object_Stream,$ =Zend_Pdf_Element_Numeric,# 7Zend_Pdf_Element_Null," 7Zend_Pdf_Element_Name, ! CZend_Pdf_Element_Dictionary,  =Zend_Pdf_Element_Boolean, 9Zend_Pdf_Element_Array, 5Zend_Pdf_Destination, ?Zend_Pdf_Destination_Zoom,! EZend_Pdf_Destination_Unknown, AZend_Pdf_Destination_Named,' QZend_Pdf_Destination_FitVertically,   Y  lQ&_:xV5|`H%k


_
			u	K	^.Y0P$_#pH!f0 n<Y#                )V UZend_Search_Lucene_Search_Query_Term,*U WZend_Search_Lucene_Search_Query_Range,2T gZend_Search_Lucene_Search_Query_Preprocessing,7S qZend_Search_Lucene_Search_Query_Preprocessing_Term,9R uZend_Search_Lucene_Search_Query_Preprocessing_Phrase,8Q sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy,+P YZend_Search_Lucene_Search_Query_Phrase,.O _Zend_Search_Lucene_Search_Query_MultiTerm,2N gZend_Search_Lucene_Search_Query_Insignificant,*M WZend_Search_Lucene_Search_Query_Fuzzy,*L WZend_Search_Lucene_Search_Query_Empty,,K [Zend_Search_Lucene_Search_Query_Boolean,2J gZend_Search_Lucene_Search_Highlighter_Default,:I wZend_Search_Lucene_Search_BooleanExpressionRecognizer,H =Zend_Search_Lucene_Proxy,%G MZend_Search_Lucene_PriorityQueue,/F aZend_Search_Lucene_Interface_MultiSearcher,#E IZend_Search_Lucene_LockManager,$D KZend_Search_Lucene_Index_Writer,0C cZend_Search_Lucene_Index_TermsPriorityQueue,&B OZend_Search_Lucene_Index_TermInfo,"A GZend_Search_Lucene_Index_Term,+@ YZend_Search_Lucene_Index_SegmentWriter,8? sZend_Search_Lucene_Index_SegmentWriter_StreamWriter,:> wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter,+= YZend_Search_Lucene_Index_SegmentMerger,)< UZend_Search_Lucene_Index_SegmentInfo,'; QZend_Search_Lucene_Index_FieldInfo,(: SZend_Search_Lucene_Index_DocsFilter,.9 _Zend_Search_Lucene_Index_DictionaryLoader,!8 EZend_Search_Lucene_FSMAction,7 9Zend_Search_Lucene_FSM,6 =Zend_Search_Lucene_Field,!5 EZend_Search_Lucene_Exception, 4 CZend_Search_Lucene_Document,%3 MZend_Search_Lucene_Document_Xlsx,%2 MZend_Search_Lucene_Document_Pptx,(1 SZend_Search_Lucene_Document_OpenXml,%0 MZend_Search_Lucene_Document_Html,*/ WZend_Search_Lucene_Document_Exception,%. MZend_Search_Lucene_Document_Docx,,- [Zend_Search_Lucene_Analysis_TokenFilter,6, oZend_Search_Lucene_Analysis_TokenFilter_StopWords,7+ qZend_Search_Lucene_Analysis_TokenFilter_ShortWords,:* wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8,6) oZend_Search_Lucene_Analysis_TokenFilter_LowerCase,&( OZend_Search_Lucene_Analysis_Token,)' UZend_Search_Lucene_Analysis_Analyzer,0& cZend_Search_Lucene_Analysis_Analyzer_Common,8% sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num,I$ Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive,5# mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8,F" Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive,8! sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum,I  Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive,5 mZend_Search_Lucene_Analysis_Analyzer_Common_Text,F Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive, 7Zend_Search_Exception, -Zend_Rest_Server, AZend_Rest_Server_Exception, +Zend_Rest_Route, 3Zend_Rest_Exception, 5Zend_Rest_Controller, -Zend_Rest_Client, ;Zend_Rest_Client_Result,& OZend_Rest_Client_Result_Exception, AZend_Rest_Client_Exception, 'Zend_Registry, =Zend_Reflection_Property, ?Zend_Reflection_Parameter, 9Zend_Reflection_Method, =Zend_Reflection_Function, 5Zend_Reflection_File, ?Zend_Reflection_Extension, ?Zend_Reflection_Exception, =Zend_Reflection_Docblock,!
 EZend_Reflection_Docblock_Tag,(	 SZend_Reflection_Docblock_Tag_Return,' QZend_Reflection_Docblock_Tag_Param, 7Zend_Reflection_Class, !Zend_Queue, 9Zend_Queue_Stomp_Frame, ;Zend_Queue_Stomp_Client,' QZend_Queue_Stomp_Client_Connection, 1Zend_Queue_Message,# IZend_Queue_Message_PlatformJob,   CZend_Queue_Message_Iterator, 5Zend_Queue_Exception,(~ SZend_Queue_Adapter_PlatformJobQueue,   _  s=X#],lC|T 



b
=
				t	\	?	%	yT/c:g?j@d<qK)uO& lP,                           5 CZend_Service_Delicious_Post,%4 MZend_Service_Delicious_Exception, 3 CZend_Service_Audioscrobbler,2 3Zend_Service_Amazon,1 ;Zend_Service_Amazon_Sqs,&0 OZend_Service_Amazon_Sqs_Exception,'/ QZend_Service_Amazon_SimilarProduct,. 9Zend_Service_Amazon_S3,"- GZend_Service_Amazon_S3_Stream,%, MZend_Service_Amazon_S3_Exception,"+ GZend_Service_Amazon_ResultSet,* ?Zend_Service_Amazon_Query,!) EZend_Service_Amazon_OfferSet,( ?Zend_Service_Amazon_Offer,&' OZend_Service_Amazon_ListmaniaList,& =Zend_Service_Amazon_Item,% ?Zend_Service_Amazon_Image,"$ GZend_Service_Amazon_Exception,(# SZend_Service_Amazon_EditorialReview," ;Zend_Service_Amazon_Ec2,+! YZend_Service_Amazon_Ec2_Securitygroups,%  MZend_Service_Amazon_Ec2_Response,# IZend_Service_Amazon_Ec2_Region,$ KZend_Service_Amazon_Ec2_Keypair,% MZend_Service_Amazon_Ec2_Instance,- ]Zend_Service_Amazon_Ec2_Instance_Windows,. _Zend_Service_Amazon_Ec2_Instance_Reserved," GZend_Service_Amazon_Ec2_Image,& OZend_Service_Amazon_Ec2_Exception,& OZend_Service_Amazon_Ec2_Elasticip,  CZend_Service_Amazon_Ec2_Ebs,' QZend_Service_Amazon_Ec2_CloudWatch,. _Zend_Service_Amazon_Ec2_Availabilityzones,% MZend_Service_Amazon_Ec2_Abstract,' QZend_Service_Amazon_CustomerReview,$ KZend_Service_Amazon_Accessories,! EZend_Service_Amazon_Abstract, 5Zend_Service_Akismet, 7Zend_Service_Abstract, 9Zend_Server_Reflection,' QZend_Server_Reflection_ReturnValue,% MZend_Server_Reflection_Prototype,% MZend_Server_Reflection_Parameter, 
 CZend_Server_Reflection_Node,"	 GZend_Server_Reflection_Method,$ KZend_Server_Reflection_Function,- ]Zend_Server_Reflection_Function_Abstract,% MZend_Server_Reflection_Exception,! EZend_Server_Reflection_Class,! EZend_Server_Method_Prototype,! EZend_Server_Method_Parameter," GZend_Server_Method_Definition,  CZend_Server_Method_Callback,  7Zend_Server_Exception, 9Zend_Server_Definition,~ /Zend_Server_Cache,} 5Zend_Server_Abstract,| +Zend_Serializer,{ ?Zend_Serializer_Exception,!z EZend_Serializer_Adapter_Wddx,)y UZend_Serializer_Adapter_PythonPickle,)x UZend_Serializer_Adapter_PhpSerialize,$w KZend_Serializer_Adapter_PhpCode,!v EZend_Serializer_Adapter_Json,%u MZend_Serializer_Adapter_Igbinary,!t EZend_Serializer_Adapter_Amf3,!s EZend_Serializer_Adapter_Amf0,,r [Zend_Serializer_Adapter_AdapterAbstract,q 1Zend_Search_Lucene,0p cZend_Search_Lucene_TermStreamsPriorityQueue,$o KZend_Search_Lucene_Storage_File,+n YZend_Search_Lucene_Storage_File_Memory,/m aZend_Search_Lucene_Storage_File_Filesystem,)l UZend_Search_Lucene_Storage_Directory,4k kZend_Search_Lucene_Storage_Directory_Filesystem,%j MZend_Search_Lucene_Search_Weight,*i WZend_Search_Lucene_Search_Weight_Term,,h [Zend_Search_Lucene_Search_Weight_Phrase,/g aZend_Search_Lucene_Search_Weight_MultiTerm,+f YZend_Search_Lucene_Search_Weight_Empty,-e ]Zend_Search_Lucene_Search_Weight_Boolean,)d UZend_Search_Lucene_Search_Similarity,1c eZend_Search_Lucene_Search_Similarity_Default,)b UZend_Search_Lucene_Search_QueryToken,3a iZend_Search_Lucene_Search_QueryParserException,1` eZend_Search_Lucene_Search_QueryParserContext,*_ WZend_Search_Lucene_Search_QueryParser,)^ UZend_Search_Lucene_Search_QueryLexer,'] QZend_Search_Lucene_Search_QueryHit,)\ UZend_Search_Lucene_Search_QueryEntry,.[ _Zend_Search_Lucene_Search_QueryEntry_Term,2Z gZend_Search_Lucene_Search_QueryEntry_Subquery,0Y cZend_Search_Lucene_Search_QueryEntry_Phrase,$X KZend_Search_Lucene_Search_Query,-W ]Zend_Search_Lucene_Search_Query_Wildcard,   6  Js,` ^.Z


I			=5gfK1[R                                                                         Lk Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbers,Bj Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract,9i uZend_Service_DeveloperGarden_Request_SendSms_SendSMS,>h Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS,9g uZend_Service_DeveloperGarden_Request_RequestAbstract,If Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequest,Ee Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest,3d iZend_Service_DeveloperGarden_Request_Exception,Rc %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequest,Yb 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequest,da IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequest,Q` #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequest,R_ %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequest,Y^ 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequest,d] IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequest,Q\ #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequest,O[ Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequest,UZ +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequest,UY +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequest,VX -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequest,aW CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequest,ZV 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequest,TU )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequest,RT %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequest,YS 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequest,QR #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequest,QQ #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequest,aP CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequest,NO Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformation,LN Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalance,JM Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool,-L ]Zend_Service_DeveloperGarden_LocalSearch,>K Zend_Service_DeveloperGarden_LocalSearch_SearchParameters,7J qZend_Service_DeveloperGarden_LocalSearch_Exception,,I [Zend_Service_DeveloperGarden_IpLocation,6H oZend_Service_DeveloperGarden_IpLocation_IpAddress,+G YZend_Service_DeveloperGarden_Exception,,F [Zend_Service_DeveloperGarden_Credential,0E cZend_Service_DeveloperGarden_ConferenceCall,CD Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatus,CC Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail,<B {Zend_Service_DeveloperGarden_ConferenceCall_Participant,:A wZend_Service_DeveloperGarden_ConferenceCall_Exception,D@ 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceSchedule,B? Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail,C> Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount,-= ]Zend_Service_DeveloperGarden_Client_Soap,2< gZend_Service_DeveloperGarden_Client_Exception,7; qZend_Service_DeveloperGarden_Client_ClientAbstract,1: eZend_Service_DeveloperGarden_BaseUserService,A9 Zend_Service_DeveloperGarden_BaseUserService_AccountBalance,8 9Zend_Service_Delicious,&7 OZend_Service_Delicious_SimplePost,$6 KZend_Service_Delicious_PostList,   - j g"Q
.zZ

W			:,n
8|!gZ:!  j        T )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse,[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponse,f MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponse,S 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponse,T )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse,[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponse,f MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponse,S 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponse,U +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType,Q #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse,[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseType,W /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse,[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseType,W /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse,\
 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseType,X	 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponse,g OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseType,c GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse,` AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType,\ 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponse,Z 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseType,V -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponse,X 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseType,T )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse,_  ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType,[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponse,W~ /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType,S} 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponse,Q| #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstract,S{ 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponse,Jz Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType,gy OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseType,cx GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponse,Ww /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse,Uv +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponse,Su 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse,3t iZend_Service_DeveloperGarden_Response_BaseType,Js Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstract,Cr Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCall,Gq Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced,=p }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCall,Ao Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatus,An Zend_Service_DeveloperGarden_Request_SmsValidation_Validate,Nm Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeyword,Cl Zend_Service_DeveloperGarden_Request_SmsValidation_Invalidate,   I  9O
h).T


R
		f	y)b5oI-j=uM.dBW-c-                                  #a IZend_Service_Technorati_Author,` ;Zend_Service_StrikeIron,(_ SZend_Service_StrikeIron_ZipCodeInfo,2^ gZend_Service_StrikeIron_USAddressVerification,-] ]Zend_Service_StrikeIron_SalesUseTaxBasic,&\ OZend_Service_StrikeIron_Exception,&[ OZend_Service_StrikeIron_Decorator,!Z EZend_Service_StrikeIron_Base,Y ;Zend_Service_SlideShare,&X OZend_Service_SlideShare_SlideShow,&W OZend_Service_SlideShare_Exception,V 1Zend_Service_Simpy,$U KZend_Service_Simpy_WatchlistSet,*T WZend_Service_Simpy_WatchlistFilterSet,'S QZend_Service_Simpy_WatchlistFilter,!R EZend_Service_Simpy_Watchlist,Q ?Zend_Service_Simpy_TagSet,P 9Zend_Service_Simpy_Tag,O AZend_Service_Simpy_NoteSet,N ;Zend_Service_Simpy_Note,M AZend_Service_Simpy_LinkSet,!L EZend_Service_Simpy_LinkQuery,K ;Zend_Service_Simpy_Link,J 9Zend_Service_ReCaptcha,$I KZend_Service_ReCaptcha_Response,$H KZend_Service_ReCaptcha_MailHide,.G _Zend_Service_ReCaptcha_MailHide_Exception,%F MZend_Service_ReCaptcha_Exception,E 7Zend_Service_Nirvanix,#D IZend_Service_Nirvanix_Response,)C UZend_Service_Nirvanix_Namespace_Imfs,)B UZend_Service_Nirvanix_Namespace_Base,$A KZend_Service_Nirvanix_Exception,@ 7Zend_Service_LiveDocx,$? KZend_Service_LiveDocx_MailMerge,$> KZend_Service_LiveDocx_Exception,= 3Zend_Service_Flickr,"< GZend_Service_Flickr_ResultSet,; AZend_Service_Flickr_Result,: ?Zend_Service_Flickr_Image,9 9Zend_Service_Exception,+8 YZend_Service_DeveloperGarden_VoiceCall,/7 aZend_Service_DeveloperGarden_SmsValidation,)6 UZend_Service_DeveloperGarden_SendSms,55 mZend_Service_DeveloperGarden_SecurityTokenServer,;4 yZend_Service_DeveloperGarden_SecurityTokenServer_Cache,K3 Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstract,L2 Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponse,P1 !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponse,G0 Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponse,J/ Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponse,K. Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2Response,L- Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponse,I, Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumber,W+ /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponse,J* Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponse,U) +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponse,C( Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponse,C' Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstract,H& Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponse,U% +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponse,Q$ #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponse,I# Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception,;" yZend_Service_DeveloperGarden_Response_ResponseAbstract,O! Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseType,K  Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponse,A Zend_Service_DeveloperGarden_Response_IpLocation_RegionType,K Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseType,G Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponse,L Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationType,I Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType,> Zend_Service_DeveloperGarden_Response_IpLocation_CityType,4 kZend_Service_DeveloperGarden_Response_Exception,   Y  tB`6	W)qTY-



H
			r	C	g/WrHvM#^9qFtT1sK  &: OZend_Soap_Wsdl_Strategy_Composite,09 cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence,/8 aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex,$7 KZend_Soap_Wsdl_Strategy_AnyType,%6 MZend_Soap_Wsdl_Strategy_Abstract,5 =Zend_Soap_Wsdl_Exception,4 -Zend_Soap_Server,3 AZend_Soap_Server_Exception,2 -Zend_Soap_Client,1 9Zend_Soap_Client_Local,0 AZend_Soap_Client_Exception,/ ;Zend_Soap_Client_DotNet,. ;Zend_Soap_Client_Common,- 9Zend_Soap_AutoDiscover,%, MZend_Soap_AutoDiscover_Exception,+ %Zend_Session,)* UZend_Session_Validator_HttpUserAgent,$) KZend_Session_Validator_Abstract,'( QZend_Session_SaveHandler_Exception,%' MZend_Session_SaveHandler_DbTable,& 9Zend_Session_Namespace,% 9Zend_Session_Exception,$ 7Zend_Session_Abstract,# 1Zend_Service_Yahoo,$" KZend_Service_Yahoo_WebResultSet,!! EZend_Service_Yahoo_WebResult,&  OZend_Service_Yahoo_VideoResultSet,# IZend_Service_Yahoo_VideoResult,! EZend_Service_Yahoo_ResultSet, ?Zend_Service_Yahoo_Result,) UZend_Service_Yahoo_PageDataResultSet,& OZend_Service_Yahoo_PageDataResult,% MZend_Service_Yahoo_NewsResultSet," GZend_Service_Yahoo_NewsResult,& OZend_Service_Yahoo_LocalResultSet,# IZend_Service_Yahoo_LocalResult,+ YZend_Service_Yahoo_InlinkDataResultSet,( SZend_Service_Yahoo_InlinkDataResult,& OZend_Service_Yahoo_ImageResultSet,# IZend_Service_Yahoo_ImageResult, =Zend_Service_Yahoo_Image,& OZend_Service_WindowsAzure_Storage,4 kZend_Service_WindowsAzure_Storage_TableInstance,7 qZend_Service_WindowsAzure_Storage_TableEntityQuery,2 gZend_Service_WindowsAzure_Storage_TableEntity,, [Zend_Service_WindowsAzure_Storage_Table,7 qZend_Service_WindowsAzure_Storage_SignedIdentifier,3 iZend_Service_WindowsAzure_Storage_QueueMessage,4
 kZend_Service_WindowsAzure_Storage_QueueInstance,,	 [Zend_Service_WindowsAzure_Storage_Queue,9 uZend_Service_WindowsAzure_Storage_DynamicTableEntity,3 iZend_Service_WindowsAzure_Storage_BlobInstance,4 kZend_Service_WindowsAzure_Storage_BlobContainer,+ YZend_Service_WindowsAzure_Storage_Blob,2 gZend_Service_WindowsAzure_Storage_Blob_Stream,; yZend_Service_WindowsAzure_Storage_BatchStorageAbstract,, [Zend_Service_WindowsAzure_Storage_Batch,- ]Zend_Service_WindowsAzure_SessionHandler,>  Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract,1 eZend_Service_WindowsAzure_RetryPolicy_RetryN,2~ gZend_Service_WindowsAzure_RetryPolicy_NoRetry,4} kZend_Service_WindowsAzure_RetryPolicy_Exception,(| SZend_Service_WindowsAzure_Exception,8{ sZend_Service_WindowsAzure_Credentials_SharedKeyLite,4z kZend_Service_WindowsAzure_Credentials_SharedKey,Ay Zend_Service_WindowsAzure_Credentials_SharedAccessSignature,>x Zend_Service_WindowsAzure_Credentials_CredentialsAbstract,w 5Zend_Service_Twitter, v CZend_Service_Twitter_Search,#u IZend_Service_Twitter_Exception,t ;Zend_Service_Technorati,#s IZend_Service_Technorati_Weblog,"r GZend_Service_Technorati_Utils,*q WZend_Service_Technorati_TagsResultSet,'p QZend_Service_Technorati_TagsResult,)o UZend_Service_Technorati_TagResultSet,&n OZend_Service_Technorati_TagResult,,m [Zend_Service_Technorati_SearchResultSet,)l UZend_Service_Technorati_SearchResult,&k OZend_Service_Technorati_ResultSet,#j IZend_Service_Technorati_Result,*i WZend_Service_Technorati_KeyInfoResult,*h WZend_Service_Technorati_GetInfoResult,&g OZend_Service_Technorati_Exception,1f eZend_Service_Technorati_DailyCountsResultSet,.e _Zend_Service_Technorati_DailyCountsResult,,d [Zend_Service_Technorati_CosmosResultSet,)c UZend_Service_Technorati_CosmosResult,+b YZend_Service_Technorati_BlogInfoResult,   Y  d9hL. oB`.xJ




|
]
5
					{	\	A	+	|Rdb5T)U/Q"pB`/                          ( SZend_Tool_Framework_System_Manifest,- ]Zend_Tool_Framework_System_Action_Delete,- ]Zend_Tool_Framework_System_Action_Create,! EZend_Tool_Framework_Registry,+ YZend_Tool_Framework_Registry_Exception,+ YZend_Tool_Framework_Provider_Signature,, [Zend_Tool_Framework_Provider_Repository,+ YZend_Tool_Framework_Provider_Exception,* WZend_Tool_Framework_Provider_Abstract,&
 OZend_Tool_Framework_Metadata_Tool,)	 UZend_Tool_Framework_Metadata_Dynamic,' QZend_Tool_Framework_Metadata_Basic,, [Zend_Tool_Framework_Manifest_Repository,+ YZend_Tool_Framework_Manifest_Exception,1 eZend_Tool_Framework_Loader_IncludePathLoader,J Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator,+ YZend_Tool_Framework_Loader_BasicLoader,( SZend_Tool_Framework_Loader_Abstract," GZend_Tool_Framework_Exception,'  QZend_Tool_Framework_Client_Storage,1 eZend_Tool_Framework_Client_Storage_Directory,(~ SZend_Tool_Framework_Client_Response,D} 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator,'| QZend_Tool_Framework_Client_Request,({ SZend_Tool_Framework_Client_Manifest,9z uZend_Tool_Framework_Client_Interactive_InputResponse,8y sZend_Tool_Framework_Client_Interactive_InputRequest,8x sZend_Tool_Framework_Client_Interactive_InputHandler,)w UZend_Tool_Framework_Client_Exception,'v QZend_Tool_Framework_Client_Console,Du 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Indention,Dt 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizer,Cs Zend_Tool_Framework_Client_Console_ResponseDecorator_Blockize,Fr Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter,0q cZend_Tool_Framework_Client_Console_Manifest,2p gZend_Tool_Framework_Client_Console_HelpSystem,6o oZend_Tool_Framework_Client_Console_ArgumentParser,&n OZend_Tool_Framework_Client_Config,(m SZend_Tool_Framework_Client_Abstract,*l WZend_Tool_Framework_Action_Repository,)k UZend_Tool_Framework_Action_Exception,$j KZend_Tool_Framework_Action_Base,i 'Zend_TimeSync,h 1Zend_TimeSync_Sntp,g 9Zend_TimeSync_Protocol,f /Zend_TimeSync_Ntp,e ;Zend_TimeSync_Exception,d +Zend_Text_Table,c 3Zend_Text_Table_Row,b ?Zend_Text_Table_Exception,&a OZend_Text_Table_Decorator_Unicode,$` KZend_Text_Table_Decorator_Ascii,_ 9Zend_Text_Table_Column,^ 3Zend_Text_MultiByte,] -Zend_Text_Figlet,\ AZend_Text_Figlet_Exception,[ 3Zend_Text_Exception,&Z OZend_Test_PHPUnit_Db_SimpleTester,,Y [Zend_Test_PHPUnit_Db_Operation_Truncate,*X WZend_Test_PHPUnit_Db_Operation_Insert,-W ]Zend_Test_PHPUnit_Db_Operation_DeleteAll,*V WZend_Test_PHPUnit_Db_Metadata_Generic,#U IZend_Test_PHPUnit_Db_Exception,,T [Zend_Test_PHPUnit_Db_DataSet_QueryTable,.S _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet,0R cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet,)Q UZend_Test_PHPUnit_Db_DataSet_DbTable,*P WZend_Test_PHPUnit_Db_DataSet_DbRowset,$O KZend_Test_PHPUnit_Db_Connection,'N QZend_Test_PHPUnit_DatabaseTestCase,)M UZend_Test_PHPUnit_ControllerTestCase,0L cZend_Test_PHPUnit_Constraint_ResponseHeader,*K WZend_Test_PHPUnit_Constraint_Redirect,+J YZend_Test_PHPUnit_Constraint_Exception,*I WZend_Test_PHPUnit_Constraint_DomQuery,H 7Zend_Test_DbStatement,G 3Zend_Test_DbAdapter,F /Zend_Tag_ItemList,E 'Zend_Tag_Item,D 1Zend_Tag_Exception,C )Zend_Tag_Cloud,B =Zend_Tag_Cloud_Exception,!A EZend_Tag_Cloud_Decorator_Tag,%@ MZend_Tag_Cloud_Decorator_HtmlTag,'? QZend_Tag_Cloud_Decorator_HtmlCloud,'> QZend_Tag_Cloud_Decorator_Exception,#= IZend_Tag_Cloud_Decorator_Cloud,< )Zend_Soap_Wsdl,/; aZend_Soap_Wsdl_Strategy_DefaultComplexType,   G  d0]'Wn; _/



X
"				]	'I}Gi-zB s5D	Z xD                                (Z SZend_Tool_Project_Profile_Exception, Y CZend_Tool_Project_Exception,<X {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory,0W cZend_Tool_Project_Context_Zf_ViewsDirectory,6V oZend_Tool_Project_Context_Zf_ViewScriptsDirectory,0U cZend_Tool_Project_Context_Zf_ViewScriptFile,6T oZend_Tool_Project_Context_Zf_ViewHelpersDirectory,6S oZend_Tool_Project_Context_Zf_ViewFiltersDirectory,AR Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory,2Q gZend_Tool_Project_Context_Zf_UploadsDirectory,0P cZend_Tool_Project_Context_Zf_TestsDirectory,7O qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile,@N Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory,1M eZend_Tool_Project_Context_Zf_TestLibraryFile,6L oZend_Tool_Project_Context_Zf_TestLibraryDirectory,:K wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFile,:J wZend_Tool_Project_Context_Zf_TestApplicationDirectory,@I Zend_Tool_Project_Context_Zf_TestApplicationControllerFile,EH Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory,>G Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile,4F kZend_Tool_Project_Context_Zf_TemporaryDirectory,3E iZend_Tool_Project_Context_Zf_SessionsDirectory,8D sZend_Tool_Project_Context_Zf_SearchIndexesDirectory,<C {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory,8B sZend_Tool_Project_Context_Zf_PublicScriptsDirectory,1A eZend_Tool_Project_Context_Zf_PublicIndexFile,7@ qZend_Tool_Project_Context_Zf_PublicImagesDirectory,1? eZend_Tool_Project_Context_Zf_PublicDirectory,5> mZend_Tool_Project_Context_Zf_ProjectProviderFile,2= gZend_Tool_Project_Context_Zf_ModulesDirectory,1< eZend_Tool_Project_Context_Zf_ModuleDirectory,1; eZend_Tool_Project_Context_Zf_ModelsDirectory,+: YZend_Tool_Project_Context_Zf_ModelFile,/9 aZend_Tool_Project_Context_Zf_LogsDirectory,28 gZend_Tool_Project_Context_Zf_LocalesDirectory,27 gZend_Tool_Project_Context_Zf_LibraryDirectory,26 gZend_Tool_Project_Context_Zf_LayoutsDirectory,85 sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory,24 gZend_Tool_Project_Context_Zf_LayoutScriptFile,.3 _Zend_Tool_Project_Context_Zf_HtaccessFile,02 cZend_Tool_Project_Context_Zf_FormsDirectory,*1 WZend_Tool_Project_Context_Zf_FormFile,-0 ]Zend_Tool_Project_Context_Zf_DbTableFile,2/ gZend_Tool_Project_Context_Zf_DbTableDirectory,/. aZend_Tool_Project_Context_Zf_DataDirectory,6- oZend_Tool_Project_Context_Zf_ControllersDirectory,0, cZend_Tool_Project_Context_Zf_ControllerFile,2+ gZend_Tool_Project_Context_Zf_ConfigsDirectory,,* [Zend_Tool_Project_Context_Zf_ConfigFile,0) cZend_Tool_Project_Context_Zf_CacheDirectory,/( aZend_Tool_Project_Context_Zf_BootstrapFile,6' oZend_Tool_Project_Context_Zf_ApplicationDirectory,7& qZend_Tool_Project_Context_Zf_ApplicationConfigFile,/% aZend_Tool_Project_Context_Zf_ApisDirectory,.$ _Zend_Tool_Project_Context_Zf_ActionMethod,3# iZend_Tool_Project_Context_Zf_AbstractClassFile,@" Zend_Tool_Project_Context_System_ProjectProvidersDirectory,8! sZend_Tool_Project_Context_System_ProjectProfileFile,6  oZend_Tool_Project_Context_System_ProjectDirectory,) UZend_Tool_Project_Context_Repository,. _Zend_Tool_Project_Context_Filesystem_File,3 iZend_Tool_Project_Context_Filesystem_Directory,2 gZend_Tool_Project_Context_Filesystem_Abstract,( SZend_Tool_Project_Context_Exception,- ]Zend_Tool_Project_Context_Content_Engine,3 iZend_Tool_Project_Context_Content_Engine_Phtml,; yZend_Tool_Project_Context_Content_Engine_CodeGenerator,0 cZend_Tool_Framework_System_Provider_Version,0 cZend_Tool_Framework_System_Provider_Phpinfo,1 eZend_Tool_Framework_System_Provider_Manifest,/ aZend_Tool_Framework_System_Provider_Config,   h  U j@^6b7lE" 



p
Q
0
						~	b	4	mE!oL'd@`=h@xL!pH%}[6        B /Zend_Validate_Hex,A ?Zend_Validate_GreaterThan,@ 3Zend_Validate_Float,!? EZend_Validate_File_WordCount,> ?Zend_Validate_File_Upload,= ;Zend_Validate_File_Size,< ;Zend_Validate_File_Sha1,!; EZend_Validate_File_NotExists, : CZend_Validate_File_MimeType,9 9Zend_Validate_File_Md5,8 AZend_Validate_File_IsImage,$7 KZend_Validate_File_IsCompressed,!6 EZend_Validate_File_ImageSize,5 ;Zend_Validate_File_Hash,!4 EZend_Validate_File_FilesSize,!3 EZend_Validate_File_Extension,2 ?Zend_Validate_File_Exists,'1 QZend_Validate_File_ExcludeMimeType,(0 SZend_Validate_File_ExcludeExtension,/ =Zend_Validate_File_Crc32,. =Zend_Validate_File_Count,- ;Zend_Validate_Exception,, AZend_Validate_EmailAddress,+ 5Zend_Validate_Digits,"* GZend_Validate_Db_RecordExists,$) KZend_Validate_Db_NoRecordExists,( ?Zend_Validate_Db_Abstract,' 1Zend_Validate_Date,& =Zend_Validate_CreditCard,% 3Zend_Validate_Ccnum,$ 9Zend_Validate_Callback,# 7Zend_Validate_Between," 7Zend_Validate_Barcode,! AZend_Validate_Barcode_Upce,  AZend_Validate_Barcode_Upca, AZend_Validate_Barcode_Sscc,$ KZend_Validate_Barcode_Royalmail," GZend_Validate_Barcode_Postnet,! EZend_Validate_Barcode_Planet,# IZend_Validate_Barcode_Leitcode,  CZend_Validate_Barcode_Itf14, AZend_Validate_Barcode_Issn,* WZend_Validate_Barcode_IntelligentMail,$ KZend_Validate_Barcode_Identcode,! EZend_Validate_Barcode_Gtin14,! EZend_Validate_Barcode_Gtin13,! EZend_Validate_Barcode_Gtin12, AZend_Validate_Barcode_Ean8, AZend_Validate_Barcode_Ean5, AZend_Validate_Barcode_Ean2,  CZend_Validate_Barcode_Ean18,  CZend_Validate_Barcode_Ean14,  CZend_Validate_Barcode_Ean13,  CZend_Validate_Barcode_Ean12,$ KZend_Validate_Barcode_Code93ext,! EZend_Validate_Barcode_Code93,$
 KZend_Validate_Barcode_Code39ext,!	 EZend_Validate_Barcode_Code39,, [Zend_Validate_Barcode_Code25interleaved,! EZend_Validate_Barcode_Code25,* WZend_Validate_Barcode_AdapterAbstract, 3Zend_Validate_Alpha, 3Zend_Validate_Alnum, 9Zend_Validate_Abstract, Zend_Uri, 'Zend_Uri_Http,  1Zend_Uri_Exception, )Zend_Translate,~ 7Zend_Translate_Plural,} =Zend_Translate_Exception,| 9Zend_Translate_Adapter,!{ EZend_Translate_Adapter_XmlTm,!z EZend_Translate_Adapter_Xliff,y AZend_Translate_Adapter_Tmx,x AZend_Translate_Adapter_Tbx,w ?Zend_Translate_Adapter_Qt,v AZend_Translate_Adapter_Ini,#u IZend_Translate_Adapter_Gettext,t AZend_Translate_Adapter_Csv,!s EZend_Translate_Adapter_Array,$r KZend_Tool_Project_Provider_View,$q KZend_Tool_Project_Provider_Test,/p aZend_Tool_Project_Provider_ProjectProvider,'o QZend_Tool_Project_Provider_Project,'n QZend_Tool_Project_Provider_Profile,&m OZend_Tool_Project_Provider_Module,%l MZend_Tool_Project_Provider_Model,(k SZend_Tool_Project_Provider_Manifest,&j OZend_Tool_Project_Provider_Layout,$i KZend_Tool_Project_Provider_Form,)h UZend_Tool_Project_Provider_Exception,'g QZend_Tool_Project_Provider_DbTable,)f UZend_Tool_Project_Provider_DbAdapter,*e WZend_Tool_Project_Provider_Controller,+d YZend_Tool_Project_Provider_Application,&c OZend_Tool_Project_Provider_Action,(b SZend_Tool_Project_Provider_Abstract,a ?Zend_Tool_Project_Profile,'` QZend_Tool_Project_Profile_Resource,9_ uZend_Tool_Project_Profile_Resource_SearchConstraints,1^ eZend_Tool_Project_Profile_Resource_Container,=] }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter,5\ mZend_Tool_Project_Profile_Iterator_ContextFilter,-[ ]Zend_Tool_Project_Profile_FileParser_Xml,   k  nU:rP)bA zV0~[0



~
Z
8
					d	?	gI)sG#OuG"yg=oJ rW9|Z>  - =Zend_XmlRpc_Server_Cache,, 5Zend_XmlRpc_Response,+ ?Zend_XmlRpc_Response_Http,* 3Zend_XmlRpc_Request,) ?Zend_XmlRpc_Request_Stdin,( =Zend_XmlRpc_Request_Http,$' KZend_XmlRpc_Generator_XmlWriter,,& [Zend_XmlRpc_Generator_GeneratorAbstract,&% OZend_XmlRpc_Generator_DomDocument,$ /Zend_XmlRpc_Fault,# 7Zend_XmlRpc_Exception," 1Zend_XmlRpc_Client,#! IZend_XmlRpc_Client_ServerProxy,+  YZend_XmlRpc_Client_ServerIntrospection,+ YZend_XmlRpc_Client_IntrospectException,% MZend_XmlRpc_Client_HttpException,& OZend_XmlRpc_Client_FaultException,! EZend_XmlRpc_Client_Exception,& OZend_Wildfire_Protocol_JsonStream,! EZend_Wildfire_Plugin_FirePhp,. _Zend_Wildfire_Plugin_FirePhp_TableMessage,) UZend_Wildfire_Plugin_FirePhp_Message, ;Zend_Wildfire_Exception,& OZend_Wildfire_Channel_HttpHeaders, Zend_View, -Zend_View_Stream, 5Zend_View_Helper_Url, AZend_View_Helper_Translate, AZend_View_Helper_ServerUrl,) UZend_View_Helper_RenderToPlaceholder,! EZend_View_Helper_Placeholder,* WZend_View_Helper_Placeholder_Registry,4 kZend_View_Helper_Placeholder_Registry_Exception,+ YZend_View_Helper_Placeholder_Container,6 oZend_View_Helper_Placeholder_Container_Standalone,5
 mZend_View_Helper_Placeholder_Container_Exception,4	 kZend_View_Helper_Placeholder_Container_Abstract,! EZend_View_Helper_PartialLoop, =Zend_View_Helper_Partial,' QZend_View_Helper_Partial_Exception,' QZend_View_Helper_PaginationControl,  CZend_View_Helper_Navigation,( SZend_View_Helper_Navigation_Sitemap,% MZend_View_Helper_Navigation_Menu,& OZend_View_Helper_Navigation_Links,/  aZend_View_Helper_Navigation_HelperAbstract,, [Zend_View_Helper_Navigation_Breadcrumbs,~ ;Zend_View_Helper_Layout,} 7Zend_View_Helper_Json,"| GZend_View_Helper_InlineScript,#{ IZend_View_Helper_HtmlQuicktime,z ?Zend_View_Helper_HtmlPage, y CZend_View_Helper_HtmlObject,x ?Zend_View_Helper_HtmlList,w AZend_View_Helper_HtmlFlash,!v EZend_View_Helper_HtmlElement,u AZend_View_Helper_HeadTitle,t AZend_View_Helper_HeadStyle, s CZend_View_Helper_HeadScript,r ?Zend_View_Helper_HeadMeta,q ?Zend_View_Helper_HeadLink,"p GZend_View_Helper_FormTextarea,o ?Zend_View_Helper_FormText, n CZend_View_Helper_FormSubmit, m CZend_View_Helper_FormSelect,l AZend_View_Helper_FormReset,k AZend_View_Helper_FormRadio,"j GZend_View_Helper_FormPassword,i ?Zend_View_Helper_FormNote,'h QZend_View_Helper_FormMultiCheckbox,g AZend_View_Helper_FormLabel,f AZend_View_Helper_FormImage, e CZend_View_Helper_FormHidden,d ?Zend_View_Helper_FormFile, c CZend_View_Helper_FormErrors,!b EZend_View_Helper_FormElement,"a GZend_View_Helper_FormCheckbox, ` CZend_View_Helper_FormButton,_ 7Zend_View_Helper_Form,^ ?Zend_View_Helper_Fieldset,] =Zend_View_Helper_Doctype,!\ EZend_View_Helper_DeclareVars,[ 9Zend_View_Helper_Cycle,Z ?Zend_View_Helper_Currency,Y =Zend_View_Helper_BaseUrl,X ;Zend_View_Helper_Action,W ?Zend_View_Helper_Abstract,V 3Zend_View_Exception,U 1Zend_View_Abstract,T %Zend_Version,S 'Zend_Validate,R AZend_Validate_StringLength,#Q IZend_Validate_Sitemap_Priority,P ?Zend_Validate_Sitemap_Loc,"O GZend_Validate_Sitemap_Lastmod,%N MZend_Validate_Sitemap_Changefreq,M 3Zend_Validate_Regex,L 9Zend_Validate_PostCode,K 9Zend_Validate_NotEmpty,J 9Zend_Validate_LessThan,I 1Zend_Validate_Isbn,H -Zend_Validate_Ip,G /Zend_Validate_Int,F 7Zend_Validate_InArray,E ;Zend_Validate_Identical,D 1Zend_Validate_Iban,C 9Zend_Validate_Hostname,   j  }]<hF(vM.jO&hD




b
I
*
					o	J	V(sF#zS'}V,yO#|JfBvS1                     =Zend_Barcode_Object_Ean5- =Zend_Barcode_Object_Ean2- ?Zend_Barcode_Object_Ean13- AZend_Barcode_Object_Code39-* WZend_Barcode_Object_Code25interleaved- AZend_Barcode_Object_Code25- 9Zend_Barcode_Exception- Zend_Auth- ?Zend_Auth_Storage_Session-$ KZend_Auth_Storage_NonPersistent-  CZend_Auth_Storage_Exception- -Zend_Auth_Result- 3Zend_Auth_Exception-
 =Zend_Auth_Adapter_OpenId-	 9Zend_Auth_Adapter_Ldap- AZend_Auth_Adapter_InfoCard- 9Zend_Auth_Adapter_Http-) UZend_Auth_Adapter_Http_Resolver_File-. _Zend_Auth_Adapter_Http_Resolver_Exception-  CZend_Auth_Adapter_Exception- =Zend_Auth_Adapter_Digest- ?Zend_Auth_Adapter_DbTable- -Zend_Application-#  IZend_Application_Resource_View-( SZend_Application_Resource_Translate-&~ OZend_Application_Resource_Session-%} MZend_Application_Resource_Router-/| aZend_Application_Resource_ResourceAbstract-){ UZend_Application_Resource_Navigation-&z OZend_Application_Resource_Multidb-&y OZend_Application_Resource_Modules-#x IZend_Application_Resource_Mail-"w GZend_Application_Resource_Log-%v MZend_Application_Resource_Locale-%u MZend_Application_Resource_Layout-.t _Zend_Application_Resource_Frontcontroller-(s SZend_Application_Resource_Exception-#r IZend_Application_Resource_Dojo-!q EZend_Application_Resource_Db-+p YZend_Application_Resource_Cachemanager-&o OZend_Application_Module_Bootstrap-'n QZend_Application_Module_Autoloader-m AZend_Application_Exception-)l UZend_Application_Bootstrap_Exception-1k eZend_Application_Bootstrap_BootstrapAbstract-)j UZend_Application_Bootstrap_Bootstrap-i ?Zend_Amf_Value_TraitsInfo--h ]Zend_Amf_Value_Messaging_RemotingMessage-*g WZend_Amf_Value_Messaging_ErrorMessage-,f [Zend_Amf_Value_Messaging_CommandMessage-*e WZend_Amf_Value_Messaging_AsyncMessage--d ]Zend_Amf_Value_Messaging_ArrayCollection-0c cZend_Amf_Value_Messaging_AcknowledgeMessage--b ]Zend_Amf_Value_Messaging_AbstractMessage-!a EZend_Amf_Value_MessageHeader-` AZend_Amf_Value_MessageBody-_ =Zend_Amf_Value_ByteArray-^ AZend_Amf_Util_BinaryStream-] +Zend_Amf_Server-\ ?Zend_Amf_Server_Exception-[ /Zend_Amf_Response-Z 9Zend_Amf_Response_Http-Y -Zend_Amf_Request-X 7Zend_Amf_Request_Http-W ?Zend_Amf_Parse_TypeLoader-V ?Zend_Amf_Parse_Serializer-#U IZend_Amf_Parse_Resource_Stream-(T SZend_Amf_Parse_Resource_MysqlResult-)S UZend_Amf_Parse_Resource_MysqliResult- R CZend_Amf_Parse_OutputStream-Q AZend_Amf_Parse_InputStream- P CZend_Amf_Parse_Deserializer-#O IZend_Amf_Parse_Amf3_Serializer-%N MZend_Amf_Parse_Amf3_Deserializer-#M IZend_Amf_Parse_Amf0_Serializer-%L MZend_Amf_Parse_Amf0_Deserializer-K 1Zend_Amf_Exception-J 1Zend_Amf_Constants-I 9Zend_Amf_Auth_Abstract- H CZend_Amf_Adobe_Introspector-G AZend_Amf_Adobe_DbInspector-F 3Zend_Amf_Adobe_Auth-E Zend_Acl-D 'Zend_Acl_Role-C 9Zend_Acl_Role_Registry-%B MZend_Acl_Role_Registry_Exception-A /Zend_Acl_Resource-@ 1Zend_Acl_Exception-? /Zend_XmlRpc_Value,> =Zend_XmlRpc_Value_Struct,= =Zend_XmlRpc_Value_String,< =Zend_XmlRpc_Value_Scalar,; 7Zend_XmlRpc_Value_Nil,: ?Zend_XmlRpc_Value_Integer, 9 CZend_XmlRpc_Value_Exception,8 =Zend_XmlRpc_Value_Double,7 AZend_XmlRpc_Value_DateTime,!6 EZend_XmlRpc_Value_Collection,5 ?Zend_XmlRpc_Value_Boolean,!4 EZend_XmlRpc_Value_BigInteger,3 =Zend_XmlRpc_Value_Base64,2 ;Zend_XmlRpc_Value_Array,1 1Zend_XmlRpc_Server,0 ?Zend_XmlRpc_Server_System,/ =Zend_XmlRpc_Server_Fault,!. EZend_XmlRpc_Server_Exception,   U  sL&lO*_5c6uB




g
G
				l	C	{Pe5zQ8fS%TR$R                               + ;Zend_Validate_Interface,+* YZend_Validate_Barcode_AdapterInterface,3) iZend_Tool_Project_Profile_FileParser_Interface,:( wZend_Tool_Project_Context_System_TopLevelRestrictable,5' mZend_Tool_Project_Context_System_NotOverwritable,/& aZend_Tool_Project_Context_System_Interface,(% SZend_Tool_Project_Context_Interface,+$ YZend_Tool_Framework_Registry_Interface,2# gZend_Tool_Framework_Registry_EnabledInterface,-" ]Zend_Tool_Framework_Provider_Pretendable,+! YZend_Tool_Framework_Provider_Interface,.  _Zend_Tool_Framework_Provider_Interactable,; yZend_Tool_Framework_Provider_DocblockManifestInterface,+ YZend_Tool_Framework_Metadata_Interface,. _Zend_Tool_Framework_Metadata_Attributable,6 oZend_Tool_Framework_Manifest_ProviderManifestable,6 oZend_Tool_Framework_Manifest_MetadataManifestable,+ YZend_Tool_Framework_Manifest_Interface,+ YZend_Tool_Framework_Manifest_Indexable,4 kZend_Tool_Framework_Manifest_ActionManifestable,) UZend_Tool_Framework_Loader_Interface,8 sZend_Tool_Framework_Client_Storage_AdapterInterface,D 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface,; yZend_Tool_Framework_Client_Interactive_OutputInterface,: wZend_Tool_Framework_Client_Interactive_InputInterface,) UZend_Tool_Framework_Action_Interface,( SZend_Text_Table_Decorator_Interface, /Zend_Tag_Taggable,& OZend_Soap_Wsdl_Strategy_Interface,% MZend_Session_Validator_Interface,' QZend_Session_SaveHandler_Interface,I Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Interface, 7Zend_Server_Interface,-
 ]Zend_Serializer_Adapter_AdapterInterface,4	 kZend_Search_Lucene_Search_Highlighter_Interface,! EZend_Search_Lucene_Interface,3 iZend_Search_Lucene_Index_TermsStream_Interface,$ KZend_Queue_Stomp_FrameInterface,0 cZend_Queue_Stomp_Client_ConnectionInterface,( SZend_Queue_Adapter_AdapterInterface, ?Zend_Pdf_Filter_Interface,& OZend_Pdf_ElementFactory_Interface,, [Zend_Paginator_ScrollingStyle_Interface,$  KZend_Paginator_AdapterAggregate,% MZend_Paginator_Adapter_Interface,&~ OZend_Oauth_Config_ConfigInterface,$} KZend_Memory_Container_Interface,1| eZend_Markup_Renderer_TokenConverterInterface,'{ QZend_Markup_Parser_ParserInterface,)z UZend_Mail_Storage_Writable_Interface,'y QZend_Mail_Storage_Folder_Interface,x =Zend_Mail_Part_Interface, w CZend_Mail_Message_Interface,!v EZend_Log_Formatter_Interface,u ?Zend_Log_Filter_Interface,t ?Zend_Log_FactoryInterface,'s QZend_Loader_PluginLoader_Interface,%r MZend_Loader_Autoloader_Interface,0q cZend_Ldap_Node_Schema_ObjectClass_Interface,2p gZend_Ldap_Node_Schema_AttributeType_Interface,3o iZend_InfoCard_Xml_Security_Transform_Interface,(n SZend_InfoCard_Xml_KeyInfo_Interface,(m SZend_InfoCard_Xml_Element_Interface,*l WZend_InfoCard_Xml_Assertion_Interface,-k ]Zend_InfoCard_Cipher_Symmetric_Interface,7j qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface,7i qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interface,+h YZend_InfoCard_Cipher_Pki_Rsa_Interface,'g QZend_InfoCard_Cipher_Pki_Interface,$f KZend_InfoCard_Adapter_Interface,$e KZend_Http_Client_Adapter_Stream,'d QZend_Http_Client_Adapter_Interface,c AZend_Gdata_App_MediaSource,.b _Zend_Form_Decorator_Marker_File_Interface,"a GZend_Form_Decorator_Interface,` 7Zend_Filter_Interface,"_ GZend_Filter_Encrypt_Interface,+^ YZend_Filter_Compress_CompressInterface,0] cZend_Feed_Writer_Renderer_RendererInterface,1\ eZend_Feed_Writer_Extension_RendererInterface,#[ IZend_Feed_Reader_FeedInterface,$Z KZend_Feed_Reader_EntryInterface,7Y qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface,-X ]Zend_Feed_Pubsubhubbub_CallbackInterface, W CZend_Feed_Builder_Interface,   Z  rL+Y(vN"yV3|H




O
-
				]	#a6 pF%sGqJsLn"c7u:                            4 kZend_Tool_Framework_Manifest_ActionManifestable-) UZend_Tool_Framework_Loader_Interface-8 sZend_Tool_Framework_Client_Storage_AdapterInterface-D 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface-; yZend_Tool_Framework_Client_Interactive_OutputInterface-:  wZend_Tool_Framework_Client_Interactive_InputInterface-) UZend_Tool_Framework_Action_Interface-(~ SZend_Text_Table_Decorator_Interface-} /Zend_Tag_Taggable-&| OZend_Soap_Wsdl_Strategy_Interface-%{ MZend_Session_Validator_Interface-'z QZend_Session_SaveHandler_Interface-Iy Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Interface-x 7Zend_Server_Interface--w ]Zend_Serializer_Adapter_AdapterInterface-4v kZend_Search_Lucene_Search_Highlighter_Interface-!u EZend_Search_Lucene_Interface-3t iZend_Search_Lucene_Index_TermsStream_Interface-$s KZend_Queue_Stomp_FrameInterface-0r cZend_Queue_Stomp_Client_ConnectionInterface-(q SZend_Queue_Adapter_AdapterInterface-p ?Zend_Pdf_Filter_Interface-&o OZend_Pdf_ElementFactory_Interface-,n [Zend_Paginator_ScrollingStyle_Interface-$m KZend_Paginator_AdapterAggregate-%l MZend_Paginator_Adapter_Interface-&k OZend_Oauth_Config_ConfigInterface-$j KZend_Memory_Container_Interface-1i eZend_Markup_Renderer_TokenConverterInterface-'h QZend_Markup_Parser_ParserInterface-)g UZend_Mail_Storage_Writable_Interface-'f QZend_Mail_Storage_Folder_Interface-e =Zend_Mail_Part_Interface- d CZend_Mail_Message_Interface-!c EZend_Log_Formatter_Interface-b ?Zend_Log_Filter_Interface-a ?Zend_Log_FactoryInterface-'` QZend_Loader_PluginLoader_Interface-%_ MZend_Loader_Autoloader_Interface-0^ cZend_Ldap_Node_Schema_ObjectClass_Interface-2] gZend_Ldap_Node_Schema_AttributeType_Interface-3\ iZend_InfoCard_Xml_Security_Transform_Interface-([ SZend_InfoCard_Xml_KeyInfo_Interface-(Z SZend_InfoCard_Xml_Element_Interface-*Y WZend_InfoCard_Xml_Assertion_Interface--X ]Zend_InfoCard_Cipher_Symmetric_Interface-7W qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface-7V qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interface-+U YZend_InfoCard_Cipher_Pki_Rsa_Interface-'T QZend_InfoCard_Cipher_Pki_Interface-$S KZend_InfoCard_Adapter_Interface-$R KZend_Http_Client_Adapter_Stream-'Q QZend_Http_Client_Adapter_Interface-P AZend_Gdata_App_MediaSource-.O _Zend_Form_Decorator_Marker_File_Interface-"N GZend_Form_Decorator_Interface-M 7Zend_Filter_Interface-"L GZend_Filter_Encrypt_Interface-+K YZend_Filter_Compress_CompressInterface-0J cZend_Feed_Writer_Renderer_RendererInterface-1I eZend_Feed_Writer_Extension_RendererInterface-#H IZend_Feed_Reader_FeedInterface-$G KZend_Feed_Reader_EntryInterface-7F qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface--E ]Zend_Feed_Pubsubhubbub_CallbackInterface- D CZend_Feed_Builder_Interface- C CZend_Db_Statement_Interface-$B KZend_Currency_CurrencyInterface-)A UZend_Crypt_Math_BigInteger_Interface-+@ YZend_Controller_Router_Route_Interface-%? MZend_Controller_Router_Interface-)> UZend_Controller_Dispatcher_Interface-%= MZend_Controller_Action_Interface-< 5Zend_Captcha_Adapter-!; EZend_Cache_Backend_Interface-): UZend_Cache_Backend_ExtendedInterface- 9 CZend_Auth_Storage_Interface- 8 CZend_Auth_Adapter_Interface-.7 _Zend_Auth_Adapter_Http_Resolver_Interface-'6 QZend_Application_Resource_Resource-45 kZend_Application_Bootstrap_ResourceBootstrapper-,4 [Zend_Application_Bootstrap_Bootstrapper-3 ;Zend_Acl_Role_Interface- 2 CZend_Acl_Resource_Interface-1 ?Zend_Acl_Assert_Interface-#0 IZend_Wildfire_Plugin_Interface,$/ KZend_Wildfire_Channel_Interface,. 3Zend_View_Interface,'- QZend_View_Helper_Navigation_Helper,, AZend_View_Helper_Interface,   f  qO*qP(Z:jBuQ/




w
]
C
$
					k	C	a5a;aI( {U9}A
j5
|BrP2
            '} QZend_Controller_Plugin_ActionStack-$| KZend_Controller_Plugin_Abstract-{ 7Zend_Controller_Front-z ?Zend_Controller_Exception-(y SZend_Controller_Dispatcher_Standard-)x UZend_Controller_Dispatcher_Exception-(w SZend_Controller_Dispatcher_Abstract-v 9Zend_Controller_Action-(u SZend_Controller_Action_HelperBroker-6t oZend_Controller_Action_HelperBroker_PriorityStack-/s aZend_Controller_Action_Helper_ViewRenderer-&r OZend_Controller_Action_Helper_Url--q ]Zend_Controller_Action_Helper_Redirector-'p QZend_Controller_Action_Helper_Json-1o eZend_Controller_Action_Helper_FlashMessenger-0n cZend_Controller_Action_Helper_ContextSwitch-(m SZend_Controller_Action_Helper_Cache-<l {Zend_Controller_Action_Helper_AutoCompleteScriptaculous-3k iZend_Controller_Action_Helper_AutoCompleteDojo-8j sZend_Controller_Action_Helper_AutoComplete_Abstract-.i _Zend_Controller_Action_Helper_AjaxContext-.h _Zend_Controller_Action_Helper_ActionStack-+g YZend_Controller_Action_Helper_Abstract-%f MZend_Controller_Action_Exception-e 3Zend_Console_Getopt-"d GZend_Console_Getopt_Exception-c #Zend_Config-b +Zend_Config_Xml-a 1Zend_Config_Writer-` 9Zend_Config_Writer_Xml-_ 9Zend_Config_Writer_Ini-$^ KZend_Config_Writer_FileAbstract-] =Zend_Config_Writer_Array-\ +Zend_Config_Ini-[ 7Zend_Config_Exception-$Z KZend_CodeGenerator_Php_Property-1Y eZend_CodeGenerator_Php_Property_DefaultValue-%X MZend_CodeGenerator_Php_Parameter-2W gZend_CodeGenerator_Php_Parameter_DefaultValue-"V GZend_CodeGenerator_Php_Method-,U [Zend_CodeGenerator_Php_Member_Container-+T YZend_CodeGenerator_Php_Member_Abstract- S CZend_CodeGenerator_Php_File-%R MZend_CodeGenerator_Php_Exception-$Q KZend_CodeGenerator_Php_Docblock-(P SZend_CodeGenerator_Php_Docblock_Tag-/O aZend_CodeGenerator_Php_Docblock_Tag_Return-.N _Zend_CodeGenerator_Php_Docblock_Tag_Param-0M cZend_CodeGenerator_Php_Docblock_Tag_License-!L EZend_CodeGenerator_Php_Class- K CZend_CodeGenerator_Php_Body-$J KZend_CodeGenerator_Php_Abstract-!I EZend_CodeGenerator_Exception- H CZend_CodeGenerator_Abstract-G /Zend_Captcha_Word-F 9Zend_Captcha_ReCaptcha-E 1Zend_Captcha_Image-D 3Zend_Captcha_Figlet-C 9Zend_Captcha_Exception-B /Zend_Captcha_Dumb-A /Zend_Captcha_Base-@ !Zend_Cache-? 1Zend_Cache_Manager-> =Zend_Cache_Frontend_Page-= AZend_Cache_Frontend_Output-!< EZend_Cache_Frontend_Function-; =Zend_Cache_Frontend_File-: ?Zend_Cache_Frontend_Class- 9 CZend_Cache_Frontend_Capture-8 5Zend_Cache_Exception-7 +Zend_Cache_Core-6 1Zend_Cache_Backend-"5 GZend_Cache_Backend_ZendServer-(4 SZend_Cache_Backend_ZendServer_ShMem-'3 QZend_Cache_Backend_ZendServer_Disk-$2 KZend_Cache_Backend_ZendPlatform-1 ?Zend_Cache_Backend_Xcache-!0 EZend_Cache_Backend_TwoLevels-/ ;Zend_Cache_Backend_Test-. ?Zend_Cache_Backend_Static-- ?Zend_Cache_Backend_Sqlite-!, EZend_Cache_Backend_Memcached-+ ;Zend_Cache_Backend_File-!* EZend_Cache_Backend_BlackHole-) 9Zend_Cache_Backend_Apc-( %Zend_Barcode-+' YZend_Barcode_Renderer_RendererAbstract-& ?Zend_Barcode_Renderer_Pdf- % CZend_Barcode_Renderer_Image-$$ KZend_Barcode_Renderer_Exception-# =Zend_Barcode_Object_Upce-" =Zend_Barcode_Object_Upca-"! GZend_Barcode_Object_Royalmail-   CZend_Barcode_Object_Postnet- AZend_Barcode_Object_Planet-' QZend_Barcode_Object_ObjectAbstract-! EZend_Barcode_Object_Leitcode- ?Zend_Barcode_Object_Itf14-" GZend_Barcode_Object_Identcode-" GZend_Barcode_Object_Exception- ?Zend_Barcode_Object_Error- =Zend_Barcode_Object_Ean8-   n  [1d?oHj>vL




x
V
;
$
						w	V	0	b=qO,qR9lK rQ7vP)r[?~N                   'k QZend_Dojo_Form_Decorator_DijitForm-*j WZend_Dojo_Form_Decorator_DijitElement-,i [Zend_Dojo_Form_Decorator_DijitContainer-)h UZend_Dojo_Form_Decorator_ContentPane--g ]Zend_Dojo_Form_Decorator_BorderContainer-+f YZend_Dojo_Form_Decorator_AccordionPane-0e cZend_Dojo_Form_Decorator_AccordionContainer-d 3Zend_Dojo_Exception-c )Zend_Dojo_Data-b 5Zend_Dojo_BuildLayer-a !Zend_Debug-` Zend_Db-_ 'Zend_Db_Table-^ 5Zend_Db_Table_Select-#] IZend_Db_Table_Select_Exception-\ 5Zend_Db_Table_Rowset-#[ IZend_Db_Table_Rowset_Exception-"Z GZend_Db_Table_Rowset_Abstract-Y /Zend_Db_Table_Row- X CZend_Db_Table_Row_Exception-W AZend_Db_Table_Row_Abstract-V ;Zend_Db_Table_Exception-U =Zend_Db_Table_Definition-T 9Zend_Db_Table_Abstract-S /Zend_Db_Statement-R =Zend_Db_Statement_Sqlsrv-'Q QZend_Db_Statement_Sqlsrv_Exception-P 7Zend_Db_Statement_Pdo-O ?Zend_Db_Statement_Pdo_Oci-N ?Zend_Db_Statement_Pdo_Ibm-M =Zend_Db_Statement_Oracle-'L QZend_Db_Statement_Oracle_Exception-K =Zend_Db_Statement_Mysqli-'J QZend_Db_Statement_Mysqli_Exception- I CZend_Db_Statement_Exception-H 7Zend_Db_Statement_Db2-$G KZend_Db_Statement_Db2_Exception-F )Zend_Db_Select-E =Zend_Db_Select_Exception-D -Zend_Db_Profiler-C 9Zend_Db_Profiler_Query-B =Zend_Db_Profiler_Firebug-A AZend_Db_Profiler_Exception-@ %Zend_Db_Expr-? /Zend_Db_Exception-> 9Zend_Db_Adapter_Sqlsrv-%= MZend_Db_Adapter_Sqlsrv_Exception-< AZend_Db_Adapter_Pdo_Sqlite-; ?Zend_Db_Adapter_Pdo_Pgsql-: ;Zend_Db_Adapter_Pdo_Oci-9 ?Zend_Db_Adapter_Pdo_Mysql-8 ?Zend_Db_Adapter_Pdo_Mssql-7 ;Zend_Db_Adapter_Pdo_Ibm- 6 CZend_Db_Adapter_Pdo_Ibm_Ids- 5 CZend_Db_Adapter_Pdo_Ibm_Db2-!4 EZend_Db_Adapter_Pdo_Abstract-3 9Zend_Db_Adapter_Oracle-%2 MZend_Db_Adapter_Oracle_Exception-1 9Zend_Db_Adapter_Mysqli-%0 MZend_Db_Adapter_Mysqli_Exception-/ ?Zend_Db_Adapter_Exception-. 3Zend_Db_Adapter_Db2-"- GZend_Db_Adapter_Db2_Exception-, =Zend_Db_Adapter_Abstract-+ Zend_Date-* 3Zend_Date_Exception-) 5Zend_Date_DateObject-( -Zend_Date_Cities-' 'Zend_Currency-& ;Zend_Currency_Exception-% !Zend_Crypt-$ )Zend_Crypt_Rsa-# 1Zend_Crypt_Rsa_Key-" ?Zend_Crypt_Rsa_Key_Public-! AZend_Crypt_Rsa_Key_Private-  +Zend_Crypt_Math- ?Zend_Crypt_Math_Exception- AZend_Crypt_Math_BigInteger-# IZend_Crypt_Math_BigInteger_Gmp-) UZend_Crypt_Math_BigInteger_Exception-& OZend_Crypt_Math_BigInteger_Bcmath- +Zend_Crypt_Hmac- ?Zend_Crypt_Hmac_Exception- 5Zend_Crypt_Exception- =Zend_Crypt_DiffieHellman-' QZend_Crypt_DiffieHellman_Exception-! EZend_Controller_Router_Route-( SZend_Controller_Router_Route_Static-' QZend_Controller_Router_Route_Regex-( SZend_Controller_Router_Route_Module-* WZend_Controller_Router_Route_Hostname-' QZend_Controller_Router_Route_Chain-* WZend_Controller_Router_Route_Abstract-# IZend_Controller_Router_Rewrite-% MZend_Controller_Router_Exception-$ KZend_Controller_Router_Abstract-* WZend_Controller_Response_HttpTestCase-"
 GZend_Controller_Response_Http-'	 QZend_Controller_Response_Exception-! EZend_Controller_Response_Cli-& OZend_Controller_Response_Abstract-# IZend_Controller_Request_Simple-) UZend_Controller_Request_HttpTestCase-! EZend_Controller_Request_Http-& OZend_Controller_Request_Exception-& OZend_Controller_Request_Apache404-% MZend_Controller_Request_Abstract-&  OZend_Controller_Plugin_PutHandler-( SZend_Controller_Plugin_ErrorHandler-"~ GZend_Controller_Plugin_Broker-   a  rN( ~Y/	}P!vN'~gF



o
H
				x	K	V*yT'}W-dM6w]C"tH]>gD                                      *L WZend_Feed_Reader_Extension_Atom_Entry-#K IZend_Feed_Reader_EntryAbstract-J AZend_Feed_Reader_Entry_Rss- I CZend_Feed_Reader_Entry_Atom- H CZend_Feed_Reader_Collection-3G iZend_Feed_Reader_Collection_CollectionAbstract-)F UZend_Feed_Reader_Collection_Category-'E QZend_Feed_Reader_Collection_Author-D 9Zend_Feed_Pubsubhubbub-&C OZend_Feed_Pubsubhubbub_Subscriber-/B aZend_Feed_Pubsubhubbub_Subscriber_Callback-%A MZend_Feed_Pubsubhubbub_Publisher-.@ _Zend_Feed_Pubsubhubbub_Model_Subscription-/? aZend_Feed_Pubsubhubbub_Model_ModelAbstract-(> SZend_Feed_Pubsubhubbub_HttpResponse-%= MZend_Feed_Pubsubhubbub_Exception-,< [Zend_Feed_Pubsubhubbub_CallbackAbstract-; 3Zend_Feed_Exception-: 3Zend_Feed_Entry_Rss-9 5Zend_Feed_Entry_Atom-8 =Zend_Feed_Entry_Abstract-7 /Zend_Feed_Element-6 /Zend_Feed_Builder-5 =Zend_Feed_Builder_Header-$4 KZend_Feed_Builder_Header_Itunes- 3 CZend_Feed_Builder_Exception-2 ;Zend_Feed_Builder_Entry-1 )Zend_Feed_Atom-0 1Zend_Feed_Abstract-/ )Zend_Exception-. )Zend_Dom_Query-- 7Zend_Dom_Query_Result-, =Zend_Dom_Query_Css2Xpath-+ 1Zend_Dom_Exception-* Zend_Dojo-)) UZend_Dojo_View_Helper_VerticalSlider-,( [Zend_Dojo_View_Helper_ValidationTextBox-&' OZend_Dojo_View_Helper_TimeTextBox-"& GZend_Dojo_View_Helper_TextBox-#% IZend_Dojo_View_Helper_Textarea-'$ QZend_Dojo_View_Helper_TabContainer-'# QZend_Dojo_View_Helper_SubmitButton-)" UZend_Dojo_View_Helper_StackContainer-)! UZend_Dojo_View_Helper_SplitContainer-!  EZend_Dojo_View_Helper_Slider-) UZend_Dojo_View_Helper_SimpleTextarea-& OZend_Dojo_View_Helper_RadioButton-* WZend_Dojo_View_Helper_PasswordTextBox-( SZend_Dojo_View_Helper_NumberTextBox-( SZend_Dojo_View_Helper_NumberSpinner-+ YZend_Dojo_View_Helper_HorizontalSlider- AZend_Dojo_View_Helper_Form-* WZend_Dojo_View_Helper_FilteringSelect-! EZend_Dojo_View_Helper_Editor- AZend_Dojo_View_Helper_Dojo-) UZend_Dojo_View_Helper_Dojo_Container-) UZend_Dojo_View_Helper_DijitContainer-  CZend_Dojo_View_Helper_Dijit-& OZend_Dojo_View_Helper_DateTextBox-& OZend_Dojo_View_Helper_CustomDijit-* WZend_Dojo_View_Helper_CurrencyTextBox-& OZend_Dojo_View_Helper_ContentPane-# IZend_Dojo_View_Helper_ComboBox-# IZend_Dojo_View_Helper_CheckBox-! EZend_Dojo_View_Helper_Button-* WZend_Dojo_View_Helper_BorderContainer-(
 SZend_Dojo_View_Helper_AccordionPane--	 ]Zend_Dojo_View_Helper_AccordionContainer- =Zend_Dojo_View_Exception- )Zend_Dojo_Form- 9Zend_Dojo_Form_SubForm-* WZend_Dojo_Form_Element_VerticalSlider-- ]Zend_Dojo_Form_Element_ValidationTextBox-' QZend_Dojo_Form_Element_TimeTextBox-# IZend_Dojo_Form_Element_TextBox-$ KZend_Dojo_Form_Element_Textarea-(  SZend_Dojo_Form_Element_SubmitButton-" GZend_Dojo_Form_Element_Slider-*~ WZend_Dojo_Form_Element_SimpleTextarea-'} QZend_Dojo_Form_Element_RadioButton-+| YZend_Dojo_Form_Element_PasswordTextBox-){ UZend_Dojo_Form_Element_NumberTextBox-)z UZend_Dojo_Form_Element_NumberSpinner-,y [Zend_Dojo_Form_Element_HorizontalSlider-+x YZend_Dojo_Form_Element_FilteringSelect-"w GZend_Dojo_Form_Element_Editor-&v OZend_Dojo_Form_Element_DijitMulti-!u EZend_Dojo_Form_Element_Dijit-'t QZend_Dojo_Form_Element_DateTextBox-+s YZend_Dojo_Form_Element_CurrencyTextBox-$r KZend_Dojo_Form_Element_ComboBox-$q KZend_Dojo_Form_Element_CheckBox-"p GZend_Dojo_Form_Element_Button- o CZend_Dojo_Form_DisplayGroup-*n WZend_Dojo_Form_Decorator_TabContainer-,m [Zend_Dojo_Form_Decorator_StackContainer-,l [Zend_Dojo_Form_Decorator_SplitContainer-   a  i1i8u>oY8o2



^
&			~	>	g.qQ8&x^A%xW6gC'	a@"cF$zL                                           %- MZend_Filter_Word_DashToCamelCase-+, YZend_Filter_Word_CamelCaseToUnderscore-*+ WZend_Filter_Word_CamelCaseToSeparator-%* MZend_Filter_Word_CamelCaseToDash-) 7Zend_Filter_StripTags-( ?Zend_Filter_StripNewlines-' 9Zend_Filter_StringTrim-& ?Zend_Filter_StringToUpper-% ?Zend_Filter_StringToLower-$ 5Zend_Filter_RealPath-# ;Zend_Filter_PregReplace-" -Zend_Filter_Null-&! OZend_Filter_NormalizedToLocalized-&  OZend_Filter_LocalizedToNormalized- +Zend_Filter_Int- /Zend_Filter_Input- 7Zend_Filter_Inflector- =Zend_Filter_HtmlEntities- AZend_Filter_File_UpperCase- ;Zend_Filter_File_Rename- AZend_Filter_File_LowerCase- =Zend_Filter_File_Encrypt- =Zend_Filter_File_Decrypt- 7Zend_Filter_Exception- 3Zend_Filter_Encrypt-  CZend_Filter_Encrypt_Openssl- AZend_Filter_Encrypt_Mcrypt- +Zend_Filter_Dir- 1Zend_Filter_Digits- 3Zend_Filter_Decrypt- 9Zend_Filter_Decompress- 5Zend_Filter_Compress- =Zend_Filter_Compress_Zip- =Zend_Filter_Compress_Tar- =Zend_Filter_Compress_Rar-
 =Zend_Filter_Compress_Lzf-	 ;Zend_Filter_Compress_Gz-* WZend_Filter_Compress_CompressAbstract- =Zend_Filter_Compress_Bz2- 5Zend_Filter_Callback- 3Zend_Filter_Boolean- 5Zend_Filter_BaseName- /Zend_Filter_Alpha- /Zend_Filter_Alnum- 1Zend_File_Transfer-!  EZend_File_Transfer_Exception-$ KZend_File_Transfer_Adapter_Http-(~ SZend_File_Transfer_Adapter_Abstract-} Zend_Feed-| -Zend_Feed_Writer-{ ;Zend_Feed_Writer_Source-/z aZend_Feed_Writer_Renderer_RendererAbstract-'y QZend_Feed_Writer_Renderer_Feed_Rss-(x SZend_Feed_Writer_Renderer_Feed_Atom-/w aZend_Feed_Writer_Renderer_Feed_Atom_Source-5v mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract-(u SZend_Feed_Writer_Renderer_Entry_Rss-)t UZend_Feed_Writer_Renderer_Entry_Atom-1s eZend_Feed_Writer_Renderer_Entry_Atom_Deleted-r 7Zend_Feed_Writer_Feed-'q QZend_Feed_Writer_Feed_FeedAbstract-<p {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry-8o sZend_Feed_Writer_Extension_Threading_Renderer_Entry-4n kZend_Feed_Writer_Extension_Slash_Renderer_Entry-0m cZend_Feed_Writer_Extension_RendererAbstract-4l kZend_Feed_Writer_Extension_ITunes_Renderer_Feed-5k mZend_Feed_Writer_Extension_ITunes_Renderer_Entry-+j YZend_Feed_Writer_Extension_ITunes_Feed-,i [Zend_Feed_Writer_Extension_ITunes_Entry-8h sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed-9g uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry-6f oZend_Feed_Writer_Extension_Content_Renderer_Entry-2e gZend_Feed_Writer_Extension_Atom_Renderer_Feed-6d oZend_Feed_Writer_Exception_InvalidMethodException-c 9Zend_Feed_Writer_Entry-b =Zend_Feed_Writer_Deleted-a 'Zend_Feed_Rss-` -Zend_Feed_Reader-_ =Zend_Feed_Reader_FeedSet-"^ GZend_Feed_Reader_FeedAbstract-] ?Zend_Feed_Reader_Feed_Rss-\ AZend_Feed_Reader_Feed_Atom-&[ OZend_Feed_Reader_Feed_Atom_Source-3Z iZend_Feed_Reader_Extension_WellFormedWeb_Entry-,Y [Zend_Feed_Reader_Extension_Thread_Entry-0X cZend_Feed_Reader_Extension_Syndication_Feed-+W YZend_Feed_Reader_Extension_Slash_Entry-,V [Zend_Feed_Reader_Extension_Podcast_Feed--U ]Zend_Feed_Reader_Extension_Podcast_Entry-,T [Zend_Feed_Reader_Extension_FeedAbstract--S ]Zend_Feed_Reader_Extension_EntryAbstract-/R aZend_Feed_Reader_Extension_DublinCore_Feed-0Q cZend_Feed_Reader_Extension_DublinCore_Entry-4P kZend_Feed_Reader_Extension_CreativeCommons_Feed-5O mZend_Feed_Reader_Extension_CreativeCommons_Entry--N ]Zend_Feed_Reader_Extension_Content_Entry-)M UZend_Feed_Reader_Extension_Atom_Feed-   h  S*t`;yV0yU3sT3




k
K
+
				z	Y	8	tO!pHxP' e?vL#gK$N,f>    - ]Zend_Gdata_Books_Extension_BooksCategory-. _Zend_Gdata_Books_Extension_AnnotationLink-$ KZend_Gdata_Books_CollectionFeed-% MZend_Gdata_Books_CollectionEntry- 1Zend_Gdata_AuthSub- )Zend_Gdata_App-$ KZend_Gdata_App_VersionException- 3Zend_Gdata_App_Util-# IZend_Gdata_App_MediaFileSource- ?Zend_Gdata_App_MediaEntry-2 gZend_Gdata_App_LoggingHttpClientAdapterSocket-
 AZend_Gdata_App_IOException-,	 [Zend_Gdata_App_InvalidArgumentException-! EZend_Gdata_App_HttpException-$ KZend_Gdata_App_FeedSourceParent-# IZend_Gdata_App_FeedEntryParent- 3Zend_Gdata_App_Feed- =Zend_Gdata_App_Extension-! EZend_Gdata_App_Extension_Uri-% MZend_Gdata_App_Extension_Updated-# IZend_Gdata_App_Extension_Title-"  GZend_Gdata_App_Extension_Text-% MZend_Gdata_App_Extension_Summary-&~ OZend_Gdata_App_Extension_Subtitle-$} KZend_Gdata_App_Extension_Source-$| KZend_Gdata_App_Extension_Rights-'{ QZend_Gdata_App_Extension_Published-$z KZend_Gdata_App_Extension_Person-"y GZend_Gdata_App_Extension_Name-"x GZend_Gdata_App_Extension_Logo-"w GZend_Gdata_App_Extension_Link- v CZend_Gdata_App_Extension_Id-"u GZend_Gdata_App_Extension_Icon-'t QZend_Gdata_App_Extension_Generator-#s IZend_Gdata_App_Extension_Email-%r MZend_Gdata_App_Extension_Element-$q KZend_Gdata_App_Extension_Edited-#p IZend_Gdata_App_Extension_Draft-%o MZend_Gdata_App_Extension_Control-)n UZend_Gdata_App_Extension_Contributor-%m MZend_Gdata_App_Extension_Content-&l OZend_Gdata_App_Extension_Category-$k KZend_Gdata_App_Extension_Author-j =Zend_Gdata_App_Exception-i 5Zend_Gdata_App_Entry-,h [Zend_Gdata_App_CaptchaRequiredException-#g IZend_Gdata_App_BaseMediaSource-f 3Zend_Gdata_App_Base-*e WZend_Gdata_App_BadMethodCallException-!d EZend_Gdata_App_AuthException-c Zend_Form-b /Zend_Form_SubForm-a 3Zend_Form_Exception-` /Zend_Form_Element-_ ;Zend_Form_Element_Xhtml-^ AZend_Form_Element_Textarea-] 9Zend_Form_Element_Text-\ =Zend_Form_Element_Submit-[ =Zend_Form_Element_Select-Z ;Zend_Form_Element_Reset-Y ;Zend_Form_Element_Radio-X AZend_Form_Element_Password-"W GZend_Form_Element_Multiselect-$V KZend_Form_Element_MultiCheckbox-U ;Zend_Form_Element_Multi-T ;Zend_Form_Element_Image-S =Zend_Form_Element_Hidden-R 9Zend_Form_Element_Hash-Q 9Zend_Form_Element_File- P CZend_Form_Element_Exception-O AZend_Form_Element_Checkbox-N ?Zend_Form_Element_Captcha-M =Zend_Form_Element_Button-L 9Zend_Form_DisplayGroup-#K IZend_Form_Decorator_ViewScript-#J IZend_Form_Decorator_ViewHelper- I CZend_Form_Decorator_Tooltip-(H SZend_Form_Decorator_PrepareElements-G ?Zend_Form_Decorator_Label-F ?Zend_Form_Decorator_Image- E CZend_Form_Decorator_HtmlTag-#D IZend_Form_Decorator_FormErrors-%C MZend_Form_Decorator_FormElements-B =Zend_Form_Decorator_Form-A =Zend_Form_Decorator_File-!@ EZend_Form_Decorator_Fieldset-"? GZend_Form_Decorator_Exception-> AZend_Form_Decorator_Errors-$= KZend_Form_Decorator_DtDdWrapper-$< KZend_Form_Decorator_Description- ; CZend_Form_Decorator_Captcha-%: MZend_Form_Decorator_Captcha_Word-!9 EZend_Form_Decorator_Callback-!8 EZend_Form_Decorator_Abstract-7 #Zend_Filter-+6 YZend_Filter_Word_UnderscoreToSeparator-&5 OZend_Filter_Word_UnderscoreToDash-+4 YZend_Filter_Word_UnderscoreToCamelCase-*3 WZend_Filter_Word_SeparatorToSeparator-%2 MZend_Filter_Word_SeparatorToDash-*1 WZend_Filter_Word_SeparatorToCamelCase-(0 SZend_Filter_Word_Separator_Abstract-&/ OZend_Filter_Word_DashToUnderscore-%. MZend_Filter_Word_DashToSeparator-   _  vGtO6d7qBa8


q
B
			}	M		tLyQ*xR+zHlFqY1
P1^7       t 9Zend_Gdata_Gapps_Query-#s IZend_Gdata_Gapps_NicknameQuery-"r GZend_Gdata_Gapps_NicknameFeed-#q IZend_Gdata_Gapps_NicknameEntry-%p MZend_Gdata_Gapps_Extension_Quota-(o SZend_Gdata_Gapps_Extension_Nickname-$n KZend_Gdata_Gapps_Extension_Name-%m MZend_Gdata_Gapps_Extension_Login-)l UZend_Gdata_Gapps_Extension_EmailList-k 9Zend_Gdata_Gapps_Error--j ]Zend_Gdata_Gapps_EmailListRecipientQuery-,i [Zend_Gdata_Gapps_EmailListRecipientFeed--h ]Zend_Gdata_Gapps_EmailListRecipientEntry-$g KZend_Gdata_Gapps_EmailListQuery-#f IZend_Gdata_Gapps_EmailListFeed-$e KZend_Gdata_Gapps_EmailListEntry-d +Zend_Gdata_Feed-c 5Zend_Gdata_Extension-b =Zend_Gdata_Extension_Who-a AZend_Gdata_Extension_Where-` ?Zend_Gdata_Extension_When-$_ KZend_Gdata_Extension_Visibility-&^ OZend_Gdata_Extension_Transparency-"] GZend_Gdata_Extension_Reminder--\ ]Zend_Gdata_Extension_RecurrenceException-$[ KZend_Gdata_Extension_Recurrence- Z CZend_Gdata_Extension_Rating-'Y QZend_Gdata_Extension_OriginalEvent-0X cZend_Gdata_Extension_OpenSearchTotalResults-.W _Zend_Gdata_Extension_OpenSearchStartIndex-0V cZend_Gdata_Extension_OpenSearchItemsPerPage-"U GZend_Gdata_Extension_FeedLink-*T WZend_Gdata_Extension_ExtendedProperty-%S MZend_Gdata_Extension_EventStatus-#R IZend_Gdata_Extension_EntryLink-"Q GZend_Gdata_Extension_Comments-&P OZend_Gdata_Extension_AttendeeType-(O SZend_Gdata_Extension_AttendeeStatus-N +Zend_Gdata_Exif-M 5Zend_Gdata_Exif_Feed-#L IZend_Gdata_Exif_Extension_Time-#K IZend_Gdata_Exif_Extension_Tags-$J KZend_Gdata_Exif_Extension_Model-#I IZend_Gdata_Exif_Extension_Make-"H GZend_Gdata_Exif_Extension_Iso-,G [Zend_Gdata_Exif_Extension_ImageUniqueId-$F KZend_Gdata_Exif_Extension_FStop-*E WZend_Gdata_Exif_Extension_FocalLength-$D KZend_Gdata_Exif_Extension_Flash-'C QZend_Gdata_Exif_Extension_Exposure-'B QZend_Gdata_Exif_Extension_Distance-A 7Zend_Gdata_Exif_Entry-@ -Zend_Gdata_Entry-? 7Zend_Gdata_DublinCore-*> WZend_Gdata_DublinCore_Extension_Title-,= [Zend_Gdata_DublinCore_Extension_Subject-+< YZend_Gdata_DublinCore_Extension_Rights-.; _Zend_Gdata_DublinCore_Extension_Publisher--: ]Zend_Gdata_DublinCore_Extension_Language-/9 aZend_Gdata_DublinCore_Extension_Identifier-+8 YZend_Gdata_DublinCore_Extension_Format-07 cZend_Gdata_DublinCore_Extension_Description-)6 UZend_Gdata_DublinCore_Extension_Date-,5 [Zend_Gdata_DublinCore_Extension_Creator-4 +Zend_Gdata_Docs-3 7Zend_Gdata_Docs_Query-%2 MZend_Gdata_Docs_DocumentListFeed-&1 OZend_Gdata_Docs_DocumentListEntry-0 9Zend_Gdata_ClientLogin-/ 3Zend_Gdata_Calendar-!. EZend_Gdata_Calendar_ListFeed-"- GZend_Gdata_Calendar_ListEntry--, ]Zend_Gdata_Calendar_Extension_WebContent-++ YZend_Gdata_Calendar_Extension_Timezone-9* uZend_Gdata_Calendar_Extension_SendEventNotifications-+) YZend_Gdata_Calendar_Extension_Selected-+( YZend_Gdata_Calendar_Extension_QuickAdd-'' QZend_Gdata_Calendar_Extension_Link-)& UZend_Gdata_Calendar_Extension_Hidden-(% SZend_Gdata_Calendar_Extension_Color-.$ _Zend_Gdata_Calendar_Extension_AccessLevel-## IZend_Gdata_Calendar_EventQuery-"" GZend_Gdata_Calendar_EventFeed-#! IZend_Gdata_Calendar_EventEntry-  -Zend_Gdata_Books-! EZend_Gdata_Books_VolumeQuery-  CZend_Gdata_Books_VolumeFeed-! EZend_Gdata_Books_VolumeEntry-+ YZend_Gdata_Books_Extension_Viewability-- ]Zend_Gdata_Books_Extension_ThumbnailLink-& OZend_Gdata_Books_Extension_Review-+ YZend_Gdata_Books_Extension_PreviewLink-( SZend_Gdata_Books_Extension_InfoLink-- ]Zend_Gdata_Books_Extension_Embeddability-) UZend_Gdata_Books_Extension_BooksLink-   a  nU6`:b:g=gH



R
$				h	4	pM+zO#l6X+m<[2hC X/              *U WZend_Gdata_Spreadsheets_DocumentQuery-&T OZend_Gdata_Spreadsheets_CellQuery-%S MZend_Gdata_Spreadsheets_CellFeed-&R OZend_Gdata_Spreadsheets_CellEntry-Q -Zend_Gdata_Query-P /Zend_Gdata_Photos- O CZend_Gdata_Photos_UserQuery-N AZend_Gdata_Photos_UserFeed- M CZend_Gdata_Photos_UserEntry-L AZend_Gdata_Photos_TagEntry-!K EZend_Gdata_Photos_PhotoQuery- J CZend_Gdata_Photos_PhotoFeed-!I EZend_Gdata_Photos_PhotoEntry-&H OZend_Gdata_Photos_Extension_Width-'G QZend_Gdata_Photos_Extension_Weight-(F SZend_Gdata_Photos_Extension_Version-%E MZend_Gdata_Photos_Extension_User-*D WZend_Gdata_Photos_Extension_Timestamp-*C WZend_Gdata_Photos_Extension_Thumbnail-%B MZend_Gdata_Photos_Extension_Size-)A UZend_Gdata_Photos_Extension_Rotation-+@ YZend_Gdata_Photos_Extension_QuotaLimit--? ]Zend_Gdata_Photos_Extension_QuotaCurrent-)> UZend_Gdata_Photos_Extension_Position-(= SZend_Gdata_Photos_Extension_PhotoId-3< iZend_Gdata_Photos_Extension_NumPhotosRemaining-*; WZend_Gdata_Photos_Extension_NumPhotos-): UZend_Gdata_Photos_Extension_Nickname-%9 MZend_Gdata_Photos_Extension_Name-28 gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum-)7 UZend_Gdata_Photos_Extension_Location-#6 IZend_Gdata_Photos_Extension_Id-'5 QZend_Gdata_Photos_Extension_Height-24 gZend_Gdata_Photos_Extension_CommentingEnabled--3 ]Zend_Gdata_Photos_Extension_CommentCount-'2 QZend_Gdata_Photos_Extension_Client-)1 UZend_Gdata_Photos_Extension_Checksum-*0 WZend_Gdata_Photos_Extension_BytesUsed-(/ SZend_Gdata_Photos_Extension_AlbumId-'. QZend_Gdata_Photos_Extension_Access-#- IZend_Gdata_Photos_CommentEntry-!, EZend_Gdata_Photos_AlbumQuery- + CZend_Gdata_Photos_AlbumFeed-!* EZend_Gdata_Photos_AlbumEntry-) 3Zend_Gdata_MimeFile-( ?Zend_Gdata_MimeBodyString-' AZend_Gdata_MediaMimeStream-& -Zend_Gdata_Media-% 7Zend_Gdata_Media_Feed-*$ WZend_Gdata_Media_Extension_MediaTitle-.# _Zend_Gdata_Media_Extension_MediaThumbnail-)" UZend_Gdata_Media_Extension_MediaText-0! cZend_Gdata_Media_Extension_MediaRestriction-+  YZend_Gdata_Media_Extension_MediaRating-+ YZend_Gdata_Media_Extension_MediaPlayer-- ]Zend_Gdata_Media_Extension_MediaKeywords-) UZend_Gdata_Media_Extension_MediaHash-* WZend_Gdata_Media_Extension_MediaGroup-0 cZend_Gdata_Media_Extension_MediaDescription-+ YZend_Gdata_Media_Extension_MediaCredit-. _Zend_Gdata_Media_Extension_MediaCopyright-, [Zend_Gdata_Media_Extension_MediaContent-- ]Zend_Gdata_Media_Extension_MediaCategory- 9Zend_Gdata_Media_Entry- AZend_Gdata_Kind_EventEntry- 7Zend_Gdata_HttpClient-* WZend_Gdata_HttpAdapterStreamingSocket-) UZend_Gdata_HttpAdapterStreamingProxy- /Zend_Gdata_Health- ;Zend_Gdata_Health_Query-& OZend_Gdata_Health_ProfileListFeed-' QZend_Gdata_Health_ProfileListEntry-" GZend_Gdata_Health_ProfileFeed-# IZend_Gdata_Health_ProfileEntry-$ KZend_Gdata_Health_Extension_Ccr-
 )Zend_Gdata_Geo-	 3Zend_Gdata_Geo_Feed-$ KZend_Gdata_Geo_Extension_GmlPos-& OZend_Gdata_Geo_Extension_GmlPoint-) UZend_Gdata_Geo_Extension_GeoRssWhere- 5Zend_Gdata_Geo_Entry- -Zend_Gdata_Gbase-" GZend_Gdata_Gbase_SnippetQuery-! EZend_Gdata_Gbase_SnippetFeed-" GZend_Gdata_Gbase_SnippetEntry-  9Zend_Gdata_Gbase_Query- AZend_Gdata_Gbase_ItemQuery-~ ?Zend_Gdata_Gbase_ItemFeed-} AZend_Gdata_Gbase_ItemEntry-| 7Zend_Gdata_Gbase_Feed--{ ]Zend_Gdata_Gbase_Extension_BaseAttribute-z 9Zend_Gdata_Gbase_Entry-y -Zend_Gdata_Gapps-x AZend_Gdata_Gapps_UserQuery-w ?Zend_Gdata_Gapps_UserFeed-v AZend_Gdata_Gapps_UserEntry-&u OZend_Gdata_Gapps_ServiceException-   [  m:\-f?oBX,



y
K
				[	0	pBZ)vKwQ$pDyS(w^B&tB                                40 kZend_InfoCard_Cipher_Symmetric_Adapter_Abstract-)/ UZend_InfoCard_Cipher_Pki_Adapter_Rsa-.. _Zend_InfoCard_Cipher_Pki_Adapter_Abstract-#- IZend_InfoCard_Cipher_Exception-$, KZend_InfoCard_Adapter_Exception-"+ GZend_InfoCard_Adapter_Default-* 1Zend_Http_Response-) ?Zend_Http_Response_Stream-( 3Zend_Http_Exception-' 3Zend_Http_CookieJar-& -Zend_Http_Cookie-% -Zend_Http_Client-$ AZend_Http_Client_Exception-"# GZend_Http_Client_Adapter_Test-$" KZend_Http_Client_Adapter_Socket-#! IZend_Http_Client_Adapter_Proxy-'  QZend_Http_Client_Adapter_Exception-" GZend_Http_Client_Adapter_Curl- !Zend_Gdata- 1Zend_Gdata_YouTube-" GZend_Gdata_YouTube_VideoQuery-! EZend_Gdata_YouTube_VideoFeed-" GZend_Gdata_YouTube_VideoEntry-( SZend_Gdata_YouTube_UserProfileEntry-( SZend_Gdata_YouTube_SubscriptionFeed-) UZend_Gdata_YouTube_SubscriptionEntry-) UZend_Gdata_YouTube_PlaylistVideoFeed-* WZend_Gdata_YouTube_PlaylistVideoEntry-( SZend_Gdata_YouTube_PlaylistListFeed-) UZend_Gdata_YouTube_PlaylistListEntry-" GZend_Gdata_YouTube_MediaEntry-! EZend_Gdata_YouTube_InboxFeed-" GZend_Gdata_YouTube_InboxEntry-) UZend_Gdata_YouTube_Extension_VideoId-* WZend_Gdata_YouTube_Extension_Username-* WZend_Gdata_YouTube_Extension_Uploaded-' QZend_Gdata_YouTube_Extension_Token-( SZend_Gdata_YouTube_Extension_Status-,
 [Zend_Gdata_YouTube_Extension_Statistics-'	 QZend_Gdata_YouTube_Extension_State-( SZend_Gdata_YouTube_Extension_School-- ]Zend_Gdata_YouTube_Extension_ReleaseDate-. _Zend_Gdata_YouTube_Extension_Relationship-* WZend_Gdata_YouTube_Extension_Recorded-& OZend_Gdata_YouTube_Extension_Racy-- ]Zend_Gdata_YouTube_Extension_QueryString-) UZend_Gdata_YouTube_Extension_Private-* WZend_Gdata_YouTube_Extension_Position-/  aZend_Gdata_YouTube_Extension_PlaylistTitle-, [Zend_Gdata_YouTube_Extension_PlaylistId-,~ [Zend_Gdata_YouTube_Extension_Occupation-)} UZend_Gdata_YouTube_Extension_NoEmbed-'| QZend_Gdata_YouTube_Extension_Music-({ SZend_Gdata_YouTube_Extension_Movies--z ]Zend_Gdata_YouTube_Extension_MediaRating-,y [Zend_Gdata_YouTube_Extension_MediaGroup--x ]Zend_Gdata_YouTube_Extension_MediaCredit-.w _Zend_Gdata_YouTube_Extension_MediaContent-*v WZend_Gdata_YouTube_Extension_Location-&u OZend_Gdata_YouTube_Extension_Link-*t WZend_Gdata_YouTube_Extension_LastName-*s WZend_Gdata_YouTube_Extension_Hometown-)r UZend_Gdata_YouTube_Extension_Hobbies-(q SZend_Gdata_YouTube_Extension_Gender-+p YZend_Gdata_YouTube_Extension_FirstName-*o WZend_Gdata_YouTube_Extension_Duration--n ]Zend_Gdata_YouTube_Extension_Description-+m YZend_Gdata_YouTube_Extension_CountHint-)l UZend_Gdata_YouTube_Extension_Control-)k UZend_Gdata_YouTube_Extension_Company-'j QZend_Gdata_YouTube_Extension_Books-%i MZend_Gdata_YouTube_Extension_Age-)h UZend_Gdata_YouTube_Extension_AboutMe-#g IZend_Gdata_YouTube_ContactFeed-$f KZend_Gdata_YouTube_ContactEntry-#e IZend_Gdata_YouTube_CommentFeed-$d KZend_Gdata_YouTube_CommentEntry-$c KZend_Gdata_YouTube_ActivityFeed-%b MZend_Gdata_YouTube_ActivityEntry-a ;Zend_Gdata_Spreadsheets-*` WZend_Gdata_Spreadsheets_WorksheetFeed-+_ YZend_Gdata_Spreadsheets_WorksheetEntry-,^ [Zend_Gdata_Spreadsheets_SpreadsheetFeed--] ]Zend_Gdata_Spreadsheets_SpreadsheetEntry-&\ OZend_Gdata_Spreadsheets_ListQuery-%[ MZend_Gdata_Spreadsheets_ListFeed-&Z OZend_Gdata_Spreadsheets_ListEntry-/Y aZend_Gdata_Spreadsheets_Extension_RowCount--X ]Zend_Gdata_Spreadsheets_Extension_Custom-/W aZend_Gdata_Spreadsheets_Extension_ColCount-+V YZend_Gdata_Spreadsheets_Extension_Cell-   n  qT+k<tJ(LeN/




]
8

				q	]	A	jG&wW/m?q>k@qP7#b@! nO0                         Zend_Log-  CZend_Log_Writer_ZendMonitor- 9Zend_Log_Writer_Syslog- 9Zend_Log_Writer_Stream- 5Zend_Log_Writer_Null- 5Zend_Log_Writer_Mock- 5Zend_Log_Writer_Mail- ;Zend_Log_Writer_Firebug- 1Zend_Log_Writer_Db- =Zend_Log_Writer_Abstract- 9Zend_Log_Formatter_Xml- ?Zend_Log_Formatter_Simple- AZend_Log_Formatter_Firebug- =Zend_Log_Filter_Suppress- =Zend_Log_Filter_Priority- ;Zend_Log_Filter_Message- =Zend_Log_Filter_Abstract- 1Zend_Log_Exception- #Zend_Locale- -Zend_Locale_Math-
 =Zend_Locale_Math_PhpMath-	 AZend_Locale_Math_Exception- 1Zend_Locale_Format- 7Zend_Locale_Exception- -Zend_Locale_Data-! EZend_Locale_Data_Translation- #Zend_Loader- =Zend_Loader_PluginLoader-' QZend_Loader_PluginLoader_Exception- 7Zend_Loader_Exception-  9Zend_Loader_Autoloader-$ KZend_Loader_Autoloader_Resource-~ Zend_Ldap-} )Zend_Ldap_Node-| 7Zend_Ldap_Node_Schema-#{ IZend_Ldap_Node_Schema_OpenLdap-/z aZend_Ldap_Node_Schema_ObjectClass_OpenLdap-6y oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectory-x AZend_Ldap_Node_Schema_Item-1w eZend_Ldap_Node_Schema_AttributeType_OpenLdap-8v sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory-*u WZend_Ldap_Node_Schema_ActiveDirectory-t 9Zend_Ldap_Node_RootDse-$s KZend_Ldap_Node_RootDse_OpenLdap-&r OZend_Ldap_Node_RootDse_eDirectory-+q YZend_Ldap_Node_RootDse_ActiveDirectory-p ?Zend_Ldap_Node_Collection-$o KZend_Ldap_Node_ChildrenIterator-n ;Zend_Ldap_Node_Abstract-m 9Zend_Ldap_Ldif_Encoder-l -Zend_Ldap_Filter-k ;Zend_Ldap_Filter_String-j 3Zend_Ldap_Filter_Or-i 5Zend_Ldap_Filter_Not-h 7Zend_Ldap_Filter_Mask-g =Zend_Ldap_Filter_Logical-f AZend_Ldap_Filter_Exception-e 5Zend_Ldap_Filter_And-d ?Zend_Ldap_Filter_Abstract-c 3Zend_Ldap_Exception-b %Zend_Ldap_Dn-a 3Zend_Ldap_Converter-` 5Zend_Ldap_Collection-*_ WZend_Ldap_Collection_Iterator_Default-^ 3Zend_Ldap_Attribute-] #Zend_Layout-\ 7Zend_Layout_Exception-)[ UZend_Layout_Controller_Plugin_Layout-0Z cZend_Layout_Controller_Action_Helper_Layout-Y Zend_Json-X -Zend_Json_Server-W 5Zend_Json_Server_Smd-!V EZend_Json_Server_Smd_Service-U ?Zend_Json_Server_Response-#T IZend_Json_Server_Response_Http-S =Zend_Json_Server_Request-"R GZend_Json_Server_Request_Http-Q AZend_Json_Server_Exception-P 9Zend_Json_Server_Error-O 9Zend_Json_Server_Cache-N )Zend_Json_Expr-M 3Zend_Json_Exception-L /Zend_Json_Encoder-K /Zend_Json_Decoder-J 'Zend_InfoCard--I ]Zend_InfoCard_Xml_SecurityTokenReference-H AZend_InfoCard_Xml_Security-)G UZend_InfoCard_Xml_Security_Transform-4F kZend_InfoCard_Xml_Security_Transform_XmlExcC14N-3E iZend_InfoCard_Xml_Security_Transform_Exception-<D {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignature-)C UZend_InfoCard_Xml_Security_Exception-B ?Zend_InfoCard_Xml_KeyInfo-&A OZend_InfoCard_Xml_KeyInfo_XmlDSig-&@ OZend_InfoCard_Xml_KeyInfo_Default-'? QZend_InfoCard_Xml_KeyInfo_Abstract- > CZend_InfoCard_Xml_Exception-#= IZend_InfoCard_Xml_EncryptedKey-$< KZend_InfoCard_Xml_EncryptedData-+; YZend_InfoCard_Xml_EncryptedData_XmlEnc--: ]Zend_InfoCard_Xml_EncryptedData_Abstract-9 ?Zend_InfoCard_Xml_Element- 8 CZend_InfoCard_Xml_Assertion-%7 MZend_InfoCard_Xml_Assertion_Saml-6 ;Zend_InfoCard_Exception-%5 MZend_InfoCard_Exception_Abstract-4 5Zend_InfoCard_Claims-3 5Zend_InfoCard_Cipher-52 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc-51 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc-   w  xT/lL)vT5a@.X)



f
L
.
						h	D	 	mL1~`E$
fApW;!
rU=#	]=%lA jG)          & OZend_OpenId_Provider_Storage_File- 7Zend_OpenId_Extension- AZend_OpenId_Extension_Sreg- 7Zend_OpenId_Exception- 5Zend_OpenId_Consumer-! EZend_OpenId_Consumer_Storage-& OZend_OpenId_Consumer_Storage_File- !Zend_Oauth- -Zend_Oauth_Token- =Zend_Oauth_Token_Request-' QZend_Oauth_Token_AuthorizedRequest-
 ;Zend_Oauth_Token_Access-+	 YZend_Oauth_Signature_SignatureAbstract- =Zend_Oauth_Signature_Rsa-# IZend_Oauth_Signature_Plaintext- ?Zend_Oauth_Signature_Hmac- +Zend_Oauth_Http- ;Zend_Oauth_Http_Utility-& OZend_Oauth_Http_UserAuthorization-! EZend_Oauth_Http_RequestToken-  CZend_Oauth_Http_AccessToken-  5Zend_Oauth_Exception- 3Zend_Oauth_Consumer-~ /Zend_Oauth_Config-} /Zend_Oauth_Client-| +Zend_Navigation-{ 5Zend_Navigation_Page-z =Zend_Navigation_Page_Uri-y =Zend_Navigation_Page_Mvc-x ?Zend_Navigation_Exception-w ?Zend_Navigation_Container-v Zend_Mime-u )Zend_Mime_Part-t /Zend_Mime_Message-s 3Zend_Mime_Exception-r -Zend_Mime_Decode-q #Zend_Memory-p /Zend_Memory_Value-o 3Zend_Memory_Manager-n 7Zend_Memory_Exception-m 7Zend_Memory_Container-"l GZend_Memory_Container_Movable-!k EZend_Memory_Container_Locked-!j EZend_Memory_AccessController-i 3Zend_Measure_Weight-h 3Zend_Measure_Volume-%g MZend_Measure_Viscosity_Kinematic-#f IZend_Measure_Viscosity_Dynamic-e 3Zend_Measure_Torque-d /Zend_Measure_Time-c =Zend_Measure_Temperature-b 1Zend_Measure_Speed-a 7Zend_Measure_Pressure-` 1Zend_Measure_Power-_ 3Zend_Measure_Number-^ 9Zend_Measure_Lightness-] 3Zend_Measure_Length-\ ?Zend_Measure_Illumination-[ 9Zend_Measure_Frequency-Z 1Zend_Measure_Force-Y =Zend_Measure_Flow_Volume-X 9Zend_Measure_Flow_Mole-W 9Zend_Measure_Flow_Mass-V 9Zend_Measure_Exception-U 3Zend_Measure_Energy-T 5Zend_Measure_Density-S 5Zend_Measure_Current- R CZend_Measure_Cooking_Weight- Q CZend_Measure_Cooking_Volume-P =Zend_Measure_Capacitance-O 3Zend_Measure_Binary-N /Zend_Measure_Area-M 1Zend_Measure_Angle-L ?Zend_Measure_Acceleration-K 7Zend_Measure_Abstract-J #Zend_Markup-I 7Zend_Markup_TokenList-H /Zend_Markup_Token-*G WZend_Markup_Renderer_RendererAbstract-F ?Zend_Markup_Renderer_Html-"E GZend_Markup_Renderer_Html_Url-#D IZend_Markup_Renderer_Html_List-"C GZend_Markup_Renderer_Html_Img-+B YZend_Markup_Renderer_Html_HtmlAbstract-#A IZend_Markup_Renderer_Html_Code-#@ IZend_Markup_Renderer_Exception-? AZend_Markup_Parser_Textile-!> EZend_Markup_Parser_Exception-= ?Zend_Markup_Parser_Bbcode-< 7Zend_Markup_Exception-; Zend_Mail-: =Zend_Mail_Transport_Smtp-!9 EZend_Mail_Transport_Sendmail-"8 GZend_Mail_Transport_Exception-!7 EZend_Mail_Transport_Abstract-6 /Zend_Mail_Storage-'5 QZend_Mail_Storage_Writable_Maildir-4 9Zend_Mail_Storage_Pop3-3 9Zend_Mail_Storage_Mbox-2 ?Zend_Mail_Storage_Maildir-1 9Zend_Mail_Storage_Imap-0 =Zend_Mail_Storage_Folder-"/ GZend_Mail_Storage_Folder_Mbox-%. MZend_Mail_Storage_Folder_Maildir- - CZend_Mail_Storage_Exception-, AZend_Mail_Storage_Abstract-+ ;Zend_Mail_Protocol_Smtp-'* QZend_Mail_Protocol_Smtp_Auth_Plain-') QZend_Mail_Protocol_Smtp_Auth_Login-)( UZend_Mail_Protocol_Smtp_Auth_Crammd5-' ;Zend_Mail_Protocol_Pop3-& ;Zend_Mail_Protocol_Imap-!% EZend_Mail_Protocol_Exception- $ CZend_Mail_Protocol_Abstract-# )Zend_Mail_Part-" 3Zend_Mail_Part_File-! /Zend_Mail_Message-  9Zend_Mail_Message_File- 3Zend_Mail_Exception-   n  r^9wM{^;}_Ay[;



w
[
1
					s	W	<	%zDzX;zS3uU<~]7{[:u[:lE           * WZend_Pdf_Resource_Font_FontDescriptor-% MZend_Pdf_Resource_Font_Extracted-# IZend_Pdf_Resource_Font_CidFont-,  [Zend_Pdf_Resource_Font_CidFont_TrueType-3 iZend_Pdf_RecursivelyIteratableObjectsContainer-~ +Zend_Pdf_Parser-} 'Zend_Pdf_Page-| -Zend_Pdf_Outline-{ ;Zend_Pdf_Outline_Loaded-z =Zend_Pdf_Outline_Created-y /Zend_Pdf_NameTree-x )Zend_Pdf_Image-w 'Zend_Pdf_Font-v ?Zend_Pdf_Filter_RunLength- u CZend_Pdf_Filter_Compression-$t KZend_Pdf_Filter_Compression_Lzw-&s OZend_Pdf_Filter_Compression_Flate-r =Zend_Pdf_Filter_AsciiHex-q ;Zend_Pdf_Filter_Ascii85-"p GZend_Pdf_FileParserDataSource-)o UZend_Pdf_FileParserDataSource_String-'n QZend_Pdf_FileParserDataSource_File-m 3Zend_Pdf_FileParser-l ?Zend_Pdf_FileParser_Image-"k GZend_Pdf_FileParser_Image_Png-j =Zend_Pdf_FileParser_Font-&i OZend_Pdf_FileParser_Font_OpenType-/h aZend_Pdf_FileParser_Font_OpenType_TrueType-g 1Zend_Pdf_Exception-f ;Zend_Pdf_ElementFactory-"e GZend_Pdf_ElementFactory_Proxy-d -Zend_Pdf_Element-c ;Zend_Pdf_Element_String-#b IZend_Pdf_Element_String_Binary-a ;Zend_Pdf_Element_Stream-` AZend_Pdf_Element_Reference-%_ MZend_Pdf_Element_Reference_Table-'^ QZend_Pdf_Element_Reference_Context-] ;Zend_Pdf_Element_Object-#\ IZend_Pdf_Element_Object_Stream-[ =Zend_Pdf_Element_Numeric-Z 7Zend_Pdf_Element_Null-Y 7Zend_Pdf_Element_Name- X CZend_Pdf_Element_Dictionary-W =Zend_Pdf_Element_Boolean-V 9Zend_Pdf_Element_Array-U 5Zend_Pdf_Destination-T ?Zend_Pdf_Destination_Zoom-!S EZend_Pdf_Destination_Unknown-R AZend_Pdf_Destination_Named-'Q QZend_Pdf_Destination_FitVertically-&P OZend_Pdf_Destination_FitRectangle-)O UZend_Pdf_Destination_FitHorizontally-2N gZend_Pdf_Destination_FitBoundingBoxVertically-4M kZend_Pdf_Destination_FitBoundingBoxHorizontally-(L SZend_Pdf_Destination_FitBoundingBox-K =Zend_Pdf_Destination_Fit-"J GZend_Pdf_Destination_Explicit-I )Zend_Pdf_Color-H 1Zend_Pdf_Color_Rgb-G 3Zend_Pdf_Color_Html-F =Zend_Pdf_Color_GrayScale-E 3Zend_Pdf_Color_Cmyk-D 'Zend_Pdf_Cmap-C AZend_Pdf_Cmap_TrimmedTable-!B EZend_Pdf_Cmap_SegmentToDelta-A AZend_Pdf_Cmap_ByteEncoding-&@ OZend_Pdf_Cmap_ByteEncoding_Static-? 3Zend_Pdf_Annotation-> =Zend_Pdf_Annotation_Text-= AZend_Pdf_Annotation_Markup-< =Zend_Pdf_Annotation_Link-'; QZend_Pdf_Annotation_FileAttachment-: +Zend_Pdf_Action-9 3Zend_Pdf_Action_URI-8 ;Zend_Pdf_Action_Unknown-7 7Zend_Pdf_Action_Trans-6 9Zend_Pdf_Action_Thread-5 AZend_Pdf_Action_SubmitForm-4 7Zend_Pdf_Action_Sound- 3 CZend_Pdf_Action_SetOCGState-2 ?Zend_Pdf_Action_ResetForm-1 ?Zend_Pdf_Action_Rendition-0 7Zend_Pdf_Action_Named-/ 7Zend_Pdf_Action_Movie-. 9Zend_Pdf_Action_Launch-- AZend_Pdf_Action_JavaScript-, AZend_Pdf_Action_ImportData-+ 5Zend_Pdf_Action_Hide-* 7Zend_Pdf_Action_GoToR-) 7Zend_Pdf_Action_GoToE-( AZend_Pdf_Action_GoTo3DView-' 5Zend_Pdf_Action_GoTo-& )Zend_Paginator--% ]Zend_Paginator_SerializableLimitIterator-*$ WZend_Paginator_ScrollingStyle_Sliding-*# WZend_Paginator_ScrollingStyle_Jumping-*" WZend_Paginator_ScrollingStyle_Elastic-&! OZend_Paginator_ScrollingStyle_All-  =Zend_Paginator_Exception-  CZend_Paginator_Adapter_Null-$ KZend_Paginator_Adapter_Iterator-) UZend_Paginator_Adapter_DbTableSelect-$ KZend_Paginator_Adapter_DbSelect-! EZend_Paginator_Adapter_Array- #Zend_OpenId- 5Zend_OpenId_Provider- ?Zend_OpenId_Provider_User-& OZend_OpenId_Provider_User_Session-! EZend_OpenId_Provider_Storage-   ]  f+r5zAQ"oJ*




y
Y
@


				f	E	"		sO1X=wK&dB!hL4W
Ka7                                                            6` oZend_Search_Lucene_Analysis_TokenFilter_LowerCase-&_ OZend_Search_Lucene_Analysis_Token-)^ UZend_Search_Lucene_Analysis_Analyzer-0] cZend_Search_Lucene_Analysis_Analyzer_Common-8\ sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num-I[ Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive-5Z mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8-FY Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive-8X sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum-IW Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive-5V mZend_Search_Lucene_Analysis_Analyzer_Common_Text-FU Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive-T 7Zend_Search_Exception-S -Zend_Rest_Server-R AZend_Rest_Server_Exception-Q +Zend_Rest_Route-P 3Zend_Rest_Exception-O 5Zend_Rest_Controller-N -Zend_Rest_Client-M ;Zend_Rest_Client_Result-&L OZend_Rest_Client_Result_Exception-K AZend_Rest_Client_Exception-J 'Zend_Registry-I =Zend_Reflection_Property-H ?Zend_Reflection_Parameter-G 9Zend_Reflection_Method-F =Zend_Reflection_Function-E 5Zend_Reflection_File-D ?Zend_Reflection_Extension-C ?Zend_Reflection_Exception-B =Zend_Reflection_Docblock-!A EZend_Reflection_Docblock_Tag-(@ SZend_Reflection_Docblock_Tag_Return-'? QZend_Reflection_Docblock_Tag_Param-> 7Zend_Reflection_Class-= !Zend_Queue-< 9Zend_Queue_Stomp_Frame-; ;Zend_Queue_Stomp_Client-': QZend_Queue_Stomp_Client_Connection-9 1Zend_Queue_Message-#8 IZend_Queue_Message_PlatformJob- 7 CZend_Queue_Message_Iterator-6 5Zend_Queue_Exception-(5 SZend_Queue_Adapter_PlatformJobQueue-4 ;Zend_Queue_Adapter_Null-!3 EZend_Queue_Adapter_Memcacheq-2 7Zend_Queue_Adapter_Db- 1 CZend_Queue_Adapter_Db_Queue-"0 GZend_Queue_Adapter_Db_Message-/ =Zend_Queue_Adapter_Array-'. QZend_Queue_Adapter_AdapterAbstract- - CZend_Queue_Adapter_Activemq-, -Zend_ProgressBar-+ AZend_ProgressBar_Exception-* =Zend_ProgressBar_Adapter-$) KZend_ProgressBar_Adapter_JsPush-$( KZend_ProgressBar_Adapter_JsPull-'' QZend_ProgressBar_Adapter_Exception-%& MZend_ProgressBar_Adapter_Console-% Zend_Pdf-!$ EZend_Pdf_UpdateInfoContainer-# -Zend_Pdf_Trailer-" ;Zend_Pdf_Trailer_Keeper-! AZend_Pdf_Trailer_Generator-  +Zend_Pdf_Target- )Zend_Pdf_Style- 7Zend_Pdf_StringParser- /Zend_Pdf_Resource-# IZend_Pdf_Resource_ImageFactory- ;Zend_Pdf_Resource_Image-! EZend_Pdf_Resource_Image_Tiff-  CZend_Pdf_Resource_Image_Png-! EZend_Pdf_Resource_Image_Jpeg- 9Zend_Pdf_Resource_Font-! EZend_Pdf_Resource_Font_Type0-" GZend_Pdf_Resource_Font_Simple-+ YZend_Pdf_Resource_Font_Simple_Standard-8 sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats-6 oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman-7 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic-; yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic-5 mZend_Pdf_Resource_Font_Simple_Standard_TimesBold-2 gZend_Pdf_Resource_Font_Simple_Standard_Symbol-< {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaOblique-A Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique-9 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold-5
 mZend_Pdf_Resource_Font_Simple_Standard_Helvetica-:	 wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique-> Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique-7 qZend_Pdf_Resource_Font_Simple_Standard_CourierBold-3 iZend_Pdf_Resource_Font_Simple_Standard_Courier-) UZend_Pdf_Resource_Font_Simple_Parsed-2 gZend_Pdf_Resource_Font_Simple_Parsed_TrueType-   V  MqHq?N_7



U
				]	+H^*j=vAQ#b3gBrM+            6 9Zend_Server_Definition-5 /Zend_Server_Cache-4 5Zend_Server_Abstract-3 +Zend_Serializer-2 ?Zend_Serializer_Exception-!1 EZend_Serializer_Adapter_Wddx-)0 UZend_Serializer_Adapter_PythonPickle-)/ UZend_Serializer_Adapter_PhpSerialize-$. KZend_Serializer_Adapter_PhpCode-!- EZend_Serializer_Adapter_Json-%, MZend_Serializer_Adapter_Igbinary-!+ EZend_Serializer_Adapter_Amf3-!* EZend_Serializer_Adapter_Amf0-,) [Zend_Serializer_Adapter_AdapterAbstract-( 1Zend_Search_Lucene-0' cZend_Search_Lucene_TermStreamsPriorityQueue-$& KZend_Search_Lucene_Storage_File-+% YZend_Search_Lucene_Storage_File_Memory-/$ aZend_Search_Lucene_Storage_File_Filesystem-)# UZend_Search_Lucene_Storage_Directory-4" kZend_Search_Lucene_Storage_Directory_Filesystem-%! MZend_Search_Lucene_Search_Weight-*  WZend_Search_Lucene_Search_Weight_Term-, [Zend_Search_Lucene_Search_Weight_Phrase-/ aZend_Search_Lucene_Search_Weight_MultiTerm-+ YZend_Search_Lucene_Search_Weight_Empty-- ]Zend_Search_Lucene_Search_Weight_Boolean-) UZend_Search_Lucene_Search_Similarity-1 eZend_Search_Lucene_Search_Similarity_Default-) UZend_Search_Lucene_Search_QueryToken-3 iZend_Search_Lucene_Search_QueryParserException-1 eZend_Search_Lucene_Search_QueryParserContext-* WZend_Search_Lucene_Search_QueryParser-) UZend_Search_Lucene_Search_QueryLexer-' QZend_Search_Lucene_Search_QueryHit-) UZend_Search_Lucene_Search_QueryEntry-. _Zend_Search_Lucene_Search_QueryEntry_Term-2 gZend_Search_Lucene_Search_QueryEntry_Subquery-0 cZend_Search_Lucene_Search_QueryEntry_Phrase-$ KZend_Search_Lucene_Search_Query-- ]Zend_Search_Lucene_Search_Query_Wildcard-) UZend_Search_Lucene_Search_Query_Term-* WZend_Search_Lucene_Search_Query_Range-2 gZend_Search_Lucene_Search_Query_Preprocessing-7
 qZend_Search_Lucene_Search_Query_Preprocessing_Term-9	 uZend_Search_Lucene_Search_Query_Preprocessing_Phrase-8 sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy-+ YZend_Search_Lucene_Search_Query_Phrase-. _Zend_Search_Lucene_Search_Query_MultiTerm-2 gZend_Search_Lucene_Search_Query_Insignificant-* WZend_Search_Lucene_Search_Query_Fuzzy-* WZend_Search_Lucene_Search_Query_Empty-, [Zend_Search_Lucene_Search_Query_Boolean-2 gZend_Search_Lucene_Search_Highlighter_Default-:  wZend_Search_Lucene_Search_BooleanExpressionRecognizer- =Zend_Search_Lucene_Proxy-%~ MZend_Search_Lucene_PriorityQueue-/} aZend_Search_Lucene_Interface_MultiSearcher-#| IZend_Search_Lucene_LockManager-${ KZend_Search_Lucene_Index_Writer-0z cZend_Search_Lucene_Index_TermsPriorityQueue-&y OZend_Search_Lucene_Index_TermInfo-"x GZend_Search_Lucene_Index_Term-+w YZend_Search_Lucene_Index_SegmentWriter-8v sZend_Search_Lucene_Index_SegmentWriter_StreamWriter-:u wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter-+t YZend_Search_Lucene_Index_SegmentMerger-)s UZend_Search_Lucene_Index_SegmentInfo-'r QZend_Search_Lucene_Index_FieldInfo-(q SZend_Search_Lucene_Index_DocsFilter-.p _Zend_Search_Lucene_Index_DictionaryLoader-!o EZend_Search_Lucene_FSMAction-n 9Zend_Search_Lucene_FSM-m =Zend_Search_Lucene_Field-!l EZend_Search_Lucene_Exception- k CZend_Search_Lucene_Document-%j MZend_Search_Lucene_Document_Xlsx-%i MZend_Search_Lucene_Document_Pptx-(h SZend_Search_Lucene_Document_OpenXml-%g MZend_Search_Lucene_Document_Html-*f WZend_Search_Lucene_Document_Exception-%e MZend_Search_Lucene_Document_Docx-,d [Zend_Search_Lucene_Analysis_TokenFilter-6c oZend_Search_Lucene_Analysis_TokenFilter_StopWords-7b qZend_Search_Lucene_Analysis_TokenFilter_ShortWords-:a wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8-   S  sN) ]4a9d:^6



k
E
#
				o	I	 fJ&h#}Lw9k7n3r"k                    Q	 #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequest-Q #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequest-a CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequest-N Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformation-L Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalance-J Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool-- ]Zend_Service_DeveloperGarden_LocalSearch-> Zend_Service_DeveloperGarden_LocalSearch_SearchParameters-7 qZend_Service_DeveloperGarden_LocalSearch_Exception-,  [Zend_Service_DeveloperGarden_IpLocation-6 oZend_Service_DeveloperGarden_IpLocation_IpAddress-+~ YZend_Service_DeveloperGarden_Exception-,} [Zend_Service_DeveloperGarden_Credential-0| cZend_Service_DeveloperGarden_ConferenceCall-C{ Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatus-Cz Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail-<y {Zend_Service_DeveloperGarden_ConferenceCall_Participant-:x wZend_Service_DeveloperGarden_ConferenceCall_Exception-Dw 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceSchedule-Bv Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail-Cu Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount--t ]Zend_Service_DeveloperGarden_Client_Soap-2s gZend_Service_DeveloperGarden_Client_Exception-7r qZend_Service_DeveloperGarden_Client_ClientAbstract-1q eZend_Service_DeveloperGarden_BaseUserService-Ap Zend_Service_DeveloperGarden_BaseUserService_AccountBalance-o 9Zend_Service_Delicious-&n OZend_Service_Delicious_SimplePost-$m KZend_Service_Delicious_PostList- l CZend_Service_Delicious_Post-%k MZend_Service_Delicious_Exception- j CZend_Service_Audioscrobbler-i 3Zend_Service_Amazon-h ;Zend_Service_Amazon_Sqs-&g OZend_Service_Amazon_Sqs_Exception-'f QZend_Service_Amazon_SimilarProduct-e 9Zend_Service_Amazon_S3-"d GZend_Service_Amazon_S3_Stream-%c MZend_Service_Amazon_S3_Exception-"b GZend_Service_Amazon_ResultSet-a ?Zend_Service_Amazon_Query-!` EZend_Service_Amazon_OfferSet-_ ?Zend_Service_Amazon_Offer-&^ OZend_Service_Amazon_ListmaniaList-] =Zend_Service_Amazon_Item-\ ?Zend_Service_Amazon_Image-"[ GZend_Service_Amazon_Exception-(Z SZend_Service_Amazon_EditorialReview-Y ;Zend_Service_Amazon_Ec2-+X YZend_Service_Amazon_Ec2_Securitygroups-%W MZend_Service_Amazon_Ec2_Response-#V IZend_Service_Amazon_Ec2_Region-$U KZend_Service_Amazon_Ec2_Keypair-%T MZend_Service_Amazon_Ec2_Instance--S ]Zend_Service_Amazon_Ec2_Instance_Windows-.R _Zend_Service_Amazon_Ec2_Instance_Reserved-"Q GZend_Service_Amazon_Ec2_Image-&P OZend_Service_Amazon_Ec2_Exception-&O OZend_Service_Amazon_Ec2_Elasticip- N CZend_Service_Amazon_Ec2_Ebs-'M QZend_Service_Amazon_Ec2_CloudWatch-.L _Zend_Service_Amazon_Ec2_Availabilityzones-%K MZend_Service_Amazon_Ec2_Abstract-'J QZend_Service_Amazon_CustomerReview-$I KZend_Service_Amazon_Accessories-!H EZend_Service_Amazon_Abstract-G 5Zend_Service_Akismet-F 7Zend_Service_Abstract-E 9Zend_Server_Reflection-'D QZend_Server_Reflection_ReturnValue-%C MZend_Server_Reflection_Prototype-%B MZend_Server_Reflection_Parameter- A CZend_Server_Reflection_Node-"@ GZend_Server_Reflection_Method-$? KZend_Server_Reflection_Function--> ]Zend_Server_Reflection_Function_Abstract-%= MZend_Server_Reflection_Exception-!< EZend_Server_Reflection_Class-!; EZend_Server_Method_Prototype-!: EZend_Server_Method_Parameter-"9 GZend_Server_Method_Definition- 8 CZend_Server_Method_Callback-7 7Zend_Server_Exception-   /  M2&~c

I			s	&j$;p%YN|.+q                                                                                 T8 )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse-_7 ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType-[6 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponse-W5 /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType-S4 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponse-Q3 #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstract-S2 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponse-J1 Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType-g0 OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseType-c/ GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponse-W. /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse-U- +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponse-S, 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse-3+ iZend_Service_DeveloperGarden_Response_BaseType-J* Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstract-C) Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCall-G( Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced-=' }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCall-A& Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatus-A% Zend_Service_DeveloperGarden_Request_SmsValidation_Validate-N$ Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeyword-C# Zend_Service_DeveloperGarden_Request_SmsValidation_Invalidate-L" Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbers-B! Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract-9  uZend_Service_DeveloperGarden_Request_SendSms_SendSMS-> Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS-9 uZend_Service_DeveloperGarden_Request_RequestAbstract-I Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequest-E Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest-3 iZend_Service_DeveloperGarden_Request_Exception-R %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequest-Y 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequest-d IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequest-Q #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequest-R %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequest-Y 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequest-d IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequest-Q #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequest-O Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequest-U +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequest-U +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequest-V -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequest-a CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequest-Z 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequest-T )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequest-R %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequest-Y
 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequest-   .  J(V?&

x
!		X	 ?Pq&Cdj#5=                                                              Jf Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponse-Ke Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2Response-Ld Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponse-Ic Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumber-Wb /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponse-Ja Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponse-U` +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponse-C_ Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponse-C^ Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstract-H] Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponse-U\ +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponse-Q[ #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponse-IZ Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception-;Y yZend_Service_DeveloperGarden_Response_ResponseAbstract-OX Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseType-KW Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponse-AV Zend_Service_DeveloperGarden_Response_IpLocation_RegionType-KU Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseType-GT Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponse-LS Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationType-IR Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType->Q Zend_Service_DeveloperGarden_Response_IpLocation_CityType-4P kZend_Service_DeveloperGarden_Response_Exception-TO )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse-[N 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponse-fM MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponse-SL 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponse-TK )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse-[J 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponse-fI MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponse-SH 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponse-UG +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType-QF #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse-[E 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseType-WD /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse-[C 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseType-WB /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse-\A 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseType-X@ 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponse-g? OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseType-c> GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse-`= AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType-\< 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponse-Z; 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseType-V: -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponse-X9 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseType-   V  aJzW1R%]5




k
L
*
				i	?	|KsFW){Q$~^7o7a,J                                                  +< YZend_Service_WindowsAzure_Storage_Blob-2; gZend_Service_WindowsAzure_Storage_Blob_Stream-;: yZend_Service_WindowsAzure_Storage_BatchStorageAbstract-,9 [Zend_Service_WindowsAzure_Storage_Batch--8 ]Zend_Service_WindowsAzure_SessionHandler->7 Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract-16 eZend_Service_WindowsAzure_RetryPolicy_RetryN-25 gZend_Service_WindowsAzure_RetryPolicy_NoRetry-44 kZend_Service_WindowsAzure_RetryPolicy_Exception-(3 SZend_Service_WindowsAzure_Exception-82 sZend_Service_WindowsAzure_Credentials_SharedKeyLite-41 kZend_Service_WindowsAzure_Credentials_SharedKey-A0 Zend_Service_WindowsAzure_Credentials_SharedAccessSignature->/ Zend_Service_WindowsAzure_Credentials_CredentialsAbstract-. 5Zend_Service_Twitter- - CZend_Service_Twitter_Search-#, IZend_Service_Twitter_Exception-+ ;Zend_Service_Technorati-#* IZend_Service_Technorati_Weblog-") GZend_Service_Technorati_Utils-*( WZend_Service_Technorati_TagsResultSet-'' QZend_Service_Technorati_TagsResult-)& UZend_Service_Technorati_TagResultSet-&% OZend_Service_Technorati_TagResult-,$ [Zend_Service_Technorati_SearchResultSet-)# UZend_Service_Technorati_SearchResult-&" OZend_Service_Technorati_ResultSet-#! IZend_Service_Technorati_Result-*  WZend_Service_Technorati_KeyInfoResult-* WZend_Service_Technorati_GetInfoResult-& OZend_Service_Technorati_Exception-1 eZend_Service_Technorati_DailyCountsResultSet-. _Zend_Service_Technorati_DailyCountsResult-, [Zend_Service_Technorati_CosmosResultSet-) UZend_Service_Technorati_CosmosResult-+ YZend_Service_Technorati_BlogInfoResult-# IZend_Service_Technorati_Author- ;Zend_Service_StrikeIron-( SZend_Service_StrikeIron_ZipCodeInfo-2 gZend_Service_StrikeIron_USAddressVerification-- ]Zend_Service_StrikeIron_SalesUseTaxBasic-& OZend_Service_StrikeIron_Exception-& OZend_Service_StrikeIron_Decorator-! EZend_Service_StrikeIron_Base- ;Zend_Service_SlideShare-& OZend_Service_SlideShare_SlideShow-& OZend_Service_SlideShare_Exception- 1Zend_Service_Simpy-$ KZend_Service_Simpy_WatchlistSet-* WZend_Service_Simpy_WatchlistFilterSet-'
 QZend_Service_Simpy_WatchlistFilter-!	 EZend_Service_Simpy_Watchlist- ?Zend_Service_Simpy_TagSet- 9Zend_Service_Simpy_Tag- AZend_Service_Simpy_NoteSet- ;Zend_Service_Simpy_Note- AZend_Service_Simpy_LinkSet-! EZend_Service_Simpy_LinkQuery- ;Zend_Service_Simpy_Link- 9Zend_Service_ReCaptcha-$  KZend_Service_ReCaptcha_Response-$ KZend_Service_ReCaptcha_MailHide-.~ _Zend_Service_ReCaptcha_MailHide_Exception-%} MZend_Service_ReCaptcha_Exception-| 7Zend_Service_Nirvanix-#{ IZend_Service_Nirvanix_Response-)z UZend_Service_Nirvanix_Namespace_Imfs-)y UZend_Service_Nirvanix_Namespace_Base-$x KZend_Service_Nirvanix_Exception-w 7Zend_Service_LiveDocx-$v KZend_Service_LiveDocx_MailMerge-$u KZend_Service_LiveDocx_Exception-t 3Zend_Service_Flickr-"s GZend_Service_Flickr_ResultSet-r AZend_Service_Flickr_Result-q ?Zend_Service_Flickr_Image-p 9Zend_Service_Exception-+o YZend_Service_DeveloperGarden_VoiceCall-/n aZend_Service_DeveloperGarden_SmsValidation-)m UZend_Service_DeveloperGarden_SendSms-5l mZend_Service_DeveloperGarden_SecurityTokenServer-;k yZend_Service_DeveloperGarden_SecurityTokenServer_Cache-Kj Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstract-Li Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponse-Ph !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponse-Gg Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponse-   b  T$zJwV/Y3
lE




v
W
.
				p	Q	1	zY0wD-bA*wHf8uN gK(`D,          9Zend_TimeSync_Protocol- /Zend_TimeSync_Ntp- ;Zend_TimeSync_Exception- +Zend_Text_Table- 3Zend_Text_Table_Row- ?Zend_Text_Table_Exception-& OZend_Text_Table_Decorator_Unicode-$ KZend_Text_Table_Decorator_Ascii- 9Zend_Text_Table_Column- 3Zend_Text_MultiByte- -Zend_Text_Figlet- AZend_Text_Figlet_Exception- 3Zend_Text_Exception-& OZend_Test_PHPUnit_Db_SimpleTester-, [Zend_Test_PHPUnit_Db_Operation_Truncate-* WZend_Test_PHPUnit_Db_Operation_Insert-- ]Zend_Test_PHPUnit_Db_Operation_DeleteAll-* WZend_Test_PHPUnit_Db_Metadata_Generic-# IZend_Test_PHPUnit_Db_Exception-, [Zend_Test_PHPUnit_Db_DataSet_QueryTable-.
 _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet-0	 cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet-) UZend_Test_PHPUnit_Db_DataSet_DbTable-* WZend_Test_PHPUnit_Db_DataSet_DbRowset-$ KZend_Test_PHPUnit_Db_Connection-' QZend_Test_PHPUnit_DatabaseTestCase-) UZend_Test_PHPUnit_ControllerTestCase-0 cZend_Test_PHPUnit_Constraint_ResponseHeader-* WZend_Test_PHPUnit_Constraint_Redirect-+ YZend_Test_PHPUnit_Constraint_Exception-*  WZend_Test_PHPUnit_Constraint_DomQuery- 7Zend_Test_DbStatement-~ 3Zend_Test_DbAdapter-} /Zend_Tag_ItemList-| 'Zend_Tag_Item-{ 1Zend_Tag_Exception-z )Zend_Tag_Cloud-y =Zend_Tag_Cloud_Exception-!x EZend_Tag_Cloud_Decorator_Tag-%w MZend_Tag_Cloud_Decorator_HtmlTag-'v QZend_Tag_Cloud_Decorator_HtmlCloud-'u QZend_Tag_Cloud_Decorator_Exception-#t IZend_Tag_Cloud_Decorator_Cloud-s )Zend_Soap_Wsdl-/r aZend_Soap_Wsdl_Strategy_DefaultComplexType-&q OZend_Soap_Wsdl_Strategy_Composite-0p cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence-/o aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex-$n KZend_Soap_Wsdl_Strategy_AnyType-%m MZend_Soap_Wsdl_Strategy_Abstract-l =Zend_Soap_Wsdl_Exception-k -Zend_Soap_Server-j AZend_Soap_Server_Exception-i -Zend_Soap_Client-h 9Zend_Soap_Client_Local-g AZend_Soap_Client_Exception-f ;Zend_Soap_Client_DotNet-e ;Zend_Soap_Client_Common-d 9Zend_Soap_AutoDiscover-%c MZend_Soap_AutoDiscover_Exception-b %Zend_Session-)a UZend_Session_Validator_HttpUserAgent-$` KZend_Session_Validator_Abstract-'_ QZend_Session_SaveHandler_Exception-%^ MZend_Session_SaveHandler_DbTable-] 9Zend_Session_Namespace-\ 9Zend_Session_Exception-[ 7Zend_Session_Abstract-Z 1Zend_Service_Yahoo-$Y KZend_Service_Yahoo_WebResultSet-!X EZend_Service_Yahoo_WebResult-&W OZend_Service_Yahoo_VideoResultSet-#V IZend_Service_Yahoo_VideoResult-!U EZend_Service_Yahoo_ResultSet-T ?Zend_Service_Yahoo_Result-)S UZend_Service_Yahoo_PageDataResultSet-&R OZend_Service_Yahoo_PageDataResult-%Q MZend_Service_Yahoo_NewsResultSet-"P GZend_Service_Yahoo_NewsResult-&O OZend_Service_Yahoo_LocalResultSet-#N IZend_Service_Yahoo_LocalResult-+M YZend_Service_Yahoo_InlinkDataResultSet-(L SZend_Service_Yahoo_InlinkDataResult-&K OZend_Service_Yahoo_ImageResultSet-#J IZend_Service_Yahoo_ImageResult-I =Zend_Service_Yahoo_Image-&H OZend_Service_WindowsAzure_Storage-4G kZend_Service_WindowsAzure_Storage_TableInstance-7F qZend_Service_WindowsAzure_Storage_TableEntityQuery-2E gZend_Service_WindowsAzure_Storage_TableEntity-,D [Zend_Service_WindowsAzure_Storage_Table-7C qZend_Service_WindowsAzure_Storage_SignedIdentifier-3B iZend_Service_WindowsAzure_Storage_QueueMessage-4A kZend_Service_WindowsAzure_Storage_QueueInstance-,@ [Zend_Service_WindowsAzure_Storage_Queue-9? uZend_Service_WindowsAzure_Storage_DynamicTableEntity-3> iZend_Service_WindowsAzure_Storage_BlobInstance-4= kZend_Service_WindowsAzure_Storage_BlobContainer-   L  zL Ry1a$Y$



x
*				k	>	X)vCg0f4Mv<	o;g4                                                   0j cZend_Tool_Project_Context_Zf_FormsDirectory-*i WZend_Tool_Project_Context_Zf_FormFile-/h aZend_Tool_Project_Context_Zf_DocsDirectory--g ]Zend_Tool_Project_Context_Zf_DbTableFile-2f gZend_Tool_Project_Context_Zf_DbTableDirectory-/e aZend_Tool_Project_Context_Zf_DataDirectory-6d oZend_Tool_Project_Context_Zf_ControllersDirectory-0c cZend_Tool_Project_Context_Zf_ControllerFile-2b gZend_Tool_Project_Context_Zf_ConfigsDirectory-,a [Zend_Tool_Project_Context_Zf_ConfigFile-0` cZend_Tool_Project_Context_Zf_CacheDirectory-/_ aZend_Tool_Project_Context_Zf_BootstrapFile-6^ oZend_Tool_Project_Context_Zf_ApplicationDirectory-7] qZend_Tool_Project_Context_Zf_ApplicationConfigFile-/\ aZend_Tool_Project_Context_Zf_ApisDirectory-.[ _Zend_Tool_Project_Context_Zf_ActionMethod-3Z iZend_Tool_Project_Context_Zf_AbstractClassFile-@Y Zend_Tool_Project_Context_System_ProjectProvidersDirectory-8X sZend_Tool_Project_Context_System_ProjectProfileFile-6W oZend_Tool_Project_Context_System_ProjectDirectory-)V UZend_Tool_Project_Context_Repository-.U _Zend_Tool_Project_Context_Filesystem_File-3T iZend_Tool_Project_Context_Filesystem_Directory-2S gZend_Tool_Project_Context_Filesystem_Abstract-(R SZend_Tool_Project_Context_Exception--Q ]Zend_Tool_Project_Context_Content_Engine-3P iZend_Tool_Project_Context_Content_Engine_Phtml-;O yZend_Tool_Project_Context_Content_Engine_CodeGenerator-0N cZend_Tool_Framework_System_Provider_Version-0M cZend_Tool_Framework_System_Provider_Phpinfo-1L eZend_Tool_Framework_System_Provider_Manifest-/K aZend_Tool_Framework_System_Provider_Config-(J SZend_Tool_Framework_System_Manifest--I ]Zend_Tool_Framework_System_Action_Delete--H ]Zend_Tool_Framework_System_Action_Create-!G EZend_Tool_Framework_Registry-+F YZend_Tool_Framework_Registry_Exception-+E YZend_Tool_Framework_Provider_Signature-,D [Zend_Tool_Framework_Provider_Repository-+C YZend_Tool_Framework_Provider_Exception-*B WZend_Tool_Framework_Provider_Abstract-&A OZend_Tool_Framework_Metadata_Tool-)@ UZend_Tool_Framework_Metadata_Dynamic-'? QZend_Tool_Framework_Metadata_Basic-,> [Zend_Tool_Framework_Manifest_Repository-+= YZend_Tool_Framework_Manifest_Exception-1< eZend_Tool_Framework_Loader_IncludePathLoader-J; Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator-+: YZend_Tool_Framework_Loader_BasicLoader-(9 SZend_Tool_Framework_Loader_Abstract-"8 GZend_Tool_Framework_Exception-'7 QZend_Tool_Framework_Client_Storage-16 eZend_Tool_Framework_Client_Storage_Directory-(5 SZend_Tool_Framework_Client_Response-D4 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator-'3 QZend_Tool_Framework_Client_Request-(2 SZend_Tool_Framework_Client_Manifest-91 uZend_Tool_Framework_Client_Interactive_InputResponse-80 sZend_Tool_Framework_Client_Interactive_InputRequest-8/ sZend_Tool_Framework_Client_Interactive_InputHandler-). UZend_Tool_Framework_Client_Exception-'- QZend_Tool_Framework_Client_Console-D, 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Indention-D+ 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizer-C* Zend_Tool_Framework_Client_Console_ResponseDecorator_Blockize-F) Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter-0( cZend_Tool_Framework_Client_Console_Manifest-2' gZend_Tool_Framework_Client_Console_HelpSystem-6& oZend_Tool_Framework_Client_Console_ArgumentParser-&% OZend_Tool_Framework_Client_Config-($ SZend_Tool_Framework_Client_Abstract-*# WZend_Tool_Framework_Action_Repository-)" UZend_Tool_Framework_Action_Exception-$! KZend_Tool_Framework_Action_Base-  'Zend_TimeSync- 1Zend_TimeSync_Sntp-   Q  \&X#J^"q(


h
.			z	F	W#uQ%zEe6[1\)jG%vU7                         ; 9Zend_Validate_Abstract-: Zend_Uri-9 'Zend_Uri_Http-8 1Zend_Uri_Exception-7 )Zend_Translate-6 7Zend_Translate_Plural-5 =Zend_Translate_Exception-4 9Zend_Translate_Adapter-!3 EZend_Translate_Adapter_XmlTm-!2 EZend_Translate_Adapter_Xliff-1 AZend_Translate_Adapter_Tmx-0 AZend_Translate_Adapter_Tbx-/ ?Zend_Translate_Adapter_Qt-. AZend_Translate_Adapter_Ini-#- IZend_Translate_Adapter_Gettext-, AZend_Translate_Adapter_Csv-!+ EZend_Translate_Adapter_Array-$* KZend_Tool_Project_Provider_View-$) KZend_Tool_Project_Provider_Test-/( aZend_Tool_Project_Provider_ProjectProvider-'' QZend_Tool_Project_Provider_Project-'& QZend_Tool_Project_Provider_Profile-&% OZend_Tool_Project_Provider_Module-%$ MZend_Tool_Project_Provider_Model-(# SZend_Tool_Project_Provider_Manifest-&" OZend_Tool_Project_Provider_Layout-$! KZend_Tool_Project_Provider_Form-)  UZend_Tool_Project_Provider_Exception-' QZend_Tool_Project_Provider_DbTable-) UZend_Tool_Project_Provider_DbAdapter-* WZend_Tool_Project_Provider_Controller-+ YZend_Tool_Project_Provider_Application-& OZend_Tool_Project_Provider_Action-( SZend_Tool_Project_Provider_Abstract- ?Zend_Tool_Project_Profile-' QZend_Tool_Project_Profile_Resource-9 uZend_Tool_Project_Profile_Resource_SearchConstraints-1 eZend_Tool_Project_Profile_Resource_Container-= }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter-5 mZend_Tool_Project_Profile_Iterator_ContextFilter-- ]Zend_Tool_Project_Profile_FileParser_Xml-( SZend_Tool_Project_Profile_Exception-  CZend_Tool_Project_Exception-< {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory-0 cZend_Tool_Project_Context_Zf_ViewsDirectory-6 oZend_Tool_Project_Context_Zf_ViewScriptsDirectory-0 cZend_Tool_Project_Context_Zf_ViewScriptFile-6 oZend_Tool_Project_Context_Zf_ViewHelpersDirectory-6 oZend_Tool_Project_Context_Zf_ViewFiltersDirectory-A
 Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory-2	 gZend_Tool_Project_Context_Zf_UploadsDirectory-0 cZend_Tool_Project_Context_Zf_TestsDirectory-7 qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile-@ Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory-1 eZend_Tool_Project_Context_Zf_TestLibraryFile-6 oZend_Tool_Project_Context_Zf_TestLibraryDirectory-: wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFile-: wZend_Tool_Project_Context_Zf_TestApplicationDirectory-@ Zend_Tool_Project_Context_Zf_TestApplicationControllerFile-E  Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory-> Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile-4~ kZend_Tool_Project_Context_Zf_TemporaryDirectory-3} iZend_Tool_Project_Context_Zf_SessionsDirectory-8| sZend_Tool_Project_Context_Zf_SearchIndexesDirectory-<{ {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory-8z sZend_Tool_Project_Context_Zf_PublicScriptsDirectory-1y eZend_Tool_Project_Context_Zf_PublicIndexFile-7x qZend_Tool_Project_Context_Zf_PublicImagesDirectory-1w eZend_Tool_Project_Context_Zf_PublicDirectory-5v mZend_Tool_Project_Context_Zf_ProjectProviderFile-2u gZend_Tool_Project_Context_Zf_ModulesDirectory-1t eZend_Tool_Project_Context_Zf_ModuleDirectory-1s eZend_Tool_Project_Context_Zf_ModelsDirectory-+r YZend_Tool_Project_Context_Zf_ModelFile-/q aZend_Tool_Project_Context_Zf_LogsDirectory-2p gZend_Tool_Project_Context_Zf_LocalesDirectory-2o gZend_Tool_Project_Context_Zf_LibraryDirectory-2n gZend_Tool_Project_Context_Zf_LayoutsDirectory-8m sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory-2l gZend_Tool_Project_Context_Zf_LayoutScriptFile-.k _Zend_Tool_Project_Context_Zf_HtaccessFile-   p  uE c?hCZ4gH,




c
@
 					e	@	lH#^D%
~_@!mJ4cDtO+	tR,	|V4        + CZend_View_Helper_HeadScript-* ?Zend_View_Helper_HeadMeta-) ?Zend_View_Helper_HeadLink-"( GZend_View_Helper_FormTextarea-' ?Zend_View_Helper_FormText- & CZend_View_Helper_FormSubmit- % CZend_View_Helper_FormSelect-$ AZend_View_Helper_FormReset-# AZend_View_Helper_FormRadio-"" GZend_View_Helper_FormPassword-! ?Zend_View_Helper_FormNote-'  QZend_View_Helper_FormMultiCheckbox- AZend_View_Helper_FormLabel- AZend_View_Helper_FormImage-  CZend_View_Helper_FormHidden- ?Zend_View_Helper_FormFile-  CZend_View_Helper_FormErrors-! EZend_View_Helper_FormElement-" GZend_View_Helper_FormCheckbox-  CZend_View_Helper_FormButton- 7Zend_View_Helper_Form- ?Zend_View_Helper_Fieldset- =Zend_View_Helper_Doctype-! EZend_View_Helper_DeclareVars- 9Zend_View_Helper_Cycle- ?Zend_View_Helper_Currency- =Zend_View_Helper_BaseUrl- ;Zend_View_Helper_Action- ?Zend_View_Helper_Abstract- 3Zend_View_Exception- 1Zend_View_Abstract- %Zend_Version- 'Zend_Validate-
 AZend_Validate_StringLength-#	 IZend_Validate_Sitemap_Priority- ?Zend_Validate_Sitemap_Loc-" GZend_Validate_Sitemap_Lastmod-% MZend_Validate_Sitemap_Changefreq- 3Zend_Validate_Regex- 9Zend_Validate_PostCode- 9Zend_Validate_NotEmpty- 9Zend_Validate_LessThan- 1Zend_Validate_Isbn-  -Zend_Validate_Ip- /Zend_Validate_Int-~ 7Zend_Validate_InArray-} ;Zend_Validate_Identical-| 1Zend_Validate_Iban-{ 9Zend_Validate_Hostname-z /Zend_Validate_Hex-y ?Zend_Validate_GreaterThan-x 3Zend_Validate_Float-!w EZend_Validate_File_WordCount-v ?Zend_Validate_File_Upload-u ;Zend_Validate_File_Size-t ;Zend_Validate_File_Sha1-!s EZend_Validate_File_NotExists- r CZend_Validate_File_MimeType-q 9Zend_Validate_File_Md5-p AZend_Validate_File_IsImage-$o KZend_Validate_File_IsCompressed-!n EZend_Validate_File_ImageSize-m ;Zend_Validate_File_Hash-!l EZend_Validate_File_FilesSize-!k EZend_Validate_File_Extension-j ?Zend_Validate_File_Exists-'i QZend_Validate_File_ExcludeMimeType-(h SZend_Validate_File_ExcludeExtension-g =Zend_Validate_File_Crc32-f =Zend_Validate_File_Count-e ;Zend_Validate_Exception-d AZend_Validate_EmailAddress-c 5Zend_Validate_Digits-"b GZend_Validate_Db_RecordExists-$a KZend_Validate_Db_NoRecordExists-` ?Zend_Validate_Db_Abstract-_ 1Zend_Validate_Date-^ =Zend_Validate_CreditCard-] 3Zend_Validate_Ccnum-\ 9Zend_Validate_Callback-[ 7Zend_Validate_Between-Z 7Zend_Validate_Barcode-Y AZend_Validate_Barcode_Upce-X AZend_Validate_Barcode_Upca-W AZend_Validate_Barcode_Sscc-$V KZend_Validate_Barcode_Royalmail-"U GZend_Validate_Barcode_Postnet-!T EZend_Validate_Barcode_Planet-#S IZend_Validate_Barcode_Leitcode- R CZend_Validate_Barcode_Itf14-Q AZend_Validate_Barcode_Issn-*P WZend_Validate_Barcode_IntelligentMail-$O KZend_Validate_Barcode_Identcode-!N EZend_Validate_Barcode_Gtin14-!M EZend_Validate_Barcode_Gtin13-!L EZend_Validate_Barcode_Gtin12-K AZend_Validate_Barcode_Ean8-J AZend_Validate_Barcode_Ean5-I AZend_Validate_Barcode_Ean2- H CZend_Validate_Barcode_Ean18- G CZend_Validate_Barcode_Ean14- F CZend_Validate_Barcode_Ean13- E CZend_Validate_Barcode_Ean12-$D KZend_Validate_Barcode_Code93ext-!C EZend_Validate_Barcode_Code93-$B KZend_Validate_Barcode_Code39ext-!A EZend_Validate_Barcode_Code39-,@ [Zend_Validate_Barcode_Code25interleaved-!? EZend_Validate_Barcode_Code25-*> WZend_Validate_Barcode_AdapterAbstract-= 3Zend_Validate_Alpha-< 3Zend_Validate_Alnum-   k  rP,
OyN#l2xK(




s
F
				v	M	uKrU4pK)z\;bL;Z3
xK}^D"
           AZend_Amf_Util_BinaryStream. +Zend_Amf_Server. ?Zend_Amf_Server_Exception. /Zend_Amf_Response. 9Zend_Amf_Response_Http. -Zend_Amf_Request. 7Zend_Amf_Request_Http. ?Zend_Amf_Parse_TypeLoader. ?Zend_Amf_Parse_Serializer.# IZend_Amf_Parse_Resource_Stream.( SZend_Amf_Parse_Resource_MysqlResult.) UZend_Amf_Parse_Resource_MysqliResult. 
 CZend_Amf_Parse_OutputStream.	 AZend_Amf_Parse_InputStream.  CZend_Amf_Parse_Deserializer.# IZend_Amf_Parse_Amf3_Serializer.% MZend_Amf_Parse_Amf3_Deserializer.# IZend_Amf_Parse_Amf0_Serializer.% MZend_Amf_Parse_Amf0_Deserializer. 1Zend_Amf_Exception. 1Zend_Amf_Constants. 9Zend_Amf_Auth_Abstract.   CZend_Amf_Adobe_Introspector. AZend_Amf_Adobe_DbInspector.~ 3Zend_Amf_Adobe_Auth.} Zend_Acl.| 'Zend_Acl_Role.{ 9Zend_Acl_Role_Registry.%z MZend_Acl_Role_Registry_Exception.y /Zend_Acl_Resource.x 1Zend_Acl_Exception.w /Zend_XmlRpc_Value-v =Zend_XmlRpc_Value_Struct-u =Zend_XmlRpc_Value_String-t =Zend_XmlRpc_Value_Scalar-s 7Zend_XmlRpc_Value_Nil-r ?Zend_XmlRpc_Value_Integer- q CZend_XmlRpc_Value_Exception-p =Zend_XmlRpc_Value_Double-o AZend_XmlRpc_Value_DateTime-!n EZend_XmlRpc_Value_Collection-m ?Zend_XmlRpc_Value_Boolean-!l EZend_XmlRpc_Value_BigInteger-k =Zend_XmlRpc_Value_Base64-j ;Zend_XmlRpc_Value_Array-i 1Zend_XmlRpc_Server-h ?Zend_XmlRpc_Server_System-g =Zend_XmlRpc_Server_Fault-!f EZend_XmlRpc_Server_Exception-e =Zend_XmlRpc_Server_Cache-d 5Zend_XmlRpc_Response-c ?Zend_XmlRpc_Response_Http-b 3Zend_XmlRpc_Request-a ?Zend_XmlRpc_Request_Stdin-` =Zend_XmlRpc_Request_Http-$_ KZend_XmlRpc_Generator_XmlWriter-,^ [Zend_XmlRpc_Generator_GeneratorAbstract-&] OZend_XmlRpc_Generator_DomDocument-\ /Zend_XmlRpc_Fault-[ 7Zend_XmlRpc_Exception-Z 1Zend_XmlRpc_Client-#Y IZend_XmlRpc_Client_ServerProxy-+X YZend_XmlRpc_Client_ServerIntrospection-+W YZend_XmlRpc_Client_IntrospectException-%V MZend_XmlRpc_Client_HttpException-&U OZend_XmlRpc_Client_FaultException-!T EZend_XmlRpc_Client_Exception-&S OZend_Wildfire_Protocol_JsonStream-!R EZend_Wildfire_Plugin_FirePhp-.Q _Zend_Wildfire_Plugin_FirePhp_TableMessage-)P UZend_Wildfire_Plugin_FirePhp_Message-O ;Zend_Wildfire_Exception-&N OZend_Wildfire_Channel_HttpHeaders-M Zend_View-L -Zend_View_Stream-K 5Zend_View_Helper_Url-J AZend_View_Helper_Translate-I AZend_View_Helper_ServerUrl-)H UZend_View_Helper_RenderToPlaceholder-!G EZend_View_Helper_Placeholder-*F WZend_View_Helper_Placeholder_Registry-4E kZend_View_Helper_Placeholder_Registry_Exception-+D YZend_View_Helper_Placeholder_Container-6C oZend_View_Helper_Placeholder_Container_Standalone-5B mZend_View_Helper_Placeholder_Container_Exception-4A kZend_View_Helper_Placeholder_Container_Abstract-!@ EZend_View_Helper_PartialLoop-? =Zend_View_Helper_Partial-'> QZend_View_Helper_Partial_Exception-'= QZend_View_Helper_PaginationControl- < CZend_View_Helper_Navigation-(; SZend_View_Helper_Navigation_Sitemap-%: MZend_View_Helper_Navigation_Menu-&9 OZend_View_Helper_Navigation_Links-/8 aZend_View_Helper_Navigation_HelperAbstract-,7 [Zend_View_Helper_Navigation_Breadcrumbs-6 ;Zend_View_Helper_Layout-5 7Zend_View_Helper_Json-"4 GZend_View_Helper_InlineScript-#3 IZend_View_Helper_HtmlQuicktime-2 ?Zend_View_Helper_HtmlPage- 1 CZend_View_Helper_HtmlObject-0 ?Zend_View_Helper_HtmlList-/ AZend_View_Helper_HtmlFlash-!. EZend_View_Helper_HtmlElement-- AZend_View_Helper_HeadTitle-, AZend_View_Helper_HeadStyle-   Z  k2d6xFmN,yV7


v
S
0
				p	H	Qc5{Q*q7NsR.k7i@       0_ cZend_Queue_Stomp_Client_ConnectionInterface.(^ SZend_Queue_Adapter_AdapterInterface.] ?Zend_Pdf_Filter_Interface.&\ OZend_Pdf_ElementFactory_Interface.,[ [Zend_Paginator_ScrollingStyle_Interface.$Z KZend_Paginator_AdapterAggregate.%Y MZend_Paginator_Adapter_Interface.&X OZend_Oauth_Config_ConfigInterface.$W KZend_Memory_Container_Interface.1V eZend_Markup_Renderer_TokenConverterInterface.'U QZend_Markup_Parser_ParserInterface.)T UZend_Mail_Storage_Writable_Interface.'S QZend_Mail_Storage_Folder_Interface.R =Zend_Mail_Part_Interface. Q CZend_Mail_Message_Interface.!P EZend_Log_Formatter_Interface.O ?Zend_Log_Filter_Interface.N ?Zend_Log_FactoryInterface.'M QZend_Loader_PluginLoader_Interface.%L MZend_Loader_Autoloader_Interface.0K cZend_Ldap_Node_Schema_ObjectClass_Interface.2J gZend_Ldap_Node_Schema_AttributeType_Interface.3I iZend_InfoCard_Xml_Security_Transform_Interface.(H SZend_InfoCard_Xml_KeyInfo_Interface.(G SZend_InfoCard_Xml_Element_Interface.*F WZend_InfoCard_Xml_Assertion_Interface.-E ]Zend_InfoCard_Cipher_Symmetric_Interface.7D qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface.7C qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interface.+B YZend_InfoCard_Cipher_Pki_Rsa_Interface.'A QZend_InfoCard_Cipher_Pki_Interface.$@ KZend_InfoCard_Adapter_Interface.$? KZend_Http_Client_Adapter_Stream.'> QZend_Http_Client_Adapter_Interface.= AZend_Gdata_App_MediaSource..< _Zend_Form_Decorator_Marker_File_Interface."; GZend_Form_Decorator_Interface.: 7Zend_Filter_Interface."9 GZend_Filter_Encrypt_Interface.+8 YZend_Filter_Compress_CompressInterface.07 cZend_Feed_Writer_Renderer_RendererInterface.16 eZend_Feed_Writer_Extension_RendererInterface.#5 IZend_Feed_Reader_FeedInterface.$4 KZend_Feed_Reader_EntryInterface.73 qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface.-2 ]Zend_Feed_Pubsubhubbub_CallbackInterface. 1 CZend_Feed_Builder_Interface. 0 CZend_Db_Statement_Interface.$/ KZend_Currency_CurrencyInterface.). UZend_Crypt_Math_BigInteger_Interface.+- YZend_Controller_Router_Route_Interface.%, MZend_Controller_Router_Interface.)+ UZend_Controller_Dispatcher_Interface.%* MZend_Controller_Action_Interface.) 5Zend_Captcha_Adapter.!( EZend_Cache_Backend_Interface.)' UZend_Cache_Backend_ExtendedInterface. & CZend_Auth_Storage_Interface. % CZend_Auth_Adapter_Interface..$ _Zend_Auth_Adapter_Http_Resolver_Interface.'# QZend_Application_Resource_Resource.4" kZend_Application_Bootstrap_ResourceBootstrapper.,! [Zend_Application_Bootstrap_Bootstrapper.  ;Zend_Acl_Role_Interface.  CZend_Acl_Resource_Interface. ?Zend_Acl_Assert_Interface.# IZend_Wildfire_Plugin_Interface-$ KZend_Wildfire_Channel_Interface- 3Zend_View_Interface-' QZend_View_Helper_Navigation_Helper- AZend_View_Helper_Interface- ;Zend_Validate_Interface-+ YZend_Validate_Barcode_AdapterInterface-3 iZend_Tool_Project_Profile_FileParser_Interface-: wZend_Tool_Project_Context_System_TopLevelRestrictable-5 mZend_Tool_Project_Context_System_NotOverwritable-/ aZend_Tool_Project_Context_System_Interface-( SZend_Tool_Project_Context_Interface-+ YZend_Tool_Framework_Registry_Interface-2 gZend_Tool_Framework_Registry_EnabledInterface-- ]Zend_Tool_Framework_Provider_Pretendable-+ YZend_Tool_Framework_Provider_Interface-. _Zend_Tool_Framework_Provider_Interactable-; yZend_Tool_Framework_Provider_DocblockManifestInterface-+ YZend_Tool_Framework_Metadata_Interface-.
 _Zend_Tool_Framework_Metadata_Attributable-6	 oZend_Tool_Framework_Manifest_ProviderManifestable-6 oZend_Tool_Framework_Manifest_MetadataManifestable-+ YZend_Tool_Framework_Manifest_Interface-+ YZend_Tool_Framework_Manifest_Indexable-   i  f2uD"pEtByO"



p
I
0
				j	K	(		gE3~]<f;d@vQ/~S'kJ%`D)
                        /Zend_Captcha_Word.~ 9Zend_Captcha_ReCaptcha.} 1Zend_Captcha_Image.| 3Zend_Captcha_Figlet.{ 9Zend_Captcha_Exception.z /Zend_Captcha_Dumb.y /Zend_Captcha_Base.x !Zend_Cache.w 1Zend_Cache_Manager.v =Zend_Cache_Frontend_Page.u AZend_Cache_Frontend_Output.!t EZend_Cache_Frontend_Function.s =Zend_Cache_Frontend_File.r ?Zend_Cache_Frontend_Class. q CZend_Cache_Frontend_Capture.p 5Zend_Cache_Exception.o +Zend_Cache_Core.n 1Zend_Cache_Backend."m GZend_Cache_Backend_ZendServer.(l SZend_Cache_Backend_ZendServer_ShMem.'k QZend_Cache_Backend_ZendServer_Disk.$j KZend_Cache_Backend_ZendPlatform.i ?Zend_Cache_Backend_Xcache.!h EZend_Cache_Backend_TwoLevels.g ;Zend_Cache_Backend_Test.f ?Zend_Cache_Backend_Static.e ?Zend_Cache_Backend_Sqlite.!d EZend_Cache_Backend_Memcached.c ;Zend_Cache_Backend_File.!b EZend_Cache_Backend_BlackHole.a 9Zend_Cache_Backend_Apc.` %Zend_Barcode.+_ YZend_Barcode_Renderer_RendererAbstract.^ ?Zend_Barcode_Renderer_Pdf. ] CZend_Barcode_Renderer_Image.$\ KZend_Barcode_Renderer_Exception.[ =Zend_Barcode_Object_Upce.Z =Zend_Barcode_Object_Upca."Y GZend_Barcode_Object_Royalmail. X CZend_Barcode_Object_Postnet.W AZend_Barcode_Object_Planet.'V QZend_Barcode_Object_ObjectAbstract.!U EZend_Barcode_Object_Leitcode.T ?Zend_Barcode_Object_Itf14."S GZend_Barcode_Object_Identcode."R GZend_Barcode_Object_Exception.Q ?Zend_Barcode_Object_Error.P =Zend_Barcode_Object_Ean8.O =Zend_Barcode_Object_Ean5.N =Zend_Barcode_Object_Ean2.M ?Zend_Barcode_Object_Ean13.L AZend_Barcode_Object_Code39.*K WZend_Barcode_Object_Code25interleaved.J AZend_Barcode_Object_Code25.I 9Zend_Barcode_Exception.H Zend_Auth.G ?Zend_Auth_Storage_Session.$F KZend_Auth_Storage_NonPersistent. E CZend_Auth_Storage_Exception.D -Zend_Auth_Result.C 3Zend_Auth_Exception.B =Zend_Auth_Adapter_OpenId.A 9Zend_Auth_Adapter_Ldap.@ AZend_Auth_Adapter_InfoCard.? 9Zend_Auth_Adapter_Http.)> UZend_Auth_Adapter_Http_Resolver_File..= _Zend_Auth_Adapter_Http_Resolver_Exception. < CZend_Auth_Adapter_Exception.; =Zend_Auth_Adapter_Digest.: ?Zend_Auth_Adapter_DbTable.9 -Zend_Application.#8 IZend_Application_Resource_View.(7 SZend_Application_Resource_Translate.&6 OZend_Application_Resource_Session.%5 MZend_Application_Resource_Router./4 aZend_Application_Resource_ResourceAbstract.)3 UZend_Application_Resource_Navigation.&2 OZend_Application_Resource_Multidb.&1 OZend_Application_Resource_Modules.#0 IZend_Application_Resource_Mail."/ GZend_Application_Resource_Log.%. MZend_Application_Resource_Locale.%- MZend_Application_Resource_Layout.., _Zend_Application_Resource_Frontcontroller.(+ SZend_Application_Resource_Exception.#* IZend_Application_Resource_Dojo.!) EZend_Application_Resource_Db.+( YZend_Application_Resource_Cachemanager.&' OZend_Application_Module_Bootstrap.'& QZend_Application_Module_Autoloader.% AZend_Application_Exception.)$ UZend_Application_Bootstrap_Exception.1# eZend_Application_Bootstrap_BootstrapAbstract.)" UZend_Application_Bootstrap_Bootstrap.! ?Zend_Amf_Value_TraitsInfo.-  ]Zend_Amf_Value_Messaging_RemotingMessage.* WZend_Amf_Value_Messaging_ErrorMessage., [Zend_Amf_Value_Messaging_CommandMessage.* WZend_Amf_Value_Messaging_AsyncMessage.- ]Zend_Amf_Value_Messaging_ArrayCollection.0 cZend_Amf_Value_Messaging_AcknowledgeMessage.- ]Zend_Amf_Value_Messaging_AbstractMessage.! EZend_Amf_Value_MessageHeader. AZend_Amf_Value_MessageBody. =Zend_Amf_Value_ByteArray.   b  kFY0Q(tL-\-



V
				V	%bC~V+\2j?sEiDwJ# fO<      a 5Zend_Date_DateObject.` -Zend_Date_Cities._ 'Zend_Currency.^ ;Zend_Currency_Exception.] !Zend_Crypt.\ )Zend_Crypt_Rsa.[ 1Zend_Crypt_Rsa_Key.Z ?Zend_Crypt_Rsa_Key_Public.Y AZend_Crypt_Rsa_Key_Private.X +Zend_Crypt_Math.W ?Zend_Crypt_Math_Exception.V AZend_Crypt_Math_BigInteger.#U IZend_Crypt_Math_BigInteger_Gmp.)T UZend_Crypt_Math_BigInteger_Exception.&S OZend_Crypt_Math_BigInteger_Bcmath.R +Zend_Crypt_Hmac.Q ?Zend_Crypt_Hmac_Exception.P 5Zend_Crypt_Exception.O =Zend_Crypt_DiffieHellman.'N QZend_Crypt_DiffieHellman_Exception.!M EZend_Controller_Router_Route.(L SZend_Controller_Router_Route_Static.'K QZend_Controller_Router_Route_Regex.(J SZend_Controller_Router_Route_Module.*I WZend_Controller_Router_Route_Hostname.'H QZend_Controller_Router_Route_Chain.*G WZend_Controller_Router_Route_Abstract.#F IZend_Controller_Router_Rewrite.%E MZend_Controller_Router_Exception.$D KZend_Controller_Router_Abstract.*C WZend_Controller_Response_HttpTestCase."B GZend_Controller_Response_Http.'A QZend_Controller_Response_Exception.!@ EZend_Controller_Response_Cli.&? OZend_Controller_Response_Abstract.#> IZend_Controller_Request_Simple.)= UZend_Controller_Request_HttpTestCase.!< EZend_Controller_Request_Http.&; OZend_Controller_Request_Exception.&: OZend_Controller_Request_Apache404.%9 MZend_Controller_Request_Abstract.&8 OZend_Controller_Plugin_PutHandler.(7 SZend_Controller_Plugin_ErrorHandler."6 GZend_Controller_Plugin_Broker.'5 QZend_Controller_Plugin_ActionStack.$4 KZend_Controller_Plugin_Abstract.3 7Zend_Controller_Front.2 ?Zend_Controller_Exception.(1 SZend_Controller_Dispatcher_Standard.)0 UZend_Controller_Dispatcher_Exception.(/ SZend_Controller_Dispatcher_Abstract.. 9Zend_Controller_Action.(- SZend_Controller_Action_HelperBroker.6, oZend_Controller_Action_HelperBroker_PriorityStack./+ aZend_Controller_Action_Helper_ViewRenderer.&* OZend_Controller_Action_Helper_Url.-) ]Zend_Controller_Action_Helper_Redirector.'( QZend_Controller_Action_Helper_Json.1' eZend_Controller_Action_Helper_FlashMessenger.0& cZend_Controller_Action_Helper_ContextSwitch.(% SZend_Controller_Action_Helper_Cache.<$ {Zend_Controller_Action_Helper_AutoCompleteScriptaculous.3# iZend_Controller_Action_Helper_AutoCompleteDojo.8" sZend_Controller_Action_Helper_AutoComplete_Abstract..! _Zend_Controller_Action_Helper_AjaxContext..  _Zend_Controller_Action_Helper_ActionStack.+ YZend_Controller_Action_Helper_Abstract.% MZend_Controller_Action_Exception. 3Zend_Console_Getopt." GZend_Console_Getopt_Exception. #Zend_Config. +Zend_Config_Xml. 1Zend_Config_Writer. 9Zend_Config_Writer_Xml. 9Zend_Config_Writer_Ini.$ KZend_Config_Writer_FileAbstract. =Zend_Config_Writer_Array. +Zend_Config_Ini. 7Zend_Config_Exception.$ KZend_CodeGenerator_Php_Property.1 eZend_CodeGenerator_Php_Property_DefaultValue.% MZend_CodeGenerator_Php_Parameter.2 gZend_CodeGenerator_Php_Parameter_DefaultValue." GZend_CodeGenerator_Php_Method., [Zend_CodeGenerator_Php_Member_Container.+ YZend_CodeGenerator_Php_Member_Abstract.  CZend_CodeGenerator_Php_File.%
 MZend_CodeGenerator_Php_Exception.$	 KZend_CodeGenerator_Php_Docblock.( SZend_CodeGenerator_Php_Docblock_Tag./ aZend_CodeGenerator_Php_Docblock_Tag_Return.. _Zend_CodeGenerator_Php_Docblock_Tag_Param.0 cZend_CodeGenerator_Php_Docblock_Tag_License.! EZend_CodeGenerator_Php_Class.  CZend_CodeGenerator_Php_Body.$ KZend_CodeGenerator_Php_Abstract.! EZend_CodeGenerator_Exception.   CZend_CodeGenerator_Abstract.   i  oM$tP0^?%s\4{Z8




s
R
2
					g	@	#	f7{P xP(Y*qFwLe9n@                   &J OZend_Dojo_View_Helper_DateTextBox.&I OZend_Dojo_View_Helper_CustomDijit.*H WZend_Dojo_View_Helper_CurrencyTextBox.&G OZend_Dojo_View_Helper_ContentPane.#F IZend_Dojo_View_Helper_ComboBox.#E IZend_Dojo_View_Helper_CheckBox.!D EZend_Dojo_View_Helper_Button.*C WZend_Dojo_View_Helper_BorderContainer.(B SZend_Dojo_View_Helper_AccordionPane.-A ]Zend_Dojo_View_Helper_AccordionContainer.@ =Zend_Dojo_View_Exception.? )Zend_Dojo_Form.> 9Zend_Dojo_Form_SubForm.*= WZend_Dojo_Form_Element_VerticalSlider.-< ]Zend_Dojo_Form_Element_ValidationTextBox.'; QZend_Dojo_Form_Element_TimeTextBox.#: IZend_Dojo_Form_Element_TextBox.$9 KZend_Dojo_Form_Element_Textarea.(8 SZend_Dojo_Form_Element_SubmitButton."7 GZend_Dojo_Form_Element_Slider.*6 WZend_Dojo_Form_Element_SimpleTextarea.'5 QZend_Dojo_Form_Element_RadioButton.+4 YZend_Dojo_Form_Element_PasswordTextBox.)3 UZend_Dojo_Form_Element_NumberTextBox.)2 UZend_Dojo_Form_Element_NumberSpinner.,1 [Zend_Dojo_Form_Element_HorizontalSlider.+0 YZend_Dojo_Form_Element_FilteringSelect."/ GZend_Dojo_Form_Element_Editor.&. OZend_Dojo_Form_Element_DijitMulti.!- EZend_Dojo_Form_Element_Dijit.', QZend_Dojo_Form_Element_DateTextBox.++ YZend_Dojo_Form_Element_CurrencyTextBox.$* KZend_Dojo_Form_Element_ComboBox.$) KZend_Dojo_Form_Element_CheckBox."( GZend_Dojo_Form_Element_Button. ' CZend_Dojo_Form_DisplayGroup.*& WZend_Dojo_Form_Decorator_TabContainer.,% [Zend_Dojo_Form_Decorator_StackContainer.,$ [Zend_Dojo_Form_Decorator_SplitContainer.'# QZend_Dojo_Form_Decorator_DijitForm.*" WZend_Dojo_Form_Decorator_DijitElement.,! [Zend_Dojo_Form_Decorator_DijitContainer.)  UZend_Dojo_Form_Decorator_ContentPane.- ]Zend_Dojo_Form_Decorator_BorderContainer.+ YZend_Dojo_Form_Decorator_AccordionPane.0 cZend_Dojo_Form_Decorator_AccordionContainer. 3Zend_Dojo_Exception. )Zend_Dojo_Data. 5Zend_Dojo_BuildLayer. !Zend_Debug. Zend_Db. 'Zend_Db_Table. 5Zend_Db_Table_Select.# IZend_Db_Table_Select_Exception. 5Zend_Db_Table_Rowset.# IZend_Db_Table_Rowset_Exception." GZend_Db_Table_Rowset_Abstract. /Zend_Db_Table_Row.  CZend_Db_Table_Row_Exception. AZend_Db_Table_Row_Abstract. ;Zend_Db_Table_Exception. =Zend_Db_Table_Definition. 9Zend_Db_Table_Abstract. /Zend_Db_Statement.
 =Zend_Db_Statement_Sqlsrv.'	 QZend_Db_Statement_Sqlsrv_Exception. 7Zend_Db_Statement_Pdo. ?Zend_Db_Statement_Pdo_Oci. ?Zend_Db_Statement_Pdo_Ibm. =Zend_Db_Statement_Oracle.' QZend_Db_Statement_Oracle_Exception. =Zend_Db_Statement_Mysqli.' QZend_Db_Statement_Mysqli_Exception.  CZend_Db_Statement_Exception.  7Zend_Db_Statement_Db2.$ KZend_Db_Statement_Db2_Exception.~ )Zend_Db_Select.} =Zend_Db_Select_Exception.| -Zend_Db_Profiler.{ 9Zend_Db_Profiler_Query.z =Zend_Db_Profiler_Firebug.y AZend_Db_Profiler_Exception.x %Zend_Db_Expr.w /Zend_Db_Exception.v 9Zend_Db_Adapter_Sqlsrv.%u MZend_Db_Adapter_Sqlsrv_Exception.t AZend_Db_Adapter_Pdo_Sqlite.s ?Zend_Db_Adapter_Pdo_Pgsql.r ;Zend_Db_Adapter_Pdo_Oci.q ?Zend_Db_Adapter_Pdo_Mysql.p ?Zend_Db_Adapter_Pdo_Mssql.o ;Zend_Db_Adapter_Pdo_Ibm. n CZend_Db_Adapter_Pdo_Ibm_Ids. m CZend_Db_Adapter_Pdo_Ibm_Db2.!l EZend_Db_Adapter_Pdo_Abstract.k 9Zend_Db_Adapter_Oracle.%j MZend_Db_Adapter_Oracle_Exception.i 9Zend_Db_Adapter_Mysqli.%h MZend_Db_Adapter_Mysqli_Exception.g ?Zend_Db_Adapter_Exception.f 3Zend_Db_Adapter_Db2."e GZend_Db_Adapter_Db2_Exception.d =Zend_Db_Adapter_Abstract.c Zend_Date.b 3Zend_Date_Exception.   ]  _:b4
^3a4"hH$





i
M
1
			y	G	wJS&P[,gD"l2IyE                8' sZend_Feed_Writer_Extension_Threading_Renderer_Entry.4& kZend_Feed_Writer_Extension_Slash_Renderer_Entry.0% cZend_Feed_Writer_Extension_RendererAbstract.4$ kZend_Feed_Writer_Extension_ITunes_Renderer_Feed.5# mZend_Feed_Writer_Extension_ITunes_Renderer_Entry.+" YZend_Feed_Writer_Extension_ITunes_Feed.,! [Zend_Feed_Writer_Extension_ITunes_Entry.8  sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed.9 uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry.6 oZend_Feed_Writer_Extension_Content_Renderer_Entry.2 gZend_Feed_Writer_Extension_Atom_Renderer_Feed.6 oZend_Feed_Writer_Exception_InvalidMethodException. 9Zend_Feed_Writer_Entry. =Zend_Feed_Writer_Deleted. 'Zend_Feed_Rss. -Zend_Feed_Reader. =Zend_Feed_Reader_FeedSet." GZend_Feed_Reader_FeedAbstract. ?Zend_Feed_Reader_Feed_Rss. AZend_Feed_Reader_Feed_Atom.& OZend_Feed_Reader_Feed_Atom_Source.3 iZend_Feed_Reader_Extension_WellFormedWeb_Entry., [Zend_Feed_Reader_Extension_Thread_Entry.0 cZend_Feed_Reader_Extension_Syndication_Feed.+ YZend_Feed_Reader_Extension_Slash_Entry., [Zend_Feed_Reader_Extension_Podcast_Feed.- ]Zend_Feed_Reader_Extension_Podcast_Entry., [Zend_Feed_Reader_Extension_FeedAbstract.- ]Zend_Feed_Reader_Extension_EntryAbstract./
 aZend_Feed_Reader_Extension_DublinCore_Feed.0	 cZend_Feed_Reader_Extension_DublinCore_Entry.4 kZend_Feed_Reader_Extension_CreativeCommons_Feed.5 mZend_Feed_Reader_Extension_CreativeCommons_Entry.- ]Zend_Feed_Reader_Extension_Content_Entry.) UZend_Feed_Reader_Extension_Atom_Feed.* WZend_Feed_Reader_Extension_Atom_Entry.# IZend_Feed_Reader_EntryAbstract. AZend_Feed_Reader_Entry_Rss.  CZend_Feed_Reader_Entry_Atom.   CZend_Feed_Reader_Collection.3 iZend_Feed_Reader_Collection_CollectionAbstract.)~ UZend_Feed_Reader_Collection_Category.'} QZend_Feed_Reader_Collection_Author.| 9Zend_Feed_Pubsubhubbub.&{ OZend_Feed_Pubsubhubbub_Subscriber./z aZend_Feed_Pubsubhubbub_Subscriber_Callback.%y MZend_Feed_Pubsubhubbub_Publisher..x _Zend_Feed_Pubsubhubbub_Model_Subscription./w aZend_Feed_Pubsubhubbub_Model_ModelAbstract.(v SZend_Feed_Pubsubhubbub_HttpResponse.%u MZend_Feed_Pubsubhubbub_Exception.,t [Zend_Feed_Pubsubhubbub_CallbackAbstract.s 3Zend_Feed_Exception.r 3Zend_Feed_Entry_Rss.q 5Zend_Feed_Entry_Atom.p =Zend_Feed_Entry_Abstract.o /Zend_Feed_Element.n /Zend_Feed_Builder.m =Zend_Feed_Builder_Header.$l KZend_Feed_Builder_Header_Itunes. k CZend_Feed_Builder_Exception.j ;Zend_Feed_Builder_Entry.i )Zend_Feed_Atom.h 1Zend_Feed_Abstract.g )Zend_Exception.f )Zend_Dom_Query.e 7Zend_Dom_Query_Result.d =Zend_Dom_Query_Css2Xpath.c 1Zend_Dom_Exception.b Zend_Dojo.)a UZend_Dojo_View_Helper_VerticalSlider.,` [Zend_Dojo_View_Helper_ValidationTextBox.&_ OZend_Dojo_View_Helper_TimeTextBox."^ GZend_Dojo_View_Helper_TextBox.#] IZend_Dojo_View_Helper_Textarea.'\ QZend_Dojo_View_Helper_TabContainer.'[ QZend_Dojo_View_Helper_SubmitButton.)Z UZend_Dojo_View_Helper_StackContainer.)Y UZend_Dojo_View_Helper_SplitContainer.!X EZend_Dojo_View_Helper_Slider.)W UZend_Dojo_View_Helper_SimpleTextarea.&V OZend_Dojo_View_Helper_RadioButton.*U WZend_Dojo_View_Helper_PasswordTextBox.(T SZend_Dojo_View_Helper_NumberTextBox.(S SZend_Dojo_View_Helper_NumberSpinner.+R YZend_Dojo_View_Helper_HorizontalSlider.Q AZend_Dojo_View_Helper_Form.*P WZend_Dojo_View_Helper_FilteringSelect.!O EZend_Dojo_View_Helper_Editor.N AZend_Dojo_View_Helper_Dojo.)M UZend_Dojo_View_Helper_Dojo_Container.)L UZend_Dojo_View_Helper_DijitContainer. K CZend_Dojo_View_Helper_Dijit.   k  wB}Q&|T/i;z[?$




j
I
&
					r	H		eC%vM#rCc?`?[7d@!yS0                    ;Zend_Form_Element_Reset. ;Zend_Form_Element_Radio. AZend_Form_Element_Password." GZend_Form_Element_Multiselect.$ KZend_Form_Element_MultiCheckbox. ;Zend_Form_Element_Multi. ;Zend_Form_Element_Image. =Zend_Form_Element_Hidden.
 9Zend_Form_Element_Hash.	 9Zend_Form_Element_File.  CZend_Form_Element_Exception. AZend_Form_Element_Checkbox. ?Zend_Form_Element_Captcha. =Zend_Form_Element_Button. 9Zend_Form_DisplayGroup.# IZend_Form_Decorator_ViewScript.# IZend_Form_Decorator_ViewHelper.  CZend_Form_Decorator_Tooltip.(  SZend_Form_Decorator_PrepareElements. ?Zend_Form_Decorator_Label.~ ?Zend_Form_Decorator_Image. } CZend_Form_Decorator_HtmlTag.#| IZend_Form_Decorator_FormErrors.%{ MZend_Form_Decorator_FormElements.z =Zend_Form_Decorator_Form.y =Zend_Form_Decorator_File.!x EZend_Form_Decorator_Fieldset."w GZend_Form_Decorator_Exception.v AZend_Form_Decorator_Errors.$u KZend_Form_Decorator_DtDdWrapper.$t KZend_Form_Decorator_Description. s CZend_Form_Decorator_Captcha.%r MZend_Form_Decorator_Captcha_Word.!q EZend_Form_Decorator_Callback.!p EZend_Form_Decorator_Abstract.o #Zend_Filter.+n YZend_Filter_Word_UnderscoreToSeparator.&m OZend_Filter_Word_UnderscoreToDash.+l YZend_Filter_Word_UnderscoreToCamelCase.*k WZend_Filter_Word_SeparatorToSeparator.%j MZend_Filter_Word_SeparatorToDash.*i WZend_Filter_Word_SeparatorToCamelCase.(h SZend_Filter_Word_Separator_Abstract.&g OZend_Filter_Word_DashToUnderscore.%f MZend_Filter_Word_DashToSeparator.%e MZend_Filter_Word_DashToCamelCase.+d YZend_Filter_Word_CamelCaseToUnderscore.*c WZend_Filter_Word_CamelCaseToSeparator.%b MZend_Filter_Word_CamelCaseToDash.a 7Zend_Filter_StripTags.` ?Zend_Filter_StripNewlines._ 9Zend_Filter_StringTrim.^ ?Zend_Filter_StringToUpper.] ?Zend_Filter_StringToLower.\ 5Zend_Filter_RealPath.[ ;Zend_Filter_PregReplace.Z -Zend_Filter_Null.&Y OZend_Filter_NormalizedToLocalized.&X OZend_Filter_LocalizedToNormalized.W +Zend_Filter_Int.V /Zend_Filter_Input.U 7Zend_Filter_Inflector.T =Zend_Filter_HtmlEntities.S AZend_Filter_File_UpperCase.R ;Zend_Filter_File_Rename.Q AZend_Filter_File_LowerCase.P =Zend_Filter_File_Encrypt.O =Zend_Filter_File_Decrypt.N 7Zend_Filter_Exception.M 3Zend_Filter_Encrypt. L CZend_Filter_Encrypt_Openssl.K AZend_Filter_Encrypt_Mcrypt.J +Zend_Filter_Dir.I 1Zend_Filter_Digits.H 3Zend_Filter_Decrypt.G 9Zend_Filter_Decompress.F 5Zend_Filter_Compress.E =Zend_Filter_Compress_Zip.D =Zend_Filter_Compress_Tar.C =Zend_Filter_Compress_Rar.B =Zend_Filter_Compress_Lzf.A ;Zend_Filter_Compress_Gz.*@ WZend_Filter_Compress_CompressAbstract.? =Zend_Filter_Compress_Bz2.> 5Zend_Filter_Callback.= 3Zend_Filter_Boolean.< 5Zend_Filter_BaseName.; /Zend_Filter_Alpha.: /Zend_Filter_Alnum.9 1Zend_File_Transfer.!8 EZend_File_Transfer_Exception.$7 KZend_File_Transfer_Adapter_Http.(6 SZend_File_Transfer_Adapter_Abstract.5 Zend_Feed.4 -Zend_Feed_Writer.3 ;Zend_Feed_Writer_Source./2 aZend_Feed_Writer_Renderer_RendererAbstract.'1 QZend_Feed_Writer_Renderer_Feed_Rss.(0 SZend_Feed_Writer_Renderer_Feed_Atom.// aZend_Feed_Writer_Renderer_Feed_Atom_Source.5. mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract.(- SZend_Feed_Writer_Renderer_Entry_Rss.), UZend_Feed_Writer_Renderer_Entry_Atom.1+ eZend_Feed_Writer_Renderer_Entry_Atom_Deleted.* 7Zend_Feed_Writer_Feed.') QZend_Feed_Writer_Feed_FeedAbstract.<( {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry.   b  |\B&d4{N%[5wL$




\
3
					]	-	
oG0a4~MpJ#m>rL'{c3p?                   +t YZend_Gdata_DublinCore_Extension_Rights..s _Zend_Gdata_DublinCore_Extension_Publisher.-r ]Zend_Gdata_DublinCore_Extension_Language./q aZend_Gdata_DublinCore_Extension_Identifier.+p YZend_Gdata_DublinCore_Extension_Format.0o cZend_Gdata_DublinCore_Extension_Description.)n UZend_Gdata_DublinCore_Extension_Date.,m [Zend_Gdata_DublinCore_Extension_Creator.l +Zend_Gdata_Docs.k 7Zend_Gdata_Docs_Query.%j MZend_Gdata_Docs_DocumentListFeed.&i OZend_Gdata_Docs_DocumentListEntry.h 9Zend_Gdata_ClientLogin.g 3Zend_Gdata_Calendar.!f EZend_Gdata_Calendar_ListFeed."e GZend_Gdata_Calendar_ListEntry.-d ]Zend_Gdata_Calendar_Extension_WebContent.+c YZend_Gdata_Calendar_Extension_Timezone.9b uZend_Gdata_Calendar_Extension_SendEventNotifications.+a YZend_Gdata_Calendar_Extension_Selected.+` YZend_Gdata_Calendar_Extension_QuickAdd.'_ QZend_Gdata_Calendar_Extension_Link.)^ UZend_Gdata_Calendar_Extension_Hidden.(] SZend_Gdata_Calendar_Extension_Color..\ _Zend_Gdata_Calendar_Extension_AccessLevel.#[ IZend_Gdata_Calendar_EventQuery."Z GZend_Gdata_Calendar_EventFeed.#Y IZend_Gdata_Calendar_EventEntry.X -Zend_Gdata_Books.!W EZend_Gdata_Books_VolumeQuery. V CZend_Gdata_Books_VolumeFeed.!U EZend_Gdata_Books_VolumeEntry.+T YZend_Gdata_Books_Extension_Viewability.-S ]Zend_Gdata_Books_Extension_ThumbnailLink.&R OZend_Gdata_Books_Extension_Review.+Q YZend_Gdata_Books_Extension_PreviewLink.(P SZend_Gdata_Books_Extension_InfoLink.-O ]Zend_Gdata_Books_Extension_Embeddability.)N UZend_Gdata_Books_Extension_BooksLink.-M ]Zend_Gdata_Books_Extension_BooksCategory..L _Zend_Gdata_Books_Extension_AnnotationLink.$K KZend_Gdata_Books_CollectionFeed.%J MZend_Gdata_Books_CollectionEntry.I 1Zend_Gdata_AuthSub.H )Zend_Gdata_App.$G KZend_Gdata_App_VersionException.F 3Zend_Gdata_App_Util.#E IZend_Gdata_App_MediaFileSource.D ?Zend_Gdata_App_MediaEntry.2C gZend_Gdata_App_LoggingHttpClientAdapterSocket.B AZend_Gdata_App_IOException.,A [Zend_Gdata_App_InvalidArgumentException.!@ EZend_Gdata_App_HttpException.$? KZend_Gdata_App_FeedSourceParent.#> IZend_Gdata_App_FeedEntryParent.= 3Zend_Gdata_App_Feed.< =Zend_Gdata_App_Extension.!; EZend_Gdata_App_Extension_Uri.%: MZend_Gdata_App_Extension_Updated.#9 IZend_Gdata_App_Extension_Title."8 GZend_Gdata_App_Extension_Text.%7 MZend_Gdata_App_Extension_Summary.&6 OZend_Gdata_App_Extension_Subtitle.$5 KZend_Gdata_App_Extension_Source.$4 KZend_Gdata_App_Extension_Rights.'3 QZend_Gdata_App_Extension_Published.$2 KZend_Gdata_App_Extension_Person."1 GZend_Gdata_App_Extension_Name."0 GZend_Gdata_App_Extension_Logo."/ GZend_Gdata_App_Extension_Link. . CZend_Gdata_App_Extension_Id."- GZend_Gdata_App_Extension_Icon.', QZend_Gdata_App_Extension_Generator.#+ IZend_Gdata_App_Extension_Email.%* MZend_Gdata_App_Extension_Element.$) KZend_Gdata_App_Extension_Edited.#( IZend_Gdata_App_Extension_Draft.%' MZend_Gdata_App_Extension_Control.)& UZend_Gdata_App_Extension_Contributor.%% MZend_Gdata_App_Extension_Content.&$ OZend_Gdata_App_Extension_Category.$# KZend_Gdata_App_Extension_Author." =Zend_Gdata_App_Exception.! 5Zend_Gdata_App_Entry.,  [Zend_Gdata_App_CaptchaRequiredException.# IZend_Gdata_App_BaseMediaSource. 3Zend_Gdata_App_Base.* WZend_Gdata_App_BadMethodCallException.! EZend_Gdata_App_AuthException. Zend_Form. /Zend_Form_SubForm. 3Zend_Form_Exception. /Zend_Form_Element. ;Zend_Form_Element_Xhtml. AZend_Form_Element_Textarea. 9Zend_Form_Element_Text. =Zend_Form_Element_Submit. =Zend_Form_Element_Select.   c  kM"yI#iQ%W1lH 



w
U
2
					e	4	^6
mN$S5c=$lU-kQ$e5rE                        +W YZend_Gdata_Media_Extension_MediaPlayer.-V ]Zend_Gdata_Media_Extension_MediaKeywords.)U UZend_Gdata_Media_Extension_MediaHash.*T WZend_Gdata_Media_Extension_MediaGroup.0S cZend_Gdata_Media_Extension_MediaDescription.+R YZend_Gdata_Media_Extension_MediaCredit..Q _Zend_Gdata_Media_Extension_MediaCopyright.,P [Zend_Gdata_Media_Extension_MediaContent.-O ]Zend_Gdata_Media_Extension_MediaCategory.N 9Zend_Gdata_Media_Entry.M AZend_Gdata_Kind_EventEntry.L 7Zend_Gdata_HttpClient.*K WZend_Gdata_HttpAdapterStreamingSocket.)J UZend_Gdata_HttpAdapterStreamingProxy.I /Zend_Gdata_Health.H ;Zend_Gdata_Health_Query.&G OZend_Gdata_Health_ProfileListFeed.'F QZend_Gdata_Health_ProfileListEntry."E GZend_Gdata_Health_ProfileFeed.#D IZend_Gdata_Health_ProfileEntry.$C KZend_Gdata_Health_Extension_Ccr.B )Zend_Gdata_Geo.A 3Zend_Gdata_Geo_Feed.$@ KZend_Gdata_Geo_Extension_GmlPos.&? OZend_Gdata_Geo_Extension_GmlPoint.)> UZend_Gdata_Geo_Extension_GeoRssWhere.= 5Zend_Gdata_Geo_Entry.< -Zend_Gdata_Gbase."; GZend_Gdata_Gbase_SnippetQuery.!: EZend_Gdata_Gbase_SnippetFeed."9 GZend_Gdata_Gbase_SnippetEntry.8 9Zend_Gdata_Gbase_Query.7 AZend_Gdata_Gbase_ItemQuery.6 ?Zend_Gdata_Gbase_ItemFeed.5 AZend_Gdata_Gbase_ItemEntry.4 7Zend_Gdata_Gbase_Feed.-3 ]Zend_Gdata_Gbase_Extension_BaseAttribute.2 9Zend_Gdata_Gbase_Entry.1 -Zend_Gdata_Gapps.0 AZend_Gdata_Gapps_UserQuery./ ?Zend_Gdata_Gapps_UserFeed.. AZend_Gdata_Gapps_UserEntry.&- OZend_Gdata_Gapps_ServiceException., 9Zend_Gdata_Gapps_Query.#+ IZend_Gdata_Gapps_NicknameQuery."* GZend_Gdata_Gapps_NicknameFeed.#) IZend_Gdata_Gapps_NicknameEntry.%( MZend_Gdata_Gapps_Extension_Quota.(' SZend_Gdata_Gapps_Extension_Nickname.$& KZend_Gdata_Gapps_Extension_Name.%% MZend_Gdata_Gapps_Extension_Login.)$ UZend_Gdata_Gapps_Extension_EmailList.# 9Zend_Gdata_Gapps_Error.-" ]Zend_Gdata_Gapps_EmailListRecipientQuery.,! [Zend_Gdata_Gapps_EmailListRecipientFeed.-  ]Zend_Gdata_Gapps_EmailListRecipientEntry.$ KZend_Gdata_Gapps_EmailListQuery.# IZend_Gdata_Gapps_EmailListFeed.$ KZend_Gdata_Gapps_EmailListEntry. +Zend_Gdata_Feed. 5Zend_Gdata_Extension. =Zend_Gdata_Extension_Who. AZend_Gdata_Extension_Where. ?Zend_Gdata_Extension_When.$ KZend_Gdata_Extension_Visibility.& OZend_Gdata_Extension_Transparency." GZend_Gdata_Extension_Reminder.- ]Zend_Gdata_Extension_RecurrenceException.$ KZend_Gdata_Extension_Recurrence.  CZend_Gdata_Extension_Rating.' QZend_Gdata_Extension_OriginalEvent.0 cZend_Gdata_Extension_OpenSearchTotalResults.. _Zend_Gdata_Extension_OpenSearchStartIndex.0 cZend_Gdata_Extension_OpenSearchItemsPerPage." GZend_Gdata_Extension_FeedLink.* WZend_Gdata_Extension_ExtendedProperty.% MZend_Gdata_Extension_EventStatus.#
 IZend_Gdata_Extension_EntryLink."	 GZend_Gdata_Extension_Comments.& OZend_Gdata_Extension_AttendeeType.( SZend_Gdata_Extension_AttendeeStatus. +Zend_Gdata_Exif. 5Zend_Gdata_Exif_Feed.# IZend_Gdata_Exif_Extension_Time.# IZend_Gdata_Exif_Extension_Tags.$ KZend_Gdata_Exif_Extension_Model.# IZend_Gdata_Exif_Extension_Make."  GZend_Gdata_Exif_Extension_Iso., [Zend_Gdata_Exif_Extension_ImageUniqueId.$~ KZend_Gdata_Exif_Extension_FStop.*} WZend_Gdata_Exif_Extension_FocalLength.$| KZend_Gdata_Exif_Extension_Flash.'{ QZend_Gdata_Exif_Extension_Exposure.'z QZend_Gdata_Exif_Extension_Distance.y 7Zend_Gdata_Exif_Entry.x -Zend_Gdata_Entry.w 7Zend_Gdata_DublinCore.*v WZend_Gdata_DublinCore_Extension_Title.,u [Zend_Gdata_DublinCore_Extension_Subject.   [  p>xS/
^1tM f/


v
I
 				o	D	eBn@zP'm?W0U&l?Y(           -2 ]Zend_Gdata_YouTube_Extension_MediaRating.,1 [Zend_Gdata_YouTube_Extension_MediaGroup.-0 ]Zend_Gdata_YouTube_Extension_MediaCredit../ _Zend_Gdata_YouTube_Extension_MediaContent.*. WZend_Gdata_YouTube_Extension_Location.&- OZend_Gdata_YouTube_Extension_Link.*, WZend_Gdata_YouTube_Extension_LastName.*+ WZend_Gdata_YouTube_Extension_Hometown.)* UZend_Gdata_YouTube_Extension_Hobbies.() SZend_Gdata_YouTube_Extension_Gender.+( YZend_Gdata_YouTube_Extension_FirstName.*' WZend_Gdata_YouTube_Extension_Duration.-& ]Zend_Gdata_YouTube_Extension_Description.+% YZend_Gdata_YouTube_Extension_CountHint.)$ UZend_Gdata_YouTube_Extension_Control.)# UZend_Gdata_YouTube_Extension_Company.'" QZend_Gdata_YouTube_Extension_Books.%! MZend_Gdata_YouTube_Extension_Age.)  UZend_Gdata_YouTube_Extension_AboutMe.# IZend_Gdata_YouTube_ContactFeed.$ KZend_Gdata_YouTube_ContactEntry.# IZend_Gdata_YouTube_CommentFeed.$ KZend_Gdata_YouTube_CommentEntry.$ KZend_Gdata_YouTube_ActivityFeed.% MZend_Gdata_YouTube_ActivityEntry. ;Zend_Gdata_Spreadsheets.* WZend_Gdata_Spreadsheets_WorksheetFeed.+ YZend_Gdata_Spreadsheets_WorksheetEntry., [Zend_Gdata_Spreadsheets_SpreadsheetFeed.- ]Zend_Gdata_Spreadsheets_SpreadsheetEntry.& OZend_Gdata_Spreadsheets_ListQuery.% MZend_Gdata_Spreadsheets_ListFeed.& OZend_Gdata_Spreadsheets_ListEntry./ aZend_Gdata_Spreadsheets_Extension_RowCount.- ]Zend_Gdata_Spreadsheets_Extension_Custom./ aZend_Gdata_Spreadsheets_Extension_ColCount.+ YZend_Gdata_Spreadsheets_Extension_Cell.* WZend_Gdata_Spreadsheets_DocumentQuery.& OZend_Gdata_Spreadsheets_CellQuery.% MZend_Gdata_Spreadsheets_CellFeed.&
 OZend_Gdata_Spreadsheets_CellEntry.	 -Zend_Gdata_Query. /Zend_Gdata_Photos.  CZend_Gdata_Photos_UserQuery. AZend_Gdata_Photos_UserFeed.  CZend_Gdata_Photos_UserEntry. AZend_Gdata_Photos_TagEntry.! EZend_Gdata_Photos_PhotoQuery.  CZend_Gdata_Photos_PhotoFeed.! EZend_Gdata_Photos_PhotoEntry.&  OZend_Gdata_Photos_Extension_Width.' QZend_Gdata_Photos_Extension_Weight.(~ SZend_Gdata_Photos_Extension_Version.%} MZend_Gdata_Photos_Extension_User.*| WZend_Gdata_Photos_Extension_Timestamp.*{ WZend_Gdata_Photos_Extension_Thumbnail.%z MZend_Gdata_Photos_Extension_Size.)y UZend_Gdata_Photos_Extension_Rotation.+x YZend_Gdata_Photos_Extension_QuotaLimit.-w ]Zend_Gdata_Photos_Extension_QuotaCurrent.)v UZend_Gdata_Photos_Extension_Position.(u SZend_Gdata_Photos_Extension_PhotoId.3t iZend_Gdata_Photos_Extension_NumPhotosRemaining.*s WZend_Gdata_Photos_Extension_NumPhotos.)r UZend_Gdata_Photos_Extension_Nickname.%q MZend_Gdata_Photos_Extension_Name.2p gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum.)o UZend_Gdata_Photos_Extension_Location.#n IZend_Gdata_Photos_Extension_Id.'m QZend_Gdata_Photos_Extension_Height.2l gZend_Gdata_Photos_Extension_CommentingEnabled.-k ]Zend_Gdata_Photos_Extension_CommentCount.'j QZend_Gdata_Photos_Extension_Client.)i UZend_Gdata_Photos_Extension_Checksum.*h WZend_Gdata_Photos_Extension_BytesUsed.(g SZend_Gdata_Photos_Extension_AlbumId.'f QZend_Gdata_Photos_Extension_Access.#e IZend_Gdata_Photos_CommentEntry.!d EZend_Gdata_Photos_AlbumQuery. c CZend_Gdata_Photos_AlbumFeed.!b EZend_Gdata_Photos_AlbumEntry.a 3Zend_Gdata_MimeFile.` ?Zend_Gdata_MimeBodyString._ AZend_Gdata_MediaMimeStream.^ -Zend_Gdata_Media.] 7Zend_Gdata_Media_Feed.*\ WZend_Gdata_Media_Extension_MediaTitle..[ _Zend_Gdata_Media_Extension_MediaThumbnail.)Z UZend_Gdata_Media_Extension_MediaText.0Y cZend_Gdata_Media_Extension_MediaRestriction.+X YZend_Gdata_Media_Extension_MediaRating.   a  |L]3vKh;qC



k
F
 
				z	R	,		}b<Va8jC~QuR!fCqXF                            ) UZend_Layout_Controller_Plugin_Layout.0 cZend_Layout_Controller_Action_Helper_Layout. Zend_Json. -Zend_Json_Server. 5Zend_Json_Server_Smd.! EZend_Json_Server_Smd_Service. ?Zend_Json_Server_Response.# IZend_Json_Server_Response_Http. =Zend_Json_Server_Request."
 GZend_Json_Server_Request_Http.	 AZend_Json_Server_Exception. 9Zend_Json_Server_Error. 9Zend_Json_Server_Cache. )Zend_Json_Expr. 3Zend_Json_Exception. /Zend_Json_Encoder. /Zend_Json_Decoder. 'Zend_InfoCard.- ]Zend_InfoCard_Xml_SecurityTokenReference.  AZend_InfoCard_Xml_Security.) UZend_InfoCard_Xml_Security_Transform.4~ kZend_InfoCard_Xml_Security_Transform_XmlExcC14N.3} iZend_InfoCard_Xml_Security_Transform_Exception.<| {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignature.){ UZend_InfoCard_Xml_Security_Exception.z ?Zend_InfoCard_Xml_KeyInfo.&y OZend_InfoCard_Xml_KeyInfo_XmlDSig.&x OZend_InfoCard_Xml_KeyInfo_Default.'w QZend_InfoCard_Xml_KeyInfo_Abstract. v CZend_InfoCard_Xml_Exception.#u IZend_InfoCard_Xml_EncryptedKey.$t KZend_InfoCard_Xml_EncryptedData.+s YZend_InfoCard_Xml_EncryptedData_XmlEnc.-r ]Zend_InfoCard_Xml_EncryptedData_Abstract.q ?Zend_InfoCard_Xml_Element. p CZend_InfoCard_Xml_Assertion.%o MZend_InfoCard_Xml_Assertion_Saml.n ;Zend_InfoCard_Exception.%m MZend_InfoCard_Exception_Abstract.l 5Zend_InfoCard_Claims.k 5Zend_InfoCard_Cipher.5j mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc.5i mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc.4h kZend_InfoCard_Cipher_Symmetric_Adapter_Abstract.)g UZend_InfoCard_Cipher_Pki_Adapter_Rsa..f _Zend_InfoCard_Cipher_Pki_Adapter_Abstract.#e IZend_InfoCard_Cipher_Exception.$d KZend_InfoCard_Adapter_Exception."c GZend_InfoCard_Adapter_Default.b 1Zend_Http_Response.a ?Zend_Http_Response_Stream.` 3Zend_Http_Exception._ 3Zend_Http_CookieJar.^ -Zend_Http_Cookie.] -Zend_Http_Client.\ AZend_Http_Client_Exception."[ GZend_Http_Client_Adapter_Test.$Z KZend_Http_Client_Adapter_Socket.#Y IZend_Http_Client_Adapter_Proxy.'X QZend_Http_Client_Adapter_Exception."W GZend_Http_Client_Adapter_Curl.V !Zend_Gdata.U 1Zend_Gdata_YouTube."T GZend_Gdata_YouTube_VideoQuery.!S EZend_Gdata_YouTube_VideoFeed."R GZend_Gdata_YouTube_VideoEntry.(Q SZend_Gdata_YouTube_UserProfileEntry.(P SZend_Gdata_YouTube_SubscriptionFeed.)O UZend_Gdata_YouTube_SubscriptionEntry.)N UZend_Gdata_YouTube_PlaylistVideoFeed.*M WZend_Gdata_YouTube_PlaylistVideoEntry.(L SZend_Gdata_YouTube_PlaylistListFeed.)K UZend_Gdata_YouTube_PlaylistListEntry."J GZend_Gdata_YouTube_MediaEntry.!I EZend_Gdata_YouTube_InboxFeed."H GZend_Gdata_YouTube_InboxEntry.)G UZend_Gdata_YouTube_Extension_VideoId.*F WZend_Gdata_YouTube_Extension_Username.*E WZend_Gdata_YouTube_Extension_Uploaded.'D QZend_Gdata_YouTube_Extension_Token.(C SZend_Gdata_YouTube_Extension_Status.,B [Zend_Gdata_YouTube_Extension_Statistics.'A QZend_Gdata_YouTube_Extension_State.(@ SZend_Gdata_YouTube_Extension_School.-? ]Zend_Gdata_YouTube_Extension_ReleaseDate..> _Zend_Gdata_YouTube_Extension_Relationship.*= WZend_Gdata_YouTube_Extension_Recorded.&< OZend_Gdata_YouTube_Extension_Racy.-; ]Zend_Gdata_YouTube_Extension_QueryString.): UZend_Gdata_YouTube_Extension_Private.*9 WZend_Gdata_YouTube_Extension_Position./8 aZend_Gdata_YouTube_Extension_PlaylistTitle.,7 [Zend_Gdata_YouTube_Extension_PlaylistId.,6 [Zend_Gdata_YouTube_Extension_Occupation.)5 UZend_Gdata_YouTube_Extension_NoEmbed.'4 QZend_Gdata_YouTube_Extension_Music.(3 SZend_Gdata_YouTube_Extension_Movies.   t  gK6y\@ ~O%t?jSA




|
W
>
 
					y	X	8	qV6}lP1{[.qH"W=|Z5oH" hF+       3Zend_Measure_Binary. /Zend_Measure_Area. 1Zend_Measure_Angle. ?Zend_Measure_Acceleration. 7Zend_Measure_Abstract. #Zend_Markup. 7Zend_Markup_TokenList.  /Zend_Markup_Token.* WZend_Markup_Renderer_RendererAbstract.~ ?Zend_Markup_Renderer_Html."} GZend_Markup_Renderer_Html_Url.#| IZend_Markup_Renderer_Html_List."{ GZend_Markup_Renderer_Html_Img.+z YZend_Markup_Renderer_Html_HtmlAbstract.#y IZend_Markup_Renderer_Html_Code.#x IZend_Markup_Renderer_Exception.w AZend_Markup_Parser_Textile.!v EZend_Markup_Parser_Exception.u ?Zend_Markup_Parser_Bbcode.t 7Zend_Markup_Exception.s Zend_Mail.r =Zend_Mail_Transport_Smtp.!q EZend_Mail_Transport_Sendmail."p GZend_Mail_Transport_Exception.!o EZend_Mail_Transport_Abstract.n /Zend_Mail_Storage.'m QZend_Mail_Storage_Writable_Maildir.l 9Zend_Mail_Storage_Pop3.k 9Zend_Mail_Storage_Mbox.j ?Zend_Mail_Storage_Maildir.i 9Zend_Mail_Storage_Imap.h =Zend_Mail_Storage_Folder."g GZend_Mail_Storage_Folder_Mbox.%f MZend_Mail_Storage_Folder_Maildir. e CZend_Mail_Storage_Exception.d AZend_Mail_Storage_Abstract.c ;Zend_Mail_Protocol_Smtp.'b QZend_Mail_Protocol_Smtp_Auth_Plain.'a QZend_Mail_Protocol_Smtp_Auth_Login.)` UZend_Mail_Protocol_Smtp_Auth_Crammd5._ ;Zend_Mail_Protocol_Pop3.^ ;Zend_Mail_Protocol_Imap.!] EZend_Mail_Protocol_Exception. \ CZend_Mail_Protocol_Abstract.[ )Zend_Mail_Part.Z 3Zend_Mail_Part_File.Y /Zend_Mail_Message.X 9Zend_Mail_Message_File.W 3Zend_Mail_Exception.V Zend_Log. U CZend_Log_Writer_ZendMonitor.T 9Zend_Log_Writer_Syslog.S 9Zend_Log_Writer_Stream.R 5Zend_Log_Writer_Null.Q 5Zend_Log_Writer_Mock.P 5Zend_Log_Writer_Mail.O ;Zend_Log_Writer_Firebug.N 1Zend_Log_Writer_Db.M =Zend_Log_Writer_Abstract.L 9Zend_Log_Formatter_Xml.K ?Zend_Log_Formatter_Simple.J AZend_Log_Formatter_Firebug.I =Zend_Log_Filter_Suppress.H =Zend_Log_Filter_Priority.G ;Zend_Log_Filter_Message.F =Zend_Log_Filter_Abstract.E 1Zend_Log_Exception.D #Zend_Locale.C -Zend_Locale_Math.B =Zend_Locale_Math_PhpMath.A AZend_Locale_Math_Exception.@ 1Zend_Locale_Format.? 7Zend_Locale_Exception.> -Zend_Locale_Data.!= EZend_Locale_Data_Translation.< #Zend_Loader.; =Zend_Loader_PluginLoader.': QZend_Loader_PluginLoader_Exception.9 7Zend_Loader_Exception.8 9Zend_Loader_Autoloader.$7 KZend_Loader_Autoloader_Resource.6 Zend_Ldap.5 )Zend_Ldap_Node.4 7Zend_Ldap_Node_Schema.#3 IZend_Ldap_Node_Schema_OpenLdap./2 aZend_Ldap_Node_Schema_ObjectClass_OpenLdap.61 oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectory.0 AZend_Ldap_Node_Schema_Item.1/ eZend_Ldap_Node_Schema_AttributeType_OpenLdap.8. sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory.*- WZend_Ldap_Node_Schema_ActiveDirectory., 9Zend_Ldap_Node_RootDse.$+ KZend_Ldap_Node_RootDse_OpenLdap.&* OZend_Ldap_Node_RootDse_eDirectory.+) YZend_Ldap_Node_RootDse_ActiveDirectory.( ?Zend_Ldap_Node_Collection.$' KZend_Ldap_Node_ChildrenIterator.& ;Zend_Ldap_Node_Abstract.% 9Zend_Ldap_Ldif_Encoder.$ -Zend_Ldap_Filter.# ;Zend_Ldap_Filter_String." 3Zend_Ldap_Filter_Or.! 5Zend_Ldap_Filter_Not.  7Zend_Ldap_Filter_Mask. =Zend_Ldap_Filter_Logical. AZend_Ldap_Filter_Exception. 5Zend_Ldap_Filter_And. ?Zend_Ldap_Filter_Abstract. 3Zend_Ldap_Exception. %Zend_Ldap_Dn. 3Zend_Ldap_Converter. 5Zend_Ldap_Collection.* WZend_Ldap_Collection_Iterator_Default. 3Zend_Ldap_Attribute. #Zend_Layout. 7Zend_Layout_Exception.   v
 z]A"gK,e>mO1oM+






d
G
#					z	S	2	~kAvQ'Z2g9uX5sO1}R1_<&
                      } 3Zend_Pdf_Color_Cmyk.| 'Zend_Pdf_Cmap.{ AZend_Pdf_Cmap_TrimmedTable.!z EZend_Pdf_Cmap_SegmentToDelta.y AZend_Pdf_Cmap_ByteEncoding.&x OZend_Pdf_Cmap_ByteEncoding_Static.w 3Zend_Pdf_Annotation.v =Zend_Pdf_Annotation_Text.u AZend_Pdf_Annotation_Markup.t =Zend_Pdf_Annotation_Link.'s QZend_Pdf_Annotation_FileAttachment.r +Zend_Pdf_Action.q 3Zend_Pdf_Action_URI.p ;Zend_Pdf_Action_Unknown.o 7Zend_Pdf_Action_Trans.n 9Zend_Pdf_Action_Thread.m AZend_Pdf_Action_SubmitForm.l 7Zend_Pdf_Action_Sound. k CZend_Pdf_Action_SetOCGState.j ?Zend_Pdf_Action_ResetForm.i ?Zend_Pdf_Action_Rendition.h 7Zend_Pdf_Action_Named.g 7Zend_Pdf_Action_Movie.f 9Zend_Pdf_Action_Launch.e AZend_Pdf_Action_JavaScript.d AZend_Pdf_Action_ImportData.c 5Zend_Pdf_Action_Hide.b 7Zend_Pdf_Action_GoToR.a 7Zend_Pdf_Action_GoToE.` AZend_Pdf_Action_GoTo3DView._ 5Zend_Pdf_Action_GoTo.^ )Zend_Paginator.-] ]Zend_Paginator_SerializableLimitIterator.*\ WZend_Paginator_ScrollingStyle_Sliding.*[ WZend_Paginator_ScrollingStyle_Jumping.*Z WZend_Paginator_ScrollingStyle_Elastic.&Y OZend_Paginator_ScrollingStyle_All.X =Zend_Paginator_Exception. W CZend_Paginator_Adapter_Null.$V KZend_Paginator_Adapter_Iterator.)U UZend_Paginator_Adapter_DbTableSelect.$T KZend_Paginator_Adapter_DbSelect.!S EZend_Paginator_Adapter_Array.R #Zend_OpenId.Q 5Zend_OpenId_Provider.P ?Zend_OpenId_Provider_User.&O OZend_OpenId_Provider_User_Session.!N EZend_OpenId_Provider_Storage.&M OZend_OpenId_Provider_Storage_File.L 7Zend_OpenId_Extension.K AZend_OpenId_Extension_Sreg.J 7Zend_OpenId_Exception.I 5Zend_OpenId_Consumer.!H EZend_OpenId_Consumer_Storage.&G OZend_OpenId_Consumer_Storage_File.F !Zend_Oauth.E -Zend_Oauth_Token.D =Zend_Oauth_Token_Request.'C QZend_Oauth_Token_AuthorizedRequest.B ;Zend_Oauth_Token_Access.+A YZend_Oauth_Signature_SignatureAbstract.@ =Zend_Oauth_Signature_Rsa.#? IZend_Oauth_Signature_Plaintext.> ?Zend_Oauth_Signature_Hmac.= +Zend_Oauth_Http.< ;Zend_Oauth_Http_Utility.&; OZend_Oauth_Http_UserAuthorization.!: EZend_Oauth_Http_RequestToken. 9 CZend_Oauth_Http_AccessToken.8 5Zend_Oauth_Exception.7 3Zend_Oauth_Consumer.6 /Zend_Oauth_Config.5 /Zend_Oauth_Client.4 +Zend_Navigation.3 5Zend_Navigation_Page.2 =Zend_Navigation_Page_Uri.1 =Zend_Navigation_Page_Mvc.0 ?Zend_Navigation_Exception./ ?Zend_Navigation_Container.. Zend_Mime.- )Zend_Mime_Part., /Zend_Mime_Message.+ 3Zend_Mime_Exception.* -Zend_Mime_Decode.) #Zend_Memory.( /Zend_Memory_Value.' 3Zend_Memory_Manager.& 7Zend_Memory_Exception.% 7Zend_Memory_Container."$ GZend_Memory_Container_Movable.!# EZend_Memory_Container_Locked.!" EZend_Memory_AccessController.! 3Zend_Measure_Weight.  3Zend_Measure_Volume.% MZend_Measure_Viscosity_Kinematic.# IZend_Measure_Viscosity_Dynamic. 3Zend_Measure_Torque. /Zend_Measure_Time. =Zend_Measure_Temperature. 1Zend_Measure_Speed. 7Zend_Measure_Pressure. 1Zend_Measure_Power. 3Zend_Measure_Number. 9Zend_Measure_Lightness. 3Zend_Measure_Length. ?Zend_Measure_Illumination. 9Zend_Measure_Frequency. 1Zend_Measure_Force. =Zend_Measure_Flow_Volume. 9Zend_Measure_Flow_Mole. 9Zend_Measure_Flow_Mass. 9Zend_Measure_Exception. 3Zend_Measure_Energy. 5Zend_Measure_Density. 5Zend_Measure_Current. 
 CZend_Measure_Cooking_Weight. 	 CZend_Measure_Cooking_Volume. =Zend_Measure_Capacitance.   c  kJY.gC%tK(bG




e
:
				|	T	0	mW?Z$CJ
\!|V1]C%ud;                           $` KZend_ProgressBar_Adapter_JsPull.'_ QZend_ProgressBar_Adapter_Exception.%^ MZend_ProgressBar_Adapter_Console.] Zend_Pdf.!\ EZend_Pdf_UpdateInfoContainer.[ -Zend_Pdf_Trailer.Z ;Zend_Pdf_Trailer_Keeper.Y AZend_Pdf_Trailer_Generator.X +Zend_Pdf_Target.W )Zend_Pdf_Style.V 7Zend_Pdf_StringParser.U /Zend_Pdf_Resource.#T IZend_Pdf_Resource_ImageFactory.S ;Zend_Pdf_Resource_Image.!R EZend_Pdf_Resource_Image_Tiff. Q CZend_Pdf_Resource_Image_Png.!P EZend_Pdf_Resource_Image_Jpeg.O 9Zend_Pdf_Resource_Font.!N EZend_Pdf_Resource_Font_Type0."M GZend_Pdf_Resource_Font_Simple.+L YZend_Pdf_Resource_Font_Simple_Standard.8K sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats.6J oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman.7I qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic.;H yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic.5G mZend_Pdf_Resource_Font_Simple_Standard_TimesBold.2F gZend_Pdf_Resource_Font_Simple_Standard_Symbol.<E {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaOblique.AD Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique.9C uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold.5B mZend_Pdf_Resource_Font_Simple_Standard_Helvetica.:A wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique.>@ Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique.7? qZend_Pdf_Resource_Font_Simple_Standard_CourierBold.3> iZend_Pdf_Resource_Font_Simple_Standard_Courier.)= UZend_Pdf_Resource_Font_Simple_Parsed.2< gZend_Pdf_Resource_Font_Simple_Parsed_TrueType.*; WZend_Pdf_Resource_Font_FontDescriptor.%: MZend_Pdf_Resource_Font_Extracted.#9 IZend_Pdf_Resource_Font_CidFont.,8 [Zend_Pdf_Resource_Font_CidFont_TrueType.37 iZend_Pdf_RecursivelyIteratableObjectsContainer.6 +Zend_Pdf_Parser.5 'Zend_Pdf_Page.4 -Zend_Pdf_Outline.3 ;Zend_Pdf_Outline_Loaded.2 =Zend_Pdf_Outline_Created.1 /Zend_Pdf_NameTree.0 )Zend_Pdf_Image./ 'Zend_Pdf_Font.. ?Zend_Pdf_Filter_RunLength. - CZend_Pdf_Filter_Compression.$, KZend_Pdf_Filter_Compression_Lzw.&+ OZend_Pdf_Filter_Compression_Flate.* =Zend_Pdf_Filter_AsciiHex.) ;Zend_Pdf_Filter_Ascii85."( GZend_Pdf_FileParserDataSource.)' UZend_Pdf_FileParserDataSource_String.'& QZend_Pdf_FileParserDataSource_File.% 3Zend_Pdf_FileParser.$ ?Zend_Pdf_FileParser_Image."# GZend_Pdf_FileParser_Image_Png." =Zend_Pdf_FileParser_Font.&! OZend_Pdf_FileParser_Font_OpenType./  aZend_Pdf_FileParser_Font_OpenType_TrueType. 1Zend_Pdf_Exception. ;Zend_Pdf_ElementFactory." GZend_Pdf_ElementFactory_Proxy. -Zend_Pdf_Element. ;Zend_Pdf_Element_String.# IZend_Pdf_Element_String_Binary. ;Zend_Pdf_Element_Stream. AZend_Pdf_Element_Reference.% MZend_Pdf_Element_Reference_Table.' QZend_Pdf_Element_Reference_Context. ;Zend_Pdf_Element_Object.# IZend_Pdf_Element_Object_Stream. =Zend_Pdf_Element_Numeric. 7Zend_Pdf_Element_Null. 7Zend_Pdf_Element_Name.  CZend_Pdf_Element_Dictionary. =Zend_Pdf_Element_Boolean. 9Zend_Pdf_Element_Array. 5Zend_Pdf_Destination. ?Zend_Pdf_Destination_Zoom.! EZend_Pdf_Destination_Unknown.
 AZend_Pdf_Destination_Named.'	 QZend_Pdf_Destination_FitVertically.& OZend_Pdf_Destination_FitRectangle.) UZend_Pdf_Destination_FitHorizontally.2 gZend_Pdf_Destination_FitBoundingBoxVertically.4 kZend_Pdf_Destination_FitBoundingBoxHorizontally.( SZend_Pdf_Destination_FitBoundingBox. =Zend_Pdf_Destination_Fit." GZend_Pdf_Destination_Explicit. )Zend_Pdf_Color.  1Zend_Pdf_Color_Rgb. 3Zend_Pdf_Color_Html.~ =Zend_Pdf_Color_GrayScale.   ]  {W,~^2dE2wU3}Z0





j
L
		|	@p4 o1c5jE$W*R,L#^0           2= gZend_Search_Lucene_Search_Query_Insignificant.*< WZend_Search_Lucene_Search_Query_Fuzzy.*; WZend_Search_Lucene_Search_Query_Empty.,: [Zend_Search_Lucene_Search_Query_Boolean.29 gZend_Search_Lucene_Search_Highlighter_Default.:8 wZend_Search_Lucene_Search_BooleanExpressionRecognizer.7 =Zend_Search_Lucene_Proxy.%6 MZend_Search_Lucene_PriorityQueue./5 aZend_Search_Lucene_Interface_MultiSearcher.#4 IZend_Search_Lucene_LockManager.$3 KZend_Search_Lucene_Index_Writer.02 cZend_Search_Lucene_Index_TermsPriorityQueue.&1 OZend_Search_Lucene_Index_TermInfo."0 GZend_Search_Lucene_Index_Term.+/ YZend_Search_Lucene_Index_SegmentWriter.8. sZend_Search_Lucene_Index_SegmentWriter_StreamWriter.:- wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter.+, YZend_Search_Lucene_Index_SegmentMerger.)+ UZend_Search_Lucene_Index_SegmentInfo.'* QZend_Search_Lucene_Index_FieldInfo.() SZend_Search_Lucene_Index_DocsFilter..( _Zend_Search_Lucene_Index_DictionaryLoader.!' EZend_Search_Lucene_FSMAction.& 9Zend_Search_Lucene_FSM.% =Zend_Search_Lucene_Field.!$ EZend_Search_Lucene_Exception. # CZend_Search_Lucene_Document.%" MZend_Search_Lucene_Document_Xlsx.%! MZend_Search_Lucene_Document_Pptx.(  SZend_Search_Lucene_Document_OpenXml.% MZend_Search_Lucene_Document_Html.* WZend_Search_Lucene_Document_Exception.% MZend_Search_Lucene_Document_Docx., [Zend_Search_Lucene_Analysis_TokenFilter.6 oZend_Search_Lucene_Analysis_TokenFilter_StopWords.7 qZend_Search_Lucene_Analysis_TokenFilter_ShortWords.: wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8.6 oZend_Search_Lucene_Analysis_TokenFilter_LowerCase.& OZend_Search_Lucene_Analysis_Token.) UZend_Search_Lucene_Analysis_Analyzer.0 cZend_Search_Lucene_Analysis_Analyzer_Common.8 sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num.I Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive.5 mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8.F Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive.8 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum.I Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive.5 mZend_Search_Lucene_Analysis_Analyzer_Common_Text.F Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive. 7Zend_Search_Exception. -Zend_Rest_Server.
 AZend_Rest_Server_Exception.	 +Zend_Rest_Route. 3Zend_Rest_Exception. 5Zend_Rest_Controller. -Zend_Rest_Client. ;Zend_Rest_Client_Result.& OZend_Rest_Client_Result_Exception. AZend_Rest_Client_Exception. 'Zend_Registry. =Zend_Reflection_Property.  ?Zend_Reflection_Parameter. 9Zend_Reflection_Method.~ =Zend_Reflection_Function.} 5Zend_Reflection_File.| ?Zend_Reflection_Extension.{ ?Zend_Reflection_Exception.z =Zend_Reflection_Docblock.!y EZend_Reflection_Docblock_Tag.(x SZend_Reflection_Docblock_Tag_Return.'w QZend_Reflection_Docblock_Tag_Param.v 7Zend_Reflection_Class.u !Zend_Queue.t 9Zend_Queue_Stomp_Frame.s ;Zend_Queue_Stomp_Client.'r QZend_Queue_Stomp_Client_Connection.q 1Zend_Queue_Message.#p IZend_Queue_Message_PlatformJob. o CZend_Queue_Message_Iterator.n 5Zend_Queue_Exception.(m SZend_Queue_Adapter_PlatformJobQueue.l ;Zend_Queue_Adapter_Null.!k EZend_Queue_Adapter_Memcacheq.j 7Zend_Queue_Adapter_Db. i CZend_Queue_Adapter_Db_Queue."h GZend_Queue_Adapter_Db_Message.g =Zend_Queue_Adapter_Array.'f QZend_Queue_Adapter_AdapterAbstract. e CZend_Queue_Adapter_Activemq.d -Zend_ProgressBar.c AZend_ProgressBar_Exception.b =Zend_ProgressBar_Adapter.$a KZend_ProgressBar_Adapter_JsPush.   \  c&Z)e8}FW$



e
8
			z	_	/	
oB`B`/k@!nEpJoFb8                  ?Zend_Service_Amazon_Query.! EZend_Service_Amazon_OfferSet. ?Zend_Service_Amazon_Offer.& OZend_Service_Amazon_ListmaniaList. =Zend_Service_Amazon_Item. ?Zend_Service_Amazon_Image." GZend_Service_Amazon_Exception.( SZend_Service_Amazon_EditorialReview. ;Zend_Service_Amazon_Ec2.+ YZend_Service_Amazon_Ec2_Securitygroups.% MZend_Service_Amazon_Ec2_Response.# IZend_Service_Amazon_Ec2_Region.$ KZend_Service_Amazon_Ec2_Keypair.% MZend_Service_Amazon_Ec2_Instance.- ]Zend_Service_Amazon_Ec2_Instance_Windows..
 _Zend_Service_Amazon_Ec2_Instance_Reserved."	 GZend_Service_Amazon_Ec2_Image.& OZend_Service_Amazon_Ec2_Exception.& OZend_Service_Amazon_Ec2_Elasticip.  CZend_Service_Amazon_Ec2_Ebs.' QZend_Service_Amazon_Ec2_CloudWatch.. _Zend_Service_Amazon_Ec2_Availabilityzones.% MZend_Service_Amazon_Ec2_Abstract.' QZend_Service_Amazon_CustomerReview.$ KZend_Service_Amazon_Accessories.!  EZend_Service_Amazon_Abstract. 5Zend_Service_Akismet.~ 7Zend_Service_Abstract.} 9Zend_Server_Reflection.'| QZend_Server_Reflection_ReturnValue.%{ MZend_Server_Reflection_Prototype.%z MZend_Server_Reflection_Parameter. y CZend_Server_Reflection_Node."x GZend_Server_Reflection_Method.$w KZend_Server_Reflection_Function.-v ]Zend_Server_Reflection_Function_Abstract.%u MZend_Server_Reflection_Exception.!t EZend_Server_Reflection_Class.!s EZend_Server_Method_Prototype.!r EZend_Server_Method_Parameter."q GZend_Server_Method_Definition. p CZend_Server_Method_Callback.o 7Zend_Server_Exception.n 9Zend_Server_Definition.m /Zend_Server_Cache.l 5Zend_Server_Abstract.k +Zend_Serializer.j ?Zend_Serializer_Exception.!i EZend_Serializer_Adapter_Wddx.)h UZend_Serializer_Adapter_PythonPickle.)g UZend_Serializer_Adapter_PhpSerialize.$f KZend_Serializer_Adapter_PhpCode.!e EZend_Serializer_Adapter_Json.%d MZend_Serializer_Adapter_Igbinary.!c EZend_Serializer_Adapter_Amf3.!b EZend_Serializer_Adapter_Amf0.,a [Zend_Serializer_Adapter_AdapterAbstract.` 1Zend_Search_Lucene.0_ cZend_Search_Lucene_TermStreamsPriorityQueue.$^ KZend_Search_Lucene_Storage_File.+] YZend_Search_Lucene_Storage_File_Memory./\ aZend_Search_Lucene_Storage_File_Filesystem.)[ UZend_Search_Lucene_Storage_Directory.4Z kZend_Search_Lucene_Storage_Directory_Filesystem.%Y MZend_Search_Lucene_Search_Weight.*X WZend_Search_Lucene_Search_Weight_Term.,W [Zend_Search_Lucene_Search_Weight_Phrase./V aZend_Search_Lucene_Search_Weight_MultiTerm.+U YZend_Search_Lucene_Search_Weight_Empty.-T ]Zend_Search_Lucene_Search_Weight_Boolean.)S UZend_Search_Lucene_Search_Similarity.1R eZend_Search_Lucene_Search_Similarity_Default.)Q UZend_Search_Lucene_Search_QueryToken.3P iZend_Search_Lucene_Search_QueryParserException.1O eZend_Search_Lucene_Search_QueryParserContext.*N WZend_Search_Lucene_Search_QueryParser.)M UZend_Search_Lucene_Search_QueryLexer.'L QZend_Search_Lucene_Search_QueryHit.)K UZend_Search_Lucene_Search_QueryEntry..J _Zend_Search_Lucene_Search_QueryEntry_Term.2I gZend_Search_Lucene_Search_QueryEntry_Subquery.0H cZend_Search_Lucene_Search_QueryEntry_Phrase.$G KZend_Search_Lucene_Search_Query.-F ]Zend_Search_Lucene_Search_Query_Wildcard.)E UZend_Search_Lucene_Search_Query_Term.*D WZend_Search_Lucene_Search_Query_Range.2C gZend_Search_Lucene_Search_Query_Preprocessing.7B qZend_Search_Lucene_Search_Query_Preprocessing_Term.9A uZend_Search_Lucene_Search_Query_Preprocessing_Phrase.8@ sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy.+? YZend_Search_Lucene_Search_Query_Phrase..> _Zend_Search_Lucene_Search_Query_MultiTerm.   ;  lAjBDPC



i
/				Q	aRG*x%h`E                                                                        ET Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest.3S iZend_Service_DeveloperGarden_Request_Exception.RR %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequest.YQ 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequest.dP IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequest.QO #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequest.RN %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequest.YM 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequest.dL IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequest.QK #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequest.OJ Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequest.UI +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequest.UH +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequest.VG -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequest.aF CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequest.ZE 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequest.TD )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequest.RC %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequest.YB 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequest.QA #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequest.Q@ #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequest.a? CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequest.N> Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformation.L= Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalance.J< Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool.-; ]Zend_Service_DeveloperGarden_LocalSearch.>: Zend_Service_DeveloperGarden_LocalSearch_SearchParameters.79 qZend_Service_DeveloperGarden_LocalSearch_Exception.,8 [Zend_Service_DeveloperGarden_IpLocation.67 oZend_Service_DeveloperGarden_IpLocation_IpAddress.+6 YZend_Service_DeveloperGarden_Exception.,5 [Zend_Service_DeveloperGarden_Credential.04 cZend_Service_DeveloperGarden_ConferenceCall.C3 Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatus.C2 Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail.<1 {Zend_Service_DeveloperGarden_ConferenceCall_Participant.:0 wZend_Service_DeveloperGarden_ConferenceCall_Exception.D/ 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceSchedule.B. Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail.C- Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount.-, ]Zend_Service_DeveloperGarden_Client_Soap.2+ gZend_Service_DeveloperGarden_Client_Exception.7* qZend_Service_DeveloperGarden_Client_ClientAbstract.1) eZend_Service_DeveloperGarden_BaseUserService.A( Zend_Service_DeveloperGarden_BaseUserService_AccountBalance.' 9Zend_Service_Delicious.&& OZend_Service_Delicious_SimplePost.$% KZend_Service_Delicious_PostList. $ CZend_Service_Delicious_Post.%# MZend_Service_Delicious_Exception. " CZend_Service_Audioscrobbler.! 3Zend_Service_Amazon.  ;Zend_Service_Amazon_Sqs.& OZend_Service_Amazon_Sqs_Exception.' QZend_Service_Amazon_SimilarProduct. 9Zend_Service_Amazon_S3." GZend_Service_Amazon_S3_Stream.% MZend_Service_Amazon_S3_Exception." GZend_Service_Amazon_ResultSet.   .  v4a>k6

t
			d	]C/k=#id                                                         [ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponse.f MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponse.S  'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponse.U +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType.Q~ #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse.[} 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseType.W| /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse.[{ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseType.Wz /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse.\y 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseType.Xx 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponse.gw OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseType.cv GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse.`u AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType.\t 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponse.Zs 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseType.Vr -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponse.Xq 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseType.Tp )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse._o ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType.[n 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponse.Wm /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType.Sl 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponse.Qk #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstract.Sj 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponse.Ji Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType.gh OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseType.cg GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponse.Wf /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse.Ue +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponse.Sd 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse.3c iZend_Service_DeveloperGarden_Response_BaseType.Jb Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstract.Ca Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCall.G` Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced.=_ }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCall.A^ Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatus.A] Zend_Service_DeveloperGarden_Request_SmsValidation_Validate.N\ Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeyword.C[ Zend_Service_DeveloperGarden_Request_SmsValidation_Invalidate.LZ Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbers.BY Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract.9X uZend_Service_DeveloperGarden_Request_SendSms_SendSMS.>W Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS.9V uZend_Service_DeveloperGarden_Request_RequestAbstract.IU Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequest.   C  Q0i:Y

^
			+5HY
e2y]5mF(}^>rM"                                      E 1Zend_Service_Simpy.$D KZend_Service_Simpy_WatchlistSet.*C WZend_Service_Simpy_WatchlistFilterSet.'B QZend_Service_Simpy_WatchlistFilter.!A EZend_Service_Simpy_Watchlist.@ ?Zend_Service_Simpy_TagSet.? 9Zend_Service_Simpy_Tag.> AZend_Service_Simpy_NoteSet.= ;Zend_Service_Simpy_Note.< AZend_Service_Simpy_LinkSet.!; EZend_Service_Simpy_LinkQuery.: ;Zend_Service_Simpy_Link.9 9Zend_Service_ReCaptcha.$8 KZend_Service_ReCaptcha_Response.$7 KZend_Service_ReCaptcha_MailHide..6 _Zend_Service_ReCaptcha_MailHide_Exception.%5 MZend_Service_ReCaptcha_Exception.4 7Zend_Service_Nirvanix.#3 IZend_Service_Nirvanix_Response.)2 UZend_Service_Nirvanix_Namespace_Imfs.)1 UZend_Service_Nirvanix_Namespace_Base.$0 KZend_Service_Nirvanix_Exception./ 7Zend_Service_LiveDocx.$. KZend_Service_LiveDocx_MailMerge.$- KZend_Service_LiveDocx_Exception., 3Zend_Service_Flickr."+ GZend_Service_Flickr_ResultSet.* AZend_Service_Flickr_Result.) ?Zend_Service_Flickr_Image.( 9Zend_Service_Exception.+' YZend_Service_DeveloperGarden_VoiceCall./& aZend_Service_DeveloperGarden_SmsValidation.)% UZend_Service_DeveloperGarden_SendSms.5$ mZend_Service_DeveloperGarden_SecurityTokenServer.;# yZend_Service_DeveloperGarden_SecurityTokenServer_Cache.K" Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstract.L! Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponse.P  !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponse.G Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponse.J Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponse.K Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2Response.L Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponse.I Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumber.W /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponse.J Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponse.U +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponse.C Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponse.C Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstract.H Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponse.U +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponse.Q #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponse.I Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception.; yZend_Service_DeveloperGarden_Response_ResponseAbstract.O Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseType.K Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponse.A Zend_Service_DeveloperGarden_Response_IpLocation_RegionType.K Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseType.G Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponse.L Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationType.I
 Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType.>	 Zend_Service_DeveloperGarden_Response_IpLocation_CityType.4 kZend_Service_DeveloperGarden_Response_Exception.T )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse.[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponse.f MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponse.S 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponse.T )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse.   W  g=`9
{FoBb<




K
			f	.P |Dh1UU&\/rJ/W*                          9Zend_Soap_AutoDiscover.% MZend_Soap_AutoDiscover_Exception. %Zend_Session.) UZend_Session_Validator_HttpUserAgent.$ KZend_Session_Validator_Abstract.' QZend_Session_SaveHandler_Exception.% MZend_Session_SaveHandler_DbTable. 9Zend_Session_Namespace. 9Zend_Session_Exception. 7Zend_Session_Abstract. 1Zend_Service_Yahoo.$ KZend_Service_Yahoo_WebResultSet.! EZend_Service_Yahoo_WebResult.& OZend_Service_Yahoo_VideoResultSet.# IZend_Service_Yahoo_VideoResult.! EZend_Service_Yahoo_ResultSet. ?Zend_Service_Yahoo_Result.) UZend_Service_Yahoo_PageDataResultSet.&
 OZend_Service_Yahoo_PageDataResult.%	 MZend_Service_Yahoo_NewsResultSet." GZend_Service_Yahoo_NewsResult.& OZend_Service_Yahoo_LocalResultSet.# IZend_Service_Yahoo_LocalResult.+ YZend_Service_Yahoo_InlinkDataResultSet.( SZend_Service_Yahoo_InlinkDataResult.& OZend_Service_Yahoo_ImageResultSet.# IZend_Service_Yahoo_ImageResult. =Zend_Service_Yahoo_Image.&  OZend_Service_WindowsAzure_Storage.4 kZend_Service_WindowsAzure_Storage_TableInstance.7~ qZend_Service_WindowsAzure_Storage_TableEntityQuery.2} gZend_Service_WindowsAzure_Storage_TableEntity.,| [Zend_Service_WindowsAzure_Storage_Table.7{ qZend_Service_WindowsAzure_Storage_SignedIdentifier.3z iZend_Service_WindowsAzure_Storage_QueueMessage.4y kZend_Service_WindowsAzure_Storage_QueueInstance.,x [Zend_Service_WindowsAzure_Storage_Queue.9w uZend_Service_WindowsAzure_Storage_DynamicTableEntity.3v iZend_Service_WindowsAzure_Storage_BlobInstance.4u kZend_Service_WindowsAzure_Storage_BlobContainer.+t YZend_Service_WindowsAzure_Storage_Blob.2s gZend_Service_WindowsAzure_Storage_Blob_Stream.;r yZend_Service_WindowsAzure_Storage_BatchStorageAbstract.,q [Zend_Service_WindowsAzure_Storage_Batch.-p ]Zend_Service_WindowsAzure_SessionHandler.>o Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract.1n eZend_Service_WindowsAzure_RetryPolicy_RetryN.2m gZend_Service_WindowsAzure_RetryPolicy_NoRetry.4l kZend_Service_WindowsAzure_RetryPolicy_Exception.(k SZend_Service_WindowsAzure_Exception.8j sZend_Service_WindowsAzure_Credentials_SharedKeyLite.4i kZend_Service_WindowsAzure_Credentials_SharedKey.Ah Zend_Service_WindowsAzure_Credentials_SharedAccessSignature.>g Zend_Service_WindowsAzure_Credentials_CredentialsAbstract.f 5Zend_Service_Twitter. e CZend_Service_Twitter_Search.#d IZend_Service_Twitter_Exception.c ;Zend_Service_Technorati.#b IZend_Service_Technorati_Weblog."a GZend_Service_Technorati_Utils.*` WZend_Service_Technorati_TagsResultSet.'_ QZend_Service_Technorati_TagsResult.)^ UZend_Service_Technorati_TagResultSet.&] OZend_Service_Technorati_TagResult.,\ [Zend_Service_Technorati_SearchResultSet.)[ UZend_Service_Technorati_SearchResult.&Z OZend_Service_Technorati_ResultSet.#Y IZend_Service_Technorati_Result.*X WZend_Service_Technorati_KeyInfoResult.*W WZend_Service_Technorati_GetInfoResult.&V OZend_Service_Technorati_Exception.1U eZend_Service_Technorati_DailyCountsResultSet..T _Zend_Service_Technorati_DailyCountsResult.,S [Zend_Service_Technorati_CosmosResultSet.)R UZend_Service_Technorati_CosmosResult.+Q YZend_Service_Technorati_BlogInfoResult.#P IZend_Service_Technorati_Author.O ;Zend_Service_StrikeIron.(N SZend_Service_StrikeIron_ZipCodeInfo.2M gZend_Service_StrikeIron_USAddressVerification.-L ]Zend_Service_StrikeIron_SalesUseTaxBasic.&K OZend_Service_StrikeIron_Exception.&J OZend_Service_StrikeIron_Decorator.!I EZend_Service_StrikeIron_Base.H ;Zend_Service_SlideShare.&G OZend_Service_SlideShare_SlideShow.&F OZend_Service_SlideShare_Exception.   \  ~eB)P&_6rT&h=



T
$				p	@	[1gQ)x>C[zO{U)wH  )x UZend_Tool_Framework_Metadata_Dynamic.'w QZend_Tool_Framework_Metadata_Basic.,v [Zend_Tool_Framework_Manifest_Repository.+u YZend_Tool_Framework_Manifest_Exception.1t eZend_Tool_Framework_Loader_IncludePathLoader.Js Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator.+r YZend_Tool_Framework_Loader_BasicLoader.(q SZend_Tool_Framework_Loader_Abstract."p GZend_Tool_Framework_Exception.'o QZend_Tool_Framework_Client_Storage.1n eZend_Tool_Framework_Client_Storage_Directory.(m SZend_Tool_Framework_Client_Response.Dl 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator.'k QZend_Tool_Framework_Client_Request.(j SZend_Tool_Framework_Client_Manifest.9i uZend_Tool_Framework_Client_Interactive_InputResponse.8h sZend_Tool_Framework_Client_Interactive_InputRequest.8g sZend_Tool_Framework_Client_Interactive_InputHandler.)f UZend_Tool_Framework_Client_Exception.'e QZend_Tool_Framework_Client_Console.Dd 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Indention.Dc 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizer.Cb Zend_Tool_Framework_Client_Console_ResponseDecorator_Blockize.Fa Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter.0` cZend_Tool_Framework_Client_Console_Manifest.2_ gZend_Tool_Framework_Client_Console_HelpSystem.6^ oZend_Tool_Framework_Client_Console_ArgumentParser.&] OZend_Tool_Framework_Client_Config.(\ SZend_Tool_Framework_Client_Abstract.*[ WZend_Tool_Framework_Action_Repository.)Z UZend_Tool_Framework_Action_Exception.$Y KZend_Tool_Framework_Action_Base.X 'Zend_TimeSync.W 1Zend_TimeSync_Sntp.V 9Zend_TimeSync_Protocol.U /Zend_TimeSync_Ntp.T ;Zend_TimeSync_Exception.S +Zend_Text_Table.R 3Zend_Text_Table_Row.Q ?Zend_Text_Table_Exception.&P OZend_Text_Table_Decorator_Unicode.$O KZend_Text_Table_Decorator_Ascii.N 9Zend_Text_Table_Column.M 3Zend_Text_MultiByte.L -Zend_Text_Figlet.K AZend_Text_Figlet_Exception.J 3Zend_Text_Exception.&I OZend_Test_PHPUnit_Db_SimpleTester.,H [Zend_Test_PHPUnit_Db_Operation_Truncate.*G WZend_Test_PHPUnit_Db_Operation_Insert.-F ]Zend_Test_PHPUnit_Db_Operation_DeleteAll.*E WZend_Test_PHPUnit_Db_Metadata_Generic.#D IZend_Test_PHPUnit_Db_Exception.,C [Zend_Test_PHPUnit_Db_DataSet_QueryTable..B _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet.0A cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet.)@ UZend_Test_PHPUnit_Db_DataSet_DbTable.*? WZend_Test_PHPUnit_Db_DataSet_DbRowset.$> KZend_Test_PHPUnit_Db_Connection.'= QZend_Test_PHPUnit_DatabaseTestCase.)< UZend_Test_PHPUnit_ControllerTestCase.0; cZend_Test_PHPUnit_Constraint_ResponseHeader.*: WZend_Test_PHPUnit_Constraint_Redirect.+9 YZend_Test_PHPUnit_Constraint_Exception.*8 WZend_Test_PHPUnit_Constraint_DomQuery.7 7Zend_Test_DbStatement.6 3Zend_Test_DbAdapter.5 /Zend_Tag_ItemList.4 'Zend_Tag_Item.3 1Zend_Tag_Exception.2 )Zend_Tag_Cloud.1 =Zend_Tag_Cloud_Exception.!0 EZend_Tag_Cloud_Decorator_Tag.%/ MZend_Tag_Cloud_Decorator_HtmlTag.'. QZend_Tag_Cloud_Decorator_HtmlCloud.'- QZend_Tag_Cloud_Decorator_Exception.#, IZend_Tag_Cloud_Decorator_Cloud.+ )Zend_Soap_Wsdl./* aZend_Soap_Wsdl_Strategy_DefaultComplexType.&) OZend_Soap_Wsdl_Strategy_Composite.0( cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence./' aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex.$& KZend_Soap_Wsdl_Strategy_AnyType.%% MZend_Soap_Wsdl_Strategy_Abstract.$ =Zend_Soap_Wsdl_Exception.# -Zend_Soap_Server." AZend_Soap_Server_Exception.! -Zend_Soap_Client.  9Zend_Soap_Client_Local. AZend_Soap_Client_Exception. ;Zend_Soap_Client_DotNet. ;Zend_Soap_Client_Common.   I  yId8h)_(S


s
8				g	1Z)b,NLn2Gx:I            2A gZend_Tool_Project_Context_Zf_UploadsDirectory.0@ cZend_Tool_Project_Context_Zf_TestsDirectory.7? qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile.@> Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory.1= eZend_Tool_Project_Context_Zf_TestLibraryFile.6< oZend_Tool_Project_Context_Zf_TestLibraryDirectory.:; wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFile.:: wZend_Tool_Project_Context_Zf_TestApplicationDirectory.@9 Zend_Tool_Project_Context_Zf_TestApplicationControllerFile.E8 Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory.>7 Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile.46 kZend_Tool_Project_Context_Zf_TemporaryDirectory.35 iZend_Tool_Project_Context_Zf_SessionsDirectory.84 sZend_Tool_Project_Context_Zf_SearchIndexesDirectory.<3 {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory.82 sZend_Tool_Project_Context_Zf_PublicScriptsDirectory.11 eZend_Tool_Project_Context_Zf_PublicIndexFile.70 qZend_Tool_Project_Context_Zf_PublicImagesDirectory.1/ eZend_Tool_Project_Context_Zf_PublicDirectory.5. mZend_Tool_Project_Context_Zf_ProjectProviderFile.2- gZend_Tool_Project_Context_Zf_ModulesDirectory.1, eZend_Tool_Project_Context_Zf_ModuleDirectory.1+ eZend_Tool_Project_Context_Zf_ModelsDirectory.+* YZend_Tool_Project_Context_Zf_ModelFile./) aZend_Tool_Project_Context_Zf_LogsDirectory.2( gZend_Tool_Project_Context_Zf_LocalesDirectory.2' gZend_Tool_Project_Context_Zf_LibraryDirectory.2& gZend_Tool_Project_Context_Zf_LayoutsDirectory.8% sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory.2$ gZend_Tool_Project_Context_Zf_LayoutScriptFile..# _Zend_Tool_Project_Context_Zf_HtaccessFile.0" cZend_Tool_Project_Context_Zf_FormsDirectory.*! WZend_Tool_Project_Context_Zf_FormFile./  aZend_Tool_Project_Context_Zf_DocsDirectory.- ]Zend_Tool_Project_Context_Zf_DbTableFile.2 gZend_Tool_Project_Context_Zf_DbTableDirectory./ aZend_Tool_Project_Context_Zf_DataDirectory.6 oZend_Tool_Project_Context_Zf_ControllersDirectory.0 cZend_Tool_Project_Context_Zf_ControllerFile.2 gZend_Tool_Project_Context_Zf_ConfigsDirectory., [Zend_Tool_Project_Context_Zf_ConfigFile.0 cZend_Tool_Project_Context_Zf_CacheDirectory./ aZend_Tool_Project_Context_Zf_BootstrapFile.6 oZend_Tool_Project_Context_Zf_ApplicationDirectory.7 qZend_Tool_Project_Context_Zf_ApplicationConfigFile./ aZend_Tool_Project_Context_Zf_ApisDirectory.. _Zend_Tool_Project_Context_Zf_ActionMethod.3 iZend_Tool_Project_Context_Zf_AbstractClassFile.@ Zend_Tool_Project_Context_System_ProjectProvidersDirectory.8 sZend_Tool_Project_Context_System_ProjectProfileFile.6 oZend_Tool_Project_Context_System_ProjectDirectory.) UZend_Tool_Project_Context_Repository.. _Zend_Tool_Project_Context_Filesystem_File.3 iZend_Tool_Project_Context_Filesystem_Directory.2 gZend_Tool_Project_Context_Filesystem_Abstract.(
 SZend_Tool_Project_Context_Exception.-	 ]Zend_Tool_Project_Context_Content_Engine.3 iZend_Tool_Project_Context_Content_Engine_Phtml.; yZend_Tool_Project_Context_Content_Engine_CodeGenerator.0 cZend_Tool_Framework_System_Provider_Version.0 cZend_Tool_Framework_System_Provider_Phpinfo.1 eZend_Tool_Framework_System_Provider_Manifest./ aZend_Tool_Framework_System_Provider_Config.( SZend_Tool_Framework_System_Manifest.- ]Zend_Tool_Framework_System_Action_Delete.-  ]Zend_Tool_Framework_System_Action_Create.! EZend_Tool_Framework_Registry.+~ YZend_Tool_Framework_Registry_Exception.+} YZend_Tool_Framework_Provider_Signature.,| [Zend_Tool_Framework_Provider_Repository.+{ YZend_Tool_Framework_Provider_Exception.*z WZend_Tool_Framework_Provider_Abstract.&y OZend_Tool_Framework_Metadata_Tool.   b  GeAj5U&sK!



w
L
					Z	7	fE'wI$Z6a<yU.	uR4}U/a6                                    !# EZend_Validate_File_Extension." ?Zend_Validate_File_Exists.'! QZend_Validate_File_ExcludeMimeType.(  SZend_Validate_File_ExcludeExtension. =Zend_Validate_File_Crc32. =Zend_Validate_File_Count. ;Zend_Validate_Exception. AZend_Validate_EmailAddress. 5Zend_Validate_Digits." GZend_Validate_Db_RecordExists.$ KZend_Validate_Db_NoRecordExists. ?Zend_Validate_Db_Abstract. 1Zend_Validate_Date. =Zend_Validate_CreditCard. 3Zend_Validate_Ccnum. 9Zend_Validate_Callback. 7Zend_Validate_Between. 7Zend_Validate_Barcode. AZend_Validate_Barcode_Upce. AZend_Validate_Barcode_Upca. AZend_Validate_Barcode_Sscc.$ KZend_Validate_Barcode_Royalmail." GZend_Validate_Barcode_Postnet.! EZend_Validate_Barcode_Planet.# IZend_Validate_Barcode_Leitcode. 
 CZend_Validate_Barcode_Itf14.	 AZend_Validate_Barcode_Issn.* WZend_Validate_Barcode_IntelligentMail.$ KZend_Validate_Barcode_Identcode.! EZend_Validate_Barcode_Gtin14.! EZend_Validate_Barcode_Gtin13.! EZend_Validate_Barcode_Gtin12. AZend_Validate_Barcode_Ean8. AZend_Validate_Barcode_Ean5. AZend_Validate_Barcode_Ean2.   CZend_Validate_Barcode_Ean18.  CZend_Validate_Barcode_Ean14. ~ CZend_Validate_Barcode_Ean13. } CZend_Validate_Barcode_Ean12.$| KZend_Validate_Barcode_Code93ext.!{ EZend_Validate_Barcode_Code93.$z KZend_Validate_Barcode_Code39ext.!y EZend_Validate_Barcode_Code39.,x [Zend_Validate_Barcode_Code25interleaved.!w EZend_Validate_Barcode_Code25.*v WZend_Validate_Barcode_AdapterAbstract.u 3Zend_Validate_Alpha.t 3Zend_Validate_Alnum.s 9Zend_Validate_Abstract.r Zend_Uri.q 'Zend_Uri_Http.p 1Zend_Uri_Exception.o )Zend_Translate.n 7Zend_Translate_Plural.m =Zend_Translate_Exception.l 9Zend_Translate_Adapter.!k EZend_Translate_Adapter_XmlTm.!j EZend_Translate_Adapter_Xliff.i AZend_Translate_Adapter_Tmx.h AZend_Translate_Adapter_Tbx.g ?Zend_Translate_Adapter_Qt.f AZend_Translate_Adapter_Ini.#e IZend_Translate_Adapter_Gettext.d AZend_Translate_Adapter_Csv.!c EZend_Translate_Adapter_Array.$b KZend_Tool_Project_Provider_View.$a KZend_Tool_Project_Provider_Test./` aZend_Tool_Project_Provider_ProjectProvider.'_ QZend_Tool_Project_Provider_Project.'^ QZend_Tool_Project_Provider_Profile.&] OZend_Tool_Project_Provider_Module.%\ MZend_Tool_Project_Provider_Model.([ SZend_Tool_Project_Provider_Manifest.&Z OZend_Tool_Project_Provider_Layout.$Y KZend_Tool_Project_Provider_Form.)X UZend_Tool_Project_Provider_Exception.'W QZend_Tool_Project_Provider_DbTable.)V UZend_Tool_Project_Provider_DbAdapter.*U WZend_Tool_Project_Provider_Controller.+T YZend_Tool_Project_Provider_Application.&S OZend_Tool_Project_Provider_Action.(R SZend_Tool_Project_Provider_Abstract.Q ?Zend_Tool_Project_Profile.'P QZend_Tool_Project_Profile_Resource.9O uZend_Tool_Project_Profile_Resource_SearchConstraints.1N eZend_Tool_Project_Profile_Resource_Container.=M }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter.5L mZend_Tool_Project_Profile_Iterator_ContextFilter.-K ]Zend_Tool_Project_Profile_FileParser_Xml.(J SZend_Tool_Project_Profile_Exception. I CZend_Tool_Project_Exception.<H {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory.0G cZend_Tool_Project_Context_Zf_ViewsDirectory.6F oZend_Tool_Project_Context_Zf_ViewScriptsDirectory.0E cZend_Tool_Project_Context_Zf_ViewScriptFile.6D oZend_Tool_Project_Context_Zf_ViewHelpersDirectory.6C oZend_Tool_Project_Context_Zf_ViewFiltersDirectory.AB Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory.   k  nK,\@rY> vT-
fE#



~
Z
4
					_	4	^<hC kM-wK'SyK&}kA!sN$                              % MZend_XmlRpc_Client_HttpException.& OZend_XmlRpc_Client_FaultException.! EZend_XmlRpc_Client_Exception.& OZend_Wildfire_Protocol_JsonStream.!
 EZend_Wildfire_Plugin_FirePhp..	 _Zend_Wildfire_Plugin_FirePhp_TableMessage.) UZend_Wildfire_Plugin_FirePhp_Message. ;Zend_Wildfire_Exception.& OZend_Wildfire_Channel_HttpHeaders. Zend_View. -Zend_View_Stream. 5Zend_View_Helper_Url. AZend_View_Helper_Translate. AZend_View_Helper_ServerUrl.)  UZend_View_Helper_RenderToPlaceholder.! EZend_View_Helper_Placeholder.*~ WZend_View_Helper_Placeholder_Registry.4} kZend_View_Helper_Placeholder_Registry_Exception.+| YZend_View_Helper_Placeholder_Container.6{ oZend_View_Helper_Placeholder_Container_Standalone.5z mZend_View_Helper_Placeholder_Container_Exception.4y kZend_View_Helper_Placeholder_Container_Abstract.!x EZend_View_Helper_PartialLoop.w =Zend_View_Helper_Partial.'v QZend_View_Helper_Partial_Exception.'u QZend_View_Helper_PaginationControl. t CZend_View_Helper_Navigation.(s SZend_View_Helper_Navigation_Sitemap.%r MZend_View_Helper_Navigation_Menu.&q OZend_View_Helper_Navigation_Links./p aZend_View_Helper_Navigation_HelperAbstract.,o [Zend_View_Helper_Navigation_Breadcrumbs.n ;Zend_View_Helper_Layout.m 7Zend_View_Helper_Json."l GZend_View_Helper_InlineScript.#k IZend_View_Helper_HtmlQuicktime.j ?Zend_View_Helper_HtmlPage. i CZend_View_Helper_HtmlObject.h ?Zend_View_Helper_HtmlList.g AZend_View_Helper_HtmlFlash.!f EZend_View_Helper_HtmlElement.e AZend_View_Helper_HeadTitle.d AZend_View_Helper_HeadStyle. c CZend_View_Helper_HeadScript.b ?Zend_View_Helper_HeadMeta.a ?Zend_View_Helper_HeadLink."` GZend_View_Helper_FormTextarea._ ?Zend_View_Helper_FormText. ^ CZend_View_Helper_FormSubmit. ] CZend_View_Helper_FormSelect.\ AZend_View_Helper_FormReset.[ AZend_View_Helper_FormRadio."Z GZend_View_Helper_FormPassword.Y ?Zend_View_Helper_FormNote.'X QZend_View_Helper_FormMultiCheckbox.W AZend_View_Helper_FormLabel.V AZend_View_Helper_FormImage. U CZend_View_Helper_FormHidden.T ?Zend_View_Helper_FormFile. S CZend_View_Helper_FormErrors.!R EZend_View_Helper_FormElement."Q GZend_View_Helper_FormCheckbox. P CZend_View_Helper_FormButton.O 7Zend_View_Helper_Form.N ?Zend_View_Helper_Fieldset.M =Zend_View_Helper_Doctype.!L EZend_View_Helper_DeclareVars.K 9Zend_View_Helper_Cycle.J ?Zend_View_Helper_Currency.I =Zend_View_Helper_BaseUrl.H ;Zend_View_Helper_Action.G ?Zend_View_Helper_Abstract.F 3Zend_View_Exception.E 1Zend_View_Abstract.D %Zend_Version.C 'Zend_Validate.B AZend_Validate_StringLength.#A IZend_Validate_Sitemap_Priority.@ ?Zend_Validate_Sitemap_Loc."? GZend_Validate_Sitemap_Lastmod.%> MZend_Validate_Sitemap_Changefreq.= 3Zend_Validate_Regex.< 9Zend_Validate_PostCode.; 9Zend_Validate_NotEmpty.: 9Zend_Validate_LessThan.9 1Zend_Validate_Isbn.8 -Zend_Validate_Ip.7 /Zend_Validate_Int.6 7Zend_Validate_InArray.5 ;Zend_Validate_Identical.4 1Zend_Validate_Iban.3 9Zend_Validate_Hostname.2 /Zend_Validate_Hex.1 ?Zend_Validate_GreaterThan.0 3Zend_Validate_Float.!/ EZend_Validate_File_WordCount.. ?Zend_Validate_File_Upload.- ;Zend_Validate_File_Size., ;Zend_Validate_File_Sha1.!+ EZend_Validate_File_NotExists. * CZend_Validate_File_MimeType.) 9Zend_Validate_File_Md5.( AZend_Validate_File_IsImage.$' KZend_Validate_File_IsCompressed.!& EZend_Validate_File_ImageSize.% ;Zend_Validate_File_Hash.!$ EZend_Validate_File_FilesSize.   i  {`B(cG%dD#sO-w]4





l
Q
6
				r	O	+gI0yV1 m=Z-
a:d=`6
c1            w 9Zend_Auth_Adapter_Http/)v UZend_Auth_Adapter_Http_Resolver_File/.u _Zend_Auth_Adapter_Http_Resolver_Exception/ t CZend_Auth_Adapter_Exception/s =Zend_Auth_Adapter_Digest/r ?Zend_Auth_Adapter_DbTable/q -Zend_Application/#p IZend_Application_Resource_View/(o SZend_Application_Resource_Translate/&n OZend_Application_Resource_Session/%m MZend_Application_Resource_Router//l aZend_Application_Resource_ResourceAbstract/)k UZend_Application_Resource_Navigation/&j OZend_Application_Resource_Multidb/&i OZend_Application_Resource_Modules/#h IZend_Application_Resource_Mail/"g GZend_Application_Resource_Log/%f MZend_Application_Resource_Locale/%e MZend_Application_Resource_Layout/.d _Zend_Application_Resource_Frontcontroller/(c SZend_Application_Resource_Exception/#b IZend_Application_Resource_Dojo/!a EZend_Application_Resource_Db/+` YZend_Application_Resource_Cachemanager/&_ OZend_Application_Module_Bootstrap/'^ QZend_Application_Module_Autoloader/] AZend_Application_Exception/)\ UZend_Application_Bootstrap_Exception/1[ eZend_Application_Bootstrap_BootstrapAbstract/)Z UZend_Application_Bootstrap_Bootstrap/Y ?Zend_Amf_Value_TraitsInfo/-X ]Zend_Amf_Value_Messaging_RemotingMessage/*W WZend_Amf_Value_Messaging_ErrorMessage/,V [Zend_Amf_Value_Messaging_CommandMessage/*U WZend_Amf_Value_Messaging_AsyncMessage/-T ]Zend_Amf_Value_Messaging_ArrayCollection/0S cZend_Amf_Value_Messaging_AcknowledgeMessage/-R ]Zend_Amf_Value_Messaging_AbstractMessage/!Q EZend_Amf_Value_MessageHeader/P AZend_Amf_Value_MessageBody/O =Zend_Amf_Value_ByteArray/N AZend_Amf_Util_BinaryStream/M +Zend_Amf_Server/L ?Zend_Amf_Server_Exception/K /Zend_Amf_Response/J 9Zend_Amf_Response_Http/I -Zend_Amf_Request/H 7Zend_Amf_Request_Http/G ?Zend_Amf_Parse_TypeLoader/F ?Zend_Amf_Parse_Serializer/#E IZend_Amf_Parse_Resource_Stream/(D SZend_Amf_Parse_Resource_MysqlResult/)C UZend_Amf_Parse_Resource_MysqliResult/ B CZend_Amf_Parse_OutputStream/A AZend_Amf_Parse_InputStream/ @ CZend_Amf_Parse_Deserializer/#? IZend_Amf_Parse_Amf3_Serializer/%> MZend_Amf_Parse_Amf3_Deserializer/#= IZend_Amf_Parse_Amf0_Serializer/%< MZend_Amf_Parse_Amf0_Deserializer/; 1Zend_Amf_Exception/: 1Zend_Amf_Constants/9 9Zend_Amf_Auth_Abstract/ 8 CZend_Amf_Adobe_Introspector/7 AZend_Amf_Adobe_DbInspector/6 3Zend_Amf_Adobe_Auth/5 Zend_Acl/4 'Zend_Acl_Role/3 9Zend_Acl_Role_Registry/%2 MZend_Acl_Role_Registry_Exception/1 /Zend_Acl_Resource/0 1Zend_Acl_Exception// /Zend_XmlRpc_Value.. =Zend_XmlRpc_Value_Struct.- =Zend_XmlRpc_Value_String., =Zend_XmlRpc_Value_Scalar.+ 7Zend_XmlRpc_Value_Nil.* ?Zend_XmlRpc_Value_Integer. ) CZend_XmlRpc_Value_Exception.( =Zend_XmlRpc_Value_Double.' AZend_XmlRpc_Value_DateTime.!& EZend_XmlRpc_Value_Collection.% ?Zend_XmlRpc_Value_Boolean.!$ EZend_XmlRpc_Value_BigInteger.# =Zend_XmlRpc_Value_Base64." ;Zend_XmlRpc_Value_Array.! 1Zend_XmlRpc_Server.  ?Zend_XmlRpc_Server_System. =Zend_XmlRpc_Server_Fault.! EZend_XmlRpc_Server_Exception. =Zend_XmlRpc_Server_Cache. 5Zend_XmlRpc_Response. ?Zend_XmlRpc_Response_Http. 3Zend_XmlRpc_Request. ?Zend_XmlRpc_Request_Stdin. =Zend_XmlRpc_Request_Http.$ KZend_XmlRpc_Generator_XmlWriter., [Zend_XmlRpc_Generator_GeneratorAbstract.& OZend_XmlRpc_Generator_DomDocument. /Zend_XmlRpc_Fault. 7Zend_XmlRpc_Exception. 1Zend_XmlRpc_Client.# IZend_XmlRpc_Client_ServerProxy.+ YZend_XmlRpc_Client_ServerIntrospection.+ YZend_XmlRpc_Client_IntrospectException.   V  H]4Id6e7



j
5
			r	5fK$l5hD( ~R+{T.tW2g=k>                                                     (5 SZend_InfoCard_Xml_KeyInfo_Interface/(4 SZend_InfoCard_Xml_Element_Interface/*3 WZend_InfoCard_Xml_Assertion_Interface/-2 ]Zend_InfoCard_Cipher_Symmetric_Interface/71 qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface/70 qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interface/+/ YZend_InfoCard_Cipher_Pki_Rsa_Interface/'. QZend_InfoCard_Cipher_Pki_Interface/$- KZend_InfoCard_Adapter_Interface/$, KZend_Http_Client_Adapter_Stream/'+ QZend_Http_Client_Adapter_Interface/* AZend_Gdata_App_MediaSource/.) _Zend_Form_Decorator_Marker_File_Interface/"( GZend_Form_Decorator_Interface/' 7Zend_Filter_Interface/"& GZend_Filter_Encrypt_Interface/+% YZend_Filter_Compress_CompressInterface/0$ cZend_Feed_Writer_Renderer_RendererInterface/1# eZend_Feed_Writer_Extension_RendererInterface/#" IZend_Feed_Reader_FeedInterface/$! KZend_Feed_Reader_EntryInterface/7  qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface/- ]Zend_Feed_Pubsubhubbub_CallbackInterface/  CZend_Feed_Builder_Interface/  CZend_Db_Statement_Interface/$ KZend_Currency_CurrencyInterface/) UZend_Crypt_Math_BigInteger_Interface/+ YZend_Controller_Router_Route_Interface/% MZend_Controller_Router_Interface/) UZend_Controller_Dispatcher_Interface/% MZend_Controller_Action_Interface/ 5Zend_Captcha_Adapter/! EZend_Cache_Backend_Interface/) UZend_Cache_Backend_ExtendedInterface/  CZend_Auth_Storage_Interface/  CZend_Auth_Adapter_Interface/. _Zend_Auth_Adapter_Http_Resolver_Interface/' QZend_Application_Resource_Resource/4 kZend_Application_Bootstrap_ResourceBootstrapper/, [Zend_Application_Bootstrap_Bootstrapper/ ;Zend_Acl_Role_Interface/  CZend_Acl_Resource_Interface/ ?Zend_Acl_Assert_Interface/#
 IZend_Wildfire_Plugin_Interface.$	 KZend_Wildfire_Channel_Interface. 3Zend_View_Interface.' QZend_View_Helper_Navigation_Helper. AZend_View_Helper_Interface. ;Zend_Validate_Interface.+ YZend_Validate_Barcode_AdapterInterface.3 iZend_Tool_Project_Profile_FileParser_Interface.: wZend_Tool_Project_Context_System_TopLevelRestrictable.5 mZend_Tool_Project_Context_System_NotOverwritable./  aZend_Tool_Project_Context_System_Interface.( SZend_Tool_Project_Context_Interface.+~ YZend_Tool_Framework_Registry_Interface.2} gZend_Tool_Framework_Registry_EnabledInterface.-| ]Zend_Tool_Framework_Provider_Pretendable.+{ YZend_Tool_Framework_Provider_Interface..z _Zend_Tool_Framework_Provider_Interactable.;y yZend_Tool_Framework_Provider_DocblockManifestInterface.+x YZend_Tool_Framework_Metadata_Interface..w _Zend_Tool_Framework_Metadata_Attributable.6v oZend_Tool_Framework_Manifest_ProviderManifestable.6u oZend_Tool_Framework_Manifest_MetadataManifestable.+t YZend_Tool_Framework_Manifest_Interface.+s YZend_Tool_Framework_Manifest_Indexable.4r kZend_Tool_Framework_Manifest_ActionManifestable.)q UZend_Tool_Framework_Loader_Interface.8p sZend_Tool_Framework_Client_Storage_AdapterInterface.Do 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface.;n yZend_Tool_Framework_Client_Interactive_OutputInterface.:m wZend_Tool_Framework_Client_Interactive_InputInterface.)l UZend_Tool_Framework_Action_Interface.(k SZend_Text_Table_Decorator_Interface.j /Zend_Tag_Taggable.&i OZend_Soap_Wsdl_Strategy_Interface.%h MZend_Session_Validator_Interface.'g QZend_Session_SaveHandler_Interface.If Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Interface.e 7Zend_Server_Interface.-d ]Zend_Serializer_Adapter_AdapterInterface.4c kZend_Search_Lucene_Search_Highlighter_Interface.!b EZend_Search_Lucene_Interface.3a iZend_Search_Lucene_Index_TermsStream_Interface.$` KZend_Queue_Stomp_FrameInterface.   i  hDxU3b@bApK+



}
[
3
					f	B	 {hN4\4R&R,pR:lF*n2[&                                  '` QZend_Controller_Action_Helper_Json/1_ eZend_Controller_Action_Helper_FlashMessenger/0^ cZend_Controller_Action_Helper_ContextSwitch/(] SZend_Controller_Action_Helper_Cache/<\ {Zend_Controller_Action_Helper_AutoCompleteScriptaculous/3[ iZend_Controller_Action_Helper_AutoCompleteDojo/8Z sZend_Controller_Action_Helper_AutoComplete_Abstract/.Y _Zend_Controller_Action_Helper_AjaxContext/.X _Zend_Controller_Action_Helper_ActionStack/+W YZend_Controller_Action_Helper_Abstract/%V MZend_Controller_Action_Exception/U 3Zend_Console_Getopt/"T GZend_Console_Getopt_Exception/S #Zend_Config/R +Zend_Config_Xml/Q 1Zend_Config_Writer/P 9Zend_Config_Writer_Xml/O 9Zend_Config_Writer_Ini/$N KZend_Config_Writer_FileAbstract/M =Zend_Config_Writer_Array/L +Zend_Config_Ini/K 7Zend_Config_Exception/$J KZend_CodeGenerator_Php_Property/1I eZend_CodeGenerator_Php_Property_DefaultValue/%H MZend_CodeGenerator_Php_Parameter/2G gZend_CodeGenerator_Php_Parameter_DefaultValue/"F GZend_CodeGenerator_Php_Method/,E [Zend_CodeGenerator_Php_Member_Container/+D YZend_CodeGenerator_Php_Member_Abstract/ C CZend_CodeGenerator_Php_File/%B MZend_CodeGenerator_Php_Exception/$A KZend_CodeGenerator_Php_Docblock/(@ SZend_CodeGenerator_Php_Docblock_Tag//? aZend_CodeGenerator_Php_Docblock_Tag_Return/.> _Zend_CodeGenerator_Php_Docblock_Tag_Param/0= cZend_CodeGenerator_Php_Docblock_Tag_License/!< EZend_CodeGenerator_Php_Class/ ; CZend_CodeGenerator_Php_Body/$: KZend_CodeGenerator_Php_Abstract/!9 EZend_CodeGenerator_Exception/ 8 CZend_CodeGenerator_Abstract/7 /Zend_Captcha_Word/6 9Zend_Captcha_ReCaptcha/5 1Zend_Captcha_Image/4 3Zend_Captcha_Figlet/3 9Zend_Captcha_Exception/2 /Zend_Captcha_Dumb/1 /Zend_Captcha_Base/0 !Zend_Cache// 1Zend_Cache_Manager/. =Zend_Cache_Frontend_Page/- AZend_Cache_Frontend_Output/!, EZend_Cache_Frontend_Function/+ =Zend_Cache_Frontend_File/* ?Zend_Cache_Frontend_Class/ ) CZend_Cache_Frontend_Capture/( 5Zend_Cache_Exception/' +Zend_Cache_Core/& 1Zend_Cache_Backend/"% GZend_Cache_Backend_ZendServer/($ SZend_Cache_Backend_ZendServer_ShMem/'# QZend_Cache_Backend_ZendServer_Disk/$" KZend_Cache_Backend_ZendPlatform/! ?Zend_Cache_Backend_Xcache/!  EZend_Cache_Backend_TwoLevels/ ;Zend_Cache_Backend_Test/ ?Zend_Cache_Backend_Static/ ?Zend_Cache_Backend_Sqlite/! EZend_Cache_Backend_Memcached/ ;Zend_Cache_Backend_File/! EZend_Cache_Backend_BlackHole/ 9Zend_Cache_Backend_Apc/ %Zend_Barcode/+ YZend_Barcode_Renderer_RendererAbstract/ ?Zend_Barcode_Renderer_Pdf/  CZend_Barcode_Renderer_Image/$ KZend_Barcode_Renderer_Exception/ =Zend_Barcode_Object_Upce/ =Zend_Barcode_Object_Upca/" GZend_Barcode_Object_Royalmail/  CZend_Barcode_Object_Postnet/ AZend_Barcode_Object_Planet/' QZend_Barcode_Object_ObjectAbstract/! EZend_Barcode_Object_Leitcode/ ?Zend_Barcode_Object_Itf14/" GZend_Barcode_Object_Identcode/"
 GZend_Barcode_Object_Exception/	 ?Zend_Barcode_Object_Error/ =Zend_Barcode_Object_Ean8/ =Zend_Barcode_Object_Ean5/ =Zend_Barcode_Object_Ean2/ ?Zend_Barcode_Object_Ean13/ AZend_Barcode_Object_Code39/* WZend_Barcode_Object_Code25interleaved/ AZend_Barcode_Object_Code25/ 9Zend_Barcode_Exception/  Zend_Auth/ ?Zend_Auth_Storage_Session/$~ KZend_Auth_Storage_NonPersistent/ } CZend_Auth_Storage_Exception/| -Zend_Auth_Result/{ 3Zend_Auth_Exception/z =Zend_Auth_Adapter_OpenId/y 9Zend_Auth_Adapter_Ldap/x AZend_Auth_Adapter_InfoCard/   l  r8hF( Y0c9mD



j
?
					c	K	!pM+z^L+V7fF$gF'lA rG&eK%   L 5Zend_Db_Table_Rowset/#K IZend_Db_Table_Rowset_Exception/"J GZend_Db_Table_Rowset_Abstract/I /Zend_Db_Table_Row/ H CZend_Db_Table_Row_Exception/G AZend_Db_Table_Row_Abstract/F ;Zend_Db_Table_Exception/E =Zend_Db_Table_Definition/D 9Zend_Db_Table_Abstract/C /Zend_Db_Statement/B =Zend_Db_Statement_Sqlsrv/'A QZend_Db_Statement_Sqlsrv_Exception/@ 7Zend_Db_Statement_Pdo/? ?Zend_Db_Statement_Pdo_Oci/> ?Zend_Db_Statement_Pdo_Ibm/= =Zend_Db_Statement_Oracle/'< QZend_Db_Statement_Oracle_Exception/; =Zend_Db_Statement_Mysqli/': QZend_Db_Statement_Mysqli_Exception/ 9 CZend_Db_Statement_Exception/8 7Zend_Db_Statement_Db2/$7 KZend_Db_Statement_Db2_Exception/6 )Zend_Db_Select/5 =Zend_Db_Select_Exception/4 -Zend_Db_Profiler/3 9Zend_Db_Profiler_Query/2 =Zend_Db_Profiler_Firebug/1 AZend_Db_Profiler_Exception/0 %Zend_Db_Expr// /Zend_Db_Exception/. 9Zend_Db_Adapter_Sqlsrv/%- MZend_Db_Adapter_Sqlsrv_Exception/, AZend_Db_Adapter_Pdo_Sqlite/+ ?Zend_Db_Adapter_Pdo_Pgsql/* ;Zend_Db_Adapter_Pdo_Oci/) ?Zend_Db_Adapter_Pdo_Mysql/( ?Zend_Db_Adapter_Pdo_Mssql/' ;Zend_Db_Adapter_Pdo_Ibm/ & CZend_Db_Adapter_Pdo_Ibm_Ids/ % CZend_Db_Adapter_Pdo_Ibm_Db2/!$ EZend_Db_Adapter_Pdo_Abstract/# 9Zend_Db_Adapter_Oracle/%" MZend_Db_Adapter_Oracle_Exception/! 9Zend_Db_Adapter_Mysqli/%  MZend_Db_Adapter_Mysqli_Exception/ ?Zend_Db_Adapter_Exception/ 3Zend_Db_Adapter_Db2/" GZend_Db_Adapter_Db2_Exception/ =Zend_Db_Adapter_Abstract/ Zend_Date/ 3Zend_Date_Exception/ 5Zend_Date_DateObject/ -Zend_Date_Cities/ 'Zend_Currency/ ;Zend_Currency_Exception/ !Zend_Crypt/ )Zend_Crypt_Rsa/ 1Zend_Crypt_Rsa_Key/ ?Zend_Crypt_Rsa_Key_Public/ AZend_Crypt_Rsa_Key_Private/ +Zend_Crypt_Math/ ?Zend_Crypt_Math_Exception/ AZend_Crypt_Math_BigInteger/# IZend_Crypt_Math_BigInteger_Gmp/) UZend_Crypt_Math_BigInteger_Exception/& OZend_Crypt_Math_BigInteger_Bcmath/
 +Zend_Crypt_Hmac/	 ?Zend_Crypt_Hmac_Exception/ 5Zend_Crypt_Exception/ =Zend_Crypt_DiffieHellman/' QZend_Crypt_DiffieHellman_Exception/! EZend_Controller_Router_Route/( SZend_Controller_Router_Route_Static/' QZend_Controller_Router_Route_Regex/( SZend_Controller_Router_Route_Module/* WZend_Controller_Router_Route_Hostname/'  QZend_Controller_Router_Route_Chain/* WZend_Controller_Router_Route_Abstract/#~ IZend_Controller_Router_Rewrite/%} MZend_Controller_Router_Exception/$| KZend_Controller_Router_Abstract/*{ WZend_Controller_Response_HttpTestCase/"z GZend_Controller_Response_Http/'y QZend_Controller_Response_Exception/!x EZend_Controller_Response_Cli/&w OZend_Controller_Response_Abstract/#v IZend_Controller_Request_Simple/)u UZend_Controller_Request_HttpTestCase/!t EZend_Controller_Request_Http/&s OZend_Controller_Request_Exception/&r OZend_Controller_Request_Apache404/%q MZend_Controller_Request_Abstract/&p OZend_Controller_Plugin_PutHandler/(o SZend_Controller_Plugin_ErrorHandler/"n GZend_Controller_Plugin_Broker/'m QZend_Controller_Plugin_ActionStack/$l KZend_Controller_Plugin_Abstract/k 7Zend_Controller_Front/j ?Zend_Controller_Exception/(i SZend_Controller_Dispatcher_Standard/)h UZend_Controller_Dispatcher_Exception/(g SZend_Controller_Dispatcher_Abstract/f 9Zend_Controller_Action/(e SZend_Controller_Action_HelperBroker/6d oZend_Controller_Action_HelperBroker_PriorityStack//c aZend_Controller_Action_Helper_ViewRenderer/&b OZend_Controller_Action_Helper_Url/-a ]Zend_Controller_Action_Helper_Redirector/   c  fO3rB[7gBf9




_
7
				g	P	/X1a4n?b=f@kM6`F,]1                                                 // aZend_Feed_Pubsubhubbub_Model_ModelAbstract/(. SZend_Feed_Pubsubhubbub_HttpResponse/%- MZend_Feed_Pubsubhubbub_Exception/,, [Zend_Feed_Pubsubhubbub_CallbackAbstract/+ 3Zend_Feed_Exception/* 3Zend_Feed_Entry_Rss/) 5Zend_Feed_Entry_Atom/( =Zend_Feed_Entry_Abstract/' /Zend_Feed_Element/& /Zend_Feed_Builder/% =Zend_Feed_Builder_Header/$$ KZend_Feed_Builder_Header_Itunes/ # CZend_Feed_Builder_Exception/" ;Zend_Feed_Builder_Entry/! )Zend_Feed_Atom/  1Zend_Feed_Abstract/ )Zend_Exception/ )Zend_Dom_Query/ 7Zend_Dom_Query_Result/ =Zend_Dom_Query_Css2Xpath/ 1Zend_Dom_Exception/ Zend_Dojo/) UZend_Dojo_View_Helper_VerticalSlider/, [Zend_Dojo_View_Helper_ValidationTextBox/& OZend_Dojo_View_Helper_TimeTextBox/" GZend_Dojo_View_Helper_TextBox/# IZend_Dojo_View_Helper_Textarea/' QZend_Dojo_View_Helper_TabContainer/' QZend_Dojo_View_Helper_SubmitButton/) UZend_Dojo_View_Helper_StackContainer/) UZend_Dojo_View_Helper_SplitContainer/! EZend_Dojo_View_Helper_Slider/) UZend_Dojo_View_Helper_SimpleTextarea/& OZend_Dojo_View_Helper_RadioButton/* WZend_Dojo_View_Helper_PasswordTextBox/( SZend_Dojo_View_Helper_NumberTextBox/( SZend_Dojo_View_Helper_NumberSpinner/+
 YZend_Dojo_View_Helper_HorizontalSlider/	 AZend_Dojo_View_Helper_Form/* WZend_Dojo_View_Helper_FilteringSelect/! EZend_Dojo_View_Helper_Editor/ AZend_Dojo_View_Helper_Dojo/) UZend_Dojo_View_Helper_Dojo_Container/) UZend_Dojo_View_Helper_DijitContainer/  CZend_Dojo_View_Helper_Dijit/& OZend_Dojo_View_Helper_DateTextBox/& OZend_Dojo_View_Helper_CustomDijit/*  WZend_Dojo_View_Helper_CurrencyTextBox/& OZend_Dojo_View_Helper_ContentPane/#~ IZend_Dojo_View_Helper_ComboBox/#} IZend_Dojo_View_Helper_CheckBox/!| EZend_Dojo_View_Helper_Button/*{ WZend_Dojo_View_Helper_BorderContainer/(z SZend_Dojo_View_Helper_AccordionPane/-y ]Zend_Dojo_View_Helper_AccordionContainer/x =Zend_Dojo_View_Exception/w )Zend_Dojo_Form/v 9Zend_Dojo_Form_SubForm/*u WZend_Dojo_Form_Element_VerticalSlider/-t ]Zend_Dojo_Form_Element_ValidationTextBox/'s QZend_Dojo_Form_Element_TimeTextBox/#r IZend_Dojo_Form_Element_TextBox/$q KZend_Dojo_Form_Element_Textarea/(p SZend_Dojo_Form_Element_SubmitButton/"o GZend_Dojo_Form_Element_Slider/*n WZend_Dojo_Form_Element_SimpleTextarea/'m QZend_Dojo_Form_Element_RadioButton/+l YZend_Dojo_Form_Element_PasswordTextBox/)k UZend_Dojo_Form_Element_NumberTextBox/)j UZend_Dojo_Form_Element_NumberSpinner/,i [Zend_Dojo_Form_Element_HorizontalSlider/+h YZend_Dojo_Form_Element_FilteringSelect/"g GZend_Dojo_Form_Element_Editor/&f OZend_Dojo_Form_Element_DijitMulti/!e EZend_Dojo_Form_Element_Dijit/'d QZend_Dojo_Form_Element_DateTextBox/+c YZend_Dojo_Form_Element_CurrencyTextBox/$b KZend_Dojo_Form_Element_ComboBox/$a KZend_Dojo_Form_Element_CheckBox/"` GZend_Dojo_Form_Element_Button/ _ CZend_Dojo_Form_DisplayGroup/*^ WZend_Dojo_Form_Decorator_TabContainer/,] [Zend_Dojo_Form_Decorator_StackContainer/,\ [Zend_Dojo_Form_Decorator_SplitContainer/'[ QZend_Dojo_Form_Decorator_DijitForm/*Z WZend_Dojo_Form_Decorator_DijitElement/,Y [Zend_Dojo_Form_Decorator_DijitContainer/)X UZend_Dojo_Form_Decorator_ContentPane/-W ]Zend_Dojo_Form_Decorator_BorderContainer/+V YZend_Dojo_Form_Decorator_AccordionPane/0U cZend_Dojo_Form_Decorator_AccordionContainer/T 3Zend_Dojo_Exception/S )Zend_Dojo_Data/R 5Zend_Dojo_BuildLayer/Q !Zend_Debug/P Zend_Db/O 'Zend_Db_Table/N 5Zend_Db_Table_Select/#M IZend_Db_Table_Select_Exception/   `  rH)vR/|CsCO




b
I
3
				I	q8 XmA~K+ lR8sR1|dA~^;      +Zend_Filter_Int/ /Zend_Filter_Input/ 7Zend_Filter_Inflector/ =Zend_Filter_HtmlEntities/ AZend_Filter_File_UpperCase/
 ;Zend_Filter_File_Rename/	 AZend_Filter_File_LowerCase/ =Zend_Filter_File_Encrypt/ =Zend_Filter_File_Decrypt/ 7Zend_Filter_Exception/ 3Zend_Filter_Encrypt/  CZend_Filter_Encrypt_Openssl/ AZend_Filter_Encrypt_Mcrypt/ +Zend_Filter_Dir/ 1Zend_Filter_Digits/  3Zend_Filter_Decrypt/ 9Zend_Filter_Decompress/~ 5Zend_Filter_Compress/} =Zend_Filter_Compress_Zip/| =Zend_Filter_Compress_Tar/{ =Zend_Filter_Compress_Rar/z =Zend_Filter_Compress_Lzf/y ;Zend_Filter_Compress_Gz/*x WZend_Filter_Compress_CompressAbstract/w =Zend_Filter_Compress_Bz2/v 5Zend_Filter_Callback/u 3Zend_Filter_Boolean/t 5Zend_Filter_BaseName/s /Zend_Filter_Alpha/r /Zend_Filter_Alnum/q 1Zend_File_Transfer/!p EZend_File_Transfer_Exception/$o KZend_File_Transfer_Adapter_Http/(n SZend_File_Transfer_Adapter_Abstract/m Zend_Feed/l -Zend_Feed_Writer/k ;Zend_Feed_Writer_Source//j aZend_Feed_Writer_Renderer_RendererAbstract/'i QZend_Feed_Writer_Renderer_Feed_Rss/(h SZend_Feed_Writer_Renderer_Feed_Atom//g aZend_Feed_Writer_Renderer_Feed_Atom_Source/5f mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract/(e SZend_Feed_Writer_Renderer_Entry_Rss/)d UZend_Feed_Writer_Renderer_Entry_Atom/1c eZend_Feed_Writer_Renderer_Entry_Atom_Deleted/b 7Zend_Feed_Writer_Feed/'a QZend_Feed_Writer_Feed_FeedAbstract/<` {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry/8_ sZend_Feed_Writer_Extension_Threading_Renderer_Entry/4^ kZend_Feed_Writer_Extension_Slash_Renderer_Entry/0] cZend_Feed_Writer_Extension_RendererAbstract/4\ kZend_Feed_Writer_Extension_ITunes_Renderer_Feed/5[ mZend_Feed_Writer_Extension_ITunes_Renderer_Entry/+Z YZend_Feed_Writer_Extension_ITunes_Feed/,Y [Zend_Feed_Writer_Extension_ITunes_Entry/8X sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed/9W uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry/6V oZend_Feed_Writer_Extension_Content_Renderer_Entry/2U gZend_Feed_Writer_Extension_Atom_Renderer_Feed/6T oZend_Feed_Writer_Exception_InvalidMethodException/S 9Zend_Feed_Writer_Entry/R =Zend_Feed_Writer_Deleted/Q 'Zend_Feed_Rss/P -Zend_Feed_Reader/O =Zend_Feed_Reader_FeedSet/"N GZend_Feed_Reader_FeedAbstract/M ?Zend_Feed_Reader_Feed_Rss/L AZend_Feed_Reader_Feed_Atom/&K OZend_Feed_Reader_Feed_Atom_Source/3J iZend_Feed_Reader_Extension_WellFormedWeb_Entry/,I [Zend_Feed_Reader_Extension_Thread_Entry/0H cZend_Feed_Reader_Extension_Syndication_Feed/+G YZend_Feed_Reader_Extension_Slash_Entry/,F [Zend_Feed_Reader_Extension_Podcast_Feed/-E ]Zend_Feed_Reader_Extension_Podcast_Entry/,D [Zend_Feed_Reader_Extension_FeedAbstract/-C ]Zend_Feed_Reader_Extension_EntryAbstract//B aZend_Feed_Reader_Extension_DublinCore_Feed/0A cZend_Feed_Reader_Extension_DublinCore_Entry/4@ kZend_Feed_Reader_Extension_CreativeCommons_Feed/5? mZend_Feed_Reader_Extension_CreativeCommons_Entry/-> ]Zend_Feed_Reader_Extension_Content_Entry/)= UZend_Feed_Reader_Extension_Atom_Feed/*< WZend_Feed_Reader_Extension_Atom_Entry/#; IZend_Feed_Reader_EntryAbstract/: AZend_Feed_Reader_Entry_Rss/ 9 CZend_Feed_Reader_Entry_Atom/ 8 CZend_Feed_Reader_Collection/37 iZend_Feed_Reader_Collection_CollectionAbstract/)6 UZend_Feed_Reader_Collection_Category/'5 QZend_Feed_Reader_Collection_Author/4 9Zend_Feed_Pubsubhubbub/&3 OZend_Feed_Pubsubhubbub_Subscriber//2 aZend_Feed_Pubsubhubbub_Subscriber_Callback/%1 MZend_Feed_Pubsubhubbub_Publisher/.0 _Zend_Feed_Pubsubhubbub_Model_Subscription/   i  sV4\-W. xd?}Z4



}
Y
7
				w	X	7	oO/~]<xS%	tL"|T+iCzP'kO(   !x EZend_Gdata_App_HttpException/$w KZend_Gdata_App_FeedSourceParent/#v IZend_Gdata_App_FeedEntryParent/u 3Zend_Gdata_App_Feed/t =Zend_Gdata_App_Extension/!s EZend_Gdata_App_Extension_Uri/%r MZend_Gdata_App_Extension_Updated/#q IZend_Gdata_App_Extension_Title/"p GZend_Gdata_App_Extension_Text/%o MZend_Gdata_App_Extension_Summary/&n OZend_Gdata_App_Extension_Subtitle/$m KZend_Gdata_App_Extension_Source/$l KZend_Gdata_App_Extension_Rights/'k QZend_Gdata_App_Extension_Published/$j KZend_Gdata_App_Extension_Person/"i GZend_Gdata_App_Extension_Name/"h GZend_Gdata_App_Extension_Logo/"g GZend_Gdata_App_Extension_Link/ f CZend_Gdata_App_Extension_Id/"e GZend_Gdata_App_Extension_Icon/'d QZend_Gdata_App_Extension_Generator/#c IZend_Gdata_App_Extension_Email/%b MZend_Gdata_App_Extension_Element/$a KZend_Gdata_App_Extension_Edited/#` IZend_Gdata_App_Extension_Draft/%_ MZend_Gdata_App_Extension_Control/)^ UZend_Gdata_App_Extension_Contributor/%] MZend_Gdata_App_Extension_Content/&\ OZend_Gdata_App_Extension_Category/$[ KZend_Gdata_App_Extension_Author/Z =Zend_Gdata_App_Exception/Y 5Zend_Gdata_App_Entry/,X [Zend_Gdata_App_CaptchaRequiredException/#W IZend_Gdata_App_BaseMediaSource/V 3Zend_Gdata_App_Base/*U WZend_Gdata_App_BadMethodCallException/!T EZend_Gdata_App_AuthException/S Zend_Form/R /Zend_Form_SubForm/Q 3Zend_Form_Exception/P /Zend_Form_Element/O ;Zend_Form_Element_Xhtml/N AZend_Form_Element_Textarea/M 9Zend_Form_Element_Text/L =Zend_Form_Element_Submit/K =Zend_Form_Element_Select/J ;Zend_Form_Element_Reset/I ;Zend_Form_Element_Radio/H AZend_Form_Element_Password/"G GZend_Form_Element_Multiselect/$F KZend_Form_Element_MultiCheckbox/E ;Zend_Form_Element_Multi/D ;Zend_Form_Element_Image/C =Zend_Form_Element_Hidden/B 9Zend_Form_Element_Hash/A 9Zend_Form_Element_File/ @ CZend_Form_Element_Exception/? AZend_Form_Element_Checkbox/> ?Zend_Form_Element_Captcha/= =Zend_Form_Element_Button/< 9Zend_Form_DisplayGroup/#; IZend_Form_Decorator_ViewScript/#: IZend_Form_Decorator_ViewHelper/ 9 CZend_Form_Decorator_Tooltip/(8 SZend_Form_Decorator_PrepareElements/7 ?Zend_Form_Decorator_Label/6 ?Zend_Form_Decorator_Image/ 5 CZend_Form_Decorator_HtmlTag/#4 IZend_Form_Decorator_FormErrors/%3 MZend_Form_Decorator_FormElements/2 =Zend_Form_Decorator_Form/1 =Zend_Form_Decorator_File/!0 EZend_Form_Decorator_Fieldset/"/ GZend_Form_Decorator_Exception/. AZend_Form_Decorator_Errors/$- KZend_Form_Decorator_DtDdWrapper/$, KZend_Form_Decorator_Description/ + CZend_Form_Decorator_Captcha/%* MZend_Form_Decorator_Captcha_Word/!) EZend_Form_Decorator_Callback/!( EZend_Form_Decorator_Abstract/' #Zend_Filter/+& YZend_Filter_Word_UnderscoreToSeparator/&% OZend_Filter_Word_UnderscoreToDash/+$ YZend_Filter_Word_UnderscoreToCamelCase/*# WZend_Filter_Word_SeparatorToSeparator/%" MZend_Filter_Word_SeparatorToDash/*! WZend_Filter_Word_SeparatorToCamelCase/(  SZend_Filter_Word_Separator_Abstract/& OZend_Filter_Word_DashToUnderscore/% MZend_Filter_Word_DashToSeparator/% MZend_Filter_Word_DashToCamelCase/+ YZend_Filter_Word_CamelCaseToUnderscore/* WZend_Filter_Word_CamelCaseToSeparator/% MZend_Filter_Word_CamelCaseToDash/ 7Zend_Filter_StripTags/ ?Zend_Filter_StripNewlines/ 9Zend_Filter_StringTrim/ ?Zend_Filter_StringToUpper/ ?Zend_Filter_StringToLower/ 5Zend_Filter_RealPath/ ;Zend_Filter_PregReplace/ -Zend_Filter_Null/& OZend_Filter_NormalizedToLocalized/& OZend_Filter_LocalizedToNormalized/   _  wU.g5zK!xS:h;


u
F
					e	<		uFQ#xP"}U.|V/~LpJ u]5                                 $W KZend_Gdata_Gapps_EmailListQuery/#V IZend_Gdata_Gapps_EmailListFeed/$U KZend_Gdata_Gapps_EmailListEntry/T +Zend_Gdata_Feed/S 5Zend_Gdata_Extension/R =Zend_Gdata_Extension_Who/Q AZend_Gdata_Extension_Where/P ?Zend_Gdata_Extension_When/$O KZend_Gdata_Extension_Visibility/&N OZend_Gdata_Extension_Transparency/"M GZend_Gdata_Extension_Reminder/-L ]Zend_Gdata_Extension_RecurrenceException/$K KZend_Gdata_Extension_Recurrence/ J CZend_Gdata_Extension_Rating/'I QZend_Gdata_Extension_OriginalEvent/0H cZend_Gdata_Extension_OpenSearchTotalResults/.G _Zend_Gdata_Extension_OpenSearchStartIndex/0F cZend_Gdata_Extension_OpenSearchItemsPerPage/"E GZend_Gdata_Extension_FeedLink/*D WZend_Gdata_Extension_ExtendedProperty/%C MZend_Gdata_Extension_EventStatus/#B IZend_Gdata_Extension_EntryLink/"A GZend_Gdata_Extension_Comments/&@ OZend_Gdata_Extension_AttendeeType/(? SZend_Gdata_Extension_AttendeeStatus/> +Zend_Gdata_Exif/= 5Zend_Gdata_Exif_Feed/#< IZend_Gdata_Exif_Extension_Time/#; IZend_Gdata_Exif_Extension_Tags/$: KZend_Gdata_Exif_Extension_Model/#9 IZend_Gdata_Exif_Extension_Make/"8 GZend_Gdata_Exif_Extension_Iso/,7 [Zend_Gdata_Exif_Extension_ImageUniqueId/$6 KZend_Gdata_Exif_Extension_FStop/*5 WZend_Gdata_Exif_Extension_FocalLength/$4 KZend_Gdata_Exif_Extension_Flash/'3 QZend_Gdata_Exif_Extension_Exposure/'2 QZend_Gdata_Exif_Extension_Distance/1 7Zend_Gdata_Exif_Entry/0 -Zend_Gdata_Entry// 7Zend_Gdata_DublinCore/*. WZend_Gdata_DublinCore_Extension_Title/,- [Zend_Gdata_DublinCore_Extension_Subject/+, YZend_Gdata_DublinCore_Extension_Rights/.+ _Zend_Gdata_DublinCore_Extension_Publisher/-* ]Zend_Gdata_DublinCore_Extension_Language//) aZend_Gdata_DublinCore_Extension_Identifier/+( YZend_Gdata_DublinCore_Extension_Format/0' cZend_Gdata_DublinCore_Extension_Description/)& UZend_Gdata_DublinCore_Extension_Date/,% [Zend_Gdata_DublinCore_Extension_Creator/$ +Zend_Gdata_Docs/# 7Zend_Gdata_Docs_Query/%" MZend_Gdata_Docs_DocumentListFeed/&! OZend_Gdata_Docs_DocumentListEntry/  9Zend_Gdata_ClientLogin/ 3Zend_Gdata_Calendar/! EZend_Gdata_Calendar_ListFeed/" GZend_Gdata_Calendar_ListEntry/- ]Zend_Gdata_Calendar_Extension_WebContent/+ YZend_Gdata_Calendar_Extension_Timezone/9 uZend_Gdata_Calendar_Extension_SendEventNotifications/+ YZend_Gdata_Calendar_Extension_Selected/+ YZend_Gdata_Calendar_Extension_QuickAdd/' QZend_Gdata_Calendar_Extension_Link/) UZend_Gdata_Calendar_Extension_Hidden/( SZend_Gdata_Calendar_Extension_Color/. _Zend_Gdata_Calendar_Extension_AccessLevel/# IZend_Gdata_Calendar_EventQuery/" GZend_Gdata_Calendar_EventFeed/# IZend_Gdata_Calendar_EventEntry/ -Zend_Gdata_Books/! EZend_Gdata_Books_VolumeQuery/  CZend_Gdata_Books_VolumeFeed/! EZend_Gdata_Books_VolumeEntry/+ YZend_Gdata_Books_Extension_Viewability/- ]Zend_Gdata_Books_Extension_ThumbnailLink/&
 OZend_Gdata_Books_Extension_Review/+	 YZend_Gdata_Books_Extension_PreviewLink/( SZend_Gdata_Books_Extension_InfoLink/- ]Zend_Gdata_Books_Extension_Embeddability/) UZend_Gdata_Books_Extension_BooksLink/- ]Zend_Gdata_Books_Extension_BooksCategory/. _Zend_Gdata_Books_Extension_AnnotationLink/$ KZend_Gdata_Books_CollectionFeed/% MZend_Gdata_Books_CollectionEntry/ 1Zend_Gdata_AuthSub/  )Zend_Gdata_App/$ KZend_Gdata_App_VersionException/~ 3Zend_Gdata_App_Util/#} IZend_Gdata_App_MediaFileSource/| ?Zend_Gdata_App_MediaEntry/2{ gZend_Gdata_App_LoggingHttpClientAdapterSocket/z AZend_Gdata_App_IOException/,y [Zend_Gdata_App_InvalidArgumentException/   _  nO"|U/zW>hI#uK#



{
P
&
				s	P	1	 o;QrY6c8UjAV%rD                                          (6 SZend_Gdata_Photos_Extension_Version/%5 MZend_Gdata_Photos_Extension_User/*4 WZend_Gdata_Photos_Extension_Timestamp/*3 WZend_Gdata_Photos_Extension_Thumbnail/%2 MZend_Gdata_Photos_Extension_Size/)1 UZend_Gdata_Photos_Extension_Rotation/+0 YZend_Gdata_Photos_Extension_QuotaLimit/-/ ]Zend_Gdata_Photos_Extension_QuotaCurrent/). UZend_Gdata_Photos_Extension_Position/(- SZend_Gdata_Photos_Extension_PhotoId/3, iZend_Gdata_Photos_Extension_NumPhotosRemaining/*+ WZend_Gdata_Photos_Extension_NumPhotos/)* UZend_Gdata_Photos_Extension_Nickname/%) MZend_Gdata_Photos_Extension_Name/2( gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum/)' UZend_Gdata_Photos_Extension_Location/#& IZend_Gdata_Photos_Extension_Id/'% QZend_Gdata_Photos_Extension_Height/2$ gZend_Gdata_Photos_Extension_CommentingEnabled/-# ]Zend_Gdata_Photos_Extension_CommentCount/'" QZend_Gdata_Photos_Extension_Client/)! UZend_Gdata_Photos_Extension_Checksum/*  WZend_Gdata_Photos_Extension_BytesUsed/( SZend_Gdata_Photos_Extension_AlbumId/' QZend_Gdata_Photos_Extension_Access/# IZend_Gdata_Photos_CommentEntry/! EZend_Gdata_Photos_AlbumQuery/  CZend_Gdata_Photos_AlbumFeed/! EZend_Gdata_Photos_AlbumEntry/ 3Zend_Gdata_MimeFile/ ?Zend_Gdata_MimeBodyString/ AZend_Gdata_MediaMimeStream/ -Zend_Gdata_Media/ 7Zend_Gdata_Media_Feed/* WZend_Gdata_Media_Extension_MediaTitle/. _Zend_Gdata_Media_Extension_MediaThumbnail/) UZend_Gdata_Media_Extension_MediaText/0 cZend_Gdata_Media_Extension_MediaRestriction/+ YZend_Gdata_Media_Extension_MediaRating/+ YZend_Gdata_Media_Extension_MediaPlayer/- ]Zend_Gdata_Media_Extension_MediaKeywords/) UZend_Gdata_Media_Extension_MediaHash/* WZend_Gdata_Media_Extension_MediaGroup/0 cZend_Gdata_Media_Extension_MediaDescription/+
 YZend_Gdata_Media_Extension_MediaCredit/.	 _Zend_Gdata_Media_Extension_MediaCopyright/, [Zend_Gdata_Media_Extension_MediaContent/- ]Zend_Gdata_Media_Extension_MediaCategory/ 9Zend_Gdata_Media_Entry/ AZend_Gdata_Kind_EventEntry/ 7Zend_Gdata_HttpClient/* WZend_Gdata_HttpAdapterStreamingSocket/) UZend_Gdata_HttpAdapterStreamingProxy/ /Zend_Gdata_Health/  ;Zend_Gdata_Health_Query/& OZend_Gdata_Health_ProfileListFeed/'~ QZend_Gdata_Health_ProfileListEntry/"} GZend_Gdata_Health_ProfileFeed/#| IZend_Gdata_Health_ProfileEntry/${ KZend_Gdata_Health_Extension_Ccr/z )Zend_Gdata_Geo/y 3Zend_Gdata_Geo_Feed/$x KZend_Gdata_Geo_Extension_GmlPos/&w OZend_Gdata_Geo_Extension_GmlPoint/)v UZend_Gdata_Geo_Extension_GeoRssWhere/u 5Zend_Gdata_Geo_Entry/t -Zend_Gdata_Gbase/"s GZend_Gdata_Gbase_SnippetQuery/!r EZend_Gdata_Gbase_SnippetFeed/"q GZend_Gdata_Gbase_SnippetEntry/p 9Zend_Gdata_Gbase_Query/o AZend_Gdata_Gbase_ItemQuery/n ?Zend_Gdata_Gbase_ItemFeed/m AZend_Gdata_Gbase_ItemEntry/l 7Zend_Gdata_Gbase_Feed/-k ]Zend_Gdata_Gbase_Extension_BaseAttribute/j 9Zend_Gdata_Gbase_Entry/i -Zend_Gdata_Gapps/h AZend_Gdata_Gapps_UserQuery/g ?Zend_Gdata_Gapps_UserFeed/f AZend_Gdata_Gapps_UserEntry/&e OZend_Gdata_Gapps_ServiceException/d 9Zend_Gdata_Gapps_Query/#c IZend_Gdata_Gapps_NicknameQuery/"b GZend_Gdata_Gapps_NicknameFeed/#a IZend_Gdata_Gapps_NicknameEntry/%` MZend_Gdata_Gapps_Extension_Quota/(_ SZend_Gdata_Gapps_Extension_Nickname/$^ KZend_Gdata_Gapps_Extension_Name/%] MZend_Gdata_Gapps_Extension_Login/)\ UZend_Gdata_Gapps_Extension_EmailList/[ 9Zend_Gdata_Gapps_Error/-Z ]Zend_Gdata_Gapps_EmailListRecipientQuery/,Y [Zend_Gdata_Gapps_EmailListRecipientFeed/-X ]Zend_Gdata_Gapps_EmailListRecipientEntry/   [  b=|R)o>]-_7



k
@
				X	)tJX,tA]+sGmH"nAx]J$                      # IZend_Http_Client_Adapter_Proxy/' QZend_Http_Client_Adapter_Exception/" GZend_Http_Client_Adapter_Curl/ !Zend_Gdata/ 1Zend_Gdata_YouTube/" GZend_Gdata_YouTube_VideoQuery/! EZend_Gdata_YouTube_VideoFeed/"
 GZend_Gdata_YouTube_VideoEntry/(	 SZend_Gdata_YouTube_UserProfileEntry/( SZend_Gdata_YouTube_SubscriptionFeed/) UZend_Gdata_YouTube_SubscriptionEntry/) UZend_Gdata_YouTube_PlaylistVideoFeed/* WZend_Gdata_YouTube_PlaylistVideoEntry/( SZend_Gdata_YouTube_PlaylistListFeed/) UZend_Gdata_YouTube_PlaylistListEntry/" GZend_Gdata_YouTube_MediaEntry/! EZend_Gdata_YouTube_InboxFeed/"  GZend_Gdata_YouTube_InboxEntry/) UZend_Gdata_YouTube_Extension_VideoId/*~ WZend_Gdata_YouTube_Extension_Username/*} WZend_Gdata_YouTube_Extension_Uploaded/'| QZend_Gdata_YouTube_Extension_Token/({ SZend_Gdata_YouTube_Extension_Status/,z [Zend_Gdata_YouTube_Extension_Statistics/'y QZend_Gdata_YouTube_Extension_State/(x SZend_Gdata_YouTube_Extension_School/-w ]Zend_Gdata_YouTube_Extension_ReleaseDate/.v _Zend_Gdata_YouTube_Extension_Relationship/*u WZend_Gdata_YouTube_Extension_Recorded/&t OZend_Gdata_YouTube_Extension_Racy/-s ]Zend_Gdata_YouTube_Extension_QueryString/)r UZend_Gdata_YouTube_Extension_Private/*q WZend_Gdata_YouTube_Extension_Position//p aZend_Gdata_YouTube_Extension_PlaylistTitle/,o [Zend_Gdata_YouTube_Extension_PlaylistId/,n [Zend_Gdata_YouTube_Extension_Occupation/)m UZend_Gdata_YouTube_Extension_NoEmbed/'l QZend_Gdata_YouTube_Extension_Music/(k SZend_Gdata_YouTube_Extension_Movies/-j ]Zend_Gdata_YouTube_Extension_MediaRating/,i [Zend_Gdata_YouTube_Extension_MediaGroup/-h ]Zend_Gdata_YouTube_Extension_MediaCredit/.g _Zend_Gdata_YouTube_Extension_MediaContent/*f WZend_Gdata_YouTube_Extension_Location/&e OZend_Gdata_YouTube_Extension_Link/*d WZend_Gdata_YouTube_Extension_LastName/*c WZend_Gdata_YouTube_Extension_Hometown/)b UZend_Gdata_YouTube_Extension_Hobbies/(a SZend_Gdata_YouTube_Extension_Gender/+` YZend_Gdata_YouTube_Extension_FirstName/*_ WZend_Gdata_YouTube_Extension_Duration/-^ ]Zend_Gdata_YouTube_Extension_Description/+] YZend_Gdata_YouTube_Extension_CountHint/)\ UZend_Gdata_YouTube_Extension_Control/)[ UZend_Gdata_YouTube_Extension_Company/'Z QZend_Gdata_YouTube_Extension_Books/%Y MZend_Gdata_YouTube_Extension_Age/)X UZend_Gdata_YouTube_Extension_AboutMe/#W IZend_Gdata_YouTube_ContactFeed/$V KZend_Gdata_YouTube_ContactEntry/#U IZend_Gdata_YouTube_CommentFeed/$T KZend_Gdata_YouTube_CommentEntry/$S KZend_Gdata_YouTube_ActivityFeed/%R MZend_Gdata_YouTube_ActivityEntry/Q ;Zend_Gdata_Spreadsheets/*P WZend_Gdata_Spreadsheets_WorksheetFeed/+O YZend_Gdata_Spreadsheets_WorksheetEntry/,N [Zend_Gdata_Spreadsheets_SpreadsheetFeed/-M ]Zend_Gdata_Spreadsheets_SpreadsheetEntry/&L OZend_Gdata_Spreadsheets_ListQuery/%K MZend_Gdata_Spreadsheets_ListFeed/&J OZend_Gdata_Spreadsheets_ListEntry//I aZend_Gdata_Spreadsheets_Extension_RowCount/-H ]Zend_Gdata_Spreadsheets_Extension_Custom//G aZend_Gdata_Spreadsheets_Extension_ColCount/+F YZend_Gdata_Spreadsheets_Extension_Cell/*E WZend_Gdata_Spreadsheets_DocumentQuery/&D OZend_Gdata_Spreadsheets_CellQuery/%C MZend_Gdata_Spreadsheets_CellFeed/&B OZend_Gdata_Spreadsheets_CellEntry/A -Zend_Gdata_Query/@ /Zend_Gdata_Photos/ ? CZend_Gdata_Photos_UserQuery/> AZend_Gdata_Photos_UserFeed/ = CZend_Gdata_Photos_UserEntry/< AZend_Gdata_Photos_TagEntry/!; EZend_Gdata_Photos_PhotoQuery/ : CZend_Gdata_Photos_PhotoFeed/!9 EZend_Gdata_Photos_PhotoEntry/&8 OZend_Gdata_Photos_Extension_Width/'7 QZend_Gdata_Photos_Extension_Weight/   l  v]A%sAjM0xGzP&


`
(					w	]	A	*	[9kM9cF#rS3hIMeGpM,      } 1Zend_Log_Exception/| #Zend_Locale/{ -Zend_Locale_Math/z =Zend_Locale_Math_PhpMath/y AZend_Locale_Math_Exception/x 1Zend_Locale_Format/w 7Zend_Locale_Exception/v -Zend_Locale_Data/!u EZend_Locale_Data_Translation/t #Zend_Loader/s =Zend_Loader_PluginLoader/'r QZend_Loader_PluginLoader_Exception/q 7Zend_Loader_Exception/p 9Zend_Loader_Autoloader/$o KZend_Loader_Autoloader_Resource/n Zend_Ldap/m )Zend_Ldap_Node/l 7Zend_Ldap_Node_Schema/#k IZend_Ldap_Node_Schema_OpenLdap//j aZend_Ldap_Node_Schema_ObjectClass_OpenLdap/6i oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectory/h AZend_Ldap_Node_Schema_Item/1g eZend_Ldap_Node_Schema_AttributeType_OpenLdap/8f sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory/*e WZend_Ldap_Node_Schema_ActiveDirectory/d 9Zend_Ldap_Node_RootDse/$c KZend_Ldap_Node_RootDse_OpenLdap/&b OZend_Ldap_Node_RootDse_eDirectory/+a YZend_Ldap_Node_RootDse_ActiveDirectory/` ?Zend_Ldap_Node_Collection/$_ KZend_Ldap_Node_ChildrenIterator/^ ;Zend_Ldap_Node_Abstract/] 9Zend_Ldap_Ldif_Encoder/\ -Zend_Ldap_Filter/[ ;Zend_Ldap_Filter_String/Z 3Zend_Ldap_Filter_Or/Y 5Zend_Ldap_Filter_Not/X 7Zend_Ldap_Filter_Mask/W =Zend_Ldap_Filter_Logical/V AZend_Ldap_Filter_Exception/U 5Zend_Ldap_Filter_And/T ?Zend_Ldap_Filter_Abstract/S 3Zend_Ldap_Exception/R %Zend_Ldap_Dn/Q 3Zend_Ldap_Converter/P 5Zend_Ldap_Collection/*O WZend_Ldap_Collection_Iterator_Default/N 3Zend_Ldap_Attribute/M #Zend_Layout/L 7Zend_Layout_Exception/)K UZend_Layout_Controller_Plugin_Layout/0J cZend_Layout_Controller_Action_Helper_Layout/I Zend_Json/H -Zend_Json_Server/G 5Zend_Json_Server_Smd/!F EZend_Json_Server_Smd_Service/E ?Zend_Json_Server_Response/#D IZend_Json_Server_Response_Http/C =Zend_Json_Server_Request/"B GZend_Json_Server_Request_Http/A AZend_Json_Server_Exception/@ 9Zend_Json_Server_Error/? 9Zend_Json_Server_Cache/> )Zend_Json_Expr/= 3Zend_Json_Exception/< /Zend_Json_Encoder/; /Zend_Json_Decoder/: 'Zend_InfoCard/-9 ]Zend_InfoCard_Xml_SecurityTokenReference/8 AZend_InfoCard_Xml_Security/)7 UZend_InfoCard_Xml_Security_Transform/46 kZend_InfoCard_Xml_Security_Transform_XmlExcC14N/35 iZend_InfoCard_Xml_Security_Transform_Exception/<4 {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignature/)3 UZend_InfoCard_Xml_Security_Exception/2 ?Zend_InfoCard_Xml_KeyInfo/&1 OZend_InfoCard_Xml_KeyInfo_XmlDSig/&0 OZend_InfoCard_Xml_KeyInfo_Default/'/ QZend_InfoCard_Xml_KeyInfo_Abstract/ . CZend_InfoCard_Xml_Exception/#- IZend_InfoCard_Xml_EncryptedKey/$, KZend_InfoCard_Xml_EncryptedData/++ YZend_InfoCard_Xml_EncryptedData_XmlEnc/-* ]Zend_InfoCard_Xml_EncryptedData_Abstract/) ?Zend_InfoCard_Xml_Element/ ( CZend_InfoCard_Xml_Assertion/%' MZend_InfoCard_Xml_Assertion_Saml/& ;Zend_InfoCard_Exception/%% MZend_InfoCard_Exception_Abstract/$ 5Zend_InfoCard_Claims/# 5Zend_InfoCard_Cipher/5" mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc/5! mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc/4  kZend_InfoCard_Cipher_Symmetric_Adapter_Abstract/) UZend_InfoCard_Cipher_Pki_Adapter_Rsa/. _Zend_InfoCard_Cipher_Pki_Adapter_Abstract/# IZend_InfoCard_Cipher_Exception/$ KZend_InfoCard_Adapter_Exception/" GZend_InfoCard_Adapter_Default/ 1Zend_Http_Response/ ?Zend_Http_Response_Stream/ 3Zend_Http_Exception/ 3Zend_Http_CookieJar/ -Zend_Http_Cookie/ -Zend_Http_Client/ AZend_Http_Client_Exception/" GZend_Http_Client_Adapter_Test/$ KZend_Http_Client_Adapter_Socket/   x }Z8fG(kG"_?iG(	



y
T
3
!
				r	K	Y?!|[7`?$qS8uY4wcJ.eH0zP0                                u +Zend_Oauth_Http/t ;Zend_Oauth_Http_Utility/&s OZend_Oauth_Http_UserAuthorization/!r EZend_Oauth_Http_RequestToken/ q CZend_Oauth_Http_AccessToken/p 5Zend_Oauth_Exception/o 3Zend_Oauth_Consumer/n /Zend_Oauth_Config/m /Zend_Oauth_Client/l +Zend_Navigation/k 5Zend_Navigation_Page/j =Zend_Navigation_Page_Uri/i =Zend_Navigation_Page_Mvc/h ?Zend_Navigation_Exception/g ?Zend_Navigation_Container/f Zend_Mime/e )Zend_Mime_Part/d /Zend_Mime_Message/c 3Zend_Mime_Exception/b -Zend_Mime_Decode/a #Zend_Memory/` /Zend_Memory_Value/_ 3Zend_Memory_Manager/^ 7Zend_Memory_Exception/] 7Zend_Memory_Container/"\ GZend_Memory_Container_Movable/![ EZend_Memory_Container_Locked/!Z EZend_Memory_AccessController/Y 3Zend_Measure_Weight/X 3Zend_Measure_Volume/%W MZend_Measure_Viscosity_Kinematic/#V IZend_Measure_Viscosity_Dynamic/U 3Zend_Measure_Torque/T /Zend_Measure_Time/S =Zend_Measure_Temperature/R 1Zend_Measure_Speed/Q 7Zend_Measure_Pressure/P 1Zend_Measure_Power/O 3Zend_Measure_Number/N 9Zend_Measure_Lightness/M 3Zend_Measure_Length/L ?Zend_Measure_Illumination/K 9Zend_Measure_Frequency/J 1Zend_Measure_Force/I =Zend_Measure_Flow_Volume/H 9Zend_Measure_Flow_Mole/G 9Zend_Measure_Flow_Mass/F 9Zend_Measure_Exception/E 3Zend_Measure_Energy/D 5Zend_Measure_Density/C 5Zend_Measure_Current/ B CZend_Measure_Cooking_Weight/ A CZend_Measure_Cooking_Volume/@ =Zend_Measure_Capacitance/? 3Zend_Measure_Binary/> /Zend_Measure_Area/= 1Zend_Measure_Angle/< ?Zend_Measure_Acceleration/; 7Zend_Measure_Abstract/: #Zend_Markup/9 7Zend_Markup_TokenList/8 /Zend_Markup_Token/*7 WZend_Markup_Renderer_RendererAbstract/6 ?Zend_Markup_Renderer_Html/"5 GZend_Markup_Renderer_Html_Url/#4 IZend_Markup_Renderer_Html_List/"3 GZend_Markup_Renderer_Html_Img/+2 YZend_Markup_Renderer_Html_HtmlAbstract/#1 IZend_Markup_Renderer_Html_Code/#0 IZend_Markup_Renderer_Exception// AZend_Markup_Parser_Textile/!. EZend_Markup_Parser_Exception/- ?Zend_Markup_Parser_Bbcode/, 7Zend_Markup_Exception/+ Zend_Mail/* =Zend_Mail_Transport_Smtp/!) EZend_Mail_Transport_Sendmail/"( GZend_Mail_Transport_Exception/!' EZend_Mail_Transport_Abstract/& /Zend_Mail_Storage/'% QZend_Mail_Storage_Writable_Maildir/$ 9Zend_Mail_Storage_Pop3/# 9Zend_Mail_Storage_Mbox/" ?Zend_Mail_Storage_Maildir/! 9Zend_Mail_Storage_Imap/  =Zend_Mail_Storage_Folder/" GZend_Mail_Storage_Folder_Mbox/% MZend_Mail_Storage_Folder_Maildir/  CZend_Mail_Storage_Exception/ AZend_Mail_Storage_Abstract/ ;Zend_Mail_Protocol_Smtp/' QZend_Mail_Protocol_Smtp_Auth_Plain/' QZend_Mail_Protocol_Smtp_Auth_Login/) UZend_Mail_Protocol_Smtp_Auth_Crammd5/ ;Zend_Mail_Protocol_Pop3/ ;Zend_Mail_Protocol_Imap/! EZend_Mail_Protocol_Exception/  CZend_Mail_Protocol_Abstract/ )Zend_Mail_Part/ 3Zend_Mail_Part_File/ /Zend_Mail_Message/ 9Zend_Mail_Message_File/ 3Zend_Mail_Exception/ Zend_Log/  CZend_Log_Writer_ZendMonitor/ 9Zend_Log_Writer_Syslog/ 9Zend_Log_Writer_Stream/
 5Zend_Log_Writer_Null/	 5Zend_Log_Writer_Mock/ 5Zend_Log_Writer_Mail/ ;Zend_Log_Writer_Firebug/ 1Zend_Log_Writer_Db/ =Zend_Log_Writer_Abstract/ 9Zend_Log_Formatter_Xml/ ?Zend_Log_Formatter_Simple/ AZend_Log_Formatter_Firebug/ =Zend_Log_Filter_Suppress/  =Zend_Log_Filter_Priority/ ;Zend_Log_Filter_Message/~ =Zend_Log_Filter_Abstract/   n  gGcE"iL8rQ'lU8




v
W
9
					r	S	5	rQ5nM1TyT2uT-vO/X7{U5       &c OZend_Pdf_Filter_Compression_Flate/b =Zend_Pdf_Filter_AsciiHex/a ;Zend_Pdf_Filter_Ascii85/"` GZend_Pdf_FileParserDataSource/)_ UZend_Pdf_FileParserDataSource_String/'^ QZend_Pdf_FileParserDataSource_File/] 3Zend_Pdf_FileParser/\ ?Zend_Pdf_FileParser_Image/"[ GZend_Pdf_FileParser_Image_Png/Z =Zend_Pdf_FileParser_Font/&Y OZend_Pdf_FileParser_Font_OpenType//X aZend_Pdf_FileParser_Font_OpenType_TrueType/W 1Zend_Pdf_Exception/V ;Zend_Pdf_ElementFactory/"U GZend_Pdf_ElementFactory_Proxy/T -Zend_Pdf_Element/S ;Zend_Pdf_Element_String/#R IZend_Pdf_Element_String_Binary/Q ;Zend_Pdf_Element_Stream/P AZend_Pdf_Element_Reference/%O MZend_Pdf_Element_Reference_Table/'N QZend_Pdf_Element_Reference_Context/M ;Zend_Pdf_Element_Object/#L IZend_Pdf_Element_Object_Stream/K =Zend_Pdf_Element_Numeric/J 7Zend_Pdf_Element_Null/I 7Zend_Pdf_Element_Name/ H CZend_Pdf_Element_Dictionary/G =Zend_Pdf_Element_Boolean/F 9Zend_Pdf_Element_Array/E 5Zend_Pdf_Destination/D ?Zend_Pdf_Destination_Zoom/!C EZend_Pdf_Destination_Unknown/B AZend_Pdf_Destination_Named/'A QZend_Pdf_Destination_FitVertically/&@ OZend_Pdf_Destination_FitRectangle/)? UZend_Pdf_Destination_FitHorizontally/2> gZend_Pdf_Destination_FitBoundingBoxVertically/4= kZend_Pdf_Destination_FitBoundingBoxHorizontally/(< SZend_Pdf_Destination_FitBoundingBox/; =Zend_Pdf_Destination_Fit/": GZend_Pdf_Destination_Explicit/9 )Zend_Pdf_Color/8 1Zend_Pdf_Color_Rgb/7 3Zend_Pdf_Color_Html/6 =Zend_Pdf_Color_GrayScale/5 3Zend_Pdf_Color_Cmyk/4 'Zend_Pdf_Cmap/3 AZend_Pdf_Cmap_TrimmedTable/!2 EZend_Pdf_Cmap_SegmentToDelta/1 AZend_Pdf_Cmap_ByteEncoding/&0 OZend_Pdf_Cmap_ByteEncoding_Static// 3Zend_Pdf_Annotation/. =Zend_Pdf_Annotation_Text/- AZend_Pdf_Annotation_Markup/, =Zend_Pdf_Annotation_Link/'+ QZend_Pdf_Annotation_FileAttachment/* +Zend_Pdf_Action/) 3Zend_Pdf_Action_URI/( ;Zend_Pdf_Action_Unknown/' 7Zend_Pdf_Action_Trans/& 9Zend_Pdf_Action_Thread/% AZend_Pdf_Action_SubmitForm/$ 7Zend_Pdf_Action_Sound/ # CZend_Pdf_Action_SetOCGState/" ?Zend_Pdf_Action_ResetForm/! ?Zend_Pdf_Action_Rendition/  7Zend_Pdf_Action_Named/ 7Zend_Pdf_Action_Movie/ 9Zend_Pdf_Action_Launch/ AZend_Pdf_Action_JavaScript/ AZend_Pdf_Action_ImportData/ 5Zend_Pdf_Action_Hide/ 7Zend_Pdf_Action_GoToR/ 7Zend_Pdf_Action_GoToE/ AZend_Pdf_Action_GoTo3DView/ 5Zend_Pdf_Action_GoTo/ )Zend_Paginator/- ]Zend_Paginator_SerializableLimitIterator/* WZend_Paginator_ScrollingStyle_Sliding/* WZend_Paginator_ScrollingStyle_Jumping/* WZend_Paginator_ScrollingStyle_Elastic/& OZend_Paginator_ScrollingStyle_All/ =Zend_Paginator_Exception/  CZend_Paginator_Adapter_Null/$ KZend_Paginator_Adapter_Iterator/) UZend_Paginator_Adapter_DbTableSelect/$ KZend_Paginator_Adapter_DbSelect/! EZend_Paginator_Adapter_Array/
 #Zend_OpenId/	 5Zend_OpenId_Provider/ ?Zend_OpenId_Provider_User/& OZend_OpenId_Provider_User_Session/! EZend_OpenId_Provider_Storage/& OZend_OpenId_Provider_Storage_File/ 7Zend_OpenId_Extension/ AZend_OpenId_Extension_Sreg/ 7Zend_OpenId_Exception/ 5Zend_OpenId_Consumer/!  EZend_OpenId_Consumer_Storage/& OZend_OpenId_Consumer_Storage_File/~ !Zend_Oauth/} -Zend_Oauth_Token/| =Zend_Oauth_Token_Request/'{ QZend_Oauth_Token_AuthorizedRequest/z ;Zend_Oauth_Token_Access/+y YZend_Oauth_Signature_SignatureAbstract/x =Zend_Oauth_Signature_Rsa/#w IZend_Oauth_Signature_Plaintext/v ?Zend_Oauth_Signature_Hmac/   d  |eK*
\5{D	PX


k
/
 				q	M	(	zW7lD# wQ-]6U)aB |cF*n5                         IG Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive/5F mZend_Search_Lucene_Analysis_Analyzer_Common_Text/FE Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive/D 7Zend_Search_Exception/C -Zend_Rest_Server/B AZend_Rest_Server_Exception/A +Zend_Rest_Route/@ 3Zend_Rest_Exception/? 5Zend_Rest_Controller/> -Zend_Rest_Client/= ;Zend_Rest_Client_Result/&< OZend_Rest_Client_Result_Exception/; AZend_Rest_Client_Exception/: 'Zend_Registry/9 =Zend_Reflection_Property/8 ?Zend_Reflection_Parameter/7 9Zend_Reflection_Method/6 =Zend_Reflection_Function/5 5Zend_Reflection_File/4 ?Zend_Reflection_Extension/3 ?Zend_Reflection_Exception/2 =Zend_Reflection_Docblock/!1 EZend_Reflection_Docblock_Tag/(0 SZend_Reflection_Docblock_Tag_Return/'/ QZend_Reflection_Docblock_Tag_Param/. 7Zend_Reflection_Class/- !Zend_Queue/, 9Zend_Queue_Stomp_Frame/+ ;Zend_Queue_Stomp_Client/'* QZend_Queue_Stomp_Client_Connection/) 1Zend_Queue_Message/#( IZend_Queue_Message_PlatformJob/ ' CZend_Queue_Message_Iterator/& 5Zend_Queue_Exception/(% SZend_Queue_Adapter_PlatformJobQueue/$ ;Zend_Queue_Adapter_Null/!# EZend_Queue_Adapter_Memcacheq/" 7Zend_Queue_Adapter_Db/ ! CZend_Queue_Adapter_Db_Queue/"  GZend_Queue_Adapter_Db_Message/ =Zend_Queue_Adapter_Array/' QZend_Queue_Adapter_AdapterAbstract/  CZend_Queue_Adapter_Activemq/ -Zend_ProgressBar/ AZend_ProgressBar_Exception/ =Zend_ProgressBar_Adapter/$ KZend_ProgressBar_Adapter_JsPush/$ KZend_ProgressBar_Adapter_JsPull/' QZend_ProgressBar_Adapter_Exception/% MZend_ProgressBar_Adapter_Console/ Zend_Pdf/! EZend_Pdf_UpdateInfoContainer/ -Zend_Pdf_Trailer/ ;Zend_Pdf_Trailer_Keeper/ AZend_Pdf_Trailer_Generator/ +Zend_Pdf_Target/ )Zend_Pdf_Style/ 7Zend_Pdf_StringParser/ /Zend_Pdf_Resource/# IZend_Pdf_Resource_ImageFactory/ ;Zend_Pdf_Resource_Image/!
 EZend_Pdf_Resource_Image_Tiff/ 	 CZend_Pdf_Resource_Image_Png/! EZend_Pdf_Resource_Image_Jpeg/ 9Zend_Pdf_Resource_Font/! EZend_Pdf_Resource_Font_Type0/" GZend_Pdf_Resource_Font_Simple/+ YZend_Pdf_Resource_Font_Simple_Standard/8 sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats/6 oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman/7 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic/;  yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic/5 mZend_Pdf_Resource_Font_Simple_Standard_TimesBold/2~ gZend_Pdf_Resource_Font_Simple_Standard_Symbol/<} {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaOblique/A| Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique/9{ uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold/5z mZend_Pdf_Resource_Font_Simple_Standard_Helvetica/:y wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique/>x Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique/7w qZend_Pdf_Resource_Font_Simple_Standard_CourierBold/3v iZend_Pdf_Resource_Font_Simple_Standard_Courier/)u UZend_Pdf_Resource_Font_Simple_Parsed/2t gZend_Pdf_Resource_Font_Simple_Parsed_TrueType/*s WZend_Pdf_Resource_Font_FontDescriptor/%r MZend_Pdf_Resource_Font_Extracted/#q IZend_Pdf_Resource_Font_CidFont/,p [Zend_Pdf_Resource_Font_CidFont_TrueType/3o iZend_Pdf_RecursivelyIteratableObjectsContainer/n +Zend_Pdf_Parser/m 'Zend_Pdf_Page/l -Zend_Pdf_Outline/k ;Zend_Pdf_Outline_Loaded/j =Zend_Pdf_Outline_Created/i /Zend_Pdf_NameTree/h )Zend_Pdf_Image/g 'Zend_Pdf_Font/f ?Zend_Pdf_Filter_RunLength/ e CZend_Pdf_Filter_Compression/$d KZend_Pdf_Filter_Compression_Lzw/   Q  zAW-z@d;d2



A
				R	*	HPv;yQ]0i4tDU&         1Zend_Search_Lucene/0 cZend_Search_Lucene_TermStreamsPriorityQueue/$ KZend_Search_Lucene_Storage_File/+ YZend_Search_Lucene_Storage_File_Memory// aZend_Search_Lucene_Storage_File_Filesystem/) UZend_Search_Lucene_Storage_Directory/4 kZend_Search_Lucene_Storage_Directory_Filesystem/% MZend_Search_Lucene_Search_Weight/* WZend_Search_Lucene_Search_Weight_Term/, [Zend_Search_Lucene_Search_Weight_Phrase// aZend_Search_Lucene_Search_Weight_MultiTerm/+ YZend_Search_Lucene_Search_Weight_Empty/- ]Zend_Search_Lucene_Search_Weight_Boolean/) UZend_Search_Lucene_Search_Similarity/1
 eZend_Search_Lucene_Search_Similarity_Default/)	 UZend_Search_Lucene_Search_QueryToken/3 iZend_Search_Lucene_Search_QueryParserException/1 eZend_Search_Lucene_Search_QueryParserContext/* WZend_Search_Lucene_Search_QueryParser/) UZend_Search_Lucene_Search_QueryLexer/' QZend_Search_Lucene_Search_QueryHit/) UZend_Search_Lucene_Search_QueryEntry/. _Zend_Search_Lucene_Search_QueryEntry_Term/2 gZend_Search_Lucene_Search_QueryEntry_Subquery/0  cZend_Search_Lucene_Search_QueryEntry_Phrase/$ KZend_Search_Lucene_Search_Query/-~ ]Zend_Search_Lucene_Search_Query_Wildcard/)} UZend_Search_Lucene_Search_Query_Term/*| WZend_Search_Lucene_Search_Query_Range/2{ gZend_Search_Lucene_Search_Query_Preprocessing/7z qZend_Search_Lucene_Search_Query_Preprocessing_Term/9y uZend_Search_Lucene_Search_Query_Preprocessing_Phrase/8x sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy/+w YZend_Search_Lucene_Search_Query_Phrase/.v _Zend_Search_Lucene_Search_Query_MultiTerm/2u gZend_Search_Lucene_Search_Query_Insignificant/*t WZend_Search_Lucene_Search_Query_Fuzzy/*s WZend_Search_Lucene_Search_Query_Empty/,r [Zend_Search_Lucene_Search_Query_Boolean/2q gZend_Search_Lucene_Search_Highlighter_Default/:p wZend_Search_Lucene_Search_BooleanExpressionRecognizer/o =Zend_Search_Lucene_Proxy/%n MZend_Search_Lucene_PriorityQueue//m aZend_Search_Lucene_Interface_MultiSearcher/#l IZend_Search_Lucene_LockManager/$k KZend_Search_Lucene_Index_Writer/0j cZend_Search_Lucene_Index_TermsPriorityQueue/&i OZend_Search_Lucene_Index_TermInfo/"h GZend_Search_Lucene_Index_Term/+g YZend_Search_Lucene_Index_SegmentWriter/8f sZend_Search_Lucene_Index_SegmentWriter_StreamWriter/:e wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter/+d YZend_Search_Lucene_Index_SegmentMerger/)c UZend_Search_Lucene_Index_SegmentInfo/'b QZend_Search_Lucene_Index_FieldInfo/(a SZend_Search_Lucene_Index_DocsFilter/.` _Zend_Search_Lucene_Index_DictionaryLoader/!_ EZend_Search_Lucene_FSMAction/^ 9Zend_Search_Lucene_FSM/] =Zend_Search_Lucene_Field/!\ EZend_Search_Lucene_Exception/ [ CZend_Search_Lucene_Document/%Z MZend_Search_Lucene_Document_Xlsx/%Y MZend_Search_Lucene_Document_Pptx/(X SZend_Search_Lucene_Document_OpenXml/%W MZend_Search_Lucene_Document_Html/*V WZend_Search_Lucene_Document_Exception/%U MZend_Search_Lucene_Document_Docx/,T [Zend_Search_Lucene_Analysis_TokenFilter/6S oZend_Search_Lucene_Analysis_TokenFilter_StopWords/7R qZend_Search_Lucene_Analysis_TokenFilter_ShortWords/:Q wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8/6P oZend_Search_Lucene_Analysis_TokenFilter_LowerCase/&O OZend_Search_Lucene_Analysis_Token/)N UZend_Search_Lucene_Analysis_Analyzer/0M cZend_Search_Lucene_Analysis_Analyzer_Common/8L sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num/IK Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive/5J mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8/FI Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive/8H sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum/   [  ]8oW: tO*^5b:



e
;
				_	7	lF$pJ!gK'i$~Mx:l8o4     -s ]Zend_Service_DeveloperGarden_LocalSearch/>r Zend_Service_DeveloperGarden_LocalSearch_SearchParameters/7q qZend_Service_DeveloperGarden_LocalSearch_Exception/,p [Zend_Service_DeveloperGarden_IpLocation/6o oZend_Service_DeveloperGarden_IpLocation_IpAddress/+n YZend_Service_DeveloperGarden_Exception/,m [Zend_Service_DeveloperGarden_Credential/0l cZend_Service_DeveloperGarden_ConferenceCall/Ck Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatus/Cj Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail/<i {Zend_Service_DeveloperGarden_ConferenceCall_Participant/:h wZend_Service_DeveloperGarden_ConferenceCall_Exception/Dg 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceSchedule/Bf Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail/Ce Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount/-d ]Zend_Service_DeveloperGarden_Client_Soap/2c gZend_Service_DeveloperGarden_Client_Exception/7b qZend_Service_DeveloperGarden_Client_ClientAbstract/1a eZend_Service_DeveloperGarden_BaseUserService/A` Zend_Service_DeveloperGarden_BaseUserService_AccountBalance/_ 9Zend_Service_Delicious/&^ OZend_Service_Delicious_SimplePost/$] KZend_Service_Delicious_PostList/ \ CZend_Service_Delicious_Post/%[ MZend_Service_Delicious_Exception/ Z CZend_Service_Audioscrobbler/Y 3Zend_Service_Amazon/X ;Zend_Service_Amazon_Sqs/&W OZend_Service_Amazon_Sqs_Exception/'V QZend_Service_Amazon_SimilarProduct/U 9Zend_Service_Amazon_S3/"T GZend_Service_Amazon_S3_Stream/%S MZend_Service_Amazon_S3_Exception/"R GZend_Service_Amazon_ResultSet/Q ?Zend_Service_Amazon_Query/!P EZend_Service_Amazon_OfferSet/O ?Zend_Service_Amazon_Offer/&N OZend_Service_Amazon_ListmaniaList/M =Zend_Service_Amazon_Item/L ?Zend_Service_Amazon_Image/"K GZend_Service_Amazon_Exception/(J SZend_Service_Amazon_EditorialReview/I ;Zend_Service_Amazon_Ec2/+H YZend_Service_Amazon_Ec2_Securitygroups/%G MZend_Service_Amazon_Ec2_Response/#F IZend_Service_Amazon_Ec2_Region/$E KZend_Service_Amazon_Ec2_Keypair/%D MZend_Service_Amazon_Ec2_Instance/-C ]Zend_Service_Amazon_Ec2_Instance_Windows/.B _Zend_Service_Amazon_Ec2_Instance_Reserved/"A GZend_Service_Amazon_Ec2_Image/&@ OZend_Service_Amazon_Ec2_Exception/&? OZend_Service_Amazon_Ec2_Elasticip/ > CZend_Service_Amazon_Ec2_Ebs/'= QZend_Service_Amazon_Ec2_CloudWatch/.< _Zend_Service_Amazon_Ec2_Availabilityzones/%; MZend_Service_Amazon_Ec2_Abstract/': QZend_Service_Amazon_CustomerReview/$9 KZend_Service_Amazon_Accessories/!8 EZend_Service_Amazon_Abstract/7 5Zend_Service_Akismet/6 7Zend_Service_Abstract/5 9Zend_Server_Reflection/'4 QZend_Server_Reflection_ReturnValue/%3 MZend_Server_Reflection_Prototype/%2 MZend_Server_Reflection_Parameter/ 1 CZend_Server_Reflection_Node/"0 GZend_Server_Reflection_Method/$/ KZend_Server_Reflection_Function/-. ]Zend_Server_Reflection_Function_Abstract/%- MZend_Server_Reflection_Exception/!, EZend_Server_Reflection_Class/!+ EZend_Server_Method_Prototype/!* EZend_Server_Method_Parameter/") GZend_Server_Method_Definition/ ( CZend_Server_Method_Callback/' 7Zend_Server_Exception/& 9Zend_Server_Definition/% /Zend_Server_Cache/$ 5Zend_Server_Abstract/# +Zend_Serializer/" ?Zend_Serializer_Exception/!! EZend_Serializer_Adapter_Wddx/)  UZend_Serializer_Adapter_PythonPickle/) UZend_Serializer_Adapter_PhpSerialize/$ KZend_Serializer_Adapter_PhpCode/! EZend_Serializer_Adapter_Json/% MZend_Serializer_Adapter_Igbinary/! EZend_Serializer_Adapter_Amf3/! EZend_Serializer_Adapter_Amf0/, [Zend_Serializer_Adapter_AdapterAbstract/   0  bVN3'


		d	Jt'k%<q&ZO}/                             Q# #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstract/S" 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponse/J! Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType/g  OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseType/c GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponse/W /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse/U +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponse/S 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse/3 iZend_Service_DeveloperGarden_Response_BaseType/J Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstract/C Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCall/G Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced/= }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCall/A Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatus/A Zend_Service_DeveloperGarden_Request_SmsValidation_Validate/N Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeyword/C Zend_Service_DeveloperGarden_Request_SmsValidation_Invalidate/L Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbers/B Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract/9 uZend_Service_DeveloperGarden_Request_SendSms_SendSMS/> Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS/9 uZend_Service_DeveloperGarden_Request_RequestAbstract/I Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequest/E Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest/3 iZend_Service_DeveloperGarden_Request_Exception/R
 %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequest/Y	 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequest/d IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequest/Q #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequest/R %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequest/Y 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequest/d IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequest/Q #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequest/O Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequest/U +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequest/U  +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequest/V -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequest/a~ CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequest/Z} 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequest/T| )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequest/R{ %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequest/Yz 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequest/Qy #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequest/Qx #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequest/aw CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequest/Nv Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformation/Lu Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalance/Jt Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool/   . i N4~ \.

s
		Z	U4sBZw$CW  i     JQ Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponse/UP +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponse/CO Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponse/CN Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstract/HM Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponse/UL +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponse/QK #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponse/IJ Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception/;I yZend_Service_DeveloperGarden_Response_ResponseAbstract/OH Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseType/KG Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponse/AF Zend_Service_DeveloperGarden_Response_IpLocation_RegionType/KE Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseType/GD Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponse/LC Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationType/IB Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType/>A Zend_Service_DeveloperGarden_Response_IpLocation_CityType/4@ kZend_Service_DeveloperGarden_Response_Exception/T? )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse/[> 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponse/f= MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponse/S< 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponse/T; )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse/[: 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponse/f9 MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponse/S8 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponse/U7 +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType/Q6 #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse/[5 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseType/W4 /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse/[3 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseType/W2 /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse/\1 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseType/X0 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponse/g/ OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseType/c. GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse/`- AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType/\, 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponse/Z+ 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseType/V* -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponse/X) 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseType/T( )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse/_' ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType/[& 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponse/W% /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType/S$ 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponse/   T  Xk |-U&X0



i
K
"					a	<	pE`;T4OmCd6~af:                             2% gZend_Service_WindowsAzure_RetryPolicy_NoRetry/4$ kZend_Service_WindowsAzure_RetryPolicy_Exception/(# SZend_Service_WindowsAzure_Exception/8" sZend_Service_WindowsAzure_Credentials_SharedKeyLite/4! kZend_Service_WindowsAzure_Credentials_SharedKey/A  Zend_Service_WindowsAzure_Credentials_SharedAccessSignature/> Zend_Service_WindowsAzure_Credentials_CredentialsAbstract/ 5Zend_Service_Twitter/  CZend_Service_Twitter_Search/# IZend_Service_Twitter_Exception/ ;Zend_Service_Technorati/# IZend_Service_Technorati_Weblog/" GZend_Service_Technorati_Utils/* WZend_Service_Technorati_TagsResultSet/' QZend_Service_Technorati_TagsResult/) UZend_Service_Technorati_TagResultSet/& OZend_Service_Technorati_TagResult/, [Zend_Service_Technorati_SearchResultSet/) UZend_Service_Technorati_SearchResult/& OZend_Service_Technorati_ResultSet/# IZend_Service_Technorati_Result/* WZend_Service_Technorati_KeyInfoResult/* WZend_Service_Technorati_GetInfoResult/& OZend_Service_Technorati_Exception/1 eZend_Service_Technorati_DailyCountsResultSet/. _Zend_Service_Technorati_DailyCountsResult/, [Zend_Service_Technorati_CosmosResultSet/)
 UZend_Service_Technorati_CosmosResult/+	 YZend_Service_Technorati_BlogInfoResult/# IZend_Service_Technorati_Author/ ;Zend_Service_StrikeIron/( SZend_Service_StrikeIron_ZipCodeInfo/2 gZend_Service_StrikeIron_USAddressVerification/- ]Zend_Service_StrikeIron_SalesUseTaxBasic/& OZend_Service_StrikeIron_Exception/& OZend_Service_StrikeIron_Decorator/! EZend_Service_StrikeIron_Base/  ;Zend_Service_SlideShare/& OZend_Service_SlideShare_SlideShow/&~ OZend_Service_SlideShare_Exception/} 1Zend_Service_Simpy/$| KZend_Service_Simpy_WatchlistSet/*{ WZend_Service_Simpy_WatchlistFilterSet/'z QZend_Service_Simpy_WatchlistFilter/!y EZend_Service_Simpy_Watchlist/x ?Zend_Service_Simpy_TagSet/w 9Zend_Service_Simpy_Tag/v AZend_Service_Simpy_NoteSet/u ;Zend_Service_Simpy_Note/t AZend_Service_Simpy_LinkSet/!s EZend_Service_Simpy_LinkQuery/r ;Zend_Service_Simpy_Link/q 9Zend_Service_ReCaptcha/$p KZend_Service_ReCaptcha_Response/$o KZend_Service_ReCaptcha_MailHide/.n _Zend_Service_ReCaptcha_MailHide_Exception/%m MZend_Service_ReCaptcha_Exception/l 7Zend_Service_Nirvanix/#k IZend_Service_Nirvanix_Response/)j UZend_Service_Nirvanix_Namespace_Imfs/)i UZend_Service_Nirvanix_Namespace_Base/$h KZend_Service_Nirvanix_Exception/g 7Zend_Service_LiveDocx/$f KZend_Service_LiveDocx_MailMerge/$e KZend_Service_LiveDocx_Exception/d 3Zend_Service_Flickr/"c GZend_Service_Flickr_ResultSet/b AZend_Service_Flickr_Result/a ?Zend_Service_Flickr_Image/` 9Zend_Service_Exception/+_ YZend_Service_DeveloperGarden_VoiceCall//^ aZend_Service_DeveloperGarden_SmsValidation/)] UZend_Service_DeveloperGarden_SendSms/5\ mZend_Service_DeveloperGarden_SecurityTokenServer/;[ yZend_Service_DeveloperGarden_SecurityTokenServer_Cache/KZ Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstract/LY Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponse/PX !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponse/GW Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponse/JV Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponse/KU Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2Response/LT Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponse/IS Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumber/WR /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponse/   ]  X(Lp9]%].



d
7
				z	R	7	_2rS:Y%_4}cG)j=[)sE                3Zend_Text_Exception/& OZend_Test_PHPUnit_Db_SimpleTester/,  [Zend_Test_PHPUnit_Db_Operation_Truncate/* WZend_Test_PHPUnit_Db_Operation_Insert/-~ ]Zend_Test_PHPUnit_Db_Operation_DeleteAll/*} WZend_Test_PHPUnit_Db_Metadata_Generic/#| IZend_Test_PHPUnit_Db_Exception/,{ [Zend_Test_PHPUnit_Db_DataSet_QueryTable/.z _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet/0y cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet/)x UZend_Test_PHPUnit_Db_DataSet_DbTable/*w WZend_Test_PHPUnit_Db_DataSet_DbRowset/$v KZend_Test_PHPUnit_Db_Connection/'u QZend_Test_PHPUnit_DatabaseTestCase/)t UZend_Test_PHPUnit_ControllerTestCase/0s cZend_Test_PHPUnit_Constraint_ResponseHeader/*r WZend_Test_PHPUnit_Constraint_Redirect/+q YZend_Test_PHPUnit_Constraint_Exception/*p WZend_Test_PHPUnit_Constraint_DomQuery/o 7Zend_Test_DbStatement/n 3Zend_Test_DbAdapter/m /Zend_Tag_ItemList/l 'Zend_Tag_Item/k 1Zend_Tag_Exception/j )Zend_Tag_Cloud/i =Zend_Tag_Cloud_Exception/!h EZend_Tag_Cloud_Decorator_Tag/%g MZend_Tag_Cloud_Decorator_HtmlTag/'f QZend_Tag_Cloud_Decorator_HtmlCloud/'e QZend_Tag_Cloud_Decorator_Exception/#d IZend_Tag_Cloud_Decorator_Cloud/c )Zend_Soap_Wsdl//b aZend_Soap_Wsdl_Strategy_DefaultComplexType/&a OZend_Soap_Wsdl_Strategy_Composite/0` cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence//_ aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex/$^ KZend_Soap_Wsdl_Strategy_AnyType/%] MZend_Soap_Wsdl_Strategy_Abstract/\ =Zend_Soap_Wsdl_Exception/[ -Zend_Soap_Server/Z AZend_Soap_Server_Exception/Y -Zend_Soap_Client/X 9Zend_Soap_Client_Local/W AZend_Soap_Client_Exception/V ;Zend_Soap_Client_DotNet/U ;Zend_Soap_Client_Common/T 9Zend_Soap_AutoDiscover/%S MZend_Soap_AutoDiscover_Exception/R %Zend_Session/)Q UZend_Session_Validator_HttpUserAgent/$P KZend_Session_Validator_Abstract/'O QZend_Session_SaveHandler_Exception/%N MZend_Session_SaveHandler_DbTable/M 9Zend_Session_Namespace/L 9Zend_Session_Exception/K 7Zend_Session_Abstract/J 1Zend_Service_Yahoo/$I KZend_Service_Yahoo_WebResultSet/!H EZend_Service_Yahoo_WebResult/&G OZend_Service_Yahoo_VideoResultSet/#F IZend_Service_Yahoo_VideoResult/!E EZend_Service_Yahoo_ResultSet/D ?Zend_Service_Yahoo_Result/)C UZend_Service_Yahoo_PageDataResultSet/&B OZend_Service_Yahoo_PageDataResult/%A MZend_Service_Yahoo_NewsResultSet/"@ GZend_Service_Yahoo_NewsResult/&? OZend_Service_Yahoo_LocalResultSet/#> IZend_Service_Yahoo_LocalResult/+= YZend_Service_Yahoo_InlinkDataResultSet/(< SZend_Service_Yahoo_InlinkDataResult/&; OZend_Service_Yahoo_ImageResultSet/#: IZend_Service_Yahoo_ImageResult/9 =Zend_Service_Yahoo_Image/&8 OZend_Service_WindowsAzure_Storage/47 kZend_Service_WindowsAzure_Storage_TableInstance/76 qZend_Service_WindowsAzure_Storage_TableEntityQuery/25 gZend_Service_WindowsAzure_Storage_TableEntity/,4 [Zend_Service_WindowsAzure_Storage_Table/73 qZend_Service_WindowsAzure_Storage_SignedIdentifier/32 iZend_Service_WindowsAzure_Storage_QueueMessage/41 kZend_Service_WindowsAzure_Storage_QueueInstance/,0 [Zend_Service_WindowsAzure_Storage_Queue/9/ uZend_Service_WindowsAzure_Storage_DynamicTableEntity/3. iZend_Service_WindowsAzure_Storage_BlobInstance/4- kZend_Service_WindowsAzure_Storage_BlobContainer/+, YZend_Service_WindowsAzure_Storage_Blob/2+ gZend_Service_WindowsAzure_Storage_Blob_Stream/;* yZend_Service_WindowsAzure_Storage_BatchStorageAbstract/,) [Zend_Service_WindowsAzure_Storage_Batch/-( ]Zend_Service_WindowsAzure_SessionHandler/>' Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract/1& eZend_Service_WindowsAzure_RetryPolicy_RetryN/   Q  a7mW/~DIa%



U
				[	/	 }Nn?[*b.[%Ul9]-                           0S cZend_Tool_Project_Context_Zf_ControllerFile/2R gZend_Tool_Project_Context_Zf_ConfigsDirectory/,Q [Zend_Tool_Project_Context_Zf_ConfigFile/0P cZend_Tool_Project_Context_Zf_CacheDirectory//O aZend_Tool_Project_Context_Zf_BootstrapFile/6N oZend_Tool_Project_Context_Zf_ApplicationDirectory/7M qZend_Tool_Project_Context_Zf_ApplicationConfigFile//L aZend_Tool_Project_Context_Zf_ApisDirectory/.K _Zend_Tool_Project_Context_Zf_ActionMethod/3J iZend_Tool_Project_Context_Zf_AbstractClassFile/@I Zend_Tool_Project_Context_System_ProjectProvidersDirectory/8H sZend_Tool_Project_Context_System_ProjectProfileFile/6G oZend_Tool_Project_Context_System_ProjectDirectory/)F UZend_Tool_Project_Context_Repository/.E _Zend_Tool_Project_Context_Filesystem_File/3D iZend_Tool_Project_Context_Filesystem_Directory/2C gZend_Tool_Project_Context_Filesystem_Abstract/(B SZend_Tool_Project_Context_Exception/-A ]Zend_Tool_Project_Context_Content_Engine/3@ iZend_Tool_Project_Context_Content_Engine_Phtml/;? yZend_Tool_Project_Context_Content_Engine_CodeGenerator/0> cZend_Tool_Framework_System_Provider_Version/0= cZend_Tool_Framework_System_Provider_Phpinfo/1< eZend_Tool_Framework_System_Provider_Manifest//; aZend_Tool_Framework_System_Provider_Config/(: SZend_Tool_Framework_System_Manifest/-9 ]Zend_Tool_Framework_System_Action_Delete/-8 ]Zend_Tool_Framework_System_Action_Create/!7 EZend_Tool_Framework_Registry/+6 YZend_Tool_Framework_Registry_Exception/+5 YZend_Tool_Framework_Provider_Signature/,4 [Zend_Tool_Framework_Provider_Repository/+3 YZend_Tool_Framework_Provider_Exception/*2 WZend_Tool_Framework_Provider_Abstract/&1 OZend_Tool_Framework_Metadata_Tool/)0 UZend_Tool_Framework_Metadata_Dynamic/'/ QZend_Tool_Framework_Metadata_Basic/,. [Zend_Tool_Framework_Manifest_Repository/+- YZend_Tool_Framework_Manifest_Exception/1, eZend_Tool_Framework_Loader_IncludePathLoader/J+ Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator/+* YZend_Tool_Framework_Loader_BasicLoader/() SZend_Tool_Framework_Loader_Abstract/"( GZend_Tool_Framework_Exception/'' QZend_Tool_Framework_Client_Storage/1& eZend_Tool_Framework_Client_Storage_Directory/(% SZend_Tool_Framework_Client_Response/D$ 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator/'# QZend_Tool_Framework_Client_Request/(" SZend_Tool_Framework_Client_Manifest/9! uZend_Tool_Framework_Client_Interactive_InputResponse/8  sZend_Tool_Framework_Client_Interactive_InputRequest/8 sZend_Tool_Framework_Client_Interactive_InputHandler/) UZend_Tool_Framework_Client_Exception/' QZend_Tool_Framework_Client_Console/D 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Indention/D 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizer/C Zend_Tool_Framework_Client_Console_ResponseDecorator_Blockize/F Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter/0 cZend_Tool_Framework_Client_Console_Manifest/2 gZend_Tool_Framework_Client_Console_HelpSystem/6 oZend_Tool_Framework_Client_Console_ArgumentParser/& OZend_Tool_Framework_Client_Config/( SZend_Tool_Framework_Client_Abstract/* WZend_Tool_Framework_Action_Repository/) UZend_Tool_Framework_Action_Exception/$ KZend_Tool_Framework_Action_Base/ 'Zend_TimeSync/ 1Zend_TimeSync_Sntp/ 9Zend_TimeSync_Protocol/ /Zend_TimeSync_Ntp/ ;Zend_TimeSync_Exception/ +Zend_Text_Table/
 3Zend_Text_Table_Row/	 ?Zend_Text_Table_Exception/& OZend_Text_Table_Decorator_Unicode/$ KZend_Text_Table_Decorator_Ascii/ 9Zend_Text_Table_Column/ 3Zend_Text_MultiByte/ -Zend_Text_Figlet/ AZend_Text_Figlet_Exception/   L  ],e/QOq5



J
		{	=Lb(LRtR&rGsIpK(                               ?Zend_Translate_Adapter_Qt/ AZend_Translate_Adapter_Ini/# IZend_Translate_Adapter_Gettext/ AZend_Translate_Adapter_Csv/! EZend_Translate_Adapter_Array/$ KZend_Tool_Project_Provider_View/$ KZend_Tool_Project_Provider_Test// aZend_Tool_Project_Provider_ProjectProvider/' QZend_Tool_Project_Provider_Project/' QZend_Tool_Project_Provider_Profile/& OZend_Tool_Project_Provider_Module/% MZend_Tool_Project_Provider_Model/( SZend_Tool_Project_Provider_Manifest/& OZend_Tool_Project_Provider_Layout/$ KZend_Tool_Project_Provider_Form/) UZend_Tool_Project_Provider_Exception/' QZend_Tool_Project_Provider_DbTable/) UZend_Tool_Project_Provider_DbAdapter/* WZend_Tool_Project_Provider_Controller/+ YZend_Tool_Project_Provider_Application/& OZend_Tool_Project_Provider_Action/(
 SZend_Tool_Project_Provider_Abstract/	 ?Zend_Tool_Project_Profile/' QZend_Tool_Project_Profile_Resource/9 uZend_Tool_Project_Profile_Resource_SearchConstraints/1 eZend_Tool_Project_Profile_Resource_Container/= }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter/5 mZend_Tool_Project_Profile_Iterator_ContextFilter/- ]Zend_Tool_Project_Profile_FileParser_Xml/( SZend_Tool_Project_Profile_Exception/  CZend_Tool_Project_Exception/<  {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory/0 cZend_Tool_Project_Context_Zf_ViewsDirectory/6~ oZend_Tool_Project_Context_Zf_ViewScriptsDirectory/0} cZend_Tool_Project_Context_Zf_ViewScriptFile/6| oZend_Tool_Project_Context_Zf_ViewHelpersDirectory/6{ oZend_Tool_Project_Context_Zf_ViewFiltersDirectory/Az Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory/2y gZend_Tool_Project_Context_Zf_UploadsDirectory/0x cZend_Tool_Project_Context_Zf_TestsDirectory/7w qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile/@v Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory/1u eZend_Tool_Project_Context_Zf_TestLibraryFile/6t oZend_Tool_Project_Context_Zf_TestLibraryDirectory/:s wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFile/:r wZend_Tool_Project_Context_Zf_TestApplicationDirectory/@q Zend_Tool_Project_Context_Zf_TestApplicationControllerFile/Ep Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory/>o Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile/4n kZend_Tool_Project_Context_Zf_TemporaryDirectory/3m iZend_Tool_Project_Context_Zf_SessionsDirectory/8l sZend_Tool_Project_Context_Zf_SearchIndexesDirectory/<k {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory/8j sZend_Tool_Project_Context_Zf_PublicScriptsDirectory/1i eZend_Tool_Project_Context_Zf_PublicIndexFile/7h qZend_Tool_Project_Context_Zf_PublicImagesDirectory/1g eZend_Tool_Project_Context_Zf_PublicDirectory/5f mZend_Tool_Project_Context_Zf_ProjectProviderFile/2e gZend_Tool_Project_Context_Zf_ModulesDirectory/1d eZend_Tool_Project_Context_Zf_ModuleDirectory/1c eZend_Tool_Project_Context_Zf_ModelsDirectory/+b YZend_Tool_Project_Context_Zf_ModelFile//a aZend_Tool_Project_Context_Zf_LogsDirectory/2` gZend_Tool_Project_Context_Zf_LocalesDirectory/2_ gZend_Tool_Project_Context_Zf_LibraryDirectory/2^ gZend_Tool_Project_Context_Zf_LayoutsDirectory/8] sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory/2\ gZend_Tool_Project_Context_Zf_LayoutScriptFile/.[ _Zend_Tool_Project_Context_Zf_HtaccessFile/0Z cZend_Tool_Project_Context_Zf_FormsDirectory/*Y WZend_Tool_Project_Context_Zf_FormFile//X aZend_Tool_Project_Context_Zf_DocsDirectory/-W ]Zend_Tool_Project_Context_Zf_DbTableFile/2V gZend_Tool_Project_Context_Zf_DbTableDirectory//U aZend_Tool_Project_Context_Zf_DataDirectory/6T oZend_Tool_Project_Context_Zf_ControllersDirectory/   r  pQ0~b4mE!oL'd@




`
=

					h	@	xL!pH%}[6fL3vP.`@vX4\9  ?Zend_View_Helper_FormNote/' QZend_View_Helper_FormMultiCheckbox/ AZend_View_Helper_FormLabel/ AZend_View_Helper_FormImage/  CZend_View_Helper_FormHidden/ ?Zend_View_Helper_FormFile/  CZend_View_Helper_FormErrors/!
 EZend_View_Helper_FormElement/"	 GZend_View_Helper_FormCheckbox/  CZend_View_Helper_FormButton/ 7Zend_View_Helper_Form/ ?Zend_View_Helper_Fieldset/ =Zend_View_Helper_Doctype/! EZend_View_Helper_DeclareVars/ 9Zend_View_Helper_Cycle/ ?Zend_View_Helper_Currency/ =Zend_View_Helper_BaseUrl/  ;Zend_View_Helper_Action/ ?Zend_View_Helper_Abstract/~ 3Zend_View_Exception/} 1Zend_View_Abstract/| %Zend_Version/{ 'Zend_Validate/z AZend_Validate_StringLength/#y IZend_Validate_Sitemap_Priority/x ?Zend_Validate_Sitemap_Loc/"w GZend_Validate_Sitemap_Lastmod/%v MZend_Validate_Sitemap_Changefreq/u 3Zend_Validate_Regex/t 9Zend_Validate_PostCode/s 9Zend_Validate_NotEmpty/r 9Zend_Validate_LessThan/q 1Zend_Validate_Isbn/p -Zend_Validate_Ip/o /Zend_Validate_Int/n 7Zend_Validate_InArray/m ;Zend_Validate_Identical/l 1Zend_Validate_Iban/k 9Zend_Validate_Hostname/j /Zend_Validate_Hex/i ?Zend_Validate_GreaterThan/h 3Zend_Validate_Float/!g EZend_Validate_File_WordCount/f ?Zend_Validate_File_Upload/e ;Zend_Validate_File_Size/d ;Zend_Validate_File_Sha1/!c EZend_Validate_File_NotExists/ b CZend_Validate_File_MimeType/a 9Zend_Validate_File_Md5/` AZend_Validate_File_IsImage/$_ KZend_Validate_File_IsCompressed/!^ EZend_Validate_File_ImageSize/] ;Zend_Validate_File_Hash/!\ EZend_Validate_File_FilesSize/![ EZend_Validate_File_Extension/Z ?Zend_Validate_File_Exists/'Y QZend_Validate_File_ExcludeMimeType/(X SZend_Validate_File_ExcludeExtension/W =Zend_Validate_File_Crc32/V =Zend_Validate_File_Count/U ;Zend_Validate_Exception/T AZend_Validate_EmailAddress/S 5Zend_Validate_Digits/"R GZend_Validate_Db_RecordExists/$Q KZend_Validate_Db_NoRecordExists/P ?Zend_Validate_Db_Abstract/O 1Zend_Validate_Date/N =Zend_Validate_CreditCard/M 3Zend_Validate_Ccnum/L 9Zend_Validate_Callback/K 7Zend_Validate_Between/J 7Zend_Validate_Barcode/I AZend_Validate_Barcode_Upce/H AZend_Validate_Barcode_Upca/G AZend_Validate_Barcode_Sscc/$F KZend_Validate_Barcode_Royalmail/"E GZend_Validate_Barcode_Postnet/!D EZend_Validate_Barcode_Planet/#C IZend_Validate_Barcode_Leitcode/ B CZend_Validate_Barcode_Itf14/A AZend_Validate_Barcode_Issn/*@ WZend_Validate_Barcode_IntelligentMail/$? KZend_Validate_Barcode_Identcode/!> EZend_Validate_Barcode_Gtin14/!= EZend_Validate_Barcode_Gtin13/!< EZend_Validate_Barcode_Gtin12/; AZend_Validate_Barcode_Ean8/: AZend_Validate_Barcode_Ean5/9 AZend_Validate_Barcode_Ean2/ 8 CZend_Validate_Barcode_Ean18/ 7 CZend_Validate_Barcode_Ean14/ 6 CZend_Validate_Barcode_Ean13/ 5 CZend_Validate_Barcode_Ean12/$4 KZend_Validate_Barcode_Code93ext/!3 EZend_Validate_Barcode_Code93/$2 KZend_Validate_Barcode_Code39ext/!1 EZend_Validate_Barcode_Code39/,0 [Zend_Validate_Barcode_Code25interleaved/!/ EZend_Validate_Barcode_Code25/*. WZend_Validate_Barcode_AdapterAbstract/- 3Zend_Validate_Alpha/, 3Zend_Validate_Alnum/+ 9Zend_Validate_Abstract/* Zend_Uri/) 'Zend_Uri_Http/( 1Zend_Uri_Exception/' )Zend_Translate/& 7Zend_Translate_Plural/% =Zend_Translate_Exception/$ 9Zend_Translate_Adapter/!# EZend_Translate_Adapter_XmlTm/!" EZend_Translate_Adapter_Xliff/! AZend_Translate_Adapter_Tmx/  AZend_Translate_Adapter_Tbx/   j  pL*yV1Y;e9yA


g
9
					k	Y	/	a<dI+nL0hM-}\8{`FtU:[8            ){ UZend_Amf_Parse_Resource_MysqliResult0 z CZend_Amf_Parse_OutputStream0y AZend_Amf_Parse_InputStream0 x CZend_Amf_Parse_Deserializer0#w IZend_Amf_Parse_Amf3_Serializer0%v MZend_Amf_Parse_Amf3_Deserializer0#u IZend_Amf_Parse_Amf0_Serializer0%t MZend_Amf_Parse_Amf0_Deserializer0s 1Zend_Amf_Exception0r 1Zend_Amf_Constants0q 9Zend_Amf_Auth_Abstract0 p CZend_Amf_Adobe_Introspector0o AZend_Amf_Adobe_DbInspector0n 3Zend_Amf_Adobe_Auth0m Zend_Acl0l 'Zend_Acl_Role0k 9Zend_Acl_Role_Registry0%j MZend_Acl_Role_Registry_Exception0i /Zend_Acl_Resource0h 1Zend_Acl_Exception0g /Zend_XmlRpc_Value/f =Zend_XmlRpc_Value_Struct/e =Zend_XmlRpc_Value_String/d =Zend_XmlRpc_Value_Scalar/c 7Zend_XmlRpc_Value_Nil/b ?Zend_XmlRpc_Value_Integer/ a CZend_XmlRpc_Value_Exception/` =Zend_XmlRpc_Value_Double/_ AZend_XmlRpc_Value_DateTime/!^ EZend_XmlRpc_Value_Collection/] ?Zend_XmlRpc_Value_Boolean/!\ EZend_XmlRpc_Value_BigInteger/[ =Zend_XmlRpc_Value_Base64/Z ;Zend_XmlRpc_Value_Array/Y 1Zend_XmlRpc_Server/X ?Zend_XmlRpc_Server_System/W =Zend_XmlRpc_Server_Fault/!V EZend_XmlRpc_Server_Exception/U =Zend_XmlRpc_Server_Cache/T 5Zend_XmlRpc_Response/S ?Zend_XmlRpc_Response_Http/R 3Zend_XmlRpc_Request/Q ?Zend_XmlRpc_Request_Stdin/P =Zend_XmlRpc_Request_Http/$O KZend_XmlRpc_Generator_XmlWriter/,N [Zend_XmlRpc_Generator_GeneratorAbstract/&M OZend_XmlRpc_Generator_DomDocument/L /Zend_XmlRpc_Fault/K 7Zend_XmlRpc_Exception/J 1Zend_XmlRpc_Client/#I IZend_XmlRpc_Client_ServerProxy/+H YZend_XmlRpc_Client_ServerIntrospection/+G YZend_XmlRpc_Client_IntrospectException/%F MZend_XmlRpc_Client_HttpException/&E OZend_XmlRpc_Client_FaultException/!D EZend_XmlRpc_Client_Exception/&C OZend_Wildfire_Protocol_JsonStream/!B EZend_Wildfire_Plugin_FirePhp/.A _Zend_Wildfire_Plugin_FirePhp_TableMessage/)@ UZend_Wildfire_Plugin_FirePhp_Message/? ;Zend_Wildfire_Exception/&> OZend_Wildfire_Channel_HttpHeaders/= Zend_View/< -Zend_View_Stream/; 5Zend_View_Helper_Url/: AZend_View_Helper_Translate/9 AZend_View_Helper_ServerUrl/)8 UZend_View_Helper_RenderToPlaceholder/!7 EZend_View_Helper_Placeholder/*6 WZend_View_Helper_Placeholder_Registry/45 kZend_View_Helper_Placeholder_Registry_Exception/+4 YZend_View_Helper_Placeholder_Container/63 oZend_View_Helper_Placeholder_Container_Standalone/52 mZend_View_Helper_Placeholder_Container_Exception/41 kZend_View_Helper_Placeholder_Container_Abstract/!0 EZend_View_Helper_PartialLoop// =Zend_View_Helper_Partial/'. QZend_View_Helper_Partial_Exception/'- QZend_View_Helper_PaginationControl/ , CZend_View_Helper_Navigation/(+ SZend_View_Helper_Navigation_Sitemap/%* MZend_View_Helper_Navigation_Menu/&) OZend_View_Helper_Navigation_Links//( aZend_View_Helper_Navigation_HelperAbstract/,' [Zend_View_Helper_Navigation_Breadcrumbs/& ;Zend_View_Helper_Layout/% 7Zend_View_Helper_Json/"$ GZend_View_Helper_InlineScript/## IZend_View_Helper_HtmlQuicktime/" ?Zend_View_Helper_HtmlPage/ ! CZend_View_Helper_HtmlObject/  ?Zend_View_Helper_HtmlList/ AZend_View_Helper_HtmlFlash/! EZend_View_Helper_HtmlElement/ AZend_View_Helper_HeadTitle/ AZend_View_Helper_HeadStyle/  CZend_View_Helper_HeadScript/ ?Zend_View_Helper_HeadMeta/ ?Zend_View_Helper_HeadLink/" GZend_View_Helper_FormTextarea/ ?Zend_View_Helper_FormText/  CZend_View_Helper_FormSubmit/  CZend_View_Helper_FormSelect/ AZend_View_Helper_FormReset/ AZend_View_Helper_FormRadio/" GZend_View_Helper_FormPassword/   X  b:g=c;p=U8



q
X
-
			?	sEt6rDr<a;rHe=hE"  7 qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface0- ]Zend_Feed_Pubsubhubbub_CallbackInterface0  CZend_Feed_Builder_Interface0 
 CZend_Db_Statement_Interface0$	 KZend_Currency_CurrencyInterface0) UZend_Crypt_Math_BigInteger_Interface0+ YZend_Controller_Router_Route_Interface0% MZend_Controller_Router_Interface0) UZend_Controller_Dispatcher_Interface0% MZend_Controller_Action_Interface0 5Zend_Captcha_Adapter0! EZend_Cache_Backend_Interface0) UZend_Cache_Backend_ExtendedInterface0   CZend_Auth_Storage_Interface0  CZend_Auth_Adapter_Interface0.~ _Zend_Auth_Adapter_Http_Resolver_Interface0'} QZend_Application_Resource_Resource04| kZend_Application_Bootstrap_ResourceBootstrapper0,{ [Zend_Application_Bootstrap_Bootstrapper0z ;Zend_Acl_Role_Interface0 y CZend_Acl_Resource_Interface0x ?Zend_Acl_Assert_Interface0#w IZend_Wildfire_Plugin_Interface/$v KZend_Wildfire_Channel_Interface/u 3Zend_View_Interface/'t QZend_View_Helper_Navigation_Helper/s AZend_View_Helper_Interface/r ;Zend_Validate_Interface/+q YZend_Validate_Barcode_AdapterInterface/3p iZend_Tool_Project_Profile_FileParser_Interface/:o wZend_Tool_Project_Context_System_TopLevelRestrictable/5n mZend_Tool_Project_Context_System_NotOverwritable//m aZend_Tool_Project_Context_System_Interface/(l SZend_Tool_Project_Context_Interface/+k YZend_Tool_Framework_Registry_Interface/2j gZend_Tool_Framework_Registry_EnabledInterface/-i ]Zend_Tool_Framework_Provider_Pretendable/+h YZend_Tool_Framework_Provider_Interface/.g _Zend_Tool_Framework_Provider_Interactable/;f yZend_Tool_Framework_Provider_DocblockManifestInterface/+e YZend_Tool_Framework_Metadata_Interface/.d _Zend_Tool_Framework_Metadata_Attributable/6c oZend_Tool_Framework_Manifest_ProviderManifestable/6b oZend_Tool_Framework_Manifest_MetadataManifestable/+a YZend_Tool_Framework_Manifest_Interface/+` YZend_Tool_Framework_Manifest_Indexable/4_ kZend_Tool_Framework_Manifest_ActionManifestable/)^ UZend_Tool_Framework_Loader_Interface/8] sZend_Tool_Framework_Client_Storage_AdapterInterface/D\ 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface/;[ yZend_Tool_Framework_Client_Interactive_OutputInterface/:Z wZend_Tool_Framework_Client_Interactive_InputInterface/)Y UZend_Tool_Framework_Action_Interface/(X SZend_Text_Table_Decorator_Interface/W /Zend_Tag_Taggable/&V OZend_Soap_Wsdl_Strategy_Interface/%U MZend_Session_Validator_Interface/'T QZend_Session_SaveHandler_Interface/IS Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Interface/R 7Zend_Server_Interface/-Q ]Zend_Serializer_Adapter_AdapterInterface/4P kZend_Search_Lucene_Search_Highlighter_Interface/!O EZend_Search_Lucene_Interface/3N iZend_Search_Lucene_Index_TermsStream_Interface/$M KZend_Queue_Stomp_FrameInterface/0L cZend_Queue_Stomp_Client_ConnectionInterface/(K SZend_Queue_Adapter_AdapterInterface/J ?Zend_Pdf_Filter_Interface/&I OZend_Pdf_ElementFactory_Interface/,H [Zend_Paginator_ScrollingStyle_Interface/$G KZend_Paginator_AdapterAggregate/%F MZend_Paginator_Adapter_Interface/&E OZend_Oauth_Config_ConfigInterface/$D KZend_Memory_Container_Interface/1C eZend_Markup_Renderer_TokenConverterInterface/'B QZend_Markup_Parser_ParserInterface/)A UZend_Mail_Storage_Writable_Interface/'@ QZend_Mail_Storage_Folder_Interface/? =Zend_Mail_Part_Interface/ > CZend_Mail_Message_Interface/!= EZend_Log_Formatter_Interface/< ?Zend_Log_Filter_Interface/; ?Zend_Log_FactoryInterface/': QZend_Loader_PluginLoader_Interface/%9 MZend_Loader_Autoloader_Interface/08 cZend_Ldap_Node_Schema_ObjectClass_Interface/27 gZend_Ldap_Node_Schema_AttributeType_Interface/36 iZend_InfoCard_Xml_Security_Transform_Interface/   h  iK2{X3o?\/c<



f
?
				b	8	e3hO+_<oI'jI( vW2dBjM)               c =Zend_Cache_Frontend_File0b ?Zend_Cache_Frontend_Class0 a CZend_Cache_Frontend_Capture0` 5Zend_Cache_Exception0_ +Zend_Cache_Core0^ 1Zend_Cache_Backend0"] GZend_Cache_Backend_ZendServer0(\ SZend_Cache_Backend_ZendServer_ShMem0'[ QZend_Cache_Backend_ZendServer_Disk0$Z KZend_Cache_Backend_ZendPlatform0Y ?Zend_Cache_Backend_Xcache0!X EZend_Cache_Backend_TwoLevels0W ;Zend_Cache_Backend_Test0V ?Zend_Cache_Backend_Static0U ?Zend_Cache_Backend_Sqlite0!T EZend_Cache_Backend_Memcached0S ;Zend_Cache_Backend_File0!R EZend_Cache_Backend_BlackHole0Q 9Zend_Cache_Backend_Apc0P %Zend_Barcode0+O YZend_Barcode_Renderer_RendererAbstract0N ?Zend_Barcode_Renderer_Pdf0 M CZend_Barcode_Renderer_Image0$L KZend_Barcode_Renderer_Exception0K =Zend_Barcode_Object_Upce0J =Zend_Barcode_Object_Upca0"I GZend_Barcode_Object_Royalmail0 H CZend_Barcode_Object_Postnet0G AZend_Barcode_Object_Planet0'F QZend_Barcode_Object_ObjectAbstract0!E EZend_Barcode_Object_Leitcode0D ?Zend_Barcode_Object_Itf140"C GZend_Barcode_Object_Identcode0"B GZend_Barcode_Object_Exception0A ?Zend_Barcode_Object_Error0@ =Zend_Barcode_Object_Ean80? =Zend_Barcode_Object_Ean50> =Zend_Barcode_Object_Ean20= ?Zend_Barcode_Object_Ean130< AZend_Barcode_Object_Code390*; WZend_Barcode_Object_Code25interleaved0: AZend_Barcode_Object_Code2509 9Zend_Barcode_Exception08 Zend_Auth07 ?Zend_Auth_Storage_Session0$6 KZend_Auth_Storage_NonPersistent0 5 CZend_Auth_Storage_Exception04 -Zend_Auth_Result03 3Zend_Auth_Exception02 =Zend_Auth_Adapter_OpenId01 9Zend_Auth_Adapter_Ldap00 AZend_Auth_Adapter_InfoCard0/ 9Zend_Auth_Adapter_Http0). UZend_Auth_Adapter_Http_Resolver_File0.- _Zend_Auth_Adapter_Http_Resolver_Exception0 , CZend_Auth_Adapter_Exception0+ =Zend_Auth_Adapter_Digest0* ?Zend_Auth_Adapter_DbTable0) -Zend_Application0#( IZend_Application_Resource_View0(' SZend_Application_Resource_Translate0&& OZend_Application_Resource_Session0%% MZend_Application_Resource_Router0/$ aZend_Application_Resource_ResourceAbstract0)# UZend_Application_Resource_Navigation0&" OZend_Application_Resource_Multidb0&! OZend_Application_Resource_Modules0#  IZend_Application_Resource_Mail0" GZend_Application_Resource_Log0% MZend_Application_Resource_Locale0% MZend_Application_Resource_Layout0. _Zend_Application_Resource_Frontcontroller0( SZend_Application_Resource_Exception0# IZend_Application_Resource_Dojo0! EZend_Application_Resource_Db0+ YZend_Application_Resource_Cachemanager0& OZend_Application_Module_Bootstrap0' QZend_Application_Module_Autoloader0 AZend_Application_Exception0) UZend_Application_Bootstrap_Exception01 eZend_Application_Bootstrap_BootstrapAbstract0) UZend_Application_Bootstrap_Bootstrap0 ?Zend_Amf_Value_TraitsInfo0- ]Zend_Amf_Value_Messaging_RemotingMessage0* WZend_Amf_Value_Messaging_ErrorMessage0, [Zend_Amf_Value_Messaging_CommandMessage0* WZend_Amf_Value_Messaging_AsyncMessage0- ]Zend_Amf_Value_Messaging_ArrayCollection00 cZend_Amf_Value_Messaging_AcknowledgeMessage0-
 ]Zend_Amf_Value_Messaging_AbstractMessage0!	 EZend_Amf_Value_MessageHeader0 AZend_Amf_Value_MessageBody0 =Zend_Amf_Value_ByteArray0 AZend_Amf_Util_BinaryStream0 +Zend_Amf_Server0 ?Zend_Amf_Server_Exception0 /Zend_Amf_Response0 9Zend_Amf_Response_Http0 -Zend_Amf_Request0  7Zend_Amf_Request_Http0 ?Zend_Amf_Parse_TypeLoader0~ ?Zend_Amf_Parse_Serializer0#} IZend_Amf_Parse_Resource_Stream0(| SZend_Amf_Parse_Resource_MysqlResult0   a  |iO5]5S'S-qS;





m
G
+
			o	3\'n4dB$U,_5i@f;_G                                       )D UZend_Crypt_Math_BigInteger_Exception0&C OZend_Crypt_Math_BigInteger_Bcmath0B +Zend_Crypt_Hmac0A ?Zend_Crypt_Hmac_Exception0@ 5Zend_Crypt_Exception0? =Zend_Crypt_DiffieHellman0'> QZend_Crypt_DiffieHellman_Exception0!= EZend_Controller_Router_Route0(< SZend_Controller_Router_Route_Static0'; QZend_Controller_Router_Route_Regex0(: SZend_Controller_Router_Route_Module0*9 WZend_Controller_Router_Route_Hostname0'8 QZend_Controller_Router_Route_Chain0*7 WZend_Controller_Router_Route_Abstract0#6 IZend_Controller_Router_Rewrite0%5 MZend_Controller_Router_Exception0$4 KZend_Controller_Router_Abstract0*3 WZend_Controller_Response_HttpTestCase0"2 GZend_Controller_Response_Http0'1 QZend_Controller_Response_Exception0!0 EZend_Controller_Response_Cli0&/ OZend_Controller_Response_Abstract0#. IZend_Controller_Request_Simple0)- UZend_Controller_Request_HttpTestCase0!, EZend_Controller_Request_Http0&+ OZend_Controller_Request_Exception0&* OZend_Controller_Request_Apache4040%) MZend_Controller_Request_Abstract0&( OZend_Controller_Plugin_PutHandler0(' SZend_Controller_Plugin_ErrorHandler0"& GZend_Controller_Plugin_Broker0'% QZend_Controller_Plugin_ActionStack0$$ KZend_Controller_Plugin_Abstract0# 7Zend_Controller_Front0" ?Zend_Controller_Exception0(! SZend_Controller_Dispatcher_Standard0)  UZend_Controller_Dispatcher_Exception0( SZend_Controller_Dispatcher_Abstract0 9Zend_Controller_Action0( SZend_Controller_Action_HelperBroker06 oZend_Controller_Action_HelperBroker_PriorityStack0/ aZend_Controller_Action_Helper_ViewRenderer0& OZend_Controller_Action_Helper_Url0- ]Zend_Controller_Action_Helper_Redirector0' QZend_Controller_Action_Helper_Json01 eZend_Controller_Action_Helper_FlashMessenger00 cZend_Controller_Action_Helper_ContextSwitch0( SZend_Controller_Action_Helper_Cache0< {Zend_Controller_Action_Helper_AutoCompleteScriptaculous03 iZend_Controller_Action_Helper_AutoCompleteDojo08 sZend_Controller_Action_Helper_AutoComplete_Abstract0. _Zend_Controller_Action_Helper_AjaxContext0. _Zend_Controller_Action_Helper_ActionStack0+ YZend_Controller_Action_Helper_Abstract0% MZend_Controller_Action_Exception0 3Zend_Console_Getopt0" GZend_Console_Getopt_Exception0 #Zend_Config0
 +Zend_Config_Xml0	 1Zend_Config_Writer0 9Zend_Config_Writer_Xml0 9Zend_Config_Writer_Ini0$ KZend_Config_Writer_FileAbstract0 =Zend_Config_Writer_Array0 +Zend_Config_Ini0 7Zend_Config_Exception0$ KZend_CodeGenerator_Php_Property01 eZend_CodeGenerator_Php_Property_DefaultValue0%  MZend_CodeGenerator_Php_Parameter02 gZend_CodeGenerator_Php_Parameter_DefaultValue0"~ GZend_CodeGenerator_Php_Method0,} [Zend_CodeGenerator_Php_Member_Container0+| YZend_CodeGenerator_Php_Member_Abstract0 { CZend_CodeGenerator_Php_File0%z MZend_CodeGenerator_Php_Exception0$y KZend_CodeGenerator_Php_Docblock0(x SZend_CodeGenerator_Php_Docblock_Tag0/w aZend_CodeGenerator_Php_Docblock_Tag_Return0.v _Zend_CodeGenerator_Php_Docblock_Tag_Param00u cZend_CodeGenerator_Php_Docblock_Tag_License0!t EZend_CodeGenerator_Php_Class0 s CZend_CodeGenerator_Php_Body0$r KZend_CodeGenerator_Php_Abstract0!q EZend_CodeGenerator_Exception0 p CZend_CodeGenerator_Abstract0o /Zend_Captcha_Word0n 9Zend_Captcha_ReCaptcha0m 1Zend_Captcha_Image0l 3Zend_Captcha_Figlet0k 9Zend_Captcha_Exception0j /Zend_Captcha_Dumb0i /Zend_Captcha_Base0h !Zend_Cache0g 1Zend_Cache_Manager0f =Zend_Cache_Frontend_Page0e AZend_Cache_Frontend_Output0!d EZend_Cache_Frontend_Function0   m  |Y7jX7bCrR0sR3




x
M
,
				~	S	2	qW1
pS< _/vH$T/S&xL$sT=          -1 ]Zend_Dojo_View_Helper_AccordionContainer00 =Zend_Dojo_View_Exception0/ )Zend_Dojo_Form0. 9Zend_Dojo_Form_SubForm0*- WZend_Dojo_Form_Element_VerticalSlider0-, ]Zend_Dojo_Form_Element_ValidationTextBox0'+ QZend_Dojo_Form_Element_TimeTextBox0#* IZend_Dojo_Form_Element_TextBox0$) KZend_Dojo_Form_Element_Textarea0(( SZend_Dojo_Form_Element_SubmitButton0"' GZend_Dojo_Form_Element_Slider0*& WZend_Dojo_Form_Element_SimpleTextarea0'% QZend_Dojo_Form_Element_RadioButton0+$ YZend_Dojo_Form_Element_PasswordTextBox0)# UZend_Dojo_Form_Element_NumberTextBox0)" UZend_Dojo_Form_Element_NumberSpinner0,! [Zend_Dojo_Form_Element_HorizontalSlider0+  YZend_Dojo_Form_Element_FilteringSelect0" GZend_Dojo_Form_Element_Editor0& OZend_Dojo_Form_Element_DijitMulti0! EZend_Dojo_Form_Element_Dijit0' QZend_Dojo_Form_Element_DateTextBox0+ YZend_Dojo_Form_Element_CurrencyTextBox0$ KZend_Dojo_Form_Element_ComboBox0$ KZend_Dojo_Form_Element_CheckBox0" GZend_Dojo_Form_Element_Button0  CZend_Dojo_Form_DisplayGroup0* WZend_Dojo_Form_Decorator_TabContainer0, [Zend_Dojo_Form_Decorator_StackContainer0, [Zend_Dojo_Form_Decorator_SplitContainer0' QZend_Dojo_Form_Decorator_DijitForm0* WZend_Dojo_Form_Decorator_DijitElement0, [Zend_Dojo_Form_Decorator_DijitContainer0) UZend_Dojo_Form_Decorator_ContentPane0- ]Zend_Dojo_Form_Decorator_BorderContainer0+ YZend_Dojo_Form_Decorator_AccordionPane00 cZend_Dojo_Form_Decorator_AccordionContainer0 3Zend_Dojo_Exception0 )Zend_Dojo_Data0
 5Zend_Dojo_BuildLayer0	 !Zend_Debug0 Zend_Db0 'Zend_Db_Table0 5Zend_Db_Table_Select0# IZend_Db_Table_Select_Exception0 5Zend_Db_Table_Rowset0# IZend_Db_Table_Rowset_Exception0" GZend_Db_Table_Rowset_Abstract0 /Zend_Db_Table_Row0   CZend_Db_Table_Row_Exception0 AZend_Db_Table_Row_Abstract0~ ;Zend_Db_Table_Exception0} =Zend_Db_Table_Definition0| 9Zend_Db_Table_Abstract0{ /Zend_Db_Statement0z =Zend_Db_Statement_Sqlsrv0'y QZend_Db_Statement_Sqlsrv_Exception0x 7Zend_Db_Statement_Pdo0w ?Zend_Db_Statement_Pdo_Oci0v ?Zend_Db_Statement_Pdo_Ibm0u =Zend_Db_Statement_Oracle0't QZend_Db_Statement_Oracle_Exception0s =Zend_Db_Statement_Mysqli0'r QZend_Db_Statement_Mysqli_Exception0 q CZend_Db_Statement_Exception0p 7Zend_Db_Statement_Db20$o KZend_Db_Statement_Db2_Exception0n )Zend_Db_Select0m =Zend_Db_Select_Exception0l -Zend_Db_Profiler0k 9Zend_Db_Profiler_Query0j =Zend_Db_Profiler_Firebug0i AZend_Db_Profiler_Exception0h %Zend_Db_Expr0g /Zend_Db_Exception0f 9Zend_Db_Adapter_Sqlsrv0%e MZend_Db_Adapter_Sqlsrv_Exception0d AZend_Db_Adapter_Pdo_Sqlite0c ?Zend_Db_Adapter_Pdo_Pgsql0b ;Zend_Db_Adapter_Pdo_Oci0a ?Zend_Db_Adapter_Pdo_Mysql0` ?Zend_Db_Adapter_Pdo_Mssql0_ ;Zend_Db_Adapter_Pdo_Ibm0 ^ CZend_Db_Adapter_Pdo_Ibm_Ids0 ] CZend_Db_Adapter_Pdo_Ibm_Db20!\ EZend_Db_Adapter_Pdo_Abstract0[ 9Zend_Db_Adapter_Oracle0%Z MZend_Db_Adapter_Oracle_Exception0Y 9Zend_Db_Adapter_Mysqli0%X MZend_Db_Adapter_Mysqli_Exception0W ?Zend_Db_Adapter_Exception0V 3Zend_Db_Adapter_Db20"U GZend_Db_Adapter_Db2_Exception0T =Zend_Db_Adapter_Abstract0S Zend_Date0R 3Zend_Date_Exception0Q 5Zend_Date_DateObject0P -Zend_Date_Cities0O 'Zend_Currency0N ;Zend_Currency_Exception0M !Zend_Crypt0L )Zend_Crypt_Rsa0K 1Zend_Crypt_Rsa_Key0J ?Zend_Crypt_Rsa_Key_Public0I AZend_Crypt_Rsa_Key_Private0H +Zend_Crypt_Math0G ?Zend_Crypt_Math_Exception0F AZend_Crypt_Math_BigInteger0#E IZend_Crypt_Math_BigInteger_Gmp0   _  Z3	c6	pAd?hB




m
O
8
!
					b	H	.	_3 rH)vR/|CsCObI3I           8 sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed09 uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry06 oZend_Feed_Writer_Extension_Content_Renderer_Entry02 gZend_Feed_Writer_Extension_Atom_Renderer_Feed06 oZend_Feed_Writer_Exception_InvalidMethodException0 9Zend_Feed_Writer_Entry0
 =Zend_Feed_Writer_Deleted0	 'Zend_Feed_Rss0 -Zend_Feed_Reader0 =Zend_Feed_Reader_FeedSet0" GZend_Feed_Reader_FeedAbstract0 ?Zend_Feed_Reader_Feed_Rss0 AZend_Feed_Reader_Feed_Atom0& OZend_Feed_Reader_Feed_Atom_Source03 iZend_Feed_Reader_Extension_WellFormedWeb_Entry0, [Zend_Feed_Reader_Extension_Thread_Entry00  cZend_Feed_Reader_Extension_Syndication_Feed0+ YZend_Feed_Reader_Extension_Slash_Entry0,~ [Zend_Feed_Reader_Extension_Podcast_Feed0-} ]Zend_Feed_Reader_Extension_Podcast_Entry0,| [Zend_Feed_Reader_Extension_FeedAbstract0-{ ]Zend_Feed_Reader_Extension_EntryAbstract0/z aZend_Feed_Reader_Extension_DublinCore_Feed00y cZend_Feed_Reader_Extension_DublinCore_Entry04x kZend_Feed_Reader_Extension_CreativeCommons_Feed05w mZend_Feed_Reader_Extension_CreativeCommons_Entry0-v ]Zend_Feed_Reader_Extension_Content_Entry0)u UZend_Feed_Reader_Extension_Atom_Feed0*t WZend_Feed_Reader_Extension_Atom_Entry0#s IZend_Feed_Reader_EntryAbstract0r AZend_Feed_Reader_Entry_Rss0 q CZend_Feed_Reader_Entry_Atom0 p CZend_Feed_Reader_Collection03o iZend_Feed_Reader_Collection_CollectionAbstract0)n UZend_Feed_Reader_Collection_Category0'm QZend_Feed_Reader_Collection_Author0l 9Zend_Feed_Pubsubhubbub0&k OZend_Feed_Pubsubhubbub_Subscriber0/j aZend_Feed_Pubsubhubbub_Subscriber_Callback0%i MZend_Feed_Pubsubhubbub_Publisher0.h _Zend_Feed_Pubsubhubbub_Model_Subscription0/g aZend_Feed_Pubsubhubbub_Model_ModelAbstract0(f SZend_Feed_Pubsubhubbub_HttpResponse0%e MZend_Feed_Pubsubhubbub_Exception0,d [Zend_Feed_Pubsubhubbub_CallbackAbstract0c 3Zend_Feed_Exception0b 3Zend_Feed_Entry_Rss0a 5Zend_Feed_Entry_Atom0` =Zend_Feed_Entry_Abstract0_ /Zend_Feed_Element0^ /Zend_Feed_Builder0] =Zend_Feed_Builder_Header0$\ KZend_Feed_Builder_Header_Itunes0 [ CZend_Feed_Builder_Exception0Z ;Zend_Feed_Builder_Entry0Y )Zend_Feed_Atom0X 1Zend_Feed_Abstract0W )Zend_Exception0V )Zend_Dom_Query0U 7Zend_Dom_Query_Result0T =Zend_Dom_Query_Css2Xpath0S 1Zend_Dom_Exception0R Zend_Dojo0)Q UZend_Dojo_View_Helper_VerticalSlider0,P [Zend_Dojo_View_Helper_ValidationTextBox0&O OZend_Dojo_View_Helper_TimeTextBox0"N GZend_Dojo_View_Helper_TextBox0#M IZend_Dojo_View_Helper_Textarea0'L QZend_Dojo_View_Helper_TabContainer0'K QZend_Dojo_View_Helper_SubmitButton0)J UZend_Dojo_View_Helper_StackContainer0)I UZend_Dojo_View_Helper_SplitContainer0!H EZend_Dojo_View_Helper_Slider0)G UZend_Dojo_View_Helper_SimpleTextarea0&F OZend_Dojo_View_Helper_RadioButton0*E WZend_Dojo_View_Helper_PasswordTextBox0(D SZend_Dojo_View_Helper_NumberTextBox0(C SZend_Dojo_View_Helper_NumberSpinner0+B YZend_Dojo_View_Helper_HorizontalSlider0A AZend_Dojo_View_Helper_Form0*@ WZend_Dojo_View_Helper_FilteringSelect0!? EZend_Dojo_View_Helper_Editor0> AZend_Dojo_View_Helper_Dojo0)= UZend_Dojo_View_Helper_Dojo_Container0)< UZend_Dojo_View_Helper_DijitContainer0 ; CZend_Dojo_View_Helper_Dijit0&: OZend_Dojo_View_Helper_DateTextBox0&9 OZend_Dojo_View_Helper_CustomDijit0*8 WZend_Dojo_View_Helper_CurrencyTextBox0&7 OZend_Dojo_View_Helper_ContentPane0#6 IZend_Dojo_View_Helper_ComboBox0#5 IZend_Dojo_View_Helper_CheckBox0!4 EZend_Dojo_View_Helper_Button0*3 WZend_Dojo_View_Helper_BorderContainer0(2 SZend_Dojo_View_Helper_AccordionPane0   g  h0Hq8{[B0hK/




a
@

					q	M	1	kJ,mP.V'Q(r^9wT.	wS1qR1                       w AZend_Form_Element_Checkbox0v ?Zend_Form_Element_Captcha0u =Zend_Form_Element_Button0t 9Zend_Form_DisplayGroup0#s IZend_Form_Decorator_ViewScript0#r IZend_Form_Decorator_ViewHelper0 q CZend_Form_Decorator_Tooltip0(p SZend_Form_Decorator_PrepareElements0o ?Zend_Form_Decorator_Label0n ?Zend_Form_Decorator_Image0 m CZend_Form_Decorator_HtmlTag0#l IZend_Form_Decorator_FormErrors0%k MZend_Form_Decorator_FormElements0j =Zend_Form_Decorator_Form0i =Zend_Form_Decorator_File0!h EZend_Form_Decorator_Fieldset0"g GZend_Form_Decorator_Exception0f AZend_Form_Decorator_Errors0$e KZend_Form_Decorator_DtDdWrapper0$d KZend_Form_Decorator_Description0 c CZend_Form_Decorator_Captcha0%b MZend_Form_Decorator_Captcha_Word0!a EZend_Form_Decorator_Callback0!` EZend_Form_Decorator_Abstract0_ #Zend_Filter0+^ YZend_Filter_Word_UnderscoreToSeparator0&] OZend_Filter_Word_UnderscoreToDash0+\ YZend_Filter_Word_UnderscoreToCamelCase0*[ WZend_Filter_Word_SeparatorToSeparator0%Z MZend_Filter_Word_SeparatorToDash0*Y WZend_Filter_Word_SeparatorToCamelCase0(X SZend_Filter_Word_Separator_Abstract0&W OZend_Filter_Word_DashToUnderscore0%V MZend_Filter_Word_DashToSeparator0%U MZend_Filter_Word_DashToCamelCase0+T YZend_Filter_Word_CamelCaseToUnderscore0*S WZend_Filter_Word_CamelCaseToSeparator0%R MZend_Filter_Word_CamelCaseToDash0Q 7Zend_Filter_StripTags0P ?Zend_Filter_StripNewlines0O 9Zend_Filter_StringTrim0N ?Zend_Filter_StringToUpper0M ?Zend_Filter_StringToLower0L 5Zend_Filter_RealPath0K ;Zend_Filter_PregReplace0J -Zend_Filter_Null0&I OZend_Filter_NormalizedToLocalized0&H OZend_Filter_LocalizedToNormalized0G +Zend_Filter_Int0F /Zend_Filter_Input0E 7Zend_Filter_Inflector0D =Zend_Filter_HtmlEntities0C AZend_Filter_File_UpperCase0B ;Zend_Filter_File_Rename0A AZend_Filter_File_LowerCase0@ =Zend_Filter_File_Encrypt0? =Zend_Filter_File_Decrypt0> 7Zend_Filter_Exception0= 3Zend_Filter_Encrypt0 < CZend_Filter_Encrypt_Openssl0; AZend_Filter_Encrypt_Mcrypt0: +Zend_Filter_Dir09 1Zend_Filter_Digits08 3Zend_Filter_Decrypt07 9Zend_Filter_Decompress06 5Zend_Filter_Compress05 =Zend_Filter_Compress_Zip04 =Zend_Filter_Compress_Tar03 =Zend_Filter_Compress_Rar02 =Zend_Filter_Compress_Lzf01 ;Zend_Filter_Compress_Gz0*0 WZend_Filter_Compress_CompressAbstract0/ =Zend_Filter_Compress_Bz20. 5Zend_Filter_Callback0- 3Zend_Filter_Boolean0, 5Zend_Filter_BaseName0+ /Zend_Filter_Alpha0* /Zend_Filter_Alnum0) 1Zend_File_Transfer0!( EZend_File_Transfer_Exception0$' KZend_File_Transfer_Adapter_Http0(& SZend_File_Transfer_Adapter_Abstract0% Zend_Feed0$ -Zend_Feed_Writer0# ;Zend_Feed_Writer_Source0/" aZend_Feed_Writer_Renderer_RendererAbstract0'! QZend_Feed_Writer_Renderer_Feed_Rss0(  SZend_Feed_Writer_Renderer_Feed_Atom0/ aZend_Feed_Writer_Renderer_Feed_Atom_Source05 mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract0( SZend_Feed_Writer_Renderer_Entry_Rss0) UZend_Feed_Writer_Renderer_Entry_Atom01 eZend_Feed_Writer_Renderer_Entry_Atom_Deleted0 7Zend_Feed_Writer_Feed0' QZend_Feed_Writer_Feed_FeedAbstract0< {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry08 sZend_Feed_Writer_Extension_Threading_Renderer_Entry04 kZend_Feed_Writer_Extension_Slash_Renderer_Entry00 cZend_Feed_Writer_Extension_RendererAbstract04 kZend_Feed_Writer_Extension_ITunes_Renderer_Feed05 mZend_Feed_Writer_Extension_ITunes_Renderer_Entry0+ YZend_Feed_Writer_Extension_ITunes_Feed0, [Zend_Feed_Writer_Extension_ITunes_Entry0   e  }]=kJ+a3Z0b9



w
Q
+
				^	5	y]6`>xPc4
a<#}Q$^/xN%                              \ +Zend_Gdata_Docs0[ 7Zend_Gdata_Docs_Query0%Z MZend_Gdata_Docs_DocumentListFeed0&Y OZend_Gdata_Docs_DocumentListEntry0X 9Zend_Gdata_ClientLogin0W 3Zend_Gdata_Calendar0!V EZend_Gdata_Calendar_ListFeed0"U GZend_Gdata_Calendar_ListEntry0-T ]Zend_Gdata_Calendar_Extension_WebContent0+S YZend_Gdata_Calendar_Extension_Timezone09R uZend_Gdata_Calendar_Extension_SendEventNotifications0+Q YZend_Gdata_Calendar_Extension_Selected0+P YZend_Gdata_Calendar_Extension_QuickAdd0'O QZend_Gdata_Calendar_Extension_Link0)N UZend_Gdata_Calendar_Extension_Hidden0(M SZend_Gdata_Calendar_Extension_Color0.L _Zend_Gdata_Calendar_Extension_AccessLevel0#K IZend_Gdata_Calendar_EventQuery0"J GZend_Gdata_Calendar_EventFeed0#I IZend_Gdata_Calendar_EventEntry0H -Zend_Gdata_Books0!G EZend_Gdata_Books_VolumeQuery0 F CZend_Gdata_Books_VolumeFeed0!E EZend_Gdata_Books_VolumeEntry0+D YZend_Gdata_Books_Extension_Viewability0-C ]Zend_Gdata_Books_Extension_ThumbnailLink0&B OZend_Gdata_Books_Extension_Review0+A YZend_Gdata_Books_Extension_PreviewLink0(@ SZend_Gdata_Books_Extension_InfoLink0-? ]Zend_Gdata_Books_Extension_Embeddability0)> UZend_Gdata_Books_Extension_BooksLink0-= ]Zend_Gdata_Books_Extension_BooksCategory0.< _Zend_Gdata_Books_Extension_AnnotationLink0$; KZend_Gdata_Books_CollectionFeed0%: MZend_Gdata_Books_CollectionEntry09 1Zend_Gdata_AuthSub08 )Zend_Gdata_App0$7 KZend_Gdata_App_VersionException06 3Zend_Gdata_App_Util0#5 IZend_Gdata_App_MediaFileSource04 ?Zend_Gdata_App_MediaEntry023 gZend_Gdata_App_LoggingHttpClientAdapterSocket02 AZend_Gdata_App_IOException0,1 [Zend_Gdata_App_InvalidArgumentException0!0 EZend_Gdata_App_HttpException0$/ KZend_Gdata_App_FeedSourceParent0#. IZend_Gdata_App_FeedEntryParent0- 3Zend_Gdata_App_Feed0, =Zend_Gdata_App_Extension0!+ EZend_Gdata_App_Extension_Uri0%* MZend_Gdata_App_Extension_Updated0#) IZend_Gdata_App_Extension_Title0"( GZend_Gdata_App_Extension_Text0%' MZend_Gdata_App_Extension_Summary0&& OZend_Gdata_App_Extension_Subtitle0$% KZend_Gdata_App_Extension_Source0$$ KZend_Gdata_App_Extension_Rights0'# QZend_Gdata_App_Extension_Published0$" KZend_Gdata_App_Extension_Person0"! GZend_Gdata_App_Extension_Name0"  GZend_Gdata_App_Extension_Logo0" GZend_Gdata_App_Extension_Link0  CZend_Gdata_App_Extension_Id0" GZend_Gdata_App_Extension_Icon0' QZend_Gdata_App_Extension_Generator0# IZend_Gdata_App_Extension_Email0% MZend_Gdata_App_Extension_Element0$ KZend_Gdata_App_Extension_Edited0# IZend_Gdata_App_Extension_Draft0% MZend_Gdata_App_Extension_Control0) UZend_Gdata_App_Extension_Contributor0% MZend_Gdata_App_Extension_Content0& OZend_Gdata_App_Extension_Category0$ KZend_Gdata_App_Extension_Author0 =Zend_Gdata_App_Exception0 5Zend_Gdata_App_Entry0, [Zend_Gdata_App_CaptchaRequiredException0# IZend_Gdata_App_BaseMediaSource0 3Zend_Gdata_App_Base0* WZend_Gdata_App_BadMethodCallException0! EZend_Gdata_App_AuthException0 Zend_Form0
 /Zend_Form_SubForm0	 3Zend_Form_Exception0 /Zend_Form_Element0 ;Zend_Form_Element_Xhtml0 AZend_Form_Element_Textarea0 9Zend_Form_Element_Text0 =Zend_Form_Element_Submit0 =Zend_Form_Element_Select0 ;Zend_Form_Element_Reset0 ;Zend_Form_Element_Radio0  AZend_Form_Element_Password0" GZend_Form_Element_Multiselect0$~ KZend_Form_Element_MultiCheckbox0} ;Zend_Form_Element_Multi0| ;Zend_Form_Element_Image0{ =Zend_Form_Element_Hidden0z 9Zend_Form_Element_Hash0y 9Zend_Form_Element_File0 x CZend_Form_Element_Exception0   c  o@{KrJwO(vP) 


x
F
				j	D	oW/N/\5|Z7kH)U+[0qS0                   -? ]Zend_Gdata_Media_Extension_MediaCategory0> 9Zend_Gdata_Media_Entry0= AZend_Gdata_Kind_EventEntry0< 7Zend_Gdata_HttpClient0*; WZend_Gdata_HttpAdapterStreamingSocket0): UZend_Gdata_HttpAdapterStreamingProxy09 /Zend_Gdata_Health08 ;Zend_Gdata_Health_Query0&7 OZend_Gdata_Health_ProfileListFeed0'6 QZend_Gdata_Health_ProfileListEntry0"5 GZend_Gdata_Health_ProfileFeed0#4 IZend_Gdata_Health_ProfileEntry0$3 KZend_Gdata_Health_Extension_Ccr02 )Zend_Gdata_Geo01 3Zend_Gdata_Geo_Feed0$0 KZend_Gdata_Geo_Extension_GmlPos0&/ OZend_Gdata_Geo_Extension_GmlPoint0). UZend_Gdata_Geo_Extension_GeoRssWhere0- 5Zend_Gdata_Geo_Entry0, -Zend_Gdata_Gbase0"+ GZend_Gdata_Gbase_SnippetQuery0!* EZend_Gdata_Gbase_SnippetFeed0") GZend_Gdata_Gbase_SnippetEntry0( 9Zend_Gdata_Gbase_Query0' AZend_Gdata_Gbase_ItemQuery0& ?Zend_Gdata_Gbase_ItemFeed0% AZend_Gdata_Gbase_ItemEntry0$ 7Zend_Gdata_Gbase_Feed0-# ]Zend_Gdata_Gbase_Extension_BaseAttribute0" 9Zend_Gdata_Gbase_Entry0! -Zend_Gdata_Gapps0  AZend_Gdata_Gapps_UserQuery0 ?Zend_Gdata_Gapps_UserFeed0 AZend_Gdata_Gapps_UserEntry0& OZend_Gdata_Gapps_ServiceException0 9Zend_Gdata_Gapps_Query0# IZend_Gdata_Gapps_NicknameQuery0" GZend_Gdata_Gapps_NicknameFeed0# IZend_Gdata_Gapps_NicknameEntry0% MZend_Gdata_Gapps_Extension_Quota0( SZend_Gdata_Gapps_Extension_Nickname0$ KZend_Gdata_Gapps_Extension_Name0% MZend_Gdata_Gapps_Extension_Login0) UZend_Gdata_Gapps_Extension_EmailList0 9Zend_Gdata_Gapps_Error0- ]Zend_Gdata_Gapps_EmailListRecipientQuery0, [Zend_Gdata_Gapps_EmailListRecipientFeed0- ]Zend_Gdata_Gapps_EmailListRecipientEntry0$ KZend_Gdata_Gapps_EmailListQuery0# IZend_Gdata_Gapps_EmailListFeed0$ KZend_Gdata_Gapps_EmailListEntry0 +Zend_Gdata_Feed0 5Zend_Gdata_Extension0
 =Zend_Gdata_Extension_Who0	 AZend_Gdata_Extension_Where0 ?Zend_Gdata_Extension_When0$ KZend_Gdata_Extension_Visibility0& OZend_Gdata_Extension_Transparency0" GZend_Gdata_Extension_Reminder0- ]Zend_Gdata_Extension_RecurrenceException0$ KZend_Gdata_Extension_Recurrence0  CZend_Gdata_Extension_Rating0' QZend_Gdata_Extension_OriginalEvent00  cZend_Gdata_Extension_OpenSearchTotalResults0. _Zend_Gdata_Extension_OpenSearchStartIndex00~ cZend_Gdata_Extension_OpenSearchItemsPerPage0"} GZend_Gdata_Extension_FeedLink0*| WZend_Gdata_Extension_ExtendedProperty0%{ MZend_Gdata_Extension_EventStatus0#z IZend_Gdata_Extension_EntryLink0"y GZend_Gdata_Extension_Comments0&x OZend_Gdata_Extension_AttendeeType0(w SZend_Gdata_Extension_AttendeeStatus0v +Zend_Gdata_Exif0u 5Zend_Gdata_Exif_Feed0#t IZend_Gdata_Exif_Extension_Time0#s IZend_Gdata_Exif_Extension_Tags0$r KZend_Gdata_Exif_Extension_Model0#q IZend_Gdata_Exif_Extension_Make0"p GZend_Gdata_Exif_Extension_Iso0,o [Zend_Gdata_Exif_Extension_ImageUniqueId0$n KZend_Gdata_Exif_Extension_FStop0*m WZend_Gdata_Exif_Extension_FocalLength0$l KZend_Gdata_Exif_Extension_Flash0'k QZend_Gdata_Exif_Extension_Exposure0'j QZend_Gdata_Exif_Extension_Distance0i 7Zend_Gdata_Exif_Entry0h -Zend_Gdata_Entry0g 7Zend_Gdata_DublinCore0*f WZend_Gdata_DublinCore_Extension_Title0,e [Zend_Gdata_DublinCore_Extension_Subject0+d YZend_Gdata_DublinCore_Extension_Rights0.c _Zend_Gdata_DublinCore_Extension_Publisher0-b ]Zend_Gdata_DublinCore_Extension_Language0/a aZend_Gdata_DublinCore_Extension_Identifier0+` YZend_Gdata_DublinCore_Extension_Format00_ cZend_Gdata_DublinCore_Extension_Description0)^ UZend_Gdata_DublinCore_Extension_Date0,] [Zend_Gdata_DublinCore_Extension_Creator0   [  o;QrY6c8U



j
A
				V	%rDuQ,	kA^-}LvN&Z/uG   ) UZend_Gdata_YouTube_Extension_Hobbies0( SZend_Gdata_YouTube_Extension_Gender0+ YZend_Gdata_YouTube_Extension_FirstName0* WZend_Gdata_YouTube_Extension_Duration0- ]Zend_Gdata_YouTube_Extension_Description0+ YZend_Gdata_YouTube_Extension_CountHint0) UZend_Gdata_YouTube_Extension_Control0) UZend_Gdata_YouTube_Extension_Company0' QZend_Gdata_YouTube_Extension_Books0% MZend_Gdata_YouTube_Extension_Age0) UZend_Gdata_YouTube_Extension_AboutMe0# IZend_Gdata_YouTube_ContactFeed0$ KZend_Gdata_YouTube_ContactEntry0# IZend_Gdata_YouTube_CommentFeed0$ KZend_Gdata_YouTube_CommentEntry0$ KZend_Gdata_YouTube_ActivityFeed0%
 MZend_Gdata_YouTube_ActivityEntry0	 ;Zend_Gdata_Spreadsheets0* WZend_Gdata_Spreadsheets_WorksheetFeed0+ YZend_Gdata_Spreadsheets_WorksheetEntry0, [Zend_Gdata_Spreadsheets_SpreadsheetFeed0- ]Zend_Gdata_Spreadsheets_SpreadsheetEntry0& OZend_Gdata_Spreadsheets_ListQuery0% MZend_Gdata_Spreadsheets_ListFeed0& OZend_Gdata_Spreadsheets_ListEntry0/ aZend_Gdata_Spreadsheets_Extension_RowCount0-  ]Zend_Gdata_Spreadsheets_Extension_Custom0/ aZend_Gdata_Spreadsheets_Extension_ColCount0+~ YZend_Gdata_Spreadsheets_Extension_Cell0*} WZend_Gdata_Spreadsheets_DocumentQuery0&| OZend_Gdata_Spreadsheets_CellQuery0%{ MZend_Gdata_Spreadsheets_CellFeed0&z OZend_Gdata_Spreadsheets_CellEntry0y -Zend_Gdata_Query0x /Zend_Gdata_Photos0 w CZend_Gdata_Photos_UserQuery0v AZend_Gdata_Photos_UserFeed0 u CZend_Gdata_Photos_UserEntry0t AZend_Gdata_Photos_TagEntry0!s EZend_Gdata_Photos_PhotoQuery0 r CZend_Gdata_Photos_PhotoFeed0!q EZend_Gdata_Photos_PhotoEntry0&p OZend_Gdata_Photos_Extension_Width0'o QZend_Gdata_Photos_Extension_Weight0(n SZend_Gdata_Photos_Extension_Version0%m MZend_Gdata_Photos_Extension_User0*l WZend_Gdata_Photos_Extension_Timestamp0*k WZend_Gdata_Photos_Extension_Thumbnail0%j MZend_Gdata_Photos_Extension_Size0)i UZend_Gdata_Photos_Extension_Rotation0+h YZend_Gdata_Photos_Extension_QuotaLimit0-g ]Zend_Gdata_Photos_Extension_QuotaCurrent0)f UZend_Gdata_Photos_Extension_Position0(e SZend_Gdata_Photos_Extension_PhotoId03d iZend_Gdata_Photos_Extension_NumPhotosRemaining0*c WZend_Gdata_Photos_Extension_NumPhotos0)b UZend_Gdata_Photos_Extension_Nickname0%a MZend_Gdata_Photos_Extension_Name02` gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum0)_ UZend_Gdata_Photos_Extension_Location0#^ IZend_Gdata_Photos_Extension_Id0'] QZend_Gdata_Photos_Extension_Height02\ gZend_Gdata_Photos_Extension_CommentingEnabled0-[ ]Zend_Gdata_Photos_Extension_CommentCount0'Z QZend_Gdata_Photos_Extension_Client0)Y UZend_Gdata_Photos_Extension_Checksum0*X WZend_Gdata_Photos_Extension_BytesUsed0(W SZend_Gdata_Photos_Extension_AlbumId0'V QZend_Gdata_Photos_Extension_Access0#U IZend_Gdata_Photos_CommentEntry0!T EZend_Gdata_Photos_AlbumQuery0 S CZend_Gdata_Photos_AlbumFeed0!R EZend_Gdata_Photos_AlbumEntry0Q 3Zend_Gdata_MimeFile0P ?Zend_Gdata_MimeBodyString0O AZend_Gdata_MediaMimeStream0N -Zend_Gdata_Media0M 7Zend_Gdata_Media_Feed0*L WZend_Gdata_Media_Extension_MediaTitle0.K _Zend_Gdata_Media_Extension_MediaThumbnail0)J UZend_Gdata_Media_Extension_MediaText00I cZend_Gdata_Media_Extension_MediaRestriction0+H YZend_Gdata_Media_Extension_MediaRating0+G YZend_Gdata_Media_Extension_MediaPlayer0-F ]Zend_Gdata_Media_Extension_MediaKeywords0)E UZend_Gdata_Media_Extension_MediaHash0*D WZend_Gdata_Media_Extension_MediaGroup00C cZend_Gdata_Media_Extension_MediaDescription0+B YZend_Gdata_Media_Extension_MediaCredit0.A _Zend_Gdata_Media_Extension_MediaCopyright0,@ [Zend_Gdata_Media_Extension_MediaContent0   _  zL\1qC[*wL



x
R
%				q	E	zT)x_C'uClO2	zI|R(b*y_C,       y AZend_Json_Server_Exception0x 9Zend_Json_Server_Error0w 9Zend_Json_Server_Cache0v )Zend_Json_Expr0u 3Zend_Json_Exception0t /Zend_Json_Encoder0s /Zend_Json_Decoder0r 'Zend_InfoCard0-q ]Zend_InfoCard_Xml_SecurityTokenReference0p AZend_InfoCard_Xml_Security0)o UZend_InfoCard_Xml_Security_Transform04n kZend_InfoCard_Xml_Security_Transform_XmlExcC14N03m iZend_InfoCard_Xml_Security_Transform_Exception0<l {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignature0)k UZend_InfoCard_Xml_Security_Exception0j ?Zend_InfoCard_Xml_KeyInfo0&i OZend_InfoCard_Xml_KeyInfo_XmlDSig0&h OZend_InfoCard_Xml_KeyInfo_Default0'g QZend_InfoCard_Xml_KeyInfo_Abstract0 f CZend_InfoCard_Xml_Exception0#e IZend_InfoCard_Xml_EncryptedKey0$d KZend_InfoCard_Xml_EncryptedData0+c YZend_InfoCard_Xml_EncryptedData_XmlEnc0-b ]Zend_InfoCard_Xml_EncryptedData_Abstract0a ?Zend_InfoCard_Xml_Element0 ` CZend_InfoCard_Xml_Assertion0%_ MZend_InfoCard_Xml_Assertion_Saml0^ ;Zend_InfoCard_Exception0%] MZend_InfoCard_Exception_Abstract0\ 5Zend_InfoCard_Claims0[ 5Zend_InfoCard_Cipher05Z mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc05Y mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc04X kZend_InfoCard_Cipher_Symmetric_Adapter_Abstract0)W UZend_InfoCard_Cipher_Pki_Adapter_Rsa0.V _Zend_InfoCard_Cipher_Pki_Adapter_Abstract0#U IZend_InfoCard_Cipher_Exception0$T KZend_InfoCard_Adapter_Exception0"S GZend_InfoCard_Adapter_Default0R 1Zend_Http_Response0Q ?Zend_Http_Response_Stream0P 3Zend_Http_Exception0O 3Zend_Http_CookieJar0N -Zend_Http_Cookie0M -Zend_Http_Client0L AZend_Http_Client_Exception0"K GZend_Http_Client_Adapter_Test0$J KZend_Http_Client_Adapter_Socket0#I IZend_Http_Client_Adapter_Proxy0'H QZend_Http_Client_Adapter_Exception0"G GZend_Http_Client_Adapter_Curl0F !Zend_Gdata0E 1Zend_Gdata_YouTube0"D GZend_Gdata_YouTube_VideoQuery0!C EZend_Gdata_YouTube_VideoFeed0"B GZend_Gdata_YouTube_VideoEntry0(A SZend_Gdata_YouTube_UserProfileEntry0(@ SZend_Gdata_YouTube_SubscriptionFeed0)? UZend_Gdata_YouTube_SubscriptionEntry0)> UZend_Gdata_YouTube_PlaylistVideoFeed0*= WZend_Gdata_YouTube_PlaylistVideoEntry0(< SZend_Gdata_YouTube_PlaylistListFeed0); UZend_Gdata_YouTube_PlaylistListEntry0": GZend_Gdata_YouTube_MediaEntry0!9 EZend_Gdata_YouTube_InboxFeed0"8 GZend_Gdata_YouTube_InboxEntry0)7 UZend_Gdata_YouTube_Extension_VideoId0*6 WZend_Gdata_YouTube_Extension_Username0*5 WZend_Gdata_YouTube_Extension_Uploaded0'4 QZend_Gdata_YouTube_Extension_Token0(3 SZend_Gdata_YouTube_Extension_Status0,2 [Zend_Gdata_YouTube_Extension_Statistics0'1 QZend_Gdata_YouTube_Extension_State0(0 SZend_Gdata_YouTube_Extension_School0-/ ]Zend_Gdata_YouTube_Extension_ReleaseDate0.. _Zend_Gdata_YouTube_Extension_Relationship0*- WZend_Gdata_YouTube_Extension_Recorded0&, OZend_Gdata_YouTube_Extension_Racy0-+ ]Zend_Gdata_YouTube_Extension_QueryString0)* UZend_Gdata_YouTube_Extension_Private0*) WZend_Gdata_YouTube_Extension_Position0/( aZend_Gdata_YouTube_Extension_PlaylistTitle0,' [Zend_Gdata_YouTube_Extension_PlaylistId0,& [Zend_Gdata_YouTube_Extension_Occupation0)% UZend_Gdata_YouTube_Extension_NoEmbed0'$ QZend_Gdata_YouTube_Extension_Music0(# SZend_Gdata_YouTube_Extension_Movies0-" ]Zend_Gdata_YouTube_Extension_MediaRating0,! [Zend_Gdata_YouTube_Extension_MediaGroup0-  ]Zend_Gdata_YouTube_Extension_MediaCredit0. _Zend_Gdata_YouTube_Extension_MediaContent0* WZend_Gdata_YouTube_Extension_Location0& OZend_Gdata_YouTube_Extension_Link0* WZend_Gdata_YouTube_Extension_LastName0* WZend_Gdata_YouTube_Extension_Hometown0   r pK.pT&	}Z9jB R



Q
*
					~	S	2	cJ6uS4bCb=zZ7bC$oN<f7                                     "k GZend_Markup_Renderer_Html_Img0+j YZend_Markup_Renderer_Html_HtmlAbstract0#i IZend_Markup_Renderer_Html_Code0#h IZend_Markup_Renderer_Exception0g AZend_Markup_Parser_Textile0!f EZend_Markup_Parser_Exception0e ?Zend_Markup_Parser_Bbcode0d 7Zend_Markup_Exception0c Zend_Mail0b =Zend_Mail_Transport_Smtp0!a EZend_Mail_Transport_Sendmail0"` GZend_Mail_Transport_Exception0!_ EZend_Mail_Transport_Abstract0^ /Zend_Mail_Storage0'] QZend_Mail_Storage_Writable_Maildir0\ 9Zend_Mail_Storage_Pop30[ 9Zend_Mail_Storage_Mbox0Z ?Zend_Mail_Storage_Maildir0Y 9Zend_Mail_Storage_Imap0X =Zend_Mail_Storage_Folder0"W GZend_Mail_Storage_Folder_Mbox0%V MZend_Mail_Storage_Folder_Maildir0 U CZend_Mail_Storage_Exception0T AZend_Mail_Storage_Abstract0S ;Zend_Mail_Protocol_Smtp0'R QZend_Mail_Protocol_Smtp_Auth_Plain0'Q QZend_Mail_Protocol_Smtp_Auth_Login0)P UZend_Mail_Protocol_Smtp_Auth_Crammd50O ;Zend_Mail_Protocol_Pop30N ;Zend_Mail_Protocol_Imap0!M EZend_Mail_Protocol_Exception0 L CZend_Mail_Protocol_Abstract0K )Zend_Mail_Part0J 3Zend_Mail_Part_File0I /Zend_Mail_Message0H 9Zend_Mail_Message_File0G 3Zend_Mail_Exception0F Zend_Log0 E CZend_Log_Writer_ZendMonitor0D 9Zend_Log_Writer_Syslog0C 9Zend_Log_Writer_Stream0B 5Zend_Log_Writer_Null0A 5Zend_Log_Writer_Mock0@ 5Zend_Log_Writer_Mail0? ;Zend_Log_Writer_Firebug0> 1Zend_Log_Writer_Db0= =Zend_Log_Writer_Abstract0< 9Zend_Log_Formatter_Xml0; ?Zend_Log_Formatter_Simple0: AZend_Log_Formatter_Firebug09 =Zend_Log_Filter_Suppress08 =Zend_Log_Filter_Priority07 ;Zend_Log_Filter_Message06 =Zend_Log_Filter_Abstract05 1Zend_Log_Exception04 #Zend_Locale03 -Zend_Locale_Math02 =Zend_Locale_Math_PhpMath01 AZend_Locale_Math_Exception00 1Zend_Locale_Format0/ 7Zend_Locale_Exception0. -Zend_Locale_Data0!- EZend_Locale_Data_Translation0, #Zend_Loader0+ =Zend_Loader_PluginLoader0'* QZend_Loader_PluginLoader_Exception0) 7Zend_Loader_Exception0( 9Zend_Loader_Autoloader0$' KZend_Loader_Autoloader_Resource0& Zend_Ldap0% )Zend_Ldap_Node0$ 7Zend_Ldap_Node_Schema0## IZend_Ldap_Node_Schema_OpenLdap0/" aZend_Ldap_Node_Schema_ObjectClass_OpenLdap06! oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectory0  AZend_Ldap_Node_Schema_Item01 eZend_Ldap_Node_Schema_AttributeType_OpenLdap08 sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory0* WZend_Ldap_Node_Schema_ActiveDirectory0 9Zend_Ldap_Node_RootDse0$ KZend_Ldap_Node_RootDse_OpenLdap0& OZend_Ldap_Node_RootDse_eDirectory0+ YZend_Ldap_Node_RootDse_ActiveDirectory0 ?Zend_Ldap_Node_Collection0$ KZend_Ldap_Node_ChildrenIterator0 ;Zend_Ldap_Node_Abstract0 9Zend_Ldap_Ldif_Encoder0 -Zend_Ldap_Filter0 ;Zend_Ldap_Filter_String0 3Zend_Ldap_Filter_Or0 5Zend_Ldap_Filter_Not0 7Zend_Ldap_Filter_Mask0 =Zend_Ldap_Filter_Logical0 AZend_Ldap_Filter_Exception0 5Zend_Ldap_Filter_And0 ?Zend_Ldap_Filter_Abstract0 3Zend_Ldap_Exception0
 %Zend_Ldap_Dn0	 3Zend_Ldap_Converter0 5Zend_Ldap_Collection0* WZend_Ldap_Collection_Iterator_Default0 3Zend_Ldap_Attribute0 #Zend_Layout0 7Zend_Layout_Exception0) UZend_Layout_Controller_Plugin_Layout00 cZend_Layout_Controller_Action_Helper_Layout0 Zend_Json0  -Zend_Json_Server0 5Zend_Json_Server_Smd0!~ EZend_Json_Server_Smd_Service0} ?Zend_Json_Server_Response0#| IZend_Json_Server_Response_Http0{ =Zend_Json_Server_Request0"z GZend_Json_Server_Request_Http0   w cI+eA jI.{]B!c>





m
T
8

					o	R	:	 	Z:" i>gD&nZ5sIwZ7y[=uW7             b +Zend_Pdf_Action0a 3Zend_Pdf_Action_URI0` ;Zend_Pdf_Action_Unknown0_ 7Zend_Pdf_Action_Trans0^ 9Zend_Pdf_Action_Thread0] AZend_Pdf_Action_SubmitForm0\ 7Zend_Pdf_Action_Sound0 [ CZend_Pdf_Action_SetOCGState0Z ?Zend_Pdf_Action_ResetForm0Y ?Zend_Pdf_Action_Rendition0X 7Zend_Pdf_Action_Named0W 7Zend_Pdf_Action_Movie0V 9Zend_Pdf_Action_Launch0U AZend_Pdf_Action_JavaScript0T AZend_Pdf_Action_ImportData0S 5Zend_Pdf_Action_Hide0R 7Zend_Pdf_Action_GoToR0Q 7Zend_Pdf_Action_GoToE0P AZend_Pdf_Action_GoTo3DView0O 5Zend_Pdf_Action_GoTo0N )Zend_Paginator0-M ]Zend_Paginator_SerializableLimitIterator0*L WZend_Paginator_ScrollingStyle_Sliding0*K WZend_Paginator_ScrollingStyle_Jumping0*J WZend_Paginator_ScrollingStyle_Elastic0&I OZend_Paginator_ScrollingStyle_All0H =Zend_Paginator_Exception0 G CZend_Paginator_Adapter_Null0$F KZend_Paginator_Adapter_Iterator0)E UZend_Paginator_Adapter_DbTableSelect0$D KZend_Paginator_Adapter_DbSelect0!C EZend_Paginator_Adapter_Array0B #Zend_OpenId0A 5Zend_OpenId_Provider0@ ?Zend_OpenId_Provider_User0&? OZend_OpenId_Provider_User_Session0!> EZend_OpenId_Provider_Storage0&= OZend_OpenId_Provider_Storage_File0< 7Zend_OpenId_Extension0; AZend_OpenId_Extension_Sreg0: 7Zend_OpenId_Exception09 5Zend_OpenId_Consumer0!8 EZend_OpenId_Consumer_Storage0&7 OZend_OpenId_Consumer_Storage_File06 !Zend_Oauth05 -Zend_Oauth_Token04 =Zend_Oauth_Token_Request0'3 QZend_Oauth_Token_AuthorizedRequest02 ;Zend_Oauth_Token_Access0+1 YZend_Oauth_Signature_SignatureAbstract00 =Zend_Oauth_Signature_Rsa0#/ IZend_Oauth_Signature_Plaintext0. ?Zend_Oauth_Signature_Hmac0- +Zend_Oauth_Http0, ;Zend_Oauth_Http_Utility0&+ OZend_Oauth_Http_UserAuthorization0!* EZend_Oauth_Http_RequestToken0 ) CZend_Oauth_Http_AccessToken0( 5Zend_Oauth_Exception0' 3Zend_Oauth_Consumer0& /Zend_Oauth_Config0% /Zend_Oauth_Client0$ +Zend_Navigation0# 5Zend_Navigation_Page0" =Zend_Navigation_Page_Uri0! =Zend_Navigation_Page_Mvc0  ?Zend_Navigation_Exception0 ?Zend_Navigation_Container0 Zend_Mime0 )Zend_Mime_Part0 /Zend_Mime_Message0 3Zend_Mime_Exception0 -Zend_Mime_Decode0 #Zend_Memory0 /Zend_Memory_Value0 3Zend_Memory_Manager0 7Zend_Memory_Exception0 7Zend_Memory_Container0" GZend_Memory_Container_Movable0! EZend_Memory_Container_Locked0! EZend_Memory_AccessController0 3Zend_Measure_Weight0 3Zend_Measure_Volume0% MZend_Measure_Viscosity_Kinematic0# IZend_Measure_Viscosity_Dynamic0 3Zend_Measure_Torque0 /Zend_Measure_Time0 =Zend_Measure_Temperature0
 1Zend_Measure_Speed0	 7Zend_Measure_Pressure0 1Zend_Measure_Power0 3Zend_Measure_Number0 9Zend_Measure_Lightness0 3Zend_Measure_Length0 ?Zend_Measure_Illumination0 9Zend_Measure_Frequency0 1Zend_Measure_Force0 =Zend_Measure_Flow_Volume0  9Zend_Measure_Flow_Mole0 9Zend_Measure_Flow_Mass0~ 9Zend_Measure_Exception0} 3Zend_Measure_Energy0| 5Zend_Measure_Density0{ 5Zend_Measure_Current0 z CZend_Measure_Cooking_Weight0 y CZend_Measure_Cooking_Volume0x =Zend_Measure_Capacitance0w 3Zend_Measure_Binary0v /Zend_Measure_Area0u 1Zend_Measure_Angle0t ?Zend_Measure_Acceleration0s 7Zend_Measure_Abstract0r #Zend_Markup0q 7Zend_Markup_TokenList0p /Zend_Markup_Token0*o WZend_Markup_Renderer_RendererAbstract0n ?Zend_Markup_Renderer_Html0"m GZend_Markup_Renderer_Html_Url0#l IZend_Markup_Renderer_Html_List0   c  pT*lP5s=sQ4sL,



n
N
5
				w	V	0	tT3	nT3e>MYa(t8	zV1    E /Zend_Pdf_Resource0#D IZend_Pdf_Resource_ImageFactory0C ;Zend_Pdf_Resource_Image0!B EZend_Pdf_Resource_Image_Tiff0 A CZend_Pdf_Resource_Image_Png0!@ EZend_Pdf_Resource_Image_Jpeg0? 9Zend_Pdf_Resource_Font0!> EZend_Pdf_Resource_Font_Type00"= GZend_Pdf_Resource_Font_Simple0+< YZend_Pdf_Resource_Font_Simple_Standard08; sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats06: oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman079 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic0;8 yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic057 mZend_Pdf_Resource_Font_Simple_Standard_TimesBold026 gZend_Pdf_Resource_Font_Simple_Standard_Symbol0<5 {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaOblique0A4 Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique093 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold052 mZend_Pdf_Resource_Font_Simple_Standard_Helvetica0:1 wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique0>0 Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique07/ qZend_Pdf_Resource_Font_Simple_Standard_CourierBold03. iZend_Pdf_Resource_Font_Simple_Standard_Courier0)- UZend_Pdf_Resource_Font_Simple_Parsed02, gZend_Pdf_Resource_Font_Simple_Parsed_TrueType0*+ WZend_Pdf_Resource_Font_FontDescriptor0%* MZend_Pdf_Resource_Font_Extracted0#) IZend_Pdf_Resource_Font_CidFont0,( [Zend_Pdf_Resource_Font_CidFont_TrueType03' iZend_Pdf_RecursivelyIteratableObjectsContainer0& +Zend_Pdf_Parser0% 'Zend_Pdf_Page0$ -Zend_Pdf_Outline0# ;Zend_Pdf_Outline_Loaded0" =Zend_Pdf_Outline_Created0! /Zend_Pdf_NameTree0  )Zend_Pdf_Image0 'Zend_Pdf_Font0 ?Zend_Pdf_Filter_RunLength0  CZend_Pdf_Filter_Compression0$ KZend_Pdf_Filter_Compression_Lzw0& OZend_Pdf_Filter_Compression_Flate0 =Zend_Pdf_Filter_AsciiHex0 ;Zend_Pdf_Filter_Ascii850" GZend_Pdf_FileParserDataSource0) UZend_Pdf_FileParserDataSource_String0' QZend_Pdf_FileParserDataSource_File0 3Zend_Pdf_FileParser0 ?Zend_Pdf_FileParser_Image0" GZend_Pdf_FileParser_Image_Png0 =Zend_Pdf_FileParser_Font0& OZend_Pdf_FileParser_Font_OpenType0/ aZend_Pdf_FileParser_Font_OpenType_TrueType0 1Zend_Pdf_Exception0 ;Zend_Pdf_ElementFactory0" GZend_Pdf_ElementFactory_Proxy0 -Zend_Pdf_Element0 ;Zend_Pdf_Element_String0#
 IZend_Pdf_Element_String_Binary0	 ;Zend_Pdf_Element_Stream0 AZend_Pdf_Element_Reference0% MZend_Pdf_Element_Reference_Table0' QZend_Pdf_Element_Reference_Context0 ;Zend_Pdf_Element_Object0# IZend_Pdf_Element_Object_Stream0 =Zend_Pdf_Element_Numeric0 7Zend_Pdf_Element_Null0 7Zend_Pdf_Element_Name0   CZend_Pdf_Element_Dictionary0 =Zend_Pdf_Element_Boolean0~ 9Zend_Pdf_Element_Array0} 5Zend_Pdf_Destination0| ?Zend_Pdf_Destination_Zoom0!{ EZend_Pdf_Destination_Unknown0z AZend_Pdf_Destination_Named0'y QZend_Pdf_Destination_FitVertically0&x OZend_Pdf_Destination_FitRectangle0)w UZend_Pdf_Destination_FitHorizontally02v gZend_Pdf_Destination_FitBoundingBoxVertically04u kZend_Pdf_Destination_FitBoundingBoxHorizontally0(t SZend_Pdf_Destination_FitBoundingBox0s =Zend_Pdf_Destination_Fit0"r GZend_Pdf_Destination_Explicit0q )Zend_Pdf_Color0p 1Zend_Pdf_Color_Rgb0o 3Zend_Pdf_Color_Html0n =Zend_Pdf_Color_GrayScale0m 3Zend_Pdf_Color_Cmyk0l 'Zend_Pdf_Cmap0k AZend_Pdf_Cmap_TrimmedTable0!j EZend_Pdf_Cmap_SegmentToDelta0i AZend_Pdf_Cmap_ByteEncoding0&h OZend_Pdf_Cmap_ByteEncoding_Static0g 3Zend_Pdf_Annotation0f =Zend_Pdf_Annotation_Text0e AZend_Pdf_Annotation_Markup0d =Zend_Pdf_Annotation_Link0'c QZend_Pdf_Annotation_FileAttachment0   `  pW2!}\9 fH#oT)	b=




{
Y
8
"						c	K	(	n!bxNa1\3S'b&sK$                                          /% aZend_Search_Lucene_Interface_MultiSearcher0#$ IZend_Search_Lucene_LockManager0$# KZend_Search_Lucene_Index_Writer00" cZend_Search_Lucene_Index_TermsPriorityQueue0&! OZend_Search_Lucene_Index_TermInfo0"  GZend_Search_Lucene_Index_Term0+ YZend_Search_Lucene_Index_SegmentWriter08 sZend_Search_Lucene_Index_SegmentWriter_StreamWriter0: wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter0+ YZend_Search_Lucene_Index_SegmentMerger0) UZend_Search_Lucene_Index_SegmentInfo0' QZend_Search_Lucene_Index_FieldInfo0( SZend_Search_Lucene_Index_DocsFilter0. _Zend_Search_Lucene_Index_DictionaryLoader0! EZend_Search_Lucene_FSMAction0 9Zend_Search_Lucene_FSM0 =Zend_Search_Lucene_Field0! EZend_Search_Lucene_Exception0  CZend_Search_Lucene_Document0% MZend_Search_Lucene_Document_Xlsx0% MZend_Search_Lucene_Document_Pptx0( SZend_Search_Lucene_Document_OpenXml0% MZend_Search_Lucene_Document_Html0* WZend_Search_Lucene_Document_Exception0% MZend_Search_Lucene_Document_Docx0, [Zend_Search_Lucene_Analysis_TokenFilter06 oZend_Search_Lucene_Analysis_TokenFilter_StopWords07
 qZend_Search_Lucene_Analysis_TokenFilter_ShortWords0:	 wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf806 oZend_Search_Lucene_Analysis_TokenFilter_LowerCase0& OZend_Search_Lucene_Analysis_Token0) UZend_Search_Lucene_Analysis_Analyzer00 cZend_Search_Lucene_Analysis_Analyzer_Common08 sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num0I Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive05 mZend_Search_Lucene_Analysis_Analyzer_Common_Utf80F Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive08  sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum0I Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive05~ mZend_Search_Lucene_Analysis_Analyzer_Common_Text0F} Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive0| 7Zend_Search_Exception0{ -Zend_Rest_Server0z AZend_Rest_Server_Exception0y +Zend_Rest_Route0x 3Zend_Rest_Exception0w 5Zend_Rest_Controller0v -Zend_Rest_Client0u ;Zend_Rest_Client_Result0&t OZend_Rest_Client_Result_Exception0s AZend_Rest_Client_Exception0r 'Zend_Registry0q =Zend_Reflection_Property0p ?Zend_Reflection_Parameter0o 9Zend_Reflection_Method0n =Zend_Reflection_Function0m 5Zend_Reflection_File0l ?Zend_Reflection_Extension0k ?Zend_Reflection_Exception0j =Zend_Reflection_Docblock0!i EZend_Reflection_Docblock_Tag0(h SZend_Reflection_Docblock_Tag_Return0'g QZend_Reflection_Docblock_Tag_Param0f 7Zend_Reflection_Class0e !Zend_Queue0d 9Zend_Queue_Stomp_Frame0c ;Zend_Queue_Stomp_Client0'b QZend_Queue_Stomp_Client_Connection0a 1Zend_Queue_Message0#` IZend_Queue_Message_PlatformJob0 _ CZend_Queue_Message_Iterator0^ 5Zend_Queue_Exception0(] SZend_Queue_Adapter_PlatformJobQueue0\ ;Zend_Queue_Adapter_Null0![ EZend_Queue_Adapter_Memcacheq0Z 7Zend_Queue_Adapter_Db0 Y CZend_Queue_Adapter_Db_Queue0"X GZend_Queue_Adapter_Db_Message0W =Zend_Queue_Adapter_Array0'V QZend_Queue_Adapter_AdapterAbstract0 U CZend_Queue_Adapter_Activemq0T -Zend_ProgressBar0S AZend_ProgressBar_Exception0R =Zend_ProgressBar_Adapter0$Q KZend_ProgressBar_Adapter_JsPush0$P KZend_ProgressBar_Adapter_JsPull0'O QZend_ProgressBar_Adapter_Exception0%N MZend_ProgressBar_Adapter_Console0M Zend_Pdf0!L EZend_Pdf_UpdateInfoContainer0K -Zend_Pdf_Trailer0J ;Zend_Pdf_Trailer_Keeper0I AZend_Pdf_Trailer_Generator0H +Zend_Pdf_Target0G )Zend_Pdf_Style0F 7Zend_Pdf_StringParser0   Z  xBNk5M`2



d
7
			t	F	V.e<pN6xS.	a=fAhDg>            % MZend_Service_Amazon_Ec2_Response0#~ IZend_Service_Amazon_Ec2_Region0$} KZend_Service_Amazon_Ec2_Keypair0%| MZend_Service_Amazon_Ec2_Instance0-{ ]Zend_Service_Amazon_Ec2_Instance_Windows0.z _Zend_Service_Amazon_Ec2_Instance_Reserved0"y GZend_Service_Amazon_Ec2_Image0&x OZend_Service_Amazon_Ec2_Exception0&w OZend_Service_Amazon_Ec2_Elasticip0 v CZend_Service_Amazon_Ec2_Ebs0'u QZend_Service_Amazon_Ec2_CloudWatch0.t _Zend_Service_Amazon_Ec2_Availabilityzones0%s MZend_Service_Amazon_Ec2_Abstract0'r QZend_Service_Amazon_CustomerReview0$q KZend_Service_Amazon_Accessories0!p EZend_Service_Amazon_Abstract0o 5Zend_Service_Akismet0n 7Zend_Service_Abstract0m 9Zend_Server_Reflection0'l QZend_Server_Reflection_ReturnValue0%k MZend_Server_Reflection_Prototype0%j MZend_Server_Reflection_Parameter0 i CZend_Server_Reflection_Node0"h GZend_Server_Reflection_Method0$g KZend_Server_Reflection_Function0-f ]Zend_Server_Reflection_Function_Abstract0%e MZend_Server_Reflection_Exception0!d EZend_Server_Reflection_Class0!c EZend_Server_Method_Prototype0!b EZend_Server_Method_Parameter0"a GZend_Server_Method_Definition0 ` CZend_Server_Method_Callback0_ 7Zend_Server_Exception0^ 9Zend_Server_Definition0] /Zend_Server_Cache0\ 5Zend_Server_Abstract0[ +Zend_Serializer0Z ?Zend_Serializer_Exception0!Y EZend_Serializer_Adapter_Wddx0)X UZend_Serializer_Adapter_PythonPickle0)W UZend_Serializer_Adapter_PhpSerialize0$V KZend_Serializer_Adapter_PhpCode0!U EZend_Serializer_Adapter_Json0%T MZend_Serializer_Adapter_Igbinary0!S EZend_Serializer_Adapter_Amf30!R EZend_Serializer_Adapter_Amf00,Q [Zend_Serializer_Adapter_AdapterAbstract0P 1Zend_Search_Lucene00O cZend_Search_Lucene_TermStreamsPriorityQueue0$N KZend_Search_Lucene_Storage_File0+M YZend_Search_Lucene_Storage_File_Memory0/L aZend_Search_Lucene_Storage_File_Filesystem0)K UZend_Search_Lucene_Storage_Directory04J kZend_Search_Lucene_Storage_Directory_Filesystem0%I MZend_Search_Lucene_Search_Weight0*H WZend_Search_Lucene_Search_Weight_Term0,G [Zend_Search_Lucene_Search_Weight_Phrase0/F aZend_Search_Lucene_Search_Weight_MultiTerm0+E YZend_Search_Lucene_Search_Weight_Empty0-D ]Zend_Search_Lucene_Search_Weight_Boolean0)C UZend_Search_Lucene_Search_Similarity01B eZend_Search_Lucene_Search_Similarity_Default0)A UZend_Search_Lucene_Search_QueryToken03@ iZend_Search_Lucene_Search_QueryParserException01? eZend_Search_Lucene_Search_QueryParserContext0*> WZend_Search_Lucene_Search_QueryParser0)= UZend_Search_Lucene_Search_QueryLexer0'< QZend_Search_Lucene_Search_QueryHit0); UZend_Search_Lucene_Search_QueryEntry0.: _Zend_Search_Lucene_Search_QueryEntry_Term029 gZend_Search_Lucene_Search_QueryEntry_Subquery008 cZend_Search_Lucene_Search_QueryEntry_Phrase0$7 KZend_Search_Lucene_Search_Query0-6 ]Zend_Search_Lucene_Search_Query_Wildcard0)5 UZend_Search_Lucene_Search_Query_Term0*4 WZend_Search_Lucene_Search_Query_Range023 gZend_Search_Lucene_Search_Query_Preprocessing072 qZend_Search_Lucene_Search_Query_Preprocessing_Term091 uZend_Search_Lucene_Search_Query_Preprocessing_Phrase080 sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy0+/ YZend_Search_Lucene_Search_Query_Phrase0.. _Zend_Search_Lucene_Search_Query_MultiTerm02- gZend_Search_Lucene_Search_Query_Insignificant0*, WZend_Search_Lucene_Search_Query_Fuzzy0*+ WZend_Search_Lucene_Search_Query_Empty0,* [Zend_Search_Lucene_Search_Query_Boolean02) gZend_Search_Lucene_Search_Highlighter_Default0:( wZend_Search_Lucene_Search_BooleanExpressionRecognizer0' =Zend_Search_Lucene_Proxy0%& MZend_Search_Lucene_PriorityQueue0   @  _=c:d@=f


S
			Q	!M<0~(rZY>                                                                                                  Q? #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequest0R> %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequest0Y= 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequest0d< IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequest0Q; #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequest0O: Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequest0U9 +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequest0U8 +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequest0V7 -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequest0a6 CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequest0Z5 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequest0T4 )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequest0R3 %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequest0Y2 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequest0Q1 #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequest0Q0 #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequest0a/ CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequest0N. Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformation0L- Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalance0J, Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool0-+ ]Zend_Service_DeveloperGarden_LocalSearch0>* Zend_Service_DeveloperGarden_LocalSearch_SearchParameters07) qZend_Service_DeveloperGarden_LocalSearch_Exception0,( [Zend_Service_DeveloperGarden_IpLocation06' oZend_Service_DeveloperGarden_IpLocation_IpAddress0+& YZend_Service_DeveloperGarden_Exception0,% [Zend_Service_DeveloperGarden_Credential00$ cZend_Service_DeveloperGarden_ConferenceCall0C# Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatus0C" Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail0<! {Zend_Service_DeveloperGarden_ConferenceCall_Participant0:  wZend_Service_DeveloperGarden_ConferenceCall_Exception0D 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceSchedule0B Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail0C Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount0- ]Zend_Service_DeveloperGarden_Client_Soap02 gZend_Service_DeveloperGarden_Client_Exception07 qZend_Service_DeveloperGarden_Client_ClientAbstract01 eZend_Service_DeveloperGarden_BaseUserService0A Zend_Service_DeveloperGarden_BaseUserService_AccountBalance0 9Zend_Service_Delicious0& OZend_Service_Delicious_SimplePost0$ KZend_Service_Delicious_PostList0  CZend_Service_Delicious_Post0% MZend_Service_Delicious_Exception0  CZend_Service_Audioscrobbler0 3Zend_Service_Amazon0 ;Zend_Service_Amazon_Sqs0& OZend_Service_Amazon_Sqs_Exception0' QZend_Service_Amazon_SimilarProduct0 9Zend_Service_Amazon_S30" GZend_Service_Amazon_S3_Stream0% MZend_Service_Amazon_S3_Exception0"
 GZend_Service_Amazon_ResultSet0	 ?Zend_Service_Amazon_Query0! EZend_Service_Amazon_OfferSet0 ?Zend_Service_Amazon_Offer0& OZend_Service_Amazon_ListmaniaList0 =Zend_Service_Amazon_Item0 ?Zend_Service_Amazon_Image0" GZend_Service_Amazon_Exception0( SZend_Service_Amazon_EditorialReview0 ;Zend_Service_Amazon_Ec20+  YZend_Service_Amazon_Ec2_Securitygroups0   / y ;e\-b


K			@n tc L4iB-  y                   Qn #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse0[m 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseType0Wl /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse0[k 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseType0Wj /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse0\i 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseType0Xh 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponse0gg OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseType0cf GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse0`e AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType0\d 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponse0Zc 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseType0Vb -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponse0Xa 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseType0T` )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse0__ ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType0[^ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponse0W] /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType0S\ 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponse0Q[ #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstract0SZ 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponse0JY Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType0gX OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseType0cW GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponse0WV /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse0UU +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponse0ST 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse03S iZend_Service_DeveloperGarden_Response_BaseType0JR Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstract0CQ Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCall0GP Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced0=O }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCall0AN Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatus0AM Zend_Service_DeveloperGarden_Request_SmsValidation_Validate0NL Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeyword0CK Zend_Service_DeveloperGarden_Request_SmsValidation_Invalidate0LJ Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbers0BI Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract09H uZend_Service_DeveloperGarden_Request_SendSms_SendSMS0>G Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS09F uZend_Service_DeveloperGarden_Request_RequestAbstract0IE Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequest0ED Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest03C iZend_Service_DeveloperGarden_Request_Exception0RB %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequest0YA 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequest0d@ IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequest0   =  P/n=U

r
			>Rd	l0RkI& vN!T,                                 !+ EZend_Service_Simpy_LinkQuery0* ;Zend_Service_Simpy_Link0) 9Zend_Service_ReCaptcha0$( KZend_Service_ReCaptcha_Response0$' KZend_Service_ReCaptcha_MailHide0.& _Zend_Service_ReCaptcha_MailHide_Exception0%% MZend_Service_ReCaptcha_Exception0$ 7Zend_Service_Nirvanix0## IZend_Service_Nirvanix_Response0)" UZend_Service_Nirvanix_Namespace_Imfs0)! UZend_Service_Nirvanix_Namespace_Base0$  KZend_Service_Nirvanix_Exception0 7Zend_Service_LiveDocx0$ KZend_Service_LiveDocx_MailMerge0$ KZend_Service_LiveDocx_Exception0 3Zend_Service_Flickr0" GZend_Service_Flickr_ResultSet0 AZend_Service_Flickr_Result0 ?Zend_Service_Flickr_Image0 9Zend_Service_Exception0+ YZend_Service_DeveloperGarden_VoiceCall0/ aZend_Service_DeveloperGarden_SmsValidation0) UZend_Service_DeveloperGarden_SendSms05 mZend_Service_DeveloperGarden_SecurityTokenServer0; yZend_Service_DeveloperGarden_SecurityTokenServer_Cache0K Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstract0L Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponse0P !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponse0G Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponse0J Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponse0K Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2Response0L Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponse0I Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumber0W
 /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponse0J	 Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponse0U +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponse0C Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponse0C Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstract0H Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponse0U +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponse0Q #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponse0I Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception0; yZend_Service_DeveloperGarden_Response_ResponseAbstract0O  Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseType0K Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponse0A~ Zend_Service_DeveloperGarden_Response_IpLocation_RegionType0K} Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseType0G| Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponse0L{ Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationType0Iz Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType0>y Zend_Service_DeveloperGarden_Response_IpLocation_CityType04x kZend_Service_DeveloperGarden_Response_Exception0Tw )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse0[v 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponse0fu MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponse0St 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponse0Ts )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse0[r 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponse0fq MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponse0Sp 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponse0Uo +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType0   W  {Y4	nD$zDuEX1



S
(					f	B	%f*[yCh8 ^(jCmGY/
                    1Zend_Service_Yahoo0$ KZend_Service_Yahoo_WebResultSet0!  EZend_Service_Yahoo_WebResult0& OZend_Service_Yahoo_VideoResultSet0#~ IZend_Service_Yahoo_VideoResult0!} EZend_Service_Yahoo_ResultSet0| ?Zend_Service_Yahoo_Result0){ UZend_Service_Yahoo_PageDataResultSet0&z OZend_Service_Yahoo_PageDataResult0%y MZend_Service_Yahoo_NewsResultSet0"x GZend_Service_Yahoo_NewsResult0&w OZend_Service_Yahoo_LocalResultSet0#v IZend_Service_Yahoo_LocalResult0+u YZend_Service_Yahoo_InlinkDataResultSet0(t SZend_Service_Yahoo_InlinkDataResult0&s OZend_Service_Yahoo_ImageResultSet0#r IZend_Service_Yahoo_ImageResult0q =Zend_Service_Yahoo_Image0&p OZend_Service_WindowsAzure_Storage04o kZend_Service_WindowsAzure_Storage_TableInstance07n qZend_Service_WindowsAzure_Storage_TableEntityQuery02m gZend_Service_WindowsAzure_Storage_TableEntity0,l [Zend_Service_WindowsAzure_Storage_Table07k qZend_Service_WindowsAzure_Storage_SignedIdentifier03j iZend_Service_WindowsAzure_Storage_QueueMessage04i kZend_Service_WindowsAzure_Storage_QueueInstance0,h [Zend_Service_WindowsAzure_Storage_Queue09g uZend_Service_WindowsAzure_Storage_DynamicTableEntity03f iZend_Service_WindowsAzure_Storage_BlobInstance04e kZend_Service_WindowsAzure_Storage_BlobContainer0+d YZend_Service_WindowsAzure_Storage_Blob02c gZend_Service_WindowsAzure_Storage_Blob_Stream0;b yZend_Service_WindowsAzure_Storage_BatchStorageAbstract0,a [Zend_Service_WindowsAzure_Storage_Batch0-` ]Zend_Service_WindowsAzure_SessionHandler0>_ Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract01^ eZend_Service_WindowsAzure_RetryPolicy_RetryN02] gZend_Service_WindowsAzure_RetryPolicy_NoRetry04\ kZend_Service_WindowsAzure_RetryPolicy_Exception0([ SZend_Service_WindowsAzure_Exception08Z sZend_Service_WindowsAzure_Credentials_SharedKeyLite04Y kZend_Service_WindowsAzure_Credentials_SharedKey0AX Zend_Service_WindowsAzure_Credentials_SharedAccessSignature0>W Zend_Service_WindowsAzure_Credentials_CredentialsAbstract0V 5Zend_Service_Twitter0 U CZend_Service_Twitter_Search0#T IZend_Service_Twitter_Exception0S ;Zend_Service_Technorati0#R IZend_Service_Technorati_Weblog0"Q GZend_Service_Technorati_Utils0*P WZend_Service_Technorati_TagsResultSet0'O QZend_Service_Technorati_TagsResult0)N UZend_Service_Technorati_TagResultSet0&M OZend_Service_Technorati_TagResult0,L [Zend_Service_Technorati_SearchResultSet0)K UZend_Service_Technorati_SearchResult0&J OZend_Service_Technorati_ResultSet0#I IZend_Service_Technorati_Result0*H WZend_Service_Technorati_KeyInfoResult0*G WZend_Service_Technorati_GetInfoResult0&F OZend_Service_Technorati_Exception01E eZend_Service_Technorati_DailyCountsResultSet0.D _Zend_Service_Technorati_DailyCountsResult0,C [Zend_Service_Technorati_CosmosResultSet0)B UZend_Service_Technorati_CosmosResult0+A YZend_Service_Technorati_BlogInfoResult0#@ IZend_Service_Technorati_Author0? ;Zend_Service_StrikeIron0(> SZend_Service_StrikeIron_ZipCodeInfo02= gZend_Service_StrikeIron_USAddressVerification0-< ]Zend_Service_StrikeIron_SalesUseTaxBasic0&; OZend_Service_StrikeIron_Exception0&: OZend_Service_StrikeIron_Decorator0!9 EZend_Service_StrikeIron_Base08 ;Zend_Service_SlideShare0&7 OZend_Service_SlideShare_SlideShow0&6 OZend_Service_SlideShare_Exception05 1Zend_Service_Simpy0$4 KZend_Service_Simpy_WatchlistSet0*3 WZend_Service_Simpy_WatchlistFilterSet0'2 QZend_Service_Simpy_WatchlistFilter0!1 EZend_Service_Simpy_Watchlist00 ?Zend_Service_Simpy_TagSet0/ 9Zend_Service_Simpy_Tag0. AZend_Service_Simpy_NoteSet0- ;Zend_Service_Simpy_Note0, AZend_Service_Simpy_LinkSet0   _  {P(~^;}U"zS(w\F,



g
3
				X	$m<u\@!yY? l@r(Q&DyD   (a SZend_Tool_Framework_Loader_Abstract0"` GZend_Tool_Framework_Exception0'_ QZend_Tool_Framework_Client_Storage01^ eZend_Tool_Framework_Client_Storage_Directory0(] SZend_Tool_Framework_Client_Response0D\ 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator0'[ QZend_Tool_Framework_Client_Request0(Z SZend_Tool_Framework_Client_Manifest09Y uZend_Tool_Framework_Client_Interactive_InputResponse08X sZend_Tool_Framework_Client_Interactive_InputRequest08W sZend_Tool_Framework_Client_Interactive_InputHandler0)V UZend_Tool_Framework_Client_Exception0'U QZend_Tool_Framework_Client_Console0DT 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Indention0DS 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizer0CR Zend_Tool_Framework_Client_Console_ResponseDecorator_Blockize0FQ Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter00P cZend_Tool_Framework_Client_Console_Manifest02O gZend_Tool_Framework_Client_Console_HelpSystem06N oZend_Tool_Framework_Client_Console_ArgumentParser0&M OZend_Tool_Framework_Client_Config0(L SZend_Tool_Framework_Client_Abstract0*K WZend_Tool_Framework_Action_Repository0)J UZend_Tool_Framework_Action_Exception0$I KZend_Tool_Framework_Action_Base0H 'Zend_TimeSync0G 1Zend_TimeSync_Sntp0F 9Zend_TimeSync_Protocol0E /Zend_TimeSync_Ntp0D ;Zend_TimeSync_Exception0C +Zend_Text_Table0B 3Zend_Text_Table_Row0A ?Zend_Text_Table_Exception0&@ OZend_Text_Table_Decorator_Unicode0$? KZend_Text_Table_Decorator_Ascii0> 9Zend_Text_Table_Column0= 3Zend_Text_MultiByte0< -Zend_Text_Figlet0; AZend_Text_Figlet_Exception0: 3Zend_Text_Exception0&9 OZend_Test_PHPUnit_Db_SimpleTester0,8 [Zend_Test_PHPUnit_Db_Operation_Truncate0*7 WZend_Test_PHPUnit_Db_Operation_Insert0-6 ]Zend_Test_PHPUnit_Db_Operation_DeleteAll0*5 WZend_Test_PHPUnit_Db_Metadata_Generic0#4 IZend_Test_PHPUnit_Db_Exception0,3 [Zend_Test_PHPUnit_Db_DataSet_QueryTable0.2 _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet001 cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet0)0 UZend_Test_PHPUnit_Db_DataSet_DbTable0*/ WZend_Test_PHPUnit_Db_DataSet_DbRowset0$. KZend_Test_PHPUnit_Db_Connection0'- QZend_Test_PHPUnit_DatabaseTestCase0), UZend_Test_PHPUnit_ControllerTestCase00+ cZend_Test_PHPUnit_Constraint_ResponseHeader0** WZend_Test_PHPUnit_Constraint_Redirect0+) YZend_Test_PHPUnit_Constraint_Exception0*( WZend_Test_PHPUnit_Constraint_DomQuery0' 7Zend_Test_DbStatement0& 3Zend_Test_DbAdapter0% /Zend_Tag_ItemList0$ 'Zend_Tag_Item0# 1Zend_Tag_Exception0" )Zend_Tag_Cloud0! =Zend_Tag_Cloud_Exception0!  EZend_Tag_Cloud_Decorator_Tag0% MZend_Tag_Cloud_Decorator_HtmlTag0' QZend_Tag_Cloud_Decorator_HtmlCloud0' QZend_Tag_Cloud_Decorator_Exception0# IZend_Tag_Cloud_Decorator_Cloud0 )Zend_Soap_Wsdl0/ aZend_Soap_Wsdl_Strategy_DefaultComplexType0& OZend_Soap_Wsdl_Strategy_Composite00 cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence0/ aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex0$ KZend_Soap_Wsdl_Strategy_AnyType0% MZend_Soap_Wsdl_Strategy_Abstract0 =Zend_Soap_Wsdl_Exception0 -Zend_Soap_Server0 AZend_Soap_Server_Exception0 -Zend_Soap_Client0 9Zend_Soap_Client_Local0 AZend_Soap_Client_Exception0 ;Zend_Soap_Client_DotNet0 ;Zend_Soap_Client_Common0 9Zend_Soap_AutoDiscover0% MZend_Soap_AutoDiscover_Exception0
 %Zend_Session0)	 UZend_Session_Validator_HttpUserAgent0$ KZend_Session_Validator_Abstract0' QZend_Session_SaveHandler_Exception0% MZend_Session_SaveHandler_DbTable0 9Zend_Session_Namespace0 9Zend_Session_Exception0 7Zend_Session_Abstract0   I  Nm?],g3X,



`
&			o	=	
b.Z'_+QNu:MS                                                        :* wZend_Tool_Project_Context_Zf_TestApplicationDirectory0@) Zend_Tool_Project_Context_Zf_TestApplicationControllerFile0E( Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory0>' Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile04& kZend_Tool_Project_Context_Zf_TemporaryDirectory03% iZend_Tool_Project_Context_Zf_SessionsDirectory08$ sZend_Tool_Project_Context_Zf_SearchIndexesDirectory0<# {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory08" sZend_Tool_Project_Context_Zf_PublicScriptsDirectory01! eZend_Tool_Project_Context_Zf_PublicIndexFile07  qZend_Tool_Project_Context_Zf_PublicImagesDirectory01 eZend_Tool_Project_Context_Zf_PublicDirectory05 mZend_Tool_Project_Context_Zf_ProjectProviderFile02 gZend_Tool_Project_Context_Zf_ModulesDirectory01 eZend_Tool_Project_Context_Zf_ModuleDirectory01 eZend_Tool_Project_Context_Zf_ModelsDirectory0+ YZend_Tool_Project_Context_Zf_ModelFile0/ aZend_Tool_Project_Context_Zf_LogsDirectory02 gZend_Tool_Project_Context_Zf_LocalesDirectory02 gZend_Tool_Project_Context_Zf_LibraryDirectory02 gZend_Tool_Project_Context_Zf_LayoutsDirectory08 sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory02 gZend_Tool_Project_Context_Zf_LayoutScriptFile0. _Zend_Tool_Project_Context_Zf_HtaccessFile00 cZend_Tool_Project_Context_Zf_FormsDirectory0* WZend_Tool_Project_Context_Zf_FormFile0/ aZend_Tool_Project_Context_Zf_DocsDirectory0- ]Zend_Tool_Project_Context_Zf_DbTableFile02 gZend_Tool_Project_Context_Zf_DbTableDirectory0/ aZend_Tool_Project_Context_Zf_DataDirectory06 oZend_Tool_Project_Context_Zf_ControllersDirectory00 cZend_Tool_Project_Context_Zf_ControllerFile02
 gZend_Tool_Project_Context_Zf_ConfigsDirectory0,	 [Zend_Tool_Project_Context_Zf_ConfigFile00 cZend_Tool_Project_Context_Zf_CacheDirectory0/ aZend_Tool_Project_Context_Zf_BootstrapFile06 oZend_Tool_Project_Context_Zf_ApplicationDirectory07 qZend_Tool_Project_Context_Zf_ApplicationConfigFile0/ aZend_Tool_Project_Context_Zf_ApisDirectory0. _Zend_Tool_Project_Context_Zf_ActionMethod03 iZend_Tool_Project_Context_Zf_AbstractClassFile0@ Zend_Tool_Project_Context_System_ProjectProvidersDirectory08  sZend_Tool_Project_Context_System_ProjectProfileFile06 oZend_Tool_Project_Context_System_ProjectDirectory0)~ UZend_Tool_Project_Context_Repository0.} _Zend_Tool_Project_Context_Filesystem_File03| iZend_Tool_Project_Context_Filesystem_Directory02{ gZend_Tool_Project_Context_Filesystem_Abstract0(z SZend_Tool_Project_Context_Exception0-y ]Zend_Tool_Project_Context_Content_Engine03x iZend_Tool_Project_Context_Content_Engine_Phtml0;w yZend_Tool_Project_Context_Content_Engine_CodeGenerator00v cZend_Tool_Framework_System_Provider_Version00u cZend_Tool_Framework_System_Provider_Phpinfo01t eZend_Tool_Framework_System_Provider_Manifest0/s aZend_Tool_Framework_System_Provider_Config0(r SZend_Tool_Framework_System_Manifest0-q ]Zend_Tool_Framework_System_Action_Delete0-p ]Zend_Tool_Framework_System_Action_Create0!o EZend_Tool_Framework_Registry0+n YZend_Tool_Framework_Registry_Exception0+m YZend_Tool_Framework_Provider_Signature0,l [Zend_Tool_Framework_Provider_Repository0+k YZend_Tool_Framework_Provider_Exception0*j WZend_Tool_Framework_Provider_Abstract0&i OZend_Tool_Framework_Metadata_Tool0)h UZend_Tool_Framework_Metadata_Dynamic0'g QZend_Tool_Framework_Metadata_Basic0,f [Zend_Tool_Framework_Manifest_Repository0+e YZend_Tool_Framework_Manifest_Exception01d eZend_Tool_Framework_Loader_IncludePathLoader0Jc Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator0+b YZend_Tool_Framework_Loader_BasicLoader0   ^  Sj%}CNb7



b
5

				_	6	[3\9z_I8^9|X4\4sM%aE$	                                     ?Zend_Validate_Db_Abstract0 1Zend_Validate_Date0 =Zend_Validate_CreditCard0 3Zend_Validate_Ccnum0 9Zend_Validate_Callback0 7Zend_Validate_Between0 7Zend_Validate_Barcode0 AZend_Validate_Barcode_Upce0  AZend_Validate_Barcode_Upca0 AZend_Validate_Barcode_Sscc0$~ KZend_Validate_Barcode_Royalmail0"} GZend_Validate_Barcode_Postnet0!| EZend_Validate_Barcode_Planet0#{ IZend_Validate_Barcode_Leitcode0 z CZend_Validate_Barcode_Itf140y AZend_Validate_Barcode_Issn0*x WZend_Validate_Barcode_IntelligentMail0$w KZend_Validate_Barcode_Identcode0!v EZend_Validate_Barcode_Gtin140!u EZend_Validate_Barcode_Gtin130!t EZend_Validate_Barcode_Gtin120s AZend_Validate_Barcode_Ean80r AZend_Validate_Barcode_Ean50q AZend_Validate_Barcode_Ean20 p CZend_Validate_Barcode_Ean180 o CZend_Validate_Barcode_Ean140 n CZend_Validate_Barcode_Ean130 m CZend_Validate_Barcode_Ean120$l KZend_Validate_Barcode_Code93ext0!k EZend_Validate_Barcode_Code930$j KZend_Validate_Barcode_Code39ext0!i EZend_Validate_Barcode_Code390,h [Zend_Validate_Barcode_Code25interleaved0!g EZend_Validate_Barcode_Code250*f WZend_Validate_Barcode_AdapterAbstract0e 3Zend_Validate_Alpha0d 3Zend_Validate_Alnum0c 9Zend_Validate_Abstract0b Zend_Uri0a 'Zend_Uri_Http0` 1Zend_Uri_Exception0_ )Zend_Translate0^ 7Zend_Translate_Plural0] =Zend_Translate_Exception0\ 9Zend_Translate_Adapter0![ EZend_Translate_Adapter_XmlTm0!Z EZend_Translate_Adapter_Xliff0Y AZend_Translate_Adapter_Tmx0X AZend_Translate_Adapter_Tbx0W ?Zend_Translate_Adapter_Qt0V AZend_Translate_Adapter_Ini0#U IZend_Translate_Adapter_Gettext0T AZend_Translate_Adapter_Csv0!S EZend_Translate_Adapter_Array0$R KZend_Tool_Project_Provider_View0$Q KZend_Tool_Project_Provider_Test0/P aZend_Tool_Project_Provider_ProjectProvider0'O QZend_Tool_Project_Provider_Project0'N QZend_Tool_Project_Provider_Profile0&M OZend_Tool_Project_Provider_Module0%L MZend_Tool_Project_Provider_Model0(K SZend_Tool_Project_Provider_Manifest0&J OZend_Tool_Project_Provider_Layout0$I KZend_Tool_Project_Provider_Form0)H UZend_Tool_Project_Provider_Exception0'G QZend_Tool_Project_Provider_DbTable0)F UZend_Tool_Project_Provider_DbAdapter0*E WZend_Tool_Project_Provider_Controller0+D YZend_Tool_Project_Provider_Application0&C OZend_Tool_Project_Provider_Action0(B SZend_Tool_Project_Provider_Abstract0A ?Zend_Tool_Project_Profile0'@ QZend_Tool_Project_Profile_Resource09? uZend_Tool_Project_Profile_Resource_SearchConstraints01> eZend_Tool_Project_Profile_Resource_Container0== }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter05< mZend_Tool_Project_Profile_Iterator_ContextFilter0-; ]Zend_Tool_Project_Profile_FileParser_Xml0(: SZend_Tool_Project_Profile_Exception0 9 CZend_Tool_Project_Exception0<8 {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory007 cZend_Tool_Project_Context_Zf_ViewsDirectory066 oZend_Tool_Project_Context_Zf_ViewScriptsDirectory005 cZend_Tool_Project_Context_Zf_ViewScriptFile064 oZend_Tool_Project_Context_Zf_ViewHelpersDirectory063 oZend_Tool_Project_Context_Zf_ViewFiltersDirectory0A2 Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory021 gZend_Tool_Project_Context_Zf_UploadsDirectory000 cZend_Tool_Project_Context_Zf_TestsDirectory07/ qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile0@. Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory01- eZend_Tool_Project_Context_Zf_TestLibraryFile06, oZend_Tool_Project_Context_Zf_TestLibraryDirectory0:+ wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFile0   l  rR1rM-zU5vW<rS7



|
f
Q
6
					v	Q	0	];^;fD pL*o<nC"R#kH%                t -Zend_View_Stream0s 5Zend_View_Helper_Url0r AZend_View_Helper_Translate0q AZend_View_Helper_ServerUrl0)p UZend_View_Helper_RenderToPlaceholder0!o EZend_View_Helper_Placeholder0*n WZend_View_Helper_Placeholder_Registry04m kZend_View_Helper_Placeholder_Registry_Exception0+l YZend_View_Helper_Placeholder_Container06k oZend_View_Helper_Placeholder_Container_Standalone05j mZend_View_Helper_Placeholder_Container_Exception04i kZend_View_Helper_Placeholder_Container_Abstract0!h EZend_View_Helper_PartialLoop0g =Zend_View_Helper_Partial0'f QZend_View_Helper_Partial_Exception0'e QZend_View_Helper_PaginationControl0 d CZend_View_Helper_Navigation0(c SZend_View_Helper_Navigation_Sitemap0%b MZend_View_Helper_Navigation_Menu0&a OZend_View_Helper_Navigation_Links0/` aZend_View_Helper_Navigation_HelperAbstract0,_ [Zend_View_Helper_Navigation_Breadcrumbs0^ ;Zend_View_Helper_Layout0] 7Zend_View_Helper_Json0"\ GZend_View_Helper_InlineScript0#[ IZend_View_Helper_HtmlQuicktime0Z ?Zend_View_Helper_HtmlPage0 Y CZend_View_Helper_HtmlObject0X ?Zend_View_Helper_HtmlList0W AZend_View_Helper_HtmlFlash0!V EZend_View_Helper_HtmlElement0U AZend_View_Helper_HeadTitle0T AZend_View_Helper_HeadStyle0 S CZend_View_Helper_HeadScript0R ?Zend_View_Helper_HeadMeta0Q ?Zend_View_Helper_HeadLink0"P GZend_View_Helper_FormTextarea0O ?Zend_View_Helper_FormText0 N CZend_View_Helper_FormSubmit0 M CZend_View_Helper_FormSelect0L AZend_View_Helper_FormReset0K AZend_View_Helper_FormRadio0"J GZend_View_Helper_FormPassword0I ?Zend_View_Helper_FormNote0'H QZend_View_Helper_FormMultiCheckbox0G AZend_View_Helper_FormLabel0F AZend_View_Helper_FormImage0 E CZend_View_Helper_FormHidden0D ?Zend_View_Helper_FormFile0 C CZend_View_Helper_FormErrors0!B EZend_View_Helper_FormElement0"A GZend_View_Helper_FormCheckbox0 @ CZend_View_Helper_FormButton0? 7Zend_View_Helper_Form0> ?Zend_View_Helper_Fieldset0= =Zend_View_Helper_Doctype0!< EZend_View_Helper_DeclareVars0; 9Zend_View_Helper_Cycle0: ?Zend_View_Helper_Currency09 =Zend_View_Helper_BaseUrl08 ;Zend_View_Helper_Action07 ?Zend_View_Helper_Abstract06 3Zend_View_Exception05 1Zend_View_Abstract04 %Zend_Version03 'Zend_Validate02 AZend_Validate_StringLength0#1 IZend_Validate_Sitemap_Priority00 ?Zend_Validate_Sitemap_Loc0"/ GZend_Validate_Sitemap_Lastmod0%. MZend_Validate_Sitemap_Changefreq0- 3Zend_Validate_Regex0, 9Zend_Validate_PostCode0+ 9Zend_Validate_NotEmpty0* 9Zend_Validate_LessThan0) 1Zend_Validate_Isbn0( -Zend_Validate_Ip0' /Zend_Validate_Int0& 7Zend_Validate_InArray0% ;Zend_Validate_Identical0$ 1Zend_Validate_Iban0# 9Zend_Validate_Hostname0" /Zend_Validate_Hex0! ?Zend_Validate_GreaterThan0  3Zend_Validate_Float0! EZend_Validate_File_WordCount0 ?Zend_Validate_File_Upload0 ;Zend_Validate_File_Size0 ;Zend_Validate_File_Sha10! EZend_Validate_File_NotExists0  CZend_Validate_File_MimeType0 9Zend_Validate_File_Md50 AZend_Validate_File_IsImage0$ KZend_Validate_File_IsCompressed0! EZend_Validate_File_ImageSize0 ;Zend_Validate_File_Hash0! EZend_Validate_File_FilesSize0! EZend_Validate_File_Extension0 ?Zend_Validate_File_Exists0' QZend_Validate_File_ExcludeMimeType0( SZend_Validate_File_ExcludeExtension0 =Zend_Validate_File_Crc320 =Zend_Validate_File_Count0 ;Zend_Validate_Exception0 AZend_Validate_EmailAddress0 5Zend_Validate_Digits0"
 GZend_Validate_Db_RecordExists0$	 KZend_Validate_Db_NoRecordExists0   i  wE ~O |L$e@|Z5




l
K
*
					}	l	P	-		d;|P)uS;~J\:]3Z1g:     %] MZend_Application_Resource_Router1/\ aZend_Application_Resource_ResourceAbstract1)[ UZend_Application_Resource_Navigation1&Z OZend_Application_Resource_Multidb1&Y OZend_Application_Resource_Modules1#X IZend_Application_Resource_Mail1"W GZend_Application_Resource_Log1%V MZend_Application_Resource_Locale1%U MZend_Application_Resource_Layout1.T _Zend_Application_Resource_Frontcontroller1(S SZend_Application_Resource_Exception1#R IZend_Application_Resource_Dojo1!Q EZend_Application_Resource_Db1+P YZend_Application_Resource_Cachemanager1&O OZend_Application_Module_Bootstrap1'N QZend_Application_Module_Autoloader1M AZend_Application_Exception1)L UZend_Application_Bootstrap_Exception11K eZend_Application_Bootstrap_BootstrapAbstract1)J UZend_Application_Bootstrap_Bootstrap1I ?Zend_Amf_Value_TraitsInfo1-H ]Zend_Amf_Value_Messaging_RemotingMessage1*G WZend_Amf_Value_Messaging_ErrorMessage1,F [Zend_Amf_Value_Messaging_CommandMessage1*E WZend_Amf_Value_Messaging_AsyncMessage1-D ]Zend_Amf_Value_Messaging_ArrayCollection10C cZend_Amf_Value_Messaging_AcknowledgeMessage1-B ]Zend_Amf_Value_Messaging_AbstractMessage1!A EZend_Amf_Value_MessageHeader1@ AZend_Amf_Value_MessageBody1? =Zend_Amf_Value_ByteArray1> AZend_Amf_Util_BinaryStream1= +Zend_Amf_Server1< ?Zend_Amf_Server_Exception1; /Zend_Amf_Response1: 9Zend_Amf_Response_Http19 -Zend_Amf_Request18 7Zend_Amf_Request_Http17 ?Zend_Amf_Parse_TypeLoader16 ?Zend_Amf_Parse_Serializer1#5 IZend_Amf_Parse_Resource_Stream1(4 SZend_Amf_Parse_Resource_MysqlResult1)3 UZend_Amf_Parse_Resource_MysqliResult1 2 CZend_Amf_Parse_OutputStream11 AZend_Amf_Parse_InputStream1 0 CZend_Amf_Parse_Deserializer1#/ IZend_Amf_Parse_Amf3_Serializer1%. MZend_Amf_Parse_Amf3_Deserializer1#- IZend_Amf_Parse_Amf0_Serializer1%, MZend_Amf_Parse_Amf0_Deserializer1+ 1Zend_Amf_Exception1* 1Zend_Amf_Constants1) 9Zend_Amf_Auth_Abstract1 ( CZend_Amf_Adobe_Introspector1' AZend_Amf_Adobe_DbInspector1& 3Zend_Amf_Adobe_Auth1% Zend_Acl1$ 'Zend_Acl_Role1# 9Zend_Acl_Role_Registry1%" MZend_Acl_Role_Registry_Exception1! /Zend_Acl_Resource1  1Zend_Acl_Exception1 /Zend_XmlRpc_Value0 =Zend_XmlRpc_Value_Struct0 =Zend_XmlRpc_Value_String0 =Zend_XmlRpc_Value_Scalar0 7Zend_XmlRpc_Value_Nil0 ?Zend_XmlRpc_Value_Integer0  CZend_XmlRpc_Value_Exception0 =Zend_XmlRpc_Value_Double0 AZend_XmlRpc_Value_DateTime0! EZend_XmlRpc_Value_Collection0 ?Zend_XmlRpc_Value_Boolean0! EZend_XmlRpc_Value_BigInteger0 =Zend_XmlRpc_Value_Base640 ;Zend_XmlRpc_Value_Array0 1Zend_XmlRpc_Server0 ?Zend_XmlRpc_Server_System0 =Zend_XmlRpc_Server_Fault0! EZend_XmlRpc_Server_Exception0 =Zend_XmlRpc_Server_Cache0 5Zend_XmlRpc_Response0 ?Zend_XmlRpc_Response_Http0
 3Zend_XmlRpc_Request0	 ?Zend_XmlRpc_Request_Stdin0 =Zend_XmlRpc_Request_Http0$ KZend_XmlRpc_Generator_XmlWriter0, [Zend_XmlRpc_Generator_GeneratorAbstract0& OZend_XmlRpc_Generator_DomDocument0 /Zend_XmlRpc_Fault0 7Zend_XmlRpc_Exception0 1Zend_XmlRpc_Client0# IZend_XmlRpc_Client_ServerProxy0+  YZend_XmlRpc_Client_ServerIntrospection0+ YZend_XmlRpc_Client_IntrospectException0%~ MZend_XmlRpc_Client_HttpException0&} OZend_XmlRpc_Client_FaultException0!| EZend_XmlRpc_Client_Exception0&{ OZend_Wildfire_Protocol_JsonStream0!z EZend_Wildfire_Plugin_FirePhp0.y _Zend_Wildfire_Plugin_FirePhp_TableMessage0)x UZend_Wildfire_Plugin_FirePhp_Message0w ;Zend_Wildfire_Exception0&v OZend_Wildfire_Channel_HttpHeaders0u Zend_View0   V  Ld:Z m7}\;



~
T
 					R	)	M)Y/n1qEy@rDT{\:                            $c KZend_Wildfire_Channel_Interface0b 3Zend_View_Interface0'a QZend_View_Helper_Navigation_Helper0` AZend_View_Helper_Interface0_ ;Zend_Validate_Interface0+^ YZend_Validate_Barcode_AdapterInterface03] iZend_Tool_Project_Profile_FileParser_Interface0:\ wZend_Tool_Project_Context_System_TopLevelRestrictable05[ mZend_Tool_Project_Context_System_NotOverwritable0/Z aZend_Tool_Project_Context_System_Interface0(Y SZend_Tool_Project_Context_Interface0+X YZend_Tool_Framework_Registry_Interface02W gZend_Tool_Framework_Registry_EnabledInterface0-V ]Zend_Tool_Framework_Provider_Pretendable0+U YZend_Tool_Framework_Provider_Interface0.T _Zend_Tool_Framework_Provider_Interactable0;S yZend_Tool_Framework_Provider_DocblockManifestInterface0+R YZend_Tool_Framework_Metadata_Interface0.Q _Zend_Tool_Framework_Metadata_Attributable06P oZend_Tool_Framework_Manifest_ProviderManifestable06O oZend_Tool_Framework_Manifest_MetadataManifestable0+N YZend_Tool_Framework_Manifest_Interface0+M YZend_Tool_Framework_Manifest_Indexable04L kZend_Tool_Framework_Manifest_ActionManifestable0)K UZend_Tool_Framework_Loader_Interface08J sZend_Tool_Framework_Client_Storage_AdapterInterface0DI 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface0;H yZend_Tool_Framework_Client_Interactive_OutputInterface0:G wZend_Tool_Framework_Client_Interactive_InputInterface0)F UZend_Tool_Framework_Action_Interface0(E SZend_Text_Table_Decorator_Interface0D /Zend_Tag_Taggable0&C OZend_Soap_Wsdl_Strategy_Interface0%B MZend_Session_Validator_Interface0'A QZend_Session_SaveHandler_Interface0I@ Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Interface0? 7Zend_Server_Interface0-> ]Zend_Serializer_Adapter_AdapterInterface04= kZend_Search_Lucene_Search_Highlighter_Interface0!< EZend_Search_Lucene_Interface03; iZend_Search_Lucene_Index_TermsStream_Interface0$: KZend_Queue_Stomp_FrameInterface009 cZend_Queue_Stomp_Client_ConnectionInterface0(8 SZend_Queue_Adapter_AdapterInterface07 ?Zend_Pdf_Filter_Interface0&6 OZend_Pdf_ElementFactory_Interface0,5 [Zend_Paginator_ScrollingStyle_Interface0$4 KZend_Paginator_AdapterAggregate0%3 MZend_Paginator_Adapter_Interface0&2 OZend_Oauth_Config_ConfigInterface0$1 KZend_Memory_Container_Interface010 eZend_Markup_Renderer_TokenConverterInterface0'/ QZend_Markup_Parser_ParserInterface0). UZend_Mail_Storage_Writable_Interface0'- QZend_Mail_Storage_Folder_Interface0, =Zend_Mail_Part_Interface0 + CZend_Mail_Message_Interface0!* EZend_Log_Formatter_Interface0) ?Zend_Log_Filter_Interface0( ?Zend_Log_FactoryInterface0'' QZend_Loader_PluginLoader_Interface0%& MZend_Loader_Autoloader_Interface00% cZend_Ldap_Node_Schema_ObjectClass_Interface02$ gZend_Ldap_Node_Schema_AttributeType_Interface03# iZend_InfoCard_Xml_Security_Transform_Interface0(" SZend_InfoCard_Xml_KeyInfo_Interface0(! SZend_InfoCard_Xml_Element_Interface0*  WZend_InfoCard_Xml_Assertion_Interface0- ]Zend_InfoCard_Cipher_Symmetric_Interface07 qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface07 qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interface0+ YZend_InfoCard_Cipher_Pki_Rsa_Interface0' QZend_InfoCard_Cipher_Pki_Interface0$ KZend_InfoCard_Adapter_Interface0$ KZend_Http_Client_Adapter_Stream0' QZend_Http_Client_Adapter_Interface0 AZend_Gdata_App_MediaSource0. _Zend_Form_Decorator_Marker_File_Interface0" GZend_Form_Decorator_Interface0 7Zend_Filter_Interface0" GZend_Filter_Encrypt_Interface0+ YZend_Filter_Compress_CompressInterface00 cZend_Feed_Writer_Renderer_RendererInterface01 eZend_Feed_Writer_Extension_RendererInterface0# IZend_Feed_Reader_FeedInterface0$ KZend_Feed_Reader_EntryInterface0   Y  wHpD Z.W0
uP3



j
C
			w	G	Y&nK+wP'_4I^5Je7	                       6< oZend_Tool_Framework_Manifest_MetadataManifestable1+; YZend_Tool_Framework_Manifest_Interface1+: YZend_Tool_Framework_Manifest_Indexable149 kZend_Tool_Framework_Manifest_ActionManifestable1)8 UZend_Tool_Framework_Loader_Interface187 sZend_Tool_Framework_Client_Storage_AdapterInterface1D6 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface1;5 yZend_Tool_Framework_Client_Interactive_OutputInterface1:4 wZend_Tool_Framework_Client_Interactive_InputInterface1)3 UZend_Tool_Framework_Action_Interface1(2 SZend_Text_Table_Decorator_Interface11 /Zend_Tag_Taggable1&0 OZend_Soap_Wsdl_Strategy_Interface1%/ MZend_Session_Validator_Interface1'. QZend_Session_SaveHandler_Interface1I- Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Interface1, 7Zend_Server_Interface1-+ ]Zend_Serializer_Adapter_AdapterInterface14* kZend_Search_Lucene_Search_Highlighter_Interface1!) EZend_Search_Lucene_Interface13( iZend_Search_Lucene_Index_TermsStream_Interface1$' KZend_Queue_Stomp_FrameInterface10& cZend_Queue_Stomp_Client_ConnectionInterface1(% SZend_Queue_Adapter_AdapterInterface1$ ?Zend_Pdf_Filter_Interface1&# OZend_Pdf_ElementFactory_Interface1," [Zend_Paginator_ScrollingStyle_Interface1$! KZend_Paginator_AdapterAggregate1%  MZend_Paginator_Adapter_Interface1& OZend_Oauth_Config_ConfigInterface1$ KZend_Memory_Container_Interface11 eZend_Markup_Renderer_TokenConverterInterface1' QZend_Markup_Parser_ParserInterface1) UZend_Mail_Storage_Writable_Interface1' QZend_Mail_Storage_Folder_Interface1 =Zend_Mail_Part_Interface1  CZend_Mail_Message_Interface1! EZend_Log_Formatter_Interface1 ?Zend_Log_Filter_Interface1 ?Zend_Log_FactoryInterface1' QZend_Loader_PluginLoader_Interface1% MZend_Loader_Autoloader_Interface10 cZend_Ldap_Node_Schema_ObjectClass_Interface12 gZend_Ldap_Node_Schema_AttributeType_Interface13 iZend_InfoCard_Xml_Security_Transform_Interface1( SZend_InfoCard_Xml_KeyInfo_Interface1( SZend_InfoCard_Xml_Element_Interface1* WZend_InfoCard_Xml_Assertion_Interface1- ]Zend_InfoCard_Cipher_Symmetric_Interface17 qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface17
 qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interface1+	 YZend_InfoCard_Cipher_Pki_Rsa_Interface1' QZend_InfoCard_Cipher_Pki_Interface1$ KZend_InfoCard_Adapter_Interface1$ KZend_Http_Client_Adapter_Stream1' QZend_Http_Client_Adapter_Interface1 AZend_Gdata_App_MediaSource1. _Zend_Form_Decorator_Marker_File_Interface1" GZend_Form_Decorator_Interface1 7Zend_Filter_Interface1"  GZend_Filter_Encrypt_Interface1+ YZend_Filter_Compress_CompressInterface10~ cZend_Feed_Writer_Renderer_RendererInterface11} eZend_Feed_Writer_Extension_RendererInterface1#| IZend_Feed_Reader_FeedInterface1${ KZend_Feed_Reader_EntryInterface17z qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface1-y ]Zend_Feed_Pubsubhubbub_CallbackInterface1 x CZend_Feed_Builder_Interface1 w CZend_Db_Statement_Interface1$v KZend_Currency_CurrencyInterface1)u UZend_Crypt_Math_BigInteger_Interface1+t YZend_Controller_Router_Route_Interface1%s MZend_Controller_Router_Interface1)r UZend_Controller_Dispatcher_Interface1%q MZend_Controller_Action_Interface1p 5Zend_Captcha_Adapter1!o EZend_Cache_Backend_Interface1)n UZend_Cache_Backend_ExtendedInterface1 m CZend_Auth_Storage_Interface1 l CZend_Auth_Adapter_Interface1.k _Zend_Auth_Adapter_Http_Resolver_Interface1'j QZend_Application_Resource_Resource14i kZend_Application_Bootstrap_ResourceBootstrapper1,h [Zend_Application_Bootstrap_Bootstrapper1g ;Zend_Acl_Role_Interface1 f CZend_Acl_Resource_Interface1e ?Zend_Acl_Assert_Interface1#d IZend_Wildfire_Plugin_Interface0   l  jH'bC"mN+vU3uR.



z
X
)
					i	G	'	a; _< ~cD*p<
Z6{RvW8W%                    .I _Zend_Controller_Action_Helper_AjaxContext1.H _Zend_Controller_Action_Helper_ActionStack1+G YZend_Controller_Action_Helper_Abstract1%F MZend_Controller_Action_Exception1E 3Zend_Console_Getopt1"D GZend_Console_Getopt_Exception1C #Zend_Config1B +Zend_Config_Xml1A 1Zend_Config_Writer1@ 9Zend_Config_Writer_Xml1? 9Zend_Config_Writer_Ini1$> KZend_Config_Writer_FileAbstract1= =Zend_Config_Writer_Array1< +Zend_Config_Ini1; 7Zend_Config_Exception1$: KZend_CodeGenerator_Php_Property119 eZend_CodeGenerator_Php_Property_DefaultValue1%8 MZend_CodeGenerator_Php_Parameter127 gZend_CodeGenerator_Php_Parameter_DefaultValue1"6 GZend_CodeGenerator_Php_Method1,5 [Zend_CodeGenerator_Php_Member_Container1+4 YZend_CodeGenerator_Php_Member_Abstract1 3 CZend_CodeGenerator_Php_File1%2 MZend_CodeGenerator_Php_Exception1$1 KZend_CodeGenerator_Php_Docblock1(0 SZend_CodeGenerator_Php_Docblock_Tag1// aZend_CodeGenerator_Php_Docblock_Tag_Return1.. _Zend_CodeGenerator_Php_Docblock_Tag_Param10- cZend_CodeGenerator_Php_Docblock_Tag_License1!, EZend_CodeGenerator_Php_Class1 + CZend_CodeGenerator_Php_Body1$* KZend_CodeGenerator_Php_Abstract1!) EZend_CodeGenerator_Exception1 ( CZend_CodeGenerator_Abstract1' /Zend_Captcha_Word1& 9Zend_Captcha_ReCaptcha1% 1Zend_Captcha_Image1$ 3Zend_Captcha_Figlet1# 9Zend_Captcha_Exception1" /Zend_Captcha_Dumb1! /Zend_Captcha_Base1  !Zend_Cache1 1Zend_Cache_Manager1 =Zend_Cache_Frontend_Page1 AZend_Cache_Frontend_Output1! EZend_Cache_Frontend_Function1 =Zend_Cache_Frontend_File1 ?Zend_Cache_Frontend_Class1  CZend_Cache_Frontend_Capture1 5Zend_Cache_Exception1 +Zend_Cache_Core1 1Zend_Cache_Backend1" GZend_Cache_Backend_ZendServer1( SZend_Cache_Backend_ZendServer_ShMem1' QZend_Cache_Backend_ZendServer_Disk1$ KZend_Cache_Backend_ZendPlatform1 ?Zend_Cache_Backend_Xcache1! EZend_Cache_Backend_TwoLevels1 ;Zend_Cache_Backend_Test1 ?Zend_Cache_Backend_Static1 ?Zend_Cache_Backend_Sqlite1! EZend_Cache_Backend_Memcached1 ;Zend_Cache_Backend_File1!
 EZend_Cache_Backend_BlackHole1	 9Zend_Cache_Backend_Apc1 %Zend_Barcode1+ YZend_Barcode_Renderer_RendererAbstract1 ?Zend_Barcode_Renderer_Pdf1  CZend_Barcode_Renderer_Image1$ KZend_Barcode_Renderer_Exception1 =Zend_Barcode_Object_Upce1 =Zend_Barcode_Object_Upca1" GZend_Barcode_Object_Royalmail1   CZend_Barcode_Object_Postnet1 AZend_Barcode_Object_Planet1'~ QZend_Barcode_Object_ObjectAbstract1!} EZend_Barcode_Object_Leitcode1| ?Zend_Barcode_Object_Itf141"{ GZend_Barcode_Object_Identcode1"z GZend_Barcode_Object_Exception1y ?Zend_Barcode_Object_Error1x =Zend_Barcode_Object_Ean81w =Zend_Barcode_Object_Ean51v =Zend_Barcode_Object_Ean21u ?Zend_Barcode_Object_Ean131t AZend_Barcode_Object_Code391*s WZend_Barcode_Object_Code25interleaved1r AZend_Barcode_Object_Code251q 9Zend_Barcode_Exception1p Zend_Auth1o ?Zend_Auth_Storage_Session1$n KZend_Auth_Storage_NonPersistent1 m CZend_Auth_Storage_Exception1l -Zend_Auth_Result1k 3Zend_Auth_Exception1j =Zend_Auth_Adapter_OpenId1i 9Zend_Auth_Adapter_Ldap1h AZend_Auth_Adapter_InfoCard1g 9Zend_Auth_Adapter_Http1)f UZend_Auth_Adapter_Http_Resolver_File1.e _Zend_Auth_Adapter_Http_Resolver_Exception1 d CZend_Auth_Adapter_Exception1c =Zend_Auth_Adapter_Digest1b ?Zend_Auth_Adapter_DbTable1a -Zend_Application1#` IZend_Application_Resource_View1(_ SZend_Application_Resource_Translate1&^ OZend_Application_Resource_Session1   g  M!\2zN!b<iD



v
P
"				|	Q	#{P/Z7sS=$vT+{W7eF,zc;a?                                          0 7Zend_Db_Statement_Pdo1/ ?Zend_Db_Statement_Pdo_Oci1. ?Zend_Db_Statement_Pdo_Ibm1- =Zend_Db_Statement_Oracle1', QZend_Db_Statement_Oracle_Exception1+ =Zend_Db_Statement_Mysqli1'* QZend_Db_Statement_Mysqli_Exception1 ) CZend_Db_Statement_Exception1( 7Zend_Db_Statement_Db21$' KZend_Db_Statement_Db2_Exception1& )Zend_Db_Select1% =Zend_Db_Select_Exception1$ -Zend_Db_Profiler1# 9Zend_Db_Profiler_Query1" =Zend_Db_Profiler_Firebug1! AZend_Db_Profiler_Exception1  %Zend_Db_Expr1 /Zend_Db_Exception1 9Zend_Db_Adapter_Sqlsrv1% MZend_Db_Adapter_Sqlsrv_Exception1 AZend_Db_Adapter_Pdo_Sqlite1 ?Zend_Db_Adapter_Pdo_Pgsql1 ;Zend_Db_Adapter_Pdo_Oci1 ?Zend_Db_Adapter_Pdo_Mysql1 ?Zend_Db_Adapter_Pdo_Mssql1 ;Zend_Db_Adapter_Pdo_Ibm1  CZend_Db_Adapter_Pdo_Ibm_Ids1  CZend_Db_Adapter_Pdo_Ibm_Db21! EZend_Db_Adapter_Pdo_Abstract1 9Zend_Db_Adapter_Oracle1% MZend_Db_Adapter_Oracle_Exception1 9Zend_Db_Adapter_Mysqli1% MZend_Db_Adapter_Mysqli_Exception1 ?Zend_Db_Adapter_Exception1 3Zend_Db_Adapter_Db21" GZend_Db_Adapter_Db2_Exception1 =Zend_Db_Adapter_Abstract1 Zend_Date1
 3Zend_Date_Exception1	 5Zend_Date_DateObject1 -Zend_Date_Cities1 'Zend_Currency1 ;Zend_Currency_Exception1 !Zend_Crypt1 )Zend_Crypt_Rsa1 1Zend_Crypt_Rsa_Key1 ?Zend_Crypt_Rsa_Key_Public1 AZend_Crypt_Rsa_Key_Private1  +Zend_Crypt_Math1 ?Zend_Crypt_Math_Exception1~ AZend_Crypt_Math_BigInteger1#} IZend_Crypt_Math_BigInteger_Gmp1)| UZend_Crypt_Math_BigInteger_Exception1&{ OZend_Crypt_Math_BigInteger_Bcmath1z +Zend_Crypt_Hmac1y ?Zend_Crypt_Hmac_Exception1x 5Zend_Crypt_Exception1w =Zend_Crypt_DiffieHellman1'v QZend_Crypt_DiffieHellman_Exception1!u EZend_Controller_Router_Route1(t SZend_Controller_Router_Route_Static1's QZend_Controller_Router_Route_Regex1(r SZend_Controller_Router_Route_Module1*q WZend_Controller_Router_Route_Hostname1'p QZend_Controller_Router_Route_Chain1*o WZend_Controller_Router_Route_Abstract1#n IZend_Controller_Router_Rewrite1%m MZend_Controller_Router_Exception1$l KZend_Controller_Router_Abstract1*k WZend_Controller_Response_HttpTestCase1"j GZend_Controller_Response_Http1'i QZend_Controller_Response_Exception1!h EZend_Controller_Response_Cli1&g OZend_Controller_Response_Abstract1#f IZend_Controller_Request_Simple1)e UZend_Controller_Request_HttpTestCase1!d EZend_Controller_Request_Http1&c OZend_Controller_Request_Exception1&b OZend_Controller_Request_Apache4041%a MZend_Controller_Request_Abstract1&` OZend_Controller_Plugin_PutHandler1(_ SZend_Controller_Plugin_ErrorHandler1"^ GZend_Controller_Plugin_Broker1'] QZend_Controller_Plugin_ActionStack1$\ KZend_Controller_Plugin_Abstract1[ 7Zend_Controller_Front1Z ?Zend_Controller_Exception1(Y SZend_Controller_Dispatcher_Standard1)X UZend_Controller_Dispatcher_Exception1(W SZend_Controller_Dispatcher_Abstract1V 9Zend_Controller_Action1(U SZend_Controller_Action_HelperBroker16T oZend_Controller_Action_HelperBroker_PriorityStack1/S aZend_Controller_Action_Helper_ViewRenderer1&R OZend_Controller_Action_Helper_Url1-Q ]Zend_Controller_Action_Helper_Redirector1'P QZend_Controller_Action_Helper_Json11O eZend_Controller_Action_Helper_FlashMessenger10N cZend_Controller_Action_Helper_ContextSwitch1(M SZend_Controller_Action_Helper_Cache1<L {Zend_Controller_Action_Helper_AutoCompleteScriptaculous13K iZend_Controller_Action_Helper_AutoCompleteDojo18J sZend_Controller_Action_Helper_AutoComplete_Abstract1   d  {Z:oH+n?X(X0



a
2
			y	N	 T#mAvHvS. V(R'U(s\<                                 $ KZend_Feed_Builder_Header_Itunes1  CZend_Feed_Builder_Exception1 ;Zend_Feed_Builder_Entry1 )Zend_Feed_Atom1 1Zend_Feed_Abstract1 )Zend_Exception1 )Zend_Dom_Query1 7Zend_Dom_Query_Result1 =Zend_Dom_Query_Css2Xpath1 1Zend_Dom_Exception1
 Zend_Dojo1)	 UZend_Dojo_View_Helper_VerticalSlider1, [Zend_Dojo_View_Helper_ValidationTextBox1& OZend_Dojo_View_Helper_TimeTextBox1" GZend_Dojo_View_Helper_TextBox1# IZend_Dojo_View_Helper_Textarea1' QZend_Dojo_View_Helper_TabContainer1' QZend_Dojo_View_Helper_SubmitButton1) UZend_Dojo_View_Helper_StackContainer1) UZend_Dojo_View_Helper_SplitContainer1!  EZend_Dojo_View_Helper_Slider1) UZend_Dojo_View_Helper_SimpleTextarea1&~ OZend_Dojo_View_Helper_RadioButton1*} WZend_Dojo_View_Helper_PasswordTextBox1(| SZend_Dojo_View_Helper_NumberTextBox1({ SZend_Dojo_View_Helper_NumberSpinner1+z YZend_Dojo_View_Helper_HorizontalSlider1y AZend_Dojo_View_Helper_Form1*x WZend_Dojo_View_Helper_FilteringSelect1!w EZend_Dojo_View_Helper_Editor1v AZend_Dojo_View_Helper_Dojo1)u UZend_Dojo_View_Helper_Dojo_Container1)t UZend_Dojo_View_Helper_DijitContainer1 s CZend_Dojo_View_Helper_Dijit1&r OZend_Dojo_View_Helper_DateTextBox1&q OZend_Dojo_View_Helper_CustomDijit1*p WZend_Dojo_View_Helper_CurrencyTextBox1&o OZend_Dojo_View_Helper_ContentPane1#n IZend_Dojo_View_Helper_ComboBox1#m IZend_Dojo_View_Helper_CheckBox1!l EZend_Dojo_View_Helper_Button1*k WZend_Dojo_View_Helper_BorderContainer1(j SZend_Dojo_View_Helper_AccordionPane1-i ]Zend_Dojo_View_Helper_AccordionContainer1h =Zend_Dojo_View_Exception1g )Zend_Dojo_Form1f 9Zend_Dojo_Form_SubForm1*e WZend_Dojo_Form_Element_VerticalSlider1-d ]Zend_Dojo_Form_Element_ValidationTextBox1'c QZend_Dojo_Form_Element_TimeTextBox1#b IZend_Dojo_Form_Element_TextBox1$a KZend_Dojo_Form_Element_Textarea1(` SZend_Dojo_Form_Element_SubmitButton1"_ GZend_Dojo_Form_Element_Slider1*^ WZend_Dojo_Form_Element_SimpleTextarea1'] QZend_Dojo_Form_Element_RadioButton1+\ YZend_Dojo_Form_Element_PasswordTextBox1)[ UZend_Dojo_Form_Element_NumberTextBox1)Z UZend_Dojo_Form_Element_NumberSpinner1,Y [Zend_Dojo_Form_Element_HorizontalSlider1+X YZend_Dojo_Form_Element_FilteringSelect1"W GZend_Dojo_Form_Element_Editor1&V OZend_Dojo_Form_Element_DijitMulti1!U EZend_Dojo_Form_Element_Dijit1'T QZend_Dojo_Form_Element_DateTextBox1+S YZend_Dojo_Form_Element_CurrencyTextBox1$R KZend_Dojo_Form_Element_ComboBox1$Q KZend_Dojo_Form_Element_CheckBox1"P GZend_Dojo_Form_Element_Button1 O CZend_Dojo_Form_DisplayGroup1*N WZend_Dojo_Form_Decorator_TabContainer1,M [Zend_Dojo_Form_Decorator_StackContainer1,L [Zend_Dojo_Form_Decorator_SplitContainer1'K QZend_Dojo_Form_Decorator_DijitForm1*J WZend_Dojo_Form_Decorator_DijitElement1,I [Zend_Dojo_Form_Decorator_DijitContainer1)H UZend_Dojo_Form_Decorator_ContentPane1-G ]Zend_Dojo_Form_Decorator_BorderContainer1+F YZend_Dojo_Form_Decorator_AccordionPane10E cZend_Dojo_Form_Decorator_AccordionContainer1D 3Zend_Dojo_Exception1C )Zend_Dojo_Data1B 5Zend_Dojo_BuildLayer1A !Zend_Debug1@ Zend_Db1? 'Zend_Db_Table1> 5Zend_Db_Table_Select1#= IZend_Db_Table_Select_Exception1< 5Zend_Db_Table_Rowset1#; IZend_Db_Table_Rowset_Exception1": GZend_Db_Table_Rowset_Abstract19 /Zend_Db_Table_Row1 8 CZend_Db_Table_Row_Exception17 AZend_Db_Table_Row_Abstract16 ;Zend_Db_Table_Exception15 =Zend_Db_Table_Definition14 9Zend_Db_Table_Abstract13 /Zend_Db_Statement12 =Zend_Db_Statement_Sqlsrv1'1 QZend_Db_Statement_Sqlsrv_Exception1   ^  mQ5}K"{NW*T!



_
0				k	H	&	 p6 M}IjLR&}Q)|_>lO0                               r +Zend_Filter_Dir1q 1Zend_Filter_Digits1p 3Zend_Filter_Decrypt1o 9Zend_Filter_Decompress1n 5Zend_Filter_Compress1m =Zend_Filter_Compress_Zip1l =Zend_Filter_Compress_Tar1k =Zend_Filter_Compress_Rar1j =Zend_Filter_Compress_Lzf1i ;Zend_Filter_Compress_Gz1*h WZend_Filter_Compress_CompressAbstract1g =Zend_Filter_Compress_Bz21f 5Zend_Filter_Callback1e 3Zend_Filter_Boolean1d 5Zend_Filter_BaseName1c /Zend_Filter_Alpha1b /Zend_Filter_Alnum1a 1Zend_File_Transfer1!` EZend_File_Transfer_Exception1$_ KZend_File_Transfer_Adapter_Http1(^ SZend_File_Transfer_Adapter_Abstract1] Zend_Feed1\ -Zend_Feed_Writer1[ ;Zend_Feed_Writer_Source1/Z aZend_Feed_Writer_Renderer_RendererAbstract1'Y QZend_Feed_Writer_Renderer_Feed_Rss1(X SZend_Feed_Writer_Renderer_Feed_Atom1/W aZend_Feed_Writer_Renderer_Feed_Atom_Source15V mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract1(U SZend_Feed_Writer_Renderer_Entry_Rss1)T UZend_Feed_Writer_Renderer_Entry_Atom11S eZend_Feed_Writer_Renderer_Entry_Atom_Deleted1R 7Zend_Feed_Writer_Feed1'Q QZend_Feed_Writer_Feed_FeedAbstract1<P {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry18O sZend_Feed_Writer_Extension_Threading_Renderer_Entry14N kZend_Feed_Writer_Extension_Slash_Renderer_Entry10M cZend_Feed_Writer_Extension_RendererAbstract14L kZend_Feed_Writer_Extension_ITunes_Renderer_Feed15K mZend_Feed_Writer_Extension_ITunes_Renderer_Entry1+J YZend_Feed_Writer_Extension_ITunes_Feed1,I [Zend_Feed_Writer_Extension_ITunes_Entry18H sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed19G uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry16F oZend_Feed_Writer_Extension_Content_Renderer_Entry12E gZend_Feed_Writer_Extension_Atom_Renderer_Feed16D oZend_Feed_Writer_Exception_InvalidMethodException1C 9Zend_Feed_Writer_Entry1B =Zend_Feed_Writer_Deleted1A 'Zend_Feed_Rss1@ -Zend_Feed_Reader1? =Zend_Feed_Reader_FeedSet1"> GZend_Feed_Reader_FeedAbstract1= ?Zend_Feed_Reader_Feed_Rss1< AZend_Feed_Reader_Feed_Atom1&; OZend_Feed_Reader_Feed_Atom_Source13: iZend_Feed_Reader_Extension_WellFormedWeb_Entry1,9 [Zend_Feed_Reader_Extension_Thread_Entry108 cZend_Feed_Reader_Extension_Syndication_Feed1+7 YZend_Feed_Reader_Extension_Slash_Entry1,6 [Zend_Feed_Reader_Extension_Podcast_Feed1-5 ]Zend_Feed_Reader_Extension_Podcast_Entry1,4 [Zend_Feed_Reader_Extension_FeedAbstract1-3 ]Zend_Feed_Reader_Extension_EntryAbstract1/2 aZend_Feed_Reader_Extension_DublinCore_Feed101 cZend_Feed_Reader_Extension_DublinCore_Entry140 kZend_Feed_Reader_Extension_CreativeCommons_Feed15/ mZend_Feed_Reader_Extension_CreativeCommons_Entry1-. ]Zend_Feed_Reader_Extension_Content_Entry1)- UZend_Feed_Reader_Extension_Atom_Feed1*, WZend_Feed_Reader_Extension_Atom_Entry1#+ IZend_Feed_Reader_EntryAbstract1* AZend_Feed_Reader_Entry_Rss1 ) CZend_Feed_Reader_Entry_Atom1 ( CZend_Feed_Reader_Collection13' iZend_Feed_Reader_Collection_CollectionAbstract1)& UZend_Feed_Reader_Collection_Category1'% QZend_Feed_Reader_Collection_Author1$ 9Zend_Feed_Pubsubhubbub1&# OZend_Feed_Pubsubhubbub_Subscriber1/" aZend_Feed_Pubsubhubbub_Subscriber_Callback1%! MZend_Feed_Pubsubhubbub_Publisher1.  _Zend_Feed_Pubsubhubbub_Model_Subscription1/ aZend_Feed_Pubsubhubbub_Model_ModelAbstract1( SZend_Feed_Pubsubhubbub_HttpResponse1% MZend_Feed_Pubsubhubbub_Exception1, [Zend_Feed_Pubsubhubbub_CallbackAbstract1 3Zend_Feed_Exception1 3Zend_Feed_Entry_Rss1 5Zend_Feed_Entry_Atom1 =Zend_Feed_Entry_Abstract1 /Zend_Feed_Element1 /Zend_Feed_Builder1 =Zend_Feed_Builder_Header1   k  ^=~f<xY7jAf7




W
3
				u	T	3	
{O+{X4mG$`@&
oH_2	j?[0   $] KZend_Gdata_App_Extension_Source1$\ KZend_Gdata_App_Extension_Rights1'[ QZend_Gdata_App_Extension_Published1$Z KZend_Gdata_App_Extension_Person1"Y GZend_Gdata_App_Extension_Name1"X GZend_Gdata_App_Extension_Logo1"W GZend_Gdata_App_Extension_Link1 V CZend_Gdata_App_Extension_Id1"U GZend_Gdata_App_Extension_Icon1'T QZend_Gdata_App_Extension_Generator1#S IZend_Gdata_App_Extension_Email1%R MZend_Gdata_App_Extension_Element1$Q KZend_Gdata_App_Extension_Edited1#P IZend_Gdata_App_Extension_Draft1%O MZend_Gdata_App_Extension_Control1)N UZend_Gdata_App_Extension_Contributor1%M MZend_Gdata_App_Extension_Content1&L OZend_Gdata_App_Extension_Category1$K KZend_Gdata_App_Extension_Author1J =Zend_Gdata_App_Exception1I 5Zend_Gdata_App_Entry1,H [Zend_Gdata_App_CaptchaRequiredException1#G IZend_Gdata_App_BaseMediaSource1F 3Zend_Gdata_App_Base1*E WZend_Gdata_App_BadMethodCallException1!D EZend_Gdata_App_AuthException1C Zend_Form1B /Zend_Form_SubForm1A 3Zend_Form_Exception1@ /Zend_Form_Element1? ;Zend_Form_Element_Xhtml1> AZend_Form_Element_Textarea1= 9Zend_Form_Element_Text1< =Zend_Form_Element_Submit1; =Zend_Form_Element_Select1: ;Zend_Form_Element_Reset19 ;Zend_Form_Element_Radio18 AZend_Form_Element_Password1"7 GZend_Form_Element_Multiselect1$6 KZend_Form_Element_MultiCheckbox15 ;Zend_Form_Element_Multi14 ;Zend_Form_Element_Image13 =Zend_Form_Element_Hidden12 9Zend_Form_Element_Hash11 9Zend_Form_Element_File1 0 CZend_Form_Element_Exception1/ AZend_Form_Element_Checkbox1. ?Zend_Form_Element_Captcha1- =Zend_Form_Element_Button1, 9Zend_Form_DisplayGroup1#+ IZend_Form_Decorator_ViewScript1#* IZend_Form_Decorator_ViewHelper1 ) CZend_Form_Decorator_Tooltip1(( SZend_Form_Decorator_PrepareElements1' ?Zend_Form_Decorator_Label1& ?Zend_Form_Decorator_Image1 % CZend_Form_Decorator_HtmlTag1#$ IZend_Form_Decorator_FormErrors1%# MZend_Form_Decorator_FormElements1" =Zend_Form_Decorator_Form1! =Zend_Form_Decorator_File1!  EZend_Form_Decorator_Fieldset1" GZend_Form_Decorator_Exception1 AZend_Form_Decorator_Errors1$ KZend_Form_Decorator_DtDdWrapper1$ KZend_Form_Decorator_Description1  CZend_Form_Decorator_Captcha1% MZend_Form_Decorator_Captcha_Word1! EZend_Form_Decorator_Callback1! EZend_Form_Decorator_Abstract1 #Zend_Filter1+ YZend_Filter_Word_UnderscoreToSeparator1& OZend_Filter_Word_UnderscoreToDash1+ YZend_Filter_Word_UnderscoreToCamelCase1* WZend_Filter_Word_SeparatorToSeparator1% MZend_Filter_Word_SeparatorToDash1* WZend_Filter_Word_SeparatorToCamelCase1( SZend_Filter_Word_Separator_Abstract1& OZend_Filter_Word_DashToUnderscore1% MZend_Filter_Word_DashToSeparator1% MZend_Filter_Word_DashToCamelCase1+ YZend_Filter_Word_CamelCaseToUnderscore1* WZend_Filter_Word_CamelCaseToSeparator1%
 MZend_Filter_Word_CamelCaseToDash1	 7Zend_Filter_StripTags1 ?Zend_Filter_StripNewlines1 9Zend_Filter_StringTrim1 ?Zend_Filter_StringToUpper1 ?Zend_Filter_StringToLower1 5Zend_Filter_RealPath1 ;Zend_Filter_PregReplace1 -Zend_Filter_Null1& OZend_Filter_NormalizedToLocalized1&  OZend_Filter_LocalizedToNormalized1 +Zend_Filter_Int1~ /Zend_Filter_Input1} 7Zend_Filter_Inflector1| =Zend_Filter_HtmlEntities1{ AZend_Filter_File_UpperCase1z ;Zend_Filter_File_Rename1y AZend_Filter_File_LowerCase1x =Zend_Filter_File_Encrypt1w =Zend_Filter_File_Decrypt1v 7Zend_Filter_Exception1u 3Zend_Filter_Encrypt1 t CZend_Filter_Encrypt_Openssl1s AZend_Filter_Encrypt_Mcrypt1   _  `7a1sK4e8Q"




t
N
'				q	B	vP+g7
tCfM/[+hK3g9yN*            -< ]Zend_Gdata_Extension_RecurrenceException1$; KZend_Gdata_Extension_Recurrence1 : CZend_Gdata_Extension_Rating1'9 QZend_Gdata_Extension_OriginalEvent108 cZend_Gdata_Extension_OpenSearchTotalResults1.7 _Zend_Gdata_Extension_OpenSearchStartIndex106 cZend_Gdata_Extension_OpenSearchItemsPerPage1"5 GZend_Gdata_Extension_FeedLink1*4 WZend_Gdata_Extension_ExtendedProperty1%3 MZend_Gdata_Extension_EventStatus1#2 IZend_Gdata_Extension_EntryLink1"1 GZend_Gdata_Extension_Comments1&0 OZend_Gdata_Extension_AttendeeType1(/ SZend_Gdata_Extension_AttendeeStatus1. +Zend_Gdata_Exif1- 5Zend_Gdata_Exif_Feed1#, IZend_Gdata_Exif_Extension_Time1#+ IZend_Gdata_Exif_Extension_Tags1$* KZend_Gdata_Exif_Extension_Model1#) IZend_Gdata_Exif_Extension_Make1"( GZend_Gdata_Exif_Extension_Iso1,' [Zend_Gdata_Exif_Extension_ImageUniqueId1$& KZend_Gdata_Exif_Extension_FStop1*% WZend_Gdata_Exif_Extension_FocalLength1$$ KZend_Gdata_Exif_Extension_Flash1'# QZend_Gdata_Exif_Extension_Exposure1'" QZend_Gdata_Exif_Extension_Distance1! 7Zend_Gdata_Exif_Entry1  -Zend_Gdata_Entry1 7Zend_Gdata_DublinCore1* WZend_Gdata_DublinCore_Extension_Title1, [Zend_Gdata_DublinCore_Extension_Subject1+ YZend_Gdata_DublinCore_Extension_Rights1. _Zend_Gdata_DublinCore_Extension_Publisher1- ]Zend_Gdata_DublinCore_Extension_Language1/ aZend_Gdata_DublinCore_Extension_Identifier1+ YZend_Gdata_DublinCore_Extension_Format10 cZend_Gdata_DublinCore_Extension_Description1) UZend_Gdata_DublinCore_Extension_Date1, [Zend_Gdata_DublinCore_Extension_Creator1 +Zend_Gdata_Docs1 7Zend_Gdata_Docs_Query1% MZend_Gdata_Docs_DocumentListFeed1& OZend_Gdata_Docs_DocumentListEntry1 9Zend_Gdata_ClientLogin1 3Zend_Gdata_Calendar1! EZend_Gdata_Calendar_ListFeed1" GZend_Gdata_Calendar_ListEntry1- ]Zend_Gdata_Calendar_Extension_WebContent1+ YZend_Gdata_Calendar_Extension_Timezone19
 uZend_Gdata_Calendar_Extension_SendEventNotifications1+	 YZend_Gdata_Calendar_Extension_Selected1+ YZend_Gdata_Calendar_Extension_QuickAdd1' QZend_Gdata_Calendar_Extension_Link1) UZend_Gdata_Calendar_Extension_Hidden1( SZend_Gdata_Calendar_Extension_Color1. _Zend_Gdata_Calendar_Extension_AccessLevel1# IZend_Gdata_Calendar_EventQuery1" GZend_Gdata_Calendar_EventFeed1# IZend_Gdata_Calendar_EventEntry1  -Zend_Gdata_Books1! EZend_Gdata_Books_VolumeQuery1 ~ CZend_Gdata_Books_VolumeFeed1!} EZend_Gdata_Books_VolumeEntry1+| YZend_Gdata_Books_Extension_Viewability1-{ ]Zend_Gdata_Books_Extension_ThumbnailLink1&z OZend_Gdata_Books_Extension_Review1+y YZend_Gdata_Books_Extension_PreviewLink1(x SZend_Gdata_Books_Extension_InfoLink1-w ]Zend_Gdata_Books_Extension_Embeddability1)v UZend_Gdata_Books_Extension_BooksLink1-u ]Zend_Gdata_Books_Extension_BooksCategory1.t _Zend_Gdata_Books_Extension_AnnotationLink1$s KZend_Gdata_Books_CollectionFeed1%r MZend_Gdata_Books_CollectionEntry1q 1Zend_Gdata_AuthSub1p )Zend_Gdata_App1$o KZend_Gdata_App_VersionException1n 3Zend_Gdata_App_Util1#m IZend_Gdata_App_MediaFileSource1l ?Zend_Gdata_App_MediaEntry12k gZend_Gdata_App_LoggingHttpClientAdapterSocket1j AZend_Gdata_App_IOException1,i [Zend_Gdata_App_InvalidArgumentException1!h EZend_Gdata_App_HttpException1$g KZend_Gdata_App_FeedSourceParent1#f IZend_Gdata_App_FeedEntryParent1e 3Zend_Gdata_App_Feed1d =Zend_Gdata_App_Extension1!c EZend_Gdata_App_Extension_Uri1%b MZend_Gdata_App_Extension_Updated1#a IZend_Gdata_App_Extension_Title1"` GZend_Gdata_App_Extension_Text1%_ MZend_Gdata_App_Extension_Summary1&^ OZend_Gdata_App_Extension_Subtitle1   b  fC"vEoG~_5dF#



t
N
5
				}	f	>	|b5vFV%f4nI% T'jC\%  ) UZend_Gdata_Photos_Extension_Position1( SZend_Gdata_Photos_Extension_PhotoId13 iZend_Gdata_Photos_Extension_NumPhotosRemaining1* WZend_Gdata_Photos_Extension_NumPhotos1) UZend_Gdata_Photos_Extension_Nickname1% MZend_Gdata_Photos_Extension_Name12 gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum1) UZend_Gdata_Photos_Extension_Location1# IZend_Gdata_Photos_Extension_Id1' QZend_Gdata_Photos_Extension_Height12 gZend_Gdata_Photos_Extension_CommentingEnabled1- ]Zend_Gdata_Photos_Extension_CommentCount1' QZend_Gdata_Photos_Extension_Client1) UZend_Gdata_Photos_Extension_Checksum1* WZend_Gdata_Photos_Extension_BytesUsed1( SZend_Gdata_Photos_Extension_AlbumId1' QZend_Gdata_Photos_Extension_Access1# IZend_Gdata_Photos_CommentEntry1! EZend_Gdata_Photos_AlbumQuery1  CZend_Gdata_Photos_AlbumFeed1!
 EZend_Gdata_Photos_AlbumEntry1	 3Zend_Gdata_MimeFile1 ?Zend_Gdata_MimeBodyString1 AZend_Gdata_MediaMimeStream1 -Zend_Gdata_Media1 7Zend_Gdata_Media_Feed1* WZend_Gdata_Media_Extension_MediaTitle1. _Zend_Gdata_Media_Extension_MediaThumbnail1) UZend_Gdata_Media_Extension_MediaText10 cZend_Gdata_Media_Extension_MediaRestriction1+  YZend_Gdata_Media_Extension_MediaRating1+ YZend_Gdata_Media_Extension_MediaPlayer1-~ ]Zend_Gdata_Media_Extension_MediaKeywords1)} UZend_Gdata_Media_Extension_MediaHash1*| WZend_Gdata_Media_Extension_MediaGroup10{ cZend_Gdata_Media_Extension_MediaDescription1+z YZend_Gdata_Media_Extension_MediaCredit1.y _Zend_Gdata_Media_Extension_MediaCopyright1,x [Zend_Gdata_Media_Extension_MediaContent1-w ]Zend_Gdata_Media_Extension_MediaCategory1v 9Zend_Gdata_Media_Entry1u AZend_Gdata_Kind_EventEntry1t 7Zend_Gdata_HttpClient1*s WZend_Gdata_HttpAdapterStreamingSocket1)r UZend_Gdata_HttpAdapterStreamingProxy1q /Zend_Gdata_Health1p ;Zend_Gdata_Health_Query1&o OZend_Gdata_Health_ProfileListFeed1'n QZend_Gdata_Health_ProfileListEntry1"m GZend_Gdata_Health_ProfileFeed1#l IZend_Gdata_Health_ProfileEntry1$k KZend_Gdata_Health_Extension_Ccr1j )Zend_Gdata_Geo1i 3Zend_Gdata_Geo_Feed1$h KZend_Gdata_Geo_Extension_GmlPos1&g OZend_Gdata_Geo_Extension_GmlPoint1)f UZend_Gdata_Geo_Extension_GeoRssWhere1e 5Zend_Gdata_Geo_Entry1d -Zend_Gdata_Gbase1"c GZend_Gdata_Gbase_SnippetQuery1!b EZend_Gdata_Gbase_SnippetFeed1"a GZend_Gdata_Gbase_SnippetEntry1` 9Zend_Gdata_Gbase_Query1_ AZend_Gdata_Gbase_ItemQuery1^ ?Zend_Gdata_Gbase_ItemFeed1] AZend_Gdata_Gbase_ItemEntry1\ 7Zend_Gdata_Gbase_Feed1-[ ]Zend_Gdata_Gbase_Extension_BaseAttribute1Z 9Zend_Gdata_Gbase_Entry1Y -Zend_Gdata_Gapps1X AZend_Gdata_Gapps_UserQuery1W ?Zend_Gdata_Gapps_UserFeed1V AZend_Gdata_Gapps_UserEntry1&U OZend_Gdata_Gapps_ServiceException1T 9Zend_Gdata_Gapps_Query1#S IZend_Gdata_Gapps_NicknameQuery1"R GZend_Gdata_Gapps_NicknameFeed1#Q IZend_Gdata_Gapps_NicknameEntry1%P MZend_Gdata_Gapps_Extension_Quota1(O SZend_Gdata_Gapps_Extension_Nickname1$N KZend_Gdata_Gapps_Extension_Name1%M MZend_Gdata_Gapps_Extension_Login1)L UZend_Gdata_Gapps_Extension_EmailList1K 9Zend_Gdata_Gapps_Error1-J ]Zend_Gdata_Gapps_EmailListRecipientQuery1,I [Zend_Gdata_Gapps_EmailListRecipientFeed1-H ]Zend_Gdata_Gapps_EmailListRecipientEntry1$G KZend_Gdata_Gapps_EmailListQuery1#F IZend_Gdata_Gapps_EmailListFeed1$E KZend_Gdata_Gapps_EmailListEntry1D +Zend_Gdata_Feed1C 5Zend_Gdata_Extension1B =Zend_Gdata_Extension_Who1A AZend_Gdata_Extension_Where1@ ?Zend_Gdata_Extension_When1$? KZend_Gdata_Extension_Visibility1&> OZend_Gdata_Extension_Transparency1"= GZend_Gdata_Extension_Reminder1   Y  sJnDlH.j;zQ'



i
I
 					Z	-	Pi;R"m=N$g<Y,b4                                 )w UZend_Gdata_YouTube_SubscriptionEntry1)v UZend_Gdata_YouTube_PlaylistVideoFeed1*u WZend_Gdata_YouTube_PlaylistVideoEntry1(t SZend_Gdata_YouTube_PlaylistListFeed1)s UZend_Gdata_YouTube_PlaylistListEntry1"r GZend_Gdata_YouTube_MediaEntry1!q EZend_Gdata_YouTube_InboxFeed1"p GZend_Gdata_YouTube_InboxEntry1)o UZend_Gdata_YouTube_Extension_VideoId1*n WZend_Gdata_YouTube_Extension_Username1*m WZend_Gdata_YouTube_Extension_Uploaded1'l QZend_Gdata_YouTube_Extension_Token1(k SZend_Gdata_YouTube_Extension_Status1,j [Zend_Gdata_YouTube_Extension_Statistics1'i QZend_Gdata_YouTube_Extension_State1(h SZend_Gdata_YouTube_Extension_School1-g ]Zend_Gdata_YouTube_Extension_ReleaseDate1.f _Zend_Gdata_YouTube_Extension_Relationship1*e WZend_Gdata_YouTube_Extension_Recorded1&d OZend_Gdata_YouTube_Extension_Racy1-c ]Zend_Gdata_YouTube_Extension_QueryString1)b UZend_Gdata_YouTube_Extension_Private1*a WZend_Gdata_YouTube_Extension_Position1/` aZend_Gdata_YouTube_Extension_PlaylistTitle1,_ [Zend_Gdata_YouTube_Extension_PlaylistId1,^ [Zend_Gdata_YouTube_Extension_Occupation1)] UZend_Gdata_YouTube_Extension_NoEmbed1'\ QZend_Gdata_YouTube_Extension_Music1([ SZend_Gdata_YouTube_Extension_Movies1-Z ]Zend_Gdata_YouTube_Extension_MediaRating1,Y [Zend_Gdata_YouTube_Extension_MediaGroup1-X ]Zend_Gdata_YouTube_Extension_MediaCredit1.W _Zend_Gdata_YouTube_Extension_MediaContent1*V WZend_Gdata_YouTube_Extension_Location1&U OZend_Gdata_YouTube_Extension_Link1*T WZend_Gdata_YouTube_Extension_LastName1*S WZend_Gdata_YouTube_Extension_Hometown1)R UZend_Gdata_YouTube_Extension_Hobbies1(Q SZend_Gdata_YouTube_Extension_Gender1+P YZend_Gdata_YouTube_Extension_FirstName1*O WZend_Gdata_YouTube_Extension_Duration1-N ]Zend_Gdata_YouTube_Extension_Description1+M YZend_Gdata_YouTube_Extension_CountHint1)L UZend_Gdata_YouTube_Extension_Control1)K UZend_Gdata_YouTube_Extension_Company1'J QZend_Gdata_YouTube_Extension_Books1%I MZend_Gdata_YouTube_Extension_Age1)H UZend_Gdata_YouTube_Extension_AboutMe1#G IZend_Gdata_YouTube_ContactFeed1$F KZend_Gdata_YouTube_ContactEntry1#E IZend_Gdata_YouTube_CommentFeed1$D KZend_Gdata_YouTube_CommentEntry1$C KZend_Gdata_YouTube_ActivityFeed1%B MZend_Gdata_YouTube_ActivityEntry1A ;Zend_Gdata_Spreadsheets1*@ WZend_Gdata_Spreadsheets_WorksheetFeed1+? YZend_Gdata_Spreadsheets_WorksheetEntry1,> [Zend_Gdata_Spreadsheets_SpreadsheetFeed1-= ]Zend_Gdata_Spreadsheets_SpreadsheetEntry1&< OZend_Gdata_Spreadsheets_ListQuery1%; MZend_Gdata_Spreadsheets_ListFeed1&: OZend_Gdata_Spreadsheets_ListEntry1/9 aZend_Gdata_Spreadsheets_Extension_RowCount1-8 ]Zend_Gdata_Spreadsheets_Extension_Custom1/7 aZend_Gdata_Spreadsheets_Extension_ColCount1+6 YZend_Gdata_Spreadsheets_Extension_Cell1*5 WZend_Gdata_Spreadsheets_DocumentQuery1&4 OZend_Gdata_Spreadsheets_CellQuery1%3 MZend_Gdata_Spreadsheets_CellFeed1&2 OZend_Gdata_Spreadsheets_CellEntry11 -Zend_Gdata_Query10 /Zend_Gdata_Photos1 / CZend_Gdata_Photos_UserQuery1. AZend_Gdata_Photos_UserFeed1 - CZend_Gdata_Photos_UserEntry1, AZend_Gdata_Photos_TagEntry1!+ EZend_Gdata_Photos_PhotoQuery1 * CZend_Gdata_Photos_PhotoFeed1!) EZend_Gdata_Photos_PhotoEntry1&( OZend_Gdata_Photos_Extension_Width1'' QZend_Gdata_Photos_Extension_Weight1(& SZend_Gdata_Photos_Extension_Version1%% MZend_Gdata_Photos_Extension_User1*$ WZend_Gdata_Photos_Extension_Timestamp1*# WZend_Gdata_Photos_Extension_Thumbnail1%" MZend_Gdata_Photos_Extension_Size1)! UZend_Gdata_Photos_Extension_Rotation1+  YZend_Gdata_Photos_Extension_QuotaLimit1- ]Zend_Gdata_Photos_Extension_QuotaCurrent1   i  ]7	iC yS+m4xO+	



Z
6
				h	(i8"}Z4o])cG2uX<zK!p;fO=                             ` 9Zend_Loader_Autoloader1$_ KZend_Loader_Autoloader_Resource1^ Zend_Ldap1] )Zend_Ldap_Node1\ 7Zend_Ldap_Node_Schema1#[ IZend_Ldap_Node_Schema_OpenLdap1/Z aZend_Ldap_Node_Schema_ObjectClass_OpenLdap16Y oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectory1X AZend_Ldap_Node_Schema_Item11W eZend_Ldap_Node_Schema_AttributeType_OpenLdap18V sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory1*U WZend_Ldap_Node_Schema_ActiveDirectory1T 9Zend_Ldap_Node_RootDse1$S KZend_Ldap_Node_RootDse_OpenLdap1&R OZend_Ldap_Node_RootDse_eDirectory1+Q YZend_Ldap_Node_RootDse_ActiveDirectory1P ?Zend_Ldap_Node_Collection1$O KZend_Ldap_Node_ChildrenIterator1N ;Zend_Ldap_Node_Abstract1M 9Zend_Ldap_Ldif_Encoder1L -Zend_Ldap_Filter1K ;Zend_Ldap_Filter_String1J 3Zend_Ldap_Filter_Or1I 5Zend_Ldap_Filter_Not1H 7Zend_Ldap_Filter_Mask1G =Zend_Ldap_Filter_Logical1F AZend_Ldap_Filter_Exception1E 5Zend_Ldap_Filter_And1D ?Zend_Ldap_Filter_Abstract1C 3Zend_Ldap_Exception1B %Zend_Ldap_Dn1A 3Zend_Ldap_Converter1@ 5Zend_Ldap_Collection1*? WZend_Ldap_Collection_Iterator_Default1> 3Zend_Ldap_Attribute1= #Zend_Layout1< 7Zend_Layout_Exception1); UZend_Layout_Controller_Plugin_Layout10: cZend_Layout_Controller_Action_Helper_Layout19 Zend_Json18 -Zend_Json_Server17 5Zend_Json_Server_Smd1!6 EZend_Json_Server_Smd_Service15 ?Zend_Json_Server_Response1#4 IZend_Json_Server_Response_Http13 =Zend_Json_Server_Request1"2 GZend_Json_Server_Request_Http11 AZend_Json_Server_Exception10 9Zend_Json_Server_Error1/ 9Zend_Json_Server_Cache1. )Zend_Json_Expr1- 3Zend_Json_Exception1, /Zend_Json_Encoder1+ /Zend_Json_Decoder1* 'Zend_InfoCard1-) ]Zend_InfoCard_Xml_SecurityTokenReference1( AZend_InfoCard_Xml_Security1)' UZend_InfoCard_Xml_Security_Transform14& kZend_InfoCard_Xml_Security_Transform_XmlExcC14N13% iZend_InfoCard_Xml_Security_Transform_Exception1<$ {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignature1)# UZend_InfoCard_Xml_Security_Exception1" ?Zend_InfoCard_Xml_KeyInfo1&! OZend_InfoCard_Xml_KeyInfo_XmlDSig1&  OZend_InfoCard_Xml_KeyInfo_Default1' QZend_InfoCard_Xml_KeyInfo_Abstract1  CZend_InfoCard_Xml_Exception1# IZend_InfoCard_Xml_EncryptedKey1$ KZend_InfoCard_Xml_EncryptedData1+ YZend_InfoCard_Xml_EncryptedData_XmlEnc1- ]Zend_InfoCard_Xml_EncryptedData_Abstract1 ?Zend_InfoCard_Xml_Element1  CZend_InfoCard_Xml_Assertion1% MZend_InfoCard_Xml_Assertion_Saml1 ;Zend_InfoCard_Exception1% MZend_InfoCard_Exception_Abstract1 5Zend_InfoCard_Claims1 5Zend_InfoCard_Cipher15 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc15 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc14 kZend_InfoCard_Cipher_Symmetric_Adapter_Abstract1) UZend_InfoCard_Cipher_Pki_Adapter_Rsa1. _Zend_InfoCard_Cipher_Pki_Adapter_Abstract1# IZend_InfoCard_Cipher_Exception1$ KZend_InfoCard_Adapter_Exception1" GZend_InfoCard_Adapter_Default1
 1Zend_Http_Response1	 ?Zend_Http_Response_Stream1 3Zend_Http_Exception1 3Zend_Http_CookieJar1 -Zend_Http_Cookie1 -Zend_Http_Client1 AZend_Http_Client_Exception1" GZend_Http_Client_Adapter_Test1$ KZend_Http_Client_Adapter_Socket1# IZend_Http_Client_Adapter_Proxy1'  QZend_Http_Client_Adapter_Exception1" GZend_Http_Client_Adapter_Curl1~ !Zend_Gdata1} 1Zend_Gdata_YouTube1"| GZend_Gdata_YouTube_VideoQuery1!{ EZend_Gdata_YouTube_VideoFeed1"z GZend_Gdata_YouTube_VideoEntry1(y SZend_Gdata_YouTube_UserProfileEntry1(x SZend_Gdata_YouTube_SubscriptionFeed1   y ]D&^>w\<rV7a4	



w
N
(
					]	C	`;uN(nL1uX<bF'|`9hJ,|jH&           Y =Zend_Navigation_Page_Mvc1X ?Zend_Navigation_Exception1W ?Zend_Navigation_Container1V Zend_Mime1U )Zend_Mime_Part1T /Zend_Mime_Message1S 3Zend_Mime_Exception1R -Zend_Mime_Decode1Q #Zend_Memory1P /Zend_Memory_Value1O 3Zend_Memory_Manager1N 7Zend_Memory_Exception1M 7Zend_Memory_Container1"L GZend_Memory_Container_Movable1!K EZend_Memory_Container_Locked1!J EZend_Memory_AccessController1I 3Zend_Measure_Weight1H 3Zend_Measure_Volume1%G MZend_Measure_Viscosity_Kinematic1#F IZend_Measure_Viscosity_Dynamic1E 3Zend_Measure_Torque1D /Zend_Measure_Time1C =Zend_Measure_Temperature1B 1Zend_Measure_Speed1A 7Zend_Measure_Pressure1@ 1Zend_Measure_Power1? 3Zend_Measure_Number1> 9Zend_Measure_Lightness1= 3Zend_Measure_Length1< ?Zend_Measure_Illumination1; 9Zend_Measure_Frequency1: 1Zend_Measure_Force19 =Zend_Measure_Flow_Volume18 9Zend_Measure_Flow_Mole17 9Zend_Measure_Flow_Mass16 9Zend_Measure_Exception15 3Zend_Measure_Energy14 5Zend_Measure_Density13 5Zend_Measure_Current1 2 CZend_Measure_Cooking_Weight1 1 CZend_Measure_Cooking_Volume10 =Zend_Measure_Capacitance1/ 3Zend_Measure_Binary1. /Zend_Measure_Area1- 1Zend_Measure_Angle1, ?Zend_Measure_Acceleration1+ 7Zend_Measure_Abstract1* #Zend_Markup1) 7Zend_Markup_TokenList1( /Zend_Markup_Token1*' WZend_Markup_Renderer_RendererAbstract1& ?Zend_Markup_Renderer_Html1"% GZend_Markup_Renderer_Html_Url1#$ IZend_Markup_Renderer_Html_List1"# GZend_Markup_Renderer_Html_Img1+" YZend_Markup_Renderer_Html_HtmlAbstract1#! IZend_Markup_Renderer_Html_Code1#  IZend_Markup_Renderer_Exception1 AZend_Markup_Parser_Textile1! EZend_Markup_Parser_Exception1 ?Zend_Markup_Parser_Bbcode1 7Zend_Markup_Exception1 Zend_Mail1 =Zend_Mail_Transport_Smtp1! EZend_Mail_Transport_Sendmail1" GZend_Mail_Transport_Exception1! EZend_Mail_Transport_Abstract1 /Zend_Mail_Storage1' QZend_Mail_Storage_Writable_Maildir1 9Zend_Mail_Storage_Pop31 9Zend_Mail_Storage_Mbox1 ?Zend_Mail_Storage_Maildir1 9Zend_Mail_Storage_Imap1 =Zend_Mail_Storage_Folder1" GZend_Mail_Storage_Folder_Mbox1% MZend_Mail_Storage_Folder_Maildir1  CZend_Mail_Storage_Exception1 AZend_Mail_Storage_Abstract1 ;Zend_Mail_Protocol_Smtp1'
 QZend_Mail_Protocol_Smtp_Auth_Plain1'	 QZend_Mail_Protocol_Smtp_Auth_Login1) UZend_Mail_Protocol_Smtp_Auth_Crammd51 ;Zend_Mail_Protocol_Pop31 ;Zend_Mail_Protocol_Imap1! EZend_Mail_Protocol_Exception1  CZend_Mail_Protocol_Abstract1 )Zend_Mail_Part1 3Zend_Mail_Part_File1 /Zend_Mail_Message1  9Zend_Mail_Message_File1 3Zend_Mail_Exception1~ Zend_Log1 } CZend_Log_Writer_ZendMonitor1| 9Zend_Log_Writer_Syslog1{ 9Zend_Log_Writer_Stream1z 5Zend_Log_Writer_Null1y 5Zend_Log_Writer_Mock1x 5Zend_Log_Writer_Mail1w ;Zend_Log_Writer_Firebug1v 1Zend_Log_Writer_Db1u =Zend_Log_Writer_Abstract1t 9Zend_Log_Formatter_Xml1s ?Zend_Log_Formatter_Simple1r AZend_Log_Formatter_Firebug1q =Zend_Log_Filter_Suppress1p =Zend_Log_Filter_Priority1o ;Zend_Log_Filter_Message1n =Zend_Log_Filter_Abstract1m 1Zend_Log_Exception1l #Zend_Locale1k -Zend_Locale_Math1j =Zend_Locale_Math_PhpMath1i AZend_Locale_Math_Exception1h 1Zend_Locale_Format1g 7Zend_Locale_Exception1f -Zend_Locale_Data1!e EZend_Locale_Data_Translation1d #Zend_Loader1c =Zend_Loader_PluginLoader1'b QZend_Loader_PluginLoader_Exception1a 7Zend_Loader_Exception1   p  vZ=pI(ta7lG}P(



]
/						k	N	+	iE'sH'zU2 kJY.gC%tK(bG   &I OZend_Pdf_FileParser_Font_OpenType1/H aZend_Pdf_FileParser_Font_OpenType_TrueType1G 1Zend_Pdf_Exception1F ;Zend_Pdf_ElementFactory1"E GZend_Pdf_ElementFactory_Proxy1D -Zend_Pdf_Element1C ;Zend_Pdf_Element_String1#B IZend_Pdf_Element_String_Binary1A ;Zend_Pdf_Element_Stream1@ AZend_Pdf_Element_Reference1%? MZend_Pdf_Element_Reference_Table1'> QZend_Pdf_Element_Reference_Context1= ;Zend_Pdf_Element_Object1#< IZend_Pdf_Element_Object_Stream1; =Zend_Pdf_Element_Numeric1: 7Zend_Pdf_Element_Null19 7Zend_Pdf_Element_Name1 8 CZend_Pdf_Element_Dictionary17 =Zend_Pdf_Element_Boolean16 9Zend_Pdf_Element_Array15 5Zend_Pdf_Destination14 ?Zend_Pdf_Destination_Zoom1!3 EZend_Pdf_Destination_Unknown12 AZend_Pdf_Destination_Named1'1 QZend_Pdf_Destination_FitVertically1&0 OZend_Pdf_Destination_FitRectangle1)/ UZend_Pdf_Destination_FitHorizontally12. gZend_Pdf_Destination_FitBoundingBoxVertically14- kZend_Pdf_Destination_FitBoundingBoxHorizontally1(, SZend_Pdf_Destination_FitBoundingBox1+ =Zend_Pdf_Destination_Fit1"* GZend_Pdf_Destination_Explicit1) )Zend_Pdf_Color1( 1Zend_Pdf_Color_Rgb1' 3Zend_Pdf_Color_Html1& =Zend_Pdf_Color_GrayScale1% 3Zend_Pdf_Color_Cmyk1$ 'Zend_Pdf_Cmap1# AZend_Pdf_Cmap_TrimmedTable1!" EZend_Pdf_Cmap_SegmentToDelta1! AZend_Pdf_Cmap_ByteEncoding1&  OZend_Pdf_Cmap_ByteEncoding_Static1 3Zend_Pdf_Annotation1 =Zend_Pdf_Annotation_Text1 AZend_Pdf_Annotation_Markup1 =Zend_Pdf_Annotation_Link1' QZend_Pdf_Annotation_FileAttachment1 +Zend_Pdf_Action1 3Zend_Pdf_Action_URI1 ;Zend_Pdf_Action_Unknown1 7Zend_Pdf_Action_Trans1 9Zend_Pdf_Action_Thread1 AZend_Pdf_Action_SubmitForm1 7Zend_Pdf_Action_Sound1  CZend_Pdf_Action_SetOCGState1 ?Zend_Pdf_Action_ResetForm1 ?Zend_Pdf_Action_Rendition1 7Zend_Pdf_Action_Named1 7Zend_Pdf_Action_Movie1 9Zend_Pdf_Action_Launch1 AZend_Pdf_Action_JavaScript1 AZend_Pdf_Action_ImportData1 5Zend_Pdf_Action_Hide1
 7Zend_Pdf_Action_GoToR1	 7Zend_Pdf_Action_GoToE1 AZend_Pdf_Action_GoTo3DView1 5Zend_Pdf_Action_GoTo1 )Zend_Paginator1- ]Zend_Paginator_SerializableLimitIterator1* WZend_Paginator_ScrollingStyle_Sliding1* WZend_Paginator_ScrollingStyle_Jumping1* WZend_Paginator_ScrollingStyle_Elastic1& OZend_Paginator_ScrollingStyle_All1  =Zend_Paginator_Exception1  CZend_Paginator_Adapter_Null1$~ KZend_Paginator_Adapter_Iterator1)} UZend_Paginator_Adapter_DbTableSelect1$| KZend_Paginator_Adapter_DbSelect1!{ EZend_Paginator_Adapter_Array1z #Zend_OpenId1y 5Zend_OpenId_Provider1x ?Zend_OpenId_Provider_User1&w OZend_OpenId_Provider_User_Session1!v EZend_OpenId_Provider_Storage1&u OZend_OpenId_Provider_Storage_File1t 7Zend_OpenId_Extension1s AZend_OpenId_Extension_Sreg1r 7Zend_OpenId_Exception1q 5Zend_OpenId_Consumer1!p EZend_OpenId_Consumer_Storage1&o OZend_OpenId_Consumer_Storage_File1n !Zend_Oauth1m -Zend_Oauth_Token1l =Zend_Oauth_Token_Request1'k QZend_Oauth_Token_AuthorizedRequest1j ;Zend_Oauth_Token_Access1+i YZend_Oauth_Signature_SignatureAbstract1h =Zend_Oauth_Signature_Rsa1#g IZend_Oauth_Signature_Plaintext1f ?Zend_Oauth_Signature_Hmac1e +Zend_Oauth_Http1d ;Zend_Oauth_Http_Utility1&c OZend_Oauth_Http_UserAuthorization1!b EZend_Oauth_Http_RequestToken1 a CZend_Oauth_Http_AccessToken1` 5Zend_Oauth_Exception1_ 3Zend_Oauth_Consumer1^ /Zend_Oauth_Config1] /Zend_Oauth_Client1\ +Zend_Navigation1[ 5Zend_Navigation_Page1Z =Zend_Navigation_Page_Uri1   f  {P#jF$mUp:Y


`
 			r	7lG(sY;$zQ&yU*	|\0bC0uS1{X.      / 5Zend_Rest_Controller1. -Zend_Rest_Client1- ;Zend_Rest_Client_Result1&, OZend_Rest_Client_Result_Exception1+ AZend_Rest_Client_Exception1* 'Zend_Registry1) =Zend_Reflection_Property1( ?Zend_Reflection_Parameter1' 9Zend_Reflection_Method1& =Zend_Reflection_Function1% 5Zend_Reflection_File1$ ?Zend_Reflection_Extension1# ?Zend_Reflection_Exception1" =Zend_Reflection_Docblock1!! EZend_Reflection_Docblock_Tag1(  SZend_Reflection_Docblock_Tag_Return1' QZend_Reflection_Docblock_Tag_Param1 7Zend_Reflection_Class1 !Zend_Queue1 9Zend_Queue_Stomp_Frame1 ;Zend_Queue_Stomp_Client1' QZend_Queue_Stomp_Client_Connection1 1Zend_Queue_Message1# IZend_Queue_Message_PlatformJob1  CZend_Queue_Message_Iterator1 5Zend_Queue_Exception1( SZend_Queue_Adapter_PlatformJobQueue1 ;Zend_Queue_Adapter_Null1! EZend_Queue_Adapter_Memcacheq1 7Zend_Queue_Adapter_Db1  CZend_Queue_Adapter_Db_Queue1" GZend_Queue_Adapter_Db_Message1 =Zend_Queue_Adapter_Array1' QZend_Queue_Adapter_AdapterAbstract1  CZend_Queue_Adapter_Activemq1 -Zend_ProgressBar1 AZend_ProgressBar_Exception1
 =Zend_ProgressBar_Adapter1$	 KZend_ProgressBar_Adapter_JsPush1$ KZend_ProgressBar_Adapter_JsPull1' QZend_ProgressBar_Adapter_Exception1% MZend_ProgressBar_Adapter_Console1 Zend_Pdf1! EZend_Pdf_UpdateInfoContainer1 -Zend_Pdf_Trailer1 ;Zend_Pdf_Trailer_Keeper1 AZend_Pdf_Trailer_Generator1  +Zend_Pdf_Target1 )Zend_Pdf_Style1~ 7Zend_Pdf_StringParser1} /Zend_Pdf_Resource1#| IZend_Pdf_Resource_ImageFactory1{ ;Zend_Pdf_Resource_Image1!z EZend_Pdf_Resource_Image_Tiff1 y CZend_Pdf_Resource_Image_Png1!x EZend_Pdf_Resource_Image_Jpeg1w 9Zend_Pdf_Resource_Font1!v EZend_Pdf_Resource_Font_Type01"u GZend_Pdf_Resource_Font_Simple1+t YZend_Pdf_Resource_Font_Simple_Standard18s sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats16r oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman17q qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic1;p yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic15o mZend_Pdf_Resource_Font_Simple_Standard_TimesBold12n gZend_Pdf_Resource_Font_Simple_Standard_Symbol1<m {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaOblique1Al Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique19k uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold15j mZend_Pdf_Resource_Font_Simple_Standard_Helvetica1:i wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique1>h Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique17g qZend_Pdf_Resource_Font_Simple_Standard_CourierBold13f iZend_Pdf_Resource_Font_Simple_Standard_Courier1)e UZend_Pdf_Resource_Font_Simple_Parsed12d gZend_Pdf_Resource_Font_Simple_Parsed_TrueType1*c WZend_Pdf_Resource_Font_FontDescriptor1%b MZend_Pdf_Resource_Font_Extracted1#a IZend_Pdf_Resource_Font_CidFont1,` [Zend_Pdf_Resource_Font_CidFont_TrueType13_ iZend_Pdf_RecursivelyIteratableObjectsContainer1^ +Zend_Pdf_Parser1] 'Zend_Pdf_Page1\ -Zend_Pdf_Outline1[ ;Zend_Pdf_Outline_Loaded1Z =Zend_Pdf_Outline_Created1Y /Zend_Pdf_NameTree1X )Zend_Pdf_Image1W 'Zend_Pdf_Font1V ?Zend_Pdf_Filter_RunLength1 U CZend_Pdf_Filter_Compression1$T KZend_Pdf_Filter_Compression_Lzw1&S OZend_Pdf_Filter_Compression_Flate1R =Zend_Pdf_Filter_AsciiHex1Q ;Zend_Pdf_Filter_Ascii851"P GZend_Pdf_FileParserDataSource1)O UZend_Pdf_FileParserDataSource_String1'N QZend_Pdf_FileParserDataSource_File1M 3Zend_Pdf_FileParser1L ?Zend_Pdf_FileParser_Image1"K GZend_Pdf_FileParser_Image_Png1J =Zend_Pdf_FileParser_Font1   Q  r(fZ&W[2



k
J
+
			}	P	!xR(rI(V(UyLW*o8xI                *  WZend_Search_Lucene_Search_Weight_Term1, [Zend_Search_Lucene_Search_Weight_Phrase1/~ aZend_Search_Lucene_Search_Weight_MultiTerm1+} YZend_Search_Lucene_Search_Weight_Empty1-| ]Zend_Search_Lucene_Search_Weight_Boolean1){ UZend_Search_Lucene_Search_Similarity11z eZend_Search_Lucene_Search_Similarity_Default1)y UZend_Search_Lucene_Search_QueryToken13x iZend_Search_Lucene_Search_QueryParserException11w eZend_Search_Lucene_Search_QueryParserContext1*v WZend_Search_Lucene_Search_QueryParser1)u UZend_Search_Lucene_Search_QueryLexer1't QZend_Search_Lucene_Search_QueryHit1)s UZend_Search_Lucene_Search_QueryEntry1.r _Zend_Search_Lucene_Search_QueryEntry_Term12q gZend_Search_Lucene_Search_QueryEntry_Subquery10p cZend_Search_Lucene_Search_QueryEntry_Phrase1$o KZend_Search_Lucene_Search_Query1-n ]Zend_Search_Lucene_Search_Query_Wildcard1)m UZend_Search_Lucene_Search_Query_Term1*l WZend_Search_Lucene_Search_Query_Range12k gZend_Search_Lucene_Search_Query_Preprocessing17j qZend_Search_Lucene_Search_Query_Preprocessing_Term19i uZend_Search_Lucene_Search_Query_Preprocessing_Phrase18h sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy1+g YZend_Search_Lucene_Search_Query_Phrase1.f _Zend_Search_Lucene_Search_Query_MultiTerm12e gZend_Search_Lucene_Search_Query_Insignificant1*d WZend_Search_Lucene_Search_Query_Fuzzy1*c WZend_Search_Lucene_Search_Query_Empty1,b [Zend_Search_Lucene_Search_Query_Boolean12a gZend_Search_Lucene_Search_Highlighter_Default1:` wZend_Search_Lucene_Search_BooleanExpressionRecognizer1_ =Zend_Search_Lucene_Proxy1%^ MZend_Search_Lucene_PriorityQueue1/] aZend_Search_Lucene_Interface_MultiSearcher1#\ IZend_Search_Lucene_LockManager1$[ KZend_Search_Lucene_Index_Writer10Z cZend_Search_Lucene_Index_TermsPriorityQueue1&Y OZend_Search_Lucene_Index_TermInfo1"X GZend_Search_Lucene_Index_Term1+W YZend_Search_Lucene_Index_SegmentWriter18V sZend_Search_Lucene_Index_SegmentWriter_StreamWriter1:U wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter1+T YZend_Search_Lucene_Index_SegmentMerger1)S UZend_Search_Lucene_Index_SegmentInfo1'R QZend_Search_Lucene_Index_FieldInfo1(Q SZend_Search_Lucene_Index_DocsFilter1.P _Zend_Search_Lucene_Index_DictionaryLoader1!O EZend_Search_Lucene_FSMAction1N 9Zend_Search_Lucene_FSM1M =Zend_Search_Lucene_Field1!L EZend_Search_Lucene_Exception1 K CZend_Search_Lucene_Document1%J MZend_Search_Lucene_Document_Xlsx1%I MZend_Search_Lucene_Document_Pptx1(H SZend_Search_Lucene_Document_OpenXml1%G MZend_Search_Lucene_Document_Html1*F WZend_Search_Lucene_Document_Exception1%E MZend_Search_Lucene_Document_Docx1,D [Zend_Search_Lucene_Analysis_TokenFilter16C oZend_Search_Lucene_Analysis_TokenFilter_StopWords17B qZend_Search_Lucene_Analysis_TokenFilter_ShortWords1:A wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf816@ oZend_Search_Lucene_Analysis_TokenFilter_LowerCase1&? OZend_Search_Lucene_Analysis_Token1)> UZend_Search_Lucene_Analysis_Analyzer10= cZend_Search_Lucene_Analysis_Analyzer_Common18< sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num1I; Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive15: mZend_Search_Lucene_Analysis_Analyzer_Common_Utf81F9 Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive188 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum1I7 Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive156 mZend_Search_Lucene_Analysis_Analyzer_Common_Text1F5 Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive14 7Zend_Search_Exception13 -Zend_Rest_Server12 AZend_Rest_Server_Exception11 +Zend_Rest_Route10 3Zend_Rest_Exception1   \  r?iD|O*|X2iA



z
[
=
 					M	"R!Q1rP+	uJ  sK!MYL                  0\ cZend_Service_DeveloperGarden_ConferenceCall1C[ Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatus1CZ Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail1<Y {Zend_Service_DeveloperGarden_ConferenceCall_Participant1:X wZend_Service_DeveloperGarden_ConferenceCall_Exception1DW 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceSchedule1BV Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail1CU Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount1-T ]Zend_Service_DeveloperGarden_Client_Soap12S gZend_Service_DeveloperGarden_Client_Exception17R qZend_Service_DeveloperGarden_Client_ClientAbstract11Q eZend_Service_DeveloperGarden_BaseUserService1AP Zend_Service_DeveloperGarden_BaseUserService_AccountBalance1O 9Zend_Service_Delicious1&N OZend_Service_Delicious_SimplePost1$M KZend_Service_Delicious_PostList1 L CZend_Service_Delicious_Post1%K MZend_Service_Delicious_Exception1 J CZend_Service_Audioscrobbler1I 3Zend_Service_Amazon1H ;Zend_Service_Amazon_Sqs1&G OZend_Service_Amazon_Sqs_Exception1'F QZend_Service_Amazon_SimilarProduct1E 9Zend_Service_Amazon_S31"D GZend_Service_Amazon_S3_Stream1%C MZend_Service_Amazon_S3_Exception1"B GZend_Service_Amazon_ResultSet1A ?Zend_Service_Amazon_Query1!@ EZend_Service_Amazon_OfferSet1? ?Zend_Service_Amazon_Offer1&> OZend_Service_Amazon_ListmaniaList1= =Zend_Service_Amazon_Item1< ?Zend_Service_Amazon_Image1"; GZend_Service_Amazon_Exception1(: SZend_Service_Amazon_EditorialReview19 ;Zend_Service_Amazon_Ec21+8 YZend_Service_Amazon_Ec2_Securitygroups1%7 MZend_Service_Amazon_Ec2_Response1#6 IZend_Service_Amazon_Ec2_Region1$5 KZend_Service_Amazon_Ec2_Keypair1%4 MZend_Service_Amazon_Ec2_Instance1-3 ]Zend_Service_Amazon_Ec2_Instance_Windows1.2 _Zend_Service_Amazon_Ec2_Instance_Reserved1"1 GZend_Service_Amazon_Ec2_Image1&0 OZend_Service_Amazon_Ec2_Exception1&/ OZend_Service_Amazon_Ec2_Elasticip1 . CZend_Service_Amazon_Ec2_Ebs1'- QZend_Service_Amazon_Ec2_CloudWatch1., _Zend_Service_Amazon_Ec2_Availabilityzones1%+ MZend_Service_Amazon_Ec2_Abstract1'* QZend_Service_Amazon_CustomerReview1$) KZend_Service_Amazon_Accessories1!( EZend_Service_Amazon_Abstract1' 5Zend_Service_Akismet1& 7Zend_Service_Abstract1% 9Zend_Server_Reflection1'$ QZend_Server_Reflection_ReturnValue1%# MZend_Server_Reflection_Prototype1%" MZend_Server_Reflection_Parameter1 ! CZend_Server_Reflection_Node1"  GZend_Server_Reflection_Method1$ KZend_Server_Reflection_Function1- ]Zend_Server_Reflection_Function_Abstract1% MZend_Server_Reflection_Exception1! EZend_Server_Reflection_Class1! EZend_Server_Method_Prototype1! EZend_Server_Method_Parameter1" GZend_Server_Method_Definition1  CZend_Server_Method_Callback1 7Zend_Server_Exception1 9Zend_Server_Definition1 /Zend_Server_Cache1 5Zend_Server_Abstract1 +Zend_Serializer1 ?Zend_Serializer_Exception1! EZend_Serializer_Adapter_Wddx1) UZend_Serializer_Adapter_PythonPickle1) UZend_Serializer_Adapter_PhpSerialize1$ KZend_Serializer_Adapter_PhpCode1! EZend_Serializer_Adapter_Json1% MZend_Serializer_Adapter_Igbinary1! EZend_Serializer_Adapter_Amf31!
 EZend_Serializer_Adapter_Amf01,	 [Zend_Serializer_Adapter_AdapterAbstract1 1Zend_Search_Lucene10 cZend_Search_Lucene_TermStreamsPriorityQueue1$ KZend_Search_Lucene_Storage_File1+ YZend_Search_Lucene_Storage_File_Memory1/ aZend_Search_Lucene_Storage_File_Filesystem1) UZend_Search_Lucene_Storage_Directory14 kZend_Search_Lucene_Storage_Directory_Filesystem1% MZend_Search_Lucene_Search_Weight1   3 q g7;4-!

b
			]	C0}Fs1^;h3  q   c GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponse1W /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse1U +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponse1S 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse13 iZend_Service_DeveloperGarden_Response_BaseType1J
 Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstract1C	 Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCall1G Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced1= }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCall1A Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatus1A Zend_Service_DeveloperGarden_Request_SmsValidation_Validate1N Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeyword1C Zend_Service_DeveloperGarden_Request_SmsValidation_Invalidate1L Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbers1B Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract19  uZend_Service_DeveloperGarden_Request_SendSms_SendSMS1> Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS19~ uZend_Service_DeveloperGarden_Request_RequestAbstract1I} Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequest1E| Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest13{ iZend_Service_DeveloperGarden_Request_Exception1Rz %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequest1Yy 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequest1dx IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequest1Qw #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequest1Rv %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequest1Yu 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequest1dt IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequest1Qs #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequest1Or Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequest1Uq +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequest1Up +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequest1Vo -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequest1an CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequest1Zm 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequest1Tl )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequest1Rk %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequest1Yj 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequest1Qi #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequest1Qh #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequest1ag CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequest1Nf Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformation1Le Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalance1Jd Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool1-c ]Zend_Service_DeveloperGarden_LocalSearch1>b Zend_Service_DeveloperGarden_LocalSearch_SearchParameters17a qZend_Service_DeveloperGarden_LocalSearch_Exception1,` [Zend_Service_DeveloperGarden_IpLocation16_ oZend_Service_DeveloperGarden_IpLocation_IpAddress1+^ YZend_Service_DeveloperGarden_Exception1,] [Zend_Service_DeveloperGarden_Credential1   -  GD's[


%		i	TG'xW@a3                                     U< +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponse1Q; #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponse1I: Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception1;9 yZend_Service_DeveloperGarden_Response_ResponseAbstract1O8 Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseType1K7 Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponse1A6 Zend_Service_DeveloperGarden_Response_IpLocation_RegionType1K5 Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseType1G4 Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponse1L3 Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationType1I2 Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType1>1 Zend_Service_DeveloperGarden_Response_IpLocation_CityType140 kZend_Service_DeveloperGarden_Response_Exception1T/ )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse1[. 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponse1f- MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponse1S, 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponse1T+ )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse1[* 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponse1f) MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponse1S( 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponse1U' +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType1Q& #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse1[% 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseType1W$ /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse1[# 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseType1W" /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse1\! 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseType1X  1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponse1g OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseType1c GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse1` AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType1\ 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponse1Z 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseType1V -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponse1X 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseType1T )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse1_ ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType1[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponse1W /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType1S 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponse1Q #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstract1S 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponse1J Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType1g OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseType1   R  m&$8Km4



d
A
					i	<	oG xU6nS)f5]0 oAe;hH!                                                       5Zend_Service_Twitter1  CZend_Service_Twitter_Search1# IZend_Service_Twitter_Exception1 ;Zend_Service_Technorati1#
 IZend_Service_Technorati_Weblog1"	 GZend_Service_Technorati_Utils1* WZend_Service_Technorati_TagsResultSet1' QZend_Service_Technorati_TagsResult1) UZend_Service_Technorati_TagResultSet1& OZend_Service_Technorati_TagResult1, [Zend_Service_Technorati_SearchResultSet1) UZend_Service_Technorati_SearchResult1& OZend_Service_Technorati_ResultSet1# IZend_Service_Technorati_Result1*  WZend_Service_Technorati_KeyInfoResult1* WZend_Service_Technorati_GetInfoResult1&~ OZend_Service_Technorati_Exception11} eZend_Service_Technorati_DailyCountsResultSet1.| _Zend_Service_Technorati_DailyCountsResult1,{ [Zend_Service_Technorati_CosmosResultSet1)z UZend_Service_Technorati_CosmosResult1+y YZend_Service_Technorati_BlogInfoResult1#x IZend_Service_Technorati_Author1w ;Zend_Service_StrikeIron1(v SZend_Service_StrikeIron_ZipCodeInfo12u gZend_Service_StrikeIron_USAddressVerification1-t ]Zend_Service_StrikeIron_SalesUseTaxBasic1&s OZend_Service_StrikeIron_Exception1&r OZend_Service_StrikeIron_Decorator1!q EZend_Service_StrikeIron_Base1p ;Zend_Service_SlideShare1&o OZend_Service_SlideShare_SlideShow1&n OZend_Service_SlideShare_Exception1m 1Zend_Service_Simpy1$l KZend_Service_Simpy_WatchlistSet1*k WZend_Service_Simpy_WatchlistFilterSet1'j QZend_Service_Simpy_WatchlistFilter1!i EZend_Service_Simpy_Watchlist1h ?Zend_Service_Simpy_TagSet1g 9Zend_Service_Simpy_Tag1f AZend_Service_Simpy_NoteSet1e ;Zend_Service_Simpy_Note1d AZend_Service_Simpy_LinkSet1!c EZend_Service_Simpy_LinkQuery1b ;Zend_Service_Simpy_Link1a 9Zend_Service_ReCaptcha1$` KZend_Service_ReCaptcha_Response1$_ KZend_Service_ReCaptcha_MailHide1.^ _Zend_Service_ReCaptcha_MailHide_Exception1%] MZend_Service_ReCaptcha_Exception1\ 7Zend_Service_Nirvanix1#[ IZend_Service_Nirvanix_Response1)Z UZend_Service_Nirvanix_Namespace_Imfs1)Y UZend_Service_Nirvanix_Namespace_Base1$X KZend_Service_Nirvanix_Exception1W 7Zend_Service_LiveDocx1$V KZend_Service_LiveDocx_MailMerge1$U KZend_Service_LiveDocx_Exception1T 3Zend_Service_Flickr1"S GZend_Service_Flickr_ResultSet1R AZend_Service_Flickr_Result1Q ?Zend_Service_Flickr_Image1P 9Zend_Service_Exception1+O YZend_Service_DeveloperGarden_VoiceCall1/N aZend_Service_DeveloperGarden_SmsValidation1)M UZend_Service_DeveloperGarden_SendSms15L mZend_Service_DeveloperGarden_SecurityTokenServer1;K yZend_Service_DeveloperGarden_SecurityTokenServer_Cache1KJ Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstract1LI Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponse1PH !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponse1GG Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponse1JF Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponse1KE Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2Response1LD Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponse1IC Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumber1WB /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponse1JA Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponse1U@ +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponse1C? Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponse1C> Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstract1H= Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponse1   [  yAk6TCi9


f
E
				r	H	"[4
eF_@  iHf3vQ0f7	}U'          0i cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet1)h UZend_Test_PHPUnit_Db_DataSet_DbTable1*g WZend_Test_PHPUnit_Db_DataSet_DbRowset1$f KZend_Test_PHPUnit_Db_Connection1'e QZend_Test_PHPUnit_DatabaseTestCase1)d UZend_Test_PHPUnit_ControllerTestCase10c cZend_Test_PHPUnit_Constraint_ResponseHeader1*b WZend_Test_PHPUnit_Constraint_Redirect1+a YZend_Test_PHPUnit_Constraint_Exception1*` WZend_Test_PHPUnit_Constraint_DomQuery1_ 7Zend_Test_DbStatement1^ 3Zend_Test_DbAdapter1] /Zend_Tag_ItemList1\ 'Zend_Tag_Item1[ 1Zend_Tag_Exception1Z )Zend_Tag_Cloud1Y =Zend_Tag_Cloud_Exception1!X EZend_Tag_Cloud_Decorator_Tag1%W MZend_Tag_Cloud_Decorator_HtmlTag1'V QZend_Tag_Cloud_Decorator_HtmlCloud1'U QZend_Tag_Cloud_Decorator_Exception1#T IZend_Tag_Cloud_Decorator_Cloud1S )Zend_Soap_Wsdl1/R aZend_Soap_Wsdl_Strategy_DefaultComplexType1&Q OZend_Soap_Wsdl_Strategy_Composite10P cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence1/O aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex1$N KZend_Soap_Wsdl_Strategy_AnyType1%M MZend_Soap_Wsdl_Strategy_Abstract1L =Zend_Soap_Wsdl_Exception1K -Zend_Soap_Server1J AZend_Soap_Server_Exception1I -Zend_Soap_Client1H 9Zend_Soap_Client_Local1G AZend_Soap_Client_Exception1F ;Zend_Soap_Client_DotNet1E ;Zend_Soap_Client_Common1D 9Zend_Soap_AutoDiscover1%C MZend_Soap_AutoDiscover_Exception1B %Zend_Session1)A UZend_Session_Validator_HttpUserAgent1$@ KZend_Session_Validator_Abstract1'? QZend_Session_SaveHandler_Exception1%> MZend_Session_SaveHandler_DbTable1= 9Zend_Session_Namespace1< 9Zend_Session_Exception1; 7Zend_Session_Abstract1: 1Zend_Service_Yahoo1$9 KZend_Service_Yahoo_WebResultSet1!8 EZend_Service_Yahoo_WebResult1&7 OZend_Service_Yahoo_VideoResultSet1#6 IZend_Service_Yahoo_VideoResult1!5 EZend_Service_Yahoo_ResultSet14 ?Zend_Service_Yahoo_Result1)3 UZend_Service_Yahoo_PageDataResultSet1&2 OZend_Service_Yahoo_PageDataResult1%1 MZend_Service_Yahoo_NewsResultSet1"0 GZend_Service_Yahoo_NewsResult1&/ OZend_Service_Yahoo_LocalResultSet1#. IZend_Service_Yahoo_LocalResult1+- YZend_Service_Yahoo_InlinkDataResultSet1(, SZend_Service_Yahoo_InlinkDataResult1&+ OZend_Service_Yahoo_ImageResultSet1#* IZend_Service_Yahoo_ImageResult1) =Zend_Service_Yahoo_Image1&( OZend_Service_WindowsAzure_Storage14' kZend_Service_WindowsAzure_Storage_TableInstance17& qZend_Service_WindowsAzure_Storage_TableEntityQuery12% gZend_Service_WindowsAzure_Storage_TableEntity1,$ [Zend_Service_WindowsAzure_Storage_Table17# qZend_Service_WindowsAzure_Storage_SignedIdentifier13" iZend_Service_WindowsAzure_Storage_QueueMessage14! kZend_Service_WindowsAzure_Storage_QueueInstance1,  [Zend_Service_WindowsAzure_Storage_Queue19 uZend_Service_WindowsAzure_Storage_DynamicTableEntity13 iZend_Service_WindowsAzure_Storage_BlobInstance14 kZend_Service_WindowsAzure_Storage_BlobContainer1+ YZend_Service_WindowsAzure_Storage_Blob12 gZend_Service_WindowsAzure_Storage_Blob_Stream1; yZend_Service_WindowsAzure_Storage_BatchStorageAbstract1, [Zend_Service_WindowsAzure_Storage_Batch1- ]Zend_Service_WindowsAzure_SessionHandler1> Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract11 eZend_Service_WindowsAzure_RetryPolicy_RetryN12 gZend_Service_WindowsAzure_RetryPolicy_NoRetry14 kZend_Service_WindowsAzure_RetryPolicy_Exception1( SZend_Service_WindowsAzure_Exception18 sZend_Service_WindowsAzure_Credentials_SharedKeyLite14 kZend_Service_WindowsAzure_Credentials_SharedKey1A Zend_Service_WindowsAzure_Credentials_SharedAccessSignature1> Zend_Service_WindowsAzure_Credentials_CredentialsAbstract1   R  wItQ8mU5vHN

u
-
			]	 U t&g:T% r?
c,b0I                                                     .; _Zend_Tool_Project_Context_Zf_ActionMethod13: iZend_Tool_Project_Context_Zf_AbstractClassFile1@9 Zend_Tool_Project_Context_System_ProjectProvidersDirectory188 sZend_Tool_Project_Context_System_ProjectProfileFile167 oZend_Tool_Project_Context_System_ProjectDirectory1)6 UZend_Tool_Project_Context_Repository1.5 _Zend_Tool_Project_Context_Filesystem_File134 iZend_Tool_Project_Context_Filesystem_Directory123 gZend_Tool_Project_Context_Filesystem_Abstract1(2 SZend_Tool_Project_Context_Exception1-1 ]Zend_Tool_Project_Context_Content_Engine130 iZend_Tool_Project_Context_Content_Engine_Phtml1;/ yZend_Tool_Project_Context_Content_Engine_CodeGenerator10. cZend_Tool_Framework_System_Provider_Version10- cZend_Tool_Framework_System_Provider_Phpinfo11, eZend_Tool_Framework_System_Provider_Manifest1/+ aZend_Tool_Framework_System_Provider_Config1(* SZend_Tool_Framework_System_Manifest1-) ]Zend_Tool_Framework_System_Action_Delete1-( ]Zend_Tool_Framework_System_Action_Create1!' EZend_Tool_Framework_Registry1+& YZend_Tool_Framework_Registry_Exception1+% YZend_Tool_Framework_Provider_Signature1,$ [Zend_Tool_Framework_Provider_Repository1+# YZend_Tool_Framework_Provider_Exception1*" WZend_Tool_Framework_Provider_Abstract1&! OZend_Tool_Framework_Metadata_Tool1)  UZend_Tool_Framework_Metadata_Dynamic1' QZend_Tool_Framework_Metadata_Basic1, [Zend_Tool_Framework_Manifest_Repository1+ YZend_Tool_Framework_Manifest_Exception11 eZend_Tool_Framework_Loader_IncludePathLoader1J Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator1+ YZend_Tool_Framework_Loader_BasicLoader1( SZend_Tool_Framework_Loader_Abstract1" GZend_Tool_Framework_Exception1' QZend_Tool_Framework_Client_Storage11 eZend_Tool_Framework_Client_Storage_Directory1( SZend_Tool_Framework_Client_Response1D 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator1' QZend_Tool_Framework_Client_Request1( SZend_Tool_Framework_Client_Manifest19 uZend_Tool_Framework_Client_Interactive_InputResponse18 sZend_Tool_Framework_Client_Interactive_InputRequest18 sZend_Tool_Framework_Client_Interactive_InputHandler1) UZend_Tool_Framework_Client_Exception1' QZend_Tool_Framework_Client_Console1D 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Indention1D 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizer1C
 Zend_Tool_Framework_Client_Console_ResponseDecorator_Blockize1F	 Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter10 cZend_Tool_Framework_Client_Console_Manifest12 gZend_Tool_Framework_Client_Console_HelpSystem16 oZend_Tool_Framework_Client_Console_ArgumentParser1& OZend_Tool_Framework_Client_Config1( SZend_Tool_Framework_Client_Abstract1* WZend_Tool_Framework_Action_Repository1) UZend_Tool_Framework_Action_Exception1$ KZend_Tool_Framework_Action_Base1  'Zend_TimeSync1 1Zend_TimeSync_Sntp1~ 9Zend_TimeSync_Protocol1} /Zend_TimeSync_Ntp1| ;Zend_TimeSync_Exception1{ +Zend_Text_Table1z 3Zend_Text_Table_Row1y ?Zend_Text_Table_Exception1&x OZend_Text_Table_Decorator_Unicode1$w KZend_Text_Table_Decorator_Ascii1v 9Zend_Text_Table_Column1u 3Zend_Text_MultiByte1t -Zend_Text_Figlet1s AZend_Text_Figlet_Exception1r 3Zend_Text_Exception1&q OZend_Test_PHPUnit_Db_SimpleTester1,p [Zend_Test_PHPUnit_Db_Operation_Truncate1*o WZend_Test_PHPUnit_Db_Operation_Insert1-n ]Zend_Test_PHPUnit_Db_Operation_DeleteAll1*m WZend_Test_PHPUnit_Db_Metadata_Generic1#l IZend_Test_PHPUnit_Db_Exception1,k [Zend_Test_PHPUnit_Db_DataSet_QueryTable1.j _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet1   J  X%WP"JuF


m
8				L	_Vh4Ec?h3}S$qI       & OZend_Tool_Project_Provider_Module1% MZend_Tool_Project_Provider_Model1( SZend_Tool_Project_Provider_Manifest1& OZend_Tool_Project_Provider_Layout1$ KZend_Tool_Project_Provider_Form1)  UZend_Tool_Project_Provider_Exception1' QZend_Tool_Project_Provider_DbTable1)~ UZend_Tool_Project_Provider_DbAdapter1*} WZend_Tool_Project_Provider_Controller1+| YZend_Tool_Project_Provider_Application1&{ OZend_Tool_Project_Provider_Action1(z SZend_Tool_Project_Provider_Abstract1y ?Zend_Tool_Project_Profile1'x QZend_Tool_Project_Profile_Resource19w uZend_Tool_Project_Profile_Resource_SearchConstraints11v eZend_Tool_Project_Profile_Resource_Container1=u }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter15t mZend_Tool_Project_Profile_Iterator_ContextFilter1-s ]Zend_Tool_Project_Profile_FileParser_Xml1(r SZend_Tool_Project_Profile_Exception1 q CZend_Tool_Project_Exception1<p {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory10o cZend_Tool_Project_Context_Zf_ViewsDirectory16n oZend_Tool_Project_Context_Zf_ViewScriptsDirectory10m cZend_Tool_Project_Context_Zf_ViewScriptFile16l oZend_Tool_Project_Context_Zf_ViewHelpersDirectory16k oZend_Tool_Project_Context_Zf_ViewFiltersDirectory1Aj Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory12i gZend_Tool_Project_Context_Zf_UploadsDirectory10h cZend_Tool_Project_Context_Zf_TestsDirectory17g qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile1@f Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory11e eZend_Tool_Project_Context_Zf_TestLibraryFile16d oZend_Tool_Project_Context_Zf_TestLibraryDirectory1:c wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFile1:b wZend_Tool_Project_Context_Zf_TestApplicationDirectory1@a Zend_Tool_Project_Context_Zf_TestApplicationControllerFile1E` Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory1>_ Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile14^ kZend_Tool_Project_Context_Zf_TemporaryDirectory13] iZend_Tool_Project_Context_Zf_SessionsDirectory18\ sZend_Tool_Project_Context_Zf_SearchIndexesDirectory1<[ {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory18Z sZend_Tool_Project_Context_Zf_PublicScriptsDirectory11Y eZend_Tool_Project_Context_Zf_PublicIndexFile17X qZend_Tool_Project_Context_Zf_PublicImagesDirectory11W eZend_Tool_Project_Context_Zf_PublicDirectory15V mZend_Tool_Project_Context_Zf_ProjectProviderFile12U gZend_Tool_Project_Context_Zf_ModulesDirectory11T eZend_Tool_Project_Context_Zf_ModuleDirectory11S eZend_Tool_Project_Context_Zf_ModelsDirectory1+R YZend_Tool_Project_Context_Zf_ModelFile1/Q aZend_Tool_Project_Context_Zf_LogsDirectory12P gZend_Tool_Project_Context_Zf_LocalesDirectory12O gZend_Tool_Project_Context_Zf_LibraryDirectory12N gZend_Tool_Project_Context_Zf_LayoutsDirectory18M sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory12L gZend_Tool_Project_Context_Zf_LayoutScriptFile1.K _Zend_Tool_Project_Context_Zf_HtaccessFile10J cZend_Tool_Project_Context_Zf_FormsDirectory1*I WZend_Tool_Project_Context_Zf_FormFile1/H aZend_Tool_Project_Context_Zf_DocsDirectory1-G ]Zend_Tool_Project_Context_Zf_DbTableFile12F gZend_Tool_Project_Context_Zf_DbTableDirectory1/E aZend_Tool_Project_Context_Zf_DataDirectory16D oZend_Tool_Project_Context_Zf_ControllersDirectory10C cZend_Tool_Project_Context_Zf_ControllerFile12B gZend_Tool_Project_Context_Zf_ConfigsDirectory1,A [Zend_Tool_Project_Context_Zf_ConfigFile10@ cZend_Tool_Project_Context_Zf_CacheDirectory1/? aZend_Tool_Project_Context_Zf_BootstrapFile16> oZend_Tool_Project_Context_Zf_ApplicationDirectory17= qZend_Tool_Project_Context_Zf_ApplicationConfigFile1/< aZend_Tool_Project_Context_Zf_ApisDirectory1   p wO'sP-nS=,R-pL(



u
P
(					g	A	tU9pM-rM(yU0kQ2lM.zWA,pQ,                                   u =Zend_View_Helper_Doctype1!t EZend_View_Helper_DeclareVars1s 9Zend_View_Helper_Cycle1r ?Zend_View_Helper_Currency1q =Zend_View_Helper_BaseUrl1p ;Zend_View_Helper_Action1o ?Zend_View_Helper_Abstract1n 3Zend_View_Exception1m 1Zend_View_Abstract1l %Zend_Version1k 'Zend_Validate1j AZend_Validate_StringLength1#i IZend_Validate_Sitemap_Priority1h ?Zend_Validate_Sitemap_Loc1"g GZend_Validate_Sitemap_Lastmod1%f MZend_Validate_Sitemap_Changefreq1e 3Zend_Validate_Regex1d 9Zend_Validate_PostCode1c 9Zend_Validate_NotEmpty1b 9Zend_Validate_LessThan1a 1Zend_Validate_Isbn1` -Zend_Validate_Ip1_ /Zend_Validate_Int1^ 7Zend_Validate_InArray1] ;Zend_Validate_Identical1\ 1Zend_Validate_Iban1[ 9Zend_Validate_Hostname1Z /Zend_Validate_Hex1Y ?Zend_Validate_GreaterThan1X 3Zend_Validate_Float1!W EZend_Validate_File_WordCount1V ?Zend_Validate_File_Upload1U ;Zend_Validate_File_Size1T ;Zend_Validate_File_Sha11!S EZend_Validate_File_NotExists1 R CZend_Validate_File_MimeType1Q 9Zend_Validate_File_Md51P AZend_Validate_File_IsImage1$O KZend_Validate_File_IsCompressed1!N EZend_Validate_File_ImageSize1M ;Zend_Validate_File_Hash1!L EZend_Validate_File_FilesSize1!K EZend_Validate_File_Extension1J ?Zend_Validate_File_Exists1'I QZend_Validate_File_ExcludeMimeType1(H SZend_Validate_File_ExcludeExtension1G =Zend_Validate_File_Crc321F =Zend_Validate_File_Count1E ;Zend_Validate_Exception1D AZend_Validate_EmailAddress1C 5Zend_Validate_Digits1"B GZend_Validate_Db_RecordExists1$A KZend_Validate_Db_NoRecordExists1@ ?Zend_Validate_Db_Abstract1? 1Zend_Validate_Date1> =Zend_Validate_CreditCard1= 3Zend_Validate_Ccnum1< 9Zend_Validate_Callback1; 7Zend_Validate_Between1: 7Zend_Validate_Barcode19 AZend_Validate_Barcode_Upce18 AZend_Validate_Barcode_Upca17 AZend_Validate_Barcode_Sscc1$6 KZend_Validate_Barcode_Royalmail1"5 GZend_Validate_Barcode_Postnet1!4 EZend_Validate_Barcode_Planet1#3 IZend_Validate_Barcode_Leitcode1 2 CZend_Validate_Barcode_Itf1411 AZend_Validate_Barcode_Issn1*0 WZend_Validate_Barcode_IntelligentMail1$/ KZend_Validate_Barcode_Identcode1!. EZend_Validate_Barcode_Gtin141!- EZend_Validate_Barcode_Gtin131!, EZend_Validate_Barcode_Gtin121+ AZend_Validate_Barcode_Ean81* AZend_Validate_Barcode_Ean51) AZend_Validate_Barcode_Ean21 ( CZend_Validate_Barcode_Ean181 ' CZend_Validate_Barcode_Ean141 & CZend_Validate_Barcode_Ean131 % CZend_Validate_Barcode_Ean121$$ KZend_Validate_Barcode_Code93ext1!# EZend_Validate_Barcode_Code931$" KZend_Validate_Barcode_Code39ext1!! EZend_Validate_Barcode_Code391,  [Zend_Validate_Barcode_Code25interleaved1! EZend_Validate_Barcode_Code251* WZend_Validate_Barcode_AdapterAbstract1 3Zend_Validate_Alpha1 3Zend_Validate_Alnum1 9Zend_Validate_Abstract1 Zend_Uri1 'Zend_Uri_Http1 1Zend_Uri_Exception1 )Zend_Translate1 7Zend_Translate_Plural1 =Zend_Translate_Exception1 9Zend_Translate_Adapter1! EZend_Translate_Adapter_XmlTm1! EZend_Translate_Adapter_Xliff1 AZend_Translate_Adapter_Tmx1 AZend_Translate_Adapter_Tbx1 ?Zend_Translate_Adapter_Qt1 AZend_Translate_Adapter_Ini1# IZend_Translate_Adapter_Gettext1 AZend_Translate_Adapter_Csv1! EZend_Translate_Adapter_Array1$
 KZend_Tool_Project_Provider_View1$	 KZend_Tool_Project_Provider_Test1/ aZend_Tool_Project_Provider_ProjectProvider1' QZend_Tool_Project_Provider_Project1' QZend_Tool_Project_Provider_Profile1   j  vQ-vT.~X6b@o?



i
>
				\	"h;c6f=e;bE$`;jL+
qR<+                 _ AZend_Amf_Adobe_DbInspector2^ 3Zend_Amf_Adobe_Auth2] Zend_Acl2\ 'Zend_Acl_Role2[ 9Zend_Acl_Role_Registry2%Z MZend_Acl_Role_Registry_Exception2Y /Zend_Acl_Resource2X 1Zend_Acl_Exception2W /Zend_XmlRpc_Value1V =Zend_XmlRpc_Value_Struct1U =Zend_XmlRpc_Value_String1T =Zend_XmlRpc_Value_Scalar1S 7Zend_XmlRpc_Value_Nil1R ?Zend_XmlRpc_Value_Integer1 Q CZend_XmlRpc_Value_Exception1P =Zend_XmlRpc_Value_Double1O AZend_XmlRpc_Value_DateTime1!N EZend_XmlRpc_Value_Collection1M ?Zend_XmlRpc_Value_Boolean1!L EZend_XmlRpc_Value_BigInteger1K =Zend_XmlRpc_Value_Base641J ;Zend_XmlRpc_Value_Array1I 1Zend_XmlRpc_Server1H ?Zend_XmlRpc_Server_System1G =Zend_XmlRpc_Server_Fault1!F EZend_XmlRpc_Server_Exception1E =Zend_XmlRpc_Server_Cache1D 5Zend_XmlRpc_Response1C ?Zend_XmlRpc_Response_Http1B 3Zend_XmlRpc_Request1A ?Zend_XmlRpc_Request_Stdin1@ =Zend_XmlRpc_Request_Http1$? KZend_XmlRpc_Generator_XmlWriter1,> [Zend_XmlRpc_Generator_GeneratorAbstract1&= OZend_XmlRpc_Generator_DomDocument1< /Zend_XmlRpc_Fault1; 7Zend_XmlRpc_Exception1: 1Zend_XmlRpc_Client1#9 IZend_XmlRpc_Client_ServerProxy1+8 YZend_XmlRpc_Client_ServerIntrospection1+7 YZend_XmlRpc_Client_IntrospectException1%6 MZend_XmlRpc_Client_HttpException1&5 OZend_XmlRpc_Client_FaultException1!4 EZend_XmlRpc_Client_Exception1&3 OZend_Wildfire_Protocol_JsonStream1!2 EZend_Wildfire_Plugin_FirePhp1.1 _Zend_Wildfire_Plugin_FirePhp_TableMessage1)0 UZend_Wildfire_Plugin_FirePhp_Message1/ ;Zend_Wildfire_Exception1&. OZend_Wildfire_Channel_HttpHeaders1- Zend_View1, -Zend_View_Stream1+ 5Zend_View_Helper_Url1* AZend_View_Helper_Translate1) AZend_View_Helper_ServerUrl1)( UZend_View_Helper_RenderToPlaceholder1!' EZend_View_Helper_Placeholder1*& WZend_View_Helper_Placeholder_Registry14% kZend_View_Helper_Placeholder_Registry_Exception1+$ YZend_View_Helper_Placeholder_Container16# oZend_View_Helper_Placeholder_Container_Standalone15" mZend_View_Helper_Placeholder_Container_Exception14! kZend_View_Helper_Placeholder_Container_Abstract1!  EZend_View_Helper_PartialLoop1 =Zend_View_Helper_Partial1' QZend_View_Helper_Partial_Exception1' QZend_View_Helper_PaginationControl1  CZend_View_Helper_Navigation1( SZend_View_Helper_Navigation_Sitemap1% MZend_View_Helper_Navigation_Menu1& OZend_View_Helper_Navigation_Links1/ aZend_View_Helper_Navigation_HelperAbstract1, [Zend_View_Helper_Navigation_Breadcrumbs1 ;Zend_View_Helper_Layout1 7Zend_View_Helper_Json1" GZend_View_Helper_InlineScript1# IZend_View_Helper_HtmlQuicktime1 ?Zend_View_Helper_HtmlPage1  CZend_View_Helper_HtmlObject1 ?Zend_View_Helper_HtmlList1 AZend_View_Helper_HtmlFlash1! EZend_View_Helper_HtmlElement1 AZend_View_Helper_HeadTitle1 AZend_View_Helper_HeadStyle1  CZend_View_Helper_HeadScript1
 ?Zend_View_Helper_HeadMeta1	 ?Zend_View_Helper_HeadLink1" GZend_View_Helper_FormTextarea1 ?Zend_View_Helper_FormText1  CZend_View_Helper_FormSubmit1  CZend_View_Helper_FormSelect1 AZend_View_Helper_FormReset1 AZend_View_Helper_FormRadio1" GZend_View_Helper_FormPassword1 ?Zend_View_Helper_FormNote1'  QZend_View_Helper_FormMultiCheckbox1 AZend_View_Helper_FormLabel1~ AZend_View_Helper_FormImage1 } CZend_View_Helper_FormHidden1| ?Zend_View_Helper_FormFile1 { CZend_View_Helper_FormErrors1!z EZend_View_Helper_FormElement1"y GZend_View_Helper_FormCheckbox1 x CZend_View_Helper_FormButton1w 7Zend_View_Helper_Form1v ?Zend_View_Helper_Fieldset1   Z  h*f8f0|U/f<



u
Y
1
				\	9	_+c2n@oD{S)V* |T-V/                           ! EZend_Search_Lucene_Interface23 iZend_Search_Lucene_Index_TermsStream_Interface2$ KZend_Queue_Stomp_FrameInterface20 cZend_Queue_Stomp_Client_ConnectionInterface2( SZend_Queue_Adapter_AdapterInterface2 ?Zend_Pdf_Filter_Interface2& OZend_Pdf_ElementFactory_Interface2, [Zend_Paginator_ScrollingStyle_Interface2$ KZend_Paginator_AdapterAggregate2% MZend_Paginator_Adapter_Interface2& OZend_Oauth_Config_ConfigInterface2$ KZend_Memory_Container_Interface21
 eZend_Markup_Renderer_TokenConverterInterface2'	 QZend_Markup_Parser_ParserInterface2) UZend_Mail_Storage_Writable_Interface2' QZend_Mail_Storage_Folder_Interface2 =Zend_Mail_Part_Interface2  CZend_Mail_Message_Interface2! EZend_Log_Formatter_Interface2 ?Zend_Log_Filter_Interface2 ?Zend_Log_FactoryInterface2' QZend_Loader_PluginLoader_Interface2%  MZend_Loader_Autoloader_Interface20 cZend_Ldap_Node_Schema_ObjectClass_Interface22~ gZend_Ldap_Node_Schema_AttributeType_Interface23} iZend_InfoCard_Xml_Security_Transform_Interface2(| SZend_InfoCard_Xml_KeyInfo_Interface2({ SZend_InfoCard_Xml_Element_Interface2*z WZend_InfoCard_Xml_Assertion_Interface2-y ]Zend_InfoCard_Cipher_Symmetric_Interface27x qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface27w qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interface2+v YZend_InfoCard_Cipher_Pki_Rsa_Interface2'u QZend_InfoCard_Cipher_Pki_Interface2$t KZend_InfoCard_Adapter_Interface2$s KZend_Http_Client_Adapter_Stream2'r QZend_Http_Client_Adapter_Interface2q AZend_Gdata_App_MediaSource2.p _Zend_Form_Decorator_Marker_File_Interface2"o GZend_Form_Decorator_Interface2n 7Zend_Filter_Interface2"m GZend_Filter_Encrypt_Interface2+l YZend_Filter_Compress_CompressInterface20k cZend_Feed_Writer_Renderer_RendererInterface21j eZend_Feed_Writer_Extension_RendererInterface2#i IZend_Feed_Reader_FeedInterface2$h KZend_Feed_Reader_EntryInterface27g qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface2-f ]Zend_Feed_Pubsubhubbub_CallbackInterface2 e CZend_Feed_Builder_Interface2 d CZend_Db_Statement_Interface2$c KZend_Currency_CurrencyInterface2)b UZend_Crypt_Math_BigInteger_Interface2+a YZend_Controller_Router_Route_Interface2%` MZend_Controller_Router_Interface2)_ UZend_Controller_Dispatcher_Interface2%^ MZend_Controller_Action_Interface2] 5Zend_Captcha_Adapter2!\ EZend_Cache_Backend_Interface2)[ UZend_Cache_Backend_ExtendedInterface2 Z CZend_Auth_Storage_Interface2 Y CZend_Auth_Adapter_Interface2.X _Zend_Auth_Adapter_Http_Resolver_Interface2'W QZend_Application_Resource_Resource24V kZend_Application_Bootstrap_ResourceBootstrapper2,U [Zend_Application_Bootstrap_Bootstrapper2T ;Zend_Acl_Role_Interface2 S CZend_Acl_Resource_Interface2R ?Zend_Acl_Assert_Interface2#Q IZend_Wildfire_Plugin_Interface1$P KZend_Wildfire_Channel_Interface1O 3Zend_View_Interface1'N QZend_View_Helper_Navigation_Helper1M AZend_View_Helper_Interface1L ;Zend_Validate_Interface1+K YZend_Validate_Barcode_AdapterInterface13J iZend_Tool_Project_Profile_FileParser_Interface1:I wZend_Tool_Project_Context_System_TopLevelRestrictable15H mZend_Tool_Project_Context_System_NotOverwritable1/G aZend_Tool_Project_Context_System_Interface1(F SZend_Tool_Project_Context_Interface1+E YZend_Tool_Framework_Registry_Interface12D gZend_Tool_Framework_Registry_EnabledInterface1-C ]Zend_Tool_Framework_Provider_Pretendable1+B YZend_Tool_Framework_Provider_Interface1.A _Zend_Tool_Framework_Provider_Interactable1;@ yZend_Tool_Framework_Provider_DocblockManifestInterface1+? YZend_Tool_Framework_Metadata_Interface1.> _Zend_Tool_Framework_Metadata_Attributable16= oZend_Tool_Framework_Manifest_ProviderManifestable1   h  ^7|O#bH&Q`/


~
[
0
				_	-	d:[4U6zR0iH'vQ&wO+	a<  G ;Zend_Cache_Backend_Test2F ?Zend_Cache_Backend_Static2E ?Zend_Cache_Backend_Sqlite2!D EZend_Cache_Backend_Memcached2C ;Zend_Cache_Backend_File2!B EZend_Cache_Backend_BlackHole2A 9Zend_Cache_Backend_Apc2@ %Zend_Barcode2+? YZend_Barcode_Renderer_RendererAbstract2> ?Zend_Barcode_Renderer_Pdf2 = CZend_Barcode_Renderer_Image2$< KZend_Barcode_Renderer_Exception2; =Zend_Barcode_Object_Upce2: =Zend_Barcode_Object_Upca2"9 GZend_Barcode_Object_Royalmail2 8 CZend_Barcode_Object_Postnet27 AZend_Barcode_Object_Planet2'6 QZend_Barcode_Object_ObjectAbstract2!5 EZend_Barcode_Object_Leitcode24 ?Zend_Barcode_Object_Itf142"3 GZend_Barcode_Object_Identcode2"2 GZend_Barcode_Object_Exception21 ?Zend_Barcode_Object_Error20 =Zend_Barcode_Object_Ean82/ =Zend_Barcode_Object_Ean52. =Zend_Barcode_Object_Ean22- ?Zend_Barcode_Object_Ean132, AZend_Barcode_Object_Code392*+ WZend_Barcode_Object_Code25interleaved2* AZend_Barcode_Object_Code252) 9Zend_Barcode_Exception2( Zend_Auth2' ?Zend_Auth_Storage_Session2$& KZend_Auth_Storage_NonPersistent2 % CZend_Auth_Storage_Exception2$ -Zend_Auth_Result2# 3Zend_Auth_Exception2" =Zend_Auth_Adapter_OpenId2! 9Zend_Auth_Adapter_Ldap2  AZend_Auth_Adapter_InfoCard2 9Zend_Auth_Adapter_Http2) UZend_Auth_Adapter_Http_Resolver_File2. _Zend_Auth_Adapter_Http_Resolver_Exception2  CZend_Auth_Adapter_Exception2 =Zend_Auth_Adapter_Digest2 ?Zend_Auth_Adapter_DbTable2 -Zend_Application2# IZend_Application_Resource_View2( SZend_Application_Resource_Translate2& OZend_Application_Resource_Session2% MZend_Application_Resource_Router2/ aZend_Application_Resource_ResourceAbstract2) UZend_Application_Resource_Navigation2& OZend_Application_Resource_Multidb2& OZend_Application_Resource_Modules2# IZend_Application_Resource_Mail2" GZend_Application_Resource_Log2% MZend_Application_Resource_Locale2% MZend_Application_Resource_Layout2. _Zend_Application_Resource_Frontcontroller2( SZend_Application_Resource_Exception2#
 IZend_Application_Resource_Dojo2!	 EZend_Application_Resource_Db2+ YZend_Application_Resource_Cachemanager2& OZend_Application_Module_Bootstrap2' QZend_Application_Module_Autoloader2 AZend_Application_Exception2) UZend_Application_Bootstrap_Exception21 eZend_Application_Bootstrap_BootstrapAbstract2) UZend_Application_Bootstrap_Bootstrap2 ?Zend_Amf_Value_TraitsInfo2-  ]Zend_Amf_Value_Messaging_RemotingMessage2* WZend_Amf_Value_Messaging_ErrorMessage2,~ [Zend_Amf_Value_Messaging_CommandMessage2*} WZend_Amf_Value_Messaging_AsyncMessage2-| ]Zend_Amf_Value_Messaging_ArrayCollection20{ cZend_Amf_Value_Messaging_AcknowledgeMessage2-z ]Zend_Amf_Value_Messaging_AbstractMessage2!y EZend_Amf_Value_MessageHeader2x AZend_Amf_Value_MessageBody2w =Zend_Amf_Value_ByteArray2v AZend_Amf_Util_BinaryStream2u +Zend_Amf_Server2t ?Zend_Amf_Server_Exception2s /Zend_Amf_Response2r 9Zend_Amf_Response_Http2q -Zend_Amf_Request2p 7Zend_Amf_Request_Http2o ?Zend_Amf_Parse_TypeLoader2n ?Zend_Amf_Parse_Serializer2#m IZend_Amf_Parse_Resource_Stream2(l SZend_Amf_Parse_Resource_MysqlResult2)k UZend_Amf_Parse_Resource_MysqliResult2 j CZend_Amf_Parse_OutputStream2i AZend_Amf_Parse_InputStream2 h CZend_Amf_Parse_Deserializer2#g IZend_Amf_Parse_Amf3_Serializer2%f MZend_Amf_Parse_Amf3_Deserializer2#e IZend_Amf_Parse_Amf0_Serializer2%d MZend_Amf_Parse_Amf0_Deserializer2c 1Zend_Amf_Exception2b 1Zend_Amf_Constants2a 9Zend_Amf_Auth_Abstract2 ` CZend_Amf_Adobe_Introspector2   b  f:~]8sW<nI\3



T
+					w	O	0	_0YY(eFY._5mBvH                                    *) WZend_Controller_Router_Route_Hostname2'( QZend_Controller_Router_Route_Chain2*' WZend_Controller_Router_Route_Abstract2#& IZend_Controller_Router_Rewrite2%% MZend_Controller_Router_Exception2$$ KZend_Controller_Router_Abstract2*# WZend_Controller_Response_HttpTestCase2"" GZend_Controller_Response_Http2'! QZend_Controller_Response_Exception2!  EZend_Controller_Response_Cli2& OZend_Controller_Response_Abstract2# IZend_Controller_Request_Simple2) UZend_Controller_Request_HttpTestCase2! EZend_Controller_Request_Http2& OZend_Controller_Request_Exception2& OZend_Controller_Request_Apache4042% MZend_Controller_Request_Abstract2& OZend_Controller_Plugin_PutHandler2( SZend_Controller_Plugin_ErrorHandler2" GZend_Controller_Plugin_Broker2' QZend_Controller_Plugin_ActionStack2$ KZend_Controller_Plugin_Abstract2 7Zend_Controller_Front2 ?Zend_Controller_Exception2( SZend_Controller_Dispatcher_Standard2) UZend_Controller_Dispatcher_Exception2( SZend_Controller_Dispatcher_Abstract2 9Zend_Controller_Action2( SZend_Controller_Action_HelperBroker26 oZend_Controller_Action_HelperBroker_PriorityStack2/ aZend_Controller_Action_Helper_ViewRenderer2&
 OZend_Controller_Action_Helper_Url2-	 ]Zend_Controller_Action_Helper_Redirector2' QZend_Controller_Action_Helper_Json21 eZend_Controller_Action_Helper_FlashMessenger20 cZend_Controller_Action_Helper_ContextSwitch2( SZend_Controller_Action_Helper_Cache2< {Zend_Controller_Action_Helper_AutoCompleteScriptaculous23 iZend_Controller_Action_Helper_AutoCompleteDojo28 sZend_Controller_Action_Helper_AutoComplete_Abstract2. _Zend_Controller_Action_Helper_AjaxContext2.  _Zend_Controller_Action_Helper_ActionStack2+ YZend_Controller_Action_Helper_Abstract2%~ MZend_Controller_Action_Exception2} 3Zend_Console_Getopt2"| GZend_Console_Getopt_Exception2{ #Zend_Config2z +Zend_Config_Xml2y 1Zend_Config_Writer2x 9Zend_Config_Writer_Xml2w 9Zend_Config_Writer_Ini2$v KZend_Config_Writer_FileAbstract2u =Zend_Config_Writer_Array2t +Zend_Config_Ini2s 7Zend_Config_Exception2$r KZend_CodeGenerator_Php_Property21q eZend_CodeGenerator_Php_Property_DefaultValue2%p MZend_CodeGenerator_Php_Parameter22o gZend_CodeGenerator_Php_Parameter_DefaultValue2"n GZend_CodeGenerator_Php_Method2,m [Zend_CodeGenerator_Php_Member_Container2+l YZend_CodeGenerator_Php_Member_Abstract2 k CZend_CodeGenerator_Php_File2%j MZend_CodeGenerator_Php_Exception2$i KZend_CodeGenerator_Php_Docblock2(h SZend_CodeGenerator_Php_Docblock_Tag2/g aZend_CodeGenerator_Php_Docblock_Tag_Return2.f _Zend_CodeGenerator_Php_Docblock_Tag_Param20e cZend_CodeGenerator_Php_Docblock_Tag_License2!d EZend_CodeGenerator_Php_Class2 c CZend_CodeGenerator_Php_Body2$b KZend_CodeGenerator_Php_Abstract2!a EZend_CodeGenerator_Exception2 ` CZend_CodeGenerator_Abstract2_ /Zend_Captcha_Word2^ 9Zend_Captcha_ReCaptcha2] 1Zend_Captcha_Image2\ 3Zend_Captcha_Figlet2[ 9Zend_Captcha_Exception2Z /Zend_Captcha_Dumb2Y /Zend_Captcha_Base2X !Zend_Cache2W 1Zend_Cache_Manager2V =Zend_Cache_Frontend_Page2U AZend_Cache_Frontend_Output2!T EZend_Cache_Frontend_Function2S =Zend_Cache_Frontend_File2R ?Zend_Cache_Frontend_Class2 Q CZend_Cache_Frontend_Capture2P 5Zend_Cache_Exception2O +Zend_Cache_Core2N 1Zend_Cache_Backend2"M GZend_Cache_Backend_ZendServer2(L SZend_Cache_Backend_ZendServer_ShMem2'K QZend_Cache_Backend_ZendServer_Disk2$J KZend_Cache_Backend_ZendPlatform2I ?Zend_Cache_Backend_Xcache2!H EZend_Cache_Backend_TwoLevels2   m  }X-^7zcP0oS1|X4




k
B
#
						x	W	@	_>vW6hK$~J_4\4c=U*                           * WZend_Dojo_Form_Element_SimpleTextarea2' QZend_Dojo_Form_Element_RadioButton2+ YZend_Dojo_Form_Element_PasswordTextBox2) UZend_Dojo_Form_Element_NumberTextBox2) UZend_Dojo_Form_Element_NumberSpinner2, [Zend_Dojo_Form_Element_HorizontalSlider2+ YZend_Dojo_Form_Element_FilteringSelect2" GZend_Dojo_Form_Element_Editor2& OZend_Dojo_Form_Element_DijitMulti2! EZend_Dojo_Form_Element_Dijit2' QZend_Dojo_Form_Element_DateTextBox2+ YZend_Dojo_Form_Element_CurrencyTextBox2$
 KZend_Dojo_Form_Element_ComboBox2$	 KZend_Dojo_Form_Element_CheckBox2" GZend_Dojo_Form_Element_Button2  CZend_Dojo_Form_DisplayGroup2* WZend_Dojo_Form_Decorator_TabContainer2, [Zend_Dojo_Form_Decorator_StackContainer2, [Zend_Dojo_Form_Decorator_SplitContainer2' QZend_Dojo_Form_Decorator_DijitForm2* WZend_Dojo_Form_Decorator_DijitElement2, [Zend_Dojo_Form_Decorator_DijitContainer2)  UZend_Dojo_Form_Decorator_ContentPane2- ]Zend_Dojo_Form_Decorator_BorderContainer2+~ YZend_Dojo_Form_Decorator_AccordionPane20} cZend_Dojo_Form_Decorator_AccordionContainer2| 3Zend_Dojo_Exception2{ )Zend_Dojo_Data2z 5Zend_Dojo_BuildLayer2y !Zend_Debug2x Zend_Db2w 'Zend_Db_Table2v 5Zend_Db_Table_Select2#u IZend_Db_Table_Select_Exception2t 5Zend_Db_Table_Rowset2#s IZend_Db_Table_Rowset_Exception2"r GZend_Db_Table_Rowset_Abstract2q /Zend_Db_Table_Row2 p CZend_Db_Table_Row_Exception2o AZend_Db_Table_Row_Abstract2n ;Zend_Db_Table_Exception2m =Zend_Db_Table_Definition2l 9Zend_Db_Table_Abstract2k /Zend_Db_Statement2j =Zend_Db_Statement_Sqlsrv2'i QZend_Db_Statement_Sqlsrv_Exception2h 7Zend_Db_Statement_Pdo2g ?Zend_Db_Statement_Pdo_Oci2f ?Zend_Db_Statement_Pdo_Ibm2e =Zend_Db_Statement_Oracle2'd QZend_Db_Statement_Oracle_Exception2c =Zend_Db_Statement_Mysqli2'b QZend_Db_Statement_Mysqli_Exception2 a CZend_Db_Statement_Exception2` 7Zend_Db_Statement_Db22$_ KZend_Db_Statement_Db2_Exception2^ )Zend_Db_Select2] =Zend_Db_Select_Exception2\ -Zend_Db_Profiler2[ 9Zend_Db_Profiler_Query2Z =Zend_Db_Profiler_Firebug2Y AZend_Db_Profiler_Exception2X %Zend_Db_Expr2W /Zend_Db_Exception2V 9Zend_Db_Adapter_Sqlsrv2%U MZend_Db_Adapter_Sqlsrv_Exception2T AZend_Db_Adapter_Pdo_Sqlite2S ?Zend_Db_Adapter_Pdo_Pgsql2R ;Zend_Db_Adapter_Pdo_Oci2Q ?Zend_Db_Adapter_Pdo_Mysql2P ?Zend_Db_Adapter_Pdo_Mssql2O ;Zend_Db_Adapter_Pdo_Ibm2 N CZend_Db_Adapter_Pdo_Ibm_Ids2 M CZend_Db_Adapter_Pdo_Ibm_Db22!L EZend_Db_Adapter_Pdo_Abstract2K 9Zend_Db_Adapter_Oracle2%J MZend_Db_Adapter_Oracle_Exception2I 9Zend_Db_Adapter_Mysqli2%H MZend_Db_Adapter_Mysqli_Exception2G ?Zend_Db_Adapter_Exception2F 3Zend_Db_Adapter_Db22"E GZend_Db_Adapter_Db2_Exception2D =Zend_Db_Adapter_Abstract2C Zend_Date2B 3Zend_Date_Exception2A 5Zend_Date_DateObject2@ -Zend_Date_Cities2? 'Zend_Currency2> ;Zend_Currency_Exception2= !Zend_Crypt2< )Zend_Crypt_Rsa2; 1Zend_Crypt_Rsa_Key2: ?Zend_Crypt_Rsa_Key_Public29 AZend_Crypt_Rsa_Key_Private28 +Zend_Crypt_Math27 ?Zend_Crypt_Math_Exception26 AZend_Crypt_Math_BigInteger2#5 IZend_Crypt_Math_BigInteger_Gmp2)4 UZend_Crypt_Math_BigInteger_Exception2&3 OZend_Crypt_Math_BigInteger_Bcmath22 +Zend_Crypt_Hmac21 ?Zend_Crypt_Hmac_Exception20 5Zend_Crypt_Exception2/ =Zend_Crypt_DiffieHellman2'. QZend_Crypt_DiffieHellman_Exception2!- EZend_Controller_Router_Route2(, SZend_Controller_Router_Route_Static2'+ QZend_Controller_Router_Route_Regex2(* SZend_Controller_Router_Route_Module2   `  _4~M!V(V3b6



_
2
				e	5	nS<{Z=!MvK|U'X$_/ e;          "v GZend_Feed_Reader_FeedAbstract2u ?Zend_Feed_Reader_Feed_Rss2t AZend_Feed_Reader_Feed_Atom2&s OZend_Feed_Reader_Feed_Atom_Source23r iZend_Feed_Reader_Extension_WellFormedWeb_Entry2,q [Zend_Feed_Reader_Extension_Thread_Entry20p cZend_Feed_Reader_Extension_Syndication_Feed2+o YZend_Feed_Reader_Extension_Slash_Entry2,n [Zend_Feed_Reader_Extension_Podcast_Feed2-m ]Zend_Feed_Reader_Extension_Podcast_Entry2,l [Zend_Feed_Reader_Extension_FeedAbstract2-k ]Zend_Feed_Reader_Extension_EntryAbstract2/j aZend_Feed_Reader_Extension_DublinCore_Feed20i cZend_Feed_Reader_Extension_DublinCore_Entry24h kZend_Feed_Reader_Extension_CreativeCommons_Feed25g mZend_Feed_Reader_Extension_CreativeCommons_Entry2-f ]Zend_Feed_Reader_Extension_Content_Entry2)e UZend_Feed_Reader_Extension_Atom_Feed2*d WZend_Feed_Reader_Extension_Atom_Entry2#c IZend_Feed_Reader_EntryAbstract2b AZend_Feed_Reader_Entry_Rss2 a CZend_Feed_Reader_Entry_Atom2 ` CZend_Feed_Reader_Collection23_ iZend_Feed_Reader_Collection_CollectionAbstract2)^ UZend_Feed_Reader_Collection_Category2'] QZend_Feed_Reader_Collection_Author2\ 9Zend_Feed_Pubsubhubbub2&[ OZend_Feed_Pubsubhubbub_Subscriber2/Z aZend_Feed_Pubsubhubbub_Subscriber_Callback2%Y MZend_Feed_Pubsubhubbub_Publisher2.X _Zend_Feed_Pubsubhubbub_Model_Subscription2/W aZend_Feed_Pubsubhubbub_Model_ModelAbstract2(V SZend_Feed_Pubsubhubbub_HttpResponse2%U MZend_Feed_Pubsubhubbub_Exception2,T [Zend_Feed_Pubsubhubbub_CallbackAbstract2S 3Zend_Feed_Exception2R 3Zend_Feed_Entry_Rss2Q 5Zend_Feed_Entry_Atom2P =Zend_Feed_Entry_Abstract2O /Zend_Feed_Element2N /Zend_Feed_Builder2M =Zend_Feed_Builder_Header2$L KZend_Feed_Builder_Header_Itunes2 K CZend_Feed_Builder_Exception2J ;Zend_Feed_Builder_Entry2I )Zend_Feed_Atom2H 1Zend_Feed_Abstract2G )Zend_Exception2F )Zend_Dom_Query2E 7Zend_Dom_Query_Result2D =Zend_Dom_Query_Css2Xpath2C 1Zend_Dom_Exception2B Zend_Dojo2)A UZend_Dojo_View_Helper_VerticalSlider2,@ [Zend_Dojo_View_Helper_ValidationTextBox2&? OZend_Dojo_View_Helper_TimeTextBox2"> GZend_Dojo_View_Helper_TextBox2#= IZend_Dojo_View_Helper_Textarea2'< QZend_Dojo_View_Helper_TabContainer2'; QZend_Dojo_View_Helper_SubmitButton2): UZend_Dojo_View_Helper_StackContainer2)9 UZend_Dojo_View_Helper_SplitContainer2!8 EZend_Dojo_View_Helper_Slider2)7 UZend_Dojo_View_Helper_SimpleTextarea2&6 OZend_Dojo_View_Helper_RadioButton2*5 WZend_Dojo_View_Helper_PasswordTextBox2(4 SZend_Dojo_View_Helper_NumberTextBox2(3 SZend_Dojo_View_Helper_NumberSpinner2+2 YZend_Dojo_View_Helper_HorizontalSlider21 AZend_Dojo_View_Helper_Form2*0 WZend_Dojo_View_Helper_FilteringSelect2!/ EZend_Dojo_View_Helper_Editor2. AZend_Dojo_View_Helper_Dojo2)- UZend_Dojo_View_Helper_Dojo_Container2), UZend_Dojo_View_Helper_DijitContainer2 + CZend_Dojo_View_Helper_Dijit2&* OZend_Dojo_View_Helper_DateTextBox2&) OZend_Dojo_View_Helper_CustomDijit2*( WZend_Dojo_View_Helper_CurrencyTextBox2&' OZend_Dojo_View_Helper_ContentPane2#& IZend_Dojo_View_Helper_ComboBox2#% IZend_Dojo_View_Helper_CheckBox2!$ EZend_Dojo_View_Helper_Button2*# WZend_Dojo_View_Helper_BorderContainer2(" SZend_Dojo_View_Helper_AccordionPane2-! ]Zend_Dojo_View_Helper_AccordionContainer2  =Zend_Dojo_View_Exception2 )Zend_Dojo_Form2 9Zend_Dojo_Form_SubForm2* WZend_Dojo_Form_Element_VerticalSlider2- ]Zend_Dojo_Form_Element_ValidationTextBox2' QZend_Dojo_Form_Element_TimeTextBox2# IZend_Dojo_Form_Element_TextBox2$ KZend_Dojo_Form_Element_Textarea2( SZend_Dojo_Form_Element_SubmitButton2" GZend_Dojo_Form_Element_Slider2   e  p6 M}IjLR&




}
Q
)
					|	_	>	lO0~`?y_G{Y:tK"uGa8{V5                          %[ MZend_Form_Decorator_FormElements2Z =Zend_Form_Decorator_Form2Y =Zend_Form_Decorator_File2!X EZend_Form_Decorator_Fieldset2"W GZend_Form_Decorator_Exception2V AZend_Form_Decorator_Errors2$U KZend_Form_Decorator_DtDdWrapper2$T KZend_Form_Decorator_Description2 S CZend_Form_Decorator_Captcha2%R MZend_Form_Decorator_Captcha_Word2!Q EZend_Form_Decorator_Callback2!P EZend_Form_Decorator_Abstract2O #Zend_Filter2+N YZend_Filter_Word_UnderscoreToSeparator2&M OZend_Filter_Word_UnderscoreToDash2+L YZend_Filter_Word_UnderscoreToCamelCase2*K WZend_Filter_Word_SeparatorToSeparator2%J MZend_Filter_Word_SeparatorToDash2*I WZend_Filter_Word_SeparatorToCamelCase2(H SZend_Filter_Word_Separator_Abstract2&G OZend_Filter_Word_DashToUnderscore2%F MZend_Filter_Word_DashToSeparator2%E MZend_Filter_Word_DashToCamelCase2+D YZend_Filter_Word_CamelCaseToUnderscore2*C WZend_Filter_Word_CamelCaseToSeparator2%B MZend_Filter_Word_CamelCaseToDash2A 7Zend_Filter_StripTags2@ ?Zend_Filter_StripNewlines2? 9Zend_Filter_StringTrim2> ?Zend_Filter_StringToUpper2= ?Zend_Filter_StringToLower2< 5Zend_Filter_RealPath2; ;Zend_Filter_PregReplace2: -Zend_Filter_Null2&9 OZend_Filter_NormalizedToLocalized2&8 OZend_Filter_LocalizedToNormalized27 +Zend_Filter_Int26 /Zend_Filter_Input25 7Zend_Filter_Inflector24 =Zend_Filter_HtmlEntities23 AZend_Filter_File_UpperCase22 ;Zend_Filter_File_Rename21 AZend_Filter_File_LowerCase20 =Zend_Filter_File_Encrypt2/ =Zend_Filter_File_Decrypt2. 7Zend_Filter_Exception2- 3Zend_Filter_Encrypt2 , CZend_Filter_Encrypt_Openssl2+ AZend_Filter_Encrypt_Mcrypt2* +Zend_Filter_Dir2) 1Zend_Filter_Digits2( 3Zend_Filter_Decrypt2' 9Zend_Filter_Decompress2& 5Zend_Filter_Compress2% =Zend_Filter_Compress_Zip2$ =Zend_Filter_Compress_Tar2# =Zend_Filter_Compress_Rar2" =Zend_Filter_Compress_Lzf2! ;Zend_Filter_Compress_Gz2*  WZend_Filter_Compress_CompressAbstract2 =Zend_Filter_Compress_Bz22 5Zend_Filter_Callback2 3Zend_Filter_Boolean2 5Zend_Filter_BaseName2 /Zend_Filter_Alpha2 /Zend_Filter_Alnum2 1Zend_File_Transfer2! EZend_File_Transfer_Exception2$ KZend_File_Transfer_Adapter_Http2( SZend_File_Transfer_Adapter_Abstract2 Zend_Feed2 -Zend_Feed_Writer2 ;Zend_Feed_Writer_Source2/ aZend_Feed_Writer_Renderer_RendererAbstract2' QZend_Feed_Writer_Renderer_Feed_Rss2( SZend_Feed_Writer_Renderer_Feed_Atom2/ aZend_Feed_Writer_Renderer_Feed_Atom_Source25 mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract2( SZend_Feed_Writer_Renderer_Entry_Rss2) UZend_Feed_Writer_Renderer_Entry_Atom21 eZend_Feed_Writer_Renderer_Entry_Atom_Deleted2
 7Zend_Feed_Writer_Feed2'	 QZend_Feed_Writer_Feed_FeedAbstract2< {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry28 sZend_Feed_Writer_Extension_Threading_Renderer_Entry24 kZend_Feed_Writer_Extension_Slash_Renderer_Entry20 cZend_Feed_Writer_Extension_RendererAbstract24 kZend_Feed_Writer_Extension_ITunes_Renderer_Feed25 mZend_Feed_Writer_Extension_ITunes_Renderer_Entry2+ YZend_Feed_Writer_Extension_ITunes_Feed2, [Zend_Feed_Writer_Extension_ITunes_Entry28  sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed29 uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry26~ oZend_Feed_Writer_Extension_Content_Renderer_Entry22} gZend_Feed_Writer_Extension_Atom_Renderer_Feed26| oZend_Feed_Writer_Exception_InvalidMethodException2{ 9Zend_Feed_Writer_Entry2z =Zend_Feed_Writer_Deleted2y 'Zend_Feed_Rss2x -Zend_Feed_Reader2w =Zend_Feed_Reader_FeedSet2   f  qE!qN*c=yV6 e>



~
U
(					`	5	yQ&]6\7eI!
l;X'qJ$rG                      +A YZend_Gdata_Calendar_Extension_Selected2+@ YZend_Gdata_Calendar_Extension_QuickAdd2'? QZend_Gdata_Calendar_Extension_Link2)> UZend_Gdata_Calendar_Extension_Hidden2(= SZend_Gdata_Calendar_Extension_Color2.< _Zend_Gdata_Calendar_Extension_AccessLevel2#; IZend_Gdata_Calendar_EventQuery2": GZend_Gdata_Calendar_EventFeed2#9 IZend_Gdata_Calendar_EventEntry28 -Zend_Gdata_Books2!7 EZend_Gdata_Books_VolumeQuery2 6 CZend_Gdata_Books_VolumeFeed2!5 EZend_Gdata_Books_VolumeEntry2+4 YZend_Gdata_Books_Extension_Viewability2-3 ]Zend_Gdata_Books_Extension_ThumbnailLink2&2 OZend_Gdata_Books_Extension_Review2+1 YZend_Gdata_Books_Extension_PreviewLink2(0 SZend_Gdata_Books_Extension_InfoLink2-/ ]Zend_Gdata_Books_Extension_Embeddability2). UZend_Gdata_Books_Extension_BooksLink2-- ]Zend_Gdata_Books_Extension_BooksCategory2., _Zend_Gdata_Books_Extension_AnnotationLink2$+ KZend_Gdata_Books_CollectionFeed2%* MZend_Gdata_Books_CollectionEntry2) 1Zend_Gdata_AuthSub2( )Zend_Gdata_App2$' KZend_Gdata_App_VersionException2& 3Zend_Gdata_App_Util2#% IZend_Gdata_App_MediaFileSource2$ ?Zend_Gdata_App_MediaEntry22# gZend_Gdata_App_LoggingHttpClientAdapterSocket2" AZend_Gdata_App_IOException2,! [Zend_Gdata_App_InvalidArgumentException2!  EZend_Gdata_App_HttpException2$ KZend_Gdata_App_FeedSourceParent2# IZend_Gdata_App_FeedEntryParent2 3Zend_Gdata_App_Feed2 =Zend_Gdata_App_Extension2! EZend_Gdata_App_Extension_Uri2% MZend_Gdata_App_Extension_Updated2# IZend_Gdata_App_Extension_Title2" GZend_Gdata_App_Extension_Text2% MZend_Gdata_App_Extension_Summary2& OZend_Gdata_App_Extension_Subtitle2$ KZend_Gdata_App_Extension_Source2$ KZend_Gdata_App_Extension_Rights2' QZend_Gdata_App_Extension_Published2$ KZend_Gdata_App_Extension_Person2" GZend_Gdata_App_Extension_Name2" GZend_Gdata_App_Extension_Logo2" GZend_Gdata_App_Extension_Link2  CZend_Gdata_App_Extension_Id2" GZend_Gdata_App_Extension_Icon2' QZend_Gdata_App_Extension_Generator2# IZend_Gdata_App_Extension_Email2%
 MZend_Gdata_App_Extension_Element2$	 KZend_Gdata_App_Extension_Edited2# IZend_Gdata_App_Extension_Draft2% MZend_Gdata_App_Extension_Control2) UZend_Gdata_App_Extension_Contributor2% MZend_Gdata_App_Extension_Content2& OZend_Gdata_App_Extension_Category2$ KZend_Gdata_App_Extension_Author2 =Zend_Gdata_App_Exception2 5Zend_Gdata_App_Entry2,  [Zend_Gdata_App_CaptchaRequiredException2# IZend_Gdata_App_BaseMediaSource2~ 3Zend_Gdata_App_Base2*} WZend_Gdata_App_BadMethodCallException2!| EZend_Gdata_App_AuthException2{ Zend_Form2z /Zend_Form_SubForm2y 3Zend_Form_Exception2x /Zend_Form_Element2w ;Zend_Form_Element_Xhtml2v AZend_Form_Element_Textarea2u 9Zend_Form_Element_Text2t =Zend_Form_Element_Submit2s =Zend_Form_Element_Select2r ;Zend_Form_Element_Reset2q ;Zend_Form_Element_Radio2p AZend_Form_Element_Password2"o GZend_Form_Element_Multiselect2$n KZend_Form_Element_MultiCheckbox2m ;Zend_Form_Element_Multi2l ;Zend_Form_Element_Image2k =Zend_Form_Element_Hidden2j 9Zend_Form_Element_Hash2i 9Zend_Form_Element_File2 h CZend_Form_Element_Exception2g AZend_Form_Element_Checkbox2f ?Zend_Form_Element_Captcha2e =Zend_Form_Element_Button2d 9Zend_Form_DisplayGroup2#c IZend_Form_Decorator_ViewScript2#b IZend_Form_Decorator_ViewHelper2 a CZend_Form_Decorator_Tooltip2(` SZend_Form_Decorator_PrepareElements2_ ?Zend_Form_Decorator_Label2^ ?Zend_Form_Decorator_Image2 ] CZend_Form_Decorator_HtmlTag2#\ IZend_Form_Decorator_FormErrors2   c  c=lT$a0qS:pH



|
U
8
 				}	T	&	 f;nF$\4V-c<rS"}W2W;$         #$ IZend_Gdata_Health_ProfileEntry2$# KZend_Gdata_Health_Extension_Ccr2" )Zend_Gdata_Geo2! 3Zend_Gdata_Geo_Feed2$  KZend_Gdata_Geo_Extension_GmlPos2& OZend_Gdata_Geo_Extension_GmlPoint2) UZend_Gdata_Geo_Extension_GeoRssWhere2 5Zend_Gdata_Geo_Entry2 -Zend_Gdata_Gbase2" GZend_Gdata_Gbase_SnippetQuery2! EZend_Gdata_Gbase_SnippetFeed2" GZend_Gdata_Gbase_SnippetEntry2 9Zend_Gdata_Gbase_Query2 AZend_Gdata_Gbase_ItemQuery2 ?Zend_Gdata_Gbase_ItemFeed2 AZend_Gdata_Gbase_ItemEntry2 7Zend_Gdata_Gbase_Feed2- ]Zend_Gdata_Gbase_Extension_BaseAttribute2 9Zend_Gdata_Gbase_Entry2 -Zend_Gdata_Gapps2 AZend_Gdata_Gapps_UserQuery2 ?Zend_Gdata_Gapps_UserFeed2 AZend_Gdata_Gapps_UserEntry2& OZend_Gdata_Gapps_ServiceException2 9Zend_Gdata_Gapps_Query2# IZend_Gdata_Gapps_NicknameQuery2"
 GZend_Gdata_Gapps_NicknameFeed2#	 IZend_Gdata_Gapps_NicknameEntry2% MZend_Gdata_Gapps_Extension_Quota2( SZend_Gdata_Gapps_Extension_Nickname2$ KZend_Gdata_Gapps_Extension_Name2% MZend_Gdata_Gapps_Extension_Login2) UZend_Gdata_Gapps_Extension_EmailList2 9Zend_Gdata_Gapps_Error2- ]Zend_Gdata_Gapps_EmailListRecipientQuery2, [Zend_Gdata_Gapps_EmailListRecipientFeed2-  ]Zend_Gdata_Gapps_EmailListRecipientEntry2$ KZend_Gdata_Gapps_EmailListQuery2#~ IZend_Gdata_Gapps_EmailListFeed2$} KZend_Gdata_Gapps_EmailListEntry2| +Zend_Gdata_Feed2{ 5Zend_Gdata_Extension2z =Zend_Gdata_Extension_Who2y AZend_Gdata_Extension_Where2x ?Zend_Gdata_Extension_When2$w KZend_Gdata_Extension_Visibility2&v OZend_Gdata_Extension_Transparency2"u GZend_Gdata_Extension_Reminder2-t ]Zend_Gdata_Extension_RecurrenceException2$s KZend_Gdata_Extension_Recurrence2 r CZend_Gdata_Extension_Rating2'q QZend_Gdata_Extension_OriginalEvent20p cZend_Gdata_Extension_OpenSearchTotalResults2.o _Zend_Gdata_Extension_OpenSearchStartIndex20n cZend_Gdata_Extension_OpenSearchItemsPerPage2"m GZend_Gdata_Extension_FeedLink2*l WZend_Gdata_Extension_ExtendedProperty2%k MZend_Gdata_Extension_EventStatus2#j IZend_Gdata_Extension_EntryLink2"i GZend_Gdata_Extension_Comments2&h OZend_Gdata_Extension_AttendeeType2(g SZend_Gdata_Extension_AttendeeStatus2f +Zend_Gdata_Exif2e 5Zend_Gdata_Exif_Feed2#d IZend_Gdata_Exif_Extension_Time2#c IZend_Gdata_Exif_Extension_Tags2$b KZend_Gdata_Exif_Extension_Model2#a IZend_Gdata_Exif_Extension_Make2"` GZend_Gdata_Exif_Extension_Iso2,_ [Zend_Gdata_Exif_Extension_ImageUniqueId2$^ KZend_Gdata_Exif_Extension_FStop2*] WZend_Gdata_Exif_Extension_FocalLength2$\ KZend_Gdata_Exif_Extension_Flash2'[ QZend_Gdata_Exif_Extension_Exposure2'Z QZend_Gdata_Exif_Extension_Distance2Y 7Zend_Gdata_Exif_Entry2X -Zend_Gdata_Entry2W 7Zend_Gdata_DublinCore2*V WZend_Gdata_DublinCore_Extension_Title2,U [Zend_Gdata_DublinCore_Extension_Subject2+T YZend_Gdata_DublinCore_Extension_Rights2.S _Zend_Gdata_DublinCore_Extension_Publisher2-R ]Zend_Gdata_DublinCore_Extension_Language2/Q aZend_Gdata_DublinCore_Extension_Identifier2+P YZend_Gdata_DublinCore_Extension_Format20O cZend_Gdata_DublinCore_Extension_Description2)N UZend_Gdata_DublinCore_Extension_Date2,M [Zend_Gdata_DublinCore_Extension_Creator2L +Zend_Gdata_Docs2K 7Zend_Gdata_Docs_Query2%J MZend_Gdata_Docs_DocumentListFeed2&I OZend_Gdata_Docs_DocumentListEntry2H 9Zend_Gdata_ClientLogin2G 3Zend_Gdata_Calendar2!F EZend_Gdata_Calendar_ListFeed2"E GZend_Gdata_Calendar_ListEntry2-D ]Zend_Gdata_Calendar_Extension_WebContent2+C YZend_Gdata_Calendar_Extension_Timezone29B uZend_Gdata_Calendar_Extension_SendEventNotifications2   \  eK_/l?|OsW2



k
=
			~	S	,sEU(zN#hD!wMY/{L^6                                   )  UZend_Gdata_YouTube_Extension_AboutMe2# IZend_Gdata_YouTube_ContactFeed2$~ KZend_Gdata_YouTube_ContactEntry2#} IZend_Gdata_YouTube_CommentFeed2$| KZend_Gdata_YouTube_CommentEntry2${ KZend_Gdata_YouTube_ActivityFeed2%z MZend_Gdata_YouTube_ActivityEntry2y ;Zend_Gdata_Spreadsheets2*x WZend_Gdata_Spreadsheets_WorksheetFeed2+w YZend_Gdata_Spreadsheets_WorksheetEntry2,v [Zend_Gdata_Spreadsheets_SpreadsheetFeed2-u ]Zend_Gdata_Spreadsheets_SpreadsheetEntry2&t OZend_Gdata_Spreadsheets_ListQuery2%s MZend_Gdata_Spreadsheets_ListFeed2&r OZend_Gdata_Spreadsheets_ListEntry2/q aZend_Gdata_Spreadsheets_Extension_RowCount2-p ]Zend_Gdata_Spreadsheets_Extension_Custom2/o aZend_Gdata_Spreadsheets_Extension_ColCount2+n YZend_Gdata_Spreadsheets_Extension_Cell2*m WZend_Gdata_Spreadsheets_DocumentQuery2&l OZend_Gdata_Spreadsheets_CellQuery2%k MZend_Gdata_Spreadsheets_CellFeed2&j OZend_Gdata_Spreadsheets_CellEntry2i -Zend_Gdata_Query2h /Zend_Gdata_Photos2 g CZend_Gdata_Photos_UserQuery2f AZend_Gdata_Photos_UserFeed2 e CZend_Gdata_Photos_UserEntry2d AZend_Gdata_Photos_TagEntry2!c EZend_Gdata_Photos_PhotoQuery2 b CZend_Gdata_Photos_PhotoFeed2!a EZend_Gdata_Photos_PhotoEntry2&` OZend_Gdata_Photos_Extension_Width2'_ QZend_Gdata_Photos_Extension_Weight2(^ SZend_Gdata_Photos_Extension_Version2%] MZend_Gdata_Photos_Extension_User2*\ WZend_Gdata_Photos_Extension_Timestamp2*[ WZend_Gdata_Photos_Extension_Thumbnail2%Z MZend_Gdata_Photos_Extension_Size2)Y UZend_Gdata_Photos_Extension_Rotation2+X YZend_Gdata_Photos_Extension_QuotaLimit2-W ]Zend_Gdata_Photos_Extension_QuotaCurrent2)V UZend_Gdata_Photos_Extension_Position2(U SZend_Gdata_Photos_Extension_PhotoId23T iZend_Gdata_Photos_Extension_NumPhotosRemaining2*S WZend_Gdata_Photos_Extension_NumPhotos2)R UZend_Gdata_Photos_Extension_Nickname2%Q MZend_Gdata_Photos_Extension_Name22P gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum2)O UZend_Gdata_Photos_Extension_Location2#N IZend_Gdata_Photos_Extension_Id2'M QZend_Gdata_Photos_Extension_Height22L gZend_Gdata_Photos_Extension_CommentingEnabled2-K ]Zend_Gdata_Photos_Extension_CommentCount2'J QZend_Gdata_Photos_Extension_Client2)I UZend_Gdata_Photos_Extension_Checksum2*H WZend_Gdata_Photos_Extension_BytesUsed2(G SZend_Gdata_Photos_Extension_AlbumId2'F QZend_Gdata_Photos_Extension_Access2#E IZend_Gdata_Photos_CommentEntry2!D EZend_Gdata_Photos_AlbumQuery2 C CZend_Gdata_Photos_AlbumFeed2!B EZend_Gdata_Photos_AlbumEntry2A 3Zend_Gdata_MimeFile2@ ?Zend_Gdata_MimeBodyString2? AZend_Gdata_MediaMimeStream2> -Zend_Gdata_Media2= 7Zend_Gdata_Media_Feed2*< WZend_Gdata_Media_Extension_MediaTitle2.; _Zend_Gdata_Media_Extension_MediaThumbnail2): UZend_Gdata_Media_Extension_MediaText209 cZend_Gdata_Media_Extension_MediaRestriction2+8 YZend_Gdata_Media_Extension_MediaRating2+7 YZend_Gdata_Media_Extension_MediaPlayer2-6 ]Zend_Gdata_Media_Extension_MediaKeywords2)5 UZend_Gdata_Media_Extension_MediaHash2*4 WZend_Gdata_Media_Extension_MediaGroup203 cZend_Gdata_Media_Extension_MediaDescription2+2 YZend_Gdata_Media_Extension_MediaCredit2.1 _Zend_Gdata_Media_Extension_MediaCopyright2,0 [Zend_Gdata_Media_Extension_MediaContent2-/ ]Zend_Gdata_Media_Extension_MediaCategory2. 9Zend_Gdata_Media_Entry2- AZend_Gdata_Kind_EventEntry2, 7Zend_Gdata_HttpClient2*+ WZend_Gdata_HttpAdapterStreamingSocket2)* UZend_Gdata_HttpAdapterStreamingProxy2) /Zend_Gdata_Health2( ;Zend_Gdata_Health_Query2&' OZend_Gdata_Health_ProfileListFeed2'& QZend_Gdata_Health_ProfileListEntry2"% GZend_Gdata_Health_ProfileFeed2   \  R#i<V%m@R!



f
:
				Z	,a5U/
e>cA& RnE%V.dB                      <\ {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignature2)[ UZend_InfoCard_Xml_Security_Exception2Z ?Zend_InfoCard_Xml_KeyInfo2&Y OZend_InfoCard_Xml_KeyInfo_XmlDSig2&X OZend_InfoCard_Xml_KeyInfo_Default2'W QZend_InfoCard_Xml_KeyInfo_Abstract2 V CZend_InfoCard_Xml_Exception2#U IZend_InfoCard_Xml_EncryptedKey2$T KZend_InfoCard_Xml_EncryptedData2+S YZend_InfoCard_Xml_EncryptedData_XmlEnc2-R ]Zend_InfoCard_Xml_EncryptedData_Abstract2Q ?Zend_InfoCard_Xml_Element2 P CZend_InfoCard_Xml_Assertion2%O MZend_InfoCard_Xml_Assertion_Saml2N ;Zend_InfoCard_Exception2%M MZend_InfoCard_Exception_Abstract2L 5Zend_InfoCard_Claims2K 5Zend_InfoCard_Cipher25J mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc25I mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc24H kZend_InfoCard_Cipher_Symmetric_Adapter_Abstract2)G UZend_InfoCard_Cipher_Pki_Adapter_Rsa2.F _Zend_InfoCard_Cipher_Pki_Adapter_Abstract2#E IZend_InfoCard_Cipher_Exception2$D KZend_InfoCard_Adapter_Exception2"C GZend_InfoCard_Adapter_Default2B 1Zend_Http_Response2A ?Zend_Http_Response_Stream2@ 3Zend_Http_Exception2? 3Zend_Http_CookieJar2> -Zend_Http_Cookie2= -Zend_Http_Client2< AZend_Http_Client_Exception2"; GZend_Http_Client_Adapter_Test2$: KZend_Http_Client_Adapter_Socket2#9 IZend_Http_Client_Adapter_Proxy2'8 QZend_Http_Client_Adapter_Exception2"7 GZend_Http_Client_Adapter_Curl26 !Zend_Gdata25 1Zend_Gdata_YouTube2"4 GZend_Gdata_YouTube_VideoQuery2!3 EZend_Gdata_YouTube_VideoFeed2"2 GZend_Gdata_YouTube_VideoEntry2(1 SZend_Gdata_YouTube_UserProfileEntry2(0 SZend_Gdata_YouTube_SubscriptionFeed2)/ UZend_Gdata_YouTube_SubscriptionEntry2). UZend_Gdata_YouTube_PlaylistVideoFeed2*- WZend_Gdata_YouTube_PlaylistVideoEntry2(, SZend_Gdata_YouTube_PlaylistListFeed2)+ UZend_Gdata_YouTube_PlaylistListEntry2"* GZend_Gdata_YouTube_MediaEntry2!) EZend_Gdata_YouTube_InboxFeed2"( GZend_Gdata_YouTube_InboxEntry2)' UZend_Gdata_YouTube_Extension_VideoId2*& WZend_Gdata_YouTube_Extension_Username2*% WZend_Gdata_YouTube_Extension_Uploaded2'$ QZend_Gdata_YouTube_Extension_Token2(# SZend_Gdata_YouTube_Extension_Status2," [Zend_Gdata_YouTube_Extension_Statistics2'! QZend_Gdata_YouTube_Extension_State2(  SZend_Gdata_YouTube_Extension_School2- ]Zend_Gdata_YouTube_Extension_ReleaseDate2. _Zend_Gdata_YouTube_Extension_Relationship2* WZend_Gdata_YouTube_Extension_Recorded2& OZend_Gdata_YouTube_Extension_Racy2- ]Zend_Gdata_YouTube_Extension_QueryString2) UZend_Gdata_YouTube_Extension_Private2* WZend_Gdata_YouTube_Extension_Position2/ aZend_Gdata_YouTube_Extension_PlaylistTitle2, [Zend_Gdata_YouTube_Extension_PlaylistId2, [Zend_Gdata_YouTube_Extension_Occupation2) UZend_Gdata_YouTube_Extension_NoEmbed2' QZend_Gdata_YouTube_Extension_Music2( SZend_Gdata_YouTube_Extension_Movies2- ]Zend_Gdata_YouTube_Extension_MediaRating2, [Zend_Gdata_YouTube_Extension_MediaGroup2- ]Zend_Gdata_YouTube_Extension_MediaCredit2. _Zend_Gdata_YouTube_Extension_MediaContent2* WZend_Gdata_YouTube_Extension_Location2& OZend_Gdata_YouTube_Extension_Link2* WZend_Gdata_YouTube_Extension_LastName2* WZend_Gdata_YouTube_Extension_Hometown2)
 UZend_Gdata_YouTube_Extension_Hobbies2(	 SZend_Gdata_YouTube_Extension_Gender2+ YZend_Gdata_YouTube_Extension_FirstName2* WZend_Gdata_YouTube_Extension_Duration2- ]Zend_Gdata_YouTube_Extension_Description2+ YZend_Gdata_YouTube_Extension_CountHint2) UZend_Gdata_YouTube_Extension_Control2) UZend_Gdata_YouTube_Extension_Company2' QZend_Gdata_YouTube_Extension_Books2% MZend_Gdata_YouTube_Extension_Age2   r dAtU2}`G5X;
kM0




t
R
#					H	\>'dP+|hM,fE*
uQ@$oO/iEuV+                                     N /Zend_Mail_Storage2'M QZend_Mail_Storage_Writable_Maildir2L 9Zend_Mail_Storage_Pop32K 9Zend_Mail_Storage_Mbox2J ?Zend_Mail_Storage_Maildir2I 9Zend_Mail_Storage_Imap2H =Zend_Mail_Storage_Folder2"G GZend_Mail_Storage_Folder_Mbox2%F MZend_Mail_Storage_Folder_Maildir2 E CZend_Mail_Storage_Exception2D AZend_Mail_Storage_Abstract2C ;Zend_Mail_Protocol_Smtp2'B QZend_Mail_Protocol_Smtp_Auth_Plain2'A QZend_Mail_Protocol_Smtp_Auth_Login2)@ UZend_Mail_Protocol_Smtp_Auth_Crammd52? ;Zend_Mail_Protocol_Pop32> ;Zend_Mail_Protocol_Imap2!= EZend_Mail_Protocol_Exception2 < CZend_Mail_Protocol_Abstract2; )Zend_Mail_Part2: 3Zend_Mail_Part_File29 /Zend_Mail_Message28 9Zend_Mail_Message_File27 3Zend_Mail_Exception26 Zend_Log2 5 CZend_Log_Writer_ZendMonitor24 9Zend_Log_Writer_Syslog23 9Zend_Log_Writer_Stream22 5Zend_Log_Writer_Null21 5Zend_Log_Writer_Mock20 5Zend_Log_Writer_Mail2/ ;Zend_Log_Writer_Firebug2. 1Zend_Log_Writer_Db2- =Zend_Log_Writer_Abstract2, 9Zend_Log_Formatter_Xml2+ ?Zend_Log_Formatter_Simple2* AZend_Log_Formatter_Firebug2) =Zend_Log_Filter_Suppress2( =Zend_Log_Filter_Priority2' ;Zend_Log_Filter_Message2& =Zend_Log_Filter_Abstract2% 1Zend_Log_Exception2$ #Zend_Locale2# -Zend_Locale_Math2" =Zend_Locale_Math_PhpMath2! AZend_Locale_Math_Exception2  1Zend_Locale_Format2 7Zend_Locale_Exception2 -Zend_Locale_Data2! EZend_Locale_Data_Translation2 #Zend_Loader2 =Zend_Loader_PluginLoader2' QZend_Loader_PluginLoader_Exception2 7Zend_Loader_Exception2 9Zend_Loader_Autoloader2$ KZend_Loader_Autoloader_Resource2 Zend_Ldap2 )Zend_Ldap_Node2 7Zend_Ldap_Node_Schema2# IZend_Ldap_Node_Schema_OpenLdap2/ aZend_Ldap_Node_Schema_ObjectClass_OpenLdap26 oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectory2 AZend_Ldap_Node_Schema_Item21 eZend_Ldap_Node_Schema_AttributeType_OpenLdap28 sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory2* WZend_Ldap_Node_Schema_ActiveDirectory2 9Zend_Ldap_Node_RootDse2$ KZend_Ldap_Node_RootDse_OpenLdap2&
 OZend_Ldap_Node_RootDse_eDirectory2+	 YZend_Ldap_Node_RootDse_ActiveDirectory2 ?Zend_Ldap_Node_Collection2$ KZend_Ldap_Node_ChildrenIterator2 ;Zend_Ldap_Node_Abstract2 9Zend_Ldap_Ldif_Encoder2 -Zend_Ldap_Filter2 ;Zend_Ldap_Filter_String2 3Zend_Ldap_Filter_Or2 5Zend_Ldap_Filter_Not2  7Zend_Ldap_Filter_Mask2 =Zend_Ldap_Filter_Logical2~ AZend_Ldap_Filter_Exception2} 5Zend_Ldap_Filter_And2| ?Zend_Ldap_Filter_Abstract2{ 3Zend_Ldap_Exception2z %Zend_Ldap_Dn2y 3Zend_Ldap_Converter2x 5Zend_Ldap_Collection2*w WZend_Ldap_Collection_Iterator_Default2v 3Zend_Ldap_Attribute2u #Zend_Layout2t 7Zend_Layout_Exception2)s UZend_Layout_Controller_Plugin_Layout20r cZend_Layout_Controller_Action_Helper_Layout2q Zend_Json2p -Zend_Json_Server2o 5Zend_Json_Server_Smd2!n EZend_Json_Server_Smd_Service2m ?Zend_Json_Server_Response2#l IZend_Json_Server_Response_Http2k =Zend_Json_Server_Request2"j GZend_Json_Server_Request_Http2i AZend_Json_Server_Exception2h 9Zend_Json_Server_Error2g 9Zend_Json_Server_Cache2f )Zend_Json_Expr2e 3Zend_Json_Exception2d /Zend_Json_Encoder2c /Zend_Json_Decoder2b 'Zend_InfoCard2-a ]Zend_InfoCard_Xml_SecurityTokenReference2` AZend_InfoCard_Xml_Security2)_ UZend_InfoCard_Xml_Security_Transform24^ kZend_InfoCard_Xml_Security_Transform_XmlExcC14N23] iZend_InfoCard_Xml_Security_Transform_Exception2   u o]?X2{]I+	sO2{`A




t
S
9
					p	K	%	jP9'lR8lT2pO6#vX.	g?{MiK-                              C 5Zend_Pdf_Action_Hide2B 7Zend_Pdf_Action_GoToR2A 7Zend_Pdf_Action_GoToE2@ AZend_Pdf_Action_GoTo3DView2? 5Zend_Pdf_Action_GoTo2> )Zend_Paginator2-= ]Zend_Paginator_SerializableLimitIterator2*< WZend_Paginator_ScrollingStyle_Sliding2*; WZend_Paginator_ScrollingStyle_Jumping2*: WZend_Paginator_ScrollingStyle_Elastic2&9 OZend_Paginator_ScrollingStyle_All28 =Zend_Paginator_Exception2 7 CZend_Paginator_Adapter_Null2$6 KZend_Paginator_Adapter_Iterator2)5 UZend_Paginator_Adapter_DbTableSelect2$4 KZend_Paginator_Adapter_DbSelect2!3 EZend_Paginator_Adapter_Array22 #Zend_OpenId21 5Zend_OpenId_Provider20 ?Zend_OpenId_Provider_User2&/ OZend_OpenId_Provider_User_Session2!. EZend_OpenId_Provider_Storage2&- OZend_OpenId_Provider_Storage_File2, 7Zend_OpenId_Extension2+ AZend_OpenId_Extension_Sreg2* 7Zend_OpenId_Exception2) 5Zend_OpenId_Consumer2!( EZend_OpenId_Consumer_Storage2&' OZend_OpenId_Consumer_Storage_File2& !Zend_Oauth2% -Zend_Oauth_Token2$ =Zend_Oauth_Token_Request2'# QZend_Oauth_Token_AuthorizedRequest2" ;Zend_Oauth_Token_Access2+! YZend_Oauth_Signature_SignatureAbstract2  =Zend_Oauth_Signature_Rsa2# IZend_Oauth_Signature_Plaintext2 ?Zend_Oauth_Signature_Hmac2 +Zend_Oauth_Http2 ;Zend_Oauth_Http_Utility2& OZend_Oauth_Http_UserAuthorization2! EZend_Oauth_Http_RequestToken2  CZend_Oauth_Http_AccessToken2 5Zend_Oauth_Exception2 3Zend_Oauth_Consumer2 /Zend_Oauth_Config2 /Zend_Oauth_Client2 +Zend_Navigation2 5Zend_Navigation_Page2 =Zend_Navigation_Page_Uri2 =Zend_Navigation_Page_Mvc2 ?Zend_Navigation_Exception2 ?Zend_Navigation_Container2 Zend_Mime2 )Zend_Mime_Part2 /Zend_Mime_Message2 3Zend_Mime_Exception2
 -Zend_Mime_Decode2	 #Zend_Memory2 /Zend_Memory_Value2 3Zend_Memory_Manager2 7Zend_Memory_Exception2 7Zend_Memory_Container2" GZend_Memory_Container_Movable2! EZend_Memory_Container_Locked2! EZend_Memory_AccessController2 3Zend_Measure_Weight2  3Zend_Measure_Volume2% MZend_Measure_Viscosity_Kinematic2#~ IZend_Measure_Viscosity_Dynamic2} 3Zend_Measure_Torque2| /Zend_Measure_Time2{ =Zend_Measure_Temperature2z 1Zend_Measure_Speed2y 7Zend_Measure_Pressure2x 1Zend_Measure_Power2w 3Zend_Measure_Number2v 9Zend_Measure_Lightness2u 3Zend_Measure_Length2t ?Zend_Measure_Illumination2s 9Zend_Measure_Frequency2r 1Zend_Measure_Force2q =Zend_Measure_Flow_Volume2p 9Zend_Measure_Flow_Mole2o 9Zend_Measure_Flow_Mass2n 9Zend_Measure_Exception2m 3Zend_Measure_Energy2l 5Zend_Measure_Density2k 5Zend_Measure_Current2 j CZend_Measure_Cooking_Weight2 i CZend_Measure_Cooking_Volume2h =Zend_Measure_Capacitance2g 3Zend_Measure_Binary2f /Zend_Measure_Area2e 1Zend_Measure_Angle2d ?Zend_Measure_Acceleration2c 7Zend_Measure_Abstract2b #Zend_Markup2a 7Zend_Markup_TokenList2` /Zend_Markup_Token2*_ WZend_Markup_Renderer_RendererAbstract2^ ?Zend_Markup_Renderer_Html2"] GZend_Markup_Renderer_Html_Url2#\ IZend_Markup_Renderer_Html_List2"[ GZend_Markup_Renderer_Html_Img2+Z YZend_Markup_Renderer_Html_HtmlAbstract2#Y IZend_Markup_Renderer_Html_Code2#X IZend_Markup_Renderer_Exception2W AZend_Markup_Parser_Textile2!V EZend_Markup_Parser_Exception2U ?Zend_Markup_Parser_Bbcode2T 7Zend_Markup_Exception2S Zend_Mail2R =Zend_Mail_Transport_Smtp2!Q EZend_Mail_Transport_Sendmail2"P GZend_Mail_Transport_Exception2!O EZend_Mail_Transport_Abstract2   e }_=yY=%yO,uZCb5



v
Y
:
					q	Q	&sZ4{U3yX.yX8	c:r7~AM                                                            ;( yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic25' mZend_Pdf_Resource_Font_Simple_Standard_TimesBold22& gZend_Pdf_Resource_Font_Simple_Standard_Symbol2<% {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaOblique2A$ Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique29# uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold25" mZend_Pdf_Resource_Font_Simple_Standard_Helvetica2:! wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique2>  Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique27 qZend_Pdf_Resource_Font_Simple_Standard_CourierBold23 iZend_Pdf_Resource_Font_Simple_Standard_Courier2) UZend_Pdf_Resource_Font_Simple_Parsed22 gZend_Pdf_Resource_Font_Simple_Parsed_TrueType2* WZend_Pdf_Resource_Font_FontDescriptor2% MZend_Pdf_Resource_Font_Extracted2# IZend_Pdf_Resource_Font_CidFont2, [Zend_Pdf_Resource_Font_CidFont_TrueType23 iZend_Pdf_RecursivelyIteratableObjectsContainer2 +Zend_Pdf_Parser2 'Zend_Pdf_Page2 -Zend_Pdf_Outline2 ;Zend_Pdf_Outline_Loaded2 =Zend_Pdf_Outline_Created2 /Zend_Pdf_NameTree2 )Zend_Pdf_Image2 'Zend_Pdf_Font2 ?Zend_Pdf_Filter_RunLength2  CZend_Pdf_Filter_Compression2$ KZend_Pdf_Filter_Compression_Lzw2& OZend_Pdf_Filter_Compression_Flate2
 =Zend_Pdf_Filter_AsciiHex2	 ;Zend_Pdf_Filter_Ascii852" GZend_Pdf_FileParserDataSource2) UZend_Pdf_FileParserDataSource_String2' QZend_Pdf_FileParserDataSource_File2 3Zend_Pdf_FileParser2 ?Zend_Pdf_FileParser_Image2" GZend_Pdf_FileParser_Image_Png2 =Zend_Pdf_FileParser_Font2& OZend_Pdf_FileParser_Font_OpenType2/  aZend_Pdf_FileParser_Font_OpenType_TrueType2 1Zend_Pdf_Exception2~ ;Zend_Pdf_ElementFactory2"} GZend_Pdf_ElementFactory_Proxy2| -Zend_Pdf_Element2{ ;Zend_Pdf_Element_String2#z IZend_Pdf_Element_String_Binary2y ;Zend_Pdf_Element_Stream2x AZend_Pdf_Element_Reference2%w MZend_Pdf_Element_Reference_Table2'v QZend_Pdf_Element_Reference_Context2u ;Zend_Pdf_Element_Object2#t IZend_Pdf_Element_Object_Stream2s =Zend_Pdf_Element_Numeric2r 7Zend_Pdf_Element_Null2q 7Zend_Pdf_Element_Name2 p CZend_Pdf_Element_Dictionary2o =Zend_Pdf_Element_Boolean2n 9Zend_Pdf_Element_Array2m 5Zend_Pdf_Destination2l ?Zend_Pdf_Destination_Zoom2!k EZend_Pdf_Destination_Unknown2j AZend_Pdf_Destination_Named2'i QZend_Pdf_Destination_FitVertically2&h OZend_Pdf_Destination_FitRectangle2)g UZend_Pdf_Destination_FitHorizontally22f gZend_Pdf_Destination_FitBoundingBoxVertically24e kZend_Pdf_Destination_FitBoundingBoxHorizontally2(d SZend_Pdf_Destination_FitBoundingBox2c =Zend_Pdf_Destination_Fit2"b GZend_Pdf_Destination_Explicit2a )Zend_Pdf_Color2` 1Zend_Pdf_Color_Rgb2_ 3Zend_Pdf_Color_Html2^ =Zend_Pdf_Color_GrayScale2] 3Zend_Pdf_Color_Cmyk2\ 'Zend_Pdf_Cmap2[ AZend_Pdf_Cmap_TrimmedTable2!Z EZend_Pdf_Cmap_SegmentToDelta2Y AZend_Pdf_Cmap_ByteEncoding2&X OZend_Pdf_Cmap_ByteEncoding_Static2W 3Zend_Pdf_Annotation2V =Zend_Pdf_Annotation_Text2U AZend_Pdf_Annotation_Markup2T =Zend_Pdf_Annotation_Link2'S QZend_Pdf_Annotation_FileAttachment2R +Zend_Pdf_Action2Q 3Zend_Pdf_Action_URI2P ;Zend_Pdf_Action_Unknown2O 7Zend_Pdf_Action_Trans2N 9Zend_Pdf_Action_Thread2M AZend_Pdf_Action_SubmitForm2L 7Zend_Pdf_Action_Sound2 K CZend_Pdf_Action_SetOCGState2J ?Zend_Pdf_Action_ResetForm2I ?Zend_Pdf_Action_Rendition2H 7Zend_Pdf_Action_Named2G 7Zend_Pdf_Action_Movie2F 9Zend_Pdf_Action_Launch2E AZend_Pdf_Action_JavaScript2D AZend_Pdf_Action_ImportData2   b  O mH(wW>dC qM/




}
V
;
					u	I	$	b@	fJ2UI_5HlCl:                        '
 QZend_Search_Lucene_Index_FieldInfo2(	 SZend_Search_Lucene_Index_DocsFilter2. _Zend_Search_Lucene_Index_DictionaryLoader2! EZend_Search_Lucene_FSMAction2 9Zend_Search_Lucene_FSM2 =Zend_Search_Lucene_Field2! EZend_Search_Lucene_Exception2  CZend_Search_Lucene_Document2% MZend_Search_Lucene_Document_Xlsx2% MZend_Search_Lucene_Document_Pptx2(  SZend_Search_Lucene_Document_OpenXml2% MZend_Search_Lucene_Document_Html2*~ WZend_Search_Lucene_Document_Exception2%} MZend_Search_Lucene_Document_Docx2,| [Zend_Search_Lucene_Analysis_TokenFilter26{ oZend_Search_Lucene_Analysis_TokenFilter_StopWords27z qZend_Search_Lucene_Analysis_TokenFilter_ShortWords2:y wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf826x oZend_Search_Lucene_Analysis_TokenFilter_LowerCase2&w OZend_Search_Lucene_Analysis_Token2)v UZend_Search_Lucene_Analysis_Analyzer20u cZend_Search_Lucene_Analysis_Analyzer_Common28t sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num2Is Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive25r mZend_Search_Lucene_Analysis_Analyzer_Common_Utf82Fq Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive28p sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum2Io Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive25n mZend_Search_Lucene_Analysis_Analyzer_Common_Text2Fm Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive2l 7Zend_Search_Exception2k -Zend_Rest_Server2j AZend_Rest_Server_Exception2i +Zend_Rest_Route2h 3Zend_Rest_Exception2g 5Zend_Rest_Controller2f -Zend_Rest_Client2e ;Zend_Rest_Client_Result2&d OZend_Rest_Client_Result_Exception2c AZend_Rest_Client_Exception2b 'Zend_Registry2a =Zend_Reflection_Property2` ?Zend_Reflection_Parameter2_ 9Zend_Reflection_Method2^ =Zend_Reflection_Function2] 5Zend_Reflection_File2\ ?Zend_Reflection_Extension2[ ?Zend_Reflection_Exception2Z =Zend_Reflection_Docblock2!Y EZend_Reflection_Docblock_Tag2(X SZend_Reflection_Docblock_Tag_Return2'W QZend_Reflection_Docblock_Tag_Param2V 7Zend_Reflection_Class2U !Zend_Queue2T 9Zend_Queue_Stomp_Frame2S ;Zend_Queue_Stomp_Client2'R QZend_Queue_Stomp_Client_Connection2Q 1Zend_Queue_Message2#P IZend_Queue_Message_PlatformJob2 O CZend_Queue_Message_Iterator2N 5Zend_Queue_Exception2(M SZend_Queue_Adapter_PlatformJobQueue2L ;Zend_Queue_Adapter_Null2!K EZend_Queue_Adapter_Memcacheq2J 7Zend_Queue_Adapter_Db2 I CZend_Queue_Adapter_Db_Queue2"H GZend_Queue_Adapter_Db_Message2G =Zend_Queue_Adapter_Array2'F QZend_Queue_Adapter_AdapterAbstract2 E CZend_Queue_Adapter_Activemq2D -Zend_ProgressBar2C AZend_ProgressBar_Exception2B =Zend_ProgressBar_Adapter2$A KZend_ProgressBar_Adapter_JsPush2$@ KZend_ProgressBar_Adapter_JsPull2'? QZend_ProgressBar_Adapter_Exception2%> MZend_ProgressBar_Adapter_Console2= Zend_Pdf2!< EZend_Pdf_UpdateInfoContainer2; -Zend_Pdf_Trailer2: ;Zend_Pdf_Trailer_Keeper29 AZend_Pdf_Trailer_Generator28 +Zend_Pdf_Target27 )Zend_Pdf_Style26 7Zend_Pdf_StringParser25 /Zend_Pdf_Resource2#4 IZend_Pdf_Resource_ImageFactory23 ;Zend_Pdf_Resource_Image2!2 EZend_Pdf_Resource_Image_Tiff2 1 CZend_Pdf_Resource_Image_Png2!0 EZend_Pdf_Resource_Image_Jpeg2/ 9Zend_Pdf_Resource_Font2!. EZend_Pdf_Resource_Font_Type02"- GZend_Pdf_Resource_Font_Simple2+, YZend_Pdf_Resource_Font_Simple_Standard28+ sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats26* oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman27) qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic2   Y  f*wO(m7uC`*



v
B
				U	'Y,i;zK#Z1eC+mH#|V2	x[6  %c MZend_Service_Amazon_Ec2_Abstract2'b QZend_Service_Amazon_CustomerReview2$a KZend_Service_Amazon_Accessories2!` EZend_Service_Amazon_Abstract2_ 5Zend_Service_Akismet2^ 7Zend_Service_Abstract2] 9Zend_Server_Reflection2'\ QZend_Server_Reflection_ReturnValue2%[ MZend_Server_Reflection_Prototype2%Z MZend_Server_Reflection_Parameter2 Y CZend_Server_Reflection_Node2"X GZend_Server_Reflection_Method2$W KZend_Server_Reflection_Function2-V ]Zend_Server_Reflection_Function_Abstract2%U MZend_Server_Reflection_Exception2!T EZend_Server_Reflection_Class2!S EZend_Server_Method_Prototype2!R EZend_Server_Method_Parameter2"Q GZend_Server_Method_Definition2 P CZend_Server_Method_Callback2O 7Zend_Server_Exception2N 9Zend_Server_Definition2M /Zend_Server_Cache2L 5Zend_Server_Abstract2K +Zend_Serializer2J ?Zend_Serializer_Exception2!I EZend_Serializer_Adapter_Wddx2)H UZend_Serializer_Adapter_PythonPickle2)G UZend_Serializer_Adapter_PhpSerialize2$F KZend_Serializer_Adapter_PhpCode2!E EZend_Serializer_Adapter_Json2%D MZend_Serializer_Adapter_Igbinary2!C EZend_Serializer_Adapter_Amf32!B EZend_Serializer_Adapter_Amf02,A [Zend_Serializer_Adapter_AdapterAbstract2@ 1Zend_Search_Lucene20? cZend_Search_Lucene_TermStreamsPriorityQueue2$> KZend_Search_Lucene_Storage_File2+= YZend_Search_Lucene_Storage_File_Memory2/< aZend_Search_Lucene_Storage_File_Filesystem2); UZend_Search_Lucene_Storage_Directory24: kZend_Search_Lucene_Storage_Directory_Filesystem2%9 MZend_Search_Lucene_Search_Weight2*8 WZend_Search_Lucene_Search_Weight_Term2,7 [Zend_Search_Lucene_Search_Weight_Phrase2/6 aZend_Search_Lucene_Search_Weight_MultiTerm2+5 YZend_Search_Lucene_Search_Weight_Empty2-4 ]Zend_Search_Lucene_Search_Weight_Boolean2)3 UZend_Search_Lucene_Search_Similarity212 eZend_Search_Lucene_Search_Similarity_Default2)1 UZend_Search_Lucene_Search_QueryToken230 iZend_Search_Lucene_Search_QueryParserException21/ eZend_Search_Lucene_Search_QueryParserContext2*. WZend_Search_Lucene_Search_QueryParser2)- UZend_Search_Lucene_Search_QueryLexer2', QZend_Search_Lucene_Search_QueryHit2)+ UZend_Search_Lucene_Search_QueryEntry2.* _Zend_Search_Lucene_Search_QueryEntry_Term22) gZend_Search_Lucene_Search_QueryEntry_Subquery20( cZend_Search_Lucene_Search_QueryEntry_Phrase2$' KZend_Search_Lucene_Search_Query2-& ]Zend_Search_Lucene_Search_Query_Wildcard2)% UZend_Search_Lucene_Search_Query_Term2*$ WZend_Search_Lucene_Search_Query_Range22# gZend_Search_Lucene_Search_Query_Preprocessing27" qZend_Search_Lucene_Search_Query_Preprocessing_Term29! uZend_Search_Lucene_Search_Query_Preprocessing_Phrase28  sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy2+ YZend_Search_Lucene_Search_Query_Phrase2. _Zend_Search_Lucene_Search_Query_MultiTerm22 gZend_Search_Lucene_Search_Query_Insignificant2* WZend_Search_Lucene_Search_Query_Fuzzy2* WZend_Search_Lucene_Search_Query_Empty2, [Zend_Search_Lucene_Search_Query_Boolean22 gZend_Search_Lucene_Search_Highlighter_Default2: wZend_Search_Lucene_Search_BooleanExpressionRecognizer2 =Zend_Search_Lucene_Proxy2% MZend_Search_Lucene_PriorityQueue2/ aZend_Search_Lucene_Interface_MultiSearcher2# IZend_Search_Lucene_LockManager2$ KZend_Search_Lucene_Index_Writer20 cZend_Search_Lucene_Index_TermsPriorityQueue2& OZend_Search_Lucene_Index_TermInfo2" GZend_Search_Lucene_Index_Term2+ YZend_Search_Lucene_Index_SegmentWriter28 sZend_Search_Lucene_Index_SegmentWriter_StreamWriter2: wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter2+ YZend_Search_Lucene_Index_SegmentMerger2) UZend_Search_Lucene_Index_SegmentInfo2   G  U+yQ*`>d;eA




>
				g	 TR"N=1)s[                          O* Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequest2U) +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequest2U( +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequest2V' -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequest2a& CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequest2Z% 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequest2T$ )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequest2R# %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequest2Y" 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequest2Q! #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequest2Q  #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequest2a CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequest2N Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformation2L Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalance2J Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool2- ]Zend_Service_DeveloperGarden_LocalSearch2> Zend_Service_DeveloperGarden_LocalSearch_SearchParameters27 qZend_Service_DeveloperGarden_LocalSearch_Exception2, [Zend_Service_DeveloperGarden_IpLocation26 oZend_Service_DeveloperGarden_IpLocation_IpAddress2+ YZend_Service_DeveloperGarden_Exception2, [Zend_Service_DeveloperGarden_Credential20 cZend_Service_DeveloperGarden_ConferenceCall2C Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatus2C Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail2< {Zend_Service_DeveloperGarden_ConferenceCall_Participant2: wZend_Service_DeveloperGarden_ConferenceCall_Exception2D 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceSchedule2B Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail2C Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount2- ]Zend_Service_DeveloperGarden_Client_Soap22 gZend_Service_DeveloperGarden_Client_Exception27
 qZend_Service_DeveloperGarden_Client_ClientAbstract21	 eZend_Service_DeveloperGarden_BaseUserService2A Zend_Service_DeveloperGarden_BaseUserService_AccountBalance2 9Zend_Service_Delicious2& OZend_Service_Delicious_SimplePost2$ KZend_Service_Delicious_PostList2  CZend_Service_Delicious_Post2% MZend_Service_Delicious_Exception2  CZend_Service_Audioscrobbler2 3Zend_Service_Amazon2  ;Zend_Service_Amazon_Sqs2& OZend_Service_Amazon_Sqs_Exception2'~ QZend_Service_Amazon_SimilarProduct2} 9Zend_Service_Amazon_S32"| GZend_Service_Amazon_S3_Stream2%{ MZend_Service_Amazon_S3_Exception2"z GZend_Service_Amazon_ResultSet2y ?Zend_Service_Amazon_Query2!x EZend_Service_Amazon_OfferSet2w ?Zend_Service_Amazon_Offer2&v OZend_Service_Amazon_ListmaniaList2u =Zend_Service_Amazon_Item2t ?Zend_Service_Amazon_Image2"s GZend_Service_Amazon_Exception2(r SZend_Service_Amazon_EditorialReview2q ;Zend_Service_Amazon_Ec22+p YZend_Service_Amazon_Ec2_Securitygroups2%o MZend_Service_Amazon_Ec2_Response2#n IZend_Service_Amazon_Ec2_Region2$m KZend_Service_Amazon_Ec2_Keypair2%l MZend_Service_Amazon_Ec2_Instance2-k ]Zend_Service_Amazon_Ec2_Instance_Windows2.j _Zend_Service_Amazon_Ec2_Instance_Reserved2"i GZend_Service_Amazon_Ec2_Image2&h OZend_Service_Amazon_Ec2_Exception2&g OZend_Service_Amazon_Ec2_Elasticip2 f CZend_Service_Amazon_Ec2_Ebs2'e QZend_Service_Amazon_Ec2_CloudWatch2.d _Zend_Service_Amazon_Ec2_Availabilityzones2   / } C;v SQ

h
#			R	/{[X;-o9  }                       \Y 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseType2XX 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponse2gW OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseType2cV GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse2`U AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType2\T 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponse2ZS 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseType2VR -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponse2XQ 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseType2TP )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse2_O ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType2[N 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponse2WM /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType2SL 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponse2QK #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstract2SJ 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponse2JI Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType2gH OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseType2cG GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponse2WF /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse2UE +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponse2SD 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse23C iZend_Service_DeveloperGarden_Response_BaseType2JB Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstract2CA Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCall2G@ Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced2=? }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCall2A> Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatus2A= Zend_Service_DeveloperGarden_Request_SmsValidation_Validate2N< Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeyword2C; Zend_Service_DeveloperGarden_Request_SmsValidation_Invalidate2L: Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbers2B9 Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract298 uZend_Service_DeveloperGarden_Request_SendSms_SendSMS2>7 Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS296 uZend_Service_DeveloperGarden_Request_RequestAbstract2I5 Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequest2E4 Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest233 iZend_Service_DeveloperGarden_Request_Exception2R2 %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequest2Y1 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequest2d0 IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequest2Q/ #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequest2R. %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequest2Y- 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequest2d, IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequest2Q+ #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequest2   7  F7fF


t
'			=VuB@TgP#]7                   $ KZend_Service_Nirvanix_Exception2 7Zend_Service_LiveDocx2$ KZend_Service_LiveDocx_MailMerge2$ KZend_Service_LiveDocx_Exception2 3Zend_Service_Flickr2" GZend_Service_Flickr_ResultSet2
 AZend_Service_Flickr_Result2	 ?Zend_Service_Flickr_Image2 9Zend_Service_Exception2+ YZend_Service_DeveloperGarden_VoiceCall2/ aZend_Service_DeveloperGarden_SmsValidation2) UZend_Service_DeveloperGarden_SendSms25 mZend_Service_DeveloperGarden_SecurityTokenServer2; yZend_Service_DeveloperGarden_SecurityTokenServer_Cache2K Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstract2L Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponse2P  !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponse2G Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponse2J~ Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponse2K} Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2Response2L| Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponse2I{ Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumber2Wz /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponse2Jy Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponse2Ux +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponse2Cw Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponse2Cv Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstract2Hu Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponse2Ut +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponse2Qs #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponse2Ir Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception2;q yZend_Service_DeveloperGarden_Response_ResponseAbstract2Op Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseType2Ko Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponse2An Zend_Service_DeveloperGarden_Response_IpLocation_RegionType2Km Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseType2Gl Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponse2Lk Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationType2Ij Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType2>i Zend_Service_DeveloperGarden_Response_IpLocation_CityType24h kZend_Service_DeveloperGarden_Response_Exception2Tg )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse2[f 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponse2fe MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponse2Sd 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponse2Tc )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse2[b 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponse2fa MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponse2S` 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponse2U_ +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType2Q^ #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse2[] 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseType2W\ /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse2[[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseType2WZ /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse2   W  a8wR/[-vQ'jJ#



e
0
				Y	,zL&w5|Pk:
f.Rz?k?           &g OZend_Service_Yahoo_LocalResultSet2#f IZend_Service_Yahoo_LocalResult2+e YZend_Service_Yahoo_InlinkDataResultSet2(d SZend_Service_Yahoo_InlinkDataResult2&c OZend_Service_Yahoo_ImageResultSet2#b IZend_Service_Yahoo_ImageResult2a =Zend_Service_Yahoo_Image2&` OZend_Service_WindowsAzure_Storage24_ kZend_Service_WindowsAzure_Storage_TableInstance27^ qZend_Service_WindowsAzure_Storage_TableEntityQuery22] gZend_Service_WindowsAzure_Storage_TableEntity2,\ [Zend_Service_WindowsAzure_Storage_Table27[ qZend_Service_WindowsAzure_Storage_SignedIdentifier23Z iZend_Service_WindowsAzure_Storage_QueueMessage24Y kZend_Service_WindowsAzure_Storage_QueueInstance2,X [Zend_Service_WindowsAzure_Storage_Queue29W uZend_Service_WindowsAzure_Storage_DynamicTableEntity23V iZend_Service_WindowsAzure_Storage_BlobInstance24U kZend_Service_WindowsAzure_Storage_BlobContainer2+T YZend_Service_WindowsAzure_Storage_Blob22S gZend_Service_WindowsAzure_Storage_Blob_Stream2;R yZend_Service_WindowsAzure_Storage_BatchStorageAbstract2,Q [Zend_Service_WindowsAzure_Storage_Batch2-P ]Zend_Service_WindowsAzure_SessionHandler2>O Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract21N eZend_Service_WindowsAzure_RetryPolicy_RetryN22M gZend_Service_WindowsAzure_RetryPolicy_NoRetry24L kZend_Service_WindowsAzure_RetryPolicy_Exception2(K SZend_Service_WindowsAzure_Exception28J sZend_Service_WindowsAzure_Credentials_SharedKeyLite24I kZend_Service_WindowsAzure_Credentials_SharedKey2AH Zend_Service_WindowsAzure_Credentials_SharedAccessSignature2>G Zend_Service_WindowsAzure_Credentials_CredentialsAbstract2F 5Zend_Service_Twitter2 E CZend_Service_Twitter_Search2#D IZend_Service_Twitter_Exception2C ;Zend_Service_Technorati2#B IZend_Service_Technorati_Weblog2"A GZend_Service_Technorati_Utils2*@ WZend_Service_Technorati_TagsResultSet2'? QZend_Service_Technorati_TagsResult2)> UZend_Service_Technorati_TagResultSet2&= OZend_Service_Technorati_TagResult2,< [Zend_Service_Technorati_SearchResultSet2); UZend_Service_Technorati_SearchResult2&: OZend_Service_Technorati_ResultSet2#9 IZend_Service_Technorati_Result2*8 WZend_Service_Technorati_KeyInfoResult2*7 WZend_Service_Technorati_GetInfoResult2&6 OZend_Service_Technorati_Exception215 eZend_Service_Technorati_DailyCountsResultSet2.4 _Zend_Service_Technorati_DailyCountsResult2,3 [Zend_Service_Technorati_CosmosResultSet2)2 UZend_Service_Technorati_CosmosResult2+1 YZend_Service_Technorati_BlogInfoResult2#0 IZend_Service_Technorati_Author2/ ;Zend_Service_StrikeIron2(. SZend_Service_StrikeIron_ZipCodeInfo22- gZend_Service_StrikeIron_USAddressVerification2-, ]Zend_Service_StrikeIron_SalesUseTaxBasic2&+ OZend_Service_StrikeIron_Exception2&* OZend_Service_StrikeIron_Decorator2!) EZend_Service_StrikeIron_Base2( ;Zend_Service_SlideShare2&' OZend_Service_SlideShare_SlideShow2&& OZend_Service_SlideShare_Exception2% 1Zend_Service_Simpy2$$ KZend_Service_Simpy_WatchlistSet2*# WZend_Service_Simpy_WatchlistFilterSet2'" QZend_Service_Simpy_WatchlistFilter2!! EZend_Service_Simpy_Watchlist2  ?Zend_Service_Simpy_TagSet2 9Zend_Service_Simpy_Tag2 AZend_Service_Simpy_NoteSet2 ;Zend_Service_Simpy_Note2 AZend_Service_Simpy_LinkSet2! EZend_Service_Simpy_LinkQuery2 ;Zend_Service_Simpy_Link2 9Zend_Service_ReCaptcha2$ KZend_Service_ReCaptcha_Response2$ KZend_Service_ReCaptcha_MailHide2. _Zend_Service_ReCaptcha_MailHide_Exception2% MZend_Service_ReCaptcha_Exception2 7Zend_Service_Nirvanix2# IZend_Service_Nirvanix_Response2) UZend_Service_Nirvanix_Namespace_Imfs2) UZend_Service_Nirvanix_Namespace_Base2   a  Z8uZ<U@v]:! |H




W
.
							j	L	`5~Lh8{S)z_I!p6 ;S                  8H sZend_Tool_Framework_Client_Interactive_InputRequest28G sZend_Tool_Framework_Client_Interactive_InputHandler2)F UZend_Tool_Framework_Client_Exception2'E QZend_Tool_Framework_Client_Console2DD 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Indention2DC 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizer2CB Zend_Tool_Framework_Client_Console_ResponseDecorator_Blockize2FA Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter20@ cZend_Tool_Framework_Client_Console_Manifest22? gZend_Tool_Framework_Client_Console_HelpSystem26> oZend_Tool_Framework_Client_Console_ArgumentParser2&= OZend_Tool_Framework_Client_Config2(< SZend_Tool_Framework_Client_Abstract2*; WZend_Tool_Framework_Action_Repository2): UZend_Tool_Framework_Action_Exception2$9 KZend_Tool_Framework_Action_Base28 'Zend_TimeSync27 1Zend_TimeSync_Sntp26 9Zend_TimeSync_Protocol25 /Zend_TimeSync_Ntp24 ;Zend_TimeSync_Exception23 +Zend_Text_Table22 3Zend_Text_Table_Row21 ?Zend_Text_Table_Exception2&0 OZend_Text_Table_Decorator_Unicode2$/ KZend_Text_Table_Decorator_Ascii2. 9Zend_Text_Table_Column2- 3Zend_Text_MultiByte2, -Zend_Text_Figlet2+ AZend_Text_Figlet_Exception2* 3Zend_Text_Exception2&) OZend_Test_PHPUnit_Db_SimpleTester2,( [Zend_Test_PHPUnit_Db_Operation_Truncate2*' WZend_Test_PHPUnit_Db_Operation_Insert2-& ]Zend_Test_PHPUnit_Db_Operation_DeleteAll2*% WZend_Test_PHPUnit_Db_Metadata_Generic2#$ IZend_Test_PHPUnit_Db_Exception2,# [Zend_Test_PHPUnit_Db_DataSet_QueryTable2." _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet20! cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet2)  UZend_Test_PHPUnit_Db_DataSet_DbTable2* WZend_Test_PHPUnit_Db_DataSet_DbRowset2$ KZend_Test_PHPUnit_Db_Connection2' QZend_Test_PHPUnit_DatabaseTestCase2) UZend_Test_PHPUnit_ControllerTestCase20 cZend_Test_PHPUnit_Constraint_ResponseHeader2* WZend_Test_PHPUnit_Constraint_Redirect2+ YZend_Test_PHPUnit_Constraint_Exception2* WZend_Test_PHPUnit_Constraint_DomQuery2 7Zend_Test_DbStatement2 3Zend_Test_DbAdapter2 /Zend_Tag_ItemList2 'Zend_Tag_Item2 1Zend_Tag_Exception2 )Zend_Tag_Cloud2 =Zend_Tag_Cloud_Exception2! EZend_Tag_Cloud_Decorator_Tag2% MZend_Tag_Cloud_Decorator_HtmlTag2' QZend_Tag_Cloud_Decorator_HtmlCloud2' QZend_Tag_Cloud_Decorator_Exception2# IZend_Tag_Cloud_Decorator_Cloud2 )Zend_Soap_Wsdl2/
 aZend_Soap_Wsdl_Strategy_DefaultComplexType2&	 OZend_Soap_Wsdl_Strategy_Composite20 cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence2/ aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex2$ KZend_Soap_Wsdl_Strategy_AnyType2% MZend_Soap_Wsdl_Strategy_Abstract2 =Zend_Soap_Wsdl_Exception2 -Zend_Soap_Server2 AZend_Soap_Server_Exception2 -Zend_Soap_Client2  9Zend_Soap_Client_Local2 AZend_Soap_Client_Exception2~ ;Zend_Soap_Client_DotNet2} ;Zend_Soap_Client_Common2| 9Zend_Soap_AutoDiscover2%{ MZend_Soap_AutoDiscover_Exception2z %Zend_Session2)y UZend_Session_Validator_HttpUserAgent2$x KZend_Session_Validator_Abstract2'w QZend_Session_SaveHandler_Exception2%v MZend_Session_SaveHandler_DbTable2u 9Zend_Session_Namespace2t 9Zend_Session_Exception2s 7Zend_Session_Abstract2r 1Zend_Service_Yahoo2$q KZend_Service_Yahoo_WebResultSet2!p EZend_Service_Yahoo_WebResult2&o OZend_Service_Yahoo_VideoResultSet2#n IZend_Service_Yahoo_VideoResult2!m EZend_Service_Yahoo_ResultSet2l ?Zend_Service_Yahoo_Result2)k UZend_Service_Yahoo_PageDataResultSet2&j OZend_Service_Yahoo_PageDataResult2%i MZend_Service_Yahoo_NewsResultSet2"h GZend_Service_Yahoo_NewsResult2   K  l$rFe5
V&rA


y
E
			r	<	l0PtDm7q?	a+_)K                                                  < {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory28 sZend_Tool_Project_Context_Zf_PublicScriptsDirectory21 eZend_Tool_Project_Context_Zf_PublicIndexFile27 qZend_Tool_Project_Context_Zf_PublicImagesDirectory21 eZend_Tool_Project_Context_Zf_PublicDirectory25 mZend_Tool_Project_Context_Zf_ProjectProviderFile22 gZend_Tool_Project_Context_Zf_ModulesDirectory21 eZend_Tool_Project_Context_Zf_ModuleDirectory21 eZend_Tool_Project_Context_Zf_ModelsDirectory2+
 YZend_Tool_Project_Context_Zf_ModelFile2/	 aZend_Tool_Project_Context_Zf_LogsDirectory22 gZend_Tool_Project_Context_Zf_LocalesDirectory22 gZend_Tool_Project_Context_Zf_LibraryDirectory22 gZend_Tool_Project_Context_Zf_LayoutsDirectory28 sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory22 gZend_Tool_Project_Context_Zf_LayoutScriptFile2. _Zend_Tool_Project_Context_Zf_HtaccessFile20 cZend_Tool_Project_Context_Zf_FormsDirectory2* WZend_Tool_Project_Context_Zf_FormFile2/  aZend_Tool_Project_Context_Zf_DocsDirectory2- ]Zend_Tool_Project_Context_Zf_DbTableFile22~ gZend_Tool_Project_Context_Zf_DbTableDirectory2/} aZend_Tool_Project_Context_Zf_DataDirectory26| oZend_Tool_Project_Context_Zf_ControllersDirectory20{ cZend_Tool_Project_Context_Zf_ControllerFile22z gZend_Tool_Project_Context_Zf_ConfigsDirectory2,y [Zend_Tool_Project_Context_Zf_ConfigFile20x cZend_Tool_Project_Context_Zf_CacheDirectory2/w aZend_Tool_Project_Context_Zf_BootstrapFile26v oZend_Tool_Project_Context_Zf_ApplicationDirectory27u qZend_Tool_Project_Context_Zf_ApplicationConfigFile2/t aZend_Tool_Project_Context_Zf_ApisDirectory2.s _Zend_Tool_Project_Context_Zf_ActionMethod23r iZend_Tool_Project_Context_Zf_AbstractClassFile2@q Zend_Tool_Project_Context_System_ProjectProvidersDirectory28p sZend_Tool_Project_Context_System_ProjectProfileFile26o oZend_Tool_Project_Context_System_ProjectDirectory2)n UZend_Tool_Project_Context_Repository2.m _Zend_Tool_Project_Context_Filesystem_File23l iZend_Tool_Project_Context_Filesystem_Directory22k gZend_Tool_Project_Context_Filesystem_Abstract2(j SZend_Tool_Project_Context_Exception2-i ]Zend_Tool_Project_Context_Content_Engine23h iZend_Tool_Project_Context_Content_Engine_Phtml2;g yZend_Tool_Project_Context_Content_Engine_CodeGenerator20f cZend_Tool_Framework_System_Provider_Version20e cZend_Tool_Framework_System_Provider_Phpinfo21d eZend_Tool_Framework_System_Provider_Manifest2/c aZend_Tool_Framework_System_Provider_Config2(b SZend_Tool_Framework_System_Manifest2-a ]Zend_Tool_Framework_System_Action_Delete2-` ]Zend_Tool_Framework_System_Action_Create2!_ EZend_Tool_Framework_Registry2+^ YZend_Tool_Framework_Registry_Exception2+] YZend_Tool_Framework_Provider_Signature2,\ [Zend_Tool_Framework_Provider_Repository2+[ YZend_Tool_Framework_Provider_Exception2*Z WZend_Tool_Framework_Provider_Abstract2&Y OZend_Tool_Framework_Metadata_Tool2)X UZend_Tool_Framework_Metadata_Dynamic2'W QZend_Tool_Framework_Metadata_Basic2,V [Zend_Tool_Framework_Manifest_Repository2+U YZend_Tool_Framework_Manifest_Exception21T eZend_Tool_Framework_Loader_IncludePathLoader2JS Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator2+R YZend_Tool_Framework_Loader_BasicLoader2(Q SZend_Tool_Framework_Loader_Abstract2"P GZend_Tool_Framework_Exception2'O QZend_Tool_Framework_Client_Storage21N eZend_Tool_Framework_Client_Storage_Directory2(M SZend_Tool_Framework_Client_Response2DL 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator2'K QZend_Tool_Framework_Client_Request2(J SZend_Tool_Framework_Client_Manifest29I uZend_Tool_Framework_Client_Interactive_InputResponse2   Y  UH
Wm3W



]
				]	1	}R%~T){V3\7aE)Y4|Y6|N+   !l EZend_Validate_Barcode_Planet2#k IZend_Validate_Barcode_Leitcode2 j CZend_Validate_Barcode_Itf142i AZend_Validate_Barcode_Issn2*h WZend_Validate_Barcode_IntelligentMail2$g KZend_Validate_Barcode_Identcode2!f EZend_Validate_Barcode_Gtin142!e EZend_Validate_Barcode_Gtin132!d EZend_Validate_Barcode_Gtin122c AZend_Validate_Barcode_Ean82b AZend_Validate_Barcode_Ean52a AZend_Validate_Barcode_Ean22 ` CZend_Validate_Barcode_Ean182 _ CZend_Validate_Barcode_Ean142 ^ CZend_Validate_Barcode_Ean132 ] CZend_Validate_Barcode_Ean122$\ KZend_Validate_Barcode_Code93ext2![ EZend_Validate_Barcode_Code932$Z KZend_Validate_Barcode_Code39ext2!Y EZend_Validate_Barcode_Code392,X [Zend_Validate_Barcode_Code25interleaved2!W EZend_Validate_Barcode_Code252*V WZend_Validate_Barcode_AdapterAbstract2U 3Zend_Validate_Alpha2T 3Zend_Validate_Alnum2S 9Zend_Validate_Abstract2R Zend_Uri2Q 'Zend_Uri_Http2P 1Zend_Uri_Exception2O )Zend_Translate2N 7Zend_Translate_Plural2M =Zend_Translate_Exception2L 9Zend_Translate_Adapter2!K EZend_Translate_Adapter_XmlTm2!J EZend_Translate_Adapter_Xliff2I AZend_Translate_Adapter_Tmx2H AZend_Translate_Adapter_Tbx2G ?Zend_Translate_Adapter_Qt2F AZend_Translate_Adapter_Ini2#E IZend_Translate_Adapter_Gettext2D AZend_Translate_Adapter_Csv2!C EZend_Translate_Adapter_Array2$B KZend_Tool_Project_Provider_View2$A KZend_Tool_Project_Provider_Test2/@ aZend_Tool_Project_Provider_ProjectProvider2'? QZend_Tool_Project_Provider_Project2'> QZend_Tool_Project_Provider_Profile2&= OZend_Tool_Project_Provider_Module2%< MZend_Tool_Project_Provider_Model2(; SZend_Tool_Project_Provider_Manifest2&: OZend_Tool_Project_Provider_Layout2$9 KZend_Tool_Project_Provider_Form2)8 UZend_Tool_Project_Provider_Exception2'7 QZend_Tool_Project_Provider_DbTable2)6 UZend_Tool_Project_Provider_DbAdapter2*5 WZend_Tool_Project_Provider_Controller2+4 YZend_Tool_Project_Provider_Application2&3 OZend_Tool_Project_Provider_Action2(2 SZend_Tool_Project_Provider_Abstract21 ?Zend_Tool_Project_Profile2'0 QZend_Tool_Project_Profile_Resource29/ uZend_Tool_Project_Profile_Resource_SearchConstraints21. eZend_Tool_Project_Profile_Resource_Container2=- }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter25, mZend_Tool_Project_Profile_Iterator_ContextFilter2-+ ]Zend_Tool_Project_Profile_FileParser_Xml2(* SZend_Tool_Project_Profile_Exception2 ) CZend_Tool_Project_Exception2<( {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory20' cZend_Tool_Project_Context_Zf_ViewsDirectory26& oZend_Tool_Project_Context_Zf_ViewScriptsDirectory20% cZend_Tool_Project_Context_Zf_ViewScriptFile26$ oZend_Tool_Project_Context_Zf_ViewHelpersDirectory26# oZend_Tool_Project_Context_Zf_ViewFiltersDirectory2A" Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory22! gZend_Tool_Project_Context_Zf_UploadsDirectory20  cZend_Tool_Project_Context_Zf_TestsDirectory27 qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile2@ Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory21 eZend_Tool_Project_Context_Zf_TestLibraryFile26 oZend_Tool_Project_Context_Zf_TestLibraryDirectory2: wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFile2: wZend_Tool_Project_Context_Zf_TestApplicationDirectory2@ Zend_Tool_Project_Context_Zf_TestApplicationControllerFile2E Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory2> Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile24 kZend_Tool_Project_Context_Zf_TemporaryDirectory23 iZend_Tool_Project_Context_Zf_SessionsDirectory28 sZend_Tool_Project_Context_Zf_SearchIndexesDirectory2   n  lI+tL&	X-|T1gB&




r
X
?
$
					\	:	lL+	d@hEhD"qN)wQ3]1q9                             5Z mZend_View_Helper_Placeholder_Container_Exception24Y kZend_View_Helper_Placeholder_Container_Abstract2!X EZend_View_Helper_PartialLoop2W =Zend_View_Helper_Partial2'V QZend_View_Helper_Partial_Exception2'U QZend_View_Helper_PaginationControl2 T CZend_View_Helper_Navigation2(S SZend_View_Helper_Navigation_Sitemap2%R MZend_View_Helper_Navigation_Menu2&Q OZend_View_Helper_Navigation_Links2/P aZend_View_Helper_Navigation_HelperAbstract2,O [Zend_View_Helper_Navigation_Breadcrumbs2N ;Zend_View_Helper_Layout2M 7Zend_View_Helper_Json2"L GZend_View_Helper_InlineScript2#K IZend_View_Helper_HtmlQuicktime2J ?Zend_View_Helper_HtmlPage2 I CZend_View_Helper_HtmlObject2H ?Zend_View_Helper_HtmlList2G AZend_View_Helper_HtmlFlash2!F EZend_View_Helper_HtmlElement2E AZend_View_Helper_HeadTitle2D AZend_View_Helper_HeadStyle2 C CZend_View_Helper_HeadScript2B ?Zend_View_Helper_HeadMeta2A ?Zend_View_Helper_HeadLink2"@ GZend_View_Helper_FormTextarea2? ?Zend_View_Helper_FormText2 > CZend_View_Helper_FormSubmit2 = CZend_View_Helper_FormSelect2< AZend_View_Helper_FormReset2; AZend_View_Helper_FormRadio2": GZend_View_Helper_FormPassword29 ?Zend_View_Helper_FormNote2'8 QZend_View_Helper_FormMultiCheckbox27 AZend_View_Helper_FormLabel26 AZend_View_Helper_FormImage2 5 CZend_View_Helper_FormHidden24 ?Zend_View_Helper_FormFile2 3 CZend_View_Helper_FormErrors2!2 EZend_View_Helper_FormElement2"1 GZend_View_Helper_FormCheckbox2 0 CZend_View_Helper_FormButton2/ 7Zend_View_Helper_Form2. ?Zend_View_Helper_Fieldset2- =Zend_View_Helper_Doctype2!, EZend_View_Helper_DeclareVars2+ 9Zend_View_Helper_Cycle2* ?Zend_View_Helper_Currency2) =Zend_View_Helper_BaseUrl2( ;Zend_View_Helper_Action2' ?Zend_View_Helper_Abstract2& 3Zend_View_Exception2% 1Zend_View_Abstract2$ %Zend_Version2# 'Zend_Validate2" AZend_Validate_StringLength2#! IZend_Validate_Sitemap_Priority2  ?Zend_Validate_Sitemap_Loc2" GZend_Validate_Sitemap_Lastmod2% MZend_Validate_Sitemap_Changefreq2 3Zend_Validate_Regex2 9Zend_Validate_PostCode2 9Zend_Validate_NotEmpty2 9Zend_Validate_LessThan2 1Zend_Validate_Isbn2 -Zend_Validate_Ip2 /Zend_Validate_Int2 7Zend_Validate_InArray2 ;Zend_Validate_Identical2 1Zend_Validate_Iban2 9Zend_Validate_Hostname2 /Zend_Validate_Hex2 ?Zend_Validate_GreaterThan2 3Zend_Validate_Float2! EZend_Validate_File_WordCount2 ?Zend_Validate_File_Upload2 ;Zend_Validate_File_Size2 ;Zend_Validate_File_Sha12! EZend_Validate_File_NotExists2 
 CZend_Validate_File_MimeType2	 9Zend_Validate_File_Md52 AZend_Validate_File_IsImage2$ KZend_Validate_File_IsCompressed2! EZend_Validate_File_ImageSize2 ;Zend_Validate_File_Hash2! EZend_Validate_File_FilesSize2! EZend_Validate_File_Extension2 ?Zend_Validate_File_Exists2' QZend_Validate_File_ExcludeMimeType2(  SZend_Validate_File_ExcludeExtension2 =Zend_Validate_File_Crc322~ =Zend_Validate_File_Count2} ;Zend_Validate_Exception2| AZend_Validate_EmailAddress2{ 5Zend_Validate_Digits2"z GZend_Validate_Db_RecordExists2$y KZend_Validate_Db_NoRecordExists2x ?Zend_Validate_Db_Abstract2w 1Zend_Validate_Date2v =Zend_Validate_CreditCard2u 3Zend_Validate_Ccnum2t 9Zend_Validate_Callback2s 7Zend_Validate_Between2r 7Zend_Validate_Barcode2q AZend_Validate_Barcode_Upce2p AZend_Validate_Barcode_Upca2o AZend_Validate_Barcode_Sscc2$n KZend_Validate_Barcode_Royalmail2"m GZend_Validate_Barcode_Postnet2   i  _1|cQ'Y4
\A#	fD(




`
E
%
				u	T	0	sX>lM2wS0jH*{Z7|Np;gB                      (C SZend_Application_Resource_Exception3#B IZend_Application_Resource_Dojo3!A EZend_Application_Resource_Db3+@ YZend_Application_Resource_Cachemanager3&? OZend_Application_Module_Bootstrap3'> QZend_Application_Module_Autoloader3= AZend_Application_Exception3)< UZend_Application_Bootstrap_Exception31; eZend_Application_Bootstrap_BootstrapAbstract3): UZend_Application_Bootstrap_Bootstrap39 ?Zend_Amf_Value_TraitsInfo3-8 ]Zend_Amf_Value_Messaging_RemotingMessage3*7 WZend_Amf_Value_Messaging_ErrorMessage3,6 [Zend_Amf_Value_Messaging_CommandMessage3*5 WZend_Amf_Value_Messaging_AsyncMessage3-4 ]Zend_Amf_Value_Messaging_ArrayCollection303 cZend_Amf_Value_Messaging_AcknowledgeMessage3-2 ]Zend_Amf_Value_Messaging_AbstractMessage3!1 EZend_Amf_Value_MessageHeader30 AZend_Amf_Value_MessageBody3/ =Zend_Amf_Value_ByteArray3. AZend_Amf_Util_BinaryStream3- +Zend_Amf_Server3, ?Zend_Amf_Server_Exception3+ /Zend_Amf_Response3* 9Zend_Amf_Response_Http3) -Zend_Amf_Request3( 7Zend_Amf_Request_Http3' ?Zend_Amf_Parse_TypeLoader3& ?Zend_Amf_Parse_Serializer3#% IZend_Amf_Parse_Resource_Stream3($ SZend_Amf_Parse_Resource_MysqlResult3)# UZend_Amf_Parse_Resource_MysqliResult3 " CZend_Amf_Parse_OutputStream3! AZend_Amf_Parse_InputStream3   CZend_Amf_Parse_Deserializer3# IZend_Amf_Parse_Amf3_Serializer3% MZend_Amf_Parse_Amf3_Deserializer3# IZend_Amf_Parse_Amf0_Serializer3% MZend_Amf_Parse_Amf0_Deserializer3 1Zend_Amf_Exception3 1Zend_Amf_Constants3 9Zend_Amf_Auth_Abstract3  CZend_Amf_Adobe_Introspector3 AZend_Amf_Adobe_DbInspector3 3Zend_Amf_Adobe_Auth3 Zend_Acl3 'Zend_Acl_Role3 9Zend_Acl_Role_Registry3% MZend_Acl_Role_Registry_Exception3 /Zend_Acl_Resource3 1Zend_Acl_Exception3 /Zend_XmlRpc_Value2 =Zend_XmlRpc_Value_Struct2 =Zend_XmlRpc_Value_String2 =Zend_XmlRpc_Value_Scalar2 7Zend_XmlRpc_Value_Nil2
 ?Zend_XmlRpc_Value_Integer2 	 CZend_XmlRpc_Value_Exception2 =Zend_XmlRpc_Value_Double2 AZend_XmlRpc_Value_DateTime2! EZend_XmlRpc_Value_Collection2 ?Zend_XmlRpc_Value_Boolean2! EZend_XmlRpc_Value_BigInteger2 =Zend_XmlRpc_Value_Base642 ;Zend_XmlRpc_Value_Array2 1Zend_XmlRpc_Server2  ?Zend_XmlRpc_Server_System2 =Zend_XmlRpc_Server_Fault2!~ EZend_XmlRpc_Server_Exception2} =Zend_XmlRpc_Server_Cache2| 5Zend_XmlRpc_Response2{ ?Zend_XmlRpc_Response_Http2z 3Zend_XmlRpc_Request2y ?Zend_XmlRpc_Request_Stdin2x =Zend_XmlRpc_Request_Http2$w KZend_XmlRpc_Generator_XmlWriter2,v [Zend_XmlRpc_Generator_GeneratorAbstract2&u OZend_XmlRpc_Generator_DomDocument2t /Zend_XmlRpc_Fault2s 7Zend_XmlRpc_Exception2r 1Zend_XmlRpc_Client2#q IZend_XmlRpc_Client_ServerProxy2+p YZend_XmlRpc_Client_ServerIntrospection2+o YZend_XmlRpc_Client_IntrospectException2%n MZend_XmlRpc_Client_HttpException2&m OZend_XmlRpc_Client_FaultException2!l EZend_XmlRpc_Client_Exception2&k OZend_Wildfire_Protocol_JsonStream2!j EZend_Wildfire_Plugin_FirePhp2.i _Zend_Wildfire_Plugin_FirePhp_TableMessage2)h UZend_Wildfire_Plugin_FirePhp_Message2g ;Zend_Wildfire_Exception2&f OZend_Wildfire_Channel_HttpHeaders2e Zend_View2d -Zend_View_Stream2c 5Zend_View_Helper_Url2b AZend_View_Helper_Translate2a AZend_View_Helper_ServerUrl2)` UZend_View_Helper_RenderToPlaceholder2!_ EZend_View_Helper_Placeholder2*^ WZend_View_Helper_Placeholder_Registry24] kZend_View_Helper_Placeholder_Registry_Exception2+\ YZend_View_Helper_Placeholder_Container26[ oZend_View_Helper_Placeholder_Container_Standalone2   V  |0qEHPzI



]
+				R	3	^;[8U-f6{H`6Vi3                         0l cZend_Ldap_Node_Schema_ObjectClass_Interface32k gZend_Ldap_Node_Schema_AttributeType_Interface33j iZend_InfoCard_Xml_Security_Transform_Interface3(i SZend_InfoCard_Xml_KeyInfo_Interface3(h SZend_InfoCard_Xml_Element_Interface3*g WZend_InfoCard_Xml_Assertion_Interface3-f ]Zend_InfoCard_Cipher_Symmetric_Interface37e qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface37d qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interface3+c YZend_InfoCard_Cipher_Pki_Rsa_Interface3'b QZend_InfoCard_Cipher_Pki_Interface3$a KZend_InfoCard_Adapter_Interface3$` KZend_Http_Client_Adapter_Stream3'_ QZend_Http_Client_Adapter_Interface3^ AZend_Gdata_App_MediaSource3.] _Zend_Form_Decorator_Marker_File_Interface3"\ GZend_Form_Decorator_Interface3[ 7Zend_Filter_Interface3"Z GZend_Filter_Encrypt_Interface3+Y YZend_Filter_Compress_CompressInterface30X cZend_Feed_Writer_Renderer_RendererInterface31W eZend_Feed_Writer_Extension_RendererInterface3#V IZend_Feed_Reader_FeedInterface3$U KZend_Feed_Reader_EntryInterface37T qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface3-S ]Zend_Feed_Pubsubhubbub_CallbackInterface3 R CZend_Feed_Builder_Interface3 Q CZend_Db_Statement_Interface3$P KZend_Currency_CurrencyInterface3)O UZend_Crypt_Math_BigInteger_Interface3+N YZend_Controller_Router_Route_Interface3%M MZend_Controller_Router_Interface3)L UZend_Controller_Dispatcher_Interface3%K MZend_Controller_Action_Interface3J 5Zend_Captcha_Adapter3!I EZend_Cache_Backend_Interface3)H UZend_Cache_Backend_ExtendedInterface3 G CZend_Auth_Storage_Interface3 F CZend_Auth_Adapter_Interface3.E _Zend_Auth_Adapter_Http_Resolver_Interface3'D QZend_Application_Resource_Resource34C kZend_Application_Bootstrap_ResourceBootstrapper3,B [Zend_Application_Bootstrap_Bootstrapper3A ;Zend_Acl_Role_Interface3 @ CZend_Acl_Resource_Interface3? ?Zend_Acl_Assert_Interface3#> IZend_Wildfire_Plugin_Interface2$= KZend_Wildfire_Channel_Interface2< 3Zend_View_Interface2'; QZend_View_Helper_Navigation_Helper2: AZend_View_Helper_Interface29 ;Zend_Validate_Interface2+8 YZend_Validate_Barcode_AdapterInterface237 iZend_Tool_Project_Profile_FileParser_Interface2:6 wZend_Tool_Project_Context_System_TopLevelRestrictable255 mZend_Tool_Project_Context_System_NotOverwritable2/4 aZend_Tool_Project_Context_System_Interface2(3 SZend_Tool_Project_Context_Interface2+2 YZend_Tool_Framework_Registry_Interface221 gZend_Tool_Framework_Registry_EnabledInterface2-0 ]Zend_Tool_Framework_Provider_Pretendable2+/ YZend_Tool_Framework_Provider_Interface2.. _Zend_Tool_Framework_Provider_Interactable2;- yZend_Tool_Framework_Provider_DocblockManifestInterface2+, YZend_Tool_Framework_Metadata_Interface2.+ _Zend_Tool_Framework_Metadata_Attributable26* oZend_Tool_Framework_Manifest_ProviderManifestable26) oZend_Tool_Framework_Manifest_MetadataManifestable2+( YZend_Tool_Framework_Manifest_Interface2+' YZend_Tool_Framework_Manifest_Indexable24& kZend_Tool_Framework_Manifest_ActionManifestable2)% UZend_Tool_Framework_Loader_Interface28$ sZend_Tool_Framework_Client_Storage_AdapterInterface2D# 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface2;" yZend_Tool_Framework_Client_Interactive_OutputInterface2:! wZend_Tool_Framework_Client_Interactive_InputInterface2)  UZend_Tool_Framework_Action_Interface2( SZend_Text_Table_Decorator_Interface2 /Zend_Tag_Taggable2& OZend_Soap_Wsdl_Strategy_Interface2% MZend_Session_Validator_Interface2' QZend_Session_SaveHandler_Interface2I Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Interface2 7Zend_Server_Interface2- ]Zend_Serializer_Adapter_AdapterInterface24 kZend_Search_Lucene_Search_Highlighter_Interface2   j  |V/{R(yU#tX?}O,





_
9
					Z	9	{fG"yT2
rZ=mR?%|X3\)Y)oG)                     - =Zend_Config_Writer_Array3, +Zend_Config_Ini3+ 7Zend_Config_Exception3$* KZend_CodeGenerator_Php_Property31) eZend_CodeGenerator_Php_Property_DefaultValue3%( MZend_CodeGenerator_Php_Parameter32' gZend_CodeGenerator_Php_Parameter_DefaultValue3"& GZend_CodeGenerator_Php_Method3,% [Zend_CodeGenerator_Php_Member_Container3+$ YZend_CodeGenerator_Php_Member_Abstract3 # CZend_CodeGenerator_Php_File3%" MZend_CodeGenerator_Php_Exception3$! KZend_CodeGenerator_Php_Docblock3(  SZend_CodeGenerator_Php_Docblock_Tag3/ aZend_CodeGenerator_Php_Docblock_Tag_Return3. _Zend_CodeGenerator_Php_Docblock_Tag_Param30 cZend_CodeGenerator_Php_Docblock_Tag_License3! EZend_CodeGenerator_Php_Class3  CZend_CodeGenerator_Php_Body3$ KZend_CodeGenerator_Php_Abstract3! EZend_CodeGenerator_Exception3  CZend_CodeGenerator_Abstract3 /Zend_Captcha_Word3 9Zend_Captcha_ReCaptcha3 1Zend_Captcha_Image3 3Zend_Captcha_Figlet3 9Zend_Captcha_Exception3 /Zend_Captcha_Dumb3 /Zend_Captcha_Base3 !Zend_Cache3 1Zend_Cache_Manager3 =Zend_Cache_Frontend_Page3 AZend_Cache_Frontend_Output3! EZend_Cache_Frontend_Function3 =Zend_Cache_Frontend_File3
 ?Zend_Cache_Frontend_Class3 	 CZend_Cache_Frontend_Capture3 5Zend_Cache_Exception3 +Zend_Cache_Core3 1Zend_Cache_Backend3" GZend_Cache_Backend_ZendServer3( SZend_Cache_Backend_ZendServer_ShMem3' QZend_Cache_Backend_ZendServer_Disk3$ KZend_Cache_Backend_ZendPlatform3 ?Zend_Cache_Backend_Xcache3!  EZend_Cache_Backend_TwoLevels3 ;Zend_Cache_Backend_Test3~ ?Zend_Cache_Backend_Static3} ?Zend_Cache_Backend_Sqlite3!| EZend_Cache_Backend_Memcached3{ ;Zend_Cache_Backend_File3!z EZend_Cache_Backend_BlackHole3y 9Zend_Cache_Backend_Apc3x %Zend_Barcode3+w YZend_Barcode_Renderer_RendererAbstract3v ?Zend_Barcode_Renderer_Pdf3 u CZend_Barcode_Renderer_Image3$t KZend_Barcode_Renderer_Exception3s =Zend_Barcode_Object_Upce3r =Zend_Barcode_Object_Upca3"q GZend_Barcode_Object_Royalmail3 p CZend_Barcode_Object_Postnet3o AZend_Barcode_Object_Planet3'n QZend_Barcode_Object_ObjectAbstract3!m EZend_Barcode_Object_Leitcode3l ?Zend_Barcode_Object_Itf143"k GZend_Barcode_Object_Identcode3"j GZend_Barcode_Object_Exception3i ?Zend_Barcode_Object_Error3h =Zend_Barcode_Object_Ean83g =Zend_Barcode_Object_Ean53f =Zend_Barcode_Object_Ean23e ?Zend_Barcode_Object_Ean133d AZend_Barcode_Object_Code393*c WZend_Barcode_Object_Code25interleaved3b AZend_Barcode_Object_Code253a 9Zend_Barcode_Exception3` Zend_Auth3_ ?Zend_Auth_Storage_Session3$^ KZend_Auth_Storage_NonPersistent3 ] CZend_Auth_Storage_Exception3\ -Zend_Auth_Result3[ 3Zend_Auth_Exception3Z =Zend_Auth_Adapter_OpenId3Y 9Zend_Auth_Adapter_Ldap3X AZend_Auth_Adapter_InfoCard3W 9Zend_Auth_Adapter_Http3)V UZend_Auth_Adapter_Http_Resolver_File3.U _Zend_Auth_Adapter_Http_Resolver_Exception3 T CZend_Auth_Adapter_Exception3S =Zend_Auth_Adapter_Digest3R ?Zend_Auth_Adapter_DbTable3Q -Zend_Application3#P IZend_Application_Resource_View3(O SZend_Application_Resource_Translate3&N OZend_Application_Resource_Session3%M MZend_Application_Resource_Router3/L aZend_Application_Resource_ResourceAbstract3)K UZend_Application_Resource_Navigation3&J OZend_Application_Resource_Multidb3&I OZend_Application_Resource_Modules3#H IZend_Application_Resource_Mail3"G GZend_Application_Resource_Log3%F MZend_Application_Resource_Locale3%E MZend_Application_Resource_Layout3.D _Zend_Application_Resource_Frontcontroller3   g  gS-UvBTvJ(




e
;
				l	E	wO&xL!gE-jR/y\@.a8jH(lI(	                            -Zend_Db_Profiler3 9Zend_Db_Profiler_Query3 =Zend_Db_Profiler_Firebug3 AZend_Db_Profiler_Exception3 %Zend_Db_Expr3 /Zend_Db_Exception3 9Zend_Db_Adapter_Sqlsrv3% MZend_Db_Adapter_Sqlsrv_Exception3 AZend_Db_Adapter_Pdo_Sqlite3 ?Zend_Db_Adapter_Pdo_Pgsql3
 ;Zend_Db_Adapter_Pdo_Oci3	 ?Zend_Db_Adapter_Pdo_Mysql3 ?Zend_Db_Adapter_Pdo_Mssql3 ;Zend_Db_Adapter_Pdo_Ibm3  CZend_Db_Adapter_Pdo_Ibm_Ids3  CZend_Db_Adapter_Pdo_Ibm_Db23! EZend_Db_Adapter_Pdo_Abstract3 9Zend_Db_Adapter_Oracle3% MZend_Db_Adapter_Oracle_Exception3 9Zend_Db_Adapter_Mysqli3%  MZend_Db_Adapter_Mysqli_Exception3 ?Zend_Db_Adapter_Exception3~ 3Zend_Db_Adapter_Db23"} GZend_Db_Adapter_Db2_Exception3| =Zend_Db_Adapter_Abstract3{ Zend_Date3z 3Zend_Date_Exception3y 5Zend_Date_DateObject3x -Zend_Date_Cities3w 'Zend_Currency3v ;Zend_Currency_Exception3u !Zend_Crypt3t )Zend_Crypt_Rsa3s 1Zend_Crypt_Rsa_Key3r ?Zend_Crypt_Rsa_Key_Public3q AZend_Crypt_Rsa_Key_Private3p +Zend_Crypt_Math3o ?Zend_Crypt_Math_Exception3n AZend_Crypt_Math_BigInteger3#m IZend_Crypt_Math_BigInteger_Gmp3)l UZend_Crypt_Math_BigInteger_Exception3&k OZend_Crypt_Math_BigInteger_Bcmath3j +Zend_Crypt_Hmac3i ?Zend_Crypt_Hmac_Exception3h 5Zend_Crypt_Exception3g =Zend_Crypt_DiffieHellman3'f QZend_Crypt_DiffieHellman_Exception3!e EZend_Controller_Router_Route3(d SZend_Controller_Router_Route_Static3'c QZend_Controller_Router_Route_Regex3(b SZend_Controller_Router_Route_Module3*a WZend_Controller_Router_Route_Hostname3'` QZend_Controller_Router_Route_Chain3*_ WZend_Controller_Router_Route_Abstract3#^ IZend_Controller_Router_Rewrite3%] MZend_Controller_Router_Exception3$\ KZend_Controller_Router_Abstract3*[ WZend_Controller_Response_HttpTestCase3"Z GZend_Controller_Response_Http3'Y QZend_Controller_Response_Exception3!X EZend_Controller_Response_Cli3&W OZend_Controller_Response_Abstract3#V IZend_Controller_Request_Simple3)U UZend_Controller_Request_HttpTestCase3!T EZend_Controller_Request_Http3&S OZend_Controller_Request_Exception3&R OZend_Controller_Request_Apache4043%Q MZend_Controller_Request_Abstract3&P OZend_Controller_Plugin_PutHandler3(O SZend_Controller_Plugin_ErrorHandler3"N GZend_Controller_Plugin_Broker3'M QZend_Controller_Plugin_ActionStack3$L KZend_Controller_Plugin_Abstract3K 7Zend_Controller_Front3J ?Zend_Controller_Exception3(I SZend_Controller_Dispatcher_Standard3)H UZend_Controller_Dispatcher_Exception3(G SZend_Controller_Dispatcher_Abstract3F 9Zend_Controller_Action3(E SZend_Controller_Action_HelperBroker36D oZend_Controller_Action_HelperBroker_PriorityStack3/C aZend_Controller_Action_Helper_ViewRenderer3&B OZend_Controller_Action_Helper_Url3-A ]Zend_Controller_Action_Helper_Redirector3'@ QZend_Controller_Action_Helper_Json31? eZend_Controller_Action_Helper_FlashMessenger30> cZend_Controller_Action_Helper_ContextSwitch3(= SZend_Controller_Action_Helper_Cache3<< {Zend_Controller_Action_Helper_AutoCompleteScriptaculous33; iZend_Controller_Action_Helper_AutoCompleteDojo38: sZend_Controller_Action_Helper_AutoComplete_Abstract3.9 _Zend_Controller_Action_Helper_AjaxContext3.8 _Zend_Controller_Action_Helper_ActionStack3+7 YZend_Controller_Action_Helper_Abstract3%6 MZend_Controller_Action_Exception35 3Zend_Console_Getopt3"4 GZend_Console_Getopt_Exception33 #Zend_Config32 +Zend_Config_Xml31 1Zend_Config_Writer30 9Zend_Config_Writer_Xml3/ 9Zend_Config_Writer_Ini3$. KZend_Config_Writer_FileAbstract3   c  ^3d9{W=yiV9"rE



\
.

				e	:	f9^2
Y:#wR+X4dAb5`9                            &w OZend_Dojo_View_Helper_TimeTextBox3"v GZend_Dojo_View_Helper_TextBox3#u IZend_Dojo_View_Helper_Textarea3't QZend_Dojo_View_Helper_TabContainer3's QZend_Dojo_View_Helper_SubmitButton3)r UZend_Dojo_View_Helper_StackContainer3)q UZend_Dojo_View_Helper_SplitContainer3!p EZend_Dojo_View_Helper_Slider3)o UZend_Dojo_View_Helper_SimpleTextarea3&n OZend_Dojo_View_Helper_RadioButton3*m WZend_Dojo_View_Helper_PasswordTextBox3(l SZend_Dojo_View_Helper_NumberTextBox3(k SZend_Dojo_View_Helper_NumberSpinner3+j YZend_Dojo_View_Helper_HorizontalSlider3i AZend_Dojo_View_Helper_Form3*h WZend_Dojo_View_Helper_FilteringSelect3!g EZend_Dojo_View_Helper_Editor3f AZend_Dojo_View_Helper_Dojo3)e UZend_Dojo_View_Helper_Dojo_Container3)d UZend_Dojo_View_Helper_DijitContainer3 c CZend_Dojo_View_Helper_Dijit3&b OZend_Dojo_View_Helper_DateTextBox3&a OZend_Dojo_View_Helper_CustomDijit3*` WZend_Dojo_View_Helper_CurrencyTextBox3&_ OZend_Dojo_View_Helper_ContentPane3#^ IZend_Dojo_View_Helper_ComboBox3#] IZend_Dojo_View_Helper_CheckBox3!\ EZend_Dojo_View_Helper_Button3*[ WZend_Dojo_View_Helper_BorderContainer3(Z SZend_Dojo_View_Helper_AccordionPane3-Y ]Zend_Dojo_View_Helper_AccordionContainer3X =Zend_Dojo_View_Exception3W )Zend_Dojo_Form3V 9Zend_Dojo_Form_SubForm3*U WZend_Dojo_Form_Element_VerticalSlider3-T ]Zend_Dojo_Form_Element_ValidationTextBox3'S QZend_Dojo_Form_Element_TimeTextBox3#R IZend_Dojo_Form_Element_TextBox3$Q KZend_Dojo_Form_Element_Textarea3(P SZend_Dojo_Form_Element_SubmitButton3"O GZend_Dojo_Form_Element_Slider3*N WZend_Dojo_Form_Element_SimpleTextarea3'M QZend_Dojo_Form_Element_RadioButton3+L YZend_Dojo_Form_Element_PasswordTextBox3)K UZend_Dojo_Form_Element_NumberTextBox3)J UZend_Dojo_Form_Element_NumberSpinner3,I [Zend_Dojo_Form_Element_HorizontalSlider3+H YZend_Dojo_Form_Element_FilteringSelect3"G GZend_Dojo_Form_Element_Editor3&F OZend_Dojo_Form_Element_DijitMulti3!E EZend_Dojo_Form_Element_Dijit3'D QZend_Dojo_Form_Element_DateTextBox3+C YZend_Dojo_Form_Element_CurrencyTextBox3$B KZend_Dojo_Form_Element_ComboBox3$A KZend_Dojo_Form_Element_CheckBox3"@ GZend_Dojo_Form_Element_Button3 ? CZend_Dojo_Form_DisplayGroup3*> WZend_Dojo_Form_Decorator_TabContainer3,= [Zend_Dojo_Form_Decorator_StackContainer3,< [Zend_Dojo_Form_Decorator_SplitContainer3'; QZend_Dojo_Form_Decorator_DijitForm3*: WZend_Dojo_Form_Decorator_DijitElement3,9 [Zend_Dojo_Form_Decorator_DijitContainer3)8 UZend_Dojo_Form_Decorator_ContentPane3-7 ]Zend_Dojo_Form_Decorator_BorderContainer3+6 YZend_Dojo_Form_Decorator_AccordionPane305 cZend_Dojo_Form_Decorator_AccordionContainer34 3Zend_Dojo_Exception33 )Zend_Dojo_Data32 5Zend_Dojo_BuildLayer31 !Zend_Debug30 Zend_Db3/ 'Zend_Db_Table3. 5Zend_Db_Table_Select3#- IZend_Db_Table_Select_Exception3, 5Zend_Db_Table_Rowset3#+ IZend_Db_Table_Rowset_Exception3"* GZend_Db_Table_Rowset_Abstract3) /Zend_Db_Table_Row3 ( CZend_Db_Table_Row_Exception3' AZend_Db_Table_Row_Abstract3& ;Zend_Db_Table_Exception3% =Zend_Db_Table_Definition3$ 9Zend_Db_Table_Abstract3# /Zend_Db_Statement3" =Zend_Db_Statement_Sqlsrv3'! QZend_Db_Statement_Sqlsrv_Exception3  7Zend_Db_Statement_Pdo3 ?Zend_Db_Statement_Pdo_Oci3 ?Zend_Db_Statement_Pdo_Ibm3 =Zend_Db_Statement_Oracle3' QZend_Db_Statement_Oracle_Exception3 =Zend_Db_Statement_Mysqli3' QZend_Db_Statement_Mysqli_Exception3  CZend_Db_Statement_Exception3 7Zend_Db_Statement_Db23$ KZend_Db_Statement_Db2_Exception3 )Zend_Db_Select3 =Zend_Db_Select_Exception3   _  vU7 	kJ0pGZ0^:



d
+				[	+g7 kJ1k1Y |@ U)f3oT:       V 5Zend_Filter_Callback3U 3Zend_Filter_Boolean3T 5Zend_Filter_BaseName3S /Zend_Filter_Alpha3R /Zend_Filter_Alnum3Q 1Zend_File_Transfer3!P EZend_File_Transfer_Exception3$O KZend_File_Transfer_Adapter_Http3(N SZend_File_Transfer_Adapter_Abstract3M Zend_Feed3L -Zend_Feed_Writer3K ;Zend_Feed_Writer_Source3/J aZend_Feed_Writer_Renderer_RendererAbstract3'I QZend_Feed_Writer_Renderer_Feed_Rss3(H SZend_Feed_Writer_Renderer_Feed_Atom3/G aZend_Feed_Writer_Renderer_Feed_Atom_Source35F mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract3(E SZend_Feed_Writer_Renderer_Entry_Rss3)D UZend_Feed_Writer_Renderer_Entry_Atom31C eZend_Feed_Writer_Renderer_Entry_Atom_Deleted3B 7Zend_Feed_Writer_Feed3'A QZend_Feed_Writer_Feed_FeedAbstract3<@ {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry38? sZend_Feed_Writer_Extension_Threading_Renderer_Entry34> kZend_Feed_Writer_Extension_Slash_Renderer_Entry30= cZend_Feed_Writer_Extension_RendererAbstract34< kZend_Feed_Writer_Extension_ITunes_Renderer_Feed35; mZend_Feed_Writer_Extension_ITunes_Renderer_Entry3+: YZend_Feed_Writer_Extension_ITunes_Feed3,9 [Zend_Feed_Writer_Extension_ITunes_Entry388 sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed397 uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry366 oZend_Feed_Writer_Extension_Content_Renderer_Entry325 gZend_Feed_Writer_Extension_Atom_Renderer_Feed364 oZend_Feed_Writer_Exception_InvalidMethodException33 9Zend_Feed_Writer_Entry32 =Zend_Feed_Writer_Deleted31 'Zend_Feed_Rss30 -Zend_Feed_Reader3/ =Zend_Feed_Reader_FeedSet3". GZend_Feed_Reader_FeedAbstract3- ?Zend_Feed_Reader_Feed_Rss3, AZend_Feed_Reader_Feed_Atom3&+ OZend_Feed_Reader_Feed_Atom_Source33* iZend_Feed_Reader_Extension_WellFormedWeb_Entry3,) [Zend_Feed_Reader_Extension_Thread_Entry30( cZend_Feed_Reader_Extension_Syndication_Feed3+' YZend_Feed_Reader_Extension_Slash_Entry3,& [Zend_Feed_Reader_Extension_Podcast_Feed3-% ]Zend_Feed_Reader_Extension_Podcast_Entry3,$ [Zend_Feed_Reader_Extension_FeedAbstract3-# ]Zend_Feed_Reader_Extension_EntryAbstract3/" aZend_Feed_Reader_Extension_DublinCore_Feed30! cZend_Feed_Reader_Extension_DublinCore_Entry34  kZend_Feed_Reader_Extension_CreativeCommons_Feed35 mZend_Feed_Reader_Extension_CreativeCommons_Entry3- ]Zend_Feed_Reader_Extension_Content_Entry3) UZend_Feed_Reader_Extension_Atom_Feed3* WZend_Feed_Reader_Extension_Atom_Entry3# IZend_Feed_Reader_EntryAbstract3 AZend_Feed_Reader_Entry_Rss3  CZend_Feed_Reader_Entry_Atom3  CZend_Feed_Reader_Collection33 iZend_Feed_Reader_Collection_CollectionAbstract3) UZend_Feed_Reader_Collection_Category3' QZend_Feed_Reader_Collection_Author3 9Zend_Feed_Pubsubhubbub3& OZend_Feed_Pubsubhubbub_Subscriber3/ aZend_Feed_Pubsubhubbub_Subscriber_Callback3% MZend_Feed_Pubsubhubbub_Publisher3. _Zend_Feed_Pubsubhubbub_Model_Subscription3/ aZend_Feed_Pubsubhubbub_Model_ModelAbstract3( SZend_Feed_Pubsubhubbub_HttpResponse3% MZend_Feed_Pubsubhubbub_Exception3, [Zend_Feed_Pubsubhubbub_CallbackAbstract3 3Zend_Feed_Exception3
 3Zend_Feed_Entry_Rss3	 5Zend_Feed_Entry_Atom3 =Zend_Feed_Entry_Abstract3 /Zend_Feed_Element3 /Zend_Feed_Builder3 =Zend_Feed_Builder_Header3$ KZend_Feed_Builder_Header_Itunes3  CZend_Feed_Builder_Exception3 ;Zend_Feed_Builder_Entry3 )Zend_Feed_Atom3  1Zend_Feed_Abstract3 )Zend_Exception3~ )Zend_Dom_Query3} 7Zend_Dom_Query_Result3| =Zend_Dom_Query_Css2Xpath3{ 1Zend_Dom_Exception3z Zend_Dojo3)y UZend_Dojo_View_Helper_VerticalSlider3,x [Zend_Dojo_View_Helper_ValidationTextBox3   m  pO._;|Y8 {[>rD



m
?
				`	L	'	eBeA_@xW7fE$r`;}\4
d<           #C IZend_Gdata_App_Extension_Email3%B MZend_Gdata_App_Extension_Element3$A KZend_Gdata_App_Extension_Edited3#@ IZend_Gdata_App_Extension_Draft3%? MZend_Gdata_App_Extension_Control3)> UZend_Gdata_App_Extension_Contributor3%= MZend_Gdata_App_Extension_Content3&< OZend_Gdata_App_Extension_Category3$; KZend_Gdata_App_Extension_Author3: =Zend_Gdata_App_Exception39 5Zend_Gdata_App_Entry3,8 [Zend_Gdata_App_CaptchaRequiredException3#7 IZend_Gdata_App_BaseMediaSource36 3Zend_Gdata_App_Base3*5 WZend_Gdata_App_BadMethodCallException3!4 EZend_Gdata_App_AuthException33 Zend_Form32 /Zend_Form_SubForm31 3Zend_Form_Exception30 /Zend_Form_Element3/ ;Zend_Form_Element_Xhtml3. AZend_Form_Element_Textarea3- 9Zend_Form_Element_Text3, =Zend_Form_Element_Submit3+ =Zend_Form_Element_Select3* ;Zend_Form_Element_Reset3) ;Zend_Form_Element_Radio3( AZend_Form_Element_Password3"' GZend_Form_Element_Multiselect3$& KZend_Form_Element_MultiCheckbox3% ;Zend_Form_Element_Multi3$ ;Zend_Form_Element_Image3# =Zend_Form_Element_Hidden3" 9Zend_Form_Element_Hash3! 9Zend_Form_Element_File3   CZend_Form_Element_Exception3 AZend_Form_Element_Checkbox3 ?Zend_Form_Element_Captcha3 =Zend_Form_Element_Button3 9Zend_Form_DisplayGroup3# IZend_Form_Decorator_ViewScript3# IZend_Form_Decorator_ViewHelper3  CZend_Form_Decorator_Tooltip3( SZend_Form_Decorator_PrepareElements3 ?Zend_Form_Decorator_Label3 ?Zend_Form_Decorator_Image3  CZend_Form_Decorator_HtmlTag3# IZend_Form_Decorator_FormErrors3% MZend_Form_Decorator_FormElements3 =Zend_Form_Decorator_Form3 =Zend_Form_Decorator_File3! EZend_Form_Decorator_Fieldset3" GZend_Form_Decorator_Exception3 AZend_Form_Decorator_Errors3$ KZend_Form_Decorator_DtDdWrapper3$ KZend_Form_Decorator_Description3  CZend_Form_Decorator_Captcha3%
 MZend_Form_Decorator_Captcha_Word3!	 EZend_Form_Decorator_Callback3! EZend_Form_Decorator_Abstract3 #Zend_Filter3+ YZend_Filter_Word_UnderscoreToSeparator3& OZend_Filter_Word_UnderscoreToDash3+ YZend_Filter_Word_UnderscoreToCamelCase3* WZend_Filter_Word_SeparatorToSeparator3% MZend_Filter_Word_SeparatorToDash3* WZend_Filter_Word_SeparatorToCamelCase3(  SZend_Filter_Word_Separator_Abstract3& OZend_Filter_Word_DashToUnderscore3%~ MZend_Filter_Word_DashToSeparator3%} MZend_Filter_Word_DashToCamelCase3+| YZend_Filter_Word_CamelCaseToUnderscore3*{ WZend_Filter_Word_CamelCaseToSeparator3%z MZend_Filter_Word_CamelCaseToDash3y 7Zend_Filter_StripTags3x ?Zend_Filter_StripNewlines3w 9Zend_Filter_StringTrim3v ?Zend_Filter_StringToUpper3u ?Zend_Filter_StringToLower3t 5Zend_Filter_RealPath3s ;Zend_Filter_PregReplace3r -Zend_Filter_Null3&q OZend_Filter_NormalizedToLocalized3&p OZend_Filter_LocalizedToNormalized3o +Zend_Filter_Int3n /Zend_Filter_Input3m 7Zend_Filter_Inflector3l =Zend_Filter_HtmlEntities3k AZend_Filter_File_UpperCase3j ;Zend_Filter_File_Rename3i AZend_Filter_File_LowerCase3h =Zend_Filter_File_Encrypt3g =Zend_Filter_File_Decrypt3f 7Zend_Filter_Exception3e 3Zend_Filter_Encrypt3 d CZend_Filter_Encrypt_Openssl3c AZend_Filter_Encrypt_Mcrypt3b +Zend_Filter_Dir3a 1Zend_Filter_Digits3` 3Zend_Filter_Decrypt3_ 9Zend_Filter_Decompress3^ 5Zend_Filter_Compress3] =Zend_Filter_Compress_Zip3\ =Zend_Filter_Compress_Tar3[ =Zend_Filter_Compress_Rar3Z =Zend_Filter_Compress_Lzf3Y ;Zend_Filter_Compress_Gz3*X WZend_Filter_Compress_CompressAbstract3W =Zend_Filter_Compress_Bz23   `  e?vL#gK$N,f>


}
Q
"				s	O	*	k?Lf<LX(zO'{T,}S-                      %# MZend_Gdata_Extension_EventStatus3#" IZend_Gdata_Extension_EntryLink3"! GZend_Gdata_Extension_Comments3&  OZend_Gdata_Extension_AttendeeType3( SZend_Gdata_Extension_AttendeeStatus3 +Zend_Gdata_Exif3 5Zend_Gdata_Exif_Feed3# IZend_Gdata_Exif_Extension_Time3# IZend_Gdata_Exif_Extension_Tags3$ KZend_Gdata_Exif_Extension_Model3# IZend_Gdata_Exif_Extension_Make3" GZend_Gdata_Exif_Extension_Iso3, [Zend_Gdata_Exif_Extension_ImageUniqueId3$ KZend_Gdata_Exif_Extension_FStop3* WZend_Gdata_Exif_Extension_FocalLength3$ KZend_Gdata_Exif_Extension_Flash3' QZend_Gdata_Exif_Extension_Exposure3' QZend_Gdata_Exif_Extension_Distance3 7Zend_Gdata_Exif_Entry3 -Zend_Gdata_Entry3 7Zend_Gdata_DublinCore3* WZend_Gdata_DublinCore_Extension_Title3, [Zend_Gdata_DublinCore_Extension_Subject3+ YZend_Gdata_DublinCore_Extension_Rights3. _Zend_Gdata_DublinCore_Extension_Publisher3-
 ]Zend_Gdata_DublinCore_Extension_Language3/	 aZend_Gdata_DublinCore_Extension_Identifier3+ YZend_Gdata_DublinCore_Extension_Format30 cZend_Gdata_DublinCore_Extension_Description3) UZend_Gdata_DublinCore_Extension_Date3, [Zend_Gdata_DublinCore_Extension_Creator3 +Zend_Gdata_Docs3 7Zend_Gdata_Docs_Query3% MZend_Gdata_Docs_DocumentListFeed3& OZend_Gdata_Docs_DocumentListEntry3  9Zend_Gdata_ClientLogin3 3Zend_Gdata_Calendar3!~ EZend_Gdata_Calendar_ListFeed3"} GZend_Gdata_Calendar_ListEntry3-| ]Zend_Gdata_Calendar_Extension_WebContent3+{ YZend_Gdata_Calendar_Extension_Timezone39z uZend_Gdata_Calendar_Extension_SendEventNotifications3+y YZend_Gdata_Calendar_Extension_Selected3+x YZend_Gdata_Calendar_Extension_QuickAdd3'w QZend_Gdata_Calendar_Extension_Link3)v UZend_Gdata_Calendar_Extension_Hidden3(u SZend_Gdata_Calendar_Extension_Color3.t _Zend_Gdata_Calendar_Extension_AccessLevel3#s IZend_Gdata_Calendar_EventQuery3"r GZend_Gdata_Calendar_EventFeed3#q IZend_Gdata_Calendar_EventEntry3p -Zend_Gdata_Books3!o EZend_Gdata_Books_VolumeQuery3 n CZend_Gdata_Books_VolumeFeed3!m EZend_Gdata_Books_VolumeEntry3+l YZend_Gdata_Books_Extension_Viewability3-k ]Zend_Gdata_Books_Extension_ThumbnailLink3&j OZend_Gdata_Books_Extension_Review3+i YZend_Gdata_Books_Extension_PreviewLink3(h SZend_Gdata_Books_Extension_InfoLink3-g ]Zend_Gdata_Books_Extension_Embeddability3)f UZend_Gdata_Books_Extension_BooksLink3-e ]Zend_Gdata_Books_Extension_BooksCategory3.d _Zend_Gdata_Books_Extension_AnnotationLink3$c KZend_Gdata_Books_CollectionFeed3%b MZend_Gdata_Books_CollectionEntry3a 1Zend_Gdata_AuthSub3` )Zend_Gdata_App3$_ KZend_Gdata_App_VersionException3^ 3Zend_Gdata_App_Util3#] IZend_Gdata_App_MediaFileSource3\ ?Zend_Gdata_App_MediaEntry32[ gZend_Gdata_App_LoggingHttpClientAdapterSocket3Z AZend_Gdata_App_IOException3,Y [Zend_Gdata_App_InvalidArgumentException3!X EZend_Gdata_App_HttpException3$W KZend_Gdata_App_FeedSourceParent3#V IZend_Gdata_App_FeedEntryParent3U 3Zend_Gdata_App_Feed3T =Zend_Gdata_App_Extension3!S EZend_Gdata_App_Extension_Uri3%R MZend_Gdata_App_Extension_Updated3#Q IZend_Gdata_App_Extension_Title3"P GZend_Gdata_App_Extension_Text3%O MZend_Gdata_App_Extension_Summary3&N OZend_Gdata_App_Extension_Subtitle3$M KZend_Gdata_App_Extension_Source3$L KZend_Gdata_App_Extension_Rights3'K QZend_Gdata_App_Extension_Published3$J KZend_Gdata_App_Extension_Person3"I GZend_Gdata_App_Extension_Name3"H GZend_Gdata_App_Extension_Logo3"G GZend_Gdata_App_Extension_Link3 F CZend_Gdata_App_Extension_Id3"E GZend_Gdata_App_Extension_Icon3'D QZend_Gdata_App_Extension_Generator3   d  xFjDoW/N/Y0



|
W
0

				x	Y	/	^@nH/w`8v\/p@}P`. hC     # IZend_Gdata_Photos_CommentEntry3! EZend_Gdata_Photos_AlbumQuery3  CZend_Gdata_Photos_AlbumFeed3! EZend_Gdata_Photos_AlbumEntry3 3Zend_Gdata_MimeFile3 ?Zend_Gdata_MimeBodyString3 AZend_Gdata_MediaMimeStream3  -Zend_Gdata_Media3 7Zend_Gdata_Media_Feed3*~ WZend_Gdata_Media_Extension_MediaTitle3.} _Zend_Gdata_Media_Extension_MediaThumbnail3)| UZend_Gdata_Media_Extension_MediaText30{ cZend_Gdata_Media_Extension_MediaRestriction3+z YZend_Gdata_Media_Extension_MediaRating3+y YZend_Gdata_Media_Extension_MediaPlayer3-x ]Zend_Gdata_Media_Extension_MediaKeywords3)w UZend_Gdata_Media_Extension_MediaHash3*v WZend_Gdata_Media_Extension_MediaGroup30u cZend_Gdata_Media_Extension_MediaDescription3+t YZend_Gdata_Media_Extension_MediaCredit3.s _Zend_Gdata_Media_Extension_MediaCopyright3,r [Zend_Gdata_Media_Extension_MediaContent3-q ]Zend_Gdata_Media_Extension_MediaCategory3p 9Zend_Gdata_Media_Entry3o AZend_Gdata_Kind_EventEntry3n 7Zend_Gdata_HttpClient3*m WZend_Gdata_HttpAdapterStreamingSocket3)l UZend_Gdata_HttpAdapterStreamingProxy3k /Zend_Gdata_Health3j ;Zend_Gdata_Health_Query3&i OZend_Gdata_Health_ProfileListFeed3'h QZend_Gdata_Health_ProfileListEntry3"g GZend_Gdata_Health_ProfileFeed3#f IZend_Gdata_Health_ProfileEntry3$e KZend_Gdata_Health_Extension_Ccr3d )Zend_Gdata_Geo3c 3Zend_Gdata_Geo_Feed3$b KZend_Gdata_Geo_Extension_GmlPos3&a OZend_Gdata_Geo_Extension_GmlPoint3)` UZend_Gdata_Geo_Extension_GeoRssWhere3_ 5Zend_Gdata_Geo_Entry3^ -Zend_Gdata_Gbase3"] GZend_Gdata_Gbase_SnippetQuery3!\ EZend_Gdata_Gbase_SnippetFeed3"[ GZend_Gdata_Gbase_SnippetEntry3Z 9Zend_Gdata_Gbase_Query3Y AZend_Gdata_Gbase_ItemQuery3X ?Zend_Gdata_Gbase_ItemFeed3W AZend_Gdata_Gbase_ItemEntry3V 7Zend_Gdata_Gbase_Feed3-U ]Zend_Gdata_Gbase_Extension_BaseAttribute3T 9Zend_Gdata_Gbase_Entry3S -Zend_Gdata_Gapps3R AZend_Gdata_Gapps_UserQuery3Q ?Zend_Gdata_Gapps_UserFeed3P AZend_Gdata_Gapps_UserEntry3&O OZend_Gdata_Gapps_ServiceException3N 9Zend_Gdata_Gapps_Query3 M CZend_Gdata_Gapps_OwnerQuery3L AZend_Gdata_Gapps_OwnerFeed3 K CZend_Gdata_Gapps_OwnerEntry3#J IZend_Gdata_Gapps_NicknameQuery3"I GZend_Gdata_Gapps_NicknameFeed3#H IZend_Gdata_Gapps_NicknameEntry3!G EZend_Gdata_Gapps_MemberQuery3 F CZend_Gdata_Gapps_MemberFeed3!E EZend_Gdata_Gapps_MemberEntry3 D CZend_Gdata_Gapps_GroupQuery3C AZend_Gdata_Gapps_GroupFeed3 B CZend_Gdata_Gapps_GroupEntry3%A MZend_Gdata_Gapps_Extension_Quota3(@ SZend_Gdata_Gapps_Extension_Property3(? SZend_Gdata_Gapps_Extension_Nickname3$> KZend_Gdata_Gapps_Extension_Name3%= MZend_Gdata_Gapps_Extension_Login3)< UZend_Gdata_Gapps_Extension_EmailList3; 9Zend_Gdata_Gapps_Error3-: ]Zend_Gdata_Gapps_EmailListRecipientQuery3,9 [Zend_Gdata_Gapps_EmailListRecipientFeed3-8 ]Zend_Gdata_Gapps_EmailListRecipientEntry3$7 KZend_Gdata_Gapps_EmailListQuery3#6 IZend_Gdata_Gapps_EmailListFeed3$5 KZend_Gdata_Gapps_EmailListEntry34 +Zend_Gdata_Feed33 5Zend_Gdata_Extension32 =Zend_Gdata_Extension_Who31 AZend_Gdata_Extension_Where30 ?Zend_Gdata_Extension_When3$/ KZend_Gdata_Extension_Visibility3&. OZend_Gdata_Extension_Transparency3"- GZend_Gdata_Extension_Reminder3-, ]Zend_Gdata_Extension_RecurrenceException3$+ KZend_Gdata_Extension_Recurrence3 * CZend_Gdata_Extension_Rating3') QZend_Gdata_Extension_OriginalEvent30( cZend_Gdata_Extension_OpenSearchTotalResults3.' _Zend_Gdata_Extension_OpenSearchStartIndex30& cZend_Gdata_Extension_OpenSearchItemsPerPage3"% GZend_Gdata_Extension_FeedLink3*$ WZend_Gdata_Extension_ExtendedProperty3   X  {N#j=L f=a7




_
;
!
				]	.mD\<tM rC\. vE`0 rA                                                  *_ WZend_Gdata_YouTube_Extension_Recorded3&^ OZend_Gdata_YouTube_Extension_Racy3-] ]Zend_Gdata_YouTube_Extension_QueryString3)\ UZend_Gdata_YouTube_Extension_Private3*[ WZend_Gdata_YouTube_Extension_Position3/Z aZend_Gdata_YouTube_Extension_PlaylistTitle3,Y [Zend_Gdata_YouTube_Extension_PlaylistId3,X [Zend_Gdata_YouTube_Extension_Occupation3)W UZend_Gdata_YouTube_Extension_NoEmbed3'V QZend_Gdata_YouTube_Extension_Music3(U SZend_Gdata_YouTube_Extension_Movies3-T ]Zend_Gdata_YouTube_Extension_MediaRating3,S [Zend_Gdata_YouTube_Extension_MediaGroup3-R ]Zend_Gdata_YouTube_Extension_MediaCredit3.Q _Zend_Gdata_YouTube_Extension_MediaContent3*P WZend_Gdata_YouTube_Extension_Location3&O OZend_Gdata_YouTube_Extension_Link3*N WZend_Gdata_YouTube_Extension_LastName3*M WZend_Gdata_YouTube_Extension_Hometown3)L UZend_Gdata_YouTube_Extension_Hobbies3(K SZend_Gdata_YouTube_Extension_Gender3+J YZend_Gdata_YouTube_Extension_FirstName3*I WZend_Gdata_YouTube_Extension_Duration3-H ]Zend_Gdata_YouTube_Extension_Description3+G YZend_Gdata_YouTube_Extension_CountHint3)F UZend_Gdata_YouTube_Extension_Control3)E UZend_Gdata_YouTube_Extension_Company3'D QZend_Gdata_YouTube_Extension_Books3%C MZend_Gdata_YouTube_Extension_Age3)B UZend_Gdata_YouTube_Extension_AboutMe3#A IZend_Gdata_YouTube_ContactFeed3$@ KZend_Gdata_YouTube_ContactEntry3#? IZend_Gdata_YouTube_CommentFeed3$> KZend_Gdata_YouTube_CommentEntry3$= KZend_Gdata_YouTube_ActivityFeed3%< MZend_Gdata_YouTube_ActivityEntry3; ;Zend_Gdata_Spreadsheets3*: WZend_Gdata_Spreadsheets_WorksheetFeed3+9 YZend_Gdata_Spreadsheets_WorksheetEntry3,8 [Zend_Gdata_Spreadsheets_SpreadsheetFeed3-7 ]Zend_Gdata_Spreadsheets_SpreadsheetEntry3&6 OZend_Gdata_Spreadsheets_ListQuery3%5 MZend_Gdata_Spreadsheets_ListFeed3&4 OZend_Gdata_Spreadsheets_ListEntry3/3 aZend_Gdata_Spreadsheets_Extension_RowCount3-2 ]Zend_Gdata_Spreadsheets_Extension_Custom3/1 aZend_Gdata_Spreadsheets_Extension_ColCount3+0 YZend_Gdata_Spreadsheets_Extension_Cell3*/ WZend_Gdata_Spreadsheets_DocumentQuery3&. OZend_Gdata_Spreadsheets_CellQuery3%- MZend_Gdata_Spreadsheets_CellFeed3&, OZend_Gdata_Spreadsheets_CellEntry3+ -Zend_Gdata_Query3* /Zend_Gdata_Photos3 ) CZend_Gdata_Photos_UserQuery3( AZend_Gdata_Photos_UserFeed3 ' CZend_Gdata_Photos_UserEntry3& AZend_Gdata_Photos_TagEntry3!% EZend_Gdata_Photos_PhotoQuery3 $ CZend_Gdata_Photos_PhotoFeed3!# EZend_Gdata_Photos_PhotoEntry3&" OZend_Gdata_Photos_Extension_Width3'! QZend_Gdata_Photos_Extension_Weight3(  SZend_Gdata_Photos_Extension_Version3% MZend_Gdata_Photos_Extension_User3* WZend_Gdata_Photos_Extension_Timestamp3* WZend_Gdata_Photos_Extension_Thumbnail3% MZend_Gdata_Photos_Extension_Size3) UZend_Gdata_Photos_Extension_Rotation3+ YZend_Gdata_Photos_Extension_QuotaLimit3- ]Zend_Gdata_Photos_Extension_QuotaCurrent3) UZend_Gdata_Photos_Extension_Position3( SZend_Gdata_Photos_Extension_PhotoId33 iZend_Gdata_Photos_Extension_NumPhotosRemaining3* WZend_Gdata_Photos_Extension_NumPhotos3) UZend_Gdata_Photos_Extension_Nickname3% MZend_Gdata_Photos_Extension_Name32 gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum3) UZend_Gdata_Photos_Extension_Location3# IZend_Gdata_Photos_Extension_Id3' QZend_Gdata_Photos_Extension_Height32 gZend_Gdata_Photos_Extension_CommentingEnabled3- ]Zend_Gdata_Photos_Extension_CommentCount3' QZend_Gdata_Photos_Extension_Client3) UZend_Gdata_Photos_Extension_Checksum3*
 WZend_Gdata_Photos_Extension_BytesUsed3(	 SZend_Gdata_Photos_Extension_AlbumId3' QZend_Gdata_Photos_Extension_Access3   g  qFc6l>fA uM'




x
]
7
				Q	|\3e>yLpMa>lSAdG+wY<                    F -Zend_Ldap_Filter3E ;Zend_Ldap_Filter_String3D 3Zend_Ldap_Filter_Or3C 5Zend_Ldap_Filter_Not3B 7Zend_Ldap_Filter_Mask3A =Zend_Ldap_Filter_Logical3@ AZend_Ldap_Filter_Exception3? 5Zend_Ldap_Filter_And3> ?Zend_Ldap_Filter_Abstract3= 3Zend_Ldap_Exception3< %Zend_Ldap_Dn3; 3Zend_Ldap_Converter3: 5Zend_Ldap_Collection3*9 WZend_Ldap_Collection_Iterator_Default38 3Zend_Ldap_Attribute37 #Zend_Layout36 7Zend_Layout_Exception3)5 UZend_Layout_Controller_Plugin_Layout304 cZend_Layout_Controller_Action_Helper_Layout33 Zend_Json32 -Zend_Json_Server31 5Zend_Json_Server_Smd3!0 EZend_Json_Server_Smd_Service3/ ?Zend_Json_Server_Response3#. IZend_Json_Server_Response_Http3- =Zend_Json_Server_Request3", GZend_Json_Server_Request_Http3+ AZend_Json_Server_Exception3* 9Zend_Json_Server_Error3) 9Zend_Json_Server_Cache3( )Zend_Json_Expr3' 3Zend_Json_Exception3& /Zend_Json_Encoder3% /Zend_Json_Decoder3$ 'Zend_InfoCard3-# ]Zend_InfoCard_Xml_SecurityTokenReference3" AZend_InfoCard_Xml_Security3)! UZend_InfoCard_Xml_Security_Transform34  kZend_InfoCard_Xml_Security_Transform_XmlExcC14N33 iZend_InfoCard_Xml_Security_Transform_Exception3< {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignature3) UZend_InfoCard_Xml_Security_Exception3 ?Zend_InfoCard_Xml_KeyInfo3& OZend_InfoCard_Xml_KeyInfo_XmlDSig3& OZend_InfoCard_Xml_KeyInfo_Default3' QZend_InfoCard_Xml_KeyInfo_Abstract3  CZend_InfoCard_Xml_Exception3# IZend_InfoCard_Xml_EncryptedKey3$ KZend_InfoCard_Xml_EncryptedData3+ YZend_InfoCard_Xml_EncryptedData_XmlEnc3- ]Zend_InfoCard_Xml_EncryptedData_Abstract3 ?Zend_InfoCard_Xml_Element3  CZend_InfoCard_Xml_Assertion3% MZend_InfoCard_Xml_Assertion_Saml3 ;Zend_InfoCard_Exception3% MZend_InfoCard_Exception_Abstract3 5Zend_InfoCard_Claims3 5Zend_InfoCard_Cipher35 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc35 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc34
 kZend_InfoCard_Cipher_Symmetric_Adapter_Abstract3)	 UZend_InfoCard_Cipher_Pki_Adapter_Rsa3. _Zend_InfoCard_Cipher_Pki_Adapter_Abstract3# IZend_InfoCard_Cipher_Exception3$ KZend_InfoCard_Adapter_Exception3" GZend_InfoCard_Adapter_Default3 1Zend_Http_Response3 ?Zend_Http_Response_Stream3 3Zend_Http_Exception3 3Zend_Http_CookieJar3  -Zend_Http_Cookie3 -Zend_Http_Client3~ AZend_Http_Client_Exception3"} GZend_Http_Client_Adapter_Test3$| KZend_Http_Client_Adapter_Socket3#{ IZend_Http_Client_Adapter_Proxy3'z QZend_Http_Client_Adapter_Exception3"y GZend_Http_Client_Adapter_Curl3x !Zend_Gdata3w 1Zend_Gdata_YouTube3"v GZend_Gdata_YouTube_VideoQuery3!u EZend_Gdata_YouTube_VideoFeed3"t GZend_Gdata_YouTube_VideoEntry3(s SZend_Gdata_YouTube_UserProfileEntry3(r SZend_Gdata_YouTube_SubscriptionFeed3)q UZend_Gdata_YouTube_SubscriptionEntry3)p UZend_Gdata_YouTube_PlaylistVideoFeed3*o WZend_Gdata_YouTube_PlaylistVideoEntry3(n SZend_Gdata_YouTube_PlaylistListFeed3)m UZend_Gdata_YouTube_PlaylistListEntry3"l GZend_Gdata_YouTube_MediaEntry3!k EZend_Gdata_YouTube_InboxFeed3"j GZend_Gdata_YouTube_InboxEntry3)i UZend_Gdata_YouTube_Extension_VideoId3*h WZend_Gdata_YouTube_Extension_Username3*g WZend_Gdata_YouTube_Extension_Uploaded3'f QZend_Gdata_YouTube_Extension_Token3(e SZend_Gdata_YouTube_Extension_Status3,d [Zend_Gdata_YouTube_Extension_Statistics3'c QZend_Gdata_YouTube_Extension_State3(b SZend_Gdata_YouTube_Extension_School3-a ]Zend_Gdata_YouTube_Extension_ReleaseDate3.` _Zend_Gdata_YouTube_Extension_Relationship3   s  wHm8cL:uP7rQ1




j
O
/
					v	e	I	*	tT'jA{P6uS.hAa?$
hK/wU9                 9 3Zend_Measure_Number38 9Zend_Measure_Lightness37 3Zend_Measure_Length36 ?Zend_Measure_Illumination35 9Zend_Measure_Frequency34 1Zend_Measure_Force33 =Zend_Measure_Flow_Volume32 9Zend_Measure_Flow_Mole31 9Zend_Measure_Flow_Mass30 9Zend_Measure_Exception3/ 3Zend_Measure_Energy3. 5Zend_Measure_Density3- 5Zend_Measure_Current3 , CZend_Measure_Cooking_Weight3 + CZend_Measure_Cooking_Volume3* =Zend_Measure_Capacitance3) 3Zend_Measure_Binary3( /Zend_Measure_Area3' 1Zend_Measure_Angle3& ?Zend_Measure_Acceleration3% 7Zend_Measure_Abstract3$ #Zend_Markup3# 7Zend_Markup_TokenList3" /Zend_Markup_Token3*! WZend_Markup_Renderer_RendererAbstract3  ?Zend_Markup_Renderer_Html3" GZend_Markup_Renderer_Html_Url3# IZend_Markup_Renderer_Html_List3" GZend_Markup_Renderer_Html_Img3+ YZend_Markup_Renderer_Html_HtmlAbstract3# IZend_Markup_Renderer_Html_Code3# IZend_Markup_Renderer_Exception3 AZend_Markup_Parser_Textile3! EZend_Markup_Parser_Exception3 ?Zend_Markup_Parser_Bbcode3 7Zend_Markup_Exception3 Zend_Mail3 =Zend_Mail_Transport_Smtp3! EZend_Mail_Transport_Sendmail3" GZend_Mail_Transport_Exception3! EZend_Mail_Transport_Abstract3 /Zend_Mail_Storage3' QZend_Mail_Storage_Writable_Maildir3 9Zend_Mail_Storage_Pop33 9Zend_Mail_Storage_Mbox3 ?Zend_Mail_Storage_Maildir3 9Zend_Mail_Storage_Imap3
 =Zend_Mail_Storage_Folder3"	 GZend_Mail_Storage_Folder_Mbox3% MZend_Mail_Storage_Folder_Maildir3  CZend_Mail_Storage_Exception3 AZend_Mail_Storage_Abstract3 ;Zend_Mail_Protocol_Smtp3' QZend_Mail_Protocol_Smtp_Auth_Plain3' QZend_Mail_Protocol_Smtp_Auth_Login3) UZend_Mail_Protocol_Smtp_Auth_Crammd53 ;Zend_Mail_Protocol_Pop33  ;Zend_Mail_Protocol_Imap3! EZend_Mail_Protocol_Exception3 ~ CZend_Mail_Protocol_Abstract3} )Zend_Mail_Part3| 3Zend_Mail_Part_File3{ /Zend_Mail_Message3z 9Zend_Mail_Message_File3y 3Zend_Mail_Exception3x Zend_Log3 w CZend_Log_Writer_ZendMonitor3v 9Zend_Log_Writer_Syslog3u 9Zend_Log_Writer_Stream3t 5Zend_Log_Writer_Null3s 5Zend_Log_Writer_Mock3r 5Zend_Log_Writer_Mail3q ;Zend_Log_Writer_Firebug3p 1Zend_Log_Writer_Db3o =Zend_Log_Writer_Abstract3n 9Zend_Log_Formatter_Xml3m ?Zend_Log_Formatter_Simple3l AZend_Log_Formatter_Firebug3k =Zend_Log_Filter_Suppress3j =Zend_Log_Filter_Priority3i ;Zend_Log_Filter_Message3h =Zend_Log_Filter_Abstract3g 1Zend_Log_Exception3f #Zend_Locale3e -Zend_Locale_Math3d =Zend_Locale_Math_PhpMath3c AZend_Locale_Math_Exception3b 1Zend_Locale_Format3a 7Zend_Locale_Exception3` -Zend_Locale_Data3!_ EZend_Locale_Data_Translation3^ #Zend_Loader3] =Zend_Loader_PluginLoader3'\ QZend_Loader_PluginLoader_Exception3[ 7Zend_Loader_Exception3Z 9Zend_Loader_Autoloader3$Y KZend_Loader_Autoloader_Resource3X Zend_Ldap3W )Zend_Ldap_Node3V 7Zend_Ldap_Node_Schema3#U IZend_Ldap_Node_Schema_OpenLdap3/T aZend_Ldap_Node_Schema_ObjectClass_OpenLdap36S oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectory3R AZend_Ldap_Node_Schema_Item31Q eZend_Ldap_Node_Schema_AttributeType_OpenLdap38P sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory3*O WZend_Ldap_Node_Schema_ActiveDirectory3N 9Zend_Ldap_Node_RootDse3$M KZend_Ldap_Node_RootDse_OpenLdap3&L OZend_Ldap_Node_RootDse_eDirectory3+K YZend_Ldap_Node_RootDse_ActiveDirectory3J ?Zend_Ldap_Node_Collection3$I KZend_Ldap_Node_ChildrenIterator3H ;Zend_Ldap_Node_Abstract3G 9Zend_Ldap_Ldif_Encoder3   s qU.]?!q_=pT7jC"




n
[
1
					f	A	wJ"W)eH%c?!mB!tO,eD}S(                       , AZend_Pdf_Destination_Named3'+ QZend_Pdf_Destination_FitVertically3&* OZend_Pdf_Destination_FitRectangle3)) UZend_Pdf_Destination_FitHorizontally32( gZend_Pdf_Destination_FitBoundingBoxVertically34' kZend_Pdf_Destination_FitBoundingBoxHorizontally3(& SZend_Pdf_Destination_FitBoundingBox3% =Zend_Pdf_Destination_Fit3"$ GZend_Pdf_Destination_Explicit3# )Zend_Pdf_Color3" 1Zend_Pdf_Color_Rgb3! 3Zend_Pdf_Color_Html3  =Zend_Pdf_Color_GrayScale3 3Zend_Pdf_Color_Cmyk3 'Zend_Pdf_Cmap3 AZend_Pdf_Cmap_TrimmedTable3! EZend_Pdf_Cmap_SegmentToDelta3 AZend_Pdf_Cmap_ByteEncoding3& OZend_Pdf_Cmap_ByteEncoding_Static3 3Zend_Pdf_Annotation3 =Zend_Pdf_Annotation_Text3 AZend_Pdf_Annotation_Markup3 =Zend_Pdf_Annotation_Link3' QZend_Pdf_Annotation_FileAttachment3 +Zend_Pdf_Action3 3Zend_Pdf_Action_URI3 ;Zend_Pdf_Action_Unknown3 7Zend_Pdf_Action_Trans3 9Zend_Pdf_Action_Thread3 AZend_Pdf_Action_SubmitForm3 7Zend_Pdf_Action_Sound3  CZend_Pdf_Action_SetOCGState3 ?Zend_Pdf_Action_ResetForm3 ?Zend_Pdf_Action_Rendition3
 7Zend_Pdf_Action_Named3	 7Zend_Pdf_Action_Movie3 9Zend_Pdf_Action_Launch3 AZend_Pdf_Action_JavaScript3 AZend_Pdf_Action_ImportData3 5Zend_Pdf_Action_Hide3 7Zend_Pdf_Action_GoToR3 7Zend_Pdf_Action_GoToE3 AZend_Pdf_Action_GoTo3DView3 5Zend_Pdf_Action_GoTo3  )Zend_Paginator3- ]Zend_Paginator_SerializableLimitIterator3*~ WZend_Paginator_ScrollingStyle_Sliding3*} WZend_Paginator_ScrollingStyle_Jumping3*| WZend_Paginator_ScrollingStyle_Elastic3&{ OZend_Paginator_ScrollingStyle_All3z =Zend_Paginator_Exception3 y CZend_Paginator_Adapter_Null3$x KZend_Paginator_Adapter_Iterator3)w UZend_Paginator_Adapter_DbTableSelect3$v KZend_Paginator_Adapter_DbSelect3!u EZend_Paginator_Adapter_Array3t #Zend_OpenId3s 5Zend_OpenId_Provider3r ?Zend_OpenId_Provider_User3&q OZend_OpenId_Provider_User_Session3!p EZend_OpenId_Provider_Storage3&o OZend_OpenId_Provider_Storage_File3n 7Zend_OpenId_Extension3m AZend_OpenId_Extension_Sreg3l 7Zend_OpenId_Exception3k 5Zend_OpenId_Consumer3!j EZend_OpenId_Consumer_Storage3&i OZend_OpenId_Consumer_Storage_File3h !Zend_Oauth3g -Zend_Oauth_Token3f =Zend_Oauth_Token_Request3'e QZend_Oauth_Token_AuthorizedRequest3d ;Zend_Oauth_Token_Access3+c YZend_Oauth_Signature_SignatureAbstract3b =Zend_Oauth_Signature_Rsa3#a IZend_Oauth_Signature_Plaintext3` ?Zend_Oauth_Signature_Hmac3_ +Zend_Oauth_Http3^ ;Zend_Oauth_Http_Utility3&] OZend_Oauth_Http_UserAuthorization3!\ EZend_Oauth_Http_RequestToken3 [ CZend_Oauth_Http_AccessToken3Z 5Zend_Oauth_Exception3Y 3Zend_Oauth_Consumer3X /Zend_Oauth_Config3W /Zend_Oauth_Client3V +Zend_Navigation3U 5Zend_Navigation_Page3T =Zend_Navigation_Page_Uri3S =Zend_Navigation_Page_Mvc3R ?Zend_Navigation_Exception3Q ?Zend_Navigation_Container3P Zend_Mime3O )Zend_Mime_Part3N /Zend_Mime_Message3M 3Zend_Mime_Exception3L -Zend_Mime_Decode3K #Zend_Memory3J /Zend_Memory_Value3I 3Zend_Memory_Manager3H 7Zend_Memory_Exception3G 7Zend_Memory_Container3"F GZend_Memory_Container_Movable3!E EZend_Memory_Container_Locked3!D EZend_Memory_AccessController3C 3Zend_Measure_Weight3B 3Zend_Measure_Volume3%A MZend_Measure_Viscosity_Kinematic3#@ IZend_Measure_Viscosity_Dynamic3? 3Zend_Measure_Torque3> /Zend_Measure_Time3= =Zend_Measure_Temperature3< 1Zend_Measure_Speed3; 7Zend_Measure_Pressure3: 1Zend_Measure_Power3   d  }\8i@wW<	vZ/qI%




{
b
L
4				}	O	z8?QqK&yR8jY0qX4	[;                                    5Zend_Queue_Exception3( SZend_Queue_Adapter_PlatformJobQueue3 ;Zend_Queue_Adapter_Null3! EZend_Queue_Adapter_Memcacheq3 7Zend_Queue_Adapter_Db3  CZend_Queue_Adapter_Db_Queue3"
 GZend_Queue_Adapter_Db_Message3	 =Zend_Queue_Adapter_Array3' QZend_Queue_Adapter_AdapterAbstract3  CZend_Queue_Adapter_Activemq3 -Zend_ProgressBar3 AZend_ProgressBar_Exception3 =Zend_ProgressBar_Adapter3$ KZend_ProgressBar_Adapter_JsPush3$ KZend_ProgressBar_Adapter_JsPull3' QZend_ProgressBar_Adapter_Exception3%  MZend_ProgressBar_Adapter_Console3 Zend_Pdf3!~ EZend_Pdf_UpdateInfoContainer3} -Zend_Pdf_Trailer3| ;Zend_Pdf_Trailer_Keeper3{ AZend_Pdf_Trailer_Generator3z +Zend_Pdf_Target3y )Zend_Pdf_Style3x 7Zend_Pdf_StringParser3w /Zend_Pdf_Resource3#v IZend_Pdf_Resource_ImageFactory3u ;Zend_Pdf_Resource_Image3!t EZend_Pdf_Resource_Image_Tiff3 s CZend_Pdf_Resource_Image_Png3!r EZend_Pdf_Resource_Image_Jpeg3q 9Zend_Pdf_Resource_Font3!p EZend_Pdf_Resource_Font_Type03"o GZend_Pdf_Resource_Font_Simple3+n YZend_Pdf_Resource_Font_Simple_Standard38m sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats36l oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman37k qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic3;j yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic35i mZend_Pdf_Resource_Font_Simple_Standard_TimesBold32h gZend_Pdf_Resource_Font_Simple_Standard_Symbol3<g {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaOblique3Af Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique39e uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold35d mZend_Pdf_Resource_Font_Simple_Standard_Helvetica3:c wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique3>b Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique37a qZend_Pdf_Resource_Font_Simple_Standard_CourierBold33` iZend_Pdf_Resource_Font_Simple_Standard_Courier3)_ UZend_Pdf_Resource_Font_Simple_Parsed32^ gZend_Pdf_Resource_Font_Simple_Parsed_TrueType3*] WZend_Pdf_Resource_Font_FontDescriptor3%\ MZend_Pdf_Resource_Font_Extracted3#[ IZend_Pdf_Resource_Font_CidFont3,Z [Zend_Pdf_Resource_Font_CidFont_TrueType33Y iZend_Pdf_RecursivelyIteratableObjectsContainer3X +Zend_Pdf_Parser3W 'Zend_Pdf_Page3V -Zend_Pdf_Outline3U ;Zend_Pdf_Outline_Loaded3T =Zend_Pdf_Outline_Created3S /Zend_Pdf_NameTree3R )Zend_Pdf_Image3Q 'Zend_Pdf_Font3P ?Zend_Pdf_Filter_RunLength3 O CZend_Pdf_Filter_Compression3$N KZend_Pdf_Filter_Compression_Lzw3&M OZend_Pdf_Filter_Compression_Flate3L =Zend_Pdf_Filter_AsciiHex3K ;Zend_Pdf_Filter_Ascii853"J GZend_Pdf_FileParserDataSource3)I UZend_Pdf_FileParserDataSource_String3'H QZend_Pdf_FileParserDataSource_File3G 3Zend_Pdf_FileParser3F ?Zend_Pdf_FileParser_Image3"E GZend_Pdf_FileParser_Image_Png3D =Zend_Pdf_FileParser_Font3&C OZend_Pdf_FileParser_Font_OpenType3/B aZend_Pdf_FileParser_Font_OpenType_TrueType3A 1Zend_Pdf_Exception3@ ;Zend_Pdf_ElementFactory3"? GZend_Pdf_ElementFactory_Proxy3> -Zend_Pdf_Element3= ;Zend_Pdf_Element_String3#< IZend_Pdf_Element_String_Binary3; ;Zend_Pdf_Element_Stream3: AZend_Pdf_Element_Reference3%9 MZend_Pdf_Element_Reference_Table3'8 QZend_Pdf_Element_Reference_Context37 ;Zend_Pdf_Element_Object3#6 IZend_Pdf_Element_Object_Stream35 =Zend_Pdf_Element_Numeric34 7Zend_Pdf_Element_Null33 7Zend_Pdf_Element_Name3 2 CZend_Pdf_Element_Dictionary31 =Zend_Pdf_Element_Boolean30 9Zend_Pdf_Element_Array3/ 5Zend_Pdf_Destination3. ?Zend_Pdf_Destination_Zoom3!- EZend_Pdf_Destination_Unknown3   X  oO0b@~hEnU7g+


[
				Z	wN yU0mBl=j7yIVl>                                         -h ]Zend_Search_Lucene_Search_Query_Wildcard3)g UZend_Search_Lucene_Search_Query_Term3*f WZend_Search_Lucene_Search_Query_Range32e gZend_Search_Lucene_Search_Query_Preprocessing37d qZend_Search_Lucene_Search_Query_Preprocessing_Term39c uZend_Search_Lucene_Search_Query_Preprocessing_Phrase38b sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy3+a YZend_Search_Lucene_Search_Query_Phrase3.` _Zend_Search_Lucene_Search_Query_MultiTerm32_ gZend_Search_Lucene_Search_Query_Insignificant3*^ WZend_Search_Lucene_Search_Query_Fuzzy3*] WZend_Search_Lucene_Search_Query_Empty3,\ [Zend_Search_Lucene_Search_Query_Boolean32[ gZend_Search_Lucene_Search_Highlighter_Default3:Z wZend_Search_Lucene_Search_BooleanExpressionRecognizer3Y =Zend_Search_Lucene_Proxy3%X MZend_Search_Lucene_PriorityQueue3/W aZend_Search_Lucene_Interface_MultiSearcher3#V IZend_Search_Lucene_LockManager3$U KZend_Search_Lucene_Index_Writer30T cZend_Search_Lucene_Index_TermsPriorityQueue3&S OZend_Search_Lucene_Index_TermInfo3"R GZend_Search_Lucene_Index_Term3+Q YZend_Search_Lucene_Index_SegmentWriter38P sZend_Search_Lucene_Index_SegmentWriter_StreamWriter3:O wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter3+N YZend_Search_Lucene_Index_SegmentMerger3)M UZend_Search_Lucene_Index_SegmentInfo3'L QZend_Search_Lucene_Index_FieldInfo3(K SZend_Search_Lucene_Index_DocsFilter3.J _Zend_Search_Lucene_Index_DictionaryLoader3!I EZend_Search_Lucene_FSMAction3H 9Zend_Search_Lucene_FSM3G =Zend_Search_Lucene_Field3!F EZend_Search_Lucene_Exception3 E CZend_Search_Lucene_Document3%D MZend_Search_Lucene_Document_Xlsx3%C MZend_Search_Lucene_Document_Pptx3(B SZend_Search_Lucene_Document_OpenXml3%A MZend_Search_Lucene_Document_Html3*@ WZend_Search_Lucene_Document_Exception3%? MZend_Search_Lucene_Document_Docx3,> [Zend_Search_Lucene_Analysis_TokenFilter36= oZend_Search_Lucene_Analysis_TokenFilter_StopWords37< qZend_Search_Lucene_Analysis_TokenFilter_ShortWords3:; wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf836: oZend_Search_Lucene_Analysis_TokenFilter_LowerCase3&9 OZend_Search_Lucene_Analysis_Token3)8 UZend_Search_Lucene_Analysis_Analyzer307 cZend_Search_Lucene_Analysis_Analyzer_Common386 sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num3I5 Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive354 mZend_Search_Lucene_Analysis_Analyzer_Common_Utf83F3 Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive382 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum3I1 Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive350 mZend_Search_Lucene_Analysis_Analyzer_Common_Text3F/ Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive3. 7Zend_Search_Exception3- -Zend_Rest_Server3, AZend_Rest_Server_Exception3+ +Zend_Rest_Route3* 3Zend_Rest_Exception3) 5Zend_Rest_Controller3( -Zend_Rest_Client3' ;Zend_Rest_Client_Result3&& OZend_Rest_Client_Result_Exception3% AZend_Rest_Client_Exception3$ 'Zend_Registry3# =Zend_Reflection_Property3" ?Zend_Reflection_Parameter3! 9Zend_Reflection_Method3  =Zend_Reflection_Function3 5Zend_Reflection_File3 ?Zend_Reflection_Extension3 ?Zend_Reflection_Exception3 =Zend_Reflection_Docblock3! EZend_Reflection_Docblock_Tag3( SZend_Reflection_Docblock_Tag_Return3' QZend_Reflection_Docblock_Tag_Param3 7Zend_Reflection_Class3 !Zend_Queue3 9Zend_Queue_Stomp_Frame3 ;Zend_Queue_Stomp_Client3' QZend_Queue_Stomp_Client_Connection3 1Zend_Queue_Message3# IZend_Queue_Message_PlatformJob3  CZend_Queue_Message_Iterator3   _  n<T].t<Q6



n
F
					p	V	7	`7kBpEqG!mF|Z9W1]4                                   $G KZend_Service_Delicious_PostList3 F CZend_Service_Delicious_Post3%E MZend_Service_Delicious_Exception3 D CZend_Service_Audioscrobbler3C 3Zend_Service_Amazon3B ;Zend_Service_Amazon_Sqs3&A OZend_Service_Amazon_Sqs_Exception3'@ QZend_Service_Amazon_SimilarProduct3? 9Zend_Service_Amazon_S33"> GZend_Service_Amazon_S3_Stream3%= MZend_Service_Amazon_S3_Exception3"< GZend_Service_Amazon_ResultSet3; ?Zend_Service_Amazon_Query3!: EZend_Service_Amazon_OfferSet39 ?Zend_Service_Amazon_Offer3&8 OZend_Service_Amazon_ListmaniaList37 =Zend_Service_Amazon_Item36 ?Zend_Service_Amazon_Image3"5 GZend_Service_Amazon_Exception3(4 SZend_Service_Amazon_EditorialReview33 ;Zend_Service_Amazon_Ec23+2 YZend_Service_Amazon_Ec2_Securitygroups3%1 MZend_Service_Amazon_Ec2_Response3#0 IZend_Service_Amazon_Ec2_Region3$/ KZend_Service_Amazon_Ec2_Keypair3%. MZend_Service_Amazon_Ec2_Instance3-- ]Zend_Service_Amazon_Ec2_Instance_Windows3., _Zend_Service_Amazon_Ec2_Instance_Reserved3"+ GZend_Service_Amazon_Ec2_Image3&* OZend_Service_Amazon_Ec2_Exception3&) OZend_Service_Amazon_Ec2_Elasticip3 ( CZend_Service_Amazon_Ec2_Ebs3'' QZend_Service_Amazon_Ec2_CloudWatch3.& _Zend_Service_Amazon_Ec2_Availabilityzones3%% MZend_Service_Amazon_Ec2_Abstract3'$ QZend_Service_Amazon_CustomerReview3$# KZend_Service_Amazon_Accessories3!" EZend_Service_Amazon_Abstract3! 5Zend_Service_Akismet3  7Zend_Service_Abstract3 9Zend_Server_Reflection3' QZend_Server_Reflection_ReturnValue3% MZend_Server_Reflection_Prototype3% MZend_Server_Reflection_Parameter3  CZend_Server_Reflection_Node3" GZend_Server_Reflection_Method3$ KZend_Server_Reflection_Function3- ]Zend_Server_Reflection_Function_Abstract3% MZend_Server_Reflection_Exception3! EZend_Server_Reflection_Class3! EZend_Server_Method_Prototype3! EZend_Server_Method_Parameter3" GZend_Server_Method_Definition3  CZend_Server_Method_Callback3 7Zend_Server_Exception3 9Zend_Server_Definition3 /Zend_Server_Cache3 5Zend_Server_Abstract3 +Zend_Serializer3 ?Zend_Serializer_Exception3! EZend_Serializer_Adapter_Wddx3)
 UZend_Serializer_Adapter_PythonPickle3)	 UZend_Serializer_Adapter_PhpSerialize3$ KZend_Serializer_Adapter_PhpCode3! EZend_Serializer_Adapter_Json3% MZend_Serializer_Adapter_Igbinary3! EZend_Serializer_Adapter_Amf33! EZend_Serializer_Adapter_Amf03, [Zend_Serializer_Adapter_AdapterAbstract3 1Zend_Search_Lucene30 cZend_Search_Lucene_TermStreamsPriorityQueue3$  KZend_Search_Lucene_Storage_File3+ YZend_Search_Lucene_Storage_File_Memory3/~ aZend_Search_Lucene_Storage_File_Filesystem3)} UZend_Search_Lucene_Storage_Directory34| kZend_Search_Lucene_Storage_Directory_Filesystem3%{ MZend_Search_Lucene_Search_Weight3*z WZend_Search_Lucene_Search_Weight_Term3,y [Zend_Search_Lucene_Search_Weight_Phrase3/x aZend_Search_Lucene_Search_Weight_MultiTerm3+w YZend_Search_Lucene_Search_Weight_Empty3-v ]Zend_Search_Lucene_Search_Weight_Boolean3)u UZend_Search_Lucene_Search_Similarity31t eZend_Search_Lucene_Search_Similarity_Default3)s UZend_Search_Lucene_Search_QueryToken33r iZend_Search_Lucene_Search_QueryParserException31q eZend_Search_Lucene_Search_QueryParserContext3*p WZend_Search_Lucene_Search_QueryParser3)o UZend_Search_Lucene_Search_QueryLexer3'n QZend_Search_Lucene_Search_QueryHit3)m UZend_Search_Lucene_Search_QueryEntry3.l _Zend_Search_Lucene_Search_QueryEntry_Term32k gZend_Search_Lucene_Search_QueryEntry_Subquery30j cZend_Search_Lucene_Search_QueryEntry_Phrase3$i KZend_Search_Lucene_Search_Query3   6  r=THV'@

q
		e	]B6&sY6z4                                           C} Zend_Service_DeveloperGarden_Request_SmsValidation_Invalidate3L| Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbers3B{ Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract39z uZend_Service_DeveloperGarden_Request_SendSms_SendSMS3>y Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS39x uZend_Service_DeveloperGarden_Request_RequestAbstract3Iw Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequest3Ev Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest33u iZend_Service_DeveloperGarden_Request_Exception3Rt %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequest3Ys 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequest3dr IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequest3Qq #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequest3Rp %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequest3Yo 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequest3dn IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequest3Qm #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequest3Ol Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequest3Uk +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequest3Uj +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequest3Vi -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequest3ah CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequest3Zg 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequest3Tf )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequest3Re %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequest3Yd 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequest3Qc #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequest3Qb #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequest3aa CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequest3N` Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformation3L_ Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalance3J^ Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool3-] ]Zend_Service_DeveloperGarden_LocalSearch3>\ Zend_Service_DeveloperGarden_LocalSearch_SearchParameters37[ qZend_Service_DeveloperGarden_LocalSearch_Exception3,Z [Zend_Service_DeveloperGarden_IpLocation36Y oZend_Service_DeveloperGarden_IpLocation_IpAddress3+X YZend_Service_DeveloperGarden_Exception3,W [Zend_Service_DeveloperGarden_Credential30V cZend_Service_DeveloperGarden_ConferenceCall3CU Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatus3CT Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail3<S {Zend_Service_DeveloperGarden_ConferenceCall_Participant3:R wZend_Service_DeveloperGarden_ConferenceCall_Exception3DQ 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceSchedule3BP Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail3CO Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount3-N ]Zend_Service_DeveloperGarden_Client_Soap32M gZend_Service_DeveloperGarden_Client_Exception37L qZend_Service_DeveloperGarden_Client_ClientAbstract31K eZend_Service_DeveloperGarden_BaseUserService3AJ Zend_Service_DeveloperGarden_BaseUserService_AccountBalance3I 9Zend_Service_Delicious3&H OZend_Service_Delicious_SimplePost3   - y i$QuZJ


C			)sQ#h	OJ)h	  y                       4* kZend_Service_DeveloperGarden_Response_Exception3T) )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse3[( 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponse3f' MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponse3S& 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponse3T% )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse3[$ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponse3f# MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponse3S" 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponse3U! +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType3Q  #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse3[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseType3W /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse3[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseType3W /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse3\ 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseType3X 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponse3g OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseType3c GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse3` AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType3\ 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponse3Z 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseType3V -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponse3X 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseType3T )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse3_ ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType3[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponse3W /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType3S 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponse3Q #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstract3S 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponse3J Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType3g
 OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseType3c	 GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponse3W /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse3U +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponse3S 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse33 iZend_Service_DeveloperGarden_Response_BaseType3J Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstract3C Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCall3G Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced3= }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCall3A  Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatus3A Zend_Service_DeveloperGarden_Request_SmsValidation_Validate3N~ Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeyword3   I  q!Baf3


=			P	am:e=uN0fF!zU*eE e9                                           +s YZend_Service_Technorati_BlogInfoResult3#r IZend_Service_Technorati_Author3q ;Zend_Service_StrikeIron3(p SZend_Service_StrikeIron_ZipCodeInfo32o gZend_Service_StrikeIron_USAddressVerification3-n ]Zend_Service_StrikeIron_SalesUseTaxBasic3&m OZend_Service_StrikeIron_Exception3&l OZend_Service_StrikeIron_Decorator3!k EZend_Service_StrikeIron_Base3j ;Zend_Service_SlideShare3&i OZend_Service_SlideShare_SlideShow3&h OZend_Service_SlideShare_Exception3g 1Zend_Service_Simpy3$f KZend_Service_Simpy_WatchlistSet3*e WZend_Service_Simpy_WatchlistFilterSet3'd QZend_Service_Simpy_WatchlistFilter3!c EZend_Service_Simpy_Watchlist3b ?Zend_Service_Simpy_TagSet3a 9Zend_Service_Simpy_Tag3` AZend_Service_Simpy_NoteSet3_ ;Zend_Service_Simpy_Note3^ AZend_Service_Simpy_LinkSet3!] EZend_Service_Simpy_LinkQuery3\ ;Zend_Service_Simpy_Link3[ 9Zend_Service_ReCaptcha3$Z KZend_Service_ReCaptcha_Response3$Y KZend_Service_ReCaptcha_MailHide3.X _Zend_Service_ReCaptcha_MailHide_Exception3%W MZend_Service_ReCaptcha_Exception3V 7Zend_Service_Nirvanix3#U IZend_Service_Nirvanix_Response3)T UZend_Service_Nirvanix_Namespace_Imfs3)S UZend_Service_Nirvanix_Namespace_Base3$R KZend_Service_Nirvanix_Exception3Q 7Zend_Service_LiveDocx3$P KZend_Service_LiveDocx_MailMerge3$O KZend_Service_LiveDocx_Exception3N 3Zend_Service_Flickr3"M GZend_Service_Flickr_ResultSet3L AZend_Service_Flickr_Result3K ?Zend_Service_Flickr_Image3J 9Zend_Service_Exception3+I YZend_Service_DeveloperGarden_VoiceCall3/H aZend_Service_DeveloperGarden_SmsValidation3)G UZend_Service_DeveloperGarden_SendSms35F mZend_Service_DeveloperGarden_SecurityTokenServer3;E yZend_Service_DeveloperGarden_SecurityTokenServer_Cache3KD Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstract3LC Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponse3PB !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponse3GA Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponse3J@ Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponse3K? Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2Response3L> Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponse3I= Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumber3W< /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponse3J; Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponse3U: +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponse3C9 Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponse3C8 Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstract3H7 Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponse3U6 +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponse3Q5 #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponse3I4 Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception3;3 yZend_Service_DeveloperGarden_Response_ResponseAbstract3O2 Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseType3K1 Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponse3A0 Zend_Service_DeveloperGarden_Response_IpLocation_RegionType3K/ Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseType3G. Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponse3L- Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationType3I, Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType3>+ Zend_Service_DeveloperGarden_Response_IpLocation_CityType3   X  q<e8X2A\$


w
F
			r	:	^'KwK|R%h@%uM `A(zG                                                  &K OZend_Soap_Wsdl_Strategy_Composite30J cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence3/I aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex3$H KZend_Soap_Wsdl_Strategy_AnyType3%G MZend_Soap_Wsdl_Strategy_Abstract3F =Zend_Soap_Wsdl_Exception3E -Zend_Soap_Server3D AZend_Soap_Server_Exception3C -Zend_Soap_Client3B 9Zend_Soap_Client_Local3A AZend_Soap_Client_Exception3@ ;Zend_Soap_Client_DotNet3? ;Zend_Soap_Client_Common3> 9Zend_Soap_AutoDiscover3%= MZend_Soap_AutoDiscover_Exception3< %Zend_Session3); UZend_Session_Validator_HttpUserAgent3$: KZend_Session_Validator_Abstract3'9 QZend_Session_SaveHandler_Exception3%8 MZend_Session_SaveHandler_DbTable37 9Zend_Session_Namespace36 9Zend_Session_Exception35 7Zend_Session_Abstract34 1Zend_Service_Yahoo3$3 KZend_Service_Yahoo_WebResultSet3!2 EZend_Service_Yahoo_WebResult3&1 OZend_Service_Yahoo_VideoResultSet3#0 IZend_Service_Yahoo_VideoResult3!/ EZend_Service_Yahoo_ResultSet3. ?Zend_Service_Yahoo_Result3)- UZend_Service_Yahoo_PageDataResultSet3&, OZend_Service_Yahoo_PageDataResult3%+ MZend_Service_Yahoo_NewsResultSet3"* GZend_Service_Yahoo_NewsResult3&) OZend_Service_Yahoo_LocalResultSet3#( IZend_Service_Yahoo_LocalResult3+' YZend_Service_Yahoo_InlinkDataResultSet3(& SZend_Service_Yahoo_InlinkDataResult3&% OZend_Service_Yahoo_ImageResultSet3#$ IZend_Service_Yahoo_ImageResult3# =Zend_Service_Yahoo_Image3&" OZend_Service_WindowsAzure_Storage34! kZend_Service_WindowsAzure_Storage_TableInstance37  qZend_Service_WindowsAzure_Storage_TableEntityQuery32 gZend_Service_WindowsAzure_Storage_TableEntity3, [Zend_Service_WindowsAzure_Storage_Table37 qZend_Service_WindowsAzure_Storage_SignedIdentifier33 iZend_Service_WindowsAzure_Storage_QueueMessage34 kZend_Service_WindowsAzure_Storage_QueueInstance3, [Zend_Service_WindowsAzure_Storage_Queue39 uZend_Service_WindowsAzure_Storage_DynamicTableEntity33 iZend_Service_WindowsAzure_Storage_BlobInstance34 kZend_Service_WindowsAzure_Storage_BlobContainer3+ YZend_Service_WindowsAzure_Storage_Blob32 gZend_Service_WindowsAzure_Storage_Blob_Stream3; yZend_Service_WindowsAzure_Storage_BatchStorageAbstract3, [Zend_Service_WindowsAzure_Storage_Batch3- ]Zend_Service_WindowsAzure_SessionHandler3> Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract31 eZend_Service_WindowsAzure_RetryPolicy_RetryN32 gZend_Service_WindowsAzure_RetryPolicy_NoRetry34 kZend_Service_WindowsAzure_RetryPolicy_Exception3( SZend_Service_WindowsAzure_Exception38 sZend_Service_WindowsAzure_Credentials_SharedKeyLite34 kZend_Service_WindowsAzure_Credentials_SharedKey3A
 Zend_Service_WindowsAzure_Credentials_SharedAccessSignature3>	 Zend_Service_WindowsAzure_Credentials_CredentialsAbstract3 5Zend_Service_Twitter3  CZend_Service_Twitter_Search3# IZend_Service_Twitter_Exception3 ;Zend_Service_Technorati3# IZend_Service_Technorati_Weblog3" GZend_Service_Technorati_Utils3* WZend_Service_Technorati_TagsResultSet3' QZend_Service_Technorati_TagsResult3)  UZend_Service_Technorati_TagResultSet3& OZend_Service_Technorati_TagResult3,~ [Zend_Service_Technorati_SearchResultSet3)} UZend_Service_Technorati_SearchResult3&| OZend_Service_Technorati_ResultSet3#{ IZend_Service_Technorati_Result3*z WZend_Service_Technorati_KeyInfoResult3*y WZend_Service_Technorati_GetInfoResult3&x OZend_Service_Technorati_Exception31w eZend_Service_Technorati_DailyCountsResultSet3.v _Zend_Service_Technorati_DailyCountsResult3,u [Zend_Service_Technorati_CosmosResultSet3)t UZend_Service_Technorati_CosmosResult3   Y  d9hL. oB`.xJ




|
]
5
					{	\	A	+	|Rdb5T)U/Q"pB`/                          ($ SZend_Tool_Framework_System_Manifest3-# ]Zend_Tool_Framework_System_Action_Delete3-" ]Zend_Tool_Framework_System_Action_Create3!! EZend_Tool_Framework_Registry3+  YZend_Tool_Framework_Registry_Exception3+ YZend_Tool_Framework_Provider_Signature3, [Zend_Tool_Framework_Provider_Repository3+ YZend_Tool_Framework_Provider_Exception3* WZend_Tool_Framework_Provider_Abstract3& OZend_Tool_Framework_Metadata_Tool3) UZend_Tool_Framework_Metadata_Dynamic3' QZend_Tool_Framework_Metadata_Basic3, [Zend_Tool_Framework_Manifest_Repository3+ YZend_Tool_Framework_Manifest_Exception31 eZend_Tool_Framework_Loader_IncludePathLoader3J Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator3+ YZend_Tool_Framework_Loader_BasicLoader3( SZend_Tool_Framework_Loader_Abstract3" GZend_Tool_Framework_Exception3' QZend_Tool_Framework_Client_Storage31 eZend_Tool_Framework_Client_Storage_Directory3( SZend_Tool_Framework_Client_Response3D 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator3' QZend_Tool_Framework_Client_Request3( SZend_Tool_Framework_Client_Manifest39 uZend_Tool_Framework_Client_Interactive_InputResponse38
 sZend_Tool_Framework_Client_Interactive_InputRequest38	 sZend_Tool_Framework_Client_Interactive_InputHandler3) UZend_Tool_Framework_Client_Exception3' QZend_Tool_Framework_Client_Console3D 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Indention3D 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizer3C Zend_Tool_Framework_Client_Console_ResponseDecorator_Blockize3F Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter30 cZend_Tool_Framework_Client_Console_Manifest32 gZend_Tool_Framework_Client_Console_HelpSystem36  oZend_Tool_Framework_Client_Console_ArgumentParser3& OZend_Tool_Framework_Client_Config3(~ SZend_Tool_Framework_Client_Abstract3*} WZend_Tool_Framework_Action_Repository3)| UZend_Tool_Framework_Action_Exception3${ KZend_Tool_Framework_Action_Base3z 'Zend_TimeSync3y 1Zend_TimeSync_Sntp3x 9Zend_TimeSync_Protocol3w /Zend_TimeSync_Ntp3v ;Zend_TimeSync_Exception3u +Zend_Text_Table3t 3Zend_Text_Table_Row3s ?Zend_Text_Table_Exception3&r OZend_Text_Table_Decorator_Unicode3$q KZend_Text_Table_Decorator_Ascii3p 9Zend_Text_Table_Column3o 3Zend_Text_MultiByte3n -Zend_Text_Figlet3m AZend_Text_Figlet_Exception3l 3Zend_Text_Exception3&k OZend_Test_PHPUnit_Db_SimpleTester3,j [Zend_Test_PHPUnit_Db_Operation_Truncate3*i WZend_Test_PHPUnit_Db_Operation_Insert3-h ]Zend_Test_PHPUnit_Db_Operation_DeleteAll3*g WZend_Test_PHPUnit_Db_Metadata_Generic3#f IZend_Test_PHPUnit_Db_Exception3,e [Zend_Test_PHPUnit_Db_DataSet_QueryTable3.d _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet30c cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet3)b UZend_Test_PHPUnit_Db_DataSet_DbTable3*a WZend_Test_PHPUnit_Db_DataSet_DbRowset3$` KZend_Test_PHPUnit_Db_Connection3'_ QZend_Test_PHPUnit_DatabaseTestCase3)^ UZend_Test_PHPUnit_ControllerTestCase30] cZend_Test_PHPUnit_Constraint_ResponseHeader3*\ WZend_Test_PHPUnit_Constraint_Redirect3+[ YZend_Test_PHPUnit_Constraint_Exception3*Z WZend_Test_PHPUnit_Constraint_DomQuery3Y 7Zend_Test_DbStatement3X 3Zend_Test_DbAdapter3W /Zend_Tag_ItemList3V 'Zend_Tag_Item3U 1Zend_Tag_Exception3T )Zend_Tag_Cloud3S =Zend_Tag_Cloud_Exception3!R EZend_Tag_Cloud_Decorator_Tag3%Q MZend_Tag_Cloud_Decorator_HtmlTag3'P QZend_Tag_Cloud_Decorator_HtmlCloud3'O QZend_Tag_Cloud_Decorator_Exception3#N IZend_Tag_Cloud_Decorator_Cloud3M )Zend_Soap_Wsdl3/L aZend_Soap_Wsdl_Strategy_DefaultComplexType3   G  d0]'Wn; _/



X
"				\	*LJk6~G@Ul'E                          k CZend_Tool_Project_Exception3<j {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory30i cZend_Tool_Project_Context_Zf_ViewsDirectory36h oZend_Tool_Project_Context_Zf_ViewScriptsDirectory30g cZend_Tool_Project_Context_Zf_ViewScriptFile36f oZend_Tool_Project_Context_Zf_ViewHelpersDirectory36e oZend_Tool_Project_Context_Zf_ViewFiltersDirectory3Ad Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory32c gZend_Tool_Project_Context_Zf_UploadsDirectory30b cZend_Tool_Project_Context_Zf_TestsDirectory37a qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile3@` Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory31_ eZend_Tool_Project_Context_Zf_TestLibraryFile36^ oZend_Tool_Project_Context_Zf_TestLibraryDirectory3:] wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFile3:\ wZend_Tool_Project_Context_Zf_TestApplicationDirectory3@[ Zend_Tool_Project_Context_Zf_TestApplicationControllerFile3EZ Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory3>Y Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile34X kZend_Tool_Project_Context_Zf_TemporaryDirectory33W iZend_Tool_Project_Context_Zf_SessionsDirectory38V sZend_Tool_Project_Context_Zf_SearchIndexesDirectory3<U {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory38T sZend_Tool_Project_Context_Zf_PublicScriptsDirectory31S eZend_Tool_Project_Context_Zf_PublicIndexFile37R qZend_Tool_Project_Context_Zf_PublicImagesDirectory31Q eZend_Tool_Project_Context_Zf_PublicDirectory35P mZend_Tool_Project_Context_Zf_ProjectProviderFile32O gZend_Tool_Project_Context_Zf_ModulesDirectory31N eZend_Tool_Project_Context_Zf_ModuleDirectory31M eZend_Tool_Project_Context_Zf_ModelsDirectory3+L YZend_Tool_Project_Context_Zf_ModelFile3/K aZend_Tool_Project_Context_Zf_LogsDirectory32J gZend_Tool_Project_Context_Zf_LocalesDirectory32I gZend_Tool_Project_Context_Zf_LibraryDirectory32H gZend_Tool_Project_Context_Zf_LayoutsDirectory38G sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory32F gZend_Tool_Project_Context_Zf_LayoutScriptFile3.E _Zend_Tool_Project_Context_Zf_HtaccessFile30D cZend_Tool_Project_Context_Zf_FormsDirectory3*C WZend_Tool_Project_Context_Zf_FormFile3/B aZend_Tool_Project_Context_Zf_DocsDirectory3-A ]Zend_Tool_Project_Context_Zf_DbTableFile32@ gZend_Tool_Project_Context_Zf_DbTableDirectory3/? aZend_Tool_Project_Context_Zf_DataDirectory36> oZend_Tool_Project_Context_Zf_ControllersDirectory30= cZend_Tool_Project_Context_Zf_ControllerFile32< gZend_Tool_Project_Context_Zf_ConfigsDirectory3,; [Zend_Tool_Project_Context_Zf_ConfigFile30: cZend_Tool_Project_Context_Zf_CacheDirectory3/9 aZend_Tool_Project_Context_Zf_BootstrapFile368 oZend_Tool_Project_Context_Zf_ApplicationDirectory377 qZend_Tool_Project_Context_Zf_ApplicationConfigFile3/6 aZend_Tool_Project_Context_Zf_ApisDirectory3.5 _Zend_Tool_Project_Context_Zf_ActionMethod334 iZend_Tool_Project_Context_Zf_AbstractClassFile3@3 Zend_Tool_Project_Context_System_ProjectProvidersDirectory382 sZend_Tool_Project_Context_System_ProjectProfileFile361 oZend_Tool_Project_Context_System_ProjectDirectory3)0 UZend_Tool_Project_Context_Repository3./ _Zend_Tool_Project_Context_Filesystem_File33. iZend_Tool_Project_Context_Filesystem_Directory32- gZend_Tool_Project_Context_Filesystem_Abstract3(, SZend_Tool_Project_Context_Exception3-+ ]Zend_Tool_Project_Context_Content_Engine33* iZend_Tool_Project_Context_Content_Engine_Phtml3;) yZend_Tool_Project_Context_Content_Engine_CodeGenerator30( cZend_Tool_Framework_System_Provider_Version30' cZend_Tool_Framework_System_Provider_Phpinfo31& eZend_Tool_Framework_System_Provider_Manifest3/% aZend_Tool_Framework_System_Provider_Config3   g  j)j>_2
a6c@




i
D
%
						n	R	6	fAfC [8zW4y^<mL iDqQ/
                         R 3Zend_Validate_Float3!Q EZend_Validate_File_WordCount3P ?Zend_Validate_File_Upload3O ;Zend_Validate_File_Size3N ;Zend_Validate_File_Sha13!M EZend_Validate_File_NotExists3 L CZend_Validate_File_MimeType3K 9Zend_Validate_File_Md53J AZend_Validate_File_IsImage3$I KZend_Validate_File_IsCompressed3!H EZend_Validate_File_ImageSize3G ;Zend_Validate_File_Hash3!F EZend_Validate_File_FilesSize3!E EZend_Validate_File_Extension3D ?Zend_Validate_File_Exists3'C QZend_Validate_File_ExcludeMimeType3(B SZend_Validate_File_ExcludeExtension3A =Zend_Validate_File_Crc323@ =Zend_Validate_File_Count3? ;Zend_Validate_Exception3> AZend_Validate_EmailAddress3= 5Zend_Validate_Digits3"< GZend_Validate_Db_RecordExists3$; KZend_Validate_Db_NoRecordExists3: ?Zend_Validate_Db_Abstract39 1Zend_Validate_Date38 =Zend_Validate_CreditCard37 3Zend_Validate_Ccnum36 9Zend_Validate_Callback35 7Zend_Validate_Between34 7Zend_Validate_Barcode33 AZend_Validate_Barcode_Upce32 AZend_Validate_Barcode_Upca31 AZend_Validate_Barcode_Sscc3$0 KZend_Validate_Barcode_Royalmail3"/ GZend_Validate_Barcode_Postnet3!. EZend_Validate_Barcode_Planet3#- IZend_Validate_Barcode_Leitcode3 , CZend_Validate_Barcode_Itf143+ AZend_Validate_Barcode_Issn3** WZend_Validate_Barcode_IntelligentMail3$) KZend_Validate_Barcode_Identcode3!( EZend_Validate_Barcode_Gtin143!' EZend_Validate_Barcode_Gtin133!& EZend_Validate_Barcode_Gtin123% AZend_Validate_Barcode_Ean83$ AZend_Validate_Barcode_Ean53# AZend_Validate_Barcode_Ean23 " CZend_Validate_Barcode_Ean183 ! CZend_Validate_Barcode_Ean143   CZend_Validate_Barcode_Ean133  CZend_Validate_Barcode_Ean123$ KZend_Validate_Barcode_Code93ext3! EZend_Validate_Barcode_Code933$ KZend_Validate_Barcode_Code39ext3! EZend_Validate_Barcode_Code393, [Zend_Validate_Barcode_Code25interleaved3! EZend_Validate_Barcode_Code253* WZend_Validate_Barcode_AdapterAbstract3 3Zend_Validate_Alpha3 3Zend_Validate_Alnum3 9Zend_Validate_Abstract3 Zend_Uri3 'Zend_Uri_Http3 1Zend_Uri_Exception3 )Zend_Translate3 7Zend_Translate_Plural3 =Zend_Translate_Exception3 9Zend_Translate_Adapter3! EZend_Translate_Adapter_XmlTm3! EZend_Translate_Adapter_Xliff3 AZend_Translate_Adapter_Tmx3
 AZend_Translate_Adapter_Tbx3	 ?Zend_Translate_Adapter_Qt3 AZend_Translate_Adapter_Ini3# IZend_Translate_Adapter_Gettext3 AZend_Translate_Adapter_Csv3! EZend_Translate_Adapter_Array3$ KZend_Tool_Project_Provider_View3$ KZend_Tool_Project_Provider_Test3/ aZend_Tool_Project_Provider_ProjectProvider3' QZend_Tool_Project_Provider_Project3'  QZend_Tool_Project_Provider_Profile3& OZend_Tool_Project_Provider_Module3%~ MZend_Tool_Project_Provider_Model3(} SZend_Tool_Project_Provider_Manifest3&| OZend_Tool_Project_Provider_Layout3${ KZend_Tool_Project_Provider_Form3)z UZend_Tool_Project_Provider_Exception3'y QZend_Tool_Project_Provider_DbTable3)x UZend_Tool_Project_Provider_DbAdapter3*w WZend_Tool_Project_Provider_Controller3+v YZend_Tool_Project_Provider_Application3&u OZend_Tool_Project_Provider_Action3(t SZend_Tool_Project_Provider_Abstract3s ?Zend_Tool_Project_Profile3'r QZend_Tool_Project_Profile_Resource39q uZend_Tool_Project_Profile_Resource_SearchConstraints31p eZend_Tool_Project_Profile_Resource_Container3=o }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter35n mZend_Tool_Project_Profile_Iterator_ContextFilter3-m ]Zend_Tool_Project_Profile_FileParser_Xml3(l SZend_Tool_Project_Profile_Exception3   k  jL2\6hF&~\>eB




f
B
					n	K	(	xQ+`7pKq9sV=+]3]6a@   = ?Zend_XmlRpc_Response_Http3< 3Zend_XmlRpc_Request3; ?Zend_XmlRpc_Request_Stdin3: =Zend_XmlRpc_Request_Http3$9 KZend_XmlRpc_Generator_XmlWriter3,8 [Zend_XmlRpc_Generator_GeneratorAbstract3&7 OZend_XmlRpc_Generator_DomDocument36 /Zend_XmlRpc_Fault35 7Zend_XmlRpc_Exception34 1Zend_XmlRpc_Client3#3 IZend_XmlRpc_Client_ServerProxy3+2 YZend_XmlRpc_Client_ServerIntrospection3+1 YZend_XmlRpc_Client_IntrospectException3%0 MZend_XmlRpc_Client_HttpException3&/ OZend_XmlRpc_Client_FaultException3!. EZend_XmlRpc_Client_Exception3&- OZend_Wildfire_Protocol_JsonStream3!, EZend_Wildfire_Plugin_FirePhp3.+ _Zend_Wildfire_Plugin_FirePhp_TableMessage3)* UZend_Wildfire_Plugin_FirePhp_Message3) ;Zend_Wildfire_Exception3&( OZend_Wildfire_Channel_HttpHeaders3' Zend_View3& -Zend_View_Stream3% 5Zend_View_Helper_Url3$ AZend_View_Helper_Translate3# AZend_View_Helper_ServerUrl3)" UZend_View_Helper_RenderToPlaceholder3!! EZend_View_Helper_Placeholder3*  WZend_View_Helper_Placeholder_Registry34 kZend_View_Helper_Placeholder_Registry_Exception3+ YZend_View_Helper_Placeholder_Container36 oZend_View_Helper_Placeholder_Container_Standalone35 mZend_View_Helper_Placeholder_Container_Exception34 kZend_View_Helper_Placeholder_Container_Abstract3! EZend_View_Helper_PartialLoop3 =Zend_View_Helper_Partial3' QZend_View_Helper_Partial_Exception3' QZend_View_Helper_PaginationControl3  CZend_View_Helper_Navigation3( SZend_View_Helper_Navigation_Sitemap3% MZend_View_Helper_Navigation_Menu3& OZend_View_Helper_Navigation_Links3/ aZend_View_Helper_Navigation_HelperAbstract3, [Zend_View_Helper_Navigation_Breadcrumbs3 ;Zend_View_Helper_Layout3 7Zend_View_Helper_Json3" GZend_View_Helper_InlineScript3# IZend_View_Helper_HtmlQuicktime3 ?Zend_View_Helper_HtmlPage3  CZend_View_Helper_HtmlObject3
 ?Zend_View_Helper_HtmlList3	 AZend_View_Helper_HtmlFlash3! EZend_View_Helper_HtmlElement3 AZend_View_Helper_HeadTitle3 AZend_View_Helper_HeadStyle3  CZend_View_Helper_HeadScript3 ?Zend_View_Helper_HeadMeta3 ?Zend_View_Helper_HeadLink3" GZend_View_Helper_FormTextarea3 ?Zend_View_Helper_FormText3   CZend_View_Helper_FormSubmit3  CZend_View_Helper_FormSelect3~ AZend_View_Helper_FormReset3} AZend_View_Helper_FormRadio3"| GZend_View_Helper_FormPassword3{ ?Zend_View_Helper_FormNote3'z QZend_View_Helper_FormMultiCheckbox3y AZend_View_Helper_FormLabel3x AZend_View_Helper_FormImage3 w CZend_View_Helper_FormHidden3v ?Zend_View_Helper_FormFile3 u CZend_View_Helper_FormErrors3!t EZend_View_Helper_FormElement3"s GZend_View_Helper_FormCheckbox3 r CZend_View_Helper_FormButton3q 7Zend_View_Helper_Form3p ?Zend_View_Helper_Fieldset3o =Zend_View_Helper_Doctype3!n EZend_View_Helper_DeclareVars3m 9Zend_View_Helper_Cycle3l ?Zend_View_Helper_Currency3k =Zend_View_Helper_BaseUrl3j ;Zend_View_Helper_Action3i ?Zend_View_Helper_Abstract3h 3Zend_View_Exception3g 1Zend_View_Abstract3f %Zend_Version3e 'Zend_Validate3d AZend_Validate_StringLength3#c IZend_Validate_Sitemap_Priority3b ?Zend_Validate_Sitemap_Loc3"a GZend_Validate_Sitemap_Lastmod3%` MZend_Validate_Sitemap_Changefreq3_ 3Zend_Validate_Regex3^ 9Zend_Validate_PostCode3] 9Zend_Validate_NotEmpty3\ 9Zend_Validate_LessThan3[ 1Zend_Validate_Isbn3Z -Zend_Validate_Ip3Y /Zend_Validate_Int3X 7Zend_Validate_InArray3W ;Zend_Validate_Identical3V 1Zend_Validate_Iban3U 9Zend_Validate_Hostname3T /Zend_Validate_Hex3S ?Zend_Validate_GreaterThan3   j  |Z?oN*mR8fG,qM*



d
B
$
					u	T	1	vHj5a<e?d;b>~]A(f8                        ' ?Zend_Barcode_Object_Ean134& AZend_Barcode_Object_Code394*% WZend_Barcode_Object_Code25interleaved4$ AZend_Barcode_Object_Code254# 9Zend_Barcode_Exception4" Zend_Auth4! ?Zend_Auth_Storage_Session4$  KZend_Auth_Storage_NonPersistent4  CZend_Auth_Storage_Exception4 -Zend_Auth_Result4 3Zend_Auth_Exception4 =Zend_Auth_Adapter_OpenId4 9Zend_Auth_Adapter_Ldap4 AZend_Auth_Adapter_InfoCard4 9Zend_Auth_Adapter_Http4) UZend_Auth_Adapter_Http_Resolver_File4. _Zend_Auth_Adapter_Http_Resolver_Exception4  CZend_Auth_Adapter_Exception4 =Zend_Auth_Adapter_Digest4 ?Zend_Auth_Adapter_DbTable4 -Zend_Application4# IZend_Application_Resource_View4( SZend_Application_Resource_Translate4& OZend_Application_Resource_Session4% MZend_Application_Resource_Router4/ aZend_Application_Resource_ResourceAbstract4) UZend_Application_Resource_Navigation4& OZend_Application_Resource_Multidb4& OZend_Application_Resource_Modules4#
 IZend_Application_Resource_Mail4"	 GZend_Application_Resource_Log4% MZend_Application_Resource_Locale4% MZend_Application_Resource_Layout4. _Zend_Application_Resource_Frontcontroller4( SZend_Application_Resource_Exception4# IZend_Application_Resource_Dojo4! EZend_Application_Resource_Db4+ YZend_Application_Resource_Cachemanager4& OZend_Application_Module_Bootstrap4'  QZend_Application_Module_Autoloader4 AZend_Application_Exception4)~ UZend_Application_Bootstrap_Exception41} eZend_Application_Bootstrap_BootstrapAbstract4)| UZend_Application_Bootstrap_Bootstrap4{ ?Zend_Amf_Value_TraitsInfo4-z ]Zend_Amf_Value_Messaging_RemotingMessage4*y WZend_Amf_Value_Messaging_ErrorMessage4,x [Zend_Amf_Value_Messaging_CommandMessage4*w WZend_Amf_Value_Messaging_AsyncMessage4-v ]Zend_Amf_Value_Messaging_ArrayCollection40u cZend_Amf_Value_Messaging_AcknowledgeMessage4-t ]Zend_Amf_Value_Messaging_AbstractMessage4!s EZend_Amf_Value_MessageHeader4r AZend_Amf_Value_MessageBody4q =Zend_Amf_Value_ByteArray4p AZend_Amf_Util_BinaryStream4o +Zend_Amf_Server4n ?Zend_Amf_Server_Exception4m /Zend_Amf_Response4l 9Zend_Amf_Response_Http4k -Zend_Amf_Request4j 7Zend_Amf_Request_Http4i ?Zend_Amf_Parse_TypeLoader4h ?Zend_Amf_Parse_Serializer4#g IZend_Amf_Parse_Resource_Stream4(f SZend_Amf_Parse_Resource_MysqlResult4)e UZend_Amf_Parse_Resource_MysqliResult4 d CZend_Amf_Parse_OutputStream4c AZend_Amf_Parse_InputStream4 b CZend_Amf_Parse_Deserializer4#a IZend_Amf_Parse_Amf3_Serializer4%` MZend_Amf_Parse_Amf3_Deserializer4#_ IZend_Amf_Parse_Amf0_Serializer4%^ MZend_Amf_Parse_Amf0_Deserializer4] 1Zend_Amf_Exception4\ 1Zend_Amf_Constants4[ 9Zend_Amf_Auth_Abstract4 Z CZend_Amf_Adobe_Introspector4Y AZend_Amf_Adobe_DbInspector4X 3Zend_Amf_Adobe_Auth4W Zend_Acl4V 'Zend_Acl_Role4U 9Zend_Acl_Role_Registry4%T MZend_Acl_Role_Registry_Exception4S /Zend_Acl_Resource4R 1Zend_Acl_Exception4Q /Zend_XmlRpc_Value3P =Zend_XmlRpc_Value_Struct3O =Zend_XmlRpc_Value_String3N =Zend_XmlRpc_Value_Scalar3M 7Zend_XmlRpc_Value_Nil3L ?Zend_XmlRpc_Value_Integer3 K CZend_XmlRpc_Value_Exception3J =Zend_XmlRpc_Value_Double3I AZend_XmlRpc_Value_DateTime3!H EZend_XmlRpc_Value_Collection3G ?Zend_XmlRpc_Value_Boolean3!F EZend_XmlRpc_Value_BigInteger3E =Zend_XmlRpc_Value_Base643D ;Zend_XmlRpc_Value_Array3C 1Zend_XmlRpc_Server3B ?Zend_XmlRpc_Server_System3A =Zend_XmlRpc_Server_Fault3!@ EZend_XmlRpc_Server_Exception3? =Zend_XmlRpc_Server_Cache3> 5Zend_XmlRpc_Response3   X  lH%Q*Z9~Z#`8



b
$			v	?	q@uEMkA&vGoCY-V/	                              1D eZend_Feed_Writer_Extension_RendererInterface4#C IZend_Feed_Reader_FeedInterface4$B KZend_Feed_Reader_EntryInterface47A qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface4-@ ]Zend_Feed_Pubsubhubbub_CallbackInterface4 ? CZend_Feed_Builder_Interface4 > CZend_Db_Statement_Interface4$= KZend_Currency_CurrencyInterface4)< UZend_Crypt_Math_BigInteger_Interface4+; YZend_Controller_Router_Route_Interface4%: MZend_Controller_Router_Interface4)9 UZend_Controller_Dispatcher_Interface4%8 MZend_Controller_Action_Interface47 5Zend_Captcha_Adapter4!6 EZend_Cache_Backend_Interface4)5 UZend_Cache_Backend_ExtendedInterface4 4 CZend_Auth_Storage_Interface4 3 CZend_Auth_Adapter_Interface4.2 _Zend_Auth_Adapter_Http_Resolver_Interface4'1 QZend_Application_Resource_Resource440 kZend_Application_Bootstrap_ResourceBootstrapper4,/ [Zend_Application_Bootstrap_Bootstrapper4. ;Zend_Acl_Role_Interface4 - CZend_Acl_Resource_Interface4, ?Zend_Acl_Assert_Interface4#+ IZend_Wildfire_Plugin_Interface3$* KZend_Wildfire_Channel_Interface3) 3Zend_View_Interface3'( QZend_View_Helper_Navigation_Helper3' AZend_View_Helper_Interface3& ;Zend_Validate_Interface3+% YZend_Validate_Barcode_AdapterInterface33$ iZend_Tool_Project_Profile_FileParser_Interface3:# wZend_Tool_Project_Context_System_TopLevelRestrictable35" mZend_Tool_Project_Context_System_NotOverwritable3/! aZend_Tool_Project_Context_System_Interface3(  SZend_Tool_Project_Context_Interface3+ YZend_Tool_Framework_Registry_Interface32 gZend_Tool_Framework_Registry_EnabledInterface3- ]Zend_Tool_Framework_Provider_Pretendable3+ YZend_Tool_Framework_Provider_Interface3. _Zend_Tool_Framework_Provider_Interactable3; yZend_Tool_Framework_Provider_DocblockManifestInterface3+ YZend_Tool_Framework_Metadata_Interface3. _Zend_Tool_Framework_Metadata_Attributable36 oZend_Tool_Framework_Manifest_ProviderManifestable36 oZend_Tool_Framework_Manifest_MetadataManifestable3+ YZend_Tool_Framework_Manifest_Interface3+ YZend_Tool_Framework_Manifest_Indexable34 kZend_Tool_Framework_Manifest_ActionManifestable3) UZend_Tool_Framework_Loader_Interface38 sZend_Tool_Framework_Client_Storage_AdapterInterface3D 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface3; yZend_Tool_Framework_Client_Interactive_OutputInterface3: wZend_Tool_Framework_Client_Interactive_InputInterface3) UZend_Tool_Framework_Action_Interface3( SZend_Text_Table_Decorator_Interface3 /Zend_Tag_Taggable3&
 OZend_Soap_Wsdl_Strategy_Interface3%	 MZend_Session_Validator_Interface3' QZend_Session_SaveHandler_Interface3I Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Interface3 7Zend_Server_Interface3- ]Zend_Serializer_Adapter_AdapterInterface34 kZend_Search_Lucene_Search_Highlighter_Interface3! EZend_Search_Lucene_Interface33 iZend_Search_Lucene_Index_TermsStream_Interface3$ KZend_Queue_Stomp_FrameInterface30  cZend_Queue_Stomp_Client_ConnectionInterface3( SZend_Queue_Adapter_AdapterInterface3~ ?Zend_Pdf_Filter_Interface3&} OZend_Pdf_ElementFactory_Interface3,| [Zend_Paginator_ScrollingStyle_Interface3${ KZend_Paginator_AdapterAggregate3%z MZend_Paginator_Adapter_Interface3&y OZend_Oauth_Config_ConfigInterface3$x KZend_Memory_Container_Interface31w eZend_Markup_Renderer_TokenConverterInterface3'v QZend_Markup_Parser_ParserInterface3)u UZend_Mail_Storage_Writable_Interface3't QZend_Mail_Storage_Folder_Interface3s =Zend_Mail_Part_Interface3 r CZend_Mail_Message_Interface3!q EZend_Log_Formatter_Interface3p ?Zend_Log_Filter_Interface3o ?Zend_Log_FactoryInterface3'n QZend_Loader_PluginLoader_Interface3%m MZend_Loader_Autoloader_Interface3   f  {U/vP/q\=oJ( hP3




c
H
5

					r	N	)	R~Oe=eM9m;\(m: \0                              7Zend_Controller_Front4 ?Zend_Controller_Exception4( SZend_Controller_Dispatcher_Standard4)
 UZend_Controller_Dispatcher_Exception4(	 SZend_Controller_Dispatcher_Abstract4 9Zend_Controller_Action4( SZend_Controller_Action_HelperBroker46 oZend_Controller_Action_HelperBroker_PriorityStack4/ aZend_Controller_Action_Helper_ViewRenderer4& OZend_Controller_Action_Helper_Url4- ]Zend_Controller_Action_Helper_Redirector4' QZend_Controller_Action_Helper_Json41 eZend_Controller_Action_Helper_FlashMessenger40  cZend_Controller_Action_Helper_ContextSwitch4( SZend_Controller_Action_Helper_Cache4<~ {Zend_Controller_Action_Helper_AutoCompleteScriptaculous43} iZend_Controller_Action_Helper_AutoCompleteDojo48| sZend_Controller_Action_Helper_AutoComplete_Abstract4.{ _Zend_Controller_Action_Helper_AjaxContext4.z _Zend_Controller_Action_Helper_ActionStack4+y YZend_Controller_Action_Helper_Abstract4%x MZend_Controller_Action_Exception4w 3Zend_Console_Getopt4"v GZend_Console_Getopt_Exception4u #Zend_Config4t +Zend_Config_Xml4s 1Zend_Config_Writer4r 9Zend_Config_Writer_Xml4q 9Zend_Config_Writer_Ini4$p KZend_Config_Writer_FileAbstract4o =Zend_Config_Writer_Array4n +Zend_Config_Ini4m 7Zend_Config_Exception4$l KZend_CodeGenerator_Php_Property41k eZend_CodeGenerator_Php_Property_DefaultValue4%j MZend_CodeGenerator_Php_Parameter42i gZend_CodeGenerator_Php_Parameter_DefaultValue4"h GZend_CodeGenerator_Php_Method4,g [Zend_CodeGenerator_Php_Member_Container4+f YZend_CodeGenerator_Php_Member_Abstract4 e CZend_CodeGenerator_Php_File4%d MZend_CodeGenerator_Php_Exception4$c KZend_CodeGenerator_Php_Docblock4(b SZend_CodeGenerator_Php_Docblock_Tag4/a aZend_CodeGenerator_Php_Docblock_Tag_Return4.` _Zend_CodeGenerator_Php_Docblock_Tag_Param40_ cZend_CodeGenerator_Php_Docblock_Tag_License4!^ EZend_CodeGenerator_Php_Class4 ] CZend_CodeGenerator_Php_Body4$\ KZend_CodeGenerator_Php_Abstract4![ EZend_CodeGenerator_Exception4 Z CZend_CodeGenerator_Abstract4Y /Zend_Captcha_Word4X 9Zend_Captcha_ReCaptcha4W 1Zend_Captcha_Image4V 3Zend_Captcha_Figlet4U 9Zend_Captcha_Exception4T /Zend_Captcha_Dumb4S /Zend_Captcha_Base4R !Zend_Cache4Q 1Zend_Cache_Manager4P =Zend_Cache_Frontend_Page4O AZend_Cache_Frontend_Output4!N EZend_Cache_Frontend_Function4M =Zend_Cache_Frontend_File4L ?Zend_Cache_Frontend_Class4 K CZend_Cache_Frontend_Capture4J 5Zend_Cache_Exception4I +Zend_Cache_Core4H 1Zend_Cache_Backend4"G GZend_Cache_Backend_ZendServer4(F SZend_Cache_Backend_ZendServer_ShMem4'E QZend_Cache_Backend_ZendServer_Disk4$D KZend_Cache_Backend_ZendPlatform4C ?Zend_Cache_Backend_Xcache4!B EZend_Cache_Backend_TwoLevels4A ;Zend_Cache_Backend_Test4@ ?Zend_Cache_Backend_Static4? ?Zend_Cache_Backend_Sqlite4!> EZend_Cache_Backend_Memcached4= ;Zend_Cache_Backend_File4!< EZend_Cache_Backend_BlackHole4; 9Zend_Cache_Backend_Apc4: %Zend_Barcode4+9 YZend_Barcode_Renderer_RendererAbstract48 ?Zend_Barcode_Renderer_Pdf4 7 CZend_Barcode_Renderer_Image4$6 KZend_Barcode_Renderer_Exception45 =Zend_Barcode_Object_Upce44 =Zend_Barcode_Object_Upca4"3 GZend_Barcode_Object_Royalmail4 2 CZend_Barcode_Object_Postnet41 AZend_Barcode_Object_Planet4'0 QZend_Barcode_Object_ObjectAbstract4!/ EZend_Barcode_Object_Leitcode4. ?Zend_Barcode_Object_Itf144"- GZend_Barcode_Object_Identcode4", GZend_Barcode_Object_Exception4+ ?Zend_Barcode_Object_Error4* =Zend_Barcode_Object_Ean84) =Zend_Barcode_Object_Ean54( =Zend_Barcode_Object_Ean24   n  [1b;mEnBz];#




`
H
%
						o	R	6	$	vW.`>wb?hDhJa=#u_O<X+                        ,{ [Zend_Dojo_Form_Decorator_DijitContainer4)z UZend_Dojo_Form_Decorator_ContentPane4-y ]Zend_Dojo_Form_Decorator_BorderContainer4+x YZend_Dojo_Form_Decorator_AccordionPane40w cZend_Dojo_Form_Decorator_AccordionContainer4v 3Zend_Dojo_Exception4u )Zend_Dojo_Data4t 5Zend_Dojo_BuildLayer4s !Zend_Debug4r Zend_Db4q 'Zend_Db_Table4p 5Zend_Db_Table_Select4#o IZend_Db_Table_Select_Exception4n 5Zend_Db_Table_Rowset4#m IZend_Db_Table_Rowset_Exception4"l GZend_Db_Table_Rowset_Abstract4k /Zend_Db_Table_Row4 j CZend_Db_Table_Row_Exception4i AZend_Db_Table_Row_Abstract4h ;Zend_Db_Table_Exception4g =Zend_Db_Table_Definition4f 9Zend_Db_Table_Abstract4e /Zend_Db_Statement4d =Zend_Db_Statement_Sqlsrv4'c QZend_Db_Statement_Sqlsrv_Exception4b 7Zend_Db_Statement_Pdo4a ?Zend_Db_Statement_Pdo_Oci4` ?Zend_Db_Statement_Pdo_Ibm4_ =Zend_Db_Statement_Oracle4'^ QZend_Db_Statement_Oracle_Exception4] =Zend_Db_Statement_Mysqli4'\ QZend_Db_Statement_Mysqli_Exception4 [ CZend_Db_Statement_Exception4Z 7Zend_Db_Statement_Db24$Y KZend_Db_Statement_Db2_Exception4X )Zend_Db_Select4W =Zend_Db_Select_Exception4V -Zend_Db_Profiler4U 9Zend_Db_Profiler_Query4T =Zend_Db_Profiler_Firebug4S AZend_Db_Profiler_Exception4R %Zend_Db_Expr4Q /Zend_Db_Exception4P 9Zend_Db_Adapter_Sqlsrv4%O MZend_Db_Adapter_Sqlsrv_Exception4N AZend_Db_Adapter_Pdo_Sqlite4M ?Zend_Db_Adapter_Pdo_Pgsql4L ;Zend_Db_Adapter_Pdo_Oci4K ?Zend_Db_Adapter_Pdo_Mysql4J ?Zend_Db_Adapter_Pdo_Mssql4I ;Zend_Db_Adapter_Pdo_Ibm4 H CZend_Db_Adapter_Pdo_Ibm_Ids4 G CZend_Db_Adapter_Pdo_Ibm_Db24!F EZend_Db_Adapter_Pdo_Abstract4E 9Zend_Db_Adapter_Oracle4%D MZend_Db_Adapter_Oracle_Exception4C 9Zend_Db_Adapter_Mysqli4%B MZend_Db_Adapter_Mysqli_Exception4A ?Zend_Db_Adapter_Exception4@ 3Zend_Db_Adapter_Db24"? GZend_Db_Adapter_Db2_Exception4> =Zend_Db_Adapter_Abstract4= Zend_Date4< 3Zend_Date_Exception4; 5Zend_Date_DateObject4: -Zend_Date_Cities49 'Zend_Currency48 ;Zend_Currency_Exception47 !Zend_Crypt46 )Zend_Crypt_Rsa45 1Zend_Crypt_Rsa_Key44 ?Zend_Crypt_Rsa_Key_Public43 AZend_Crypt_Rsa_Key_Private42 +Zend_Crypt_Math41 ?Zend_Crypt_Math_Exception40 AZend_Crypt_Math_BigInteger4#/ IZend_Crypt_Math_BigInteger_Gmp4). UZend_Crypt_Math_BigInteger_Exception4&- OZend_Crypt_Math_BigInteger_Bcmath4, +Zend_Crypt_Hmac4+ ?Zend_Crypt_Hmac_Exception4* 5Zend_Crypt_Exception4) =Zend_Crypt_DiffieHellman4'( QZend_Crypt_DiffieHellman_Exception4!' EZend_Controller_Router_Route4(& SZend_Controller_Router_Route_Static4'% QZend_Controller_Router_Route_Regex4($ SZend_Controller_Router_Route_Module4*# WZend_Controller_Router_Route_Hostname4'" QZend_Controller_Router_Route_Chain4*! WZend_Controller_Router_Route_Abstract4#  IZend_Controller_Router_Rewrite4% MZend_Controller_Router_Exception4$ KZend_Controller_Router_Abstract4* WZend_Controller_Response_HttpTestCase4" GZend_Controller_Response_Http4' QZend_Controller_Response_Exception4! EZend_Controller_Response_Cli4& OZend_Controller_Response_Abstract4# IZend_Controller_Request_Simple4) UZend_Controller_Request_HttpTestCase4! EZend_Controller_Request_Http4& OZend_Controller_Request_Exception4& OZend_Controller_Request_Apache4044% MZend_Controller_Request_Abstract4& OZend_Controller_Plugin_PutHandler4( SZend_Controller_Plugin_ErrorHandler4" GZend_Controller_Plugin_Broker4' QZend_Controller_Plugin_ActionStack4$ KZend_Controller_Plugin_Abstract4   a  wGP% Q$oIrD%



b
=
				m	C	}O,wM vK$weJ)g?tDa.V2                                  \ AZend_Feed_Reader_Entry_Rss4 [ CZend_Feed_Reader_Entry_Atom4 Z CZend_Feed_Reader_Collection43Y iZend_Feed_Reader_Collection_CollectionAbstract4)X UZend_Feed_Reader_Collection_Category4'W QZend_Feed_Reader_Collection_Author4V 9Zend_Feed_Pubsubhubbub4&U OZend_Feed_Pubsubhubbub_Subscriber4/T aZend_Feed_Pubsubhubbub_Subscriber_Callback4%S MZend_Feed_Pubsubhubbub_Publisher4.R _Zend_Feed_Pubsubhubbub_Model_Subscription4/Q aZend_Feed_Pubsubhubbub_Model_ModelAbstract4(P SZend_Feed_Pubsubhubbub_HttpResponse4%O MZend_Feed_Pubsubhubbub_Exception4,N [Zend_Feed_Pubsubhubbub_CallbackAbstract4M 3Zend_Feed_Exception4L 3Zend_Feed_Entry_Rss4K 5Zend_Feed_Entry_Atom4J =Zend_Feed_Entry_Abstract4I /Zend_Feed_Element4H /Zend_Feed_Builder4G =Zend_Feed_Builder_Header4$F KZend_Feed_Builder_Header_Itunes4 E CZend_Feed_Builder_Exception4D ;Zend_Feed_Builder_Entry4C )Zend_Feed_Atom4B 1Zend_Feed_Abstract4A )Zend_Exception4@ )Zend_Dom_Query4? 7Zend_Dom_Query_Result4> =Zend_Dom_Query_Css2Xpath4= 1Zend_Dom_Exception4< Zend_Dojo4); UZend_Dojo_View_Helper_VerticalSlider4,: [Zend_Dojo_View_Helper_ValidationTextBox4&9 OZend_Dojo_View_Helper_TimeTextBox4"8 GZend_Dojo_View_Helper_TextBox4#7 IZend_Dojo_View_Helper_Textarea4'6 QZend_Dojo_View_Helper_TabContainer4'5 QZend_Dojo_View_Helper_SubmitButton4)4 UZend_Dojo_View_Helper_StackContainer4)3 UZend_Dojo_View_Helper_SplitContainer4!2 EZend_Dojo_View_Helper_Slider4)1 UZend_Dojo_View_Helper_SimpleTextarea4&0 OZend_Dojo_View_Helper_RadioButton4*/ WZend_Dojo_View_Helper_PasswordTextBox4(. SZend_Dojo_View_Helper_NumberTextBox4(- SZend_Dojo_View_Helper_NumberSpinner4+, YZend_Dojo_View_Helper_HorizontalSlider4+ AZend_Dojo_View_Helper_Form4** WZend_Dojo_View_Helper_FilteringSelect4!) EZend_Dojo_View_Helper_Editor4( AZend_Dojo_View_Helper_Dojo4)' UZend_Dojo_View_Helper_Dojo_Container4)& UZend_Dojo_View_Helper_DijitContainer4 % CZend_Dojo_View_Helper_Dijit4&$ OZend_Dojo_View_Helper_DateTextBox4&# OZend_Dojo_View_Helper_CustomDijit4*" WZend_Dojo_View_Helper_CurrencyTextBox4&! OZend_Dojo_View_Helper_ContentPane4#  IZend_Dojo_View_Helper_ComboBox4# IZend_Dojo_View_Helper_CheckBox4! EZend_Dojo_View_Helper_Button4* WZend_Dojo_View_Helper_BorderContainer4( SZend_Dojo_View_Helper_AccordionPane4- ]Zend_Dojo_View_Helper_AccordionContainer4 =Zend_Dojo_View_Exception4 )Zend_Dojo_Form4 9Zend_Dojo_Form_SubForm4* WZend_Dojo_Form_Element_VerticalSlider4- ]Zend_Dojo_Form_Element_ValidationTextBox4' QZend_Dojo_Form_Element_TimeTextBox4# IZend_Dojo_Form_Element_TextBox4$ KZend_Dojo_Form_Element_Textarea4( SZend_Dojo_Form_Element_SubmitButton4" GZend_Dojo_Form_Element_Slider4* WZend_Dojo_Form_Element_SimpleTextarea4' QZend_Dojo_Form_Element_RadioButton4+ YZend_Dojo_Form_Element_PasswordTextBox4) UZend_Dojo_Form_Element_NumberTextBox4) UZend_Dojo_Form_Element_NumberSpinner4, [Zend_Dojo_Form_Element_HorizontalSlider4+
 YZend_Dojo_Form_Element_FilteringSelect4"	 GZend_Dojo_Form_Element_Editor4& OZend_Dojo_Form_Element_DijitMulti4! EZend_Dojo_Form_Element_Dijit4' QZend_Dojo_Form_Element_DateTextBox4+ YZend_Dojo_Form_Element_CurrencyTextBox4$ KZend_Dojo_Form_Element_ComboBox4$ KZend_Dojo_Form_Element_CheckBox4" GZend_Dojo_Form_Element_Button4  CZend_Dojo_Form_DisplayGroup4*  WZend_Dojo_Form_Decorator_TabContainer4, [Zend_Dojo_Form_Decorator_StackContainer4,~ [Zend_Dojo_Form_Decorator_SplitContainer4'} QZend_Dojo_Form_Decorator_DijitForm4*| WZend_Dojo_Form_Decorator_DijitElement4   a  ~MuDP zT3T


q
B
				e	)k>zO}X=#	dD#hM5rO/qG.lN%                                              *= WZend_Filter_Word_CamelCaseToSeparator4%< MZend_Filter_Word_CamelCaseToDash4; 7Zend_Filter_StripTags4: ?Zend_Filter_StripNewlines49 9Zend_Filter_StringTrim48 ?Zend_Filter_StringToUpper47 ?Zend_Filter_StringToLower46 5Zend_Filter_RealPath45 ;Zend_Filter_PregReplace44 -Zend_Filter_Null4&3 OZend_Filter_NormalizedToLocalized4&2 OZend_Filter_LocalizedToNormalized41 +Zend_Filter_Int40 /Zend_Filter_Input4/ 7Zend_Filter_Inflector4. =Zend_Filter_HtmlEntities4- AZend_Filter_File_UpperCase4, ;Zend_Filter_File_Rename4+ AZend_Filter_File_LowerCase4* =Zend_Filter_File_Encrypt4) =Zend_Filter_File_Decrypt4( 7Zend_Filter_Exception4' 3Zend_Filter_Encrypt4 & CZend_Filter_Encrypt_Openssl4% AZend_Filter_Encrypt_Mcrypt4$ +Zend_Filter_Dir4# 1Zend_Filter_Digits4" 3Zend_Filter_Decrypt4! 9Zend_Filter_Decompress4  5Zend_Filter_Compress4 =Zend_Filter_Compress_Zip4 =Zend_Filter_Compress_Tar4 =Zend_Filter_Compress_Rar4 =Zend_Filter_Compress_Lzf4 ;Zend_Filter_Compress_Gz4* WZend_Filter_Compress_CompressAbstract4 =Zend_Filter_Compress_Bz24 5Zend_Filter_Callback4 3Zend_Filter_Boolean4 5Zend_Filter_BaseName4 /Zend_Filter_Alpha4 /Zend_Filter_Alnum4 1Zend_File_Transfer4! EZend_File_Transfer_Exception4$ KZend_File_Transfer_Adapter_Http4( SZend_File_Transfer_Adapter_Abstract4 Zend_Feed4 -Zend_Feed_Writer4 ;Zend_Feed_Writer_Source4/ aZend_Feed_Writer_Renderer_RendererAbstract4' QZend_Feed_Writer_Renderer_Feed_Rss4(
 SZend_Feed_Writer_Renderer_Feed_Atom4/	 aZend_Feed_Writer_Renderer_Feed_Atom_Source45 mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract4( SZend_Feed_Writer_Renderer_Entry_Rss4) UZend_Feed_Writer_Renderer_Entry_Atom41 eZend_Feed_Writer_Renderer_Entry_Atom_Deleted4 7Zend_Feed_Writer_Feed4' QZend_Feed_Writer_Feed_FeedAbstract4< {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry48 sZend_Feed_Writer_Extension_Threading_Renderer_Entry44  kZend_Feed_Writer_Extension_Slash_Renderer_Entry40 cZend_Feed_Writer_Extension_RendererAbstract44~ kZend_Feed_Writer_Extension_ITunes_Renderer_Feed45} mZend_Feed_Writer_Extension_ITunes_Renderer_Entry4+| YZend_Feed_Writer_Extension_ITunes_Feed4,{ [Zend_Feed_Writer_Extension_ITunes_Entry48z sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed49y uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry46x oZend_Feed_Writer_Extension_Content_Renderer_Entry42w gZend_Feed_Writer_Extension_Atom_Renderer_Feed46v oZend_Feed_Writer_Exception_InvalidMethodException4u 9Zend_Feed_Writer_Entry4t =Zend_Feed_Writer_Deleted4s 'Zend_Feed_Rss4r -Zend_Feed_Reader4q =Zend_Feed_Reader_FeedSet4"p GZend_Feed_Reader_FeedAbstract4o ?Zend_Feed_Reader_Feed_Rss4n AZend_Feed_Reader_Feed_Atom4&m OZend_Feed_Reader_Feed_Atom_Source43l iZend_Feed_Reader_Extension_WellFormedWeb_Entry4,k [Zend_Feed_Reader_Extension_Thread_Entry40j cZend_Feed_Reader_Extension_Syndication_Feed4+i YZend_Feed_Reader_Extension_Slash_Entry4,h [Zend_Feed_Reader_Extension_Podcast_Feed4-g ]Zend_Feed_Reader_Extension_Podcast_Entry4,f [Zend_Feed_Reader_Extension_FeedAbstract4-e ]Zend_Feed_Reader_Extension_EntryAbstract4/d aZend_Feed_Reader_Extension_DublinCore_Feed40c cZend_Feed_Reader_Extension_DublinCore_Entry44b kZend_Feed_Reader_Extension_CreativeCommons_Feed45a mZend_Feed_Reader_Extension_CreativeCommons_Entry4-` ]Zend_Feed_Reader_Extension_Content_Entry4)_ UZend_Feed_Reader_Extension_Atom_Feed4*^ WZend_Feed_Reader_Extension_Atom_Entry4#] IZend_Feed_Reader_EntryAbstract4   h  U)uKqI!qH!iB




r
S
4
					b	B	"	~dH.V9pG }W3nF~U0O,iR7               $% KZend_Gdata_Books_CollectionFeed4%$ MZend_Gdata_Books_CollectionEntry4# 1Zend_Gdata_AuthSub4" )Zend_Gdata_App4$! KZend_Gdata_App_VersionException4  3Zend_Gdata_App_Util4# IZend_Gdata_App_MediaFileSource4 ?Zend_Gdata_App_MediaEntry42 gZend_Gdata_App_LoggingHttpClientAdapterSocket4 AZend_Gdata_App_IOException4, [Zend_Gdata_App_InvalidArgumentException4! EZend_Gdata_App_HttpException4$ KZend_Gdata_App_FeedSourceParent4# IZend_Gdata_App_FeedEntryParent4 3Zend_Gdata_App_Feed4 =Zend_Gdata_App_Extension4! EZend_Gdata_App_Extension_Uri4% MZend_Gdata_App_Extension_Updated4# IZend_Gdata_App_Extension_Title4" GZend_Gdata_App_Extension_Text4% MZend_Gdata_App_Extension_Summary4& OZend_Gdata_App_Extension_Subtitle4$ KZend_Gdata_App_Extension_Source4$ KZend_Gdata_App_Extension_Rights4' QZend_Gdata_App_Extension_Published4$ KZend_Gdata_App_Extension_Person4" GZend_Gdata_App_Extension_Name4"
 GZend_Gdata_App_Extension_Logo4"	 GZend_Gdata_App_Extension_Link4  CZend_Gdata_App_Extension_Id4" GZend_Gdata_App_Extension_Icon4' QZend_Gdata_App_Extension_Generator4# IZend_Gdata_App_Extension_Email4% MZend_Gdata_App_Extension_Element4$ KZend_Gdata_App_Extension_Edited4# IZend_Gdata_App_Extension_Draft4% MZend_Gdata_App_Extension_Control4)  UZend_Gdata_App_Extension_Contributor4% MZend_Gdata_App_Extension_Content4&~ OZend_Gdata_App_Extension_Category4$} KZend_Gdata_App_Extension_Author4| =Zend_Gdata_App_Exception4{ 5Zend_Gdata_App_Entry4,z [Zend_Gdata_App_CaptchaRequiredException4#y IZend_Gdata_App_BaseMediaSource4x 3Zend_Gdata_App_Base4*w WZend_Gdata_App_BadMethodCallException4!v EZend_Gdata_App_AuthException4u Zend_Form4t /Zend_Form_SubForm4s 3Zend_Form_Exception4r /Zend_Form_Element4q ;Zend_Form_Element_Xhtml4p AZend_Form_Element_Textarea4o 9Zend_Form_Element_Text4n =Zend_Form_Element_Submit4m =Zend_Form_Element_Select4l ;Zend_Form_Element_Reset4k ;Zend_Form_Element_Radio4j AZend_Form_Element_Password4"i GZend_Form_Element_Multiselect4$h KZend_Form_Element_MultiCheckbox4g ;Zend_Form_Element_Multi4f ;Zend_Form_Element_Image4e =Zend_Form_Element_Hidden4d 9Zend_Form_Element_Hash4c 9Zend_Form_Element_File4 b CZend_Form_Element_Exception4a AZend_Form_Element_Checkbox4` ?Zend_Form_Element_Captcha4_ =Zend_Form_Element_Button4^ 9Zend_Form_DisplayGroup4#] IZend_Form_Decorator_ViewScript4#\ IZend_Form_Decorator_ViewHelper4 [ CZend_Form_Decorator_Tooltip4(Z SZend_Form_Decorator_PrepareElements4Y ?Zend_Form_Decorator_Label4X ?Zend_Form_Decorator_Image4 W CZend_Form_Decorator_HtmlTag4#V IZend_Form_Decorator_FormErrors4%U MZend_Form_Decorator_FormElements4T =Zend_Form_Decorator_Form4S =Zend_Form_Decorator_File4!R EZend_Form_Decorator_Fieldset4"Q GZend_Form_Decorator_Exception4P AZend_Form_Decorator_Errors4$O KZend_Form_Decorator_DtDdWrapper4$N KZend_Form_Decorator_Description4 M CZend_Form_Decorator_Captcha4%L MZend_Form_Decorator_Captcha_Word4!K EZend_Form_Decorator_Callback4!J EZend_Form_Decorator_Abstract4I #Zend_Filter4+H YZend_Filter_Word_UnderscoreToSeparator4&G OZend_Filter_Word_UnderscoreToDash4+F YZend_Filter_Word_UnderscoreToCamelCase4*E WZend_Filter_Word_SeparatorToSeparator4%D MZend_Filter_Word_SeparatorToDash4*C WZend_Filter_Word_SeparatorToCamelCase4(B SZend_Filter_Word_Separator_Abstract4&A OZend_Filter_Word_DashToUnderscore4%@ MZend_Filter_Word_DashToSeparator4%? MZend_Filter_Word_DashToCamelCase4+> YZend_Filter_Word_CamelCaseToUnderscore4   ^  p?Z5_-zKcG(




o
B
			{	I	g<c=k?qKb:	oL+NxP$             % MZend_Gdata_Gapps_Extension_Quota4( SZend_Gdata_Gapps_Extension_Property4( SZend_Gdata_Gapps_Extension_Nickname4$  KZend_Gdata_Gapps_Extension_Name4% MZend_Gdata_Gapps_Extension_Login4)~ UZend_Gdata_Gapps_Extension_EmailList4} 9Zend_Gdata_Gapps_Error4-| ]Zend_Gdata_Gapps_EmailListRecipientQuery4,{ [Zend_Gdata_Gapps_EmailListRecipientFeed4-z ]Zend_Gdata_Gapps_EmailListRecipientEntry4$y KZend_Gdata_Gapps_EmailListQuery4#x IZend_Gdata_Gapps_EmailListFeed4$w KZend_Gdata_Gapps_EmailListEntry4v +Zend_Gdata_Feed4u 5Zend_Gdata_Extension4t =Zend_Gdata_Extension_Who4s AZend_Gdata_Extension_Where4r ?Zend_Gdata_Extension_When4$q KZend_Gdata_Extension_Visibility4&p OZend_Gdata_Extension_Transparency4"o GZend_Gdata_Extension_Reminder4-n ]Zend_Gdata_Extension_RecurrenceException4$m KZend_Gdata_Extension_Recurrence4 l CZend_Gdata_Extension_Rating4'k QZend_Gdata_Extension_OriginalEvent40j cZend_Gdata_Extension_OpenSearchTotalResults4.i _Zend_Gdata_Extension_OpenSearchStartIndex40h cZend_Gdata_Extension_OpenSearchItemsPerPage4"g GZend_Gdata_Extension_FeedLink4*f WZend_Gdata_Extension_ExtendedProperty4%e MZend_Gdata_Extension_EventStatus4#d IZend_Gdata_Extension_EntryLink4"c GZend_Gdata_Extension_Comments4&b OZend_Gdata_Extension_AttendeeType4(a SZend_Gdata_Extension_AttendeeStatus4` +Zend_Gdata_Exif4_ 5Zend_Gdata_Exif_Feed4#^ IZend_Gdata_Exif_Extension_Time4#] IZend_Gdata_Exif_Extension_Tags4$\ KZend_Gdata_Exif_Extension_Model4#[ IZend_Gdata_Exif_Extension_Make4"Z GZend_Gdata_Exif_Extension_Iso4,Y [Zend_Gdata_Exif_Extension_ImageUniqueId4$X KZend_Gdata_Exif_Extension_FStop4*W WZend_Gdata_Exif_Extension_FocalLength4$V KZend_Gdata_Exif_Extension_Flash4'U QZend_Gdata_Exif_Extension_Exposure4'T QZend_Gdata_Exif_Extension_Distance4S 7Zend_Gdata_Exif_Entry4R -Zend_Gdata_Entry4Q 7Zend_Gdata_DublinCore4*P WZend_Gdata_DublinCore_Extension_Title4,O [Zend_Gdata_DublinCore_Extension_Subject4+N YZend_Gdata_DublinCore_Extension_Rights4.M _Zend_Gdata_DublinCore_Extension_Publisher4-L ]Zend_Gdata_DublinCore_Extension_Language4/K aZend_Gdata_DublinCore_Extension_Identifier4+J YZend_Gdata_DublinCore_Extension_Format40I cZend_Gdata_DublinCore_Extension_Description4)H UZend_Gdata_DublinCore_Extension_Date4,G [Zend_Gdata_DublinCore_Extension_Creator4F +Zend_Gdata_Docs4E 7Zend_Gdata_Docs_Query4%D MZend_Gdata_Docs_DocumentListFeed4&C OZend_Gdata_Docs_DocumentListEntry4B 9Zend_Gdata_ClientLogin4A 3Zend_Gdata_Calendar4!@ EZend_Gdata_Calendar_ListFeed4"? GZend_Gdata_Calendar_ListEntry4-> ]Zend_Gdata_Calendar_Extension_WebContent4+= YZend_Gdata_Calendar_Extension_Timezone49< uZend_Gdata_Calendar_Extension_SendEventNotifications4+; YZend_Gdata_Calendar_Extension_Selected4+: YZend_Gdata_Calendar_Extension_QuickAdd4'9 QZend_Gdata_Calendar_Extension_Link4)8 UZend_Gdata_Calendar_Extension_Hidden4(7 SZend_Gdata_Calendar_Extension_Color4.6 _Zend_Gdata_Calendar_Extension_AccessLevel4#5 IZend_Gdata_Calendar_EventQuery4"4 GZend_Gdata_Calendar_EventFeed4#3 IZend_Gdata_Calendar_EventEntry42 -Zend_Gdata_Books4!1 EZend_Gdata_Books_VolumeQuery4 0 CZend_Gdata_Books_VolumeFeed4!/ EZend_Gdata_Books_VolumeEntry4+. YZend_Gdata_Books_Extension_Viewability4-- ]Zend_Gdata_Books_Extension_ThumbnailLink4&, OZend_Gdata_Books_Extension_Review4++ YZend_Gdata_Books_Extension_PreviewLink4(* SZend_Gdata_Books_Extension_InfoLink4-) ]Zend_Gdata_Books_Extension_Embeddability4)( UZend_Gdata_Books_Extension_BooksLink4-' ]Zend_Gdata_Books_Extension_BooksCategory4.& _Zend_Gdata_Books_Extension_AnnotationLink4   a  pL' lH)~_.c>cG0



f
F
,					q	@	{M ]0vT8xL_4T&e6	[/                 &d OZend_Gdata_Photos_Extension_Width4'c QZend_Gdata_Photos_Extension_Weight4(b SZend_Gdata_Photos_Extension_Version4%a MZend_Gdata_Photos_Extension_User4*` WZend_Gdata_Photos_Extension_Timestamp4*_ WZend_Gdata_Photos_Extension_Thumbnail4%^ MZend_Gdata_Photos_Extension_Size4)] UZend_Gdata_Photos_Extension_Rotation4+\ YZend_Gdata_Photos_Extension_QuotaLimit4-[ ]Zend_Gdata_Photos_Extension_QuotaCurrent4)Z UZend_Gdata_Photos_Extension_Position4(Y SZend_Gdata_Photos_Extension_PhotoId43X iZend_Gdata_Photos_Extension_NumPhotosRemaining4*W WZend_Gdata_Photos_Extension_NumPhotos4)V UZend_Gdata_Photos_Extension_Nickname4%U MZend_Gdata_Photos_Extension_Name42T gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum4)S UZend_Gdata_Photos_Extension_Location4#R IZend_Gdata_Photos_Extension_Id4'Q QZend_Gdata_Photos_Extension_Height42P gZend_Gdata_Photos_Extension_CommentingEnabled4-O ]Zend_Gdata_Photos_Extension_CommentCount4'N QZend_Gdata_Photos_Extension_Client4)M UZend_Gdata_Photos_Extension_Checksum4*L WZend_Gdata_Photos_Extension_BytesUsed4(K SZend_Gdata_Photos_Extension_AlbumId4'J QZend_Gdata_Photos_Extension_Access4#I IZend_Gdata_Photos_CommentEntry4!H EZend_Gdata_Photos_AlbumQuery4 G CZend_Gdata_Photos_AlbumFeed4!F EZend_Gdata_Photos_AlbumEntry4E 3Zend_Gdata_MimeFile4D ?Zend_Gdata_MimeBodyString4C AZend_Gdata_MediaMimeStream4B -Zend_Gdata_Media4A 7Zend_Gdata_Media_Feed4*@ WZend_Gdata_Media_Extension_MediaTitle4.? _Zend_Gdata_Media_Extension_MediaThumbnail4)> UZend_Gdata_Media_Extension_MediaText40= cZend_Gdata_Media_Extension_MediaRestriction4+< YZend_Gdata_Media_Extension_MediaRating4+; YZend_Gdata_Media_Extension_MediaPlayer4-: ]Zend_Gdata_Media_Extension_MediaKeywords4)9 UZend_Gdata_Media_Extension_MediaHash4*8 WZend_Gdata_Media_Extension_MediaGroup407 cZend_Gdata_Media_Extension_MediaDescription4+6 YZend_Gdata_Media_Extension_MediaCredit4.5 _Zend_Gdata_Media_Extension_MediaCopyright4,4 [Zend_Gdata_Media_Extension_MediaContent4-3 ]Zend_Gdata_Media_Extension_MediaCategory42 9Zend_Gdata_Media_Entry41 AZend_Gdata_Kind_EventEntry40 7Zend_Gdata_HttpClient4*/ WZend_Gdata_HttpAdapterStreamingSocket4). UZend_Gdata_HttpAdapterStreamingProxy4- /Zend_Gdata_Health4, ;Zend_Gdata_Health_Query4&+ OZend_Gdata_Health_ProfileListFeed4'* QZend_Gdata_Health_ProfileListEntry4") GZend_Gdata_Health_ProfileFeed4#( IZend_Gdata_Health_ProfileEntry4$' KZend_Gdata_Health_Extension_Ccr4& )Zend_Gdata_Geo4% 3Zend_Gdata_Geo_Feed4$$ KZend_Gdata_Geo_Extension_GmlPos4&# OZend_Gdata_Geo_Extension_GmlPoint4)" UZend_Gdata_Geo_Extension_GeoRssWhere4! 5Zend_Gdata_Geo_Entry4  -Zend_Gdata_Gbase4" GZend_Gdata_Gbase_SnippetQuery4! EZend_Gdata_Gbase_SnippetFeed4" GZend_Gdata_Gbase_SnippetEntry4 9Zend_Gdata_Gbase_Query4 AZend_Gdata_Gbase_ItemQuery4 ?Zend_Gdata_Gbase_ItemFeed4 AZend_Gdata_Gbase_ItemEntry4 7Zend_Gdata_Gbase_Feed4- ]Zend_Gdata_Gbase_Extension_BaseAttribute4 9Zend_Gdata_Gbase_Entry4 -Zend_Gdata_Gapps4 AZend_Gdata_Gapps_UserQuery4 ?Zend_Gdata_Gapps_UserFeed4 AZend_Gdata_Gapps_UserEntry4& OZend_Gdata_Gapps_ServiceException4 9Zend_Gdata_Gapps_Query4  CZend_Gdata_Gapps_OwnerQuery4 AZend_Gdata_Gapps_OwnerFeed4  CZend_Gdata_Gapps_OwnerEntry4# IZend_Gdata_Gapps_NicknameQuery4" GZend_Gdata_Gapps_NicknameFeed4#
 IZend_Gdata_Gapps_NicknameEntry4!	 EZend_Gdata_Gapps_MemberQuery4  CZend_Gdata_Gapps_MemberFeed4! EZend_Gdata_Gapps_MemberEntry4  CZend_Gdata_Gapps_GroupQuery4 AZend_Gdata_Gapps_GroupFeed4  CZend_Gdata_Gapps_GroupEntry4   [  oK(~T&`6S%e=



h
;
			~	R	%q?V)h;
O#qCwJj>yN'                             "? GZend_Http_Client_Adapter_Test4$> KZend_Http_Client_Adapter_Socket4#= IZend_Http_Client_Adapter_Proxy4'< QZend_Http_Client_Adapter_Exception4"; GZend_Http_Client_Adapter_Curl4: !Zend_Gdata49 1Zend_Gdata_YouTube4"8 GZend_Gdata_YouTube_VideoQuery4!7 EZend_Gdata_YouTube_VideoFeed4"6 GZend_Gdata_YouTube_VideoEntry4(5 SZend_Gdata_YouTube_UserProfileEntry4(4 SZend_Gdata_YouTube_SubscriptionFeed4)3 UZend_Gdata_YouTube_SubscriptionEntry4)2 UZend_Gdata_YouTube_PlaylistVideoFeed4*1 WZend_Gdata_YouTube_PlaylistVideoEntry4(0 SZend_Gdata_YouTube_PlaylistListFeed4)/ UZend_Gdata_YouTube_PlaylistListEntry4". GZend_Gdata_YouTube_MediaEntry4!- EZend_Gdata_YouTube_InboxFeed4", GZend_Gdata_YouTube_InboxEntry4)+ UZend_Gdata_YouTube_Extension_VideoId4** WZend_Gdata_YouTube_Extension_Username4*) WZend_Gdata_YouTube_Extension_Uploaded4'( QZend_Gdata_YouTube_Extension_Token4(' SZend_Gdata_YouTube_Extension_Status4,& [Zend_Gdata_YouTube_Extension_Statistics4'% QZend_Gdata_YouTube_Extension_State4($ SZend_Gdata_YouTube_Extension_School4-# ]Zend_Gdata_YouTube_Extension_ReleaseDate4." _Zend_Gdata_YouTube_Extension_Relationship4*! WZend_Gdata_YouTube_Extension_Recorded4&  OZend_Gdata_YouTube_Extension_Racy4- ]Zend_Gdata_YouTube_Extension_QueryString4) UZend_Gdata_YouTube_Extension_Private4* WZend_Gdata_YouTube_Extension_Position4/ aZend_Gdata_YouTube_Extension_PlaylistTitle4, [Zend_Gdata_YouTube_Extension_PlaylistId4, [Zend_Gdata_YouTube_Extension_Occupation4) UZend_Gdata_YouTube_Extension_NoEmbed4' QZend_Gdata_YouTube_Extension_Music4( SZend_Gdata_YouTube_Extension_Movies4- ]Zend_Gdata_YouTube_Extension_MediaRating4, [Zend_Gdata_YouTube_Extension_MediaGroup4- ]Zend_Gdata_YouTube_Extension_MediaCredit4. _Zend_Gdata_YouTube_Extension_MediaContent4* WZend_Gdata_YouTube_Extension_Location4& OZend_Gdata_YouTube_Extension_Link4* WZend_Gdata_YouTube_Extension_LastName4* WZend_Gdata_YouTube_Extension_Hometown4) UZend_Gdata_YouTube_Extension_Hobbies4( SZend_Gdata_YouTube_Extension_Gender4+ YZend_Gdata_YouTube_Extension_FirstName4* WZend_Gdata_YouTube_Extension_Duration4-
 ]Zend_Gdata_YouTube_Extension_Description4+	 YZend_Gdata_YouTube_Extension_CountHint4) UZend_Gdata_YouTube_Extension_Control4) UZend_Gdata_YouTube_Extension_Company4' QZend_Gdata_YouTube_Extension_Books4% MZend_Gdata_YouTube_Extension_Age4) UZend_Gdata_YouTube_Extension_AboutMe4# IZend_Gdata_YouTube_ContactFeed4$ KZend_Gdata_YouTube_ContactEntry4# IZend_Gdata_YouTube_CommentFeed4$  KZend_Gdata_YouTube_CommentEntry4$ KZend_Gdata_YouTube_ActivityFeed4%~ MZend_Gdata_YouTube_ActivityEntry4} ;Zend_Gdata_Spreadsheets4*| WZend_Gdata_Spreadsheets_WorksheetFeed4+{ YZend_Gdata_Spreadsheets_WorksheetEntry4,z [Zend_Gdata_Spreadsheets_SpreadsheetFeed4-y ]Zend_Gdata_Spreadsheets_SpreadsheetEntry4&x OZend_Gdata_Spreadsheets_ListQuery4%w MZend_Gdata_Spreadsheets_ListFeed4&v OZend_Gdata_Spreadsheets_ListEntry4/u aZend_Gdata_Spreadsheets_Extension_RowCount4-t ]Zend_Gdata_Spreadsheets_Extension_Custom4/s aZend_Gdata_Spreadsheets_Extension_ColCount4+r YZend_Gdata_Spreadsheets_Extension_Cell4*q WZend_Gdata_Spreadsheets_DocumentQuery4&p OZend_Gdata_Spreadsheets_CellQuery4%o MZend_Gdata_Spreadsheets_CellFeed4&n OZend_Gdata_Spreadsheets_CellEntry4m -Zend_Gdata_Query4l /Zend_Gdata_Photos4 k CZend_Gdata_Photos_UserQuery4j AZend_Gdata_Photos_UserFeed4 i CZend_Gdata_Photos_UserEntry4h AZend_Gdata_Photos_TagEntry4!g EZend_Gdata_Photos_PhotoQuery4 f CZend_Gdata_Photos_PhotoFeed4!e EZend_Gdata_Photos_PhotoEntry4   l  sQ6b*~U5f>tR%


v
I
&						x	Y	:	bE,k= qP2Y7i-hA#jI5zaM2                  + ;Zend_Log_Filter_Message4* =Zend_Log_Filter_Abstract4) 1Zend_Log_Exception4( #Zend_Locale4' -Zend_Locale_Math4& =Zend_Locale_Math_PhpMath4% AZend_Locale_Math_Exception4$ 1Zend_Locale_Format4# 7Zend_Locale_Exception4" -Zend_Locale_Data4!! EZend_Locale_Data_Translation4  #Zend_Loader4 =Zend_Loader_PluginLoader4' QZend_Loader_PluginLoader_Exception4 7Zend_Loader_Exception4 9Zend_Loader_Autoloader4$ KZend_Loader_Autoloader_Resource4 Zend_Ldap4 )Zend_Ldap_Node4 7Zend_Ldap_Node_Schema4# IZend_Ldap_Node_Schema_OpenLdap4/ aZend_Ldap_Node_Schema_ObjectClass_OpenLdap46 oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectory4 AZend_Ldap_Node_Schema_Item41 eZend_Ldap_Node_Schema_AttributeType_OpenLdap48 sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory4* WZend_Ldap_Node_Schema_ActiveDirectory4 9Zend_Ldap_Node_RootDse4$ KZend_Ldap_Node_RootDse_OpenLdap4& OZend_Ldap_Node_RootDse_eDirectory4+ YZend_Ldap_Node_RootDse_ActiveDirectory4 ?Zend_Ldap_Node_Collection4$ KZend_Ldap_Node_ChildrenIterator4
 ;Zend_Ldap_Node_Abstract4	 9Zend_Ldap_Ldif_Encoder4 -Zend_Ldap_Filter4 ;Zend_Ldap_Filter_String4 3Zend_Ldap_Filter_Or4 5Zend_Ldap_Filter_Not4 7Zend_Ldap_Filter_Mask4 =Zend_Ldap_Filter_Logical4 AZend_Ldap_Filter_Exception4 5Zend_Ldap_Filter_And4  ?Zend_Ldap_Filter_Abstract4 3Zend_Ldap_Exception4~ %Zend_Ldap_Dn4} 3Zend_Ldap_Converter4| 5Zend_Ldap_Collection4*{ WZend_Ldap_Collection_Iterator_Default4z 3Zend_Ldap_Attribute4y #Zend_Layout4x 7Zend_Layout_Exception4)w UZend_Layout_Controller_Plugin_Layout40v cZend_Layout_Controller_Action_Helper_Layout4u Zend_Json4t -Zend_Json_Server4s 5Zend_Json_Server_Smd4!r EZend_Json_Server_Smd_Service4q ?Zend_Json_Server_Response4#p IZend_Json_Server_Response_Http4o =Zend_Json_Server_Request4"n GZend_Json_Server_Request_Http4m AZend_Json_Server_Exception4l 9Zend_Json_Server_Error4k 9Zend_Json_Server_Cache4j )Zend_Json_Expr4i 3Zend_Json_Exception4h /Zend_Json_Encoder4g /Zend_Json_Decoder4f 'Zend_InfoCard4-e ]Zend_InfoCard_Xml_SecurityTokenReference4d AZend_InfoCard_Xml_Security4)c UZend_InfoCard_Xml_Security_Transform44b kZend_InfoCard_Xml_Security_Transform_XmlExcC14N43a iZend_InfoCard_Xml_Security_Transform_Exception4<` {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignature4)_ UZend_InfoCard_Xml_Security_Exception4^ ?Zend_InfoCard_Xml_KeyInfo4&] OZend_InfoCard_Xml_KeyInfo_XmlDSig4&\ OZend_InfoCard_Xml_KeyInfo_Default4'[ QZend_InfoCard_Xml_KeyInfo_Abstract4 Z CZend_InfoCard_Xml_Exception4#Y IZend_InfoCard_Xml_EncryptedKey4$X KZend_InfoCard_Xml_EncryptedData4+W YZend_InfoCard_Xml_EncryptedData_XmlEnc4-V ]Zend_InfoCard_Xml_EncryptedData_Abstract4U ?Zend_InfoCard_Xml_Element4 T CZend_InfoCard_Xml_Assertion4%S MZend_InfoCard_Xml_Assertion_Saml4R ;Zend_InfoCard_Exception4%Q MZend_InfoCard_Exception_Abstract4P 5Zend_InfoCard_Claims4O 5Zend_InfoCard_Cipher45N mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc45M mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc44L kZend_InfoCard_Cipher_Symmetric_Adapter_Abstract4)K UZend_InfoCard_Cipher_Pki_Adapter_Rsa4.J _Zend_InfoCard_Cipher_Pki_Adapter_Abstract4#I IZend_InfoCard_Cipher_Exception4$H KZend_InfoCard_Adapter_Exception4"G GZend_InfoCard_Adapter_Default4F 1Zend_Http_Response4E ?Zend_Http_Response_Stream4D 3Zend_Http_Exception4C 3Zend_Http_CookieJar4B -Zend_Http_Cookie4A -Zend_Http_Client4@ AZend_Http_Client_Exception4   x yZ9iE4cC#]9iJ



t
b
D
"					]	7	bN0xT7eF$yX>"uP*oU>,
qW=!qY7                        ## IZend_Oauth_Signature_Plaintext4" ?Zend_Oauth_Signature_Hmac4! +Zend_Oauth_Http4  ;Zend_Oauth_Http_Utility4& OZend_Oauth_Http_UserAuthorization4! EZend_Oauth_Http_RequestToken4  CZend_Oauth_Http_AccessToken4 5Zend_Oauth_Exception4 3Zend_Oauth_Consumer4 /Zend_Oauth_Config4 /Zend_Oauth_Client4 +Zend_Navigation4 5Zend_Navigation_Page4 =Zend_Navigation_Page_Uri4 =Zend_Navigation_Page_Mvc4 ?Zend_Navigation_Exception4 ?Zend_Navigation_Container4 Zend_Mime4 )Zend_Mime_Part4 /Zend_Mime_Message4 3Zend_Mime_Exception4 -Zend_Mime_Decode4 #Zend_Memory4 /Zend_Memory_Value4 3Zend_Memory_Manager4
 7Zend_Memory_Exception4	 7Zend_Memory_Container4" GZend_Memory_Container_Movable4! EZend_Memory_Container_Locked4! EZend_Memory_AccessController4 3Zend_Measure_Weight4 3Zend_Measure_Volume4% MZend_Measure_Viscosity_Kinematic4# IZend_Measure_Viscosity_Dynamic4 3Zend_Measure_Torque4  /Zend_Measure_Time4 =Zend_Measure_Temperature4~ 1Zend_Measure_Speed4} 7Zend_Measure_Pressure4| 1Zend_Measure_Power4{ 3Zend_Measure_Number4z 9Zend_Measure_Lightness4y 3Zend_Measure_Length4x ?Zend_Measure_Illumination4w 9Zend_Measure_Frequency4v 1Zend_Measure_Force4u =Zend_Measure_Flow_Volume4t 9Zend_Measure_Flow_Mole4s 9Zend_Measure_Flow_Mass4r 9Zend_Measure_Exception4q 3Zend_Measure_Energy4p 5Zend_Measure_Density4o 5Zend_Measure_Current4 n CZend_Measure_Cooking_Weight4 m CZend_Measure_Cooking_Volume4l =Zend_Measure_Capacitance4k 3Zend_Measure_Binary4j /Zend_Measure_Area4i 1Zend_Measure_Angle4h ?Zend_Measure_Acceleration4g 7Zend_Measure_Abstract4f #Zend_Markup4e 7Zend_Markup_TokenList4d /Zend_Markup_Token4*c WZend_Markup_Renderer_RendererAbstract4b ?Zend_Markup_Renderer_Html4"a GZend_Markup_Renderer_Html_Url4#` IZend_Markup_Renderer_Html_List4"_ GZend_Markup_Renderer_Html_Img4+^ YZend_Markup_Renderer_Html_HtmlAbstract4#] IZend_Markup_Renderer_Html_Code4#\ IZend_Markup_Renderer_Exception4[ AZend_Markup_Parser_Textile4!Z EZend_Markup_Parser_Exception4Y ?Zend_Markup_Parser_Bbcode4X 7Zend_Markup_Exception4W Zend_Mail4V =Zend_Mail_Transport_Smtp4!U EZend_Mail_Transport_Sendmail4"T GZend_Mail_Transport_Exception4!S EZend_Mail_Transport_Abstract4R /Zend_Mail_Storage4'Q QZend_Mail_Storage_Writable_Maildir4P 9Zend_Mail_Storage_Pop34O 9Zend_Mail_Storage_Mbox4N ?Zend_Mail_Storage_Maildir4M 9Zend_Mail_Storage_Imap4L =Zend_Mail_Storage_Folder4"K GZend_Mail_Storage_Folder_Mbox4%J MZend_Mail_Storage_Folder_Maildir4 I CZend_Mail_Storage_Exception4H AZend_Mail_Storage_Abstract4G ;Zend_Mail_Protocol_Smtp4'F QZend_Mail_Protocol_Smtp_Auth_Plain4'E QZend_Mail_Protocol_Smtp_Auth_Login4)D UZend_Mail_Protocol_Smtp_Auth_Crammd54C ;Zend_Mail_Protocol_Pop34B ;Zend_Mail_Protocol_Imap4!A EZend_Mail_Protocol_Exception4 @ CZend_Mail_Protocol_Abstract4? )Zend_Mail_Part4> 3Zend_Mail_Part_File4= /Zend_Mail_Message4< 9Zend_Mail_Message_File4; 3Zend_Mail_Exception4: Zend_Log4 9 CZend_Log_Writer_ZendMonitor48 9Zend_Log_Writer_Syslog47 9Zend_Log_Writer_Stream46 5Zend_Log_Writer_Null45 5Zend_Log_Writer_Mock44 5Zend_Log_Writer_Mail43 ;Zend_Log_Writer_Firebug42 1Zend_Log_Writer_Db41 =Zend_Log_Writer_Abstract40 9Zend_Log_Formatter_Xml4/ ?Zend_Log_Formatter_Simple4. AZend_Log_Formatter_Firebug4- =Zend_Log_Filter_Suppress4, =Zend_Log_Filter_Priority4   n  eD+kM#\4pB^@"




d
B
 					~	^	B	*~T1z_H"g:{^?vV+x_9Z8~]3      CZend_Pdf_Filter_Compression4$ KZend_Pdf_Filter_Compression_Lzw4& OZend_Pdf_Filter_Compression_Flate4 =Zend_Pdf_Filter_AsciiHex4 ;Zend_Pdf_Filter_Ascii854" GZend_Pdf_FileParserDataSource4) UZend_Pdf_FileParserDataSource_String4'
 QZend_Pdf_FileParserDataSource_File4	 3Zend_Pdf_FileParser4 ?Zend_Pdf_FileParser_Image4" GZend_Pdf_FileParser_Image_Png4 =Zend_Pdf_FileParser_Font4& OZend_Pdf_FileParser_Font_OpenType4/ aZend_Pdf_FileParser_Font_OpenType_TrueType4 1Zend_Pdf_Exception4 ;Zend_Pdf_ElementFactory4" GZend_Pdf_ElementFactory_Proxy4  -Zend_Pdf_Element4 ;Zend_Pdf_Element_String4#~ IZend_Pdf_Element_String_Binary4} ;Zend_Pdf_Element_Stream4| AZend_Pdf_Element_Reference4%{ MZend_Pdf_Element_Reference_Table4'z QZend_Pdf_Element_Reference_Context4y ;Zend_Pdf_Element_Object4#x IZend_Pdf_Element_Object_Stream4w =Zend_Pdf_Element_Numeric4v 7Zend_Pdf_Element_Null4u 7Zend_Pdf_Element_Name4 t CZend_Pdf_Element_Dictionary4s =Zend_Pdf_Element_Boolean4r 9Zend_Pdf_Element_Array4q 5Zend_Pdf_Destination4p ?Zend_Pdf_Destination_Zoom4!o EZend_Pdf_Destination_Unknown4n AZend_Pdf_Destination_Named4'm QZend_Pdf_Destination_FitVertically4&l OZend_Pdf_Destination_FitRectangle4)k UZend_Pdf_Destination_FitHorizontally42j gZend_Pdf_Destination_FitBoundingBoxVertically44i kZend_Pdf_Destination_FitBoundingBoxHorizontally4(h SZend_Pdf_Destination_FitBoundingBox4g =Zend_Pdf_Destination_Fit4"f GZend_Pdf_Destination_Explicit4e )Zend_Pdf_Color4d 1Zend_Pdf_Color_Rgb4c 3Zend_Pdf_Color_Html4b =Zend_Pdf_Color_GrayScale4a 3Zend_Pdf_Color_Cmyk4` 'Zend_Pdf_Cmap4_ AZend_Pdf_Cmap_TrimmedTable4!^ EZend_Pdf_Cmap_SegmentToDelta4] AZend_Pdf_Cmap_ByteEncoding4&\ OZend_Pdf_Cmap_ByteEncoding_Static4[ 3Zend_Pdf_Annotation4Z =Zend_Pdf_Annotation_Text4Y AZend_Pdf_Annotation_Markup4X =Zend_Pdf_Annotation_Link4'W QZend_Pdf_Annotation_FileAttachment4V +Zend_Pdf_Action4U 3Zend_Pdf_Action_URI4T ;Zend_Pdf_Action_Unknown4S 7Zend_Pdf_Action_Trans4R 9Zend_Pdf_Action_Thread4Q AZend_Pdf_Action_SubmitForm4P 7Zend_Pdf_Action_Sound4 O CZend_Pdf_Action_SetOCGState4N ?Zend_Pdf_Action_ResetForm4M ?Zend_Pdf_Action_Rendition4L 7Zend_Pdf_Action_Named4K 7Zend_Pdf_Action_Movie4J 9Zend_Pdf_Action_Launch4I AZend_Pdf_Action_JavaScript4H AZend_Pdf_Action_ImportData4G 5Zend_Pdf_Action_Hide4F 7Zend_Pdf_Action_GoToR4E 7Zend_Pdf_Action_GoToE4D AZend_Pdf_Action_GoTo3DView4C 5Zend_Pdf_Action_GoTo4B )Zend_Paginator4-A ]Zend_Paginator_SerializableLimitIterator4*@ WZend_Paginator_ScrollingStyle_Sliding4*? WZend_Paginator_ScrollingStyle_Jumping4*> WZend_Paginator_ScrollingStyle_Elastic4&= OZend_Paginator_ScrollingStyle_All4< =Zend_Paginator_Exception4 ; CZend_Paginator_Adapter_Null4$: KZend_Paginator_Adapter_Iterator4)9 UZend_Paginator_Adapter_DbTableSelect4$8 KZend_Paginator_Adapter_DbSelect4!7 EZend_Paginator_Adapter_Array46 #Zend_OpenId45 5Zend_OpenId_Provider44 ?Zend_OpenId_Provider_User4&3 OZend_OpenId_Provider_User_Session4!2 EZend_OpenId_Provider_Storage4&1 OZend_OpenId_Provider_Storage_File40 7Zend_OpenId_Extension4/ AZend_OpenId_Extension_Sreg4. 7Zend_OpenId_Exception4- 5Zend_OpenId_Consumer4!, EZend_OpenId_Consumer_Storage4&+ OZend_OpenId_Consumer_Storage_File4* !Zend_Oauth4) -Zend_Oauth_Token4( =Zend_Oauth_Token_Request4'' QZend_Oauth_Token_AuthorizedRequest4& ;Zend_Oauth_Token_Access4+% YZend_Oauth_Signature_SignatureAbstract4$ =Zend_Oauth_Signature_Rsa4   c  vV='X*U_k,


{
L
&
				t	T	-	jE4oL3y[6g<uP/lK5v^;"4                                           8t sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum4Is Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive45r mZend_Search_Lucene_Analysis_Analyzer_Common_Text4Fq Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive4p 7Zend_Search_Exception4o -Zend_Rest_Server4n AZend_Rest_Server_Exception4m +Zend_Rest_Route4l 3Zend_Rest_Exception4k 5Zend_Rest_Controller4j -Zend_Rest_Client4i ;Zend_Rest_Client_Result4&h OZend_Rest_Client_Result_Exception4g AZend_Rest_Client_Exception4f 'Zend_Registry4e =Zend_Reflection_Property4d ?Zend_Reflection_Parameter4c 9Zend_Reflection_Method4b =Zend_Reflection_Function4a 5Zend_Reflection_File4` ?Zend_Reflection_Extension4_ ?Zend_Reflection_Exception4^ =Zend_Reflection_Docblock4!] EZend_Reflection_Docblock_Tag4(\ SZend_Reflection_Docblock_Tag_Return4'[ QZend_Reflection_Docblock_Tag_Param4Z 7Zend_Reflection_Class4Y !Zend_Queue4X 9Zend_Queue_Stomp_Frame4W ;Zend_Queue_Stomp_Client4'V QZend_Queue_Stomp_Client_Connection4U 1Zend_Queue_Message4#T IZend_Queue_Message_PlatformJob4 S CZend_Queue_Message_Iterator4R 5Zend_Queue_Exception4(Q SZend_Queue_Adapter_PlatformJobQueue4P ;Zend_Queue_Adapter_Null4!O EZend_Queue_Adapter_Memcacheq4N 7Zend_Queue_Adapter_Db4 M CZend_Queue_Adapter_Db_Queue4"L GZend_Queue_Adapter_Db_Message4K =Zend_Queue_Adapter_Array4'J QZend_Queue_Adapter_AdapterAbstract4 I CZend_Queue_Adapter_Activemq4H -Zend_ProgressBar4G AZend_ProgressBar_Exception4F =Zend_ProgressBar_Adapter4$E KZend_ProgressBar_Adapter_JsPush4$D KZend_ProgressBar_Adapter_JsPull4'C QZend_ProgressBar_Adapter_Exception4%B MZend_ProgressBar_Adapter_Console4A Zend_Pdf4!@ EZend_Pdf_UpdateInfoContainer4? -Zend_Pdf_Trailer4> ;Zend_Pdf_Trailer_Keeper4= AZend_Pdf_Trailer_Generator4< +Zend_Pdf_Target4; )Zend_Pdf_Style4: 7Zend_Pdf_StringParser49 /Zend_Pdf_Resource4#8 IZend_Pdf_Resource_ImageFactory47 ;Zend_Pdf_Resource_Image4!6 EZend_Pdf_Resource_Image_Tiff4 5 CZend_Pdf_Resource_Image_Png4!4 EZend_Pdf_Resource_Image_Jpeg43 9Zend_Pdf_Resource_Font4!2 EZend_Pdf_Resource_Font_Type04"1 GZend_Pdf_Resource_Font_Simple4+0 YZend_Pdf_Resource_Font_Simple_Standard48/ sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats46. oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman47- qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic4;, yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic45+ mZend_Pdf_Resource_Font_Simple_Standard_TimesBold42* gZend_Pdf_Resource_Font_Simple_Standard_Symbol4<) {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaOblique4A( Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique49' uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold45& mZend_Pdf_Resource_Font_Simple_Standard_Helvetica4:% wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique4>$ Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique47# qZend_Pdf_Resource_Font_Simple_Standard_CourierBold43" iZend_Pdf_Resource_Font_Simple_Standard_Courier4)! UZend_Pdf_Resource_Font_Simple_Parsed42  gZend_Pdf_Resource_Font_Simple_Parsed_TrueType4* WZend_Pdf_Resource_Font_FontDescriptor4% MZend_Pdf_Resource_Font_Extracted4# IZend_Pdf_Resource_Font_CidFont4, [Zend_Pdf_Resource_Font_CidFont_TrueType43 iZend_Pdf_RecursivelyIteratableObjectsContainer4 +Zend_Pdf_Parser4 'Zend_Pdf_Page4 -Zend_Pdf_Outline4 ;Zend_Pdf_Outline_Loaded4 =Zend_Pdf_Outline_Created4 /Zend_Pdf_NameTree4 )Zend_Pdf_Image4 'Zend_Pdf_Font4 ?Zend_Pdf_Filter_RunLength4   Q  }0i/|L#wN*nB


}
A
				f	?	NZ+wAY#l>	pCR)b:                   ,E [Zend_Serializer_Adapter_AdapterAbstract4D 1Zend_Search_Lucene40C cZend_Search_Lucene_TermStreamsPriorityQueue4$B KZend_Search_Lucene_Storage_File4+A YZend_Search_Lucene_Storage_File_Memory4/@ aZend_Search_Lucene_Storage_File_Filesystem4)? UZend_Search_Lucene_Storage_Directory44> kZend_Search_Lucene_Storage_Directory_Filesystem4%= MZend_Search_Lucene_Search_Weight4*< WZend_Search_Lucene_Search_Weight_Term4,; [Zend_Search_Lucene_Search_Weight_Phrase4/: aZend_Search_Lucene_Search_Weight_MultiTerm4+9 YZend_Search_Lucene_Search_Weight_Empty4-8 ]Zend_Search_Lucene_Search_Weight_Boolean4)7 UZend_Search_Lucene_Search_Similarity416 eZend_Search_Lucene_Search_Similarity_Default4)5 UZend_Search_Lucene_Search_QueryToken434 iZend_Search_Lucene_Search_QueryParserException413 eZend_Search_Lucene_Search_QueryParserContext4*2 WZend_Search_Lucene_Search_QueryParser4)1 UZend_Search_Lucene_Search_QueryLexer4'0 QZend_Search_Lucene_Search_QueryHit4)/ UZend_Search_Lucene_Search_QueryEntry4.. _Zend_Search_Lucene_Search_QueryEntry_Term42- gZend_Search_Lucene_Search_QueryEntry_Subquery40, cZend_Search_Lucene_Search_QueryEntry_Phrase4$+ KZend_Search_Lucene_Search_Query4-* ]Zend_Search_Lucene_Search_Query_Wildcard4)) UZend_Search_Lucene_Search_Query_Term4*( WZend_Search_Lucene_Search_Query_Range42' gZend_Search_Lucene_Search_Query_Preprocessing47& qZend_Search_Lucene_Search_Query_Preprocessing_Term49% uZend_Search_Lucene_Search_Query_Preprocessing_Phrase48$ sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy4+# YZend_Search_Lucene_Search_Query_Phrase4." _Zend_Search_Lucene_Search_Query_MultiTerm42! gZend_Search_Lucene_Search_Query_Insignificant4*  WZend_Search_Lucene_Search_Query_Fuzzy4* WZend_Search_Lucene_Search_Query_Empty4, [Zend_Search_Lucene_Search_Query_Boolean42 gZend_Search_Lucene_Search_Highlighter_Default4: wZend_Search_Lucene_Search_BooleanExpressionRecognizer4 =Zend_Search_Lucene_Proxy4% MZend_Search_Lucene_PriorityQueue4/ aZend_Search_Lucene_Interface_MultiSearcher4# IZend_Search_Lucene_LockManager4$ KZend_Search_Lucene_Index_Writer40 cZend_Search_Lucene_Index_TermsPriorityQueue4& OZend_Search_Lucene_Index_TermInfo4" GZend_Search_Lucene_Index_Term4+ YZend_Search_Lucene_Index_SegmentWriter48 sZend_Search_Lucene_Index_SegmentWriter_StreamWriter4: wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter4+ YZend_Search_Lucene_Index_SegmentMerger4) UZend_Search_Lucene_Index_SegmentInfo4' QZend_Search_Lucene_Index_FieldInfo4( SZend_Search_Lucene_Index_DocsFilter4. _Zend_Search_Lucene_Index_DictionaryLoader4! EZend_Search_Lucene_FSMAction4
 9Zend_Search_Lucene_FSM4	 =Zend_Search_Lucene_Field4! EZend_Search_Lucene_Exception4  CZend_Search_Lucene_Document4% MZend_Search_Lucene_Document_Xlsx4% MZend_Search_Lucene_Document_Pptx4( SZend_Search_Lucene_Document_OpenXml4% MZend_Search_Lucene_Document_Html4* WZend_Search_Lucene_Document_Exception4% MZend_Search_Lucene_Document_Docx4,  [Zend_Search_Lucene_Analysis_TokenFilter46 oZend_Search_Lucene_Analysis_TokenFilter_StopWords47~ qZend_Search_Lucene_Analysis_TokenFilter_ShortWords4:} wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf846| oZend_Search_Lucene_Analysis_TokenFilter_LowerCase4&{ OZend_Search_Lucene_Analysis_Token4)z UZend_Search_Lucene_Analysis_Analyzer40y cZend_Search_Lucene_Analysis_Analyzer_Common48x sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num4Iw Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive45v mZend_Search_Lucene_Analysis_Analyzer_Common_Utf84Fu Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive4   Z  h@jP1Z1 e<j?



k
A
				g	@	vT3	zQ+{W.
T}6j*h8	d"                                                      - ]Zend_Service_DeveloperGarden_LocalSearch4> Zend_Service_DeveloperGarden_LocalSearch_SearchParameters47 qZend_Service_DeveloperGarden_LocalSearch_Exception4, [Zend_Service_DeveloperGarden_IpLocation46 oZend_Service_DeveloperGarden_IpLocation_IpAddress4+ YZend_Service_DeveloperGarden_Exception4, [Zend_Service_DeveloperGarden_Credential40 cZend_Service_DeveloperGarden_ConferenceCall4C Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatus4C Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail4< {Zend_Service_DeveloperGarden_ConferenceCall_Participant4: wZend_Service_DeveloperGarden_ConferenceCall_Exception4D 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceSchedule4B Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail4C Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount4- ]Zend_Service_DeveloperGarden_Client_Soap42 gZend_Service_DeveloperGarden_Client_Exception47 qZend_Service_DeveloperGarden_Client_ClientAbstract41 eZend_Service_DeveloperGarden_BaseUserService4A Zend_Service_DeveloperGarden_BaseUserService_AccountBalance4 9Zend_Service_Delicious4&
 OZend_Service_Delicious_SimplePost4$	 KZend_Service_Delicious_PostList4  CZend_Service_Delicious_Post4% MZend_Service_Delicious_Exception4  CZend_Service_Audioscrobbler4 3Zend_Service_Amazon4 ;Zend_Service_Amazon_Sqs4& OZend_Service_Amazon_Sqs_Exception4' QZend_Service_Amazon_SimilarProduct4 9Zend_Service_Amazon_S34"  GZend_Service_Amazon_S3_Stream4% MZend_Service_Amazon_S3_Exception4"~ GZend_Service_Amazon_ResultSet4} ?Zend_Service_Amazon_Query4!| EZend_Service_Amazon_OfferSet4{ ?Zend_Service_Amazon_Offer4&z OZend_Service_Amazon_ListmaniaList4y =Zend_Service_Amazon_Item4x ?Zend_Service_Amazon_Image4"w GZend_Service_Amazon_Exception4(v SZend_Service_Amazon_EditorialReview4u ;Zend_Service_Amazon_Ec24+t YZend_Service_Amazon_Ec2_Securitygroups4%s MZend_Service_Amazon_Ec2_Response4#r IZend_Service_Amazon_Ec2_Region4$q KZend_Service_Amazon_Ec2_Keypair4%p MZend_Service_Amazon_Ec2_Instance4-o ]Zend_Service_Amazon_Ec2_Instance_Windows4.n _Zend_Service_Amazon_Ec2_Instance_Reserved4"m GZend_Service_Amazon_Ec2_Image4&l OZend_Service_Amazon_Ec2_Exception4&k OZend_Service_Amazon_Ec2_Elasticip4 j CZend_Service_Amazon_Ec2_Ebs4'i QZend_Service_Amazon_Ec2_CloudWatch4.h _Zend_Service_Amazon_Ec2_Availabilityzones4%g MZend_Service_Amazon_Ec2_Abstract4'f QZend_Service_Amazon_CustomerReview4$e KZend_Service_Amazon_Accessories4!d EZend_Service_Amazon_Abstract4c 5Zend_Service_Akismet4b 7Zend_Service_Abstract4a 9Zend_Server_Reflection4'` QZend_Server_Reflection_ReturnValue4%_ MZend_Server_Reflection_Prototype4%^ MZend_Server_Reflection_Parameter4 ] CZend_Server_Reflection_Node4"\ GZend_Server_Reflection_Method4$[ KZend_Server_Reflection_Function4-Z ]Zend_Server_Reflection_Function_Abstract4%Y MZend_Server_Reflection_Exception4!X EZend_Server_Reflection_Class4!W EZend_Server_Method_Prototype4!V EZend_Server_Method_Parameter4"U GZend_Server_Method_Definition4 T CZend_Server_Method_Callback4S 7Zend_Server_Exception4R 9Zend_Server_Definition4Q /Zend_Server_Cache4P 5Zend_Server_Abstract4O +Zend_Serializer4N ?Zend_Serializer_Exception4!M EZend_Serializer_Adapter_Wddx4)L UZend_Serializer_Adapter_PythonPickle4)K UZend_Serializer_Adapter_PhpSerialize4$J KZend_Serializer_Adapter_PhpCode4!I EZend_Serializer_Adapter_Json4%H MZend_Serializer_Adapter_Igbinary4!G EZend_Serializer_Adapter_Amf34!F EZend_Serializer_Adapter_Amf04   0  bVN3'


		d	Jt'k%<q&ZO}/                             QO #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstract4SN 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponse4JM Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType4gL OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseType4cK GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponse4WJ /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse4UI +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponse4SH 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse43G iZend_Service_DeveloperGarden_Response_BaseType4JF Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstract4CE Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCall4GD Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced4=C }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCall4AB Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatus4AA Zend_Service_DeveloperGarden_Request_SmsValidation_Validate4N@ Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeyword4C? Zend_Service_DeveloperGarden_Request_SmsValidation_Invalidate4L> Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbers4B= Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract49< uZend_Service_DeveloperGarden_Request_SendSms_SendSMS4>; Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS49: uZend_Service_DeveloperGarden_Request_RequestAbstract4I9 Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequest4E8 Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest437 iZend_Service_DeveloperGarden_Request_Exception4R6 %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequest4Y5 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequest4d4 IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequest4Q3 #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequest4R2 %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequest4Y1 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequest4d0 IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequest4Q/ #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequest4O. Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequest4U- +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequest4U, +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequest4V+ -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequest4a* CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequest4Z) 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequest4T( )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequest4R' %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequest4Y& 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequest4Q% #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequest4Q$ #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequest4a# CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequest4N" Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformation4L! Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalance4J  Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool4   . i N4~ \.

s
		Z	U4sBZw$CW  i     J} Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponse4U| +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponse4C{ Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponse4Cz Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstract4Hy Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponse4Ux +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponse4Qw #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponse4Iv Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception4;u yZend_Service_DeveloperGarden_Response_ResponseAbstract4Ot Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseType4Ks Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponse4Ar Zend_Service_DeveloperGarden_Response_IpLocation_RegionType4Kq Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseType4Gp Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponse4Lo Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationType4In Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType4>m Zend_Service_DeveloperGarden_Response_IpLocation_CityType44l kZend_Service_DeveloperGarden_Response_Exception4Tk )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse4[j 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponse4fi MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponse4Sh 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponse4Tg )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse4[f 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponse4fe MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponse4Sd 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponse4Uc +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType4Qb #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse4[a 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseType4W` /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse4[_ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseType4W^ /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse4\] 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseType4X\ 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponse4g[ OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseType4cZ GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse4`Y AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType4\X 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponse4ZW 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseType4VV -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponse4XU 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseType4TT )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse4_S ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType4[R 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponse4WQ /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType4SP 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponse4   S  Xk |-U&X0



i
K
"					a	<	pE`;T4OmCd6~aj.                                                         DP 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSources48O sZend_Service_WindowsAzure_Credentials_SharedKeyLite44N kZend_Service_WindowsAzure_Credentials_SharedKey4AM Zend_Service_WindowsAzure_Credentials_SharedAccessSignature44L kZend_Service_WindowsAzure_Credentials_Exception4>K Zend_Service_WindowsAzure_Credentials_CredentialsAbstract4J 5Zend_Service_Twitter4 I CZend_Service_Twitter_Search4#H IZend_Service_Twitter_Exception4G ;Zend_Service_Technorati4#F IZend_Service_Technorati_Weblog4"E GZend_Service_Technorati_Utils4*D WZend_Service_Technorati_TagsResultSet4'C QZend_Service_Technorati_TagsResult4)B UZend_Service_Technorati_TagResultSet4&A OZend_Service_Technorati_TagResult4,@ [Zend_Service_Technorati_SearchResultSet4)? UZend_Service_Technorati_SearchResult4&> OZend_Service_Technorati_ResultSet4#= IZend_Service_Technorati_Result4*< WZend_Service_Technorati_KeyInfoResult4*; WZend_Service_Technorati_GetInfoResult4&: OZend_Service_Technorati_Exception419 eZend_Service_Technorati_DailyCountsResultSet4.8 _Zend_Service_Technorati_DailyCountsResult4,7 [Zend_Service_Technorati_CosmosResultSet4)6 UZend_Service_Technorati_CosmosResult4+5 YZend_Service_Technorati_BlogInfoResult4#4 IZend_Service_Technorati_Author43 ;Zend_Service_StrikeIron4(2 SZend_Service_StrikeIron_ZipCodeInfo421 gZend_Service_StrikeIron_USAddressVerification4-0 ]Zend_Service_StrikeIron_SalesUseTaxBasic4&/ OZend_Service_StrikeIron_Exception4&. OZend_Service_StrikeIron_Decorator4!- EZend_Service_StrikeIron_Base4, ;Zend_Service_SlideShare4&+ OZend_Service_SlideShare_SlideShow4&* OZend_Service_SlideShare_Exception4) 1Zend_Service_Simpy4$( KZend_Service_Simpy_WatchlistSet4*' WZend_Service_Simpy_WatchlistFilterSet4'& QZend_Service_Simpy_WatchlistFilter4!% EZend_Service_Simpy_Watchlist4$ ?Zend_Service_Simpy_TagSet4# 9Zend_Service_Simpy_Tag4" AZend_Service_Simpy_NoteSet4! ;Zend_Service_Simpy_Note4  AZend_Service_Simpy_LinkSet4! EZend_Service_Simpy_LinkQuery4 ;Zend_Service_Simpy_Link4 9Zend_Service_ReCaptcha4$ KZend_Service_ReCaptcha_Response4$ KZend_Service_ReCaptcha_MailHide4. _Zend_Service_ReCaptcha_MailHide_Exception4% MZend_Service_ReCaptcha_Exception4 7Zend_Service_Nirvanix4# IZend_Service_Nirvanix_Response4) UZend_Service_Nirvanix_Namespace_Imfs4) UZend_Service_Nirvanix_Namespace_Base4$ KZend_Service_Nirvanix_Exception4 7Zend_Service_LiveDocx4$ KZend_Service_LiveDocx_MailMerge4$ KZend_Service_LiveDocx_Exception4 3Zend_Service_Flickr4" GZend_Service_Flickr_ResultSet4 AZend_Service_Flickr_Result4 ?Zend_Service_Flickr_Image4 9Zend_Service_Exception4+ YZend_Service_DeveloperGarden_VoiceCall4/
 aZend_Service_DeveloperGarden_SmsValidation4)	 UZend_Service_DeveloperGarden_SendSms45 mZend_Service_DeveloperGarden_SecurityTokenServer4; yZend_Service_DeveloperGarden_SecurityTokenServer_Cache4K Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstract4L Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponse4P !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponse4G Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponse4J Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponse4K Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2Response4L  Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponse4I Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumber4W~ /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponse4   R  _;e.~Fh8



\
%			s	C	Y)V5b8pK$tU6xO0rY8V#                '" QZend_Tag_Cloud_Decorator_Exception4#! IZend_Tag_Cloud_Decorator_Cloud4  )Zend_Soap_Wsdl4/ aZend_Soap_Wsdl_Strategy_DefaultComplexType4& OZend_Soap_Wsdl_Strategy_Composite40 cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence4/ aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex4$ KZend_Soap_Wsdl_Strategy_AnyType4% MZend_Soap_Wsdl_Strategy_Abstract4 =Zend_Soap_Wsdl_Exception4 -Zend_Soap_Server4 AZend_Soap_Server_Exception4 -Zend_Soap_Client4 9Zend_Soap_Client_Local4 AZend_Soap_Client_Exception4 ;Zend_Soap_Client_DotNet4 ;Zend_Soap_Client_Common4 9Zend_Soap_AutoDiscover4% MZend_Soap_AutoDiscover_Exception4 %Zend_Session4) UZend_Session_Validator_HttpUserAgent4$ KZend_Session_Validator_Abstract4' QZend_Session_SaveHandler_Exception4% MZend_Session_SaveHandler_DbTable4
 9Zend_Session_Namespace4	 9Zend_Session_Exception4 7Zend_Session_Abstract4 1Zend_Service_Yahoo4$ KZend_Service_Yahoo_WebResultSet4! EZend_Service_Yahoo_WebResult4& OZend_Service_Yahoo_VideoResultSet4# IZend_Service_Yahoo_VideoResult4! EZend_Service_Yahoo_ResultSet4 ?Zend_Service_Yahoo_Result4)  UZend_Service_Yahoo_PageDataResultSet4& OZend_Service_Yahoo_PageDataResult4%~ MZend_Service_Yahoo_NewsResultSet4"} GZend_Service_Yahoo_NewsResult4&| OZend_Service_Yahoo_LocalResultSet4#{ IZend_Service_Yahoo_LocalResult4+z YZend_Service_Yahoo_InlinkDataResultSet4(y SZend_Service_Yahoo_InlinkDataResult4&x OZend_Service_Yahoo_ImageResultSet4#w IZend_Service_Yahoo_ImageResult4v =Zend_Service_Yahoo_Image4&u OZend_Service_WindowsAzure_Storage44t kZend_Service_WindowsAzure_Storage_TableInstance47s qZend_Service_WindowsAzure_Storage_TableEntityQuery42r gZend_Service_WindowsAzure_Storage_TableEntity4,q [Zend_Service_WindowsAzure_Storage_Table4<p {Zend_Service_WindowsAzure_Storage_StorageEntityAbstract47o qZend_Service_WindowsAzure_Storage_SignedIdentifier43n iZend_Service_WindowsAzure_Storage_QueueMessage44m kZend_Service_WindowsAzure_Storage_QueueInstance4,l [Zend_Service_WindowsAzure_Storage_Queue49k uZend_Service_WindowsAzure_Storage_PageRegionInstance44j kZend_Service_WindowsAzure_Storage_LeaseInstance49i uZend_Service_WindowsAzure_Storage_DynamicTableEntity43h iZend_Service_WindowsAzure_Storage_BlobInstance44g kZend_Service_WindowsAzure_Storage_BlobContainer4+f YZend_Service_WindowsAzure_Storage_Blob42e gZend_Service_WindowsAzure_Storage_Blob_Stream4;d yZend_Service_WindowsAzure_Storage_BatchStorageAbstract4,c [Zend_Service_WindowsAzure_Storage_Batch4-b ]Zend_Service_WindowsAzure_SessionHandler4>a Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract41` eZend_Service_WindowsAzure_RetryPolicy_RetryN42_ gZend_Service_WindowsAzure_RetryPolicy_NoRetry44^ kZend_Service_WindowsAzure_RetryPolicy_Exception4(] SZend_Service_WindowsAzure_Exception4J\ Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscription42[ gZend_Service_WindowsAzure_Diagnostics_Manager43Z iZend_Service_WindowsAzure_Diagnostics_LogLevel44Y kZend_Service_WindowsAzure_Diagnostics_Exception4NX Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscription4HW Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLog4LV Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCounters4KU Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstract4<T {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogs4AS Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstance4DR 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectories4UQ +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogs4   X  fO4m?]0sEpM4




i
Q
1
					r	D	~J q)Y}Qp"c6P!n;                           0z cZend_Tool_Framework_System_Provider_Phpinfo41y eZend_Tool_Framework_System_Provider_Manifest4/x aZend_Tool_Framework_System_Provider_Config4(w SZend_Tool_Framework_System_Manifest4-v ]Zend_Tool_Framework_System_Action_Delete4-u ]Zend_Tool_Framework_System_Action_Create4!t EZend_Tool_Framework_Registry4+s YZend_Tool_Framework_Registry_Exception4+r YZend_Tool_Framework_Provider_Signature4,q [Zend_Tool_Framework_Provider_Repository4+p YZend_Tool_Framework_Provider_Exception4*o WZend_Tool_Framework_Provider_Abstract4&n OZend_Tool_Framework_Metadata_Tool4)m UZend_Tool_Framework_Metadata_Dynamic4'l QZend_Tool_Framework_Metadata_Basic4,k [Zend_Tool_Framework_Manifest_Repository4+j YZend_Tool_Framework_Manifest_Exception41i eZend_Tool_Framework_Loader_IncludePathLoader4Jh Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator4+g YZend_Tool_Framework_Loader_BasicLoader4(f SZend_Tool_Framework_Loader_Abstract4"e GZend_Tool_Framework_Exception4'd QZend_Tool_Framework_Client_Storage41c eZend_Tool_Framework_Client_Storage_Directory4(b SZend_Tool_Framework_Client_Response4Da 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator4'` QZend_Tool_Framework_Client_Request4(_ SZend_Tool_Framework_Client_Manifest49^ uZend_Tool_Framework_Client_Interactive_InputResponse48] sZend_Tool_Framework_Client_Interactive_InputRequest48\ sZend_Tool_Framework_Client_Interactive_InputHandler4)[ UZend_Tool_Framework_Client_Exception4'Z QZend_Tool_Framework_Client_Console4DY 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Indention4DX 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizer4CW Zend_Tool_Framework_Client_Console_ResponseDecorator_Blockize4FV Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter40U cZend_Tool_Framework_Client_Console_Manifest42T gZend_Tool_Framework_Client_Console_HelpSystem46S oZend_Tool_Framework_Client_Console_ArgumentParser4&R OZend_Tool_Framework_Client_Config4(Q SZend_Tool_Framework_Client_Abstract4*P WZend_Tool_Framework_Action_Repository4)O UZend_Tool_Framework_Action_Exception4$N KZend_Tool_Framework_Action_Base4M 'Zend_TimeSync4L 1Zend_TimeSync_Sntp4K 9Zend_TimeSync_Protocol4J /Zend_TimeSync_Ntp4I ;Zend_TimeSync_Exception4H +Zend_Text_Table4G 3Zend_Text_Table_Row4F ?Zend_Text_Table_Exception4&E OZend_Text_Table_Decorator_Unicode4$D KZend_Text_Table_Decorator_Ascii4C 9Zend_Text_Table_Column4B 3Zend_Text_MultiByte4A -Zend_Text_Figlet4@ AZend_Text_Figlet_Exception4? 3Zend_Text_Exception4&> OZend_Test_PHPUnit_Db_SimpleTester4,= [Zend_Test_PHPUnit_Db_Operation_Truncate4*< WZend_Test_PHPUnit_Db_Operation_Insert4-; ]Zend_Test_PHPUnit_Db_Operation_DeleteAll4*: WZend_Test_PHPUnit_Db_Metadata_Generic4#9 IZend_Test_PHPUnit_Db_Exception4,8 [Zend_Test_PHPUnit_Db_DataSet_QueryTable4.7 _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet406 cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet4)5 UZend_Test_PHPUnit_Db_DataSet_DbTable4*4 WZend_Test_PHPUnit_Db_DataSet_DbRowset4$3 KZend_Test_PHPUnit_Db_Connection4'2 QZend_Test_PHPUnit_DatabaseTestCase4)1 UZend_Test_PHPUnit_ControllerTestCase400 cZend_Test_PHPUnit_Constraint_ResponseHeader4*/ WZend_Test_PHPUnit_Constraint_Redirect4+. YZend_Test_PHPUnit_Constraint_Exception4*- WZend_Test_PHPUnit_Constraint_DomQuery4, 7Zend_Test_DbStatement4+ 3Zend_Test_DbAdapter4* /Zend_Tag_ItemList4) 'Zend_Tag_Item4( 1Zend_Tag_Exception4' )Zend_Tag_Cloud4& =Zend_Tag_Cloud_Exception4!% EZend_Tag_Cloud_Decorator_Tag4%$ MZend_Tag_Cloud_Decorator_HtmlTag4'# QZend_Tag_Cloud_Decorator_HtmlCloud4   G  V%Z-s<
b/a'



Z
,				T	PwBVi `&r>OmI                               5A mZend_Tool_Project_Profile_Iterator_ContextFilter4-@ ]Zend_Tool_Project_Profile_FileParser_Xml4(? SZend_Tool_Project_Profile_Exception4 > CZend_Tool_Project_Exception4<= {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory40< cZend_Tool_Project_Context_Zf_ViewsDirectory46; oZend_Tool_Project_Context_Zf_ViewScriptsDirectory40: cZend_Tool_Project_Context_Zf_ViewScriptFile469 oZend_Tool_Project_Context_Zf_ViewHelpersDirectory468 oZend_Tool_Project_Context_Zf_ViewFiltersDirectory4A7 Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory426 gZend_Tool_Project_Context_Zf_UploadsDirectory405 cZend_Tool_Project_Context_Zf_TestsDirectory474 qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile4@3 Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory412 eZend_Tool_Project_Context_Zf_TestLibraryFile461 oZend_Tool_Project_Context_Zf_TestLibraryDirectory4:0 wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFile4:/ wZend_Tool_Project_Context_Zf_TestApplicationDirectory4@. Zend_Tool_Project_Context_Zf_TestApplicationControllerFile4E- Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory4>, Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile44+ kZend_Tool_Project_Context_Zf_TemporaryDirectory43* iZend_Tool_Project_Context_Zf_SessionsDirectory48) sZend_Tool_Project_Context_Zf_SearchIndexesDirectory4<( {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory48' sZend_Tool_Project_Context_Zf_PublicScriptsDirectory41& eZend_Tool_Project_Context_Zf_PublicIndexFile47% qZend_Tool_Project_Context_Zf_PublicImagesDirectory41$ eZend_Tool_Project_Context_Zf_PublicDirectory45# mZend_Tool_Project_Context_Zf_ProjectProviderFile42" gZend_Tool_Project_Context_Zf_ModulesDirectory41! eZend_Tool_Project_Context_Zf_ModuleDirectory41  eZend_Tool_Project_Context_Zf_ModelsDirectory4+ YZend_Tool_Project_Context_Zf_ModelFile4/ aZend_Tool_Project_Context_Zf_LogsDirectory42 gZend_Tool_Project_Context_Zf_LocalesDirectory42 gZend_Tool_Project_Context_Zf_LibraryDirectory42 gZend_Tool_Project_Context_Zf_LayoutsDirectory48 sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory42 gZend_Tool_Project_Context_Zf_LayoutScriptFile4. _Zend_Tool_Project_Context_Zf_HtaccessFile40 cZend_Tool_Project_Context_Zf_FormsDirectory4* WZend_Tool_Project_Context_Zf_FormFile4/ aZend_Tool_Project_Context_Zf_DocsDirectory4- ]Zend_Tool_Project_Context_Zf_DbTableFile42 gZend_Tool_Project_Context_Zf_DbTableDirectory4/ aZend_Tool_Project_Context_Zf_DataDirectory46 oZend_Tool_Project_Context_Zf_ControllersDirectory40 cZend_Tool_Project_Context_Zf_ControllerFile42 gZend_Tool_Project_Context_Zf_ConfigsDirectory4, [Zend_Tool_Project_Context_Zf_ConfigFile40 cZend_Tool_Project_Context_Zf_CacheDirectory4/ aZend_Tool_Project_Context_Zf_BootstrapFile46 oZend_Tool_Project_Context_Zf_ApplicationDirectory47
 qZend_Tool_Project_Context_Zf_ApplicationConfigFile4/	 aZend_Tool_Project_Context_Zf_ApisDirectory4. _Zend_Tool_Project_Context_Zf_ActionMethod43 iZend_Tool_Project_Context_Zf_AbstractClassFile4@ Zend_Tool_Project_Context_System_ProjectProvidersDirectory48 sZend_Tool_Project_Context_System_ProjectProfileFile46 oZend_Tool_Project_Context_System_ProjectDirectory4) UZend_Tool_Project_Context_Repository4. _Zend_Tool_Project_Context_Filesystem_File43 iZend_Tool_Project_Context_Filesystem_Directory42  gZend_Tool_Project_Context_Filesystem_Abstract4( SZend_Tool_Project_Context_Exception4-~ ]Zend_Tool_Project_Context_Content_Engine43} iZend_Tool_Project_Context_Content_Engine_Phtml4;| yZend_Tool_Project_Context_Content_Engine_CodeGenerator40{ cZend_Tool_Framework_System_Provider_Version4   i  M" {M vJ!nFjG$




|
e
J
4
#
				y	I	$gClG^8kL0gD$iDpL'bH)                     * ;Zend_Validate_Identical4) 1Zend_Validate_Iban4( 9Zend_Validate_Hostname4' /Zend_Validate_Hex4& ?Zend_Validate_GreaterThan4% 3Zend_Validate_Float4!$ EZend_Validate_File_WordCount4# ?Zend_Validate_File_Upload4" ;Zend_Validate_File_Size4! ;Zend_Validate_File_Sha14!  EZend_Validate_File_NotExists4  CZend_Validate_File_MimeType4 9Zend_Validate_File_Md54 AZend_Validate_File_IsImage4$ KZend_Validate_File_IsCompressed4! EZend_Validate_File_ImageSize4 ;Zend_Validate_File_Hash4! EZend_Validate_File_FilesSize4! EZend_Validate_File_Extension4 ?Zend_Validate_File_Exists4' QZend_Validate_File_ExcludeMimeType4( SZend_Validate_File_ExcludeExtension4 =Zend_Validate_File_Crc324 =Zend_Validate_File_Count4 ;Zend_Validate_Exception4 AZend_Validate_EmailAddress4 5Zend_Validate_Digits4" GZend_Validate_Db_RecordExists4$ KZend_Validate_Db_NoRecordExists4 ?Zend_Validate_Db_Abstract4 1Zend_Validate_Date4 =Zend_Validate_CreditCard4
 3Zend_Validate_Ccnum4	 9Zend_Validate_Callback4 7Zend_Validate_Between4 7Zend_Validate_Barcode4 AZend_Validate_Barcode_Upce4 AZend_Validate_Barcode_Upca4 AZend_Validate_Barcode_Sscc4$ KZend_Validate_Barcode_Royalmail4" GZend_Validate_Barcode_Postnet4! EZend_Validate_Barcode_Planet4#  IZend_Validate_Barcode_Leitcode4  CZend_Validate_Barcode_Itf144~ AZend_Validate_Barcode_Issn4*} WZend_Validate_Barcode_IntelligentMail4$| KZend_Validate_Barcode_Identcode4!{ EZend_Validate_Barcode_Gtin144!z EZend_Validate_Barcode_Gtin134!y EZend_Validate_Barcode_Gtin124x AZend_Validate_Barcode_Ean84w AZend_Validate_Barcode_Ean54v AZend_Validate_Barcode_Ean24 u CZend_Validate_Barcode_Ean184 t CZend_Validate_Barcode_Ean144 s CZend_Validate_Barcode_Ean134 r CZend_Validate_Barcode_Ean124$q KZend_Validate_Barcode_Code93ext4!p EZend_Validate_Barcode_Code934$o KZend_Validate_Barcode_Code39ext4!n EZend_Validate_Barcode_Code394,m [Zend_Validate_Barcode_Code25interleaved4!l EZend_Validate_Barcode_Code254*k WZend_Validate_Barcode_AdapterAbstract4j 3Zend_Validate_Alpha4i 3Zend_Validate_Alnum4h 9Zend_Validate_Abstract4g Zend_Uri4f 'Zend_Uri_Http4e 1Zend_Uri_Exception4d )Zend_Translate4c 7Zend_Translate_Plural4b =Zend_Translate_Exception4a 9Zend_Translate_Adapter4!` EZend_Translate_Adapter_XmlTm4!_ EZend_Translate_Adapter_Xliff4^ AZend_Translate_Adapter_Tmx4] AZend_Translate_Adapter_Tbx4\ ?Zend_Translate_Adapter_Qt4[ AZend_Translate_Adapter_Ini4#Z IZend_Translate_Adapter_Gettext4Y AZend_Translate_Adapter_Csv4!X EZend_Translate_Adapter_Array4$W KZend_Tool_Project_Provider_View4$V KZend_Tool_Project_Provider_Test4/U aZend_Tool_Project_Provider_ProjectProvider4'T QZend_Tool_Project_Provider_Project4'S QZend_Tool_Project_Provider_Profile4&R OZend_Tool_Project_Provider_Module4%Q MZend_Tool_Project_Provider_Model4(P SZend_Tool_Project_Provider_Manifest4&O OZend_Tool_Project_Provider_Layout4$N KZend_Tool_Project_Provider_Form4)M UZend_Tool_Project_Provider_Exception4'L QZend_Tool_Project_Provider_DbTable4)K UZend_Tool_Project_Provider_DbAdapter4*J WZend_Tool_Project_Provider_Controller4+I YZend_Tool_Project_Provider_Application4&H OZend_Tool_Project_Provider_Action4(G SZend_Tool_Project_Provider_Abstract4F ?Zend_Tool_Project_Profile4'E QZend_Tool_Project_Profile_Resource49D uZend_Tool_Project_Profile_Resource_SearchConstraints41C eZend_Tool_Project_Profile_Resource_Container4=B }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter4   j  uV7`J5yZ5eAhB




l
J
(
				v	T	0	S }R'p6|O,	wJzQ"yOvY8                        =Zend_XmlRpc_Server_Fault4! EZend_XmlRpc_Server_Exception4 =Zend_XmlRpc_Server_Cache4 5Zend_XmlRpc_Response4 ?Zend_XmlRpc_Response_Http4 3Zend_XmlRpc_Request4 ?Zend_XmlRpc_Request_Stdin4 =Zend_XmlRpc_Request_Http4$ KZend_XmlRpc_Generator_XmlWriter4, [Zend_XmlRpc_Generator_GeneratorAbstract4&
 OZend_XmlRpc_Generator_DomDocument4	 /Zend_XmlRpc_Fault4 7Zend_XmlRpc_Exception4 1Zend_XmlRpc_Client4# IZend_XmlRpc_Client_ServerProxy4+ YZend_XmlRpc_Client_ServerIntrospection4+ YZend_XmlRpc_Client_IntrospectException4% MZend_XmlRpc_Client_HttpException4& OZend_XmlRpc_Client_FaultException4! EZend_XmlRpc_Client_Exception4&  OZend_Wildfire_Protocol_JsonStream4! EZend_Wildfire_Plugin_FirePhp4.~ _Zend_Wildfire_Plugin_FirePhp_TableMessage4)} UZend_Wildfire_Plugin_FirePhp_Message4| ;Zend_Wildfire_Exception4&{ OZend_Wildfire_Channel_HttpHeaders4z Zend_View4y -Zend_View_Stream4x 5Zend_View_Helper_Url4w AZend_View_Helper_Translate4v AZend_View_Helper_ServerUrl4)u UZend_View_Helper_RenderToPlaceholder4!t EZend_View_Helper_Placeholder4*s WZend_View_Helper_Placeholder_Registry44r kZend_View_Helper_Placeholder_Registry_Exception4+q YZend_View_Helper_Placeholder_Container46p oZend_View_Helper_Placeholder_Container_Standalone45o mZend_View_Helper_Placeholder_Container_Exception44n kZend_View_Helper_Placeholder_Container_Abstract4!m EZend_View_Helper_PartialLoop4l =Zend_View_Helper_Partial4'k QZend_View_Helper_Partial_Exception4'j QZend_View_Helper_PaginationControl4 i CZend_View_Helper_Navigation4(h SZend_View_Helper_Navigation_Sitemap4%g MZend_View_Helper_Navigation_Menu4&f OZend_View_Helper_Navigation_Links4/e aZend_View_Helper_Navigation_HelperAbstract4,d [Zend_View_Helper_Navigation_Breadcrumbs4c ;Zend_View_Helper_Layout4b 7Zend_View_Helper_Json4"a GZend_View_Helper_InlineScript4#` IZend_View_Helper_HtmlQuicktime4_ ?Zend_View_Helper_HtmlPage4 ^ CZend_View_Helper_HtmlObject4] ?Zend_View_Helper_HtmlList4\ AZend_View_Helper_HtmlFlash4![ EZend_View_Helper_HtmlElement4Z AZend_View_Helper_HeadTitle4Y AZend_View_Helper_HeadStyle4 X CZend_View_Helper_HeadScript4W ?Zend_View_Helper_HeadMeta4V ?Zend_View_Helper_HeadLink4"U GZend_View_Helper_FormTextarea4T ?Zend_View_Helper_FormText4 S CZend_View_Helper_FormSubmit4 R CZend_View_Helper_FormSelect4Q AZend_View_Helper_FormReset4P AZend_View_Helper_FormRadio4"O GZend_View_Helper_FormPassword4N ?Zend_View_Helper_FormNote4'M QZend_View_Helper_FormMultiCheckbox4L AZend_View_Helper_FormLabel4K AZend_View_Helper_FormImage4 J CZend_View_Helper_FormHidden4I ?Zend_View_Helper_FormFile4 H CZend_View_Helper_FormErrors4!G EZend_View_Helper_FormElement4"F GZend_View_Helper_FormCheckbox4 E CZend_View_Helper_FormButton4D 7Zend_View_Helper_Form4C ?Zend_View_Helper_Fieldset4B =Zend_View_Helper_Doctype4!A EZend_View_Helper_DeclareVars4@ 9Zend_View_Helper_Cycle4? ?Zend_View_Helper_Currency4> =Zend_View_Helper_BaseUrl4= ;Zend_View_Helper_Action4< ?Zend_View_Helper_Abstract4; 3Zend_View_Exception4: 1Zend_View_Abstract49 %Zend_Version48 'Zend_Validate47 AZend_Validate_StringLength4#6 IZend_Validate_Sitemap_Priority45 ?Zend_Validate_Sitemap_Loc4"4 GZend_Validate_Sitemap_Lastmod4%3 MZend_Validate_Sitemap_Changefreq42 3Zend_Validate_Regex41 9Zend_Validate_PostCode40 9Zend_Validate_NotEmpty4/ 9Zend_Validate_LessThan4. 1Zend_Validate_Isbn4- -Zend_Validate_Ip4, /Zend_Validate_Int4+ 7Zend_Validate_InArray4   j  ];nM,t^M1lE]1





p
V
4
					_	+n=i>m;rHiB)cD!`>,wV5                       ~ ?Zend_Barcode_Object_Error5} =Zend_Barcode_Object_Ean85| =Zend_Barcode_Object_Ean55{ =Zend_Barcode_Object_Ean25z ?Zend_Barcode_Object_Ean135y AZend_Barcode_Object_Code395*x WZend_Barcode_Object_Code25interleaved5w AZend_Barcode_Object_Code255v 9Zend_Barcode_Exception5u Zend_Auth5t ?Zend_Auth_Storage_Session5$s KZend_Auth_Storage_NonPersistent5 r CZend_Auth_Storage_Exception5q -Zend_Auth_Result5p 3Zend_Auth_Exception5o =Zend_Auth_Adapter_OpenId5n 9Zend_Auth_Adapter_Ldap5m AZend_Auth_Adapter_InfoCard5l 9Zend_Auth_Adapter_Http5)k UZend_Auth_Adapter_Http_Resolver_File5.j _Zend_Auth_Adapter_Http_Resolver_Exception5 i CZend_Auth_Adapter_Exception5h =Zend_Auth_Adapter_Digest5g ?Zend_Auth_Adapter_DbTable5f -Zend_Application5#e IZend_Application_Resource_View5(d SZend_Application_Resource_Translate5&c OZend_Application_Resource_Session5%b MZend_Application_Resource_Router5/a aZend_Application_Resource_ResourceAbstract5)` UZend_Application_Resource_Navigation5&_ OZend_Application_Resource_Multidb5&^ OZend_Application_Resource_Modules5#] IZend_Application_Resource_Mail5"\ GZend_Application_Resource_Log5%[ MZend_Application_Resource_Locale5%Z MZend_Application_Resource_Layout5.Y _Zend_Application_Resource_Frontcontroller5(X SZend_Application_Resource_Exception5#W IZend_Application_Resource_Dojo5!V EZend_Application_Resource_Db5+U YZend_Application_Resource_Cachemanager5&T OZend_Application_Module_Bootstrap5'S QZend_Application_Module_Autoloader5R AZend_Application_Exception5)Q UZend_Application_Bootstrap_Exception51P eZend_Application_Bootstrap_BootstrapAbstract5)O UZend_Application_Bootstrap_Bootstrap5N ?Zend_Amf_Value_TraitsInfo5-M ]Zend_Amf_Value_Messaging_RemotingMessage5*L WZend_Amf_Value_Messaging_ErrorMessage5,K [Zend_Amf_Value_Messaging_CommandMessage5*J WZend_Amf_Value_Messaging_AsyncMessage5-I ]Zend_Amf_Value_Messaging_ArrayCollection50H cZend_Amf_Value_Messaging_AcknowledgeMessage5-G ]Zend_Amf_Value_Messaging_AbstractMessage5!F EZend_Amf_Value_MessageHeader5E AZend_Amf_Value_MessageBody5D =Zend_Amf_Value_ByteArray5C AZend_Amf_Util_BinaryStream5B +Zend_Amf_Server5A ?Zend_Amf_Server_Exception5@ /Zend_Amf_Response5? 9Zend_Amf_Response_Http5> -Zend_Amf_Request5= 7Zend_Amf_Request_Http5< ?Zend_Amf_Parse_TypeLoader5; ?Zend_Amf_Parse_Serializer5#: IZend_Amf_Parse_Resource_Stream5(9 SZend_Amf_Parse_Resource_MysqlResult5)8 UZend_Amf_Parse_Resource_MysqliResult5 7 CZend_Amf_Parse_OutputStream56 AZend_Amf_Parse_InputStream5 5 CZend_Amf_Parse_Deserializer5#4 IZend_Amf_Parse_Amf3_Serializer5%3 MZend_Amf_Parse_Amf3_Deserializer5#2 IZend_Amf_Parse_Amf0_Serializer5%1 MZend_Amf_Parse_Amf0_Deserializer50 1Zend_Amf_Exception5/ 1Zend_Amf_Constants5. 9Zend_Amf_Auth_Abstract5 - CZend_Amf_Adobe_Introspector5, AZend_Amf_Adobe_DbInspector5+ 3Zend_Amf_Adobe_Auth5* Zend_Acl5) 'Zend_Acl_Role5( 9Zend_Acl_Role_Registry5%' MZend_Acl_Role_Registry_Exception5& /Zend_Acl_Resource5% 1Zend_Acl_Exception5$ /Zend_XmlRpc_Value4# =Zend_XmlRpc_Value_Struct4" =Zend_XmlRpc_Value_String4! =Zend_XmlRpc_Value_Scalar4  7Zend_XmlRpc_Value_Nil4 ?Zend_XmlRpc_Value_Integer4  CZend_XmlRpc_Value_Exception4 =Zend_XmlRpc_Value_Double4 AZend_XmlRpc_Value_DateTime4! EZend_XmlRpc_Value_Collection4 ?Zend_XmlRpc_Value_Boolean4! EZend_XmlRpc_Value_BigInteger4 =Zend_XmlRpc_Value_Base644 ;Zend_XmlRpc_Value_Array4 1Zend_XmlRpc_Server4 ?Zend_XmlRpc_Server_System4   W  z]8mCqDP(uU+



z
Q
)
				^	+	sC&_Ft-a3b$`2`*vO)                   ;Zend_Acl_Role_Interface5  CZend_Acl_Resource_Interface5 ?Zend_Acl_Assert_Interface5# IZend_Wildfire_Plugin_Interface4$ KZend_Wildfire_Channel_Interface4 3Zend_View_Interface4' QZend_View_Helper_Navigation_Helper4 AZend_View_Helper_Interface4 ;Zend_Validate_Interface4+ YZend_Validate_Barcode_AdapterInterface43 iZend_Tool_Project_Profile_FileParser_Interface4: wZend_Tool_Project_Context_System_TopLevelRestrictable45 mZend_Tool_Project_Context_System_NotOverwritable4/ aZend_Tool_Project_Context_System_Interface4( SZend_Tool_Project_Context_Interface4+ YZend_Tool_Framework_Registry_Interface42 gZend_Tool_Framework_Registry_EnabledInterface4-
 ]Zend_Tool_Framework_Provider_Pretendable4+	 YZend_Tool_Framework_Provider_Interface4. _Zend_Tool_Framework_Provider_Interactable4; yZend_Tool_Framework_Provider_DocblockManifestInterface4+ YZend_Tool_Framework_Metadata_Interface4. _Zend_Tool_Framework_Metadata_Attributable46 oZend_Tool_Framework_Manifest_ProviderManifestable46 oZend_Tool_Framework_Manifest_MetadataManifestable4+ YZend_Tool_Framework_Manifest_Interface4+ YZend_Tool_Framework_Manifest_Indexable44  kZend_Tool_Framework_Manifest_ActionManifestable4) UZend_Tool_Framework_Loader_Interface48~ sZend_Tool_Framework_Client_Storage_AdapterInterface4D} 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface4;| yZend_Tool_Framework_Client_Interactive_OutputInterface4:{ wZend_Tool_Framework_Client_Interactive_InputInterface4)z UZend_Tool_Framework_Action_Interface4(y SZend_Text_Table_Decorator_Interface4x /Zend_Tag_Taggable4&w OZend_Soap_Wsdl_Strategy_Interface4%v MZend_Session_Validator_Interface4'u QZend_Session_SaveHandler_Interface4It Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Interface4s 7Zend_Server_Interface4-r ]Zend_Serializer_Adapter_AdapterInterface44q kZend_Search_Lucene_Search_Highlighter_Interface4!p EZend_Search_Lucene_Interface43o iZend_Search_Lucene_Index_TermsStream_Interface4$n KZend_Queue_Stomp_FrameInterface40m cZend_Queue_Stomp_Client_ConnectionInterface4(l SZend_Queue_Adapter_AdapterInterface4k ?Zend_Pdf_Filter_Interface4&j OZend_Pdf_ElementFactory_Interface4,i [Zend_Paginator_ScrollingStyle_Interface4$h KZend_Paginator_AdapterAggregate4%g MZend_Paginator_Adapter_Interface4&f OZend_Oauth_Config_ConfigInterface4$e KZend_Memory_Container_Interface41d eZend_Markup_Renderer_TokenConverterInterface4'c QZend_Markup_Parser_ParserInterface4)b UZend_Mail_Storage_Writable_Interface4'a QZend_Mail_Storage_Folder_Interface4` =Zend_Mail_Part_Interface4 _ CZend_Mail_Message_Interface4!^ EZend_Log_Formatter_Interface4] ?Zend_Log_Filter_Interface4\ ?Zend_Log_FactoryInterface4'[ QZend_Loader_PluginLoader_Interface4%Z MZend_Loader_Autoloader_Interface40Y cZend_Ldap_Node_Schema_ObjectClass_Interface42X gZend_Ldap_Node_Schema_AttributeType_Interface43W iZend_InfoCard_Xml_Security_Transform_Interface4(V SZend_InfoCard_Xml_KeyInfo_Interface4(U SZend_InfoCard_Xml_Element_Interface4*T WZend_InfoCard_Xml_Assertion_Interface4-S ]Zend_InfoCard_Cipher_Symmetric_Interface47R qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface47Q qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interface4+P YZend_InfoCard_Cipher_Pki_Rsa_Interface4'O QZend_InfoCard_Cipher_Pki_Interface4$N KZend_InfoCard_Adapter_Interface4$M KZend_Http_Client_Adapter_Stream4'L QZend_Http_Client_Adapter_Interface4K AZend_Gdata_App_MediaSource4.J _Zend_Form_Decorator_Marker_File_Interface4"I GZend_Form_Decorator_Interface4H 7Zend_Filter_Interface4"G GZend_Filter_Encrypt_Interface4+F YZend_Filter_Compress_CompressInterface40E cZend_Feed_Writer_Renderer_RendererInterface4   e  mBkG%}X6Z.rQ,	





g
K
0
					b	=		xP'~HkC$|S$MxMY:uM"                                           "c GZend_Controller_Plugin_Broker5'b QZend_Controller_Plugin_ActionStack5$a KZend_Controller_Plugin_Abstract5` 7Zend_Controller_Front5_ ?Zend_Controller_Exception5(^ SZend_Controller_Dispatcher_Standard5)] UZend_Controller_Dispatcher_Exception5(\ SZend_Controller_Dispatcher_Abstract5[ 9Zend_Controller_Action5(Z SZend_Controller_Action_HelperBroker56Y oZend_Controller_Action_HelperBroker_PriorityStack5/X aZend_Controller_Action_Helper_ViewRenderer5&W OZend_Controller_Action_Helper_Url5-V ]Zend_Controller_Action_Helper_Redirector5'U QZend_Controller_Action_Helper_Json51T eZend_Controller_Action_Helper_FlashMessenger50S cZend_Controller_Action_Helper_ContextSwitch5(R SZend_Controller_Action_Helper_Cache5<Q {Zend_Controller_Action_Helper_AutoCompleteScriptaculous53P iZend_Controller_Action_Helper_AutoCompleteDojo58O sZend_Controller_Action_Helper_AutoComplete_Abstract5.N _Zend_Controller_Action_Helper_AjaxContext5.M _Zend_Controller_Action_Helper_ActionStack5+L YZend_Controller_Action_Helper_Abstract5%K MZend_Controller_Action_Exception5J 3Zend_Console_Getopt5"I GZend_Console_Getopt_Exception5H #Zend_Config5G +Zend_Config_Xml5F 1Zend_Config_Writer5E 9Zend_Config_Writer_Xml5D 9Zend_Config_Writer_Ini5$C KZend_Config_Writer_FileAbstract5B =Zend_Config_Writer_Array5A +Zend_Config_Ini5@ 7Zend_Config_Exception5$? KZend_CodeGenerator_Php_Property51> eZend_CodeGenerator_Php_Property_DefaultValue5%= MZend_CodeGenerator_Php_Parameter52< gZend_CodeGenerator_Php_Parameter_DefaultValue5"; GZend_CodeGenerator_Php_Method5,: [Zend_CodeGenerator_Php_Member_Container5+9 YZend_CodeGenerator_Php_Member_Abstract5 8 CZend_CodeGenerator_Php_File5%7 MZend_CodeGenerator_Php_Exception5$6 KZend_CodeGenerator_Php_Docblock5(5 SZend_CodeGenerator_Php_Docblock_Tag5/4 aZend_CodeGenerator_Php_Docblock_Tag_Return5.3 _Zend_CodeGenerator_Php_Docblock_Tag_Param502 cZend_CodeGenerator_Php_Docblock_Tag_License5!1 EZend_CodeGenerator_Php_Class5 0 CZend_CodeGenerator_Php_Body5$/ KZend_CodeGenerator_Php_Abstract5!. EZend_CodeGenerator_Exception5 - CZend_CodeGenerator_Abstract5, /Zend_Captcha_Word5+ 9Zend_Captcha_ReCaptcha5* 1Zend_Captcha_Image5) 3Zend_Captcha_Figlet5( 9Zend_Captcha_Exception5' /Zend_Captcha_Dumb5& /Zend_Captcha_Base5% !Zend_Cache5$ 1Zend_Cache_Manager5# =Zend_Cache_Frontend_Page5" AZend_Cache_Frontend_Output5!! EZend_Cache_Frontend_Function5  =Zend_Cache_Frontend_File5 ?Zend_Cache_Frontend_Class5  CZend_Cache_Frontend_Capture5 5Zend_Cache_Exception5 +Zend_Cache_Core5 1Zend_Cache_Backend5" GZend_Cache_Backend_ZendServer5( SZend_Cache_Backend_ZendServer_ShMem5' QZend_Cache_Backend_ZendServer_Disk5$ KZend_Cache_Backend_ZendPlatform5 ?Zend_Cache_Backend_Xcache5! EZend_Cache_Backend_TwoLevels5 ;Zend_Cache_Backend_Test5 ?Zend_Cache_Backend_Static5 ?Zend_Cache_Backend_Sqlite5! EZend_Cache_Backend_Memcached5 ;Zend_Cache_Backend_File5! EZend_Cache_Backend_BlackHole5 9Zend_Cache_Backend_Apc5 %Zend_Barcode5+ YZend_Barcode_Renderer_RendererAbstract5 ?Zend_Barcode_Renderer_Pdf5 
 CZend_Barcode_Renderer_Image5$	 KZend_Barcode_Renderer_Exception5 =Zend_Barcode_Object_Upce5 =Zend_Barcode_Object_Upca5" GZend_Barcode_Object_Royalmail5  CZend_Barcode_Object_Postnet5 AZend_Barcode_Object_Planet5' QZend_Barcode_Object_ObjectAbstract5! EZend_Barcode_Object_Leitcode5 ?Zend_Barcode_Object_Itf145"  GZend_Barcode_Object_Identcode5" GZend_Barcode_Object_Exception5   n  W-e:n@d?rE




|
a
J
7

					|	V	:	c?uR)
x_>'qF%w]>vO2e1tF        ,Q [Zend_Dojo_Form_Decorator_SplitContainer5'P QZend_Dojo_Form_Decorator_DijitForm5*O WZend_Dojo_Form_Decorator_DijitElement5,N [Zend_Dojo_Form_Decorator_DijitContainer5)M UZend_Dojo_Form_Decorator_ContentPane5-L ]Zend_Dojo_Form_Decorator_BorderContainer5+K YZend_Dojo_Form_Decorator_AccordionPane50J cZend_Dojo_Form_Decorator_AccordionContainer5I 3Zend_Dojo_Exception5H )Zend_Dojo_Data5G 5Zend_Dojo_BuildLayer5F !Zend_Debug5E Zend_Db5D 'Zend_Db_Table5C 5Zend_Db_Table_Select5#B IZend_Db_Table_Select_Exception5A 5Zend_Db_Table_Rowset5#@ IZend_Db_Table_Rowset_Exception5"? GZend_Db_Table_Rowset_Abstract5> /Zend_Db_Table_Row5 = CZend_Db_Table_Row_Exception5< AZend_Db_Table_Row_Abstract5; ;Zend_Db_Table_Exception5: =Zend_Db_Table_Definition59 9Zend_Db_Table_Abstract58 /Zend_Db_Statement57 =Zend_Db_Statement_Sqlsrv5'6 QZend_Db_Statement_Sqlsrv_Exception55 7Zend_Db_Statement_Pdo54 ?Zend_Db_Statement_Pdo_Oci53 ?Zend_Db_Statement_Pdo_Ibm52 =Zend_Db_Statement_Oracle5'1 QZend_Db_Statement_Oracle_Exception50 =Zend_Db_Statement_Mysqli5'/ QZend_Db_Statement_Mysqli_Exception5 . CZend_Db_Statement_Exception5- 7Zend_Db_Statement_Db25$, KZend_Db_Statement_Db2_Exception5+ )Zend_Db_Select5* =Zend_Db_Select_Exception5) -Zend_Db_Profiler5( 9Zend_Db_Profiler_Query5' =Zend_Db_Profiler_Firebug5& AZend_Db_Profiler_Exception5% %Zend_Db_Expr5$ /Zend_Db_Exception5# 9Zend_Db_Adapter_Sqlsrv5%" MZend_Db_Adapter_Sqlsrv_Exception5! AZend_Db_Adapter_Pdo_Sqlite5  ?Zend_Db_Adapter_Pdo_Pgsql5 ;Zend_Db_Adapter_Pdo_Oci5 ?Zend_Db_Adapter_Pdo_Mysql5 ?Zend_Db_Adapter_Pdo_Mssql5 ;Zend_Db_Adapter_Pdo_Ibm5  CZend_Db_Adapter_Pdo_Ibm_Ids5  CZend_Db_Adapter_Pdo_Ibm_Db25! EZend_Db_Adapter_Pdo_Abstract5 9Zend_Db_Adapter_Oracle5% MZend_Db_Adapter_Oracle_Exception5 9Zend_Db_Adapter_Mysqli5% MZend_Db_Adapter_Mysqli_Exception5 ?Zend_Db_Adapter_Exception5 3Zend_Db_Adapter_Db25" GZend_Db_Adapter_Db2_Exception5 =Zend_Db_Adapter_Abstract5 Zend_Date5 3Zend_Date_Exception5 5Zend_Date_DateObject5 -Zend_Date_Cities5 'Zend_Currency5 ;Zend_Currency_Exception5
 !Zend_Crypt5	 )Zend_Crypt_Rsa5 1Zend_Crypt_Rsa_Key5 ?Zend_Crypt_Rsa_Key_Public5 AZend_Crypt_Rsa_Key_Private5 +Zend_Crypt_Math5 ?Zend_Crypt_Math_Exception5 AZend_Crypt_Math_BigInteger5# IZend_Crypt_Math_BigInteger_Gmp5) UZend_Crypt_Math_BigInteger_Exception5&  OZend_Crypt_Math_BigInteger_Bcmath5 +Zend_Crypt_Hmac5~ ?Zend_Crypt_Hmac_Exception5} 5Zend_Crypt_Exception5| =Zend_Crypt_DiffieHellman5'{ QZend_Crypt_DiffieHellman_Exception5!z EZend_Controller_Router_Route5(y SZend_Controller_Router_Route_Static5'x QZend_Controller_Router_Route_Regex5(w SZend_Controller_Router_Route_Module5*v WZend_Controller_Router_Route_Hostname5'u QZend_Controller_Router_Route_Chain5*t WZend_Controller_Router_Route_Abstract5#s IZend_Controller_Router_Rewrite5%r MZend_Controller_Router_Exception5$q KZend_Controller_Router_Abstract5*p WZend_Controller_Response_HttpTestCase5"o GZend_Controller_Response_Http5'n QZend_Controller_Response_Exception5!m EZend_Controller_Response_Cli5&l OZend_Controller_Response_Abstract5#k IZend_Controller_Request_Simple5)j UZend_Controller_Request_HttpTestCase5!i EZend_Controller_Request_Http5&h OZend_Controller_Request_Exception5&g OZend_Controller_Request_Apache4045%f MZend_Controller_Request_Abstract5&e OZend_Controller_Plugin_PutHandler5(d SZend_Controller_Plugin_ErrorHandler5   a  ~X0_9
Q&~W,vE



x
N
 				{	N	+	Z. W*]- }fK4sR5xEnCtM                                         )2 UZend_Feed_Reader_Extension_Atom_Feed5*1 WZend_Feed_Reader_Extension_Atom_Entry5#0 IZend_Feed_Reader_EntryAbstract5/ AZend_Feed_Reader_Entry_Rss5 . CZend_Feed_Reader_Entry_Atom5 - CZend_Feed_Reader_Collection53, iZend_Feed_Reader_Collection_CollectionAbstract5)+ UZend_Feed_Reader_Collection_Category5'* QZend_Feed_Reader_Collection_Author5) 9Zend_Feed_Pubsubhubbub5&( OZend_Feed_Pubsubhubbub_Subscriber5/' aZend_Feed_Pubsubhubbub_Subscriber_Callback5%& MZend_Feed_Pubsubhubbub_Publisher5.% _Zend_Feed_Pubsubhubbub_Model_Subscription5/$ aZend_Feed_Pubsubhubbub_Model_ModelAbstract5(# SZend_Feed_Pubsubhubbub_HttpResponse5%" MZend_Feed_Pubsubhubbub_Exception5,! [Zend_Feed_Pubsubhubbub_CallbackAbstract5  3Zend_Feed_Exception5 3Zend_Feed_Entry_Rss5 5Zend_Feed_Entry_Atom5 =Zend_Feed_Entry_Abstract5 /Zend_Feed_Element5 /Zend_Feed_Builder5 =Zend_Feed_Builder_Header5$ KZend_Feed_Builder_Header_Itunes5  CZend_Feed_Builder_Exception5 ;Zend_Feed_Builder_Entry5 )Zend_Feed_Atom5 1Zend_Feed_Abstract5 )Zend_Exception5 )Zend_Dom_Query5 7Zend_Dom_Query_Result5 =Zend_Dom_Query_Css2Xpath5 1Zend_Dom_Exception5 Zend_Dojo5) UZend_Dojo_View_Helper_VerticalSlider5, [Zend_Dojo_View_Helper_ValidationTextBox5& OZend_Dojo_View_Helper_TimeTextBox5" GZend_Dojo_View_Helper_TextBox5#
 IZend_Dojo_View_Helper_Textarea5'	 QZend_Dojo_View_Helper_TabContainer5' QZend_Dojo_View_Helper_SubmitButton5) UZend_Dojo_View_Helper_StackContainer5) UZend_Dojo_View_Helper_SplitContainer5! EZend_Dojo_View_Helper_Slider5) UZend_Dojo_View_Helper_SimpleTextarea5& OZend_Dojo_View_Helper_RadioButton5* WZend_Dojo_View_Helper_PasswordTextBox5( SZend_Dojo_View_Helper_NumberTextBox5(  SZend_Dojo_View_Helper_NumberSpinner5+ YZend_Dojo_View_Helper_HorizontalSlider5~ AZend_Dojo_View_Helper_Form5*} WZend_Dojo_View_Helper_FilteringSelect5!| EZend_Dojo_View_Helper_Editor5{ AZend_Dojo_View_Helper_Dojo5)z UZend_Dojo_View_Helper_Dojo_Container5)y UZend_Dojo_View_Helper_DijitContainer5 x CZend_Dojo_View_Helper_Dijit5&w OZend_Dojo_View_Helper_DateTextBox5&v OZend_Dojo_View_Helper_CustomDijit5*u WZend_Dojo_View_Helper_CurrencyTextBox5&t OZend_Dojo_View_Helper_ContentPane5#s IZend_Dojo_View_Helper_ComboBox5#r IZend_Dojo_View_Helper_CheckBox5!q EZend_Dojo_View_Helper_Button5*p WZend_Dojo_View_Helper_BorderContainer5(o SZend_Dojo_View_Helper_AccordionPane5-n ]Zend_Dojo_View_Helper_AccordionContainer5m =Zend_Dojo_View_Exception5l )Zend_Dojo_Form5k 9Zend_Dojo_Form_SubForm5*j WZend_Dojo_Form_Element_VerticalSlider5-i ]Zend_Dojo_Form_Element_ValidationTextBox5'h QZend_Dojo_Form_Element_TimeTextBox5#g IZend_Dojo_Form_Element_TextBox5$f KZend_Dojo_Form_Element_Textarea5(e SZend_Dojo_Form_Element_SubmitButton5"d GZend_Dojo_Form_Element_Slider5*c WZend_Dojo_Form_Element_SimpleTextarea5'b QZend_Dojo_Form_Element_RadioButton5+a YZend_Dojo_Form_Element_PasswordTextBox5)` UZend_Dojo_Form_Element_NumberTextBox5)_ UZend_Dojo_Form_Element_NumberSpinner5,^ [Zend_Dojo_Form_Element_HorizontalSlider5+] YZend_Dojo_Form_Element_FilteringSelect5"\ GZend_Dojo_Form_Element_Editor5&[ OZend_Dojo_Form_Element_DijitMulti5!Z EZend_Dojo_Form_Element_Dijit5'Y QZend_Dojo_Form_Element_DateTextBox5+X YZend_Dojo_Form_Element_CurrencyTextBox5$W KZend_Dojo_Form_Element_ComboBox5$V KZend_Dojo_Form_Element_CheckBox5"U GZend_Dojo_Form_Element_Button5 T CZend_Dojo_Form_DisplayGroup5*S WZend_Dojo_Form_Decorator_TabContainer5,R [Zend_Dojo_Form_Decorator_StackContainer5   b  ^*e5kAeF_#



S
			k	@	"[(~eS'nR5cB%pT6mO5sQ/yJ!    & OZend_Filter_Word_DashToUnderscore5% MZend_Filter_Word_DashToSeparator5% MZend_Filter_Word_DashToCamelCase5+ YZend_Filter_Word_CamelCaseToUnderscore5* WZend_Filter_Word_CamelCaseToSeparator5% MZend_Filter_Word_CamelCaseToDash5 7Zend_Filter_StripTags5 ?Zend_Filter_StripNewlines5 9Zend_Filter_StringTrim5 ?Zend_Filter_StringToUpper5
 ?Zend_Filter_StringToLower5	 5Zend_Filter_RealPath5 ;Zend_Filter_PregReplace5 -Zend_Filter_Null5& OZend_Filter_NormalizedToLocalized5& OZend_Filter_LocalizedToNormalized5 +Zend_Filter_Int5 /Zend_Filter_Input5 7Zend_Filter_Inflector5 =Zend_Filter_HtmlEntities5  AZend_Filter_File_UpperCase5 ;Zend_Filter_File_Rename5~ AZend_Filter_File_LowerCase5} =Zend_Filter_File_Encrypt5| =Zend_Filter_File_Decrypt5{ 7Zend_Filter_Exception5z 3Zend_Filter_Encrypt5 y CZend_Filter_Encrypt_Openssl5x AZend_Filter_Encrypt_Mcrypt5w +Zend_Filter_Dir5v 1Zend_Filter_Digits5u 3Zend_Filter_Decrypt5t 9Zend_Filter_Decompress5s 5Zend_Filter_Compress5r =Zend_Filter_Compress_Zip5q =Zend_Filter_Compress_Tar5p =Zend_Filter_Compress_Rar5o =Zend_Filter_Compress_Lzf5n ;Zend_Filter_Compress_Gz5*m WZend_Filter_Compress_CompressAbstract5l =Zend_Filter_Compress_Bz25k 5Zend_Filter_Callback5j 3Zend_Filter_Boolean5i 5Zend_Filter_BaseName5h /Zend_Filter_Alpha5g /Zend_Filter_Alnum5f 1Zend_File_Transfer5!e EZend_File_Transfer_Exception5$d KZend_File_Transfer_Adapter_Http5(c SZend_File_Transfer_Adapter_Abstract5b Zend_Feed5a -Zend_Feed_Writer5` ;Zend_Feed_Writer_Source5/_ aZend_Feed_Writer_Renderer_RendererAbstract5'^ QZend_Feed_Writer_Renderer_Feed_Rss5(] SZend_Feed_Writer_Renderer_Feed_Atom5/\ aZend_Feed_Writer_Renderer_Feed_Atom_Source55[ mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract5(Z SZend_Feed_Writer_Renderer_Entry_Rss5)Y UZend_Feed_Writer_Renderer_Entry_Atom51X eZend_Feed_Writer_Renderer_Entry_Atom_Deleted5W 7Zend_Feed_Writer_Feed5'V QZend_Feed_Writer_Feed_FeedAbstract5<U {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry58T sZend_Feed_Writer_Extension_Threading_Renderer_Entry54S kZend_Feed_Writer_Extension_Slash_Renderer_Entry50R cZend_Feed_Writer_Extension_RendererAbstract54Q kZend_Feed_Writer_Extension_ITunes_Renderer_Feed55P mZend_Feed_Writer_Extension_ITunes_Renderer_Entry5+O YZend_Feed_Writer_Extension_ITunes_Feed5,N [Zend_Feed_Writer_Extension_ITunes_Entry58M sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed59L uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry56K oZend_Feed_Writer_Extension_Content_Renderer_Entry52J gZend_Feed_Writer_Extension_Atom_Renderer_Feed56I oZend_Feed_Writer_Exception_InvalidMethodException5H 9Zend_Feed_Writer_Entry5G =Zend_Feed_Writer_Deleted5F 'Zend_Feed_Rss5E -Zend_Feed_Reader5D =Zend_Feed_Reader_FeedSet5"C GZend_Feed_Reader_FeedAbstract5B ?Zend_Feed_Reader_Feed_Rss5A AZend_Feed_Reader_Feed_Atom5&@ OZend_Feed_Reader_Feed_Atom_Source53? iZend_Feed_Reader_Extension_WellFormedWeb_Entry5,> [Zend_Feed_Reader_Extension_Thread_Entry50= cZend_Feed_Reader_Extension_Syndication_Feed5+< YZend_Feed_Reader_Extension_Slash_Entry5,; [Zend_Feed_Reader_Extension_Podcast_Feed5-: ]Zend_Feed_Reader_Extension_Podcast_Entry5,9 [Zend_Feed_Reader_Extension_FeedAbstract5-8 ]Zend_Feed_Reader_Extension_EntryAbstract5/7 aZend_Feed_Reader_Extension_DublinCore_Feed506 cZend_Feed_Reader_Extension_DublinCore_Entry545 kZend_Feed_Reader_Extension_CreativeCommons_Feed554 mZend_Feed_Reader_Extension_CreativeCommons_Entry5-3 ]Zend_Feed_Reader_Extension_Content_Entry5   g }O i@^=d8dA




~
V
0
					l	I	)	tX1qHzS(lDvP) wO*X<_.                                           ){ UZend_Gdata_Books_Extension_BooksLink5-z ]Zend_Gdata_Books_Extension_BooksCategory5.y _Zend_Gdata_Books_Extension_AnnotationLink5$x KZend_Gdata_Books_CollectionFeed5%w MZend_Gdata_Books_CollectionEntry5v 1Zend_Gdata_AuthSub5u )Zend_Gdata_App5$t KZend_Gdata_App_VersionException5s 3Zend_Gdata_App_Util5#r IZend_Gdata_App_MediaFileSource5q ?Zend_Gdata_App_MediaEntry52p gZend_Gdata_App_LoggingHttpClientAdapterSocket5o AZend_Gdata_App_IOException5,n [Zend_Gdata_App_InvalidArgumentException5!m EZend_Gdata_App_HttpException5$l KZend_Gdata_App_FeedSourceParent5#k IZend_Gdata_App_FeedEntryParent5j 3Zend_Gdata_App_Feed5i =Zend_Gdata_App_Extension5!h EZend_Gdata_App_Extension_Uri5%g MZend_Gdata_App_Extension_Updated5#f IZend_Gdata_App_Extension_Title5"e GZend_Gdata_App_Extension_Text5%d MZend_Gdata_App_Extension_Summary5&c OZend_Gdata_App_Extension_Subtitle5$b KZend_Gdata_App_Extension_Source5$a KZend_Gdata_App_Extension_Rights5'` QZend_Gdata_App_Extension_Published5$_ KZend_Gdata_App_Extension_Person5"^ GZend_Gdata_App_Extension_Name5"] GZend_Gdata_App_Extension_Logo5"\ GZend_Gdata_App_Extension_Link5 [ CZend_Gdata_App_Extension_Id5"Z GZend_Gdata_App_Extension_Icon5'Y QZend_Gdata_App_Extension_Generator5#X IZend_Gdata_App_Extension_Email5%W MZend_Gdata_App_Extension_Element5$V KZend_Gdata_App_Extension_Edited5#U IZend_Gdata_App_Extension_Draft5%T MZend_Gdata_App_Extension_Control5)S UZend_Gdata_App_Extension_Contributor5%R MZend_Gdata_App_Extension_Content5&Q OZend_Gdata_App_Extension_Category5$P KZend_Gdata_App_Extension_Author5O =Zend_Gdata_App_Exception5N 5Zend_Gdata_App_Entry5,M [Zend_Gdata_App_CaptchaRequiredException5#L IZend_Gdata_App_BaseMediaSource5K 3Zend_Gdata_App_Base5*J WZend_Gdata_App_BadMethodCallException5!I EZend_Gdata_App_AuthException5H Zend_Form5G /Zend_Form_SubForm5F 3Zend_Form_Exception5E /Zend_Form_Element5D ;Zend_Form_Element_Xhtml5C AZend_Form_Element_Textarea5B 9Zend_Form_Element_Text5A =Zend_Form_Element_Submit5@ =Zend_Form_Element_Select5? ;Zend_Form_Element_Reset5> ;Zend_Form_Element_Radio5= AZend_Form_Element_Password5"< GZend_Form_Element_Multiselect5$; KZend_Form_Element_MultiCheckbox5: ;Zend_Form_Element_Multi59 ;Zend_Form_Element_Image58 =Zend_Form_Element_Hidden57 9Zend_Form_Element_Hash56 9Zend_Form_Element_File5 5 CZend_Form_Element_Exception54 AZend_Form_Element_Checkbox53 ?Zend_Form_Element_Captcha52 =Zend_Form_Element_Button51 9Zend_Form_DisplayGroup5#0 IZend_Form_Decorator_ViewScript5#/ IZend_Form_Decorator_ViewHelper5 . CZend_Form_Decorator_Tooltip5(- SZend_Form_Decorator_PrepareElements5, ?Zend_Form_Decorator_Label5+ ?Zend_Form_Decorator_Image5 * CZend_Form_Decorator_HtmlTag5#) IZend_Form_Decorator_FormErrors5%( MZend_Form_Decorator_FormElements5' =Zend_Form_Decorator_Form5& =Zend_Form_Decorator_File5!% EZend_Form_Decorator_Fieldset5"$ GZend_Form_Decorator_Exception5# AZend_Form_Decorator_Errors5$" KZend_Form_Decorator_DtDdWrapper5$! KZend_Form_Decorator_Description5   CZend_Form_Decorator_Captcha5% MZend_Form_Decorator_Captcha_Word5! EZend_Form_Decorator_Callback5! EZend_Form_Decorator_Abstract5 #Zend_Filter5+ YZend_Filter_Word_UnderscoreToSeparator5& OZend_Filter_Word_UnderscoreToDash5+ YZend_Filter_Word_UnderscoreToCamelCase5* WZend_Filter_Word_SeparatorToSeparator5% MZend_Filter_Word_SeparatorToDash5* WZend_Filter_Word_SeparatorToCamelCase5( SZend_Filter_Word_Separator_Abstract5   _  tJ|c<d9
o>eG/



o
<
			z	L	.	yK#~W0X/uAsI!^7}^1_;           !Z EZend_Gdata_Gapps_MemberEntry5 Y CZend_Gdata_Gapps_GroupQuery5X AZend_Gdata_Gapps_GroupFeed5 W CZend_Gdata_Gapps_GroupEntry5%V MZend_Gdata_Gapps_Extension_Quota5(U SZend_Gdata_Gapps_Extension_Property5(T SZend_Gdata_Gapps_Extension_Nickname5$S KZend_Gdata_Gapps_Extension_Name5%R MZend_Gdata_Gapps_Extension_Login5)Q UZend_Gdata_Gapps_Extension_EmailList5P 9Zend_Gdata_Gapps_Error5-O ]Zend_Gdata_Gapps_EmailListRecipientQuery5,N [Zend_Gdata_Gapps_EmailListRecipientFeed5-M ]Zend_Gdata_Gapps_EmailListRecipientEntry5$L KZend_Gdata_Gapps_EmailListQuery5#K IZend_Gdata_Gapps_EmailListFeed5$J KZend_Gdata_Gapps_EmailListEntry5I +Zend_Gdata_Feed5H 5Zend_Gdata_Extension5G =Zend_Gdata_Extension_Who5F AZend_Gdata_Extension_Where5E ?Zend_Gdata_Extension_When5$D KZend_Gdata_Extension_Visibility5&C OZend_Gdata_Extension_Transparency5"B GZend_Gdata_Extension_Reminder5-A ]Zend_Gdata_Extension_RecurrenceException5$@ KZend_Gdata_Extension_Recurrence5 ? CZend_Gdata_Extension_Rating5'> QZend_Gdata_Extension_OriginalEvent50= cZend_Gdata_Extension_OpenSearchTotalResults5.< _Zend_Gdata_Extension_OpenSearchStartIndex50; cZend_Gdata_Extension_OpenSearchItemsPerPage5": GZend_Gdata_Extension_FeedLink5*9 WZend_Gdata_Extension_ExtendedProperty5%8 MZend_Gdata_Extension_EventStatus5#7 IZend_Gdata_Extension_EntryLink5"6 GZend_Gdata_Extension_Comments5&5 OZend_Gdata_Extension_AttendeeType5(4 SZend_Gdata_Extension_AttendeeStatus53 +Zend_Gdata_Exif52 5Zend_Gdata_Exif_Feed5#1 IZend_Gdata_Exif_Extension_Time5#0 IZend_Gdata_Exif_Extension_Tags5$/ KZend_Gdata_Exif_Extension_Model5#. IZend_Gdata_Exif_Extension_Make5"- GZend_Gdata_Exif_Extension_Iso5,, [Zend_Gdata_Exif_Extension_ImageUniqueId5$+ KZend_Gdata_Exif_Extension_FStop5** WZend_Gdata_Exif_Extension_FocalLength5$) KZend_Gdata_Exif_Extension_Flash5'( QZend_Gdata_Exif_Extension_Exposure5'' QZend_Gdata_Exif_Extension_Distance5& 7Zend_Gdata_Exif_Entry5% -Zend_Gdata_Entry5$ 7Zend_Gdata_DublinCore5*# WZend_Gdata_DublinCore_Extension_Title5," [Zend_Gdata_DublinCore_Extension_Subject5+! YZend_Gdata_DublinCore_Extension_Rights5.  _Zend_Gdata_DublinCore_Extension_Publisher5- ]Zend_Gdata_DublinCore_Extension_Language5/ aZend_Gdata_DublinCore_Extension_Identifier5+ YZend_Gdata_DublinCore_Extension_Format50 cZend_Gdata_DublinCore_Extension_Description5) UZend_Gdata_DublinCore_Extension_Date5, [Zend_Gdata_DublinCore_Extension_Creator5 +Zend_Gdata_Docs5 7Zend_Gdata_Docs_Query5% MZend_Gdata_Docs_DocumentListFeed5& OZend_Gdata_Docs_DocumentListEntry5 9Zend_Gdata_ClientLogin5 3Zend_Gdata_Calendar5! EZend_Gdata_Calendar_ListFeed5" GZend_Gdata_Calendar_ListEntry5- ]Zend_Gdata_Calendar_Extension_WebContent5+ YZend_Gdata_Calendar_Extension_Timezone59 uZend_Gdata_Calendar_Extension_SendEventNotifications5+ YZend_Gdata_Calendar_Extension_Selected5+ YZend_Gdata_Calendar_Extension_QuickAdd5' QZend_Gdata_Calendar_Extension_Link5) UZend_Gdata_Calendar_Extension_Hidden5(
 SZend_Gdata_Calendar_Extension_Color5.	 _Zend_Gdata_Calendar_Extension_AccessLevel5# IZend_Gdata_Calendar_EventQuery5" GZend_Gdata_Calendar_EventFeed5# IZend_Gdata_Calendar_EventEntry5 -Zend_Gdata_Books5! EZend_Gdata_Books_VolumeQuery5  CZend_Gdata_Books_VolumeFeed5! EZend_Gdata_Books_VolumeEntry5+ YZend_Gdata_Books_Extension_Viewability5-  ]Zend_Gdata_Books_Extension_ThumbnailLink5& OZend_Gdata_Books_Extension_Review5+~ YZend_Gdata_Books_Extension_PreviewLink5(} SZend_Gdata_Books_Extension_InfoLink5-| ]Zend_Gdata_Books_Extension_Embeddability5   a  jClJ'}[8rEqK 




a
C
 
			n	?	P!`B)Z3V%p:S&pBjE!                 ; AZend_Gdata_Photos_TagEntry5!: EZend_Gdata_Photos_PhotoQuery5 9 CZend_Gdata_Photos_PhotoFeed5!8 EZend_Gdata_Photos_PhotoEntry5&7 OZend_Gdata_Photos_Extension_Width5'6 QZend_Gdata_Photos_Extension_Weight5(5 SZend_Gdata_Photos_Extension_Version5%4 MZend_Gdata_Photos_Extension_User5*3 WZend_Gdata_Photos_Extension_Timestamp5*2 WZend_Gdata_Photos_Extension_Thumbnail5%1 MZend_Gdata_Photos_Extension_Size5)0 UZend_Gdata_Photos_Extension_Rotation5+/ YZend_Gdata_Photos_Extension_QuotaLimit5-. ]Zend_Gdata_Photos_Extension_QuotaCurrent5)- UZend_Gdata_Photos_Extension_Position5(, SZend_Gdata_Photos_Extension_PhotoId53+ iZend_Gdata_Photos_Extension_NumPhotosRemaining5** WZend_Gdata_Photos_Extension_NumPhotos5)) UZend_Gdata_Photos_Extension_Nickname5%( MZend_Gdata_Photos_Extension_Name52' gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum5)& UZend_Gdata_Photos_Extension_Location5#% IZend_Gdata_Photos_Extension_Id5'$ QZend_Gdata_Photos_Extension_Height52# gZend_Gdata_Photos_Extension_CommentingEnabled5-" ]Zend_Gdata_Photos_Extension_CommentCount5'! QZend_Gdata_Photos_Extension_Client5)  UZend_Gdata_Photos_Extension_Checksum5* WZend_Gdata_Photos_Extension_BytesUsed5( SZend_Gdata_Photos_Extension_AlbumId5' QZend_Gdata_Photos_Extension_Access5# IZend_Gdata_Photos_CommentEntry5! EZend_Gdata_Photos_AlbumQuery5  CZend_Gdata_Photos_AlbumFeed5! EZend_Gdata_Photos_AlbumEntry5 3Zend_Gdata_MimeFile5 ?Zend_Gdata_MimeBodyString5 AZend_Gdata_MediaMimeStream5 -Zend_Gdata_Media5 7Zend_Gdata_Media_Feed5* WZend_Gdata_Media_Extension_MediaTitle5. _Zend_Gdata_Media_Extension_MediaThumbnail5) UZend_Gdata_Media_Extension_MediaText50 cZend_Gdata_Media_Extension_MediaRestriction5+ YZend_Gdata_Media_Extension_MediaRating5+ YZend_Gdata_Media_Extension_MediaPlayer5- ]Zend_Gdata_Media_Extension_MediaKeywords5) UZend_Gdata_Media_Extension_MediaHash5* WZend_Gdata_Media_Extension_MediaGroup50
 cZend_Gdata_Media_Extension_MediaDescription5+	 YZend_Gdata_Media_Extension_MediaCredit5. _Zend_Gdata_Media_Extension_MediaCopyright5, [Zend_Gdata_Media_Extension_MediaContent5- ]Zend_Gdata_Media_Extension_MediaCategory5 9Zend_Gdata_Media_Entry5 AZend_Gdata_Kind_EventEntry5 7Zend_Gdata_HttpClient5* WZend_Gdata_HttpAdapterStreamingSocket5) UZend_Gdata_HttpAdapterStreamingProxy5  /Zend_Gdata_Health5 ;Zend_Gdata_Health_Query5&~ OZend_Gdata_Health_ProfileListFeed5'} QZend_Gdata_Health_ProfileListEntry5"| GZend_Gdata_Health_ProfileFeed5#{ IZend_Gdata_Health_ProfileEntry5$z KZend_Gdata_Health_Extension_Ccr5y )Zend_Gdata_Geo5x 3Zend_Gdata_Geo_Feed5$w KZend_Gdata_Geo_Extension_GmlPos5&v OZend_Gdata_Geo_Extension_GmlPoint5)u UZend_Gdata_Geo_Extension_GeoRssWhere5t 5Zend_Gdata_Geo_Entry5s -Zend_Gdata_Gbase5"r GZend_Gdata_Gbase_SnippetQuery5!q EZend_Gdata_Gbase_SnippetFeed5"p GZend_Gdata_Gbase_SnippetEntry5o 9Zend_Gdata_Gbase_Query5n AZend_Gdata_Gbase_ItemQuery5m ?Zend_Gdata_Gbase_ItemFeed5l AZend_Gdata_Gbase_ItemEntry5k 7Zend_Gdata_Gbase_Feed5-j ]Zend_Gdata_Gbase_Extension_BaseAttribute5i 9Zend_Gdata_Gbase_Entry5h -Zend_Gdata_Gapps5g AZend_Gdata_Gapps_UserQuery5f ?Zend_Gdata_Gapps_UserFeed5e AZend_Gdata_Gapps_UserEntry5&d OZend_Gdata_Gapps_ServiceException5c 9Zend_Gdata_Gapps_Query5 b CZend_Gdata_Gapps_OwnerQuery5a AZend_Gdata_Gapps_OwnerFeed5 ` CZend_Gdata_Gapps_OwnerEntry5#_ IZend_Gdata_Gapps_NicknameQuery5"^ GZend_Gdata_Gapps_NicknameFeed5#] IZend_Gdata_Gapps_NicknameEntry5!\ EZend_Gdata_Gapps_MemberQuery5 [ CZend_Gdata_Gapps_MemberFeed5   \  {b8U$tCmEzQ&



l
>
				Z	0	o>Z'qCY-yS.T'^C0
jG.                                3Zend_Http_Exception5 3Zend_Http_CookieJar5 -Zend_Http_Cookie5 -Zend_Http_Client5 AZend_Http_Client_Exception5" GZend_Http_Client_Adapter_Test5$ KZend_Http_Client_Adapter_Socket5# IZend_Http_Client_Adapter_Proxy5' QZend_Http_Client_Adapter_Exception5" GZend_Http_Client_Adapter_Curl5 !Zend_Gdata5 1Zend_Gdata_YouTube5" GZend_Gdata_YouTube_VideoQuery5!
 EZend_Gdata_YouTube_VideoFeed5"	 GZend_Gdata_YouTube_VideoEntry5( SZend_Gdata_YouTube_UserProfileEntry5( SZend_Gdata_YouTube_SubscriptionFeed5) UZend_Gdata_YouTube_SubscriptionEntry5) UZend_Gdata_YouTube_PlaylistVideoFeed5* WZend_Gdata_YouTube_PlaylistVideoEntry5( SZend_Gdata_YouTube_PlaylistListFeed5) UZend_Gdata_YouTube_PlaylistListEntry5" GZend_Gdata_YouTube_MediaEntry5!  EZend_Gdata_YouTube_InboxFeed5" GZend_Gdata_YouTube_InboxEntry5)~ UZend_Gdata_YouTube_Extension_VideoId5*} WZend_Gdata_YouTube_Extension_Username5*| WZend_Gdata_YouTube_Extension_Uploaded5'{ QZend_Gdata_YouTube_Extension_Token5(z SZend_Gdata_YouTube_Extension_Status5,y [Zend_Gdata_YouTube_Extension_Statistics5'x QZend_Gdata_YouTube_Extension_State5(w SZend_Gdata_YouTube_Extension_School5-v ]Zend_Gdata_YouTube_Extension_ReleaseDate5.u _Zend_Gdata_YouTube_Extension_Relationship5*t WZend_Gdata_YouTube_Extension_Recorded5&s OZend_Gdata_YouTube_Extension_Racy5-r ]Zend_Gdata_YouTube_Extension_QueryString5)q UZend_Gdata_YouTube_Extension_Private5*p WZend_Gdata_YouTube_Extension_Position5/o aZend_Gdata_YouTube_Extension_PlaylistTitle5,n [Zend_Gdata_YouTube_Extension_PlaylistId5,m [Zend_Gdata_YouTube_Extension_Occupation5)l UZend_Gdata_YouTube_Extension_NoEmbed5'k QZend_Gdata_YouTube_Extension_Music5(j SZend_Gdata_YouTube_Extension_Movies5-i ]Zend_Gdata_YouTube_Extension_MediaRating5,h [Zend_Gdata_YouTube_Extension_MediaGroup5-g ]Zend_Gdata_YouTube_Extension_MediaCredit5.f _Zend_Gdata_YouTube_Extension_MediaContent5*e WZend_Gdata_YouTube_Extension_Location5&d OZend_Gdata_YouTube_Extension_Link5*c WZend_Gdata_YouTube_Extension_LastName5*b WZend_Gdata_YouTube_Extension_Hometown5)a UZend_Gdata_YouTube_Extension_Hobbies5(` SZend_Gdata_YouTube_Extension_Gender5+_ YZend_Gdata_YouTube_Extension_FirstName5*^ WZend_Gdata_YouTube_Extension_Duration5-] ]Zend_Gdata_YouTube_Extension_Description5+\ YZend_Gdata_YouTube_Extension_CountHint5)[ UZend_Gdata_YouTube_Extension_Control5)Z UZend_Gdata_YouTube_Extension_Company5'Y QZend_Gdata_YouTube_Extension_Books5%X MZend_Gdata_YouTube_Extension_Age5)W UZend_Gdata_YouTube_Extension_AboutMe5#V IZend_Gdata_YouTube_ContactFeed5$U KZend_Gdata_YouTube_ContactEntry5#T IZend_Gdata_YouTube_CommentFeed5$S KZend_Gdata_YouTube_CommentEntry5$R KZend_Gdata_YouTube_ActivityFeed5%Q MZend_Gdata_YouTube_ActivityEntry5P ;Zend_Gdata_Spreadsheets5*O WZend_Gdata_Spreadsheets_WorksheetFeed5+N YZend_Gdata_Spreadsheets_WorksheetEntry5,M [Zend_Gdata_Spreadsheets_SpreadsheetFeed5-L ]Zend_Gdata_Spreadsheets_SpreadsheetEntry5&K OZend_Gdata_Spreadsheets_ListQuery5%J MZend_Gdata_Spreadsheets_ListFeed5&I OZend_Gdata_Spreadsheets_ListEntry5/H aZend_Gdata_Spreadsheets_Extension_RowCount5-G ]Zend_Gdata_Spreadsheets_Extension_Custom5/F aZend_Gdata_Spreadsheets_Extension_ColCount5+E YZend_Gdata_Spreadsheets_Extension_Cell5*D WZend_Gdata_Spreadsheets_DocumentQuery5&C OZend_Gdata_Spreadsheets_CellQuery5%B MZend_Gdata_Spreadsheets_CellFeed5&A OZend_Gdata_Spreadsheets_CellEntry5@ -Zend_Gdata_Query5? /Zend_Gdata_Photos5 > CZend_Gdata_Photos_UserQuery5= AZend_Gdata_Photos_UserFeed5 < CZend_Gdata_Photos_UserEntry5   k  uN~E(uS"U+r;



l
R
8

				~	]	6	sF(kV:|`@'oE_<sa9w^@%xX7                       AZend_Log_Formatter_Firebug5 =Zend_Log_Filter_Suppress5  =Zend_Log_Filter_Priority5 ;Zend_Log_Filter_Message5~ =Zend_Log_Filter_Abstract5} 1Zend_Log_Exception5| #Zend_Locale5{ -Zend_Locale_Math5z =Zend_Locale_Math_PhpMath5y AZend_Locale_Math_Exception5x 1Zend_Locale_Format5w 7Zend_Locale_Exception5v -Zend_Locale_Data5!u EZend_Locale_Data_Translation5t #Zend_Loader5s =Zend_Loader_PluginLoader5'r QZend_Loader_PluginLoader_Exception5q 7Zend_Loader_Exception5p 9Zend_Loader_Autoloader5$o KZend_Loader_Autoloader_Resource5n Zend_Ldap5m )Zend_Ldap_Node5l 7Zend_Ldap_Node_Schema5#k IZend_Ldap_Node_Schema_OpenLdap5/j aZend_Ldap_Node_Schema_ObjectClass_OpenLdap56i oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectory5h AZend_Ldap_Node_Schema_Item51g eZend_Ldap_Node_Schema_AttributeType_OpenLdap58f sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory5*e WZend_Ldap_Node_Schema_ActiveDirectory5d 9Zend_Ldap_Node_RootDse5$c KZend_Ldap_Node_RootDse_OpenLdap5&b OZend_Ldap_Node_RootDse_eDirectory5+a YZend_Ldap_Node_RootDse_ActiveDirectory5` ?Zend_Ldap_Node_Collection5$_ KZend_Ldap_Node_ChildrenIterator5^ ;Zend_Ldap_Node_Abstract5] 9Zend_Ldap_Ldif_Encoder5\ -Zend_Ldap_Filter5[ ;Zend_Ldap_Filter_String5Z 3Zend_Ldap_Filter_Or5Y 5Zend_Ldap_Filter_Not5X 7Zend_Ldap_Filter_Mask5W =Zend_Ldap_Filter_Logical5V AZend_Ldap_Filter_Exception5U 5Zend_Ldap_Filter_And5T ?Zend_Ldap_Filter_Abstract5S 3Zend_Ldap_Exception5R %Zend_Ldap_Dn5Q 3Zend_Ldap_Converter5"P GZend_Ldap_Converter_Exception5O 5Zend_Ldap_Collection5*N WZend_Ldap_Collection_Iterator_Default5M 3Zend_Ldap_Attribute5L #Zend_Layout5K 7Zend_Layout_Exception5)J UZend_Layout_Controller_Plugin_Layout50I cZend_Layout_Controller_Action_Helper_Layout5H Zend_Json5G -Zend_Json_Server5F 5Zend_Json_Server_Smd5!E EZend_Json_Server_Smd_Service5D ?Zend_Json_Server_Response5#C IZend_Json_Server_Response_Http5B =Zend_Json_Server_Request5"A GZend_Json_Server_Request_Http5@ AZend_Json_Server_Exception5? 9Zend_Json_Server_Error5> 9Zend_Json_Server_Cache5= )Zend_Json_Expr5< 3Zend_Json_Exception5; /Zend_Json_Encoder5: /Zend_Json_Decoder59 'Zend_InfoCard5-8 ]Zend_InfoCard_Xml_SecurityTokenReference57 AZend_InfoCard_Xml_Security5)6 UZend_InfoCard_Xml_Security_Transform545 kZend_InfoCard_Xml_Security_Transform_XmlExcC14N534 iZend_InfoCard_Xml_Security_Transform_Exception5<3 {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignature5)2 UZend_InfoCard_Xml_Security_Exception51 ?Zend_InfoCard_Xml_KeyInfo5&0 OZend_InfoCard_Xml_KeyInfo_XmlDSig5&/ OZend_InfoCard_Xml_KeyInfo_Default5'. QZend_InfoCard_Xml_KeyInfo_Abstract5 - CZend_InfoCard_Xml_Exception5#, IZend_InfoCard_Xml_EncryptedKey5$+ KZend_InfoCard_Xml_EncryptedData5+* YZend_InfoCard_Xml_EncryptedData_XmlEnc5-) ]Zend_InfoCard_Xml_EncryptedData_Abstract5( ?Zend_InfoCard_Xml_Element5 ' CZend_InfoCard_Xml_Assertion5%& MZend_InfoCard_Xml_Assertion_Saml5% ;Zend_InfoCard_Exception5%$ MZend_InfoCard_Exception_Abstract5# 5Zend_InfoCard_Claims5" 5Zend_InfoCard_Cipher55! mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc55  mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc54 kZend_InfoCard_Cipher_Symmetric_Adapter_Abstract5) UZend_InfoCard_Cipher_Pki_Adapter_Rsa5. _Zend_InfoCard_Cipher_Pki_Adapter_Abstract5# IZend_InfoCard_Cipher_Exception5$ KZend_InfoCard_Adapter_Exception5" GZend_InfoCard_Adapter_Default5 1Zend_Http_Response5 ?Zend_Http_Response_Stream5   x cF)}^D([0uO.jE





b
?
				u	O	-sX>"cD%mN2`7qS7	oM,iE uT%             z ;Zend_Oauth_Token_Access5+y YZend_Oauth_Signature_SignatureAbstract5x =Zend_Oauth_Signature_Rsa5#w IZend_Oauth_Signature_Plaintext5v ?Zend_Oauth_Signature_Hmac5u +Zend_Oauth_Http5t ;Zend_Oauth_Http_Utility5&s OZend_Oauth_Http_UserAuthorization5!r EZend_Oauth_Http_RequestToken5 q CZend_Oauth_Http_AccessToken5p 5Zend_Oauth_Exception5o 3Zend_Oauth_Consumer5n /Zend_Oauth_Config5m /Zend_Oauth_Client5l +Zend_Navigation5k 5Zend_Navigation_Page5j =Zend_Navigation_Page_Uri5i =Zend_Navigation_Page_Mvc5h ?Zend_Navigation_Exception5g ?Zend_Navigation_Container5f Zend_Mime5e )Zend_Mime_Part5d /Zend_Mime_Message5c 3Zend_Mime_Exception5b -Zend_Mime_Decode5a #Zend_Memory5` /Zend_Memory_Value5_ 3Zend_Memory_Manager5^ 7Zend_Memory_Exception5] 7Zend_Memory_Container5"\ GZend_Memory_Container_Movable5![ EZend_Memory_Container_Locked5!Z EZend_Memory_AccessController5Y 3Zend_Measure_Weight5X 3Zend_Measure_Volume5%W MZend_Measure_Viscosity_Kinematic5#V IZend_Measure_Viscosity_Dynamic5U 3Zend_Measure_Torque5T /Zend_Measure_Time5S =Zend_Measure_Temperature5R 1Zend_Measure_Speed5Q 7Zend_Measure_Pressure5P 1Zend_Measure_Power5O 3Zend_Measure_Number5N 9Zend_Measure_Lightness5M 3Zend_Measure_Length5L ?Zend_Measure_Illumination5K 9Zend_Measure_Frequency5J 1Zend_Measure_Force5I =Zend_Measure_Flow_Volume5H 9Zend_Measure_Flow_Mole5G 9Zend_Measure_Flow_Mass5F 9Zend_Measure_Exception5E 3Zend_Measure_Energy5D 5Zend_Measure_Density5C 5Zend_Measure_Current5 B CZend_Measure_Cooking_Weight5 A CZend_Measure_Cooking_Volume5@ =Zend_Measure_Capacitance5? 3Zend_Measure_Binary5> /Zend_Measure_Area5= 1Zend_Measure_Angle5< ?Zend_Measure_Acceleration5; 7Zend_Measure_Abstract5: #Zend_Markup59 7Zend_Markup_TokenList58 /Zend_Markup_Token5*7 WZend_Markup_Renderer_RendererAbstract56 ?Zend_Markup_Renderer_Html5"5 GZend_Markup_Renderer_Html_Url5#4 IZend_Markup_Renderer_Html_List5"3 GZend_Markup_Renderer_Html_Img5+2 YZend_Markup_Renderer_Html_HtmlAbstract5#1 IZend_Markup_Renderer_Html_Code5#0 IZend_Markup_Renderer_Exception5/ AZend_Markup_Parser_Textile5!. EZend_Markup_Parser_Exception5- ?Zend_Markup_Parser_Bbcode5, 7Zend_Markup_Exception5+ Zend_Mail5* =Zend_Mail_Transport_Smtp5!) EZend_Mail_Transport_Sendmail5"( GZend_Mail_Transport_Exception5!' EZend_Mail_Transport_Abstract5& /Zend_Mail_Storage5'% QZend_Mail_Storage_Writable_Maildir5$ 9Zend_Mail_Storage_Pop35# 9Zend_Mail_Storage_Mbox5" ?Zend_Mail_Storage_Maildir5! 9Zend_Mail_Storage_Imap5  =Zend_Mail_Storage_Folder5" GZend_Mail_Storage_Folder_Mbox5% MZend_Mail_Storage_Folder_Maildir5  CZend_Mail_Storage_Exception5 AZend_Mail_Storage_Abstract5 ;Zend_Mail_Protocol_Smtp5' QZend_Mail_Protocol_Smtp_Auth_Plain5' QZend_Mail_Protocol_Smtp_Auth_Login5) UZend_Mail_Protocol_Smtp_Auth_Crammd55 ;Zend_Mail_Protocol_Pop35 ;Zend_Mail_Protocol_Imap5! EZend_Mail_Protocol_Exception5  CZend_Mail_Protocol_Abstract5 )Zend_Mail_Part5 3Zend_Mail_Part_File5 /Zend_Mail_Message5 9Zend_Mail_Message_File5 3Zend_Mail_Exception5 Zend_Log5  CZend_Log_Writer_ZendMonitor5 9Zend_Log_Writer_Syslog5 9Zend_Log_Writer_Stream5
 5Zend_Log_Writer_Null5	 5Zend_Log_Writer_Mock5 5Zend_Log_Writer_Mail5 ;Zend_Log_Writer_Firebug5 1Zend_Log_Writer_Db5 =Zend_Log_Writer_Abstract5 9Zend_Log_Formatter_Xml5 ?Zend_Log_Formatter_Simple5   o  ^9nD"wO+
V%uR/




l
N
+
					o	N	+	
|YC'qEU2jL.rO/n;a4{W5         i /Zend_Pdf_NameTree5h )Zend_Pdf_Image5g 'Zend_Pdf_Font5f ?Zend_Pdf_Filter_RunLength5 e CZend_Pdf_Filter_Compression5$d KZend_Pdf_Filter_Compression_Lzw5&c OZend_Pdf_Filter_Compression_Flate5b =Zend_Pdf_Filter_AsciiHex5a ;Zend_Pdf_Filter_Ascii855"` GZend_Pdf_FileParserDataSource5)_ UZend_Pdf_FileParserDataSource_String5'^ QZend_Pdf_FileParserDataSource_File5] 3Zend_Pdf_FileParser5\ ?Zend_Pdf_FileParser_Image5"[ GZend_Pdf_FileParser_Image_Png5Z =Zend_Pdf_FileParser_Font5&Y OZend_Pdf_FileParser_Font_OpenType5/X aZend_Pdf_FileParser_Font_OpenType_TrueType5W 1Zend_Pdf_Exception5V ;Zend_Pdf_ElementFactory5"U GZend_Pdf_ElementFactory_Proxy5T -Zend_Pdf_Element5S ;Zend_Pdf_Element_String5#R IZend_Pdf_Element_String_Binary5Q ;Zend_Pdf_Element_Stream5P AZend_Pdf_Element_Reference5%O MZend_Pdf_Element_Reference_Table5'N QZend_Pdf_Element_Reference_Context5M ;Zend_Pdf_Element_Object5#L IZend_Pdf_Element_Object_Stream5K =Zend_Pdf_Element_Numeric5J 7Zend_Pdf_Element_Null5I 7Zend_Pdf_Element_Name5 H CZend_Pdf_Element_Dictionary5G =Zend_Pdf_Element_Boolean5F 9Zend_Pdf_Element_Array5E 5Zend_Pdf_Destination5D ?Zend_Pdf_Destination_Zoom5!C EZend_Pdf_Destination_Unknown5B AZend_Pdf_Destination_Named5'A QZend_Pdf_Destination_FitVertically5&@ OZend_Pdf_Destination_FitRectangle5)? UZend_Pdf_Destination_FitHorizontally52> gZend_Pdf_Destination_FitBoundingBoxVertically54= kZend_Pdf_Destination_FitBoundingBoxHorizontally5(< SZend_Pdf_Destination_FitBoundingBox5; =Zend_Pdf_Destination_Fit5": GZend_Pdf_Destination_Explicit59 )Zend_Pdf_Color58 1Zend_Pdf_Color_Rgb57 3Zend_Pdf_Color_Html56 =Zend_Pdf_Color_GrayScale55 3Zend_Pdf_Color_Cmyk54 'Zend_Pdf_Cmap53 AZend_Pdf_Cmap_TrimmedTable5!2 EZend_Pdf_Cmap_SegmentToDelta51 AZend_Pdf_Cmap_ByteEncoding5&0 OZend_Pdf_Cmap_ByteEncoding_Static5/ 3Zend_Pdf_Annotation5. =Zend_Pdf_Annotation_Text5- AZend_Pdf_Annotation_Markup5, =Zend_Pdf_Annotation_Link5'+ QZend_Pdf_Annotation_FileAttachment5* +Zend_Pdf_Action5) 3Zend_Pdf_Action_URI5( ;Zend_Pdf_Action_Unknown5' 7Zend_Pdf_Action_Trans5& 9Zend_Pdf_Action_Thread5% AZend_Pdf_Action_SubmitForm5$ 7Zend_Pdf_Action_Sound5 # CZend_Pdf_Action_SetOCGState5" ?Zend_Pdf_Action_ResetForm5! ?Zend_Pdf_Action_Rendition5  7Zend_Pdf_Action_Named5 7Zend_Pdf_Action_Movie5 9Zend_Pdf_Action_Launch5 AZend_Pdf_Action_JavaScript5 AZend_Pdf_Action_ImportData5 5Zend_Pdf_Action_Hide5 7Zend_Pdf_Action_GoToR5 7Zend_Pdf_Action_GoToE5 AZend_Pdf_Action_GoTo3DView5 5Zend_Pdf_Action_GoTo5 )Zend_Paginator5- ]Zend_Paginator_SerializableLimitIterator5* WZend_Paginator_ScrollingStyle_Sliding5* WZend_Paginator_ScrollingStyle_Jumping5* WZend_Paginator_ScrollingStyle_Elastic5& OZend_Paginator_ScrollingStyle_All5 =Zend_Paginator_Exception5  CZend_Paginator_Adapter_Null5$ KZend_Paginator_Adapter_Iterator5) UZend_Paginator_Adapter_DbTableSelect5$ KZend_Paginator_Adapter_DbSelect5! EZend_Paginator_Adapter_Array5
 #Zend_OpenId5	 5Zend_OpenId_Provider5 ?Zend_OpenId_Provider_User5& OZend_OpenId_Provider_User_Session5! EZend_OpenId_Provider_Storage5& OZend_OpenId_Provider_Storage_File5 7Zend_OpenId_Extension5 AZend_OpenId_Extension_Sreg5 7Zend_OpenId_Exception5 5Zend_OpenId_Consumer5!  EZend_OpenId_Consumer_Storage5& OZend_OpenId_Consumer_Storage_File5~ !Zend_Oauth5} -Zend_Oauth_Token5| =Zend_Oauth_Token_Request5'{ QZend_Oauth_Token_AuthorizedRequest5   a  xA]0|>CZ 



j
K
&
				|	^	G	/	tI!xM,S6fS5
vT7{Q1m#a                     5J mZend_Search_Lucene_Analysis_Analyzer_Common_Utf85FI Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive58H sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum5IG Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive55F mZend_Search_Lucene_Analysis_Analyzer_Common_Text5FE Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive5D 7Zend_Search_Exception5C -Zend_Rest_Server5B AZend_Rest_Server_Exception5A +Zend_Rest_Route5@ 3Zend_Rest_Exception5? 5Zend_Rest_Controller5> -Zend_Rest_Client5= ;Zend_Rest_Client_Result5&< OZend_Rest_Client_Result_Exception5; AZend_Rest_Client_Exception5: 'Zend_Registry59 =Zend_Reflection_Property58 ?Zend_Reflection_Parameter57 9Zend_Reflection_Method56 =Zend_Reflection_Function55 5Zend_Reflection_File54 ?Zend_Reflection_Extension53 ?Zend_Reflection_Exception52 =Zend_Reflection_Docblock5!1 EZend_Reflection_Docblock_Tag5(0 SZend_Reflection_Docblock_Tag_Return5'/ QZend_Reflection_Docblock_Tag_Param5. 7Zend_Reflection_Class5- !Zend_Queue5, 9Zend_Queue_Stomp_Frame5+ ;Zend_Queue_Stomp_Client5'* QZend_Queue_Stomp_Client_Connection5) 1Zend_Queue_Message5#( IZend_Queue_Message_PlatformJob5 ' CZend_Queue_Message_Iterator5& 5Zend_Queue_Exception5(% SZend_Queue_Adapter_PlatformJobQueue5$ ;Zend_Queue_Adapter_Null5!# EZend_Queue_Adapter_Memcacheq5" 7Zend_Queue_Adapter_Db5 ! CZend_Queue_Adapter_Db_Queue5"  GZend_Queue_Adapter_Db_Message5 =Zend_Queue_Adapter_Array5' QZend_Queue_Adapter_AdapterAbstract5  CZend_Queue_Adapter_Activemq5 -Zend_ProgressBar5 AZend_ProgressBar_Exception5 =Zend_ProgressBar_Adapter5$ KZend_ProgressBar_Adapter_JsPush5$ KZend_ProgressBar_Adapter_JsPull5' QZend_ProgressBar_Adapter_Exception5% MZend_ProgressBar_Adapter_Console5 Zend_Pdf5! EZend_Pdf_UpdateInfoContainer5 -Zend_Pdf_Trailer5 ;Zend_Pdf_Trailer_Keeper5 AZend_Pdf_Trailer_Generator5 +Zend_Pdf_Target5 )Zend_Pdf_Style5 7Zend_Pdf_StringParser5 /Zend_Pdf_Resource5# IZend_Pdf_Resource_ImageFactory5 ;Zend_Pdf_Resource_Image5!
 EZend_Pdf_Resource_Image_Tiff5 	 CZend_Pdf_Resource_Image_Png5! EZend_Pdf_Resource_Image_Jpeg5 9Zend_Pdf_Resource_Font5! EZend_Pdf_Resource_Font_Type05" GZend_Pdf_Resource_Font_Simple5+ YZend_Pdf_Resource_Font_Simple_Standard58 sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats56 oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman57 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic5;  yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic55 mZend_Pdf_Resource_Font_Simple_Standard_TimesBold52~ gZend_Pdf_Resource_Font_Simple_Standard_Symbol5<} {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaOblique5A| Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique59{ uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold55z mZend_Pdf_Resource_Font_Simple_Standard_Helvetica5:y wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique5>x Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique57w qZend_Pdf_Resource_Font_Simple_Standard_CourierBold53v iZend_Pdf_Resource_Font_Simple_Standard_Courier5)u UZend_Pdf_Resource_Font_Simple_Parsed52t gZend_Pdf_Resource_Font_Simple_Parsed_TrueType5*s WZend_Pdf_Resource_Font_FontDescriptor5%r MZend_Pdf_Resource_Font_Extracted5#q IZend_Pdf_Resource_Font_CidFont5,p [Zend_Pdf_Resource_Font_CidFont_TrueType53o iZend_Pdf_RecursivelyIteratableObjectsContainer5n +Zend_Pdf_Parser5m 'Zend_Pdf_Page5l -Zend_Pdf_Outline5k ;Zend_Pdf_Outline_Loaded5j =Zend_Pdf_Outline_Created5   R  wCt9xO#gH#m> 


o
E
				f	E	sEr5i8tGU(f3tGn>                                 % MZend_Serializer_Adapter_Igbinary5! EZend_Serializer_Adapter_Amf35! EZend_Serializer_Adapter_Amf05, [Zend_Serializer_Adapter_AdapterAbstract5 1Zend_Search_Lucene50 cZend_Search_Lucene_TermStreamsPriorityQueue5$ KZend_Search_Lucene_Storage_File5+ YZend_Search_Lucene_Storage_File_Memory5/ aZend_Search_Lucene_Storage_File_Filesystem5) UZend_Search_Lucene_Storage_Directory54 kZend_Search_Lucene_Storage_Directory_Filesystem5% MZend_Search_Lucene_Search_Weight5* WZend_Search_Lucene_Search_Weight_Term5, [Zend_Search_Lucene_Search_Weight_Phrase5/ aZend_Search_Lucene_Search_Weight_MultiTerm5+ YZend_Search_Lucene_Search_Weight_Empty5- ]Zend_Search_Lucene_Search_Weight_Boolean5) UZend_Search_Lucene_Search_Similarity51
 eZend_Search_Lucene_Search_Similarity_Default5)	 UZend_Search_Lucene_Search_QueryToken53 iZend_Search_Lucene_Search_QueryParserException51 eZend_Search_Lucene_Search_QueryParserContext5* WZend_Search_Lucene_Search_QueryParser5) UZend_Search_Lucene_Search_QueryLexer5' QZend_Search_Lucene_Search_QueryHit5) UZend_Search_Lucene_Search_QueryEntry5. _Zend_Search_Lucene_Search_QueryEntry_Term52 gZend_Search_Lucene_Search_QueryEntry_Subquery50  cZend_Search_Lucene_Search_QueryEntry_Phrase5$ KZend_Search_Lucene_Search_Query5-~ ]Zend_Search_Lucene_Search_Query_Wildcard5)} UZend_Search_Lucene_Search_Query_Term5*| WZend_Search_Lucene_Search_Query_Range52{ gZend_Search_Lucene_Search_Query_Preprocessing57z qZend_Search_Lucene_Search_Query_Preprocessing_Term59y uZend_Search_Lucene_Search_Query_Preprocessing_Phrase58x sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy5+w YZend_Search_Lucene_Search_Query_Phrase5.v _Zend_Search_Lucene_Search_Query_MultiTerm52u gZend_Search_Lucene_Search_Query_Insignificant5*t WZend_Search_Lucene_Search_Query_Fuzzy5*s WZend_Search_Lucene_Search_Query_Empty5,r [Zend_Search_Lucene_Search_Query_Boolean52q gZend_Search_Lucene_Search_Highlighter_Default5:p wZend_Search_Lucene_Search_BooleanExpressionRecognizer5o =Zend_Search_Lucene_Proxy5%n MZend_Search_Lucene_PriorityQueue5/m aZend_Search_Lucene_Interface_MultiSearcher5#l IZend_Search_Lucene_LockManager5$k KZend_Search_Lucene_Index_Writer50j cZend_Search_Lucene_Index_TermsPriorityQueue5&i OZend_Search_Lucene_Index_TermInfo5"h GZend_Search_Lucene_Index_Term5+g YZend_Search_Lucene_Index_SegmentWriter58f sZend_Search_Lucene_Index_SegmentWriter_StreamWriter5:e wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter5+d YZend_Search_Lucene_Index_SegmentMerger5)c UZend_Search_Lucene_Index_SegmentInfo5'b QZend_Search_Lucene_Index_FieldInfo5(a SZend_Search_Lucene_Index_DocsFilter5.` _Zend_Search_Lucene_Index_DictionaryLoader5!_ EZend_Search_Lucene_FSMAction5^ 9Zend_Search_Lucene_FSM5] =Zend_Search_Lucene_Field5!\ EZend_Search_Lucene_Exception5 [ CZend_Search_Lucene_Document5%Z MZend_Search_Lucene_Document_Xlsx5%Y MZend_Search_Lucene_Document_Pptx5(X SZend_Search_Lucene_Document_OpenXml5%W MZend_Search_Lucene_Document_Html5*V WZend_Search_Lucene_Document_Exception5%U MZend_Search_Lucene_Document_Docx5,T [Zend_Search_Lucene_Analysis_TokenFilter56S oZend_Search_Lucene_Analysis_TokenFilter_StopWords57R qZend_Search_Lucene_Analysis_TokenFilter_ShortWords5:Q wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf856P oZend_Search_Lucene_Analysis_TokenFilter_LowerCase5&O OZend_Search_Lucene_Analysis_Token5)N UZend_Search_Lucene_Analysis_Analyzer50M cZend_Search_Lucene_Analysis_Analyzer_Common58L sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num5IK Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive5   Y  Y4b<sK%eG*W,



\
+
				[	;	|Z5T*
}U+W!cV|Bd             Lu Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalance5Jt Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool5-s ]Zend_Service_DeveloperGarden_LocalSearch5>r Zend_Service_DeveloperGarden_LocalSearch_SearchParameters57q qZend_Service_DeveloperGarden_LocalSearch_Exception5,p [Zend_Service_DeveloperGarden_IpLocation56o oZend_Service_DeveloperGarden_IpLocation_IpAddress5+n YZend_Service_DeveloperGarden_Exception5,m [Zend_Service_DeveloperGarden_Credential50l cZend_Service_DeveloperGarden_ConferenceCall5Ck Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatus5Cj Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail5<i {Zend_Service_DeveloperGarden_ConferenceCall_Participant5:h wZend_Service_DeveloperGarden_ConferenceCall_Exception5Dg 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceSchedule5Bf Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail5Ce Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount5-d ]Zend_Service_DeveloperGarden_Client_Soap52c gZend_Service_DeveloperGarden_Client_Exception57b qZend_Service_DeveloperGarden_Client_ClientAbstract51a eZend_Service_DeveloperGarden_BaseUserService5A` Zend_Service_DeveloperGarden_BaseUserService_AccountBalance5_ 9Zend_Service_Delicious5&^ OZend_Service_Delicious_SimplePost5$] KZend_Service_Delicious_PostList5 \ CZend_Service_Delicious_Post5%[ MZend_Service_Delicious_Exception5 Z CZend_Service_Audioscrobbler5Y 3Zend_Service_Amazon5X ;Zend_Service_Amazon_Sqs5&W OZend_Service_Amazon_Sqs_Exception5'V QZend_Service_Amazon_SimilarProduct5U 9Zend_Service_Amazon_S35"T GZend_Service_Amazon_S3_Stream5%S MZend_Service_Amazon_S3_Exception5"R GZend_Service_Amazon_ResultSet5Q ?Zend_Service_Amazon_Query5!P EZend_Service_Amazon_OfferSet5O ?Zend_Service_Amazon_Offer5&N OZend_Service_Amazon_ListmaniaList5M =Zend_Service_Amazon_Item5L ?Zend_Service_Amazon_Image5"K GZend_Service_Amazon_Exception5(J SZend_Service_Amazon_EditorialReview5I ;Zend_Service_Amazon_Ec25+H YZend_Service_Amazon_Ec2_Securitygroups5%G MZend_Service_Amazon_Ec2_Response5#F IZend_Service_Amazon_Ec2_Region5$E KZend_Service_Amazon_Ec2_Keypair5%D MZend_Service_Amazon_Ec2_Instance5-C ]Zend_Service_Amazon_Ec2_Instance_Windows5.B _Zend_Service_Amazon_Ec2_Instance_Reserved5"A GZend_Service_Amazon_Ec2_Image5&@ OZend_Service_Amazon_Ec2_Exception5&? OZend_Service_Amazon_Ec2_Elasticip5 > CZend_Service_Amazon_Ec2_Ebs5'= QZend_Service_Amazon_Ec2_CloudWatch5.< _Zend_Service_Amazon_Ec2_Availabilityzones5%; MZend_Service_Amazon_Ec2_Abstract5': QZend_Service_Amazon_CustomerReview5$9 KZend_Service_Amazon_Accessories5!8 EZend_Service_Amazon_Abstract57 5Zend_Service_Akismet56 7Zend_Service_Abstract55 9Zend_Server_Reflection5'4 QZend_Server_Reflection_ReturnValue5%3 MZend_Server_Reflection_Prototype5%2 MZend_Server_Reflection_Parameter5 1 CZend_Server_Reflection_Node5"0 GZend_Server_Reflection_Method5$/ KZend_Server_Reflection_Function5-. ]Zend_Server_Reflection_Function_Abstract5%- MZend_Server_Reflection_Exception5!, EZend_Server_Reflection_Class5!+ EZend_Server_Method_Prototype5!* EZend_Server_Method_Parameter5") GZend_Server_Method_Definition5 ( CZend_Server_Method_Callback5' 7Zend_Server_Exception5& 9Zend_Server_Definition5% /Zend_Server_Cache5$ 5Zend_Server_Abstract5# +Zend_Serializer5" ?Zend_Serializer_Exception5!! EZend_Serializer_Adapter_Wddx5)  UZend_Serializer_Adapter_PythonPickle5) UZend_Serializer_Adapter_PhpSerialize5$ KZend_Serializer_Adapter_PhpCode5! EZend_Serializer_Adapter_Json5   0 o IB6wr

X
		E[F	s,P}/Hv!  o       W% /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType5S$ 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponse5Q# #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstract5S" 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponse5J! Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType5g  OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseType5c GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponse5W /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse5U +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponse5S 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse53 iZend_Service_DeveloperGarden_Response_BaseType5J Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstract5C Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCall5G Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced5= }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCall5A Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatus5A Zend_Service_DeveloperGarden_Request_SmsValidation_Validate5N Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeyword5C Zend_Service_DeveloperGarden_Request_SmsValidation_Invalidate5L Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbers5B Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract59 uZend_Service_DeveloperGarden_Request_SendSms_SendSMS5> Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS59 uZend_Service_DeveloperGarden_Request_RequestAbstract5I Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequest5E Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest53 iZend_Service_DeveloperGarden_Request_Exception5R
 %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequest5Y	 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequest5d IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequest5Q #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequest5R %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequest5Y 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequest5d IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequest5Q #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequest5O Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequest5U +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequest5U  +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequest5V -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequest5a~ CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequest5Z} 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequest5T| )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequest5R{ %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequest5Yz 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequest5Qy #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequest5Qx #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequest5aw CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequest5Nv Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformation5   . s >0r<%

k
		^	>%n6Wx)JP	i  s               IS Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumber5WR /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponse5JQ Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponse5UP +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponse5CO Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponse5CN Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstract5HM Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponse5UL +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponse5QK #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponse5IJ Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception5;I yZend_Service_DeveloperGarden_Response_ResponseAbstract5OH Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseType5KG Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponse5AF Zend_Service_DeveloperGarden_Response_IpLocation_RegionType5KE Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseType5GD Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponse5LC Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationType5IB Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType5>A Zend_Service_DeveloperGarden_Response_IpLocation_CityType54@ kZend_Service_DeveloperGarden_Response_Exception5T? )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse5[> 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponse5f= MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponse5S< 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponse5T; )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse5[: 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponse5f9 MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponse5S8 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponse5U7 +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType5Q6 #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse5[5 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseType5W4 /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse5[3 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseType5W2 /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse5\1 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseType5X0 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponse5g/ OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseType5c. GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse5`- AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType5\, 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponse5Z+ 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseType5V* -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponse5X) 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseType5T( )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse5_' ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType5[& 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponse5   S  at$]0jD( e8



p
H
)
					~	_	=	|R(^(Y)j<d7qJ&	J5                                                                D& 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectories5U% +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogs5D$ 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSources58# sZend_Service_WindowsAzure_Credentials_SharedKeyLite54" kZend_Service_WindowsAzure_Credentials_SharedKey5A! Zend_Service_WindowsAzure_Credentials_SharedAccessSignature54  kZend_Service_WindowsAzure_Credentials_Exception5> Zend_Service_WindowsAzure_Credentials_CredentialsAbstract5 5Zend_Service_Twitter5  CZend_Service_Twitter_Search5# IZend_Service_Twitter_Exception5 ;Zend_Service_Technorati5# IZend_Service_Technorati_Weblog5" GZend_Service_Technorati_Utils5* WZend_Service_Technorati_TagsResultSet5' QZend_Service_Technorati_TagsResult5) UZend_Service_Technorati_TagResultSet5& OZend_Service_Technorati_TagResult5, [Zend_Service_Technorati_SearchResultSet5) UZend_Service_Technorati_SearchResult5& OZend_Service_Technorati_ResultSet5# IZend_Service_Technorati_Result5* WZend_Service_Technorati_KeyInfoResult5* WZend_Service_Technorati_GetInfoResult5& OZend_Service_Technorati_Exception51 eZend_Service_Technorati_DailyCountsResultSet5. _Zend_Service_Technorati_DailyCountsResult5, [Zend_Service_Technorati_CosmosResultSet5)
 UZend_Service_Technorati_CosmosResult5+	 YZend_Service_Technorati_BlogInfoResult5# IZend_Service_Technorati_Author5 ;Zend_Service_StrikeIron5( SZend_Service_StrikeIron_ZipCodeInfo52 gZend_Service_StrikeIron_USAddressVerification5- ]Zend_Service_StrikeIron_SalesUseTaxBasic5& OZend_Service_StrikeIron_Exception5& OZend_Service_StrikeIron_Decorator5! EZend_Service_StrikeIron_Base5  ;Zend_Service_SlideShare5& OZend_Service_SlideShare_SlideShow5&~ OZend_Service_SlideShare_Exception5} 1Zend_Service_Simpy5$| KZend_Service_Simpy_WatchlistSet5*{ WZend_Service_Simpy_WatchlistFilterSet5'z QZend_Service_Simpy_WatchlistFilter5!y EZend_Service_Simpy_Watchlist5x ?Zend_Service_Simpy_TagSet5w 9Zend_Service_Simpy_Tag5v AZend_Service_Simpy_NoteSet5u ;Zend_Service_Simpy_Note5t AZend_Service_Simpy_LinkSet5!s EZend_Service_Simpy_LinkQuery5r ;Zend_Service_Simpy_Link5q 9Zend_Service_ReCaptcha5$p KZend_Service_ReCaptcha_Response5$o KZend_Service_ReCaptcha_MailHide5.n _Zend_Service_ReCaptcha_MailHide_Exception5%m MZend_Service_ReCaptcha_Exception5l 7Zend_Service_Nirvanix5#k IZend_Service_Nirvanix_Response5)j UZend_Service_Nirvanix_Namespace_Imfs5)i UZend_Service_Nirvanix_Namespace_Base5$h KZend_Service_Nirvanix_Exception5g 7Zend_Service_LiveDocx5$f KZend_Service_LiveDocx_MailMerge5$e KZend_Service_LiveDocx_Exception5d 3Zend_Service_Flickr5"c GZend_Service_Flickr_ResultSet5b AZend_Service_Flickr_Result5a ?Zend_Service_Flickr_Image5` 9Zend_Service_Exception5+_ YZend_Service_DeveloperGarden_VoiceCall5/^ aZend_Service_DeveloperGarden_SmsValidation5)] UZend_Service_DeveloperGarden_SendSms55\ mZend_Service_DeveloperGarden_SecurityTokenServer5;[ yZend_Service_DeveloperGarden_SecurityTokenServer_Cache5KZ Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstract5LY Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponse5PX !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponse5GW Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponse5JV Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponse5KU Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2Response5LT Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponse5   T  {,>K|:	d5



Q
			u	:Y!Y*`3vN3[.nO6U![0                   z =Zend_Tag_Cloud_Exception5!y EZend_Tag_Cloud_Decorator_Tag5%x MZend_Tag_Cloud_Decorator_HtmlTag5'w QZend_Tag_Cloud_Decorator_HtmlCloud5'v QZend_Tag_Cloud_Decorator_Exception5#u IZend_Tag_Cloud_Decorator_Cloud5t )Zend_Soap_Wsdl5/s aZend_Soap_Wsdl_Strategy_DefaultComplexType5&r OZend_Soap_Wsdl_Strategy_Composite50q cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence5/p aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex5$o KZend_Soap_Wsdl_Strategy_AnyType5%n MZend_Soap_Wsdl_Strategy_Abstract5m =Zend_Soap_Wsdl_Exception5l -Zend_Soap_Server5k AZend_Soap_Server_Exception5j -Zend_Soap_Client5i 9Zend_Soap_Client_Local5h AZend_Soap_Client_Exception5g ;Zend_Soap_Client_DotNet5f ;Zend_Soap_Client_Common5e 9Zend_Soap_AutoDiscover5%d MZend_Soap_AutoDiscover_Exception5c %Zend_Session5)b UZend_Session_Validator_HttpUserAgent5$a KZend_Session_Validator_Abstract5'` QZend_Session_SaveHandler_Exception5%_ MZend_Session_SaveHandler_DbTable5^ 9Zend_Session_Namespace5] 9Zend_Session_Exception5\ 7Zend_Session_Abstract5[ 1Zend_Service_Yahoo5$Z KZend_Service_Yahoo_WebResultSet5!Y EZend_Service_Yahoo_WebResult5&X OZend_Service_Yahoo_VideoResultSet5#W IZend_Service_Yahoo_VideoResult5!V EZend_Service_Yahoo_ResultSet5U ?Zend_Service_Yahoo_Result5)T UZend_Service_Yahoo_PageDataResultSet5&S OZend_Service_Yahoo_PageDataResult5%R MZend_Service_Yahoo_NewsResultSet5"Q GZend_Service_Yahoo_NewsResult5&P OZend_Service_Yahoo_LocalResultSet5#O IZend_Service_Yahoo_LocalResult5+N YZend_Service_Yahoo_InlinkDataResultSet5(M SZend_Service_Yahoo_InlinkDataResult5&L OZend_Service_Yahoo_ImageResultSet5#K IZend_Service_Yahoo_ImageResult5J =Zend_Service_Yahoo_Image5&I OZend_Service_WindowsAzure_Storage54H kZend_Service_WindowsAzure_Storage_TableInstance57G qZend_Service_WindowsAzure_Storage_TableEntityQuery52F gZend_Service_WindowsAzure_Storage_TableEntity5,E [Zend_Service_WindowsAzure_Storage_Table5<D {Zend_Service_WindowsAzure_Storage_StorageEntityAbstract57C qZend_Service_WindowsAzure_Storage_SignedIdentifier53B iZend_Service_WindowsAzure_Storage_QueueMessage54A kZend_Service_WindowsAzure_Storage_QueueInstance5,@ [Zend_Service_WindowsAzure_Storage_Queue59? uZend_Service_WindowsAzure_Storage_PageRegionInstance54> kZend_Service_WindowsAzure_Storage_LeaseInstance59= uZend_Service_WindowsAzure_Storage_DynamicTableEntity53< iZend_Service_WindowsAzure_Storage_BlobInstance54; kZend_Service_WindowsAzure_Storage_BlobContainer5+: YZend_Service_WindowsAzure_Storage_Blob529 gZend_Service_WindowsAzure_Storage_Blob_Stream5;8 yZend_Service_WindowsAzure_Storage_BatchStorageAbstract5,7 [Zend_Service_WindowsAzure_Storage_Batch5-6 ]Zend_Service_WindowsAzure_SessionHandler5>5 Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract514 eZend_Service_WindowsAzure_RetryPolicy_RetryN523 gZend_Service_WindowsAzure_RetryPolicy_NoRetry542 kZend_Service_WindowsAzure_RetryPolicy_Exception5(1 SZend_Service_WindowsAzure_Exception5J0 Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscription52/ gZend_Service_WindowsAzure_Diagnostics_Manager53. iZend_Service_WindowsAzure_Diagnostics_LogLevel54- kZend_Service_WindowsAzure_Diagnostics_Exception5N, Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscription5H+ Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLog5L* Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCounters5K) Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstract5<( {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogs5A' Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstance5   W  d6xM%d4P&
kA




w
a
9
				N	Sk/_e9
X(xIe4l8              3Q iZend_Tool_Project_Context_Content_Engine_Phtml5;P yZend_Tool_Project_Context_Content_Engine_CodeGenerator50O cZend_Tool_Framework_System_Provider_Version50N cZend_Tool_Framework_System_Provider_Phpinfo51M eZend_Tool_Framework_System_Provider_Manifest5/L aZend_Tool_Framework_System_Provider_Config5(K SZend_Tool_Framework_System_Manifest5-J ]Zend_Tool_Framework_System_Action_Delete5-I ]Zend_Tool_Framework_System_Action_Create5!H EZend_Tool_Framework_Registry5+G YZend_Tool_Framework_Registry_Exception5+F YZend_Tool_Framework_Provider_Signature5,E [Zend_Tool_Framework_Provider_Repository5+D YZend_Tool_Framework_Provider_Exception5*C WZend_Tool_Framework_Provider_Abstract5&B OZend_Tool_Framework_Metadata_Tool5)A UZend_Tool_Framework_Metadata_Dynamic5'@ QZend_Tool_Framework_Metadata_Basic5,? [Zend_Tool_Framework_Manifest_Repository5+> YZend_Tool_Framework_Manifest_Exception51= eZend_Tool_Framework_Loader_IncludePathLoader5J< Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator5+; YZend_Tool_Framework_Loader_BasicLoader5(: SZend_Tool_Framework_Loader_Abstract5"9 GZend_Tool_Framework_Exception5'8 QZend_Tool_Framework_Client_Storage517 eZend_Tool_Framework_Client_Storage_Directory5(6 SZend_Tool_Framework_Client_Response5D5 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator5'4 QZend_Tool_Framework_Client_Request5(3 SZend_Tool_Framework_Client_Manifest592 uZend_Tool_Framework_Client_Interactive_InputResponse581 sZend_Tool_Framework_Client_Interactive_InputRequest580 sZend_Tool_Framework_Client_Interactive_InputHandler5)/ UZend_Tool_Framework_Client_Exception5'. QZend_Tool_Framework_Client_Console5D- 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Indention5D, 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizer5C+ Zend_Tool_Framework_Client_Console_ResponseDecorator_Blockize5F* Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter50) cZend_Tool_Framework_Client_Console_Manifest52( gZend_Tool_Framework_Client_Console_HelpSystem56' oZend_Tool_Framework_Client_Console_ArgumentParser5&& OZend_Tool_Framework_Client_Config5(% SZend_Tool_Framework_Client_Abstract5*$ WZend_Tool_Framework_Action_Repository5)# UZend_Tool_Framework_Action_Exception5$" KZend_Tool_Framework_Action_Base5! 'Zend_TimeSync5  1Zend_TimeSync_Sntp5 9Zend_TimeSync_Protocol5 /Zend_TimeSync_Ntp5 ;Zend_TimeSync_Exception5 +Zend_Text_Table5 3Zend_Text_Table_Row5 ?Zend_Text_Table_Exception5& OZend_Text_Table_Decorator_Unicode5$ KZend_Text_Table_Decorator_Ascii5 9Zend_Text_Table_Column5 3Zend_Text_MultiByte5 -Zend_Text_Figlet5 AZend_Text_Figlet_Exception5 3Zend_Text_Exception5& OZend_Test_PHPUnit_Db_SimpleTester5, [Zend_Test_PHPUnit_Db_Operation_Truncate5* WZend_Test_PHPUnit_Db_Operation_Insert5- ]Zend_Test_PHPUnit_Db_Operation_DeleteAll5* WZend_Test_PHPUnit_Db_Metadata_Generic5# IZend_Test_PHPUnit_Db_Exception5, [Zend_Test_PHPUnit_Db_DataSet_QueryTable5. _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet50
 cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet5)	 UZend_Test_PHPUnit_Db_DataSet_DbTable5* WZend_Test_PHPUnit_Db_DataSet_DbRowset5$ KZend_Test_PHPUnit_Db_Connection5' QZend_Test_PHPUnit_DatabaseTestCase5) UZend_Test_PHPUnit_ControllerTestCase50 cZend_Test_PHPUnit_Constraint_ResponseHeader5* WZend_Test_PHPUnit_Constraint_Redirect5+ YZend_Test_PHPUnit_Constraint_Exception5* WZend_Test_PHPUnit_Constraint_DomQuery5  7Zend_Test_DbStatement5 3Zend_Test_DbAdapter5~ /Zend_Tag_ItemList5} 'Zend_Tag_Item5| 1Zend_Tag_Exception5{ )Zend_Tag_Cloud5   G  m6aFu?h7


p
:				\	)Z!|@ UH
Wm3W]                      9 uZend_Tool_Project_Profile_Resource_SearchConstraints51 eZend_Tool_Project_Profile_Resource_Container5= }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter55 mZend_Tool_Project_Profile_Iterator_ContextFilter5- ]Zend_Tool_Project_Profile_FileParser_Xml5( SZend_Tool_Project_Profile_Exception5  CZend_Tool_Project_Exception5< {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory50 cZend_Tool_Project_Context_Zf_ViewsDirectory56 oZend_Tool_Project_Context_Zf_ViewScriptsDirectory50 cZend_Tool_Project_Context_Zf_ViewScriptFile56 oZend_Tool_Project_Context_Zf_ViewHelpersDirectory56 oZend_Tool_Project_Context_Zf_ViewFiltersDirectory5A Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory52
 gZend_Tool_Project_Context_Zf_UploadsDirectory50	 cZend_Tool_Project_Context_Zf_TestsDirectory57 qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile5@ Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory51 eZend_Tool_Project_Context_Zf_TestLibraryFile56 oZend_Tool_Project_Context_Zf_TestLibraryDirectory5: wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFile5: wZend_Tool_Project_Context_Zf_TestApplicationDirectory5@ Zend_Tool_Project_Context_Zf_TestApplicationControllerFile5E Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory5>  Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile54 kZend_Tool_Project_Context_Zf_TemporaryDirectory53~ iZend_Tool_Project_Context_Zf_SessionsDirectory58} sZend_Tool_Project_Context_Zf_SearchIndexesDirectory5<| {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory58{ sZend_Tool_Project_Context_Zf_PublicScriptsDirectory51z eZend_Tool_Project_Context_Zf_PublicIndexFile57y qZend_Tool_Project_Context_Zf_PublicImagesDirectory51x eZend_Tool_Project_Context_Zf_PublicDirectory55w mZend_Tool_Project_Context_Zf_ProjectProviderFile52v gZend_Tool_Project_Context_Zf_ModulesDirectory51u eZend_Tool_Project_Context_Zf_ModuleDirectory51t eZend_Tool_Project_Context_Zf_ModelsDirectory5+s YZend_Tool_Project_Context_Zf_ModelFile5/r aZend_Tool_Project_Context_Zf_LogsDirectory52q gZend_Tool_Project_Context_Zf_LocalesDirectory52p gZend_Tool_Project_Context_Zf_LibraryDirectory52o gZend_Tool_Project_Context_Zf_LayoutsDirectory58n sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory52m gZend_Tool_Project_Context_Zf_LayoutScriptFile5.l _Zend_Tool_Project_Context_Zf_HtaccessFile50k cZend_Tool_Project_Context_Zf_FormsDirectory5*j WZend_Tool_Project_Context_Zf_FormFile5/i aZend_Tool_Project_Context_Zf_DocsDirectory5-h ]Zend_Tool_Project_Context_Zf_DbTableFile52g gZend_Tool_Project_Context_Zf_DbTableDirectory5/f aZend_Tool_Project_Context_Zf_DataDirectory56e oZend_Tool_Project_Context_Zf_ControllersDirectory50d cZend_Tool_Project_Context_Zf_ControllerFile52c gZend_Tool_Project_Context_Zf_ConfigsDirectory5,b [Zend_Tool_Project_Context_Zf_ConfigFile50a cZend_Tool_Project_Context_Zf_CacheDirectory5/` aZend_Tool_Project_Context_Zf_BootstrapFile56_ oZend_Tool_Project_Context_Zf_ApplicationDirectory57^ qZend_Tool_Project_Context_Zf_ApplicationConfigFile5/] aZend_Tool_Project_Context_Zf_ApisDirectory5.\ _Zend_Tool_Project_Context_Zf_ActionMethod53[ iZend_Tool_Project_Context_Zf_AbstractClassFile5@Z Zend_Tool_Project_Context_System_ProjectProvidersDirectory58Y sZend_Tool_Project_Context_System_ProjectProfileFile56X oZend_Tool_Project_Context_System_ProjectDirectory5)W UZend_Tool_Project_Context_Repository5.V _Zend_Tool_Project_Context_Filesystem_File53U iZend_Tool_Project_Context_Filesystem_Directory52T gZend_Tool_Project_Context_Filesystem_Abstract5(S SZend_Tool_Project_Context_Exception5-R ]Zend_Tool_Project_Context_Content_Engine5   l  ]. {S)T!b?nM/






Q
,					b	>	iD]6}Z<]7i>eB#xS7iP5                         9Zend_Validate_NotEmpty5 9Zend_Validate_LessThan5 1Zend_Validate_Isbn5 -Zend_Validate_Ip5  /Zend_Validate_Int5 7Zend_Validate_InArray5~ ;Zend_Validate_Identical5} 1Zend_Validate_Iban5| 9Zend_Validate_Hostname5{ /Zend_Validate_Hex5z ?Zend_Validate_GreaterThan5y 3Zend_Validate_Float5!x EZend_Validate_File_WordCount5w ?Zend_Validate_File_Upload5v ;Zend_Validate_File_Size5u ;Zend_Validate_File_Sha15!t EZend_Validate_File_NotExists5 s CZend_Validate_File_MimeType5r 9Zend_Validate_File_Md55q AZend_Validate_File_IsImage5$p KZend_Validate_File_IsCompressed5!o EZend_Validate_File_ImageSize5n ;Zend_Validate_File_Hash5!m EZend_Validate_File_FilesSize5!l EZend_Validate_File_Extension5k ?Zend_Validate_File_Exists5'j QZend_Validate_File_ExcludeMimeType5(i SZend_Validate_File_ExcludeExtension5h =Zend_Validate_File_Crc325g =Zend_Validate_File_Count5f ;Zend_Validate_Exception5e AZend_Validate_EmailAddress5d 5Zend_Validate_Digits5"c GZend_Validate_Db_RecordExists5$b KZend_Validate_Db_NoRecordExists5a ?Zend_Validate_Db_Abstract5` 1Zend_Validate_Date5_ =Zend_Validate_CreditCard5^ 3Zend_Validate_Ccnum5] 9Zend_Validate_Callback5\ 7Zend_Validate_Between5[ 7Zend_Validate_Barcode5Z AZend_Validate_Barcode_Upce5Y AZend_Validate_Barcode_Upca5X AZend_Validate_Barcode_Sscc5$W KZend_Validate_Barcode_Royalmail5"V GZend_Validate_Barcode_Postnet5!U EZend_Validate_Barcode_Planet5#T IZend_Validate_Barcode_Leitcode5 S CZend_Validate_Barcode_Itf145R AZend_Validate_Barcode_Issn5*Q WZend_Validate_Barcode_IntelligentMail5$P KZend_Validate_Barcode_Identcode5!O EZend_Validate_Barcode_Gtin145!N EZend_Validate_Barcode_Gtin135!M EZend_Validate_Barcode_Gtin125L AZend_Validate_Barcode_Ean85K AZend_Validate_Barcode_Ean55J AZend_Validate_Barcode_Ean25 I CZend_Validate_Barcode_Ean185 H CZend_Validate_Barcode_Ean145 G CZend_Validate_Barcode_Ean135 F CZend_Validate_Barcode_Ean125$E KZend_Validate_Barcode_Code93ext5!D EZend_Validate_Barcode_Code935$C KZend_Validate_Barcode_Code39ext5!B EZend_Validate_Barcode_Code395,A [Zend_Validate_Barcode_Code25interleaved5!@ EZend_Validate_Barcode_Code255*? WZend_Validate_Barcode_AdapterAbstract5> 3Zend_Validate_Alpha5= 3Zend_Validate_Alnum5< 9Zend_Validate_Abstract5; Zend_Uri5: 'Zend_Uri_Http59 1Zend_Uri_Exception58 )Zend_Translate57 7Zend_Translate_Plural56 =Zend_Translate_Exception55 9Zend_Translate_Adapter5!4 EZend_Translate_Adapter_XmlTm5!3 EZend_Translate_Adapter_Xliff52 AZend_Translate_Adapter_Tmx51 AZend_Translate_Adapter_Tbx50 ?Zend_Translate_Adapter_Qt5/ AZend_Translate_Adapter_Ini5#. IZend_Translate_Adapter_Gettext5- AZend_Translate_Adapter_Csv5!, EZend_Translate_Adapter_Array5$+ KZend_Tool_Project_Provider_View5$* KZend_Tool_Project_Provider_Test5/) aZend_Tool_Project_Provider_ProjectProvider5'( QZend_Tool_Project_Provider_Project5'' QZend_Tool_Project_Provider_Profile5&& OZend_Tool_Project_Provider_Module5%% MZend_Tool_Project_Provider_Model5($ SZend_Tool_Project_Provider_Manifest5&# OZend_Tool_Project_Provider_Layout5$" KZend_Tool_Project_Provider_Form5)! UZend_Tool_Project_Provider_Exception5'  QZend_Tool_Project_Provider_DbTable5) UZend_Tool_Project_Provider_DbAdapter5* WZend_Tool_Project_Provider_Controller5+ YZend_Tool_Project_Provider_Application5& OZend_Tool_Project_Provider_Action5( SZend_Tool_Project_Provider_Abstract5 ?Zend_Tool_Project_Profile5' QZend_Tool_Project_Profile_Resource5   i  vT-
fE#~Z4_4^<




h
C
 					k	M	-wK'SyK&}kA!sN$v[=#^B z_?                                !m EZend_XmlRpc_Value_BigInteger5l =Zend_XmlRpc_Value_Base645k ;Zend_XmlRpc_Value_Array5j 1Zend_XmlRpc_Server5i ?Zend_XmlRpc_Server_System5h =Zend_XmlRpc_Server_Fault5!g EZend_XmlRpc_Server_Exception5f =Zend_XmlRpc_Server_Cache5e 5Zend_XmlRpc_Response5d ?Zend_XmlRpc_Response_Http5c 3Zend_XmlRpc_Request5b ?Zend_XmlRpc_Request_Stdin5a =Zend_XmlRpc_Request_Http5$` KZend_XmlRpc_Generator_XmlWriter5,_ [Zend_XmlRpc_Generator_GeneratorAbstract5&^ OZend_XmlRpc_Generator_DomDocument5] /Zend_XmlRpc_Fault5\ 7Zend_XmlRpc_Exception5[ 1Zend_XmlRpc_Client5#Z IZend_XmlRpc_Client_ServerProxy5+Y YZend_XmlRpc_Client_ServerIntrospection5+X YZend_XmlRpc_Client_IntrospectException5%W MZend_XmlRpc_Client_HttpException5&V OZend_XmlRpc_Client_FaultException5!U EZend_XmlRpc_Client_Exception5&T OZend_Wildfire_Protocol_JsonStream5!S EZend_Wildfire_Plugin_FirePhp5.R _Zend_Wildfire_Plugin_FirePhp_TableMessage5)Q UZend_Wildfire_Plugin_FirePhp_Message5P ;Zend_Wildfire_Exception5&O OZend_Wildfire_Channel_HttpHeaders5N Zend_View5M -Zend_View_Stream5L 5Zend_View_Helper_Url5K AZend_View_Helper_Translate5J AZend_View_Helper_ServerUrl5)I UZend_View_Helper_RenderToPlaceholder5!H EZend_View_Helper_Placeholder5*G WZend_View_Helper_Placeholder_Registry54F kZend_View_Helper_Placeholder_Registry_Exception5+E YZend_View_Helper_Placeholder_Container56D oZend_View_Helper_Placeholder_Container_Standalone55C mZend_View_Helper_Placeholder_Container_Exception54B kZend_View_Helper_Placeholder_Container_Abstract5!A EZend_View_Helper_PartialLoop5@ =Zend_View_Helper_Partial5'? QZend_View_Helper_Partial_Exception5'> QZend_View_Helper_PaginationControl5 = CZend_View_Helper_Navigation5(< SZend_View_Helper_Navigation_Sitemap5%; MZend_View_Helper_Navigation_Menu5&: OZend_View_Helper_Navigation_Links5/9 aZend_View_Helper_Navigation_HelperAbstract5,8 [Zend_View_Helper_Navigation_Breadcrumbs57 ;Zend_View_Helper_Layout56 7Zend_View_Helper_Json5"5 GZend_View_Helper_InlineScript5#4 IZend_View_Helper_HtmlQuicktime53 ?Zend_View_Helper_HtmlPage5 2 CZend_View_Helper_HtmlObject51 ?Zend_View_Helper_HtmlList50 AZend_View_Helper_HtmlFlash5!/ EZend_View_Helper_HtmlElement5. AZend_View_Helper_HeadTitle5- AZend_View_Helper_HeadStyle5 , CZend_View_Helper_HeadScript5+ ?Zend_View_Helper_HeadMeta5* ?Zend_View_Helper_HeadLink5") GZend_View_Helper_FormTextarea5( ?Zend_View_Helper_FormText5 ' CZend_View_Helper_FormSubmit5 & CZend_View_Helper_FormSelect5% AZend_View_Helper_FormReset5$ AZend_View_Helper_FormRadio5"# GZend_View_Helper_FormPassword5" ?Zend_View_Helper_FormNote5'! QZend_View_Helper_FormMultiCheckbox5  AZend_View_Helper_FormLabel5 AZend_View_Helper_FormImage5  CZend_View_Helper_FormHidden5 ?Zend_View_Helper_FormFile5  CZend_View_Helper_FormErrors5! EZend_View_Helper_FormElement5" GZend_View_Helper_FormCheckbox5  CZend_View_Helper_FormButton5 7Zend_View_Helper_Form5 ?Zend_View_Helper_Fieldset5 =Zend_View_Helper_Doctype5! EZend_View_Helper_DeclareVars5 9Zend_View_Helper_Cycle5 ?Zend_View_Helper_Currency5 =Zend_View_Helper_BaseUrl5 ;Zend_View_Helper_Action5 ?Zend_View_Helper_Abstract5 3Zend_View_Exception5 1Zend_View_Abstract5 %Zend_Version5 'Zend_Validate5 AZend_Validate_StringLength5#
 IZend_Validate_Sitemap_Priority5	 ?Zend_Validate_Sitemap_Loc5" GZend_Validate_Sitemap_Lastmod5% MZend_Validate_Sitemap_Changefreq5 3Zend_Validate_Regex5 9Zend_Validate_PostCode5   i  uQ/y_6nS8tQ- iK2




{
X
3
			o	?	\/c<f?b8~]9yX<#`=gE                                "V GZend_Barcode_Object_Identcode6"U GZend_Barcode_Object_Exception6T ?Zend_Barcode_Object_Error6S =Zend_Barcode_Object_Ean86R =Zend_Barcode_Object_Ean56Q =Zend_Barcode_Object_Ean26P ?Zend_Barcode_Object_Ean136O AZend_Barcode_Object_Code396*N WZend_Barcode_Object_Code25interleaved6M AZend_Barcode_Object_Code256 L CZend_Barcode_Object_Code1286K 9Zend_Barcode_Exception6J Zend_Auth6I ?Zend_Auth_Storage_Session6$H KZend_Auth_Storage_NonPersistent6 G CZend_Auth_Storage_Exception6F -Zend_Auth_Result6E 3Zend_Auth_Exception6D =Zend_Auth_Adapter_OpenId6C 9Zend_Auth_Adapter_Ldap6B AZend_Auth_Adapter_InfoCard6A 9Zend_Auth_Adapter_Http6)@ UZend_Auth_Adapter_Http_Resolver_File6.? _Zend_Auth_Adapter_Http_Resolver_Exception6 > CZend_Auth_Adapter_Exception6= =Zend_Auth_Adapter_Digest6< ?Zend_Auth_Adapter_DbTable6; -Zend_Application6#: IZend_Application_Resource_View6(9 SZend_Application_Resource_UserAgent6(8 SZend_Application_Resource_Translate6&7 OZend_Application_Resource_Session6%6 MZend_Application_Resource_Router6/5 aZend_Application_Resource_ResourceAbstract6)4 UZend_Application_Resource_Navigation6&3 OZend_Application_Resource_Multidb6&2 OZend_Application_Resource_Modules6#1 IZend_Application_Resource_Mail6"0 GZend_Application_Resource_Log6%/ MZend_Application_Resource_Locale6%. MZend_Application_Resource_Layout6.- _Zend_Application_Resource_Frontcontroller6(, SZend_Application_Resource_Exception6#+ IZend_Application_Resource_Dojo6!* EZend_Application_Resource_Db6+) YZend_Application_Resource_Cachemanager6&( OZend_Application_Module_Bootstrap6'' QZend_Application_Module_Autoloader6& AZend_Application_Exception6)% UZend_Application_Bootstrap_Exception61$ eZend_Application_Bootstrap_BootstrapAbstract6)# UZend_Application_Bootstrap_Bootstrap6" ?Zend_Amf_Value_TraitsInfo6-! ]Zend_Amf_Value_Messaging_RemotingMessage6*  WZend_Amf_Value_Messaging_ErrorMessage6, [Zend_Amf_Value_Messaging_CommandMessage6* WZend_Amf_Value_Messaging_AsyncMessage6- ]Zend_Amf_Value_Messaging_ArrayCollection60 cZend_Amf_Value_Messaging_AcknowledgeMessage6- ]Zend_Amf_Value_Messaging_AbstractMessage6! EZend_Amf_Value_MessageHeader6 AZend_Amf_Value_MessageBody6 =Zend_Amf_Value_ByteArray6 AZend_Amf_Util_BinaryStream6 +Zend_Amf_Server6 ?Zend_Amf_Server_Exception6 /Zend_Amf_Response6 9Zend_Amf_Response_Http6 -Zend_Amf_Request6 7Zend_Amf_Request_Http6 ?Zend_Amf_Parse_TypeLoader6 ?Zend_Amf_Parse_Serializer6# IZend_Amf_Parse_Resource_Stream6( SZend_Amf_Parse_Resource_MysqlResult6) UZend_Amf_Parse_Resource_MysqliResult6  CZend_Amf_Parse_OutputStream6
 AZend_Amf_Parse_InputStream6 	 CZend_Amf_Parse_Deserializer6# IZend_Amf_Parse_Amf3_Serializer6% MZend_Amf_Parse_Amf3_Deserializer6# IZend_Amf_Parse_Amf0_Serializer6% MZend_Amf_Parse_Amf0_Deserializer6 1Zend_Amf_Exception6 1Zend_Amf_Constants6 9Zend_Amf_Auth_Abstract6  CZend_Amf_Adobe_Introspector6  AZend_Amf_Adobe_DbInspector6 3Zend_Amf_Adobe_Auth6~ Zend_Acl6} 'Zend_Acl_Role6| 9Zend_Acl_Role_Registry6%{ MZend_Acl_Role_Registry_Exception6z /Zend_Acl_Resource6y 1Zend_Acl_Exception6x /Zend_XmlRpc_Value5w =Zend_XmlRpc_Value_Struct5v =Zend_XmlRpc_Value_String5u =Zend_XmlRpc_Value_Scalar5t 7Zend_XmlRpc_Value_Nil5s ?Zend_XmlRpc_Value_Integer5 r CZend_XmlRpc_Value_Exception5q =Zend_XmlRpc_Value_Double5p AZend_XmlRpc_Value_DateTime5!o EZend_XmlRpc_Value_Collection5n ?Zend_XmlRpc_Value_Boolean5   X  p?e9mJ_,fD



t
:
 			x	M	]<^4 a2	c-	9zNQ%Y            +s YZend_Tool_Framework_Metadata_Interface5.r _Zend_Tool_Framework_Metadata_Attributable56q oZend_Tool_Framework_Manifest_ProviderManifestable56p oZend_Tool_Framework_Manifest_MetadataManifestable5+o YZend_Tool_Framework_Manifest_Interface5+n YZend_Tool_Framework_Manifest_Indexable54m kZend_Tool_Framework_Manifest_ActionManifestable5)l UZend_Tool_Framework_Loader_Interface58k sZend_Tool_Framework_Client_Storage_AdapterInterface5Dj 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface5;i yZend_Tool_Framework_Client_Interactive_OutputInterface5:h wZend_Tool_Framework_Client_Interactive_InputInterface5)g UZend_Tool_Framework_Action_Interface5(f SZend_Text_Table_Decorator_Interface5e /Zend_Tag_Taggable5&d OZend_Soap_Wsdl_Strategy_Interface5%c MZend_Session_Validator_Interface5'b QZend_Session_SaveHandler_Interface5Ia Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Interface5` 7Zend_Server_Interface5-_ ]Zend_Serializer_Adapter_AdapterInterface54^ kZend_Search_Lucene_Search_Highlighter_Interface5!] EZend_Search_Lucene_Interface53\ iZend_Search_Lucene_Index_TermsStream_Interface5$[ KZend_Queue_Stomp_FrameInterface50Z cZend_Queue_Stomp_Client_ConnectionInterface5(Y SZend_Queue_Adapter_AdapterInterface5X ?Zend_Pdf_Filter_Interface5&W OZend_Pdf_ElementFactory_Interface5,V [Zend_Paginator_ScrollingStyle_Interface5$U KZend_Paginator_AdapterAggregate5%T MZend_Paginator_Adapter_Interface5&S OZend_Oauth_Config_ConfigInterface5$R KZend_Memory_Container_Interface51Q eZend_Markup_Renderer_TokenConverterInterface5'P QZend_Markup_Parser_ParserInterface5)O UZend_Mail_Storage_Writable_Interface5'N QZend_Mail_Storage_Folder_Interface5M =Zend_Mail_Part_Interface5 L CZend_Mail_Message_Interface5!K EZend_Log_Formatter_Interface5J ?Zend_Log_Filter_Interface5I ?Zend_Log_FactoryInterface5'H QZend_Loader_PluginLoader_Interface5%G MZend_Loader_Autoloader_Interface50F cZend_Ldap_Node_Schema_ObjectClass_Interface52E gZend_Ldap_Node_Schema_AttributeType_Interface53D iZend_InfoCard_Xml_Security_Transform_Interface5(C SZend_InfoCard_Xml_KeyInfo_Interface5(B SZend_InfoCard_Xml_Element_Interface5*A WZend_InfoCard_Xml_Assertion_Interface5-@ ]Zend_InfoCard_Cipher_Symmetric_Interface57? qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface57> qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interface5+= YZend_InfoCard_Cipher_Pki_Rsa_Interface5'< QZend_InfoCard_Cipher_Pki_Interface5$; KZend_InfoCard_Adapter_Interface5$: KZend_Http_Client_Adapter_Stream5'9 QZend_Http_Client_Adapter_Interface58 AZend_Gdata_App_MediaSource5.7 _Zend_Form_Decorator_Marker_File_Interface5"6 GZend_Form_Decorator_Interface55 7Zend_Filter_Interface5"4 GZend_Filter_Encrypt_Interface5+3 YZend_Filter_Compress_CompressInterface502 cZend_Feed_Writer_Renderer_RendererInterface511 eZend_Feed_Writer_Extension_RendererInterface5#0 IZend_Feed_Reader_FeedInterface5$/ KZend_Feed_Reader_EntryInterface57. qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface5-- ]Zend_Feed_Pubsubhubbub_CallbackInterface5 , CZend_Feed_Builder_Interface5 + CZend_Db_Statement_Interface5$* KZend_Currency_CurrencyInterface5)) UZend_Crypt_Math_BigInteger_Interface5+( YZend_Controller_Router_Route_Interface5%' MZend_Controller_Router_Interface5)& UZend_Controller_Dispatcher_Interface5%% MZend_Controller_Action_Interface5$ 5Zend_Captcha_Adapter5!# EZend_Cache_Backend_Interface5)" UZend_Cache_Backend_ExtendedInterface5 ! CZend_Auth_Storage_Interface5   CZend_Auth_Adapter_Interface5. _Zend_Auth_Adapter_Http_Resolver_Interface5' QZend_Application_Resource_Resource54 kZend_Application_Bootstrap_ResourceBootstrapper5, [Zend_Application_Bootstrap_Bootstrapper5   [  c3s;{Y/d5]1



q
H
 				r	K	(	tNwR!`=Ja,eA~J#|[2                                         (N SZend_Queue_Adapter_AdapterInterface6M ?Zend_Pdf_Filter_Interface6&L OZend_Pdf_ElementFactory_Interface6K ?Zend_Pdf_Canvas_Interface6,J [Zend_Paginator_ScrollingStyle_Interface6$I KZend_Paginator_AdapterAggregate6%H MZend_Paginator_Adapter_Interface6&G OZend_Oauth_Config_ConfigInterface6$F KZend_Memory_Container_Interface61E eZend_Markup_Renderer_TokenConverterInterface6'D QZend_Markup_Parser_ParserInterface6)C UZend_Mail_Storage_Writable_Interface6'B QZend_Mail_Storage_Folder_Interface6A =Zend_Mail_Part_Interface6 @ CZend_Mail_Message_Interface6!? EZend_Log_Formatter_Interface6> ?Zend_Log_Filter_Interface6= ?Zend_Log_FactoryInterface6'< QZend_Loader_PluginLoader_Interface6%; MZend_Loader_Autoloader_Interface60: cZend_Ldap_Node_Schema_ObjectClass_Interface629 gZend_Ldap_Node_Schema_AttributeType_Interface638 iZend_InfoCard_Xml_Security_Transform_Interface6(7 SZend_InfoCard_Xml_KeyInfo_Interface6(6 SZend_InfoCard_Xml_Element_Interface6*5 WZend_InfoCard_Xml_Assertion_Interface6-4 ]Zend_InfoCard_Cipher_Symmetric_Interface673 qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface672 qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interface6+1 YZend_InfoCard_Cipher_Pki_Rsa_Interface6'0 QZend_InfoCard_Cipher_Pki_Interface6$/ KZend_InfoCard_Adapter_Interface6 . CZend_Http_UserAgent_Storage6)- UZend_Http_UserAgent_Features_Adapter6, AZend_Http_UserAgent_Device6$+ KZend_Http_Client_Adapter_Stream6'* QZend_Http_Client_Adapter_Interface6) AZend_Gdata_App_MediaSource6.( _Zend_Form_Decorator_Marker_File_Interface6"' GZend_Form_Decorator_Interface6& 7Zend_Filter_Interface6"% GZend_Filter_Encrypt_Interface6+$ YZend_Filter_Compress_CompressInterface60# cZend_Feed_Writer_Renderer_RendererInterface61" eZend_Feed_Writer_Extension_RendererInterface6#! IZend_Feed_Reader_FeedInterface6$  KZend_Feed_Reader_EntryInterface67 qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface6- ]Zend_Feed_Pubsubhubbub_CallbackInterface6  CZend_Feed_Builder_Interface6  CZend_Db_Statement_Interface6$ KZend_Currency_CurrencyInterface6) UZend_Crypt_Math_BigInteger_Interface6+ YZend_Controller_Router_Route_Interface6% MZend_Controller_Router_Interface6) UZend_Controller_Dispatcher_Interface6% MZend_Controller_Action_Interface6& OZend_Cloud_StorageService_Adapter6$ KZend_Cloud_QueueService_Adapter6, [Zend_Cloud_DocumentService_QueryAdapter6' QZend_Cloud_DocumentService_Adapter6 5Zend_Captcha_Adapter6! EZend_Cache_Backend_Interface6) UZend_Cache_Backend_ExtendedInterface6  CZend_Auth_Storage_Interface6  CZend_Auth_Adapter_Interface6. _Zend_Auth_Adapter_Http_Resolver_Interface6' QZend_Application_Resource_Resource64
 kZend_Application_Bootstrap_ResourceBootstrapper6,	 [Zend_Application_Bootstrap_Bootstrapper6 ;Zend_Acl_Role_Interface6  CZend_Acl_Resource_Interface6 ?Zend_Acl_Assert_Interface6# IZend_Wildfire_Plugin_Interface5$ KZend_Wildfire_Channel_Interface5 3Zend_View_Interface5' QZend_View_Helper_Navigation_Helper5 AZend_View_Helper_Interface5  ;Zend_Validate_Interface5+ YZend_Validate_Barcode_AdapterInterface53~ iZend_Tool_Project_Profile_FileParser_Interface5:} wZend_Tool_Project_Context_System_TopLevelRestrictable55| mZend_Tool_Project_Context_System_NotOverwritable5/{ aZend_Tool_Project_Context_System_Interface5(z SZend_Tool_Project_Context_Interface5+y YZend_Tool_Framework_Registry_Interface52x gZend_Tool_Framework_Registry_EnabledInterface5-w ]Zend_Tool_Framework_Provider_Pretendable5+v YZend_Tool_Framework_Provider_Interface5.u _Zend_Tool_Framework_Provider_Interactable5;t yZend_Tool_Framework_Provider_DocblockManifestInterface5   c  kG! qB Z8\0
tS.





i
M
2
				a	-\/T(oGP$e@{S*K"vU-                                 9 ;Zend_Config_Writer_Json68 9Zend_Config_Writer_Ini6$7 KZend_Config_Writer_FileAbstract66 =Zend_Config_Writer_Array65 -Zend_Config_Json64 +Zend_Config_Ini63 7Zend_Config_Exception6$2 KZend_CodeGenerator_Php_Property611 eZend_CodeGenerator_Php_Property_DefaultValue6%0 MZend_CodeGenerator_Php_Parameter62/ gZend_CodeGenerator_Php_Parameter_DefaultValue6". GZend_CodeGenerator_Php_Method6,- [Zend_CodeGenerator_Php_Member_Container6+, YZend_CodeGenerator_Php_Member_Abstract6 + CZend_CodeGenerator_Php_File6%* MZend_CodeGenerator_Php_Exception6$) KZend_CodeGenerator_Php_Docblock6(( SZend_CodeGenerator_Php_Docblock_Tag6/' aZend_CodeGenerator_Php_Docblock_Tag_Return6.& _Zend_CodeGenerator_Php_Docblock_Tag_Param60% cZend_CodeGenerator_Php_Docblock_Tag_License6!$ EZend_CodeGenerator_Php_Class6 # CZend_CodeGenerator_Php_Body6$" KZend_CodeGenerator_Php_Abstract6!! EZend_CodeGenerator_Exception6   CZend_CodeGenerator_Abstract6& OZend_Cloud_StorageService_Factory6( SZend_Cloud_StorageService_Exception63 iZend_Cloud_StorageService_Adapter_WindowsAzure6) UZend_Cloud_StorageService_Adapter_S36/ aZend_Cloud_StorageService_Adapter_Nirvanix61 eZend_Cloud_StorageService_Adapter_FileSystem6' QZend_Cloud_QueueService_MessageSet6$ KZend_Cloud_QueueService_Message6$ KZend_Cloud_QueueService_Factory6& OZend_Cloud_QueueService_Exception6. _Zend_Cloud_QueueService_Adapter_ZendQueue61 eZend_Cloud_QueueService_Adapter_WindowsAzure6( SZend_Cloud_QueueService_Adapter_Sqs64 kZend_Cloud_QueueService_Adapter_AbstractAdapter6. _Zend_Cloud_OperationNotAvailableException6 5Zend_Cloud_Exception6% MZend_Cloud_DocumentService_Query6' QZend_Cloud_DocumentService_Factory6) UZend_Cloud_DocumentService_Exception6+ YZend_Cloud_DocumentService_DocumentSet6( SZend_Cloud_DocumentService_Document64
 kZend_Cloud_DocumentService_Adapter_WindowsAzure6:	 wZend_Cloud_DocumentService_Adapter_WindowsAzure_Query60 cZend_Cloud_DocumentService_Adapter_SimpleDb66 oZend_Cloud_DocumentService_Adapter_SimpleDb_Query67 qZend_Cloud_DocumentService_Adapter_AbstractAdapter6 AZend_Cloud_AbstractFactory6 /Zend_Captcha_Word6 9Zend_Captcha_ReCaptcha6 1Zend_Captcha_Image6 3Zend_Captcha_Figlet6  9Zend_Captcha_Exception6 /Zend_Captcha_Dumb6~ /Zend_Captcha_Base6} !Zend_Cache6| 1Zend_Cache_Manager6{ =Zend_Cache_Frontend_Page6z AZend_Cache_Frontend_Output6!y EZend_Cache_Frontend_Function6x =Zend_Cache_Frontend_File6w ?Zend_Cache_Frontend_Class6 v CZend_Cache_Frontend_Capture6u 5Zend_Cache_Exception6t +Zend_Cache_Core6s 1Zend_Cache_Backend6"r GZend_Cache_Backend_ZendServer6(q SZend_Cache_Backend_ZendServer_ShMem6'p QZend_Cache_Backend_ZendServer_Disk6$o KZend_Cache_Backend_ZendPlatform6n ?Zend_Cache_Backend_Xcache6!m EZend_Cache_Backend_TwoLevels6l ;Zend_Cache_Backend_Test6k ?Zend_Cache_Backend_Static6j ?Zend_Cache_Backend_Sqlite6!i EZend_Cache_Backend_Memcached6$h KZend_Cache_Backend_Libmemcached6g ;Zend_Cache_Backend_File6!f EZend_Cache_Backend_BlackHole6e 9Zend_Cache_Backend_Apc6d %Zend_Barcode6c ?Zend_Barcode_Renderer_Svg6+b YZend_Barcode_Renderer_RendererAbstract6a ?Zend_Barcode_Renderer_Pdf6 ` CZend_Barcode_Renderer_Image6$_ KZend_Barcode_Renderer_Exception6^ =Zend_Barcode_Object_Upce6] =Zend_Barcode_Object_Upca6"\ GZend_Barcode_Object_Royalmail6 [ CZend_Barcode_Object_Postnet6Z AZend_Barcode_Object_Planet6'Y QZend_Barcode_Object_ObjectAbstract6!X EZend_Barcode_Object_Leitcode6W ?Zend_Barcode_Object_Itf146   h  ua;c'Pb(X6



s
I
 				z	S	)	]4Z/uS;x`= jN<oF'xV6zW6       ! =Zend_Db_Select_Exception6  -Zend_Db_Profiler6 9Zend_Db_Profiler_Query6 =Zend_Db_Profiler_Firebug6 AZend_Db_Profiler_Exception6 %Zend_Db_Expr6 /Zend_Db_Exception6 9Zend_Db_Adapter_Sqlsrv6% MZend_Db_Adapter_Sqlsrv_Exception6 AZend_Db_Adapter_Pdo_Sqlite6 ?Zend_Db_Adapter_Pdo_Pgsql6 ;Zend_Db_Adapter_Pdo_Oci6 ?Zend_Db_Adapter_Pdo_Mysql6 ?Zend_Db_Adapter_Pdo_Mssql6 ;Zend_Db_Adapter_Pdo_Ibm6  CZend_Db_Adapter_Pdo_Ibm_Ids6  CZend_Db_Adapter_Pdo_Ibm_Db26! EZend_Db_Adapter_Pdo_Abstract6 9Zend_Db_Adapter_Oracle6% MZend_Db_Adapter_Oracle_Exception6 9Zend_Db_Adapter_Mysqli6% MZend_Db_Adapter_Mysqli_Exception6 ?Zend_Db_Adapter_Exception6
 3Zend_Db_Adapter_Db26"	 GZend_Db_Adapter_Db2_Exception6 =Zend_Db_Adapter_Abstract6 Zend_Date6 3Zend_Date_Exception6 5Zend_Date_DateObject6 -Zend_Date_Cities6 'Zend_Currency6 ;Zend_Currency_Exception6 !Zend_Crypt6  )Zend_Crypt_Rsa6 1Zend_Crypt_Rsa_Key6~ ?Zend_Crypt_Rsa_Key_Public6} AZend_Crypt_Rsa_Key_Private6| +Zend_Crypt_Math6{ ?Zend_Crypt_Math_Exception6z AZend_Crypt_Math_BigInteger6#y IZend_Crypt_Math_BigInteger_Gmp6)x UZend_Crypt_Math_BigInteger_Exception6&w OZend_Crypt_Math_BigInteger_Bcmath6v +Zend_Crypt_Hmac6u ?Zend_Crypt_Hmac_Exception6t 5Zend_Crypt_Exception6s =Zend_Crypt_DiffieHellman6'r QZend_Crypt_DiffieHellman_Exception6!q EZend_Controller_Router_Route6(p SZend_Controller_Router_Route_Static6'o QZend_Controller_Router_Route_Regex6(n SZend_Controller_Router_Route_Module6*m WZend_Controller_Router_Route_Hostname6'l QZend_Controller_Router_Route_Chain6*k WZend_Controller_Router_Route_Abstract6#j IZend_Controller_Router_Rewrite6%i MZend_Controller_Router_Exception6$h KZend_Controller_Router_Abstract6*g WZend_Controller_Response_HttpTestCase6"f GZend_Controller_Response_Http6'e QZend_Controller_Response_Exception6!d EZend_Controller_Response_Cli6&c OZend_Controller_Response_Abstract6#b IZend_Controller_Request_Simple6)a UZend_Controller_Request_HttpTestCase6!` EZend_Controller_Request_Http6&_ OZend_Controller_Request_Exception6&^ OZend_Controller_Request_Apache4046%] MZend_Controller_Request_Abstract6&\ OZend_Controller_Plugin_PutHandler6([ SZend_Controller_Plugin_ErrorHandler6"Z GZend_Controller_Plugin_Broker6'Y QZend_Controller_Plugin_ActionStack6$X KZend_Controller_Plugin_Abstract6W 7Zend_Controller_Front6V ?Zend_Controller_Exception6(U SZend_Controller_Dispatcher_Standard6)T UZend_Controller_Dispatcher_Exception6(S SZend_Controller_Dispatcher_Abstract6R 9Zend_Controller_Action6(Q SZend_Controller_Action_HelperBroker66P oZend_Controller_Action_HelperBroker_PriorityStack6/O aZend_Controller_Action_Helper_ViewRenderer6&N OZend_Controller_Action_Helper_Url6-M ]Zend_Controller_Action_Helper_Redirector6'L QZend_Controller_Action_Helper_Json61K eZend_Controller_Action_Helper_FlashMessenger60J cZend_Controller_Action_Helper_ContextSwitch6(I SZend_Controller_Action_Helper_Cache6<H {Zend_Controller_Action_Helper_AutoCompleteScriptaculous63G iZend_Controller_Action_Helper_AutoCompleteDojo68F sZend_Controller_Action_Helper_AutoComplete_Abstract6.E _Zend_Controller_Action_Helper_AjaxContext6.D _Zend_Controller_Action_Helper_ActionStack6+C YZend_Controller_Action_Helper_Abstract6%B MZend_Controller_Action_Exception6A 3Zend_Console_Getopt6"@ GZend_Console_Getopt_Exception6? #Zend_Config6> -Zend_Config_Yaml6= +Zend_Config_Xml6< 1Zend_Config_Writer6; ;Zend_Config_Writer_Yaml6: 9Zend_Config_Writer_Xml6   c  T3Z9 x^8wZC'f6


}
O
+
				[	6	Z-S+z[D#sL%yU(b3V1Z4
             , [Zend_Dojo_View_Helper_ValidationTextBox6& OZend_Dojo_View_Helper_TimeTextBox6" GZend_Dojo_View_Helper_TextBox6# IZend_Dojo_View_Helper_Textarea6'  QZend_Dojo_View_Helper_TabContainer6' QZend_Dojo_View_Helper_SubmitButton6)~ UZend_Dojo_View_Helper_StackContainer6)} UZend_Dojo_View_Helper_SplitContainer6!| EZend_Dojo_View_Helper_Slider6){ UZend_Dojo_View_Helper_SimpleTextarea6&z OZend_Dojo_View_Helper_RadioButton6*y WZend_Dojo_View_Helper_PasswordTextBox6(x SZend_Dojo_View_Helper_NumberTextBox6(w SZend_Dojo_View_Helper_NumberSpinner6+v YZend_Dojo_View_Helper_HorizontalSlider6u AZend_Dojo_View_Helper_Form6*t WZend_Dojo_View_Helper_FilteringSelect6!s EZend_Dojo_View_Helper_Editor6r AZend_Dojo_View_Helper_Dojo6)q UZend_Dojo_View_Helper_Dojo_Container6)p UZend_Dojo_View_Helper_DijitContainer6 o CZend_Dojo_View_Helper_Dijit6&n OZend_Dojo_View_Helper_DateTextBox6&m OZend_Dojo_View_Helper_CustomDijit6*l WZend_Dojo_View_Helper_CurrencyTextBox6&k OZend_Dojo_View_Helper_ContentPane6#j IZend_Dojo_View_Helper_ComboBox6#i IZend_Dojo_View_Helper_CheckBox6!h EZend_Dojo_View_Helper_Button6*g WZend_Dojo_View_Helper_BorderContainer6(f SZend_Dojo_View_Helper_AccordionPane6-e ]Zend_Dojo_View_Helper_AccordionContainer6d =Zend_Dojo_View_Exception6c )Zend_Dojo_Form6b 9Zend_Dojo_Form_SubForm6*a WZend_Dojo_Form_Element_VerticalSlider6-` ]Zend_Dojo_Form_Element_ValidationTextBox6'_ QZend_Dojo_Form_Element_TimeTextBox6#^ IZend_Dojo_Form_Element_TextBox6$] KZend_Dojo_Form_Element_Textarea6(\ SZend_Dojo_Form_Element_SubmitButton6"[ GZend_Dojo_Form_Element_Slider6*Z WZend_Dojo_Form_Element_SimpleTextarea6'Y QZend_Dojo_Form_Element_RadioButton6+X YZend_Dojo_Form_Element_PasswordTextBox6)W UZend_Dojo_Form_Element_NumberTextBox6)V UZend_Dojo_Form_Element_NumberSpinner6,U [Zend_Dojo_Form_Element_HorizontalSlider6+T YZend_Dojo_Form_Element_FilteringSelect6"S GZend_Dojo_Form_Element_Editor6&R OZend_Dojo_Form_Element_DijitMulti6!Q EZend_Dojo_Form_Element_Dijit6'P QZend_Dojo_Form_Element_DateTextBox6+O YZend_Dojo_Form_Element_CurrencyTextBox6$N KZend_Dojo_Form_Element_ComboBox6$M KZend_Dojo_Form_Element_CheckBox6"L GZend_Dojo_Form_Element_Button6 K CZend_Dojo_Form_DisplayGroup6*J WZend_Dojo_Form_Decorator_TabContainer6,I [Zend_Dojo_Form_Decorator_StackContainer6,H [Zend_Dojo_Form_Decorator_SplitContainer6'G QZend_Dojo_Form_Decorator_DijitForm6*F WZend_Dojo_Form_Decorator_DijitElement6,E [Zend_Dojo_Form_Decorator_DijitContainer6)D UZend_Dojo_Form_Decorator_ContentPane6-C ]Zend_Dojo_Form_Decorator_BorderContainer6+B YZend_Dojo_Form_Decorator_AccordionPane60A cZend_Dojo_Form_Decorator_AccordionContainer6@ 3Zend_Dojo_Exception6? )Zend_Dojo_Data6> 5Zend_Dojo_BuildLayer6= !Zend_Debug6< Zend_Db6; 'Zend_Db_Table6: 5Zend_Db_Table_Select6#9 IZend_Db_Table_Select_Exception68 5Zend_Db_Table_Rowset6#7 IZend_Db_Table_Rowset_Exception6"6 GZend_Db_Table_Rowset_Abstract65 /Zend_Db_Table_Row6 4 CZend_Db_Table_Row_Exception63 AZend_Db_Table_Row_Abstract62 ;Zend_Db_Table_Exception61 =Zend_Db_Table_Definition60 9Zend_Db_Table_Abstract6/ /Zend_Db_Statement6. =Zend_Db_Statement_Sqlsrv6'- QZend_Db_Statement_Sqlsrv_Exception6, 7Zend_Db_Statement_Pdo6+ ?Zend_Db_Statement_Pdo_Oci6* ?Zend_Db_Statement_Pdo_Ibm6) =Zend_Db_Statement_Oracle6'( QZend_Db_Statement_Oracle_Exception6' =Zend_Db_Statement_Mysqli6'& QZend_Db_Statement_Mysqli_Exception6 % CZend_Db_Statement_Exception6$ 7Zend_Db_Statement_Db26$# KZend_Db_Statement_Db2_Exception6" )Zend_Db_Select6   _  gP9z`F%wK`AjG 



[
#				[	*g0zaK*a$Pp0Y cC*jP3                     c =Zend_Filter_Compress_Bz26b 5Zend_Filter_Callback6a 3Zend_Filter_Boolean6` 5Zend_Filter_BaseName6_ /Zend_Filter_Alpha6^ /Zend_Filter_Alnum6] 1Zend_File_Transfer6!\ EZend_File_Transfer_Exception6$[ KZend_File_Transfer_Adapter_Http6(Z SZend_File_Transfer_Adapter_Abstract6Y Zend_Feed6X -Zend_Feed_Writer6W ;Zend_Feed_Writer_Source6/V aZend_Feed_Writer_Renderer_RendererAbstract6'U QZend_Feed_Writer_Renderer_Feed_Rss6(T SZend_Feed_Writer_Renderer_Feed_Atom6/S aZend_Feed_Writer_Renderer_Feed_Atom_Source65R mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract6(Q SZend_Feed_Writer_Renderer_Entry_Rss6)P UZend_Feed_Writer_Renderer_Entry_Atom61O eZend_Feed_Writer_Renderer_Entry_Atom_Deleted6N 7Zend_Feed_Writer_Feed6'M QZend_Feed_Writer_Feed_FeedAbstract6<L {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry68K sZend_Feed_Writer_Extension_Threading_Renderer_Entry64J kZend_Feed_Writer_Extension_Slash_Renderer_Entry60I cZend_Feed_Writer_Extension_RendererAbstract64H kZend_Feed_Writer_Extension_ITunes_Renderer_Feed65G mZend_Feed_Writer_Extension_ITunes_Renderer_Entry6+F YZend_Feed_Writer_Extension_ITunes_Feed6,E [Zend_Feed_Writer_Extension_ITunes_Entry68D sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed69C uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry66B oZend_Feed_Writer_Extension_Content_Renderer_Entry62A gZend_Feed_Writer_Extension_Atom_Renderer_Feed66@ oZend_Feed_Writer_Exception_InvalidMethodException6? 9Zend_Feed_Writer_Entry6> =Zend_Feed_Writer_Deleted6= 'Zend_Feed_Rss6< -Zend_Feed_Reader6; =Zend_Feed_Reader_FeedSet6": GZend_Feed_Reader_FeedAbstract69 ?Zend_Feed_Reader_Feed_Rss68 AZend_Feed_Reader_Feed_Atom6&7 OZend_Feed_Reader_Feed_Atom_Source636 iZend_Feed_Reader_Extension_WellFormedWeb_Entry6,5 [Zend_Feed_Reader_Extension_Thread_Entry604 cZend_Feed_Reader_Extension_Syndication_Feed6+3 YZend_Feed_Reader_Extension_Slash_Entry6,2 [Zend_Feed_Reader_Extension_Podcast_Feed6-1 ]Zend_Feed_Reader_Extension_Podcast_Entry6,0 [Zend_Feed_Reader_Extension_FeedAbstract6-/ ]Zend_Feed_Reader_Extension_EntryAbstract6/. aZend_Feed_Reader_Extension_DublinCore_Feed60- cZend_Feed_Reader_Extension_DublinCore_Entry64, kZend_Feed_Reader_Extension_CreativeCommons_Feed65+ mZend_Feed_Reader_Extension_CreativeCommons_Entry6-* ]Zend_Feed_Reader_Extension_Content_Entry6)) UZend_Feed_Reader_Extension_Atom_Feed6*( WZend_Feed_Reader_Extension_Atom_Entry6#' IZend_Feed_Reader_EntryAbstract6& AZend_Feed_Reader_Entry_Rss6 % CZend_Feed_Reader_Entry_Atom6 $ CZend_Feed_Reader_Collection63# iZend_Feed_Reader_Collection_CollectionAbstract6)" UZend_Feed_Reader_Collection_Category6'! QZend_Feed_Reader_Collection_Author6  9Zend_Feed_Pubsubhubbub6& OZend_Feed_Pubsubhubbub_Subscriber6/ aZend_Feed_Pubsubhubbub_Subscriber_Callback6% MZend_Feed_Pubsubhubbub_Publisher6. _Zend_Feed_Pubsubhubbub_Model_Subscription6/ aZend_Feed_Pubsubhubbub_Model_ModelAbstract6( SZend_Feed_Pubsubhubbub_HttpResponse6% MZend_Feed_Pubsubhubbub_Exception6, [Zend_Feed_Pubsubhubbub_CallbackAbstract6 3Zend_Feed_Exception6 3Zend_Feed_Entry_Rss6 5Zend_Feed_Entry_Atom6 =Zend_Feed_Entry_Abstract6 /Zend_Feed_Element6 /Zend_Feed_Builder6 =Zend_Feed_Builder_Header6$ KZend_Feed_Builder_Header_Itunes6  CZend_Feed_Builder_Exception6 ;Zend_Feed_Builder_Entry6 )Zend_Feed_Atom6 1Zend_Feed_Abstract6 )Zend_Exception6
 )Zend_Dom_Query6	 7Zend_Dom_Query_Result6 =Zend_Dom_Query_Css2Xpath6 1Zend_Dom_Exception6 Zend_Dojo6) UZend_Dojo_View_Helper_VerticalSlider6   m  pO.\@"zY;!	|_=e6



`
7
					m	H	#c=b@a@xX8fE&\.}U+]4 'P QZend_Gdata_App_Extension_Generator6#O IZend_Gdata_App_Extension_Email6%N MZend_Gdata_App_Extension_Element6$M KZend_Gdata_App_Extension_Edited6#L IZend_Gdata_App_Extension_Draft6%K MZend_Gdata_App_Extension_Control6)J UZend_Gdata_App_Extension_Contributor6%I MZend_Gdata_App_Extension_Content6&H OZend_Gdata_App_Extension_Category6$G KZend_Gdata_App_Extension_Author6F =Zend_Gdata_App_Exception6E 5Zend_Gdata_App_Entry6,D [Zend_Gdata_App_CaptchaRequiredException6#C IZend_Gdata_App_BaseMediaSource6B 3Zend_Gdata_App_Base6*A WZend_Gdata_App_BadMethodCallException6!@ EZend_Gdata_App_AuthException6? Zend_Form6> /Zend_Form_SubForm6= 3Zend_Form_Exception6< /Zend_Form_Element6; ;Zend_Form_Element_Xhtml6: AZend_Form_Element_Textarea69 9Zend_Form_Element_Text68 =Zend_Form_Element_Submit67 =Zend_Form_Element_Select66 ;Zend_Form_Element_Reset65 ;Zend_Form_Element_Radio64 AZend_Form_Element_Password6"3 GZend_Form_Element_Multiselect6$2 KZend_Form_Element_MultiCheckbox61 ;Zend_Form_Element_Multi60 ;Zend_Form_Element_Image6/ =Zend_Form_Element_Hidden6. 9Zend_Form_Element_Hash6- 9Zend_Form_Element_File6 , CZend_Form_Element_Exception6+ AZend_Form_Element_Checkbox6* ?Zend_Form_Element_Captcha6) =Zend_Form_Element_Button6( 9Zend_Form_DisplayGroup6#' IZend_Form_Decorator_ViewScript6#& IZend_Form_Decorator_ViewHelper6 % CZend_Form_Decorator_Tooltip6($ SZend_Form_Decorator_PrepareElements6# ?Zend_Form_Decorator_Label6" ?Zend_Form_Decorator_Image6 ! CZend_Form_Decorator_HtmlTag6#  IZend_Form_Decorator_FormErrors6% MZend_Form_Decorator_FormElements6 =Zend_Form_Decorator_Form6 =Zend_Form_Decorator_File6! EZend_Form_Decorator_Fieldset6" GZend_Form_Decorator_Exception6 AZend_Form_Decorator_Errors6$ KZend_Form_Decorator_DtDdWrapper6$ KZend_Form_Decorator_Description6  CZend_Form_Decorator_Captcha6% MZend_Form_Decorator_Captcha_Word6! EZend_Form_Decorator_Callback6! EZend_Form_Decorator_Abstract6 #Zend_Filter6+ YZend_Filter_Word_UnderscoreToSeparator6& OZend_Filter_Word_UnderscoreToDash6+ YZend_Filter_Word_UnderscoreToCamelCase6* WZend_Filter_Word_SeparatorToSeparator6% MZend_Filter_Word_SeparatorToDash6* WZend_Filter_Word_SeparatorToCamelCase6( SZend_Filter_Word_Separator_Abstract6& OZend_Filter_Word_DashToUnderscore6%
 MZend_Filter_Word_DashToSeparator6%	 MZend_Filter_Word_DashToCamelCase6+ YZend_Filter_Word_CamelCaseToUnderscore6* WZend_Filter_Word_CamelCaseToSeparator6% MZend_Filter_Word_CamelCaseToDash6 7Zend_Filter_StripTags6 ?Zend_Filter_StripNewlines6 9Zend_Filter_StringTrim6 ?Zend_Filter_StringToUpper6 ?Zend_Filter_StringToLower6  5Zend_Filter_RealPath6 ;Zend_Filter_PregReplace6~ -Zend_Filter_Null6&} OZend_Filter_NormalizedToLocalized6&| OZend_Filter_LocalizedToNormalized6{ +Zend_Filter_Int6z /Zend_Filter_Input6y 7Zend_Filter_Inflector6x =Zend_Filter_HtmlEntities6w AZend_Filter_File_UpperCase6v ;Zend_Filter_File_Rename6u AZend_Filter_File_LowerCase6t =Zend_Filter_File_Encrypt6s =Zend_Filter_File_Decrypt6r 7Zend_Filter_Exception6q 3Zend_Filter_Encrypt6 p CZend_Filter_Encrypt_Openssl6o AZend_Filter_Encrypt_Mcrypt6n +Zend_Filter_Dir6m 1Zend_Filter_Digits6l 3Zend_Filter_Decrypt6k 9Zend_Filter_Decompress6j 5Zend_Filter_Compress6i =Zend_Filter_Compress_Zip6h =Zend_Filter_Compress_Tar6g =Zend_Filter_Compress_Rar6f =Zend_Filter_Compress_Lzf6e ;Zend_Filter_Compress_Gz6*d WZend_Filter_Compress_CompressAbstract6   `  jDwN(vO'yW0i7


|
M
#				z	U	<	j=wHg> wHS%zR$W0	~X1                   *0 WZend_Gdata_Extension_ExtendedProperty6%/ MZend_Gdata_Extension_EventStatus6#. IZend_Gdata_Extension_EntryLink6"- GZend_Gdata_Extension_Comments6&, OZend_Gdata_Extension_AttendeeType6(+ SZend_Gdata_Extension_AttendeeStatus6* +Zend_Gdata_Exif6) 5Zend_Gdata_Exif_Feed6#( IZend_Gdata_Exif_Extension_Time6#' IZend_Gdata_Exif_Extension_Tags6$& KZend_Gdata_Exif_Extension_Model6#% IZend_Gdata_Exif_Extension_Make6"$ GZend_Gdata_Exif_Extension_Iso6,# [Zend_Gdata_Exif_Extension_ImageUniqueId6$" KZend_Gdata_Exif_Extension_FStop6*! WZend_Gdata_Exif_Extension_FocalLength6$  KZend_Gdata_Exif_Extension_Flash6' QZend_Gdata_Exif_Extension_Exposure6' QZend_Gdata_Exif_Extension_Distance6 7Zend_Gdata_Exif_Entry6 -Zend_Gdata_Entry6 7Zend_Gdata_DublinCore6* WZend_Gdata_DublinCore_Extension_Title6, [Zend_Gdata_DublinCore_Extension_Subject6+ YZend_Gdata_DublinCore_Extension_Rights6. _Zend_Gdata_DublinCore_Extension_Publisher6- ]Zend_Gdata_DublinCore_Extension_Language6/ aZend_Gdata_DublinCore_Extension_Identifier6+ YZend_Gdata_DublinCore_Extension_Format60 cZend_Gdata_DublinCore_Extension_Description6) UZend_Gdata_DublinCore_Extension_Date6, [Zend_Gdata_DublinCore_Extension_Creator6 +Zend_Gdata_Docs6 7Zend_Gdata_Docs_Query6% MZend_Gdata_Docs_DocumentListFeed6& OZend_Gdata_Docs_DocumentListEntry6 9Zend_Gdata_ClientLogin6 3Zend_Gdata_Calendar6!
 EZend_Gdata_Calendar_ListFeed6"	 GZend_Gdata_Calendar_ListEntry6- ]Zend_Gdata_Calendar_Extension_WebContent6+ YZend_Gdata_Calendar_Extension_Timezone69 uZend_Gdata_Calendar_Extension_SendEventNotifications6+ YZend_Gdata_Calendar_Extension_Selected6+ YZend_Gdata_Calendar_Extension_QuickAdd6' QZend_Gdata_Calendar_Extension_Link6) UZend_Gdata_Calendar_Extension_Hidden6( SZend_Gdata_Calendar_Extension_Color6.  _Zend_Gdata_Calendar_Extension_AccessLevel6# IZend_Gdata_Calendar_EventQuery6"~ GZend_Gdata_Calendar_EventFeed6#} IZend_Gdata_Calendar_EventEntry6| -Zend_Gdata_Books6!{ EZend_Gdata_Books_VolumeQuery6 z CZend_Gdata_Books_VolumeFeed6!y EZend_Gdata_Books_VolumeEntry6+x YZend_Gdata_Books_Extension_Viewability6-w ]Zend_Gdata_Books_Extension_ThumbnailLink6&v OZend_Gdata_Books_Extension_Review6+u YZend_Gdata_Books_Extension_PreviewLink6(t SZend_Gdata_Books_Extension_InfoLink6-s ]Zend_Gdata_Books_Extension_Embeddability6)r UZend_Gdata_Books_Extension_BooksLink6-q ]Zend_Gdata_Books_Extension_BooksCategory6.p _Zend_Gdata_Books_Extension_AnnotationLink6$o KZend_Gdata_Books_CollectionFeed6%n MZend_Gdata_Books_CollectionEntry6m 1Zend_Gdata_AuthSub6l )Zend_Gdata_App6$k KZend_Gdata_App_VersionException6j 3Zend_Gdata_App_Util6#i IZend_Gdata_App_MediaFileSource6h ?Zend_Gdata_App_MediaEntry62g gZend_Gdata_App_LoggingHttpClientAdapterSocket6f AZend_Gdata_App_IOException6,e [Zend_Gdata_App_InvalidArgumentException6!d EZend_Gdata_App_HttpException6$c KZend_Gdata_App_FeedSourceParent6#b IZend_Gdata_App_FeedEntryParent6a 3Zend_Gdata_App_Feed6` =Zend_Gdata_App_Extension6!_ EZend_Gdata_App_Extension_Uri6%^ MZend_Gdata_App_Extension_Updated6#] IZend_Gdata_App_Extension_Title6"\ GZend_Gdata_App_Extension_Text6%[ MZend_Gdata_App_Extension_Summary6&Z OZend_Gdata_App_Extension_Subtitle6$Y KZend_Gdata_App_Extension_Source6$X KZend_Gdata_App_Extension_Rights6'W QZend_Gdata_App_Extension_Published6$V KZend_Gdata_App_Extension_Person6"U GZend_Gdata_App_Extension_Name6"T GZend_Gdata_App_Extension_Logo6"S GZend_Gdata_App_Extension_Link6 R CZend_Gdata_App_Extension_Id6"Q GZend_Gdata_App_Extension_Icon6   d  t@rH ]6|]0^:




^
8
					]	:	nK)v]@f?]/n<~M\.qM(       ' QZend_Gdata_Photos_Extension_Access6# IZend_Gdata_Photos_CommentEntry6! EZend_Gdata_Photos_AlbumQuery6  CZend_Gdata_Photos_AlbumFeed6! EZend_Gdata_Photos_AlbumEntry6 3Zend_Gdata_MimeFile6 ?Zend_Gdata_MimeBodyString6 AZend_Gdata_MediaMimeStream6 -Zend_Gdata_Media6 7Zend_Gdata_Media_Feed6*
 WZend_Gdata_Media_Extension_MediaTitle6.	 _Zend_Gdata_Media_Extension_MediaThumbnail6) UZend_Gdata_Media_Extension_MediaText60 cZend_Gdata_Media_Extension_MediaRestriction6+ YZend_Gdata_Media_Extension_MediaRating6+ YZend_Gdata_Media_Extension_MediaPlayer6- ]Zend_Gdata_Media_Extension_MediaKeywords6) UZend_Gdata_Media_Extension_MediaHash6* WZend_Gdata_Media_Extension_MediaGroup60 cZend_Gdata_Media_Extension_MediaDescription6+  YZend_Gdata_Media_Extension_MediaCredit6. _Zend_Gdata_Media_Extension_MediaCopyright6,~ [Zend_Gdata_Media_Extension_MediaContent6-} ]Zend_Gdata_Media_Extension_MediaCategory6| 9Zend_Gdata_Media_Entry6{ AZend_Gdata_Kind_EventEntry6z 7Zend_Gdata_HttpClient6*y WZend_Gdata_HttpAdapterStreamingSocket6)x UZend_Gdata_HttpAdapterStreamingProxy6w /Zend_Gdata_Health6v ;Zend_Gdata_Health_Query6&u OZend_Gdata_Health_ProfileListFeed6't QZend_Gdata_Health_ProfileListEntry6"s GZend_Gdata_Health_ProfileFeed6#r IZend_Gdata_Health_ProfileEntry6$q KZend_Gdata_Health_Extension_Ccr6p )Zend_Gdata_Geo6o 3Zend_Gdata_Geo_Feed6$n KZend_Gdata_Geo_Extension_GmlPos6&m OZend_Gdata_Geo_Extension_GmlPoint6)l UZend_Gdata_Geo_Extension_GeoRssWhere6k 5Zend_Gdata_Geo_Entry6j -Zend_Gdata_Gbase6"i GZend_Gdata_Gbase_SnippetQuery6!h EZend_Gdata_Gbase_SnippetFeed6"g GZend_Gdata_Gbase_SnippetEntry6f 9Zend_Gdata_Gbase_Query6e AZend_Gdata_Gbase_ItemQuery6d ?Zend_Gdata_Gbase_ItemFeed6c AZend_Gdata_Gbase_ItemEntry6b 7Zend_Gdata_Gbase_Feed6-a ]Zend_Gdata_Gbase_Extension_BaseAttribute6` 9Zend_Gdata_Gbase_Entry6_ -Zend_Gdata_Gapps6^ AZend_Gdata_Gapps_UserQuery6] ?Zend_Gdata_Gapps_UserFeed6\ AZend_Gdata_Gapps_UserEntry6&[ OZend_Gdata_Gapps_ServiceException6Z 9Zend_Gdata_Gapps_Query6 Y CZend_Gdata_Gapps_OwnerQuery6X AZend_Gdata_Gapps_OwnerFeed6 W CZend_Gdata_Gapps_OwnerEntry6#V IZend_Gdata_Gapps_NicknameQuery6"U GZend_Gdata_Gapps_NicknameFeed6#T IZend_Gdata_Gapps_NicknameEntry6!S EZend_Gdata_Gapps_MemberQuery6 R CZend_Gdata_Gapps_MemberFeed6!Q EZend_Gdata_Gapps_MemberEntry6 P CZend_Gdata_Gapps_GroupQuery6O AZend_Gdata_Gapps_GroupFeed6 N CZend_Gdata_Gapps_GroupEntry6%M MZend_Gdata_Gapps_Extension_Quota6(L SZend_Gdata_Gapps_Extension_Property6(K SZend_Gdata_Gapps_Extension_Nickname6$J KZend_Gdata_Gapps_Extension_Name6%I MZend_Gdata_Gapps_Extension_Login6)H UZend_Gdata_Gapps_Extension_EmailList6G 9Zend_Gdata_Gapps_Error6-F ]Zend_Gdata_Gapps_EmailListRecipientQuery6,E [Zend_Gdata_Gapps_EmailListRecipientFeed6-D ]Zend_Gdata_Gapps_EmailListRecipientEntry6$C KZend_Gdata_Gapps_EmailListQuery6#B IZend_Gdata_Gapps_EmailListFeed6$A KZend_Gdata_Gapps_EmailListEntry6@ +Zend_Gdata_Feed6? 5Zend_Gdata_Extension6> =Zend_Gdata_Extension_Who6= AZend_Gdata_Extension_Where6< ?Zend_Gdata_Extension_When6$; KZend_Gdata_Extension_Visibility6&: OZend_Gdata_Extension_Transparency6"9 GZend_Gdata_Extension_Reminder6-8 ]Zend_Gdata_Extension_RecurrenceException6$7 KZend_Gdata_Extension_Recurrence6 6 CZend_Gdata_Extension_Rating6'5 QZend_Gdata_Extension_OriginalEvent604 cZend_Gdata_Extension_OpenSearchTotalResults6.3 _Zend_Gdata_Extension_OpenSearchStartIndex602 cZend_Gdata_Extension_OpenSearchItemsPerPage6"1 GZend_Gdata_Extension_FeedLink6   X  yNh2	wKh:b=




f
L
3
					Y	&oEg>xK"n=Y+p@[+lB                                           .l _Zend_Gdata_YouTube_Extension_Relationship6*k WZend_Gdata_YouTube_Extension_Recorded6&j OZend_Gdata_YouTube_Extension_Racy6-i ]Zend_Gdata_YouTube_Extension_QueryString6)h UZend_Gdata_YouTube_Extension_Private6*g WZend_Gdata_YouTube_Extension_Position6/f aZend_Gdata_YouTube_Extension_PlaylistTitle6,e [Zend_Gdata_YouTube_Extension_PlaylistId6,d [Zend_Gdata_YouTube_Extension_Occupation6)c UZend_Gdata_YouTube_Extension_NoEmbed6'b QZend_Gdata_YouTube_Extension_Music6(a SZend_Gdata_YouTube_Extension_Movies6-` ]Zend_Gdata_YouTube_Extension_MediaRating6,_ [Zend_Gdata_YouTube_Extension_MediaGroup6-^ ]Zend_Gdata_YouTube_Extension_MediaCredit6.] _Zend_Gdata_YouTube_Extension_MediaContent6*\ WZend_Gdata_YouTube_Extension_Location6&[ OZend_Gdata_YouTube_Extension_Link6*Z WZend_Gdata_YouTube_Extension_LastName6*Y WZend_Gdata_YouTube_Extension_Hometown6)X UZend_Gdata_YouTube_Extension_Hobbies6(W SZend_Gdata_YouTube_Extension_Gender6+V YZend_Gdata_YouTube_Extension_FirstName6*U WZend_Gdata_YouTube_Extension_Duration6-T ]Zend_Gdata_YouTube_Extension_Description6+S YZend_Gdata_YouTube_Extension_CountHint6)R UZend_Gdata_YouTube_Extension_Control6)Q UZend_Gdata_YouTube_Extension_Company6'P QZend_Gdata_YouTube_Extension_Books6%O MZend_Gdata_YouTube_Extension_Age6)N UZend_Gdata_YouTube_Extension_AboutMe6#M IZend_Gdata_YouTube_ContactFeed6$L KZend_Gdata_YouTube_ContactEntry6#K IZend_Gdata_YouTube_CommentFeed6$J KZend_Gdata_YouTube_CommentEntry6$I KZend_Gdata_YouTube_ActivityFeed6%H MZend_Gdata_YouTube_ActivityEntry6G ;Zend_Gdata_Spreadsheets6*F WZend_Gdata_Spreadsheets_WorksheetFeed6+E YZend_Gdata_Spreadsheets_WorksheetEntry6,D [Zend_Gdata_Spreadsheets_SpreadsheetFeed6-C ]Zend_Gdata_Spreadsheets_SpreadsheetEntry6&B OZend_Gdata_Spreadsheets_ListQuery6%A MZend_Gdata_Spreadsheets_ListFeed6&@ OZend_Gdata_Spreadsheets_ListEntry6/? aZend_Gdata_Spreadsheets_Extension_RowCount6-> ]Zend_Gdata_Spreadsheets_Extension_Custom6/= aZend_Gdata_Spreadsheets_Extension_ColCount6+< YZend_Gdata_Spreadsheets_Extension_Cell6*; WZend_Gdata_Spreadsheets_DocumentQuery6&: OZend_Gdata_Spreadsheets_CellQuery6%9 MZend_Gdata_Spreadsheets_CellFeed6&8 OZend_Gdata_Spreadsheets_CellEntry67 -Zend_Gdata_Query66 /Zend_Gdata_Photos6 5 CZend_Gdata_Photos_UserQuery64 AZend_Gdata_Photos_UserFeed6 3 CZend_Gdata_Photos_UserEntry62 AZend_Gdata_Photos_TagEntry6!1 EZend_Gdata_Photos_PhotoQuery6 0 CZend_Gdata_Photos_PhotoFeed6!/ EZend_Gdata_Photos_PhotoEntry6&. OZend_Gdata_Photos_Extension_Width6'- QZend_Gdata_Photos_Extension_Weight6(, SZend_Gdata_Photos_Extension_Version6%+ MZend_Gdata_Photos_Extension_User6** WZend_Gdata_Photos_Extension_Timestamp6*) WZend_Gdata_Photos_Extension_Thumbnail6%( MZend_Gdata_Photos_Extension_Size6)' UZend_Gdata_Photos_Extension_Rotation6+& YZend_Gdata_Photos_Extension_QuotaLimit6-% ]Zend_Gdata_Photos_Extension_QuotaCurrent6)$ UZend_Gdata_Photos_Extension_Position6(# SZend_Gdata_Photos_Extension_PhotoId63" iZend_Gdata_Photos_Extension_NumPhotosRemaining6*! WZend_Gdata_Photos_Extension_NumPhotos6)  UZend_Gdata_Photos_Extension_Nickname6% MZend_Gdata_Photos_Extension_Name62 gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum6) UZend_Gdata_Photos_Extension_Location6# IZend_Gdata_Photos_Extension_Id6' QZend_Gdata_Photos_Extension_Height62 gZend_Gdata_Photos_Extension_CommentingEnabled6- ]Zend_Gdata_Photos_Extension_CommentCount6' QZend_Gdata_Photos_Extension_Client6) UZend_Gdata_Photos_Extension_Checksum6* WZend_Gdata_Photos_Extension_BytesUsed6( SZend_Gdata_Photos_Extension_AlbumId6   b  xHhBpCsM2Y6




d
D
 					W	 wS1c=!zMi@ Q)_=a4zcD%                 "N GZend_Json_Server_Request_Http6M AZend_Json_Server_Exception6L 9Zend_Json_Server_Error6K 9Zend_Json_Server_Cache6J )Zend_Json_Expr6I 3Zend_Json_Exception6H /Zend_Json_Encoder6G /Zend_Json_Decoder6F 'Zend_InfoCard6-E ]Zend_InfoCard_Xml_SecurityTokenReference6D AZend_InfoCard_Xml_Security6)C UZend_InfoCard_Xml_Security_Transform64B kZend_InfoCard_Xml_Security_Transform_XmlExcC14N63A iZend_InfoCard_Xml_Security_Transform_Exception6<@ {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignature6)? UZend_InfoCard_Xml_Security_Exception6> ?Zend_InfoCard_Xml_KeyInfo6&= OZend_InfoCard_Xml_KeyInfo_XmlDSig6&< OZend_InfoCard_Xml_KeyInfo_Default6'; QZend_InfoCard_Xml_KeyInfo_Abstract6 : CZend_InfoCard_Xml_Exception6#9 IZend_InfoCard_Xml_EncryptedKey6$8 KZend_InfoCard_Xml_EncryptedData6+7 YZend_InfoCard_Xml_EncryptedData_XmlEnc6-6 ]Zend_InfoCard_Xml_EncryptedData_Abstract65 ?Zend_InfoCard_Xml_Element6 4 CZend_InfoCard_Xml_Assertion6%3 MZend_InfoCard_Xml_Assertion_Saml62 ;Zend_InfoCard_Exception6%1 MZend_InfoCard_Exception_Abstract60 5Zend_InfoCard_Claims6/ 5Zend_InfoCard_Cipher65. mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc65- mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc64, kZend_InfoCard_Cipher_Symmetric_Adapter_Abstract6)+ UZend_InfoCard_Cipher_Pki_Adapter_Rsa6.* _Zend_InfoCard_Cipher_Pki_Adapter_Abstract6#) IZend_InfoCard_Cipher_Exception6$( KZend_InfoCard_Adapter_Exception6"' GZend_InfoCard_Adapter_Default6& 3Zend_Http_UserAgent6"% GZend_Http_UserAgent_Validator6$ =Zend_Http_UserAgent_Text6(# SZend_Http_UserAgent_Storage_Session6." _Zend_Http_UserAgent_Storage_NonPersistent6*! WZend_Http_UserAgent_Storage_Exception6  =Zend_Http_UserAgent_Spam6 ?Zend_Http_UserAgent_Probe6  CZend_Http_UserAgent_Offline6 AZend_Http_UserAgent_Mobile6 =Zend_Http_UserAgent_Feed6+ YZend_Http_UserAgent_Features_Exception62 gZend_Http_UserAgent_Features_Adapter_WurflApi63 iZend_Http_UserAgent_Features_Adapter_TeraWurfl65 mZend_Http_UserAgent_Features_Adapter_DeviceAtlas6" GZend_Http_UserAgent_Exception6 ?Zend_Http_UserAgent_Email6  CZend_Http_UserAgent_Desktop6  CZend_Http_UserAgent_Console6  CZend_Http_UserAgent_Checker6 ;Zend_Http_UserAgent_Bot6' QZend_Http_UserAgent_AbstractDevice6 1Zend_Http_Response6 ?Zend_Http_Response_Stream6 3Zend_Http_Exception6 3Zend_Http_CookieJar6 -Zend_Http_Cookie6 -Zend_Http_Client6
 AZend_Http_Client_Exception6"	 GZend_Http_Client_Adapter_Test6$ KZend_Http_Client_Adapter_Socket6# IZend_Http_Client_Adapter_Proxy6' QZend_Http_Client_Adapter_Exception6" GZend_Http_Client_Adapter_Curl6 !Zend_Gdata6 1Zend_Gdata_YouTube6" GZend_Gdata_YouTube_VideoQuery6! EZend_Gdata_YouTube_VideoFeed6"  GZend_Gdata_YouTube_VideoEntry6( SZend_Gdata_YouTube_UserProfileEntry6(~ SZend_Gdata_YouTube_SubscriptionFeed6)} UZend_Gdata_YouTube_SubscriptionEntry6)| UZend_Gdata_YouTube_PlaylistVideoFeed6*{ WZend_Gdata_YouTube_PlaylistVideoEntry6(z SZend_Gdata_YouTube_PlaylistListFeed6)y UZend_Gdata_YouTube_PlaylistListEntry6"x GZend_Gdata_YouTube_MediaEntry6!w EZend_Gdata_YouTube_InboxFeed6"v GZend_Gdata_YouTube_InboxEntry6)u UZend_Gdata_YouTube_Extension_VideoId6*t WZend_Gdata_YouTube_Extension_Username6*s WZend_Gdata_YouTube_Extension_Uploaded6'r QZend_Gdata_YouTube_Extension_Token6(q SZend_Gdata_YouTube_Extension_Status6,p [Zend_Gdata_YouTube_Extension_Statistics6'o QZend_Gdata_YouTube_Extension_State6(n SZend_Gdata_YouTube_Extension_School6-m ]Zend_Gdata_YouTube_Extension_ReleaseDate6   s  qT;)zL/	}Z9jB R



Q
*
					~	S	2	cJ6uS4bCb=zZ7bC$sN-lE   "A GZend_Markup_Renderer_Html_Img6+@ YZend_Markup_Renderer_Html_HtmlAbstract6#? IZend_Markup_Renderer_Html_Code6#> IZend_Markup_Renderer_Exception6= AZend_Markup_Parser_Textile6!< EZend_Markup_Parser_Exception6; ?Zend_Markup_Parser_Bbcode6: 7Zend_Markup_Exception69 Zend_Mail68 =Zend_Mail_Transport_Smtp6!7 EZend_Mail_Transport_Sendmail66 =Zend_Mail_Transport_File6"5 GZend_Mail_Transport_Exception6!4 EZend_Mail_Transport_Abstract63 /Zend_Mail_Storage6'2 QZend_Mail_Storage_Writable_Maildir61 9Zend_Mail_Storage_Pop360 9Zend_Mail_Storage_Mbox6/ ?Zend_Mail_Storage_Maildir6. 9Zend_Mail_Storage_Imap6- =Zend_Mail_Storage_Folder6", GZend_Mail_Storage_Folder_Mbox6%+ MZend_Mail_Storage_Folder_Maildir6 * CZend_Mail_Storage_Exception6) AZend_Mail_Storage_Abstract6( ;Zend_Mail_Protocol_Smtp6'' QZend_Mail_Protocol_Smtp_Auth_Plain6'& QZend_Mail_Protocol_Smtp_Auth_Login6)% UZend_Mail_Protocol_Smtp_Auth_Crammd56$ ;Zend_Mail_Protocol_Pop36# ;Zend_Mail_Protocol_Imap6!" EZend_Mail_Protocol_Exception6 ! CZend_Mail_Protocol_Abstract6  )Zend_Mail_Part6 3Zend_Mail_Part_File6 /Zend_Mail_Message6 9Zend_Mail_Message_File6 3Zend_Mail_Exception6 Zend_Log6  CZend_Log_Writer_ZendMonitor6 9Zend_Log_Writer_Syslog6 9Zend_Log_Writer_Stream6 5Zend_Log_Writer_Null6 5Zend_Log_Writer_Mock6 5Zend_Log_Writer_Mail6 ;Zend_Log_Writer_Firebug6 1Zend_Log_Writer_Db6 =Zend_Log_Writer_Abstract6 9Zend_Log_Formatter_Xml6 ?Zend_Log_Formatter_Simple6 AZend_Log_Formatter_Firebug6 =Zend_Log_Filter_Suppress6 =Zend_Log_Filter_Priority6 ;Zend_Log_Filter_Message6 =Zend_Log_Filter_Abstract6
 1Zend_Log_Exception6	 #Zend_Locale6 -Zend_Locale_Math6 =Zend_Locale_Math_PhpMath6 AZend_Locale_Math_Exception6 1Zend_Locale_Format6 7Zend_Locale_Exception6 -Zend_Locale_Data6! EZend_Locale_Data_Translation6 #Zend_Loader6  =Zend_Loader_PluginLoader6' QZend_Loader_PluginLoader_Exception6~ 7Zend_Loader_Exception6} 9Zend_Loader_Autoloader6$| KZend_Loader_Autoloader_Resource6{ Zend_Ldap6z )Zend_Ldap_Node6y 7Zend_Ldap_Node_Schema6#x IZend_Ldap_Node_Schema_OpenLdap6/w aZend_Ldap_Node_Schema_ObjectClass_OpenLdap66v oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectory6u AZend_Ldap_Node_Schema_Item61t eZend_Ldap_Node_Schema_AttributeType_OpenLdap68s sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory6*r WZend_Ldap_Node_Schema_ActiveDirectory6q 9Zend_Ldap_Node_RootDse6$p KZend_Ldap_Node_RootDse_OpenLdap6&o OZend_Ldap_Node_RootDse_eDirectory6+n YZend_Ldap_Node_RootDse_ActiveDirectory6m ?Zend_Ldap_Node_Collection6$l KZend_Ldap_Node_ChildrenIterator6k ;Zend_Ldap_Node_Abstract6j 9Zend_Ldap_Ldif_Encoder6i -Zend_Ldap_Filter6h ;Zend_Ldap_Filter_String6g 3Zend_Ldap_Filter_Or6f 5Zend_Ldap_Filter_Not6e 7Zend_Ldap_Filter_Mask6d =Zend_Ldap_Filter_Logical6c AZend_Ldap_Filter_Exception6b 5Zend_Ldap_Filter_And6a ?Zend_Ldap_Filter_Abstract6` 3Zend_Ldap_Exception6_ %Zend_Ldap_Dn6^ 3Zend_Ldap_Converter6"] GZend_Ldap_Converter_Exception6\ 5Zend_Ldap_Collection6*[ WZend_Ldap_Collection_Iterator_Default6Z 3Zend_Ldap_Attribute6Y #Zend_Layout6X 7Zend_Layout_Exception6)W UZend_Layout_Controller_Plugin_Layout60V cZend_Layout_Controller_Action_Helper_Layout6U Zend_Json6T -Zend_Json_Server6S 5Zend_Json_Server_Smd6!R EZend_Json_Server_Smd_Service6Q ?Zend_Json_Server_Response6#P IZend_Json_Server_Response_Http6O =Zend_Json_Server_Request6   w cI+eA jI.{]B!c>





m
T
8

					o	R	:	 	Z:" i>gD&nZ5sIwZ7y[=uW7             8 +Zend_Pdf_Action67 3Zend_Pdf_Action_URI66 ;Zend_Pdf_Action_Unknown65 7Zend_Pdf_Action_Trans64 9Zend_Pdf_Action_Thread63 AZend_Pdf_Action_SubmitForm62 7Zend_Pdf_Action_Sound6 1 CZend_Pdf_Action_SetOCGState60 ?Zend_Pdf_Action_ResetForm6/ ?Zend_Pdf_Action_Rendition6. 7Zend_Pdf_Action_Named6- 7Zend_Pdf_Action_Movie6, 9Zend_Pdf_Action_Launch6+ AZend_Pdf_Action_JavaScript6* AZend_Pdf_Action_ImportData6) 5Zend_Pdf_Action_Hide6( 7Zend_Pdf_Action_GoToR6' 7Zend_Pdf_Action_GoToE6& AZend_Pdf_Action_GoTo3DView6% 5Zend_Pdf_Action_GoTo6$ )Zend_Paginator6-# ]Zend_Paginator_SerializableLimitIterator6*" WZend_Paginator_ScrollingStyle_Sliding6*! WZend_Paginator_ScrollingStyle_Jumping6*  WZend_Paginator_ScrollingStyle_Elastic6& OZend_Paginator_ScrollingStyle_All6 =Zend_Paginator_Exception6  CZend_Paginator_Adapter_Null6$ KZend_Paginator_Adapter_Iterator6) UZend_Paginator_Adapter_DbTableSelect6$ KZend_Paginator_Adapter_DbSelect6! EZend_Paginator_Adapter_Array6 #Zend_OpenId6 5Zend_OpenId_Provider6 ?Zend_OpenId_Provider_User6& OZend_OpenId_Provider_User_Session6! EZend_OpenId_Provider_Storage6& OZend_OpenId_Provider_Storage_File6 7Zend_OpenId_Extension6 AZend_OpenId_Extension_Sreg6 7Zend_OpenId_Exception6 5Zend_OpenId_Consumer6! EZend_OpenId_Consumer_Storage6& OZend_OpenId_Consumer_Storage_File6 !Zend_Oauth6 -Zend_Oauth_Token6
 =Zend_Oauth_Token_Request6'	 QZend_Oauth_Token_AuthorizedRequest6 ;Zend_Oauth_Token_Access6+ YZend_Oauth_Signature_SignatureAbstract6 =Zend_Oauth_Signature_Rsa6# IZend_Oauth_Signature_Plaintext6 ?Zend_Oauth_Signature_Hmac6 +Zend_Oauth_Http6 ;Zend_Oauth_Http_Utility6& OZend_Oauth_Http_UserAuthorization6!  EZend_Oauth_Http_RequestToken6  CZend_Oauth_Http_AccessToken6~ 5Zend_Oauth_Exception6} 3Zend_Oauth_Consumer6| /Zend_Oauth_Config6{ /Zend_Oauth_Client6z +Zend_Navigation6y 5Zend_Navigation_Page6x =Zend_Navigation_Page_Uri6w =Zend_Navigation_Page_Mvc6v ?Zend_Navigation_Exception6u ?Zend_Navigation_Container6t Zend_Mime6s )Zend_Mime_Part6r /Zend_Mime_Message6q 3Zend_Mime_Exception6p -Zend_Mime_Decode6o #Zend_Memory6n /Zend_Memory_Value6m 3Zend_Memory_Manager6l 7Zend_Memory_Exception6k 7Zend_Memory_Container6"j GZend_Memory_Container_Movable6!i EZend_Memory_Container_Locked6!h EZend_Memory_AccessController6g 3Zend_Measure_Weight6f 3Zend_Measure_Volume6%e MZend_Measure_Viscosity_Kinematic6#d IZend_Measure_Viscosity_Dynamic6c 3Zend_Measure_Torque6b /Zend_Measure_Time6a =Zend_Measure_Temperature6` 1Zend_Measure_Speed6_ 7Zend_Measure_Pressure6^ 1Zend_Measure_Power6] 3Zend_Measure_Number6\ 9Zend_Measure_Lightness6[ 3Zend_Measure_Length6Z ?Zend_Measure_Illumination6Y 9Zend_Measure_Frequency6X 1Zend_Measure_Force6W =Zend_Measure_Flow_Volume6V 9Zend_Measure_Flow_Mole6U 9Zend_Measure_Flow_Mass6T 9Zend_Measure_Exception6S 3Zend_Measure_Energy6R 5Zend_Measure_Density6Q 5Zend_Measure_Current6 P CZend_Measure_Cooking_Weight6 O CZend_Measure_Cooking_Volume6N =Zend_Measure_Capacitance6M 3Zend_Measure_Binary6L /Zend_Measure_Area6K 1Zend_Measure_Angle6J ?Zend_Measure_Acceleration6I 7Zend_Measure_Abstract6H #Zend_Markup6G 7Zend_Markup_TokenList6F /Zend_Markup_Token6*E WZend_Markup_Renderer_RendererAbstract6D ?Zend_Markup_Renderer_Html6"C GZend_Markup_Renderer_Html_Url6#B IZend_Markup_Renderer_Html_List6   b  pT3pT3r:_:y[:



|
\
5
					h	>	a;bL5\4b,KRd)^9                                       $ KZend_Pdf_Resource_GraphicsState6 9Zend_Pdf_Resource_Font6! EZend_Pdf_Resource_Font_Type06" GZend_Pdf_Resource_Font_Simple6+ YZend_Pdf_Resource_Font_Simple_Standard68 sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats66 oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman67 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic6; yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic65 mZend_Pdf_Resource_Font_Simple_Standard_TimesBold62 gZend_Pdf_Resource_Font_Simple_Standard_Symbol6< {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaOblique6A Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique69 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold65 mZend_Pdf_Resource_Font_Simple_Standard_Helvetica6: wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique6>
 Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique67	 qZend_Pdf_Resource_Font_Simple_Standard_CourierBold63 iZend_Pdf_Resource_Font_Simple_Standard_Courier6) UZend_Pdf_Resource_Font_Simple_Parsed62 gZend_Pdf_Resource_Font_Simple_Parsed_TrueType6* WZend_Pdf_Resource_Font_FontDescriptor6% MZend_Pdf_Resource_Font_Extracted6# IZend_Pdf_Resource_Font_CidFont6, [Zend_Pdf_Resource_Font_CidFont_TrueType6  CZend_Pdf_Resource_Extractor6$  KZend_Pdf_Resource_ContentStream63 iZend_Pdf_RecursivelyIteratableObjectsContainer6~ +Zend_Pdf_Parser6} 'Zend_Pdf_Page6| -Zend_Pdf_Outline6{ ;Zend_Pdf_Outline_Loaded6z =Zend_Pdf_Outline_Created6y /Zend_Pdf_NameTree6x )Zend_Pdf_Image6w 'Zend_Pdf_Font6v ?Zend_Pdf_Filter_RunLength6 u CZend_Pdf_Filter_Compression6$t KZend_Pdf_Filter_Compression_Lzw6&s OZend_Pdf_Filter_Compression_Flate6r =Zend_Pdf_Filter_AsciiHex6q ;Zend_Pdf_Filter_Ascii856"p GZend_Pdf_FileParserDataSource6)o UZend_Pdf_FileParserDataSource_String6'n QZend_Pdf_FileParserDataSource_File6m 3Zend_Pdf_FileParser6l ?Zend_Pdf_FileParser_Image6"k GZend_Pdf_FileParser_Image_Png6j =Zend_Pdf_FileParser_Font6&i OZend_Pdf_FileParser_Font_OpenType6/h aZend_Pdf_FileParser_Font_OpenType_TrueType6g 1Zend_Pdf_Exception6f ;Zend_Pdf_ElementFactory6"e GZend_Pdf_ElementFactory_Proxy6d -Zend_Pdf_Element6c ;Zend_Pdf_Element_String6#b IZend_Pdf_Element_String_Binary6a ;Zend_Pdf_Element_Stream6` AZend_Pdf_Element_Reference6%_ MZend_Pdf_Element_Reference_Table6'^ QZend_Pdf_Element_Reference_Context6] ;Zend_Pdf_Element_Object6#\ IZend_Pdf_Element_Object_Stream6[ =Zend_Pdf_Element_Numeric6Z 7Zend_Pdf_Element_Null6Y 7Zend_Pdf_Element_Name6 X CZend_Pdf_Element_Dictionary6W =Zend_Pdf_Element_Boolean6V 9Zend_Pdf_Element_Array6U 5Zend_Pdf_Destination6T ?Zend_Pdf_Destination_Zoom6!S EZend_Pdf_Destination_Unknown6R AZend_Pdf_Destination_Named6'Q QZend_Pdf_Destination_FitVertically6&P OZend_Pdf_Destination_FitRectangle6)O UZend_Pdf_Destination_FitHorizontally62N gZend_Pdf_Destination_FitBoundingBoxVertically64M kZend_Pdf_Destination_FitBoundingBoxHorizontally6(L SZend_Pdf_Destination_FitBoundingBox6K =Zend_Pdf_Destination_Fit6"J GZend_Pdf_Destination_Explicit6I )Zend_Pdf_Color6H 1Zend_Pdf_Color_Rgb6G 3Zend_Pdf_Color_Html6F =Zend_Pdf_Color_GrayScale6E 3Zend_Pdf_Color_Cmyk6D 'Zend_Pdf_Cmap6C AZend_Pdf_Cmap_TrimmedTable6!B EZend_Pdf_Cmap_SegmentToDelta6A AZend_Pdf_Cmap_ByteEncoding6&@ OZend_Pdf_Cmap_ByteEncoding_Static6? +Zend_Pdf_Canvas6> =Zend_Pdf_Canvas_Abstract6= 3Zend_Pdf_Annotation6< =Zend_Pdf_Annotation_Text6; AZend_Pdf_Annotation_Markup6: =Zend_Pdf_Annotation_Link6'9 QZend_Pdf_Annotation_FileAttachment6   b  rK)fA0kH/uW2~c8




q
L
+
						h	G	1	rZ7 }0q$]#p@kBb6q5                     "| GZend_Search_Lucene_Index_Term6+{ YZend_Search_Lucene_Index_SegmentWriter68z sZend_Search_Lucene_Index_SegmentWriter_StreamWriter6:y wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter6+x YZend_Search_Lucene_Index_SegmentMerger6)w UZend_Search_Lucene_Index_SegmentInfo6'v QZend_Search_Lucene_Index_FieldInfo6(u SZend_Search_Lucene_Index_DocsFilter6.t _Zend_Search_Lucene_Index_DictionaryLoader6!s EZend_Search_Lucene_FSMAction6r 9Zend_Search_Lucene_FSM6q =Zend_Search_Lucene_Field6!p EZend_Search_Lucene_Exception6 o CZend_Search_Lucene_Document6%n MZend_Search_Lucene_Document_Xlsx6%m MZend_Search_Lucene_Document_Pptx6(l SZend_Search_Lucene_Document_OpenXml6%k MZend_Search_Lucene_Document_Html6*j WZend_Search_Lucene_Document_Exception6%i MZend_Search_Lucene_Document_Docx6,h [Zend_Search_Lucene_Analysis_TokenFilter66g oZend_Search_Lucene_Analysis_TokenFilter_StopWords67f qZend_Search_Lucene_Analysis_TokenFilter_ShortWords6:e wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf866d oZend_Search_Lucene_Analysis_TokenFilter_LowerCase6&c OZend_Search_Lucene_Analysis_Token6)b UZend_Search_Lucene_Analysis_Analyzer60a cZend_Search_Lucene_Analysis_Analyzer_Common68` sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num6I_ Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive65^ mZend_Search_Lucene_Analysis_Analyzer_Common_Utf86F] Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive68\ sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum6I[ Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive65Z mZend_Search_Lucene_Analysis_Analyzer_Common_Text6FY Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive6X 7Zend_Search_Exception6W -Zend_Rest_Server6V AZend_Rest_Server_Exception6U +Zend_Rest_Route6T 3Zend_Rest_Exception6S 5Zend_Rest_Controller6R -Zend_Rest_Client6Q ;Zend_Rest_Client_Result6&P OZend_Rest_Client_Result_Exception6O AZend_Rest_Client_Exception6N 'Zend_Registry6M =Zend_Reflection_Property6L ?Zend_Reflection_Parameter6K 9Zend_Reflection_Method6J =Zend_Reflection_Function6I 5Zend_Reflection_File6H ?Zend_Reflection_Extension6G ?Zend_Reflection_Exception6F =Zend_Reflection_Docblock6!E EZend_Reflection_Docblock_Tag6(D SZend_Reflection_Docblock_Tag_Return6'C QZend_Reflection_Docblock_Tag_Param6B 7Zend_Reflection_Class6A !Zend_Queue6@ 9Zend_Queue_Stomp_Frame6? ;Zend_Queue_Stomp_Client6'> QZend_Queue_Stomp_Client_Connection6= 1Zend_Queue_Message6#< IZend_Queue_Message_PlatformJob6 ; CZend_Queue_Message_Iterator6: 5Zend_Queue_Exception6(9 SZend_Queue_Adapter_PlatformJobQueue68 ;Zend_Queue_Adapter_Null6!7 EZend_Queue_Adapter_Memcacheq66 7Zend_Queue_Adapter_Db6 5 CZend_Queue_Adapter_Db_Queue6"4 GZend_Queue_Adapter_Db_Message63 =Zend_Queue_Adapter_Array6'2 QZend_Queue_Adapter_AdapterAbstract6 1 CZend_Queue_Adapter_Activemq60 -Zend_ProgressBar6/ AZend_ProgressBar_Exception6. =Zend_ProgressBar_Adapter6$- KZend_ProgressBar_Adapter_JsPush6$, KZend_ProgressBar_Adapter_JsPull6'+ QZend_ProgressBar_Adapter_Exception6%* MZend_ProgressBar_Adapter_Console6) Zend_Pdf6!( EZend_Pdf_UpdateInfoContainer6' -Zend_Pdf_Trailer6& ;Zend_Pdf_Trailer_Keeper6% AZend_Pdf_Trailer_Generator6$ +Zend_Pdf_Target6# )Zend_Pdf_Style6" 7Zend_Pdf_StringParser6! /Zend_Pdf_Resource6  ?Zend_Pdf_Resource_Unified6# IZend_Pdf_Resource_ImageFactory6 ;Zend_Pdf_Resource_Image6! EZend_Pdf_Resource_Image_Tiff6  CZend_Pdf_Resource_Image_Png6! EZend_Pdf_Resource_Image_Jpeg6   Y  zS b2n?U'm7



R
				W	&f=vN\7nV9 sN) ]4a9zO$                 .U _Zend_Service_Amazon_Ec2_Availabilityzones6%T MZend_Service_Amazon_Ec2_Abstract6'S QZend_Service_Amazon_CustomerReview6'R QZend_Service_Amazon_Authentication6*Q WZend_Service_Amazon_Authentication_V26*P WZend_Service_Amazon_Authentication_V16*O WZend_Service_Amazon_Authentication_S361N eZend_Service_Amazon_Authentication_Exception6$M KZend_Service_Amazon_Accessories6!L EZend_Service_Amazon_Abstract6K 5Zend_Service_Akismet6J 7Zend_Service_Abstract6I 9Zend_Server_Reflection6'H QZend_Server_Reflection_ReturnValue6%G MZend_Server_Reflection_Prototype6%F MZend_Server_Reflection_Parameter6 E CZend_Server_Reflection_Node6"D GZend_Server_Reflection_Method6$C KZend_Server_Reflection_Function6-B ]Zend_Server_Reflection_Function_Abstract6%A MZend_Server_Reflection_Exception6!@ EZend_Server_Reflection_Class6!? EZend_Server_Method_Prototype6!> EZend_Server_Method_Parameter6"= GZend_Server_Method_Definition6 < CZend_Server_Method_Callback6; 7Zend_Server_Exception6: 9Zend_Server_Definition69 /Zend_Server_Cache68 5Zend_Server_Abstract67 +Zend_Serializer66 ?Zend_Serializer_Exception6!5 EZend_Serializer_Adapter_Wddx6)4 UZend_Serializer_Adapter_PythonPickle6)3 UZend_Serializer_Adapter_PhpSerialize6$2 KZend_Serializer_Adapter_PhpCode6!1 EZend_Serializer_Adapter_Json6%0 MZend_Serializer_Adapter_Igbinary6!/ EZend_Serializer_Adapter_Amf36!. EZend_Serializer_Adapter_Amf06,- [Zend_Serializer_Adapter_AdapterAbstract6, 1Zend_Search_Lucene60+ cZend_Search_Lucene_TermStreamsPriorityQueue6$* KZend_Search_Lucene_Storage_File6+) YZend_Search_Lucene_Storage_File_Memory6/( aZend_Search_Lucene_Storage_File_Filesystem6)' UZend_Search_Lucene_Storage_Directory64& kZend_Search_Lucene_Storage_Directory_Filesystem6%% MZend_Search_Lucene_Search_Weight6*$ WZend_Search_Lucene_Search_Weight_Term6,# [Zend_Search_Lucene_Search_Weight_Phrase6/" aZend_Search_Lucene_Search_Weight_MultiTerm6+! YZend_Search_Lucene_Search_Weight_Empty6-  ]Zend_Search_Lucene_Search_Weight_Boolean6) UZend_Search_Lucene_Search_Similarity61 eZend_Search_Lucene_Search_Similarity_Default6) UZend_Search_Lucene_Search_QueryToken63 iZend_Search_Lucene_Search_QueryParserException61 eZend_Search_Lucene_Search_QueryParserContext6* WZend_Search_Lucene_Search_QueryParser6) UZend_Search_Lucene_Search_QueryLexer6' QZend_Search_Lucene_Search_QueryHit6) UZend_Search_Lucene_Search_QueryEntry6. _Zend_Search_Lucene_Search_QueryEntry_Term62 gZend_Search_Lucene_Search_QueryEntry_Subquery60 cZend_Search_Lucene_Search_QueryEntry_Phrase6$ KZend_Search_Lucene_Search_Query6- ]Zend_Search_Lucene_Search_Query_Wildcard6) UZend_Search_Lucene_Search_Query_Term6* WZend_Search_Lucene_Search_Query_Range62 gZend_Search_Lucene_Search_Query_Preprocessing67 qZend_Search_Lucene_Search_Query_Preprocessing_Term69 uZend_Search_Lucene_Search_Query_Preprocessing_Phrase68 sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy6+ YZend_Search_Lucene_Search_Query_Phrase6.
 _Zend_Search_Lucene_Search_Query_MultiTerm62	 gZend_Search_Lucene_Search_Query_Insignificant6* WZend_Search_Lucene_Search_Query_Fuzzy6* WZend_Search_Lucene_Search_Query_Empty6, [Zend_Search_Lucene_Search_Query_Boolean62 gZend_Search_Lucene_Search_Highlighter_Default6: wZend_Search_Lucene_Search_BooleanExpressionRecognizer6 =Zend_Search_Lucene_Proxy6% MZend_Search_Lucene_PriorityQueue6/ aZend_Search_Lucene_Interface_MultiSearcher6#  IZend_Search_Lucene_LockManager6$ KZend_Search_Lucene_Index_Writer60~ cZend_Search_Lucene_Index_TermsPriorityQueue6&} OZend_Search_Lucene_Index_TermInfo6   I  ]7\3pO%mG(uG"




o
K
#				`	%w1k$yJc2B3(e                         U +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequest6V -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequest6a CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequest6Z 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequest6T )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequest6R %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequest6Y 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequest6Q #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequest6Q #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequest6a CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequest6N Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformation6L Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalance6J Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool6- ]Zend_Service_DeveloperGarden_LocalSearch6> Zend_Service_DeveloperGarden_LocalSearch_SearchParameters67 qZend_Service_DeveloperGarden_LocalSearch_Exception6, [Zend_Service_DeveloperGarden_IpLocation66 oZend_Service_DeveloperGarden_IpLocation_IpAddress6+ YZend_Service_DeveloperGarden_Exception6, [Zend_Service_DeveloperGarden_Credential60
 cZend_Service_DeveloperGarden_ConferenceCall6C	 Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatus6C Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail6< {Zend_Service_DeveloperGarden_ConferenceCall_Participant6: wZend_Service_DeveloperGarden_ConferenceCall_Exception6D 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceSchedule6B Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail6C Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount6- ]Zend_Service_DeveloperGarden_Client_Soap62 gZend_Service_DeveloperGarden_Client_Exception67  qZend_Service_DeveloperGarden_Client_ClientAbstract61 eZend_Service_DeveloperGarden_BaseUserService6A~ Zend_Service_DeveloperGarden_BaseUserService_AccountBalance6} 9Zend_Service_Delicious6&| OZend_Service_Delicious_SimplePost6${ KZend_Service_Delicious_PostList6 z CZend_Service_Delicious_Post6%y MZend_Service_Delicious_Exception6 x CZend_Service_Audioscrobbler6w 3Zend_Service_Amazon6v ;Zend_Service_Amazon_Sqs6&u OZend_Service_Amazon_Sqs_Exception6!t EZend_Service_Amazon_SimpleDb6*s WZend_Service_Amazon_SimpleDb_Response6&r OZend_Service_Amazon_SimpleDb_Page6+q YZend_Service_Amazon_SimpleDb_Exception6+p YZend_Service_Amazon_SimpleDb_Attribute6'o QZend_Service_Amazon_SimilarProduct6n 9Zend_Service_Amazon_S36"m GZend_Service_Amazon_S3_Stream6%l MZend_Service_Amazon_S3_Exception6"k GZend_Service_Amazon_ResultSet6j ?Zend_Service_Amazon_Query6!i EZend_Service_Amazon_OfferSet6h ?Zend_Service_Amazon_Offer6&g OZend_Service_Amazon_ListmaniaList6f =Zend_Service_Amazon_Item6e ?Zend_Service_Amazon_Image6"d GZend_Service_Amazon_Exception6(c SZend_Service_Amazon_EditorialReview6b ;Zend_Service_Amazon_Ec26+a YZend_Service_Amazon_Ec2_Securitygroups6%` MZend_Service_Amazon_Ec2_Response6#_ IZend_Service_Amazon_Ec2_Region6$^ KZend_Service_Amazon_Ec2_Keypair6%] MZend_Service_Amazon_Ec2_Instance6-\ ]Zend_Service_Amazon_Ec2_Instance_Windows6.[ _Zend_Service_Amazon_Ec2_Instance_Reserved6"Z GZend_Service_Amazon_Ec2_Image6&Y OZend_Service_Amazon_Ec2_Exception6&X OZend_Service_Amazon_Ec2_Elasticip6 W CZend_Service_Amazon_Ec2_Ebs6'V QZend_Service_Amazon_Ec2_CloudWatch6   /  T:'t=j(


U
		w	2_*hXQ7#_                                         gM OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseType6cL GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse6`K AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType6\J 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponse6ZI 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseType6VH -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponse6XG 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseType6TF )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse6_E ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType6[D 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponse6WC /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType6SB 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponse6QA #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstract6S@ 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponse6J? Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType6g> OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseType6c= GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponse6W< /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse6U; +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponse6S: 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse639 iZend_Service_DeveloperGarden_Response_BaseType6J8 Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstract6C7 Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCall6G6 Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced6=5 }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCall6A4 Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatus6A3 Zend_Service_DeveloperGarden_Request_SmsValidation_Validate6N2 Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeyword6C1 Zend_Service_DeveloperGarden_Request_SmsValidation_Invalidate6L0 Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbers6B/ Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract69. uZend_Service_DeveloperGarden_Request_SendSms_SendSMS6>- Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS69, uZend_Service_DeveloperGarden_Request_RequestAbstract6I+ Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequest6E* Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest63) iZend_Service_DeveloperGarden_Request_Exception6R( %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequest6Y' 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequest6d& IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequest6Q% #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequest6R$ %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequest6Y# 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequest6d" IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequest6Q! #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequest6O  Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequest6U +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequest6   3  D/{"aS


2			k	<[`-7J[g4                                        '  QZend_Service_Ebay_Finding_Abstract6  CZend_Service_Ebay_Exception6~ AZend_Service_Ebay_Abstract6+} YZend_Service_DeveloperGarden_VoiceCall6/| aZend_Service_DeveloperGarden_SmsValidation6){ UZend_Service_DeveloperGarden_SendSms65z mZend_Service_DeveloperGarden_SecurityTokenServer6;y yZend_Service_DeveloperGarden_SecurityTokenServer_Cache6Kx Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstract6Lw Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponse6Pv !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponse6Gu Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponse6Jt Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponse6Ks Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2Response6Lr Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponse6Iq Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumber6Wp /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponse6Jo Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponse6Un +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponse6Cm Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponse6Cl Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstract6Hk Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponse6Uj +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponse6Qi #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponse6Ih Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception6;g yZend_Service_DeveloperGarden_Response_ResponseAbstract6Of Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseType6Ke Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponse6Ad Zend_Service_DeveloperGarden_Response_IpLocation_RegionType6Kc Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseType6Gb Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponse6La Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationType6I` Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType6>_ Zend_Service_DeveloperGarden_Response_IpLocation_CityType64^ kZend_Service_DeveloperGarden_Response_Exception6T] )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse6[\ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponse6f[ MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponse6SZ 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponse6TY )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse6[X 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponse6fW MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponse6SV 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponse6UU +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType6QT #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse6[S 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseType6WR /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse6[Q 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseType6WP /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse6\O 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseType6XN 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponse6   Z  M Je7i5xH



|
Z
7
					_	2	e={V,{X9qV,i8`3rDh>                                           'Z QZend_Service_Technorati_TagsResult6)Y UZend_Service_Technorati_TagResultSet6&X OZend_Service_Technorati_TagResult6,W [Zend_Service_Technorati_SearchResultSet6)V UZend_Service_Technorati_SearchResult6&U OZend_Service_Technorati_ResultSet6#T IZend_Service_Technorati_Result6*S WZend_Service_Technorati_KeyInfoResult6*R WZend_Service_Technorati_GetInfoResult6&Q OZend_Service_Technorati_Exception61P eZend_Service_Technorati_DailyCountsResultSet6.O _Zend_Service_Technorati_DailyCountsResult6,N [Zend_Service_Technorati_CosmosResultSet6)M UZend_Service_Technorati_CosmosResult6+L YZend_Service_Technorati_BlogInfoResult6#K IZend_Service_Technorati_Author6J ;Zend_Service_StrikeIron6(I SZend_Service_StrikeIron_ZipCodeInfo62H gZend_Service_StrikeIron_USAddressVerification6-G ]Zend_Service_StrikeIron_SalesUseTaxBasic6&F OZend_Service_StrikeIron_Exception6&E OZend_Service_StrikeIron_Decorator6!D EZend_Service_StrikeIron_Base6C ;Zend_Service_SlideShare6&B OZend_Service_SlideShare_SlideShow6&A OZend_Service_SlideShare_Exception6@ 1Zend_Service_Simpy6$? KZend_Service_Simpy_WatchlistSet6*> WZend_Service_Simpy_WatchlistFilterSet6'= QZend_Service_Simpy_WatchlistFilter6!< EZend_Service_Simpy_Watchlist6; ?Zend_Service_Simpy_TagSet6: 9Zend_Service_Simpy_Tag69 AZend_Service_Simpy_NoteSet68 ;Zend_Service_Simpy_Note67 AZend_Service_Simpy_LinkSet6!6 EZend_Service_Simpy_LinkQuery65 ;Zend_Service_Simpy_Link6%4 MZend_Service_ShortUrl_TinyUrlCom6&3 OZend_Service_ShortUrl_MetamarkNet6!2 EZend_Service_ShortUrl_JdemCz61 AZend_Service_ShortUrl_IsGd6$0 KZend_Service_ShortUrl_Exception6,/ [Zend_Service_ShortUrl_AbstractShortener6. 9Zend_Service_ReCaptcha6$- KZend_Service_ReCaptcha_Response6$, KZend_Service_ReCaptcha_MailHide6.+ _Zend_Service_ReCaptcha_MailHide_Exception6%* MZend_Service_ReCaptcha_Exception6) 7Zend_Service_Nirvanix6#( IZend_Service_Nirvanix_Response6)' UZend_Service_Nirvanix_Namespace_Imfs6)& UZend_Service_Nirvanix_Namespace_Base6$% KZend_Service_Nirvanix_Exception6$ 7Zend_Service_LiveDocx6$# KZend_Service_LiveDocx_MailMerge6$" KZend_Service_LiveDocx_Exception6! 3Zend_Service_Flickr6"  GZend_Service_Flickr_ResultSet6 AZend_Service_Flickr_Result6 ?Zend_Service_Flickr_Image6 9Zend_Service_Exception6 ?Zend_Service_Ebay_Finding6) UZend_Service_Ebay_Finding_Storefront6+ YZend_Service_Ebay_Finding_ShippingInfo6+ YZend_Service_Ebay_Finding_Set_Abstract6, [Zend_Service_Ebay_Finding_SellingStatus6) UZend_Service_Ebay_Finding_SellerInfo6, [Zend_Service_Ebay_Finding_Search_Result6* WZend_Service_Ebay_Finding_Search_Item6. _Zend_Service_Ebay_Finding_Search_Item_Set60 cZend_Service_Ebay_Finding_Response_Keywords6- ]Zend_Service_Ebay_Finding_Response_Items62 gZend_Service_Ebay_Finding_Response_Histograms60 cZend_Service_Ebay_Finding_Response_Abstract6/ aZend_Service_Ebay_Finding_PaginationOutput6* WZend_Service_Ebay_Finding_ListingInfo6( SZend_Service_Ebay_Finding_Exception6, [Zend_Service_Ebay_Finding_Error_Message6) UZend_Service_Ebay_Finding_Error_Data6-
 ]Zend_Service_Ebay_Finding_Error_Data_Set6'	 QZend_Service_Ebay_Finding_Category61 eZend_Service_Ebay_Finding_Category_Histogram65 mZend_Service_Ebay_Finding_Category_Histogram_Set6; yZend_Service_Ebay_Finding_Category_Histogram_Container6% MZend_Service_Ebay_Finding_Aspect6) UZend_Service_Ebay_Finding_Aspect_Set65 mZend_Service_Ebay_Finding_Aspect_Histogram_Value69 uZend_Service_Ebay_Finding_Aspect_Histogram_Value_Set69 uZend_Service_Ebay_Finding_Aspect_Histogram_Container6   N  e>>)\q


z
,
 			]	{Ej2Vu:f:kA|W/d<                 ( 9Zend_Soap_AutoDiscover6%' MZend_Soap_AutoDiscover_Exception6& %Zend_Session6)% UZend_Session_Validator_HttpUserAgent6$$ KZend_Session_Validator_Abstract6'# QZend_Session_SaveHandler_Exception6%" MZend_Session_SaveHandler_DbTable6! 9Zend_Session_Namespace6  9Zend_Session_Exception6 7Zend_Session_Abstract6 1Zend_Service_Yahoo6$ KZend_Service_Yahoo_WebResultSet6! EZend_Service_Yahoo_WebResult6& OZend_Service_Yahoo_VideoResultSet6# IZend_Service_Yahoo_VideoResult6! EZend_Service_Yahoo_ResultSet6 ?Zend_Service_Yahoo_Result6) UZend_Service_Yahoo_PageDataResultSet6& OZend_Service_Yahoo_PageDataResult6% MZend_Service_Yahoo_NewsResultSet6" GZend_Service_Yahoo_NewsResult6& OZend_Service_Yahoo_LocalResultSet6# IZend_Service_Yahoo_LocalResult6+ YZend_Service_Yahoo_InlinkDataResultSet6( SZend_Service_Yahoo_InlinkDataResult6& OZend_Service_Yahoo_ImageResultSet6# IZend_Service_Yahoo_ImageResult6 =Zend_Service_Yahoo_Image6& OZend_Service_WindowsAzure_Storage64 kZend_Service_WindowsAzure_Storage_TableInstance67
 qZend_Service_WindowsAzure_Storage_TableEntityQuery62	 gZend_Service_WindowsAzure_Storage_TableEntity6, [Zend_Service_WindowsAzure_Storage_Table6< {Zend_Service_WindowsAzure_Storage_StorageEntityAbstract67 qZend_Service_WindowsAzure_Storage_SignedIdentifier63 iZend_Service_WindowsAzure_Storage_QueueMessage64 kZend_Service_WindowsAzure_Storage_QueueInstance6, [Zend_Service_WindowsAzure_Storage_Queue69 uZend_Service_WindowsAzure_Storage_PageRegionInstance64 kZend_Service_WindowsAzure_Storage_LeaseInstance69  uZend_Service_WindowsAzure_Storage_DynamicTableEntity63 iZend_Service_WindowsAzure_Storage_BlobInstance64~ kZend_Service_WindowsAzure_Storage_BlobContainer6+} YZend_Service_WindowsAzure_Storage_Blob62| gZend_Service_WindowsAzure_Storage_Blob_Stream6;{ yZend_Service_WindowsAzure_Storage_BatchStorageAbstract6,z [Zend_Service_WindowsAzure_Storage_Batch6-y ]Zend_Service_WindowsAzure_SessionHandler6>x Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract61w eZend_Service_WindowsAzure_RetryPolicy_RetryN62v gZend_Service_WindowsAzure_RetryPolicy_NoRetry64u kZend_Service_WindowsAzure_RetryPolicy_Exception6(t SZend_Service_WindowsAzure_Exception6Js Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscription62r gZend_Service_WindowsAzure_Diagnostics_Manager63q iZend_Service_WindowsAzure_Diagnostics_LogLevel64p kZend_Service_WindowsAzure_Diagnostics_Exception6No Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscription6Hn Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLog6Lm Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCounters6Kl Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstract6<k {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogs6Aj Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstance6Di 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectories6Uh +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogs6Dg 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSources68f sZend_Service_WindowsAzure_Credentials_SharedKeyLite64e kZend_Service_WindowsAzure_Credentials_SharedKey6Ad Zend_Service_WindowsAzure_Credentials_SharedAccessSignature64c kZend_Service_WindowsAzure_Credentials_Exception6>b Zend_Service_WindowsAzure_Credentials_CredentialsAbstract6a 5Zend_Service_Twitter6 ` CZend_Service_Twitter_Search6#_ IZend_Service_Twitter_Exception6^ ;Zend_Service_Technorati6#] IZend_Service_Technorati_Weblog6"\ GZend_Service_Technorati_Utils6*[ WZend_Service_Technorati_TagsResultSet6   \  ~eB)P&_6rT&h=



T
$				p	@	[1gQ)x>C[zO{U)wH  ) UZend_Tool_Framework_Metadata_Dynamic6' QZend_Tool_Framework_Metadata_Basic6, [Zend_Tool_Framework_Manifest_Repository6+ YZend_Tool_Framework_Manifest_Exception61  eZend_Tool_Framework_Loader_IncludePathLoader6J Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator6+~ YZend_Tool_Framework_Loader_BasicLoader6(} SZend_Tool_Framework_Loader_Abstract6"| GZend_Tool_Framework_Exception6'{ QZend_Tool_Framework_Client_Storage61z eZend_Tool_Framework_Client_Storage_Directory6(y SZend_Tool_Framework_Client_Response6Dx 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator6'w QZend_Tool_Framework_Client_Request6(v SZend_Tool_Framework_Client_Manifest69u uZend_Tool_Framework_Client_Interactive_InputResponse68t sZend_Tool_Framework_Client_Interactive_InputRequest68s sZend_Tool_Framework_Client_Interactive_InputHandler6)r UZend_Tool_Framework_Client_Exception6'q QZend_Tool_Framework_Client_Console6Dp 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Indention6Do 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizer6Cn Zend_Tool_Framework_Client_Console_ResponseDecorator_Blockize6Fm Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter60l cZend_Tool_Framework_Client_Console_Manifest62k gZend_Tool_Framework_Client_Console_HelpSystem66j oZend_Tool_Framework_Client_Console_ArgumentParser6&i OZend_Tool_Framework_Client_Config6(h SZend_Tool_Framework_Client_Abstract6*g WZend_Tool_Framework_Action_Repository6)f UZend_Tool_Framework_Action_Exception6$e KZend_Tool_Framework_Action_Base6d 'Zend_TimeSync6c 1Zend_TimeSync_Sntp6b 9Zend_TimeSync_Protocol6a /Zend_TimeSync_Ntp6` ;Zend_TimeSync_Exception6_ +Zend_Text_Table6^ 3Zend_Text_Table_Row6] ?Zend_Text_Table_Exception6&\ OZend_Text_Table_Decorator_Unicode6$[ KZend_Text_Table_Decorator_Ascii6Z 9Zend_Text_Table_Column6Y 3Zend_Text_MultiByte6X -Zend_Text_Figlet6W AZend_Text_Figlet_Exception6V 3Zend_Text_Exception6&U OZend_Test_PHPUnit_Db_SimpleTester6,T [Zend_Test_PHPUnit_Db_Operation_Truncate6*S WZend_Test_PHPUnit_Db_Operation_Insert6-R ]Zend_Test_PHPUnit_Db_Operation_DeleteAll6*Q WZend_Test_PHPUnit_Db_Metadata_Generic6#P IZend_Test_PHPUnit_Db_Exception6,O [Zend_Test_PHPUnit_Db_DataSet_QueryTable6.N _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet60M cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet6)L UZend_Test_PHPUnit_Db_DataSet_DbTable6*K WZend_Test_PHPUnit_Db_DataSet_DbRowset6$J KZend_Test_PHPUnit_Db_Connection6'I QZend_Test_PHPUnit_DatabaseTestCase6)H UZend_Test_PHPUnit_ControllerTestCase60G cZend_Test_PHPUnit_Constraint_ResponseHeader6*F WZend_Test_PHPUnit_Constraint_Redirect6+E YZend_Test_PHPUnit_Constraint_Exception6*D WZend_Test_PHPUnit_Constraint_DomQuery6C 7Zend_Test_DbStatement6B 3Zend_Test_DbAdapter6A /Zend_Tag_ItemList6@ 'Zend_Tag_Item6? 1Zend_Tag_Exception6> )Zend_Tag_Cloud6= =Zend_Tag_Cloud_Exception6!< EZend_Tag_Cloud_Decorator_Tag6%; MZend_Tag_Cloud_Decorator_HtmlTag6': QZend_Tag_Cloud_Decorator_HtmlCloud6'9 QZend_Tag_Cloud_Decorator_Exception6#8 IZend_Tag_Cloud_Decorator_Cloud67 )Zend_Soap_Wsdl6/6 aZend_Soap_Wsdl_Strategy_DefaultComplexType6&5 OZend_Soap_Wsdl_Strategy_Composite604 cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence6/3 aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex6$2 KZend_Soap_Wsdl_Strategy_AnyType6%1 MZend_Soap_Wsdl_Strategy_Abstract60 =Zend_Soap_Wsdl_Exception6/ -Zend_Soap_Server6. AZend_Soap_Server_Exception6- -Zend_Soap_Client6, 9Zend_Soap_Client_Local6+ AZend_Soap_Client_Exception6* ;Zend_Soap_Client_DotNet6) ;Zend_Soap_Client_Common6   I  yId8h)_(S


s
8				g	1Z)b,NLn2Gx:I            2M gZend_Tool_Project_Context_Zf_UploadsDirectory60L cZend_Tool_Project_Context_Zf_TestsDirectory67K qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile6@J Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory61I eZend_Tool_Project_Context_Zf_TestLibraryFile66H oZend_Tool_Project_Context_Zf_TestLibraryDirectory6:G wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFile6:F wZend_Tool_Project_Context_Zf_TestApplicationDirectory6@E Zend_Tool_Project_Context_Zf_TestApplicationControllerFile6ED Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory6>C Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile64B kZend_Tool_Project_Context_Zf_TemporaryDirectory63A iZend_Tool_Project_Context_Zf_SessionsDirectory68@ sZend_Tool_Project_Context_Zf_SearchIndexesDirectory6<? {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory68> sZend_Tool_Project_Context_Zf_PublicScriptsDirectory61= eZend_Tool_Project_Context_Zf_PublicIndexFile67< qZend_Tool_Project_Context_Zf_PublicImagesDirectory61; eZend_Tool_Project_Context_Zf_PublicDirectory65: mZend_Tool_Project_Context_Zf_ProjectProviderFile629 gZend_Tool_Project_Context_Zf_ModulesDirectory618 eZend_Tool_Project_Context_Zf_ModuleDirectory617 eZend_Tool_Project_Context_Zf_ModelsDirectory6+6 YZend_Tool_Project_Context_Zf_ModelFile6/5 aZend_Tool_Project_Context_Zf_LogsDirectory624 gZend_Tool_Project_Context_Zf_LocalesDirectory623 gZend_Tool_Project_Context_Zf_LibraryDirectory622 gZend_Tool_Project_Context_Zf_LayoutsDirectory681 sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory620 gZend_Tool_Project_Context_Zf_LayoutScriptFile6./ _Zend_Tool_Project_Context_Zf_HtaccessFile60. cZend_Tool_Project_Context_Zf_FormsDirectory6*- WZend_Tool_Project_Context_Zf_FormFile6/, aZend_Tool_Project_Context_Zf_DocsDirectory6-+ ]Zend_Tool_Project_Context_Zf_DbTableFile62* gZend_Tool_Project_Context_Zf_DbTableDirectory6/) aZend_Tool_Project_Context_Zf_DataDirectory66( oZend_Tool_Project_Context_Zf_ControllersDirectory60' cZend_Tool_Project_Context_Zf_ControllerFile62& gZend_Tool_Project_Context_Zf_ConfigsDirectory6,% [Zend_Tool_Project_Context_Zf_ConfigFile60$ cZend_Tool_Project_Context_Zf_CacheDirectory6/# aZend_Tool_Project_Context_Zf_BootstrapFile66" oZend_Tool_Project_Context_Zf_ApplicationDirectory67! qZend_Tool_Project_Context_Zf_ApplicationConfigFile6/  aZend_Tool_Project_Context_Zf_ApisDirectory6. _Zend_Tool_Project_Context_Zf_ActionMethod63 iZend_Tool_Project_Context_Zf_AbstractClassFile6@ Zend_Tool_Project_Context_System_ProjectProvidersDirectory68 sZend_Tool_Project_Context_System_ProjectProfileFile66 oZend_Tool_Project_Context_System_ProjectDirectory6) UZend_Tool_Project_Context_Repository6. _Zend_Tool_Project_Context_Filesystem_File63 iZend_Tool_Project_Context_Filesystem_Directory62 gZend_Tool_Project_Context_Filesystem_Abstract6( SZend_Tool_Project_Context_Exception6- ]Zend_Tool_Project_Context_Content_Engine63 iZend_Tool_Project_Context_Content_Engine_Phtml6; yZend_Tool_Project_Context_Content_Engine_CodeGenerator60 cZend_Tool_Framework_System_Provider_Version60 cZend_Tool_Framework_System_Provider_Phpinfo61 eZend_Tool_Framework_System_Provider_Manifest6/ aZend_Tool_Framework_System_Provider_Config6( SZend_Tool_Framework_System_Manifest6- ]Zend_Tool_Framework_System_Action_Delete6- ]Zend_Tool_Framework_System_Action_Create6! EZend_Tool_Framework_Registry6+
 YZend_Tool_Framework_Registry_Exception6+	 YZend_Tool_Framework_Provider_Signature6, [Zend_Tool_Framework_Provider_Repository6+ YZend_Tool_Framework_Provider_Exception6* WZend_Tool_Framework_Provider_Abstract6& OZend_Tool_Framework_Metadata_Tool6   b  GeAj5U&sK!



w
L
					Z	7	fE'wI$Z6a<yU.	uR4}U/a6                                    !/ EZend_Validate_File_Extension6. ?Zend_Validate_File_Exists6'- QZend_Validate_File_ExcludeMimeType6(, SZend_Validate_File_ExcludeExtension6+ =Zend_Validate_File_Crc326* =Zend_Validate_File_Count6) ;Zend_Validate_Exception6( AZend_Validate_EmailAddress6' 5Zend_Validate_Digits6"& GZend_Validate_Db_RecordExists6$% KZend_Validate_Db_NoRecordExists6$ ?Zend_Validate_Db_Abstract6# 1Zend_Validate_Date6" =Zend_Validate_CreditCard6! 3Zend_Validate_Ccnum6  9Zend_Validate_Callback6 7Zend_Validate_Between6 7Zend_Validate_Barcode6 AZend_Validate_Barcode_Upce6 AZend_Validate_Barcode_Upca6 AZend_Validate_Barcode_Sscc6$ KZend_Validate_Barcode_Royalmail6" GZend_Validate_Barcode_Postnet6! EZend_Validate_Barcode_Planet6# IZend_Validate_Barcode_Leitcode6  CZend_Validate_Barcode_Itf146 AZend_Validate_Barcode_Issn6* WZend_Validate_Barcode_IntelligentMail6$ KZend_Validate_Barcode_Identcode6! EZend_Validate_Barcode_Gtin146! EZend_Validate_Barcode_Gtin136! EZend_Validate_Barcode_Gtin126 AZend_Validate_Barcode_Ean86 AZend_Validate_Barcode_Ean56 AZend_Validate_Barcode_Ean26  CZend_Validate_Barcode_Ean186  CZend_Validate_Barcode_Ean146 
 CZend_Validate_Barcode_Ean136 	 CZend_Validate_Barcode_Ean126$ KZend_Validate_Barcode_Code93ext6! EZend_Validate_Barcode_Code936$ KZend_Validate_Barcode_Code39ext6! EZend_Validate_Barcode_Code396, [Zend_Validate_Barcode_Code25interleaved6! EZend_Validate_Barcode_Code256* WZend_Validate_Barcode_AdapterAbstract6 3Zend_Validate_Alpha6  3Zend_Validate_Alnum6 9Zend_Validate_Abstract6~ Zend_Uri6} 'Zend_Uri_Http6| 1Zend_Uri_Exception6{ )Zend_Translate6z 7Zend_Translate_Plural6y =Zend_Translate_Exception6x 9Zend_Translate_Adapter6!w EZend_Translate_Adapter_XmlTm6!v EZend_Translate_Adapter_Xliff6u AZend_Translate_Adapter_Tmx6t AZend_Translate_Adapter_Tbx6s ?Zend_Translate_Adapter_Qt6r AZend_Translate_Adapter_Ini6#q IZend_Translate_Adapter_Gettext6p AZend_Translate_Adapter_Csv6!o EZend_Translate_Adapter_Array6$n KZend_Tool_Project_Provider_View6$m KZend_Tool_Project_Provider_Test6/l aZend_Tool_Project_Provider_ProjectProvider6'k QZend_Tool_Project_Provider_Project6'j QZend_Tool_Project_Provider_Profile6&i OZend_Tool_Project_Provider_Module6%h MZend_Tool_Project_Provider_Model6(g SZend_Tool_Project_Provider_Manifest6&f OZend_Tool_Project_Provider_Layout6$e KZend_Tool_Project_Provider_Form6)d UZend_Tool_Project_Provider_Exception6'c QZend_Tool_Project_Provider_DbTable6)b UZend_Tool_Project_Provider_DbAdapter6*a WZend_Tool_Project_Provider_Controller6+` YZend_Tool_Project_Provider_Application6&_ OZend_Tool_Project_Provider_Action6(^ SZend_Tool_Project_Provider_Abstract6] ?Zend_Tool_Project_Profile6'\ QZend_Tool_Project_Profile_Resource69[ uZend_Tool_Project_Profile_Resource_SearchConstraints61Z eZend_Tool_Project_Profile_Resource_Container6=Y }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter65X mZend_Tool_Project_Profile_Iterator_ContextFilter6-W ]Zend_Tool_Project_Profile_FileParser_Xml6(V SZend_Tool_Project_Profile_Exception6 U CZend_Tool_Project_Exception6<T {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory60S cZend_Tool_Project_Context_Zf_ViewsDirectory66R oZend_Tool_Project_Context_Zf_ViewScriptsDirectory60Q cZend_Tool_Project_Context_Zf_ViewScriptFile66P oZend_Tool_Project_Context_Zf_ViewHelpersDirectory66O oZend_Tool_Project_Context_Zf_ViewFiltersDirectory6AN Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory6   l  nK,\@rY> vT-
fE#



~
Z
4
					_	4	^<iF!oI+~U)i1W)pS0\7         ! EZend_XmlRpc_Client_Exception6& OZend_Wildfire_Protocol_JsonStream6! EZend_Wildfire_Plugin_FirePhp6. _Zend_Wildfire_Plugin_FirePhp_TableMessage6) UZend_Wildfire_Plugin_FirePhp_Message6 ;Zend_Wildfire_Exception6& OZend_Wildfire_Channel_HttpHeaders6 Zend_View6 -Zend_View_Stream6 AZend_View_Helper_UserAgent6 5Zend_View_Helper_Url6 AZend_View_Helper_Translate6 =Zend_View_Helper_TinySrc6 AZend_View_Helper_ServerUrl6) UZend_View_Helper_RenderToPlaceholder6! EZend_View_Helper_Placeholder6* WZend_View_Helper_Placeholder_Registry64
 kZend_View_Helper_Placeholder_Registry_Exception6+	 YZend_View_Helper_Placeholder_Container66 oZend_View_Helper_Placeholder_Container_Standalone65 mZend_View_Helper_Placeholder_Container_Exception64 kZend_View_Helper_Placeholder_Container_Abstract6! EZend_View_Helper_PartialLoop6 =Zend_View_Helper_Partial6' QZend_View_Helper_Partial_Exception6' QZend_View_Helper_PaginationControl6  CZend_View_Helper_Navigation6(  SZend_View_Helper_Navigation_Sitemap6% MZend_View_Helper_Navigation_Menu6&~ OZend_View_Helper_Navigation_Links6/} aZend_View_Helper_Navigation_HelperAbstract6,| [Zend_View_Helper_Navigation_Breadcrumbs6{ ;Zend_View_Helper_Layout6z 7Zend_View_Helper_Json6"y GZend_View_Helper_InlineScript6#x IZend_View_Helper_HtmlQuicktime6w ?Zend_View_Helper_HtmlPage6 v CZend_View_Helper_HtmlObject6u ?Zend_View_Helper_HtmlList6t AZend_View_Helper_HtmlFlash6!s EZend_View_Helper_HtmlElement6r AZend_View_Helper_HeadTitle6q AZend_View_Helper_HeadStyle6 p CZend_View_Helper_HeadScript6o ?Zend_View_Helper_HeadMeta6n ?Zend_View_Helper_HeadLink6m ?Zend_View_Helper_Gravatar6"l GZend_View_Helper_FormTextarea6k ?Zend_View_Helper_FormText6 j CZend_View_Helper_FormSubmit6 i CZend_View_Helper_FormSelect6h AZend_View_Helper_FormReset6g AZend_View_Helper_FormRadio6"f GZend_View_Helper_FormPassword6e ?Zend_View_Helper_FormNote6'd QZend_View_Helper_FormMultiCheckbox6c AZend_View_Helper_FormLabel6b AZend_View_Helper_FormImage6 a CZend_View_Helper_FormHidden6` ?Zend_View_Helper_FormFile6 _ CZend_View_Helper_FormErrors6!^ EZend_View_Helper_FormElement6"] GZend_View_Helper_FormCheckbox6 \ CZend_View_Helper_FormButton6[ 7Zend_View_Helper_Form6Z ?Zend_View_Helper_Fieldset6Y =Zend_View_Helper_Doctype6!X EZend_View_Helper_DeclareVars6W 9Zend_View_Helper_Cycle6V ?Zend_View_Helper_Currency6U =Zend_View_Helper_BaseUrl6T ;Zend_View_Helper_Action6S ?Zend_View_Helper_Abstract6R 3Zend_View_Exception6Q 1Zend_View_Abstract6P %Zend_Version6O 'Zend_Validate6N AZend_Validate_StringLength6#M IZend_Validate_Sitemap_Priority6L ?Zend_Validate_Sitemap_Loc6"K GZend_Validate_Sitemap_Lastmod6%J MZend_Validate_Sitemap_Changefreq6I 3Zend_Validate_Regex6H 9Zend_Validate_PostCode6G 9Zend_Validate_NotEmpty6F 9Zend_Validate_LessThan6E 1Zend_Validate_Isbn6D -Zend_Validate_Ip6C /Zend_Validate_Int6B 7Zend_Validate_InArray6A ;Zend_Validate_Identical6@ 1Zend_Validate_Iban6? 9Zend_Validate_Hostname6> /Zend_Validate_Hex6= ?Zend_Validate_GreaterThan6< 3Zend_Validate_Float6!; EZend_Validate_File_WordCount6: ?Zend_Validate_File_Upload69 ;Zend_Validate_File_Size68 ;Zend_Validate_File_Sha16!7 EZend_Validate_File_NotExists6 6 CZend_Validate_File_MimeType65 9Zend_Validate_File_Md564 AZend_Validate_File_IsImage6$3 KZend_Validate_File_IsCompressed6!2 EZend_Validate_File_ImageSize61 ;Zend_Validate_File_Hash6!0 EZend_Validate_File_FilesSize6   i  ~O({S2oN,dA zY?$






\
8
					j	C	X6jG&yHi<b3`7i6dK)             CZend_Auth_Adapter_Exception7 =Zend_Auth_Adapter_Digest7 ?Zend_Auth_Adapter_DbTable7 -Zend_Application7#  IZend_Application_Resource_View7( SZend_Application_Resource_UserAgent7(~ SZend_Application_Resource_Translate7&} OZend_Application_Resource_Session7%| MZend_Application_Resource_Router7/{ aZend_Application_Resource_ResourceAbstract7)z UZend_Application_Resource_Navigation7&y OZend_Application_Resource_Multidb7&x OZend_Application_Resource_Modules7#w IZend_Application_Resource_Mail7"v GZend_Application_Resource_Log7%u MZend_Application_Resource_Locale7%t MZend_Application_Resource_Layout7.s _Zend_Application_Resource_Frontcontroller7(r SZend_Application_Resource_Exception7#q IZend_Application_Resource_Dojo7!p EZend_Application_Resource_Db7+o YZend_Application_Resource_Cachemanager7&n OZend_Application_Module_Bootstrap7'm QZend_Application_Module_Autoloader7l AZend_Application_Exception7)k UZend_Application_Bootstrap_Exception71j eZend_Application_Bootstrap_BootstrapAbstract7)i UZend_Application_Bootstrap_Bootstrap7h ?Zend_Amf_Value_TraitsInfo7-g ]Zend_Amf_Value_Messaging_RemotingMessage7*f WZend_Amf_Value_Messaging_ErrorMessage7,e [Zend_Amf_Value_Messaging_CommandMessage7*d WZend_Amf_Value_Messaging_AsyncMessage7-c ]Zend_Amf_Value_Messaging_ArrayCollection70b cZend_Amf_Value_Messaging_AcknowledgeMessage7-a ]Zend_Amf_Value_Messaging_AbstractMessage7!` EZend_Amf_Value_MessageHeader7_ AZend_Amf_Value_MessageBody7^ =Zend_Amf_Value_ByteArray7] AZend_Amf_Util_BinaryStream7\ +Zend_Amf_Server7[ ?Zend_Amf_Server_Exception7Z /Zend_Amf_Response7Y 9Zend_Amf_Response_Http7X -Zend_Amf_Request7W 7Zend_Amf_Request_Http7V ?Zend_Amf_Parse_TypeLoader7U ?Zend_Amf_Parse_Serializer7#T IZend_Amf_Parse_Resource_Stream7(S SZend_Amf_Parse_Resource_MysqlResult7)R UZend_Amf_Parse_Resource_MysqliResult7 Q CZend_Amf_Parse_OutputStream7P AZend_Amf_Parse_InputStream7 O CZend_Amf_Parse_Deserializer7#N IZend_Amf_Parse_Amf3_Serializer7%M MZend_Amf_Parse_Amf3_Deserializer7#L IZend_Amf_Parse_Amf0_Serializer7%K MZend_Amf_Parse_Amf0_Deserializer7J 1Zend_Amf_Exception7I 1Zend_Amf_Constants7H 9Zend_Amf_Auth_Abstract7 G CZend_Amf_Adobe_Introspector7F AZend_Amf_Adobe_DbInspector7E 3Zend_Amf_Adobe_Auth7D Zend_Acl7C 'Zend_Acl_Role7B 9Zend_Acl_Role_Registry7%A MZend_Acl_Role_Registry_Exception7@ /Zend_Acl_Resource7? 1Zend_Acl_Exception7> /Zend_XmlRpc_Value6= =Zend_XmlRpc_Value_Struct6< =Zend_XmlRpc_Value_String6; =Zend_XmlRpc_Value_Scalar6: 7Zend_XmlRpc_Value_Nil69 ?Zend_XmlRpc_Value_Integer6 8 CZend_XmlRpc_Value_Exception67 =Zend_XmlRpc_Value_Double66 AZend_XmlRpc_Value_DateTime6!5 EZend_XmlRpc_Value_Collection64 ?Zend_XmlRpc_Value_Boolean6!3 EZend_XmlRpc_Value_BigInteger62 =Zend_XmlRpc_Value_Base6461 ;Zend_XmlRpc_Value_Array60 1Zend_XmlRpc_Server6/ ?Zend_XmlRpc_Server_System6. =Zend_XmlRpc_Server_Fault6!- EZend_XmlRpc_Server_Exception6, =Zend_XmlRpc_Server_Cache6+ 5Zend_XmlRpc_Response6* ?Zend_XmlRpc_Response_Http6) 3Zend_XmlRpc_Request6( ?Zend_XmlRpc_Request_Stdin6' =Zend_XmlRpc_Request_Http6$& KZend_XmlRpc_Generator_XmlWriter6,% [Zend_XmlRpc_Generator_GeneratorAbstract6&$ OZend_XmlRpc_Generator_DomDocument6# /Zend_XmlRpc_Fault6" 7Zend_XmlRpc_Exception6! 1Zend_XmlRpc_Client6#  IZend_XmlRpc_Client_ServerProxy6+ YZend_XmlRpc_Client_ServerIntrospection6+ YZend_XmlRpc_Client_IntrospectException6% MZend_XmlRpc_Client_HttpException6& OZend_XmlRpc_Client_FaultException6   X  pL|U+j-mA
u<


m
<
			{	P	sE&rQ.N+rCwIFd?"Y7           $& KZend_InfoCard_Adapter_Interface7 % CZend_Http_UserAgent_Storage7)$ UZend_Http_UserAgent_Features_Adapter7# AZend_Http_UserAgent_Device7$" KZend_Http_Client_Adapter_Stream7'! QZend_Http_Client_Adapter_Interface7  AZend_Gdata_App_MediaSource7. _Zend_Form_Decorator_Marker_File_Interface7" GZend_Form_Decorator_Interface7 7Zend_Filter_Interface7" GZend_Filter_Encrypt_Interface7+ YZend_Filter_Compress_CompressInterface70 cZend_Feed_Writer_Renderer_RendererInterface71 eZend_Feed_Writer_Extension_RendererInterface7# IZend_Feed_Reader_FeedInterface7$ KZend_Feed_Reader_EntryInterface77 qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface7- ]Zend_Feed_Pubsubhubbub_CallbackInterface7  CZend_Feed_Builder_Interface7  CZend_Db_Statement_Interface7$ KZend_Currency_CurrencyInterface7) UZend_Crypt_Math_BigInteger_Interface7+ YZend_Controller_Router_Route_Interface7% MZend_Controller_Router_Interface7) UZend_Controller_Dispatcher_Interface7% MZend_Controller_Action_Interface7& OZend_Cloud_StorageService_Adapter7$ KZend_Cloud_QueueService_Adapter7,
 [Zend_Cloud_DocumentService_QueryAdapter7'	 QZend_Cloud_DocumentService_Adapter7 5Zend_Captcha_Adapter7! EZend_Cache_Backend_Interface7) UZend_Cache_Backend_ExtendedInterface7  CZend_Auth_Storage_Interface7  CZend_Auth_Adapter_Interface7. _Zend_Auth_Adapter_Http_Resolver_Interface7' QZend_Application_Resource_Resource74 kZend_Application_Bootstrap_ResourceBootstrapper7,  [Zend_Application_Bootstrap_Bootstrapper7 ;Zend_Acl_Role_Interface7 ~ CZend_Acl_Resource_Interface7} ?Zend_Acl_Assert_Interface7#| IZend_Wildfire_Plugin_Interface6${ KZend_Wildfire_Channel_Interface6z 3Zend_View_Interface6'y QZend_View_Helper_Navigation_Helper6x AZend_View_Helper_Interface6w ;Zend_Validate_Interface6+v YZend_Validate_Barcode_AdapterInterface63u iZend_Tool_Project_Profile_FileParser_Interface6:t wZend_Tool_Project_Context_System_TopLevelRestrictable65s mZend_Tool_Project_Context_System_NotOverwritable6/r aZend_Tool_Project_Context_System_Interface6(q SZend_Tool_Project_Context_Interface6+p YZend_Tool_Framework_Registry_Interface62o gZend_Tool_Framework_Registry_EnabledInterface6-n ]Zend_Tool_Framework_Provider_Pretendable6+m YZend_Tool_Framework_Provider_Interface6.l _Zend_Tool_Framework_Provider_Interactable6/k aZend_Tool_Framework_Provider_Initializable6;j yZend_Tool_Framework_Provider_DocblockManifestInterface6+i YZend_Tool_Framework_Metadata_Interface6.h _Zend_Tool_Framework_Metadata_Attributable66g oZend_Tool_Framework_Manifest_ProviderManifestable66f oZend_Tool_Framework_Manifest_MetadataManifestable6+e YZend_Tool_Framework_Manifest_Interface6+d YZend_Tool_Framework_Manifest_Indexable64c kZend_Tool_Framework_Manifest_ActionManifestable6)b UZend_Tool_Framework_Loader_Interface68a sZend_Tool_Framework_Client_Storage_AdapterInterface6D` 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface6;_ yZend_Tool_Framework_Client_Interactive_OutputInterface6:^ wZend_Tool_Framework_Client_Interactive_InputInterface6)] UZend_Tool_Framework_Action_Interface6(\ SZend_Text_Table_Decorator_Interface6[ /Zend_Tag_Taggable6&Z OZend_Soap_Wsdl_Strategy_Interface6%Y MZend_Session_Validator_Interface6'X QZend_Session_SaveHandler_Interface6$W KZend_Service_ShortUrl_Shortener6IV Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Interface6U 7Zend_Server_Interface6-T ]Zend_Serializer_Adapter_AdapterInterface64S kZend_Search_Lucene_Search_Highlighter_Interface6!R EZend_Search_Lucene_Interface63Q iZend_Search_Lucene_Index_TermsStream_Interface6$P KZend_Queue_Stomp_FrameInterface60O cZend_Queue_Stomp_Client_ConnectionInterface6   f  _@|jK'pO.yN+wS1




g
B
 					o	D	~\;pQ5IsDt<W/o8qM(                                 0j cZend_CodeGenerator_Php_Docblock_Tag_License7!i EZend_CodeGenerator_Php_Class7 h CZend_CodeGenerator_Php_Body7$g KZend_CodeGenerator_Php_Abstract7!f EZend_CodeGenerator_Exception7 e CZend_CodeGenerator_Abstract7&d OZend_Cloud_StorageService_Factory7(c SZend_Cloud_StorageService_Exception73b iZend_Cloud_StorageService_Adapter_WindowsAzure7)a UZend_Cloud_StorageService_Adapter_S37/` aZend_Cloud_StorageService_Adapter_Nirvanix71_ eZend_Cloud_StorageService_Adapter_FileSystem7'^ QZend_Cloud_QueueService_MessageSet7$] KZend_Cloud_QueueService_Message7$\ KZend_Cloud_QueueService_Factory7&[ OZend_Cloud_QueueService_Exception7.Z _Zend_Cloud_QueueService_Adapter_ZendQueue71Y eZend_Cloud_QueueService_Adapter_WindowsAzure7(X SZend_Cloud_QueueService_Adapter_Sqs74W kZend_Cloud_QueueService_Adapter_AbstractAdapter7.V _Zend_Cloud_OperationNotAvailableException7U 5Zend_Cloud_Exception7%T MZend_Cloud_DocumentService_Query7'S QZend_Cloud_DocumentService_Factory7)R UZend_Cloud_DocumentService_Exception7+Q YZend_Cloud_DocumentService_DocumentSet7(P SZend_Cloud_DocumentService_Document74O kZend_Cloud_DocumentService_Adapter_WindowsAzure7:N wZend_Cloud_DocumentService_Adapter_WindowsAzure_Query70M cZend_Cloud_DocumentService_Adapter_SimpleDb76L oZend_Cloud_DocumentService_Adapter_SimpleDb_Query77K qZend_Cloud_DocumentService_Adapter_AbstractAdapter7J AZend_Cloud_AbstractFactory7I /Zend_Captcha_Word7H 9Zend_Captcha_ReCaptcha7G 1Zend_Captcha_Image7F 3Zend_Captcha_Figlet7E 9Zend_Captcha_Exception7D /Zend_Captcha_Dumb7C /Zend_Captcha_Base7B !Zend_Cache7A 1Zend_Cache_Manager7@ =Zend_Cache_Frontend_Page7? AZend_Cache_Frontend_Output7!> EZend_Cache_Frontend_Function7= =Zend_Cache_Frontend_File7< ?Zend_Cache_Frontend_Class7 ; CZend_Cache_Frontend_Capture7: 5Zend_Cache_Exception79 +Zend_Cache_Core78 1Zend_Cache_Backend7"7 GZend_Cache_Backend_ZendServer7(6 SZend_Cache_Backend_ZendServer_ShMem7'5 QZend_Cache_Backend_ZendServer_Disk7$4 KZend_Cache_Backend_ZendPlatform73 ?Zend_Cache_Backend_Xcache7!2 EZend_Cache_Backend_TwoLevels71 ;Zend_Cache_Backend_Test70 ?Zend_Cache_Backend_Static7/ ?Zend_Cache_Backend_Sqlite7!. EZend_Cache_Backend_Memcached7- ;Zend_Cache_Backend_File7!, EZend_Cache_Backend_BlackHole7+ 9Zend_Cache_Backend_Apc7* %Zend_Barcode7) ?Zend_Barcode_Renderer_Svg7+( YZend_Barcode_Renderer_RendererAbstract7' ?Zend_Barcode_Renderer_Pdf7 & CZend_Barcode_Renderer_Image7$% KZend_Barcode_Renderer_Exception7$ =Zend_Barcode_Object_Upce7# =Zend_Barcode_Object_Upca7"" GZend_Barcode_Object_Royalmail7 ! CZend_Barcode_Object_Postnet7  AZend_Barcode_Object_Planet7' QZend_Barcode_Object_ObjectAbstract7! EZend_Barcode_Object_Leitcode7 ?Zend_Barcode_Object_Itf147" GZend_Barcode_Object_Identcode7" GZend_Barcode_Object_Exception7 ?Zend_Barcode_Object_Error7 =Zend_Barcode_Object_Ean87 =Zend_Barcode_Object_Ean57 =Zend_Barcode_Object_Ean27 ?Zend_Barcode_Object_Ean137 AZend_Barcode_Object_Code397* WZend_Barcode_Object_Code25interleaved7 AZend_Barcode_Object_Code257  CZend_Barcode_Object_Code1287 9Zend_Barcode_Exception7 Zend_Auth7 ?Zend_Auth_Storage_Session7$ KZend_Auth_Storage_NonPersistent7  CZend_Auth_Storage_Exception7 -Zend_Auth_Result7 3Zend_Auth_Exception7
 =Zend_Auth_Adapter_OpenId7	 9Zend_Auth_Adapter_Ldap7 AZend_Auth_Adapter_InfoCard7 9Zend_Auth_Adapter_Http7) UZend_Auth_Adapter_Http_Resolver_File7. _Zend_Auth_Adapter_Http_Resolver_Exception7   d  oGu?jI!pWCwE	


f
2				w	D	
f:U+\5g?h<tW5|ZBiL0         "N GZend_Db_Adapter_Db2_Exception7M =Zend_Db_Adapter_Abstract7L Zend_Date7K 3Zend_Date_Exception7J 5Zend_Date_DateObject7I -Zend_Date_Cities7H 'Zend_Currency7G ;Zend_Currency_Exception7F !Zend_Crypt7E )Zend_Crypt_Rsa7D 1Zend_Crypt_Rsa_Key7C ?Zend_Crypt_Rsa_Key_Public7B AZend_Crypt_Rsa_Key_Private7A +Zend_Crypt_Math7@ ?Zend_Crypt_Math_Exception7? AZend_Crypt_Math_BigInteger7#> IZend_Crypt_Math_BigInteger_Gmp7)= UZend_Crypt_Math_BigInteger_Exception7&< OZend_Crypt_Math_BigInteger_Bcmath7; +Zend_Crypt_Hmac7: ?Zend_Crypt_Hmac_Exception79 5Zend_Crypt_Exception78 =Zend_Crypt_DiffieHellman7'7 QZend_Crypt_DiffieHellman_Exception7!6 EZend_Controller_Router_Route7(5 SZend_Controller_Router_Route_Static7'4 QZend_Controller_Router_Route_Regex7(3 SZend_Controller_Router_Route_Module7*2 WZend_Controller_Router_Route_Hostname7'1 QZend_Controller_Router_Route_Chain7*0 WZend_Controller_Router_Route_Abstract7#/ IZend_Controller_Router_Rewrite7%. MZend_Controller_Router_Exception7$- KZend_Controller_Router_Abstract7*, WZend_Controller_Response_HttpTestCase7"+ GZend_Controller_Response_Http7'* QZend_Controller_Response_Exception7!) EZend_Controller_Response_Cli7&( OZend_Controller_Response_Abstract7#' IZend_Controller_Request_Simple7)& UZend_Controller_Request_HttpTestCase7!% EZend_Controller_Request_Http7&$ OZend_Controller_Request_Exception7&# OZend_Controller_Request_Apache4047%" MZend_Controller_Request_Abstract7&! OZend_Controller_Plugin_PutHandler7(  SZend_Controller_Plugin_ErrorHandler7" GZend_Controller_Plugin_Broker7' QZend_Controller_Plugin_ActionStack7$ KZend_Controller_Plugin_Abstract7 7Zend_Controller_Front7 ?Zend_Controller_Exception7( SZend_Controller_Dispatcher_Standard7) UZend_Controller_Dispatcher_Exception7( SZend_Controller_Dispatcher_Abstract7 9Zend_Controller_Action7( SZend_Controller_Action_HelperBroker76 oZend_Controller_Action_HelperBroker_PriorityStack7/ aZend_Controller_Action_Helper_ViewRenderer7& OZend_Controller_Action_Helper_Url7- ]Zend_Controller_Action_Helper_Redirector7' QZend_Controller_Action_Helper_Json71 eZend_Controller_Action_Helper_FlashMessenger70 cZend_Controller_Action_Helper_ContextSwitch7( SZend_Controller_Action_Helper_Cache7< {Zend_Controller_Action_Helper_AutoCompleteScriptaculous73 iZend_Controller_Action_Helper_AutoCompleteDojo78 sZend_Controller_Action_Helper_AutoComplete_Abstract7.
 _Zend_Controller_Action_Helper_AjaxContext7.	 _Zend_Controller_Action_Helper_ActionStack7+ YZend_Controller_Action_Helper_Abstract7% MZend_Controller_Action_Exception7 3Zend_Console_Getopt7" GZend_Console_Getopt_Exception7 #Zend_Config7 -Zend_Config_Yaml7 +Zend_Config_Xml7 1Zend_Config_Writer7  ;Zend_Config_Writer_Yaml7 9Zend_Config_Writer_Xml7~ ;Zend_Config_Writer_Json7} 9Zend_Config_Writer_Ini7$| KZend_Config_Writer_FileAbstract7{ =Zend_Config_Writer_Array7z -Zend_Config_Json7y +Zend_Config_Ini7x 7Zend_Config_Exception7$w KZend_CodeGenerator_Php_Property71v eZend_CodeGenerator_Php_Property_DefaultValue7%u MZend_CodeGenerator_Php_Parameter72t gZend_CodeGenerator_Php_Parameter_DefaultValue7"s GZend_CodeGenerator_Php_Method7,r [Zend_CodeGenerator_Php_Member_Container7+q YZend_CodeGenerator_Php_Member_Abstract7 p CZend_CodeGenerator_Php_File7%o MZend_CodeGenerator_Php_Exception7$n KZend_CodeGenerator_Php_Docblock7(m SZend_CodeGenerator_Php_Docblock_Tag7/l aZend_CodeGenerator_Php_Docblock_Tag_Return7.k _Zend_CodeGenerator_Php_Docblock_Tag_Param7   h  zQ2aAbA"	g<mB!




`
F
 						r	_	B	+	{Ne7nCoBg;bC,[4a=            )6 UZend_Dojo_View_Helper_Dojo_Container7)5 UZend_Dojo_View_Helper_DijitContainer7 4 CZend_Dojo_View_Helper_Dijit7&3 OZend_Dojo_View_Helper_DateTextBox7&2 OZend_Dojo_View_Helper_CustomDijit7*1 WZend_Dojo_View_Helper_CurrencyTextBox7&0 OZend_Dojo_View_Helper_ContentPane7#/ IZend_Dojo_View_Helper_ComboBox7#. IZend_Dojo_View_Helper_CheckBox7!- EZend_Dojo_View_Helper_Button7*, WZend_Dojo_View_Helper_BorderContainer7(+ SZend_Dojo_View_Helper_AccordionPane7-* ]Zend_Dojo_View_Helper_AccordionContainer7) =Zend_Dojo_View_Exception7( )Zend_Dojo_Form7' 9Zend_Dojo_Form_SubForm7*& WZend_Dojo_Form_Element_VerticalSlider7-% ]Zend_Dojo_Form_Element_ValidationTextBox7'$ QZend_Dojo_Form_Element_TimeTextBox7## IZend_Dojo_Form_Element_TextBox7$" KZend_Dojo_Form_Element_Textarea7(! SZend_Dojo_Form_Element_SubmitButton7"  GZend_Dojo_Form_Element_Slider7* WZend_Dojo_Form_Element_SimpleTextarea7' QZend_Dojo_Form_Element_RadioButton7+ YZend_Dojo_Form_Element_PasswordTextBox7) UZend_Dojo_Form_Element_NumberTextBox7) UZend_Dojo_Form_Element_NumberSpinner7, [Zend_Dojo_Form_Element_HorizontalSlider7+ YZend_Dojo_Form_Element_FilteringSelect7" GZend_Dojo_Form_Element_Editor7& OZend_Dojo_Form_Element_DijitMulti7! EZend_Dojo_Form_Element_Dijit7' QZend_Dojo_Form_Element_DateTextBox7+ YZend_Dojo_Form_Element_CurrencyTextBox7$ KZend_Dojo_Form_Element_ComboBox7$ KZend_Dojo_Form_Element_CheckBox7" GZend_Dojo_Form_Element_Button7  CZend_Dojo_Form_DisplayGroup7* WZend_Dojo_Form_Decorator_TabContainer7, [Zend_Dojo_Form_Decorator_StackContainer7, [Zend_Dojo_Form_Decorator_SplitContainer7' QZend_Dojo_Form_Decorator_DijitForm7* WZend_Dojo_Form_Decorator_DijitElement7,
 [Zend_Dojo_Form_Decorator_DijitContainer7)	 UZend_Dojo_Form_Decorator_ContentPane7- ]Zend_Dojo_Form_Decorator_BorderContainer7+ YZend_Dojo_Form_Decorator_AccordionPane70 cZend_Dojo_Form_Decorator_AccordionContainer7 3Zend_Dojo_Exception7 )Zend_Dojo_Data7 5Zend_Dojo_BuildLayer7 !Zend_Debug7 Zend_Db7  'Zend_Db_Table7 5Zend_Db_Table_Select7#~ IZend_Db_Table_Select_Exception7} 5Zend_Db_Table_Rowset7#| IZend_Db_Table_Rowset_Exception7"{ GZend_Db_Table_Rowset_Abstract7z /Zend_Db_Table_Row7 y CZend_Db_Table_Row_Exception7x AZend_Db_Table_Row_Abstract7w ;Zend_Db_Table_Exception7v =Zend_Db_Table_Definition7u 9Zend_Db_Table_Abstract7t /Zend_Db_Statement7s =Zend_Db_Statement_Sqlsrv7'r QZend_Db_Statement_Sqlsrv_Exception7q 7Zend_Db_Statement_Pdo7p ?Zend_Db_Statement_Pdo_Oci7o ?Zend_Db_Statement_Pdo_Ibm7n =Zend_Db_Statement_Oracle7'm QZend_Db_Statement_Oracle_Exception7l =Zend_Db_Statement_Mysqli7'k QZend_Db_Statement_Mysqli_Exception7 j CZend_Db_Statement_Exception7i 7Zend_Db_Statement_Db27$h KZend_Db_Statement_Db2_Exception7g )Zend_Db_Select7f =Zend_Db_Select_Exception7e -Zend_Db_Profiler7d 9Zend_Db_Profiler_Query7c =Zend_Db_Profiler_Firebug7b AZend_Db_Profiler_Exception7a %Zend_Db_Expr7` /Zend_Db_Exception7_ 9Zend_Db_Adapter_Sqlsrv7%^ MZend_Db_Adapter_Sqlsrv_Exception7] AZend_Db_Adapter_Pdo_Sqlite7\ ?Zend_Db_Adapter_Pdo_Pgsql7[ ;Zend_Db_Adapter_Pdo_Oci7Z ?Zend_Db_Adapter_Pdo_Mysql7Y ?Zend_Db_Adapter_Pdo_Mssql7X ;Zend_Db_Adapter_Pdo_Ibm7 W CZend_Db_Adapter_Pdo_Ibm_Ids7 V CZend_Db_Adapter_Pdo_Ibm_Db27!U EZend_Db_Adapter_Pdo_Abstract7T 9Zend_Db_Adapter_Oracle7%S MZend_Db_Adapter_Oracle_Exception7R 9Zend_Db_Adapter_Mysqli7%Q MZend_Db_Adapter_Mysqli_Exception7P ?Zend_Db_Adapter_Exception7O 3Zend_Db_Adapter_Db27   ]  g8[6	_9dF/zY?%




V
*				i	?	 mI&s:j:	vFzY@*	z@h/O       7Zend_Feed_Writer_Feed7' QZend_Feed_Writer_Feed_FeedAbstract7< {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry78 sZend_Feed_Writer_Extension_Threading_Renderer_Entry74 kZend_Feed_Writer_Extension_Slash_Renderer_Entry70 cZend_Feed_Writer_Extension_RendererAbstract74 kZend_Feed_Writer_Extension_ITunes_Renderer_Feed75 mZend_Feed_Writer_Extension_ITunes_Renderer_Entry7+ YZend_Feed_Writer_Extension_ITunes_Feed7,
 [Zend_Feed_Writer_Extension_ITunes_Entry78	 sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed79 uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry76 oZend_Feed_Writer_Extension_Content_Renderer_Entry72 gZend_Feed_Writer_Extension_Atom_Renderer_Feed76 oZend_Feed_Writer_Exception_InvalidMethodException7 9Zend_Feed_Writer_Entry7 =Zend_Feed_Writer_Deleted7 'Zend_Feed_Rss7 -Zend_Feed_Reader7  =Zend_Feed_Reader_FeedSet7" GZend_Feed_Reader_FeedAbstract7~ ?Zend_Feed_Reader_Feed_Rss7} AZend_Feed_Reader_Feed_Atom7&| OZend_Feed_Reader_Feed_Atom_Source73{ iZend_Feed_Reader_Extension_WellFormedWeb_Entry7,z [Zend_Feed_Reader_Extension_Thread_Entry70y cZend_Feed_Reader_Extension_Syndication_Feed7+x YZend_Feed_Reader_Extension_Slash_Entry7,w [Zend_Feed_Reader_Extension_Podcast_Feed7-v ]Zend_Feed_Reader_Extension_Podcast_Entry7,u [Zend_Feed_Reader_Extension_FeedAbstract7-t ]Zend_Feed_Reader_Extension_EntryAbstract7/s aZend_Feed_Reader_Extension_DublinCore_Feed70r cZend_Feed_Reader_Extension_DublinCore_Entry74q kZend_Feed_Reader_Extension_CreativeCommons_Feed75p mZend_Feed_Reader_Extension_CreativeCommons_Entry7-o ]Zend_Feed_Reader_Extension_Content_Entry7)n UZend_Feed_Reader_Extension_Atom_Feed7*m WZend_Feed_Reader_Extension_Atom_Entry7#l IZend_Feed_Reader_EntryAbstract7k AZend_Feed_Reader_Entry_Rss7 j CZend_Feed_Reader_Entry_Atom7 i CZend_Feed_Reader_Collection73h iZend_Feed_Reader_Collection_CollectionAbstract7)g UZend_Feed_Reader_Collection_Category7'f QZend_Feed_Reader_Collection_Author7e 9Zend_Feed_Pubsubhubbub7&d OZend_Feed_Pubsubhubbub_Subscriber7/c aZend_Feed_Pubsubhubbub_Subscriber_Callback7%b MZend_Feed_Pubsubhubbub_Publisher7.a _Zend_Feed_Pubsubhubbub_Model_Subscription7/` aZend_Feed_Pubsubhubbub_Model_ModelAbstract7(_ SZend_Feed_Pubsubhubbub_HttpResponse7%^ MZend_Feed_Pubsubhubbub_Exception7,] [Zend_Feed_Pubsubhubbub_CallbackAbstract7\ 3Zend_Feed_Exception7[ 3Zend_Feed_Entry_Rss7Z 5Zend_Feed_Entry_Atom7Y =Zend_Feed_Entry_Abstract7X /Zend_Feed_Element7W /Zend_Feed_Builder7V =Zend_Feed_Builder_Header7$U KZend_Feed_Builder_Header_Itunes7 T CZend_Feed_Builder_Exception7S ;Zend_Feed_Builder_Entry7R )Zend_Feed_Atom7Q 1Zend_Feed_Abstract7P )Zend_Exception7O )Zend_Dom_Query7N 7Zend_Dom_Query_Result7M =Zend_Dom_Query_Css2Xpath7L 1Zend_Dom_Exception7K Zend_Dojo7)J UZend_Dojo_View_Helper_VerticalSlider7,I [Zend_Dojo_View_Helper_ValidationTextBox7&H OZend_Dojo_View_Helper_TimeTextBox7"G GZend_Dojo_View_Helper_TextBox7#F IZend_Dojo_View_Helper_Textarea7'E QZend_Dojo_View_Helper_TabContainer7'D QZend_Dojo_View_Helper_SubmitButton7)C UZend_Dojo_View_Helper_StackContainer7)B UZend_Dojo_View_Helper_SplitContainer7!A EZend_Dojo_View_Helper_Slider7)@ UZend_Dojo_View_Helper_SimpleTextarea7&? OZend_Dojo_View_Helper_RadioButton7*> WZend_Dojo_View_Helper_PasswordTextBox7(= SZend_Dojo_View_Helper_NumberTextBox7(< SZend_Dojo_View_Helper_NumberSpinner7+; YZend_Dojo_View_Helper_HorizontalSlider7: AZend_Dojo_View_Helper_Form7*9 WZend_Dojo_View_Helper_FilteringSelect7!8 EZend_Dojo_View_Helper_Editor77 AZend_Dojo_View_Helper_Dojo7   l  r9|\C1iL0bA rN2




l
K
-
					n	Q	/	W(R)s_:xU/
xT2rS2jJ*yX7                       AZend_Form_Element_Textarea7~ 9Zend_Form_Element_Text7} =Zend_Form_Element_Submit7| =Zend_Form_Element_Select7{ ;Zend_Form_Element_Reset7z ;Zend_Form_Element_Radio7y AZend_Form_Element_Password7"x GZend_Form_Element_Multiselect7$w KZend_Form_Element_MultiCheckbox7v ;Zend_Form_Element_Multi7u ;Zend_Form_Element_Image7t =Zend_Form_Element_Hidden7s 9Zend_Form_Element_Hash7r 9Zend_Form_Element_File7 q CZend_Form_Element_Exception7p AZend_Form_Element_Checkbox7o ?Zend_Form_Element_Captcha7n =Zend_Form_Element_Button7m 9Zend_Form_DisplayGroup7#l IZend_Form_Decorator_ViewScript7#k IZend_Form_Decorator_ViewHelper7 j CZend_Form_Decorator_Tooltip7(i SZend_Form_Decorator_PrepareElements7h ?Zend_Form_Decorator_Label7g ?Zend_Form_Decorator_Image7 f CZend_Form_Decorator_HtmlTag7#e IZend_Form_Decorator_FormErrors7%d MZend_Form_Decorator_FormElements7c =Zend_Form_Decorator_Form7b =Zend_Form_Decorator_File7!a EZend_Form_Decorator_Fieldset7"` GZend_Form_Decorator_Exception7_ AZend_Form_Decorator_Errors7$^ KZend_Form_Decorator_DtDdWrapper7$] KZend_Form_Decorator_Description7 \ CZend_Form_Decorator_Captcha7%[ MZend_Form_Decorator_Captcha_Word7!Z EZend_Form_Decorator_Callback7!Y EZend_Form_Decorator_Abstract7X #Zend_Filter7+W YZend_Filter_Word_UnderscoreToSeparator7&V OZend_Filter_Word_UnderscoreToDash7+U YZend_Filter_Word_UnderscoreToCamelCase7*T WZend_Filter_Word_SeparatorToSeparator7%S MZend_Filter_Word_SeparatorToDash7*R WZend_Filter_Word_SeparatorToCamelCase7(Q SZend_Filter_Word_Separator_Abstract7&P OZend_Filter_Word_DashToUnderscore7%O MZend_Filter_Word_DashToSeparator7%N MZend_Filter_Word_DashToCamelCase7+M YZend_Filter_Word_CamelCaseToUnderscore7*L WZend_Filter_Word_CamelCaseToSeparator7%K MZend_Filter_Word_CamelCaseToDash7J 7Zend_Filter_StripTags7I ?Zend_Filter_StripNewlines7H 9Zend_Filter_StringTrim7G ?Zend_Filter_StringToUpper7F ?Zend_Filter_StringToLower7E 5Zend_Filter_RealPath7D ;Zend_Filter_PregReplace7C -Zend_Filter_Null7&B OZend_Filter_NormalizedToLocalized7&A OZend_Filter_LocalizedToNormalized7@ +Zend_Filter_Int7? /Zend_Filter_Input7> 7Zend_Filter_Inflector7= =Zend_Filter_HtmlEntities7< AZend_Filter_File_UpperCase7; ;Zend_Filter_File_Rename7: AZend_Filter_File_LowerCase79 =Zend_Filter_File_Encrypt78 =Zend_Filter_File_Decrypt77 7Zend_Filter_Exception76 3Zend_Filter_Encrypt7 5 CZend_Filter_Encrypt_Openssl74 AZend_Filter_Encrypt_Mcrypt73 +Zend_Filter_Dir72 1Zend_Filter_Digits71 3Zend_Filter_Decrypt70 9Zend_Filter_Decompress7/ 5Zend_Filter_Compress7. =Zend_Filter_Compress_Zip7- =Zend_Filter_Compress_Tar7, =Zend_Filter_Compress_Rar7+ =Zend_Filter_Compress_Lzf7* ;Zend_Filter_Compress_Gz7*) WZend_Filter_Compress_CompressAbstract7( =Zend_Filter_Compress_Bz27' 5Zend_Filter_Callback7& 3Zend_Filter_Boolean7% 5Zend_Filter_BaseName7$ /Zend_Filter_Alpha7# /Zend_Filter_Alnum7" 1Zend_File_Transfer7!! EZend_File_Transfer_Exception7$  KZend_File_Transfer_Adapter_Http7( SZend_File_Transfer_Adapter_Abstract7 Zend_Feed7 -Zend_Feed_Writer7 ;Zend_Feed_Writer_Source7/ aZend_Feed_Writer_Renderer_RendererAbstract7' QZend_Feed_Writer_Renderer_Feed_Rss7( SZend_Feed_Writer_Renderer_Feed_Atom7/ aZend_Feed_Writer_Renderer_Feed_Atom_Source75 mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract7( SZend_Feed_Writer_Renderer_Entry_Rss7) UZend_Feed_Writer_Renderer_Entry_Atom71 eZend_Feed_Writer_Renderer_Entry_Atom_Deleted7   b  ~Y+zR(Z1
oI#V-



q
U
.
				X	6	pH[,}Y4uIV'pFV'b2   a -Zend_Gdata_Entry7` 7Zend_Gdata_DublinCore7*_ WZend_Gdata_DublinCore_Extension_Title7,^ [Zend_Gdata_DublinCore_Extension_Subject7+] YZend_Gdata_DublinCore_Extension_Rights7.\ _Zend_Gdata_DublinCore_Extension_Publisher7-[ ]Zend_Gdata_DublinCore_Extension_Language7/Z aZend_Gdata_DublinCore_Extension_Identifier7+Y YZend_Gdata_DublinCore_Extension_Format70X cZend_Gdata_DublinCore_Extension_Description7)W UZend_Gdata_DublinCore_Extension_Date7,V [Zend_Gdata_DublinCore_Extension_Creator7U +Zend_Gdata_Docs7T 7Zend_Gdata_Docs_Query7%S MZend_Gdata_Docs_DocumentListFeed7&R OZend_Gdata_Docs_DocumentListEntry7Q 9Zend_Gdata_ClientLogin7P 3Zend_Gdata_Calendar7!O EZend_Gdata_Calendar_ListFeed7"N GZend_Gdata_Calendar_ListEntry7-M ]Zend_Gdata_Calendar_Extension_WebContent7+L YZend_Gdata_Calendar_Extension_Timezone79K uZend_Gdata_Calendar_Extension_SendEventNotifications7+J YZend_Gdata_Calendar_Extension_Selected7+I YZend_Gdata_Calendar_Extension_QuickAdd7'H QZend_Gdata_Calendar_Extension_Link7)G UZend_Gdata_Calendar_Extension_Hidden7(F SZend_Gdata_Calendar_Extension_Color7.E _Zend_Gdata_Calendar_Extension_AccessLevel7#D IZend_Gdata_Calendar_EventQuery7"C GZend_Gdata_Calendar_EventFeed7#B IZend_Gdata_Calendar_EventEntry7A -Zend_Gdata_Books7!@ EZend_Gdata_Books_VolumeQuery7 ? CZend_Gdata_Books_VolumeFeed7!> EZend_Gdata_Books_VolumeEntry7+= YZend_Gdata_Books_Extension_Viewability7-< ]Zend_Gdata_Books_Extension_ThumbnailLink7&; OZend_Gdata_Books_Extension_Review7+: YZend_Gdata_Books_Extension_PreviewLink7(9 SZend_Gdata_Books_Extension_InfoLink7-8 ]Zend_Gdata_Books_Extension_Embeddability7)7 UZend_Gdata_Books_Extension_BooksLink7-6 ]Zend_Gdata_Books_Extension_BooksCategory7.5 _Zend_Gdata_Books_Extension_AnnotationLink7$4 KZend_Gdata_Books_CollectionFeed7%3 MZend_Gdata_Books_CollectionEntry72 1Zend_Gdata_AuthSub71 )Zend_Gdata_App7$0 KZend_Gdata_App_VersionException7/ 3Zend_Gdata_App_Util7#. IZend_Gdata_App_MediaFileSource7- ?Zend_Gdata_App_MediaEntry72, gZend_Gdata_App_LoggingHttpClientAdapterSocket7+ AZend_Gdata_App_IOException7,* [Zend_Gdata_App_InvalidArgumentException7!) EZend_Gdata_App_HttpException7$( KZend_Gdata_App_FeedSourceParent7#' IZend_Gdata_App_FeedEntryParent7& 3Zend_Gdata_App_Feed7% =Zend_Gdata_App_Extension7!$ EZend_Gdata_App_Extension_Uri7%# MZend_Gdata_App_Extension_Updated7#" IZend_Gdata_App_Extension_Title7"! GZend_Gdata_App_Extension_Text7%  MZend_Gdata_App_Extension_Summary7& OZend_Gdata_App_Extension_Subtitle7$ KZend_Gdata_App_Extension_Source7$ KZend_Gdata_App_Extension_Rights7' QZend_Gdata_App_Extension_Published7$ KZend_Gdata_App_Extension_Person7" GZend_Gdata_App_Extension_Name7" GZend_Gdata_App_Extension_Logo7" GZend_Gdata_App_Extension_Link7  CZend_Gdata_App_Extension_Id7" GZend_Gdata_App_Extension_Icon7' QZend_Gdata_App_Extension_Generator7# IZend_Gdata_App_Extension_Email7% MZend_Gdata_App_Extension_Element7$ KZend_Gdata_App_Extension_Edited7# IZend_Gdata_App_Extension_Draft7% MZend_Gdata_App_Extension_Control7) UZend_Gdata_App_Extension_Contributor7% MZend_Gdata_App_Extension_Content7& OZend_Gdata_App_Extension_Category7$ KZend_Gdata_App_Extension_Author7 =Zend_Gdata_App_Exception7
 5Zend_Gdata_App_Entry7,	 [Zend_Gdata_App_CaptchaRequiredException7# IZend_Gdata_App_BaseMediaSource7 3Zend_Gdata_App_Base7* WZend_Gdata_App_BadMethodCallException7! EZend_Gdata_App_AuthException7 Zend_Form7 /Zend_Form_SubForm7 3Zend_Form_Exception7 /Zend_Form_Element7  ;Zend_Form_Element_Xhtml7   d  d6iBjC`,^4




q
I
"				h	I	sJ&qJ$sI&xZ7bI,zR+vIZ(                                          +E YZend_Gdata_Media_Extension_MediaCredit7.D _Zend_Gdata_Media_Extension_MediaCopyright7,C [Zend_Gdata_Media_Extension_MediaContent7-B ]Zend_Gdata_Media_Extension_MediaCategory7A 9Zend_Gdata_Media_Entry7@ AZend_Gdata_Kind_EventEntry7? 7Zend_Gdata_HttpClient7*> WZend_Gdata_HttpAdapterStreamingSocket7)= UZend_Gdata_HttpAdapterStreamingProxy7< /Zend_Gdata_Health7; ;Zend_Gdata_Health_Query7&: OZend_Gdata_Health_ProfileListFeed7'9 QZend_Gdata_Health_ProfileListEntry7"8 GZend_Gdata_Health_ProfileFeed7#7 IZend_Gdata_Health_ProfileEntry7$6 KZend_Gdata_Health_Extension_Ccr75 )Zend_Gdata_Geo74 3Zend_Gdata_Geo_Feed7$3 KZend_Gdata_Geo_Extension_GmlPos7&2 OZend_Gdata_Geo_Extension_GmlPoint7)1 UZend_Gdata_Geo_Extension_GeoRssWhere70 5Zend_Gdata_Geo_Entry7/ -Zend_Gdata_Gbase7". GZend_Gdata_Gbase_SnippetQuery7!- EZend_Gdata_Gbase_SnippetFeed7", GZend_Gdata_Gbase_SnippetEntry7+ 9Zend_Gdata_Gbase_Query7* AZend_Gdata_Gbase_ItemQuery7) ?Zend_Gdata_Gbase_ItemFeed7( AZend_Gdata_Gbase_ItemEntry7' 7Zend_Gdata_Gbase_Feed7-& ]Zend_Gdata_Gbase_Extension_BaseAttribute7% 9Zend_Gdata_Gbase_Entry7$ -Zend_Gdata_Gapps7# AZend_Gdata_Gapps_UserQuery7" ?Zend_Gdata_Gapps_UserFeed7! AZend_Gdata_Gapps_UserEntry7&  OZend_Gdata_Gapps_ServiceException7 9Zend_Gdata_Gapps_Query7  CZend_Gdata_Gapps_OwnerQuery7 AZend_Gdata_Gapps_OwnerFeed7  CZend_Gdata_Gapps_OwnerEntry7# IZend_Gdata_Gapps_NicknameQuery7" GZend_Gdata_Gapps_NicknameFeed7# IZend_Gdata_Gapps_NicknameEntry7! EZend_Gdata_Gapps_MemberQuery7  CZend_Gdata_Gapps_MemberFeed7! EZend_Gdata_Gapps_MemberEntry7  CZend_Gdata_Gapps_GroupQuery7 AZend_Gdata_Gapps_GroupFeed7  CZend_Gdata_Gapps_GroupEntry7% MZend_Gdata_Gapps_Extension_Quota7( SZend_Gdata_Gapps_Extension_Property7( SZend_Gdata_Gapps_Extension_Nickname7$ KZend_Gdata_Gapps_Extension_Name7% MZend_Gdata_Gapps_Extension_Login7) UZend_Gdata_Gapps_Extension_EmailList7 9Zend_Gdata_Gapps_Error7- ]Zend_Gdata_Gapps_EmailListRecipientQuery7,
 [Zend_Gdata_Gapps_EmailListRecipientFeed7-	 ]Zend_Gdata_Gapps_EmailListRecipientEntry7$ KZend_Gdata_Gapps_EmailListQuery7# IZend_Gdata_Gapps_EmailListFeed7$ KZend_Gdata_Gapps_EmailListEntry7 +Zend_Gdata_Feed7 5Zend_Gdata_Extension7 =Zend_Gdata_Extension_Who7 AZend_Gdata_Extension_Where7 ?Zend_Gdata_Extension_When7$  KZend_Gdata_Extension_Visibility7& OZend_Gdata_Extension_Transparency7"~ GZend_Gdata_Extension_Reminder7-} ]Zend_Gdata_Extension_RecurrenceException7$| KZend_Gdata_Extension_Recurrence7 { CZend_Gdata_Extension_Rating7'z QZend_Gdata_Extension_OriginalEvent70y cZend_Gdata_Extension_OpenSearchTotalResults7.x _Zend_Gdata_Extension_OpenSearchStartIndex70w cZend_Gdata_Extension_OpenSearchItemsPerPage7"v GZend_Gdata_Extension_FeedLink7*u WZend_Gdata_Extension_ExtendedProperty7%t MZend_Gdata_Extension_EventStatus7#s IZend_Gdata_Extension_EntryLink7"r GZend_Gdata_Extension_Comments7&q OZend_Gdata_Extension_AttendeeType7(p SZend_Gdata_Extension_AttendeeStatus7o +Zend_Gdata_Exif7n 5Zend_Gdata_Exif_Feed7#m IZend_Gdata_Exif_Extension_Time7#l IZend_Gdata_Exif_Extension_Tags7$k KZend_Gdata_Exif_Extension_Model7#j IZend_Gdata_Exif_Extension_Make7"i GZend_Gdata_Exif_Extension_Iso7,h [Zend_Gdata_Exif_Extension_ImageUniqueId7$g KZend_Gdata_Exif_Extension_FStop7*f WZend_Gdata_Exif_Extension_FocalLength7$e KZend_Gdata_Exif_Extension_Flash7'd QZend_Gdata_Exif_Extension_Exposure7'c QZend_Gdata_Exif_Extension_Distance7b 7Zend_Gdata_Exif_Entry7   [  q@O!d@oB^1



w
@
				Z	1	U+vS/Q"a8~P0hAf7}P"              &  OZend_Gdata_YouTube_Extension_Link7* WZend_Gdata_YouTube_Extension_LastName7* WZend_Gdata_YouTube_Extension_Hometown7) UZend_Gdata_YouTube_Extension_Hobbies7( SZend_Gdata_YouTube_Extension_Gender7+ YZend_Gdata_YouTube_Extension_FirstName7* WZend_Gdata_YouTube_Extension_Duration7- ]Zend_Gdata_YouTube_Extension_Description7+ YZend_Gdata_YouTube_Extension_CountHint7) UZend_Gdata_YouTube_Extension_Control7) UZend_Gdata_YouTube_Extension_Company7' QZend_Gdata_YouTube_Extension_Books7% MZend_Gdata_YouTube_Extension_Age7) UZend_Gdata_YouTube_Extension_AboutMe7# IZend_Gdata_YouTube_ContactFeed7$ KZend_Gdata_YouTube_ContactEntry7# IZend_Gdata_YouTube_CommentFeed7$ KZend_Gdata_YouTube_CommentEntry7$ KZend_Gdata_YouTube_ActivityFeed7% MZend_Gdata_YouTube_ActivityEntry7 ;Zend_Gdata_Spreadsheets7* WZend_Gdata_Spreadsheets_WorksheetFeed7+
 YZend_Gdata_Spreadsheets_WorksheetEntry7,	 [Zend_Gdata_Spreadsheets_SpreadsheetFeed7- ]Zend_Gdata_Spreadsheets_SpreadsheetEntry7& OZend_Gdata_Spreadsheets_ListQuery7% MZend_Gdata_Spreadsheets_ListFeed7& OZend_Gdata_Spreadsheets_ListEntry7/ aZend_Gdata_Spreadsheets_Extension_RowCount7- ]Zend_Gdata_Spreadsheets_Extension_Custom7/ aZend_Gdata_Spreadsheets_Extension_ColCount7+ YZend_Gdata_Spreadsheets_Extension_Cell7*  WZend_Gdata_Spreadsheets_DocumentQuery7& OZend_Gdata_Spreadsheets_CellQuery7%~ MZend_Gdata_Spreadsheets_CellFeed7&} OZend_Gdata_Spreadsheets_CellEntry7| -Zend_Gdata_Query7{ /Zend_Gdata_Photos7 z CZend_Gdata_Photos_UserQuery7y AZend_Gdata_Photos_UserFeed7 x CZend_Gdata_Photos_UserEntry7w AZend_Gdata_Photos_TagEntry7!v EZend_Gdata_Photos_PhotoQuery7 u CZend_Gdata_Photos_PhotoFeed7!t EZend_Gdata_Photos_PhotoEntry7&s OZend_Gdata_Photos_Extension_Width7'r QZend_Gdata_Photos_Extension_Weight7(q SZend_Gdata_Photos_Extension_Version7%p MZend_Gdata_Photos_Extension_User7*o WZend_Gdata_Photos_Extension_Timestamp7*n WZend_Gdata_Photos_Extension_Thumbnail7%m MZend_Gdata_Photos_Extension_Size7)l UZend_Gdata_Photos_Extension_Rotation7+k YZend_Gdata_Photos_Extension_QuotaLimit7-j ]Zend_Gdata_Photos_Extension_QuotaCurrent7)i UZend_Gdata_Photos_Extension_Position7(h SZend_Gdata_Photos_Extension_PhotoId73g iZend_Gdata_Photos_Extension_NumPhotosRemaining7*f WZend_Gdata_Photos_Extension_NumPhotos7)e UZend_Gdata_Photos_Extension_Nickname7%d MZend_Gdata_Photos_Extension_Name72c gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum7)b UZend_Gdata_Photos_Extension_Location7#a IZend_Gdata_Photos_Extension_Id7'` QZend_Gdata_Photos_Extension_Height72_ gZend_Gdata_Photos_Extension_CommentingEnabled7-^ ]Zend_Gdata_Photos_Extension_CommentCount7'] QZend_Gdata_Photos_Extension_Client7)\ UZend_Gdata_Photos_Extension_Checksum7*[ WZend_Gdata_Photos_Extension_BytesUsed7(Z SZend_Gdata_Photos_Extension_AlbumId7'Y QZend_Gdata_Photos_Extension_Access7#X IZend_Gdata_Photos_CommentEntry7!W EZend_Gdata_Photos_AlbumQuery7 V CZend_Gdata_Photos_AlbumFeed7!U EZend_Gdata_Photos_AlbumEntry7T 3Zend_Gdata_MimeFile7S ?Zend_Gdata_MimeBodyString7R AZend_Gdata_MediaMimeStream7Q -Zend_Gdata_Media7P 7Zend_Gdata_Media_Feed7*O WZend_Gdata_Media_Extension_MediaTitle7.N _Zend_Gdata_Media_Extension_MediaThumbnail7)M UZend_Gdata_Media_Extension_MediaText70L cZend_Gdata_Media_Extension_MediaRestriction7+K YZend_Gdata_Media_Extension_MediaRating7+J YZend_Gdata_Media_Extension_MediaPlayer7-I ]Zend_Gdata_Media_Extension_MediaKeywords7)H UZend_Gdata_Media_Extension_MediaHash7*G WZend_Gdata_Media_Extension_MediaGroup70F cZend_Gdata_Media_Extension_MediaDescription7   _  o?Z*kAY)vI#




Q
$				y	T	.		 `:pE%q;a3rL$f-qH$zS/                     & OZend_InfoCard_Xml_KeyInfo_Default7'~ QZend_InfoCard_Xml_KeyInfo_Abstract7 } CZend_InfoCard_Xml_Exception7#| IZend_InfoCard_Xml_EncryptedKey7${ KZend_InfoCard_Xml_EncryptedData7+z YZend_InfoCard_Xml_EncryptedData_XmlEnc7-y ]Zend_InfoCard_Xml_EncryptedData_Abstract7x ?Zend_InfoCard_Xml_Element7 w CZend_InfoCard_Xml_Assertion7%v MZend_InfoCard_Xml_Assertion_Saml7u ;Zend_InfoCard_Exception7%t MZend_InfoCard_Exception_Abstract7s 5Zend_InfoCard_Claims7r 5Zend_InfoCard_Cipher75q mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc75p mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc74o kZend_InfoCard_Cipher_Symmetric_Adapter_Abstract7)n UZend_InfoCard_Cipher_Pki_Adapter_Rsa7.m _Zend_InfoCard_Cipher_Pki_Adapter_Abstract7#l IZend_InfoCard_Cipher_Exception7$k KZend_InfoCard_Adapter_Exception7"j GZend_InfoCard_Adapter_Default7i 3Zend_Http_UserAgent7"h GZend_Http_UserAgent_Validator7g =Zend_Http_UserAgent_Text7(f SZend_Http_UserAgent_Storage_Session7.e _Zend_Http_UserAgent_Storage_NonPersistent7*d WZend_Http_UserAgent_Storage_Exception7c =Zend_Http_UserAgent_Spam7b ?Zend_Http_UserAgent_Probe7 a CZend_Http_UserAgent_Offline7` AZend_Http_UserAgent_Mobile7_ =Zend_Http_UserAgent_Feed7+^ YZend_Http_UserAgent_Features_Exception72] gZend_Http_UserAgent_Features_Adapter_WurflApi7"\ GZend_Http_UserAgent_Exception7[ ?Zend_Http_UserAgent_Email7 Z CZend_Http_UserAgent_Desktop7 Y CZend_Http_UserAgent_Console7 X CZend_Http_UserAgent_Checker7W ;Zend_Http_UserAgent_Bot7'V QZend_Http_UserAgent_AbstractDevice7U 1Zend_Http_Response7T ?Zend_Http_Response_Stream7S 3Zend_Http_Exception7R 3Zend_Http_CookieJar7Q -Zend_Http_Cookie7P -Zend_Http_Client7O AZend_Http_Client_Exception7"N GZend_Http_Client_Adapter_Test7$M KZend_Http_Client_Adapter_Socket7#L IZend_Http_Client_Adapter_Proxy7'K QZend_Http_Client_Adapter_Exception7"J GZend_Http_Client_Adapter_Curl7I !Zend_Gdata7H 1Zend_Gdata_YouTube7"G GZend_Gdata_YouTube_VideoQuery7!F EZend_Gdata_YouTube_VideoFeed7"E GZend_Gdata_YouTube_VideoEntry7(D SZend_Gdata_YouTube_UserProfileEntry7(C SZend_Gdata_YouTube_SubscriptionFeed7)B UZend_Gdata_YouTube_SubscriptionEntry7)A UZend_Gdata_YouTube_PlaylistVideoFeed7*@ WZend_Gdata_YouTube_PlaylistVideoEntry7(? SZend_Gdata_YouTube_PlaylistListFeed7)> UZend_Gdata_YouTube_PlaylistListEntry7"= GZend_Gdata_YouTube_MediaEntry7!< EZend_Gdata_YouTube_InboxFeed7"; GZend_Gdata_YouTube_InboxEntry7): UZend_Gdata_YouTube_Extension_VideoId7*9 WZend_Gdata_YouTube_Extension_Username7*8 WZend_Gdata_YouTube_Extension_Uploaded7'7 QZend_Gdata_YouTube_Extension_Token7(6 SZend_Gdata_YouTube_Extension_Status7,5 [Zend_Gdata_YouTube_Extension_Statistics7'4 QZend_Gdata_YouTube_Extension_State7(3 SZend_Gdata_YouTube_Extension_School7-2 ]Zend_Gdata_YouTube_Extension_ReleaseDate7.1 _Zend_Gdata_YouTube_Extension_Relationship7*0 WZend_Gdata_YouTube_Extension_Recorded7&/ OZend_Gdata_YouTube_Extension_Racy7-. ]Zend_Gdata_YouTube_Extension_QueryString7)- UZend_Gdata_YouTube_Extension_Private7*, WZend_Gdata_YouTube_Extension_Position7/+ aZend_Gdata_YouTube_Extension_PlaylistTitle7,* [Zend_Gdata_YouTube_Extension_PlaylistId7,) [Zend_Gdata_YouTube_Extension_Occupation7)( UZend_Gdata_YouTube_Extension_NoEmbed7'' QZend_Gdata_YouTube_Extension_Music7(& SZend_Gdata_YouTube_Extension_Movies7-% ]Zend_Gdata_YouTube_Extension_MediaRating7,$ [Zend_Gdata_YouTube_Extension_MediaGroup7-# ]Zend_Gdata_YouTube_Extension_MediaCredit7." _Zend_Gdata_YouTube_Extension_MediaContent7*! WZend_Gdata_YouTube_Extension_Location7   q  GWA'yS2|H\@+




n
Q
5
					s	D	i4}_H6qL3nM-fK+raE&pP#f=             p =Zend_Mail_Storage_Folder7"o GZend_Mail_Storage_Folder_Mbox7%n MZend_Mail_Storage_Folder_Maildir7 m CZend_Mail_Storage_Exception7l AZend_Mail_Storage_Abstract7k ;Zend_Mail_Protocol_Smtp7'j QZend_Mail_Protocol_Smtp_Auth_Plain7'i QZend_Mail_Protocol_Smtp_Auth_Login7)h UZend_Mail_Protocol_Smtp_Auth_Crammd57g ;Zend_Mail_Protocol_Pop37f ;Zend_Mail_Protocol_Imap7!e EZend_Mail_Protocol_Exception7 d CZend_Mail_Protocol_Abstract7c )Zend_Mail_Part7b 3Zend_Mail_Part_File7a /Zend_Mail_Message7` 9Zend_Mail_Message_File7_ 3Zend_Mail_Exception7^ Zend_Log7 ] CZend_Log_Writer_ZendMonitor7\ 9Zend_Log_Writer_Syslog7[ 9Zend_Log_Writer_Stream7Z 5Zend_Log_Writer_Null7Y 5Zend_Log_Writer_Mock7X 5Zend_Log_Writer_Mail7W ;Zend_Log_Writer_Firebug7V 1Zend_Log_Writer_Db7U =Zend_Log_Writer_Abstract7T 9Zend_Log_Formatter_Xml7S ?Zend_Log_Formatter_Simple7R AZend_Log_Formatter_Firebug7Q =Zend_Log_Filter_Suppress7P =Zend_Log_Filter_Priority7O ;Zend_Log_Filter_Message7N =Zend_Log_Filter_Abstract7M 1Zend_Log_Exception7L #Zend_Locale7K -Zend_Locale_Math7J =Zend_Locale_Math_PhpMath7I AZend_Locale_Math_Exception7H 1Zend_Locale_Format7G 7Zend_Locale_Exception7F -Zend_Locale_Data7!E EZend_Locale_Data_Translation7D #Zend_Loader7C =Zend_Loader_PluginLoader7'B QZend_Loader_PluginLoader_Exception7A 7Zend_Loader_Exception7@ 9Zend_Loader_Autoloader7$? KZend_Loader_Autoloader_Resource7> Zend_Ldap7= )Zend_Ldap_Node7< 7Zend_Ldap_Node_Schema7#; IZend_Ldap_Node_Schema_OpenLdap7/: aZend_Ldap_Node_Schema_ObjectClass_OpenLdap769 oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectory78 AZend_Ldap_Node_Schema_Item717 eZend_Ldap_Node_Schema_AttributeType_OpenLdap786 sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory7*5 WZend_Ldap_Node_Schema_ActiveDirectory74 9Zend_Ldap_Node_RootDse7$3 KZend_Ldap_Node_RootDse_OpenLdap7&2 OZend_Ldap_Node_RootDse_eDirectory7+1 YZend_Ldap_Node_RootDse_ActiveDirectory70 ?Zend_Ldap_Node_Collection7$/ KZend_Ldap_Node_ChildrenIterator7. ;Zend_Ldap_Node_Abstract7- 9Zend_Ldap_Ldif_Encoder7, -Zend_Ldap_Filter7+ ;Zend_Ldap_Filter_String7* 3Zend_Ldap_Filter_Or7) 5Zend_Ldap_Filter_Not7( 7Zend_Ldap_Filter_Mask7' =Zend_Ldap_Filter_Logical7& AZend_Ldap_Filter_Exception7% 5Zend_Ldap_Filter_And7$ ?Zend_Ldap_Filter_Abstract7# 3Zend_Ldap_Exception7" %Zend_Ldap_Dn7! 3Zend_Ldap_Converter7"  GZend_Ldap_Converter_Exception7 5Zend_Ldap_Collection7* WZend_Ldap_Collection_Iterator_Default7 3Zend_Ldap_Attribute7 #Zend_Layout7 7Zend_Layout_Exception7) UZend_Layout_Controller_Plugin_Layout70 cZend_Layout_Controller_Action_Helper_Layout7 Zend_Json7 -Zend_Json_Server7 5Zend_Json_Server_Smd7! EZend_Json_Server_Smd_Service7 ?Zend_Json_Server_Response7# IZend_Json_Server_Response_Http7 =Zend_Json_Server_Request7" GZend_Json_Server_Request_Http7 AZend_Json_Server_Exception7 9Zend_Json_Server_Error7 9Zend_Json_Server_Cache7 )Zend_Json_Expr7 3Zend_Json_Exception7 /Zend_Json_Encoder7
 /Zend_Json_Decoder7	 'Zend_InfoCard7- ]Zend_InfoCard_Xml_SecurityTokenReference7 AZend_InfoCard_Xml_Security7) UZend_InfoCard_Xml_Security_Transform74 kZend_InfoCard_Xml_Security_Transform_XmlExcC14N73 iZend_InfoCard_Xml_Security_Transform_Exception7< {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignature7) UZend_InfoCard_Xml_Security_Exception7 ?Zend_InfoCard_Xml_KeyInfo7&  OZend_InfoCard_Xml_KeyInfo_XmlDSig7   u  V<{Y4nG!gE*nQ5




}
[
?
 
					u	Y	2		aC%	ucAtX;nG&r_5jE{N&[-           -e ]Zend_Paginator_SerializableLimitIterator7*d WZend_Paginator_ScrollingStyle_Sliding7*c WZend_Paginator_ScrollingStyle_Jumping7*b WZend_Paginator_ScrollingStyle_Elastic7&a OZend_Paginator_ScrollingStyle_All7` =Zend_Paginator_Exception7 _ CZend_Paginator_Adapter_Null7$^ KZend_Paginator_Adapter_Iterator7)] UZend_Paginator_Adapter_DbTableSelect7$\ KZend_Paginator_Adapter_DbSelect7![ EZend_Paginator_Adapter_Array7Z #Zend_OpenId7Y 5Zend_OpenId_Provider7X ?Zend_OpenId_Provider_User7&W OZend_OpenId_Provider_User_Session7!V EZend_OpenId_Provider_Storage7&U OZend_OpenId_Provider_Storage_File7T 7Zend_OpenId_Extension7S AZend_OpenId_Extension_Sreg7R 7Zend_OpenId_Exception7Q 5Zend_OpenId_Consumer7!P EZend_OpenId_Consumer_Storage7&O OZend_OpenId_Consumer_Storage_File7N !Zend_Oauth7M -Zend_Oauth_Token7L =Zend_Oauth_Token_Request7'K QZend_Oauth_Token_AuthorizedRequest7J ;Zend_Oauth_Token_Access7+I YZend_Oauth_Signature_SignatureAbstract7H =Zend_Oauth_Signature_Rsa7#G IZend_Oauth_Signature_Plaintext7F ?Zend_Oauth_Signature_Hmac7E +Zend_Oauth_Http7D ;Zend_Oauth_Http_Utility7&C OZend_Oauth_Http_UserAuthorization7!B EZend_Oauth_Http_RequestToken7 A CZend_Oauth_Http_AccessToken7@ 5Zend_Oauth_Exception7? 3Zend_Oauth_Consumer7> /Zend_Oauth_Config7= /Zend_Oauth_Client7< +Zend_Navigation7; 5Zend_Navigation_Page7: =Zend_Navigation_Page_Uri79 =Zend_Navigation_Page_Mvc78 ?Zend_Navigation_Exception77 ?Zend_Navigation_Container76 Zend_Mime75 )Zend_Mime_Part74 /Zend_Mime_Message73 3Zend_Mime_Exception72 -Zend_Mime_Decode71 #Zend_Memory70 /Zend_Memory_Value7/ 3Zend_Memory_Manager7. 7Zend_Memory_Exception7- 7Zend_Memory_Container7", GZend_Memory_Container_Movable7!+ EZend_Memory_Container_Locked7!* EZend_Memory_AccessController7) 3Zend_Measure_Weight7( 3Zend_Measure_Volume7%' MZend_Measure_Viscosity_Kinematic7#& IZend_Measure_Viscosity_Dynamic7% 3Zend_Measure_Torque7$ /Zend_Measure_Time7# =Zend_Measure_Temperature7" 1Zend_Measure_Speed7! 7Zend_Measure_Pressure7  1Zend_Measure_Power7 3Zend_Measure_Number7 9Zend_Measure_Lightness7 3Zend_Measure_Length7 ?Zend_Measure_Illumination7 9Zend_Measure_Frequency7 1Zend_Measure_Force7 =Zend_Measure_Flow_Volume7 9Zend_Measure_Flow_Mole7 9Zend_Measure_Flow_Mass7 9Zend_Measure_Exception7 3Zend_Measure_Energy7 5Zend_Measure_Density7 5Zend_Measure_Current7  CZend_Measure_Cooking_Weight7  CZend_Measure_Cooking_Volume7 =Zend_Measure_Capacitance7 3Zend_Measure_Binary7 /Zend_Measure_Area7 1Zend_Measure_Angle7 ?Zend_Measure_Acceleration7 7Zend_Measure_Abstract7
 #Zend_Markup7	 7Zend_Markup_TokenList7 /Zend_Markup_Token7* WZend_Markup_Renderer_RendererAbstract7 ?Zend_Markup_Renderer_Html7" GZend_Markup_Renderer_Html_Url7# IZend_Markup_Renderer_Html_List7" GZend_Markup_Renderer_Html_Img7+ YZend_Markup_Renderer_Html_HtmlAbstract7# IZend_Markup_Renderer_Html_Code7#  IZend_Markup_Renderer_Exception7 AZend_Markup_Parser_Textile7!~ EZend_Markup_Parser_Exception7} ?Zend_Markup_Parser_Bbcode7| 7Zend_Markup_Exception7{ Zend_Mail7z =Zend_Mail_Transport_Smtp7!y EZend_Mail_Transport_Sendmail7"x GZend_Mail_Transport_Exception7!w EZend_Mail_Transport_Abstract7v /Zend_Mail_Storage7'u QZend_Mail_Storage_Writable_Maildir7t 9Zend_Mail_Storage_Pop37s 9Zend_Mail_Storage_Mbox7r ?Zend_Mail_Storage_Maildir7q 9Zend_Mail_Storage_Imap7   j mP-
kG)uJ)fCqZ4


y
L
"					p	Q	0	h=qK+lJ.oEoO6 U.t=I                                                9O uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold75N mZend_Pdf_Resource_Font_Simple_Standard_Helvetica7:M wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique7>L Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique77K qZend_Pdf_Resource_Font_Simple_Standard_CourierBold73J iZend_Pdf_Resource_Font_Simple_Standard_Courier7)I UZend_Pdf_Resource_Font_Simple_Parsed72H gZend_Pdf_Resource_Font_Simple_Parsed_TrueType7*G WZend_Pdf_Resource_Font_FontDescriptor7%F MZend_Pdf_Resource_Font_Extracted7#E IZend_Pdf_Resource_Font_CidFont7,D [Zend_Pdf_Resource_Font_CidFont_TrueType7 C CZend_Pdf_Resource_Extractor7$B KZend_Pdf_Resource_ContentStream73A iZend_Pdf_RecursivelyIteratableObjectsContainer7@ +Zend_Pdf_Parser7? 'Zend_Pdf_Page7> -Zend_Pdf_Outline7= ;Zend_Pdf_Outline_Loaded7< =Zend_Pdf_Outline_Created7; /Zend_Pdf_NameTree7: )Zend_Pdf_Image79 'Zend_Pdf_Font78 ?Zend_Pdf_Filter_RunLength7 7 CZend_Pdf_Filter_Compression7$6 KZend_Pdf_Filter_Compression_Lzw7&5 OZend_Pdf_Filter_Compression_Flate74 =Zend_Pdf_Filter_AsciiHex73 ;Zend_Pdf_Filter_Ascii857"2 GZend_Pdf_FileParserDataSource7)1 UZend_Pdf_FileParserDataSource_String7'0 QZend_Pdf_FileParserDataSource_File7/ 3Zend_Pdf_FileParser7. ?Zend_Pdf_FileParser_Image7"- GZend_Pdf_FileParser_Image_Png7, =Zend_Pdf_FileParser_Font7&+ OZend_Pdf_FileParser_Font_OpenType7/* aZend_Pdf_FileParser_Font_OpenType_TrueType7) 1Zend_Pdf_Exception7( ;Zend_Pdf_ElementFactory7"' GZend_Pdf_ElementFactory_Proxy7& -Zend_Pdf_Element7% ;Zend_Pdf_Element_String7#$ IZend_Pdf_Element_String_Binary7# ;Zend_Pdf_Element_Stream7" AZend_Pdf_Element_Reference7%! MZend_Pdf_Element_Reference_Table7'  QZend_Pdf_Element_Reference_Context7 ;Zend_Pdf_Element_Object7# IZend_Pdf_Element_Object_Stream7 =Zend_Pdf_Element_Numeric7 7Zend_Pdf_Element_Null7 7Zend_Pdf_Element_Name7  CZend_Pdf_Element_Dictionary7 =Zend_Pdf_Element_Boolean7 9Zend_Pdf_Element_Array7 5Zend_Pdf_Destination7 ?Zend_Pdf_Destination_Zoom7! EZend_Pdf_Destination_Unknown7 AZend_Pdf_Destination_Named7' QZend_Pdf_Destination_FitVertically7& OZend_Pdf_Destination_FitRectangle7) UZend_Pdf_Destination_FitHorizontally72 gZend_Pdf_Destination_FitBoundingBoxVertically74 kZend_Pdf_Destination_FitBoundingBoxHorizontally7( SZend_Pdf_Destination_FitBoundingBox7 =Zend_Pdf_Destination_Fit7" GZend_Pdf_Destination_Explicit7 )Zend_Pdf_Color7
 1Zend_Pdf_Color_Rgb7	 3Zend_Pdf_Color_Html7 =Zend_Pdf_Color_GrayScale7 3Zend_Pdf_Color_Cmyk7 'Zend_Pdf_Cmap7 AZend_Pdf_Cmap_TrimmedTable7! EZend_Pdf_Cmap_SegmentToDelta7 AZend_Pdf_Cmap_ByteEncoding7& OZend_Pdf_Cmap_ByteEncoding_Static7 +Zend_Pdf_Canvas7  =Zend_Pdf_Canvas_Abstract7 3Zend_Pdf_Annotation7~ =Zend_Pdf_Annotation_Text7} AZend_Pdf_Annotation_Markup7| =Zend_Pdf_Annotation_Link7'{ QZend_Pdf_Annotation_FileAttachment7z +Zend_Pdf_Action7y 3Zend_Pdf_Action_URI7x ;Zend_Pdf_Action_Unknown7w 7Zend_Pdf_Action_Trans7v 9Zend_Pdf_Action_Thread7u AZend_Pdf_Action_SubmitForm7t 7Zend_Pdf_Action_Sound7 s CZend_Pdf_Action_SetOCGState7r ?Zend_Pdf_Action_ResetForm7q ?Zend_Pdf_Action_Rendition7p 7Zend_Pdf_Action_Named7o 7Zend_Pdf_Action_Movie7n 9Zend_Pdf_Action_Launch7m AZend_Pdf_Action_JavaScript7l AZend_Pdf_Action_ImportData7k 5Zend_Pdf_Action_Hide7j 7Zend_Pdf_Action_GoToR7i 7Zend_Pdf_Action_GoToE7h AZend_Pdf_Action_GoTo3DView7g 5Zend_Pdf_Action_GoTo7f )Zend_Paginator7   _  {EX[6jL5b7




f
;
					m	A	$	 sTA#dB%i?y[OC~@rD                                          (. SZend_Search_Lucene_Document_OpenXml7%- MZend_Search_Lucene_Document_Html7*, WZend_Search_Lucene_Document_Exception7%+ MZend_Search_Lucene_Document_Docx7,* [Zend_Search_Lucene_Analysis_TokenFilter76) oZend_Search_Lucene_Analysis_TokenFilter_StopWords77( qZend_Search_Lucene_Analysis_TokenFilter_ShortWords7:' wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf876& oZend_Search_Lucene_Analysis_TokenFilter_LowerCase7&% OZend_Search_Lucene_Analysis_Token7)$ UZend_Search_Lucene_Analysis_Analyzer70# cZend_Search_Lucene_Analysis_Analyzer_Common78" sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num7I! Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive75  mZend_Search_Lucene_Analysis_Analyzer_Common_Utf87F Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive78 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum7I Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive75 mZend_Search_Lucene_Analysis_Analyzer_Common_Text7F Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive7 7Zend_Search_Exception7 -Zend_Rest_Server7 AZend_Rest_Server_Exception7 +Zend_Rest_Route7 3Zend_Rest_Exception7 5Zend_Rest_Controller7 -Zend_Rest_Client7 ;Zend_Rest_Client_Result7& OZend_Rest_Client_Result_Exception7 AZend_Rest_Client_Exception7 'Zend_Registry7 =Zend_Reflection_Property7 ?Zend_Reflection_Parameter7 9Zend_Reflection_Method7 =Zend_Reflection_Function7 5Zend_Reflection_File7
 ?Zend_Reflection_Extension7	 ?Zend_Reflection_Exception7 =Zend_Reflection_Docblock7! EZend_Reflection_Docblock_Tag7( SZend_Reflection_Docblock_Tag_Return7' QZend_Reflection_Docblock_Tag_Param7 7Zend_Reflection_Class7 !Zend_Queue7 9Zend_Queue_Stomp_Frame7 ;Zend_Queue_Stomp_Client7'  QZend_Queue_Stomp_Client_Connection7 1Zend_Queue_Message7#~ IZend_Queue_Message_PlatformJob7 } CZend_Queue_Message_Iterator7| 5Zend_Queue_Exception7({ SZend_Queue_Adapter_PlatformJobQueue7z ;Zend_Queue_Adapter_Null7!y EZend_Queue_Adapter_Memcacheq7x 7Zend_Queue_Adapter_Db7 w CZend_Queue_Adapter_Db_Queue7"v GZend_Queue_Adapter_Db_Message7u =Zend_Queue_Adapter_Array7't QZend_Queue_Adapter_AdapterAbstract7 s CZend_Queue_Adapter_Activemq7r -Zend_ProgressBar7q AZend_ProgressBar_Exception7p =Zend_ProgressBar_Adapter7$o KZend_ProgressBar_Adapter_JsPush7$n KZend_ProgressBar_Adapter_JsPull7'm QZend_ProgressBar_Adapter_Exception7%l MZend_ProgressBar_Adapter_Console7k Zend_Pdf7!j EZend_Pdf_UpdateInfoContainer7i -Zend_Pdf_Trailer7h ;Zend_Pdf_Trailer_Keeper7g AZend_Pdf_Trailer_Generator7f +Zend_Pdf_Target7e )Zend_Pdf_Style7d 7Zend_Pdf_StringParser7c /Zend_Pdf_Resource7b ?Zend_Pdf_Resource_Unified7#a IZend_Pdf_Resource_ImageFactory7` ;Zend_Pdf_Resource_Image7!_ EZend_Pdf_Resource_Image_Tiff7 ^ CZend_Pdf_Resource_Image_Png7!] EZend_Pdf_Resource_Image_Jpeg7$\ KZend_Pdf_Resource_GraphicsState7[ 9Zend_Pdf_Resource_Font7!Z EZend_Pdf_Resource_Font_Type07"Y GZend_Pdf_Resource_Font_Simple7+X YZend_Pdf_Resource_Font_Simple_Standard78W sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats76V oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman77U qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic7;T yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic75S mZend_Pdf_Resource_Font_Simple_Standard_TimesBold72R gZend_Pdf_Resource_Font_Simple_Standard_Symbol7<Q {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaOblique7AP Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique7   X  eD% wJrL"lC"~P"



O
			s	F	Q$i2rCQ$fK[.kL.
uL                       " GZend_Server_Reflection_Method7$ KZend_Server_Reflection_Function7- ]Zend_Server_Reflection_Function_Abstract7% MZend_Server_Reflection_Exception7! EZend_Server_Reflection_Class7! EZend_Server_Method_Prototype7!  EZend_Server_Method_Parameter7" GZend_Server_Method_Definition7 ~ CZend_Server_Method_Callback7} 7Zend_Server_Exception7| 9Zend_Server_Definition7{ /Zend_Server_Cache7z 5Zend_Server_Abstract7y +Zend_Serializer7x ?Zend_Serializer_Exception7!w EZend_Serializer_Adapter_Wddx7)v UZend_Serializer_Adapter_PythonPickle7)u UZend_Serializer_Adapter_PhpSerialize7$t KZend_Serializer_Adapter_PhpCode7!s EZend_Serializer_Adapter_Json7%r MZend_Serializer_Adapter_Igbinary7!q EZend_Serializer_Adapter_Amf37!p EZend_Serializer_Adapter_Amf07,o [Zend_Serializer_Adapter_AdapterAbstract7n 1Zend_Search_Lucene70m cZend_Search_Lucene_TermStreamsPriorityQueue7$l KZend_Search_Lucene_Storage_File7+k YZend_Search_Lucene_Storage_File_Memory7/j aZend_Search_Lucene_Storage_File_Filesystem7)i UZend_Search_Lucene_Storage_Directory74h kZend_Search_Lucene_Storage_Directory_Filesystem7%g MZend_Search_Lucene_Search_Weight7*f WZend_Search_Lucene_Search_Weight_Term7,e [Zend_Search_Lucene_Search_Weight_Phrase7/d aZend_Search_Lucene_Search_Weight_MultiTerm7+c YZend_Search_Lucene_Search_Weight_Empty7-b ]Zend_Search_Lucene_Search_Weight_Boolean7)a UZend_Search_Lucene_Search_Similarity71` eZend_Search_Lucene_Search_Similarity_Default7)_ UZend_Search_Lucene_Search_QueryToken73^ iZend_Search_Lucene_Search_QueryParserException71] eZend_Search_Lucene_Search_QueryParserContext7*\ WZend_Search_Lucene_Search_QueryParser7)[ UZend_Search_Lucene_Search_QueryLexer7'Z QZend_Search_Lucene_Search_QueryHit7)Y UZend_Search_Lucene_Search_QueryEntry7.X _Zend_Search_Lucene_Search_QueryEntry_Term72W gZend_Search_Lucene_Search_QueryEntry_Subquery70V cZend_Search_Lucene_Search_QueryEntry_Phrase7$U KZend_Search_Lucene_Search_Query7-T ]Zend_Search_Lucene_Search_Query_Wildcard7)S UZend_Search_Lucene_Search_Query_Term7*R WZend_Search_Lucene_Search_Query_Range72Q gZend_Search_Lucene_Search_Query_Preprocessing77P qZend_Search_Lucene_Search_Query_Preprocessing_Term79O uZend_Search_Lucene_Search_Query_Preprocessing_Phrase78N sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy7+M YZend_Search_Lucene_Search_Query_Phrase7.L _Zend_Search_Lucene_Search_Query_MultiTerm72K gZend_Search_Lucene_Search_Query_Insignificant7*J WZend_Search_Lucene_Search_Query_Fuzzy7*I WZend_Search_Lucene_Search_Query_Empty7,H [Zend_Search_Lucene_Search_Query_Boolean72G gZend_Search_Lucene_Search_Highlighter_Default7:F wZend_Search_Lucene_Search_BooleanExpressionRecognizer7E =Zend_Search_Lucene_Proxy7%D MZend_Search_Lucene_PriorityQueue7/C aZend_Search_Lucene_Interface_MultiSearcher7#B IZend_Search_Lucene_LockManager7$A KZend_Search_Lucene_Index_Writer70@ cZend_Search_Lucene_Index_TermsPriorityQueue7&? OZend_Search_Lucene_Index_TermInfo7"> GZend_Search_Lucene_Index_Term7+= YZend_Search_Lucene_Index_SegmentWriter78< sZend_Search_Lucene_Index_SegmentWriter_StreamWriter7:; wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter7+: YZend_Search_Lucene_Index_SegmentMerger7)9 UZend_Search_Lucene_Index_SegmentInfo7'8 QZend_Search_Lucene_Index_FieldInfo7(7 SZend_Search_Lucene_Index_DocsFilter7.6 _Zend_Search_Lucene_Index_DictionaryLoader7!5 EZend_Search_Lucene_FSMAction74 9Zend_Search_Lucene_FSM73 =Zend_Search_Lucene_Field7!2 EZend_Search_Lucene_Exception7 1 CZend_Search_Lucene_Document7%0 MZend_Search_Lucene_Document_Xlsx7%/ MZend_Search_Lucene_Document_Pptx7   R  _@"U'zHM{L, 



m
K
&
				p	E	j@ kA"m7y1l%X(z,%                                     QX #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequest7aW CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequest7NV Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformation7LU Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalance7JT Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool7-S ]Zend_Service_DeveloperGarden_LocalSearch7>R Zend_Service_DeveloperGarden_LocalSearch_SearchParameters77Q qZend_Service_DeveloperGarden_LocalSearch_Exception7,P [Zend_Service_DeveloperGarden_IpLocation76O oZend_Service_DeveloperGarden_IpLocation_IpAddress7+N YZend_Service_DeveloperGarden_Exception7,M [Zend_Service_DeveloperGarden_Credential70L cZend_Service_DeveloperGarden_ConferenceCall7CK Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatus7CJ Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail7<I {Zend_Service_DeveloperGarden_ConferenceCall_Participant7:H wZend_Service_DeveloperGarden_ConferenceCall_Exception7DG 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceSchedule7BF Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail7CE Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount7-D ]Zend_Service_DeveloperGarden_Client_Soap72C gZend_Service_DeveloperGarden_Client_Exception77B qZend_Service_DeveloperGarden_Client_ClientAbstract71A eZend_Service_DeveloperGarden_BaseUserService7A@ Zend_Service_DeveloperGarden_BaseUserService_AccountBalance7? 9Zend_Service_Delicious7&> OZend_Service_Delicious_SimplePost7$= KZend_Service_Delicious_PostList7 < CZend_Service_Delicious_Post7%; MZend_Service_Delicious_Exception7 : CZend_Service_Audioscrobbler79 3Zend_Service_Amazon78 ;Zend_Service_Amazon_Sqs7&7 OZend_Service_Amazon_Sqs_Exception7!6 EZend_Service_Amazon_SimpleDb7*5 WZend_Service_Amazon_SimpleDb_Response7&4 OZend_Service_Amazon_SimpleDb_Page7+3 YZend_Service_Amazon_SimpleDb_Exception7+2 YZend_Service_Amazon_SimpleDb_Attribute7'1 QZend_Service_Amazon_SimilarProduct70 9Zend_Service_Amazon_S37"/ GZend_Service_Amazon_S3_Stream7%. MZend_Service_Amazon_S3_Exception7"- GZend_Service_Amazon_ResultSet7, ?Zend_Service_Amazon_Query7!+ EZend_Service_Amazon_OfferSet7* ?Zend_Service_Amazon_Offer7&) OZend_Service_Amazon_ListmaniaList7( =Zend_Service_Amazon_Item7' ?Zend_Service_Amazon_Image7"& GZend_Service_Amazon_Exception7(% SZend_Service_Amazon_EditorialReview7$ ;Zend_Service_Amazon_Ec27+# YZend_Service_Amazon_Ec2_Securitygroups7%" MZend_Service_Amazon_Ec2_Response7#! IZend_Service_Amazon_Ec2_Region7$  KZend_Service_Amazon_Ec2_Keypair7% MZend_Service_Amazon_Ec2_Instance7- ]Zend_Service_Amazon_Ec2_Instance_Windows7. _Zend_Service_Amazon_Ec2_Instance_Reserved7" GZend_Service_Amazon_Ec2_Image7& OZend_Service_Amazon_Ec2_Exception7& OZend_Service_Amazon_Ec2_Elasticip7  CZend_Service_Amazon_Ec2_Ebs7' QZend_Service_Amazon_Ec2_CloudWatch7. _Zend_Service_Amazon_Ec2_Availabilityzones7% MZend_Service_Amazon_Ec2_Abstract7' QZend_Service_Amazon_CustomerReview7' QZend_Service_Amazon_Authentication7* WZend_Service_Amazon_Authentication_V27* WZend_Service_Amazon_Authentication_V17* WZend_Service_Amazon_Authentication_S371 eZend_Service_Amazon_Authentication_Exception7$ KZend_Service_Amazon_Accessories7! EZend_Service_Amazon_Abstract7 5Zend_Service_Akismet7 7Zend_Service_Abstract7 9Zend_Server_Reflection7'
 QZend_Server_Reflection_ReturnValue7%	 MZend_Server_Reflection_Prototype7% MZend_Server_Reflection_Parameter7  CZend_Server_Reflection_Node7   /  NB*~)d

Q			g	R8\;T'-{                                                                                    _ ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType7[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponse7W /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType7S 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponse7Q #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstract7S 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponse7J Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType7g  OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseType7c GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponse7W~ /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse7U} +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponse7S| 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse73{ iZend_Service_DeveloperGarden_Response_BaseType7Jz Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstract7Cy Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCall7Gx Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced7=w }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCall7Av Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatus7Au Zend_Service_DeveloperGarden_Request_SmsValidation_Validate7Nt Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeyword7Cs Zend_Service_DeveloperGarden_Request_SmsValidation_Invalidate7Lr Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbers7Bq Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract79p uZend_Service_DeveloperGarden_Request_SendSms_SendSMS7>o Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS79n uZend_Service_DeveloperGarden_Request_RequestAbstract7Im Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequest7El Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest73k iZend_Service_DeveloperGarden_Request_Exception7Rj %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequest7Yi 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequest7dh IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequest7Qg #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequest7Rf %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequest7Ye 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequest7dd IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequest7Qc #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequest7Ob Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequest7Ua +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequest7U` +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequest7V_ -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequest7a^ CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequest7Z] 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequest7T\ )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequest7R[ %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequest7YZ 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequest7QY #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequest7   .  L4iB-

y
 		_	 Q0i:Y^+5                                                    K5 Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2Response7L4 Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponse7I3 Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumber7W2 /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponse7J1 Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponse7U0 +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponse7C/ Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponse7C. Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstract7H- Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponse7U, +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponse7Q+ #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponse7I* Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception7;) yZend_Service_DeveloperGarden_Response_ResponseAbstract7O( Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseType7K' Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponse7A& Zend_Service_DeveloperGarden_Response_IpLocation_RegionType7K% Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseType7G$ Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponse7L# Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationType7I" Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType7>! Zend_Service_DeveloperGarden_Response_IpLocation_CityType74  kZend_Service_DeveloperGarden_Response_Exception7T )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse7[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponse7f MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponse7S 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponse7T )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse7[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponse7f MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponse7S 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponse7U +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType7Q #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse7[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseType7W /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse7[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseType7W /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse7\ 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseType7X 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponse7g OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseType7c GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse7` AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType7\ 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponse7Z 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseType7V
 -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponse7X	 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseType7T )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse7   V  gt5mJ&HzE



`
2				d	0sCwU2Z- `8tK+_:tJ*J                                     # IZend_Service_Technorati_Author7
 ;Zend_Service_StrikeIron7(	 SZend_Service_StrikeIron_ZipCodeInfo72 gZend_Service_StrikeIron_USAddressVerification7- ]Zend_Service_StrikeIron_SalesUseTaxBasic7& OZend_Service_StrikeIron_Exception7& OZend_Service_StrikeIron_Decorator7! EZend_Service_StrikeIron_Base7 ;Zend_Service_SlideShare7& OZend_Service_SlideShare_SlideShow7& OZend_Service_SlideShare_Exception7  1Zend_Service_Simpy7$ KZend_Service_Simpy_WatchlistSet7*~ WZend_Service_Simpy_WatchlistFilterSet7'} QZend_Service_Simpy_WatchlistFilter7!| EZend_Service_Simpy_Watchlist7{ ?Zend_Service_Simpy_TagSet7z 9Zend_Service_Simpy_Tag7y AZend_Service_Simpy_NoteSet7x ;Zend_Service_Simpy_Note7w AZend_Service_Simpy_LinkSet7!v EZend_Service_Simpy_LinkQuery7u ;Zend_Service_Simpy_Link7%t MZend_Service_ShortUrl_TinyUrlCom7!s EZend_Service_ShortUrl_JdemCz7$r KZend_Service_ShortUrl_Exception7,q [Zend_Service_ShortUrl_AbstractShortener7p 9Zend_Service_ReCaptcha7$o KZend_Service_ReCaptcha_Response7$n KZend_Service_ReCaptcha_MailHide7.m _Zend_Service_ReCaptcha_MailHide_Exception7%l MZend_Service_ReCaptcha_Exception7k 7Zend_Service_Nirvanix7#j IZend_Service_Nirvanix_Response7)i UZend_Service_Nirvanix_Namespace_Imfs7)h UZend_Service_Nirvanix_Namespace_Base7$g KZend_Service_Nirvanix_Exception7f 7Zend_Service_LiveDocx7$e KZend_Service_LiveDocx_MailMerge7$d KZend_Service_LiveDocx_Exception7c 3Zend_Service_Flickr7"b GZend_Service_Flickr_ResultSet7a AZend_Service_Flickr_Result7` ?Zend_Service_Flickr_Image7_ 9Zend_Service_Exception7^ ?Zend_Service_Ebay_Finding7)] UZend_Service_Ebay_Finding_Storefront7+\ YZend_Service_Ebay_Finding_ShippingInfo7+[ YZend_Service_Ebay_Finding_Set_Abstract7,Z [Zend_Service_Ebay_Finding_SellingStatus7)Y UZend_Service_Ebay_Finding_SellerInfo7,X [Zend_Service_Ebay_Finding_Search_Result7*W WZend_Service_Ebay_Finding_Search_Item7.V _Zend_Service_Ebay_Finding_Search_Item_Set70U cZend_Service_Ebay_Finding_Response_Keywords7-T ]Zend_Service_Ebay_Finding_Response_Items72S gZend_Service_Ebay_Finding_Response_Histograms70R cZend_Service_Ebay_Finding_Response_Abstract7/Q aZend_Service_Ebay_Finding_PaginationOutput7*P WZend_Service_Ebay_Finding_ListingInfo7(O SZend_Service_Ebay_Finding_Exception7,N [Zend_Service_Ebay_Finding_Error_Message7)M UZend_Service_Ebay_Finding_Error_Data7-L ]Zend_Service_Ebay_Finding_Error_Data_Set7'K QZend_Service_Ebay_Finding_Category71J eZend_Service_Ebay_Finding_Category_Histogram75I mZend_Service_Ebay_Finding_Category_Histogram_Set7;H yZend_Service_Ebay_Finding_Category_Histogram_Container7%G MZend_Service_Ebay_Finding_Aspect7)F UZend_Service_Ebay_Finding_Aspect_Set75E mZend_Service_Ebay_Finding_Aspect_Histogram_Value79D uZend_Service_Ebay_Finding_Aspect_Histogram_Value_Set79C uZend_Service_Ebay_Finding_Aspect_Histogram_Container7'B QZend_Service_Ebay_Finding_Abstract7 A CZend_Service_Ebay_Exception7@ AZend_Service_Ebay_Abstract7+? YZend_Service_DeveloperGarden_VoiceCall7/> aZend_Service_DeveloperGarden_SmsValidation7)= UZend_Service_DeveloperGarden_SendSms75< mZend_Service_DeveloperGarden_SecurityTokenServer7;; yZend_Service_DeveloperGarden_SecurityTokenServer_Cache7K: Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstract7L9 Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponse7P8 !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponse7G7 Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponse7J6 Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponse7   J  tB`6	W)qT]!


8			d	v>WrAm5Lr2Y/b;                                        %U MZend_Service_Yahoo_NewsResultSet7"T GZend_Service_Yahoo_NewsResult7&S OZend_Service_Yahoo_LocalResultSet7#R IZend_Service_Yahoo_LocalResult7+Q YZend_Service_Yahoo_InlinkDataResultSet7(P SZend_Service_Yahoo_InlinkDataResult7&O OZend_Service_Yahoo_ImageResultSet7#N IZend_Service_Yahoo_ImageResult7M =Zend_Service_Yahoo_Image7&L OZend_Service_WindowsAzure_Storage74K kZend_Service_WindowsAzure_Storage_TableInstance77J qZend_Service_WindowsAzure_Storage_TableEntityQuery72I gZend_Service_WindowsAzure_Storage_TableEntity7,H [Zend_Service_WindowsAzure_Storage_Table7<G {Zend_Service_WindowsAzure_Storage_StorageEntityAbstract77F qZend_Service_WindowsAzure_Storage_SignedIdentifier73E iZend_Service_WindowsAzure_Storage_QueueMessage74D kZend_Service_WindowsAzure_Storage_QueueInstance7,C [Zend_Service_WindowsAzure_Storage_Queue79B uZend_Service_WindowsAzure_Storage_PageRegionInstance74A kZend_Service_WindowsAzure_Storage_LeaseInstance79@ uZend_Service_WindowsAzure_Storage_DynamicTableEntity73? iZend_Service_WindowsAzure_Storage_BlobInstance74> kZend_Service_WindowsAzure_Storage_BlobContainer7+= YZend_Service_WindowsAzure_Storage_Blob72< gZend_Service_WindowsAzure_Storage_Blob_Stream7;; yZend_Service_WindowsAzure_Storage_BatchStorageAbstract7,: [Zend_Service_WindowsAzure_Storage_Batch7-9 ]Zend_Service_WindowsAzure_SessionHandler7>8 Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract717 eZend_Service_WindowsAzure_RetryPolicy_RetryN726 gZend_Service_WindowsAzure_RetryPolicy_NoRetry745 kZend_Service_WindowsAzure_RetryPolicy_Exception7(4 SZend_Service_WindowsAzure_Exception7J3 Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscription722 gZend_Service_WindowsAzure_Diagnostics_Manager731 iZend_Service_WindowsAzure_Diagnostics_LogLevel740 kZend_Service_WindowsAzure_Diagnostics_Exception7N/ Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscription7H. Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLog7L- Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCounters7K, Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstract7<+ {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogs7A* Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstance7D) 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectories7U( +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogs7D' 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSources78& sZend_Service_WindowsAzure_Credentials_SharedKeyLite74% kZend_Service_WindowsAzure_Credentials_SharedKey7A$ Zend_Service_WindowsAzure_Credentials_SharedAccessSignature74# kZend_Service_WindowsAzure_Credentials_Exception7>" Zend_Service_WindowsAzure_Credentials_CredentialsAbstract7! 5Zend_Service_Twitter7   CZend_Service_Twitter_Search7# IZend_Service_Twitter_Exception7 ;Zend_Service_Technorati7# IZend_Service_Technorati_Weblog7" GZend_Service_Technorati_Utils7* WZend_Service_Technorati_TagsResultSet7' QZend_Service_Technorati_TagsResult7) UZend_Service_Technorati_TagResultSet7& OZend_Service_Technorati_TagResult7, [Zend_Service_Technorati_SearchResultSet7) UZend_Service_Technorati_SearchResult7& OZend_Service_Technorati_ResultSet7# IZend_Service_Technorati_Result7* WZend_Service_Technorati_KeyInfoResult7* WZend_Service_Technorati_GetInfoResult7& OZend_Service_Technorati_Exception71 eZend_Service_Technorati_DailyCountsResultSet7. _Zend_Service_Technorati_DailyCountsResult7, [Zend_Service_Technorati_CosmosResultSet7) UZend_Service_Technorati_CosmosResult7+ YZend_Service_Technorati_BlogInfoResult7   `  b;lM$fG'pO&m:#



}
X
7
 
					m	>	\.kD]AxV:"pCOBf*                                      95 uZend_Tool_Framework_Client_Interactive_InputResponse784 sZend_Tool_Framework_Client_Interactive_InputRequest783 sZend_Tool_Framework_Client_Interactive_InputHandler7)2 UZend_Tool_Framework_Client_Exception7'1 QZend_Tool_Framework_Client_Console7D0 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Indention7D/ 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizer7C. Zend_Tool_Framework_Client_Console_ResponseDecorator_Blockize7F- Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter70, cZend_Tool_Framework_Client_Console_Manifest72+ gZend_Tool_Framework_Client_Console_HelpSystem76* oZend_Tool_Framework_Client_Console_ArgumentParser7&) OZend_Tool_Framework_Client_Config7(( SZend_Tool_Framework_Client_Abstract7*' WZend_Tool_Framework_Action_Repository7)& UZend_Tool_Framework_Action_Exception7$% KZend_Tool_Framework_Action_Base7$ 'Zend_TimeSync7# 1Zend_TimeSync_Sntp7" 9Zend_TimeSync_Protocol7! /Zend_TimeSync_Ntp7  ;Zend_TimeSync_Exception7 +Zend_Text_Table7 3Zend_Text_Table_Row7 ?Zend_Text_Table_Exception7& OZend_Text_Table_Decorator_Unicode7$ KZend_Text_Table_Decorator_Ascii7 9Zend_Text_Table_Column7 3Zend_Text_MultiByte7 -Zend_Text_Figlet7 AZend_Text_Figlet_Exception7 3Zend_Text_Exception7& OZend_Test_PHPUnit_Db_SimpleTester7, [Zend_Test_PHPUnit_Db_Operation_Truncate7* WZend_Test_PHPUnit_Db_Operation_Insert7- ]Zend_Test_PHPUnit_Db_Operation_DeleteAll7* WZend_Test_PHPUnit_Db_Metadata_Generic7# IZend_Test_PHPUnit_Db_Exception7, [Zend_Test_PHPUnit_Db_DataSet_QueryTable7. _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet70 cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet7) UZend_Test_PHPUnit_Db_DataSet_DbTable7* WZend_Test_PHPUnit_Db_DataSet_DbRowset7$
 KZend_Test_PHPUnit_Db_Connection7'	 QZend_Test_PHPUnit_DatabaseTestCase7) UZend_Test_PHPUnit_ControllerTestCase70 cZend_Test_PHPUnit_Constraint_ResponseHeader7* WZend_Test_PHPUnit_Constraint_Redirect7+ YZend_Test_PHPUnit_Constraint_Exception7* WZend_Test_PHPUnit_Constraint_DomQuery7 7Zend_Test_DbStatement7 3Zend_Test_DbAdapter7 /Zend_Tag_ItemList7  'Zend_Tag_Item7 1Zend_Tag_Exception7~ )Zend_Tag_Cloud7} =Zend_Tag_Cloud_Exception7!| EZend_Tag_Cloud_Decorator_Tag7%{ MZend_Tag_Cloud_Decorator_HtmlTag7'z QZend_Tag_Cloud_Decorator_HtmlCloud7'y QZend_Tag_Cloud_Decorator_Exception7#x IZend_Tag_Cloud_Decorator_Cloud7w )Zend_Soap_Wsdl7/v aZend_Soap_Wsdl_Strategy_DefaultComplexType7&u OZend_Soap_Wsdl_Strategy_Composite70t cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence7/s aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex7$r KZend_Soap_Wsdl_Strategy_AnyType7%q MZend_Soap_Wsdl_Strategy_Abstract7p =Zend_Soap_Wsdl_Exception7o -Zend_Soap_Server7n AZend_Soap_Server_Exception7m -Zend_Soap_Client7l 9Zend_Soap_Client_Local7k AZend_Soap_Client_Exception7j ;Zend_Soap_Client_DotNet7i ;Zend_Soap_Client_Common7h 9Zend_Soap_AutoDiscover7%g MZend_Soap_AutoDiscover_Exception7f %Zend_Session7)e UZend_Session_Validator_HttpUserAgent7$d KZend_Session_Validator_Abstract7'c QZend_Session_SaveHandler_Exception7%b MZend_Session_SaveHandler_DbTable7a 9Zend_Session_Namespace7` 9Zend_Session_Exception7_ 7Zend_Session_Abstract7^ 1Zend_Service_Yahoo7$] KZend_Service_Yahoo_WebResultSet7!\ EZend_Service_Yahoo_WebResult7&[ OZend_Service_Yahoo_VideoResultSet7#Z IZend_Service_Yahoo_VideoResult7!Y EZend_Service_Yahoo_ResultSet7X ?Zend_Service_Yahoo_Result7)W UZend_Service_Yahoo_PageDataResultSet7&V OZend_Service_Yahoo_PageDataResult7   K  a5 TrGc4~R



C
			y	B	m)RKtC|F
h5f-L                                                   8  sZend_Tool_Project_Context_Zf_SearchIndexesDirectory7< {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory78~ sZend_Tool_Project_Context_Zf_PublicScriptsDirectory71} eZend_Tool_Project_Context_Zf_PublicIndexFile77| qZend_Tool_Project_Context_Zf_PublicImagesDirectory71{ eZend_Tool_Project_Context_Zf_PublicDirectory75z mZend_Tool_Project_Context_Zf_ProjectProviderFile72y gZend_Tool_Project_Context_Zf_ModulesDirectory71x eZend_Tool_Project_Context_Zf_ModuleDirectory71w eZend_Tool_Project_Context_Zf_ModelsDirectory7+v YZend_Tool_Project_Context_Zf_ModelFile7/u aZend_Tool_Project_Context_Zf_LogsDirectory72t gZend_Tool_Project_Context_Zf_LocalesDirectory72s gZend_Tool_Project_Context_Zf_LibraryDirectory72r gZend_Tool_Project_Context_Zf_LayoutsDirectory78q sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory72p gZend_Tool_Project_Context_Zf_LayoutScriptFile7.o _Zend_Tool_Project_Context_Zf_HtaccessFile70n cZend_Tool_Project_Context_Zf_FormsDirectory7*m WZend_Tool_Project_Context_Zf_FormFile7/l aZend_Tool_Project_Context_Zf_DocsDirectory7-k ]Zend_Tool_Project_Context_Zf_DbTableFile72j gZend_Tool_Project_Context_Zf_DbTableDirectory7/i aZend_Tool_Project_Context_Zf_DataDirectory76h oZend_Tool_Project_Context_Zf_ControllersDirectory70g cZend_Tool_Project_Context_Zf_ControllerFile72f gZend_Tool_Project_Context_Zf_ConfigsDirectory7,e [Zend_Tool_Project_Context_Zf_ConfigFile70d cZend_Tool_Project_Context_Zf_CacheDirectory7/c aZend_Tool_Project_Context_Zf_BootstrapFile76b oZend_Tool_Project_Context_Zf_ApplicationDirectory77a qZend_Tool_Project_Context_Zf_ApplicationConfigFile7/` aZend_Tool_Project_Context_Zf_ApisDirectory7._ _Zend_Tool_Project_Context_Zf_ActionMethod73^ iZend_Tool_Project_Context_Zf_AbstractClassFile7@] Zend_Tool_Project_Context_System_ProjectProvidersDirectory78\ sZend_Tool_Project_Context_System_ProjectProfileFile76[ oZend_Tool_Project_Context_System_ProjectDirectory7)Z UZend_Tool_Project_Context_Repository7.Y _Zend_Tool_Project_Context_Filesystem_File73X iZend_Tool_Project_Context_Filesystem_Directory72W gZend_Tool_Project_Context_Filesystem_Abstract7(V SZend_Tool_Project_Context_Exception7-U ]Zend_Tool_Project_Context_Content_Engine73T iZend_Tool_Project_Context_Content_Engine_Phtml7;S yZend_Tool_Project_Context_Content_Engine_CodeGenerator70R cZend_Tool_Framework_System_Provider_Version70Q cZend_Tool_Framework_System_Provider_Phpinfo71P eZend_Tool_Framework_System_Provider_Manifest7/O aZend_Tool_Framework_System_Provider_Config7(N SZend_Tool_Framework_System_Manifest7-M ]Zend_Tool_Framework_System_Action_Delete7-L ]Zend_Tool_Framework_System_Action_Create7!K EZend_Tool_Framework_Registry7+J YZend_Tool_Framework_Registry_Exception7+I YZend_Tool_Framework_Provider_Signature7,H [Zend_Tool_Framework_Provider_Repository7+G YZend_Tool_Framework_Provider_Exception7*F WZend_Tool_Framework_Provider_Abstract7&E OZend_Tool_Framework_Metadata_Tool7)D UZend_Tool_Framework_Metadata_Dynamic7'C QZend_Tool_Framework_Metadata_Basic7,B [Zend_Tool_Framework_Manifest_Repository7+A YZend_Tool_Framework_Manifest_Exception71@ eZend_Tool_Framework_Loader_IncludePathLoader7J? Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator7+> YZend_Tool_Framework_Loader_BasicLoader7(= SZend_Tool_Framework_Loader_Abstract7"< GZend_Tool_Framework_Exception7'; QZend_Tool_Framework_Client_Storage71: eZend_Tool_Framework_Client_Storage_Directory7(9 SZend_Tool_Framework_Client_Response7D8 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator7'7 QZend_Tool_Framework_Client_Request7(6 SZend_Tool_Framework_Client_Manifest7   Y  OFX$o5S/


X
#				m	C	a9e:oH%sT3e7pH$ rO*gC                         "Y GZend_Validate_Barcode_Postnet7!X EZend_Validate_Barcode_Planet7#W IZend_Validate_Barcode_Leitcode7 V CZend_Validate_Barcode_Itf147U AZend_Validate_Barcode_Issn7*T WZend_Validate_Barcode_IntelligentMail7$S KZend_Validate_Barcode_Identcode7!R EZend_Validate_Barcode_Gtin147!Q EZend_Validate_Barcode_Gtin137!P EZend_Validate_Barcode_Gtin127O AZend_Validate_Barcode_Ean87N AZend_Validate_Barcode_Ean57M AZend_Validate_Barcode_Ean27 L CZend_Validate_Barcode_Ean187 K CZend_Validate_Barcode_Ean147 J CZend_Validate_Barcode_Ean137 I CZend_Validate_Barcode_Ean127$H KZend_Validate_Barcode_Code93ext7!G EZend_Validate_Barcode_Code937$F KZend_Validate_Barcode_Code39ext7!E EZend_Validate_Barcode_Code397,D [Zend_Validate_Barcode_Code25interleaved7!C EZend_Validate_Barcode_Code257*B WZend_Validate_Barcode_AdapterAbstract7A 3Zend_Validate_Alpha7@ 3Zend_Validate_Alnum7? 9Zend_Validate_Abstract7> Zend_Uri7= 'Zend_Uri_Http7< 1Zend_Uri_Exception7; )Zend_Translate7: 7Zend_Translate_Plural79 =Zend_Translate_Exception78 9Zend_Translate_Adapter7!7 EZend_Translate_Adapter_XmlTm7!6 EZend_Translate_Adapter_Xliff75 AZend_Translate_Adapter_Tmx74 AZend_Translate_Adapter_Tbx73 ?Zend_Translate_Adapter_Qt72 AZend_Translate_Adapter_Ini7#1 IZend_Translate_Adapter_Gettext70 AZend_Translate_Adapter_Csv7!/ EZend_Translate_Adapter_Array7$. KZend_Tool_Project_Provider_View7$- KZend_Tool_Project_Provider_Test7/, aZend_Tool_Project_Provider_ProjectProvider7'+ QZend_Tool_Project_Provider_Project7'* QZend_Tool_Project_Provider_Profile7&) OZend_Tool_Project_Provider_Module7%( MZend_Tool_Project_Provider_Model7(' SZend_Tool_Project_Provider_Manifest7&& OZend_Tool_Project_Provider_Layout7$% KZend_Tool_Project_Provider_Form7)$ UZend_Tool_Project_Provider_Exception7'# QZend_Tool_Project_Provider_DbTable7)" UZend_Tool_Project_Provider_DbAdapter7*! WZend_Tool_Project_Provider_Controller7+  YZend_Tool_Project_Provider_Application7& OZend_Tool_Project_Provider_Action7( SZend_Tool_Project_Provider_Abstract7 ?Zend_Tool_Project_Profile7' QZend_Tool_Project_Profile_Resource79 uZend_Tool_Project_Profile_Resource_SearchConstraints71 eZend_Tool_Project_Profile_Resource_Container7= }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter75 mZend_Tool_Project_Profile_Iterator_ContextFilter7- ]Zend_Tool_Project_Profile_FileParser_Xml7( SZend_Tool_Project_Profile_Exception7  CZend_Tool_Project_Exception7< {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory70 cZend_Tool_Project_Context_Zf_ViewsDirectory76 oZend_Tool_Project_Context_Zf_ViewScriptsDirectory70 cZend_Tool_Project_Context_Zf_ViewScriptFile76 oZend_Tool_Project_Context_Zf_ViewHelpersDirectory76 oZend_Tool_Project_Context_Zf_ViewFiltersDirectory7A Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory72 gZend_Tool_Project_Context_Zf_UploadsDirectory70 cZend_Tool_Project_Context_Zf_TestsDirectory77 qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile7@
 Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory71	 eZend_Tool_Project_Context_Zf_TestLibraryFile76 oZend_Tool_Project_Context_Zf_TestLibraryDirectory7: wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFile7: wZend_Tool_Project_Context_Zf_TestApplicationDirectory7@ Zend_Tool_Project_Context_Zf_TestApplicationControllerFile7E Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory7> Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile74 kZend_Tool_Project_Context_Zf_TemporaryDirectory73 iZend_Tool_Project_Context_Zf_SessionsDirectory7   n oQ3rL/~S1zW8hL*




~
e
J
+
					`	9		 rQ/f@k@jH" uR-
{U7a5u=                                5G mZend_View_Helper_Placeholder_Container_Exception74F kZend_View_Helper_Placeholder_Container_Abstract7!E EZend_View_Helper_PartialLoop7D =Zend_View_Helper_Partial7'C QZend_View_Helper_Partial_Exception7'B QZend_View_Helper_PaginationControl7 A CZend_View_Helper_Navigation7(@ SZend_View_Helper_Navigation_Sitemap7%? MZend_View_Helper_Navigation_Menu7&> OZend_View_Helper_Navigation_Links7/= aZend_View_Helper_Navigation_HelperAbstract7,< [Zend_View_Helper_Navigation_Breadcrumbs7; ;Zend_View_Helper_Layout7: 7Zend_View_Helper_Json7"9 GZend_View_Helper_InlineScript7#8 IZend_View_Helper_HtmlQuicktime77 ?Zend_View_Helper_HtmlPage7 6 CZend_View_Helper_HtmlObject75 ?Zend_View_Helper_HtmlList74 AZend_View_Helper_HtmlFlash7!3 EZend_View_Helper_HtmlElement72 AZend_View_Helper_HeadTitle71 AZend_View_Helper_HeadStyle7 0 CZend_View_Helper_HeadScript7/ ?Zend_View_Helper_HeadMeta7. ?Zend_View_Helper_HeadLink7- ?Zend_View_Helper_Gravatar7", GZend_View_Helper_FormTextarea7+ ?Zend_View_Helper_FormText7 * CZend_View_Helper_FormSubmit7 ) CZend_View_Helper_FormSelect7( AZend_View_Helper_FormReset7' AZend_View_Helper_FormRadio7"& GZend_View_Helper_FormPassword7% ?Zend_View_Helper_FormNote7'$ QZend_View_Helper_FormMultiCheckbox7# AZend_View_Helper_FormLabel7" AZend_View_Helper_FormImage7 ! CZend_View_Helper_FormHidden7  ?Zend_View_Helper_FormFile7  CZend_View_Helper_FormErrors7! EZend_View_Helper_FormElement7" GZend_View_Helper_FormCheckbox7  CZend_View_Helper_FormButton7 7Zend_View_Helper_Form7 ?Zend_View_Helper_Fieldset7 =Zend_View_Helper_Doctype7! EZend_View_Helper_DeclareVars7 9Zend_View_Helper_Cycle7 ?Zend_View_Helper_Currency7 =Zend_View_Helper_BaseUrl7 ;Zend_View_Helper_Action7 ?Zend_View_Helper_Abstract7 3Zend_View_Exception7 1Zend_View_Abstract7 %Zend_Version7 'Zend_Validate7 AZend_Validate_StringLength7# IZend_Validate_Sitemap_Priority7 ?Zend_Validate_Sitemap_Loc7" GZend_Validate_Sitemap_Lastmod7%
 MZend_Validate_Sitemap_Changefreq7	 3Zend_Validate_Regex7 9Zend_Validate_PostCode7 9Zend_Validate_NotEmpty7 9Zend_Validate_LessThan7 1Zend_Validate_Isbn7 -Zend_Validate_Ip7 /Zend_Validate_Int7 7Zend_Validate_InArray7 ;Zend_Validate_Identical7  1Zend_Validate_Iban7 9Zend_Validate_Hostname7~ /Zend_Validate_Hex7} ?Zend_Validate_GreaterThan7| 3Zend_Validate_Float7!{ EZend_Validate_File_WordCount7z ?Zend_Validate_File_Upload7y ;Zend_Validate_File_Size7x ;Zend_Validate_File_Sha17!w EZend_Validate_File_NotExists7 v CZend_Validate_File_MimeType7u 9Zend_Validate_File_Md57t AZend_Validate_File_IsImage7$s KZend_Validate_File_IsCompressed7!r EZend_Validate_File_ImageSize7q ;Zend_Validate_File_Hash7!p EZend_Validate_File_FilesSize7!o EZend_Validate_File_Extension7n ?Zend_Validate_File_Exists7'm QZend_Validate_File_ExcludeMimeType7(l SZend_Validate_File_ExcludeExtension7k =Zend_Validate_File_Crc327j =Zend_Validate_File_Count7i ;Zend_Validate_Exception7h AZend_Validate_EmailAddress7g 5Zend_Validate_Digits7"f GZend_Validate_Db_RecordExists7$e KZend_Validate_Db_NoRecordExists7d ?Zend_Validate_Db_Abstract7c 1Zend_Validate_Date7b =Zend_Validate_CreditCard7a 3Zend_Validate_Ccnum7` 9Zend_Validate_Callback7_ 7Zend_Validate_Between7^ 7Zend_Validate_Barcode7] AZend_Validate_Barcode_Upce7\ AZend_Validate_Barcode_Upca7[ AZend_Validate_Barcode_Sscc7$Z KZend_Validate_Barcode_Royalmail7   i  _1x[8d?n?kC" 




_
>

				y	T	1	jI/oL(	Z3oH&rZ7i8
{Y,|R#                                     !0 EZend_Application_Resource_Db8+/ YZend_Application_Resource_Cachemanager8&. OZend_Application_Module_Bootstrap8'- QZend_Application_Module_Autoloader8, AZend_Application_Exception8)+ UZend_Application_Bootstrap_Exception81* eZend_Application_Bootstrap_BootstrapAbstract8)) UZend_Application_Bootstrap_Bootstrap8( ?Zend_Amf_Value_TraitsInfo8-' ]Zend_Amf_Value_Messaging_RemotingMessage8*& WZend_Amf_Value_Messaging_ErrorMessage8,% [Zend_Amf_Value_Messaging_CommandMessage8*$ WZend_Amf_Value_Messaging_AsyncMessage8-# ]Zend_Amf_Value_Messaging_ArrayCollection80" cZend_Amf_Value_Messaging_AcknowledgeMessage8-! ]Zend_Amf_Value_Messaging_AbstractMessage8!  EZend_Amf_Value_MessageHeader8 AZend_Amf_Value_MessageBody8 =Zend_Amf_Value_ByteArray8 AZend_Amf_Util_BinaryStream8 +Zend_Amf_Server8 ?Zend_Amf_Server_Exception8 /Zend_Amf_Response8 9Zend_Amf_Response_Http8 -Zend_Amf_Request8 7Zend_Amf_Request_Http8 ?Zend_Amf_Parse_TypeLoader8 ?Zend_Amf_Parse_Serializer8# IZend_Amf_Parse_Resource_Stream8( SZend_Amf_Parse_Resource_MysqlResult8) UZend_Amf_Parse_Resource_MysqliResult8  CZend_Amf_Parse_OutputStream8 AZend_Amf_Parse_InputStream8  CZend_Amf_Parse_Deserializer8# IZend_Amf_Parse_Amf3_Serializer8% MZend_Amf_Parse_Amf3_Deserializer8# IZend_Amf_Parse_Amf0_Serializer8% MZend_Amf_Parse_Amf0_Deserializer8
 1Zend_Amf_Exception8	 1Zend_Amf_Constants8 9Zend_Amf_Auth_Abstract8  CZend_Amf_Adobe_Introspector8 AZend_Amf_Adobe_DbInspector8 3Zend_Amf_Adobe_Auth8 Zend_Acl8 'Zend_Acl_Role8 9Zend_Acl_Role_Registry8% MZend_Acl_Role_Registry_Exception8  /Zend_Acl_Resource8 1Zend_Acl_Exception8~ /Zend_XmlRpc_Value7} =Zend_XmlRpc_Value_Struct7| =Zend_XmlRpc_Value_String7{ =Zend_XmlRpc_Value_Scalar7z 7Zend_XmlRpc_Value_Nil7y ?Zend_XmlRpc_Value_Integer7 x CZend_XmlRpc_Value_Exception7w =Zend_XmlRpc_Value_Double7v AZend_XmlRpc_Value_DateTime7!u EZend_XmlRpc_Value_Collection7t ?Zend_XmlRpc_Value_Boolean7!s EZend_XmlRpc_Value_BigInteger7r =Zend_XmlRpc_Value_Base647q ;Zend_XmlRpc_Value_Array7p 1Zend_XmlRpc_Server7o ?Zend_XmlRpc_Server_System7n =Zend_XmlRpc_Server_Fault7!m EZend_XmlRpc_Server_Exception7l =Zend_XmlRpc_Server_Cache7k 5Zend_XmlRpc_Response7j ?Zend_XmlRpc_Response_Http7i 3Zend_XmlRpc_Request7h ?Zend_XmlRpc_Request_Stdin7g =Zend_XmlRpc_Request_Http7$f KZend_XmlRpc_Generator_XmlWriter7,e [Zend_XmlRpc_Generator_GeneratorAbstract7&d OZend_XmlRpc_Generator_DomDocument7c /Zend_XmlRpc_Fault7b 7Zend_XmlRpc_Exception7a 1Zend_XmlRpc_Client7#` IZend_XmlRpc_Client_ServerProxy7+_ YZend_XmlRpc_Client_ServerIntrospection7+^ YZend_XmlRpc_Client_IntrospectException7%] MZend_XmlRpc_Client_HttpException7&\ OZend_XmlRpc_Client_FaultException7![ EZend_XmlRpc_Client_Exception7&Z OZend_Wildfire_Protocol_JsonStream7!Y EZend_Wildfire_Plugin_FirePhp7.X _Zend_Wildfire_Plugin_FirePhp_TableMessage7)W UZend_Wildfire_Plugin_FirePhp_Message7V ;Zend_Wildfire_Exception7&U OZend_Wildfire_Channel_HttpHeaders7T Zend_View7S -Zend_View_Stream7R AZend_View_Helper_UserAgent7Q 5Zend_View_Helper_Url7P AZend_View_Helper_Translate7O =Zend_View_Helper_TinySrc7N AZend_View_Helper_ServerUrl7)M UZend_View_Helper_RenderToPlaceholder7!L EZend_View_Helper_Placeholder7*K WZend_View_Helper_Placeholder_Registry74J kZend_View_Helper_Placeholder_Registry_Exception7+I YZend_View_Helper_Placeholder_Container76H oZend_View_Helper_Placeholder_Container_Standalone7   W  n4KpO+h4fE



v
@
				L	%f:x=~Eo>}R uG(tS0P-
      !} EZend_Cache_Backend_Interface8)| UZend_Cache_Backend_ExtendedInterface8 { CZend_Auth_Storage_Interface8 z CZend_Auth_Adapter_Interface8.y _Zend_Auth_Adapter_Http_Resolver_Interface8'x QZend_Application_Resource_Resource84w kZend_Application_Bootstrap_ResourceBootstrapper8,v [Zend_Application_Bootstrap_Bootstrapper8u ;Zend_Acl_Role_Interface8 t CZend_Acl_Resource_Interface8s ?Zend_Acl_Assert_Interface8#r IZend_Wildfire_Plugin_Interface7$q KZend_Wildfire_Channel_Interface7p 3Zend_View_Interface7'o QZend_View_Helper_Navigation_Helper7n AZend_View_Helper_Interface7m ;Zend_Validate_Interface7+l YZend_Validate_Barcode_AdapterInterface73k iZend_Tool_Project_Profile_FileParser_Interface7:j wZend_Tool_Project_Context_System_TopLevelRestrictable75i mZend_Tool_Project_Context_System_NotOverwritable7/h aZend_Tool_Project_Context_System_Interface7(g SZend_Tool_Project_Context_Interface7+f YZend_Tool_Framework_Registry_Interface72e gZend_Tool_Framework_Registry_EnabledInterface7-d ]Zend_Tool_Framework_Provider_Pretendable7+c YZend_Tool_Framework_Provider_Interface7.b _Zend_Tool_Framework_Provider_Interactable7;a yZend_Tool_Framework_Provider_DocblockManifestInterface7+` YZend_Tool_Framework_Metadata_Interface7._ _Zend_Tool_Framework_Metadata_Attributable76^ oZend_Tool_Framework_Manifest_ProviderManifestable76] oZend_Tool_Framework_Manifest_MetadataManifestable7+\ YZend_Tool_Framework_Manifest_Interface7+[ YZend_Tool_Framework_Manifest_Indexable74Z kZend_Tool_Framework_Manifest_ActionManifestable7)Y UZend_Tool_Framework_Loader_Interface78X sZend_Tool_Framework_Client_Storage_AdapterInterface7DW 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface7;V yZend_Tool_Framework_Client_Interactive_OutputInterface7:U wZend_Tool_Framework_Client_Interactive_InputInterface7)T UZend_Tool_Framework_Action_Interface7(S SZend_Text_Table_Decorator_Interface7R /Zend_Tag_Taggable7&Q OZend_Soap_Wsdl_Strategy_Interface7%P MZend_Session_Validator_Interface7'O QZend_Session_SaveHandler_Interface7$N KZend_Service_ShortUrl_Shortener7IM Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Interface7L 7Zend_Server_Interface7-K ]Zend_Serializer_Adapter_AdapterInterface74J kZend_Search_Lucene_Search_Highlighter_Interface7!I EZend_Search_Lucene_Interface73H iZend_Search_Lucene_Index_TermsStream_Interface7$G KZend_Queue_Stomp_FrameInterface70F cZend_Queue_Stomp_Client_ConnectionInterface7(E SZend_Queue_Adapter_AdapterInterface7D ?Zend_Pdf_Filter_Interface7&C OZend_Pdf_ElementFactory_Interface7B ?Zend_Pdf_Canvas_Interface7,A [Zend_Paginator_ScrollingStyle_Interface7$@ KZend_Paginator_AdapterAggregate7%? MZend_Paginator_Adapter_Interface7&> OZend_Oauth_Config_ConfigInterface7$= KZend_Memory_Container_Interface71< eZend_Markup_Renderer_TokenConverterInterface7'; QZend_Markup_Parser_ParserInterface7): UZend_Mail_Storage_Writable_Interface7'9 QZend_Mail_Storage_Folder_Interface78 =Zend_Mail_Part_Interface7 7 CZend_Mail_Message_Interface7!6 EZend_Log_Formatter_Interface75 ?Zend_Log_Filter_Interface74 ?Zend_Log_FactoryInterface7'3 QZend_Loader_PluginLoader_Interface7%2 MZend_Loader_Autoloader_Interface701 cZend_Ldap_Node_Schema_ObjectClass_Interface720 gZend_Ldap_Node_Schema_AttributeType_Interface73/ iZend_InfoCard_Xml_Security_Transform_Interface7(. SZend_InfoCard_Xml_KeyInfo_Interface7(- SZend_InfoCard_Xml_Element_Interface7*, WZend_InfoCard_Xml_Assertion_Interface7-+ ]Zend_InfoCard_Cipher_Symmetric_Interface77* qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface77) qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interface7+( YZend_InfoCard_Cipher_Pki_Rsa_Interface7'' QZend_InfoCard_Cipher_Pki_Interface7   h  {R)[(}V=wX5tR@!




g
F
%
				t	O	$	uM)]=gEmP,
eR8l1M!qT"                   4 kZend_Cloud_QueueService_Adapter_AbstractAdapter8. _Zend_Cloud_OperationNotAvailableException8 5Zend_Cloud_Exception8% MZend_Cloud_DocumentService_Query8' QZend_Cloud_DocumentService_Factory8) UZend_Cloud_DocumentService_Exception8+ YZend_Cloud_DocumentService_DocumentSet8( SZend_Cloud_DocumentService_Document84 kZend_Cloud_DocumentService_Adapter_WindowsAzure8: wZend_Cloud_DocumentService_Adapter_WindowsAzure_Query80 cZend_Cloud_DocumentService_Adapter_SimpleDb86 oZend_Cloud_DocumentService_Adapter_SimpleDb_Query87 qZend_Cloud_DocumentService_Adapter_AbstractAdapter8 AZend_Cloud_AbstractFactory8
 /Zend_Captcha_Word8	 9Zend_Captcha_ReCaptcha8 1Zend_Captcha_Image8 3Zend_Captcha_Figlet8 9Zend_Captcha_Exception8 /Zend_Captcha_Dumb8 /Zend_Captcha_Base8 !Zend_Cache8 1Zend_Cache_Manager8 =Zend_Cache_Frontend_Page8  AZend_Cache_Frontend_Output8! EZend_Cache_Frontend_Function8~ =Zend_Cache_Frontend_File8} ?Zend_Cache_Frontend_Class8 | CZend_Cache_Frontend_Capture8{ 5Zend_Cache_Exception8z +Zend_Cache_Core8y 1Zend_Cache_Backend8"x GZend_Cache_Backend_ZendServer8(w SZend_Cache_Backend_ZendServer_ShMem8'v QZend_Cache_Backend_ZendServer_Disk8$u KZend_Cache_Backend_ZendPlatform8t ?Zend_Cache_Backend_Xcache8!s EZend_Cache_Backend_TwoLevels8r ;Zend_Cache_Backend_Test8q ?Zend_Cache_Backend_Static8p ?Zend_Cache_Backend_Sqlite8!o EZend_Cache_Backend_Memcached8$n KZend_Cache_Backend_Libmemcached8m ;Zend_Cache_Backend_File8!l EZend_Cache_Backend_BlackHole8k 9Zend_Cache_Backend_Apc8j %Zend_Barcode8i ?Zend_Barcode_Renderer_Svg8+h YZend_Barcode_Renderer_RendererAbstract8g ?Zend_Barcode_Renderer_Pdf8 f CZend_Barcode_Renderer_Image8$e KZend_Barcode_Renderer_Exception8d =Zend_Barcode_Object_Upce8c =Zend_Barcode_Object_Upca8"b GZend_Barcode_Object_Royalmail8 a CZend_Barcode_Object_Postnet8` AZend_Barcode_Object_Planet8'_ QZend_Barcode_Object_ObjectAbstract8!^ EZend_Barcode_Object_Leitcode8] ?Zend_Barcode_Object_Itf148"\ GZend_Barcode_Object_Identcode8"[ GZend_Barcode_Object_Exception8Z ?Zend_Barcode_Object_Error8Y =Zend_Barcode_Object_Ean88X =Zend_Barcode_Object_Ean58W =Zend_Barcode_Object_Ean28V ?Zend_Barcode_Object_Ean138U AZend_Barcode_Object_Code398*T WZend_Barcode_Object_Code25interleaved8S AZend_Barcode_Object_Code258 R CZend_Barcode_Object_Code1288Q 9Zend_Barcode_Exception8P Zend_Auth8O ?Zend_Auth_Storage_Session8$N KZend_Auth_Storage_NonPersistent8 M CZend_Auth_Storage_Exception8L -Zend_Auth_Result8K 3Zend_Auth_Exception8J =Zend_Auth_Adapter_OpenId8I 9Zend_Auth_Adapter_Ldap8H AZend_Auth_Adapter_InfoCard8G 9Zend_Auth_Adapter_Http8)F UZend_Auth_Adapter_Http_Resolver_File8.E _Zend_Auth_Adapter_Http_Resolver_Exception8 D CZend_Auth_Adapter_Exception8C =Zend_Auth_Adapter_Digest8B ?Zend_Auth_Adapter_DbTable8A -Zend_Application8#@ IZend_Application_Resource_View8(? SZend_Application_Resource_UserAgent8(> SZend_Application_Resource_Translate8&= OZend_Application_Resource_Session8%< MZend_Application_Resource_Router8/; aZend_Application_Resource_ResourceAbstract8): UZend_Application_Resource_Navigation8&9 OZend_Application_Resource_Multidb8&8 OZend_Application_Resource_Modules8#7 IZend_Application_Resource_Mail8"6 GZend_Application_Resource_Log8%5 MZend_Application_Resource_Locale8%4 MZend_Application_Resource_Layout8.3 _Zend_Application_Resource_Frontcontroller8(2 SZend_Application_Resource_Exception8#1 IZend_Application_Resource_Dojo8   ]  mC`3]5S'S-



q
S
;
"
				{	[	@	(	a/JY/wK_9fAsMyN          'u QZend_Controller_Router_Route_Regex8(t SZend_Controller_Router_Route_Module8*s WZend_Controller_Router_Route_Hostname8'r QZend_Controller_Router_Route_Chain8*q WZend_Controller_Router_Route_Abstract8#p IZend_Controller_Router_Rewrite8%o MZend_Controller_Router_Exception8$n KZend_Controller_Router_Abstract8*m WZend_Controller_Response_HttpTestCase8"l GZend_Controller_Response_Http8'k QZend_Controller_Response_Exception8!j EZend_Controller_Response_Cli8&i OZend_Controller_Response_Abstract8#h IZend_Controller_Request_Simple8)g UZend_Controller_Request_HttpTestCase8!f EZend_Controller_Request_Http8&e OZend_Controller_Request_Exception8&d OZend_Controller_Request_Apache4048%c MZend_Controller_Request_Abstract8&b OZend_Controller_Plugin_PutHandler8(a SZend_Controller_Plugin_ErrorHandler8"` GZend_Controller_Plugin_Broker8'_ QZend_Controller_Plugin_ActionStack8$^ KZend_Controller_Plugin_Abstract8] 7Zend_Controller_Front8\ ?Zend_Controller_Exception8([ SZend_Controller_Dispatcher_Standard8)Z UZend_Controller_Dispatcher_Exception8(Y SZend_Controller_Dispatcher_Abstract8X 9Zend_Controller_Action8(W SZend_Controller_Action_HelperBroker86V oZend_Controller_Action_HelperBroker_PriorityStack8/U aZend_Controller_Action_Helper_ViewRenderer8&T OZend_Controller_Action_Helper_Url8-S ]Zend_Controller_Action_Helper_Redirector8'R QZend_Controller_Action_Helper_Json81Q eZend_Controller_Action_Helper_FlashMessenger80P cZend_Controller_Action_Helper_ContextSwitch8(O SZend_Controller_Action_Helper_Cache8<N {Zend_Controller_Action_Helper_AutoCompleteScriptaculous83M iZend_Controller_Action_Helper_AutoCompleteDojo88L sZend_Controller_Action_Helper_AutoComplete_Abstract8.K _Zend_Controller_Action_Helper_AjaxContext8.J _Zend_Controller_Action_Helper_ActionStack8+I YZend_Controller_Action_Helper_Abstract8%H MZend_Controller_Action_Exception8G 3Zend_Console_Getopt8"F GZend_Console_Getopt_Exception8E #Zend_Config8D -Zend_Config_Yaml8C +Zend_Config_Xml8B 1Zend_Config_Writer8A ;Zend_Config_Writer_Yaml8@ 9Zend_Config_Writer_Xml8? ;Zend_Config_Writer_Json8> 9Zend_Config_Writer_Ini8$= KZend_Config_Writer_FileAbstract8< =Zend_Config_Writer_Array8; -Zend_Config_Json8: +Zend_Config_Ini89 7Zend_Config_Exception8$8 KZend_CodeGenerator_Php_Property817 eZend_CodeGenerator_Php_Property_DefaultValue8%6 MZend_CodeGenerator_Php_Parameter825 gZend_CodeGenerator_Php_Parameter_DefaultValue8"4 GZend_CodeGenerator_Php_Method8,3 [Zend_CodeGenerator_Php_Member_Container8+2 YZend_CodeGenerator_Php_Member_Abstract8 1 CZend_CodeGenerator_Php_File8%0 MZend_CodeGenerator_Php_Exception8$/ KZend_CodeGenerator_Php_Docblock8(. SZend_CodeGenerator_Php_Docblock_Tag8/- aZend_CodeGenerator_Php_Docblock_Tag_Return8., _Zend_CodeGenerator_Php_Docblock_Tag_Param80+ cZend_CodeGenerator_Php_Docblock_Tag_License8!* EZend_CodeGenerator_Php_Class8 ) CZend_CodeGenerator_Php_Body8$( KZend_CodeGenerator_Php_Abstract8!' EZend_CodeGenerator_Exception8 & CZend_CodeGenerator_Abstract8&% OZend_Cloud_StorageService_Factory8($ SZend_Cloud_StorageService_Exception83# iZend_Cloud_StorageService_Adapter_WindowsAzure8)" UZend_Cloud_StorageService_Adapter_S38/! aZend_Cloud_StorageService_Adapter_Nirvanix81  eZend_Cloud_StorageService_Adapter_FileSystem8' QZend_Cloud_QueueService_MessageSet8$ KZend_Cloud_QueueService_Message8$ KZend_Cloud_QueueService_Factory8& OZend_Cloud_QueueService_Exception8. _Zend_Cloud_QueueService_Adapter_ZendQueue81 eZend_Cloud_QueueService_Adapter_WindowsAzure8( SZend_Cloud_QueueService_Adapter_Sqs8   m cF$kI1qX;_@kI'



z
`
K
(
					o	Q	-	sQ3mJ&{^H8%rA[+c4	e5S-                               (b SZend_Dojo_Form_Element_SubmitButton8"a GZend_Dojo_Form_Element_Slider8*` WZend_Dojo_Form_Element_SimpleTextarea8'_ QZend_Dojo_Form_Element_RadioButton8+^ YZend_Dojo_Form_Element_PasswordTextBox8)] UZend_Dojo_Form_Element_NumberTextBox8)\ UZend_Dojo_Form_Element_NumberSpinner8,[ [Zend_Dojo_Form_Element_HorizontalSlider8+Z YZend_Dojo_Form_Element_FilteringSelect8"Y GZend_Dojo_Form_Element_Editor8&X OZend_Dojo_Form_Element_DijitMulti8!W EZend_Dojo_Form_Element_Dijit8'V QZend_Dojo_Form_Element_DateTextBox8+U YZend_Dojo_Form_Element_CurrencyTextBox8$T KZend_Dojo_Form_Element_ComboBox8$S KZend_Dojo_Form_Element_CheckBox8"R GZend_Dojo_Form_Element_Button8 Q CZend_Dojo_Form_DisplayGroup8*P WZend_Dojo_Form_Decorator_TabContainer8,O [Zend_Dojo_Form_Decorator_StackContainer8,N [Zend_Dojo_Form_Decorator_SplitContainer8'M QZend_Dojo_Form_Decorator_DijitForm8*L WZend_Dojo_Form_Decorator_DijitElement8,K [Zend_Dojo_Form_Decorator_DijitContainer8)J UZend_Dojo_Form_Decorator_ContentPane8-I ]Zend_Dojo_Form_Decorator_BorderContainer8+H YZend_Dojo_Form_Decorator_AccordionPane80G cZend_Dojo_Form_Decorator_AccordionContainer8F 3Zend_Dojo_Exception8E )Zend_Dojo_Data8D 5Zend_Dojo_BuildLayer8C !Zend_Debug8B Zend_Db8A 'Zend_Db_Table8@ 5Zend_Db_Table_Select8#? IZend_Db_Table_Select_Exception8> 5Zend_Db_Table_Rowset8#= IZend_Db_Table_Rowset_Exception8"< GZend_Db_Table_Rowset_Abstract8; /Zend_Db_Table_Row8 : CZend_Db_Table_Row_Exception89 AZend_Db_Table_Row_Abstract88 ;Zend_Db_Table_Exception87 =Zend_Db_Table_Definition86 9Zend_Db_Table_Abstract85 /Zend_Db_Statement84 =Zend_Db_Statement_Sqlsrv8'3 QZend_Db_Statement_Sqlsrv_Exception82 7Zend_Db_Statement_Pdo81 ?Zend_Db_Statement_Pdo_Oci80 ?Zend_Db_Statement_Pdo_Ibm8/ =Zend_Db_Statement_Oracle8'. QZend_Db_Statement_Oracle_Exception8- =Zend_Db_Statement_Mysqli8', QZend_Db_Statement_Mysqli_Exception8 + CZend_Db_Statement_Exception8* 7Zend_Db_Statement_Db28$) KZend_Db_Statement_Db2_Exception8( )Zend_Db_Select8' =Zend_Db_Select_Exception8& -Zend_Db_Profiler8% 9Zend_Db_Profiler_Query8$ =Zend_Db_Profiler_Firebug8# AZend_Db_Profiler_Exception8" %Zend_Db_Expr8! /Zend_Db_Exception8  9Zend_Db_Adapter_Sqlsrv8% MZend_Db_Adapter_Sqlsrv_Exception8 AZend_Db_Adapter_Pdo_Sqlite8 ?Zend_Db_Adapter_Pdo_Pgsql8 ;Zend_Db_Adapter_Pdo_Oci8 ?Zend_Db_Adapter_Pdo_Mysql8 ?Zend_Db_Adapter_Pdo_Mssql8 ;Zend_Db_Adapter_Pdo_Ibm8  CZend_Db_Adapter_Pdo_Ibm_Ids8  CZend_Db_Adapter_Pdo_Ibm_Db28! EZend_Db_Adapter_Pdo_Abstract8 9Zend_Db_Adapter_Oracle8% MZend_Db_Adapter_Oracle_Exception8 9Zend_Db_Adapter_Mysqli8% MZend_Db_Adapter_Mysqli_Exception8 ?Zend_Db_Adapter_Exception8 3Zend_Db_Adapter_Db28" GZend_Db_Adapter_Db2_Exception8 =Zend_Db_Adapter_Abstract8 Zend_Date8 3Zend_Date_Exception8 5Zend_Date_DateObject8
 -Zend_Date_Cities8	 'Zend_Currency8 ;Zend_Currency_Exception8 !Zend_Crypt8 )Zend_Crypt_Rsa8 1Zend_Crypt_Rsa_Key8 ?Zend_Crypt_Rsa_Key_Public8 AZend_Crypt_Rsa_Key_Private8 +Zend_Crypt_Math8 ?Zend_Crypt_Math_Exception8  AZend_Crypt_Math_BigInteger8# IZend_Crypt_Math_BigInteger_Gmp8)~ UZend_Crypt_Math_BigInteger_Exception8&} OZend_Crypt_Math_BigInteger_Bcmath8| +Zend_Crypt_Hmac8{ ?Zend_Crypt_Hmac_Exception8z 5Zend_Crypt_Exception8y =Zend_Crypt_DiffieHellman8'x QZend_Crypt_DiffieHellman_Exception8!w EZend_Controller_Router_Route8(v SZend_Controller_Router_Route_Static8   a  U'sE zP&`2Z0



Y
.
				Z	H	-	nJ"sW'mDp9yLvCRjH"          C 'Zend_Feed_Rss8B -Zend_Feed_Reader8A =Zend_Feed_Reader_FeedSet8"@ GZend_Feed_Reader_FeedAbstract8? ?Zend_Feed_Reader_Feed_Rss8> AZend_Feed_Reader_Feed_Atom8&= OZend_Feed_Reader_Feed_Atom_Source83< iZend_Feed_Reader_Extension_WellFormedWeb_Entry8,; [Zend_Feed_Reader_Extension_Thread_Entry80: cZend_Feed_Reader_Extension_Syndication_Feed8+9 YZend_Feed_Reader_Extension_Slash_Entry8,8 [Zend_Feed_Reader_Extension_Podcast_Feed8-7 ]Zend_Feed_Reader_Extension_Podcast_Entry8,6 [Zend_Feed_Reader_Extension_FeedAbstract8-5 ]Zend_Feed_Reader_Extension_EntryAbstract8/4 aZend_Feed_Reader_Extension_DublinCore_Feed803 cZend_Feed_Reader_Extension_DublinCore_Entry842 kZend_Feed_Reader_Extension_CreativeCommons_Feed851 mZend_Feed_Reader_Extension_CreativeCommons_Entry8-0 ]Zend_Feed_Reader_Extension_Content_Entry8)/ UZend_Feed_Reader_Extension_Atom_Feed8*. WZend_Feed_Reader_Extension_Atom_Entry8#- IZend_Feed_Reader_EntryAbstract8, AZend_Feed_Reader_Entry_Rss8 + CZend_Feed_Reader_Entry_Atom8 * CZend_Feed_Reader_Collection83) iZend_Feed_Reader_Collection_CollectionAbstract8)( UZend_Feed_Reader_Collection_Category8'' QZend_Feed_Reader_Collection_Author8& 9Zend_Feed_Pubsubhubbub8&% OZend_Feed_Pubsubhubbub_Subscriber8/$ aZend_Feed_Pubsubhubbub_Subscriber_Callback8%# MZend_Feed_Pubsubhubbub_Publisher8." _Zend_Feed_Pubsubhubbub_Model_Subscription8/! aZend_Feed_Pubsubhubbub_Model_ModelAbstract8(  SZend_Feed_Pubsubhubbub_HttpResponse8% MZend_Feed_Pubsubhubbub_Exception8, [Zend_Feed_Pubsubhubbub_CallbackAbstract8 3Zend_Feed_Exception8 3Zend_Feed_Entry_Rss8 5Zend_Feed_Entry_Atom8 =Zend_Feed_Entry_Abstract8 /Zend_Feed_Element8 /Zend_Feed_Builder8 =Zend_Feed_Builder_Header8$ KZend_Feed_Builder_Header_Itunes8  CZend_Feed_Builder_Exception8 ;Zend_Feed_Builder_Entry8 )Zend_Feed_Atom8 1Zend_Feed_Abstract8 )Zend_Exception8 )Zend_Dom_Query8 7Zend_Dom_Query_Result8 =Zend_Dom_Query_Css2Xpath8 1Zend_Dom_Exception8 Zend_Dojo8) UZend_Dojo_View_Helper_VerticalSlider8,
 [Zend_Dojo_View_Helper_ValidationTextBox8&	 OZend_Dojo_View_Helper_TimeTextBox8" GZend_Dojo_View_Helper_TextBox8# IZend_Dojo_View_Helper_Textarea8' QZend_Dojo_View_Helper_TabContainer8' QZend_Dojo_View_Helper_SubmitButton8) UZend_Dojo_View_Helper_StackContainer8) UZend_Dojo_View_Helper_SplitContainer8! EZend_Dojo_View_Helper_Slider8) UZend_Dojo_View_Helper_SimpleTextarea8&  OZend_Dojo_View_Helper_RadioButton8* WZend_Dojo_View_Helper_PasswordTextBox8(~ SZend_Dojo_View_Helper_NumberTextBox8(} SZend_Dojo_View_Helper_NumberSpinner8+| YZend_Dojo_View_Helper_HorizontalSlider8{ AZend_Dojo_View_Helper_Form8*z WZend_Dojo_View_Helper_FilteringSelect8!y EZend_Dojo_View_Helper_Editor8x AZend_Dojo_View_Helper_Dojo8)w UZend_Dojo_View_Helper_Dojo_Container8)v UZend_Dojo_View_Helper_DijitContainer8 u CZend_Dojo_View_Helper_Dijit8&t OZend_Dojo_View_Helper_DateTextBox8&s OZend_Dojo_View_Helper_CustomDijit8*r WZend_Dojo_View_Helper_CurrencyTextBox8&q OZend_Dojo_View_Helper_ContentPane8#p IZend_Dojo_View_Helper_ComboBox8#o IZend_Dojo_View_Helper_CheckBox8!n EZend_Dojo_View_Helper_Button8*m WZend_Dojo_View_Helper_BorderContainer8(l SZend_Dojo_View_Helper_AccordionPane8-k ]Zend_Dojo_View_Helper_AccordionContainer8j =Zend_Dojo_View_Exception8i )Zend_Dojo_Form8h 9Zend_Dojo_Form_SubForm8*g WZend_Dojo_Form_Element_VerticalSlider8-f ]Zend_Dojo_Form_Element_ValidationTextBox8'e QZend_Dojo_Form_Element_TimeTextBox8#d IZend_Dojo_Form_Element_TextBox8$c KZend_Dojo_Form_Element_Textarea8   d  Pm>a%g:vK




y
T
9

					`	@	dI1nK+mC*
hJ!rHh>d<d;                                  ' CZend_Form_Decorator_HtmlTag8#& IZend_Form_Decorator_FormErrors8%% MZend_Form_Decorator_FormElements8$ =Zend_Form_Decorator_Form8# =Zend_Form_Decorator_File8!" EZend_Form_Decorator_Fieldset8"! GZend_Form_Decorator_Exception8  AZend_Form_Decorator_Errors8$ KZend_Form_Decorator_DtDdWrapper8$ KZend_Form_Decorator_Description8  CZend_Form_Decorator_Captcha8% MZend_Form_Decorator_Captcha_Word8! EZend_Form_Decorator_Callback8! EZend_Form_Decorator_Abstract8 #Zend_Filter8+ YZend_Filter_Word_UnderscoreToSeparator8& OZend_Filter_Word_UnderscoreToDash8+ YZend_Filter_Word_UnderscoreToCamelCase8* WZend_Filter_Word_SeparatorToSeparator8% MZend_Filter_Word_SeparatorToDash8* WZend_Filter_Word_SeparatorToCamelCase8( SZend_Filter_Word_Separator_Abstract8& OZend_Filter_Word_DashToUnderscore8% MZend_Filter_Word_DashToSeparator8% MZend_Filter_Word_DashToCamelCase8+ YZend_Filter_Word_CamelCaseToUnderscore8* WZend_Filter_Word_CamelCaseToSeparator8% MZend_Filter_Word_CamelCaseToDash8 7Zend_Filter_StripTags8
 ?Zend_Filter_StripNewlines8	 9Zend_Filter_StringTrim8 ?Zend_Filter_StringToUpper8 ?Zend_Filter_StringToLower8 5Zend_Filter_RealPath8 ;Zend_Filter_PregReplace8 -Zend_Filter_Null8& OZend_Filter_NormalizedToLocalized8& OZend_Filter_LocalizedToNormalized8 +Zend_Filter_Int8  /Zend_Filter_Input8 7Zend_Filter_Inflector8~ =Zend_Filter_HtmlEntities8} AZend_Filter_File_UpperCase8| ;Zend_Filter_File_Rename8{ AZend_Filter_File_LowerCase8z =Zend_Filter_File_Encrypt8y =Zend_Filter_File_Decrypt8x 7Zend_Filter_Exception8w 3Zend_Filter_Encrypt8 v CZend_Filter_Encrypt_Openssl8u AZend_Filter_Encrypt_Mcrypt8t +Zend_Filter_Dir8s 1Zend_Filter_Digits8r 3Zend_Filter_Decrypt8q 9Zend_Filter_Decompress8p 5Zend_Filter_Compress8o =Zend_Filter_Compress_Zip8n =Zend_Filter_Compress_Tar8m =Zend_Filter_Compress_Rar8l =Zend_Filter_Compress_Lzf8k ;Zend_Filter_Compress_Gz8*j WZend_Filter_Compress_CompressAbstract8i =Zend_Filter_Compress_Bz28h 5Zend_Filter_Callback8g 3Zend_Filter_Boolean8f 5Zend_Filter_BaseName8e /Zend_Filter_Alpha8d /Zend_Filter_Alnum8c 1Zend_File_Transfer8!b EZend_File_Transfer_Exception8$a KZend_File_Transfer_Adapter_Http8(` SZend_File_Transfer_Adapter_Abstract8_ Zend_Feed8^ -Zend_Feed_Writer8] ;Zend_Feed_Writer_Source8/\ aZend_Feed_Writer_Renderer_RendererAbstract8'[ QZend_Feed_Writer_Renderer_Feed_Rss8(Z SZend_Feed_Writer_Renderer_Feed_Atom8/Y aZend_Feed_Writer_Renderer_Feed_Atom_Source85X mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract8(W SZend_Feed_Writer_Renderer_Entry_Rss8)V UZend_Feed_Writer_Renderer_Entry_Atom81U eZend_Feed_Writer_Renderer_Entry_Atom_Deleted8T 7Zend_Feed_Writer_Feed8'S QZend_Feed_Writer_Feed_FeedAbstract8<R {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry88Q sZend_Feed_Writer_Extension_Threading_Renderer_Entry84P kZend_Feed_Writer_Extension_Slash_Renderer_Entry80O cZend_Feed_Writer_Extension_RendererAbstract84N kZend_Feed_Writer_Extension_ITunes_Renderer_Feed85M mZend_Feed_Writer_Extension_ITunes_Renderer_Entry8+L YZend_Feed_Writer_Extension_ITunes_Feed8,K [Zend_Feed_Writer_Extension_ITunes_Entry88J sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed89I uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry86H oZend_Feed_Writer_Extension_Content_Renderer_Entry82G gZend_Feed_Writer_Extension_Atom_Renderer_Feed86F oZend_Feed_Writer_Exception_InvalidMethodException8E 9Zend_Feed_Writer_Entry8D =Zend_Feed_Writer_Deleted8   e  lEuV7eE%gK1Y<



s
J
#					Z	6	qI!X3R/lU:Y(rCoHc4                                      9 uZend_Gdata_Calendar_Extension_SendEventNotifications8+ YZend_Gdata_Calendar_Extension_Selected8+
 YZend_Gdata_Calendar_Extension_QuickAdd8'	 QZend_Gdata_Calendar_Extension_Link8) UZend_Gdata_Calendar_Extension_Hidden8( SZend_Gdata_Calendar_Extension_Color8. _Zend_Gdata_Calendar_Extension_AccessLevel8# IZend_Gdata_Calendar_EventQuery8" GZend_Gdata_Calendar_EventFeed8# IZend_Gdata_Calendar_EventEntry8 -Zend_Gdata_Books8! EZend_Gdata_Books_VolumeQuery8   CZend_Gdata_Books_VolumeFeed8! EZend_Gdata_Books_VolumeEntry8+~ YZend_Gdata_Books_Extension_Viewability8-} ]Zend_Gdata_Books_Extension_ThumbnailLink8&| OZend_Gdata_Books_Extension_Review8+{ YZend_Gdata_Books_Extension_PreviewLink8(z SZend_Gdata_Books_Extension_InfoLink8-y ]Zend_Gdata_Books_Extension_Embeddability8)x UZend_Gdata_Books_Extension_BooksLink8-w ]Zend_Gdata_Books_Extension_BooksCategory8.v _Zend_Gdata_Books_Extension_AnnotationLink8$u KZend_Gdata_Books_CollectionFeed8%t MZend_Gdata_Books_CollectionEntry8s 1Zend_Gdata_AuthSub8r )Zend_Gdata_App8$q KZend_Gdata_App_VersionException8p 3Zend_Gdata_App_Util8#o IZend_Gdata_App_MediaFileSource8n ?Zend_Gdata_App_MediaEntry82m gZend_Gdata_App_LoggingHttpClientAdapterSocket8l AZend_Gdata_App_IOException8,k [Zend_Gdata_App_InvalidArgumentException8!j EZend_Gdata_App_HttpException8$i KZend_Gdata_App_FeedSourceParent8#h IZend_Gdata_App_FeedEntryParent8g 3Zend_Gdata_App_Feed8f =Zend_Gdata_App_Extension8!e EZend_Gdata_App_Extension_Uri8%d MZend_Gdata_App_Extension_Updated8#c IZend_Gdata_App_Extension_Title8"b GZend_Gdata_App_Extension_Text8%a MZend_Gdata_App_Extension_Summary8&` OZend_Gdata_App_Extension_Subtitle8$_ KZend_Gdata_App_Extension_Source8$^ KZend_Gdata_App_Extension_Rights8'] QZend_Gdata_App_Extension_Published8$\ KZend_Gdata_App_Extension_Person8"[ GZend_Gdata_App_Extension_Name8"Z GZend_Gdata_App_Extension_Logo8"Y GZend_Gdata_App_Extension_Link8 X CZend_Gdata_App_Extension_Id8"W GZend_Gdata_App_Extension_Icon8'V QZend_Gdata_App_Extension_Generator8#U IZend_Gdata_App_Extension_Email8%T MZend_Gdata_App_Extension_Element8$S KZend_Gdata_App_Extension_Edited8#R IZend_Gdata_App_Extension_Draft8%Q MZend_Gdata_App_Extension_Control8)P UZend_Gdata_App_Extension_Contributor8%O MZend_Gdata_App_Extension_Content8&N OZend_Gdata_App_Extension_Category8$M KZend_Gdata_App_Extension_Author8L =Zend_Gdata_App_Exception8K 5Zend_Gdata_App_Entry8,J [Zend_Gdata_App_CaptchaRequiredException8#I IZend_Gdata_App_BaseMediaSource8H 3Zend_Gdata_App_Base8*G WZend_Gdata_App_BadMethodCallException8!F EZend_Gdata_App_AuthException8E Zend_Form8D /Zend_Form_SubForm8C 3Zend_Form_Exception8B /Zend_Form_Element8A ;Zend_Form_Element_Xhtml8@ AZend_Form_Element_Textarea8? 9Zend_Form_Element_Text8> =Zend_Form_Element_Submit8= =Zend_Form_Element_Select8< ;Zend_Form_Element_Reset8; ;Zend_Form_Element_Radio8: AZend_Form_Element_Password8"9 GZend_Form_Element_Multiselect8$8 KZend_Form_Element_MultiCheckbox87 ;Zend_Form_Element_Multi86 ;Zend_Form_Element_Image85 =Zend_Form_Element_Hidden84 9Zend_Form_Element_Hash83 9Zend_Form_Element_File8 2 CZend_Form_Element_Exception81 AZend_Form_Element_Checkbox80 ?Zend_Form_Element_Captcha8/ =Zend_Form_Element_Button8. 9Zend_Form_DisplayGroup8#- IZend_Form_Decorator_ViewScript8#, IZend_Form_Decorator_ViewHelper8 + CZend_Form_Decorator_Tooltip8(* SZend_Form_Decorator_PrepareElements8) ?Zend_Form_Decorator_Label8( ?Zend_Form_Decorator_Image8   c  zU9a4 m;wY.U/



u
]
1
				c	=		xT,a> q@jBzV1tP-	{X? iJ$             "o GZend_Gdata_Gbase_SnippetQuery8!n EZend_Gdata_Gbase_SnippetFeed8"m GZend_Gdata_Gbase_SnippetEntry8l 9Zend_Gdata_Gbase_Query8k AZend_Gdata_Gbase_ItemQuery8j ?Zend_Gdata_Gbase_ItemFeed8i AZend_Gdata_Gbase_ItemEntry8h 7Zend_Gdata_Gbase_Feed8-g ]Zend_Gdata_Gbase_Extension_BaseAttribute8f 9Zend_Gdata_Gbase_Entry8e -Zend_Gdata_Gapps8d AZend_Gdata_Gapps_UserQuery8c ?Zend_Gdata_Gapps_UserFeed8b AZend_Gdata_Gapps_UserEntry8&a OZend_Gdata_Gapps_ServiceException8` 9Zend_Gdata_Gapps_Query8 _ CZend_Gdata_Gapps_OwnerQuery8^ AZend_Gdata_Gapps_OwnerFeed8 ] CZend_Gdata_Gapps_OwnerEntry8#\ IZend_Gdata_Gapps_NicknameQuery8"[ GZend_Gdata_Gapps_NicknameFeed8#Z IZend_Gdata_Gapps_NicknameEntry8!Y EZend_Gdata_Gapps_MemberQuery8 X CZend_Gdata_Gapps_MemberFeed8!W EZend_Gdata_Gapps_MemberEntry8 V CZend_Gdata_Gapps_GroupQuery8U AZend_Gdata_Gapps_GroupFeed8 T CZend_Gdata_Gapps_GroupEntry8%S MZend_Gdata_Gapps_Extension_Quota8(R SZend_Gdata_Gapps_Extension_Property8(Q SZend_Gdata_Gapps_Extension_Nickname8$P KZend_Gdata_Gapps_Extension_Name8%O MZend_Gdata_Gapps_Extension_Login8)N UZend_Gdata_Gapps_Extension_EmailList8M 9Zend_Gdata_Gapps_Error8-L ]Zend_Gdata_Gapps_EmailListRecipientQuery8,K [Zend_Gdata_Gapps_EmailListRecipientFeed8-J ]Zend_Gdata_Gapps_EmailListRecipientEntry8$I KZend_Gdata_Gapps_EmailListQuery8#H IZend_Gdata_Gapps_EmailListFeed8$G KZend_Gdata_Gapps_EmailListEntry8F +Zend_Gdata_Feed8E 5Zend_Gdata_Extension8D =Zend_Gdata_Extension_Who8C AZend_Gdata_Extension_Where8B ?Zend_Gdata_Extension_When8$A KZend_Gdata_Extension_Visibility8&@ OZend_Gdata_Extension_Transparency8"? GZend_Gdata_Extension_Reminder8-> ]Zend_Gdata_Extension_RecurrenceException8$= KZend_Gdata_Extension_Recurrence8 < CZend_Gdata_Extension_Rating8'; QZend_Gdata_Extension_OriginalEvent80: cZend_Gdata_Extension_OpenSearchTotalResults8.9 _Zend_Gdata_Extension_OpenSearchStartIndex808 cZend_Gdata_Extension_OpenSearchItemsPerPage8"7 GZend_Gdata_Extension_FeedLink8*6 WZend_Gdata_Extension_ExtendedProperty8%5 MZend_Gdata_Extension_EventStatus8#4 IZend_Gdata_Extension_EntryLink8"3 GZend_Gdata_Extension_Comments8&2 OZend_Gdata_Extension_AttendeeType8(1 SZend_Gdata_Extension_AttendeeStatus80 +Zend_Gdata_Exif8/ 5Zend_Gdata_Exif_Feed8#. IZend_Gdata_Exif_Extension_Time8#- IZend_Gdata_Exif_Extension_Tags8$, KZend_Gdata_Exif_Extension_Model8#+ IZend_Gdata_Exif_Extension_Make8"* GZend_Gdata_Exif_Extension_Iso8,) [Zend_Gdata_Exif_Extension_ImageUniqueId8$( KZend_Gdata_Exif_Extension_FStop8*' WZend_Gdata_Exif_Extension_FocalLength8$& KZend_Gdata_Exif_Extension_Flash8'% QZend_Gdata_Exif_Extension_Exposure8'$ QZend_Gdata_Exif_Extension_Distance8# 7Zend_Gdata_Exif_Entry8" -Zend_Gdata_Entry8! 7Zend_Gdata_DublinCore8*  WZend_Gdata_DublinCore_Extension_Title8, [Zend_Gdata_DublinCore_Extension_Subject8+ YZend_Gdata_DublinCore_Extension_Rights8. _Zend_Gdata_DublinCore_Extension_Publisher8- ]Zend_Gdata_DublinCore_Extension_Language8/ aZend_Gdata_DublinCore_Extension_Identifier8+ YZend_Gdata_DublinCore_Extension_Format80 cZend_Gdata_DublinCore_Extension_Description8) UZend_Gdata_DublinCore_Extension_Date8, [Zend_Gdata_DublinCore_Extension_Creator8 +Zend_Gdata_Docs8 7Zend_Gdata_Docs_Query8% MZend_Gdata_Docs_DocumentListFeed8& OZend_Gdata_Docs_DocumentListEntry8 9Zend_Gdata_ClientLogin8 3Zend_Gdata_Calendar8! EZend_Gdata_Calendar_ListFeed8" GZend_Gdata_Calendar_ListEntry8- ]Zend_Gdata_Calendar_Extension_WebContent8+ YZend_Gdata_Calendar_Extension_Timezone8   ^  sK/xN.xY(c5yE




^
<
 					`	4	}Gi<~MlCyT1i@U"tD     M ;Zend_Gdata_Spreadsheets8*L WZend_Gdata_Spreadsheets_WorksheetFeed8+K YZend_Gdata_Spreadsheets_WorksheetEntry8,J [Zend_Gdata_Spreadsheets_SpreadsheetFeed8-I ]Zend_Gdata_Spreadsheets_SpreadsheetEntry8&H OZend_Gdata_Spreadsheets_ListQuery8%G MZend_Gdata_Spreadsheets_ListFeed8&F OZend_Gdata_Spreadsheets_ListEntry8/E aZend_Gdata_Spreadsheets_Extension_RowCount8-D ]Zend_Gdata_Spreadsheets_Extension_Custom8/C aZend_Gdata_Spreadsheets_Extension_ColCount8+B YZend_Gdata_Spreadsheets_Extension_Cell8*A WZend_Gdata_Spreadsheets_DocumentQuery8&@ OZend_Gdata_Spreadsheets_CellQuery8%? MZend_Gdata_Spreadsheets_CellFeed8&> OZend_Gdata_Spreadsheets_CellEntry8= -Zend_Gdata_Query8< /Zend_Gdata_Photos8 ; CZend_Gdata_Photos_UserQuery8: AZend_Gdata_Photos_UserFeed8 9 CZend_Gdata_Photos_UserEntry88 AZend_Gdata_Photos_TagEntry8!7 EZend_Gdata_Photos_PhotoQuery8 6 CZend_Gdata_Photos_PhotoFeed8!5 EZend_Gdata_Photos_PhotoEntry8&4 OZend_Gdata_Photos_Extension_Width8'3 QZend_Gdata_Photos_Extension_Weight8(2 SZend_Gdata_Photos_Extension_Version8%1 MZend_Gdata_Photos_Extension_User8*0 WZend_Gdata_Photos_Extension_Timestamp8*/ WZend_Gdata_Photos_Extension_Thumbnail8%. MZend_Gdata_Photos_Extension_Size8)- UZend_Gdata_Photos_Extension_Rotation8+, YZend_Gdata_Photos_Extension_QuotaLimit8-+ ]Zend_Gdata_Photos_Extension_QuotaCurrent8)* UZend_Gdata_Photos_Extension_Position8() SZend_Gdata_Photos_Extension_PhotoId83( iZend_Gdata_Photos_Extension_NumPhotosRemaining8*' WZend_Gdata_Photos_Extension_NumPhotos8)& UZend_Gdata_Photos_Extension_Nickname8%% MZend_Gdata_Photos_Extension_Name82$ gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum8)# UZend_Gdata_Photos_Extension_Location8#" IZend_Gdata_Photos_Extension_Id8'! QZend_Gdata_Photos_Extension_Height82  gZend_Gdata_Photos_Extension_CommentingEnabled8- ]Zend_Gdata_Photos_Extension_CommentCount8' QZend_Gdata_Photos_Extension_Client8) UZend_Gdata_Photos_Extension_Checksum8* WZend_Gdata_Photos_Extension_BytesUsed8( SZend_Gdata_Photos_Extension_AlbumId8' QZend_Gdata_Photos_Extension_Access8# IZend_Gdata_Photos_CommentEntry8! EZend_Gdata_Photos_AlbumQuery8  CZend_Gdata_Photos_AlbumFeed8! EZend_Gdata_Photos_AlbumEntry8 3Zend_Gdata_MimeFile8 ?Zend_Gdata_MimeBodyString8 AZend_Gdata_MediaMimeStream8 -Zend_Gdata_Media8 7Zend_Gdata_Media_Feed8* WZend_Gdata_Media_Extension_MediaTitle8. _Zend_Gdata_Media_Extension_MediaThumbnail8) UZend_Gdata_Media_Extension_MediaText80 cZend_Gdata_Media_Extension_MediaRestriction8+ YZend_Gdata_Media_Extension_MediaRating8+ YZend_Gdata_Media_Extension_MediaPlayer8-
 ]Zend_Gdata_Media_Extension_MediaKeywords8)	 UZend_Gdata_Media_Extension_MediaHash8* WZend_Gdata_Media_Extension_MediaGroup80 cZend_Gdata_Media_Extension_MediaDescription8+ YZend_Gdata_Media_Extension_MediaCredit8. _Zend_Gdata_Media_Extension_MediaCopyright8, [Zend_Gdata_Media_Extension_MediaContent8- ]Zend_Gdata_Media_Extension_MediaCategory8 9Zend_Gdata_Media_Entry8 AZend_Gdata_Kind_EventEntry8  7Zend_Gdata_HttpClient8* WZend_Gdata_HttpAdapterStreamingSocket8)~ UZend_Gdata_HttpAdapterStreamingProxy8} /Zend_Gdata_Health8| ;Zend_Gdata_Health_Query8&{ OZend_Gdata_Health_ProfileListFeed8'z QZend_Gdata_Health_ProfileListEntry8"y GZend_Gdata_Health_ProfileFeed8#x IZend_Gdata_Health_ProfileEntry8$w KZend_Gdata_Health_Extension_Ccr8v )Zend_Gdata_Geo8u 3Zend_Gdata_Geo_Feed8$t KZend_Gdata_Geo_Extension_GmlPos8&s OZend_Gdata_Geo_Extension_GmlPoint8)r UZend_Gdata_Geo_Extension_GeoRssWhere8q 5Zend_Gdata_Geo_Entry8p -Zend_Gdata_Gbase8   ]  `8c6yM l:	|Q$



c
6
			{	J	l>rEe9tI"cG%
wS1e6]+                              * =Zend_Http_UserAgent_Text8() SZend_Http_UserAgent_Storage_Session8.( _Zend_Http_UserAgent_Storage_NonPersistent8*' WZend_Http_UserAgent_Storage_Exception8& =Zend_Http_UserAgent_Spam8% ?Zend_Http_UserAgent_Probe8 $ CZend_Http_UserAgent_Offline8# AZend_Http_UserAgent_Mobile8" =Zend_Http_UserAgent_Feed8+! YZend_Http_UserAgent_Features_Exception82  gZend_Http_UserAgent_Features_Adapter_WurflApi83 iZend_Http_UserAgent_Features_Adapter_TeraWurfl85 mZend_Http_UserAgent_Features_Adapter_DeviceAtlas8" GZend_Http_UserAgent_Exception8 ?Zend_Http_UserAgent_Email8  CZend_Http_UserAgent_Desktop8  CZend_Http_UserAgent_Console8  CZend_Http_UserAgent_Checker8 ;Zend_Http_UserAgent_Bot8' QZend_Http_UserAgent_AbstractDevice8 1Zend_Http_Response8 ?Zend_Http_Response_Stream8 3Zend_Http_Exception8 3Zend_Http_CookieJar8 -Zend_Http_Cookie8 -Zend_Http_Client8 AZend_Http_Client_Exception8" GZend_Http_Client_Adapter_Test8$ KZend_Http_Client_Adapter_Socket8# IZend_Http_Client_Adapter_Proxy8' QZend_Http_Client_Adapter_Exception8" GZend_Http_Client_Adapter_Curl8
 !Zend_Gdata8	 1Zend_Gdata_YouTube8" GZend_Gdata_YouTube_VideoQuery8! EZend_Gdata_YouTube_VideoFeed8" GZend_Gdata_YouTube_VideoEntry8( SZend_Gdata_YouTube_UserProfileEntry8( SZend_Gdata_YouTube_SubscriptionFeed8) UZend_Gdata_YouTube_SubscriptionEntry8) UZend_Gdata_YouTube_PlaylistVideoFeed8* WZend_Gdata_YouTube_PlaylistVideoEntry8(  SZend_Gdata_YouTube_PlaylistListFeed8) UZend_Gdata_YouTube_PlaylistListEntry8"~ GZend_Gdata_YouTube_MediaEntry8!} EZend_Gdata_YouTube_InboxFeed8"| GZend_Gdata_YouTube_InboxEntry8){ UZend_Gdata_YouTube_Extension_VideoId8*z WZend_Gdata_YouTube_Extension_Username8*y WZend_Gdata_YouTube_Extension_Uploaded8'x QZend_Gdata_YouTube_Extension_Token8(w SZend_Gdata_YouTube_Extension_Status8,v [Zend_Gdata_YouTube_Extension_Statistics8'u QZend_Gdata_YouTube_Extension_State8(t SZend_Gdata_YouTube_Extension_School8-s ]Zend_Gdata_YouTube_Extension_ReleaseDate8.r _Zend_Gdata_YouTube_Extension_Relationship8*q WZend_Gdata_YouTube_Extension_Recorded8&p OZend_Gdata_YouTube_Extension_Racy8-o ]Zend_Gdata_YouTube_Extension_QueryString8)n UZend_Gdata_YouTube_Extension_Private8*m WZend_Gdata_YouTube_Extension_Position8/l aZend_Gdata_YouTube_Extension_PlaylistTitle8,k [Zend_Gdata_YouTube_Extension_PlaylistId8,j [Zend_Gdata_YouTube_Extension_Occupation8)i UZend_Gdata_YouTube_Extension_NoEmbed8'h QZend_Gdata_YouTube_Extension_Music8(g SZend_Gdata_YouTube_Extension_Movies8-f ]Zend_Gdata_YouTube_Extension_MediaRating8,e [Zend_Gdata_YouTube_Extension_MediaGroup8-d ]Zend_Gdata_YouTube_Extension_MediaCredit8.c _Zend_Gdata_YouTube_Extension_MediaContent8*b WZend_Gdata_YouTube_Extension_Location8&a OZend_Gdata_YouTube_Extension_Link8*` WZend_Gdata_YouTube_Extension_LastName8*_ WZend_Gdata_YouTube_Extension_Hometown8)^ UZend_Gdata_YouTube_Extension_Hobbies8(] SZend_Gdata_YouTube_Extension_Gender8+\ YZend_Gdata_YouTube_Extension_FirstName8*[ WZend_Gdata_YouTube_Extension_Duration8-Z ]Zend_Gdata_YouTube_Extension_Description8+Y YZend_Gdata_YouTube_Extension_CountHint8)X UZend_Gdata_YouTube_Extension_Control8)W UZend_Gdata_YouTube_Extension_Company8'V QZend_Gdata_YouTube_Extension_Books8%U MZend_Gdata_YouTube_Extension_Age8)T UZend_Gdata_YouTube_Extension_AboutMe8#S IZend_Gdata_YouTube_ContactFeed8$R KZend_Gdata_YouTube_ContactEntry8#Q IZend_Gdata_YouTube_CommentFeed8$P KZend_Gdata_YouTube_CommentEntry8$O KZend_Gdata_YouTube_ActivityFeed8%N MZend_Gdata_YouTube_ActivityEntry8   k  pIy@#pN{P&m6



}
g
M
3

 				y	X	1	nA#fQ5w[;"j@Z7n\4rY; sS2                  AZend_Log_Formatter_Firebug8 =Zend_Log_Filter_Suppress8 =Zend_Log_Filter_Priority8 ;Zend_Log_Filter_Message8 =Zend_Log_Filter_Abstract8 1Zend_Log_Exception8 #Zend_Locale8 -Zend_Locale_Math8 =Zend_Locale_Math_PhpMath8 AZend_Locale_Math_Exception8 1Zend_Locale_Format8
 7Zend_Locale_Exception8	 -Zend_Locale_Data8! EZend_Locale_Data_Translation8 #Zend_Loader8 =Zend_Loader_PluginLoader8' QZend_Loader_PluginLoader_Exception8 7Zend_Loader_Exception8 9Zend_Loader_Autoloader8$ KZend_Loader_Autoloader_Resource8 Zend_Ldap8  )Zend_Ldap_Node8 7Zend_Ldap_Node_Schema8#~ IZend_Ldap_Node_Schema_OpenLdap8/} aZend_Ldap_Node_Schema_ObjectClass_OpenLdap86| oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectory8{ AZend_Ldap_Node_Schema_Item81z eZend_Ldap_Node_Schema_AttributeType_OpenLdap88y sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory8*x WZend_Ldap_Node_Schema_ActiveDirectory8w 9Zend_Ldap_Node_RootDse8$v KZend_Ldap_Node_RootDse_OpenLdap8&u OZend_Ldap_Node_RootDse_eDirectory8+t YZend_Ldap_Node_RootDse_ActiveDirectory8s ?Zend_Ldap_Node_Collection8$r KZend_Ldap_Node_ChildrenIterator8q ;Zend_Ldap_Node_Abstract8p 9Zend_Ldap_Ldif_Encoder8o -Zend_Ldap_Filter8n ;Zend_Ldap_Filter_String8m 3Zend_Ldap_Filter_Or8l 5Zend_Ldap_Filter_Not8k 7Zend_Ldap_Filter_Mask8j =Zend_Ldap_Filter_Logical8i AZend_Ldap_Filter_Exception8h 5Zend_Ldap_Filter_And8g ?Zend_Ldap_Filter_Abstract8f 3Zend_Ldap_Exception8e %Zend_Ldap_Dn8d 3Zend_Ldap_Converter8"c GZend_Ldap_Converter_Exception8b 5Zend_Ldap_Collection8*a WZend_Ldap_Collection_Iterator_Default8` 3Zend_Ldap_Attribute8_ #Zend_Layout8^ 7Zend_Layout_Exception8)] UZend_Layout_Controller_Plugin_Layout80\ cZend_Layout_Controller_Action_Helper_Layout8[ Zend_Json8Z -Zend_Json_Server8Y 5Zend_Json_Server_Smd8!X EZend_Json_Server_Smd_Service8W ?Zend_Json_Server_Response8#V IZend_Json_Server_Response_Http8U =Zend_Json_Server_Request8"T GZend_Json_Server_Request_Http8S AZend_Json_Server_Exception8R 9Zend_Json_Server_Error8Q 9Zend_Json_Server_Cache8P )Zend_Json_Expr8O 3Zend_Json_Exception8N /Zend_Json_Encoder8M /Zend_Json_Decoder8L 'Zend_InfoCard8-K ]Zend_InfoCard_Xml_SecurityTokenReference8J AZend_InfoCard_Xml_Security8)I UZend_InfoCard_Xml_Security_Transform84H kZend_InfoCard_Xml_Security_Transform_XmlExcC14N83G iZend_InfoCard_Xml_Security_Transform_Exception8<F {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignature8)E UZend_InfoCard_Xml_Security_Exception8D ?Zend_InfoCard_Xml_KeyInfo8&C OZend_InfoCard_Xml_KeyInfo_XmlDSig8&B OZend_InfoCard_Xml_KeyInfo_Default8'A QZend_InfoCard_Xml_KeyInfo_Abstract8 @ CZend_InfoCard_Xml_Exception8#? IZend_InfoCard_Xml_EncryptedKey8$> KZend_InfoCard_Xml_EncryptedData8+= YZend_InfoCard_Xml_EncryptedData_XmlEnc8-< ]Zend_InfoCard_Xml_EncryptedData_Abstract8; ?Zend_InfoCard_Xml_Element8 : CZend_InfoCard_Xml_Assertion8%9 MZend_InfoCard_Xml_Assertion_Saml88 ;Zend_InfoCard_Exception8%7 MZend_InfoCard_Exception_Abstract86 5Zend_InfoCard_Claims85 5Zend_InfoCard_Cipher854 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc853 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc842 kZend_InfoCard_Cipher_Symmetric_Adapter_Abstract8)1 UZend_InfoCard_Cipher_Pki_Adapter_Rsa8.0 _Zend_InfoCard_Cipher_Pki_Adapter_Abstract8#/ IZend_InfoCard_Cipher_Exception8$. KZend_InfoCard_Adapter_Exception8"- GZend_InfoCard_Adapter_Default8, 3Zend_Http_UserAgent8"+ GZend_Http_UserAgent_Validator8   x cF)}^D([0uO.jE





f
A
				{	T	.	tR7{^B#hL-f?nP2pN,eH${T3            + YZend_Oauth_Signature_SignatureAbstract8 =Zend_Oauth_Signature_Rsa8# IZend_Oauth_Signature_Plaintext8
 ?Zend_Oauth_Signature_Hmac8	 +Zend_Oauth_Http8 ;Zend_Oauth_Http_Utility8& OZend_Oauth_Http_UserAuthorization8! EZend_Oauth_Http_RequestToken8  CZend_Oauth_Http_AccessToken8 5Zend_Oauth_Exception8 3Zend_Oauth_Consumer8 /Zend_Oauth_Config8 /Zend_Oauth_Client8  +Zend_Navigation8 5Zend_Navigation_Page8~ =Zend_Navigation_Page_Uri8} =Zend_Navigation_Page_Mvc8| ?Zend_Navigation_Exception8{ ?Zend_Navigation_Container8z Zend_Mime8y )Zend_Mime_Part8x /Zend_Mime_Message8w 3Zend_Mime_Exception8v -Zend_Mime_Decode8u #Zend_Memory8t /Zend_Memory_Value8s 3Zend_Memory_Manager8r 7Zend_Memory_Exception8q 7Zend_Memory_Container8"p GZend_Memory_Container_Movable8!o EZend_Memory_Container_Locked8!n EZend_Memory_AccessController8m 3Zend_Measure_Weight8l 3Zend_Measure_Volume8%k MZend_Measure_Viscosity_Kinematic8#j IZend_Measure_Viscosity_Dynamic8i 3Zend_Measure_Torque8h /Zend_Measure_Time8g =Zend_Measure_Temperature8f 1Zend_Measure_Speed8e 7Zend_Measure_Pressure8d 1Zend_Measure_Power8c 3Zend_Measure_Number8b 9Zend_Measure_Lightness8a 3Zend_Measure_Length8` ?Zend_Measure_Illumination8_ 9Zend_Measure_Frequency8^ 1Zend_Measure_Force8] =Zend_Measure_Flow_Volume8\ 9Zend_Measure_Flow_Mole8[ 9Zend_Measure_Flow_Mass8Z 9Zend_Measure_Exception8Y 3Zend_Measure_Energy8X 5Zend_Measure_Density8W 5Zend_Measure_Current8 V CZend_Measure_Cooking_Weight8 U CZend_Measure_Cooking_Volume8T =Zend_Measure_Capacitance8S 3Zend_Measure_Binary8R /Zend_Measure_Area8Q 1Zend_Measure_Angle8P ?Zend_Measure_Acceleration8O 7Zend_Measure_Abstract8N #Zend_Markup8M 7Zend_Markup_TokenList8L /Zend_Markup_Token8*K WZend_Markup_Renderer_RendererAbstract8J ?Zend_Markup_Renderer_Html8"I GZend_Markup_Renderer_Html_Url8#H IZend_Markup_Renderer_Html_List8"G GZend_Markup_Renderer_Html_Img8+F YZend_Markup_Renderer_Html_HtmlAbstract8#E IZend_Markup_Renderer_Html_Code8#D IZend_Markup_Renderer_Exception8C AZend_Markup_Parser_Textile8!B EZend_Markup_Parser_Exception8A ?Zend_Markup_Parser_Bbcode8@ 7Zend_Markup_Exception8? Zend_Mail8> =Zend_Mail_Transport_Smtp8!= EZend_Mail_Transport_Sendmail8< =Zend_Mail_Transport_File8"; GZend_Mail_Transport_Exception8!: EZend_Mail_Transport_Abstract89 /Zend_Mail_Storage8'8 QZend_Mail_Storage_Writable_Maildir87 9Zend_Mail_Storage_Pop386 9Zend_Mail_Storage_Mbox85 ?Zend_Mail_Storage_Maildir84 9Zend_Mail_Storage_Imap83 =Zend_Mail_Storage_Folder8"2 GZend_Mail_Storage_Folder_Mbox8%1 MZend_Mail_Storage_Folder_Maildir8 0 CZend_Mail_Storage_Exception8/ AZend_Mail_Storage_Abstract8. ;Zend_Mail_Protocol_Smtp8'- QZend_Mail_Protocol_Smtp_Auth_Plain8', QZend_Mail_Protocol_Smtp_Auth_Login8)+ UZend_Mail_Protocol_Smtp_Auth_Crammd58* ;Zend_Mail_Protocol_Pop38) ;Zend_Mail_Protocol_Imap8!( EZend_Mail_Protocol_Exception8 ' CZend_Mail_Protocol_Abstract8& )Zend_Mail_Part8% 3Zend_Mail_Part_File8$ /Zend_Mail_Message8# 9Zend_Mail_Message_File8" 3Zend_Mail_Exception8! Zend_Log8   CZend_Log_Writer_ZendMonitor8 9Zend_Log_Writer_Syslog8 9Zend_Log_Writer_Stream8 5Zend_Log_Writer_Null8 5Zend_Log_Writer_Mock8 5Zend_Log_Writer_Mail8 ;Zend_Log_Writer_Firebug8 1Zend_Log_Writer_Db8 =Zend_Log_Writer_Abstract8 9Zend_Log_Formatter_Xml8 ?Zend_Log_Formatter_Simple8   n  {h>sN$W/d6rU2




p
L
.
					z	O	.	kH# v_9~Q'uV5mBvP0qO3tJ"                            { CZend_Pdf_Filter_Compression8$z KZend_Pdf_Filter_Compression_Lzw8&y OZend_Pdf_Filter_Compression_Flate8x =Zend_Pdf_Filter_AsciiHex8w ;Zend_Pdf_Filter_Ascii858"v GZend_Pdf_FileParserDataSource8)u UZend_Pdf_FileParserDataSource_String8't QZend_Pdf_FileParserDataSource_File8s 3Zend_Pdf_FileParser8r ?Zend_Pdf_FileParser_Image8"q GZend_Pdf_FileParser_Image_Png8p =Zend_Pdf_FileParser_Font8&o OZend_Pdf_FileParser_Font_OpenType8/n aZend_Pdf_FileParser_Font_OpenType_TrueType8m 1Zend_Pdf_Exception8l ;Zend_Pdf_ElementFactory8"k GZend_Pdf_ElementFactory_Proxy8j -Zend_Pdf_Element8i ;Zend_Pdf_Element_String8#h IZend_Pdf_Element_String_Binary8g ;Zend_Pdf_Element_Stream8f AZend_Pdf_Element_Reference8%e MZend_Pdf_Element_Reference_Table8'd QZend_Pdf_Element_Reference_Context8c ;Zend_Pdf_Element_Object8#b IZend_Pdf_Element_Object_Stream8a =Zend_Pdf_Element_Numeric8` 7Zend_Pdf_Element_Null8_ 7Zend_Pdf_Element_Name8 ^ CZend_Pdf_Element_Dictionary8] =Zend_Pdf_Element_Boolean8\ 9Zend_Pdf_Element_Array8[ 5Zend_Pdf_Destination8Z ?Zend_Pdf_Destination_Zoom8!Y EZend_Pdf_Destination_Unknown8X AZend_Pdf_Destination_Named8'W QZend_Pdf_Destination_FitVertically8&V OZend_Pdf_Destination_FitRectangle8)U UZend_Pdf_Destination_FitHorizontally82T gZend_Pdf_Destination_FitBoundingBoxVertically84S kZend_Pdf_Destination_FitBoundingBoxHorizontally8(R SZend_Pdf_Destination_FitBoundingBox8Q =Zend_Pdf_Destination_Fit8"P GZend_Pdf_Destination_Explicit8O )Zend_Pdf_Color8N 1Zend_Pdf_Color_Rgb8M 3Zend_Pdf_Color_Html8L =Zend_Pdf_Color_GrayScale8K 3Zend_Pdf_Color_Cmyk8J 'Zend_Pdf_Cmap8I AZend_Pdf_Cmap_TrimmedTable8!H EZend_Pdf_Cmap_SegmentToDelta8G AZend_Pdf_Cmap_ByteEncoding8&F OZend_Pdf_Cmap_ByteEncoding_Static8E +Zend_Pdf_Canvas8D =Zend_Pdf_Canvas_Abstract8C 3Zend_Pdf_Annotation8B =Zend_Pdf_Annotation_Text8A AZend_Pdf_Annotation_Markup8@ =Zend_Pdf_Annotation_Link8'? QZend_Pdf_Annotation_FileAttachment8> +Zend_Pdf_Action8= 3Zend_Pdf_Action_URI8< ;Zend_Pdf_Action_Unknown8; 7Zend_Pdf_Action_Trans8: 9Zend_Pdf_Action_Thread89 AZend_Pdf_Action_SubmitForm88 7Zend_Pdf_Action_Sound8 7 CZend_Pdf_Action_SetOCGState86 ?Zend_Pdf_Action_ResetForm85 ?Zend_Pdf_Action_Rendition84 7Zend_Pdf_Action_Named83 7Zend_Pdf_Action_Movie82 9Zend_Pdf_Action_Launch81 AZend_Pdf_Action_JavaScript80 AZend_Pdf_Action_ImportData8/ 5Zend_Pdf_Action_Hide8. 7Zend_Pdf_Action_GoToR8- 7Zend_Pdf_Action_GoToE8, AZend_Pdf_Action_GoTo3DView8+ 5Zend_Pdf_Action_GoTo8* )Zend_Paginator8-) ]Zend_Paginator_SerializableLimitIterator8*( WZend_Paginator_ScrollingStyle_Sliding8*' WZend_Paginator_ScrollingStyle_Jumping8*& WZend_Paginator_ScrollingStyle_Elastic8&% OZend_Paginator_ScrollingStyle_All8$ =Zend_Paginator_Exception8 # CZend_Paginator_Adapter_Null8$" KZend_Paginator_Adapter_Iterator8)! UZend_Paginator_Adapter_DbTableSelect8$  KZend_Paginator_Adapter_DbSelect8! EZend_Paginator_Adapter_Array8 #Zend_OpenId8 5Zend_OpenId_Provider8 ?Zend_OpenId_Provider_User8& OZend_OpenId_Provider_User_Session8! EZend_OpenId_Provider_Storage8& OZend_OpenId_Provider_Storage_File8 7Zend_OpenId_Extension8 AZend_OpenId_Extension_Sreg8 7Zend_OpenId_Exception8 5Zend_OpenId_Consumer8! EZend_OpenId_Consumer_Storage8& OZend_OpenId_Consumer_Storage_File8 !Zend_Oauth8 -Zend_Oauth_Token8 =Zend_Oauth_Token_Request8' QZend_Oauth_Token_AuthorizedRequest8 ;Zend_Oauth_Token_Access8   e  vV='\5{D	PX


k
/
 				n	I	%	 }_H0uJ"yN-T7gT6wU8|R2n$                          5` mZend_Search_Lucene_Analysis_Analyzer_Common_Text8F_ Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive8^ 7Zend_Search_Exception8] -Zend_Rest_Server8\ AZend_Rest_Server_Exception8[ +Zend_Rest_Route8Z 3Zend_Rest_Exception8Y 5Zend_Rest_Controller8X -Zend_Rest_Client8W ;Zend_Rest_Client_Result8&V OZend_Rest_Client_Result_Exception8U AZend_Rest_Client_Exception8T 'Zend_Registry8S =Zend_Reflection_Property8R ?Zend_Reflection_Parameter8Q 9Zend_Reflection_Method8P =Zend_Reflection_Function8O 5Zend_Reflection_File8N ?Zend_Reflection_Extension8M ?Zend_Reflection_Exception8L =Zend_Reflection_Docblock8!K EZend_Reflection_Docblock_Tag8(J SZend_Reflection_Docblock_Tag_Return8'I QZend_Reflection_Docblock_Tag_Param8H 7Zend_Reflection_Class8G !Zend_Queue8F 9Zend_Queue_Stomp_Frame8E ;Zend_Queue_Stomp_Client8'D QZend_Queue_Stomp_Client_Connection8C 1Zend_Queue_Message8#B IZend_Queue_Message_PlatformJob8 A CZend_Queue_Message_Iterator8@ 5Zend_Queue_Exception8(? SZend_Queue_Adapter_PlatformJobQueue8> ;Zend_Queue_Adapter_Null8!= EZend_Queue_Adapter_Memcacheq8< 7Zend_Queue_Adapter_Db8 ; CZend_Queue_Adapter_Db_Queue8": GZend_Queue_Adapter_Db_Message89 =Zend_Queue_Adapter_Array8'8 QZend_Queue_Adapter_AdapterAbstract8 7 CZend_Queue_Adapter_Activemq86 -Zend_ProgressBar85 AZend_ProgressBar_Exception84 =Zend_ProgressBar_Adapter8$3 KZend_ProgressBar_Adapter_JsPush8$2 KZend_ProgressBar_Adapter_JsPull8'1 QZend_ProgressBar_Adapter_Exception8%0 MZend_ProgressBar_Adapter_Console8/ Zend_Pdf8!. EZend_Pdf_UpdateInfoContainer8- -Zend_Pdf_Trailer8, ;Zend_Pdf_Trailer_Keeper8+ AZend_Pdf_Trailer_Generator8* +Zend_Pdf_Target8) )Zend_Pdf_Style8( 7Zend_Pdf_StringParser8' /Zend_Pdf_Resource8& ?Zend_Pdf_Resource_Unified8#% IZend_Pdf_Resource_ImageFactory8$ ;Zend_Pdf_Resource_Image8!# EZend_Pdf_Resource_Image_Tiff8 " CZend_Pdf_Resource_Image_Png8!! EZend_Pdf_Resource_Image_Jpeg8$  KZend_Pdf_Resource_GraphicsState8 9Zend_Pdf_Resource_Font8! EZend_Pdf_Resource_Font_Type08" GZend_Pdf_Resource_Font_Simple8+ YZend_Pdf_Resource_Font_Simple_Standard88 sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats86 oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman87 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic8; yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic85 mZend_Pdf_Resource_Font_Simple_Standard_TimesBold82 gZend_Pdf_Resource_Font_Simple_Standard_Symbol8< {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaOblique8A Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique89 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold85 mZend_Pdf_Resource_Font_Simple_Standard_Helvetica8: wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique8> Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique87 qZend_Pdf_Resource_Font_Simple_Standard_CourierBold83 iZend_Pdf_Resource_Font_Simple_Standard_Courier8) UZend_Pdf_Resource_Font_Simple_Parsed82 gZend_Pdf_Resource_Font_Simple_Parsed_TrueType8* WZend_Pdf_Resource_Font_FontDescriptor8%
 MZend_Pdf_Resource_Font_Extracted8#	 IZend_Pdf_Resource_Font_CidFont8, [Zend_Pdf_Resource_Font_CidFont_TrueType8  CZend_Pdf_Resource_Extractor8$ KZend_Pdf_Resource_ContentStream83 iZend_Pdf_RecursivelyIteratableObjectsContainer8 +Zend_Pdf_Parser8 'Zend_Pdf_Page8 -Zend_Pdf_Outline8 ;Zend_Pdf_Outline_Loaded8  =Zend_Pdf_Outline_Created8 /Zend_Pdf_NameTree8~ )Zend_Pdf_Image8} 'Zend_Pdf_Font8| ?Zend_Pdf_Filter_RunLength8   P  w-k7
h-lC|[<



a
2				c	9	Z9g9f)],h;IZ'h;           $0 KZend_Search_Lucene_Storage_File8+/ YZend_Search_Lucene_Storage_File_Memory8/. aZend_Search_Lucene_Storage_File_Filesystem8)- UZend_Search_Lucene_Storage_Directory84, kZend_Search_Lucene_Storage_Directory_Filesystem8%+ MZend_Search_Lucene_Search_Weight8** WZend_Search_Lucene_Search_Weight_Term8,) [Zend_Search_Lucene_Search_Weight_Phrase8/( aZend_Search_Lucene_Search_Weight_MultiTerm8+' YZend_Search_Lucene_Search_Weight_Empty8-& ]Zend_Search_Lucene_Search_Weight_Boolean8)% UZend_Search_Lucene_Search_Similarity81$ eZend_Search_Lucene_Search_Similarity_Default8)# UZend_Search_Lucene_Search_QueryToken83" iZend_Search_Lucene_Search_QueryParserException81! eZend_Search_Lucene_Search_QueryParserContext8*  WZend_Search_Lucene_Search_QueryParser8) UZend_Search_Lucene_Search_QueryLexer8' QZend_Search_Lucene_Search_QueryHit8) UZend_Search_Lucene_Search_QueryEntry8. _Zend_Search_Lucene_Search_QueryEntry_Term82 gZend_Search_Lucene_Search_QueryEntry_Subquery80 cZend_Search_Lucene_Search_QueryEntry_Phrase8$ KZend_Search_Lucene_Search_Query8- ]Zend_Search_Lucene_Search_Query_Wildcard8) UZend_Search_Lucene_Search_Query_Term8* WZend_Search_Lucene_Search_Query_Range82 gZend_Search_Lucene_Search_Query_Preprocessing87 qZend_Search_Lucene_Search_Query_Preprocessing_Term89 uZend_Search_Lucene_Search_Query_Preprocessing_Phrase88 sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy8+ YZend_Search_Lucene_Search_Query_Phrase8. _Zend_Search_Lucene_Search_Query_MultiTerm82 gZend_Search_Lucene_Search_Query_Insignificant8* WZend_Search_Lucene_Search_Query_Fuzzy8* WZend_Search_Lucene_Search_Query_Empty8, [Zend_Search_Lucene_Search_Query_Boolean82 gZend_Search_Lucene_Search_Highlighter_Default8:
 wZend_Search_Lucene_Search_BooleanExpressionRecognizer8	 =Zend_Search_Lucene_Proxy8% MZend_Search_Lucene_PriorityQueue8/ aZend_Search_Lucene_Interface_MultiSearcher8# IZend_Search_Lucene_LockManager8$ KZend_Search_Lucene_Index_Writer80 cZend_Search_Lucene_Index_TermsPriorityQueue8& OZend_Search_Lucene_Index_TermInfo8" GZend_Search_Lucene_Index_Term8+ YZend_Search_Lucene_Index_SegmentWriter88  sZend_Search_Lucene_Index_SegmentWriter_StreamWriter8: wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter8+~ YZend_Search_Lucene_Index_SegmentMerger8)} UZend_Search_Lucene_Index_SegmentInfo8'| QZend_Search_Lucene_Index_FieldInfo8({ SZend_Search_Lucene_Index_DocsFilter8.z _Zend_Search_Lucene_Index_DictionaryLoader8!y EZend_Search_Lucene_FSMAction8x 9Zend_Search_Lucene_FSM8w =Zend_Search_Lucene_Field8!v EZend_Search_Lucene_Exception8 u CZend_Search_Lucene_Document8%t MZend_Search_Lucene_Document_Xlsx8%s MZend_Search_Lucene_Document_Pptx8(r SZend_Search_Lucene_Document_OpenXml8%q MZend_Search_Lucene_Document_Html8*p WZend_Search_Lucene_Document_Exception8%o MZend_Search_Lucene_Document_Docx8,n [Zend_Search_Lucene_Analysis_TokenFilter86m oZend_Search_Lucene_Analysis_TokenFilter_StopWords87l qZend_Search_Lucene_Analysis_TokenFilter_ShortWords8:k wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf886j oZend_Search_Lucene_Analysis_TokenFilter_LowerCase8&i OZend_Search_Lucene_Analysis_Token8)h UZend_Search_Lucene_Analysis_Analyzer80g cZend_Search_Lucene_Analysis_Analyzer_Common88f sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num8Ie Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive85d mZend_Search_Lucene_Analysis_Analyzer_Common_Utf88Fc Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive88b sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum8Ia Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive8   ]  \7gB pJ% Y3sU8



Z
,
			{	P	,	O&_3~Y7xIsS7tUj9d&                                     < {Zend_Service_DeveloperGarden_ConferenceCall_Participant8: wZend_Service_DeveloperGarden_ConferenceCall_Exception8D 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceSchedule8B
 Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail8C	 Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount8- ]Zend_Service_DeveloperGarden_Client_Soap82 gZend_Service_DeveloperGarden_Client_Exception87 qZend_Service_DeveloperGarden_Client_ClientAbstract81 eZend_Service_DeveloperGarden_BaseUserService8A Zend_Service_DeveloperGarden_BaseUserService_AccountBalance8 9Zend_Service_Delicious8& OZend_Service_Delicious_SimplePost8$ KZend_Service_Delicious_PostList8   CZend_Service_Delicious_Post8% MZend_Service_Delicious_Exception8 ~ CZend_Service_Audioscrobbler8} 3Zend_Service_Amazon8| ;Zend_Service_Amazon_Sqs8&{ OZend_Service_Amazon_Sqs_Exception8!z EZend_Service_Amazon_SimpleDb8*y WZend_Service_Amazon_SimpleDb_Response8&x OZend_Service_Amazon_SimpleDb_Page8+w YZend_Service_Amazon_SimpleDb_Exception8+v YZend_Service_Amazon_SimpleDb_Attribute8'u QZend_Service_Amazon_SimilarProduct8t 9Zend_Service_Amazon_S38"s GZend_Service_Amazon_S3_Stream8%r MZend_Service_Amazon_S3_Exception8"q GZend_Service_Amazon_ResultSet8p ?Zend_Service_Amazon_Query8!o EZend_Service_Amazon_OfferSet8n ?Zend_Service_Amazon_Offer8&m OZend_Service_Amazon_ListmaniaList8l =Zend_Service_Amazon_Item8k ?Zend_Service_Amazon_Image8"j GZend_Service_Amazon_Exception8(i SZend_Service_Amazon_EditorialReview8h ;Zend_Service_Amazon_Ec28+g YZend_Service_Amazon_Ec2_Securitygroups8%f MZend_Service_Amazon_Ec2_Response8#e IZend_Service_Amazon_Ec2_Region8$d KZend_Service_Amazon_Ec2_Keypair8%c MZend_Service_Amazon_Ec2_Instance8-b ]Zend_Service_Amazon_Ec2_Instance_Windows8.a _Zend_Service_Amazon_Ec2_Instance_Reserved8"` GZend_Service_Amazon_Ec2_Image8&_ OZend_Service_Amazon_Ec2_Exception8&^ OZend_Service_Amazon_Ec2_Elasticip8 ] CZend_Service_Amazon_Ec2_Ebs8'\ QZend_Service_Amazon_Ec2_CloudWatch8.[ _Zend_Service_Amazon_Ec2_Availabilityzones8%Z MZend_Service_Amazon_Ec2_Abstract8'Y QZend_Service_Amazon_CustomerReview8'X QZend_Service_Amazon_Authentication8*W WZend_Service_Amazon_Authentication_V28*V WZend_Service_Amazon_Authentication_V18*U WZend_Service_Amazon_Authentication_S381T eZend_Service_Amazon_Authentication_Exception8$S KZend_Service_Amazon_Accessories8!R EZend_Service_Amazon_Abstract8Q 5Zend_Service_Akismet8P 7Zend_Service_Abstract8O 9Zend_Server_Reflection8'N QZend_Server_Reflection_ReturnValue8%M MZend_Server_Reflection_Prototype8%L MZend_Server_Reflection_Parameter8 K CZend_Server_Reflection_Node8"J GZend_Server_Reflection_Method8$I KZend_Server_Reflection_Function8-H ]Zend_Server_Reflection_Function_Abstract8%G MZend_Server_Reflection_Exception8!F EZend_Server_Reflection_Class8!E EZend_Server_Method_Prototype8!D EZend_Server_Method_Parameter8"C GZend_Server_Method_Definition8 B CZend_Server_Method_Callback8A 7Zend_Server_Exception8@ 9Zend_Server_Definition8? /Zend_Server_Cache8> 5Zend_Server_Abstract8= +Zend_Serializer8< ?Zend_Serializer_Exception8!; EZend_Serializer_Adapter_Wddx8): UZend_Serializer_Adapter_PythonPickle8)9 UZend_Serializer_Adapter_PhpSerialize8$8 KZend_Serializer_Adapter_PhpCode8!7 EZend_Serializer_Adapter_Json8%6 MZend_Serializer_Adapter_Igbinary8!5 EZend_Serializer_Adapter_Amf38!4 EZend_Serializer_Adapter_Amf08,3 [Zend_Serializer_Adapter_AdapterAbstract82 1Zend_Search_Lucene801 cZend_Search_Lucene_TermStreamsPriorityQueue8   4 q r>u:y)rk

_			GF+n;o2Uy8X!  q UA +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponse8S@ 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse83? iZend_Service_DeveloperGarden_Response_BaseType8J> Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstract8C= Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCall8G< Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced8=; }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCall8A: Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatus8A9 Zend_Service_DeveloperGarden_Request_SmsValidation_Validate8N8 Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeyword8C7 Zend_Service_DeveloperGarden_Request_SmsValidation_Invalidate8L6 Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbers8B5 Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract894 uZend_Service_DeveloperGarden_Request_SendSms_SendSMS8>3 Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS892 uZend_Service_DeveloperGarden_Request_RequestAbstract8I1 Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequest8E0 Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest83/ iZend_Service_DeveloperGarden_Request_Exception8R. %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequest8Y- 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequest8d, IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequest8Q+ #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequest8R* %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequest8Y) 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequest8d( IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequest8Q' #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequest8O& Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequest8U% +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequest8U$ +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequest8V# -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequest8a" CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequest8Z! 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequest8T  )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequest8R %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequest8Y 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequest8Q #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequest8Q #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequest8a CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequest8N Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformation8L Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalance8J Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool8- ]Zend_Service_DeveloperGarden_LocalSearch8> Zend_Service_DeveloperGarden_LocalSearch_SearchParameters87 qZend_Service_DeveloperGarden_LocalSearch_Exception8, [Zend_Service_DeveloperGarden_IpLocation86 oZend_Service_DeveloperGarden_IpLocation_IpAddress8+ YZend_Service_DeveloperGarden_Exception8, [Zend_Service_DeveloperGarden_Credential80 cZend_Service_DeveloperGarden_ConferenceCall8C Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatus8C Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail8   - q >.'eW


5		c	L3.eL]~3P   q               In Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception8;m yZend_Service_DeveloperGarden_Response_ResponseAbstract8Ol Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseType8Kk Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponse8Aj Zend_Service_DeveloperGarden_Response_IpLocation_RegionType8Ki Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseType8Gh Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponse8Lg Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationType8If Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType8>e Zend_Service_DeveloperGarden_Response_IpLocation_CityType84d kZend_Service_DeveloperGarden_Response_Exception8Tc )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse8[b 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponse8fa MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponse8S` 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponse8T_ )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse8[^ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponse8f] MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponse8S\ 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponse8U[ +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType8QZ #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse8[Y 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseType8WX /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse8[W 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseType8WV /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse8\U 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseType8XT 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponse8gS OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseType8cR GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse8`Q AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType8\P 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponse8ZO 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseType8VN -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponse8XM 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseType8TL )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse8_K ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType8[J 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponse8WI /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType8SH 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponse8QG #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstract8SF 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponse8JE Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType8gD OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseType8cC GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponse8WB /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse8   K  Rxv)<M



Y
&					H	|=sFUZ*oB zR*cE{K#                      &9 OZend_Service_ShortUrl_MetamarkNet8!8 EZend_Service_ShortUrl_JdemCz87 AZend_Service_ShortUrl_IsGd8$6 KZend_Service_ShortUrl_Exception8,5 [Zend_Service_ShortUrl_AbstractShortener84 9Zend_Service_ReCaptcha8$3 KZend_Service_ReCaptcha_Response8$2 KZend_Service_ReCaptcha_MailHide8.1 _Zend_Service_ReCaptcha_MailHide_Exception8%0 MZend_Service_ReCaptcha_Exception8/ 7Zend_Service_Nirvanix8#. IZend_Service_Nirvanix_Response8)- UZend_Service_Nirvanix_Namespace_Imfs8), UZend_Service_Nirvanix_Namespace_Base8$+ KZend_Service_Nirvanix_Exception8* 7Zend_Service_LiveDocx8$) KZend_Service_LiveDocx_MailMerge8$( KZend_Service_LiveDocx_Exception8' 3Zend_Service_Flickr8"& GZend_Service_Flickr_ResultSet8% AZend_Service_Flickr_Result8$ ?Zend_Service_Flickr_Image8# 9Zend_Service_Exception8" ?Zend_Service_Ebay_Finding8)! UZend_Service_Ebay_Finding_Storefront8+  YZend_Service_Ebay_Finding_ShippingInfo8+ YZend_Service_Ebay_Finding_Set_Abstract8, [Zend_Service_Ebay_Finding_SellingStatus8) UZend_Service_Ebay_Finding_SellerInfo8, [Zend_Service_Ebay_Finding_Search_Result8* WZend_Service_Ebay_Finding_Search_Item8. _Zend_Service_Ebay_Finding_Search_Item_Set80 cZend_Service_Ebay_Finding_Response_Keywords8- ]Zend_Service_Ebay_Finding_Response_Items82 gZend_Service_Ebay_Finding_Response_Histograms80 cZend_Service_Ebay_Finding_Response_Abstract8/ aZend_Service_Ebay_Finding_PaginationOutput8* WZend_Service_Ebay_Finding_ListingInfo8( SZend_Service_Ebay_Finding_Exception8, [Zend_Service_Ebay_Finding_Error_Message8) UZend_Service_Ebay_Finding_Error_Data8- ]Zend_Service_Ebay_Finding_Error_Data_Set8' QZend_Service_Ebay_Finding_Category81 eZend_Service_Ebay_Finding_Category_Histogram85 mZend_Service_Ebay_Finding_Category_Histogram_Set8; yZend_Service_Ebay_Finding_Category_Histogram_Container8% MZend_Service_Ebay_Finding_Aspect8)
 UZend_Service_Ebay_Finding_Aspect_Set85	 mZend_Service_Ebay_Finding_Aspect_Histogram_Value89 uZend_Service_Ebay_Finding_Aspect_Histogram_Value_Set89 uZend_Service_Ebay_Finding_Aspect_Histogram_Container8' QZend_Service_Ebay_Finding_Abstract8  CZend_Service_Ebay_Exception8 AZend_Service_Ebay_Abstract8+ YZend_Service_DeveloperGarden_VoiceCall8/ aZend_Service_DeveloperGarden_SmsValidation8) UZend_Service_DeveloperGarden_SendSms85  mZend_Service_DeveloperGarden_SecurityTokenServer8; yZend_Service_DeveloperGarden_SecurityTokenServer_Cache8K~ Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstract8L} Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponse8P| !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponse8G{ Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponse8Jz Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponse8Ky Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2Response8Lx Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponse8Iw Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumber8Wv /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponse8Ju Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponse8Ut +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponse8Cs Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponse8Cr Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstract8Hq Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponse8Up +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponse8Qo #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponse8   O  oO,mE* g=c4pF



l
<
				f	?	u=<Vw+j4Lt5a$           9 uZend_Service_WindowsAzure_Storage_PageRegionInstance84 kZend_Service_WindowsAzure_Storage_LeaseInstance89 uZend_Service_WindowsAzure_Storage_DynamicTableEntity83 iZend_Service_WindowsAzure_Storage_BlobInstance84 kZend_Service_WindowsAzure_Storage_BlobContainer8+ YZend_Service_WindowsAzure_Storage_Blob82 gZend_Service_WindowsAzure_Storage_Blob_Stream8; yZend_Service_WindowsAzure_Storage_BatchStorageAbstract8,  [Zend_Service_WindowsAzure_Storage_Batch8- ]Zend_Service_WindowsAzure_SessionHandler8>~ Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract81} eZend_Service_WindowsAzure_RetryPolicy_RetryN82| gZend_Service_WindowsAzure_RetryPolicy_NoRetry84{ kZend_Service_WindowsAzure_RetryPolicy_Exception8(z SZend_Service_WindowsAzure_Exception8Jy Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscription82x gZend_Service_WindowsAzure_Diagnostics_Manager83w iZend_Service_WindowsAzure_Diagnostics_LogLevel84v kZend_Service_WindowsAzure_Diagnostics_Exception8Nu Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscription8Ht Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLog8Ls Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCounters8Kr Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstract8<q {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogs8Ap Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstance8Do 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectories8Un +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogs8Dm 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSources88l sZend_Service_WindowsAzure_Credentials_SharedKeyLite84k kZend_Service_WindowsAzure_Credentials_SharedKey8Aj Zend_Service_WindowsAzure_Credentials_SharedAccessSignature84i kZend_Service_WindowsAzure_Credentials_Exception8>h Zend_Service_WindowsAzure_Credentials_CredentialsAbstract8g 5Zend_Service_Twitter8 f CZend_Service_Twitter_Search8#e IZend_Service_Twitter_Exception8d ;Zend_Service_Technorati8#c IZend_Service_Technorati_Weblog8"b GZend_Service_Technorati_Utils8*a WZend_Service_Technorati_TagsResultSet8'` QZend_Service_Technorati_TagsResult8)_ UZend_Service_Technorati_TagResultSet8&^ OZend_Service_Technorati_TagResult8,] [Zend_Service_Technorati_SearchResultSet8)\ UZend_Service_Technorati_SearchResult8&[ OZend_Service_Technorati_ResultSet8#Z IZend_Service_Technorati_Result8*Y WZend_Service_Technorati_KeyInfoResult8*X WZend_Service_Technorati_GetInfoResult8&W OZend_Service_Technorati_Exception81V eZend_Service_Technorati_DailyCountsResultSet8.U _Zend_Service_Technorati_DailyCountsResult8,T [Zend_Service_Technorati_CosmosResultSet8)S UZend_Service_Technorati_CosmosResult8+R YZend_Service_Technorati_BlogInfoResult8#Q IZend_Service_Technorati_Author8P ;Zend_Service_StrikeIron8(O SZend_Service_StrikeIron_ZipCodeInfo82N gZend_Service_StrikeIron_USAddressVerification8-M ]Zend_Service_StrikeIron_SalesUseTaxBasic8&L OZend_Service_StrikeIron_Exception8&K OZend_Service_StrikeIron_Decorator8!J EZend_Service_StrikeIron_Base8I ;Zend_Service_SlideShare8&H OZend_Service_SlideShare_SlideShow8&G OZend_Service_SlideShare_Exception8F 1Zend_Service_Simpy8$E KZend_Service_Simpy_WatchlistSet8*D WZend_Service_Simpy_WatchlistFilterSet8'C QZend_Service_Simpy_WatchlistFilter8!B EZend_Service_Simpy_Watchlist8A ?Zend_Service_Simpy_TagSet8@ 9Zend_Service_Simpy_Tag8? AZend_Service_Simpy_NoteSet8> ;Zend_Service_Simpy_Note8= AZend_Service_Simpy_LinkSet8!< EZend_Service_Simpy_LinkQuery8; ;Zend_Service_Simpy_Link8%: MZend_Service_ShortUrl_TinyUrlCom8   c  a&EqEvLb:



o
G

				}	Z	;	"tArG{eK/R%wC[-{_@x^?$                         $k KZend_Tool_Framework_Action_Base8j 'Zend_TimeSync8i 1Zend_TimeSync_Sntp8h 9Zend_TimeSync_Protocol8g /Zend_TimeSync_Ntp8f ;Zend_TimeSync_Exception8e +Zend_Text_Table8d 3Zend_Text_Table_Row8c ?Zend_Text_Table_Exception8&b OZend_Text_Table_Decorator_Unicode8$a KZend_Text_Table_Decorator_Ascii8` 9Zend_Text_Table_Column8_ 3Zend_Text_MultiByte8^ -Zend_Text_Figlet8] AZend_Text_Figlet_Exception8\ 3Zend_Text_Exception8&[ OZend_Test_PHPUnit_Db_SimpleTester8,Z [Zend_Test_PHPUnit_Db_Operation_Truncate8*Y WZend_Test_PHPUnit_Db_Operation_Insert8-X ]Zend_Test_PHPUnit_Db_Operation_DeleteAll8*W WZend_Test_PHPUnit_Db_Metadata_Generic8#V IZend_Test_PHPUnit_Db_Exception8,U [Zend_Test_PHPUnit_Db_DataSet_QueryTable8.T _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet80S cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet8)R UZend_Test_PHPUnit_Db_DataSet_DbTable8*Q WZend_Test_PHPUnit_Db_DataSet_DbRowset8$P KZend_Test_PHPUnit_Db_Connection8'O QZend_Test_PHPUnit_DatabaseTestCase8)N UZend_Test_PHPUnit_ControllerTestCase80M cZend_Test_PHPUnit_Constraint_ResponseHeader8*L WZend_Test_PHPUnit_Constraint_Redirect8+K YZend_Test_PHPUnit_Constraint_Exception8*J WZend_Test_PHPUnit_Constraint_DomQuery8I 7Zend_Test_DbStatement8H 3Zend_Test_DbAdapter8G /Zend_Tag_ItemList8F 'Zend_Tag_Item8E 1Zend_Tag_Exception8D )Zend_Tag_Cloud8C =Zend_Tag_Cloud_Exception8!B EZend_Tag_Cloud_Decorator_Tag8%A MZend_Tag_Cloud_Decorator_HtmlTag8'@ QZend_Tag_Cloud_Decorator_HtmlCloud8'? QZend_Tag_Cloud_Decorator_Exception8#> IZend_Tag_Cloud_Decorator_Cloud8= )Zend_Soap_Wsdl8/< aZend_Soap_Wsdl_Strategy_DefaultComplexType8&; OZend_Soap_Wsdl_Strategy_Composite80: cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence8/9 aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex8$8 KZend_Soap_Wsdl_Strategy_AnyType8%7 MZend_Soap_Wsdl_Strategy_Abstract86 =Zend_Soap_Wsdl_Exception85 -Zend_Soap_Server84 AZend_Soap_Server_Exception83 -Zend_Soap_Client82 9Zend_Soap_Client_Local81 AZend_Soap_Client_Exception80 ;Zend_Soap_Client_DotNet8/ ;Zend_Soap_Client_Common8. 9Zend_Soap_AutoDiscover8%- MZend_Soap_AutoDiscover_Exception8, %Zend_Session8)+ UZend_Session_Validator_HttpUserAgent8$* KZend_Session_Validator_Abstract8') QZend_Session_SaveHandler_Exception8%( MZend_Session_SaveHandler_DbTable8' 9Zend_Session_Namespace8& 9Zend_Session_Exception8% 7Zend_Session_Abstract8$ 1Zend_Service_Yahoo8$# KZend_Service_Yahoo_WebResultSet8!" EZend_Service_Yahoo_WebResult8&! OZend_Service_Yahoo_VideoResultSet8#  IZend_Service_Yahoo_VideoResult8! EZend_Service_Yahoo_ResultSet8 ?Zend_Service_Yahoo_Result8) UZend_Service_Yahoo_PageDataResultSet8& OZend_Service_Yahoo_PageDataResult8% MZend_Service_Yahoo_NewsResultSet8" GZend_Service_Yahoo_NewsResult8& OZend_Service_Yahoo_LocalResultSet8# IZend_Service_Yahoo_LocalResult8+ YZend_Service_Yahoo_InlinkDataResultSet8( SZend_Service_Yahoo_InlinkDataResult8& OZend_Service_Yahoo_ImageResultSet8# IZend_Service_Yahoo_ImageResult8 =Zend_Service_Yahoo_Image8& OZend_Service_WindowsAzure_Storage84 kZend_Service_WindowsAzure_Storage_TableInstance87 qZend_Service_WindowsAzure_Storage_TableEntityQuery82 gZend_Service_WindowsAzure_Storage_TableEntity8, [Zend_Service_WindowsAzure_Storage_Table8< {Zend_Service_WindowsAzure_Storage_StorageEntityAbstract87 qZend_Service_WindowsAzure_Storage_SignedIdentifier83 iZend_Service_WindowsAzure_Storage_QueueMessage84
 kZend_Service_WindowsAzure_Storage_QueueInstance8,	 [Zend_Service_WindowsAzure_Storage_Queue8   K  yOa_2}Q&}R, 


N
				m	?	],g3X,`&o=
b.Z'_+                                       26 gZend_Tool_Project_Context_Zf_LayoutScriptFile8.5 _Zend_Tool_Project_Context_Zf_HtaccessFile804 cZend_Tool_Project_Context_Zf_FormsDirectory8*3 WZend_Tool_Project_Context_Zf_FormFile8/2 aZend_Tool_Project_Context_Zf_DocsDirectory8-1 ]Zend_Tool_Project_Context_Zf_DbTableFile820 gZend_Tool_Project_Context_Zf_DbTableDirectory8// aZend_Tool_Project_Context_Zf_DataDirectory86. oZend_Tool_Project_Context_Zf_ControllersDirectory80- cZend_Tool_Project_Context_Zf_ControllerFile82, gZend_Tool_Project_Context_Zf_ConfigsDirectory8,+ [Zend_Tool_Project_Context_Zf_ConfigFile80* cZend_Tool_Project_Context_Zf_CacheDirectory8/) aZend_Tool_Project_Context_Zf_BootstrapFile86( oZend_Tool_Project_Context_Zf_ApplicationDirectory87' qZend_Tool_Project_Context_Zf_ApplicationConfigFile8/& aZend_Tool_Project_Context_Zf_ApisDirectory8.% _Zend_Tool_Project_Context_Zf_ActionMethod83$ iZend_Tool_Project_Context_Zf_AbstractClassFile8@# Zend_Tool_Project_Context_System_ProjectProvidersDirectory88" sZend_Tool_Project_Context_System_ProjectProfileFile86! oZend_Tool_Project_Context_System_ProjectDirectory8)  UZend_Tool_Project_Context_Repository8. _Zend_Tool_Project_Context_Filesystem_File83 iZend_Tool_Project_Context_Filesystem_Directory82 gZend_Tool_Project_Context_Filesystem_Abstract8( SZend_Tool_Project_Context_Exception8- ]Zend_Tool_Project_Context_Content_Engine83 iZend_Tool_Project_Context_Content_Engine_Phtml8; yZend_Tool_Project_Context_Content_Engine_CodeGenerator80 cZend_Tool_Framework_System_Provider_Version80 cZend_Tool_Framework_System_Provider_Phpinfo81 eZend_Tool_Framework_System_Provider_Manifest8/ aZend_Tool_Framework_System_Provider_Config8( SZend_Tool_Framework_System_Manifest8- ]Zend_Tool_Framework_System_Action_Delete8- ]Zend_Tool_Framework_System_Action_Create8! EZend_Tool_Framework_Registry8+ YZend_Tool_Framework_Registry_Exception8+ YZend_Tool_Framework_Provider_Signature8, [Zend_Tool_Framework_Provider_Repository8+ YZend_Tool_Framework_Provider_Exception8* WZend_Tool_Framework_Provider_Abstract8& OZend_Tool_Framework_Metadata_Tool8)
 UZend_Tool_Framework_Metadata_Dynamic8'	 QZend_Tool_Framework_Metadata_Basic8, [Zend_Tool_Framework_Manifest_Repository8+ YZend_Tool_Framework_Manifest_Exception81 eZend_Tool_Framework_Loader_IncludePathLoader8J Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator8+ YZend_Tool_Framework_Loader_BasicLoader8( SZend_Tool_Framework_Loader_Abstract8" GZend_Tool_Framework_Exception8' QZend_Tool_Framework_Client_Storage81  eZend_Tool_Framework_Client_Storage_Directory8( SZend_Tool_Framework_Client_Response8D~ 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator8'} QZend_Tool_Framework_Client_Request8(| SZend_Tool_Framework_Client_Manifest89{ uZend_Tool_Framework_Client_Interactive_InputResponse88z sZend_Tool_Framework_Client_Interactive_InputRequest88y sZend_Tool_Framework_Client_Interactive_InputHandler8)x UZend_Tool_Framework_Client_Exception8'w QZend_Tool_Framework_Client_Console8Dv 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Indention8Du 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizer8Ct Zend_Tool_Framework_Client_Console_ResponseDecorator_Blockize8Fs Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter80r cZend_Tool_Framework_Client_Console_Manifest82q gZend_Tool_Framework_Client_Console_HelpSystem86p oZend_Tool_Framework_Client_Console_ArgumentParser8&o OZend_Tool_Framework_Client_Config8(n SZend_Tool_Framework_Client_Abstract8*m WZend_Tool_Framework_Action_Repository8)l UZend_Tool_Framework_Action_Exception8   R  X"V wBSL


a
			x	3Q\#pE#pCmDiAjG"mWF'                       * WZend_Validate_Barcode_AdapterAbstract8 3Zend_Validate_Alpha8 3Zend_Validate_Alnum8 9Zend_Validate_Abstract8 Zend_Uri8 'Zend_Uri_Http8 1Zend_Uri_Exception8 )Zend_Translate8  7Zend_Translate_Plural8 =Zend_Translate_Exception8~ 9Zend_Translate_Adapter8!} EZend_Translate_Adapter_XmlTm8!| EZend_Translate_Adapter_Xliff8{ AZend_Translate_Adapter_Tmx8z AZend_Translate_Adapter_Tbx8y ?Zend_Translate_Adapter_Qt8x AZend_Translate_Adapter_Ini8#w IZend_Translate_Adapter_Gettext8v AZend_Translate_Adapter_Csv8!u EZend_Translate_Adapter_Array8$t KZend_Tool_Project_Provider_View8$s KZend_Tool_Project_Provider_Test8/r aZend_Tool_Project_Provider_ProjectProvider8'q QZend_Tool_Project_Provider_Project8'p QZend_Tool_Project_Provider_Profile8&o OZend_Tool_Project_Provider_Module8%n MZend_Tool_Project_Provider_Model8(m SZend_Tool_Project_Provider_Manifest8&l OZend_Tool_Project_Provider_Layout8$k KZend_Tool_Project_Provider_Form8)j UZend_Tool_Project_Provider_Exception8'i QZend_Tool_Project_Provider_DbTable8)h UZend_Tool_Project_Provider_DbAdapter8*g WZend_Tool_Project_Provider_Controller8+f YZend_Tool_Project_Provider_Application8&e OZend_Tool_Project_Provider_Action8(d SZend_Tool_Project_Provider_Abstract8c ?Zend_Tool_Project_Profile8'b QZend_Tool_Project_Profile_Resource89a uZend_Tool_Project_Profile_Resource_SearchConstraints81` eZend_Tool_Project_Profile_Resource_Container8=_ }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter85^ mZend_Tool_Project_Profile_Iterator_ContextFilter8-] ]Zend_Tool_Project_Profile_FileParser_Xml8(\ SZend_Tool_Project_Profile_Exception8 [ CZend_Tool_Project_Exception8<Z {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory80Y cZend_Tool_Project_Context_Zf_ViewsDirectory86X oZend_Tool_Project_Context_Zf_ViewScriptsDirectory80W cZend_Tool_Project_Context_Zf_ViewScriptFile86V oZend_Tool_Project_Context_Zf_ViewHelpersDirectory86U oZend_Tool_Project_Context_Zf_ViewFiltersDirectory8AT Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory82S gZend_Tool_Project_Context_Zf_UploadsDirectory80R cZend_Tool_Project_Context_Zf_TestsDirectory87Q qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile8@P Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory81O eZend_Tool_Project_Context_Zf_TestLibraryFile86N oZend_Tool_Project_Context_Zf_TestLibraryDirectory8:M wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFile8:L wZend_Tool_Project_Context_Zf_TestApplicationDirectory8@K Zend_Tool_Project_Context_Zf_TestApplicationControllerFile8EJ Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory8>I Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile84H kZend_Tool_Project_Context_Zf_TemporaryDirectory83G iZend_Tool_Project_Context_Zf_SessionsDirectory88F sZend_Tool_Project_Context_Zf_SearchIndexesDirectory8<E {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory88D sZend_Tool_Project_Context_Zf_PublicScriptsDirectory81C eZend_Tool_Project_Context_Zf_PublicIndexFile87B qZend_Tool_Project_Context_Zf_PublicImagesDirectory81A eZend_Tool_Project_Context_Zf_PublicDirectory85@ mZend_Tool_Project_Context_Zf_ProjectProviderFile82? gZend_Tool_Project_Context_Zf_ModulesDirectory81> eZend_Tool_Project_Context_Zf_ModuleDirectory81= eZend_Tool_Project_Context_Zf_ModelsDirectory8+< YZend_Tool_Project_Context_Zf_ModelFile8/; aZend_Tool_Project_Context_Zf_LogsDirectory82: gZend_Tool_Project_Context_Zf_LocalesDirectory829 gZend_Tool_Project_Context_Zf_LibraryDirectory828 gZend_Tool_Project_Context_Zf_LayoutsDirectory887 sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory8   p  ^9^;S0rO,	qV4




e
D
					a	<	iI'pP2kBjN,dB$ oK(oL(xV2     x AZend_View_Helper_HeadTitle8w AZend_View_Helper_HeadStyle8 v CZend_View_Helper_HeadScript8u ?Zend_View_Helper_HeadMeta8t ?Zend_View_Helper_HeadLink8s ?Zend_View_Helper_Gravatar8"r GZend_View_Helper_FormTextarea8q ?Zend_View_Helper_FormText8 p CZend_View_Helper_FormSubmit8 o CZend_View_Helper_FormSelect8n AZend_View_Helper_FormReset8m AZend_View_Helper_FormRadio8"l GZend_View_Helper_FormPassword8k ?Zend_View_Helper_FormNote8'j QZend_View_Helper_FormMultiCheckbox8i AZend_View_Helper_FormLabel8h AZend_View_Helper_FormImage8 g CZend_View_Helper_FormHidden8f ?Zend_View_Helper_FormFile8 e CZend_View_Helper_FormErrors8!d EZend_View_Helper_FormElement8"c GZend_View_Helper_FormCheckbox8 b CZend_View_Helper_FormButton8a 7Zend_View_Helper_Form8` ?Zend_View_Helper_Fieldset8_ =Zend_View_Helper_Doctype8!^ EZend_View_Helper_DeclareVars8] 9Zend_View_Helper_Cycle8\ ?Zend_View_Helper_Currency8[ =Zend_View_Helper_BaseUrl8Z ;Zend_View_Helper_Action8Y ?Zend_View_Helper_Abstract8X 3Zend_View_Exception8W 1Zend_View_Abstract8V %Zend_Version8U 'Zend_Validate8T AZend_Validate_StringLength8#S IZend_Validate_Sitemap_Priority8R ?Zend_Validate_Sitemap_Loc8"Q GZend_Validate_Sitemap_Lastmod8%P MZend_Validate_Sitemap_Changefreq8O 3Zend_Validate_Regex8N 9Zend_Validate_PostCode8M 9Zend_Validate_NotEmpty8L 9Zend_Validate_LessThan8K 1Zend_Validate_Isbn8J -Zend_Validate_Ip8I /Zend_Validate_Int8H 7Zend_Validate_InArray8G ;Zend_Validate_Identical8F 1Zend_Validate_Iban8E 9Zend_Validate_Hostname8D /Zend_Validate_Hex8C ?Zend_Validate_GreaterThan8B 3Zend_Validate_Float8!A EZend_Validate_File_WordCount8@ ?Zend_Validate_File_Upload8? ;Zend_Validate_File_Size8> ;Zend_Validate_File_Sha18!= EZend_Validate_File_NotExists8 < CZend_Validate_File_MimeType8; 9Zend_Validate_File_Md58: AZend_Validate_File_IsImage8$9 KZend_Validate_File_IsCompressed8!8 EZend_Validate_File_ImageSize87 ;Zend_Validate_File_Hash8!6 EZend_Validate_File_FilesSize8!5 EZend_Validate_File_Extension84 ?Zend_Validate_File_Exists8'3 QZend_Validate_File_ExcludeMimeType8(2 SZend_Validate_File_ExcludeExtension81 =Zend_Validate_File_Crc3280 =Zend_Validate_File_Count8/ ;Zend_Validate_Exception8. AZend_Validate_EmailAddress8- 5Zend_Validate_Digits8", GZend_Validate_Db_RecordExists8$+ KZend_Validate_Db_NoRecordExists8* ?Zend_Validate_Db_Abstract8) 1Zend_Validate_Date8( =Zend_Validate_CreditCard8' 3Zend_Validate_Ccnum8& 9Zend_Validate_Callback8% 7Zend_Validate_Between8$ 7Zend_Validate_Barcode8# AZend_Validate_Barcode_Upce8" AZend_Validate_Barcode_Upca8! AZend_Validate_Barcode_Sscc8$  KZend_Validate_Barcode_Royalmail8" GZend_Validate_Barcode_Postnet8! EZend_Validate_Barcode_Planet8# IZend_Validate_Barcode_Leitcode8  CZend_Validate_Barcode_Itf148 AZend_Validate_Barcode_Issn8* WZend_Validate_Barcode_IntelligentMail8$ KZend_Validate_Barcode_Identcode8! EZend_Validate_Barcode_Gtin148! EZend_Validate_Barcode_Gtin138! EZend_Validate_Barcode_Gtin128 AZend_Validate_Barcode_Ean88 AZend_Validate_Barcode_Ean58 AZend_Validate_Barcode_Ean28  CZend_Validate_Barcode_Ean188  CZend_Validate_Barcode_Ean148  CZend_Validate_Barcode_Ean138  CZend_Validate_Barcode_Ean128$ KZend_Validate_Barcode_Code93ext8! EZend_Validate_Barcode_Code938$ KZend_Validate_Barcode_Code39ext8! EZend_Validate_Barcode_Code398,
 [Zend_Validate_Barcode_Code25interleaved8!	 EZend_Validate_Barcode_Code258   k  rP)b8iH#xInM*




u
H
				x	O	 wMtW6rM+|^=dN=!\5zM!`F$            c AZend_Amf_Util_BinaryStream9b +Zend_Amf_Server9a ?Zend_Amf_Server_Exception9` /Zend_Amf_Response9_ 9Zend_Amf_Response_Http9^ -Zend_Amf_Request9] 7Zend_Amf_Request_Http9\ ?Zend_Amf_Parse_TypeLoader9[ ?Zend_Amf_Parse_Serializer9#Z IZend_Amf_Parse_Resource_Stream9(Y SZend_Amf_Parse_Resource_MysqlResult9)X UZend_Amf_Parse_Resource_MysqliResult9 W CZend_Amf_Parse_OutputStream9V AZend_Amf_Parse_InputStream9 U CZend_Amf_Parse_Deserializer9#T IZend_Amf_Parse_Amf3_Serializer9%S MZend_Amf_Parse_Amf3_Deserializer9#R IZend_Amf_Parse_Amf0_Serializer9%Q MZend_Amf_Parse_Amf0_Deserializer9P 1Zend_Amf_Exception9O 1Zend_Amf_Constants9N 9Zend_Amf_Auth_Abstract9 M CZend_Amf_Adobe_Introspector9L AZend_Amf_Adobe_DbInspector9K 3Zend_Amf_Adobe_Auth9J Zend_Acl9I 'Zend_Acl_Role9H 9Zend_Acl_Role_Registry9%G MZend_Acl_Role_Registry_Exception9F /Zend_Acl_Resource9E 1Zend_Acl_Exception9D /Zend_XmlRpc_Value8C =Zend_XmlRpc_Value_Struct8B =Zend_XmlRpc_Value_String8A =Zend_XmlRpc_Value_Scalar8@ 7Zend_XmlRpc_Value_Nil8? ?Zend_XmlRpc_Value_Integer8 > CZend_XmlRpc_Value_Exception8= =Zend_XmlRpc_Value_Double8< AZend_XmlRpc_Value_DateTime8!; EZend_XmlRpc_Value_Collection8: ?Zend_XmlRpc_Value_Boolean8!9 EZend_XmlRpc_Value_BigInteger88 =Zend_XmlRpc_Value_Base6487 ;Zend_XmlRpc_Value_Array86 1Zend_XmlRpc_Server85 ?Zend_XmlRpc_Server_System84 =Zend_XmlRpc_Server_Fault8!3 EZend_XmlRpc_Server_Exception82 =Zend_XmlRpc_Server_Cache81 5Zend_XmlRpc_Response80 ?Zend_XmlRpc_Response_Http8/ 3Zend_XmlRpc_Request8. ?Zend_XmlRpc_Request_Stdin8- =Zend_XmlRpc_Request_Http8$, KZend_XmlRpc_Generator_XmlWriter8,+ [Zend_XmlRpc_Generator_GeneratorAbstract8&* OZend_XmlRpc_Generator_DomDocument8) /Zend_XmlRpc_Fault8( 7Zend_XmlRpc_Exception8' 1Zend_XmlRpc_Client8#& IZend_XmlRpc_Client_ServerProxy8+% YZend_XmlRpc_Client_ServerIntrospection8+$ YZend_XmlRpc_Client_IntrospectException8%# MZend_XmlRpc_Client_HttpException8&" OZend_XmlRpc_Client_FaultException8!! EZend_XmlRpc_Client_Exception8&  OZend_Wildfire_Protocol_JsonStream8! EZend_Wildfire_Plugin_FirePhp8. _Zend_Wildfire_Plugin_FirePhp_TableMessage8) UZend_Wildfire_Plugin_FirePhp_Message8 ;Zend_Wildfire_Exception8& OZend_Wildfire_Channel_HttpHeaders8 Zend_View8 -Zend_View_Stream8 AZend_View_Helper_UserAgent8 5Zend_View_Helper_Url8 AZend_View_Helper_Translate8 =Zend_View_Helper_TinySrc8 AZend_View_Helper_ServerUrl8) UZend_View_Helper_RenderToPlaceholder8! EZend_View_Helper_Placeholder8* WZend_View_Helper_Placeholder_Registry84 kZend_View_Helper_Placeholder_Registry_Exception8+ YZend_View_Helper_Placeholder_Container86 oZend_View_Helper_Placeholder_Container_Standalone85 mZend_View_Helper_Placeholder_Container_Exception84 kZend_View_Helper_Placeholder_Container_Abstract8! EZend_View_Helper_PartialLoop8
 =Zend_View_Helper_Partial8'	 QZend_View_Helper_Partial_Exception8' QZend_View_Helper_PaginationControl8  CZend_View_Helper_Navigation8( SZend_View_Helper_Navigation_Sitemap8% MZend_View_Helper_Navigation_Menu8& OZend_View_Helper_Navigation_Links8/ aZend_View_Helper_Navigation_HelperAbstract8, [Zend_View_Helper_Navigation_Breadcrumbs8 ;Zend_View_Helper_Layout8  7Zend_View_Helper_Json8" GZend_View_Helper_InlineScript8#~ IZend_View_Helper_HtmlQuicktime8} ?Zend_View_Helper_HtmlPage8 | CZend_View_Helper_HtmlObject8{ ?Zend_View_Helper_HtmlList8z AZend_View_Helper_HtmlFlash8!y EZend_View_Helper_HtmlElement8   X  d;e>gAjES0	


w
=
				T	yX4q=oN%I%U.oCFN                                             .U _Zend_Tool_Framework_Metadata_Attributable86T oZend_Tool_Framework_Manifest_ProviderManifestable86S oZend_Tool_Framework_Manifest_MetadataManifestable8+R YZend_Tool_Framework_Manifest_Interface8+Q YZend_Tool_Framework_Manifest_Indexable84P kZend_Tool_Framework_Manifest_ActionManifestable8)O UZend_Tool_Framework_Loader_Interface88N sZend_Tool_Framework_Client_Storage_AdapterInterface8DM 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface8;L yZend_Tool_Framework_Client_Interactive_OutputInterface8:K wZend_Tool_Framework_Client_Interactive_InputInterface8)J UZend_Tool_Framework_Action_Interface8(I SZend_Text_Table_Decorator_Interface8H /Zend_Tag_Taggable8&G OZend_Soap_Wsdl_Strategy_Interface8%F MZend_Session_Validator_Interface8'E QZend_Session_SaveHandler_Interface8$D KZend_Service_ShortUrl_Shortener8IC Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Interface8B 7Zend_Server_Interface8-A ]Zend_Serializer_Adapter_AdapterInterface84@ kZend_Search_Lucene_Search_Highlighter_Interface8!? EZend_Search_Lucene_Interface83> iZend_Search_Lucene_Index_TermsStream_Interface8$= KZend_Queue_Stomp_FrameInterface80< cZend_Queue_Stomp_Client_ConnectionInterface8(; SZend_Queue_Adapter_AdapterInterface8: ?Zend_Pdf_Filter_Interface8&9 OZend_Pdf_ElementFactory_Interface88 ?Zend_Pdf_Canvas_Interface8,7 [Zend_Paginator_ScrollingStyle_Interface8$6 KZend_Paginator_AdapterAggregate8%5 MZend_Paginator_Adapter_Interface8&4 OZend_Oauth_Config_ConfigInterface8$3 KZend_Memory_Container_Interface812 eZend_Markup_Renderer_TokenConverterInterface8'1 QZend_Markup_Parser_ParserInterface8)0 UZend_Mail_Storage_Writable_Interface8'/ QZend_Mail_Storage_Folder_Interface8. =Zend_Mail_Part_Interface8 - CZend_Mail_Message_Interface8!, EZend_Log_Formatter_Interface8+ ?Zend_Log_Filter_Interface8* ?Zend_Log_FactoryInterface8') QZend_Loader_PluginLoader_Interface8%( MZend_Loader_Autoloader_Interface80' cZend_Ldap_Node_Schema_ObjectClass_Interface82& gZend_Ldap_Node_Schema_AttributeType_Interface83% iZend_InfoCard_Xml_Security_Transform_Interface8($ SZend_InfoCard_Xml_KeyInfo_Interface8(# SZend_InfoCard_Xml_Element_Interface8*" WZend_InfoCard_Xml_Assertion_Interface8-! ]Zend_InfoCard_Cipher_Symmetric_Interface87  qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface87 qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interface8+ YZend_InfoCard_Cipher_Pki_Rsa_Interface8' QZend_InfoCard_Cipher_Pki_Interface8$ KZend_InfoCard_Adapter_Interface8  CZend_Http_UserAgent_Storage8) UZend_Http_UserAgent_Features_Adapter8 AZend_Http_UserAgent_Device8$ KZend_Http_Client_Adapter_Stream8' QZend_Http_Client_Adapter_Interface8 AZend_Gdata_App_MediaSource8. _Zend_Form_Decorator_Marker_File_Interface8" GZend_Form_Decorator_Interface8 7Zend_Filter_Interface8" GZend_Filter_Encrypt_Interface8+ YZend_Filter_Compress_CompressInterface80 cZend_Feed_Writer_Renderer_RendererInterface81 eZend_Feed_Writer_Extension_RendererInterface8# IZend_Feed_Reader_FeedInterface8$ KZend_Feed_Reader_EntryInterface87 qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface8- ]Zend_Feed_Pubsubhubbub_CallbackInterface8 
 CZend_Feed_Builder_Interface8 	 CZend_Db_Statement_Interface8$ KZend_Currency_CurrencyInterface8) UZend_Crypt_Math_BigInteger_Interface8+ YZend_Controller_Router_Route_Interface8% MZend_Controller_Router_Interface8) UZend_Controller_Dispatcher_Interface8% MZend_Controller_Action_Interface8& OZend_Cloud_StorageService_Adapter8$ KZend_Cloud_QueueService_Adapter8,  [Zend_Cloud_DocumentService_QueryAdapter8' QZend_Cloud_DocumentService_Adapter8~ 5Zend_Captcha_Adapter8   [  c5wElM+xU6uR/



j
C
				p	D	mF fI$^2Vi3yX7zP}N-                                      0 ?Zend_Pdf_Filter_Interface9&/ OZend_Pdf_ElementFactory_Interface9. ?Zend_Pdf_Canvas_Interface9,- [Zend_Paginator_ScrollingStyle_Interface9$, KZend_Paginator_AdapterAggregate9%+ MZend_Paginator_Adapter_Interface9&* OZend_Oauth_Config_ConfigInterface9$) KZend_Memory_Container_Interface91( eZend_Markup_Renderer_TokenConverterInterface9'' QZend_Markup_Parser_ParserInterface9)& UZend_Mail_Storage_Writable_Interface9'% QZend_Mail_Storage_Folder_Interface9$ =Zend_Mail_Part_Interface9 # CZend_Mail_Message_Interface9!" EZend_Log_Formatter_Interface9! ?Zend_Log_Filter_Interface9  ?Zend_Log_FactoryInterface9' QZend_Loader_PluginLoader_Interface9% MZend_Loader_Autoloader_Interface90 cZend_Ldap_Node_Schema_ObjectClass_Interface92 gZend_Ldap_Node_Schema_AttributeType_Interface93 iZend_InfoCard_Xml_Security_Transform_Interface9( SZend_InfoCard_Xml_KeyInfo_Interface9( SZend_InfoCard_Xml_Element_Interface9* WZend_InfoCard_Xml_Assertion_Interface9- ]Zend_InfoCard_Cipher_Symmetric_Interface97 qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface97 qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interface9+ YZend_InfoCard_Cipher_Pki_Rsa_Interface9' QZend_InfoCard_Cipher_Pki_Interface9$ KZend_InfoCard_Adapter_Interface9  CZend_Http_UserAgent_Storage9) UZend_Http_UserAgent_Features_Adapter9 AZend_Http_UserAgent_Device9$ KZend_Http_Client_Adapter_Stream9' QZend_Http_Client_Adapter_Interface9 AZend_Gdata_App_MediaSource9. _Zend_Form_Decorator_Marker_File_Interface9"
 GZend_Form_Decorator_Interface9	 7Zend_Filter_Interface9" GZend_Filter_Encrypt_Interface9+ YZend_Filter_Compress_CompressInterface90 cZend_Feed_Writer_Renderer_RendererInterface91 eZend_Feed_Writer_Extension_RendererInterface9# IZend_Feed_Reader_FeedInterface9$ KZend_Feed_Reader_EntryInterface97 qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface9- ]Zend_Feed_Pubsubhubbub_CallbackInterface9   CZend_Feed_Builder_Interface9  CZend_Db_Statement_Interface9$~ KZend_Currency_CurrencyInterface9)} UZend_Crypt_Math_BigInteger_Interface9+| YZend_Controller_Router_Route_Interface9%{ MZend_Controller_Router_Interface9)z UZend_Controller_Dispatcher_Interface9%y MZend_Controller_Action_Interface9&x OZend_Cloud_StorageService_Adapter9$w KZend_Cloud_QueueService_Adapter9,v [Zend_Cloud_DocumentService_QueryAdapter9'u QZend_Cloud_DocumentService_Adapter9t 5Zend_Captcha_Adapter9!s EZend_Cache_Backend_Interface9)r UZend_Cache_Backend_ExtendedInterface9 q CZend_Auth_Storage_Interface9 p CZend_Auth_Adapter_Interface9.o _Zend_Auth_Adapter_Http_Resolver_Interface9'n QZend_Application_Resource_Resource94m kZend_Application_Bootstrap_ResourceBootstrapper9,l [Zend_Application_Bootstrap_Bootstrapper9k ;Zend_Acl_Role_Interface9 j CZend_Acl_Resource_Interface9i ?Zend_Acl_Assert_Interface9#h IZend_Wildfire_Plugin_Interface8$g KZend_Wildfire_Channel_Interface8f 3Zend_View_Interface8'e QZend_View_Helper_Navigation_Helper8d AZend_View_Helper_Interface8c ;Zend_Validate_Interface8+b YZend_Validate_Barcode_AdapterInterface83a iZend_Tool_Project_Profile_FileParser_Interface8:` wZend_Tool_Project_Context_System_TopLevelRestrictable85_ mZend_Tool_Project_Context_System_NotOverwritable8/^ aZend_Tool_Project_Context_System_Interface8(] SZend_Tool_Project_Context_Interface8+\ YZend_Tool_Framework_Registry_Interface82[ gZend_Tool_Framework_Registry_EnabledInterface8-Z ]Zend_Tool_Framework_Provider_Pretendable8+Y YZend_Tool_Framework_Provider_Interface8.X _Zend_Tool_Framework_Provider_Interactable8;W yZend_Tool_Framework_Provider_DocblockManifestInterface8+V YZend_Tool_Framework_Metadata_Interface8   h  f2uD"pEtByO"



p
D

				k	>	c;sP.];~]<}hI$sS.gL4hG,               K /Zend_Captcha_Dumb9J /Zend_Captcha_Base9I !Zend_Cache9H 1Zend_Cache_Manager9G =Zend_Cache_Frontend_Page9F AZend_Cache_Frontend_Output9!E EZend_Cache_Frontend_Function9D =Zend_Cache_Frontend_File9C ?Zend_Cache_Frontend_Class9 B CZend_Cache_Frontend_Capture9A 5Zend_Cache_Exception9@ +Zend_Cache_Core9? 1Zend_Cache_Backend9"> GZend_Cache_Backend_ZendServer9(= SZend_Cache_Backend_ZendServer_ShMem9'< QZend_Cache_Backend_ZendServer_Disk9$; KZend_Cache_Backend_ZendPlatform9: ?Zend_Cache_Backend_Xcache9!9 EZend_Cache_Backend_TwoLevels98 ;Zend_Cache_Backend_Test97 ?Zend_Cache_Backend_Static96 ?Zend_Cache_Backend_Sqlite9!5 EZend_Cache_Backend_Memcached9$4 KZend_Cache_Backend_Libmemcached93 ;Zend_Cache_Backend_File9!2 EZend_Cache_Backend_BlackHole91 9Zend_Cache_Backend_Apc90 %Zend_Barcode9/ ?Zend_Barcode_Renderer_Svg9+. YZend_Barcode_Renderer_RendererAbstract9- ?Zend_Barcode_Renderer_Pdf9 , CZend_Barcode_Renderer_Image9$+ KZend_Barcode_Renderer_Exception9* =Zend_Barcode_Object_Upce9) =Zend_Barcode_Object_Upca9"( GZend_Barcode_Object_Royalmail9 ' CZend_Barcode_Object_Postnet9& AZend_Barcode_Object_Planet9'% QZend_Barcode_Object_ObjectAbstract9!$ EZend_Barcode_Object_Leitcode9# ?Zend_Barcode_Object_Itf149"" GZend_Barcode_Object_Identcode9"! GZend_Barcode_Object_Exception9  ?Zend_Barcode_Object_Error9 =Zend_Barcode_Object_Ean89 =Zend_Barcode_Object_Ean59 =Zend_Barcode_Object_Ean29 ?Zend_Barcode_Object_Ean139 AZend_Barcode_Object_Code399* WZend_Barcode_Object_Code25interleaved9 AZend_Barcode_Object_Code259  CZend_Barcode_Object_Code1289 9Zend_Barcode_Exception9 Zend_Auth9 ?Zend_Auth_Storage_Session9$ KZend_Auth_Storage_NonPersistent9  CZend_Auth_Storage_Exception9 -Zend_Auth_Result9 3Zend_Auth_Exception9 =Zend_Auth_Adapter_OpenId9 9Zend_Auth_Adapter_Ldap9 AZend_Auth_Adapter_InfoCard9 9Zend_Auth_Adapter_Http9) UZend_Auth_Adapter_Http_Resolver_File9. _Zend_Auth_Adapter_Http_Resolver_Exception9 
 CZend_Auth_Adapter_Exception9	 =Zend_Auth_Adapter_Digest9 ?Zend_Auth_Adapter_DbTable9 -Zend_Application9# IZend_Application_Resource_View9( SZend_Application_Resource_UserAgent9( SZend_Application_Resource_Translate9& OZend_Application_Resource_Session9% MZend_Application_Resource_Router9/ aZend_Application_Resource_ResourceAbstract9)  UZend_Application_Resource_Navigation9& OZend_Application_Resource_Multidb9&~ OZend_Application_Resource_Modules9#} IZend_Application_Resource_Mail9"| GZend_Application_Resource_Log9%{ MZend_Application_Resource_Locale9%z MZend_Application_Resource_Layout9.y _Zend_Application_Resource_Frontcontroller9(x SZend_Application_Resource_Exception9#w IZend_Application_Resource_Dojo9!v EZend_Application_Resource_Db9+u YZend_Application_Resource_Cachemanager9&t OZend_Application_Module_Bootstrap9's QZend_Application_Module_Autoloader9r AZend_Application_Exception9)q UZend_Application_Bootstrap_Exception91p eZend_Application_Bootstrap_BootstrapAbstract9)o UZend_Application_Bootstrap_Bootstrap9n ?Zend_Amf_Value_TraitsInfo9-m ]Zend_Amf_Value_Messaging_RemotingMessage9*l WZend_Amf_Value_Messaging_ErrorMessage9,k [Zend_Amf_Value_Messaging_CommandMessage9*j WZend_Amf_Value_Messaging_AsyncMessage9-i ]Zend_Amf_Value_Messaging_ArrayCollection90h cZend_Amf_Value_Messaging_AcknowledgeMessage9-g ]Zend_Amf_Value_Messaging_AbstractMessage9!f EZend_Amf_Value_MessageHeader9e AZend_Amf_Value_MessageBody9d =Zend_Amf_Value_ByteArray9   \  qNg/|S6k9_,



r
N
)
				R	~Oe=fG'\-VV%bC~V+                          (' SZend_Controller_Plugin_ErrorHandler9"& GZend_Controller_Plugin_Broker9'% QZend_Controller_Plugin_ActionStack9$$ KZend_Controller_Plugin_Abstract9# 7Zend_Controller_Front9" ?Zend_Controller_Exception9(! SZend_Controller_Dispatcher_Standard9)  UZend_Controller_Dispatcher_Exception9( SZend_Controller_Dispatcher_Abstract9 9Zend_Controller_Action9( SZend_Controller_Action_HelperBroker96 oZend_Controller_Action_HelperBroker_PriorityStack9/ aZend_Controller_Action_Helper_ViewRenderer9& OZend_Controller_Action_Helper_Url9- ]Zend_Controller_Action_Helper_Redirector9' QZend_Controller_Action_Helper_Json91 eZend_Controller_Action_Helper_FlashMessenger90 cZend_Controller_Action_Helper_ContextSwitch9( SZend_Controller_Action_Helper_Cache9< {Zend_Controller_Action_Helper_AutoCompleteScriptaculous93 iZend_Controller_Action_Helper_AutoCompleteDojo98 sZend_Controller_Action_Helper_AutoComplete_Abstract9. _Zend_Controller_Action_Helper_AjaxContext9. _Zend_Controller_Action_Helper_ActionStack9+ YZend_Controller_Action_Helper_Abstract9% MZend_Controller_Action_Exception9 3Zend_Console_Getopt9" GZend_Console_Getopt_Exception9 #Zend_Config9
 -Zend_Config_Yaml9	 +Zend_Config_Xml9 1Zend_Config_Writer9 ;Zend_Config_Writer_Yaml9 9Zend_Config_Writer_Xml9 ;Zend_Config_Writer_Json9 9Zend_Config_Writer_Ini9$ KZend_Config_Writer_FileAbstract9 =Zend_Config_Writer_Array9 -Zend_Config_Json9  +Zend_Config_Ini9 7Zend_Config_Exception9$~ KZend_CodeGenerator_Php_Property91} eZend_CodeGenerator_Php_Property_DefaultValue9%| MZend_CodeGenerator_Php_Parameter92{ gZend_CodeGenerator_Php_Parameter_DefaultValue9"z GZend_CodeGenerator_Php_Method9,y [Zend_CodeGenerator_Php_Member_Container9+x YZend_CodeGenerator_Php_Member_Abstract9 w CZend_CodeGenerator_Php_File9%v MZend_CodeGenerator_Php_Exception9$u KZend_CodeGenerator_Php_Docblock9(t SZend_CodeGenerator_Php_Docblock_Tag9/s aZend_CodeGenerator_Php_Docblock_Tag_Return9.r _Zend_CodeGenerator_Php_Docblock_Tag_Param90q cZend_CodeGenerator_Php_Docblock_Tag_License9!p EZend_CodeGenerator_Php_Class9 o CZend_CodeGenerator_Php_Body9$n KZend_CodeGenerator_Php_Abstract9!m EZend_CodeGenerator_Exception9 l CZend_CodeGenerator_Abstract9&k OZend_Cloud_StorageService_Factory9(j SZend_Cloud_StorageService_Exception93i iZend_Cloud_StorageService_Adapter_WindowsAzure9)h UZend_Cloud_StorageService_Adapter_S39/g aZend_Cloud_StorageService_Adapter_Nirvanix91f eZend_Cloud_StorageService_Adapter_FileSystem9'e QZend_Cloud_QueueService_MessageSet9$d KZend_Cloud_QueueService_Message9$c KZend_Cloud_QueueService_Factory9&b OZend_Cloud_QueueService_Exception9.a _Zend_Cloud_QueueService_Adapter_ZendQueue91` eZend_Cloud_QueueService_Adapter_WindowsAzure9(_ SZend_Cloud_QueueService_Adapter_Sqs94^ kZend_Cloud_QueueService_Adapter_AbstractAdapter9.] _Zend_Cloud_OperationNotAvailableException9\ 5Zend_Cloud_Exception9%[ MZend_Cloud_DocumentService_Query9'Z QZend_Cloud_DocumentService_Factory9)Y UZend_Cloud_DocumentService_Exception9+X YZend_Cloud_DocumentService_DocumentSet9(W SZend_Cloud_DocumentService_Document94V kZend_Cloud_DocumentService_Adapter_WindowsAzure9:U wZend_Cloud_DocumentService_Adapter_WindowsAzure_Query90T cZend_Cloud_DocumentService_Adapter_SimpleDb96S oZend_Cloud_DocumentService_Adapter_SimpleDb_Query97R qZend_Cloud_DocumentService_Adapter_AbstractAdapter9Q AZend_Cloud_AbstractFactory9P /Zend_Captcha_Word9O 9Zend_Captcha_ReCaptcha9N 1Zend_Captcha_Image9M 3Zend_Captcha_Figlet9L 9Zend_Captcha_Exception9   n  Y4f@lAk@qJ'




l
U
B
"
						a	E	#nJ&]4jI2
|Q0hI(Z=p<Q&                   , [Zend_Dojo_Form_Decorator_SplitContainer9' QZend_Dojo_Form_Decorator_DijitForm9* WZend_Dojo_Form_Decorator_DijitElement9, [Zend_Dojo_Form_Decorator_DijitContainer9) UZend_Dojo_Form_Decorator_ContentPane9- ]Zend_Dojo_Form_Decorator_BorderContainer9+ YZend_Dojo_Form_Decorator_AccordionPane90 cZend_Dojo_Form_Decorator_AccordionContainer9 3Zend_Dojo_Exception9 )Zend_Dojo_Data9 5Zend_Dojo_BuildLayer9
 !Zend_Debug9	 Zend_Db9 'Zend_Db_Table9 5Zend_Db_Table_Select9# IZend_Db_Table_Select_Exception9 5Zend_Db_Table_Rowset9# IZend_Db_Table_Rowset_Exception9" GZend_Db_Table_Rowset_Abstract9 /Zend_Db_Table_Row9  CZend_Db_Table_Row_Exception9  AZend_Db_Table_Row_Abstract9 ;Zend_Db_Table_Exception9~ =Zend_Db_Table_Definition9} 9Zend_Db_Table_Abstract9| /Zend_Db_Statement9{ =Zend_Db_Statement_Sqlsrv9'z QZend_Db_Statement_Sqlsrv_Exception9y 7Zend_Db_Statement_Pdo9x ?Zend_Db_Statement_Pdo_Oci9w ?Zend_Db_Statement_Pdo_Ibm9v =Zend_Db_Statement_Oracle9'u QZend_Db_Statement_Oracle_Exception9t =Zend_Db_Statement_Mysqli9's QZend_Db_Statement_Mysqli_Exception9 r CZend_Db_Statement_Exception9q 7Zend_Db_Statement_Db29$p KZend_Db_Statement_Db2_Exception9o )Zend_Db_Select9n =Zend_Db_Select_Exception9m -Zend_Db_Profiler9l 9Zend_Db_Profiler_Query9k =Zend_Db_Profiler_Firebug9j AZend_Db_Profiler_Exception9i %Zend_Db_Expr9h /Zend_Db_Exception9g 9Zend_Db_Adapter_Sqlsrv9%f MZend_Db_Adapter_Sqlsrv_Exception9e AZend_Db_Adapter_Pdo_Sqlite9d ?Zend_Db_Adapter_Pdo_Pgsql9c ;Zend_Db_Adapter_Pdo_Oci9b ?Zend_Db_Adapter_Pdo_Mysql9a ?Zend_Db_Adapter_Pdo_Mssql9` ;Zend_Db_Adapter_Pdo_Ibm9 _ CZend_Db_Adapter_Pdo_Ibm_Ids9 ^ CZend_Db_Adapter_Pdo_Ibm_Db29!] EZend_Db_Adapter_Pdo_Abstract9\ 9Zend_Db_Adapter_Oracle9%[ MZend_Db_Adapter_Oracle_Exception9Z 9Zend_Db_Adapter_Mysqli9%Y MZend_Db_Adapter_Mysqli_Exception9X ?Zend_Db_Adapter_Exception9W 3Zend_Db_Adapter_Db29"V GZend_Db_Adapter_Db2_Exception9U =Zend_Db_Adapter_Abstract9T Zend_Date9S 3Zend_Date_Exception9R 5Zend_Date_DateObject9Q -Zend_Date_Cities9P 'Zend_Currency9O ;Zend_Currency_Exception9N !Zend_Crypt9M )Zend_Crypt_Rsa9L 1Zend_Crypt_Rsa_Key9K ?Zend_Crypt_Rsa_Key_Public9J AZend_Crypt_Rsa_Key_Private9I =Zend_Crypt_Rsa_Exception9H +Zend_Crypt_Math9G ?Zend_Crypt_Math_Exception9F AZend_Crypt_Math_BigInteger9#E IZend_Crypt_Math_BigInteger_Gmp9)D UZend_Crypt_Math_BigInteger_Exception9&C OZend_Crypt_Math_BigInteger_Bcmath9B +Zend_Crypt_Hmac9A ?Zend_Crypt_Hmac_Exception9@ 5Zend_Crypt_Exception9? =Zend_Crypt_DiffieHellman9'> QZend_Crypt_DiffieHellman_Exception9!= EZend_Controller_Router_Route9(< SZend_Controller_Router_Route_Static9'; QZend_Controller_Router_Route_Regex9(: SZend_Controller_Router_Route_Module9*9 WZend_Controller_Router_Route_Hostname9'8 QZend_Controller_Router_Route_Chain9*7 WZend_Controller_Router_Route_Abstract9#6 IZend_Controller_Router_Rewrite9%5 MZend_Controller_Router_Exception9$4 KZend_Controller_Router_Abstract9*3 WZend_Controller_Response_HttpTestCase9"2 GZend_Controller_Response_Http9'1 QZend_Controller_Response_Exception9!0 EZend_Controller_Response_Cli9&/ OZend_Controller_Response_Abstract9#. IZend_Controller_Request_Simple9)- UZend_Controller_Request_HttpTestCase9!, EZend_Controller_Request_Http9&+ OZend_Controller_Request_Exception9&* OZend_Controller_Request_Apache4049%) MZend_Controller_Request_Abstract9&( OZend_Controller_Plugin_PutHandler9   a  ~X0_9
Q&~W,vE



x
N
 				{	N	+	Z. W*]- }fK4sR5xEnCtM                                         )v UZend_Feed_Reader_Extension_Atom_Feed9*u WZend_Feed_Reader_Extension_Atom_Entry9#t IZend_Feed_Reader_EntryAbstract9s AZend_Feed_Reader_Entry_Rss9 r CZend_Feed_Reader_Entry_Atom9 q CZend_Feed_Reader_Collection93p iZend_Feed_Reader_Collection_CollectionAbstract9)o UZend_Feed_Reader_Collection_Category9'n QZend_Feed_Reader_Collection_Author9m 9Zend_Feed_Pubsubhubbub9&l OZend_Feed_Pubsubhubbub_Subscriber9/k aZend_Feed_Pubsubhubbub_Subscriber_Callback9%j MZend_Feed_Pubsubhubbub_Publisher9.i _Zend_Feed_Pubsubhubbub_Model_Subscription9/h aZend_Feed_Pubsubhubbub_Model_ModelAbstract9(g SZend_Feed_Pubsubhubbub_HttpResponse9%f MZend_Feed_Pubsubhubbub_Exception9,e [Zend_Feed_Pubsubhubbub_CallbackAbstract9d 3Zend_Feed_Exception9c 3Zend_Feed_Entry_Rss9b 5Zend_Feed_Entry_Atom9a =Zend_Feed_Entry_Abstract9` /Zend_Feed_Element9_ /Zend_Feed_Builder9^ =Zend_Feed_Builder_Header9$] KZend_Feed_Builder_Header_Itunes9 \ CZend_Feed_Builder_Exception9[ ;Zend_Feed_Builder_Entry9Z )Zend_Feed_Atom9Y 1Zend_Feed_Abstract9X )Zend_Exception9W )Zend_Dom_Query9V 7Zend_Dom_Query_Result9U =Zend_Dom_Query_Css2Xpath9T 1Zend_Dom_Exception9S Zend_Dojo9)R UZend_Dojo_View_Helper_VerticalSlider9,Q [Zend_Dojo_View_Helper_ValidationTextBox9&P OZend_Dojo_View_Helper_TimeTextBox9"O GZend_Dojo_View_Helper_TextBox9#N IZend_Dojo_View_Helper_Textarea9'M QZend_Dojo_View_Helper_TabContainer9'L QZend_Dojo_View_Helper_SubmitButton9)K UZend_Dojo_View_Helper_StackContainer9)J UZend_Dojo_View_Helper_SplitContainer9!I EZend_Dojo_View_Helper_Slider9)H UZend_Dojo_View_Helper_SimpleTextarea9&G OZend_Dojo_View_Helper_RadioButton9*F WZend_Dojo_View_Helper_PasswordTextBox9(E SZend_Dojo_View_Helper_NumberTextBox9(D SZend_Dojo_View_Helper_NumberSpinner9+C YZend_Dojo_View_Helper_HorizontalSlider9B AZend_Dojo_View_Helper_Form9*A WZend_Dojo_View_Helper_FilteringSelect9!@ EZend_Dojo_View_Helper_Editor9? AZend_Dojo_View_Helper_Dojo9)> UZend_Dojo_View_Helper_Dojo_Container9)= UZend_Dojo_View_Helper_DijitContainer9 < CZend_Dojo_View_Helper_Dijit9&; OZend_Dojo_View_Helper_DateTextBox9&: OZend_Dojo_View_Helper_CustomDijit9*9 WZend_Dojo_View_Helper_CurrencyTextBox9&8 OZend_Dojo_View_Helper_ContentPane9#7 IZend_Dojo_View_Helper_ComboBox9#6 IZend_Dojo_View_Helper_CheckBox9!5 EZend_Dojo_View_Helper_Button9*4 WZend_Dojo_View_Helper_BorderContainer9(3 SZend_Dojo_View_Helper_AccordionPane9-2 ]Zend_Dojo_View_Helper_AccordionContainer91 =Zend_Dojo_View_Exception90 )Zend_Dojo_Form9/ 9Zend_Dojo_Form_SubForm9*. WZend_Dojo_Form_Element_VerticalSlider9-- ]Zend_Dojo_Form_Element_ValidationTextBox9', QZend_Dojo_Form_Element_TimeTextBox9#+ IZend_Dojo_Form_Element_TextBox9$* KZend_Dojo_Form_Element_Textarea9() SZend_Dojo_Form_Element_SubmitButton9"( GZend_Dojo_Form_Element_Slider9*' WZend_Dojo_Form_Element_SimpleTextarea9'& QZend_Dojo_Form_Element_RadioButton9+% YZend_Dojo_Form_Element_PasswordTextBox9)$ UZend_Dojo_Form_Element_NumberTextBox9)# UZend_Dojo_Form_Element_NumberSpinner9," [Zend_Dojo_Form_Element_HorizontalSlider9+! YZend_Dojo_Form_Element_FilteringSelect9"  GZend_Dojo_Form_Element_Editor9& OZend_Dojo_Form_Element_DijitMulti9! EZend_Dojo_Form_Element_Dijit9' QZend_Dojo_Form_Element_DateTextBox9+ YZend_Dojo_Form_Element_CurrencyTextBox9$ KZend_Dojo_Form_Element_ComboBox9$ KZend_Dojo_Form_Element_CheckBox9" GZend_Dojo_Form_Element_Button9  CZend_Dojo_Form_DisplayGroup9* WZend_Dojo_Form_Decorator_TabContainer9, [Zend_Dojo_Form_Decorator_StackContainer9   b  ^*e5kAeF_#



S
			k	@	"[(~eS'nR5cB%pT6mO5sQ/yJ!    &X OZend_Filter_Word_DashToUnderscore9%W MZend_Filter_Word_DashToSeparator9%V MZend_Filter_Word_DashToCamelCase9+U YZend_Filter_Word_CamelCaseToUnderscore9*T WZend_Filter_Word_CamelCaseToSeparator9%S MZend_Filter_Word_CamelCaseToDash9R 7Zend_Filter_StripTags9Q ?Zend_Filter_StripNewlines9P 9Zend_Filter_StringTrim9O ?Zend_Filter_StringToUpper9N ?Zend_Filter_StringToLower9M 5Zend_Filter_RealPath9L ;Zend_Filter_PregReplace9K -Zend_Filter_Null9&J OZend_Filter_NormalizedToLocalized9&I OZend_Filter_LocalizedToNormalized9H +Zend_Filter_Int9G /Zend_Filter_Input9F 7Zend_Filter_Inflector9E =Zend_Filter_HtmlEntities9D AZend_Filter_File_UpperCase9C ;Zend_Filter_File_Rename9B AZend_Filter_File_LowerCase9A =Zend_Filter_File_Encrypt9@ =Zend_Filter_File_Decrypt9? 7Zend_Filter_Exception9> 3Zend_Filter_Encrypt9 = CZend_Filter_Encrypt_Openssl9< AZend_Filter_Encrypt_Mcrypt9; +Zend_Filter_Dir9: 1Zend_Filter_Digits99 3Zend_Filter_Decrypt98 9Zend_Filter_Decompress97 5Zend_Filter_Compress96 =Zend_Filter_Compress_Zip95 =Zend_Filter_Compress_Tar94 =Zend_Filter_Compress_Rar93 =Zend_Filter_Compress_Lzf92 ;Zend_Filter_Compress_Gz9*1 WZend_Filter_Compress_CompressAbstract90 =Zend_Filter_Compress_Bz29/ 5Zend_Filter_Callback9. 3Zend_Filter_Boolean9- 5Zend_Filter_BaseName9, /Zend_Filter_Alpha9+ /Zend_Filter_Alnum9* 1Zend_File_Transfer9!) EZend_File_Transfer_Exception9$( KZend_File_Transfer_Adapter_Http9(' SZend_File_Transfer_Adapter_Abstract9& Zend_Feed9% -Zend_Feed_Writer9$ ;Zend_Feed_Writer_Source9/# aZend_Feed_Writer_Renderer_RendererAbstract9'" QZend_Feed_Writer_Renderer_Feed_Rss9(! SZend_Feed_Writer_Renderer_Feed_Atom9/  aZend_Feed_Writer_Renderer_Feed_Atom_Source95 mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract9( SZend_Feed_Writer_Renderer_Entry_Rss9) UZend_Feed_Writer_Renderer_Entry_Atom91 eZend_Feed_Writer_Renderer_Entry_Atom_Deleted9 7Zend_Feed_Writer_Feed9' QZend_Feed_Writer_Feed_FeedAbstract9< {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry98 sZend_Feed_Writer_Extension_Threading_Renderer_Entry94 kZend_Feed_Writer_Extension_Slash_Renderer_Entry90 cZend_Feed_Writer_Extension_RendererAbstract94 kZend_Feed_Writer_Extension_ITunes_Renderer_Feed95 mZend_Feed_Writer_Extension_ITunes_Renderer_Entry9+ YZend_Feed_Writer_Extension_ITunes_Feed9, [Zend_Feed_Writer_Extension_ITunes_Entry98 sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed99 uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry96 oZend_Feed_Writer_Extension_Content_Renderer_Entry92 gZend_Feed_Writer_Extension_Atom_Renderer_Feed96 oZend_Feed_Writer_Exception_InvalidMethodException9 9Zend_Feed_Writer_Entry9 =Zend_Feed_Writer_Deleted9
 'Zend_Feed_Rss9	 -Zend_Feed_Reader9 =Zend_Feed_Reader_FeedSet9" GZend_Feed_Reader_FeedAbstract9 ?Zend_Feed_Reader_Feed_Rss9 AZend_Feed_Reader_Feed_Atom9& OZend_Feed_Reader_Feed_Atom_Source93 iZend_Feed_Reader_Extension_WellFormedWeb_Entry9, [Zend_Feed_Reader_Extension_Thread_Entry90 cZend_Feed_Reader_Extension_Syndication_Feed9+  YZend_Feed_Reader_Extension_Slash_Entry9, [Zend_Feed_Reader_Extension_Podcast_Feed9-~ ]Zend_Feed_Reader_Extension_Podcast_Entry9,} [Zend_Feed_Reader_Extension_FeedAbstract9-| ]Zend_Feed_Reader_Extension_EntryAbstract9/{ aZend_Feed_Reader_Extension_DublinCore_Feed90z cZend_Feed_Reader_Extension_DublinCore_Entry94y kZend_Feed_Reader_Extension_CreativeCommons_Feed95x mZend_Feed_Reader_Extension_CreativeCommons_Entry9-w ]Zend_Feed_Reader_Extension_Content_Entry9   g }O i@^=d8dA




~
V
0
					l	I	)	tX1qHzS(lDvP) wO*X<_.                                           )? UZend_Gdata_Books_Extension_BooksLink9-> ]Zend_Gdata_Books_Extension_BooksCategory9.= _Zend_Gdata_Books_Extension_AnnotationLink9$< KZend_Gdata_Books_CollectionFeed9%; MZend_Gdata_Books_CollectionEntry9: 1Zend_Gdata_AuthSub99 )Zend_Gdata_App9$8 KZend_Gdata_App_VersionException97 3Zend_Gdata_App_Util9#6 IZend_Gdata_App_MediaFileSource95 ?Zend_Gdata_App_MediaEntry924 gZend_Gdata_App_LoggingHttpClientAdapterSocket93 AZend_Gdata_App_IOException9,2 [Zend_Gdata_App_InvalidArgumentException9!1 EZend_Gdata_App_HttpException9$0 KZend_Gdata_App_FeedSourceParent9#/ IZend_Gdata_App_FeedEntryParent9. 3Zend_Gdata_App_Feed9- =Zend_Gdata_App_Extension9!, EZend_Gdata_App_Extension_Uri9%+ MZend_Gdata_App_Extension_Updated9#* IZend_Gdata_App_Extension_Title9") GZend_Gdata_App_Extension_Text9%( MZend_Gdata_App_Extension_Summary9&' OZend_Gdata_App_Extension_Subtitle9$& KZend_Gdata_App_Extension_Source9$% KZend_Gdata_App_Extension_Rights9'$ QZend_Gdata_App_Extension_Published9$# KZend_Gdata_App_Extension_Person9"" GZend_Gdata_App_Extension_Name9"! GZend_Gdata_App_Extension_Logo9"  GZend_Gdata_App_Extension_Link9  CZend_Gdata_App_Extension_Id9" GZend_Gdata_App_Extension_Icon9' QZend_Gdata_App_Extension_Generator9# IZend_Gdata_App_Extension_Email9% MZend_Gdata_App_Extension_Element9$ KZend_Gdata_App_Extension_Edited9# IZend_Gdata_App_Extension_Draft9% MZend_Gdata_App_Extension_Control9) UZend_Gdata_App_Extension_Contributor9% MZend_Gdata_App_Extension_Content9& OZend_Gdata_App_Extension_Category9$ KZend_Gdata_App_Extension_Author9 =Zend_Gdata_App_Exception9 5Zend_Gdata_App_Entry9, [Zend_Gdata_App_CaptchaRequiredException9# IZend_Gdata_App_BaseMediaSource9 3Zend_Gdata_App_Base9* WZend_Gdata_App_BadMethodCallException9! EZend_Gdata_App_AuthException9 Zend_Form9 /Zend_Form_SubForm9
 3Zend_Form_Exception9	 /Zend_Form_Element9 ;Zend_Form_Element_Xhtml9 AZend_Form_Element_Textarea9 9Zend_Form_Element_Text9 =Zend_Form_Element_Submit9 =Zend_Form_Element_Select9 ;Zend_Form_Element_Reset9 ;Zend_Form_Element_Radio9 AZend_Form_Element_Password9"  GZend_Form_Element_Multiselect9$ KZend_Form_Element_MultiCheckbox9~ ;Zend_Form_Element_Multi9} ;Zend_Form_Element_Image9| =Zend_Form_Element_Hidden9{ 9Zend_Form_Element_Hash9z 9Zend_Form_Element_File9 y CZend_Form_Element_Exception9x AZend_Form_Element_Checkbox9w ?Zend_Form_Element_Captcha9v =Zend_Form_Element_Button9u 9Zend_Form_DisplayGroup9#t IZend_Form_Decorator_ViewScript9#s IZend_Form_Decorator_ViewHelper9 r CZend_Form_Decorator_Tooltip9(q SZend_Form_Decorator_PrepareElements9p ?Zend_Form_Decorator_Label9o ?Zend_Form_Decorator_Image9 n CZend_Form_Decorator_HtmlTag9#m IZend_Form_Decorator_FormErrors9%l MZend_Form_Decorator_FormElements9k =Zend_Form_Decorator_Form9j =Zend_Form_Decorator_File9!i EZend_Form_Decorator_Fieldset9"h GZend_Form_Decorator_Exception9g AZend_Form_Decorator_Errors9$f KZend_Form_Decorator_DtDdWrapper9$e KZend_Form_Decorator_Description9 d CZend_Form_Decorator_Captcha9%c MZend_Form_Decorator_Captcha_Word9!b EZend_Form_Decorator_Callback9!a EZend_Form_Decorator_Abstract9` #Zend_Filter9+_ YZend_Filter_Word_UnderscoreToSeparator9&^ OZend_Filter_Word_UnderscoreToDash9+] YZend_Filter_Word_UnderscoreToCamelCase9*\ WZend_Filter_Word_SeparatorToSeparator9%[ MZend_Filter_Word_SeparatorToDash9*Z WZend_Filter_Word_SeparatorToCamelCase9(Y SZend_Filter_Word_Separator_Abstract9   _  tJ|c<d9
o>eG/



o
<
			z	L	.	yK#~W0X/uAsI!^7}^1_;           ! EZend_Gdata_Gapps_MemberEntry9  CZend_Gdata_Gapps_GroupQuery9 AZend_Gdata_Gapps_GroupFeed9  CZend_Gdata_Gapps_GroupEntry9% MZend_Gdata_Gapps_Extension_Quota9( SZend_Gdata_Gapps_Extension_Property9( SZend_Gdata_Gapps_Extension_Nickname9$ KZend_Gdata_Gapps_Extension_Name9% MZend_Gdata_Gapps_Extension_Login9) UZend_Gdata_Gapps_Extension_EmailList9 9Zend_Gdata_Gapps_Error9- ]Zend_Gdata_Gapps_EmailListRecipientQuery9, [Zend_Gdata_Gapps_EmailListRecipientFeed9- ]Zend_Gdata_Gapps_EmailListRecipientEntry9$ KZend_Gdata_Gapps_EmailListQuery9# IZend_Gdata_Gapps_EmailListFeed9$ KZend_Gdata_Gapps_EmailListEntry9 +Zend_Gdata_Feed9 5Zend_Gdata_Extension9 =Zend_Gdata_Extension_Who9
 AZend_Gdata_Extension_Where9	 ?Zend_Gdata_Extension_When9$ KZend_Gdata_Extension_Visibility9& OZend_Gdata_Extension_Transparency9" GZend_Gdata_Extension_Reminder9- ]Zend_Gdata_Extension_RecurrenceException9$ KZend_Gdata_Extension_Recurrence9  CZend_Gdata_Extension_Rating9' QZend_Gdata_Extension_OriginalEvent90 cZend_Gdata_Extension_OpenSearchTotalResults9.  _Zend_Gdata_Extension_OpenSearchStartIndex90 cZend_Gdata_Extension_OpenSearchItemsPerPage9"~ GZend_Gdata_Extension_FeedLink9*} WZend_Gdata_Extension_ExtendedProperty9%| MZend_Gdata_Extension_EventStatus9#{ IZend_Gdata_Extension_EntryLink9"z GZend_Gdata_Extension_Comments9&y OZend_Gdata_Extension_AttendeeType9(x SZend_Gdata_Extension_AttendeeStatus9w +Zend_Gdata_Exif9v 5Zend_Gdata_Exif_Feed9#u IZend_Gdata_Exif_Extension_Time9#t IZend_Gdata_Exif_Extension_Tags9$s KZend_Gdata_Exif_Extension_Model9#r IZend_Gdata_Exif_Extension_Make9"q GZend_Gdata_Exif_Extension_Iso9,p [Zend_Gdata_Exif_Extension_ImageUniqueId9$o KZend_Gdata_Exif_Extension_FStop9*n WZend_Gdata_Exif_Extension_FocalLength9$m KZend_Gdata_Exif_Extension_Flash9'l QZend_Gdata_Exif_Extension_Exposure9'k QZend_Gdata_Exif_Extension_Distance9j 7Zend_Gdata_Exif_Entry9i -Zend_Gdata_Entry9h 7Zend_Gdata_DublinCore9*g WZend_Gdata_DublinCore_Extension_Title9,f [Zend_Gdata_DublinCore_Extension_Subject9+e YZend_Gdata_DublinCore_Extension_Rights9.d _Zend_Gdata_DublinCore_Extension_Publisher9-c ]Zend_Gdata_DublinCore_Extension_Language9/b aZend_Gdata_DublinCore_Extension_Identifier9+a YZend_Gdata_DublinCore_Extension_Format90` cZend_Gdata_DublinCore_Extension_Description9)_ UZend_Gdata_DublinCore_Extension_Date9,^ [Zend_Gdata_DublinCore_Extension_Creator9] +Zend_Gdata_Docs9\ 7Zend_Gdata_Docs_Query9%[ MZend_Gdata_Docs_DocumentListFeed9&Z OZend_Gdata_Docs_DocumentListEntry9Y 9Zend_Gdata_ClientLogin9X 3Zend_Gdata_Calendar9!W EZend_Gdata_Calendar_ListFeed9"V GZend_Gdata_Calendar_ListEntry9-U ]Zend_Gdata_Calendar_Extension_WebContent9+T YZend_Gdata_Calendar_Extension_Timezone99S uZend_Gdata_Calendar_Extension_SendEventNotifications9+R YZend_Gdata_Calendar_Extension_Selected9+Q YZend_Gdata_Calendar_Extension_QuickAdd9'P QZend_Gdata_Calendar_Extension_Link9)O UZend_Gdata_Calendar_Extension_Hidden9(N SZend_Gdata_Calendar_Extension_Color9.M _Zend_Gdata_Calendar_Extension_AccessLevel9#L IZend_Gdata_Calendar_EventQuery9"K GZend_Gdata_Calendar_EventFeed9#J IZend_Gdata_Calendar_EventEntry9I -Zend_Gdata_Books9!H EZend_Gdata_Books_VolumeQuery9 G CZend_Gdata_Books_VolumeFeed9!F EZend_Gdata_Books_VolumeEntry9+E YZend_Gdata_Books_Extension_Viewability9-D ]Zend_Gdata_Books_Extension_ThumbnailLink9&C OZend_Gdata_Books_Extension_Review9+B YZend_Gdata_Books_Extension_PreviewLink9(A SZend_Gdata_Books_Extension_InfoLink9-@ ]Zend_Gdata_Books_Extension_Embeddability9   a  jClJ'}[8rEqK 




a
C
 
			n	?	P!`B)Z3V%p:S&pBjE!                  AZend_Gdata_Photos_TagEntry9!~ EZend_Gdata_Photos_PhotoQuery9 } CZend_Gdata_Photos_PhotoFeed9!| EZend_Gdata_Photos_PhotoEntry9&{ OZend_Gdata_Photos_Extension_Width9'z QZend_Gdata_Photos_Extension_Weight9(y SZend_Gdata_Photos_Extension_Version9%x MZend_Gdata_Photos_Extension_User9*w WZend_Gdata_Photos_Extension_Timestamp9*v WZend_Gdata_Photos_Extension_Thumbnail9%u MZend_Gdata_Photos_Extension_Size9)t UZend_Gdata_Photos_Extension_Rotation9+s YZend_Gdata_Photos_Extension_QuotaLimit9-r ]Zend_Gdata_Photos_Extension_QuotaCurrent9)q UZend_Gdata_Photos_Extension_Position9(p SZend_Gdata_Photos_Extension_PhotoId93o iZend_Gdata_Photos_Extension_NumPhotosRemaining9*n WZend_Gdata_Photos_Extension_NumPhotos9)m UZend_Gdata_Photos_Extension_Nickname9%l MZend_Gdata_Photos_Extension_Name92k gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum9)j UZend_Gdata_Photos_Extension_Location9#i IZend_Gdata_Photos_Extension_Id9'h QZend_Gdata_Photos_Extension_Height92g gZend_Gdata_Photos_Extension_CommentingEnabled9-f ]Zend_Gdata_Photos_Extension_CommentCount9'e QZend_Gdata_Photos_Extension_Client9)d UZend_Gdata_Photos_Extension_Checksum9*c WZend_Gdata_Photos_Extension_BytesUsed9(b SZend_Gdata_Photos_Extension_AlbumId9'a QZend_Gdata_Photos_Extension_Access9#` IZend_Gdata_Photos_CommentEntry9!_ EZend_Gdata_Photos_AlbumQuery9 ^ CZend_Gdata_Photos_AlbumFeed9!] EZend_Gdata_Photos_AlbumEntry9\ 3Zend_Gdata_MimeFile9[ ?Zend_Gdata_MimeBodyString9Z AZend_Gdata_MediaMimeStream9Y -Zend_Gdata_Media9X 7Zend_Gdata_Media_Feed9*W WZend_Gdata_Media_Extension_MediaTitle9.V _Zend_Gdata_Media_Extension_MediaThumbnail9)U UZend_Gdata_Media_Extension_MediaText90T cZend_Gdata_Media_Extension_MediaRestriction9+S YZend_Gdata_Media_Extension_MediaRating9+R YZend_Gdata_Media_Extension_MediaPlayer9-Q ]Zend_Gdata_Media_Extension_MediaKeywords9)P UZend_Gdata_Media_Extension_MediaHash9*O WZend_Gdata_Media_Extension_MediaGroup90N cZend_Gdata_Media_Extension_MediaDescription9+M YZend_Gdata_Media_Extension_MediaCredit9.L _Zend_Gdata_Media_Extension_MediaCopyright9,K [Zend_Gdata_Media_Extension_MediaContent9-J ]Zend_Gdata_Media_Extension_MediaCategory9I 9Zend_Gdata_Media_Entry9H AZend_Gdata_Kind_EventEntry9G 7Zend_Gdata_HttpClient9*F WZend_Gdata_HttpAdapterStreamingSocket9)E UZend_Gdata_HttpAdapterStreamingProxy9D /Zend_Gdata_Health9C ;Zend_Gdata_Health_Query9&B OZend_Gdata_Health_ProfileListFeed9'A QZend_Gdata_Health_ProfileListEntry9"@ GZend_Gdata_Health_ProfileFeed9#? IZend_Gdata_Health_ProfileEntry9$> KZend_Gdata_Health_Extension_Ccr9= )Zend_Gdata_Geo9< 3Zend_Gdata_Geo_Feed9$; KZend_Gdata_Geo_Extension_GmlPos9&: OZend_Gdata_Geo_Extension_GmlPoint9)9 UZend_Gdata_Geo_Extension_GeoRssWhere98 5Zend_Gdata_Geo_Entry97 -Zend_Gdata_Gbase9"6 GZend_Gdata_Gbase_SnippetQuery9!5 EZend_Gdata_Gbase_SnippetFeed9"4 GZend_Gdata_Gbase_SnippetEntry93 9Zend_Gdata_Gbase_Query92 AZend_Gdata_Gbase_ItemQuery91 ?Zend_Gdata_Gbase_ItemFeed90 AZend_Gdata_Gbase_ItemEntry9/ 7Zend_Gdata_Gbase_Feed9-. ]Zend_Gdata_Gbase_Extension_BaseAttribute9- 9Zend_Gdata_Gbase_Entry9, -Zend_Gdata_Gapps9+ AZend_Gdata_Gapps_UserQuery9* ?Zend_Gdata_Gapps_UserFeed9) AZend_Gdata_Gapps_UserEntry9&( OZend_Gdata_Gapps_ServiceException9' 9Zend_Gdata_Gapps_Query9 & CZend_Gdata_Gapps_OwnerQuery9% AZend_Gdata_Gapps_OwnerFeed9 $ CZend_Gdata_Gapps_OwnerEntry9## IZend_Gdata_Gapps_NicknameQuery9"" GZend_Gdata_Gapps_NicknameFeed9#! IZend_Gdata_Gapps_NicknameEntry9!  EZend_Gdata_Gapps_MemberQuery9  CZend_Gdata_Gapps_MemberFeed9   \  {b8U$tCmEzQ&



l
>
				Z	0	o>Z'qCY-yS.T'^C0
jG.                               [ 3Zend_Http_Exception9Z 3Zend_Http_CookieJar9Y -Zend_Http_Cookie9X -Zend_Http_Client9W AZend_Http_Client_Exception9"V GZend_Http_Client_Adapter_Test9$U KZend_Http_Client_Adapter_Socket9#T IZend_Http_Client_Adapter_Proxy9'S QZend_Http_Client_Adapter_Exception9"R GZend_Http_Client_Adapter_Curl9Q !Zend_Gdata9P 1Zend_Gdata_YouTube9"O GZend_Gdata_YouTube_VideoQuery9!N EZend_Gdata_YouTube_VideoFeed9"M GZend_Gdata_YouTube_VideoEntry9(L SZend_Gdata_YouTube_UserProfileEntry9(K SZend_Gdata_YouTube_SubscriptionFeed9)J UZend_Gdata_YouTube_SubscriptionEntry9)I UZend_Gdata_YouTube_PlaylistVideoFeed9*H WZend_Gdata_YouTube_PlaylistVideoEntry9(G SZend_Gdata_YouTube_PlaylistListFeed9)F UZend_Gdata_YouTube_PlaylistListEntry9"E GZend_Gdata_YouTube_MediaEntry9!D EZend_Gdata_YouTube_InboxFeed9"C GZend_Gdata_YouTube_InboxEntry9)B UZend_Gdata_YouTube_Extension_VideoId9*A WZend_Gdata_YouTube_Extension_Username9*@ WZend_Gdata_YouTube_Extension_Uploaded9'? QZend_Gdata_YouTube_Extension_Token9(> SZend_Gdata_YouTube_Extension_Status9,= [Zend_Gdata_YouTube_Extension_Statistics9'< QZend_Gdata_YouTube_Extension_State9(; SZend_Gdata_YouTube_Extension_School9-: ]Zend_Gdata_YouTube_Extension_ReleaseDate9.9 _Zend_Gdata_YouTube_Extension_Relationship9*8 WZend_Gdata_YouTube_Extension_Recorded9&7 OZend_Gdata_YouTube_Extension_Racy9-6 ]Zend_Gdata_YouTube_Extension_QueryString9)5 UZend_Gdata_YouTube_Extension_Private9*4 WZend_Gdata_YouTube_Extension_Position9/3 aZend_Gdata_YouTube_Extension_PlaylistTitle9,2 [Zend_Gdata_YouTube_Extension_PlaylistId9,1 [Zend_Gdata_YouTube_Extension_Occupation9)0 UZend_Gdata_YouTube_Extension_NoEmbed9'/ QZend_Gdata_YouTube_Extension_Music9(. SZend_Gdata_YouTube_Extension_Movies9-- ]Zend_Gdata_YouTube_Extension_MediaRating9,, [Zend_Gdata_YouTube_Extension_MediaGroup9-+ ]Zend_Gdata_YouTube_Extension_MediaCredit9.* _Zend_Gdata_YouTube_Extension_MediaContent9*) WZend_Gdata_YouTube_Extension_Location9&( OZend_Gdata_YouTube_Extension_Link9*' WZend_Gdata_YouTube_Extension_LastName9*& WZend_Gdata_YouTube_Extension_Hometown9)% UZend_Gdata_YouTube_Extension_Hobbies9($ SZend_Gdata_YouTube_Extension_Gender9+# YZend_Gdata_YouTube_Extension_FirstName9*" WZend_Gdata_YouTube_Extension_Duration9-! ]Zend_Gdata_YouTube_Extension_Description9+  YZend_Gdata_YouTube_Extension_CountHint9) UZend_Gdata_YouTube_Extension_Control9) UZend_Gdata_YouTube_Extension_Company9' QZend_Gdata_YouTube_Extension_Books9% MZend_Gdata_YouTube_Extension_Age9) UZend_Gdata_YouTube_Extension_AboutMe9# IZend_Gdata_YouTube_ContactFeed9$ KZend_Gdata_YouTube_ContactEntry9# IZend_Gdata_YouTube_CommentFeed9$ KZend_Gdata_YouTube_CommentEntry9$ KZend_Gdata_YouTube_ActivityFeed9% MZend_Gdata_YouTube_ActivityEntry9 ;Zend_Gdata_Spreadsheets9* WZend_Gdata_Spreadsheets_WorksheetFeed9+ YZend_Gdata_Spreadsheets_WorksheetEntry9, [Zend_Gdata_Spreadsheets_SpreadsheetFeed9- ]Zend_Gdata_Spreadsheets_SpreadsheetEntry9& OZend_Gdata_Spreadsheets_ListQuery9% MZend_Gdata_Spreadsheets_ListFeed9& OZend_Gdata_Spreadsheets_ListEntry9/ aZend_Gdata_Spreadsheets_Extension_RowCount9- ]Zend_Gdata_Spreadsheets_Extension_Custom9/
 aZend_Gdata_Spreadsheets_Extension_ColCount9+	 YZend_Gdata_Spreadsheets_Extension_Cell9* WZend_Gdata_Spreadsheets_DocumentQuery9& OZend_Gdata_Spreadsheets_CellQuery9% MZend_Gdata_Spreadsheets_CellFeed9& OZend_Gdata_Spreadsheets_CellEntry9 -Zend_Gdata_Query9 /Zend_Gdata_Photos9  CZend_Gdata_Photos_UserQuery9 AZend_Gdata_Photos_UserFeed9   CZend_Gdata_Photos_UserEntry9   f  xT0TeDqU/I



t
T
+
				]	6	qDhExY6dK9\?jI+zR0b&                              1A eZend_Ldap_Node_Schema_AttributeType_OpenLdap98@ sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory9*? WZend_Ldap_Node_Schema_ActiveDirectory9> 9Zend_Ldap_Node_RootDse9$= KZend_Ldap_Node_RootDse_OpenLdap9&< OZend_Ldap_Node_RootDse_eDirectory9+; YZend_Ldap_Node_RootDse_ActiveDirectory9: ?Zend_Ldap_Node_Collection9$9 KZend_Ldap_Node_ChildrenIterator98 ;Zend_Ldap_Node_Abstract97 9Zend_Ldap_Ldif_Encoder96 -Zend_Ldap_Filter95 ;Zend_Ldap_Filter_String94 3Zend_Ldap_Filter_Or93 5Zend_Ldap_Filter_Not92 7Zend_Ldap_Filter_Mask91 =Zend_Ldap_Filter_Logical90 AZend_Ldap_Filter_Exception9/ 5Zend_Ldap_Filter_And9. ?Zend_Ldap_Filter_Abstract9- 3Zend_Ldap_Exception9, %Zend_Ldap_Dn9+ 3Zend_Ldap_Converter9"* GZend_Ldap_Converter_Exception9) 5Zend_Ldap_Collection9*( WZend_Ldap_Collection_Iterator_Default9' 3Zend_Ldap_Attribute9& #Zend_Layout9% 7Zend_Layout_Exception9)$ UZend_Layout_Controller_Plugin_Layout90# cZend_Layout_Controller_Action_Helper_Layout9" Zend_Json9! -Zend_Json_Server9  5Zend_Json_Server_Smd9! EZend_Json_Server_Smd_Service9 ?Zend_Json_Server_Response9# IZend_Json_Server_Response_Http9 =Zend_Json_Server_Request9" GZend_Json_Server_Request_Http9 AZend_Json_Server_Exception9 9Zend_Json_Server_Error9 9Zend_Json_Server_Cache9 )Zend_Json_Expr9 3Zend_Json_Exception9 /Zend_Json_Encoder9 /Zend_Json_Decoder9 'Zend_InfoCard9- ]Zend_InfoCard_Xml_SecurityTokenReference9 AZend_InfoCard_Xml_Security9) UZend_InfoCard_Xml_Security_Transform94 kZend_InfoCard_Xml_Security_Transform_XmlExcC14N93 iZend_InfoCard_Xml_Security_Transform_Exception9< {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignature9) UZend_InfoCard_Xml_Security_Exception9 ?Zend_InfoCard_Xml_KeyInfo9&
 OZend_InfoCard_Xml_KeyInfo_XmlDSig9&	 OZend_InfoCard_Xml_KeyInfo_Default9' QZend_InfoCard_Xml_KeyInfo_Abstract9  CZend_InfoCard_Xml_Exception9# IZend_InfoCard_Xml_EncryptedKey9$ KZend_InfoCard_Xml_EncryptedData9+ YZend_InfoCard_Xml_EncryptedData_XmlEnc9- ]Zend_InfoCard_Xml_EncryptedData_Abstract9 ?Zend_InfoCard_Xml_Element9  CZend_InfoCard_Xml_Assertion9%  MZend_InfoCard_Xml_Assertion_Saml9 ;Zend_InfoCard_Exception9%~ MZend_InfoCard_Exception_Abstract9} 5Zend_InfoCard_Claims9| 5Zend_InfoCard_Cipher95{ mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc95z mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc94y kZend_InfoCard_Cipher_Symmetric_Adapter_Abstract9)x UZend_InfoCard_Cipher_Pki_Adapter_Rsa9.w _Zend_InfoCard_Cipher_Pki_Adapter_Abstract9#v IZend_InfoCard_Cipher_Exception9$u KZend_InfoCard_Adapter_Exception9"t GZend_InfoCard_Adapter_Default9s 3Zend_Http_UserAgent9"r GZend_Http_UserAgent_Validator9q =Zend_Http_UserAgent_Text9(p SZend_Http_UserAgent_Storage_Session9.o _Zend_Http_UserAgent_Storage_NonPersistent9*n WZend_Http_UserAgent_Storage_Exception9m =Zend_Http_UserAgent_Spam9l ?Zend_Http_UserAgent_Probe9 k CZend_Http_UserAgent_Offline9j AZend_Http_UserAgent_Mobile9i =Zend_Http_UserAgent_Feed9+h YZend_Http_UserAgent_Features_Exception92g gZend_Http_UserAgent_Features_Adapter_WurflApi93f iZend_Http_UserAgent_Features_Adapter_TeraWurfl95e mZend_Http_UserAgent_Features_Adapter_DeviceAtlas9"d GZend_Http_UserAgent_Exception9c ?Zend_Http_UserAgent_Email9 b CZend_Http_UserAgent_Desktop9 a CZend_Http_UserAgent_Console9 ` CZend_Http_UserAgent_Checker9_ ;Zend_Http_UserAgent_Bot9'^ QZend_Http_UserAgent_AbstractDevice9] 1Zend_Http_Response9\ ?Zend_Http_Response_Stream9   v pI+rQ=iU:rS2b>-





\
<
				y	V	2		bCmL:d5rX:&tP,yX=lQ0rM(              "7 GZend_Memory_Container_Movable9!6 EZend_Memory_Container_Locked9!5 EZend_Memory_AccessController94 3Zend_Measure_Weight93 3Zend_Measure_Volume9%2 MZend_Measure_Viscosity_Kinematic9#1 IZend_Measure_Viscosity_Dynamic90 3Zend_Measure_Torque9/ /Zend_Measure_Time9. =Zend_Measure_Temperature9- 1Zend_Measure_Speed9, 7Zend_Measure_Pressure9+ 1Zend_Measure_Power9* 3Zend_Measure_Number9) 9Zend_Measure_Lightness9( 3Zend_Measure_Length9' ?Zend_Measure_Illumination9& 9Zend_Measure_Frequency9% 1Zend_Measure_Force9$ =Zend_Measure_Flow_Volume9# 9Zend_Measure_Flow_Mole9" 9Zend_Measure_Flow_Mass9! 9Zend_Measure_Exception9  3Zend_Measure_Energy9 5Zend_Measure_Density9 5Zend_Measure_Current9  CZend_Measure_Cooking_Weight9  CZend_Measure_Cooking_Volume9 =Zend_Measure_Capacitance9 3Zend_Measure_Binary9 /Zend_Measure_Area9 1Zend_Measure_Angle9 ?Zend_Measure_Acceleration9 7Zend_Measure_Abstract9 #Zend_Markup9 7Zend_Markup_TokenList9 /Zend_Markup_Token9* WZend_Markup_Renderer_RendererAbstract9 ?Zend_Markup_Renderer_Html9" GZend_Markup_Renderer_Html_Url9# IZend_Markup_Renderer_Html_List9" GZend_Markup_Renderer_Html_Img9+ YZend_Markup_Renderer_Html_HtmlAbstract9# IZend_Markup_Renderer_Html_Code9# IZend_Markup_Renderer_Exception9
 AZend_Markup_Parser_Textile9!	 EZend_Markup_Parser_Exception9 ?Zend_Markup_Parser_Bbcode9 7Zend_Markup_Exception9 Zend_Mail9 =Zend_Mail_Transport_Smtp9! EZend_Mail_Transport_Sendmail9 =Zend_Mail_Transport_File9" GZend_Mail_Transport_Exception9! EZend_Mail_Transport_Abstract9  /Zend_Mail_Storage9' QZend_Mail_Storage_Writable_Maildir9~ 9Zend_Mail_Storage_Pop39} 9Zend_Mail_Storage_Mbox9| ?Zend_Mail_Storage_Maildir9{ 9Zend_Mail_Storage_Imap9z =Zend_Mail_Storage_Folder9"y GZend_Mail_Storage_Folder_Mbox9%x MZend_Mail_Storage_Folder_Maildir9 w CZend_Mail_Storage_Exception9v AZend_Mail_Storage_Abstract9u ;Zend_Mail_Protocol_Smtp9't QZend_Mail_Protocol_Smtp_Auth_Plain9's QZend_Mail_Protocol_Smtp_Auth_Login9)r UZend_Mail_Protocol_Smtp_Auth_Crammd59q ;Zend_Mail_Protocol_Pop39p ;Zend_Mail_Protocol_Imap9!o EZend_Mail_Protocol_Exception9 n CZend_Mail_Protocol_Abstract9m )Zend_Mail_Part9l 3Zend_Mail_Part_File9k /Zend_Mail_Message9j 9Zend_Mail_Message_File9i 3Zend_Mail_Exception9h Zend_Log9 g CZend_Log_Writer_ZendMonitor9f 9Zend_Log_Writer_Syslog9e 9Zend_Log_Writer_Stream9d 5Zend_Log_Writer_Null9c 5Zend_Log_Writer_Mock9b 5Zend_Log_Writer_Mail9a ;Zend_Log_Writer_Firebug9` 1Zend_Log_Writer_Db9_ =Zend_Log_Writer_Abstract9^ 9Zend_Log_Formatter_Xml9] ?Zend_Log_Formatter_Simple9\ AZend_Log_Formatter_Firebug9[ =Zend_Log_Filter_Suppress9Z =Zend_Log_Filter_Priority9Y ;Zend_Log_Filter_Message9X =Zend_Log_Filter_Abstract9W 1Zend_Log_Exception9V #Zend_Locale9U -Zend_Locale_Math9T =Zend_Locale_Math_PhpMath9S AZend_Locale_Math_Exception9R 1Zend_Locale_Format9Q 7Zend_Locale_Exception9P -Zend_Locale_Data9!O EZend_Locale_Data_Translation9N #Zend_Loader9M =Zend_Loader_PluginLoader9'L QZend_Loader_PluginLoader_Exception9K 7Zend_Loader_Exception9J 9Zend_Loader_Autoloader9$I KZend_Loader_Autoloader_Resource9H Zend_Ldap9G )Zend_Ldap_Node9F 7Zend_Ldap_Node_Schema9#E IZend_Ldap_Node_Schema_OpenLdap9/D aZend_Ldap_Node_Schema_ObjectClass_OpenLdap96C oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectory9B AZend_Ldap_Node_Schema_Item9   s zaE+|_G-gG/vK*tQ3	



{
g
B
					V	(gD&hJ(dD(dC+dC'JoJ(kJ#                     * ;Zend_Pdf_Element_Object9#) IZend_Pdf_Element_Object_Stream9( =Zend_Pdf_Element_Numeric9' 7Zend_Pdf_Element_Null9& 7Zend_Pdf_Element_Name9 % CZend_Pdf_Element_Dictionary9$ =Zend_Pdf_Element_Boolean9# 9Zend_Pdf_Element_Array9" 5Zend_Pdf_Destination9! ?Zend_Pdf_Destination_Zoom9!  EZend_Pdf_Destination_Unknown9 AZend_Pdf_Destination_Named9' QZend_Pdf_Destination_FitVertically9& OZend_Pdf_Destination_FitRectangle9) UZend_Pdf_Destination_FitHorizontally92 gZend_Pdf_Destination_FitBoundingBoxVertically94 kZend_Pdf_Destination_FitBoundingBoxHorizontally9( SZend_Pdf_Destination_FitBoundingBox9 =Zend_Pdf_Destination_Fit9" GZend_Pdf_Destination_Explicit9 )Zend_Pdf_Color9 1Zend_Pdf_Color_Rgb9 3Zend_Pdf_Color_Html9 =Zend_Pdf_Color_GrayScale9 3Zend_Pdf_Color_Cmyk9 'Zend_Pdf_Cmap9 AZend_Pdf_Cmap_TrimmedTable9! EZend_Pdf_Cmap_SegmentToDelta9 AZend_Pdf_Cmap_ByteEncoding9& OZend_Pdf_Cmap_ByteEncoding_Static9 +Zend_Pdf_Canvas9 =Zend_Pdf_Canvas_Abstract9
 3Zend_Pdf_Annotation9	 =Zend_Pdf_Annotation_Text9 AZend_Pdf_Annotation_Markup9 =Zend_Pdf_Annotation_Link9' QZend_Pdf_Annotation_FileAttachment9 +Zend_Pdf_Action9 3Zend_Pdf_Action_URI9 ;Zend_Pdf_Action_Unknown9 7Zend_Pdf_Action_Trans9 9Zend_Pdf_Action_Thread9  AZend_Pdf_Action_SubmitForm9 7Zend_Pdf_Action_Sound9 ~ CZend_Pdf_Action_SetOCGState9} ?Zend_Pdf_Action_ResetForm9| ?Zend_Pdf_Action_Rendition9{ 7Zend_Pdf_Action_Named9z 7Zend_Pdf_Action_Movie9y 9Zend_Pdf_Action_Launch9x AZend_Pdf_Action_JavaScript9w AZend_Pdf_Action_ImportData9v 5Zend_Pdf_Action_Hide9u 7Zend_Pdf_Action_GoToR9t 7Zend_Pdf_Action_GoToE9s AZend_Pdf_Action_GoTo3DView9r 5Zend_Pdf_Action_GoTo9q )Zend_Paginator9-p ]Zend_Paginator_SerializableLimitIterator9*o WZend_Paginator_ScrollingStyle_Sliding9*n WZend_Paginator_ScrollingStyle_Jumping9*m WZend_Paginator_ScrollingStyle_Elastic9&l OZend_Paginator_ScrollingStyle_All9k =Zend_Paginator_Exception9 j CZend_Paginator_Adapter_Null9$i KZend_Paginator_Adapter_Iterator9)h UZend_Paginator_Adapter_DbTableSelect9$g KZend_Paginator_Adapter_DbSelect9!f EZend_Paginator_Adapter_Array9e #Zend_OpenId9d 5Zend_OpenId_Provider9c ?Zend_OpenId_Provider_User9&b OZend_OpenId_Provider_User_Session9!a EZend_OpenId_Provider_Storage9&` OZend_OpenId_Provider_Storage_File9_ 7Zend_OpenId_Extension9^ AZend_OpenId_Extension_Sreg9] 7Zend_OpenId_Exception9\ 5Zend_OpenId_Consumer9![ EZend_OpenId_Consumer_Storage9&Z OZend_OpenId_Consumer_Storage_File9Y !Zend_Oauth9X -Zend_Oauth_Token9W =Zend_Oauth_Token_Request9'V QZend_Oauth_Token_AuthorizedRequest9U ;Zend_Oauth_Token_Access9+T YZend_Oauth_Signature_SignatureAbstract9S =Zend_Oauth_Signature_Rsa9#R IZend_Oauth_Signature_Plaintext9Q ?Zend_Oauth_Signature_Hmac9P +Zend_Oauth_Http9O ;Zend_Oauth_Http_Utility9&N OZend_Oauth_Http_UserAuthorization9!M EZend_Oauth_Http_RequestToken9 L CZend_Oauth_Http_AccessToken9K 5Zend_Oauth_Exception9J 3Zend_Oauth_Consumer9I /Zend_Oauth_Config9H /Zend_Oauth_Client9G +Zend_Navigation9F 5Zend_Navigation_Page9E =Zend_Navigation_Page_Uri9D =Zend_Navigation_Page_Mvc9C ?Zend_Navigation_Exception9B ?Zend_Navigation_Container9A Zend_Mime9@ )Zend_Mime_Part9? /Zend_Mime_Message9> 3Zend_Mime_Exception9= -Zend_Mime_Decode9< #Zend_Memory9; /Zend_Memory_Value9: 3Zend_Memory_Manager99 7Zend_Memory_Exception98 7Zend_Memory_Container9   d  iB"	uK*nH(oYB(iA



o
9
			X	_q6kF'qJ(~e@/jG.
tV1}b7                        !Zend_Queue9 9Zend_Queue_Stomp_Frame9 ;Zend_Queue_Stomp_Client9' QZend_Queue_Stomp_Client_Connection9
 1Zend_Queue_Message9#	 IZend_Queue_Message_PlatformJob9  CZend_Queue_Message_Iterator9 5Zend_Queue_Exception9( SZend_Queue_Adapter_PlatformJobQueue9 ;Zend_Queue_Adapter_Null9! EZend_Queue_Adapter_Memcacheq9 7Zend_Queue_Adapter_Db9  CZend_Queue_Adapter_Db_Queue9" GZend_Queue_Adapter_Db_Message9  =Zend_Queue_Adapter_Array9' QZend_Queue_Adapter_AdapterAbstract9 ~ CZend_Queue_Adapter_Activemq9} -Zend_ProgressBar9| AZend_ProgressBar_Exception9{ =Zend_ProgressBar_Adapter9$z KZend_ProgressBar_Adapter_JsPush9$y KZend_ProgressBar_Adapter_JsPull9'x QZend_ProgressBar_Adapter_Exception9%w MZend_ProgressBar_Adapter_Console9v Zend_Pdf9!u EZend_Pdf_UpdateInfoContainer9t -Zend_Pdf_Trailer9s ;Zend_Pdf_Trailer_Keeper9r AZend_Pdf_Trailer_Generator9q +Zend_Pdf_Target9p )Zend_Pdf_Style9o 7Zend_Pdf_StringParser9n /Zend_Pdf_Resource9m ?Zend_Pdf_Resource_Unified9#l IZend_Pdf_Resource_ImageFactory9k ;Zend_Pdf_Resource_Image9!j EZend_Pdf_Resource_Image_Tiff9 i CZend_Pdf_Resource_Image_Png9!h EZend_Pdf_Resource_Image_Jpeg9$g KZend_Pdf_Resource_GraphicsState9f 9Zend_Pdf_Resource_Font9!e EZend_Pdf_Resource_Font_Type09"d GZend_Pdf_Resource_Font_Simple9+c YZend_Pdf_Resource_Font_Simple_Standard98b sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats96a oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman97` qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic9;_ yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic95^ mZend_Pdf_Resource_Font_Simple_Standard_TimesBold92] gZend_Pdf_Resource_Font_Simple_Standard_Symbol9<\ {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaOblique9A[ Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique99Z uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold95Y mZend_Pdf_Resource_Font_Simple_Standard_Helvetica9:X wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique9>W Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique97V qZend_Pdf_Resource_Font_Simple_Standard_CourierBold93U iZend_Pdf_Resource_Font_Simple_Standard_Courier9)T UZend_Pdf_Resource_Font_Simple_Parsed92S gZend_Pdf_Resource_Font_Simple_Parsed_TrueType9*R WZend_Pdf_Resource_Font_FontDescriptor9%Q MZend_Pdf_Resource_Font_Extracted9#P IZend_Pdf_Resource_Font_CidFont9,O [Zend_Pdf_Resource_Font_CidFont_TrueType9 N CZend_Pdf_Resource_Extractor9$M KZend_Pdf_Resource_ContentStream93L iZend_Pdf_RecursivelyIteratableObjectsContainer9K +Zend_Pdf_Parser9J 'Zend_Pdf_Page9I -Zend_Pdf_Outline9H ;Zend_Pdf_Outline_Loaded9G =Zend_Pdf_Outline_Created9F /Zend_Pdf_NameTree9E )Zend_Pdf_Image9D 'Zend_Pdf_Font9C ?Zend_Pdf_Filter_RunLength9 B CZend_Pdf_Filter_Compression9$A KZend_Pdf_Filter_Compression_Lzw9&@ OZend_Pdf_Filter_Compression_Flate9? =Zend_Pdf_Filter_AsciiHex9> ;Zend_Pdf_Filter_Ascii859"= GZend_Pdf_FileParserDataSource9)< UZend_Pdf_FileParserDataSource_String9'; QZend_Pdf_FileParserDataSource_File9: 3Zend_Pdf_FileParser99 ?Zend_Pdf_FileParser_Image9"8 GZend_Pdf_FileParser_Image_Png97 =Zend_Pdf_FileParser_Font9&6 OZend_Pdf_FileParser_Font_OpenType9/5 aZend_Pdf_FileParser_Font_OpenType_TrueType94 1Zend_Pdf_Exception93 ;Zend_Pdf_ElementFactory9"2 GZend_Pdf_ElementFactory_Proxy91 -Zend_Pdf_Element90 ;Zend_Pdf_Element_String9#/ IZend_Pdf_Element_String_Binary9. ;Zend_Pdf_Element_Stream9- AZend_Pdf_Element_Reference9%, MZend_Pdf_Element_Reference_Table9'+ QZend_Pdf_Element_Reference_Context9   V  fE#aK(tQ8J>


w
=				Z	1	\8|P%O tM\,h9O!g1                                )d UZend_Search_Lucene_Search_QueryEntry9.c _Zend_Search_Lucene_Search_QueryEntry_Term92b gZend_Search_Lucene_Search_QueryEntry_Subquery90a cZend_Search_Lucene_Search_QueryEntry_Phrase9$` KZend_Search_Lucene_Search_Query9-_ ]Zend_Search_Lucene_Search_Query_Wildcard9)^ UZend_Search_Lucene_Search_Query_Term9*] WZend_Search_Lucene_Search_Query_Range92\ gZend_Search_Lucene_Search_Query_Preprocessing97[ qZend_Search_Lucene_Search_Query_Preprocessing_Term99Z uZend_Search_Lucene_Search_Query_Preprocessing_Phrase98Y sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy9+X YZend_Search_Lucene_Search_Query_Phrase9.W _Zend_Search_Lucene_Search_Query_MultiTerm92V gZend_Search_Lucene_Search_Query_Insignificant9*U WZend_Search_Lucene_Search_Query_Fuzzy9*T WZend_Search_Lucene_Search_Query_Empty9,S [Zend_Search_Lucene_Search_Query_Boolean92R gZend_Search_Lucene_Search_Highlighter_Default9:Q wZend_Search_Lucene_Search_BooleanExpressionRecognizer9P =Zend_Search_Lucene_Proxy9%O MZend_Search_Lucene_PriorityQueue9/N aZend_Search_Lucene_Interface_MultiSearcher9#M IZend_Search_Lucene_LockManager9$L KZend_Search_Lucene_Index_Writer90K cZend_Search_Lucene_Index_TermsPriorityQueue9&J OZend_Search_Lucene_Index_TermInfo9"I GZend_Search_Lucene_Index_Term9+H YZend_Search_Lucene_Index_SegmentWriter98G sZend_Search_Lucene_Index_SegmentWriter_StreamWriter9:F wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter9+E YZend_Search_Lucene_Index_SegmentMerger9)D UZend_Search_Lucene_Index_SegmentInfo9'C QZend_Search_Lucene_Index_FieldInfo9(B SZend_Search_Lucene_Index_DocsFilter9.A _Zend_Search_Lucene_Index_DictionaryLoader9!@ EZend_Search_Lucene_FSMAction9? 9Zend_Search_Lucene_FSM9> =Zend_Search_Lucene_Field9!= EZend_Search_Lucene_Exception9 < CZend_Search_Lucene_Document9%; MZend_Search_Lucene_Document_Xlsx9%: MZend_Search_Lucene_Document_Pptx9(9 SZend_Search_Lucene_Document_OpenXml9%8 MZend_Search_Lucene_Document_Html9*7 WZend_Search_Lucene_Document_Exception9%6 MZend_Search_Lucene_Document_Docx9,5 [Zend_Search_Lucene_Analysis_TokenFilter964 oZend_Search_Lucene_Analysis_TokenFilter_StopWords973 qZend_Search_Lucene_Analysis_TokenFilter_ShortWords9:2 wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8961 oZend_Search_Lucene_Analysis_TokenFilter_LowerCase9&0 OZend_Search_Lucene_Analysis_Token9)/ UZend_Search_Lucene_Analysis_Analyzer90. cZend_Search_Lucene_Analysis_Analyzer_Common98- sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num9I, Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive95+ mZend_Search_Lucene_Analysis_Analyzer_Common_Utf89F* Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive98) sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum9I( Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive95' mZend_Search_Lucene_Analysis_Analyzer_Common_Text9F& Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive9% 7Zend_Search_Exception9$ -Zend_Rest_Server9# AZend_Rest_Server_Exception9" +Zend_Rest_Route9! 3Zend_Rest_Exception9  5Zend_Rest_Controller9 -Zend_Rest_Client9 ;Zend_Rest_Client_Result9& OZend_Rest_Client_Result_Exception9 AZend_Rest_Client_Exception9 'Zend_Registry9 =Zend_Reflection_Property9 ?Zend_Reflection_Parameter9 9Zend_Reflection_Method9 =Zend_Reflection_Function9 5Zend_Reflection_File9 ?Zend_Reflection_Extension9 ?Zend_Reflection_Exception9 =Zend_Reflection_Docblock9! EZend_Reflection_Docblock_Tag9( SZend_Reflection_Docblock_Tag_Return9' QZend_Reflection_Docblock_Tag_Param9 7Zend_Reflection_Class9   _  zENe- vB'_7




~
a
G
(

				v	Q	(\3a,wL#xN(tM$a@^8f8     C ;Zend_Service_Amazon_Sqs9&B OZend_Service_Amazon_Sqs_Exception9!A EZend_Service_Amazon_SimpleDb9*@ WZend_Service_Amazon_SimpleDb_Response9&? OZend_Service_Amazon_SimpleDb_Page9+> YZend_Service_Amazon_SimpleDb_Exception9+= YZend_Service_Amazon_SimpleDb_Attribute9'< QZend_Service_Amazon_SimilarProduct9; 9Zend_Service_Amazon_S39": GZend_Service_Amazon_S3_Stream9%9 MZend_Service_Amazon_S3_Exception9"8 GZend_Service_Amazon_ResultSet97 ?Zend_Service_Amazon_Query9!6 EZend_Service_Amazon_OfferSet95 ?Zend_Service_Amazon_Offer9&4 OZend_Service_Amazon_ListmaniaList93 =Zend_Service_Amazon_Item92 ?Zend_Service_Amazon_Image9"1 GZend_Service_Amazon_Exception9(0 SZend_Service_Amazon_EditorialReview9/ ;Zend_Service_Amazon_Ec29+. YZend_Service_Amazon_Ec2_Securitygroups9%- MZend_Service_Amazon_Ec2_Response9#, IZend_Service_Amazon_Ec2_Region9$+ KZend_Service_Amazon_Ec2_Keypair9%* MZend_Service_Amazon_Ec2_Instance9-) ]Zend_Service_Amazon_Ec2_Instance_Windows9.( _Zend_Service_Amazon_Ec2_Instance_Reserved9"' GZend_Service_Amazon_Ec2_Image9&& OZend_Service_Amazon_Ec2_Exception9&% OZend_Service_Amazon_Ec2_Elasticip9 $ CZend_Service_Amazon_Ec2_Ebs9'# QZend_Service_Amazon_Ec2_CloudWatch9." _Zend_Service_Amazon_Ec2_Availabilityzones9%! MZend_Service_Amazon_Ec2_Abstract9'  QZend_Service_Amazon_CustomerReview9' QZend_Service_Amazon_Authentication9* WZend_Service_Amazon_Authentication_V29* WZend_Service_Amazon_Authentication_V19* WZend_Service_Amazon_Authentication_S391 eZend_Service_Amazon_Authentication_Exception9$ KZend_Service_Amazon_Accessories9! EZend_Service_Amazon_Abstract9 5Zend_Service_Akismet9 7Zend_Service_Abstract9 9Zend_Server_Reflection9' QZend_Server_Reflection_ReturnValue9% MZend_Server_Reflection_Prototype9% MZend_Server_Reflection_Parameter9  CZend_Server_Reflection_Node9" GZend_Server_Reflection_Method9$ KZend_Server_Reflection_Function9- ]Zend_Server_Reflection_Function_Abstract9% MZend_Server_Reflection_Exception9! EZend_Server_Reflection_Class9! EZend_Server_Method_Prototype9! EZend_Server_Method_Parameter9"
 GZend_Server_Method_Definition9 	 CZend_Server_Method_Callback9 7Zend_Server_Exception9 9Zend_Server_Definition9 /Zend_Server_Cache9 5Zend_Server_Abstract9 +Zend_Serializer9 ?Zend_Serializer_Exception9! EZend_Serializer_Adapter_Wddx9) UZend_Serializer_Adapter_PythonPickle9)  UZend_Serializer_Adapter_PhpSerialize9$ KZend_Serializer_Adapter_PhpCode9!~ EZend_Serializer_Adapter_Json9%} MZend_Serializer_Adapter_Igbinary9!| EZend_Serializer_Adapter_Amf39!{ EZend_Serializer_Adapter_Amf09,z [Zend_Serializer_Adapter_AdapterAbstract9y 1Zend_Search_Lucene90x cZend_Search_Lucene_TermStreamsPriorityQueue9$w KZend_Search_Lucene_Storage_File9+v YZend_Search_Lucene_Storage_File_Memory9/u aZend_Search_Lucene_Storage_File_Filesystem9)t UZend_Search_Lucene_Storage_Directory94s kZend_Search_Lucene_Storage_Directory_Filesystem9%r MZend_Search_Lucene_Search_Weight9*q WZend_Search_Lucene_Search_Weight_Term9,p [Zend_Search_Lucene_Search_Weight_Phrase9/o aZend_Search_Lucene_Search_Weight_MultiTerm9+n YZend_Search_Lucene_Search_Weight_Empty9-m ]Zend_Search_Lucene_Search_Weight_Boolean9)l UZend_Search_Lucene_Search_Similarity91k eZend_Search_Lucene_Search_Similarity_Default9)j UZend_Search_Lucene_Search_QueryToken93i iZend_Search_Lucene_Search_QueryParserException91h eZend_Search_Lucene_Search_QueryParserContext9*g WZend_Search_Lucene_Search_QueryParser9)f UZend_Search_Lucene_Search_QueryLexer9'e QZend_Search_Lucene_Search_QueryHit9   9  sK!MYLr8


Z
		j	[P3.qiND       B| Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract99{ uZend_Service_DeveloperGarden_Request_SendSms_SendSMS9>z Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS99y uZend_Service_DeveloperGarden_Request_RequestAbstract9Ix Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequest9Ew Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest93v iZend_Service_DeveloperGarden_Request_Exception9Ru %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequest9Yt 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequest9ds IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequest9Qr #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequest9Rq %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequest9Yp 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequest9do IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequest9Qn #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequest9Om Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequest9Ul +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequest9Uk +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequest9Vj -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequest9ai CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequest9Zh 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequest9Tg )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequest9Rf %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequest9Ye 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequest9Qd #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequest9Qc #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequest9ab CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequest9Na Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformation9L` Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalance9J_ Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool9-^ ]Zend_Service_DeveloperGarden_LocalSearch9>] Zend_Service_DeveloperGarden_LocalSearch_SearchParameters97\ qZend_Service_DeveloperGarden_LocalSearch_Exception9,[ [Zend_Service_DeveloperGarden_IpLocation96Z oZend_Service_DeveloperGarden_IpLocation_IpAddress9+Y YZend_Service_DeveloperGarden_Exception9,X [Zend_Service_DeveloperGarden_Credential90W cZend_Service_DeveloperGarden_ConferenceCall9CV Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatus9CU Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail9<T {Zend_Service_DeveloperGarden_ConferenceCall_Participant9:S wZend_Service_DeveloperGarden_ConferenceCall_Exception9DR 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceSchedule9BQ Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail9CP Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount9-O ]Zend_Service_DeveloperGarden_Client_Soap92N gZend_Service_DeveloperGarden_Client_Exception97M qZend_Service_DeveloperGarden_Client_ClientAbstract91L eZend_Service_DeveloperGarden_BaseUserService9AK Zend_Service_DeveloperGarden_BaseUserService_AccountBalance9J 9Zend_Service_Delicious9&I OZend_Service_Delicious_SimplePost9$H KZend_Service_Delicious_PostList9 G CZend_Service_Delicious_Post9%F MZend_Service_Delicious_Exception9 E CZend_Service_Audioscrobbler9D 3Zend_Service_Amazon9   - r iLl5*X


^
		M6~S,rc
I;  r                [) 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponse9f( MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponse9S' 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponse9T& )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse9[% 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponse9f$ MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponse9S# 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponse9U" +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType9Q! #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse9[  7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseType9W /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse9[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseType9W /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse9\ 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseType9X 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponse9g OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseType9c GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse9` AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType9\ 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponse9Z 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseType9V -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponse9X 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseType9T )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse9_ ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType9[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponse9W /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType9S 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponse9Q #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstract9S 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponse9J Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType9g OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseType9c
 GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponse9W	 /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse9U +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponse9S 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse93 iZend_Service_DeveloperGarden_Response_BaseType9J Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstract9C Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCall9G Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced9= }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCall9A Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatus9A  Zend_Service_DeveloperGarden_Request_SmsValidation_Validate9N Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeyword9C~ Zend_Service_DeveloperGarden_Request_SmsValidation_Invalidate9L} Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbers9   @  p.Fc/C


U			]	u!C
{X4	V) S(n@r>Q"                               i ?Zend_Service_Ebay_Finding9)h UZend_Service_Ebay_Finding_Storefront9+g YZend_Service_Ebay_Finding_ShippingInfo9+f YZend_Service_Ebay_Finding_Set_Abstract9,e [Zend_Service_Ebay_Finding_SellingStatus9)d UZend_Service_Ebay_Finding_SellerInfo9,c [Zend_Service_Ebay_Finding_Search_Result9*b WZend_Service_Ebay_Finding_Search_Item9.a _Zend_Service_Ebay_Finding_Search_Item_Set90` cZend_Service_Ebay_Finding_Response_Keywords9-_ ]Zend_Service_Ebay_Finding_Response_Items92^ gZend_Service_Ebay_Finding_Response_Histograms90] cZend_Service_Ebay_Finding_Response_Abstract9/\ aZend_Service_Ebay_Finding_PaginationOutput9*[ WZend_Service_Ebay_Finding_ListingInfo9(Z SZend_Service_Ebay_Finding_Exception9,Y [Zend_Service_Ebay_Finding_Error_Message9)X UZend_Service_Ebay_Finding_Error_Data9-W ]Zend_Service_Ebay_Finding_Error_Data_Set9'V QZend_Service_Ebay_Finding_Category91U eZend_Service_Ebay_Finding_Category_Histogram95T mZend_Service_Ebay_Finding_Category_Histogram_Set9;S yZend_Service_Ebay_Finding_Category_Histogram_Container9%R MZend_Service_Ebay_Finding_Aspect9)Q UZend_Service_Ebay_Finding_Aspect_Set95P mZend_Service_Ebay_Finding_Aspect_Histogram_Value99O uZend_Service_Ebay_Finding_Aspect_Histogram_Value_Set99N uZend_Service_Ebay_Finding_Aspect_Histogram_Container9'M QZend_Service_Ebay_Finding_Abstract9 L CZend_Service_Ebay_Exception9K AZend_Service_Ebay_Abstract9+J YZend_Service_DeveloperGarden_VoiceCall9/I aZend_Service_DeveloperGarden_SmsValidation9)H UZend_Service_DeveloperGarden_SendSms95G mZend_Service_DeveloperGarden_SecurityTokenServer9;F yZend_Service_DeveloperGarden_SecurityTokenServer_Cache9KE Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstract9LD Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponse9PC !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponse9GB Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponse9JA Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponse9K@ Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2Response9L? Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponse9I> Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumber9W= /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponse9J< Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponse9U; +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponse9C: Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponse9C9 Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstract9H8 Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponse9U7 +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponse9Q6 #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponse9I5 Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception9;4 yZend_Service_DeveloperGarden_Response_ResponseAbstract9O3 Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseType9K2 Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponse9A1 Zend_Service_DeveloperGarden_Response_IpLocation_RegionType9K0 Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseType9G/ Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponse9L. Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationType9I- Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType9>, Zend_Service_DeveloperGarden_Response_IpLocation_CityType94+ kZend_Service_DeveloperGarden_Response_Exception9T* )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse9   V  vZ2
jC%z[+hH# |W,




g
G
"				g	;	h6{T*vKeHQt,Xj2                   2? gZend_Service_WindowsAzure_Diagnostics_Manager93> iZend_Service_WindowsAzure_Diagnostics_LogLevel94= kZend_Service_WindowsAzure_Diagnostics_Exception9N< Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscription9H; Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLog9L: Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCounters9K9 Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstract9<8 {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogs9A7 Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstance9D6 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectories9U5 +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogs9D4 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSources983 sZend_Service_WindowsAzure_Credentials_SharedKeyLite942 kZend_Service_WindowsAzure_Credentials_SharedKey9A1 Zend_Service_WindowsAzure_Credentials_SharedAccessSignature940 kZend_Service_WindowsAzure_Credentials_Exception9>/ Zend_Service_WindowsAzure_Credentials_CredentialsAbstract9. 5Zend_Service_Twitter9 - CZend_Service_Twitter_Search9#, IZend_Service_Twitter_Exception9+ ;Zend_Service_Technorati9#* IZend_Service_Technorati_Weblog9") GZend_Service_Technorati_Utils9*( WZend_Service_Technorati_TagsResultSet9'' QZend_Service_Technorati_TagsResult9)& UZend_Service_Technorati_TagResultSet9&% OZend_Service_Technorati_TagResult9,$ [Zend_Service_Technorati_SearchResultSet9)# UZend_Service_Technorati_SearchResult9&" OZend_Service_Technorati_ResultSet9#! IZend_Service_Technorati_Result9*  WZend_Service_Technorati_KeyInfoResult9* WZend_Service_Technorati_GetInfoResult9& OZend_Service_Technorati_Exception91 eZend_Service_Technorati_DailyCountsResultSet9. _Zend_Service_Technorati_DailyCountsResult9, [Zend_Service_Technorati_CosmosResultSet9) UZend_Service_Technorati_CosmosResult9+ YZend_Service_Technorati_BlogInfoResult9# IZend_Service_Technorati_Author9 ;Zend_Service_StrikeIron9( SZend_Service_StrikeIron_ZipCodeInfo92 gZend_Service_StrikeIron_USAddressVerification9- ]Zend_Service_StrikeIron_SalesUseTaxBasic9& OZend_Service_StrikeIron_Exception9& OZend_Service_StrikeIron_Decorator9! EZend_Service_StrikeIron_Base9 ;Zend_Service_SlideShare9& OZend_Service_SlideShare_SlideShow9& OZend_Service_SlideShare_Exception9 1Zend_Service_Simpy9$ KZend_Service_Simpy_WatchlistSet9* WZend_Service_Simpy_WatchlistFilterSet9'
 QZend_Service_Simpy_WatchlistFilter9!	 EZend_Service_Simpy_Watchlist9 ?Zend_Service_Simpy_TagSet9 9Zend_Service_Simpy_Tag9 AZend_Service_Simpy_NoteSet9 ;Zend_Service_Simpy_Note9 AZend_Service_Simpy_LinkSet9! EZend_Service_Simpy_LinkQuery9 ;Zend_Service_Simpy_Link9% MZend_Service_ShortUrl_TinyUrlCom9&  OZend_Service_ShortUrl_MetamarkNet9! EZend_Service_ShortUrl_JdemCz9~ AZend_Service_ShortUrl_IsGd9$} KZend_Service_ShortUrl_Exception9,| [Zend_Service_ShortUrl_AbstractShortener9{ 9Zend_Service_ReCaptcha9$z KZend_Service_ReCaptcha_Response9$y KZend_Service_ReCaptcha_MailHide9.x _Zend_Service_ReCaptcha_MailHide_Exception9%w MZend_Service_ReCaptcha_Exception9v 7Zend_Service_Nirvanix9#u IZend_Service_Nirvanix_Response9)t UZend_Service_Nirvanix_Namespace_Imfs9)s UZend_Service_Nirvanix_Namespace_Base9$r KZend_Service_Nirvanix_Exception9q 7Zend_Service_LiveDocx9$p KZend_Service_LiveDocx_MailMerge9$o KZend_Service_LiveDocx_Exception9n 3Zend_Service_Flickr9"m GZend_Service_Flickr_ResultSet9l AZend_Service_Flickr_Result9k ?Zend_Service_Flickr_Image9j 9Zend_Service_Exception9   [  Np@d-{Ka1



^
=
				j	@	xS,|]>W8za@^+nI(^/uM  0 cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet9) UZend_Test_PHPUnit_Db_DataSet_DbTable9* WZend_Test_PHPUnit_Db_DataSet_DbRowset9$ KZend_Test_PHPUnit_Db_Connection9' QZend_Test_PHPUnit_DatabaseTestCase9) UZend_Test_PHPUnit_ControllerTestCase90 cZend_Test_PHPUnit_Constraint_ResponseHeader9* WZend_Test_PHPUnit_Constraint_Redirect9+ YZend_Test_PHPUnit_Constraint_Exception9* WZend_Test_PHPUnit_Constraint_DomQuery9 7Zend_Test_DbStatement9 3Zend_Test_DbAdapter9 /Zend_Tag_ItemList9 'Zend_Tag_Item9 1Zend_Tag_Exception9 )Zend_Tag_Cloud9
 =Zend_Tag_Cloud_Exception9!	 EZend_Tag_Cloud_Decorator_Tag9% MZend_Tag_Cloud_Decorator_HtmlTag9' QZend_Tag_Cloud_Decorator_HtmlCloud9' QZend_Tag_Cloud_Decorator_Exception9# IZend_Tag_Cloud_Decorator_Cloud9 )Zend_Soap_Wsdl9/ aZend_Soap_Wsdl_Strategy_DefaultComplexType9& OZend_Soap_Wsdl_Strategy_Composite90 cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence9/  aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex9$ KZend_Soap_Wsdl_Strategy_AnyType9%~ MZend_Soap_Wsdl_Strategy_Abstract9} =Zend_Soap_Wsdl_Exception9| -Zend_Soap_Server9{ AZend_Soap_Server_Exception9z -Zend_Soap_Client9y 9Zend_Soap_Client_Local9x AZend_Soap_Client_Exception9w ;Zend_Soap_Client_DotNet9v ;Zend_Soap_Client_Common9u 9Zend_Soap_AutoDiscover9%t MZend_Soap_AutoDiscover_Exception9s %Zend_Session9)r UZend_Session_Validator_HttpUserAgent9$q KZend_Session_Validator_Abstract9'p QZend_Session_SaveHandler_Exception9%o MZend_Session_SaveHandler_DbTable9n 9Zend_Session_Namespace9m 9Zend_Session_Exception9l 7Zend_Session_Abstract9k 1Zend_Service_Yahoo9$j KZend_Service_Yahoo_WebResultSet9!i EZend_Service_Yahoo_WebResult9&h OZend_Service_Yahoo_VideoResultSet9#g IZend_Service_Yahoo_VideoResult9!f EZend_Service_Yahoo_ResultSet9e ?Zend_Service_Yahoo_Result9)d UZend_Service_Yahoo_PageDataResultSet9&c OZend_Service_Yahoo_PageDataResult9%b MZend_Service_Yahoo_NewsResultSet9"a GZend_Service_Yahoo_NewsResult9&` OZend_Service_Yahoo_LocalResultSet9#_ IZend_Service_Yahoo_LocalResult9+^ YZend_Service_Yahoo_InlinkDataResultSet9(] SZend_Service_Yahoo_InlinkDataResult9&\ OZend_Service_Yahoo_ImageResultSet9#[ IZend_Service_Yahoo_ImageResult9Z =Zend_Service_Yahoo_Image9&Y OZend_Service_WindowsAzure_Storage94X kZend_Service_WindowsAzure_Storage_TableInstance97W qZend_Service_WindowsAzure_Storage_TableEntityQuery92V gZend_Service_WindowsAzure_Storage_TableEntity9,U [Zend_Service_WindowsAzure_Storage_Table9<T {Zend_Service_WindowsAzure_Storage_StorageEntityAbstract97S qZend_Service_WindowsAzure_Storage_SignedIdentifier93R iZend_Service_WindowsAzure_Storage_QueueMessage94Q kZend_Service_WindowsAzure_Storage_QueueInstance9,P [Zend_Service_WindowsAzure_Storage_Queue99O uZend_Service_WindowsAzure_Storage_PageRegionInstance94N kZend_Service_WindowsAzure_Storage_LeaseInstance99M uZend_Service_WindowsAzure_Storage_DynamicTableEntity93L iZend_Service_WindowsAzure_Storage_BlobInstance94K kZend_Service_WindowsAzure_Storage_BlobContainer9+J YZend_Service_WindowsAzure_Storage_Blob92I gZend_Service_WindowsAzure_Storage_Blob_Stream9;H yZend_Service_WindowsAzure_Storage_BatchStorageAbstract9,G [Zend_Service_WindowsAzure_Storage_Batch9-F ]Zend_Service_WindowsAzure_SessionHandler9>E Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract91D eZend_Service_WindowsAzure_RetryPolicy_RetryN92C gZend_Service_WindowsAzure_RetryPolicy_NoRetry94B kZend_Service_WindowsAzure_RetryPolicy_Exception9(A SZend_Service_WindowsAzure_Exception9J@ Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscription9q   SLE>70)"



















z
s
l
e
^
W
P
I
B
;
4
-
&





							jc\UNG@92+$|ung`YRKD=6/(!												~	w	p	i	b	[	T	M	F	?	8	1	*	#					 {tmf_XQJC<5.' xqjc\UNG@92+$|ung`YRKD=6/(!yrkd]VOHA:3,%	}vohaZSLE>70)"yrkd]VOHA:3,%	}vohaZ{tmf_XQJC<5.' xq         ˆn  ʆ  Ȇ$  ǆ:  ƆP  ņg  Ć!  ÆM  v    b  4  w    A  ]  j  w    4  S  t    ,  K  \  }    +  :  l    >  m  &  y  E  g    0  B  J  `    $  C  \  w    +  N  f  }    7  l  
  @  k  =    7  `         0  R  w    0  E  i  ~   }  {7  zN  yb  x   w:  va  u  t5  s~  rO  q  p2  oT  nq  m{  l  k#  jJ  ig  h  g  fA  e\  dr  c  `)  _?  ^N  ]  \6  [W  Z  Y?  X  W^  V   U/  TI  S[  Rc  Qy  P  O=  N\  Mu  L  K1  JD  Ih  G   F  E)  DQ  C  B(  A\  @  ?S  >$  =X  <   ;  :8  9C  8N  7o  6  52  4R  3d  2  1"  0;  .X  -n  ,  +  *S  )  (&  'O  &  %d  $*  #L  "t  !     )  A  f    '  ?  ^  }    1  J  _  p    T  p  %  U  '  
w  	  I  j  |      9  ]  y     -  O  c      4  H  g     G  x    g  8  s    ;  텿X  셾b  녽o  ꅽ
  酼2  腻N  煺o  慺  兹'  䅸B  ㅷZ  ⅶw    ߅&  ޅ6  ݅l  ۅ  e  p       E  a      6  N  j      /  M    (  Z     M    U  |    8  A  N  l    0  P  c  ~  }!  |9  yV  xm  w  v  uQ  tz  s&  rS  q%  pu  o  nJ  mi  lz  k  j  i;  hZ  g{  f  e2  Q  ^  v    :  [  t     2  C  e  }    "  U  
  '  X    `  -  Q       -  5  J  l    +  F  b      6  N  d  ߆v  ކ  ݆S  ܆t  ۆ(  چO  ن   ؆q  ׆"  ֆJ  Նh  Ԇ  ӆ  ҆  ц;  І`  φ}  Ά  ͆/  ̆S  څ?  مi  ؅)  ׅ|  օC  Յd  ԅ  Ӆ*  ҅7  хA  Ѕ[  υ  ΅  ͅ?  ̅X  ˅v  ʅ  Ʌ'  ȅK  Ņc  ąx  Å  6  k    9  n  A    0  `  {      *  M  o    '  C  b  u    0  G  Y     5  U    5    X    .  O  &7  |N  {b  z   y9  x`  w  v@  uu  tH  s  r9  qg  p  o  n&  m3  lV  ky  j  i3  hH  gl  f  e   c?  bV  am  `   _:  ^g  ]
  \E  [p  ZA  Y  XC  Wk  V	  U"  T3  SA  n    !  7  N    4  ]    I    ^  
  	(  D   R  wItQ8mU5vHN

u
-
			]	 U t&g:T% r?
c,b0I                                                     .l _Zend_Tool_Project_Context_Zf_ActionMethod93k iZend_Tool_Project_Context_Zf_AbstractClassFile9@j Zend_Tool_Project_Context_System_ProjectProvidersDirectory98i sZend_Tool_Project_Context_System_ProjectProfileFile96h oZend_Tool_Project_Context_System_ProjectDirectory9)g UZend_Tool_Project_Context_Repository9.f _Zend_Tool_Project_Context_Filesystem_File93e iZend_Tool_Project_Context_Filesystem_Directory92d gZend_Tool_Project_Context_Filesystem_Abstract9(c SZend_Tool_Project_Context_Exception9-b ]Zend_Tool_Project_Context_Content_Engine93a iZend_Tool_Project_Context_Content_Engine_Phtml9;` yZend_Tool_Project_Context_Content_Engine_CodeGenerator90_ cZend_Tool_Framework_System_Provider_Version90^ cZend_Tool_Framework_System_Provider_Phpinfo91] eZend_Tool_Framework_System_Provider_Manifest9/\ aZend_Tool_Framework_System_Provider_Config9([ SZend_Tool_Framework_System_Manifest9-Z ]Zend_Tool_Framework_System_Action_Delete9-Y ]Zend_Tool_Framework_System_Action_Create9!X EZend_Tool_Framework_Registry9+W YZend_Tool_Framework_Registry_Exception9+V YZend_Tool_Framework_Provider_Signature9,U [Zend_Tool_Framework_Provider_Repository9+T YZend_Tool_Framework_Provider_Exception9*S WZend_Tool_Framework_Provider_Abstract9&R OZend_Tool_Framework_Metadata_Tool9)Q UZend_Tool_Framework_Metadata_Dynamic9'P QZend_Tool_Framework_Metadata_Basic9,O [Zend_Tool_Framework_Manifest_Repository9+N YZend_Tool_Framework_Manifest_Exception91M eZend_Tool_Framework_Loader_IncludePathLoader9JL Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator9+K YZend_Tool_Framework_Loader_BasicLoader9(J SZend_Tool_Framework_Loader_Abstract9"I GZend_Tool_Framework_Exception9'H QZend_Tool_Framework_Client_Storage91G eZend_Tool_Framework_Client_Storage_Directory9(F SZend_Tool_Framework_Client_Response9DE 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator9'D QZend_Tool_Framework_Client_Request9(C SZend_Tool_Framework_Client_Manifest99B uZend_Tool_Framework_Client_Interactive_InputResponse98A sZend_Tool_Framework_Client_Interactive_InputRequest98@ sZend_Tool_Framework_Client_Interactive_InputHandler9)? UZend_Tool_Framework_Client_Exception9'> QZend_Tool_Framework_Client_Console9D= 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Indention9D< 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizer9C; Zend_Tool_Framework_Client_Console_ResponseDecorator_Blockize9F: Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter909 cZend_Tool_Framework_Client_Console_Manifest928 gZend_Tool_Framework_Client_Console_HelpSystem967 oZend_Tool_Framework_Client_Console_ArgumentParser9&6 OZend_Tool_Framework_Client_Config9(5 SZend_Tool_Framework_Client_Abstract9*4 WZend_Tool_Framework_Action_Repository9)3 UZend_Tool_Framework_Action_Exception9$2 KZend_Tool_Framework_Action_Base91 'Zend_TimeSync90 1Zend_TimeSync_Sntp9/ 9Zend_TimeSync_Protocol9. /Zend_TimeSync_Ntp9- ;Zend_TimeSync_Exception9, +Zend_Text_Table9+ 3Zend_Text_Table_Row9* ?Zend_Text_Table_Exception9&) OZend_Text_Table_Decorator_Unicode9$( KZend_Text_Table_Decorator_Ascii9' 9Zend_Text_Table_Column9& 3Zend_Text_MultiByte9% -Zend_Text_Figlet9$ AZend_Text_Figlet_Exception9# 3Zend_Text_Exception9&" OZend_Test_PHPUnit_Db_SimpleTester9,! [Zend_Test_PHPUnit_Db_Operation_Truncate9*  WZend_Test_PHPUnit_Db_Operation_Insert9- ]Zend_Test_PHPUnit_Db_Operation_DeleteAll9* WZend_Test_PHPUnit_Db_Metadata_Generic9# IZend_Test_PHPUnit_Db_Exception9, [Zend_Test_PHPUnit_Db_DataSet_QueryTable9. _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet9   J  X%WP"JuF


m
8				L	_Vh4Ec?h3}S$qI       &6 OZend_Tool_Project_Provider_Module9%5 MZend_Tool_Project_Provider_Model9(4 SZend_Tool_Project_Provider_Manifest9&3 OZend_Tool_Project_Provider_Layout9$2 KZend_Tool_Project_Provider_Form9)1 UZend_Tool_Project_Provider_Exception9'0 QZend_Tool_Project_Provider_DbTable9)/ UZend_Tool_Project_Provider_DbAdapter9*. WZend_Tool_Project_Provider_Controller9+- YZend_Tool_Project_Provider_Application9&, OZend_Tool_Project_Provider_Action9(+ SZend_Tool_Project_Provider_Abstract9* ?Zend_Tool_Project_Profile9') QZend_Tool_Project_Profile_Resource99( uZend_Tool_Project_Profile_Resource_SearchConstraints91' eZend_Tool_Project_Profile_Resource_Container9=& }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter95% mZend_Tool_Project_Profile_Iterator_ContextFilter9-$ ]Zend_Tool_Project_Profile_FileParser_Xml9(# SZend_Tool_Project_Profile_Exception9 " CZend_Tool_Project_Exception9<! {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory90  cZend_Tool_Project_Context_Zf_ViewsDirectory96 oZend_Tool_Project_Context_Zf_ViewScriptsDirectory90 cZend_Tool_Project_Context_Zf_ViewScriptFile96 oZend_Tool_Project_Context_Zf_ViewHelpersDirectory96 oZend_Tool_Project_Context_Zf_ViewFiltersDirectory9A Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory92 gZend_Tool_Project_Context_Zf_UploadsDirectory90 cZend_Tool_Project_Context_Zf_TestsDirectory97 qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile9@ Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory91 eZend_Tool_Project_Context_Zf_TestLibraryFile96 oZend_Tool_Project_Context_Zf_TestLibraryDirectory9: wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFile9: wZend_Tool_Project_Context_Zf_TestApplicationDirectory9@ Zend_Tool_Project_Context_Zf_TestApplicationControllerFile9E Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory9> Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile94 kZend_Tool_Project_Context_Zf_TemporaryDirectory93 iZend_Tool_Project_Context_Zf_SessionsDirectory98 sZend_Tool_Project_Context_Zf_SearchIndexesDirectory9< {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory98 sZend_Tool_Project_Context_Zf_PublicScriptsDirectory91
 eZend_Tool_Project_Context_Zf_PublicIndexFile97	 qZend_Tool_Project_Context_Zf_PublicImagesDirectory91 eZend_Tool_Project_Context_Zf_PublicDirectory95 mZend_Tool_Project_Context_Zf_ProjectProviderFile92 gZend_Tool_Project_Context_Zf_ModulesDirectory91 eZend_Tool_Project_Context_Zf_ModuleDirectory91 eZend_Tool_Project_Context_Zf_ModelsDirectory9+ YZend_Tool_Project_Context_Zf_ModelFile9/ aZend_Tool_Project_Context_Zf_LogsDirectory92 gZend_Tool_Project_Context_Zf_LocalesDirectory92  gZend_Tool_Project_Context_Zf_LibraryDirectory92 gZend_Tool_Project_Context_Zf_LayoutsDirectory98~ sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory92} gZend_Tool_Project_Context_Zf_LayoutScriptFile9.| _Zend_Tool_Project_Context_Zf_HtaccessFile90{ cZend_Tool_Project_Context_Zf_FormsDirectory9*z WZend_Tool_Project_Context_Zf_FormFile9/y aZend_Tool_Project_Context_Zf_DocsDirectory9-x ]Zend_Tool_Project_Context_Zf_DbTableFile92w gZend_Tool_Project_Context_Zf_DbTableDirectory9/v aZend_Tool_Project_Context_Zf_DataDirectory96u oZend_Tool_Project_Context_Zf_ControllersDirectory90t cZend_Tool_Project_Context_Zf_ControllerFile92s gZend_Tool_Project_Context_Zf_ConfigsDirectory9,r [Zend_Tool_Project_Context_Zf_ConfigFile90q cZend_Tool_Project_Context_Zf_CacheDirectory9/p aZend_Tool_Project_Context_Zf_BootstrapFile96o oZend_Tool_Project_Context_Zf_ApplicationDirectory97n qZend_Tool_Project_Context_Zf_ApplicationConfigFile9/m aZend_Tool_Project_Context_Zf_ApisDirectory9   p wO'sP-nS=,R-pL(



u
P
(					g	A	tU9pM-rM(yU0kQ2lM.zWA,pQ,                                   & =Zend_View_Helper_Doctype9!% EZend_View_Helper_DeclareVars9$ 9Zend_View_Helper_Cycle9# ?Zend_View_Helper_Currency9" =Zend_View_Helper_BaseUrl9! ;Zend_View_Helper_Action9  ?Zend_View_Helper_Abstract9 3Zend_View_Exception9 1Zend_View_Abstract9 %Zend_Version9 'Zend_Validate9 AZend_Validate_StringLength9# IZend_Validate_Sitemap_Priority9 ?Zend_Validate_Sitemap_Loc9" GZend_Validate_Sitemap_Lastmod9% MZend_Validate_Sitemap_Changefreq9 3Zend_Validate_Regex9 9Zend_Validate_PostCode9 9Zend_Validate_NotEmpty9 9Zend_Validate_LessThan9 1Zend_Validate_Isbn9 -Zend_Validate_Ip9 /Zend_Validate_Int9 7Zend_Validate_InArray9 ;Zend_Validate_Identical9 1Zend_Validate_Iban9 9Zend_Validate_Hostname9 /Zend_Validate_Hex9
 ?Zend_Validate_GreaterThan9	 3Zend_Validate_Float9! EZend_Validate_File_WordCount9 ?Zend_Validate_File_Upload9 ;Zend_Validate_File_Size9 ;Zend_Validate_File_Sha19! EZend_Validate_File_NotExists9  CZend_Validate_File_MimeType9 9Zend_Validate_File_Md59 AZend_Validate_File_IsImage9$  KZend_Validate_File_IsCompressed9! EZend_Validate_File_ImageSize9~ ;Zend_Validate_File_Hash9!} EZend_Validate_File_FilesSize9!| EZend_Validate_File_Extension9{ ?Zend_Validate_File_Exists9'z QZend_Validate_File_ExcludeMimeType9(y SZend_Validate_File_ExcludeExtension9x =Zend_Validate_File_Crc329w =Zend_Validate_File_Count9v ;Zend_Validate_Exception9u AZend_Validate_EmailAddress9t 5Zend_Validate_Digits9"s GZend_Validate_Db_RecordExists9$r KZend_Validate_Db_NoRecordExists9q ?Zend_Validate_Db_Abstract9p 1Zend_Validate_Date9o =Zend_Validate_CreditCard9n 3Zend_Validate_Ccnum9m 9Zend_Validate_Callback9l 7Zend_Validate_Between9k 7Zend_Validate_Barcode9j AZend_Validate_Barcode_Upce9i AZend_Validate_Barcode_Upca9h AZend_Validate_Barcode_Sscc9$g KZend_Validate_Barcode_Royalmail9"f GZend_Validate_Barcode_Postnet9!e EZend_Validate_Barcode_Planet9#d IZend_Validate_Barcode_Leitcode9 c CZend_Validate_Barcode_Itf149b AZend_Validate_Barcode_Issn9*a WZend_Validate_Barcode_IntelligentMail9$` KZend_Validate_Barcode_Identcode9!_ EZend_Validate_Barcode_Gtin149!^ EZend_Validate_Barcode_Gtin139!] EZend_Validate_Barcode_Gtin129\ AZend_Validate_Barcode_Ean89[ AZend_Validate_Barcode_Ean59Z AZend_Validate_Barcode_Ean29 Y CZend_Validate_Barcode_Ean189 X CZend_Validate_Barcode_Ean149 W CZend_Validate_Barcode_Ean139 V CZend_Validate_Barcode_Ean129$U KZend_Validate_Barcode_Code93ext9!T EZend_Validate_Barcode_Code939$S KZend_Validate_Barcode_Code39ext9!R EZend_Validate_Barcode_Code399,Q [Zend_Validate_Barcode_Code25interleaved9!P EZend_Validate_Barcode_Code259*O WZend_Validate_Barcode_AdapterAbstract9N 3Zend_Validate_Alpha9M 3Zend_Validate_Alnum9L 9Zend_Validate_Abstract9K Zend_Uri9J 'Zend_Uri_Http9I 1Zend_Uri_Exception9H )Zend_Translate9G 7Zend_Translate_Plural9F =Zend_Translate_Exception9E 9Zend_Translate_Adapter9!D EZend_Translate_Adapter_XmlTm9!C EZend_Translate_Adapter_Xliff9B AZend_Translate_Adapter_Tmx9A AZend_Translate_Adapter_Tbx9@ ?Zend_Translate_Adapter_Qt9? AZend_Translate_Adapter_Ini9#> IZend_Translate_Adapter_Gettext9= AZend_Translate_Adapter_Csv9!< EZend_Translate_Adapter_Array9$; KZend_Tool_Project_Provider_View9$: KZend_Tool_Project_Provider_Test9/9 aZend_Tool_Project_Provider_ProjectProvider9'8 QZend_Tool_Project_Provider_Project9'7 QZend_Tool_Project_Provider_Profile9   i  vQ-vT.~X6c@mM



k
G
				s	:	 kFrYGyO* yR7}\:xV;kJ&iN4                    9Zend_Acl_Role_Registry:% MZend_Acl_Role_Registry_Exception: /Zend_Acl_Resource: 1Zend_Acl_Exception: /Zend_XmlRpc_Value9
 =Zend_XmlRpc_Value_Struct9	 =Zend_XmlRpc_Value_String9 =Zend_XmlRpc_Value_Scalar9 7Zend_XmlRpc_Value_Nil9 ?Zend_XmlRpc_Value_Integer9  CZend_XmlRpc_Value_Exception9 =Zend_XmlRpc_Value_Double9 AZend_XmlRpc_Value_DateTime9! EZend_XmlRpc_Value_Collection9 ?Zend_XmlRpc_Value_Boolean9!  EZend_XmlRpc_Value_BigInteger9 =Zend_XmlRpc_Value_Base649~ ;Zend_XmlRpc_Value_Array9} 1Zend_XmlRpc_Server9| ?Zend_XmlRpc_Server_System9{ =Zend_XmlRpc_Server_Fault9!z EZend_XmlRpc_Server_Exception9y =Zend_XmlRpc_Server_Cache9x 5Zend_XmlRpc_Response9w ?Zend_XmlRpc_Response_Http9v 3Zend_XmlRpc_Request9u ?Zend_XmlRpc_Request_Stdin9t =Zend_XmlRpc_Request_Http9$s KZend_XmlRpc_Generator_XmlWriter9,r [Zend_XmlRpc_Generator_GeneratorAbstract9&q OZend_XmlRpc_Generator_DomDocument9p /Zend_XmlRpc_Fault9o 7Zend_XmlRpc_Exception9n 1Zend_XmlRpc_Client9#m IZend_XmlRpc_Client_ServerProxy9+l YZend_XmlRpc_Client_ServerIntrospection9+k YZend_XmlRpc_Client_IntrospectException9%j MZend_XmlRpc_Client_HttpException9&i OZend_XmlRpc_Client_FaultException9!h EZend_XmlRpc_Client_Exception9&g OZend_Wildfire_Protocol_JsonStream9!f EZend_Wildfire_Plugin_FirePhp9.e _Zend_Wildfire_Plugin_FirePhp_TableMessage9)d UZend_Wildfire_Plugin_FirePhp_Message9c ;Zend_Wildfire_Exception9&b OZend_Wildfire_Channel_HttpHeaders9a Zend_View9` -Zend_View_Stream9_ AZend_View_Helper_UserAgent9^ 5Zend_View_Helper_Url9] AZend_View_Helper_Translate9\ =Zend_View_Helper_TinySrc9[ AZend_View_Helper_ServerUrl9)Z UZend_View_Helper_RenderToPlaceholder9!Y EZend_View_Helper_Placeholder9*X WZend_View_Helper_Placeholder_Registry94W kZend_View_Helper_Placeholder_Registry_Exception9+V YZend_View_Helper_Placeholder_Container96U oZend_View_Helper_Placeholder_Container_Standalone95T mZend_View_Helper_Placeholder_Container_Exception94S kZend_View_Helper_Placeholder_Container_Abstract9!R EZend_View_Helper_PartialLoop9Q =Zend_View_Helper_Partial9'P QZend_View_Helper_Partial_Exception9'O QZend_View_Helper_PaginationControl9 N CZend_View_Helper_Navigation9(M SZend_View_Helper_Navigation_Sitemap9%L MZend_View_Helper_Navigation_Menu9&K OZend_View_Helper_Navigation_Links9/J aZend_View_Helper_Navigation_HelperAbstract9,I [Zend_View_Helper_Navigation_Breadcrumbs9H ;Zend_View_Helper_Layout9G 7Zend_View_Helper_Json9"F GZend_View_Helper_InlineScript9#E IZend_View_Helper_HtmlQuicktime9D ?Zend_View_Helper_HtmlPage9 C CZend_View_Helper_HtmlObject9B ?Zend_View_Helper_HtmlList9A AZend_View_Helper_HtmlFlash9!@ EZend_View_Helper_HtmlElement9? AZend_View_Helper_HeadTitle9> AZend_View_Helper_HeadStyle9 = CZend_View_Helper_HeadScript9< ?Zend_View_Helper_HeadMeta9; ?Zend_View_Helper_HeadLink9: ?Zend_View_Helper_Gravatar9"9 GZend_View_Helper_FormTextarea98 ?Zend_View_Helper_FormText9 7 CZend_View_Helper_FormSubmit9 6 CZend_View_Helper_FormSelect95 AZend_View_Helper_FormReset94 AZend_View_Helper_FormRadio9"3 GZend_View_Helper_FormPassword92 ?Zend_View_Helper_FormNote9'1 QZend_View_Helper_FormMultiCheckbox90 AZend_View_Helper_FormLabel9/ AZend_View_Helper_FormImage9 . CZend_View_Helper_FormHidden9- ?Zend_View_Helper_FormFile9 , CZend_View_Helper_FormErrors9!+ EZend_View_Helper_FormElement9"* GZend_View_Helper_FormCheckbox9 ) CZend_View_Helper_FormButton9( 7Zend_View_Helper_Form9' ?Zend_View_Helper_Fieldset9   X  {E!Q* k?}BJ


t
B
			~	P	%~HmG&~T# qGtLUg9U.         CZend_Http_UserAgent_Storage:) UZend_Http_UserAgent_Features_Adapter: AZend_Http_UserAgent_Device:$ KZend_Http_Client_Adapter_Stream:' QZend_Http_Client_Adapter_Interface: AZend_Gdata_App_MediaSource:. _Zend_Form_Decorator_Marker_File_Interface:" GZend_Form_Decorator_Interface:  7Zend_Filter_Interface:" GZend_Filter_Encrypt_Interface:+~ YZend_Filter_Compress_CompressInterface:0} cZend_Feed_Writer_Renderer_RendererInterface:1| eZend_Feed_Writer_Extension_RendererInterface:#{ IZend_Feed_Reader_FeedInterface:$z KZend_Feed_Reader_EntryInterface:7y qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface:-x ]Zend_Feed_Pubsubhubbub_CallbackInterface: w CZend_Feed_Builder_Interface: v CZend_Db_Statement_Interface:$u KZend_Currency_CurrencyInterface:)t UZend_Crypt_Math_BigInteger_Interface:+s YZend_Controller_Router_Route_Interface:%r MZend_Controller_Router_Interface:)q UZend_Controller_Dispatcher_Interface:%p MZend_Controller_Action_Interface:&o OZend_Cloud_StorageService_Adapter:$n KZend_Cloud_QueueService_Adapter:,m [Zend_Cloud_DocumentService_QueryAdapter:'l QZend_Cloud_DocumentService_Adapter:k 5Zend_Captcha_Adapter:!j EZend_Cache_Backend_Interface:)i UZend_Cache_Backend_ExtendedInterface: h CZend_Auth_Storage_Interface: g CZend_Auth_Adapter_Interface:.f _Zend_Auth_Adapter_Http_Resolver_Interface:'e QZend_Application_Resource_Resource:4d kZend_Application_Bootstrap_ResourceBootstrapper:,c [Zend_Application_Bootstrap_Bootstrapper:b ;Zend_Acl_Role_Interface: a CZend_Acl_Resource_Interface:` ?Zend_Acl_Assert_Interface:#_ IZend_Wildfire_Plugin_Interface9$^ KZend_Wildfire_Channel_Interface9] 3Zend_View_Interface9'\ QZend_View_Helper_Navigation_Helper9[ AZend_View_Helper_Interface9Z ;Zend_Validate_Interface9+Y YZend_Validate_Barcode_AdapterInterface93X iZend_Tool_Project_Profile_FileParser_Interface9:W wZend_Tool_Project_Context_System_TopLevelRestrictable95V mZend_Tool_Project_Context_System_NotOverwritable9/U aZend_Tool_Project_Context_System_Interface9(T SZend_Tool_Project_Context_Interface9+S YZend_Tool_Framework_Registry_Interface92R gZend_Tool_Framework_Registry_EnabledInterface9-Q ]Zend_Tool_Framework_Provider_Pretendable9+P YZend_Tool_Framework_Provider_Interface9.O _Zend_Tool_Framework_Provider_Interactable9/N aZend_Tool_Framework_Provider_Initializable9;M yZend_Tool_Framework_Provider_DocblockManifestInterface9+L YZend_Tool_Framework_Metadata_Interface9.K _Zend_Tool_Framework_Metadata_Attributable96J oZend_Tool_Framework_Manifest_ProviderManifestable96I oZend_Tool_Framework_Manifest_MetadataManifestable9+H YZend_Tool_Framework_Manifest_Interface9+G YZend_Tool_Framework_Manifest_Indexable94F kZend_Tool_Framework_Manifest_ActionManifestable9)E UZend_Tool_Framework_Loader_Interface98D sZend_Tool_Framework_Client_Storage_AdapterInterface9DC 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface9;B yZend_Tool_Framework_Client_Interactive_OutputInterface9:A wZend_Tool_Framework_Client_Interactive_InputInterface9)@ UZend_Tool_Framework_Action_Interface9(? SZend_Text_Table_Decorator_Interface9> /Zend_Tag_Taggable9&= OZend_Soap_Wsdl_Strategy_Interface9%< MZend_Session_Validator_Interface9'; QZend_Session_SaveHandler_Interface9$: KZend_Service_ShortUrl_Shortener9I9 Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Interface98 7Zend_Server_Interface9-7 ]Zend_Serializer_Adapter_AdapterInterface946 kZend_Search_Lucene_Search_Highlighter_Interface9!5 EZend_Search_Lucene_Interface934 iZend_Search_Lucene_Index_TermsStream_Interface9$3 KZend_Queue_Stomp_FrameInterface902 cZend_Queue_Stomp_Client_ConnectionInterface9(1 SZend_Queue_Adapter_AdapterInterface9   h  vW<!]:tR4dAX(



z
E
				q	L	%uO(tK!gF"bA%mI&qP.pM)uS$                      w %Zend_Barcode:v ?Zend_Barcode_Renderer_Svg:+u YZend_Barcode_Renderer_RendererAbstract:t ?Zend_Barcode_Renderer_Pdf: s CZend_Barcode_Renderer_Image:$r KZend_Barcode_Renderer_Exception:q =Zend_Barcode_Object_Upce:p =Zend_Barcode_Object_Upca:"o GZend_Barcode_Object_Royalmail: n CZend_Barcode_Object_Postnet:m AZend_Barcode_Object_Planet:'l QZend_Barcode_Object_ObjectAbstract:!k EZend_Barcode_Object_Leitcode:j ?Zend_Barcode_Object_Itf14:"i GZend_Barcode_Object_Identcode:"h GZend_Barcode_Object_Exception:g ?Zend_Barcode_Object_Error:f =Zend_Barcode_Object_Ean8:e =Zend_Barcode_Object_Ean5:d =Zend_Barcode_Object_Ean2:c ?Zend_Barcode_Object_Ean13:b AZend_Barcode_Object_Code39:*a WZend_Barcode_Object_Code25interleaved:` AZend_Barcode_Object_Code25: _ CZend_Barcode_Object_Code128:^ 9Zend_Barcode_Exception:] Zend_Auth:\ ?Zend_Auth_Storage_Session:$[ KZend_Auth_Storage_NonPersistent: Z CZend_Auth_Storage_Exception:Y -Zend_Auth_Result:X 3Zend_Auth_Exception:W =Zend_Auth_Adapter_OpenId:V 9Zend_Auth_Adapter_Ldap:U AZend_Auth_Adapter_InfoCard:T 9Zend_Auth_Adapter_Http:)S UZend_Auth_Adapter_Http_Resolver_File:.R _Zend_Auth_Adapter_Http_Resolver_Exception: Q CZend_Auth_Adapter_Exception:P =Zend_Auth_Adapter_Digest:O ?Zend_Auth_Adapter_DbTable:N -Zend_Application:#M IZend_Application_Resource_View:(L SZend_Application_Resource_UserAgent:(K SZend_Application_Resource_Translate:&J OZend_Application_Resource_Session:%I MZend_Application_Resource_Router:/H aZend_Application_Resource_ResourceAbstract:)G UZend_Application_Resource_Navigation:&F OZend_Application_Resource_Multidb:&E OZend_Application_Resource_Modules:#D IZend_Application_Resource_Mail:"C GZend_Application_Resource_Log:%B MZend_Application_Resource_Locale:%A MZend_Application_Resource_Layout:.@ _Zend_Application_Resource_Frontcontroller:(? SZend_Application_Resource_Exception:#> IZend_Application_Resource_Dojo:!= EZend_Application_Resource_Db:+< YZend_Application_Resource_Cachemanager:&; OZend_Application_Module_Bootstrap:': QZend_Application_Module_Autoloader:9 AZend_Application_Exception:)8 UZend_Application_Bootstrap_Exception:17 eZend_Application_Bootstrap_BootstrapAbstract:)6 UZend_Application_Bootstrap_Bootstrap:5 ?Zend_Amf_Value_TraitsInfo:-4 ]Zend_Amf_Value_Messaging_RemotingMessage:*3 WZend_Amf_Value_Messaging_ErrorMessage:,2 [Zend_Amf_Value_Messaging_CommandMessage:*1 WZend_Amf_Value_Messaging_AsyncMessage:-0 ]Zend_Amf_Value_Messaging_ArrayCollection:0/ cZend_Amf_Value_Messaging_AcknowledgeMessage:-. ]Zend_Amf_Value_Messaging_AbstractMessage:!- EZend_Amf_Value_MessageHeader:, AZend_Amf_Value_MessageBody:+ =Zend_Amf_Value_ByteArray:* AZend_Amf_Util_BinaryStream:) +Zend_Amf_Server:( ?Zend_Amf_Server_Exception:' /Zend_Amf_Response:& 9Zend_Amf_Response_Http:% -Zend_Amf_Request:$ 7Zend_Amf_Request_Http:# ?Zend_Amf_Parse_TypeLoader:" ?Zend_Amf_Parse_Serializer:#! IZend_Amf_Parse_Resource_Stream:(  SZend_Amf_Parse_Resource_MysqlResult:) UZend_Amf_Parse_Resource_MysqliResult:  CZend_Amf_Parse_OutputStream: AZend_Amf_Parse_InputStream:  CZend_Amf_Parse_Deserializer:# IZend_Amf_Parse_Amf3_Serializer:% MZend_Amf_Parse_Amf3_Deserializer:# IZend_Amf_Parse_Amf0_Serializer:% MZend_Amf_Parse_Amf0_Deserializer: 1Zend_Amf_Exception: 1Zend_Amf_Constants: 9Zend_Amf_Auth_Abstract:  CZend_Amf_Adobe_Introspector: AZend_Amf_Adobe_DbInspector: 3Zend_Amf_Adobe_Auth: Zend_Acl: 'Zend_Acl_Role:   c  tO-X-gE$sY:l2



\
-
 				]	%h@X!Z6xL$xRx`G&eM4 T"                         8Z sZend_Controller_Action_Helper_AutoComplete_Abstract:.Y _Zend_Controller_Action_Helper_AjaxContext:.X _Zend_Controller_Action_Helper_ActionStack:+W YZend_Controller_Action_Helper_Abstract:%V MZend_Controller_Action_Exception:U 3Zend_Console_Getopt:"T GZend_Console_Getopt_Exception:S #Zend_Config:R -Zend_Config_Yaml:Q +Zend_Config_Xml:P 1Zend_Config_Writer:O ;Zend_Config_Writer_Yaml:N 9Zend_Config_Writer_Xml:M ;Zend_Config_Writer_Json:L 9Zend_Config_Writer_Ini:$K KZend_Config_Writer_FileAbstract:J =Zend_Config_Writer_Array:I -Zend_Config_Json:H +Zend_Config_Ini:G 7Zend_Config_Exception:$F KZend_CodeGenerator_Php_Property:1E eZend_CodeGenerator_Php_Property_DefaultValue:%D MZend_CodeGenerator_Php_Parameter:2C gZend_CodeGenerator_Php_Parameter_DefaultValue:"B GZend_CodeGenerator_Php_Method:,A [Zend_CodeGenerator_Php_Member_Container:+@ YZend_CodeGenerator_Php_Member_Abstract: ? CZend_CodeGenerator_Php_File:%> MZend_CodeGenerator_Php_Exception:$= KZend_CodeGenerator_Php_Docblock:(< SZend_CodeGenerator_Php_Docblock_Tag:/; aZend_CodeGenerator_Php_Docblock_Tag_Return:.: _Zend_CodeGenerator_Php_Docblock_Tag_Param:09 cZend_CodeGenerator_Php_Docblock_Tag_License:!8 EZend_CodeGenerator_Php_Class: 7 CZend_CodeGenerator_Php_Body:$6 KZend_CodeGenerator_Php_Abstract:!5 EZend_CodeGenerator_Exception: 4 CZend_CodeGenerator_Abstract:&3 OZend_Cloud_StorageService_Factory:(2 SZend_Cloud_StorageService_Exception:31 iZend_Cloud_StorageService_Adapter_WindowsAzure:)0 UZend_Cloud_StorageService_Adapter_S3:// aZend_Cloud_StorageService_Adapter_Nirvanix:1. eZend_Cloud_StorageService_Adapter_FileSystem:'- QZend_Cloud_QueueService_MessageSet:$, KZend_Cloud_QueueService_Message:$+ KZend_Cloud_QueueService_Factory:&* OZend_Cloud_QueueService_Exception:.) _Zend_Cloud_QueueService_Adapter_ZendQueue:1( eZend_Cloud_QueueService_Adapter_WindowsAzure:(' SZend_Cloud_QueueService_Adapter_Sqs:4& kZend_Cloud_QueueService_Adapter_AbstractAdapter:.% _Zend_Cloud_OperationNotAvailableException:$ 5Zend_Cloud_Exception:%# MZend_Cloud_DocumentService_Query:'" QZend_Cloud_DocumentService_Factory:)! UZend_Cloud_DocumentService_Exception:+  YZend_Cloud_DocumentService_DocumentSet:( SZend_Cloud_DocumentService_Document:4 kZend_Cloud_DocumentService_Adapter_WindowsAzure:: wZend_Cloud_DocumentService_Adapter_WindowsAzure_Query:0 cZend_Cloud_DocumentService_Adapter_SimpleDb:6 oZend_Cloud_DocumentService_Adapter_SimpleDb_Query:7 qZend_Cloud_DocumentService_Adapter_AbstractAdapter: AZend_Cloud_AbstractFactory: /Zend_Captcha_Word: 9Zend_Captcha_ReCaptcha: 1Zend_Captcha_Image: 3Zend_Captcha_Figlet: 9Zend_Captcha_Exception: /Zend_Captcha_Dumb: /Zend_Captcha_Base: !Zend_Cache: 1Zend_Cache_Manager: =Zend_Cache_Frontend_Page: AZend_Cache_Frontend_Output:! EZend_Cache_Frontend_Function: =Zend_Cache_Frontend_File: ?Zend_Cache_Frontend_Class: 
 CZend_Cache_Frontend_Capture:	 5Zend_Cache_Exception: +Zend_Cache_Core: 1Zend_Cache_Backend:" GZend_Cache_Backend_ZendServer:( SZend_Cache_Backend_ZendServer_ShMem:' QZend_Cache_Backend_ZendServer_Disk:$ KZend_Cache_Backend_ZendPlatform: ?Zend_Cache_Backend_Xcache:  CZend_Cache_Backend_WinCache:!  EZend_Cache_Backend_TwoLevels: ;Zend_Cache_Backend_Test:~ ?Zend_Cache_Backend_Static:} ?Zend_Cache_Backend_Sqlite:!| EZend_Cache_Backend_Memcached:${ KZend_Cache_Backend_Libmemcached:z ;Zend_Cache_Backend_File:!y EZend_Cache_Backend_BlackHole:x 9Zend_Cache_Backend_Apc:   h  ])n;]1xL"S,



^
6
				_	3	kN,sQ9nX?"oF'rR0aG2~V8|Z8                        'B QZend_Db_Statement_Sqlsrv_Exception:A 7Zend_Db_Statement_Pdo:@ ?Zend_Db_Statement_Pdo_Oci:? ?Zend_Db_Statement_Pdo_Ibm:> =Zend_Db_Statement_Oracle:'= QZend_Db_Statement_Oracle_Exception:< =Zend_Db_Statement_Mysqli:'; QZend_Db_Statement_Mysqli_Exception: : CZend_Db_Statement_Exception:9 7Zend_Db_Statement_Db2:$8 KZend_Db_Statement_Db2_Exception:7 )Zend_Db_Select:6 =Zend_Db_Select_Exception:5 -Zend_Db_Profiler:4 9Zend_Db_Profiler_Query:3 =Zend_Db_Profiler_Firebug:2 AZend_Db_Profiler_Exception:1 %Zend_Db_Expr:0 /Zend_Db_Exception:/ 9Zend_Db_Adapter_Sqlsrv:%. MZend_Db_Adapter_Sqlsrv_Exception:- AZend_Db_Adapter_Pdo_Sqlite:, ?Zend_Db_Adapter_Pdo_Pgsql:+ ;Zend_Db_Adapter_Pdo_Oci:* ?Zend_Db_Adapter_Pdo_Mysql:) ?Zend_Db_Adapter_Pdo_Mssql:( ;Zend_Db_Adapter_Pdo_Ibm: ' CZend_Db_Adapter_Pdo_Ibm_Ids: & CZend_Db_Adapter_Pdo_Ibm_Db2:!% EZend_Db_Adapter_Pdo_Abstract:$ 9Zend_Db_Adapter_Oracle:%# MZend_Db_Adapter_Oracle_Exception:" 9Zend_Db_Adapter_Mysqli:%! MZend_Db_Adapter_Mysqli_Exception:  ?Zend_Db_Adapter_Exception: 3Zend_Db_Adapter_Db2:" GZend_Db_Adapter_Db2_Exception: =Zend_Db_Adapter_Abstract: Zend_Date: 3Zend_Date_Exception: 5Zend_Date_DateObject: -Zend_Date_Cities: 'Zend_Currency: ;Zend_Currency_Exception: !Zend_Crypt: )Zend_Crypt_Rsa: 1Zend_Crypt_Rsa_Key: ?Zend_Crypt_Rsa_Key_Public: AZend_Crypt_Rsa_Key_Private: =Zend_Crypt_Rsa_Exception: +Zend_Crypt_Math: ?Zend_Crypt_Math_Exception: AZend_Crypt_Math_BigInteger:# IZend_Crypt_Math_BigInteger_Gmp:) UZend_Crypt_Math_BigInteger_Exception:& OZend_Crypt_Math_BigInteger_Bcmath:
 +Zend_Crypt_Hmac:	 ?Zend_Crypt_Hmac_Exception: 5Zend_Crypt_Exception: =Zend_Crypt_DiffieHellman:' QZend_Crypt_DiffieHellman_Exception:! EZend_Controller_Router_Route:( SZend_Controller_Router_Route_Static:' QZend_Controller_Router_Route_Regex:( SZend_Controller_Router_Route_Module:* WZend_Controller_Router_Route_Hostname:'  QZend_Controller_Router_Route_Chain:* WZend_Controller_Router_Route_Abstract:#~ IZend_Controller_Router_Rewrite:%} MZend_Controller_Router_Exception:$| KZend_Controller_Router_Abstract:*{ WZend_Controller_Response_HttpTestCase:"z GZend_Controller_Response_Http:'y QZend_Controller_Response_Exception:!x EZend_Controller_Response_Cli:&w OZend_Controller_Response_Abstract:#v IZend_Controller_Request_Simple:)u UZend_Controller_Request_HttpTestCase:!t EZend_Controller_Request_Http:&s OZend_Controller_Request_Exception:&r OZend_Controller_Request_Apache404:%q MZend_Controller_Request_Abstract:&p OZend_Controller_Plugin_PutHandler:(o SZend_Controller_Plugin_ErrorHandler:"n GZend_Controller_Plugin_Broker:'m QZend_Controller_Plugin_ActionStack:$l KZend_Controller_Plugin_Abstract:k 7Zend_Controller_Front:j ?Zend_Controller_Exception:(i SZend_Controller_Dispatcher_Standard:)h UZend_Controller_Dispatcher_Exception:(g SZend_Controller_Dispatcher_Abstract:f 9Zend_Controller_Action:(e SZend_Controller_Action_HelperBroker:6d oZend_Controller_Action_HelperBroker_PriorityStack:/c aZend_Controller_Action_Helper_ViewRenderer:&b OZend_Controller_Action_Helper_Url:-a ]Zend_Controller_Action_Helper_Redirector:'` QZend_Controller_Action_Helper_Json:1_ eZend_Controller_Action_Helper_FlashMessenger:0^ cZend_Controller_Action_Helper_ContextSwitch:(] SZend_Controller_Action_Helper_Cache:<\ {Zend_Controller_Action_Helper_AutoCompleteScriptaculous:3[ iZend_Controller_Action_Helper_AutoCompleteDojo:   e  eBsV@0 j9S#[,



]
-
 			y	K	%N l>sI~Y+S)}R' SA&gC                ' /Zend_Feed_Builder:& =Zend_Feed_Builder_Header:$% KZend_Feed_Builder_Header_Itunes: $ CZend_Feed_Builder_Exception:# ;Zend_Feed_Builder_Entry:" )Zend_Feed_Atom:! 1Zend_Feed_Abstract:  )Zend_Exception: )Zend_Dom_Query: 7Zend_Dom_Query_Result: =Zend_Dom_Query_Css2Xpath: 1Zend_Dom_Exception: Zend_Dojo:) UZend_Dojo_View_Helper_VerticalSlider:, [Zend_Dojo_View_Helper_ValidationTextBox:& OZend_Dojo_View_Helper_TimeTextBox:" GZend_Dojo_View_Helper_TextBox:# IZend_Dojo_View_Helper_Textarea:' QZend_Dojo_View_Helper_TabContainer:' QZend_Dojo_View_Helper_SubmitButton:) UZend_Dojo_View_Helper_StackContainer:) UZend_Dojo_View_Helper_SplitContainer:! EZend_Dojo_View_Helper_Slider:) UZend_Dojo_View_Helper_SimpleTextarea:& OZend_Dojo_View_Helper_RadioButton:* WZend_Dojo_View_Helper_PasswordTextBox:( SZend_Dojo_View_Helper_NumberTextBox:( SZend_Dojo_View_Helper_NumberSpinner:+ YZend_Dojo_View_Helper_HorizontalSlider:
 AZend_Dojo_View_Helper_Form:*	 WZend_Dojo_View_Helper_FilteringSelect:! EZend_Dojo_View_Helper_Editor: AZend_Dojo_View_Helper_Dojo:) UZend_Dojo_View_Helper_Dojo_Container:) UZend_Dojo_View_Helper_DijitContainer:  CZend_Dojo_View_Helper_Dijit:& OZend_Dojo_View_Helper_DateTextBox:& OZend_Dojo_View_Helper_CustomDijit:* WZend_Dojo_View_Helper_CurrencyTextBox:&  OZend_Dojo_View_Helper_ContentPane:# IZend_Dojo_View_Helper_ComboBox:#~ IZend_Dojo_View_Helper_CheckBox:!} EZend_Dojo_View_Helper_Button:*| WZend_Dojo_View_Helper_BorderContainer:({ SZend_Dojo_View_Helper_AccordionPane:-z ]Zend_Dojo_View_Helper_AccordionContainer:y =Zend_Dojo_View_Exception:x )Zend_Dojo_Form:w 9Zend_Dojo_Form_SubForm:*v WZend_Dojo_Form_Element_VerticalSlider:-u ]Zend_Dojo_Form_Element_ValidationTextBox:'t QZend_Dojo_Form_Element_TimeTextBox:#s IZend_Dojo_Form_Element_TextBox:$r KZend_Dojo_Form_Element_Textarea:(q SZend_Dojo_Form_Element_SubmitButton:"p GZend_Dojo_Form_Element_Slider:*o WZend_Dojo_Form_Element_SimpleTextarea:'n QZend_Dojo_Form_Element_RadioButton:+m YZend_Dojo_Form_Element_PasswordTextBox:)l UZend_Dojo_Form_Element_NumberTextBox:)k UZend_Dojo_Form_Element_NumberSpinner:,j [Zend_Dojo_Form_Element_HorizontalSlider:+i YZend_Dojo_Form_Element_FilteringSelect:"h GZend_Dojo_Form_Element_Editor:&g OZend_Dojo_Form_Element_DijitMulti:!f EZend_Dojo_Form_Element_Dijit:'e QZend_Dojo_Form_Element_DateTextBox:+d YZend_Dojo_Form_Element_CurrencyTextBox:$c KZend_Dojo_Form_Element_ComboBox:$b KZend_Dojo_Form_Element_CheckBox:"a GZend_Dojo_Form_Element_Button: ` CZend_Dojo_Form_DisplayGroup:*_ WZend_Dojo_Form_Decorator_TabContainer:,^ [Zend_Dojo_Form_Decorator_StackContainer:,] [Zend_Dojo_Form_Decorator_SplitContainer:'\ QZend_Dojo_Form_Decorator_DijitForm:*[ WZend_Dojo_Form_Decorator_DijitElement:,Z [Zend_Dojo_Form_Decorator_DijitContainer:)Y UZend_Dojo_Form_Decorator_ContentPane:-X ]Zend_Dojo_Form_Decorator_BorderContainer:+W YZend_Dojo_Form_Decorator_AccordionPane:0V cZend_Dojo_Form_Decorator_AccordionContainer:U 3Zend_Dojo_Exception:T )Zend_Dojo_Data:S 5Zend_Dojo_BuildLayer:R !Zend_Debug:Q Zend_Db:P 'Zend_Db_Table:O 5Zend_Db_Table_Select:#N IZend_Db_Table_Select_Exception:M 5Zend_Db_Table_Rowset:#L IZend_Db_Table_Rowset_Exception:"K GZend_Db_Table_Rowset_Abstract:J /Zend_Db_Table_Row: I CZend_Db_Table_Row_Exception:H AZend_Db_Table_Row_Abstract:G ;Zend_Db_Table_Exception:F =Zend_Db_Table_Definition:E 9Zend_Db_Table_Abstract:D /Zend_Db_Statement:C =Zend_Db_Statement_Sqlsrv:   ^  p@]* R.
e4\+



k
7
				a	;		q;X)LR%a6d?$
yK+
kO4                     CZend_Filter_Encrypt_Openssl: AZend_Filter_Encrypt_Mcrypt: +Zend_Filter_Dir: 1Zend_Filter_Digits: 3Zend_Filter_Decrypt:  9Zend_Filter_Decompress: 5Zend_Filter_Compress:~ =Zend_Filter_Compress_Zip:} =Zend_Filter_Compress_Tar:| =Zend_Filter_Compress_Rar:{ =Zend_Filter_Compress_Lzf:z ;Zend_Filter_Compress_Gz:*y WZend_Filter_Compress_CompressAbstract:x =Zend_Filter_Compress_Bz2:w 5Zend_Filter_Callback:v 3Zend_Filter_Boolean:u 5Zend_Filter_BaseName:t /Zend_Filter_Alpha:s /Zend_Filter_Alnum:r 1Zend_File_Transfer:!q EZend_File_Transfer_Exception:$p KZend_File_Transfer_Adapter_Http:(o SZend_File_Transfer_Adapter_Abstract:n Zend_Feed:m -Zend_Feed_Writer:l ;Zend_Feed_Writer_Source:/k aZend_Feed_Writer_Renderer_RendererAbstract:'j QZend_Feed_Writer_Renderer_Feed_Rss:(i SZend_Feed_Writer_Renderer_Feed_Atom:/h aZend_Feed_Writer_Renderer_Feed_Atom_Source:5g mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract:(f SZend_Feed_Writer_Renderer_Entry_Rss:)e UZend_Feed_Writer_Renderer_Entry_Atom:1d eZend_Feed_Writer_Renderer_Entry_Atom_Deleted:c 7Zend_Feed_Writer_Feed:'b QZend_Feed_Writer_Feed_FeedAbstract:<a {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry:8` sZend_Feed_Writer_Extension_Threading_Renderer_Entry:4_ kZend_Feed_Writer_Extension_Slash_Renderer_Entry:0^ cZend_Feed_Writer_Extension_RendererAbstract:4] kZend_Feed_Writer_Extension_ITunes_Renderer_Feed:5\ mZend_Feed_Writer_Extension_ITunes_Renderer_Entry:+[ YZend_Feed_Writer_Extension_ITunes_Feed:,Z [Zend_Feed_Writer_Extension_ITunes_Entry:8Y sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed:9X uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry:6W oZend_Feed_Writer_Extension_Content_Renderer_Entry:2V gZend_Feed_Writer_Extension_Atom_Renderer_Feed:6U oZend_Feed_Writer_Exception_InvalidMethodException:T 9Zend_Feed_Writer_Entry:S =Zend_Feed_Writer_Deleted:R 'Zend_Feed_Rss:Q -Zend_Feed_Reader:P =Zend_Feed_Reader_FeedSet:"O GZend_Feed_Reader_FeedAbstract:N ?Zend_Feed_Reader_Feed_Rss:M AZend_Feed_Reader_Feed_Atom:&L OZend_Feed_Reader_Feed_Atom_Source:3K iZend_Feed_Reader_Extension_WellFormedWeb_Entry:,J [Zend_Feed_Reader_Extension_Thread_Entry:0I cZend_Feed_Reader_Extension_Syndication_Feed:+H YZend_Feed_Reader_Extension_Slash_Entry:,G [Zend_Feed_Reader_Extension_Podcast_Feed:-F ]Zend_Feed_Reader_Extension_Podcast_Entry:,E [Zend_Feed_Reader_Extension_FeedAbstract:-D ]Zend_Feed_Reader_Extension_EntryAbstract:/C aZend_Feed_Reader_Extension_DublinCore_Feed:0B cZend_Feed_Reader_Extension_DublinCore_Entry:4A kZend_Feed_Reader_Extension_CreativeCommons_Feed:5@ mZend_Feed_Reader_Extension_CreativeCommons_Entry:-? ]Zend_Feed_Reader_Extension_Content_Entry:)> UZend_Feed_Reader_Extension_Atom_Feed:*= WZend_Feed_Reader_Extension_Atom_Entry:#< IZend_Feed_Reader_EntryAbstract:; AZend_Feed_Reader_Entry_Rss: : CZend_Feed_Reader_Entry_Atom: 9 CZend_Feed_Reader_Collection:38 iZend_Feed_Reader_Collection_CollectionAbstract:)7 UZend_Feed_Reader_Collection_Category:'6 QZend_Feed_Reader_Collection_Author:5 9Zend_Feed_Pubsubhubbub:&4 OZend_Feed_Pubsubhubbub_Subscriber:/3 aZend_Feed_Pubsubhubbub_Subscriber_Callback:%2 MZend_Feed_Pubsubhubbub_Publisher:.1 _Zend_Feed_Pubsubhubbub_Model_Subscription:/0 aZend_Feed_Pubsubhubbub_Model_ModelAbstract:(/ SZend_Feed_Pubsubhubbub_HttpResponse:%. MZend_Feed_Pubsubhubbub_Exception:,- [Zend_Feed_Pubsubhubbub_CallbackAbstract:, 3Zend_Feed_Exception:+ 3Zend_Feed_Entry_Rss:* 5Zend_Feed_Entry_Atom:) =Zend_Feed_Entry_Abstract:( /Zend_Feed_Element:   j  aAY@ ~`7	^2~T%



p
L
$					m	L	#hDqM.`=yY?#	a1xK"X2tI!                              $o KZend_Gdata_App_Extension_Source:$n KZend_Gdata_App_Extension_Rights:'m QZend_Gdata_App_Extension_Published:$l KZend_Gdata_App_Extension_Person:"k GZend_Gdata_App_Extension_Name:"j GZend_Gdata_App_Extension_Logo:"i GZend_Gdata_App_Extension_Link: h CZend_Gdata_App_Extension_Id:"g GZend_Gdata_App_Extension_Icon:'f QZend_Gdata_App_Extension_Generator:#e IZend_Gdata_App_Extension_Email:%d MZend_Gdata_App_Extension_Element:$c KZend_Gdata_App_Extension_Edited:#b IZend_Gdata_App_Extension_Draft:%a MZend_Gdata_App_Extension_Control:)` UZend_Gdata_App_Extension_Contributor:%_ MZend_Gdata_App_Extension_Content:&^ OZend_Gdata_App_Extension_Category:$] KZend_Gdata_App_Extension_Author:\ =Zend_Gdata_App_Exception:[ 5Zend_Gdata_App_Entry:,Z [Zend_Gdata_App_CaptchaRequiredException:#Y IZend_Gdata_App_BaseMediaSource:X 3Zend_Gdata_App_Base:*W WZend_Gdata_App_BadMethodCallException:!V EZend_Gdata_App_AuthException:U Zend_Form:T /Zend_Form_SubForm:S 3Zend_Form_Exception:R /Zend_Form_Element:Q ;Zend_Form_Element_Xhtml:P AZend_Form_Element_Textarea:O 9Zend_Form_Element_Text:N =Zend_Form_Element_Submit:M =Zend_Form_Element_Select:L ;Zend_Form_Element_Reset:K ;Zend_Form_Element_Radio:J AZend_Form_Element_Password:"I GZend_Form_Element_Multiselect:$H KZend_Form_Element_MultiCheckbox:G ;Zend_Form_Element_Multi:F ;Zend_Form_Element_Image:E =Zend_Form_Element_Hidden:D 9Zend_Form_Element_Hash:C 9Zend_Form_Element_File: B CZend_Form_Element_Exception:A AZend_Form_Element_Checkbox:@ ?Zend_Form_Element_Captcha:? =Zend_Form_Element_Button:> 9Zend_Form_DisplayGroup:#= IZend_Form_Decorator_ViewScript:#< IZend_Form_Decorator_ViewHelper: ; CZend_Form_Decorator_Tooltip:(: SZend_Form_Decorator_PrepareElements:9 ?Zend_Form_Decorator_Label:8 ?Zend_Form_Decorator_Image: 7 CZend_Form_Decorator_HtmlTag:#6 IZend_Form_Decorator_FormErrors:%5 MZend_Form_Decorator_FormElements:4 =Zend_Form_Decorator_Form:3 =Zend_Form_Decorator_File:!2 EZend_Form_Decorator_Fieldset:"1 GZend_Form_Decorator_Exception:0 AZend_Form_Decorator_Errors:$/ KZend_Form_Decorator_DtDdWrapper:$. KZend_Form_Decorator_Description: - CZend_Form_Decorator_Captcha:%, MZend_Form_Decorator_Captcha_Word:*+ WZend_Form_Decorator_Captcha_ReCaptcha:!* EZend_Form_Decorator_Callback:!) EZend_Form_Decorator_Abstract:( #Zend_Filter:+' YZend_Filter_Word_UnderscoreToSeparator:&& OZend_Filter_Word_UnderscoreToDash:+% YZend_Filter_Word_UnderscoreToCamelCase:*$ WZend_Filter_Word_SeparatorToSeparator:%# MZend_Filter_Word_SeparatorToDash:*" WZend_Filter_Word_SeparatorToCamelCase:(! SZend_Filter_Word_Separator_Abstract:&  OZend_Filter_Word_DashToUnderscore:% MZend_Filter_Word_DashToSeparator:% MZend_Filter_Word_DashToCamelCase:+ YZend_Filter_Word_CamelCaseToUnderscore:* WZend_Filter_Word_CamelCaseToSeparator:% MZend_Filter_Word_CamelCaseToDash: 7Zend_Filter_StripTags: ?Zend_Filter_StripNewlines: 9Zend_Filter_StringTrim: ?Zend_Filter_StringToUpper: ?Zend_Filter_StringToLower: 5Zend_Filter_RealPath: ;Zend_Filter_PregReplace: -Zend_Filter_Null:& OZend_Filter_NormalizedToLocalized:& OZend_Filter_LocalizedToNormalized: +Zend_Filter_Int: /Zend_Filter_Input: 7Zend_Filter_Inflector: =Zend_Filter_HtmlEntities: AZend_Filter_File_UpperCase: ;Zend_Filter_File_Rename:
 AZend_Filter_File_LowerCase:	 =Zend_Filter_File_Encrypt: =Zend_Filter_File_Decrypt: 7Zend_Filter_Exception: 3Zend_Filter_Encrypt:   _  `7a1sK4e8Q"




t
N
'				q	B	vP+g7
tCfM/[+hK3g9yN*            -N ]Zend_Gdata_Extension_RecurrenceException:$M KZend_Gdata_Extension_Recurrence: L CZend_Gdata_Extension_Rating:'K QZend_Gdata_Extension_OriginalEvent:0J cZend_Gdata_Extension_OpenSearchTotalResults:.I _Zend_Gdata_Extension_OpenSearchStartIndex:0H cZend_Gdata_Extension_OpenSearchItemsPerPage:"G GZend_Gdata_Extension_FeedLink:*F WZend_Gdata_Extension_ExtendedProperty:%E MZend_Gdata_Extension_EventStatus:#D IZend_Gdata_Extension_EntryLink:"C GZend_Gdata_Extension_Comments:&B OZend_Gdata_Extension_AttendeeType:(A SZend_Gdata_Extension_AttendeeStatus:@ +Zend_Gdata_Exif:? 5Zend_Gdata_Exif_Feed:#> IZend_Gdata_Exif_Extension_Time:#= IZend_Gdata_Exif_Extension_Tags:$< KZend_Gdata_Exif_Extension_Model:#; IZend_Gdata_Exif_Extension_Make:": GZend_Gdata_Exif_Extension_Iso:,9 [Zend_Gdata_Exif_Extension_ImageUniqueId:$8 KZend_Gdata_Exif_Extension_FStop:*7 WZend_Gdata_Exif_Extension_FocalLength:$6 KZend_Gdata_Exif_Extension_Flash:'5 QZend_Gdata_Exif_Extension_Exposure:'4 QZend_Gdata_Exif_Extension_Distance:3 7Zend_Gdata_Exif_Entry:2 -Zend_Gdata_Entry:1 7Zend_Gdata_DublinCore:*0 WZend_Gdata_DublinCore_Extension_Title:,/ [Zend_Gdata_DublinCore_Extension_Subject:+. YZend_Gdata_DublinCore_Extension_Rights:.- _Zend_Gdata_DublinCore_Extension_Publisher:-, ]Zend_Gdata_DublinCore_Extension_Language:/+ aZend_Gdata_DublinCore_Extension_Identifier:+* YZend_Gdata_DublinCore_Extension_Format:0) cZend_Gdata_DublinCore_Extension_Description:)( UZend_Gdata_DublinCore_Extension_Date:,' [Zend_Gdata_DublinCore_Extension_Creator:& +Zend_Gdata_Docs:% 7Zend_Gdata_Docs_Query:%$ MZend_Gdata_Docs_DocumentListFeed:&# OZend_Gdata_Docs_DocumentListEntry:" 9Zend_Gdata_ClientLogin:! 3Zend_Gdata_Calendar:!  EZend_Gdata_Calendar_ListFeed:" GZend_Gdata_Calendar_ListEntry:- ]Zend_Gdata_Calendar_Extension_WebContent:+ YZend_Gdata_Calendar_Extension_Timezone:9 uZend_Gdata_Calendar_Extension_SendEventNotifications:+ YZend_Gdata_Calendar_Extension_Selected:+ YZend_Gdata_Calendar_Extension_QuickAdd:' QZend_Gdata_Calendar_Extension_Link:) UZend_Gdata_Calendar_Extension_Hidden:( SZend_Gdata_Calendar_Extension_Color:. _Zend_Gdata_Calendar_Extension_AccessLevel:# IZend_Gdata_Calendar_EventQuery:" GZend_Gdata_Calendar_EventFeed:# IZend_Gdata_Calendar_EventEntry: -Zend_Gdata_Books:! EZend_Gdata_Books_VolumeQuery:  CZend_Gdata_Books_VolumeFeed:! EZend_Gdata_Books_VolumeEntry:+ YZend_Gdata_Books_Extension_Viewability:- ]Zend_Gdata_Books_Extension_ThumbnailLink:& OZend_Gdata_Books_Extension_Review:+ YZend_Gdata_Books_Extension_PreviewLink:(
 SZend_Gdata_Books_Extension_InfoLink:-	 ]Zend_Gdata_Books_Extension_Embeddability:) UZend_Gdata_Books_Extension_BooksLink:- ]Zend_Gdata_Books_Extension_BooksCategory:. _Zend_Gdata_Books_Extension_AnnotationLink:$ KZend_Gdata_Books_CollectionFeed:% MZend_Gdata_Books_CollectionEntry: 1Zend_Gdata_AuthSub: )Zend_Gdata_App:$ KZend_Gdata_App_VersionException:  3Zend_Gdata_App_Util:# IZend_Gdata_App_MediaFileSource:~ ?Zend_Gdata_App_MediaEntry:2} gZend_Gdata_App_LoggingHttpClientAdapterSocket:| AZend_Gdata_App_IOException:,{ [Zend_Gdata_App_InvalidArgumentException:!z EZend_Gdata_App_HttpException:$y KZend_Gdata_App_FeedSourceParent:#x IZend_Gdata_App_FeedEntryParent:w 3Zend_Gdata_App_Feed:v =Zend_Gdata_App_Extension:!u EZend_Gdata_App_Extension_Uri:%t MZend_Gdata_App_Extension_Updated:#s IZend_Gdata_App_Extension_Title:"r GZend_Gdata_App_Extension_Text:%q MZend_Gdata_App_Extension_Summary:&p OZend_Gdata_App_Extension_Subtitle:   d  fC"vEoG[6yU2




]
D
%					n	O	)	{Q)V,yV7uAW#x_<i>[%     #2 IZend_Gdata_Photos_Extension_Id:'1 QZend_Gdata_Photos_Extension_Height:20 gZend_Gdata_Photos_Extension_CommentingEnabled:-/ ]Zend_Gdata_Photos_Extension_CommentCount:'. QZend_Gdata_Photos_Extension_Client:)- UZend_Gdata_Photos_Extension_Checksum:*, WZend_Gdata_Photos_Extension_BytesUsed:(+ SZend_Gdata_Photos_Extension_AlbumId:'* QZend_Gdata_Photos_Extension_Access:#) IZend_Gdata_Photos_CommentEntry:!( EZend_Gdata_Photos_AlbumQuery: ' CZend_Gdata_Photos_AlbumFeed:!& EZend_Gdata_Photos_AlbumEntry:% 3Zend_Gdata_MimeFile:$ ?Zend_Gdata_MimeBodyString:# AZend_Gdata_MediaMimeStream:" -Zend_Gdata_Media:! 7Zend_Gdata_Media_Feed:*  WZend_Gdata_Media_Extension_MediaTitle:. _Zend_Gdata_Media_Extension_MediaThumbnail:) UZend_Gdata_Media_Extension_MediaText:0 cZend_Gdata_Media_Extension_MediaRestriction:+ YZend_Gdata_Media_Extension_MediaRating:+ YZend_Gdata_Media_Extension_MediaPlayer:- ]Zend_Gdata_Media_Extension_MediaKeywords:) UZend_Gdata_Media_Extension_MediaHash:* WZend_Gdata_Media_Extension_MediaGroup:0 cZend_Gdata_Media_Extension_MediaDescription:+ YZend_Gdata_Media_Extension_MediaCredit:. _Zend_Gdata_Media_Extension_MediaCopyright:, [Zend_Gdata_Media_Extension_MediaContent:- ]Zend_Gdata_Media_Extension_MediaCategory: 9Zend_Gdata_Media_Entry: AZend_Gdata_Kind_EventEntry: 7Zend_Gdata_HttpClient:* WZend_Gdata_HttpAdapterStreamingSocket:) UZend_Gdata_HttpAdapterStreamingProxy: /Zend_Gdata_Health: ;Zend_Gdata_Health_Query:& OZend_Gdata_Health_ProfileListFeed:'
 QZend_Gdata_Health_ProfileListEntry:"	 GZend_Gdata_Health_ProfileFeed:# IZend_Gdata_Health_ProfileEntry:$ KZend_Gdata_Health_Extension_Ccr: )Zend_Gdata_Geo: 3Zend_Gdata_Geo_Feed:$ KZend_Gdata_Geo_Extension_GmlPos:& OZend_Gdata_Geo_Extension_GmlPoint:) UZend_Gdata_Geo_Extension_GeoRssWhere: 5Zend_Gdata_Geo_Entry:  -Zend_Gdata_Gbase:" GZend_Gdata_Gbase_SnippetQuery:!~ EZend_Gdata_Gbase_SnippetFeed:"} GZend_Gdata_Gbase_SnippetEntry:| 9Zend_Gdata_Gbase_Query:{ AZend_Gdata_Gbase_ItemQuery:z ?Zend_Gdata_Gbase_ItemFeed:y AZend_Gdata_Gbase_ItemEntry:x 7Zend_Gdata_Gbase_Feed:-w ]Zend_Gdata_Gbase_Extension_BaseAttribute:v 9Zend_Gdata_Gbase_Entry:u -Zend_Gdata_Gapps:t AZend_Gdata_Gapps_UserQuery:s ?Zend_Gdata_Gapps_UserFeed:r AZend_Gdata_Gapps_UserEntry:&q OZend_Gdata_Gapps_ServiceException:p 9Zend_Gdata_Gapps_Query: o CZend_Gdata_Gapps_OwnerQuery:n AZend_Gdata_Gapps_OwnerFeed: m CZend_Gdata_Gapps_OwnerEntry:#l IZend_Gdata_Gapps_NicknameQuery:"k GZend_Gdata_Gapps_NicknameFeed:#j IZend_Gdata_Gapps_NicknameEntry:!i EZend_Gdata_Gapps_MemberQuery: h CZend_Gdata_Gapps_MemberFeed:!g EZend_Gdata_Gapps_MemberEntry: f CZend_Gdata_Gapps_GroupQuery:e AZend_Gdata_Gapps_GroupFeed: d CZend_Gdata_Gapps_GroupEntry:%c MZend_Gdata_Gapps_Extension_Quota:(b SZend_Gdata_Gapps_Extension_Property:(a SZend_Gdata_Gapps_Extension_Nickname:$` KZend_Gdata_Gapps_Extension_Name:%_ MZend_Gdata_Gapps_Extension_Login:)^ UZend_Gdata_Gapps_Extension_EmailList:] 9Zend_Gdata_Gapps_Error:-\ ]Zend_Gdata_Gapps_EmailListRecipientQuery:,[ [Zend_Gdata_Gapps_EmailListRecipientFeed:-Z ]Zend_Gdata_Gapps_EmailListRecipientEntry:$Y KZend_Gdata_Gapps_EmailListQuery:#X IZend_Gdata_Gapps_EmailListFeed:$W KZend_Gdata_Gapps_EmailListEntry:V +Zend_Gdata_Feed:U 5Zend_Gdata_Extension:T =Zend_Gdata_Extension_Who:S AZend_Gdata_Extension_Where:R ?Zend_Gdata_Extension_When:$Q KZend_Gdata_Extension_Visibility:&P OZend_Gdata_Extension_Transparency:"O GZend_Gdata_Extension_Reminder:   X  tGX)wN"_<tK!



`
-
				O	 Y2
b5zKl>zN#c5Mi>                                           *
 WZend_Gdata_YouTube_Extension_Username:*	 WZend_Gdata_YouTube_Extension_Uploaded:' QZend_Gdata_YouTube_Extension_Token:( SZend_Gdata_YouTube_Extension_Status:, [Zend_Gdata_YouTube_Extension_Statistics:' QZend_Gdata_YouTube_Extension_State:( SZend_Gdata_YouTube_Extension_School:- ]Zend_Gdata_YouTube_Extension_ReleaseDate:. _Zend_Gdata_YouTube_Extension_Relationship:* WZend_Gdata_YouTube_Extension_Recorded:&  OZend_Gdata_YouTube_Extension_Racy:- ]Zend_Gdata_YouTube_Extension_QueryString:)~ UZend_Gdata_YouTube_Extension_Private:*} WZend_Gdata_YouTube_Extension_Position:/| aZend_Gdata_YouTube_Extension_PlaylistTitle:,{ [Zend_Gdata_YouTube_Extension_PlaylistId:,z [Zend_Gdata_YouTube_Extension_Occupation:)y UZend_Gdata_YouTube_Extension_NoEmbed:'x QZend_Gdata_YouTube_Extension_Music:(w SZend_Gdata_YouTube_Extension_Movies:-v ]Zend_Gdata_YouTube_Extension_MediaRating:,u [Zend_Gdata_YouTube_Extension_MediaGroup:-t ]Zend_Gdata_YouTube_Extension_MediaCredit:.s _Zend_Gdata_YouTube_Extension_MediaContent:*r WZend_Gdata_YouTube_Extension_Location:&q OZend_Gdata_YouTube_Extension_Link:*p WZend_Gdata_YouTube_Extension_LastName:*o WZend_Gdata_YouTube_Extension_Hometown:)n UZend_Gdata_YouTube_Extension_Hobbies:(m SZend_Gdata_YouTube_Extension_Gender:+l YZend_Gdata_YouTube_Extension_FirstName:*k WZend_Gdata_YouTube_Extension_Duration:-j ]Zend_Gdata_YouTube_Extension_Description:+i YZend_Gdata_YouTube_Extension_CountHint:)h UZend_Gdata_YouTube_Extension_Control:)g UZend_Gdata_YouTube_Extension_Company:'f QZend_Gdata_YouTube_Extension_Books:%e MZend_Gdata_YouTube_Extension_Age:)d UZend_Gdata_YouTube_Extension_AboutMe:#c IZend_Gdata_YouTube_ContactFeed:$b KZend_Gdata_YouTube_ContactEntry:#a IZend_Gdata_YouTube_CommentFeed:$` KZend_Gdata_YouTube_CommentEntry:$_ KZend_Gdata_YouTube_ActivityFeed:%^ MZend_Gdata_YouTube_ActivityEntry:] ;Zend_Gdata_Spreadsheets:*\ WZend_Gdata_Spreadsheets_WorksheetFeed:+[ YZend_Gdata_Spreadsheets_WorksheetEntry:,Z [Zend_Gdata_Spreadsheets_SpreadsheetFeed:-Y ]Zend_Gdata_Spreadsheets_SpreadsheetEntry:&X OZend_Gdata_Spreadsheets_ListQuery:%W MZend_Gdata_Spreadsheets_ListFeed:&V OZend_Gdata_Spreadsheets_ListEntry:/U aZend_Gdata_Spreadsheets_Extension_RowCount:-T ]Zend_Gdata_Spreadsheets_Extension_Custom:/S aZend_Gdata_Spreadsheets_Extension_ColCount:+R YZend_Gdata_Spreadsheets_Extension_Cell:*Q WZend_Gdata_Spreadsheets_DocumentQuery:&P OZend_Gdata_Spreadsheets_CellQuery:%O MZend_Gdata_Spreadsheets_CellFeed:&N OZend_Gdata_Spreadsheets_CellEntry:M -Zend_Gdata_Query:L /Zend_Gdata_Photos: K CZend_Gdata_Photos_UserQuery:J AZend_Gdata_Photos_UserFeed: I CZend_Gdata_Photos_UserEntry:H AZend_Gdata_Photos_TagEntry:!G EZend_Gdata_Photos_PhotoQuery: F CZend_Gdata_Photos_PhotoFeed:!E EZend_Gdata_Photos_PhotoEntry:&D OZend_Gdata_Photos_Extension_Width:'C QZend_Gdata_Photos_Extension_Weight:(B SZend_Gdata_Photos_Extension_Version:%A MZend_Gdata_Photos_Extension_User:*@ WZend_Gdata_Photos_Extension_Timestamp:*? WZend_Gdata_Photos_Extension_Thumbnail:%> MZend_Gdata_Photos_Extension_Size:)= UZend_Gdata_Photos_Extension_Rotation:+< YZend_Gdata_Photos_Extension_QuotaLimit:-; ]Zend_Gdata_Photos_Extension_QuotaCurrent:): UZend_Gdata_Photos_Extension_Position:(9 SZend_Gdata_Photos_Extension_PhotoId:38 iZend_Gdata_Photos_Extension_NumPhotosRemaining:*7 WZend_Gdata_Photos_Extension_NumPhotos:)6 UZend_Gdata_Photos_Extension_Nickname:%5 MZend_Gdata_Photos_Extension_Name:24 gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum:)3 UZend_Gdata_Photos_Extension_Location:   e  b5	U)d9oS7gC!



U
&
				{	M	f>Gb>mI{;|K5mG&p<             o #Zend_Layout:n 7Zend_Layout_Exception:)m UZend_Layout_Controller_Plugin_Layout:0l cZend_Layout_Controller_Action_Helper_Layout:k Zend_Json:j -Zend_Json_Server:i 5Zend_Json_Server_Smd:!h EZend_Json_Server_Smd_Service:g ?Zend_Json_Server_Response:#f IZend_Json_Server_Response_Http:e =Zend_Json_Server_Request:"d GZend_Json_Server_Request_Http:c AZend_Json_Server_Exception:b 9Zend_Json_Server_Error:a 9Zend_Json_Server_Cache:` )Zend_Json_Expr:_ 3Zend_Json_Exception:^ /Zend_Json_Encoder:] /Zend_Json_Decoder:\ 'Zend_InfoCard:-[ ]Zend_InfoCard_Xml_SecurityTokenReference:Z AZend_InfoCard_Xml_Security:)Y UZend_InfoCard_Xml_Security_Transform:4X kZend_InfoCard_Xml_Security_Transform_XmlExcC14N:3W iZend_InfoCard_Xml_Security_Transform_Exception:<V {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignature:)U UZend_InfoCard_Xml_Security_Exception:T ?Zend_InfoCard_Xml_KeyInfo:&S OZend_InfoCard_Xml_KeyInfo_XmlDSig:&R OZend_InfoCard_Xml_KeyInfo_Default:'Q QZend_InfoCard_Xml_KeyInfo_Abstract: P CZend_InfoCard_Xml_Exception:#O IZend_InfoCard_Xml_EncryptedKey:$N KZend_InfoCard_Xml_EncryptedData:+M YZend_InfoCard_Xml_EncryptedData_XmlEnc:-L ]Zend_InfoCard_Xml_EncryptedData_Abstract:K ?Zend_InfoCard_Xml_Element: J CZend_InfoCard_Xml_Assertion:%I MZend_InfoCard_Xml_Assertion_Saml:H ;Zend_InfoCard_Exception:%G MZend_InfoCard_Exception_Abstract:F 5Zend_InfoCard_Claims:E 5Zend_InfoCard_Cipher:5D mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc:5C mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc:4B kZend_InfoCard_Cipher_Symmetric_Adapter_Abstract:)A UZend_InfoCard_Cipher_Pki_Adapter_Rsa:.@ _Zend_InfoCard_Cipher_Pki_Adapter_Abstract:#? IZend_InfoCard_Cipher_Exception:$> KZend_InfoCard_Adapter_Exception:"= GZend_InfoCard_Adapter_Default:< 3Zend_Http_UserAgent:"; GZend_Http_UserAgent_Validator:: =Zend_Http_UserAgent_Text:(9 SZend_Http_UserAgent_Storage_Session:.8 _Zend_Http_UserAgent_Storage_NonPersistent:*7 WZend_Http_UserAgent_Storage_Exception:6 =Zend_Http_UserAgent_Spam:5 ?Zend_Http_UserAgent_Probe: 4 CZend_Http_UserAgent_Offline:3 AZend_Http_UserAgent_Mobile:2 =Zend_Http_UserAgent_Feed:+1 YZend_Http_UserAgent_Features_Exception:20 gZend_Http_UserAgent_Features_Adapter_WurflApi:3/ iZend_Http_UserAgent_Features_Adapter_TeraWurfl:5. mZend_Http_UserAgent_Features_Adapter_DeviceAtlas:"- GZend_Http_UserAgent_Exception:, ?Zend_Http_UserAgent_Email: + CZend_Http_UserAgent_Desktop: * CZend_Http_UserAgent_Console: ) CZend_Http_UserAgent_Checker:( ;Zend_Http_UserAgent_Bot:'' QZend_Http_UserAgent_AbstractDevice:& 1Zend_Http_Response:% ?Zend_Http_Response_Stream:$ 3Zend_Http_Exception:# 3Zend_Http_CookieJar:" -Zend_Http_Cookie:! -Zend_Http_Client:  AZend_Http_Client_Exception:" GZend_Http_Client_Adapter_Test:$ KZend_Http_Client_Adapter_Socket:# IZend_Http_Client_Adapter_Proxy:' QZend_Http_Client_Adapter_Exception:" GZend_Http_Client_Adapter_Curl: !Zend_Gdata: 1Zend_Gdata_YouTube:" GZend_Gdata_YouTube_VideoQuery:! EZend_Gdata_YouTube_VideoFeed:" GZend_Gdata_YouTube_VideoEntry:( SZend_Gdata_YouTube_UserProfileEntry:( SZend_Gdata_YouTube_SubscriptionFeed:) UZend_Gdata_YouTube_SubscriptionEntry:) UZend_Gdata_YouTube_PlaylistVideoFeed:* WZend_Gdata_YouTube_PlaylistVideoEntry:( SZend_Gdata_YouTube_PlaylistListFeed:) UZend_Gdata_YouTube_PlaylistListEntry:" GZend_Gdata_YouTube_MediaEntry:! EZend_Gdata_YouTube_InboxFeed:" GZend_Gdata_YouTube_InboxEntry:) UZend_Gdata_YouTube_Extension_VideoId:   s  sWB&hL,[1	K(v_M%




c
J
,
						d	D	#	zY>eT8cC}Y0
j?% saC!\6aM/     b 1Zend_Measure_Angle:a ?Zend_Measure_Acceleration:` 7Zend_Measure_Abstract:_ #Zend_Markup:^ 7Zend_Markup_TokenList:] /Zend_Markup_Token:*\ WZend_Markup_Renderer_RendererAbstract:[ ?Zend_Markup_Renderer_Html:"Z GZend_Markup_Renderer_Html_Url:#Y IZend_Markup_Renderer_Html_List:"X GZend_Markup_Renderer_Html_Img:+W YZend_Markup_Renderer_Html_HtmlAbstract:#V IZend_Markup_Renderer_Html_Code:#U IZend_Markup_Renderer_Exception:T AZend_Markup_Parser_Textile:!S EZend_Markup_Parser_Exception:R ?Zend_Markup_Parser_Bbcode:Q 7Zend_Markup_Exception:P Zend_Mail:O =Zend_Mail_Transport_Smtp:!N EZend_Mail_Transport_Sendmail:M =Zend_Mail_Transport_File:"L GZend_Mail_Transport_Exception:!K EZend_Mail_Transport_Abstract:J /Zend_Mail_Storage:'I QZend_Mail_Storage_Writable_Maildir:H 9Zend_Mail_Storage_Pop3:G 9Zend_Mail_Storage_Mbox:F ?Zend_Mail_Storage_Maildir:E 9Zend_Mail_Storage_Imap:D =Zend_Mail_Storage_Folder:"C GZend_Mail_Storage_Folder_Mbox:%B MZend_Mail_Storage_Folder_Maildir: A CZend_Mail_Storage_Exception:@ AZend_Mail_Storage_Abstract:? ;Zend_Mail_Protocol_Smtp:'> QZend_Mail_Protocol_Smtp_Auth_Plain:'= QZend_Mail_Protocol_Smtp_Auth_Login:)< UZend_Mail_Protocol_Smtp_Auth_Crammd5:; ;Zend_Mail_Protocol_Pop3:: ;Zend_Mail_Protocol_Imap:!9 EZend_Mail_Protocol_Exception: 8 CZend_Mail_Protocol_Abstract:7 )Zend_Mail_Part:6 3Zend_Mail_Part_File:5 /Zend_Mail_Message:4 9Zend_Mail_Message_File:3 3Zend_Mail_Exception:2 Zend_Log: 1 CZend_Log_Writer_ZendMonitor:0 9Zend_Log_Writer_Syslog:/ 9Zend_Log_Writer_Stream:. 5Zend_Log_Writer_Null:- 5Zend_Log_Writer_Mock:, 5Zend_Log_Writer_Mail:+ ;Zend_Log_Writer_Firebug:* 1Zend_Log_Writer_Db:) =Zend_Log_Writer_Abstract:( 9Zend_Log_Formatter_Xml:' ?Zend_Log_Formatter_Simple:& AZend_Log_Formatter_Firebug: % CZend_Log_Formatter_Abstract:$ =Zend_Log_Filter_Suppress:# =Zend_Log_Filter_Priority:" ;Zend_Log_Filter_Message:! =Zend_Log_Filter_Abstract:  1Zend_Log_Exception: #Zend_Locale: -Zend_Locale_Math: =Zend_Locale_Math_PhpMath: AZend_Locale_Math_Exception: 1Zend_Locale_Format: 7Zend_Locale_Exception: -Zend_Locale_Data:! EZend_Locale_Data_Translation: #Zend_Loader: =Zend_Loader_PluginLoader:' QZend_Loader_PluginLoader_Exception: 7Zend_Loader_Exception: 9Zend_Loader_Autoloader:$ KZend_Loader_Autoloader_Resource: Zend_Ldap: )Zend_Ldap_Node: 7Zend_Ldap_Node_Schema:# IZend_Ldap_Node_Schema_OpenLdap:/ aZend_Ldap_Node_Schema_ObjectClass_OpenLdap:6 oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectory: AZend_Ldap_Node_Schema_Item:1
 eZend_Ldap_Node_Schema_AttributeType_OpenLdap:8	 sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory:* WZend_Ldap_Node_Schema_ActiveDirectory: 9Zend_Ldap_Node_RootDse:$ KZend_Ldap_Node_RootDse_OpenLdap:& OZend_Ldap_Node_RootDse_eDirectory:+ YZend_Ldap_Node_RootDse_ActiveDirectory: ?Zend_Ldap_Node_Collection:$ KZend_Ldap_Node_ChildrenIterator: ;Zend_Ldap_Node_Abstract:  9Zend_Ldap_Ldif_Encoder: -Zend_Ldap_Filter:~ ;Zend_Ldap_Filter_String:} 3Zend_Ldap_Filter_Or:| 5Zend_Ldap_Filter_Not:{ 7Zend_Ldap_Filter_Mask:z =Zend_Ldap_Filter_Logical:y AZend_Ldap_Filter_Exception:x 5Zend_Ldap_Filter_And:w ?Zend_Ldap_Filter_Abstract:v 3Zend_Ldap_Exception:u %Zend_Ldap_Dn:t 3Zend_Ldap_Converter:"s GZend_Ldap_Converter_Exception:r 5Zend_Ldap_Collection:*q WZend_Ldap_Collection_Iterator_Default:p 3Zend_Ldap_Attribute:   v aD'rS1eK/]7|bK9




~
d
J
.
				~	f	D	aH5j@yQ$_1{]?"_={_Gzb8                                 X AZend_Pdf_Cmap_ByteEncoding:&W OZend_Pdf_Cmap_ByteEncoding_Static:V +Zend_Pdf_Canvas:U =Zend_Pdf_Canvas_Abstract:T 3Zend_Pdf_Annotation:S =Zend_Pdf_Annotation_Text:R AZend_Pdf_Annotation_Markup:Q =Zend_Pdf_Annotation_Link:'P QZend_Pdf_Annotation_FileAttachment:O +Zend_Pdf_Action:N 3Zend_Pdf_Action_URI:M ;Zend_Pdf_Action_Unknown:L 7Zend_Pdf_Action_Trans:K 9Zend_Pdf_Action_Thread:J AZend_Pdf_Action_SubmitForm:I 7Zend_Pdf_Action_Sound: H CZend_Pdf_Action_SetOCGState:G ?Zend_Pdf_Action_ResetForm:F ?Zend_Pdf_Action_Rendition:E 7Zend_Pdf_Action_Named:D 7Zend_Pdf_Action_Movie:C 9Zend_Pdf_Action_Launch:B AZend_Pdf_Action_JavaScript:A AZend_Pdf_Action_ImportData:@ 5Zend_Pdf_Action_Hide:? 7Zend_Pdf_Action_GoToR:> 7Zend_Pdf_Action_GoToE:= AZend_Pdf_Action_GoTo3DView:< 5Zend_Pdf_Action_GoTo:; )Zend_Paginator:-: ]Zend_Paginator_SerializableLimitIterator:*9 WZend_Paginator_ScrollingStyle_Sliding:*8 WZend_Paginator_ScrollingStyle_Jumping:*7 WZend_Paginator_ScrollingStyle_Elastic:&6 OZend_Paginator_ScrollingStyle_All:5 =Zend_Paginator_Exception: 4 CZend_Paginator_Adapter_Null:$3 KZend_Paginator_Adapter_Iterator:)2 UZend_Paginator_Adapter_DbTableSelect:$1 KZend_Paginator_Adapter_DbSelect:!0 EZend_Paginator_Adapter_Array:/ #Zend_OpenId:. 5Zend_OpenId_Provider:- ?Zend_OpenId_Provider_User:&, OZend_OpenId_Provider_User_Session:!+ EZend_OpenId_Provider_Storage:&* OZend_OpenId_Provider_Storage_File:) 7Zend_OpenId_Extension:( AZend_OpenId_Extension_Sreg:' 7Zend_OpenId_Exception:& 5Zend_OpenId_Consumer:!% EZend_OpenId_Consumer_Storage:&$ OZend_OpenId_Consumer_Storage_File:# !Zend_Oauth:" -Zend_Oauth_Token:! =Zend_Oauth_Token_Request:'  QZend_Oauth_Token_AuthorizedRequest: ;Zend_Oauth_Token_Access:+ YZend_Oauth_Signature_SignatureAbstract: =Zend_Oauth_Signature_Rsa:# IZend_Oauth_Signature_Plaintext: ?Zend_Oauth_Signature_Hmac: +Zend_Oauth_Http: ;Zend_Oauth_Http_Utility:& OZend_Oauth_Http_UserAuthorization:! EZend_Oauth_Http_RequestToken:  CZend_Oauth_Http_AccessToken: 5Zend_Oauth_Exception: 3Zend_Oauth_Consumer: /Zend_Oauth_Config: /Zend_Oauth_Client: +Zend_Navigation: 5Zend_Navigation_Page: =Zend_Navigation_Page_Uri: =Zend_Navigation_Page_Mvc: ?Zend_Navigation_Exception: ?Zend_Navigation_Container: Zend_Mime:
 )Zend_Mime_Part:	 /Zend_Mime_Message: 3Zend_Mime_Exception: -Zend_Mime_Decode: #Zend_Memory: /Zend_Memory_Value: 3Zend_Memory_Manager: 7Zend_Memory_Exception: 7Zend_Memory_Container:" GZend_Memory_Container_Movable:!  EZend_Memory_Container_Locked:! EZend_Memory_AccessController:~ 3Zend_Measure_Weight:} 3Zend_Measure_Volume:%| MZend_Measure_Viscosity_Kinematic:#{ IZend_Measure_Viscosity_Dynamic:z 3Zend_Measure_Torque:y /Zend_Measure_Time:x =Zend_Measure_Temperature:w 1Zend_Measure_Speed:v 7Zend_Measure_Pressure:u 1Zend_Measure_Power:t 3Zend_Measure_Number:s 9Zend_Measure_Lightness:r 3Zend_Measure_Length:q ?Zend_Measure_Illumination:p 9Zend_Measure_Frequency:o 1Zend_Measure_Force:n =Zend_Measure_Flow_Volume:m 9Zend_Measure_Flow_Mole:l 9Zend_Measure_Flow_Mass:k 9Zend_Measure_Exception:j 3Zend_Measure_Energy:i 5Zend_Measure_Density:h 5Zend_Measure_Current: g CZend_Measure_Cooking_Weight: f CZend_Measure_Cooking_Volume:e =Zend_Measure_Capacitance:d 3Zend_Measure_Binary:c /Zend_Measure_Area:   c  eI.l6	lJ-lE%gG.



p
O
)
				m	M	,	~gM,fB^1}?D[!kL$oM3                          ; +Zend_Pdf_Target:: )Zend_Pdf_Style:9 7Zend_Pdf_StringParser:8 /Zend_Pdf_Resource:7 ?Zend_Pdf_Resource_Unified:#6 IZend_Pdf_Resource_ImageFactory:5 ;Zend_Pdf_Resource_Image:!4 EZend_Pdf_Resource_Image_Tiff: 3 CZend_Pdf_Resource_Image_Png:!2 EZend_Pdf_Resource_Image_Jpeg:$1 KZend_Pdf_Resource_GraphicsState:0 9Zend_Pdf_Resource_Font:!/ EZend_Pdf_Resource_Font_Type0:". GZend_Pdf_Resource_Font_Simple:+- YZend_Pdf_Resource_Font_Simple_Standard:8, sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats:6+ oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman:7* qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic:;) yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic:5( mZend_Pdf_Resource_Font_Simple_Standard_TimesBold:2' gZend_Pdf_Resource_Font_Simple_Standard_Symbol:<& {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaOblique:A% Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique:9$ uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold:5# mZend_Pdf_Resource_Font_Simple_Standard_Helvetica::" wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique:>! Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique:7  qZend_Pdf_Resource_Font_Simple_Standard_CourierBold:3 iZend_Pdf_Resource_Font_Simple_Standard_Courier:) UZend_Pdf_Resource_Font_Simple_Parsed:2 gZend_Pdf_Resource_Font_Simple_Parsed_TrueType:* WZend_Pdf_Resource_Font_FontDescriptor:% MZend_Pdf_Resource_Font_Extracted:# IZend_Pdf_Resource_Font_CidFont:, [Zend_Pdf_Resource_Font_CidFont_TrueType:  CZend_Pdf_Resource_Extractor:$ KZend_Pdf_Resource_ContentStream:3 iZend_Pdf_RecursivelyIteratableObjectsContainer: +Zend_Pdf_Parser: 'Zend_Pdf_Page: -Zend_Pdf_Outline: ;Zend_Pdf_Outline_Loaded: =Zend_Pdf_Outline_Created: /Zend_Pdf_NameTree: )Zend_Pdf_Image: 'Zend_Pdf_Font: ?Zend_Pdf_Filter_RunLength:  CZend_Pdf_Filter_Compression:$ KZend_Pdf_Filter_Compression_Lzw:&
 OZend_Pdf_Filter_Compression_Flate:	 =Zend_Pdf_Filter_AsciiHex: ;Zend_Pdf_Filter_Ascii85:" GZend_Pdf_FileParserDataSource:) UZend_Pdf_FileParserDataSource_String:' QZend_Pdf_FileParserDataSource_File: 3Zend_Pdf_FileParser: ?Zend_Pdf_FileParser_Image:" GZend_Pdf_FileParser_Image_Png: =Zend_Pdf_FileParser_Font:&  OZend_Pdf_FileParser_Font_OpenType:/ aZend_Pdf_FileParser_Font_OpenType_TrueType:~ 1Zend_Pdf_Exception:} ;Zend_Pdf_ElementFactory:"| GZend_Pdf_ElementFactory_Proxy:{ -Zend_Pdf_Element:z ;Zend_Pdf_Element_String:#y IZend_Pdf_Element_String_Binary:x ;Zend_Pdf_Element_Stream:w AZend_Pdf_Element_Reference:%v MZend_Pdf_Element_Reference_Table:'u QZend_Pdf_Element_Reference_Context:t ;Zend_Pdf_Element_Object:#s IZend_Pdf_Element_Object_Stream:r =Zend_Pdf_Element_Numeric:q 7Zend_Pdf_Element_Null:p 7Zend_Pdf_Element_Name: o CZend_Pdf_Element_Dictionary:n =Zend_Pdf_Element_Boolean:m 9Zend_Pdf_Element_Array:l 5Zend_Pdf_Destination:k ?Zend_Pdf_Destination_Zoom:!j EZend_Pdf_Destination_Unknown:i AZend_Pdf_Destination_Named:'h QZend_Pdf_Destination_FitVertically:&g OZend_Pdf_Destination_FitRectangle:)f UZend_Pdf_Destination_FitHorizontally:2e gZend_Pdf_Destination_FitBoundingBoxVertically:4d kZend_Pdf_Destination_FitBoundingBoxHorizontally:(c SZend_Pdf_Destination_FitBoundingBox:b =Zend_Pdf_Destination_Fit:"a GZend_Pdf_Destination_Explicit:` )Zend_Pdf_Color:_ 1Zend_Pdf_Color_Rgb:^ 3Zend_Pdf_Color_Html:] =Zend_Pdf_Color_GrayScale:\ 3Zend_Pdf_Color_Cmyk:[ 'Zend_Pdf_Cmap:Z AZend_Pdf_Cmap_TrimmedTable:!Y EZend_Pdf_Cmap_SegmentToDelta:   _  nEmIpP$vV7$iG%




o
L
"
					u	\	>n2b&a#~U'\7tIsDq>                                                =Zend_Search_Lucene_Proxy:% MZend_Search_Lucene_PriorityQueue:/ aZend_Search_Lucene_Interface_MultiSearcher:# IZend_Search_Lucene_LockManager:$ KZend_Search_Lucene_Index_Writer:0 cZend_Search_Lucene_Index_TermsPriorityQueue:& OZend_Search_Lucene_Index_TermInfo:" GZend_Search_Lucene_Index_Term:+ YZend_Search_Lucene_Index_SegmentWriter:8 sZend_Search_Lucene_Index_SegmentWriter_StreamWriter:: wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter:+ YZend_Search_Lucene_Index_SegmentMerger:) UZend_Search_Lucene_Index_SegmentInfo:' QZend_Search_Lucene_Index_FieldInfo:( SZend_Search_Lucene_Index_DocsFilter:. _Zend_Search_Lucene_Index_DictionaryLoader:!
 EZend_Search_Lucene_FSMAction:	 9Zend_Search_Lucene_FSM: =Zend_Search_Lucene_Field:! EZend_Search_Lucene_Exception:  CZend_Search_Lucene_Document:% MZend_Search_Lucene_Document_Xlsx:% MZend_Search_Lucene_Document_Pptx:( SZend_Search_Lucene_Document_OpenXml:% MZend_Search_Lucene_Document_Html:* WZend_Search_Lucene_Document_Exception:%  MZend_Search_Lucene_Document_Docx:, [Zend_Search_Lucene_Analysis_TokenFilter:6~ oZend_Search_Lucene_Analysis_TokenFilter_StopWords:7} qZend_Search_Lucene_Analysis_TokenFilter_ShortWords::| wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8:6{ oZend_Search_Lucene_Analysis_TokenFilter_LowerCase:&z OZend_Search_Lucene_Analysis_Token:)y UZend_Search_Lucene_Analysis_Analyzer:0x cZend_Search_Lucene_Analysis_Analyzer_Common:8w sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num:Iv Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive:5u mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8:Ft Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive:8s sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum:Ir Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive:5q mZend_Search_Lucene_Analysis_Analyzer_Common_Text:Fp Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive:o 7Zend_Search_Exception:n -Zend_Rest_Server:m AZend_Rest_Server_Exception:l +Zend_Rest_Route:k 3Zend_Rest_Exception:j 5Zend_Rest_Controller:i -Zend_Rest_Client:h ;Zend_Rest_Client_Result:&g OZend_Rest_Client_Result_Exception:f AZend_Rest_Client_Exception:e 'Zend_Registry:d =Zend_Reflection_Property:c ?Zend_Reflection_Parameter:b 9Zend_Reflection_Method:a =Zend_Reflection_Function:` 5Zend_Reflection_File:_ ?Zend_Reflection_Extension:^ ?Zend_Reflection_Exception:] =Zend_Reflection_Docblock:!\ EZend_Reflection_Docblock_Tag:([ SZend_Reflection_Docblock_Tag_Return:'Z QZend_Reflection_Docblock_Tag_Param:Y 7Zend_Reflection_Class:X !Zend_Queue:W 9Zend_Queue_Stomp_Frame:V ;Zend_Queue_Stomp_Client:'U QZend_Queue_Stomp_Client_Connection:T 1Zend_Queue_Message:#S IZend_Queue_Message_PlatformJob: R CZend_Queue_Message_Iterator:Q 5Zend_Queue_Exception:(P SZend_Queue_Adapter_PlatformJobQueue:O ;Zend_Queue_Adapter_Null:!N EZend_Queue_Adapter_Memcacheq:M 7Zend_Queue_Adapter_Db: L CZend_Queue_Adapter_Db_Queue:"K GZend_Queue_Adapter_Db_Message:J =Zend_Queue_Adapter_Array:'I QZend_Queue_Adapter_AdapterAbstract: H CZend_Queue_Adapter_Activemq:G -Zend_ProgressBar:F AZend_ProgressBar_Exception:E =Zend_ProgressBar_Adapter:$D KZend_ProgressBar_Adapter_JsPush:$C KZend_ProgressBar_Adapter_JsPull:'B QZend_ProgressBar_Adapter_Exception:%A MZend_ProgressBar_Adapter_Console:@ Zend_Pdf:!? EZend_Pdf_UpdateInfoContainer:> -Zend_Pdf_Trailer:= ;Zend_Pdf_Trailer_Keeper:< AZend_Pdf_Trailer_Generator:   Y  \. i-Q$a/|G



P
!				g	/	xD)a9cI*xS*^5
c. yN%zP*               -s ]Zend_Service_Amazon_Ec2_Instance_Windows:.r _Zend_Service_Amazon_Ec2_Instance_Reserved:"q GZend_Service_Amazon_Ec2_Image:&p OZend_Service_Amazon_Ec2_Exception:&o OZend_Service_Amazon_Ec2_Elasticip: n CZend_Service_Amazon_Ec2_Ebs:'m QZend_Service_Amazon_Ec2_CloudWatch:.l _Zend_Service_Amazon_Ec2_Availabilityzones:%k MZend_Service_Amazon_Ec2_Abstract:'j QZend_Service_Amazon_CustomerReview:'i QZend_Service_Amazon_Authentication:*h WZend_Service_Amazon_Authentication_V2:*g WZend_Service_Amazon_Authentication_V1:*f WZend_Service_Amazon_Authentication_S3:1e eZend_Service_Amazon_Authentication_Exception:$d KZend_Service_Amazon_Accessories:!c EZend_Service_Amazon_Abstract:b 5Zend_Service_Akismet:a 7Zend_Service_Abstract:` 9Zend_Server_Reflection:'_ QZend_Server_Reflection_ReturnValue:%^ MZend_Server_Reflection_Prototype:%] MZend_Server_Reflection_Parameter: \ CZend_Server_Reflection_Node:"[ GZend_Server_Reflection_Method:$Z KZend_Server_Reflection_Function:-Y ]Zend_Server_Reflection_Function_Abstract:%X MZend_Server_Reflection_Exception:!W EZend_Server_Reflection_Class:!V EZend_Server_Method_Prototype:!U EZend_Server_Method_Parameter:"T GZend_Server_Method_Definition: S CZend_Server_Method_Callback:R 7Zend_Server_Exception:Q 9Zend_Server_Definition:P /Zend_Server_Cache:O 5Zend_Server_Abstract:N +Zend_Serializer:M ?Zend_Serializer_Exception:!L EZend_Serializer_Adapter_Wddx:)K UZend_Serializer_Adapter_PythonPickle:)J UZend_Serializer_Adapter_PhpSerialize:$I KZend_Serializer_Adapter_PhpCode:!H EZend_Serializer_Adapter_Json:%G MZend_Serializer_Adapter_Igbinary:!F EZend_Serializer_Adapter_Amf3:!E EZend_Serializer_Adapter_Amf0:,D [Zend_Serializer_Adapter_AdapterAbstract:C 1Zend_Search_Lucene:0B cZend_Search_Lucene_TermStreamsPriorityQueue:$A KZend_Search_Lucene_Storage_File:+@ YZend_Search_Lucene_Storage_File_Memory:/? aZend_Search_Lucene_Storage_File_Filesystem:)> UZend_Search_Lucene_Storage_Directory:4= kZend_Search_Lucene_Storage_Directory_Filesystem:%< MZend_Search_Lucene_Search_Weight:*; WZend_Search_Lucene_Search_Weight_Term:,: [Zend_Search_Lucene_Search_Weight_Phrase:/9 aZend_Search_Lucene_Search_Weight_MultiTerm:+8 YZend_Search_Lucene_Search_Weight_Empty:-7 ]Zend_Search_Lucene_Search_Weight_Boolean:)6 UZend_Search_Lucene_Search_Similarity:15 eZend_Search_Lucene_Search_Similarity_Default:)4 UZend_Search_Lucene_Search_QueryToken:33 iZend_Search_Lucene_Search_QueryParserException:12 eZend_Search_Lucene_Search_QueryParserContext:*1 WZend_Search_Lucene_Search_QueryParser:)0 UZend_Search_Lucene_Search_QueryLexer:'/ QZend_Search_Lucene_Search_QueryHit:). UZend_Search_Lucene_Search_QueryEntry:.- _Zend_Search_Lucene_Search_QueryEntry_Term:2, gZend_Search_Lucene_Search_QueryEntry_Subquery:0+ cZend_Search_Lucene_Search_QueryEntry_Phrase:$* KZend_Search_Lucene_Search_Query:-) ]Zend_Search_Lucene_Search_Query_Wildcard:)( UZend_Search_Lucene_Search_Query_Term:*' WZend_Search_Lucene_Search_Query_Range:2& gZend_Search_Lucene_Search_Query_Preprocessing:7% qZend_Search_Lucene_Search_Query_Preprocessing_Term:9$ uZend_Search_Lucene_Search_Query_Preprocessing_Phrase:8# sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy:+" YZend_Search_Lucene_Search_Query_Phrase:.! _Zend_Search_Lucene_Search_Query_MultiTerm:2  gZend_Search_Lucene_Search_Query_Insignificant:* WZend_Search_Lucene_Search_Query_Fuzzy:* WZend_Search_Lucene_Search_Query_Empty:, [Zend_Search_Lucene_Search_Query_Boolean:2 gZend_Search_Lucene_Search_Highlighter_Default:: wZend_Search_Lucene_Search_BooleanExpressionRecognizer:   E  _0{Q/
sT)sN$wO%


Q
			]	P	v<^n	_T72                                                                            Q8 #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequest:O7 Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequest:U6 +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequest:U5 +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequest:V4 -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequest:a3 CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequest:Z2 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequest:T1 )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequest:R0 %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequest:Y/ 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequest:Q. #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequest:Q- #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequest:a, CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequest:N+ Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformation:L* Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalance:J) Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool:-( ]Zend_Service_DeveloperGarden_LocalSearch:>' Zend_Service_DeveloperGarden_LocalSearch_SearchParameters:7& qZend_Service_DeveloperGarden_LocalSearch_Exception:,% [Zend_Service_DeveloperGarden_IpLocation:6$ oZend_Service_DeveloperGarden_IpLocation_IpAddress:+# YZend_Service_DeveloperGarden_Exception:," [Zend_Service_DeveloperGarden_Credential:0! cZend_Service_DeveloperGarden_ConferenceCall:C  Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatus:C Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail:< {Zend_Service_DeveloperGarden_ConferenceCall_Participant:: wZend_Service_DeveloperGarden_ConferenceCall_Exception:D 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceSchedule:B Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail:C Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount:- ]Zend_Service_DeveloperGarden_Client_Soap:2 gZend_Service_DeveloperGarden_Client_Exception:7 qZend_Service_DeveloperGarden_Client_ClientAbstract:1 eZend_Service_DeveloperGarden_BaseUserService:A Zend_Service_DeveloperGarden_BaseUserService_AccountBalance: 9Zend_Service_Delicious:& OZend_Service_Delicious_SimplePost:$ KZend_Service_Delicious_PostList:  CZend_Service_Delicious_Post:% MZend_Service_Delicious_Exception:  CZend_Service_Audioscrobbler: 3Zend_Service_Amazon: ;Zend_Service_Amazon_Sqs:& OZend_Service_Amazon_Sqs_Exception:! EZend_Service_Amazon_SimpleDb:*
 WZend_Service_Amazon_SimpleDb_Response:&	 OZend_Service_Amazon_SimpleDb_Page:+ YZend_Service_Amazon_SimpleDb_Exception:+ YZend_Service_Amazon_SimpleDb_Attribute:' QZend_Service_Amazon_SimilarProduct: 9Zend_Service_Amazon_S3:" GZend_Service_Amazon_S3_Stream:% MZend_Service_Amazon_S3_Exception:" GZend_Service_Amazon_ResultSet: ?Zend_Service_Amazon_Query:!  EZend_Service_Amazon_OfferSet: ?Zend_Service_Amazon_Offer:&~ OZend_Service_Amazon_ListmaniaList:} =Zend_Service_Amazon_Item:| ?Zend_Service_Amazon_Image:"{ GZend_Service_Amazon_Exception:(z SZend_Service_Amazon_EditorialReview:y ;Zend_Service_Amazon_Ec2:+x YZend_Service_Amazon_Ec2_Securitygroups:%w MZend_Service_Amazon_Ec2_Response:#v IZend_Service_Amazon_Ec2_Region:$u KZend_Service_Amazon_Ec2_Keypair:%t MZend_Service_Amazon_Ec2_Instance:   / w ;(u>k)V

x
3			`	+iYR8$`2  w                 Wg /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse:\f 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseType:Xe 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponse:gd OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseType:cc GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse:`b AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType:\a 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponse:Z` 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseType:V_ -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponse:X^ 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseType:T] )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse:_\ ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType:[[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponse:WZ /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType:SY 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponse:QX #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstract:SW 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponse:JV Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType:gU OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseType:cT GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponse:WS /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse:UR +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponse:SQ 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse:3P iZend_Service_DeveloperGarden_Response_BaseType:JO Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstract:CN Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCall:GM Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced:=L }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCall:AK Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatus:AJ Zend_Service_DeveloperGarden_Request_SmsValidation_Validate:NI Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeyword:CH Zend_Service_DeveloperGarden_Request_SmsValidation_Invalidate:LG Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbers:BF Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract:9E uZend_Service_DeveloperGarden_Request_SendSms_SendSMS:>D Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS:9C uZend_Service_DeveloperGarden_Request_RequestAbstract:IB Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequest:EA Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest:3@ iZend_Service_DeveloperGarden_Request_Exception:R? %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequest:Y> 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequest:d= IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequest:Q< #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequest:R; %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequest:Y: 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequest:d9 IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequest:   5  F9xj I


2			S	r%w+DNar#~Km0                                                  % MZend_Service_Ebay_Finding_Aspect:) UZend_Service_Ebay_Finding_Aspect_Set:5 mZend_Service_Ebay_Finding_Aspect_Histogram_Value:9 uZend_Service_Ebay_Finding_Aspect_Histogram_Value_Set:9 uZend_Service_Ebay_Finding_Aspect_Histogram_Container:' QZend_Service_Ebay_Finding_Abstract:  CZend_Service_Ebay_Exception: AZend_Service_Ebay_Abstract:+ YZend_Service_DeveloperGarden_VoiceCall:/ aZend_Service_DeveloperGarden_SmsValidation:) UZend_Service_DeveloperGarden_SendSms:5 mZend_Service_DeveloperGarden_SecurityTokenServer:; yZend_Service_DeveloperGarden_SecurityTokenServer_Cache:K Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstract:L Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponse:P !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponse:G Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponse:J Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponse:K
 Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2Response:L	 Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponse:I Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumber:W /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponse:J Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponse:U +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponse:C Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponse:C Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstract:H Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponse:U +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponse:Q  #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponse:I Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception:;~ yZend_Service_DeveloperGarden_Response_ResponseAbstract:O} Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseType:K| Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponse:A{ Zend_Service_DeveloperGarden_Response_IpLocation_RegionType:Kz Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseType:Gy Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponse:Lx Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationType:Iw Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType:>v Zend_Service_DeveloperGarden_Response_IpLocation_CityType:4u kZend_Service_DeveloperGarden_Response_Exception:Tt )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse:[s 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponse:fr MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponse:Sq 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponse:Tp )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse:[o 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponse:fn MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponse:Sm 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponse:Ul +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType:Qk #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse:[j 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseType:Wi /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse:[h 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseType:   \  S(n@r>Q"c@




h
;
				n	F	_5aB z_5rAi<{MqGtT-	                                             x 5Zend_Service_Twitter: w CZend_Service_Twitter_Search:#v IZend_Service_Twitter_Exception:u ;Zend_Service_Technorati:#t IZend_Service_Technorati_Weblog:"s GZend_Service_Technorati_Utils:*r WZend_Service_Technorati_TagsResultSet:'q QZend_Service_Technorati_TagsResult:)p UZend_Service_Technorati_TagResultSet:&o OZend_Service_Technorati_TagResult:,n [Zend_Service_Technorati_SearchResultSet:)m UZend_Service_Technorati_SearchResult:&l OZend_Service_Technorati_ResultSet:#k IZend_Service_Technorati_Result:*j WZend_Service_Technorati_KeyInfoResult:*i WZend_Service_Technorati_GetInfoResult:&h OZend_Service_Technorati_Exception:1g eZend_Service_Technorati_DailyCountsResultSet:.f _Zend_Service_Technorati_DailyCountsResult:,e [Zend_Service_Technorati_CosmosResultSet:)d UZend_Service_Technorati_CosmosResult:+c YZend_Service_Technorati_BlogInfoResult:#b IZend_Service_Technorati_Author:a ;Zend_Service_StrikeIron:(` SZend_Service_StrikeIron_ZipCodeInfo:2_ gZend_Service_StrikeIron_USAddressVerification:-^ ]Zend_Service_StrikeIron_SalesUseTaxBasic:&] OZend_Service_StrikeIron_Exception:&\ OZend_Service_StrikeIron_Decorator:![ EZend_Service_StrikeIron_Base:Z ;Zend_Service_SlideShare:&Y OZend_Service_SlideShare_SlideShow:&X OZend_Service_SlideShare_Exception:W 1Zend_Service_Simpy:$V KZend_Service_Simpy_WatchlistSet:*U WZend_Service_Simpy_WatchlistFilterSet:'T QZend_Service_Simpy_WatchlistFilter:!S EZend_Service_Simpy_Watchlist:R ?Zend_Service_Simpy_TagSet:Q 9Zend_Service_Simpy_Tag:P AZend_Service_Simpy_NoteSet:O ;Zend_Service_Simpy_Note:N AZend_Service_Simpy_LinkSet:!M EZend_Service_Simpy_LinkQuery:L ;Zend_Service_Simpy_Link:%K MZend_Service_ShortUrl_TinyUrlCom:&J OZend_Service_ShortUrl_MetamarkNet:!I EZend_Service_ShortUrl_JdemCz:H AZend_Service_ShortUrl_IsGd:$G KZend_Service_ShortUrl_Exception:,F [Zend_Service_ShortUrl_AbstractShortener:E 9Zend_Service_ReCaptcha:$D KZend_Service_ReCaptcha_Response:$C KZend_Service_ReCaptcha_MailHide:.B _Zend_Service_ReCaptcha_MailHide_Exception:%A MZend_Service_ReCaptcha_Exception:@ 7Zend_Service_Nirvanix:#? IZend_Service_Nirvanix_Response:)> UZend_Service_Nirvanix_Namespace_Imfs:)= UZend_Service_Nirvanix_Namespace_Base:$< KZend_Service_Nirvanix_Exception:; 7Zend_Service_LiveDocx:$: KZend_Service_LiveDocx_MailMerge:$9 KZend_Service_LiveDocx_Exception:8 3Zend_Service_Flickr:"7 GZend_Service_Flickr_ResultSet:6 AZend_Service_Flickr_Result:5 ?Zend_Service_Flickr_Image:4 9Zend_Service_Exception:3 ?Zend_Service_Ebay_Finding:)2 UZend_Service_Ebay_Finding_Storefront:+1 YZend_Service_Ebay_Finding_ShippingInfo:+0 YZend_Service_Ebay_Finding_Set_Abstract:,/ [Zend_Service_Ebay_Finding_SellingStatus:). UZend_Service_Ebay_Finding_SellerInfo:,- [Zend_Service_Ebay_Finding_Search_Result:*, WZend_Service_Ebay_Finding_Search_Item:.+ _Zend_Service_Ebay_Finding_Search_Item_Set:0* cZend_Service_Ebay_Finding_Response_Keywords:-) ]Zend_Service_Ebay_Finding_Response_Items:2( gZend_Service_Ebay_Finding_Response_Histograms:0' cZend_Service_Ebay_Finding_Response_Abstract:/& aZend_Service_Ebay_Finding_PaginationOutput:*% WZend_Service_Ebay_Finding_ListingInfo:($ SZend_Service_Ebay_Finding_Exception:,# [Zend_Service_Ebay_Finding_Error_Message:)" UZend_Service_Ebay_Finding_Error_Data:-! ]Zend_Service_Ebay_Finding_Error_Data_Set:'  QZend_Service_Ebay_Finding_Category:1 eZend_Service_Ebay_Finding_Category_Histogram:5 mZend_Service_Ebay_Finding_Category_Histogram_Set:; yZend_Service_Ebay_Finding_Category_Histogram_Container:   O  A	,_t"}/


`
			~	H	m5Yx=i=nDZ2g?uR3                          G =Zend_Soap_Wsdl_Exception:F -Zend_Soap_Server:E AZend_Soap_Server_Exception:D -Zend_Soap_Client:C 9Zend_Soap_Client_Local:B AZend_Soap_Client_Exception:A ;Zend_Soap_Client_DotNet:@ ;Zend_Soap_Client_Common:? 9Zend_Soap_AutoDiscover:%> MZend_Soap_AutoDiscover_Exception:= %Zend_Session:)< UZend_Session_Validator_HttpUserAgent:$; KZend_Session_Validator_Abstract:': QZend_Session_SaveHandler_Exception:%9 MZend_Session_SaveHandler_DbTable:8 9Zend_Session_Namespace:7 9Zend_Session_Exception:6 7Zend_Session_Abstract:5 1Zend_Service_Yahoo:$4 KZend_Service_Yahoo_WebResultSet:!3 EZend_Service_Yahoo_WebResult:&2 OZend_Service_Yahoo_VideoResultSet:#1 IZend_Service_Yahoo_VideoResult:!0 EZend_Service_Yahoo_ResultSet:/ ?Zend_Service_Yahoo_Result:). UZend_Service_Yahoo_PageDataResultSet:&- OZend_Service_Yahoo_PageDataResult:%, MZend_Service_Yahoo_NewsResultSet:"+ GZend_Service_Yahoo_NewsResult:&* OZend_Service_Yahoo_LocalResultSet:#) IZend_Service_Yahoo_LocalResult:+( YZend_Service_Yahoo_InlinkDataResultSet:(' SZend_Service_Yahoo_InlinkDataResult:&& OZend_Service_Yahoo_ImageResultSet:#% IZend_Service_Yahoo_ImageResult:$ =Zend_Service_Yahoo_Image:&# OZend_Service_WindowsAzure_Storage:4" kZend_Service_WindowsAzure_Storage_TableInstance:7! qZend_Service_WindowsAzure_Storage_TableEntityQuery:2  gZend_Service_WindowsAzure_Storage_TableEntity:, [Zend_Service_WindowsAzure_Storage_Table:< {Zend_Service_WindowsAzure_Storage_StorageEntityAbstract:7 qZend_Service_WindowsAzure_Storage_SignedIdentifier:3 iZend_Service_WindowsAzure_Storage_QueueMessage:4 kZend_Service_WindowsAzure_Storage_QueueInstance:, [Zend_Service_WindowsAzure_Storage_Queue:9 uZend_Service_WindowsAzure_Storage_PageRegionInstance:4 kZend_Service_WindowsAzure_Storage_LeaseInstance:9 uZend_Service_WindowsAzure_Storage_DynamicTableEntity:3 iZend_Service_WindowsAzure_Storage_BlobInstance:4 kZend_Service_WindowsAzure_Storage_BlobContainer:+ YZend_Service_WindowsAzure_Storage_Blob:2 gZend_Service_WindowsAzure_Storage_Blob_Stream:; yZend_Service_WindowsAzure_Storage_BatchStorageAbstract:, [Zend_Service_WindowsAzure_Storage_Batch:- ]Zend_Service_WindowsAzure_SessionHandler:> Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract:1 eZend_Service_WindowsAzure_RetryPolicy_RetryN:2 gZend_Service_WindowsAzure_RetryPolicy_NoRetry:4 kZend_Service_WindowsAzure_RetryPolicy_Exception:( SZend_Service_WindowsAzure_Exception:J
 Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscription:2	 gZend_Service_WindowsAzure_Diagnostics_Manager:3 iZend_Service_WindowsAzure_Diagnostics_LogLevel:4 kZend_Service_WindowsAzure_Diagnostics_Exception:N Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscription:H Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLog:L Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCounters:K Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstract:< {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogs:A Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstance:D  	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectories:U +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogs:D~ 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSources:8} sZend_Service_WindowsAzure_Credentials_SharedKeyLite:4| kZend_Service_WindowsAzure_Credentials_SharedKey:A{ Zend_Service_WindowsAzure_Credentials_SharedAccessSignature:4z kZend_Service_WindowsAzure_Credentials_Exception:>y Zend_Service_WindowsAzure_Credentials_CredentialsAbstract:   Y  |HW.	jL`5~L



h
8
					{	S	)	z_I!p6 ;SrGsM!o;xM                 *  WZend_Tool_Framework_Provider_Abstract:& OZend_Tool_Framework_Metadata_Tool:) UZend_Tool_Framework_Metadata_Dynamic:' QZend_Tool_Framework_Metadata_Basic:, [Zend_Tool_Framework_Manifest_Repository:2 gZend_Tool_Framework_Manifest_ProviderMetadata:* WZend_Tool_Framework_Manifest_Metadata:+ YZend_Tool_Framework_Manifest_Exception:0 cZend_Tool_Framework_Manifest_ActionMetadata:1 eZend_Tool_Framework_Loader_IncludePathLoader:J Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator:+ YZend_Tool_Framework_Loader_BasicLoader:( SZend_Tool_Framework_Loader_Abstract:" GZend_Tool_Framework_Exception:' QZend_Tool_Framework_Client_Storage:1 eZend_Tool_Framework_Client_Storage_Directory:( SZend_Tool_Framework_Client_Response:D 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator:' QZend_Tool_Framework_Client_Request:( SZend_Tool_Framework_Client_Manifest:9 uZend_Tool_Framework_Client_Interactive_InputResponse:8 sZend_Tool_Framework_Client_Interactive_InputRequest:8
 sZend_Tool_Framework_Client_Interactive_InputHandler:)	 UZend_Tool_Framework_Client_Exception:' QZend_Tool_Framework_Client_Console:D 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Indention:D 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizer:C Zend_Tool_Framework_Client_Console_ResponseDecorator_Blockize:F Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter:0 cZend_Tool_Framework_Client_Console_Manifest:2 gZend_Tool_Framework_Client_Console_HelpSystem:6 oZend_Tool_Framework_Client_Console_ArgumentParser:&  OZend_Tool_Framework_Client_Config:( SZend_Tool_Framework_Client_Abstract:*~ WZend_Tool_Framework_Action_Repository:)} UZend_Tool_Framework_Action_Exception:$| KZend_Tool_Framework_Action_Base:{ 'Zend_TimeSync:z 1Zend_TimeSync_Sntp:y 9Zend_TimeSync_Protocol:x /Zend_TimeSync_Ntp:w ;Zend_TimeSync_Exception:v +Zend_Text_Table:u 3Zend_Text_Table_Row:t ?Zend_Text_Table_Exception:&s OZend_Text_Table_Decorator_Unicode:$r KZend_Text_Table_Decorator_Ascii:q 9Zend_Text_Table_Column:p 3Zend_Text_MultiByte:o -Zend_Text_Figlet:n AZend_Text_Figlet_Exception:m 3Zend_Text_Exception:&l OZend_Test_PHPUnit_Db_SimpleTester:,k [Zend_Test_PHPUnit_Db_Operation_Truncate:*j WZend_Test_PHPUnit_Db_Operation_Insert:-i ]Zend_Test_PHPUnit_Db_Operation_DeleteAll:*h WZend_Test_PHPUnit_Db_Metadata_Generic:#g IZend_Test_PHPUnit_Db_Exception:,f [Zend_Test_PHPUnit_Db_DataSet_QueryTable:.e _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet:0d cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet:)c UZend_Test_PHPUnit_Db_DataSet_DbTable:*b WZend_Test_PHPUnit_Db_DataSet_DbRowset:$a KZend_Test_PHPUnit_Db_Connection:'` QZend_Test_PHPUnit_DatabaseTestCase:)_ UZend_Test_PHPUnit_ControllerTestCase:0^ cZend_Test_PHPUnit_Constraint_ResponseHeader:*] WZend_Test_PHPUnit_Constraint_Redirect:+\ YZend_Test_PHPUnit_Constraint_Exception:*[ WZend_Test_PHPUnit_Constraint_DomQuery:Z 7Zend_Test_DbStatement:Y 3Zend_Test_DbAdapter:X /Zend_Tag_ItemList:W 'Zend_Tag_Item:V 1Zend_Tag_Exception:U )Zend_Tag_Cloud:T =Zend_Tag_Cloud_Exception:!S EZend_Tag_Cloud_Decorator_Tag:%R MZend_Tag_Cloud_Decorator_HtmlTag:'Q QZend_Tag_Cloud_Decorator_HtmlCloud:'P QZend_Tag_Cloud_Decorator_Exception:#O IZend_Tag_Cloud_Decorator_Cloud:N )Zend_Soap_Wsdl:/M aZend_Soap_Wsdl_Strategy_DefaultComplexType:&L OZend_Soap_Wsdl_Strategy_Composite:0K cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence:/J aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex:$I KZend_Soap_Wsdl_Strategy_AnyType:%H MZend_Soap_Wsdl_Strategy_Abstract:   G  rC](JN!g0



V
#				U	N HsDk6J^QN                                                                @g Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory:1f eZend_Tool_Project_Context_Zf_TestLibraryFile:6e oZend_Tool_Project_Context_Zf_TestLibraryDirectory::d wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFile:Bc Zend_Tool_Project_Context_Zf_TestApplicationModulesDirectory:Ab Zend_Tool_Project_Context_Zf_TestApplicationModuleDirectory::a wZend_Tool_Project_Context_Zf_TestApplicationDirectory:@` Zend_Tool_Project_Context_Zf_TestApplicationControllerFile:E_ Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory:>^ Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile:=] }Zend_Tool_Project_Context_Zf_TestApplicationActionMethod:4\ kZend_Tool_Project_Context_Zf_TemporaryDirectory:3[ iZend_Tool_Project_Context_Zf_SessionsDirectory:8Z sZend_Tool_Project_Context_Zf_SearchIndexesDirectory:<Y {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory:8X sZend_Tool_Project_Context_Zf_PublicScriptsDirectory:1W eZend_Tool_Project_Context_Zf_PublicIndexFile:7V qZend_Tool_Project_Context_Zf_PublicImagesDirectory:1U eZend_Tool_Project_Context_Zf_PublicDirectory:5T mZend_Tool_Project_Context_Zf_ProjectProviderFile:2S gZend_Tool_Project_Context_Zf_ModulesDirectory:1R eZend_Tool_Project_Context_Zf_ModuleDirectory:1Q eZend_Tool_Project_Context_Zf_ModelsDirectory:+P YZend_Tool_Project_Context_Zf_ModelFile:/O aZend_Tool_Project_Context_Zf_LogsDirectory:2N gZend_Tool_Project_Context_Zf_LocalesDirectory:2M gZend_Tool_Project_Context_Zf_LibraryDirectory:2L gZend_Tool_Project_Context_Zf_LayoutsDirectory:8K sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory:2J gZend_Tool_Project_Context_Zf_LayoutScriptFile:.I _Zend_Tool_Project_Context_Zf_HtaccessFile:0H cZend_Tool_Project_Context_Zf_FormsDirectory:*G WZend_Tool_Project_Context_Zf_FormFile:/F aZend_Tool_Project_Context_Zf_DocsDirectory:-E ]Zend_Tool_Project_Context_Zf_DbTableFile:2D gZend_Tool_Project_Context_Zf_DbTableDirectory:/C aZend_Tool_Project_Context_Zf_DataDirectory:6B oZend_Tool_Project_Context_Zf_ControllersDirectory:0A cZend_Tool_Project_Context_Zf_ControllerFile:2@ gZend_Tool_Project_Context_Zf_ConfigsDirectory:,? [Zend_Tool_Project_Context_Zf_ConfigFile:0> cZend_Tool_Project_Context_Zf_CacheDirectory:/= aZend_Tool_Project_Context_Zf_BootstrapFile:6< oZend_Tool_Project_Context_Zf_ApplicationDirectory:7; qZend_Tool_Project_Context_Zf_ApplicationConfigFile:/: aZend_Tool_Project_Context_Zf_ApisDirectory:.9 _Zend_Tool_Project_Context_Zf_ActionMethod:38 iZend_Tool_Project_Context_Zf_AbstractClassFile:@7 Zend_Tool_Project_Context_System_ProjectProvidersDirectory:86 sZend_Tool_Project_Context_System_ProjectProfileFile:65 oZend_Tool_Project_Context_System_ProjectDirectory:)4 UZend_Tool_Project_Context_Repository:.3 _Zend_Tool_Project_Context_Filesystem_File:32 iZend_Tool_Project_Context_Filesystem_Directory:21 gZend_Tool_Project_Context_Filesystem_Abstract:(0 SZend_Tool_Project_Context_Exception:-/ ]Zend_Tool_Project_Context_Content_Engine:3. iZend_Tool_Project_Context_Content_Engine_Phtml:;- yZend_Tool_Project_Context_Content_Engine_CodeGenerator:0, cZend_Tool_Framework_System_Provider_Version:0+ cZend_Tool_Framework_System_Provider_Phpinfo:1* eZend_Tool_Framework_System_Provider_Manifest:/) aZend_Tool_Framework_System_Provider_Config:(( SZend_Tool_Framework_System_Manifest:-' ]Zend_Tool_Framework_System_Action_Delete:-& ]Zend_Tool_Framework_System_Action_Create:!% EZend_Tool_Framework_Registry:+$ YZend_Tool_Framework_Registry_Exception:+# YZend_Tool_Framework_Provider_Signature:," [Zend_Tool_Framework_Provider_Repository:+! YZend_Tool_Framework_Provider_Exception:   a  Sd0^2RrC



h
>
				i	6	wT2bD-fAwS/~Y4rK& oQ3rL/   H =Zend_Validate_File_Count:G ;Zend_Validate_Exception:F AZend_Validate_EmailAddress:E 5Zend_Validate_Digits:"D GZend_Validate_Db_RecordExists:$C KZend_Validate_Db_NoRecordExists:B ?Zend_Validate_Db_Abstract:A 1Zend_Validate_Date:@ =Zend_Validate_CreditCard:? 3Zend_Validate_Ccnum:> 9Zend_Validate_Callback:= 7Zend_Validate_Between:< 7Zend_Validate_Barcode:; AZend_Validate_Barcode_Upce:: AZend_Validate_Barcode_Upca:9 AZend_Validate_Barcode_Sscc:$8 KZend_Validate_Barcode_Royalmail:"7 GZend_Validate_Barcode_Postnet:!6 EZend_Validate_Barcode_Planet:#5 IZend_Validate_Barcode_Leitcode: 4 CZend_Validate_Barcode_Itf14:3 AZend_Validate_Barcode_Issn:*2 WZend_Validate_Barcode_IntelligentMail:$1 KZend_Validate_Barcode_Identcode:!0 EZend_Validate_Barcode_Gtin14:!/ EZend_Validate_Barcode_Gtin13:!. EZend_Validate_Barcode_Gtin12:- AZend_Validate_Barcode_Ean8:, AZend_Validate_Barcode_Ean5:+ AZend_Validate_Barcode_Ean2: * CZend_Validate_Barcode_Ean18: ) CZend_Validate_Barcode_Ean14: ( CZend_Validate_Barcode_Ean13: ' CZend_Validate_Barcode_Ean12:$& KZend_Validate_Barcode_Code93ext:!% EZend_Validate_Barcode_Code93:$$ KZend_Validate_Barcode_Code39ext:!# EZend_Validate_Barcode_Code39:," [Zend_Validate_Barcode_Code25interleaved:!! EZend_Validate_Barcode_Code25:*  WZend_Validate_Barcode_AdapterAbstract: 3Zend_Validate_Alpha: 3Zend_Validate_Alnum: 9Zend_Validate_Abstract: Zend_Uri: 'Zend_Uri_Http: 1Zend_Uri_Exception: )Zend_Translate: 7Zend_Translate_Plural: =Zend_Translate_Exception: 9Zend_Translate_Adapter:! EZend_Translate_Adapter_XmlTm:! EZend_Translate_Adapter_Xliff: AZend_Translate_Adapter_Tmx: AZend_Translate_Adapter_Tbx: ?Zend_Translate_Adapter_Qt: AZend_Translate_Adapter_Ini:# IZend_Translate_Adapter_Gettext: AZend_Translate_Adapter_Csv:! EZend_Translate_Adapter_Array:$ KZend_Tool_Project_Provider_View:$ KZend_Tool_Project_Provider_Test:/
 aZend_Tool_Project_Provider_ProjectProvider:'	 QZend_Tool_Project_Provider_Project:' QZend_Tool_Project_Provider_Profile:& OZend_Tool_Project_Provider_Module:% MZend_Tool_Project_Provider_Model:( SZend_Tool_Project_Provider_Manifest:& OZend_Tool_Project_Provider_Layout:$ KZend_Tool_Project_Provider_Form:) UZend_Tool_Project_Provider_Exception:' QZend_Tool_Project_Provider_DbTable:)  UZend_Tool_Project_Provider_DbAdapter:* WZend_Tool_Project_Provider_Controller:+~ YZend_Tool_Project_Provider_Application:&} OZend_Tool_Project_Provider_Action:(| SZend_Tool_Project_Provider_Abstract:{ ?Zend_Tool_Project_Profile:'z QZend_Tool_Project_Profile_Resource:9y uZend_Tool_Project_Profile_Resource_SearchConstraints:1x eZend_Tool_Project_Profile_Resource_Container:=w }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter:5v mZend_Tool_Project_Profile_Iterator_ContextFilter:-u ]Zend_Tool_Project_Profile_FileParser_Xml:(t SZend_Tool_Project_Profile_Exception: s CZend_Tool_Project_Exception:<r {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory:0q cZend_Tool_Project_Context_Zf_ViewsDirectory:6p oZend_Tool_Project_Context_Zf_ViewScriptsDirectory:0o cZend_Tool_Project_Context_Zf_ViewScriptFile:6n oZend_Tool_Project_Context_Zf_ViewHelpersDirectory:6m oZend_Tool_Project_Context_Zf_ViewFiltersDirectory:Al Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory:2k gZend_Tool_Project_Context_Zf_UploadsDirectory:0j cZend_Tool_Project_Context_Zf_TestsDirectory:7i qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile::h wZend_Tool_Project_Context_Zf_TestPHPUnitBootstrapFile:   l  fAmI$_E&`A"nK5 




d
E
 					u	P	,	
uS-
}W5b?lLjFr9jEqXF                             4 ;Zend_Wildfire_Exception:&3 OZend_Wildfire_Channel_HttpHeaders:2 Zend_View:1 -Zend_View_Stream:0 AZend_View_Helper_UserAgent:/ 5Zend_View_Helper_Url:. AZend_View_Helper_Translate:- =Zend_View_Helper_TinySrc:, AZend_View_Helper_ServerUrl:)+ UZend_View_Helper_RenderToPlaceholder:!* EZend_View_Helper_Placeholder:*) WZend_View_Helper_Placeholder_Registry:4( kZend_View_Helper_Placeholder_Registry_Exception:+' YZend_View_Helper_Placeholder_Container:6& oZend_View_Helper_Placeholder_Container_Standalone:5% mZend_View_Helper_Placeholder_Container_Exception:4$ kZend_View_Helper_Placeholder_Container_Abstract:!# EZend_View_Helper_PartialLoop:" =Zend_View_Helper_Partial:'! QZend_View_Helper_Partial_Exception:'  QZend_View_Helper_PaginationControl:  CZend_View_Helper_Navigation:( SZend_View_Helper_Navigation_Sitemap:% MZend_View_Helper_Navigation_Menu:& OZend_View_Helper_Navigation_Links:/ aZend_View_Helper_Navigation_HelperAbstract:, [Zend_View_Helper_Navigation_Breadcrumbs: ;Zend_View_Helper_Layout: 7Zend_View_Helper_Json:" GZend_View_Helper_InlineScript:# IZend_View_Helper_HtmlQuicktime: ?Zend_View_Helper_HtmlPage:  CZend_View_Helper_HtmlObject: ?Zend_View_Helper_HtmlList: AZend_View_Helper_HtmlFlash:! EZend_View_Helper_HtmlElement: AZend_View_Helper_HeadTitle: AZend_View_Helper_HeadStyle:  CZend_View_Helper_HeadScript: ?Zend_View_Helper_HeadMeta: ?Zend_View_Helper_HeadLink: ?Zend_View_Helper_Gravatar:"
 GZend_View_Helper_FormTextarea:	 ?Zend_View_Helper_FormText:  CZend_View_Helper_FormSubmit:  CZend_View_Helper_FormSelect: AZend_View_Helper_FormReset: AZend_View_Helper_FormRadio:" GZend_View_Helper_FormPassword: ?Zend_View_Helper_FormNote:' QZend_View_Helper_FormMultiCheckbox: AZend_View_Helper_FormLabel:  AZend_View_Helper_FormImage:  CZend_View_Helper_FormHidden:~ ?Zend_View_Helper_FormFile: } CZend_View_Helper_FormErrors:!| EZend_View_Helper_FormElement:"{ GZend_View_Helper_FormCheckbox: z CZend_View_Helper_FormButton:y 7Zend_View_Helper_Form:x ?Zend_View_Helper_Fieldset:w =Zend_View_Helper_Doctype:!v EZend_View_Helper_DeclareVars:u 9Zend_View_Helper_Cycle:t ?Zend_View_Helper_Currency:s =Zend_View_Helper_BaseUrl:r ;Zend_View_Helper_Action:q ?Zend_View_Helper_Abstract:p 3Zend_View_Exception:o 1Zend_View_Abstract:n %Zend_Version:m 'Zend_Validate:l AZend_Validate_StringLength:#k IZend_Validate_Sitemap_Priority:j ?Zend_Validate_Sitemap_Loc:"i GZend_Validate_Sitemap_Lastmod:%h MZend_Validate_Sitemap_Changefreq:g 3Zend_Validate_Regex:f 9Zend_Validate_PostCode:e 9Zend_Validate_NotEmpty:d 9Zend_Validate_LessThan:c 1Zend_Validate_Isbn:b -Zend_Validate_Ip:a /Zend_Validate_Int:` 7Zend_Validate_InArray:_ ;Zend_Validate_Identical:^ 1Zend_Validate_Iban:] 9Zend_Validate_Hostname:\ /Zend_Validate_Hex:[ ?Zend_Validate_GreaterThan:Z 3Zend_Validate_Float:!Y EZend_Validate_File_WordCount:X ?Zend_Validate_File_Upload:W ;Zend_Validate_File_Size:V ;Zend_Validate_File_Sha1:!U EZend_Validate_File_NotExists: T CZend_Validate_File_MimeType:S 9Zend_Validate_File_Md5:R AZend_Validate_File_IsImage:$Q KZend_Validate_File_IsCompressed:!P EZend_Validate_File_ImageSize:O ;Zend_Validate_File_Hash:!N EZend_Validate_File_FilesSize:!M EZend_Validate_File_Extension:L ?Zend_Validate_File_Exists:'K QZend_Validate_File_ExcludeMimeType:(J SZend_Validate_File_ExcludeExtension:I =Zend_Validate_File_Crc32:   h  |R-|U:_=!{Y>nM)




l
Q
7
						e	F	+	pL)cA#
tS0uGi4`;d>c:             ( SZend_Application_Resource_Translate;& OZend_Application_Resource_Session;% MZend_Application_Resource_Router;/ aZend_Application_Resource_ResourceAbstract;) UZend_Application_Resource_Navigation;& OZend_Application_Resource_Multidb;& OZend_Application_Resource_Modules;# IZend_Application_Resource_Mail;" GZend_Application_Resource_Log;% MZend_Application_Resource_Locale;% MZend_Application_Resource_Layout;. _Zend_Application_Resource_Frontcontroller;( SZend_Application_Resource_Exception;# IZend_Application_Resource_Dojo;! EZend_Application_Resource_Db;+ YZend_Application_Resource_Cachemanager;& OZend_Application_Module_Bootstrap;' QZend_Application_Module_Autoloader;
 AZend_Application_Exception;)	 UZend_Application_Bootstrap_Exception;1 eZend_Application_Bootstrap_BootstrapAbstract;) UZend_Application_Bootstrap_Bootstrap; ?Zend_Amf_Value_TraitsInfo;- ]Zend_Amf_Value_Messaging_RemotingMessage;* WZend_Amf_Value_Messaging_ErrorMessage;, [Zend_Amf_Value_Messaging_CommandMessage;* WZend_Amf_Value_Messaging_AsyncMessage;- ]Zend_Amf_Value_Messaging_ArrayCollection;0  cZend_Amf_Value_Messaging_AcknowledgeMessage;- ]Zend_Amf_Value_Messaging_AbstractMessage;!~ EZend_Amf_Value_MessageHeader;} AZend_Amf_Value_MessageBody;| =Zend_Amf_Value_ByteArray;{ AZend_Amf_Util_BinaryStream;z +Zend_Amf_Server;y ?Zend_Amf_Server_Exception;x /Zend_Amf_Response;w 9Zend_Amf_Response_Http;v -Zend_Amf_Request;u 7Zend_Amf_Request_Http;t ?Zend_Amf_Parse_TypeLoader;s ?Zend_Amf_Parse_Serializer;#r IZend_Amf_Parse_Resource_Stream;(q SZend_Amf_Parse_Resource_MysqlResult;)p UZend_Amf_Parse_Resource_MysqliResult; o CZend_Amf_Parse_OutputStream;n AZend_Amf_Parse_InputStream; m CZend_Amf_Parse_Deserializer;#l IZend_Amf_Parse_Amf3_Serializer;%k MZend_Amf_Parse_Amf3_Deserializer;#j IZend_Amf_Parse_Amf0_Serializer;%i MZend_Amf_Parse_Amf0_Deserializer;h 1Zend_Amf_Exception;g 1Zend_Amf_Constants;f 9Zend_Amf_Auth_Abstract; e CZend_Amf_Adobe_Introspector;d AZend_Amf_Adobe_DbInspector;c 3Zend_Amf_Adobe_Auth;b Zend_Acl;a 'Zend_Acl_Role;` 9Zend_Acl_Role_Registry;%_ MZend_Acl_Role_Registry_Exception;^ /Zend_Acl_Resource;] 1Zend_Acl_Exception;\ /Zend_XmlRpc_Value:[ =Zend_XmlRpc_Value_Struct:Z =Zend_XmlRpc_Value_String:Y =Zend_XmlRpc_Value_Scalar:X 7Zend_XmlRpc_Value_Nil:W ?Zend_XmlRpc_Value_Integer: V CZend_XmlRpc_Value_Exception:U =Zend_XmlRpc_Value_Double:T AZend_XmlRpc_Value_DateTime:!S EZend_XmlRpc_Value_Collection:R ?Zend_XmlRpc_Value_Boolean:!Q EZend_XmlRpc_Value_BigInteger:P =Zend_XmlRpc_Value_Base64:O ;Zend_XmlRpc_Value_Array:N 1Zend_XmlRpc_Server:M ?Zend_XmlRpc_Server_System:L =Zend_XmlRpc_Server_Fault:!K EZend_XmlRpc_Server_Exception:J =Zend_XmlRpc_Server_Cache:I 5Zend_XmlRpc_Response:H ?Zend_XmlRpc_Response_Http:G 3Zend_XmlRpc_Request:F ?Zend_XmlRpc_Request_Stdin:E =Zend_XmlRpc_Request_Http:$D KZend_XmlRpc_Generator_XmlWriter:,C [Zend_XmlRpc_Generator_GeneratorAbstract:&B OZend_XmlRpc_Generator_DomDocument:A /Zend_XmlRpc_Fault:@ 7Zend_XmlRpc_Exception:? 1Zend_XmlRpc_Client:#> IZend_XmlRpc_Client_ServerProxy:+= YZend_XmlRpc_Client_ServerIntrospection:+< YZend_XmlRpc_Client_IntrospectException:%; MZend_XmlRpc_Client_HttpException:&: OZend_XmlRpc_Client_FaultException:!9 EZend_XmlRpc_Client_Exception:&8 OZend_Wildfire_Protocol_JsonStream:!7 EZend_Wildfire_Plugin_FirePhp:.6 _Zend_Wildfire_Plugin_FirePhp_TableMessage:)5 UZend_Wildfire_Plugin_FirePhp_Message:   V  GZ$jI(kAn?



v
O
				q	%j?QWHR$RhAR(                                   ^ CZend_Auth_Adapter_Interface;.] _Zend_Auth_Adapter_Http_Resolver_Interface;'\ QZend_Application_Resource_Resource;4[ kZend_Application_Bootstrap_ResourceBootstrapper;,Z [Zend_Application_Bootstrap_Bootstrapper;Y ;Zend_Acl_Role_Interface; X CZend_Acl_Resource_Interface;W ?Zend_Acl_Assert_Interface;#V IZend_Wildfire_Plugin_Interface:$U KZend_Wildfire_Channel_Interface:T 3Zend_View_Interface:'S QZend_View_Helper_Navigation_Helper:R AZend_View_Helper_Interface:Q ;Zend_Validate_Interface:+P YZend_Validate_Barcode_AdapterInterface:3O iZend_Tool_Project_Profile_FileParser_Interface::N wZend_Tool_Project_Context_System_TopLevelRestrictable:5M mZend_Tool_Project_Context_System_NotOverwritable:/L aZend_Tool_Project_Context_System_Interface:(K SZend_Tool_Project_Context_Interface:+J YZend_Tool_Framework_Registry_Interface:2I gZend_Tool_Framework_Registry_EnabledInterface:-H ]Zend_Tool_Framework_Provider_Pretendable:+G YZend_Tool_Framework_Provider_Interface:.F _Zend_Tool_Framework_Provider_Interactable:/E aZend_Tool_Framework_Provider_Initializable:;D yZend_Tool_Framework_Provider_DocblockManifestInterface:+C YZend_Tool_Framework_Metadata_Interface:.B _Zend_Tool_Framework_Metadata_Attributable:6A oZend_Tool_Framework_Manifest_ProviderManifestable:6@ oZend_Tool_Framework_Manifest_MetadataManifestable:+? YZend_Tool_Framework_Manifest_Interface:+> YZend_Tool_Framework_Manifest_Indexable:4= kZend_Tool_Framework_Manifest_ActionManifestable:)< UZend_Tool_Framework_Loader_Interface:8; sZend_Tool_Framework_Client_Storage_AdapterInterface:D: 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface:;9 yZend_Tool_Framework_Client_Interactive_OutputInterface::8 wZend_Tool_Framework_Client_Interactive_InputInterface:)7 UZend_Tool_Framework_Action_Interface:(6 SZend_Text_Table_Decorator_Interface:5 /Zend_Tag_Taggable:&4 OZend_Soap_Wsdl_Strategy_Interface:%3 MZend_Session_Validator_Interface:'2 QZend_Session_SaveHandler_Interface:$1 KZend_Service_ShortUrl_Shortener:I0 Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Interface:/ 7Zend_Server_Interface:-. ]Zend_Serializer_Adapter_AdapterInterface:4- kZend_Search_Lucene_Search_Highlighter_Interface:!, EZend_Search_Lucene_Interface:3+ iZend_Search_Lucene_Index_TermsStream_Interface:$* KZend_Queue_Stomp_FrameInterface:0) cZend_Queue_Stomp_Client_ConnectionInterface:(( SZend_Queue_Adapter_AdapterInterface:' ?Zend_Pdf_Filter_Interface:&& OZend_Pdf_ElementFactory_Interface:% ?Zend_Pdf_Canvas_Interface:,$ [Zend_Paginator_ScrollingStyle_Interface:$# KZend_Paginator_AdapterAggregate:%" MZend_Paginator_Adapter_Interface:&! OZend_Oauth_Config_ConfigInterface:$  KZend_Memory_Container_Interface:1 eZend_Markup_Renderer_TokenConverterInterface:' QZend_Markup_Parser_ParserInterface:) UZend_Mail_Storage_Writable_Interface:' QZend_Mail_Storage_Folder_Interface: =Zend_Mail_Part_Interface:  CZend_Mail_Message_Interface:! EZend_Log_Formatter_Interface: ?Zend_Log_Filter_Interface: ?Zend_Log_FactoryInterface:' QZend_Loader_PluginLoader_Interface:% MZend_Loader_Autoloader_Interface:0 cZend_Ldap_Node_Schema_ObjectClass_Interface:2 gZend_Ldap_Node_Schema_AttributeType_Interface:3 iZend_InfoCard_Xml_Security_Transform_Interface:( SZend_InfoCard_Xml_KeyInfo_Interface:( SZend_InfoCard_Xml_Element_Interface:* WZend_InfoCard_Xml_Assertion_Interface:- ]Zend_InfoCard_Cipher_Symmetric_Interface:7 qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface:7 qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interface:+ YZend_InfoCard_Cipher_Pki_Rsa_Interface:'
 QZend_InfoCard_Cipher_Pki_Interface:$	 KZend_InfoCard_Adapter_Interface:   g  rQ-mL0xT1|[9{X4




^
/
					l	G	%	xP%_=kQ2d*T%U`8}P                        ( SZend_Cloud_StorageService_Exception;3 iZend_Cloud_StorageService_Adapter_WindowsAzure;) UZend_Cloud_StorageService_Adapter_S3;/  aZend_Cloud_StorageService_Adapter_Nirvanix;1 eZend_Cloud_StorageService_Adapter_FileSystem;'~ QZend_Cloud_QueueService_MessageSet;$} KZend_Cloud_QueueService_Message;$| KZend_Cloud_QueueService_Factory;&{ OZend_Cloud_QueueService_Exception;.z _Zend_Cloud_QueueService_Adapter_ZendQueue;1y eZend_Cloud_QueueService_Adapter_WindowsAzure;(x SZend_Cloud_QueueService_Adapter_Sqs;4w kZend_Cloud_QueueService_Adapter_AbstractAdapter;.v _Zend_Cloud_OperationNotAvailableException;u 5Zend_Cloud_Exception;%t MZend_Cloud_DocumentService_Query;'s QZend_Cloud_DocumentService_Factory;)r UZend_Cloud_DocumentService_Exception;+q YZend_Cloud_DocumentService_DocumentSet;(p SZend_Cloud_DocumentService_Document;4o kZend_Cloud_DocumentService_Adapter_WindowsAzure;:n wZend_Cloud_DocumentService_Adapter_WindowsAzure_Query;0m cZend_Cloud_DocumentService_Adapter_SimpleDb;6l oZend_Cloud_DocumentService_Adapter_SimpleDb_Query;7k qZend_Cloud_DocumentService_Adapter_AbstractAdapter;j AZend_Cloud_AbstractFactory;i /Zend_Captcha_Word;h 9Zend_Captcha_ReCaptcha;g 1Zend_Captcha_Image;f 3Zend_Captcha_Figlet;e 9Zend_Captcha_Exception;d /Zend_Captcha_Dumb;c /Zend_Captcha_Base;b !Zend_Cache;a 1Zend_Cache_Manager;` =Zend_Cache_Frontend_Page;_ AZend_Cache_Frontend_Output;!^ EZend_Cache_Frontend_Function;] =Zend_Cache_Frontend_File;\ ?Zend_Cache_Frontend_Class; [ CZend_Cache_Frontend_Capture;Z 5Zend_Cache_Exception;Y +Zend_Cache_Core;X 1Zend_Cache_Backend;"W GZend_Cache_Backend_ZendServer;(V SZend_Cache_Backend_ZendServer_ShMem;'U QZend_Cache_Backend_ZendServer_Disk;$T KZend_Cache_Backend_ZendPlatform;S ?Zend_Cache_Backend_Xcache; R CZend_Cache_Backend_WinCache;!Q EZend_Cache_Backend_TwoLevels;P ;Zend_Cache_Backend_Test;O ?Zend_Cache_Backend_Static;N ?Zend_Cache_Backend_Sqlite;!M EZend_Cache_Backend_Memcached;$L KZend_Cache_Backend_Libmemcached;K ;Zend_Cache_Backend_File;!J EZend_Cache_Backend_BlackHole;I 9Zend_Cache_Backend_Apc;H %Zend_Barcode;G ?Zend_Barcode_Renderer_Svg;+F YZend_Barcode_Renderer_RendererAbstract;E ?Zend_Barcode_Renderer_Pdf; D CZend_Barcode_Renderer_Image;$C KZend_Barcode_Renderer_Exception;B =Zend_Barcode_Object_Upce;A =Zend_Barcode_Object_Upca;"@ GZend_Barcode_Object_Royalmail; ? CZend_Barcode_Object_Postnet;> AZend_Barcode_Object_Planet;'= QZend_Barcode_Object_ObjectAbstract;!< EZend_Barcode_Object_Leitcode;; ?Zend_Barcode_Object_Itf14;": GZend_Barcode_Object_Identcode;"9 GZend_Barcode_Object_Exception;8 ?Zend_Barcode_Object_Error;7 =Zend_Barcode_Object_Ean8;6 =Zend_Barcode_Object_Ean5;5 =Zend_Barcode_Object_Ean2;4 ?Zend_Barcode_Object_Ean13;3 AZend_Barcode_Object_Code39;*2 WZend_Barcode_Object_Code25interleaved;1 AZend_Barcode_Object_Code25; 0 CZend_Barcode_Object_Code128;/ 9Zend_Barcode_Exception;. Zend_Auth;- ?Zend_Auth_Storage_Session;$, KZend_Auth_Storage_NonPersistent; + CZend_Auth_Storage_Exception;* -Zend_Auth_Result;) 3Zend_Auth_Exception;( =Zend_Auth_Adapter_OpenId;' 9Zend_Auth_Adapter_Ldap;& AZend_Auth_Adapter_InfoCard;% 9Zend_Auth_Adapter_Http;)$ UZend_Auth_Adapter_Http_Resolver_File;.# _Zend_Auth_Adapter_Http_Resolver_Exception; " CZend_Auth_Adapter_Exception;! =Zend_Auth_Adapter_Digest;  ?Zend_Auth_Adapter_DbTable; -Zend_Application;# IZend_Application_Resource_View;( SZend_Application_Resource_UserAgent;   `  eAW/]'kR1	pX?+



_
-			z	N	_,{N" i=qD}O'~P$}\?dB*	                               c AZend_Crypt_Rsa_Key_Private;b =Zend_Crypt_Rsa_Exception;a +Zend_Crypt_Math;` ?Zend_Crypt_Math_Exception;_ AZend_Crypt_Math_BigInteger;#^ IZend_Crypt_Math_BigInteger_Gmp;)] UZend_Crypt_Math_BigInteger_Exception;&\ OZend_Crypt_Math_BigInteger_Bcmath;[ +Zend_Crypt_Hmac;Z ?Zend_Crypt_Hmac_Exception;Y 5Zend_Crypt_Exception;X =Zend_Crypt_DiffieHellman;'W QZend_Crypt_DiffieHellman_Exception;!V EZend_Controller_Router_Route;(U SZend_Controller_Router_Route_Static;'T QZend_Controller_Router_Route_Regex;(S SZend_Controller_Router_Route_Module;*R WZend_Controller_Router_Route_Hostname;'Q QZend_Controller_Router_Route_Chain;*P WZend_Controller_Router_Route_Abstract;#O IZend_Controller_Router_Rewrite;%N MZend_Controller_Router_Exception;$M KZend_Controller_Router_Abstract;*L WZend_Controller_Response_HttpTestCase;"K GZend_Controller_Response_Http;'J QZend_Controller_Response_Exception;!I EZend_Controller_Response_Cli;&H OZend_Controller_Response_Abstract;#G IZend_Controller_Request_Simple;)F UZend_Controller_Request_HttpTestCase;!E EZend_Controller_Request_Http;&D OZend_Controller_Request_Exception;&C OZend_Controller_Request_Apache404;%B MZend_Controller_Request_Abstract;&A OZend_Controller_Plugin_PutHandler;(@ SZend_Controller_Plugin_ErrorHandler;"? GZend_Controller_Plugin_Broker;'> QZend_Controller_Plugin_ActionStack;$= KZend_Controller_Plugin_Abstract;< 7Zend_Controller_Front;; ?Zend_Controller_Exception;(: SZend_Controller_Dispatcher_Standard;)9 UZend_Controller_Dispatcher_Exception;(8 SZend_Controller_Dispatcher_Abstract;7 9Zend_Controller_Action;(6 SZend_Controller_Action_HelperBroker;65 oZend_Controller_Action_HelperBroker_PriorityStack;/4 aZend_Controller_Action_Helper_ViewRenderer;&3 OZend_Controller_Action_Helper_Url;-2 ]Zend_Controller_Action_Helper_Redirector;'1 QZend_Controller_Action_Helper_Json;10 eZend_Controller_Action_Helper_FlashMessenger;0/ cZend_Controller_Action_Helper_ContextSwitch;(. SZend_Controller_Action_Helper_Cache;<- {Zend_Controller_Action_Helper_AutoCompleteScriptaculous;3, iZend_Controller_Action_Helper_AutoCompleteDojo;8+ sZend_Controller_Action_Helper_AutoComplete_Abstract;.* _Zend_Controller_Action_Helper_AjaxContext;.) _Zend_Controller_Action_Helper_ActionStack;+( YZend_Controller_Action_Helper_Abstract;%' MZend_Controller_Action_Exception;& 3Zend_Console_Getopt;"% GZend_Console_Getopt_Exception;$ #Zend_Config;# -Zend_Config_Yaml;" +Zend_Config_Xml;! 1Zend_Config_Writer;  ;Zend_Config_Writer_Yaml; 9Zend_Config_Writer_Xml; ;Zend_Config_Writer_Json; 9Zend_Config_Writer_Ini;$ KZend_Config_Writer_FileAbstract; =Zend_Config_Writer_Array; -Zend_Config_Json; +Zend_Config_Ini; 7Zend_Config_Exception;$ KZend_CodeGenerator_Php_Property;1 eZend_CodeGenerator_Php_Property_DefaultValue;% MZend_CodeGenerator_Php_Parameter;2 gZend_CodeGenerator_Php_Parameter_DefaultValue;" GZend_CodeGenerator_Php_Method;, [Zend_CodeGenerator_Php_Member_Container;+ YZend_CodeGenerator_Php_Member_Abstract;  CZend_CodeGenerator_Php_File;% MZend_CodeGenerator_Php_Exception;$ KZend_CodeGenerator_Php_Docblock;( SZend_CodeGenerator_Php_Docblock_Tag;/ aZend_CodeGenerator_Php_Docblock_Tag_Return;. _Zend_CodeGenerator_Php_Docblock_Tag_Param;0
 cZend_CodeGenerator_Php_Docblock_Tag_License;!	 EZend_CodeGenerator_Php_Class;  CZend_CodeGenerator_Php_Body;$ KZend_CodeGenerator_Php_Abstract;! EZend_CodeGenerator_Exception;  CZend_CodeGenerator_Abstract;& OZend_Cloud_StorageService_Factory;   l  ycJ-zQ2	}];lR=aC




e
C
%						_	<	mP:*d3}M}U&W'sEyHf8             #O IZend_Dojo_View_Helper_CheckBox;!N EZend_Dojo_View_Helper_Button;*M WZend_Dojo_View_Helper_BorderContainer;(L SZend_Dojo_View_Helper_AccordionPane;-K ]Zend_Dojo_View_Helper_AccordionContainer;J =Zend_Dojo_View_Exception;I )Zend_Dojo_Form;H 9Zend_Dojo_Form_SubForm;*G WZend_Dojo_Form_Element_VerticalSlider;-F ]Zend_Dojo_Form_Element_ValidationTextBox;'E QZend_Dojo_Form_Element_TimeTextBox;#D IZend_Dojo_Form_Element_TextBox;$C KZend_Dojo_Form_Element_Textarea;(B SZend_Dojo_Form_Element_SubmitButton;"A GZend_Dojo_Form_Element_Slider;*@ WZend_Dojo_Form_Element_SimpleTextarea;'? QZend_Dojo_Form_Element_RadioButton;+> YZend_Dojo_Form_Element_PasswordTextBox;)= UZend_Dojo_Form_Element_NumberTextBox;)< UZend_Dojo_Form_Element_NumberSpinner;,; [Zend_Dojo_Form_Element_HorizontalSlider;+: YZend_Dojo_Form_Element_FilteringSelect;"9 GZend_Dojo_Form_Element_Editor;&8 OZend_Dojo_Form_Element_DijitMulti;!7 EZend_Dojo_Form_Element_Dijit;'6 QZend_Dojo_Form_Element_DateTextBox;+5 YZend_Dojo_Form_Element_CurrencyTextBox;$4 KZend_Dojo_Form_Element_ComboBox;$3 KZend_Dojo_Form_Element_CheckBox;"2 GZend_Dojo_Form_Element_Button; 1 CZend_Dojo_Form_DisplayGroup;*0 WZend_Dojo_Form_Decorator_TabContainer;,/ [Zend_Dojo_Form_Decorator_StackContainer;,. [Zend_Dojo_Form_Decorator_SplitContainer;'- QZend_Dojo_Form_Decorator_DijitForm;*, WZend_Dojo_Form_Decorator_DijitElement;,+ [Zend_Dojo_Form_Decorator_DijitContainer;)* UZend_Dojo_Form_Decorator_ContentPane;-) ]Zend_Dojo_Form_Decorator_BorderContainer;+( YZend_Dojo_Form_Decorator_AccordionPane;0' cZend_Dojo_Form_Decorator_AccordionContainer;& 3Zend_Dojo_Exception;% )Zend_Dojo_Data;$ 5Zend_Dojo_BuildLayer;# !Zend_Debug;" Zend_Db;! 'Zend_Db_Table;  5Zend_Db_Table_Select;# IZend_Db_Table_Select_Exception; 5Zend_Db_Table_Rowset;# IZend_Db_Table_Rowset_Exception;" GZend_Db_Table_Rowset_Abstract; /Zend_Db_Table_Row;  CZend_Db_Table_Row_Exception; AZend_Db_Table_Row_Abstract; ;Zend_Db_Table_Exception; =Zend_Db_Table_Definition; 9Zend_Db_Table_Abstract; /Zend_Db_Statement; =Zend_Db_Statement_Sqlsrv;' QZend_Db_Statement_Sqlsrv_Exception; 7Zend_Db_Statement_Pdo; ?Zend_Db_Statement_Pdo_Oci; ?Zend_Db_Statement_Pdo_Ibm; =Zend_Db_Statement_Oracle;' QZend_Db_Statement_Oracle_Exception; =Zend_Db_Statement_Mysqli;' QZend_Db_Statement_Mysqli_Exception;  CZend_Db_Statement_Exception;
 7Zend_Db_Statement_Db2;$	 KZend_Db_Statement_Db2_Exception; )Zend_Db_Select; =Zend_Db_Select_Exception; -Zend_Db_Profiler; 9Zend_Db_Profiler_Query; =Zend_Db_Profiler_Firebug; AZend_Db_Profiler_Exception; %Zend_Db_Expr; /Zend_Db_Exception;  9Zend_Db_Adapter_Sqlsrv;% MZend_Db_Adapter_Sqlsrv_Exception;~ AZend_Db_Adapter_Pdo_Sqlite;} ?Zend_Db_Adapter_Pdo_Pgsql;| ;Zend_Db_Adapter_Pdo_Oci;{ ?Zend_Db_Adapter_Pdo_Mysql;z ?Zend_Db_Adapter_Pdo_Mssql;y ;Zend_Db_Adapter_Pdo_Ibm; x CZend_Db_Adapter_Pdo_Ibm_Ids; w CZend_Db_Adapter_Pdo_Ibm_Db2;!v EZend_Db_Adapter_Pdo_Abstract;u 9Zend_Db_Adapter_Oracle;%t MZend_Db_Adapter_Oracle_Exception;s 9Zend_Db_Adapter_Mysqli;%r MZend_Db_Adapter_Mysqli_Exception;q ?Zend_Db_Adapter_Exception;p 3Zend_Db_Adapter_Db2;"o GZend_Db_Adapter_Db2_Exception;n =Zend_Db_Adapter_Abstract;m Zend_Date;l 3Zend_Date_Exception;k 5Zend_Date_DateObject;j -Zend_Date_Cities;i 'Zend_Currency;h ;Zend_Currency_Exception;g !Zend_Crypt;f )Zend_Crypt_Rsa;e 1Zend_Crypt_Rsa_Key;d ?Zend_Crypt_Rsa_Key_Public;   ^  W-	g9a7
`5aO4





u
Q
)
					z	^	.	tKw@S"}JY%qO)_)vF                           5- mZend_Feed_Writer_Extension_ITunes_Renderer_Entry;+, YZend_Feed_Writer_Extension_ITunes_Feed;,+ [Zend_Feed_Writer_Extension_ITunes_Entry;8* sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed;9) uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry;6( oZend_Feed_Writer_Extension_Content_Renderer_Entry;2' gZend_Feed_Writer_Extension_Atom_Renderer_Feed;6& oZend_Feed_Writer_Exception_InvalidMethodException;% 9Zend_Feed_Writer_Entry;$ =Zend_Feed_Writer_Deleted;# 'Zend_Feed_Rss;" -Zend_Feed_Reader;! =Zend_Feed_Reader_FeedSet;"  GZend_Feed_Reader_FeedAbstract; ?Zend_Feed_Reader_Feed_Rss; AZend_Feed_Reader_Feed_Atom;& OZend_Feed_Reader_Feed_Atom_Source;3 iZend_Feed_Reader_Extension_WellFormedWeb_Entry;, [Zend_Feed_Reader_Extension_Thread_Entry;0 cZend_Feed_Reader_Extension_Syndication_Feed;+ YZend_Feed_Reader_Extension_Slash_Entry;, [Zend_Feed_Reader_Extension_Podcast_Feed;- ]Zend_Feed_Reader_Extension_Podcast_Entry;, [Zend_Feed_Reader_Extension_FeedAbstract;- ]Zend_Feed_Reader_Extension_EntryAbstract;/ aZend_Feed_Reader_Extension_DublinCore_Feed;0 cZend_Feed_Reader_Extension_DublinCore_Entry;4 kZend_Feed_Reader_Extension_CreativeCommons_Feed;5 mZend_Feed_Reader_Extension_CreativeCommons_Entry;- ]Zend_Feed_Reader_Extension_Content_Entry;) UZend_Feed_Reader_Extension_Atom_Feed;* WZend_Feed_Reader_Extension_Atom_Entry;# IZend_Feed_Reader_EntryAbstract; AZend_Feed_Reader_Entry_Rss;  CZend_Feed_Reader_Entry_Atom; 
 CZend_Feed_Reader_Collection;3	 iZend_Feed_Reader_Collection_CollectionAbstract;) UZend_Feed_Reader_Collection_Category;' QZend_Feed_Reader_Collection_Author; 9Zend_Feed_Pubsubhubbub;& OZend_Feed_Pubsubhubbub_Subscriber;/ aZend_Feed_Pubsubhubbub_Subscriber_Callback;% MZend_Feed_Pubsubhubbub_Publisher;. _Zend_Feed_Pubsubhubbub_Model_Subscription;/ aZend_Feed_Pubsubhubbub_Model_ModelAbstract;(  SZend_Feed_Pubsubhubbub_HttpResponse;% MZend_Feed_Pubsubhubbub_Exception;,~ [Zend_Feed_Pubsubhubbub_CallbackAbstract;} 3Zend_Feed_Exception;| 3Zend_Feed_Entry_Rss;{ 5Zend_Feed_Entry_Atom;z =Zend_Feed_Entry_Abstract;y /Zend_Feed_Element;x /Zend_Feed_Builder;w =Zend_Feed_Builder_Header;$v KZend_Feed_Builder_Header_Itunes; u CZend_Feed_Builder_Exception;t ;Zend_Feed_Builder_Entry;s )Zend_Feed_Atom;r 1Zend_Feed_Abstract;q )Zend_Exception;p )Zend_Dom_Query;o 7Zend_Dom_Query_Result;n =Zend_Dom_Query_Css2Xpath;m 1Zend_Dom_Exception;l Zend_Dojo;)k UZend_Dojo_View_Helper_VerticalSlider;,j [Zend_Dojo_View_Helper_ValidationTextBox;&i OZend_Dojo_View_Helper_TimeTextBox;"h GZend_Dojo_View_Helper_TextBox;#g IZend_Dojo_View_Helper_Textarea;'f QZend_Dojo_View_Helper_TabContainer;'e QZend_Dojo_View_Helper_SubmitButton;)d UZend_Dojo_View_Helper_StackContainer;)c UZend_Dojo_View_Helper_SplitContainer;!b EZend_Dojo_View_Helper_Slider;)a UZend_Dojo_View_Helper_SimpleTextarea;&` OZend_Dojo_View_Helper_RadioButton;*_ WZend_Dojo_View_Helper_PasswordTextBox;(^ SZend_Dojo_View_Helper_NumberTextBox;(] SZend_Dojo_View_Helper_NumberSpinner;+\ YZend_Dojo_View_Helper_HorizontalSlider;[ AZend_Dojo_View_Helper_Form;*Z WZend_Dojo_View_Helper_FilteringSelect;!Y EZend_Dojo_View_Helper_Editor;X AZend_Dojo_View_Helper_Dojo;)W UZend_Dojo_View_Helper_Dojo_Container;)V UZend_Dojo_View_Helper_DijitContainer; U CZend_Dojo_View_Helper_Dijit;&T OZend_Dojo_View_Helper_DateTextBox;&S OZend_Dojo_View_Helper_CustomDijit;*R WZend_Dojo_View_Helper_CurrencyTextBox;&Q OZend_Dojo_View_Helper_ContentPane;#P IZend_Dojo_View_Helper_ComboBox;   h  \ b5	qFtO4 [;




{
_
D
,
						i	F	&	h>%cEmCc9
~U1	sR1yM)yV2                              9Zend_Form_Element_Hash; 9Zend_Form_Element_File;  CZend_Form_Element_Exception; AZend_Form_Element_Checkbox; ?Zend_Form_Element_Captcha; =Zend_Form_Element_Button; 9Zend_Form_DisplayGroup;# IZend_Form_Decorator_ViewScript;# IZend_Form_Decorator_ViewHelper;  CZend_Form_Decorator_Tooltip;( SZend_Form_Decorator_PrepareElements;
 ?Zend_Form_Decorator_Label;	 ?Zend_Form_Decorator_Image;  CZend_Form_Decorator_HtmlTag;# IZend_Form_Decorator_FormErrors;% MZend_Form_Decorator_FormElements; =Zend_Form_Decorator_Form; =Zend_Form_Decorator_File;! EZend_Form_Decorator_Fieldset;" GZend_Form_Decorator_Exception; AZend_Form_Decorator_Errors;$  KZend_Form_Decorator_DtDdWrapper;$ KZend_Form_Decorator_Description; ~ CZend_Form_Decorator_Captcha;%} MZend_Form_Decorator_Captcha_Word;*| WZend_Form_Decorator_Captcha_ReCaptcha;!{ EZend_Form_Decorator_Callback;!z EZend_Form_Decorator_Abstract;y #Zend_Filter;+x YZend_Filter_Word_UnderscoreToSeparator;&w OZend_Filter_Word_UnderscoreToDash;+v YZend_Filter_Word_UnderscoreToCamelCase;*u WZend_Filter_Word_SeparatorToSeparator;%t MZend_Filter_Word_SeparatorToDash;*s WZend_Filter_Word_SeparatorToCamelCase;(r SZend_Filter_Word_Separator_Abstract;&q OZend_Filter_Word_DashToUnderscore;%p MZend_Filter_Word_DashToSeparator;%o MZend_Filter_Word_DashToCamelCase;+n YZend_Filter_Word_CamelCaseToUnderscore;*m WZend_Filter_Word_CamelCaseToSeparator;%l MZend_Filter_Word_CamelCaseToDash;k 7Zend_Filter_StripTags;j ?Zend_Filter_StripNewlines;i 9Zend_Filter_StringTrim;h ?Zend_Filter_StringToUpper;g ?Zend_Filter_StringToLower;f 5Zend_Filter_RealPath;e ;Zend_Filter_PregReplace;d -Zend_Filter_Null;&c OZend_Filter_NormalizedToLocalized;&b OZend_Filter_LocalizedToNormalized;a +Zend_Filter_Int;` /Zend_Filter_Input;_ 7Zend_Filter_Inflector;^ =Zend_Filter_HtmlEntities;] AZend_Filter_File_UpperCase;\ ;Zend_Filter_File_Rename;[ AZend_Filter_File_LowerCase;Z =Zend_Filter_File_Encrypt;Y =Zend_Filter_File_Decrypt;X 7Zend_Filter_Exception;W 3Zend_Filter_Encrypt; V CZend_Filter_Encrypt_Openssl;U AZend_Filter_Encrypt_Mcrypt;T +Zend_Filter_Dir;S 1Zend_Filter_Digits;R 3Zend_Filter_Decrypt;Q 9Zend_Filter_Decompress;P 5Zend_Filter_Compress;O =Zend_Filter_Compress_Zip;N =Zend_Filter_Compress_Tar;M =Zend_Filter_Compress_Rar;L =Zend_Filter_Compress_Lzf;K ;Zend_Filter_Compress_Gz;*J WZend_Filter_Compress_CompressAbstract;I =Zend_Filter_Compress_Bz2;H 5Zend_Filter_Callback;G 3Zend_Filter_Boolean;F 5Zend_Filter_BaseName;E /Zend_Filter_Alpha;D /Zend_Filter_Alnum;C 1Zend_File_Transfer;!B EZend_File_Transfer_Exception;$A KZend_File_Transfer_Adapter_Http;(@ SZend_File_Transfer_Adapter_Abstract;? Zend_Feed;> -Zend_Feed_Writer;= ;Zend_Feed_Writer_Source;/< aZend_Feed_Writer_Renderer_RendererAbstract;'; QZend_Feed_Writer_Renderer_Feed_Rss;(: SZend_Feed_Writer_Renderer_Feed_Atom;/9 aZend_Feed_Writer_Renderer_Feed_Atom_Source;58 mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract;(7 SZend_Feed_Writer_Renderer_Entry_Rss;)6 UZend_Feed_Writer_Renderer_Entry_Atom;15 eZend_Feed_Writer_Renderer_Entry_Atom_Deleted;4 7Zend_Feed_Writer_Feed;'3 QZend_Feed_Writer_Feed_FeedAbstract;<2 {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry;81 sZend_Feed_Writer_Extension_Threading_Renderer_Entry;40 kZend_Feed_Writer_Extension_Slash_Renderer_Entry;0/ cZend_Feed_Writer_Extension_RendererAbstract;4. kZend_Feed_Writer_Extension_ITunes_Renderer_Feed;   d  wQ.jJ0yR"i<tI#




e
:
				q	J	!pKy]5O"l;^8[,`:iQ!                                     )y UZend_Gdata_DublinCore_Extension_Date;,x [Zend_Gdata_DublinCore_Extension_Creator;w +Zend_Gdata_Docs;v 7Zend_Gdata_Docs_Query;%u MZend_Gdata_Docs_DocumentListFeed;&t OZend_Gdata_Docs_DocumentListEntry;s 9Zend_Gdata_ClientLogin;r 3Zend_Gdata_Calendar;!q EZend_Gdata_Calendar_ListFeed;"p GZend_Gdata_Calendar_ListEntry;-o ]Zend_Gdata_Calendar_Extension_WebContent;+n YZend_Gdata_Calendar_Extension_Timezone;9m uZend_Gdata_Calendar_Extension_SendEventNotifications;+l YZend_Gdata_Calendar_Extension_Selected;+k YZend_Gdata_Calendar_Extension_QuickAdd;'j QZend_Gdata_Calendar_Extension_Link;)i UZend_Gdata_Calendar_Extension_Hidden;(h SZend_Gdata_Calendar_Extension_Color;.g _Zend_Gdata_Calendar_Extension_AccessLevel;#f IZend_Gdata_Calendar_EventQuery;"e GZend_Gdata_Calendar_EventFeed;#d IZend_Gdata_Calendar_EventEntry;c -Zend_Gdata_Books;!b EZend_Gdata_Books_VolumeQuery; a CZend_Gdata_Books_VolumeFeed;!` EZend_Gdata_Books_VolumeEntry;+_ YZend_Gdata_Books_Extension_Viewability;-^ ]Zend_Gdata_Books_Extension_ThumbnailLink;&] OZend_Gdata_Books_Extension_Review;+\ YZend_Gdata_Books_Extension_PreviewLink;([ SZend_Gdata_Books_Extension_InfoLink;-Z ]Zend_Gdata_Books_Extension_Embeddability;)Y UZend_Gdata_Books_Extension_BooksLink;-X ]Zend_Gdata_Books_Extension_BooksCategory;.W _Zend_Gdata_Books_Extension_AnnotationLink;$V KZend_Gdata_Books_CollectionFeed;%U MZend_Gdata_Books_CollectionEntry;T 1Zend_Gdata_AuthSub;S )Zend_Gdata_App;$R KZend_Gdata_App_VersionException;Q 3Zend_Gdata_App_Util;#P IZend_Gdata_App_MediaFileSource;O ?Zend_Gdata_App_MediaEntry;2N gZend_Gdata_App_LoggingHttpClientAdapterSocket;M AZend_Gdata_App_IOException;,L [Zend_Gdata_App_InvalidArgumentException;!K EZend_Gdata_App_HttpException;$J KZend_Gdata_App_FeedSourceParent;#I IZend_Gdata_App_FeedEntryParent;H 3Zend_Gdata_App_Feed;G =Zend_Gdata_App_Extension;!F EZend_Gdata_App_Extension_Uri;%E MZend_Gdata_App_Extension_Updated;#D IZend_Gdata_App_Extension_Title;"C GZend_Gdata_App_Extension_Text;%B MZend_Gdata_App_Extension_Summary;&A OZend_Gdata_App_Extension_Subtitle;$@ KZend_Gdata_App_Extension_Source;$? KZend_Gdata_App_Extension_Rights;'> QZend_Gdata_App_Extension_Published;$= KZend_Gdata_App_Extension_Person;"< GZend_Gdata_App_Extension_Name;"; GZend_Gdata_App_Extension_Logo;": GZend_Gdata_App_Extension_Link; 9 CZend_Gdata_App_Extension_Id;"8 GZend_Gdata_App_Extension_Icon;'7 QZend_Gdata_App_Extension_Generator;#6 IZend_Gdata_App_Extension_Email;%5 MZend_Gdata_App_Extension_Element;$4 KZend_Gdata_App_Extension_Edited;#3 IZend_Gdata_App_Extension_Draft;%2 MZend_Gdata_App_Extension_Control;)1 UZend_Gdata_App_Extension_Contributor;%0 MZend_Gdata_App_Extension_Content;&/ OZend_Gdata_App_Extension_Category;$. KZend_Gdata_App_Extension_Author;- =Zend_Gdata_App_Exception;, 5Zend_Gdata_App_Entry;,+ [Zend_Gdata_App_CaptchaRequiredException;#* IZend_Gdata_App_BaseMediaSource;) 3Zend_Gdata_App_Base;*( WZend_Gdata_App_BadMethodCallException;!' EZend_Gdata_App_AuthException;& Zend_Form;% /Zend_Form_SubForm;$ 3Zend_Form_Exception;# /Zend_Form_Element;" ;Zend_Form_Element_Xhtml;! AZend_Form_Element_Textarea;  9Zend_Form_Element_Text; =Zend_Form_Element_Submit; =Zend_Form_Element_Select; ;Zend_Form_Element_Reset; ;Zend_Form_Element_Radio; AZend_Form_Element_Password;" GZend_Form_Element_Multiselect;$ KZend_Form_Element_MultiCheckbox; ;Zend_Form_Element_Multi; ;Zend_Form_Element_Image; =Zend_Form_Element_Hidden;   d  j9z\C%yQ!^A)]/	


o
D
 				w	O	-	
e=_6iF"g@iG$zX5oBnH     ] ;Zend_Gdata_Health_Query;&\ OZend_Gdata_Health_ProfileListFeed;'[ QZend_Gdata_Health_ProfileListEntry;"Z GZend_Gdata_Health_ProfileFeed;#Y IZend_Gdata_Health_ProfileEntry;$X KZend_Gdata_Health_Extension_Ccr;W )Zend_Gdata_Geo;V 3Zend_Gdata_Geo_Feed;$U KZend_Gdata_Geo_Extension_GmlPos;&T OZend_Gdata_Geo_Extension_GmlPoint;)S UZend_Gdata_Geo_Extension_GeoRssWhere;R 5Zend_Gdata_Geo_Entry;Q -Zend_Gdata_Gbase;"P GZend_Gdata_Gbase_SnippetQuery;!O EZend_Gdata_Gbase_SnippetFeed;"N GZend_Gdata_Gbase_SnippetEntry;M 9Zend_Gdata_Gbase_Query;L AZend_Gdata_Gbase_ItemQuery;K ?Zend_Gdata_Gbase_ItemFeed;J AZend_Gdata_Gbase_ItemEntry;I 7Zend_Gdata_Gbase_Feed;-H ]Zend_Gdata_Gbase_Extension_BaseAttribute;G 9Zend_Gdata_Gbase_Entry;F -Zend_Gdata_Gapps;E AZend_Gdata_Gapps_UserQuery;D ?Zend_Gdata_Gapps_UserFeed;C AZend_Gdata_Gapps_UserEntry;&B OZend_Gdata_Gapps_ServiceException;A 9Zend_Gdata_Gapps_Query; @ CZend_Gdata_Gapps_OwnerQuery;? AZend_Gdata_Gapps_OwnerFeed; > CZend_Gdata_Gapps_OwnerEntry;#= IZend_Gdata_Gapps_NicknameQuery;"< GZend_Gdata_Gapps_NicknameFeed;#; IZend_Gdata_Gapps_NicknameEntry;!: EZend_Gdata_Gapps_MemberQuery; 9 CZend_Gdata_Gapps_MemberFeed;!8 EZend_Gdata_Gapps_MemberEntry; 7 CZend_Gdata_Gapps_GroupQuery;6 AZend_Gdata_Gapps_GroupFeed; 5 CZend_Gdata_Gapps_GroupEntry;%4 MZend_Gdata_Gapps_Extension_Quota;(3 SZend_Gdata_Gapps_Extension_Property;(2 SZend_Gdata_Gapps_Extension_Nickname;$1 KZend_Gdata_Gapps_Extension_Name;%0 MZend_Gdata_Gapps_Extension_Login;)/ UZend_Gdata_Gapps_Extension_EmailList;. 9Zend_Gdata_Gapps_Error;-- ]Zend_Gdata_Gapps_EmailListRecipientQuery;,, [Zend_Gdata_Gapps_EmailListRecipientFeed;-+ ]Zend_Gdata_Gapps_EmailListRecipientEntry;$* KZend_Gdata_Gapps_EmailListQuery;#) IZend_Gdata_Gapps_EmailListFeed;$( KZend_Gdata_Gapps_EmailListEntry;' +Zend_Gdata_Feed;& 5Zend_Gdata_Extension;% =Zend_Gdata_Extension_Who;$ AZend_Gdata_Extension_Where;# ?Zend_Gdata_Extension_When;$" KZend_Gdata_Extension_Visibility;&! OZend_Gdata_Extension_Transparency;"  GZend_Gdata_Extension_Reminder;- ]Zend_Gdata_Extension_RecurrenceException;$ KZend_Gdata_Extension_Recurrence;  CZend_Gdata_Extension_Rating;' QZend_Gdata_Extension_OriginalEvent;0 cZend_Gdata_Extension_OpenSearchTotalResults;. _Zend_Gdata_Extension_OpenSearchStartIndex;0 cZend_Gdata_Extension_OpenSearchItemsPerPage;" GZend_Gdata_Extension_FeedLink;* WZend_Gdata_Extension_ExtendedProperty;% MZend_Gdata_Extension_EventStatus;# IZend_Gdata_Extension_EntryLink;" GZend_Gdata_Extension_Comments;& OZend_Gdata_Extension_AttendeeType;( SZend_Gdata_Extension_AttendeeStatus; +Zend_Gdata_Exif; 5Zend_Gdata_Exif_Feed;# IZend_Gdata_Exif_Extension_Time;# IZend_Gdata_Exif_Extension_Tags;$ KZend_Gdata_Exif_Extension_Model;# IZend_Gdata_Exif_Extension_Make;" GZend_Gdata_Exif_Extension_Iso;,
 [Zend_Gdata_Exif_Extension_ImageUniqueId;$	 KZend_Gdata_Exif_Extension_FStop;* WZend_Gdata_Exif_Extension_FocalLength;$ KZend_Gdata_Exif_Extension_Flash;' QZend_Gdata_Exif_Extension_Exposure;' QZend_Gdata_Exif_Extension_Distance; 7Zend_Gdata_Exif_Entry; -Zend_Gdata_Entry; 7Zend_Gdata_DublinCore;* WZend_Gdata_DublinCore_Extension_Title;,  [Zend_Gdata_DublinCore_Extension_Subject;+ YZend_Gdata_DublinCore_Extension_Rights;.~ _Zend_Gdata_DublinCore_Extension_Publisher;-} ]Zend_Gdata_DublinCore_Extension_Language;/| aZend_Gdata_DublinCore_Extension_Identifier;+{ YZend_Gdata_DublinCore_Extension_Format;0z cZend_Gdata_DublinCore_Extension_Description;   \  mJ+i5zKlS0]2



O
				d	;	}Pl>oK&~e;X'wFpH }T)                 )9 UZend_Gdata_YouTube_Extension_Control;)8 UZend_Gdata_YouTube_Extension_Company;'7 QZend_Gdata_YouTube_Extension_Books;%6 MZend_Gdata_YouTube_Extension_Age;)5 UZend_Gdata_YouTube_Extension_AboutMe;#4 IZend_Gdata_YouTube_ContactFeed;$3 KZend_Gdata_YouTube_ContactEntry;#2 IZend_Gdata_YouTube_CommentFeed;$1 KZend_Gdata_YouTube_CommentEntry;$0 KZend_Gdata_YouTube_ActivityFeed;%/ MZend_Gdata_YouTube_ActivityEntry;. ;Zend_Gdata_Spreadsheets;*- WZend_Gdata_Spreadsheets_WorksheetFeed;+, YZend_Gdata_Spreadsheets_WorksheetEntry;,+ [Zend_Gdata_Spreadsheets_SpreadsheetFeed;-* ]Zend_Gdata_Spreadsheets_SpreadsheetEntry;&) OZend_Gdata_Spreadsheets_ListQuery;%( MZend_Gdata_Spreadsheets_ListFeed;&' OZend_Gdata_Spreadsheets_ListEntry;/& aZend_Gdata_Spreadsheets_Extension_RowCount;-% ]Zend_Gdata_Spreadsheets_Extension_Custom;/$ aZend_Gdata_Spreadsheets_Extension_ColCount;+# YZend_Gdata_Spreadsheets_Extension_Cell;*" WZend_Gdata_Spreadsheets_DocumentQuery;&! OZend_Gdata_Spreadsheets_CellQuery;%  MZend_Gdata_Spreadsheets_CellFeed;& OZend_Gdata_Spreadsheets_CellEntry; -Zend_Gdata_Query; /Zend_Gdata_Photos;  CZend_Gdata_Photos_UserQuery; AZend_Gdata_Photos_UserFeed;  CZend_Gdata_Photos_UserEntry; AZend_Gdata_Photos_TagEntry;! EZend_Gdata_Photos_PhotoQuery;  CZend_Gdata_Photos_PhotoFeed;! EZend_Gdata_Photos_PhotoEntry;& OZend_Gdata_Photos_Extension_Width;' QZend_Gdata_Photos_Extension_Weight;( SZend_Gdata_Photos_Extension_Version;% MZend_Gdata_Photos_Extension_User;* WZend_Gdata_Photos_Extension_Timestamp;* WZend_Gdata_Photos_Extension_Thumbnail;% MZend_Gdata_Photos_Extension_Size;) UZend_Gdata_Photos_Extension_Rotation;+ YZend_Gdata_Photos_Extension_QuotaLimit;- ]Zend_Gdata_Photos_Extension_QuotaCurrent;) UZend_Gdata_Photos_Extension_Position;(
 SZend_Gdata_Photos_Extension_PhotoId;3	 iZend_Gdata_Photos_Extension_NumPhotosRemaining;* WZend_Gdata_Photos_Extension_NumPhotos;) UZend_Gdata_Photos_Extension_Nickname;% MZend_Gdata_Photos_Extension_Name;2 gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum;) UZend_Gdata_Photos_Extension_Location;# IZend_Gdata_Photos_Extension_Id;' QZend_Gdata_Photos_Extension_Height;2 gZend_Gdata_Photos_Extension_CommentingEnabled;-  ]Zend_Gdata_Photos_Extension_CommentCount;' QZend_Gdata_Photos_Extension_Client;)~ UZend_Gdata_Photos_Extension_Checksum;*} WZend_Gdata_Photos_Extension_BytesUsed;(| SZend_Gdata_Photos_Extension_AlbumId;'{ QZend_Gdata_Photos_Extension_Access;#z IZend_Gdata_Photos_CommentEntry;!y EZend_Gdata_Photos_AlbumQuery; x CZend_Gdata_Photos_AlbumFeed;!w EZend_Gdata_Photos_AlbumEntry;v 3Zend_Gdata_MimeFile;u ?Zend_Gdata_MimeBodyString;t AZend_Gdata_MediaMimeStream;s -Zend_Gdata_Media;r 7Zend_Gdata_Media_Feed;*q WZend_Gdata_Media_Extension_MediaTitle;.p _Zend_Gdata_Media_Extension_MediaThumbnail;)o UZend_Gdata_Media_Extension_MediaText;0n cZend_Gdata_Media_Extension_MediaRestriction;+m YZend_Gdata_Media_Extension_MediaRating;+l YZend_Gdata_Media_Extension_MediaPlayer;-k ]Zend_Gdata_Media_Extension_MediaKeywords;)j UZend_Gdata_Media_Extension_MediaHash;*i WZend_Gdata_Media_Extension_MediaGroup;0h cZend_Gdata_Media_Extension_MediaDescription;+g YZend_Gdata_Media_Extension_MediaCredit;.f _Zend_Gdata_Media_Extension_MediaCopyright;,e [Zend_Gdata_Media_Extension_MediaContent;-d ]Zend_Gdata_Media_Extension_MediaCategory;c 9Zend_Gdata_Media_Entry;b AZend_Gdata_Kind_EventEntry;a 7Zend_Gdata_HttpClient;*` WZend_Gdata_HttpAdapterStreamingSocket;)_ UZend_Gdata_HttpAdapterStreamingProxy;^ /Zend_Gdata_Health;   ]  rCd6rF[- wE



a
6
				b	<	[/wd>{bI-eAe/ vU'f@Z!            5Zend_InfoCard_Cipher;5 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc;5 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc;4 kZend_InfoCard_Cipher_Symmetric_Adapter_Abstract;) UZend_InfoCard_Cipher_Pki_Adapter_Rsa;. _Zend_InfoCard_Cipher_Pki_Adapter_Abstract;# IZend_InfoCard_Cipher_Exception;$ KZend_InfoCard_Adapter_Exception;" GZend_InfoCard_Adapter_Default; 3Zend_Http_UserAgent;" GZend_Http_UserAgent_Validator; =Zend_Http_UserAgent_Text;(
 SZend_Http_UserAgent_Storage_Session;.	 _Zend_Http_UserAgent_Storage_NonPersistent;* WZend_Http_UserAgent_Storage_Exception; =Zend_Http_UserAgent_Spam; ?Zend_Http_UserAgent_Probe;  CZend_Http_UserAgent_Offline; AZend_Http_UserAgent_Mobile; =Zend_Http_UserAgent_Feed;+ YZend_Http_UserAgent_Features_Exception;2 gZend_Http_UserAgent_Features_Adapter_WurflApi;3  iZend_Http_UserAgent_Features_Adapter_TeraWurfl;5 mZend_Http_UserAgent_Features_Adapter_DeviceAtlas;"~ GZend_Http_UserAgent_Exception;} ?Zend_Http_UserAgent_Email; | CZend_Http_UserAgent_Desktop; { CZend_Http_UserAgent_Console; z CZend_Http_UserAgent_Checker;y ;Zend_Http_UserAgent_Bot;'x QZend_Http_UserAgent_AbstractDevice;w 1Zend_Http_Response;v ?Zend_Http_Response_Stream;u 3Zend_Http_Exception;t 3Zend_Http_CookieJar;s -Zend_Http_Cookie;r -Zend_Http_Client;q AZend_Http_Client_Exception;"p GZend_Http_Client_Adapter_Test;$o KZend_Http_Client_Adapter_Socket;#n IZend_Http_Client_Adapter_Proxy;'m QZend_Http_Client_Adapter_Exception;"l GZend_Http_Client_Adapter_Curl;k !Zend_Gdata;j 1Zend_Gdata_YouTube;"i GZend_Gdata_YouTube_VideoQuery;!h EZend_Gdata_YouTube_VideoFeed;"g GZend_Gdata_YouTube_VideoEntry;(f SZend_Gdata_YouTube_UserProfileEntry;(e SZend_Gdata_YouTube_SubscriptionFeed;)d UZend_Gdata_YouTube_SubscriptionEntry;)c UZend_Gdata_YouTube_PlaylistVideoFeed;*b WZend_Gdata_YouTube_PlaylistVideoEntry;(a SZend_Gdata_YouTube_PlaylistListFeed;)` UZend_Gdata_YouTube_PlaylistListEntry;"_ GZend_Gdata_YouTube_MediaEntry;!^ EZend_Gdata_YouTube_InboxFeed;"] GZend_Gdata_YouTube_InboxEntry;)\ UZend_Gdata_YouTube_Extension_VideoId;*[ WZend_Gdata_YouTube_Extension_Username;*Z WZend_Gdata_YouTube_Extension_Uploaded;'Y QZend_Gdata_YouTube_Extension_Token;(X SZend_Gdata_YouTube_Extension_Status;,W [Zend_Gdata_YouTube_Extension_Statistics;'V QZend_Gdata_YouTube_Extension_State;(U SZend_Gdata_YouTube_Extension_School;-T ]Zend_Gdata_YouTube_Extension_ReleaseDate;.S _Zend_Gdata_YouTube_Extension_Relationship;*R WZend_Gdata_YouTube_Extension_Recorded;&Q OZend_Gdata_YouTube_Extension_Racy;-P ]Zend_Gdata_YouTube_Extension_QueryString;)O UZend_Gdata_YouTube_Extension_Private;*N WZend_Gdata_YouTube_Extension_Position;/M aZend_Gdata_YouTube_Extension_PlaylistTitle;,L [Zend_Gdata_YouTube_Extension_PlaylistId;,K [Zend_Gdata_YouTube_Extension_Occupation;)J UZend_Gdata_YouTube_Extension_NoEmbed;'I QZend_Gdata_YouTube_Extension_Music;(H SZend_Gdata_YouTube_Extension_Movies;-G ]Zend_Gdata_YouTube_Extension_MediaRating;,F [Zend_Gdata_YouTube_Extension_MediaGroup;-E ]Zend_Gdata_YouTube_Extension_MediaCredit;.D _Zend_Gdata_YouTube_Extension_MediaContent;*C WZend_Gdata_YouTube_Extension_Location;&B OZend_Gdata_YouTube_Extension_Link;*A WZend_Gdata_YouTube_Extension_LastName;*@ WZend_Gdata_YouTube_Extension_Hometown;)? UZend_Gdata_YouTube_Extension_Hobbies;(> SZend_Gdata_YouTube_Extension_Gender;+= YZend_Gdata_YouTube_Extension_FirstName;*< WZend_Gdata_YouTube_Extension_Duration;-; ]Zend_Gdata_YouTube_Extension_Description;+: YZend_Gdata_YouTube_Extension_CountHint;   p  qM+|X-JZD*|V5





K

 					_	C	.	qT8vGl7bK9tO6qP0fE*
uQ@$     /Zend_Mail_Message; 9Zend_Mail_Message_File; 3Zend_Mail_Exception; Zend_Log;  CZend_Log_Writer_ZendMonitor; 9Zend_Log_Writer_Syslog;  9Zend_Log_Writer_Stream; 5Zend_Log_Writer_Null;~ 5Zend_Log_Writer_Mock;} 5Zend_Log_Writer_Mail;| ;Zend_Log_Writer_Firebug;{ 1Zend_Log_Writer_Db;z =Zend_Log_Writer_Abstract;y 9Zend_Log_Formatter_Xml;x ?Zend_Log_Formatter_Simple;w AZend_Log_Formatter_Firebug; v CZend_Log_Formatter_Abstract;u =Zend_Log_Filter_Suppress;t =Zend_Log_Filter_Priority;s ;Zend_Log_Filter_Message;r =Zend_Log_Filter_Abstract;q 1Zend_Log_Exception;p #Zend_Locale;o -Zend_Locale_Math;n =Zend_Locale_Math_PhpMath;m AZend_Locale_Math_Exception;l 1Zend_Locale_Format;k 7Zend_Locale_Exception;j -Zend_Locale_Data;!i EZend_Locale_Data_Translation;h #Zend_Loader;g =Zend_Loader_PluginLoader;'f QZend_Loader_PluginLoader_Exception;e 7Zend_Loader_Exception;d 9Zend_Loader_Autoloader;$c KZend_Loader_Autoloader_Resource;b Zend_Ldap;a )Zend_Ldap_Node;` 7Zend_Ldap_Node_Schema;#_ IZend_Ldap_Node_Schema_OpenLdap;/^ aZend_Ldap_Node_Schema_ObjectClass_OpenLdap;6] oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectory;\ AZend_Ldap_Node_Schema_Item;1[ eZend_Ldap_Node_Schema_AttributeType_OpenLdap;8Z sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory;*Y WZend_Ldap_Node_Schema_ActiveDirectory;X 9Zend_Ldap_Node_RootDse;$W KZend_Ldap_Node_RootDse_OpenLdap;&V OZend_Ldap_Node_RootDse_eDirectory;+U YZend_Ldap_Node_RootDse_ActiveDirectory;T ?Zend_Ldap_Node_Collection;$S KZend_Ldap_Node_ChildrenIterator;R ;Zend_Ldap_Node_Abstract;Q 9Zend_Ldap_Ldif_Encoder;P -Zend_Ldap_Filter;O ;Zend_Ldap_Filter_String;N 3Zend_Ldap_Filter_Or;M 5Zend_Ldap_Filter_Not;L 7Zend_Ldap_Filter_Mask;K =Zend_Ldap_Filter_Logical;J AZend_Ldap_Filter_Exception;I 5Zend_Ldap_Filter_And;H ?Zend_Ldap_Filter_Abstract;G 3Zend_Ldap_Exception;F %Zend_Ldap_Dn;E 3Zend_Ldap_Converter;"D GZend_Ldap_Converter_Exception;C 5Zend_Ldap_Collection;*B WZend_Ldap_Collection_Iterator_Default;A 3Zend_Ldap_Attribute;@ #Zend_Layout;? 7Zend_Layout_Exception;)> UZend_Layout_Controller_Plugin_Layout;0= cZend_Layout_Controller_Action_Helper_Layout;< Zend_Json;; -Zend_Json_Server;: 5Zend_Json_Server_Smd;!9 EZend_Json_Server_Smd_Service;8 ?Zend_Json_Server_Response;#7 IZend_Json_Server_Response_Http;6 =Zend_Json_Server_Request;"5 GZend_Json_Server_Request_Http;4 AZend_Json_Server_Exception;3 9Zend_Json_Server_Error;2 9Zend_Json_Server_Cache;1 )Zend_Json_Expr;0 3Zend_Json_Exception;/ /Zend_Json_Encoder;. /Zend_Json_Decoder;- 'Zend_InfoCard;-, ]Zend_InfoCard_Xml_SecurityTokenReference;+ AZend_InfoCard_Xml_Security;)* UZend_InfoCard_Xml_Security_Transform;4) kZend_InfoCard_Xml_Security_Transform_XmlExcC14N;3( iZend_InfoCard_Xml_Security_Transform_Exception;<' {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignature;)& UZend_InfoCard_Xml_Security_Exception;% ?Zend_InfoCard_Xml_KeyInfo;&$ OZend_InfoCard_Xml_KeyInfo_XmlDSig;&# OZend_InfoCard_Xml_KeyInfo_Default;'" QZend_InfoCard_Xml_KeyInfo_Abstract; ! CZend_InfoCard_Xml_Exception;#  IZend_InfoCard_Xml_EncryptedKey;$ KZend_InfoCard_Xml_EncryptedData;+ YZend_InfoCard_Xml_EncryptedData_XmlEnc;- ]Zend_InfoCard_Xml_EncryptedData_Abstract; ?Zend_InfoCard_Xml_Element;  CZend_InfoCard_Xml_Assertion;% MZend_InfoCard_Xml_Assertion_Saml; ;Zend_InfoCard_Exception;% MZend_InfoCard_Exception_Abstract; 5Zend_InfoCard_Claims;   v dD~Z1k@&tbD"]7




b
N
0
					x	T	7	eF$yX>"uP*oU>,
qW=!qY7uT;({]3                          !| EZend_OpenId_Provider_Storage;&{ OZend_OpenId_Provider_Storage_File;z 7Zend_OpenId_Extension;y AZend_OpenId_Extension_Sreg;x 7Zend_OpenId_Exception;w 5Zend_OpenId_Consumer;!v EZend_OpenId_Consumer_Storage;&u OZend_OpenId_Consumer_Storage_File;t !Zend_Oauth;s -Zend_Oauth_Token;r =Zend_Oauth_Token_Request;'q QZend_Oauth_Token_AuthorizedRequest;p ;Zend_Oauth_Token_Access;+o YZend_Oauth_Signature_SignatureAbstract;n =Zend_Oauth_Signature_Rsa;#m IZend_Oauth_Signature_Plaintext;l ?Zend_Oauth_Signature_Hmac;k +Zend_Oauth_Http;j ;Zend_Oauth_Http_Utility;&i OZend_Oauth_Http_UserAuthorization;!h EZend_Oauth_Http_RequestToken; g CZend_Oauth_Http_AccessToken;f 5Zend_Oauth_Exception;e 3Zend_Oauth_Consumer;d /Zend_Oauth_Config;c /Zend_Oauth_Client;b +Zend_Navigation;a 5Zend_Navigation_Page;` =Zend_Navigation_Page_Uri;_ =Zend_Navigation_Page_Mvc;^ ?Zend_Navigation_Exception;] ?Zend_Navigation_Container;\ Zend_Mime;[ )Zend_Mime_Part;Z /Zend_Mime_Message;Y 3Zend_Mime_Exception;X -Zend_Mime_Decode;W #Zend_Memory;V /Zend_Memory_Value;U 3Zend_Memory_Manager;T 7Zend_Memory_Exception;S 7Zend_Memory_Container;"R GZend_Memory_Container_Movable;!Q EZend_Memory_Container_Locked;!P EZend_Memory_AccessController;O 3Zend_Measure_Weight;N 3Zend_Measure_Volume;%M MZend_Measure_Viscosity_Kinematic;#L IZend_Measure_Viscosity_Dynamic;K 3Zend_Measure_Torque;J /Zend_Measure_Time;I =Zend_Measure_Temperature;H 1Zend_Measure_Speed;G 7Zend_Measure_Pressure;F 1Zend_Measure_Power;E 3Zend_Measure_Number;D 9Zend_Measure_Lightness;C 3Zend_Measure_Length;B ?Zend_Measure_Illumination;A 9Zend_Measure_Frequency;@ 1Zend_Measure_Force;? =Zend_Measure_Flow_Volume;> 9Zend_Measure_Flow_Mole;= 9Zend_Measure_Flow_Mass;< 9Zend_Measure_Exception;; 3Zend_Measure_Energy;: 5Zend_Measure_Density;9 5Zend_Measure_Current; 8 CZend_Measure_Cooking_Weight; 7 CZend_Measure_Cooking_Volume;6 =Zend_Measure_Capacitance;5 3Zend_Measure_Binary;4 /Zend_Measure_Area;3 1Zend_Measure_Angle;2 ?Zend_Measure_Acceleration;1 7Zend_Measure_Abstract;0 #Zend_Markup;/ 7Zend_Markup_TokenList;. /Zend_Markup_Token;*- WZend_Markup_Renderer_RendererAbstract;, ?Zend_Markup_Renderer_Html;"+ GZend_Markup_Renderer_Html_Url;#* IZend_Markup_Renderer_Html_List;") GZend_Markup_Renderer_Html_Img;+( YZend_Markup_Renderer_Html_HtmlAbstract;#' IZend_Markup_Renderer_Html_Code;#& IZend_Markup_Renderer_Exception;% AZend_Markup_Parser_Textile;!$ EZend_Markup_Parser_Exception;# ?Zend_Markup_Parser_Bbcode;" 7Zend_Markup_Exception;! Zend_Mail;  =Zend_Mail_Transport_Smtp;! EZend_Mail_Transport_Sendmail; =Zend_Mail_Transport_File;" GZend_Mail_Transport_Exception;! EZend_Mail_Transport_Abstract; /Zend_Mail_Storage;' QZend_Mail_Storage_Writable_Maildir; 9Zend_Mail_Storage_Pop3; 9Zend_Mail_Storage_Mbox; ?Zend_Mail_Storage_Maildir; 9Zend_Mail_Storage_Imap; =Zend_Mail_Storage_Folder;" GZend_Mail_Storage_Folder_Mbox;% MZend_Mail_Storage_Folder_Maildir;  CZend_Mail_Storage_Exception; AZend_Mail_Storage_Abstract; ;Zend_Mail_Protocol_Smtp;' QZend_Mail_Protocol_Smtp_Auth_Plain;' QZend_Mail_Protocol_Smtp_Auth_Login;) UZend_Mail_Protocol_Smtp_Auth_Crammd5; ;Zend_Mail_Protocol_Pop3; ;Zend_Mail_Protocol_Imap;!
 EZend_Mail_Protocol_Exception; 	 CZend_Mail_Protocol_Abstract; )Zend_Mail_Part; 3Zend_Mail_Part_File;   n ^6	rD`B$fD"`D,




_
G
						_	C	(	f0fD'f?aA(jI#gG&xaG&`<                                        ,j [Zend_Pdf_Resource_Font_CidFont_TrueType; i CZend_Pdf_Resource_Extractor;$h KZend_Pdf_Resource_ContentStream;3g iZend_Pdf_RecursivelyIteratableObjectsContainer;f +Zend_Pdf_Parser;e 'Zend_Pdf_Page;d -Zend_Pdf_Outline;c ;Zend_Pdf_Outline_Loaded;b =Zend_Pdf_Outline_Created;a /Zend_Pdf_NameTree;` )Zend_Pdf_Image;_ 'Zend_Pdf_Font;^ ?Zend_Pdf_Filter_RunLength; ] CZend_Pdf_Filter_Compression;$\ KZend_Pdf_Filter_Compression_Lzw;&[ OZend_Pdf_Filter_Compression_Flate;Z =Zend_Pdf_Filter_AsciiHex;Y ;Zend_Pdf_Filter_Ascii85;"X GZend_Pdf_FileParserDataSource;)W UZend_Pdf_FileParserDataSource_String;'V QZend_Pdf_FileParserDataSource_File;U 3Zend_Pdf_FileParser;T ?Zend_Pdf_FileParser_Image;"S GZend_Pdf_FileParser_Image_Png;R =Zend_Pdf_FileParser_Font;&Q OZend_Pdf_FileParser_Font_OpenType;/P aZend_Pdf_FileParser_Font_OpenType_TrueType;O 1Zend_Pdf_Exception;N ;Zend_Pdf_ElementFactory;"M GZend_Pdf_ElementFactory_Proxy;L -Zend_Pdf_Element;K ;Zend_Pdf_Element_String;#J IZend_Pdf_Element_String_Binary;I ;Zend_Pdf_Element_Stream;H AZend_Pdf_Element_Reference;%G MZend_Pdf_Element_Reference_Table;'F QZend_Pdf_Element_Reference_Context;E ;Zend_Pdf_Element_Object;#D IZend_Pdf_Element_Object_Stream;C =Zend_Pdf_Element_Numeric;B 7Zend_Pdf_Element_Null;A 7Zend_Pdf_Element_Name; @ CZend_Pdf_Element_Dictionary;? =Zend_Pdf_Element_Boolean;> 9Zend_Pdf_Element_Array;= 5Zend_Pdf_Destination;< ?Zend_Pdf_Destination_Zoom;!; EZend_Pdf_Destination_Unknown;: AZend_Pdf_Destination_Named;'9 QZend_Pdf_Destination_FitVertically;&8 OZend_Pdf_Destination_FitRectangle;)7 UZend_Pdf_Destination_FitHorizontally;26 gZend_Pdf_Destination_FitBoundingBoxVertically;45 kZend_Pdf_Destination_FitBoundingBoxHorizontally;(4 SZend_Pdf_Destination_FitBoundingBox;3 =Zend_Pdf_Destination_Fit;"2 GZend_Pdf_Destination_Explicit;1 )Zend_Pdf_Color;0 1Zend_Pdf_Color_Rgb;/ 3Zend_Pdf_Color_Html;. =Zend_Pdf_Color_GrayScale;- 3Zend_Pdf_Color_Cmyk;, 'Zend_Pdf_Cmap;+ AZend_Pdf_Cmap_TrimmedTable;!* EZend_Pdf_Cmap_SegmentToDelta;) AZend_Pdf_Cmap_ByteEncoding;&( OZend_Pdf_Cmap_ByteEncoding_Static;' +Zend_Pdf_Canvas;& =Zend_Pdf_Canvas_Abstract;% 3Zend_Pdf_Annotation;$ =Zend_Pdf_Annotation_Text;# AZend_Pdf_Annotation_Markup;" =Zend_Pdf_Annotation_Link;'! QZend_Pdf_Annotation_FileAttachment;  +Zend_Pdf_Action; 3Zend_Pdf_Action_URI; ;Zend_Pdf_Action_Unknown; 7Zend_Pdf_Action_Trans; 9Zend_Pdf_Action_Thread; AZend_Pdf_Action_SubmitForm; 7Zend_Pdf_Action_Sound;  CZend_Pdf_Action_SetOCGState; ?Zend_Pdf_Action_ResetForm; ?Zend_Pdf_Action_Rendition; 7Zend_Pdf_Action_Named; 7Zend_Pdf_Action_Movie; 9Zend_Pdf_Action_Launch; AZend_Pdf_Action_JavaScript; AZend_Pdf_Action_ImportData; 5Zend_Pdf_Action_Hide; 7Zend_Pdf_Action_GoToR; 7Zend_Pdf_Action_GoToE; AZend_Pdf_Action_GoTo3DView; 5Zend_Pdf_Action_GoTo; )Zend_Paginator;- ]Zend_Paginator_SerializableLimitIterator;*
 WZend_Paginator_ScrollingStyle_Sliding;*	 WZend_Paginator_ScrollingStyle_Jumping;* WZend_Paginator_ScrollingStyle_Elastic;& OZend_Paginator_ScrollingStyle_All; =Zend_Paginator_Exception;  CZend_Paginator_Adapter_Null;$ KZend_Paginator_Adapter_Iterator;) UZend_Paginator_Adapter_DbTableSelect;$ KZend_Paginator_Adapter_DbSelect;! EZend_Paginator_Adapter_Array;  #Zend_OpenId; 5Zend_OpenId_Provider;~ ?Zend_OpenId_Provider_User;&} OZend_OpenId_Provider_User_Session;   _  Lk-r2I~Y:




]
;
!
					x	S	B	}ZAiD$uJ*^=zYC lI0B6  0I cZend_Search_Lucene_Analysis_Analyzer_Common;8H sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num;IG Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive;5F mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8;FE Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive;8D sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum;IC Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive;5B mZend_Search_Lucene_Analysis_Analyzer_Common_Text;FA Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive;@ 7Zend_Search_Exception;? -Zend_Rest_Server;> AZend_Rest_Server_Exception;= +Zend_Rest_Route;< 3Zend_Rest_Exception;; 5Zend_Rest_Controller;: -Zend_Rest_Client;9 ;Zend_Rest_Client_Result;&8 OZend_Rest_Client_Result_Exception;7 AZend_Rest_Client_Exception;6 'Zend_Registry;5 =Zend_Reflection_Property;4 ?Zend_Reflection_Parameter;3 9Zend_Reflection_Method;2 =Zend_Reflection_Function;1 5Zend_Reflection_File;0 ?Zend_Reflection_Extension;/ ?Zend_Reflection_Exception;. =Zend_Reflection_Docblock;!- EZend_Reflection_Docblock_Tag;(, SZend_Reflection_Docblock_Tag_Return;'+ QZend_Reflection_Docblock_Tag_Param;* 7Zend_Reflection_Class;) !Zend_Queue;( 9Zend_Queue_Stomp_Frame;' ;Zend_Queue_Stomp_Client;'& QZend_Queue_Stomp_Client_Connection;% 1Zend_Queue_Message;#$ IZend_Queue_Message_PlatformJob; # CZend_Queue_Message_Iterator;" 5Zend_Queue_Exception;(! SZend_Queue_Adapter_PlatformJobQueue;  ;Zend_Queue_Adapter_Null;! EZend_Queue_Adapter_Memcacheq; 7Zend_Queue_Adapter_Db;  CZend_Queue_Adapter_Db_Queue;" GZend_Queue_Adapter_Db_Message; =Zend_Queue_Adapter_Array;' QZend_Queue_Adapter_AdapterAbstract;  CZend_Queue_Adapter_Activemq; -Zend_ProgressBar; AZend_ProgressBar_Exception; =Zend_ProgressBar_Adapter;$ KZend_ProgressBar_Adapter_JsPush;$ KZend_ProgressBar_Adapter_JsPull;' QZend_ProgressBar_Adapter_Exception;% MZend_ProgressBar_Adapter_Console; Zend_Pdf;! EZend_Pdf_UpdateInfoContainer; -Zend_Pdf_Trailer; ;Zend_Pdf_Trailer_Keeper; AZend_Pdf_Trailer_Generator; +Zend_Pdf_Target; )Zend_Pdf_Style;
 7Zend_Pdf_StringParser;	 /Zend_Pdf_Resource; ?Zend_Pdf_Resource_Unified;# IZend_Pdf_Resource_ImageFactory; ;Zend_Pdf_Resource_Image;! EZend_Pdf_Resource_Image_Tiff;  CZend_Pdf_Resource_Image_Png;! EZend_Pdf_Resource_Image_Jpeg;$ KZend_Pdf_Resource_GraphicsState; 9Zend_Pdf_Resource_Font;!  EZend_Pdf_Resource_Font_Type0;" GZend_Pdf_Resource_Font_Simple;+~ YZend_Pdf_Resource_Font_Simple_Standard;8} sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats;6| oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman;7{ qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic;;z yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic;5y mZend_Pdf_Resource_Font_Simple_Standard_TimesBold;2x gZend_Pdf_Resource_Font_Simple_Standard_Symbol;<w {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaOblique;Av Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique;9u uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold;5t mZend_Pdf_Resource_Font_Simple_Standard_Helvetica;:s wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique;>r Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique;7q qZend_Pdf_Resource_Font_Simple_Standard_CourierBold;3p iZend_Pdf_Resource_Font_Simple_Standard_Courier;)o UZend_Pdf_Resource_Font_Simple_Parsed;2n gZend_Pdf_Resource_Font_Simple_Parsed_TrueType;*m WZend_Pdf_Resource_Font_FontDescriptor;%l MZend_Pdf_Resource_Font_Extracted;#k IZend_Pdf_Resource_Font_CidFont;   T  o1c5jE$W*R,



L
#
			^	0	k/S&c1~IR#i1zF+c;              ! EZend_Serializer_Adapter_Wddx;) UZend_Serializer_Adapter_PythonPickle;) UZend_Serializer_Adapter_PhpSerialize;$ KZend_Serializer_Adapter_PhpCode;! EZend_Serializer_Adapter_Json;% MZend_Serializer_Adapter_Igbinary;! EZend_Serializer_Adapter_Amf3;! EZend_Serializer_Adapter_Amf0;, [Zend_Serializer_Adapter_AdapterAbstract; 1Zend_Search_Lucene;0 cZend_Search_Lucene_TermStreamsPriorityQueue;$ KZend_Search_Lucene_Storage_File;+ YZend_Search_Lucene_Storage_File_Memory;/ aZend_Search_Lucene_Storage_File_Filesystem;) UZend_Search_Lucene_Storage_Directory;4 kZend_Search_Lucene_Storage_Directory_Filesystem;% MZend_Search_Lucene_Search_Weight;* WZend_Search_Lucene_Search_Weight_Term;, [Zend_Search_Lucene_Search_Weight_Phrase;/
 aZend_Search_Lucene_Search_Weight_MultiTerm;+	 YZend_Search_Lucene_Search_Weight_Empty;- ]Zend_Search_Lucene_Search_Weight_Boolean;) UZend_Search_Lucene_Search_Similarity;1 eZend_Search_Lucene_Search_Similarity_Default;) UZend_Search_Lucene_Search_QueryToken;3 iZend_Search_Lucene_Search_QueryParserException;1 eZend_Search_Lucene_Search_QueryParserContext;* WZend_Search_Lucene_Search_QueryParser;) UZend_Search_Lucene_Search_QueryLexer;'  QZend_Search_Lucene_Search_QueryHit;) UZend_Search_Lucene_Search_QueryEntry;.~ _Zend_Search_Lucene_Search_QueryEntry_Term;2} gZend_Search_Lucene_Search_QueryEntry_Subquery;0| cZend_Search_Lucene_Search_QueryEntry_Phrase;${ KZend_Search_Lucene_Search_Query;-z ]Zend_Search_Lucene_Search_Query_Wildcard;)y UZend_Search_Lucene_Search_Query_Term;*x WZend_Search_Lucene_Search_Query_Range;2w gZend_Search_Lucene_Search_Query_Preprocessing;7v qZend_Search_Lucene_Search_Query_Preprocessing_Term;9u uZend_Search_Lucene_Search_Query_Preprocessing_Phrase;8t sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy;+s YZend_Search_Lucene_Search_Query_Phrase;.r _Zend_Search_Lucene_Search_Query_MultiTerm;2q gZend_Search_Lucene_Search_Query_Insignificant;*p WZend_Search_Lucene_Search_Query_Fuzzy;*o WZend_Search_Lucene_Search_Query_Empty;,n [Zend_Search_Lucene_Search_Query_Boolean;2m gZend_Search_Lucene_Search_Highlighter_Default;:l wZend_Search_Lucene_Search_BooleanExpressionRecognizer;k =Zend_Search_Lucene_Proxy;%j MZend_Search_Lucene_PriorityQueue;/i aZend_Search_Lucene_Interface_MultiSearcher;#h IZend_Search_Lucene_LockManager;$g KZend_Search_Lucene_Index_Writer;0f cZend_Search_Lucene_Index_TermsPriorityQueue;&e OZend_Search_Lucene_Index_TermInfo;"d GZend_Search_Lucene_Index_Term;+c YZend_Search_Lucene_Index_SegmentWriter;8b sZend_Search_Lucene_Index_SegmentWriter_StreamWriter;:a wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter;+` YZend_Search_Lucene_Index_SegmentMerger;)_ UZend_Search_Lucene_Index_SegmentInfo;'^ QZend_Search_Lucene_Index_FieldInfo;(] SZend_Search_Lucene_Index_DocsFilter;.\ _Zend_Search_Lucene_Index_DictionaryLoader;![ EZend_Search_Lucene_FSMAction;Z 9Zend_Search_Lucene_FSM;Y =Zend_Search_Lucene_Field;!X EZend_Search_Lucene_Exception; W CZend_Search_Lucene_Document;%V MZend_Search_Lucene_Document_Xlsx;%U MZend_Search_Lucene_Document_Pptx;(T SZend_Search_Lucene_Document_OpenXml;%S MZend_Search_Lucene_Document_Html;*R WZend_Search_Lucene_Document_Exception;%Q MZend_Search_Lucene_Document_Docx;,P [Zend_Search_Lucene_Analysis_TokenFilter;6O oZend_Search_Lucene_Analysis_TokenFilter_StopWords;7N qZend_Search_Lucene_Analysis_TokenFilter_ShortWords;:M wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8;6L oZend_Search_Lucene_Analysis_TokenFilter_LowerCase;&K OZend_Search_Lucene_Analysis_Token;)J UZend_Search_Lucene_Analysis_Analyzer;   Z  pR.p?{P1tFk9



p
>
				l	=	^<a6[1\2^(j"]I                                   7w qZend_Service_DeveloperGarden_LocalSearch_Exception;,v [Zend_Service_DeveloperGarden_IpLocation;6u oZend_Service_DeveloperGarden_IpLocation_IpAddress;+t YZend_Service_DeveloperGarden_Exception;,s [Zend_Service_DeveloperGarden_Credential;0r cZend_Service_DeveloperGarden_ConferenceCall;Cq Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatus;Cp Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail;<o {Zend_Service_DeveloperGarden_ConferenceCall_Participant;:n wZend_Service_DeveloperGarden_ConferenceCall_Exception;Dm 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceSchedule;Bl Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail;Ck Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount;-j ]Zend_Service_DeveloperGarden_Client_Soap;2i gZend_Service_DeveloperGarden_Client_Exception;7h qZend_Service_DeveloperGarden_Client_ClientAbstract;1g eZend_Service_DeveloperGarden_BaseUserService;Af Zend_Service_DeveloperGarden_BaseUserService_AccountBalance;e 9Zend_Service_Delicious;&d OZend_Service_Delicious_SimplePost;$c KZend_Service_Delicious_PostList; b CZend_Service_Delicious_Post;%a MZend_Service_Delicious_Exception; ` CZend_Service_Audioscrobbler;_ 3Zend_Service_Amazon;^ ;Zend_Service_Amazon_Sqs;&] OZend_Service_Amazon_Sqs_Exception;!\ EZend_Service_Amazon_SimpleDb;*[ WZend_Service_Amazon_SimpleDb_Response;&Z OZend_Service_Amazon_SimpleDb_Page;+Y YZend_Service_Amazon_SimpleDb_Exception;+X YZend_Service_Amazon_SimpleDb_Attribute;'W QZend_Service_Amazon_SimilarProduct;V 9Zend_Service_Amazon_S3;"U GZend_Service_Amazon_S3_Stream;%T MZend_Service_Amazon_S3_Exception;"S GZend_Service_Amazon_ResultSet;R ?Zend_Service_Amazon_Query;!Q EZend_Service_Amazon_OfferSet;P ?Zend_Service_Amazon_Offer;&O OZend_Service_Amazon_ListmaniaList;N =Zend_Service_Amazon_Item;M ?Zend_Service_Amazon_Image;"L GZend_Service_Amazon_Exception;(K SZend_Service_Amazon_EditorialReview;J ;Zend_Service_Amazon_Ec2;+I YZend_Service_Amazon_Ec2_Securitygroups;%H MZend_Service_Amazon_Ec2_Response;#G IZend_Service_Amazon_Ec2_Region;$F KZend_Service_Amazon_Ec2_Keypair;%E MZend_Service_Amazon_Ec2_Instance;-D ]Zend_Service_Amazon_Ec2_Instance_Windows;.C _Zend_Service_Amazon_Ec2_Instance_Reserved;"B GZend_Service_Amazon_Ec2_Image;&A OZend_Service_Amazon_Ec2_Exception;&@ OZend_Service_Amazon_Ec2_Elasticip; ? CZend_Service_Amazon_Ec2_Ebs;'> QZend_Service_Amazon_Ec2_CloudWatch;.= _Zend_Service_Amazon_Ec2_Availabilityzones;%< MZend_Service_Amazon_Ec2_Abstract;'; QZend_Service_Amazon_CustomerReview;': QZend_Service_Amazon_Authentication;*9 WZend_Service_Amazon_Authentication_V2;*8 WZend_Service_Amazon_Authentication_V1;*7 WZend_Service_Amazon_Authentication_S3;16 eZend_Service_Amazon_Authentication_Exception;$5 KZend_Service_Amazon_Accessories;!4 EZend_Service_Amazon_Abstract;3 5Zend_Service_Akismet;2 7Zend_Service_Abstract;1 9Zend_Server_Reflection;'0 QZend_Server_Reflection_ReturnValue;%/ MZend_Server_Reflection_Prototype;%. MZend_Server_Reflection_Parameter; - CZend_Server_Reflection_Node;", GZend_Server_Reflection_Method;$+ KZend_Server_Reflection_Function;-* ]Zend_Server_Reflection_Function_Abstract;%) MZend_Server_Reflection_Exception;!( EZend_Server_Reflection_Class;!' EZend_Server_Method_Prototype;!& EZend_Server_Method_Parameter;"% GZend_Server_Method_Definition; $ CZend_Server_Method_Callback;# 7Zend_Server_Exception;" 9Zend_Server_Definition;! /Zend_Server_Cache;  5Zend_Server_Abstract; +Zend_Serializer; ?Zend_Serializer_Exception;   0  ?81%f

a
		G4Jw5b?l7u
                                                                                     J' Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType;g& OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseType;c% GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponse;W$ /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse;U# +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponse;S" 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse;3! iZend_Service_DeveloperGarden_Response_BaseType;J  Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstract;C Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCall;G Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced;= }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCall;A Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatus;A Zend_Service_DeveloperGarden_Request_SmsValidation_Validate;N Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeyword;C Zend_Service_DeveloperGarden_Request_SmsValidation_Invalidate;L Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbers;B Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract;9 uZend_Service_DeveloperGarden_Request_SendSms_SendSMS;> Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS;9 uZend_Service_DeveloperGarden_Request_RequestAbstract;I Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequest;E Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest;3 iZend_Service_DeveloperGarden_Request_Exception;R %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequest;Y 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequest;d IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequest;Q #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequest;R %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequest;Y 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequest;d
 IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequest;Q	 #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequest;O Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequest;U +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequest;U +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequest;V -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequest;a CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequest;Z 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequest;T )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequest;R %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequest;Y  3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequest;Q #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequest;Q~ #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequest;a} CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequest;N| Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformation;L{ Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalance;Jz Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool;-y ]Zend_Service_DeveloperGarden_LocalSearch;>x Zend_Service_DeveloperGarden_LocalSearch_SearchParameters;   . d TC,tI


"		h	Y ?1hI_x9>   dCU Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponse;CT Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstract;HS Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponse;UR +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponse;QQ #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponse;IP Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception;;O yZend_Service_DeveloperGarden_Response_ResponseAbstract;ON Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseType;KM Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponse;AL Zend_Service_DeveloperGarden_Response_IpLocation_RegionType;KK Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseType;GJ Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponse;LI Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationType;IH Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType;>G Zend_Service_DeveloperGarden_Response_IpLocation_CityType;4F kZend_Service_DeveloperGarden_Response_Exception;TE )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse;[D 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponse;fC MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponse;SB 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponse;TA )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse;[@ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponse;f? MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponse;S> 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponse;U= +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType;Q< #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse;[; 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseType;W: /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse;[9 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseType;W8 /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse;\7 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseType;X6 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponse;g5 OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseType;c4 GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse;`3 AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType;\2 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponse;Z1 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseType;V0 -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponse;X/ 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseType;T. )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse;_- ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType;[, 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponse;W+ /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType;S* 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponse;Q) #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstract;S( 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponse;   P  Yay%G\8


Z
-
			W	,rDvBU&gDl?rJ"c9eF$                                              '% QZend_Service_Simpy_WatchlistFilter;!$ EZend_Service_Simpy_Watchlist;# ?Zend_Service_Simpy_TagSet;" 9Zend_Service_Simpy_Tag;! AZend_Service_Simpy_NoteSet;  ;Zend_Service_Simpy_Note; AZend_Service_Simpy_LinkSet;! EZend_Service_Simpy_LinkQuery; ;Zend_Service_Simpy_Link;% MZend_Service_ShortUrl_TinyUrlCom;& OZend_Service_ShortUrl_MetamarkNet;! EZend_Service_ShortUrl_JdemCz; AZend_Service_ShortUrl_IsGd;$ KZend_Service_ShortUrl_Exception;, [Zend_Service_ShortUrl_AbstractShortener; 9Zend_Service_ReCaptcha;$ KZend_Service_ReCaptcha_Response;$ KZend_Service_ReCaptcha_MailHide;. _Zend_Service_ReCaptcha_MailHide_Exception;% MZend_Service_ReCaptcha_Exception; 7Zend_Service_Nirvanix;# IZend_Service_Nirvanix_Response;) UZend_Service_Nirvanix_Namespace_Imfs;) UZend_Service_Nirvanix_Namespace_Base;$ KZend_Service_Nirvanix_Exception; 7Zend_Service_LiveDocx;$ KZend_Service_LiveDocx_MailMerge;$
 KZend_Service_LiveDocx_Exception;	 3Zend_Service_Flickr;" GZend_Service_Flickr_ResultSet; AZend_Service_Flickr_Result; ?Zend_Service_Flickr_Image; 9Zend_Service_Exception; ?Zend_Service_Ebay_Finding;) UZend_Service_Ebay_Finding_Storefront;+ YZend_Service_Ebay_Finding_ShippingInfo;+ YZend_Service_Ebay_Finding_Set_Abstract;,  [Zend_Service_Ebay_Finding_SellingStatus;) UZend_Service_Ebay_Finding_SellerInfo;,~ [Zend_Service_Ebay_Finding_Search_Result;*} WZend_Service_Ebay_Finding_Search_Item;.| _Zend_Service_Ebay_Finding_Search_Item_Set;0{ cZend_Service_Ebay_Finding_Response_Keywords;-z ]Zend_Service_Ebay_Finding_Response_Items;2y gZend_Service_Ebay_Finding_Response_Histograms;0x cZend_Service_Ebay_Finding_Response_Abstract;/w aZend_Service_Ebay_Finding_PaginationOutput;*v WZend_Service_Ebay_Finding_ListingInfo;(u SZend_Service_Ebay_Finding_Exception;,t [Zend_Service_Ebay_Finding_Error_Message;)s UZend_Service_Ebay_Finding_Error_Data;-r ]Zend_Service_Ebay_Finding_Error_Data_Set;'q QZend_Service_Ebay_Finding_Category;1p eZend_Service_Ebay_Finding_Category_Histogram;5o mZend_Service_Ebay_Finding_Category_Histogram_Set;;n yZend_Service_Ebay_Finding_Category_Histogram_Container;%m MZend_Service_Ebay_Finding_Aspect;)l UZend_Service_Ebay_Finding_Aspect_Set;5k mZend_Service_Ebay_Finding_Aspect_Histogram_Value;9j uZend_Service_Ebay_Finding_Aspect_Histogram_Value_Set;9i uZend_Service_Ebay_Finding_Aspect_Histogram_Container;'h QZend_Service_Ebay_Finding_Abstract; g CZend_Service_Ebay_Exception;f AZend_Service_Ebay_Abstract;+e YZend_Service_DeveloperGarden_VoiceCall;/d aZend_Service_DeveloperGarden_SmsValidation;)c UZend_Service_DeveloperGarden_SendSms;5b mZend_Service_DeveloperGarden_SecurityTokenServer;;a yZend_Service_DeveloperGarden_SecurityTokenServer_Cache;K` Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstract;L_ Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponse;P^ !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponse;G] Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponse;J\ Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponse;K[ Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2Response;LZ Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponse;IY Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumber;WX /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponse;JW Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponse;UV +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponse;   K  e;q;l<
}O(wJ




]
9
			]	%H {,>K|:	d5Qu:                                              ,p [Zend_Service_WindowsAzure_Storage_Table;<o {Zend_Service_WindowsAzure_Storage_StorageEntityAbstract;7n qZend_Service_WindowsAzure_Storage_SignedIdentifier;3m iZend_Service_WindowsAzure_Storage_QueueMessage;4l kZend_Service_WindowsAzure_Storage_QueueInstance;,k [Zend_Service_WindowsAzure_Storage_Queue;9j uZend_Service_WindowsAzure_Storage_PageRegionInstance;4i kZend_Service_WindowsAzure_Storage_LeaseInstance;9h uZend_Service_WindowsAzure_Storage_DynamicTableEntity;3g iZend_Service_WindowsAzure_Storage_BlobInstance;4f kZend_Service_WindowsAzure_Storage_BlobContainer;+e YZend_Service_WindowsAzure_Storage_Blob;2d gZend_Service_WindowsAzure_Storage_Blob_Stream;;c yZend_Service_WindowsAzure_Storage_BatchStorageAbstract;,b [Zend_Service_WindowsAzure_Storage_Batch;-a ]Zend_Service_WindowsAzure_SessionHandler;>` Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract;1_ eZend_Service_WindowsAzure_RetryPolicy_RetryN;2^ gZend_Service_WindowsAzure_RetryPolicy_NoRetry;4] kZend_Service_WindowsAzure_RetryPolicy_Exception;(\ SZend_Service_WindowsAzure_Exception;J[ Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscription;2Z gZend_Service_WindowsAzure_Diagnostics_Manager;3Y iZend_Service_WindowsAzure_Diagnostics_LogLevel;4X kZend_Service_WindowsAzure_Diagnostics_Exception;NW Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscription;HV Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLog;LU Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCounters;KT Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstract;<S {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogs;AR Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstance;DQ 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectories;UP +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogs;DO 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSources;8N sZend_Service_WindowsAzure_Credentials_SharedKeyLite;4M kZend_Service_WindowsAzure_Credentials_SharedKey;AL Zend_Service_WindowsAzure_Credentials_SharedAccessSignature;4K kZend_Service_WindowsAzure_Credentials_Exception;>J Zend_Service_WindowsAzure_Credentials_CredentialsAbstract;I 5Zend_Service_Twitter; H CZend_Service_Twitter_Search;#G IZend_Service_Twitter_Exception;F ;Zend_Service_Technorati;#E IZend_Service_Technorati_Weblog;"D GZend_Service_Technorati_Utils;*C WZend_Service_Technorati_TagsResultSet;'B QZend_Service_Technorati_TagsResult;)A UZend_Service_Technorati_TagResultSet;&@ OZend_Service_Technorati_TagResult;,? [Zend_Service_Technorati_SearchResultSet;)> UZend_Service_Technorati_SearchResult;&= OZend_Service_Technorati_ResultSet;#< IZend_Service_Technorati_Result;*; WZend_Service_Technorati_KeyInfoResult;*: WZend_Service_Technorati_GetInfoResult;&9 OZend_Service_Technorati_Exception;18 eZend_Service_Technorati_DailyCountsResultSet;.7 _Zend_Service_Technorati_DailyCountsResult;,6 [Zend_Service_Technorati_CosmosResultSet;)5 UZend_Service_Technorati_CosmosResult;+4 YZend_Service_Technorati_BlogInfoResult;#3 IZend_Service_Technorati_Author;2 ;Zend_Service_StrikeIron;(1 SZend_Service_StrikeIron_ZipCodeInfo;20 gZend_Service_StrikeIron_USAddressVerification;-/ ]Zend_Service_StrikeIron_SalesUseTaxBasic;&. OZend_Service_StrikeIron_Exception;&- OZend_Service_StrikeIron_Decorator;!, EZend_Service_StrikeIron_Base;+ ;Zend_Service_SlideShare;&* OZend_Service_SlideShare_SlideShow;&) OZend_Service_SlideShare_Exception;( 1Zend_Service_Simpy;$' KZend_Service_Simpy_WatchlistSet;*& WZend_Service_Simpy_WatchlistFilterSet;   d  W-`9iG"iK,dO&




l
I
0
				W	-f=y[-oD[+wGb8nX0E            0T cZend_Tool_Framework_Client_Console_Manifest;2S gZend_Tool_Framework_Client_Console_HelpSystem;6R oZend_Tool_Framework_Client_Console_ArgumentParser;&Q OZend_Tool_Framework_Client_Config;(P SZend_Tool_Framework_Client_Abstract;*O WZend_Tool_Framework_Action_Repository;)N UZend_Tool_Framework_Action_Exception;$M KZend_Tool_Framework_Action_Base;L 'Zend_TimeSync;K 1Zend_TimeSync_Sntp;J 9Zend_TimeSync_Protocol;I /Zend_TimeSync_Ntp;H ;Zend_TimeSync_Exception;G +Zend_Text_Table;F 3Zend_Text_Table_Row;E ?Zend_Text_Table_Exception;&D OZend_Text_Table_Decorator_Unicode;$C KZend_Text_Table_Decorator_Ascii;B 9Zend_Text_Table_Column;A 3Zend_Text_MultiByte;@ -Zend_Text_Figlet;? AZend_Text_Figlet_Exception;> 3Zend_Text_Exception;&= OZend_Test_PHPUnit_Db_SimpleTester;,< [Zend_Test_PHPUnit_Db_Operation_Truncate;*; WZend_Test_PHPUnit_Db_Operation_Insert;-: ]Zend_Test_PHPUnit_Db_Operation_DeleteAll;*9 WZend_Test_PHPUnit_Db_Metadata_Generic;#8 IZend_Test_PHPUnit_Db_Exception;,7 [Zend_Test_PHPUnit_Db_DataSet_QueryTable;.6 _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet;05 cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet;)4 UZend_Test_PHPUnit_Db_DataSet_DbTable;*3 WZend_Test_PHPUnit_Db_DataSet_DbRowset;$2 KZend_Test_PHPUnit_Db_Connection;'1 QZend_Test_PHPUnit_DatabaseTestCase;)0 UZend_Test_PHPUnit_ControllerTestCase;0/ cZend_Test_PHPUnit_Constraint_ResponseHeader;*. WZend_Test_PHPUnit_Constraint_Redirect;+- YZend_Test_PHPUnit_Constraint_Exception;*, WZend_Test_PHPUnit_Constraint_DomQuery;+ 7Zend_Test_DbStatement;* 3Zend_Test_DbAdapter;) /Zend_Tag_ItemList;( 'Zend_Tag_Item;' 1Zend_Tag_Exception;& )Zend_Tag_Cloud;% =Zend_Tag_Cloud_Exception;!$ EZend_Tag_Cloud_Decorator_Tag;%# MZend_Tag_Cloud_Decorator_HtmlTag;'" QZend_Tag_Cloud_Decorator_HtmlCloud;'! QZend_Tag_Cloud_Decorator_Exception;#  IZend_Tag_Cloud_Decorator_Cloud; )Zend_Soap_Wsdl;/ aZend_Soap_Wsdl_Strategy_DefaultComplexType;& OZend_Soap_Wsdl_Strategy_Composite;0 cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence;/ aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex;$ KZend_Soap_Wsdl_Strategy_AnyType;% MZend_Soap_Wsdl_Strategy_Abstract; =Zend_Soap_Wsdl_Exception; -Zend_Soap_Server; AZend_Soap_Server_Exception; -Zend_Soap_Client; 9Zend_Soap_Client_Local; AZend_Soap_Client_Exception; ;Zend_Soap_Client_DotNet; ;Zend_Soap_Client_Common; 9Zend_Soap_AutoDiscover;% MZend_Soap_AutoDiscover_Exception; %Zend_Session;) UZend_Session_Validator_HttpUserAgent;$ KZend_Session_Validator_Abstract;' QZend_Session_SaveHandler_Exception;%
 MZend_Session_SaveHandler_DbTable;	 9Zend_Session_Namespace; 9Zend_Session_Exception; 7Zend_Session_Abstract; 1Zend_Service_Yahoo;$ KZend_Service_Yahoo_WebResultSet;! EZend_Service_Yahoo_WebResult;& OZend_Service_Yahoo_VideoResultSet;# IZend_Service_Yahoo_VideoResult;! EZend_Service_Yahoo_ResultSet;  ?Zend_Service_Yahoo_Result;) UZend_Service_Yahoo_PageDataResultSet;&~ OZend_Service_Yahoo_PageDataResult;%} MZend_Service_Yahoo_NewsResultSet;"| GZend_Service_Yahoo_NewsResult;&{ OZend_Service_Yahoo_LocalResultSet;#z IZend_Service_Yahoo_LocalResult;+y YZend_Service_Yahoo_InlinkDataResultSet;(x SZend_Service_Yahoo_InlinkDataResult;&w OZend_Service_Yahoo_ImageResultSet;#v IZend_Service_Yahoo_ImageResult;u =Zend_Service_Yahoo_Image;&t OZend_Service_WindowsAzure_Storage;4s kZend_Service_WindowsAzure_Storage_TableInstance;7r qZend_Service_WindowsAzure_Storage_TableEntityQuery;2q gZend_Service_WindowsAzure_Storage_TableEntity;   K  o'K{3U&o@



T
*				n	?	Y$}F|Jc,RQ}JD      2 gZend_Tool_Project_Context_Zf_LocalesDirectory;2 gZend_Tool_Project_Context_Zf_LibraryDirectory;2 gZend_Tool_Project_Context_Zf_LayoutsDirectory;8 sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory;2 gZend_Tool_Project_Context_Zf_LayoutScriptFile;. _Zend_Tool_Project_Context_Zf_HtaccessFile;0 cZend_Tool_Project_Context_Zf_FormsDirectory;* WZend_Tool_Project_Context_Zf_FormFile;/ aZend_Tool_Project_Context_Zf_DocsDirectory;- ]Zend_Tool_Project_Context_Zf_DbTableFile;2 gZend_Tool_Project_Context_Zf_DbTableDirectory;/ aZend_Tool_Project_Context_Zf_DataDirectory;6 oZend_Tool_Project_Context_Zf_ControllersDirectory;0 cZend_Tool_Project_Context_Zf_ControllerFile;2 gZend_Tool_Project_Context_Zf_ConfigsDirectory;, [Zend_Tool_Project_Context_Zf_ConfigFile;0 cZend_Tool_Project_Context_Zf_CacheDirectory;/ aZend_Tool_Project_Context_Zf_BootstrapFile;6 oZend_Tool_Project_Context_Zf_ApplicationDirectory;7 qZend_Tool_Project_Context_Zf_ApplicationConfigFile;/ aZend_Tool_Project_Context_Zf_ApisDirectory;.
 _Zend_Tool_Project_Context_Zf_ActionMethod;3	 iZend_Tool_Project_Context_Zf_AbstractClassFile;@ Zend_Tool_Project_Context_System_ProjectProvidersDirectory;8 sZend_Tool_Project_Context_System_ProjectProfileFile;6 oZend_Tool_Project_Context_System_ProjectDirectory;) UZend_Tool_Project_Context_Repository;. _Zend_Tool_Project_Context_Filesystem_File;3 iZend_Tool_Project_Context_Filesystem_Directory;2 gZend_Tool_Project_Context_Filesystem_Abstract;( SZend_Tool_Project_Context_Exception;-  ]Zend_Tool_Project_Context_Content_Engine;3 iZend_Tool_Project_Context_Content_Engine_Phtml;;~ yZend_Tool_Project_Context_Content_Engine_CodeGenerator;0} cZend_Tool_Framework_System_Provider_Version;0| cZend_Tool_Framework_System_Provider_Phpinfo;1{ eZend_Tool_Framework_System_Provider_Manifest;/z aZend_Tool_Framework_System_Provider_Config;(y SZend_Tool_Framework_System_Manifest;-x ]Zend_Tool_Framework_System_Action_Delete;-w ]Zend_Tool_Framework_System_Action_Create;!v EZend_Tool_Framework_Registry;+u YZend_Tool_Framework_Registry_Exception;+t YZend_Tool_Framework_Provider_Signature;,s [Zend_Tool_Framework_Provider_Repository;+r YZend_Tool_Framework_Provider_Exception;*q WZend_Tool_Framework_Provider_Abstract;&p OZend_Tool_Framework_Metadata_Tool;)o UZend_Tool_Framework_Metadata_Dynamic;'n QZend_Tool_Framework_Metadata_Basic;,m [Zend_Tool_Framework_Manifest_Repository;2l gZend_Tool_Framework_Manifest_ProviderMetadata;*k WZend_Tool_Framework_Manifest_Metadata;+j YZend_Tool_Framework_Manifest_Exception;0i cZend_Tool_Framework_Manifest_ActionMetadata;1h eZend_Tool_Framework_Loader_IncludePathLoader;Jg Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator;+f YZend_Tool_Framework_Loader_BasicLoader;(e SZend_Tool_Framework_Loader_Abstract;"d GZend_Tool_Framework_Exception;'c QZend_Tool_Framework_Client_Storage;1b eZend_Tool_Framework_Client_Storage_Directory;(a SZend_Tool_Framework_Client_Response;D` 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator;'_ QZend_Tool_Framework_Client_Request;(^ SZend_Tool_Framework_Client_Manifest;9] uZend_Tool_Framework_Client_Interactive_InputResponse;8\ sZend_Tool_Framework_Client_Interactive_InputRequest;8[ sZend_Tool_Framework_Client_Interactive_InputHandler;)Z UZend_Tool_Framework_Client_Exception;'Y QZend_Tool_Framework_Client_Console;DX 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Indention;DW 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizer;CV Zend_Tool_Framework_Client_Console_ResponseDecorator_Blockize;FU Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter;   Q  i4U h1v-f 


s
/				L	_%a0DrDmAe=a>s\A+                            p 3Zend_Validate_Alpha;o 3Zend_Validate_Alnum;n 9Zend_Validate_Abstract;m Zend_Uri;l 'Zend_Uri_Http;k 1Zend_Uri_Exception;j )Zend_Translate;i 7Zend_Translate_Plural;h =Zend_Translate_Exception;g 9Zend_Translate_Adapter;!f EZend_Translate_Adapter_XmlTm;!e EZend_Translate_Adapter_Xliff;d AZend_Translate_Adapter_Tmx;c AZend_Translate_Adapter_Tbx;b ?Zend_Translate_Adapter_Qt;a AZend_Translate_Adapter_Ini;#` IZend_Translate_Adapter_Gettext;_ AZend_Translate_Adapter_Csv;!^ EZend_Translate_Adapter_Array;$] KZend_Tool_Project_Provider_View;$\ KZend_Tool_Project_Provider_Test;/[ aZend_Tool_Project_Provider_ProjectProvider;'Z QZend_Tool_Project_Provider_Project;'Y QZend_Tool_Project_Provider_Profile;&X OZend_Tool_Project_Provider_Module;%W MZend_Tool_Project_Provider_Model;(V SZend_Tool_Project_Provider_Manifest;&U OZend_Tool_Project_Provider_Layout;$T KZend_Tool_Project_Provider_Form;)S UZend_Tool_Project_Provider_Exception;'R QZend_Tool_Project_Provider_DbTable;)Q UZend_Tool_Project_Provider_DbAdapter;*P WZend_Tool_Project_Provider_Controller;+O YZend_Tool_Project_Provider_Application;&N OZend_Tool_Project_Provider_Action;(M SZend_Tool_Project_Provider_Abstract;L ?Zend_Tool_Project_Profile;'K QZend_Tool_Project_Profile_Resource;9J uZend_Tool_Project_Profile_Resource_SearchConstraints;1I eZend_Tool_Project_Profile_Resource_Container;=H }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter;5G mZend_Tool_Project_Profile_Iterator_ContextFilter;-F ]Zend_Tool_Project_Profile_FileParser_Xml;(E SZend_Tool_Project_Profile_Exception; D CZend_Tool_Project_Exception;<C {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory;0B cZend_Tool_Project_Context_Zf_ViewsDirectory;6A oZend_Tool_Project_Context_Zf_ViewScriptsDirectory;0@ cZend_Tool_Project_Context_Zf_ViewScriptFile;6? oZend_Tool_Project_Context_Zf_ViewHelpersDirectory;6> oZend_Tool_Project_Context_Zf_ViewFiltersDirectory;A= Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory;2< gZend_Tool_Project_Context_Zf_UploadsDirectory;0; cZend_Tool_Project_Context_Zf_TestsDirectory;7: qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile;:9 wZend_Tool_Project_Context_Zf_TestPHPUnitBootstrapFile;@8 Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory;17 eZend_Tool_Project_Context_Zf_TestLibraryFile;66 oZend_Tool_Project_Context_Zf_TestLibraryDirectory;:5 wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFile;B4 Zend_Tool_Project_Context_Zf_TestApplicationModulesDirectory;A3 Zend_Tool_Project_Context_Zf_TestApplicationModuleDirectory;:2 wZend_Tool_Project_Context_Zf_TestApplicationDirectory;@1 Zend_Tool_Project_Context_Zf_TestApplicationControllerFile;E0 Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory;>/ Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile;=. }Zend_Tool_Project_Context_Zf_TestApplicationActionMethod;4- kZend_Tool_Project_Context_Zf_TemporaryDirectory;3, iZend_Tool_Project_Context_Zf_SessionsDirectory;8+ sZend_Tool_Project_Context_Zf_SearchIndexesDirectory;<* {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory;8) sZend_Tool_Project_Context_Zf_PublicScriptsDirectory;1( eZend_Tool_Project_Context_Zf_PublicIndexFile;7' qZend_Tool_Project_Context_Zf_PublicImagesDirectory;1& eZend_Tool_Project_Context_Zf_PublicDirectory;5% mZend_Tool_Project_Context_Zf_ProjectProviderFile;2$ gZend_Tool_Project_Context_Zf_ModulesDirectory;1# eZend_Tool_Project_Context_Zf_ModuleDirectory;1" eZend_Tool_Project_Context_Zf_ModelsDirectory;+! YZend_Tool_Project_Context_Zf_ModelFile;/  aZend_Tool_Project_Context_Zf_LogsDirectory;   o }X0wS0{S%lD!dC(



x
X
7
				x	S	3	[;|]B"xY=lW< |W6cAdAlJ(                               _ CZend_View_Helper_HeadScript;^ ?Zend_View_Helper_HeadMeta;] ?Zend_View_Helper_HeadLink;\ ?Zend_View_Helper_Gravatar;"[ GZend_View_Helper_FormTextarea;Z ?Zend_View_Helper_FormText; Y CZend_View_Helper_FormSubmit; X CZend_View_Helper_FormSelect;W AZend_View_Helper_FormReset;V AZend_View_Helper_FormRadio;"U GZend_View_Helper_FormPassword;T ?Zend_View_Helper_FormNote;'S QZend_View_Helper_FormMultiCheckbox;R AZend_View_Helper_FormLabel;Q AZend_View_Helper_FormImage; P CZend_View_Helper_FormHidden;O ?Zend_View_Helper_FormFile; N CZend_View_Helper_FormErrors;!M EZend_View_Helper_FormElement;"L GZend_View_Helper_FormCheckbox; K CZend_View_Helper_FormButton;J 7Zend_View_Helper_Form;I ?Zend_View_Helper_Fieldset;H =Zend_View_Helper_Doctype;!G EZend_View_Helper_DeclareVars;F 9Zend_View_Helper_Cycle;E ?Zend_View_Helper_Currency;D =Zend_View_Helper_BaseUrl;C ;Zend_View_Helper_Action;B ?Zend_View_Helper_Abstract;A 3Zend_View_Exception;@ 1Zend_View_Abstract;? %Zend_Version;> 'Zend_Validate;= AZend_Validate_StringLength;#< IZend_Validate_Sitemap_Priority;; ?Zend_Validate_Sitemap_Loc;": GZend_Validate_Sitemap_Lastmod;%9 MZend_Validate_Sitemap_Changefreq;8 3Zend_Validate_Regex;7 9Zend_Validate_PostCode;6 9Zend_Validate_NotEmpty;5 9Zend_Validate_LessThan;4 1Zend_Validate_Isbn;3 -Zend_Validate_Ip;2 /Zend_Validate_Int;1 7Zend_Validate_InArray;0 ;Zend_Validate_Identical;/ 1Zend_Validate_Iban;. 9Zend_Validate_Hostname;- /Zend_Validate_Hex;, ?Zend_Validate_GreaterThan;+ 3Zend_Validate_Float;!* EZend_Validate_File_WordCount;) ?Zend_Validate_File_Upload;( ;Zend_Validate_File_Size;' ;Zend_Validate_File_Sha1;!& EZend_Validate_File_NotExists; % CZend_Validate_File_MimeType;$ 9Zend_Validate_File_Md5;# AZend_Validate_File_IsImage;$" KZend_Validate_File_IsCompressed;!! EZend_Validate_File_ImageSize;  ;Zend_Validate_File_Hash;! EZend_Validate_File_FilesSize;! EZend_Validate_File_Extension; ?Zend_Validate_File_Exists;' QZend_Validate_File_ExcludeMimeType;( SZend_Validate_File_ExcludeExtension; =Zend_Validate_File_Crc32; =Zend_Validate_File_Count; ;Zend_Validate_Exception; AZend_Validate_EmailAddress; 5Zend_Validate_Digits;" GZend_Validate_Db_RecordExists;$ KZend_Validate_Db_NoRecordExists; ?Zend_Validate_Db_Abstract; 1Zend_Validate_Date; =Zend_Validate_CreditCard; 3Zend_Validate_Ccnum; 9Zend_Validate_Callback; 7Zend_Validate_Between; 7Zend_Validate_Barcode; AZend_Validate_Barcode_Upce; AZend_Validate_Barcode_Upca;
 AZend_Validate_Barcode_Sscc;$	 KZend_Validate_Barcode_Royalmail;" GZend_Validate_Barcode_Postnet;! EZend_Validate_Barcode_Planet;# IZend_Validate_Barcode_Leitcode;  CZend_Validate_Barcode_Itf14; AZend_Validate_Barcode_Issn;* WZend_Validate_Barcode_IntelligentMail;$ KZend_Validate_Barcode_Identcode;! EZend_Validate_Barcode_Gtin14;!  EZend_Validate_Barcode_Gtin13;! EZend_Validate_Barcode_Gtin12;~ AZend_Validate_Barcode_Ean8;} AZend_Validate_Barcode_Ean5;| AZend_Validate_Barcode_Ean2; { CZend_Validate_Barcode_Ean18; z CZend_Validate_Barcode_Ean14; y CZend_Validate_Barcode_Ean13; x CZend_Validate_Barcode_Ean12;$w KZend_Validate_Barcode_Code93ext;!v EZend_Validate_Barcode_Code93;$u KZend_Validate_Barcode_Code39ext;!t EZend_Validate_Barcode_Code39;,s [Zend_Validate_Barcode_Code25interleaved;!r EZend_Validate_Barcode_Code25;*q WZend_Validate_Barcode_AdapterAbstract;   k  rP,
OyN#l2xK(




y
O
/
				\	2		iK1lP.mM,|X6f=uZ?{X4pR9  J ?Zend_Amf_Server_Exception<I /Zend_Amf_Response<H 9Zend_Amf_Response_Http<G -Zend_Amf_Request<F 7Zend_Amf_Request_Http<E ?Zend_Amf_Parse_TypeLoader<D ?Zend_Amf_Parse_Serializer<#C IZend_Amf_Parse_Resource_Stream<(B SZend_Amf_Parse_Resource_MysqlResult<)A UZend_Amf_Parse_Resource_MysqliResult< @ CZend_Amf_Parse_OutputStream<? AZend_Amf_Parse_InputStream< > CZend_Amf_Parse_Deserializer<#= IZend_Amf_Parse_Amf3_Serializer<%< MZend_Amf_Parse_Amf3_Deserializer<#; IZend_Amf_Parse_Amf0_Serializer<%: MZend_Amf_Parse_Amf0_Deserializer<9 1Zend_Amf_Exception<8 1Zend_Amf_Constants<7 9Zend_Amf_Auth_Abstract< 6 CZend_Amf_Adobe_Introspector<5 AZend_Amf_Adobe_DbInspector<4 3Zend_Amf_Adobe_Auth<3 Zend_Acl<2 'Zend_Acl_Role<1 9Zend_Acl_Role_Registry<%0 MZend_Acl_Role_Registry_Exception</ /Zend_Acl_Resource<. 1Zend_Acl_Exception<- /Zend_XmlRpc_Value;, =Zend_XmlRpc_Value_Struct;+ =Zend_XmlRpc_Value_String;* =Zend_XmlRpc_Value_Scalar;) 7Zend_XmlRpc_Value_Nil;( ?Zend_XmlRpc_Value_Integer; ' CZend_XmlRpc_Value_Exception;& =Zend_XmlRpc_Value_Double;% AZend_XmlRpc_Value_DateTime;!$ EZend_XmlRpc_Value_Collection;# ?Zend_XmlRpc_Value_Boolean;!" EZend_XmlRpc_Value_BigInteger;! =Zend_XmlRpc_Value_Base64;  ;Zend_XmlRpc_Value_Array; 1Zend_XmlRpc_Server; ?Zend_XmlRpc_Server_System; =Zend_XmlRpc_Server_Fault;! EZend_XmlRpc_Server_Exception; =Zend_XmlRpc_Server_Cache; 5Zend_XmlRpc_Response; ?Zend_XmlRpc_Response_Http; 3Zend_XmlRpc_Request; ?Zend_XmlRpc_Request_Stdin; =Zend_XmlRpc_Request_Http;$ KZend_XmlRpc_Generator_XmlWriter;, [Zend_XmlRpc_Generator_GeneratorAbstract;& OZend_XmlRpc_Generator_DomDocument; /Zend_XmlRpc_Fault; 7Zend_XmlRpc_Exception; 1Zend_XmlRpc_Client;# IZend_XmlRpc_Client_ServerProxy;+ YZend_XmlRpc_Client_ServerIntrospection;+ YZend_XmlRpc_Client_IntrospectException;% MZend_XmlRpc_Client_HttpException;& OZend_XmlRpc_Client_FaultException;!
 EZend_XmlRpc_Client_Exception;&	 OZend_Wildfire_Protocol_JsonStream;! EZend_Wildfire_Plugin_FirePhp;. _Zend_Wildfire_Plugin_FirePhp_TableMessage;) UZend_Wildfire_Plugin_FirePhp_Message; ;Zend_Wildfire_Exception;& OZend_Wildfire_Channel_HttpHeaders; Zend_View; -Zend_View_Stream; AZend_View_Helper_UserAgent;  5Zend_View_Helper_Url; AZend_View_Helper_Translate;~ =Zend_View_Helper_TinySrc;} AZend_View_Helper_ServerUrl;)| UZend_View_Helper_RenderToPlaceholder;!{ EZend_View_Helper_Placeholder;*z WZend_View_Helper_Placeholder_Registry;4y kZend_View_Helper_Placeholder_Registry_Exception;+x YZend_View_Helper_Placeholder_Container;6w oZend_View_Helper_Placeholder_Container_Standalone;5v mZend_View_Helper_Placeholder_Container_Exception;4u kZend_View_Helper_Placeholder_Container_Abstract;!t EZend_View_Helper_PartialLoop;s =Zend_View_Helper_Partial;'r QZend_View_Helper_Partial_Exception;'q QZend_View_Helper_PaginationControl; p CZend_View_Helper_Navigation;(o SZend_View_Helper_Navigation_Sitemap;%n MZend_View_Helper_Navigation_Menu;&m OZend_View_Helper_Navigation_Links;/l aZend_View_Helper_Navigation_HelperAbstract;,k [Zend_View_Helper_Navigation_Breadcrumbs;j ;Zend_View_Helper_Layout;i 7Zend_View_Helper_Json;"h GZend_View_Helper_InlineScript;#g IZend_View_Helper_HtmlQuicktime;f ?Zend_View_Helper_HtmlPage; e CZend_View_Helper_HtmlObject;d ?Zend_View_Helper_HtmlList;c AZend_View_Helper_HtmlFlash;!b EZend_View_Helper_HtmlElement;a AZend_View_Helper_HeadTitle;` AZend_View_Helper_HeadStyle;   Y  qGtLUg9U.



l
>
			m	B	yQ'~T(zR+f3{K.i@'UpB                                  67 oZend_Tool_Framework_Manifest_MetadataManifestable;+6 YZend_Tool_Framework_Manifest_Interface;+5 YZend_Tool_Framework_Manifest_Indexable;44 kZend_Tool_Framework_Manifest_ActionManifestable;)3 UZend_Tool_Framework_Loader_Interface;82 sZend_Tool_Framework_Client_Storage_AdapterInterface;D1 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface;;0 yZend_Tool_Framework_Client_Interactive_OutputInterface;:/ wZend_Tool_Framework_Client_Interactive_InputInterface;). UZend_Tool_Framework_Action_Interface;(- SZend_Text_Table_Decorator_Interface;, /Zend_Tag_Taggable;&+ OZend_Soap_Wsdl_Strategy_Interface;%* MZend_Session_Validator_Interface;') QZend_Session_SaveHandler_Interface;$( KZend_Service_ShortUrl_Shortener;I' Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Interface;& 7Zend_Server_Interface;-% ]Zend_Serializer_Adapter_AdapterInterface;4$ kZend_Search_Lucene_Search_Highlighter_Interface;!# EZend_Search_Lucene_Interface;3" iZend_Search_Lucene_Index_TermsStream_Interface;$! KZend_Queue_Stomp_FrameInterface;0  cZend_Queue_Stomp_Client_ConnectionInterface;( SZend_Queue_Adapter_AdapterInterface; ?Zend_Pdf_Filter_Interface;& OZend_Pdf_ElementFactory_Interface; ?Zend_Pdf_Canvas_Interface;, [Zend_Paginator_ScrollingStyle_Interface;$ KZend_Paginator_AdapterAggregate;% MZend_Paginator_Adapter_Interface;& OZend_Oauth_Config_ConfigInterface;$ KZend_Memory_Container_Interface;1 eZend_Markup_Renderer_TokenConverterInterface;' QZend_Markup_Parser_ParserInterface;) UZend_Mail_Storage_Writable_Interface;' QZend_Mail_Storage_Folder_Interface; =Zend_Mail_Part_Interface;  CZend_Mail_Message_Interface;! EZend_Log_Formatter_Interface; ?Zend_Log_Filter_Interface; ?Zend_Log_FactoryInterface;' QZend_Loader_PluginLoader_Interface;% MZend_Loader_Autoloader_Interface;0 cZend_Ldap_Node_Schema_ObjectClass_Interface;2
 gZend_Ldap_Node_Schema_AttributeType_Interface;3	 iZend_InfoCard_Xml_Security_Transform_Interface;( SZend_InfoCard_Xml_KeyInfo_Interface;( SZend_InfoCard_Xml_Element_Interface;* WZend_InfoCard_Xml_Assertion_Interface;- ]Zend_InfoCard_Cipher_Symmetric_Interface;7 qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface;7 qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interface;+ YZend_InfoCard_Cipher_Pki_Rsa_Interface;' QZend_InfoCard_Cipher_Pki_Interface;$  KZend_InfoCard_Adapter_Interface;  CZend_Http_UserAgent_Storage;)~ UZend_Http_UserAgent_Features_Adapter;} AZend_Http_UserAgent_Device;$| KZend_Http_Client_Adapter_Stream;'{ QZend_Http_Client_Adapter_Interface;z AZend_Gdata_App_MediaSource;.y _Zend_Form_Decorator_Marker_File_Interface;"x GZend_Form_Decorator_Interface;w 7Zend_Filter_Interface;"v GZend_Filter_Encrypt_Interface;+u YZend_Filter_Compress_CompressInterface;0t cZend_Feed_Writer_Renderer_RendererInterface;1s eZend_Feed_Writer_Extension_RendererInterface;#r IZend_Feed_Reader_FeedInterface;$q KZend_Feed_Reader_EntryInterface;7p qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface;-o ]Zend_Feed_Pubsubhubbub_CallbackInterface; n CZend_Feed_Builder_Interface; m CZend_Db_Statement_Interface;$l KZend_Currency_CurrencyInterface;)k UZend_Crypt_Math_BigInteger_Interface;+j YZend_Controller_Router_Route_Interface;%i MZend_Controller_Router_Interface;)h UZend_Controller_Dispatcher_Interface;%g MZend_Controller_Action_Interface;&f OZend_Cloud_StorageService_Adapter;$e KZend_Cloud_QueueService_Adapter;,d [Zend_Cloud_DocumentService_QueryAdapter;'c QZend_Cloud_DocumentService_Adapter;b 5Zend_Captcha_Adapter;!a EZend_Cache_Backend_Interface;)` UZend_Cache_Backend_ExtendedInterface; _ CZend_Auth_Storage_Interface;   Z  h*i4q4eJ#k4




g
C
'				~	V	*	^;PW5sL"P#b/wT4
Y0                                      $ KZend_Paginator_AdapterAggregate<% MZend_Paginator_Adapter_Interface<& OZend_Oauth_Config_ConfigInterface<$ KZend_Memory_Container_Interface<1 eZend_Markup_Renderer_TokenConverterInterface<' QZend_Markup_Parser_ParserInterface<) UZend_Mail_Storage_Writable_Interface<'
 QZend_Mail_Storage_Folder_Interface<	 =Zend_Mail_Part_Interface<  CZend_Mail_Message_Interface<! EZend_Log_Formatter_Interface< ?Zend_Log_Filter_Interface< ?Zend_Log_FactoryInterface<' QZend_Loader_PluginLoader_Interface<% MZend_Loader_Autoloader_Interface<0 cZend_Ldap_Node_Schema_ObjectClass_Interface<2 gZend_Ldap_Node_Schema_AttributeType_Interface<3  iZend_InfoCard_Xml_Security_Transform_Interface<( SZend_InfoCard_Xml_KeyInfo_Interface<(~ SZend_InfoCard_Xml_Element_Interface<*} WZend_InfoCard_Xml_Assertion_Interface<-| ]Zend_InfoCard_Cipher_Symmetric_Interface<7{ qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface<7z qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interface<+y YZend_InfoCard_Cipher_Pki_Rsa_Interface<'x QZend_InfoCard_Cipher_Pki_Interface<$w KZend_InfoCard_Adapter_Interface< v CZend_Http_UserAgent_Storage<)u UZend_Http_UserAgent_Features_Adapter<t AZend_Http_UserAgent_Device<$s KZend_Http_Client_Adapter_Stream<'r QZend_Http_Client_Adapter_Interface<q AZend_Gdata_App_MediaSource<.p _Zend_Form_Decorator_Marker_File_Interface<"o GZend_Form_Decorator_Interface<n 7Zend_Filter_Interface<"m GZend_Filter_Encrypt_Interface<+l YZend_Filter_Compress_CompressInterface<0k cZend_Feed_Writer_Renderer_RendererInterface<1j eZend_Feed_Writer_Extension_RendererInterface<#i IZend_Feed_Reader_FeedInterface<$h KZend_Feed_Reader_EntryInterface<7g qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface<-f ]Zend_Feed_Pubsubhubbub_CallbackInterface< e CZend_Feed_Builder_Interface< d CZend_Db_Statement_Interface<$c KZend_Currency_CurrencyInterface<)b UZend_Crypt_Math_BigInteger_Interface<+a YZend_Controller_Router_Route_Interface<%` MZend_Controller_Router_Interface<)_ UZend_Controller_Dispatcher_Interface<%^ MZend_Controller_Action_Interface<&] OZend_Cloud_StorageService_Adapter<$\ KZend_Cloud_QueueService_Adapter<,[ [Zend_Cloud_DocumentService_QueryAdapter<'Z QZend_Cloud_DocumentService_Adapter<Y 5Zend_Captcha_Adapter<!X EZend_Cache_Backend_Interface<)W UZend_Cache_Backend_ExtendedInterface< V CZend_Auth_Storage_Interface< U CZend_Auth_Adapter_Interface<.T _Zend_Auth_Adapter_Http_Resolver_Interface<'S QZend_Application_Resource_Resource<4R kZend_Application_Bootstrap_ResourceBootstrapper<,Q [Zend_Application_Bootstrap_Bootstrapper<P ;Zend_Acl_Role_Interface< O CZend_Acl_Resource_Interface<N ?Zend_Acl_Assert_Interface<#M IZend_Wildfire_Plugin_Interface;$L KZend_Wildfire_Channel_Interface;K 3Zend_View_Interface;'J QZend_View_Helper_Navigation_Helper;I AZend_View_Helper_Interface;H ;Zend_Validate_Interface;+G YZend_Validate_Barcode_AdapterInterface;3F iZend_Tool_Project_Profile_FileParser_Interface;:E wZend_Tool_Project_Context_System_TopLevelRestrictable;5D mZend_Tool_Project_Context_System_NotOverwritable;/C aZend_Tool_Project_Context_System_Interface;(B SZend_Tool_Project_Context_Interface;+A YZend_Tool_Framework_Registry_Interface;2@ gZend_Tool_Framework_Registry_EnabledInterface;-? ]Zend_Tool_Framework_Provider_Pretendable;+> YZend_Tool_Framework_Provider_Interface;.= _Zend_Tool_Framework_Provider_Interactable;/< aZend_Tool_Framework_Provider_Initializable;;; yZend_Tool_Framework_Provider_DocblockManifestInterface;+: YZend_Tool_Framework_Metadata_Interface;.9 _Zend_Tool_Framework_Metadata_Attributable;68 oZend_Tool_Framework_Manifest_ProviderManifestable;   g  \+h:	X5
e9h>



a
5
						b	0	eL( f8nH" iC"dB-|Z8Z.rQ,	                   1 =Zend_Cache_Frontend_Page<0 AZend_Cache_Frontend_Output<!/ EZend_Cache_Frontend_Function<. =Zend_Cache_Frontend_File<- ?Zend_Cache_Frontend_Class< , CZend_Cache_Frontend_Capture<+ 5Zend_Cache_Exception<* +Zend_Cache_Core<) 1Zend_Cache_Backend<"( GZend_Cache_Backend_ZendServer<(' SZend_Cache_Backend_ZendServer_ShMem<'& QZend_Cache_Backend_ZendServer_Disk<$% KZend_Cache_Backend_ZendPlatform<$ ?Zend_Cache_Backend_Xcache< # CZend_Cache_Backend_WinCache<!" EZend_Cache_Backend_TwoLevels<! ;Zend_Cache_Backend_Test<  ?Zend_Cache_Backend_Static< ?Zend_Cache_Backend_Sqlite<! EZend_Cache_Backend_Memcached<$ KZend_Cache_Backend_Libmemcached< ;Zend_Cache_Backend_File<! EZend_Cache_Backend_BlackHole< 9Zend_Cache_Backend_Apc< %Zend_Barcode< ?Zend_Barcode_Renderer_Svg<+ YZend_Barcode_Renderer_RendererAbstract< ?Zend_Barcode_Renderer_Pdf<  CZend_Barcode_Renderer_Image<$ KZend_Barcode_Renderer_Exception< =Zend_Barcode_Object_Upce< =Zend_Barcode_Object_Upca<" GZend_Barcode_Object_Royalmail<  CZend_Barcode_Object_Postnet< AZend_Barcode_Object_Planet<' QZend_Barcode_Object_ObjectAbstract<! EZend_Barcode_Object_Leitcode< ?Zend_Barcode_Object_Itf14<" GZend_Barcode_Object_Identcode<"
 GZend_Barcode_Object_Exception<	 ?Zend_Barcode_Object_Error< =Zend_Barcode_Object_Ean8< =Zend_Barcode_Object_Ean5< =Zend_Barcode_Object_Ean2< ?Zend_Barcode_Object_Ean13< AZend_Barcode_Object_Code39<* WZend_Barcode_Object_Code25interleaved< AZend_Barcode_Object_Code25<  CZend_Barcode_Object_Code128<  9Zend_Barcode_Exception< Zend_Auth<~ ?Zend_Auth_Storage_Session<$} KZend_Auth_Storage_NonPersistent< | CZend_Auth_Storage_Exception<{ -Zend_Auth_Result<z 3Zend_Auth_Exception<y =Zend_Auth_Adapter_OpenId<x 9Zend_Auth_Adapter_Ldap<w AZend_Auth_Adapter_InfoCard<v 9Zend_Auth_Adapter_Http<)u UZend_Auth_Adapter_Http_Resolver_File<.t _Zend_Auth_Adapter_Http_Resolver_Exception< s CZend_Auth_Adapter_Exception<r =Zend_Auth_Adapter_Digest<q ?Zend_Auth_Adapter_DbTable<p -Zend_Application<#o IZend_Application_Resource_View<(n SZend_Application_Resource_UserAgent<(m SZend_Application_Resource_Translate<&l OZend_Application_Resource_Session<%k MZend_Application_Resource_Router</j aZend_Application_Resource_ResourceAbstract<)i UZend_Application_Resource_Navigation<&h OZend_Application_Resource_Multidb<&g OZend_Application_Resource_Modules<#f IZend_Application_Resource_Mail<"e GZend_Application_Resource_Log<%d MZend_Application_Resource_Locale<%c MZend_Application_Resource_Layout<.b _Zend_Application_Resource_Frontcontroller<(a SZend_Application_Resource_Exception<#` IZend_Application_Resource_Dojo<!_ EZend_Application_Resource_Db<+^ YZend_Application_Resource_Cachemanager<&] OZend_Application_Module_Bootstrap<'\ QZend_Application_Module_Autoloader<[ AZend_Application_Exception<)Z UZend_Application_Bootstrap_Exception<1Y eZend_Application_Bootstrap_BootstrapAbstract<)X UZend_Application_Bootstrap_Bootstrap<W ?Zend_Amf_Value_TraitsInfo<-V ]Zend_Amf_Value_Messaging_RemotingMessage<*U WZend_Amf_Value_Messaging_ErrorMessage<,T [Zend_Amf_Value_Messaging_CommandMessage<*S WZend_Amf_Value_Messaging_AsyncMessage<-R ]Zend_Amf_Value_Messaging_ArrayCollection<0Q cZend_Amf_Value_Messaging_AcknowledgeMessage<-P ]Zend_Amf_Value_Messaging_AbstractMessage<!O EZend_Amf_Value_MessageHeader<N AZend_Amf_Value_MessageBody<M =Zend_Amf_Value_ByteArray<L AZend_Amf_Util_BinaryStream<K +Zend_Amf_Server<   ^  cH)wCrEj>	]2



f
:
				{	V	"i@a8kC$ye?#g+Tf, \:       ' QZend_Controller_Plugin_ActionStack<$ KZend_Controller_Plugin_Abstract< 7Zend_Controller_Front< ?Zend_Controller_Exception<( SZend_Controller_Dispatcher_Standard<)
 UZend_Controller_Dispatcher_Exception<(	 SZend_Controller_Dispatcher_Abstract< 9Zend_Controller_Action<( SZend_Controller_Action_HelperBroker<6 oZend_Controller_Action_HelperBroker_PriorityStack</ aZend_Controller_Action_Helper_ViewRenderer<& OZend_Controller_Action_Helper_Url<- ]Zend_Controller_Action_Helper_Redirector<' QZend_Controller_Action_Helper_Json<1 eZend_Controller_Action_Helper_FlashMessenger<0  cZend_Controller_Action_Helper_ContextSwitch<( SZend_Controller_Action_Helper_Cache<<~ {Zend_Controller_Action_Helper_AutoCompleteScriptaculous<3} iZend_Controller_Action_Helper_AutoCompleteDojo<8| sZend_Controller_Action_Helper_AutoComplete_Abstract<.{ _Zend_Controller_Action_Helper_AjaxContext<.z _Zend_Controller_Action_Helper_ActionStack<+y YZend_Controller_Action_Helper_Abstract<%x MZend_Controller_Action_Exception<w 3Zend_Console_Getopt<"v GZend_Console_Getopt_Exception<u #Zend_Config<t -Zend_Config_Yaml<s +Zend_Config_Xml<r 1Zend_Config_Writer<q ;Zend_Config_Writer_Yaml<p 9Zend_Config_Writer_Xml<o ;Zend_Config_Writer_Json<n 9Zend_Config_Writer_Ini<$m KZend_Config_Writer_FileAbstract<l =Zend_Config_Writer_Array<k -Zend_Config_Json<j +Zend_Config_Ini<i 7Zend_Config_Exception<$h KZend_CodeGenerator_Php_Property<1g eZend_CodeGenerator_Php_Property_DefaultValue<%f MZend_CodeGenerator_Php_Parameter<2e gZend_CodeGenerator_Php_Parameter_DefaultValue<"d GZend_CodeGenerator_Php_Method<,c [Zend_CodeGenerator_Php_Member_Container<+b YZend_CodeGenerator_Php_Member_Abstract< a CZend_CodeGenerator_Php_File<%` MZend_CodeGenerator_Php_Exception<$_ KZend_CodeGenerator_Php_Docblock<(^ SZend_CodeGenerator_Php_Docblock_Tag</] aZend_CodeGenerator_Php_Docblock_Tag_Return<.\ _Zend_CodeGenerator_Php_Docblock_Tag_Param<0[ cZend_CodeGenerator_Php_Docblock_Tag_License<!Z EZend_CodeGenerator_Php_Class< Y CZend_CodeGenerator_Php_Body<$X KZend_CodeGenerator_Php_Abstract<!W EZend_CodeGenerator_Exception< V CZend_CodeGenerator_Abstract<&U OZend_Cloud_StorageService_Factory<(T SZend_Cloud_StorageService_Exception<3S iZend_Cloud_StorageService_Adapter_WindowsAzure<)R UZend_Cloud_StorageService_Adapter_S3</Q aZend_Cloud_StorageService_Adapter_Nirvanix<1P eZend_Cloud_StorageService_Adapter_FileSystem<'O QZend_Cloud_QueueService_MessageSet<$N KZend_Cloud_QueueService_Message<$M KZend_Cloud_QueueService_Factory<&L OZend_Cloud_QueueService_Exception<.K _Zend_Cloud_QueueService_Adapter_ZendQueue<1J eZend_Cloud_QueueService_Adapter_WindowsAzure<(I SZend_Cloud_QueueService_Adapter_Sqs<4H kZend_Cloud_QueueService_Adapter_AbstractAdapter<.G _Zend_Cloud_OperationNotAvailableException<F 5Zend_Cloud_Exception<%E MZend_Cloud_DocumentService_Query<'D QZend_Cloud_DocumentService_Factory<)C UZend_Cloud_DocumentService_Exception<+B YZend_Cloud_DocumentService_DocumentSet<(A SZend_Cloud_DocumentService_Document<4@ kZend_Cloud_DocumentService_Adapter_WindowsAzure<:? wZend_Cloud_DocumentService_Adapter_WindowsAzure_Query<0> cZend_Cloud_DocumentService_Adapter_SimpleDb<6= oZend_Cloud_DocumentService_Adapter_SimpleDb_Query<7< qZend_Cloud_DocumentService_Adapter_AbstractAdapter<; AZend_Cloud_AbstractFactory<: /Zend_Captcha_Word<9 9Zend_Captcha_ReCaptcha<8 1Zend_Captcha_Image<7 3Zend_Captcha_Figlet<6 9Zend_Captcha_Exception<5 /Zend_Captcha_Dumb<4 /Zend_Captcha_Base<3 !Zend_Cache<2 1Zend_Cache_Manager<   n  [1d?oHj>vL




z
W
5

						h	V	5	`ApP.qP1vK*|Q0oU/nQ:]-                            *} WZend_Dojo_Form_Decorator_DijitElement<,| [Zend_Dojo_Form_Decorator_DijitContainer<){ UZend_Dojo_Form_Decorator_ContentPane<-z ]Zend_Dojo_Form_Decorator_BorderContainer<+y YZend_Dojo_Form_Decorator_AccordionPane<0x cZend_Dojo_Form_Decorator_AccordionContainer<w 3Zend_Dojo_Exception<v )Zend_Dojo_Data<u 5Zend_Dojo_BuildLayer<t !Zend_Debug<s Zend_Db<r 'Zend_Db_Table<q 5Zend_Db_Table_Select<#p IZend_Db_Table_Select_Exception<o 5Zend_Db_Table_Rowset<#n IZend_Db_Table_Rowset_Exception<"m GZend_Db_Table_Rowset_Abstract<l /Zend_Db_Table_Row< k CZend_Db_Table_Row_Exception<j AZend_Db_Table_Row_Abstract<i ;Zend_Db_Table_Exception<h =Zend_Db_Table_Definition<g 9Zend_Db_Table_Abstract<f /Zend_Db_Statement<e =Zend_Db_Statement_Sqlsrv<'d QZend_Db_Statement_Sqlsrv_Exception<c 7Zend_Db_Statement_Pdo<b ?Zend_Db_Statement_Pdo_Oci<a ?Zend_Db_Statement_Pdo_Ibm<` =Zend_Db_Statement_Oracle<'_ QZend_Db_Statement_Oracle_Exception<^ =Zend_Db_Statement_Mysqli<'] QZend_Db_Statement_Mysqli_Exception< \ CZend_Db_Statement_Exception<[ 7Zend_Db_Statement_Db2<$Z KZend_Db_Statement_Db2_Exception<Y )Zend_Db_Select<X =Zend_Db_Select_Exception<W -Zend_Db_Profiler<V 9Zend_Db_Profiler_Query<U =Zend_Db_Profiler_Firebug<T AZend_Db_Profiler_Exception<S %Zend_Db_Expr<R /Zend_Db_Exception<Q 9Zend_Db_Adapter_Sqlsrv<%P MZend_Db_Adapter_Sqlsrv_Exception<O AZend_Db_Adapter_Pdo_Sqlite<N ?Zend_Db_Adapter_Pdo_Pgsql<M ;Zend_Db_Adapter_Pdo_Oci<L ?Zend_Db_Adapter_Pdo_Mysql<K ?Zend_Db_Adapter_Pdo_Mssql<J ;Zend_Db_Adapter_Pdo_Ibm< I CZend_Db_Adapter_Pdo_Ibm_Ids< H CZend_Db_Adapter_Pdo_Ibm_Db2<!G EZend_Db_Adapter_Pdo_Abstract<F 9Zend_Db_Adapter_Oracle<%E MZend_Db_Adapter_Oracle_Exception<D 9Zend_Db_Adapter_Mysqli<%C MZend_Db_Adapter_Mysqli_Exception<B ?Zend_Db_Adapter_Exception<A 3Zend_Db_Adapter_Db2<"@ GZend_Db_Adapter_Db2_Exception<? =Zend_Db_Adapter_Abstract<> Zend_Date<= 3Zend_Date_Exception<< 5Zend_Date_DateObject<; -Zend_Date_Cities<: 'Zend_Currency<9 ;Zend_Currency_Exception<8 !Zend_Crypt<7 )Zend_Crypt_Rsa<6 1Zend_Crypt_Rsa_Key<5 ?Zend_Crypt_Rsa_Key_Public<4 AZend_Crypt_Rsa_Key_Private<3 =Zend_Crypt_Rsa_Exception<2 +Zend_Crypt_Math<1 ?Zend_Crypt_Math_Exception<0 AZend_Crypt_Math_BigInteger<#/ IZend_Crypt_Math_BigInteger_Gmp<). UZend_Crypt_Math_BigInteger_Exception<&- OZend_Crypt_Math_BigInteger_Bcmath<, +Zend_Crypt_Hmac<+ ?Zend_Crypt_Hmac_Exception<* 5Zend_Crypt_Exception<) =Zend_Crypt_DiffieHellman<'( QZend_Crypt_DiffieHellman_Exception<!' EZend_Controller_Router_Route<(& SZend_Controller_Router_Route_Static<'% QZend_Controller_Router_Route_Regex<($ SZend_Controller_Router_Route_Module<*# WZend_Controller_Router_Route_Hostname<'" QZend_Controller_Router_Route_Chain<*! WZend_Controller_Router_Route_Abstract<#  IZend_Controller_Router_Rewrite<% MZend_Controller_Router_Exception<$ KZend_Controller_Router_Abstract<* WZend_Controller_Response_HttpTestCase<" GZend_Controller_Response_Http<' QZend_Controller_Response_Exception<! EZend_Controller_Response_Cli<& OZend_Controller_Response_Abstract<# IZend_Controller_Request_Simple<) UZend_Controller_Request_HttpTestCase<! EZend_Controller_Request_Http<& OZend_Controller_Request_Exception<& OZend_Controller_Request_Apache404<% MZend_Controller_Request_Abstract<& OZend_Controller_Plugin_PutHandler<( SZend_Controller_Plugin_ErrorHandler<" GZend_Controller_Plugin_Broker<   a  uG#~S.R%wK#rS<



k
D
				q	M	 }Z+{N)yR,xW9"mL2rI\2`<                                         #^ IZend_Feed_Reader_EntryAbstract<] AZend_Feed_Reader_Entry_Rss< \ CZend_Feed_Reader_Entry_Atom< [ CZend_Feed_Reader_Collection<3Z iZend_Feed_Reader_Collection_CollectionAbstract<)Y UZend_Feed_Reader_Collection_Category<'X QZend_Feed_Reader_Collection_Author<W 9Zend_Feed_Pubsubhubbub<&V OZend_Feed_Pubsubhubbub_Subscriber</U aZend_Feed_Pubsubhubbub_Subscriber_Callback<%T MZend_Feed_Pubsubhubbub_Publisher<.S _Zend_Feed_Pubsubhubbub_Model_Subscription</R aZend_Feed_Pubsubhubbub_Model_ModelAbstract<(Q SZend_Feed_Pubsubhubbub_HttpResponse<%P MZend_Feed_Pubsubhubbub_Exception<,O [Zend_Feed_Pubsubhubbub_CallbackAbstract<N 3Zend_Feed_Exception<M 3Zend_Feed_Entry_Rss<L 5Zend_Feed_Entry_Atom<K =Zend_Feed_Entry_Abstract<J /Zend_Feed_Element<I /Zend_Feed_Builder<H =Zend_Feed_Builder_Header<$G KZend_Feed_Builder_Header_Itunes< F CZend_Feed_Builder_Exception<E ;Zend_Feed_Builder_Entry<D )Zend_Feed_Atom<C 1Zend_Feed_Abstract<B )Zend_Exception<A )Zend_Dom_Query<@ 7Zend_Dom_Query_Result<? =Zend_Dom_Query_Css2Xpath<> 1Zend_Dom_Exception<= Zend_Dojo<)< UZend_Dojo_View_Helper_VerticalSlider<,; [Zend_Dojo_View_Helper_ValidationTextBox<&: OZend_Dojo_View_Helper_TimeTextBox<"9 GZend_Dojo_View_Helper_TextBox<#8 IZend_Dojo_View_Helper_Textarea<'7 QZend_Dojo_View_Helper_TabContainer<'6 QZend_Dojo_View_Helper_SubmitButton<)5 UZend_Dojo_View_Helper_StackContainer<)4 UZend_Dojo_View_Helper_SplitContainer<!3 EZend_Dojo_View_Helper_Slider<)2 UZend_Dojo_View_Helper_SimpleTextarea<&1 OZend_Dojo_View_Helper_RadioButton<*0 WZend_Dojo_View_Helper_PasswordTextBox<(/ SZend_Dojo_View_Helper_NumberTextBox<(. SZend_Dojo_View_Helper_NumberSpinner<+- YZend_Dojo_View_Helper_HorizontalSlider<, AZend_Dojo_View_Helper_Form<*+ WZend_Dojo_View_Helper_FilteringSelect<!* EZend_Dojo_View_Helper_Editor<) AZend_Dojo_View_Helper_Dojo<)( UZend_Dojo_View_Helper_Dojo_Container<)' UZend_Dojo_View_Helper_DijitContainer< & CZend_Dojo_View_Helper_Dijit<&% OZend_Dojo_View_Helper_DateTextBox<&$ OZend_Dojo_View_Helper_CustomDijit<*# WZend_Dojo_View_Helper_CurrencyTextBox<&" OZend_Dojo_View_Helper_ContentPane<#! IZend_Dojo_View_Helper_ComboBox<#  IZend_Dojo_View_Helper_CheckBox<! EZend_Dojo_View_Helper_Button<* WZend_Dojo_View_Helper_BorderContainer<( SZend_Dojo_View_Helper_AccordionPane<- ]Zend_Dojo_View_Helper_AccordionContainer< =Zend_Dojo_View_Exception< )Zend_Dojo_Form< 9Zend_Dojo_Form_SubForm<* WZend_Dojo_Form_Element_VerticalSlider<- ]Zend_Dojo_Form_Element_ValidationTextBox<' QZend_Dojo_Form_Element_TimeTextBox<# IZend_Dojo_Form_Element_TextBox<$ KZend_Dojo_Form_Element_Textarea<( SZend_Dojo_Form_Element_SubmitButton<" GZend_Dojo_Form_Element_Slider<* WZend_Dojo_Form_Element_SimpleTextarea<' QZend_Dojo_Form_Element_RadioButton<+ YZend_Dojo_Form_Element_PasswordTextBox<) UZend_Dojo_Form_Element_NumberTextBox<) UZend_Dojo_Form_Element_NumberSpinner<, [Zend_Dojo_Form_Element_HorizontalSlider<+ YZend_Dojo_Form_Element_FilteringSelect<"
 GZend_Dojo_Form_Element_Editor<&	 OZend_Dojo_Form_Element_DijitMulti<! EZend_Dojo_Form_Element_Dijit<' QZend_Dojo_Form_Element_DateTextBox<+ YZend_Dojo_Form_Element_CurrencyTextBox<$ KZend_Dojo_Form_Element_ComboBox<$ KZend_Dojo_Form_Element_CheckBox<" GZend_Dojo_Form_Element_Button<  CZend_Dojo_Form_DisplayGroup<* WZend_Dojo_Form_Decorator_TabContainer<,  [Zend_Dojo_Form_Decorator_StackContainer<, [Zend_Dojo_Form_Decorator_SplitContainer<'~ QZend_Dojo_Form_Decorator_DijitForm<   a  t;k;
wG{ZA+
{A


i
0				P	e9 vC#
dJ0kJ)t\9vV3nU5uL                                      +? YZend_Filter_Word_CamelCaseToUnderscore<*> WZend_Filter_Word_CamelCaseToSeparator<%= MZend_Filter_Word_CamelCaseToDash<< 7Zend_Filter_StripTags<; ?Zend_Filter_StripNewlines<: 9Zend_Filter_StringTrim<9 ?Zend_Filter_StringToUpper<8 ?Zend_Filter_StringToLower<7 5Zend_Filter_RealPath<6 ;Zend_Filter_PregReplace<5 -Zend_Filter_Null<&4 OZend_Filter_NormalizedToLocalized<&3 OZend_Filter_LocalizedToNormalized<2 +Zend_Filter_Int<1 /Zend_Filter_Input<0 7Zend_Filter_Inflector</ =Zend_Filter_HtmlEntities<. AZend_Filter_File_UpperCase<- ;Zend_Filter_File_Rename<, AZend_Filter_File_LowerCase<+ =Zend_Filter_File_Encrypt<* =Zend_Filter_File_Decrypt<) 7Zend_Filter_Exception<( 3Zend_Filter_Encrypt< ' CZend_Filter_Encrypt_Openssl<& AZend_Filter_Encrypt_Mcrypt<% +Zend_Filter_Dir<$ 1Zend_Filter_Digits<# 3Zend_Filter_Decrypt<" 9Zend_Filter_Decompress<! 5Zend_Filter_Compress<  =Zend_Filter_Compress_Zip< =Zend_Filter_Compress_Tar< =Zend_Filter_Compress_Rar< =Zend_Filter_Compress_Lzf< ;Zend_Filter_Compress_Gz<* WZend_Filter_Compress_CompressAbstract< =Zend_Filter_Compress_Bz2< 5Zend_Filter_Callback< 3Zend_Filter_Boolean< 5Zend_Filter_BaseName< /Zend_Filter_Alpha< /Zend_Filter_Alnum< 1Zend_File_Transfer<! EZend_File_Transfer_Exception<$ KZend_File_Transfer_Adapter_Http<( SZend_File_Transfer_Adapter_Abstract< Zend_Feed< -Zend_Feed_Writer< ;Zend_Feed_Writer_Source</ aZend_Feed_Writer_Renderer_RendererAbstract<' QZend_Feed_Writer_Renderer_Feed_Rss<( SZend_Feed_Writer_Renderer_Feed_Atom</
 aZend_Feed_Writer_Renderer_Feed_Atom_Source<5	 mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract<( SZend_Feed_Writer_Renderer_Entry_Rss<) UZend_Feed_Writer_Renderer_Entry_Atom<1 eZend_Feed_Writer_Renderer_Entry_Atom_Deleted< 7Zend_Feed_Writer_Feed<' QZend_Feed_Writer_Feed_FeedAbstract<< {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry<8 sZend_Feed_Writer_Extension_Threading_Renderer_Entry<4 kZend_Feed_Writer_Extension_Slash_Renderer_Entry<0  cZend_Feed_Writer_Extension_RendererAbstract<4 kZend_Feed_Writer_Extension_ITunes_Renderer_Feed<5~ mZend_Feed_Writer_Extension_ITunes_Renderer_Entry<+} YZend_Feed_Writer_Extension_ITunes_Feed<,| [Zend_Feed_Writer_Extension_ITunes_Entry<8{ sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed<9z uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry<6y oZend_Feed_Writer_Extension_Content_Renderer_Entry<2x gZend_Feed_Writer_Extension_Atom_Renderer_Feed<6w oZend_Feed_Writer_Exception_InvalidMethodException<v 9Zend_Feed_Writer_Entry<u =Zend_Feed_Writer_Deleted<t 'Zend_Feed_Rss<s -Zend_Feed_Reader<r =Zend_Feed_Reader_FeedSet<"q GZend_Feed_Reader_FeedAbstract<p ?Zend_Feed_Reader_Feed_Rss<o AZend_Feed_Reader_Feed_Atom<&n OZend_Feed_Reader_Feed_Atom_Source<3m iZend_Feed_Reader_Extension_WellFormedWeb_Entry<,l [Zend_Feed_Reader_Extension_Thread_Entry<0k cZend_Feed_Reader_Extension_Syndication_Feed<+j YZend_Feed_Reader_Extension_Slash_Entry<,i [Zend_Feed_Reader_Extension_Podcast_Feed<-h ]Zend_Feed_Reader_Extension_Podcast_Entry<,g [Zend_Feed_Reader_Extension_FeedAbstract<-f ]Zend_Feed_Reader_Extension_EntryAbstract</e aZend_Feed_Reader_Extension_DublinCore_Feed<0d cZend_Feed_Reader_Extension_DublinCore_Entry<4c kZend_Feed_Reader_Extension_CreativeCommons_Feed<5b mZend_Feed_Reader_Extension_CreativeCommons_Entry<-a ]Zend_Feed_Reader_Extension_Content_Entry<)` UZend_Feed_Reader_Extension_Atom_Feed<*_ WZend_Feed_Reader_Extension_Atom_Entry<   h  X*zK7rJ"rI"jC




s
T
5
					c	C	#	eI/W:qH!~X4oGV1P-jS8                $' KZend_Gdata_Books_CollectionFeed<%& MZend_Gdata_Books_CollectionEntry<% 1Zend_Gdata_AuthSub<$ )Zend_Gdata_App<$# KZend_Gdata_App_VersionException<" 3Zend_Gdata_App_Util<#! IZend_Gdata_App_MediaFileSource<  ?Zend_Gdata_App_MediaEntry<2 gZend_Gdata_App_LoggingHttpClientAdapterSocket< AZend_Gdata_App_IOException<, [Zend_Gdata_App_InvalidArgumentException<! EZend_Gdata_App_HttpException<$ KZend_Gdata_App_FeedSourceParent<# IZend_Gdata_App_FeedEntryParent< 3Zend_Gdata_App_Feed< =Zend_Gdata_App_Extension<! EZend_Gdata_App_Extension_Uri<% MZend_Gdata_App_Extension_Updated<# IZend_Gdata_App_Extension_Title<" GZend_Gdata_App_Extension_Text<% MZend_Gdata_App_Extension_Summary<& OZend_Gdata_App_Extension_Subtitle<$ KZend_Gdata_App_Extension_Source<$ KZend_Gdata_App_Extension_Rights<' QZend_Gdata_App_Extension_Published<$ KZend_Gdata_App_Extension_Person<" GZend_Gdata_App_Extension_Name<" GZend_Gdata_App_Extension_Logo<" GZend_Gdata_App_Extension_Link< 
 CZend_Gdata_App_Extension_Id<"	 GZend_Gdata_App_Extension_Icon<' QZend_Gdata_App_Extension_Generator<# IZend_Gdata_App_Extension_Email<% MZend_Gdata_App_Extension_Element<$ KZend_Gdata_App_Extension_Edited<# IZend_Gdata_App_Extension_Draft<% MZend_Gdata_App_Extension_Control<) UZend_Gdata_App_Extension_Contributor<% MZend_Gdata_App_Extension_Content<&  OZend_Gdata_App_Extension_Category<$ KZend_Gdata_App_Extension_Author<~ =Zend_Gdata_App_Exception<} 5Zend_Gdata_App_Entry<,| [Zend_Gdata_App_CaptchaRequiredException<#{ IZend_Gdata_App_BaseMediaSource<z 3Zend_Gdata_App_Base<*y WZend_Gdata_App_BadMethodCallException<!x EZend_Gdata_App_AuthException<w Zend_Form<v /Zend_Form_SubForm<u 3Zend_Form_Exception<t /Zend_Form_Element<s ;Zend_Form_Element_Xhtml<r AZend_Form_Element_Textarea<q 9Zend_Form_Element_Text<p =Zend_Form_Element_Submit<o =Zend_Form_Element_Select<n ;Zend_Form_Element_Reset<m ;Zend_Form_Element_Radio<l AZend_Form_Element_Password<"k GZend_Form_Element_Multiselect<$j KZend_Form_Element_MultiCheckbox<i ;Zend_Form_Element_Multi<h ;Zend_Form_Element_Image<g =Zend_Form_Element_Hidden<f 9Zend_Form_Element_Hash<e 9Zend_Form_Element_File< d CZend_Form_Element_Exception<c AZend_Form_Element_Checkbox<b ?Zend_Form_Element_Captcha<a =Zend_Form_Element_Button<` 9Zend_Form_DisplayGroup<#_ IZend_Form_Decorator_ViewScript<#^ IZend_Form_Decorator_ViewHelper< ] CZend_Form_Decorator_Tooltip<(\ SZend_Form_Decorator_PrepareElements<[ ?Zend_Form_Decorator_Label<Z ?Zend_Form_Decorator_Image< Y CZend_Form_Decorator_HtmlTag<#X IZend_Form_Decorator_FormErrors<%W MZend_Form_Decorator_FormElements<V =Zend_Form_Decorator_Form<U =Zend_Form_Decorator_File<!T EZend_Form_Decorator_Fieldset<"S GZend_Form_Decorator_Exception<R AZend_Form_Decorator_Errors<$Q KZend_Form_Decorator_DtDdWrapper<$P KZend_Form_Decorator_Description< O CZend_Form_Decorator_Captcha<%N MZend_Form_Decorator_Captcha_Word<*M WZend_Form_Decorator_Captcha_ReCaptcha<!L EZend_Form_Decorator_Callback<!K EZend_Form_Decorator_Abstract<J #Zend_Filter<+I YZend_Filter_Word_UnderscoreToSeparator<&H OZend_Filter_Word_UnderscoreToDash<+G YZend_Filter_Word_UnderscoreToCamelCase<*F WZend_Filter_Word_SeparatorToSeparator<%E MZend_Filter_Word_SeparatorToDash<*D WZend_Filter_Word_SeparatorToCamelCase<(C SZend_Filter_Word_Separator_Abstract<&B OZend_Filter_Word_DashToUnderscore<%A MZend_Filter_Word_DashToSeparator<%@ MZend_Filter_Word_DashToCamelCase<   ^  p?Z5_-zKcG(




o
B
			{	I	g<c=k?qKb:	oL+NxP$             % MZend_Gdata_Gapps_Extension_Quota<( SZend_Gdata_Gapps_Extension_Property<( SZend_Gdata_Gapps_Extension_Nickname<$ KZend_Gdata_Gapps_Extension_Name<% MZend_Gdata_Gapps_Extension_Login<)  UZend_Gdata_Gapps_Extension_EmailList< 9Zend_Gdata_Gapps_Error<-~ ]Zend_Gdata_Gapps_EmailListRecipientQuery<,} [Zend_Gdata_Gapps_EmailListRecipientFeed<-| ]Zend_Gdata_Gapps_EmailListRecipientEntry<${ KZend_Gdata_Gapps_EmailListQuery<#z IZend_Gdata_Gapps_EmailListFeed<$y KZend_Gdata_Gapps_EmailListEntry<x +Zend_Gdata_Feed<w 5Zend_Gdata_Extension<v =Zend_Gdata_Extension_Who<u AZend_Gdata_Extension_Where<t ?Zend_Gdata_Extension_When<$s KZend_Gdata_Extension_Visibility<&r OZend_Gdata_Extension_Transparency<"q GZend_Gdata_Extension_Reminder<-p ]Zend_Gdata_Extension_RecurrenceException<$o KZend_Gdata_Extension_Recurrence< n CZend_Gdata_Extension_Rating<'m QZend_Gdata_Extension_OriginalEvent<0l cZend_Gdata_Extension_OpenSearchTotalResults<.k _Zend_Gdata_Extension_OpenSearchStartIndex<0j cZend_Gdata_Extension_OpenSearchItemsPerPage<"i GZend_Gdata_Extension_FeedLink<*h WZend_Gdata_Extension_ExtendedProperty<%g MZend_Gdata_Extension_EventStatus<#f IZend_Gdata_Extension_EntryLink<"e GZend_Gdata_Extension_Comments<&d OZend_Gdata_Extension_AttendeeType<(c SZend_Gdata_Extension_AttendeeStatus<b +Zend_Gdata_Exif<a 5Zend_Gdata_Exif_Feed<#` IZend_Gdata_Exif_Extension_Time<#_ IZend_Gdata_Exif_Extension_Tags<$^ KZend_Gdata_Exif_Extension_Model<#] IZend_Gdata_Exif_Extension_Make<"\ GZend_Gdata_Exif_Extension_Iso<,[ [Zend_Gdata_Exif_Extension_ImageUniqueId<$Z KZend_Gdata_Exif_Extension_FStop<*Y WZend_Gdata_Exif_Extension_FocalLength<$X KZend_Gdata_Exif_Extension_Flash<'W QZend_Gdata_Exif_Extension_Exposure<'V QZend_Gdata_Exif_Extension_Distance<U 7Zend_Gdata_Exif_Entry<T -Zend_Gdata_Entry<S 7Zend_Gdata_DublinCore<*R WZend_Gdata_DublinCore_Extension_Title<,Q [Zend_Gdata_DublinCore_Extension_Subject<+P YZend_Gdata_DublinCore_Extension_Rights<.O _Zend_Gdata_DublinCore_Extension_Publisher<-N ]Zend_Gdata_DublinCore_Extension_Language</M aZend_Gdata_DublinCore_Extension_Identifier<+L YZend_Gdata_DublinCore_Extension_Format<0K cZend_Gdata_DublinCore_Extension_Description<)J UZend_Gdata_DublinCore_Extension_Date<,I [Zend_Gdata_DublinCore_Extension_Creator<H +Zend_Gdata_Docs<G 7Zend_Gdata_Docs_Query<%F MZend_Gdata_Docs_DocumentListFeed<&E OZend_Gdata_Docs_DocumentListEntry<D 9Zend_Gdata_ClientLogin<C 3Zend_Gdata_Calendar<!B EZend_Gdata_Calendar_ListFeed<"A GZend_Gdata_Calendar_ListEntry<-@ ]Zend_Gdata_Calendar_Extension_WebContent<+? YZend_Gdata_Calendar_Extension_Timezone<9> uZend_Gdata_Calendar_Extension_SendEventNotifications<+= YZend_Gdata_Calendar_Extension_Selected<+< YZend_Gdata_Calendar_Extension_QuickAdd<'; QZend_Gdata_Calendar_Extension_Link<): UZend_Gdata_Calendar_Extension_Hidden<(9 SZend_Gdata_Calendar_Extension_Color<.8 _Zend_Gdata_Calendar_Extension_AccessLevel<#7 IZend_Gdata_Calendar_EventQuery<"6 GZend_Gdata_Calendar_EventFeed<#5 IZend_Gdata_Calendar_EventEntry<4 -Zend_Gdata_Books<!3 EZend_Gdata_Books_VolumeQuery< 2 CZend_Gdata_Books_VolumeFeed<!1 EZend_Gdata_Books_VolumeEntry<+0 YZend_Gdata_Books_Extension_Viewability<-/ ]Zend_Gdata_Books_Extension_ThumbnailLink<&. OZend_Gdata_Books_Extension_Review<+- YZend_Gdata_Books_Extension_PreviewLink<(, SZend_Gdata_Books_Extension_InfoLink<-+ ]Zend_Gdata_Books_Extension_Embeddability<)* UZend_Gdata_Books_Extension_BooksLink<-) ]Zend_Gdata_Books_Extension_BooksCategory<.( _Zend_Gdata_Books_Extension_AnnotationLink<   a  pL' lH)~_.c>cG0



f
F
,					q	@	{M ]0vT8xL_4T&e6	[/                 &f OZend_Gdata_Photos_Extension_Width<'e QZend_Gdata_Photos_Extension_Weight<(d SZend_Gdata_Photos_Extension_Version<%c MZend_Gdata_Photos_Extension_User<*b WZend_Gdata_Photos_Extension_Timestamp<*a WZend_Gdata_Photos_Extension_Thumbnail<%` MZend_Gdata_Photos_Extension_Size<)_ UZend_Gdata_Photos_Extension_Rotation<+^ YZend_Gdata_Photos_Extension_QuotaLimit<-] ]Zend_Gdata_Photos_Extension_QuotaCurrent<)\ UZend_Gdata_Photos_Extension_Position<([ SZend_Gdata_Photos_Extension_PhotoId<3Z iZend_Gdata_Photos_Extension_NumPhotosRemaining<*Y WZend_Gdata_Photos_Extension_NumPhotos<)X UZend_Gdata_Photos_Extension_Nickname<%W MZend_Gdata_Photos_Extension_Name<2V gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum<)U UZend_Gdata_Photos_Extension_Location<#T IZend_Gdata_Photos_Extension_Id<'S QZend_Gdata_Photos_Extension_Height<2R gZend_Gdata_Photos_Extension_CommentingEnabled<-Q ]Zend_Gdata_Photos_Extension_CommentCount<'P QZend_Gdata_Photos_Extension_Client<)O UZend_Gdata_Photos_Extension_Checksum<*N WZend_Gdata_Photos_Extension_BytesUsed<(M SZend_Gdata_Photos_Extension_AlbumId<'L QZend_Gdata_Photos_Extension_Access<#K IZend_Gdata_Photos_CommentEntry<!J EZend_Gdata_Photos_AlbumQuery< I CZend_Gdata_Photos_AlbumFeed<!H EZend_Gdata_Photos_AlbumEntry<G 3Zend_Gdata_MimeFile<F ?Zend_Gdata_MimeBodyString<E AZend_Gdata_MediaMimeStream<D -Zend_Gdata_Media<C 7Zend_Gdata_Media_Feed<*B WZend_Gdata_Media_Extension_MediaTitle<.A _Zend_Gdata_Media_Extension_MediaThumbnail<)@ UZend_Gdata_Media_Extension_MediaText<0? cZend_Gdata_Media_Extension_MediaRestriction<+> YZend_Gdata_Media_Extension_MediaRating<+= YZend_Gdata_Media_Extension_MediaPlayer<-< ]Zend_Gdata_Media_Extension_MediaKeywords<); UZend_Gdata_Media_Extension_MediaHash<*: WZend_Gdata_Media_Extension_MediaGroup<09 cZend_Gdata_Media_Extension_MediaDescription<+8 YZend_Gdata_Media_Extension_MediaCredit<.7 _Zend_Gdata_Media_Extension_MediaCopyright<,6 [Zend_Gdata_Media_Extension_MediaContent<-5 ]Zend_Gdata_Media_Extension_MediaCategory<4 9Zend_Gdata_Media_Entry<3 AZend_Gdata_Kind_EventEntry<2 7Zend_Gdata_HttpClient<*1 WZend_Gdata_HttpAdapterStreamingSocket<)0 UZend_Gdata_HttpAdapterStreamingProxy</ /Zend_Gdata_Health<. ;Zend_Gdata_Health_Query<&- OZend_Gdata_Health_ProfileListFeed<', QZend_Gdata_Health_ProfileListEntry<"+ GZend_Gdata_Health_ProfileFeed<#* IZend_Gdata_Health_ProfileEntry<$) KZend_Gdata_Health_Extension_Ccr<( )Zend_Gdata_Geo<' 3Zend_Gdata_Geo_Feed<$& KZend_Gdata_Geo_Extension_GmlPos<&% OZend_Gdata_Geo_Extension_GmlPoint<)$ UZend_Gdata_Geo_Extension_GeoRssWhere<# 5Zend_Gdata_Geo_Entry<" -Zend_Gdata_Gbase<"! GZend_Gdata_Gbase_SnippetQuery<!  EZend_Gdata_Gbase_SnippetFeed<" GZend_Gdata_Gbase_SnippetEntry< 9Zend_Gdata_Gbase_Query< AZend_Gdata_Gbase_ItemQuery< ?Zend_Gdata_Gbase_ItemFeed< AZend_Gdata_Gbase_ItemEntry< 7Zend_Gdata_Gbase_Feed<- ]Zend_Gdata_Gbase_Extension_BaseAttribute< 9Zend_Gdata_Gbase_Entry< -Zend_Gdata_Gapps< AZend_Gdata_Gapps_UserQuery< ?Zend_Gdata_Gapps_UserFeed< AZend_Gdata_Gapps_UserEntry<& OZend_Gdata_Gapps_ServiceException< 9Zend_Gdata_Gapps_Query<  CZend_Gdata_Gapps_OwnerQuery< AZend_Gdata_Gapps_OwnerFeed<  CZend_Gdata_Gapps_OwnerEntry<# IZend_Gdata_Gapps_NicknameQuery<" GZend_Gdata_Gapps_NicknameFeed<# IZend_Gdata_Gapps_NicknameEntry<! EZend_Gdata_Gapps_MemberQuery< 
 CZend_Gdata_Gapps_MemberFeed<!	 EZend_Gdata_Gapps_MemberEntry<  CZend_Gdata_Gapps_GroupQuery< AZend_Gdata_Gapps_GroupFeed<  CZend_Gdata_Gapps_GroupEntry<   [  oK(~T&`6S%e=



h
;
			~	R	%q?V)h;
O#qCwJj>yN'                             "A GZend_Http_Client_Adapter_Test<$@ KZend_Http_Client_Adapter_Socket<#? IZend_Http_Client_Adapter_Proxy<'> QZend_Http_Client_Adapter_Exception<"= GZend_Http_Client_Adapter_Curl<< !Zend_Gdata<; 1Zend_Gdata_YouTube<": GZend_Gdata_YouTube_VideoQuery<!9 EZend_Gdata_YouTube_VideoFeed<"8 GZend_Gdata_YouTube_VideoEntry<(7 SZend_Gdata_YouTube_UserProfileEntry<(6 SZend_Gdata_YouTube_SubscriptionFeed<)5 UZend_Gdata_YouTube_SubscriptionEntry<)4 UZend_Gdata_YouTube_PlaylistVideoFeed<*3 WZend_Gdata_YouTube_PlaylistVideoEntry<(2 SZend_Gdata_YouTube_PlaylistListFeed<)1 UZend_Gdata_YouTube_PlaylistListEntry<"0 GZend_Gdata_YouTube_MediaEntry<!/ EZend_Gdata_YouTube_InboxFeed<". GZend_Gdata_YouTube_InboxEntry<)- UZend_Gdata_YouTube_Extension_VideoId<*, WZend_Gdata_YouTube_Extension_Username<*+ WZend_Gdata_YouTube_Extension_Uploaded<'* QZend_Gdata_YouTube_Extension_Token<() SZend_Gdata_YouTube_Extension_Status<,( [Zend_Gdata_YouTube_Extension_Statistics<'' QZend_Gdata_YouTube_Extension_State<(& SZend_Gdata_YouTube_Extension_School<-% ]Zend_Gdata_YouTube_Extension_ReleaseDate<.$ _Zend_Gdata_YouTube_Extension_Relationship<*# WZend_Gdata_YouTube_Extension_Recorded<&" OZend_Gdata_YouTube_Extension_Racy<-! ]Zend_Gdata_YouTube_Extension_QueryString<)  UZend_Gdata_YouTube_Extension_Private<* WZend_Gdata_YouTube_Extension_Position</ aZend_Gdata_YouTube_Extension_PlaylistTitle<, [Zend_Gdata_YouTube_Extension_PlaylistId<, [Zend_Gdata_YouTube_Extension_Occupation<) UZend_Gdata_YouTube_Extension_NoEmbed<' QZend_Gdata_YouTube_Extension_Music<( SZend_Gdata_YouTube_Extension_Movies<- ]Zend_Gdata_YouTube_Extension_MediaRating<, [Zend_Gdata_YouTube_Extension_MediaGroup<- ]Zend_Gdata_YouTube_Extension_MediaCredit<. _Zend_Gdata_YouTube_Extension_MediaContent<* WZend_Gdata_YouTube_Extension_Location<& OZend_Gdata_YouTube_Extension_Link<* WZend_Gdata_YouTube_Extension_LastName<* WZend_Gdata_YouTube_Extension_Hometown<) UZend_Gdata_YouTube_Extension_Hobbies<( SZend_Gdata_YouTube_Extension_Gender<+ YZend_Gdata_YouTube_Extension_FirstName<* WZend_Gdata_YouTube_Extension_Duration<- ]Zend_Gdata_YouTube_Extension_Description<+ YZend_Gdata_YouTube_Extension_CountHint<)
 UZend_Gdata_YouTube_Extension_Control<)	 UZend_Gdata_YouTube_Extension_Company<' QZend_Gdata_YouTube_Extension_Books<% MZend_Gdata_YouTube_Extension_Age<) UZend_Gdata_YouTube_Extension_AboutMe<# IZend_Gdata_YouTube_ContactFeed<$ KZend_Gdata_YouTube_ContactEntry<# IZend_Gdata_YouTube_CommentFeed<$ KZend_Gdata_YouTube_CommentEntry<$ KZend_Gdata_YouTube_ActivityFeed<%  MZend_Gdata_YouTube_ActivityEntry< ;Zend_Gdata_Spreadsheets<*~ WZend_Gdata_Spreadsheets_WorksheetFeed<+} YZend_Gdata_Spreadsheets_WorksheetEntry<,| [Zend_Gdata_Spreadsheets_SpreadsheetFeed<-{ ]Zend_Gdata_Spreadsheets_SpreadsheetEntry<&z OZend_Gdata_Spreadsheets_ListQuery<%y MZend_Gdata_Spreadsheets_ListFeed<&x OZend_Gdata_Spreadsheets_ListEntry</w aZend_Gdata_Spreadsheets_Extension_RowCount<-v ]Zend_Gdata_Spreadsheets_Extension_Custom</u aZend_Gdata_Spreadsheets_Extension_ColCount<+t YZend_Gdata_Spreadsheets_Extension_Cell<*s WZend_Gdata_Spreadsheets_DocumentQuery<&r OZend_Gdata_Spreadsheets_CellQuery<%q MZend_Gdata_Spreadsheets_CellFeed<&p OZend_Gdata_Spreadsheets_CellEntry<o -Zend_Gdata_Query<n /Zend_Gdata_Photos< m CZend_Gdata_Photos_UserQuery<l AZend_Gdata_Photos_UserFeed< k CZend_Gdata_Photos_UserEntry<j AZend_Gdata_Photos_TagEntry<!i EZend_Gdata_Photos_PhotoQuery< h CZend_Gdata_Photos_PhotoFeed<!g EZend_Gdata_Photos_PhotoEntry<   h sQ6]7bAW+
zS!



J
-
				z	X	'Z0w@qW=!
b;xK-p[? eE,tJ"                                           ) 9Zend_Ldap_Node_RootDse<$( KZend_Ldap_Node_RootDse_OpenLdap<&' OZend_Ldap_Node_RootDse_eDirectory<+& YZend_Ldap_Node_RootDse_ActiveDirectory<% ?Zend_Ldap_Node_Collection<$$ KZend_Ldap_Node_ChildrenIterator<# ;Zend_Ldap_Node_Abstract<" 9Zend_Ldap_Ldif_Encoder<! -Zend_Ldap_Filter<  ;Zend_Ldap_Filter_String< 3Zend_Ldap_Filter_Or< 5Zend_Ldap_Filter_Not< 7Zend_Ldap_Filter_Mask< =Zend_Ldap_Filter_Logical< AZend_Ldap_Filter_Exception< 5Zend_Ldap_Filter_And< ?Zend_Ldap_Filter_Abstract< 3Zend_Ldap_Exception< %Zend_Ldap_Dn< 3Zend_Ldap_Converter<" GZend_Ldap_Converter_Exception< 5Zend_Ldap_Collection<* WZend_Ldap_Collection_Iterator_Default< 3Zend_Ldap_Attribute< #Zend_Layout< 7Zend_Layout_Exception<) UZend_Layout_Controller_Plugin_Layout<0 cZend_Layout_Controller_Action_Helper_Layout< Zend_Json< -Zend_Json_Server< 5Zend_Json_Server_Smd<!
 EZend_Json_Server_Smd_Service<	 ?Zend_Json_Server_Response<# IZend_Json_Server_Response_Http< =Zend_Json_Server_Request<" GZend_Json_Server_Request_Http< AZend_Json_Server_Exception< 9Zend_Json_Server_Error< 9Zend_Json_Server_Cache< )Zend_Json_Expr< 3Zend_Json_Exception<  /Zend_Json_Encoder< /Zend_Json_Decoder<~ 'Zend_InfoCard<-} ]Zend_InfoCard_Xml_SecurityTokenReference<| AZend_InfoCard_Xml_Security<){ UZend_InfoCard_Xml_Security_Transform<4z kZend_InfoCard_Xml_Security_Transform_XmlExcC14N<3y iZend_InfoCard_Xml_Security_Transform_Exception<<x {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignature<)w UZend_InfoCard_Xml_Security_Exception<v ?Zend_InfoCard_Xml_KeyInfo<&u OZend_InfoCard_Xml_KeyInfo_XmlDSig<&t OZend_InfoCard_Xml_KeyInfo_Default<'s QZend_InfoCard_Xml_KeyInfo_Abstract< r CZend_InfoCard_Xml_Exception<#q IZend_InfoCard_Xml_EncryptedKey<$p KZend_InfoCard_Xml_EncryptedData<+o YZend_InfoCard_Xml_EncryptedData_XmlEnc<-n ]Zend_InfoCard_Xml_EncryptedData_Abstract<m ?Zend_InfoCard_Xml_Element< l CZend_InfoCard_Xml_Assertion<%k MZend_InfoCard_Xml_Assertion_Saml<j ;Zend_InfoCard_Exception<%i MZend_InfoCard_Exception_Abstract<h 5Zend_InfoCard_Claims<g 5Zend_InfoCard_Cipher<5f mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc<5e mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc<4d kZend_InfoCard_Cipher_Symmetric_Adapter_Abstract<)c UZend_InfoCard_Cipher_Pki_Adapter_Rsa<.b _Zend_InfoCard_Cipher_Pki_Adapter_Abstract<#a IZend_InfoCard_Cipher_Exception<$` KZend_InfoCard_Adapter_Exception<"_ GZend_InfoCard_Adapter_Default<^ 3Zend_Http_UserAgent<"] GZend_Http_UserAgent_Validator<\ =Zend_Http_UserAgent_Text<([ SZend_Http_UserAgent_Storage_Session<.Z _Zend_Http_UserAgent_Storage_NonPersistent<*Y WZend_Http_UserAgent_Storage_Exception<X =Zend_Http_UserAgent_Spam<W ?Zend_Http_UserAgent_Probe< V CZend_Http_UserAgent_Offline<U AZend_Http_UserAgent_Mobile<T =Zend_Http_UserAgent_Feed<+S YZend_Http_UserAgent_Features_Exception<2R gZend_Http_UserAgent_Features_Adapter_WurflApi<3Q iZend_Http_UserAgent_Features_Adapter_TeraWurfl<5P mZend_Http_UserAgent_Features_Adapter_DeviceAtlas<"O GZend_Http_UserAgent_Exception<N ?Zend_Http_UserAgent_Email< M CZend_Http_UserAgent_Desktop< L CZend_Http_UserAgent_Console< K CZend_Http_UserAgent_Checker<J ;Zend_Http_UserAgent_Bot<'I QZend_Http_UserAgent_AbstractDevice<H 1Zend_Http_Response<G ?Zend_Http_Response_Stream<F 3Zend_Http_Exception<E 3Zend_Http_CookieJar<D -Zend_Http_Cookie<C -Zend_Http_Client<B AZend_Http_Client_Exception<   t a>uc;y`B'zZ9oT4




{
j
N
/
					y	Y	,	oF U;wY7rL%wcE#iL/z[9mS7                                # IZend_Measure_Viscosity_Dynamic< 3Zend_Measure_Torque< /Zend_Measure_Time< =Zend_Measure_Temperature< 1Zend_Measure_Speed< 7Zend_Measure_Pressure< 1Zend_Measure_Power< 3Zend_Measure_Number< 9Zend_Measure_Lightness< 3Zend_Measure_Length< ?Zend_Measure_Illumination< 9Zend_Measure_Frequency< 1Zend_Measure_Force< =Zend_Measure_Flow_Volume< 9Zend_Measure_Flow_Mole< 9Zend_Measure_Flow_Mass< 9Zend_Measure_Exception< 3Zend_Measure_Energy< 5Zend_Measure_Density<
 5Zend_Measure_Current< 	 CZend_Measure_Cooking_Weight<  CZend_Measure_Cooking_Volume< =Zend_Measure_Capacitance< 3Zend_Measure_Binary< /Zend_Measure_Area< 1Zend_Measure_Angle< ?Zend_Measure_Acceleration< 7Zend_Measure_Abstract< #Zend_Markup<  7Zend_Markup_TokenList< /Zend_Markup_Token<*~ WZend_Markup_Renderer_RendererAbstract<} ?Zend_Markup_Renderer_Html<"| GZend_Markup_Renderer_Html_Url<#{ IZend_Markup_Renderer_Html_List<"z GZend_Markup_Renderer_Html_Img<+y YZend_Markup_Renderer_Html_HtmlAbstract<#x IZend_Markup_Renderer_Html_Code<#w IZend_Markup_Renderer_Exception<v AZend_Markup_Parser_Textile<!u EZend_Markup_Parser_Exception<t ?Zend_Markup_Parser_Bbcode<s 7Zend_Markup_Exception<r Zend_Mail<q =Zend_Mail_Transport_Smtp<!p EZend_Mail_Transport_Sendmail<o =Zend_Mail_Transport_File<"n GZend_Mail_Transport_Exception<!m EZend_Mail_Transport_Abstract<l /Zend_Mail_Storage<'k QZend_Mail_Storage_Writable_Maildir<j 9Zend_Mail_Storage_Pop3<i 9Zend_Mail_Storage_Mbox<h ?Zend_Mail_Storage_Maildir<g 9Zend_Mail_Storage_Imap<f =Zend_Mail_Storage_Folder<"e GZend_Mail_Storage_Folder_Mbox<%d MZend_Mail_Storage_Folder_Maildir< c CZend_Mail_Storage_Exception<b AZend_Mail_Storage_Abstract<a ;Zend_Mail_Protocol_Smtp<'` QZend_Mail_Protocol_Smtp_Auth_Plain<'_ QZend_Mail_Protocol_Smtp_Auth_Login<)^ UZend_Mail_Protocol_Smtp_Auth_Crammd5<] ;Zend_Mail_Protocol_Pop3<\ ;Zend_Mail_Protocol_Imap<![ EZend_Mail_Protocol_Exception< Z CZend_Mail_Protocol_Abstract<Y )Zend_Mail_Part<X 3Zend_Mail_Part_File<W /Zend_Mail_Message<V 9Zend_Mail_Message_File<U 3Zend_Mail_Exception<T Zend_Log< S CZend_Log_Writer_ZendMonitor<R 9Zend_Log_Writer_Syslog<Q 9Zend_Log_Writer_Stream<P 5Zend_Log_Writer_Null<O 5Zend_Log_Writer_Mock<N 5Zend_Log_Writer_Mail<M ;Zend_Log_Writer_Firebug<L 1Zend_Log_Writer_Db<K =Zend_Log_Writer_Abstract<J 9Zend_Log_Formatter_Xml<I ?Zend_Log_Formatter_Simple<H AZend_Log_Formatter_Firebug< G CZend_Log_Formatter_Abstract<F =Zend_Log_Filter_Suppress<E =Zend_Log_Filter_Priority<D ;Zend_Log_Filter_Message<C =Zend_Log_Filter_Abstract<B 1Zend_Log_Exception<A #Zend_Locale<@ -Zend_Locale_Math<? =Zend_Locale_Math_PhpMath<> AZend_Locale_Math_Exception<= 1Zend_Locale_Format<< 7Zend_Locale_Exception<; -Zend_Locale_Data<!: EZend_Locale_Data_Translation<9 #Zend_Loader<8 =Zend_Loader_PluginLoader<'7 QZend_Loader_PluginLoader_Exception<6 7Zend_Loader_Exception<5 9Zend_Loader_Autoloader<$4 KZend_Loader_Autoloader_Resource<3 Zend_Ldap<2 )Zend_Ldap_Node<1 7Zend_Ldap_Node_Schema<#0 IZend_Ldap_Node_Schema_OpenLdap<// aZend_Ldap_Node_Schema_ObjectClass_OpenLdap<6. oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectory<- AZend_Ldap_Node_Schema_Item<1, eZend_Ldap_Node_Schema_AttributeType_OpenLdap<8+ sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory<** WZend_Ldap_Node_Schema_ActiveDirectory<   s  zU/tZC1v\B&	v^<zY@-




b
8
					q	I	W)sU7yW5sW?rZ0rV;$yCyW:              =Zend_Pdf_Element_Boolean< 9Zend_Pdf_Element_Array< 5Zend_Pdf_Destination< ?Zend_Pdf_Destination_Zoom<! EZend_Pdf_Destination_Unknown< AZend_Pdf_Destination_Named<'
 QZend_Pdf_Destination_FitVertically<&	 OZend_Pdf_Destination_FitRectangle<) UZend_Pdf_Destination_FitHorizontally<2 gZend_Pdf_Destination_FitBoundingBoxVertically<4 kZend_Pdf_Destination_FitBoundingBoxHorizontally<( SZend_Pdf_Destination_FitBoundingBox< =Zend_Pdf_Destination_Fit<" GZend_Pdf_Destination_Explicit< )Zend_Pdf_Color< 1Zend_Pdf_Color_Rgb<  3Zend_Pdf_Color_Html< =Zend_Pdf_Color_GrayScale<~ 3Zend_Pdf_Color_Cmyk<} 'Zend_Pdf_Cmap<| AZend_Pdf_Cmap_TrimmedTable<!{ EZend_Pdf_Cmap_SegmentToDelta<z AZend_Pdf_Cmap_ByteEncoding<&y OZend_Pdf_Cmap_ByteEncoding_Static<x +Zend_Pdf_Canvas<w =Zend_Pdf_Canvas_Abstract<v 3Zend_Pdf_Annotation<u =Zend_Pdf_Annotation_Text<t AZend_Pdf_Annotation_Markup<s =Zend_Pdf_Annotation_Link<'r QZend_Pdf_Annotation_FileAttachment<q +Zend_Pdf_Action<p 3Zend_Pdf_Action_URI<o ;Zend_Pdf_Action_Unknown<n 7Zend_Pdf_Action_Trans<m 9Zend_Pdf_Action_Thread<l AZend_Pdf_Action_SubmitForm<k 7Zend_Pdf_Action_Sound< j CZend_Pdf_Action_SetOCGState<i ?Zend_Pdf_Action_ResetForm<h ?Zend_Pdf_Action_Rendition<g 7Zend_Pdf_Action_Named<f 7Zend_Pdf_Action_Movie<e 9Zend_Pdf_Action_Launch<d AZend_Pdf_Action_JavaScript<c AZend_Pdf_Action_ImportData<b 5Zend_Pdf_Action_Hide<a 7Zend_Pdf_Action_GoToR<` 7Zend_Pdf_Action_GoToE<_ AZend_Pdf_Action_GoTo3DView<^ 5Zend_Pdf_Action_GoTo<] )Zend_Paginator<-\ ]Zend_Paginator_SerializableLimitIterator<*[ WZend_Paginator_ScrollingStyle_Sliding<*Z WZend_Paginator_ScrollingStyle_Jumping<*Y WZend_Paginator_ScrollingStyle_Elastic<&X OZend_Paginator_ScrollingStyle_All<W =Zend_Paginator_Exception< V CZend_Paginator_Adapter_Null<$U KZend_Paginator_Adapter_Iterator<)T UZend_Paginator_Adapter_DbTableSelect<$S KZend_Paginator_Adapter_DbSelect<!R EZend_Paginator_Adapter_Array<Q #Zend_OpenId<P 5Zend_OpenId_Provider<O ?Zend_OpenId_Provider_User<&N OZend_OpenId_Provider_User_Session<!M EZend_OpenId_Provider_Storage<&L OZend_OpenId_Provider_Storage_File<K 7Zend_OpenId_Extension<J AZend_OpenId_Extension_Sreg<I 7Zend_OpenId_Exception<H 5Zend_OpenId_Consumer<!G EZend_OpenId_Consumer_Storage<&F OZend_OpenId_Consumer_Storage_File<E !Zend_Oauth<D -Zend_Oauth_Token<C =Zend_Oauth_Token_Request<'B QZend_Oauth_Token_AuthorizedRequest<A ;Zend_Oauth_Token_Access<+@ YZend_Oauth_Signature_SignatureAbstract<? =Zend_Oauth_Signature_Rsa<#> IZend_Oauth_Signature_Plaintext<= ?Zend_Oauth_Signature_Hmac<< +Zend_Oauth_Http<; ;Zend_Oauth_Http_Utility<&: OZend_Oauth_Http_UserAuthorization<!9 EZend_Oauth_Http_RequestToken< 8 CZend_Oauth_Http_AccessToken<7 5Zend_Oauth_Exception<6 3Zend_Oauth_Consumer<5 /Zend_Oauth_Config<4 /Zend_Oauth_Client<3 +Zend_Navigation<2 5Zend_Navigation_Page<1 =Zend_Navigation_Page_Uri<0 =Zend_Navigation_Page_Mvc</ ?Zend_Navigation_Exception<. ?Zend_Navigation_Container<- Zend_Mime<, )Zend_Mime_Part<+ /Zend_Mime_Message<* 3Zend_Mime_Exception<) -Zend_Mime_Decode<( #Zend_Memory<' /Zend_Memory_Value<& 3Zend_Memory_Manager<% 7Zend_Memory_Exception<$ 7Zend_Memory_Container<"# GZend_Memory_Container_Movable<!" EZend_Memory_Container_Locked<!! EZend_Memory_AccessController<  3Zend_Measure_Weight< 3Zend_Measure_Volume<% MZend_Measure_Viscosity_Kinematic<   d  X8zZAb<`?z`?



y
U
%				q	D	RW!n4~_7`F(xg>fBiI               t CZend_Queue_Message_Iterator<s 5Zend_Queue_Exception<(r SZend_Queue_Adapter_PlatformJobQueue<q ;Zend_Queue_Adapter_Null<!p EZend_Queue_Adapter_Memcacheq<o 7Zend_Queue_Adapter_Db< n CZend_Queue_Adapter_Db_Queue<"m GZend_Queue_Adapter_Db_Message<l =Zend_Queue_Adapter_Array<'k QZend_Queue_Adapter_AdapterAbstract< j CZend_Queue_Adapter_Activemq<i -Zend_ProgressBar<h AZend_ProgressBar_Exception<g =Zend_ProgressBar_Adapter<$f KZend_ProgressBar_Adapter_JsPush<$e KZend_ProgressBar_Adapter_JsPull<'d QZend_ProgressBar_Adapter_Exception<%c MZend_ProgressBar_Adapter_Console<b Zend_Pdf<!a EZend_Pdf_UpdateInfoContainer<` -Zend_Pdf_Trailer<_ ;Zend_Pdf_Trailer_Keeper<^ AZend_Pdf_Trailer_Generator<] +Zend_Pdf_Target<\ )Zend_Pdf_Style<[ 7Zend_Pdf_StringParser<Z /Zend_Pdf_Resource<Y ?Zend_Pdf_Resource_Unified<#X IZend_Pdf_Resource_ImageFactory<W ;Zend_Pdf_Resource_Image<!V EZend_Pdf_Resource_Image_Tiff< U CZend_Pdf_Resource_Image_Png<!T EZend_Pdf_Resource_Image_Jpeg<$S KZend_Pdf_Resource_GraphicsState<R 9Zend_Pdf_Resource_Font<!Q EZend_Pdf_Resource_Font_Type0<"P GZend_Pdf_Resource_Font_Simple<+O YZend_Pdf_Resource_Font_Simple_Standard<8N sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats<6M oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman<7L qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic<;K yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic<5J mZend_Pdf_Resource_Font_Simple_Standard_TimesBold<2I gZend_Pdf_Resource_Font_Simple_Standard_Symbol<<H {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaOblique<AG Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique<9F uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold<5E mZend_Pdf_Resource_Font_Simple_Standard_Helvetica<:D wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique<>C Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique<7B qZend_Pdf_Resource_Font_Simple_Standard_CourierBold<3A iZend_Pdf_Resource_Font_Simple_Standard_Courier<)@ UZend_Pdf_Resource_Font_Simple_Parsed<2? gZend_Pdf_Resource_Font_Simple_Parsed_TrueType<*> WZend_Pdf_Resource_Font_FontDescriptor<%= MZend_Pdf_Resource_Font_Extracted<#< IZend_Pdf_Resource_Font_CidFont<,; [Zend_Pdf_Resource_Font_CidFont_TrueType< : CZend_Pdf_Resource_Extractor<$9 KZend_Pdf_Resource_ContentStream<38 iZend_Pdf_RecursivelyIteratableObjectsContainer<7 +Zend_Pdf_Parser<6 'Zend_Pdf_Page<5 -Zend_Pdf_Outline<4 ;Zend_Pdf_Outline_Loaded<3 =Zend_Pdf_Outline_Created<2 /Zend_Pdf_NameTree<1 )Zend_Pdf_Image<0 'Zend_Pdf_Font</ ?Zend_Pdf_Filter_RunLength< . CZend_Pdf_Filter_Compression<$- KZend_Pdf_Filter_Compression_Lzw<&, OZend_Pdf_Filter_Compression_Flate<+ =Zend_Pdf_Filter_AsciiHex<* ;Zend_Pdf_Filter_Ascii85<") GZend_Pdf_FileParserDataSource<)( UZend_Pdf_FileParserDataSource_String<'' QZend_Pdf_FileParserDataSource_File<& 3Zend_Pdf_FileParser<% ?Zend_Pdf_FileParser_Image<"$ GZend_Pdf_FileParser_Image_Png<# =Zend_Pdf_FileParser_Font<&" OZend_Pdf_FileParser_Font_OpenType</! aZend_Pdf_FileParser_Font_OpenType_TrueType<  1Zend_Pdf_Exception< ;Zend_Pdf_ElementFactory<" GZend_Pdf_ElementFactory_Proxy< -Zend_Pdf_Element< ;Zend_Pdf_Element_String<# IZend_Pdf_Element_String_Binary< ;Zend_Pdf_Element_Stream< AZend_Pdf_Element_Reference<% MZend_Pdf_Element_Reference_Table<' QZend_Pdf_Element_Reference_Context< ;Zend_Pdf_Element_Object<# IZend_Pdf_Element_Object_Stream< =Zend_Pdf_Element_Numeric< 7Zend_Pdf_Element_Null< 7Zend_Pdf_Element_Name<  CZend_Pdf_Element_Dictionary<   X  sTA#dB%i?y[O


C
			~	@	rDyT3f9
a;[2m?z>b5                                     $L KZend_Search_Lucene_Search_Query<-K ]Zend_Search_Lucene_Search_Query_Wildcard<)J UZend_Search_Lucene_Search_Query_Term<*I WZend_Search_Lucene_Search_Query_Range<2H gZend_Search_Lucene_Search_Query_Preprocessing<7G qZend_Search_Lucene_Search_Query_Preprocessing_Term<9F uZend_Search_Lucene_Search_Query_Preprocessing_Phrase<8E sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy<+D YZend_Search_Lucene_Search_Query_Phrase<.C _Zend_Search_Lucene_Search_Query_MultiTerm<2B gZend_Search_Lucene_Search_Query_Insignificant<*A WZend_Search_Lucene_Search_Query_Fuzzy<*@ WZend_Search_Lucene_Search_Query_Empty<,? [Zend_Search_Lucene_Search_Query_Boolean<2> gZend_Search_Lucene_Search_Highlighter_Default<:= wZend_Search_Lucene_Search_BooleanExpressionRecognizer<< =Zend_Search_Lucene_Proxy<%; MZend_Search_Lucene_PriorityQueue</: aZend_Search_Lucene_Interface_MultiSearcher<#9 IZend_Search_Lucene_LockManager<$8 KZend_Search_Lucene_Index_Writer<07 cZend_Search_Lucene_Index_TermsPriorityQueue<&6 OZend_Search_Lucene_Index_TermInfo<"5 GZend_Search_Lucene_Index_Term<+4 YZend_Search_Lucene_Index_SegmentWriter<83 sZend_Search_Lucene_Index_SegmentWriter_StreamWriter<:2 wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter<+1 YZend_Search_Lucene_Index_SegmentMerger<)0 UZend_Search_Lucene_Index_SegmentInfo<'/ QZend_Search_Lucene_Index_FieldInfo<(. SZend_Search_Lucene_Index_DocsFilter<.- _Zend_Search_Lucene_Index_DictionaryLoader<!, EZend_Search_Lucene_FSMAction<+ 9Zend_Search_Lucene_FSM<* =Zend_Search_Lucene_Field<!) EZend_Search_Lucene_Exception< ( CZend_Search_Lucene_Document<%' MZend_Search_Lucene_Document_Xlsx<%& MZend_Search_Lucene_Document_Pptx<(% SZend_Search_Lucene_Document_OpenXml<%$ MZend_Search_Lucene_Document_Html<*# WZend_Search_Lucene_Document_Exception<%" MZend_Search_Lucene_Document_Docx<,! [Zend_Search_Lucene_Analysis_TokenFilter<6  oZend_Search_Lucene_Analysis_TokenFilter_StopWords<7 qZend_Search_Lucene_Analysis_TokenFilter_ShortWords<: wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8<6 oZend_Search_Lucene_Analysis_TokenFilter_LowerCase<& OZend_Search_Lucene_Analysis_Token<) UZend_Search_Lucene_Analysis_Analyzer<0 cZend_Search_Lucene_Analysis_Analyzer_Common<8 sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num<I Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive<5 mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8<F Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive<8 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum<I Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive<5 mZend_Search_Lucene_Analysis_Analyzer_Common_Text<F Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive< 7Zend_Search_Exception< -Zend_Rest_Server< AZend_Rest_Server_Exception< +Zend_Rest_Route< 3Zend_Rest_Exception< 5Zend_Rest_Controller< -Zend_Rest_Client<
 ;Zend_Rest_Client_Result<&	 OZend_Rest_Client_Result_Exception< AZend_Rest_Client_Exception< 'Zend_Registry< =Zend_Reflection_Property< ?Zend_Reflection_Parameter< 9Zend_Reflection_Method< =Zend_Reflection_Function< 5Zend_Reflection_File< ?Zend_Reflection_Extension<  ?Zend_Reflection_Exception< =Zend_Reflection_Docblock<!~ EZend_Reflection_Docblock_Tag<(} SZend_Reflection_Docblock_Tag_Return<'| QZend_Reflection_Docblock_Tag_Param<{ 7Zend_Reflection_Class<z !Zend_Queue<y 9Zend_Queue_Stomp_Frame<x ;Zend_Queue_Stomp_Client<'w QZend_Queue_Stomp_Client_Connection<v 1Zend_Queue_Message<#u IZend_Queue_Message_PlatformJob<   ^  d7|EV#d7y^.	



n
A
					~	_	A	_.j? c5Z(_-[,wM+oP%     +* YZend_Service_Amazon_SimpleDb_Exception<+) YZend_Service_Amazon_SimpleDb_Attribute<'( QZend_Service_Amazon_SimilarProduct<' 9Zend_Service_Amazon_S3<"& GZend_Service_Amazon_S3_Stream<%% MZend_Service_Amazon_S3_Exception<"$ GZend_Service_Amazon_ResultSet<# ?Zend_Service_Amazon_Query<!" EZend_Service_Amazon_OfferSet<! ?Zend_Service_Amazon_Offer<&  OZend_Service_Amazon_ListmaniaList< =Zend_Service_Amazon_Item< ?Zend_Service_Amazon_Image<" GZend_Service_Amazon_Exception<( SZend_Service_Amazon_EditorialReview< ;Zend_Service_Amazon_Ec2<+ YZend_Service_Amazon_Ec2_Securitygroups<% MZend_Service_Amazon_Ec2_Response<# IZend_Service_Amazon_Ec2_Region<$ KZend_Service_Amazon_Ec2_Keypair<% MZend_Service_Amazon_Ec2_Instance<- ]Zend_Service_Amazon_Ec2_Instance_Windows<. _Zend_Service_Amazon_Ec2_Instance_Reserved<" GZend_Service_Amazon_Ec2_Image<& OZend_Service_Amazon_Ec2_Exception<& OZend_Service_Amazon_Ec2_Elasticip<  CZend_Service_Amazon_Ec2_Ebs<' QZend_Service_Amazon_Ec2_CloudWatch<. _Zend_Service_Amazon_Ec2_Availabilityzones<% MZend_Service_Amazon_Ec2_Abstract<' QZend_Service_Amazon_CustomerReview<' QZend_Service_Amazon_Authentication<*
 WZend_Service_Amazon_Authentication_V2<*	 WZend_Service_Amazon_Authentication_V1<* WZend_Service_Amazon_Authentication_S3<1 eZend_Service_Amazon_Authentication_Exception<$ KZend_Service_Amazon_Accessories<! EZend_Service_Amazon_Abstract< 5Zend_Service_Akismet< 7Zend_Service_Abstract< 9Zend_Server_Reflection<' QZend_Server_Reflection_ReturnValue<%  MZend_Server_Reflection_Prototype<% MZend_Server_Reflection_Parameter< ~ CZend_Server_Reflection_Node<"} GZend_Server_Reflection_Method<$| KZend_Server_Reflection_Function<-{ ]Zend_Server_Reflection_Function_Abstract<%z MZend_Server_Reflection_Exception<!y EZend_Server_Reflection_Class<!x EZend_Server_Method_Prototype<!w EZend_Server_Method_Parameter<"v GZend_Server_Method_Definition< u CZend_Server_Method_Callback<t 7Zend_Server_Exception<s 9Zend_Server_Definition<r /Zend_Server_Cache<q 5Zend_Server_Abstract<p +Zend_Serializer<o ?Zend_Serializer_Exception<!n EZend_Serializer_Adapter_Wddx<)m UZend_Serializer_Adapter_PythonPickle<)l UZend_Serializer_Adapter_PhpSerialize<$k KZend_Serializer_Adapter_PhpCode<!j EZend_Serializer_Adapter_Json<%i MZend_Serializer_Adapter_Igbinary<!h EZend_Serializer_Adapter_Amf3<!g EZend_Serializer_Adapter_Amf0<,f [Zend_Serializer_Adapter_AdapterAbstract<e 1Zend_Search_Lucene<0d cZend_Search_Lucene_TermStreamsPriorityQueue<$c KZend_Search_Lucene_Storage_File<+b YZend_Search_Lucene_Storage_File_Memory</a aZend_Search_Lucene_Storage_File_Filesystem<)` UZend_Search_Lucene_Storage_Directory<4_ kZend_Search_Lucene_Storage_Directory_Filesystem<%^ MZend_Search_Lucene_Search_Weight<*] WZend_Search_Lucene_Search_Weight_Term<,\ [Zend_Search_Lucene_Search_Weight_Phrase</[ aZend_Search_Lucene_Search_Weight_MultiTerm<+Z YZend_Search_Lucene_Search_Weight_Empty<-Y ]Zend_Search_Lucene_Search_Weight_Boolean<)X UZend_Search_Lucene_Search_Similarity<1W eZend_Search_Lucene_Search_Similarity_Default<)V UZend_Search_Lucene_Search_QueryToken<3U iZend_Search_Lucene_Search_QueryParserException<1T eZend_Search_Lucene_Search_QueryParserContext<*S WZend_Search_Lucene_Search_QueryParser<)R UZend_Search_Lucene_Search_QueryLexer<'Q QZend_Search_Lucene_Search_QueryHit<)P UZend_Search_Lucene_Search_QueryEntry<.O _Zend_Search_Lucene_Search_QueryEntry_Term<2N gZend_Search_Lucene_Search_QueryEntry_Subquery<0M cZend_Search_Lucene_Search_QueryEntry_Phrase<   :  Y9Z;PJ>



q
A
			E>7+lgM:P                                                               Id Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequest<Ec Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest<3b iZend_Service_DeveloperGarden_Request_Exception<Ra %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequest<Y` 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequest<d_ IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequest<Q^ #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequest<R] %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequest<Y\ 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequest<d[ IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequest<QZ #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequest<OY Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequest<UX +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequest<UW +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequest<VV -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequest<aU CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequest<ZT 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequest<TS )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequest<RR %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequest<YQ 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequest<QP #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequest<QO #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequest<aN CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequest<NM Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformation<LL Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalance<JK Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool<-J ]Zend_Service_DeveloperGarden_LocalSearch<>I Zend_Service_DeveloperGarden_LocalSearch_SearchParameters<7H qZend_Service_DeveloperGarden_LocalSearch_Exception<,G [Zend_Service_DeveloperGarden_IpLocation<6F oZend_Service_DeveloperGarden_IpLocation_IpAddress<+E YZend_Service_DeveloperGarden_Exception<,D [Zend_Service_DeveloperGarden_Credential<0C cZend_Service_DeveloperGarden_ConferenceCall<CB Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatus<CA Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail<<@ {Zend_Service_DeveloperGarden_ConferenceCall_Participant<:? wZend_Service_DeveloperGarden_ConferenceCall_Exception<D> 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceSchedule<B= Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail<C< Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount<-; ]Zend_Service_DeveloperGarden_Client_Soap<2: gZend_Service_DeveloperGarden_Client_Exception<79 qZend_Service_DeveloperGarden_Client_ClientAbstract<18 eZend_Service_DeveloperGarden_BaseUserService<A7 Zend_Service_DeveloperGarden_BaseUserService_AccountBalance<6 9Zend_Service_Delicious<&5 OZend_Service_Delicious_SimplePost<$4 KZend_Service_Delicious_PostList< 3 CZend_Service_Delicious_Post<%2 MZend_Service_Delicious_Exception< 1 CZend_Service_Audioscrobbler<0 3Zend_Service_Amazon</ ;Zend_Service_Amazon_Sqs<&. OZend_Service_Amazon_Sqs_Exception<!- EZend_Service_Amazon_SimpleDb<*, WZend_Service_Amazon_SimpleDb_Response<&+ OZend_Service_Amazon_SimpleDb_Page<   .  DgJj3(

V
		\	K4|Q*paG                                              T )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse<[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponse<f MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponse<S 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponse<U +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType<Q #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse<[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseType<W /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse<[
 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseType<W	 /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse<\ 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseType<X 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponse<g OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseType<c GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse<` AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType<\ 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponse<Z 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseType<V -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponse<X  1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseType<T )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse<_~ ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType<[} 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponse<W| /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType<S{ 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponse<Qz #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstract<Sy 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponse<Jx Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType<gw OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseType<cv GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponse<Wu /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse<Ut +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponse<Ss 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse<3r iZend_Service_DeveloperGarden_Response_BaseType<Jq Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstract<Cp Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCall<Go Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced<=n }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCall<Am Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatus<Al Zend_Service_DeveloperGarden_Request_SmsValidation_Validate<Nk Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeyword<Cj Zend_Service_DeveloperGarden_Request_SmsValidation_Invalidate<Li Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbers<Bh Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract<9g uZend_Service_DeveloperGarden_Request_SendSms_SendSMS<>f Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS<9e uZend_Service_DeveloperGarden_Request_RequestAbstract<   =  ?Pq&Cd

j
#			5=Ub#[8o6	h3zN R               ,O [Zend_Service_Ebay_Finding_Search_Result<*N WZend_Service_Ebay_Finding_Search_Item<.M _Zend_Service_Ebay_Finding_Search_Item_Set<0L cZend_Service_Ebay_Finding_Response_Keywords<-K ]Zend_Service_Ebay_Finding_Response_Items<2J gZend_Service_Ebay_Finding_Response_Histograms<0I cZend_Service_Ebay_Finding_Response_Abstract</H aZend_Service_Ebay_Finding_PaginationOutput<*G WZend_Service_Ebay_Finding_ListingInfo<(F SZend_Service_Ebay_Finding_Exception<,E [Zend_Service_Ebay_Finding_Error_Message<)D UZend_Service_Ebay_Finding_Error_Data<-C ]Zend_Service_Ebay_Finding_Error_Data_Set<'B QZend_Service_Ebay_Finding_Category<1A eZend_Service_Ebay_Finding_Category_Histogram<5@ mZend_Service_Ebay_Finding_Category_Histogram_Set<;? yZend_Service_Ebay_Finding_Category_Histogram_Container<%> MZend_Service_Ebay_Finding_Aspect<)= UZend_Service_Ebay_Finding_Aspect_Set<5< mZend_Service_Ebay_Finding_Aspect_Histogram_Value<9; uZend_Service_Ebay_Finding_Aspect_Histogram_Value_Set<9: uZend_Service_Ebay_Finding_Aspect_Histogram_Container<'9 QZend_Service_Ebay_Finding_Abstract< 8 CZend_Service_Ebay_Exception<7 AZend_Service_Ebay_Abstract<+6 YZend_Service_DeveloperGarden_VoiceCall</5 aZend_Service_DeveloperGarden_SmsValidation<)4 UZend_Service_DeveloperGarden_SendSms<53 mZend_Service_DeveloperGarden_SecurityTokenServer<;2 yZend_Service_DeveloperGarden_SecurityTokenServer_Cache<K1 Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstract<L0 Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponse<P/ !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponse<G. Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponse<J- Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponse<K, Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2Response<L+ Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponse<I* Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumber<W) /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponse<J( Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponse<U' +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponse<C& Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponse<C% Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstract<H$ Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponse<U# +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponse<Q" #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponse<I! Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception<;  yZend_Service_DeveloperGarden_Response_ResponseAbstract<O Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseType<K Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponse<A Zend_Service_DeveloperGarden_Response_IpLocation_RegionType<K Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseType<G Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponse<L Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationType<I Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType<> Zend_Service_DeveloperGarden_Response_IpLocation_CityType<4 kZend_Service_DeveloperGarden_Response_Exception<T )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse<[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponse<f MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponse<S 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponse<   W  tElP( `9pQ!^>




r
M
"					]	=	]1^,qJ lA[>Gj"N                                                                         L& Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCounters<K% Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstract<<$ {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogs<A# Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstance<D" 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectories<U! +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogs<D  	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSources<8 sZend_Service_WindowsAzure_Credentials_SharedKeyLite<4 kZend_Service_WindowsAzure_Credentials_SharedKey<A Zend_Service_WindowsAzure_Credentials_SharedAccessSignature<4 kZend_Service_WindowsAzure_Credentials_Exception<> Zend_Service_WindowsAzure_Credentials_CredentialsAbstract< 5Zend_Service_Twitter<  CZend_Service_Twitter_Search<# IZend_Service_Twitter_Exception< ;Zend_Service_Technorati<# IZend_Service_Technorati_Weblog<" GZend_Service_Technorati_Utils<* WZend_Service_Technorati_TagsResultSet<' QZend_Service_Technorati_TagsResult<) UZend_Service_Technorati_TagResultSet<& OZend_Service_Technorati_TagResult<, [Zend_Service_Technorati_SearchResultSet<) UZend_Service_Technorati_SearchResult<& OZend_Service_Technorati_ResultSet<# IZend_Service_Technorati_Result<* WZend_Service_Technorati_KeyInfoResult<* WZend_Service_Technorati_GetInfoResult<&
 OZend_Service_Technorati_Exception<1	 eZend_Service_Technorati_DailyCountsResultSet<. _Zend_Service_Technorati_DailyCountsResult<, [Zend_Service_Technorati_CosmosResultSet<) UZend_Service_Technorati_CosmosResult<+ YZend_Service_Technorati_BlogInfoResult<# IZend_Service_Technorati_Author< ;Zend_Service_StrikeIron<( SZend_Service_StrikeIron_ZipCodeInfo<2 gZend_Service_StrikeIron_USAddressVerification<-  ]Zend_Service_StrikeIron_SalesUseTaxBasic<& OZend_Service_StrikeIron_Exception<&~ OZend_Service_StrikeIron_Decorator<!} EZend_Service_StrikeIron_Base<| ;Zend_Service_SlideShare<&{ OZend_Service_SlideShare_SlideShow<&z OZend_Service_SlideShare_Exception<y 1Zend_Service_Simpy<$x KZend_Service_Simpy_WatchlistSet<*w WZend_Service_Simpy_WatchlistFilterSet<'v QZend_Service_Simpy_WatchlistFilter<!u EZend_Service_Simpy_Watchlist<t ?Zend_Service_Simpy_TagSet<s 9Zend_Service_Simpy_Tag<r AZend_Service_Simpy_NoteSet<q ;Zend_Service_Simpy_Note<p AZend_Service_Simpy_LinkSet<!o EZend_Service_Simpy_LinkQuery<n ;Zend_Service_Simpy_Link<%m MZend_Service_ShortUrl_TinyUrlCom<&l OZend_Service_ShortUrl_MetamarkNet<!k EZend_Service_ShortUrl_JdemCz<j AZend_Service_ShortUrl_IsGd<$i KZend_Service_ShortUrl_Exception<,h [Zend_Service_ShortUrl_AbstractShortener<g 9Zend_Service_ReCaptcha<$f KZend_Service_ReCaptcha_Response<$e KZend_Service_ReCaptcha_MailHide<.d _Zend_Service_ReCaptcha_MailHide_Exception<%c MZend_Service_ReCaptcha_Exception<b 7Zend_Service_Nirvanix<#a IZend_Service_Nirvanix_Response<)` UZend_Service_Nirvanix_Namespace_Imfs<)_ UZend_Service_Nirvanix_Namespace_Base<$^ KZend_Service_Nirvanix_Exception<] 7Zend_Service_LiveDocx<$\ KZend_Service_LiveDocx_MailMerge<$[ KZend_Service_LiveDocx_Exception<Z 3Zend_Service_Flickr<"Y GZend_Service_Flickr_ResultSet<X AZend_Service_Flickr_Result<W ?Zend_Service_Flickr_Image<V 9Zend_Service_Exception<U ?Zend_Service_Ebay_Finding<)T UZend_Service_Ebay_Finding_Storefront<+S YZend_Service_Ebay_Finding_ShippingInfo<+R YZend_Service_Ebay_Finding_Set_Abstract<,Q [Zend_Service_Ebay_Finding_SellingStatus<)P UZend_Service_Ebay_Finding_SellerInfo<   Y  b*oC^-Y!u8


^
			}	E	}N'W5rW9R=sZ7yET+gI      * WZend_Test_PHPUnit_Constraint_Redirect<+~ YZend_Test_PHPUnit_Constraint_Exception<*} WZend_Test_PHPUnit_Constraint_DomQuery<| 7Zend_Test_DbStatement<{ 3Zend_Test_DbAdapter<z /Zend_Tag_ItemList<y 'Zend_Tag_Item<x 1Zend_Tag_Exception<w )Zend_Tag_Cloud<v =Zend_Tag_Cloud_Exception<!u EZend_Tag_Cloud_Decorator_Tag<%t MZend_Tag_Cloud_Decorator_HtmlTag<'s QZend_Tag_Cloud_Decorator_HtmlCloud<'r QZend_Tag_Cloud_Decorator_Exception<#q IZend_Tag_Cloud_Decorator_Cloud<p )Zend_Soap_Wsdl</o aZend_Soap_Wsdl_Strategy_DefaultComplexType<&n OZend_Soap_Wsdl_Strategy_Composite<0m cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence</l aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex<$k KZend_Soap_Wsdl_Strategy_AnyType<%j MZend_Soap_Wsdl_Strategy_Abstract<i =Zend_Soap_Wsdl_Exception<h -Zend_Soap_Server<g AZend_Soap_Server_Exception<f -Zend_Soap_Client<e 9Zend_Soap_Client_Local<d AZend_Soap_Client_Exception<c ;Zend_Soap_Client_DotNet<b ;Zend_Soap_Client_Common<a 9Zend_Soap_AutoDiscover<%` MZend_Soap_AutoDiscover_Exception<_ %Zend_Session<)^ UZend_Session_Validator_HttpUserAgent<$] KZend_Session_Validator_Abstract<'\ QZend_Session_SaveHandler_Exception<%[ MZend_Session_SaveHandler_DbTable<Z 9Zend_Session_Namespace<Y 9Zend_Session_Exception<X 7Zend_Session_Abstract<W 1Zend_Service_Yahoo<$V KZend_Service_Yahoo_WebResultSet<!U EZend_Service_Yahoo_WebResult<&T OZend_Service_Yahoo_VideoResultSet<#S IZend_Service_Yahoo_VideoResult<!R EZend_Service_Yahoo_ResultSet<Q ?Zend_Service_Yahoo_Result<)P UZend_Service_Yahoo_PageDataResultSet<&O OZend_Service_Yahoo_PageDataResult<%N MZend_Service_Yahoo_NewsResultSet<"M GZend_Service_Yahoo_NewsResult<&L OZend_Service_Yahoo_LocalResultSet<#K IZend_Service_Yahoo_LocalResult<+J YZend_Service_Yahoo_InlinkDataResultSet<(I SZend_Service_Yahoo_InlinkDataResult<&H OZend_Service_Yahoo_ImageResultSet<#G IZend_Service_Yahoo_ImageResult<F =Zend_Service_Yahoo_Image<&E OZend_Service_WindowsAzure_Storage<4D kZend_Service_WindowsAzure_Storage_TableInstance<7C qZend_Service_WindowsAzure_Storage_TableEntityQuery<2B gZend_Service_WindowsAzure_Storage_TableEntity<,A [Zend_Service_WindowsAzure_Storage_Table<<@ {Zend_Service_WindowsAzure_Storage_StorageEntityAbstract<7? qZend_Service_WindowsAzure_Storage_SignedIdentifier<3> iZend_Service_WindowsAzure_Storage_QueueMessage<4= kZend_Service_WindowsAzure_Storage_QueueInstance<,< [Zend_Service_WindowsAzure_Storage_Queue<9; uZend_Service_WindowsAzure_Storage_PageRegionInstance<4: kZend_Service_WindowsAzure_Storage_LeaseInstance<99 uZend_Service_WindowsAzure_Storage_DynamicTableEntity<38 iZend_Service_WindowsAzure_Storage_BlobInstance<47 kZend_Service_WindowsAzure_Storage_BlobContainer<+6 YZend_Service_WindowsAzure_Storage_Blob<25 gZend_Service_WindowsAzure_Storage_Blob_Stream<;4 yZend_Service_WindowsAzure_Storage_BatchStorageAbstract<,3 [Zend_Service_WindowsAzure_Storage_Batch<-2 ]Zend_Service_WindowsAzure_SessionHandler<>1 Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract<10 eZend_Service_WindowsAzure_RetryPolicy_RetryN<2/ gZend_Service_WindowsAzure_RetryPolicy_NoRetry<4. kZend_Service_WindowsAzure_RetryPolicy_Exception<(- SZend_Service_WindowsAzure_Exception<J, Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscription<2+ gZend_Service_WindowsAzure_Diagnostics_Manager<3* iZend_Service_WindowsAzure_Diagnostics_LogLevel<4) kZend_Service_WindowsAzure_Diagnostics_Exception<N( Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscription<H' Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLog<   T  tL[4wM1hF*`3


u
?
		z	2V>`1zK_5yJ%d/Q                 2S gZend_Tool_Project_Context_Filesystem_Abstract<(R SZend_Tool_Project_Context_Exception<-Q ]Zend_Tool_Project_Context_Content_Engine<3P iZend_Tool_Project_Context_Content_Engine_Phtml<;O yZend_Tool_Project_Context_Content_Engine_CodeGenerator<0N cZend_Tool_Framework_System_Provider_Version<0M cZend_Tool_Framework_System_Provider_Phpinfo<1L eZend_Tool_Framework_System_Provider_Manifest</K aZend_Tool_Framework_System_Provider_Config<(J SZend_Tool_Framework_System_Manifest<-I ]Zend_Tool_Framework_System_Action_Delete<-H ]Zend_Tool_Framework_System_Action_Create<!G EZend_Tool_Framework_Registry<+F YZend_Tool_Framework_Registry_Exception<+E YZend_Tool_Framework_Provider_Signature<,D [Zend_Tool_Framework_Provider_Repository<+C YZend_Tool_Framework_Provider_Exception<*B WZend_Tool_Framework_Provider_Abstract<&A OZend_Tool_Framework_Metadata_Tool<)@ UZend_Tool_Framework_Metadata_Dynamic<'? QZend_Tool_Framework_Metadata_Basic<,> [Zend_Tool_Framework_Manifest_Repository<2= gZend_Tool_Framework_Manifest_ProviderMetadata<*< WZend_Tool_Framework_Manifest_Metadata<+; YZend_Tool_Framework_Manifest_Exception<0: cZend_Tool_Framework_Manifest_ActionMetadata<19 eZend_Tool_Framework_Loader_IncludePathLoader<J8 Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator<+7 YZend_Tool_Framework_Loader_BasicLoader<(6 SZend_Tool_Framework_Loader_Abstract<"5 GZend_Tool_Framework_Exception<'4 QZend_Tool_Framework_Client_Storage<13 eZend_Tool_Framework_Client_Storage_Directory<(2 SZend_Tool_Framework_Client_Response<D1 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator<'0 QZend_Tool_Framework_Client_Request<(/ SZend_Tool_Framework_Client_Manifest<9. uZend_Tool_Framework_Client_Interactive_InputResponse<8- sZend_Tool_Framework_Client_Interactive_InputRequest<8, sZend_Tool_Framework_Client_Interactive_InputHandler<)+ UZend_Tool_Framework_Client_Exception<'* QZend_Tool_Framework_Client_Console<D) 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Indention<D( 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizer<C' Zend_Tool_Framework_Client_Console_ResponseDecorator_Blockize<F& Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter<0% cZend_Tool_Framework_Client_Console_Manifest<2$ gZend_Tool_Framework_Client_Console_HelpSystem<6# oZend_Tool_Framework_Client_Console_ArgumentParser<&" OZend_Tool_Framework_Client_Config<(! SZend_Tool_Framework_Client_Abstract<*  WZend_Tool_Framework_Action_Repository<) UZend_Tool_Framework_Action_Exception<$ KZend_Tool_Framework_Action_Base< 'Zend_TimeSync< 1Zend_TimeSync_Sntp< 9Zend_TimeSync_Protocol< /Zend_TimeSync_Ntp< ;Zend_TimeSync_Exception< +Zend_Text_Table< 3Zend_Text_Table_Row< ?Zend_Text_Table_Exception<& OZend_Text_Table_Decorator_Unicode<$ KZend_Text_Table_Decorator_Ascii< 9Zend_Text_Table_Column< 3Zend_Text_MultiByte< -Zend_Text_Figlet< AZend_Text_Figlet_Exception< 3Zend_Text_Exception<& OZend_Test_PHPUnit_Db_SimpleTester<, [Zend_Test_PHPUnit_Db_Operation_Truncate<* WZend_Test_PHPUnit_Db_Operation_Insert<- ]Zend_Test_PHPUnit_Db_Operation_DeleteAll<*
 WZend_Test_PHPUnit_Db_Metadata_Generic<#	 IZend_Test_PHPUnit_Db_Exception<, [Zend_Test_PHPUnit_Db_DataSet_QueryTable<. _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet<0 cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet<) UZend_Test_PHPUnit_Db_DataSet_DbTable<* WZend_Test_PHPUnit_Db_DataSet_DbRowset<$ KZend_Test_PHPUnit_Db_Connection<' QZend_Test_PHPUnit_DatabaseTestCase<) UZend_Test_PHPUnit_ControllerTestCase<0  cZend_Test_PHPUnit_Constraint_ResponseHeader<   F  j0yGl8d1i5


[
%				X	#DW eUbq;N|P                   = }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter<5 mZend_Tool_Project_Profile_Iterator_ContextFilter<- ]Zend_Tool_Project_Profile_FileParser_Xml<( SZend_Tool_Project_Profile_Exception<  CZend_Tool_Project_Exception<< {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory<0 cZend_Tool_Project_Context_Zf_ViewsDirectory<6 oZend_Tool_Project_Context_Zf_ViewScriptsDirectory<0 cZend_Tool_Project_Context_Zf_ViewScriptFile<6 oZend_Tool_Project_Context_Zf_ViewHelpersDirectory<6 oZend_Tool_Project_Context_Zf_ViewFiltersDirectory<A Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory<2 gZend_Tool_Project_Context_Zf_UploadsDirectory<0 cZend_Tool_Project_Context_Zf_TestsDirectory<7 qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile<:
 wZend_Tool_Project_Context_Zf_TestPHPUnitBootstrapFile<@	 Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory<1 eZend_Tool_Project_Context_Zf_TestLibraryFile<6 oZend_Tool_Project_Context_Zf_TestLibraryDirectory<: wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFile<B Zend_Tool_Project_Context_Zf_TestApplicationModulesDirectory<A Zend_Tool_Project_Context_Zf_TestApplicationModuleDirectory<: wZend_Tool_Project_Context_Zf_TestApplicationDirectory<@ Zend_Tool_Project_Context_Zf_TestApplicationControllerFile<E Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory<>  Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile<= }Zend_Tool_Project_Context_Zf_TestApplicationActionMethod<4~ kZend_Tool_Project_Context_Zf_TemporaryDirectory<3} iZend_Tool_Project_Context_Zf_SessionsDirectory<8| sZend_Tool_Project_Context_Zf_SearchIndexesDirectory<<{ {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory<8z sZend_Tool_Project_Context_Zf_PublicScriptsDirectory<1y eZend_Tool_Project_Context_Zf_PublicIndexFile<7x qZend_Tool_Project_Context_Zf_PublicImagesDirectory<1w eZend_Tool_Project_Context_Zf_PublicDirectory<5v mZend_Tool_Project_Context_Zf_ProjectProviderFile<2u gZend_Tool_Project_Context_Zf_ModulesDirectory<1t eZend_Tool_Project_Context_Zf_ModuleDirectory<1s eZend_Tool_Project_Context_Zf_ModelsDirectory<+r YZend_Tool_Project_Context_Zf_ModelFile</q aZend_Tool_Project_Context_Zf_LogsDirectory<2p gZend_Tool_Project_Context_Zf_LocalesDirectory<2o gZend_Tool_Project_Context_Zf_LibraryDirectory<2n gZend_Tool_Project_Context_Zf_LayoutsDirectory<8m sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory<2l gZend_Tool_Project_Context_Zf_LayoutScriptFile<.k _Zend_Tool_Project_Context_Zf_HtaccessFile<0j cZend_Tool_Project_Context_Zf_FormsDirectory<*i WZend_Tool_Project_Context_Zf_FormFile</h aZend_Tool_Project_Context_Zf_DocsDirectory<-g ]Zend_Tool_Project_Context_Zf_DbTableFile<2f gZend_Tool_Project_Context_Zf_DbTableDirectory</e aZend_Tool_Project_Context_Zf_DataDirectory<6d oZend_Tool_Project_Context_Zf_ControllersDirectory<0c cZend_Tool_Project_Context_Zf_ControllerFile<2b gZend_Tool_Project_Context_Zf_ConfigsDirectory<,a [Zend_Tool_Project_Context_Zf_ConfigFile<0` cZend_Tool_Project_Context_Zf_CacheDirectory</_ aZend_Tool_Project_Context_Zf_BootstrapFile<6^ oZend_Tool_Project_Context_Zf_ApplicationDirectory<7] qZend_Tool_Project_Context_Zf_ApplicationConfigFile</\ aZend_Tool_Project_Context_Zf_ApisDirectory<.[ _Zend_Tool_Project_Context_Zf_ActionMethod<3Z iZend_Tool_Project_Context_Zf_AbstractClassFile<@Y Zend_Tool_Project_Context_System_ProjectProvidersDirectory<8X sZend_Tool_Project_Context_System_ProjectProfileFile<6W oZend_Tool_Project_Context_System_ProjectDirectory<)V UZend_Tool_Project_Context_Repository<.U _Zend_Tool_Project_Context_Filesystem_File<3T iZend_Tool_Project_Context_Filesystem_Directory<   k  cAa6	b8_:e@





u
d
E
)
				e	=	`=`2yQ.qP5eD#`@hH(jO/   -Zend_Validate_Ip< /Zend_Validate_Int< 7Zend_Validate_InArray< ;Zend_Validate_Identical<  1Zend_Validate_Iban< 9Zend_Validate_Hostname<~ /Zend_Validate_Hex<} ?Zend_Validate_GreaterThan<| 3Zend_Validate_Float<!{ EZend_Validate_File_WordCount<z ?Zend_Validate_File_Upload<y ;Zend_Validate_File_Size<x ;Zend_Validate_File_Sha1<!w EZend_Validate_File_NotExists< v CZend_Validate_File_MimeType<u 9Zend_Validate_File_Md5<t AZend_Validate_File_IsImage<$s KZend_Validate_File_IsCompressed<!r EZend_Validate_File_ImageSize<q ;Zend_Validate_File_Hash<!p EZend_Validate_File_FilesSize<!o EZend_Validate_File_Extension<n ?Zend_Validate_File_Exists<'m QZend_Validate_File_ExcludeMimeType<(l SZend_Validate_File_ExcludeExtension<k =Zend_Validate_File_Crc32<j =Zend_Validate_File_Count<i ;Zend_Validate_Exception<h AZend_Validate_EmailAddress<g 5Zend_Validate_Digits<"f GZend_Validate_Db_RecordExists<$e KZend_Validate_Db_NoRecordExists<d ?Zend_Validate_Db_Abstract<c 1Zend_Validate_Date<b =Zend_Validate_CreditCard<a 3Zend_Validate_Ccnum<` 9Zend_Validate_Callback<_ 7Zend_Validate_Between<^ 7Zend_Validate_Barcode<] AZend_Validate_Barcode_Upce<\ AZend_Validate_Barcode_Upca<[ AZend_Validate_Barcode_Sscc<$Z KZend_Validate_Barcode_Royalmail<"Y GZend_Validate_Barcode_Postnet<!X EZend_Validate_Barcode_Planet<#W IZend_Validate_Barcode_Leitcode< V CZend_Validate_Barcode_Itf14<U AZend_Validate_Barcode_Issn<*T WZend_Validate_Barcode_IntelligentMail<$S KZend_Validate_Barcode_Identcode<!R EZend_Validate_Barcode_Gtin14<!Q EZend_Validate_Barcode_Gtin13<!P EZend_Validate_Barcode_Gtin12<O AZend_Validate_Barcode_Ean8<N AZend_Validate_Barcode_Ean5<M AZend_Validate_Barcode_Ean2< L CZend_Validate_Barcode_Ean18< K CZend_Validate_Barcode_Ean14< J CZend_Validate_Barcode_Ean13< I CZend_Validate_Barcode_Ean12<$H KZend_Validate_Barcode_Code93ext<!G EZend_Validate_Barcode_Code93<$F KZend_Validate_Barcode_Code39ext<!E EZend_Validate_Barcode_Code39<,D [Zend_Validate_Barcode_Code25interleaved<!C EZend_Validate_Barcode_Code25<*B WZend_Validate_Barcode_AdapterAbstract<A 3Zend_Validate_Alpha<@ 3Zend_Validate_Alnum<? 9Zend_Validate_Abstract<> Zend_Uri<= 'Zend_Uri_Http<< 1Zend_Uri_Exception<; )Zend_Translate<: 7Zend_Translate_Plural<9 =Zend_Translate_Exception<8 9Zend_Translate_Adapter<!7 EZend_Translate_Adapter_XmlTm<!6 EZend_Translate_Adapter_Xliff<5 AZend_Translate_Adapter_Tmx<4 AZend_Translate_Adapter_Tbx<3 ?Zend_Translate_Adapter_Qt<2 AZend_Translate_Adapter_Ini<#1 IZend_Translate_Adapter_Gettext<0 AZend_Translate_Adapter_Csv<!/ EZend_Translate_Adapter_Array<$. KZend_Tool_Project_Provider_View<$- KZend_Tool_Project_Provider_Test</, aZend_Tool_Project_Provider_ProjectProvider<'+ QZend_Tool_Project_Provider_Project<'* QZend_Tool_Project_Provider_Profile<&) OZend_Tool_Project_Provider_Module<%( MZend_Tool_Project_Provider_Model<(' SZend_Tool_Project_Provider_Manifest<&& OZend_Tool_Project_Provider_Layout<$% KZend_Tool_Project_Provider_Form<)$ UZend_Tool_Project_Provider_Exception<'# QZend_Tool_Project_Provider_DbTable<)" UZend_Tool_Project_Provider_DbAdapter<*! WZend_Tool_Project_Provider_Controller<+  YZend_Tool_Project_Provider_Application<& OZend_Tool_Project_Provider_Action<( SZend_Tool_Project_Provider_Abstract< ?Zend_Tool_Project_Profile<' QZend_Tool_Project_Profile_Resource<9 uZend_Tool_Project_Profile_Resource_SearchConstraints<1 eZend_Tool_Project_Profile_Resource_Container<   j  lCkO-eC%pL)pM)



y
W
3
					_	=	O%V5e6~[:b5e<~d:
aD#   n =Zend_XmlRpc_Server_Fault<!m EZend_XmlRpc_Server_Exception<l =Zend_XmlRpc_Server_Cache<k 5Zend_XmlRpc_Response<j ?Zend_XmlRpc_Response_Http<i 3Zend_XmlRpc_Request<h ?Zend_XmlRpc_Request_Stdin<g =Zend_XmlRpc_Request_Http<$f KZend_XmlRpc_Generator_XmlWriter<,e [Zend_XmlRpc_Generator_GeneratorAbstract<&d OZend_XmlRpc_Generator_DomDocument<c /Zend_XmlRpc_Fault<b 7Zend_XmlRpc_Exception<a 1Zend_XmlRpc_Client<#` IZend_XmlRpc_Client_ServerProxy<+_ YZend_XmlRpc_Client_ServerIntrospection<+^ YZend_XmlRpc_Client_IntrospectException<%] MZend_XmlRpc_Client_HttpException<&\ OZend_XmlRpc_Client_FaultException<![ EZend_XmlRpc_Client_Exception<&Z OZend_Wildfire_Protocol_JsonStream<!Y EZend_Wildfire_Plugin_FirePhp<.X _Zend_Wildfire_Plugin_FirePhp_TableMessage<)W UZend_Wildfire_Plugin_FirePhp_Message<V ;Zend_Wildfire_Exception<&U OZend_Wildfire_Channel_HttpHeaders<T Zend_View<S -Zend_View_Stream<R AZend_View_Helper_UserAgent<Q 5Zend_View_Helper_Url<P AZend_View_Helper_Translate<O =Zend_View_Helper_TinySrc<N AZend_View_Helper_ServerUrl<)M UZend_View_Helper_RenderToPlaceholder<!L EZend_View_Helper_Placeholder<*K WZend_View_Helper_Placeholder_Registry<4J kZend_View_Helper_Placeholder_Registry_Exception<+I YZend_View_Helper_Placeholder_Container<6H oZend_View_Helper_Placeholder_Container_Standalone<5G mZend_View_Helper_Placeholder_Container_Exception<4F kZend_View_Helper_Placeholder_Container_Abstract<!E EZend_View_Helper_PartialLoop<D =Zend_View_Helper_Partial<'C QZend_View_Helper_Partial_Exception<'B QZend_View_Helper_PaginationControl< A CZend_View_Helper_Navigation<(@ SZend_View_Helper_Navigation_Sitemap<%? MZend_View_Helper_Navigation_Menu<&> OZend_View_Helper_Navigation_Links</= aZend_View_Helper_Navigation_HelperAbstract<,< [Zend_View_Helper_Navigation_Breadcrumbs<; ;Zend_View_Helper_Layout<: 7Zend_View_Helper_Json<"9 GZend_View_Helper_InlineScript<#8 IZend_View_Helper_HtmlQuicktime<7 ?Zend_View_Helper_HtmlPage< 6 CZend_View_Helper_HtmlObject<5 ?Zend_View_Helper_HtmlList<4 AZend_View_Helper_HtmlFlash<!3 EZend_View_Helper_HtmlElement<2 AZend_View_Helper_HeadTitle<1 AZend_View_Helper_HeadStyle< 0 CZend_View_Helper_HeadScript</ ?Zend_View_Helper_HeadMeta<. ?Zend_View_Helper_HeadLink<- ?Zend_View_Helper_Gravatar<", GZend_View_Helper_FormTextarea<+ ?Zend_View_Helper_FormText< * CZend_View_Helper_FormSubmit< ) CZend_View_Helper_FormSelect<( AZend_View_Helper_FormReset<' AZend_View_Helper_FormRadio<"& GZend_View_Helper_FormPassword<% ?Zend_View_Helper_FormNote<'$ QZend_View_Helper_FormMultiCheckbox<# AZend_View_Helper_FormLabel<" AZend_View_Helper_FormImage< ! CZend_View_Helper_FormHidden<  ?Zend_View_Helper_FormFile<  CZend_View_Helper_FormErrors<! EZend_View_Helper_FormElement<" GZend_View_Helper_FormCheckbox<  CZend_View_Helper_FormButton< 7Zend_View_Helper_Form< ?Zend_View_Helper_Fieldset< =Zend_View_Helper_Doctype<! EZend_View_Helper_DeclareVars< 9Zend_View_Helper_Cycle< ?Zend_View_Helper_Currency< =Zend_View_Helper_BaseUrl< ;Zend_View_Helper_Action< ?Zend_View_Helper_Abstract< 3Zend_View_Exception< 1Zend_View_Abstract< %Zend_Version< 'Zend_Validate< AZend_Validate_StringLength<# IZend_Validate_Sitemap_Priority< ?Zend_Validate_Sitemap_Loc<" GZend_Validate_Sitemap_Lastmod<%
 MZend_Validate_Sitemap_Changefreq<	 3Zend_Validate_Regex< 9Zend_Validate_PostCode< 9Zend_Validate_NotEmpty< 9Zend_Validate_LessThan< 1Zend_Validate_Isbn<   j  ];nM,t^M1lE]1





p
V
4
					_	+n=i>m;rHi=d7\4 lI'          X =Zend_Barcode_Object_Ean5=W =Zend_Barcode_Object_Ean2=V ?Zend_Barcode_Object_Ean13=U AZend_Barcode_Object_Code39=*T WZend_Barcode_Object_Code25interleaved=S AZend_Barcode_Object_Code25= R CZend_Barcode_Object_Code128=Q 9Zend_Barcode_Exception=P Zend_Auth=O ?Zend_Auth_Storage_Session=$N KZend_Auth_Storage_NonPersistent= M CZend_Auth_Storage_Exception=L -Zend_Auth_Result=K 3Zend_Auth_Exception=J =Zend_Auth_Adapter_OpenId=I 9Zend_Auth_Adapter_Ldap=H AZend_Auth_Adapter_InfoCard=G 9Zend_Auth_Adapter_Http=)F UZend_Auth_Adapter_Http_Resolver_File=.E _Zend_Auth_Adapter_Http_Resolver_Exception= D CZend_Auth_Adapter_Exception=C =Zend_Auth_Adapter_Digest=B ?Zend_Auth_Adapter_DbTable=A -Zend_Application=#@ IZend_Application_Resource_View=(? SZend_Application_Resource_UserAgent=(> SZend_Application_Resource_Translate=&= OZend_Application_Resource_Session=%< MZend_Application_Resource_Router=/; aZend_Application_Resource_ResourceAbstract=): UZend_Application_Resource_Navigation=&9 OZend_Application_Resource_Multidb=&8 OZend_Application_Resource_Modules=#7 IZend_Application_Resource_Mail="6 GZend_Application_Resource_Log=%5 MZend_Application_Resource_Locale=%4 MZend_Application_Resource_Layout=.3 _Zend_Application_Resource_Frontcontroller=(2 SZend_Application_Resource_Exception=#1 IZend_Application_Resource_Dojo=!0 EZend_Application_Resource_Db=+/ YZend_Application_Resource_Cachemanager=&. OZend_Application_Module_Bootstrap='- QZend_Application_Module_Autoloader=, AZend_Application_Exception=)+ UZend_Application_Bootstrap_Exception=1* eZend_Application_Bootstrap_BootstrapAbstract=)) UZend_Application_Bootstrap_Bootstrap=( ?Zend_Amf_Value_TraitsInfo=-' ]Zend_Amf_Value_Messaging_RemotingMessage=*& WZend_Amf_Value_Messaging_ErrorMessage=,% [Zend_Amf_Value_Messaging_CommandMessage=*$ WZend_Amf_Value_Messaging_AsyncMessage=-# ]Zend_Amf_Value_Messaging_ArrayCollection=0" cZend_Amf_Value_Messaging_AcknowledgeMessage=-! ]Zend_Amf_Value_Messaging_AbstractMessage=!  EZend_Amf_Value_MessageHeader= AZend_Amf_Value_MessageBody= =Zend_Amf_Value_ByteArray= AZend_Amf_Util_BinaryStream= +Zend_Amf_Server= ?Zend_Amf_Server_Exception= /Zend_Amf_Response= 9Zend_Amf_Response_Http= -Zend_Amf_Request= 7Zend_Amf_Request_Http= ?Zend_Amf_Parse_TypeLoader= ?Zend_Amf_Parse_Serializer=# IZend_Amf_Parse_Resource_Stream=( SZend_Amf_Parse_Resource_MysqlResult=) UZend_Amf_Parse_Resource_MysqliResult=  CZend_Amf_Parse_OutputStream= AZend_Amf_Parse_InputStream=  CZend_Amf_Parse_Deserializer=# IZend_Amf_Parse_Amf3_Serializer=% MZend_Amf_Parse_Amf3_Deserializer=# IZend_Amf_Parse_Amf0_Serializer=% MZend_Amf_Parse_Amf0_Deserializer=
 1Zend_Amf_Exception=	 1Zend_Amf_Constants= 9Zend_Amf_Auth_Abstract=  CZend_Amf_Adobe_Introspector= AZend_Amf_Adobe_DbInspector= 3Zend_Amf_Adobe_Auth= Zend_Acl= 'Zend_Acl_Role= 9Zend_Acl_Role_Registry=% MZend_Acl_Role_Registry_Exception=  /Zend_Acl_Resource= 1Zend_Acl_Exception=~ /Zend_XmlRpc_Value<} =Zend_XmlRpc_Value_Struct<| =Zend_XmlRpc_Value_String<{ =Zend_XmlRpc_Value_Scalar<z 7Zend_XmlRpc_Value_Nil<y ?Zend_XmlRpc_Value_Integer< x CZend_XmlRpc_Value_Exception<w =Zend_XmlRpc_Value_Double<v AZend_XmlRpc_Value_DateTime<!u EZend_XmlRpc_Value_Collection<t ?Zend_XmlRpc_Value_Boolean<!s EZend_XmlRpc_Value_BigInteger<r =Zend_XmlRpc_Value_Base64<q ;Zend_XmlRpc_Value_Array<p 1Zend_XmlRpc_Server<o ?Zend_XmlRpc_Server_System<   X  f;P f>h*|E


w
F
			w	I	Y!a?iJfC~W.X1Z4 z]8     'i QZend_Http_Client_Adapter_Interface=h AZend_Gdata_App_MediaSource=.g _Zend_Form_Decorator_Marker_File_Interface="f GZend_Form_Decorator_Interface=e 7Zend_Filter_Interface="d GZend_Filter_Encrypt_Interface=+c YZend_Filter_Compress_CompressInterface=0b cZend_Feed_Writer_Renderer_RendererInterface=1a eZend_Feed_Writer_Extension_RendererInterface=#` IZend_Feed_Reader_FeedInterface=$_ KZend_Feed_Reader_EntryInterface=7^ qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface=-] ]Zend_Feed_Pubsubhubbub_CallbackInterface= \ CZend_Feed_Builder_Interface= [ CZend_Db_Statement_Interface=$Z KZend_Currency_CurrencyInterface=)Y UZend_Crypt_Math_BigInteger_Interface=+X YZend_Controller_Router_Route_Interface=%W MZend_Controller_Router_Interface=)V UZend_Controller_Dispatcher_Interface=%U MZend_Controller_Action_Interface=&T OZend_Cloud_StorageService_Adapter=$S KZend_Cloud_QueueService_Adapter=,R [Zend_Cloud_DocumentService_QueryAdapter='Q QZend_Cloud_DocumentService_Adapter=P 5Zend_Captcha_Adapter=!O EZend_Cache_Backend_Interface=)N UZend_Cache_Backend_ExtendedInterface= M CZend_Auth_Storage_Interface= L CZend_Auth_Adapter_Interface=.K _Zend_Auth_Adapter_Http_Resolver_Interface='J QZend_Application_Resource_Resource=4I kZend_Application_Bootstrap_ResourceBootstrapper=,H [Zend_Application_Bootstrap_Bootstrapper=G ;Zend_Acl_Role_Interface= F CZend_Acl_Resource_Interface=E ?Zend_Acl_Assert_Interface=#D IZend_Wildfire_Plugin_Interface<$C KZend_Wildfire_Channel_Interface<B 3Zend_View_Interface<'A QZend_View_Helper_Navigation_Helper<@ AZend_View_Helper_Interface<? ;Zend_Validate_Interface<+> YZend_Validate_Barcode_AdapterInterface<3= iZend_Tool_Project_Profile_FileParser_Interface<:< wZend_Tool_Project_Context_System_TopLevelRestrictable<5; mZend_Tool_Project_Context_System_NotOverwritable</: aZend_Tool_Project_Context_System_Interface<(9 SZend_Tool_Project_Context_Interface<+8 YZend_Tool_Framework_Registry_Interface<27 gZend_Tool_Framework_Registry_EnabledInterface<-6 ]Zend_Tool_Framework_Provider_Pretendable<+5 YZend_Tool_Framework_Provider_Interface<.4 _Zend_Tool_Framework_Provider_Interactable</3 aZend_Tool_Framework_Provider_Initializable<;2 yZend_Tool_Framework_Provider_DocblockManifestInterface<+1 YZend_Tool_Framework_Metadata_Interface<.0 _Zend_Tool_Framework_Metadata_Attributable<6/ oZend_Tool_Framework_Manifest_ProviderManifestable<6. oZend_Tool_Framework_Manifest_MetadataManifestable<+- YZend_Tool_Framework_Manifest_Interface<+, YZend_Tool_Framework_Manifest_Indexable<4+ kZend_Tool_Framework_Manifest_ActionManifestable<)* UZend_Tool_Framework_Loader_Interface<8) sZend_Tool_Framework_Client_Storage_AdapterInterface<D( 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface<;' yZend_Tool_Framework_Client_Interactive_OutputInterface<:& wZend_Tool_Framework_Client_Interactive_InputInterface<)% UZend_Tool_Framework_Action_Interface<($ SZend_Text_Table_Decorator_Interface<# /Zend_Tag_Taggable<&" OZend_Soap_Wsdl_Strategy_Interface<%! MZend_Session_Validator_Interface<'  QZend_Session_SaveHandler_Interface<$ KZend_Service_ShortUrl_Shortener<I Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Interface< 7Zend_Server_Interface<- ]Zend_Serializer_Adapter_AdapterInterface<4 kZend_Search_Lucene_Search_Highlighter_Interface<! EZend_Search_Lucene_Interface<3 iZend_Search_Lucene_Index_TermsStream_Interface<$ KZend_Queue_Stomp_FrameInterface<0 cZend_Queue_Stomp_Client_ConnectionInterface<( SZend_Queue_Adapter_AdapterInterface< ?Zend_Pdf_Filter_Interface<& OZend_Pdf_ElementFactory_Interface< ?Zend_Pdf_Canvas_Interface<, [Zend_Paginator_ScrollingStyle_Interface<   c  qO*qP(|]8gB}W<$



{
X
7

							`	F	#z<|Q(u@i4qG#Y'wS$o:                ; +Zend_Config_Ini=: 7Zend_Config_Exception=$9 KZend_CodeGenerator_Php_Property=18 eZend_CodeGenerator_Php_Property_DefaultValue=%7 MZend_CodeGenerator_Php_Parameter=26 gZend_CodeGenerator_Php_Parameter_DefaultValue="5 GZend_CodeGenerator_Php_Method=,4 [Zend_CodeGenerator_Php_Member_Container=+3 YZend_CodeGenerator_Php_Member_Abstract= 2 CZend_CodeGenerator_Php_File=%1 MZend_CodeGenerator_Php_Exception=$0 KZend_CodeGenerator_Php_Docblock=(/ SZend_CodeGenerator_Php_Docblock_Tag=/. aZend_CodeGenerator_Php_Docblock_Tag_Return=.- _Zend_CodeGenerator_Php_Docblock_Tag_Param=0, cZend_CodeGenerator_Php_Docblock_Tag_License=!+ EZend_CodeGenerator_Php_Class= * CZend_CodeGenerator_Php_Body=$) KZend_CodeGenerator_Php_Abstract=!( EZend_CodeGenerator_Exception= ' CZend_CodeGenerator_Abstract=&& OZend_Cloud_StorageService_Factory=(% SZend_Cloud_StorageService_Exception=3$ iZend_Cloud_StorageService_Adapter_WindowsAzure=)# UZend_Cloud_StorageService_Adapter_S3=/" aZend_Cloud_StorageService_Adapter_Nirvanix=1! eZend_Cloud_StorageService_Adapter_FileSystem='  QZend_Cloud_QueueService_MessageSet=$ KZend_Cloud_QueueService_Message=$ KZend_Cloud_QueueService_Factory=& OZend_Cloud_QueueService_Exception=. _Zend_Cloud_QueueService_Adapter_ZendQueue=1 eZend_Cloud_QueueService_Adapter_WindowsAzure=( SZend_Cloud_QueueService_Adapter_Sqs=4 kZend_Cloud_QueueService_Adapter_AbstractAdapter=. _Zend_Cloud_OperationNotAvailableException= 5Zend_Cloud_Exception=% MZend_Cloud_DocumentService_Query=' QZend_Cloud_DocumentService_Factory=) UZend_Cloud_DocumentService_Exception=+ YZend_Cloud_DocumentService_DocumentSet=( SZend_Cloud_DocumentService_Document=4 kZend_Cloud_DocumentService_Adapter_WindowsAzure=: wZend_Cloud_DocumentService_Adapter_WindowsAzure_Query=0 cZend_Cloud_DocumentService_Adapter_SimpleDb=6 oZend_Cloud_DocumentService_Adapter_SimpleDb_Query=7 qZend_Cloud_DocumentService_Adapter_AbstractAdapter= AZend_Cloud_AbstractFactory= /Zend_Captcha_Word=
 9Zend_Captcha_ReCaptcha=	 1Zend_Captcha_Image= 3Zend_Captcha_Figlet= 9Zend_Captcha_Exception= /Zend_Captcha_Dumb= /Zend_Captcha_Base= !Zend_Cache= 1Zend_Cache_Manager= =Zend_Cache_Frontend_Page= AZend_Cache_Frontend_Output=!  EZend_Cache_Frontend_Function= =Zend_Cache_Frontend_File=~ ?Zend_Cache_Frontend_Class= } CZend_Cache_Frontend_Capture=| 5Zend_Cache_Exception={ +Zend_Cache_Core=z 1Zend_Cache_Backend="y GZend_Cache_Backend_ZendServer=(x SZend_Cache_Backend_ZendServer_ShMem='w QZend_Cache_Backend_ZendServer_Disk=$v KZend_Cache_Backend_ZendPlatform=u ?Zend_Cache_Backend_Xcache= t CZend_Cache_Backend_WinCache=!s EZend_Cache_Backend_TwoLevels=r ;Zend_Cache_Backend_Test=q ?Zend_Cache_Backend_Static=p ?Zend_Cache_Backend_Sqlite=!o EZend_Cache_Backend_Memcached=$n KZend_Cache_Backend_Libmemcached=m ;Zend_Cache_Backend_File=!l EZend_Cache_Backend_BlackHole=k 9Zend_Cache_Backend_Apc=j %Zend_Barcode=i ?Zend_Barcode_Renderer_Svg=+h YZend_Barcode_Renderer_RendererAbstract=g ?Zend_Barcode_Renderer_Pdf= f CZend_Barcode_Renderer_Image=$e KZend_Barcode_Renderer_Exception=d =Zend_Barcode_Object_Upce=c =Zend_Barcode_Object_Upca="b GZend_Barcode_Object_Royalmail= a CZend_Barcode_Object_Postnet=` AZend_Barcode_Object_Planet='_ QZend_Barcode_Object_ObjectAbstract=!^ EZend_Barcode_Object_Leitcode=] ?Zend_Barcode_Object_Itf14="\ GZend_Barcode_Object_Identcode="[ GZend_Barcode_Object_Exception=Z ?Zend_Barcode_Object_Error=Y =Zend_Barcode_Object_Ean8=   g  _@ ~U&OzO[<



w
O
$					U	+	c8l>b=pC{Y>'zY3e@tR/                  " 9Zend_Db_Adapter_Sqlsrv=%! MZend_Db_Adapter_Sqlsrv_Exception=  AZend_Db_Adapter_Pdo_Sqlite= ?Zend_Db_Adapter_Pdo_Pgsql= ;Zend_Db_Adapter_Pdo_Oci= ?Zend_Db_Adapter_Pdo_Mysql= ?Zend_Db_Adapter_Pdo_Mssql= ;Zend_Db_Adapter_Pdo_Ibm=  CZend_Db_Adapter_Pdo_Ibm_Ids=  CZend_Db_Adapter_Pdo_Ibm_Db2=! EZend_Db_Adapter_Pdo_Abstract= 9Zend_Db_Adapter_Oracle=% MZend_Db_Adapter_Oracle_Exception= 9Zend_Db_Adapter_Mysqli=% MZend_Db_Adapter_Mysqli_Exception= ?Zend_Db_Adapter_Exception= 3Zend_Db_Adapter_Db2=" GZend_Db_Adapter_Db2_Exception= =Zend_Db_Adapter_Abstract= Zend_Date= 3Zend_Date_Exception= 5Zend_Date_DateObject= -Zend_Date_Cities= 'Zend_Currency=
 ;Zend_Currency_Exception=	 !Zend_Crypt= )Zend_Crypt_Rsa= 1Zend_Crypt_Rsa_Key= ?Zend_Crypt_Rsa_Key_Public= AZend_Crypt_Rsa_Key_Private= =Zend_Crypt_Rsa_Exception= +Zend_Crypt_Math= ?Zend_Crypt_Math_Exception= AZend_Crypt_Math_BigInteger=#  IZend_Crypt_Math_BigInteger_Gmp=) UZend_Crypt_Math_BigInteger_Exception=&~ OZend_Crypt_Math_BigInteger_Bcmath=} +Zend_Crypt_Hmac=| ?Zend_Crypt_Hmac_Exception={ 5Zend_Crypt_Exception=z =Zend_Crypt_DiffieHellman='y QZend_Crypt_DiffieHellman_Exception=!x EZend_Controller_Router_Route=(w SZend_Controller_Router_Route_Static='v QZend_Controller_Router_Route_Regex=(u SZend_Controller_Router_Route_Module=*t WZend_Controller_Router_Route_Hostname='s QZend_Controller_Router_Route_Chain=*r WZend_Controller_Router_Route_Abstract=#q IZend_Controller_Router_Rewrite=%p MZend_Controller_Router_Exception=$o KZend_Controller_Router_Abstract=*n WZend_Controller_Response_HttpTestCase="m GZend_Controller_Response_Http='l QZend_Controller_Response_Exception=!k EZend_Controller_Response_Cli=&j OZend_Controller_Response_Abstract=#i IZend_Controller_Request_Simple=)h UZend_Controller_Request_HttpTestCase=!g EZend_Controller_Request_Http=&f OZend_Controller_Request_Exception=&e OZend_Controller_Request_Apache404=%d MZend_Controller_Request_Abstract=&c OZend_Controller_Plugin_PutHandler=(b SZend_Controller_Plugin_ErrorHandler="a GZend_Controller_Plugin_Broker='` QZend_Controller_Plugin_ActionStack=$_ KZend_Controller_Plugin_Abstract=^ 7Zend_Controller_Front=] ?Zend_Controller_Exception=(\ SZend_Controller_Dispatcher_Standard=)[ UZend_Controller_Dispatcher_Exception=(Z SZend_Controller_Dispatcher_Abstract=Y 9Zend_Controller_Action=(X SZend_Controller_Action_HelperBroker=6W oZend_Controller_Action_HelperBroker_PriorityStack=/V aZend_Controller_Action_Helper_ViewRenderer=&U OZend_Controller_Action_Helper_Url=-T ]Zend_Controller_Action_Helper_Redirector='S QZend_Controller_Action_Helper_Json=1R eZend_Controller_Action_Helper_FlashMessenger=0Q cZend_Controller_Action_Helper_ContextSwitch=(P SZend_Controller_Action_Helper_Cache=<O {Zend_Controller_Action_Helper_AutoCompleteScriptaculous=3N iZend_Controller_Action_Helper_AutoCompleteDojo=8M sZend_Controller_Action_Helper_AutoComplete_Abstract=.L _Zend_Controller_Action_Helper_AjaxContext=.K _Zend_Controller_Action_Helper_ActionStack=+J YZend_Controller_Action_Helper_Abstract=%I MZend_Controller_Action_Exception=H 3Zend_Console_Getopt="G GZend_Console_Getopt_Exception=F #Zend_Config=E -Zend_Config_Yaml=D +Zend_Config_Xml=C 1Zend_Config_Writer=B ;Zend_Config_Writer_Yaml=A 9Zend_Config_Writer_Xml=@ ;Zend_Config_Writer_Json=? 9Zend_Config_Writer_Ini=$> KZend_Config_Writer_FileAbstract== =Zend_Config_Writer_Array=< -Zend_Config_Json=   e  nU4g<mS4lE(w['



j
<
				_	9	j@a2_8xW&Y/\/g;e8               ' QZend_Dojo_View_Helper_SubmitButton=) UZend_Dojo_View_Helper_StackContainer=) UZend_Dojo_View_Helper_SplitContainer=! EZend_Dojo_View_Helper_Slider=) UZend_Dojo_View_Helper_SimpleTextarea=& OZend_Dojo_View_Helper_RadioButton=* WZend_Dojo_View_Helper_PasswordTextBox=(  SZend_Dojo_View_Helper_NumberTextBox=( SZend_Dojo_View_Helper_NumberSpinner=+~ YZend_Dojo_View_Helper_HorizontalSlider=} AZend_Dojo_View_Helper_Form=*| WZend_Dojo_View_Helper_FilteringSelect=!{ EZend_Dojo_View_Helper_Editor=z AZend_Dojo_View_Helper_Dojo=)y UZend_Dojo_View_Helper_Dojo_Container=)x UZend_Dojo_View_Helper_DijitContainer= w CZend_Dojo_View_Helper_Dijit=&v OZend_Dojo_View_Helper_DateTextBox=&u OZend_Dojo_View_Helper_CustomDijit=*t WZend_Dojo_View_Helper_CurrencyTextBox=&s OZend_Dojo_View_Helper_ContentPane=#r IZend_Dojo_View_Helper_ComboBox=#q IZend_Dojo_View_Helper_CheckBox=!p EZend_Dojo_View_Helper_Button=*o WZend_Dojo_View_Helper_BorderContainer=(n SZend_Dojo_View_Helper_AccordionPane=-m ]Zend_Dojo_View_Helper_AccordionContainer=l =Zend_Dojo_View_Exception=k )Zend_Dojo_Form=j 9Zend_Dojo_Form_SubForm=*i WZend_Dojo_Form_Element_VerticalSlider=-h ]Zend_Dojo_Form_Element_ValidationTextBox='g QZend_Dojo_Form_Element_TimeTextBox=#f IZend_Dojo_Form_Element_TextBox=$e KZend_Dojo_Form_Element_Textarea=(d SZend_Dojo_Form_Element_SubmitButton="c GZend_Dojo_Form_Element_Slider=*b WZend_Dojo_Form_Element_SimpleTextarea='a QZend_Dojo_Form_Element_RadioButton=+` YZend_Dojo_Form_Element_PasswordTextBox=)_ UZend_Dojo_Form_Element_NumberTextBox=)^ UZend_Dojo_Form_Element_NumberSpinner=,] [Zend_Dojo_Form_Element_HorizontalSlider=+\ YZend_Dojo_Form_Element_FilteringSelect="[ GZend_Dojo_Form_Element_Editor=&Z OZend_Dojo_Form_Element_DijitMulti=!Y EZend_Dojo_Form_Element_Dijit='X QZend_Dojo_Form_Element_DateTextBox=+W YZend_Dojo_Form_Element_CurrencyTextBox=$V KZend_Dojo_Form_Element_ComboBox=$U KZend_Dojo_Form_Element_CheckBox="T GZend_Dojo_Form_Element_Button= S CZend_Dojo_Form_DisplayGroup=*R WZend_Dojo_Form_Decorator_TabContainer=,Q [Zend_Dojo_Form_Decorator_StackContainer=,P [Zend_Dojo_Form_Decorator_SplitContainer='O QZend_Dojo_Form_Decorator_DijitForm=*N WZend_Dojo_Form_Decorator_DijitElement=,M [Zend_Dojo_Form_Decorator_DijitContainer=)L UZend_Dojo_Form_Decorator_ContentPane=-K ]Zend_Dojo_Form_Decorator_BorderContainer=+J YZend_Dojo_Form_Decorator_AccordionPane=0I cZend_Dojo_Form_Decorator_AccordionContainer=H 3Zend_Dojo_Exception=G )Zend_Dojo_Data=F 5Zend_Dojo_BuildLayer=E !Zend_Debug=D Zend_Db=C 'Zend_Db_Table=B 5Zend_Db_Table_Select=#A IZend_Db_Table_Select_Exception=@ 5Zend_Db_Table_Rowset=#? IZend_Db_Table_Rowset_Exception="> GZend_Db_Table_Rowset_Abstract== /Zend_Db_Table_Row= < CZend_Db_Table_Row_Exception=; AZend_Db_Table_Row_Abstract=: ;Zend_Db_Table_Exception=9 =Zend_Db_Table_Definition=8 9Zend_Db_Table_Abstract=7 /Zend_Db_Statement=6 =Zend_Db_Statement_Sqlsrv='5 QZend_Db_Statement_Sqlsrv_Exception=4 7Zend_Db_Statement_Pdo=3 ?Zend_Db_Statement_Pdo_Oci=2 ?Zend_Db_Statement_Pdo_Ibm=1 =Zend_Db_Statement_Oracle='0 QZend_Db_Statement_Oracle_Exception=/ =Zend_Db_Statement_Mysqli='. QZend_Db_Statement_Mysqli_Exception= - CZend_Db_Statement_Exception=, 7Zend_Db_Statement_Db2=$+ KZend_Db_Statement_Db2_Exception=* )Zend_Db_Select=) =Zend_Db_Select_Exception=( -Zend_Db_Profiler=' 9Zend_Db_Profiler_Query=& =Zend_Db_Profiler_Firebug=% AZend_Db_Profiler_Exception=$ %Zend_Db_Expr=# /Zend_Db_Exception=   ]  ^.~gL5tS6yFoD



u
N
 				Q	X(^4yX9R~F^3NqXF             !d EZend_File_Transfer_Exception=$c KZend_File_Transfer_Adapter_Http=(b SZend_File_Transfer_Adapter_Abstract=a Zend_Feed=` -Zend_Feed_Writer=_ ;Zend_Feed_Writer_Source=/^ aZend_Feed_Writer_Renderer_RendererAbstract='] QZend_Feed_Writer_Renderer_Feed_Rss=(\ SZend_Feed_Writer_Renderer_Feed_Atom=/[ aZend_Feed_Writer_Renderer_Feed_Atom_Source=5Z mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract=(Y SZend_Feed_Writer_Renderer_Entry_Rss=)X UZend_Feed_Writer_Renderer_Entry_Atom=1W eZend_Feed_Writer_Renderer_Entry_Atom_Deleted=V 7Zend_Feed_Writer_Feed='U QZend_Feed_Writer_Feed_FeedAbstract=<T {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry=8S sZend_Feed_Writer_Extension_Threading_Renderer_Entry=4R kZend_Feed_Writer_Extension_Slash_Renderer_Entry=0Q cZend_Feed_Writer_Extension_RendererAbstract=4P kZend_Feed_Writer_Extension_ITunes_Renderer_Feed=5O mZend_Feed_Writer_Extension_ITunes_Renderer_Entry=+N YZend_Feed_Writer_Extension_ITunes_Feed=,M [Zend_Feed_Writer_Extension_ITunes_Entry=8L sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed=9K uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry=6J oZend_Feed_Writer_Extension_Content_Renderer_Entry=2I gZend_Feed_Writer_Extension_Atom_Renderer_Feed=6H oZend_Feed_Writer_Exception_InvalidMethodException=G 9Zend_Feed_Writer_Entry=F =Zend_Feed_Writer_Deleted=E 'Zend_Feed_Rss=D -Zend_Feed_Reader=C =Zend_Feed_Reader_FeedSet="B GZend_Feed_Reader_FeedAbstract=A ?Zend_Feed_Reader_Feed_Rss=@ AZend_Feed_Reader_Feed_Atom=&? OZend_Feed_Reader_Feed_Atom_Source=3> iZend_Feed_Reader_Extension_WellFormedWeb_Entry=,= [Zend_Feed_Reader_Extension_Thread_Entry=0< cZend_Feed_Reader_Extension_Syndication_Feed=+; YZend_Feed_Reader_Extension_Slash_Entry=,: [Zend_Feed_Reader_Extension_Podcast_Feed=-9 ]Zend_Feed_Reader_Extension_Podcast_Entry=,8 [Zend_Feed_Reader_Extension_FeedAbstract=-7 ]Zend_Feed_Reader_Extension_EntryAbstract=/6 aZend_Feed_Reader_Extension_DublinCore_Feed=05 cZend_Feed_Reader_Extension_DublinCore_Entry=44 kZend_Feed_Reader_Extension_CreativeCommons_Feed=53 mZend_Feed_Reader_Extension_CreativeCommons_Entry=-2 ]Zend_Feed_Reader_Extension_Content_Entry=)1 UZend_Feed_Reader_Extension_Atom_Feed=*0 WZend_Feed_Reader_Extension_Atom_Entry=#/ IZend_Feed_Reader_EntryAbstract=. AZend_Feed_Reader_Entry_Rss= - CZend_Feed_Reader_Entry_Atom= , CZend_Feed_Reader_Collection=3+ iZend_Feed_Reader_Collection_CollectionAbstract=)* UZend_Feed_Reader_Collection_Category=') QZend_Feed_Reader_Collection_Author=( 9Zend_Feed_Pubsubhubbub=&' OZend_Feed_Pubsubhubbub_Subscriber=/& aZend_Feed_Pubsubhubbub_Subscriber_Callback=%% MZend_Feed_Pubsubhubbub_Publisher=.$ _Zend_Feed_Pubsubhubbub_Model_Subscription=/# aZend_Feed_Pubsubhubbub_Model_ModelAbstract=(" SZend_Feed_Pubsubhubbub_HttpResponse=%! MZend_Feed_Pubsubhubbub_Exception=,  [Zend_Feed_Pubsubhubbub_CallbackAbstract= 3Zend_Feed_Exception= 3Zend_Feed_Entry_Rss= 5Zend_Feed_Entry_Atom= =Zend_Feed_Entry_Abstract= /Zend_Feed_Element= /Zend_Feed_Builder= =Zend_Feed_Builder_Header=$ KZend_Feed_Builder_Header_Itunes=  CZend_Feed_Builder_Exception= ;Zend_Feed_Builder_Entry= )Zend_Feed_Atom= 1Zend_Feed_Abstract= )Zend_Exception= )Zend_Dom_Query= 7Zend_Dom_Query_Result= =Zend_Dom_Query_Css2Xpath= 1Zend_Dom_Exception= Zend_Dojo=) UZend_Dojo_View_Helper_VerticalSlider=, [Zend_Dojo_View_Helper_ValidationTextBox=& OZend_Dojo_View_Helper_TimeTextBox="
 GZend_Dojo_View_Helper_TextBox=#	 IZend_Dojo_View_Helper_Textarea=' QZend_Dojo_View_Helper_TabContainer=   n x[:hK,z\;u[CwU6



p
G
				q	C	]/oI$nL*mL*dDrQ2h:a7                                          %R MZend_Gdata_App_Extension_Content=&Q OZend_Gdata_App_Extension_Category=$P KZend_Gdata_App_Extension_Author=O =Zend_Gdata_App_Exception=N 5Zend_Gdata_App_Entry=,M [Zend_Gdata_App_CaptchaRequiredException=#L IZend_Gdata_App_BaseMediaSource=K 3Zend_Gdata_App_Base=*J WZend_Gdata_App_BadMethodCallException=!I EZend_Gdata_App_AuthException=H Zend_Form=G /Zend_Form_SubForm=F 3Zend_Form_Exception=E /Zend_Form_Element=D ;Zend_Form_Element_Xhtml=C AZend_Form_Element_Textarea=B 9Zend_Form_Element_Text=A =Zend_Form_Element_Submit=@ =Zend_Form_Element_Select=? ;Zend_Form_Element_Reset=> ;Zend_Form_Element_Radio== AZend_Form_Element_Password="< GZend_Form_Element_Multiselect=$; KZend_Form_Element_MultiCheckbox=: ;Zend_Form_Element_Multi=9 ;Zend_Form_Element_Image=8 =Zend_Form_Element_Hidden=7 9Zend_Form_Element_Hash=6 9Zend_Form_Element_File= 5 CZend_Form_Element_Exception=4 AZend_Form_Element_Checkbox=3 ?Zend_Form_Element_Captcha=2 =Zend_Form_Element_Button=1 9Zend_Form_DisplayGroup=#0 IZend_Form_Decorator_ViewScript=#/ IZend_Form_Decorator_ViewHelper= . CZend_Form_Decorator_Tooltip=(- SZend_Form_Decorator_PrepareElements=, ?Zend_Form_Decorator_Label=+ ?Zend_Form_Decorator_Image= * CZend_Form_Decorator_HtmlTag=#) IZend_Form_Decorator_FormErrors=%( MZend_Form_Decorator_FormElements=' =Zend_Form_Decorator_Form=& =Zend_Form_Decorator_File=!% EZend_Form_Decorator_Fieldset="$ GZend_Form_Decorator_Exception=# AZend_Form_Decorator_Errors=$" KZend_Form_Decorator_DtDdWrapper=$! KZend_Form_Decorator_Description=   CZend_Form_Decorator_Captcha=% MZend_Form_Decorator_Captcha_Word=* WZend_Form_Decorator_Captcha_ReCaptcha=! EZend_Form_Decorator_Callback=! EZend_Form_Decorator_Abstract= #Zend_Filter=+ YZend_Filter_Word_UnderscoreToSeparator=& OZend_Filter_Word_UnderscoreToDash=+ YZend_Filter_Word_UnderscoreToCamelCase=* WZend_Filter_Word_SeparatorToSeparator=% MZend_Filter_Word_SeparatorToDash=* WZend_Filter_Word_SeparatorToCamelCase=( SZend_Filter_Word_Separator_Abstract=& OZend_Filter_Word_DashToUnderscore=% MZend_Filter_Word_DashToSeparator=% MZend_Filter_Word_DashToCamelCase=+ YZend_Filter_Word_CamelCaseToUnderscore=* WZend_Filter_Word_CamelCaseToSeparator=% MZend_Filter_Word_CamelCaseToDash= 7Zend_Filter_StripTags= ?Zend_Filter_StripNewlines= 9Zend_Filter_StringTrim=
 ?Zend_Filter_StringToUpper=	 ?Zend_Filter_StringToLower= 5Zend_Filter_RealPath= ;Zend_Filter_PregReplace= -Zend_Filter_Null=& OZend_Filter_NormalizedToLocalized=& OZend_Filter_LocalizedToNormalized= +Zend_Filter_Int= /Zend_Filter_Input= 7Zend_Filter_Inflector=  =Zend_Filter_HtmlEntities= AZend_Filter_File_UpperCase=~ ;Zend_Filter_File_Rename=} AZend_Filter_File_LowerCase=| =Zend_Filter_File_Encrypt={ =Zend_Filter_File_Decrypt=z 7Zend_Filter_Exception=y 3Zend_Filter_Encrypt= x CZend_Filter_Encrypt_Openssl=w AZend_Filter_Encrypt_Mcrypt=v +Zend_Filter_Dir=u 1Zend_Filter_Digits=t 3Zend_Filter_Decrypt=s 9Zend_Filter_Decompress=r 5Zend_Filter_Compress=q =Zend_Filter_Compress_Zip=p =Zend_Filter_Compress_Tar=o =Zend_Filter_Compress_Rar=n =Zend_Filter_Compress_Lzf=m ;Zend_Filter_Compress_Gz=*l WZend_Filter_Compress_CompressAbstract=k =Zend_Filter_Compress_Bz2=j 5Zend_Filter_Callback=i 3Zend_Filter_Boolean=h 5Zend_Filter_BaseName=g /Zend_Filter_Alpha=f /Zend_Filter_Alnum=e 1Zend_File_Transfer=   `  [2pJ$W.rV/Y7




q
I
				\	-	~Z5vJW(qG W(c3Z2_7      2 5Zend_Gdata_Exif_Feed=#1 IZend_Gdata_Exif_Extension_Time=#0 IZend_Gdata_Exif_Extension_Tags=$/ KZend_Gdata_Exif_Extension_Model=#. IZend_Gdata_Exif_Extension_Make="- GZend_Gdata_Exif_Extension_Iso=,, [Zend_Gdata_Exif_Extension_ImageUniqueId=$+ KZend_Gdata_Exif_Extension_FStop=** WZend_Gdata_Exif_Extension_FocalLength=$) KZend_Gdata_Exif_Extension_Flash='( QZend_Gdata_Exif_Extension_Exposure='' QZend_Gdata_Exif_Extension_Distance=& 7Zend_Gdata_Exif_Entry=% -Zend_Gdata_Entry=$ 7Zend_Gdata_DublinCore=*# WZend_Gdata_DublinCore_Extension_Title=," [Zend_Gdata_DublinCore_Extension_Subject=+! YZend_Gdata_DublinCore_Extension_Rights=.  _Zend_Gdata_DublinCore_Extension_Publisher=- ]Zend_Gdata_DublinCore_Extension_Language=/ aZend_Gdata_DublinCore_Extension_Identifier=+ YZend_Gdata_DublinCore_Extension_Format=0 cZend_Gdata_DublinCore_Extension_Description=) UZend_Gdata_DublinCore_Extension_Date=, [Zend_Gdata_DublinCore_Extension_Creator= +Zend_Gdata_Docs= 7Zend_Gdata_Docs_Query=% MZend_Gdata_Docs_DocumentListFeed=& OZend_Gdata_Docs_DocumentListEntry= 9Zend_Gdata_ClientLogin= 3Zend_Gdata_Calendar=! EZend_Gdata_Calendar_ListFeed=" GZend_Gdata_Calendar_ListEntry=- ]Zend_Gdata_Calendar_Extension_WebContent=+ YZend_Gdata_Calendar_Extension_Timezone=9 uZend_Gdata_Calendar_Extension_SendEventNotifications=+ YZend_Gdata_Calendar_Extension_Selected=+ YZend_Gdata_Calendar_Extension_QuickAdd=' QZend_Gdata_Calendar_Extension_Link=) UZend_Gdata_Calendar_Extension_Hidden=(
 SZend_Gdata_Calendar_Extension_Color=.	 _Zend_Gdata_Calendar_Extension_AccessLevel=# IZend_Gdata_Calendar_EventQuery=" GZend_Gdata_Calendar_EventFeed=# IZend_Gdata_Calendar_EventEntry= -Zend_Gdata_Books=! EZend_Gdata_Books_VolumeQuery=  CZend_Gdata_Books_VolumeFeed=! EZend_Gdata_Books_VolumeEntry=+ YZend_Gdata_Books_Extension_Viewability=-  ]Zend_Gdata_Books_Extension_ThumbnailLink=& OZend_Gdata_Books_Extension_Review=+~ YZend_Gdata_Books_Extension_PreviewLink=(} SZend_Gdata_Books_Extension_InfoLink=-| ]Zend_Gdata_Books_Extension_Embeddability=){ UZend_Gdata_Books_Extension_BooksLink=-z ]Zend_Gdata_Books_Extension_BooksCategory=.y _Zend_Gdata_Books_Extension_AnnotationLink=$x KZend_Gdata_Books_CollectionFeed=%w MZend_Gdata_Books_CollectionEntry=v 1Zend_Gdata_AuthSub=u )Zend_Gdata_App=$t KZend_Gdata_App_VersionException=s 3Zend_Gdata_App_Util=#r IZend_Gdata_App_MediaFileSource=q ?Zend_Gdata_App_MediaEntry=2p gZend_Gdata_App_LoggingHttpClientAdapterSocket=o AZend_Gdata_App_IOException=,n [Zend_Gdata_App_InvalidArgumentException=!m EZend_Gdata_App_HttpException=$l KZend_Gdata_App_FeedSourceParent=#k IZend_Gdata_App_FeedEntryParent=j 3Zend_Gdata_App_Feed=i =Zend_Gdata_App_Extension=!h EZend_Gdata_App_Extension_Uri=%g MZend_Gdata_App_Extension_Updated=#f IZend_Gdata_App_Extension_Title="e GZend_Gdata_App_Extension_Text=%d MZend_Gdata_App_Extension_Summary=&c OZend_Gdata_App_Extension_Subtitle=$b KZend_Gdata_App_Extension_Source=$a KZend_Gdata_App_Extension_Rights='` QZend_Gdata_App_Extension_Published=$_ KZend_Gdata_App_Extension_Person="^ GZend_Gdata_App_Extension_Name="] GZend_Gdata_App_Extension_Logo="\ GZend_Gdata_App_Extension_Link= [ CZend_Gdata_App_Extension_Id="Z GZend_Gdata_App_Extension_Icon='Y QZend_Gdata_App_Extension_Generator=#X IZend_Gdata_App_Extension_Email=%W MZend_Gdata_App_Extension_Element=$V KZend_Gdata_App_Extension_Edited=#U IZend_Gdata_App_Extension_Draft=%T MZend_Gdata_App_Extension_Control=)S UZend_Gdata_App_Extension_Contributor=   c  lEb.`6sK$jK



u
L
(
				s	L	&uK(z\9dK.|T-xK\*l;|J                          -Zend_Gdata_Media= 7Zend_Gdata_Media_Feed=* WZend_Gdata_Media_Extension_MediaTitle=. _Zend_Gdata_Media_Extension_MediaThumbnail=) UZend_Gdata_Media_Extension_MediaText=0 cZend_Gdata_Media_Extension_MediaRestriction=+ YZend_Gdata_Media_Extension_MediaRating=+ YZend_Gdata_Media_Extension_MediaPlayer=- ]Zend_Gdata_Media_Extension_MediaKeywords=) UZend_Gdata_Media_Extension_MediaHash=* WZend_Gdata_Media_Extension_MediaGroup=0
 cZend_Gdata_Media_Extension_MediaDescription=+	 YZend_Gdata_Media_Extension_MediaCredit=. _Zend_Gdata_Media_Extension_MediaCopyright=, [Zend_Gdata_Media_Extension_MediaContent=- ]Zend_Gdata_Media_Extension_MediaCategory= 9Zend_Gdata_Media_Entry= AZend_Gdata_Kind_EventEntry= 7Zend_Gdata_HttpClient=* WZend_Gdata_HttpAdapterStreamingSocket=) UZend_Gdata_HttpAdapterStreamingProxy=  /Zend_Gdata_Health= ;Zend_Gdata_Health_Query=&~ OZend_Gdata_Health_ProfileListFeed='} QZend_Gdata_Health_ProfileListEntry="| GZend_Gdata_Health_ProfileFeed=#{ IZend_Gdata_Health_ProfileEntry=$z KZend_Gdata_Health_Extension_Ccr=y )Zend_Gdata_Geo=x 3Zend_Gdata_Geo_Feed=$w KZend_Gdata_Geo_Extension_GmlPos=&v OZend_Gdata_Geo_Extension_GmlPoint=)u UZend_Gdata_Geo_Extension_GeoRssWhere=t 5Zend_Gdata_Geo_Entry=s -Zend_Gdata_Gbase="r GZend_Gdata_Gbase_SnippetQuery=!q EZend_Gdata_Gbase_SnippetFeed="p GZend_Gdata_Gbase_SnippetEntry=o 9Zend_Gdata_Gbase_Query=n AZend_Gdata_Gbase_ItemQuery=m ?Zend_Gdata_Gbase_ItemFeed=l AZend_Gdata_Gbase_ItemEntry=k 7Zend_Gdata_Gbase_Feed=-j ]Zend_Gdata_Gbase_Extension_BaseAttribute=i 9Zend_Gdata_Gbase_Entry=h -Zend_Gdata_Gapps=g AZend_Gdata_Gapps_UserQuery=f ?Zend_Gdata_Gapps_UserFeed=e AZend_Gdata_Gapps_UserEntry=&d OZend_Gdata_Gapps_ServiceException=c 9Zend_Gdata_Gapps_Query= b CZend_Gdata_Gapps_OwnerQuery=a AZend_Gdata_Gapps_OwnerFeed= ` CZend_Gdata_Gapps_OwnerEntry=#_ IZend_Gdata_Gapps_NicknameQuery="^ GZend_Gdata_Gapps_NicknameFeed=#] IZend_Gdata_Gapps_NicknameEntry=!\ EZend_Gdata_Gapps_MemberQuery= [ CZend_Gdata_Gapps_MemberFeed=!Z EZend_Gdata_Gapps_MemberEntry= Y CZend_Gdata_Gapps_GroupQuery=X AZend_Gdata_Gapps_GroupFeed= W CZend_Gdata_Gapps_GroupEntry=%V MZend_Gdata_Gapps_Extension_Quota=(U SZend_Gdata_Gapps_Extension_Property=(T SZend_Gdata_Gapps_Extension_Nickname=$S KZend_Gdata_Gapps_Extension_Name=%R MZend_Gdata_Gapps_Extension_Login=)Q UZend_Gdata_Gapps_Extension_EmailList=P 9Zend_Gdata_Gapps_Error=-O ]Zend_Gdata_Gapps_EmailListRecipientQuery=,N [Zend_Gdata_Gapps_EmailListRecipientFeed=-M ]Zend_Gdata_Gapps_EmailListRecipientEntry=$L KZend_Gdata_Gapps_EmailListQuery=#K IZend_Gdata_Gapps_EmailListFeed=$J KZend_Gdata_Gapps_EmailListEntry=I +Zend_Gdata_Feed=H 5Zend_Gdata_Extension=G =Zend_Gdata_Extension_Who=F AZend_Gdata_Extension_Where=E ?Zend_Gdata_Extension_When=$D KZend_Gdata_Extension_Visibility=&C OZend_Gdata_Extension_Transparency="B GZend_Gdata_Extension_Reminder=-A ]Zend_Gdata_Extension_RecurrenceException=$@ KZend_Gdata_Extension_Recurrence= ? CZend_Gdata_Extension_Rating='> QZend_Gdata_Extension_OriginalEvent=0= cZend_Gdata_Extension_OpenSearchTotalResults=.< _Zend_Gdata_Extension_OpenSearchStartIndex=0; cZend_Gdata_Extension_OpenSearchItemsPerPage=": GZend_Gdata_Extension_FeedLink=*9 WZend_Gdata_Extension_ExtendedProperty=%8 MZend_Gdata_Extension_EventStatus=#7 IZend_Gdata_Extension_EntryLink="6 GZend_Gdata_Extension_Comments=&5 OZend_Gdata_Extension_AttendeeType=(4 SZend_Gdata_Extension_AttendeeStatus=3 +Zend_Gdata_Exif=   Z  zV1
X-tGV*pG



k
A
					i	E	+	g8wN$fF~W*|Mf8
Oj:
                            /o aZend_Gdata_YouTube_Extension_PlaylistTitle=,n [Zend_Gdata_YouTube_Extension_PlaylistId=,m [Zend_Gdata_YouTube_Extension_Occupation=)l UZend_Gdata_YouTube_Extension_NoEmbed='k QZend_Gdata_YouTube_Extension_Music=(j SZend_Gdata_YouTube_Extension_Movies=-i ]Zend_Gdata_YouTube_Extension_MediaRating=,h [Zend_Gdata_YouTube_Extension_MediaGroup=-g ]Zend_Gdata_YouTube_Extension_MediaCredit=.f _Zend_Gdata_YouTube_Extension_MediaContent=*e WZend_Gdata_YouTube_Extension_Location=&d OZend_Gdata_YouTube_Extension_Link=*c WZend_Gdata_YouTube_Extension_LastName=*b WZend_Gdata_YouTube_Extension_Hometown=)a UZend_Gdata_YouTube_Extension_Hobbies=(` SZend_Gdata_YouTube_Extension_Gender=+_ YZend_Gdata_YouTube_Extension_FirstName=*^ WZend_Gdata_YouTube_Extension_Duration=-] ]Zend_Gdata_YouTube_Extension_Description=+\ YZend_Gdata_YouTube_Extension_CountHint=)[ UZend_Gdata_YouTube_Extension_Control=)Z UZend_Gdata_YouTube_Extension_Company='Y QZend_Gdata_YouTube_Extension_Books=%X MZend_Gdata_YouTube_Extension_Age=)W UZend_Gdata_YouTube_Extension_AboutMe=#V IZend_Gdata_YouTube_ContactFeed=$U KZend_Gdata_YouTube_ContactEntry=#T IZend_Gdata_YouTube_CommentFeed=$S KZend_Gdata_YouTube_CommentEntry=$R KZend_Gdata_YouTube_ActivityFeed=%Q MZend_Gdata_YouTube_ActivityEntry=P ;Zend_Gdata_Spreadsheets=*O WZend_Gdata_Spreadsheets_WorksheetFeed=+N YZend_Gdata_Spreadsheets_WorksheetEntry=,M [Zend_Gdata_Spreadsheets_SpreadsheetFeed=-L ]Zend_Gdata_Spreadsheets_SpreadsheetEntry=&K OZend_Gdata_Spreadsheets_ListQuery=%J MZend_Gdata_Spreadsheets_ListFeed=&I OZend_Gdata_Spreadsheets_ListEntry=/H aZend_Gdata_Spreadsheets_Extension_RowCount=-G ]Zend_Gdata_Spreadsheets_Extension_Custom=/F aZend_Gdata_Spreadsheets_Extension_ColCount=+E YZend_Gdata_Spreadsheets_Extension_Cell=*D WZend_Gdata_Spreadsheets_DocumentQuery=&C OZend_Gdata_Spreadsheets_CellQuery=%B MZend_Gdata_Spreadsheets_CellFeed=&A OZend_Gdata_Spreadsheets_CellEntry=@ -Zend_Gdata_Query=? /Zend_Gdata_Photos= > CZend_Gdata_Photos_UserQuery== AZend_Gdata_Photos_UserFeed= < CZend_Gdata_Photos_UserEntry=; AZend_Gdata_Photos_TagEntry=!: EZend_Gdata_Photos_PhotoQuery= 9 CZend_Gdata_Photos_PhotoFeed=!8 EZend_Gdata_Photos_PhotoEntry=&7 OZend_Gdata_Photos_Extension_Width='6 QZend_Gdata_Photos_Extension_Weight=(5 SZend_Gdata_Photos_Extension_Version=%4 MZend_Gdata_Photos_Extension_User=*3 WZend_Gdata_Photos_Extension_Timestamp=*2 WZend_Gdata_Photos_Extension_Thumbnail=%1 MZend_Gdata_Photos_Extension_Size=)0 UZend_Gdata_Photos_Extension_Rotation=+/ YZend_Gdata_Photos_Extension_QuotaLimit=-. ]Zend_Gdata_Photos_Extension_QuotaCurrent=)- UZend_Gdata_Photos_Extension_Position=(, SZend_Gdata_Photos_Extension_PhotoId=3+ iZend_Gdata_Photos_Extension_NumPhotosRemaining=** WZend_Gdata_Photos_Extension_NumPhotos=)) UZend_Gdata_Photos_Extension_Nickname=%( MZend_Gdata_Photos_Extension_Name=2' gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum=)& UZend_Gdata_Photos_Extension_Location=#% IZend_Gdata_Photos_Extension_Id='$ QZend_Gdata_Photos_Extension_Height=2# gZend_Gdata_Photos_Extension_CommentingEnabled=-" ]Zend_Gdata_Photos_Extension_CommentCount='! QZend_Gdata_Photos_Extension_Client=)  UZend_Gdata_Photos_Extension_Checksum=* WZend_Gdata_Photos_Extension_BytesUsed=( SZend_Gdata_Photos_Extension_AlbumId=' QZend_Gdata_Photos_Extension_Access=# IZend_Gdata_Photos_CommentEntry=! EZend_Gdata_Photos_AlbumQuery=  CZend_Gdata_Photos_AlbumFeed=! EZend_Gdata_Photos_AlbumEntry= 3Zend_Gdata_MimeFile= ?Zend_Gdata_MimeBodyString= AZend_Gdata_MediaMimeStream=   _  tJb2R,Z- ]7	



i
C
 
					y	N	.	
zA
a=nM'd7pS*
j;sI'K      -N ]Zend_InfoCard_Xml_SecurityTokenReference=M AZend_InfoCard_Xml_Security=)L UZend_InfoCard_Xml_Security_Transform=4K kZend_InfoCard_Xml_Security_Transform_XmlExcC14N=3J iZend_InfoCard_Xml_Security_Transform_Exception=<I {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignature=)H UZend_InfoCard_Xml_Security_Exception=G ?Zend_InfoCard_Xml_KeyInfo=&F OZend_InfoCard_Xml_KeyInfo_XmlDSig=&E OZend_InfoCard_Xml_KeyInfo_Default='D QZend_InfoCard_Xml_KeyInfo_Abstract= C CZend_InfoCard_Xml_Exception=#B IZend_InfoCard_Xml_EncryptedKey=$A KZend_InfoCard_Xml_EncryptedData=+@ YZend_InfoCard_Xml_EncryptedData_XmlEnc=-? ]Zend_InfoCard_Xml_EncryptedData_Abstract=> ?Zend_InfoCard_Xml_Element= = CZend_InfoCard_Xml_Assertion=%< MZend_InfoCard_Xml_Assertion_Saml=; ;Zend_InfoCard_Exception=%: MZend_InfoCard_Exception_Abstract=9 5Zend_InfoCard_Claims=8 5Zend_InfoCard_Cipher=57 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc=56 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc=45 kZend_InfoCard_Cipher_Symmetric_Adapter_Abstract=)4 UZend_InfoCard_Cipher_Pki_Adapter_Rsa=.3 _Zend_InfoCard_Cipher_Pki_Adapter_Abstract=#2 IZend_InfoCard_Cipher_Exception=$1 KZend_InfoCard_Adapter_Exception="0 GZend_InfoCard_Adapter_Default=/ 3Zend_Http_UserAgent=". GZend_Http_UserAgent_Validator=- =Zend_Http_UserAgent_Text=(, SZend_Http_UserAgent_Storage_Session=.+ _Zend_Http_UserAgent_Storage_NonPersistent=** WZend_Http_UserAgent_Storage_Exception=) =Zend_Http_UserAgent_Spam=( ?Zend_Http_UserAgent_Probe= ' CZend_Http_UserAgent_Offline=& AZend_Http_UserAgent_Mobile=% =Zend_Http_UserAgent_Feed=+$ YZend_Http_UserAgent_Features_Exception=2# gZend_Http_UserAgent_Features_Adapter_WurflApi=3" iZend_Http_UserAgent_Features_Adapter_TeraWurfl=5! mZend_Http_UserAgent_Features_Adapter_DeviceAtlas="  GZend_Http_UserAgent_Exception= ?Zend_Http_UserAgent_Email=  CZend_Http_UserAgent_Desktop=  CZend_Http_UserAgent_Console=  CZend_Http_UserAgent_Checker= ;Zend_Http_UserAgent_Bot=' QZend_Http_UserAgent_AbstractDevice= 1Zend_Http_Response= ?Zend_Http_Response_Stream= 3Zend_Http_Exception= 3Zend_Http_CookieJar= -Zend_Http_Cookie= -Zend_Http_Client= AZend_Http_Client_Exception=" GZend_Http_Client_Adapter_Test=$ KZend_Http_Client_Adapter_Socket=# IZend_Http_Client_Adapter_Proxy=' QZend_Http_Client_Adapter_Exception=" GZend_Http_Client_Adapter_Curl= !Zend_Gdata= 1Zend_Gdata_YouTube=" GZend_Gdata_YouTube_VideoQuery=!
 EZend_Gdata_YouTube_VideoFeed="	 GZend_Gdata_YouTube_VideoEntry=( SZend_Gdata_YouTube_UserProfileEntry=( SZend_Gdata_YouTube_SubscriptionFeed=) UZend_Gdata_YouTube_SubscriptionEntry=) UZend_Gdata_YouTube_PlaylistVideoFeed=* WZend_Gdata_YouTube_PlaylistVideoEntry=( SZend_Gdata_YouTube_PlaylistListFeed=) UZend_Gdata_YouTube_PlaylistListEntry=" GZend_Gdata_YouTube_MediaEntry=!  EZend_Gdata_YouTube_InboxFeed=" GZend_Gdata_YouTube_InboxEntry=)~ UZend_Gdata_YouTube_Extension_VideoId=*} WZend_Gdata_YouTube_Extension_Username=*| WZend_Gdata_YouTube_Extension_Uploaded='{ QZend_Gdata_YouTube_Extension_Token=(z SZend_Gdata_YouTube_Extension_Status=,y [Zend_Gdata_YouTube_Extension_Statistics='x QZend_Gdata_YouTube_Extension_State=(w SZend_Gdata_YouTube_Extension_School=-v ]Zend_Gdata_YouTube_Extension_ReleaseDate=.u _Zend_Gdata_YouTube_Extension_Relationship=*t WZend_Gdata_YouTube_Extension_Recorded=&s OZend_Gdata_YouTube_Extension_Racy=-r ]Zend_Gdata_YouTube_Extension_QueryString=)q UZend_Gdata_YouTube_Extension_Private=*p WZend_Gdata_YouTube_Extension_Position=   u  dE"mP7%vH+yV5f>



|
N
				M	&	zO._F2pM+vY:u^:}R2{\:lK&  C Zend_Mail=B =Zend_Mail_Transport_Smtp=!A EZend_Mail_Transport_Sendmail=@ =Zend_Mail_Transport_File="? GZend_Mail_Transport_Exception=!> EZend_Mail_Transport_Abstract== /Zend_Mail_Storage='< QZend_Mail_Storage_Writable_Maildir=; 9Zend_Mail_Storage_Pop3=: 9Zend_Mail_Storage_Mbox=9 ?Zend_Mail_Storage_Maildir=8 9Zend_Mail_Storage_Imap=7 =Zend_Mail_Storage_Folder="6 GZend_Mail_Storage_Folder_Mbox=%5 MZend_Mail_Storage_Folder_Maildir= 4 CZend_Mail_Storage_Exception=3 AZend_Mail_Storage_Abstract=2 ;Zend_Mail_Protocol_Smtp='1 QZend_Mail_Protocol_Smtp_Auth_Plain='0 QZend_Mail_Protocol_Smtp_Auth_Login=)/ UZend_Mail_Protocol_Smtp_Auth_Crammd5=. ;Zend_Mail_Protocol_Pop3=- ;Zend_Mail_Protocol_Imap=!, EZend_Mail_Protocol_Exception= + CZend_Mail_Protocol_Abstract=* )Zend_Mail_Part=) 3Zend_Mail_Part_File=( /Zend_Mail_Message=' 9Zend_Mail_Message_File=& 3Zend_Mail_Exception=% Zend_Log= $ CZend_Log_Writer_ZendMonitor=# 9Zend_Log_Writer_Syslog=" 9Zend_Log_Writer_Stream=! 5Zend_Log_Writer_Null=  5Zend_Log_Writer_Mock= 5Zend_Log_Writer_Mail= ;Zend_Log_Writer_Firebug= 1Zend_Log_Writer_Db= =Zend_Log_Writer_Abstract= 9Zend_Log_Formatter_Xml= ?Zend_Log_Formatter_Simple= AZend_Log_Formatter_Firebug=  CZend_Log_Formatter_Abstract= =Zend_Log_Filter_Suppress= =Zend_Log_Filter_Priority= ;Zend_Log_Filter_Message= =Zend_Log_Filter_Abstract= 1Zend_Log_Exception= #Zend_Locale= -Zend_Locale_Math= =Zend_Locale_Math_PhpMath= AZend_Locale_Math_Exception= 1Zend_Locale_Format= 7Zend_Locale_Exception= -Zend_Locale_Data=! EZend_Locale_Data_Translation=
 #Zend_Loader=	 =Zend_Loader_PluginLoader=' QZend_Loader_PluginLoader_Exception= 7Zend_Loader_Exception= 9Zend_Loader_Autoloader=$ KZend_Loader_Autoloader_Resource= Zend_Ldap= )Zend_Ldap_Node= 7Zend_Ldap_Node_Schema=# IZend_Ldap_Node_Schema_OpenLdap=/  aZend_Ldap_Node_Schema_ObjectClass_OpenLdap=6 oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectory=~ AZend_Ldap_Node_Schema_Item=1} eZend_Ldap_Node_Schema_AttributeType_OpenLdap=8| sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory=*{ WZend_Ldap_Node_Schema_ActiveDirectory=z 9Zend_Ldap_Node_RootDse=$y KZend_Ldap_Node_RootDse_OpenLdap=&x OZend_Ldap_Node_RootDse_eDirectory=+w YZend_Ldap_Node_RootDse_ActiveDirectory=v ?Zend_Ldap_Node_Collection=$u KZend_Ldap_Node_ChildrenIterator=t ;Zend_Ldap_Node_Abstract=s 9Zend_Ldap_Ldif_Encoder=r -Zend_Ldap_Filter=q ;Zend_Ldap_Filter_String=p 3Zend_Ldap_Filter_Or=o 5Zend_Ldap_Filter_Not=n 7Zend_Ldap_Filter_Mask=m =Zend_Ldap_Filter_Logical=l AZend_Ldap_Filter_Exception=k 5Zend_Ldap_Filter_And=j ?Zend_Ldap_Filter_Abstract=i 3Zend_Ldap_Exception=h %Zend_Ldap_Dn=g 3Zend_Ldap_Converter="f GZend_Ldap_Converter_Exception=e 5Zend_Ldap_Collection=*d WZend_Ldap_Collection_Iterator_Default=c 3Zend_Ldap_Attribute=b #Zend_Layout=a 7Zend_Layout_Exception=)` UZend_Layout_Controller_Plugin_Layout=0_ cZend_Layout_Controller_Action_Helper_Layout=^ Zend_Json=] -Zend_Json_Server=\ 5Zend_Json_Server_Smd=![ EZend_Json_Server_Smd_Service=Z ?Zend_Json_Server_Response=#Y IZend_Json_Server_Response_Http=X =Zend_Json_Server_Request="W GZend_Json_Server_Request_Http=V AZend_Json_Server_Exception=U 9Zend_Json_Server_Error=T 9Zend_Json_Server_Cache=S )Zend_Json_Expr=R 3Zend_Json_Exception=Q /Zend_Json_Encoder=P /Zend_Json_Decoder=O 'Zend_InfoCard=   u xQ*f8 w[:}^?kP2




p
T
8
					p	V	B	)	eD'~Y/^>wZ<`C/
iHcL/mN0                                8 7Zend_Pdf_Action_Named=7 7Zend_Pdf_Action_Movie=6 9Zend_Pdf_Action_Launch=5 AZend_Pdf_Action_JavaScript=4 AZend_Pdf_Action_ImportData=3 5Zend_Pdf_Action_Hide=2 7Zend_Pdf_Action_GoToR=1 7Zend_Pdf_Action_GoToE=0 AZend_Pdf_Action_GoTo3DView=/ 5Zend_Pdf_Action_GoTo=. )Zend_Paginator=-- ]Zend_Paginator_SerializableLimitIterator=*, WZend_Paginator_ScrollingStyle_Sliding=*+ WZend_Paginator_ScrollingStyle_Jumping=** WZend_Paginator_ScrollingStyle_Elastic=&) OZend_Paginator_ScrollingStyle_All=( =Zend_Paginator_Exception= ' CZend_Paginator_Adapter_Null=$& KZend_Paginator_Adapter_Iterator=)% UZend_Paginator_Adapter_DbTableSelect=$$ KZend_Paginator_Adapter_DbSelect=!# EZend_Paginator_Adapter_Array=" #Zend_OpenId=! 5Zend_OpenId_Provider=  ?Zend_OpenId_Provider_User=& OZend_OpenId_Provider_User_Session=! EZend_OpenId_Provider_Storage=& OZend_OpenId_Provider_Storage_File= 7Zend_OpenId_Extension= AZend_OpenId_Extension_Sreg= 7Zend_OpenId_Exception= 5Zend_OpenId_Consumer=! EZend_OpenId_Consumer_Storage=& OZend_OpenId_Consumer_Storage_File= !Zend_Oauth= -Zend_Oauth_Token= =Zend_Oauth_Token_Request=' QZend_Oauth_Token_AuthorizedRequest= ;Zend_Oauth_Token_Access=+ YZend_Oauth_Signature_SignatureAbstract= =Zend_Oauth_Signature_Rsa=# IZend_Oauth_Signature_Plaintext= ?Zend_Oauth_Signature_Hmac= +Zend_Oauth_Http= ;Zend_Oauth_Http_Utility=& OZend_Oauth_Http_UserAuthorization=!
 EZend_Oauth_Http_RequestToken= 	 CZend_Oauth_Http_AccessToken= 5Zend_Oauth_Exception= 3Zend_Oauth_Consumer= /Zend_Oauth_Config= /Zend_Oauth_Client= +Zend_Navigation= 5Zend_Navigation_Page= =Zend_Navigation_Page_Uri= =Zend_Navigation_Page_Mvc=  ?Zend_Navigation_Exception= ?Zend_Navigation_Container=~ Zend_Mime=} )Zend_Mime_Part=| /Zend_Mime_Message={ 3Zend_Mime_Exception=z -Zend_Mime_Decode=y #Zend_Memory=x /Zend_Memory_Value=w 3Zend_Memory_Manager=v 7Zend_Memory_Exception=u 7Zend_Memory_Container="t GZend_Memory_Container_Movable=!s EZend_Memory_Container_Locked=!r EZend_Memory_AccessController=q 3Zend_Measure_Weight=p 3Zend_Measure_Volume=%o MZend_Measure_Viscosity_Kinematic=#n IZend_Measure_Viscosity_Dynamic=m 3Zend_Measure_Torque=l /Zend_Measure_Time=k =Zend_Measure_Temperature=j 1Zend_Measure_Speed=i 7Zend_Measure_Pressure=h 1Zend_Measure_Power=g 3Zend_Measure_Number=f 9Zend_Measure_Lightness=e 3Zend_Measure_Length=d ?Zend_Measure_Illumination=c 9Zend_Measure_Frequency=b 1Zend_Measure_Force=a =Zend_Measure_Flow_Volume=` 9Zend_Measure_Flow_Mole=_ 9Zend_Measure_Flow_Mass=^ 9Zend_Measure_Exception=] 3Zend_Measure_Energy=\ 5Zend_Measure_Density=[ 5Zend_Measure_Current= Z CZend_Measure_Cooking_Weight= Y CZend_Measure_Cooking_Volume=X =Zend_Measure_Capacitance=W 3Zend_Measure_Binary=V /Zend_Measure_Area=U 1Zend_Measure_Angle=T ?Zend_Measure_Acceleration=S 7Zend_Measure_Abstract=R #Zend_Markup=Q 7Zend_Markup_TokenList=P /Zend_Markup_Token=*O WZend_Markup_Renderer_RendererAbstract=N ?Zend_Markup_Renderer_Html="M GZend_Markup_Renderer_Html_Url=#L IZend_Markup_Renderer_Html_List="K GZend_Markup_Renderer_Html_Img=+J YZend_Markup_Renderer_Html_HtmlAbstract=#I IZend_Markup_Renderer_Html_Code=#H IZend_Markup_Renderer_Exception=G AZend_Markup_Parser_Textile=!F EZend_Markup_Parser_Exception=E ?Zend_Markup_Parser_Bbcode=D 7Zend_Markup_Exception=   e  zW8zW6oL6d8 sH% 




]
?
!
 				e	B	"|a.T'nJ(qY"V(S]i*                              7 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic=; yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic=5 mZend_Pdf_Resource_Font_Simple_Standard_TimesBold=2 gZend_Pdf_Resource_Font_Simple_Standard_Symbol=< {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaOblique=A Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique=9 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold=5 mZend_Pdf_Resource_Font_Simple_Standard_Helvetica=: wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique=> Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique=7 qZend_Pdf_Resource_Font_Simple_Standard_CourierBold=3 iZend_Pdf_Resource_Font_Simple_Standard_Courier=) UZend_Pdf_Resource_Font_Simple_Parsed=2 gZend_Pdf_Resource_Font_Simple_Parsed_TrueType=* WZend_Pdf_Resource_Font_FontDescriptor=% MZend_Pdf_Resource_Font_Extracted=# IZend_Pdf_Resource_Font_CidFont=, [Zend_Pdf_Resource_Font_CidFont_TrueType=  CZend_Pdf_Resource_Extractor=$
 KZend_Pdf_Resource_ContentStream=3	 iZend_Pdf_RecursivelyIteratableObjectsContainer= +Zend_Pdf_Parser= 'Zend_Pdf_Page= -Zend_Pdf_Outline= ;Zend_Pdf_Outline_Loaded= =Zend_Pdf_Outline_Created= /Zend_Pdf_NameTree= )Zend_Pdf_Image= 'Zend_Pdf_Font=  ?Zend_Pdf_Filter_RunLength=  CZend_Pdf_Filter_Compression=$~ KZend_Pdf_Filter_Compression_Lzw=&} OZend_Pdf_Filter_Compression_Flate=| =Zend_Pdf_Filter_AsciiHex={ ;Zend_Pdf_Filter_Ascii85="z GZend_Pdf_FileParserDataSource=)y UZend_Pdf_FileParserDataSource_String='x QZend_Pdf_FileParserDataSource_File=w 3Zend_Pdf_FileParser=v ?Zend_Pdf_FileParser_Image="u GZend_Pdf_FileParser_Image_Png=t =Zend_Pdf_FileParser_Font=&s OZend_Pdf_FileParser_Font_OpenType=/r aZend_Pdf_FileParser_Font_OpenType_TrueType=q 1Zend_Pdf_Exception=p ;Zend_Pdf_ElementFactory="o GZend_Pdf_ElementFactory_Proxy=n -Zend_Pdf_Element=m ;Zend_Pdf_Element_String=#l IZend_Pdf_Element_String_Binary=k ;Zend_Pdf_Element_Stream=j AZend_Pdf_Element_Reference=%i MZend_Pdf_Element_Reference_Table='h QZend_Pdf_Element_Reference_Context=g ;Zend_Pdf_Element_Object=#f IZend_Pdf_Element_Object_Stream=e =Zend_Pdf_Element_Numeric=d 7Zend_Pdf_Element_Null=c 7Zend_Pdf_Element_Name= b CZend_Pdf_Element_Dictionary=a =Zend_Pdf_Element_Boolean=` 9Zend_Pdf_Element_Array=_ 5Zend_Pdf_Destination=^ ?Zend_Pdf_Destination_Zoom=!] EZend_Pdf_Destination_Unknown=\ AZend_Pdf_Destination_Named='[ QZend_Pdf_Destination_FitVertically=&Z OZend_Pdf_Destination_FitRectangle=)Y UZend_Pdf_Destination_FitHorizontally=2X gZend_Pdf_Destination_FitBoundingBoxVertically=4W kZend_Pdf_Destination_FitBoundingBoxHorizontally=(V SZend_Pdf_Destination_FitBoundingBox=U =Zend_Pdf_Destination_Fit="T GZend_Pdf_Destination_Explicit=S )Zend_Pdf_Color=R 1Zend_Pdf_Color_Rgb=Q 3Zend_Pdf_Color_Html=P =Zend_Pdf_Color_GrayScale=O 3Zend_Pdf_Color_Cmyk=N 'Zend_Pdf_Cmap=M AZend_Pdf_Cmap_TrimmedTable=!L EZend_Pdf_Cmap_SegmentToDelta=K AZend_Pdf_Cmap_ByteEncoding=&J OZend_Pdf_Cmap_ByteEncoding_Static=I +Zend_Pdf_Canvas=H =Zend_Pdf_Canvas_Abstract=G 3Zend_Pdf_Annotation=F =Zend_Pdf_Annotation_Text=E AZend_Pdf_Annotation_Markup=D =Zend_Pdf_Annotation_Link='C QZend_Pdf_Annotation_FileAttachment=B +Zend_Pdf_Action=A 3Zend_Pdf_Action_URI=@ ;Zend_Pdf_Action_Unknown=? 7Zend_Pdf_Action_Trans=> 9Zend_Pdf_Action_Thread== AZend_Pdf_Action_SubmitForm=< 7Zend_Pdf_Action_Sound= ; CZend_Pdf_Action_SetOCGState=: ?Zend_Pdf_Action_ResetForm=9 ?Zend_Pdf_Action_Rendition=   c  [5[;hH/
}U4b> 




n
G
,
					f	:	rS1tW;# Fs:}P&s9	]4]+        '  QZend_Search_Lucene_Index_FieldInfo=( SZend_Search_Lucene_Index_DocsFilter=.~ _Zend_Search_Lucene_Index_DictionaryLoader=!} EZend_Search_Lucene_FSMAction=| 9Zend_Search_Lucene_FSM={ =Zend_Search_Lucene_Field=!z EZend_Search_Lucene_Exception= y CZend_Search_Lucene_Document=%x MZend_Search_Lucene_Document_Xlsx=%w MZend_Search_Lucene_Document_Pptx=(v SZend_Search_Lucene_Document_OpenXml=%u MZend_Search_Lucene_Document_Html=*t WZend_Search_Lucene_Document_Exception=%s MZend_Search_Lucene_Document_Docx=,r [Zend_Search_Lucene_Analysis_TokenFilter=6q oZend_Search_Lucene_Analysis_TokenFilter_StopWords=7p qZend_Search_Lucene_Analysis_TokenFilter_ShortWords=:o wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8=6n oZend_Search_Lucene_Analysis_TokenFilter_LowerCase=&m OZend_Search_Lucene_Analysis_Token=)l UZend_Search_Lucene_Analysis_Analyzer=0k cZend_Search_Lucene_Analysis_Analyzer_Common=8j sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num=Ii Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive=5h mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8=Fg Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive=8f sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum=Ie Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive=5d mZend_Search_Lucene_Analysis_Analyzer_Common_Text=Fc Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive=b 7Zend_Search_Exception=a -Zend_Rest_Server=` AZend_Rest_Server_Exception=_ +Zend_Rest_Route=^ 3Zend_Rest_Exception=] 5Zend_Rest_Controller=\ -Zend_Rest_Client=[ ;Zend_Rest_Client_Result=&Z OZend_Rest_Client_Result_Exception=Y AZend_Rest_Client_Exception=X 'Zend_Registry=W =Zend_Reflection_Property=V ?Zend_Reflection_Parameter=U 9Zend_Reflection_Method=T =Zend_Reflection_Function=S 5Zend_Reflection_File=R ?Zend_Reflection_Extension=Q ?Zend_Reflection_Exception=P =Zend_Reflection_Docblock=!O EZend_Reflection_Docblock_Tag=(N SZend_Reflection_Docblock_Tag_Return='M QZend_Reflection_Docblock_Tag_Param=L 7Zend_Reflection_Class=K !Zend_Queue=J 9Zend_Queue_Stomp_Frame=I ;Zend_Queue_Stomp_Client='H QZend_Queue_Stomp_Client_Connection=G 1Zend_Queue_Message=#F IZend_Queue_Message_PlatformJob= E CZend_Queue_Message_Iterator=D 5Zend_Queue_Exception=(C SZend_Queue_Adapter_PlatformJobQueue=B ;Zend_Queue_Adapter_Null=!A EZend_Queue_Adapter_Memcacheq=@ 7Zend_Queue_Adapter_Db= ? CZend_Queue_Adapter_Db_Queue="> GZend_Queue_Adapter_Db_Message== =Zend_Queue_Adapter_Array='< QZend_Queue_Adapter_AdapterAbstract= ; CZend_Queue_Adapter_Activemq=: -Zend_ProgressBar=9 AZend_ProgressBar_Exception=8 =Zend_ProgressBar_Adapter=$7 KZend_ProgressBar_Adapter_JsPush=$6 KZend_ProgressBar_Adapter_JsPull='5 QZend_ProgressBar_Adapter_Exception=%4 MZend_ProgressBar_Adapter_Console=3 Zend_Pdf=!2 EZend_Pdf_UpdateInfoContainer=1 -Zend_Pdf_Trailer=0 ;Zend_Pdf_Trailer_Keeper=/ AZend_Pdf_Trailer_Generator=. +Zend_Pdf_Target=- )Zend_Pdf_Style=, 7Zend_Pdf_StringParser=+ /Zend_Pdf_Resource=* ?Zend_Pdf_Resource_Unified=#) IZend_Pdf_Resource_ImageFactory=( ;Zend_Pdf_Resource_Image=!' EZend_Pdf_Resource_Image_Tiff= & CZend_Pdf_Resource_Image_Png=!% EZend_Pdf_Resource_Image_Jpeg=$$ KZend_Pdf_Resource_GraphicsState=# 9Zend_Pdf_Resource_Font=!" EZend_Pdf_Resource_Font_Type0="! GZend_Pdf_Resource_Font_Simple=+  YZend_Pdf_Resource_Font_Simple_Standard=8 sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats=6 oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman=   X  f*wO(m7uC`*



v
B
				U	'Y,i;zK#Z1eC+mH#|V2	x[6                                  1X eZend_Service_Amazon_Authentication_Exception=$W KZend_Service_Amazon_Accessories=!V EZend_Service_Amazon_Abstract=U 5Zend_Service_Akismet=T 7Zend_Service_Abstract=S 9Zend_Server_Reflection='R QZend_Server_Reflection_ReturnValue=%Q MZend_Server_Reflection_Prototype=%P MZend_Server_Reflection_Parameter= O CZend_Server_Reflection_Node="N GZend_Server_Reflection_Method=$M KZend_Server_Reflection_Function=-L ]Zend_Server_Reflection_Function_Abstract=%K MZend_Server_Reflection_Exception=!J EZend_Server_Reflection_Class=!I EZend_Server_Method_Prototype=!H EZend_Server_Method_Parameter="G GZend_Server_Method_Definition= F CZend_Server_Method_Callback=E 7Zend_Server_Exception=D 9Zend_Server_Definition=C /Zend_Server_Cache=B 5Zend_Server_Abstract=A +Zend_Serializer=@ ?Zend_Serializer_Exception=!? EZend_Serializer_Adapter_Wddx=)> UZend_Serializer_Adapter_PythonPickle=)= UZend_Serializer_Adapter_PhpSerialize=$< KZend_Serializer_Adapter_PhpCode=!; EZend_Serializer_Adapter_Json=%: MZend_Serializer_Adapter_Igbinary=!9 EZend_Serializer_Adapter_Amf3=!8 EZend_Serializer_Adapter_Amf0=,7 [Zend_Serializer_Adapter_AdapterAbstract=6 1Zend_Search_Lucene=05 cZend_Search_Lucene_TermStreamsPriorityQueue=$4 KZend_Search_Lucene_Storage_File=+3 YZend_Search_Lucene_Storage_File_Memory=/2 aZend_Search_Lucene_Storage_File_Filesystem=)1 UZend_Search_Lucene_Storage_Directory=40 kZend_Search_Lucene_Storage_Directory_Filesystem=%/ MZend_Search_Lucene_Search_Weight=*. WZend_Search_Lucene_Search_Weight_Term=,- [Zend_Search_Lucene_Search_Weight_Phrase=/, aZend_Search_Lucene_Search_Weight_MultiTerm=++ YZend_Search_Lucene_Search_Weight_Empty=-* ]Zend_Search_Lucene_Search_Weight_Boolean=)) UZend_Search_Lucene_Search_Similarity=1( eZend_Search_Lucene_Search_Similarity_Default=)' UZend_Search_Lucene_Search_QueryToken=3& iZend_Search_Lucene_Search_QueryParserException=1% eZend_Search_Lucene_Search_QueryParserContext=*$ WZend_Search_Lucene_Search_QueryParser=)# UZend_Search_Lucene_Search_QueryLexer='" QZend_Search_Lucene_Search_QueryHit=)! UZend_Search_Lucene_Search_QueryEntry=.  _Zend_Search_Lucene_Search_QueryEntry_Term=2 gZend_Search_Lucene_Search_QueryEntry_Subquery=0 cZend_Search_Lucene_Search_QueryEntry_Phrase=$ KZend_Search_Lucene_Search_Query=- ]Zend_Search_Lucene_Search_Query_Wildcard=) UZend_Search_Lucene_Search_Query_Term=* WZend_Search_Lucene_Search_Query_Range=2 gZend_Search_Lucene_Search_Query_Preprocessing=7 qZend_Search_Lucene_Search_Query_Preprocessing_Term=9 uZend_Search_Lucene_Search_Query_Preprocessing_Phrase=8 sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy=+ YZend_Search_Lucene_Search_Query_Phrase=. _Zend_Search_Lucene_Search_Query_MultiTerm=2 gZend_Search_Lucene_Search_Query_Insignificant=* WZend_Search_Lucene_Search_Query_Fuzzy=* WZend_Search_Lucene_Search_Query_Empty=, [Zend_Search_Lucene_Search_Query_Boolean=2 gZend_Search_Lucene_Search_Highlighter_Default=: wZend_Search_Lucene_Search_BooleanExpressionRecognizer= =Zend_Search_Lucene_Proxy=% MZend_Search_Lucene_PriorityQueue=/ aZend_Search_Lucene_Interface_MultiSearcher=#
 IZend_Search_Lucene_LockManager=$	 KZend_Search_Lucene_Index_Writer=0 cZend_Search_Lucene_Index_TermsPriorityQueue=& OZend_Search_Lucene_Index_TermInfo=" GZend_Search_Lucene_Index_Term=+ YZend_Search_Lucene_Index_SegmentWriter=8 sZend_Search_Lucene_Index_SegmentWriter_StreamWriter=: wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter=+ YZend_Search_Lucene_Index_SegmentMerger=) UZend_Search_Lucene_Index_SegmentInfo=   L  vK vL"pH!}W5[2



d
:
					]	4	Z%<p0n>j(YME                                                                              T$ )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequest=R# %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequest=Y" 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequest=Q! #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequest=Q  #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequest=a CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequest=N Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformation=L Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalance=J Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool=- ]Zend_Service_DeveloperGarden_LocalSearch=> Zend_Service_DeveloperGarden_LocalSearch_SearchParameters=7 qZend_Service_DeveloperGarden_LocalSearch_Exception=, [Zend_Service_DeveloperGarden_IpLocation=6 oZend_Service_DeveloperGarden_IpLocation_IpAddress=+ YZend_Service_DeveloperGarden_Exception=, [Zend_Service_DeveloperGarden_Credential=0 cZend_Service_DeveloperGarden_ConferenceCall=C Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatus=C Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail=< {Zend_Service_DeveloperGarden_ConferenceCall_Participant=: wZend_Service_DeveloperGarden_ConferenceCall_Exception=D 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceSchedule=B Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail=C Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount=- ]Zend_Service_DeveloperGarden_Client_Soap=2 gZend_Service_DeveloperGarden_Client_Exception=7
 qZend_Service_DeveloperGarden_Client_ClientAbstract=1	 eZend_Service_DeveloperGarden_BaseUserService=A Zend_Service_DeveloperGarden_BaseUserService_AccountBalance= 9Zend_Service_Delicious=& OZend_Service_Delicious_SimplePost=$ KZend_Service_Delicious_PostList=  CZend_Service_Delicious_Post=% MZend_Service_Delicious_Exception=  CZend_Service_Audioscrobbler= 3Zend_Service_Amazon=  ;Zend_Service_Amazon_Sqs=& OZend_Service_Amazon_Sqs_Exception=!~ EZend_Service_Amazon_SimpleDb=*} WZend_Service_Amazon_SimpleDb_Response=&| OZend_Service_Amazon_SimpleDb_Page=+{ YZend_Service_Amazon_SimpleDb_Exception=+z YZend_Service_Amazon_SimpleDb_Attribute='y QZend_Service_Amazon_SimilarProduct=x 9Zend_Service_Amazon_S3="w GZend_Service_Amazon_S3_Stream=%v MZend_Service_Amazon_S3_Exception="u GZend_Service_Amazon_ResultSet=t ?Zend_Service_Amazon_Query=!s EZend_Service_Amazon_OfferSet=r ?Zend_Service_Amazon_Offer=&q OZend_Service_Amazon_ListmaniaList=p =Zend_Service_Amazon_Item=o ?Zend_Service_Amazon_Image="n GZend_Service_Amazon_Exception=(m SZend_Service_Amazon_EditorialReview=l ;Zend_Service_Amazon_Ec2=+k YZend_Service_Amazon_Ec2_Securitygroups=%j MZend_Service_Amazon_Ec2_Response=#i IZend_Service_Amazon_Ec2_Region=$h KZend_Service_Amazon_Ec2_Keypair=%g MZend_Service_Amazon_Ec2_Instance=-f ]Zend_Service_Amazon_Ec2_Instance_Windows=.e _Zend_Service_Amazon_Ec2_Instance_Reserved="d GZend_Service_Amazon_Ec2_Image=&c OZend_Service_Amazon_Ec2_Exception=&b OZend_Service_Amazon_Ec2_Elasticip= a CZend_Service_Amazon_Ec2_Ebs='` QZend_Service_Amazon_Ec2_CloudWatch=._ _Zend_Service_Amazon_Ec2_Availabilityzones=%^ MZend_Service_Amazon_Ec2_Abstract='] QZend_Service_Amazon_CustomerReview='\ QZend_Service_Amazon_Authentication=*[ WZend_Service_Amazon_Authentication_V2=*Z WZend_Service_Amazon_Authentication_V1=*Y WZend_Service_Amazon_Authentication_S3=   /  =1!nT


~
1			u	/F{0dY96|e                                                                        ZS 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseType=VR -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponse=XQ 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseType=TP )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse=_O ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType=[N 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponse=WM /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType=SL 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponse=QK #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstract=SJ 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponse=JI Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType=gH OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseType=cG GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponse=WF /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse=UE +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponse=SD 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse=3C iZend_Service_DeveloperGarden_Response_BaseType=JB Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstract=CA Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCall=G@ Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced==? }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCall=A> Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatus=A= Zend_Service_DeveloperGarden_Request_SmsValidation_Validate=N< Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeyword=C; Zend_Service_DeveloperGarden_Request_SmsValidation_Invalidate=L: Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbers=B9 Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract=98 uZend_Service_DeveloperGarden_Request_SendSms_SendSMS=>7 Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS=96 uZend_Service_DeveloperGarden_Request_RequestAbstract=I5 Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequest=E4 Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest=33 iZend_Service_DeveloperGarden_Request_Exception=R2 %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequest=Y1 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequest=d0 IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequest=Q/ #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequest=R. %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequest=Y- 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequest=d, IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequest=Q+ #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequest=O* Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequest=U) +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequest=U( +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequest=V' -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequest=a& CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequest=Z% 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequest=   / v <jS:5

l
		Sd":Wx#~7IQi  v                K Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstract=L Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponse=P  !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponse=G Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponse=J~ Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponse=K} Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2Response=L| Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponse=I{ Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumber=Wz /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponse=Jy Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponse=Ux +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponse=Cw Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponse=Cv Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstract=Hu Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponse=Ut +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponse=Qs #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponse=Ir Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception=;q yZend_Service_DeveloperGarden_Response_ResponseAbstract=Op Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseType=Ko Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponse=An Zend_Service_DeveloperGarden_Response_IpLocation_RegionType=Km Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseType=Gl Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponse=Lk Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationType=Ij Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType=>i Zend_Service_DeveloperGarden_Response_IpLocation_CityType=4h kZend_Service_DeveloperGarden_Response_Exception=Tg )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse=[f 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponse=fe MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponse=Sd 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponse=Tc )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse=[b 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponse=fa MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponse=S` 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponse=U_ +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType=Q^ #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse=[] 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseType=W\ /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse=[[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseType=WZ /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse=\Y 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseType=XX 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponse=gW OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseType=cV GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse=`U AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType=\T 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponse=   Z  [(J~?uHW!



\
,				q	D	"	|T,eG}M%jE"yN iD]=X#                 *\ WZend_Service_Technorati_GetInfoResult=&[ OZend_Service_Technorati_Exception=1Z eZend_Service_Technorati_DailyCountsResultSet=.Y _Zend_Service_Technorati_DailyCountsResult=,X [Zend_Service_Technorati_CosmosResultSet=)W UZend_Service_Technorati_CosmosResult=+V YZend_Service_Technorati_BlogInfoResult=#U IZend_Service_Technorati_Author=T ;Zend_Service_StrikeIron=(S SZend_Service_StrikeIron_ZipCodeInfo=2R gZend_Service_StrikeIron_USAddressVerification=-Q ]Zend_Service_StrikeIron_SalesUseTaxBasic=&P OZend_Service_StrikeIron_Exception=&O OZend_Service_StrikeIron_Decorator=!N EZend_Service_StrikeIron_Base=M ;Zend_Service_SlideShare=&L OZend_Service_SlideShare_SlideShow=&K OZend_Service_SlideShare_Exception=J 1Zend_Service_Simpy=$I KZend_Service_Simpy_WatchlistSet=*H WZend_Service_Simpy_WatchlistFilterSet='G QZend_Service_Simpy_WatchlistFilter=!F EZend_Service_Simpy_Watchlist=E ?Zend_Service_Simpy_TagSet=D 9Zend_Service_Simpy_Tag=C AZend_Service_Simpy_NoteSet=B ;Zend_Service_Simpy_Note=A AZend_Service_Simpy_LinkSet=!@ EZend_Service_Simpy_LinkQuery=? ;Zend_Service_Simpy_Link=%> MZend_Service_ShortUrl_TinyUrlCom=&= OZend_Service_ShortUrl_MetamarkNet=!< EZend_Service_ShortUrl_JdemCz=; AZend_Service_ShortUrl_IsGd=$: KZend_Service_ShortUrl_Exception=,9 [Zend_Service_ShortUrl_AbstractShortener=8 9Zend_Service_ReCaptcha=$7 KZend_Service_ReCaptcha_Response=$6 KZend_Service_ReCaptcha_MailHide=.5 _Zend_Service_ReCaptcha_MailHide_Exception=%4 MZend_Service_ReCaptcha_Exception=3 7Zend_Service_Nirvanix=#2 IZend_Service_Nirvanix_Response=)1 UZend_Service_Nirvanix_Namespace_Imfs=)0 UZend_Service_Nirvanix_Namespace_Base=$/ KZend_Service_Nirvanix_Exception=. 7Zend_Service_LiveDocx=$- KZend_Service_LiveDocx_MailMerge=$, KZend_Service_LiveDocx_Exception=+ 3Zend_Service_Flickr="* GZend_Service_Flickr_ResultSet=) AZend_Service_Flickr_Result=( ?Zend_Service_Flickr_Image=' 9Zend_Service_Exception=& ?Zend_Service_Ebay_Finding=)% UZend_Service_Ebay_Finding_Storefront=+$ YZend_Service_Ebay_Finding_ShippingInfo=+# YZend_Service_Ebay_Finding_Set_Abstract=," [Zend_Service_Ebay_Finding_SellingStatus=)! UZend_Service_Ebay_Finding_SellerInfo=,  [Zend_Service_Ebay_Finding_Search_Result=* WZend_Service_Ebay_Finding_Search_Item=. _Zend_Service_Ebay_Finding_Search_Item_Set=0 cZend_Service_Ebay_Finding_Response_Keywords=- ]Zend_Service_Ebay_Finding_Response_Items=2 gZend_Service_Ebay_Finding_Response_Histograms=0 cZend_Service_Ebay_Finding_Response_Abstract=/ aZend_Service_Ebay_Finding_PaginationOutput=* WZend_Service_Ebay_Finding_ListingInfo=( SZend_Service_Ebay_Finding_Exception=, [Zend_Service_Ebay_Finding_Error_Message=) UZend_Service_Ebay_Finding_Error_Data=- ]Zend_Service_Ebay_Finding_Error_Data_Set=' QZend_Service_Ebay_Finding_Category=1 eZend_Service_Ebay_Finding_Category_Histogram=5 mZend_Service_Ebay_Finding_Category_Histogram_Set=; yZend_Service_Ebay_Finding_Category_Histogram_Container=% MZend_Service_Ebay_Finding_Aspect=) UZend_Service_Ebay_Finding_Aspect_Set=5 mZend_Service_Ebay_Finding_Aspect_Histogram_Value=9 uZend_Service_Ebay_Finding_Aspect_Histogram_Value_Set=9 uZend_Service_Ebay_Finding_Aspect_Histogram_Container='
 QZend_Service_Ebay_Finding_Abstract= 	 CZend_Service_Ebay_Exception= AZend_Service_Ebay_Abstract=+ YZend_Service_DeveloperGarden_VoiceCall=/ aZend_Service_DeveloperGarden_SmsValidation=) UZend_Service_DeveloperGarden_SendSms=5 mZend_Service_DeveloperGarden_SecurityTokenServer=; yZend_Service_DeveloperGarden_SecurityTokenServer_Cache=   L  T$tN']%l$>


_
			R	j4\Ig/}MzY2\6oH                         ( 1Zend_Service_Yahoo=$' KZend_Service_Yahoo_WebResultSet=!& EZend_Service_Yahoo_WebResult=&% OZend_Service_Yahoo_VideoResultSet=#$ IZend_Service_Yahoo_VideoResult=!# EZend_Service_Yahoo_ResultSet=" ?Zend_Service_Yahoo_Result=)! UZend_Service_Yahoo_PageDataResultSet=&  OZend_Service_Yahoo_PageDataResult=% MZend_Service_Yahoo_NewsResultSet=" GZend_Service_Yahoo_NewsResult=& OZend_Service_Yahoo_LocalResultSet=# IZend_Service_Yahoo_LocalResult=+ YZend_Service_Yahoo_InlinkDataResultSet=( SZend_Service_Yahoo_InlinkDataResult=& OZend_Service_Yahoo_ImageResultSet=# IZend_Service_Yahoo_ImageResult= =Zend_Service_Yahoo_Image=& OZend_Service_WindowsAzure_Storage=4 kZend_Service_WindowsAzure_Storage_TableInstance=7 qZend_Service_WindowsAzure_Storage_TableEntityQuery=2 gZend_Service_WindowsAzure_Storage_TableEntity=, [Zend_Service_WindowsAzure_Storage_Table=< {Zend_Service_WindowsAzure_Storage_StorageEntityAbstract=7 qZend_Service_WindowsAzure_Storage_SignedIdentifier=3 iZend_Service_WindowsAzure_Storage_QueueMessage=4 kZend_Service_WindowsAzure_Storage_QueueInstance=, [Zend_Service_WindowsAzure_Storage_Queue=9 uZend_Service_WindowsAzure_Storage_PageRegionInstance=4 kZend_Service_WindowsAzure_Storage_LeaseInstance=9
 uZend_Service_WindowsAzure_Storage_DynamicTableEntity=3	 iZend_Service_WindowsAzure_Storage_BlobInstance=4 kZend_Service_WindowsAzure_Storage_BlobContainer=+ YZend_Service_WindowsAzure_Storage_Blob=2 gZend_Service_WindowsAzure_Storage_Blob_Stream=; yZend_Service_WindowsAzure_Storage_BatchStorageAbstract=, [Zend_Service_WindowsAzure_Storage_Batch=- ]Zend_Service_WindowsAzure_SessionHandler=> Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract=1 eZend_Service_WindowsAzure_RetryPolicy_RetryN=2  gZend_Service_WindowsAzure_RetryPolicy_NoRetry=4 kZend_Service_WindowsAzure_RetryPolicy_Exception=(~ SZend_Service_WindowsAzure_Exception=J} Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscription=2| gZend_Service_WindowsAzure_Diagnostics_Manager=3{ iZend_Service_WindowsAzure_Diagnostics_LogLevel=4z kZend_Service_WindowsAzure_Diagnostics_Exception=Ny Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscription=Hx Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLog=Lw Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCounters=Kv Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstract=<u {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogs=At Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstance=Ds 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectories=Ur +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogs=Dq 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSources=8p sZend_Service_WindowsAzure_Credentials_SharedKeyLite=4o kZend_Service_WindowsAzure_Credentials_SharedKey=An Zend_Service_WindowsAzure_Credentials_SharedAccessSignature=4m kZend_Service_WindowsAzure_Credentials_Exception=>l Zend_Service_WindowsAzure_Credentials_CredentialsAbstract=k 5Zend_Service_Twitter= j CZend_Service_Twitter_Search=#i IZend_Service_Twitter_Exception=h ;Zend_Service_Technorati=#g IZend_Service_Technorati_Weblog="f GZend_Service_Technorati_Utils=*e WZend_Service_Technorati_TagsResultSet='d QZend_Service_Technorati_TagsResult=)c UZend_Service_Technorati_TagResultSet=&b OZend_Service_Technorati_TagResult=,a [Zend_Service_Technorati_SearchResultSet=)` UZend_Service_Technorati_SearchResult=&_ OZend_Service_Technorati_ResultSet=#^ IZend_Service_Technorati_Result=*] WZend_Service_Technorati_KeyInfoResult=   _  {P(~^;}U"zS(w\F,



g
3
				X	$m<u\@!yY? l@r(Q&DyD   ( SZend_Tool_Framework_Loader_Abstract=" GZend_Tool_Framework_Exception=' QZend_Tool_Framework_Client_Storage=1 eZend_Tool_Framework_Client_Storage_Directory=( SZend_Tool_Framework_Client_Response=D 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator=' QZend_Tool_Framework_Client_Request=(  SZend_Tool_Framework_Client_Manifest=9 uZend_Tool_Framework_Client_Interactive_InputResponse=8~ sZend_Tool_Framework_Client_Interactive_InputRequest=8} sZend_Tool_Framework_Client_Interactive_InputHandler=)| UZend_Tool_Framework_Client_Exception='{ QZend_Tool_Framework_Client_Console=Dz 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Indention=Dy 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizer=Cx Zend_Tool_Framework_Client_Console_ResponseDecorator_Blockize=Fw Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter=0v cZend_Tool_Framework_Client_Console_Manifest=2u gZend_Tool_Framework_Client_Console_HelpSystem=6t oZend_Tool_Framework_Client_Console_ArgumentParser=&s OZend_Tool_Framework_Client_Config=(r SZend_Tool_Framework_Client_Abstract=*q WZend_Tool_Framework_Action_Repository=)p UZend_Tool_Framework_Action_Exception=$o KZend_Tool_Framework_Action_Base=n 'Zend_TimeSync=m 1Zend_TimeSync_Sntp=l 9Zend_TimeSync_Protocol=k /Zend_TimeSync_Ntp=j ;Zend_TimeSync_Exception=i +Zend_Text_Table=h 3Zend_Text_Table_Row=g ?Zend_Text_Table_Exception=&f OZend_Text_Table_Decorator_Unicode=$e KZend_Text_Table_Decorator_Ascii=d 9Zend_Text_Table_Column=c 3Zend_Text_MultiByte=b -Zend_Text_Figlet=a AZend_Text_Figlet_Exception=` 3Zend_Text_Exception=&_ OZend_Test_PHPUnit_Db_SimpleTester=,^ [Zend_Test_PHPUnit_Db_Operation_Truncate=*] WZend_Test_PHPUnit_Db_Operation_Insert=-\ ]Zend_Test_PHPUnit_Db_Operation_DeleteAll=*[ WZend_Test_PHPUnit_Db_Metadata_Generic=#Z IZend_Test_PHPUnit_Db_Exception=,Y [Zend_Test_PHPUnit_Db_DataSet_QueryTable=.X _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet=0W cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet=)V UZend_Test_PHPUnit_Db_DataSet_DbTable=*U WZend_Test_PHPUnit_Db_DataSet_DbRowset=$T KZend_Test_PHPUnit_Db_Connection='S QZend_Test_PHPUnit_DatabaseTestCase=)R UZend_Test_PHPUnit_ControllerTestCase=0Q cZend_Test_PHPUnit_Constraint_ResponseHeader=*P WZend_Test_PHPUnit_Constraint_Redirect=+O YZend_Test_PHPUnit_Constraint_Exception=*N WZend_Test_PHPUnit_Constraint_DomQuery=M 7Zend_Test_DbStatement=L 3Zend_Test_DbAdapter=K /Zend_Tag_ItemList=J 'Zend_Tag_Item=I 1Zend_Tag_Exception=H )Zend_Tag_Cloud=G =Zend_Tag_Cloud_Exception=!F EZend_Tag_Cloud_Decorator_Tag=%E MZend_Tag_Cloud_Decorator_HtmlTag='D QZend_Tag_Cloud_Decorator_HtmlCloud='C QZend_Tag_Cloud_Decorator_Exception=#B IZend_Tag_Cloud_Decorator_Cloud=A )Zend_Soap_Wsdl=/@ aZend_Soap_Wsdl_Strategy_DefaultComplexType=&? OZend_Soap_Wsdl_Strategy_Composite=0> cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence=/= aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex=$< KZend_Soap_Wsdl_Strategy_AnyType=%; MZend_Soap_Wsdl_Strategy_Abstract=: =Zend_Soap_Wsdl_Exception=9 -Zend_Soap_Server=8 AZend_Soap_Server_Exception=7 -Zend_Soap_Client=6 9Zend_Soap_Client_Local=5 AZend_Soap_Client_Exception=4 ;Zend_Soap_Client_DotNet=3 ;Zend_Soap_Client_Common=2 9Zend_Soap_AutoDiscover=%1 MZend_Soap_AutoDiscover_Exception=0 %Zend_Session=)/ UZend_Session_Validator_HttpUserAgent=$. KZend_Session_Validator_Abstract='- QZend_Session_SaveHandler_Exception=%, MZend_Session_SaveHandler_DbTable=+ 9Zend_Session_Namespace=* 9Zend_Session_Exception=) 7Zend_Session_Abstract=   J  NW,xHc7g(



^
'				R	r7f0Y(a+MKm1~F                                        >Q Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile==P }Zend_Tool_Project_Context_Zf_TestApplicationActionMethod=4O kZend_Tool_Project_Context_Zf_TemporaryDirectory=3N iZend_Tool_Project_Context_Zf_SessionsDirectory=8M sZend_Tool_Project_Context_Zf_SearchIndexesDirectory=<L {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory=8K sZend_Tool_Project_Context_Zf_PublicScriptsDirectory=1J eZend_Tool_Project_Context_Zf_PublicIndexFile=7I qZend_Tool_Project_Context_Zf_PublicImagesDirectory=1H eZend_Tool_Project_Context_Zf_PublicDirectory=5G mZend_Tool_Project_Context_Zf_ProjectProviderFile=2F gZend_Tool_Project_Context_Zf_ModulesDirectory=1E eZend_Tool_Project_Context_Zf_ModuleDirectory=1D eZend_Tool_Project_Context_Zf_ModelsDirectory=+C YZend_Tool_Project_Context_Zf_ModelFile=/B aZend_Tool_Project_Context_Zf_LogsDirectory=2A gZend_Tool_Project_Context_Zf_LocalesDirectory=2@ gZend_Tool_Project_Context_Zf_LibraryDirectory=2? gZend_Tool_Project_Context_Zf_LayoutsDirectory=8> sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory=2= gZend_Tool_Project_Context_Zf_LayoutScriptFile=.< _Zend_Tool_Project_Context_Zf_HtaccessFile=0; cZend_Tool_Project_Context_Zf_FormsDirectory=*: WZend_Tool_Project_Context_Zf_FormFile=/9 aZend_Tool_Project_Context_Zf_DocsDirectory=-8 ]Zend_Tool_Project_Context_Zf_DbTableFile=27 gZend_Tool_Project_Context_Zf_DbTableDirectory=/6 aZend_Tool_Project_Context_Zf_DataDirectory=65 oZend_Tool_Project_Context_Zf_ControllersDirectory=04 cZend_Tool_Project_Context_Zf_ControllerFile=23 gZend_Tool_Project_Context_Zf_ConfigsDirectory=,2 [Zend_Tool_Project_Context_Zf_ConfigFile=01 cZend_Tool_Project_Context_Zf_CacheDirectory=/0 aZend_Tool_Project_Context_Zf_BootstrapFile=6/ oZend_Tool_Project_Context_Zf_ApplicationDirectory=7. qZend_Tool_Project_Context_Zf_ApplicationConfigFile=/- aZend_Tool_Project_Context_Zf_ApisDirectory=., _Zend_Tool_Project_Context_Zf_ActionMethod=3+ iZend_Tool_Project_Context_Zf_AbstractClassFile=@* Zend_Tool_Project_Context_System_ProjectProvidersDirectory=8) sZend_Tool_Project_Context_System_ProjectProfileFile=6( oZend_Tool_Project_Context_System_ProjectDirectory=)' UZend_Tool_Project_Context_Repository=.& _Zend_Tool_Project_Context_Filesystem_File=3% iZend_Tool_Project_Context_Filesystem_Directory=2$ gZend_Tool_Project_Context_Filesystem_Abstract=(# SZend_Tool_Project_Context_Exception=-" ]Zend_Tool_Project_Context_Content_Engine=3! iZend_Tool_Project_Context_Content_Engine_Phtml=;  yZend_Tool_Project_Context_Content_Engine_CodeGenerator=0 cZend_Tool_Framework_System_Provider_Version=0 cZend_Tool_Framework_System_Provider_Phpinfo=1 eZend_Tool_Framework_System_Provider_Manifest=/ aZend_Tool_Framework_System_Provider_Config=( SZend_Tool_Framework_System_Manifest=- ]Zend_Tool_Framework_System_Action_Delete=- ]Zend_Tool_Framework_System_Action_Create=! EZend_Tool_Framework_Registry=+ YZend_Tool_Framework_Registry_Exception=+ YZend_Tool_Framework_Provider_Signature=, [Zend_Tool_Framework_Provider_Repository=+ YZend_Tool_Framework_Provider_Exception=* WZend_Tool_Framework_Provider_Abstract=& OZend_Tool_Framework_Metadata_Tool=) UZend_Tool_Framework_Metadata_Dynamic=' QZend_Tool_Framework_Metadata_Basic=, [Zend_Tool_Framework_Manifest_Repository=2 gZend_Tool_Framework_Manifest_ProviderMetadata=* WZend_Tool_Framework_Manifest_Metadata=+ YZend_Tool_Framework_Manifest_Exception=0 cZend_Tool_Framework_Manifest_ActionMetadata=1
 eZend_Tool_Framework_Loader_IncludePathLoader=J	 Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator=+ YZend_Tool_Framework_Loader_BasicLoader=   X  s5l2{@W{;



@
				U	+vI!xM"zW0[<iM}X0}Z7rO+                                        !) EZend_Validate_Barcode_Planet=#( IZend_Validate_Barcode_Leitcode= ' CZend_Validate_Barcode_Itf14=& AZend_Validate_Barcode_Issn=*% WZend_Validate_Barcode_IntelligentMail=$$ KZend_Validate_Barcode_Identcode=!# EZend_Validate_Barcode_Gtin14=!" EZend_Validate_Barcode_Gtin13=!! EZend_Validate_Barcode_Gtin12=  AZend_Validate_Barcode_Ean8= AZend_Validate_Barcode_Ean5= AZend_Validate_Barcode_Ean2=  CZend_Validate_Barcode_Ean18=  CZend_Validate_Barcode_Ean14=  CZend_Validate_Barcode_Ean13=  CZend_Validate_Barcode_Ean12=$ KZend_Validate_Barcode_Code93ext=! EZend_Validate_Barcode_Code93=$ KZend_Validate_Barcode_Code39ext=! EZend_Validate_Barcode_Code39=, [Zend_Validate_Barcode_Code25interleaved=! EZend_Validate_Barcode_Code25=* WZend_Validate_Barcode_AdapterAbstract= 3Zend_Validate_Alpha= 3Zend_Validate_Alnum= 9Zend_Validate_Abstract= Zend_Uri= 'Zend_Uri_Http= 1Zend_Uri_Exception= )Zend_Translate= 7Zend_Translate_Plural=
 =Zend_Translate_Exception=	 9Zend_Translate_Adapter=! EZend_Translate_Adapter_XmlTm=! EZend_Translate_Adapter_Xliff= AZend_Translate_Adapter_Tmx= AZend_Translate_Adapter_Tbx= ?Zend_Translate_Adapter_Qt= AZend_Translate_Adapter_Ini=# IZend_Translate_Adapter_Gettext= AZend_Translate_Adapter_Csv=!  EZend_Translate_Adapter_Array=$ KZend_Tool_Project_Provider_View=$~ KZend_Tool_Project_Provider_Test=/} aZend_Tool_Project_Provider_ProjectProvider='| QZend_Tool_Project_Provider_Project='{ QZend_Tool_Project_Provider_Profile=&z OZend_Tool_Project_Provider_Module=%y MZend_Tool_Project_Provider_Model=(x SZend_Tool_Project_Provider_Manifest=&w OZend_Tool_Project_Provider_Layout=$v KZend_Tool_Project_Provider_Form=)u UZend_Tool_Project_Provider_Exception='t QZend_Tool_Project_Provider_DbTable=)s UZend_Tool_Project_Provider_DbAdapter=*r WZend_Tool_Project_Provider_Controller=+q YZend_Tool_Project_Provider_Application=&p OZend_Tool_Project_Provider_Action=(o SZend_Tool_Project_Provider_Abstract=n ?Zend_Tool_Project_Profile='m QZend_Tool_Project_Profile_Resource=9l uZend_Tool_Project_Profile_Resource_SearchConstraints=1k eZend_Tool_Project_Profile_Resource_Container==j }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter=5i mZend_Tool_Project_Profile_Iterator_ContextFilter=-h ]Zend_Tool_Project_Profile_FileParser_Xml=(g SZend_Tool_Project_Profile_Exception= f CZend_Tool_Project_Exception=<e {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory=0d cZend_Tool_Project_Context_Zf_ViewsDirectory=6c oZend_Tool_Project_Context_Zf_ViewScriptsDirectory=0b cZend_Tool_Project_Context_Zf_ViewScriptFile=6a oZend_Tool_Project_Context_Zf_ViewHelpersDirectory=6` oZend_Tool_Project_Context_Zf_ViewFiltersDirectory=A_ Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory=2^ gZend_Tool_Project_Context_Zf_UploadsDirectory=0] cZend_Tool_Project_Context_Zf_TestsDirectory=7\ qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile=:[ wZend_Tool_Project_Context_Zf_TestPHPUnitBootstrapFile=@Z Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory=1Y eZend_Tool_Project_Context_Zf_TestLibraryFile=6X oZend_Tool_Project_Context_Zf_TestLibraryDirectory=:W wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFile=BV Zend_Tool_Project_Context_Zf_TestApplicationModulesDirectory=AU Zend_Tool_Project_Context_Zf_TestApplicationModuleDirectory=:T wZend_Tool_Project_Context_Zf_TestApplicationDirectory=@S Zend_Tool_Project_Context_Zf_TestApplicationControllerFile=ER Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory=   n lI+tL&	X-|T1gB&




r
X
?
$
					\	:	lL+	d@hEhD"rO,|U/d;tO                                                   4 kZend_View_Helper_Placeholder_Container_Abstract=! EZend_View_Helper_PartialLoop= =Zend_View_Helper_Partial=' QZend_View_Helper_Partial_Exception=' QZend_View_Helper_PaginationControl=  CZend_View_Helper_Navigation=( SZend_View_Helper_Navigation_Sitemap=% MZend_View_Helper_Navigation_Menu=& OZend_View_Helper_Navigation_Links=/ aZend_View_Helper_Navigation_HelperAbstract=, [Zend_View_Helper_Navigation_Breadcrumbs= ;Zend_View_Helper_Layout= 7Zend_View_Helper_Json="
 GZend_View_Helper_InlineScript=#	 IZend_View_Helper_HtmlQuicktime= ?Zend_View_Helper_HtmlPage=  CZend_View_Helper_HtmlObject= ?Zend_View_Helper_HtmlList= AZend_View_Helper_HtmlFlash=! EZend_View_Helper_HtmlElement= AZend_View_Helper_HeadTitle= AZend_View_Helper_HeadStyle=  CZend_View_Helper_HeadScript=  ?Zend_View_Helper_HeadMeta= ?Zend_View_Helper_HeadLink=~ ?Zend_View_Helper_Gravatar="} GZend_View_Helper_FormTextarea=| ?Zend_View_Helper_FormText= { CZend_View_Helper_FormSubmit= z CZend_View_Helper_FormSelect=y AZend_View_Helper_FormReset=x AZend_View_Helper_FormRadio="w GZend_View_Helper_FormPassword=v ?Zend_View_Helper_FormNote='u QZend_View_Helper_FormMultiCheckbox=t AZend_View_Helper_FormLabel=s AZend_View_Helper_FormImage= r CZend_View_Helper_FormHidden=q ?Zend_View_Helper_FormFile= p CZend_View_Helper_FormErrors=!o EZend_View_Helper_FormElement="n GZend_View_Helper_FormCheckbox= m CZend_View_Helper_FormButton=l 7Zend_View_Helper_Form=k ?Zend_View_Helper_Fieldset=j =Zend_View_Helper_Doctype=!i EZend_View_Helper_DeclareVars=h 9Zend_View_Helper_Cycle=g ?Zend_View_Helper_Currency=f =Zend_View_Helper_BaseUrl=e ;Zend_View_Helper_Action=d ?Zend_View_Helper_Abstract=c 3Zend_View_Exception=b 1Zend_View_Abstract=a %Zend_Version=` 'Zend_Validate=_ AZend_Validate_StringLength=#^ IZend_Validate_Sitemap_Priority=] ?Zend_Validate_Sitemap_Loc="\ GZend_Validate_Sitemap_Lastmod=%[ MZend_Validate_Sitemap_Changefreq=Z 3Zend_Validate_Regex=Y 9Zend_Validate_PostCode=X 9Zend_Validate_NotEmpty=W 9Zend_Validate_LessThan=V 1Zend_Validate_Isbn=U -Zend_Validate_Ip=T /Zend_Validate_Int=S 7Zend_Validate_InArray=R ;Zend_Validate_Identical=Q 1Zend_Validate_Iban=P 9Zend_Validate_Hostname=O /Zend_Validate_Hex=N ?Zend_Validate_GreaterThan=M 3Zend_Validate_Float=!L EZend_Validate_File_WordCount=K ?Zend_Validate_File_Upload=J ;Zend_Validate_File_Size=I ;Zend_Validate_File_Sha1=!H EZend_Validate_File_NotExists= G CZend_Validate_File_MimeType=F 9Zend_Validate_File_Md5=E AZend_Validate_File_IsImage=$D KZend_Validate_File_IsCompressed=!C EZend_Validate_File_ImageSize=B ;Zend_Validate_File_Hash=!A EZend_Validate_File_FilesSize=!@ EZend_Validate_File_Extension=? ?Zend_Validate_File_Exists='> QZend_Validate_File_ExcludeMimeType=(= SZend_Validate_File_ExcludeExtension=< =Zend_Validate_File_Crc32=; =Zend_Validate_File_Count=: ;Zend_Validate_Exception=9 AZend_Validate_EmailAddress=8 5Zend_Validate_Digits="7 GZend_Validate_Db_RecordExists=$6 KZend_Validate_Db_NoRecordExists=5 ?Zend_Validate_Db_Abstract=4 1Zend_Validate_Date=3 =Zend_Validate_CreditCard=2 3Zend_Validate_Ccnum=1 9Zend_Validate_Callback=0 7Zend_Validate_Between=/ 7Zend_Validate_Barcode=. AZend_Validate_Barcode_Upce=- AZend_Validate_Barcode_Upca=, AZend_Validate_Barcode_Sscc=$+ KZend_Validate_Barcode_Royalmail="* GZend_Validate_Barcode_Postnet=   i  ^&b?"]+d5b2





l
K
&
					b	@	sR1ycR6qJ!b6u[9!d0sB nC                 +  YZend_Application_Resource_Cachemanager>& OZend_Application_Module_Bootstrap>'~ QZend_Application_Module_Autoloader>} AZend_Application_Exception>)| UZend_Application_Bootstrap_Exception>1{ eZend_Application_Bootstrap_BootstrapAbstract>)z UZend_Application_Bootstrap_Bootstrap>y ?Zend_Amf_Value_TraitsInfo>-x ]Zend_Amf_Value_Messaging_RemotingMessage>*w WZend_Amf_Value_Messaging_ErrorMessage>,v [Zend_Amf_Value_Messaging_CommandMessage>*u WZend_Amf_Value_Messaging_AsyncMessage>-t ]Zend_Amf_Value_Messaging_ArrayCollection>0s cZend_Amf_Value_Messaging_AcknowledgeMessage>-r ]Zend_Amf_Value_Messaging_AbstractMessage>!q EZend_Amf_Value_MessageHeader>p AZend_Amf_Value_MessageBody>o =Zend_Amf_Value_ByteArray>n AZend_Amf_Util_BinaryStream>m +Zend_Amf_Server>l ?Zend_Amf_Server_Exception>k /Zend_Amf_Response>j 9Zend_Amf_Response_Http>i -Zend_Amf_Request>h 7Zend_Amf_Request_Http>g ?Zend_Amf_Parse_TypeLoader>f ?Zend_Amf_Parse_Serializer>#e IZend_Amf_Parse_Resource_Stream>(d SZend_Amf_Parse_Resource_MysqlResult>)c UZend_Amf_Parse_Resource_MysqliResult> b CZend_Amf_Parse_OutputStream>a AZend_Amf_Parse_InputStream> ` CZend_Amf_Parse_Deserializer>#_ IZend_Amf_Parse_Amf3_Serializer>%^ MZend_Amf_Parse_Amf3_Deserializer>#] IZend_Amf_Parse_Amf0_Serializer>%\ MZend_Amf_Parse_Amf0_Deserializer>[ 1Zend_Amf_Exception>Z 1Zend_Amf_Constants>Y 9Zend_Amf_Auth_Abstract> X CZend_Amf_Adobe_Introspector>W AZend_Amf_Adobe_DbInspector>V 3Zend_Amf_Adobe_Auth>U Zend_Acl>T 'Zend_Acl_Role>S 9Zend_Acl_Role_Registry>%R MZend_Acl_Role_Registry_Exception>Q /Zend_Acl_Resource>P 1Zend_Acl_Exception>O /Zend_XmlRpc_Value=N =Zend_XmlRpc_Value_Struct=M =Zend_XmlRpc_Value_String=L =Zend_XmlRpc_Value_Scalar=K 7Zend_XmlRpc_Value_Nil=J ?Zend_XmlRpc_Value_Integer= I CZend_XmlRpc_Value_Exception=H =Zend_XmlRpc_Value_Double=G AZend_XmlRpc_Value_DateTime=!F EZend_XmlRpc_Value_Collection=E ?Zend_XmlRpc_Value_Boolean=!D EZend_XmlRpc_Value_BigInteger=C =Zend_XmlRpc_Value_Base64=B ;Zend_XmlRpc_Value_Array=A 1Zend_XmlRpc_Server=@ ?Zend_XmlRpc_Server_System=? =Zend_XmlRpc_Server_Fault=!> EZend_XmlRpc_Server_Exception== =Zend_XmlRpc_Server_Cache=< 5Zend_XmlRpc_Response=; ?Zend_XmlRpc_Response_Http=: 3Zend_XmlRpc_Request=9 ?Zend_XmlRpc_Request_Stdin=8 =Zend_XmlRpc_Request_Http=$7 KZend_XmlRpc_Generator_XmlWriter=,6 [Zend_XmlRpc_Generator_GeneratorAbstract=&5 OZend_XmlRpc_Generator_DomDocument=4 /Zend_XmlRpc_Fault=3 7Zend_XmlRpc_Exception=2 1Zend_XmlRpc_Client=#1 IZend_XmlRpc_Client_ServerProxy=+0 YZend_XmlRpc_Client_ServerIntrospection=+/ YZend_XmlRpc_Client_IntrospectException=%. MZend_XmlRpc_Client_HttpException=&- OZend_XmlRpc_Client_FaultException=!, EZend_XmlRpc_Client_Exception=&+ OZend_Wildfire_Protocol_JsonStream=!* EZend_Wildfire_Plugin_FirePhp=.) _Zend_Wildfire_Plugin_FirePhp_TableMessage=)( UZend_Wildfire_Plugin_FirePhp_Message=' ;Zend_Wildfire_Exception=&& OZend_Wildfire_Channel_HttpHeaders=% Zend_View=$ -Zend_View_Stream=# AZend_View_Helper_UserAgent=" 5Zend_View_Helper_Url=! AZend_View_Helper_Translate=  =Zend_View_Helper_TinySrc= AZend_View_Helper_ServerUrl=) UZend_View_Helper_RenderToPlaceholder=! EZend_View_Helper_Placeholder=* WZend_View_Helper_Placeholder_Registry=4 kZend_View_Helper_Placeholder_Registry_Exception=+ YZend_View_Helper_Placeholder_Container=6 oZend_View_Helper_Placeholder_Container_Standalone=5 mZend_View_Helper_Placeholder_Container_Exception=   W  hAuEW$lI)uN%




]
<
				]	&f<{> ~RM~Ma/V7b?       4@ kZend_Application_Bootstrap_ResourceBootstrapper>,? [Zend_Application_Bootstrap_Bootstrapper>> ;Zend_Acl_Role_Interface> = CZend_Acl_Resource_Interface>< ?Zend_Acl_Assert_Interface>#; IZend_Wildfire_Plugin_Interface=$: KZend_Wildfire_Channel_Interface=9 3Zend_View_Interface='8 QZend_View_Helper_Navigation_Helper=7 AZend_View_Helper_Interface=6 ;Zend_Validate_Interface=+5 YZend_Validate_Barcode_AdapterInterface=34 iZend_Tool_Project_Profile_FileParser_Interface=:3 wZend_Tool_Project_Context_System_TopLevelRestrictable=52 mZend_Tool_Project_Context_System_NotOverwritable=/1 aZend_Tool_Project_Context_System_Interface=(0 SZend_Tool_Project_Context_Interface=+/ YZend_Tool_Framework_Registry_Interface=2. gZend_Tool_Framework_Registry_EnabledInterface=-- ]Zend_Tool_Framework_Provider_Pretendable=+, YZend_Tool_Framework_Provider_Interface=.+ _Zend_Tool_Framework_Provider_Interactable=/* aZend_Tool_Framework_Provider_Initializable=;) yZend_Tool_Framework_Provider_DocblockManifestInterface=+( YZend_Tool_Framework_Metadata_Interface=.' _Zend_Tool_Framework_Metadata_Attributable=6& oZend_Tool_Framework_Manifest_ProviderManifestable=6% oZend_Tool_Framework_Manifest_MetadataManifestable=+$ YZend_Tool_Framework_Manifest_Interface=+# YZend_Tool_Framework_Manifest_Indexable=4" kZend_Tool_Framework_Manifest_ActionManifestable=)! UZend_Tool_Framework_Loader_Interface=8  sZend_Tool_Framework_Client_Storage_AdapterInterface=D 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface=; yZend_Tool_Framework_Client_Interactive_OutputInterface=: wZend_Tool_Framework_Client_Interactive_InputInterface=) UZend_Tool_Framework_Action_Interface=( SZend_Text_Table_Decorator_Interface= /Zend_Tag_Taggable=& OZend_Soap_Wsdl_Strategy_Interface=% MZend_Session_Validator_Interface=' QZend_Session_SaveHandler_Interface=$ KZend_Service_ShortUrl_Shortener=I Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Interface= 7Zend_Server_Interface=- ]Zend_Serializer_Adapter_AdapterInterface=4 kZend_Search_Lucene_Search_Highlighter_Interface=! EZend_Search_Lucene_Interface=3 iZend_Search_Lucene_Index_TermsStream_Interface=$ KZend_Queue_Stomp_FrameInterface=0 cZend_Queue_Stomp_Client_ConnectionInterface=( SZend_Queue_Adapter_AdapterInterface= ?Zend_Pdf_Filter_Interface=& OZend_Pdf_ElementFactory_Interface=
 ?Zend_Pdf_Canvas_Interface=,	 [Zend_Paginator_ScrollingStyle_Interface=$ KZend_Paginator_AdapterAggregate=% MZend_Paginator_Adapter_Interface=& OZend_Oauth_Config_ConfigInterface=$ KZend_Memory_Container_Interface=1 eZend_Markup_Renderer_TokenConverterInterface=' QZend_Markup_Parser_ParserInterface=) UZend_Mail_Storage_Writable_Interface=' QZend_Mail_Storage_Folder_Interface=  =Zend_Mail_Part_Interface=  CZend_Mail_Message_Interface=!~ EZend_Log_Formatter_Interface=} ?Zend_Log_Filter_Interface=| ?Zend_Log_FactoryInterface='{ QZend_Loader_PluginLoader_Interface=%z MZend_Loader_Autoloader_Interface=0y cZend_Ldap_Node_Schema_ObjectClass_Interface=2x gZend_Ldap_Node_Schema_AttributeType_Interface=3w iZend_InfoCard_Xml_Security_Transform_Interface=(v SZend_InfoCard_Xml_KeyInfo_Interface=(u SZend_InfoCard_Xml_Element_Interface=*t WZend_InfoCard_Xml_Assertion_Interface=-s ]Zend_InfoCard_Cipher_Symmetric_Interface=7r qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface=7q qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interface=+p YZend_InfoCard_Cipher_Pki_Rsa_Interface='o QZend_InfoCard_Cipher_Pki_Interface=$n KZend_InfoCard_Adapter_Interface= m CZend_Http_UserAgent_Storage=)l UZend_Http_UserAgent_Features_Adapter=k AZend_Http_UserAgent_Device=$j KZend_Http_Client_Adapter_Stream=   h V-c6X1R3wO-




d
B
!
 				q	O	*qP(|]8gB}W<${X7	`F#z<|Q(                                                   h 5Zend_Cloud_Exception>%g MZend_Cloud_DocumentService_Query>'f QZend_Cloud_DocumentService_Factory>)e UZend_Cloud_DocumentService_Exception>+d YZend_Cloud_DocumentService_DocumentSet>(c SZend_Cloud_DocumentService_Document>4b kZend_Cloud_DocumentService_Adapter_WindowsAzure>:a wZend_Cloud_DocumentService_Adapter_WindowsAzure_Query>0` cZend_Cloud_DocumentService_Adapter_SimpleDb>6_ oZend_Cloud_DocumentService_Adapter_SimpleDb_Query>7^ qZend_Cloud_DocumentService_Adapter_AbstractAdapter>] AZend_Cloud_AbstractFactory>\ /Zend_Captcha_Word>[ 9Zend_Captcha_ReCaptcha>Z 1Zend_Captcha_Image>Y 3Zend_Captcha_Figlet>X 9Zend_Captcha_Exception>W /Zend_Captcha_Dumb>V /Zend_Captcha_Base>U !Zend_Cache>T 1Zend_Cache_Manager>S =Zend_Cache_Frontend_Page>R AZend_Cache_Frontend_Output>!Q EZend_Cache_Frontend_Function>P =Zend_Cache_Frontend_File>O ?Zend_Cache_Frontend_Class> N CZend_Cache_Frontend_Capture>M 5Zend_Cache_Exception>L +Zend_Cache_Core>K 1Zend_Cache_Backend>"J GZend_Cache_Backend_ZendServer>(I SZend_Cache_Backend_ZendServer_ShMem>'H QZend_Cache_Backend_ZendServer_Disk>$G KZend_Cache_Backend_ZendPlatform>F ?Zend_Cache_Backend_Xcache> E CZend_Cache_Backend_WinCache>!D EZend_Cache_Backend_TwoLevels>C ;Zend_Cache_Backend_Test>B ?Zend_Cache_Backend_Static>A ?Zend_Cache_Backend_Sqlite>!@ EZend_Cache_Backend_Memcached>$? KZend_Cache_Backend_Libmemcached>> ;Zend_Cache_Backend_File>!= EZend_Cache_Backend_BlackHole>< 9Zend_Cache_Backend_Apc>; %Zend_Barcode>: ?Zend_Barcode_Renderer_Svg>+9 YZend_Barcode_Renderer_RendererAbstract>8 ?Zend_Barcode_Renderer_Pdf> 7 CZend_Barcode_Renderer_Image>$6 KZend_Barcode_Renderer_Exception>5 =Zend_Barcode_Object_Upce>4 =Zend_Barcode_Object_Upca>"3 GZend_Barcode_Object_Royalmail> 2 CZend_Barcode_Object_Postnet>1 AZend_Barcode_Object_Planet>'0 QZend_Barcode_Object_ObjectAbstract>!/ EZend_Barcode_Object_Leitcode>. ?Zend_Barcode_Object_Itf14>"- GZend_Barcode_Object_Identcode>", GZend_Barcode_Object_Exception>+ ?Zend_Barcode_Object_Error>* =Zend_Barcode_Object_Ean8>) =Zend_Barcode_Object_Ean5>( =Zend_Barcode_Object_Ean2>' ?Zend_Barcode_Object_Ean13>& AZend_Barcode_Object_Code39>*% WZend_Barcode_Object_Code25interleaved>$ AZend_Barcode_Object_Code25> # CZend_Barcode_Object_Code128>" 9Zend_Barcode_Exception>! Zend_Auth>  ?Zend_Auth_Storage_Session>$ KZend_Auth_Storage_NonPersistent>  CZend_Auth_Storage_Exception> -Zend_Auth_Result> 3Zend_Auth_Exception> =Zend_Auth_Adapter_OpenId> 9Zend_Auth_Adapter_Ldap> AZend_Auth_Adapter_InfoCard> 9Zend_Auth_Adapter_Http>) UZend_Auth_Adapter_Http_Resolver_File>. _Zend_Auth_Adapter_Http_Resolver_Exception>  CZend_Auth_Adapter_Exception> =Zend_Auth_Adapter_Digest> ?Zend_Auth_Adapter_DbTable> -Zend_Application># IZend_Application_Resource_View>( SZend_Application_Resource_UserAgent>( SZend_Application_Resource_Translate>& OZend_Application_Resource_Session>% MZend_Application_Resource_Router>/ aZend_Application_Resource_ResourceAbstract>) UZend_Application_Resource_Navigation>&
 OZend_Application_Resource_Multidb>&	 OZend_Application_Resource_Modules># IZend_Application_Resource_Mail>" GZend_Application_Resource_Log>% MZend_Application_Resource_Locale>% MZend_Application_Resource_Layout>. _Zend_Application_Resource_Frontcontroller>( SZend_Application_Resource_Exception># IZend_Application_Resource_Dojo>! EZend_Application_Resource_Db>   \  j5^)f<NlH



d
/
					o	P	0	kO&W K X,fH yP&Y4	d=                                     'D QZend_Controller_Router_Route_Chain>*C WZend_Controller_Router_Route_Abstract>#B IZend_Controller_Router_Rewrite>%A MZend_Controller_Router_Exception>$@ KZend_Controller_Router_Abstract>*? WZend_Controller_Response_HttpTestCase>"> GZend_Controller_Response_Http>'= QZend_Controller_Response_Exception>!< EZend_Controller_Response_Cli>&; OZend_Controller_Response_Abstract>#: IZend_Controller_Request_Simple>)9 UZend_Controller_Request_HttpTestCase>!8 EZend_Controller_Request_Http>&7 OZend_Controller_Request_Exception>&6 OZend_Controller_Request_Apache404>%5 MZend_Controller_Request_Abstract>&4 OZend_Controller_Plugin_PutHandler>(3 SZend_Controller_Plugin_ErrorHandler>"2 GZend_Controller_Plugin_Broker>'1 QZend_Controller_Plugin_ActionStack>$0 KZend_Controller_Plugin_Abstract>/ 7Zend_Controller_Front>. ?Zend_Controller_Exception>(- SZend_Controller_Dispatcher_Standard>), UZend_Controller_Dispatcher_Exception>(+ SZend_Controller_Dispatcher_Abstract>* 9Zend_Controller_Action>() SZend_Controller_Action_HelperBroker>6( oZend_Controller_Action_HelperBroker_PriorityStack>/' aZend_Controller_Action_Helper_ViewRenderer>&& OZend_Controller_Action_Helper_Url>-% ]Zend_Controller_Action_Helper_Redirector>'$ QZend_Controller_Action_Helper_Json>1# eZend_Controller_Action_Helper_FlashMessenger>0" cZend_Controller_Action_Helper_ContextSwitch>(! SZend_Controller_Action_Helper_Cache><  {Zend_Controller_Action_Helper_AutoCompleteScriptaculous>3 iZend_Controller_Action_Helper_AutoCompleteDojo>8 sZend_Controller_Action_Helper_AutoComplete_Abstract>. _Zend_Controller_Action_Helper_AjaxContext>. _Zend_Controller_Action_Helper_ActionStack>+ YZend_Controller_Action_Helper_Abstract>% MZend_Controller_Action_Exception> 3Zend_Console_Getopt>" GZend_Console_Getopt_Exception> #Zend_Config> -Zend_Config_Yaml> +Zend_Config_Xml> 1Zend_Config_Writer> ;Zend_Config_Writer_Yaml> 9Zend_Config_Writer_Xml> ;Zend_Config_Writer_Json> 9Zend_Config_Writer_Ini>$ KZend_Config_Writer_FileAbstract> =Zend_Config_Writer_Array> -Zend_Config_Json> +Zend_Config_Ini> 7Zend_Config_Exception>$
 KZend_CodeGenerator_Php_Property>1	 eZend_CodeGenerator_Php_Property_DefaultValue>% MZend_CodeGenerator_Php_Parameter>2 gZend_CodeGenerator_Php_Parameter_DefaultValue>" GZend_CodeGenerator_Php_Method>, [Zend_CodeGenerator_Php_Member_Container>+ YZend_CodeGenerator_Php_Member_Abstract>  CZend_CodeGenerator_Php_File>% MZend_CodeGenerator_Php_Exception>$ KZend_CodeGenerator_Php_Docblock>(  SZend_CodeGenerator_Php_Docblock_Tag>/ aZend_CodeGenerator_Php_Docblock_Tag_Return>.~ _Zend_CodeGenerator_Php_Docblock_Tag_Param>0} cZend_CodeGenerator_Php_Docblock_Tag_License>!| EZend_CodeGenerator_Php_Class> { CZend_CodeGenerator_Php_Body>$z KZend_CodeGenerator_Php_Abstract>!y EZend_CodeGenerator_Exception> x CZend_CodeGenerator_Abstract>&w OZend_Cloud_StorageService_Factory>(v SZend_Cloud_StorageService_Exception>3u iZend_Cloud_StorageService_Adapter_WindowsAzure>)t UZend_Cloud_StorageService_Adapter_S3>/s aZend_Cloud_StorageService_Adapter_Nirvanix>1r eZend_Cloud_StorageService_Adapter_FileSystem>'q QZend_Cloud_QueueService_MessageSet>$p KZend_Cloud_QueueService_Message>$o KZend_Cloud_QueueService_Factory>&n OZend_Cloud_QueueService_Exception>.m _Zend_Cloud_QueueService_Adapter_ZendQueue>1l eZend_Cloud_QueueService_Adapter_WindowsAzure>(k SZend_Cloud_QueueService_Adapter_Sqs>4j kZend_Cloud_QueueService_Adapter_AbstractAdapter>.i _Zend_Cloud_OperationNotAvailableException>   m {O*]0	hF+ygF qR-	




a
?
						a	B	)	\;bA'f@bK/n>W3c>b5                                    +1 YZend_Dojo_Form_Element_PasswordTextBox>)0 UZend_Dojo_Form_Element_NumberTextBox>)/ UZend_Dojo_Form_Element_NumberSpinner>,. [Zend_Dojo_Form_Element_HorizontalSlider>+- YZend_Dojo_Form_Element_FilteringSelect>", GZend_Dojo_Form_Element_Editor>&+ OZend_Dojo_Form_Element_DijitMulti>!* EZend_Dojo_Form_Element_Dijit>') QZend_Dojo_Form_Element_DateTextBox>+( YZend_Dojo_Form_Element_CurrencyTextBox>$' KZend_Dojo_Form_Element_ComboBox>$& KZend_Dojo_Form_Element_CheckBox>"% GZend_Dojo_Form_Element_Button> $ CZend_Dojo_Form_DisplayGroup>*# WZend_Dojo_Form_Decorator_TabContainer>," [Zend_Dojo_Form_Decorator_StackContainer>,! [Zend_Dojo_Form_Decorator_SplitContainer>'  QZend_Dojo_Form_Decorator_DijitForm>* WZend_Dojo_Form_Decorator_DijitElement>, [Zend_Dojo_Form_Decorator_DijitContainer>) UZend_Dojo_Form_Decorator_ContentPane>- ]Zend_Dojo_Form_Decorator_BorderContainer>+ YZend_Dojo_Form_Decorator_AccordionPane>0 cZend_Dojo_Form_Decorator_AccordionContainer> 3Zend_Dojo_Exception> )Zend_Dojo_Data> 5Zend_Dojo_BuildLayer> !Zend_Debug> Zend_Db> 'Zend_Db_Table> 5Zend_Db_Table_Select># IZend_Db_Table_Select_Exception> 5Zend_Db_Table_Rowset># IZend_Db_Table_Rowset_Exception>" GZend_Db_Table_Rowset_Abstract> /Zend_Db_Table_Row>  CZend_Db_Table_Row_Exception> AZend_Db_Table_Row_Abstract> ;Zend_Db_Table_Exception>
 =Zend_Db_Table_Definition>	 9Zend_Db_Table_Abstract> /Zend_Db_Statement> =Zend_Db_Statement_Sqlsrv>' QZend_Db_Statement_Sqlsrv_Exception> 7Zend_Db_Statement_Pdo> ?Zend_Db_Statement_Pdo_Oci> ?Zend_Db_Statement_Pdo_Ibm> =Zend_Db_Statement_Oracle>' QZend_Db_Statement_Oracle_Exception>  =Zend_Db_Statement_Mysqli>' QZend_Db_Statement_Mysqli_Exception> ~ CZend_Db_Statement_Exception>} 7Zend_Db_Statement_Db2>$| KZend_Db_Statement_Db2_Exception>{ )Zend_Db_Select>z =Zend_Db_Select_Exception>y -Zend_Db_Profiler>x 9Zend_Db_Profiler_Query>w =Zend_Db_Profiler_Firebug>v AZend_Db_Profiler_Exception>u %Zend_Db_Expr>t /Zend_Db_Exception>s 9Zend_Db_Adapter_Sqlsrv>%r MZend_Db_Adapter_Sqlsrv_Exception>q AZend_Db_Adapter_Pdo_Sqlite>p ?Zend_Db_Adapter_Pdo_Pgsql>o ;Zend_Db_Adapter_Pdo_Oci>n ?Zend_Db_Adapter_Pdo_Mysql>m ?Zend_Db_Adapter_Pdo_Mssql>l ;Zend_Db_Adapter_Pdo_Ibm> k CZend_Db_Adapter_Pdo_Ibm_Ids> j CZend_Db_Adapter_Pdo_Ibm_Db2>!i EZend_Db_Adapter_Pdo_Abstract>h 9Zend_Db_Adapter_Oracle>%g MZend_Db_Adapter_Oracle_Exception>f 9Zend_Db_Adapter_Mysqli>%e MZend_Db_Adapter_Mysqli_Exception>d ?Zend_Db_Adapter_Exception>c 3Zend_Db_Adapter_Db2>"b GZend_Db_Adapter_Db2_Exception>a =Zend_Db_Adapter_Abstract>` Zend_Date>_ 3Zend_Date_Exception>^ 5Zend_Date_DateObject>] -Zend_Date_Cities>\ 'Zend_Currency>[ ;Zend_Currency_Exception>Z !Zend_Crypt>Y )Zend_Crypt_Rsa>X 1Zend_Crypt_Rsa_Key>W ?Zend_Crypt_Rsa_Key_Public>V AZend_Crypt_Rsa_Key_Private>U =Zend_Crypt_Rsa_Exception>T +Zend_Crypt_Math>S ?Zend_Crypt_Math_Exception>R AZend_Crypt_Math_BigInteger>#Q IZend_Crypt_Math_BigInteger_Gmp>)P UZend_Crypt_Math_BigInteger_Exception>&O OZend_Crypt_Math_BigInteger_Bcmath>N +Zend_Crypt_Hmac>M ?Zend_Crypt_Hmac_Exception>L 5Zend_Crypt_Exception>K =Zend_Crypt_DiffieHellman>'J QZend_Crypt_DiffieHellman_Exception>!I EZend_Controller_Router_Route>(H SZend_Controller_Router_Route_Static>'G QZend_Controller_Router_Route_Regex>(F SZend_Controller_Router_Route_Module>*E WZend_Controller_Router_Route_Hostname>   _  U-|]F%uN'{W*d5	



X
3
				\	6	aC,wV<"|S'f<jF#p7g7sC                             & OZend_Feed_Reader_Feed_Atom_Source>3 iZend_Feed_Reader_Extension_WellFormedWeb_Entry>, [Zend_Feed_Reader_Extension_Thread_Entry>0 cZend_Feed_Reader_Extension_Syndication_Feed>+ YZend_Feed_Reader_Extension_Slash_Entry>, [Zend_Feed_Reader_Extension_Podcast_Feed>-
 ]Zend_Feed_Reader_Extension_Podcast_Entry>,	 [Zend_Feed_Reader_Extension_FeedAbstract>- ]Zend_Feed_Reader_Extension_EntryAbstract>/ aZend_Feed_Reader_Extension_DublinCore_Feed>0 cZend_Feed_Reader_Extension_DublinCore_Entry>4 kZend_Feed_Reader_Extension_CreativeCommons_Feed>5 mZend_Feed_Reader_Extension_CreativeCommons_Entry>- ]Zend_Feed_Reader_Extension_Content_Entry>) UZend_Feed_Reader_Extension_Atom_Feed>* WZend_Feed_Reader_Extension_Atom_Entry>#  IZend_Feed_Reader_EntryAbstract> AZend_Feed_Reader_Entry_Rss> ~ CZend_Feed_Reader_Entry_Atom> } CZend_Feed_Reader_Collection>3| iZend_Feed_Reader_Collection_CollectionAbstract>){ UZend_Feed_Reader_Collection_Category>'z QZend_Feed_Reader_Collection_Author>y 9Zend_Feed_Pubsubhubbub>&x OZend_Feed_Pubsubhubbub_Subscriber>/w aZend_Feed_Pubsubhubbub_Subscriber_Callback>%v MZend_Feed_Pubsubhubbub_Publisher>.u _Zend_Feed_Pubsubhubbub_Model_Subscription>/t aZend_Feed_Pubsubhubbub_Model_ModelAbstract>(s SZend_Feed_Pubsubhubbub_HttpResponse>%r MZend_Feed_Pubsubhubbub_Exception>,q [Zend_Feed_Pubsubhubbub_CallbackAbstract>p 3Zend_Feed_Exception>o 3Zend_Feed_Entry_Rss>n 5Zend_Feed_Entry_Atom>m =Zend_Feed_Entry_Abstract>l /Zend_Feed_Element>k /Zend_Feed_Builder>j =Zend_Feed_Builder_Header>$i KZend_Feed_Builder_Header_Itunes> h CZend_Feed_Builder_Exception>g ;Zend_Feed_Builder_Entry>f )Zend_Feed_Atom>e 1Zend_Feed_Abstract>d )Zend_Exception>c )Zend_Dom_Query>b 7Zend_Dom_Query_Result>a =Zend_Dom_Query_Css2Xpath>` 1Zend_Dom_Exception>_ Zend_Dojo>)^ UZend_Dojo_View_Helper_VerticalSlider>,] [Zend_Dojo_View_Helper_ValidationTextBox>&\ OZend_Dojo_View_Helper_TimeTextBox>"[ GZend_Dojo_View_Helper_TextBox>#Z IZend_Dojo_View_Helper_Textarea>'Y QZend_Dojo_View_Helper_TabContainer>'X QZend_Dojo_View_Helper_SubmitButton>)W UZend_Dojo_View_Helper_StackContainer>)V UZend_Dojo_View_Helper_SplitContainer>!U EZend_Dojo_View_Helper_Slider>)T UZend_Dojo_View_Helper_SimpleTextarea>&S OZend_Dojo_View_Helper_RadioButton>*R WZend_Dojo_View_Helper_PasswordTextBox>(Q SZend_Dojo_View_Helper_NumberTextBox>(P SZend_Dojo_View_Helper_NumberSpinner>+O YZend_Dojo_View_Helper_HorizontalSlider>N AZend_Dojo_View_Helper_Form>*M WZend_Dojo_View_Helper_FilteringSelect>!L EZend_Dojo_View_Helper_Editor>K AZend_Dojo_View_Helper_Dojo>)J UZend_Dojo_View_Helper_Dojo_Container>)I UZend_Dojo_View_Helper_DijitContainer> H CZend_Dojo_View_Helper_Dijit>&G OZend_Dojo_View_Helper_DateTextBox>&F OZend_Dojo_View_Helper_CustomDijit>*E WZend_Dojo_View_Helper_CurrencyTextBox>&D OZend_Dojo_View_Helper_ContentPane>#C IZend_Dojo_View_Helper_ComboBox>#B IZend_Dojo_View_Helper_CheckBox>!A EZend_Dojo_View_Helper_Button>*@ WZend_Dojo_View_Helper_BorderContainer>(? SZend_Dojo_View_Helper_AccordionPane>-> ]Zend_Dojo_View_Helper_AccordionContainer>= =Zend_Dojo_View_Exception>< )Zend_Dojo_Form>; 9Zend_Dojo_Form_SubForm>*: WZend_Dojo_Form_Element_VerticalSlider>-9 ]Zend_Dojo_Form_Element_ValidationTextBox>'8 QZend_Dojo_Form_Element_TimeTextBox>#7 IZend_Dojo_Form_Element_TextBox>$6 KZend_Dojo_Form_Element_Textarea>(5 SZend_Dojo_Form_Element_SubmitButton>"4 GZend_Dojo_Form_Element_Slider>*3 WZend_Dojo_Form_Element_SimpleTextarea>'2 QZend_Dojo_Form_Element_RadioButton>   e  t[E$[Jj*S



]
=
$
				~	d	J	-	dC"vS/pM,oO2f8	a3
T@{S+                 "u GZend_Form_Decorator_Exception>t AZend_Form_Decorator_Errors>$s KZend_Form_Decorator_DtDdWrapper>$r KZend_Form_Decorator_Description> q CZend_Form_Decorator_Captcha>%p MZend_Form_Decorator_Captcha_Word>*o WZend_Form_Decorator_Captcha_ReCaptcha>!n EZend_Form_Decorator_Callback>!m EZend_Form_Decorator_Abstract>l #Zend_Filter>+k YZend_Filter_Word_UnderscoreToSeparator>&j OZend_Filter_Word_UnderscoreToDash>+i YZend_Filter_Word_UnderscoreToCamelCase>*h WZend_Filter_Word_SeparatorToSeparator>%g MZend_Filter_Word_SeparatorToDash>*f WZend_Filter_Word_SeparatorToCamelCase>(e SZend_Filter_Word_Separator_Abstract>&d OZend_Filter_Word_DashToUnderscore>%c MZend_Filter_Word_DashToSeparator>%b MZend_Filter_Word_DashToCamelCase>+a YZend_Filter_Word_CamelCaseToUnderscore>*` WZend_Filter_Word_CamelCaseToSeparator>%_ MZend_Filter_Word_CamelCaseToDash>^ 7Zend_Filter_StripTags>] ?Zend_Filter_StripNewlines>\ 9Zend_Filter_StringTrim>[ ?Zend_Filter_StringToUpper>Z ?Zend_Filter_StringToLower>Y 5Zend_Filter_RealPath>X ;Zend_Filter_PregReplace>W -Zend_Filter_Null>&V OZend_Filter_NormalizedToLocalized>&U OZend_Filter_LocalizedToNormalized>T +Zend_Filter_Int>S /Zend_Filter_Input>R 7Zend_Filter_Inflector>Q =Zend_Filter_HtmlEntities>P AZend_Filter_File_UpperCase>O ;Zend_Filter_File_Rename>N AZend_Filter_File_LowerCase>M =Zend_Filter_File_Encrypt>L =Zend_Filter_File_Decrypt>K 7Zend_Filter_Exception>J 3Zend_Filter_Encrypt> I CZend_Filter_Encrypt_Openssl>H AZend_Filter_Encrypt_Mcrypt>G +Zend_Filter_Dir>F 1Zend_Filter_Digits>E 3Zend_Filter_Decrypt>D 9Zend_Filter_Decompress>C 5Zend_Filter_Compress>B =Zend_Filter_Compress_Zip>A =Zend_Filter_Compress_Tar>@ =Zend_Filter_Compress_Rar>? =Zend_Filter_Compress_Lzf>> ;Zend_Filter_Compress_Gz>*= WZend_Filter_Compress_CompressAbstract>< =Zend_Filter_Compress_Bz2>; 5Zend_Filter_Callback>: 3Zend_Filter_Boolean>9 5Zend_Filter_BaseName>8 /Zend_Filter_Alpha>7 /Zend_Filter_Alnum>6 1Zend_File_Transfer>!5 EZend_File_Transfer_Exception>$4 KZend_File_Transfer_Adapter_Http>(3 SZend_File_Transfer_Adapter_Abstract>2 Zend_Feed>1 -Zend_Feed_Writer>0 ;Zend_Feed_Writer_Source>// aZend_Feed_Writer_Renderer_RendererAbstract>'. QZend_Feed_Writer_Renderer_Feed_Rss>(- SZend_Feed_Writer_Renderer_Feed_Atom>/, aZend_Feed_Writer_Renderer_Feed_Atom_Source>5+ mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract>(* SZend_Feed_Writer_Renderer_Entry_Rss>)) UZend_Feed_Writer_Renderer_Entry_Atom>1( eZend_Feed_Writer_Renderer_Entry_Atom_Deleted>' 7Zend_Feed_Writer_Feed>'& QZend_Feed_Writer_Feed_FeedAbstract><% {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry>8$ sZend_Feed_Writer_Extension_Threading_Renderer_Entry>4# kZend_Feed_Writer_Extension_Slash_Renderer_Entry>0" cZend_Feed_Writer_Extension_RendererAbstract>4! kZend_Feed_Writer_Extension_ITunes_Renderer_Feed>5  mZend_Feed_Writer_Extension_ITunes_Renderer_Entry>+ YZend_Feed_Writer_Extension_ITunes_Feed>, [Zend_Feed_Writer_Extension_ITunes_Entry>8 sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed>9 uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry>6 oZend_Feed_Writer_Extension_Content_Renderer_Entry>2 gZend_Feed_Writer_Extension_Atom_Renderer_Feed>6 oZend_Feed_Writer_Exception_InvalidMethodException> 9Zend_Feed_Writer_Entry> =Zend_Feed_Writer_Deleted> 'Zend_Feed_Rss> -Zend_Feed_Reader> =Zend_Feed_Reader_FeedSet>" GZend_Feed_Reader_FeedAbstract> ?Zend_Feed_Reader_Feed_Rss> AZend_Feed_Reader_Feed_Atom>   g  pI%jC${\;jJ)pVD



~
a
@
				o	H	 [5nF}X7wTz_6~M!hCm;             )\ UZend_Gdata_Calendar_Extension_Hidden>([ SZend_Gdata_Calendar_Extension_Color>.Z _Zend_Gdata_Calendar_Extension_AccessLevel>#Y IZend_Gdata_Calendar_EventQuery>"X GZend_Gdata_Calendar_EventFeed>#W IZend_Gdata_Calendar_EventEntry>V -Zend_Gdata_Books>!U EZend_Gdata_Books_VolumeQuery> T CZend_Gdata_Books_VolumeFeed>!S EZend_Gdata_Books_VolumeEntry>+R YZend_Gdata_Books_Extension_Viewability>-Q ]Zend_Gdata_Books_Extension_ThumbnailLink>&P OZend_Gdata_Books_Extension_Review>+O YZend_Gdata_Books_Extension_PreviewLink>(N SZend_Gdata_Books_Extension_InfoLink>-M ]Zend_Gdata_Books_Extension_Embeddability>)L UZend_Gdata_Books_Extension_BooksLink>-K ]Zend_Gdata_Books_Extension_BooksCategory>.J _Zend_Gdata_Books_Extension_AnnotationLink>$I KZend_Gdata_Books_CollectionFeed>%H MZend_Gdata_Books_CollectionEntry>G 1Zend_Gdata_AuthSub>F )Zend_Gdata_App>$E KZend_Gdata_App_VersionException>D 3Zend_Gdata_App_Util>#C IZend_Gdata_App_MediaFileSource>B ?Zend_Gdata_App_MediaEntry>2A gZend_Gdata_App_LoggingHttpClientAdapterSocket>@ AZend_Gdata_App_IOException>,? [Zend_Gdata_App_InvalidArgumentException>!> EZend_Gdata_App_HttpException>$= KZend_Gdata_App_FeedSourceParent>#< IZend_Gdata_App_FeedEntryParent>; 3Zend_Gdata_App_Feed>: =Zend_Gdata_App_Extension>!9 EZend_Gdata_App_Extension_Uri>%8 MZend_Gdata_App_Extension_Updated>#7 IZend_Gdata_App_Extension_Title>"6 GZend_Gdata_App_Extension_Text>%5 MZend_Gdata_App_Extension_Summary>&4 OZend_Gdata_App_Extension_Subtitle>$3 KZend_Gdata_App_Extension_Source>$2 KZend_Gdata_App_Extension_Rights>'1 QZend_Gdata_App_Extension_Published>$0 KZend_Gdata_App_Extension_Person>"/ GZend_Gdata_App_Extension_Name>". GZend_Gdata_App_Extension_Logo>"- GZend_Gdata_App_Extension_Link> , CZend_Gdata_App_Extension_Id>"+ GZend_Gdata_App_Extension_Icon>'* QZend_Gdata_App_Extension_Generator>#) IZend_Gdata_App_Extension_Email>%( MZend_Gdata_App_Extension_Element>$' KZend_Gdata_App_Extension_Edited>#& IZend_Gdata_App_Extension_Draft>%% MZend_Gdata_App_Extension_Control>)$ UZend_Gdata_App_Extension_Contributor>%# MZend_Gdata_App_Extension_Content>&" OZend_Gdata_App_Extension_Category>$! KZend_Gdata_App_Extension_Author>  =Zend_Gdata_App_Exception> 5Zend_Gdata_App_Entry>, [Zend_Gdata_App_CaptchaRequiredException># IZend_Gdata_App_BaseMediaSource> 3Zend_Gdata_App_Base>* WZend_Gdata_App_BadMethodCallException>! EZend_Gdata_App_AuthException> Zend_Form> /Zend_Form_SubForm> 3Zend_Form_Exception> /Zend_Form_Element> ;Zend_Form_Element_Xhtml> AZend_Form_Element_Textarea> 9Zend_Form_Element_Text> =Zend_Form_Element_Submit> =Zend_Form_Element_Select> ;Zend_Form_Element_Reset> ;Zend_Form_Element_Radio> AZend_Form_Element_Password>" GZend_Form_Element_Multiselect>$ KZend_Form_Element_MultiCheckbox> ;Zend_Form_Element_Multi>
 ;Zend_Form_Element_Image>	 =Zend_Form_Element_Hidden> 9Zend_Form_Element_Hash> 9Zend_Form_Element_File>  CZend_Form_Element_Exception> AZend_Form_Element_Checkbox> ?Zend_Form_Element_Captcha> =Zend_Form_Element_Button> 9Zend_Form_DisplayGroup># IZend_Form_Decorator_ViewScript>#  IZend_Form_Decorator_ViewHelper>  CZend_Form_Decorator_Tooltip>(~ SZend_Form_Decorator_PrepareElements>} ?Zend_Form_Decorator_Label>| ?Zend_Form_Decorator_Image> { CZend_Form_Decorator_HtmlTag>#z IZend_Form_Decorator_FormErrors>%y MZend_Form_Decorator_FormElements>x =Zend_Form_Decorator_Form>w =Zend_Form_Decorator_File>!v EZend_Form_Decorator_Fieldset>   a  w:sT*n:uFh=



i
B
					k	A	wCf5xW:"zJ|P$kG"gC$yZ)                               = AZend_Gdata_Gbase_ItemEntry>< 7Zend_Gdata_Gbase_Feed>-; ]Zend_Gdata_Gbase_Extension_BaseAttribute>: 9Zend_Gdata_Gbase_Entry>9 -Zend_Gdata_Gapps>8 AZend_Gdata_Gapps_UserQuery>7 ?Zend_Gdata_Gapps_UserFeed>6 AZend_Gdata_Gapps_UserEntry>&5 OZend_Gdata_Gapps_ServiceException>4 9Zend_Gdata_Gapps_Query> 3 CZend_Gdata_Gapps_OwnerQuery>2 AZend_Gdata_Gapps_OwnerFeed> 1 CZend_Gdata_Gapps_OwnerEntry>#0 IZend_Gdata_Gapps_NicknameQuery>"/ GZend_Gdata_Gapps_NicknameFeed>#. IZend_Gdata_Gapps_NicknameEntry>!- EZend_Gdata_Gapps_MemberQuery> , CZend_Gdata_Gapps_MemberFeed>!+ EZend_Gdata_Gapps_MemberEntry> * CZend_Gdata_Gapps_GroupQuery>) AZend_Gdata_Gapps_GroupFeed> ( CZend_Gdata_Gapps_GroupEntry>%' MZend_Gdata_Gapps_Extension_Quota>(& SZend_Gdata_Gapps_Extension_Property>(% SZend_Gdata_Gapps_Extension_Nickname>$$ KZend_Gdata_Gapps_Extension_Name>%# MZend_Gdata_Gapps_Extension_Login>)" UZend_Gdata_Gapps_Extension_EmailList>! 9Zend_Gdata_Gapps_Error>-  ]Zend_Gdata_Gapps_EmailListRecipientQuery>, [Zend_Gdata_Gapps_EmailListRecipientFeed>- ]Zend_Gdata_Gapps_EmailListRecipientEntry>$ KZend_Gdata_Gapps_EmailListQuery># IZend_Gdata_Gapps_EmailListFeed>$ KZend_Gdata_Gapps_EmailListEntry> +Zend_Gdata_Feed> 5Zend_Gdata_Extension> =Zend_Gdata_Extension_Who> AZend_Gdata_Extension_Where> ?Zend_Gdata_Extension_When>$ KZend_Gdata_Extension_Visibility>& OZend_Gdata_Extension_Transparency>" GZend_Gdata_Extension_Reminder>- ]Zend_Gdata_Extension_RecurrenceException>$ KZend_Gdata_Extension_Recurrence>  CZend_Gdata_Extension_Rating>' QZend_Gdata_Extension_OriginalEvent>0 cZend_Gdata_Extension_OpenSearchTotalResults>. _Zend_Gdata_Extension_OpenSearchStartIndex>0 cZend_Gdata_Extension_OpenSearchItemsPerPage>" GZend_Gdata_Extension_FeedLink>*
 WZend_Gdata_Extension_ExtendedProperty>%	 MZend_Gdata_Extension_EventStatus># IZend_Gdata_Extension_EntryLink>" GZend_Gdata_Extension_Comments>& OZend_Gdata_Extension_AttendeeType>( SZend_Gdata_Extension_AttendeeStatus> +Zend_Gdata_Exif> 5Zend_Gdata_Exif_Feed># IZend_Gdata_Exif_Extension_Time># IZend_Gdata_Exif_Extension_Tags>$  KZend_Gdata_Exif_Extension_Model># IZend_Gdata_Exif_Extension_Make>"~ GZend_Gdata_Exif_Extension_Iso>,} [Zend_Gdata_Exif_Extension_ImageUniqueId>$| KZend_Gdata_Exif_Extension_FStop>*{ WZend_Gdata_Exif_Extension_FocalLength>$z KZend_Gdata_Exif_Extension_Flash>'y QZend_Gdata_Exif_Extension_Exposure>'x QZend_Gdata_Exif_Extension_Distance>w 7Zend_Gdata_Exif_Entry>v -Zend_Gdata_Entry>u 7Zend_Gdata_DublinCore>*t WZend_Gdata_DublinCore_Extension_Title>,s [Zend_Gdata_DublinCore_Extension_Subject>+r YZend_Gdata_DublinCore_Extension_Rights>.q _Zend_Gdata_DublinCore_Extension_Publisher>-p ]Zend_Gdata_DublinCore_Extension_Language>/o aZend_Gdata_DublinCore_Extension_Identifier>+n YZend_Gdata_DublinCore_Extension_Format>0m cZend_Gdata_DublinCore_Extension_Description>)l UZend_Gdata_DublinCore_Extension_Date>,k [Zend_Gdata_DublinCore_Extension_Creator>j +Zend_Gdata_Docs>i 7Zend_Gdata_Docs_Query>%h MZend_Gdata_Docs_DocumentListFeed>&g OZend_Gdata_Docs_DocumentListEntry>f 9Zend_Gdata_ClientLogin>e 3Zend_Gdata_Calendar>!d EZend_Gdata_Calendar_ListFeed>"c GZend_Gdata_Calendar_ListEntry>-b ]Zend_Gdata_Calendar_Extension_WebContent>+a YZend_Gdata_Calendar_Extension_Timezone>9` uZend_Gdata_Calendar_Extension_SendEventNotifications>+_ YZend_Gdata_Calendar_Extension_Selected>+^ YZend_Gdata_Calendar_Extension_QuickAdd>'] QZend_Gdata_Calendar_Extension_Link>   _  vQ+vZCyY?S#`3


p
C
					g	K	&	_1rG g9xInB\8kAM#            & OZend_Gdata_Spreadsheets_ListQuery>% MZend_Gdata_Spreadsheets_ListFeed>& OZend_Gdata_Spreadsheets_ListEntry>/ aZend_Gdata_Spreadsheets_Extension_RowCount>- ]Zend_Gdata_Spreadsheets_Extension_Custom>/ aZend_Gdata_Spreadsheets_Extension_ColCount>+ YZend_Gdata_Spreadsheets_Extension_Cell>* WZend_Gdata_Spreadsheets_DocumentQuery>& OZend_Gdata_Spreadsheets_CellQuery>% MZend_Gdata_Spreadsheets_CellFeed>& OZend_Gdata_Spreadsheets_CellEntry> -Zend_Gdata_Query> /Zend_Gdata_Photos>  CZend_Gdata_Photos_UserQuery> AZend_Gdata_Photos_UserFeed>  CZend_Gdata_Photos_UserEntry> AZend_Gdata_Photos_TagEntry>! EZend_Gdata_Photos_PhotoQuery> 
 CZend_Gdata_Photos_PhotoFeed>!	 EZend_Gdata_Photos_PhotoEntry>& OZend_Gdata_Photos_Extension_Width>' QZend_Gdata_Photos_Extension_Weight>( SZend_Gdata_Photos_Extension_Version>% MZend_Gdata_Photos_Extension_User>* WZend_Gdata_Photos_Extension_Timestamp>* WZend_Gdata_Photos_Extension_Thumbnail>% MZend_Gdata_Photos_Extension_Size>) UZend_Gdata_Photos_Extension_Rotation>+  YZend_Gdata_Photos_Extension_QuotaLimit>- ]Zend_Gdata_Photos_Extension_QuotaCurrent>)~ UZend_Gdata_Photos_Extension_Position>(} SZend_Gdata_Photos_Extension_PhotoId>3| iZend_Gdata_Photos_Extension_NumPhotosRemaining>*{ WZend_Gdata_Photos_Extension_NumPhotos>)z UZend_Gdata_Photos_Extension_Nickname>%y MZend_Gdata_Photos_Extension_Name>2x gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum>)w UZend_Gdata_Photos_Extension_Location>#v IZend_Gdata_Photos_Extension_Id>'u QZend_Gdata_Photos_Extension_Height>2t gZend_Gdata_Photos_Extension_CommentingEnabled>-s ]Zend_Gdata_Photos_Extension_CommentCount>'r QZend_Gdata_Photos_Extension_Client>)q UZend_Gdata_Photos_Extension_Checksum>*p WZend_Gdata_Photos_Extension_BytesUsed>(o SZend_Gdata_Photos_Extension_AlbumId>'n QZend_Gdata_Photos_Extension_Access>#m IZend_Gdata_Photos_CommentEntry>!l EZend_Gdata_Photos_AlbumQuery> k CZend_Gdata_Photos_AlbumFeed>!j EZend_Gdata_Photos_AlbumEntry>i 3Zend_Gdata_MimeFile>h ?Zend_Gdata_MimeBodyString>g AZend_Gdata_MediaMimeStream>f -Zend_Gdata_Media>e 7Zend_Gdata_Media_Feed>*d WZend_Gdata_Media_Extension_MediaTitle>.c _Zend_Gdata_Media_Extension_MediaThumbnail>)b UZend_Gdata_Media_Extension_MediaText>0a cZend_Gdata_Media_Extension_MediaRestriction>+` YZend_Gdata_Media_Extension_MediaRating>+_ YZend_Gdata_Media_Extension_MediaPlayer>-^ ]Zend_Gdata_Media_Extension_MediaKeywords>)] UZend_Gdata_Media_Extension_MediaHash>*\ WZend_Gdata_Media_Extension_MediaGroup>0[ cZend_Gdata_Media_Extension_MediaDescription>+Z YZend_Gdata_Media_Extension_MediaCredit>.Y _Zend_Gdata_Media_Extension_MediaCopyright>,X [Zend_Gdata_Media_Extension_MediaContent>-W ]Zend_Gdata_Media_Extension_MediaCategory>V 9Zend_Gdata_Media_Entry>U AZend_Gdata_Kind_EventEntry>T 7Zend_Gdata_HttpClient>*S WZend_Gdata_HttpAdapterStreamingSocket>)R UZend_Gdata_HttpAdapterStreamingProxy>Q /Zend_Gdata_Health>P ;Zend_Gdata_Health_Query>&O OZend_Gdata_Health_ProfileListFeed>'N QZend_Gdata_Health_ProfileListEntry>"M GZend_Gdata_Health_ProfileFeed>#L IZend_Gdata_Health_ProfileEntry>$K KZend_Gdata_Health_Extension_Ccr>J )Zend_Gdata_Geo>I 3Zend_Gdata_Geo_Feed>$H KZend_Gdata_Geo_Extension_GmlPos>&G OZend_Gdata_Geo_Extension_GmlPoint>)F UZend_Gdata_Geo_Extension_GeoRssWhere>E 5Zend_Gdata_Geo_Entry>D -Zend_Gdata_Gbase>"C GZend_Gdata_Gbase_SnippetQuery>!B EZend_Gdata_Gbase_SnippetFeed>"A GZend_Gdata_Gbase_SnippetEntry>@ 9Zend_Gdata_Gbase_Query>? AZend_Gdata_Gbase_ItemQuery>> ?Zend_Gdata_Gbase_ItemFeed>   ]  pB"Z3X)oB\+



s
F
				X	'l@`2g;[5kDiG,uS-X7              y ?Zend_Http_UserAgent_Probe> x CZend_Http_UserAgent_Offline>w AZend_Http_UserAgent_Mobile>v =Zend_Http_UserAgent_Feed>+u YZend_Http_UserAgent_Features_Exception>2t gZend_Http_UserAgent_Features_Adapter_WurflApi>3s iZend_Http_UserAgent_Features_Adapter_TeraWurfl>5r mZend_Http_UserAgent_Features_Adapter_DeviceAtlas>"q GZend_Http_UserAgent_Exception>p ?Zend_Http_UserAgent_Email> o CZend_Http_UserAgent_Desktop> n CZend_Http_UserAgent_Console> m CZend_Http_UserAgent_Checker>l ;Zend_Http_UserAgent_Bot>'k QZend_Http_UserAgent_AbstractDevice>j 1Zend_Http_Response>i ?Zend_Http_Response_Stream>h 3Zend_Http_Exception>g 3Zend_Http_CookieJar>f -Zend_Http_Cookie>e -Zend_Http_Client>d AZend_Http_Client_Exception>"c GZend_Http_Client_Adapter_Test>$b KZend_Http_Client_Adapter_Socket>#a IZend_Http_Client_Adapter_Proxy>'` QZend_Http_Client_Adapter_Exception>"_ GZend_Http_Client_Adapter_Curl>^ !Zend_Gdata>] 1Zend_Gdata_YouTube>"\ GZend_Gdata_YouTube_VideoQuery>![ EZend_Gdata_YouTube_VideoFeed>"Z GZend_Gdata_YouTube_VideoEntry>(Y SZend_Gdata_YouTube_UserProfileEntry>(X SZend_Gdata_YouTube_SubscriptionFeed>)W UZend_Gdata_YouTube_SubscriptionEntry>)V UZend_Gdata_YouTube_PlaylistVideoFeed>*U WZend_Gdata_YouTube_PlaylistVideoEntry>(T SZend_Gdata_YouTube_PlaylistListFeed>)S UZend_Gdata_YouTube_PlaylistListEntry>"R GZend_Gdata_YouTube_MediaEntry>!Q EZend_Gdata_YouTube_InboxFeed>"P GZend_Gdata_YouTube_InboxEntry>)O UZend_Gdata_YouTube_Extension_VideoId>*N WZend_Gdata_YouTube_Extension_Username>*M WZend_Gdata_YouTube_Extension_Uploaded>'L QZend_Gdata_YouTube_Extension_Token>(K SZend_Gdata_YouTube_Extension_Status>,J [Zend_Gdata_YouTube_Extension_Statistics>'I QZend_Gdata_YouTube_Extension_State>(H SZend_Gdata_YouTube_Extension_School>-G ]Zend_Gdata_YouTube_Extension_ReleaseDate>.F _Zend_Gdata_YouTube_Extension_Relationship>*E WZend_Gdata_YouTube_Extension_Recorded>&D OZend_Gdata_YouTube_Extension_Racy>-C ]Zend_Gdata_YouTube_Extension_QueryString>)B UZend_Gdata_YouTube_Extension_Private>*A WZend_Gdata_YouTube_Extension_Position>/@ aZend_Gdata_YouTube_Extension_PlaylistTitle>,? [Zend_Gdata_YouTube_Extension_PlaylistId>,> [Zend_Gdata_YouTube_Extension_Occupation>)= UZend_Gdata_YouTube_Extension_NoEmbed>'< QZend_Gdata_YouTube_Extension_Music>(; SZend_Gdata_YouTube_Extension_Movies>-: ]Zend_Gdata_YouTube_Extension_MediaRating>,9 [Zend_Gdata_YouTube_Extension_MediaGroup>-8 ]Zend_Gdata_YouTube_Extension_MediaCredit>.7 _Zend_Gdata_YouTube_Extension_MediaContent>*6 WZend_Gdata_YouTube_Extension_Location>&5 OZend_Gdata_YouTube_Extension_Link>*4 WZend_Gdata_YouTube_Extension_LastName>*3 WZend_Gdata_YouTube_Extension_Hometown>)2 UZend_Gdata_YouTube_Extension_Hobbies>(1 SZend_Gdata_YouTube_Extension_Gender>+0 YZend_Gdata_YouTube_Extension_FirstName>*/ WZend_Gdata_YouTube_Extension_Duration>-. ]Zend_Gdata_YouTube_Extension_Description>+- YZend_Gdata_YouTube_Extension_CountHint>), UZend_Gdata_YouTube_Extension_Control>)+ UZend_Gdata_YouTube_Extension_Company>'* QZend_Gdata_YouTube_Extension_Books>%) MZend_Gdata_YouTube_Extension_Age>)( UZend_Gdata_YouTube_Extension_AboutMe>#' IZend_Gdata_YouTube_ContactFeed>$& KZend_Gdata_YouTube_ContactEntry>#% IZend_Gdata_YouTube_CommentFeed>$$ KZend_Gdata_YouTube_CommentEntry>$# KZend_Gdata_YouTube_ActivityFeed>%" MZend_Gdata_YouTube_ActivityEntry>! ;Zend_Gdata_Spreadsheets>*  WZend_Gdata_Spreadsheets_WorksheetFeed>+ YZend_Gdata_Spreadsheets_WorksheetEntry>, [Zend_Gdata_Spreadsheets_SpreadsheetFeed>- ]Zend_Gdata_Spreadsheets_SpreadsheetEntry>   j  S2{IrU8O X.


h
0
					e	I	2	cAsUA%gE(mT5rJ+i/fG)mR/       c #Zend_Locale>b -Zend_Locale_Math>a =Zend_Locale_Math_PhpMath>` AZend_Locale_Math_Exception>_ 1Zend_Locale_Format>^ 7Zend_Locale_Exception>] -Zend_Locale_Data>!\ EZend_Locale_Data_Translation>[ #Zend_Loader>Z =Zend_Loader_PluginLoader>'Y QZend_Loader_PluginLoader_Exception>X 7Zend_Loader_Exception>W 9Zend_Loader_Autoloader>$V KZend_Loader_Autoloader_Resource>U Zend_Ldap>T )Zend_Ldap_Node>S 7Zend_Ldap_Node_Schema>#R IZend_Ldap_Node_Schema_OpenLdap>/Q aZend_Ldap_Node_Schema_ObjectClass_OpenLdap>6P oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectory>O AZend_Ldap_Node_Schema_Item>1N eZend_Ldap_Node_Schema_AttributeType_OpenLdap>8M sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory>*L WZend_Ldap_Node_Schema_ActiveDirectory>K 9Zend_Ldap_Node_RootDse>$J KZend_Ldap_Node_RootDse_OpenLdap>&I OZend_Ldap_Node_RootDse_eDirectory>+H YZend_Ldap_Node_RootDse_ActiveDirectory>G ?Zend_Ldap_Node_Collection>$F KZend_Ldap_Node_ChildrenIterator>E ;Zend_Ldap_Node_Abstract>D 9Zend_Ldap_Ldif_Encoder>C -Zend_Ldap_Filter>B ;Zend_Ldap_Filter_String>A 3Zend_Ldap_Filter_Or>@ 5Zend_Ldap_Filter_Not>? 7Zend_Ldap_Filter_Mask>> =Zend_Ldap_Filter_Logical>= AZend_Ldap_Filter_Exception>< 5Zend_Ldap_Filter_And>; ?Zend_Ldap_Filter_Abstract>: 3Zend_Ldap_Exception>9 %Zend_Ldap_Dn>8 3Zend_Ldap_Converter>"7 GZend_Ldap_Converter_Exception>6 5Zend_Ldap_Collection>*5 WZend_Ldap_Collection_Iterator_Default>4 3Zend_Ldap_Attribute>3 #Zend_Layout>2 7Zend_Layout_Exception>)1 UZend_Layout_Controller_Plugin_Layout>00 cZend_Layout_Controller_Action_Helper_Layout>/ Zend_Json>. -Zend_Json_Server>- 5Zend_Json_Server_Smd>!, EZend_Json_Server_Smd_Service>+ ?Zend_Json_Server_Response>#* IZend_Json_Server_Response_Http>) =Zend_Json_Server_Request>"( GZend_Json_Server_Request_Http>' AZend_Json_Server_Exception>& 9Zend_Json_Server_Error>% 9Zend_Json_Server_Cache>$ )Zend_Json_Expr># 3Zend_Json_Exception>" /Zend_Json_Encoder>! /Zend_Json_Decoder>  'Zend_InfoCard>- ]Zend_InfoCard_Xml_SecurityTokenReference> AZend_InfoCard_Xml_Security>) UZend_InfoCard_Xml_Security_Transform>4 kZend_InfoCard_Xml_Security_Transform_XmlExcC14N>3 iZend_InfoCard_Xml_Security_Transform_Exception>< {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignature>) UZend_InfoCard_Xml_Security_Exception> ?Zend_InfoCard_Xml_KeyInfo>& OZend_InfoCard_Xml_KeyInfo_XmlDSig>& OZend_InfoCard_Xml_KeyInfo_Default>' QZend_InfoCard_Xml_KeyInfo_Abstract>  CZend_InfoCard_Xml_Exception># IZend_InfoCard_Xml_EncryptedKey>$ KZend_InfoCard_Xml_EncryptedData>+ YZend_InfoCard_Xml_EncryptedData_XmlEnc>- ]Zend_InfoCard_Xml_EncryptedData_Abstract> ?Zend_InfoCard_Xml_Element>  CZend_InfoCard_Xml_Assertion>% MZend_InfoCard_Xml_Assertion_Saml> ;Zend_InfoCard_Exception>% MZend_InfoCard_Exception_Abstract>
 5Zend_InfoCard_Claims>	 5Zend_InfoCard_Cipher>5 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc>5 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc>4 kZend_InfoCard_Cipher_Symmetric_Adapter_Abstract>) UZend_InfoCard_Cipher_Pki_Adapter_Rsa>. _Zend_InfoCard_Cipher_Pki_Adapter_Abstract># IZend_InfoCard_Cipher_Exception>$ KZend_InfoCard_Adapter_Exception>" GZend_InfoCard_Adapter_Default>  3Zend_Http_UserAgent>" GZend_Http_UserAgent_Validator>~ =Zend_Http_UserAgent_Text>(} SZend_Http_UserAgent_Storage_Session>.| _Zend_Http_UserAgent_Storage_NonPersistent>*{ WZend_Http_UserAgent_Storage_Exception>z =Zend_Http_UserAgent_Spam>   x b>~aD'y_C,vK  jI*




`
:
						\	9	oI'mR8y]> gH,Z1kM1iG&c?                                  ![ EZend_Oauth_Http_RequestToken> Z CZend_Oauth_Http_AccessToken>Y 5Zend_Oauth_Exception>X 3Zend_Oauth_Consumer>W /Zend_Oauth_Config>V /Zend_Oauth_Client>U +Zend_Navigation>T 5Zend_Navigation_Page>S =Zend_Navigation_Page_Uri>R =Zend_Navigation_Page_Mvc>Q ?Zend_Navigation_Exception>P ?Zend_Navigation_Container>O Zend_Mime>N )Zend_Mime_Part>M /Zend_Mime_Message>L 3Zend_Mime_Exception>K -Zend_Mime_Decode>J #Zend_Memory>I /Zend_Memory_Value>H 3Zend_Memory_Manager>G 7Zend_Memory_Exception>F 7Zend_Memory_Container>"E GZend_Memory_Container_Movable>!D EZend_Memory_Container_Locked>!C EZend_Memory_AccessController>B 3Zend_Measure_Weight>A 3Zend_Measure_Volume>%@ MZend_Measure_Viscosity_Kinematic>#? IZend_Measure_Viscosity_Dynamic>> 3Zend_Measure_Torque>= /Zend_Measure_Time>< =Zend_Measure_Temperature>; 1Zend_Measure_Speed>: 7Zend_Measure_Pressure>9 1Zend_Measure_Power>8 3Zend_Measure_Number>7 9Zend_Measure_Lightness>6 3Zend_Measure_Length>5 ?Zend_Measure_Illumination>4 9Zend_Measure_Frequency>3 1Zend_Measure_Force>2 =Zend_Measure_Flow_Volume>1 9Zend_Measure_Flow_Mole>0 9Zend_Measure_Flow_Mass>/ 9Zend_Measure_Exception>. 3Zend_Measure_Energy>- 5Zend_Measure_Density>, 5Zend_Measure_Current> + CZend_Measure_Cooking_Weight> * CZend_Measure_Cooking_Volume>) =Zend_Measure_Capacitance>( 3Zend_Measure_Binary>' /Zend_Measure_Area>& 1Zend_Measure_Angle>% ?Zend_Measure_Acceleration>$ 7Zend_Measure_Abstract># #Zend_Markup>" 7Zend_Markup_TokenList>! /Zend_Markup_Token>*  WZend_Markup_Renderer_RendererAbstract> ?Zend_Markup_Renderer_Html>" GZend_Markup_Renderer_Html_Url># IZend_Markup_Renderer_Html_List>" GZend_Markup_Renderer_Html_Img>+ YZend_Markup_Renderer_Html_HtmlAbstract># IZend_Markup_Renderer_Html_Code># IZend_Markup_Renderer_Exception> AZend_Markup_Parser_Textile>! EZend_Markup_Parser_Exception> ?Zend_Markup_Parser_Bbcode> 7Zend_Markup_Exception> Zend_Mail> =Zend_Mail_Transport_Smtp>! EZend_Mail_Transport_Sendmail> =Zend_Mail_Transport_File>" GZend_Mail_Transport_Exception>! EZend_Mail_Transport_Abstract> /Zend_Mail_Storage>' QZend_Mail_Storage_Writable_Maildir> 9Zend_Mail_Storage_Pop3> 9Zend_Mail_Storage_Mbox>
 ?Zend_Mail_Storage_Maildir>	 9Zend_Mail_Storage_Imap> =Zend_Mail_Storage_Folder>" GZend_Mail_Storage_Folder_Mbox>% MZend_Mail_Storage_Folder_Maildir>  CZend_Mail_Storage_Exception> AZend_Mail_Storage_Abstract> ;Zend_Mail_Protocol_Smtp>' QZend_Mail_Protocol_Smtp_Auth_Plain>' QZend_Mail_Protocol_Smtp_Auth_Login>)  UZend_Mail_Protocol_Smtp_Auth_Crammd5> ;Zend_Mail_Protocol_Pop3>~ ;Zend_Mail_Protocol_Imap>!} EZend_Mail_Protocol_Exception> | CZend_Mail_Protocol_Abstract>{ )Zend_Mail_Part>z 3Zend_Mail_Part_File>y /Zend_Mail_Message>x 9Zend_Mail_Message_File>w 3Zend_Mail_Exception>v Zend_Log> u CZend_Log_Writer_ZendMonitor>t 9Zend_Log_Writer_Syslog>s 9Zend_Log_Writer_Stream>r 5Zend_Log_Writer_Null>q 5Zend_Log_Writer_Mock>p 5Zend_Log_Writer_Mail>o ;Zend_Log_Writer_Firebug>n 1Zend_Log_Writer_Db>m =Zend_Log_Writer_Abstract>l 9Zend_Log_Formatter_Xml>k ?Zend_Log_Formatter_Simple>j AZend_Log_Formatter_Firebug> i CZend_Log_Formatter_Abstract>h =Zend_Log_Filter_Suppress>g =Zend_Log_Filter_Priority>f ;Zend_Log_Filter_Message>e =Zend_Log_Filter_Abstract>d 1Zend_Log_Exception>   n |U4mCxS)\4i;





w
Z
7
					u	Q	3	T3pM({d>V,z[:rG{U5vT8                                         'I QZend_Pdf_FileParserDataSource_File>H 3Zend_Pdf_FileParser>G ?Zend_Pdf_FileParser_Image>"F GZend_Pdf_FileParser_Image_Png>E =Zend_Pdf_FileParser_Font>&D OZend_Pdf_FileParser_Font_OpenType>/C aZend_Pdf_FileParser_Font_OpenType_TrueType>B 1Zend_Pdf_Exception>A ;Zend_Pdf_ElementFactory>"@ GZend_Pdf_ElementFactory_Proxy>? -Zend_Pdf_Element>> ;Zend_Pdf_Element_String>#= IZend_Pdf_Element_String_Binary>< ;Zend_Pdf_Element_Stream>; AZend_Pdf_Element_Reference>%: MZend_Pdf_Element_Reference_Table>'9 QZend_Pdf_Element_Reference_Context>8 ;Zend_Pdf_Element_Object>#7 IZend_Pdf_Element_Object_Stream>6 =Zend_Pdf_Element_Numeric>5 7Zend_Pdf_Element_Null>4 7Zend_Pdf_Element_Name> 3 CZend_Pdf_Element_Dictionary>2 =Zend_Pdf_Element_Boolean>1 9Zend_Pdf_Element_Array>0 5Zend_Pdf_Destination>/ ?Zend_Pdf_Destination_Zoom>!. EZend_Pdf_Destination_Unknown>- AZend_Pdf_Destination_Named>', QZend_Pdf_Destination_FitVertically>&+ OZend_Pdf_Destination_FitRectangle>)* UZend_Pdf_Destination_FitHorizontally>2) gZend_Pdf_Destination_FitBoundingBoxVertically>4( kZend_Pdf_Destination_FitBoundingBoxHorizontally>(' SZend_Pdf_Destination_FitBoundingBox>& =Zend_Pdf_Destination_Fit>"% GZend_Pdf_Destination_Explicit>$ )Zend_Pdf_Color># 1Zend_Pdf_Color_Rgb>" 3Zend_Pdf_Color_Html>! =Zend_Pdf_Color_GrayScale>  3Zend_Pdf_Color_Cmyk> 'Zend_Pdf_Cmap> AZend_Pdf_Cmap_TrimmedTable>! EZend_Pdf_Cmap_SegmentToDelta> AZend_Pdf_Cmap_ByteEncoding>& OZend_Pdf_Cmap_ByteEncoding_Static> +Zend_Pdf_Canvas> =Zend_Pdf_Canvas_Abstract> 3Zend_Pdf_Annotation> =Zend_Pdf_Annotation_Text> AZend_Pdf_Annotation_Markup> =Zend_Pdf_Annotation_Link>' QZend_Pdf_Annotation_FileAttachment> +Zend_Pdf_Action> 3Zend_Pdf_Action_URI> ;Zend_Pdf_Action_Unknown> 7Zend_Pdf_Action_Trans> 9Zend_Pdf_Action_Thread> AZend_Pdf_Action_SubmitForm> 7Zend_Pdf_Action_Sound>  CZend_Pdf_Action_SetOCGState> ?Zend_Pdf_Action_ResetForm>
 ?Zend_Pdf_Action_Rendition>	 7Zend_Pdf_Action_Named> 7Zend_Pdf_Action_Movie> 9Zend_Pdf_Action_Launch> AZend_Pdf_Action_JavaScript> AZend_Pdf_Action_ImportData> 5Zend_Pdf_Action_Hide> 7Zend_Pdf_Action_GoToR> 7Zend_Pdf_Action_GoToE> AZend_Pdf_Action_GoTo3DView>  5Zend_Pdf_Action_GoTo> )Zend_Paginator>-~ ]Zend_Paginator_SerializableLimitIterator>*} WZend_Paginator_ScrollingStyle_Sliding>*| WZend_Paginator_ScrollingStyle_Jumping>*{ WZend_Paginator_ScrollingStyle_Elastic>&z OZend_Paginator_ScrollingStyle_All>y =Zend_Paginator_Exception> x CZend_Paginator_Adapter_Null>$w KZend_Paginator_Adapter_Iterator>)v UZend_Paginator_Adapter_DbTableSelect>$u KZend_Paginator_Adapter_DbSelect>!t EZend_Paginator_Adapter_Array>s #Zend_OpenId>r 5Zend_OpenId_Provider>q ?Zend_OpenId_Provider_User>&p OZend_OpenId_Provider_User_Session>!o EZend_OpenId_Provider_Storage>&n OZend_OpenId_Provider_Storage_File>m 7Zend_OpenId_Extension>l AZend_OpenId_Extension_Sreg>k 7Zend_OpenId_Exception>j 5Zend_OpenId_Consumer>!i EZend_OpenId_Consumer_Storage>&h OZend_OpenId_Consumer_Storage_File>g !Zend_Oauth>f -Zend_Oauth_Token>e =Zend_Oauth_Token_Request>'d QZend_Oauth_Token_AuthorizedRequest>c ;Zend_Oauth_Token_Access>+b YZend_Oauth_Signature_SignatureAbstract>a =Zend_Oauth_Signature_Rsa>#` IZend_Oauth_Signature_Plaintext>_ ?Zend_Oauth_Signature_Hmac>^ +Zend_Oauth_Http>] ;Zend_Oauth_Http_Utility>&\ OZend_Oauth_Http_UserAuthorization>   f  lBlL3R+q:F	


N
			a	%d?sU>&k@oD#vJ-	|]J,mK.rH(    / 3Zend_Rest_Exception>. 5Zend_Rest_Controller>- -Zend_Rest_Client>, ;Zend_Rest_Client_Result>&+ OZend_Rest_Client_Result_Exception>* AZend_Rest_Client_Exception>) 'Zend_Registry>( =Zend_Reflection_Property>' ?Zend_Reflection_Parameter>& 9Zend_Reflection_Method>% =Zend_Reflection_Function>$ 5Zend_Reflection_File># ?Zend_Reflection_Extension>" ?Zend_Reflection_Exception>! =Zend_Reflection_Docblock>!  EZend_Reflection_Docblock_Tag>( SZend_Reflection_Docblock_Tag_Return>' QZend_Reflection_Docblock_Tag_Param> 7Zend_Reflection_Class> !Zend_Queue> 9Zend_Queue_Stomp_Frame> ;Zend_Queue_Stomp_Client>' QZend_Queue_Stomp_Client_Connection> 1Zend_Queue_Message># IZend_Queue_Message_PlatformJob>  CZend_Queue_Message_Iterator> 5Zend_Queue_Exception>( SZend_Queue_Adapter_PlatformJobQueue> ;Zend_Queue_Adapter_Null>! EZend_Queue_Adapter_Memcacheq> 7Zend_Queue_Adapter_Db>  CZend_Queue_Adapter_Db_Queue>" GZend_Queue_Adapter_Db_Message> =Zend_Queue_Adapter_Array>' QZend_Queue_Adapter_AdapterAbstract>  CZend_Queue_Adapter_Activemq> -Zend_ProgressBar>
 AZend_ProgressBar_Exception>	 =Zend_ProgressBar_Adapter>$ KZend_ProgressBar_Adapter_JsPush>$ KZend_ProgressBar_Adapter_JsPull>' QZend_ProgressBar_Adapter_Exception>% MZend_ProgressBar_Adapter_Console> Zend_Pdf>! EZend_Pdf_UpdateInfoContainer> -Zend_Pdf_Trailer> ;Zend_Pdf_Trailer_Keeper>  AZend_Pdf_Trailer_Generator> +Zend_Pdf_Target>~ )Zend_Pdf_Style>} 7Zend_Pdf_StringParser>| /Zend_Pdf_Resource>{ ?Zend_Pdf_Resource_Unified>#z IZend_Pdf_Resource_ImageFactory>y ;Zend_Pdf_Resource_Image>!x EZend_Pdf_Resource_Image_Tiff> w CZend_Pdf_Resource_Image_Png>!v EZend_Pdf_Resource_Image_Jpeg>$u KZend_Pdf_Resource_GraphicsState>t 9Zend_Pdf_Resource_Font>!s EZend_Pdf_Resource_Font_Type0>"r GZend_Pdf_Resource_Font_Simple>+q YZend_Pdf_Resource_Font_Simple_Standard>8p sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats>6o oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman>7n qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic>;m yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic>5l mZend_Pdf_Resource_Font_Simple_Standard_TimesBold>2k gZend_Pdf_Resource_Font_Simple_Standard_Symbol><j {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaOblique>Ai Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique>9h uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold>5g mZend_Pdf_Resource_Font_Simple_Standard_Helvetica>:f wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique>>e Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique>7d qZend_Pdf_Resource_Font_Simple_Standard_CourierBold>3c iZend_Pdf_Resource_Font_Simple_Standard_Courier>)b UZend_Pdf_Resource_Font_Simple_Parsed>2a gZend_Pdf_Resource_Font_Simple_Parsed_TrueType>*` WZend_Pdf_Resource_Font_FontDescriptor>%_ MZend_Pdf_Resource_Font_Extracted>#^ IZend_Pdf_Resource_Font_CidFont>,] [Zend_Pdf_Resource_Font_CidFont_TrueType> \ CZend_Pdf_Resource_Extractor>$[ KZend_Pdf_Resource_ContentStream>3Z iZend_Pdf_RecursivelyIteratableObjectsContainer>Y +Zend_Pdf_Parser>X 'Zend_Pdf_Page>W -Zend_Pdf_Outline>V ;Zend_Pdf_Outline_Loaded>U =Zend_Pdf_Outline_Created>T /Zend_Pdf_NameTree>S )Zend_Pdf_Image>R 'Zend_Pdf_Font>Q ?Zend_Pdf_Filter_RunLength> P CZend_Pdf_Filter_Compression>$O KZend_Pdf_Filter_Compression_Lzw>&N OZend_Pdf_Filter_Compression_Flate>M =Zend_Pdf_Filter_AsciiHex>L ;Zend_Pdf_Filter_Ascii85>"K GZend_Pdf_FileParserDataSource>)J UZend_Pdf_FileParserDataSource_String>   Q  D8vBs8wN"




f
G
"				l	=nDeDrDq4h7sFT'e2   %  MZend_Search_Lucene_Search_Weight>* WZend_Search_Lucene_Search_Weight_Term>,~ [Zend_Search_Lucene_Search_Weight_Phrase>/} aZend_Search_Lucene_Search_Weight_MultiTerm>+| YZend_Search_Lucene_Search_Weight_Empty>-{ ]Zend_Search_Lucene_Search_Weight_Boolean>)z UZend_Search_Lucene_Search_Similarity>1y eZend_Search_Lucene_Search_Similarity_Default>)x UZend_Search_Lucene_Search_QueryToken>3w iZend_Search_Lucene_Search_QueryParserException>1v eZend_Search_Lucene_Search_QueryParserContext>*u WZend_Search_Lucene_Search_QueryParser>)t UZend_Search_Lucene_Search_QueryLexer>'s QZend_Search_Lucene_Search_QueryHit>)r UZend_Search_Lucene_Search_QueryEntry>.q _Zend_Search_Lucene_Search_QueryEntry_Term>2p gZend_Search_Lucene_Search_QueryEntry_Subquery>0o cZend_Search_Lucene_Search_QueryEntry_Phrase>$n KZend_Search_Lucene_Search_Query>-m ]Zend_Search_Lucene_Search_Query_Wildcard>)l UZend_Search_Lucene_Search_Query_Term>*k WZend_Search_Lucene_Search_Query_Range>2j gZend_Search_Lucene_Search_Query_Preprocessing>7i qZend_Search_Lucene_Search_Query_Preprocessing_Term>9h uZend_Search_Lucene_Search_Query_Preprocessing_Phrase>8g sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy>+f YZend_Search_Lucene_Search_Query_Phrase>.e _Zend_Search_Lucene_Search_Query_MultiTerm>2d gZend_Search_Lucene_Search_Query_Insignificant>*c WZend_Search_Lucene_Search_Query_Fuzzy>*b WZend_Search_Lucene_Search_Query_Empty>,a [Zend_Search_Lucene_Search_Query_Boolean>2` gZend_Search_Lucene_Search_Highlighter_Default>:_ wZend_Search_Lucene_Search_BooleanExpressionRecognizer>^ =Zend_Search_Lucene_Proxy>%] MZend_Search_Lucene_PriorityQueue>/\ aZend_Search_Lucene_Interface_MultiSearcher>#[ IZend_Search_Lucene_LockManager>$Z KZend_Search_Lucene_Index_Writer>0Y cZend_Search_Lucene_Index_TermsPriorityQueue>&X OZend_Search_Lucene_Index_TermInfo>"W GZend_Search_Lucene_Index_Term>+V YZend_Search_Lucene_Index_SegmentWriter>8U sZend_Search_Lucene_Index_SegmentWriter_StreamWriter>:T wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter>+S YZend_Search_Lucene_Index_SegmentMerger>)R UZend_Search_Lucene_Index_SegmentInfo>'Q QZend_Search_Lucene_Index_FieldInfo>(P SZend_Search_Lucene_Index_DocsFilter>.O _Zend_Search_Lucene_Index_DictionaryLoader>!N EZend_Search_Lucene_FSMAction>M 9Zend_Search_Lucene_FSM>L =Zend_Search_Lucene_Field>!K EZend_Search_Lucene_Exception> J CZend_Search_Lucene_Document>%I MZend_Search_Lucene_Document_Xlsx>%H MZend_Search_Lucene_Document_Pptx>(G SZend_Search_Lucene_Document_OpenXml>%F MZend_Search_Lucene_Document_Html>*E WZend_Search_Lucene_Document_Exception>%D MZend_Search_Lucene_Document_Docx>,C [Zend_Search_Lucene_Analysis_TokenFilter>6B oZend_Search_Lucene_Analysis_TokenFilter_StopWords>7A qZend_Search_Lucene_Analysis_TokenFilter_ShortWords>:@ wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8>6? oZend_Search_Lucene_Analysis_TokenFilter_LowerCase>&> OZend_Search_Lucene_Analysis_Token>)= UZend_Search_Lucene_Analysis_Analyzer>0< cZend_Search_Lucene_Analysis_Analyzer_Common>8; sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num>I: Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive>59 mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8>F8 Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive>87 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum>I6 Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive>55 mZend_Search_Lucene_Analysis_Analyzer_Common_Text>F4 Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive>3 7Zend_Search_Exception>2 -Zend_Rest_Server>1 AZend_Rest_Server_Exception>0 +Zend_Rest_Route>   ^ h9mHxS1[6jD 




f
I
$				k	=	a=`7pDjH"Z+dH$f!{J                                                               C^ Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount>-] ]Zend_Service_DeveloperGarden_Client_Soap>2\ gZend_Service_DeveloperGarden_Client_Exception>7[ qZend_Service_DeveloperGarden_Client_ClientAbstract>1Z eZend_Service_DeveloperGarden_BaseUserService>AY Zend_Service_DeveloperGarden_BaseUserService_AccountBalance>X 9Zend_Service_Delicious>&W OZend_Service_Delicious_SimplePost>$V KZend_Service_Delicious_PostList> U CZend_Service_Delicious_Post>%T MZend_Service_Delicious_Exception> S CZend_Service_Audioscrobbler>R 3Zend_Service_Amazon>Q ;Zend_Service_Amazon_Sqs>&P OZend_Service_Amazon_Sqs_Exception>!O EZend_Service_Amazon_SimpleDb>*N WZend_Service_Amazon_SimpleDb_Response>&M OZend_Service_Amazon_SimpleDb_Page>+L YZend_Service_Amazon_SimpleDb_Exception>+K YZend_Service_Amazon_SimpleDb_Attribute>'J QZend_Service_Amazon_SimilarProduct>I 9Zend_Service_Amazon_S3>"H GZend_Service_Amazon_S3_Stream>%G MZend_Service_Amazon_S3_Exception>"F GZend_Service_Amazon_ResultSet>E ?Zend_Service_Amazon_Query>!D EZend_Service_Amazon_OfferSet>C ?Zend_Service_Amazon_Offer>&B OZend_Service_Amazon_ListmaniaList>A =Zend_Service_Amazon_Item>@ ?Zend_Service_Amazon_Image>"? GZend_Service_Amazon_Exception>(> SZend_Service_Amazon_EditorialReview>= ;Zend_Service_Amazon_Ec2>+< YZend_Service_Amazon_Ec2_Securitygroups>%; MZend_Service_Amazon_Ec2_Response>#: IZend_Service_Amazon_Ec2_Region>$9 KZend_Service_Amazon_Ec2_Keypair>%8 MZend_Service_Amazon_Ec2_Instance>-7 ]Zend_Service_Amazon_Ec2_Instance_Windows>.6 _Zend_Service_Amazon_Ec2_Instance_Reserved>"5 GZend_Service_Amazon_Ec2_Image>&4 OZend_Service_Amazon_Ec2_Exception>&3 OZend_Service_Amazon_Ec2_Elasticip> 2 CZend_Service_Amazon_Ec2_Ebs>'1 QZend_Service_Amazon_Ec2_CloudWatch>.0 _Zend_Service_Amazon_Ec2_Availabilityzones>%/ MZend_Service_Amazon_Ec2_Abstract>'. QZend_Service_Amazon_CustomerReview>'- QZend_Service_Amazon_Authentication>*, WZend_Service_Amazon_Authentication_V2>*+ WZend_Service_Amazon_Authentication_V1>** WZend_Service_Amazon_Authentication_S3>1) eZend_Service_Amazon_Authentication_Exception>$( KZend_Service_Amazon_Accessories>!' EZend_Service_Amazon_Abstract>& 5Zend_Service_Akismet>% 7Zend_Service_Abstract>$ 9Zend_Server_Reflection>'# QZend_Server_Reflection_ReturnValue>%" MZend_Server_Reflection_Prototype>%! MZend_Server_Reflection_Parameter>   CZend_Server_Reflection_Node>" GZend_Server_Reflection_Method>$ KZend_Server_Reflection_Function>- ]Zend_Server_Reflection_Function_Abstract>% MZend_Server_Reflection_Exception>! EZend_Server_Reflection_Class>! EZend_Server_Method_Prototype>! EZend_Server_Method_Parameter>" GZend_Server_Method_Definition>  CZend_Server_Method_Callback> 7Zend_Server_Exception> 9Zend_Server_Definition> /Zend_Server_Cache> 5Zend_Server_Abstract> +Zend_Serializer> ?Zend_Serializer_Exception>! EZend_Serializer_Adapter_Wddx>) UZend_Serializer_Adapter_PythonPickle>) UZend_Serializer_Adapter_PhpSerialize>$ KZend_Serializer_Adapter_PhpCode>! EZend_Serializer_Adapter_Json>% MZend_Serializer_Adapter_Igbinary>!
 EZend_Serializer_Adapter_Amf3>!	 EZend_Serializer_Adapter_Amf0>, [Zend_Serializer_Adapter_AdapterAbstract> 1Zend_Search_Lucene>0 cZend_Search_Lucene_TermStreamsPriorityQueue>$ KZend_Search_Lucene_Storage_File>+ YZend_Search_Lucene_Storage_File_Memory>/ aZend_Search_Lucene_Storage_File_Filesystem>) UZend_Search_Lucene_Storage_Directory>4 kZend_Search_Lucene_Storage_Directory_Filesystem>   4  r4f2i.mf

_
			S;:ubx/c&Im,                                            C Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCall>G Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced>= }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCall>A Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatus>A Zend_Service_DeveloperGarden_Request_SmsValidation_Validate>N Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeyword>C Zend_Service_DeveloperGarden_Request_SmsValidation_Invalidate>L Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbers>B
 Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract>9	 uZend_Service_DeveloperGarden_Request_SendSms_SendSMS>> Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS>9 uZend_Service_DeveloperGarden_Request_RequestAbstract>I Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequest>E Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest>3 iZend_Service_DeveloperGarden_Request_Exception>R %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequest>Y 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequest>d IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequest>Q  #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequest>R %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequest>Y~ 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequest>d} IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequest>Q| #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequest>O{ Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequest>Uz +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequest>Uy +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequest>Vx -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequest>aw CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequest>Zv 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequest>Tu )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequest>Rt %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequest>Ys 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequest>Qr #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequest>Qq #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequest>ap CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequest>No Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformation>Ln Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalance>Jm Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool>-l ]Zend_Service_DeveloperGarden_LocalSearch>>k Zend_Service_DeveloperGarden_LocalSearch_SearchParameters>7j qZend_Service_DeveloperGarden_LocalSearch_Exception>,i [Zend_Service_DeveloperGarden_IpLocation>6h oZend_Service_DeveloperGarden_IpLocation_IpAddress>+g YZend_Service_DeveloperGarden_Exception>,f [Zend_Service_DeveloperGarden_Credential>0e cZend_Service_DeveloperGarden_ConferenceCall>Cd Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatus>Cc Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail><b {Zend_Service_DeveloperGarden_ConferenceCall_Participant>:a wZend_Service_DeveloperGarden_ConferenceCall_Exception>D` 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceSchedule>B_ Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail>   - j {$p	PM0

|
"		d	 .r]P0`(I   j        A? Zend_Service_DeveloperGarden_Response_IpLocation_RegionType>K> Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseType>G= Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponse>L< Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationType>I; Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType>>: Zend_Service_DeveloperGarden_Response_IpLocation_CityType>49 kZend_Service_DeveloperGarden_Response_Exception>T8 )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse>[7 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponse>f6 MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponse>S5 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponse>T4 )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse>[3 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponse>f2 MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponse>S1 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponse>U0 +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType>Q/ #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse>[. 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseType>W- /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse>[, 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseType>W+ /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse>\* 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseType>X) 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponse>g( OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseType>c' GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse>`& AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType>\% 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponse>Z$ 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseType>V# -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponse>X" 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseType>T! )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse>_  ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType>[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponse>W /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType>S 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponse>Q #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstract>S 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponse>J Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType>g OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseType>c GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponse>W /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse>U +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponse>S 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse>3 iZend_Service_DeveloperGarden_Response_BaseType>J Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstract>   G  ^}$JH\

o
			X	+WwNvE['Z,pAhL$\5                                        . _Zend_Service_ReCaptcha_MailHide_Exception>% MZend_Service_ReCaptcha_Exception> 7Zend_Service_Nirvanix># IZend_Service_Nirvanix_Response>) UZend_Service_Nirvanix_Namespace_Imfs>) UZend_Service_Nirvanix_Namespace_Base>$  KZend_Service_Nirvanix_Exception> 7Zend_Service_LiveDocx>$~ KZend_Service_LiveDocx_MailMerge>$} KZend_Service_LiveDocx_Exception>| 3Zend_Service_Flickr>"{ GZend_Service_Flickr_ResultSet>z AZend_Service_Flickr_Result>y ?Zend_Service_Flickr_Image>x 9Zend_Service_Exception>w ?Zend_Service_Ebay_Finding>)v UZend_Service_Ebay_Finding_Storefront>+u YZend_Service_Ebay_Finding_ShippingInfo>+t YZend_Service_Ebay_Finding_Set_Abstract>,s [Zend_Service_Ebay_Finding_SellingStatus>)r UZend_Service_Ebay_Finding_SellerInfo>,q [Zend_Service_Ebay_Finding_Search_Result>*p WZend_Service_Ebay_Finding_Search_Item>.o _Zend_Service_Ebay_Finding_Search_Item_Set>0n cZend_Service_Ebay_Finding_Response_Keywords>-m ]Zend_Service_Ebay_Finding_Response_Items>2l gZend_Service_Ebay_Finding_Response_Histograms>0k cZend_Service_Ebay_Finding_Response_Abstract>/j aZend_Service_Ebay_Finding_PaginationOutput>*i WZend_Service_Ebay_Finding_ListingInfo>(h SZend_Service_Ebay_Finding_Exception>,g [Zend_Service_Ebay_Finding_Error_Message>)f UZend_Service_Ebay_Finding_Error_Data>-e ]Zend_Service_Ebay_Finding_Error_Data_Set>'d QZend_Service_Ebay_Finding_Category>1c eZend_Service_Ebay_Finding_Category_Histogram>5b mZend_Service_Ebay_Finding_Category_Histogram_Set>;a yZend_Service_Ebay_Finding_Category_Histogram_Container>%` MZend_Service_Ebay_Finding_Aspect>)_ UZend_Service_Ebay_Finding_Aspect_Set>5^ mZend_Service_Ebay_Finding_Aspect_Histogram_Value>9] uZend_Service_Ebay_Finding_Aspect_Histogram_Value_Set>9\ uZend_Service_Ebay_Finding_Aspect_Histogram_Container>'[ QZend_Service_Ebay_Finding_Abstract> Z CZend_Service_Ebay_Exception>Y AZend_Service_Ebay_Abstract>+X YZend_Service_DeveloperGarden_VoiceCall>/W aZend_Service_DeveloperGarden_SmsValidation>)V UZend_Service_DeveloperGarden_SendSms>5U mZend_Service_DeveloperGarden_SecurityTokenServer>;T yZend_Service_DeveloperGarden_SecurityTokenServer_Cache>KS Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstract>LR Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponse>PQ !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponse>GP Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponse>JO Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponse>KN Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2Response>LM Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponse>IL Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumber>WK /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponse>JJ Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponse>UI +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponse>CH Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponse>CG Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstract>HF Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponse>UE +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponse>QD #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponse>IC Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception>;B yZend_Service_DeveloperGarden_Response_ResponseAbstract>OA Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseType>K@ Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponse>   Q  a9~Y6b4}X.qQ*



l
7
				`	3	S-~<Kb>h1Ik;                              2W gZend_Service_WindowsAzure_Storage_Blob_Stream>;V yZend_Service_WindowsAzure_Storage_BatchStorageAbstract>,U [Zend_Service_WindowsAzure_Storage_Batch>-T ]Zend_Service_WindowsAzure_SessionHandler>>S Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract>1R eZend_Service_WindowsAzure_RetryPolicy_RetryN>2Q gZend_Service_WindowsAzure_RetryPolicy_NoRetry>4P kZend_Service_WindowsAzure_RetryPolicy_Exception>(O SZend_Service_WindowsAzure_Exception>JN Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscription>2M gZend_Service_WindowsAzure_Diagnostics_Manager>3L iZend_Service_WindowsAzure_Diagnostics_LogLevel>4K kZend_Service_WindowsAzure_Diagnostics_Exception>NJ Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscription>HI Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLog>LH Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCounters>KG Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstract><F {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogs>AE Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstance>DD 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectories>UC +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogs>DB 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSources>8A sZend_Service_WindowsAzure_Credentials_SharedKeyLite>4@ kZend_Service_WindowsAzure_Credentials_SharedKey>A? Zend_Service_WindowsAzure_Credentials_SharedAccessSignature>4> kZend_Service_WindowsAzure_Credentials_Exception>>= Zend_Service_WindowsAzure_Credentials_CredentialsAbstract>< 5Zend_Service_Twitter> ; CZend_Service_Twitter_Search>#: IZend_Service_Twitter_Exception>9 ;Zend_Service_Technorati>#8 IZend_Service_Technorati_Weblog>"7 GZend_Service_Technorati_Utils>*6 WZend_Service_Technorati_TagsResultSet>'5 QZend_Service_Technorati_TagsResult>)4 UZend_Service_Technorati_TagResultSet>&3 OZend_Service_Technorati_TagResult>,2 [Zend_Service_Technorati_SearchResultSet>)1 UZend_Service_Technorati_SearchResult>&0 OZend_Service_Technorati_ResultSet>#/ IZend_Service_Technorati_Result>*. WZend_Service_Technorati_KeyInfoResult>*- WZend_Service_Technorati_GetInfoResult>&, OZend_Service_Technorati_Exception>1+ eZend_Service_Technorati_DailyCountsResultSet>.* _Zend_Service_Technorati_DailyCountsResult>,) [Zend_Service_Technorati_CosmosResultSet>)( UZend_Service_Technorati_CosmosResult>+' YZend_Service_Technorati_BlogInfoResult>#& IZend_Service_Technorati_Author>% ;Zend_Service_StrikeIron>($ SZend_Service_StrikeIron_ZipCodeInfo>2# gZend_Service_StrikeIron_USAddressVerification>-" ]Zend_Service_StrikeIron_SalesUseTaxBasic>&! OZend_Service_StrikeIron_Exception>&  OZend_Service_StrikeIron_Decorator>! EZend_Service_StrikeIron_Base> ;Zend_Service_SlideShare>& OZend_Service_SlideShare_SlideShow>& OZend_Service_SlideShare_Exception> 1Zend_Service_Simpy>$ KZend_Service_Simpy_WatchlistSet>* WZend_Service_Simpy_WatchlistFilterSet>' QZend_Service_Simpy_WatchlistFilter>! EZend_Service_Simpy_Watchlist> ?Zend_Service_Simpy_TagSet> 9Zend_Service_Simpy_Tag> AZend_Service_Simpy_NoteSet> ;Zend_Service_Simpy_Note> AZend_Service_Simpy_LinkSet>! EZend_Service_Simpy_LinkQuery> ;Zend_Service_Simpy_Link>% MZend_Service_ShortUrl_TinyUrlCom>& OZend_Service_ShortUrl_MetamarkNet>! EZend_Service_ShortUrl_JdemCz> AZend_Service_ShortUrl_IsGd>$ KZend_Service_ShortUrl_Exception>,
 [Zend_Service_ShortUrl_AbstractShortener>	 9Zend_Service_ReCaptcha>$ KZend_Service_ReCaptcha_Response>$ KZend_Service_ReCaptcha_MailHide>   _  b%Hf0rK!uO&




a
7
					s	J	mM-
uL$`I"~]F+d6T'j<gD+    $6 KZend_Text_Table_Decorator_Ascii>5 9Zend_Text_Table_Column>4 3Zend_Text_MultiByte>3 -Zend_Text_Figlet>2 AZend_Text_Figlet_Exception>1 3Zend_Text_Exception>&0 OZend_Test_PHPUnit_Db_SimpleTester>,/ [Zend_Test_PHPUnit_Db_Operation_Truncate>*. WZend_Test_PHPUnit_Db_Operation_Insert>-- ]Zend_Test_PHPUnit_Db_Operation_DeleteAll>*, WZend_Test_PHPUnit_Db_Metadata_Generic>#+ IZend_Test_PHPUnit_Db_Exception>,* [Zend_Test_PHPUnit_Db_DataSet_QueryTable>.) _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet>0( cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet>)' UZend_Test_PHPUnit_Db_DataSet_DbTable>*& WZend_Test_PHPUnit_Db_DataSet_DbRowset>$% KZend_Test_PHPUnit_Db_Connection>'$ QZend_Test_PHPUnit_DatabaseTestCase>)# UZend_Test_PHPUnit_ControllerTestCase>0" cZend_Test_PHPUnit_Constraint_ResponseHeader>*! WZend_Test_PHPUnit_Constraint_Redirect>+  YZend_Test_PHPUnit_Constraint_Exception>* WZend_Test_PHPUnit_Constraint_DomQuery> 7Zend_Test_DbStatement> 3Zend_Test_DbAdapter> /Zend_Tag_ItemList> 'Zend_Tag_Item> 1Zend_Tag_Exception> )Zend_Tag_Cloud> =Zend_Tag_Cloud_Exception>! EZend_Tag_Cloud_Decorator_Tag>% MZend_Tag_Cloud_Decorator_HtmlTag>' QZend_Tag_Cloud_Decorator_HtmlCloud>' QZend_Tag_Cloud_Decorator_Exception># IZend_Tag_Cloud_Decorator_Cloud> )Zend_Soap_Wsdl>/ aZend_Soap_Wsdl_Strategy_DefaultComplexType>& OZend_Soap_Wsdl_Strategy_Composite>0 cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence>/ aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex>$ KZend_Soap_Wsdl_Strategy_AnyType>% MZend_Soap_Wsdl_Strategy_Abstract> =Zend_Soap_Wsdl_Exception>
 -Zend_Soap_Server>	 AZend_Soap_Server_Exception> -Zend_Soap_Client> 9Zend_Soap_Client_Local> AZend_Soap_Client_Exception> ;Zend_Soap_Client_DotNet> ;Zend_Soap_Client_Common> 9Zend_Soap_AutoDiscover>% MZend_Soap_AutoDiscover_Exception> %Zend_Session>)  UZend_Session_Validator_HttpUserAgent>$ KZend_Session_Validator_Abstract>'~ QZend_Session_SaveHandler_Exception>%} MZend_Session_SaveHandler_DbTable>| 9Zend_Session_Namespace>{ 9Zend_Session_Exception>z 7Zend_Session_Abstract>y 1Zend_Service_Yahoo>$x KZend_Service_Yahoo_WebResultSet>!w EZend_Service_Yahoo_WebResult>&v OZend_Service_Yahoo_VideoResultSet>#u IZend_Service_Yahoo_VideoResult>!t EZend_Service_Yahoo_ResultSet>s ?Zend_Service_Yahoo_Result>)r UZend_Service_Yahoo_PageDataResultSet>&q OZend_Service_Yahoo_PageDataResult>%p MZend_Service_Yahoo_NewsResultSet>"o GZend_Service_Yahoo_NewsResult>&n OZend_Service_Yahoo_LocalResultSet>#m IZend_Service_Yahoo_LocalResult>+l YZend_Service_Yahoo_InlinkDataResultSet>(k SZend_Service_Yahoo_InlinkDataResult>&j OZend_Service_Yahoo_ImageResultSet>#i IZend_Service_Yahoo_ImageResult>h =Zend_Service_Yahoo_Image>&g OZend_Service_WindowsAzure_Storage>4f kZend_Service_WindowsAzure_Storage_TableInstance>7e qZend_Service_WindowsAzure_Storage_TableEntityQuery>2d gZend_Service_WindowsAzure_Storage_TableEntity>,c [Zend_Service_WindowsAzure_Storage_Table><b {Zend_Service_WindowsAzure_Storage_StorageEntityAbstract>7a qZend_Service_WindowsAzure_Storage_SignedIdentifier>3` iZend_Service_WindowsAzure_Storage_QueueMessage>4_ kZend_Service_WindowsAzure_Storage_QueueInstance>,^ [Zend_Service_WindowsAzure_Storage_Queue>9] uZend_Service_WindowsAzure_Storage_PageRegionInstance>4\ kZend_Service_WindowsAzure_Storage_LeaseInstance>9[ uZend_Service_WindowsAzure_Storage_DynamicTableEntity>3Z iZend_Service_WindowsAzure_Storage_BlobInstance>4Y kZend_Service_WindowsAzure_Storage_BlobContainer>+X YZend_Service_WindowsAzure_Storage_Blob>   O  `F'sGy/X- K



K
 				Q	U%uFb1i5b,\ s@d4                                      0 cZend_Tool_Project_Context_Zf_ControllerFile>2 gZend_Tool_Project_Context_Zf_ConfigsDirectory>, [Zend_Tool_Project_Context_Zf_ConfigFile>0 cZend_Tool_Project_Context_Zf_CacheDirectory>/ aZend_Tool_Project_Context_Zf_BootstrapFile>6  oZend_Tool_Project_Context_Zf_ApplicationDirectory>7 qZend_Tool_Project_Context_Zf_ApplicationConfigFile>/~ aZend_Tool_Project_Context_Zf_ApisDirectory>.} _Zend_Tool_Project_Context_Zf_ActionMethod>3| iZend_Tool_Project_Context_Zf_AbstractClassFile>@{ Zend_Tool_Project_Context_System_ProjectProvidersDirectory>8z sZend_Tool_Project_Context_System_ProjectProfileFile>6y oZend_Tool_Project_Context_System_ProjectDirectory>)x UZend_Tool_Project_Context_Repository>.w _Zend_Tool_Project_Context_Filesystem_File>3v iZend_Tool_Project_Context_Filesystem_Directory>2u gZend_Tool_Project_Context_Filesystem_Abstract>(t SZend_Tool_Project_Context_Exception>-s ]Zend_Tool_Project_Context_Content_Engine>3r iZend_Tool_Project_Context_Content_Engine_Phtml>;q yZend_Tool_Project_Context_Content_Engine_CodeGenerator>0p cZend_Tool_Framework_System_Provider_Version>0o cZend_Tool_Framework_System_Provider_Phpinfo>1n eZend_Tool_Framework_System_Provider_Manifest>/m aZend_Tool_Framework_System_Provider_Config>(l SZend_Tool_Framework_System_Manifest>-k ]Zend_Tool_Framework_System_Action_Delete>-j ]Zend_Tool_Framework_System_Action_Create>!i EZend_Tool_Framework_Registry>+h YZend_Tool_Framework_Registry_Exception>+g YZend_Tool_Framework_Provider_Signature>,f [Zend_Tool_Framework_Provider_Repository>+e YZend_Tool_Framework_Provider_Exception>*d WZend_Tool_Framework_Provider_Abstract>&c OZend_Tool_Framework_Metadata_Tool>)b UZend_Tool_Framework_Metadata_Dynamic>'a QZend_Tool_Framework_Metadata_Basic>,` [Zend_Tool_Framework_Manifest_Repository>2_ gZend_Tool_Framework_Manifest_ProviderMetadata>*^ WZend_Tool_Framework_Manifest_Metadata>+] YZend_Tool_Framework_Manifest_Exception>0\ cZend_Tool_Framework_Manifest_ActionMetadata>1[ eZend_Tool_Framework_Loader_IncludePathLoader>JZ Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator>+Y YZend_Tool_Framework_Loader_BasicLoader>(X SZend_Tool_Framework_Loader_Abstract>"W GZend_Tool_Framework_Exception>'V QZend_Tool_Framework_Client_Storage>1U eZend_Tool_Framework_Client_Storage_Directory>(T SZend_Tool_Framework_Client_Response>DS 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator>'R QZend_Tool_Framework_Client_Request>(Q SZend_Tool_Framework_Client_Manifest>9P uZend_Tool_Framework_Client_Interactive_InputResponse>8O sZend_Tool_Framework_Client_Interactive_InputRequest>8N sZend_Tool_Framework_Client_Interactive_InputHandler>)M UZend_Tool_Framework_Client_Exception>'L QZend_Tool_Framework_Client_Console>DK 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Indention>DJ 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizer>CI Zend_Tool_Framework_Client_Console_ResponseDecorator_Blockize>FH Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter>0G cZend_Tool_Framework_Client_Console_Manifest>2F gZend_Tool_Framework_Client_Console_HelpSystem>6E oZend_Tool_Framework_Client_Console_ArgumentParser>&D OZend_Tool_Framework_Client_Config>(C SZend_Tool_Framework_Client_Abstract>*B WZend_Tool_Framework_Action_Repository>)A UZend_Tool_Framework_Action_Exception>$@ KZend_Tool_Framework_Action_Base>? 'Zend_TimeSync>> 1Zend_TimeSync_Sntp>= 9Zend_TimeSync_Protocol>< /Zend_TimeSync_Ntp>; ;Zend_TimeSync_Exception>: +Zend_Text_Table>9 3Zend_Text_Table_Row>8 ?Zend_Text_Table_Exception>&7 OZend_Text_Table_Decorator_Unicode>   I  ],e/QOq5



J
			~	:q3BXvBHjHh=i?                              /N aZend_Tool_Project_Provider_ProjectProvider>'M QZend_Tool_Project_Provider_Project>'L QZend_Tool_Project_Provider_Profile>&K OZend_Tool_Project_Provider_Module>%J MZend_Tool_Project_Provider_Model>(I SZend_Tool_Project_Provider_Manifest>&H OZend_Tool_Project_Provider_Layout>$G KZend_Tool_Project_Provider_Form>)F UZend_Tool_Project_Provider_Exception>'E QZend_Tool_Project_Provider_DbTable>)D UZend_Tool_Project_Provider_DbAdapter>*C WZend_Tool_Project_Provider_Controller>+B YZend_Tool_Project_Provider_Application>&A OZend_Tool_Project_Provider_Action>(@ SZend_Tool_Project_Provider_Abstract>? ?Zend_Tool_Project_Profile>'> QZend_Tool_Project_Profile_Resource>9= uZend_Tool_Project_Profile_Resource_SearchConstraints>1< eZend_Tool_Project_Profile_Resource_Container>=; }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter>5: mZend_Tool_Project_Profile_Iterator_ContextFilter>-9 ]Zend_Tool_Project_Profile_FileParser_Xml>(8 SZend_Tool_Project_Profile_Exception> 7 CZend_Tool_Project_Exception><6 {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory>05 cZend_Tool_Project_Context_Zf_ViewsDirectory>64 oZend_Tool_Project_Context_Zf_ViewScriptsDirectory>03 cZend_Tool_Project_Context_Zf_ViewScriptFile>62 oZend_Tool_Project_Context_Zf_ViewHelpersDirectory>61 oZend_Tool_Project_Context_Zf_ViewFiltersDirectory>A0 Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory>2/ gZend_Tool_Project_Context_Zf_UploadsDirectory>0. cZend_Tool_Project_Context_Zf_TestsDirectory>7- qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile>:, wZend_Tool_Project_Context_Zf_TestPHPUnitBootstrapFile>@+ Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory>1* eZend_Tool_Project_Context_Zf_TestLibraryFile>6) oZend_Tool_Project_Context_Zf_TestLibraryDirectory>:( wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFile>B' Zend_Tool_Project_Context_Zf_TestApplicationModulesDirectory>A& Zend_Tool_Project_Context_Zf_TestApplicationModuleDirectory>:% wZend_Tool_Project_Context_Zf_TestApplicationDirectory>@$ Zend_Tool_Project_Context_Zf_TestApplicationControllerFile>E# Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory>>" Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile>=! }Zend_Tool_Project_Context_Zf_TestApplicationActionMethod>4  kZend_Tool_Project_Context_Zf_TemporaryDirectory>3 iZend_Tool_Project_Context_Zf_SessionsDirectory>8 sZend_Tool_Project_Context_Zf_SearchIndexesDirectory>< {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory>8 sZend_Tool_Project_Context_Zf_PublicScriptsDirectory>1 eZend_Tool_Project_Context_Zf_PublicIndexFile>7 qZend_Tool_Project_Context_Zf_PublicImagesDirectory>1 eZend_Tool_Project_Context_Zf_PublicDirectory>5 mZend_Tool_Project_Context_Zf_ProjectProviderFile>2 gZend_Tool_Project_Context_Zf_ModulesDirectory>1 eZend_Tool_Project_Context_Zf_ModuleDirectory>1 eZend_Tool_Project_Context_Zf_ModelsDirectory>+ YZend_Tool_Project_Context_Zf_ModelFile>/ aZend_Tool_Project_Context_Zf_LogsDirectory>2 gZend_Tool_Project_Context_Zf_LocalesDirectory>2 gZend_Tool_Project_Context_Zf_LibraryDirectory>2 gZend_Tool_Project_Context_Zf_LayoutsDirectory>8 sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory>2 gZend_Tool_Project_Context_Zf_LayoutScriptFile>. _Zend_Tool_Project_Context_Zf_HtaccessFile>0 cZend_Tool_Project_Context_Zf_FormsDirectory>* WZend_Tool_Project_Context_Zf_FormFile>/
 aZend_Tool_Project_Context_Zf_DocsDirectory>-	 ]Zend_Tool_Project_Context_Zf_DbTableFile>2 gZend_Tool_Project_Context_Zf_DbTableDirectory>/ aZend_Tool_Project_Context_Zf_DataDirectory>6 oZend_Tool_Project_Context_Zf_ControllersDirectory>   q
 hAlM,z^0iAkH#




`
<
					\	9	d<tHlD!yW2bH/rL*~\<rT0
                                "? GZend_View_Helper_FormCheckbox> > CZend_View_Helper_FormButton>= 7Zend_View_Helper_Form>< ?Zend_View_Helper_Fieldset>; =Zend_View_Helper_Doctype>!: EZend_View_Helper_DeclareVars>9 9Zend_View_Helper_Cycle>8 ?Zend_View_Helper_Currency>7 =Zend_View_Helper_BaseUrl>6 ;Zend_View_Helper_Action>5 ?Zend_View_Helper_Abstract>4 3Zend_View_Exception>3 1Zend_View_Abstract>2 %Zend_Version>1 'Zend_Validate>0 AZend_Validate_StringLength>#/ IZend_Validate_Sitemap_Priority>. ?Zend_Validate_Sitemap_Loc>"- GZend_Validate_Sitemap_Lastmod>%, MZend_Validate_Sitemap_Changefreq>+ 3Zend_Validate_Regex>* 9Zend_Validate_PostCode>) 9Zend_Validate_NotEmpty>( 9Zend_Validate_LessThan>' 1Zend_Validate_Isbn>& -Zend_Validate_Ip>% /Zend_Validate_Int>$ 7Zend_Validate_InArray># ;Zend_Validate_Identical>" 1Zend_Validate_Iban>! 9Zend_Validate_Hostname>  /Zend_Validate_Hex> ?Zend_Validate_GreaterThan> 3Zend_Validate_Float>! EZend_Validate_File_WordCount> ?Zend_Validate_File_Upload> ;Zend_Validate_File_Size> ;Zend_Validate_File_Sha1>! EZend_Validate_File_NotExists>  CZend_Validate_File_MimeType> 9Zend_Validate_File_Md5> AZend_Validate_File_IsImage>$ KZend_Validate_File_IsCompressed>! EZend_Validate_File_ImageSize> ;Zend_Validate_File_Hash>! EZend_Validate_File_FilesSize>! EZend_Validate_File_Extension> ?Zend_Validate_File_Exists>' QZend_Validate_File_ExcludeMimeType>( SZend_Validate_File_ExcludeExtension> =Zend_Validate_File_Crc32> =Zend_Validate_File_Count> ;Zend_Validate_Exception>
 AZend_Validate_EmailAddress>	 5Zend_Validate_Digits>" GZend_Validate_Db_RecordExists>$ KZend_Validate_Db_NoRecordExists> ?Zend_Validate_Db_Abstract> 1Zend_Validate_Date> =Zend_Validate_CreditCard> 3Zend_Validate_Ccnum> 9Zend_Validate_Callback> 7Zend_Validate_Between>  7Zend_Validate_Barcode> AZend_Validate_Barcode_Upce>~ AZend_Validate_Barcode_Upca>} AZend_Validate_Barcode_Sscc>$| KZend_Validate_Barcode_Royalmail>"{ GZend_Validate_Barcode_Postnet>!z EZend_Validate_Barcode_Planet>#y IZend_Validate_Barcode_Leitcode> x CZend_Validate_Barcode_Itf14>w AZend_Validate_Barcode_Issn>*v WZend_Validate_Barcode_IntelligentMail>$u KZend_Validate_Barcode_Identcode>!t EZend_Validate_Barcode_Gtin14>!s EZend_Validate_Barcode_Gtin13>!r EZend_Validate_Barcode_Gtin12>q AZend_Validate_Barcode_Ean8>p AZend_Validate_Barcode_Ean5>o AZend_Validate_Barcode_Ean2> n CZend_Validate_Barcode_Ean18> m CZend_Validate_Barcode_Ean14> l CZend_Validate_Barcode_Ean13> k CZend_Validate_Barcode_Ean12>$j KZend_Validate_Barcode_Code93ext>!i EZend_Validate_Barcode_Code93>$h KZend_Validate_Barcode_Code39ext>!g EZend_Validate_Barcode_Code39>,f [Zend_Validate_Barcode_Code25interleaved>!e EZend_Validate_Barcode_Code25>*d WZend_Validate_Barcode_AdapterAbstract>c 3Zend_Validate_Alpha>b 3Zend_Validate_Alnum>a 9Zend_Validate_Abstract>` Zend_Uri>_ 'Zend_Uri_Http>^ 1Zend_Uri_Exception>] )Zend_Translate>\ 7Zend_Translate_Plural>[ =Zend_Translate_Exception>Z 9Zend_Translate_Adapter>!Y EZend_Translate_Adapter_XmlTm>!X EZend_Translate_Adapter_Xliff>W AZend_Translate_Adapter_Tmx>V AZend_Translate_Adapter_Tbx>U ?Zend_Translate_Adapter_Qt>T AZend_Translate_Adapter_Ini>#S IZend_Translate_Adapter_Gettext>R AZend_Translate_Adapter_Csv>!Q EZend_Translate_Adapter_Array>$P KZend_Tool_Project_Provider_View>$O KZend_Tool_Project_Provider_Test>   j  qN+ rN*|X5b;tJ!



{
Z
5				[	#_<Z(a2_/iH#_=pO.v`O3                  ) CZend_Amf_Adobe_Introspector?( AZend_Amf_Adobe_DbInspector?' 3Zend_Amf_Adobe_Auth?& Zend_Acl?% 'Zend_Acl_Role?$ 9Zend_Acl_Role_Registry?%# MZend_Acl_Role_Registry_Exception?" /Zend_Acl_Resource?! 1Zend_Acl_Exception?  /Zend_XmlRpc_Value> =Zend_XmlRpc_Value_Struct> =Zend_XmlRpc_Value_String> =Zend_XmlRpc_Value_Scalar> 7Zend_XmlRpc_Value_Nil> ?Zend_XmlRpc_Value_Integer>  CZend_XmlRpc_Value_Exception> =Zend_XmlRpc_Value_Double> AZend_XmlRpc_Value_DateTime>! EZend_XmlRpc_Value_Collection> ?Zend_XmlRpc_Value_Boolean>! EZend_XmlRpc_Value_BigInteger> =Zend_XmlRpc_Value_Base64> ;Zend_XmlRpc_Value_Array> 1Zend_XmlRpc_Server> ?Zend_XmlRpc_Server_System> =Zend_XmlRpc_Server_Fault>! EZend_XmlRpc_Server_Exception> =Zend_XmlRpc_Server_Cache> 5Zend_XmlRpc_Response> ?Zend_XmlRpc_Response_Http> 3Zend_XmlRpc_Request>
 ?Zend_XmlRpc_Request_Stdin>	 =Zend_XmlRpc_Request_Http>$ KZend_XmlRpc_Generator_XmlWriter>, [Zend_XmlRpc_Generator_GeneratorAbstract>& OZend_XmlRpc_Generator_DomDocument> /Zend_XmlRpc_Fault> 7Zend_XmlRpc_Exception> 1Zend_XmlRpc_Client># IZend_XmlRpc_Client_ServerProxy>+ YZend_XmlRpc_Client_ServerIntrospection>+  YZend_XmlRpc_Client_IntrospectException>% MZend_XmlRpc_Client_HttpException>&~ OZend_XmlRpc_Client_FaultException>!} EZend_XmlRpc_Client_Exception>&| OZend_Wildfire_Protocol_JsonStream>!{ EZend_Wildfire_Plugin_FirePhp>.z _Zend_Wildfire_Plugin_FirePhp_TableMessage>)y UZend_Wildfire_Plugin_FirePhp_Message>x ;Zend_Wildfire_Exception>&w OZend_Wildfire_Channel_HttpHeaders>v Zend_View>u -Zend_View_Stream>t AZend_View_Helper_UserAgent>s 5Zend_View_Helper_Url>r AZend_View_Helper_Translate>q =Zend_View_Helper_TinySrc>p AZend_View_Helper_ServerUrl>)o UZend_View_Helper_RenderToPlaceholder>!n EZend_View_Helper_Placeholder>*m WZend_View_Helper_Placeholder_Registry>4l kZend_View_Helper_Placeholder_Registry_Exception>+k YZend_View_Helper_Placeholder_Container>6j oZend_View_Helper_Placeholder_Container_Standalone>5i mZend_View_Helper_Placeholder_Container_Exception>4h kZend_View_Helper_Placeholder_Container_Abstract>!g EZend_View_Helper_PartialLoop>f =Zend_View_Helper_Partial>'e QZend_View_Helper_Partial_Exception>'d QZend_View_Helper_PaginationControl> c CZend_View_Helper_Navigation>(b SZend_View_Helper_Navigation_Sitemap>%a MZend_View_Helper_Navigation_Menu>&` OZend_View_Helper_Navigation_Links>/_ aZend_View_Helper_Navigation_HelperAbstract>,^ [Zend_View_Helper_Navigation_Breadcrumbs>] ;Zend_View_Helper_Layout>\ 7Zend_View_Helper_Json>"[ GZend_View_Helper_InlineScript>#Z IZend_View_Helper_HtmlQuicktime>Y ?Zend_View_Helper_HtmlPage> X CZend_View_Helper_HtmlObject>W ?Zend_View_Helper_HtmlList>V AZend_View_Helper_HtmlFlash>!U EZend_View_Helper_HtmlElement>T AZend_View_Helper_HeadTitle>S AZend_View_Helper_HeadStyle> R CZend_View_Helper_HeadScript>Q ?Zend_View_Helper_HeadMeta>P ?Zend_View_Helper_HeadLink>O ?Zend_View_Helper_Gravatar>"N GZend_View_Helper_FormTextarea>M ?Zend_View_Helper_FormText> L CZend_View_Helper_FormSubmit> K CZend_View_Helper_FormSelect>J AZend_View_Helper_FormReset>I AZend_View_Helper_FormRadio>"H GZend_View_Helper_FormPassword>G ?Zend_View_Helper_FormNote>'F QZend_View_Helper_FormMultiCheckbox>E AZend_View_Helper_FormLabel>D AZend_View_Helper_FormImage> C CZend_View_Helper_FormHidden>B ?Zend_View_Helper_FormFile> A CZend_View_Helper_FormErrors>!@ EZend_View_Helper_FormElement>   Z  _3sJ"tM*vPyT#



b
?
				L	c.gC  L%~]4X4d=~RU)          + YZend_Tool_Framework_Manifest_Indexable>4 kZend_Tool_Framework_Manifest_ActionManifestable>) UZend_Tool_Framework_Loader_Interface>8 sZend_Tool_Framework_Client_Storage_AdapterInterface>D 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface>; yZend_Tool_Framework_Client_Interactive_OutputInterface>: wZend_Tool_Framework_Client_Interactive_InputInterface>) UZend_Tool_Framework_Action_Interface>( SZend_Text_Table_Decorator_Interface> /Zend_Tag_Taggable>& OZend_Soap_Wsdl_Strategy_Interface>% MZend_Session_Validator_Interface>' QZend_Session_SaveHandler_Interface>$ KZend_Service_ShortUrl_Shortener>I Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Interface> 7Zend_Server_Interface>-
 ]Zend_Serializer_Adapter_AdapterInterface>4	 kZend_Search_Lucene_Search_Highlighter_Interface>! EZend_Search_Lucene_Interface>3 iZend_Search_Lucene_Index_TermsStream_Interface>$ KZend_Queue_Stomp_FrameInterface>0 cZend_Queue_Stomp_Client_ConnectionInterface>( SZend_Queue_Adapter_AdapterInterface> ?Zend_Pdf_Filter_Interface>& OZend_Pdf_ElementFactory_Interface> ?Zend_Pdf_Canvas_Interface>,  [Zend_Paginator_ScrollingStyle_Interface>$ KZend_Paginator_AdapterAggregate>%~ MZend_Paginator_Adapter_Interface>&} OZend_Oauth_Config_ConfigInterface>$| KZend_Memory_Container_Interface>1{ eZend_Markup_Renderer_TokenConverterInterface>'z QZend_Markup_Parser_ParserInterface>)y UZend_Mail_Storage_Writable_Interface>'x QZend_Mail_Storage_Folder_Interface>w =Zend_Mail_Part_Interface> v CZend_Mail_Message_Interface>!u EZend_Log_Formatter_Interface>t ?Zend_Log_Filter_Interface>s ?Zend_Log_FactoryInterface>'r QZend_Loader_PluginLoader_Interface>%q MZend_Loader_Autoloader_Interface>0p cZend_Ldap_Node_Schema_ObjectClass_Interface>2o gZend_Ldap_Node_Schema_AttributeType_Interface>3n iZend_InfoCard_Xml_Security_Transform_Interface>(m SZend_InfoCard_Xml_KeyInfo_Interface>(l SZend_InfoCard_Xml_Element_Interface>*k WZend_InfoCard_Xml_Assertion_Interface>-j ]Zend_InfoCard_Cipher_Symmetric_Interface>7i qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface>7h qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interface>+g YZend_InfoCard_Cipher_Pki_Rsa_Interface>'f QZend_InfoCard_Cipher_Pki_Interface>$e KZend_InfoCard_Adapter_Interface> d CZend_Http_UserAgent_Storage>)c UZend_Http_UserAgent_Features_Adapter>b AZend_Http_UserAgent_Device>$a KZend_Http_Client_Adapter_Stream>'` QZend_Http_Client_Adapter_Interface>_ AZend_Gdata_App_MediaSource>.^ _Zend_Form_Decorator_Marker_File_Interface>"] GZend_Form_Decorator_Interface>\ 7Zend_Filter_Interface>"[ GZend_Filter_Encrypt_Interface>+Z YZend_Filter_Compress_CompressInterface>0Y cZend_Feed_Writer_Renderer_RendererInterface>1X eZend_Feed_Writer_Extension_RendererInterface>#W IZend_Feed_Reader_FeedInterface>$V KZend_Feed_Reader_EntryInterface>7U qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface>-T ]Zend_Feed_Pubsubhubbub_CallbackInterface> S CZend_Feed_Builder_Interface> R CZend_Db_Statement_Interface>$Q KZend_Currency_CurrencyInterface>)P UZend_Crypt_Math_BigInteger_Interface>+O YZend_Controller_Router_Route_Interface>%N MZend_Controller_Router_Interface>)M UZend_Controller_Dispatcher_Interface>%L MZend_Controller_Action_Interface>&K OZend_Cloud_StorageService_Adapter>$J KZend_Cloud_QueueService_Adapter>,I [Zend_Cloud_DocumentService_QueryAdapter>'H QZend_Cloud_DocumentService_Adapter>G 5Zend_Captcha_Adapter>!F EZend_Cache_Backend_Interface>)E UZend_Cache_Backend_ExtendedInterface> D CZend_Auth_Storage_Interface> C CZend_Auth_Adapter_Interface>.B _Zend_Auth_Adapter_Http_Resolver_Interface>'A QZend_Application_Resource_Resource>   Z  `/`2tB
iJ(uR3


r
O
,
 				g	@	mAjCcF!}[/Sf0vU4wM               &t OZend_Oauth_Config_ConfigInterface?$s KZend_Memory_Container_Interface?1r eZend_Markup_Renderer_TokenConverterInterface?'q QZend_Markup_Parser_ParserInterface?)p UZend_Mail_Storage_Writable_Interface?'o QZend_Mail_Storage_Folder_Interface?n =Zend_Mail_Part_Interface? m CZend_Mail_Message_Interface?!l EZend_Log_Formatter_Interface?k ?Zend_Log_Filter_Interface?j ?Zend_Log_FactoryInterface?'i QZend_Loader_PluginLoader_Interface?%h MZend_Loader_Autoloader_Interface?0g cZend_Ldap_Node_Schema_ObjectClass_Interface?2f gZend_Ldap_Node_Schema_AttributeType_Interface?3e iZend_InfoCard_Xml_Security_Transform_Interface?(d SZend_InfoCard_Xml_KeyInfo_Interface?(c SZend_InfoCard_Xml_Element_Interface?*b WZend_InfoCard_Xml_Assertion_Interface?-a ]Zend_InfoCard_Cipher_Symmetric_Interface?7` qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface?7_ qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interface?+^ YZend_InfoCard_Cipher_Pki_Rsa_Interface?'] QZend_InfoCard_Cipher_Pki_Interface?$\ KZend_InfoCard_Adapter_Interface? [ CZend_Http_UserAgent_Storage?)Z UZend_Http_UserAgent_Features_Adapter?Y AZend_Http_UserAgent_Device?$X KZend_Http_Client_Adapter_Stream?'W QZend_Http_Client_Adapter_Interface?V AZend_Gdata_App_MediaSource?.U _Zend_Form_Decorator_Marker_File_Interface?"T GZend_Form_Decorator_Interface?S 7Zend_Filter_Interface?"R GZend_Filter_Encrypt_Interface?+Q YZend_Filter_Compress_CompressInterface?0P cZend_Feed_Writer_Renderer_RendererInterface?1O eZend_Feed_Writer_Extension_RendererInterface?#N IZend_Feed_Reader_FeedInterface?$M KZend_Feed_Reader_EntryInterface?7L qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface?-K ]Zend_Feed_Pubsubhubbub_CallbackInterface? J CZend_Feed_Builder_Interface? I CZend_Db_Statement_Interface?$H KZend_Currency_CurrencyInterface?)G UZend_Crypt_Math_BigInteger_Interface?+F YZend_Controller_Router_Route_Interface?%E MZend_Controller_Router_Interface?)D UZend_Controller_Dispatcher_Interface?%C MZend_Controller_Action_Interface?&B OZend_Cloud_StorageService_Adapter?$A KZend_Cloud_QueueService_Adapter?,@ [Zend_Cloud_DocumentService_QueryAdapter?'? QZend_Cloud_DocumentService_Adapter?> 5Zend_Captcha_Adapter?!= EZend_Cache_Backend_Interface?)< UZend_Cache_Backend_ExtendedInterface? ; CZend_Auth_Storage_Interface? : CZend_Auth_Adapter_Interface?.9 _Zend_Auth_Adapter_Http_Resolver_Interface?'8 QZend_Application_Resource_Resource?47 kZend_Application_Bootstrap_ResourceBootstrapper?,6 [Zend_Application_Bootstrap_Bootstrapper?5 ;Zend_Acl_Role_Interface? 4 CZend_Acl_Resource_Interface?3 ?Zend_Acl_Assert_Interface?#2 IZend_Wildfire_Plugin_Interface>$1 KZend_Wildfire_Channel_Interface>0 3Zend_View_Interface>'/ QZend_View_Helper_Navigation_Helper>. AZend_View_Helper_Interface>- ;Zend_Validate_Interface>+, YZend_Validate_Barcode_AdapterInterface>3+ iZend_Tool_Project_Profile_FileParser_Interface>:* wZend_Tool_Project_Context_System_TopLevelRestrictable>5) mZend_Tool_Project_Context_System_NotOverwritable>/( aZend_Tool_Project_Context_System_Interface>(' SZend_Tool_Project_Context_Interface>+& YZend_Tool_Framework_Registry_Interface>2% gZend_Tool_Framework_Registry_EnabledInterface>-$ ]Zend_Tool_Framework_Provider_Pretendable>+# YZend_Tool_Framework_Provider_Interface>." _Zend_Tool_Framework_Provider_Interactable>/! aZend_Tool_Framework_Provider_Initializable>;  yZend_Tool_Framework_Provider_DocblockManifestInterface>+ YZend_Tool_Framework_Metadata_Interface>. _Zend_Tool_Framework_Metadata_Attributable>6 oZend_Tool_Framework_Manifest_ProviderManifestable>6 oZend_Tool_Framework_Manifest_MetadataManifestable>+ YZend_Tool_Framework_Manifest_Interface>   g  [2sG lJ2uAS1



T
*					Q	(^1S,zM.rJ(_=lJ%lK#wX3                      $ KZend_Cache_Backend_Libmemcached? ;Zend_Cache_Backend_File?! EZend_Cache_Backend_BlackHole? 9Zend_Cache_Backend_Apc? %Zend_Barcode? ?Zend_Barcode_Renderer_Svg?+
 YZend_Barcode_Renderer_RendererAbstract?	 ?Zend_Barcode_Renderer_Pdf?  CZend_Barcode_Renderer_Image?$ KZend_Barcode_Renderer_Exception? =Zend_Barcode_Object_Upce? =Zend_Barcode_Object_Upca?" GZend_Barcode_Object_Royalmail?  CZend_Barcode_Object_Postnet? AZend_Barcode_Object_Planet?' QZend_Barcode_Object_ObjectAbstract?!  EZend_Barcode_Object_Leitcode? ?Zend_Barcode_Object_Itf14?"~ GZend_Barcode_Object_Identcode?"} GZend_Barcode_Object_Exception?| ?Zend_Barcode_Object_Error?{ =Zend_Barcode_Object_Ean8?z =Zend_Barcode_Object_Ean5?y =Zend_Barcode_Object_Ean2?x ?Zend_Barcode_Object_Ean13?w AZend_Barcode_Object_Code39?*v WZend_Barcode_Object_Code25interleaved?u AZend_Barcode_Object_Code25? t CZend_Barcode_Object_Code128?s 9Zend_Barcode_Exception?r Zend_Auth?q ?Zend_Auth_Storage_Session?$p KZend_Auth_Storage_NonPersistent? o CZend_Auth_Storage_Exception?n -Zend_Auth_Result?m 3Zend_Auth_Exception?l =Zend_Auth_Adapter_OpenId?k 9Zend_Auth_Adapter_Ldap?j AZend_Auth_Adapter_InfoCard?i 9Zend_Auth_Adapter_Http?)h UZend_Auth_Adapter_Http_Resolver_File?.g _Zend_Auth_Adapter_Http_Resolver_Exception? f CZend_Auth_Adapter_Exception?e =Zend_Auth_Adapter_Digest?d ?Zend_Auth_Adapter_DbTable?c -Zend_Application?#b IZend_Application_Resource_View?(a SZend_Application_Resource_UserAgent?(` SZend_Application_Resource_Translate?&_ OZend_Application_Resource_Session?%^ MZend_Application_Resource_Router?/] aZend_Application_Resource_ResourceAbstract?)\ UZend_Application_Resource_Navigation?&[ OZend_Application_Resource_Multidb?&Z OZend_Application_Resource_Modules?#Y IZend_Application_Resource_Mail?"X GZend_Application_Resource_Log?%W MZend_Application_Resource_Locale?%V MZend_Application_Resource_Layout?.U _Zend_Application_Resource_Frontcontroller?(T SZend_Application_Resource_Exception?#S IZend_Application_Resource_Dojo?!R EZend_Application_Resource_Db?+Q YZend_Application_Resource_Cachemanager?&P OZend_Application_Module_Bootstrap?'O QZend_Application_Module_Autoloader?N AZend_Application_Exception?)M UZend_Application_Bootstrap_Exception?1L eZend_Application_Bootstrap_BootstrapAbstract?)K UZend_Application_Bootstrap_Bootstrap?J ?Zend_Amf_Value_TraitsInfo?-I ]Zend_Amf_Value_Messaging_RemotingMessage?*H WZend_Amf_Value_Messaging_ErrorMessage?,G [Zend_Amf_Value_Messaging_CommandMessage?*F WZend_Amf_Value_Messaging_AsyncMessage?-E ]Zend_Amf_Value_Messaging_ArrayCollection?0D cZend_Amf_Value_Messaging_AcknowledgeMessage?-C ]Zend_Amf_Value_Messaging_AbstractMessage?!B EZend_Amf_Value_MessageHeader?A AZend_Amf_Value_MessageBody?@ =Zend_Amf_Value_ByteArray?? AZend_Amf_Util_BinaryStream?> +Zend_Amf_Server?= ?Zend_Amf_Server_Exception?< /Zend_Amf_Response?; 9Zend_Amf_Response_Http?: -Zend_Amf_Request?9 7Zend_Amf_Request_Http?8 ?Zend_Amf_Parse_TypeLoader?7 ?Zend_Amf_Parse_Serializer?#6 IZend_Amf_Parse_Resource_Stream?(5 SZend_Amf_Parse_Resource_MysqlResult?)4 UZend_Amf_Parse_Resource_MysqliResult? 3 CZend_Amf_Parse_OutputStream?2 AZend_Amf_Parse_InputStream? 1 CZend_Amf_Parse_Deserializer?#0 IZend_Amf_Parse_Amf3_Serializer?%/ MZend_Amf_Parse_Amf3_Deserializer?#. IZend_Amf_Parse_Amf0_Serializer?%- MZend_Amf_Parse_Amf0_Deserializer?, 1Zend_Amf_Exception?+ 1Zend_Amf_Constants?* 9Zend_Amf_Auth_Abstract?   b  wR.gL4hG,pV3L



a
8
				P	yDW3i7c4J"kK,jAr;     (r SZend_Controller_Action_Helper_Cache?<q {Zend_Controller_Action_Helper_AutoCompleteScriptaculous?3p iZend_Controller_Action_Helper_AutoCompleteDojo?8o sZend_Controller_Action_Helper_AutoComplete_Abstract?.n _Zend_Controller_Action_Helper_AjaxContext?.m _Zend_Controller_Action_Helper_ActionStack?+l YZend_Controller_Action_Helper_Abstract?%k MZend_Controller_Action_Exception?j 3Zend_Console_Getopt?"i GZend_Console_Getopt_Exception?h #Zend_Config?g -Zend_Config_Yaml?f +Zend_Config_Xml?e 1Zend_Config_Writer?d ;Zend_Config_Writer_Yaml?c 9Zend_Config_Writer_Xml?b ;Zend_Config_Writer_Json?a 9Zend_Config_Writer_Ini?$` KZend_Config_Writer_FileAbstract?_ =Zend_Config_Writer_Array?^ -Zend_Config_Json?] +Zend_Config_Ini?\ 7Zend_Config_Exception?$[ KZend_CodeGenerator_Php_Property?1Z eZend_CodeGenerator_Php_Property_DefaultValue?%Y MZend_CodeGenerator_Php_Parameter?2X gZend_CodeGenerator_Php_Parameter_DefaultValue?"W GZend_CodeGenerator_Php_Method?,V [Zend_CodeGenerator_Php_Member_Container?+U YZend_CodeGenerator_Php_Member_Abstract? T CZend_CodeGenerator_Php_File?%S MZend_CodeGenerator_Php_Exception?$R KZend_CodeGenerator_Php_Docblock?(Q SZend_CodeGenerator_Php_Docblock_Tag?/P aZend_CodeGenerator_Php_Docblock_Tag_Return?.O _Zend_CodeGenerator_Php_Docblock_Tag_Param?0N cZend_CodeGenerator_Php_Docblock_Tag_License?!M EZend_CodeGenerator_Php_Class? L CZend_CodeGenerator_Php_Body?$K KZend_CodeGenerator_Php_Abstract?!J EZend_CodeGenerator_Exception? I CZend_CodeGenerator_Abstract?&H OZend_Cloud_StorageService_Factory?(G SZend_Cloud_StorageService_Exception?3F iZend_Cloud_StorageService_Adapter_WindowsAzure?)E UZend_Cloud_StorageService_Adapter_S3?/D aZend_Cloud_StorageService_Adapter_Nirvanix?1C eZend_Cloud_StorageService_Adapter_FileSystem?'B QZend_Cloud_QueueService_MessageSet?$A KZend_Cloud_QueueService_Message?$@ KZend_Cloud_QueueService_Factory?&? OZend_Cloud_QueueService_Exception?.> _Zend_Cloud_QueueService_Adapter_ZendQueue?1= eZend_Cloud_QueueService_Adapter_WindowsAzure?(< SZend_Cloud_QueueService_Adapter_Sqs?4; kZend_Cloud_QueueService_Adapter_AbstractAdapter?.: _Zend_Cloud_OperationNotAvailableException?9 5Zend_Cloud_Exception?%8 MZend_Cloud_DocumentService_Query?'7 QZend_Cloud_DocumentService_Factory?)6 UZend_Cloud_DocumentService_Exception?+5 YZend_Cloud_DocumentService_DocumentSet?(4 SZend_Cloud_DocumentService_Document?43 kZend_Cloud_DocumentService_Adapter_WindowsAzure?:2 wZend_Cloud_DocumentService_Adapter_WindowsAzure_Query?01 cZend_Cloud_DocumentService_Adapter_SimpleDb?60 oZend_Cloud_DocumentService_Adapter_SimpleDb_Query?7/ qZend_Cloud_DocumentService_Adapter_AbstractAdapter?. AZend_Cloud_AbstractFactory?- /Zend_Captcha_Word?, 9Zend_Captcha_ReCaptcha?+ 1Zend_Captcha_Image?* 3Zend_Captcha_Figlet?) 9Zend_Captcha_Exception?( /Zend_Captcha_Dumb?' /Zend_Captcha_Base?& !Zend_Cache?% 1Zend_Cache_Manager?$ =Zend_Cache_Frontend_Page?# AZend_Cache_Frontend_Output?!" EZend_Cache_Frontend_Function?! =Zend_Cache_Frontend_File?  ?Zend_Cache_Frontend_Class?  CZend_Cache_Frontend_Capture? 5Zend_Cache_Exception? +Zend_Cache_Core? 1Zend_Cache_Backend?" GZend_Cache_Backend_ZendServer?( SZend_Cache_Backend_ZendServer_ShMem?' QZend_Cache_Backend_ZendServer_Disk?$ KZend_Cache_Backend_ZendPlatform? ?Zend_Cache_Backend_Xcache?  CZend_Cache_Backend_WinCache?! EZend_Cache_Backend_TwoLevels? ;Zend_Cache_Backend_Test? ?Zend_Cache_Backend_Static? ?Zend_Cache_Backend_Sqlite?! EZend_Cache_Backend_Memcached?   j  l;xY- lArH#U/



[
0
				Z	/	`9v[D1vP4]9oL#rY8!k@qW8                            \ ;Zend_Db_Table_Exception?[ =Zend_Db_Table_Definition?Z 9Zend_Db_Table_Abstract?Y /Zend_Db_Statement?X =Zend_Db_Statement_Sqlsrv?'W QZend_Db_Statement_Sqlsrv_Exception?V 7Zend_Db_Statement_Pdo?U ?Zend_Db_Statement_Pdo_Oci?T ?Zend_Db_Statement_Pdo_Ibm?S =Zend_Db_Statement_Oracle?'R QZend_Db_Statement_Oracle_Exception?Q =Zend_Db_Statement_Mysqli?'P QZend_Db_Statement_Mysqli_Exception? O CZend_Db_Statement_Exception?N 7Zend_Db_Statement_Db2?$M KZend_Db_Statement_Db2_Exception?L )Zend_Db_Select?K =Zend_Db_Select_Exception?J -Zend_Db_Profiler?I 9Zend_Db_Profiler_Query?H =Zend_Db_Profiler_Firebug?G AZend_Db_Profiler_Exception?F %Zend_Db_Expr?E /Zend_Db_Exception?D 9Zend_Db_Adapter_Sqlsrv?%C MZend_Db_Adapter_Sqlsrv_Exception?B AZend_Db_Adapter_Pdo_Sqlite?A ?Zend_Db_Adapter_Pdo_Pgsql?@ ;Zend_Db_Adapter_Pdo_Oci?? ?Zend_Db_Adapter_Pdo_Mysql?> ?Zend_Db_Adapter_Pdo_Mssql?= ;Zend_Db_Adapter_Pdo_Ibm? < CZend_Db_Adapter_Pdo_Ibm_Ids? ; CZend_Db_Adapter_Pdo_Ibm_Db2?!: EZend_Db_Adapter_Pdo_Abstract?9 9Zend_Db_Adapter_Oracle?%8 MZend_Db_Adapter_Oracle_Exception?7 9Zend_Db_Adapter_Mysqli?%6 MZend_Db_Adapter_Mysqli_Exception?5 ?Zend_Db_Adapter_Exception?4 3Zend_Db_Adapter_Db2?"3 GZend_Db_Adapter_Db2_Exception?2 =Zend_Db_Adapter_Abstract?1 Zend_Date?0 3Zend_Date_Exception?/ 5Zend_Date_DateObject?. -Zend_Date_Cities?- 'Zend_Currency?, ;Zend_Currency_Exception?+ !Zend_Crypt?* )Zend_Crypt_Rsa?) 1Zend_Crypt_Rsa_Key?( ?Zend_Crypt_Rsa_Key_Public?' AZend_Crypt_Rsa_Key_Private?& =Zend_Crypt_Rsa_Exception?% +Zend_Crypt_Math?$ ?Zend_Crypt_Math_Exception?# AZend_Crypt_Math_BigInteger?#" IZend_Crypt_Math_BigInteger_Gmp?)! UZend_Crypt_Math_BigInteger_Exception?&  OZend_Crypt_Math_BigInteger_Bcmath? +Zend_Crypt_Hmac? ?Zend_Crypt_Hmac_Exception? 5Zend_Crypt_Exception? =Zend_Crypt_DiffieHellman?' QZend_Crypt_DiffieHellman_Exception?! EZend_Controller_Router_Route?( SZend_Controller_Router_Route_Static?' QZend_Controller_Router_Route_Regex?( SZend_Controller_Router_Route_Module?* WZend_Controller_Router_Route_Hostname?' QZend_Controller_Router_Route_Chain?* WZend_Controller_Router_Route_Abstract?# IZend_Controller_Router_Rewrite?% MZend_Controller_Router_Exception?$ KZend_Controller_Router_Abstract?* WZend_Controller_Response_HttpTestCase?" GZend_Controller_Response_Http?' QZend_Controller_Response_Exception?! EZend_Controller_Response_Cli?& OZend_Controller_Response_Abstract?# IZend_Controller_Request_Simple?)
 UZend_Controller_Request_HttpTestCase?!	 EZend_Controller_Request_Http?& OZend_Controller_Request_Exception?& OZend_Controller_Request_Apache404?% MZend_Controller_Request_Abstract?& OZend_Controller_Plugin_PutHandler?( SZend_Controller_Plugin_ErrorHandler?" GZend_Controller_Plugin_Broker?' QZend_Controller_Plugin_ActionStack?$ KZend_Controller_Plugin_Abstract?  7Zend_Controller_Front? ?Zend_Controller_Exception?(~ SZend_Controller_Dispatcher_Standard?)} UZend_Controller_Dispatcher_Exception?(| SZend_Controller_Dispatcher_Abstract?{ 9Zend_Controller_Action?(z SZend_Controller_Action_HelperBroker?6y oZend_Controller_Action_HelperBroker_PriorityStack?/x aZend_Controller_Action_Helper_ViewRenderer?&w OZend_Controller_Action_Helper_Url?-v ]Zend_Controller_Action_Helper_Redirector?'u QZend_Controller_Action_Helper_Json?1t eZend_Controller_Action_Helper_FlashMessenger?0s cZend_Controller_Action_Helper_ContextSwitch?   e  yR5h4wIlFwM'



n
?
				l	E	d3f<i<tHrEuKkT9"{a@#                          A 3Zend_Feed_Exception?@ 3Zend_Feed_Entry_Rss?? 5Zend_Feed_Entry_Atom?> =Zend_Feed_Entry_Abstract?= /Zend_Feed_Element?< /Zend_Feed_Builder?; =Zend_Feed_Builder_Header?$: KZend_Feed_Builder_Header_Itunes? 9 CZend_Feed_Builder_Exception?8 ;Zend_Feed_Builder_Entry?7 )Zend_Feed_Atom?6 1Zend_Feed_Abstract?5 )Zend_Exception?4 )Zend_Dom_Query?3 7Zend_Dom_Query_Result?2 =Zend_Dom_Query_Css2Xpath?1 1Zend_Dom_Exception?0 Zend_Dojo?)/ UZend_Dojo_View_Helper_VerticalSlider?,. [Zend_Dojo_View_Helper_ValidationTextBox?&- OZend_Dojo_View_Helper_TimeTextBox?", GZend_Dojo_View_Helper_TextBox?#+ IZend_Dojo_View_Helper_Textarea?'* QZend_Dojo_View_Helper_TabContainer?') QZend_Dojo_View_Helper_SubmitButton?)( UZend_Dojo_View_Helper_StackContainer?)' UZend_Dojo_View_Helper_SplitContainer?!& EZend_Dojo_View_Helper_Slider?)% UZend_Dojo_View_Helper_SimpleTextarea?&$ OZend_Dojo_View_Helper_RadioButton?*# WZend_Dojo_View_Helper_PasswordTextBox?(" SZend_Dojo_View_Helper_NumberTextBox?(! SZend_Dojo_View_Helper_NumberSpinner?+  YZend_Dojo_View_Helper_HorizontalSlider? AZend_Dojo_View_Helper_Form?* WZend_Dojo_View_Helper_FilteringSelect?! EZend_Dojo_View_Helper_Editor? AZend_Dojo_View_Helper_Dojo?) UZend_Dojo_View_Helper_Dojo_Container?) UZend_Dojo_View_Helper_DijitContainer?  CZend_Dojo_View_Helper_Dijit?& OZend_Dojo_View_Helper_DateTextBox?& OZend_Dojo_View_Helper_CustomDijit?* WZend_Dojo_View_Helper_CurrencyTextBox?& OZend_Dojo_View_Helper_ContentPane?# IZend_Dojo_View_Helper_ComboBox?# IZend_Dojo_View_Helper_CheckBox?! EZend_Dojo_View_Helper_Button?* WZend_Dojo_View_Helper_BorderContainer?( SZend_Dojo_View_Helper_AccordionPane?- ]Zend_Dojo_View_Helper_AccordionContainer? =Zend_Dojo_View_Exception? )Zend_Dojo_Form? 9Zend_Dojo_Form_SubForm?* WZend_Dojo_Form_Element_VerticalSlider?-
 ]Zend_Dojo_Form_Element_ValidationTextBox?'	 QZend_Dojo_Form_Element_TimeTextBox?# IZend_Dojo_Form_Element_TextBox?$ KZend_Dojo_Form_Element_Textarea?( SZend_Dojo_Form_Element_SubmitButton?" GZend_Dojo_Form_Element_Slider?* WZend_Dojo_Form_Element_SimpleTextarea?' QZend_Dojo_Form_Element_RadioButton?+ YZend_Dojo_Form_Element_PasswordTextBox?) UZend_Dojo_Form_Element_NumberTextBox?)  UZend_Dojo_Form_Element_NumberSpinner?, [Zend_Dojo_Form_Element_HorizontalSlider?+~ YZend_Dojo_Form_Element_FilteringSelect?"} GZend_Dojo_Form_Element_Editor?&| OZend_Dojo_Form_Element_DijitMulti?!{ EZend_Dojo_Form_Element_Dijit?'z QZend_Dojo_Form_Element_DateTextBox?+y YZend_Dojo_Form_Element_CurrencyTextBox?$x KZend_Dojo_Form_Element_ComboBox?$w KZend_Dojo_Form_Element_CheckBox?"v GZend_Dojo_Form_Element_Button? u CZend_Dojo_Form_DisplayGroup?*t WZend_Dojo_Form_Decorator_TabContainer?,s [Zend_Dojo_Form_Decorator_StackContainer?,r [Zend_Dojo_Form_Decorator_SplitContainer?'q QZend_Dojo_Form_Decorator_DijitForm?*p WZend_Dojo_Form_Decorator_DijitElement?,o [Zend_Dojo_Form_Decorator_DijitContainer?)n UZend_Dojo_Form_Decorator_ContentPane?-m ]Zend_Dojo_Form_Decorator_BorderContainer?+l YZend_Dojo_Form_Decorator_AccordionPane?0k cZend_Dojo_Form_Decorator_AccordionContainer?j 3Zend_Dojo_Exception?i )Zend_Dojo_Data?h 5Zend_Dojo_BuildLayer?g !Zend_Debug?f Zend_Db?e 'Zend_Db_Table?d 5Zend_Db_Table_Select?#c IZend_Db_Table_Select_Exception?b 5Zend_Db_Table_Rowset?#a IZend_Db_Table_Rowset_Exception?"` GZend_Db_Table_Rowset_Abstract?_ /Zend_Db_Table_Row? ^ CZend_Db_Table_Row_Exception?] AZend_Db_Table_Row_Abstract?   ^  {HqFwP"SZ*



`
6
					{	Z	;	TH`5PsZHcG*	yX7eI+
     AZend_Filter_File_LowerCase? =Zend_Filter_File_Encrypt? =Zend_Filter_File_Decrypt? 7Zend_Filter_Exception? 3Zend_Filter_Encrypt?  CZend_Filter_Encrypt_Openssl? AZend_Filter_Encrypt_Mcrypt? +Zend_Filter_Dir? 1Zend_Filter_Digits? 3Zend_Filter_Decrypt? 9Zend_Filter_Decompress? 5Zend_Filter_Compress? =Zend_Filter_Compress_Zip? =Zend_Filter_Compress_Tar? =Zend_Filter_Compress_Rar? =Zend_Filter_Compress_Lzf? ;Zend_Filter_Compress_Gz?* WZend_Filter_Compress_CompressAbstract? =Zend_Filter_Compress_Bz2? 5Zend_Filter_Callback? 3Zend_Filter_Boolean?
 5Zend_Filter_BaseName?	 /Zend_Filter_Alpha? /Zend_Filter_Alnum? 1Zend_File_Transfer?! EZend_File_Transfer_Exception?$ KZend_File_Transfer_Adapter_Http?( SZend_File_Transfer_Adapter_Abstract? Zend_Feed? -Zend_Feed_Writer? ;Zend_Feed_Writer_Source?/  aZend_Feed_Writer_Renderer_RendererAbstract?' QZend_Feed_Writer_Renderer_Feed_Rss?(~ SZend_Feed_Writer_Renderer_Feed_Atom?/} aZend_Feed_Writer_Renderer_Feed_Atom_Source?5| mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract?({ SZend_Feed_Writer_Renderer_Entry_Rss?)z UZend_Feed_Writer_Renderer_Entry_Atom?1y eZend_Feed_Writer_Renderer_Entry_Atom_Deleted?x 7Zend_Feed_Writer_Feed?'w QZend_Feed_Writer_Feed_FeedAbstract?<v {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry?8u sZend_Feed_Writer_Extension_Threading_Renderer_Entry?4t kZend_Feed_Writer_Extension_Slash_Renderer_Entry?0s cZend_Feed_Writer_Extension_RendererAbstract?4r kZend_Feed_Writer_Extension_ITunes_Renderer_Feed?5q mZend_Feed_Writer_Extension_ITunes_Renderer_Entry?+p YZend_Feed_Writer_Extension_ITunes_Feed?,o [Zend_Feed_Writer_Extension_ITunes_Entry?8n sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed?9m uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry?6l oZend_Feed_Writer_Extension_Content_Renderer_Entry?2k gZend_Feed_Writer_Extension_Atom_Renderer_Feed?6j oZend_Feed_Writer_Exception_InvalidMethodException?i 9Zend_Feed_Writer_Entry?h =Zend_Feed_Writer_Deleted?g 'Zend_Feed_Rss?f -Zend_Feed_Reader?e =Zend_Feed_Reader_FeedSet?"d GZend_Feed_Reader_FeedAbstract?c ?Zend_Feed_Reader_Feed_Rss?b AZend_Feed_Reader_Feed_Atom?&a OZend_Feed_Reader_Feed_Atom_Source?3` iZend_Feed_Reader_Extension_WellFormedWeb_Entry?,_ [Zend_Feed_Reader_Extension_Thread_Entry?0^ cZend_Feed_Reader_Extension_Syndication_Feed?+] YZend_Feed_Reader_Extension_Slash_Entry?,\ [Zend_Feed_Reader_Extension_Podcast_Feed?-[ ]Zend_Feed_Reader_Extension_Podcast_Entry?,Z [Zend_Feed_Reader_Extension_FeedAbstract?-Y ]Zend_Feed_Reader_Extension_EntryAbstract?/X aZend_Feed_Reader_Extension_DublinCore_Feed?0W cZend_Feed_Reader_Extension_DublinCore_Entry?4V kZend_Feed_Reader_Extension_CreativeCommons_Feed?5U mZend_Feed_Reader_Extension_CreativeCommons_Entry?-T ]Zend_Feed_Reader_Extension_Content_Entry?)S UZend_Feed_Reader_Extension_Atom_Feed?*R WZend_Feed_Reader_Extension_Atom_Entry?#Q IZend_Feed_Reader_EntryAbstract?P AZend_Feed_Reader_Entry_Rss? O CZend_Feed_Reader_Entry_Atom? N CZend_Feed_Reader_Collection?3M iZend_Feed_Reader_Collection_CollectionAbstract?)L UZend_Feed_Reader_Collection_Category?'K QZend_Feed_Reader_Collection_Author?J 9Zend_Feed_Pubsubhubbub?&I OZend_Feed_Pubsubhubbub_Subscriber?/H aZend_Feed_Pubsubhubbub_Subscriber_Callback?%G MZend_Feed_Pubsubhubbub_Publisher?.F _Zend_Feed_Pubsubhubbub_Model_Subscription?/E aZend_Feed_Pubsubhubbub_Model_ModelAbstract?(D SZend_Feed_Pubsubhubbub_HttpResponse?%C MZend_Feed_Pubsubhubbub_Exception?,B [Zend_Feed_Pubsubhubbub_CallbackAbstract?   i  ~dL"^?yP'zLf8



x
R
-
				w	U	3	vU3mM%{Z;qC' j@rI"a;nE                               # IZend_Gdata_App_Extension_Title?" GZend_Gdata_App_Extension_Text?% MZend_Gdata_App_Extension_Summary?& OZend_Gdata_App_Extension_Subtitle?$ KZend_Gdata_App_Extension_Source?$ KZend_Gdata_App_Extension_Rights?' QZend_Gdata_App_Extension_Published?$ KZend_Gdata_App_Extension_Person?"  GZend_Gdata_App_Extension_Name?" GZend_Gdata_App_Extension_Logo?"~ GZend_Gdata_App_Extension_Link? } CZend_Gdata_App_Extension_Id?"| GZend_Gdata_App_Extension_Icon?'{ QZend_Gdata_App_Extension_Generator?#z IZend_Gdata_App_Extension_Email?%y MZend_Gdata_App_Extension_Element?$x KZend_Gdata_App_Extension_Edited?#w IZend_Gdata_App_Extension_Draft?%v MZend_Gdata_App_Extension_Control?)u UZend_Gdata_App_Extension_Contributor?%t MZend_Gdata_App_Extension_Content?&s OZend_Gdata_App_Extension_Category?$r KZend_Gdata_App_Extension_Author?q =Zend_Gdata_App_Exception?p 5Zend_Gdata_App_Entry?,o [Zend_Gdata_App_CaptchaRequiredException?#n IZend_Gdata_App_BaseMediaSource?m 3Zend_Gdata_App_Base?*l WZend_Gdata_App_BadMethodCallException?!k EZend_Gdata_App_AuthException?j Zend_Form?i /Zend_Form_SubForm?h 3Zend_Form_Exception?g /Zend_Form_Element?f ;Zend_Form_Element_Xhtml?e AZend_Form_Element_Textarea?d 9Zend_Form_Element_Text?c =Zend_Form_Element_Submit?b =Zend_Form_Element_Select?a ;Zend_Form_Element_Reset?` ;Zend_Form_Element_Radio?_ AZend_Form_Element_Password?"^ GZend_Form_Element_Multiselect?$] KZend_Form_Element_MultiCheckbox?\ ;Zend_Form_Element_Multi?[ ;Zend_Form_Element_Image?Z =Zend_Form_Element_Hidden?Y 9Zend_Form_Element_Hash?X 9Zend_Form_Element_File? W CZend_Form_Element_Exception?V AZend_Form_Element_Checkbox?U ?Zend_Form_Element_Captcha?T =Zend_Form_Element_Button?S 9Zend_Form_DisplayGroup?#R IZend_Form_Decorator_ViewScript?#Q IZend_Form_Decorator_ViewHelper? P CZend_Form_Decorator_Tooltip?(O SZend_Form_Decorator_PrepareElements?N ?Zend_Form_Decorator_Label?M ?Zend_Form_Decorator_Image? L CZend_Form_Decorator_HtmlTag?#K IZend_Form_Decorator_FormErrors?%J MZend_Form_Decorator_FormElements?I =Zend_Form_Decorator_Form?H =Zend_Form_Decorator_File?!G EZend_Form_Decorator_Fieldset?"F GZend_Form_Decorator_Exception?E AZend_Form_Decorator_Errors?$D KZend_Form_Decorator_DtDdWrapper?$C KZend_Form_Decorator_Description? B CZend_Form_Decorator_Captcha?%A MZend_Form_Decorator_Captcha_Word?*@ WZend_Form_Decorator_Captcha_ReCaptcha?!? EZend_Form_Decorator_Callback?!> EZend_Form_Decorator_Abstract?= #Zend_Filter?+< YZend_Filter_Word_UnderscoreToSeparator?&; OZend_Filter_Word_UnderscoreToDash?+: YZend_Filter_Word_UnderscoreToCamelCase?*9 WZend_Filter_Word_SeparatorToSeparator?%8 MZend_Filter_Word_SeparatorToDash?*7 WZend_Filter_Word_SeparatorToCamelCase?(6 SZend_Filter_Word_Separator_Abstract?&5 OZend_Filter_Word_DashToUnderscore?%4 MZend_Filter_Word_DashToSeparator?%3 MZend_Filter_Word_DashToCamelCase?+2 YZend_Filter_Word_CamelCaseToUnderscore?*1 WZend_Filter_Word_CamelCaseToSeparator?%0 MZend_Filter_Word_CamelCaseToDash?/ 7Zend_Filter_StripTags?. ?Zend_Filter_StripNewlines?- 9Zend_Filter_StringTrim?, ?Zend_Filter_StringToUpper?+ ?Zend_Filter_StringToLower?* 5Zend_Filter_RealPath?) ;Zend_Filter_PregReplace?( -Zend_Filter_Null?&' OZend_Filter_NormalizedToLocalized?&& OZend_Filter_LocalizedToNormalized?% +Zend_Filter_Int?$ /Zend_Filter_Input?# 7Zend_Filter_Inflector?" =Zend_Filter_HtmlEntities?! AZend_Filter_File_UpperCase?  ;Zend_Filter_File_Rename?   _  uN&xV/h6{L"yT;



i
<
			v	G	f=vGR$yQ#~V/}W0MqK!                   g ?Zend_Gdata_Extension_When?$f KZend_Gdata_Extension_Visibility?&e OZend_Gdata_Extension_Transparency?"d GZend_Gdata_Extension_Reminder?-c ]Zend_Gdata_Extension_RecurrenceException?$b KZend_Gdata_Extension_Recurrence? a CZend_Gdata_Extension_Rating?'` QZend_Gdata_Extension_OriginalEvent?0_ cZend_Gdata_Extension_OpenSearchTotalResults?.^ _Zend_Gdata_Extension_OpenSearchStartIndex?0] cZend_Gdata_Extension_OpenSearchItemsPerPage?"\ GZend_Gdata_Extension_FeedLink?*[ WZend_Gdata_Extension_ExtendedProperty?%Z MZend_Gdata_Extension_EventStatus?#Y IZend_Gdata_Extension_EntryLink?"X GZend_Gdata_Extension_Comments?&W OZend_Gdata_Extension_AttendeeType?(V SZend_Gdata_Extension_AttendeeStatus?U +Zend_Gdata_Exif?T 5Zend_Gdata_Exif_Feed?#S IZend_Gdata_Exif_Extension_Time?#R IZend_Gdata_Exif_Extension_Tags?$Q KZend_Gdata_Exif_Extension_Model?#P IZend_Gdata_Exif_Extension_Make?"O GZend_Gdata_Exif_Extension_Iso?,N [Zend_Gdata_Exif_Extension_ImageUniqueId?$M KZend_Gdata_Exif_Extension_FStop?*L WZend_Gdata_Exif_Extension_FocalLength?$K KZend_Gdata_Exif_Extension_Flash?'J QZend_Gdata_Exif_Extension_Exposure?'I QZend_Gdata_Exif_Extension_Distance?H 7Zend_Gdata_Exif_Entry?G -Zend_Gdata_Entry?F 7Zend_Gdata_DublinCore?*E WZend_Gdata_DublinCore_Extension_Title?,D [Zend_Gdata_DublinCore_Extension_Subject?+C YZend_Gdata_DublinCore_Extension_Rights?.B _Zend_Gdata_DublinCore_Extension_Publisher?-A ]Zend_Gdata_DublinCore_Extension_Language?/@ aZend_Gdata_DublinCore_Extension_Identifier?+? YZend_Gdata_DublinCore_Extension_Format?0> cZend_Gdata_DublinCore_Extension_Description?)= UZend_Gdata_DublinCore_Extension_Date?,< [Zend_Gdata_DublinCore_Extension_Creator?; +Zend_Gdata_Docs?: 7Zend_Gdata_Docs_Query?%9 MZend_Gdata_Docs_DocumentListFeed?&8 OZend_Gdata_Docs_DocumentListEntry?7 9Zend_Gdata_ClientLogin?6 3Zend_Gdata_Calendar?!5 EZend_Gdata_Calendar_ListFeed?"4 GZend_Gdata_Calendar_ListEntry?-3 ]Zend_Gdata_Calendar_Extension_WebContent?+2 YZend_Gdata_Calendar_Extension_Timezone?91 uZend_Gdata_Calendar_Extension_SendEventNotifications?+0 YZend_Gdata_Calendar_Extension_Selected?+/ YZend_Gdata_Calendar_Extension_QuickAdd?'. QZend_Gdata_Calendar_Extension_Link?)- UZend_Gdata_Calendar_Extension_Hidden?(, SZend_Gdata_Calendar_Extension_Color?.+ _Zend_Gdata_Calendar_Extension_AccessLevel?#* IZend_Gdata_Calendar_EventQuery?") GZend_Gdata_Calendar_EventFeed?#( IZend_Gdata_Calendar_EventEntry?' -Zend_Gdata_Books?!& EZend_Gdata_Books_VolumeQuery? % CZend_Gdata_Books_VolumeFeed?!$ EZend_Gdata_Books_VolumeEntry?+# YZend_Gdata_Books_Extension_Viewability?-" ]Zend_Gdata_Books_Extension_ThumbnailLink?&! OZend_Gdata_Books_Extension_Review?+  YZend_Gdata_Books_Extension_PreviewLink?( SZend_Gdata_Books_Extension_InfoLink?- ]Zend_Gdata_Books_Extension_Embeddability?) UZend_Gdata_Books_Extension_BooksLink?- ]Zend_Gdata_Books_Extension_BooksCategory?. _Zend_Gdata_Books_Extension_AnnotationLink?$ KZend_Gdata_Books_CollectionFeed?% MZend_Gdata_Books_CollectionEntry? 1Zend_Gdata_AuthSub? )Zend_Gdata_App?$ KZend_Gdata_App_VersionException? 3Zend_Gdata_App_Util?# IZend_Gdata_App_MediaFileSource? ?Zend_Gdata_App_MediaEntry?2 gZend_Gdata_App_LoggingHttpClientAdapterSocket? AZend_Gdata_App_IOException?, [Zend_Gdata_App_InvalidArgumentException?! EZend_Gdata_App_HttpException?$ KZend_Gdata_App_FeedSourceParent?# IZend_Gdata_App_FeedEntryParent? 3Zend_Gdata_App_Feed? =Zend_Gdata_App_Extension?!
 EZend_Gdata_App_Extension_Uri?%	 MZend_Gdata_App_Extension_Updated?   c  _8~_2	`<`:_<




p
M
+
				x	_	B	hA_1p>O ^0sO*~Q&m@
                    %J MZend_Gdata_Photos_Extension_Name?2I gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum?)H UZend_Gdata_Photos_Extension_Location?#G IZend_Gdata_Photos_Extension_Id?'F QZend_Gdata_Photos_Extension_Height?2E gZend_Gdata_Photos_Extension_CommentingEnabled?-D ]Zend_Gdata_Photos_Extension_CommentCount?'C QZend_Gdata_Photos_Extension_Client?)B UZend_Gdata_Photos_Extension_Checksum?*A WZend_Gdata_Photos_Extension_BytesUsed?(@ SZend_Gdata_Photos_Extension_AlbumId?'? QZend_Gdata_Photos_Extension_Access?#> IZend_Gdata_Photos_CommentEntry?!= EZend_Gdata_Photos_AlbumQuery? < CZend_Gdata_Photos_AlbumFeed?!; EZend_Gdata_Photos_AlbumEntry?: 3Zend_Gdata_MimeFile?9 ?Zend_Gdata_MimeBodyString?8 AZend_Gdata_MediaMimeStream?7 -Zend_Gdata_Media?6 7Zend_Gdata_Media_Feed?*5 WZend_Gdata_Media_Extension_MediaTitle?.4 _Zend_Gdata_Media_Extension_MediaThumbnail?)3 UZend_Gdata_Media_Extension_MediaText?02 cZend_Gdata_Media_Extension_MediaRestriction?+1 YZend_Gdata_Media_Extension_MediaRating?+0 YZend_Gdata_Media_Extension_MediaPlayer?-/ ]Zend_Gdata_Media_Extension_MediaKeywords?). UZend_Gdata_Media_Extension_MediaHash?*- WZend_Gdata_Media_Extension_MediaGroup?0, cZend_Gdata_Media_Extension_MediaDescription?++ YZend_Gdata_Media_Extension_MediaCredit?.* _Zend_Gdata_Media_Extension_MediaCopyright?,) [Zend_Gdata_Media_Extension_MediaContent?-( ]Zend_Gdata_Media_Extension_MediaCategory?' 9Zend_Gdata_Media_Entry?& AZend_Gdata_Kind_EventEntry?% 7Zend_Gdata_HttpClient?*$ WZend_Gdata_HttpAdapterStreamingSocket?)# UZend_Gdata_HttpAdapterStreamingProxy?" /Zend_Gdata_Health?! ;Zend_Gdata_Health_Query?&  OZend_Gdata_Health_ProfileListFeed?' QZend_Gdata_Health_ProfileListEntry?" GZend_Gdata_Health_ProfileFeed?# IZend_Gdata_Health_ProfileEntry?$ KZend_Gdata_Health_Extension_Ccr? )Zend_Gdata_Geo? 3Zend_Gdata_Geo_Feed?$ KZend_Gdata_Geo_Extension_GmlPos?& OZend_Gdata_Geo_Extension_GmlPoint?) UZend_Gdata_Geo_Extension_GeoRssWhere? 5Zend_Gdata_Geo_Entry? -Zend_Gdata_Gbase?" GZend_Gdata_Gbase_SnippetQuery?! EZend_Gdata_Gbase_SnippetFeed?" GZend_Gdata_Gbase_SnippetEntry? 9Zend_Gdata_Gbase_Query? AZend_Gdata_Gbase_ItemQuery? ?Zend_Gdata_Gbase_ItemFeed? AZend_Gdata_Gbase_ItemEntry? 7Zend_Gdata_Gbase_Feed?- ]Zend_Gdata_Gbase_Extension_BaseAttribute? 9Zend_Gdata_Gbase_Entry?
 -Zend_Gdata_Gapps?	 AZend_Gdata_Gapps_UserQuery? ?Zend_Gdata_Gapps_UserFeed? AZend_Gdata_Gapps_UserEntry?& OZend_Gdata_Gapps_ServiceException? 9Zend_Gdata_Gapps_Query?  CZend_Gdata_Gapps_OwnerQuery? AZend_Gdata_Gapps_OwnerFeed?  CZend_Gdata_Gapps_OwnerEntry?# IZend_Gdata_Gapps_NicknameQuery?"  GZend_Gdata_Gapps_NicknameFeed?# IZend_Gdata_Gapps_NicknameEntry?!~ EZend_Gdata_Gapps_MemberQuery? } CZend_Gdata_Gapps_MemberFeed?!| EZend_Gdata_Gapps_MemberEntry? { CZend_Gdata_Gapps_GroupQuery?z AZend_Gdata_Gapps_GroupFeed? y CZend_Gdata_Gapps_GroupEntry?%x MZend_Gdata_Gapps_Extension_Quota?(w SZend_Gdata_Gapps_Extension_Property?(v SZend_Gdata_Gapps_Extension_Nickname?$u KZend_Gdata_Gapps_Extension_Name?%t MZend_Gdata_Gapps_Extension_Login?)s UZend_Gdata_Gapps_Extension_EmailList?r 9Zend_Gdata_Gapps_Error?-q ]Zend_Gdata_Gapps_EmailListRecipientQuery?,p [Zend_Gdata_Gapps_EmailListRecipientFeed?-o ]Zend_Gdata_Gapps_EmailListRecipientEntry?$n KZend_Gdata_Gapps_EmailListQuery?#m IZend_Gdata_Gapps_EmailListFeed?$l KZend_Gdata_Gapps_EmailListEntry?k +Zend_Gdata_Feed?j 5Zend_Gdata_Extension?i =Zend_Gdata_Extension_Who?h AZend_Gdata_Extension_Where?   Y  nB_1Y4]C* P



f
<
			~	^	5	oBe4~P"g7R"c9|Q!nA                        "# GZend_Gdata_YouTube_MediaEntry?!" EZend_Gdata_YouTube_InboxFeed?"! GZend_Gdata_YouTube_InboxEntry?)  UZend_Gdata_YouTube_Extension_VideoId?* WZend_Gdata_YouTube_Extension_Username?* WZend_Gdata_YouTube_Extension_Uploaded?' QZend_Gdata_YouTube_Extension_Token?( SZend_Gdata_YouTube_Extension_Status?, [Zend_Gdata_YouTube_Extension_Statistics?' QZend_Gdata_YouTube_Extension_State?( SZend_Gdata_YouTube_Extension_School?- ]Zend_Gdata_YouTube_Extension_ReleaseDate?. _Zend_Gdata_YouTube_Extension_Relationship?* WZend_Gdata_YouTube_Extension_Recorded?& OZend_Gdata_YouTube_Extension_Racy?- ]Zend_Gdata_YouTube_Extension_QueryString?) UZend_Gdata_YouTube_Extension_Private?* WZend_Gdata_YouTube_Extension_Position?/ aZend_Gdata_YouTube_Extension_PlaylistTitle?, [Zend_Gdata_YouTube_Extension_PlaylistId?, [Zend_Gdata_YouTube_Extension_Occupation?) UZend_Gdata_YouTube_Extension_NoEmbed?' QZend_Gdata_YouTube_Extension_Music?( SZend_Gdata_YouTube_Extension_Movies?- ]Zend_Gdata_YouTube_Extension_MediaRating?,
 [Zend_Gdata_YouTube_Extension_MediaGroup?-	 ]Zend_Gdata_YouTube_Extension_MediaCredit?. _Zend_Gdata_YouTube_Extension_MediaContent?* WZend_Gdata_YouTube_Extension_Location?& OZend_Gdata_YouTube_Extension_Link?* WZend_Gdata_YouTube_Extension_LastName?* WZend_Gdata_YouTube_Extension_Hometown?) UZend_Gdata_YouTube_Extension_Hobbies?( SZend_Gdata_YouTube_Extension_Gender?+ YZend_Gdata_YouTube_Extension_FirstName?*  WZend_Gdata_YouTube_Extension_Duration?- ]Zend_Gdata_YouTube_Extension_Description?+~ YZend_Gdata_YouTube_Extension_CountHint?)} UZend_Gdata_YouTube_Extension_Control?)| UZend_Gdata_YouTube_Extension_Company?'{ QZend_Gdata_YouTube_Extension_Books?%z MZend_Gdata_YouTube_Extension_Age?)y UZend_Gdata_YouTube_Extension_AboutMe?#x IZend_Gdata_YouTube_ContactFeed?$w KZend_Gdata_YouTube_ContactEntry?#v IZend_Gdata_YouTube_CommentFeed?$u KZend_Gdata_YouTube_CommentEntry?$t KZend_Gdata_YouTube_ActivityFeed?%s MZend_Gdata_YouTube_ActivityEntry?r ;Zend_Gdata_Spreadsheets?*q WZend_Gdata_Spreadsheets_WorksheetFeed?+p YZend_Gdata_Spreadsheets_WorksheetEntry?,o [Zend_Gdata_Spreadsheets_SpreadsheetFeed?-n ]Zend_Gdata_Spreadsheets_SpreadsheetEntry?&m OZend_Gdata_Spreadsheets_ListQuery?%l MZend_Gdata_Spreadsheets_ListFeed?&k OZend_Gdata_Spreadsheets_ListEntry?/j aZend_Gdata_Spreadsheets_Extension_RowCount?-i ]Zend_Gdata_Spreadsheets_Extension_Custom?/h aZend_Gdata_Spreadsheets_Extension_ColCount?+g YZend_Gdata_Spreadsheets_Extension_Cell?*f WZend_Gdata_Spreadsheets_DocumentQuery?&e OZend_Gdata_Spreadsheets_CellQuery?%d MZend_Gdata_Spreadsheets_CellFeed?&c OZend_Gdata_Spreadsheets_CellEntry?b -Zend_Gdata_Query?a /Zend_Gdata_Photos? ` CZend_Gdata_Photos_UserQuery?_ AZend_Gdata_Photos_UserFeed? ^ CZend_Gdata_Photos_UserEntry?] AZend_Gdata_Photos_TagEntry?!\ EZend_Gdata_Photos_PhotoQuery? [ CZend_Gdata_Photos_PhotoFeed?!Z EZend_Gdata_Photos_PhotoEntry?&Y OZend_Gdata_Photos_Extension_Width?'X QZend_Gdata_Photos_Extension_Weight?(W SZend_Gdata_Photos_Extension_Version?%V MZend_Gdata_Photos_Extension_User?*U WZend_Gdata_Photos_Extension_Timestamp?*T WZend_Gdata_Photos_Extension_Thumbnail?%S MZend_Gdata_Photos_Extension_Size?)R UZend_Gdata_Photos_Extension_Rotation?+Q YZend_Gdata_Photos_Extension_QuotaLimit?-P ]Zend_Gdata_Photos_Extension_QuotaCurrent?)O UZend_Gdata_Photos_Extension_Position?(N SZend_Gdata_Photos_Extension_PhotoId?3M iZend_Gdata_Photos_Extension_NumPhotosRemaining?*L WZend_Gdata_Photos_Extension_NumPhotos?)K UZend_Gdata_Photos_Extension_Nickname?   e  yL|V;(b?&mM)`)




\
:
				l	F	*	VrI) Z2hFj=lM.{V9 {_1                             " GZend_Ldap_Converter_Exception? 5Zend_Ldap_Collection?* WZend_Ldap_Collection_Iterator_Default? 3Zend_Ldap_Attribute? #Zend_Layout? 7Zend_Layout_Exception?) UZend_Layout_Controller_Plugin_Layout?0 cZend_Layout_Controller_Action_Helper_Layout?  Zend_Json? -Zend_Json_Server?~ 5Zend_Json_Server_Smd?!} EZend_Json_Server_Smd_Service?| ?Zend_Json_Server_Response?#{ IZend_Json_Server_Response_Http?z =Zend_Json_Server_Request?"y GZend_Json_Server_Request_Http?x AZend_Json_Server_Exception?w 9Zend_Json_Server_Error?v 9Zend_Json_Server_Cache?u )Zend_Json_Expr?t 3Zend_Json_Exception?s /Zend_Json_Encoder?r /Zend_Json_Decoder?q 'Zend_InfoCard?-p ]Zend_InfoCard_Xml_SecurityTokenReference?o AZend_InfoCard_Xml_Security?)n UZend_InfoCard_Xml_Security_Transform?4m kZend_InfoCard_Xml_Security_Transform_XmlExcC14N?3l iZend_InfoCard_Xml_Security_Transform_Exception?<k {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignature?)j UZend_InfoCard_Xml_Security_Exception?i ?Zend_InfoCard_Xml_KeyInfo?&h OZend_InfoCard_Xml_KeyInfo_XmlDSig?&g OZend_InfoCard_Xml_KeyInfo_Default?'f QZend_InfoCard_Xml_KeyInfo_Abstract? e CZend_InfoCard_Xml_Exception?#d IZend_InfoCard_Xml_EncryptedKey?$c KZend_InfoCard_Xml_EncryptedData?+b YZend_InfoCard_Xml_EncryptedData_XmlEnc?-a ]Zend_InfoCard_Xml_EncryptedData_Abstract?` ?Zend_InfoCard_Xml_Element? _ CZend_InfoCard_Xml_Assertion?%^ MZend_InfoCard_Xml_Assertion_Saml?] ;Zend_InfoCard_Exception?%\ MZend_InfoCard_Exception_Abstract?[ 5Zend_InfoCard_Claims?Z 5Zend_InfoCard_Cipher?5Y mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc?5X mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc?4W kZend_InfoCard_Cipher_Symmetric_Adapter_Abstract?)V UZend_InfoCard_Cipher_Pki_Adapter_Rsa?.U _Zend_InfoCard_Cipher_Pki_Adapter_Abstract?#T IZend_InfoCard_Cipher_Exception?$S KZend_InfoCard_Adapter_Exception?"R GZend_InfoCard_Adapter_Default?Q 3Zend_Http_UserAgent?"P GZend_Http_UserAgent_Validator?O =Zend_Http_UserAgent_Text?(N SZend_Http_UserAgent_Storage_Session?.M _Zend_Http_UserAgent_Storage_NonPersistent?*L WZend_Http_UserAgent_Storage_Exception?K =Zend_Http_UserAgent_Spam?J ?Zend_Http_UserAgent_Probe? I CZend_Http_UserAgent_Offline?H AZend_Http_UserAgent_Mobile?G =Zend_Http_UserAgent_Feed?+F YZend_Http_UserAgent_Features_Exception?2E gZend_Http_UserAgent_Features_Adapter_WurflApi?3D iZend_Http_UserAgent_Features_Adapter_TeraWurfl?5C mZend_Http_UserAgent_Features_Adapter_DeviceAtlas?"B GZend_Http_UserAgent_Exception?A ?Zend_Http_UserAgent_Email? @ CZend_Http_UserAgent_Desktop? ? CZend_Http_UserAgent_Console? > CZend_Http_UserAgent_Checker?= ;Zend_Http_UserAgent_Bot?'< QZend_Http_UserAgent_AbstractDevice?; 1Zend_Http_Response?: ?Zend_Http_Response_Stream?9 3Zend_Http_Exception?8 3Zend_Http_CookieJar?7 -Zend_Http_Cookie?6 -Zend_Http_Client?5 AZend_Http_Client_Exception?"4 GZend_Http_Client_Adapter_Test?$3 KZend_Http_Client_Adapter_Socket?#2 IZend_Http_Client_Adapter_Proxy?'1 QZend_Http_Client_Adapter_Exception?"0 GZend_Http_Client_Adapter_Curl?/ !Zend_Gdata?. 1Zend_Gdata_YouTube?"- GZend_Gdata_YouTube_VideoQuery?!, EZend_Gdata_YouTube_VideoFeed?"+ GZend_Gdata_YouTube_VideoEntry?(* SZend_Gdata_YouTube_UserProfileEntry?() SZend_Gdata_YouTube_SubscriptionFeed?)( UZend_Gdata_YouTube_SubscriptionEntry?)' UZend_Gdata_YouTube_PlaylistVideoFeed?*& WZend_Gdata_YouTube_PlaylistVideoEntry?(% SZend_Gdata_YouTube_PlaylistListFeed?)$ UZend_Gdata_YouTube_PlaylistListEntry?   s tQ0a9wI{H!uJ)




{
Z
A
-
					k	H	&	qT5pY5xM-
vW5gF! f?vT&eI(                       { CZend_Measure_Cooking_Volume?z =Zend_Measure_Capacitance?y 3Zend_Measure_Binary?x /Zend_Measure_Area?w 1Zend_Measure_Angle?v ?Zend_Measure_Acceleration?u 7Zend_Measure_Abstract?t #Zend_Markup?s 7Zend_Markup_TokenList?r /Zend_Markup_Token?*q WZend_Markup_Renderer_RendererAbstract?p ?Zend_Markup_Renderer_Html?"o GZend_Markup_Renderer_Html_Url?#n IZend_Markup_Renderer_Html_List?"m GZend_Markup_Renderer_Html_Img?+l YZend_Markup_Renderer_Html_HtmlAbstract?#k IZend_Markup_Renderer_Html_Code?#j IZend_Markup_Renderer_Exception?i AZend_Markup_Parser_Textile?!h EZend_Markup_Parser_Exception?g ?Zend_Markup_Parser_Bbcode?f 7Zend_Markup_Exception?e Zend_Mail?d =Zend_Mail_Transport_Smtp?!c EZend_Mail_Transport_Sendmail?b =Zend_Mail_Transport_File?"a GZend_Mail_Transport_Exception?!` EZend_Mail_Transport_Abstract?_ /Zend_Mail_Storage?'^ QZend_Mail_Storage_Writable_Maildir?] 9Zend_Mail_Storage_Pop3?\ 9Zend_Mail_Storage_Mbox?[ ?Zend_Mail_Storage_Maildir?Z 9Zend_Mail_Storage_Imap?Y =Zend_Mail_Storage_Folder?"X GZend_Mail_Storage_Folder_Mbox?%W MZend_Mail_Storage_Folder_Maildir? V CZend_Mail_Storage_Exception?U AZend_Mail_Storage_Abstract?T ;Zend_Mail_Protocol_Smtp?'S QZend_Mail_Protocol_Smtp_Auth_Plain?'R QZend_Mail_Protocol_Smtp_Auth_Login?)Q UZend_Mail_Protocol_Smtp_Auth_Crammd5?P ;Zend_Mail_Protocol_Pop3?O ;Zend_Mail_Protocol_Imap?!N EZend_Mail_Protocol_Exception? M CZend_Mail_Protocol_Abstract?L )Zend_Mail_Part?K 3Zend_Mail_Part_File?J /Zend_Mail_Message?I 9Zend_Mail_Message_File?H 3Zend_Mail_Exception?G Zend_Log? F CZend_Log_Writer_ZendMonitor?E 9Zend_Log_Writer_Syslog?D 9Zend_Log_Writer_Stream?C 5Zend_Log_Writer_Null?B 5Zend_Log_Writer_Mock?A 5Zend_Log_Writer_Mail?@ ;Zend_Log_Writer_Firebug?? 1Zend_Log_Writer_Db?> =Zend_Log_Writer_Abstract?= 9Zend_Log_Formatter_Xml?< ?Zend_Log_Formatter_Simple?; AZend_Log_Formatter_Firebug? : CZend_Log_Formatter_Abstract?9 =Zend_Log_Filter_Suppress?8 =Zend_Log_Filter_Priority?7 ;Zend_Log_Filter_Message?6 =Zend_Log_Filter_Abstract?5 1Zend_Log_Exception?4 #Zend_Locale?3 -Zend_Locale_Math?2 =Zend_Locale_Math_PhpMath?1 AZend_Locale_Math_Exception?0 1Zend_Locale_Format?/ 7Zend_Locale_Exception?. -Zend_Locale_Data?!- EZend_Locale_Data_Translation?, #Zend_Loader?+ =Zend_Loader_PluginLoader?'* QZend_Loader_PluginLoader_Exception?) 7Zend_Loader_Exception?( 9Zend_Loader_Autoloader?$' KZend_Loader_Autoloader_Resource?& Zend_Ldap?% )Zend_Ldap_Node?$ 7Zend_Ldap_Node_Schema?## IZend_Ldap_Node_Schema_OpenLdap?/" aZend_Ldap_Node_Schema_ObjectClass_OpenLdap?6! oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectory?  AZend_Ldap_Node_Schema_Item?1 eZend_Ldap_Node_Schema_AttributeType_OpenLdap?8 sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory?* WZend_Ldap_Node_Schema_ActiveDirectory? 9Zend_Ldap_Node_RootDse?$ KZend_Ldap_Node_RootDse_OpenLdap?& OZend_Ldap_Node_RootDse_eDirectory?+ YZend_Ldap_Node_RootDse_ActiveDirectory? ?Zend_Ldap_Node_Collection?$ KZend_Ldap_Node_ChildrenIterator? ;Zend_Ldap_Node_Abstract? 9Zend_Ldap_Ldif_Encoder? -Zend_Ldap_Filter? ;Zend_Ldap_Filter_String? 3Zend_Ldap_Filter_Or? 5Zend_Ldap_Filter_Not? 7Zend_Ldap_Filter_Mask? =Zend_Ldap_Filter_Logical? AZend_Ldap_Filter_Exception? 5Zend_Ldap_Filter_And? ?Zend_Ldap_Filter_Abstract? 3Zend_Ldap_Exception?
 %Zend_Ldap_Dn?	 3Zend_Ldap_Converter?   v gH)qU:Z>"vZ@,pO.





h
C
					w	H	(aD&lJ-wS2~M6zW8vS4vS2kH2                                  q 3Zend_Pdf_Color_Cmyk?p 'Zend_Pdf_Cmap?o AZend_Pdf_Cmap_TrimmedTable?!n EZend_Pdf_Cmap_SegmentToDelta?m AZend_Pdf_Cmap_ByteEncoding?&l OZend_Pdf_Cmap_ByteEncoding_Static?k +Zend_Pdf_Canvas?j =Zend_Pdf_Canvas_Abstract?i 3Zend_Pdf_Annotation?h =Zend_Pdf_Annotation_Text?g AZend_Pdf_Annotation_Markup?f =Zend_Pdf_Annotation_Link?'e QZend_Pdf_Annotation_FileAttachment?d +Zend_Pdf_Action?c 3Zend_Pdf_Action_URI?b ;Zend_Pdf_Action_Unknown?a 7Zend_Pdf_Action_Trans?` 9Zend_Pdf_Action_Thread?_ AZend_Pdf_Action_SubmitForm?^ 7Zend_Pdf_Action_Sound? ] CZend_Pdf_Action_SetOCGState?\ ?Zend_Pdf_Action_ResetForm?[ ?Zend_Pdf_Action_Rendition?Z 7Zend_Pdf_Action_Named?Y 7Zend_Pdf_Action_Movie?X 9Zend_Pdf_Action_Launch?W AZend_Pdf_Action_JavaScript?V AZend_Pdf_Action_ImportData?U 5Zend_Pdf_Action_Hide?T 7Zend_Pdf_Action_GoToR?S 7Zend_Pdf_Action_GoToE?R AZend_Pdf_Action_GoTo3DView?Q 5Zend_Pdf_Action_GoTo?P )Zend_Paginator?-O ]Zend_Paginator_SerializableLimitIterator?*N WZend_Paginator_ScrollingStyle_Sliding?*M WZend_Paginator_ScrollingStyle_Jumping?*L WZend_Paginator_ScrollingStyle_Elastic?&K OZend_Paginator_ScrollingStyle_All?J =Zend_Paginator_Exception? I CZend_Paginator_Adapter_Null?$H KZend_Paginator_Adapter_Iterator?)G UZend_Paginator_Adapter_DbTableSelect?$F KZend_Paginator_Adapter_DbSelect?!E EZend_Paginator_Adapter_Array?D #Zend_OpenId?C 5Zend_OpenId_Provider?B ?Zend_OpenId_Provider_User?&A OZend_OpenId_Provider_User_Session?!@ EZend_OpenId_Provider_Storage?&? OZend_OpenId_Provider_Storage_File?> 7Zend_OpenId_Extension?= AZend_OpenId_Extension_Sreg?< 7Zend_OpenId_Exception?; 5Zend_OpenId_Consumer?!: EZend_OpenId_Consumer_Storage?&9 OZend_OpenId_Consumer_Storage_File?8 !Zend_Oauth?7 -Zend_Oauth_Token?6 =Zend_Oauth_Token_Request?'5 QZend_Oauth_Token_AuthorizedRequest?4 ;Zend_Oauth_Token_Access?+3 YZend_Oauth_Signature_SignatureAbstract?2 =Zend_Oauth_Signature_Rsa?#1 IZend_Oauth_Signature_Plaintext?0 ?Zend_Oauth_Signature_Hmac?/ +Zend_Oauth_Http?. ;Zend_Oauth_Http_Utility?&- OZend_Oauth_Http_UserAuthorization?!, EZend_Oauth_Http_RequestToken? + CZend_Oauth_Http_AccessToken?* 5Zend_Oauth_Exception?) 3Zend_Oauth_Consumer?( /Zend_Oauth_Config?' /Zend_Oauth_Client?& +Zend_Navigation?% 5Zend_Navigation_Page?$ =Zend_Navigation_Page_Uri?# =Zend_Navigation_Page_Mvc?" ?Zend_Navigation_Exception?! ?Zend_Navigation_Container?  Zend_Mime? )Zend_Mime_Part? /Zend_Mime_Message? 3Zend_Mime_Exception? -Zend_Mime_Decode? #Zend_Memory? /Zend_Memory_Value? 3Zend_Memory_Manager? 7Zend_Memory_Exception? 7Zend_Memory_Container?" GZend_Memory_Container_Movable?! EZend_Memory_Container_Locked?! EZend_Memory_AccessController? 3Zend_Measure_Weight? 3Zend_Measure_Volume?% MZend_Measure_Viscosity_Kinematic?# IZend_Measure_Viscosity_Dynamic? 3Zend_Measure_Torque? /Zend_Measure_Time? =Zend_Measure_Temperature? 1Zend_Measure_Speed? 7Zend_Measure_Pressure?
 1Zend_Measure_Power?	 3Zend_Measure_Number? 9Zend_Measure_Lightness? 3Zend_Measure_Length? ?Zend_Measure_Illumination? 9Zend_Measure_Frequency? 1Zend_Measure_Force? =Zend_Measure_Flow_Volume? 9Zend_Measure_Flow_Mole? 9Zend_Measure_Flow_Mass?  9Zend_Measure_Exception? 3Zend_Measure_Energy?~ 5Zend_Measure_Density?} 5Zend_Measure_Current? | CZend_Measure_Cooking_Weight?   c  kJY.gC%tK(bG




e
:
				|	T	0	mW?e<t9CO_0
yU0x`=                  !T EZend_Pdf_UpdateInfoContainer?S -Zend_Pdf_Trailer?R ;Zend_Pdf_Trailer_Keeper?Q AZend_Pdf_Trailer_Generator?P +Zend_Pdf_Target?O )Zend_Pdf_Style?N 7Zend_Pdf_StringParser?M /Zend_Pdf_Resource?L ?Zend_Pdf_Resource_Unified?#K IZend_Pdf_Resource_ImageFactory?J ;Zend_Pdf_Resource_Image?!I EZend_Pdf_Resource_Image_Tiff? H CZend_Pdf_Resource_Image_Png?!G EZend_Pdf_Resource_Image_Jpeg?$F KZend_Pdf_Resource_GraphicsState?E 9Zend_Pdf_Resource_Font?!D EZend_Pdf_Resource_Font_Type0?"C GZend_Pdf_Resource_Font_Simple?+B YZend_Pdf_Resource_Font_Simple_Standard?8A sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats?6@ oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman?7? qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic?;> yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic?5= mZend_Pdf_Resource_Font_Simple_Standard_TimesBold?2< gZend_Pdf_Resource_Font_Simple_Standard_Symbol?<; {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaOblique?A: Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique?99 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold?58 mZend_Pdf_Resource_Font_Simple_Standard_Helvetica?:7 wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique?>6 Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique?75 qZend_Pdf_Resource_Font_Simple_Standard_CourierBold?34 iZend_Pdf_Resource_Font_Simple_Standard_Courier?)3 UZend_Pdf_Resource_Font_Simple_Parsed?22 gZend_Pdf_Resource_Font_Simple_Parsed_TrueType?*1 WZend_Pdf_Resource_Font_FontDescriptor?%0 MZend_Pdf_Resource_Font_Extracted?#/ IZend_Pdf_Resource_Font_CidFont?,. [Zend_Pdf_Resource_Font_CidFont_TrueType? - CZend_Pdf_Resource_Extractor?$, KZend_Pdf_Resource_ContentStream?3+ iZend_Pdf_RecursivelyIteratableObjectsContainer?* +Zend_Pdf_Parser?) 'Zend_Pdf_Page?( -Zend_Pdf_Outline?' ;Zend_Pdf_Outline_Loaded?& =Zend_Pdf_Outline_Created?% /Zend_Pdf_NameTree?$ )Zend_Pdf_Image?# 'Zend_Pdf_Font?" ?Zend_Pdf_Filter_RunLength? ! CZend_Pdf_Filter_Compression?$  KZend_Pdf_Filter_Compression_Lzw?& OZend_Pdf_Filter_Compression_Flate? =Zend_Pdf_Filter_AsciiHex? ;Zend_Pdf_Filter_Ascii85?" GZend_Pdf_FileParserDataSource?) UZend_Pdf_FileParserDataSource_String?' QZend_Pdf_FileParserDataSource_File? 3Zend_Pdf_FileParser? ?Zend_Pdf_FileParser_Image?" GZend_Pdf_FileParser_Image_Png? =Zend_Pdf_FileParser_Font?& OZend_Pdf_FileParser_Font_OpenType?/ aZend_Pdf_FileParser_Font_OpenType_TrueType? 1Zend_Pdf_Exception? ;Zend_Pdf_ElementFactory?" GZend_Pdf_ElementFactory_Proxy? -Zend_Pdf_Element? ;Zend_Pdf_Element_String?# IZend_Pdf_Element_String_Binary? ;Zend_Pdf_Element_Stream? AZend_Pdf_Element_Reference?% MZend_Pdf_Element_Reference_Table?'
 QZend_Pdf_Element_Reference_Context?	 ;Zend_Pdf_Element_Object?# IZend_Pdf_Element_Object_Stream? =Zend_Pdf_Element_Numeric? 7Zend_Pdf_Element_Null? 7Zend_Pdf_Element_Name?  CZend_Pdf_Element_Dictionary? =Zend_Pdf_Element_Boolean? 9Zend_Pdf_Element_Array? 5Zend_Pdf_Destination?  ?Zend_Pdf_Destination_Zoom?! EZend_Pdf_Destination_Unknown?~ AZend_Pdf_Destination_Named?'} QZend_Pdf_Destination_FitVertically?&| OZend_Pdf_Destination_FitRectangle?){ UZend_Pdf_Destination_FitHorizontally?2z gZend_Pdf_Destination_FitBoundingBoxVertically?4y kZend_Pdf_Destination_FitBoundingBoxHorizontally?(x SZend_Pdf_Destination_FitBoundingBox?w =Zend_Pdf_Destination_Fit?"v GZend_Pdf_Destination_Explicit?u )Zend_Pdf_Color?t 1Zend_Pdf_Color_Rgb?s 3Zend_Pdf_Color_Html?r =Zend_Pdf_Color_GrayScale?   ^  sK*~X4d="\0hI'




j
M
1
				u	<i0sFi/S*xS!n0uAu7              ,2 [Zend_Search_Lucene_Search_Query_Boolean?21 gZend_Search_Lucene_Search_Highlighter_Default?:0 wZend_Search_Lucene_Search_BooleanExpressionRecognizer?/ =Zend_Search_Lucene_Proxy?%. MZend_Search_Lucene_PriorityQueue?/- aZend_Search_Lucene_Interface_MultiSearcher?#, IZend_Search_Lucene_LockManager?$+ KZend_Search_Lucene_Index_Writer?0* cZend_Search_Lucene_Index_TermsPriorityQueue?&) OZend_Search_Lucene_Index_TermInfo?"( GZend_Search_Lucene_Index_Term?+' YZend_Search_Lucene_Index_SegmentWriter?8& sZend_Search_Lucene_Index_SegmentWriter_StreamWriter?:% wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter?+$ YZend_Search_Lucene_Index_SegmentMerger?)# UZend_Search_Lucene_Index_SegmentInfo?'" QZend_Search_Lucene_Index_FieldInfo?(! SZend_Search_Lucene_Index_DocsFilter?.  _Zend_Search_Lucene_Index_DictionaryLoader?! EZend_Search_Lucene_FSMAction? 9Zend_Search_Lucene_FSM? =Zend_Search_Lucene_Field?! EZend_Search_Lucene_Exception?  CZend_Search_Lucene_Document?% MZend_Search_Lucene_Document_Xlsx?% MZend_Search_Lucene_Document_Pptx?( SZend_Search_Lucene_Document_OpenXml?% MZend_Search_Lucene_Document_Html?* WZend_Search_Lucene_Document_Exception?% MZend_Search_Lucene_Document_Docx?, [Zend_Search_Lucene_Analysis_TokenFilter?6 oZend_Search_Lucene_Analysis_TokenFilter_StopWords?7 qZend_Search_Lucene_Analysis_TokenFilter_ShortWords?: wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8?6 oZend_Search_Lucene_Analysis_TokenFilter_LowerCase?& OZend_Search_Lucene_Analysis_Token?) UZend_Search_Lucene_Analysis_Analyzer?0 cZend_Search_Lucene_Analysis_Analyzer_Common?8 sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num?I Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive?5
 mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8?F	 Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive?8 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum?I Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive?5 mZend_Search_Lucene_Analysis_Analyzer_Common_Text?F Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive? 7Zend_Search_Exception? -Zend_Rest_Server? AZend_Rest_Server_Exception? +Zend_Rest_Route?  3Zend_Rest_Exception? 5Zend_Rest_Controller?~ -Zend_Rest_Client?} ;Zend_Rest_Client_Result?&| OZend_Rest_Client_Result_Exception?{ AZend_Rest_Client_Exception?z 'Zend_Registry?y =Zend_Reflection_Property?x ?Zend_Reflection_Parameter?w 9Zend_Reflection_Method?v =Zend_Reflection_Function?u 5Zend_Reflection_File?t ?Zend_Reflection_Extension?s ?Zend_Reflection_Exception?r =Zend_Reflection_Docblock?!q EZend_Reflection_Docblock_Tag?(p SZend_Reflection_Docblock_Tag_Return?'o QZend_Reflection_Docblock_Tag_Param?n 7Zend_Reflection_Class?m !Zend_Queue?l 9Zend_Queue_Stomp_Frame?k ;Zend_Queue_Stomp_Client?'j QZend_Queue_Stomp_Client_Connection?i 1Zend_Queue_Message?#h IZend_Queue_Message_PlatformJob? g CZend_Queue_Message_Iterator?f 5Zend_Queue_Exception?(e SZend_Queue_Adapter_PlatformJobQueue?d ;Zend_Queue_Adapter_Null?!c EZend_Queue_Adapter_Memcacheq?b 7Zend_Queue_Adapter_Db? a CZend_Queue_Adapter_Db_Queue?"` GZend_Queue_Adapter_Db_Message?_ =Zend_Queue_Adapter_Array?'^ QZend_Queue_Adapter_AdapterAbstract? ] CZend_Queue_Adapter_Activemq?\ -Zend_ProgressBar?[ AZend_ProgressBar_Exception?Z =Zend_ProgressBar_Adapter?$Y KZend_ProgressBar_Adapter_JsPush?$X KZend_ProgressBar_Adapter_JsPull?'W QZend_ProgressBar_Adapter_Exception?%V MZend_ProgressBar_Adapter_Console?U Zend_Pdf?   Z  n<Y#o;{N R%



b
4
			s	D	xS*^<$fAuO+qT/vHlHkB                % MZend_Service_Amazon_Ec2_Response?# IZend_Service_Amazon_Ec2_Region?$
 KZend_Service_Amazon_Ec2_Keypair?%	 MZend_Service_Amazon_Ec2_Instance?- ]Zend_Service_Amazon_Ec2_Instance_Windows?. _Zend_Service_Amazon_Ec2_Instance_Reserved?" GZend_Service_Amazon_Ec2_Image?& OZend_Service_Amazon_Ec2_Exception?& OZend_Service_Amazon_Ec2_Elasticip?  CZend_Service_Amazon_Ec2_Ebs?' QZend_Service_Amazon_Ec2_CloudWatch?. _Zend_Service_Amazon_Ec2_Availabilityzones?%  MZend_Service_Amazon_Ec2_Abstract?' QZend_Service_Amazon_CustomerReview?'~ QZend_Service_Amazon_Authentication?*} WZend_Service_Amazon_Authentication_V2?*| WZend_Service_Amazon_Authentication_V1?*{ WZend_Service_Amazon_Authentication_S3?1z eZend_Service_Amazon_Authentication_Exception?$y KZend_Service_Amazon_Accessories?!x EZend_Service_Amazon_Abstract?w 5Zend_Service_Akismet?v 7Zend_Service_Abstract?u 9Zend_Server_Reflection?'t QZend_Server_Reflection_ReturnValue?%s MZend_Server_Reflection_Prototype?%r MZend_Server_Reflection_Parameter? q CZend_Server_Reflection_Node?"p GZend_Server_Reflection_Method?$o KZend_Server_Reflection_Function?-n ]Zend_Server_Reflection_Function_Abstract?%m MZend_Server_Reflection_Exception?!l EZend_Server_Reflection_Class?!k EZend_Server_Method_Prototype?!j EZend_Server_Method_Parameter?"i GZend_Server_Method_Definition? h CZend_Server_Method_Callback?g 7Zend_Server_Exception?f 9Zend_Server_Definition?e /Zend_Server_Cache?d 5Zend_Server_Abstract?c +Zend_Serializer?b ?Zend_Serializer_Exception?!a EZend_Serializer_Adapter_Wddx?)` UZend_Serializer_Adapter_PythonPickle?)_ UZend_Serializer_Adapter_PhpSerialize?$^ KZend_Serializer_Adapter_PhpCode?!] EZend_Serializer_Adapter_Json?%\ MZend_Serializer_Adapter_Igbinary?![ EZend_Serializer_Adapter_Amf3?!Z EZend_Serializer_Adapter_Amf0?,Y [Zend_Serializer_Adapter_AdapterAbstract?X 1Zend_Search_Lucene?0W cZend_Search_Lucene_TermStreamsPriorityQueue?$V KZend_Search_Lucene_Storage_File?+U YZend_Search_Lucene_Storage_File_Memory?/T aZend_Search_Lucene_Storage_File_Filesystem?)S UZend_Search_Lucene_Storage_Directory?4R kZend_Search_Lucene_Storage_Directory_Filesystem?%Q MZend_Search_Lucene_Search_Weight?*P WZend_Search_Lucene_Search_Weight_Term?,O [Zend_Search_Lucene_Search_Weight_Phrase?/N aZend_Search_Lucene_Search_Weight_MultiTerm?+M YZend_Search_Lucene_Search_Weight_Empty?-L ]Zend_Search_Lucene_Search_Weight_Boolean?)K UZend_Search_Lucene_Search_Similarity?1J eZend_Search_Lucene_Search_Similarity_Default?)I UZend_Search_Lucene_Search_QueryToken?3H iZend_Search_Lucene_Search_QueryParserException?1G eZend_Search_Lucene_Search_QueryParserContext?*F WZend_Search_Lucene_Search_QueryParser?)E UZend_Search_Lucene_Search_QueryLexer?'D QZend_Search_Lucene_Search_QueryHit?)C UZend_Search_Lucene_Search_QueryEntry?.B _Zend_Search_Lucene_Search_QueryEntry_Term?2A gZend_Search_Lucene_Search_QueryEntry_Subquery?0@ cZend_Search_Lucene_Search_QueryEntry_Phrase?$? KZend_Search_Lucene_Search_Query?-> ]Zend_Search_Lucene_Search_Query_Wildcard?)= UZend_Search_Lucene_Search_Query_Term?*< WZend_Search_Lucene_Search_Query_Range?2; gZend_Search_Lucene_Search_Query_Preprocessing?7: qZend_Search_Lucene_Search_Query_Preprocessing_Term?99 uZend_Search_Lucene_Search_Query_Preprocessing_Phrase?88 sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy?+7 YZend_Search_Lucene_Search_Query_Phrase?.6 _Zend_Search_Lucene_Search_Query_MultiTerm?25 gZend_Search_Lucene_Search_Query_Insignificant?*4 WZend_Search_Lucene_Search_Query_Fuzzy?*3 WZend_Search_Lucene_Search_Query_Empty?   C  _=c:lBe<b-



D			x	8vFr0aU M2&~                                            YO 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequest?dN IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequest?QM #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequest?OL Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequest?UK +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequest?UJ +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequest?VI -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequest?aH CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequest?ZG 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequest?TF )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequest?RE %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequest?YD 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequest?QC #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequest?QB #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequest?aA CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequest?N@ Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformation?L? Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalance?J> Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool?-= ]Zend_Service_DeveloperGarden_LocalSearch?>< Zend_Service_DeveloperGarden_LocalSearch_SearchParameters?7; qZend_Service_DeveloperGarden_LocalSearch_Exception?,: [Zend_Service_DeveloperGarden_IpLocation?69 oZend_Service_DeveloperGarden_IpLocation_IpAddress?+8 YZend_Service_DeveloperGarden_Exception?,7 [Zend_Service_DeveloperGarden_Credential?06 cZend_Service_DeveloperGarden_ConferenceCall?C5 Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatus?C4 Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail?<3 {Zend_Service_DeveloperGarden_ConferenceCall_Participant?:2 wZend_Service_DeveloperGarden_ConferenceCall_Exception?D1 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceSchedule?B0 Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail?C/ Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount?-. ]Zend_Service_DeveloperGarden_Client_Soap?2- gZend_Service_DeveloperGarden_Client_Exception?7, qZend_Service_DeveloperGarden_Client_ClientAbstract?1+ eZend_Service_DeveloperGarden_BaseUserService?A* Zend_Service_DeveloperGarden_BaseUserService_AccountBalance?) 9Zend_Service_Delicious?&( OZend_Service_Delicious_SimplePost?$' KZend_Service_Delicious_PostList? & CZend_Service_Delicious_Post?%% MZend_Service_Delicious_Exception? $ CZend_Service_Audioscrobbler?# 3Zend_Service_Amazon?" ;Zend_Service_Amazon_Sqs?&! OZend_Service_Amazon_Sqs_Exception?!  EZend_Service_Amazon_SimpleDb?* WZend_Service_Amazon_SimpleDb_Response?& OZend_Service_Amazon_SimpleDb_Page?+ YZend_Service_Amazon_SimpleDb_Exception?+ YZend_Service_Amazon_SimpleDb_Attribute?' QZend_Service_Amazon_SimilarProduct? 9Zend_Service_Amazon_S3?" GZend_Service_Amazon_S3_Stream?% MZend_Service_Amazon_S3_Exception?" GZend_Service_Amazon_ResultSet? ?Zend_Service_Amazon_Query?! EZend_Service_Amazon_OfferSet? ?Zend_Service_Amazon_Offer?& OZend_Service_Amazon_ListmaniaList? =Zend_Service_Amazon_Item? ?Zend_Service_Amazon_Image?" GZend_Service_Amazon_Exception?( SZend_Service_Amazon_EditorialReview? ;Zend_Service_Amazon_Ec2?+ YZend_Service_Amazon_Ec2_Securitygroups?   /  U:m0k=


l
%			I.urUG%S<                              W~ /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse?[} 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseType?W| /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse?\{ 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseType?Xz 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponse?gy OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseType?cx GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse?`w AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType?\v 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponse?Zu 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseType?Vt -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponse?Xs 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseType?Tr )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse?_q ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType?[p 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponse?Wo /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType?Sn 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponse?Qm #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstract?Sl 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponse?Jk Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType?gj OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseType?ci GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponse?Wh /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse?Ug +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponse?Sf 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse?3e iZend_Service_DeveloperGarden_Response_BaseType?Jd Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstract?Cc Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCall?Gb Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced?=a }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCall?A` Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatus?A_ Zend_Service_DeveloperGarden_Request_SmsValidation_Validate?N^ Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeyword?C] Zend_Service_DeveloperGarden_Request_SmsValidation_Invalidate?L\ Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbers?B[ Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract?9Z uZend_Service_DeveloperGarden_Request_SendSms_SendSMS?>Y Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS?9X uZend_Service_DeveloperGarden_Request_RequestAbstract?IW Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequest?EV Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest?3U iZend_Service_DeveloperGarden_Request_Exception?RT %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequest?YS 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequest?dR IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequest?QQ #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequest?RP %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequest?   7  L2{$[<


R
		k	,1WUi|,e8d'[                '5 QZend_Service_Ebay_Finding_Category?14 eZend_Service_Ebay_Finding_Category_Histogram?53 mZend_Service_Ebay_Finding_Category_Histogram_Set?;2 yZend_Service_Ebay_Finding_Category_Histogram_Container?%1 MZend_Service_Ebay_Finding_Aspect?)0 UZend_Service_Ebay_Finding_Aspect_Set?5/ mZend_Service_Ebay_Finding_Aspect_Histogram_Value?9. uZend_Service_Ebay_Finding_Aspect_Histogram_Value_Set?9- uZend_Service_Ebay_Finding_Aspect_Histogram_Container?', QZend_Service_Ebay_Finding_Abstract? + CZend_Service_Ebay_Exception?* AZend_Service_Ebay_Abstract?+) YZend_Service_DeveloperGarden_VoiceCall?/( aZend_Service_DeveloperGarden_SmsValidation?)' UZend_Service_DeveloperGarden_SendSms?5& mZend_Service_DeveloperGarden_SecurityTokenServer?;% yZend_Service_DeveloperGarden_SecurityTokenServer_Cache?K$ Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstract?L# Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponse?P" !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponse?G! Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponse?J  Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponse?K Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2Response?L Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponse?I Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumber?W /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponse?J Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponse?U +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponse?C Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponse?C Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstract?H Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponse?U +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponse?Q #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponse?I Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception?; yZend_Service_DeveloperGarden_Response_ResponseAbstract?O Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseType?K Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponse?A Zend_Service_DeveloperGarden_Response_IpLocation_RegionType?K Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseType?G Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponse?L Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationType?I Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType?> Zend_Service_DeveloperGarden_Response_IpLocation_CityType?4
 kZend_Service_DeveloperGarden_Response_Exception?T	 )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse?[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponse?f MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponse?S 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponse?T )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse?[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponse?f MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponse?S 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponse?U +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType?Q  #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse?[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseType?   \  rF{JY)|];h@



x
F
					\	7	|\9zR7tJpA}S%yIsL,J              4 kZend_Service_WindowsAzure_Credentials_SharedKey?A Zend_Service_WindowsAzure_Credentials_SharedAccessSignature?4 kZend_Service_WindowsAzure_Credentials_Exception?> Zend_Service_WindowsAzure_Credentials_CredentialsAbstract? 5Zend_Service_Twitter?  CZend_Service_Twitter_Search?# IZend_Service_Twitter_Exception?
 ;Zend_Service_Technorati?#	 IZend_Service_Technorati_Weblog?" GZend_Service_Technorati_Utils?* WZend_Service_Technorati_TagsResultSet?' QZend_Service_Technorati_TagsResult?) UZend_Service_Technorati_TagResultSet?& OZend_Service_Technorati_TagResult?, [Zend_Service_Technorati_SearchResultSet?) UZend_Service_Technorati_SearchResult?& OZend_Service_Technorati_ResultSet?#  IZend_Service_Technorati_Result?* WZend_Service_Technorati_KeyInfoResult?*~ WZend_Service_Technorati_GetInfoResult?&} OZend_Service_Technorati_Exception?1| eZend_Service_Technorati_DailyCountsResultSet?.{ _Zend_Service_Technorati_DailyCountsResult?,z [Zend_Service_Technorati_CosmosResultSet?)y UZend_Service_Technorati_CosmosResult?+x YZend_Service_Technorati_BlogInfoResult?#w IZend_Service_Technorati_Author?v ;Zend_Service_StrikeIron?(u SZend_Service_StrikeIron_ZipCodeInfo?2t gZend_Service_StrikeIron_USAddressVerification?-s ]Zend_Service_StrikeIron_SalesUseTaxBasic?&r OZend_Service_StrikeIron_Exception?&q OZend_Service_StrikeIron_Decorator?!p EZend_Service_StrikeIron_Base?o ;Zend_Service_SlideShare?&n OZend_Service_SlideShare_SlideShow?&m OZend_Service_SlideShare_Exception?l 1Zend_Service_Simpy?$k KZend_Service_Simpy_WatchlistSet?*j WZend_Service_Simpy_WatchlistFilterSet?'i QZend_Service_Simpy_WatchlistFilter?!h EZend_Service_Simpy_Watchlist?g ?Zend_Service_Simpy_TagSet?f 9Zend_Service_Simpy_Tag?e AZend_Service_Simpy_NoteSet?d ;Zend_Service_Simpy_Note?c AZend_Service_Simpy_LinkSet?!b EZend_Service_Simpy_LinkQuery?a ;Zend_Service_Simpy_Link?%` MZend_Service_ShortUrl_TinyUrlCom?&_ OZend_Service_ShortUrl_MetamarkNet?!^ EZend_Service_ShortUrl_JdemCz?] AZend_Service_ShortUrl_IsGd?$\ KZend_Service_ShortUrl_Exception?,[ [Zend_Service_ShortUrl_AbstractShortener?Z 9Zend_Service_ReCaptcha?$Y KZend_Service_ReCaptcha_Response?$X KZend_Service_ReCaptcha_MailHide?.W _Zend_Service_ReCaptcha_MailHide_Exception?%V MZend_Service_ReCaptcha_Exception?U 7Zend_Service_Nirvanix?#T IZend_Service_Nirvanix_Response?)S UZend_Service_Nirvanix_Namespace_Imfs?)R UZend_Service_Nirvanix_Namespace_Base?$Q KZend_Service_Nirvanix_Exception?P 7Zend_Service_LiveDocx?$O KZend_Service_LiveDocx_MailMerge?$N KZend_Service_LiveDocx_Exception?M 3Zend_Service_Flickr?"L GZend_Service_Flickr_ResultSet?K AZend_Service_Flickr_Result?J ?Zend_Service_Flickr_Image?I 9Zend_Service_Exception?H ?Zend_Service_Ebay_Finding?)G UZend_Service_Ebay_Finding_Storefront?+F YZend_Service_Ebay_Finding_ShippingInfo?+E YZend_Service_Ebay_Finding_Set_Abstract?,D [Zend_Service_Ebay_Finding_SellingStatus?)C UZend_Service_Ebay_Finding_SellerInfo?,B [Zend_Service_Ebay_Finding_Search_Result?*A WZend_Service_Ebay_Finding_Search_Item?.@ _Zend_Service_Ebay_Finding_Search_Item_Set?0? cZend_Service_Ebay_Finding_Response_Keywords?-> ]Zend_Service_Ebay_Finding_Response_Items?2= gZend_Service_Ebay_Finding_Response_Histograms?0< cZend_Service_Ebay_Finding_Response_Abstract?/; aZend_Service_Ebay_Finding_PaginationOutput?*: WZend_Service_Ebay_Finding_ListingInfo?(9 SZend_Service_Ebay_Finding_Exception?,8 [Zend_Service_Ebay_Finding_Error_Message?)7 UZend_Service_Ebay_Finding_Error_Data?-6 ]Zend_Service_Ebay_Finding_Error_Data_Set?   P  |#Vkt&W


u
?
			d	,Po4`4e;vQ)^6	lI*c0                                            &a OZend_Soap_Wsdl_Strategy_Composite?0` cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence?/_ aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex?$^ KZend_Soap_Wsdl_Strategy_AnyType?%] MZend_Soap_Wsdl_Strategy_Abstract?\ =Zend_Soap_Wsdl_Exception?[ -Zend_Soap_Server?Z AZend_Soap_Server_Exception?Y -Zend_Soap_Client?X 9Zend_Soap_Client_Local?W AZend_Soap_Client_Exception?V ;Zend_Soap_Client_DotNet?U ;Zend_Soap_Client_Common?T 9Zend_Soap_AutoDiscover?%S MZend_Soap_AutoDiscover_Exception?R %Zend_Session?)Q UZend_Session_Validator_HttpUserAgent?$P KZend_Session_Validator_Abstract?'O QZend_Session_SaveHandler_Exception?%N MZend_Session_SaveHandler_DbTable?M 9Zend_Session_Namespace?L 9Zend_Session_Exception?K 7Zend_Session_Abstract?J 1Zend_Service_Yahoo?$I KZend_Service_Yahoo_WebResultSet?!H EZend_Service_Yahoo_WebResult?&G OZend_Service_Yahoo_VideoResultSet?#F IZend_Service_Yahoo_VideoResult?!E EZend_Service_Yahoo_ResultSet?D ?Zend_Service_Yahoo_Result?)C UZend_Service_Yahoo_PageDataResultSet?&B OZend_Service_Yahoo_PageDataResult?%A MZend_Service_Yahoo_NewsResultSet?"@ GZend_Service_Yahoo_NewsResult?&? OZend_Service_Yahoo_LocalResultSet?#> IZend_Service_Yahoo_LocalResult?+= YZend_Service_Yahoo_InlinkDataResultSet?(< SZend_Service_Yahoo_InlinkDataResult?&; OZend_Service_Yahoo_ImageResultSet?#: IZend_Service_Yahoo_ImageResult?9 =Zend_Service_Yahoo_Image?&8 OZend_Service_WindowsAzure_Storage?47 kZend_Service_WindowsAzure_Storage_TableInstance?76 qZend_Service_WindowsAzure_Storage_TableEntityQuery?25 gZend_Service_WindowsAzure_Storage_TableEntity?,4 [Zend_Service_WindowsAzure_Storage_Table?<3 {Zend_Service_WindowsAzure_Storage_StorageEntityAbstract?72 qZend_Service_WindowsAzure_Storage_SignedIdentifier?31 iZend_Service_WindowsAzure_Storage_QueueMessage?40 kZend_Service_WindowsAzure_Storage_QueueInstance?,/ [Zend_Service_WindowsAzure_Storage_Queue?9. uZend_Service_WindowsAzure_Storage_PageRegionInstance?4- kZend_Service_WindowsAzure_Storage_LeaseInstance?9, uZend_Service_WindowsAzure_Storage_DynamicTableEntity?3+ iZend_Service_WindowsAzure_Storage_BlobInstance?4* kZend_Service_WindowsAzure_Storage_BlobContainer?+) YZend_Service_WindowsAzure_Storage_Blob?2( gZend_Service_WindowsAzure_Storage_Blob_Stream?;' yZend_Service_WindowsAzure_Storage_BatchStorageAbstract?,& [Zend_Service_WindowsAzure_Storage_Batch?-% ]Zend_Service_WindowsAzure_SessionHandler?>$ Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract?1# eZend_Service_WindowsAzure_RetryPolicy_RetryN?2" gZend_Service_WindowsAzure_RetryPolicy_NoRetry?4! kZend_Service_WindowsAzure_RetryPolicy_Exception?(  SZend_Service_WindowsAzure_Exception?J Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscription?2 gZend_Service_WindowsAzure_Diagnostics_Manager?3 iZend_Service_WindowsAzure_Diagnostics_LogLevel?4 kZend_Service_WindowsAzure_Diagnostics_Exception?N Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscription?H Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLog?L Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCounters?K Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstract?< {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogs?A Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstance?D 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectories?U +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogs?D 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSources?8 sZend_Service_WindowsAzure_Credentials_SharedKeyLite?   Y  d9hL. oB`.xJ




|
]
5
					{	\	A	+	|Rdb5T)U/QZ/{K                !: EZend_Tool_Framework_Registry?+9 YZend_Tool_Framework_Registry_Exception?+8 YZend_Tool_Framework_Provider_Signature?,7 [Zend_Tool_Framework_Provider_Repository?+6 YZend_Tool_Framework_Provider_Exception?*5 WZend_Tool_Framework_Provider_Abstract?&4 OZend_Tool_Framework_Metadata_Tool?)3 UZend_Tool_Framework_Metadata_Dynamic?'2 QZend_Tool_Framework_Metadata_Basic?,1 [Zend_Tool_Framework_Manifest_Repository?20 gZend_Tool_Framework_Manifest_ProviderMetadata?*/ WZend_Tool_Framework_Manifest_Metadata?+. YZend_Tool_Framework_Manifest_Exception?0- cZend_Tool_Framework_Manifest_ActionMetadata?1, eZend_Tool_Framework_Loader_IncludePathLoader?J+ Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator?+* YZend_Tool_Framework_Loader_BasicLoader?() SZend_Tool_Framework_Loader_Abstract?"( GZend_Tool_Framework_Exception?'' QZend_Tool_Framework_Client_Storage?1& eZend_Tool_Framework_Client_Storage_Directory?(% SZend_Tool_Framework_Client_Response?D$ 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator?'# QZend_Tool_Framework_Client_Request?(" SZend_Tool_Framework_Client_Manifest?9! uZend_Tool_Framework_Client_Interactive_InputResponse?8  sZend_Tool_Framework_Client_Interactive_InputRequest?8 sZend_Tool_Framework_Client_Interactive_InputHandler?) UZend_Tool_Framework_Client_Exception?' QZend_Tool_Framework_Client_Console?D 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Indention?D 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizer?C Zend_Tool_Framework_Client_Console_ResponseDecorator_Blockize?F Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter?0 cZend_Tool_Framework_Client_Console_Manifest?2 gZend_Tool_Framework_Client_Console_HelpSystem?6 oZend_Tool_Framework_Client_Console_ArgumentParser?& OZend_Tool_Framework_Client_Config?( SZend_Tool_Framework_Client_Abstract?* WZend_Tool_Framework_Action_Repository?) UZend_Tool_Framework_Action_Exception?$ KZend_Tool_Framework_Action_Base? 'Zend_TimeSync? 1Zend_TimeSync_Sntp? 9Zend_TimeSync_Protocol? /Zend_TimeSync_Ntp? ;Zend_TimeSync_Exception? +Zend_Text_Table?
 3Zend_Text_Table_Row?	 ?Zend_Text_Table_Exception?& OZend_Text_Table_Decorator_Unicode?$ KZend_Text_Table_Decorator_Ascii? 9Zend_Text_Table_Column? 3Zend_Text_MultiByte? -Zend_Text_Figlet? AZend_Text_Figlet_Exception? 3Zend_Text_Exception?& OZend_Test_PHPUnit_Db_SimpleTester?,  [Zend_Test_PHPUnit_Db_Operation_Truncate?* WZend_Test_PHPUnit_Db_Operation_Insert?-~ ]Zend_Test_PHPUnit_Db_Operation_DeleteAll?*} WZend_Test_PHPUnit_Db_Metadata_Generic?#| IZend_Test_PHPUnit_Db_Exception?,{ [Zend_Test_PHPUnit_Db_DataSet_QueryTable?.z _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet?0y cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet?)x UZend_Test_PHPUnit_Db_DataSet_DbTable?*w WZend_Test_PHPUnit_Db_DataSet_DbRowset?$v KZend_Test_PHPUnit_Db_Connection?'u QZend_Test_PHPUnit_DatabaseTestCase?)t UZend_Test_PHPUnit_ControllerTestCase?0s cZend_Test_PHPUnit_Constraint_ResponseHeader?*r WZend_Test_PHPUnit_Constraint_Redirect?+q YZend_Test_PHPUnit_Constraint_Exception?*p WZend_Test_PHPUnit_Constraint_DomQuery?o 7Zend_Test_DbStatement?n 3Zend_Test_DbAdapter?m /Zend_Tag_ItemList?l 'Zend_Tag_Item?k 1Zend_Tag_Exception?j )Zend_Tag_Cloud?i =Zend_Tag_Cloud_Exception?!h EZend_Tag_Cloud_Decorator_Tag?%g MZend_Tag_Cloud_Decorator_HtmlTag?'f QZend_Tag_Cloud_Decorator_HtmlCloud?'e QZend_Tag_Cloud_Decorator_Exception?#d IZend_Tag_Cloud_Decorator_Cloud?c )Zend_Soap_Wsdl?/b aZend_Soap_Wsdl_Strategy_DefaultComplexType?   F  r?
c,b0Ir8


k
7				c	0	f*U&Ml,@q3j0y>
                                                                 2  gZend_Tool_Project_Context_Zf_UploadsDirectory?0 cZend_Tool_Project_Context_Zf_TestsDirectory?7~ qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile?:} wZend_Tool_Project_Context_Zf_TestPHPUnitBootstrapFile?@| Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory?1{ eZend_Tool_Project_Context_Zf_TestLibraryFile?6z oZend_Tool_Project_Context_Zf_TestLibraryDirectory?:y wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFile?Bx Zend_Tool_Project_Context_Zf_TestApplicationModulesDirectory?Aw Zend_Tool_Project_Context_Zf_TestApplicationModuleDirectory?:v wZend_Tool_Project_Context_Zf_TestApplicationDirectory?@u Zend_Tool_Project_Context_Zf_TestApplicationControllerFile?Et Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory?>s Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile?=r }Zend_Tool_Project_Context_Zf_TestApplicationActionMethod?4q kZend_Tool_Project_Context_Zf_TemporaryDirectory?3p iZend_Tool_Project_Context_Zf_SessionsDirectory?8o sZend_Tool_Project_Context_Zf_SearchIndexesDirectory?<n {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory?8m sZend_Tool_Project_Context_Zf_PublicScriptsDirectory?1l eZend_Tool_Project_Context_Zf_PublicIndexFile?7k qZend_Tool_Project_Context_Zf_PublicImagesDirectory?1j eZend_Tool_Project_Context_Zf_PublicDirectory?5i mZend_Tool_Project_Context_Zf_ProjectProviderFile?2h gZend_Tool_Project_Context_Zf_ModulesDirectory?1g eZend_Tool_Project_Context_Zf_ModuleDirectory?1f eZend_Tool_Project_Context_Zf_ModelsDirectory?+e YZend_Tool_Project_Context_Zf_ModelFile?/d aZend_Tool_Project_Context_Zf_LogsDirectory?2c gZend_Tool_Project_Context_Zf_LocalesDirectory?2b gZend_Tool_Project_Context_Zf_LibraryDirectory?2a gZend_Tool_Project_Context_Zf_LayoutsDirectory?8` sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory?2_ gZend_Tool_Project_Context_Zf_LayoutScriptFile?.^ _Zend_Tool_Project_Context_Zf_HtaccessFile?0] cZend_Tool_Project_Context_Zf_FormsDirectory?*\ WZend_Tool_Project_Context_Zf_FormFile?/[ aZend_Tool_Project_Context_Zf_DocsDirectory?-Z ]Zend_Tool_Project_Context_Zf_DbTableFile?2Y gZend_Tool_Project_Context_Zf_DbTableDirectory?/X aZend_Tool_Project_Context_Zf_DataDirectory?6W oZend_Tool_Project_Context_Zf_ControllersDirectory?0V cZend_Tool_Project_Context_Zf_ControllerFile?2U gZend_Tool_Project_Context_Zf_ConfigsDirectory?,T [Zend_Tool_Project_Context_Zf_ConfigFile?0S cZend_Tool_Project_Context_Zf_CacheDirectory?/R aZend_Tool_Project_Context_Zf_BootstrapFile?6Q oZend_Tool_Project_Context_Zf_ApplicationDirectory?7P qZend_Tool_Project_Context_Zf_ApplicationConfigFile?/O aZend_Tool_Project_Context_Zf_ApisDirectory?.N _Zend_Tool_Project_Context_Zf_ActionMethod?3M iZend_Tool_Project_Context_Zf_AbstractClassFile?@L Zend_Tool_Project_Context_System_ProjectProvidersDirectory?8K sZend_Tool_Project_Context_System_ProjectProfileFile?6J oZend_Tool_Project_Context_System_ProjectDirectory?)I UZend_Tool_Project_Context_Repository?.H _Zend_Tool_Project_Context_Filesystem_File?3G iZend_Tool_Project_Context_Filesystem_Directory?2F gZend_Tool_Project_Context_Filesystem_Abstract?(E SZend_Tool_Project_Context_Exception?-D ]Zend_Tool_Project_Context_Content_Engine?3C iZend_Tool_Project_Context_Content_Engine_Phtml?;B yZend_Tool_Project_Context_Content_Engine_CodeGenerator?0A cZend_Tool_Framework_System_Provider_Version?0@ cZend_Tool_Framework_System_Provider_Phpinfo?1? eZend_Tool_Framework_System_Provider_Manifest?/> aZend_Tool_Framework_System_Provider_Config?(= SZend_Tool_Framework_System_Manifest?-< ]Zend_Tool_Framework_System_Action_Delete?-; ]Zend_Tool_Framework_System_Action_Create?   b  GeAj5U&sK!



w
L
					Z	7	fE'wI$Z6a<yU.	uR4}U/a6                                    !b EZend_Validate_File_Extension?a ?Zend_Validate_File_Exists?'` QZend_Validate_File_ExcludeMimeType?(_ SZend_Validate_File_ExcludeExtension?^ =Zend_Validate_File_Crc32?] =Zend_Validate_File_Count?\ ;Zend_Validate_Exception?[ AZend_Validate_EmailAddress?Z 5Zend_Validate_Digits?"Y GZend_Validate_Db_RecordExists?$X KZend_Validate_Db_NoRecordExists?W ?Zend_Validate_Db_Abstract?V 1Zend_Validate_Date?U =Zend_Validate_CreditCard?T 3Zend_Validate_Ccnum?S 9Zend_Validate_Callback?R 7Zend_Validate_Between?Q 7Zend_Validate_Barcode?P AZend_Validate_Barcode_Upce?O AZend_Validate_Barcode_Upca?N AZend_Validate_Barcode_Sscc?$M KZend_Validate_Barcode_Royalmail?"L GZend_Validate_Barcode_Postnet?!K EZend_Validate_Barcode_Planet?#J IZend_Validate_Barcode_Leitcode? I CZend_Validate_Barcode_Itf14?H AZend_Validate_Barcode_Issn?*G WZend_Validate_Barcode_IntelligentMail?$F KZend_Validate_Barcode_Identcode?!E EZend_Validate_Barcode_Gtin14?!D EZend_Validate_Barcode_Gtin13?!C EZend_Validate_Barcode_Gtin12?B AZend_Validate_Barcode_Ean8?A AZend_Validate_Barcode_Ean5?@ AZend_Validate_Barcode_Ean2? ? CZend_Validate_Barcode_Ean18? > CZend_Validate_Barcode_Ean14? = CZend_Validate_Barcode_Ean13? < CZend_Validate_Barcode_Ean12?$; KZend_Validate_Barcode_Code93ext?!: EZend_Validate_Barcode_Code93?$9 KZend_Validate_Barcode_Code39ext?!8 EZend_Validate_Barcode_Code39?,7 [Zend_Validate_Barcode_Code25interleaved?!6 EZend_Validate_Barcode_Code25?*5 WZend_Validate_Barcode_AdapterAbstract?4 3Zend_Validate_Alpha?3 3Zend_Validate_Alnum?2 9Zend_Validate_Abstract?1 Zend_Uri?0 'Zend_Uri_Http?/ 1Zend_Uri_Exception?. )Zend_Translate?- 7Zend_Translate_Plural?, =Zend_Translate_Exception?+ 9Zend_Translate_Adapter?!* EZend_Translate_Adapter_XmlTm?!) EZend_Translate_Adapter_Xliff?( AZend_Translate_Adapter_Tmx?' AZend_Translate_Adapter_Tbx?& ?Zend_Translate_Adapter_Qt?% AZend_Translate_Adapter_Ini?#$ IZend_Translate_Adapter_Gettext?# AZend_Translate_Adapter_Csv?!" EZend_Translate_Adapter_Array?$! KZend_Tool_Project_Provider_View?$  KZend_Tool_Project_Provider_Test?/ aZend_Tool_Project_Provider_ProjectProvider?' QZend_Tool_Project_Provider_Project?' QZend_Tool_Project_Provider_Profile?& OZend_Tool_Project_Provider_Module?% MZend_Tool_Project_Provider_Model?( SZend_Tool_Project_Provider_Manifest?& OZend_Tool_Project_Provider_Layout?$ KZend_Tool_Project_Provider_Form?) UZend_Tool_Project_Provider_Exception?' QZend_Tool_Project_Provider_DbTable?) UZend_Tool_Project_Provider_DbAdapter?* WZend_Tool_Project_Provider_Controller?+ YZend_Tool_Project_Provider_Application?& OZend_Tool_Project_Provider_Action?( SZend_Tool_Project_Provider_Abstract? ?Zend_Tool_Project_Profile?' QZend_Tool_Project_Profile_Resource?9 uZend_Tool_Project_Profile_Resource_SearchConstraints?1 eZend_Tool_Project_Profile_Resource_Container?= }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter?5 mZend_Tool_Project_Profile_Iterator_ContextFilter?-
 ]Zend_Tool_Project_Profile_FileParser_Xml?(	 SZend_Tool_Project_Profile_Exception?  CZend_Tool_Project_Exception?< {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory?0 cZend_Tool_Project_Context_Zf_ViewsDirectory?6 oZend_Tool_Project_Context_Zf_ViewScriptsDirectory?0 cZend_Tool_Project_Context_Zf_ViewScriptFile?6 oZend_Tool_Project_Context_Zf_ViewHelpersDirectory?6 oZend_Tool_Project_Context_Zf_ViewFiltersDirectory?A Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory?   l  nK,\@rY> vT-
fE#



~
Z
4
					_	4	^<iF!oI+~U)i1W)pS0\7         !N EZend_XmlRpc_Client_Exception?&M OZend_Wildfire_Protocol_JsonStream?!L EZend_Wildfire_Plugin_FirePhp?.K _Zend_Wildfire_Plugin_FirePhp_TableMessage?)J UZend_Wildfire_Plugin_FirePhp_Message?I ;Zend_Wildfire_Exception?&H OZend_Wildfire_Channel_HttpHeaders?G Zend_View?F -Zend_View_Stream?E AZend_View_Helper_UserAgent?D 5Zend_View_Helper_Url?C AZend_View_Helper_Translate?B =Zend_View_Helper_TinySrc?A AZend_View_Helper_ServerUrl?)@ UZend_View_Helper_RenderToPlaceholder?!? EZend_View_Helper_Placeholder?*> WZend_View_Helper_Placeholder_Registry?4= kZend_View_Helper_Placeholder_Registry_Exception?+< YZend_View_Helper_Placeholder_Container?6; oZend_View_Helper_Placeholder_Container_Standalone?5: mZend_View_Helper_Placeholder_Container_Exception?49 kZend_View_Helper_Placeholder_Container_Abstract?!8 EZend_View_Helper_PartialLoop?7 =Zend_View_Helper_Partial?'6 QZend_View_Helper_Partial_Exception?'5 QZend_View_Helper_PaginationControl? 4 CZend_View_Helper_Navigation?(3 SZend_View_Helper_Navigation_Sitemap?%2 MZend_View_Helper_Navigation_Menu?&1 OZend_View_Helper_Navigation_Links?/0 aZend_View_Helper_Navigation_HelperAbstract?,/ [Zend_View_Helper_Navigation_Breadcrumbs?. ;Zend_View_Helper_Layout?- 7Zend_View_Helper_Json?", GZend_View_Helper_InlineScript?#+ IZend_View_Helper_HtmlQuicktime?* ?Zend_View_Helper_HtmlPage? ) CZend_View_Helper_HtmlObject?( ?Zend_View_Helper_HtmlList?' AZend_View_Helper_HtmlFlash?!& EZend_View_Helper_HtmlElement?% AZend_View_Helper_HeadTitle?$ AZend_View_Helper_HeadStyle? # CZend_View_Helper_HeadScript?" ?Zend_View_Helper_HeadMeta?! ?Zend_View_Helper_HeadLink?  ?Zend_View_Helper_Gravatar?" GZend_View_Helper_FormTextarea? ?Zend_View_Helper_FormText?  CZend_View_Helper_FormSubmit?  CZend_View_Helper_FormSelect? AZend_View_Helper_FormReset? AZend_View_Helper_FormRadio?" GZend_View_Helper_FormPassword? ?Zend_View_Helper_FormNote?' QZend_View_Helper_FormMultiCheckbox? AZend_View_Helper_FormLabel? AZend_View_Helper_FormImage?  CZend_View_Helper_FormHidden? ?Zend_View_Helper_FormFile?  CZend_View_Helper_FormErrors?! EZend_View_Helper_FormElement?" GZend_View_Helper_FormCheckbox?  CZend_View_Helper_FormButton? 7Zend_View_Helper_Form? ?Zend_View_Helper_Fieldset? =Zend_View_Helper_Doctype?! EZend_View_Helper_DeclareVars?
 9Zend_View_Helper_Cycle?	 ?Zend_View_Helper_Currency? =Zend_View_Helper_BaseUrl? ;Zend_View_Helper_Action? ?Zend_View_Helper_Abstract? 3Zend_View_Exception? 1Zend_View_Abstract? %Zend_Version? 'Zend_Validate? AZend_Validate_StringLength?#  IZend_Validate_Sitemap_Priority? ?Zend_Validate_Sitemap_Loc?"~ GZend_Validate_Sitemap_Lastmod?%} MZend_Validate_Sitemap_Changefreq?| 3Zend_Validate_Regex?{ 9Zend_Validate_PostCode?z 9Zend_Validate_NotEmpty?y 9Zend_Validate_LessThan?x 1Zend_Validate_Isbn?w -Zend_Validate_Ip?v /Zend_Validate_Int?u 7Zend_Validate_InArray?t ;Zend_Validate_Identical?s 1Zend_Validate_Iban?r 9Zend_Validate_Hostname?q /Zend_Validate_Hex?p ?Zend_Validate_GreaterThan?o 3Zend_Validate_Float?!n EZend_Validate_File_WordCount?m ?Zend_Validate_File_Upload?l ;Zend_Validate_File_Size?k ;Zend_Validate_File_Sha1?!j EZend_Validate_File_NotExists? i CZend_Validate_File_MimeType?h 9Zend_Validate_File_Md5?g AZend_Validate_File_IsImage?$f KZend_Validate_File_IsCompressed?!e EZend_Validate_File_ImageSize?d ;Zend_Validate_File_Hash?!c EZend_Validate_File_FilesSize?   i  ~O({S2oN,dA zY?$






\
8
					j	C	X6jG&yHi<b3`7i6dK)            7 CZend_Auth_Adapter_Exception@6 =Zend_Auth_Adapter_Digest@5 ?Zend_Auth_Adapter_DbTable@4 -Zend_Application@#3 IZend_Application_Resource_View@(2 SZend_Application_Resource_UserAgent@(1 SZend_Application_Resource_Translate@&0 OZend_Application_Resource_Session@%/ MZend_Application_Resource_Router@/. aZend_Application_Resource_ResourceAbstract@)- UZend_Application_Resource_Navigation@&, OZend_Application_Resource_Multidb@&+ OZend_Application_Resource_Modules@#* IZend_Application_Resource_Mail@") GZend_Application_Resource_Log@%( MZend_Application_Resource_Locale@%' MZend_Application_Resource_Layout@.& _Zend_Application_Resource_Frontcontroller@(% SZend_Application_Resource_Exception@#$ IZend_Application_Resource_Dojo@!# EZend_Application_Resource_Db@+" YZend_Application_Resource_Cachemanager@&! OZend_Application_Module_Bootstrap@'  QZend_Application_Module_Autoloader@ AZend_Application_Exception@) UZend_Application_Bootstrap_Exception@1 eZend_Application_Bootstrap_BootstrapAbstract@) UZend_Application_Bootstrap_Bootstrap@ ?Zend_Amf_Value_TraitsInfo@- ]Zend_Amf_Value_Messaging_RemotingMessage@* WZend_Amf_Value_Messaging_ErrorMessage@, [Zend_Amf_Value_Messaging_CommandMessage@* WZend_Amf_Value_Messaging_AsyncMessage@- ]Zend_Amf_Value_Messaging_ArrayCollection@0 cZend_Amf_Value_Messaging_AcknowledgeMessage@- ]Zend_Amf_Value_Messaging_AbstractMessage@! EZend_Amf_Value_MessageHeader@ AZend_Amf_Value_MessageBody@ =Zend_Amf_Value_ByteArray@ AZend_Amf_Util_BinaryStream@ +Zend_Amf_Server@ ?Zend_Amf_Server_Exception@ /Zend_Amf_Response@ 9Zend_Amf_Response_Http@ -Zend_Amf_Request@
 7Zend_Amf_Request_Http@	 ?Zend_Amf_Parse_TypeLoader@ ?Zend_Amf_Parse_Serializer@# IZend_Amf_Parse_Resource_Stream@( SZend_Amf_Parse_Resource_MysqlResult@) UZend_Amf_Parse_Resource_MysqliResult@  CZend_Amf_Parse_OutputStream@ AZend_Amf_Parse_InputStream@  CZend_Amf_Parse_Deserializer@# IZend_Amf_Parse_Amf3_Serializer@%  MZend_Amf_Parse_Amf3_Deserializer@# IZend_Amf_Parse_Amf0_Serializer@%~ MZend_Amf_Parse_Amf0_Deserializer@} 1Zend_Amf_Exception@| 1Zend_Amf_Constants@{ 9Zend_Amf_Auth_Abstract@ z CZend_Amf_Adobe_Introspector@y AZend_Amf_Adobe_DbInspector@x 3Zend_Amf_Adobe_Auth@w Zend_Acl@v 'Zend_Acl_Role@u 9Zend_Acl_Role_Registry@%t MZend_Acl_Role_Registry_Exception@s /Zend_Acl_Resource@r 1Zend_Acl_Exception@q /Zend_XmlRpc_Value?p =Zend_XmlRpc_Value_Struct?o =Zend_XmlRpc_Value_String?n =Zend_XmlRpc_Value_Scalar?m 7Zend_XmlRpc_Value_Nil?l ?Zend_XmlRpc_Value_Integer? k CZend_XmlRpc_Value_Exception?j =Zend_XmlRpc_Value_Double?i AZend_XmlRpc_Value_DateTime?!h EZend_XmlRpc_Value_Collection?g ?Zend_XmlRpc_Value_Boolean?!f EZend_XmlRpc_Value_BigInteger?e =Zend_XmlRpc_Value_Base64?d ;Zend_XmlRpc_Value_Array?c 1Zend_XmlRpc_Server?b ?Zend_XmlRpc_Server_System?a =Zend_XmlRpc_Server_Fault?!` EZend_XmlRpc_Server_Exception?_ =Zend_XmlRpc_Server_Cache?^ 5Zend_XmlRpc_Response?] ?Zend_XmlRpc_Response_Http?\ 3Zend_XmlRpc_Request?[ ?Zend_XmlRpc_Request_Stdin?Z =Zend_XmlRpc_Request_Http?$Y KZend_XmlRpc_Generator_XmlWriter?,X [Zend_XmlRpc_Generator_GeneratorAbstract?&W OZend_XmlRpc_Generator_DomDocument?V /Zend_XmlRpc_Fault?U 7Zend_XmlRpc_Exception?T 1Zend_XmlRpc_Client?#S IZend_XmlRpc_Client_ServerProxy?+R YZend_XmlRpc_Client_ServerIntrospection?+Q YZend_XmlRpc_Client_IntrospectException?%P MZend_XmlRpc_Client_HttpException?&O OZend_XmlRpc_Client_FaultException?   X  a8\8hAVY-



a
(				Y	(g<
_1^=k:^/c5	l2~P+  .L _Zend_Form_Decorator_Marker_File_Interface@"K GZend_Form_Decorator_Interface@J 7Zend_Filter_Interface@"I GZend_Filter_Encrypt_Interface@+H YZend_Filter_Compress_CompressInterface@0G cZend_Feed_Writer_Renderer_RendererInterface@1F eZend_Feed_Writer_Extension_RendererInterface@#E IZend_Feed_Reader_FeedInterface@$D KZend_Feed_Reader_EntryInterface@7C qZend_Feed_Pubsubhubbub_Model_SubscriptionInterface@-B ]Zend_Feed_Pubsubhubbub_CallbackInterface@ A CZend_Feed_Builder_Interface@ @ CZend_Db_Statement_Interface@$? KZend_Currency_CurrencyInterface@)> UZend_Crypt_Math_BigInteger_Interface@+= YZend_Controller_Router_Route_Interface@%< MZend_Controller_Router_Interface@); UZend_Controller_Dispatcher_Interface@%: MZend_Controller_Action_Interface@&9 OZend_Cloud_StorageService_Adapter@$8 KZend_Cloud_QueueService_Adapter@,7 [Zend_Cloud_DocumentService_QueryAdapter@'6 QZend_Cloud_DocumentService_Adapter@5 5Zend_Captcha_Adapter@!4 EZend_Cache_Backend_Interface@)3 UZend_Cache_Backend_ExtendedInterface@ 2 CZend_Auth_Storage_Interface@ 1 CZend_Auth_Adapter_Interface@.0 _Zend_Auth_Adapter_Http_Resolver_Interface@'/ QZend_Application_Resource_Resource@4. kZend_Application_Bootstrap_ResourceBootstrapper@,- [Zend_Application_Bootstrap_Bootstrapper@, ;Zend_Acl_Role_Interface@ + CZend_Acl_Resource_Interface@* ?Zend_Acl_Assert_Interface@#) IZend_Wildfire_Plugin_Interface?$( KZend_Wildfire_Channel_Interface?' 3Zend_View_Interface?'& QZend_View_Helper_Navigation_Helper?% AZend_View_Helper_Interface?$ ;Zend_Validate_Interface?+# YZend_Validate_Barcode_AdapterInterface?3" iZend_Tool_Project_Profile_FileParser_Interface?:! wZend_Tool_Project_Context_System_TopLevelRestrictable?5  mZend_Tool_Project_Context_System_NotOverwritable?/ aZend_Tool_Project_Context_System_Interface?( SZend_Tool_Project_Context_Interface?+ YZend_Tool_Framework_Registry_Interface?2 gZend_Tool_Framework_Registry_EnabledInterface?- ]Zend_Tool_Framework_Provider_Pretendable?+ YZend_Tool_Framework_Provider_Interface?. _Zend_Tool_Framework_Provider_Interactable?/ aZend_Tool_Framework_Provider_Initializable?; yZend_Tool_Framework_Provider_DocblockManifestInterface?+ YZend_Tool_Framework_Metadata_Interface?. _Zend_Tool_Framework_Metadata_Attributable?6 oZend_Tool_Framework_Manifest_ProviderManifestable?6 oZend_Tool_Framework_Manifest_MetadataManifestable?+ YZend_Tool_Framework_Manifest_Interface?+ YZend_Tool_Framework_Manifest_Indexable?4 kZend_Tool_Framework_Manifest_ActionManifestable?) UZend_Tool_Framework_Loader_Interface?8 sZend_Tool_Framework_Client_Storage_AdapterInterface?D 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface?; yZend_Tool_Framework_Client_Interactive_OutputInterface?: wZend_Tool_Framework_Client_Interactive_InputInterface?)
 UZend_Tool_Framework_Action_Interface?(	 SZend_Text_Table_Decorator_Interface? /Zend_Tag_Taggable?& OZend_Soap_Wsdl_Strategy_Interface?% MZend_Session_Validator_Interface?' QZend_Session_SaveHandler_Interface?$ KZend_Service_ShortUrl_Shortener?I Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Interface? 7Zend_Server_Interface?- ]Zend_Serializer_Adapter_AdapterInterface?4  kZend_Search_Lucene_Search_Highlighter_Interface?! EZend_Search_Lucene_Interface?3~ iZend_Search_Lucene_Index_TermsStream_Interface?$} KZend_Queue_Stomp_FrameInterface?0| cZend_Queue_Stomp_Client_ConnectionInterface?({ SZend_Queue_Adapter_AdapterInterface?z ?Zend_Pdf_Filter_Interface?&y OZend_Pdf_ElementFactory_Interface?x ?Zend_Pdf_Canvas_Interface?,w [Zend_Paginator_ScrollingStyle_Interface?$v KZend_Paginator_AdapterAggregate?%u MZend_Paginator_Adapter_Interface?   f  _@|jK'pO.yN+wS1




g
?
					o	G	zV4|bH)[!wK~LW/tGqI%                                             ! EZend_CodeGenerator_Php_Class@  CZend_CodeGenerator_Php_Body@$ KZend_CodeGenerator_Php_Abstract@! EZend_CodeGenerator_Exception@  CZend_CodeGenerator_Abstract@& OZend_Cloud_StorageService_Factory@( SZend_Cloud_StorageService_Exception@3 iZend_Cloud_StorageService_Adapter_WindowsAzure@) UZend_Cloud_StorageService_Adapter_S3@/ aZend_Cloud_StorageService_Adapter_Nirvanix@1 eZend_Cloud_StorageService_Adapter_FileSystem@' QZend_Cloud_QueueService_MessageSet@$ KZend_Cloud_QueueService_Message@$ KZend_Cloud_QueueService_Factory@& OZend_Cloud_QueueService_Exception@. _Zend_Cloud_QueueService_Adapter_ZendQueue@1 eZend_Cloud_QueueService_Adapter_WindowsAzure@( SZend_Cloud_QueueService_Adapter_Sqs@4 kZend_Cloud_QueueService_Adapter_AbstractAdapter@.
 _Zend_Cloud_OperationNotAvailableException@	 5Zend_Cloud_Exception@% MZend_Cloud_DocumentService_Query@' QZend_Cloud_DocumentService_Factory@) UZend_Cloud_DocumentService_Exception@+ YZend_Cloud_DocumentService_DocumentSet@( SZend_Cloud_DocumentService_Document@4 kZend_Cloud_DocumentService_Adapter_WindowsAzure@: wZend_Cloud_DocumentService_Adapter_WindowsAzure_Query@0 cZend_Cloud_DocumentService_Adapter_SimpleDb@6  oZend_Cloud_DocumentService_Adapter_SimpleDb_Query@7 qZend_Cloud_DocumentService_Adapter_AbstractAdapter@~ AZend_Cloud_AbstractFactory@} /Zend_Captcha_Word@| 9Zend_Captcha_ReCaptcha@{ 1Zend_Captcha_Image@z 3Zend_Captcha_Figlet@y 9Zend_Captcha_Exception@x /Zend_Captcha_Dumb@w /Zend_Captcha_Base@v !Zend_Cache@u 1Zend_Cache_Manager@t =Zend_Cache_Frontend_Page@s AZend_Cache_Frontend_Output@!r EZend_Cache_Frontend_Function@q =Zend_Cache_Frontend_File@p ?Zend_Cache_Frontend_Class@ o CZend_Cache_Frontend_Capture@n 5Zend_Cache_Exception@m +Zend_Cache_Core@l 1Zend_Cache_Backend@"k GZend_Cache_Backend_ZendServer@(j SZend_Cache_Backend_ZendServer_ShMem@'i QZend_Cache_Backend_ZendServer_Disk@$h KZend_Cache_Backend_ZendPlatform@g ?Zend_Cache_Backend_Xcache@!f EZend_Cache_Backend_TwoLevels@e ;Zend_Cache_Backend_Test@d ?Zend_Cache_Backend_Static@c ?Zend_Cache_Backend_Sqlite@!b EZend_Cache_Backend_Memcached@$a KZend_Cache_Backend_Libmemcached@` ;Zend_Cache_Backend_File@!_ EZend_Cache_Backend_BlackHole@^ 9Zend_Cache_Backend_Apc@] %Zend_Barcode@\ ?Zend_Barcode_Renderer_Svg@+[ YZend_Barcode_Renderer_RendererAbstract@Z ?Zend_Barcode_Renderer_Pdf@ Y CZend_Barcode_Renderer_Image@$X KZend_Barcode_Renderer_Exception@W =Zend_Barcode_Object_Upce@V =Zend_Barcode_Object_Upca@"U GZend_Barcode_Object_Royalmail@ T CZend_Barcode_Object_Postnet@S AZend_Barcode_Object_Planet@'R QZend_Barcode_Object_ObjectAbstract@!Q EZend_Barcode_Object_Leitcode@P ?Zend_Barcode_Object_Itf14@"O GZend_Barcode_Object_Identcode@"N GZend_Barcode_Object_Exception@M ?Zend_Barcode_Object_Error@L =Zend_Barcode_Object_Ean8@K =Zend_Barcode_Object_Ean5@J =Zend_Barcode_Object_Ean2@I ?Zend_Barcode_Object_Ean13@H AZend_Barcode_Object_Code39@*G WZend_Barcode_Object_Code25interleaved@F AZend_Barcode_Object_Code25@ E CZend_Barcode_Object_Code128@D 9Zend_Barcode_Exception@C Zend_Auth@B ?Zend_Auth_Storage_Session@$A KZend_Auth_Storage_NonPersistent@ @ CZend_Auth_Storage_Exception@? -Zend_Auth_Result@> 3Zend_Auth_Exception@= =Zend_Auth_Adapter_OpenId@< 9Zend_Auth_Adapter_Ldap@; AZend_Auth_Adapter_InfoCard@: 9Zend_Auth_Adapter_Http@)9 UZend_Auth_Adapter_Http_Resolver_File@.8 _Zend_Auth_Adapter_Http_Resolver_Exception@   c  g;gAgO6oT<#uC


^
2				m	C	_2sM!zU(a3b4a@#kH&vcC-                 3Zend_Date_Exception@ 5Zend_Date_DateObject@~ -Zend_Date_Cities@} 'Zend_Currency@| ;Zend_Currency_Exception@{ !Zend_Crypt@z )Zend_Crypt_Rsa@y 1Zend_Crypt_Rsa_Key@x ?Zend_Crypt_Rsa_Key_Public@w AZend_Crypt_Rsa_Key_Private@v =Zend_Crypt_Rsa_Exception@u +Zend_Crypt_Math@t ?Zend_Crypt_Math_Exception@s AZend_Crypt_Math_BigInteger@#r IZend_Crypt_Math_BigInteger_Gmp@)q UZend_Crypt_Math_BigInteger_Exception@&p OZend_Crypt_Math_BigInteger_Bcmath@o +Zend_Crypt_Hmac@n ?Zend_Crypt_Hmac_Exception@m 5Zend_Crypt_Exception@l =Zend_Crypt_DiffieHellman@'k QZend_Crypt_DiffieHellman_Exception@!j EZend_Controller_Router_Route@(i SZend_Controller_Router_Route_Static@'h QZend_Controller_Router_Route_Regex@(g SZend_Controller_Router_Route_Module@*f WZend_Controller_Router_Route_Hostname@'e QZend_Controller_Router_Route_Chain@*d WZend_Controller_Router_Route_Abstract@#c IZend_Controller_Router_Rewrite@%b MZend_Controller_Router_Exception@$a KZend_Controller_Router_Abstract@*` WZend_Controller_Response_HttpTestCase@"_ GZend_Controller_Response_Http@'^ QZend_Controller_Response_Exception@!] EZend_Controller_Response_Cli@&\ OZend_Controller_Response_Abstract@#[ IZend_Controller_Request_Simple@)Z UZend_Controller_Request_HttpTestCase@!Y EZend_Controller_Request_Http@&X OZend_Controller_Request_Exception@&W OZend_Controller_Request_Apache404@%V MZend_Controller_Request_Abstract@&U OZend_Controller_Plugin_PutHandler@(T SZend_Controller_Plugin_ErrorHandler@"S GZend_Controller_Plugin_Broker@'R QZend_Controller_Plugin_ActionStack@$Q KZend_Controller_Plugin_Abstract@P 7Zend_Controller_Front@O ?Zend_Controller_Exception@(N SZend_Controller_Dispatcher_Standard@)M UZend_Controller_Dispatcher_Exception@(L SZend_Controller_Dispatcher_Abstract@K 9Zend_Controller_Action@(J SZend_Controller_Action_HelperBroker@6I oZend_Controller_Action_HelperBroker_PriorityStack@/H aZend_Controller_Action_Helper_ViewRenderer@&G OZend_Controller_Action_Helper_Url@-F ]Zend_Controller_Action_Helper_Redirector@'E QZend_Controller_Action_Helper_Json@1D eZend_Controller_Action_Helper_FlashMessenger@0C cZend_Controller_Action_Helper_ContextSwitch@(B SZend_Controller_Action_Helper_Cache@<A {Zend_Controller_Action_Helper_AutoCompleteScriptaculous@3@ iZend_Controller_Action_Helper_AutoCompleteDojo@8? sZend_Controller_Action_Helper_AutoComplete_Abstract@.> _Zend_Controller_Action_Helper_AjaxContext@.= _Zend_Controller_Action_Helper_ActionStack@+< YZend_Controller_Action_Helper_Abstract@%; MZend_Controller_Action_Exception@: 3Zend_Console_Getopt@"9 GZend_Console_Getopt_Exception@8 #Zend_Config@7 -Zend_Config_Yaml@6 +Zend_Config_Xml@5 1Zend_Config_Writer@4 ;Zend_Config_Writer_Yaml@3 9Zend_Config_Writer_Xml@2 ;Zend_Config_Writer_Json@1 9Zend_Config_Writer_Ini@$0 KZend_Config_Writer_FileAbstract@/ =Zend_Config_Writer_Array@. -Zend_Config_Json@- +Zend_Config_Ini@, 7Zend_Config_Exception@$+ KZend_CodeGenerator_Php_Property@1* eZend_CodeGenerator_Php_Property_DefaultValue@%) MZend_CodeGenerator_Php_Parameter@2( gZend_CodeGenerator_Php_Parameter_DefaultValue@"' GZend_CodeGenerator_Php_Method@,& [Zend_CodeGenerator_Php_Member_Container@+% YZend_CodeGenerator_Php_Member_Abstract@ $ CZend_CodeGenerator_Php_File@%# MZend_CodeGenerator_Php_Exception@$" KZend_CodeGenerator_Php_Docblock@(! SZend_CodeGenerator_Php_Docblock_Tag@/  aZend_CodeGenerator_Php_Docblock_Tag_Return@. _Zend_CodeGenerator_Php_Docblock_Tag_Param@0 cZend_CodeGenerator_Php_Docblock_Tag_License@   i  i@!lL*z[A,	xP2vT2




n
N
+
					\	?	)		S"l<lDuFb4h7	U'\2            i CZend_Dojo_View_Helper_Dijit@&h OZend_Dojo_View_Helper_DateTextBox@&g OZend_Dojo_View_Helper_CustomDijit@*f WZend_Dojo_View_Helper_CurrencyTextBox@&e OZend_Dojo_View_Helper_ContentPane@#d IZend_Dojo_View_Helper_ComboBox@#c IZend_Dojo_View_Helper_CheckBox@!b EZend_Dojo_View_Helper_Button@*a WZend_Dojo_View_Helper_BorderContainer@(` SZend_Dojo_View_Helper_AccordionPane@-_ ]Zend_Dojo_View_Helper_AccordionContainer@^ =Zend_Dojo_View_Exception@] )Zend_Dojo_Form@\ 9Zend_Dojo_Form_SubForm@*[ WZend_Dojo_Form_Element_VerticalSlider@-Z ]Zend_Dojo_Form_Element_ValidationTextBox@'Y QZend_Dojo_Form_Element_TimeTextBox@#X IZend_Dojo_Form_Element_TextBox@$W KZend_Dojo_Form_Element_Textarea@(V SZend_Dojo_Form_Element_SubmitButton@"U GZend_Dojo_Form_Element_Slider@*T WZend_Dojo_Form_Element_SimpleTextarea@'S QZend_Dojo_Form_Element_RadioButton@+R YZend_Dojo_Form_Element_PasswordTextBox@)Q UZend_Dojo_Form_Element_NumberTextBox@)P UZend_Dojo_Form_Element_NumberSpinner@,O [Zend_Dojo_Form_Element_HorizontalSlider@+N YZend_Dojo_Form_Element_FilteringSelect@"M GZend_Dojo_Form_Element_Editor@&L OZend_Dojo_Form_Element_DijitMulti@!K EZend_Dojo_Form_Element_Dijit@'J QZend_Dojo_Form_Element_DateTextBox@+I YZend_Dojo_Form_Element_CurrencyTextBox@$H KZend_Dojo_Form_Element_ComboBox@$G KZend_Dojo_Form_Element_CheckBox@"F GZend_Dojo_Form_Element_Button@ E CZend_Dojo_Form_DisplayGroup@*D WZend_Dojo_Form_Decorator_TabContainer@,C [Zend_Dojo_Form_Decorator_StackContainer@,B [Zend_Dojo_Form_Decorator_SplitContainer@'A QZend_Dojo_Form_Decorator_DijitForm@*@ WZend_Dojo_Form_Decorator_DijitElement@,? [Zend_Dojo_Form_Decorator_DijitContainer@)> UZend_Dojo_Form_Decorator_ContentPane@-= ]Zend_Dojo_Form_Decorator_BorderContainer@+< YZend_Dojo_Form_Decorator_AccordionPane@0; cZend_Dojo_Form_Decorator_AccordionContainer@: 3Zend_Dojo_Exception@9 )Zend_Dojo_Data@8 5Zend_Dojo_BuildLayer@7 !Zend_Debug@6 Zend_Db@5 'Zend_Db_Table@4 5Zend_Db_Table_Select@#3 IZend_Db_Table_Select_Exception@2 5Zend_Db_Table_Rowset@#1 IZend_Db_Table_Rowset_Exception@"0 GZend_Db_Table_Rowset_Abstract@/ /Zend_Db_Table_Row@ . CZend_Db_Table_Row_Exception@- AZend_Db_Table_Row_Abstract@, ;Zend_Db_Table_Exception@+ =Zend_Db_Table_Definition@* 9Zend_Db_Table_Abstract@) /Zend_Db_Statement@( =Zend_Db_Statement_Sqlsrv@'' QZend_Db_Statement_Sqlsrv_Exception@& 7Zend_Db_Statement_Pdo@% ?Zend_Db_Statement_Pdo_Oci@$ ?Zend_Db_Statement_Pdo_Ibm@# =Zend_Db_Statement_Oracle@'" QZend_Db_Statement_Oracle_Exception@! =Zend_Db_Statement_Mysqli@'  QZend_Db_Statement_Mysqli_Exception@  CZend_Db_Statement_Exception@ 7Zend_Db_Statement_Db2@$ KZend_Db_Statement_Db2_Exception@ )Zend_Db_Select@ =Zend_Db_Select_Exception@ -Zend_Db_Profiler@ 9Zend_Db_Profiler_Query@ =Zend_Db_Profiler_Firebug@ AZend_Db_Profiler_Exception@ %Zend_Db_Expr@ /Zend_Db_Exception@ 9Zend_Db_Adapter_Sqlsrv@% MZend_Db_Adapter_Sqlsrv_Exception@ AZend_Db_Adapter_Pdo_Sqlite@ ?Zend_Db_Adapter_Pdo_Pgsql@ ;Zend_Db_Adapter_Pdo_Oci@ ?Zend_Db_Adapter_Pdo_Mysql@ ?Zend_Db_Adapter_Pdo_Mssql@ ;Zend_Db_Adapter_Pdo_Ibm@  CZend_Db_Adapter_Pdo_Ibm_Ids@  CZend_Db_Adapter_Pdo_Ibm_Db2@!
 EZend_Db_Adapter_Pdo_Abstract@	 9Zend_Db_Adapter_Oracle@% MZend_Db_Adapter_Oracle_Exception@ 9Zend_Db_Adapter_Mysqli@% MZend_Db_Adapter_Mysqli_Exception@ ?Zend_Db_Adapter_Exception@ 3Zend_Db_Adapter_Db2@" GZend_Db_Adapter_Db2_Exception@ =Zend_Db_Adapter_Abstract@ Zend_Date@   \  ^0X.W,XF+
lH 





q
U
%				k	B	n7wJtAPhF V m=i1                                                      8E sZend_Feed_Writer_Extension_Threading_Renderer_Entry@4D kZend_Feed_Writer_Extension_Slash_Renderer_Entry@0C cZend_Feed_Writer_Extension_RendererAbstract@4B kZend_Feed_Writer_Extension_ITunes_Renderer_Feed@5A mZend_Feed_Writer_Extension_ITunes_Renderer_Entry@+@ YZend_Feed_Writer_Extension_ITunes_Feed@,? [Zend_Feed_Writer_Extension_ITunes_Entry@8> sZend_Feed_Writer_Extension_DublinCore_Renderer_Feed@9= uZend_Feed_Writer_Extension_DublinCore_Renderer_Entry@6< oZend_Feed_Writer_Extension_Content_Renderer_Entry@2; gZend_Feed_Writer_Extension_Atom_Renderer_Feed@6: oZend_Feed_Writer_Exception_InvalidMethodException@9 9Zend_Feed_Writer_Entry@8 =Zend_Feed_Writer_Deleted@7 'Zend_Feed_Rss@6 -Zend_Feed_Reader@5 =Zend_Feed_Reader_FeedSet@"4 GZend_Feed_Reader_FeedAbstract@3 ?Zend_Feed_Reader_Feed_Rss@2 AZend_Feed_Reader_Feed_Atom@&1 OZend_Feed_Reader_Feed_Atom_Source@30 iZend_Feed_Reader_Extension_WellFormedWeb_Entry@,/ [Zend_Feed_Reader_Extension_Thread_Entry@0. cZend_Feed_Reader_Extension_Syndication_Feed@+- YZend_Feed_Reader_Extension_Slash_Entry@,, [Zend_Feed_Reader_Extension_Podcast_Feed@-+ ]Zend_Feed_Reader_Extension_Podcast_Entry@,* [Zend_Feed_Reader_Extension_FeedAbstract@-) ]Zend_Feed_Reader_Extension_EntryAbstract@/( aZend_Feed_Reader_Extension_DublinCore_Feed@0' cZend_Feed_Reader_Extension_DublinCore_Entry@4& kZend_Feed_Reader_Extension_CreativeCommons_Feed@5% mZend_Feed_Reader_Extension_CreativeCommons_Entry@-$ ]Zend_Feed_Reader_Extension_Content_Entry@)# UZend_Feed_Reader_Extension_Atom_Feed@*" WZend_Feed_Reader_Extension_Atom_Entry@#! IZend_Feed_Reader_EntryAbstract@  AZend_Feed_Reader_Entry_Rss@  CZend_Feed_Reader_Entry_Atom@  CZend_Feed_Reader_Collection@3 iZend_Feed_Reader_Collection_CollectionAbstract@) UZend_Feed_Reader_Collection_Category@' QZend_Feed_Reader_Collection_Author@ 9Zend_Feed_Pubsubhubbub@& OZend_Feed_Pubsubhubbub_Subscriber@/ aZend_Feed_Pubsubhubbub_Subscriber_Callback@% MZend_Feed_Pubsubhubbub_Publisher@. _Zend_Feed_Pubsubhubbub_Model_Subscription@/ aZend_Feed_Pubsubhubbub_Model_ModelAbstract@( SZend_Feed_Pubsubhubbub_HttpResponse@% MZend_Feed_Pubsubhubbub_Exception@, [Zend_Feed_Pubsubhubbub_CallbackAbstract@ 3Zend_Feed_Exception@ 3Zend_Feed_Entry_Rss@ 5Zend_Feed_Entry_Atom@ =Zend_Feed_Entry_Abstract@ /Zend_Feed_Element@ /Zend_Feed_Builder@ =Zend_Feed_Builder_Header@$
 KZend_Feed_Builder_Header_Itunes@ 	 CZend_Feed_Builder_Exception@ ;Zend_Feed_Builder_Entry@ )Zend_Feed_Atom@ 1Zend_Feed_Abstract@ )Zend_Exception@ )Zend_Dom_Query@ 7Zend_Dom_Query_Result@ =Zend_Dom_Query_Css2Xpath@ 1Zend_Dom_Exception@  Zend_Dojo@) UZend_Dojo_View_Helper_VerticalSlider@,~ [Zend_Dojo_View_Helper_ValidationTextBox@&} OZend_Dojo_View_Helper_TimeTextBox@"| GZend_Dojo_View_Helper_TextBox@#{ IZend_Dojo_View_Helper_Textarea@'z QZend_Dojo_View_Helper_TabContainer@'y QZend_Dojo_View_Helper_SubmitButton@)x UZend_Dojo_View_Helper_StackContainer@)w UZend_Dojo_View_Helper_SplitContainer@!v EZend_Dojo_View_Helper_Slider@)u UZend_Dojo_View_Helper_SimpleTextarea@&t OZend_Dojo_View_Helper_RadioButton@*s WZend_Dojo_View_Helper_PasswordTextBox@(r SZend_Dojo_View_Helper_NumberTextBox@(q SZend_Dojo_View_Helper_NumberSpinner@+p YZend_Dojo_View_Helper_HorizontalSlider@o AZend_Dojo_View_Helper_Form@*n WZend_Dojo_View_Helper_FilteringSelect@!m EZend_Dojo_View_Helper_Editor@l AZend_Dojo_View_Helper_Dojo@)k UZend_Dojo_View_Helper_Dojo_Container@)j UZend_Dojo_View_Helper_DijitContainer@   k  wB}Q&|T/i;z[?$




j
I
&
					r	H		eC%vM#rCc?`?[7d@!yS0                   0 ;Zend_Form_Element_Reset@/ ;Zend_Form_Element_Radio@. AZend_Form_Element_Password@"- GZend_Form_Element_Multiselect@$, KZend_Form_Element_MultiCheckbox@+ ;Zend_Form_Element_Multi@* ;Zend_Form_Element_Image@) =Zend_Form_Element_Hidden@( 9Zend_Form_Element_Hash@' 9Zend_Form_Element_File@ & CZend_Form_Element_Exception@% AZend_Form_Element_Checkbox@$ ?Zend_Form_Element_Captcha@# =Zend_Form_Element_Button@" 9Zend_Form_DisplayGroup@#! IZend_Form_Decorator_ViewScript@#  IZend_Form_Decorator_ViewHelper@  CZend_Form_Decorator_Tooltip@( SZend_Form_Decorator_PrepareElements@ ?Zend_Form_Decorator_Label@ ?Zend_Form_Decorator_Image@  CZend_Form_Decorator_HtmlTag@# IZend_Form_Decorator_FormErrors@% MZend_Form_Decorator_FormElements@ =Zend_Form_Decorator_Form@ =Zend_Form_Decorator_File@! EZend_Form_Decorator_Fieldset@" GZend_Form_Decorator_Exception@ AZend_Form_Decorator_Errors@$ KZend_Form_Decorator_DtDdWrapper@$ KZend_Form_Decorator_Description@  CZend_Form_Decorator_Captcha@% MZend_Form_Decorator_Captcha_Word@! EZend_Form_Decorator_Callback@! EZend_Form_Decorator_Abstract@ #Zend_Filter@+ YZend_Filter_Word_UnderscoreToSeparator@& OZend_Filter_Word_UnderscoreToDash@+
 YZend_Filter_Word_UnderscoreToCamelCase@*	 WZend_Filter_Word_SeparatorToSeparator@% MZend_Filter_Word_SeparatorToDash@* WZend_Filter_Word_SeparatorToCamelCase@( SZend_Filter_Word_Separator_Abstract@& OZend_Filter_Word_DashToUnderscore@% MZend_Filter_Word_DashToSeparator@% MZend_Filter_Word_DashToCamelCase@+ YZend_Filter_Word_CamelCaseToUnderscore@* WZend_Filter_Word_CamelCaseToSeparator@%  MZend_Filter_Word_CamelCaseToDash@ 7Zend_Filter_StripTags@~ ?Zend_Filter_StripNewlines@} 9Zend_Filter_StringTrim@| ?Zend_Filter_StringToUpper@{ ?Zend_Filter_StringToLower@z 5Zend_Filter_RealPath@y ;Zend_Filter_PregReplace@x -Zend_Filter_Null@&w OZend_Filter_NormalizedToLocalized@&v OZend_Filter_LocalizedToNormalized@u +Zend_Filter_Int@t /Zend_Filter_Input@s 7Zend_Filter_Inflector@r =Zend_Filter_HtmlEntities@q AZend_Filter_File_UpperCase@p ;Zend_Filter_File_Rename@o AZend_Filter_File_LowerCase@n =Zend_Filter_File_Encrypt@m =Zend_Filter_File_Decrypt@l 7Zend_Filter_Exception@k 3Zend_Filter_Encrypt@ j CZend_Filter_Encrypt_Openssl@i AZend_Filter_Encrypt_Mcrypt@h +Zend_Filter_Dir@g 1Zend_Filter_Digits@f 3Zend_Filter_Decrypt@e 9Zend_Filter_Decompress@d 5Zend_Filter_Compress@c =Zend_Filter_Compress_Zip@b =Zend_Filter_Compress_Tar@a =Zend_Filter_Compress_Rar@` =Zend_Filter_Compress_Lzf@_ ;Zend_Filter_Compress_Gz@*^ WZend_Filter_Compress_CompressAbstract@] =Zend_Filter_Compress_Bz2@\ 5Zend_Filter_Callback@[ 3Zend_Filter_Boolean@Z 5Zend_Filter_BaseName@Y /Zend_Filter_Alpha@X /Zend_Filter_Alnum@W 1Zend_File_Transfer@!V EZend_File_Transfer_Exception@$U KZend_File_Transfer_Adapter_Http@(T SZend_File_Transfer_Adapter_Abstract@S Zend_Feed@R -Zend_Feed_Writer@Q ;Zend_Feed_Writer_Source@/P aZend_Feed_Writer_Renderer_RendererAbstract@'O QZend_Feed_Writer_Renderer_Feed_Rss@(N SZend_Feed_Writer_Renderer_Feed_Atom@/M aZend_Feed_Writer_Renderer_Feed_Atom_Source@5L mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstract@(K SZend_Feed_Writer_Renderer_Entry_Rss@)J UZend_Feed_Writer_Renderer_Entry_Atom@1I eZend_Feed_Writer_Renderer_Entry_Atom_Deleted@H 7Zend_Feed_Writer_Feed@'G QZend_Feed_Writer_Feed_FeedAbstract@<F {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_Entry@   b  |\B&d4{N%[5wL$




\
3
					]	-	
oG0a4~MpJ#m>rL'{c3p?                   + YZend_Gdata_DublinCore_Extension_Rights@. _Zend_Gdata_DublinCore_Extension_Publisher@- ]Zend_Gdata_DublinCore_Extension_Language@/ aZend_Gdata_DublinCore_Extension_Identifier@+ YZend_Gdata_DublinCore_Extension_Format@0 cZend_Gdata_DublinCore_Extension_Description@) UZend_Gdata_DublinCore_Extension_Date@, [Zend_Gdata_DublinCore_Extension_Creator@
 +Zend_Gdata_Docs@	 7Zend_Gdata_Docs_Query@% MZend_Gdata_Docs_DocumentListFeed@& OZend_Gdata_Docs_DocumentListEntry@ 9Zend_Gdata_ClientLogin@ 3Zend_Gdata_Calendar@! EZend_Gdata_Calendar_ListFeed@" GZend_Gdata_Calendar_ListEntry@- ]Zend_Gdata_Calendar_Extension_WebContent@+ YZend_Gdata_Calendar_Extension_Timezone@9  uZend_Gdata_Calendar_Extension_SendEventNotifications@+ YZend_Gdata_Calendar_Extension_Selected@+~ YZend_Gdata_Calendar_Extension_QuickAdd@'} QZend_Gdata_Calendar_Extension_Link@)| UZend_Gdata_Calendar_Extension_Hidden@({ SZend_Gdata_Calendar_Extension_Color@.z _Zend_Gdata_Calendar_Extension_AccessLevel@#y IZend_Gdata_Calendar_EventQuery@"x GZend_Gdata_Calendar_EventFeed@#w IZend_Gdata_Calendar_EventEntry@v -Zend_Gdata_Books@!u EZend_Gdata_Books_VolumeQuery@ t CZend_Gdata_Books_VolumeFeed@!s EZend_Gdata_Books_VolumeEntry@+r YZend_Gdata_Books_Extension_Viewability@-q ]Zend_Gdata_Books_Extension_ThumbnailLink@&p OZend_Gdata_Books_Extension_Review@+o YZend_Gdata_Books_Extension_PreviewLink@(n SZend_Gdata_Books_Extension_InfoLink@-m ]Zend_Gdata_Books_Extension_Embeddability@)l UZend_Gdata_Books_Extension_BooksLink@-k ]Zend_Gdata_Books_Extension_BooksCategory@.j _Zend_Gdata_Books_Extension_AnnotationLink@$i KZend_Gdata_Books_CollectionFeed@%h MZend_Gdata_Books_CollectionEntry@g 1Zend_Gdata_AuthSub@f )Zend_Gdata_App@$e KZend_Gdata_App_VersionException@d 3Zend_Gdata_App_Util@#c IZend_Gdata_App_MediaFileSource@b ?Zend_Gdata_App_MediaEntry@2a gZend_Gdata_App_LoggingHttpClientAdapterSocket@` AZend_Gdata_App_IOException@,_ [Zend_Gdata_App_InvalidArgumentException@!^ EZend_Gdata_App_HttpException@$] KZend_Gdata_App_FeedSourceParent@#\ IZend_Gdata_App_FeedEntryParent@[ 3Zend_Gdata_App_Feed@Z =Zend_Gdata_App_Extension@!Y EZend_Gdata_App_Extension_Uri@%X MZend_Gdata_App_Extension_Updated@#W IZend_Gdata_App_Extension_Title@"V GZend_Gdata_App_Extension_Text@%U MZend_Gdata_App_Extension_Summary@&T OZend_Gdata_App_Extension_Subtitle@$S KZend_Gdata_App_Extension_Source@$R KZend_Gdata_App_Extension_Rights@'Q QZend_Gdata_App_Extension_Published@$P KZend_Gdata_App_Extension_Person@"O GZend_Gdata_App_Extension_Name@"N GZend_Gdata_App_Extension_Logo@"M GZend_Gdata_App_Extension_Link@ L CZend_Gdata_App_Extension_Id@"K GZend_Gdata_App_Extension_Icon@'J QZend_Gdata_App_Extension_Generator@#I IZend_Gdata_App_Extension_Email@%H MZend_Gdata_App_Extension_Element@$G KZend_Gdata_App_Extension_Edited@#F IZend_Gdata_App_Extension_Draft@%E MZend_Gdata_App_Extension_Control@)D UZend_Gdata_App_Extension_Contributor@%C MZend_Gdata_App_Extension_Content@&B OZend_Gdata_App_Extension_Category@$A KZend_Gdata_App_Extension_Author@@ =Zend_Gdata_App_Exception@? 5Zend_Gdata_App_Entry@,> [Zend_Gdata_App_CaptchaRequiredException@#= IZend_Gdata_App_BaseMediaSource@< 3Zend_Gdata_App_Base@*; WZend_Gdata_App_BadMethodCallException@!: EZend_Gdata_App_AuthException@9 Zend_Form@8 /Zend_Form_SubForm@7 3Zend_Form_Exception@6 /Zend_Form_Element@5 ;Zend_Form_Element_Xhtml@4 AZend_Form_Element_Textarea@3 9Zend_Form_Element_Text@2 =Zend_Form_Element_Submit@1 =Zend_Form_Element_Select@   e  kM"yI#iQ%W1lH 



w
U
2
					e	4	^6
nJ%hD!oL3]>j@pEhE&                                    -w ]Zend_Gdata_Media_Extension_MediaCategory@v 9Zend_Gdata_Media_Entry@u AZend_Gdata_Kind_EventEntry@t 7Zend_Gdata_HttpClient@*s WZend_Gdata_HttpAdapterStreamingSocket@)r UZend_Gdata_HttpAdapterStreamingProxy@q /Zend_Gdata_Health@p ;Zend_Gdata_Health_Query@&o OZend_Gdata_Health_ProfileListFeed@'n QZend_Gdata_Health_ProfileListEntry@"m GZend_Gdata_Health_ProfileFeed@#l IZend_Gdata_Health_ProfileEntry@$k KZend_Gdata_Health_Extension_Ccr@j )Zend_Gdata_Geo@i 3Zend_Gdata_Geo_Feed@$h KZend_Gdata_Geo_Extension_GmlPos@&g OZend_Gdata_Geo_Extension_GmlPoint@)f UZend_Gdata_Geo_Extension_GeoRssWhere@e 5Zend_Gdata_Geo_Entry@d -Zend_Gdata_Gbase@"c GZend_Gdata_Gbase_SnippetQuery@!b EZend_Gdata_Gbase_SnippetFeed@"a GZend_Gdata_Gbase_SnippetEntry@` 9Zend_Gdata_Gbase_Query@_ AZend_Gdata_Gbase_ItemQuery@^ ?Zend_Gdata_Gbase_ItemFeed@] AZend_Gdata_Gbase_ItemEntry@\ 7Zend_Gdata_Gbase_Feed@-[ ]Zend_Gdata_Gbase_Extension_BaseAttribute@Z 9Zend_Gdata_Gbase_Entry@Y -Zend_Gdata_Gapps@X AZend_Gdata_Gapps_UserQuery@W ?Zend_Gdata_Gapps_UserFeed@V AZend_Gdata_Gapps_UserEntry@&U OZend_Gdata_Gapps_ServiceException@T 9Zend_Gdata_Gapps_Query@ S CZend_Gdata_Gapps_OwnerQuery@R AZend_Gdata_Gapps_OwnerFeed@ Q CZend_Gdata_Gapps_OwnerEntry@#P IZend_Gdata_Gapps_NicknameQuery@"O GZend_Gdata_Gapps_NicknameFeed@#N IZend_Gdata_Gapps_NicknameEntry@!M EZend_Gdata_Gapps_MemberQuery@ L CZend_Gdata_Gapps_MemberFeed@!K EZend_Gdata_Gapps_MemberEntry@ J CZend_Gdata_Gapps_GroupQuery@I AZend_Gdata_Gapps_GroupFeed@ H CZend_Gdata_Gapps_GroupEntry@%G MZend_Gdata_Gapps_Extension_Quota@(F SZend_Gdata_Gapps_Extension_Property@(E SZend_Gdata_Gapps_Extension_Nickname@$D KZend_Gdata_Gapps_Extension_Name@%C MZend_Gdata_Gapps_Extension_Login@)B UZend_Gdata_Gapps_Extension_EmailList@A 9Zend_Gdata_Gapps_Error@-@ ]Zend_Gdata_Gapps_EmailListRecipientQuery@,? [Zend_Gdata_Gapps_EmailListRecipientFeed@-> ]Zend_Gdata_Gapps_EmailListRecipientEntry@$= KZend_Gdata_Gapps_EmailListQuery@#< IZend_Gdata_Gapps_EmailListFeed@$; KZend_Gdata_Gapps_EmailListEntry@: +Zend_Gdata_Feed@9 5Zend_Gdata_Extension@8 =Zend_Gdata_Extension_Who@7 AZend_Gdata_Extension_Where@6 ?Zend_Gdata_Extension_When@$5 KZend_Gdata_Extension_Visibility@&4 OZend_Gdata_Extension_Transparency@"3 GZend_Gdata_Extension_Reminder@-2 ]Zend_Gdata_Extension_RecurrenceException@$1 KZend_Gdata_Extension_Recurrence@ 0 CZend_Gdata_Extension_Rating@'/ QZend_Gdata_Extension_OriginalEvent@0. cZend_Gdata_Extension_OpenSearchTotalResults@.- _Zend_Gdata_Extension_OpenSearchStartIndex@0, cZend_Gdata_Extension_OpenSearchItemsPerPage@"+ GZend_Gdata_Extension_FeedLink@** WZend_Gdata_Extension_ExtendedProperty@%) MZend_Gdata_Extension_EventStatus@#( IZend_Gdata_Extension_EntryLink@"' GZend_Gdata_Extension_Comments@&& OZend_Gdata_Extension_AttendeeType@(% SZend_Gdata_Extension_AttendeeStatus@$ +Zend_Gdata_Exif@# 5Zend_Gdata_Exif_Feed@#" IZend_Gdata_Exif_Extension_Time@#! IZend_Gdata_Exif_Extension_Tags@$  KZend_Gdata_Exif_Extension_Model@# IZend_Gdata_Exif_Extension_Make@" GZend_Gdata_Exif_Extension_Iso@, [Zend_Gdata_Exif_Extension_ImageUniqueId@$ KZend_Gdata_Exif_Extension_FStop@* WZend_Gdata_Exif_Extension_FocalLength@$ KZend_Gdata_Exif_Extension_Flash@' QZend_Gdata_Exif_Extension_Exposure@' QZend_Gdata_Exif_Extension_Distance@ 7Zend_Gdata_Exif_Entry@ -Zend_Gdata_Entry@ 7Zend_Gdata_DublinCore@* WZend_Gdata_DublinCore_Extension_Title@, [Zend_Gdata_DublinCore_Extension_Subject@   [  o;QrY6c8U



j
A
				V	%rDuQ,	kA^-}LvN&Z/uG   )R UZend_Gdata_YouTube_Extension_Hobbies@(Q SZend_Gdata_YouTube_Extension_Gender@+P YZend_Gdata_YouTube_Extension_FirstName@*O WZend_Gdata_YouTube_Extension_Duration@-N ]Zend_Gdata_YouTube_Extension_Description@+M YZend_Gdata_YouTube_Extension_CountHint@)L UZend_Gdata_YouTube_Extension_Control@)K UZend_Gdata_YouTube_Extension_Company@'J QZend_Gdata_YouTube_Extension_Books@%I MZend_Gdata_YouTube_Extension_Age@)H UZend_Gdata_YouTube_Extension_AboutMe@#G IZend_Gdata_YouTube_ContactFeed@$F KZend_Gdata_YouTube_ContactEntry@#E IZend_Gdata_YouTube_CommentFeed@$D KZend_Gdata_YouTube_CommentEntry@$C KZend_Gdata_YouTube_ActivityFeed@%B MZend_Gdata_YouTube_ActivityEntry@A ;Zend_Gdata_Spreadsheets@*@ WZend_Gdata_Spreadsheets_WorksheetFeed@+? YZend_Gdata_Spreadsheets_WorksheetEntry@,> [Zend_Gdata_Spreadsheets_SpreadsheetFeed@-= ]Zend_Gdata_Spreadsheets_SpreadsheetEntry@&< OZend_Gdata_Spreadsheets_ListQuery@%; MZend_Gdata_Spreadsheets_ListFeed@&: OZend_Gdata_Spreadsheets_ListEntry@/9 aZend_Gdata_Spreadsheets_Extension_RowCount@-8 ]Zend_Gdata_Spreadsheets_Extension_Custom@/7 aZend_Gdata_Spreadsheets_Extension_ColCount@+6 YZend_Gdata_Spreadsheets_Extension_Cell@*5 WZend_Gdata_Spreadsheets_DocumentQuery@&4 OZend_Gdata_Spreadsheets_CellQuery@%3 MZend_Gdata_Spreadsheets_CellFeed@&2 OZend_Gdata_Spreadsheets_CellEntry@1 -Zend_Gdata_Query@0 /Zend_Gdata_Photos@ / CZend_Gdata_Photos_UserQuery@. AZend_Gdata_Photos_UserFeed@ - CZend_Gdata_Photos_UserEntry@, AZend_Gdata_Photos_TagEntry@!+ EZend_Gdata_Photos_PhotoQuery@ * CZend_Gdata_Photos_PhotoFeed@!) EZend_Gdata_Photos_PhotoEntry@&( OZend_Gdata_Photos_Extension_Width@'' QZend_Gdata_Photos_Extension_Weight@(& SZend_Gdata_Photos_Extension_Version@%% MZend_Gdata_Photos_Extension_User@*$ WZend_Gdata_Photos_Extension_Timestamp@*# WZend_Gdata_Photos_Extension_Thumbnail@%" MZend_Gdata_Photos_Extension_Size@)! UZend_Gdata_Photos_Extension_Rotation@+  YZend_Gdata_Photos_Extension_QuotaLimit@- ]Zend_Gdata_Photos_Extension_QuotaCurrent@) UZend_Gdata_Photos_Extension_Position@( SZend_Gdata_Photos_Extension_PhotoId@3 iZend_Gdata_Photos_Extension_NumPhotosRemaining@* WZend_Gdata_Photos_Extension_NumPhotos@) UZend_Gdata_Photos_Extension_Nickname@% MZend_Gdata_Photos_Extension_Name@2 gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum@) UZend_Gdata_Photos_Extension_Location@# IZend_Gdata_Photos_Extension_Id@' QZend_Gdata_Photos_Extension_Height@2 gZend_Gdata_Photos_Extension_CommentingEnabled@- ]Zend_Gdata_Photos_Extension_CommentCount@' QZend_Gdata_Photos_Extension_Client@) UZend_Gdata_Photos_Extension_Checksum@* WZend_Gdata_Photos_Extension_BytesUsed@( SZend_Gdata_Photos_Extension_AlbumId@' QZend_Gdata_Photos_Extension_Access@# IZend_Gdata_Photos_CommentEntry@! EZend_Gdata_Photos_AlbumQuery@  CZend_Gdata_Photos_AlbumFeed@!
 EZend_Gdata_Photos_AlbumEntry@	 3Zend_Gdata_MimeFile@ ?Zend_Gdata_MimeBodyString@ AZend_Gdata_MediaMimeStream@ -Zend_Gdata_Media@ 7Zend_Gdata_Media_Feed@* WZend_Gdata_Media_Extension_MediaTitle@. _Zend_Gdata_Media_Extension_MediaThumbnail@) UZend_Gdata_Media_Extension_MediaText@0 cZend_Gdata_Media_Extension_MediaRestriction@+  YZend_Gdata_Media_Extension_MediaRating@+ YZend_Gdata_Media_Extension_MediaPlayer@-~ ]Zend_Gdata_Media_Extension_MediaKeywords@)} UZend_Gdata_Media_Extension_MediaHash@*| WZend_Gdata_Media_Extension_MediaGroup@0{ cZend_Gdata_Media_Extension_MediaDescription@+z YZend_Gdata_Media_Extension_MediaCredit@.y _Zend_Gdata_Media_Extension_MediaCopyright@,x [Zend_Gdata_Media_Extension_MediaContent@   ^  zL\1qC[*wL



x
R
%				q	E	zT)x_C'{W3{Ek=|V.p7{R.                        -0 ]Zend_InfoCard_Xml_EncryptedData_Abstract@/ ?Zend_InfoCard_Xml_Element@ . CZend_InfoCard_Xml_Assertion@%- MZend_InfoCard_Xml_Assertion_Saml@, ;Zend_InfoCard_Exception@%+ MZend_InfoCard_Exception_Abstract@* 5Zend_InfoCard_Claims@) 5Zend_InfoCard_Cipher@5( mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc@5' mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc@4& kZend_InfoCard_Cipher_Symmetric_Adapter_Abstract@)% UZend_InfoCard_Cipher_Pki_Adapter_Rsa@.$ _Zend_InfoCard_Cipher_Pki_Adapter_Abstract@## IZend_InfoCard_Cipher_Exception@$" KZend_InfoCard_Adapter_Exception@"! GZend_InfoCard_Adapter_Default@  3Zend_Http_UserAgent@" GZend_Http_UserAgent_Validator@ =Zend_Http_UserAgent_Text@( SZend_Http_UserAgent_Storage_Session@. _Zend_Http_UserAgent_Storage_NonPersistent@* WZend_Http_UserAgent_Storage_Exception@ =Zend_Http_UserAgent_Spam@ ?Zend_Http_UserAgent_Probe@  CZend_Http_UserAgent_Offline@ AZend_Http_UserAgent_Mobile@ =Zend_Http_UserAgent_Feed@+ YZend_Http_UserAgent_Features_Exception@2 gZend_Http_UserAgent_Features_Adapter_WurflApi@3 iZend_Http_UserAgent_Features_Adapter_TeraWurfl@5 mZend_Http_UserAgent_Features_Adapter_DeviceAtlas@" GZend_Http_UserAgent_Exception@ ?Zend_Http_UserAgent_Email@  CZend_Http_UserAgent_Desktop@  CZend_Http_UserAgent_Console@  CZend_Http_UserAgent_Checker@ ;Zend_Http_UserAgent_Bot@' QZend_Http_UserAgent_AbstractDevice@
 1Zend_Http_Response@	 ?Zend_Http_Response_Stream@ 3Zend_Http_Exception@ 3Zend_Http_CookieJar@ -Zend_Http_Cookie@ -Zend_Http_Client@ AZend_Http_Client_Exception@" GZend_Http_Client_Adapter_Test@$ KZend_Http_Client_Adapter_Socket@# IZend_Http_Client_Adapter_Proxy@'  QZend_Http_Client_Adapter_Exception@" GZend_Http_Client_Adapter_Curl@~ !Zend_Gdata@} 1Zend_Gdata_YouTube@"| GZend_Gdata_YouTube_VideoQuery@!{ EZend_Gdata_YouTube_VideoFeed@"z GZend_Gdata_YouTube_VideoEntry@(y SZend_Gdata_YouTube_UserProfileEntry@(x SZend_Gdata_YouTube_SubscriptionFeed@)w UZend_Gdata_YouTube_SubscriptionEntry@)v UZend_Gdata_YouTube_PlaylistVideoFeed@*u WZend_Gdata_YouTube_PlaylistVideoEntry@(t SZend_Gdata_YouTube_PlaylistListFeed@)s UZend_Gdata_YouTube_PlaylistListEntry@"r GZend_Gdata_YouTube_MediaEntry@!q EZend_Gdata_YouTube_InboxFeed@"p GZend_Gdata_YouTube_InboxEntry@)o UZend_Gdata_YouTube_Extension_VideoId@*n WZend_Gdata_YouTube_Extension_Username@*m WZend_Gdata_YouTube_Extension_Uploaded@'l QZend_Gdata_YouTube_Extension_Token@(k SZend_Gdata_YouTube_Extension_Status@,j [Zend_Gdata_YouTube_Extension_Statistics@'i QZend_Gdata_YouTube_Extension_State@(h SZend_Gdata_YouTube_Extension_School@-g ]Zend_Gdata_YouTube_Extension_ReleaseDate@.f _Zend_Gdata_YouTube_Extension_Relationship@*e WZend_Gdata_YouTube_Extension_Recorded@&d OZend_Gdata_YouTube_Extension_Racy@-c ]Zend_Gdata_YouTube_Extension_QueryString@)b UZend_Gdata_YouTube_Extension_Private@*a WZend_Gdata_YouTube_Extension_Position@/` aZend_Gdata_YouTube_Extension_PlaylistTitle@,_ [Zend_Gdata_YouTube_Extension_PlaylistId@,^ [Zend_Gdata_YouTube_Extension_Occupation@)] UZend_Gdata_YouTube_Extension_NoEmbed@'\ QZend_Gdata_YouTube_Extension_Music@([ SZend_Gdata_YouTube_Extension_Movies@-Z ]Zend_Gdata_YouTube_Extension_MediaRating@,Y [Zend_Gdata_YouTube_Extension_MediaGroup@-X ]Zend_Gdata_YouTube_Extension_MediaCredit@.W _Zend_Gdata_YouTube_Extension_MediaContent@*V WZend_Gdata_YouTube_Extension_Location@&U OZend_Gdata_YouTube_Extension_Link@*T WZend_Gdata_YouTube_Extension_LastName@*S WZend_Gdata_YouTube_Extension_Hometown@   p ^3	P`J0\;Q$




e
I
4
					w	Z	>		|M#r=hQ?zU<wV6oT4{jN/yY,                         '  QZend_Mail_Protocol_Smtp_Auth_Login@) UZend_Mail_Protocol_Smtp_Auth_Crammd5@ ;Zend_Mail_Protocol_Pop3@ ;Zend_Mail_Protocol_Imap@! EZend_Mail_Protocol_Exception@  CZend_Mail_Protocol_Abstract@ )Zend_Mail_Part@ 3Zend_Mail_Part_File@ /Zend_Mail_Message@ 9Zend_Mail_Message_File@ 3Zend_Mail_Exception@ Zend_Log@  CZend_Log_Writer_ZendMonitor@ 9Zend_Log_Writer_Syslog@ 9Zend_Log_Writer_Stream@ 5Zend_Log_Writer_Null@ 5Zend_Log_Writer_Mock@ 5Zend_Log_Writer_Mail@ ;Zend_Log_Writer_Firebug@ 1Zend_Log_Writer_Db@ =Zend_Log_Writer_Abstract@ 9Zend_Log_Formatter_Xml@
 ?Zend_Log_Formatter_Simple@	 AZend_Log_Formatter_Firebug@ =Zend_Log_Filter_Suppress@ =Zend_Log_Filter_Priority@ ;Zend_Log_Filter_Message@ =Zend_Log_Filter_Abstract@ 1Zend_Log_Exception@ #Zend_Locale@ -Zend_Locale_Math@ =Zend_Locale_Math_PhpMath@  AZend_Locale_Math_Exception@ 1Zend_Locale_Format@~ 7Zend_Locale_Exception@} -Zend_Locale_Data@!| EZend_Locale_Data_Translation@{ #Zend_Loader@z =Zend_Loader_PluginLoader@'y QZend_Loader_PluginLoader_Exception@x 7Zend_Loader_Exception@w 9Zend_Loader_Autoloader@$v KZend_Loader_Autoloader_Resource@u Zend_Ldap@t )Zend_Ldap_Node@s 7Zend_Ldap_Node_Schema@#r IZend_Ldap_Node_Schema_OpenLdap@/q aZend_Ldap_Node_Schema_ObjectClass_OpenLdap@6p oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectory@o AZend_Ldap_Node_Schema_Item@1n eZend_Ldap_Node_Schema_AttributeType_OpenLdap@8m sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory@*l WZend_Ldap_Node_Schema_ActiveDirectory@k 9Zend_Ldap_Node_RootDse@$j KZend_Ldap_Node_RootDse_OpenLdap@&i OZend_Ldap_Node_RootDse_eDirectory@+h YZend_Ldap_Node_RootDse_ActiveDirectory@g ?Zend_Ldap_Node_Collection@$f KZend_Ldap_Node_ChildrenIterator@e ;Zend_Ldap_Node_Abstract@d 9Zend_Ldap_Ldif_Encoder@c -Zend_Ldap_Filter@b ;Zend_Ldap_Filter_String@a 3Zend_Ldap_Filter_Or@` 5Zend_Ldap_Filter_Not@_ 7Zend_Ldap_Filter_Mask@^ =Zend_Ldap_Filter_Logical@] AZend_Ldap_Filter_Exception@\ 5Zend_Ldap_Filter_And@[ ?Zend_Ldap_Filter_Abstract@Z 3Zend_Ldap_Exception@Y %Zend_Ldap_Dn@X 3Zend_Ldap_Converter@"W GZend_Ldap_Converter_Exception@V 5Zend_Ldap_Collection@*U WZend_Ldap_Collection_Iterator_Default@T 3Zend_Ldap_Attribute@S #Zend_Layout@R 7Zend_Layout_Exception@)Q UZend_Layout_Controller_Plugin_Layout@0P cZend_Layout_Controller_Action_Helper_Layout@O Zend_Json@N -Zend_Json_Server@M 5Zend_Json_Server_Smd@!L EZend_Json_Server_Smd_Service@K ?Zend_Json_Server_Response@#J IZend_Json_Server_Response_Http@I =Zend_Json_Server_Request@"H GZend_Json_Server_Request_Http@G AZend_Json_Server_Exception@F 9Zend_Json_Server_Error@E 9Zend_Json_Server_Cache@D )Zend_Json_Expr@C 3Zend_Json_Exception@B /Zend_Json_Encoder@A /Zend_Json_Decoder@@ 'Zend_InfoCard@-? ]Zend_InfoCard_Xml_SecurityTokenReference@> AZend_InfoCard_Xml_Security@)= UZend_InfoCard_Xml_Security_Transform@4< kZend_InfoCard_Xml_Security_Transform_XmlExcC14N@3; iZend_InfoCard_Xml_Security_Transform_Exception@<: {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignature@)9 UZend_InfoCard_Xml_Security_Exception@8 ?Zend_InfoCard_Xml_KeyInfo@&7 OZend_InfoCard_Xml_KeyInfo_XmlDSig@&6 OZend_InfoCard_Xml_KeyInfo_Default@'5 QZend_InfoCard_Xml_KeyInfo_Abstract@ 4 CZend_InfoCard_Xml_Exception@#3 IZend_InfoCard_Xml_EncryptedKey@$2 KZend_InfoCard_Xml_EncryptedData@+1 YZend_InfoCard_Xml_EncryptedData_XmlEnc@   v nET:vX6qK$vbD"




h
K
.
					y	Z	8	lR6d> iR@kQ5mK$hO<qG"X+               $ KZend_Paginator_Adapter_Iterator@) UZend_Paginator_Adapter_DbTableSelect@$ KZend_Paginator_Adapter_DbSelect@! EZend_Paginator_Adapter_Array@ #Zend_OpenId@ 5Zend_OpenId_Provider@ ?Zend_OpenId_Provider_User@& OZend_OpenId_Provider_User_Session@! EZend_OpenId_Provider_Storage@& OZend_OpenId_Provider_Storage_File@ 7Zend_OpenId_Extension@ AZend_OpenId_Extension_Sreg@
 7Zend_OpenId_Exception@	 5Zend_OpenId_Consumer@! EZend_OpenId_Consumer_Storage@& OZend_OpenId_Consumer_Storage_File@ !Zend_Oauth@ -Zend_Oauth_Token@ =Zend_Oauth_Token_Request@' QZend_Oauth_Token_AuthorizedRequest@ ;Zend_Oauth_Token_Access@+ YZend_Oauth_Signature_SignatureAbstract@  =Zend_Oauth_Signature_Rsa@# IZend_Oauth_Signature_Plaintext@~ ?Zend_Oauth_Signature_Hmac@} +Zend_Oauth_Http@| ;Zend_Oauth_Http_Utility@&{ OZend_Oauth_Http_UserAuthorization@!z EZend_Oauth_Http_RequestToken@ y CZend_Oauth_Http_AccessToken@x 5Zend_Oauth_Exception@w 3Zend_Oauth_Consumer@v /Zend_Oauth_Config@u /Zend_Oauth_Client@t +Zend_Navigation@s 5Zend_Navigation_Page@r =Zend_Navigation_Page_Uri@q =Zend_Navigation_Page_Mvc@p ?Zend_Navigation_Exception@o ?Zend_Navigation_Container@n Zend_Mime@m )Zend_Mime_Part@l /Zend_Mime_Message@k 3Zend_Mime_Exception@j -Zend_Mime_Decode@i #Zend_Memory@h /Zend_Memory_Value@g 3Zend_Memory_Manager@f 7Zend_Memory_Exception@e 7Zend_Memory_Container@"d GZend_Memory_Container_Movable@!c EZend_Memory_Container_Locked@!b EZend_Memory_AccessController@a 3Zend_Measure_Weight@` 3Zend_Measure_Volume@%_ MZend_Measure_Viscosity_Kinematic@#^ IZend_Measure_Viscosity_Dynamic@] 3Zend_Measure_Torque@\ /Zend_Measure_Time@[ =Zend_Measure_Temperature@Z 1Zend_Measure_Speed@Y 7Zend_Measure_Pressure@X 1Zend_Measure_Power@W 3Zend_Measure_Number@V 9Zend_Measure_Lightness@U 3Zend_Measure_Length@T ?Zend_Measure_Illumination@S 9Zend_Measure_Frequency@R 1Zend_Measure_Force@Q =Zend_Measure_Flow_Volume@P 9Zend_Measure_Flow_Mole@O 9Zend_Measure_Flow_Mass@N 9Zend_Measure_Exception@M 3Zend_Measure_Energy@L 5Zend_Measure_Density@K 5Zend_Measure_Current@ J CZend_Measure_Cooking_Weight@ I CZend_Measure_Cooking_Volume@H =Zend_Measure_Capacitance@G 3Zend_Measure_Binary@F /Zend_Measure_Area@E 1Zend_Measure_Angle@D ?Zend_Measure_Acceleration@C 7Zend_Measure_Abstract@B #Zend_Markup@A 7Zend_Markup_TokenList@@ /Zend_Markup_Token@*? WZend_Markup_Renderer_RendererAbstract@> ?Zend_Markup_Renderer_Html@"= GZend_Markup_Renderer_Html_Url@#< IZend_Markup_Renderer_Html_List@"; GZend_Markup_Renderer_Html_Img@+: YZend_Markup_Renderer_Html_HtmlAbstract@#9 IZend_Markup_Renderer_Html_Code@#8 IZend_Markup_Renderer_Exception@7 AZend_Markup_Parser_Textile@!6 EZend_Markup_Parser_Exception@5 ?Zend_Markup_Parser_Bbcode@4 7Zend_Markup_Exception@3 Zend_Mail@2 =Zend_Mail_Transport_Smtp@!1 EZend_Mail_Transport_Sendmail@0 =Zend_Mail_Transport_File@"/ GZend_Mail_Transport_Exception@!. EZend_Mail_Transport_Abstract@- /Zend_Mail_Storage@', QZend_Mail_Storage_Writable_Maildir@+ 9Zend_Mail_Storage_Pop3@* 9Zend_Mail_Storage_Mbox@) ?Zend_Mail_Storage_Maildir@( 9Zend_Mail_Storage_Imap@' =Zend_Mail_Storage_Folder@"& GZend_Mail_Storage_Folder_Mbox@%% MZend_Mail_Storage_Folder_Maildir@ $ CZend_Mail_Storage_Exception@# AZend_Mail_Storage_Abstract@" ;Zend_Mail_Protocol_Smtp@'! QZend_Mail_Protocol_Smtp_Auth_Plain@   l c5aC&cAcK ~f<




~
b
G
0

				O	"cF'^>`G!hB fEfE%[+wJ                                                   3 iZend_Pdf_Resource_Font_Simple_Standard_Courier@) UZend_Pdf_Resource_Font_Simple_Parsed@2  gZend_Pdf_Resource_Font_Simple_Parsed_TrueType@* WZend_Pdf_Resource_Font_FontDescriptor@%~ MZend_Pdf_Resource_Font_Extracted@#} IZend_Pdf_Resource_Font_CidFont@,| [Zend_Pdf_Resource_Font_CidFont_TrueType@ { CZend_Pdf_Resource_Extractor@$z KZend_Pdf_Resource_ContentStream@3y iZend_Pdf_RecursivelyIteratableObjectsContainer@x +Zend_Pdf_Parser@w 'Zend_Pdf_Page@v -Zend_Pdf_Outline@u ;Zend_Pdf_Outline_Loaded@t =Zend_Pdf_Outline_Created@s /Zend_Pdf_NameTree@r )Zend_Pdf_Image@q 'Zend_Pdf_Font@p ?Zend_Pdf_Filter_RunLength@ o CZend_Pdf_Filter_Compression@$n KZend_Pdf_Filter_Compression_Lzw@&m OZend_Pdf_Filter_Compression_Flate@l =Zend_Pdf_Filter_AsciiHex@k ;Zend_Pdf_Filter_Ascii85@"j GZend_Pdf_FileParserDataSource@)i UZend_Pdf_FileParserDataSource_String@'h QZend_Pdf_FileParserDataSource_File@g 3Zend_Pdf_FileParser@f ?Zend_Pdf_FileParser_Image@"e GZend_Pdf_FileParser_Image_Png@d =Zend_Pdf_FileParser_Font@&c OZend_Pdf_FileParser_Font_OpenType@/b aZend_Pdf_FileParser_Font_OpenType_TrueType@a 1Zend_Pdf_Exception@` ;Zend_Pdf_ElementFactory@"_ GZend_Pdf_ElementFactory_Proxy@^ -Zend_Pdf_Element@] ;Zend_Pdf_Element_String@#\ IZend_Pdf_Element_String_Binary@[ ;Zend_Pdf_Element_Stream@Z AZend_Pdf_Element_Reference@%Y MZend_Pdf_Element_Reference_Table@'X QZend_Pdf_Element_Reference_Context@W ;Zend_Pdf_Element_Object@#V IZend_Pdf_Element_Object_Stream@U =Zend_Pdf_Element_Numeric@T 7Zend_Pdf_Element_Null@S 7Zend_Pdf_Element_Name@ R CZend_Pdf_Element_Dictionary@Q =Zend_Pdf_Element_Boolean@P 9Zend_Pdf_Element_Array@O 5Zend_Pdf_Destination@N ?Zend_Pdf_Destination_Zoom@!M EZend_Pdf_Destination_Unknown@L AZend_Pdf_Destination_Named@'K QZend_Pdf_Destination_FitVertically@&J OZend_Pdf_Destination_FitRectangle@)I UZend_Pdf_Destination_FitHorizontally@2H gZend_Pdf_Destination_FitBoundingBoxVertically@4G kZend_Pdf_Destination_FitBoundingBoxHorizontally@(F SZend_Pdf_Destination_FitBoundingBox@E =Zend_Pdf_Destination_Fit@"D GZend_Pdf_Destination_Explicit@C )Zend_Pdf_Color@B 1Zend_Pdf_Color_Rgb@A 3Zend_Pdf_Color_Html@@ =Zend_Pdf_Color_GrayScale@? 3Zend_Pdf_Color_Cmyk@> 'Zend_Pdf_Cmap@= AZend_Pdf_Cmap_TrimmedTable@!< EZend_Pdf_Cmap_SegmentToDelta@; AZend_Pdf_Cmap_ByteEncoding@&: OZend_Pdf_Cmap_ByteEncoding_Static@9 +Zend_Pdf_Canvas@8 =Zend_Pdf_Canvas_Abstract@7 3Zend_Pdf_Annotation@6 =Zend_Pdf_Annotation_Text@5 AZend_Pdf_Annotation_Markup@4 =Zend_Pdf_Annotation_Link@'3 QZend_Pdf_Annotation_FileAttachment@2 +Zend_Pdf_Action@1 3Zend_Pdf_Action_URI@0 ;Zend_Pdf_Action_Unknown@/ 7Zend_Pdf_Action_Trans@. 9Zend_Pdf_Action_Thread@- AZend_Pdf_Action_SubmitForm@, 7Zend_Pdf_Action_Sound@ + CZend_Pdf_Action_SetOCGState@* ?Zend_Pdf_Action_ResetForm@) ?Zend_Pdf_Action_Rendition@( 7Zend_Pdf_Action_Named@' 7Zend_Pdf_Action_Movie@& 9Zend_Pdf_Action_Launch@% AZend_Pdf_Action_JavaScript@$ AZend_Pdf_Action_ImportData@# 5Zend_Pdf_Action_Hide@" 7Zend_Pdf_Action_GoToR@! 7Zend_Pdf_Action_GoToE@  AZend_Pdf_Action_GoTo3DView@ 5Zend_Pdf_Action_GoTo@ )Zend_Paginator@- ]Zend_Paginator_SerializableLimitIterator@* WZend_Paginator_ScrollingStyle_Sliding@* WZend_Paginator_ScrollingStyle_Jumping@* WZend_Paginator_ScrollingStyle_Elastic@& OZend_Paginator_ScrollingStyle_All@ =Zend_Paginator_Exception@  CZend_Paginator_Adapter_Null@   ^  EJa'qR*uS9




k
Z
1
				r	Y	5	
\<bB#vU3q[8aH*ZNM                 7` qZend_Search_Lucene_Analysis_TokenFilter_ShortWords@:_ wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8@6^ oZend_Search_Lucene_Analysis_TokenFilter_LowerCase@&] OZend_Search_Lucene_Analysis_Token@)\ UZend_Search_Lucene_Analysis_Analyzer@0[ cZend_Search_Lucene_Analysis_Analyzer_Common@8Z sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num@IY Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive@5X mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8@FW Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive@8V sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum@IU Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive@5T mZend_Search_Lucene_Analysis_Analyzer_Common_Text@FS Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive@R 7Zend_Search_Exception@Q -Zend_Rest_Server@P AZend_Rest_Server_Exception@O +Zend_Rest_Route@N 3Zend_Rest_Exception@M 5Zend_Rest_Controller@L -Zend_Rest_Client@K ;Zend_Rest_Client_Result@&J OZend_Rest_Client_Result_Exception@I AZend_Rest_Client_Exception@H 'Zend_Registry@G =Zend_Reflection_Property@F ?Zend_Reflection_Parameter@E 9Zend_Reflection_Method@D =Zend_Reflection_Function@C 5Zend_Reflection_File@B ?Zend_Reflection_Extension@A ?Zend_Reflection_Exception@@ =Zend_Reflection_Docblock@!? EZend_Reflection_Docblock_Tag@(> SZend_Reflection_Docblock_Tag_Return@'= QZend_Reflection_Docblock_Tag_Param@< 7Zend_Reflection_Class@; !Zend_Queue@: 9Zend_Queue_Stomp_Frame@9 ;Zend_Queue_Stomp_Client@'8 QZend_Queue_Stomp_Client_Connection@7 1Zend_Queue_Message@#6 IZend_Queue_Message_PlatformJob@ 5 CZend_Queue_Message_Iterator@4 5Zend_Queue_Exception@(3 SZend_Queue_Adapter_PlatformJobQueue@2 ;Zend_Queue_Adapter_Null@!1 EZend_Queue_Adapter_Memcacheq@0 7Zend_Queue_Adapter_Db@ / CZend_Queue_Adapter_Db_Queue@". GZend_Queue_Adapter_Db_Message@- =Zend_Queue_Adapter_Array@', QZend_Queue_Adapter_AdapterAbstract@ + CZend_Queue_Adapter_Activemq@* -Zend_ProgressBar@) AZend_ProgressBar_Exception@( =Zend_ProgressBar_Adapter@$' KZend_ProgressBar_Adapter_JsPush@$& KZend_ProgressBar_Adapter_JsPull@'% QZend_ProgressBar_Adapter_Exception@%$ MZend_ProgressBar_Adapter_Console@# Zend_Pdf@!" EZend_Pdf_UpdateInfoContainer@! -Zend_Pdf_Trailer@  ;Zend_Pdf_Trailer_Keeper@ AZend_Pdf_Trailer_Generator@ +Zend_Pdf_Target@ )Zend_Pdf_Style@ 7Zend_Pdf_StringParser@ /Zend_Pdf_Resource@ ?Zend_Pdf_Resource_Unified@# IZend_Pdf_Resource_ImageFactory@ ;Zend_Pdf_Resource_Image@! EZend_Pdf_Resource_Image_Tiff@  CZend_Pdf_Resource_Image_Png@! EZend_Pdf_Resource_Image_Jpeg@$ KZend_Pdf_Resource_GraphicsState@ 9Zend_Pdf_Resource_Font@! EZend_Pdf_Resource_Font_Type0@" GZend_Pdf_Resource_Font_Simple@+ YZend_Pdf_Resource_Font_Simple_Standard@8 sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats@6 oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman@7 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic@; yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic@5 mZend_Pdf_Resource_Font_Simple_Standard_TimesBold@2
 gZend_Pdf_Resource_Font_Simple_Standard_Symbol@<	 {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaOblique@A Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique@9 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold@5 mZend_Pdf_Resource_Font_Simple_Standard_Helvetica@: wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique@> Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique@7 qZend_Pdf_Resource_Font_Simple_Standard_CourierBold@   W  m?tO.a4\6V-


h
:
			u	9]0m;S\-s;P5mEoU6                          "7 GZend_Server_Method_Definition@ 6 CZend_Server_Method_Callback@5 7Zend_Server_Exception@4 9Zend_Server_Definition@3 /Zend_Server_Cache@2 5Zend_Server_Abstract@1 +Zend_Serializer@0 ?Zend_Serializer_Exception@!/ EZend_Serializer_Adapter_Wddx@). UZend_Serializer_Adapter_PythonPickle@)- UZend_Serializer_Adapter_PhpSerialize@$, KZend_Serializer_Adapter_PhpCode@!+ EZend_Serializer_Adapter_Json@%* MZend_Serializer_Adapter_Igbinary@!) EZend_Serializer_Adapter_Amf3@!( EZend_Serializer_Adapter_Amf0@,' [Zend_Serializer_Adapter_AdapterAbstract@& 1Zend_Search_Lucene@0% cZend_Search_Lucene_TermStreamsPriorityQueue@$$ KZend_Search_Lucene_Storage_File@+# YZend_Search_Lucene_Storage_File_Memory@/" aZend_Search_Lucene_Storage_File_Filesystem@)! UZend_Search_Lucene_Storage_Directory@4  kZend_Search_Lucene_Storage_Directory_Filesystem@% MZend_Search_Lucene_Search_Weight@* WZend_Search_Lucene_Search_Weight_Term@, [Zend_Search_Lucene_Search_Weight_Phrase@/ aZend_Search_Lucene_Search_Weight_MultiTerm@+ YZend_Search_Lucene_Search_Weight_Empty@- ]Zend_Search_Lucene_Search_Weight_Boolean@) UZend_Search_Lucene_Search_Similarity@1 eZend_Search_Lucene_Search_Similarity_Default@) UZend_Search_Lucene_Search_QueryToken@3 iZend_Search_Lucene_Search_QueryParserException@1 eZend_Search_Lucene_Search_QueryParserContext@* WZend_Search_Lucene_Search_QueryParser@) UZend_Search_Lucene_Search_QueryLexer@' QZend_Search_Lucene_Search_QueryHit@) UZend_Search_Lucene_Search_QueryEntry@. _Zend_Search_Lucene_Search_QueryEntry_Term@2 gZend_Search_Lucene_Search_QueryEntry_Subquery@0 cZend_Search_Lucene_Search_QueryEntry_Phrase@$ KZend_Search_Lucene_Search_Query@- ]Zend_Search_Lucene_Search_Query_Wildcard@) UZend_Search_Lucene_Search_Query_Term@*
 WZend_Search_Lucene_Search_Query_Range@2	 gZend_Search_Lucene_Search_Query_Preprocessing@7 qZend_Search_Lucene_Search_Query_Preprocessing_Term@9 uZend_Search_Lucene_Search_Query_Preprocessing_Phrase@8 sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy@+ YZend_Search_Lucene_Search_Query_Phrase@. _Zend_Search_Lucene_Search_Query_MultiTerm@2 gZend_Search_Lucene_Search_Query_Insignificant@* WZend_Search_Lucene_Search_Query_Fuzzy@* WZend_Search_Lucene_Search_Query_Empty@,  [Zend_Search_Lucene_Search_Query_Boolean@2 gZend_Search_Lucene_Search_Highlighter_Default@:~ wZend_Search_Lucene_Search_BooleanExpressionRecognizer@} =Zend_Search_Lucene_Proxy@%| MZend_Search_Lucene_PriorityQueue@/{ aZend_Search_Lucene_Interface_MultiSearcher@#z IZend_Search_Lucene_LockManager@$y KZend_Search_Lucene_Index_Writer@0x cZend_Search_Lucene_Index_TermsPriorityQueue@&w OZend_Search_Lucene_Index_TermInfo@"v GZend_Search_Lucene_Index_Term@+u YZend_Search_Lucene_Index_SegmentWriter@8t sZend_Search_Lucene_Index_SegmentWriter_StreamWriter@:s wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter@+r YZend_Search_Lucene_Index_SegmentMerger@)q UZend_Search_Lucene_Index_SegmentInfo@'p QZend_Search_Lucene_Index_FieldInfo@(o SZend_Search_Lucene_Index_DocsFilter@.n _Zend_Search_Lucene_Index_DictionaryLoader@!m EZend_Search_Lucene_FSMAction@l 9Zend_Search_Lucene_FSM@k =Zend_Search_Lucene_Field@!j EZend_Search_Lucene_Exception@ i CZend_Search_Lucene_Document@%h MZend_Search_Lucene_Document_Xlsx@%g MZend_Search_Lucene_Document_Pptx@(f SZend_Search_Lucene_Document_OpenXml@%e MZend_Search_Lucene_Document_Html@*d WZend_Search_Lucene_Document_Exception@%c MZend_Search_Lucene_Document_Docx@,b [Zend_Search_Lucene_Analysis_TokenFilter@6a oZend_Search_Lucene_Analysis_TokenFilter_StopWords@   V  h7sH)l>c1h6



d
5
					V	4	xY.xS)	|T*V bU{Ac                  L Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalance@J Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool@- ]Zend_Service_DeveloperGarden_LocalSearch@>
 Zend_Service_DeveloperGarden_LocalSearch_SearchParameters@7	 qZend_Service_DeveloperGarden_LocalSearch_Exception@, [Zend_Service_DeveloperGarden_IpLocation@6 oZend_Service_DeveloperGarden_IpLocation_IpAddress@+ YZend_Service_DeveloperGarden_Exception@, [Zend_Service_DeveloperGarden_Credential@0 cZend_Service_DeveloperGarden_ConferenceCall@C Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatus@C Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail@< {Zend_Service_DeveloperGarden_ConferenceCall_Participant@:  wZend_Service_DeveloperGarden_ConferenceCall_Exception@D 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceSchedule@B~ Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail@C} Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount@-| ]Zend_Service_DeveloperGarden_Client_Soap@2{ gZend_Service_DeveloperGarden_Client_Exception@7z qZend_Service_DeveloperGarden_Client_ClientAbstract@1y eZend_Service_DeveloperGarden_BaseUserService@Ax Zend_Service_DeveloperGarden_BaseUserService_AccountBalance@w 9Zend_Service_Delicious@&v OZend_Service_Delicious_SimplePost@$u KZend_Service_Delicious_PostList@ t CZend_Service_Delicious_Post@%s MZend_Service_Delicious_Exception@ r CZend_Service_Audioscrobbler@q 3Zend_Service_Amazon@p ;Zend_Service_Amazon_Sqs@&o OZend_Service_Amazon_Sqs_Exception@!n EZend_Service_Amazon_SimpleDb@*m WZend_Service_Amazon_SimpleDb_Response@&l OZend_Service_Amazon_SimpleDb_Page@+k YZend_Service_Amazon_SimpleDb_Exception@+j YZend_Service_Amazon_SimpleDb_Attribute@'i QZend_Service_Amazon_SimilarProduct@h 9Zend_Service_Amazon_S3@"g GZend_Service_Amazon_S3_Stream@%f MZend_Service_Amazon_S3_Exception@"e GZend_Service_Amazon_ResultSet@d ?Zend_Service_Amazon_Query@!c EZend_Service_Amazon_OfferSet@b ?Zend_Service_Amazon_Offer@&a OZend_Service_Amazon_ListmaniaList@` =Zend_Service_Amazon_Item@_ ?Zend_Service_Amazon_Image@"^ GZend_Service_Amazon_Exception@(] SZend_Service_Amazon_EditorialReview@\ ;Zend_Service_Amazon_Ec2@+[ YZend_Service_Amazon_Ec2_Securitygroups@%Z MZend_Service_Amazon_Ec2_Response@#Y IZend_Service_Amazon_Ec2_Region@$X KZend_Service_Amazon_Ec2_Keypair@%W MZend_Service_Amazon_Ec2_Instance@-V ]Zend_Service_Amazon_Ec2_Instance_Windows@.U _Zend_Service_Amazon_Ec2_Instance_Reserved@"T GZend_Service_Amazon_Ec2_Image@&S OZend_Service_Amazon_Ec2_Exception@&R OZend_Service_Amazon_Ec2_Elasticip@ Q CZend_Service_Amazon_Ec2_Ebs@'P QZend_Service_Amazon_Ec2_CloudWatch@.O _Zend_Service_Amazon_Ec2_Availabilityzones@%N MZend_Service_Amazon_Ec2_Abstract@'M QZend_Service_Amazon_CustomerReview@'L QZend_Service_Amazon_Authentication@*K WZend_Service_Amazon_Authentication_V2@*J WZend_Service_Amazon_Authentication_V1@*I WZend_Service_Amazon_Authentication_S3@1H eZend_Service_Amazon_Authentication_Exception@$G KZend_Service_Amazon_Accessories@!F EZend_Service_Amazon_Abstract@E 5Zend_Service_Akismet@D 7Zend_Service_Abstract@C 9Zend_Server_Reflection@'B QZend_Server_Reflection_ReturnValue@%A MZend_Server_Reflection_Prototype@%@ MZend_Server_Reflection_Parameter@ ? CZend_Server_Reflection_Node@"> GZend_Server_Reflection_Method@$= KZend_Server_Reflection_Function@-< ]Zend_Server_Reflection_Function_Abstract@%; MZend_Server_Reflection_Exception@!: EZend_Server_Reflection_Class@!9 EZend_Server_Method_Prototype@!8 EZend_Server_Method_Parameter@   0 o IB6wr

X
		E[F	s,P}/Hv!  o       W= /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType@S< 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponse@Q; #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstract@S: 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponse@J9 Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType@g8 OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseType@c7 GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponse@W6 /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse@U5 +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponse@S4 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse@33 iZend_Service_DeveloperGarden_Response_BaseType@J2 Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstract@C1 Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCall@G0 Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced@=/ }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCall@A. Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatus@A- Zend_Service_DeveloperGarden_Request_SmsValidation_Validate@N, Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeyword@C+ Zend_Service_DeveloperGarden_Request_SmsValidation_Invalidate@L* Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbers@B) Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract@9( uZend_Service_DeveloperGarden_Request_SendSms_SendSMS@>' Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS@9& uZend_Service_DeveloperGarden_Request_RequestAbstract@I% Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequest@E$ Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest@3# iZend_Service_DeveloperGarden_Request_Exception@R" %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequest@Y! 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequest@d  IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequest@Q #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequest@R %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequest@Y 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequest@d IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequest@Q #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequest@O Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequest@U +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequest@U +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequest@V -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequest@a CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequest@Z 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequest@T )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequest@R %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequest@Y 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequest@Q #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequest@Q #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequest@a CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequest@N Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformation@   . s >0r<%

k
		^	>%n6Wx)JP	i  s               Ik Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumber@Wj /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponse@Ji Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponse@Uh +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponse@Cg Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponse@Cf Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstract@He Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponse@Ud +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponse@Qc #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponse@Ib Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception@;a yZend_Service_DeveloperGarden_Response_ResponseAbstract@O` Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseType@K_ Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponse@A^ Zend_Service_DeveloperGarden_Response_IpLocation_RegionType@K] Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseType@G\ Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponse@L[ Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationType@IZ Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType@>Y Zend_Service_DeveloperGarden_Response_IpLocation_CityType@4X kZend_Service_DeveloperGarden_Response_Exception@TW )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse@[V 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponse@fU MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponse@ST 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponse@TS )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse@[R 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponse@fQ MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponse@SP 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponse@UO +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType@QN #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse@[M 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseType@WL /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse@[K 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseType@WJ /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse@\I 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseType@XH 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponse@gG OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseType@cF GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse@`E AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType@\D 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponse@ZC 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseType@VB -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponse@XA 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseType@T@ )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse@_? ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType@[> 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponse@   U  at$]0\|S


{
J
				`	,_1uFmQ)a:qR"_?sN#^>                     &@ OZend_Service_StrikeIron_Exception@&? OZend_Service_StrikeIron_Decorator@!> EZend_Service_StrikeIron_Base@= ;Zend_Service_SlideShare@&< OZend_Service_SlideShare_SlideShow@&; OZend_Service_SlideShare_Exception@: 1Zend_Service_Simpy@$9 KZend_Service_Simpy_WatchlistSet@*8 WZend_Service_Simpy_WatchlistFilterSet@'7 QZend_Service_Simpy_WatchlistFilter@!6 EZend_Service_Simpy_Watchlist@5 ?Zend_Service_Simpy_TagSet@4 9Zend_Service_Simpy_Tag@3 AZend_Service_Simpy_NoteSet@2 ;Zend_Service_Simpy_Note@1 AZend_Service_Simpy_LinkSet@!0 EZend_Service_Simpy_LinkQuery@/ ;Zend_Service_Simpy_Link@%. MZend_Service_ShortUrl_TinyUrlCom@&- OZend_Service_ShortUrl_MetamarkNet@!, EZend_Service_ShortUrl_JdemCz@+ AZend_Service_ShortUrl_IsGd@$* KZend_Service_ShortUrl_Exception@,) [Zend_Service_ShortUrl_AbstractShortener@( 9Zend_Service_ReCaptcha@$' KZend_Service_ReCaptcha_Response@$& KZend_Service_ReCaptcha_MailHide@.% _Zend_Service_ReCaptcha_MailHide_Exception@%$ MZend_Service_ReCaptcha_Exception@# 7Zend_Service_Nirvanix@#" IZend_Service_Nirvanix_Response@)! UZend_Service_Nirvanix_Namespace_Imfs@)  UZend_Service_Nirvanix_Namespace_Base@$ KZend_Service_Nirvanix_Exception@ 7Zend_Service_LiveDocx@$ KZend_Service_LiveDocx_MailMerge@$ KZend_Service_LiveDocx_Exception@ 3Zend_Service_Flickr@" GZend_Service_Flickr_ResultSet@ AZend_Service_Flickr_Result@ ?Zend_Service_Flickr_Image@ 9Zend_Service_Exception@ ?Zend_Service_Ebay_Finding@) UZend_Service_Ebay_Finding_Storefront@+ YZend_Service_Ebay_Finding_ShippingInfo@+ YZend_Service_Ebay_Finding_Set_Abstract@, [Zend_Service_Ebay_Finding_SellingStatus@) UZend_Service_Ebay_Finding_SellerInfo@, [Zend_Service_Ebay_Finding_Search_Result@* WZend_Service_Ebay_Finding_Search_Item@. _Zend_Service_Ebay_Finding_Search_Item_Set@0 cZend_Service_Ebay_Finding_Response_Keywords@- ]Zend_Service_Ebay_Finding_Response_Items@2 gZend_Service_Ebay_Finding_Response_Histograms@0
 cZend_Service_Ebay_Finding_Response_Abstract@/	 aZend_Service_Ebay_Finding_PaginationOutput@* WZend_Service_Ebay_Finding_ListingInfo@( SZend_Service_Ebay_Finding_Exception@, [Zend_Service_Ebay_Finding_Error_Message@) UZend_Service_Ebay_Finding_Error_Data@- ]Zend_Service_Ebay_Finding_Error_Data_Set@' QZend_Service_Ebay_Finding_Category@1 eZend_Service_Ebay_Finding_Category_Histogram@5 mZend_Service_Ebay_Finding_Category_Histogram_Set@;  yZend_Service_Ebay_Finding_Category_Histogram_Container@% MZend_Service_Ebay_Finding_Aspect@)~ UZend_Service_Ebay_Finding_Aspect_Set@5} mZend_Service_Ebay_Finding_Aspect_Histogram_Value@9| uZend_Service_Ebay_Finding_Aspect_Histogram_Value_Set@9{ uZend_Service_Ebay_Finding_Aspect_Histogram_Container@'z QZend_Service_Ebay_Finding_Abstract@ y CZend_Service_Ebay_Exception@x AZend_Service_Ebay_Abstract@+w YZend_Service_DeveloperGarden_VoiceCall@/v aZend_Service_DeveloperGarden_SmsValidation@)u UZend_Service_DeveloperGarden_SendSms@5t mZend_Service_DeveloperGarden_SecurityTokenServer@;s yZend_Service_DeveloperGarden_SecurityTokenServer_Cache@Kr Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstract@Lq Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponse@Pp !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponse@Go Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponse@Jn Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponse@Km Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2Response@Ll Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponse@   J  mM&h3	\/}O)z8 


G			^	:d-}Eg7[$rB
X(U4                             (
 SZend_Service_Yahoo_InlinkDataResult@&	 OZend_Service_Yahoo_ImageResultSet@# IZend_Service_Yahoo_ImageResult@ =Zend_Service_Yahoo_Image@& OZend_Service_WindowsAzure_Storage@4 kZend_Service_WindowsAzure_Storage_TableInstance@7 qZend_Service_WindowsAzure_Storage_TableEntityQuery@2 gZend_Service_WindowsAzure_Storage_TableEntity@, [Zend_Service_WindowsAzure_Storage_Table@< {Zend_Service_WindowsAzure_Storage_StorageEntityAbstract@7  qZend_Service_WindowsAzure_Storage_SignedIdentifier@3 iZend_Service_WindowsAzure_Storage_QueueMessage@4~ kZend_Service_WindowsAzure_Storage_QueueInstance@,} [Zend_Service_WindowsAzure_Storage_Queue@9| uZend_Service_WindowsAzure_Storage_PageRegionInstance@4{ kZend_Service_WindowsAzure_Storage_LeaseInstance@9z uZend_Service_WindowsAzure_Storage_DynamicTableEntity@3y iZend_Service_WindowsAzure_Storage_BlobInstance@4x kZend_Service_WindowsAzure_Storage_BlobContainer@+w YZend_Service_WindowsAzure_Storage_Blob@2v gZend_Service_WindowsAzure_Storage_Blob_Stream@;u yZend_Service_WindowsAzure_Storage_BatchStorageAbstract@,t [Zend_Service_WindowsAzure_Storage_Batch@-s ]Zend_Service_WindowsAzure_SessionHandler@>r Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract@1q eZend_Service_WindowsAzure_RetryPolicy_RetryN@2p gZend_Service_WindowsAzure_RetryPolicy_NoRetry@4o kZend_Service_WindowsAzure_RetryPolicy_Exception@(n SZend_Service_WindowsAzure_Exception@Jm Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscription@2l gZend_Service_WindowsAzure_Diagnostics_Manager@3k iZend_Service_WindowsAzure_Diagnostics_LogLevel@4j kZend_Service_WindowsAzure_Diagnostics_Exception@Ni Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscription@Hh Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLog@Lg Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCounters@Kf Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstract@<e {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogs@Ad Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstance@Dc 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectories@Ub +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogs@Da 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSources@8` sZend_Service_WindowsAzure_Credentials_SharedKeyLite@4_ kZend_Service_WindowsAzure_Credentials_SharedKey@A^ Zend_Service_WindowsAzure_Credentials_SharedAccessSignature@4] kZend_Service_WindowsAzure_Credentials_Exception@>\ Zend_Service_WindowsAzure_Credentials_CredentialsAbstract@[ 5Zend_Service_Twitter@ Z CZend_Service_Twitter_Search@#Y IZend_Service_Twitter_Exception@X ;Zend_Service_Technorati@#W IZend_Service_Technorati_Weblog@"V GZend_Service_Technorati_Utils@*U WZend_Service_Technorati_TagsResultSet@'T QZend_Service_Technorati_TagsResult@)S UZend_Service_Technorati_TagResultSet@&R OZend_Service_Technorati_TagResult@,Q [Zend_Service_Technorati_SearchResultSet@)P UZend_Service_Technorati_SearchResult@&O OZend_Service_Technorati_ResultSet@#N IZend_Service_Technorati_Result@*M WZend_Service_Technorati_KeyInfoResult@*L WZend_Service_Technorati_GetInfoResult@&K OZend_Service_Technorati_Exception@1J eZend_Service_Technorati_DailyCountsResultSet@.I _Zend_Service_Technorati_DailyCountsResult@,H [Zend_Service_Technorati_CosmosResultSet@)G UZend_Service_Technorati_CosmosResult@+F YZend_Service_Technorati_BlogInfoResult@#E IZend_Service_Technorati_Author@D ;Zend_Service_StrikeIron@(C SZend_Service_StrikeIron_ZipCodeInfo@2B gZend_Service_StrikeIron_USAddressVerification@-A ]Zend_Service_StrikeIron_SalesUseTaxBasic@   b  Z1lB~U*xX8W/



k
T
-
				h	Q	6	 	oA_2uGrO6kS3tFLs+         )l UZend_Tool_Framework_Client_Exception@'k QZend_Tool_Framework_Client_Console@Dj 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Indention@Di 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizer@Ch Zend_Tool_Framework_Client_Console_ResponseDecorator_Blockize@Fg Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenter@0f cZend_Tool_Framework_Client_Console_Manifest@2e gZend_Tool_Framework_Client_Console_HelpSystem@6d oZend_Tool_Framework_Client_Console_ArgumentParser@&c OZend_Tool_Framework_Client_Config@(b SZend_Tool_Framework_Client_Abstract@*a WZend_Tool_Framework_Action_Repository@)` UZend_Tool_Framework_Action_Exception@$_ KZend_Tool_Framework_Action_Base@^ 'Zend_TimeSync@] 1Zend_TimeSync_Sntp@\ 9Zend_TimeSync_Protocol@[ /Zend_TimeSync_Ntp@Z ;Zend_TimeSync_Exception@Y +Zend_Text_Table@X 3Zend_Text_Table_Row@W ?Zend_Text_Table_Exception@&V OZend_Text_Table_Decorator_Unicode@$U KZend_Text_Table_Decorator_Ascii@T 9Zend_Text_Table_Column@S 3Zend_Text_MultiByte@R -Zend_Text_Figlet@Q AZend_Text_Figlet_Exception@P 3Zend_Text_Exception@&O OZend_Test_PHPUnit_Db_SimpleTester@,N [Zend_Test_PHPUnit_Db_Operation_Truncate@*M WZend_Test_PHPUnit_Db_Operation_Insert@-L ]Zend_Test_PHPUnit_Db_Operation_DeleteAll@*K WZend_Test_PHPUnit_Db_Metadata_Generic@#J IZend_Test_PHPUnit_Db_Exception@,I [Zend_Test_PHPUnit_Db_DataSet_QueryTable@.H _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet@0G cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet@)F UZend_Test_PHPUnit_Db_DataSet_DbTable@*E WZend_Test_PHPUnit_Db_DataSet_DbRowset@$D KZend_Test_PHPUnit_Db_Connection@'C QZend_Test_PHPUnit_DatabaseTestCase@)B UZend_Test_PHPUnit_ControllerTestCase@0A cZend_Test_PHPUnit_Constraint_ResponseHeader@*@ WZend_Test_PHPUnit_Constraint_Redirect@+? YZend_Test_PHPUnit_Constraint_Exception@*> WZend_Test_PHPUnit_Constraint_DomQuery@= 7Zend_Test_DbStatement@< 3Zend_Test_DbAdapter@; /Zend_Tag_ItemList@: 'Zend_Tag_Item@9 1Zend_Tag_Exception@8 )Zend_Tag_Cloud@7 =Zend_Tag_Cloud_Exception@!6 EZend_Tag_Cloud_Decorator_Tag@%5 MZend_Tag_Cloud_Decorator_HtmlTag@'4 QZend_Tag_Cloud_Decorator_HtmlCloud@'3 QZend_Tag_Cloud_Decorator_Exception@#2 IZend_Tag_Cloud_Decorator_Cloud@1 )Zend_Soap_Wsdl@/0 aZend_Soap_Wsdl_Strategy_DefaultComplexType@&/ OZend_Soap_Wsdl_Strategy_Composite@0. cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence@/- aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex@$, KZend_Soap_Wsdl_Strategy_AnyType@%+ MZend_Soap_Wsdl_Strategy_Abstract@* =Zend_Soap_Wsdl_Exception@) -Zend_Soap_Server@( AZend_Soap_Server_Exception@' -Zend_Soap_Client@& 9Zend_Soap_Client_Local@% AZend_Soap_Client_Exception@$ ;Zend_Soap_Client_DotNet@# ;Zend_Soap_Client_Common@" 9Zend_Soap_AutoDiscover@%! MZend_Soap_AutoDiscover_Exception@  %Zend_Session@) UZend_Session_Validator_HttpUserAgent@$ KZend_Session_Validator_Abstract@' QZend_Session_SaveHandler_Exception@% MZend_Session_SaveHandler_DbTable@ 9Zend_Session_Namespace@ 9Zend_Session_Exception@ 7Zend_Session_Abstract@ 1Zend_Service_Yahoo@$ KZend_Service_Yahoo_WebResultSet@! EZend_Service_Yahoo_WebResult@& OZend_Service_Yahoo_VideoResultSet@# IZend_Service_Yahoo_VideoResult@! EZend_Service_Yahoo_ResultSet@ ?Zend_Service_Yahoo_Result@) UZend_Service_Yahoo_PageDataResultSet@& OZend_Service_Yahoo_PageDataResult@% MZend_Service_Yahoo_NewsResultSet@" GZend_Service_Yahoo_NewsResult@& OZend_Service_Yahoo_LocalResultSet@# IZend_Service_Yahoo_LocalResult@+ YZend_Service_Yahoo_InlinkDataResultSet@   K  KK Qe;P+



j
5
			W	&[.t=c0b([-UQxC                                                      17 eZend_Tool_Project_Context_Zf_PublicIndexFile@76 qZend_Tool_Project_Context_Zf_PublicImagesDirectory@15 eZend_Tool_Project_Context_Zf_PublicDirectory@54 mZend_Tool_Project_Context_Zf_ProjectProviderFile@23 gZend_Tool_Project_Context_Zf_ModulesDirectory@12 eZend_Tool_Project_Context_Zf_ModuleDirectory@11 eZend_Tool_Project_Context_Zf_ModelsDirectory@+0 YZend_Tool_Project_Context_Zf_ModelFile@// aZend_Tool_Project_Context_Zf_LogsDirectory@2. gZend_Tool_Project_Context_Zf_LocalesDirectory@2- gZend_Tool_Project_Context_Zf_LibraryDirectory@2, gZend_Tool_Project_Context_Zf_LayoutsDirectory@8+ sZend_Tool_Project_Context_Zf_LayoutScriptsDirectory@2* gZend_Tool_Project_Context_Zf_LayoutScriptFile@.) _Zend_Tool_Project_Context_Zf_HtaccessFile@0( cZend_Tool_Project_Context_Zf_FormsDirectory@*' WZend_Tool_Project_Context_Zf_FormFile@/& aZend_Tool_Project_Context_Zf_DocsDirectory@-% ]Zend_Tool_Project_Context_Zf_DbTableFile@2$ gZend_Tool_Project_Context_Zf_DbTableDirectory@/# aZend_Tool_Project_Context_Zf_DataDirectory@6" oZend_Tool_Project_Context_Zf_ControllersDirectory@0! cZend_Tool_Project_Context_Zf_ControllerFile@2  gZend_Tool_Project_Context_Zf_ConfigsDirectory@, [Zend_Tool_Project_Context_Zf_ConfigFile@0 cZend_Tool_Project_Context_Zf_CacheDirectory@/ aZend_Tool_Project_Context_Zf_BootstrapFile@6 oZend_Tool_Project_Context_Zf_ApplicationDirectory@7 qZend_Tool_Project_Context_Zf_ApplicationConfigFile@/ aZend_Tool_Project_Context_Zf_ApisDirectory@. _Zend_Tool_Project_Context_Zf_ActionMethod@3 iZend_Tool_Project_Context_Zf_AbstractClassFile@@ Zend_Tool_Project_Context_System_ProjectProvidersDirectory@8 sZend_Tool_Project_Context_System_ProjectProfileFile@6 oZend_Tool_Project_Context_System_ProjectDirectory@) UZend_Tool_Project_Context_Repository@. _Zend_Tool_Project_Context_Filesystem_File@3 iZend_Tool_Project_Context_Filesystem_Directory@2 gZend_Tool_Project_Context_Filesystem_Abstract@( SZend_Tool_Project_Context_Exception@- ]Zend_Tool_Project_Context_Content_Engine@3 iZend_Tool_Project_Context_Content_Engine_Phtml@; yZend_Tool_Project_Context_Content_Engine_CodeGenerator@0 cZend_Tool_Framework_System_Provider_Version@0 cZend_Tool_Framework_System_Provider_Phpinfo@1
 eZend_Tool_Framework_System_Provider_Manifest@/	 aZend_Tool_Framework_System_Provider_Config@( SZend_Tool_Framework_System_Manifest@- ]Zend_Tool_Framework_System_Action_Delete@- ]Zend_Tool_Framework_System_Action_Create@! EZend_Tool_Framework_Registry@+ YZend_Tool_Framework_Registry_Exception@+ YZend_Tool_Framework_Provider_Signature@, [Zend_Tool_Framework_Provider_Repository@+ YZend_Tool_Framework_Provider_Exception@*  WZend_Tool_Framework_Provider_Abstract@& OZend_Tool_Framework_Metadata_Tool@)~ UZend_Tool_Framework_Metadata_Dynamic@'} QZend_Tool_Framework_Metadata_Basic@,| [Zend_Tool_Framework_Manifest_Repository@+{ YZend_Tool_Framework_Manifest_Exception@1z eZend_Tool_Framework_Loader_IncludePathLoader@Jy Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator@+x YZend_Tool_Framework_Loader_BasicLoader@(w SZend_Tool_Framework_Loader_Abstract@"v GZend_Tool_Framework_Exception@'u QZend_Tool_Framework_Client_Storage@1t eZend_Tool_Framework_Client_Storage_Directory@(s SZend_Tool_Framework_Client_Response@Dr 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator@'q QZend_Tool_Framework_Client_Request@(p SZend_Tool_Framework_Client_Manifest@9o uZend_Tool_Framework_Client_Interactive_InputResponse@8n sZend_Tool_Framework_Client_Interactive_InputRequest@8m sZend_Tool_Framework_Client_Interactive_InputHandler@   W  HN
Tl6}I


w
K
			k	.	\.W+O'mK({]F+Z*lH$ rM(                              * WZend_Validate_Barcode_IntelligentMail@$ KZend_Validate_Barcode_Identcode@! EZend_Validate_Barcode_Gtin14@! EZend_Validate_Barcode_Gtin13@!
 EZend_Validate_Barcode_Gtin12@	 AZend_Validate_Barcode_Ean8@ AZend_Validate_Barcode_Ean5@ AZend_Validate_Barcode_Ean2@  CZend_Validate_Barcode_Ean18@  CZend_Validate_Barcode_Ean14@  CZend_Validate_Barcode_Ean13@  CZend_Validate_Barcode_Ean12@$ KZend_Validate_Barcode_Code93ext@! EZend_Validate_Barcode_Code93@$  KZend_Validate_Barcode_Code39ext@! EZend_Validate_Barcode_Code39@,~ [Zend_Validate_Barcode_Code25interleaved@!} EZend_Validate_Barcode_Code25@*| WZend_Validate_Barcode_AdapterAbstract@{ 3Zend_Validate_Alpha@z 3Zend_Validate_Alnum@y 9Zend_Validate_Abstract@x Zend_Uri@w 'Zend_Uri_Http@v 1Zend_Uri_Exception@u )Zend_Translate@t 7Zend_Translate_Plural@s =Zend_Translate_Exception@r 9Zend_Translate_Adapter@!q EZend_Translate_Adapter_XmlTm@!p EZend_Translate_Adapter_Xliff@o AZend_Translate_Adapter_Tmx@n AZend_Translate_Adapter_Tbx@m ?Zend_Translate_Adapter_Qt@l AZend_Translate_Adapter_Ini@#k IZend_Translate_Adapter_Gettext@j AZend_Translate_Adapter_Csv@!i EZend_Translate_Adapter_Array@$h KZend_Tool_Project_Provider_View@$g KZend_Tool_Project_Provider_Test@/f aZend_Tool_Project_Provider_ProjectProvider@'e QZend_Tool_Project_Provider_Project@'d QZend_Tool_Project_Provider_Profile@&c OZend_Tool_Project_Provider_Module@%b MZend_Tool_Project_Provider_Model@(a SZend_Tool_Project_Provider_Manifest@&` OZend_Tool_Project_Provider_Layout@$_ KZend_Tool_Project_Provider_Form@)^ UZend_Tool_Project_Provider_Exception@'] QZend_Tool_Project_Provider_DbTable@)\ UZend_Tool_Project_Provider_DbAdapter@*[ WZend_Tool_Project_Provider_Controller@+Z YZend_Tool_Project_Provider_Application@&Y OZend_Tool_Project_Provider_Action@(X SZend_Tool_Project_Provider_Abstract@W ?Zend_Tool_Project_Profile@'V QZend_Tool_Project_Profile_Resource@9U uZend_Tool_Project_Profile_Resource_SearchConstraints@1T eZend_Tool_Project_Profile_Resource_Container@=S }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter@5R mZend_Tool_Project_Profile_Iterator_ContextFilter@-Q ]Zend_Tool_Project_Profile_FileParser_Xml@(P SZend_Tool_Project_Profile_Exception@ O CZend_Tool_Project_Exception@<N {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory@0M cZend_Tool_Project_Context_Zf_ViewsDirectory@6L oZend_Tool_Project_Context_Zf_ViewScriptsDirectory@0K cZend_Tool_Project_Context_Zf_ViewScriptFile@6J oZend_Tool_Project_Context_Zf_ViewHelpersDirectory@6I oZend_Tool_Project_Context_Zf_ViewFiltersDirectory@AH Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory@2G gZend_Tool_Project_Context_Zf_UploadsDirectory@0F cZend_Tool_Project_Context_Zf_TestsDirectory@7E qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile@@D Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory@1C eZend_Tool_Project_Context_Zf_TestLibraryFile@6B oZend_Tool_Project_Context_Zf_TestLibraryDirectory@:A wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFile@:@ wZend_Tool_Project_Context_Zf_TestApplicationDirectory@@? Zend_Tool_Project_Context_Zf_TestApplicationControllerFile@E> Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory@>= Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile@4< kZend_Tool_Project_Context_Zf_TemporaryDirectory@3; iZend_Tool_Project_Context_Zf_SessionsDirectory@8: sZend_Tool_Project_Context_Zf_SearchIndexesDirectory@<9 {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory@88 sZend_Tool_Project_Context_Zf_PublicScriptsDirectory@   o mGz[?vS3xS.[6




q
W
8
						r	S	4	]G2vW2b>e?iG%tQ/~^.|X-                            '} QZend_View_Helper_Partial_Exception@'| QZend_View_Helper_PaginationControl@ { CZend_View_Helper_Navigation@(z SZend_View_Helper_Navigation_Sitemap@%y MZend_View_Helper_Navigation_Menu@&x OZend_View_Helper_Navigation_Links@/w aZend_View_Helper_Navigation_HelperAbstract@,v [Zend_View_Helper_Navigation_Breadcrumbs@u ;Zend_View_Helper_Layout@t 7Zend_View_Helper_Json@"s GZend_View_Helper_InlineScript@#r IZend_View_Helper_HtmlQuicktime@q ?Zend_View_Helper_HtmlPage@ p CZend_View_Helper_HtmlObject@o ?Zend_View_Helper_HtmlList@n AZend_View_Helper_HtmlFlash@!m EZend_View_Helper_HtmlElement@l AZend_View_Helper_HeadTitle@k AZend_View_Helper_HeadStyle@ j CZend_View_Helper_HeadScript@i ?Zend_View_Helper_HeadMeta@h ?Zend_View_Helper_HeadLink@g ?Zend_View_Helper_Gravatar@"f GZend_View_Helper_FormTextarea@e ?Zend_View_Helper_FormText@ d CZend_View_Helper_FormSubmit@ c CZend_View_Helper_FormSelect@b AZend_View_Helper_FormReset@a AZend_View_Helper_FormRadio@"` GZend_View_Helper_FormPassword@_ ?Zend_View_Helper_FormNote@'^ QZend_View_Helper_FormMultiCheckbox@] AZend_View_Helper_FormLabel@\ AZend_View_Helper_FormImage@ [ CZend_View_Helper_FormHidden@Z ?Zend_View_Helper_FormFile@ Y CZend_View_Helper_FormErrors@!X EZend_View_Helper_FormElement@"W GZend_View_Helper_FormCheckbox@ V CZend_View_Helper_FormButton@U 7Zend_View_Helper_Form@T ?Zend_View_Helper_Fieldset@S =Zend_View_Helper_Doctype@!R EZend_View_Helper_DeclareVars@Q 9Zend_View_Helper_Cycle@P ?Zend_View_Helper_Currency@O =Zend_View_Helper_BaseUrl@N ;Zend_View_Helper_Action@M ?Zend_View_Helper_Abstract@L 3Zend_View_Exception@K 1Zend_View_Abstract@J %Zend_Version@I 'Zend_Validate@H AZend_Validate_StringLength@#G IZend_Validate_Sitemap_Priority@F ?Zend_Validate_Sitemap_Loc@"E GZend_Validate_Sitemap_Lastmod@%D MZend_Validate_Sitemap_Changefreq@C 3Zend_Validate_Regex@B 9Zend_Validate_PostCode@A 9Zend_Validate_NotEmpty@@ 9Zend_Validate_LessThan@? 1Zend_Validate_Isbn@> -Zend_Validate_Ip@= /Zend_Validate_Int@< 7Zend_Validate_InArray@; ;Zend_Validate_Identical@: 1Zend_Validate_Iban@9 9Zend_Validate_Hostname@8 /Zend_Validate_Hex@7 ?Zend_Validate_GreaterThan@6 3Zend_Validate_Float@!5 EZend_Validate_File_WordCount@4 ?Zend_Validate_File_Upload@3 ;Zend_Validate_File_Size@2 ;Zend_Validate_File_Sha1@!1 EZend_Validate_File_NotExists@ 0 CZend_Validate_File_MimeType@/ 9Zend_Validate_File_Md5@. AZend_Validate_File_IsImage@$- KZend_Validate_File_IsCompressed@!, EZend_Validate_File_ImageSize@+ ;Zend_Validate_File_Hash@!* EZend_Validate_File_FilesSize@!) EZend_Validate_File_Extension@( ?Zend_Validate_File_Exists@'' QZend_Validate_File_ExcludeMimeType@(& SZend_Validate_File_ExcludeExtension@% =Zend_Validate_File_Crc32@$ =Zend_Validate_File_Count@# ;Zend_Validate_Exception@" AZend_Validate_EmailAddress@! 5Zend_Validate_Digits@"  GZend_Validate_Db_RecordExists@$ KZend_Validate_Db_NoRecordExists@ ?Zend_Validate_Db_Abstract@ 1Zend_Validate_Date@ =Zend_Validate_CreditCard@ 3Zend_Validate_Ccnum@ 9Zend_Validate_Callback@ 7Zend_Validate_Between@ 7Zend_Validate_Barcode@ AZend_Validate_Barcode_Upce@ AZend_Validate_Barcode_Upca@ AZend_Validate_Barcode_Sscc@$ KZend_Validate_Barcode_Royalmail@" GZend_Validate_Barcode_Postnet@! EZend_Validate_Barcode_Planet@# IZend_Validate_Barcode_Leitcode@  CZend_Validate_Barcode_Itf14@ AZend_Validate_Barcode_Issn@   i  IzU(hV,^9aF(



k
I
-
					e	J	*		zY5x]CqR7|X5oM/_<S#u@                       f AZend_Application_ExceptionA)e UZend_Application_Bootstrap_ExceptionA1d eZend_Application_Bootstrap_BootstrapAbstractA)c UZend_Application_Bootstrap_BootstrapAb ?Zend_Amf_Value_TraitsInfoA-a ]Zend_Amf_Value_Messaging_RemotingMessageA*` WZend_Amf_Value_Messaging_ErrorMessageA,_ [Zend_Amf_Value_Messaging_CommandMessageA*^ WZend_Amf_Value_Messaging_AsyncMessageA-] ]Zend_Amf_Value_Messaging_ArrayCollectionA0\ cZend_Amf_Value_Messaging_AcknowledgeMessageA-[ ]Zend_Amf_Value_Messaging_AbstractMessageA!Z EZend_Amf_Value_MessageHeaderAY AZend_Amf_Value_MessageBodyAX =Zend_Amf_Value_ByteArrayAW AZend_Amf_Util_BinaryStreamAV +Zend_Amf_ServerAU ?Zend_Amf_Server_ExceptionAT /Zend_Amf_ResponseAS 9Zend_Amf_Response_HttpAR -Zend_Amf_RequestAQ 7Zend_Amf_Request_HttpAP ?Zend_Amf_Parse_TypeLoaderAO ?Zend_Amf_Parse_SerializerA#N IZend_Amf_Parse_Resource_StreamA(M SZend_Amf_Parse_Resource_MysqlResultA)L UZend_Amf_Parse_Resource_MysqliResultA K CZend_Amf_Parse_OutputStreamAJ AZend_Amf_Parse_InputStreamA I CZend_Amf_Parse_DeserializerA#H IZend_Amf_Parse_Amf3_SerializerA%G MZend_Amf_Parse_Amf3_DeserializerA#F IZend_Amf_Parse_Amf0_SerializerA%E MZend_Amf_Parse_Amf0_DeserializerAD 1Zend_Amf_ExceptionAC 1Zend_Amf_ConstantsAB 9Zend_Amf_Auth_AbstractA A CZend_Amf_Adobe_IntrospectorA@ AZend_Amf_Adobe_DbInspectorA? 3Zend_Amf_Adobe_AuthA> Zend_AclA= 'Zend_Acl_RoleA< 9Zend_Acl_Role_RegistryA%; MZend_Acl_Role_Registry_ExceptionA: /Zend_Acl_ResourceA9 1Zend_Acl_ExceptionA8 /Zend_XmlRpc_Value@7 =Zend_XmlRpc_Value_Struct@6 =Zend_XmlRpc_Value_String@5 =Zend_XmlRpc_Value_Scalar@4 7Zend_XmlRpc_Value_Nil@3 ?Zend_XmlRpc_Value_Integer@ 2 CZend_XmlRpc_Value_Exception@1 =Zend_XmlRpc_Value_Double@0 AZend_XmlRpc_Value_DateTime@!/ EZend_XmlRpc_Value_Collection@. ?Zend_XmlRpc_Value_Boolean@!- EZend_XmlRpc_Value_BigInteger@, =Zend_XmlRpc_Value_Base64@+ ;Zend_XmlRpc_Value_Array@* 1Zend_XmlRpc_Server@) ?Zend_XmlRpc_Server_System@( =Zend_XmlRpc_Server_Fault@!' EZend_XmlRpc_Server_Exception@& =Zend_XmlRpc_Server_Cache@% 5Zend_XmlRpc_Response@$ ?Zend_XmlRpc_Response_Http@# 3Zend_XmlRpc_Request@" ?Zend_XmlRpc_Request_Stdin@! =Zend_XmlRpc_Request_Http@$  KZend_XmlRpc_Generator_XmlWriter@, [Zend_XmlRpc_Generator_GeneratorAbstract@& OZend_XmlRpc_Generator_DomDocument@ /Zend_XmlRpc_Fault@ 7Zend_XmlRpc_Exception@ 1Zend_XmlRpc_Client@# IZend_XmlRpc_Client_ServerProxy@+ YZend_XmlRpc_Client_ServerIntrospection@+ YZend_XmlRpc_Client_IntrospectException@% MZend_XmlRpc_Client_HttpException@& OZend_XmlRpc_Client_FaultException@! EZend_XmlRpc_Client_Exception@& OZend_Wildfire_Protocol_JsonStream@! EZend_Wildfire_Plugin_FirePhp@. _Zend_Wildfire_Plugin_FirePhp_TableMessage@) UZend_Wildfire_Plugin_FirePhp_Message@ ;Zend_Wildfire_Exception@& OZend_Wildfire_Channel_HttpHeaders@ Zend_View@ -Zend_View_Stream@ AZend_View_Helper_UserAgent@ 5Zend_View_Helper_Url@
 AZend_View_Helper_Translate@	 =Zend_View_Helper_TinySrc@ AZend_View_Helper_ServerUrl@) UZend_View_Helper_RenderToPlaceholder@! EZend_View_Helper_Placeholder@* WZend_View_Helper_Placeholder_Registry@4 kZend_View_Helper_Placeholder_Registry_Exception@+ YZend_View_Helper_Placeholder_Container@6 oZend_View_Helper_Placeholder_Container_Standalone@5 mZend_View_Helper_Placeholder_Container_Exception@4  kZend_View_Helper_Placeholder_Container_Abstract@! EZend_View_Helper_PartialLoop@~ =Zend_View_Helper_Partial@   W  k?c)v@eD ])



[
:
				k	5	A[/m2s:d2n@n8
]7                                # ;Zend_Acl_Role_InterfaceA " CZend_Acl_Resource_InterfaceA! ?Zend_Acl_Assert_InterfaceA#  IZend_Wildfire_Plugin_Interface@$ KZend_Wildfire_Channel_Interface@ 3Zend_View_Interface@' QZend_View_Helper_Navigation_Helper@ AZend_View_Helper_Interface@ ;Zend_Validate_Interface@+ YZend_Validate_Barcode_AdapterInterface@3 iZend_Tool_Project_Profile_FileParser_Interface@: wZend_Tool_Project_Context_System_TopLevelRestrictable@5 mZend_Tool_Project_Context_System_NotOverwritable@/ aZend_Tool_Project_Context_System_Interface@( SZend_Tool_Project_Context_Interface@+ YZend_Tool_Framework_Registry_Interface@2 gZend_Tool_Framework_Registry_EnabledInterface@- ]Zend_Tool_Framework_Provider_Pretendable@+ YZend_Tool_Framework_Provider_Interface@. _Zend_Tool_Framework_Provider_Interactable@/ aZend_Tool_Framework_Provider_Initializable@; yZend_Tool_Framework_Provider_DocblockManifestInterface@+ YZend_Tool_Framework_Metadata_Interface@. _Zend_Tool_Framework_Metadata_Attributable@6 oZend_Tool_Framework_Manifest_ProviderManifestable@6
 oZend_Tool_Framework_Manifest_MetadataManifestable@+	 YZend_Tool_Framework_Manifest_Interface@+ YZend_Tool_Framework_Manifest_Indexable@4 kZend_Tool_Framework_Manifest_ActionManifestable@) UZend_Tool_Framework_Loader_Interface@8 sZend_Tool_Framework_Client_Storage_AdapterInterface@D 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface@; yZend_Tool_Framework_Client_Interactive_OutputInterface@: wZend_Tool_Framework_Client_Interactive_InputInterface@) UZend_Tool_Framework_Action_Interface@(  SZend_Text_Table_Decorator_Interface@ /Zend_Tag_Taggable@&~ OZend_Soap_Wsdl_Strategy_Interface@%} MZend_Session_Validator_Interface@'| QZend_Session_SaveHandler_Interface@${ KZend_Service_ShortUrl_Shortener@Iz Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Interface@y 7Zend_Server_Interface@-x ]Zend_Serializer_Adapter_AdapterInterface@4w kZend_Search_Lucene_Search_Highlighter_Interface@!v EZend_Search_Lucene_Interface@3u iZend_Search_Lucene_Index_TermsStream_Interface@$t KZend_Queue_Stomp_FrameInterface@0s cZend_Queue_Stomp_Client_ConnectionInterface@(r SZend_Queue_Adapter_AdapterInterface@q ?Zend_Pdf_Filter_Interface@&p OZend_Pdf_ElementFactory_Interface@o ?Zend_Pdf_Canvas_Interface@,n [Zend_Paginator_ScrollingStyle_Interface@$m KZend_Paginator_AdapterAggregate@%l MZend_Paginator_Adapter_Interface@&k OZend_Oauth_Config_ConfigInterface@$j KZend_Memory_Container_Interface@1i eZend_Markup_Renderer_TokenConverterInterface@'h QZend_Markup_Parser_ParserInterface@)g UZend_Mail_Storage_Writable_Interface@'f QZend_Mail_Storage_Folder_Interface@e =Zend_Mail_Part_Interface@ d CZend_Mail_Message_Interface@!c EZend_Log_Formatter_Interface@b ?Zend_Log_Filter_Interface@a ?Zend_Log_FactoryInterface@'` QZend_Loader_PluginLoader_Interface@%_ MZend_Loader_Autoloader_Interface@0^ cZend_Ldap_Node_Schema_ObjectClass_Interface@2] gZend_Ldap_Node_Schema_AttributeType_Interface@3\ iZend_InfoCard_Xml_Security_Transform_Interface@([ SZend_InfoCard_Xml_KeyInfo_Interface@(Z SZend_InfoCard_Xml_Element_Interface@*Y WZend_InfoCard_Xml_Assertion_Interface@-X ]Zend_InfoCard_Cipher_Symmetric_Interface@7W qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface@7V qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interface@+U YZend_InfoCard_Cipher_Pki_Rsa_Interface@'T QZend_InfoCard_Cipher_Pki_Interface@$S KZend_InfoCard_Adapter_Interface@ R CZend_Http_UserAgent_Storage@)Q UZend_Http_UserAgent_Features_Adapter@P AZend_Http_UserAgent_Device@$O KZend_Http_Client_Adapter_Stream@'N QZend_Http_Client_Adapter_Interface@M AZend_Gdata_App_MediaSource@   h  |W0Z3	V, rQ-mL0




x
T
1
				|	[	9	{X4^/lG%tIa@uV: NxI                          'N QZend_Cloud_DocumentService_FactoryA)M UZend_Cloud_DocumentService_ExceptionA+L YZend_Cloud_DocumentService_DocumentSetA(K SZend_Cloud_DocumentService_DocumentA4J kZend_Cloud_DocumentService_Adapter_WindowsAzureA:I wZend_Cloud_DocumentService_Adapter_WindowsAzure_QueryA0H cZend_Cloud_DocumentService_Adapter_SimpleDbA6G oZend_Cloud_DocumentService_Adapter_SimpleDb_QueryA7F qZend_Cloud_DocumentService_Adapter_AbstractAdapterAE AZend_Cloud_AbstractFactoryAD /Zend_Captcha_WordAC 9Zend_Captcha_ReCaptchaAB 1Zend_Captcha_ImageAA 3Zend_Captcha_FigletA@ 9Zend_Captcha_ExceptionA? /Zend_Captcha_DumbA> /Zend_Captcha_BaseA= !Zend_CacheA< 1Zend_Cache_ManagerA; =Zend_Cache_Frontend_PageA: AZend_Cache_Frontend_OutputA!9 EZend_Cache_Frontend_FunctionA8 =Zend_Cache_Frontend_FileA7 ?Zend_Cache_Frontend_ClassA 6 CZend_Cache_Frontend_CaptureA5 5Zend_Cache_ExceptionA4 +Zend_Cache_CoreA3 1Zend_Cache_BackendA"2 GZend_Cache_Backend_ZendServerA(1 SZend_Cache_Backend_ZendServer_ShMemA'0 QZend_Cache_Backend_ZendServer_DiskA$/ KZend_Cache_Backend_ZendPlatformA. ?Zend_Cache_Backend_XcacheA!- EZend_Cache_Backend_TwoLevelsA, ;Zend_Cache_Backend_TestA+ ?Zend_Cache_Backend_StaticA* ?Zend_Cache_Backend_SqliteA!) EZend_Cache_Backend_MemcachedA$( KZend_Cache_Backend_LibmemcachedA' ;Zend_Cache_Backend_FileA!& EZend_Cache_Backend_BlackHoleA% 9Zend_Cache_Backend_ApcA$ %Zend_BarcodeA# ?Zend_Barcode_Renderer_SvgA+" YZend_Barcode_Renderer_RendererAbstractA! ?Zend_Barcode_Renderer_PdfA   CZend_Barcode_Renderer_ImageA$ KZend_Barcode_Renderer_ExceptionA =Zend_Barcode_Object_UpceA =Zend_Barcode_Object_UpcaA" GZend_Barcode_Object_RoyalmailA  CZend_Barcode_Object_PostnetA AZend_Barcode_Object_PlanetA' QZend_Barcode_Object_ObjectAbstractA! EZend_Barcode_Object_LeitcodeA ?Zend_Barcode_Object_Itf14A" GZend_Barcode_Object_IdentcodeA" GZend_Barcode_Object_ExceptionA ?Zend_Barcode_Object_ErrorA =Zend_Barcode_Object_Ean8A =Zend_Barcode_Object_Ean5A =Zend_Barcode_Object_Ean2A ?Zend_Barcode_Object_Ean13A AZend_Barcode_Object_Code39A* WZend_Barcode_Object_Code25interleavedA AZend_Barcode_Object_Code25A  CZend_Barcode_Object_Code128A 9Zend_Barcode_ExceptionA
 Zend_AuthA	 ?Zend_Auth_Storage_SessionA$ KZend_Auth_Storage_NonPersistentA  CZend_Auth_Storage_ExceptionA -Zend_Auth_ResultA 3Zend_Auth_ExceptionA =Zend_Auth_Adapter_OpenIdA 9Zend_Auth_Adapter_LdapA AZend_Auth_Adapter_InfoCardA 9Zend_Auth_Adapter_HttpA)  UZend_Auth_Adapter_Http_Resolver_FileA. _Zend_Auth_Adapter_Http_Resolver_ExceptionA ~ CZend_Auth_Adapter_ExceptionA} =Zend_Auth_Adapter_DigestA| ?Zend_Auth_Adapter_DbTableA{ -Zend_ApplicationA#z IZend_Application_Resource_ViewA(y SZend_Application_Resource_UserAgentA(x SZend_Application_Resource_TranslateA&w OZend_Application_Resource_SessionA%v MZend_Application_Resource_RouterA/u aZend_Application_Resource_ResourceAbstractA)t UZend_Application_Resource_NavigationA&s OZend_Application_Resource_MultidbA&r OZend_Application_Resource_ModulesA#q IZend_Application_Resource_MailA"p GZend_Application_Resource_LogA%o MZend_Application_Resource_LocaleA%n MZend_Application_Resource_LayoutA.m _Zend_Application_Resource_FrontcontrollerA(l SZend_Application_Resource_ExceptionA#k IZend_Application_Resource_DojoA!j EZend_Application_Resource_DbA+i YZend_Application_Resource_CachemanagerA&h OZend_Application_Module_BootstrapA'g QZend_Application_Module_AutoloaderA   ]  P$kCL a<wO&


}
G
					r	Q	)	
x_K%	Mn:LnB ]3
d=oG         *+ WZend_Controller_Router_Route_AbstractA#* IZend_Controller_Router_RewriteA%) MZend_Controller_Router_ExceptionA$( KZend_Controller_Router_AbstractA*' WZend_Controller_Response_HttpTestCaseA"& GZend_Controller_Response_HttpA'% QZend_Controller_Response_ExceptionA!$ EZend_Controller_Response_CliA&# OZend_Controller_Response_AbstractA#" IZend_Controller_Request_SimpleA)! UZend_Controller_Request_HttpTestCaseA!  EZend_Controller_Request_HttpA& OZend_Controller_Request_ExceptionA& OZend_Controller_Request_Apache404A% MZend_Controller_Request_AbstractA& OZend_Controller_Plugin_PutHandlerA( SZend_Controller_Plugin_ErrorHandlerA" GZend_Controller_Plugin_BrokerA' QZend_Controller_Plugin_ActionStackA$ KZend_Controller_Plugin_AbstractA 7Zend_Controller_FrontA ?Zend_Controller_ExceptionA( SZend_Controller_Dispatcher_StandardA) UZend_Controller_Dispatcher_ExceptionA( SZend_Controller_Dispatcher_AbstractA 9Zend_Controller_ActionA( SZend_Controller_Action_HelperBrokerA6 oZend_Controller_Action_HelperBroker_PriorityStackA/ aZend_Controller_Action_Helper_ViewRendererA& OZend_Controller_Action_Helper_UrlA- ]Zend_Controller_Action_Helper_RedirectorA' QZend_Controller_Action_Helper_JsonA1 eZend_Controller_Action_Helper_FlashMessengerA0
 cZend_Controller_Action_Helper_ContextSwitchA(	 SZend_Controller_Action_Helper_CacheA< {Zend_Controller_Action_Helper_AutoCompleteScriptaculousA3 iZend_Controller_Action_Helper_AutoCompleteDojoA8 sZend_Controller_Action_Helper_AutoComplete_AbstractA. _Zend_Controller_Action_Helper_AjaxContextA. _Zend_Controller_Action_Helper_ActionStackA+ YZend_Controller_Action_Helper_AbstractA% MZend_Controller_Action_ExceptionA 3Zend_Console_GetoptA"  GZend_Console_Getopt_ExceptionA #Zend_ConfigA~ -Zend_Config_YamlA} +Zend_Config_XmlA| 1Zend_Config_WriterA{ ;Zend_Config_Writer_YamlAz 9Zend_Config_Writer_XmlAy ;Zend_Config_Writer_JsonAx 9Zend_Config_Writer_IniA$w KZend_Config_Writer_FileAbstractAv =Zend_Config_Writer_ArrayAu -Zend_Config_JsonAt +Zend_Config_IniAs 7Zend_Config_ExceptionA$r KZend_CodeGenerator_Php_PropertyA1q eZend_CodeGenerator_Php_Property_DefaultValueA%p MZend_CodeGenerator_Php_ParameterA2o gZend_CodeGenerator_Php_Parameter_DefaultValueA"n GZend_CodeGenerator_Php_MethodA,m [Zend_CodeGenerator_Php_Member_ContainerA+l YZend_CodeGenerator_Php_Member_AbstractA k CZend_CodeGenerator_Php_FileA%j MZend_CodeGenerator_Php_ExceptionA$i KZend_CodeGenerator_Php_DocblockA(h SZend_CodeGenerator_Php_Docblock_TagA/g aZend_CodeGenerator_Php_Docblock_Tag_ReturnA.f _Zend_CodeGenerator_Php_Docblock_Tag_ParamA0e cZend_CodeGenerator_Php_Docblock_Tag_LicenseA!d EZend_CodeGenerator_Php_ClassA c CZend_CodeGenerator_Php_BodyA$b KZend_CodeGenerator_Php_AbstractA!a EZend_CodeGenerator_ExceptionA ` CZend_CodeGenerator_AbstractA&_ OZend_Cloud_StorageService_FactoryA(^ SZend_Cloud_StorageService_ExceptionA3] iZend_Cloud_StorageService_Adapter_WindowsAzureA)\ UZend_Cloud_StorageService_Adapter_S3A/[ aZend_Cloud_StorageService_Adapter_NirvanixA1Z eZend_Cloud_StorageService_Adapter_FileSystemA'Y QZend_Cloud_QueueService_MessageSetA$X KZend_Cloud_QueueService_MessageA$W KZend_Cloud_QueueService_FactoryA&V OZend_Cloud_QueueService_ExceptionA.U _Zend_Cloud_QueueService_Adapter_ZendQueueA1T eZend_Cloud_QueueService_Adapter_WindowsAzureA(S SZend_Cloud_QueueService_Adapter_SqsA4R kZend_Cloud_QueueService_Adapter_AbstractAdapterA.Q _Zend_Cloud_OperationNotAvailableExceptionAP 5Zend_Cloud_ExceptionA%O MZend_Cloud_DocumentService_QueryA   m
 {P$t\2`= jN<oF'



x
V
6
					z	W	6	\1b7yU;wgT7 pCZ,c8d7
                                        ) UZend_Dojo_Form_Element_NumberTextBoxA) UZend_Dojo_Form_Element_NumberSpinnerA, [Zend_Dojo_Form_Element_HorizontalSliderA+ YZend_Dojo_Form_Element_FilteringSelectA" GZend_Dojo_Form_Element_EditorA& OZend_Dojo_Form_Element_DijitMultiA! EZend_Dojo_Form_Element_DijitA' QZend_Dojo_Form_Element_DateTextBoxA+ YZend_Dojo_Form_Element_CurrencyTextBoxA$ KZend_Dojo_Form_Element_ComboBoxA$ KZend_Dojo_Form_Element_CheckBoxA" GZend_Dojo_Form_Element_ButtonA  CZend_Dojo_Form_DisplayGroupA* WZend_Dojo_Form_Decorator_TabContainerA,
 [Zend_Dojo_Form_Decorator_StackContainerA,	 [Zend_Dojo_Form_Decorator_SplitContainerA' QZend_Dojo_Form_Decorator_DijitFormA* WZend_Dojo_Form_Decorator_DijitElementA, [Zend_Dojo_Form_Decorator_DijitContainerA) UZend_Dojo_Form_Decorator_ContentPaneA- ]Zend_Dojo_Form_Decorator_BorderContainerA+ YZend_Dojo_Form_Decorator_AccordionPaneA0 cZend_Dojo_Form_Decorator_AccordionContainerA 3Zend_Dojo_ExceptionA  )Zend_Dojo_DataA 5Zend_Dojo_BuildLayerA~ !Zend_DebugA} Zend_DbA| 'Zend_Db_TableA{ 5Zend_Db_Table_SelectA#z IZend_Db_Table_Select_ExceptionAy 5Zend_Db_Table_RowsetA#x IZend_Db_Table_Rowset_ExceptionA"w GZend_Db_Table_Rowset_AbstractAv /Zend_Db_Table_RowA u CZend_Db_Table_Row_ExceptionAt AZend_Db_Table_Row_AbstractAs ;Zend_Db_Table_ExceptionAr =Zend_Db_Table_DefinitionAq 9Zend_Db_Table_AbstractAp /Zend_Db_StatementAo =Zend_Db_Statement_SqlsrvA'n QZend_Db_Statement_Sqlsrv_ExceptionAm 7Zend_Db_Statement_PdoAl ?Zend_Db_Statement_Pdo_OciAk ?Zend_Db_Statement_Pdo_IbmAj =Zend_Db_Statement_OracleA'i QZend_Db_Statement_Oracle_ExceptionAh =Zend_Db_Statement_MysqliA'g QZend_Db_Statement_Mysqli_ExceptionA f CZend_Db_Statement_ExceptionAe 7Zend_Db_Statement_Db2A$d KZend_Db_Statement_Db2_ExceptionAc )Zend_Db_SelectAb =Zend_Db_Select_ExceptionAa -Zend_Db_ProfilerA` 9Zend_Db_Profiler_QueryA_ =Zend_Db_Profiler_FirebugA^ AZend_Db_Profiler_ExceptionA] %Zend_Db_ExprA\ /Zend_Db_ExceptionA[ 9Zend_Db_Adapter_SqlsrvA%Z MZend_Db_Adapter_Sqlsrv_ExceptionAY AZend_Db_Adapter_Pdo_SqliteAX ?Zend_Db_Adapter_Pdo_PgsqlAW ;Zend_Db_Adapter_Pdo_OciAV ?Zend_Db_Adapter_Pdo_MysqlAU ?Zend_Db_Adapter_Pdo_MssqlAT ;Zend_Db_Adapter_Pdo_IbmA S CZend_Db_Adapter_Pdo_Ibm_IdsA R CZend_Db_Adapter_Pdo_Ibm_Db2A!Q EZend_Db_Adapter_Pdo_AbstractAP 9Zend_Db_Adapter_OracleA%O MZend_Db_Adapter_Oracle_ExceptionAN 9Zend_Db_Adapter_MysqliA%M MZend_Db_Adapter_Mysqli_ExceptionAL ?Zend_Db_Adapter_ExceptionAK 3Zend_Db_Adapter_Db2A"J GZend_Db_Adapter_Db2_ExceptionAI =Zend_Db_Adapter_AbstractAH Zend_DateAG 3Zend_Date_ExceptionAF 5Zend_Date_DateObjectAE -Zend_Date_CitiesAD 'Zend_CurrencyAC ;Zend_Currency_ExceptionAB !Zend_CryptAA )Zend_Crypt_RsaA@ 1Zend_Crypt_Rsa_KeyA? ?Zend_Crypt_Rsa_Key_PublicA> AZend_Crypt_Rsa_Key_PrivateA= =Zend_Crypt_Rsa_ExceptionA< +Zend_Crypt_MathA; ?Zend_Crypt_Math_ExceptionA: AZend_Crypt_Math_BigIntegerA#9 IZend_Crypt_Math_BigInteger_GmpA)8 UZend_Crypt_Math_BigInteger_ExceptionA&7 OZend_Crypt_Math_BigInteger_BcmathA6 +Zend_Crypt_HmacA5 ?Zend_Crypt_Hmac_ExceptionA4 5Zend_Crypt_ExceptionA3 =Zend_Crypt_DiffieHellmanA'2 QZend_Crypt_DiffieHellman_ExceptionA!1 EZend_Controller_Router_RouteA(0 SZend_Controller_Router_Route_StaticA'/ QZend_Controller_Router_Route_RegexA(. SZend_Controller_Router_Route_ModuleA*- WZend_Controller_Router_Route_HostnameA', QZend_Controller_Router_Route_ChainA   _  xR&{M.kFvL(X5



V
)
				T	-	nS2pH'}M$j7_;rAi8xD                        3w iZend_Feed_Reader_Extension_WellFormedWeb_EntryA,v [Zend_Feed_Reader_Extension_Thread_EntryA0u cZend_Feed_Reader_Extension_Syndication_FeedA+t YZend_Feed_Reader_Extension_Slash_EntryA,s [Zend_Feed_Reader_Extension_Podcast_FeedA-r ]Zend_Feed_Reader_Extension_Podcast_EntryA,q [Zend_Feed_Reader_Extension_FeedAbstractA-p ]Zend_Feed_Reader_Extension_EntryAbstractA/o aZend_Feed_Reader_Extension_DublinCore_FeedA0n cZend_Feed_Reader_Extension_DublinCore_EntryA4m kZend_Feed_Reader_Extension_CreativeCommons_FeedA5l mZend_Feed_Reader_Extension_CreativeCommons_EntryA-k ]Zend_Feed_Reader_Extension_Content_EntryA)j UZend_Feed_Reader_Extension_Atom_FeedA*i WZend_Feed_Reader_Extension_Atom_EntryA#h IZend_Feed_Reader_EntryAbstractAg AZend_Feed_Reader_Entry_RssA f CZend_Feed_Reader_Entry_AtomA e CZend_Feed_Reader_CollectionA3d iZend_Feed_Reader_Collection_CollectionAbstractA)c UZend_Feed_Reader_Collection_CategoryA'b QZend_Feed_Reader_Collection_AuthorAa 9Zend_Feed_PubsubhubbubA&` OZend_Feed_Pubsubhubbub_SubscriberA/_ aZend_Feed_Pubsubhubbub_Subscriber_CallbackA%^ MZend_Feed_Pubsubhubbub_PublisherA.] _Zend_Feed_Pubsubhubbub_Model_SubscriptionA/\ aZend_Feed_Pubsubhubbub_Model_ModelAbstractA([ SZend_Feed_Pubsubhubbub_HttpResponseA%Z MZend_Feed_Pubsubhubbub_ExceptionA,Y [Zend_Feed_Pubsubhubbub_CallbackAbstractAX 3Zend_Feed_ExceptionAW 3Zend_Feed_Entry_RssAV 5Zend_Feed_Entry_AtomAU =Zend_Feed_Entry_AbstractAT /Zend_Feed_ElementAS /Zend_Feed_BuilderAR =Zend_Feed_Builder_HeaderA$Q KZend_Feed_Builder_Header_ItunesA P CZend_Feed_Builder_ExceptionAO ;Zend_Feed_Builder_EntryAN )Zend_Feed_AtomAM 1Zend_Feed_AbstractAL )Zend_ExceptionAK )Zend_Dom_QueryAJ 7Zend_Dom_Query_ResultAI =Zend_Dom_Query_Css2XpathAH 1Zend_Dom_ExceptionAG Zend_DojoA)F UZend_Dojo_View_Helper_VerticalSliderA,E [Zend_Dojo_View_Helper_ValidationTextBoxA&D OZend_Dojo_View_Helper_TimeTextBoxA"C GZend_Dojo_View_Helper_TextBoxA#B IZend_Dojo_View_Helper_TextareaA'A QZend_Dojo_View_Helper_TabContainerA'@ QZend_Dojo_View_Helper_SubmitButtonA)? UZend_Dojo_View_Helper_StackContainerA)> UZend_Dojo_View_Helper_SplitContainerA!= EZend_Dojo_View_Helper_SliderA)< UZend_Dojo_View_Helper_SimpleTextareaA&; OZend_Dojo_View_Helper_RadioButtonA*: WZend_Dojo_View_Helper_PasswordTextBoxA(9 SZend_Dojo_View_Helper_NumberTextBoxA(8 SZend_Dojo_View_Helper_NumberSpinnerA+7 YZend_Dojo_View_Helper_HorizontalSliderA6 AZend_Dojo_View_Helper_FormA*5 WZend_Dojo_View_Helper_FilteringSelectA!4 EZend_Dojo_View_Helper_EditorA3 AZend_Dojo_View_Helper_DojoA)2 UZend_Dojo_View_Helper_Dojo_ContainerA)1 UZend_Dojo_View_Helper_DijitContainerA 0 CZend_Dojo_View_Helper_DijitA&/ OZend_Dojo_View_Helper_DateTextBoxA&. OZend_Dojo_View_Helper_CustomDijitA*- WZend_Dojo_View_Helper_CurrencyTextBoxA&, OZend_Dojo_View_Helper_ContentPaneA#+ IZend_Dojo_View_Helper_ComboBoxA#* IZend_Dojo_View_Helper_CheckBoxA!) EZend_Dojo_View_Helper_ButtonA*( WZend_Dojo_View_Helper_BorderContainerA(' SZend_Dojo_View_Helper_AccordionPaneA-& ]Zend_Dojo_View_Helper_AccordionContainerA% =Zend_Dojo_View_ExceptionA$ )Zend_Dojo_FormA# 9Zend_Dojo_Form_SubFormA*" WZend_Dojo_Form_Element_VerticalSliderA-! ]Zend_Dojo_Form_Element_ValidationTextBoxA'  QZend_Dojo_Form_Element_TimeTextBoxA# IZend_Dojo_Form_Element_TextBoxA$ KZend_Dojo_Form_Element_TextareaA( SZend_Dojo_Form_Element_SubmitButtonA" GZend_Dojo_Form_Element_SliderA* WZend_Dojo_Form_Element_SimpleTextareaA' QZend_Dojo_Form_Element_RadioButtonA+ YZend_Dojo_Form_Element_PasswordTextBoxA   e  kJ1k1Y |@ U)



f
3
					o	T	:	 	{[:dL)fF#^E%e<c7	Y*W/                     "\ GZend_Form_Decorator_ExceptionA[ AZend_Form_Decorator_ErrorsA$Z KZend_Form_Decorator_DtDdWrapperA$Y KZend_Form_Decorator_DescriptionA X CZend_Form_Decorator_CaptchaA%W MZend_Form_Decorator_Captcha_WordA!V EZend_Form_Decorator_CallbackA!U EZend_Form_Decorator_AbstractAT #Zend_FilterA+S YZend_Filter_Word_UnderscoreToSeparatorA&R OZend_Filter_Word_UnderscoreToDashA+Q YZend_Filter_Word_UnderscoreToCamelCaseA*P WZend_Filter_Word_SeparatorToSeparatorA%O MZend_Filter_Word_SeparatorToDashA*N WZend_Filter_Word_SeparatorToCamelCaseA(M SZend_Filter_Word_Separator_AbstractA&L OZend_Filter_Word_DashToUnderscoreA%K MZend_Filter_Word_DashToSeparatorA%J MZend_Filter_Word_DashToCamelCaseA+I YZend_Filter_Word_CamelCaseToUnderscoreA*H WZend_Filter_Word_CamelCaseToSeparatorA%G MZend_Filter_Word_CamelCaseToDashAF 7Zend_Filter_StripTagsAE ?Zend_Filter_StripNewlinesAD 9Zend_Filter_StringTrimAC ?Zend_Filter_StringToUpperAB ?Zend_Filter_StringToLowerAA 5Zend_Filter_RealPathA@ ;Zend_Filter_PregReplaceA? -Zend_Filter_NullA&> OZend_Filter_NormalizedToLocalizedA&= OZend_Filter_LocalizedToNormalizedA< +Zend_Filter_IntA; /Zend_Filter_InputA: 7Zend_Filter_InflectorA9 =Zend_Filter_HtmlEntitiesA8 AZend_Filter_File_UpperCaseA7 ;Zend_Filter_File_RenameA6 AZend_Filter_File_LowerCaseA5 =Zend_Filter_File_EncryptA4 =Zend_Filter_File_DecryptA3 7Zend_Filter_ExceptionA2 3Zend_Filter_EncryptA 1 CZend_Filter_Encrypt_OpensslA0 AZend_Filter_Encrypt_McryptA/ +Zend_Filter_DirA. 1Zend_Filter_DigitsA- 3Zend_Filter_DecryptA, 9Zend_Filter_DecompressA+ 5Zend_Filter_CompressA* =Zend_Filter_Compress_ZipA) =Zend_Filter_Compress_TarA( =Zend_Filter_Compress_RarA' =Zend_Filter_Compress_LzfA& ;Zend_Filter_Compress_GzA*% WZend_Filter_Compress_CompressAbstractA$ =Zend_Filter_Compress_Bz2A# 5Zend_Filter_CallbackA" 3Zend_Filter_BooleanA! 5Zend_Filter_BaseNameA  /Zend_Filter_AlphaA /Zend_Filter_AlnumA 1Zend_File_TransferA! EZend_File_Transfer_ExceptionA$ KZend_File_Transfer_Adapter_HttpA( SZend_File_Transfer_Adapter_AbstractA Zend_FeedA -Zend_Feed_WriterA ;Zend_Feed_Writer_SourceA/ aZend_Feed_Writer_Renderer_RendererAbstractA' QZend_Feed_Writer_Renderer_Feed_RssA( SZend_Feed_Writer_Renderer_Feed_AtomA/ aZend_Feed_Writer_Renderer_Feed_Atom_SourceA5 mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstractA( SZend_Feed_Writer_Renderer_Entry_RssA) UZend_Feed_Writer_Renderer_Entry_AtomA1 eZend_Feed_Writer_Renderer_Entry_Atom_DeletedA 7Zend_Feed_Writer_FeedA' QZend_Feed_Writer_Feed_FeedAbstractA< {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_EntryA8 sZend_Feed_Writer_Extension_Threading_Renderer_EntryA4 kZend_Feed_Writer_Extension_Slash_Renderer_EntryA0
 cZend_Feed_Writer_Extension_RendererAbstractA4	 kZend_Feed_Writer_Extension_ITunes_Renderer_FeedA5 mZend_Feed_Writer_Extension_ITunes_Renderer_EntryA+ YZend_Feed_Writer_Extension_ITunes_FeedA, [Zend_Feed_Writer_Extension_ITunes_EntryA8 sZend_Feed_Writer_Extension_DublinCore_Renderer_FeedA9 uZend_Feed_Writer_Extension_DublinCore_Renderer_EntryA6 oZend_Feed_Writer_Extension_Content_Renderer_EntryA2 gZend_Feed_Writer_Extension_Atom_Renderer_FeedA6 oZend_Feed_Writer_Exception_InvalidMethodExceptionA  9Zend_Feed_Writer_EntryA =Zend_Feed_Writer_DeletedA~ 'Zend_Feed_RssA} -Zend_Feed_ReaderA| =Zend_Feed_Reader_FeedSetA"{ GZend_Feed_Reader_FeedAbstractAz ?Zend_Feed_Reader_Feed_RssAy AZend_Feed_Reader_Feed_AtomA&x OZend_Feed_Reader_Feed_Atom_SourceA   g  pI%jC${\;jJ)pVD



~
a
@
				o	H	 [5nF}X7wTz_6~M!hCm;             )C UZend_Gdata_Calendar_Extension_HiddenA(B SZend_Gdata_Calendar_Extension_ColorA.A _Zend_Gdata_Calendar_Extension_AccessLevelA#@ IZend_Gdata_Calendar_EventQueryA"? GZend_Gdata_Calendar_EventFeedA#> IZend_Gdata_Calendar_EventEntryA= -Zend_Gdata_BooksA!< EZend_Gdata_Books_VolumeQueryA ; CZend_Gdata_Books_VolumeFeedA!: EZend_Gdata_Books_VolumeEntryA+9 YZend_Gdata_Books_Extension_ViewabilityA-8 ]Zend_Gdata_Books_Extension_ThumbnailLinkA&7 OZend_Gdata_Books_Extension_ReviewA+6 YZend_Gdata_Books_Extension_PreviewLinkA(5 SZend_Gdata_Books_Extension_InfoLinkA-4 ]Zend_Gdata_Books_Extension_EmbeddabilityA)3 UZend_Gdata_Books_Extension_BooksLinkA-2 ]Zend_Gdata_Books_Extension_BooksCategoryA.1 _Zend_Gdata_Books_Extension_AnnotationLinkA$0 KZend_Gdata_Books_CollectionFeedA%/ MZend_Gdata_Books_CollectionEntryA. 1Zend_Gdata_AuthSubA- )Zend_Gdata_AppA$, KZend_Gdata_App_VersionExceptionA+ 3Zend_Gdata_App_UtilA#* IZend_Gdata_App_MediaFileSourceA) ?Zend_Gdata_App_MediaEntryA2( gZend_Gdata_App_LoggingHttpClientAdapterSocketA' AZend_Gdata_App_IOExceptionA,& [Zend_Gdata_App_InvalidArgumentExceptionA!% EZend_Gdata_App_HttpExceptionA$$ KZend_Gdata_App_FeedSourceParentA## IZend_Gdata_App_FeedEntryParentA" 3Zend_Gdata_App_FeedA! =Zend_Gdata_App_ExtensionA!  EZend_Gdata_App_Extension_UriA% MZend_Gdata_App_Extension_UpdatedA# IZend_Gdata_App_Extension_TitleA" GZend_Gdata_App_Extension_TextA% MZend_Gdata_App_Extension_SummaryA& OZend_Gdata_App_Extension_SubtitleA$ KZend_Gdata_App_Extension_SourceA$ KZend_Gdata_App_Extension_RightsA' QZend_Gdata_App_Extension_PublishedA$ KZend_Gdata_App_Extension_PersonA" GZend_Gdata_App_Extension_NameA" GZend_Gdata_App_Extension_LogoA" GZend_Gdata_App_Extension_LinkA  CZend_Gdata_App_Extension_IdA" GZend_Gdata_App_Extension_IconA' QZend_Gdata_App_Extension_GeneratorA# IZend_Gdata_App_Extension_EmailA% MZend_Gdata_App_Extension_ElementA$ KZend_Gdata_App_Extension_EditedA# IZend_Gdata_App_Extension_DraftA% MZend_Gdata_App_Extension_ControlA) UZend_Gdata_App_Extension_ContributorA%
 MZend_Gdata_App_Extension_ContentA&	 OZend_Gdata_App_Extension_CategoryA$ KZend_Gdata_App_Extension_AuthorA =Zend_Gdata_App_ExceptionA 5Zend_Gdata_App_EntryA, [Zend_Gdata_App_CaptchaRequiredExceptionA# IZend_Gdata_App_BaseMediaSourceA 3Zend_Gdata_App_BaseA* WZend_Gdata_App_BadMethodCallExceptionA! EZend_Gdata_App_AuthExceptionA  Zend_FormA /Zend_Form_SubFormA~ 3Zend_Form_ExceptionA} /Zend_Form_ElementA| ;Zend_Form_Element_XhtmlA{ AZend_Form_Element_TextareaAz 9Zend_Form_Element_TextAy =Zend_Form_Element_SubmitAx =Zend_Form_Element_SelectAw ;Zend_Form_Element_ResetAv ;Zend_Form_Element_RadioAu AZend_Form_Element_PasswordA"t GZend_Form_Element_MultiselectA$s KZend_Form_Element_MultiCheckboxAr ;Zend_Form_Element_MultiAq ;Zend_Form_Element_ImageAp =Zend_Form_Element_HiddenAo 9Zend_Form_Element_HashAn 9Zend_Form_Element_FileA m CZend_Form_Element_ExceptionAl AZend_Form_Element_CheckboxAk ?Zend_Form_Element_CaptchaAj =Zend_Form_Element_ButtonAi 9Zend_Form_DisplayGroupA#h IZend_Form_Decorator_ViewScriptA#g IZend_Form_Decorator_ViewHelperA f CZend_Form_Decorator_TooltipA(e SZend_Form_Decorator_PrepareElementsAd ?Zend_Form_Decorator_LabelAc ?Zend_Form_Decorator_ImageA b CZend_Form_Decorator_HtmlTagA#a IZend_Form_Decorator_FormErrorsA%` MZend_Form_Decorator_FormElementsA_ =Zend_Form_Decorator_FormA^ =Zend_Form_Decorator_FileA!] EZend_Form_Decorator_FieldsetA   a  w:sT*n:uFh=



i
B
					k	A	wCf5xW:"zJ|P$kG"gC$yZ)                               $ AZend_Gdata_Gbase_ItemEntryA# 7Zend_Gdata_Gbase_FeedA-" ]Zend_Gdata_Gbase_Extension_BaseAttributeA! 9Zend_Gdata_Gbase_EntryA  -Zend_Gdata_GappsA AZend_Gdata_Gapps_UserQueryA ?Zend_Gdata_Gapps_UserFeedA AZend_Gdata_Gapps_UserEntryA& OZend_Gdata_Gapps_ServiceExceptionA 9Zend_Gdata_Gapps_QueryA  CZend_Gdata_Gapps_OwnerQueryA AZend_Gdata_Gapps_OwnerFeedA  CZend_Gdata_Gapps_OwnerEntryA# IZend_Gdata_Gapps_NicknameQueryA" GZend_Gdata_Gapps_NicknameFeedA# IZend_Gdata_Gapps_NicknameEntryA! EZend_Gdata_Gapps_MemberQueryA  CZend_Gdata_Gapps_MemberFeedA! EZend_Gdata_Gapps_MemberEntryA  CZend_Gdata_Gapps_GroupQueryA AZend_Gdata_Gapps_GroupFeedA  CZend_Gdata_Gapps_GroupEntryA% MZend_Gdata_Gapps_Extension_QuotaA( SZend_Gdata_Gapps_Extension_PropertyA( SZend_Gdata_Gapps_Extension_NicknameA$ KZend_Gdata_Gapps_Extension_NameA%
 MZend_Gdata_Gapps_Extension_LoginA)	 UZend_Gdata_Gapps_Extension_EmailListA 9Zend_Gdata_Gapps_ErrorA- ]Zend_Gdata_Gapps_EmailListRecipientQueryA, [Zend_Gdata_Gapps_EmailListRecipientFeedA- ]Zend_Gdata_Gapps_EmailListRecipientEntryA$ KZend_Gdata_Gapps_EmailListQueryA# IZend_Gdata_Gapps_EmailListFeedA$ KZend_Gdata_Gapps_EmailListEntryA +Zend_Gdata_FeedA  5Zend_Gdata_ExtensionA =Zend_Gdata_Extension_WhoA~ AZend_Gdata_Extension_WhereA} ?Zend_Gdata_Extension_WhenA$| KZend_Gdata_Extension_VisibilityA&{ OZend_Gdata_Extension_TransparencyA"z GZend_Gdata_Extension_ReminderA-y ]Zend_Gdata_Extension_RecurrenceExceptionA$x KZend_Gdata_Extension_RecurrenceA w CZend_Gdata_Extension_RatingA'v QZend_Gdata_Extension_OriginalEventA0u cZend_Gdata_Extension_OpenSearchTotalResultsA.t _Zend_Gdata_Extension_OpenSearchStartIndexA0s cZend_Gdata_Extension_OpenSearchItemsPerPageA"r GZend_Gdata_Extension_FeedLinkA*q WZend_Gdata_Extension_ExtendedPropertyA%p MZend_Gdata_Extension_EventStatusA#o IZend_Gdata_Extension_EntryLinkA"n GZend_Gdata_Extension_CommentsA&m OZend_Gdata_Extension_AttendeeTypeA(l SZend_Gdata_Extension_AttendeeStatusAk +Zend_Gdata_ExifAj 5Zend_Gdata_Exif_FeedA#i IZend_Gdata_Exif_Extension_TimeA#h IZend_Gdata_Exif_Extension_TagsA$g KZend_Gdata_Exif_Extension_ModelA#f IZend_Gdata_Exif_Extension_MakeA"e GZend_Gdata_Exif_Extension_IsoA,d [Zend_Gdata_Exif_Extension_ImageUniqueIdA$c KZend_Gdata_Exif_Extension_FStopA*b WZend_Gdata_Exif_Extension_FocalLengthA$a KZend_Gdata_Exif_Extension_FlashA'` QZend_Gdata_Exif_Extension_ExposureA'_ QZend_Gdata_Exif_Extension_DistanceA^ 7Zend_Gdata_Exif_EntryA] -Zend_Gdata_EntryA\ 7Zend_Gdata_DublinCoreA*[ WZend_Gdata_DublinCore_Extension_TitleA,Z [Zend_Gdata_DublinCore_Extension_SubjectA+Y YZend_Gdata_DublinCore_Extension_RightsA.X _Zend_Gdata_DublinCore_Extension_PublisherA-W ]Zend_Gdata_DublinCore_Extension_LanguageA/V aZend_Gdata_DublinCore_Extension_IdentifierA+U YZend_Gdata_DublinCore_Extension_FormatA0T cZend_Gdata_DublinCore_Extension_DescriptionA)S UZend_Gdata_DublinCore_Extension_DateA,R [Zend_Gdata_DublinCore_Extension_CreatorAQ +Zend_Gdata_DocsAP 7Zend_Gdata_Docs_QueryA%O MZend_Gdata_Docs_DocumentListFeedA&N OZend_Gdata_Docs_DocumentListEntryAM 9Zend_Gdata_ClientLoginAL 3Zend_Gdata_CalendarA!K EZend_Gdata_Calendar_ListFeedA"J GZend_Gdata_Calendar_ListEntryA-I ]Zend_Gdata_Calendar_Extension_WebContentA+H YZend_Gdata_Calendar_Extension_TimezoneA9G uZend_Gdata_Calendar_Extension_SendEventNotificationsA+F YZend_Gdata_Calendar_Extension_SelectedA+E YZend_Gdata_Calendar_Extension_QuickAddA'D QZend_Gdata_Calendar_Extension_LinkA   _  vQ+vZCyY?S#`3


p
C
					g	K	&	_1rG g9xInB\8kAM#            & OZend_Gdata_Spreadsheets_ListQueryA% MZend_Gdata_Spreadsheets_ListFeedA& OZend_Gdata_Spreadsheets_ListEntryA/  aZend_Gdata_Spreadsheets_Extension_RowCountA- ]Zend_Gdata_Spreadsheets_Extension_CustomA/~ aZend_Gdata_Spreadsheets_Extension_ColCountA+} YZend_Gdata_Spreadsheets_Extension_CellA*| WZend_Gdata_Spreadsheets_DocumentQueryA&{ OZend_Gdata_Spreadsheets_CellQueryA%z MZend_Gdata_Spreadsheets_CellFeedA&y OZend_Gdata_Spreadsheets_CellEntryAx -Zend_Gdata_QueryAw /Zend_Gdata_PhotosA v CZend_Gdata_Photos_UserQueryAu AZend_Gdata_Photos_UserFeedA t CZend_Gdata_Photos_UserEntryAs AZend_Gdata_Photos_TagEntryA!r EZend_Gdata_Photos_PhotoQueryA q CZend_Gdata_Photos_PhotoFeedA!p EZend_Gdata_Photos_PhotoEntryA&o OZend_Gdata_Photos_Extension_WidthA'n QZend_Gdata_Photos_Extension_WeightA(m SZend_Gdata_Photos_Extension_VersionA%l MZend_Gdata_Photos_Extension_UserA*k WZend_Gdata_Photos_Extension_TimestampA*j WZend_Gdata_Photos_Extension_ThumbnailA%i MZend_Gdata_Photos_Extension_SizeA)h UZend_Gdata_Photos_Extension_RotationA+g YZend_Gdata_Photos_Extension_QuotaLimitA-f ]Zend_Gdata_Photos_Extension_QuotaCurrentA)e UZend_Gdata_Photos_Extension_PositionA(d SZend_Gdata_Photos_Extension_PhotoIdA3c iZend_Gdata_Photos_Extension_NumPhotosRemainingA*b WZend_Gdata_Photos_Extension_NumPhotosA)a UZend_Gdata_Photos_Extension_NicknameA%` MZend_Gdata_Photos_Extension_NameA2_ gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumA)^ UZend_Gdata_Photos_Extension_LocationA#] IZend_Gdata_Photos_Extension_IdA'\ QZend_Gdata_Photos_Extension_HeightA2[ gZend_Gdata_Photos_Extension_CommentingEnabledA-Z ]Zend_Gdata_Photos_Extension_CommentCountA'Y QZend_Gdata_Photos_Extension_ClientA)X UZend_Gdata_Photos_Extension_ChecksumA*W WZend_Gdata_Photos_Extension_BytesUsedA(V SZend_Gdata_Photos_Extension_AlbumIdA'U QZend_Gdata_Photos_Extension_AccessA#T IZend_Gdata_Photos_CommentEntryA!S EZend_Gdata_Photos_AlbumQueryA R CZend_Gdata_Photos_AlbumFeedA!Q EZend_Gdata_Photos_AlbumEntryAP 3Zend_Gdata_MimeFileAO ?Zend_Gdata_MimeBodyStringAN AZend_Gdata_MediaMimeStreamAM -Zend_Gdata_MediaAL 7Zend_Gdata_Media_FeedA*K WZend_Gdata_Media_Extension_MediaTitleA.J _Zend_Gdata_Media_Extension_MediaThumbnailA)I UZend_Gdata_Media_Extension_MediaTextA0H cZend_Gdata_Media_Extension_MediaRestrictionA+G YZend_Gdata_Media_Extension_MediaRatingA+F YZend_Gdata_Media_Extension_MediaPlayerA-E ]Zend_Gdata_Media_Extension_MediaKeywordsA)D UZend_Gdata_Media_Extension_MediaHashA*C WZend_Gdata_Media_Extension_MediaGroupA0B cZend_Gdata_Media_Extension_MediaDescriptionA+A YZend_Gdata_Media_Extension_MediaCreditA.@ _Zend_Gdata_Media_Extension_MediaCopyrightA,? [Zend_Gdata_Media_Extension_MediaContentA-> ]Zend_Gdata_Media_Extension_MediaCategoryA= 9Zend_Gdata_Media_EntryA< AZend_Gdata_Kind_EventEntryA; 7Zend_Gdata_HttpClientA*: WZend_Gdata_HttpAdapterStreamingSocketA)9 UZend_Gdata_HttpAdapterStreamingProxyA8 /Zend_Gdata_HealthA7 ;Zend_Gdata_Health_QueryA&6 OZend_Gdata_Health_ProfileListFeedA'5 QZend_Gdata_Health_ProfileListEntryA"4 GZend_Gdata_Health_ProfileFeedA#3 IZend_Gdata_Health_ProfileEntryA$2 KZend_Gdata_Health_Extension_CcrA1 )Zend_Gdata_GeoA0 3Zend_Gdata_Geo_FeedA$/ KZend_Gdata_Geo_Extension_GmlPosA&. OZend_Gdata_Geo_Extension_GmlPointA)- UZend_Gdata_Geo_Extension_GeoRssWhereA, 5Zend_Gdata_Geo_EntryA+ -Zend_Gdata_GbaseA"* GZend_Gdata_Gbase_SnippetQueryA!) EZend_Gdata_Gbase_SnippetFeedA"( GZend_Gdata_Gbase_SnippetEntryA' 9Zend_Gdata_Gbase_QueryA& AZend_Gdata_Gbase_ItemQueryA% ?Zend_Gdata_Gbase_ItemFeedA   ]  pB"Z3X)oB\+



s
F
				X	'l@`2g;[5kDiG,uS-X7              ` ?Zend_Http_UserAgent_ProbeA _ CZend_Http_UserAgent_OfflineA^ AZend_Http_UserAgent_MobileA] =Zend_Http_UserAgent_FeedA+\ YZend_Http_UserAgent_Features_ExceptionA2[ gZend_Http_UserAgent_Features_Adapter_WurflApiA3Z iZend_Http_UserAgent_Features_Adapter_TeraWurflA5Y mZend_Http_UserAgent_Features_Adapter_DeviceAtlasA"X GZend_Http_UserAgent_ExceptionAW ?Zend_Http_UserAgent_EmailA V CZend_Http_UserAgent_DesktopA U CZend_Http_UserAgent_ConsoleA T CZend_Http_UserAgent_CheckerAS ;Zend_Http_UserAgent_BotA'R QZend_Http_UserAgent_AbstractDeviceAQ 1Zend_Http_ResponseAP ?Zend_Http_Response_StreamAO 3Zend_Http_ExceptionAN 3Zend_Http_CookieJarAM -Zend_Http_CookieAL -Zend_Http_ClientAK AZend_Http_Client_ExceptionA"J GZend_Http_Client_Adapter_TestA$I KZend_Http_Client_Adapter_SocketA#H IZend_Http_Client_Adapter_ProxyA'G QZend_Http_Client_Adapter_ExceptionA"F GZend_Http_Client_Adapter_CurlAE !Zend_GdataAD 1Zend_Gdata_YouTubeA"C GZend_Gdata_YouTube_VideoQueryA!B EZend_Gdata_YouTube_VideoFeedA"A GZend_Gdata_YouTube_VideoEntryA(@ SZend_Gdata_YouTube_UserProfileEntryA(? SZend_Gdata_YouTube_SubscriptionFeedA)> UZend_Gdata_YouTube_SubscriptionEntryA)= UZend_Gdata_YouTube_PlaylistVideoFeedA*< WZend_Gdata_YouTube_PlaylistVideoEntryA(; SZend_Gdata_YouTube_PlaylistListFeedA): UZend_Gdata_YouTube_PlaylistListEntryA"9 GZend_Gdata_YouTube_MediaEntryA!8 EZend_Gdata_YouTube_InboxFeedA"7 GZend_Gdata_YouTube_InboxEntryA)6 UZend_Gdata_YouTube_Extension_VideoIdA*5 WZend_Gdata_YouTube_Extension_UsernameA*4 WZend_Gdata_YouTube_Extension_UploadedA'3 QZend_Gdata_YouTube_Extension_TokenA(2 SZend_Gdata_YouTube_Extension_StatusA,1 [Zend_Gdata_YouTube_Extension_StatisticsA'0 QZend_Gdata_YouTube_Extension_StateA(/ SZend_Gdata_YouTube_Extension_SchoolA-. ]Zend_Gdata_YouTube_Extension_ReleaseDateA.- _Zend_Gdata_YouTube_Extension_RelationshipA*, WZend_Gdata_YouTube_Extension_RecordedA&+ OZend_Gdata_YouTube_Extension_RacyA-* ]Zend_Gdata_YouTube_Extension_QueryStringA)) UZend_Gdata_YouTube_Extension_PrivateA*( WZend_Gdata_YouTube_Extension_PositionA/' aZend_Gdata_YouTube_Extension_PlaylistTitleA,& [Zend_Gdata_YouTube_Extension_PlaylistIdA,% [Zend_Gdata_YouTube_Extension_OccupationA)$ UZend_Gdata_YouTube_Extension_NoEmbedA'# QZend_Gdata_YouTube_Extension_MusicA(" SZend_Gdata_YouTube_Extension_MoviesA-! ]Zend_Gdata_YouTube_Extension_MediaRatingA,  [Zend_Gdata_YouTube_Extension_MediaGroupA- ]Zend_Gdata_YouTube_Extension_MediaCreditA. _Zend_Gdata_YouTube_Extension_MediaContentA* WZend_Gdata_YouTube_Extension_LocationA& OZend_Gdata_YouTube_Extension_LinkA* WZend_Gdata_YouTube_Extension_LastNameA* WZend_Gdata_YouTube_Extension_HometownA) UZend_Gdata_YouTube_Extension_HobbiesA( SZend_Gdata_YouTube_Extension_GenderA+ YZend_Gdata_YouTube_Extension_FirstNameA* WZend_Gdata_YouTube_Extension_DurationA- ]Zend_Gdata_YouTube_Extension_DescriptionA+ YZend_Gdata_YouTube_Extension_CountHintA) UZend_Gdata_YouTube_Extension_ControlA) UZend_Gdata_YouTube_Extension_CompanyA' QZend_Gdata_YouTube_Extension_BooksA% MZend_Gdata_YouTube_Extension_AgeA) UZend_Gdata_YouTube_Extension_AboutMeA# IZend_Gdata_YouTube_ContactFeedA$ KZend_Gdata_YouTube_ContactEntryA# IZend_Gdata_YouTube_CommentFeedA$ KZend_Gdata_YouTube_CommentEntryA$
 KZend_Gdata_YouTube_ActivityFeedA%	 MZend_Gdata_YouTube_ActivityEntryA ;Zend_Gdata_SpreadsheetsA* WZend_Gdata_Spreadsheets_WorksheetFeedA+ YZend_Gdata_Spreadsheets_WorksheetEntryA, [Zend_Gdata_Spreadsheets_SpreadsheetFeedA- ]Zend_Gdata_Spreadsheets_SpreadsheetEntryA   j  S2{IrU8O X.


h
0
					e	I	2	cAsUA%gE(mT5rJ+i/fG)mR/       J #Zend_LocaleAI -Zend_Locale_MathAH =Zend_Locale_Math_PhpMathAG AZend_Locale_Math_ExceptionAF 1Zend_Locale_FormatAE 7Zend_Locale_ExceptionAD -Zend_Locale_DataA!C EZend_Locale_Data_TranslationAB #Zend_LoaderAA =Zend_Loader_PluginLoaderA'@ QZend_Loader_PluginLoader_ExceptionA? 7Zend_Loader_ExceptionA> 9Zend_Loader_AutoloaderA$= KZend_Loader_Autoloader_ResourceA< Zend_LdapA; )Zend_Ldap_NodeA: 7Zend_Ldap_Node_SchemaA#9 IZend_Ldap_Node_Schema_OpenLdapA/8 aZend_Ldap_Node_Schema_ObjectClass_OpenLdapA67 oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectoryA6 AZend_Ldap_Node_Schema_ItemA15 eZend_Ldap_Node_Schema_AttributeType_OpenLdapA84 sZend_Ldap_Node_Schema_AttributeType_ActiveDirectoryA*3 WZend_Ldap_Node_Schema_ActiveDirectoryA2 9Zend_Ldap_Node_RootDseA$1 KZend_Ldap_Node_RootDse_OpenLdapA&0 OZend_Ldap_Node_RootDse_eDirectoryA+/ YZend_Ldap_Node_RootDse_ActiveDirectoryA. ?Zend_Ldap_Node_CollectionA$- KZend_Ldap_Node_ChildrenIteratorA, ;Zend_Ldap_Node_AbstractA+ 9Zend_Ldap_Ldif_EncoderA* -Zend_Ldap_FilterA) ;Zend_Ldap_Filter_StringA( 3Zend_Ldap_Filter_OrA' 5Zend_Ldap_Filter_NotA& 7Zend_Ldap_Filter_MaskA% =Zend_Ldap_Filter_LogicalA$ AZend_Ldap_Filter_ExceptionA# 5Zend_Ldap_Filter_AndA" ?Zend_Ldap_Filter_AbstractA! 3Zend_Ldap_ExceptionA  %Zend_Ldap_DnA 3Zend_Ldap_ConverterA" GZend_Ldap_Converter_ExceptionA 5Zend_Ldap_CollectionA* WZend_Ldap_Collection_Iterator_DefaultA 3Zend_Ldap_AttributeA #Zend_LayoutA 7Zend_Layout_ExceptionA) UZend_Layout_Controller_Plugin_LayoutA0 cZend_Layout_Controller_Action_Helper_LayoutA Zend_JsonA -Zend_Json_ServerA 5Zend_Json_Server_SmdA! EZend_Json_Server_Smd_ServiceA ?Zend_Json_Server_ResponseA# IZend_Json_Server_Response_HttpA =Zend_Json_Server_RequestA" GZend_Json_Server_Request_HttpA AZend_Json_Server_ExceptionA 9Zend_Json_Server_ErrorA 9Zend_Json_Server_CacheA )Zend_Json_ExprA
 3Zend_Json_ExceptionA	 /Zend_Json_EncoderA /Zend_Json_DecoderA 'Zend_InfoCardA- ]Zend_InfoCard_Xml_SecurityTokenReferenceA AZend_InfoCard_Xml_SecurityA) UZend_InfoCard_Xml_Security_TransformA4 kZend_InfoCard_Xml_Security_Transform_XmlExcC14NA3 iZend_InfoCard_Xml_Security_Transform_ExceptionA< {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignatureA)  UZend_InfoCard_Xml_Security_ExceptionA ?Zend_InfoCard_Xml_KeyInfoA&~ OZend_InfoCard_Xml_KeyInfo_XmlDSigA&} OZend_InfoCard_Xml_KeyInfo_DefaultA'| QZend_InfoCard_Xml_KeyInfo_AbstractA { CZend_InfoCard_Xml_ExceptionA#z IZend_InfoCard_Xml_EncryptedKeyA$y KZend_InfoCard_Xml_EncryptedDataA+x YZend_InfoCard_Xml_EncryptedData_XmlEncA-w ]Zend_InfoCard_Xml_EncryptedData_AbstractAv ?Zend_InfoCard_Xml_ElementA u CZend_InfoCard_Xml_AssertionA%t MZend_InfoCard_Xml_Assertion_SamlAs ;Zend_InfoCard_ExceptionA%r MZend_InfoCard_Exception_AbstractAq 5Zend_InfoCard_ClaimsAp 5Zend_InfoCard_CipherA5o mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcA5n mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcA4m kZend_InfoCard_Cipher_Symmetric_Adapter_AbstractA)l UZend_InfoCard_Cipher_Pki_Adapter_RsaA.k _Zend_InfoCard_Cipher_Pki_Adapter_AbstractA#j IZend_InfoCard_Cipher_ExceptionA$i KZend_InfoCard_Adapter_ExceptionA"h GZend_InfoCard_Adapter_DefaultAg 3Zend_Http_UserAgentA"f GZend_Http_UserAgent_ValidatorAe =Zend_Http_UserAgent_TextA(d SZend_Http_UserAgent_Storage_SessionA.c _Zend_Http_UserAgent_Storage_NonPersistentA*b WZend_Http_UserAgent_Storage_ExceptionAa =Zend_Http_UserAgent_SpamA   x b>~aD'y_C,vK  jI*




`
:
						\	9	oI'mR8y]> gH,Z1kM1iG&c?                                  !B EZend_Oauth_Http_RequestTokenA A CZend_Oauth_Http_AccessTokenA@ 5Zend_Oauth_ExceptionA? 3Zend_Oauth_ConsumerA> /Zend_Oauth_ConfigA= /Zend_Oauth_ClientA< +Zend_NavigationA; 5Zend_Navigation_PageA: =Zend_Navigation_Page_UriA9 =Zend_Navigation_Page_MvcA8 ?Zend_Navigation_ExceptionA7 ?Zend_Navigation_ContainerA6 Zend_MimeA5 )Zend_Mime_PartA4 /Zend_Mime_MessageA3 3Zend_Mime_ExceptionA2 -Zend_Mime_DecodeA1 #Zend_MemoryA0 /Zend_Memory_ValueA/ 3Zend_Memory_ManagerA. 7Zend_Memory_ExceptionA- 7Zend_Memory_ContainerA", GZend_Memory_Container_MovableA!+ EZend_Memory_Container_LockedA!* EZend_Memory_AccessControllerA) 3Zend_Measure_WeightA( 3Zend_Measure_VolumeA%' MZend_Measure_Viscosity_KinematicA#& IZend_Measure_Viscosity_DynamicA% 3Zend_Measure_TorqueA$ /Zend_Measure_TimeA# =Zend_Measure_TemperatureA" 1Zend_Measure_SpeedA! 7Zend_Measure_PressureA  1Zend_Measure_PowerA 3Zend_Measure_NumberA 9Zend_Measure_LightnessA 3Zend_Measure_LengthA ?Zend_Measure_IlluminationA 9Zend_Measure_FrequencyA 1Zend_Measure_ForceA =Zend_Measure_Flow_VolumeA 9Zend_Measure_Flow_MoleA 9Zend_Measure_Flow_MassA 9Zend_Measure_ExceptionA 3Zend_Measure_EnergyA 5Zend_Measure_DensityA 5Zend_Measure_CurrentA  CZend_Measure_Cooking_WeightA  CZend_Measure_Cooking_VolumeA =Zend_Measure_CapacitanceA 3Zend_Measure_BinaryA /Zend_Measure_AreaA 1Zend_Measure_AngleA ?Zend_Measure_AccelerationA 7Zend_Measure_AbstractA
 #Zend_MarkupA	 7Zend_Markup_TokenListA /Zend_Markup_TokenA* WZend_Markup_Renderer_RendererAbstractA ?Zend_Markup_Renderer_HtmlA" GZend_Markup_Renderer_Html_UrlA# IZend_Markup_Renderer_Html_ListA" GZend_Markup_Renderer_Html_ImgA+ YZend_Markup_Renderer_Html_HtmlAbstractA# IZend_Markup_Renderer_Html_CodeA#  IZend_Markup_Renderer_ExceptionA AZend_Markup_Parser_TextileA!~ EZend_Markup_Parser_ExceptionA} ?Zend_Markup_Parser_BbcodeA| 7Zend_Markup_ExceptionA{ Zend_MailAz =Zend_Mail_Transport_SmtpA!y EZend_Mail_Transport_SendmailAx =Zend_Mail_Transport_FileA"w GZend_Mail_Transport_ExceptionA!v EZend_Mail_Transport_AbstractAu /Zend_Mail_StorageA't QZend_Mail_Storage_Writable_MaildirAs 9Zend_Mail_Storage_Pop3Ar 9Zend_Mail_Storage_MboxAq ?Zend_Mail_Storage_MaildirAp 9Zend_Mail_Storage_ImapAo =Zend_Mail_Storage_FolderA"n GZend_Mail_Storage_Folder_MboxA%m MZend_Mail_Storage_Folder_MaildirA l CZend_Mail_Storage_ExceptionAk AZend_Mail_Storage_AbstractAj ;Zend_Mail_Protocol_SmtpA'i QZend_Mail_Protocol_Smtp_Auth_PlainA'h QZend_Mail_Protocol_Smtp_Auth_LoginA)g UZend_Mail_Protocol_Smtp_Auth_Crammd5Af ;Zend_Mail_Protocol_Pop3Ae ;Zend_Mail_Protocol_ImapA!d EZend_Mail_Protocol_ExceptionA c CZend_Mail_Protocol_AbstractAb )Zend_Mail_PartAa 3Zend_Mail_Part_FileA` /Zend_Mail_MessageA_ 9Zend_Mail_Message_FileA^ 3Zend_Mail_ExceptionA] Zend_LogA \ CZend_Log_Writer_ZendMonitorA[ 9Zend_Log_Writer_SyslogAZ 9Zend_Log_Writer_StreamAY 5Zend_Log_Writer_NullAX 5Zend_Log_Writer_MockAW 5Zend_Log_Writer_MailAV ;Zend_Log_Writer_FirebugAU 1Zend_Log_Writer_DbAT =Zend_Log_Writer_AbstractAS 9Zend_Log_Formatter_XmlAR ?Zend_Log_Formatter_SimpleAQ AZend_Log_Formatter_FirebugA P CZend_Log_Formatter_AbstractAO =Zend_Log_Filter_SuppressAN =Zend_Log_Filter_PriorityAM ;Zend_Log_Filter_MessageAL =Zend_Log_Filter_AbstractAK 1Zend_Log_ExceptionA   n |U4mCxS)\4i;





w
Z
7
					u	Q	3	T3pM({d>V,z[:rG{U5vT8                                         '0 QZend_Pdf_FileParserDataSource_FileA/ 3Zend_Pdf_FileParserA. ?Zend_Pdf_FileParser_ImageA"- GZend_Pdf_FileParser_Image_PngA, =Zend_Pdf_FileParser_FontA&+ OZend_Pdf_FileParser_Font_OpenTypeA/* aZend_Pdf_FileParser_Font_OpenType_TrueTypeA) 1Zend_Pdf_ExceptionA( ;Zend_Pdf_ElementFactoryA"' GZend_Pdf_ElementFactory_ProxyA& -Zend_Pdf_ElementA% ;Zend_Pdf_Element_StringA#$ IZend_Pdf_Element_String_BinaryA# ;Zend_Pdf_Element_StreamA" AZend_Pdf_Element_ReferenceA%! MZend_Pdf_Element_Reference_TableA'  QZend_Pdf_Element_Reference_ContextA ;Zend_Pdf_Element_ObjectA# IZend_Pdf_Element_Object_StreamA =Zend_Pdf_Element_NumericA 7Zend_Pdf_Element_NullA 7Zend_Pdf_Element_NameA  CZend_Pdf_Element_DictionaryA =Zend_Pdf_Element_BooleanA 9Zend_Pdf_Element_ArrayA 5Zend_Pdf_DestinationA ?Zend_Pdf_Destination_ZoomA! EZend_Pdf_Destination_UnknownA AZend_Pdf_Destination_NamedA' QZend_Pdf_Destination_FitVerticallyA& OZend_Pdf_Destination_FitRectangleA) UZend_Pdf_Destination_FitHorizontallyA2 gZend_Pdf_Destination_FitBoundingBoxVerticallyA4 kZend_Pdf_Destination_FitBoundingBoxHorizontallyA( SZend_Pdf_Destination_FitBoundingBoxA =Zend_Pdf_Destination_FitA" GZend_Pdf_Destination_ExplicitA )Zend_Pdf_ColorA
 1Zend_Pdf_Color_RgbA	 3Zend_Pdf_Color_HtmlA =Zend_Pdf_Color_GrayScaleA 3Zend_Pdf_Color_CmykA 'Zend_Pdf_CmapA AZend_Pdf_Cmap_TrimmedTableA! EZend_Pdf_Cmap_SegmentToDeltaA AZend_Pdf_Cmap_ByteEncodingA& OZend_Pdf_Cmap_ByteEncoding_StaticA +Zend_Pdf_CanvasA  =Zend_Pdf_Canvas_AbstractA 3Zend_Pdf_AnnotationA~ =Zend_Pdf_Annotation_TextA} AZend_Pdf_Annotation_MarkupA| =Zend_Pdf_Annotation_LinkA'{ QZend_Pdf_Annotation_FileAttachmentAz +Zend_Pdf_ActionAy 3Zend_Pdf_Action_URIAx ;Zend_Pdf_Action_UnknownAw 7Zend_Pdf_Action_TransAv 9Zend_Pdf_Action_ThreadAu AZend_Pdf_Action_SubmitFormAt 7Zend_Pdf_Action_SoundA s CZend_Pdf_Action_SetOCGStateAr ?Zend_Pdf_Action_ResetFormAq ?Zend_Pdf_Action_RenditionAp 7Zend_Pdf_Action_NamedAo 7Zend_Pdf_Action_MovieAn 9Zend_Pdf_Action_LaunchAm AZend_Pdf_Action_JavaScriptAl AZend_Pdf_Action_ImportDataAk 5Zend_Pdf_Action_HideAj 7Zend_Pdf_Action_GoToRAi 7Zend_Pdf_Action_GoToEAh AZend_Pdf_Action_GoTo3DViewAg 5Zend_Pdf_Action_GoToAf )Zend_PaginatorA-e ]Zend_Paginator_SerializableLimitIteratorA*d WZend_Paginator_ScrollingStyle_SlidingA*c WZend_Paginator_ScrollingStyle_JumpingA*b WZend_Paginator_ScrollingStyle_ElasticA&a OZend_Paginator_ScrollingStyle_AllA` =Zend_Paginator_ExceptionA _ CZend_Paginator_Adapter_NullA$^ KZend_Paginator_Adapter_IteratorA)] UZend_Paginator_Adapter_DbTableSelectA$\ KZend_Paginator_Adapter_DbSelectA![ EZend_Paginator_Adapter_ArrayAZ #Zend_OpenIdAY 5Zend_OpenId_ProviderAX ?Zend_OpenId_Provider_UserA&W OZend_OpenId_Provider_User_SessionA!V EZend_OpenId_Provider_StorageA&U OZend_OpenId_Provider_Storage_FileAT 7Zend_OpenId_ExtensionAS AZend_OpenId_Extension_SregAR 7Zend_OpenId_ExceptionAQ 5Zend_OpenId_ConsumerA!P EZend_OpenId_Consumer_StorageA&O OZend_OpenId_Consumer_Storage_FileAN !Zend_OauthAM -Zend_Oauth_TokenAL =Zend_Oauth_Token_RequestA'K QZend_Oauth_Token_AuthorizedRequestAJ ;Zend_Oauth_Token_AccessA+I YZend_Oauth_Signature_SignatureAbstractAH =Zend_Oauth_Signature_RsaA#G IZend_Oauth_Signature_PlaintextAF ?Zend_Oauth_Signature_HmacAE +Zend_Oauth_HttpAD ;Zend_Oauth_Http_UtilityA&C OZend_Oauth_Http_UserAuthorizationA   f  lBlL3R+q:F	


N
			a	%d?sU>&k@oD#vJ-	|]J,mK.rH(     3Zend_Rest_ExceptionA 5Zend_Rest_ControllerA -Zend_Rest_ClientA ;Zend_Rest_Client_ResultA& OZend_Rest_Client_Result_ExceptionA AZend_Rest_Client_ExceptionA 'Zend_RegistryA =Zend_Reflection_PropertyA ?Zend_Reflection_ParameterA 9Zend_Reflection_MethodA =Zend_Reflection_FunctionA 5Zend_Reflection_FileA
 ?Zend_Reflection_ExtensionA	 ?Zend_Reflection_ExceptionA =Zend_Reflection_DocblockA! EZend_Reflection_Docblock_TagA( SZend_Reflection_Docblock_Tag_ReturnA' QZend_Reflection_Docblock_Tag_ParamA 7Zend_Reflection_ClassA !Zend_QueueA 9Zend_Queue_Stomp_FrameA ;Zend_Queue_Stomp_ClientA'  QZend_Queue_Stomp_Client_ConnectionA 1Zend_Queue_MessageA#~ IZend_Queue_Message_PlatformJobA } CZend_Queue_Message_IteratorA| 5Zend_Queue_ExceptionA({ SZend_Queue_Adapter_PlatformJobQueueAz ;Zend_Queue_Adapter_NullA!y EZend_Queue_Adapter_MemcacheqAx 7Zend_Queue_Adapter_DbA w CZend_Queue_Adapter_Db_QueueA"v GZend_Queue_Adapter_Db_MessageAu =Zend_Queue_Adapter_ArrayA't QZend_Queue_Adapter_AdapterAbstractA s CZend_Queue_Adapter_ActivemqAr -Zend_ProgressBarAq AZend_ProgressBar_ExceptionAp =Zend_ProgressBar_AdapterA$o KZend_ProgressBar_Adapter_JsPushA$n KZend_ProgressBar_Adapter_JsPullA'm QZend_ProgressBar_Adapter_ExceptionA%l MZend_ProgressBar_Adapter_ConsoleAk Zend_PdfA!j EZend_Pdf_UpdateInfoContainerAi -Zend_Pdf_TrailerAh ;Zend_Pdf_Trailer_KeeperAg AZend_Pdf_Trailer_GeneratorAf +Zend_Pdf_TargetAe )Zend_Pdf_StyleAd 7Zend_Pdf_StringParserAc /Zend_Pdf_ResourceAb ?Zend_Pdf_Resource_UnifiedA#a IZend_Pdf_Resource_ImageFactoryA` ;Zend_Pdf_Resource_ImageA!_ EZend_Pdf_Resource_Image_TiffA ^ CZend_Pdf_Resource_Image_PngA!] EZend_Pdf_Resource_Image_JpegA$\ KZend_Pdf_Resource_GraphicsStateA[ 9Zend_Pdf_Resource_FontA!Z EZend_Pdf_Resource_Font_Type0A"Y GZend_Pdf_Resource_Font_SimpleA+X YZend_Pdf_Resource_Font_Simple_StandardA8W sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsA6V oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanA7U qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicA;T yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicA5S mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldA2R gZend_Pdf_Resource_Font_Simple_Standard_SymbolA<Q {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueAAP Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliqueA9O uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldA5N mZend_Pdf_Resource_Font_Simple_Standard_HelveticaA:M wZend_Pdf_Resource_Font_Simple_Standard_CourierObliqueA>L Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliqueA7K qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldA3J iZend_Pdf_Resource_Font_Simple_Standard_CourierA)I UZend_Pdf_Resource_Font_Simple_ParsedA2H gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypeA*G WZend_Pdf_Resource_Font_FontDescriptorA%F MZend_Pdf_Resource_Font_ExtractedA#E IZend_Pdf_Resource_Font_CidFontA,D [Zend_Pdf_Resource_Font_CidFont_TrueTypeA C CZend_Pdf_Resource_ExtractorA$B KZend_Pdf_Resource_ContentStreamA3A iZend_Pdf_RecursivelyIteratableObjectsContainerA@ +Zend_Pdf_ParserA? 'Zend_Pdf_PageA> -Zend_Pdf_OutlineA= ;Zend_Pdf_Outline_LoadedA< =Zend_Pdf_Outline_CreatedA; /Zend_Pdf_NameTreeA: )Zend_Pdf_ImageA9 'Zend_Pdf_FontA8 ?Zend_Pdf_Filter_RunLengthA 7 CZend_Pdf_Filter_CompressionA$6 KZend_Pdf_Filter_Compression_LzwA&5 OZend_Pdf_Filter_Compression_FlateA4 =Zend_Pdf_Filter_AsciiHexA3 ;Zend_Pdf_Filter_Ascii85A"2 GZend_Pdf_FileParserDataSourceA)1 UZend_Pdf_FileParserDataSource_StringA   Q  D8vBs8wN"




f
G
"				l	=nDeDrDq4h7sFT'e2   %g MZend_Search_Lucene_Search_WeightA*f WZend_Search_Lucene_Search_Weight_TermA,e [Zend_Search_Lucene_Search_Weight_PhraseA/d aZend_Search_Lucene_Search_Weight_MultiTermA+c YZend_Search_Lucene_Search_Weight_EmptyA-b ]Zend_Search_Lucene_Search_Weight_BooleanA)a UZend_Search_Lucene_Search_SimilarityA1` eZend_Search_Lucene_Search_Similarity_DefaultA)_ UZend_Search_Lucene_Search_QueryTokenA3^ iZend_Search_Lucene_Search_QueryParserExceptionA1] eZend_Search_Lucene_Search_QueryParserContextA*\ WZend_Search_Lucene_Search_QueryParserA)[ UZend_Search_Lucene_Search_QueryLexerA'Z QZend_Search_Lucene_Search_QueryHitA)Y UZend_Search_Lucene_Search_QueryEntryA.X _Zend_Search_Lucene_Search_QueryEntry_TermA2W gZend_Search_Lucene_Search_QueryEntry_SubqueryA0V cZend_Search_Lucene_Search_QueryEntry_PhraseA$U KZend_Search_Lucene_Search_QueryA-T ]Zend_Search_Lucene_Search_Query_WildcardA)S UZend_Search_Lucene_Search_Query_TermA*R WZend_Search_Lucene_Search_Query_RangeA2Q gZend_Search_Lucene_Search_Query_PreprocessingA7P qZend_Search_Lucene_Search_Query_Preprocessing_TermA9O uZend_Search_Lucene_Search_Query_Preprocessing_PhraseA8N sZend_Search_Lucene_Search_Query_Preprocessing_FuzzyA+M YZend_Search_Lucene_Search_Query_PhraseA.L _Zend_Search_Lucene_Search_Query_MultiTermA2K gZend_Search_Lucene_Search_Query_InsignificantA*J WZend_Search_Lucene_Search_Query_FuzzyA*I WZend_Search_Lucene_Search_Query_EmptyA,H [Zend_Search_Lucene_Search_Query_BooleanA2G gZend_Search_Lucene_Search_Highlighter_DefaultA:F wZend_Search_Lucene_Search_BooleanExpressionRecognizerAE =Zend_Search_Lucene_ProxyA%D MZend_Search_Lucene_PriorityQueueA/C aZend_Search_Lucene_Interface_MultiSearcherA#B IZend_Search_Lucene_LockManagerA$A KZend_Search_Lucene_Index_WriterA0@ cZend_Search_Lucene_Index_TermsPriorityQueueA&? OZend_Search_Lucene_Index_TermInfoA"> GZend_Search_Lucene_Index_TermA+= YZend_Search_Lucene_Index_SegmentWriterA8< sZend_Search_Lucene_Index_SegmentWriter_StreamWriterA:; wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterA+: YZend_Search_Lucene_Index_SegmentMergerA)9 UZend_Search_Lucene_Index_SegmentInfoA'8 QZend_Search_Lucene_Index_FieldInfoA(7 SZend_Search_Lucene_Index_DocsFilterA.6 _Zend_Search_Lucene_Index_DictionaryLoaderA!5 EZend_Search_Lucene_FSMActionA4 9Zend_Search_Lucene_FSMA3 =Zend_Search_Lucene_FieldA!2 EZend_Search_Lucene_ExceptionA 1 CZend_Search_Lucene_DocumentA%0 MZend_Search_Lucene_Document_XlsxA%/ MZend_Search_Lucene_Document_PptxA(. SZend_Search_Lucene_Document_OpenXmlA%- MZend_Search_Lucene_Document_HtmlA*, WZend_Search_Lucene_Document_ExceptionA%+ MZend_Search_Lucene_Document_DocxA,* [Zend_Search_Lucene_Analysis_TokenFilterA6) oZend_Search_Lucene_Analysis_TokenFilter_StopWordsA7( qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsA:' wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8A6& oZend_Search_Lucene_Analysis_TokenFilter_LowerCaseA&% OZend_Search_Lucene_Analysis_TokenA)$ UZend_Search_Lucene_Analysis_AnalyzerA0# cZend_Search_Lucene_Analysis_Analyzer_CommonA8" sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumAI! Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitiveA5  mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8AF Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitiveA8 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumAI Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitiveA5 mZend_Search_Lucene_Analysis_Analyzer_Common_TextAF Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiveA 7Zend_Search_ExceptionA -Zend_Rest_ServerA AZend_Rest_Server_ExceptionA +Zend_Rest_RouteA   ^ h9mHxS1[6jD 




f
I
$				k	=	a=`7pDjH"Z+dH$f!{J                                                               CE Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccountA-D ]Zend_Service_DeveloperGarden_Client_SoapA2C gZend_Service_DeveloperGarden_Client_ExceptionA7B qZend_Service_DeveloperGarden_Client_ClientAbstractA1A eZend_Service_DeveloperGarden_BaseUserServiceAA@ Zend_Service_DeveloperGarden_BaseUserService_AccountBalanceA? 9Zend_Service_DeliciousA&> OZend_Service_Delicious_SimplePostA$= KZend_Service_Delicious_PostListA < CZend_Service_Delicious_PostA%; MZend_Service_Delicious_ExceptionA : CZend_Service_AudioscrobblerA9 3Zend_Service_AmazonA8 ;Zend_Service_Amazon_SqsA&7 OZend_Service_Amazon_Sqs_ExceptionA!6 EZend_Service_Amazon_SimpleDbA*5 WZend_Service_Amazon_SimpleDb_ResponseA&4 OZend_Service_Amazon_SimpleDb_PageA+3 YZend_Service_Amazon_SimpleDb_ExceptionA+2 YZend_Service_Amazon_SimpleDb_AttributeA'1 QZend_Service_Amazon_SimilarProductA0 9Zend_Service_Amazon_S3A"/ GZend_Service_Amazon_S3_StreamA%. MZend_Service_Amazon_S3_ExceptionA"- GZend_Service_Amazon_ResultSetA, ?Zend_Service_Amazon_QueryA!+ EZend_Service_Amazon_OfferSetA* ?Zend_Service_Amazon_OfferA&) OZend_Service_Amazon_ListmaniaListA( =Zend_Service_Amazon_ItemA' ?Zend_Service_Amazon_ImageA"& GZend_Service_Amazon_ExceptionA(% SZend_Service_Amazon_EditorialReviewA$ ;Zend_Service_Amazon_Ec2A+# YZend_Service_Amazon_Ec2_SecuritygroupsA%" MZend_Service_Amazon_Ec2_ResponseA#! IZend_Service_Amazon_Ec2_RegionA$  KZend_Service_Amazon_Ec2_KeypairA% MZend_Service_Amazon_Ec2_InstanceA- ]Zend_Service_Amazon_Ec2_Instance_WindowsA. _Zend_Service_Amazon_Ec2_Instance_ReservedA" GZend_Service_Amazon_Ec2_ImageA& OZend_Service_Amazon_Ec2_ExceptionA& OZend_Service_Amazon_Ec2_ElasticipA  CZend_Service_Amazon_Ec2_EbsA' QZend_Service_Amazon_Ec2_CloudWatchA. _Zend_Service_Amazon_Ec2_AvailabilityzonesA% MZend_Service_Amazon_Ec2_AbstractA' QZend_Service_Amazon_CustomerReviewA' QZend_Service_Amazon_AuthenticationA* WZend_Service_Amazon_Authentication_V2A* WZend_Service_Amazon_Authentication_V1A* WZend_Service_Amazon_Authentication_S3A1 eZend_Service_Amazon_Authentication_ExceptionA$ KZend_Service_Amazon_AccessoriesA! EZend_Service_Amazon_AbstractA 5Zend_Service_AkismetA 7Zend_Service_AbstractA 9Zend_Server_ReflectionA'
 QZend_Server_Reflection_ReturnValueA%	 MZend_Server_Reflection_PrototypeA% MZend_Server_Reflection_ParameterA  CZend_Server_Reflection_NodeA" GZend_Server_Reflection_MethodA$ KZend_Server_Reflection_FunctionA- ]Zend_Server_Reflection_Function_AbstractA% MZend_Server_Reflection_ExceptionA! EZend_Server_Reflection_ClassA! EZend_Server_Method_PrototypeA!  EZend_Server_Method_ParameterA" GZend_Server_Method_DefinitionA ~ CZend_Server_Method_CallbackA} 7Zend_Server_ExceptionA| 9Zend_Server_DefinitionA{ /Zend_Server_CacheAz 5Zend_Server_AbstractAy +Zend_SerializerAx ?Zend_Serializer_ExceptionA!w EZend_Serializer_Adapter_WddxA)v UZend_Serializer_Adapter_PythonPickleA)u UZend_Serializer_Adapter_PhpSerializeA$t KZend_Serializer_Adapter_PhpCodeA!s EZend_Serializer_Adapter_JsonA%r MZend_Serializer_Adapter_IgbinaryA!q EZend_Serializer_Adapter_Amf3A!p EZend_Serializer_Adapter_Amf0A,o [Zend_Serializer_Adapter_AdapterAbstractAn 1Zend_Search_LuceneA0m cZend_Search_Lucene_TermStreamsPriorityQueueA$l KZend_Search_Lucene_Storage_FileA+k YZend_Search_Lucene_Storage_File_MemoryA/j aZend_Search_Lucene_Storage_File_FilesystemA)i UZend_Search_Lucene_Storage_DirectoryA4h kZend_Search_Lucene_Storage_Directory_FilesystemA   4  r4f2i.mf

_
			S;:ubx/c&Im,                                            Cy Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCallAGx Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequencedA=w }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallAAv Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatusAAu Zend_Service_DeveloperGarden_Request_SmsValidation_ValidateANt Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeywordACs Zend_Service_DeveloperGarden_Request_SmsValidation_InvalidateALr Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbersABq Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstractA9p uZend_Service_DeveloperGarden_Request_SendSms_SendSMSA>o Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMSA9n uZend_Service_DeveloperGarden_Request_RequestAbstractAIm Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequestAEl Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequestA3k iZend_Service_DeveloperGarden_Request_ExceptionARj %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequestAYi 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequestAdh IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequestAQg #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequestARf %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequestAYe 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequestAdd IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequestAQc #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequestAOb Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequestAUa +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequestAU` +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequestAV_ -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequestAa^ CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequestAZ] 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequestAT\ )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequestAR[ %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequestAYZ 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequestAQY #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequestAQX #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequestAaW CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequestANV Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformationALU Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalanceAJT Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPoolA-S ]Zend_Service_DeveloperGarden_LocalSearchA>R Zend_Service_DeveloperGarden_LocalSearch_SearchParametersA7Q qZend_Service_DeveloperGarden_LocalSearch_ExceptionA,P [Zend_Service_DeveloperGarden_IpLocationA6O oZend_Service_DeveloperGarden_IpLocation_IpAddressA+N YZend_Service_DeveloperGarden_ExceptionA,M [Zend_Service_DeveloperGarden_CredentialA0L cZend_Service_DeveloperGarden_ConferenceCallACK Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatusACJ Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetailA<I {Zend_Service_DeveloperGarden_ConferenceCall_ParticipantA:H wZend_Service_DeveloperGarden_ConferenceCall_ExceptionADG 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceScheduleABF Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetailA   - j {$p	PM0

|
"		d	 .r]P0`(I   j        A& Zend_Service_DeveloperGarden_Response_IpLocation_RegionTypeAK% Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseTypeAG$ Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseAL# Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationTypeAI" Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesTypeA>! Zend_Service_DeveloperGarden_Response_IpLocation_CityTypeA4  kZend_Service_DeveloperGarden_Response_ExceptionAT )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponseA[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponseAf MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponseAS 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponseAT )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponseA[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponseAf MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponseAS 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponseAU +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseTypeAQ #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseA[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseTypeAW /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseA[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseTypeAW /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseA\ 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseTypeAX 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseAg OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseTypeAc GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseA` AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseTypeA\ 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseAZ 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseTypeAV
 -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseAX	 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseTypeAT )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseA_ ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseTypeA[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseAW /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseTypeAS 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseAQ #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstractAS 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponseAJ Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseTypeAg  OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseTypeAc GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseAW~ /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponseAU} +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponseAS| 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponseA3{ iZend_Service_DeveloperGarden_Response_BaseTypeAJz Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstractA   G  ^}$JH\

o
			X	+WwNvE['Z,pAhL$\5                                        .m _Zend_Service_ReCaptcha_MailHide_ExceptionA%l MZend_Service_ReCaptcha_ExceptionAk 7Zend_Service_NirvanixA#j IZend_Service_Nirvanix_ResponseA)i UZend_Service_Nirvanix_Namespace_ImfsA)h UZend_Service_Nirvanix_Namespace_BaseA$g KZend_Service_Nirvanix_ExceptionAf 7Zend_Service_LiveDocxA$e KZend_Service_LiveDocx_MailMergeA$d KZend_Service_LiveDocx_ExceptionAc 3Zend_Service_FlickrA"b GZend_Service_Flickr_ResultSetAa AZend_Service_Flickr_ResultA` ?Zend_Service_Flickr_ImageA_ 9Zend_Service_ExceptionA^ ?Zend_Service_Ebay_FindingA)] UZend_Service_Ebay_Finding_StorefrontA+\ YZend_Service_Ebay_Finding_ShippingInfoA+[ YZend_Service_Ebay_Finding_Set_AbstractA,Z [Zend_Service_Ebay_Finding_SellingStatusA)Y UZend_Service_Ebay_Finding_SellerInfoA,X [Zend_Service_Ebay_Finding_Search_ResultA*W WZend_Service_Ebay_Finding_Search_ItemA.V _Zend_Service_Ebay_Finding_Search_Item_SetA0U cZend_Service_Ebay_Finding_Response_KeywordsA-T ]Zend_Service_Ebay_Finding_Response_ItemsA2S gZend_Service_Ebay_Finding_Response_HistogramsA0R cZend_Service_Ebay_Finding_Response_AbstractA/Q aZend_Service_Ebay_Finding_PaginationOutputA*P WZend_Service_Ebay_Finding_ListingInfoA(O SZend_Service_Ebay_Finding_ExceptionA,N [Zend_Service_Ebay_Finding_Error_MessageA)M UZend_Service_Ebay_Finding_Error_DataA-L ]Zend_Service_Ebay_Finding_Error_Data_SetA'K QZend_Service_Ebay_Finding_CategoryA1J eZend_Service_Ebay_Finding_Category_HistogramA5I mZend_Service_Ebay_Finding_Category_Histogram_SetA;H yZend_Service_Ebay_Finding_Category_Histogram_ContainerA%G MZend_Service_Ebay_Finding_AspectA)F UZend_Service_Ebay_Finding_Aspect_SetA5E mZend_Service_Ebay_Finding_Aspect_Histogram_ValueA9D uZend_Service_Ebay_Finding_Aspect_Histogram_Value_SetA9C uZend_Service_Ebay_Finding_Aspect_Histogram_ContainerA'B QZend_Service_Ebay_Finding_AbstractA A CZend_Service_Ebay_ExceptionA@ AZend_Service_Ebay_AbstractA+? YZend_Service_DeveloperGarden_VoiceCallA/> aZend_Service_DeveloperGarden_SmsValidationA)= UZend_Service_DeveloperGarden_SendSmsA5< mZend_Service_DeveloperGarden_SecurityTokenServerA;; yZend_Service_DeveloperGarden_SecurityTokenServer_CacheAK: Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstractAL9 Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponseAP8 !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponseAG7 Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponseAJ6 Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponseAK5 Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2ResponseAL4 Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponseAI3 Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumberAW2 /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponseAJ1 Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponseAU0 +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponseAC/ Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponseAC. Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstractAH- Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponseAU, +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponseAQ+ #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponseAI* Zend_Service_DeveloperGarden_Response_SecurityTokenServer_ExceptionA;) yZend_Service_DeveloperGarden_Response_ResponseAbstractAO( Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseTypeAK' Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseA   Q  a9~Y6b4}X.qQ*



l
7
				`	3	S-~<Kb>h1Ik;                              2> gZend_Service_WindowsAzure_Storage_Blob_StreamA;= yZend_Service_WindowsAzure_Storage_BatchStorageAbstractA,< [Zend_Service_WindowsAzure_Storage_BatchA-; ]Zend_Service_WindowsAzure_SessionHandlerA>: Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstractA19 eZend_Service_WindowsAzure_RetryPolicy_RetryNA28 gZend_Service_WindowsAzure_RetryPolicy_NoRetryA47 kZend_Service_WindowsAzure_RetryPolicy_ExceptionA(6 SZend_Service_WindowsAzure_ExceptionAJ5 Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscriptionA24 gZend_Service_WindowsAzure_Diagnostics_ManagerA33 iZend_Service_WindowsAzure_Diagnostics_LogLevelA42 kZend_Service_WindowsAzure_Diagnostics_ExceptionAN1 Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscriptionAH0 Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLogAL/ Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCountersAK. Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstractA<- {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogsAA, Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstanceAD+ 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectoriesAU* +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogsAD) 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSourcesA8( sZend_Service_WindowsAzure_Credentials_SharedKeyLiteA4' kZend_Service_WindowsAzure_Credentials_SharedKeyAA& Zend_Service_WindowsAzure_Credentials_SharedAccessSignatureA4% kZend_Service_WindowsAzure_Credentials_ExceptionA>$ Zend_Service_WindowsAzure_Credentials_CredentialsAbstractA# 5Zend_Service_TwitterA " CZend_Service_Twitter_SearchA#! IZend_Service_Twitter_ExceptionA  ;Zend_Service_TechnoratiA# IZend_Service_Technorati_WeblogA" GZend_Service_Technorati_UtilsA* WZend_Service_Technorati_TagsResultSetA' QZend_Service_Technorati_TagsResultA) UZend_Service_Technorati_TagResultSetA& OZend_Service_Technorati_TagResultA, [Zend_Service_Technorati_SearchResultSetA) UZend_Service_Technorati_SearchResultA& OZend_Service_Technorati_ResultSetA# IZend_Service_Technorati_ResultA* WZend_Service_Technorati_KeyInfoResultA* WZend_Service_Technorati_GetInfoResultA& OZend_Service_Technorati_ExceptionA1 eZend_Service_Technorati_DailyCountsResultSetA. _Zend_Service_Technorati_DailyCountsResultA, [Zend_Service_Technorati_CosmosResultSetA) UZend_Service_Technorati_CosmosResultA+ YZend_Service_Technorati_BlogInfoResultA# IZend_Service_Technorati_AuthorA ;Zend_Service_StrikeIronA( SZend_Service_StrikeIron_ZipCodeInfoA2
 gZend_Service_StrikeIron_USAddressVerificationA-	 ]Zend_Service_StrikeIron_SalesUseTaxBasicA& OZend_Service_StrikeIron_ExceptionA& OZend_Service_StrikeIron_DecoratorA! EZend_Service_StrikeIron_BaseA ;Zend_Service_SlideShareA& OZend_Service_SlideShare_SlideShowA& OZend_Service_SlideShare_ExceptionA 1Zend_Service_SimpyA$ KZend_Service_Simpy_WatchlistSetA*  WZend_Service_Simpy_WatchlistFilterSetA' QZend_Service_Simpy_WatchlistFilterA!~ EZend_Service_Simpy_WatchlistA} ?Zend_Service_Simpy_TagSetA| 9Zend_Service_Simpy_TagA{ AZend_Service_Simpy_NoteSetAz ;Zend_Service_Simpy_NoteAy AZend_Service_Simpy_LinkSetA!x EZend_Service_Simpy_LinkQueryAw ;Zend_Service_Simpy_LinkA%v MZend_Service_ShortUrl_TinyUrlComA&u OZend_Service_ShortUrl_MetamarkNetA!t EZend_Service_ShortUrl_JdemCzAs AZend_Service_ShortUrl_IsGdA$r KZend_Service_ShortUrl_ExceptionA,q [Zend_Service_ShortUrl_AbstractShortenerAp 9Zend_Service_ReCaptchaA$o KZend_Service_ReCaptcha_ResponseA$n KZend_Service_ReCaptcha_MailHideA   _  b%Hf0rK!uO&




a
7
					s	J	mM-
uL$`I"~]F+d6T'j<gD+    $ KZend_Text_Table_Decorator_AsciiA 9Zend_Text_Table_ColumnA 3Zend_Text_MultiByteA -Zend_Text_FigletA AZend_Text_Figlet_ExceptionA 3Zend_Text_ExceptionA& OZend_Test_PHPUnit_Db_SimpleTesterA, [Zend_Test_PHPUnit_Db_Operation_TruncateA* WZend_Test_PHPUnit_Db_Operation_InsertA- ]Zend_Test_PHPUnit_Db_Operation_DeleteAllA* WZend_Test_PHPUnit_Db_Metadata_GenericA# IZend_Test_PHPUnit_Db_ExceptionA, [Zend_Test_PHPUnit_Db_DataSet_QueryTableA. _Zend_Test_PHPUnit_Db_DataSet_QueryDataSetA0 cZend_Test_PHPUnit_Db_DataSet_DbTableDataSetA) UZend_Test_PHPUnit_Db_DataSet_DbTableA* WZend_Test_PHPUnit_Db_DataSet_DbRowsetA$ KZend_Test_PHPUnit_Db_ConnectionA' QZend_Test_PHPUnit_DatabaseTestCaseA)
 UZend_Test_PHPUnit_ControllerTestCaseA0	 cZend_Test_PHPUnit_Constraint_ResponseHeaderA* WZend_Test_PHPUnit_Constraint_RedirectA+ YZend_Test_PHPUnit_Constraint_ExceptionA* WZend_Test_PHPUnit_Constraint_DomQueryA 7Zend_Test_DbStatementA 3Zend_Test_DbAdapterA /Zend_Tag_ItemListA 'Zend_Tag_ItemA 1Zend_Tag_ExceptionA  )Zend_Tag_CloudA =Zend_Tag_Cloud_ExceptionA!~ EZend_Tag_Cloud_Decorator_TagA%} MZend_Tag_Cloud_Decorator_HtmlTagA'| QZend_Tag_Cloud_Decorator_HtmlCloudA'{ QZend_Tag_Cloud_Decorator_ExceptionA#z IZend_Tag_Cloud_Decorator_CloudAy )Zend_Soap_WsdlA/x aZend_Soap_Wsdl_Strategy_DefaultComplexTypeA&w OZend_Soap_Wsdl_Strategy_CompositeA0v cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequenceA/u aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplexA$t KZend_Soap_Wsdl_Strategy_AnyTypeA%s MZend_Soap_Wsdl_Strategy_AbstractAr =Zend_Soap_Wsdl_ExceptionAq -Zend_Soap_ServerAp AZend_Soap_Server_ExceptionAo -Zend_Soap_ClientAn 9Zend_Soap_Client_LocalAm AZend_Soap_Client_ExceptionAl ;Zend_Soap_Client_DotNetAk ;Zend_Soap_Client_CommonAj 9Zend_Soap_AutoDiscoverA%i MZend_Soap_AutoDiscover_ExceptionAh %Zend_SessionA)g UZend_Session_Validator_HttpUserAgentA$f KZend_Session_Validator_AbstractA'e QZend_Session_SaveHandler_ExceptionA%d MZend_Session_SaveHandler_DbTableAc 9Zend_Session_NamespaceAb 9Zend_Session_ExceptionAa 7Zend_Session_AbstractA` 1Zend_Service_YahooA$_ KZend_Service_Yahoo_WebResultSetA!^ EZend_Service_Yahoo_WebResultA&] OZend_Service_Yahoo_VideoResultSetA#\ IZend_Service_Yahoo_VideoResultA![ EZend_Service_Yahoo_ResultSetAZ ?Zend_Service_Yahoo_ResultA)Y UZend_Service_Yahoo_PageDataResultSetA&X OZend_Service_Yahoo_PageDataResultA%W MZend_Service_Yahoo_NewsResultSetA"V GZend_Service_Yahoo_NewsResultA&U OZend_Service_Yahoo_LocalResultSetA#T IZend_Service_Yahoo_LocalResultA+S YZend_Service_Yahoo_InlinkDataResultSetA(R SZend_Service_Yahoo_InlinkDataResultA&Q OZend_Service_Yahoo_ImageResultSetA#P IZend_Service_Yahoo_ImageResultAO =Zend_Service_Yahoo_ImageA&N OZend_Service_WindowsAzure_StorageA4M kZend_Service_WindowsAzure_Storage_TableInstanceA7L qZend_Service_WindowsAzure_Storage_TableEntityQueryA2K gZend_Service_WindowsAzure_Storage_TableEntityA,J [Zend_Service_WindowsAzure_Storage_TableA<I {Zend_Service_WindowsAzure_Storage_StorageEntityAbstractA7H qZend_Service_WindowsAzure_Storage_SignedIdentifierA3G iZend_Service_WindowsAzure_Storage_QueueMessageA4F kZend_Service_WindowsAzure_Storage_QueueInstanceA,E [Zend_Service_WindowsAzure_Storage_QueueA9D uZend_Service_WindowsAzure_Storage_PageRegionInstanceA4C kZend_Service_WindowsAzure_Storage_LeaseInstanceA9B uZend_Service_WindowsAzure_Storage_DynamicTableEntityA3A iZend_Service_WindowsAzure_Storage_BlobInstanceA4@ kZend_Service_WindowsAzure_Storage_BlobContainerA+? YZend_Service_WindowsAzure_Storage_BlobA   O  `F'sGy/X- K



K
 				Q	e;P+j5W&[.t=c0b(                           2l gZend_Tool_Project_Context_Zf_DbTableDirectoryA/k aZend_Tool_Project_Context_Zf_DataDirectoryA6j oZend_Tool_Project_Context_Zf_ControllersDirectoryA0i cZend_Tool_Project_Context_Zf_ControllerFileA2h gZend_Tool_Project_Context_Zf_ConfigsDirectoryA,g [Zend_Tool_Project_Context_Zf_ConfigFileA0f cZend_Tool_Project_Context_Zf_CacheDirectoryA/e aZend_Tool_Project_Context_Zf_BootstrapFileA6d oZend_Tool_Project_Context_Zf_ApplicationDirectoryA7c qZend_Tool_Project_Context_Zf_ApplicationConfigFileA/b aZend_Tool_Project_Context_Zf_ApisDirectoryA.a _Zend_Tool_Project_Context_Zf_ActionMethodA3` iZend_Tool_Project_Context_Zf_AbstractClassFileA@_ Zend_Tool_Project_Context_System_ProjectProvidersDirectoryA8^ sZend_Tool_Project_Context_System_ProjectProfileFileA6] oZend_Tool_Project_Context_System_ProjectDirectoryA)\ UZend_Tool_Project_Context_RepositoryA.[ _Zend_Tool_Project_Context_Filesystem_FileA3Z iZend_Tool_Project_Context_Filesystem_DirectoryA2Y gZend_Tool_Project_Context_Filesystem_AbstractA(X SZend_Tool_Project_Context_ExceptionA-W ]Zend_Tool_Project_Context_Content_EngineA3V iZend_Tool_Project_Context_Content_Engine_PhtmlA;U yZend_Tool_Project_Context_Content_Engine_CodeGeneratorA0T cZend_Tool_Framework_System_Provider_VersionA0S cZend_Tool_Framework_System_Provider_PhpinfoA1R eZend_Tool_Framework_System_Provider_ManifestA/Q aZend_Tool_Framework_System_Provider_ConfigA(P SZend_Tool_Framework_System_ManifestA-O ]Zend_Tool_Framework_System_Action_DeleteA-N ]Zend_Tool_Framework_System_Action_CreateA!M EZend_Tool_Framework_RegistryA+L YZend_Tool_Framework_Registry_ExceptionA+K YZend_Tool_Framework_Provider_SignatureA,J [Zend_Tool_Framework_Provider_RepositoryA+I YZend_Tool_Framework_Provider_ExceptionA*H WZend_Tool_Framework_Provider_AbstractA&G OZend_Tool_Framework_Metadata_ToolA)F UZend_Tool_Framework_Metadata_DynamicA'E QZend_Tool_Framework_Metadata_BasicA,D [Zend_Tool_Framework_Manifest_RepositoryA+C YZend_Tool_Framework_Manifest_ExceptionA1B eZend_Tool_Framework_Loader_IncludePathLoaderAJA Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIteratorA+@ YZend_Tool_Framework_Loader_BasicLoaderA(? SZend_Tool_Framework_Loader_AbstractA"> GZend_Tool_Framework_ExceptionA'= QZend_Tool_Framework_Client_StorageA1< eZend_Tool_Framework_Client_Storage_DirectoryA(; SZend_Tool_Framework_Client_ResponseAD: 	Zend_Tool_Framework_Client_Response_ContentDecorator_SeparatorA'9 QZend_Tool_Framework_Client_RequestA(8 SZend_Tool_Framework_Client_ManifestA97 uZend_Tool_Framework_Client_Interactive_InputResponseA86 sZend_Tool_Framework_Client_Interactive_InputRequestA85 sZend_Tool_Framework_Client_Interactive_InputHandlerA)4 UZend_Tool_Framework_Client_ExceptionA'3 QZend_Tool_Framework_Client_ConsoleAD2 	Zend_Tool_Framework_Client_Console_ResponseDecorator_IndentionAD1 	Zend_Tool_Framework_Client_Console_ResponseDecorator_ColorizerAC0 Zend_Tool_Framework_Client_Console_ResponseDecorator_BlockizeAF/ Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenterA0. cZend_Tool_Framework_Client_Console_ManifestA2- gZend_Tool_Framework_Client_Console_HelpSystemA6, oZend_Tool_Framework_Client_Console_ArgumentParserA&+ OZend_Tool_Framework_Client_ConfigA(* SZend_Tool_Framework_Client_AbstractA*) WZend_Tool_Framework_Action_RepositoryA)( UZend_Tool_Framework_Action_ExceptionA$' KZend_Tool_Framework_Action_BaseA& 'Zend_TimeSyncA% 1Zend_TimeSync_SntpA$ 9Zend_TimeSync_ProtocolA# /Zend_TimeSync_NtpA" ;Zend_TimeSync_ExceptionA! +Zend_Text_TableA  3Zend_Text_Table_RowA ?Zend_Text_Table_ExceptionA& OZend_Text_Table_Decorator_UnicodeA   N  n:`*](I\%


b
			h	3J]#_.BpBk?c;_<               : 9Zend_Translate_AdapterA!9 EZend_Translate_Adapter_XmlTmA!8 EZend_Translate_Adapter_XliffA7 AZend_Translate_Adapter_TmxA6 AZend_Translate_Adapter_TbxA5 ?Zend_Translate_Adapter_QtA4 AZend_Translate_Adapter_IniA#3 IZend_Translate_Adapter_GettextA2 AZend_Translate_Adapter_CsvA!1 EZend_Translate_Adapter_ArrayA$0 KZend_Tool_Project_Provider_ViewA$/ KZend_Tool_Project_Provider_TestA/. aZend_Tool_Project_Provider_ProjectProviderA'- QZend_Tool_Project_Provider_ProjectA', QZend_Tool_Project_Provider_ProfileA&+ OZend_Tool_Project_Provider_ModuleA%* MZend_Tool_Project_Provider_ModelA() SZend_Tool_Project_Provider_ManifestA&( OZend_Tool_Project_Provider_LayoutA$' KZend_Tool_Project_Provider_FormA)& UZend_Tool_Project_Provider_ExceptionA'% QZend_Tool_Project_Provider_DbTableA)$ UZend_Tool_Project_Provider_DbAdapterA*# WZend_Tool_Project_Provider_ControllerA+" YZend_Tool_Project_Provider_ApplicationA&! OZend_Tool_Project_Provider_ActionA(  SZend_Tool_Project_Provider_AbstractA ?Zend_Tool_Project_ProfileA' QZend_Tool_Project_Profile_ResourceA9 uZend_Tool_Project_Profile_Resource_SearchConstraintsA1 eZend_Tool_Project_Profile_Resource_ContainerA= }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilterA5 mZend_Tool_Project_Profile_Iterator_ContextFilterA- ]Zend_Tool_Project_Profile_FileParser_XmlA( SZend_Tool_Project_Profile_ExceptionA  CZend_Tool_Project_ExceptionA< {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectoryA0 cZend_Tool_Project_Context_Zf_ViewsDirectoryA6 oZend_Tool_Project_Context_Zf_ViewScriptsDirectoryA0 cZend_Tool_Project_Context_Zf_ViewScriptFileA6 oZend_Tool_Project_Context_Zf_ViewHelpersDirectoryA6 oZend_Tool_Project_Context_Zf_ViewFiltersDirectoryAA Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectoryA2 gZend_Tool_Project_Context_Zf_UploadsDirectoryA0 cZend_Tool_Project_Context_Zf_TestsDirectoryA7 qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFileA@ Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectoryA1 eZend_Tool_Project_Context_Zf_TestLibraryFileA6
 oZend_Tool_Project_Context_Zf_TestLibraryDirectoryA:	 wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFileA: wZend_Tool_Project_Context_Zf_TestApplicationDirectoryA@ Zend_Tool_Project_Context_Zf_TestApplicationControllerFileAE Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectoryA> Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFileA4 kZend_Tool_Project_Context_Zf_TemporaryDirectoryA3 iZend_Tool_Project_Context_Zf_SessionsDirectoryA8 sZend_Tool_Project_Context_Zf_SearchIndexesDirectoryA< {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectoryA8  sZend_Tool_Project_Context_Zf_PublicScriptsDirectoryA1 eZend_Tool_Project_Context_Zf_PublicIndexFileA7~ qZend_Tool_Project_Context_Zf_PublicImagesDirectoryA1} eZend_Tool_Project_Context_Zf_PublicDirectoryA5| mZend_Tool_Project_Context_Zf_ProjectProviderFileA2{ gZend_Tool_Project_Context_Zf_ModulesDirectoryA1z eZend_Tool_Project_Context_Zf_ModuleDirectoryA1y eZend_Tool_Project_Context_Zf_ModelsDirectoryA+x YZend_Tool_Project_Context_Zf_ModelFileA/w aZend_Tool_Project_Context_Zf_LogsDirectoryA2v gZend_Tool_Project_Context_Zf_LocalesDirectoryA2u gZend_Tool_Project_Context_Zf_LibraryDirectoryA2t gZend_Tool_Project_Context_Zf_LayoutsDirectoryA8s sZend_Tool_Project_Context_Zf_LayoutScriptsDirectoryA2r gZend_Tool_Project_Context_Zf_LayoutScriptFileA.q _Zend_Tool_Project_Context_Zf_HtaccessFileA0p cZend_Tool_Project_Context_Zf_FormsDirectoryA*o WZend_Tool_Project_Context_Zf_FormFileA/n aZend_Tool_Project_Context_Zf_DocsDirectoryA-m ]Zend_Tool_Project_Context_Zf_DbTableFileA   q yhI-iAdAd6}U2




u
T
9
					i	H	'dDlL,
nS3jN%}hM1hG%tR.uR/                                  + CZend_View_Helper_FormSelectA* AZend_View_Helper_FormResetA) AZend_View_Helper_FormRadioA"( GZend_View_Helper_FormPasswordA' ?Zend_View_Helper_FormNoteA'& QZend_View_Helper_FormMultiCheckboxA% AZend_View_Helper_FormLabelA$ AZend_View_Helper_FormImageA # CZend_View_Helper_FormHiddenA" ?Zend_View_Helper_FormFileA ! CZend_View_Helper_FormErrorsA!  EZend_View_Helper_FormElementA" GZend_View_Helper_FormCheckboxA  CZend_View_Helper_FormButtonA 7Zend_View_Helper_FormA ?Zend_View_Helper_FieldsetA =Zend_View_Helper_DoctypeA! EZend_View_Helper_DeclareVarsA 9Zend_View_Helper_CycleA ?Zend_View_Helper_CurrencyA =Zend_View_Helper_BaseUrlA ;Zend_View_Helper_ActionA ?Zend_View_Helper_AbstractA 3Zend_View_ExceptionA 1Zend_View_AbstractA %Zend_VersionA 'Zend_ValidateA AZend_Validate_StringLengthA# IZend_Validate_Sitemap_PriorityA ?Zend_Validate_Sitemap_LocA" GZend_Validate_Sitemap_LastmodA% MZend_Validate_Sitemap_ChangefreqA 3Zend_Validate_RegexA
 9Zend_Validate_PostCodeA	 9Zend_Validate_NotEmptyA 9Zend_Validate_LessThanA 1Zend_Validate_IsbnA -Zend_Validate_IpA /Zend_Validate_IntA 7Zend_Validate_InArrayA ;Zend_Validate_IdenticalA 1Zend_Validate_IbanA 9Zend_Validate_HostnameA  /Zend_Validate_HexA ?Zend_Validate_GreaterThanA~ 3Zend_Validate_FloatA!} EZend_Validate_File_WordCountA| ?Zend_Validate_File_UploadA{ ;Zend_Validate_File_SizeAz ;Zend_Validate_File_Sha1A!y EZend_Validate_File_NotExistsA x CZend_Validate_File_MimeTypeAw 9Zend_Validate_File_Md5Av AZend_Validate_File_IsImageA$u KZend_Validate_File_IsCompressedA!t EZend_Validate_File_ImageSizeAs ;Zend_Validate_File_HashA!r EZend_Validate_File_FilesSizeA!q EZend_Validate_File_ExtensionAp ?Zend_Validate_File_ExistsA'o QZend_Validate_File_ExcludeMimeTypeA(n SZend_Validate_File_ExcludeExtensionAm =Zend_Validate_File_Crc32Al =Zend_Validate_File_CountAk ;Zend_Validate_ExceptionAj AZend_Validate_EmailAddressAi 5Zend_Validate_DigitsA"h GZend_Validate_Db_RecordExistsA$g KZend_Validate_Db_NoRecordExistsAf ?Zend_Validate_Db_AbstractAe 1Zend_Validate_DateAd =Zend_Validate_CreditCardAc 3Zend_Validate_CcnumAb 9Zend_Validate_CallbackAa 7Zend_Validate_BetweenA` 7Zend_Validate_BarcodeA_ AZend_Validate_Barcode_UpceA^ AZend_Validate_Barcode_UpcaA] AZend_Validate_Barcode_SsccA$\ KZend_Validate_Barcode_RoyalmailA"[ GZend_Validate_Barcode_PostnetA!Z EZend_Validate_Barcode_PlanetA#Y IZend_Validate_Barcode_LeitcodeA X CZend_Validate_Barcode_Itf14AW AZend_Validate_Barcode_IssnA*V WZend_Validate_Barcode_IntelligentMailA$U KZend_Validate_Barcode_IdentcodeA!T EZend_Validate_Barcode_Gtin14A!S EZend_Validate_Barcode_Gtin13A!R EZend_Validate_Barcode_Gtin12AQ AZend_Validate_Barcode_Ean8AP AZend_Validate_Barcode_Ean5AO AZend_Validate_Barcode_Ean2A N CZend_Validate_Barcode_Ean18A M CZend_Validate_Barcode_Ean14A L CZend_Validate_Barcode_Ean13A K CZend_Validate_Barcode_Ean12A$J KZend_Validate_Barcode_Code93extA!I EZend_Validate_Barcode_Code93A$H KZend_Validate_Barcode_Code39extA!G EZend_Validate_Barcode_Code39A,F [Zend_Validate_Barcode_Code25interleavedA!E EZend_Validate_Barcode_Code25A*D WZend_Validate_Barcode_AdapterAbstractAC 3Zend_Validate_AlphaAB 3Zend_Validate_AlnumAA 9Zend_Validate_AbstractA@ Zend_UriA? 'Zend_Uri_HttpA> 1Zend_Uri_ExceptionA= )Zend_TranslateA< 7Zend_Translate_PluralA; =Zend_Translate_ExceptionA   j  rP.
|Z6Y&X-v<



U
2
						Y	9	f<sU;vZ8wW6b@"pG(dI b>          ( SZend_Amf_Parse_Resource_MysqlResultB) UZend_Amf_Parse_Resource_MysqliResultB  CZend_Amf_Parse_OutputStreamB AZend_Amf_Parse_InputStreamB  CZend_Amf_Parse_DeserializerB# IZend_Amf_Parse_Amf3_SerializerB% MZend_Amf_Parse_Amf3_DeserializerB# IZend_Amf_Parse_Amf0_SerializerB% MZend_Amf_Parse_Amf0_DeserializerB 1Zend_Amf_ExceptionB 1Zend_Amf_ConstantsB
 9Zend_Amf_Auth_AbstractB 	 CZend_Amf_Adobe_IntrospectorB AZend_Amf_Adobe_DbInspectorB 3Zend_Amf_Adobe_AuthB Zend_AclB 'Zend_Acl_RoleB 9Zend_Acl_Role_RegistryB% MZend_Acl_Role_Registry_ExceptionB /Zend_Acl_ResourceB 1Zend_Acl_ExceptionB  /Zend_XmlRpc_ValueA =Zend_XmlRpc_Value_StructA~ =Zend_XmlRpc_Value_StringA} =Zend_XmlRpc_Value_ScalarA| 7Zend_XmlRpc_Value_NilA{ ?Zend_XmlRpc_Value_IntegerA z CZend_XmlRpc_Value_ExceptionAy =Zend_XmlRpc_Value_DoubleAx AZend_XmlRpc_Value_DateTimeA!w EZend_XmlRpc_Value_CollectionAv ?Zend_XmlRpc_Value_BooleanA!u EZend_XmlRpc_Value_BigIntegerAt =Zend_XmlRpc_Value_Base64As ;Zend_XmlRpc_Value_ArrayAr 1Zend_XmlRpc_ServerAq ?Zend_XmlRpc_Server_SystemAp =Zend_XmlRpc_Server_FaultA!o EZend_XmlRpc_Server_ExceptionAn =Zend_XmlRpc_Server_CacheAm 5Zend_XmlRpc_ResponseAl ?Zend_XmlRpc_Response_HttpAk 3Zend_XmlRpc_RequestAj ?Zend_XmlRpc_Request_StdinAi =Zend_XmlRpc_Request_HttpA$h KZend_XmlRpc_Generator_XmlWriterA,g [Zend_XmlRpc_Generator_GeneratorAbstractA&f OZend_XmlRpc_Generator_DomDocumentAe /Zend_XmlRpc_FaultAd 7Zend_XmlRpc_ExceptionAc 1Zend_XmlRpc_ClientA#b IZend_XmlRpc_Client_ServerProxyA+a YZend_XmlRpc_Client_ServerIntrospectionA+` YZend_XmlRpc_Client_IntrospectExceptionA%_ MZend_XmlRpc_Client_HttpExceptionA&^ OZend_XmlRpc_Client_FaultExceptionA!] EZend_XmlRpc_Client_ExceptionA&\ OZend_Wildfire_Protocol_JsonStreamA![ EZend_Wildfire_Plugin_FirePhpA.Z _Zend_Wildfire_Plugin_FirePhp_TableMessageA)Y UZend_Wildfire_Plugin_FirePhp_MessageAX ;Zend_Wildfire_ExceptionA&W OZend_Wildfire_Channel_HttpHeadersAV Zend_ViewAU -Zend_View_StreamAT AZend_View_Helper_UserAgentAS 5Zend_View_Helper_UrlAR AZend_View_Helper_TranslateAQ =Zend_View_Helper_TinySrcAP AZend_View_Helper_ServerUrlA)O UZend_View_Helper_RenderToPlaceholderA!N EZend_View_Helper_PlaceholderA*M WZend_View_Helper_Placeholder_RegistryA4L kZend_View_Helper_Placeholder_Registry_ExceptionA+K YZend_View_Helper_Placeholder_ContainerA6J oZend_View_Helper_Placeholder_Container_StandaloneA5I mZend_View_Helper_Placeholder_Container_ExceptionA4H kZend_View_Helper_Placeholder_Container_AbstractA!G EZend_View_Helper_PartialLoopAF =Zend_View_Helper_PartialA'E QZend_View_Helper_Partial_ExceptionA'D QZend_View_Helper_PaginationControlA C CZend_View_Helper_NavigationA(B SZend_View_Helper_Navigation_SitemapA%A MZend_View_Helper_Navigation_MenuA&@ OZend_View_Helper_Navigation_LinksA/? aZend_View_Helper_Navigation_HelperAbstractA,> [Zend_View_Helper_Navigation_BreadcrumbsA= ;Zend_View_Helper_LayoutA< 7Zend_View_Helper_JsonA"; GZend_View_Helper_InlineScriptA#: IZend_View_Helper_HtmlQuicktimeA9 ?Zend_View_Helper_HtmlPageA 8 CZend_View_Helper_HtmlObjectA7 ?Zend_View_Helper_HtmlListA6 AZend_View_Helper_HtmlFlashA!5 EZend_View_Helper_HtmlElementA4 AZend_View_Helper_HeadTitleA3 AZend_View_Helper_HeadStyleA 2 CZend_View_Helper_HeadScriptA1 ?Zend_View_Helper_HeadMetaA0 ?Zend_View_Helper_HeadLinkA/ ?Zend_View_Helper_GravatarA". GZend_View_Helper_FormTextareaA- ?Zend_View_Helper_FormTextA , CZend_View_Helper_FormSubmitA   Z  p?c4h:q7U0



q
J
(					Z	 ^3mC"pDnGO(gJ\Cq*         )} UZend_Tool_Framework_Loader_InterfaceA8| sZend_Tool_Framework_Client_Storage_AdapterInterfaceAD{ 	Zend_Tool_Framework_Client_Response_ContentDecorator_InterfaceA;z yZend_Tool_Framework_Client_Interactive_OutputInterfaceA:y wZend_Tool_Framework_Client_Interactive_InputInterfaceA)x UZend_Tool_Framework_Action_InterfaceA(w SZend_Text_Table_Decorator_InterfaceAv /Zend_Tag_TaggableA&u OZend_Soap_Wsdl_Strategy_InterfaceA%t MZend_Session_Validator_InterfaceA's QZend_Session_SaveHandler_InterfaceA$r KZend_Service_ShortUrl_ShortenerAIq Zend_Service_DeveloperGarden_Response_SecurityTokenServer_InterfaceAp 7Zend_Server_InterfaceA-o ]Zend_Serializer_Adapter_AdapterInterfaceA4n kZend_Search_Lucene_Search_Highlighter_InterfaceA!m EZend_Search_Lucene_InterfaceA3l iZend_Search_Lucene_Index_TermsStream_InterfaceA$k KZend_Queue_Stomp_FrameInterfaceA0j cZend_Queue_Stomp_Client_ConnectionInterfaceA(i SZend_Queue_Adapter_AdapterInterfaceAh ?Zend_Pdf_Filter_InterfaceA&g OZend_Pdf_ElementFactory_InterfaceAf ?Zend_Pdf_Canvas_InterfaceA,e [Zend_Paginator_ScrollingStyle_InterfaceA$d KZend_Paginator_AdapterAggregateA%c MZend_Paginator_Adapter_InterfaceA&b OZend_Oauth_Config_ConfigInterfaceA$a KZend_Memory_Container_InterfaceA1` eZend_Markup_Renderer_TokenConverterInterfaceA'_ QZend_Markup_Parser_ParserInterfaceA)^ UZend_Mail_Storage_Writable_InterfaceA'] QZend_Mail_Storage_Folder_InterfaceA\ =Zend_Mail_Part_InterfaceA [ CZend_Mail_Message_InterfaceA!Z EZend_Log_Formatter_InterfaceAY ?Zend_Log_Filter_InterfaceAX ?Zend_Log_FactoryInterfaceA'W QZend_Loader_PluginLoader_InterfaceA%V MZend_Loader_Autoloader_InterfaceA0U cZend_Ldap_Node_Schema_ObjectClass_InterfaceA2T gZend_Ldap_Node_Schema_AttributeType_InterfaceA3S iZend_InfoCard_Xml_Security_Transform_InterfaceA(R SZend_InfoCard_Xml_KeyInfo_InterfaceA(Q SZend_InfoCard_Xml_Element_InterfaceA*P WZend_InfoCard_Xml_Assertion_InterfaceA-O ]Zend_InfoCard_Cipher_Symmetric_InterfaceA7N qZend_InfoCard_Cipher_Symmetric_Aes256cbc_InterfaceA7M qZend_InfoCard_Cipher_Symmetric_Aes128cbc_InterfaceA+L YZend_InfoCard_Cipher_Pki_Rsa_InterfaceA'K QZend_InfoCard_Cipher_Pki_InterfaceA$J KZend_InfoCard_Adapter_InterfaceA I CZend_Http_UserAgent_StorageA)H UZend_Http_UserAgent_Features_AdapterAG AZend_Http_UserAgent_DeviceA$F KZend_Http_Client_Adapter_StreamA'E QZend_Http_Client_Adapter_InterfaceAD AZend_Gdata_App_MediaSourceA.C _Zend_Form_Decorator_Marker_File_InterfaceA"B GZend_Form_Decorator_InterfaceAA 7Zend_Filter_InterfaceA"@ GZend_Filter_Encrypt_InterfaceA+? YZend_Filter_Compress_CompressInterfaceA0> cZend_Feed_Writer_Renderer_RendererInterfaceA1= eZend_Feed_Writer_Extension_RendererInterfaceA#< IZend_Feed_Reader_FeedInterfaceA$; KZend_Feed_Reader_EntryInterfaceA7: qZend_Feed_Pubsubhubbub_Model_SubscriptionInterfaceA-9 ]Zend_Feed_Pubsubhubbub_CallbackInterfaceA 8 CZend_Feed_Builder_InterfaceA 7 CZend_Db_Statement_InterfaceA$6 KZend_Currency_CurrencyInterfaceA)5 UZend_Crypt_Math_BigInteger_InterfaceA+4 YZend_Controller_Router_Route_InterfaceA%3 MZend_Controller_Router_InterfaceA)2 UZend_Controller_Dispatcher_InterfaceA%1 MZend_Controller_Action_InterfaceA&0 OZend_Cloud_StorageService_AdapterA$/ KZend_Cloud_QueueService_AdapterA,. [Zend_Cloud_DocumentService_QueryAdapterA'- QZend_Cloud_DocumentService_AdapterA, 5Zend_Captcha_AdapterA!+ EZend_Cache_Backend_InterfaceA)* UZend_Cache_Backend_ExtendedInterfaceA ) CZend_Auth_Storage_InterfaceA ( CZend_Auth_Adapter_InterfaceA.' _Zend_Auth_Adapter_Http_Resolver_InterfaceA'& QZend_Application_Resource_ResourceA4% kZend_Application_Bootstrap_ResourceBootstrapperA,$ [Zend_Application_Bootstrap_BootstrapperA   Y  m4^,h:h2~W1



h
>
				w	[	1	^6o?Q#i?V(W,c;h>                                               'V QZend_Markup_Parser_ParserInterfaceB)U UZend_Mail_Storage_Writable_InterfaceB'T QZend_Mail_Storage_Folder_InterfaceBS =Zend_Mail_Part_InterfaceB R CZend_Mail_Message_InterfaceB!Q EZend_Log_Formatter_InterfaceBP ?Zend_Log_Filter_InterfaceBO ?Zend_Log_FactoryInterfaceB'N QZend_Loader_PluginLoader_InterfaceB%M MZend_Loader_Autoloader_InterfaceB0L cZend_Ldap_Node_Schema_ObjectClass_InterfaceB2K gZend_Ldap_Node_Schema_AttributeType_InterfaceB3J iZend_InfoCard_Xml_Security_Transform_InterfaceB(I SZend_InfoCard_Xml_KeyInfo_InterfaceB(H SZend_InfoCard_Xml_Element_InterfaceB*G WZend_InfoCard_Xml_Assertion_InterfaceB-F ]Zend_InfoCard_Cipher_Symmetric_InterfaceB7E qZend_InfoCard_Cipher_Symmetric_Aes256cbc_InterfaceB7D qZend_InfoCard_Cipher_Symmetric_Aes128cbc_InterfaceB+C YZend_InfoCard_Cipher_Pki_Rsa_InterfaceB'B QZend_InfoCard_Cipher_Pki_InterfaceB$A KZend_InfoCard_Adapter_InterfaceB @ CZend_Http_UserAgent_StorageB)? UZend_Http_UserAgent_Features_AdapterB> AZend_Http_UserAgent_DeviceB$= KZend_Http_Client_Adapter_StreamB'< QZend_Http_Client_Adapter_InterfaceB; AZend_Gdata_App_MediaSourceB.: _Zend_Form_Decorator_Marker_File_InterfaceB"9 GZend_Form_Decorator_InterfaceB8 7Zend_Filter_InterfaceB"7 GZend_Filter_Encrypt_InterfaceB+6 YZend_Filter_Compress_CompressInterfaceB05 cZend_Feed_Writer_Renderer_RendererInterfaceB14 eZend_Feed_Writer_Extension_RendererInterfaceB#3 IZend_Feed_Reader_FeedInterfaceB$2 KZend_Feed_Reader_EntryInterfaceB71 qZend_Feed_Pubsubhubbub_Model_SubscriptionInterfaceB-0 ]Zend_Feed_Pubsubhubbub_CallbackInterfaceB / CZend_Feed_Builder_InterfaceB . CZend_Db_Statement_InterfaceB$- KZend_Currency_CurrencyInterfaceB), UZend_Crypt_Math_BigInteger_InterfaceB++ YZend_Controller_Router_Route_InterfaceB%* MZend_Controller_Router_InterfaceB)) UZend_Controller_Dispatcher_InterfaceB%( MZend_Controller_Action_InterfaceB&' OZend_Cloud_StorageService_AdapterB$& KZend_Cloud_QueueService_AdapterB,% [Zend_Cloud_DocumentService_QueryAdapterB'$ QZend_Cloud_DocumentService_AdapterB# 5Zend_Captcha_AdapterB!" EZend_Cache_Backend_InterfaceB)! UZend_Cache_Backend_ExtendedInterfaceB   CZend_Auth_Storage_InterfaceB  CZend_Auth_Adapter_InterfaceB. _Zend_Auth_Adapter_Http_Resolver_InterfaceB' QZend_Application_Resource_ResourceB4 kZend_Application_Bootstrap_ResourceBootstrapperB, [Zend_Application_Bootstrap_BootstrapperB ;Zend_Acl_Role_InterfaceB  CZend_Acl_Resource_InterfaceB ?Zend_Acl_Assert_InterfaceB# IZend_Wildfire_Plugin_InterfaceA$ KZend_Wildfire_Channel_InterfaceA 3Zend_View_InterfaceA' QZend_View_Helper_Navigation_HelperA AZend_View_Helper_InterfaceA ;Zend_Validate_InterfaceA+ YZend_Validate_Barcode_AdapterInterfaceA3 iZend_Tool_Project_Profile_FileParser_InterfaceA: wZend_Tool_Project_Context_System_TopLevelRestrictableA5 mZend_Tool_Project_Context_System_NotOverwritableA/ aZend_Tool_Project_Context_System_InterfaceA( SZend_Tool_Project_Context_InterfaceA+ YZend_Tool_Framework_Registry_InterfaceA2
 gZend_Tool_Framework_Registry_EnabledInterfaceA-	 ]Zend_Tool_Framework_Provider_PretendableA+ YZend_Tool_Framework_Provider_InterfaceA. _Zend_Tool_Framework_Provider_InteractableA/ aZend_Tool_Framework_Provider_InitializableA; yZend_Tool_Framework_Provider_DocblockManifestInterfaceA+ YZend_Tool_Framework_Metadata_InterfaceA. _Zend_Tool_Framework_Metadata_AttributableA6 oZend_Tool_Framework_Manifest_ProviderManifestableA6 oZend_Tool_Framework_Manifest_MetadataManifestableA+  YZend_Tool_Framework_Manifest_InterfaceA+ YZend_Tool_Framework_Manifest_IndexableA4~ kZend_Tool_Framework_Manifest_ActionManifestableA   h  w^?%_.k=[8h<




k
A
				d	8	e3hO+i;qK%lF%gE0];]1  } +Zend_Cache_CoreB| 1Zend_Cache_BackendB"{ GZend_Cache_Backend_ZendServerB(z SZend_Cache_Backend_ZendServer_ShMemB'y QZend_Cache_Backend_ZendServer_DiskB$x KZend_Cache_Backend_ZendPlatformBw ?Zend_Cache_Backend_XcacheB v CZend_Cache_Backend_WinCacheB!u EZend_Cache_Backend_TwoLevelsBt ;Zend_Cache_Backend_TestBs ?Zend_Cache_Backend_StaticBr ?Zend_Cache_Backend_SqliteB!q EZend_Cache_Backend_MemcachedB$p KZend_Cache_Backend_LibmemcachedBo ;Zend_Cache_Backend_FileB!n EZend_Cache_Backend_BlackHoleBm 9Zend_Cache_Backend_ApcBl %Zend_BarcodeBk ?Zend_Barcode_Renderer_SvgB+j YZend_Barcode_Renderer_RendererAbstractBi ?Zend_Barcode_Renderer_PdfB h CZend_Barcode_Renderer_ImageB$g KZend_Barcode_Renderer_ExceptionBf =Zend_Barcode_Object_UpceBe =Zend_Barcode_Object_UpcaB"d GZend_Barcode_Object_RoyalmailB c CZend_Barcode_Object_PostnetBb AZend_Barcode_Object_PlanetB'a QZend_Barcode_Object_ObjectAbstractB!` EZend_Barcode_Object_LeitcodeB_ ?Zend_Barcode_Object_Itf14B"^ GZend_Barcode_Object_IdentcodeB"] GZend_Barcode_Object_ExceptionB\ ?Zend_Barcode_Object_ErrorB[ =Zend_Barcode_Object_Ean8BZ =Zend_Barcode_Object_Ean5BY =Zend_Barcode_Object_Ean2BX ?Zend_Barcode_Object_Ean13BW AZend_Barcode_Object_Code39B*V WZend_Barcode_Object_Code25interleavedBU AZend_Barcode_Object_Code25B T CZend_Barcode_Object_Code128BS 9Zend_Barcode_ExceptionBR Zend_AuthBQ ?Zend_Auth_Storage_SessionB$P KZend_Auth_Storage_NonPersistentB O CZend_Auth_Storage_ExceptionBN -Zend_Auth_ResultBM 3Zend_Auth_ExceptionBL =Zend_Auth_Adapter_OpenIdBK 9Zend_Auth_Adapter_LdapBJ AZend_Auth_Adapter_InfoCardBI 9Zend_Auth_Adapter_HttpB)H UZend_Auth_Adapter_Http_Resolver_FileB.G _Zend_Auth_Adapter_Http_Resolver_ExceptionB F CZend_Auth_Adapter_ExceptionBE =Zend_Auth_Adapter_DigestBD ?Zend_Auth_Adapter_DbTableBC -Zend_ApplicationB#B IZend_Application_Resource_ViewB(A SZend_Application_Resource_UserAgentB(@ SZend_Application_Resource_TranslateB&? OZend_Application_Resource_SessionB%> MZend_Application_Resource_RouterB/= aZend_Application_Resource_ResourceAbstractB)< UZend_Application_Resource_NavigationB&; OZend_Application_Resource_MultidbB&: OZend_Application_Resource_ModulesB#9 IZend_Application_Resource_MailB"8 GZend_Application_Resource_LogB%7 MZend_Application_Resource_LocaleB%6 MZend_Application_Resource_LayoutB.5 _Zend_Application_Resource_FrontcontrollerB(4 SZend_Application_Resource_ExceptionB#3 IZend_Application_Resource_DojoB!2 EZend_Application_Resource_DbB+1 YZend_Application_Resource_CachemanagerB&0 OZend_Application_Module_BootstrapB'/ QZend_Application_Module_AutoloaderB. AZend_Application_ExceptionB)- UZend_Application_Bootstrap_ExceptionB1, eZend_Application_Bootstrap_BootstrapAbstractB)+ UZend_Application_Bootstrap_BootstrapB* ?Zend_Amf_Value_TraitsInfoB-) ]Zend_Amf_Value_Messaging_RemotingMessageB*( WZend_Amf_Value_Messaging_ErrorMessageB,' [Zend_Amf_Value_Messaging_CommandMessageB*& WZend_Amf_Value_Messaging_AsyncMessageB-% ]Zend_Amf_Value_Messaging_ArrayCollectionB0$ cZend_Amf_Value_Messaging_AcknowledgeMessageB-# ]Zend_Amf_Value_Messaging_AbstractMessageB!" EZend_Amf_Value_MessageHeaderB! AZend_Amf_Value_MessageBodyB  =Zend_Amf_Value_ByteArrayB AZend_Amf_Util_BinaryStreamB +Zend_Amf_ServerB ?Zend_Amf_Server_ExceptionB /Zend_Amf_ResponseB 9Zend_Amf_Response_HttpB -Zend_Amf_RequestB 7Zend_Amf_Request_HttpB ?Zend_Amf_Parse_TypeLoaderB ?Zend_Amf_Parse_SerializerB# IZend_Amf_Parse_Resource_StreamB   _  |W4v[<"VX-}Q



p
E
			y	M	#i5|S/ tK~V7xR6z>g2y?    (\ SZend_Controller_Dispatcher_AbstractB[ 9Zend_Controller_ActionB(Z SZend_Controller_Action_HelperBrokerB6Y oZend_Controller_Action_HelperBroker_PriorityStackB/X aZend_Controller_Action_Helper_ViewRendererB&W OZend_Controller_Action_Helper_UrlB-V ]Zend_Controller_Action_Helper_RedirectorB'U QZend_Controller_Action_Helper_JsonB1T eZend_Controller_Action_Helper_FlashMessengerB0S cZend_Controller_Action_Helper_ContextSwitchB(R SZend_Controller_Action_Helper_CacheB<Q {Zend_Controller_Action_Helper_AutoCompleteScriptaculousB3P iZend_Controller_Action_Helper_AutoCompleteDojoB8O sZend_Controller_Action_Helper_AutoComplete_AbstractB.N _Zend_Controller_Action_Helper_AjaxContextB.M _Zend_Controller_Action_Helper_ActionStackB+L YZend_Controller_Action_Helper_AbstractB%K MZend_Controller_Action_ExceptionBJ 3Zend_Console_GetoptB"I GZend_Console_Getopt_ExceptionBH #Zend_ConfigBG -Zend_Config_YamlBF +Zend_Config_XmlBE 1Zend_Config_WriterBD ;Zend_Config_Writer_YamlBC 9Zend_Config_Writer_XmlBB ;Zend_Config_Writer_JsonBA 9Zend_Config_Writer_IniB$@ KZend_Config_Writer_FileAbstractB? =Zend_Config_Writer_ArrayB> -Zend_Config_JsonB= +Zend_Config_IniB< 7Zend_Config_ExceptionB$; KZend_CodeGenerator_Php_PropertyB1: eZend_CodeGenerator_Php_Property_DefaultValueB%9 MZend_CodeGenerator_Php_ParameterB28 gZend_CodeGenerator_Php_Parameter_DefaultValueB"7 GZend_CodeGenerator_Php_MethodB,6 [Zend_CodeGenerator_Php_Member_ContainerB+5 YZend_CodeGenerator_Php_Member_AbstractB 4 CZend_CodeGenerator_Php_FileB%3 MZend_CodeGenerator_Php_ExceptionB$2 KZend_CodeGenerator_Php_DocblockB(1 SZend_CodeGenerator_Php_Docblock_TagB/0 aZend_CodeGenerator_Php_Docblock_Tag_ReturnB./ _Zend_CodeGenerator_Php_Docblock_Tag_ParamB0. cZend_CodeGenerator_Php_Docblock_Tag_LicenseB!- EZend_CodeGenerator_Php_ClassB , CZend_CodeGenerator_Php_BodyB$+ KZend_CodeGenerator_Php_AbstractB!* EZend_CodeGenerator_ExceptionB ) CZend_CodeGenerator_AbstractB&( OZend_Cloud_StorageService_FactoryB(' SZend_Cloud_StorageService_ExceptionB3& iZend_Cloud_StorageService_Adapter_WindowsAzureB)% UZend_Cloud_StorageService_Adapter_S3B/$ aZend_Cloud_StorageService_Adapter_NirvanixB1# eZend_Cloud_StorageService_Adapter_FileSystemB'" QZend_Cloud_QueueService_MessageSetB$! KZend_Cloud_QueueService_MessageB$  KZend_Cloud_QueueService_FactoryB& OZend_Cloud_QueueService_ExceptionB. _Zend_Cloud_QueueService_Adapter_ZendQueueB1 eZend_Cloud_QueueService_Adapter_WindowsAzureB( SZend_Cloud_QueueService_Adapter_SqsB4 kZend_Cloud_QueueService_Adapter_AbstractAdapterB. _Zend_Cloud_OperationNotAvailableExceptionB 5Zend_Cloud_ExceptionB% MZend_Cloud_DocumentService_QueryB' QZend_Cloud_DocumentService_FactoryB) UZend_Cloud_DocumentService_ExceptionB+ YZend_Cloud_DocumentService_DocumentSetB( SZend_Cloud_DocumentService_DocumentB4 kZend_Cloud_DocumentService_Adapter_WindowsAzureB: wZend_Cloud_DocumentService_Adapter_WindowsAzure_QueryB0 cZend_Cloud_DocumentService_Adapter_SimpleDbB6 oZend_Cloud_DocumentService_Adapter_SimpleDb_QueryB7 qZend_Cloud_DocumentService_Adapter_AbstractAdapterB AZend_Cloud_AbstractFactoryB /Zend_Captcha_WordB 9Zend_Captcha_ReCaptchaB 1Zend_Captcha_ImageB
 3Zend_Captcha_FigletB	 9Zend_Captcha_ExceptionB /Zend_Captcha_DumbB /Zend_Captcha_BaseB !Zend_CacheB 1Zend_Cache_ManagerB =Zend_Cache_Frontend_PageB AZend_Cache_Frontend_OutputB! EZend_Cache_Frontend_FunctionB =Zend_Cache_Frontend_FileB  ?Zend_Cache_Frontend_ClassB  CZend_Cache_Frontend_CaptureB~ 5Zend_Cache_ExceptionB   o  g?oExS(\.~R-




`
3
					k	I	.		|jI#tU0dBdE,_>eD*iCeN2                         0K cZend_Dojo_Form_Decorator_AccordionContainerBJ 3Zend_Dojo_ExceptionBI )Zend_Dojo_DataBH 5Zend_Dojo_BuildLayerBG !Zend_DebugBF Zend_DbBE 'Zend_Db_TableBD 5Zend_Db_Table_SelectB#C IZend_Db_Table_Select_ExceptionBB 5Zend_Db_Table_RowsetB#A IZend_Db_Table_Rowset_ExceptionB"@ GZend_Db_Table_Rowset_AbstractB? /Zend_Db_Table_RowB > CZend_Db_Table_Row_ExceptionB= AZend_Db_Table_Row_AbstractB< ;Zend_Db_Table_ExceptionB; =Zend_Db_Table_DefinitionB: 9Zend_Db_Table_AbstractB9 /Zend_Db_StatementB8 =Zend_Db_Statement_SqlsrvB'7 QZend_Db_Statement_Sqlsrv_ExceptionB6 7Zend_Db_Statement_PdoB5 ?Zend_Db_Statement_Pdo_OciB4 ?Zend_Db_Statement_Pdo_IbmB3 =Zend_Db_Statement_OracleB'2 QZend_Db_Statement_Oracle_ExceptionB1 =Zend_Db_Statement_MysqliB'0 QZend_Db_Statement_Mysqli_ExceptionB / CZend_Db_Statement_ExceptionB. 7Zend_Db_Statement_Db2B$- KZend_Db_Statement_Db2_ExceptionB, )Zend_Db_SelectB+ =Zend_Db_Select_ExceptionB* -Zend_Db_ProfilerB) 9Zend_Db_Profiler_QueryB( =Zend_Db_Profiler_FirebugB' AZend_Db_Profiler_ExceptionB& %Zend_Db_ExprB% /Zend_Db_ExceptionB$ 9Zend_Db_Adapter_SqlsrvB%# MZend_Db_Adapter_Sqlsrv_ExceptionB" AZend_Db_Adapter_Pdo_SqliteB! ?Zend_Db_Adapter_Pdo_PgsqlB  ;Zend_Db_Adapter_Pdo_OciB ?Zend_Db_Adapter_Pdo_MysqlB ?Zend_Db_Adapter_Pdo_MssqlB ;Zend_Db_Adapter_Pdo_IbmB  CZend_Db_Adapter_Pdo_Ibm_IdsB  CZend_Db_Adapter_Pdo_Ibm_Db2B! EZend_Db_Adapter_Pdo_AbstractB 9Zend_Db_Adapter_OracleB% MZend_Db_Adapter_Oracle_ExceptionB 9Zend_Db_Adapter_MysqliB% MZend_Db_Adapter_Mysqli_ExceptionB ?Zend_Db_Adapter_ExceptionB 3Zend_Db_Adapter_Db2B" GZend_Db_Adapter_Db2_ExceptionB =Zend_Db_Adapter_AbstractB Zend_DateB 3Zend_Date_ExceptionB 5Zend_Date_DateObjectB -Zend_Date_CitiesB 'Zend_CurrencyB ;Zend_Currency_ExceptionB !Zend_CryptB
 )Zend_Crypt_RsaB	 1Zend_Crypt_Rsa_KeyB ?Zend_Crypt_Rsa_Key_PublicB AZend_Crypt_Rsa_Key_PrivateB =Zend_Crypt_Rsa_ExceptionB +Zend_Crypt_MathB ?Zend_Crypt_Math_ExceptionB AZend_Crypt_Math_BigIntegerB# IZend_Crypt_Math_BigInteger_GmpB) UZend_Crypt_Math_BigInteger_ExceptionB&  OZend_Crypt_Math_BigInteger_BcmathB +Zend_Crypt_HmacB~ ?Zend_Crypt_Hmac_ExceptionB} 5Zend_Crypt_ExceptionB| =Zend_Crypt_DiffieHellmanB'{ QZend_Crypt_DiffieHellman_ExceptionB!z EZend_Controller_Router_RouteB(y SZend_Controller_Router_Route_StaticB'x QZend_Controller_Router_Route_RegexB(w SZend_Controller_Router_Route_ModuleB*v WZend_Controller_Router_Route_HostnameB'u QZend_Controller_Router_Route_ChainB*t WZend_Controller_Router_Route_AbstractB#s IZend_Controller_Router_RewriteB%r MZend_Controller_Router_ExceptionB$q KZend_Controller_Router_AbstractB*p WZend_Controller_Response_HttpTestCaseB"o GZend_Controller_Response_HttpB'n QZend_Controller_Response_ExceptionB!m EZend_Controller_Response_CliB&l OZend_Controller_Response_AbstractB#k IZend_Controller_Request_SimpleB)j UZend_Controller_Request_HttpTestCaseB!i EZend_Controller_Request_HttpB&h OZend_Controller_Request_ExceptionB&g OZend_Controller_Request_Apache404B%f MZend_Controller_Request_AbstractB&e OZend_Controller_Plugin_PutHandlerB(d SZend_Controller_Plugin_ErrorHandlerB"c GZend_Controller_Plugin_BrokerB'b QZend_Controller_Plugin_ActionStackB$a KZend_Controller_Plugin_AbstractB` 7Zend_Controller_FrontB_ ?Zend_Controller_ExceptionB(^ SZend_Controller_Dispatcher_StandardB)] UZend_Controller_Dispatcher_ExceptionB   a  sC\8hCg:`8



h
Q
0					Y	2	b5o@c>gAlN7 aG-^2qG(        ), UZend_Feed_Reader_Collection_CategoryB'+ QZend_Feed_Reader_Collection_AuthorB* 9Zend_Feed_PubsubhubbubB&) OZend_Feed_Pubsubhubbub_SubscriberB/( aZend_Feed_Pubsubhubbub_Subscriber_CallbackB%' MZend_Feed_Pubsubhubbub_PublisherB.& _Zend_Feed_Pubsubhubbub_Model_SubscriptionB/% aZend_Feed_Pubsubhubbub_Model_ModelAbstractB($ SZend_Feed_Pubsubhubbub_HttpResponseB%# MZend_Feed_Pubsubhubbub_ExceptionB," [Zend_Feed_Pubsubhubbub_CallbackAbstractB! 3Zend_Feed_ExceptionB  3Zend_Feed_Entry_RssB 5Zend_Feed_Entry_AtomB =Zend_Feed_Entry_AbstractB /Zend_Feed_ElementB /Zend_Feed_BuilderB =Zend_Feed_Builder_HeaderB$ KZend_Feed_Builder_Header_ItunesB  CZend_Feed_Builder_ExceptionB ;Zend_Feed_Builder_EntryB )Zend_Feed_AtomB 1Zend_Feed_AbstractB )Zend_ExceptionB )Zend_Dom_QueryB 7Zend_Dom_Query_ResultB =Zend_Dom_Query_Css2XpathB 1Zend_Dom_ExceptionB Zend_DojoB) UZend_Dojo_View_Helper_VerticalSliderB, [Zend_Dojo_View_Helper_ValidationTextBoxB& OZend_Dojo_View_Helper_TimeTextBoxB" GZend_Dojo_View_Helper_TextBoxB# IZend_Dojo_View_Helper_TextareaB'
 QZend_Dojo_View_Helper_TabContainerB'	 QZend_Dojo_View_Helper_SubmitButtonB) UZend_Dojo_View_Helper_StackContainerB) UZend_Dojo_View_Helper_SplitContainerB! EZend_Dojo_View_Helper_SliderB) UZend_Dojo_View_Helper_SimpleTextareaB& OZend_Dojo_View_Helper_RadioButtonB* WZend_Dojo_View_Helper_PasswordTextBoxB( SZend_Dojo_View_Helper_NumberTextBoxB( SZend_Dojo_View_Helper_NumberSpinnerB+  YZend_Dojo_View_Helper_HorizontalSliderB AZend_Dojo_View_Helper_FormB*~ WZend_Dojo_View_Helper_FilteringSelectB!} EZend_Dojo_View_Helper_EditorB| AZend_Dojo_View_Helper_DojoB){ UZend_Dojo_View_Helper_Dojo_ContainerB)z UZend_Dojo_View_Helper_DijitContainerB y CZend_Dojo_View_Helper_DijitB&x OZend_Dojo_View_Helper_DateTextBoxB&w OZend_Dojo_View_Helper_CustomDijitB*v WZend_Dojo_View_Helper_CurrencyTextBoxB&u OZend_Dojo_View_Helper_ContentPaneB#t IZend_Dojo_View_Helper_ComboBoxB#s IZend_Dojo_View_Helper_CheckBoxB!r EZend_Dojo_View_Helper_ButtonB*q WZend_Dojo_View_Helper_BorderContainerB(p SZend_Dojo_View_Helper_AccordionPaneB-o ]Zend_Dojo_View_Helper_AccordionContainerBn =Zend_Dojo_View_ExceptionBm )Zend_Dojo_FormBl 9Zend_Dojo_Form_SubFormB*k WZend_Dojo_Form_Element_VerticalSliderB-j ]Zend_Dojo_Form_Element_ValidationTextBoxB'i QZend_Dojo_Form_Element_TimeTextBoxB#h IZend_Dojo_Form_Element_TextBoxB$g KZend_Dojo_Form_Element_TextareaB(f SZend_Dojo_Form_Element_SubmitButtonB"e GZend_Dojo_Form_Element_SliderB*d WZend_Dojo_Form_Element_SimpleTextareaB'c QZend_Dojo_Form_Element_RadioButtonB+b YZend_Dojo_Form_Element_PasswordTextBoxB)a UZend_Dojo_Form_Element_NumberTextBoxB)` UZend_Dojo_Form_Element_NumberSpinnerB,_ [Zend_Dojo_Form_Element_HorizontalSliderB+^ YZend_Dojo_Form_Element_FilteringSelectB"] GZend_Dojo_Form_Element_EditorB&\ OZend_Dojo_Form_Element_DijitMultiB![ EZend_Dojo_Form_Element_DijitB'Z QZend_Dojo_Form_Element_DateTextBoxB+Y YZend_Dojo_Form_Element_CurrencyTextBoxB$X KZend_Dojo_Form_Element_ComboBoxB$W KZend_Dojo_Form_Element_CheckBoxB"V GZend_Dojo_Form_Element_ButtonB U CZend_Dojo_Form_DisplayGroupB*T WZend_Dojo_Form_Decorator_TabContainerB,S [Zend_Dojo_Form_Decorator_StackContainerB,R [Zend_Dojo_Form_Decorator_SplitContainerB'Q QZend_Dojo_Form_Decorator_DijitFormB*P WZend_Dojo_Form_Decorator_DijitElementB,O [Zend_Dojo_Form_Decorator_DijitContainerB)N UZend_Dojo_Form_Decorator_ContentPaneB-M ]Zend_Dojo_Form_Decorator_BorderContainerB+L YZend_Dojo_Form_Decorator_AccordionPaneB   a  ^7	r:rA~GxbA"


x
;				g	/Gp7zZA/gJ.`?pL0jI+lO-                                    9Zend_Filter_StringTrimB ?Zend_Filter_StringToUpperB ?Zend_Filter_StringToLowerB
 5Zend_Filter_RealPathB	 ;Zend_Filter_PregReplaceB -Zend_Filter_NullB& OZend_Filter_NormalizedToLocalizedB& OZend_Filter_LocalizedToNormalizedB +Zend_Filter_IntB /Zend_Filter_InputB 7Zend_Filter_InflectorB =Zend_Filter_HtmlEntitiesB AZend_Filter_File_UpperCaseB  ;Zend_Filter_File_RenameB AZend_Filter_File_LowerCaseB~ =Zend_Filter_File_EncryptB} =Zend_Filter_File_DecryptB| 7Zend_Filter_ExceptionB{ 3Zend_Filter_EncryptB z CZend_Filter_Encrypt_OpensslBy AZend_Filter_Encrypt_McryptBx +Zend_Filter_DirBw 1Zend_Filter_DigitsBv 3Zend_Filter_DecryptBu 9Zend_Filter_DecompressBt 5Zend_Filter_CompressBs =Zend_Filter_Compress_ZipBr =Zend_Filter_Compress_TarBq =Zend_Filter_Compress_RarBp =Zend_Filter_Compress_LzfBo ;Zend_Filter_Compress_GzB*n WZend_Filter_Compress_CompressAbstractBm =Zend_Filter_Compress_Bz2Bl 5Zend_Filter_CallbackBk 3Zend_Filter_BooleanBj 5Zend_Filter_BaseNameBi /Zend_Filter_AlphaBh /Zend_Filter_AlnumBg 1Zend_File_TransferB!f EZend_File_Transfer_ExceptionB$e KZend_File_Transfer_Adapter_HttpB(d SZend_File_Transfer_Adapter_AbstractBc Zend_FeedBb -Zend_Feed_WriterBa ;Zend_Feed_Writer_SourceB/` aZend_Feed_Writer_Renderer_RendererAbstractB'_ QZend_Feed_Writer_Renderer_Feed_RssB(^ SZend_Feed_Writer_Renderer_Feed_AtomB/] aZend_Feed_Writer_Renderer_Feed_Atom_SourceB5\ mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstractB([ SZend_Feed_Writer_Renderer_Entry_RssB)Z UZend_Feed_Writer_Renderer_Entry_AtomB1Y eZend_Feed_Writer_Renderer_Entry_Atom_DeletedBX 7Zend_Feed_Writer_FeedB'W QZend_Feed_Writer_Feed_FeedAbstractB<V {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_EntryB8U sZend_Feed_Writer_Extension_Threading_Renderer_EntryB4T kZend_Feed_Writer_Extension_Slash_Renderer_EntryB0S cZend_Feed_Writer_Extension_RendererAbstractB4R kZend_Feed_Writer_Extension_ITunes_Renderer_FeedB5Q mZend_Feed_Writer_Extension_ITunes_Renderer_EntryB+P YZend_Feed_Writer_Extension_ITunes_FeedB,O [Zend_Feed_Writer_Extension_ITunes_EntryB8N sZend_Feed_Writer_Extension_DublinCore_Renderer_FeedB9M uZend_Feed_Writer_Extension_DublinCore_Renderer_EntryB6L oZend_Feed_Writer_Extension_Content_Renderer_EntryB2K gZend_Feed_Writer_Extension_Atom_Renderer_FeedB6J oZend_Feed_Writer_Exception_InvalidMethodExceptionBI 9Zend_Feed_Writer_EntryBH =Zend_Feed_Writer_DeletedBG 'Zend_Feed_RssBF -Zend_Feed_ReaderBE =Zend_Feed_Reader_FeedSetB"D GZend_Feed_Reader_FeedAbstractBC ?Zend_Feed_Reader_Feed_RssBB AZend_Feed_Reader_Feed_AtomB&A OZend_Feed_Reader_Feed_Atom_SourceB3@ iZend_Feed_Reader_Extension_WellFormedWeb_EntryB,? [Zend_Feed_Reader_Extension_Thread_EntryB0> cZend_Feed_Reader_Extension_Syndication_FeedB+= YZend_Feed_Reader_Extension_Slash_EntryB,< [Zend_Feed_Reader_Extension_Podcast_FeedB-; ]Zend_Feed_Reader_Extension_Podcast_EntryB,: [Zend_Feed_Reader_Extension_FeedAbstractB-9 ]Zend_Feed_Reader_Extension_EntryAbstractB/8 aZend_Feed_Reader_Extension_DublinCore_FeedB07 cZend_Feed_Reader_Extension_DublinCore_EntryB46 kZend_Feed_Reader_Extension_CreativeCommons_FeedB55 mZend_Feed_Reader_Extension_CreativeCommons_EntryB-4 ]Zend_Feed_Reader_Extension_Content_EntryB)3 UZend_Feed_Reader_Extension_Atom_FeedB*2 WZend_Feed_Reader_Extension_Atom_EntryB#1 IZend_Feed_Reader_EntryAbstractB0 AZend_Feed_Reader_Entry_RssB / CZend_Feed_Reader_Entry_AtomB . CZend_Feed_Reader_CollectionB3- iZend_Feed_Reader_Collection_CollectionAbstractB   g  i:d;qL'gAfD"




e
D
"					|	\	<	jI*`2Y/a8vP*]4x\5_=                                     t 3Zend_Gdata_App_UtilB#s IZend_Gdata_App_MediaFileSourceBr ?Zend_Gdata_App_MediaEntryB2q gZend_Gdata_App_LoggingHttpClientAdapterSocketBp AZend_Gdata_App_IOExceptionB,o [Zend_Gdata_App_InvalidArgumentExceptionB!n EZend_Gdata_App_HttpExceptionB$m KZend_Gdata_App_FeedSourceParentB#l IZend_Gdata_App_FeedEntryParentBk 3Zend_Gdata_App_FeedBj =Zend_Gdata_App_ExtensionB!i EZend_Gdata_App_Extension_UriB%h MZend_Gdata_App_Extension_UpdatedB#g IZend_Gdata_App_Extension_TitleB"f GZend_Gdata_App_Extension_TextB%e MZend_Gdata_App_Extension_SummaryB&d OZend_Gdata_App_Extension_SubtitleB$c KZend_Gdata_App_Extension_SourceB$b KZend_Gdata_App_Extension_RightsB'a QZend_Gdata_App_Extension_PublishedB$` KZend_Gdata_App_Extension_PersonB"_ GZend_Gdata_App_Extension_NameB"^ GZend_Gdata_App_Extension_LogoB"] GZend_Gdata_App_Extension_LinkB \ CZend_Gdata_App_Extension_IdB"[ GZend_Gdata_App_Extension_IconB'Z QZend_Gdata_App_Extension_GeneratorB#Y IZend_Gdata_App_Extension_EmailB%X MZend_Gdata_App_Extension_ElementB$W KZend_Gdata_App_Extension_EditedB#V IZend_Gdata_App_Extension_DraftB%U MZend_Gdata_App_Extension_ControlB)T UZend_Gdata_App_Extension_ContributorB%S MZend_Gdata_App_Extension_ContentB&R OZend_Gdata_App_Extension_CategoryB$Q KZend_Gdata_App_Extension_AuthorBP =Zend_Gdata_App_ExceptionBO 5Zend_Gdata_App_EntryB,N [Zend_Gdata_App_CaptchaRequiredExceptionB#M IZend_Gdata_App_BaseMediaSourceBL 3Zend_Gdata_App_BaseB*K WZend_Gdata_App_BadMethodCallExceptionB!J EZend_Gdata_App_AuthExceptionBI Zend_FormBH /Zend_Form_SubFormBG 3Zend_Form_ExceptionBF /Zend_Form_ElementBE ;Zend_Form_Element_XhtmlBD AZend_Form_Element_TextareaBC 9Zend_Form_Element_TextBB =Zend_Form_Element_SubmitBA =Zend_Form_Element_SelectB@ ;Zend_Form_Element_ResetB? ;Zend_Form_Element_RadioB> AZend_Form_Element_PasswordB"= GZend_Form_Element_MultiselectB$< KZend_Form_Element_MultiCheckboxB; ;Zend_Form_Element_MultiB: ;Zend_Form_Element_ImageB9 =Zend_Form_Element_HiddenB8 9Zend_Form_Element_HashB7 9Zend_Form_Element_FileB 6 CZend_Form_Element_ExceptionB5 AZend_Form_Element_CheckboxB4 ?Zend_Form_Element_CaptchaB3 =Zend_Form_Element_ButtonB2 9Zend_Form_DisplayGroupB#1 IZend_Form_Decorator_ViewScriptB#0 IZend_Form_Decorator_ViewHelperB / CZend_Form_Decorator_TooltipB(. SZend_Form_Decorator_PrepareElementsB- ?Zend_Form_Decorator_LabelB, ?Zend_Form_Decorator_ImageB + CZend_Form_Decorator_HtmlTagB#* IZend_Form_Decorator_FormErrorsB%) MZend_Form_Decorator_FormElementsB( =Zend_Form_Decorator_FormB' =Zend_Form_Decorator_FileB!& EZend_Form_Decorator_FieldsetB"% GZend_Form_Decorator_ExceptionB$ AZend_Form_Decorator_ErrorsB$# KZend_Form_Decorator_DtDdWrapperB$" KZend_Form_Decorator_DescriptionB ! CZend_Form_Decorator_CaptchaB%  MZend_Form_Decorator_Captcha_WordB! EZend_Form_Decorator_CallbackB! EZend_Form_Decorator_AbstractB #Zend_FilterB+ YZend_Filter_Word_UnderscoreToSeparatorB& OZend_Filter_Word_UnderscoreToDashB+ YZend_Filter_Word_UnderscoreToCamelCaseB* WZend_Filter_Word_SeparatorToSeparatorB% MZend_Filter_Word_SeparatorToDashB* WZend_Filter_Word_SeparatorToCamelCaseB( SZend_Filter_Word_Separator_AbstractB& OZend_Filter_Word_DashToUnderscoreB% MZend_Filter_Word_DashToSeparatorB% MZend_Filter_Word_DashToCamelCaseB+ YZend_Filter_Word_CamelCaseToUnderscoreB* WZend_Filter_Word_CamelCaseToSeparatorB% MZend_Filter_Word_CamelCaseToDashB 7Zend_Filter_StripTagsB ?Zend_Filter_StripNewlinesB   _  }U#h9fA(V)c4



}
S
*
				c	4	o?f>kCjDl:^8cK#sB#         %S MZend_Gdata_Gapps_Extension_LoginB)R UZend_Gdata_Gapps_Extension_EmailListBQ 9Zend_Gdata_Gapps_ErrorB-P ]Zend_Gdata_Gapps_EmailListRecipientQueryB,O [Zend_Gdata_Gapps_EmailListRecipientFeedB-N ]Zend_Gdata_Gapps_EmailListRecipientEntryB$M KZend_Gdata_Gapps_EmailListQueryB#L IZend_Gdata_Gapps_EmailListFeedB$K KZend_Gdata_Gapps_EmailListEntryBJ +Zend_Gdata_FeedBI 5Zend_Gdata_ExtensionBH =Zend_Gdata_Extension_WhoBG AZend_Gdata_Extension_WhereBF ?Zend_Gdata_Extension_WhenB$E KZend_Gdata_Extension_VisibilityB&D OZend_Gdata_Extension_TransparencyB"C GZend_Gdata_Extension_ReminderB-B ]Zend_Gdata_Extension_RecurrenceExceptionB$A KZend_Gdata_Extension_RecurrenceB @ CZend_Gdata_Extension_RatingB'? QZend_Gdata_Extension_OriginalEventB0> cZend_Gdata_Extension_OpenSearchTotalResultsB.= _Zend_Gdata_Extension_OpenSearchStartIndexB0< cZend_Gdata_Extension_OpenSearchItemsPerPageB"; GZend_Gdata_Extension_FeedLinkB*: WZend_Gdata_Extension_ExtendedPropertyB%9 MZend_Gdata_Extension_EventStatusB#8 IZend_Gdata_Extension_EntryLinkB"7 GZend_Gdata_Extension_CommentsB&6 OZend_Gdata_Extension_AttendeeTypeB(5 SZend_Gdata_Extension_AttendeeStatusB4 +Zend_Gdata_ExifB3 5Zend_Gdata_Exif_FeedB#2 IZend_Gdata_Exif_Extension_TimeB#1 IZend_Gdata_Exif_Extension_TagsB$0 KZend_Gdata_Exif_Extension_ModelB#/ IZend_Gdata_Exif_Extension_MakeB". GZend_Gdata_Exif_Extension_IsoB,- [Zend_Gdata_Exif_Extension_ImageUniqueIdB$, KZend_Gdata_Exif_Extension_FStopB*+ WZend_Gdata_Exif_Extension_FocalLengthB$* KZend_Gdata_Exif_Extension_FlashB') QZend_Gdata_Exif_Extension_ExposureB'( QZend_Gdata_Exif_Extension_DistanceB' 7Zend_Gdata_Exif_EntryB& -Zend_Gdata_EntryB% 7Zend_Gdata_DublinCoreB*$ WZend_Gdata_DublinCore_Extension_TitleB,# [Zend_Gdata_DublinCore_Extension_SubjectB+" YZend_Gdata_DublinCore_Extension_RightsB.! _Zend_Gdata_DublinCore_Extension_PublisherB-  ]Zend_Gdata_DublinCore_Extension_LanguageB/ aZend_Gdata_DublinCore_Extension_IdentifierB+ YZend_Gdata_DublinCore_Extension_FormatB0 cZend_Gdata_DublinCore_Extension_DescriptionB) UZend_Gdata_DublinCore_Extension_DateB, [Zend_Gdata_DublinCore_Extension_CreatorB +Zend_Gdata_DocsB 7Zend_Gdata_Docs_QueryB% MZend_Gdata_Docs_DocumentListFeedB& OZend_Gdata_Docs_DocumentListEntryB 9Zend_Gdata_ClientLoginB 3Zend_Gdata_CalendarB! EZend_Gdata_Calendar_ListFeedB" GZend_Gdata_Calendar_ListEntryB- ]Zend_Gdata_Calendar_Extension_WebContentB+ YZend_Gdata_Calendar_Extension_TimezoneB9 uZend_Gdata_Calendar_Extension_SendEventNotificationsB+ YZend_Gdata_Calendar_Extension_SelectedB+ YZend_Gdata_Calendar_Extension_QuickAddB' QZend_Gdata_Calendar_Extension_LinkB) UZend_Gdata_Calendar_Extension_HiddenB( SZend_Gdata_Calendar_Extension_ColorB.
 _Zend_Gdata_Calendar_Extension_AccessLevelB#	 IZend_Gdata_Calendar_EventQueryB" GZend_Gdata_Calendar_EventFeedB# IZend_Gdata_Calendar_EventEntryB -Zend_Gdata_BooksB! EZend_Gdata_Books_VolumeQueryB  CZend_Gdata_Books_VolumeFeedB! EZend_Gdata_Books_VolumeEntryB+ YZend_Gdata_Books_Extension_ViewabilityB- ]Zend_Gdata_Books_Extension_ThumbnailLinkB&  OZend_Gdata_Books_Extension_ReviewB+ YZend_Gdata_Books_Extension_PreviewLinkB(~ SZend_Gdata_Books_Extension_InfoLinkB-} ]Zend_Gdata_Books_Extension_EmbeddabilityB)| UZend_Gdata_Books_Extension_BooksLinkB-{ ]Zend_Gdata_Books_Extension_BooksCategoryB.z _Zend_Gdata_Books_Extension_AnnotationLinkB$y KZend_Gdata_Books_CollectionFeedB%x MZend_Gdata_Books_CollectionEntryBw 1Zend_Gdata_AuthSubBv )Zend_Gdata_AppB$u KZend_Gdata_App_VersionExceptionB   a  W3~W1
V3gD"oV9




_
8
					V	(	
g5wFU'	jF!uHd7}F`7	                  *4 WZend_Gdata_Photos_Extension_TimestampB*3 WZend_Gdata_Photos_Extension_ThumbnailB%2 MZend_Gdata_Photos_Extension_SizeB)1 UZend_Gdata_Photos_Extension_RotationB+0 YZend_Gdata_Photos_Extension_QuotaLimitB-/ ]Zend_Gdata_Photos_Extension_QuotaCurrentB). UZend_Gdata_Photos_Extension_PositionB(- SZend_Gdata_Photos_Extension_PhotoIdB3, iZend_Gdata_Photos_Extension_NumPhotosRemainingB*+ WZend_Gdata_Photos_Extension_NumPhotosB)* UZend_Gdata_Photos_Extension_NicknameB%) MZend_Gdata_Photos_Extension_NameB2( gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumB)' UZend_Gdata_Photos_Extension_LocationB#& IZend_Gdata_Photos_Extension_IdB'% QZend_Gdata_Photos_Extension_HeightB2$ gZend_Gdata_Photos_Extension_CommentingEnabledB-# ]Zend_Gdata_Photos_Extension_CommentCountB'" QZend_Gdata_Photos_Extension_ClientB)! UZend_Gdata_Photos_Extension_ChecksumB*  WZend_Gdata_Photos_Extension_BytesUsedB( SZend_Gdata_Photos_Extension_AlbumIdB' QZend_Gdata_Photos_Extension_AccessB# IZend_Gdata_Photos_CommentEntryB! EZend_Gdata_Photos_AlbumQueryB  CZend_Gdata_Photos_AlbumFeedB! EZend_Gdata_Photos_AlbumEntryB 3Zend_Gdata_MimeFileB ?Zend_Gdata_MimeBodyStringB AZend_Gdata_MediaMimeStreamB -Zend_Gdata_MediaB 7Zend_Gdata_Media_FeedB* WZend_Gdata_Media_Extension_MediaTitleB. _Zend_Gdata_Media_Extension_MediaThumbnailB) UZend_Gdata_Media_Extension_MediaTextB0 cZend_Gdata_Media_Extension_MediaRestrictionB+ YZend_Gdata_Media_Extension_MediaRatingB+ YZend_Gdata_Media_Extension_MediaPlayerB- ]Zend_Gdata_Media_Extension_MediaKeywordsB) UZend_Gdata_Media_Extension_MediaHashB* WZend_Gdata_Media_Extension_MediaGroupB0 cZend_Gdata_Media_Extension_MediaDescriptionB+
 YZend_Gdata_Media_Extension_MediaCreditB.	 _Zend_Gdata_Media_Extension_MediaCopyrightB, [Zend_Gdata_Media_Extension_MediaContentB- ]Zend_Gdata_Media_Extension_MediaCategoryB 9Zend_Gdata_Media_EntryB AZend_Gdata_Kind_EventEntryB 7Zend_Gdata_HttpClientB* WZend_Gdata_HttpAdapterStreamingSocketB) UZend_Gdata_HttpAdapterStreamingProxyB /Zend_Gdata_HealthB  ;Zend_Gdata_Health_QueryB& OZend_Gdata_Health_ProfileListFeedB'~ QZend_Gdata_Health_ProfileListEntryB"} GZend_Gdata_Health_ProfileFeedB#| IZend_Gdata_Health_ProfileEntryB${ KZend_Gdata_Health_Extension_CcrBz )Zend_Gdata_GeoBy 3Zend_Gdata_Geo_FeedB$x KZend_Gdata_Geo_Extension_GmlPosB&w OZend_Gdata_Geo_Extension_GmlPointB)v UZend_Gdata_Geo_Extension_GeoRssWhereBu 5Zend_Gdata_Geo_EntryBt -Zend_Gdata_GbaseB"s GZend_Gdata_Gbase_SnippetQueryB!r EZend_Gdata_Gbase_SnippetFeedB"q GZend_Gdata_Gbase_SnippetEntryBp 9Zend_Gdata_Gbase_QueryBo AZend_Gdata_Gbase_ItemQueryBn ?Zend_Gdata_Gbase_ItemFeedBm AZend_Gdata_Gbase_ItemEntryBl 7Zend_Gdata_Gbase_FeedB-k ]Zend_Gdata_Gbase_Extension_BaseAttributeBj 9Zend_Gdata_Gbase_EntryBi -Zend_Gdata_GappsBh AZend_Gdata_Gapps_UserQueryBg ?Zend_Gdata_Gapps_UserFeedBf AZend_Gdata_Gapps_UserEntryB&e OZend_Gdata_Gapps_ServiceExceptionBd 9Zend_Gdata_Gapps_QueryB c CZend_Gdata_Gapps_OwnerQueryBb AZend_Gdata_Gapps_OwnerFeedB a CZend_Gdata_Gapps_OwnerEntryB#` IZend_Gdata_Gapps_NicknameQueryB"_ GZend_Gdata_Gapps_NicknameFeedB#^ IZend_Gdata_Gapps_NicknameEntryB!] EZend_Gdata_Gapps_MemberQueryB \ CZend_Gdata_Gapps_MemberFeedB![ EZend_Gdata_Gapps_MemberEntryB Z CZend_Gdata_Gapps_GroupQueryBY AZend_Gdata_Gapps_GroupFeedB X CZend_Gdata_Gapps_GroupEntryB%W MZend_Gdata_Gapps_Extension_QuotaB(V SZend_Gdata_Gapps_Extension_PropertyB(U SZend_Gdata_Gapps_Extension_NicknameB$T KZend_Gdata_Gapps_Extension_NameB   [  V1~Z@'|Mc9{[2




l
?
				b	1	{Md4O`6yNk>tFnI#                   " GZend_Http_Client_Adapter_CurlB !Zend_GdataB 1Zend_Gdata_YouTubeB" GZend_Gdata_YouTube_VideoQueryB! EZend_Gdata_YouTube_VideoFeedB"
 GZend_Gdata_YouTube_VideoEntryB(	 SZend_Gdata_YouTube_UserProfileEntryB( SZend_Gdata_YouTube_SubscriptionFeedB) UZend_Gdata_YouTube_SubscriptionEntryB) UZend_Gdata_YouTube_PlaylistVideoFeedB* WZend_Gdata_YouTube_PlaylistVideoEntryB( SZend_Gdata_YouTube_PlaylistListFeedB) UZend_Gdata_YouTube_PlaylistListEntryB" GZend_Gdata_YouTube_MediaEntryB! EZend_Gdata_YouTube_InboxFeedB"  GZend_Gdata_YouTube_InboxEntryB) UZend_Gdata_YouTube_Extension_VideoIdB*~ WZend_Gdata_YouTube_Extension_UsernameB*} WZend_Gdata_YouTube_Extension_UploadedB'| QZend_Gdata_YouTube_Extension_TokenB({ SZend_Gdata_YouTube_Extension_StatusB,z [Zend_Gdata_YouTube_Extension_StatisticsB'y QZend_Gdata_YouTube_Extension_StateB(x SZend_Gdata_YouTube_Extension_SchoolB-w ]Zend_Gdata_YouTube_Extension_ReleaseDateB.v _Zend_Gdata_YouTube_Extension_RelationshipB*u WZend_Gdata_YouTube_Extension_RecordedB&t OZend_Gdata_YouTube_Extension_RacyB-s ]Zend_Gdata_YouTube_Extension_QueryStringB)r UZend_Gdata_YouTube_Extension_PrivateB*q WZend_Gdata_YouTube_Extension_PositionB/p aZend_Gdata_YouTube_Extension_PlaylistTitleB,o [Zend_Gdata_YouTube_Extension_PlaylistIdB,n [Zend_Gdata_YouTube_Extension_OccupationB)m UZend_Gdata_YouTube_Extension_NoEmbedB'l QZend_Gdata_YouTube_Extension_MusicB(k SZend_Gdata_YouTube_Extension_MoviesB-j ]Zend_Gdata_YouTube_Extension_MediaRatingB,i [Zend_Gdata_YouTube_Extension_MediaGroupB-h ]Zend_Gdata_YouTube_Extension_MediaCreditB.g _Zend_Gdata_YouTube_Extension_MediaContentB*f WZend_Gdata_YouTube_Extension_LocationB&e OZend_Gdata_YouTube_Extension_LinkB*d WZend_Gdata_YouTube_Extension_LastNameB*c WZend_Gdata_YouTube_Extension_HometownB)b UZend_Gdata_YouTube_Extension_HobbiesB(a SZend_Gdata_YouTube_Extension_GenderB+` YZend_Gdata_YouTube_Extension_FirstNameB*_ WZend_Gdata_YouTube_Extension_DurationB-^ ]Zend_Gdata_YouTube_Extension_DescriptionB+] YZend_Gdata_YouTube_Extension_CountHintB)\ UZend_Gdata_YouTube_Extension_ControlB)[ UZend_Gdata_YouTube_Extension_CompanyB'Z QZend_Gdata_YouTube_Extension_BooksB%Y MZend_Gdata_YouTube_Extension_AgeB)X UZend_Gdata_YouTube_Extension_AboutMeB#W IZend_Gdata_YouTube_ContactFeedB$V KZend_Gdata_YouTube_ContactEntryB#U IZend_Gdata_YouTube_CommentFeedB$T KZend_Gdata_YouTube_CommentEntryB$S KZend_Gdata_YouTube_ActivityFeedB%R MZend_Gdata_YouTube_ActivityEntryBQ ;Zend_Gdata_SpreadsheetsB*P WZend_Gdata_Spreadsheets_WorksheetFeedB+O YZend_Gdata_Spreadsheets_WorksheetEntryB,N [Zend_Gdata_Spreadsheets_SpreadsheetFeedB-M ]Zend_Gdata_Spreadsheets_SpreadsheetEntryB&L OZend_Gdata_Spreadsheets_ListQueryB%K MZend_Gdata_Spreadsheets_ListFeedB&J OZend_Gdata_Spreadsheets_ListEntryB/I aZend_Gdata_Spreadsheets_Extension_RowCountB-H ]Zend_Gdata_Spreadsheets_Extension_CustomB/G aZend_Gdata_Spreadsheets_Extension_ColCountB+F YZend_Gdata_Spreadsheets_Extension_CellB*E WZend_Gdata_Spreadsheets_DocumentQueryB&D OZend_Gdata_Spreadsheets_CellQueryB%C MZend_Gdata_Spreadsheets_CellFeedB&B OZend_Gdata_Spreadsheets_CellEntryBA -Zend_Gdata_QueryB@ /Zend_Gdata_PhotosB ? CZend_Gdata_Photos_UserQueryB> AZend_Gdata_Photos_UserFeedB = CZend_Gdata_Photos_UserEntryB< AZend_Gdata_Photos_TagEntryB!; EZend_Gdata_Photos_PhotoQueryB : CZend_Gdata_Photos_PhotoFeedB!9 EZend_Gdata_Photos_PhotoEntryB&8 OZend_Gdata_Photos_Extension_WidthB'7 QZend_Gdata_Photos_Extension_WeightB(6 SZend_Gdata_Photos_Extension_VersionB%5 MZend_Gdata_Photos_Extension_UserB   h `=$kK'^'~Z8jD(



T
				p	G	'X0	fDh;jK,	yT7y]/}`=mM%                                           w ?Zend_Ldap_Node_CollectionB$v KZend_Ldap_Node_ChildrenIteratorBu ;Zend_Ldap_Node_AbstractBt 9Zend_Ldap_Ldif_EncoderBs -Zend_Ldap_FilterBr ;Zend_Ldap_Filter_StringBq 3Zend_Ldap_Filter_OrBp 5Zend_Ldap_Filter_NotBo 7Zend_Ldap_Filter_MaskBn =Zend_Ldap_Filter_LogicalBm AZend_Ldap_Filter_ExceptionBl 5Zend_Ldap_Filter_AndBk ?Zend_Ldap_Filter_AbstractBj 3Zend_Ldap_ExceptionBi %Zend_Ldap_DnBh 3Zend_Ldap_ConverterB"g GZend_Ldap_Converter_ExceptionBf 5Zend_Ldap_CollectionB*e WZend_Ldap_Collection_Iterator_DefaultBd 3Zend_Ldap_AttributeBc #Zend_LayoutBb 7Zend_Layout_ExceptionB)a UZend_Layout_Controller_Plugin_LayoutB0` cZend_Layout_Controller_Action_Helper_LayoutB_ Zend_JsonB^ -Zend_Json_ServerB] 5Zend_Json_Server_SmdB!\ EZend_Json_Server_Smd_ServiceB[ ?Zend_Json_Server_ResponseB#Z IZend_Json_Server_Response_HttpBY =Zend_Json_Server_RequestB"X GZend_Json_Server_Request_HttpBW AZend_Json_Server_ExceptionBV 9Zend_Json_Server_ErrorBU 9Zend_Json_Server_CacheBT )Zend_Json_ExprBS 3Zend_Json_ExceptionBR /Zend_Json_EncoderBQ /Zend_Json_DecoderBP 'Zend_InfoCardB-O ]Zend_InfoCard_Xml_SecurityTokenReferenceBN AZend_InfoCard_Xml_SecurityB)M UZend_InfoCard_Xml_Security_TransformB4L kZend_InfoCard_Xml_Security_Transform_XmlExcC14NB3K iZend_InfoCard_Xml_Security_Transform_ExceptionB<J {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignatureB)I UZend_InfoCard_Xml_Security_ExceptionBH ?Zend_InfoCard_Xml_KeyInfoB&G OZend_InfoCard_Xml_KeyInfo_XmlDSigB&F OZend_InfoCard_Xml_KeyInfo_DefaultB'E QZend_InfoCard_Xml_KeyInfo_AbstractB D CZend_InfoCard_Xml_ExceptionB#C IZend_InfoCard_Xml_EncryptedKeyB$B KZend_InfoCard_Xml_EncryptedDataB+A YZend_InfoCard_Xml_EncryptedData_XmlEncB-@ ]Zend_InfoCard_Xml_EncryptedData_AbstractB? ?Zend_InfoCard_Xml_ElementB > CZend_InfoCard_Xml_AssertionB%= MZend_InfoCard_Xml_Assertion_SamlB< ;Zend_InfoCard_ExceptionB%; MZend_InfoCard_Exception_AbstractB: 5Zend_InfoCard_ClaimsB9 5Zend_InfoCard_CipherB58 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcB57 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcB46 kZend_InfoCard_Cipher_Symmetric_Adapter_AbstractB)5 UZend_InfoCard_Cipher_Pki_Adapter_RsaB.4 _Zend_InfoCard_Cipher_Pki_Adapter_AbstractB#3 IZend_InfoCard_Cipher_ExceptionB$2 KZend_InfoCard_Adapter_ExceptionB"1 GZend_InfoCard_Adapter_DefaultB0 3Zend_Http_UserAgentB"/ GZend_Http_UserAgent_ValidatorB. =Zend_Http_UserAgent_TextB(- SZend_Http_UserAgent_Storage_SessionB., _Zend_Http_UserAgent_Storage_NonPersistentB*+ WZend_Http_UserAgent_Storage_ExceptionB* =Zend_Http_UserAgent_SpamB) ?Zend_Http_UserAgent_ProbeB ( CZend_Http_UserAgent_OfflineB' AZend_Http_UserAgent_MobileB& =Zend_Http_UserAgent_FeedB+% YZend_Http_UserAgent_Features_ExceptionB2$ gZend_Http_UserAgent_Features_Adapter_WurflApiB3# iZend_Http_UserAgent_Features_Adapter_TeraWurflB5" mZend_Http_UserAgent_Features_Adapter_DeviceAtlasB"! GZend_Http_UserAgent_ExceptionB  ?Zend_Http_UserAgent_EmailB  CZend_Http_UserAgent_DesktopB  CZend_Http_UserAgent_ConsoleB  CZend_Http_UserAgent_CheckerB ;Zend_Http_UserAgent_BotB' QZend_Http_UserAgent_AbstractDeviceB 1Zend_Http_ResponseB ?Zend_Http_Response_StreamB 3Zend_Http_ExceptionB 3Zend_Http_CookieJarB -Zend_Http_CookieB -Zend_Http_ClientB AZend_Http_Client_ExceptionB" GZend_Http_Client_Adapter_TestB$ KZend_Http_Client_Adapter_SocketB# IZend_Http_Client_Adapter_ProxyB' QZend_Http_Client_Adapter_ExceptionB   s	 `2d1
|^3dC*xT1




w
Z
=
						u	Y	B	a6_@vP/
rO(_=hN2sT5}^B'	                           j 7Zend_Measure_PressureBi 1Zend_Measure_PowerBh 3Zend_Measure_NumberBg 9Zend_Measure_LightnessBf 3Zend_Measure_LengthBe ?Zend_Measure_IlluminationBd 9Zend_Measure_FrequencyBc 1Zend_Measure_ForceBb =Zend_Measure_Flow_VolumeBa 9Zend_Measure_Flow_MoleB` 9Zend_Measure_Flow_MassB_ 9Zend_Measure_ExceptionB^ 3Zend_Measure_EnergyB] 5Zend_Measure_DensityB\ 5Zend_Measure_CurrentB [ CZend_Measure_Cooking_WeightB Z CZend_Measure_Cooking_VolumeBY =Zend_Measure_CapacitanceBX 3Zend_Measure_BinaryBW /Zend_Measure_AreaBV 1Zend_Measure_AngleBU ?Zend_Measure_AccelerationBT 7Zend_Measure_AbstractBS #Zend_MarkupBR 7Zend_Markup_TokenListBQ /Zend_Markup_TokenB*P WZend_Markup_Renderer_RendererAbstractBO ?Zend_Markup_Renderer_HtmlB"N GZend_Markup_Renderer_Html_UrlB#M IZend_Markup_Renderer_Html_ListB"L GZend_Markup_Renderer_Html_ImgB+K YZend_Markup_Renderer_Html_HtmlAbstractB#J IZend_Markup_Renderer_Html_CodeB#I IZend_Markup_Renderer_ExceptionBH AZend_Markup_Parser_TextileB!G EZend_Markup_Parser_ExceptionBF ?Zend_Markup_Parser_BbcodeBE 7Zend_Markup_ExceptionBD Zend_MailBC =Zend_Mail_Transport_SmtpB!B EZend_Mail_Transport_SendmailBA =Zend_Mail_Transport_FileB"@ GZend_Mail_Transport_ExceptionB!? EZend_Mail_Transport_AbstractB> /Zend_Mail_StorageB'= QZend_Mail_Storage_Writable_MaildirB< 9Zend_Mail_Storage_Pop3B; 9Zend_Mail_Storage_MboxB: ?Zend_Mail_Storage_MaildirB9 9Zend_Mail_Storage_ImapB8 =Zend_Mail_Storage_FolderB"7 GZend_Mail_Storage_Folder_MboxB%6 MZend_Mail_Storage_Folder_MaildirB 5 CZend_Mail_Storage_ExceptionB4 AZend_Mail_Storage_AbstractB3 ;Zend_Mail_Protocol_SmtpB'2 QZend_Mail_Protocol_Smtp_Auth_PlainB'1 QZend_Mail_Protocol_Smtp_Auth_LoginB)0 UZend_Mail_Protocol_Smtp_Auth_Crammd5B/ ;Zend_Mail_Protocol_Pop3B. ;Zend_Mail_Protocol_ImapB!- EZend_Mail_Protocol_ExceptionB , CZend_Mail_Protocol_AbstractB+ )Zend_Mail_PartB* 3Zend_Mail_Part_FileB) /Zend_Mail_MessageB( 9Zend_Mail_Message_FileB' 3Zend_Mail_ExceptionB& Zend_LogB % CZend_Log_Writer_ZendMonitorB$ 9Zend_Log_Writer_SyslogB# 9Zend_Log_Writer_StreamB" 5Zend_Log_Writer_NullB! 5Zend_Log_Writer_MockB  5Zend_Log_Writer_MailB ;Zend_Log_Writer_FirebugB 1Zend_Log_Writer_DbB =Zend_Log_Writer_AbstractB 9Zend_Log_Formatter_XmlB ?Zend_Log_Formatter_SimpleB AZend_Log_Formatter_FirebugB  CZend_Log_Formatter_AbstractB =Zend_Log_Filter_SuppressB =Zend_Log_Filter_PriorityB ;Zend_Log_Filter_MessageB =Zend_Log_Filter_AbstractB 1Zend_Log_ExceptionB #Zend_LocaleB -Zend_Locale_MathB =Zend_Locale_Math_PhpMathB AZend_Locale_Math_ExceptionB 1Zend_Locale_FormatB 7Zend_Locale_ExceptionB -Zend_Locale_DataB! EZend_Locale_Data_TranslationB #Zend_LoaderB
 =Zend_Loader_PluginLoaderB'	 QZend_Loader_PluginLoader_ExceptionB 7Zend_Loader_ExceptionB 9Zend_Loader_AutoloaderB$ KZend_Loader_Autoloader_ResourceB Zend_LdapB )Zend_Ldap_NodeB 7Zend_Ldap_Node_SchemaB# IZend_Ldap_Node_Schema_OpenLdapB/ aZend_Ldap_Node_Schema_ObjectClass_OpenLdapB6  oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectoryB AZend_Ldap_Node_Schema_ItemB1~ eZend_Ldap_Node_Schema_AttributeType_OpenLdapB8} sZend_Ldap_Node_Schema_AttributeType_ActiveDirectoryB*| WZend_Ldap_Node_Schema_ActiveDirectoryB{ 9Zend_Ldap_Node_RootDseB$z KZend_Ldap_Node_RootDse_OpenLdapB&y OZend_Ldap_Node_RootDse_eDirectoryB+x YZend_Ldap_Node_RootDse_ActiveDirectoryB   s g>"xZ>$vT3pL'|[,




j
E
(

				z	P	.	[7b1^;xZ7{Z7tO,eD}S(                       ] AZend_Pdf_Destination_NamedB'\ QZend_Pdf_Destination_FitVerticallyB&[ OZend_Pdf_Destination_FitRectangleB)Z UZend_Pdf_Destination_FitHorizontallyB2Y gZend_Pdf_Destination_FitBoundingBoxVerticallyB4X kZend_Pdf_Destination_FitBoundingBoxHorizontallyB(W SZend_Pdf_Destination_FitBoundingBoxBV =Zend_Pdf_Destination_FitB"U GZend_Pdf_Destination_ExplicitBT )Zend_Pdf_ColorBS 1Zend_Pdf_Color_RgbBR 3Zend_Pdf_Color_HtmlBQ =Zend_Pdf_Color_GrayScaleBP 3Zend_Pdf_Color_CmykBO 'Zend_Pdf_CmapBN AZend_Pdf_Cmap_TrimmedTableB!M EZend_Pdf_Cmap_SegmentToDeltaBL AZend_Pdf_Cmap_ByteEncodingB&K OZend_Pdf_Cmap_ByteEncoding_StaticBJ +Zend_Pdf_CanvasBI =Zend_Pdf_Canvas_AbstractBH 3Zend_Pdf_AnnotationBG =Zend_Pdf_Annotation_TextBF AZend_Pdf_Annotation_MarkupBE =Zend_Pdf_Annotation_LinkB'D QZend_Pdf_Annotation_FileAttachmentBC +Zend_Pdf_ActionBB 3Zend_Pdf_Action_URIBA ;Zend_Pdf_Action_UnknownB@ 7Zend_Pdf_Action_TransB? 9Zend_Pdf_Action_ThreadB> AZend_Pdf_Action_SubmitFormB= 7Zend_Pdf_Action_SoundB < CZend_Pdf_Action_SetOCGStateB; ?Zend_Pdf_Action_ResetFormB: ?Zend_Pdf_Action_RenditionB9 7Zend_Pdf_Action_NamedB8 7Zend_Pdf_Action_MovieB7 9Zend_Pdf_Action_LaunchB6 AZend_Pdf_Action_JavaScriptB5 AZend_Pdf_Action_ImportDataB4 5Zend_Pdf_Action_HideB3 7Zend_Pdf_Action_GoToRB2 7Zend_Pdf_Action_GoToEB1 AZend_Pdf_Action_GoTo3DViewB0 5Zend_Pdf_Action_GoToB/ )Zend_PaginatorB-. ]Zend_Paginator_SerializableLimitIteratorB*- WZend_Paginator_ScrollingStyle_SlidingB*, WZend_Paginator_ScrollingStyle_JumpingB*+ WZend_Paginator_ScrollingStyle_ElasticB&* OZend_Paginator_ScrollingStyle_AllB) =Zend_Paginator_ExceptionB ( CZend_Paginator_Adapter_NullB$' KZend_Paginator_Adapter_IteratorB)& UZend_Paginator_Adapter_DbTableSelectB$% KZend_Paginator_Adapter_DbSelectB!$ EZend_Paginator_Adapter_ArrayB# #Zend_OpenIdB" 5Zend_OpenId_ProviderB! ?Zend_OpenId_Provider_UserB&  OZend_OpenId_Provider_User_SessionB! EZend_OpenId_Provider_StorageB& OZend_OpenId_Provider_Storage_FileB 7Zend_OpenId_ExtensionB AZend_OpenId_Extension_SregB 7Zend_OpenId_ExceptionB 5Zend_OpenId_ConsumerB! EZend_OpenId_Consumer_StorageB& OZend_OpenId_Consumer_Storage_FileB !Zend_OauthB -Zend_Oauth_TokenB =Zend_Oauth_Token_RequestB' QZend_Oauth_Token_AuthorizedRequestB ;Zend_Oauth_Token_AccessB+ YZend_Oauth_Signature_SignatureAbstractB =Zend_Oauth_Signature_RsaB# IZend_Oauth_Signature_PlaintextB ?Zend_Oauth_Signature_HmacB +Zend_Oauth_HttpB ;Zend_Oauth_Http_UtilityB& OZend_Oauth_Http_UserAuthorizationB! EZend_Oauth_Http_RequestTokenB 
 CZend_Oauth_Http_AccessTokenB	 5Zend_Oauth_ExceptionB 3Zend_Oauth_ConsumerB /Zend_Oauth_ConfigB /Zend_Oauth_ClientB +Zend_NavigationB 5Zend_Navigation_PageB =Zend_Navigation_Page_UriB =Zend_Navigation_Page_MvcB ?Zend_Navigation_ExceptionB  ?Zend_Navigation_ContainerB Zend_MimeB~ )Zend_Mime_PartB} /Zend_Mime_MessageB| 3Zend_Mime_ExceptionB{ -Zend_Mime_DecodeBz #Zend_MemoryBy /Zend_Memory_ValueBx 3Zend_Memory_ManagerBw 7Zend_Memory_ExceptionBv 7Zend_Memory_ContainerB"u GZend_Memory_Container_MovableB!t EZend_Memory_Container_LockedB!s EZend_Memory_AccessControllerBr 3Zend_Measure_WeightBq 3Zend_Measure_VolumeB%p MZend_Measure_Viscosity_KinematicB#o IZend_Measure_Viscosity_DynamicBn 3Zend_Measure_TorqueBm /Zend_Measure_TimeBl =Zend_Measure_TemperatureBk 1Zend_Measure_SpeedB   d  }\8i@wW<	vZ/qI%




{
b
L
4					Z	1	i.u8}DT%nJ%mU2oGsR,                           A 7Zend_Queue_Adapter_DbB @ CZend_Queue_Adapter_Db_QueueB"? GZend_Queue_Adapter_Db_MessageB> =Zend_Queue_Adapter_ArrayB'= QZend_Queue_Adapter_AdapterAbstractB < CZend_Queue_Adapter_ActivemqB; -Zend_ProgressBarB: AZend_ProgressBar_ExceptionB9 =Zend_ProgressBar_AdapterB$8 KZend_ProgressBar_Adapter_JsPushB$7 KZend_ProgressBar_Adapter_JsPullB'6 QZend_ProgressBar_Adapter_ExceptionB%5 MZend_ProgressBar_Adapter_ConsoleB4 Zend_PdfB!3 EZend_Pdf_UpdateInfoContainerB2 -Zend_Pdf_TrailerB1 ;Zend_Pdf_Trailer_KeeperB0 AZend_Pdf_Trailer_GeneratorB/ +Zend_Pdf_TargetB. )Zend_Pdf_StyleB- 7Zend_Pdf_StringParserB, /Zend_Pdf_ResourceB+ ?Zend_Pdf_Resource_UnifiedB#* IZend_Pdf_Resource_ImageFactoryB) ;Zend_Pdf_Resource_ImageB!( EZend_Pdf_Resource_Image_TiffB ' CZend_Pdf_Resource_Image_PngB!& EZend_Pdf_Resource_Image_JpegB$% KZend_Pdf_Resource_GraphicsStateB$ 9Zend_Pdf_Resource_FontB!# EZend_Pdf_Resource_Font_Type0B"" GZend_Pdf_Resource_Font_SimpleB+! YZend_Pdf_Resource_Font_Simple_StandardB8  sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsB6 oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanB7 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicB; yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicB5 mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldB2 gZend_Pdf_Resource_Font_Simple_Standard_SymbolB< {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueBA Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliqueB9 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldB5 mZend_Pdf_Resource_Font_Simple_Standard_HelveticaB: wZend_Pdf_Resource_Font_Simple_Standard_CourierObliqueB> Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliqueB7 qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldB3 iZend_Pdf_Resource_Font_Simple_Standard_CourierB) UZend_Pdf_Resource_Font_Simple_ParsedB2 gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypeB* WZend_Pdf_Resource_Font_FontDescriptorB% MZend_Pdf_Resource_Font_ExtractedB# IZend_Pdf_Resource_Font_CidFontB, [Zend_Pdf_Resource_Font_CidFont_TrueTypeB  CZend_Pdf_Resource_ExtractorB$ KZend_Pdf_Resource_ContentStreamB3
 iZend_Pdf_RecursivelyIteratableObjectsContainerB	 +Zend_Pdf_ParserB 'Zend_Pdf_PageB -Zend_Pdf_OutlineB ;Zend_Pdf_Outline_LoadedB =Zend_Pdf_Outline_CreatedB /Zend_Pdf_NameTreeB )Zend_Pdf_ImageB 'Zend_Pdf_FontB ?Zend_Pdf_Filter_RunLengthB   CZend_Pdf_Filter_CompressionB$ KZend_Pdf_Filter_Compression_LzwB&~ OZend_Pdf_Filter_Compression_FlateB} =Zend_Pdf_Filter_AsciiHexB| ;Zend_Pdf_Filter_Ascii85B"{ GZend_Pdf_FileParserDataSourceB)z UZend_Pdf_FileParserDataSource_StringB'y QZend_Pdf_FileParserDataSource_FileBx 3Zend_Pdf_FileParserBw ?Zend_Pdf_FileParser_ImageB"v GZend_Pdf_FileParser_Image_PngBu =Zend_Pdf_FileParser_FontB&t OZend_Pdf_FileParser_Font_OpenTypeB/s aZend_Pdf_FileParser_Font_OpenType_TrueTypeBr 1Zend_Pdf_ExceptionBq ;Zend_Pdf_ElementFactoryB"p GZend_Pdf_ElementFactory_ProxyBo -Zend_Pdf_ElementBn ;Zend_Pdf_Element_StringB#m IZend_Pdf_Element_String_BinaryBl ;Zend_Pdf_Element_StreamBk AZend_Pdf_Element_ReferenceB%j MZend_Pdf_Element_Reference_TableB'i QZend_Pdf_Element_Reference_ContextBh ;Zend_Pdf_Element_ObjectB#g IZend_Pdf_Element_Object_StreamBf =Zend_Pdf_Element_NumericBe 7Zend_Pdf_Element_NullBd 7Zend_Pdf_Element_NameB c CZend_Pdf_Element_DictionaryBb =Zend_Pdf_Element_BooleanBa 9Zend_Pdf_Element_ArrayB` 5Zend_Pdf_DestinationB_ ?Zend_Pdf_Destination_ZoomB!^ EZend_Pdf_Destination_UnknownB   Y  rN'qFsR3mT7_&


S
			]	0	Si=b=X_+_!_)O                                     2 gZend_Search_Lucene_Search_Query_PreprocessingB7 qZend_Search_Lucene_Search_Query_Preprocessing_TermB9 uZend_Search_Lucene_Search_Query_Preprocessing_PhraseB8 sZend_Search_Lucene_Search_Query_Preprocessing_FuzzyB+ YZend_Search_Lucene_Search_Query_PhraseB. _Zend_Search_Lucene_Search_Query_MultiTermB2 gZend_Search_Lucene_Search_Query_InsignificantB* WZend_Search_Lucene_Search_Query_FuzzyB* WZend_Search_Lucene_Search_Query_EmptyB, [Zend_Search_Lucene_Search_Query_BooleanB2 gZend_Search_Lucene_Search_Highlighter_DefaultB: wZend_Search_Lucene_Search_BooleanExpressionRecognizerB =Zend_Search_Lucene_ProxyB% MZend_Search_Lucene_PriorityQueueB/ aZend_Search_Lucene_Interface_MultiSearcherB# IZend_Search_Lucene_LockManagerB$
 KZend_Search_Lucene_Index_WriterB0	 cZend_Search_Lucene_Index_TermsPriorityQueueB& OZend_Search_Lucene_Index_TermInfoB" GZend_Search_Lucene_Index_TermB+ YZend_Search_Lucene_Index_SegmentWriterB8 sZend_Search_Lucene_Index_SegmentWriter_StreamWriterB: wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterB+ YZend_Search_Lucene_Index_SegmentMergerB) UZend_Search_Lucene_Index_SegmentInfoB' QZend_Search_Lucene_Index_FieldInfoB(  SZend_Search_Lucene_Index_DocsFilterB. _Zend_Search_Lucene_Index_DictionaryLoaderB!~ EZend_Search_Lucene_FSMActionB} 9Zend_Search_Lucene_FSMB| =Zend_Search_Lucene_FieldB!{ EZend_Search_Lucene_ExceptionB z CZend_Search_Lucene_DocumentB%y MZend_Search_Lucene_Document_XlsxB%x MZend_Search_Lucene_Document_PptxB(w SZend_Search_Lucene_Document_OpenXmlB%v MZend_Search_Lucene_Document_HtmlB*u WZend_Search_Lucene_Document_ExceptionB%t MZend_Search_Lucene_Document_DocxB,s [Zend_Search_Lucene_Analysis_TokenFilterB6r oZend_Search_Lucene_Analysis_TokenFilter_StopWordsB7q qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsB:p wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8B6o oZend_Search_Lucene_Analysis_TokenFilter_LowerCaseB&n OZend_Search_Lucene_Analysis_TokenB)m UZend_Search_Lucene_Analysis_AnalyzerB0l cZend_Search_Lucene_Analysis_Analyzer_CommonB8k sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumBIj Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitiveB5i mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8BFh Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitiveB8g sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumBIf Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitiveB5e mZend_Search_Lucene_Analysis_Analyzer_Common_TextBFd Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiveBc 7Zend_Search_ExceptionBb -Zend_Rest_ServerBa AZend_Rest_Server_ExceptionB` +Zend_Rest_RouteB_ 3Zend_Rest_ExceptionB^ 5Zend_Rest_ControllerB] -Zend_Rest_ClientB\ ;Zend_Rest_Client_ResultB&[ OZend_Rest_Client_Result_ExceptionBZ AZend_Rest_Client_ExceptionBY 'Zend_RegistryBX =Zend_Reflection_PropertyBW ?Zend_Reflection_ParameterBV 9Zend_Reflection_MethodBU =Zend_Reflection_FunctionBT 5Zend_Reflection_FileBS ?Zend_Reflection_ExtensionBR ?Zend_Reflection_ExceptionBQ =Zend_Reflection_DocblockB!P EZend_Reflection_Docblock_TagB(O SZend_Reflection_Docblock_Tag_ReturnB'N QZend_Reflection_Docblock_Tag_ParamBM 7Zend_Reflection_ClassBL !Zend_QueueBK 9Zend_Queue_Stomp_FrameBJ ;Zend_Queue_Stomp_ClientB'I QZend_Queue_Stomp_Client_ConnectionBH 1Zend_Queue_MessageB#G IZend_Queue_Message_PlatformJobB F CZend_Queue_Message_IteratorBE 5Zend_Queue_ExceptionB(D SZend_Queue_Adapter_PlatformJobQueueBC ;Zend_Queue_Adapter_NullB!B EZend_Queue_Adapter_MemcacheqB   ]  tLX+d/o?P!



z
U
0
				`	;		iCzR,lN1S%tI%yHxX,wR0
                                %w MZend_Service_Amazon_S3_ExceptionB"v GZend_Service_Amazon_ResultSetBu ?Zend_Service_Amazon_QueryB!t EZend_Service_Amazon_OfferSetBs ?Zend_Service_Amazon_OfferB&r OZend_Service_Amazon_ListmaniaListBq =Zend_Service_Amazon_ItemBp ?Zend_Service_Amazon_ImageB"o GZend_Service_Amazon_ExceptionB(n SZend_Service_Amazon_EditorialReviewBm ;Zend_Service_Amazon_Ec2B+l YZend_Service_Amazon_Ec2_SecuritygroupsB%k MZend_Service_Amazon_Ec2_ResponseB#j IZend_Service_Amazon_Ec2_RegionB$i KZend_Service_Amazon_Ec2_KeypairB%h MZend_Service_Amazon_Ec2_InstanceB-g ]Zend_Service_Amazon_Ec2_Instance_WindowsB.f _Zend_Service_Amazon_Ec2_Instance_ReservedB"e GZend_Service_Amazon_Ec2_ImageB&d OZend_Service_Amazon_Ec2_ExceptionB&c OZend_Service_Amazon_Ec2_ElasticipB b CZend_Service_Amazon_Ec2_EbsB'a QZend_Service_Amazon_Ec2_CloudWatchB.` _Zend_Service_Amazon_Ec2_AvailabilityzonesB%_ MZend_Service_Amazon_Ec2_AbstractB'^ QZend_Service_Amazon_CustomerReviewB'] QZend_Service_Amazon_AuthenticationB*\ WZend_Service_Amazon_Authentication_V2B*[ WZend_Service_Amazon_Authentication_V1B*Z WZend_Service_Amazon_Authentication_S3B1Y eZend_Service_Amazon_Authentication_ExceptionB$X KZend_Service_Amazon_AccessoriesB!W EZend_Service_Amazon_AbstractBV 5Zend_Service_AkismetBU 7Zend_Service_AbstractBT 9Zend_Server_ReflectionB'S QZend_Server_Reflection_ReturnValueB%R MZend_Server_Reflection_PrototypeB%Q MZend_Server_Reflection_ParameterB P CZend_Server_Reflection_NodeB"O GZend_Server_Reflection_MethodB$N KZend_Server_Reflection_FunctionB-M ]Zend_Server_Reflection_Function_AbstractB%L MZend_Server_Reflection_ExceptionB!K EZend_Server_Reflection_ClassB!J EZend_Server_Method_PrototypeB!I EZend_Server_Method_ParameterB"H GZend_Server_Method_DefinitionB G CZend_Server_Method_CallbackBF 7Zend_Server_ExceptionBE 9Zend_Server_DefinitionBD /Zend_Server_CacheBC 5Zend_Server_AbstractBB +Zend_SerializerBA ?Zend_Serializer_ExceptionB!@ EZend_Serializer_Adapter_WddxB)? UZend_Serializer_Adapter_PythonPickleB)> UZend_Serializer_Adapter_PhpSerializeB$= KZend_Serializer_Adapter_PhpCodeB!< EZend_Serializer_Adapter_JsonB%; MZend_Serializer_Adapter_IgbinaryB!: EZend_Serializer_Adapter_Amf3B!9 EZend_Serializer_Adapter_Amf0B,8 [Zend_Serializer_Adapter_AdapterAbstractB7 1Zend_Search_LuceneB06 cZend_Search_Lucene_TermStreamsPriorityQueueB$5 KZend_Search_Lucene_Storage_FileB+4 YZend_Search_Lucene_Storage_File_MemoryB/3 aZend_Search_Lucene_Storage_File_FilesystemB)2 UZend_Search_Lucene_Storage_DirectoryB41 kZend_Search_Lucene_Storage_Directory_FilesystemB%0 MZend_Search_Lucene_Search_WeightB*/ WZend_Search_Lucene_Search_Weight_TermB,. [Zend_Search_Lucene_Search_Weight_PhraseB/- aZend_Search_Lucene_Search_Weight_MultiTermB+, YZend_Search_Lucene_Search_Weight_EmptyB-+ ]Zend_Search_Lucene_Search_Weight_BooleanB)* UZend_Search_Lucene_Search_SimilarityB1) eZend_Search_Lucene_Search_Similarity_DefaultB)( UZend_Search_Lucene_Search_QueryTokenB3' iZend_Search_Lucene_Search_QueryParserExceptionB1& eZend_Search_Lucene_Search_QueryParserContextB*% WZend_Search_Lucene_Search_QueryParserB)$ UZend_Search_Lucene_Search_QueryLexerB'# QZend_Search_Lucene_Search_QueryHitB)" UZend_Search_Lucene_Search_QueryEntryB.! _Zend_Search_Lucene_Search_QueryEntry_TermB2  gZend_Search_Lucene_Search_QueryEntry_SubqueryB0 cZend_Search_Lucene_Search_QueryEntry_PhraseB$ KZend_Search_Lucene_Search_QueryB- ]Zend_Search_Lucene_Search_Query_WildcardB) UZend_Search_Lucene_Search_Query_TermB* WZend_Search_Lucene_Search_Query_RangeB   =  a2kO+m(Q
|>


p
<
			s	8w'pi]ED)l  34 iZend_Service_DeveloperGarden_Request_ExceptionBR3 %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequestBY2 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequestBd1 IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequestBQ0 #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequestBR/ %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequestBY. 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequestBd- IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequestBQ, #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequestBO+ Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequestBU* +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequestBU) +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequestBV( -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequestBa' CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequestBZ& 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequestBT% )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequestBR$ %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequestBY# 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequestBQ" #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequestBQ! #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequestBa  CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequestBN Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformationBL Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalanceBJ Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPoolB- ]Zend_Service_DeveloperGarden_LocalSearchB> Zend_Service_DeveloperGarden_LocalSearch_SearchParametersB7 qZend_Service_DeveloperGarden_LocalSearch_ExceptionB, [Zend_Service_DeveloperGarden_IpLocationB6 oZend_Service_DeveloperGarden_IpLocation_IpAddressB+ YZend_Service_DeveloperGarden_ExceptionB, [Zend_Service_DeveloperGarden_CredentialB0 cZend_Service_DeveloperGarden_ConferenceCallBC Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatusBC Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetailB< {Zend_Service_DeveloperGarden_ConferenceCall_ParticipantB: wZend_Service_DeveloperGarden_ConferenceCall_ExceptionBD 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceScheduleBB Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetailBC Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccountB- ]Zend_Service_DeveloperGarden_Client_SoapB2 gZend_Service_DeveloperGarden_Client_ExceptionB7 qZend_Service_DeveloperGarden_Client_ClientAbstractB1
 eZend_Service_DeveloperGarden_BaseUserServiceBA	 Zend_Service_DeveloperGarden_BaseUserService_AccountBalanceB 9Zend_Service_DeliciousB& OZend_Service_Delicious_SimplePostB$ KZend_Service_Delicious_PostListB  CZend_Service_Delicious_PostB% MZend_Service_Delicious_ExceptionB  CZend_Service_AudioscrobblerB 3Zend_Service_AmazonB ;Zend_Service_Amazon_SqsB&  OZend_Service_Amazon_Sqs_ExceptionB! EZend_Service_Amazon_SimpleDbB*~ WZend_Service_Amazon_SimpleDb_ResponseB&} OZend_Service_Amazon_SimpleDb_PageB+| YZend_Service_Amazon_SimpleDb_ExceptionB+{ YZend_Service_Amazon_SimpleDb_AttributeB'z QZend_Service_Amazon_SimilarProductBy 9Zend_Service_Amazon_S3B"x GZend_Service_Amazon_S3_StreamB   .  j-h:i"F


+		r	oRD"P9 r                                                                              fb MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponseBSa 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponseBU` +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseTypeBQ_ #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseB[^ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseTypeBW] /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseB[\ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseTypeBW[ /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseB\Z 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseTypeBXY 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseBgX OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseTypeBcW GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseB`V AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseTypeB\U 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseBZT 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseTypeBVS -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseBXR 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseTypeBTQ )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseB_P ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseTypeB[O 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseBWN /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseTypeBSM 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseBQL #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstractBSK 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponseBJJ Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseTypeBgI OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseTypeBcH GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseBWG /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponseBUF +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponseBSE 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponseB3D iZend_Service_DeveloperGarden_Response_BaseTypeBJC Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstractBCB Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCallBGA Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequencedB=@ }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallBA? Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatusBA> Zend_Service_DeveloperGarden_Request_SmsValidation_ValidateBN= Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeywordBC< Zend_Service_DeveloperGarden_Request_SmsValidation_InvalidateBL; Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbersBB: Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstractB99 uZend_Service_DeveloperGarden_Request_SendSms_SendSMSB>8 Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMSB97 uZend_Service_DeveloperGarden_Request_RequestAbstractBI6 Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequestBE5 Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequestB   ;  I)W
o 9


X			l	%~#7Jl3]2R)|Q i6                               - ]Zend_Service_Ebay_Finding_Response_ItemsB2 gZend_Service_Ebay_Finding_Response_HistogramsB0 cZend_Service_Ebay_Finding_Response_AbstractB/ aZend_Service_Ebay_Finding_PaginationOutputB* WZend_Service_Ebay_Finding_ListingInfoB( SZend_Service_Ebay_Finding_ExceptionB, [Zend_Service_Ebay_Finding_Error_MessageB) UZend_Service_Ebay_Finding_Error_DataB- ]Zend_Service_Ebay_Finding_Error_Data_SetB' QZend_Service_Ebay_Finding_CategoryB1 eZend_Service_Ebay_Finding_Category_HistogramB5 mZend_Service_Ebay_Finding_Category_Histogram_SetB; yZend_Service_Ebay_Finding_Category_Histogram_ContainerB% MZend_Service_Ebay_Finding_AspectB) UZend_Service_Ebay_Finding_Aspect_SetB5 mZend_Service_Ebay_Finding_Aspect_Histogram_ValueB9 uZend_Service_Ebay_Finding_Aspect_Histogram_Value_SetB9 uZend_Service_Ebay_Finding_Aspect_Histogram_ContainerB' QZend_Service_Ebay_Finding_AbstractB 
 CZend_Service_Ebay_ExceptionB	 AZend_Service_Ebay_AbstractB+ YZend_Service_DeveloperGarden_VoiceCallB/ aZend_Service_DeveloperGarden_SmsValidationB) UZend_Service_DeveloperGarden_SendSmsB5 mZend_Service_DeveloperGarden_SecurityTokenServerB; yZend_Service_DeveloperGarden_SecurityTokenServer_CacheBK Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstractBL Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponseBP !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponseBG  Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponseBJ Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponseBK~ Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2ResponseBL} Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponseBI| Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumberBW{ /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponseBJz Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponseBUy +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponseBCx Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponseBCw Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstractBHv Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponseBUu +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponseBQt #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponseBIs Zend_Service_DeveloperGarden_Response_SecurityTokenServer_ExceptionB;r yZend_Service_DeveloperGarden_Response_ResponseAbstractBOq Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseTypeBKp Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseBAo Zend_Service_DeveloperGarden_Response_IpLocation_RegionTypeBKn Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseTypeBGm Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseBLl Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationTypeBIk Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesTypeB>j Zend_Service_DeveloperGarden_Response_IpLocation_CityTypeB4i kZend_Service_DeveloperGarden_Response_ExceptionBTh )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponseB[g 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponseBff MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponseBSe 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponseBTd )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponseB[c 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponseB   Y  l<T2d<uW.]5



z
U
2
					^	0	yT* mM&h3	\/}O)z8 G^                                <v {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogsBAu Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstanceBDt 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectoriesBUs +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogsBDr 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSourcesB8q sZend_Service_WindowsAzure_Credentials_SharedKeyLiteB4p kZend_Service_WindowsAzure_Credentials_SharedKeyBAo Zend_Service_WindowsAzure_Credentials_SharedAccessSignatureB4n kZend_Service_WindowsAzure_Credentials_ExceptionB>m Zend_Service_WindowsAzure_Credentials_CredentialsAbstractBl 5Zend_Service_TwitterB k CZend_Service_Twitter_SearchB#j IZend_Service_Twitter_ExceptionBi ;Zend_Service_TechnoratiB#h IZend_Service_Technorati_WeblogB"g GZend_Service_Technorati_UtilsB*f WZend_Service_Technorati_TagsResultSetB'e QZend_Service_Technorati_TagsResultB)d UZend_Service_Technorati_TagResultSetB&c OZend_Service_Technorati_TagResultB,b [Zend_Service_Technorati_SearchResultSetB)a UZend_Service_Technorati_SearchResultB&` OZend_Service_Technorati_ResultSetB#_ IZend_Service_Technorati_ResultB*^ WZend_Service_Technorati_KeyInfoResultB*] WZend_Service_Technorati_GetInfoResultB&\ OZend_Service_Technorati_ExceptionB1[ eZend_Service_Technorati_DailyCountsResultSetB.Z _Zend_Service_Technorati_DailyCountsResultB,Y [Zend_Service_Technorati_CosmosResultSetB)X UZend_Service_Technorati_CosmosResultB+W YZend_Service_Technorati_BlogInfoResultB#V IZend_Service_Technorati_AuthorBU ;Zend_Service_StrikeIronB(T SZend_Service_StrikeIron_ZipCodeInfoB2S gZend_Service_StrikeIron_USAddressVerificationB-R ]Zend_Service_StrikeIron_SalesUseTaxBasicB&Q OZend_Service_StrikeIron_ExceptionB&P OZend_Service_StrikeIron_DecoratorB!O EZend_Service_StrikeIron_BaseBN ;Zend_Service_SlideShareB&M OZend_Service_SlideShare_SlideShowB&L OZend_Service_SlideShare_ExceptionBK 1Zend_Service_SimpyB$J KZend_Service_Simpy_WatchlistSetB*I WZend_Service_Simpy_WatchlistFilterSetB'H QZend_Service_Simpy_WatchlistFilterB!G EZend_Service_Simpy_WatchlistBF ?Zend_Service_Simpy_TagSetBE 9Zend_Service_Simpy_TagBD AZend_Service_Simpy_NoteSetBC ;Zend_Service_Simpy_NoteBB AZend_Service_Simpy_LinkSetB!A EZend_Service_Simpy_LinkQueryB@ ;Zend_Service_Simpy_LinkB%? MZend_Service_ShortUrl_TinyUrlComB&> OZend_Service_ShortUrl_MetamarkNetB!= EZend_Service_ShortUrl_JdemCzB< AZend_Service_ShortUrl_IsGdB$; KZend_Service_ShortUrl_ExceptionB,: [Zend_Service_ShortUrl_AbstractShortenerB9 9Zend_Service_ReCaptchaB$8 KZend_Service_ReCaptcha_ResponseB$7 KZend_Service_ReCaptcha_MailHideB.6 _Zend_Service_ReCaptcha_MailHide_ExceptionB%5 MZend_Service_ReCaptcha_ExceptionB4 7Zend_Service_NirvanixB#3 IZend_Service_Nirvanix_ResponseB)2 UZend_Service_Nirvanix_Namespace_ImfsB)1 UZend_Service_Nirvanix_Namespace_BaseB$0 KZend_Service_Nirvanix_ExceptionB/ 7Zend_Service_LiveDocxB$. KZend_Service_LiveDocx_MailMergeB$- KZend_Service_LiveDocx_ExceptionB, 3Zend_Service_FlickrB"+ GZend_Service_Flickr_ResultSetB* AZend_Service_Flickr_ResultB) ?Zend_Service_Flickr_ImageB( 9Zend_Service_ExceptionB' ?Zend_Service_Ebay_FindingB)& UZend_Service_Ebay_Finding_StorefrontB+% YZend_Service_Ebay_Finding_ShippingInfoB+$ YZend_Service_Ebay_Finding_Set_AbstractB,# [Zend_Service_Ebay_Finding_SellingStatusB)" UZend_Service_Ebay_Finding_SellerInfoB,! [Zend_Service_Ebay_Finding_Search_ResultB*  WZend_Service_Ebay_Finding_Search_ItemB. _Zend_Service_Ebay_Finding_Search_Item_SetB0 cZend_Service_Ebay_Finding_Response_KeywordsB   W  aTl6^K


i
1				O	|[4
^8qJ {\3uV6^5|I2gF/                     M 3Zend_Test_DbAdapterBL /Zend_Tag_ItemListBK 'Zend_Tag_ItemBJ 1Zend_Tag_ExceptionBI )Zend_Tag_CloudBH =Zend_Tag_Cloud_ExceptionB!G EZend_Tag_Cloud_Decorator_TagB%F MZend_Tag_Cloud_Decorator_HtmlTagB'E QZend_Tag_Cloud_Decorator_HtmlCloudB'D QZend_Tag_Cloud_Decorator_ExceptionB#C IZend_Tag_Cloud_Decorator_CloudBB )Zend_Soap_WsdlB/A aZend_Soap_Wsdl_Strategy_DefaultComplexTypeB&@ OZend_Soap_Wsdl_Strategy_CompositeB0? cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequenceB/> aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplexB$= KZend_Soap_Wsdl_Strategy_AnyTypeB%< MZend_Soap_Wsdl_Strategy_AbstractB; =Zend_Soap_Wsdl_ExceptionB: -Zend_Soap_ServerB9 AZend_Soap_Server_ExceptionB8 -Zend_Soap_ClientB7 9Zend_Soap_Client_LocalB6 AZend_Soap_Client_ExceptionB5 ;Zend_Soap_Client_DotNetB4 ;Zend_Soap_Client_CommonB3 9Zend_Soap_AutoDiscoverB%2 MZend_Soap_AutoDiscover_ExceptionB1 %Zend_SessionB)0 UZend_Session_Validator_HttpUserAgentB$/ KZend_Session_Validator_AbstractB'. QZend_Session_SaveHandler_ExceptionB%- MZend_Session_SaveHandler_DbTableB, 9Zend_Session_NamespaceB+ 9Zend_Session_ExceptionB* 7Zend_Session_AbstractB) 1Zend_Service_YahooB$( KZend_Service_Yahoo_WebResultSetB!' EZend_Service_Yahoo_WebResultB&& OZend_Service_Yahoo_VideoResultSetB#% IZend_Service_Yahoo_VideoResultB!$ EZend_Service_Yahoo_ResultSetB# ?Zend_Service_Yahoo_ResultB)" UZend_Service_Yahoo_PageDataResultSetB&! OZend_Service_Yahoo_PageDataResultB%  MZend_Service_Yahoo_NewsResultSetB" GZend_Service_Yahoo_NewsResultB& OZend_Service_Yahoo_LocalResultSetB# IZend_Service_Yahoo_LocalResultB+ YZend_Service_Yahoo_InlinkDataResultSetB( SZend_Service_Yahoo_InlinkDataResultB& OZend_Service_Yahoo_ImageResultSetB# IZend_Service_Yahoo_ImageResultB =Zend_Service_Yahoo_ImageB& OZend_Service_WindowsAzure_StorageB4 kZend_Service_WindowsAzure_Storage_TableInstanceB7 qZend_Service_WindowsAzure_Storage_TableEntityQueryB2 gZend_Service_WindowsAzure_Storage_TableEntityB, [Zend_Service_WindowsAzure_Storage_TableB< {Zend_Service_WindowsAzure_Storage_StorageEntityAbstractB7 qZend_Service_WindowsAzure_Storage_SignedIdentifierB3 iZend_Service_WindowsAzure_Storage_QueueMessageB4 kZend_Service_WindowsAzure_Storage_QueueInstanceB, [Zend_Service_WindowsAzure_Storage_QueueB9 uZend_Service_WindowsAzure_Storage_PageRegionInstanceB4 kZend_Service_WindowsAzure_Storage_LeaseInstanceB9 uZend_Service_WindowsAzure_Storage_DynamicTableEntityB3
 iZend_Service_WindowsAzure_Storage_BlobInstanceB4	 kZend_Service_WindowsAzure_Storage_BlobContainerB+ YZend_Service_WindowsAzure_Storage_BlobB2 gZend_Service_WindowsAzure_Storage_Blob_StreamB; yZend_Service_WindowsAzure_Storage_BatchStorageAbstractB, [Zend_Service_WindowsAzure_Storage_BatchB- ]Zend_Service_WindowsAzure_SessionHandlerB> Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstractB1 eZend_Service_WindowsAzure_RetryPolicy_RetryNB2 gZend_Service_WindowsAzure_RetryPolicy_NoRetryB4  kZend_Service_WindowsAzure_RetryPolicy_ExceptionB( SZend_Service_WindowsAzure_ExceptionBJ~ Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscriptionB2} gZend_Service_WindowsAzure_Diagnostics_ManagerB3| iZend_Service_WindowsAzure_Diagnostics_LogLevelB4{ kZend_Service_WindowsAzure_Diagnostics_ExceptionBNz Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscriptionBHy Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLogBLx Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCountersBKw Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstractB   T  W#uH],eL0iI/




\
0
			b	Aq4i4	:{N$h9Sw@                                                    (! SZend_Tool_Project_Context_ExceptionB-  ]Zend_Tool_Project_Context_Content_EngineB3 iZend_Tool_Project_Context_Content_Engine_PhtmlB; yZend_Tool_Project_Context_Content_Engine_CodeGeneratorB0 cZend_Tool_Framework_System_Provider_VersionB0 cZend_Tool_Framework_System_Provider_PhpinfoB1 eZend_Tool_Framework_System_Provider_ManifestB/ aZend_Tool_Framework_System_Provider_ConfigB( SZend_Tool_Framework_System_ManifestB- ]Zend_Tool_Framework_System_Action_DeleteB- ]Zend_Tool_Framework_System_Action_CreateB! EZend_Tool_Framework_RegistryB+ YZend_Tool_Framework_Registry_ExceptionB+ YZend_Tool_Framework_Provider_SignatureB, [Zend_Tool_Framework_Provider_RepositoryB+ YZend_Tool_Framework_Provider_ExceptionB* WZend_Tool_Framework_Provider_AbstractB& OZend_Tool_Framework_Metadata_ToolB) UZend_Tool_Framework_Metadata_DynamicB' QZend_Tool_Framework_Metadata_BasicB, [Zend_Tool_Framework_Manifest_RepositoryB+ YZend_Tool_Framework_Manifest_ExceptionB1 eZend_Tool_Framework_Loader_IncludePathLoaderBJ
 Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIteratorB+	 YZend_Tool_Framework_Loader_BasicLoaderB( SZend_Tool_Framework_Loader_AbstractB" GZend_Tool_Framework_ExceptionB' QZend_Tool_Framework_Client_StorageB1 eZend_Tool_Framework_Client_Storage_DirectoryB( SZend_Tool_Framework_Client_ResponseBD 	Zend_Tool_Framework_Client_Response_ContentDecorator_SeparatorB' QZend_Tool_Framework_Client_RequestB( SZend_Tool_Framework_Client_ManifestB9  uZend_Tool_Framework_Client_Interactive_InputResponseB8 sZend_Tool_Framework_Client_Interactive_InputRequestB8~ sZend_Tool_Framework_Client_Interactive_InputHandlerB)} UZend_Tool_Framework_Client_ExceptionB'| QZend_Tool_Framework_Client_ConsoleBD{ 	Zend_Tool_Framework_Client_Console_ResponseDecorator_IndentionBDz 	Zend_Tool_Framework_Client_Console_ResponseDecorator_ColorizerBCy Zend_Tool_Framework_Client_Console_ResponseDecorator_BlockizeBFx Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenterB0w cZend_Tool_Framework_Client_Console_ManifestB2v gZend_Tool_Framework_Client_Console_HelpSystemB6u oZend_Tool_Framework_Client_Console_ArgumentParserB&t OZend_Tool_Framework_Client_ConfigB(s SZend_Tool_Framework_Client_AbstractB*r WZend_Tool_Framework_Action_RepositoryB)q UZend_Tool_Framework_Action_ExceptionB$p KZend_Tool_Framework_Action_BaseBo 'Zend_TimeSyncBn 1Zend_TimeSync_SntpBm 9Zend_TimeSync_ProtocolBl /Zend_TimeSync_NtpBk ;Zend_TimeSync_ExceptionBj +Zend_Text_TableBi 3Zend_Text_Table_RowBh ?Zend_Text_Table_ExceptionB&g OZend_Text_Table_Decorator_UnicodeB$f KZend_Text_Table_Decorator_AsciiBe 9Zend_Text_Table_ColumnBd 3Zend_Text_MultiByteBc -Zend_Text_FigletBb AZend_Text_Figlet_ExceptionBa 3Zend_Text_ExceptionB&` OZend_Test_PHPUnit_Db_SimpleTesterB,_ [Zend_Test_PHPUnit_Db_Operation_TruncateB*^ WZend_Test_PHPUnit_Db_Operation_InsertB-] ]Zend_Test_PHPUnit_Db_Operation_DeleteAllB*\ WZend_Test_PHPUnit_Db_Metadata_GenericB#[ IZend_Test_PHPUnit_Db_ExceptionB,Z [Zend_Test_PHPUnit_Db_DataSet_QueryTableB.Y _Zend_Test_PHPUnit_Db_DataSet_QueryDataSetB0X cZend_Test_PHPUnit_Db_DataSet_DbTableDataSetB)W UZend_Test_PHPUnit_Db_DataSet_DbTableB*V WZend_Test_PHPUnit_Db_DataSet_DbRowsetB$U KZend_Test_PHPUnit_Db_ConnectionB'T QZend_Test_PHPUnit_DatabaseTestCaseB)S UZend_Test_PHPUnit_ControllerTestCaseB0R cZend_Test_PHPUnit_Constraint_ResponseHeaderB*Q WZend_Test_PHPUnit_Constraint_RedirectB+P YZend_Test_PHPUnit_Constraint_ExceptionB*O WZend_Test_PHPUnit_Constraint_DomQueryBN 7Zend_Test_DbStatementB   F  a4zCi6h.a3



[
%				W	"~I]!q/da,o;LjF                              5g mZend_Tool_Project_Profile_Iterator_ContextFilterB-f ]Zend_Tool_Project_Profile_FileParser_XmlB(e SZend_Tool_Project_Profile_ExceptionB d CZend_Tool_Project_ExceptionB<c {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectoryB0b cZend_Tool_Project_Context_Zf_ViewsDirectoryB6a oZend_Tool_Project_Context_Zf_ViewScriptsDirectoryB0` cZend_Tool_Project_Context_Zf_ViewScriptFileB6_ oZend_Tool_Project_Context_Zf_ViewHelpersDirectoryB6^ oZend_Tool_Project_Context_Zf_ViewFiltersDirectoryBA] Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectoryB2\ gZend_Tool_Project_Context_Zf_UploadsDirectoryB0[ cZend_Tool_Project_Context_Zf_TestsDirectoryB7Z qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFileB:Y wZend_Tool_Project_Context_Zf_TestPHPUnitBootstrapFileB@X Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectoryB1W eZend_Tool_Project_Context_Zf_TestLibraryFileB6V oZend_Tool_Project_Context_Zf_TestLibraryDirectoryB:U wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFileBBT Zend_Tool_Project_Context_Zf_TestApplicationModulesDirectoryBAS Zend_Tool_Project_Context_Zf_TestApplicationModuleDirectoryB:R wZend_Tool_Project_Context_Zf_TestApplicationDirectoryB@Q Zend_Tool_Project_Context_Zf_TestApplicationControllerFileBEP Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectoryB>O Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFileB=N }Zend_Tool_Project_Context_Zf_TestApplicationActionMethodB4M kZend_Tool_Project_Context_Zf_TemporaryDirectoryB3L iZend_Tool_Project_Context_Zf_SessionsDirectoryB8K sZend_Tool_Project_Context_Zf_SearchIndexesDirectoryB<J {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectoryB8I sZend_Tool_Project_Context_Zf_PublicScriptsDirectoryB1H eZend_Tool_Project_Context_Zf_PublicIndexFileB7G qZend_Tool_Project_Context_Zf_PublicImagesDirectoryB1F eZend_Tool_Project_Context_Zf_PublicDirectoryB5E mZend_Tool_Project_Context_Zf_ProjectProviderFileB2D gZend_Tool_Project_Context_Zf_ModulesDirectoryB1C eZend_Tool_Project_Context_Zf_ModuleDirectoryB1B eZend_Tool_Project_Context_Zf_ModelsDirectoryB+A YZend_Tool_Project_Context_Zf_ModelFileB/@ aZend_Tool_Project_Context_Zf_LogsDirectoryB2? gZend_Tool_Project_Context_Zf_LocalesDirectoryB2> gZend_Tool_Project_Context_Zf_LibraryDirectoryB2= gZend_Tool_Project_Context_Zf_LayoutsDirectoryB8< sZend_Tool_Project_Context_Zf_LayoutScriptsDirectoryB2; gZend_Tool_Project_Context_Zf_LayoutScriptFileB.: _Zend_Tool_Project_Context_Zf_HtaccessFileB09 cZend_Tool_Project_Context_Zf_FormsDirectoryB*8 WZend_Tool_Project_Context_Zf_FormFileB/7 aZend_Tool_Project_Context_Zf_DocsDirectoryB-6 ]Zend_Tool_Project_Context_Zf_DbTableFileB25 gZend_Tool_Project_Context_Zf_DbTableDirectoryB/4 aZend_Tool_Project_Context_Zf_DataDirectoryB63 oZend_Tool_Project_Context_Zf_ControllersDirectoryB02 cZend_Tool_Project_Context_Zf_ControllerFileB21 gZend_Tool_Project_Context_Zf_ConfigsDirectoryB,0 [Zend_Tool_Project_Context_Zf_ConfigFileB0/ cZend_Tool_Project_Context_Zf_CacheDirectoryB/. aZend_Tool_Project_Context_Zf_BootstrapFileB6- oZend_Tool_Project_Context_Zf_ApplicationDirectoryB7, qZend_Tool_Project_Context_Zf_ApplicationConfigFileB/+ aZend_Tool_Project_Context_Zf_ApisDirectoryB.* _Zend_Tool_Project_Context_Zf_ActionMethodB3) iZend_Tool_Project_Context_Zf_AbstractClassFileB@( Zend_Tool_Project_Context_System_ProjectProvidersDirectoryB8' sZend_Tool_Project_Context_System_ProjectProfileFileB6& oZend_Tool_Project_Context_System_ProjectDirectoryB)% UZend_Tool_Project_Context_RepositoryB.$ _Zend_Tool_Project_Context_Filesystem_FileB3# iZend_Tool_Project_Context_Filesystem_DirectoryB2" gZend_Tool_Project_Context_Filesystem_AbstractB   i  M" {M vJ!nFjG$




|
e
J
4
#
				y	I	$gClG^8kL0gD$iDpL'bH)                     P ;Zend_Validate_IdenticalBO 1Zend_Validate_IbanBN 9Zend_Validate_HostnameBM /Zend_Validate_HexBL ?Zend_Validate_GreaterThanBK 3Zend_Validate_FloatB!J EZend_Validate_File_WordCountBI ?Zend_Validate_File_UploadBH ;Zend_Validate_File_SizeBG ;Zend_Validate_File_Sha1B!F EZend_Validate_File_NotExistsB E CZend_Validate_File_MimeTypeBD 9Zend_Validate_File_Md5BC AZend_Validate_File_IsImageB$B KZend_Validate_File_IsCompressedB!A EZend_Validate_File_ImageSizeB@ ;Zend_Validate_File_HashB!? EZend_Validate_File_FilesSizeB!> EZend_Validate_File_ExtensionB= ?Zend_Validate_File_ExistsB'< QZend_Validate_File_ExcludeMimeTypeB(; SZend_Validate_File_ExcludeExtensionB: =Zend_Validate_File_Crc32B9 =Zend_Validate_File_CountB8 ;Zend_Validate_ExceptionB7 AZend_Validate_EmailAddressB6 5Zend_Validate_DigitsB"5 GZend_Validate_Db_RecordExistsB$4 KZend_Validate_Db_NoRecordExistsB3 ?Zend_Validate_Db_AbstractB2 1Zend_Validate_DateB1 =Zend_Validate_CreditCardB0 3Zend_Validate_CcnumB/ 9Zend_Validate_CallbackB. 7Zend_Validate_BetweenB- 7Zend_Validate_BarcodeB, AZend_Validate_Barcode_UpceB+ AZend_Validate_Barcode_UpcaB* AZend_Validate_Barcode_SsccB$) KZend_Validate_Barcode_RoyalmailB"( GZend_Validate_Barcode_PostnetB!' EZend_Validate_Barcode_PlanetB#& IZend_Validate_Barcode_LeitcodeB % CZend_Validate_Barcode_Itf14B$ AZend_Validate_Barcode_IssnB*# WZend_Validate_Barcode_IntelligentMailB$" KZend_Validate_Barcode_IdentcodeB!! EZend_Validate_Barcode_Gtin14B!  EZend_Validate_Barcode_Gtin13B! EZend_Validate_Barcode_Gtin12B AZend_Validate_Barcode_Ean8B AZend_Validate_Barcode_Ean5B AZend_Validate_Barcode_Ean2B  CZend_Validate_Barcode_Ean18B  CZend_Validate_Barcode_Ean14B  CZend_Validate_Barcode_Ean13B  CZend_Validate_Barcode_Ean12B$ KZend_Validate_Barcode_Code93extB! EZend_Validate_Barcode_Code93B$ KZend_Validate_Barcode_Code39extB! EZend_Validate_Barcode_Code39B, [Zend_Validate_Barcode_Code25interleavedB! EZend_Validate_Barcode_Code25B* WZend_Validate_Barcode_AdapterAbstractB 3Zend_Validate_AlphaB 3Zend_Validate_AlnumB 9Zend_Validate_AbstractB Zend_UriB 'Zend_Uri_HttpB 1Zend_Uri_ExceptionB
 )Zend_TranslateB	 7Zend_Translate_PluralB =Zend_Translate_ExceptionB 9Zend_Translate_AdapterB! EZend_Translate_Adapter_XmlTmB! EZend_Translate_Adapter_XliffB AZend_Translate_Adapter_TmxB AZend_Translate_Adapter_TbxB ?Zend_Translate_Adapter_QtB AZend_Translate_Adapter_IniB#  IZend_Translate_Adapter_GettextB AZend_Translate_Adapter_CsvB!~ EZend_Translate_Adapter_ArrayB$} KZend_Tool_Project_Provider_ViewB$| KZend_Tool_Project_Provider_TestB/{ aZend_Tool_Project_Provider_ProjectProviderB'z QZend_Tool_Project_Provider_ProjectB'y QZend_Tool_Project_Provider_ProfileB&x OZend_Tool_Project_Provider_ModuleB%w MZend_Tool_Project_Provider_ModelB(v SZend_Tool_Project_Provider_ManifestB&u OZend_Tool_Project_Provider_LayoutB$t KZend_Tool_Project_Provider_FormB)s UZend_Tool_Project_Provider_ExceptionB'r QZend_Tool_Project_Provider_DbTableB)q UZend_Tool_Project_Provider_DbAdapterB*p WZend_Tool_Project_Provider_ControllerB+o YZend_Tool_Project_Provider_ApplicationB&n OZend_Tool_Project_Provider_ActionB(m SZend_Tool_Project_Provider_AbstractBl ?Zend_Tool_Project_ProfileB'k QZend_Tool_Project_Profile_ResourceB9j uZend_Tool_Project_Profile_Resource_SearchConstraintsB1i eZend_Tool_Project_Profile_Resource_ContainerB=h }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilterB   j  uV7`J5yZ5eAhB




l
J
(
				w	T	2	a1[0NZ-
m[1c>fK-pN2                        : 5Zend_XmlRpc_ResponseB9 ?Zend_XmlRpc_Response_HttpB8 3Zend_XmlRpc_RequestB7 ?Zend_XmlRpc_Request_StdinB6 =Zend_XmlRpc_Request_HttpB$5 KZend_XmlRpc_Generator_XmlWriterB,4 [Zend_XmlRpc_Generator_GeneratorAbstractB&3 OZend_XmlRpc_Generator_DomDocumentB2 /Zend_XmlRpc_FaultB1 7Zend_XmlRpc_ExceptionB0 1Zend_XmlRpc_ClientB#/ IZend_XmlRpc_Client_ServerProxyB+. YZend_XmlRpc_Client_ServerIntrospectionB+- YZend_XmlRpc_Client_IntrospectExceptionB%, MZend_XmlRpc_Client_HttpExceptionB&+ OZend_XmlRpc_Client_FaultExceptionB!* EZend_XmlRpc_Client_ExceptionB&) OZend_Wildfire_Protocol_JsonStreamB!( EZend_Wildfire_Plugin_FirePhpB.' _Zend_Wildfire_Plugin_FirePhp_TableMessageB)& UZend_Wildfire_Plugin_FirePhp_MessageB% ;Zend_Wildfire_ExceptionB&$ OZend_Wildfire_Channel_HttpHeadersB# Zend_ViewB" -Zend_View_StreamB! AZend_View_Helper_UserAgentB  5Zend_View_Helper_UrlB AZend_View_Helper_TranslateB =Zend_View_Helper_TinySrcB AZend_View_Helper_ServerUrlB) UZend_View_Helper_RenderToPlaceholderB! EZend_View_Helper_PlaceholderB* WZend_View_Helper_Placeholder_RegistryB4 kZend_View_Helper_Placeholder_Registry_ExceptionB+ YZend_View_Helper_Placeholder_ContainerB6 oZend_View_Helper_Placeholder_Container_StandaloneB5 mZend_View_Helper_Placeholder_Container_ExceptionB4 kZend_View_Helper_Placeholder_Container_AbstractB! EZend_View_Helper_PartialLoopB =Zend_View_Helper_PartialB' QZend_View_Helper_Partial_ExceptionB' QZend_View_Helper_PaginationControlB  CZend_View_Helper_NavigationB( SZend_View_Helper_Navigation_SitemapB% MZend_View_Helper_Navigation_MenuB& OZend_View_Helper_Navigation_LinksB/ aZend_View_Helper_Navigation_HelperAbstractB, [Zend_View_Helper_Navigation_BreadcrumbsB
 ;Zend_View_Helper_LayoutB	 7Zend_View_Helper_JsonB" GZend_View_Helper_InlineScriptB# IZend_View_Helper_HtmlQuicktimeB ?Zend_View_Helper_HtmlPageB  CZend_View_Helper_HtmlObjectB ?Zend_View_Helper_HtmlListB AZend_View_Helper_HtmlFlashB! EZend_View_Helper_HtmlElementB AZend_View_Helper_HeadTitleB  AZend_View_Helper_HeadStyleB  CZend_View_Helper_HeadScriptB~ ?Zend_View_Helper_HeadMetaB} ?Zend_View_Helper_HeadLinkB| ?Zend_View_Helper_GravatarB"{ GZend_View_Helper_FormTextareaBz ?Zend_View_Helper_FormTextB y CZend_View_Helper_FormSubmitB x CZend_View_Helper_FormSelectBw AZend_View_Helper_FormResetBv AZend_View_Helper_FormRadioB"u GZend_View_Helper_FormPasswordBt ?Zend_View_Helper_FormNoteB's QZend_View_Helper_FormMultiCheckboxBr AZend_View_Helper_FormLabelBq AZend_View_Helper_FormImageB p CZend_View_Helper_FormHiddenBo ?Zend_View_Helper_FormFileB n CZend_View_Helper_FormErrorsB!m EZend_View_Helper_FormElementB"l GZend_View_Helper_FormCheckboxB k CZend_View_Helper_FormButtonBj 7Zend_View_Helper_FormBi ?Zend_View_Helper_FieldsetBh =Zend_View_Helper_DoctypeB!g EZend_View_Helper_DeclareVarsBf 9Zend_View_Helper_CycleBe ?Zend_View_Helper_CurrencyBd =Zend_View_Helper_BaseUrlBc ;Zend_View_Helper_ActionBb ?Zend_View_Helper_AbstractBa 3Zend_View_ExceptionB` 1Zend_View_AbstractB_ %Zend_VersionB^ 'Zend_ValidateB] AZend_Validate_StringLengthB#\ IZend_Validate_Sitemap_PriorityB[ ?Zend_Validate_Sitemap_LocB"Z GZend_Validate_Sitemap_LastmodB%Y MZend_Validate_Sitemap_ChangefreqBX 3Zend_Validate_RegexBW 9Zend_Validate_PostCodeBV 9Zend_Validate_NotEmptyBU 9Zend_Validate_LessThanBT 1Zend_Validate_IsbnBS -Zend_Validate_IpBR /Zend_Validate_IntBQ 7Zend_Validate_InArrayB   j  w\<kG%oU,dI.jG#




_
A
(
						q	N	)e5R%~Y2\5X.tS/oN2zV3       $ AZend_Barcode_Object_Code39C*# WZend_Barcode_Object_Code25interleavedC" AZend_Barcode_Object_Code25C ! CZend_Barcode_Object_Code128C  9Zend_Barcode_ExceptionC Zend_AuthC ?Zend_Auth_Storage_SessionC$ KZend_Auth_Storage_NonPersistentC  CZend_Auth_Storage_ExceptionC -Zend_Auth_ResultC 3Zend_Auth_ExceptionC =Zend_Auth_Adapter_OpenIdC 9Zend_Auth_Adapter_LdapC AZend_Auth_Adapter_InfoCardC 9Zend_Auth_Adapter_HttpC) UZend_Auth_Adapter_Http_Resolver_FileC. _Zend_Auth_Adapter_Http_Resolver_ExceptionC  CZend_Auth_Adapter_ExceptionC =Zend_Auth_Adapter_DigestC ?Zend_Auth_Adapter_DbTableC -Zend_ApplicationC# IZend_Application_Resource_ViewC( SZend_Application_Resource_UserAgentC( SZend_Application_Resource_TranslateC& OZend_Application_Resource_SessionC% MZend_Application_Resource_RouterC/
 aZend_Application_Resource_ResourceAbstractC)	 UZend_Application_Resource_NavigationC& OZend_Application_Resource_MultidbC& OZend_Application_Resource_ModulesC# IZend_Application_Resource_MailC" GZend_Application_Resource_LogC% MZend_Application_Resource_LocaleC% MZend_Application_Resource_LayoutC. _Zend_Application_Resource_FrontcontrollerC( SZend_Application_Resource_ExceptionC#  IZend_Application_Resource_DojoC! EZend_Application_Resource_DbC+~ YZend_Application_Resource_CachemanagerC&} OZend_Application_Module_BootstrapC'| QZend_Application_Module_AutoloaderC{ AZend_Application_ExceptionC)z UZend_Application_Bootstrap_ExceptionC1y eZend_Application_Bootstrap_BootstrapAbstractC)x UZend_Application_Bootstrap_BootstrapCw ?Zend_Amf_Value_TraitsInfoC-v ]Zend_Amf_Value_Messaging_RemotingMessageC*u WZend_Amf_Value_Messaging_ErrorMessageC,t [Zend_Amf_Value_Messaging_CommandMessageC*s WZend_Amf_Value_Messaging_AsyncMessageC-r ]Zend_Amf_Value_Messaging_ArrayCollectionC0q cZend_Amf_Value_Messaging_AcknowledgeMessageC-p ]Zend_Amf_Value_Messaging_AbstractMessageC!o EZend_Amf_Value_MessageHeaderCn AZend_Amf_Value_MessageBodyCm =Zend_Amf_Value_ByteArrayCl AZend_Amf_Util_BinaryStreamCk +Zend_Amf_ServerCj ?Zend_Amf_Server_ExceptionCi /Zend_Amf_ResponseCh 9Zend_Amf_Response_HttpCg -Zend_Amf_RequestCf 7Zend_Amf_Request_HttpCe ?Zend_Amf_Parse_TypeLoaderCd ?Zend_Amf_Parse_SerializerC#c IZend_Amf_Parse_Resource_StreamC(b SZend_Amf_Parse_Resource_MysqlResultC)a UZend_Amf_Parse_Resource_MysqliResultC ` CZend_Amf_Parse_OutputStreamC_ AZend_Amf_Parse_InputStreamC ^ CZend_Amf_Parse_DeserializerC#] IZend_Amf_Parse_Amf3_SerializerC%\ MZend_Amf_Parse_Amf3_DeserializerC#[ IZend_Amf_Parse_Amf0_SerializerC%Z MZend_Amf_Parse_Amf0_DeserializerCY 1Zend_Amf_ExceptionCX 1Zend_Amf_ConstantsCW 9Zend_Amf_Auth_AbstractC V CZend_Amf_Adobe_IntrospectorCU AZend_Amf_Adobe_DbInspectorCT 3Zend_Amf_Adobe_AuthCS Zend_AclCR 'Zend_Acl_RoleCQ 9Zend_Acl_Role_RegistryC%P MZend_Acl_Role_Registry_ExceptionCO /Zend_Acl_ResourceCN 1Zend_Acl_ExceptionCM /Zend_XmlRpc_ValueBL =Zend_XmlRpc_Value_StructBK =Zend_XmlRpc_Value_StringBJ =Zend_XmlRpc_Value_ScalarBI 7Zend_XmlRpc_Value_NilBH ?Zend_XmlRpc_Value_IntegerB G CZend_XmlRpc_Value_ExceptionBF =Zend_XmlRpc_Value_DoubleBE AZend_XmlRpc_Value_DateTimeB!D EZend_XmlRpc_Value_CollectionBC ?Zend_XmlRpc_Value_BooleanB!B EZend_XmlRpc_Value_BigIntegerBA =Zend_XmlRpc_Value_Base64B@ ;Zend_XmlRpc_Value_ArrayB? 1Zend_XmlRpc_ServerB> ?Zend_XmlRpc_Server_SystemB= =Zend_XmlRpc_Server_FaultB!< EZend_XmlRpc_Server_ExceptionB; =Zend_XmlRpc_Server_CacheB   W  |T-h5}M0kB)W


r
D
			s	E	vFNlB' wHpD [3^;a-                        +- YZend_Filter_Compress_CompressInterfaceC0, cZend_Feed_Writer_Renderer_RendererInterfaceC1+ eZend_Feed_Writer_Extension_RendererInterfaceC#* IZend_Feed_Reader_FeedInterfaceC$) KZend_Feed_Reader_EntryInterfaceC7( qZend_Feed_Pubsubhubbub_Model_SubscriptionInterfaceC-' ]Zend_Feed_Pubsubhubbub_CallbackInterfaceC & CZend_Feed_Builder_InterfaceC % CZend_Db_Statement_InterfaceC$$ KZend_Currency_CurrencyInterfaceC)# UZend_Crypt_Math_BigInteger_InterfaceC+" YZend_Controller_Router_Route_InterfaceC%! MZend_Controller_Router_InterfaceC)  UZend_Controller_Dispatcher_InterfaceC% MZend_Controller_Action_InterfaceC& OZend_Cloud_StorageService_AdapterC$ KZend_Cloud_QueueService_AdapterC, [Zend_Cloud_DocumentService_QueryAdapterC' QZend_Cloud_DocumentService_AdapterC 5Zend_Captcha_AdapterC! EZend_Cache_Backend_InterfaceC) UZend_Cache_Backend_ExtendedInterfaceC  CZend_Auth_Storage_InterfaceC  CZend_Auth_Adapter_InterfaceC. _Zend_Auth_Adapter_Http_Resolver_InterfaceC' QZend_Application_Resource_ResourceC4 kZend_Application_Bootstrap_ResourceBootstrapperC, [Zend_Application_Bootstrap_BootstrapperC ;Zend_Acl_Role_InterfaceC  CZend_Acl_Resource_InterfaceC ?Zend_Acl_Assert_InterfaceC# IZend_Wildfire_Plugin_InterfaceB$ KZend_Wildfire_Channel_InterfaceB 3Zend_View_InterfaceB' QZend_View_Helper_Navigation_HelperB
 AZend_View_Helper_InterfaceB	 ;Zend_Validate_InterfaceB+ YZend_Validate_Barcode_AdapterInterfaceB3 iZend_Tool_Project_Profile_FileParser_InterfaceB: wZend_Tool_Project_Context_System_TopLevelRestrictableB5 mZend_Tool_Project_Context_System_NotOverwritableB/ aZend_Tool_Project_Context_System_InterfaceB( SZend_Tool_Project_Context_InterfaceB+ YZend_Tool_Framework_Registry_InterfaceB2 gZend_Tool_Framework_Registry_EnabledInterfaceB-  ]Zend_Tool_Framework_Provider_PretendableB+ YZend_Tool_Framework_Provider_InterfaceB.~ _Zend_Tool_Framework_Provider_InteractableB/} aZend_Tool_Framework_Provider_InitializableB;| yZend_Tool_Framework_Provider_DocblockManifestInterfaceB+{ YZend_Tool_Framework_Metadata_InterfaceB.z _Zend_Tool_Framework_Metadata_AttributableB6y oZend_Tool_Framework_Manifest_ProviderManifestableB6x oZend_Tool_Framework_Manifest_MetadataManifestableB+w YZend_Tool_Framework_Manifest_InterfaceB+v YZend_Tool_Framework_Manifest_IndexableB4u kZend_Tool_Framework_Manifest_ActionManifestableB)t UZend_Tool_Framework_Loader_InterfaceB8s sZend_Tool_Framework_Client_Storage_AdapterInterfaceBDr 	Zend_Tool_Framework_Client_Response_ContentDecorator_InterfaceB;q yZend_Tool_Framework_Client_Interactive_OutputInterfaceB:p wZend_Tool_Framework_Client_Interactive_InputInterfaceB)o UZend_Tool_Framework_Action_InterfaceB(n SZend_Text_Table_Decorator_InterfaceBm /Zend_Tag_TaggableB&l OZend_Soap_Wsdl_Strategy_InterfaceB%k MZend_Session_Validator_InterfaceB'j QZend_Session_SaveHandler_InterfaceB$i KZend_Service_ShortUrl_ShortenerBIh Zend_Service_DeveloperGarden_Response_SecurityTokenServer_InterfaceBg 7Zend_Server_InterfaceB-f ]Zend_Serializer_Adapter_AdapterInterfaceB4e kZend_Search_Lucene_Search_Highlighter_InterfaceB!d EZend_Search_Lucene_InterfaceB3c iZend_Search_Lucene_Index_TermsStream_InterfaceB$b KZend_Queue_Stomp_FrameInterfaceB0a cZend_Queue_Stomp_Client_ConnectionInterfaceB(` SZend_Queue_Adapter_AdapterInterfaceB_ ?Zend_Pdf_Filter_InterfaceB&^ OZend_Pdf_ElementFactory_InterfaceB] ?Zend_Pdf_Canvas_InterfaceB,\ [Zend_Paginator_ScrollingStyle_InterfaceB$[ KZend_Paginator_AdapterAggregateB%Z MZend_Paginator_Adapter_InterfaceB&Y OZend_Oauth_Config_ConfigInterfaceB$X KZend_Memory_Container_InterfaceB1W eZend_Markup_Renderer_TokenConverterInterfaceB   c  {Y3xT.~O-gE#pE





]
<
						q	R	6	JtEu=X0p9rN)d<j4         1 eZend_CodeGenerator_Php_Property_DefaultValueC% MZend_CodeGenerator_Php_ParameterC2 gZend_CodeGenerator_Php_Parameter_DefaultValueC" GZend_CodeGenerator_Php_MethodC, [Zend_CodeGenerator_Php_Member_ContainerC+ YZend_CodeGenerator_Php_Member_AbstractC  CZend_CodeGenerator_Php_FileC%  MZend_CodeGenerator_Php_ExceptionC$ KZend_CodeGenerator_Php_DocblockC(~ SZend_CodeGenerator_Php_Docblock_TagC/} aZend_CodeGenerator_Php_Docblock_Tag_ReturnC.| _Zend_CodeGenerator_Php_Docblock_Tag_ParamC0{ cZend_CodeGenerator_Php_Docblock_Tag_LicenseC!z EZend_CodeGenerator_Php_ClassC y CZend_CodeGenerator_Php_BodyC$x KZend_CodeGenerator_Php_AbstractC!w EZend_CodeGenerator_ExceptionC v CZend_CodeGenerator_AbstractC&u OZend_Cloud_StorageService_FactoryC(t SZend_Cloud_StorageService_ExceptionC3s iZend_Cloud_StorageService_Adapter_WindowsAzureC)r UZend_Cloud_StorageService_Adapter_S3C/q aZend_Cloud_StorageService_Adapter_NirvanixC1p eZend_Cloud_StorageService_Adapter_FileSystemC'o QZend_Cloud_QueueService_MessageSetC$n KZend_Cloud_QueueService_MessageC$m KZend_Cloud_QueueService_FactoryC&l OZend_Cloud_QueueService_ExceptionC.k _Zend_Cloud_QueueService_Adapter_ZendQueueC1j eZend_Cloud_QueueService_Adapter_WindowsAzureC(i SZend_Cloud_QueueService_Adapter_SqsC4h kZend_Cloud_QueueService_Adapter_AbstractAdapterC.g _Zend_Cloud_OperationNotAvailableExceptionCf 5Zend_Cloud_ExceptionC%e MZend_Cloud_DocumentService_QueryC'd QZend_Cloud_DocumentService_FactoryC)c UZend_Cloud_DocumentService_ExceptionC+b YZend_Cloud_DocumentService_DocumentSetC(a SZend_Cloud_DocumentService_DocumentC4` kZend_Cloud_DocumentService_Adapter_WindowsAzureC:_ wZend_Cloud_DocumentService_Adapter_WindowsAzure_QueryC0^ cZend_Cloud_DocumentService_Adapter_SimpleDbC6] oZend_Cloud_DocumentService_Adapter_SimpleDb_QueryC7\ qZend_Cloud_DocumentService_Adapter_AbstractAdapterC[ AZend_Cloud_AbstractFactoryCZ /Zend_Captcha_WordCY 9Zend_Captcha_ReCaptchaCX 1Zend_Captcha_ImageCW 3Zend_Captcha_FigletCV 9Zend_Captcha_ExceptionCU /Zend_Captcha_DumbCT /Zend_Captcha_BaseCS !Zend_CacheCR 1Zend_Cache_ManagerCQ =Zend_Cache_Frontend_PageCP AZend_Cache_Frontend_OutputC!O EZend_Cache_Frontend_FunctionCN =Zend_Cache_Frontend_FileCM ?Zend_Cache_Frontend_ClassC L CZend_Cache_Frontend_CaptureCK 5Zend_Cache_ExceptionCJ +Zend_Cache_CoreCI 1Zend_Cache_BackendC"H GZend_Cache_Backend_ZendServerC(G SZend_Cache_Backend_ZendServer_ShMemC'F QZend_Cache_Backend_ZendServer_DiskC$E KZend_Cache_Backend_ZendPlatformCD ?Zend_Cache_Backend_XcacheC C CZend_Cache_Backend_WinCacheC!B EZend_Cache_Backend_TwoLevelsCA ;Zend_Cache_Backend_TestC@ ?Zend_Cache_Backend_StaticC? ?Zend_Cache_Backend_SqliteC!> EZend_Cache_Backend_MemcachedC$= KZend_Cache_Backend_LibmemcachedC< ;Zend_Cache_Backend_FileC!; EZend_Cache_Backend_BlackHoleC: 9Zend_Cache_Backend_ApcC9 %Zend_BarcodeC8 ?Zend_Barcode_Renderer_SvgC+7 YZend_Barcode_Renderer_RendererAbstractC6 ?Zend_Barcode_Renderer_PdfC 5 CZend_Barcode_Renderer_ImageC$4 KZend_Barcode_Renderer_ExceptionC3 =Zend_Barcode_Object_UpceC2 =Zend_Barcode_Object_UpcaC"1 GZend_Barcode_Object_RoyalmailC 0 CZend_Barcode_Object_PostnetC/ AZend_Barcode_Object_PlanetC'. QZend_Barcode_Object_ObjectAbstractC!- EZend_Barcode_Object_LeitcodeC, ?Zend_Barcode_Object_Itf14C"+ GZend_Barcode_Object_IdentcodeC"* GZend_Barcode_Object_ExceptionC) ?Zend_Barcode_Object_ErrorC( =Zend_Barcode_Object_Ean8C' =Zend_Barcode_Object_Ean5C& =Zend_Barcode_Object_Ean2C% ?Zend_Barcode_Object_Ean13C   g  h@!vb< d(Qc)




Y
7
				t	J	!{T*^5[0vT<ya@gJ.nO&zX6                               n ?Zend_Db_Adapter_Pdo_PgsqlCm ;Zend_Db_Adapter_Pdo_OciCl ?Zend_Db_Adapter_Pdo_MysqlCk ?Zend_Db_Adapter_Pdo_MssqlCj ;Zend_Db_Adapter_Pdo_IbmC i CZend_Db_Adapter_Pdo_Ibm_IdsC h CZend_Db_Adapter_Pdo_Ibm_Db2C!g EZend_Db_Adapter_Pdo_AbstractCf 9Zend_Db_Adapter_OracleC%e MZend_Db_Adapter_Oracle_ExceptionCd 9Zend_Db_Adapter_MysqliC%c MZend_Db_Adapter_Mysqli_ExceptionCb ?Zend_Db_Adapter_ExceptionCa 3Zend_Db_Adapter_Db2C"` GZend_Db_Adapter_Db2_ExceptionC_ =Zend_Db_Adapter_AbstractC^ Zend_DateC] 3Zend_Date_ExceptionC\ 5Zend_Date_DateObjectC[ -Zend_Date_CitiesCZ 'Zend_CurrencyCY ;Zend_Currency_ExceptionCX !Zend_CryptCW )Zend_Crypt_RsaCV 1Zend_Crypt_Rsa_KeyCU ?Zend_Crypt_Rsa_Key_PublicCT AZend_Crypt_Rsa_Key_PrivateCS =Zend_Crypt_Rsa_ExceptionCR +Zend_Crypt_MathCQ ?Zend_Crypt_Math_ExceptionCP AZend_Crypt_Math_BigIntegerC#O IZend_Crypt_Math_BigInteger_GmpC)N UZend_Crypt_Math_BigInteger_ExceptionC&M OZend_Crypt_Math_BigInteger_BcmathCL +Zend_Crypt_HmacCK ?Zend_Crypt_Hmac_ExceptionCJ 5Zend_Crypt_ExceptionCI =Zend_Crypt_DiffieHellmanC'H QZend_Crypt_DiffieHellman_ExceptionC!G EZend_Controller_Router_RouteC(F SZend_Controller_Router_Route_StaticC'E QZend_Controller_Router_Route_RegexC(D SZend_Controller_Router_Route_ModuleC*C WZend_Controller_Router_Route_HostnameC'B QZend_Controller_Router_Route_ChainC*A WZend_Controller_Router_Route_AbstractC#@ IZend_Controller_Router_RewriteC%? MZend_Controller_Router_ExceptionC$> KZend_Controller_Router_AbstractC*= WZend_Controller_Response_HttpTestCaseC"< GZend_Controller_Response_HttpC'; QZend_Controller_Response_ExceptionC!: EZend_Controller_Response_CliC&9 OZend_Controller_Response_AbstractC#8 IZend_Controller_Request_SimpleC)7 UZend_Controller_Request_HttpTestCaseC!6 EZend_Controller_Request_HttpC&5 OZend_Controller_Request_ExceptionC&4 OZend_Controller_Request_Apache404C%3 MZend_Controller_Request_AbstractC&2 OZend_Controller_Plugin_PutHandlerC(1 SZend_Controller_Plugin_ErrorHandlerC"0 GZend_Controller_Plugin_BrokerC'/ QZend_Controller_Plugin_ActionStackC$. KZend_Controller_Plugin_AbstractC- 7Zend_Controller_FrontC, ?Zend_Controller_ExceptionC(+ SZend_Controller_Dispatcher_StandardC)* UZend_Controller_Dispatcher_ExceptionC() SZend_Controller_Dispatcher_AbstractC( 9Zend_Controller_ActionC(' SZend_Controller_Action_HelperBrokerC6& oZend_Controller_Action_HelperBroker_PriorityStackC/% aZend_Controller_Action_Helper_ViewRendererC&$ OZend_Controller_Action_Helper_UrlC-# ]Zend_Controller_Action_Helper_RedirectorC'" QZend_Controller_Action_Helper_JsonC1! eZend_Controller_Action_Helper_FlashMessengerC0  cZend_Controller_Action_Helper_ContextSwitchC( SZend_Controller_Action_Helper_CacheC< {Zend_Controller_Action_Helper_AutoCompleteScriptaculousC3 iZend_Controller_Action_Helper_AutoCompleteDojoC8 sZend_Controller_Action_Helper_AutoComplete_AbstractC. _Zend_Controller_Action_Helper_AjaxContextC. _Zend_Controller_Action_Helper_ActionStackC+ YZend_Controller_Action_Helper_AbstractC% MZend_Controller_Action_ExceptionC 3Zend_Console_GetoptC" GZend_Console_Getopt_ExceptionC #Zend_ConfigC -Zend_Config_YamlC +Zend_Config_XmlC 1Zend_Config_WriterC ;Zend_Config_Writer_YamlC 9Zend_Config_Writer_XmlC ;Zend_Config_Writer_JsonC 9Zend_Config_Writer_IniC$ KZend_Config_Writer_FileAbstractC =Zend_Config_Writer_ArrayC -Zend_Config_JsonC
 +Zend_Config_IniC	 7Zend_Config_ExceptionC$ KZend_CodeGenerator_Php_PropertyC   e  {fC"lHlN#eA'ycS@#



\
/				v	F	~O$P#nHqC$a<lB|N+vL                                         !S EZend_Dojo_View_Helper_SliderC)R UZend_Dojo_View_Helper_SimpleTextareaC&Q OZend_Dojo_View_Helper_RadioButtonC*P WZend_Dojo_View_Helper_PasswordTextBoxC(O SZend_Dojo_View_Helper_NumberTextBoxC(N SZend_Dojo_View_Helper_NumberSpinnerC+M YZend_Dojo_View_Helper_HorizontalSliderCL AZend_Dojo_View_Helper_FormC*K WZend_Dojo_View_Helper_FilteringSelectC!J EZend_Dojo_View_Helper_EditorCI AZend_Dojo_View_Helper_DojoC)H UZend_Dojo_View_Helper_Dojo_ContainerC)G UZend_Dojo_View_Helper_DijitContainerC F CZend_Dojo_View_Helper_DijitC&E OZend_Dojo_View_Helper_DateTextBoxC&D OZend_Dojo_View_Helper_CustomDijitC*C WZend_Dojo_View_Helper_CurrencyTextBoxC&B OZend_Dojo_View_Helper_ContentPaneC#A IZend_Dojo_View_Helper_ComboBoxC#@ IZend_Dojo_View_Helper_CheckBoxC!? EZend_Dojo_View_Helper_ButtonC*> WZend_Dojo_View_Helper_BorderContainerC(= SZend_Dojo_View_Helper_AccordionPaneC-< ]Zend_Dojo_View_Helper_AccordionContainerC; =Zend_Dojo_View_ExceptionC: )Zend_Dojo_FormC9 9Zend_Dojo_Form_SubFormC*8 WZend_Dojo_Form_Element_VerticalSliderC-7 ]Zend_Dojo_Form_Element_ValidationTextBoxC'6 QZend_Dojo_Form_Element_TimeTextBoxC#5 IZend_Dojo_Form_Element_TextBoxC$4 KZend_Dojo_Form_Element_TextareaC(3 SZend_Dojo_Form_Element_SubmitButtonC"2 GZend_Dojo_Form_Element_SliderC*1 WZend_Dojo_Form_Element_SimpleTextareaC'0 QZend_Dojo_Form_Element_RadioButtonC+/ YZend_Dojo_Form_Element_PasswordTextBoxC). UZend_Dojo_Form_Element_NumberTextBoxC)- UZend_Dojo_Form_Element_NumberSpinnerC,, [Zend_Dojo_Form_Element_HorizontalSliderC++ YZend_Dojo_Form_Element_FilteringSelectC"* GZend_Dojo_Form_Element_EditorC&) OZend_Dojo_Form_Element_DijitMultiC!( EZend_Dojo_Form_Element_DijitC'' QZend_Dojo_Form_Element_DateTextBoxC+& YZend_Dojo_Form_Element_CurrencyTextBoxC$% KZend_Dojo_Form_Element_ComboBoxC$$ KZend_Dojo_Form_Element_CheckBoxC"# GZend_Dojo_Form_Element_ButtonC " CZend_Dojo_Form_DisplayGroupC*! WZend_Dojo_Form_Decorator_TabContainerC,  [Zend_Dojo_Form_Decorator_StackContainerC, [Zend_Dojo_Form_Decorator_SplitContainerC' QZend_Dojo_Form_Decorator_DijitFormC* WZend_Dojo_Form_Decorator_DijitElementC, [Zend_Dojo_Form_Decorator_DijitContainerC) UZend_Dojo_Form_Decorator_ContentPaneC- ]Zend_Dojo_Form_Decorator_BorderContainerC+ YZend_Dojo_Form_Decorator_AccordionPaneC0 cZend_Dojo_Form_Decorator_AccordionContainerC 3Zend_Dojo_ExceptionC )Zend_Dojo_DataC 5Zend_Dojo_BuildLayerC !Zend_DebugC Zend_DbC 'Zend_Db_TableC 5Zend_Db_Table_SelectC# IZend_Db_Table_Select_ExceptionC 5Zend_Db_Table_RowsetC# IZend_Db_Table_Rowset_ExceptionC" GZend_Db_Table_Rowset_AbstractC /Zend_Db_Table_RowC  CZend_Db_Table_Row_ExceptionC
 AZend_Db_Table_Row_AbstractC	 ;Zend_Db_Table_ExceptionC =Zend_Db_Table_DefinitionC 9Zend_Db_Table_AbstractC /Zend_Db_StatementC =Zend_Db_Statement_SqlsrvC' QZend_Db_Statement_Sqlsrv_ExceptionC 7Zend_Db_Statement_PdoC ?Zend_Db_Statement_Pdo_OciC ?Zend_Db_Statement_Pdo_IbmC  =Zend_Db_Statement_OracleC' QZend_Db_Statement_Oracle_ExceptionC~ =Zend_Db_Statement_MysqliC'} QZend_Db_Statement_Mysqli_ExceptionC | CZend_Db_Statement_ExceptionC{ 7Zend_Db_Statement_Db2C$z KZend_Db_Statement_Db2_ExceptionCy )Zend_Db_SelectCx =Zend_Db_Select_ExceptionCw -Zend_Db_ProfilerCv 9Zend_Db_Profiler_QueryCu =Zend_Db_Profiler_FirebugCt AZend_Db_Profiler_ExceptionCs %Zend_Db_ExprCr /Zend_Db_ExceptionCq 9Zend_Db_Adapter_SqlsrvC%p MZend_Db_Adapter_Sqlsrv_ExceptionCo AZend_Db_Adapter_Pdo_SqliteC   \  {P)|jO.lD#	yI f3	



[
7
				n	=	e4t@jD#
zD
a2U[.j?                     / -Zend_Feed_WriterC. ;Zend_Feed_Writer_SourceC/- aZend_Feed_Writer_Renderer_RendererAbstractC', QZend_Feed_Writer_Renderer_Feed_RssC(+ SZend_Feed_Writer_Renderer_Feed_AtomC/* aZend_Feed_Writer_Renderer_Feed_Atom_SourceC5) mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstractC(( SZend_Feed_Writer_Renderer_Entry_RssC)' UZend_Feed_Writer_Renderer_Entry_AtomC1& eZend_Feed_Writer_Renderer_Entry_Atom_DeletedC% 7Zend_Feed_Writer_FeedC'$ QZend_Feed_Writer_Feed_FeedAbstractC<# {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_EntryC8" sZend_Feed_Writer_Extension_Threading_Renderer_EntryC4! kZend_Feed_Writer_Extension_Slash_Renderer_EntryC0  cZend_Feed_Writer_Extension_RendererAbstractC4 kZend_Feed_Writer_Extension_ITunes_Renderer_FeedC5 mZend_Feed_Writer_Extension_ITunes_Renderer_EntryC+ YZend_Feed_Writer_Extension_ITunes_FeedC, [Zend_Feed_Writer_Extension_ITunes_EntryC8 sZend_Feed_Writer_Extension_DublinCore_Renderer_FeedC9 uZend_Feed_Writer_Extension_DublinCore_Renderer_EntryC6 oZend_Feed_Writer_Extension_Content_Renderer_EntryC2 gZend_Feed_Writer_Extension_Atom_Renderer_FeedC6 oZend_Feed_Writer_Exception_InvalidMethodExceptionC 9Zend_Feed_Writer_EntryC =Zend_Feed_Writer_DeletedC 'Zend_Feed_RssC -Zend_Feed_ReaderC =Zend_Feed_Reader_FeedSetC" GZend_Feed_Reader_FeedAbstractC ?Zend_Feed_Reader_Feed_RssC AZend_Feed_Reader_Feed_AtomC& OZend_Feed_Reader_Feed_Atom_SourceC3 iZend_Feed_Reader_Extension_WellFormedWeb_EntryC, [Zend_Feed_Reader_Extension_Thread_EntryC0 cZend_Feed_Reader_Extension_Syndication_FeedC+
 YZend_Feed_Reader_Extension_Slash_EntryC,	 [Zend_Feed_Reader_Extension_Podcast_FeedC- ]Zend_Feed_Reader_Extension_Podcast_EntryC, [Zend_Feed_Reader_Extension_FeedAbstractC- ]Zend_Feed_Reader_Extension_EntryAbstractC/ aZend_Feed_Reader_Extension_DublinCore_FeedC0 cZend_Feed_Reader_Extension_DublinCore_EntryC4 kZend_Feed_Reader_Extension_CreativeCommons_FeedC5 mZend_Feed_Reader_Extension_CreativeCommons_EntryC- ]Zend_Feed_Reader_Extension_Content_EntryC)  UZend_Feed_Reader_Extension_Atom_FeedC* WZend_Feed_Reader_Extension_Atom_EntryC#~ IZend_Feed_Reader_EntryAbstractC} AZend_Feed_Reader_Entry_RssC | CZend_Feed_Reader_Entry_AtomC { CZend_Feed_Reader_CollectionC3z iZend_Feed_Reader_Collection_CollectionAbstractC)y UZend_Feed_Reader_Collection_CategoryC'x QZend_Feed_Reader_Collection_AuthorCw 9Zend_Feed_PubsubhubbubC&v OZend_Feed_Pubsubhubbub_SubscriberC/u aZend_Feed_Pubsubhubbub_Subscriber_CallbackC%t MZend_Feed_Pubsubhubbub_PublisherC.s _Zend_Feed_Pubsubhubbub_Model_SubscriptionC/r aZend_Feed_Pubsubhubbub_Model_ModelAbstractC(q SZend_Feed_Pubsubhubbub_HttpResponseC%p MZend_Feed_Pubsubhubbub_ExceptionC,o [Zend_Feed_Pubsubhubbub_CallbackAbstractCn 3Zend_Feed_ExceptionCm 3Zend_Feed_Entry_RssCl 5Zend_Feed_Entry_AtomCk =Zend_Feed_Entry_AbstractCj /Zend_Feed_ElementCi /Zend_Feed_BuilderCh =Zend_Feed_Builder_HeaderC$g KZend_Feed_Builder_Header_ItunesC f CZend_Feed_Builder_ExceptionCe ;Zend_Feed_Builder_EntryCd )Zend_Feed_AtomCc 1Zend_Feed_AbstractCb )Zend_ExceptionCa )Zend_Dom_QueryC` 7Zend_Dom_Query_ResultC_ =Zend_Dom_Query_Css2XpathC^ 1Zend_Dom_ExceptionC] Zend_DojoC)\ UZend_Dojo_View_Helper_VerticalSliderC,[ [Zend_Dojo_View_Helper_ValidationTextBoxC&Z OZend_Dojo_View_Helper_TimeTextBoxC"Y GZend_Dojo_View_Helper_TextBoxC#X IZend_Dojo_View_Helper_TextareaC'W QZend_Dojo_View_Helper_TabContainerC'V QZend_Dojo_View_Helper_SubmitButtonC)U UZend_Dojo_View_Helper_StackContainerC)T UZend_Dojo_View_Helper_SplitContainerC   o uZ@&	a@jR/lL)dK+




k
B
				i	=	_0]5\5}V/gH'vV6x\B0jM,                              $ KZend_Gdata_App_Extension_AuthorC =Zend_Gdata_App_ExceptionC 5Zend_Gdata_App_EntryC, [Zend_Gdata_App_CaptchaRequiredExceptionC# IZend_Gdata_App_BaseMediaSourceC 3Zend_Gdata_App_BaseC* WZend_Gdata_App_BadMethodCallExceptionC! EZend_Gdata_App_AuthExceptionC Zend_FormC /Zend_Form_SubFormC 3Zend_Form_ExceptionC /Zend_Form_ElementC ;Zend_Form_Element_XhtmlC AZend_Form_Element_TextareaC 9Zend_Form_Element_TextC =Zend_Form_Element_SubmitC =Zend_Form_Element_SelectC ;Zend_Form_Element_ResetC ;Zend_Form_Element_RadioC AZend_Form_Element_PasswordC"
 GZend_Form_Element_MultiselectC$	 KZend_Form_Element_MultiCheckboxC ;Zend_Form_Element_MultiC ;Zend_Form_Element_ImageC =Zend_Form_Element_HiddenC 9Zend_Form_Element_HashC 9Zend_Form_Element_FileC  CZend_Form_Element_ExceptionC AZend_Form_Element_CheckboxC ?Zend_Form_Element_CaptchaC  =Zend_Form_Element_ButtonC 9Zend_Form_DisplayGroupC#~ IZend_Form_Decorator_ViewScriptC#} IZend_Form_Decorator_ViewHelperC | CZend_Form_Decorator_TooltipC({ SZend_Form_Decorator_PrepareElementsCz ?Zend_Form_Decorator_LabelCy ?Zend_Form_Decorator_ImageC x CZend_Form_Decorator_HtmlTagC#w IZend_Form_Decorator_FormErrorsC%v MZend_Form_Decorator_FormElementsCu =Zend_Form_Decorator_FormCt =Zend_Form_Decorator_FileC!s EZend_Form_Decorator_FieldsetC"r GZend_Form_Decorator_ExceptionCq AZend_Form_Decorator_ErrorsC$p KZend_Form_Decorator_DtDdWrapperC$o KZend_Form_Decorator_DescriptionC n CZend_Form_Decorator_CaptchaC%m MZend_Form_Decorator_Captcha_WordC!l EZend_Form_Decorator_CallbackC!k EZend_Form_Decorator_AbstractCj #Zend_FilterC+i YZend_Filter_Word_UnderscoreToSeparatorC&h OZend_Filter_Word_UnderscoreToDashC+g YZend_Filter_Word_UnderscoreToCamelCaseC*f WZend_Filter_Word_SeparatorToSeparatorC%e MZend_Filter_Word_SeparatorToDashC*d WZend_Filter_Word_SeparatorToCamelCaseC(c SZend_Filter_Word_Separator_AbstractC&b OZend_Filter_Word_DashToUnderscoreC%a MZend_Filter_Word_DashToSeparatorC%` MZend_Filter_Word_DashToCamelCaseC+_ YZend_Filter_Word_CamelCaseToUnderscoreC*^ WZend_Filter_Word_CamelCaseToSeparatorC%] MZend_Filter_Word_CamelCaseToDashC\ 7Zend_Filter_StripTagsC[ ?Zend_Filter_StripNewlinesCZ 9Zend_Filter_StringTrimCY ?Zend_Filter_StringToUpperCX ?Zend_Filter_StringToLowerCW 5Zend_Filter_RealPathCV ;Zend_Filter_PregReplaceCU -Zend_Filter_NullC&T OZend_Filter_NormalizedToLocalizedC&S OZend_Filter_LocalizedToNormalizedCR +Zend_Filter_IntCQ /Zend_Filter_InputCP 7Zend_Filter_InflectorCO =Zend_Filter_HtmlEntitiesCN AZend_Filter_File_UpperCaseCM ;Zend_Filter_File_RenameCL AZend_Filter_File_LowerCaseCK =Zend_Filter_File_EncryptCJ =Zend_Filter_File_DecryptCI 7Zend_Filter_ExceptionCH 3Zend_Filter_EncryptC G CZend_Filter_Encrypt_OpensslCF AZend_Filter_Encrypt_McryptCE +Zend_Filter_DirCD 1Zend_Filter_DigitsCC 3Zend_Filter_DecryptCB 9Zend_Filter_DecompressCA 5Zend_Filter_CompressC@ =Zend_Filter_Compress_ZipC? =Zend_Filter_Compress_TarC> =Zend_Filter_Compress_RarC= =Zend_Filter_Compress_LzfC< ;Zend_Filter_Compress_GzC*; WZend_Filter_Compress_CompressAbstractC: =Zend_Filter_Compress_Bz2C9 5Zend_Filter_CallbackC8 3Zend_Filter_BooleanC7 5Zend_Filter_BaseNameC6 /Zend_Filter_AlphaC5 /Zend_Filter_AlnumC4 1Zend_File_TransferC!3 EZend_File_Transfer_ExceptionC$2 KZend_File_Transfer_Adapter_HttpC(1 SZend_File_Transfer_Adapter_AbstractC0 Zend_FeedC   _  W0gC~V.e@_<



y
b
G
				f	5		P+|U#pA~Y=e8q?{]2Y3                               $} KZend_Gdata_Exif_Extension_ModelC#| IZend_Gdata_Exif_Extension_MakeC"{ GZend_Gdata_Exif_Extension_IsoC,z [Zend_Gdata_Exif_Extension_ImageUniqueIdC$y KZend_Gdata_Exif_Extension_FStopC*x WZend_Gdata_Exif_Extension_FocalLengthC$w KZend_Gdata_Exif_Extension_FlashC'v QZend_Gdata_Exif_Extension_ExposureC'u QZend_Gdata_Exif_Extension_DistanceCt 7Zend_Gdata_Exif_EntryCs -Zend_Gdata_EntryCr 7Zend_Gdata_DublinCoreC*q WZend_Gdata_DublinCore_Extension_TitleC,p [Zend_Gdata_DublinCore_Extension_SubjectC+o YZend_Gdata_DublinCore_Extension_RightsC.n _Zend_Gdata_DublinCore_Extension_PublisherC-m ]Zend_Gdata_DublinCore_Extension_LanguageC/l aZend_Gdata_DublinCore_Extension_IdentifierC+k YZend_Gdata_DublinCore_Extension_FormatC0j cZend_Gdata_DublinCore_Extension_DescriptionC)i UZend_Gdata_DublinCore_Extension_DateC,h [Zend_Gdata_DublinCore_Extension_CreatorCg +Zend_Gdata_DocsCf 7Zend_Gdata_Docs_QueryC%e MZend_Gdata_Docs_DocumentListFeedC&d OZend_Gdata_Docs_DocumentListEntryCc 9Zend_Gdata_ClientLoginCb 3Zend_Gdata_CalendarC!a EZend_Gdata_Calendar_ListFeedC"` GZend_Gdata_Calendar_ListEntryC-_ ]Zend_Gdata_Calendar_Extension_WebContentC+^ YZend_Gdata_Calendar_Extension_TimezoneC9] uZend_Gdata_Calendar_Extension_SendEventNotificationsC+\ YZend_Gdata_Calendar_Extension_SelectedC+[ YZend_Gdata_Calendar_Extension_QuickAddC'Z QZend_Gdata_Calendar_Extension_LinkC)Y UZend_Gdata_Calendar_Extension_HiddenC(X SZend_Gdata_Calendar_Extension_ColorC.W _Zend_Gdata_Calendar_Extension_AccessLevelC#V IZend_Gdata_Calendar_EventQueryC"U GZend_Gdata_Calendar_EventFeedC#T IZend_Gdata_Calendar_EventEntryCS -Zend_Gdata_BooksC!R EZend_Gdata_Books_VolumeQueryC Q CZend_Gdata_Books_VolumeFeedC!P EZend_Gdata_Books_VolumeEntryC+O YZend_Gdata_Books_Extension_ViewabilityC-N ]Zend_Gdata_Books_Extension_ThumbnailLinkC&M OZend_Gdata_Books_Extension_ReviewC+L YZend_Gdata_Books_Extension_PreviewLinkC(K SZend_Gdata_Books_Extension_InfoLinkC-J ]Zend_Gdata_Books_Extension_EmbeddabilityC)I UZend_Gdata_Books_Extension_BooksLinkC-H ]Zend_Gdata_Books_Extension_BooksCategoryC.G _Zend_Gdata_Books_Extension_AnnotationLinkC$F KZend_Gdata_Books_CollectionFeedC%E MZend_Gdata_Books_CollectionEntryCD 1Zend_Gdata_AuthSubCC )Zend_Gdata_AppC$B KZend_Gdata_App_VersionExceptionCA 3Zend_Gdata_App_UtilC#@ IZend_Gdata_App_MediaFileSourceC? ?Zend_Gdata_App_MediaEntryC2> gZend_Gdata_App_LoggingHttpClientAdapterSocketC= AZend_Gdata_App_IOExceptionC,< [Zend_Gdata_App_InvalidArgumentExceptionC!; EZend_Gdata_App_HttpExceptionC$: KZend_Gdata_App_FeedSourceParentC#9 IZend_Gdata_App_FeedEntryParentC8 3Zend_Gdata_App_FeedC7 =Zend_Gdata_App_ExtensionC!6 EZend_Gdata_App_Extension_UriC%5 MZend_Gdata_App_Extension_UpdatedC#4 IZend_Gdata_App_Extension_TitleC"3 GZend_Gdata_App_Extension_TextC%2 MZend_Gdata_App_Extension_SummaryC&1 OZend_Gdata_App_Extension_SubtitleC$0 KZend_Gdata_App_Extension_SourceC$/ KZend_Gdata_App_Extension_RightsC'. QZend_Gdata_App_Extension_PublishedC$- KZend_Gdata_App_Extension_PersonC", GZend_Gdata_App_Extension_NameC"+ GZend_Gdata_App_Extension_LogoC"* GZend_Gdata_App_Extension_LinkC ) CZend_Gdata_App_Extension_IdC"( GZend_Gdata_App_Extension_IconC'' QZend_Gdata_App_Extension_GeneratorC#& IZend_Gdata_App_Extension_EmailC%% MZend_Gdata_App_Extension_ElementC$$ KZend_Gdata_App_Extension_EditedC## IZend_Gdata_App_Extension_DraftC%" MZend_Gdata_App_Extension_ControlC)! UZend_Gdata_App_Extension_ContributorC%  MZend_Gdata_App_Extension_ContentC& OZend_Gdata_App_Extension_CategoryC   c  }Q'])tL^= `0




b
6

				v	Q	-	pM)
x_@jDlD(qG'qR!\.r>                  .` _Zend_Gdata_Media_Extension_MediaThumbnailC)_ UZend_Gdata_Media_Extension_MediaTextC0^ cZend_Gdata_Media_Extension_MediaRestrictionC+] YZend_Gdata_Media_Extension_MediaRatingC+\ YZend_Gdata_Media_Extension_MediaPlayerC-[ ]Zend_Gdata_Media_Extension_MediaKeywordsC)Z UZend_Gdata_Media_Extension_MediaHashC*Y WZend_Gdata_Media_Extension_MediaGroupC0X cZend_Gdata_Media_Extension_MediaDescriptionC+W YZend_Gdata_Media_Extension_MediaCreditC.V _Zend_Gdata_Media_Extension_MediaCopyrightC,U [Zend_Gdata_Media_Extension_MediaContentC-T ]Zend_Gdata_Media_Extension_MediaCategoryCS 9Zend_Gdata_Media_EntryCR AZend_Gdata_Kind_EventEntryCQ 7Zend_Gdata_HttpClientC*P WZend_Gdata_HttpAdapterStreamingSocketC)O UZend_Gdata_HttpAdapterStreamingProxyCN /Zend_Gdata_HealthCM ;Zend_Gdata_Health_QueryC&L OZend_Gdata_Health_ProfileListFeedC'K QZend_Gdata_Health_ProfileListEntryC"J GZend_Gdata_Health_ProfileFeedC#I IZend_Gdata_Health_ProfileEntryC$H KZend_Gdata_Health_Extension_CcrCG )Zend_Gdata_GeoCF 3Zend_Gdata_Geo_FeedC$E KZend_Gdata_Geo_Extension_GmlPosC&D OZend_Gdata_Geo_Extension_GmlPointC)C UZend_Gdata_Geo_Extension_GeoRssWhereCB 5Zend_Gdata_Geo_EntryCA -Zend_Gdata_GbaseC"@ GZend_Gdata_Gbase_SnippetQueryC!? EZend_Gdata_Gbase_SnippetFeedC"> GZend_Gdata_Gbase_SnippetEntryC= 9Zend_Gdata_Gbase_QueryC< AZend_Gdata_Gbase_ItemQueryC; ?Zend_Gdata_Gbase_ItemFeedC: AZend_Gdata_Gbase_ItemEntryC9 7Zend_Gdata_Gbase_FeedC-8 ]Zend_Gdata_Gbase_Extension_BaseAttributeC7 9Zend_Gdata_Gbase_EntryC6 -Zend_Gdata_GappsC5 AZend_Gdata_Gapps_UserQueryC4 ?Zend_Gdata_Gapps_UserFeedC3 AZend_Gdata_Gapps_UserEntryC&2 OZend_Gdata_Gapps_ServiceExceptionC1 9Zend_Gdata_Gapps_QueryC 0 CZend_Gdata_Gapps_OwnerQueryC/ AZend_Gdata_Gapps_OwnerFeedC . CZend_Gdata_Gapps_OwnerEntryC#- IZend_Gdata_Gapps_NicknameQueryC", GZend_Gdata_Gapps_NicknameFeedC#+ IZend_Gdata_Gapps_NicknameEntryC!* EZend_Gdata_Gapps_MemberQueryC ) CZend_Gdata_Gapps_MemberFeedC!( EZend_Gdata_Gapps_MemberEntryC ' CZend_Gdata_Gapps_GroupQueryC& AZend_Gdata_Gapps_GroupFeedC % CZend_Gdata_Gapps_GroupEntryC%$ MZend_Gdata_Gapps_Extension_QuotaC(# SZend_Gdata_Gapps_Extension_PropertyC(" SZend_Gdata_Gapps_Extension_NicknameC$! KZend_Gdata_Gapps_Extension_NameC%  MZend_Gdata_Gapps_Extension_LoginC) UZend_Gdata_Gapps_Extension_EmailListC 9Zend_Gdata_Gapps_ErrorC- ]Zend_Gdata_Gapps_EmailListRecipientQueryC, [Zend_Gdata_Gapps_EmailListRecipientFeedC- ]Zend_Gdata_Gapps_EmailListRecipientEntryC$ KZend_Gdata_Gapps_EmailListQueryC# IZend_Gdata_Gapps_EmailListFeedC$ KZend_Gdata_Gapps_EmailListEntryC +Zend_Gdata_FeedC 5Zend_Gdata_ExtensionC =Zend_Gdata_Extension_WhoC AZend_Gdata_Extension_WhereC ?Zend_Gdata_Extension_WhenC$ KZend_Gdata_Extension_VisibilityC& OZend_Gdata_Extension_TransparencyC" GZend_Gdata_Extension_ReminderC- ]Zend_Gdata_Extension_RecurrenceExceptionC$ KZend_Gdata_Extension_RecurrenceC  CZend_Gdata_Extension_RatingC' QZend_Gdata_Extension_OriginalEventC0 cZend_Gdata_Extension_OpenSearchTotalResultsC.
 _Zend_Gdata_Extension_OpenSearchStartIndexC0	 cZend_Gdata_Extension_OpenSearchItemsPerPageC" GZend_Gdata_Extension_FeedLinkC* WZend_Gdata_Extension_ExtendedPropertyC% MZend_Gdata_Extension_EventStatusC# IZend_Gdata_Extension_EntryLinkC" GZend_Gdata_Extension_CommentsC& OZend_Gdata_Extension_AttendeeTypeC( SZend_Gdata_Extension_AttendeeStatusC +Zend_Gdata_ExifC  5Zend_Gdata_Exif_FeedC# IZend_Gdata_Exif_Extension_TimeC#~ IZend_Gdata_Exif_Extension_TagsC   [  xV:zN a6V(g8



]
1
				n	K	'	Z0o<^/hAqDZ.{M]2                        ,; [Zend_Gdata_YouTube_Extension_OccupationC): UZend_Gdata_YouTube_Extension_NoEmbedC'9 QZend_Gdata_YouTube_Extension_MusicC(8 SZend_Gdata_YouTube_Extension_MoviesC-7 ]Zend_Gdata_YouTube_Extension_MediaRatingC,6 [Zend_Gdata_YouTube_Extension_MediaGroupC-5 ]Zend_Gdata_YouTube_Extension_MediaCreditC.4 _Zend_Gdata_YouTube_Extension_MediaContentC*3 WZend_Gdata_YouTube_Extension_LocationC&2 OZend_Gdata_YouTube_Extension_LinkC*1 WZend_Gdata_YouTube_Extension_LastNameC*0 WZend_Gdata_YouTube_Extension_HometownC)/ UZend_Gdata_YouTube_Extension_HobbiesC(. SZend_Gdata_YouTube_Extension_GenderC+- YZend_Gdata_YouTube_Extension_FirstNameC*, WZend_Gdata_YouTube_Extension_DurationC-+ ]Zend_Gdata_YouTube_Extension_DescriptionC+* YZend_Gdata_YouTube_Extension_CountHintC)) UZend_Gdata_YouTube_Extension_ControlC)( UZend_Gdata_YouTube_Extension_CompanyC'' QZend_Gdata_YouTube_Extension_BooksC%& MZend_Gdata_YouTube_Extension_AgeC)% UZend_Gdata_YouTube_Extension_AboutMeC#$ IZend_Gdata_YouTube_ContactFeedC$# KZend_Gdata_YouTube_ContactEntryC#" IZend_Gdata_YouTube_CommentFeedC$! KZend_Gdata_YouTube_CommentEntryC$  KZend_Gdata_YouTube_ActivityFeedC% MZend_Gdata_YouTube_ActivityEntryC ;Zend_Gdata_SpreadsheetsC* WZend_Gdata_Spreadsheets_WorksheetFeedC+ YZend_Gdata_Spreadsheets_WorksheetEntryC, [Zend_Gdata_Spreadsheets_SpreadsheetFeedC- ]Zend_Gdata_Spreadsheets_SpreadsheetEntryC& OZend_Gdata_Spreadsheets_ListQueryC% MZend_Gdata_Spreadsheets_ListFeedC& OZend_Gdata_Spreadsheets_ListEntryC/ aZend_Gdata_Spreadsheets_Extension_RowCountC- ]Zend_Gdata_Spreadsheets_Extension_CustomC/ aZend_Gdata_Spreadsheets_Extension_ColCountC+ YZend_Gdata_Spreadsheets_Extension_CellC* WZend_Gdata_Spreadsheets_DocumentQueryC& OZend_Gdata_Spreadsheets_CellQueryC% MZend_Gdata_Spreadsheets_CellFeedC& OZend_Gdata_Spreadsheets_CellEntryC -Zend_Gdata_QueryC /Zend_Gdata_PhotosC  CZend_Gdata_Photos_UserQueryC AZend_Gdata_Photos_UserFeedC 
 CZend_Gdata_Photos_UserEntryC	 AZend_Gdata_Photos_TagEntryC! EZend_Gdata_Photos_PhotoQueryC  CZend_Gdata_Photos_PhotoFeedC! EZend_Gdata_Photos_PhotoEntryC& OZend_Gdata_Photos_Extension_WidthC' QZend_Gdata_Photos_Extension_WeightC( SZend_Gdata_Photos_Extension_VersionC% MZend_Gdata_Photos_Extension_UserC* WZend_Gdata_Photos_Extension_TimestampC*  WZend_Gdata_Photos_Extension_ThumbnailC% MZend_Gdata_Photos_Extension_SizeC)~ UZend_Gdata_Photos_Extension_RotationC+} YZend_Gdata_Photos_Extension_QuotaLimitC-| ]Zend_Gdata_Photos_Extension_QuotaCurrentC){ UZend_Gdata_Photos_Extension_PositionC(z SZend_Gdata_Photos_Extension_PhotoIdC3y iZend_Gdata_Photos_Extension_NumPhotosRemainingC*x WZend_Gdata_Photos_Extension_NumPhotosC)w UZend_Gdata_Photos_Extension_NicknameC%v MZend_Gdata_Photos_Extension_NameC2u gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumC)t UZend_Gdata_Photos_Extension_LocationC#s IZend_Gdata_Photos_Extension_IdC'r QZend_Gdata_Photos_Extension_HeightC2q gZend_Gdata_Photos_Extension_CommentingEnabledC-p ]Zend_Gdata_Photos_Extension_CommentCountC'o QZend_Gdata_Photos_Extension_ClientC)n UZend_Gdata_Photos_Extension_ChecksumC*m WZend_Gdata_Photos_Extension_BytesUsedC(l SZend_Gdata_Photos_Extension_AlbumIdC'k QZend_Gdata_Photos_Extension_AccessC#j IZend_Gdata_Photos_CommentEntryC!i EZend_Gdata_Photos_AlbumQueryC h CZend_Gdata_Photos_AlbumFeedC!g EZend_Gdata_Photos_AlbumEntryCf 3Zend_Gdata_MimeFileCe ?Zend_Gdata_MimeBodyStringCd AZend_Gdata_MediaMimeStreamCc -Zend_Gdata_MediaCb 7Zend_Gdata_Media_FeedC*a WZend_Gdata_Media_Extension_MediaTitleC   ^  oBV*xJ~Q%qE





U
.
					o	S	1	_=qB!i7Z3c*~Z8e:W                                      4 kZend_InfoCard_Xml_Security_Transform_XmlExcC14NC3 iZend_InfoCard_Xml_Security_Transform_ExceptionC< {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignatureC) UZend_InfoCard_Xml_Security_ExceptionC ?Zend_InfoCard_Xml_KeyInfoC& OZend_InfoCard_Xml_KeyInfo_XmlDSigC& OZend_InfoCard_Xml_KeyInfo_DefaultC' QZend_InfoCard_Xml_KeyInfo_AbstractC  CZend_InfoCard_Xml_ExceptionC# IZend_InfoCard_Xml_EncryptedKeyC$ KZend_InfoCard_Xml_EncryptedDataC+ YZend_InfoCard_Xml_EncryptedData_XmlEncC- ]Zend_InfoCard_Xml_EncryptedData_AbstractC ?Zend_InfoCard_Xml_ElementC  CZend_InfoCard_Xml_AssertionC%
 MZend_InfoCard_Xml_Assertion_SamlC	 ;Zend_InfoCard_ExceptionC% MZend_InfoCard_Exception_AbstractC 5Zend_InfoCard_ClaimsC 5Zend_InfoCard_CipherC5 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcC5 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcC4 kZend_InfoCard_Cipher_Symmetric_Adapter_AbstractC) UZend_InfoCard_Cipher_Pki_Adapter_RsaC. _Zend_InfoCard_Cipher_Pki_Adapter_AbstractC#  IZend_InfoCard_Cipher_ExceptionC$ KZend_InfoCard_Adapter_ExceptionC"~ GZend_InfoCard_Adapter_DefaultC} 3Zend_Http_UserAgentC"| GZend_Http_UserAgent_ValidatorC{ =Zend_Http_UserAgent_TextC(z SZend_Http_UserAgent_Storage_SessionC.y _Zend_Http_UserAgent_Storage_NonPersistentC*x WZend_Http_UserAgent_Storage_ExceptionCw =Zend_Http_UserAgent_SpamCv ?Zend_Http_UserAgent_ProbeC u CZend_Http_UserAgent_OfflineCt AZend_Http_UserAgent_MobileCs =Zend_Http_UserAgent_FeedC+r YZend_Http_UserAgent_Features_ExceptionC2q gZend_Http_UserAgent_Features_Adapter_WurflApiC3p iZend_Http_UserAgent_Features_Adapter_TeraWurflC5o mZend_Http_UserAgent_Features_Adapter_DeviceAtlasC"n GZend_Http_UserAgent_ExceptionCm ?Zend_Http_UserAgent_EmailC l CZend_Http_UserAgent_DesktopC k CZend_Http_UserAgent_ConsoleC j CZend_Http_UserAgent_CheckerCi ;Zend_Http_UserAgent_BotC'h QZend_Http_UserAgent_AbstractDeviceCg 1Zend_Http_ResponseCf ?Zend_Http_Response_StreamCe 3Zend_Http_ExceptionCd 3Zend_Http_CookieJarCc -Zend_Http_CookieCb -Zend_Http_ClientCa AZend_Http_Client_ExceptionC"` GZend_Http_Client_Adapter_TestC$_ KZend_Http_Client_Adapter_SocketC#^ IZend_Http_Client_Adapter_ProxyC'] QZend_Http_Client_Adapter_ExceptionC"\ GZend_Http_Client_Adapter_CurlC[ !Zend_GdataCZ 1Zend_Gdata_YouTubeC"Y GZend_Gdata_YouTube_VideoQueryC!X EZend_Gdata_YouTube_VideoFeedC"W GZend_Gdata_YouTube_VideoEntryC(V SZend_Gdata_YouTube_UserProfileEntryC(U SZend_Gdata_YouTube_SubscriptionFeedC)T UZend_Gdata_YouTube_SubscriptionEntryC)S UZend_Gdata_YouTube_PlaylistVideoFeedC*R WZend_Gdata_YouTube_PlaylistVideoEntryC(Q SZend_Gdata_YouTube_PlaylistListFeedC)P UZend_Gdata_YouTube_PlaylistListEntryC"O GZend_Gdata_YouTube_MediaEntryC!N EZend_Gdata_YouTube_InboxFeedC"M GZend_Gdata_YouTube_InboxEntryC)L UZend_Gdata_YouTube_Extension_VideoIdC*K WZend_Gdata_YouTube_Extension_UsernameC*J WZend_Gdata_YouTube_Extension_UploadedC'I QZend_Gdata_YouTube_Extension_TokenC(H SZend_Gdata_YouTube_Extension_StatusC,G [Zend_Gdata_YouTube_Extension_StatisticsC'F QZend_Gdata_YouTube_Extension_StateC(E SZend_Gdata_YouTube_Extension_SchoolC-D ]Zend_Gdata_YouTube_Extension_ReleaseDateC.C _Zend_Gdata_YouTube_Extension_RelationshipC*B WZend_Gdata_YouTube_Extension_RecordedC&A OZend_Gdata_YouTube_Extension_RacyC-@ ]Zend_Gdata_YouTube_Extension_QueryStringC)? UZend_Gdata_YouTube_Extension_PrivateC*> WZend_Gdata_YouTube_Extension_PositionC/= aZend_Gdata_YouTube_Extension_PlaylistTitleC,< [Zend_Gdata_YouTube_Extension_PlaylistIdC   s iO5{Z3pC%hS7y]=$



l
B
				\	9p^6t[="uU4jO/veI*tT'jA{P6                                   ! EZend_Mail_Transport_AbstractC /Zend_Mail_StorageC'
 QZend_Mail_Storage_Writable_MaildirC	 9Zend_Mail_Storage_Pop3C 9Zend_Mail_Storage_MboxC ?Zend_Mail_Storage_MaildirC 9Zend_Mail_Storage_ImapC =Zend_Mail_Storage_FolderC" GZend_Mail_Storage_Folder_MboxC% MZend_Mail_Storage_Folder_MaildirC  CZend_Mail_Storage_ExceptionC AZend_Mail_Storage_AbstractC  ;Zend_Mail_Protocol_SmtpC' QZend_Mail_Protocol_Smtp_Auth_PlainC'~ QZend_Mail_Protocol_Smtp_Auth_LoginC)} UZend_Mail_Protocol_Smtp_Auth_Crammd5C| ;Zend_Mail_Protocol_Pop3C{ ;Zend_Mail_Protocol_ImapC!z EZend_Mail_Protocol_ExceptionC y CZend_Mail_Protocol_AbstractCx )Zend_Mail_PartCw 3Zend_Mail_Part_FileCv /Zend_Mail_MessageCu 9Zend_Mail_Message_FileCt 3Zend_Mail_ExceptionCs Zend_LogC r CZend_Log_Writer_ZendMonitorCq 9Zend_Log_Writer_SyslogCp 9Zend_Log_Writer_StreamCo 5Zend_Log_Writer_NullCn 5Zend_Log_Writer_MockCm 5Zend_Log_Writer_MailCl ;Zend_Log_Writer_FirebugCk 1Zend_Log_Writer_DbCj =Zend_Log_Writer_AbstractCi 9Zend_Log_Formatter_XmlCh ?Zend_Log_Formatter_SimpleCg AZend_Log_Formatter_FirebugC f CZend_Log_Formatter_AbstractCe =Zend_Log_Filter_SuppressCd =Zend_Log_Filter_PriorityCc ;Zend_Log_Filter_MessageCb =Zend_Log_Filter_AbstractCa 1Zend_Log_ExceptionC` #Zend_LocaleC_ -Zend_Locale_MathC^ =Zend_Locale_Math_PhpMathC] AZend_Locale_Math_ExceptionC\ 1Zend_Locale_FormatC[ 7Zend_Locale_ExceptionCZ -Zend_Locale_DataC!Y EZend_Locale_Data_TranslationCX #Zend_LoaderCW =Zend_Loader_PluginLoaderC'V QZend_Loader_PluginLoader_ExceptionCU 7Zend_Loader_ExceptionCT 9Zend_Loader_AutoloaderC$S KZend_Loader_Autoloader_ResourceCR Zend_LdapCQ )Zend_Ldap_NodeCP 7Zend_Ldap_Node_SchemaC#O IZend_Ldap_Node_Schema_OpenLdapC/N aZend_Ldap_Node_Schema_ObjectClass_OpenLdapC6M oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectoryCL AZend_Ldap_Node_Schema_ItemC1K eZend_Ldap_Node_Schema_AttributeType_OpenLdapC8J sZend_Ldap_Node_Schema_AttributeType_ActiveDirectoryC*I WZend_Ldap_Node_Schema_ActiveDirectoryCH 9Zend_Ldap_Node_RootDseC$G KZend_Ldap_Node_RootDse_OpenLdapC&F OZend_Ldap_Node_RootDse_eDirectoryC+E YZend_Ldap_Node_RootDse_ActiveDirectoryCD ?Zend_Ldap_Node_CollectionC$C KZend_Ldap_Node_ChildrenIteratorCB ;Zend_Ldap_Node_AbstractCA 9Zend_Ldap_Ldif_EncoderC@ -Zend_Ldap_FilterC? ;Zend_Ldap_Filter_StringC> 3Zend_Ldap_Filter_OrC= 5Zend_Ldap_Filter_NotC< 7Zend_Ldap_Filter_MaskC; =Zend_Ldap_Filter_LogicalC: AZend_Ldap_Filter_ExceptionC9 5Zend_Ldap_Filter_AndC8 ?Zend_Ldap_Filter_AbstractC7 3Zend_Ldap_ExceptionC6 %Zend_Ldap_DnC5 3Zend_Ldap_ConverterC"4 GZend_Ldap_Converter_ExceptionC3 5Zend_Ldap_CollectionC*2 WZend_Ldap_Collection_Iterator_DefaultC1 3Zend_Ldap_AttributeC0 #Zend_LayoutC/ 7Zend_Layout_ExceptionC). UZend_Layout_Controller_Plugin_LayoutC0- cZend_Layout_Controller_Action_Helper_LayoutC, Zend_JsonC+ -Zend_Json_ServerC* 5Zend_Json_Server_SmdC!) EZend_Json_Server_Smd_ServiceC( ?Zend_Json_Server_ResponseC#' IZend_Json_Server_Response_HttpC& =Zend_Json_Server_RequestC"% GZend_Json_Server_Request_HttpC$ AZend_Json_Server_ExceptionC# 9Zend_Json_Server_ErrorC" 9Zend_Json_Server_CacheC! )Zend_Json_ExprC  3Zend_Json_ExceptionC /Zend_Json_EncoderC /Zend_Json_DecoderC 'Zend_InfoCardC- ]Zend_InfoCard_Xml_SecurityTokenReferenceC AZend_InfoCard_Xml_SecurityC) UZend_InfoCard_Xml_Security_TransformC   u saC!\6aM/wS6dE#




x
W
=
!					t	O	)	nT=+	pV< pX6tS:'z\2kCQ#mO1                                   5Zend_Pdf_Action_HideC  7Zend_Pdf_Action_GoToRC 7Zend_Pdf_Action_GoToEC~ AZend_Pdf_Action_GoTo3DViewC} 5Zend_Pdf_Action_GoToC| )Zend_PaginatorC-{ ]Zend_Paginator_SerializableLimitIteratorC*z WZend_Paginator_ScrollingStyle_SlidingC*y WZend_Paginator_ScrollingStyle_JumpingC*x WZend_Paginator_ScrollingStyle_ElasticC&w OZend_Paginator_ScrollingStyle_AllCv =Zend_Paginator_ExceptionC u CZend_Paginator_Adapter_NullC$t KZend_Paginator_Adapter_IteratorC)s UZend_Paginator_Adapter_DbTableSelectC$r KZend_Paginator_Adapter_DbSelectC!q EZend_Paginator_Adapter_ArrayCp #Zend_OpenIdCo 5Zend_OpenId_ProviderCn ?Zend_OpenId_Provider_UserC&m OZend_OpenId_Provider_User_SessionC!l EZend_OpenId_Provider_StorageC&k OZend_OpenId_Provider_Storage_FileCj 7Zend_OpenId_ExtensionCi AZend_OpenId_Extension_SregCh 7Zend_OpenId_ExceptionCg 5Zend_OpenId_ConsumerC!f EZend_OpenId_Consumer_StorageC&e OZend_OpenId_Consumer_Storage_FileCd !Zend_OauthCc -Zend_Oauth_TokenCb =Zend_Oauth_Token_RequestC'a QZend_Oauth_Token_AuthorizedRequestC` ;Zend_Oauth_Token_AccessC+_ YZend_Oauth_Signature_SignatureAbstractC^ =Zend_Oauth_Signature_RsaC#] IZend_Oauth_Signature_PlaintextC\ ?Zend_Oauth_Signature_HmacC[ +Zend_Oauth_HttpCZ ;Zend_Oauth_Http_UtilityC&Y OZend_Oauth_Http_UserAuthorizationC!X EZend_Oauth_Http_RequestTokenC W CZend_Oauth_Http_AccessTokenCV 5Zend_Oauth_ExceptionCU 3Zend_Oauth_ConsumerCT /Zend_Oauth_ConfigCS /Zend_Oauth_ClientCR +Zend_NavigationCQ 5Zend_Navigation_PageCP =Zend_Navigation_Page_UriCO =Zend_Navigation_Page_MvcCN ?Zend_Navigation_ExceptionCM ?Zend_Navigation_ContainerCL Zend_MimeCK )Zend_Mime_PartCJ /Zend_Mime_MessageCI 3Zend_Mime_ExceptionCH -Zend_Mime_DecodeCG #Zend_MemoryCF /Zend_Memory_ValueCE 3Zend_Memory_ManagerCD 7Zend_Memory_ExceptionCC 7Zend_Memory_ContainerC"B GZend_Memory_Container_MovableC!A EZend_Memory_Container_LockedC!@ EZend_Memory_AccessControllerC? 3Zend_Measure_WeightC> 3Zend_Measure_VolumeC%= MZend_Measure_Viscosity_KinematicC#< IZend_Measure_Viscosity_DynamicC; 3Zend_Measure_TorqueC: /Zend_Measure_TimeC9 =Zend_Measure_TemperatureC8 1Zend_Measure_SpeedC7 7Zend_Measure_PressureC6 1Zend_Measure_PowerC5 3Zend_Measure_NumberC4 9Zend_Measure_LightnessC3 3Zend_Measure_LengthC2 ?Zend_Measure_IlluminationC1 9Zend_Measure_FrequencyC0 1Zend_Measure_ForceC/ =Zend_Measure_Flow_VolumeC. 9Zend_Measure_Flow_MoleC- 9Zend_Measure_Flow_MassC, 9Zend_Measure_ExceptionC+ 3Zend_Measure_EnergyC* 5Zend_Measure_DensityC) 5Zend_Measure_CurrentC ( CZend_Measure_Cooking_WeightC ' CZend_Measure_Cooking_VolumeC& =Zend_Measure_CapacitanceC% 3Zend_Measure_BinaryC$ /Zend_Measure_AreaC# 1Zend_Measure_AngleC" ?Zend_Measure_AccelerationC! 7Zend_Measure_AbstractC  #Zend_MarkupC 7Zend_Markup_TokenListC /Zend_Markup_TokenC* WZend_Markup_Renderer_RendererAbstractC ?Zend_Markup_Renderer_HtmlC" GZend_Markup_Renderer_Html_UrlC# IZend_Markup_Renderer_Html_ListC" GZend_Markup_Renderer_Html_ImgC+ YZend_Markup_Renderer_Html_HtmlAbstractC# IZend_Markup_Renderer_Html_CodeC# IZend_Markup_Renderer_ExceptionC AZend_Markup_Parser_TextileC! EZend_Markup_Parser_ExceptionC ?Zend_Markup_Parser_BbcodeC 7Zend_Markup_ExceptionC Zend_MailC =Zend_Mail_Transport_SmtpC! EZend_Mail_Transport_SendmailC =Zend_Mail_Transport_FileC" GZend_Mail_Transport_ExceptionC   g }_=yY=%yX@yX<!
_)




_
=
 
					_	8	Z:!cB`@qZ@Y5Q$p2w7                                           2h gZend_Pdf_Resource_Font_Simple_Standard_SymbolC<g {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueCAf Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliqueC9e uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldC5d mZend_Pdf_Resource_Font_Simple_Standard_HelveticaC:c wZend_Pdf_Resource_Font_Simple_Standard_CourierObliqueC>b Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliqueC7a qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldC3` iZend_Pdf_Resource_Font_Simple_Standard_CourierC)_ UZend_Pdf_Resource_Font_Simple_ParsedC2^ gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypeC*] WZend_Pdf_Resource_Font_FontDescriptorC%\ MZend_Pdf_Resource_Font_ExtractedC#[ IZend_Pdf_Resource_Font_CidFontC,Z [Zend_Pdf_Resource_Font_CidFont_TrueTypeC Y CZend_Pdf_Resource_ExtractorC$X KZend_Pdf_Resource_ContentStreamC3W iZend_Pdf_RecursivelyIteratableObjectsContainerCV +Zend_Pdf_ParserCU 'Zend_Pdf_PageCT -Zend_Pdf_OutlineCS ;Zend_Pdf_Outline_LoadedCR =Zend_Pdf_Outline_CreatedCQ /Zend_Pdf_NameTreeCP )Zend_Pdf_ImageCO 'Zend_Pdf_FontCN ?Zend_Pdf_Filter_RunLengthC M CZend_Pdf_Filter_CompressionC$L KZend_Pdf_Filter_Compression_LzwC&K OZend_Pdf_Filter_Compression_FlateCJ =Zend_Pdf_Filter_AsciiHexCI ;Zend_Pdf_Filter_Ascii85C"H GZend_Pdf_FileParserDataSourceC)G UZend_Pdf_FileParserDataSource_StringC'F QZend_Pdf_FileParserDataSource_FileCE 3Zend_Pdf_FileParserCD ?Zend_Pdf_FileParser_ImageC"C GZend_Pdf_FileParser_Image_PngCB =Zend_Pdf_FileParser_FontC&A OZend_Pdf_FileParser_Font_OpenTypeC/@ aZend_Pdf_FileParser_Font_OpenType_TrueTypeC? 1Zend_Pdf_ExceptionC> ;Zend_Pdf_ElementFactoryC"= GZend_Pdf_ElementFactory_ProxyC< -Zend_Pdf_ElementC; ;Zend_Pdf_Element_StringC#: IZend_Pdf_Element_String_BinaryC9 ;Zend_Pdf_Element_StreamC8 AZend_Pdf_Element_ReferenceC%7 MZend_Pdf_Element_Reference_TableC'6 QZend_Pdf_Element_Reference_ContextC5 ;Zend_Pdf_Element_ObjectC#4 IZend_Pdf_Element_Object_StreamC3 =Zend_Pdf_Element_NumericC2 7Zend_Pdf_Element_NullC1 7Zend_Pdf_Element_NameC 0 CZend_Pdf_Element_DictionaryC/ =Zend_Pdf_Element_BooleanC. 9Zend_Pdf_Element_ArrayC- 5Zend_Pdf_DestinationC, ?Zend_Pdf_Destination_ZoomC!+ EZend_Pdf_Destination_UnknownC* AZend_Pdf_Destination_NamedC') QZend_Pdf_Destination_FitVerticallyC&( OZend_Pdf_Destination_FitRectangleC)' UZend_Pdf_Destination_FitHorizontallyC2& gZend_Pdf_Destination_FitBoundingBoxVerticallyC4% kZend_Pdf_Destination_FitBoundingBoxHorizontallyC($ SZend_Pdf_Destination_FitBoundingBoxC# =Zend_Pdf_Destination_FitC"" GZend_Pdf_Destination_ExplicitC! )Zend_Pdf_ColorC  1Zend_Pdf_Color_RgbC 3Zend_Pdf_Color_HtmlC =Zend_Pdf_Color_GrayScaleC 3Zend_Pdf_Color_CmykC 'Zend_Pdf_CmapC AZend_Pdf_Cmap_TrimmedTableC! EZend_Pdf_Cmap_SegmentToDeltaC AZend_Pdf_Cmap_ByteEncodingC& OZend_Pdf_Cmap_ByteEncoding_StaticC +Zend_Pdf_CanvasC =Zend_Pdf_Canvas_AbstractC 3Zend_Pdf_AnnotationC =Zend_Pdf_Annotation_TextC AZend_Pdf_Annotation_MarkupC =Zend_Pdf_Annotation_LinkC' QZend_Pdf_Annotation_FileAttachmentC +Zend_Pdf_ActionC 3Zend_Pdf_Action_URIC ;Zend_Pdf_Action_UnknownC 7Zend_Pdf_Action_TransC 9Zend_Pdf_Action_ThreadC AZend_Pdf_Action_SubmitFormC
 7Zend_Pdf_Action_SoundC 	 CZend_Pdf_Action_SetOCGStateC ?Zend_Pdf_Action_ResetFormC ?Zend_Pdf_Action_RenditionC 7Zend_Pdf_Action_NamedC 7Zend_Pdf_Action_MovieC 9Zend_Pdf_Action_LaunchC AZend_Pdf_Action_JavaScriptC AZend_Pdf_Action_ImportDataC   b  M]>a?%|WF^E!




m
H
(					y	N	.	bA~]G$pM4F
:s9V-X4     J 9Zend_Search_Lucene_FSMCI =Zend_Search_Lucene_FieldC!H EZend_Search_Lucene_ExceptionC G CZend_Search_Lucene_DocumentC%F MZend_Search_Lucene_Document_XlsxC%E MZend_Search_Lucene_Document_PptxC(D SZend_Search_Lucene_Document_OpenXmlC%C MZend_Search_Lucene_Document_HtmlC*B WZend_Search_Lucene_Document_ExceptionC%A MZend_Search_Lucene_Document_DocxC,@ [Zend_Search_Lucene_Analysis_TokenFilterC6? oZend_Search_Lucene_Analysis_TokenFilter_StopWordsC7> qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsC:= wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8C6< oZend_Search_Lucene_Analysis_TokenFilter_LowerCaseC&; OZend_Search_Lucene_Analysis_TokenC): UZend_Search_Lucene_Analysis_AnalyzerC09 cZend_Search_Lucene_Analysis_Analyzer_CommonC88 sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumCI7 Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitiveC56 mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8CF5 Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitiveC84 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumCI3 Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitiveC52 mZend_Search_Lucene_Analysis_Analyzer_Common_TextCF1 Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiveC0 7Zend_Search_ExceptionC/ -Zend_Rest_ServerC. AZend_Rest_Server_ExceptionC- +Zend_Rest_RouteC, 3Zend_Rest_ExceptionC+ 5Zend_Rest_ControllerC* -Zend_Rest_ClientC) ;Zend_Rest_Client_ResultC&( OZend_Rest_Client_Result_ExceptionC' AZend_Rest_Client_ExceptionC& 'Zend_RegistryC% =Zend_Reflection_PropertyC$ ?Zend_Reflection_ParameterC# 9Zend_Reflection_MethodC" =Zend_Reflection_FunctionC! 5Zend_Reflection_FileC  ?Zend_Reflection_ExtensionC ?Zend_Reflection_ExceptionC =Zend_Reflection_DocblockC! EZend_Reflection_Docblock_TagC( SZend_Reflection_Docblock_Tag_ReturnC' QZend_Reflection_Docblock_Tag_ParamC 7Zend_Reflection_ClassC !Zend_QueueC 9Zend_Queue_Stomp_FrameC ;Zend_Queue_Stomp_ClientC' QZend_Queue_Stomp_Client_ConnectionC 1Zend_Queue_MessageC# IZend_Queue_Message_PlatformJobC  CZend_Queue_Message_IteratorC 5Zend_Queue_ExceptionC( SZend_Queue_Adapter_PlatformJobQueueC ;Zend_Queue_Adapter_NullC! EZend_Queue_Adapter_MemcacheqC 7Zend_Queue_Adapter_DbC  CZend_Queue_Adapter_Db_QueueC" GZend_Queue_Adapter_Db_MessageC =Zend_Queue_Adapter_ArrayC'
 QZend_Queue_Adapter_AdapterAbstractC 	 CZend_Queue_Adapter_ActivemqC -Zend_ProgressBarC AZend_ProgressBar_ExceptionC =Zend_ProgressBar_AdapterC$ KZend_ProgressBar_Adapter_JsPushC$ KZend_ProgressBar_Adapter_JsPullC' QZend_ProgressBar_Adapter_ExceptionC% MZend_ProgressBar_Adapter_ConsoleC Zend_PdfC!  EZend_Pdf_UpdateInfoContainerC -Zend_Pdf_TrailerC~ ;Zend_Pdf_Trailer_KeeperC} AZend_Pdf_Trailer_GeneratorC| +Zend_Pdf_TargetC{ )Zend_Pdf_StyleCz 7Zend_Pdf_StringParserCy /Zend_Pdf_ResourceCx ?Zend_Pdf_Resource_UnifiedC#w IZend_Pdf_Resource_ImageFactoryCv ;Zend_Pdf_Resource_ImageC!u EZend_Pdf_Resource_Image_TiffC t CZend_Pdf_Resource_Image_PngC!s EZend_Pdf_Resource_Image_JpegC$r KZend_Pdf_Resource_GraphicsStateCq 9Zend_Pdf_Resource_FontC!p EZend_Pdf_Resource_Font_Type0C"o GZend_Pdf_Resource_Font_SimpleC+n YZend_Pdf_Resource_Font_Simple_StandardC8m sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsC6l oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanC7k qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicC;j yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicC5i mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldC   X  }R%|M'zGY+f*


|
N
!				^	,yD~Md,uA&^6	}`F'	uP'[2                    " 7Zend_Service_AbstractC! 9Zend_Server_ReflectionC'  QZend_Server_Reflection_ReturnValueC% MZend_Server_Reflection_PrototypeC% MZend_Server_Reflection_ParameterC  CZend_Server_Reflection_NodeC" GZend_Server_Reflection_MethodC$ KZend_Server_Reflection_FunctionC- ]Zend_Server_Reflection_Function_AbstractC% MZend_Server_Reflection_ExceptionC! EZend_Server_Reflection_ClassC! EZend_Server_Method_PrototypeC! EZend_Server_Method_ParameterC" GZend_Server_Method_DefinitionC  CZend_Server_Method_CallbackC 7Zend_Server_ExceptionC 9Zend_Server_DefinitionC /Zend_Server_CacheC 5Zend_Server_AbstractC +Zend_SerializerC ?Zend_Serializer_ExceptionC! EZend_Serializer_Adapter_WddxC) UZend_Serializer_Adapter_PythonPickleC) UZend_Serializer_Adapter_PhpSerializeC$
 KZend_Serializer_Adapter_PhpCodeC!	 EZend_Serializer_Adapter_JsonC% MZend_Serializer_Adapter_IgbinaryC! EZend_Serializer_Adapter_Amf3C! EZend_Serializer_Adapter_Amf0C, [Zend_Serializer_Adapter_AdapterAbstractC 1Zend_Search_LuceneC0 cZend_Search_Lucene_TermStreamsPriorityQueueC$ KZend_Search_Lucene_Storage_FileC+ YZend_Search_Lucene_Storage_File_MemoryC/  aZend_Search_Lucene_Storage_File_FilesystemC) UZend_Search_Lucene_Storage_DirectoryC4~ kZend_Search_Lucene_Storage_Directory_FilesystemC%} MZend_Search_Lucene_Search_WeightC*| WZend_Search_Lucene_Search_Weight_TermC,{ [Zend_Search_Lucene_Search_Weight_PhraseC/z aZend_Search_Lucene_Search_Weight_MultiTermC+y YZend_Search_Lucene_Search_Weight_EmptyC-x ]Zend_Search_Lucene_Search_Weight_BooleanC)w UZend_Search_Lucene_Search_SimilarityC1v eZend_Search_Lucene_Search_Similarity_DefaultC)u UZend_Search_Lucene_Search_QueryTokenC3t iZend_Search_Lucene_Search_QueryParserExceptionC1s eZend_Search_Lucene_Search_QueryParserContextC*r WZend_Search_Lucene_Search_QueryParserC)q UZend_Search_Lucene_Search_QueryLexerC'p QZend_Search_Lucene_Search_QueryHitC)o UZend_Search_Lucene_Search_QueryEntryC.n _Zend_Search_Lucene_Search_QueryEntry_TermC2m gZend_Search_Lucene_Search_QueryEntry_SubqueryC0l cZend_Search_Lucene_Search_QueryEntry_PhraseC$k KZend_Search_Lucene_Search_QueryC-j ]Zend_Search_Lucene_Search_Query_WildcardC)i UZend_Search_Lucene_Search_Query_TermC*h WZend_Search_Lucene_Search_Query_RangeC2g gZend_Search_Lucene_Search_Query_PreprocessingC7f qZend_Search_Lucene_Search_Query_Preprocessing_TermC9e uZend_Search_Lucene_Search_Query_Preprocessing_PhraseC8d sZend_Search_Lucene_Search_Query_Preprocessing_FuzzyC+c YZend_Search_Lucene_Search_Query_PhraseC.b _Zend_Search_Lucene_Search_Query_MultiTermC2a gZend_Search_Lucene_Search_Query_InsignificantC*` WZend_Search_Lucene_Search_Query_FuzzyC*_ WZend_Search_Lucene_Search_Query_EmptyC,^ [Zend_Search_Lucene_Search_Query_BooleanC2] gZend_Search_Lucene_Search_Highlighter_DefaultC:\ wZend_Search_Lucene_Search_BooleanExpressionRecognizerC[ =Zend_Search_Lucene_ProxyC%Z MZend_Search_Lucene_PriorityQueueC/Y aZend_Search_Lucene_Interface_MultiSearcherC#X IZend_Search_Lucene_LockManagerC$W KZend_Search_Lucene_Index_WriterC0V cZend_Search_Lucene_Index_TermsPriorityQueueC&U OZend_Search_Lucene_Index_TermInfoC"T GZend_Search_Lucene_Index_TermC+S YZend_Search_Lucene_Index_SegmentWriterC8R sZend_Search_Lucene_Index_SegmentWriter_StreamWriterC:Q wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterC+P YZend_Search_Lucene_Index_SegmentMergerC)O UZend_Search_Lucene_Index_SegmentInfoC'N QZend_Search_Lucene_Index_FieldInfoC(M SZend_Search_Lucene_Index_DocsFilterC.L _Zend_Search_Lucene_Index_DictionaryLoaderC!K EZend_Search_Lucene_FSMActionC   O  a3X&]+Y*
uK)



m
N
#				m	H	qI KWJp6X
hY  Rq %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequestCYp 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequestCQo #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequestCQn #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequestCam CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequestCNl Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformationCLk Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalanceCJj Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPoolC-i ]Zend_Service_DeveloperGarden_LocalSearchC>h Zend_Service_DeveloperGarden_LocalSearch_SearchParametersC7g qZend_Service_DeveloperGarden_LocalSearch_ExceptionC,f [Zend_Service_DeveloperGarden_IpLocationC6e oZend_Service_DeveloperGarden_IpLocation_IpAddressC+d YZend_Service_DeveloperGarden_ExceptionC,c [Zend_Service_DeveloperGarden_CredentialC0b cZend_Service_DeveloperGarden_ConferenceCallCCa Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatusCC` Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetailC<_ {Zend_Service_DeveloperGarden_ConferenceCall_ParticipantC:^ wZend_Service_DeveloperGarden_ConferenceCall_ExceptionCD] 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceScheduleCB\ Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetailCC[ Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccountC-Z ]Zend_Service_DeveloperGarden_Client_SoapC2Y gZend_Service_DeveloperGarden_Client_ExceptionC7X qZend_Service_DeveloperGarden_Client_ClientAbstractC1W eZend_Service_DeveloperGarden_BaseUserServiceCAV Zend_Service_DeveloperGarden_BaseUserService_AccountBalanceCU 9Zend_Service_DeliciousC&T OZend_Service_Delicious_SimplePostC$S KZend_Service_Delicious_PostListC R CZend_Service_Delicious_PostC%Q MZend_Service_Delicious_ExceptionC P CZend_Service_AudioscrobblerCO 3Zend_Service_AmazonCN ;Zend_Service_Amazon_SqsC&M OZend_Service_Amazon_Sqs_ExceptionC!L EZend_Service_Amazon_SimpleDbC*K WZend_Service_Amazon_SimpleDb_ResponseC&J OZend_Service_Amazon_SimpleDb_PageC+I YZend_Service_Amazon_SimpleDb_ExceptionC+H YZend_Service_Amazon_SimpleDb_AttributeC'G QZend_Service_Amazon_SimilarProductCF 9Zend_Service_Amazon_S3C"E GZend_Service_Amazon_S3_StreamC%D MZend_Service_Amazon_S3_ExceptionC"C GZend_Service_Amazon_ResultSetCB ?Zend_Service_Amazon_QueryC!A EZend_Service_Amazon_OfferSetC@ ?Zend_Service_Amazon_OfferC&? OZend_Service_Amazon_ListmaniaListC> =Zend_Service_Amazon_ItemC= ?Zend_Service_Amazon_ImageC"< GZend_Service_Amazon_ExceptionC(; SZend_Service_Amazon_EditorialReviewC: ;Zend_Service_Amazon_Ec2C+9 YZend_Service_Amazon_Ec2_SecuritygroupsC%8 MZend_Service_Amazon_Ec2_ResponseC#7 IZend_Service_Amazon_Ec2_RegionC$6 KZend_Service_Amazon_Ec2_KeypairC%5 MZend_Service_Amazon_Ec2_InstanceC-4 ]Zend_Service_Amazon_Ec2_Instance_WindowsC.3 _Zend_Service_Amazon_Ec2_Instance_ReservedC"2 GZend_Service_Amazon_Ec2_ImageC&1 OZend_Service_Amazon_Ec2_ExceptionC&0 OZend_Service_Amazon_Ec2_ElasticipC / CZend_Service_Amazon_Ec2_EbsC'. QZend_Service_Amazon_Ec2_CloudWatchC.- _Zend_Service_Amazon_Ec2_AvailabilityzonesC%, MZend_Service_Amazon_Ec2_AbstractC'+ QZend_Service_Amazon_CustomerReviewC'* QZend_Service_Amazon_AuthenticationC*) WZend_Service_Amazon_Authentication_V2C*( WZend_Service_Amazon_Authentication_V1C*' WZend_Service_Amazon_Authentication_S3C1& eZend_Service_Amazon_Authentication_ExceptionC$% KZend_Service_Amazon_AccessoriesC!$ EZend_Service_Amazon_AbstractC# 5Zend_Service_AkismetC   /  J21lY


o
&			Z	@d#C\/5$i                                                                              V  -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseCX 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseTypeCT )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseC_ ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseTypeC[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseCW /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseTypeCS 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseCQ #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstractCS 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponseCJ Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseTypeCg OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseTypeCc GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseCW /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponseCU +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponseCS 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponseC3 iZend_Service_DeveloperGarden_Response_BaseTypeCJ Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstractCC Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCallCG Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequencedC= }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallCA Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatusCA Zend_Service_DeveloperGarden_Request_SmsValidation_ValidateCN
 Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeywordCC	 Zend_Service_DeveloperGarden_Request_SmsValidation_InvalidateCL Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbersCB Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstractC9 uZend_Service_DeveloperGarden_Request_SendSms_SendSMSC> Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMSC9 uZend_Service_DeveloperGarden_Request_RequestAbstractCI Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequestCE Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequestC3 iZend_Service_DeveloperGarden_Request_ExceptionCR  %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequestCY 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequestCd~ IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequestCQ} #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequestCR| %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequestCY{ 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequestCdz IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequestCQy #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequestCOx Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequestCUw +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequestCUv +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequestCVu -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequestCat CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequestCZs 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequestCTr )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequestC   / g BwP;.

m
		_>w'Hgl 9CV  g LO Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponseCPN !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponseCGM Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponseCJL Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponseCKK Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2ResponseCLJ Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponseCII Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumberCWH /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponseCJG Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponseCUF +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponseCCE Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponseCCD Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstractCHC Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponseCUB +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponseCQA #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponseCI@ Zend_Service_DeveloperGarden_Response_SecurityTokenServer_ExceptionC;? yZend_Service_DeveloperGarden_Response_ResponseAbstractCO> Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseTypeCK= Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseCA< Zend_Service_DeveloperGarden_Response_IpLocation_RegionTypeCK; Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseTypeCG: Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseCL9 Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationTypeCI8 Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesTypeC>7 Zend_Service_DeveloperGarden_Response_IpLocation_CityTypeC46 kZend_Service_DeveloperGarden_Response_ExceptionCT5 )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponseC[4 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponseCf3 MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponseCS2 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponseCT1 )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponseC[0 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponseCf/ MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponseCS. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponseCU- +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseTypeCQ, #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseC[+ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseTypeCW* /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseC[) 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseTypeCW( /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseC\' 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseTypeCX& 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseCg% OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseTypeCc$ GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseC`# AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseTypeC\" 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseCZ! 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseTypeC   Y  r9c8X/W&o<


m
;
				Q	"oI-j=uM.d;qO*d:p:k;	                           1( eZend_Service_Technorati_DailyCountsResultSetC.' _Zend_Service_Technorati_DailyCountsResultC,& [Zend_Service_Technorati_CosmosResultSetC)% UZend_Service_Technorati_CosmosResultC+$ YZend_Service_Technorati_BlogInfoResultC## IZend_Service_Technorati_AuthorC" ;Zend_Service_StrikeIronC(! SZend_Service_StrikeIron_ZipCodeInfoC2  gZend_Service_StrikeIron_USAddressVerificationC- ]Zend_Service_StrikeIron_SalesUseTaxBasicC& OZend_Service_StrikeIron_ExceptionC& OZend_Service_StrikeIron_DecoratorC! EZend_Service_StrikeIron_BaseC ;Zend_Service_SlideShareC& OZend_Service_SlideShare_SlideShowC& OZend_Service_SlideShare_ExceptionC 1Zend_Service_SimpyC$ KZend_Service_Simpy_WatchlistSetC* WZend_Service_Simpy_WatchlistFilterSetC' QZend_Service_Simpy_WatchlistFilterC! EZend_Service_Simpy_WatchlistC ?Zend_Service_Simpy_TagSetC 9Zend_Service_Simpy_TagC AZend_Service_Simpy_NoteSetC ;Zend_Service_Simpy_NoteC AZend_Service_Simpy_LinkSetC! EZend_Service_Simpy_LinkQueryC ;Zend_Service_Simpy_LinkC% MZend_Service_ShortUrl_TinyUrlComC& OZend_Service_ShortUrl_MetamarkNetC!
 EZend_Service_ShortUrl_JdemCzC	 AZend_Service_ShortUrl_IsGdC$ KZend_Service_ShortUrl_ExceptionC, [Zend_Service_ShortUrl_AbstractShortenerC 9Zend_Service_ReCaptchaC$ KZend_Service_ReCaptcha_ResponseC$ KZend_Service_ReCaptcha_MailHideC. _Zend_Service_ReCaptcha_MailHide_ExceptionC% MZend_Service_ReCaptcha_ExceptionC 7Zend_Service_NirvanixC#  IZend_Service_Nirvanix_ResponseC) UZend_Service_Nirvanix_Namespace_ImfsC)~ UZend_Service_Nirvanix_Namespace_BaseC$} KZend_Service_Nirvanix_ExceptionC| 7Zend_Service_LiveDocxC${ KZend_Service_LiveDocx_MailMergeC$z KZend_Service_LiveDocx_ExceptionCy 3Zend_Service_FlickrC"x GZend_Service_Flickr_ResultSetCw AZend_Service_Flickr_ResultCv ?Zend_Service_Flickr_ImageCu 9Zend_Service_ExceptionCt ?Zend_Service_Ebay_FindingC)s UZend_Service_Ebay_Finding_StorefrontC+r YZend_Service_Ebay_Finding_ShippingInfoC+q YZend_Service_Ebay_Finding_Set_AbstractC,p [Zend_Service_Ebay_Finding_SellingStatusC)o UZend_Service_Ebay_Finding_SellerInfoC,n [Zend_Service_Ebay_Finding_Search_ResultC*m WZend_Service_Ebay_Finding_Search_ItemC.l _Zend_Service_Ebay_Finding_Search_Item_SetC0k cZend_Service_Ebay_Finding_Response_KeywordsC-j ]Zend_Service_Ebay_Finding_Response_ItemsC2i gZend_Service_Ebay_Finding_Response_HistogramsC0h cZend_Service_Ebay_Finding_Response_AbstractC/g aZend_Service_Ebay_Finding_PaginationOutputC*f WZend_Service_Ebay_Finding_ListingInfoC(e SZend_Service_Ebay_Finding_ExceptionC,d [Zend_Service_Ebay_Finding_Error_MessageC)c UZend_Service_Ebay_Finding_Error_DataC-b ]Zend_Service_Ebay_Finding_Error_Data_SetC'a QZend_Service_Ebay_Finding_CategoryC1` eZend_Service_Ebay_Finding_Category_HistogramC5_ mZend_Service_Ebay_Finding_Category_Histogram_SetC;^ yZend_Service_Ebay_Finding_Category_Histogram_ContainerC%] MZend_Service_Ebay_Finding_AspectC)\ UZend_Service_Ebay_Finding_Aspect_SetC5[ mZend_Service_Ebay_Finding_Aspect_Histogram_ValueC9Z uZend_Service_Ebay_Finding_Aspect_Histogram_Value_SetC9Y uZend_Service_Ebay_Finding_Aspect_Histogram_ContainerC'X QZend_Service_Ebay_Finding_AbstractC W CZend_Service_Ebay_ExceptionCV AZend_Service_Ebay_AbstractC+U YZend_Service_DeveloperGarden_VoiceCallC/T aZend_Service_DeveloperGarden_SmsValidationC)S UZend_Service_DeveloperGarden_SendSmsC5R mZend_Service_DeveloperGarden_SecurityTokenServerC;Q yZend_Service_DeveloperGarden_SecurityTokenServer_CacheCKP Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstractC   L  zS)uJdGPs+


W
		i	1vJe4`(|?e%L"U.^<    !t EZend_Service_Yahoo_WebResultC&s OZend_Service_Yahoo_VideoResultSetC#r IZend_Service_Yahoo_VideoResultC!q EZend_Service_Yahoo_ResultSetCp ?Zend_Service_Yahoo_ResultC)o UZend_Service_Yahoo_PageDataResultSetC&n OZend_Service_Yahoo_PageDataResultC%m MZend_Service_Yahoo_NewsResultSetC"l GZend_Service_Yahoo_NewsResultC&k OZend_Service_Yahoo_LocalResultSetC#j IZend_Service_Yahoo_LocalResultC+i YZend_Service_Yahoo_InlinkDataResultSetC(h SZend_Service_Yahoo_InlinkDataResultC&g OZend_Service_Yahoo_ImageResultSetC#f IZend_Service_Yahoo_ImageResultCe =Zend_Service_Yahoo_ImageC&d OZend_Service_WindowsAzure_StorageC4c kZend_Service_WindowsAzure_Storage_TableInstanceC7b qZend_Service_WindowsAzure_Storage_TableEntityQueryC2a gZend_Service_WindowsAzure_Storage_TableEntityC,` [Zend_Service_WindowsAzure_Storage_TableC<_ {Zend_Service_WindowsAzure_Storage_StorageEntityAbstractC7^ qZend_Service_WindowsAzure_Storage_SignedIdentifierC3] iZend_Service_WindowsAzure_Storage_QueueMessageC4\ kZend_Service_WindowsAzure_Storage_QueueInstanceC,[ [Zend_Service_WindowsAzure_Storage_QueueC9Z uZend_Service_WindowsAzure_Storage_PageRegionInstanceC4Y kZend_Service_WindowsAzure_Storage_LeaseInstanceC9X uZend_Service_WindowsAzure_Storage_DynamicTableEntityC3W iZend_Service_WindowsAzure_Storage_BlobInstanceC4V kZend_Service_WindowsAzure_Storage_BlobContainerC+U YZend_Service_WindowsAzure_Storage_BlobC2T gZend_Service_WindowsAzure_Storage_Blob_StreamC;S yZend_Service_WindowsAzure_Storage_BatchStorageAbstractC,R [Zend_Service_WindowsAzure_Storage_BatchC-Q ]Zend_Service_WindowsAzure_SessionHandlerC>P Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstractC1O eZend_Service_WindowsAzure_RetryPolicy_RetryNC2N gZend_Service_WindowsAzure_RetryPolicy_NoRetryC4M kZend_Service_WindowsAzure_RetryPolicy_ExceptionC(L SZend_Service_WindowsAzure_ExceptionCJK Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscriptionC2J gZend_Service_WindowsAzure_Diagnostics_ManagerC3I iZend_Service_WindowsAzure_Diagnostics_LogLevelC4H kZend_Service_WindowsAzure_Diagnostics_ExceptionCNG Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscriptionCHF Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLogCLE Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCountersCKD Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstractC<C {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogsCAB Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstanceCDA 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectoriesCU@ +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogsCD? 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSourcesC8> sZend_Service_WindowsAzure_Credentials_SharedKeyLiteC4= kZend_Service_WindowsAzure_Credentials_SharedKeyCA< Zend_Service_WindowsAzure_Credentials_SharedAccessSignatureC4; kZend_Service_WindowsAzure_Credentials_ExceptionC>: Zend_Service_WindowsAzure_Credentials_CredentialsAbstractC9 5Zend_Service_TwitterC 8 CZend_Service_Twitter_SearchC#7 IZend_Service_Twitter_ExceptionC6 ;Zend_Service_TechnoratiC#5 IZend_Service_Technorati_WeblogC"4 GZend_Service_Technorati_UtilsC*3 WZend_Service_Technorati_TagsResultSetC'2 QZend_Service_Technorati_TagsResultC)1 UZend_Service_Technorati_TagResultSetC&0 OZend_Service_Technorati_TagResultC,/ [Zend_Service_Technorati_SearchResultSetC). UZend_Service_Technorati_SearchResultC&- OZend_Service_Technorati_ResultSetC#, IZend_Service_Technorati_ResultC*+ WZend_Service_Technorati_KeyInfoResultC** WZend_Service_Technorati_GetInfoResultC&) OZend_Service_Technorati_ExceptionC   _  a8z[;c:N7lK4




R
$				p	B	X*qU2jN6W)c/Vz>b6                 'S QZend_Tool_Framework_Client_StorageC1R eZend_Tool_Framework_Client_Storage_DirectoryC(Q SZend_Tool_Framework_Client_ResponseCDP 	Zend_Tool_Framework_Client_Response_ContentDecorator_SeparatorC'O QZend_Tool_Framework_Client_RequestC(N SZend_Tool_Framework_Client_ManifestC9M uZend_Tool_Framework_Client_Interactive_InputResponseC8L sZend_Tool_Framework_Client_Interactive_InputRequestC8K sZend_Tool_Framework_Client_Interactive_InputHandlerC)J UZend_Tool_Framework_Client_ExceptionC'I QZend_Tool_Framework_Client_ConsoleCDH 	Zend_Tool_Framework_Client_Console_ResponseDecorator_IndentionCDG 	Zend_Tool_Framework_Client_Console_ResponseDecorator_ColorizerCCF Zend_Tool_Framework_Client_Console_ResponseDecorator_BlockizeCFE Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenterC0D cZend_Tool_Framework_Client_Console_ManifestC2C gZend_Tool_Framework_Client_Console_HelpSystemC6B oZend_Tool_Framework_Client_Console_ArgumentParserC&A OZend_Tool_Framework_Client_ConfigC(@ SZend_Tool_Framework_Client_AbstractC*? WZend_Tool_Framework_Action_RepositoryC)> UZend_Tool_Framework_Action_ExceptionC$= KZend_Tool_Framework_Action_BaseC< 'Zend_TimeSyncC; 1Zend_TimeSync_SntpC: 9Zend_TimeSync_ProtocolC9 /Zend_TimeSync_NtpC8 ;Zend_TimeSync_ExceptionC7 +Zend_Text_TableC6 3Zend_Text_Table_RowC5 ?Zend_Text_Table_ExceptionC&4 OZend_Text_Table_Decorator_UnicodeC$3 KZend_Text_Table_Decorator_AsciiC2 9Zend_Text_Table_ColumnC1 3Zend_Text_MultiByteC0 -Zend_Text_FigletC/ AZend_Text_Figlet_ExceptionC. 3Zend_Text_ExceptionC&- OZend_Test_PHPUnit_Db_SimpleTesterC,, [Zend_Test_PHPUnit_Db_Operation_TruncateC*+ WZend_Test_PHPUnit_Db_Operation_InsertC-* ]Zend_Test_PHPUnit_Db_Operation_DeleteAllC*) WZend_Test_PHPUnit_Db_Metadata_GenericC#( IZend_Test_PHPUnit_Db_ExceptionC,' [Zend_Test_PHPUnit_Db_DataSet_QueryTableC.& _Zend_Test_PHPUnit_Db_DataSet_QueryDataSetC0% cZend_Test_PHPUnit_Db_DataSet_DbTableDataSetC)$ UZend_Test_PHPUnit_Db_DataSet_DbTableC*# WZend_Test_PHPUnit_Db_DataSet_DbRowsetC$" KZend_Test_PHPUnit_Db_ConnectionC'! QZend_Test_PHPUnit_DatabaseTestCaseC)  UZend_Test_PHPUnit_ControllerTestCaseC0 cZend_Test_PHPUnit_Constraint_ResponseHeaderC* WZend_Test_PHPUnit_Constraint_RedirectC+ YZend_Test_PHPUnit_Constraint_ExceptionC* WZend_Test_PHPUnit_Constraint_DomQueryC 7Zend_Test_DbStatementC 3Zend_Test_DbAdapterC /Zend_Tag_ItemListC 'Zend_Tag_ItemC 1Zend_Tag_ExceptionC )Zend_Tag_CloudC =Zend_Tag_Cloud_ExceptionC! EZend_Tag_Cloud_Decorator_TagC% MZend_Tag_Cloud_Decorator_HtmlTagC' QZend_Tag_Cloud_Decorator_HtmlCloudC' QZend_Tag_Cloud_Decorator_ExceptionC# IZend_Tag_Cloud_Decorator_CloudC )Zend_Soap_WsdlC/ aZend_Soap_Wsdl_Strategy_DefaultComplexTypeC& OZend_Soap_Wsdl_Strategy_CompositeC0 cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequenceC/ aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplexC$
 KZend_Soap_Wsdl_Strategy_AnyTypeC%	 MZend_Soap_Wsdl_Strategy_AbstractC =Zend_Soap_Wsdl_ExceptionC -Zend_Soap_ServerC AZend_Soap_Server_ExceptionC -Zend_Soap_ClientC 9Zend_Soap_Client_LocalC AZend_Soap_Client_ExceptionC ;Zend_Soap_Client_DotNetC ;Zend_Soap_Client_CommonC  9Zend_Soap_AutoDiscoverC% MZend_Soap_AutoDiscover_ExceptionC~ %Zend_SessionC)} UZend_Session_Validator_HttpUserAgentC$| KZend_Session_Validator_AbstractC'{ QZend_Session_SaveHandler_ExceptionC%z MZend_Session_SaveHandler_DbTableCy 9Zend_Session_NamespaceCx 9Zend_Session_ExceptionCw 7Zend_Session_AbstractCv 1Zend_Service_YahooC$u KZend_Service_Yahoo_WebResultSetC   J  1rE_0}Jn7


m
;
			T	}CvBn;q5`1X#w7K	                                     E Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectoryC> Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFileC= }Zend_Tool_Project_Context_Zf_TestApplicationActionMethodC4 kZend_Tool_Project_Context_Zf_TemporaryDirectoryC3 iZend_Tool_Project_Context_Zf_SessionsDirectoryC8 sZend_Tool_Project_Context_Zf_SearchIndexesDirectoryC< {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectoryC8 sZend_Tool_Project_Context_Zf_PublicScriptsDirectoryC1 eZend_Tool_Project_Context_Zf_PublicIndexFileC7 qZend_Tool_Project_Context_Zf_PublicImagesDirectoryC1 eZend_Tool_Project_Context_Zf_PublicDirectoryC5 mZend_Tool_Project_Context_Zf_ProjectProviderFileC2 gZend_Tool_Project_Context_Zf_ModulesDirectoryC1 eZend_Tool_Project_Context_Zf_ModuleDirectoryC1 eZend_Tool_Project_Context_Zf_ModelsDirectoryC+ YZend_Tool_Project_Context_Zf_ModelFileC/ aZend_Tool_Project_Context_Zf_LogsDirectoryC2 gZend_Tool_Project_Context_Zf_LocalesDirectoryC2 gZend_Tool_Project_Context_Zf_LibraryDirectoryC2
 gZend_Tool_Project_Context_Zf_LayoutsDirectoryC8	 sZend_Tool_Project_Context_Zf_LayoutScriptsDirectoryC2 gZend_Tool_Project_Context_Zf_LayoutScriptFileC. _Zend_Tool_Project_Context_Zf_HtaccessFileC0 cZend_Tool_Project_Context_Zf_FormsDirectoryC* WZend_Tool_Project_Context_Zf_FormFileC/ aZend_Tool_Project_Context_Zf_DocsDirectoryC- ]Zend_Tool_Project_Context_Zf_DbTableFileC2 gZend_Tool_Project_Context_Zf_DbTableDirectoryC/ aZend_Tool_Project_Context_Zf_DataDirectoryC6  oZend_Tool_Project_Context_Zf_ControllersDirectoryC0 cZend_Tool_Project_Context_Zf_ControllerFileC2~ gZend_Tool_Project_Context_Zf_ConfigsDirectoryC,} [Zend_Tool_Project_Context_Zf_ConfigFileC0| cZend_Tool_Project_Context_Zf_CacheDirectoryC/{ aZend_Tool_Project_Context_Zf_BootstrapFileC6z oZend_Tool_Project_Context_Zf_ApplicationDirectoryC7y qZend_Tool_Project_Context_Zf_ApplicationConfigFileC/x aZend_Tool_Project_Context_Zf_ApisDirectoryC.w _Zend_Tool_Project_Context_Zf_ActionMethodC3v iZend_Tool_Project_Context_Zf_AbstractClassFileC@u Zend_Tool_Project_Context_System_ProjectProvidersDirectoryC8t sZend_Tool_Project_Context_System_ProjectProfileFileC6s oZend_Tool_Project_Context_System_ProjectDirectoryC)r UZend_Tool_Project_Context_RepositoryC.q _Zend_Tool_Project_Context_Filesystem_FileC3p iZend_Tool_Project_Context_Filesystem_DirectoryC2o gZend_Tool_Project_Context_Filesystem_AbstractC(n SZend_Tool_Project_Context_ExceptionC-m ]Zend_Tool_Project_Context_Content_EngineC3l iZend_Tool_Project_Context_Content_Engine_PhtmlC;k yZend_Tool_Project_Context_Content_Engine_CodeGeneratorC0j cZend_Tool_Framework_System_Provider_VersionC0i cZend_Tool_Framework_System_Provider_PhpinfoC1h eZend_Tool_Framework_System_Provider_ManifestC/g aZend_Tool_Framework_System_Provider_ConfigC(f SZend_Tool_Framework_System_ManifestC-e ]Zend_Tool_Framework_System_Action_DeleteC-d ]Zend_Tool_Framework_System_Action_CreateC!c EZend_Tool_Framework_RegistryC+b YZend_Tool_Framework_Registry_ExceptionC+a YZend_Tool_Framework_Provider_SignatureC,` [Zend_Tool_Framework_Provider_RepositoryC+_ YZend_Tool_Framework_Provider_ExceptionC*^ WZend_Tool_Framework_Provider_AbstractC&] OZend_Tool_Framework_Metadata_ToolC)\ UZend_Tool_Framework_Metadata_DynamicC'[ QZend_Tool_Framework_Metadata_BasicC,Z [Zend_Tool_Framework_Manifest_RepositoryC+Y YZend_Tool_Framework_Manifest_ExceptionC1X eZend_Tool_Framework_Loader_IncludePathLoaderCJW Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIteratorC+V YZend_Tool_Framework_Loader_BasicLoaderC(U SZend_Tool_Framework_Loader_AbstractC"T GZend_Tool_Framework_ExceptionC   Y  ~9{FUf2`4


T
				t	E	j@k8yV4dF/hCyU1[6tM(                                 $v KZend_Validate_Barcode_RoyalmailC"u GZend_Validate_Barcode_PostnetC!t EZend_Validate_Barcode_PlanetC#s IZend_Validate_Barcode_LeitcodeC r CZend_Validate_Barcode_Itf14Cq AZend_Validate_Barcode_IssnC*p WZend_Validate_Barcode_IntelligentMailC$o KZend_Validate_Barcode_IdentcodeC!n EZend_Validate_Barcode_Gtin14C!m EZend_Validate_Barcode_Gtin13C!l EZend_Validate_Barcode_Gtin12Ck AZend_Validate_Barcode_Ean8Cj AZend_Validate_Barcode_Ean5Ci AZend_Validate_Barcode_Ean2C h CZend_Validate_Barcode_Ean18C g CZend_Validate_Barcode_Ean14C f CZend_Validate_Barcode_Ean13C e CZend_Validate_Barcode_Ean12C$d KZend_Validate_Barcode_Code93extC!c EZend_Validate_Barcode_Code93C$b KZend_Validate_Barcode_Code39extC!a EZend_Validate_Barcode_Code39C,` [Zend_Validate_Barcode_Code25interleavedC!_ EZend_Validate_Barcode_Code25C*^ WZend_Validate_Barcode_AdapterAbstractC] 3Zend_Validate_AlphaC\ 3Zend_Validate_AlnumC[ 9Zend_Validate_AbstractCZ Zend_UriCY 'Zend_Uri_HttpCX 1Zend_Uri_ExceptionCW )Zend_TranslateCV 7Zend_Translate_PluralCU =Zend_Translate_ExceptionCT 9Zend_Translate_AdapterC!S EZend_Translate_Adapter_XmlTmC!R EZend_Translate_Adapter_XliffCQ AZend_Translate_Adapter_TmxCP AZend_Translate_Adapter_TbxCO ?Zend_Translate_Adapter_QtCN AZend_Translate_Adapter_IniC#M IZend_Translate_Adapter_GettextCL AZend_Translate_Adapter_CsvC!K EZend_Translate_Adapter_ArrayC$J KZend_Tool_Project_Provider_ViewC$I KZend_Tool_Project_Provider_TestC/H aZend_Tool_Project_Provider_ProjectProviderC'G QZend_Tool_Project_Provider_ProjectC'F QZend_Tool_Project_Provider_ProfileC&E OZend_Tool_Project_Provider_ModuleC%D MZend_Tool_Project_Provider_ModelC(C SZend_Tool_Project_Provider_ManifestC&B OZend_Tool_Project_Provider_LayoutC$A KZend_Tool_Project_Provider_FormC)@ UZend_Tool_Project_Provider_ExceptionC'? QZend_Tool_Project_Provider_DbTableC)> UZend_Tool_Project_Provider_DbAdapterC*= WZend_Tool_Project_Provider_ControllerC+< YZend_Tool_Project_Provider_ApplicationC&; OZend_Tool_Project_Provider_ActionC(: SZend_Tool_Project_Provider_AbstractC9 ?Zend_Tool_Project_ProfileC'8 QZend_Tool_Project_Profile_ResourceC97 uZend_Tool_Project_Profile_Resource_SearchConstraintsC16 eZend_Tool_Project_Profile_Resource_ContainerC=5 }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilterC54 mZend_Tool_Project_Profile_Iterator_ContextFilterC-3 ]Zend_Tool_Project_Profile_FileParser_XmlC(2 SZend_Tool_Project_Profile_ExceptionC 1 CZend_Tool_Project_ExceptionC<0 {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectoryC0/ cZend_Tool_Project_Context_Zf_ViewsDirectoryC6. oZend_Tool_Project_Context_Zf_ViewScriptsDirectoryC0- cZend_Tool_Project_Context_Zf_ViewScriptFileC6, oZend_Tool_Project_Context_Zf_ViewHelpersDirectoryC6+ oZend_Tool_Project_Context_Zf_ViewFiltersDirectoryCA* Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectoryC2) gZend_Tool_Project_Context_Zf_UploadsDirectoryC0( cZend_Tool_Project_Context_Zf_TestsDirectoryC7' qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFileC:& wZend_Tool_Project_Context_Zf_TestPHPUnitBootstrapFileC@% Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectoryC1$ eZend_Tool_Project_Context_Zf_TestLibraryFileC6# oZend_Tool_Project_Context_Zf_TestLibraryDirectoryC:" wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFileCB! Zend_Tool_Project_Context_Zf_TestApplicationModulesDirectoryCA  Zend_Tool_Project_Context_Zf_TestApplicationModuleDirectoryC: wZend_Tool_Project_Context_Zf_TestApplicationDirectoryC@ Zend_Tool_Project_Context_Zf_TestApplicationControllerFileC   n  y[< tW4{Y4`<tR8





r
S
4
					a	>	(	yW8hChF pJ(zU2}_?]9e,               6d oZend_View_Helper_Placeholder_Container_StandaloneC5c mZend_View_Helper_Placeholder_Container_ExceptionC4b kZend_View_Helper_Placeholder_Container_AbstractC!a EZend_View_Helper_PartialLoopC` =Zend_View_Helper_PartialC'_ QZend_View_Helper_Partial_ExceptionC'^ QZend_View_Helper_PaginationControlC ] CZend_View_Helper_NavigationC(\ SZend_View_Helper_Navigation_SitemapC%[ MZend_View_Helper_Navigation_MenuC&Z OZend_View_Helper_Navigation_LinksC/Y aZend_View_Helper_Navigation_HelperAbstractC,X [Zend_View_Helper_Navigation_BreadcrumbsCW ;Zend_View_Helper_LayoutCV 7Zend_View_Helper_JsonC"U GZend_View_Helper_InlineScriptC#T IZend_View_Helper_HtmlQuicktimeCS ?Zend_View_Helper_HtmlPageC R CZend_View_Helper_HtmlObjectCQ ?Zend_View_Helper_HtmlListCP AZend_View_Helper_HtmlFlashC!O EZend_View_Helper_HtmlElementCN AZend_View_Helper_HeadTitleCM AZend_View_Helper_HeadStyleC L CZend_View_Helper_HeadScriptCK ?Zend_View_Helper_HeadMetaCJ ?Zend_View_Helper_HeadLinkCI ?Zend_View_Helper_GravatarC"H GZend_View_Helper_FormTextareaCG ?Zend_View_Helper_FormTextC F CZend_View_Helper_FormSubmitC E CZend_View_Helper_FormSelectCD AZend_View_Helper_FormResetCC AZend_View_Helper_FormRadioC"B GZend_View_Helper_FormPasswordCA ?Zend_View_Helper_FormNoteC'@ QZend_View_Helper_FormMultiCheckboxC? AZend_View_Helper_FormLabelC> AZend_View_Helper_FormImageC = CZend_View_Helper_FormHiddenC< ?Zend_View_Helper_FormFileC ; CZend_View_Helper_FormErrorsC!: EZend_View_Helper_FormElementC"9 GZend_View_Helper_FormCheckboxC 8 CZend_View_Helper_FormButtonC7 7Zend_View_Helper_FormC6 ?Zend_View_Helper_FieldsetC5 =Zend_View_Helper_DoctypeC!4 EZend_View_Helper_DeclareVarsC3 9Zend_View_Helper_CycleC2 ?Zend_View_Helper_CurrencyC1 =Zend_View_Helper_BaseUrlC0 ;Zend_View_Helper_ActionC/ ?Zend_View_Helper_AbstractC. 3Zend_View_ExceptionC- 1Zend_View_AbstractC, %Zend_VersionC+ 'Zend_ValidateC* AZend_Validate_StringLengthC#) IZend_Validate_Sitemap_PriorityC( ?Zend_Validate_Sitemap_LocC"' GZend_Validate_Sitemap_LastmodC%& MZend_Validate_Sitemap_ChangefreqC% 3Zend_Validate_RegexC$ 9Zend_Validate_PostCodeC# 9Zend_Validate_NotEmptyC" 9Zend_Validate_LessThanC! 1Zend_Validate_IsbnC  -Zend_Validate_IpC /Zend_Validate_IntC 7Zend_Validate_InArrayC ;Zend_Validate_IdenticalC 1Zend_Validate_IbanC 9Zend_Validate_HostnameC /Zend_Validate_HexC ?Zend_Validate_GreaterThanC 3Zend_Validate_FloatC! EZend_Validate_File_WordCountC ?Zend_Validate_File_UploadC ;Zend_Validate_File_SizeC ;Zend_Validate_File_Sha1C! EZend_Validate_File_NotExistsC  CZend_Validate_File_MimeTypeC 9Zend_Validate_File_Md5C AZend_Validate_File_IsImageC$ KZend_Validate_File_IsCompressedC! EZend_Validate_File_ImageSizeC ;Zend_Validate_File_HashC! EZend_Validate_File_FilesSizeC! EZend_Validate_File_ExtensionC
 ?Zend_Validate_File_ExistsC'	 QZend_Validate_File_ExcludeMimeTypeC( SZend_Validate_File_ExcludeExtensionC =Zend_Validate_File_Crc32C =Zend_Validate_File_CountC ;Zend_Validate_ExceptionC AZend_Validate_EmailAddressC 5Zend_Validate_DigitsC" GZend_Validate_Db_RecordExistsC$ KZend_Validate_Db_NoRecordExistsC  ?Zend_Validate_Db_AbstractC 1Zend_Validate_DateC~ =Zend_Validate_CreditCardC} 3Zend_Validate_CcnumC| 9Zend_Validate_CallbackC{ 7Zend_Validate_BetweenCz 7Zend_Validate_BarcodeCy AZend_Validate_Barcode_UpceCx AZend_Validate_Barcode_UpcaCw AZend_Validate_Barcode_SsccC   j  kFrYGyO* yR7}\:




x
V
;
					k	J	&	iN4bC(mI&`> qP-rDf1]8          (N SZend_Application_Resource_ExceptionD#M IZend_Application_Resource_DojoD!L EZend_Application_Resource_DbD+K YZend_Application_Resource_CachemanagerD&J OZend_Application_Module_BootstrapD'I QZend_Application_Module_AutoloaderDH AZend_Application_ExceptionD)G UZend_Application_Bootstrap_ExceptionD1F eZend_Application_Bootstrap_BootstrapAbstractD)E UZend_Application_Bootstrap_BootstrapDD ?Zend_Amf_Value_TraitsInfoD-C ]Zend_Amf_Value_Messaging_RemotingMessageD*B WZend_Amf_Value_Messaging_ErrorMessageD,A [Zend_Amf_Value_Messaging_CommandMessageD*@ WZend_Amf_Value_Messaging_AsyncMessageD-? ]Zend_Amf_Value_Messaging_ArrayCollectionD0> cZend_Amf_Value_Messaging_AcknowledgeMessageD-= ]Zend_Amf_Value_Messaging_AbstractMessageD!< EZend_Amf_Value_MessageHeaderD; AZend_Amf_Value_MessageBodyD: =Zend_Amf_Value_ByteArrayD9 AZend_Amf_Util_BinaryStreamD8 +Zend_Amf_ServerD7 ?Zend_Amf_Server_ExceptionD6 /Zend_Amf_ResponseD5 9Zend_Amf_Response_HttpD4 -Zend_Amf_RequestD3 7Zend_Amf_Request_HttpD2 ?Zend_Amf_Parse_TypeLoaderD1 ?Zend_Amf_Parse_SerializerD#0 IZend_Amf_Parse_Resource_StreamD(/ SZend_Amf_Parse_Resource_MysqlResultD). UZend_Amf_Parse_Resource_MysqliResultD - CZend_Amf_Parse_OutputStreamD, AZend_Amf_Parse_InputStreamD + CZend_Amf_Parse_DeserializerD#* IZend_Amf_Parse_Amf3_SerializerD%) MZend_Amf_Parse_Amf3_DeserializerD#( IZend_Amf_Parse_Amf0_SerializerD%' MZend_Amf_Parse_Amf0_DeserializerD& 1Zend_Amf_ExceptionD% 1Zend_Amf_ConstantsD$ 9Zend_Amf_Auth_AbstractD # CZend_Amf_Adobe_IntrospectorD" AZend_Amf_Adobe_DbInspectorD! 3Zend_Amf_Adobe_AuthD  Zend_AclD 'Zend_Acl_RoleD 9Zend_Acl_Role_RegistryD% MZend_Acl_Role_Registry_ExceptionD /Zend_Acl_ResourceD 1Zend_Acl_ExceptionD /Zend_XmlRpc_ValueC =Zend_XmlRpc_Value_StructC =Zend_XmlRpc_Value_StringC =Zend_XmlRpc_Value_ScalarC 7Zend_XmlRpc_Value_NilC ?Zend_XmlRpc_Value_IntegerC  CZend_XmlRpc_Value_ExceptionC =Zend_XmlRpc_Value_DoubleC AZend_XmlRpc_Value_DateTimeC! EZend_XmlRpc_Value_CollectionC ?Zend_XmlRpc_Value_BooleanC! EZend_XmlRpc_Value_BigIntegerC =Zend_XmlRpc_Value_Base64C ;Zend_XmlRpc_Value_ArrayC 1Zend_XmlRpc_ServerC ?Zend_XmlRpc_Server_SystemC
 =Zend_XmlRpc_Server_FaultC!	 EZend_XmlRpc_Server_ExceptionC =Zend_XmlRpc_Server_CacheC 5Zend_XmlRpc_ResponseC ?Zend_XmlRpc_Response_HttpC 3Zend_XmlRpc_RequestC ?Zend_XmlRpc_Request_StdinC =Zend_XmlRpc_Request_HttpC$ KZend_XmlRpc_Generator_XmlWriterC, [Zend_XmlRpc_Generator_GeneratorAbstractC&  OZend_XmlRpc_Generator_DomDocumentC /Zend_XmlRpc_FaultC~ 7Zend_XmlRpc_ExceptionC} 1Zend_XmlRpc_ClientC#| IZend_XmlRpc_Client_ServerProxyC+{ YZend_XmlRpc_Client_ServerIntrospectionC+z YZend_XmlRpc_Client_IntrospectExceptionC%y MZend_XmlRpc_Client_HttpExceptionC&x OZend_XmlRpc_Client_FaultExceptionC!w EZend_XmlRpc_Client_ExceptionC&v OZend_Wildfire_Protocol_JsonStreamC!u EZend_Wildfire_Plugin_FirePhpC.t _Zend_Wildfire_Plugin_FirePhp_TableMessageC)s UZend_Wildfire_Plugin_FirePhp_MessageCr ;Zend_Wildfire_ExceptionC&q OZend_Wildfire_Channel_HttpHeadersCp Zend_ViewCo -Zend_View_StreamCn AZend_View_Helper_UserAgentCm 5Zend_View_Helper_UrlCl AZend_View_Helper_TranslateCk =Zend_View_Helper_TinySrcCj AZend_View_Helper_ServerUrlC)i UZend_View_Helper_RenderToPlaceholderC!h EZend_View_Helper_PlaceholderC*g WZend_View_Helper_Placeholder_RegistryC4f kZend_View_Helper_Placeholder_Registry_ExceptionC+e YZend_View_Helper_Placeholder_ContainerC   W  hF]3a4	s@eE



j
A
				y	X	-yBX0Zn7	i8
i;}KrS1                 $ KZend_Wildfire_Channel_InterfaceC 3Zend_View_InterfaceC' QZend_View_Helper_Navigation_HelperC AZend_View_Helper_InterfaceC  ;Zend_Validate_InterfaceC+ YZend_Validate_Barcode_AdapterInterfaceC3~ iZend_Tool_Project_Profile_FileParser_InterfaceC:} wZend_Tool_Project_Context_System_TopLevelRestrictableC5| mZend_Tool_Project_Context_System_NotOverwritableC/{ aZend_Tool_Project_Context_System_InterfaceC(z SZend_Tool_Project_Context_InterfaceC+y YZend_Tool_Framework_Registry_InterfaceC2x gZend_Tool_Framework_Registry_EnabledInterfaceC-w ]Zend_Tool_Framework_Provider_PretendableC+v YZend_Tool_Framework_Provider_InterfaceC.u _Zend_Tool_Framework_Provider_InteractableC/t aZend_Tool_Framework_Provider_InitializableC;s yZend_Tool_Framework_Provider_DocblockManifestInterfaceC+r YZend_Tool_Framework_Metadata_InterfaceC.q _Zend_Tool_Framework_Metadata_AttributableC6p oZend_Tool_Framework_Manifest_ProviderManifestableC6o oZend_Tool_Framework_Manifest_MetadataManifestableC+n YZend_Tool_Framework_Manifest_InterfaceC+m YZend_Tool_Framework_Manifest_IndexableC4l kZend_Tool_Framework_Manifest_ActionManifestableC)k UZend_Tool_Framework_Loader_InterfaceC8j sZend_Tool_Framework_Client_Storage_AdapterInterfaceCDi 	Zend_Tool_Framework_Client_Response_ContentDecorator_InterfaceC;h yZend_Tool_Framework_Client_Interactive_OutputInterfaceC:g wZend_Tool_Framework_Client_Interactive_InputInterfaceC)f UZend_Tool_Framework_Action_InterfaceC(e SZend_Text_Table_Decorator_InterfaceCd /Zend_Tag_TaggableC&c OZend_Soap_Wsdl_Strategy_InterfaceC%b MZend_Session_Validator_InterfaceC'a QZend_Session_SaveHandler_InterfaceC$` KZend_Service_ShortUrl_ShortenerCI_ Zend_Service_DeveloperGarden_Response_SecurityTokenServer_InterfaceC^ 7Zend_Server_InterfaceC-] ]Zend_Serializer_Adapter_AdapterInterfaceC4\ kZend_Search_Lucene_Search_Highlighter_InterfaceC![ EZend_Search_Lucene_InterfaceC3Z iZend_Search_Lucene_Index_TermsStream_InterfaceC$Y KZend_Queue_Stomp_FrameInterfaceC0X cZend_Queue_Stomp_Client_ConnectionInterfaceC(W SZend_Queue_Adapter_AdapterInterfaceCV ?Zend_Pdf_Filter_InterfaceC&U OZend_Pdf_ElementFactory_InterfaceCT ?Zend_Pdf_Canvas_InterfaceC,S [Zend_Paginator_ScrollingStyle_InterfaceC$R KZend_Paginator_AdapterAggregateC%Q MZend_Paginator_Adapter_InterfaceC&P OZend_Oauth_Config_ConfigInterfaceC$O KZend_Memory_Container_InterfaceC1N eZend_Markup_Renderer_TokenConverterInterfaceC'M QZend_Markup_Parser_ParserInterfaceC)L UZend_Mail_Storage_Writable_InterfaceC'K QZend_Mail_Storage_Folder_InterfaceCJ =Zend_Mail_Part_InterfaceC I CZend_Mail_Message_InterfaceC!H EZend_Log_Formatter_InterfaceCG ?Zend_Log_Filter_InterfaceCF ?Zend_Log_FactoryInterfaceC'E QZend_Loader_PluginLoader_InterfaceC%D MZend_Loader_Autoloader_InterfaceC0C cZend_Ldap_Node_Schema_ObjectClass_InterfaceC2B gZend_Ldap_Node_Schema_AttributeType_InterfaceC3A iZend_InfoCard_Xml_Security_Transform_InterfaceC(@ SZend_InfoCard_Xml_KeyInfo_InterfaceC(? SZend_InfoCard_Xml_Element_InterfaceC*> WZend_InfoCard_Xml_Assertion_InterfaceC-= ]Zend_InfoCard_Cipher_Symmetric_InterfaceC7< qZend_InfoCard_Cipher_Symmetric_Aes256cbc_InterfaceC7; qZend_InfoCard_Cipher_Symmetric_Aes128cbc_InterfaceC+: YZend_InfoCard_Cipher_Pki_Rsa_InterfaceC'9 QZend_InfoCard_Cipher_Pki_InterfaceC$8 KZend_InfoCard_Adapter_InterfaceC 7 CZend_Http_UserAgent_StorageC)6 UZend_Http_UserAgent_Features_AdapterC5 AZend_Http_UserAgent_DeviceC$4 KZend_Http_Client_Adapter_StreamC'3 QZend_Http_Client_Adapter_InterfaceC2 AZend_Gdata_App_MediaSourceC.1 _Zend_Form_Decorator_Marker_File_InterfaceC"0 GZend_Form_Decorator_InterfaceC/ 7Zend_Filter_InterfaceC". GZend_Filter_Encrypt_InterfaceC   [  wHpD [3^;a-




e
4
				s	P	)]- t?xT1]6nE$iEuN$c&                                           ;_ yZend_Tool_Framework_Client_Interactive_OutputInterfaceD:^ wZend_Tool_Framework_Client_Interactive_InputInterfaceD)] UZend_Tool_Framework_Action_InterfaceD(\ SZend_Text_Table_Decorator_InterfaceD[ /Zend_Tag_TaggableD&Z OZend_Soap_Wsdl_Strategy_InterfaceD%Y MZend_Session_Validator_InterfaceD'X QZend_Session_SaveHandler_InterfaceD$W KZend_Service_ShortUrl_ShortenerDIV Zend_Service_DeveloperGarden_Response_SecurityTokenServer_InterfaceDU 7Zend_Server_InterfaceD-T ]Zend_Serializer_Adapter_AdapterInterfaceD4S kZend_Search_Lucene_Search_Highlighter_InterfaceD!R EZend_Search_Lucene_InterfaceD3Q iZend_Search_Lucene_Index_TermsStream_InterfaceD$P KZend_Queue_Stomp_FrameInterfaceD0O cZend_Queue_Stomp_Client_ConnectionInterfaceD(N SZend_Queue_Adapter_AdapterInterfaceDM ?Zend_Pdf_Filter_InterfaceD&L OZend_Pdf_ElementFactory_InterfaceDK ?Zend_Pdf_Canvas_InterfaceD,J [Zend_Paginator_ScrollingStyle_InterfaceD$I KZend_Paginator_AdapterAggregateD%H MZend_Paginator_Adapter_InterfaceD&G OZend_Oauth_Config_ConfigInterfaceD$F KZend_Memory_Container_InterfaceD1E eZend_Markup_Renderer_TokenConverterInterfaceD'D QZend_Markup_Parser_ParserInterfaceD)C UZend_Mail_Storage_Writable_InterfaceD'B QZend_Mail_Storage_Folder_InterfaceDA =Zend_Mail_Part_InterfaceD @ CZend_Mail_Message_InterfaceD!? EZend_Log_Formatter_InterfaceD> ?Zend_Log_Filter_InterfaceD= ?Zend_Log_FactoryInterfaceD'< QZend_Loader_PluginLoader_InterfaceD%; MZend_Loader_Autoloader_InterfaceD0: cZend_Ldap_Node_Schema_ObjectClass_InterfaceD29 gZend_Ldap_Node_Schema_AttributeType_InterfaceD38 iZend_InfoCard_Xml_Security_Transform_InterfaceD(7 SZend_InfoCard_Xml_KeyInfo_InterfaceD(6 SZend_InfoCard_Xml_Element_InterfaceD*5 WZend_InfoCard_Xml_Assertion_InterfaceD-4 ]Zend_InfoCard_Cipher_Symmetric_InterfaceD73 qZend_InfoCard_Cipher_Symmetric_Aes256cbc_InterfaceD72 qZend_InfoCard_Cipher_Symmetric_Aes128cbc_InterfaceD+1 YZend_InfoCard_Cipher_Pki_Rsa_InterfaceD'0 QZend_InfoCard_Cipher_Pki_InterfaceD$/ KZend_InfoCard_Adapter_InterfaceD . CZend_Http_UserAgent_StorageD)- UZend_Http_UserAgent_Features_AdapterD, AZend_Http_UserAgent_DeviceD$+ KZend_Http_Client_Adapter_StreamD'* QZend_Http_Client_Adapter_InterfaceD) AZend_Gdata_App_MediaSourceD.( _Zend_Form_Decorator_Marker_File_InterfaceD"' GZend_Form_Decorator_InterfaceD& 7Zend_Filter_InterfaceD"% GZend_Filter_Encrypt_InterfaceD+$ YZend_Filter_Compress_CompressInterfaceD0# cZend_Feed_Writer_Renderer_RendererInterfaceD1" eZend_Feed_Writer_Extension_RendererInterfaceD#! IZend_Feed_Reader_FeedInterfaceD$  KZend_Feed_Reader_EntryInterfaceD7 qZend_Feed_Pubsubhubbub_Model_SubscriptionInterfaceD- ]Zend_Feed_Pubsubhubbub_CallbackInterfaceD  CZend_Feed_Builder_InterfaceD  CZend_Db_Statement_InterfaceD$ KZend_Currency_CurrencyInterfaceD) UZend_Crypt_Math_BigInteger_InterfaceD+ YZend_Controller_Router_Route_InterfaceD% MZend_Controller_Router_InterfaceD) UZend_Controller_Dispatcher_InterfaceD% MZend_Controller_Action_InterfaceD& OZend_Cloud_StorageService_AdapterD$ KZend_Cloud_QueueService_AdapterD, [Zend_Cloud_DocumentService_QueryAdapterD' QZend_Cloud_DocumentService_AdapterD 5Zend_Captcha_AdapterD! EZend_Cache_Backend_InterfaceD) UZend_Cache_Backend_ExtendedInterfaceD  CZend_Auth_Storage_InterfaceD  CZend_Auth_Adapter_InterfaceD. _Zend_Auth_Adapter_Http_Resolver_InterfaceD' QZend_Application_Resource_ResourceD4
 kZend_Application_Bootstrap_ResourceBootstrapperD,	 [Zend_Application_Bootstrap_BootstrapperD ;Zend_Acl_Role_InterfaceD  CZend_Acl_Resource_InterfaceD ?Zend_Acl_Assert_InterfaceD# IZend_Wildfire_Plugin_InterfaceC   h  |V/{R(nM)iH,tP-




x
W
5
				w	T	0	
|Z+	hC!tL![9gM.`&|P!Q                      (6 SZend_Cloud_QueueService_Adapter_SqsD45 kZend_Cloud_QueueService_Adapter_AbstractAdapterD.4 _Zend_Cloud_OperationNotAvailableExceptionD3 5Zend_Cloud_ExceptionD%2 MZend_Cloud_DocumentService_QueryD'1 QZend_Cloud_DocumentService_FactoryD)0 UZend_Cloud_DocumentService_ExceptionD+/ YZend_Cloud_DocumentService_DocumentSetD(. SZend_Cloud_DocumentService_DocumentD4- kZend_Cloud_DocumentService_Adapter_WindowsAzureD:, wZend_Cloud_DocumentService_Adapter_WindowsAzure_QueryD0+ cZend_Cloud_DocumentService_Adapter_SimpleDbD6* oZend_Cloud_DocumentService_Adapter_SimpleDb_QueryD7) qZend_Cloud_DocumentService_Adapter_AbstractAdapterD( AZend_Cloud_AbstractFactoryD' /Zend_Captcha_WordD& 9Zend_Captcha_ReCaptchaD% 1Zend_Captcha_ImageD$ 3Zend_Captcha_FigletD# 9Zend_Captcha_ExceptionD" /Zend_Captcha_DumbD! /Zend_Captcha_BaseD  !Zend_CacheD 1Zend_Cache_ManagerD =Zend_Cache_Frontend_PageD AZend_Cache_Frontend_OutputD! EZend_Cache_Frontend_FunctionD =Zend_Cache_Frontend_FileD ?Zend_Cache_Frontend_ClassD  CZend_Cache_Frontend_CaptureD 5Zend_Cache_ExceptionD +Zend_Cache_CoreD 1Zend_Cache_BackendD" GZend_Cache_Backend_ZendServerD( SZend_Cache_Backend_ZendServer_ShMemD' QZend_Cache_Backend_ZendServer_DiskD$ KZend_Cache_Backend_ZendPlatformD ?Zend_Cache_Backend_XcacheD  CZend_Cache_Backend_WinCacheD! EZend_Cache_Backend_TwoLevelsD ;Zend_Cache_Backend_TestD ?Zend_Cache_Backend_StaticD ?Zend_Cache_Backend_SqliteD! EZend_Cache_Backend_MemcachedD$
 KZend_Cache_Backend_LibmemcachedD	 ;Zend_Cache_Backend_FileD! EZend_Cache_Backend_BlackHoleD 9Zend_Cache_Backend_ApcD %Zend_BarcodeD ?Zend_Barcode_Renderer_SvgD+ YZend_Barcode_Renderer_RendererAbstractD ?Zend_Barcode_Renderer_PdfD  CZend_Barcode_Renderer_ImageD$ KZend_Barcode_Renderer_ExceptionD  =Zend_Barcode_Object_UpceD =Zend_Barcode_Object_UpcaD"~ GZend_Barcode_Object_RoyalmailD } CZend_Barcode_Object_PostnetD| AZend_Barcode_Object_PlanetD'{ QZend_Barcode_Object_ObjectAbstractD!z EZend_Barcode_Object_LeitcodeDy ?Zend_Barcode_Object_Itf14D"x GZend_Barcode_Object_IdentcodeD"w GZend_Barcode_Object_ExceptionDv ?Zend_Barcode_Object_ErrorDu =Zend_Barcode_Object_Ean8Dt =Zend_Barcode_Object_Ean5Ds =Zend_Barcode_Object_Ean2Dr ?Zend_Barcode_Object_Ean13Dq AZend_Barcode_Object_Code39D*p WZend_Barcode_Object_Code25interleavedDo AZend_Barcode_Object_Code25D n CZend_Barcode_Object_Code128Dm 9Zend_Barcode_ExceptionDl Zend_AuthDk ?Zend_Auth_Storage_SessionD$j KZend_Auth_Storage_NonPersistentD i CZend_Auth_Storage_ExceptionDh -Zend_Auth_ResultDg 3Zend_Auth_ExceptionDf =Zend_Auth_Adapter_OpenIdDe 9Zend_Auth_Adapter_LdapDd AZend_Auth_Adapter_InfoCardDc 9Zend_Auth_Adapter_HttpD)b UZend_Auth_Adapter_Http_Resolver_FileD.a _Zend_Auth_Adapter_Http_Resolver_ExceptionD ` CZend_Auth_Adapter_ExceptionD_ =Zend_Auth_Adapter_DigestD^ ?Zend_Auth_Adapter_DbTableD] -Zend_ApplicationD#\ IZend_Application_Resource_ViewD([ SZend_Application_Resource_UserAgentD(Z SZend_Application_Resource_TranslateD&Y OZend_Application_Resource_SessionD%X MZend_Application_Resource_RouterD/W aZend_Application_Resource_ResourceAbstractD)V UZend_Application_Resource_NavigationD&U OZend_Application_Resource_MultidbD&T OZend_Application_Resource_ModulesD#S IZend_Application_Resource_MailD"R GZend_Application_Resource_LogD%Q MZend_Application_Resource_LocaleD%P MZend_Application_Resource_LayoutD.O _Zend_Application_Resource_FrontcontrollerD   ]  oG_(a=S+Y#




g
N
-
					l	T	;	'	[)vJ[(wJe9m@yK#zL          ( SZend_Controller_Router_Route_StaticD' QZend_Controller_Router_Route_RegexD( SZend_Controller_Router_Route_ModuleD* WZend_Controller_Router_Route_HostnameD' QZend_Controller_Router_Route_ChainD* WZend_Controller_Router_Route_AbstractD# IZend_Controller_Router_RewriteD% MZend_Controller_Router_ExceptionD$ KZend_Controller_Router_AbstractD*
 WZend_Controller_Response_HttpTestCaseD"	 GZend_Controller_Response_HttpD' QZend_Controller_Response_ExceptionD! EZend_Controller_Response_CliD& OZend_Controller_Response_AbstractD# IZend_Controller_Request_SimpleD) UZend_Controller_Request_HttpTestCaseD! EZend_Controller_Request_HttpD& OZend_Controller_Request_ExceptionD& OZend_Controller_Request_Apache404D%  MZend_Controller_Request_AbstractD& OZend_Controller_Plugin_PutHandlerD(~ SZend_Controller_Plugin_ErrorHandlerD"} GZend_Controller_Plugin_BrokerD'| QZend_Controller_Plugin_ActionStackD${ KZend_Controller_Plugin_AbstractDz 7Zend_Controller_FrontDy ?Zend_Controller_ExceptionD(x SZend_Controller_Dispatcher_StandardD)w UZend_Controller_Dispatcher_ExceptionD(v SZend_Controller_Dispatcher_AbstractDu 9Zend_Controller_ActionD(t SZend_Controller_Action_HelperBrokerD6s oZend_Controller_Action_HelperBroker_PriorityStackD/r aZend_Controller_Action_Helper_ViewRendererD&q OZend_Controller_Action_Helper_UrlD-p ]Zend_Controller_Action_Helper_RedirectorD'o QZend_Controller_Action_Helper_JsonD1n eZend_Controller_Action_Helper_FlashMessengerD0m cZend_Controller_Action_Helper_ContextSwitchD(l SZend_Controller_Action_Helper_CacheD<k {Zend_Controller_Action_Helper_AutoCompleteScriptaculousD3j iZend_Controller_Action_Helper_AutoCompleteDojoD8i sZend_Controller_Action_Helper_AutoComplete_AbstractD.h _Zend_Controller_Action_Helper_AjaxContextD.g _Zend_Controller_Action_Helper_ActionStackD+f YZend_Controller_Action_Helper_AbstractD%e MZend_Controller_Action_ExceptionDd 3Zend_Console_GetoptD"c GZend_Console_Getopt_ExceptionDb #Zend_ConfigDa -Zend_Config_YamlD` +Zend_Config_XmlD_ 1Zend_Config_WriterD^ ;Zend_Config_Writer_YamlD] 9Zend_Config_Writer_XmlD\ ;Zend_Config_Writer_JsonD[ 9Zend_Config_Writer_IniD$Z KZend_Config_Writer_FileAbstractDY =Zend_Config_Writer_ArrayDX -Zend_Config_JsonDW +Zend_Config_IniDV 7Zend_Config_ExceptionD$U KZend_CodeGenerator_Php_PropertyD1T eZend_CodeGenerator_Php_Property_DefaultValueD%S MZend_CodeGenerator_Php_ParameterD2R gZend_CodeGenerator_Php_Parameter_DefaultValueD"Q GZend_CodeGenerator_Php_MethodD,P [Zend_CodeGenerator_Php_Member_ContainerD+O YZend_CodeGenerator_Php_Member_AbstractD N CZend_CodeGenerator_Php_FileD%M MZend_CodeGenerator_Php_ExceptionD$L KZend_CodeGenerator_Php_DocblockD(K SZend_CodeGenerator_Php_Docblock_TagD/J aZend_CodeGenerator_Php_Docblock_Tag_ReturnD.I _Zend_CodeGenerator_Php_Docblock_Tag_ParamD0H cZend_CodeGenerator_Php_Docblock_Tag_LicenseD!G EZend_CodeGenerator_Php_ClassD F CZend_CodeGenerator_Php_BodyD$E KZend_CodeGenerator_Php_AbstractD!D EZend_CodeGenerator_ExceptionD C CZend_CodeGenerator_AbstractD&B OZend_Cloud_StorageService_FactoryD(A SZend_Cloud_StorageService_ExceptionD3@ iZend_Cloud_StorageService_Adapter_WindowsAzureD)? UZend_Cloud_StorageService_Adapter_S3D/> aZend_Cloud_StorageService_Adapter_NirvanixD1= eZend_Cloud_StorageService_Adapter_FileSystemD'< QZend_Cloud_QueueService_MessageSetD$; KZend_Cloud_QueueService_MessageD$: KZend_Cloud_QueueService_FactoryD&9 OZend_Cloud_QueueService_ExceptionD.8 _Zend_Cloud_QueueService_Adapter_ZendQueueD17 eZend_Cloud_QueueService_Adapter_WindowsAzureD   n  rP8u]<|cF*jK"vT2




k
V
3
					z	\	8	~\>xU1iSC0}Lf6n?p@^8 $ KZend_Dojo_Form_Element_TextareaD(  SZend_Dojo_Form_Element_SubmitButtonD" GZend_Dojo_Form_Element_SliderD*~ WZend_Dojo_Form_Element_SimpleTextareaD'} QZend_Dojo_Form_Element_RadioButtonD+| YZend_Dojo_Form_Element_PasswordTextBoxD){ UZend_Dojo_Form_Element_NumberTextBoxD)z UZend_Dojo_Form_Element_NumberSpinnerD,y [Zend_Dojo_Form_Element_HorizontalSliderD+x YZend_Dojo_Form_Element_FilteringSelectD"w GZend_Dojo_Form_Element_EditorD&v OZend_Dojo_Form_Element_DijitMultiD!u EZend_Dojo_Form_Element_DijitD't QZend_Dojo_Form_Element_DateTextBoxD+s YZend_Dojo_Form_Element_CurrencyTextBoxD$r KZend_Dojo_Form_Element_ComboBoxD$q KZend_Dojo_Form_Element_CheckBoxD"p GZend_Dojo_Form_Element_ButtonD o CZend_Dojo_Form_DisplayGroupD*n WZend_Dojo_Form_Decorator_TabContainerD,m [Zend_Dojo_Form_Decorator_StackContainerD,l [Zend_Dojo_Form_Decorator_SplitContainerD'k QZend_Dojo_Form_Decorator_DijitFormD*j WZend_Dojo_Form_Decorator_DijitElementD,i [Zend_Dojo_Form_Decorator_DijitContainerD)h UZend_Dojo_Form_Decorator_ContentPaneD-g ]Zend_Dojo_Form_Decorator_BorderContainerD+f YZend_Dojo_Form_Decorator_AccordionPaneD0e cZend_Dojo_Form_Decorator_AccordionContainerDd 3Zend_Dojo_ExceptionDc )Zend_Dojo_DataDb 5Zend_Dojo_BuildLayerDa !Zend_DebugD` Zend_DbD_ 'Zend_Db_TableD^ 5Zend_Db_Table_SelectD#] IZend_Db_Table_Select_ExceptionD\ 5Zend_Db_Table_RowsetD#[ IZend_Db_Table_Rowset_ExceptionD"Z GZend_Db_Table_Rowset_AbstractDY /Zend_Db_Table_RowD X CZend_Db_Table_Row_ExceptionDW AZend_Db_Table_Row_AbstractDV ;Zend_Db_Table_ExceptionDU =Zend_Db_Table_DefinitionDT 9Zend_Db_Table_AbstractDS /Zend_Db_StatementDR =Zend_Db_Statement_SqlsrvD'Q QZend_Db_Statement_Sqlsrv_ExceptionDP 7Zend_Db_Statement_PdoDO ?Zend_Db_Statement_Pdo_OciDN ?Zend_Db_Statement_Pdo_IbmDM =Zend_Db_Statement_OracleD'L QZend_Db_Statement_Oracle_ExceptionDK =Zend_Db_Statement_MysqliD'J QZend_Db_Statement_Mysqli_ExceptionD I CZend_Db_Statement_ExceptionDH 7Zend_Db_Statement_Db2D$G KZend_Db_Statement_Db2_ExceptionDF )Zend_Db_SelectDE =Zend_Db_Select_ExceptionDD -Zend_Db_ProfilerDC 9Zend_Db_Profiler_QueryDB =Zend_Db_Profiler_FirebugDA AZend_Db_Profiler_ExceptionD@ %Zend_Db_ExprD? /Zend_Db_ExceptionD> 9Zend_Db_Adapter_SqlsrvD%= MZend_Db_Adapter_Sqlsrv_ExceptionD< AZend_Db_Adapter_Pdo_SqliteD; ?Zend_Db_Adapter_Pdo_PgsqlD: ;Zend_Db_Adapter_Pdo_OciD9 ?Zend_Db_Adapter_Pdo_MysqlD8 ?Zend_Db_Adapter_Pdo_MssqlD7 ;Zend_Db_Adapter_Pdo_IbmD 6 CZend_Db_Adapter_Pdo_Ibm_IdsD 5 CZend_Db_Adapter_Pdo_Ibm_Db2D!4 EZend_Db_Adapter_Pdo_AbstractD3 9Zend_Db_Adapter_OracleD%2 MZend_Db_Adapter_Oracle_ExceptionD1 9Zend_Db_Adapter_MysqliD%0 MZend_Db_Adapter_Mysqli_ExceptionD/ ?Zend_Db_Adapter_ExceptionD. 3Zend_Db_Adapter_Db2D"- GZend_Db_Adapter_Db2_ExceptionD, =Zend_Db_Adapter_AbstractD+ Zend_DateD* 3Zend_Date_ExceptionD) 5Zend_Date_DateObjectD( -Zend_Date_CitiesD' 'Zend_CurrencyD& ;Zend_Currency_ExceptionD% !Zend_CryptD$ )Zend_Crypt_RsaD# 1Zend_Crypt_Rsa_KeyD" ?Zend_Crypt_Rsa_Key_PublicD! AZend_Crypt_Rsa_Key_PrivateD  =Zend_Crypt_Rsa_ExceptionD +Zend_Crypt_MathD ?Zend_Crypt_Math_ExceptionD AZend_Crypt_Math_BigIntegerD# IZend_Crypt_Math_BigInteger_GmpD) UZend_Crypt_Math_BigInteger_ExceptionD& OZend_Crypt_Math_BigInteger_BcmathD +Zend_Crypt_HmacD ?Zend_Crypt_Hmac_ExceptionD 5Zend_Crypt_ExceptionD =Zend_Crypt_DiffieHellmanD' QZend_Crypt_DiffieHellman_ExceptionD! EZend_Controller_Router_RouteD   a  }O0mH!xN*Z7X+



V
/
					p	U	4	rJ)O&l9a=tC
k:
zFpJ)                 b =Zend_Feed_Writer_DeletedDa 'Zend_Feed_RssD` -Zend_Feed_ReaderD_ =Zend_Feed_Reader_FeedSetD"^ GZend_Feed_Reader_FeedAbstractD] ?Zend_Feed_Reader_Feed_RssD\ AZend_Feed_Reader_Feed_AtomD&[ OZend_Feed_Reader_Feed_Atom_SourceD3Z iZend_Feed_Reader_Extension_WellFormedWeb_EntryD,Y [Zend_Feed_Reader_Extension_Thread_EntryD0X cZend_Feed_Reader_Extension_Syndication_FeedD+W YZend_Feed_Reader_Extension_Slash_EntryD,V [Zend_Feed_Reader_Extension_Podcast_FeedD-U ]Zend_Feed_Reader_Extension_Podcast_EntryD,T [Zend_Feed_Reader_Extension_FeedAbstractD-S ]Zend_Feed_Reader_Extension_EntryAbstractD/R aZend_Feed_Reader_Extension_DublinCore_FeedD0Q cZend_Feed_Reader_Extension_DublinCore_EntryD4P kZend_Feed_Reader_Extension_CreativeCommons_FeedD5O mZend_Feed_Reader_Extension_CreativeCommons_EntryD-N ]Zend_Feed_Reader_Extension_Content_EntryD)M UZend_Feed_Reader_Extension_Atom_FeedD*L WZend_Feed_Reader_Extension_Atom_EntryD#K IZend_Feed_Reader_EntryAbstractDJ AZend_Feed_Reader_Entry_RssD I CZend_Feed_Reader_Entry_AtomD H CZend_Feed_Reader_CollectionD3G iZend_Feed_Reader_Collection_CollectionAbstractD)F UZend_Feed_Reader_Collection_CategoryD'E QZend_Feed_Reader_Collection_AuthorDD 9Zend_Feed_PubsubhubbubD&C OZend_Feed_Pubsubhubbub_SubscriberD/B aZend_Feed_Pubsubhubbub_Subscriber_CallbackD%A MZend_Feed_Pubsubhubbub_PublisherD.@ _Zend_Feed_Pubsubhubbub_Model_SubscriptionD/? aZend_Feed_Pubsubhubbub_Model_ModelAbstractD(> SZend_Feed_Pubsubhubbub_HttpResponseD%= MZend_Feed_Pubsubhubbub_ExceptionD,< [Zend_Feed_Pubsubhubbub_CallbackAbstractD; 3Zend_Feed_ExceptionD: 3Zend_Feed_Entry_RssD9 5Zend_Feed_Entry_AtomD8 =Zend_Feed_Entry_AbstractD7 /Zend_Feed_ElementD6 /Zend_Feed_BuilderD5 =Zend_Feed_Builder_HeaderD$4 KZend_Feed_Builder_Header_ItunesD 3 CZend_Feed_Builder_ExceptionD2 ;Zend_Feed_Builder_EntryD1 )Zend_Feed_AtomD0 1Zend_Feed_AbstractD/ )Zend_ExceptionD. )Zend_Dom_QueryD- 7Zend_Dom_Query_ResultD, =Zend_Dom_Query_Css2XpathD+ 1Zend_Dom_ExceptionD* Zend_DojoD)) UZend_Dojo_View_Helper_VerticalSliderD,( [Zend_Dojo_View_Helper_ValidationTextBoxD&' OZend_Dojo_View_Helper_TimeTextBoxD"& GZend_Dojo_View_Helper_TextBoxD#% IZend_Dojo_View_Helper_TextareaD'$ QZend_Dojo_View_Helper_TabContainerD'# QZend_Dojo_View_Helper_SubmitButtonD)" UZend_Dojo_View_Helper_StackContainerD)! UZend_Dojo_View_Helper_SplitContainerD!  EZend_Dojo_View_Helper_SliderD) UZend_Dojo_View_Helper_SimpleTextareaD& OZend_Dojo_View_Helper_RadioButtonD* WZend_Dojo_View_Helper_PasswordTextBoxD( SZend_Dojo_View_Helper_NumberTextBoxD( SZend_Dojo_View_Helper_NumberSpinnerD+ YZend_Dojo_View_Helper_HorizontalSliderD AZend_Dojo_View_Helper_FormD* WZend_Dojo_View_Helper_FilteringSelectD! EZend_Dojo_View_Helper_EditorD AZend_Dojo_View_Helper_DojoD) UZend_Dojo_View_Helper_Dojo_ContainerD) UZend_Dojo_View_Helper_DijitContainerD  CZend_Dojo_View_Helper_DijitD& OZend_Dojo_View_Helper_DateTextBoxD& OZend_Dojo_View_Helper_CustomDijitD* WZend_Dojo_View_Helper_CurrencyTextBoxD& OZend_Dojo_View_Helper_ContentPaneD# IZend_Dojo_View_Helper_ComboBoxD# IZend_Dojo_View_Helper_CheckBoxD! EZend_Dojo_View_Helper_ButtonD* WZend_Dojo_View_Helper_BorderContainerD(
 SZend_Dojo_View_Helper_AccordionPaneD-	 ]Zend_Dojo_View_Helper_AccordionContainerD =Zend_Dojo_View_ExceptionD )Zend_Dojo_FormD 9Zend_Dojo_Form_SubFormD* WZend_Dojo_Form_Element_VerticalSliderD- ]Zend_Dojo_Form_Element_ValidationTextBoxD' QZend_Dojo_Form_Element_TimeTextBoxD# IZend_Dojo_Form_Element_TextBoxD   d  q7_&F[/l9 



u
Z
@
&
						a	@	jR/lL)dK+kBi=_0]5\5                                F ?Zend_Form_Decorator_ImageD E CZend_Form_Decorator_HtmlTagD#D IZend_Form_Decorator_FormErrorsD%C MZend_Form_Decorator_FormElementsDB =Zend_Form_Decorator_FormDA =Zend_Form_Decorator_FileD!@ EZend_Form_Decorator_FieldsetD"? GZend_Form_Decorator_ExceptionD> AZend_Form_Decorator_ErrorsD$= KZend_Form_Decorator_DtDdWrapperD$< KZend_Form_Decorator_DescriptionD ; CZend_Form_Decorator_CaptchaD%: MZend_Form_Decorator_Captcha_WordD!9 EZend_Form_Decorator_CallbackD!8 EZend_Form_Decorator_AbstractD7 #Zend_FilterD+6 YZend_Filter_Word_UnderscoreToSeparatorD&5 OZend_Filter_Word_UnderscoreToDashD+4 YZend_Filter_Word_UnderscoreToCamelCaseD*3 WZend_Filter_Word_SeparatorToSeparatorD%2 MZend_Filter_Word_SeparatorToDashD*1 WZend_Filter_Word_SeparatorToCamelCaseD(0 SZend_Filter_Word_Separator_AbstractD&/ OZend_Filter_Word_DashToUnderscoreD%. MZend_Filter_Word_DashToSeparatorD%- MZend_Filter_Word_DashToCamelCaseD+, YZend_Filter_Word_CamelCaseToUnderscoreD*+ WZend_Filter_Word_CamelCaseToSeparatorD%* MZend_Filter_Word_CamelCaseToDashD) 7Zend_Filter_StripTagsD( ?Zend_Filter_StripNewlinesD' 9Zend_Filter_StringTrimD& ?Zend_Filter_StringToUpperD% ?Zend_Filter_StringToLowerD$ 5Zend_Filter_RealPathD# ;Zend_Filter_PregReplaceD" -Zend_Filter_NullD&! OZend_Filter_NormalizedToLocalizedD&  OZend_Filter_LocalizedToNormalizedD +Zend_Filter_IntD /Zend_Filter_InputD 7Zend_Filter_InflectorD =Zend_Filter_HtmlEntitiesD AZend_Filter_File_UpperCaseD ;Zend_Filter_File_RenameD AZend_Filter_File_LowerCaseD =Zend_Filter_File_EncryptD =Zend_Filter_File_DecryptD 7Zend_Filter_ExceptionD 3Zend_Filter_EncryptD  CZend_Filter_Encrypt_OpensslD AZend_Filter_Encrypt_McryptD +Zend_Filter_DirD 1Zend_Filter_DigitsD 3Zend_Filter_DecryptD 9Zend_Filter_DecompressD 5Zend_Filter_CompressD =Zend_Filter_Compress_ZipD =Zend_Filter_Compress_TarD =Zend_Filter_Compress_RarD
 =Zend_Filter_Compress_LzfD	 ;Zend_Filter_Compress_GzD* WZend_Filter_Compress_CompressAbstractD =Zend_Filter_Compress_Bz2D 5Zend_Filter_CallbackD 3Zend_Filter_BooleanD 5Zend_Filter_BaseNameD /Zend_Filter_AlphaD /Zend_Filter_AlnumD 1Zend_File_TransferD!  EZend_File_Transfer_ExceptionD$ KZend_File_Transfer_Adapter_HttpD(~ SZend_File_Transfer_Adapter_AbstractD} Zend_FeedD| -Zend_Feed_WriterD{ ;Zend_Feed_Writer_SourceD/z aZend_Feed_Writer_Renderer_RendererAbstractD'y QZend_Feed_Writer_Renderer_Feed_RssD(x SZend_Feed_Writer_Renderer_Feed_AtomD/w aZend_Feed_Writer_Renderer_Feed_Atom_SourceD5v mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstractD(u SZend_Feed_Writer_Renderer_Entry_RssD)t UZend_Feed_Writer_Renderer_Entry_AtomD1s eZend_Feed_Writer_Renderer_Entry_Atom_DeletedDr 7Zend_Feed_Writer_FeedD'q QZend_Feed_Writer_Feed_FeedAbstractD<p {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_EntryD8o sZend_Feed_Writer_Extension_Threading_Renderer_EntryD4n kZend_Feed_Writer_Extension_Slash_Renderer_EntryD0m cZend_Feed_Writer_Extension_RendererAbstractD4l kZend_Feed_Writer_Extension_ITunes_Renderer_FeedD5k mZend_Feed_Writer_Extension_ITunes_Renderer_EntryD+j YZend_Feed_Writer_Extension_ITunes_FeedD,i [Zend_Feed_Writer_Extension_ITunes_EntryD8h sZend_Feed_Writer_Extension_DublinCore_Renderer_FeedD9g uZend_Feed_Writer_Extension_DublinCore_Renderer_EntryD6f oZend_Feed_Writer_Extension_Content_Renderer_EntryD2e gZend_Feed_Writer_Extension_Atom_Renderer_FeedD6d oZend_Feed_Writer_Exception_InvalidMethodExceptionDc 9Zend_Feed_Writer_EntryD   e  g@! xY8gG&mSA{^=



l
E
				|	X	2	kCzU4tQw\3{Je@j8V                         ++ YZend_Gdata_Calendar_Extension_TimezoneD9* uZend_Gdata_Calendar_Extension_SendEventNotificationsD+) YZend_Gdata_Calendar_Extension_SelectedD+( YZend_Gdata_Calendar_Extension_QuickAddD'' QZend_Gdata_Calendar_Extension_LinkD)& UZend_Gdata_Calendar_Extension_HiddenD(% SZend_Gdata_Calendar_Extension_ColorD.$ _Zend_Gdata_Calendar_Extension_AccessLevelD## IZend_Gdata_Calendar_EventQueryD"" GZend_Gdata_Calendar_EventFeedD#! IZend_Gdata_Calendar_EventEntryD  -Zend_Gdata_BooksD! EZend_Gdata_Books_VolumeQueryD  CZend_Gdata_Books_VolumeFeedD! EZend_Gdata_Books_VolumeEntryD+ YZend_Gdata_Books_Extension_ViewabilityD- ]Zend_Gdata_Books_Extension_ThumbnailLinkD& OZend_Gdata_Books_Extension_ReviewD+ YZend_Gdata_Books_Extension_PreviewLinkD( SZend_Gdata_Books_Extension_InfoLinkD- ]Zend_Gdata_Books_Extension_EmbeddabilityD) UZend_Gdata_Books_Extension_BooksLinkD- ]Zend_Gdata_Books_Extension_BooksCategoryD. _Zend_Gdata_Books_Extension_AnnotationLinkD$ KZend_Gdata_Books_CollectionFeedD% MZend_Gdata_Books_CollectionEntryD 1Zend_Gdata_AuthSubD )Zend_Gdata_AppD$ KZend_Gdata_App_VersionExceptionD 3Zend_Gdata_App_UtilD# IZend_Gdata_App_MediaFileSourceD ?Zend_Gdata_App_MediaEntryD2 gZend_Gdata_App_LoggingHttpClientAdapterSocketD
 AZend_Gdata_App_IOExceptionD,	 [Zend_Gdata_App_InvalidArgumentExceptionD! EZend_Gdata_App_HttpExceptionD$ KZend_Gdata_App_FeedSourceParentD# IZend_Gdata_App_FeedEntryParentD 3Zend_Gdata_App_FeedD =Zend_Gdata_App_ExtensionD! EZend_Gdata_App_Extension_UriD% MZend_Gdata_App_Extension_UpdatedD# IZend_Gdata_App_Extension_TitleD"  GZend_Gdata_App_Extension_TextD% MZend_Gdata_App_Extension_SummaryD&~ OZend_Gdata_App_Extension_SubtitleD$} KZend_Gdata_App_Extension_SourceD$| KZend_Gdata_App_Extension_RightsD'{ QZend_Gdata_App_Extension_PublishedD$z KZend_Gdata_App_Extension_PersonD"y GZend_Gdata_App_Extension_NameD"x GZend_Gdata_App_Extension_LogoD"w GZend_Gdata_App_Extension_LinkD v CZend_Gdata_App_Extension_IdD"u GZend_Gdata_App_Extension_IconD't QZend_Gdata_App_Extension_GeneratorD#s IZend_Gdata_App_Extension_EmailD%r MZend_Gdata_App_Extension_ElementD$q KZend_Gdata_App_Extension_EditedD#p IZend_Gdata_App_Extension_DraftD%o MZend_Gdata_App_Extension_ControlD)n UZend_Gdata_App_Extension_ContributorD%m MZend_Gdata_App_Extension_ContentD&l OZend_Gdata_App_Extension_CategoryD$k KZend_Gdata_App_Extension_AuthorDj =Zend_Gdata_App_ExceptionDi 5Zend_Gdata_App_EntryD,h [Zend_Gdata_App_CaptchaRequiredExceptionD#g IZend_Gdata_App_BaseMediaSourceDf 3Zend_Gdata_App_BaseD*e WZend_Gdata_App_BadMethodCallExceptionD!d EZend_Gdata_App_AuthExceptionDc Zend_FormDb /Zend_Form_SubFormDa 3Zend_Form_ExceptionD` /Zend_Form_ElementD_ ;Zend_Form_Element_XhtmlD^ AZend_Form_Element_TextareaD] 9Zend_Form_Element_TextD\ =Zend_Form_Element_SubmitD[ =Zend_Form_Element_SelectDZ ;Zend_Form_Element_ResetDY ;Zend_Form_Element_RadioDX AZend_Form_Element_PasswordD"W GZend_Form_Element_MultiselectD$V KZend_Form_Element_MultiCheckboxDU ;Zend_Form_Element_MultiDT ;Zend_Form_Element_ImageDS =Zend_Form_Element_HiddenDR 9Zend_Form_Element_HashDQ 9Zend_Form_Element_FileD P CZend_Form_Element_ExceptionDO AZend_Form_Element_CheckboxDN ?Zend_Form_Element_CaptchaDM =Zend_Form_Element_ButtonDL 9Zend_Form_DisplayGroupD#K IZend_Form_Decorator_ViewScriptD#J IZend_Form_Decorator_ViewHelperD I CZend_Form_Decorator_TooltipD(H SZend_Form_Decorator_PrepareElementsDG ?Zend_Form_Decorator_LabelD   d  hIc/ j;]2
^7




`
6
				l	8	[*mL/o?qE`<\8nO yS.     5Zend_Gdata_Geo_EntryD -Zend_Gdata_GbaseD" GZend_Gdata_Gbase_SnippetQueryD! EZend_Gdata_Gbase_SnippetFeedD" GZend_Gdata_Gbase_SnippetEntryD
 9Zend_Gdata_Gbase_QueryD	 AZend_Gdata_Gbase_ItemQueryD ?Zend_Gdata_Gbase_ItemFeedD AZend_Gdata_Gbase_ItemEntryD 7Zend_Gdata_Gbase_FeedD- ]Zend_Gdata_Gbase_Extension_BaseAttributeD 9Zend_Gdata_Gbase_EntryD -Zend_Gdata_GappsD AZend_Gdata_Gapps_UserQueryD ?Zend_Gdata_Gapps_UserFeedD  AZend_Gdata_Gapps_UserEntryD& OZend_Gdata_Gapps_ServiceExceptionD~ 9Zend_Gdata_Gapps_QueryD } CZend_Gdata_Gapps_OwnerQueryD| AZend_Gdata_Gapps_OwnerFeedD { CZend_Gdata_Gapps_OwnerEntryD#z IZend_Gdata_Gapps_NicknameQueryD"y GZend_Gdata_Gapps_NicknameFeedD#x IZend_Gdata_Gapps_NicknameEntryD!w EZend_Gdata_Gapps_MemberQueryD v CZend_Gdata_Gapps_MemberFeedD!u EZend_Gdata_Gapps_MemberEntryD t CZend_Gdata_Gapps_GroupQueryDs AZend_Gdata_Gapps_GroupFeedD r CZend_Gdata_Gapps_GroupEntryD%q MZend_Gdata_Gapps_Extension_QuotaD(p SZend_Gdata_Gapps_Extension_PropertyD(o SZend_Gdata_Gapps_Extension_NicknameD$n KZend_Gdata_Gapps_Extension_NameD%m MZend_Gdata_Gapps_Extension_LoginD)l UZend_Gdata_Gapps_Extension_EmailListDk 9Zend_Gdata_Gapps_ErrorD-j ]Zend_Gdata_Gapps_EmailListRecipientQueryD,i [Zend_Gdata_Gapps_EmailListRecipientFeedD-h ]Zend_Gdata_Gapps_EmailListRecipientEntryD$g KZend_Gdata_Gapps_EmailListQueryD#f IZend_Gdata_Gapps_EmailListFeedD$e KZend_Gdata_Gapps_EmailListEntryDd +Zend_Gdata_FeedDc 5Zend_Gdata_ExtensionDb =Zend_Gdata_Extension_WhoDa AZend_Gdata_Extension_WhereD` ?Zend_Gdata_Extension_WhenD$_ KZend_Gdata_Extension_VisibilityD&^ OZend_Gdata_Extension_TransparencyD"] GZend_Gdata_Extension_ReminderD-\ ]Zend_Gdata_Extension_RecurrenceExceptionD$[ KZend_Gdata_Extension_RecurrenceD Z CZend_Gdata_Extension_RatingD'Y QZend_Gdata_Extension_OriginalEventD0X cZend_Gdata_Extension_OpenSearchTotalResultsD.W _Zend_Gdata_Extension_OpenSearchStartIndexD0V cZend_Gdata_Extension_OpenSearchItemsPerPageD"U GZend_Gdata_Extension_FeedLinkD*T WZend_Gdata_Extension_ExtendedPropertyD%S MZend_Gdata_Extension_EventStatusD#R IZend_Gdata_Extension_EntryLinkD"Q GZend_Gdata_Extension_CommentsD&P OZend_Gdata_Extension_AttendeeTypeD(O SZend_Gdata_Extension_AttendeeStatusDN +Zend_Gdata_ExifDM 5Zend_Gdata_Exif_FeedD#L IZend_Gdata_Exif_Extension_TimeD#K IZend_Gdata_Exif_Extension_TagsD$J KZend_Gdata_Exif_Extension_ModelD#I IZend_Gdata_Exif_Extension_MakeD"H GZend_Gdata_Exif_Extension_IsoD,G [Zend_Gdata_Exif_Extension_ImageUniqueIdD$F KZend_Gdata_Exif_Extension_FStopD*E WZend_Gdata_Exif_Extension_FocalLengthD$D KZend_Gdata_Exif_Extension_FlashD'C QZend_Gdata_Exif_Extension_ExposureD'B QZend_Gdata_Exif_Extension_DistanceDA 7Zend_Gdata_Exif_EntryD@ -Zend_Gdata_EntryD? 7Zend_Gdata_DublinCoreD*> WZend_Gdata_DublinCore_Extension_TitleD,= [Zend_Gdata_DublinCore_Extension_SubjectD+< YZend_Gdata_DublinCore_Extension_RightsD.; _Zend_Gdata_DublinCore_Extension_PublisherD-: ]Zend_Gdata_DublinCore_Extension_LanguageD/9 aZend_Gdata_DublinCore_Extension_IdentifierD+8 YZend_Gdata_DublinCore_Extension_FormatD07 cZend_Gdata_DublinCore_Extension_DescriptionD)6 UZend_Gdata_DublinCore_Extension_DateD,5 [Zend_Gdata_DublinCore_Extension_CreatorD4 +Zend_Gdata_DocsD3 7Zend_Gdata_Docs_QueryD%2 MZend_Gdata_Docs_DocumentListFeedD&1 OZend_Gdata_Docs_DocumentListEntryD0 9Zend_Gdata_ClientLoginD/ 3Zend_Gdata_CalendarD!. EZend_Gdata_Calendar_ListFeedD"- GZend_Gdata_Calendar_ListEntryD-, ]Zend_Gdata_Calendar_Extension_WebContentD   ]  eN&dJ^.k>{N




r
V
1
				j	<	}R+rDT'yM"gC vLX.zK                    %l MZend_Gdata_YouTube_ActivityEntryDk ;Zend_Gdata_SpreadsheetsD*j WZend_Gdata_Spreadsheets_WorksheetFeedD+i YZend_Gdata_Spreadsheets_WorksheetEntryD,h [Zend_Gdata_Spreadsheets_SpreadsheetFeedD-g ]Zend_Gdata_Spreadsheets_SpreadsheetEntryD&f OZend_Gdata_Spreadsheets_ListQueryD%e MZend_Gdata_Spreadsheets_ListFeedD&d OZend_Gdata_Spreadsheets_ListEntryD/c aZend_Gdata_Spreadsheets_Extension_RowCountD-b ]Zend_Gdata_Spreadsheets_Extension_CustomD/a aZend_Gdata_Spreadsheets_Extension_ColCountD+` YZend_Gdata_Spreadsheets_Extension_CellD*_ WZend_Gdata_Spreadsheets_DocumentQueryD&^ OZend_Gdata_Spreadsheets_CellQueryD%] MZend_Gdata_Spreadsheets_CellFeedD&\ OZend_Gdata_Spreadsheets_CellEntryD[ -Zend_Gdata_QueryDZ /Zend_Gdata_PhotosD Y CZend_Gdata_Photos_UserQueryDX AZend_Gdata_Photos_UserFeedD W CZend_Gdata_Photos_UserEntryDV AZend_Gdata_Photos_TagEntryD!U EZend_Gdata_Photos_PhotoQueryD T CZend_Gdata_Photos_PhotoFeedD!S EZend_Gdata_Photos_PhotoEntryD&R OZend_Gdata_Photos_Extension_WidthD'Q QZend_Gdata_Photos_Extension_WeightD(P SZend_Gdata_Photos_Extension_VersionD%O MZend_Gdata_Photos_Extension_UserD*N WZend_Gdata_Photos_Extension_TimestampD*M WZend_Gdata_Photos_Extension_ThumbnailD%L MZend_Gdata_Photos_Extension_SizeD)K UZend_Gdata_Photos_Extension_RotationD+J YZend_Gdata_Photos_Extension_QuotaLimitD-I ]Zend_Gdata_Photos_Extension_QuotaCurrentD)H UZend_Gdata_Photos_Extension_PositionD(G SZend_Gdata_Photos_Extension_PhotoIdD3F iZend_Gdata_Photos_Extension_NumPhotosRemainingD*E WZend_Gdata_Photos_Extension_NumPhotosD)D UZend_Gdata_Photos_Extension_NicknameD%C MZend_Gdata_Photos_Extension_NameD2B gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumD)A UZend_Gdata_Photos_Extension_LocationD#@ IZend_Gdata_Photos_Extension_IdD'? QZend_Gdata_Photos_Extension_HeightD2> gZend_Gdata_Photos_Extension_CommentingEnabledD-= ]Zend_Gdata_Photos_Extension_CommentCountD'< QZend_Gdata_Photos_Extension_ClientD); UZend_Gdata_Photos_Extension_ChecksumD*: WZend_Gdata_Photos_Extension_BytesUsedD(9 SZend_Gdata_Photos_Extension_AlbumIdD'8 QZend_Gdata_Photos_Extension_AccessD#7 IZend_Gdata_Photos_CommentEntryD!6 EZend_Gdata_Photos_AlbumQueryD 5 CZend_Gdata_Photos_AlbumFeedD!4 EZend_Gdata_Photos_AlbumEntryD3 3Zend_Gdata_MimeFileD2 ?Zend_Gdata_MimeBodyStringD1 AZend_Gdata_MediaMimeStreamD0 -Zend_Gdata_MediaD/ 7Zend_Gdata_Media_FeedD*. WZend_Gdata_Media_Extension_MediaTitleD.- _Zend_Gdata_Media_Extension_MediaThumbnailD), UZend_Gdata_Media_Extension_MediaTextD0+ cZend_Gdata_Media_Extension_MediaRestrictionD+* YZend_Gdata_Media_Extension_MediaRatingD+) YZend_Gdata_Media_Extension_MediaPlayerD-( ]Zend_Gdata_Media_Extension_MediaKeywordsD)' UZend_Gdata_Media_Extension_MediaHashD*& WZend_Gdata_Media_Extension_MediaGroupD0% cZend_Gdata_Media_Extension_MediaDescriptionD+$ YZend_Gdata_Media_Extension_MediaCreditD.# _Zend_Gdata_Media_Extension_MediaCopyrightD," [Zend_Gdata_Media_Extension_MediaContentD-! ]Zend_Gdata_Media_Extension_MediaCategoryD  9Zend_Gdata_Media_EntryD AZend_Gdata_Kind_EventEntryD 7Zend_Gdata_HttpClientD* WZend_Gdata_HttpAdapterStreamingSocketD) UZend_Gdata_HttpAdapterStreamingProxyD /Zend_Gdata_HealthD ;Zend_Gdata_Health_QueryD& OZend_Gdata_Health_ProfileListFeedD' QZend_Gdata_Health_ProfileListEntryD" GZend_Gdata_Health_ProfileFeedD# IZend_Gdata_Health_ProfileEntryD$ KZend_Gdata_Health_Extension_CcrD )Zend_Gdata_GeoD 3Zend_Gdata_Geo_FeedD$ KZend_Gdata_Geo_Extension_GmlPosD& OZend_Gdata_Geo_Extension_GmlPointD) UZend_Gdata_Geo_Extension_GeoRssWhereD   ^  a:_0vIc2zM



_
.
			s	G	g9nBb<rK#pN3|Z4_>T(   J 3Zend_Http_UserAgentD"I GZend_Http_UserAgent_ValidatorDH =Zend_Http_UserAgent_TextD(G SZend_Http_UserAgent_Storage_SessionD.F _Zend_Http_UserAgent_Storage_NonPersistentD*E WZend_Http_UserAgent_Storage_ExceptionDD =Zend_Http_UserAgent_SpamDC ?Zend_Http_UserAgent_ProbeD B CZend_Http_UserAgent_OfflineDA AZend_Http_UserAgent_MobileD@ =Zend_Http_UserAgent_FeedD+? YZend_Http_UserAgent_Features_ExceptionD2> gZend_Http_UserAgent_Features_Adapter_WurflApiD3= iZend_Http_UserAgent_Features_Adapter_TeraWurflD5< mZend_Http_UserAgent_Features_Adapter_DeviceAtlasD"; GZend_Http_UserAgent_ExceptionD: ?Zend_Http_UserAgent_EmailD 9 CZend_Http_UserAgent_DesktopD 8 CZend_Http_UserAgent_ConsoleD 7 CZend_Http_UserAgent_CheckerD6 ;Zend_Http_UserAgent_BotD'5 QZend_Http_UserAgent_AbstractDeviceD4 1Zend_Http_ResponseD3 ?Zend_Http_Response_StreamD2 3Zend_Http_ExceptionD1 3Zend_Http_CookieJarD0 -Zend_Http_CookieD/ -Zend_Http_ClientD. AZend_Http_Client_ExceptionD"- GZend_Http_Client_Adapter_TestD$, KZend_Http_Client_Adapter_SocketD#+ IZend_Http_Client_Adapter_ProxyD'* QZend_Http_Client_Adapter_ExceptionD") GZend_Http_Client_Adapter_CurlD( !Zend_GdataD' 1Zend_Gdata_YouTubeD"& GZend_Gdata_YouTube_VideoQueryD!% EZend_Gdata_YouTube_VideoFeedD"$ GZend_Gdata_YouTube_VideoEntryD(# SZend_Gdata_YouTube_UserProfileEntryD(" SZend_Gdata_YouTube_SubscriptionFeedD)! UZend_Gdata_YouTube_SubscriptionEntryD)  UZend_Gdata_YouTube_PlaylistVideoFeedD* WZend_Gdata_YouTube_PlaylistVideoEntryD( SZend_Gdata_YouTube_PlaylistListFeedD) UZend_Gdata_YouTube_PlaylistListEntryD" GZend_Gdata_YouTube_MediaEntryD! EZend_Gdata_YouTube_InboxFeedD" GZend_Gdata_YouTube_InboxEntryD) UZend_Gdata_YouTube_Extension_VideoIdD* WZend_Gdata_YouTube_Extension_UsernameD* WZend_Gdata_YouTube_Extension_UploadedD' QZend_Gdata_YouTube_Extension_TokenD( SZend_Gdata_YouTube_Extension_StatusD, [Zend_Gdata_YouTube_Extension_StatisticsD' QZend_Gdata_YouTube_Extension_StateD( SZend_Gdata_YouTube_Extension_SchoolD- ]Zend_Gdata_YouTube_Extension_ReleaseDateD. _Zend_Gdata_YouTube_Extension_RelationshipD* WZend_Gdata_YouTube_Extension_RecordedD& OZend_Gdata_YouTube_Extension_RacyD- ]Zend_Gdata_YouTube_Extension_QueryStringD) UZend_Gdata_YouTube_Extension_PrivateD* WZend_Gdata_YouTube_Extension_PositionD/
 aZend_Gdata_YouTube_Extension_PlaylistTitleD,	 [Zend_Gdata_YouTube_Extension_PlaylistIdD, [Zend_Gdata_YouTube_Extension_OccupationD) UZend_Gdata_YouTube_Extension_NoEmbedD' QZend_Gdata_YouTube_Extension_MusicD( SZend_Gdata_YouTube_Extension_MoviesD- ]Zend_Gdata_YouTube_Extension_MediaRatingD, [Zend_Gdata_YouTube_Extension_MediaGroupD- ]Zend_Gdata_YouTube_Extension_MediaCreditD. _Zend_Gdata_YouTube_Extension_MediaContentD*  WZend_Gdata_YouTube_Extension_LocationD& OZend_Gdata_YouTube_Extension_LinkD*~ WZend_Gdata_YouTube_Extension_LastNameD*} WZend_Gdata_YouTube_Extension_HometownD)| UZend_Gdata_YouTube_Extension_HobbiesD({ SZend_Gdata_YouTube_Extension_GenderD+z YZend_Gdata_YouTube_Extension_FirstNameD*y WZend_Gdata_YouTube_Extension_DurationD-x ]Zend_Gdata_YouTube_Extension_DescriptionD+w YZend_Gdata_YouTube_Extension_CountHintD)v UZend_Gdata_YouTube_Extension_ControlD)u UZend_Gdata_YouTube_Extension_CompanyD't QZend_Gdata_YouTube_Extension_BooksD%s MZend_Gdata_YouTube_Extension_AgeD)r UZend_Gdata_YouTube_Extension_AboutMeD#q IZend_Gdata_YouTube_ContactFeedD$p KZend_Gdata_YouTube_ContactEntryD#o IZend_Gdata_YouTube_CommentFeedD$n KZend_Gdata_YouTube_CommentEntryD$m KZend_Gdata_YouTube_ActivityFeedD   k  Y,eH_0h>x@




u
Y
B
#
				s	Q	,	eQ5wU8}dE%Z;y?vW9}b?tS/             5 ?Zend_Log_Formatter_SimpleD4 AZend_Log_Formatter_FirebugD 3 CZend_Log_Formatter_AbstractD2 =Zend_Log_Filter_SuppressD1 =Zend_Log_Filter_PriorityD0 ;Zend_Log_Filter_MessageD/ =Zend_Log_Filter_AbstractD. 1Zend_Log_ExceptionD- #Zend_LocaleD, -Zend_Locale_MathD+ =Zend_Locale_Math_PhpMathD* AZend_Locale_Math_ExceptionD) 1Zend_Locale_FormatD( 7Zend_Locale_ExceptionD' -Zend_Locale_DataD!& EZend_Locale_Data_TranslationD% #Zend_LoaderD$ =Zend_Loader_PluginLoaderD'# QZend_Loader_PluginLoader_ExceptionD" 7Zend_Loader_ExceptionD! 9Zend_Loader_AutoloaderD$  KZend_Loader_Autoloader_ResourceD Zend_LdapD )Zend_Ldap_NodeD 7Zend_Ldap_Node_SchemaD# IZend_Ldap_Node_Schema_OpenLdapD/ aZend_Ldap_Node_Schema_ObjectClass_OpenLdapD6 oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectoryD AZend_Ldap_Node_Schema_ItemD1 eZend_Ldap_Node_Schema_AttributeType_OpenLdapD8 sZend_Ldap_Node_Schema_AttributeType_ActiveDirectoryD* WZend_Ldap_Node_Schema_ActiveDirectoryD 9Zend_Ldap_Node_RootDseD$ KZend_Ldap_Node_RootDse_OpenLdapD& OZend_Ldap_Node_RootDse_eDirectoryD+ YZend_Ldap_Node_RootDse_ActiveDirectoryD ?Zend_Ldap_Node_CollectionD$ KZend_Ldap_Node_ChildrenIteratorD ;Zend_Ldap_Node_AbstractD 9Zend_Ldap_Ldif_EncoderD -Zend_Ldap_FilterD ;Zend_Ldap_Filter_StringD 3Zend_Ldap_Filter_OrD
 5Zend_Ldap_Filter_NotD	 7Zend_Ldap_Filter_MaskD =Zend_Ldap_Filter_LogicalD AZend_Ldap_Filter_ExceptionD 5Zend_Ldap_Filter_AndD ?Zend_Ldap_Filter_AbstractD 3Zend_Ldap_ExceptionD %Zend_Ldap_DnD 3Zend_Ldap_ConverterD" GZend_Ldap_Converter_ExceptionD  5Zend_Ldap_CollectionD* WZend_Ldap_Collection_Iterator_DefaultD~ 3Zend_Ldap_AttributeD} #Zend_LayoutD| 7Zend_Layout_ExceptionD){ UZend_Layout_Controller_Plugin_LayoutD0z cZend_Layout_Controller_Action_Helper_LayoutDy Zend_JsonDx -Zend_Json_ServerDw 5Zend_Json_Server_SmdD!v EZend_Json_Server_Smd_ServiceDu ?Zend_Json_Server_ResponseD#t IZend_Json_Server_Response_HttpDs =Zend_Json_Server_RequestD"r GZend_Json_Server_Request_HttpDq AZend_Json_Server_ExceptionDp 9Zend_Json_Server_ErrorDo 9Zend_Json_Server_CacheDn )Zend_Json_ExprDm 3Zend_Json_ExceptionDl /Zend_Json_EncoderDk /Zend_Json_DecoderDj 'Zend_InfoCardD-i ]Zend_InfoCard_Xml_SecurityTokenReferenceDh AZend_InfoCard_Xml_SecurityD)g UZend_InfoCard_Xml_Security_TransformD4f kZend_InfoCard_Xml_Security_Transform_XmlExcC14ND3e iZend_InfoCard_Xml_Security_Transform_ExceptionD<d {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignatureD)c UZend_InfoCard_Xml_Security_ExceptionDb ?Zend_InfoCard_Xml_KeyInfoD&a OZend_InfoCard_Xml_KeyInfo_XmlDSigD&` OZend_InfoCard_Xml_KeyInfo_DefaultD'_ QZend_InfoCard_Xml_KeyInfo_AbstractD ^ CZend_InfoCard_Xml_ExceptionD#] IZend_InfoCard_Xml_EncryptedKeyD$\ KZend_InfoCard_Xml_EncryptedDataD+[ YZend_InfoCard_Xml_EncryptedData_XmlEncD-Z ]Zend_InfoCard_Xml_EncryptedData_AbstractDY ?Zend_InfoCard_Xml_ElementD X CZend_InfoCard_Xml_AssertionD%W MZend_InfoCard_Xml_Assertion_SamlDV ;Zend_InfoCard_ExceptionD%U MZend_InfoCard_Exception_AbstractDT 5Zend_InfoCard_ClaimsDS 5Zend_InfoCard_CipherD5R mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcD5Q mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcD4P kZend_InfoCard_Cipher_Symmetric_Adapter_AbstractD)O UZend_InfoCard_Cipher_Pki_Adapter_RsaD.N _Zend_InfoCard_Cipher_Pki_Adapter_AbstractD#M IZend_InfoCard_Cipher_ExceptionD$L KZend_InfoCard_Adapter_ExceptionD"K GZend_InfoCard_Adapter_DefaultD   x hK.fJ3}R'qP1gA 





c
@
				v	P	.	 tY?#dE&nO3a8 rT8
pN-jF!vU&              - ;Zend_Oauth_Token_AccessD+, YZend_Oauth_Signature_SignatureAbstractD+ =Zend_Oauth_Signature_RsaD#* IZend_Oauth_Signature_PlaintextD) ?Zend_Oauth_Signature_HmacD( +Zend_Oauth_HttpD' ;Zend_Oauth_Http_UtilityD&& OZend_Oauth_Http_UserAuthorizationD!% EZend_Oauth_Http_RequestTokenD $ CZend_Oauth_Http_AccessTokenD# 5Zend_Oauth_ExceptionD" 3Zend_Oauth_ConsumerD! /Zend_Oauth_ConfigD  /Zend_Oauth_ClientD +Zend_NavigationD 5Zend_Navigation_PageD =Zend_Navigation_Page_UriD =Zend_Navigation_Page_MvcD ?Zend_Navigation_ExceptionD ?Zend_Navigation_ContainerD Zend_MimeD )Zend_Mime_PartD /Zend_Mime_MessageD 3Zend_Mime_ExceptionD -Zend_Mime_DecodeD #Zend_MemoryD /Zend_Memory_ValueD 3Zend_Memory_ManagerD 7Zend_Memory_ExceptionD 7Zend_Memory_ContainerD" GZend_Memory_Container_MovableD! EZend_Memory_Container_LockedD! EZend_Memory_AccessControllerD 3Zend_Measure_WeightD 3Zend_Measure_VolumeD%
 MZend_Measure_Viscosity_KinematicD#	 IZend_Measure_Viscosity_DynamicD 3Zend_Measure_TorqueD /Zend_Measure_TimeD =Zend_Measure_TemperatureD 1Zend_Measure_SpeedD 7Zend_Measure_PressureD 1Zend_Measure_PowerD 3Zend_Measure_NumberD 9Zend_Measure_LightnessD  3Zend_Measure_LengthD ?Zend_Measure_IlluminationD~ 9Zend_Measure_FrequencyD} 1Zend_Measure_ForceD| =Zend_Measure_Flow_VolumeD{ 9Zend_Measure_Flow_MoleDz 9Zend_Measure_Flow_MassDy 9Zend_Measure_ExceptionDx 3Zend_Measure_EnergyDw 5Zend_Measure_DensityDv 5Zend_Measure_CurrentD u CZend_Measure_Cooking_WeightD t CZend_Measure_Cooking_VolumeDs =Zend_Measure_CapacitanceDr 3Zend_Measure_BinaryDq /Zend_Measure_AreaDp 1Zend_Measure_AngleDo ?Zend_Measure_AccelerationDn 7Zend_Measure_AbstractDm #Zend_MarkupDl 7Zend_Markup_TokenListDk /Zend_Markup_TokenD*j WZend_Markup_Renderer_RendererAbstractDi ?Zend_Markup_Renderer_HtmlD"h GZend_Markup_Renderer_Html_UrlD#g IZend_Markup_Renderer_Html_ListD"f GZend_Markup_Renderer_Html_ImgD+e YZend_Markup_Renderer_Html_HtmlAbstractD#d IZend_Markup_Renderer_Html_CodeD#c IZend_Markup_Renderer_ExceptionDb AZend_Markup_Parser_TextileD!a EZend_Markup_Parser_ExceptionD` ?Zend_Markup_Parser_BbcodeD_ 7Zend_Markup_ExceptionD^ Zend_MailD] =Zend_Mail_Transport_SmtpD!\ EZend_Mail_Transport_SendmailD[ =Zend_Mail_Transport_FileD"Z GZend_Mail_Transport_ExceptionD!Y EZend_Mail_Transport_AbstractDX /Zend_Mail_StorageD'W QZend_Mail_Storage_Writable_MaildirDV 9Zend_Mail_Storage_Pop3DU 9Zend_Mail_Storage_MboxDT ?Zend_Mail_Storage_MaildirDS 9Zend_Mail_Storage_ImapDR =Zend_Mail_Storage_FolderD"Q GZend_Mail_Storage_Folder_MboxD%P MZend_Mail_Storage_Folder_MaildirD O CZend_Mail_Storage_ExceptionDN AZend_Mail_Storage_AbstractDM ;Zend_Mail_Protocol_SmtpD'L QZend_Mail_Protocol_Smtp_Auth_PlainD'K QZend_Mail_Protocol_Smtp_Auth_LoginD)J UZend_Mail_Protocol_Smtp_Auth_Crammd5DI ;Zend_Mail_Protocol_Pop3DH ;Zend_Mail_Protocol_ImapD!G EZend_Mail_Protocol_ExceptionD F CZend_Mail_Protocol_AbstractDE )Zend_Mail_PartDD 3Zend_Mail_Part_FileDC /Zend_Mail_MessageDB 9Zend_Mail_Message_FileDA 3Zend_Mail_ExceptionD@ Zend_LogD ? CZend_Log_Writer_ZendMonitorD> 9Zend_Log_Writer_SyslogD= 9Zend_Log_Writer_StreamD< 5Zend_Log_Writer_NullD; 5Zend_Log_Writer_MockD: 5Zend_Log_Writer_MailD9 ;Zend_Log_Writer_FirebugD8 1Zend_Log_Writer_DbD7 =Zend_Log_Writer_AbstractD6 9Zend_Log_Formatter_XmlD   o  ^9nD"wO+
V%uR/




l
N
+
					o	N	+	
hC 
Y8qGvU1b9pP5oS(jB   'Zend_Pdf_FontD ?Zend_Pdf_Filter_RunLengthD  CZend_Pdf_Filter_CompressionD$ KZend_Pdf_Filter_Compression_LzwD& OZend_Pdf_Filter_Compression_FlateD =Zend_Pdf_Filter_AsciiHexD ;Zend_Pdf_Filter_Ascii85D" GZend_Pdf_FileParserDataSourceD) UZend_Pdf_FileParserDataSource_StringD' QZend_Pdf_FileParserDataSource_FileD 3Zend_Pdf_FileParserD ?Zend_Pdf_FileParser_ImageD" GZend_Pdf_FileParser_Image_PngD =Zend_Pdf_FileParser_FontD& OZend_Pdf_FileParser_Font_OpenTypeD/ aZend_Pdf_FileParser_Font_OpenType_TrueTypeD 1Zend_Pdf_ExceptionD ;Zend_Pdf_ElementFactoryD"
 GZend_Pdf_ElementFactory_ProxyD	 -Zend_Pdf_ElementD ;Zend_Pdf_Element_StringD# IZend_Pdf_Element_String_BinaryD ;Zend_Pdf_Element_StreamD AZend_Pdf_Element_ReferenceD% MZend_Pdf_Element_Reference_TableD' QZend_Pdf_Element_Reference_ContextD ;Zend_Pdf_Element_ObjectD# IZend_Pdf_Element_Object_StreamD  =Zend_Pdf_Element_NumericD 7Zend_Pdf_Element_NullD~ 7Zend_Pdf_Element_NameD } CZend_Pdf_Element_DictionaryD| =Zend_Pdf_Element_BooleanD{ 9Zend_Pdf_Element_ArrayDz 5Zend_Pdf_DestinationDy ?Zend_Pdf_Destination_ZoomD!x EZend_Pdf_Destination_UnknownDw AZend_Pdf_Destination_NamedD'v QZend_Pdf_Destination_FitVerticallyD&u OZend_Pdf_Destination_FitRectangleD)t UZend_Pdf_Destination_FitHorizontallyD2s gZend_Pdf_Destination_FitBoundingBoxVerticallyD4r kZend_Pdf_Destination_FitBoundingBoxHorizontallyD(q SZend_Pdf_Destination_FitBoundingBoxDp =Zend_Pdf_Destination_FitD"o GZend_Pdf_Destination_ExplicitDn )Zend_Pdf_ColorDm 1Zend_Pdf_Color_RgbDl 3Zend_Pdf_Color_HtmlDk =Zend_Pdf_Color_GrayScaleDj 3Zend_Pdf_Color_CmykDi 'Zend_Pdf_CmapDh AZend_Pdf_Cmap_TrimmedTableD!g EZend_Pdf_Cmap_SegmentToDeltaDf AZend_Pdf_Cmap_ByteEncodingD&e OZend_Pdf_Cmap_ByteEncoding_StaticDd +Zend_Pdf_CanvasDc =Zend_Pdf_Canvas_AbstractDb 3Zend_Pdf_AnnotationDa =Zend_Pdf_Annotation_TextD` AZend_Pdf_Annotation_MarkupD_ =Zend_Pdf_Annotation_LinkD'^ QZend_Pdf_Annotation_FileAttachmentD] +Zend_Pdf_ActionD\ 3Zend_Pdf_Action_URID[ ;Zend_Pdf_Action_UnknownDZ 7Zend_Pdf_Action_TransDY 9Zend_Pdf_Action_ThreadDX AZend_Pdf_Action_SubmitFormDW 7Zend_Pdf_Action_SoundD V CZend_Pdf_Action_SetOCGStateDU ?Zend_Pdf_Action_ResetFormDT ?Zend_Pdf_Action_RenditionDS 7Zend_Pdf_Action_NamedDR 7Zend_Pdf_Action_MovieDQ 9Zend_Pdf_Action_LaunchDP AZend_Pdf_Action_JavaScriptDO AZend_Pdf_Action_ImportDataDN 5Zend_Pdf_Action_HideDM 7Zend_Pdf_Action_GoToRDL 7Zend_Pdf_Action_GoToEDK AZend_Pdf_Action_GoTo3DViewDJ 5Zend_Pdf_Action_GoToDI )Zend_PaginatorD-H ]Zend_Paginator_SerializableLimitIteratorD*G WZend_Paginator_ScrollingStyle_SlidingD*F WZend_Paginator_ScrollingStyle_JumpingD*E WZend_Paginator_ScrollingStyle_ElasticD&D OZend_Paginator_ScrollingStyle_AllDC =Zend_Paginator_ExceptionD B CZend_Paginator_Adapter_NullD$A KZend_Paginator_Adapter_IteratorD)@ UZend_Paginator_Adapter_DbTableSelectD$? KZend_Paginator_Adapter_DbSelectD!> EZend_Paginator_Adapter_ArrayD= #Zend_OpenIdD< 5Zend_OpenId_ProviderD; ?Zend_OpenId_Provider_UserD&: OZend_OpenId_Provider_User_SessionD!9 EZend_OpenId_Provider_StorageD&8 OZend_OpenId_Provider_Storage_FileD7 7Zend_OpenId_ExtensionD6 AZend_OpenId_Extension_SregD5 7Zend_OpenId_ExceptionD4 5Zend_OpenId_ConsumerD!3 EZend_OpenId_Consumer_StorageD&2 OZend_OpenId_Consumer_Storage_FileD1 !Zend_OauthD0 -Zend_Oauth_TokenD/ =Zend_Oauth_Token_RequestD'. QZend_Oauth_Token_AuthorizedRequestD   d  u_GmD|AKW


g
8
					]	8	hE%Z2e?oK$	nCpO0jQ4 \#       I  Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitiveD5 mZend_Search_Lucene_Analysis_Analyzer_Common_TextDF~ Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiveD} 7Zend_Search_ExceptionD| -Zend_Rest_ServerD{ AZend_Rest_Server_ExceptionDz +Zend_Rest_RouteDy 3Zend_Rest_ExceptionDx 5Zend_Rest_ControllerDw -Zend_Rest_ClientDv ;Zend_Rest_Client_ResultD&u OZend_Rest_Client_Result_ExceptionDt AZend_Rest_Client_ExceptionDs 'Zend_RegistryDr =Zend_Reflection_PropertyDq ?Zend_Reflection_ParameterDp 9Zend_Reflection_MethodDo =Zend_Reflection_FunctionDn 5Zend_Reflection_FileDm ?Zend_Reflection_ExtensionDl ?Zend_Reflection_ExceptionDk =Zend_Reflection_DocblockD!j EZend_Reflection_Docblock_TagD(i SZend_Reflection_Docblock_Tag_ReturnD'h QZend_Reflection_Docblock_Tag_ParamDg 7Zend_Reflection_ClassDf !Zend_QueueDe 9Zend_Queue_Stomp_FrameDd ;Zend_Queue_Stomp_ClientD'c QZend_Queue_Stomp_Client_ConnectionDb 1Zend_Queue_MessageD#a IZend_Queue_Message_PlatformJobD ` CZend_Queue_Message_IteratorD_ 5Zend_Queue_ExceptionD(^ SZend_Queue_Adapter_PlatformJobQueueD] ;Zend_Queue_Adapter_NullD!\ EZend_Queue_Adapter_MemcacheqD[ 7Zend_Queue_Adapter_DbD Z CZend_Queue_Adapter_Db_QueueD"Y GZend_Queue_Adapter_Db_MessageDX =Zend_Queue_Adapter_ArrayD'W QZend_Queue_Adapter_AdapterAbstractD V CZend_Queue_Adapter_ActivemqDU -Zend_ProgressBarDT AZend_ProgressBar_ExceptionDS =Zend_ProgressBar_AdapterD$R KZend_ProgressBar_Adapter_JsPushD$Q KZend_ProgressBar_Adapter_JsPullD'P QZend_ProgressBar_Adapter_ExceptionD%O MZend_ProgressBar_Adapter_ConsoleDN Zend_PdfD!M EZend_Pdf_UpdateInfoContainerDL -Zend_Pdf_TrailerDK ;Zend_Pdf_Trailer_KeeperDJ AZend_Pdf_Trailer_GeneratorDI +Zend_Pdf_TargetDH )Zend_Pdf_StyleDG 7Zend_Pdf_StringParserDF /Zend_Pdf_ResourceDE ?Zend_Pdf_Resource_UnifiedD#D IZend_Pdf_Resource_ImageFactoryDC ;Zend_Pdf_Resource_ImageD!B EZend_Pdf_Resource_Image_TiffD A CZend_Pdf_Resource_Image_PngD!@ EZend_Pdf_Resource_Image_JpegD$? KZend_Pdf_Resource_GraphicsStateD> 9Zend_Pdf_Resource_FontD!= EZend_Pdf_Resource_Font_Type0D"< GZend_Pdf_Resource_Font_SimpleD+; YZend_Pdf_Resource_Font_Simple_StandardD8: sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsD69 oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanD78 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicD;7 yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicD56 mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldD25 gZend_Pdf_Resource_Font_Simple_Standard_SymbolD<4 {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueDA3 Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliqueD92 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldD51 mZend_Pdf_Resource_Font_Simple_Standard_HelveticaD:0 wZend_Pdf_Resource_Font_Simple_Standard_CourierObliqueD>/ Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliqueD7. qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldD3- iZend_Pdf_Resource_Font_Simple_Standard_CourierD), UZend_Pdf_Resource_Font_Simple_ParsedD2+ gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypeD** WZend_Pdf_Resource_Font_FontDescriptorD%) MZend_Pdf_Resource_Font_ExtractedD#( IZend_Pdf_Resource_Font_CidFontD,' [Zend_Pdf_Resource_Font_CidFont_TrueTypeD & CZend_Pdf_Resource_ExtractorD$% KZend_Pdf_Resource_ContentStreamD3$ iZend_Pdf_RecursivelyIteratableObjectsContainerD# +Zend_Pdf_ParserD" 'Zend_Pdf_PageD! -Zend_Pdf_OutlineD  ;Zend_Pdf_Outline_LoadedD =Zend_Pdf_Outline_CreatedD /Zend_Pdf_NameTreeD )Zend_Pdf_ImageD   Q  zAW-z@d;d2



A
				R	*	HPv;yQ]0i4tDU&        Q 1Zend_Search_LuceneD0P cZend_Search_Lucene_TermStreamsPriorityQueueD$O KZend_Search_Lucene_Storage_FileD+N YZend_Search_Lucene_Storage_File_MemoryD/M aZend_Search_Lucene_Storage_File_FilesystemD)L UZend_Search_Lucene_Storage_DirectoryD4K kZend_Search_Lucene_Storage_Directory_FilesystemD%J MZend_Search_Lucene_Search_WeightD*I WZend_Search_Lucene_Search_Weight_TermD,H [Zend_Search_Lucene_Search_Weight_PhraseD/G aZend_Search_Lucene_Search_Weight_MultiTermD+F YZend_Search_Lucene_Search_Weight_EmptyD-E ]Zend_Search_Lucene_Search_Weight_BooleanD)D UZend_Search_Lucene_Search_SimilarityD1C eZend_Search_Lucene_Search_Similarity_DefaultD)B UZend_Search_Lucene_Search_QueryTokenD3A iZend_Search_Lucene_Search_QueryParserExceptionD1@ eZend_Search_Lucene_Search_QueryParserContextD*? WZend_Search_Lucene_Search_QueryParserD)> UZend_Search_Lucene_Search_QueryLexerD'= QZend_Search_Lucene_Search_QueryHitD)< UZend_Search_Lucene_Search_QueryEntryD.; _Zend_Search_Lucene_Search_QueryEntry_TermD2: gZend_Search_Lucene_Search_QueryEntry_SubqueryD09 cZend_Search_Lucene_Search_QueryEntry_PhraseD$8 KZend_Search_Lucene_Search_QueryD-7 ]Zend_Search_Lucene_Search_Query_WildcardD)6 UZend_Search_Lucene_Search_Query_TermD*5 WZend_Search_Lucene_Search_Query_RangeD24 gZend_Search_Lucene_Search_Query_PreprocessingD73 qZend_Search_Lucene_Search_Query_Preprocessing_TermD92 uZend_Search_Lucene_Search_Query_Preprocessing_PhraseD81 sZend_Search_Lucene_Search_Query_Preprocessing_FuzzyD+0 YZend_Search_Lucene_Search_Query_PhraseD./ _Zend_Search_Lucene_Search_Query_MultiTermD2. gZend_Search_Lucene_Search_Query_InsignificantD*- WZend_Search_Lucene_Search_Query_FuzzyD*, WZend_Search_Lucene_Search_Query_EmptyD,+ [Zend_Search_Lucene_Search_Query_BooleanD2* gZend_Search_Lucene_Search_Highlighter_DefaultD:) wZend_Search_Lucene_Search_BooleanExpressionRecognizerD( =Zend_Search_Lucene_ProxyD%' MZend_Search_Lucene_PriorityQueueD/& aZend_Search_Lucene_Interface_MultiSearcherD#% IZend_Search_Lucene_LockManagerD$$ KZend_Search_Lucene_Index_WriterD0# cZend_Search_Lucene_Index_TermsPriorityQueueD&" OZend_Search_Lucene_Index_TermInfoD"! GZend_Search_Lucene_Index_TermD+  YZend_Search_Lucene_Index_SegmentWriterD8 sZend_Search_Lucene_Index_SegmentWriter_StreamWriterD: wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterD+ YZend_Search_Lucene_Index_SegmentMergerD) UZend_Search_Lucene_Index_SegmentInfoD' QZend_Search_Lucene_Index_FieldInfoD( SZend_Search_Lucene_Index_DocsFilterD. _Zend_Search_Lucene_Index_DictionaryLoaderD! EZend_Search_Lucene_FSMActionD 9Zend_Search_Lucene_FSMD =Zend_Search_Lucene_FieldD! EZend_Search_Lucene_ExceptionD  CZend_Search_Lucene_DocumentD% MZend_Search_Lucene_Document_XlsxD% MZend_Search_Lucene_Document_PptxD( SZend_Search_Lucene_Document_OpenXmlD% MZend_Search_Lucene_Document_HtmlD* WZend_Search_Lucene_Document_ExceptionD% MZend_Search_Lucene_Document_DocxD, [Zend_Search_Lucene_Analysis_TokenFilterD6 oZend_Search_Lucene_Analysis_TokenFilter_StopWordsD7 qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsD:
 wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8D6	 oZend_Search_Lucene_Analysis_TokenFilter_LowerCaseD& OZend_Search_Lucene_Analysis_TokenD) UZend_Search_Lucene_Analysis_AnalyzerD0 cZend_Search_Lucene_Analysis_Analyzer_CommonD8 sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumDI Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitiveD5 mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8DF Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitiveD8 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumD   \  ]8oW: tO*^5b:


{
P
%				{	Q	'	uM&\:`7i?b9_*Au5                                               C- Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetailD<, {Zend_Service_DeveloperGarden_ConferenceCall_ParticipantD:+ wZend_Service_DeveloperGarden_ConferenceCall_ExceptionDD* 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceScheduleDB) Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetailDC( Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccountD-' ]Zend_Service_DeveloperGarden_Client_SoapD2& gZend_Service_DeveloperGarden_Client_ExceptionD7% qZend_Service_DeveloperGarden_Client_ClientAbstractD1$ eZend_Service_DeveloperGarden_BaseUserServiceDA# Zend_Service_DeveloperGarden_BaseUserService_AccountBalanceD" 9Zend_Service_DeliciousD&! OZend_Service_Delicious_SimplePostD$  KZend_Service_Delicious_PostListD  CZend_Service_Delicious_PostD% MZend_Service_Delicious_ExceptionD  CZend_Service_AudioscrobblerD 3Zend_Service_AmazonD ;Zend_Service_Amazon_SqsD& OZend_Service_Amazon_Sqs_ExceptionD! EZend_Service_Amazon_SimpleDbD* WZend_Service_Amazon_SimpleDb_ResponseD& OZend_Service_Amazon_SimpleDb_PageD+ YZend_Service_Amazon_SimpleDb_ExceptionD+ YZend_Service_Amazon_SimpleDb_AttributeD' QZend_Service_Amazon_SimilarProductD 9Zend_Service_Amazon_S3D" GZend_Service_Amazon_S3_StreamD% MZend_Service_Amazon_S3_ExceptionD" GZend_Service_Amazon_ResultSetD ?Zend_Service_Amazon_QueryD! EZend_Service_Amazon_OfferSetD ?Zend_Service_Amazon_OfferD& OZend_Service_Amazon_ListmaniaListD =Zend_Service_Amazon_ItemD
 ?Zend_Service_Amazon_ImageD"	 GZend_Service_Amazon_ExceptionD( SZend_Service_Amazon_EditorialReviewD ;Zend_Service_Amazon_Ec2D+ YZend_Service_Amazon_Ec2_SecuritygroupsD% MZend_Service_Amazon_Ec2_ResponseD# IZend_Service_Amazon_Ec2_RegionD$ KZend_Service_Amazon_Ec2_KeypairD% MZend_Service_Amazon_Ec2_InstanceD- ]Zend_Service_Amazon_Ec2_Instance_WindowsD.  _Zend_Service_Amazon_Ec2_Instance_ReservedD" GZend_Service_Amazon_Ec2_ImageD&~ OZend_Service_Amazon_Ec2_ExceptionD&} OZend_Service_Amazon_Ec2_ElasticipD | CZend_Service_Amazon_Ec2_EbsD'{ QZend_Service_Amazon_Ec2_CloudWatchD.z _Zend_Service_Amazon_Ec2_AvailabilityzonesD%y MZend_Service_Amazon_Ec2_AbstractD'x QZend_Service_Amazon_CustomerReviewD'w QZend_Service_Amazon_AuthenticationD*v WZend_Service_Amazon_Authentication_V2D*u WZend_Service_Amazon_Authentication_V1D*t WZend_Service_Amazon_Authentication_S3D1s eZend_Service_Amazon_Authentication_ExceptionD$r KZend_Service_Amazon_AccessoriesD!q EZend_Service_Amazon_AbstractDp 5Zend_Service_AkismetDo 7Zend_Service_AbstractDn 9Zend_Server_ReflectionD'm QZend_Server_Reflection_ReturnValueD%l MZend_Server_Reflection_PrototypeD%k MZend_Server_Reflection_ParameterD j CZend_Server_Reflection_NodeD"i GZend_Server_Reflection_MethodD$h KZend_Server_Reflection_FunctionD-g ]Zend_Server_Reflection_Function_AbstractD%f MZend_Server_Reflection_ExceptionD!e EZend_Server_Reflection_ClassD!d EZend_Server_Method_PrototypeD!c EZend_Server_Method_ParameterD"b GZend_Server_Method_DefinitionD a CZend_Server_Method_CallbackD` 7Zend_Server_ExceptionD_ 9Zend_Server_DefinitionD^ /Zend_Server_CacheD] 5Zend_Server_AbstractD\ +Zend_SerializerD[ ?Zend_Serializer_ExceptionD!Z EZend_Serializer_Adapter_WddxD)Y UZend_Serializer_Adapter_PythonPickleD)X UZend_Serializer_Adapter_PhpSerializeD$W KZend_Serializer_Adapter_PhpCodeD!V EZend_Serializer_Adapter_JsonD%U MZend_Serializer_Adapter_IgbinaryD!T EZend_Serializer_Adapter_Amf3D!S EZend_Serializer_Adapter_Amf0D,R [Zend_Serializer_Adapter_AdapterAbstractD   3  U&?pd\

A			5%rX5y3J4h                                                                           U` +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponseDS_ 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponseD3^ iZend_Service_DeveloperGarden_Response_BaseTypeDJ] Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstractDC\ Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCallDG[ Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequencedD=Z }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallDAY Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatusDAX Zend_Service_DeveloperGarden_Request_SmsValidation_ValidateDNW Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeywordDCV Zend_Service_DeveloperGarden_Request_SmsValidation_InvalidateDLU Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbersDBT Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstractD9S uZend_Service_DeveloperGarden_Request_SendSms_SendSMSD>R Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMSD9Q uZend_Service_DeveloperGarden_Request_RequestAbstractDIP Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequestDEO Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequestD3N iZend_Service_DeveloperGarden_Request_ExceptionDRM %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequestDYL 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequestDdK IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequestDQJ #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequestDRI %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequestDYH 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequestDdG IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequestDQF #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequestDOE Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequestDUD +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequestDUC +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequestDVB -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequestDaA CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequestDZ@ 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequestDT? )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequestDR> %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequestDY= 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequestDQ< #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequestDQ; #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequestDa: CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequestDN9 Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformationDL8 Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalanceDJ7 Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPoolD-6 ]Zend_Service_DeveloperGarden_LocalSearchD>5 Zend_Service_DeveloperGarden_LocalSearch_SearchParametersD74 qZend_Service_DeveloperGarden_LocalSearch_ExceptionD,3 [Zend_Service_DeveloperGarden_IpLocationD62 oZend_Service_DeveloperGarden_IpLocation_IpAddressD+1 YZend_Service_DeveloperGarden_ExceptionD,0 [Zend_Service_DeveloperGarden_CredentialD0/ cZend_Service_DeveloperGarden_ConferenceCallDC. Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatusD   - q >.'eW


5		c	L3.eL]~3P   q               I Zend_Service_DeveloperGarden_Response_SecurityTokenServer_ExceptionD; yZend_Service_DeveloperGarden_Response_ResponseAbstractDO Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseTypeDK
 Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseDA	 Zend_Service_DeveloperGarden_Response_IpLocation_RegionTypeDK Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseTypeDG Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseDL Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationTypeDI Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesTypeD> Zend_Service_DeveloperGarden_Response_IpLocation_CityTypeD4 kZend_Service_DeveloperGarden_Response_ExceptionDT )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponseD[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponseDf  MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponseDS 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponseDT~ )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponseD[} 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponseDf| MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponseDS{ 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponseDUz +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseTypeDQy #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseD[x 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseTypeDWw /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseD[v 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseTypeDWu /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseD\t 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseTypeDXs 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseDgr OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseTypeDcq GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseD`p AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseTypeD\o 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseDZn 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseTypeDVm -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseDXl 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseTypeDTk )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseD_j ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseTypeD[i 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseDWh /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseTypeDSg 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseDQf #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstractDSe 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponseDJd Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseTypeDgc OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseTypeDcb GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseDWa /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponseD   K  Rxv)<M



Y
&					H	|=sFUZ*oB zR*cE{K#                      &X OZend_Service_ShortUrl_MetamarkNetD!W EZend_Service_ShortUrl_JdemCzDV AZend_Service_ShortUrl_IsGdD$U KZend_Service_ShortUrl_ExceptionD,T [Zend_Service_ShortUrl_AbstractShortenerDS 9Zend_Service_ReCaptchaD$R KZend_Service_ReCaptcha_ResponseD$Q KZend_Service_ReCaptcha_MailHideD.P _Zend_Service_ReCaptcha_MailHide_ExceptionD%O MZend_Service_ReCaptcha_ExceptionDN 7Zend_Service_NirvanixD#M IZend_Service_Nirvanix_ResponseD)L UZend_Service_Nirvanix_Namespace_ImfsD)K UZend_Service_Nirvanix_Namespace_BaseD$J KZend_Service_Nirvanix_ExceptionDI 7Zend_Service_LiveDocxD$H KZend_Service_LiveDocx_MailMergeD$G KZend_Service_LiveDocx_ExceptionDF 3Zend_Service_FlickrD"E GZend_Service_Flickr_ResultSetDD AZend_Service_Flickr_ResultDC ?Zend_Service_Flickr_ImageDB 9Zend_Service_ExceptionDA ?Zend_Service_Ebay_FindingD)@ UZend_Service_Ebay_Finding_StorefrontD+? YZend_Service_Ebay_Finding_ShippingInfoD+> YZend_Service_Ebay_Finding_Set_AbstractD,= [Zend_Service_Ebay_Finding_SellingStatusD)< UZend_Service_Ebay_Finding_SellerInfoD,; [Zend_Service_Ebay_Finding_Search_ResultD*: WZend_Service_Ebay_Finding_Search_ItemD.9 _Zend_Service_Ebay_Finding_Search_Item_SetD08 cZend_Service_Ebay_Finding_Response_KeywordsD-7 ]Zend_Service_Ebay_Finding_Response_ItemsD26 gZend_Service_Ebay_Finding_Response_HistogramsD05 cZend_Service_Ebay_Finding_Response_AbstractD/4 aZend_Service_Ebay_Finding_PaginationOutputD*3 WZend_Service_Ebay_Finding_ListingInfoD(2 SZend_Service_Ebay_Finding_ExceptionD,1 [Zend_Service_Ebay_Finding_Error_MessageD)0 UZend_Service_Ebay_Finding_Error_DataD-/ ]Zend_Service_Ebay_Finding_Error_Data_SetD'. QZend_Service_Ebay_Finding_CategoryD1- eZend_Service_Ebay_Finding_Category_HistogramD5, mZend_Service_Ebay_Finding_Category_Histogram_SetD;+ yZend_Service_Ebay_Finding_Category_Histogram_ContainerD%* MZend_Service_Ebay_Finding_AspectD)) UZend_Service_Ebay_Finding_Aspect_SetD5( mZend_Service_Ebay_Finding_Aspect_Histogram_ValueD9' uZend_Service_Ebay_Finding_Aspect_Histogram_Value_SetD9& uZend_Service_Ebay_Finding_Aspect_Histogram_ContainerD'% QZend_Service_Ebay_Finding_AbstractD $ CZend_Service_Ebay_ExceptionD# AZend_Service_Ebay_AbstractD+" YZend_Service_DeveloperGarden_VoiceCallD/! aZend_Service_DeveloperGarden_SmsValidationD)  UZend_Service_DeveloperGarden_SendSmsD5 mZend_Service_DeveloperGarden_SecurityTokenServerD; yZend_Service_DeveloperGarden_SecurityTokenServer_CacheDK Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstractDL Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponseDP !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponseDG Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponseDJ Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponseDK Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2ResponseDL Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponseDI Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumberDW /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponseDJ Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponseDU +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponseDC Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponseDC Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstractDH Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponseDU +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponseDQ #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponseD   O  oO,mE* g=c4pF



l
<
				f	?	u=<Vw+j4Lt5a$           9' uZend_Service_WindowsAzure_Storage_PageRegionInstanceD4& kZend_Service_WindowsAzure_Storage_LeaseInstanceD9% uZend_Service_WindowsAzure_Storage_DynamicTableEntityD3$ iZend_Service_WindowsAzure_Storage_BlobInstanceD4# kZend_Service_WindowsAzure_Storage_BlobContainerD+" YZend_Service_WindowsAzure_Storage_BlobD2! gZend_Service_WindowsAzure_Storage_Blob_StreamD;  yZend_Service_WindowsAzure_Storage_BatchStorageAbstractD, [Zend_Service_WindowsAzure_Storage_BatchD- ]Zend_Service_WindowsAzure_SessionHandlerD> Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstractD1 eZend_Service_WindowsAzure_RetryPolicy_RetryND2 gZend_Service_WindowsAzure_RetryPolicy_NoRetryD4 kZend_Service_WindowsAzure_RetryPolicy_ExceptionD( SZend_Service_WindowsAzure_ExceptionDJ Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscriptionD2 gZend_Service_WindowsAzure_Diagnostics_ManagerD3 iZend_Service_WindowsAzure_Diagnostics_LogLevelD4 kZend_Service_WindowsAzure_Diagnostics_ExceptionDN Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscriptionDH Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLogDL Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCountersDK Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstractD< {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogsDA Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstanceDD 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectoriesDU +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogsDD 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSourcesD8 sZend_Service_WindowsAzure_Credentials_SharedKeyLiteD4
 kZend_Service_WindowsAzure_Credentials_SharedKeyDA	 Zend_Service_WindowsAzure_Credentials_SharedAccessSignatureD4 kZend_Service_WindowsAzure_Credentials_ExceptionD> Zend_Service_WindowsAzure_Credentials_CredentialsAbstractD 5Zend_Service_TwitterD  CZend_Service_Twitter_SearchD# IZend_Service_Twitter_ExceptionD ;Zend_Service_TechnoratiD# IZend_Service_Technorati_WeblogD" GZend_Service_Technorati_UtilsD*  WZend_Service_Technorati_TagsResultSetD' QZend_Service_Technorati_TagsResultD)~ UZend_Service_Technorati_TagResultSetD&} OZend_Service_Technorati_TagResultD,| [Zend_Service_Technorati_SearchResultSetD){ UZend_Service_Technorati_SearchResultD&z OZend_Service_Technorati_ResultSetD#y IZend_Service_Technorati_ResultD*x WZend_Service_Technorati_KeyInfoResultD*w WZend_Service_Technorati_GetInfoResultD&v OZend_Service_Technorati_ExceptionD1u eZend_Service_Technorati_DailyCountsResultSetD.t _Zend_Service_Technorati_DailyCountsResultD,s [Zend_Service_Technorati_CosmosResultSetD)r UZend_Service_Technorati_CosmosResultD+q YZend_Service_Technorati_BlogInfoResultD#p IZend_Service_Technorati_AuthorDo ;Zend_Service_StrikeIronD(n SZend_Service_StrikeIron_ZipCodeInfoD2m gZend_Service_StrikeIron_USAddressVerificationD-l ]Zend_Service_StrikeIron_SalesUseTaxBasicD&k OZend_Service_StrikeIron_ExceptionD&j OZend_Service_StrikeIron_DecoratorD!i EZend_Service_StrikeIron_BaseDh ;Zend_Service_SlideShareD&g OZend_Service_SlideShare_SlideShowD&f OZend_Service_SlideShare_ExceptionDe 1Zend_Service_SimpyD$d KZend_Service_Simpy_WatchlistSetD*c WZend_Service_Simpy_WatchlistFilterSetD'b QZend_Service_Simpy_WatchlistFilterD!a EZend_Service_Simpy_WatchlistD` ?Zend_Service_Simpy_TagSetD_ 9Zend_Service_Simpy_TagD^ AZend_Service_Simpy_NoteSetD] ;Zend_Service_Simpy_NoteD\ AZend_Service_Simpy_LinkSetD![ EZend_Service_Simpy_LinkQueryDZ ;Zend_Service_Simpy_LinkD%Y MZend_Service_ShortUrl_TinyUrlComD   c  a&EqEvLb:



o
G

				}	Z	;	"tArG{eK/R%wC[-{_@x^?$                         $
 KZend_Tool_Framework_Action_BaseD	 'Zend_TimeSyncD 1Zend_TimeSync_SntpD 9Zend_TimeSync_ProtocolD /Zend_TimeSync_NtpD ;Zend_TimeSync_ExceptionD +Zend_Text_TableD 3Zend_Text_Table_RowD ?Zend_Text_Table_ExceptionD& OZend_Text_Table_Decorator_UnicodeD$  KZend_Text_Table_Decorator_AsciiD 9Zend_Text_Table_ColumnD~ 3Zend_Text_MultiByteD} -Zend_Text_FigletD| AZend_Text_Figlet_ExceptionD{ 3Zend_Text_ExceptionD&z OZend_Test_PHPUnit_Db_SimpleTesterD,y [Zend_Test_PHPUnit_Db_Operation_TruncateD*x WZend_Test_PHPUnit_Db_Operation_InsertD-w ]Zend_Test_PHPUnit_Db_Operation_DeleteAllD*v WZend_Test_PHPUnit_Db_Metadata_GenericD#u IZend_Test_PHPUnit_Db_ExceptionD,t [Zend_Test_PHPUnit_Db_DataSet_QueryTableD.s _Zend_Test_PHPUnit_Db_DataSet_QueryDataSetD0r cZend_Test_PHPUnit_Db_DataSet_DbTableDataSetD)q UZend_Test_PHPUnit_Db_DataSet_DbTableD*p WZend_Test_PHPUnit_Db_DataSet_DbRowsetD$o KZend_Test_PHPUnit_Db_ConnectionD'n QZend_Test_PHPUnit_DatabaseTestCaseD)m UZend_Test_PHPUnit_ControllerTestCaseD0l cZend_Test_PHPUnit_Constraint_ResponseHeaderD*k WZend_Test_PHPUnit_Constraint_RedirectD+j YZend_Test_PHPUnit_Constraint_ExceptionD*i WZend_Test_PHPUnit_Constraint_DomQueryDh 7Zend_Test_DbStatementDg 3Zend_Test_DbAdapterDf /Zend_Tag_ItemListDe 'Zend_Tag_ItemDd 1Zend_Tag_ExceptionDc )Zend_Tag_CloudDb =Zend_Tag_Cloud_ExceptionD!a EZend_Tag_Cloud_Decorator_TagD%` MZend_Tag_Cloud_Decorator_HtmlTagD'_ QZend_Tag_Cloud_Decorator_HtmlCloudD'^ QZend_Tag_Cloud_Decorator_ExceptionD#] IZend_Tag_Cloud_Decorator_CloudD\ )Zend_Soap_WsdlD/[ aZend_Soap_Wsdl_Strategy_DefaultComplexTypeD&Z OZend_Soap_Wsdl_Strategy_CompositeD0Y cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequenceD/X aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplexD$W KZend_Soap_Wsdl_Strategy_AnyTypeD%V MZend_Soap_Wsdl_Strategy_AbstractDU =Zend_Soap_Wsdl_ExceptionDT -Zend_Soap_ServerDS AZend_Soap_Server_ExceptionDR -Zend_Soap_ClientDQ 9Zend_Soap_Client_LocalDP AZend_Soap_Client_ExceptionDO ;Zend_Soap_Client_DotNetDN ;Zend_Soap_Client_CommonDM 9Zend_Soap_AutoDiscoverD%L MZend_Soap_AutoDiscover_ExceptionDK %Zend_SessionD)J UZend_Session_Validator_HttpUserAgentD$I KZend_Session_Validator_AbstractD'H QZend_Session_SaveHandler_ExceptionD%G MZend_Session_SaveHandler_DbTableDF 9Zend_Session_NamespaceDE 9Zend_Session_ExceptionDD 7Zend_Session_AbstractDC 1Zend_Service_YahooD$B KZend_Service_Yahoo_WebResultSetD!A EZend_Service_Yahoo_WebResultD&@ OZend_Service_Yahoo_VideoResultSetD#? IZend_Service_Yahoo_VideoResultD!> EZend_Service_Yahoo_ResultSetD= ?Zend_Service_Yahoo_ResultD)< UZend_Service_Yahoo_PageDataResultSetD&; OZend_Service_Yahoo_PageDataResultD%: MZend_Service_Yahoo_NewsResultSetD"9 GZend_Service_Yahoo_NewsResultD&8 OZend_Service_Yahoo_LocalResultSetD#7 IZend_Service_Yahoo_LocalResultD+6 YZend_Service_Yahoo_InlinkDataResultSetD(5 SZend_Service_Yahoo_InlinkDataResultD&4 OZend_Service_Yahoo_ImageResultSetD#3 IZend_Service_Yahoo_ImageResultD2 =Zend_Service_Yahoo_ImageD&1 OZend_Service_WindowsAzure_StorageD40 kZend_Service_WindowsAzure_Storage_TableInstanceD7/ qZend_Service_WindowsAzure_Storage_TableEntityQueryD2. gZend_Service_WindowsAzure_Storage_TableEntityD,- [Zend_Service_WindowsAzure_Storage_TableD<, {Zend_Service_WindowsAzure_Storage_StorageEntityAbstractD7+ qZend_Service_WindowsAzure_Storage_SignedIdentifierD3* iZend_Service_WindowsAzure_Storage_QueueMessageD4) kZend_Service_WindowsAzure_Storage_QueueInstanceD,( [Zend_Service_WindowsAzure_Storage_QueueD   K  yOa_2}Q&}R, 


N
				m	?	],g3X,`&o=
b.Z'_+                                       2U gZend_Tool_Project_Context_Zf_LayoutScriptFileD.T _Zend_Tool_Project_Context_Zf_HtaccessFileD0S cZend_Tool_Project_Context_Zf_FormsDirectoryD*R WZend_Tool_Project_Context_Zf_FormFileD/Q aZend_Tool_Project_Context_Zf_DocsDirectoryD-P ]Zend_Tool_Project_Context_Zf_DbTableFileD2O gZend_Tool_Project_Context_Zf_DbTableDirectoryD/N aZend_Tool_Project_Context_Zf_DataDirectoryD6M oZend_Tool_Project_Context_Zf_ControllersDirectoryD0L cZend_Tool_Project_Context_Zf_ControllerFileD2K gZend_Tool_Project_Context_Zf_ConfigsDirectoryD,J [Zend_Tool_Project_Context_Zf_ConfigFileD0I cZend_Tool_Project_Context_Zf_CacheDirectoryD/H aZend_Tool_Project_Context_Zf_BootstrapFileD6G oZend_Tool_Project_Context_Zf_ApplicationDirectoryD7F qZend_Tool_Project_Context_Zf_ApplicationConfigFileD/E aZend_Tool_Project_Context_Zf_ApisDirectoryD.D _Zend_Tool_Project_Context_Zf_ActionMethodD3C iZend_Tool_Project_Context_Zf_AbstractClassFileD@B Zend_Tool_Project_Context_System_ProjectProvidersDirectoryD8A sZend_Tool_Project_Context_System_ProjectProfileFileD6@ oZend_Tool_Project_Context_System_ProjectDirectoryD)? UZend_Tool_Project_Context_RepositoryD.> _Zend_Tool_Project_Context_Filesystem_FileD3= iZend_Tool_Project_Context_Filesystem_DirectoryD2< gZend_Tool_Project_Context_Filesystem_AbstractD(; SZend_Tool_Project_Context_ExceptionD-: ]Zend_Tool_Project_Context_Content_EngineD39 iZend_Tool_Project_Context_Content_Engine_PhtmlD;8 yZend_Tool_Project_Context_Content_Engine_CodeGeneratorD07 cZend_Tool_Framework_System_Provider_VersionD06 cZend_Tool_Framework_System_Provider_PhpinfoD15 eZend_Tool_Framework_System_Provider_ManifestD/4 aZend_Tool_Framework_System_Provider_ConfigD(3 SZend_Tool_Framework_System_ManifestD-2 ]Zend_Tool_Framework_System_Action_DeleteD-1 ]Zend_Tool_Framework_System_Action_CreateD!0 EZend_Tool_Framework_RegistryD+/ YZend_Tool_Framework_Registry_ExceptionD+. YZend_Tool_Framework_Provider_SignatureD,- [Zend_Tool_Framework_Provider_RepositoryD+, YZend_Tool_Framework_Provider_ExceptionD*+ WZend_Tool_Framework_Provider_AbstractD&* OZend_Tool_Framework_Metadata_ToolD)) UZend_Tool_Framework_Metadata_DynamicD'( QZend_Tool_Framework_Metadata_BasicD,' [Zend_Tool_Framework_Manifest_RepositoryD+& YZend_Tool_Framework_Manifest_ExceptionD1% eZend_Tool_Framework_Loader_IncludePathLoaderDJ$ Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIteratorD+# YZend_Tool_Framework_Loader_BasicLoaderD(" SZend_Tool_Framework_Loader_AbstractD"! GZend_Tool_Framework_ExceptionD'  QZend_Tool_Framework_Client_StorageD1 eZend_Tool_Framework_Client_Storage_DirectoryD( SZend_Tool_Framework_Client_ResponseDD 	Zend_Tool_Framework_Client_Response_ContentDecorator_SeparatorD' QZend_Tool_Framework_Client_RequestD( SZend_Tool_Framework_Client_ManifestD9 uZend_Tool_Framework_Client_Interactive_InputResponseD8 sZend_Tool_Framework_Client_Interactive_InputRequestD8 sZend_Tool_Framework_Client_Interactive_InputHandlerD) UZend_Tool_Framework_Client_ExceptionD' QZend_Tool_Framework_Client_ConsoleDD 	Zend_Tool_Framework_Client_Console_ResponseDecorator_IndentionDD 	Zend_Tool_Framework_Client_Console_ResponseDecorator_ColorizerDC Zend_Tool_Framework_Client_Console_ResponseDecorator_BlockizeDF Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenterD0 cZend_Tool_Framework_Client_Console_ManifestD2 gZend_Tool_Framework_Client_Console_HelpSystemD6 oZend_Tool_Framework_Client_Console_ArgumentParserD& OZend_Tool_Framework_Client_ConfigD( SZend_Tool_Framework_Client_AbstractD* WZend_Tool_Framework_Action_RepositoryD) UZend_Tool_Framework_Action_ExceptionD   M  X"V wBSO


B
			Q	n)GRf;f9c:_7`=                    " =Zend_Translate_ExceptionD! 9Zend_Translate_AdapterD!  EZend_Translate_Adapter_XmlTmD! EZend_Translate_Adapter_XliffD AZend_Translate_Adapter_TmxD AZend_Translate_Adapter_TbxD ?Zend_Translate_Adapter_QtD AZend_Translate_Adapter_IniD# IZend_Translate_Adapter_GettextD AZend_Translate_Adapter_CsvD! EZend_Translate_Adapter_ArrayD$ KZend_Tool_Project_Provider_ViewD$ KZend_Tool_Project_Provider_TestD/ aZend_Tool_Project_Provider_ProjectProviderD' QZend_Tool_Project_Provider_ProjectD' QZend_Tool_Project_Provider_ProfileD& OZend_Tool_Project_Provider_ModuleD% MZend_Tool_Project_Provider_ModelD( SZend_Tool_Project_Provider_ManifestD& OZend_Tool_Project_Provider_LayoutD$ KZend_Tool_Project_Provider_FormD) UZend_Tool_Project_Provider_ExceptionD' QZend_Tool_Project_Provider_DbTableD) UZend_Tool_Project_Provider_DbAdapterD*
 WZend_Tool_Project_Provider_ControllerD+	 YZend_Tool_Project_Provider_ApplicationD& OZend_Tool_Project_Provider_ActionD( SZend_Tool_Project_Provider_AbstractD ?Zend_Tool_Project_ProfileD' QZend_Tool_Project_Profile_ResourceD9 uZend_Tool_Project_Profile_Resource_SearchConstraintsD1 eZend_Tool_Project_Profile_Resource_ContainerD= }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilterD5 mZend_Tool_Project_Profile_Iterator_ContextFilterD-  ]Zend_Tool_Project_Profile_FileParser_XmlD( SZend_Tool_Project_Profile_ExceptionD ~ CZend_Tool_Project_ExceptionD<} {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectoryD0| cZend_Tool_Project_Context_Zf_ViewsDirectoryD6{ oZend_Tool_Project_Context_Zf_ViewScriptsDirectoryD0z cZend_Tool_Project_Context_Zf_ViewScriptFileD6y oZend_Tool_Project_Context_Zf_ViewHelpersDirectoryD6x oZend_Tool_Project_Context_Zf_ViewFiltersDirectoryDAw Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectoryD2v gZend_Tool_Project_Context_Zf_UploadsDirectoryD0u cZend_Tool_Project_Context_Zf_TestsDirectoryD7t qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFileD:s wZend_Tool_Project_Context_Zf_TestPHPUnitBootstrapFileD@r Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectoryD1q eZend_Tool_Project_Context_Zf_TestLibraryFileD6p oZend_Tool_Project_Context_Zf_TestLibraryDirectoryD:o wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFileDBn Zend_Tool_Project_Context_Zf_TestApplicationModulesDirectoryDAm Zend_Tool_Project_Context_Zf_TestApplicationModuleDirectoryD:l wZend_Tool_Project_Context_Zf_TestApplicationDirectoryD@k Zend_Tool_Project_Context_Zf_TestApplicationControllerFileDEj Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectoryD>i Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFileD=h }Zend_Tool_Project_Context_Zf_TestApplicationActionMethodD4g kZend_Tool_Project_Context_Zf_TemporaryDirectoryD3f iZend_Tool_Project_Context_Zf_SessionsDirectoryD8e sZend_Tool_Project_Context_Zf_SearchIndexesDirectoryD<d {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectoryD8c sZend_Tool_Project_Context_Zf_PublicScriptsDirectoryD1b eZend_Tool_Project_Context_Zf_PublicIndexFileD7a qZend_Tool_Project_Context_Zf_PublicImagesDirectoryD1` eZend_Tool_Project_Context_Zf_PublicDirectoryD5_ mZend_Tool_Project_Context_Zf_ProjectProviderFileD2^ gZend_Tool_Project_Context_Zf_ModulesDirectoryD1] eZend_Tool_Project_Context_Zf_ModuleDirectoryD1\ eZend_Tool_Project_Context_Zf_ModelsDirectoryD+[ YZend_Tool_Project_Context_Zf_ModelFileD/Z aZend_Tool_Project_Context_Zf_LogsDirectoryD2Y gZend_Tool_Project_Context_Zf_LocalesDirectoryD2X gZend_Tool_Project_Context_Zf_LibraryDirectoryD2W gZend_Tool_Project_Context_Zf_LayoutsDirectoryD8V sZend_Tool_Project_Context_Zf_LayoutScriptsDirectoryD   q jN2b=b?W4vS0




u
Z
8
					i	H	e@mM+tT6oF nR0hF(sO,	sP,                                CZend_View_Helper_FormSubmitD  CZend_View_Helper_FormSelectD AZend_View_Helper_FormResetD AZend_View_Helper_FormRadioD" GZend_View_Helper_FormPasswordD ?Zend_View_Helper_FormNoteD' QZend_View_Helper_FormMultiCheckboxD AZend_View_Helper_FormLabelD AZend_View_Helper_FormImageD 
 CZend_View_Helper_FormHiddenD	 ?Zend_View_Helper_FormFileD  CZend_View_Helper_FormErrorsD! EZend_View_Helper_FormElementD" GZend_View_Helper_FormCheckboxD  CZend_View_Helper_FormButtonD 7Zend_View_Helper_FormD ?Zend_View_Helper_FieldsetD =Zend_View_Helper_DoctypeD! EZend_View_Helper_DeclareVarsD  9Zend_View_Helper_CycleD ?Zend_View_Helper_CurrencyD~ =Zend_View_Helper_BaseUrlD} ;Zend_View_Helper_ActionD| ?Zend_View_Helper_AbstractD{ 3Zend_View_ExceptionDz 1Zend_View_AbstractDy %Zend_VersionDx 'Zend_ValidateDw AZend_Validate_StringLengthD#v IZend_Validate_Sitemap_PriorityDu ?Zend_Validate_Sitemap_LocD"t GZend_Validate_Sitemap_LastmodD%s MZend_Validate_Sitemap_ChangefreqDr 3Zend_Validate_RegexDq 9Zend_Validate_PostCodeDp 9Zend_Validate_NotEmptyDo 9Zend_Validate_LessThanDn 1Zend_Validate_IsbnDm -Zend_Validate_IpDl /Zend_Validate_IntDk 7Zend_Validate_InArrayDj ;Zend_Validate_IdenticalDi 1Zend_Validate_IbanDh 9Zend_Validate_HostnameDg /Zend_Validate_HexDf ?Zend_Validate_GreaterThanDe 3Zend_Validate_FloatD!d EZend_Validate_File_WordCountDc ?Zend_Validate_File_UploadDb ;Zend_Validate_File_SizeDa ;Zend_Validate_File_Sha1D!` EZend_Validate_File_NotExistsD _ CZend_Validate_File_MimeTypeD^ 9Zend_Validate_File_Md5D] AZend_Validate_File_IsImageD$\ KZend_Validate_File_IsCompressedD![ EZend_Validate_File_ImageSizeDZ ;Zend_Validate_File_HashD!Y EZend_Validate_File_FilesSizeD!X EZend_Validate_File_ExtensionDW ?Zend_Validate_File_ExistsD'V QZend_Validate_File_ExcludeMimeTypeD(U SZend_Validate_File_ExcludeExtensionDT =Zend_Validate_File_Crc32DS =Zend_Validate_File_CountDR ;Zend_Validate_ExceptionDQ AZend_Validate_EmailAddressDP 5Zend_Validate_DigitsD"O GZend_Validate_Db_RecordExistsD$N KZend_Validate_Db_NoRecordExistsDM ?Zend_Validate_Db_AbstractDL 1Zend_Validate_DateDK =Zend_Validate_CreditCardDJ 3Zend_Validate_CcnumDI 9Zend_Validate_CallbackDH 7Zend_Validate_BetweenDG 7Zend_Validate_BarcodeDF AZend_Validate_Barcode_UpceDE AZend_Validate_Barcode_UpcaDD AZend_Validate_Barcode_SsccD$C KZend_Validate_Barcode_RoyalmailD"B GZend_Validate_Barcode_PostnetD!A EZend_Validate_Barcode_PlanetD#@ IZend_Validate_Barcode_LeitcodeD ? CZend_Validate_Barcode_Itf14D> AZend_Validate_Barcode_IssnD*= WZend_Validate_Barcode_IntelligentMailD$< KZend_Validate_Barcode_IdentcodeD!; EZend_Validate_Barcode_Gtin14D!: EZend_Validate_Barcode_Gtin13D!9 EZend_Validate_Barcode_Gtin12D8 AZend_Validate_Barcode_Ean8D7 AZend_Validate_Barcode_Ean5D6 AZend_Validate_Barcode_Ean2D 5 CZend_Validate_Barcode_Ean18D 4 CZend_Validate_Barcode_Ean14D 3 CZend_Validate_Barcode_Ean13D 2 CZend_Validate_Barcode_Ean12D$1 KZend_Validate_Barcode_Code93extD!0 EZend_Validate_Barcode_Code93D$/ KZend_Validate_Barcode_Code39extD!. EZend_Validate_Barcode_Code39D,- [Zend_Validate_Barcode_Code25interleavedD!, EZend_Validate_Barcode_Code25D*+ WZend_Validate_Barcode_AdapterAbstractD* 3Zend_Validate_AlphaD) 3Zend_Validate_AlnumD( 9Zend_Validate_AbstractD' Zend_UriD& 'Zend_Uri_HttpD% 1Zend_Uri_ExceptionD$ )Zend_TranslateD# 7Zend_Translate_PluralD   j  tR.~Z8}J |Q0`1



y
V
5
					}	]	0`7y_5~\?{Z5dF%kL6%	mDb5	       #} IZend_Amf_Parse_Resource_StreamE(| SZend_Amf_Parse_Resource_MysqlResultE){ UZend_Amf_Parse_Resource_MysqliResultE z CZend_Amf_Parse_OutputStreamEy AZend_Amf_Parse_InputStreamE x CZend_Amf_Parse_DeserializerE#w IZend_Amf_Parse_Amf3_SerializerE%v MZend_Amf_Parse_Amf3_DeserializerE#u IZend_Amf_Parse_Amf0_SerializerE%t MZend_Amf_Parse_Amf0_DeserializerEs 1Zend_Amf_ExceptionEr 1Zend_Amf_ConstantsEq 9Zend_Amf_Auth_AbstractE p CZend_Amf_Adobe_IntrospectorEo AZend_Amf_Adobe_DbInspectorEn 3Zend_Amf_Adobe_AuthEm Zend_AclEl 'Zend_Acl_RoleEk 9Zend_Acl_Role_RegistryE%j MZend_Acl_Role_Registry_ExceptionEi /Zend_Acl_ResourceEh 1Zend_Acl_ExceptionEg /Zend_XmlRpc_ValueDf =Zend_XmlRpc_Value_StructDe =Zend_XmlRpc_Value_StringDd =Zend_XmlRpc_Value_ScalarDc 7Zend_XmlRpc_Value_NilDb ?Zend_XmlRpc_Value_IntegerD a CZend_XmlRpc_Value_ExceptionD` =Zend_XmlRpc_Value_DoubleD_ AZend_XmlRpc_Value_DateTimeD!^ EZend_XmlRpc_Value_CollectionD] ?Zend_XmlRpc_Value_BooleanD!\ EZend_XmlRpc_Value_BigIntegerD[ =Zend_XmlRpc_Value_Base64DZ ;Zend_XmlRpc_Value_ArrayDY 1Zend_XmlRpc_ServerDX ?Zend_XmlRpc_Server_SystemDW =Zend_XmlRpc_Server_FaultD!V EZend_XmlRpc_Server_ExceptionDU =Zend_XmlRpc_Server_CacheDT 5Zend_XmlRpc_ResponseDS ?Zend_XmlRpc_Response_HttpDR 3Zend_XmlRpc_RequestDQ ?Zend_XmlRpc_Request_StdinDP =Zend_XmlRpc_Request_HttpD$O KZend_XmlRpc_Generator_XmlWriterD,N [Zend_XmlRpc_Generator_GeneratorAbstractD&M OZend_XmlRpc_Generator_DomDocumentDL /Zend_XmlRpc_FaultDK 7Zend_XmlRpc_ExceptionDJ 1Zend_XmlRpc_ClientD#I IZend_XmlRpc_Client_ServerProxyD+H YZend_XmlRpc_Client_ServerIntrospectionD+G YZend_XmlRpc_Client_IntrospectExceptionD%F MZend_XmlRpc_Client_HttpExceptionD&E OZend_XmlRpc_Client_FaultExceptionD!D EZend_XmlRpc_Client_ExceptionD&C OZend_Wildfire_Protocol_JsonStreamD!B EZend_Wildfire_Plugin_FirePhpD.A _Zend_Wildfire_Plugin_FirePhp_TableMessageD)@ UZend_Wildfire_Plugin_FirePhp_MessageD? ;Zend_Wildfire_ExceptionD&> OZend_Wildfire_Channel_HttpHeadersD= Zend_ViewD< -Zend_View_StreamD; AZend_View_Helper_UserAgentD: 5Zend_View_Helper_UrlD9 AZend_View_Helper_TranslateD8 =Zend_View_Helper_TinySrcD7 AZend_View_Helper_ServerUrlD)6 UZend_View_Helper_RenderToPlaceholderD!5 EZend_View_Helper_PlaceholderD*4 WZend_View_Helper_Placeholder_RegistryD43 kZend_View_Helper_Placeholder_Registry_ExceptionD+2 YZend_View_Helper_Placeholder_ContainerD61 oZend_View_Helper_Placeholder_Container_StandaloneD50 mZend_View_Helper_Placeholder_Container_ExceptionD4/ kZend_View_Helper_Placeholder_Container_AbstractD!. EZend_View_Helper_PartialLoopD- =Zend_View_Helper_PartialD', QZend_View_Helper_Partial_ExceptionD'+ QZend_View_Helper_PaginationControlD * CZend_View_Helper_NavigationD() SZend_View_Helper_Navigation_SitemapD%( MZend_View_Helper_Navigation_MenuD&' OZend_View_Helper_Navigation_LinksD/& aZend_View_Helper_Navigation_HelperAbstractD,% [Zend_View_Helper_Navigation_BreadcrumbsD$ ;Zend_View_Helper_LayoutD# 7Zend_View_Helper_JsonD"" GZend_View_Helper_InlineScriptD#! IZend_View_Helper_HtmlQuicktimeD  ?Zend_View_Helper_HtmlPageD  CZend_View_Helper_HtmlObjectD ?Zend_View_Helper_HtmlListD AZend_View_Helper_HtmlFlashD! EZend_View_Helper_HtmlElementD AZend_View_Helper_HeadTitleD AZend_View_Helper_HeadStyleD  CZend_View_Helper_HeadScriptD ?Zend_View_Helper_HeadMetaD ?Zend_View_Helper_HeadLinkD ?Zend_View_Helper_GravatarD" GZend_View_Helper_FormTextareaD ?Zend_View_Helper_FormTextD   Y  ~RM~Ma/V7




b
?
 				_	<	T-Z.W0
uP3jHz@~ScB!   8 =Zend_Mail_Part_InterfaceE 7 CZend_Mail_Message_InterfaceE!6 EZend_Log_Formatter_InterfaceE5 ?Zend_Log_Filter_InterfaceE4 ?Zend_Log_FactoryInterfaceE'3 QZend_Loader_PluginLoader_InterfaceE%2 MZend_Loader_Autoloader_InterfaceE01 cZend_Ldap_Node_Schema_ObjectClass_InterfaceE20 gZend_Ldap_Node_Schema_AttributeType_InterfaceE3/ iZend_InfoCard_Xml_Security_Transform_InterfaceE(. SZend_InfoCard_Xml_KeyInfo_InterfaceE(- SZend_InfoCard_Xml_Element_InterfaceE*, WZend_InfoCard_Xml_Assertion_InterfaceE-+ ]Zend_InfoCard_Cipher_Symmetric_InterfaceE7* qZend_InfoCard_Cipher_Symmetric_Aes256cbc_InterfaceE7) qZend_InfoCard_Cipher_Symmetric_Aes128cbc_InterfaceE+( YZend_InfoCard_Cipher_Pki_Rsa_InterfaceE'' QZend_InfoCard_Cipher_Pki_InterfaceE$& KZend_InfoCard_Adapter_InterfaceE % CZend_Http_UserAgent_StorageE)$ UZend_Http_UserAgent_Features_AdapterE# AZend_Http_UserAgent_DeviceE$" KZend_Http_Client_Adapter_StreamE'! QZend_Http_Client_Adapter_InterfaceE  AZend_Gdata_App_MediaSourceE. _Zend_Form_Decorator_Marker_File_InterfaceE" GZend_Form_Decorator_InterfaceE 7Zend_Filter_InterfaceE" GZend_Filter_Encrypt_InterfaceE+ YZend_Filter_Compress_CompressInterfaceE0 cZend_Feed_Writer_Renderer_RendererInterfaceE1 eZend_Feed_Writer_Extension_RendererInterfaceE# IZend_Feed_Reader_FeedInterfaceE$ KZend_Feed_Reader_EntryInterfaceE7 qZend_Feed_Pubsubhubbub_Model_SubscriptionInterfaceE- ]Zend_Feed_Pubsubhubbub_CallbackInterfaceE  CZend_Feed_Builder_InterfaceE  CZend_Db_Statement_InterfaceE$ KZend_Currency_CurrencyInterfaceE) UZend_Crypt_Math_BigInteger_InterfaceE+ YZend_Controller_Router_Route_InterfaceE% MZend_Controller_Router_InterfaceE) UZend_Controller_Dispatcher_InterfaceE% MZend_Controller_Action_InterfaceE& OZend_Cloud_StorageService_AdapterE$ KZend_Cloud_QueueService_AdapterE,
 [Zend_Cloud_DocumentService_QueryAdapterE'	 QZend_Cloud_DocumentService_AdapterE 5Zend_Captcha_AdapterE! EZend_Cache_Backend_InterfaceE) UZend_Cache_Backend_ExtendedInterfaceE  CZend_Auth_Storage_InterfaceE  CZend_Auth_Adapter_InterfaceE. _Zend_Auth_Adapter_Http_Resolver_InterfaceE' QZend_Application_Resource_ResourceE4 kZend_Application_Bootstrap_ResourceBootstrapperE,  [Zend_Application_Bootstrap_BootstrapperE ;Zend_Acl_Role_InterfaceE ~ CZend_Acl_Resource_InterfaceE} ?Zend_Acl_Assert_InterfaceE#| IZend_Wildfire_Plugin_InterfaceD${ KZend_Wildfire_Channel_InterfaceDz 3Zend_View_InterfaceD'y QZend_View_Helper_Navigation_HelperDx AZend_View_Helper_InterfaceDw ;Zend_Validate_InterfaceD+v YZend_Validate_Barcode_AdapterInterfaceD3u iZend_Tool_Project_Profile_FileParser_InterfaceD:t wZend_Tool_Project_Context_System_TopLevelRestrictableD5s mZend_Tool_Project_Context_System_NotOverwritableD/r aZend_Tool_Project_Context_System_InterfaceD(q SZend_Tool_Project_Context_InterfaceD+p YZend_Tool_Framework_Registry_InterfaceD2o gZend_Tool_Framework_Registry_EnabledInterfaceD-n ]Zend_Tool_Framework_Provider_PretendableD+m YZend_Tool_Framework_Provider_InterfaceD.l _Zend_Tool_Framework_Provider_InteractableD/k aZend_Tool_Framework_Provider_InitializableD;j yZend_Tool_Framework_Provider_DocblockManifestInterfaceD+i YZend_Tool_Framework_Metadata_InterfaceD.h _Zend_Tool_Framework_Metadata_AttributableD6g oZend_Tool_Framework_Manifest_ProviderManifestableD6f oZend_Tool_Framework_Manifest_MetadataManifestableD+e YZend_Tool_Framework_Manifest_InterfaceD+d YZend_Tool_Framework_Manifest_IndexableD4c kZend_Tool_Framework_Manifest_ActionManifestableD)b UZend_Tool_Framework_Loader_InterfaceD8a sZend_Tool_Framework_Client_Storage_AdapterInterfaceDD` 	Zend_Tool_Framework_Client_Response_ContentDecorator_InterfaceD   h  fL*U!d3_4
c1



h
>
				_	3	Z-vR*b?rL*mL+lW8bBX2            e 5Zend_Cache_ExceptionEd +Zend_Cache_CoreEc 1Zend_Cache_BackendE"b GZend_Cache_Backend_ZendServerE(a SZend_Cache_Backend_ZendServer_ShMemE'` QZend_Cache_Backend_ZendServer_DiskE$_ KZend_Cache_Backend_ZendPlatformE^ ?Zend_Cache_Backend_XcacheE ] CZend_Cache_Backend_WinCacheE!\ EZend_Cache_Backend_TwoLevelsE[ ;Zend_Cache_Backend_TestEZ ?Zend_Cache_Backend_StaticEY ?Zend_Cache_Backend_SqliteE!X EZend_Cache_Backend_MemcachedE$W KZend_Cache_Backend_LibmemcachedEV ;Zend_Cache_Backend_FileE!U EZend_Cache_Backend_BlackHoleET 9Zend_Cache_Backend_ApcES %Zend_BarcodeER ?Zend_Barcode_Renderer_SvgE+Q YZend_Barcode_Renderer_RendererAbstractEP ?Zend_Barcode_Renderer_PdfE O CZend_Barcode_Renderer_ImageE$N KZend_Barcode_Renderer_ExceptionEM =Zend_Barcode_Object_UpceEL =Zend_Barcode_Object_UpcaE"K GZend_Barcode_Object_RoyalmailE J CZend_Barcode_Object_PostnetEI AZend_Barcode_Object_PlanetE'H QZend_Barcode_Object_ObjectAbstractE!G EZend_Barcode_Object_LeitcodeEF ?Zend_Barcode_Object_Itf14E"E GZend_Barcode_Object_IdentcodeE"D GZend_Barcode_Object_ExceptionEC ?Zend_Barcode_Object_ErrorEB =Zend_Barcode_Object_Ean8EA =Zend_Barcode_Object_Ean5E@ =Zend_Barcode_Object_Ean2E? ?Zend_Barcode_Object_Ean13E> AZend_Barcode_Object_Code39E*= WZend_Barcode_Object_Code25interleavedE< AZend_Barcode_Object_Code25E ; CZend_Barcode_Object_Code128E: 9Zend_Barcode_ExceptionE9 Zend_AuthE8 ?Zend_Auth_Storage_SessionE$7 KZend_Auth_Storage_NonPersistentE 6 CZend_Auth_Storage_ExceptionE5 -Zend_Auth_ResultE4 3Zend_Auth_ExceptionE3 =Zend_Auth_Adapter_OpenIdE2 9Zend_Auth_Adapter_LdapE1 AZend_Auth_Adapter_InfoCardE0 9Zend_Auth_Adapter_HttpE)/ UZend_Auth_Adapter_Http_Resolver_FileE.. _Zend_Auth_Adapter_Http_Resolver_ExceptionE - CZend_Auth_Adapter_ExceptionE, =Zend_Auth_Adapter_DigestE+ ?Zend_Auth_Adapter_DbTableE* -Zend_ApplicationE#) IZend_Application_Resource_ViewE(( SZend_Application_Resource_UserAgentE(' SZend_Application_Resource_TranslateE&& OZend_Application_Resource_SessionE%% MZend_Application_Resource_RouterE/$ aZend_Application_Resource_ResourceAbstractE)# UZend_Application_Resource_NavigationE&" OZend_Application_Resource_MultidbE&! OZend_Application_Resource_ModulesE#  IZend_Application_Resource_MailE" GZend_Application_Resource_LogE% MZend_Application_Resource_LocaleE% MZend_Application_Resource_LayoutE. _Zend_Application_Resource_FrontcontrollerE( SZend_Application_Resource_ExceptionE# IZend_Application_Resource_DojoE! EZend_Application_Resource_DbE+ YZend_Application_Resource_CachemanagerE& OZend_Application_Module_BootstrapE' QZend_Application_Module_AutoloaderE AZend_Application_ExceptionE) UZend_Application_Bootstrap_ExceptionE1 eZend_Application_Bootstrap_BootstrapAbstractE) UZend_Application_Bootstrap_BootstrapE ?Zend_Amf_Value_TraitsInfoE- ]Zend_Amf_Value_Messaging_RemotingMessageE* WZend_Amf_Value_Messaging_ErrorMessageE, [Zend_Amf_Value_Messaging_CommandMessageE* WZend_Amf_Value_Messaging_AsyncMessageE- ]Zend_Amf_Value_Messaging_ArrayCollectionE0 cZend_Amf_Value_Messaging_AcknowledgeMessageE-
 ]Zend_Amf_Value_Messaging_AbstractMessageE!	 EZend_Amf_Value_MessageHeaderE AZend_Amf_Value_MessageBodyE =Zend_Amf_Value_ByteArrayE AZend_Amf_Util_BinaryStreamE +Zend_Amf_ServerE ?Zend_Amf_Server_ExceptionE /Zend_Amf_ResponseE 9Zend_Amf_Response_HttpE -Zend_Amf_RequestE  7Zend_Amf_Request_HttpE ?Zend_Amf_Parse_TypeLoaderE~ ?Zend_Amf_Parse_SerializerE   ^  tQ0xY?s5uJ!n9



b
-				j	@	R pLh3sT4oS*[$O$\0                                  (C SZend_Controller_Dispatcher_AbstractEB 9Zend_Controller_ActionE(A SZend_Controller_Action_HelperBrokerE6@ oZend_Controller_Action_HelperBroker_PriorityStackE/? aZend_Controller_Action_Helper_ViewRendererE&> OZend_Controller_Action_Helper_UrlE-= ]Zend_Controller_Action_Helper_RedirectorE'< QZend_Controller_Action_Helper_JsonE1; eZend_Controller_Action_Helper_FlashMessengerE0: cZend_Controller_Action_Helper_ContextSwitchE(9 SZend_Controller_Action_Helper_CacheE<8 {Zend_Controller_Action_Helper_AutoCompleteScriptaculousE37 iZend_Controller_Action_Helper_AutoCompleteDojoE86 sZend_Controller_Action_Helper_AutoComplete_AbstractE.5 _Zend_Controller_Action_Helper_AjaxContextE.4 _Zend_Controller_Action_Helper_ActionStackE+3 YZend_Controller_Action_Helper_AbstractE%2 MZend_Controller_Action_ExceptionE1 3Zend_Console_GetoptE"0 GZend_Console_Getopt_ExceptionE/ #Zend_ConfigE. -Zend_Config_YamlE- +Zend_Config_XmlE, 1Zend_Config_WriterE+ ;Zend_Config_Writer_YamlE* 9Zend_Config_Writer_XmlE) ;Zend_Config_Writer_JsonE( 9Zend_Config_Writer_IniE$' KZend_Config_Writer_FileAbstractE& =Zend_Config_Writer_ArrayE% -Zend_Config_JsonE$ +Zend_Config_IniE# 7Zend_Config_ExceptionE$" KZend_CodeGenerator_Php_PropertyE1! eZend_CodeGenerator_Php_Property_DefaultValueE%  MZend_CodeGenerator_Php_ParameterE2 gZend_CodeGenerator_Php_Parameter_DefaultValueE" GZend_CodeGenerator_Php_MethodE, [Zend_CodeGenerator_Php_Member_ContainerE+ YZend_CodeGenerator_Php_Member_AbstractE  CZend_CodeGenerator_Php_FileE% MZend_CodeGenerator_Php_ExceptionE$ KZend_CodeGenerator_Php_DocblockE( SZend_CodeGenerator_Php_Docblock_TagE/ aZend_CodeGenerator_Php_Docblock_Tag_ReturnE. _Zend_CodeGenerator_Php_Docblock_Tag_ParamE0 cZend_CodeGenerator_Php_Docblock_Tag_LicenseE! EZend_CodeGenerator_Php_ClassE  CZend_CodeGenerator_Php_BodyE$ KZend_CodeGenerator_Php_AbstractE! EZend_CodeGenerator_ExceptionE  CZend_CodeGenerator_AbstractE& OZend_Cloud_StorageService_FactoryE( SZend_Cloud_StorageService_ExceptionE3 iZend_Cloud_StorageService_Adapter_WindowsAzureE) UZend_Cloud_StorageService_Adapter_S3E/ aZend_Cloud_StorageService_Adapter_NirvanixE1
 eZend_Cloud_StorageService_Adapter_FileSystemE'	 QZend_Cloud_QueueService_MessageSetE$ KZend_Cloud_QueueService_MessageE$ KZend_Cloud_QueueService_FactoryE& OZend_Cloud_QueueService_ExceptionE. _Zend_Cloud_QueueService_Adapter_ZendQueueE1 eZend_Cloud_QueueService_Adapter_WindowsAzureE( SZend_Cloud_QueueService_Adapter_SqsE4 kZend_Cloud_QueueService_Adapter_AbstractAdapterE. _Zend_Cloud_OperationNotAvailableExceptionE  5Zend_Cloud_ExceptionE% MZend_Cloud_DocumentService_QueryE'~ QZend_Cloud_DocumentService_FactoryE)} UZend_Cloud_DocumentService_ExceptionE+| YZend_Cloud_DocumentService_DocumentSetE({ SZend_Cloud_DocumentService_DocumentE4z kZend_Cloud_DocumentService_Adapter_WindowsAzureE:y wZend_Cloud_DocumentService_Adapter_WindowsAzure_QueryE0x cZend_Cloud_DocumentService_Adapter_SimpleDbE6w oZend_Cloud_DocumentService_Adapter_SimpleDb_QueryE7v qZend_Cloud_DocumentService_Adapter_AbstractAdapterEu AZend_Cloud_AbstractFactoryEt /Zend_Captcha_WordEs 9Zend_Captcha_ReCaptchaEr 1Zend_Captcha_ImageEq 3Zend_Captcha_FigletEp 9Zend_Captcha_ExceptionEo /Zend_Captcha_DumbEn /Zend_Captcha_BaseEm !Zend_CacheEl 1Zend_Cache_ManagerEk =Zend_Cache_Frontend_PageEj AZend_Cache_Frontend_OutputE!i EZend_Cache_Frontend_FunctionEh =Zend_Cache_Frontend_FileEg ?Zend_Cache_Frontend_ClassE f CZend_Cache_Frontend_CaptureE   o  g?oExS(\.~R-




`
3
					k	I	.		|jI#tU0dBdE,_>eD*iCeN2                         02 cZend_Dojo_Form_Decorator_AccordionContainerE1 3Zend_Dojo_ExceptionE0 )Zend_Dojo_DataE/ 5Zend_Dojo_BuildLayerE. !Zend_DebugE- Zend_DbE, 'Zend_Db_TableE+ 5Zend_Db_Table_SelectE#* IZend_Db_Table_Select_ExceptionE) 5Zend_Db_Table_RowsetE#( IZend_Db_Table_Rowset_ExceptionE"' GZend_Db_Table_Rowset_AbstractE& /Zend_Db_Table_RowE % CZend_Db_Table_Row_ExceptionE$ AZend_Db_Table_Row_AbstractE# ;Zend_Db_Table_ExceptionE" =Zend_Db_Table_DefinitionE! 9Zend_Db_Table_AbstractE  /Zend_Db_StatementE =Zend_Db_Statement_SqlsrvE' QZend_Db_Statement_Sqlsrv_ExceptionE 7Zend_Db_Statement_PdoE ?Zend_Db_Statement_Pdo_OciE ?Zend_Db_Statement_Pdo_IbmE =Zend_Db_Statement_OracleE' QZend_Db_Statement_Oracle_ExceptionE =Zend_Db_Statement_MysqliE' QZend_Db_Statement_Mysqli_ExceptionE  CZend_Db_Statement_ExceptionE 7Zend_Db_Statement_Db2E$ KZend_Db_Statement_Db2_ExceptionE )Zend_Db_SelectE =Zend_Db_Select_ExceptionE -Zend_Db_ProfilerE 9Zend_Db_Profiler_QueryE =Zend_Db_Profiler_FirebugE AZend_Db_Profiler_ExceptionE %Zend_Db_ExprE /Zend_Db_ExceptionE 9Zend_Db_Adapter_SqlsrvE%
 MZend_Db_Adapter_Sqlsrv_ExceptionE	 AZend_Db_Adapter_Pdo_SqliteE ?Zend_Db_Adapter_Pdo_PgsqlE ;Zend_Db_Adapter_Pdo_OciE ?Zend_Db_Adapter_Pdo_MysqlE ?Zend_Db_Adapter_Pdo_MssqlE ;Zend_Db_Adapter_Pdo_IbmE  CZend_Db_Adapter_Pdo_Ibm_IdsE  CZend_Db_Adapter_Pdo_Ibm_Db2E! EZend_Db_Adapter_Pdo_AbstractE  9Zend_Db_Adapter_OracleE% MZend_Db_Adapter_Oracle_ExceptionE~ 9Zend_Db_Adapter_MysqliE%} MZend_Db_Adapter_Mysqli_ExceptionE| ?Zend_Db_Adapter_ExceptionE{ 3Zend_Db_Adapter_Db2E"z GZend_Db_Adapter_Db2_ExceptionEy =Zend_Db_Adapter_AbstractEx Zend_DateEw 3Zend_Date_ExceptionEv 5Zend_Date_DateObjectEu -Zend_Date_CitiesEt 'Zend_CurrencyEs ;Zend_Currency_ExceptionEr !Zend_CryptEq )Zend_Crypt_RsaEp 1Zend_Crypt_Rsa_KeyEo ?Zend_Crypt_Rsa_Key_PublicEn AZend_Crypt_Rsa_Key_PrivateEm =Zend_Crypt_Rsa_ExceptionEl +Zend_Crypt_MathEk ?Zend_Crypt_Math_ExceptionEj AZend_Crypt_Math_BigIntegerE#i IZend_Crypt_Math_BigInteger_GmpE)h UZend_Crypt_Math_BigInteger_ExceptionE&g OZend_Crypt_Math_BigInteger_BcmathEf +Zend_Crypt_HmacEe ?Zend_Crypt_Hmac_ExceptionEd 5Zend_Crypt_ExceptionEc =Zend_Crypt_DiffieHellmanE'b QZend_Crypt_DiffieHellman_ExceptionE!a EZend_Controller_Router_RouteE(` SZend_Controller_Router_Route_StaticE'_ QZend_Controller_Router_Route_RegexE(^ SZend_Controller_Router_Route_ModuleE*] WZend_Controller_Router_Route_HostnameE'\ QZend_Controller_Router_Route_ChainE*[ WZend_Controller_Router_Route_AbstractE#Z IZend_Controller_Router_RewriteE%Y MZend_Controller_Router_ExceptionE$X KZend_Controller_Router_AbstractE*W WZend_Controller_Response_HttpTestCaseE"V GZend_Controller_Response_HttpE'U QZend_Controller_Response_ExceptionE!T EZend_Controller_Response_CliE&S OZend_Controller_Response_AbstractE#R IZend_Controller_Request_SimpleE)Q UZend_Controller_Request_HttpTestCaseE!P EZend_Controller_Request_HttpE&O OZend_Controller_Request_ExceptionE&N OZend_Controller_Request_Apache404E%M MZend_Controller_Request_AbstractE&L OZend_Controller_Plugin_PutHandlerE(K SZend_Controller_Plugin_ErrorHandlerE"J GZend_Controller_Plugin_BrokerE'I QZend_Controller_Plugin_ActionStackE$H KZend_Controller_Plugin_AbstractEG 7Zend_Controller_FrontEF ?Zend_Controller_ExceptionE(E SZend_Controller_Dispatcher_StandardE)D UZend_Controller_Dispatcher_ExceptionE   a  sC\8hCg:`8



h
Q
0					Y	2	b5o@c>gAlN7 aG-^2qG(        ) UZend_Feed_Reader_Collection_CategoryE' QZend_Feed_Reader_Collection_AuthorE 9Zend_Feed_PubsubhubbubE& OZend_Feed_Pubsubhubbub_SubscriberE/ aZend_Feed_Pubsubhubbub_Subscriber_CallbackE% MZend_Feed_Pubsubhubbub_PublisherE. _Zend_Feed_Pubsubhubbub_Model_SubscriptionE/ aZend_Feed_Pubsubhubbub_Model_ModelAbstractE( SZend_Feed_Pubsubhubbub_HttpResponseE%
 MZend_Feed_Pubsubhubbub_ExceptionE,	 [Zend_Feed_Pubsubhubbub_CallbackAbstractE 3Zend_Feed_ExceptionE 3Zend_Feed_Entry_RssE 5Zend_Feed_Entry_AtomE =Zend_Feed_Entry_AbstractE /Zend_Feed_ElementE /Zend_Feed_BuilderE =Zend_Feed_Builder_HeaderE$ KZend_Feed_Builder_Header_ItunesE   CZend_Feed_Builder_ExceptionE ;Zend_Feed_Builder_EntryE~ )Zend_Feed_AtomE} 1Zend_Feed_AbstractE| )Zend_ExceptionE{ )Zend_Dom_QueryEz 7Zend_Dom_Query_ResultEy =Zend_Dom_Query_Css2XpathEx 1Zend_Dom_ExceptionEw Zend_DojoE)v UZend_Dojo_View_Helper_VerticalSliderE,u [Zend_Dojo_View_Helper_ValidationTextBoxE&t OZend_Dojo_View_Helper_TimeTextBoxE"s GZend_Dojo_View_Helper_TextBoxE#r IZend_Dojo_View_Helper_TextareaE'q QZend_Dojo_View_Helper_TabContainerE'p QZend_Dojo_View_Helper_SubmitButtonE)o UZend_Dojo_View_Helper_StackContainerE)n UZend_Dojo_View_Helper_SplitContainerE!m EZend_Dojo_View_Helper_SliderE)l UZend_Dojo_View_Helper_SimpleTextareaE&k OZend_Dojo_View_Helper_RadioButtonE*j WZend_Dojo_View_Helper_PasswordTextBoxE(i SZend_Dojo_View_Helper_NumberTextBoxE(h SZend_Dojo_View_Helper_NumberSpinnerE+g YZend_Dojo_View_Helper_HorizontalSliderEf AZend_Dojo_View_Helper_FormE*e WZend_Dojo_View_Helper_FilteringSelectE!d EZend_Dojo_View_Helper_EditorEc AZend_Dojo_View_Helper_DojoE)b UZend_Dojo_View_Helper_Dojo_ContainerE)a UZend_Dojo_View_Helper_DijitContainerE ` CZend_Dojo_View_Helper_DijitE&_ OZend_Dojo_View_Helper_DateTextBoxE&^ OZend_Dojo_View_Helper_CustomDijitE*] WZend_Dojo_View_Helper_CurrencyTextBoxE&\ OZend_Dojo_View_Helper_ContentPaneE#[ IZend_Dojo_View_Helper_ComboBoxE#Z IZend_Dojo_View_Helper_CheckBoxE!Y EZend_Dojo_View_Helper_ButtonE*X WZend_Dojo_View_Helper_BorderContainerE(W SZend_Dojo_View_Helper_AccordionPaneE-V ]Zend_Dojo_View_Helper_AccordionContainerEU =Zend_Dojo_View_ExceptionET )Zend_Dojo_FormES 9Zend_Dojo_Form_SubFormE*R WZend_Dojo_Form_Element_VerticalSliderE-Q ]Zend_Dojo_Form_Element_ValidationTextBoxE'P QZend_Dojo_Form_Element_TimeTextBoxE#O IZend_Dojo_Form_Element_TextBoxE$N KZend_Dojo_Form_Element_TextareaE(M SZend_Dojo_Form_Element_SubmitButtonE"L GZend_Dojo_Form_Element_SliderE*K WZend_Dojo_Form_Element_SimpleTextareaE'J QZend_Dojo_Form_Element_RadioButtonE+I YZend_Dojo_Form_Element_PasswordTextBoxE)H UZend_Dojo_Form_Element_NumberTextBoxE)G UZend_Dojo_Form_Element_NumberSpinnerE,F [Zend_Dojo_Form_Element_HorizontalSliderE+E YZend_Dojo_Form_Element_FilteringSelectE"D GZend_Dojo_Form_Element_EditorE&C OZend_Dojo_Form_Element_DijitMultiE!B EZend_Dojo_Form_Element_DijitE'A QZend_Dojo_Form_Element_DateTextBoxE+@ YZend_Dojo_Form_Element_CurrencyTextBoxE$? KZend_Dojo_Form_Element_ComboBoxE$> KZend_Dojo_Form_Element_CheckBoxE"= GZend_Dojo_Form_Element_ButtonE < CZend_Dojo_Form_DisplayGroupE*; WZend_Dojo_Form_Decorator_TabContainerE,: [Zend_Dojo_Form_Decorator_StackContainerE,9 [Zend_Dojo_Form_Decorator_SplitContainerE'8 QZend_Dojo_Form_Decorator_DijitFormE*7 WZend_Dojo_Form_Decorator_DijitElementE,6 [Zend_Dojo_Form_Decorator_DijitContainerE)5 UZend_Dojo_Form_Decorator_ContentPaneE-4 ]Zend_Dojo_Form_Decorator_BorderContainerE+3 YZend_Dojo_Form_Decorator_AccordionPaneE   a  ^7	r:rA~GxbA"


x
;				g	/Gp7zZA/gJ.`?pL0jI+lO-                                   t 9Zend_Filter_StringTrimEs ?Zend_Filter_StringToUpperEr ?Zend_Filter_StringToLowerEq 5Zend_Filter_RealPathEp ;Zend_Filter_PregReplaceEo -Zend_Filter_NullE&n OZend_Filter_NormalizedToLocalizedE&m OZend_Filter_LocalizedToNormalizedEl +Zend_Filter_IntEk /Zend_Filter_InputEj 7Zend_Filter_InflectorEi =Zend_Filter_HtmlEntitiesEh AZend_Filter_File_UpperCaseEg ;Zend_Filter_File_RenameEf AZend_Filter_File_LowerCaseEe =Zend_Filter_File_EncryptEd =Zend_Filter_File_DecryptEc 7Zend_Filter_ExceptionEb 3Zend_Filter_EncryptE a CZend_Filter_Encrypt_OpensslE` AZend_Filter_Encrypt_McryptE_ +Zend_Filter_DirE^ 1Zend_Filter_DigitsE] 3Zend_Filter_DecryptE\ 9Zend_Filter_DecompressE[ 5Zend_Filter_CompressEZ =Zend_Filter_Compress_ZipEY =Zend_Filter_Compress_TarEX =Zend_Filter_Compress_RarEW =Zend_Filter_Compress_LzfEV ;Zend_Filter_Compress_GzE*U WZend_Filter_Compress_CompressAbstractET =Zend_Filter_Compress_Bz2ES 5Zend_Filter_CallbackER 3Zend_Filter_BooleanEQ 5Zend_Filter_BaseNameEP /Zend_Filter_AlphaEO /Zend_Filter_AlnumEN 1Zend_File_TransferE!M EZend_File_Transfer_ExceptionE$L KZend_File_Transfer_Adapter_HttpE(K SZend_File_Transfer_Adapter_AbstractEJ Zend_FeedEI -Zend_Feed_WriterEH ;Zend_Feed_Writer_SourceE/G aZend_Feed_Writer_Renderer_RendererAbstractE'F QZend_Feed_Writer_Renderer_Feed_RssE(E SZend_Feed_Writer_Renderer_Feed_AtomE/D aZend_Feed_Writer_Renderer_Feed_Atom_SourceE5C mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstractE(B SZend_Feed_Writer_Renderer_Entry_RssE)A UZend_Feed_Writer_Renderer_Entry_AtomE1@ eZend_Feed_Writer_Renderer_Entry_Atom_DeletedE? 7Zend_Feed_Writer_FeedE'> QZend_Feed_Writer_Feed_FeedAbstractE<= {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_EntryE8< sZend_Feed_Writer_Extension_Threading_Renderer_EntryE4; kZend_Feed_Writer_Extension_Slash_Renderer_EntryE0: cZend_Feed_Writer_Extension_RendererAbstractE49 kZend_Feed_Writer_Extension_ITunes_Renderer_FeedE58 mZend_Feed_Writer_Extension_ITunes_Renderer_EntryE+7 YZend_Feed_Writer_Extension_ITunes_FeedE,6 [Zend_Feed_Writer_Extension_ITunes_EntryE85 sZend_Feed_Writer_Extension_DublinCore_Renderer_FeedE94 uZend_Feed_Writer_Extension_DublinCore_Renderer_EntryE63 oZend_Feed_Writer_Extension_Content_Renderer_EntryE22 gZend_Feed_Writer_Extension_Atom_Renderer_FeedE61 oZend_Feed_Writer_Exception_InvalidMethodExceptionE0 9Zend_Feed_Writer_EntryE/ =Zend_Feed_Writer_DeletedE. 'Zend_Feed_RssE- -Zend_Feed_ReaderE, =Zend_Feed_Reader_FeedSetE"+ GZend_Feed_Reader_FeedAbstractE* ?Zend_Feed_Reader_Feed_RssE) AZend_Feed_Reader_Feed_AtomE&( OZend_Feed_Reader_Feed_Atom_SourceE3' iZend_Feed_Reader_Extension_WellFormedWeb_EntryE,& [Zend_Feed_Reader_Extension_Thread_EntryE0% cZend_Feed_Reader_Extension_Syndication_FeedE+$ YZend_Feed_Reader_Extension_Slash_EntryE,# [Zend_Feed_Reader_Extension_Podcast_FeedE-" ]Zend_Feed_Reader_Extension_Podcast_EntryE,! [Zend_Feed_Reader_Extension_FeedAbstractE-  ]Zend_Feed_Reader_Extension_EntryAbstractE/ aZend_Feed_Reader_Extension_DublinCore_FeedE0 cZend_Feed_Reader_Extension_DublinCore_EntryE4 kZend_Feed_Reader_Extension_CreativeCommons_FeedE5 mZend_Feed_Reader_Extension_CreativeCommons_EntryE- ]Zend_Feed_Reader_Extension_Content_EntryE) UZend_Feed_Reader_Extension_Atom_FeedE* WZend_Feed_Reader_Extension_Atom_EntryE# IZend_Feed_Reader_EntryAbstractE AZend_Feed_Reader_Entry_RssE  CZend_Feed_Reader_Entry_AtomE  CZend_Feed_Reader_CollectionE3 iZend_Feed_Reader_Collection_CollectionAbstractE   g  i:d;qL'gAfD"




e
D
"					|	\	<	jI*`2Y/a8vP*]4x\5_=                                     [ 3Zend_Gdata_App_UtilE#Z IZend_Gdata_App_MediaFileSourceEY ?Zend_Gdata_App_MediaEntryE2X gZend_Gdata_App_LoggingHttpClientAdapterSocketEW AZend_Gdata_App_IOExceptionE,V [Zend_Gdata_App_InvalidArgumentExceptionE!U EZend_Gdata_App_HttpExceptionE$T KZend_Gdata_App_FeedSourceParentE#S IZend_Gdata_App_FeedEntryParentER 3Zend_Gdata_App_FeedEQ =Zend_Gdata_App_ExtensionE!P EZend_Gdata_App_Extension_UriE%O MZend_Gdata_App_Extension_UpdatedE#N IZend_Gdata_App_Extension_TitleE"M GZend_Gdata_App_Extension_TextE%L MZend_Gdata_App_Extension_SummaryE&K OZend_Gdata_App_Extension_SubtitleE$J KZend_Gdata_App_Extension_SourceE$I KZend_Gdata_App_Extension_RightsE'H QZend_Gdata_App_Extension_PublishedE$G KZend_Gdata_App_Extension_PersonE"F GZend_Gdata_App_Extension_NameE"E GZend_Gdata_App_Extension_LogoE"D GZend_Gdata_App_Extension_LinkE C CZend_Gdata_App_Extension_IdE"B GZend_Gdata_App_Extension_IconE'A QZend_Gdata_App_Extension_GeneratorE#@ IZend_Gdata_App_Extension_EmailE%? MZend_Gdata_App_Extension_ElementE$> KZend_Gdata_App_Extension_EditedE#= IZend_Gdata_App_Extension_DraftE%< MZend_Gdata_App_Extension_ControlE); UZend_Gdata_App_Extension_ContributorE%: MZend_Gdata_App_Extension_ContentE&9 OZend_Gdata_App_Extension_CategoryE$8 KZend_Gdata_App_Extension_AuthorE7 =Zend_Gdata_App_ExceptionE6 5Zend_Gdata_App_EntryE,5 [Zend_Gdata_App_CaptchaRequiredExceptionE#4 IZend_Gdata_App_BaseMediaSourceE3 3Zend_Gdata_App_BaseE*2 WZend_Gdata_App_BadMethodCallExceptionE!1 EZend_Gdata_App_AuthExceptionE0 Zend_FormE/ /Zend_Form_SubFormE. 3Zend_Form_ExceptionE- /Zend_Form_ElementE, ;Zend_Form_Element_XhtmlE+ AZend_Form_Element_TextareaE* 9Zend_Form_Element_TextE) =Zend_Form_Element_SubmitE( =Zend_Form_Element_SelectE' ;Zend_Form_Element_ResetE& ;Zend_Form_Element_RadioE% AZend_Form_Element_PasswordE"$ GZend_Form_Element_MultiselectE$# KZend_Form_Element_MultiCheckboxE" ;Zend_Form_Element_MultiE! ;Zend_Form_Element_ImageE  =Zend_Form_Element_HiddenE 9Zend_Form_Element_HashE 9Zend_Form_Element_FileE  CZend_Form_Element_ExceptionE AZend_Form_Element_CheckboxE ?Zend_Form_Element_CaptchaE =Zend_Form_Element_ButtonE 9Zend_Form_DisplayGroupE# IZend_Form_Decorator_ViewScriptE# IZend_Form_Decorator_ViewHelperE  CZend_Form_Decorator_TooltipE( SZend_Form_Decorator_PrepareElementsE ?Zend_Form_Decorator_LabelE ?Zend_Form_Decorator_ImageE  CZend_Form_Decorator_HtmlTagE# IZend_Form_Decorator_FormErrorsE% MZend_Form_Decorator_FormElementsE =Zend_Form_Decorator_FormE =Zend_Form_Decorator_FileE! EZend_Form_Decorator_FieldsetE" GZend_Form_Decorator_ExceptionE AZend_Form_Decorator_ErrorsE$
 KZend_Form_Decorator_DtDdWrapperE$	 KZend_Form_Decorator_DescriptionE  CZend_Form_Decorator_CaptchaE% MZend_Form_Decorator_Captcha_WordE! EZend_Form_Decorator_CallbackE! EZend_Form_Decorator_AbstractE #Zend_FilterE+ YZend_Filter_Word_UnderscoreToSeparatorE& OZend_Filter_Word_UnderscoreToDashE+ YZend_Filter_Word_UnderscoreToCamelCaseE*  WZend_Filter_Word_SeparatorToSeparatorE% MZend_Filter_Word_SeparatorToDashE*~ WZend_Filter_Word_SeparatorToCamelCaseE(} SZend_Filter_Word_Separator_AbstractE&| OZend_Filter_Word_DashToUnderscoreE%{ MZend_Filter_Word_DashToSeparatorE%z MZend_Filter_Word_DashToCamelCaseE+y YZend_Filter_Word_CamelCaseToUnderscoreE*x WZend_Filter_Word_CamelCaseToSeparatorE%w MZend_Filter_Word_CamelCaseToDashEv 7Zend_Filter_StripTagsEu ?Zend_Filter_StripNewlinesE   _  }U#h9fA(V)c4



}
S
*
				c	4	o?f>kCjDl:^8cK#sB#         %: MZend_Gdata_Gapps_Extension_LoginE)9 UZend_Gdata_Gapps_Extension_EmailListE8 9Zend_Gdata_Gapps_ErrorE-7 ]Zend_Gdata_Gapps_EmailListRecipientQueryE,6 [Zend_Gdata_Gapps_EmailListRecipientFeedE-5 ]Zend_Gdata_Gapps_EmailListRecipientEntryE$4 KZend_Gdata_Gapps_EmailListQueryE#3 IZend_Gdata_Gapps_EmailListFeedE$2 KZend_Gdata_Gapps_EmailListEntryE1 +Zend_Gdata_FeedE0 5Zend_Gdata_ExtensionE/ =Zend_Gdata_Extension_WhoE. AZend_Gdata_Extension_WhereE- ?Zend_Gdata_Extension_WhenE$, KZend_Gdata_Extension_VisibilityE&+ OZend_Gdata_Extension_TransparencyE"* GZend_Gdata_Extension_ReminderE-) ]Zend_Gdata_Extension_RecurrenceExceptionE$( KZend_Gdata_Extension_RecurrenceE ' CZend_Gdata_Extension_RatingE'& QZend_Gdata_Extension_OriginalEventE0% cZend_Gdata_Extension_OpenSearchTotalResultsE.$ _Zend_Gdata_Extension_OpenSearchStartIndexE0# cZend_Gdata_Extension_OpenSearchItemsPerPageE"" GZend_Gdata_Extension_FeedLinkE*! WZend_Gdata_Extension_ExtendedPropertyE%  MZend_Gdata_Extension_EventStatusE# IZend_Gdata_Extension_EntryLinkE" GZend_Gdata_Extension_CommentsE& OZend_Gdata_Extension_AttendeeTypeE( SZend_Gdata_Extension_AttendeeStatusE +Zend_Gdata_ExifE 5Zend_Gdata_Exif_FeedE# IZend_Gdata_Exif_Extension_TimeE# IZend_Gdata_Exif_Extension_TagsE$ KZend_Gdata_Exif_Extension_ModelE# IZend_Gdata_Exif_Extension_MakeE" GZend_Gdata_Exif_Extension_IsoE, [Zend_Gdata_Exif_Extension_ImageUniqueIdE$ KZend_Gdata_Exif_Extension_FStopE* WZend_Gdata_Exif_Extension_FocalLengthE$ KZend_Gdata_Exif_Extension_FlashE' QZend_Gdata_Exif_Extension_ExposureE' QZend_Gdata_Exif_Extension_DistanceE 7Zend_Gdata_Exif_EntryE -Zend_Gdata_EntryE 7Zend_Gdata_DublinCoreE* WZend_Gdata_DublinCore_Extension_TitleE,
 [Zend_Gdata_DublinCore_Extension_SubjectE+	 YZend_Gdata_DublinCore_Extension_RightsE. _Zend_Gdata_DublinCore_Extension_PublisherE- ]Zend_Gdata_DublinCore_Extension_LanguageE/ aZend_Gdata_DublinCore_Extension_IdentifierE+ YZend_Gdata_DublinCore_Extension_FormatE0 cZend_Gdata_DublinCore_Extension_DescriptionE) UZend_Gdata_DublinCore_Extension_DateE, [Zend_Gdata_DublinCore_Extension_CreatorE +Zend_Gdata_DocsE  7Zend_Gdata_Docs_QueryE% MZend_Gdata_Docs_DocumentListFeedE&~ OZend_Gdata_Docs_DocumentListEntryE} 9Zend_Gdata_ClientLoginE| 3Zend_Gdata_CalendarE!{ EZend_Gdata_Calendar_ListFeedE"z GZend_Gdata_Calendar_ListEntryE-y ]Zend_Gdata_Calendar_Extension_WebContentE+x YZend_Gdata_Calendar_Extension_TimezoneE9w uZend_Gdata_Calendar_Extension_SendEventNotificationsE+v YZend_Gdata_Calendar_Extension_SelectedE+u YZend_Gdata_Calendar_Extension_QuickAddE't QZend_Gdata_Calendar_Extension_LinkE)s UZend_Gdata_Calendar_Extension_HiddenE(r SZend_Gdata_Calendar_Extension_ColorE.q _Zend_Gdata_Calendar_Extension_AccessLevelE#p IZend_Gdata_Calendar_EventQueryE"o GZend_Gdata_Calendar_EventFeedE#n IZend_Gdata_Calendar_EventEntryEm -Zend_Gdata_BooksE!l EZend_Gdata_Books_VolumeQueryE k CZend_Gdata_Books_VolumeFeedE!j EZend_Gdata_Books_VolumeEntryE+i YZend_Gdata_Books_Extension_ViewabilityE-h ]Zend_Gdata_Books_Extension_ThumbnailLinkE&g OZend_Gdata_Books_Extension_ReviewE+f YZend_Gdata_Books_Extension_PreviewLinkE(e SZend_Gdata_Books_Extension_InfoLinkE-d ]Zend_Gdata_Books_Extension_EmbeddabilityE)c UZend_Gdata_Books_Extension_BooksLinkE-b ]Zend_Gdata_Books_Extension_BooksCategoryE.a _Zend_Gdata_Books_Extension_AnnotationLinkE$` KZend_Gdata_Books_CollectionFeedE%_ MZend_Gdata_Books_CollectionEntryE^ 1Zend_Gdata_AuthSubE] )Zend_Gdata_AppE$\ KZend_Gdata_App_VersionExceptionE   a  W3~W1
V3gD"oV9




_
8
					V	(	
g5wFU'	jF!uHd7}F`7	                  * WZend_Gdata_Photos_Extension_TimestampE* WZend_Gdata_Photos_Extension_ThumbnailE% MZend_Gdata_Photos_Extension_SizeE) UZend_Gdata_Photos_Extension_RotationE+ YZend_Gdata_Photos_Extension_QuotaLimitE- ]Zend_Gdata_Photos_Extension_QuotaCurrentE) UZend_Gdata_Photos_Extension_PositionE( SZend_Gdata_Photos_Extension_PhotoIdE3 iZend_Gdata_Photos_Extension_NumPhotosRemainingE* WZend_Gdata_Photos_Extension_NumPhotosE) UZend_Gdata_Photos_Extension_NicknameE% MZend_Gdata_Photos_Extension_NameE2 gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumE) UZend_Gdata_Photos_Extension_LocationE# IZend_Gdata_Photos_Extension_IdE' QZend_Gdata_Photos_Extension_HeightE2 gZend_Gdata_Photos_Extension_CommentingEnabledE-
 ]Zend_Gdata_Photos_Extension_CommentCountE'	 QZend_Gdata_Photos_Extension_ClientE) UZend_Gdata_Photos_Extension_ChecksumE* WZend_Gdata_Photos_Extension_BytesUsedE( SZend_Gdata_Photos_Extension_AlbumIdE' QZend_Gdata_Photos_Extension_AccessE# IZend_Gdata_Photos_CommentEntryE! EZend_Gdata_Photos_AlbumQueryE  CZend_Gdata_Photos_AlbumFeedE! EZend_Gdata_Photos_AlbumEntryE  3Zend_Gdata_MimeFileE ?Zend_Gdata_MimeBodyStringE~ AZend_Gdata_MediaMimeStreamE} -Zend_Gdata_MediaE| 7Zend_Gdata_Media_FeedE*{ WZend_Gdata_Media_Extension_MediaTitleE.z _Zend_Gdata_Media_Extension_MediaThumbnailE)y UZend_Gdata_Media_Extension_MediaTextE0x cZend_Gdata_Media_Extension_MediaRestrictionE+w YZend_Gdata_Media_Extension_MediaRatingE+v YZend_Gdata_Media_Extension_MediaPlayerE-u ]Zend_Gdata_Media_Extension_MediaKeywordsE)t UZend_Gdata_Media_Extension_MediaHashE*s WZend_Gdata_Media_Extension_MediaGroupE0r cZend_Gdata_Media_Extension_MediaDescriptionE+q YZend_Gdata_Media_Extension_MediaCreditE.p _Zend_Gdata_Media_Extension_MediaCopyrightE,o [Zend_Gdata_Media_Extension_MediaContentE-n ]Zend_Gdata_Media_Extension_MediaCategoryEm 9Zend_Gdata_Media_EntryEl AZend_Gdata_Kind_EventEntryEk 7Zend_Gdata_HttpClientE*j WZend_Gdata_HttpAdapterStreamingSocketE)i UZend_Gdata_HttpAdapterStreamingProxyEh /Zend_Gdata_HealthEg ;Zend_Gdata_Health_QueryE&f OZend_Gdata_Health_ProfileListFeedE'e QZend_Gdata_Health_ProfileListEntryE"d GZend_Gdata_Health_ProfileFeedE#c IZend_Gdata_Health_ProfileEntryE$b KZend_Gdata_Health_Extension_CcrEa )Zend_Gdata_GeoE` 3Zend_Gdata_Geo_FeedE$_ KZend_Gdata_Geo_Extension_GmlPosE&^ OZend_Gdata_Geo_Extension_GmlPointE)] UZend_Gdata_Geo_Extension_GeoRssWhereE\ 5Zend_Gdata_Geo_EntryE[ -Zend_Gdata_GbaseE"Z GZend_Gdata_Gbase_SnippetQueryE!Y EZend_Gdata_Gbase_SnippetFeedE"X GZend_Gdata_Gbase_SnippetEntryEW 9Zend_Gdata_Gbase_QueryEV AZend_Gdata_Gbase_ItemQueryEU ?Zend_Gdata_Gbase_ItemFeedET AZend_Gdata_Gbase_ItemEntryES 7Zend_Gdata_Gbase_FeedE-R ]Zend_Gdata_Gbase_Extension_BaseAttributeEQ 9Zend_Gdata_Gbase_EntryEP -Zend_Gdata_GappsEO AZend_Gdata_Gapps_UserQueryEN ?Zend_Gdata_Gapps_UserFeedEM AZend_Gdata_Gapps_UserEntryE&L OZend_Gdata_Gapps_ServiceExceptionEK 9Zend_Gdata_Gapps_QueryE J CZend_Gdata_Gapps_OwnerQueryEI AZend_Gdata_Gapps_OwnerFeedE H CZend_Gdata_Gapps_OwnerEntryE#G IZend_Gdata_Gapps_NicknameQueryE"F GZend_Gdata_Gapps_NicknameFeedE#E IZend_Gdata_Gapps_NicknameEntryE!D EZend_Gdata_Gapps_MemberQueryE C CZend_Gdata_Gapps_MemberFeedE!B EZend_Gdata_Gapps_MemberEntryE A CZend_Gdata_Gapps_GroupQueryE@ AZend_Gdata_Gapps_GroupFeedE ? CZend_Gdata_Gapps_GroupEntryE%> MZend_Gdata_Gapps_Extension_QuotaE(= SZend_Gdata_Gapps_Extension_PropertyE(< SZend_Gdata_Gapps_Extension_NicknameE$; KZend_Gdata_Gapps_Extension_NameE   [  V1~Z@'|Mc9{[2




l
?
				b	1	{Md4O`6yNk>tFnI#                   "v GZend_Http_Client_Adapter_CurlEu !Zend_GdataEt 1Zend_Gdata_YouTubeE"s GZend_Gdata_YouTube_VideoQueryE!r EZend_Gdata_YouTube_VideoFeedE"q GZend_Gdata_YouTube_VideoEntryE(p SZend_Gdata_YouTube_UserProfileEntryE(o SZend_Gdata_YouTube_SubscriptionFeedE)n UZend_Gdata_YouTube_SubscriptionEntryE)m UZend_Gdata_YouTube_PlaylistVideoFeedE*l WZend_Gdata_YouTube_PlaylistVideoEntryE(k SZend_Gdata_YouTube_PlaylistListFeedE)j UZend_Gdata_YouTube_PlaylistListEntryE"i GZend_Gdata_YouTube_MediaEntryE!h EZend_Gdata_YouTube_InboxFeedE"g GZend_Gdata_YouTube_InboxEntryE)f UZend_Gdata_YouTube_Extension_VideoIdE*e WZend_Gdata_YouTube_Extension_UsernameE*d WZend_Gdata_YouTube_Extension_UploadedE'c QZend_Gdata_YouTube_Extension_TokenE(b SZend_Gdata_YouTube_Extension_StatusE,a [Zend_Gdata_YouTube_Extension_StatisticsE'` QZend_Gdata_YouTube_Extension_StateE(_ SZend_Gdata_YouTube_Extension_SchoolE-^ ]Zend_Gdata_YouTube_Extension_ReleaseDateE.] _Zend_Gdata_YouTube_Extension_RelationshipE*\ WZend_Gdata_YouTube_Extension_RecordedE&[ OZend_Gdata_YouTube_Extension_RacyE-Z ]Zend_Gdata_YouTube_Extension_QueryStringE)Y UZend_Gdata_YouTube_Extension_PrivateE*X WZend_Gdata_YouTube_Extension_PositionE/W aZend_Gdata_YouTube_Extension_PlaylistTitleE,V [Zend_Gdata_YouTube_Extension_PlaylistIdE,U [Zend_Gdata_YouTube_Extension_OccupationE)T UZend_Gdata_YouTube_Extension_NoEmbedE'S QZend_Gdata_YouTube_Extension_MusicE(R SZend_Gdata_YouTube_Extension_MoviesE-Q ]Zend_Gdata_YouTube_Extension_MediaRatingE,P [Zend_Gdata_YouTube_Extension_MediaGroupE-O ]Zend_Gdata_YouTube_Extension_MediaCreditE.N _Zend_Gdata_YouTube_Extension_MediaContentE*M WZend_Gdata_YouTube_Extension_LocationE&L OZend_Gdata_YouTube_Extension_LinkE*K WZend_Gdata_YouTube_Extension_LastNameE*J WZend_Gdata_YouTube_Extension_HometownE)I UZend_Gdata_YouTube_Extension_HobbiesE(H SZend_Gdata_YouTube_Extension_GenderE+G YZend_Gdata_YouTube_Extension_FirstNameE*F WZend_Gdata_YouTube_Extension_DurationE-E ]Zend_Gdata_YouTube_Extension_DescriptionE+D YZend_Gdata_YouTube_Extension_CountHintE)C UZend_Gdata_YouTube_Extension_ControlE)B UZend_Gdata_YouTube_Extension_CompanyE'A QZend_Gdata_YouTube_Extension_BooksE%@ MZend_Gdata_YouTube_Extension_AgeE)? UZend_Gdata_YouTube_Extension_AboutMeE#> IZend_Gdata_YouTube_ContactFeedE$= KZend_Gdata_YouTube_ContactEntryE#< IZend_Gdata_YouTube_CommentFeedE$; KZend_Gdata_YouTube_CommentEntryE$: KZend_Gdata_YouTube_ActivityFeedE%9 MZend_Gdata_YouTube_ActivityEntryE8 ;Zend_Gdata_SpreadsheetsE*7 WZend_Gdata_Spreadsheets_WorksheetFeedE+6 YZend_Gdata_Spreadsheets_WorksheetEntryE,5 [Zend_Gdata_Spreadsheets_SpreadsheetFeedE-4 ]Zend_Gdata_Spreadsheets_SpreadsheetEntryE&3 OZend_Gdata_Spreadsheets_ListQueryE%2 MZend_Gdata_Spreadsheets_ListFeedE&1 OZend_Gdata_Spreadsheets_ListEntryE/0 aZend_Gdata_Spreadsheets_Extension_RowCountE-/ ]Zend_Gdata_Spreadsheets_Extension_CustomE/. aZend_Gdata_Spreadsheets_Extension_ColCountE+- YZend_Gdata_Spreadsheets_Extension_CellE*, WZend_Gdata_Spreadsheets_DocumentQueryE&+ OZend_Gdata_Spreadsheets_CellQueryE%* MZend_Gdata_Spreadsheets_CellFeedE&) OZend_Gdata_Spreadsheets_CellEntryE( -Zend_Gdata_QueryE' /Zend_Gdata_PhotosE & CZend_Gdata_Photos_UserQueryE% AZend_Gdata_Photos_UserFeedE $ CZend_Gdata_Photos_UserEntryE# AZend_Gdata_Photos_TagEntryE!" EZend_Gdata_Photos_PhotoQueryE ! CZend_Gdata_Photos_PhotoFeedE!  EZend_Gdata_Photos_PhotoEntryE& OZend_Gdata_Photos_Extension_WidthE' QZend_Gdata_Photos_Extension_WeightE( SZend_Gdata_Photos_Extension_VersionE% MZend_Gdata_Photos_Extension_UserE   h `=$kK'^'~Z8jD(



T
				p	G	'X0	fDh;jK,	yT7y]/}`=mM%                                           ^ ?Zend_Ldap_Node_CollectionE$] KZend_Ldap_Node_ChildrenIteratorE\ ;Zend_Ldap_Node_AbstractE[ 9Zend_Ldap_Ldif_EncoderEZ -Zend_Ldap_FilterEY ;Zend_Ldap_Filter_StringEX 3Zend_Ldap_Filter_OrEW 5Zend_Ldap_Filter_NotEV 7Zend_Ldap_Filter_MaskEU =Zend_Ldap_Filter_LogicalET AZend_Ldap_Filter_ExceptionES 5Zend_Ldap_Filter_AndER ?Zend_Ldap_Filter_AbstractEQ 3Zend_Ldap_ExceptionEP %Zend_Ldap_DnEO 3Zend_Ldap_ConverterE"N GZend_Ldap_Converter_ExceptionEM 5Zend_Ldap_CollectionE*L WZend_Ldap_Collection_Iterator_DefaultEK 3Zend_Ldap_AttributeEJ #Zend_LayoutEI 7Zend_Layout_ExceptionE)H UZend_Layout_Controller_Plugin_LayoutE0G cZend_Layout_Controller_Action_Helper_LayoutEF Zend_JsonEE -Zend_Json_ServerED 5Zend_Json_Server_SmdE!C EZend_Json_Server_Smd_ServiceEB ?Zend_Json_Server_ResponseE#A IZend_Json_Server_Response_HttpE@ =Zend_Json_Server_RequestE"? GZend_Json_Server_Request_HttpE> AZend_Json_Server_ExceptionE= 9Zend_Json_Server_ErrorE< 9Zend_Json_Server_CacheE; )Zend_Json_ExprE: 3Zend_Json_ExceptionE9 /Zend_Json_EncoderE8 /Zend_Json_DecoderE7 'Zend_InfoCardE-6 ]Zend_InfoCard_Xml_SecurityTokenReferenceE5 AZend_InfoCard_Xml_SecurityE)4 UZend_InfoCard_Xml_Security_TransformE43 kZend_InfoCard_Xml_Security_Transform_XmlExcC14NE32 iZend_InfoCard_Xml_Security_Transform_ExceptionE<1 {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignatureE)0 UZend_InfoCard_Xml_Security_ExceptionE/ ?Zend_InfoCard_Xml_KeyInfoE&. OZend_InfoCard_Xml_KeyInfo_XmlDSigE&- OZend_InfoCard_Xml_KeyInfo_DefaultE', QZend_InfoCard_Xml_KeyInfo_AbstractE + CZend_InfoCard_Xml_ExceptionE#* IZend_InfoCard_Xml_EncryptedKeyE$) KZend_InfoCard_Xml_EncryptedDataE+( YZend_InfoCard_Xml_EncryptedData_XmlEncE-' ]Zend_InfoCard_Xml_EncryptedData_AbstractE& ?Zend_InfoCard_Xml_ElementE % CZend_InfoCard_Xml_AssertionE%$ MZend_InfoCard_Xml_Assertion_SamlE# ;Zend_InfoCard_ExceptionE%" MZend_InfoCard_Exception_AbstractE! 5Zend_InfoCard_ClaimsE  5Zend_InfoCard_CipherE5 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcE5 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcE4 kZend_InfoCard_Cipher_Symmetric_Adapter_AbstractE) UZend_InfoCard_Cipher_Pki_Adapter_RsaE. _Zend_InfoCard_Cipher_Pki_Adapter_AbstractE# IZend_InfoCard_Cipher_ExceptionE$ KZend_InfoCard_Adapter_ExceptionE" GZend_InfoCard_Adapter_DefaultE 3Zend_Http_UserAgentE" GZend_Http_UserAgent_ValidatorE =Zend_Http_UserAgent_TextE( SZend_Http_UserAgent_Storage_SessionE. _Zend_Http_UserAgent_Storage_NonPersistentE* WZend_Http_UserAgent_Storage_ExceptionE =Zend_Http_UserAgent_SpamE ?Zend_Http_UserAgent_ProbeE  CZend_Http_UserAgent_OfflineE AZend_Http_UserAgent_MobileE =Zend_Http_UserAgent_FeedE+ YZend_Http_UserAgent_Features_ExceptionE2 gZend_Http_UserAgent_Features_Adapter_WurflApiE3
 iZend_Http_UserAgent_Features_Adapter_TeraWurflE5	 mZend_Http_UserAgent_Features_Adapter_DeviceAtlasE" GZend_Http_UserAgent_ExceptionE ?Zend_Http_UserAgent_EmailE  CZend_Http_UserAgent_DesktopE  CZend_Http_UserAgent_ConsoleE  CZend_Http_UserAgent_CheckerE ;Zend_Http_UserAgent_BotE' QZend_Http_UserAgent_AbstractDeviceE 1Zend_Http_ResponseE  ?Zend_Http_Response_StreamE 3Zend_Http_ExceptionE~ 3Zend_Http_CookieJarE} -Zend_Http_CookieE| -Zend_Http_ClientE{ AZend_Http_Client_ExceptionE"z GZend_Http_Client_Adapter_TestE$y KZend_Http_Client_Adapter_SocketE#x IZend_Http_Client_Adapter_ProxyE'w QZend_Http_Client_Adapter_ExceptionE   s	 `2d1
|^3dC*xT1




w
Z
=
						u	Y	B	a6_@vP/
rO(_=hN2sT5}^B'	                           Q 7Zend_Measure_PressureEP 1Zend_Measure_PowerEO 3Zend_Measure_NumberEN 9Zend_Measure_LightnessEM 3Zend_Measure_LengthEL ?Zend_Measure_IlluminationEK 9Zend_Measure_FrequencyEJ 1Zend_Measure_ForceEI =Zend_Measure_Flow_VolumeEH 9Zend_Measure_Flow_MoleEG 9Zend_Measure_Flow_MassEF 9Zend_Measure_ExceptionEE 3Zend_Measure_EnergyED 5Zend_Measure_DensityEC 5Zend_Measure_CurrentE B CZend_Measure_Cooking_WeightE A CZend_Measure_Cooking_VolumeE@ =Zend_Measure_CapacitanceE? 3Zend_Measure_BinaryE> /Zend_Measure_AreaE= 1Zend_Measure_AngleE< ?Zend_Measure_AccelerationE; 7Zend_Measure_AbstractE: #Zend_MarkupE9 7Zend_Markup_TokenListE8 /Zend_Markup_TokenE*7 WZend_Markup_Renderer_RendererAbstractE6 ?Zend_Markup_Renderer_HtmlE"5 GZend_Markup_Renderer_Html_UrlE#4 IZend_Markup_Renderer_Html_ListE"3 GZend_Markup_Renderer_Html_ImgE+2 YZend_Markup_Renderer_Html_HtmlAbstractE#1 IZend_Markup_Renderer_Html_CodeE#0 IZend_Markup_Renderer_ExceptionE/ AZend_Markup_Parser_TextileE!. EZend_Markup_Parser_ExceptionE- ?Zend_Markup_Parser_BbcodeE, 7Zend_Markup_ExceptionE+ Zend_MailE* =Zend_Mail_Transport_SmtpE!) EZend_Mail_Transport_SendmailE( =Zend_Mail_Transport_FileE"' GZend_Mail_Transport_ExceptionE!& EZend_Mail_Transport_AbstractE% /Zend_Mail_StorageE'$ QZend_Mail_Storage_Writable_MaildirE# 9Zend_Mail_Storage_Pop3E" 9Zend_Mail_Storage_MboxE! ?Zend_Mail_Storage_MaildirE  9Zend_Mail_Storage_ImapE =Zend_Mail_Storage_FolderE" GZend_Mail_Storage_Folder_MboxE% MZend_Mail_Storage_Folder_MaildirE  CZend_Mail_Storage_ExceptionE AZend_Mail_Storage_AbstractE ;Zend_Mail_Protocol_SmtpE' QZend_Mail_Protocol_Smtp_Auth_PlainE' QZend_Mail_Protocol_Smtp_Auth_LoginE) UZend_Mail_Protocol_Smtp_Auth_Crammd5E ;Zend_Mail_Protocol_Pop3E ;Zend_Mail_Protocol_ImapE! EZend_Mail_Protocol_ExceptionE  CZend_Mail_Protocol_AbstractE )Zend_Mail_PartE 3Zend_Mail_Part_FileE /Zend_Mail_MessageE 9Zend_Mail_Message_FileE 3Zend_Mail_ExceptionE Zend_LogE  CZend_Log_Writer_ZendMonitorE 9Zend_Log_Writer_SyslogE
 9Zend_Log_Writer_StreamE	 5Zend_Log_Writer_NullE 5Zend_Log_Writer_MockE 5Zend_Log_Writer_MailE ;Zend_Log_Writer_FirebugE 1Zend_Log_Writer_DbE =Zend_Log_Writer_AbstractE 9Zend_Log_Formatter_XmlE ?Zend_Log_Formatter_SimpleE AZend_Log_Formatter_FirebugE   CZend_Log_Formatter_AbstractE =Zend_Log_Filter_SuppressE~ =Zend_Log_Filter_PriorityE} ;Zend_Log_Filter_MessageE| =Zend_Log_Filter_AbstractE{ 1Zend_Log_ExceptionEz #Zend_LocaleEy -Zend_Locale_MathEx =Zend_Locale_Math_PhpMathEw AZend_Locale_Math_ExceptionEv 1Zend_Locale_FormatEu 7Zend_Locale_ExceptionEt -Zend_Locale_DataE!s EZend_Locale_Data_TranslationEr #Zend_LoaderEq =Zend_Loader_PluginLoaderE'p QZend_Loader_PluginLoader_ExceptionEo 7Zend_Loader_ExceptionEn 9Zend_Loader_AutoloaderE$m KZend_Loader_Autoloader_ResourceEl Zend_LdapEk )Zend_Ldap_NodeEj 7Zend_Ldap_Node_SchemaE#i IZend_Ldap_Node_Schema_OpenLdapE/h aZend_Ldap_Node_Schema_ObjectClass_OpenLdapE6g oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectoryEf AZend_Ldap_Node_Schema_ItemE1e eZend_Ldap_Node_Schema_AttributeType_OpenLdapE8d sZend_Ldap_Node_Schema_AttributeType_ActiveDirectoryE*c WZend_Ldap_Node_Schema_ActiveDirectoryEb 9Zend_Ldap_Node_RootDseE$a KZend_Ldap_Node_RootDse_OpenLdapE&` OZend_Ldap_Node_RootDse_eDirectoryE+_ YZend_Ldap_Node_RootDse_ActiveDirectoryE   s g>"xZ>$vT3pL'|[,




j
E
(

				z	P	.	[7b1^;xZ7{Z7tO,eD}S(                       D AZend_Pdf_Destination_NamedE'C QZend_Pdf_Destination_FitVerticallyE&B OZend_Pdf_Destination_FitRectangleE)A UZend_Pdf_Destination_FitHorizontallyE2@ gZend_Pdf_Destination_FitBoundingBoxVerticallyE4? kZend_Pdf_Destination_FitBoundingBoxHorizontallyE(> SZend_Pdf_Destination_FitBoundingBoxE= =Zend_Pdf_Destination_FitE"< GZend_Pdf_Destination_ExplicitE; )Zend_Pdf_ColorE: 1Zend_Pdf_Color_RgbE9 3Zend_Pdf_Color_HtmlE8 =Zend_Pdf_Color_GrayScaleE7 3Zend_Pdf_Color_CmykE6 'Zend_Pdf_CmapE5 AZend_Pdf_Cmap_TrimmedTableE!4 EZend_Pdf_Cmap_SegmentToDeltaE3 AZend_Pdf_Cmap_ByteEncodingE&2 OZend_Pdf_Cmap_ByteEncoding_StaticE1 +Zend_Pdf_CanvasE0 =Zend_Pdf_Canvas_AbstractE/ 3Zend_Pdf_AnnotationE. =Zend_Pdf_Annotation_TextE- AZend_Pdf_Annotation_MarkupE, =Zend_Pdf_Annotation_LinkE'+ QZend_Pdf_Annotation_FileAttachmentE* +Zend_Pdf_ActionE) 3Zend_Pdf_Action_URIE( ;Zend_Pdf_Action_UnknownE' 7Zend_Pdf_Action_TransE& 9Zend_Pdf_Action_ThreadE% AZend_Pdf_Action_SubmitFormE$ 7Zend_Pdf_Action_SoundE # CZend_Pdf_Action_SetOCGStateE" ?Zend_Pdf_Action_ResetFormE! ?Zend_Pdf_Action_RenditionE  7Zend_Pdf_Action_NamedE 7Zend_Pdf_Action_MovieE 9Zend_Pdf_Action_LaunchE AZend_Pdf_Action_JavaScriptE AZend_Pdf_Action_ImportDataE 5Zend_Pdf_Action_HideE 7Zend_Pdf_Action_GoToRE 7Zend_Pdf_Action_GoToEE AZend_Pdf_Action_GoTo3DViewE 5Zend_Pdf_Action_GoToE )Zend_PaginatorE- ]Zend_Paginator_SerializableLimitIteratorE* WZend_Paginator_ScrollingStyle_SlidingE* WZend_Paginator_ScrollingStyle_JumpingE* WZend_Paginator_ScrollingStyle_ElasticE& OZend_Paginator_ScrollingStyle_AllE =Zend_Paginator_ExceptionE  CZend_Paginator_Adapter_NullE$ KZend_Paginator_Adapter_IteratorE) UZend_Paginator_Adapter_DbTableSelectE$ KZend_Paginator_Adapter_DbSelectE! EZend_Paginator_Adapter_ArrayE
 #Zend_OpenIdE	 5Zend_OpenId_ProviderE ?Zend_OpenId_Provider_UserE& OZend_OpenId_Provider_User_SessionE! EZend_OpenId_Provider_StorageE& OZend_OpenId_Provider_Storage_FileE 7Zend_OpenId_ExtensionE AZend_OpenId_Extension_SregE 7Zend_OpenId_ExceptionE 5Zend_OpenId_ConsumerE!  EZend_OpenId_Consumer_StorageE& OZend_OpenId_Consumer_Storage_FileE~ !Zend_OauthE} -Zend_Oauth_TokenE| =Zend_Oauth_Token_RequestE'{ QZend_Oauth_Token_AuthorizedRequestEz ;Zend_Oauth_Token_AccessE+y YZend_Oauth_Signature_SignatureAbstractEx =Zend_Oauth_Signature_RsaE#w IZend_Oauth_Signature_PlaintextEv ?Zend_Oauth_Signature_HmacEu +Zend_Oauth_HttpEt ;Zend_Oauth_Http_UtilityE&s OZend_Oauth_Http_UserAuthorizationE!r EZend_Oauth_Http_RequestTokenE q CZend_Oauth_Http_AccessTokenEp 5Zend_Oauth_ExceptionEo 3Zend_Oauth_ConsumerEn /Zend_Oauth_ConfigEm /Zend_Oauth_ClientEl +Zend_NavigationEk 5Zend_Navigation_PageEj =Zend_Navigation_Page_UriEi =Zend_Navigation_Page_MvcEh ?Zend_Navigation_ExceptionEg ?Zend_Navigation_ContainerEf Zend_MimeEe )Zend_Mime_PartEd /Zend_Mime_MessageEc 3Zend_Mime_ExceptionEb -Zend_Mime_DecodeEa #Zend_MemoryE` /Zend_Memory_ValueE_ 3Zend_Memory_ManagerE^ 7Zend_Memory_ExceptionE] 7Zend_Memory_ContainerE"\ GZend_Memory_Container_MovableE![ EZend_Memory_Container_LockedE!Z EZend_Memory_AccessControllerEY 3Zend_Measure_WeightEX 3Zend_Measure_VolumeE%W MZend_Measure_Viscosity_KinematicE#V IZend_Measure_Viscosity_DynamicEU 3Zend_Measure_TorqueET /Zend_Measure_TimeES =Zend_Measure_TemperatureER 1Zend_Measure_SpeedE   d  }\8i@wW<	vZ/qI%




{
b
L
4					Z	1	i.u8}DT%nJ%mU2oGsR,                           ( 7Zend_Queue_Adapter_DbE ' CZend_Queue_Adapter_Db_QueueE"& GZend_Queue_Adapter_Db_MessageE% =Zend_Queue_Adapter_ArrayE'$ QZend_Queue_Adapter_AdapterAbstractE # CZend_Queue_Adapter_ActivemqE" -Zend_ProgressBarE! AZend_ProgressBar_ExceptionE  =Zend_ProgressBar_AdapterE$ KZend_ProgressBar_Adapter_JsPushE$ KZend_ProgressBar_Adapter_JsPullE' QZend_ProgressBar_Adapter_ExceptionE% MZend_ProgressBar_Adapter_ConsoleE Zend_PdfE! EZend_Pdf_UpdateInfoContainerE -Zend_Pdf_TrailerE ;Zend_Pdf_Trailer_KeeperE AZend_Pdf_Trailer_GeneratorE +Zend_Pdf_TargetE )Zend_Pdf_StyleE 7Zend_Pdf_StringParserE /Zend_Pdf_ResourceE ?Zend_Pdf_Resource_UnifiedE# IZend_Pdf_Resource_ImageFactoryE ;Zend_Pdf_Resource_ImageE! EZend_Pdf_Resource_Image_TiffE  CZend_Pdf_Resource_Image_PngE! EZend_Pdf_Resource_Image_JpegE$ KZend_Pdf_Resource_GraphicsStateE 9Zend_Pdf_Resource_FontE!
 EZend_Pdf_Resource_Font_Type0E"	 GZend_Pdf_Resource_Font_SimpleE+ YZend_Pdf_Resource_Font_Simple_StandardE8 sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsE6 oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanE7 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicE; yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicE5 mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldE2 gZend_Pdf_Resource_Font_Simple_Standard_SymbolE< {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueEA  Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliqueE9 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldE5~ mZend_Pdf_Resource_Font_Simple_Standard_HelveticaE:} wZend_Pdf_Resource_Font_Simple_Standard_CourierObliqueE>| Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliqueE7{ qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldE3z iZend_Pdf_Resource_Font_Simple_Standard_CourierE)y UZend_Pdf_Resource_Font_Simple_ParsedE2x gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypeE*w WZend_Pdf_Resource_Font_FontDescriptorE%v MZend_Pdf_Resource_Font_ExtractedE#u IZend_Pdf_Resource_Font_CidFontE,t [Zend_Pdf_Resource_Font_CidFont_TrueTypeE s CZend_Pdf_Resource_ExtractorE$r KZend_Pdf_Resource_ContentStreamE3q iZend_Pdf_RecursivelyIteratableObjectsContainerEp +Zend_Pdf_ParserEo 'Zend_Pdf_PageEn -Zend_Pdf_OutlineEm ;Zend_Pdf_Outline_LoadedEl =Zend_Pdf_Outline_CreatedEk /Zend_Pdf_NameTreeEj )Zend_Pdf_ImageEi 'Zend_Pdf_FontEh ?Zend_Pdf_Filter_RunLengthE g CZend_Pdf_Filter_CompressionE$f KZend_Pdf_Filter_Compression_LzwE&e OZend_Pdf_Filter_Compression_FlateEd =Zend_Pdf_Filter_AsciiHexEc ;Zend_Pdf_Filter_Ascii85E"b GZend_Pdf_FileParserDataSourceE)a UZend_Pdf_FileParserDataSource_StringE'` QZend_Pdf_FileParserDataSource_FileE_ 3Zend_Pdf_FileParserE^ ?Zend_Pdf_FileParser_ImageE"] GZend_Pdf_FileParser_Image_PngE\ =Zend_Pdf_FileParser_FontE&[ OZend_Pdf_FileParser_Font_OpenTypeE/Z aZend_Pdf_FileParser_Font_OpenType_TrueTypeEY 1Zend_Pdf_ExceptionEX ;Zend_Pdf_ElementFactoryE"W GZend_Pdf_ElementFactory_ProxyEV -Zend_Pdf_ElementEU ;Zend_Pdf_Element_StringE#T IZend_Pdf_Element_String_BinaryES ;Zend_Pdf_Element_StreamER AZend_Pdf_Element_ReferenceE%Q MZend_Pdf_Element_Reference_TableE'P QZend_Pdf_Element_Reference_ContextEO ;Zend_Pdf_Element_ObjectE#N IZend_Pdf_Element_Object_StreamEM =Zend_Pdf_Element_NumericEL 7Zend_Pdf_Element_NullEK 7Zend_Pdf_Element_NameE J CZend_Pdf_Element_DictionaryEI =Zend_Pdf_Element_BooleanEH 9Zend_Pdf_Element_ArrayEG 5Zend_Pdf_DestinationEF ?Zend_Pdf_Destination_ZoomE!E EZend_Pdf_Destination_UnknownE   Y  rN'qFsR3mT7_&


S
			]	0	Si=b=X_+_!_)O                                     2 gZend_Search_Lucene_Search_Query_PreprocessingE7  qZend_Search_Lucene_Search_Query_Preprocessing_TermE9 uZend_Search_Lucene_Search_Query_Preprocessing_PhraseE8~ sZend_Search_Lucene_Search_Query_Preprocessing_FuzzyE+} YZend_Search_Lucene_Search_Query_PhraseE.| _Zend_Search_Lucene_Search_Query_MultiTermE2{ gZend_Search_Lucene_Search_Query_InsignificantE*z WZend_Search_Lucene_Search_Query_FuzzyE*y WZend_Search_Lucene_Search_Query_EmptyE,x [Zend_Search_Lucene_Search_Query_BooleanE2w gZend_Search_Lucene_Search_Highlighter_DefaultE:v wZend_Search_Lucene_Search_BooleanExpressionRecognizerEu =Zend_Search_Lucene_ProxyE%t MZend_Search_Lucene_PriorityQueueE/s aZend_Search_Lucene_Interface_MultiSearcherE#r IZend_Search_Lucene_LockManagerE$q KZend_Search_Lucene_Index_WriterE0p cZend_Search_Lucene_Index_TermsPriorityQueueE&o OZend_Search_Lucene_Index_TermInfoE"n GZend_Search_Lucene_Index_TermE+m YZend_Search_Lucene_Index_SegmentWriterE8l sZend_Search_Lucene_Index_SegmentWriter_StreamWriterE:k wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterE+j YZend_Search_Lucene_Index_SegmentMergerE)i UZend_Search_Lucene_Index_SegmentInfoE'h QZend_Search_Lucene_Index_FieldInfoE(g SZend_Search_Lucene_Index_DocsFilterE.f _Zend_Search_Lucene_Index_DictionaryLoaderE!e EZend_Search_Lucene_FSMActionEd 9Zend_Search_Lucene_FSMEc =Zend_Search_Lucene_FieldE!b EZend_Search_Lucene_ExceptionE a CZend_Search_Lucene_DocumentE%` MZend_Search_Lucene_Document_XlsxE%_ MZend_Search_Lucene_Document_PptxE(^ SZend_Search_Lucene_Document_OpenXmlE%] MZend_Search_Lucene_Document_HtmlE*\ WZend_Search_Lucene_Document_ExceptionE%[ MZend_Search_Lucene_Document_DocxE,Z [Zend_Search_Lucene_Analysis_TokenFilterE6Y oZend_Search_Lucene_Analysis_TokenFilter_StopWordsE7X qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsE:W wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8E6V oZend_Search_Lucene_Analysis_TokenFilter_LowerCaseE&U OZend_Search_Lucene_Analysis_TokenE)T UZend_Search_Lucene_Analysis_AnalyzerE0S cZend_Search_Lucene_Analysis_Analyzer_CommonE8R sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumEIQ Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitiveE5P mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8EFO Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitiveE8N sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumEIM Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitiveE5L mZend_Search_Lucene_Analysis_Analyzer_Common_TextEFK Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiveEJ 7Zend_Search_ExceptionEI -Zend_Rest_ServerEH AZend_Rest_Server_ExceptionEG +Zend_Rest_RouteEF 3Zend_Rest_ExceptionEE 5Zend_Rest_ControllerED -Zend_Rest_ClientEC ;Zend_Rest_Client_ResultE&B OZend_Rest_Client_Result_ExceptionEA AZend_Rest_Client_ExceptionE@ 'Zend_RegistryE? =Zend_Reflection_PropertyE> ?Zend_Reflection_ParameterE= 9Zend_Reflection_MethodE< =Zend_Reflection_FunctionE; 5Zend_Reflection_FileE: ?Zend_Reflection_ExtensionE9 ?Zend_Reflection_ExceptionE8 =Zend_Reflection_DocblockE!7 EZend_Reflection_Docblock_TagE(6 SZend_Reflection_Docblock_Tag_ReturnE'5 QZend_Reflection_Docblock_Tag_ParamE4 7Zend_Reflection_ClassE3 !Zend_QueueE2 9Zend_Queue_Stomp_FrameE1 ;Zend_Queue_Stomp_ClientE'0 QZend_Queue_Stomp_Client_ConnectionE/ 1Zend_Queue_MessageE#. IZend_Queue_Message_PlatformJobE - CZend_Queue_Message_IteratorE, 5Zend_Queue_ExceptionE(+ SZend_Queue_Adapter_PlatformJobQueueE* ;Zend_Queue_Adapter_NullE!) EZend_Queue_Adapter_MemcacheqE   ]  tLX+d/o?P!



z
U
0
				`	;		iCzR,lN1S%tI%yHxX,wR0
                                %^ MZend_Service_Amazon_S3_ExceptionE"] GZend_Service_Amazon_ResultSetE\ ?Zend_Service_Amazon_QueryE![ EZend_Service_Amazon_OfferSetEZ ?Zend_Service_Amazon_OfferE&Y OZend_Service_Amazon_ListmaniaListEX =Zend_Service_Amazon_ItemEW ?Zend_Service_Amazon_ImageE"V GZend_Service_Amazon_ExceptionE(U SZend_Service_Amazon_EditorialReviewET ;Zend_Service_Amazon_Ec2E+S YZend_Service_Amazon_Ec2_SecuritygroupsE%R MZend_Service_Amazon_Ec2_ResponseE#Q IZend_Service_Amazon_Ec2_RegionE$P KZend_Service_Amazon_Ec2_KeypairE%O MZend_Service_Amazon_Ec2_InstanceE-N ]Zend_Service_Amazon_Ec2_Instance_WindowsE.M _Zend_Service_Amazon_Ec2_Instance_ReservedE"L GZend_Service_Amazon_Ec2_ImageE&K OZend_Service_Amazon_Ec2_ExceptionE&J OZend_Service_Amazon_Ec2_ElasticipE I CZend_Service_Amazon_Ec2_EbsE'H QZend_Service_Amazon_Ec2_CloudWatchE.G _Zend_Service_Amazon_Ec2_AvailabilityzonesE%F MZend_Service_Amazon_Ec2_AbstractE'E QZend_Service_Amazon_CustomerReviewE'D QZend_Service_Amazon_AuthenticationE*C WZend_Service_Amazon_Authentication_V2E*B WZend_Service_Amazon_Authentication_V1E*A WZend_Service_Amazon_Authentication_S3E1@ eZend_Service_Amazon_Authentication_ExceptionE$? KZend_Service_Amazon_AccessoriesE!> EZend_Service_Amazon_AbstractE= 5Zend_Service_AkismetE< 7Zend_Service_AbstractE; 9Zend_Server_ReflectionE': QZend_Server_Reflection_ReturnValueE%9 MZend_Server_Reflection_PrototypeE%8 MZend_Server_Reflection_ParameterE 7 CZend_Server_Reflection_NodeE"6 GZend_Server_Reflection_MethodE$5 KZend_Server_Reflection_FunctionE-4 ]Zend_Server_Reflection_Function_AbstractE%3 MZend_Server_Reflection_ExceptionE!2 EZend_Server_Reflection_ClassE!1 EZend_Server_Method_PrototypeE!0 EZend_Server_Method_ParameterE"/ GZend_Server_Method_DefinitionE . CZend_Server_Method_CallbackE- 7Zend_Server_ExceptionE, 9Zend_Server_DefinitionE+ /Zend_Server_CacheE* 5Zend_Server_AbstractE) +Zend_SerializerE( ?Zend_Serializer_ExceptionE!' EZend_Serializer_Adapter_WddxE)& UZend_Serializer_Adapter_PythonPickleE)% UZend_Serializer_Adapter_PhpSerializeE$$ KZend_Serializer_Adapter_PhpCodeE!# EZend_Serializer_Adapter_JsonE%" MZend_Serializer_Adapter_IgbinaryE!! EZend_Serializer_Adapter_Amf3E!  EZend_Serializer_Adapter_Amf0E, [Zend_Serializer_Adapter_AdapterAbstractE 1Zend_Search_LuceneE0 cZend_Search_Lucene_TermStreamsPriorityQueueE$ KZend_Search_Lucene_Storage_FileE+ YZend_Search_Lucene_Storage_File_MemoryE/ aZend_Search_Lucene_Storage_File_FilesystemE) UZend_Search_Lucene_Storage_DirectoryE4 kZend_Search_Lucene_Storage_Directory_FilesystemE% MZend_Search_Lucene_Search_WeightE* WZend_Search_Lucene_Search_Weight_TermE, [Zend_Search_Lucene_Search_Weight_PhraseE/ aZend_Search_Lucene_Search_Weight_MultiTermE+ YZend_Search_Lucene_Search_Weight_EmptyE- ]Zend_Search_Lucene_Search_Weight_BooleanE) UZend_Search_Lucene_Search_SimilarityE1 eZend_Search_Lucene_Search_Similarity_DefaultE) UZend_Search_Lucene_Search_QueryTokenE3 iZend_Search_Lucene_Search_QueryParserExceptionE1 eZend_Search_Lucene_Search_QueryParserContextE* WZend_Search_Lucene_Search_QueryParserE) UZend_Search_Lucene_Search_QueryLexerE'
 QZend_Search_Lucene_Search_QueryHitE)	 UZend_Search_Lucene_Search_QueryEntryE. _Zend_Search_Lucene_Search_QueryEntry_TermE2 gZend_Search_Lucene_Search_QueryEntry_SubqueryE0 cZend_Search_Lucene_Search_QueryEntry_PhraseE$ KZend_Search_Lucene_Search_QueryE- ]Zend_Search_Lucene_Search_Query_WildcardE) UZend_Search_Lucene_Search_Query_TermE* WZend_Search_Lucene_Search_Query_RangeE   =  a2kO+m(Q
|>


p
<
			s	8w'pi]ED)l  3 iZend_Service_DeveloperGarden_Request_ExceptionER %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequestEY 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequestEd IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequestEQ #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequestER %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequestEY 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequestEd IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequestEQ #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequestEO Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequestEU +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequestEU +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequestEV -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequestEa CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequestEZ 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequestET )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequestER %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequestEY
 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequestEQ	 #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequestEQ #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequestEa CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequestEN Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformationEL Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalanceEJ Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPoolE- ]Zend_Service_DeveloperGarden_LocalSearchE> Zend_Service_DeveloperGarden_LocalSearch_SearchParametersE7 qZend_Service_DeveloperGarden_LocalSearch_ExceptionE,  [Zend_Service_DeveloperGarden_IpLocationE6 oZend_Service_DeveloperGarden_IpLocation_IpAddressE+~ YZend_Service_DeveloperGarden_ExceptionE,} [Zend_Service_DeveloperGarden_CredentialE0| cZend_Service_DeveloperGarden_ConferenceCallEC{ Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatusECz Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetailE<y {Zend_Service_DeveloperGarden_ConferenceCall_ParticipantE:x wZend_Service_DeveloperGarden_ConferenceCall_ExceptionEDw 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceScheduleEBv Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetailECu Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccountE-t ]Zend_Service_DeveloperGarden_Client_SoapE2s gZend_Service_DeveloperGarden_Client_ExceptionE7r qZend_Service_DeveloperGarden_Client_ClientAbstractE1q eZend_Service_DeveloperGarden_BaseUserServiceEAp Zend_Service_DeveloperGarden_BaseUserService_AccountBalanceEo 9Zend_Service_DeliciousE&n OZend_Service_Delicious_SimplePostE$m KZend_Service_Delicious_PostListE l CZend_Service_Delicious_PostE%k MZend_Service_Delicious_ExceptionE j CZend_Service_AudioscrobblerEi 3Zend_Service_AmazonEh ;Zend_Service_Amazon_SqsE&g OZend_Service_Amazon_Sqs_ExceptionE!f EZend_Service_Amazon_SimpleDbE*e WZend_Service_Amazon_SimpleDb_ResponseE&d OZend_Service_Amazon_SimpleDb_PageE+c YZend_Service_Amazon_SimpleDb_ExceptionE+b YZend_Service_Amazon_SimpleDb_AttributeE'a QZend_Service_Amazon_SimilarProductE` 9Zend_Service_Amazon_S3E"_ GZend_Service_Amazon_S3_StreamE   .  j-h:i"F


+		r	oRD"P9 r                                                                              fI MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponseESH 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponseEUG +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseTypeEQF #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseE[E 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseTypeEWD /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseE[C 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseTypeEWB /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseE\A 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseTypeEX@ 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseEg? OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseTypeEc> GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseE`= AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseTypeE\< 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseEZ; 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseTypeEV: -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseEX9 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseTypeET8 )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseE_7 ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseTypeE[6 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseEW5 /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseTypeES4 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseEQ3 #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstractES2 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponseEJ1 Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseTypeEg0 OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseTypeEc/ GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseEW. /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponseEU- +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponseES, 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponseE3+ iZend_Service_DeveloperGarden_Response_BaseTypeEJ* Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstractEC) Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCallEG( Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequencedE=' }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallEA& Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatusEA% Zend_Service_DeveloperGarden_Request_SmsValidation_ValidateEN$ Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeywordEC# Zend_Service_DeveloperGarden_Request_SmsValidation_InvalidateEL" Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbersEB! Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstractE9  uZend_Service_DeveloperGarden_Request_SendSms_SendSMSE> Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMSE9 uZend_Service_DeveloperGarden_Request_RequestAbstractEI Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequestEE Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequestE   ;  I)W
o 9


X			l	%~#7Jl3]2R)|Q i6                               - ]Zend_Service_Ebay_Finding_Response_ItemsE2 gZend_Service_Ebay_Finding_Response_HistogramsE0 cZend_Service_Ebay_Finding_Response_AbstractE/ aZend_Service_Ebay_Finding_PaginationOutputE*  WZend_Service_Ebay_Finding_ListingInfoE( SZend_Service_Ebay_Finding_ExceptionE,~ [Zend_Service_Ebay_Finding_Error_MessageE)} UZend_Service_Ebay_Finding_Error_DataE-| ]Zend_Service_Ebay_Finding_Error_Data_SetE'{ QZend_Service_Ebay_Finding_CategoryE1z eZend_Service_Ebay_Finding_Category_HistogramE5y mZend_Service_Ebay_Finding_Category_Histogram_SetE;x yZend_Service_Ebay_Finding_Category_Histogram_ContainerE%w MZend_Service_Ebay_Finding_AspectE)v UZend_Service_Ebay_Finding_Aspect_SetE5u mZend_Service_Ebay_Finding_Aspect_Histogram_ValueE9t uZend_Service_Ebay_Finding_Aspect_Histogram_Value_SetE9s uZend_Service_Ebay_Finding_Aspect_Histogram_ContainerE'r QZend_Service_Ebay_Finding_AbstractE q CZend_Service_Ebay_ExceptionEp AZend_Service_Ebay_AbstractE+o YZend_Service_DeveloperGarden_VoiceCallE/n aZend_Service_DeveloperGarden_SmsValidationE)m UZend_Service_DeveloperGarden_SendSmsE5l mZend_Service_DeveloperGarden_SecurityTokenServerE;k yZend_Service_DeveloperGarden_SecurityTokenServer_CacheEKj Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstractELi Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponseEPh !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponseEGg Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponseEJf Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponseEKe Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2ResponseELd Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponseEIc Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumberEWb /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponseEJa Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponseEU` +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponseEC_ Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponseEC^ Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstractEH] Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponseEU\ +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponseEQ[ #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponseEIZ Zend_Service_DeveloperGarden_Response_SecurityTokenServer_ExceptionE;Y yZend_Service_DeveloperGarden_Response_ResponseAbstractEOX Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseTypeEKW Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseEAV Zend_Service_DeveloperGarden_Response_IpLocation_RegionTypeEKU Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseTypeEGT Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseELS Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationTypeEIR Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesTypeE>Q Zend_Service_DeveloperGarden_Response_IpLocation_CityTypeE4P kZend_Service_DeveloperGarden_Response_ExceptionETO )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponseE[N 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponseEfM MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponseESL 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponseETK )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponseE[J 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponseE   Y  l<T2d<uW.]5



z
U
2
					^	0	yT* mM&h3	\/}O)z8 G^                                <] {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogsEA\ Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstanceED[ 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectoriesEUZ +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogsEDY 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSourcesE8X sZend_Service_WindowsAzure_Credentials_SharedKeyLiteE4W kZend_Service_WindowsAzure_Credentials_SharedKeyEAV Zend_Service_WindowsAzure_Credentials_SharedAccessSignatureE4U kZend_Service_WindowsAzure_Credentials_ExceptionE>T Zend_Service_WindowsAzure_Credentials_CredentialsAbstractES 5Zend_Service_TwitterE R CZend_Service_Twitter_SearchE#Q IZend_Service_Twitter_ExceptionEP ;Zend_Service_TechnoratiE#O IZend_Service_Technorati_WeblogE"N GZend_Service_Technorati_UtilsE*M WZend_Service_Technorati_TagsResultSetE'L QZend_Service_Technorati_TagsResultE)K UZend_Service_Technorati_TagResultSetE&J OZend_Service_Technorati_TagResultE,I [Zend_Service_Technorati_SearchResultSetE)H UZend_Service_Technorati_SearchResultE&G OZend_Service_Technorati_ResultSetE#F IZend_Service_Technorati_ResultE*E WZend_Service_Technorati_KeyInfoResultE*D WZend_Service_Technorati_GetInfoResultE&C OZend_Service_Technorati_ExceptionE1B eZend_Service_Technorati_DailyCountsResultSetE.A _Zend_Service_Technorati_DailyCountsResultE,@ [Zend_Service_Technorati_CosmosResultSetE)? UZend_Service_Technorati_CosmosResultE+> YZend_Service_Technorati_BlogInfoResultE#= IZend_Service_Technorati_AuthorE< ;Zend_Service_StrikeIronE(; SZend_Service_StrikeIron_ZipCodeInfoE2: gZend_Service_StrikeIron_USAddressVerificationE-9 ]Zend_Service_StrikeIron_SalesUseTaxBasicE&8 OZend_Service_StrikeIron_ExceptionE&7 OZend_Service_StrikeIron_DecoratorE!6 EZend_Service_StrikeIron_BaseE5 ;Zend_Service_SlideShareE&4 OZend_Service_SlideShare_SlideShowE&3 OZend_Service_SlideShare_ExceptionE2 1Zend_Service_SimpyE$1 KZend_Service_Simpy_WatchlistSetE*0 WZend_Service_Simpy_WatchlistFilterSetE'/ QZend_Service_Simpy_WatchlistFilterE!. EZend_Service_Simpy_WatchlistE- ?Zend_Service_Simpy_TagSetE, 9Zend_Service_Simpy_TagE+ AZend_Service_Simpy_NoteSetE* ;Zend_Service_Simpy_NoteE) AZend_Service_Simpy_LinkSetE!( EZend_Service_Simpy_LinkQueryE' ;Zend_Service_Simpy_LinkE%& MZend_Service_ShortUrl_TinyUrlComE&% OZend_Service_ShortUrl_MetamarkNetE!$ EZend_Service_ShortUrl_JdemCzE# AZend_Service_ShortUrl_IsGdE$" KZend_Service_ShortUrl_ExceptionE,! [Zend_Service_ShortUrl_AbstractShortenerE  9Zend_Service_ReCaptchaE$ KZend_Service_ReCaptcha_ResponseE$ KZend_Service_ReCaptcha_MailHideE. _Zend_Service_ReCaptcha_MailHide_ExceptionE% MZend_Service_ReCaptcha_ExceptionE 7Zend_Service_NirvanixE# IZend_Service_Nirvanix_ResponseE) UZend_Service_Nirvanix_Namespace_ImfsE) UZend_Service_Nirvanix_Namespace_BaseE$ KZend_Service_Nirvanix_ExceptionE 7Zend_Service_LiveDocxE$ KZend_Service_LiveDocx_MailMergeE$ KZend_Service_LiveDocx_ExceptionE 3Zend_Service_FlickrE" GZend_Service_Flickr_ResultSetE AZend_Service_Flickr_ResultE ?Zend_Service_Flickr_ImageE 9Zend_Service_ExceptionE ?Zend_Service_Ebay_FindingE) UZend_Service_Ebay_Finding_StorefrontE+ YZend_Service_Ebay_Finding_ShippingInfoE+ YZend_Service_Ebay_Finding_Set_AbstractE,
 [Zend_Service_Ebay_Finding_SellingStatusE)	 UZend_Service_Ebay_Finding_SellerInfoE, [Zend_Service_Ebay_Finding_Search_ResultE* WZend_Service_Ebay_Finding_Search_ItemE. _Zend_Service_Ebay_Finding_Search_Item_SetE0 cZend_Service_Ebay_Finding_Response_KeywordsE   W  aTl6^K


i
1				O	|[4
^8qJ {\3uV6^5|I2gF/                     4 3Zend_Test_DbAdapterE3 /Zend_Tag_ItemListE2 'Zend_Tag_ItemE1 1Zend_Tag_ExceptionE0 )Zend_Tag_CloudE/ =Zend_Tag_Cloud_ExceptionE!. EZend_Tag_Cloud_Decorator_TagE%- MZend_Tag_Cloud_Decorator_HtmlTagE', QZend_Tag_Cloud_Decorator_HtmlCloudE'+ QZend_Tag_Cloud_Decorator_ExceptionE#* IZend_Tag_Cloud_Decorator_CloudE) )Zend_Soap_WsdlE/( aZend_Soap_Wsdl_Strategy_DefaultComplexTypeE&' OZend_Soap_Wsdl_Strategy_CompositeE0& cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequenceE/% aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplexE$$ KZend_Soap_Wsdl_Strategy_AnyTypeE%# MZend_Soap_Wsdl_Strategy_AbstractE" =Zend_Soap_Wsdl_ExceptionE! -Zend_Soap_ServerE  AZend_Soap_Server_ExceptionE -Zend_Soap_ClientE 9Zend_Soap_Client_LocalE AZend_Soap_Client_ExceptionE ;Zend_Soap_Client_DotNetE ;Zend_Soap_Client_CommonE 9Zend_Soap_AutoDiscoverE% MZend_Soap_AutoDiscover_ExceptionE %Zend_SessionE) UZend_Session_Validator_HttpUserAgentE$ KZend_Session_Validator_AbstractE' QZend_Session_SaveHandler_ExceptionE% MZend_Session_SaveHandler_DbTableE 9Zend_Session_NamespaceE 9Zend_Session_ExceptionE 7Zend_Session_AbstractE 1Zend_Service_YahooE$ KZend_Service_Yahoo_WebResultSetE! EZend_Service_Yahoo_WebResultE& OZend_Service_Yahoo_VideoResultSetE# IZend_Service_Yahoo_VideoResultE! EZend_Service_Yahoo_ResultSetE
 ?Zend_Service_Yahoo_ResultE)	 UZend_Service_Yahoo_PageDataResultSetE& OZend_Service_Yahoo_PageDataResultE% MZend_Service_Yahoo_NewsResultSetE" GZend_Service_Yahoo_NewsResultE& OZend_Service_Yahoo_LocalResultSetE# IZend_Service_Yahoo_LocalResultE+ YZend_Service_Yahoo_InlinkDataResultSetE( SZend_Service_Yahoo_InlinkDataResultE& OZend_Service_Yahoo_ImageResultSetE#  IZend_Service_Yahoo_ImageResultE =Zend_Service_Yahoo_ImageE&~ OZend_Service_WindowsAzure_StorageE4} kZend_Service_WindowsAzure_Storage_TableInstanceE7| qZend_Service_WindowsAzure_Storage_TableEntityQueryE2{ gZend_Service_WindowsAzure_Storage_TableEntityE,z [Zend_Service_WindowsAzure_Storage_TableE<y {Zend_Service_WindowsAzure_Storage_StorageEntityAbstractE7x qZend_Service_WindowsAzure_Storage_SignedIdentifierE3w iZend_Service_WindowsAzure_Storage_QueueMessageE4v kZend_Service_WindowsAzure_Storage_QueueInstanceE,u [Zend_Service_WindowsAzure_Storage_QueueE9t uZend_Service_WindowsAzure_Storage_PageRegionInstanceE4s kZend_Service_WindowsAzure_Storage_LeaseInstanceE9r uZend_Service_WindowsAzure_Storage_DynamicTableEntityE3q iZend_Service_WindowsAzure_Storage_BlobInstanceE4p kZend_Service_WindowsAzure_Storage_BlobContainerE+o YZend_Service_WindowsAzure_Storage_BlobE2n gZend_Service_WindowsAzure_Storage_Blob_StreamE;m yZend_Service_WindowsAzure_Storage_BatchStorageAbstractE,l [Zend_Service_WindowsAzure_Storage_BatchE-k ]Zend_Service_WindowsAzure_SessionHandlerE>j Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstractE1i eZend_Service_WindowsAzure_RetryPolicy_RetryNE2h gZend_Service_WindowsAzure_RetryPolicy_NoRetryE4g kZend_Service_WindowsAzure_RetryPolicy_ExceptionE(f SZend_Service_WindowsAzure_ExceptionEJe Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscriptionE2d gZend_Service_WindowsAzure_Diagnostics_ManagerE3c iZend_Service_WindowsAzure_Diagnostics_LogLevelE4b kZend_Service_WindowsAzure_Diagnostics_ExceptionENa Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscriptionEH` Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLogEL_ Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCountersEK^ Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstractE   T  W#uH],eL0iI/




\
0
			b	Aq4i4	:{N$h9Sw@                                                    ( SZend_Tool_Project_Context_ExceptionE- ]Zend_Tool_Project_Context_Content_EngineE3 iZend_Tool_Project_Context_Content_Engine_PhtmlE; yZend_Tool_Project_Context_Content_Engine_CodeGeneratorE0 cZend_Tool_Framework_System_Provider_VersionE0 cZend_Tool_Framework_System_Provider_PhpinfoE1 eZend_Tool_Framework_System_Provider_ManifestE/ aZend_Tool_Framework_System_Provider_ConfigE(  SZend_Tool_Framework_System_ManifestE- ]Zend_Tool_Framework_System_Action_DeleteE-~ ]Zend_Tool_Framework_System_Action_CreateE!} EZend_Tool_Framework_RegistryE+| YZend_Tool_Framework_Registry_ExceptionE+{ YZend_Tool_Framework_Provider_SignatureE,z [Zend_Tool_Framework_Provider_RepositoryE+y YZend_Tool_Framework_Provider_ExceptionE*x WZend_Tool_Framework_Provider_AbstractE&w OZend_Tool_Framework_Metadata_ToolE)v UZend_Tool_Framework_Metadata_DynamicE'u QZend_Tool_Framework_Metadata_BasicE,t [Zend_Tool_Framework_Manifest_RepositoryE+s YZend_Tool_Framework_Manifest_ExceptionE1r eZend_Tool_Framework_Loader_IncludePathLoaderEJq Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIteratorE+p YZend_Tool_Framework_Loader_BasicLoaderE(o SZend_Tool_Framework_Loader_AbstractE"n GZend_Tool_Framework_ExceptionE'm QZend_Tool_Framework_Client_StorageE1l eZend_Tool_Framework_Client_Storage_DirectoryE(k SZend_Tool_Framework_Client_ResponseEDj 	Zend_Tool_Framework_Client_Response_ContentDecorator_SeparatorE'i QZend_Tool_Framework_Client_RequestE(h SZend_Tool_Framework_Client_ManifestE9g uZend_Tool_Framework_Client_Interactive_InputResponseE8f sZend_Tool_Framework_Client_Interactive_InputRequestE8e sZend_Tool_Framework_Client_Interactive_InputHandlerE)d UZend_Tool_Framework_Client_ExceptionE'c QZend_Tool_Framework_Client_ConsoleEDb 	Zend_Tool_Framework_Client_Console_ResponseDecorator_IndentionEDa 	Zend_Tool_Framework_Client_Console_ResponseDecorator_ColorizerEC` Zend_Tool_Framework_Client_Console_ResponseDecorator_BlockizeEF_ Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenterE0^ cZend_Tool_Framework_Client_Console_ManifestE2] gZend_Tool_Framework_Client_Console_HelpSystemE6\ oZend_Tool_Framework_Client_Console_ArgumentParserE&[ OZend_Tool_Framework_Client_ConfigE(Z SZend_Tool_Framework_Client_AbstractE*Y WZend_Tool_Framework_Action_RepositoryE)X UZend_Tool_Framework_Action_ExceptionE$W KZend_Tool_Framework_Action_BaseEV 'Zend_TimeSyncEU 1Zend_TimeSync_SntpET 9Zend_TimeSync_ProtocolES /Zend_TimeSync_NtpER ;Zend_TimeSync_ExceptionEQ +Zend_Text_TableEP 3Zend_Text_Table_RowEO ?Zend_Text_Table_ExceptionE&N OZend_Text_Table_Decorator_UnicodeE$M KZend_Text_Table_Decorator_AsciiEL 9Zend_Text_Table_ColumnEK 3Zend_Text_MultiByteEJ -Zend_Text_FigletEI AZend_Text_Figlet_ExceptionEH 3Zend_Text_ExceptionE&G OZend_Test_PHPUnit_Db_SimpleTesterE,F [Zend_Test_PHPUnit_Db_Operation_TruncateE*E WZend_Test_PHPUnit_Db_Operation_InsertE-D ]Zend_Test_PHPUnit_Db_Operation_DeleteAllE*C WZend_Test_PHPUnit_Db_Metadata_GenericE#B IZend_Test_PHPUnit_Db_ExceptionE,A [Zend_Test_PHPUnit_Db_DataSet_QueryTableE.@ _Zend_Test_PHPUnit_Db_DataSet_QueryDataSetE0? cZend_Test_PHPUnit_Db_DataSet_DbTableDataSetE)> UZend_Test_PHPUnit_Db_DataSet_DbTableE*= WZend_Test_PHPUnit_Db_DataSet_DbRowsetE$< KZend_Test_PHPUnit_Db_ConnectionE'; QZend_Test_PHPUnit_DatabaseTestCaseE): UZend_Test_PHPUnit_ControllerTestCaseE09 cZend_Test_PHPUnit_Constraint_ResponseHeaderE*8 WZend_Test_PHPUnit_Constraint_RedirectE+7 YZend_Test_PHPUnit_Constraint_ExceptionE*6 WZend_Test_PHPUnit_Constraint_DomQueryE5 7Zend_Test_DbStatementE   F  a4zCi6h.a3



[
%				W	"~I]!q/da,o;LjF                              5N mZend_Tool_Project_Profile_Iterator_ContextFilterE-M ]Zend_Tool_Project_Profile_FileParser_XmlE(L SZend_Tool_Project_Profile_ExceptionE K CZend_Tool_Project_ExceptionE<J {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectoryE0I cZend_Tool_Project_Context_Zf_ViewsDirectoryE6H oZend_Tool_Project_Context_Zf_ViewScriptsDirectoryE0G cZend_Tool_Project_Context_Zf_ViewScriptFileE6F oZend_Tool_Project_Context_Zf_ViewHelpersDirectoryE6E oZend_Tool_Project_Context_Zf_ViewFiltersDirectoryEAD Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectoryE2C gZend_Tool_Project_Context_Zf_UploadsDirectoryE0B cZend_Tool_Project_Context_Zf_TestsDirectoryE7A qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFileE:@ wZend_Tool_Project_Context_Zf_TestPHPUnitBootstrapFileE@? Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectoryE1> eZend_Tool_Project_Context_Zf_TestLibraryFileE6= oZend_Tool_Project_Context_Zf_TestLibraryDirectoryE:< wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFileEB; Zend_Tool_Project_Context_Zf_TestApplicationModulesDirectoryEA: Zend_Tool_Project_Context_Zf_TestApplicationModuleDirectoryE:9 wZend_Tool_Project_Context_Zf_TestApplicationDirectoryE@8 Zend_Tool_Project_Context_Zf_TestApplicationControllerFileEE7 Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectoryE>6 Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFileE=5 }Zend_Tool_Project_Context_Zf_TestApplicationActionMethodE44 kZend_Tool_Project_Context_Zf_TemporaryDirectoryE33 iZend_Tool_Project_Context_Zf_SessionsDirectoryE82 sZend_Tool_Project_Context_Zf_SearchIndexesDirectoryE<1 {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectoryE80 sZend_Tool_Project_Context_Zf_PublicScriptsDirectoryE1/ eZend_Tool_Project_Context_Zf_PublicIndexFileE7. qZend_Tool_Project_Context_Zf_PublicImagesDirectoryE1- eZend_Tool_Project_Context_Zf_PublicDirectoryE5, mZend_Tool_Project_Context_Zf_ProjectProviderFileE2+ gZend_Tool_Project_Context_Zf_ModulesDirectoryE1* eZend_Tool_Project_Context_Zf_ModuleDirectoryE1) eZend_Tool_Project_Context_Zf_ModelsDirectoryE+( YZend_Tool_Project_Context_Zf_ModelFileE/' aZend_Tool_Project_Context_Zf_LogsDirectoryE2& gZend_Tool_Project_Context_Zf_LocalesDirectoryE2% gZend_Tool_Project_Context_Zf_LibraryDirectoryE2$ gZend_Tool_Project_Context_Zf_LayoutsDirectoryE8# sZend_Tool_Project_Context_Zf_LayoutScriptsDirectoryE2" gZend_Tool_Project_Context_Zf_LayoutScriptFileE.! _Zend_Tool_Project_Context_Zf_HtaccessFileE0  cZend_Tool_Project_Context_Zf_FormsDirectoryE* WZend_Tool_Project_Context_Zf_FormFileE/ aZend_Tool_Project_Context_Zf_DocsDirectoryE- ]Zend_Tool_Project_Context_Zf_DbTableFileE2 gZend_Tool_Project_Context_Zf_DbTableDirectoryE/ aZend_Tool_Project_Context_Zf_DataDirectoryE6 oZend_Tool_Project_Context_Zf_ControllersDirectoryE0 cZend_Tool_Project_Context_Zf_ControllerFileE2 gZend_Tool_Project_Context_Zf_ConfigsDirectoryE, [Zend_Tool_Project_Context_Zf_ConfigFileE0 cZend_Tool_Project_Context_Zf_CacheDirectoryE/ aZend_Tool_Project_Context_Zf_BootstrapFileE6 oZend_Tool_Project_Context_Zf_ApplicationDirectoryE7 qZend_Tool_Project_Context_Zf_ApplicationConfigFileE/ aZend_Tool_Project_Context_Zf_ApisDirectoryE. _Zend_Tool_Project_Context_Zf_ActionMethodE3 iZend_Tool_Project_Context_Zf_AbstractClassFileE@ Zend_Tool_Project_Context_System_ProjectProvidersDirectoryE8 sZend_Tool_Project_Context_System_ProjectProfileFileE6 oZend_Tool_Project_Context_System_ProjectDirectoryE) UZend_Tool_Project_Context_RepositoryE. _Zend_Tool_Project_Context_Filesystem_FileE3
 iZend_Tool_Project_Context_Filesystem_DirectoryE2	 gZend_Tool_Project_Context_Filesystem_AbstractE   i  M" {M vJ!nFjG$




|
e
J
4
#
				y	I	$gClG^8kL0gD$iDpL'bH)                     7 ;Zend_Validate_IdenticalE6 1Zend_Validate_IbanE5 9Zend_Validate_HostnameE4 /Zend_Validate_HexE3 ?Zend_Validate_GreaterThanE2 3Zend_Validate_FloatE!1 EZend_Validate_File_WordCountE0 ?Zend_Validate_File_UploadE/ ;Zend_Validate_File_SizeE. ;Zend_Validate_File_Sha1E!- EZend_Validate_File_NotExistsE , CZend_Validate_File_MimeTypeE+ 9Zend_Validate_File_Md5E* AZend_Validate_File_IsImageE$) KZend_Validate_File_IsCompressedE!( EZend_Validate_File_ImageSizeE' ;Zend_Validate_File_HashE!& EZend_Validate_File_FilesSizeE!% EZend_Validate_File_ExtensionE$ ?Zend_Validate_File_ExistsE'# QZend_Validate_File_ExcludeMimeTypeE(" SZend_Validate_File_ExcludeExtensionE! =Zend_Validate_File_Crc32E  =Zend_Validate_File_CountE ;Zend_Validate_ExceptionE AZend_Validate_EmailAddressE 5Zend_Validate_DigitsE" GZend_Validate_Db_RecordExistsE$ KZend_Validate_Db_NoRecordExistsE ?Zend_Validate_Db_AbstractE 1Zend_Validate_DateE =Zend_Validate_CreditCardE 3Zend_Validate_CcnumE 9Zend_Validate_CallbackE 7Zend_Validate_BetweenE 7Zend_Validate_BarcodeE AZend_Validate_Barcode_UpceE AZend_Validate_Barcode_UpcaE AZend_Validate_Barcode_SsccE$ KZend_Validate_Barcode_RoyalmailE" GZend_Validate_Barcode_PostnetE! EZend_Validate_Barcode_PlanetE# IZend_Validate_Barcode_LeitcodeE  CZend_Validate_Barcode_Itf14E AZend_Validate_Barcode_IssnE*
 WZend_Validate_Barcode_IntelligentMailE$	 KZend_Validate_Barcode_IdentcodeE! EZend_Validate_Barcode_Gtin14E! EZend_Validate_Barcode_Gtin13E! EZend_Validate_Barcode_Gtin12E AZend_Validate_Barcode_Ean8E AZend_Validate_Barcode_Ean5E AZend_Validate_Barcode_Ean2E  CZend_Validate_Barcode_Ean18E  CZend_Validate_Barcode_Ean14E   CZend_Validate_Barcode_Ean13E  CZend_Validate_Barcode_Ean12E$~ KZend_Validate_Barcode_Code93extE!} EZend_Validate_Barcode_Code93E$| KZend_Validate_Barcode_Code39extE!{ EZend_Validate_Barcode_Code39E,z [Zend_Validate_Barcode_Code25interleavedE!y EZend_Validate_Barcode_Code25E*x WZend_Validate_Barcode_AdapterAbstractEw 3Zend_Validate_AlphaEv 3Zend_Validate_AlnumEu 9Zend_Validate_AbstractEt Zend_UriEs 'Zend_Uri_HttpEr 1Zend_Uri_ExceptionEq )Zend_TranslateEp 7Zend_Translate_PluralEo =Zend_Translate_ExceptionEn 9Zend_Translate_AdapterE!m EZend_Translate_Adapter_XmlTmE!l EZend_Translate_Adapter_XliffEk AZend_Translate_Adapter_TmxEj AZend_Translate_Adapter_TbxEi ?Zend_Translate_Adapter_QtEh AZend_Translate_Adapter_IniE#g IZend_Translate_Adapter_GettextEf AZend_Translate_Adapter_CsvE!e EZend_Translate_Adapter_ArrayE$d KZend_Tool_Project_Provider_ViewE$c KZend_Tool_Project_Provider_TestE/b aZend_Tool_Project_Provider_ProjectProviderE'a QZend_Tool_Project_Provider_ProjectE'` QZend_Tool_Project_Provider_ProfileE&_ OZend_Tool_Project_Provider_ModuleE%^ MZend_Tool_Project_Provider_ModelE(] SZend_Tool_Project_Provider_ManifestE&\ OZend_Tool_Project_Provider_LayoutE$[ KZend_Tool_Project_Provider_FormE)Z UZend_Tool_Project_Provider_ExceptionE'Y QZend_Tool_Project_Provider_DbTableE)X UZend_Tool_Project_Provider_DbAdapterE*W WZend_Tool_Project_Provider_ControllerE+V YZend_Tool_Project_Provider_ApplicationE&U OZend_Tool_Project_Provider_ActionE(T SZend_Tool_Project_Provider_AbstractES ?Zend_Tool_Project_ProfileE'R QZend_Tool_Project_Profile_ResourceE9Q uZend_Tool_Project_Profile_Resource_SearchConstraintsE1P eZend_Tool_Project_Profile_Resource_ContainerE=O }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilterE   j  uV7`J5yZ5eAhB




l
J
(
				w	T	2	a1[0NZ-
m[1c>fK-pN2                        ! 5Zend_XmlRpc_ResponseE  ?Zend_XmlRpc_Response_HttpE 3Zend_XmlRpc_RequestE ?Zend_XmlRpc_Request_StdinE =Zend_XmlRpc_Request_HttpE$ KZend_XmlRpc_Generator_XmlWriterE, [Zend_XmlRpc_Generator_GeneratorAbstractE& OZend_XmlRpc_Generator_DomDocumentE /Zend_XmlRpc_FaultE 7Zend_XmlRpc_ExceptionE 1Zend_XmlRpc_ClientE# IZend_XmlRpc_Client_ServerProxyE+ YZend_XmlRpc_Client_ServerIntrospectionE+ YZend_XmlRpc_Client_IntrospectExceptionE% MZend_XmlRpc_Client_HttpExceptionE& OZend_XmlRpc_Client_FaultExceptionE! EZend_XmlRpc_Client_ExceptionE& OZend_Wildfire_Protocol_JsonStreamE! EZend_Wildfire_Plugin_FirePhpE. _Zend_Wildfire_Plugin_FirePhp_TableMessageE) UZend_Wildfire_Plugin_FirePhp_MessageE ;Zend_Wildfire_ExceptionE& OZend_Wildfire_Channel_HttpHeadersE
 Zend_ViewE	 -Zend_View_StreamE AZend_View_Helper_UserAgentE 5Zend_View_Helper_UrlE AZend_View_Helper_TranslateE =Zend_View_Helper_TinySrcE AZend_View_Helper_ServerUrlE) UZend_View_Helper_RenderToPlaceholderE! EZend_View_Helper_PlaceholderE* WZend_View_Helper_Placeholder_RegistryE4  kZend_View_Helper_Placeholder_Registry_ExceptionE+ YZend_View_Helper_Placeholder_ContainerE6~ oZend_View_Helper_Placeholder_Container_StandaloneE5} mZend_View_Helper_Placeholder_Container_ExceptionE4| kZend_View_Helper_Placeholder_Container_AbstractE!{ EZend_View_Helper_PartialLoopEz =Zend_View_Helper_PartialE'y QZend_View_Helper_Partial_ExceptionE'x QZend_View_Helper_PaginationControlE w CZend_View_Helper_NavigationE(v SZend_View_Helper_Navigation_SitemapE%u MZend_View_Helper_Navigation_MenuE&t OZend_View_Helper_Navigation_LinksE/s aZend_View_Helper_Navigation_HelperAbstractE,r [Zend_View_Helper_Navigation_BreadcrumbsEq ;Zend_View_Helper_LayoutEp 7Zend_View_Helper_JsonE"o GZend_View_Helper_InlineScriptE#n IZend_View_Helper_HtmlQuicktimeEm ?Zend_View_Helper_HtmlPageE l CZend_View_Helper_HtmlObjectEk ?Zend_View_Helper_HtmlListEj AZend_View_Helper_HtmlFlashE!i EZend_View_Helper_HtmlElementEh AZend_View_Helper_HeadTitleEg AZend_View_Helper_HeadStyleE f CZend_View_Helper_HeadScriptEe ?Zend_View_Helper_HeadMetaEd ?Zend_View_Helper_HeadLinkEc ?Zend_View_Helper_GravatarE"b GZend_View_Helper_FormTextareaEa ?Zend_View_Helper_FormTextE ` CZend_View_Helper_FormSubmitE _ CZend_View_Helper_FormSelectE^ AZend_View_Helper_FormResetE] AZend_View_Helper_FormRadioE"\ GZend_View_Helper_FormPasswordE[ ?Zend_View_Helper_FormNoteE'Z QZend_View_Helper_FormMultiCheckboxEY AZend_View_Helper_FormLabelEX AZend_View_Helper_FormImageE W CZend_View_Helper_FormHiddenEV ?Zend_View_Helper_FormFileE U CZend_View_Helper_FormErrorsE!T EZend_View_Helper_FormElementE"S GZend_View_Helper_FormCheckboxE R CZend_View_Helper_FormButtonEQ 7Zend_View_Helper_FormEP ?Zend_View_Helper_FieldsetEO =Zend_View_Helper_DoctypeE!N EZend_View_Helper_DeclareVarsEM 9Zend_View_Helper_CycleEL ?Zend_View_Helper_CurrencyEK =Zend_View_Helper_BaseUrlEJ ;Zend_View_Helper_ActionEI ?Zend_View_Helper_AbstractEH 3Zend_View_ExceptionEG 1Zend_View_AbstractEF %Zend_VersionEE 'Zend_ValidateED AZend_Validate_StringLengthE#C IZend_Validate_Sitemap_PriorityEB ?Zend_Validate_Sitemap_LocE"A GZend_Validate_Sitemap_LastmodE%@ MZend_Validate_Sitemap_ChangefreqE? 3Zend_Validate_RegexE> 9Zend_Validate_PostCodeE= 9Zend_Validate_NotEmptyE< 9Zend_Validate_LessThanE; 1Zend_Validate_IsbnE: -Zend_Validate_IpE9 /Zend_Validate_IntE8 7Zend_Validate_InArrayE   j  w\<kG%oU,dI.jG#




_
A
(
						q	N	)e5R%~Y2\5X.tS/oN2zV3        AZend_Barcode_Object_Code39F*
 WZend_Barcode_Object_Code25interleavedF	 AZend_Barcode_Object_Code25F  CZend_Barcode_Object_Code128F 9Zend_Barcode_ExceptionF Zend_AuthF ?Zend_Auth_Storage_SessionF$ KZend_Auth_Storage_NonPersistentF  CZend_Auth_Storage_ExceptionF -Zend_Auth_ResultF 3Zend_Auth_ExceptionF  =Zend_Auth_Adapter_OpenIdF 9Zend_Auth_Adapter_LdapF~ AZend_Auth_Adapter_InfoCardF} 9Zend_Auth_Adapter_HttpF)| UZend_Auth_Adapter_Http_Resolver_FileF.{ _Zend_Auth_Adapter_Http_Resolver_ExceptionF z CZend_Auth_Adapter_ExceptionFy =Zend_Auth_Adapter_DigestFx ?Zend_Auth_Adapter_DbTableFw -Zend_ApplicationF#v IZend_Application_Resource_ViewF(u SZend_Application_Resource_UserAgentF(t SZend_Application_Resource_TranslateF&s OZend_Application_Resource_SessionF%r MZend_Application_Resource_RouterF/q aZend_Application_Resource_ResourceAbstractF)p UZend_Application_Resource_NavigationF&o OZend_Application_Resource_MultidbF&n OZend_Application_Resource_ModulesF#m IZend_Application_Resource_MailF"l GZend_Application_Resource_LogF%k MZend_Application_Resource_LocaleF%j MZend_Application_Resource_LayoutF.i _Zend_Application_Resource_FrontcontrollerF(h SZend_Application_Resource_ExceptionF#g IZend_Application_Resource_DojoF!f EZend_Application_Resource_DbF+e YZend_Application_Resource_CachemanagerF&d OZend_Application_Module_BootstrapF'c QZend_Application_Module_AutoloaderFb AZend_Application_ExceptionF)a UZend_Application_Bootstrap_ExceptionF1` eZend_Application_Bootstrap_BootstrapAbstractF)_ UZend_Application_Bootstrap_BootstrapF^ ?Zend_Amf_Value_TraitsInfoF-] ]Zend_Amf_Value_Messaging_RemotingMessageF*\ WZend_Amf_Value_Messaging_ErrorMessageF,[ [Zend_Amf_Value_Messaging_CommandMessageF*Z WZend_Amf_Value_Messaging_AsyncMessageF-Y ]Zend_Amf_Value_Messaging_ArrayCollectionF0X cZend_Amf_Value_Messaging_AcknowledgeMessageF-W ]Zend_Amf_Value_Messaging_AbstractMessageF!V EZend_Amf_Value_MessageHeaderFU AZend_Amf_Value_MessageBodyFT =Zend_Amf_Value_ByteArrayFS AZend_Amf_Util_BinaryStreamFR +Zend_Amf_ServerFQ ?Zend_Amf_Server_ExceptionFP /Zend_Amf_ResponseFO 9Zend_Amf_Response_HttpFN -Zend_Amf_RequestFM 7Zend_Amf_Request_HttpFL ?Zend_Amf_Parse_TypeLoaderFK ?Zend_Amf_Parse_SerializerF#J IZend_Amf_Parse_Resource_StreamF(I SZend_Amf_Parse_Resource_MysqlResultF)H UZend_Amf_Parse_Resource_MysqliResultF G CZend_Amf_Parse_OutputStreamFF AZend_Amf_Parse_InputStreamF E CZend_Amf_Parse_DeserializerF#D IZend_Amf_Parse_Amf3_SerializerF%C MZend_Amf_Parse_Amf3_DeserializerF#B IZend_Amf_Parse_Amf0_SerializerF%A MZend_Amf_Parse_Amf0_DeserializerF@ 1Zend_Amf_ExceptionF? 1Zend_Amf_ConstantsF> 9Zend_Amf_Auth_AbstractF = CZend_Amf_Adobe_IntrospectorF< AZend_Amf_Adobe_DbInspectorF; 3Zend_Amf_Adobe_AuthF: Zend_AclF9 'Zend_Acl_RoleF8 9Zend_Acl_Role_RegistryF%7 MZend_Acl_Role_Registry_ExceptionF6 /Zend_Acl_ResourceF5 1Zend_Acl_ExceptionF4 /Zend_XmlRpc_ValueE3 =Zend_XmlRpc_Value_StructE2 =Zend_XmlRpc_Value_StringE1 =Zend_XmlRpc_Value_ScalarE0 7Zend_XmlRpc_Value_NilE/ ?Zend_XmlRpc_Value_IntegerE . CZend_XmlRpc_Value_ExceptionE- =Zend_XmlRpc_Value_DoubleE, AZend_XmlRpc_Value_DateTimeE!+ EZend_XmlRpc_Value_CollectionE* ?Zend_XmlRpc_Value_BooleanE!) EZend_XmlRpc_Value_BigIntegerE( =Zend_XmlRpc_Value_Base64E' ;Zend_XmlRpc_Value_ArrayE& 1Zend_XmlRpc_ServerE% ?Zend_XmlRpc_Server_SystemE$ =Zend_XmlRpc_Server_FaultE!# EZend_XmlRpc_Server_ExceptionE" =Zend_XmlRpc_Server_CacheE   W  L%~]4X4d=~R


U
)				]	$U$c8[-Z9g6Z+_1h.                                            # IZend_Feed_Reader_FeedInterfaceF$ KZend_Feed_Reader_EntryInterfaceF7 qZend_Feed_Pubsubhubbub_Model_SubscriptionInterfaceF- ]Zend_Feed_Pubsubhubbub_CallbackInterfaceF  CZend_Feed_Builder_InterfaceF 
 CZend_Db_Statement_InterfaceF$	 KZend_Currency_CurrencyInterfaceF) UZend_Crypt_Math_BigInteger_InterfaceF+ YZend_Controller_Router_Route_InterfaceF% MZend_Controller_Router_InterfaceF) UZend_Controller_Dispatcher_InterfaceF% MZend_Controller_Action_InterfaceF& OZend_Cloud_StorageService_AdapterF$ KZend_Cloud_QueueService_AdapterF, [Zend_Cloud_DocumentService_QueryAdapterF'  QZend_Cloud_DocumentService_AdapterF 5Zend_Captcha_AdapterF!~ EZend_Cache_Backend_InterfaceF)} UZend_Cache_Backend_ExtendedInterfaceF | CZend_Auth_Storage_InterfaceF { CZend_Auth_Adapter_InterfaceF.z _Zend_Auth_Adapter_Http_Resolver_InterfaceF'y QZend_Application_Resource_ResourceF4x kZend_Application_Bootstrap_ResourceBootstrapperF,w [Zend_Application_Bootstrap_BootstrapperFv ;Zend_Acl_Role_InterfaceF u CZend_Acl_Resource_InterfaceFt ?Zend_Acl_Assert_InterfaceF#s IZend_Wildfire_Plugin_InterfaceE$r KZend_Wildfire_Channel_InterfaceEq 3Zend_View_InterfaceE'p QZend_View_Helper_Navigation_HelperEo AZend_View_Helper_InterfaceEn ;Zend_Validate_InterfaceE+m YZend_Validate_Barcode_AdapterInterfaceE3l iZend_Tool_Project_Profile_FileParser_InterfaceE:k wZend_Tool_Project_Context_System_TopLevelRestrictableE5j mZend_Tool_Project_Context_System_NotOverwritableE/i aZend_Tool_Project_Context_System_InterfaceE(h SZend_Tool_Project_Context_InterfaceE+g YZend_Tool_Framework_Registry_InterfaceE2f gZend_Tool_Framework_Registry_EnabledInterfaceE-e ]Zend_Tool_Framework_Provider_PretendableE+d YZend_Tool_Framework_Provider_InterfaceE.c _Zend_Tool_Framework_Provider_InteractableE/b aZend_Tool_Framework_Provider_InitializableE;a yZend_Tool_Framework_Provider_DocblockManifestInterfaceE+` YZend_Tool_Framework_Metadata_InterfaceE._ _Zend_Tool_Framework_Metadata_AttributableE6^ oZend_Tool_Framework_Manifest_ProviderManifestableE6] oZend_Tool_Framework_Manifest_MetadataManifestableE+\ YZend_Tool_Framework_Manifest_InterfaceE+[ YZend_Tool_Framework_Manifest_IndexableE4Z kZend_Tool_Framework_Manifest_ActionManifestableE)Y UZend_Tool_Framework_Loader_InterfaceE8X sZend_Tool_Framework_Client_Storage_AdapterInterfaceEDW 	Zend_Tool_Framework_Client_Response_ContentDecorator_InterfaceE;V yZend_Tool_Framework_Client_Interactive_OutputInterfaceE:U wZend_Tool_Framework_Client_Interactive_InputInterfaceE)T UZend_Tool_Framework_Action_InterfaceE(S SZend_Text_Table_Decorator_InterfaceER /Zend_Tag_TaggableE&Q OZend_Soap_Wsdl_Strategy_InterfaceE%P MZend_Session_Validator_InterfaceE'O QZend_Session_SaveHandler_InterfaceE$N KZend_Service_ShortUrl_ShortenerEIM Zend_Service_DeveloperGarden_Response_SecurityTokenServer_InterfaceEL 7Zend_Server_InterfaceE-K ]Zend_Serializer_Adapter_AdapterInterfaceE4J kZend_Search_Lucene_Search_Highlighter_InterfaceE!I EZend_Search_Lucene_InterfaceE3H iZend_Search_Lucene_Index_TermsStream_InterfaceE$G KZend_Queue_Stomp_FrameInterfaceE0F cZend_Queue_Stomp_Client_ConnectionInterfaceE(E SZend_Queue_Adapter_AdapterInterfaceED ?Zend_Pdf_Filter_InterfaceE&C OZend_Pdf_ElementFactory_InterfaceEB ?Zend_Pdf_Canvas_InterfaceE,A [Zend_Paginator_ScrollingStyle_InterfaceE$@ KZend_Paginator_AdapterAggregateE%? MZend_Paginator_Adapter_InterfaceE&> OZend_Oauth_Config_ConfigInterfaceE$= KZend_Memory_Container_InterfaceE1< eZend_Markup_Renderer_TokenConverterInterfaceE'; QZend_Markup_Parser_ParserInterfaceE): UZend_Mail_Storage_Writable_InterfaceE'9 QZend_Mail_Storage_Folder_InterfaceE   c  {Y3xT.~O-gE#pE





]
<
						q	R	6	JtEu=X0p9rN)d<j4         1n eZend_CodeGenerator_Php_Property_DefaultValueF%m MZend_CodeGenerator_Php_ParameterF2l gZend_CodeGenerator_Php_Parameter_DefaultValueF"k GZend_CodeGenerator_Php_MethodF,j [Zend_CodeGenerator_Php_Member_ContainerF+i YZend_CodeGenerator_Php_Member_AbstractF h CZend_CodeGenerator_Php_FileF%g MZend_CodeGenerator_Php_ExceptionF$f KZend_CodeGenerator_Php_DocblockF(e SZend_CodeGenerator_Php_Docblock_TagF/d aZend_CodeGenerator_Php_Docblock_Tag_ReturnF.c _Zend_CodeGenerator_Php_Docblock_Tag_ParamF0b cZend_CodeGenerator_Php_Docblock_Tag_LicenseF!a EZend_CodeGenerator_Php_ClassF ` CZend_CodeGenerator_Php_BodyF$_ KZend_CodeGenerator_Php_AbstractF!^ EZend_CodeGenerator_ExceptionF ] CZend_CodeGenerator_AbstractF&\ OZend_Cloud_StorageService_FactoryF([ SZend_Cloud_StorageService_ExceptionF3Z iZend_Cloud_StorageService_Adapter_WindowsAzureF)Y UZend_Cloud_StorageService_Adapter_S3F/X aZend_Cloud_StorageService_Adapter_NirvanixF1W eZend_Cloud_StorageService_Adapter_FileSystemF'V QZend_Cloud_QueueService_MessageSetF$U KZend_Cloud_QueueService_MessageF$T KZend_Cloud_QueueService_FactoryF&S OZend_Cloud_QueueService_ExceptionF.R _Zend_Cloud_QueueService_Adapter_ZendQueueF1Q eZend_Cloud_QueueService_Adapter_WindowsAzureF(P SZend_Cloud_QueueService_Adapter_SqsF4O kZend_Cloud_QueueService_Adapter_AbstractAdapterF.N _Zend_Cloud_OperationNotAvailableExceptionFM 5Zend_Cloud_ExceptionF%L MZend_Cloud_DocumentService_QueryF'K QZend_Cloud_DocumentService_FactoryF)J UZend_Cloud_DocumentService_ExceptionF+I YZend_Cloud_DocumentService_DocumentSetF(H SZend_Cloud_DocumentService_DocumentF4G kZend_Cloud_DocumentService_Adapter_WindowsAzureF:F wZend_Cloud_DocumentService_Adapter_WindowsAzure_QueryF0E cZend_Cloud_DocumentService_Adapter_SimpleDbF6D oZend_Cloud_DocumentService_Adapter_SimpleDb_QueryF7C qZend_Cloud_DocumentService_Adapter_AbstractAdapterFB AZend_Cloud_AbstractFactoryFA /Zend_Captcha_WordF@ 9Zend_Captcha_ReCaptchaF? 1Zend_Captcha_ImageF> 3Zend_Captcha_FigletF= 9Zend_Captcha_ExceptionF< /Zend_Captcha_DumbF; /Zend_Captcha_BaseF: !Zend_CacheF9 1Zend_Cache_ManagerF8 =Zend_Cache_Frontend_PageF7 AZend_Cache_Frontend_OutputF!6 EZend_Cache_Frontend_FunctionF5 =Zend_Cache_Frontend_FileF4 ?Zend_Cache_Frontend_ClassF 3 CZend_Cache_Frontend_CaptureF2 5Zend_Cache_ExceptionF1 +Zend_Cache_CoreF0 1Zend_Cache_BackendF"/ GZend_Cache_Backend_ZendServerF(. SZend_Cache_Backend_ZendServer_ShMemF'- QZend_Cache_Backend_ZendServer_DiskF$, KZend_Cache_Backend_ZendPlatformF+ ?Zend_Cache_Backend_XcacheF * CZend_Cache_Backend_WinCacheF!) EZend_Cache_Backend_TwoLevelsF( ;Zend_Cache_Backend_TestF' ?Zend_Cache_Backend_StaticF& ?Zend_Cache_Backend_SqliteF!% EZend_Cache_Backend_MemcachedF$$ KZend_Cache_Backend_LibmemcachedF# ;Zend_Cache_Backend_FileF!" EZend_Cache_Backend_BlackHoleF! 9Zend_Cache_Backend_ApcF  %Zend_BarcodeF ?Zend_Barcode_Renderer_SvgF+ YZend_Barcode_Renderer_RendererAbstractF ?Zend_Barcode_Renderer_PdfF  CZend_Barcode_Renderer_ImageF$ KZend_Barcode_Renderer_ExceptionF =Zend_Barcode_Object_UpceF =Zend_Barcode_Object_UpcaF" GZend_Barcode_Object_RoyalmailF  CZend_Barcode_Object_PostnetF AZend_Barcode_Object_PlanetF' QZend_Barcode_Object_ObjectAbstractF! EZend_Barcode_Object_LeitcodeF ?Zend_Barcode_Object_Itf14F" GZend_Barcode_Object_IdentcodeF" GZend_Barcode_Object_ExceptionF ?Zend_Barcode_Object_ErrorF =Zend_Barcode_Object_Ean8F =Zend_Barcode_Object_Ean5F =Zend_Barcode_Object_Ean2F ?Zend_Barcode_Object_Ean13F   g  h@!vb< d(Qc)




Y
7
				t	J	!{T*^5[0vT<ya@gJ.nO&zX6                               U ?Zend_Db_Adapter_Pdo_PgsqlFT ;Zend_Db_Adapter_Pdo_OciFS ?Zend_Db_Adapter_Pdo_MysqlFR ?Zend_Db_Adapter_Pdo_MssqlFQ ;Zend_Db_Adapter_Pdo_IbmF P CZend_Db_Adapter_Pdo_Ibm_IdsF O CZend_Db_Adapter_Pdo_Ibm_Db2F!N EZend_Db_Adapter_Pdo_AbstractFM 9Zend_Db_Adapter_OracleF%L MZend_Db_Adapter_Oracle_ExceptionFK 9Zend_Db_Adapter_MysqliF%J MZend_Db_Adapter_Mysqli_ExceptionFI ?Zend_Db_Adapter_ExceptionFH 3Zend_Db_Adapter_Db2F"G GZend_Db_Adapter_Db2_ExceptionFF =Zend_Db_Adapter_AbstractFE Zend_DateFD 3Zend_Date_ExceptionFC 5Zend_Date_DateObjectFB -Zend_Date_CitiesFA 'Zend_CurrencyF@ ;Zend_Currency_ExceptionF? !Zend_CryptF> )Zend_Crypt_RsaF= 1Zend_Crypt_Rsa_KeyF< ?Zend_Crypt_Rsa_Key_PublicF; AZend_Crypt_Rsa_Key_PrivateF: =Zend_Crypt_Rsa_ExceptionF9 +Zend_Crypt_MathF8 ?Zend_Crypt_Math_ExceptionF7 AZend_Crypt_Math_BigIntegerF#6 IZend_Crypt_Math_BigInteger_GmpF)5 UZend_Crypt_Math_BigInteger_ExceptionF&4 OZend_Crypt_Math_BigInteger_BcmathF3 +Zend_Crypt_HmacF2 ?Zend_Crypt_Hmac_ExceptionF1 5Zend_Crypt_ExceptionF0 =Zend_Crypt_DiffieHellmanF'/ QZend_Crypt_DiffieHellman_ExceptionF!. EZend_Controller_Router_RouteF(- SZend_Controller_Router_Route_StaticF', QZend_Controller_Router_Route_RegexF(+ SZend_Controller_Router_Route_ModuleF** WZend_Controller_Router_Route_HostnameF') QZend_Controller_Router_Route_ChainF*( WZend_Controller_Router_Route_AbstractF#' IZend_Controller_Router_RewriteF%& MZend_Controller_Router_ExceptionF$% KZend_Controller_Router_AbstractF*$ WZend_Controller_Response_HttpTestCaseF"# GZend_Controller_Response_HttpF'" QZend_Controller_Response_ExceptionF!! EZend_Controller_Response_CliF&  OZend_Controller_Response_AbstractF# IZend_Controller_Request_SimpleF) UZend_Controller_Request_HttpTestCaseF! EZend_Controller_Request_HttpF& OZend_Controller_Request_ExceptionF& OZend_Controller_Request_Apache404F% MZend_Controller_Request_AbstractF& OZend_Controller_Plugin_PutHandlerF( SZend_Controller_Plugin_ErrorHandlerF" GZend_Controller_Plugin_BrokerF' QZend_Controller_Plugin_ActionStackF$ KZend_Controller_Plugin_AbstractF 7Zend_Controller_FrontF ?Zend_Controller_ExceptionF( SZend_Controller_Dispatcher_StandardF) UZend_Controller_Dispatcher_ExceptionF( SZend_Controller_Dispatcher_AbstractF 9Zend_Controller_ActionF( SZend_Controller_Action_HelperBrokerF6 oZend_Controller_Action_HelperBroker_PriorityStackF/ aZend_Controller_Action_Helper_ViewRendererF& OZend_Controller_Action_Helper_UrlF-
 ]Zend_Controller_Action_Helper_RedirectorF'	 QZend_Controller_Action_Helper_JsonF1 eZend_Controller_Action_Helper_FlashMessengerF0 cZend_Controller_Action_Helper_ContextSwitchF( SZend_Controller_Action_Helper_CacheF< {Zend_Controller_Action_Helper_AutoCompleteScriptaculousF3 iZend_Controller_Action_Helper_AutoCompleteDojoF8 sZend_Controller_Action_Helper_AutoComplete_AbstractF. _Zend_Controller_Action_Helper_AjaxContextF. _Zend_Controller_Action_Helper_ActionStackF+  YZend_Controller_Action_Helper_AbstractF% MZend_Controller_Action_ExceptionF~ 3Zend_Console_GetoptF"} GZend_Console_Getopt_ExceptionF| #Zend_ConfigF{ -Zend_Config_YamlFz +Zend_Config_XmlFy 1Zend_Config_WriterFx ;Zend_Config_Writer_YamlFw 9Zend_Config_Writer_XmlFv ;Zend_Config_Writer_JsonFu 9Zend_Config_Writer_IniF$t KZend_Config_Writer_FileAbstractFs =Zend_Config_Writer_ArrayFr -Zend_Config_JsonFq +Zend_Config_IniFp 7Zend_Config_ExceptionF$o KZend_CodeGenerator_Php_PropertyF   e  {fC"lHlN#eA'ycS@#



\
/				v	F	~O$P#nHqC$a<lB|N+vL                                         !: EZend_Dojo_View_Helper_SliderF)9 UZend_Dojo_View_Helper_SimpleTextareaF&8 OZend_Dojo_View_Helper_RadioButtonF*7 WZend_Dojo_View_Helper_PasswordTextBoxF(6 SZend_Dojo_View_Helper_NumberTextBoxF(5 SZend_Dojo_View_Helper_NumberSpinnerF+4 YZend_Dojo_View_Helper_HorizontalSliderF3 AZend_Dojo_View_Helper_FormF*2 WZend_Dojo_View_Helper_FilteringSelectF!1 EZend_Dojo_View_Helper_EditorF0 AZend_Dojo_View_Helper_DojoF)/ UZend_Dojo_View_Helper_Dojo_ContainerF). UZend_Dojo_View_Helper_DijitContainerF - CZend_Dojo_View_Helper_DijitF&, OZend_Dojo_View_Helper_DateTextBoxF&+ OZend_Dojo_View_Helper_CustomDijitF** WZend_Dojo_View_Helper_CurrencyTextBoxF&) OZend_Dojo_View_Helper_ContentPaneF#( IZend_Dojo_View_Helper_ComboBoxF#' IZend_Dojo_View_Helper_CheckBoxF!& EZend_Dojo_View_Helper_ButtonF*% WZend_Dojo_View_Helper_BorderContainerF($ SZend_Dojo_View_Helper_AccordionPaneF-# ]Zend_Dojo_View_Helper_AccordionContainerF" =Zend_Dojo_View_ExceptionF! )Zend_Dojo_FormF  9Zend_Dojo_Form_SubFormF* WZend_Dojo_Form_Element_VerticalSliderF- ]Zend_Dojo_Form_Element_ValidationTextBoxF' QZend_Dojo_Form_Element_TimeTextBoxF# IZend_Dojo_Form_Element_TextBoxF$ KZend_Dojo_Form_Element_TextareaF( SZend_Dojo_Form_Element_SubmitButtonF" GZend_Dojo_Form_Element_SliderF* WZend_Dojo_Form_Element_SimpleTextareaF' QZend_Dojo_Form_Element_RadioButtonF+ YZend_Dojo_Form_Element_PasswordTextBoxF) UZend_Dojo_Form_Element_NumberTextBoxF) UZend_Dojo_Form_Element_NumberSpinnerF, [Zend_Dojo_Form_Element_HorizontalSliderF+ YZend_Dojo_Form_Element_FilteringSelectF" GZend_Dojo_Form_Element_EditorF& OZend_Dojo_Form_Element_DijitMultiF! EZend_Dojo_Form_Element_DijitF' QZend_Dojo_Form_Element_DateTextBoxF+ YZend_Dojo_Form_Element_CurrencyTextBoxF$ KZend_Dojo_Form_Element_ComboBoxF$ KZend_Dojo_Form_Element_CheckBoxF"
 GZend_Dojo_Form_Element_ButtonF 	 CZend_Dojo_Form_DisplayGroupF* WZend_Dojo_Form_Decorator_TabContainerF, [Zend_Dojo_Form_Decorator_StackContainerF, [Zend_Dojo_Form_Decorator_SplitContainerF' QZend_Dojo_Form_Decorator_DijitFormF* WZend_Dojo_Form_Decorator_DijitElementF, [Zend_Dojo_Form_Decorator_DijitContainerF) UZend_Dojo_Form_Decorator_ContentPaneF- ]Zend_Dojo_Form_Decorator_BorderContainerF+  YZend_Dojo_Form_Decorator_AccordionPaneF0 cZend_Dojo_Form_Decorator_AccordionContainerF~ 3Zend_Dojo_ExceptionF} )Zend_Dojo_DataF| 5Zend_Dojo_BuildLayerF{ !Zend_DebugFz Zend_DbFy 'Zend_Db_TableFx 5Zend_Db_Table_SelectF#w IZend_Db_Table_Select_ExceptionFv 5Zend_Db_Table_RowsetF#u IZend_Db_Table_Rowset_ExceptionF"t GZend_Db_Table_Rowset_AbstractFs /Zend_Db_Table_RowF r CZend_Db_Table_Row_ExceptionFq AZend_Db_Table_Row_AbstractFp ;Zend_Db_Table_ExceptionFo =Zend_Db_Table_DefinitionFn 9Zend_Db_Table_AbstractFm /Zend_Db_StatementFl =Zend_Db_Statement_SqlsrvF'k QZend_Db_Statement_Sqlsrv_ExceptionFj 7Zend_Db_Statement_PdoFi ?Zend_Db_Statement_Pdo_OciFh ?Zend_Db_Statement_Pdo_IbmFg =Zend_Db_Statement_OracleF'f QZend_Db_Statement_Oracle_ExceptionFe =Zend_Db_Statement_MysqliF'd QZend_Db_Statement_Mysqli_ExceptionF c CZend_Db_Statement_ExceptionFb 7Zend_Db_Statement_Db2F$a KZend_Db_Statement_Db2_ExceptionF` )Zend_Db_SelectF_ =Zend_Db_Select_ExceptionF^ -Zend_Db_ProfilerF] 9Zend_Db_Profiler_QueryF\ =Zend_Db_Profiler_FirebugF[ AZend_Db_Profiler_ExceptionFZ %Zend_Db_ExprFY /Zend_Db_ExceptionFX 9Zend_Db_Adapter_SqlsrvF%W MZend_Db_Adapter_Sqlsrv_ExceptionFV AZend_Db_Adapter_Pdo_SqliteF   \  {P)|jO.lD#	yI f3	



[
7
				n	=	e4t@jD#
zD
a2U[.j?                      -Zend_Feed_WriterF ;Zend_Feed_Writer_SourceF/ aZend_Feed_Writer_Renderer_RendererAbstractF' QZend_Feed_Writer_Renderer_Feed_RssF( SZend_Feed_Writer_Renderer_Feed_AtomF/ aZend_Feed_Writer_Renderer_Feed_Atom_SourceF5 mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstractF( SZend_Feed_Writer_Renderer_Entry_RssF) UZend_Feed_Writer_Renderer_Entry_AtomF1 eZend_Feed_Writer_Renderer_Entry_Atom_DeletedF 7Zend_Feed_Writer_FeedF' QZend_Feed_Writer_Feed_FeedAbstractF<
 {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_EntryF8	 sZend_Feed_Writer_Extension_Threading_Renderer_EntryF4 kZend_Feed_Writer_Extension_Slash_Renderer_EntryF0 cZend_Feed_Writer_Extension_RendererAbstractF4 kZend_Feed_Writer_Extension_ITunes_Renderer_FeedF5 mZend_Feed_Writer_Extension_ITunes_Renderer_EntryF+ YZend_Feed_Writer_Extension_ITunes_FeedF, [Zend_Feed_Writer_Extension_ITunes_EntryF8 sZend_Feed_Writer_Extension_DublinCore_Renderer_FeedF9 uZend_Feed_Writer_Extension_DublinCore_Renderer_EntryF6  oZend_Feed_Writer_Extension_Content_Renderer_EntryF2 gZend_Feed_Writer_Extension_Atom_Renderer_FeedF6~ oZend_Feed_Writer_Exception_InvalidMethodExceptionF} 9Zend_Feed_Writer_EntryF| =Zend_Feed_Writer_DeletedF{ 'Zend_Feed_RssFz -Zend_Feed_ReaderFy =Zend_Feed_Reader_FeedSetF"x GZend_Feed_Reader_FeedAbstractFw ?Zend_Feed_Reader_Feed_RssFv AZend_Feed_Reader_Feed_AtomF&u OZend_Feed_Reader_Feed_Atom_SourceF3t iZend_Feed_Reader_Extension_WellFormedWeb_EntryF,s [Zend_Feed_Reader_Extension_Thread_EntryF0r cZend_Feed_Reader_Extension_Syndication_FeedF+q YZend_Feed_Reader_Extension_Slash_EntryF,p [Zend_Feed_Reader_Extension_Podcast_FeedF-o ]Zend_Feed_Reader_Extension_Podcast_EntryF,n [Zend_Feed_Reader_Extension_FeedAbstractF-m ]Zend_Feed_Reader_Extension_EntryAbstractF/l aZend_Feed_Reader_Extension_DublinCore_FeedF0k cZend_Feed_Reader_Extension_DublinCore_EntryF4j kZend_Feed_Reader_Extension_CreativeCommons_FeedF5i mZend_Feed_Reader_Extension_CreativeCommons_EntryF-h ]Zend_Feed_Reader_Extension_Content_EntryF)g UZend_Feed_Reader_Extension_Atom_FeedF*f WZend_Feed_Reader_Extension_Atom_EntryF#e IZend_Feed_Reader_EntryAbstractFd AZend_Feed_Reader_Entry_RssF c CZend_Feed_Reader_Entry_AtomF b CZend_Feed_Reader_CollectionF3a iZend_Feed_Reader_Collection_CollectionAbstractF)` UZend_Feed_Reader_Collection_CategoryF'_ QZend_Feed_Reader_Collection_AuthorF^ 9Zend_Feed_PubsubhubbubF&] OZend_Feed_Pubsubhubbub_SubscriberF/\ aZend_Feed_Pubsubhubbub_Subscriber_CallbackF%[ MZend_Feed_Pubsubhubbub_PublisherF.Z _Zend_Feed_Pubsubhubbub_Model_SubscriptionF/Y aZend_Feed_Pubsubhubbub_Model_ModelAbstractF(X SZend_Feed_Pubsubhubbub_HttpResponseF%W MZend_Feed_Pubsubhubbub_ExceptionF,V [Zend_Feed_Pubsubhubbub_CallbackAbstractFU 3Zend_Feed_ExceptionFT 3Zend_Feed_Entry_RssFS 5Zend_Feed_Entry_AtomFR =Zend_Feed_Entry_AbstractFQ /Zend_Feed_ElementFP /Zend_Feed_BuilderFO =Zend_Feed_Builder_HeaderF$N KZend_Feed_Builder_Header_ItunesF M CZend_Feed_Builder_ExceptionFL ;Zend_Feed_Builder_EntryFK )Zend_Feed_AtomFJ 1Zend_Feed_AbstractFI )Zend_ExceptionFH )Zend_Dom_QueryFG 7Zend_Dom_Query_ResultFF =Zend_Dom_Query_Css2XpathFE 1Zend_Dom_ExceptionFD Zend_DojoF)C UZend_Dojo_View_Helper_VerticalSliderF,B [Zend_Dojo_View_Helper_ValidationTextBoxF&A OZend_Dojo_View_Helper_TimeTextBoxF"@ GZend_Dojo_View_Helper_TextBoxF#? IZend_Dojo_View_Helper_TextareaF'> QZend_Dojo_View_Helper_TabContainerF'= QZend_Dojo_View_Helper_SubmitButtonF)< UZend_Dojo_View_Helper_StackContainerF); UZend_Dojo_View_Helper_SplitContainerF   o uZ@&	a@jR/lL)dK+




k
B
				i	=	_0]5\5}V/gH'vV6x\B0jM,                              $ KZend_Gdata_App_Extension_AuthorF =Zend_Gdata_App_ExceptionF 5Zend_Gdata_App_EntryF, [Zend_Gdata_App_CaptchaRequiredExceptionF# IZend_Gdata_App_BaseMediaSourceF  3Zend_Gdata_App_BaseF* WZend_Gdata_App_BadMethodCallExceptionF!~ EZend_Gdata_App_AuthExceptionF} Zend_FormF| /Zend_Form_SubFormF{ 3Zend_Form_ExceptionFz /Zend_Form_ElementFy ;Zend_Form_Element_XhtmlFx AZend_Form_Element_TextareaFw 9Zend_Form_Element_TextFv =Zend_Form_Element_SubmitFu =Zend_Form_Element_SelectFt ;Zend_Form_Element_ResetFs ;Zend_Form_Element_RadioFr AZend_Form_Element_PasswordF"q GZend_Form_Element_MultiselectF$p KZend_Form_Element_MultiCheckboxFo ;Zend_Form_Element_MultiFn ;Zend_Form_Element_ImageFm =Zend_Form_Element_HiddenFl 9Zend_Form_Element_HashFk 9Zend_Form_Element_FileF j CZend_Form_Element_ExceptionFi AZend_Form_Element_CheckboxFh ?Zend_Form_Element_CaptchaFg =Zend_Form_Element_ButtonFf 9Zend_Form_DisplayGroupF#e IZend_Form_Decorator_ViewScriptF#d IZend_Form_Decorator_ViewHelperF c CZend_Form_Decorator_TooltipF(b SZend_Form_Decorator_PrepareElementsFa ?Zend_Form_Decorator_LabelF` ?Zend_Form_Decorator_ImageF _ CZend_Form_Decorator_HtmlTagF#^ IZend_Form_Decorator_FormErrorsF%] MZend_Form_Decorator_FormElementsF\ =Zend_Form_Decorator_FormF[ =Zend_Form_Decorator_FileF!Z EZend_Form_Decorator_FieldsetF"Y GZend_Form_Decorator_ExceptionFX AZend_Form_Decorator_ErrorsF$W KZend_Form_Decorator_DtDdWrapperF$V KZend_Form_Decorator_DescriptionF U CZend_Form_Decorator_CaptchaF%T MZend_Form_Decorator_Captcha_WordF!S EZend_Form_Decorator_CallbackF!R EZend_Form_Decorator_AbstractFQ #Zend_FilterF+P YZend_Filter_Word_UnderscoreToSeparatorF&O OZend_Filter_Word_UnderscoreToDashF+N YZend_Filter_Word_UnderscoreToCamelCaseF*M WZend_Filter_Word_SeparatorToSeparatorF%L MZend_Filter_Word_SeparatorToDashF*K WZend_Filter_Word_SeparatorToCamelCaseF(J SZend_Filter_Word_Separator_AbstractF&I OZend_Filter_Word_DashToUnderscoreF%H MZend_Filter_Word_DashToSeparatorF%G MZend_Filter_Word_DashToCamelCaseF+F YZend_Filter_Word_CamelCaseToUnderscoreF*E WZend_Filter_Word_CamelCaseToSeparatorF%D MZend_Filter_Word_CamelCaseToDashFC 7Zend_Filter_StripTagsFB ?Zend_Filter_StripNewlinesFA 9Zend_Filter_StringTrimF@ ?Zend_Filter_StringToUpperF? ?Zend_Filter_StringToLowerF> 5Zend_Filter_RealPathF= ;Zend_Filter_PregReplaceF< -Zend_Filter_NullF&; OZend_Filter_NormalizedToLocalizedF&: OZend_Filter_LocalizedToNormalizedF9 +Zend_Filter_IntF8 /Zend_Filter_InputF7 7Zend_Filter_InflectorF6 =Zend_Filter_HtmlEntitiesF5 AZend_Filter_File_UpperCaseF4 ;Zend_Filter_File_RenameF3 AZend_Filter_File_LowerCaseF2 =Zend_Filter_File_EncryptF1 =Zend_Filter_File_DecryptF0 7Zend_Filter_ExceptionF/ 3Zend_Filter_EncryptF . CZend_Filter_Encrypt_OpensslF- AZend_Filter_Encrypt_McryptF, +Zend_Filter_DirF+ 1Zend_Filter_DigitsF* 3Zend_Filter_DecryptF) 9Zend_Filter_DecompressF( 5Zend_Filter_CompressF' =Zend_Filter_Compress_ZipF& =Zend_Filter_Compress_TarF% =Zend_Filter_Compress_RarF$ =Zend_Filter_Compress_LzfF# ;Zend_Filter_Compress_GzF*" WZend_Filter_Compress_CompressAbstractF! =Zend_Filter_Compress_Bz2F  5Zend_Filter_CallbackF 3Zend_Filter_BooleanF 5Zend_Filter_BaseNameF /Zend_Filter_AlphaF /Zend_Filter_AlnumF 1Zend_File_TransferF! EZend_File_Transfer_ExceptionF$ KZend_File_Transfer_Adapter_HttpF( SZend_File_Transfer_Adapter_AbstractF Zend_FeedF   _  W0gC~V.e@_<



y
b
G
				f	5		P+|U#pA~Y=e8q?{]2Y3                               $d KZend_Gdata_Exif_Extension_ModelF#c IZend_Gdata_Exif_Extension_MakeF"b GZend_Gdata_Exif_Extension_IsoF,a [Zend_Gdata_Exif_Extension_ImageUniqueIdF$` KZend_Gdata_Exif_Extension_FStopF*_ WZend_Gdata_Exif_Extension_FocalLengthF$^ KZend_Gdata_Exif_Extension_FlashF'] QZend_Gdata_Exif_Extension_ExposureF'\ QZend_Gdata_Exif_Extension_DistanceF[ 7Zend_Gdata_Exif_EntryFZ -Zend_Gdata_EntryFY 7Zend_Gdata_DublinCoreF*X WZend_Gdata_DublinCore_Extension_TitleF,W [Zend_Gdata_DublinCore_Extension_SubjectF+V YZend_Gdata_DublinCore_Extension_RightsF.U _Zend_Gdata_DublinCore_Extension_PublisherF-T ]Zend_Gdata_DublinCore_Extension_LanguageF/S aZend_Gdata_DublinCore_Extension_IdentifierF+R YZend_Gdata_DublinCore_Extension_FormatF0Q cZend_Gdata_DublinCore_Extension_DescriptionF)P UZend_Gdata_DublinCore_Extension_DateF,O [Zend_Gdata_DublinCore_Extension_CreatorFN +Zend_Gdata_DocsFM 7Zend_Gdata_Docs_QueryF%L MZend_Gdata_Docs_DocumentListFeedF&K OZend_Gdata_Docs_DocumentListEntryFJ 9Zend_Gdata_ClientLoginFI 3Zend_Gdata_CalendarF!H EZend_Gdata_Calendar_ListFeedF"G GZend_Gdata_Calendar_ListEntryF-F ]Zend_Gdata_Calendar_Extension_WebContentF+E YZend_Gdata_Calendar_Extension_TimezoneF9D uZend_Gdata_Calendar_Extension_SendEventNotificationsF+C YZend_Gdata_Calendar_Extension_SelectedF+B YZend_Gdata_Calendar_Extension_QuickAddF'A QZend_Gdata_Calendar_Extension_LinkF)@ UZend_Gdata_Calendar_Extension_HiddenF(? SZend_Gdata_Calendar_Extension_ColorF.> _Zend_Gdata_Calendar_Extension_AccessLevelF#= IZend_Gdata_Calendar_EventQueryF"< GZend_Gdata_Calendar_EventFeedF#; IZend_Gdata_Calendar_EventEntryF: -Zend_Gdata_BooksF!9 EZend_Gdata_Books_VolumeQueryF 8 CZend_Gdata_Books_VolumeFeedF!7 EZend_Gdata_Books_VolumeEntryF+6 YZend_Gdata_Books_Extension_ViewabilityF-5 ]Zend_Gdata_Books_Extension_ThumbnailLinkF&4 OZend_Gdata_Books_Extension_ReviewF+3 YZend_Gdata_Books_Extension_PreviewLinkF(2 SZend_Gdata_Books_Extension_InfoLinkF-1 ]Zend_Gdata_Books_Extension_EmbeddabilityF)0 UZend_Gdata_Books_Extension_BooksLinkF-/ ]Zend_Gdata_Books_Extension_BooksCategoryF.. _Zend_Gdata_Books_Extension_AnnotationLinkF$- KZend_Gdata_Books_CollectionFeedF%, MZend_Gdata_Books_CollectionEntryF+ 1Zend_Gdata_AuthSubF* )Zend_Gdata_AppF$) KZend_Gdata_App_VersionExceptionF( 3Zend_Gdata_App_UtilF#' IZend_Gdata_App_MediaFileSourceF& ?Zend_Gdata_App_MediaEntryF2% gZend_Gdata_App_LoggingHttpClientAdapterSocketF$ AZend_Gdata_App_IOExceptionF,# [Zend_Gdata_App_InvalidArgumentExceptionF!" EZend_Gdata_App_HttpExceptionF$! KZend_Gdata_App_FeedSourceParentF#  IZend_Gdata_App_FeedEntryParentF 3Zend_Gdata_App_FeedF =Zend_Gdata_App_ExtensionF! EZend_Gdata_App_Extension_UriF% MZend_Gdata_App_Extension_UpdatedF# IZend_Gdata_App_Extension_TitleF" GZend_Gdata_App_Extension_TextF% MZend_Gdata_App_Extension_SummaryF& OZend_Gdata_App_Extension_SubtitleF$ KZend_Gdata_App_Extension_SourceF$ KZend_Gdata_App_Extension_RightsF' QZend_Gdata_App_Extension_PublishedF$ KZend_Gdata_App_Extension_PersonF" GZend_Gdata_App_Extension_NameF" GZend_Gdata_App_Extension_LogoF" GZend_Gdata_App_Extension_LinkF  CZend_Gdata_App_Extension_IdF" GZend_Gdata_App_Extension_IconF' QZend_Gdata_App_Extension_GeneratorF# IZend_Gdata_App_Extension_EmailF% MZend_Gdata_App_Extension_ElementF$ KZend_Gdata_App_Extension_EditedF#
 IZend_Gdata_App_Extension_DraftF%	 MZend_Gdata_App_Extension_ControlF) UZend_Gdata_App_Extension_ContributorF% MZend_Gdata_App_Extension_ContentF& OZend_Gdata_App_Extension_CategoryF   c  }Q'])tL^= `0




b
6

				v	Q	-	pM)
x_@jDlD(qG'qR!\.r>                  .G _Zend_Gdata_Media_Extension_MediaThumbnailF)F UZend_Gdata_Media_Extension_MediaTextF0E cZend_Gdata_Media_Extension_MediaRestrictionF+D YZend_Gdata_Media_Extension_MediaRatingF+C YZend_Gdata_Media_Extension_MediaPlayerF-B ]Zend_Gdata_Media_Extension_MediaKeywordsF)A UZend_Gdata_Media_Extension_MediaHashF*@ WZend_Gdata_Media_Extension_MediaGroupF0? cZend_Gdata_Media_Extension_MediaDescriptionF+> YZend_Gdata_Media_Extension_MediaCreditF.= _Zend_Gdata_Media_Extension_MediaCopyrightF,< [Zend_Gdata_Media_Extension_MediaContentF-; ]Zend_Gdata_Media_Extension_MediaCategoryF: 9Zend_Gdata_Media_EntryF9 AZend_Gdata_Kind_EventEntryF8 7Zend_Gdata_HttpClientF*7 WZend_Gdata_HttpAdapterStreamingSocketF)6 UZend_Gdata_HttpAdapterStreamingProxyF5 /Zend_Gdata_HealthF4 ;Zend_Gdata_Health_QueryF&3 OZend_Gdata_Health_ProfileListFeedF'2 QZend_Gdata_Health_ProfileListEntryF"1 GZend_Gdata_Health_ProfileFeedF#0 IZend_Gdata_Health_ProfileEntryF$/ KZend_Gdata_Health_Extension_CcrF. )Zend_Gdata_GeoF- 3Zend_Gdata_Geo_FeedF$, KZend_Gdata_Geo_Extension_GmlPosF&+ OZend_Gdata_Geo_Extension_GmlPointF)* UZend_Gdata_Geo_Extension_GeoRssWhereF) 5Zend_Gdata_Geo_EntryF( -Zend_Gdata_GbaseF"' GZend_Gdata_Gbase_SnippetQueryF!& EZend_Gdata_Gbase_SnippetFeedF"% GZend_Gdata_Gbase_SnippetEntryF$ 9Zend_Gdata_Gbase_QueryF# AZend_Gdata_Gbase_ItemQueryF" ?Zend_Gdata_Gbase_ItemFeedF! AZend_Gdata_Gbase_ItemEntryF  7Zend_Gdata_Gbase_FeedF- ]Zend_Gdata_Gbase_Extension_BaseAttributeF 9Zend_Gdata_Gbase_EntryF -Zend_Gdata_GappsF AZend_Gdata_Gapps_UserQueryF ?Zend_Gdata_Gapps_UserFeedF AZend_Gdata_Gapps_UserEntryF& OZend_Gdata_Gapps_ServiceExceptionF 9Zend_Gdata_Gapps_QueryF  CZend_Gdata_Gapps_OwnerQueryF AZend_Gdata_Gapps_OwnerFeedF  CZend_Gdata_Gapps_OwnerEntryF# IZend_Gdata_Gapps_NicknameQueryF" GZend_Gdata_Gapps_NicknameFeedF# IZend_Gdata_Gapps_NicknameEntryF! EZend_Gdata_Gapps_MemberQueryF  CZend_Gdata_Gapps_MemberFeedF! EZend_Gdata_Gapps_MemberEntryF  CZend_Gdata_Gapps_GroupQueryF AZend_Gdata_Gapps_GroupFeedF  CZend_Gdata_Gapps_GroupEntryF% MZend_Gdata_Gapps_Extension_QuotaF(
 SZend_Gdata_Gapps_Extension_PropertyF(	 SZend_Gdata_Gapps_Extension_NicknameF$ KZend_Gdata_Gapps_Extension_NameF% MZend_Gdata_Gapps_Extension_LoginF) UZend_Gdata_Gapps_Extension_EmailListF 9Zend_Gdata_Gapps_ErrorF- ]Zend_Gdata_Gapps_EmailListRecipientQueryF, [Zend_Gdata_Gapps_EmailListRecipientFeedF- ]Zend_Gdata_Gapps_EmailListRecipientEntryF$ KZend_Gdata_Gapps_EmailListQueryF#  IZend_Gdata_Gapps_EmailListFeedF$ KZend_Gdata_Gapps_EmailListEntryF~ +Zend_Gdata_FeedF} 5Zend_Gdata_ExtensionF| =Zend_Gdata_Extension_WhoF{ AZend_Gdata_Extension_WhereFz ?Zend_Gdata_Extension_WhenF$y KZend_Gdata_Extension_VisibilityF&x OZend_Gdata_Extension_TransparencyF"w GZend_Gdata_Extension_ReminderF-v ]Zend_Gdata_Extension_RecurrenceExceptionF$u KZend_Gdata_Extension_RecurrenceF t CZend_Gdata_Extension_RatingF's QZend_Gdata_Extension_OriginalEventF0r cZend_Gdata_Extension_OpenSearchTotalResultsF.q _Zend_Gdata_Extension_OpenSearchStartIndexF0p cZend_Gdata_Extension_OpenSearchItemsPerPageF"o GZend_Gdata_Extension_FeedLinkF*n WZend_Gdata_Extension_ExtendedPropertyF%m MZend_Gdata_Extension_EventStatusF#l IZend_Gdata_Extension_EntryLinkF"k GZend_Gdata_Extension_CommentsF&j OZend_Gdata_Extension_AttendeeTypeF(i SZend_Gdata_Extension_AttendeeStatusFh +Zend_Gdata_ExifFg 5Zend_Gdata_Exif_FeedF#f IZend_Gdata_Exif_Extension_TimeF#e IZend_Gdata_Exif_Extension_TagsF   [  xV:zN a6V(g8



]
1
				n	K	'	Z0o<^/hAqDZ.{M]2                        ," [Zend_Gdata_YouTube_Extension_OccupationF)! UZend_Gdata_YouTube_Extension_NoEmbedF'  QZend_Gdata_YouTube_Extension_MusicF( SZend_Gdata_YouTube_Extension_MoviesF- ]Zend_Gdata_YouTube_Extension_MediaRatingF, [Zend_Gdata_YouTube_Extension_MediaGroupF- ]Zend_Gdata_YouTube_Extension_MediaCreditF. _Zend_Gdata_YouTube_Extension_MediaContentF* WZend_Gdata_YouTube_Extension_LocationF& OZend_Gdata_YouTube_Extension_LinkF* WZend_Gdata_YouTube_Extension_LastNameF* WZend_Gdata_YouTube_Extension_HometownF) UZend_Gdata_YouTube_Extension_HobbiesF( SZend_Gdata_YouTube_Extension_GenderF+ YZend_Gdata_YouTube_Extension_FirstNameF* WZend_Gdata_YouTube_Extension_DurationF- ]Zend_Gdata_YouTube_Extension_DescriptionF+ YZend_Gdata_YouTube_Extension_CountHintF) UZend_Gdata_YouTube_Extension_ControlF) UZend_Gdata_YouTube_Extension_CompanyF' QZend_Gdata_YouTube_Extension_BooksF% MZend_Gdata_YouTube_Extension_AgeF) UZend_Gdata_YouTube_Extension_AboutMeF# IZend_Gdata_YouTube_ContactFeedF$
 KZend_Gdata_YouTube_ContactEntryF#	 IZend_Gdata_YouTube_CommentFeedF$ KZend_Gdata_YouTube_CommentEntryF$ KZend_Gdata_YouTube_ActivityFeedF% MZend_Gdata_YouTube_ActivityEntryF ;Zend_Gdata_SpreadsheetsF* WZend_Gdata_Spreadsheets_WorksheetFeedF+ YZend_Gdata_Spreadsheets_WorksheetEntryF, [Zend_Gdata_Spreadsheets_SpreadsheetFeedF- ]Zend_Gdata_Spreadsheets_SpreadsheetEntryF&  OZend_Gdata_Spreadsheets_ListQueryF% MZend_Gdata_Spreadsheets_ListFeedF&~ OZend_Gdata_Spreadsheets_ListEntryF/} aZend_Gdata_Spreadsheets_Extension_RowCountF-| ]Zend_Gdata_Spreadsheets_Extension_CustomF/{ aZend_Gdata_Spreadsheets_Extension_ColCountF+z YZend_Gdata_Spreadsheets_Extension_CellF*y WZend_Gdata_Spreadsheets_DocumentQueryF&x OZend_Gdata_Spreadsheets_CellQueryF%w MZend_Gdata_Spreadsheets_CellFeedF&v OZend_Gdata_Spreadsheets_CellEntryFu -Zend_Gdata_QueryFt /Zend_Gdata_PhotosF s CZend_Gdata_Photos_UserQueryFr AZend_Gdata_Photos_UserFeedF q CZend_Gdata_Photos_UserEntryFp AZend_Gdata_Photos_TagEntryF!o EZend_Gdata_Photos_PhotoQueryF n CZend_Gdata_Photos_PhotoFeedF!m EZend_Gdata_Photos_PhotoEntryF&l OZend_Gdata_Photos_Extension_WidthF'k QZend_Gdata_Photos_Extension_WeightF(j SZend_Gdata_Photos_Extension_VersionF%i MZend_Gdata_Photos_Extension_UserF*h WZend_Gdata_Photos_Extension_TimestampF*g WZend_Gdata_Photos_Extension_ThumbnailF%f MZend_Gdata_Photos_Extension_SizeF)e UZend_Gdata_Photos_Extension_RotationF+d YZend_Gdata_Photos_Extension_QuotaLimitF-c ]Zend_Gdata_Photos_Extension_QuotaCurrentF)b UZend_Gdata_Photos_Extension_PositionF(a SZend_Gdata_Photos_Extension_PhotoIdF3` iZend_Gdata_Photos_Extension_NumPhotosRemainingF*_ WZend_Gdata_Photos_Extension_NumPhotosF)^ UZend_Gdata_Photos_Extension_NicknameF%] MZend_Gdata_Photos_Extension_NameF2\ gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumF)[ UZend_Gdata_Photos_Extension_LocationF#Z IZend_Gdata_Photos_Extension_IdF'Y QZend_Gdata_Photos_Extension_HeightF2X gZend_Gdata_Photos_Extension_CommentingEnabledF-W ]Zend_Gdata_Photos_Extension_CommentCountF'V QZend_Gdata_Photos_Extension_ClientF)U UZend_Gdata_Photos_Extension_ChecksumF*T WZend_Gdata_Photos_Extension_BytesUsedF(S SZend_Gdata_Photos_Extension_AlbumIdF'R QZend_Gdata_Photos_Extension_AccessF#Q IZend_Gdata_Photos_CommentEntryF!P EZend_Gdata_Photos_AlbumQueryF O CZend_Gdata_Photos_AlbumFeedF!N EZend_Gdata_Photos_AlbumEntryFM 3Zend_Gdata_MimeFileFL ?Zend_Gdata_MimeBodyStringFK AZend_Gdata_MediaMimeStreamFJ -Zend_Gdata_MediaFI 7Zend_Gdata_Media_FeedF*H WZend_Gdata_Media_Extension_MediaTitleF   ^  oBV*xJ~Q%qE





U
.
					o	S	1	_=qB!i7Z3c*~Z8e:W                                      4  kZend_InfoCard_Xml_Security_Transform_XmlExcC14NF3 iZend_InfoCard_Xml_Security_Transform_ExceptionF<~ {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignatureF)} UZend_InfoCard_Xml_Security_ExceptionF| ?Zend_InfoCard_Xml_KeyInfoF&{ OZend_InfoCard_Xml_KeyInfo_XmlDSigF&z OZend_InfoCard_Xml_KeyInfo_DefaultF'y QZend_InfoCard_Xml_KeyInfo_AbstractF x CZend_InfoCard_Xml_ExceptionF#w IZend_InfoCard_Xml_EncryptedKeyF$v KZend_InfoCard_Xml_EncryptedDataF+u YZend_InfoCard_Xml_EncryptedData_XmlEncF-t ]Zend_InfoCard_Xml_EncryptedData_AbstractFs ?Zend_InfoCard_Xml_ElementF r CZend_InfoCard_Xml_AssertionF%q MZend_InfoCard_Xml_Assertion_SamlFp ;Zend_InfoCard_ExceptionF%o MZend_InfoCard_Exception_AbstractFn 5Zend_InfoCard_ClaimsFm 5Zend_InfoCard_CipherF5l mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcF5k mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcF4j kZend_InfoCard_Cipher_Symmetric_Adapter_AbstractF)i UZend_InfoCard_Cipher_Pki_Adapter_RsaF.h _Zend_InfoCard_Cipher_Pki_Adapter_AbstractF#g IZend_InfoCard_Cipher_ExceptionF$f KZend_InfoCard_Adapter_ExceptionF"e GZend_InfoCard_Adapter_DefaultFd 3Zend_Http_UserAgentF"c GZend_Http_UserAgent_ValidatorFb =Zend_Http_UserAgent_TextF(a SZend_Http_UserAgent_Storage_SessionF.` _Zend_Http_UserAgent_Storage_NonPersistentF*_ WZend_Http_UserAgent_Storage_ExceptionF^ =Zend_Http_UserAgent_SpamF] ?Zend_Http_UserAgent_ProbeF \ CZend_Http_UserAgent_OfflineF[ AZend_Http_UserAgent_MobileFZ =Zend_Http_UserAgent_FeedF+Y YZend_Http_UserAgent_Features_ExceptionF2X gZend_Http_UserAgent_Features_Adapter_WurflApiF3W iZend_Http_UserAgent_Features_Adapter_TeraWurflF5V mZend_Http_UserAgent_Features_Adapter_DeviceAtlasF"U GZend_Http_UserAgent_ExceptionFT ?Zend_Http_UserAgent_EmailF S CZend_Http_UserAgent_DesktopF R CZend_Http_UserAgent_ConsoleF Q CZend_Http_UserAgent_CheckerFP ;Zend_Http_UserAgent_BotF'O QZend_Http_UserAgent_AbstractDeviceFN 1Zend_Http_ResponseFM ?Zend_Http_Response_StreamFL 3Zend_Http_ExceptionFK 3Zend_Http_CookieJarFJ -Zend_Http_CookieFI -Zend_Http_ClientFH AZend_Http_Client_ExceptionF"G GZend_Http_Client_Adapter_TestF$F KZend_Http_Client_Adapter_SocketF#E IZend_Http_Client_Adapter_ProxyF'D QZend_Http_Client_Adapter_ExceptionF"C GZend_Http_Client_Adapter_CurlFB !Zend_GdataFA 1Zend_Gdata_YouTubeF"@ GZend_Gdata_YouTube_VideoQueryF!? EZend_Gdata_YouTube_VideoFeedF"> GZend_Gdata_YouTube_VideoEntryF(= SZend_Gdata_YouTube_UserProfileEntryF(< SZend_Gdata_YouTube_SubscriptionFeedF); UZend_Gdata_YouTube_SubscriptionEntryF): UZend_Gdata_YouTube_PlaylistVideoFeedF*9 WZend_Gdata_YouTube_PlaylistVideoEntryF(8 SZend_Gdata_YouTube_PlaylistListFeedF)7 UZend_Gdata_YouTube_PlaylistListEntryF"6 GZend_Gdata_YouTube_MediaEntryF!5 EZend_Gdata_YouTube_InboxFeedF"4 GZend_Gdata_YouTube_InboxEntryF)3 UZend_Gdata_YouTube_Extension_VideoIdF*2 WZend_Gdata_YouTube_Extension_UsernameF*1 WZend_Gdata_YouTube_Extension_UploadedF'0 QZend_Gdata_YouTube_Extension_TokenF(/ SZend_Gdata_YouTube_Extension_StatusF,. [Zend_Gdata_YouTube_Extension_StatisticsF'- QZend_Gdata_YouTube_Extension_StateF(, SZend_Gdata_YouTube_Extension_SchoolF-+ ]Zend_Gdata_YouTube_Extension_ReleaseDateF.* _Zend_Gdata_YouTube_Extension_RelationshipF*) WZend_Gdata_YouTube_Extension_RecordedF&( OZend_Gdata_YouTube_Extension_RacyF-' ]Zend_Gdata_YouTube_Extension_QueryStringF)& UZend_Gdata_YouTube_Extension_PrivateF*% WZend_Gdata_YouTube_Extension_PositionF/$ aZend_Gdata_YouTube_Extension_PlaylistTitleF,# [Zend_Gdata_YouTube_Extension_PlaylistIdF   s iO5{Z3pC%hS7y]=$



l
B
				\	9p^6t[="uU4jO/veI*tT'jA{P6                                   !s EZend_Mail_Transport_AbstractFr /Zend_Mail_StorageF'q QZend_Mail_Storage_Writable_MaildirFp 9Zend_Mail_Storage_Pop3Fo 9Zend_Mail_Storage_MboxFn ?Zend_Mail_Storage_MaildirFm 9Zend_Mail_Storage_ImapFl =Zend_Mail_Storage_FolderF"k GZend_Mail_Storage_Folder_MboxF%j MZend_Mail_Storage_Folder_MaildirF i CZend_Mail_Storage_ExceptionFh AZend_Mail_Storage_AbstractFg ;Zend_Mail_Protocol_SmtpF'f QZend_Mail_Protocol_Smtp_Auth_PlainF'e QZend_Mail_Protocol_Smtp_Auth_LoginF)d UZend_Mail_Protocol_Smtp_Auth_Crammd5Fc ;Zend_Mail_Protocol_Pop3Fb ;Zend_Mail_Protocol_ImapF!a EZend_Mail_Protocol_ExceptionF ` CZend_Mail_Protocol_AbstractF_ )Zend_Mail_PartF^ 3Zend_Mail_Part_FileF] /Zend_Mail_MessageF\ 9Zend_Mail_Message_FileF[ 3Zend_Mail_ExceptionFZ Zend_LogF Y CZend_Log_Writer_ZendMonitorFX 9Zend_Log_Writer_SyslogFW 9Zend_Log_Writer_StreamFV 5Zend_Log_Writer_NullFU 5Zend_Log_Writer_MockFT 5Zend_Log_Writer_MailFS ;Zend_Log_Writer_FirebugFR 1Zend_Log_Writer_DbFQ =Zend_Log_Writer_AbstractFP 9Zend_Log_Formatter_XmlFO ?Zend_Log_Formatter_SimpleFN AZend_Log_Formatter_FirebugF M CZend_Log_Formatter_AbstractFL =Zend_Log_Filter_SuppressFK =Zend_Log_Filter_PriorityFJ ;Zend_Log_Filter_MessageFI =Zend_Log_Filter_AbstractFH 1Zend_Log_ExceptionFG #Zend_LocaleFF -Zend_Locale_MathFE =Zend_Locale_Math_PhpMathFD AZend_Locale_Math_ExceptionFC 1Zend_Locale_FormatFB 7Zend_Locale_ExceptionFA -Zend_Locale_DataF!@ EZend_Locale_Data_TranslationF? #Zend_LoaderF> =Zend_Loader_PluginLoaderF'= QZend_Loader_PluginLoader_ExceptionF< 7Zend_Loader_ExceptionF; 9Zend_Loader_AutoloaderF$: KZend_Loader_Autoloader_ResourceF9 Zend_LdapF8 )Zend_Ldap_NodeF7 7Zend_Ldap_Node_SchemaF#6 IZend_Ldap_Node_Schema_OpenLdapF/5 aZend_Ldap_Node_Schema_ObjectClass_OpenLdapF64 oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectoryF3 AZend_Ldap_Node_Schema_ItemF12 eZend_Ldap_Node_Schema_AttributeType_OpenLdapF81 sZend_Ldap_Node_Schema_AttributeType_ActiveDirectoryF*0 WZend_Ldap_Node_Schema_ActiveDirectoryF/ 9Zend_Ldap_Node_RootDseF$. KZend_Ldap_Node_RootDse_OpenLdapF&- OZend_Ldap_Node_RootDse_eDirectoryF+, YZend_Ldap_Node_RootDse_ActiveDirectoryF+ ?Zend_Ldap_Node_CollectionF$* KZend_Ldap_Node_ChildrenIteratorF) ;Zend_Ldap_Node_AbstractF( 9Zend_Ldap_Ldif_EncoderF' -Zend_Ldap_FilterF& ;Zend_Ldap_Filter_StringF% 3Zend_Ldap_Filter_OrF$ 5Zend_Ldap_Filter_NotF# 7Zend_Ldap_Filter_MaskF" =Zend_Ldap_Filter_LogicalF! AZend_Ldap_Filter_ExceptionF  5Zend_Ldap_Filter_AndF ?Zend_Ldap_Filter_AbstractF 3Zend_Ldap_ExceptionF %Zend_Ldap_DnF 3Zend_Ldap_ConverterF" GZend_Ldap_Converter_ExceptionF 5Zend_Ldap_CollectionF* WZend_Ldap_Collection_Iterator_DefaultF 3Zend_Ldap_AttributeF #Zend_LayoutF 7Zend_Layout_ExceptionF) UZend_Layout_Controller_Plugin_LayoutF0 cZend_Layout_Controller_Action_Helper_LayoutF Zend_JsonF -Zend_Json_ServerF 5Zend_Json_Server_SmdF! EZend_Json_Server_Smd_ServiceF ?Zend_Json_Server_ResponseF# IZend_Json_Server_Response_HttpF =Zend_Json_Server_RequestF" GZend_Json_Server_Request_HttpF AZend_Json_Server_ExceptionF
 9Zend_Json_Server_ErrorF	 9Zend_Json_Server_CacheF )Zend_Json_ExprF 3Zend_Json_ExceptionF /Zend_Json_EncoderF /Zend_Json_DecoderF 'Zend_InfoCardF- ]Zend_InfoCard_Xml_SecurityTokenReferenceF AZend_InfoCard_Xml_SecurityF) UZend_InfoCard_Xml_Security_TransformF   u saC!\6aM/wS6dE#




x
W
=
!					t	O	)	nT=+	pV< pX6tS:'z\2kCQ#mO1                                  h 5Zend_Pdf_Action_HideFg 7Zend_Pdf_Action_GoToRFf 7Zend_Pdf_Action_GoToEFe AZend_Pdf_Action_GoTo3DViewFd 5Zend_Pdf_Action_GoToFc )Zend_PaginatorF-b ]Zend_Paginator_SerializableLimitIteratorF*a WZend_Paginator_ScrollingStyle_SlidingF*` WZend_Paginator_ScrollingStyle_JumpingF*_ WZend_Paginator_ScrollingStyle_ElasticF&^ OZend_Paginator_ScrollingStyle_AllF] =Zend_Paginator_ExceptionF \ CZend_Paginator_Adapter_NullF$[ KZend_Paginator_Adapter_IteratorF)Z UZend_Paginator_Adapter_DbTableSelectF$Y KZend_Paginator_Adapter_DbSelectF!X EZend_Paginator_Adapter_ArrayFW #Zend_OpenIdFV 5Zend_OpenId_ProviderFU ?Zend_OpenId_Provider_UserF&T OZend_OpenId_Provider_User_SessionF!S EZend_OpenId_Provider_StorageF&R OZend_OpenId_Provider_Storage_FileFQ 7Zend_OpenId_ExtensionFP AZend_OpenId_Extension_SregFO 7Zend_OpenId_ExceptionFN 5Zend_OpenId_ConsumerF!M EZend_OpenId_Consumer_StorageF&L OZend_OpenId_Consumer_Storage_FileFK !Zend_OauthFJ -Zend_Oauth_TokenFI =Zend_Oauth_Token_RequestF'H QZend_Oauth_Token_AuthorizedRequestFG ;Zend_Oauth_Token_AccessF+F YZend_Oauth_Signature_SignatureAbstractFE =Zend_Oauth_Signature_RsaF#D IZend_Oauth_Signature_PlaintextFC ?Zend_Oauth_Signature_HmacFB +Zend_Oauth_HttpFA ;Zend_Oauth_Http_UtilityF&@ OZend_Oauth_Http_UserAuthorizationF!? EZend_Oauth_Http_RequestTokenF > CZend_Oauth_Http_AccessTokenF= 5Zend_Oauth_ExceptionF< 3Zend_Oauth_ConsumerF; /Zend_Oauth_ConfigF: /Zend_Oauth_ClientF9 +Zend_NavigationF8 5Zend_Navigation_PageF7 =Zend_Navigation_Page_UriF6 =Zend_Navigation_Page_MvcF5 ?Zend_Navigation_ExceptionF4 ?Zend_Navigation_ContainerF3 Zend_MimeF2 )Zend_Mime_PartF1 /Zend_Mime_MessageF0 3Zend_Mime_ExceptionF/ -Zend_Mime_DecodeF. #Zend_MemoryF- /Zend_Memory_ValueF, 3Zend_Memory_ManagerF+ 7Zend_Memory_ExceptionF* 7Zend_Memory_ContainerF") GZend_Memory_Container_MovableF!( EZend_Memory_Container_LockedF!' EZend_Memory_AccessControllerF& 3Zend_Measure_WeightF% 3Zend_Measure_VolumeF%$ MZend_Measure_Viscosity_KinematicF## IZend_Measure_Viscosity_DynamicF" 3Zend_Measure_TorqueF! /Zend_Measure_TimeF  =Zend_Measure_TemperatureF 1Zend_Measure_SpeedF 7Zend_Measure_PressureF 1Zend_Measure_PowerF 3Zend_Measure_NumberF 9Zend_Measure_LightnessF 3Zend_Measure_LengthF ?Zend_Measure_IlluminationF 9Zend_Measure_FrequencyF 1Zend_Measure_ForceF =Zend_Measure_Flow_VolumeF 9Zend_Measure_Flow_MoleF 9Zend_Measure_Flow_MassF 9Zend_Measure_ExceptionF 3Zend_Measure_EnergyF 5Zend_Measure_DensityF 5Zend_Measure_CurrentF  CZend_Measure_Cooking_WeightF  CZend_Measure_Cooking_VolumeF =Zend_Measure_CapacitanceF 3Zend_Measure_BinaryF /Zend_Measure_AreaF
 1Zend_Measure_AngleF	 ?Zend_Measure_AccelerationF 7Zend_Measure_AbstractF #Zend_MarkupF 7Zend_Markup_TokenListF /Zend_Markup_TokenF* WZend_Markup_Renderer_RendererAbstractF ?Zend_Markup_Renderer_HtmlF" GZend_Markup_Renderer_Html_UrlF# IZend_Markup_Renderer_Html_ListF"  GZend_Markup_Renderer_Html_ImgF+ YZend_Markup_Renderer_Html_HtmlAbstractF#~ IZend_Markup_Renderer_Html_CodeF#} IZend_Markup_Renderer_ExceptionF| AZend_Markup_Parser_TextileF!{ EZend_Markup_Parser_ExceptionFz ?Zend_Markup_Parser_BbcodeFy 7Zend_Markup_ExceptionFx Zend_MailFw =Zend_Mail_Transport_SmtpF!v EZend_Mail_Transport_SendmailFu =Zend_Mail_Transport_FileF"t GZend_Mail_Transport_ExceptionF   g }_=yY=%yX@yX<!
_)




_
=
 
					_	8	Z:!cB`@qZ@Y5Q$p2w7                                           2O gZend_Pdf_Resource_Font_Simple_Standard_SymbolF<N {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueFAM Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliqueF9L uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldF5K mZend_Pdf_Resource_Font_Simple_Standard_HelveticaF:J wZend_Pdf_Resource_Font_Simple_Standard_CourierObliqueF>I Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliqueF7H qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldF3G iZend_Pdf_Resource_Font_Simple_Standard_CourierF)F UZend_Pdf_Resource_Font_Simple_ParsedF2E gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypeF*D WZend_Pdf_Resource_Font_FontDescriptorF%C MZend_Pdf_Resource_Font_ExtractedF#B IZend_Pdf_Resource_Font_CidFontF,A [Zend_Pdf_Resource_Font_CidFont_TrueTypeF @ CZend_Pdf_Resource_ExtractorF$? KZend_Pdf_Resource_ContentStreamF3> iZend_Pdf_RecursivelyIteratableObjectsContainerF= +Zend_Pdf_ParserF< 'Zend_Pdf_PageF; -Zend_Pdf_OutlineF: ;Zend_Pdf_Outline_LoadedF9 =Zend_Pdf_Outline_CreatedF8 /Zend_Pdf_NameTreeF7 )Zend_Pdf_ImageF6 'Zend_Pdf_FontF5 ?Zend_Pdf_Filter_RunLengthF 4 CZend_Pdf_Filter_CompressionF$3 KZend_Pdf_Filter_Compression_LzwF&2 OZend_Pdf_Filter_Compression_FlateF1 =Zend_Pdf_Filter_AsciiHexF0 ;Zend_Pdf_Filter_Ascii85F"/ GZend_Pdf_FileParserDataSourceF). UZend_Pdf_FileParserDataSource_StringF'- QZend_Pdf_FileParserDataSource_FileF, 3Zend_Pdf_FileParserF+ ?Zend_Pdf_FileParser_ImageF"* GZend_Pdf_FileParser_Image_PngF) =Zend_Pdf_FileParser_FontF&( OZend_Pdf_FileParser_Font_OpenTypeF/' aZend_Pdf_FileParser_Font_OpenType_TrueTypeF& 1Zend_Pdf_ExceptionF% ;Zend_Pdf_ElementFactoryF"$ GZend_Pdf_ElementFactory_ProxyF# -Zend_Pdf_ElementF" ;Zend_Pdf_Element_StringF#! IZend_Pdf_Element_String_BinaryF  ;Zend_Pdf_Element_StreamF AZend_Pdf_Element_ReferenceF% MZend_Pdf_Element_Reference_TableF' QZend_Pdf_Element_Reference_ContextF ;Zend_Pdf_Element_ObjectF# IZend_Pdf_Element_Object_StreamF =Zend_Pdf_Element_NumericF 7Zend_Pdf_Element_NullF 7Zend_Pdf_Element_NameF  CZend_Pdf_Element_DictionaryF =Zend_Pdf_Element_BooleanF 9Zend_Pdf_Element_ArrayF 5Zend_Pdf_DestinationF ?Zend_Pdf_Destination_ZoomF! EZend_Pdf_Destination_UnknownF AZend_Pdf_Destination_NamedF' QZend_Pdf_Destination_FitVerticallyF& OZend_Pdf_Destination_FitRectangleF) UZend_Pdf_Destination_FitHorizontallyF2 gZend_Pdf_Destination_FitBoundingBoxVerticallyF4 kZend_Pdf_Destination_FitBoundingBoxHorizontallyF( SZend_Pdf_Destination_FitBoundingBoxF
 =Zend_Pdf_Destination_FitF"	 GZend_Pdf_Destination_ExplicitF )Zend_Pdf_ColorF 1Zend_Pdf_Color_RgbF 3Zend_Pdf_Color_HtmlF =Zend_Pdf_Color_GrayScaleF 3Zend_Pdf_Color_CmykF 'Zend_Pdf_CmapF AZend_Pdf_Cmap_TrimmedTableF! EZend_Pdf_Cmap_SegmentToDeltaF  AZend_Pdf_Cmap_ByteEncodingF& OZend_Pdf_Cmap_ByteEncoding_StaticF~ +Zend_Pdf_CanvasF} =Zend_Pdf_Canvas_AbstractF| 3Zend_Pdf_AnnotationF{ =Zend_Pdf_Annotation_TextFz AZend_Pdf_Annotation_MarkupFy =Zend_Pdf_Annotation_LinkF'x QZend_Pdf_Annotation_FileAttachmentFw +Zend_Pdf_ActionFv 3Zend_Pdf_Action_URIFu ;Zend_Pdf_Action_UnknownFt 7Zend_Pdf_Action_TransFs 9Zend_Pdf_Action_ThreadFr AZend_Pdf_Action_SubmitFormFq 7Zend_Pdf_Action_SoundF p CZend_Pdf_Action_SetOCGStateFo ?Zend_Pdf_Action_ResetFormFn ?Zend_Pdf_Action_RenditionFm 7Zend_Pdf_Action_NamedFl 7Zend_Pdf_Action_MovieFk 9Zend_Pdf_Action_LaunchFj AZend_Pdf_Action_JavaScriptFi AZend_Pdf_Action_ImportDataF   b  M]>a?%|WF^E!




m
H
(					y	N	.	bA~]G$pM4F
:s9V-X4     1 9Zend_Search_Lucene_FSMF0 =Zend_Search_Lucene_FieldF!/ EZend_Search_Lucene_ExceptionF . CZend_Search_Lucene_DocumentF%- MZend_Search_Lucene_Document_XlsxF%, MZend_Search_Lucene_Document_PptxF(+ SZend_Search_Lucene_Document_OpenXmlF%* MZend_Search_Lucene_Document_HtmlF*) WZend_Search_Lucene_Document_ExceptionF%( MZend_Search_Lucene_Document_DocxF,' [Zend_Search_Lucene_Analysis_TokenFilterF6& oZend_Search_Lucene_Analysis_TokenFilter_StopWordsF7% qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsF:$ wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8F6# oZend_Search_Lucene_Analysis_TokenFilter_LowerCaseF&" OZend_Search_Lucene_Analysis_TokenF)! UZend_Search_Lucene_Analysis_AnalyzerF0  cZend_Search_Lucene_Analysis_Analyzer_CommonF8 sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumFI Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitiveF5 mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8FF Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitiveF8 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumFI Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitiveF5 mZend_Search_Lucene_Analysis_Analyzer_Common_TextFF Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiveF 7Zend_Search_ExceptionF -Zend_Rest_ServerF AZend_Rest_Server_ExceptionF +Zend_Rest_RouteF 3Zend_Rest_ExceptionF 5Zend_Rest_ControllerF -Zend_Rest_ClientF ;Zend_Rest_Client_ResultF& OZend_Rest_Client_Result_ExceptionF AZend_Rest_Client_ExceptionF 'Zend_RegistryF =Zend_Reflection_PropertyF ?Zend_Reflection_ParameterF
 9Zend_Reflection_MethodF	 =Zend_Reflection_FunctionF 5Zend_Reflection_FileF ?Zend_Reflection_ExtensionF ?Zend_Reflection_ExceptionF =Zend_Reflection_DocblockF! EZend_Reflection_Docblock_TagF( SZend_Reflection_Docblock_Tag_ReturnF' QZend_Reflection_Docblock_Tag_ParamF 7Zend_Reflection_ClassF  !Zend_QueueF 9Zend_Queue_Stomp_FrameF~ ;Zend_Queue_Stomp_ClientF'} QZend_Queue_Stomp_Client_ConnectionF| 1Zend_Queue_MessageF#{ IZend_Queue_Message_PlatformJobF z CZend_Queue_Message_IteratorFy 5Zend_Queue_ExceptionF(x SZend_Queue_Adapter_PlatformJobQueueFw ;Zend_Queue_Adapter_NullF!v EZend_Queue_Adapter_MemcacheqFu 7Zend_Queue_Adapter_DbF t CZend_Queue_Adapter_Db_QueueF"s GZend_Queue_Adapter_Db_MessageFr =Zend_Queue_Adapter_ArrayF'q QZend_Queue_Adapter_AdapterAbstractF p CZend_Queue_Adapter_ActivemqFo -Zend_ProgressBarFn AZend_ProgressBar_ExceptionFm =Zend_ProgressBar_AdapterF$l KZend_ProgressBar_Adapter_JsPushF$k KZend_ProgressBar_Adapter_JsPullF'j QZend_ProgressBar_Adapter_ExceptionF%i MZend_ProgressBar_Adapter_ConsoleFh Zend_PdfF!g EZend_Pdf_UpdateInfoContainerFf -Zend_Pdf_TrailerFe ;Zend_Pdf_Trailer_KeeperFd AZend_Pdf_Trailer_GeneratorFc +Zend_Pdf_TargetFb )Zend_Pdf_StyleFa 7Zend_Pdf_StringParserF` /Zend_Pdf_ResourceF_ ?Zend_Pdf_Resource_UnifiedF#^ IZend_Pdf_Resource_ImageFactoryF] ;Zend_Pdf_Resource_ImageF!\ EZend_Pdf_Resource_Image_TiffF [ CZend_Pdf_Resource_Image_PngF!Z EZend_Pdf_Resource_Image_JpegF$Y KZend_Pdf_Resource_GraphicsStateFX 9Zend_Pdf_Resource_FontF!W EZend_Pdf_Resource_Font_Type0F"V GZend_Pdf_Resource_Font_SimpleF+U YZend_Pdf_Resource_Font_Simple_StandardF8T sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsF6S oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanF7R qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicF;Q yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicF5P mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldF   X  }R%|M'zGY+f*


|
N
!				^	,yD~Md,uA&^6	}`F'	uP'[2                    	 7Zend_Service_AbstractF 9Zend_Server_ReflectionF' QZend_Server_Reflection_ReturnValueF% MZend_Server_Reflection_PrototypeF% MZend_Server_Reflection_ParameterF  CZend_Server_Reflection_NodeF" GZend_Server_Reflection_MethodF$ KZend_Server_Reflection_FunctionF- ]Zend_Server_Reflection_Function_AbstractF%  MZend_Server_Reflection_ExceptionF! EZend_Server_Reflection_ClassF!~ EZend_Server_Method_PrototypeF!} EZend_Server_Method_ParameterF"| GZend_Server_Method_DefinitionF { CZend_Server_Method_CallbackFz 7Zend_Server_ExceptionFy 9Zend_Server_DefinitionFx /Zend_Server_CacheFw 5Zend_Server_AbstractFv +Zend_SerializerFu ?Zend_Serializer_ExceptionF!t EZend_Serializer_Adapter_WddxF)s UZend_Serializer_Adapter_PythonPickleF)r UZend_Serializer_Adapter_PhpSerializeF$q KZend_Serializer_Adapter_PhpCodeF!p EZend_Serializer_Adapter_JsonF%o MZend_Serializer_Adapter_IgbinaryF!n EZend_Serializer_Adapter_Amf3F!m EZend_Serializer_Adapter_Amf0F,l [Zend_Serializer_Adapter_AdapterAbstractFk 1Zend_Search_LuceneF0j cZend_Search_Lucene_TermStreamsPriorityQueueF$i KZend_Search_Lucene_Storage_FileF+h YZend_Search_Lucene_Storage_File_MemoryF/g aZend_Search_Lucene_Storage_File_FilesystemF)f UZend_Search_Lucene_Storage_DirectoryF4e kZend_Search_Lucene_Storage_Directory_FilesystemF%d MZend_Search_Lucene_Search_WeightF*c WZend_Search_Lucene_Search_Weight_TermF,b [Zend_Search_Lucene_Search_Weight_PhraseF/a aZend_Search_Lucene_Search_Weight_MultiTermF+` YZend_Search_Lucene_Search_Weight_EmptyF-_ ]Zend_Search_Lucene_Search_Weight_BooleanF)^ UZend_Search_Lucene_Search_SimilarityF1] eZend_Search_Lucene_Search_Similarity_DefaultF)\ UZend_Search_Lucene_Search_QueryTokenF3[ iZend_Search_Lucene_Search_QueryParserExceptionF1Z eZend_Search_Lucene_Search_QueryParserContextF*Y WZend_Search_Lucene_Search_QueryParserF)X UZend_Search_Lucene_Search_QueryLexerF'W QZend_Search_Lucene_Search_QueryHitF)V UZend_Search_Lucene_Search_QueryEntryF.U _Zend_Search_Lucene_Search_QueryEntry_TermF2T gZend_Search_Lucene_Search_QueryEntry_SubqueryF0S cZend_Search_Lucene_Search_QueryEntry_PhraseF$R KZend_Search_Lucene_Search_QueryF-Q ]Zend_Search_Lucene_Search_Query_WildcardF)P UZend_Search_Lucene_Search_Query_TermF*O WZend_Search_Lucene_Search_Query_RangeF2N gZend_Search_Lucene_Search_Query_PreprocessingF7M qZend_Search_Lucene_Search_Query_Preprocessing_TermF9L uZend_Search_Lucene_Search_Query_Preprocessing_PhraseF8K sZend_Search_Lucene_Search_Query_Preprocessing_FuzzyF+J YZend_Search_Lucene_Search_Query_PhraseF.I _Zend_Search_Lucene_Search_Query_MultiTermF2H gZend_Search_Lucene_Search_Query_InsignificantF*G WZend_Search_Lucene_Search_Query_FuzzyF*F WZend_Search_Lucene_Search_Query_EmptyF,E [Zend_Search_Lucene_Search_Query_BooleanF2D gZend_Search_Lucene_Search_Highlighter_DefaultF:C wZend_Search_Lucene_Search_BooleanExpressionRecognizerFB =Zend_Search_Lucene_ProxyF%A MZend_Search_Lucene_PriorityQueueF/@ aZend_Search_Lucene_Interface_MultiSearcherF#? IZend_Search_Lucene_LockManagerF$> KZend_Search_Lucene_Index_WriterF0= cZend_Search_Lucene_Index_TermsPriorityQueueF&< OZend_Search_Lucene_Index_TermInfoF"; GZend_Search_Lucene_Index_TermF+: YZend_Search_Lucene_Index_SegmentWriterF89 sZend_Search_Lucene_Index_SegmentWriter_StreamWriterF:8 wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterF+7 YZend_Search_Lucene_Index_SegmentMergerF)6 UZend_Search_Lucene_Index_SegmentInfoF'5 QZend_Search_Lucene_Index_FieldInfoF(4 SZend_Search_Lucene_Index_DocsFilterF.3 _Zend_Search_Lucene_Index_DictionaryLoaderF!2 EZend_Search_Lucene_FSMActionF   O  a3X&]+Y*
uK)



m
N
#				m	H	qI KWJp6X
hY  RX %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequestFYW 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequestFQV #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequestFQU #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequestFaT CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequestFNS Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformationFLR Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalanceFJQ Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPoolF-P ]Zend_Service_DeveloperGarden_LocalSearchF>O Zend_Service_DeveloperGarden_LocalSearch_SearchParametersF7N qZend_Service_DeveloperGarden_LocalSearch_ExceptionF,M [Zend_Service_DeveloperGarden_IpLocationF6L oZend_Service_DeveloperGarden_IpLocation_IpAddressF+K YZend_Service_DeveloperGarden_ExceptionF,J [Zend_Service_DeveloperGarden_CredentialF0I cZend_Service_DeveloperGarden_ConferenceCallFCH Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatusFCG Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetailF<F {Zend_Service_DeveloperGarden_ConferenceCall_ParticipantF:E wZend_Service_DeveloperGarden_ConferenceCall_ExceptionFDD 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceScheduleFBC Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetailFCB Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccountF-A ]Zend_Service_DeveloperGarden_Client_SoapF2@ gZend_Service_DeveloperGarden_Client_ExceptionF7? qZend_Service_DeveloperGarden_Client_ClientAbstractF1> eZend_Service_DeveloperGarden_BaseUserServiceFA= Zend_Service_DeveloperGarden_BaseUserService_AccountBalanceF< 9Zend_Service_DeliciousF&; OZend_Service_Delicious_SimplePostF$: KZend_Service_Delicious_PostListF 9 CZend_Service_Delicious_PostF%8 MZend_Service_Delicious_ExceptionF 7 CZend_Service_AudioscrobblerF6 3Zend_Service_AmazonF5 ;Zend_Service_Amazon_SqsF&4 OZend_Service_Amazon_Sqs_ExceptionF!3 EZend_Service_Amazon_SimpleDbF*2 WZend_Service_Amazon_SimpleDb_ResponseF&1 OZend_Service_Amazon_SimpleDb_PageF+0 YZend_Service_Amazon_SimpleDb_ExceptionF+/ YZend_Service_Amazon_SimpleDb_AttributeF'. QZend_Service_Amazon_SimilarProductF- 9Zend_Service_Amazon_S3F", GZend_Service_Amazon_S3_StreamF%+ MZend_Service_Amazon_S3_ExceptionF"* GZend_Service_Amazon_ResultSetF) ?Zend_Service_Amazon_QueryF!( EZend_Service_Amazon_OfferSetF' ?Zend_Service_Amazon_OfferF&& OZend_Service_Amazon_ListmaniaListF% =Zend_Service_Amazon_ItemF$ ?Zend_Service_Amazon_ImageF"# GZend_Service_Amazon_ExceptionF(" SZend_Service_Amazon_EditorialReviewF! ;Zend_Service_Amazon_Ec2F+  YZend_Service_Amazon_Ec2_SecuritygroupsF% MZend_Service_Amazon_Ec2_ResponseF# IZend_Service_Amazon_Ec2_RegionF$ KZend_Service_Amazon_Ec2_KeypairF% MZend_Service_Amazon_Ec2_InstanceF- ]Zend_Service_Amazon_Ec2_Instance_WindowsF. _Zend_Service_Amazon_Ec2_Instance_ReservedF" GZend_Service_Amazon_Ec2_ImageF& OZend_Service_Amazon_Ec2_ExceptionF& OZend_Service_Amazon_Ec2_ElasticipF  CZend_Service_Amazon_Ec2_EbsF' QZend_Service_Amazon_Ec2_CloudWatchF. _Zend_Service_Amazon_Ec2_AvailabilityzonesF% MZend_Service_Amazon_Ec2_AbstractF' QZend_Service_Amazon_CustomerReviewF' QZend_Service_Amazon_AuthenticationF* WZend_Service_Amazon_Authentication_V2F* WZend_Service_Amazon_Authentication_V1F* WZend_Service_Amazon_Authentication_S3F1 eZend_Service_Amazon_Authentication_ExceptionF$ KZend_Service_Amazon_AccessoriesF! EZend_Service_Amazon_AbstractF
 5Zend_Service_AkismetF   /  J21lY


o
&			Z	@d#C\/5$i                                                                              V -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseFX 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseTypeFT )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseF_ ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseTypeF[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseFW /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseTypeFS 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseFQ  #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstractFS 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponseFJ~ Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseTypeFg} OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseTypeFc| GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseFW{ /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponseFUz +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponseFSy 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponseF3x iZend_Service_DeveloperGarden_Response_BaseTypeFJw Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstractFCv Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCallFGu Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequencedF=t }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallFAs Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatusFAr Zend_Service_DeveloperGarden_Request_SmsValidation_ValidateFNq Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeywordFCp Zend_Service_DeveloperGarden_Request_SmsValidation_InvalidateFLo Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbersFBn Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstractF9m uZend_Service_DeveloperGarden_Request_SendSms_SendSMSF>l Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMSF9k uZend_Service_DeveloperGarden_Request_RequestAbstractFIj Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequestFEi Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequestF3h iZend_Service_DeveloperGarden_Request_ExceptionFRg %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequestFYf 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequestFde IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequestFQd #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequestFRc %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequestFYb 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequestFda IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequestFQ` #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequestFO_ Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequestFU^ +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequestFU] +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequestFV\ -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequestFa[ CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequestFZZ 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequestFTY )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequestF   / g BwP;.

m
		_>w'Hgl 9CV  g L6 Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponseFP5 !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponseFG4 Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponseFJ3 Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponseFK2 Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2ResponseFL1 Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponseFI0 Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumberFW/ /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponseFJ. Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponseFU- +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponseFC, Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponseFC+ Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstractFH* Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponseFU) +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponseFQ( #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponseFI' Zend_Service_DeveloperGarden_Response_SecurityTokenServer_ExceptionF;& yZend_Service_DeveloperGarden_Response_ResponseAbstractFO% Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseTypeFK$ Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseFA# Zend_Service_DeveloperGarden_Response_IpLocation_RegionTypeFK" Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseTypeFG! Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseFL  Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationTypeFI Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesTypeF> Zend_Service_DeveloperGarden_Response_IpLocation_CityTypeF4 kZend_Service_DeveloperGarden_Response_ExceptionFT )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponseF[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponseFf MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponseFS 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponseFT )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponseF[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponseFf MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponseFS 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponseFU +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseTypeFQ #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseF[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseTypeFW /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseF[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseTypeFW /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseF\ 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseTypeFX 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseFg OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseTypeFc GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseF`
 AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseTypeF\	 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseFZ 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseTypeF   Y  r9c8X/W&o<


m
;
				Q	"oI-j=uM.d;qO*d:p:k;	                           1 eZend_Service_Technorati_DailyCountsResultSetF. _Zend_Service_Technorati_DailyCountsResultF, [Zend_Service_Technorati_CosmosResultSetF) UZend_Service_Technorati_CosmosResultF+ YZend_Service_Technorati_BlogInfoResultF#
 IZend_Service_Technorati_AuthorF	 ;Zend_Service_StrikeIronF( SZend_Service_StrikeIron_ZipCodeInfoF2 gZend_Service_StrikeIron_USAddressVerificationF- ]Zend_Service_StrikeIron_SalesUseTaxBasicF& OZend_Service_StrikeIron_ExceptionF& OZend_Service_StrikeIron_DecoratorF! EZend_Service_StrikeIron_BaseF ;Zend_Service_SlideShareF& OZend_Service_SlideShare_SlideShowF&  OZend_Service_SlideShare_ExceptionF 1Zend_Service_SimpyF$~ KZend_Service_Simpy_WatchlistSetF*} WZend_Service_Simpy_WatchlistFilterSetF'| QZend_Service_Simpy_WatchlistFilterF!{ EZend_Service_Simpy_WatchlistFz ?Zend_Service_Simpy_TagSetFy 9Zend_Service_Simpy_TagFx AZend_Service_Simpy_NoteSetFw ;Zend_Service_Simpy_NoteFv AZend_Service_Simpy_LinkSetF!u EZend_Service_Simpy_LinkQueryFt ;Zend_Service_Simpy_LinkF%s MZend_Service_ShortUrl_TinyUrlComF&r OZend_Service_ShortUrl_MetamarkNetF!q EZend_Service_ShortUrl_JdemCzFp AZend_Service_ShortUrl_IsGdF$o KZend_Service_ShortUrl_ExceptionF,n [Zend_Service_ShortUrl_AbstractShortenerFm 9Zend_Service_ReCaptchaF$l KZend_Service_ReCaptcha_ResponseF$k KZend_Service_ReCaptcha_MailHideF.j _Zend_Service_ReCaptcha_MailHide_ExceptionF%i MZend_Service_ReCaptcha_ExceptionFh 7Zend_Service_NirvanixF#g IZend_Service_Nirvanix_ResponseF)f UZend_Service_Nirvanix_Namespace_ImfsF)e UZend_Service_Nirvanix_Namespace_BaseF$d KZend_Service_Nirvanix_ExceptionFc 7Zend_Service_LiveDocxF$b KZend_Service_LiveDocx_MailMergeF$a KZend_Service_LiveDocx_ExceptionF` 3Zend_Service_FlickrF"_ GZend_Service_Flickr_ResultSetF^ AZend_Service_Flickr_ResultF] ?Zend_Service_Flickr_ImageF\ 9Zend_Service_ExceptionF[ ?Zend_Service_Ebay_FindingF)Z UZend_Service_Ebay_Finding_StorefrontF+Y YZend_Service_Ebay_Finding_ShippingInfoF+X YZend_Service_Ebay_Finding_Set_AbstractF,W [Zend_Service_Ebay_Finding_SellingStatusF)V UZend_Service_Ebay_Finding_SellerInfoF,U [Zend_Service_Ebay_Finding_Search_ResultF*T WZend_Service_Ebay_Finding_Search_ItemF.S _Zend_Service_Ebay_Finding_Search_Item_SetF0R cZend_Service_Ebay_Finding_Response_KeywordsF-Q ]Zend_Service_Ebay_Finding_Response_ItemsF2P gZend_Service_Ebay_Finding_Response_HistogramsF0O cZend_Service_Ebay_Finding_Response_AbstractF/N aZend_Service_Ebay_Finding_PaginationOutputF*M WZend_Service_Ebay_Finding_ListingInfoF(L SZend_Service_Ebay_Finding_ExceptionF,K [Zend_Service_Ebay_Finding_Error_MessageF)J UZend_Service_Ebay_Finding_Error_DataF-I ]Zend_Service_Ebay_Finding_Error_Data_SetF'H QZend_Service_Ebay_Finding_CategoryF1G eZend_Service_Ebay_Finding_Category_HistogramF5F mZend_Service_Ebay_Finding_Category_Histogram_SetF;E yZend_Service_Ebay_Finding_Category_Histogram_ContainerF%D MZend_Service_Ebay_Finding_AspectF)C UZend_Service_Ebay_Finding_Aspect_SetF5B mZend_Service_Ebay_Finding_Aspect_Histogram_ValueF9A uZend_Service_Ebay_Finding_Aspect_Histogram_Value_SetF9@ uZend_Service_Ebay_Finding_Aspect_Histogram_ContainerF'? QZend_Service_Ebay_Finding_AbstractF > CZend_Service_Ebay_ExceptionF= AZend_Service_Ebay_AbstractF+< YZend_Service_DeveloperGarden_VoiceCallF/; aZend_Service_DeveloperGarden_SmsValidationF): UZend_Service_DeveloperGarden_SendSmsF59 mZend_Service_DeveloperGarden_SecurityTokenServerF;8 yZend_Service_DeveloperGarden_SecurityTokenServer_CacheFK7 Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstractF   L  zS)uJdGPs+


W
		i	1vJe4`(|?e%L"U.^<    ![ EZend_Service_Yahoo_WebResultF&Z OZend_Service_Yahoo_VideoResultSetF#Y IZend_Service_Yahoo_VideoResultF!X EZend_Service_Yahoo_ResultSetFW ?Zend_Service_Yahoo_ResultF)V UZend_Service_Yahoo_PageDataResultSetF&U OZend_Service_Yahoo_PageDataResultF%T MZend_Service_Yahoo_NewsResultSetF"S GZend_Service_Yahoo_NewsResultF&R OZend_Service_Yahoo_LocalResultSetF#Q IZend_Service_Yahoo_LocalResultF+P YZend_Service_Yahoo_InlinkDataResultSetF(O SZend_Service_Yahoo_InlinkDataResultF&N OZend_Service_Yahoo_ImageResultSetF#M IZend_Service_Yahoo_ImageResultFL =Zend_Service_Yahoo_ImageF&K OZend_Service_WindowsAzure_StorageF4J kZend_Service_WindowsAzure_Storage_TableInstanceF7I qZend_Service_WindowsAzure_Storage_TableEntityQueryF2H gZend_Service_WindowsAzure_Storage_TableEntityF,G [Zend_Service_WindowsAzure_Storage_TableF<F {Zend_Service_WindowsAzure_Storage_StorageEntityAbstractF7E qZend_Service_WindowsAzure_Storage_SignedIdentifierF3D iZend_Service_WindowsAzure_Storage_QueueMessageF4C kZend_Service_WindowsAzure_Storage_QueueInstanceF,B [Zend_Service_WindowsAzure_Storage_QueueF9A uZend_Service_WindowsAzure_Storage_PageRegionInstanceF4@ kZend_Service_WindowsAzure_Storage_LeaseInstanceF9? uZend_Service_WindowsAzure_Storage_DynamicTableEntityF3> iZend_Service_WindowsAzure_Storage_BlobInstanceF4= kZend_Service_WindowsAzure_Storage_BlobContainerF+< YZend_Service_WindowsAzure_Storage_BlobF2; gZend_Service_WindowsAzure_Storage_Blob_StreamF;: yZend_Service_WindowsAzure_Storage_BatchStorageAbstractF,9 [Zend_Service_WindowsAzure_Storage_BatchF-8 ]Zend_Service_WindowsAzure_SessionHandlerF>7 Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstractF16 eZend_Service_WindowsAzure_RetryPolicy_RetryNF25 gZend_Service_WindowsAzure_RetryPolicy_NoRetryF44 kZend_Service_WindowsAzure_RetryPolicy_ExceptionF(3 SZend_Service_WindowsAzure_ExceptionFJ2 Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscriptionF21 gZend_Service_WindowsAzure_Diagnostics_ManagerF30 iZend_Service_WindowsAzure_Diagnostics_LogLevelF4/ kZend_Service_WindowsAzure_Diagnostics_ExceptionFN. Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscriptionFH- Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLogFL, Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCountersFK+ Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstractF<* {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogsFA) Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstanceFD( 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectoriesFU' +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogsFD& 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSourcesF8% sZend_Service_WindowsAzure_Credentials_SharedKeyLiteF4$ kZend_Service_WindowsAzure_Credentials_SharedKeyFA# Zend_Service_WindowsAzure_Credentials_SharedAccessSignatureF4" kZend_Service_WindowsAzure_Credentials_ExceptionF>! Zend_Service_WindowsAzure_Credentials_CredentialsAbstractF  5Zend_Service_TwitterF  CZend_Service_Twitter_SearchF# IZend_Service_Twitter_ExceptionF ;Zend_Service_TechnoratiF# IZend_Service_Technorati_WeblogF" GZend_Service_Technorati_UtilsF* WZend_Service_Technorati_TagsResultSetF' QZend_Service_Technorati_TagsResultF) UZend_Service_Technorati_TagResultSetF& OZend_Service_Technorati_TagResultF, [Zend_Service_Technorati_SearchResultSetF) UZend_Service_Technorati_SearchResultF& OZend_Service_Technorati_ResultSetF# IZend_Service_Technorati_ResultF* WZend_Service_Technorati_KeyInfoResultF* WZend_Service_Technorati_GetInfoResultF& OZend_Service_Technorati_ExceptionF   _  a8z[;c:N7lK4




R
$				p	B	X*qU2jN6W)c/Vz>b6                 ': QZend_Tool_Framework_Client_StorageF19 eZend_Tool_Framework_Client_Storage_DirectoryF(8 SZend_Tool_Framework_Client_ResponseFD7 	Zend_Tool_Framework_Client_Response_ContentDecorator_SeparatorF'6 QZend_Tool_Framework_Client_RequestF(5 SZend_Tool_Framework_Client_ManifestF94 uZend_Tool_Framework_Client_Interactive_InputResponseF83 sZend_Tool_Framework_Client_Interactive_InputRequestF82 sZend_Tool_Framework_Client_Interactive_InputHandlerF)1 UZend_Tool_Framework_Client_ExceptionF'0 QZend_Tool_Framework_Client_ConsoleFD/ 	Zend_Tool_Framework_Client_Console_ResponseDecorator_IndentionFD. 	Zend_Tool_Framework_Client_Console_ResponseDecorator_ColorizerFC- Zend_Tool_Framework_Client_Console_ResponseDecorator_BlockizeFF, Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenterF0+ cZend_Tool_Framework_Client_Console_ManifestF2* gZend_Tool_Framework_Client_Console_HelpSystemF6) oZend_Tool_Framework_Client_Console_ArgumentParserF&( OZend_Tool_Framework_Client_ConfigF(' SZend_Tool_Framework_Client_AbstractF*& WZend_Tool_Framework_Action_RepositoryF)% UZend_Tool_Framework_Action_ExceptionF$$ KZend_Tool_Framework_Action_BaseF# 'Zend_TimeSyncF" 1Zend_TimeSync_SntpF! 9Zend_TimeSync_ProtocolF  /Zend_TimeSync_NtpF ;Zend_TimeSync_ExceptionF +Zend_Text_TableF 3Zend_Text_Table_RowF ?Zend_Text_Table_ExceptionF& OZend_Text_Table_Decorator_UnicodeF$ KZend_Text_Table_Decorator_AsciiF 9Zend_Text_Table_ColumnF 3Zend_Text_MultiByteF -Zend_Text_FigletF AZend_Text_Figlet_ExceptionF 3Zend_Text_ExceptionF& OZend_Test_PHPUnit_Db_SimpleTesterF, [Zend_Test_PHPUnit_Db_Operation_TruncateF* WZend_Test_PHPUnit_Db_Operation_InsertF- ]Zend_Test_PHPUnit_Db_Operation_DeleteAllF* WZend_Test_PHPUnit_Db_Metadata_GenericF# IZend_Test_PHPUnit_Db_ExceptionF, [Zend_Test_PHPUnit_Db_DataSet_QueryTableF. _Zend_Test_PHPUnit_Db_DataSet_QueryDataSetF0 cZend_Test_PHPUnit_Db_DataSet_DbTableDataSetF) UZend_Test_PHPUnit_Db_DataSet_DbTableF*
 WZend_Test_PHPUnit_Db_DataSet_DbRowsetF$	 KZend_Test_PHPUnit_Db_ConnectionF' QZend_Test_PHPUnit_DatabaseTestCaseF) UZend_Test_PHPUnit_ControllerTestCaseF0 cZend_Test_PHPUnit_Constraint_ResponseHeaderF* WZend_Test_PHPUnit_Constraint_RedirectF+ YZend_Test_PHPUnit_Constraint_ExceptionF* WZend_Test_PHPUnit_Constraint_DomQueryF 7Zend_Test_DbStatementF 3Zend_Test_DbAdapterF  /Zend_Tag_ItemListF 'Zend_Tag_ItemF~ 1Zend_Tag_ExceptionF} )Zend_Tag_CloudF| =Zend_Tag_Cloud_ExceptionF!{ EZend_Tag_Cloud_Decorator_TagF%z MZend_Tag_Cloud_Decorator_HtmlTagF'y QZend_Tag_Cloud_Decorator_HtmlCloudF'x QZend_Tag_Cloud_Decorator_ExceptionF#w IZend_Tag_Cloud_Decorator_CloudFv )Zend_Soap_WsdlF/u aZend_Soap_Wsdl_Strategy_DefaultComplexTypeF&t OZend_Soap_Wsdl_Strategy_CompositeF0s cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequenceF/r aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplexF$q KZend_Soap_Wsdl_Strategy_AnyTypeF%p MZend_Soap_Wsdl_Strategy_AbstractFo =Zend_Soap_Wsdl_ExceptionFn -Zend_Soap_ServerFm AZend_Soap_Server_ExceptionFl -Zend_Soap_ClientFk 9Zend_Soap_Client_LocalFj AZend_Soap_Client_ExceptionFi ;Zend_Soap_Client_DotNetFh ;Zend_Soap_Client_CommonFg 9Zend_Soap_AutoDiscoverF%f MZend_Soap_AutoDiscover_ExceptionFe %Zend_SessionF)d UZend_Session_Validator_HttpUserAgentF$c KZend_Session_Validator_AbstractF'b QZend_Session_SaveHandler_ExceptionF%a MZend_Session_SaveHandler_DbTableF` 9Zend_Session_NamespaceF_ 9Zend_Session_ExceptionF^ 7Zend_Session_AbstractF] 1Zend_Service_YahooF$\ KZend_Service_Yahoo_WebResultSetF   J  1rE_0}Jn7


m
;
			T	}CvBn;q5`1X#w7K	                                     E Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectoryF> Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFileF= }Zend_Tool_Project_Context_Zf_TestApplicationActionMethodF4 kZend_Tool_Project_Context_Zf_TemporaryDirectoryF3  iZend_Tool_Project_Context_Zf_SessionsDirectoryF8 sZend_Tool_Project_Context_Zf_SearchIndexesDirectoryF<~ {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectoryF8} sZend_Tool_Project_Context_Zf_PublicScriptsDirectoryF1| eZend_Tool_Project_Context_Zf_PublicIndexFileF7{ qZend_Tool_Project_Context_Zf_PublicImagesDirectoryF1z eZend_Tool_Project_Context_Zf_PublicDirectoryF5y mZend_Tool_Project_Context_Zf_ProjectProviderFileF2x gZend_Tool_Project_Context_Zf_ModulesDirectoryF1w eZend_Tool_Project_Context_Zf_ModuleDirectoryF1v eZend_Tool_Project_Context_Zf_ModelsDirectoryF+u YZend_Tool_Project_Context_Zf_ModelFileF/t aZend_Tool_Project_Context_Zf_LogsDirectoryF2s gZend_Tool_Project_Context_Zf_LocalesDirectoryF2r gZend_Tool_Project_Context_Zf_LibraryDirectoryF2q gZend_Tool_Project_Context_Zf_LayoutsDirectoryF8p sZend_Tool_Project_Context_Zf_LayoutScriptsDirectoryF2o gZend_Tool_Project_Context_Zf_LayoutScriptFileF.n _Zend_Tool_Project_Context_Zf_HtaccessFileF0m cZend_Tool_Project_Context_Zf_FormsDirectoryF*l WZend_Tool_Project_Context_Zf_FormFileF/k aZend_Tool_Project_Context_Zf_DocsDirectoryF-j ]Zend_Tool_Project_Context_Zf_DbTableFileF2i gZend_Tool_Project_Context_Zf_DbTableDirectoryF/h aZend_Tool_Project_Context_Zf_DataDirectoryF6g oZend_Tool_Project_Context_Zf_ControllersDirectoryF0f cZend_Tool_Project_Context_Zf_ControllerFileF2e gZend_Tool_Project_Context_Zf_ConfigsDirectoryF,d [Zend_Tool_Project_Context_Zf_ConfigFileF0c cZend_Tool_Project_Context_Zf_CacheDirectoryF/b aZend_Tool_Project_Context_Zf_BootstrapFileF6a oZend_Tool_Project_Context_Zf_ApplicationDirectoryF7` qZend_Tool_Project_Context_Zf_ApplicationConfigFileF/_ aZend_Tool_Project_Context_Zf_ApisDirectoryF.^ _Zend_Tool_Project_Context_Zf_ActionMethodF3] iZend_Tool_Project_Context_Zf_AbstractClassFileF@\ Zend_Tool_Project_Context_System_ProjectProvidersDirectoryF8[ sZend_Tool_Project_Context_System_ProjectProfileFileF6Z oZend_Tool_Project_Context_System_ProjectDirectoryF)Y UZend_Tool_Project_Context_RepositoryF.X _Zend_Tool_Project_Context_Filesystem_FileF3W iZend_Tool_Project_Context_Filesystem_DirectoryF2V gZend_Tool_Project_Context_Filesystem_AbstractF(U SZend_Tool_Project_Context_ExceptionF-T ]Zend_Tool_Project_Context_Content_EngineF3S iZend_Tool_Project_Context_Content_Engine_PhtmlF;R yZend_Tool_Project_Context_Content_Engine_CodeGeneratorF0Q cZend_Tool_Framework_System_Provider_VersionF0P cZend_Tool_Framework_System_Provider_PhpinfoF1O eZend_Tool_Framework_System_Provider_ManifestF/N aZend_Tool_Framework_System_Provider_ConfigF(M SZend_Tool_Framework_System_ManifestF-L ]Zend_Tool_Framework_System_Action_DeleteF-K ]Zend_Tool_Framework_System_Action_CreateF!J EZend_Tool_Framework_RegistryF+I YZend_Tool_Framework_Registry_ExceptionF+H YZend_Tool_Framework_Provider_SignatureF,G [Zend_Tool_Framework_Provider_RepositoryF+F YZend_Tool_Framework_Provider_ExceptionF*E WZend_Tool_Framework_Provider_AbstractF&D OZend_Tool_Framework_Metadata_ToolF)C UZend_Tool_Framework_Metadata_DynamicF'B QZend_Tool_Framework_Metadata_BasicF,A [Zend_Tool_Framework_Manifest_RepositoryF+@ YZend_Tool_Framework_Manifest_ExceptionF1? eZend_Tool_Framework_Loader_IncludePathLoaderFJ> Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIteratorF+= YZend_Tool_Framework_Loader_BasicLoaderF(< SZend_Tool_Framework_Loader_AbstractF"; GZend_Tool_Framework_ExceptionF   Y  ~9{FUf2`4


T
				t	E	j@k8yV4dF/hCyU1[6tM(                                 $] KZend_Validate_Barcode_RoyalmailF"\ GZend_Validate_Barcode_PostnetF![ EZend_Validate_Barcode_PlanetF#Z IZend_Validate_Barcode_LeitcodeF Y CZend_Validate_Barcode_Itf14FX AZend_Validate_Barcode_IssnF*W WZend_Validate_Barcode_IntelligentMailF$V KZend_Validate_Barcode_IdentcodeF!U EZend_Validate_Barcode_Gtin14F!T EZend_Validate_Barcode_Gtin13F!S EZend_Validate_Barcode_Gtin12FR AZend_Validate_Barcode_Ean8FQ AZend_Validate_Barcode_Ean5FP AZend_Validate_Barcode_Ean2F O CZend_Validate_Barcode_Ean18F N CZend_Validate_Barcode_Ean14F M CZend_Validate_Barcode_Ean13F L CZend_Validate_Barcode_Ean12F$K KZend_Validate_Barcode_Code93extF!J EZend_Validate_Barcode_Code93F$I KZend_Validate_Barcode_Code39extF!H EZend_Validate_Barcode_Code39F,G [Zend_Validate_Barcode_Code25interleavedF!F EZend_Validate_Barcode_Code25F*E WZend_Validate_Barcode_AdapterAbstractFD 3Zend_Validate_AlphaFC 3Zend_Validate_AlnumFB 9Zend_Validate_AbstractFA Zend_UriF@ 'Zend_Uri_HttpF? 1Zend_Uri_ExceptionF> )Zend_TranslateF= 7Zend_Translate_PluralF< =Zend_Translate_ExceptionF; 9Zend_Translate_AdapterF!: EZend_Translate_Adapter_XmlTmF!9 EZend_Translate_Adapter_XliffF8 AZend_Translate_Adapter_TmxF7 AZend_Translate_Adapter_TbxF6 ?Zend_Translate_Adapter_QtF5 AZend_Translate_Adapter_IniF#4 IZend_Translate_Adapter_GettextF3 AZend_Translate_Adapter_CsvF!2 EZend_Translate_Adapter_ArrayF$1 KZend_Tool_Project_Provider_ViewF$0 KZend_Tool_Project_Provider_TestF// aZend_Tool_Project_Provider_ProjectProviderF'. QZend_Tool_Project_Provider_ProjectF'- QZend_Tool_Project_Provider_ProfileF&, OZend_Tool_Project_Provider_ModuleF%+ MZend_Tool_Project_Provider_ModelF(* SZend_Tool_Project_Provider_ManifestF&) OZend_Tool_Project_Provider_LayoutF$( KZend_Tool_Project_Provider_FormF)' UZend_Tool_Project_Provider_ExceptionF'& QZend_Tool_Project_Provider_DbTableF)% UZend_Tool_Project_Provider_DbAdapterF*$ WZend_Tool_Project_Provider_ControllerF+# YZend_Tool_Project_Provider_ApplicationF&" OZend_Tool_Project_Provider_ActionF(! SZend_Tool_Project_Provider_AbstractF  ?Zend_Tool_Project_ProfileF' QZend_Tool_Project_Profile_ResourceF9 uZend_Tool_Project_Profile_Resource_SearchConstraintsF1 eZend_Tool_Project_Profile_Resource_ContainerF= }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilterF5 mZend_Tool_Project_Profile_Iterator_ContextFilterF- ]Zend_Tool_Project_Profile_FileParser_XmlF( SZend_Tool_Project_Profile_ExceptionF  CZend_Tool_Project_ExceptionF< {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectoryF0 cZend_Tool_Project_Context_Zf_ViewsDirectoryF6 oZend_Tool_Project_Context_Zf_ViewScriptsDirectoryF0 cZend_Tool_Project_Context_Zf_ViewScriptFileF6 oZend_Tool_Project_Context_Zf_ViewHelpersDirectoryF6 oZend_Tool_Project_Context_Zf_ViewFiltersDirectoryFA Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectoryF2 gZend_Tool_Project_Context_Zf_UploadsDirectoryF0 cZend_Tool_Project_Context_Zf_TestsDirectoryF7 qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFileF: wZend_Tool_Project_Context_Zf_TestPHPUnitBootstrapFileF@ Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectoryF1 eZend_Tool_Project_Context_Zf_TestLibraryFileF6
 oZend_Tool_Project_Context_Zf_TestLibraryDirectoryF:	 wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFileFB Zend_Tool_Project_Context_Zf_TestApplicationModulesDirectoryFA Zend_Tool_Project_Context_Zf_TestApplicationModuleDirectoryF: wZend_Tool_Project_Context_Zf_TestApplicationDirectoryF@ Zend_Tool_Project_Context_Zf_TestApplicationControllerFileF   n  y[< tW4{Y4`<tR8





r
S
4
					a	>	(	yW8hChF pJ(zU2}_?]9e,               6K oZend_View_Helper_Placeholder_Container_StandaloneF5J mZend_View_Helper_Placeholder_Container_ExceptionF4I kZend_View_Helper_Placeholder_Container_AbstractF!H EZend_View_Helper_PartialLoopFG =Zend_View_Helper_PartialF'F QZend_View_Helper_Partial_ExceptionF'E QZend_View_Helper_PaginationControlF D CZend_View_Helper_NavigationF(C SZend_View_Helper_Navigation_SitemapF%B MZend_View_Helper_Navigation_MenuF&A OZend_View_Helper_Navigation_LinksF/@ aZend_View_Helper_Navigation_HelperAbstractF,? [Zend_View_Helper_Navigation_BreadcrumbsF> ;Zend_View_Helper_LayoutF= 7Zend_View_Helper_JsonF"< GZend_View_Helper_InlineScriptF#; IZend_View_Helper_HtmlQuicktimeF: ?Zend_View_Helper_HtmlPageF 9 CZend_View_Helper_HtmlObjectF8 ?Zend_View_Helper_HtmlListF7 AZend_View_Helper_HtmlFlashF!6 EZend_View_Helper_HtmlElementF5 AZend_View_Helper_HeadTitleF4 AZend_View_Helper_HeadStyleF 3 CZend_View_Helper_HeadScriptF2 ?Zend_View_Helper_HeadMetaF1 ?Zend_View_Helper_HeadLinkF0 ?Zend_View_Helper_GravatarF"/ GZend_View_Helper_FormTextareaF. ?Zend_View_Helper_FormTextF - CZend_View_Helper_FormSubmitF , CZend_View_Helper_FormSelectF+ AZend_View_Helper_FormResetF* AZend_View_Helper_FormRadioF") GZend_View_Helper_FormPasswordF( ?Zend_View_Helper_FormNoteF'' QZend_View_Helper_FormMultiCheckboxF& AZend_View_Helper_FormLabelF% AZend_View_Helper_FormImageF $ CZend_View_Helper_FormHiddenF# ?Zend_View_Helper_FormFileF " CZend_View_Helper_FormErrorsF!! EZend_View_Helper_FormElementF"  GZend_View_Helper_FormCheckboxF  CZend_View_Helper_FormButtonF 7Zend_View_Helper_FormF ?Zend_View_Helper_FieldsetF =Zend_View_Helper_DoctypeF! EZend_View_Helper_DeclareVarsF 9Zend_View_Helper_CycleF ?Zend_View_Helper_CurrencyF =Zend_View_Helper_BaseUrlF ;Zend_View_Helper_ActionF ?Zend_View_Helper_AbstractF 3Zend_View_ExceptionF 1Zend_View_AbstractF %Zend_VersionF 'Zend_ValidateF AZend_Validate_StringLengthF# IZend_Validate_Sitemap_PriorityF ?Zend_Validate_Sitemap_LocF" GZend_Validate_Sitemap_LastmodF% MZend_Validate_Sitemap_ChangefreqF 3Zend_Validate_RegexF 9Zend_Validate_PostCodeF
 9Zend_Validate_NotEmptyF	 9Zend_Validate_LessThanF 1Zend_Validate_IsbnF -Zend_Validate_IpF /Zend_Validate_IntF 7Zend_Validate_InArrayF ;Zend_Validate_IdenticalF 1Zend_Validate_IbanF 9Zend_Validate_HostnameF /Zend_Validate_HexF  ?Zend_Validate_GreaterThanF 3Zend_Validate_FloatF!~ EZend_Validate_File_WordCountF} ?Zend_Validate_File_UploadF| ;Zend_Validate_File_SizeF{ ;Zend_Validate_File_Sha1F!z EZend_Validate_File_NotExistsF y CZend_Validate_File_MimeTypeFx 9Zend_Validate_File_Md5Fw AZend_Validate_File_IsImageF$v KZend_Validate_File_IsCompressedF!u EZend_Validate_File_ImageSizeFt ;Zend_Validate_File_HashF!s EZend_Validate_File_FilesSizeF!r EZend_Validate_File_ExtensionFq ?Zend_Validate_File_ExistsF'p QZend_Validate_File_ExcludeMimeTypeF(o SZend_Validate_File_ExcludeExtensionFn =Zend_Validate_File_Crc32Fm =Zend_Validate_File_CountFl ;Zend_Validate_ExceptionFk AZend_Validate_EmailAddressFj 5Zend_Validate_DigitsF"i GZend_Validate_Db_RecordExistsF$h KZend_Validate_Db_NoRecordExistsFg ?Zend_Validate_Db_AbstractFf 1Zend_Validate_DateFe =Zend_Validate_CreditCardFd 3Zend_Validate_CcnumFc 9Zend_Validate_CallbackFb 7Zend_Validate_BetweenFa 7Zend_Validate_BarcodeF` AZend_Validate_Barcode_UpceF_ AZend_Validate_Barcode_UpcaF^ AZend_Validate_Barcode_SsccF   j  kFrYGyO* yR7}\:




x
V
;
					k	J	&	iN4bC(mI&`> qP-rDf1]8          (5 SZend_Application_Resource_ExceptionG#4 IZend_Application_Resource_DojoG!3 EZend_Application_Resource_DbG+2 YZend_Application_Resource_CachemanagerG&1 OZend_Application_Module_BootstrapG'0 QZend_Application_Module_AutoloaderG/ AZend_Application_ExceptionG). UZend_Application_Bootstrap_ExceptionG1- eZend_Application_Bootstrap_BootstrapAbstractG), UZend_Application_Bootstrap_BootstrapG+ ?Zend_Amf_Value_TraitsInfoG-* ]Zend_Amf_Value_Messaging_RemotingMessageG*) WZend_Amf_Value_Messaging_ErrorMessageG,( [Zend_Amf_Value_Messaging_CommandMessageG*' WZend_Amf_Value_Messaging_AsyncMessageG-& ]Zend_Amf_Value_Messaging_ArrayCollectionG0% cZend_Amf_Value_Messaging_AcknowledgeMessageG-$ ]Zend_Amf_Value_Messaging_AbstractMessageG!# EZend_Amf_Value_MessageHeaderG" AZend_Amf_Value_MessageBodyG! =Zend_Amf_Value_ByteArrayG  AZend_Amf_Util_BinaryStreamG +Zend_Amf_ServerG ?Zend_Amf_Server_ExceptionG /Zend_Amf_ResponseG 9Zend_Amf_Response_HttpG -Zend_Amf_RequestG 7Zend_Amf_Request_HttpG ?Zend_Amf_Parse_TypeLoaderG ?Zend_Amf_Parse_SerializerG# IZend_Amf_Parse_Resource_StreamG( SZend_Amf_Parse_Resource_MysqlResultG) UZend_Amf_Parse_Resource_MysqliResultG  CZend_Amf_Parse_OutputStreamG AZend_Amf_Parse_InputStreamG  CZend_Amf_Parse_DeserializerG# IZend_Amf_Parse_Amf3_SerializerG% MZend_Amf_Parse_Amf3_DeserializerG# IZend_Amf_Parse_Amf0_SerializerG% MZend_Amf_Parse_Amf0_DeserializerG 1Zend_Amf_ExceptionG 1Zend_Amf_ConstantsG 9Zend_Amf_Auth_AbstractG 
 CZend_Amf_Adobe_IntrospectorG	 AZend_Amf_Adobe_DbInspectorG 3Zend_Amf_Adobe_AuthG Zend_AclG 'Zend_Acl_RoleG 9Zend_Acl_Role_RegistryG% MZend_Acl_Role_Registry_ExceptionG /Zend_Acl_ResourceG 1Zend_Acl_ExceptionG /Zend_XmlRpc_ValueF  =Zend_XmlRpc_Value_StructF =Zend_XmlRpc_Value_StringF~ =Zend_XmlRpc_Value_ScalarF} 7Zend_XmlRpc_Value_NilF| ?Zend_XmlRpc_Value_IntegerF { CZend_XmlRpc_Value_ExceptionFz =Zend_XmlRpc_Value_DoubleFy AZend_XmlRpc_Value_DateTimeF!x EZend_XmlRpc_Value_CollectionFw ?Zend_XmlRpc_Value_BooleanF!v EZend_XmlRpc_Value_BigIntegerFu =Zend_XmlRpc_Value_Base64Ft ;Zend_XmlRpc_Value_ArrayFs 1Zend_XmlRpc_ServerFr ?Zend_XmlRpc_Server_SystemFq =Zend_XmlRpc_Server_FaultF!p EZend_XmlRpc_Server_ExceptionFo =Zend_XmlRpc_Server_CacheFn 5Zend_XmlRpc_ResponseFm ?Zend_XmlRpc_Response_HttpFl 3Zend_XmlRpc_RequestFk ?Zend_XmlRpc_Request_StdinFj =Zend_XmlRpc_Request_HttpF$i KZend_XmlRpc_Generator_XmlWriterF,h [Zend_XmlRpc_Generator_GeneratorAbstractF&g OZend_XmlRpc_Generator_DomDocumentFf /Zend_XmlRpc_FaultFe 7Zend_XmlRpc_ExceptionFd 1Zend_XmlRpc_ClientF#c IZend_XmlRpc_Client_ServerProxyF+b YZend_XmlRpc_Client_ServerIntrospectionF+a YZend_XmlRpc_Client_IntrospectExceptionF%` MZend_XmlRpc_Client_HttpExceptionF&_ OZend_XmlRpc_Client_FaultExceptionF!^ EZend_XmlRpc_Client_ExceptionF&] OZend_Wildfire_Protocol_JsonStreamF!\ EZend_Wildfire_Plugin_FirePhpF.[ _Zend_Wildfire_Plugin_FirePhp_TableMessageF)Z UZend_Wildfire_Plugin_FirePhp_MessageFY ;Zend_Wildfire_ExceptionF&X OZend_Wildfire_Channel_HttpHeadersFW Zend_ViewFV -Zend_View_StreamFU AZend_View_Helper_UserAgentFT 5Zend_View_Helper_UrlFS AZend_View_Helper_TranslateFR =Zend_View_Helper_TinySrcFQ AZend_View_Helper_ServerUrlF)P UZend_View_Helper_RenderToPlaceholderF!O EZend_View_Helper_PlaceholderF*N WZend_View_Helper_Placeholder_RegistryF4M kZend_View_Helper_Placeholder_Registry_ExceptionF+L YZend_View_Helper_Placeholder_ContainerF   V  kF)`>p6tIY8




Z
0					]	.	e>}`rY.@tFu7vA~A            e ;Zend_Validate_InterfaceF+d YZend_Validate_Barcode_AdapterInterfaceF3c iZend_Tool_Project_Profile_FileParser_InterfaceF:b wZend_Tool_Project_Context_System_TopLevelRestrictableF5a mZend_Tool_Project_Context_System_NotOverwritableF/` aZend_Tool_Project_Context_System_InterfaceF(_ SZend_Tool_Project_Context_InterfaceF+^ YZend_Tool_Framework_Registry_InterfaceF2] gZend_Tool_Framework_Registry_EnabledInterfaceF-\ ]Zend_Tool_Framework_Provider_PretendableF+[ YZend_Tool_Framework_Provider_InterfaceF.Z _Zend_Tool_Framework_Provider_InteractableF/Y aZend_Tool_Framework_Provider_InitializableF;X yZend_Tool_Framework_Provider_DocblockManifestInterfaceF+W YZend_Tool_Framework_Metadata_InterfaceF.V _Zend_Tool_Framework_Metadata_AttributableF6U oZend_Tool_Framework_Manifest_ProviderManifestableF6T oZend_Tool_Framework_Manifest_MetadataManifestableF+S YZend_Tool_Framework_Manifest_InterfaceF+R YZend_Tool_Framework_Manifest_IndexableF4Q kZend_Tool_Framework_Manifest_ActionManifestableF)P UZend_Tool_Framework_Loader_InterfaceF8O sZend_Tool_Framework_Client_Storage_AdapterInterfaceFDN 	Zend_Tool_Framework_Client_Response_ContentDecorator_InterfaceF;M yZend_Tool_Framework_Client_Interactive_OutputInterfaceF:L wZend_Tool_Framework_Client_Interactive_InputInterfaceF)K UZend_Tool_Framework_Action_InterfaceF(J SZend_Text_Table_Decorator_InterfaceFI /Zend_Tag_TaggableF&H OZend_Soap_Wsdl_Strategy_InterfaceF%G MZend_Session_Validator_InterfaceF'F QZend_Session_SaveHandler_InterfaceF$E KZend_Service_ShortUrl_ShortenerFID Zend_Service_DeveloperGarden_Response_SecurityTokenServer_InterfaceFC 7Zend_Server_InterfaceF-B ]Zend_Serializer_Adapter_AdapterInterfaceF4A kZend_Search_Lucene_Search_Highlighter_InterfaceF!@ EZend_Search_Lucene_InterfaceF3? iZend_Search_Lucene_Index_TermsStream_InterfaceF$> KZend_Queue_Stomp_FrameInterfaceF0= cZend_Queue_Stomp_Client_ConnectionInterfaceF(< SZend_Queue_Adapter_AdapterInterfaceF; ?Zend_Pdf_Filter_InterfaceF&: OZend_Pdf_ElementFactory_InterfaceF9 ?Zend_Pdf_Canvas_InterfaceF,8 [Zend_Paginator_ScrollingStyle_InterfaceF$7 KZend_Paginator_AdapterAggregateF%6 MZend_Paginator_Adapter_InterfaceF&5 OZend_Oauth_Config_ConfigInterfaceF$4 KZend_Memory_Container_InterfaceF13 eZend_Markup_Renderer_TokenConverterInterfaceF'2 QZend_Markup_Parser_ParserInterfaceF)1 UZend_Mail_Storage_Writable_InterfaceF'0 QZend_Mail_Storage_Folder_InterfaceF/ =Zend_Mail_Part_InterfaceF . CZend_Mail_Message_InterfaceF!- EZend_Log_Formatter_InterfaceF, ?Zend_Log_Filter_InterfaceF+ ?Zend_Log_FactoryInterfaceF'* QZend_Loader_PluginLoader_InterfaceF%) MZend_Loader_Autoloader_InterfaceF0( cZend_Ldap_Node_Schema_ObjectClass_InterfaceF2' gZend_Ldap_Node_Schema_AttributeType_InterfaceF3& iZend_InfoCard_Xml_Security_Transform_InterfaceF(% SZend_InfoCard_Xml_KeyInfo_InterfaceF($ SZend_InfoCard_Xml_Element_InterfaceF*# WZend_InfoCard_Xml_Assertion_InterfaceF-" ]Zend_InfoCard_Cipher_Symmetric_InterfaceF7! qZend_InfoCard_Cipher_Symmetric_Aes256cbc_InterfaceF7  qZend_InfoCard_Cipher_Symmetric_Aes128cbc_InterfaceF+ YZend_InfoCard_Cipher_Pki_Rsa_InterfaceF' QZend_InfoCard_Cipher_Pki_InterfaceF$ KZend_InfoCard_Adapter_InterfaceF  CZend_Http_UserAgent_StorageF) UZend_Http_UserAgent_Features_AdapterF AZend_Http_UserAgent_DeviceF$ KZend_Http_Client_Adapter_StreamF' QZend_Http_Client_Adapter_InterfaceF AZend_Gdata_App_MediaSourceF. _Zend_Form_Decorator_Marker_File_InterfaceF" GZend_Form_Decorator_InterfaceF 7Zend_Filter_InterfaceF" GZend_Filter_Encrypt_InterfaceF+ YZend_Filter_Compress_CompressInterfaceF0 cZend_Feed_Writer_Renderer_RendererInterfaceF1 eZend_Feed_Writer_Extension_RendererInterfaceF   ]  rL+Y(vLyQ#Z 



l
>
					Z	3	qC	rG~V,Y-W0k8P3nE,                    )B UZend_Tool_Framework_Action_InterfaceG(A SZend_Text_Table_Decorator_InterfaceG@ /Zend_Tag_TaggableG&? OZend_Soap_Wsdl_Strategy_InterfaceG%> MZend_Session_Validator_InterfaceG'= QZend_Session_SaveHandler_InterfaceG$< KZend_Service_ShortUrl_ShortenerGI; Zend_Service_DeveloperGarden_Response_SecurityTokenServer_InterfaceG: 7Zend_Server_InterfaceG-9 ]Zend_Serializer_Adapter_AdapterInterfaceG48 kZend_Search_Lucene_Search_Highlighter_InterfaceG!7 EZend_Search_Lucene_InterfaceG36 iZend_Search_Lucene_Index_TermsStream_InterfaceG$5 KZend_Queue_Stomp_FrameInterfaceG04 cZend_Queue_Stomp_Client_ConnectionInterfaceG(3 SZend_Queue_Adapter_AdapterInterfaceG2 ?Zend_Pdf_Filter_InterfaceG&1 OZend_Pdf_ElementFactory_InterfaceG0 ?Zend_Pdf_Canvas_InterfaceG,/ [Zend_Paginator_ScrollingStyle_InterfaceG$. KZend_Paginator_AdapterAggregateG%- MZend_Paginator_Adapter_InterfaceG&, OZend_Oauth_Config_ConfigInterfaceG$+ KZend_Memory_Container_InterfaceG1* eZend_Markup_Renderer_TokenConverterInterfaceG') QZend_Markup_Parser_ParserInterfaceG)( UZend_Mail_Storage_Writable_InterfaceG'' QZend_Mail_Storage_Folder_InterfaceG& =Zend_Mail_Part_InterfaceG % CZend_Mail_Message_InterfaceG!$ EZend_Log_Formatter_InterfaceG# ?Zend_Log_Filter_InterfaceG" ?Zend_Log_FactoryInterfaceG'! QZend_Loader_PluginLoader_InterfaceG%  MZend_Loader_Autoloader_InterfaceG0 cZend_Ldap_Node_Schema_ObjectClass_InterfaceG2 gZend_Ldap_Node_Schema_AttributeType_InterfaceG3 iZend_InfoCard_Xml_Security_Transform_InterfaceG( SZend_InfoCard_Xml_KeyInfo_InterfaceG( SZend_InfoCard_Xml_Element_InterfaceG* WZend_InfoCard_Xml_Assertion_InterfaceG- ]Zend_InfoCard_Cipher_Symmetric_InterfaceG7 qZend_InfoCard_Cipher_Symmetric_Aes256cbc_InterfaceG7 qZend_InfoCard_Cipher_Symmetric_Aes128cbc_InterfaceG+ YZend_InfoCard_Cipher_Pki_Rsa_InterfaceG' QZend_InfoCard_Cipher_Pki_InterfaceG$ KZend_InfoCard_Adapter_InterfaceG  CZend_Http_UserAgent_StorageG) UZend_Http_UserAgent_Features_AdapterG AZend_Http_UserAgent_DeviceG$ KZend_Http_Client_Adapter_StreamG' QZend_Http_Client_Adapter_InterfaceG AZend_Gdata_App_MediaSourceG. _Zend_Form_Decorator_Marker_File_InterfaceG" GZend_Form_Decorator_InterfaceG 7Zend_Filter_InterfaceG"
 GZend_Filter_Encrypt_InterfaceG+	 YZend_Filter_Compress_CompressInterfaceG0 cZend_Feed_Writer_Renderer_RendererInterfaceG1 eZend_Feed_Writer_Extension_RendererInterfaceG# IZend_Feed_Reader_FeedInterfaceG$ KZend_Feed_Reader_EntryInterfaceG7 qZend_Feed_Pubsubhubbub_Model_SubscriptionInterfaceG- ]Zend_Feed_Pubsubhubbub_CallbackInterfaceG  CZend_Feed_Builder_InterfaceG  CZend_Db_Statement_InterfaceG$  KZend_Currency_CurrencyInterfaceG) UZend_Crypt_Math_BigInteger_InterfaceG+~ YZend_Controller_Router_Route_InterfaceG%} MZend_Controller_Router_InterfaceG)| UZend_Controller_Dispatcher_InterfaceG%{ MZend_Controller_Action_InterfaceG&z OZend_Cloud_StorageService_AdapterG$y KZend_Cloud_QueueService_AdapterG,x [Zend_Cloud_DocumentService_QueryAdapterG'w QZend_Cloud_DocumentService_AdapterGv 5Zend_Captcha_AdapterG!u EZend_Cache_Backend_InterfaceG)t UZend_Cache_Backend_ExtendedInterfaceG s CZend_Auth_Storage_InterfaceG r CZend_Auth_Adapter_InterfaceG.q _Zend_Auth_Adapter_Http_Resolver_InterfaceG'p QZend_Application_Resource_ResourceG4o kZend_Application_Bootstrap_ResourceBootstrapperG,n [Zend_Application_Bootstrap_BootstrapperGm ;Zend_Acl_Role_InterfaceG l CZend_Acl_Resource_InterfaceGk ?Zend_Acl_Assert_InterfaceG#j IZend_Wildfire_Plugin_InterfaceF$i KZend_Wildfire_Channel_InterfaceFh 3Zend_View_InterfaceF'g QZend_View_Helper_Navigation_HelperFf AZend_View_Helper_InterfaceF   h  |V/{R(nM)iH,tP-




x
W
5
				w	T	0	
|Z+	hC!tL![9gM.`&|P!Q                      ( SZend_Cloud_QueueService_Adapter_SqsG4 kZend_Cloud_QueueService_Adapter_AbstractAdapterG. _Zend_Cloud_OperationNotAvailableExceptionG 5Zend_Cloud_ExceptionG% MZend_Cloud_DocumentService_QueryG' QZend_Cloud_DocumentService_FactoryG) UZend_Cloud_DocumentService_ExceptionG+ YZend_Cloud_DocumentService_DocumentSetG( SZend_Cloud_DocumentService_DocumentG4 kZend_Cloud_DocumentService_Adapter_WindowsAzureG: wZend_Cloud_DocumentService_Adapter_WindowsAzure_QueryG0 cZend_Cloud_DocumentService_Adapter_SimpleDbG6 oZend_Cloud_DocumentService_Adapter_SimpleDb_QueryG7 qZend_Cloud_DocumentService_Adapter_AbstractAdapterG AZend_Cloud_AbstractFactoryG /Zend_Captcha_WordG 9Zend_Captcha_ReCaptchaG 1Zend_Captcha_ImageG 3Zend_Captcha_FigletG
 9Zend_Captcha_ExceptionG	 /Zend_Captcha_DumbG /Zend_Captcha_BaseG !Zend_CacheG 1Zend_Cache_ManagerG =Zend_Cache_Frontend_PageG AZend_Cache_Frontend_OutputG! EZend_Cache_Frontend_FunctionG =Zend_Cache_Frontend_FileG ?Zend_Cache_Frontend_ClassG   CZend_Cache_Frontend_CaptureG 5Zend_Cache_ExceptionG~ +Zend_Cache_CoreG} 1Zend_Cache_BackendG"| GZend_Cache_Backend_ZendServerG({ SZend_Cache_Backend_ZendServer_ShMemG'z QZend_Cache_Backend_ZendServer_DiskG$y KZend_Cache_Backend_ZendPlatformGx ?Zend_Cache_Backend_XcacheG w CZend_Cache_Backend_WinCacheG!v EZend_Cache_Backend_TwoLevelsGu ;Zend_Cache_Backend_TestGt ?Zend_Cache_Backend_StaticGs ?Zend_Cache_Backend_SqliteG!r EZend_Cache_Backend_MemcachedG$q KZend_Cache_Backend_LibmemcachedGp ;Zend_Cache_Backend_FileG!o EZend_Cache_Backend_BlackHoleGn 9Zend_Cache_Backend_ApcGm %Zend_BarcodeGl ?Zend_Barcode_Renderer_SvgG+k YZend_Barcode_Renderer_RendererAbstractGj ?Zend_Barcode_Renderer_PdfG i CZend_Barcode_Renderer_ImageG$h KZend_Barcode_Renderer_ExceptionGg =Zend_Barcode_Object_UpceGf =Zend_Barcode_Object_UpcaG"e GZend_Barcode_Object_RoyalmailG d CZend_Barcode_Object_PostnetGc AZend_Barcode_Object_PlanetG'b QZend_Barcode_Object_ObjectAbstractG!a EZend_Barcode_Object_LeitcodeG` ?Zend_Barcode_Object_Itf14G"_ GZend_Barcode_Object_IdentcodeG"^ GZend_Barcode_Object_ExceptionG] ?Zend_Barcode_Object_ErrorG\ =Zend_Barcode_Object_Ean8G[ =Zend_Barcode_Object_Ean5GZ =Zend_Barcode_Object_Ean2GY ?Zend_Barcode_Object_Ean13GX AZend_Barcode_Object_Code39G*W WZend_Barcode_Object_Code25interleavedGV AZend_Barcode_Object_Code25G U CZend_Barcode_Object_Code128GT 9Zend_Barcode_ExceptionGS Zend_AuthGR ?Zend_Auth_Storage_SessionG$Q KZend_Auth_Storage_NonPersistentG P CZend_Auth_Storage_ExceptionGO -Zend_Auth_ResultGN 3Zend_Auth_ExceptionGM =Zend_Auth_Adapter_OpenIdGL 9Zend_Auth_Adapter_LdapGK AZend_Auth_Adapter_InfoCardGJ 9Zend_Auth_Adapter_HttpG)I UZend_Auth_Adapter_Http_Resolver_FileG.H _Zend_Auth_Adapter_Http_Resolver_ExceptionG G CZend_Auth_Adapter_ExceptionGF =Zend_Auth_Adapter_DigestGE ?Zend_Auth_Adapter_DbTableGD -Zend_ApplicationG#C IZend_Application_Resource_ViewG(B SZend_Application_Resource_UserAgentG(A SZend_Application_Resource_TranslateG&@ OZend_Application_Resource_SessionG%? MZend_Application_Resource_RouterG/> aZend_Application_Resource_ResourceAbstractG)= UZend_Application_Resource_NavigationG&< OZend_Application_Resource_MultidbG&; OZend_Application_Resource_ModulesG#: IZend_Application_Resource_MailG"9 GZend_Application_Resource_LogG%8 MZend_Application_Resource_LocaleG%7 MZend_Application_Resource_LayoutG.6 _Zend_Application_Resource_FrontcontrollerG   ]  oG_(a=S+Y#




g
N
-
					l	T	;	'	[)vJ[(wJe9m@yK#zL          (z SZend_Controller_Router_Route_StaticG'y QZend_Controller_Router_Route_RegexG(x SZend_Controller_Router_Route_ModuleG*w WZend_Controller_Router_Route_HostnameG'v QZend_Controller_Router_Route_ChainG*u WZend_Controller_Router_Route_AbstractG#t IZend_Controller_Router_RewriteG%s MZend_Controller_Router_ExceptionG$r KZend_Controller_Router_AbstractG*q WZend_Controller_Response_HttpTestCaseG"p GZend_Controller_Response_HttpG'o QZend_Controller_Response_ExceptionG!n EZend_Controller_Response_CliG&m OZend_Controller_Response_AbstractG#l IZend_Controller_Request_SimpleG)k UZend_Controller_Request_HttpTestCaseG!j EZend_Controller_Request_HttpG&i OZend_Controller_Request_ExceptionG&h OZend_Controller_Request_Apache404G%g MZend_Controller_Request_AbstractG&f OZend_Controller_Plugin_PutHandlerG(e SZend_Controller_Plugin_ErrorHandlerG"d GZend_Controller_Plugin_BrokerG'c QZend_Controller_Plugin_ActionStackG$b KZend_Controller_Plugin_AbstractGa 7Zend_Controller_FrontG` ?Zend_Controller_ExceptionG(_ SZend_Controller_Dispatcher_StandardG)^ UZend_Controller_Dispatcher_ExceptionG(] SZend_Controller_Dispatcher_AbstractG\ 9Zend_Controller_ActionG([ SZend_Controller_Action_HelperBrokerG6Z oZend_Controller_Action_HelperBroker_PriorityStackG/Y aZend_Controller_Action_Helper_ViewRendererG&X OZend_Controller_Action_Helper_UrlG-W ]Zend_Controller_Action_Helper_RedirectorG'V QZend_Controller_Action_Helper_JsonG1U eZend_Controller_Action_Helper_FlashMessengerG0T cZend_Controller_Action_Helper_ContextSwitchG(S SZend_Controller_Action_Helper_CacheG<R {Zend_Controller_Action_Helper_AutoCompleteScriptaculousG3Q iZend_Controller_Action_Helper_AutoCompleteDojoG8P sZend_Controller_Action_Helper_AutoComplete_AbstractG.O _Zend_Controller_Action_Helper_AjaxContextG.N _Zend_Controller_Action_Helper_ActionStackG+M YZend_Controller_Action_Helper_AbstractG%L MZend_Controller_Action_ExceptionGK 3Zend_Console_GetoptG"J GZend_Console_Getopt_ExceptionGI #Zend_ConfigGH -Zend_Config_YamlGG +Zend_Config_XmlGF 1Zend_Config_WriterGE ;Zend_Config_Writer_YamlGD 9Zend_Config_Writer_XmlGC ;Zend_Config_Writer_JsonGB 9Zend_Config_Writer_IniG$A KZend_Config_Writer_FileAbstractG@ =Zend_Config_Writer_ArrayG? -Zend_Config_JsonG> +Zend_Config_IniG= 7Zend_Config_ExceptionG$< KZend_CodeGenerator_Php_PropertyG1; eZend_CodeGenerator_Php_Property_DefaultValueG%: MZend_CodeGenerator_Php_ParameterG29 gZend_CodeGenerator_Php_Parameter_DefaultValueG"8 GZend_CodeGenerator_Php_MethodG,7 [Zend_CodeGenerator_Php_Member_ContainerG+6 YZend_CodeGenerator_Php_Member_AbstractG 5 CZend_CodeGenerator_Php_FileG%4 MZend_CodeGenerator_Php_ExceptionG$3 KZend_CodeGenerator_Php_DocblockG(2 SZend_CodeGenerator_Php_Docblock_TagG/1 aZend_CodeGenerator_Php_Docblock_Tag_ReturnG.0 _Zend_CodeGenerator_Php_Docblock_Tag_ParamG0/ cZend_CodeGenerator_Php_Docblock_Tag_LicenseG!. EZend_CodeGenerator_Php_ClassG - CZend_CodeGenerator_Php_BodyG$, KZend_CodeGenerator_Php_AbstractG!+ EZend_CodeGenerator_ExceptionG * CZend_CodeGenerator_AbstractG&) OZend_Cloud_StorageService_FactoryG(( SZend_Cloud_StorageService_ExceptionG3' iZend_Cloud_StorageService_Adapter_WindowsAzureG)& UZend_Cloud_StorageService_Adapter_S3G/% aZend_Cloud_StorageService_Adapter_NirvanixG1$ eZend_Cloud_StorageService_Adapter_FileSystemG'# QZend_Cloud_QueueService_MessageSetG$" KZend_Cloud_QueueService_MessageG$! KZend_Cloud_QueueService_FactoryG&  OZend_Cloud_QueueService_ExceptionG. _Zend_Cloud_QueueService_Adapter_ZendQueueG1 eZend_Cloud_QueueService_Adapter_WindowsAzureG   n  rP8u]<|cF*jK"vT2




k
V
3
					z	\	8	~\>xU1iSC0}Lf6n?p@^8 $h KZend_Dojo_Form_Element_TextareaG(g SZend_Dojo_Form_Element_SubmitButtonG"f GZend_Dojo_Form_Element_SliderG*e WZend_Dojo_Form_Element_SimpleTextareaG'd QZend_Dojo_Form_Element_RadioButtonG+c YZend_Dojo_Form_Element_PasswordTextBoxG)b UZend_Dojo_Form_Element_NumberTextBoxG)a UZend_Dojo_Form_Element_NumberSpinnerG,` [Zend_Dojo_Form_Element_HorizontalSliderG+_ YZend_Dojo_Form_Element_FilteringSelectG"^ GZend_Dojo_Form_Element_EditorG&] OZend_Dojo_Form_Element_DijitMultiG!\ EZend_Dojo_Form_Element_DijitG'[ QZend_Dojo_Form_Element_DateTextBoxG+Z YZend_Dojo_Form_Element_CurrencyTextBoxG$Y KZend_Dojo_Form_Element_ComboBoxG$X KZend_Dojo_Form_Element_CheckBoxG"W GZend_Dojo_Form_Element_ButtonG V CZend_Dojo_Form_DisplayGroupG*U WZend_Dojo_Form_Decorator_TabContainerG,T [Zend_Dojo_Form_Decorator_StackContainerG,S [Zend_Dojo_Form_Decorator_SplitContainerG'R QZend_Dojo_Form_Decorator_DijitFormG*Q WZend_Dojo_Form_Decorator_DijitElementG,P [Zend_Dojo_Form_Decorator_DijitContainerG)O UZend_Dojo_Form_Decorator_ContentPaneG-N ]Zend_Dojo_Form_Decorator_BorderContainerG+M YZend_Dojo_Form_Decorator_AccordionPaneG0L cZend_Dojo_Form_Decorator_AccordionContainerGK 3Zend_Dojo_ExceptionGJ )Zend_Dojo_DataGI 5Zend_Dojo_BuildLayerGH !Zend_DebugGG Zend_DbGF 'Zend_Db_TableGE 5Zend_Db_Table_SelectG#D IZend_Db_Table_Select_ExceptionGC 5Zend_Db_Table_RowsetG#B IZend_Db_Table_Rowset_ExceptionG"A GZend_Db_Table_Rowset_AbstractG@ /Zend_Db_Table_RowG ? CZend_Db_Table_Row_ExceptionG> AZend_Db_Table_Row_AbstractG= ;Zend_Db_Table_ExceptionG< =Zend_Db_Table_DefinitionG; 9Zend_Db_Table_AbstractG: /Zend_Db_StatementG9 =Zend_Db_Statement_SqlsrvG'8 QZend_Db_Statement_Sqlsrv_ExceptionG7 7Zend_Db_Statement_PdoG6 ?Zend_Db_Statement_Pdo_OciG5 ?Zend_Db_Statement_Pdo_IbmG4 =Zend_Db_Statement_OracleG'3 QZend_Db_Statement_Oracle_ExceptionG2 =Zend_Db_Statement_MysqliG'1 QZend_Db_Statement_Mysqli_ExceptionG 0 CZend_Db_Statement_ExceptionG/ 7Zend_Db_Statement_Db2G$. KZend_Db_Statement_Db2_ExceptionG- )Zend_Db_SelectG, =Zend_Db_Select_ExceptionG+ -Zend_Db_ProfilerG* 9Zend_Db_Profiler_QueryG) =Zend_Db_Profiler_FirebugG( AZend_Db_Profiler_ExceptionG' %Zend_Db_ExprG& /Zend_Db_ExceptionG% 9Zend_Db_Adapter_SqlsrvG%$ MZend_Db_Adapter_Sqlsrv_ExceptionG# AZend_Db_Adapter_Pdo_SqliteG" ?Zend_Db_Adapter_Pdo_PgsqlG! ;Zend_Db_Adapter_Pdo_OciG  ?Zend_Db_Adapter_Pdo_MysqlG ?Zend_Db_Adapter_Pdo_MssqlG ;Zend_Db_Adapter_Pdo_IbmG  CZend_Db_Adapter_Pdo_Ibm_IdsG  CZend_Db_Adapter_Pdo_Ibm_Db2G! EZend_Db_Adapter_Pdo_AbstractG 9Zend_Db_Adapter_OracleG% MZend_Db_Adapter_Oracle_ExceptionG 9Zend_Db_Adapter_MysqliG% MZend_Db_Adapter_Mysqli_ExceptionG ?Zend_Db_Adapter_ExceptionG 3Zend_Db_Adapter_Db2G" GZend_Db_Adapter_Db2_ExceptionG =Zend_Db_Adapter_AbstractG Zend_DateG 3Zend_Date_ExceptionG 5Zend_Date_DateObjectG -Zend_Date_CitiesG 'Zend_CurrencyG ;Zend_Currency_ExceptionG !Zend_CryptG )Zend_Crypt_RsaG
 1Zend_Crypt_Rsa_KeyG	 ?Zend_Crypt_Rsa_Key_PublicG AZend_Crypt_Rsa_Key_PrivateG =Zend_Crypt_Rsa_ExceptionG +Zend_Crypt_MathG ?Zend_Crypt_Math_ExceptionG AZend_Crypt_Math_BigIntegerG# IZend_Crypt_Math_BigInteger_GmpG) UZend_Crypt_Math_BigInteger_ExceptionG& OZend_Crypt_Math_BigInteger_BcmathG  +Zend_Crypt_HmacG ?Zend_Crypt_Hmac_ExceptionG~ 5Zend_Crypt_ExceptionG} =Zend_Crypt_DiffieHellmanG'| QZend_Crypt_DiffieHellman_ExceptionG!{ EZend_Controller_Router_RouteG   a  }O0mH!xN*Z7X+



V
/
					p	U	4	rJ)O&l9a=tC
k:
zFpJ)                 I =Zend_Feed_Writer_DeletedGH 'Zend_Feed_RssGG -Zend_Feed_ReaderGF =Zend_Feed_Reader_FeedSetG"E GZend_Feed_Reader_FeedAbstractGD ?Zend_Feed_Reader_Feed_RssGC AZend_Feed_Reader_Feed_AtomG&B OZend_Feed_Reader_Feed_Atom_SourceG3A iZend_Feed_Reader_Extension_WellFormedWeb_EntryG,@ [Zend_Feed_Reader_Extension_Thread_EntryG0? cZend_Feed_Reader_Extension_Syndication_FeedG+> YZend_Feed_Reader_Extension_Slash_EntryG,= [Zend_Feed_Reader_Extension_Podcast_FeedG-< ]Zend_Feed_Reader_Extension_Podcast_EntryG,; [Zend_Feed_Reader_Extension_FeedAbstractG-: ]Zend_Feed_Reader_Extension_EntryAbstractG/9 aZend_Feed_Reader_Extension_DublinCore_FeedG08 cZend_Feed_Reader_Extension_DublinCore_EntryG47 kZend_Feed_Reader_Extension_CreativeCommons_FeedG56 mZend_Feed_Reader_Extension_CreativeCommons_EntryG-5 ]Zend_Feed_Reader_Extension_Content_EntryG)4 UZend_Feed_Reader_Extension_Atom_FeedG*3 WZend_Feed_Reader_Extension_Atom_EntryG#2 IZend_Feed_Reader_EntryAbstractG1 AZend_Feed_Reader_Entry_RssG 0 CZend_Feed_Reader_Entry_AtomG / CZend_Feed_Reader_CollectionG3. iZend_Feed_Reader_Collection_CollectionAbstractG)- UZend_Feed_Reader_Collection_CategoryG', QZend_Feed_Reader_Collection_AuthorG+ 9Zend_Feed_PubsubhubbubG&* OZend_Feed_Pubsubhubbub_SubscriberG/) aZend_Feed_Pubsubhubbub_Subscriber_CallbackG%( MZend_Feed_Pubsubhubbub_PublisherG.' _Zend_Feed_Pubsubhubbub_Model_SubscriptionG/& aZend_Feed_Pubsubhubbub_Model_ModelAbstractG(% SZend_Feed_Pubsubhubbub_HttpResponseG%$ MZend_Feed_Pubsubhubbub_ExceptionG,# [Zend_Feed_Pubsubhubbub_CallbackAbstractG" 3Zend_Feed_ExceptionG! 3Zend_Feed_Entry_RssG  5Zend_Feed_Entry_AtomG =Zend_Feed_Entry_AbstractG /Zend_Feed_ElementG /Zend_Feed_BuilderG =Zend_Feed_Builder_HeaderG$ KZend_Feed_Builder_Header_ItunesG  CZend_Feed_Builder_ExceptionG ;Zend_Feed_Builder_EntryG )Zend_Feed_AtomG 1Zend_Feed_AbstractG )Zend_ExceptionG )Zend_Dom_QueryG 7Zend_Dom_Query_ResultG =Zend_Dom_Query_Css2XpathG 1Zend_Dom_ExceptionG Zend_DojoG) UZend_Dojo_View_Helper_VerticalSliderG, [Zend_Dojo_View_Helper_ValidationTextBoxG& OZend_Dojo_View_Helper_TimeTextBoxG" GZend_Dojo_View_Helper_TextBoxG# IZend_Dojo_View_Helper_TextareaG' QZend_Dojo_View_Helper_TabContainerG'
 QZend_Dojo_View_Helper_SubmitButtonG)	 UZend_Dojo_View_Helper_StackContainerG) UZend_Dojo_View_Helper_SplitContainerG! EZend_Dojo_View_Helper_SliderG) UZend_Dojo_View_Helper_SimpleTextareaG& OZend_Dojo_View_Helper_RadioButtonG* WZend_Dojo_View_Helper_PasswordTextBoxG( SZend_Dojo_View_Helper_NumberTextBoxG( SZend_Dojo_View_Helper_NumberSpinnerG+ YZend_Dojo_View_Helper_HorizontalSliderG  AZend_Dojo_View_Helper_FormG* WZend_Dojo_View_Helper_FilteringSelectG!~ EZend_Dojo_View_Helper_EditorG} AZend_Dojo_View_Helper_DojoG)| UZend_Dojo_View_Helper_Dojo_ContainerG){ UZend_Dojo_View_Helper_DijitContainerG z CZend_Dojo_View_Helper_DijitG&y OZend_Dojo_View_Helper_DateTextBoxG&x OZend_Dojo_View_Helper_CustomDijitG*w WZend_Dojo_View_Helper_CurrencyTextBoxG&v OZend_Dojo_View_Helper_ContentPaneG#u IZend_Dojo_View_Helper_ComboBoxG#t IZend_Dojo_View_Helper_CheckBoxG!s EZend_Dojo_View_Helper_ButtonG*r WZend_Dojo_View_Helper_BorderContainerG(q SZend_Dojo_View_Helper_AccordionPaneG-p ]Zend_Dojo_View_Helper_AccordionContainerGo =Zend_Dojo_View_ExceptionGn )Zend_Dojo_FormGm 9Zend_Dojo_Form_SubFormG*l WZend_Dojo_Form_Element_VerticalSliderG-k ]Zend_Dojo_Form_Element_ValidationTextBoxG'j QZend_Dojo_Form_Element_TimeTextBoxG#i IZend_Dojo_Form_Element_TextBoxG   d  q7_&F[/l9 



u
Z
@
&
						a	@	jR/lL)dK+kBi=_0{W/xW.                     - CZend_Form_Decorator_HtmlTagG#, IZend_Form_Decorator_FormErrorsG%+ MZend_Form_Decorator_FormElementsG* =Zend_Form_Decorator_FormG) =Zend_Form_Decorator_FileG!( EZend_Form_Decorator_FieldsetG"' GZend_Form_Decorator_ExceptionG& AZend_Form_Decorator_ErrorsG$% KZend_Form_Decorator_DtDdWrapperG$$ KZend_Form_Decorator_DescriptionG # CZend_Form_Decorator_CaptchaG%" MZend_Form_Decorator_Captcha_WordG*! WZend_Form_Decorator_Captcha_ReCaptchaG!  EZend_Form_Decorator_CallbackG! EZend_Form_Decorator_AbstractG #Zend_FilterG+ YZend_Filter_Word_UnderscoreToSeparatorG& OZend_Filter_Word_UnderscoreToDashG+ YZend_Filter_Word_UnderscoreToCamelCaseG* WZend_Filter_Word_SeparatorToSeparatorG% MZend_Filter_Word_SeparatorToDashG* WZend_Filter_Word_SeparatorToCamelCaseG( SZend_Filter_Word_Separator_AbstractG& OZend_Filter_Word_DashToUnderscoreG% MZend_Filter_Word_DashToSeparatorG% MZend_Filter_Word_DashToCamelCaseG+ YZend_Filter_Word_CamelCaseToUnderscoreG* WZend_Filter_Word_CamelCaseToSeparatorG% MZend_Filter_Word_CamelCaseToDashG 7Zend_Filter_StripTagsG ?Zend_Filter_StripNewlinesG 9Zend_Filter_StringTrimG ?Zend_Filter_StringToUpperG ?Zend_Filter_StringToLowerG 5Zend_Filter_RealPathG
 ;Zend_Filter_PregReplaceG	 -Zend_Filter_NullG& OZend_Filter_NormalizedToLocalizedG& OZend_Filter_LocalizedToNormalizedG +Zend_Filter_IntG /Zend_Filter_InputG 7Zend_Filter_InflectorG =Zend_Filter_HtmlEntitiesG AZend_Filter_File_UpperCaseG ;Zend_Filter_File_RenameG  AZend_Filter_File_LowerCaseG =Zend_Filter_File_EncryptG~ =Zend_Filter_File_DecryptG} 7Zend_Filter_ExceptionG| 3Zend_Filter_EncryptG { CZend_Filter_Encrypt_OpensslGz AZend_Filter_Encrypt_McryptGy +Zend_Filter_DirGx 1Zend_Filter_DigitsGw 3Zend_Filter_DecryptGv 9Zend_Filter_DecompressGu 5Zend_Filter_CompressGt =Zend_Filter_Compress_ZipGs =Zend_Filter_Compress_TarGr =Zend_Filter_Compress_RarGq =Zend_Filter_Compress_LzfGp ;Zend_Filter_Compress_GzG*o WZend_Filter_Compress_CompressAbstractGn =Zend_Filter_Compress_Bz2Gm 5Zend_Filter_CallbackGl 3Zend_Filter_BooleanGk 5Zend_Filter_BaseNameGj /Zend_Filter_AlphaGi /Zend_Filter_AlnumGh 1Zend_File_TransferG!g EZend_File_Transfer_ExceptionG$f KZend_File_Transfer_Adapter_HttpG(e SZend_File_Transfer_Adapter_AbstractGd Zend_FeedGc -Zend_Feed_WriterGb ;Zend_Feed_Writer_SourceG/a aZend_Feed_Writer_Renderer_RendererAbstractG'` QZend_Feed_Writer_Renderer_Feed_RssG(_ SZend_Feed_Writer_Renderer_Feed_AtomG/^ aZend_Feed_Writer_Renderer_Feed_Atom_SourceG5] mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstractG(\ SZend_Feed_Writer_Renderer_Entry_RssG)[ UZend_Feed_Writer_Renderer_Entry_AtomG1Z eZend_Feed_Writer_Renderer_Entry_Atom_DeletedGY 7Zend_Feed_Writer_FeedG'X QZend_Feed_Writer_Feed_FeedAbstractG<W {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_EntryG8V sZend_Feed_Writer_Extension_Threading_Renderer_EntryG4U kZend_Feed_Writer_Extension_Slash_Renderer_EntryG0T cZend_Feed_Writer_Extension_RendererAbstractG4S kZend_Feed_Writer_Extension_ITunes_Renderer_FeedG5R mZend_Feed_Writer_Extension_ITunes_Renderer_EntryG+Q YZend_Feed_Writer_Extension_ITunes_FeedG,P [Zend_Feed_Writer_Extension_ITunes_EntryG8O sZend_Feed_Writer_Extension_DublinCore_Renderer_FeedG9N uZend_Feed_Writer_Extension_DublinCore_Renderer_EntryG6M oZend_Feed_Writer_Extension_Content_Renderer_EntryG2L gZend_Feed_Writer_Extension_Atom_Renderer_FeedG6K oZend_Feed_Writer_Exception_InvalidMethodExceptionGJ 9Zend_Feed_Writer_EntryG   e  lEuV7eE%gK1Y<



s
J
#					Z	6	qI!X3R/lU:Y(rCoHc4                                      9 uZend_Gdata_Calendar_Extension_SendEventNotificationsG+ YZend_Gdata_Calendar_Extension_SelectedG+ YZend_Gdata_Calendar_Extension_QuickAddG' QZend_Gdata_Calendar_Extension_LinkG) UZend_Gdata_Calendar_Extension_HiddenG( SZend_Gdata_Calendar_Extension_ColorG. _Zend_Gdata_Calendar_Extension_AccessLevelG# IZend_Gdata_Calendar_EventQueryG"
 GZend_Gdata_Calendar_EventFeedG#	 IZend_Gdata_Calendar_EventEntryG -Zend_Gdata_BooksG! EZend_Gdata_Books_VolumeQueryG  CZend_Gdata_Books_VolumeFeedG! EZend_Gdata_Books_VolumeEntryG+ YZend_Gdata_Books_Extension_ViewabilityG- ]Zend_Gdata_Books_Extension_ThumbnailLinkG& OZend_Gdata_Books_Extension_ReviewG+ YZend_Gdata_Books_Extension_PreviewLinkG(  SZend_Gdata_Books_Extension_InfoLinkG- ]Zend_Gdata_Books_Extension_EmbeddabilityG)~ UZend_Gdata_Books_Extension_BooksLinkG-} ]Zend_Gdata_Books_Extension_BooksCategoryG.| _Zend_Gdata_Books_Extension_AnnotationLinkG${ KZend_Gdata_Books_CollectionFeedG%z MZend_Gdata_Books_CollectionEntryGy 1Zend_Gdata_AuthSubGx )Zend_Gdata_AppG$w KZend_Gdata_App_VersionExceptionGv 3Zend_Gdata_App_UtilG#u IZend_Gdata_App_MediaFileSourceGt ?Zend_Gdata_App_MediaEntryG2s gZend_Gdata_App_LoggingHttpClientAdapterSocketGr AZend_Gdata_App_IOExceptionG,q [Zend_Gdata_App_InvalidArgumentExceptionG!p EZend_Gdata_App_HttpExceptionG$o KZend_Gdata_App_FeedSourceParentG#n IZend_Gdata_App_FeedEntryParentGm 3Zend_Gdata_App_FeedGl =Zend_Gdata_App_ExtensionG!k EZend_Gdata_App_Extension_UriG%j MZend_Gdata_App_Extension_UpdatedG#i IZend_Gdata_App_Extension_TitleG"h GZend_Gdata_App_Extension_TextG%g MZend_Gdata_App_Extension_SummaryG&f OZend_Gdata_App_Extension_SubtitleG$e KZend_Gdata_App_Extension_SourceG$d KZend_Gdata_App_Extension_RightsG'c QZend_Gdata_App_Extension_PublishedG$b KZend_Gdata_App_Extension_PersonG"a GZend_Gdata_App_Extension_NameG"` GZend_Gdata_App_Extension_LogoG"_ GZend_Gdata_App_Extension_LinkG ^ CZend_Gdata_App_Extension_IdG"] GZend_Gdata_App_Extension_IconG'\ QZend_Gdata_App_Extension_GeneratorG#[ IZend_Gdata_App_Extension_EmailG%Z MZend_Gdata_App_Extension_ElementG$Y KZend_Gdata_App_Extension_EditedG#X IZend_Gdata_App_Extension_DraftG%W MZend_Gdata_App_Extension_ControlG)V UZend_Gdata_App_Extension_ContributorG%U MZend_Gdata_App_Extension_ContentG&T OZend_Gdata_App_Extension_CategoryG$S KZend_Gdata_App_Extension_AuthorGR =Zend_Gdata_App_ExceptionGQ 5Zend_Gdata_App_EntryG,P [Zend_Gdata_App_CaptchaRequiredExceptionG#O IZend_Gdata_App_BaseMediaSourceGN 3Zend_Gdata_App_BaseG*M WZend_Gdata_App_BadMethodCallExceptionG!L EZend_Gdata_App_AuthExceptionGK Zend_FormGJ /Zend_Form_SubFormGI 3Zend_Form_ExceptionGH /Zend_Form_ElementGG ;Zend_Form_Element_XhtmlGF AZend_Form_Element_TextareaGE 9Zend_Form_Element_TextGD =Zend_Form_Element_SubmitGC =Zend_Form_Element_SelectGB ;Zend_Form_Element_ResetGA ;Zend_Form_Element_RadioG@ AZend_Form_Element_PasswordG"? GZend_Form_Element_MultiselectG$> KZend_Form_Element_MultiCheckboxG= ;Zend_Form_Element_MultiG< ;Zend_Form_Element_ImageG; =Zend_Form_Element_HiddenG: 9Zend_Form_Element_HashG9 9Zend_Form_Element_FileG 8 CZend_Form_Element_ExceptionG7 AZend_Form_Element_CheckboxG6 ?Zend_Form_Element_CaptchaG5 =Zend_Form_Element_ButtonG4 9Zend_Form_DisplayGroupG#3 IZend_Form_Decorator_ViewScriptG#2 IZend_Form_Decorator_ViewHelperG 1 CZend_Form_Decorator_TooltipG(0 SZend_Form_Decorator_PrepareElementsG/ ?Zend_Form_Decorator_LabelG. ?Zend_Form_Decorator_ImageG   c  zU9a4 m;wY.U/



u
]
1
				c	=		xT,a> q@jBzV1tP-	{X? iJ$             "u GZend_Gdata_Gbase_SnippetQueryG!t EZend_Gdata_Gbase_SnippetFeedG"s GZend_Gdata_Gbase_SnippetEntryGr 9Zend_Gdata_Gbase_QueryGq AZend_Gdata_Gbase_ItemQueryGp ?Zend_Gdata_Gbase_ItemFeedGo AZend_Gdata_Gbase_ItemEntryGn 7Zend_Gdata_Gbase_FeedG-m ]Zend_Gdata_Gbase_Extension_BaseAttributeGl 9Zend_Gdata_Gbase_EntryGk -Zend_Gdata_GappsGj AZend_Gdata_Gapps_UserQueryGi ?Zend_Gdata_Gapps_UserFeedGh AZend_Gdata_Gapps_UserEntryG&g OZend_Gdata_Gapps_ServiceExceptionGf 9Zend_Gdata_Gapps_QueryG e CZend_Gdata_Gapps_OwnerQueryGd AZend_Gdata_Gapps_OwnerFeedG c CZend_Gdata_Gapps_OwnerEntryG#b IZend_Gdata_Gapps_NicknameQueryG"a GZend_Gdata_Gapps_NicknameFeedG#` IZend_Gdata_Gapps_NicknameEntryG!_ EZend_Gdata_Gapps_MemberQueryG ^ CZend_Gdata_Gapps_MemberFeedG!] EZend_Gdata_Gapps_MemberEntryG \ CZend_Gdata_Gapps_GroupQueryG[ AZend_Gdata_Gapps_GroupFeedG Z CZend_Gdata_Gapps_GroupEntryG%Y MZend_Gdata_Gapps_Extension_QuotaG(X SZend_Gdata_Gapps_Extension_PropertyG(W SZend_Gdata_Gapps_Extension_NicknameG$V KZend_Gdata_Gapps_Extension_NameG%U MZend_Gdata_Gapps_Extension_LoginG)T UZend_Gdata_Gapps_Extension_EmailListGS 9Zend_Gdata_Gapps_ErrorG-R ]Zend_Gdata_Gapps_EmailListRecipientQueryG,Q [Zend_Gdata_Gapps_EmailListRecipientFeedG-P ]Zend_Gdata_Gapps_EmailListRecipientEntryG$O KZend_Gdata_Gapps_EmailListQueryG#N IZend_Gdata_Gapps_EmailListFeedG$M KZend_Gdata_Gapps_EmailListEntryGL +Zend_Gdata_FeedGK 5Zend_Gdata_ExtensionGJ =Zend_Gdata_Extension_WhoGI AZend_Gdata_Extension_WhereGH ?Zend_Gdata_Extension_WhenG$G KZend_Gdata_Extension_VisibilityG&F OZend_Gdata_Extension_TransparencyG"E GZend_Gdata_Extension_ReminderG-D ]Zend_Gdata_Extension_RecurrenceExceptionG$C KZend_Gdata_Extension_RecurrenceG B CZend_Gdata_Extension_RatingG'A QZend_Gdata_Extension_OriginalEventG0@ cZend_Gdata_Extension_OpenSearchTotalResultsG.? _Zend_Gdata_Extension_OpenSearchStartIndexG0> cZend_Gdata_Extension_OpenSearchItemsPerPageG"= GZend_Gdata_Extension_FeedLinkG*< WZend_Gdata_Extension_ExtendedPropertyG%; MZend_Gdata_Extension_EventStatusG#: IZend_Gdata_Extension_EntryLinkG"9 GZend_Gdata_Extension_CommentsG&8 OZend_Gdata_Extension_AttendeeTypeG(7 SZend_Gdata_Extension_AttendeeStatusG6 +Zend_Gdata_ExifG5 5Zend_Gdata_Exif_FeedG#4 IZend_Gdata_Exif_Extension_TimeG#3 IZend_Gdata_Exif_Extension_TagsG$2 KZend_Gdata_Exif_Extension_ModelG#1 IZend_Gdata_Exif_Extension_MakeG"0 GZend_Gdata_Exif_Extension_IsoG,/ [Zend_Gdata_Exif_Extension_ImageUniqueIdG$. KZend_Gdata_Exif_Extension_FStopG*- WZend_Gdata_Exif_Extension_FocalLengthG$, KZend_Gdata_Exif_Extension_FlashG'+ QZend_Gdata_Exif_Extension_ExposureG'* QZend_Gdata_Exif_Extension_DistanceG) 7Zend_Gdata_Exif_EntryG( -Zend_Gdata_EntryG' 7Zend_Gdata_DublinCoreG*& WZend_Gdata_DublinCore_Extension_TitleG,% [Zend_Gdata_DublinCore_Extension_SubjectG+$ YZend_Gdata_DublinCore_Extension_RightsG.# _Zend_Gdata_DublinCore_Extension_PublisherG-" ]Zend_Gdata_DublinCore_Extension_LanguageG/! aZend_Gdata_DublinCore_Extension_IdentifierG+  YZend_Gdata_DublinCore_Extension_FormatG0 cZend_Gdata_DublinCore_Extension_DescriptionG) UZend_Gdata_DublinCore_Extension_DateG, [Zend_Gdata_DublinCore_Extension_CreatorG +Zend_Gdata_DocsG 7Zend_Gdata_Docs_QueryG% MZend_Gdata_Docs_DocumentListFeedG& OZend_Gdata_Docs_DocumentListEntryG 9Zend_Gdata_ClientLoginG 3Zend_Gdata_CalendarG! EZend_Gdata_Calendar_ListFeedG" GZend_Gdata_Calendar_ListEntryG- ]Zend_Gdata_Calendar_Extension_WebContentG+ YZend_Gdata_Calendar_Extension_TimezoneG   ^  sK/xN.xY(c5yE




^
<
 					`	4	}Gi<~MlCyT1i@U"tD     S ;Zend_Gdata_SpreadsheetsG*R WZend_Gdata_Spreadsheets_WorksheetFeedG+Q YZend_Gdata_Spreadsheets_WorksheetEntryG,P [Zend_Gdata_Spreadsheets_SpreadsheetFeedG-O ]Zend_Gdata_Spreadsheets_SpreadsheetEntryG&N OZend_Gdata_Spreadsheets_ListQueryG%M MZend_Gdata_Spreadsheets_ListFeedG&L OZend_Gdata_Spreadsheets_ListEntryG/K aZend_Gdata_Spreadsheets_Extension_RowCountG-J ]Zend_Gdata_Spreadsheets_Extension_CustomG/I aZend_Gdata_Spreadsheets_Extension_ColCountG+H YZend_Gdata_Spreadsheets_Extension_CellG*G WZend_Gdata_Spreadsheets_DocumentQueryG&F OZend_Gdata_Spreadsheets_CellQueryG%E MZend_Gdata_Spreadsheets_CellFeedG&D OZend_Gdata_Spreadsheets_CellEntryGC -Zend_Gdata_QueryGB /Zend_Gdata_PhotosG A CZend_Gdata_Photos_UserQueryG@ AZend_Gdata_Photos_UserFeedG ? CZend_Gdata_Photos_UserEntryG> AZend_Gdata_Photos_TagEntryG!= EZend_Gdata_Photos_PhotoQueryG < CZend_Gdata_Photos_PhotoFeedG!; EZend_Gdata_Photos_PhotoEntryG&: OZend_Gdata_Photos_Extension_WidthG'9 QZend_Gdata_Photos_Extension_WeightG(8 SZend_Gdata_Photos_Extension_VersionG%7 MZend_Gdata_Photos_Extension_UserG*6 WZend_Gdata_Photos_Extension_TimestampG*5 WZend_Gdata_Photos_Extension_ThumbnailG%4 MZend_Gdata_Photos_Extension_SizeG)3 UZend_Gdata_Photos_Extension_RotationG+2 YZend_Gdata_Photos_Extension_QuotaLimitG-1 ]Zend_Gdata_Photos_Extension_QuotaCurrentG)0 UZend_Gdata_Photos_Extension_PositionG(/ SZend_Gdata_Photos_Extension_PhotoIdG3. iZend_Gdata_Photos_Extension_NumPhotosRemainingG*- WZend_Gdata_Photos_Extension_NumPhotosG), UZend_Gdata_Photos_Extension_NicknameG%+ MZend_Gdata_Photos_Extension_NameG2* gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumG)) UZend_Gdata_Photos_Extension_LocationG#( IZend_Gdata_Photos_Extension_IdG'' QZend_Gdata_Photos_Extension_HeightG2& gZend_Gdata_Photos_Extension_CommentingEnabledG-% ]Zend_Gdata_Photos_Extension_CommentCountG'$ QZend_Gdata_Photos_Extension_ClientG)# UZend_Gdata_Photos_Extension_ChecksumG*" WZend_Gdata_Photos_Extension_BytesUsedG(! SZend_Gdata_Photos_Extension_AlbumIdG'  QZend_Gdata_Photos_Extension_AccessG# IZend_Gdata_Photos_CommentEntryG! EZend_Gdata_Photos_AlbumQueryG  CZend_Gdata_Photos_AlbumFeedG! EZend_Gdata_Photos_AlbumEntryG 3Zend_Gdata_MimeFileG ?Zend_Gdata_MimeBodyStringG AZend_Gdata_MediaMimeStreamG -Zend_Gdata_MediaG 7Zend_Gdata_Media_FeedG* WZend_Gdata_Media_Extension_MediaTitleG. _Zend_Gdata_Media_Extension_MediaThumbnailG) UZend_Gdata_Media_Extension_MediaTextG0 cZend_Gdata_Media_Extension_MediaRestrictionG+ YZend_Gdata_Media_Extension_MediaRatingG+ YZend_Gdata_Media_Extension_MediaPlayerG- ]Zend_Gdata_Media_Extension_MediaKeywordsG) UZend_Gdata_Media_Extension_MediaHashG* WZend_Gdata_Media_Extension_MediaGroupG0 cZend_Gdata_Media_Extension_MediaDescriptionG+ YZend_Gdata_Media_Extension_MediaCreditG. _Zend_Gdata_Media_Extension_MediaCopyrightG,
 [Zend_Gdata_Media_Extension_MediaContentG-	 ]Zend_Gdata_Media_Extension_MediaCategoryG 9Zend_Gdata_Media_EntryG AZend_Gdata_Kind_EventEntryG 7Zend_Gdata_HttpClientG* WZend_Gdata_HttpAdapterStreamingSocketG) UZend_Gdata_HttpAdapterStreamingProxyG /Zend_Gdata_HealthG ;Zend_Gdata_Health_QueryG& OZend_Gdata_Health_ProfileListFeedG'  QZend_Gdata_Health_ProfileListEntryG" GZend_Gdata_Health_ProfileFeedG#~ IZend_Gdata_Health_ProfileEntryG$} KZend_Gdata_Health_Extension_CcrG| )Zend_Gdata_GeoG{ 3Zend_Gdata_Geo_FeedG$z KZend_Gdata_Geo_Extension_GmlPosG&y OZend_Gdata_Geo_Extension_GmlPointG)x UZend_Gdata_Geo_Extension_GeoRssWhereGw 5Zend_Gdata_Geo_EntryGv -Zend_Gdata_GbaseG   ]  `8c6yM l:	|Q$



c
6
			{	J	l>rEe9tI"cG%
wS1e6]+                              0 =Zend_Http_UserAgent_TextG(/ SZend_Http_UserAgent_Storage_SessionG.. _Zend_Http_UserAgent_Storage_NonPersistentG*- WZend_Http_UserAgent_Storage_ExceptionG, =Zend_Http_UserAgent_SpamG+ ?Zend_Http_UserAgent_ProbeG * CZend_Http_UserAgent_OfflineG) AZend_Http_UserAgent_MobileG( =Zend_Http_UserAgent_FeedG+' YZend_Http_UserAgent_Features_ExceptionG2& gZend_Http_UserAgent_Features_Adapter_WurflApiG3% iZend_Http_UserAgent_Features_Adapter_TeraWurflG5$ mZend_Http_UserAgent_Features_Adapter_DeviceAtlasG"# GZend_Http_UserAgent_ExceptionG" ?Zend_Http_UserAgent_EmailG ! CZend_Http_UserAgent_DesktopG   CZend_Http_UserAgent_ConsoleG  CZend_Http_UserAgent_CheckerG ;Zend_Http_UserAgent_BotG' QZend_Http_UserAgent_AbstractDeviceG 1Zend_Http_ResponseG ?Zend_Http_Response_StreamG 3Zend_Http_ExceptionG 3Zend_Http_CookieJarG -Zend_Http_CookieG -Zend_Http_ClientG AZend_Http_Client_ExceptionG" GZend_Http_Client_Adapter_TestG$ KZend_Http_Client_Adapter_SocketG# IZend_Http_Client_Adapter_ProxyG' QZend_Http_Client_Adapter_ExceptionG" GZend_Http_Client_Adapter_CurlG !Zend_GdataG 1Zend_Gdata_YouTubeG" GZend_Gdata_YouTube_VideoQueryG! EZend_Gdata_YouTube_VideoFeedG" GZend_Gdata_YouTube_VideoEntryG( SZend_Gdata_YouTube_UserProfileEntryG(
 SZend_Gdata_YouTube_SubscriptionFeedG)	 UZend_Gdata_YouTube_SubscriptionEntryG) UZend_Gdata_YouTube_PlaylistVideoFeedG* WZend_Gdata_YouTube_PlaylistVideoEntryG( SZend_Gdata_YouTube_PlaylistListFeedG) UZend_Gdata_YouTube_PlaylistListEntryG" GZend_Gdata_YouTube_MediaEntryG! EZend_Gdata_YouTube_InboxFeedG" GZend_Gdata_YouTube_InboxEntryG) UZend_Gdata_YouTube_Extension_VideoIdG*  WZend_Gdata_YouTube_Extension_UsernameG* WZend_Gdata_YouTube_Extension_UploadedG'~ QZend_Gdata_YouTube_Extension_TokenG(} SZend_Gdata_YouTube_Extension_StatusG,| [Zend_Gdata_YouTube_Extension_StatisticsG'{ QZend_Gdata_YouTube_Extension_StateG(z SZend_Gdata_YouTube_Extension_SchoolG-y ]Zend_Gdata_YouTube_Extension_ReleaseDateG.x _Zend_Gdata_YouTube_Extension_RelationshipG*w WZend_Gdata_YouTube_Extension_RecordedG&v OZend_Gdata_YouTube_Extension_RacyG-u ]Zend_Gdata_YouTube_Extension_QueryStringG)t UZend_Gdata_YouTube_Extension_PrivateG*s WZend_Gdata_YouTube_Extension_PositionG/r aZend_Gdata_YouTube_Extension_PlaylistTitleG,q [Zend_Gdata_YouTube_Extension_PlaylistIdG,p [Zend_Gdata_YouTube_Extension_OccupationG)o UZend_Gdata_YouTube_Extension_NoEmbedG'n QZend_Gdata_YouTube_Extension_MusicG(m SZend_Gdata_YouTube_Extension_MoviesG-l ]Zend_Gdata_YouTube_Extension_MediaRatingG,k [Zend_Gdata_YouTube_Extension_MediaGroupG-j ]Zend_Gdata_YouTube_Extension_MediaCreditG.i _Zend_Gdata_YouTube_Extension_MediaContentG*h WZend_Gdata_YouTube_Extension_LocationG&g OZend_Gdata_YouTube_Extension_LinkG*f WZend_Gdata_YouTube_Extension_LastNameG*e WZend_Gdata_YouTube_Extension_HometownG)d UZend_Gdata_YouTube_Extension_HobbiesG(c SZend_Gdata_YouTube_Extension_GenderG+b YZend_Gdata_YouTube_Extension_FirstNameG*a WZend_Gdata_YouTube_Extension_DurationG-` ]Zend_Gdata_YouTube_Extension_DescriptionG+_ YZend_Gdata_YouTube_Extension_CountHintG)^ UZend_Gdata_YouTube_Extension_ControlG)] UZend_Gdata_YouTube_Extension_CompanyG'\ QZend_Gdata_YouTube_Extension_BooksG%[ MZend_Gdata_YouTube_Extension_AgeG)Z UZend_Gdata_YouTube_Extension_AboutMeG#Y IZend_Gdata_YouTube_ContactFeedG$X KZend_Gdata_YouTube_ContactEntryG#W IZend_Gdata_YouTube_CommentFeedG$V KZend_Gdata_YouTube_CommentEntryG$U KZend_Gdata_YouTube_ActivityFeedG%T MZend_Gdata_YouTube_ActivityEntryG   k  pIy@#pN{P&m6



}
g
M
3

 				y	X	1	nA#fQ5w[;"j@Z7n\4rY; sS2                  CZend_Log_Formatter_AbstractG =Zend_Log_Filter_SuppressG =Zend_Log_Filter_PriorityG ;Zend_Log_Filter_MessageG =Zend_Log_Filter_AbstractG 1Zend_Log_ExceptionG #Zend_LocaleG -Zend_Locale_MathG =Zend_Locale_Math_PhpMathG AZend_Locale_Math_ExceptionG 1Zend_Locale_FormatG 7Zend_Locale_ExceptionG -Zend_Locale_DataG! EZend_Locale_Data_TranslationG #Zend_LoaderG =Zend_Loader_PluginLoaderG' QZend_Loader_PluginLoader_ExceptionG
 7Zend_Loader_ExceptionG	 9Zend_Loader_AutoloaderG$ KZend_Loader_Autoloader_ResourceG Zend_LdapG )Zend_Ldap_NodeG 7Zend_Ldap_Node_SchemaG# IZend_Ldap_Node_Schema_OpenLdapG/ aZend_Ldap_Node_Schema_ObjectClass_OpenLdapG6 oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectoryG AZend_Ldap_Node_Schema_ItemG1  eZend_Ldap_Node_Schema_AttributeType_OpenLdapG8 sZend_Ldap_Node_Schema_AttributeType_ActiveDirectoryG*~ WZend_Ldap_Node_Schema_ActiveDirectoryG} 9Zend_Ldap_Node_RootDseG$| KZend_Ldap_Node_RootDse_OpenLdapG&{ OZend_Ldap_Node_RootDse_eDirectoryG+z YZend_Ldap_Node_RootDse_ActiveDirectoryGy ?Zend_Ldap_Node_CollectionG$x KZend_Ldap_Node_ChildrenIteratorGw ;Zend_Ldap_Node_AbstractGv 9Zend_Ldap_Ldif_EncoderGu -Zend_Ldap_FilterGt ;Zend_Ldap_Filter_StringGs 3Zend_Ldap_Filter_OrGr 5Zend_Ldap_Filter_NotGq 7Zend_Ldap_Filter_MaskGp =Zend_Ldap_Filter_LogicalGo AZend_Ldap_Filter_ExceptionGn 5Zend_Ldap_Filter_AndGm ?Zend_Ldap_Filter_AbstractGl 3Zend_Ldap_ExceptionGk %Zend_Ldap_DnGj 3Zend_Ldap_ConverterG"i GZend_Ldap_Converter_ExceptionGh 5Zend_Ldap_CollectionG*g WZend_Ldap_Collection_Iterator_DefaultGf 3Zend_Ldap_AttributeGe #Zend_LayoutGd 7Zend_Layout_ExceptionG)c UZend_Layout_Controller_Plugin_LayoutG0b cZend_Layout_Controller_Action_Helper_LayoutGa Zend_JsonG` -Zend_Json_ServerG_ 5Zend_Json_Server_SmdG!^ EZend_Json_Server_Smd_ServiceG] ?Zend_Json_Server_ResponseG#\ IZend_Json_Server_Response_HttpG[ =Zend_Json_Server_RequestG"Z GZend_Json_Server_Request_HttpGY AZend_Json_Server_ExceptionGX 9Zend_Json_Server_ErrorGW 9Zend_Json_Server_CacheGV )Zend_Json_ExprGU 3Zend_Json_ExceptionGT /Zend_Json_EncoderGS /Zend_Json_DecoderGR 'Zend_InfoCardG-Q ]Zend_InfoCard_Xml_SecurityTokenReferenceGP AZend_InfoCard_Xml_SecurityG)O UZend_InfoCard_Xml_Security_TransformG4N kZend_InfoCard_Xml_Security_Transform_XmlExcC14NG3M iZend_InfoCard_Xml_Security_Transform_ExceptionG<L {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignatureG)K UZend_InfoCard_Xml_Security_ExceptionGJ ?Zend_InfoCard_Xml_KeyInfoG&I OZend_InfoCard_Xml_KeyInfo_XmlDSigG&H OZend_InfoCard_Xml_KeyInfo_DefaultG'G QZend_InfoCard_Xml_KeyInfo_AbstractG F CZend_InfoCard_Xml_ExceptionG#E IZend_InfoCard_Xml_EncryptedKeyG$D KZend_InfoCard_Xml_EncryptedDataG+C YZend_InfoCard_Xml_EncryptedData_XmlEncG-B ]Zend_InfoCard_Xml_EncryptedData_AbstractGA ?Zend_InfoCard_Xml_ElementG @ CZend_InfoCard_Xml_AssertionG%? MZend_InfoCard_Xml_Assertion_SamlG> ;Zend_InfoCard_ExceptionG%= MZend_InfoCard_Exception_AbstractG< 5Zend_InfoCard_ClaimsG; 5Zend_InfoCard_CipherG5: mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcG59 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcG48 kZend_InfoCard_Cipher_Symmetric_Adapter_AbstractG)7 UZend_InfoCard_Cipher_Pki_Adapter_RsaG.6 _Zend_InfoCard_Cipher_Pki_Adapter_AbstractG#5 IZend_InfoCard_Cipher_ExceptionG$4 KZend_InfoCard_Adapter_ExceptionG"3 GZend_InfoCard_Adapter_DefaultG2 3Zend_Http_UserAgentG"1 GZend_Http_UserAgent_ValidatorG   x {`@#vZ;!e8{R,aG"





e
C
				~	X	1	oQ/uX; gE)
y_CqK-v_M+	x^B%zX1                         =Zend_Oauth_Signature_RsaG# IZend_Oauth_Signature_PlaintextG ?Zend_Oauth_Signature_HmacG +Zend_Oauth_HttpG ;Zend_Oauth_Http_UtilityG& OZend_Oauth_Http_UserAuthorizationG! EZend_Oauth_Http_RequestTokenG  CZend_Oauth_Http_AccessTokenG 5Zend_Oauth_ExceptionG
 3Zend_Oauth_ConsumerG	 /Zend_Oauth_ConfigG /Zend_Oauth_ClientG +Zend_NavigationG 5Zend_Navigation_PageG =Zend_Navigation_Page_UriG =Zend_Navigation_Page_MvcG ?Zend_Navigation_ExceptionG ?Zend_Navigation_ContainerG Zend_MimeG  )Zend_Mime_PartG /Zend_Mime_MessageG~ 3Zend_Mime_ExceptionG} -Zend_Mime_DecodeG| #Zend_MemoryG{ /Zend_Memory_ValueGz 3Zend_Memory_ManagerGy 7Zend_Memory_ExceptionGx 7Zend_Memory_ContainerG"w GZend_Memory_Container_MovableG!v EZend_Memory_Container_LockedG!u EZend_Memory_AccessControllerGt 3Zend_Measure_WeightGs 3Zend_Measure_VolumeG%r MZend_Measure_Viscosity_KinematicG#q IZend_Measure_Viscosity_DynamicGp 3Zend_Measure_TorqueGo /Zend_Measure_TimeGn =Zend_Measure_TemperatureGm 1Zend_Measure_SpeedGl 7Zend_Measure_PressureGk 1Zend_Measure_PowerGj 3Zend_Measure_NumberGi 9Zend_Measure_LightnessGh 3Zend_Measure_LengthGg ?Zend_Measure_IlluminationGf 9Zend_Measure_FrequencyGe 1Zend_Measure_ForceGd =Zend_Measure_Flow_VolumeGc 9Zend_Measure_Flow_MoleGb 9Zend_Measure_Flow_MassGa 9Zend_Measure_ExceptionG` 3Zend_Measure_EnergyG_ 5Zend_Measure_DensityG^ 5Zend_Measure_CurrentG ] CZend_Measure_Cooking_WeightG \ CZend_Measure_Cooking_VolumeG[ =Zend_Measure_CapacitanceGZ 3Zend_Measure_BinaryGY /Zend_Measure_AreaGX 1Zend_Measure_AngleGW ?Zend_Measure_AccelerationGV 7Zend_Measure_AbstractGU #Zend_MarkupGT 7Zend_Markup_TokenListGS /Zend_Markup_TokenG*R WZend_Markup_Renderer_RendererAbstractGQ ?Zend_Markup_Renderer_HtmlG"P GZend_Markup_Renderer_Html_UrlG#O IZend_Markup_Renderer_Html_ListG"N GZend_Markup_Renderer_Html_ImgG+M YZend_Markup_Renderer_Html_HtmlAbstractG#L IZend_Markup_Renderer_Html_CodeG#K IZend_Markup_Renderer_ExceptionGJ AZend_Markup_Parser_TextileG!I EZend_Markup_Parser_ExceptionGH ?Zend_Markup_Parser_BbcodeGG 7Zend_Markup_ExceptionGF Zend_MailGE =Zend_Mail_Transport_SmtpG!D EZend_Mail_Transport_SendmailGC =Zend_Mail_Transport_FileG"B GZend_Mail_Transport_ExceptionG!A EZend_Mail_Transport_AbstractG@ /Zend_Mail_StorageG'? QZend_Mail_Storage_Writable_MaildirG> 9Zend_Mail_Storage_Pop3G= 9Zend_Mail_Storage_MboxG< ?Zend_Mail_Storage_MaildirG; 9Zend_Mail_Storage_ImapG: =Zend_Mail_Storage_FolderG"9 GZend_Mail_Storage_Folder_MboxG%8 MZend_Mail_Storage_Folder_MaildirG 7 CZend_Mail_Storage_ExceptionG6 AZend_Mail_Storage_AbstractG5 ;Zend_Mail_Protocol_SmtpG'4 QZend_Mail_Protocol_Smtp_Auth_PlainG'3 QZend_Mail_Protocol_Smtp_Auth_LoginG)2 UZend_Mail_Protocol_Smtp_Auth_Crammd5G1 ;Zend_Mail_Protocol_Pop3G0 ;Zend_Mail_Protocol_ImapG!/ EZend_Mail_Protocol_ExceptionG . CZend_Mail_Protocol_AbstractG- )Zend_Mail_PartG, 3Zend_Mail_Part_FileG+ /Zend_Mail_MessageG* 9Zend_Mail_Message_FileG) 3Zend_Mail_ExceptionG( Zend_LogG ' CZend_Log_Writer_ZendMonitorG& 9Zend_Log_Writer_SyslogG% 9Zend_Log_Writer_StreamG$ 5Zend_Log_Writer_NullG# 5Zend_Log_Writer_MockG" 5Zend_Log_Writer_MailG! ;Zend_Log_Writer_FirebugG  1Zend_Log_Writer_DbG =Zend_Log_Writer_AbstractG 9Zend_Log_Formatter_XmlG ?Zend_Log_Formatter_SimpleG AZend_Log_Formatter_FirebugG   n  eL9nD}U( c5aC&




c
A
						c	K	 ~f<~bG0
O"cF'^>`G!hB fE                $ KZend_Pdf_Filter_Compression_LzwG&  OZend_Pdf_Filter_Compression_FlateG =Zend_Pdf_Filter_AsciiHexG~ ;Zend_Pdf_Filter_Ascii85G"} GZend_Pdf_FileParserDataSourceG)| UZend_Pdf_FileParserDataSource_StringG'{ QZend_Pdf_FileParserDataSource_FileGz 3Zend_Pdf_FileParserGy ?Zend_Pdf_FileParser_ImageG"x GZend_Pdf_FileParser_Image_PngGw =Zend_Pdf_FileParser_FontG&v OZend_Pdf_FileParser_Font_OpenTypeG/u aZend_Pdf_FileParser_Font_OpenType_TrueTypeGt 1Zend_Pdf_ExceptionGs ;Zend_Pdf_ElementFactoryG"r GZend_Pdf_ElementFactory_ProxyGq -Zend_Pdf_ElementGp ;Zend_Pdf_Element_StringG#o IZend_Pdf_Element_String_BinaryGn ;Zend_Pdf_Element_StreamGm AZend_Pdf_Element_ReferenceG%l MZend_Pdf_Element_Reference_TableG'k QZend_Pdf_Element_Reference_ContextGj ;Zend_Pdf_Element_ObjectG#i IZend_Pdf_Element_Object_StreamGh =Zend_Pdf_Element_NumericGg 7Zend_Pdf_Element_NullGf 7Zend_Pdf_Element_NameG e CZend_Pdf_Element_DictionaryGd =Zend_Pdf_Element_BooleanGc 9Zend_Pdf_Element_ArrayGb 5Zend_Pdf_DestinationGa ?Zend_Pdf_Destination_ZoomG!` EZend_Pdf_Destination_UnknownG_ AZend_Pdf_Destination_NamedG'^ QZend_Pdf_Destination_FitVerticallyG&] OZend_Pdf_Destination_FitRectangleG)\ UZend_Pdf_Destination_FitHorizontallyG2[ gZend_Pdf_Destination_FitBoundingBoxVerticallyG4Z kZend_Pdf_Destination_FitBoundingBoxHorizontallyG(Y SZend_Pdf_Destination_FitBoundingBoxGX =Zend_Pdf_Destination_FitG"W GZend_Pdf_Destination_ExplicitGV )Zend_Pdf_ColorGU 1Zend_Pdf_Color_RgbGT 3Zend_Pdf_Color_HtmlGS =Zend_Pdf_Color_GrayScaleGR 3Zend_Pdf_Color_CmykGQ 'Zend_Pdf_CmapGP AZend_Pdf_Cmap_TrimmedTableG!O EZend_Pdf_Cmap_SegmentToDeltaGN AZend_Pdf_Cmap_ByteEncodingG&M OZend_Pdf_Cmap_ByteEncoding_StaticGL +Zend_Pdf_CanvasGK =Zend_Pdf_Canvas_AbstractGJ 3Zend_Pdf_AnnotationGI =Zend_Pdf_Annotation_TextGH AZend_Pdf_Annotation_MarkupGG =Zend_Pdf_Annotation_LinkG'F QZend_Pdf_Annotation_FileAttachmentGE +Zend_Pdf_ActionGD 3Zend_Pdf_Action_URIGC ;Zend_Pdf_Action_UnknownGB 7Zend_Pdf_Action_TransGA 9Zend_Pdf_Action_ThreadG@ AZend_Pdf_Action_SubmitFormG? 7Zend_Pdf_Action_SoundG > CZend_Pdf_Action_SetOCGStateG= ?Zend_Pdf_Action_ResetFormG< ?Zend_Pdf_Action_RenditionG; 7Zend_Pdf_Action_NamedG: 7Zend_Pdf_Action_MovieG9 9Zend_Pdf_Action_LaunchG8 AZend_Pdf_Action_JavaScriptG7 AZend_Pdf_Action_ImportDataG6 5Zend_Pdf_Action_HideG5 7Zend_Pdf_Action_GoToRG4 7Zend_Pdf_Action_GoToEG3 AZend_Pdf_Action_GoTo3DViewG2 5Zend_Pdf_Action_GoToG1 )Zend_PaginatorG-0 ]Zend_Paginator_SerializableLimitIteratorG*/ WZend_Paginator_ScrollingStyle_SlidingG*. WZend_Paginator_ScrollingStyle_JumpingG*- WZend_Paginator_ScrollingStyle_ElasticG&, OZend_Paginator_ScrollingStyle_AllG+ =Zend_Paginator_ExceptionG * CZend_Paginator_Adapter_NullG$) KZend_Paginator_Adapter_IteratorG)( UZend_Paginator_Adapter_DbTableSelectG$' KZend_Paginator_Adapter_DbSelectG!& EZend_Paginator_Adapter_ArrayG% #Zend_OpenIdG$ 5Zend_OpenId_ProviderG# ?Zend_OpenId_Provider_UserG&" OZend_OpenId_Provider_User_SessionG!! EZend_OpenId_Provider_StorageG&  OZend_OpenId_Provider_Storage_FileG 7Zend_OpenId_ExtensionG AZend_OpenId_Extension_SregG 7Zend_OpenId_ExceptionG 5Zend_OpenId_ConsumerG! EZend_OpenId_Consumer_StorageG& OZend_OpenId_Consumer_Storage_FileG !Zend_OauthG -Zend_Oauth_TokenG =Zend_Oauth_Token_RequestG' QZend_Oauth_Token_AuthorizedRequestG ;Zend_Oauth_Token_AccessG+ YZend_Oauth_Signature_SignatureAbstractG   e  sR2h8W e,j4



G
				r	J	%	sY;$zQ&yU*	|\0bC0uS1{X.hJ                                               Ff Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiveGe 7Zend_Search_ExceptionGd -Zend_Rest_ServerGc AZend_Rest_Server_ExceptionGb +Zend_Rest_RouteGa 3Zend_Rest_ExceptionG` 5Zend_Rest_ControllerG_ -Zend_Rest_ClientG^ ;Zend_Rest_Client_ResultG&] OZend_Rest_Client_Result_ExceptionG\ AZend_Rest_Client_ExceptionG[ 'Zend_RegistryGZ =Zend_Reflection_PropertyGY ?Zend_Reflection_ParameterGX 9Zend_Reflection_MethodGW =Zend_Reflection_FunctionGV 5Zend_Reflection_FileGU ?Zend_Reflection_ExtensionGT ?Zend_Reflection_ExceptionGS =Zend_Reflection_DocblockG!R EZend_Reflection_Docblock_TagG(Q SZend_Reflection_Docblock_Tag_ReturnG'P QZend_Reflection_Docblock_Tag_ParamGO 7Zend_Reflection_ClassGN !Zend_QueueGM 9Zend_Queue_Stomp_FrameGL ;Zend_Queue_Stomp_ClientG'K QZend_Queue_Stomp_Client_ConnectionGJ 1Zend_Queue_MessageG#I IZend_Queue_Message_PlatformJobG H CZend_Queue_Message_IteratorGG 5Zend_Queue_ExceptionG(F SZend_Queue_Adapter_PlatformJobQueueGE ;Zend_Queue_Adapter_NullG!D EZend_Queue_Adapter_MemcacheqGC 7Zend_Queue_Adapter_DbG B CZend_Queue_Adapter_Db_QueueG"A GZend_Queue_Adapter_Db_MessageG@ =Zend_Queue_Adapter_ArrayG'? QZend_Queue_Adapter_AdapterAbstractG > CZend_Queue_Adapter_ActivemqG= -Zend_ProgressBarG< AZend_ProgressBar_ExceptionG; =Zend_ProgressBar_AdapterG$: KZend_ProgressBar_Adapter_JsPushG$9 KZend_ProgressBar_Adapter_JsPullG'8 QZend_ProgressBar_Adapter_ExceptionG%7 MZend_ProgressBar_Adapter_ConsoleG6 Zend_PdfG!5 EZend_Pdf_UpdateInfoContainerG4 -Zend_Pdf_TrailerG3 ;Zend_Pdf_Trailer_KeeperG2 AZend_Pdf_Trailer_GeneratorG1 +Zend_Pdf_TargetG0 )Zend_Pdf_StyleG/ 7Zend_Pdf_StringParserG. /Zend_Pdf_ResourceG- ?Zend_Pdf_Resource_UnifiedG#, IZend_Pdf_Resource_ImageFactoryG+ ;Zend_Pdf_Resource_ImageG!* EZend_Pdf_Resource_Image_TiffG ) CZend_Pdf_Resource_Image_PngG!( EZend_Pdf_Resource_Image_JpegG$' KZend_Pdf_Resource_GraphicsStateG& 9Zend_Pdf_Resource_FontG!% EZend_Pdf_Resource_Font_Type0G"$ GZend_Pdf_Resource_Font_SimpleG+# YZend_Pdf_Resource_Font_Simple_StandardG8" sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsG6! oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanG7  qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicG; yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicG5 mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldG2 gZend_Pdf_Resource_Font_Simple_Standard_SymbolG< {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueGA Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliqueG9 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldG5 mZend_Pdf_Resource_Font_Simple_Standard_HelveticaG: wZend_Pdf_Resource_Font_Simple_Standard_CourierObliqueG> Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliqueG7 qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldG3 iZend_Pdf_Resource_Font_Simple_Standard_CourierG) UZend_Pdf_Resource_Font_Simple_ParsedG2 gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypeG* WZend_Pdf_Resource_Font_FontDescriptorG% MZend_Pdf_Resource_Font_ExtractedG# IZend_Pdf_Resource_Font_CidFontG, [Zend_Pdf_Resource_Font_CidFont_TrueTypeG  CZend_Pdf_Resource_ExtractorG$ KZend_Pdf_Resource_ContentStreamG3 iZend_Pdf_RecursivelyIteratableObjectsContainerG +Zend_Pdf_ParserG
 'Zend_Pdf_PageG	 -Zend_Pdf_OutlineG ;Zend_Pdf_Outline_LoadedG =Zend_Pdf_Outline_CreatedG /Zend_Pdf_NameTreeG )Zend_Pdf_ImageG 'Zend_Pdf_FontG ?Zend_Pdf_Filter_RunLengthG  CZend_Pdf_Filter_CompressionG   O  z>n2m/a3
hC"



U
(				P	*	 }J! \. i-Q$a/|GP!g/                                          /5 aZend_Search_Lucene_Storage_File_FilesystemG)4 UZend_Search_Lucene_Storage_DirectoryG43 kZend_Search_Lucene_Storage_Directory_FilesystemG%2 MZend_Search_Lucene_Search_WeightG*1 WZend_Search_Lucene_Search_Weight_TermG,0 [Zend_Search_Lucene_Search_Weight_PhraseG// aZend_Search_Lucene_Search_Weight_MultiTermG+. YZend_Search_Lucene_Search_Weight_EmptyG-- ]Zend_Search_Lucene_Search_Weight_BooleanG), UZend_Search_Lucene_Search_SimilarityG1+ eZend_Search_Lucene_Search_Similarity_DefaultG)* UZend_Search_Lucene_Search_QueryTokenG3) iZend_Search_Lucene_Search_QueryParserExceptionG1( eZend_Search_Lucene_Search_QueryParserContextG*' WZend_Search_Lucene_Search_QueryParserG)& UZend_Search_Lucene_Search_QueryLexerG'% QZend_Search_Lucene_Search_QueryHitG)$ UZend_Search_Lucene_Search_QueryEntryG.# _Zend_Search_Lucene_Search_QueryEntry_TermG2" gZend_Search_Lucene_Search_QueryEntry_SubqueryG0! cZend_Search_Lucene_Search_QueryEntry_PhraseG$  KZend_Search_Lucene_Search_QueryG- ]Zend_Search_Lucene_Search_Query_WildcardG) UZend_Search_Lucene_Search_Query_TermG* WZend_Search_Lucene_Search_Query_RangeG2 gZend_Search_Lucene_Search_Query_PreprocessingG7 qZend_Search_Lucene_Search_Query_Preprocessing_TermG9 uZend_Search_Lucene_Search_Query_Preprocessing_PhraseG8 sZend_Search_Lucene_Search_Query_Preprocessing_FuzzyG+ YZend_Search_Lucene_Search_Query_PhraseG. _Zend_Search_Lucene_Search_Query_MultiTermG2 gZend_Search_Lucene_Search_Query_InsignificantG* WZend_Search_Lucene_Search_Query_FuzzyG* WZend_Search_Lucene_Search_Query_EmptyG, [Zend_Search_Lucene_Search_Query_BooleanG2 gZend_Search_Lucene_Search_Highlighter_DefaultG: wZend_Search_Lucene_Search_BooleanExpressionRecognizerG =Zend_Search_Lucene_ProxyG% MZend_Search_Lucene_PriorityQueueG/ aZend_Search_Lucene_Interface_MultiSearcherG# IZend_Search_Lucene_LockManagerG$ KZend_Search_Lucene_Index_WriterG0 cZend_Search_Lucene_Index_TermsPriorityQueueG&
 OZend_Search_Lucene_Index_TermInfoG"	 GZend_Search_Lucene_Index_TermG+ YZend_Search_Lucene_Index_SegmentWriterG8 sZend_Search_Lucene_Index_SegmentWriter_StreamWriterG: wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterG+ YZend_Search_Lucene_Index_SegmentMergerG) UZend_Search_Lucene_Index_SegmentInfoG' QZend_Search_Lucene_Index_FieldInfoG( SZend_Search_Lucene_Index_DocsFilterG. _Zend_Search_Lucene_Index_DictionaryLoaderG!  EZend_Search_Lucene_FSMActionG 9Zend_Search_Lucene_FSMG~ =Zend_Search_Lucene_FieldG!} EZend_Search_Lucene_ExceptionG | CZend_Search_Lucene_DocumentG%{ MZend_Search_Lucene_Document_XlsxG%z MZend_Search_Lucene_Document_PptxG(y SZend_Search_Lucene_Document_OpenXmlG%x MZend_Search_Lucene_Document_HtmlG*w WZend_Search_Lucene_Document_ExceptionG%v MZend_Search_Lucene_Document_DocxG,u [Zend_Search_Lucene_Analysis_TokenFilterG6t oZend_Search_Lucene_Analysis_TokenFilter_StopWordsG7s qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsG:r wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8G6q oZend_Search_Lucene_Analysis_TokenFilter_LowerCaseG&p OZend_Search_Lucene_Analysis_TokenG)o UZend_Search_Lucene_Analysis_AnalyzerG0n cZend_Search_Lucene_Analysis_Analyzer_CommonG8m sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumGIl Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitiveG5k mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8GFj Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitiveG8i sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumGIh Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitiveG5g mZend_Search_Lucene_Analysis_Analyzer_Common_TextG   ^  uZ*j=z[=[*f;




_
1
				V	$[)W(sI'kL!kFoGIU            : wZend_Service_DeveloperGarden_ConferenceCall_ExceptionGD 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceScheduleGB Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetailGC Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccountG- ]Zend_Service_DeveloperGarden_Client_SoapG2 gZend_Service_DeveloperGarden_Client_ExceptionG7 qZend_Service_DeveloperGarden_Client_ClientAbstractG1 eZend_Service_DeveloperGarden_BaseUserServiceGA Zend_Service_DeveloperGarden_BaseUserService_AccountBalanceG
 9Zend_Service_DeliciousG&	 OZend_Service_Delicious_SimplePostG$ KZend_Service_Delicious_PostListG  CZend_Service_Delicious_PostG% MZend_Service_Delicious_ExceptionG  CZend_Service_AudioscrobblerG 3Zend_Service_AmazonG ;Zend_Service_Amazon_SqsG& OZend_Service_Amazon_Sqs_ExceptionG! EZend_Service_Amazon_SimpleDbG*  WZend_Service_Amazon_SimpleDb_ResponseG& OZend_Service_Amazon_SimpleDb_PageG+~ YZend_Service_Amazon_SimpleDb_ExceptionG+} YZend_Service_Amazon_SimpleDb_AttributeG'| QZend_Service_Amazon_SimilarProductG{ 9Zend_Service_Amazon_S3G"z GZend_Service_Amazon_S3_StreamG%y MZend_Service_Amazon_S3_ExceptionG"x GZend_Service_Amazon_ResultSetGw ?Zend_Service_Amazon_QueryG!v EZend_Service_Amazon_OfferSetGu ?Zend_Service_Amazon_OfferG&t OZend_Service_Amazon_ListmaniaListGs =Zend_Service_Amazon_ItemGr ?Zend_Service_Amazon_ImageG"q GZend_Service_Amazon_ExceptionG(p SZend_Service_Amazon_EditorialReviewGo ;Zend_Service_Amazon_Ec2G+n YZend_Service_Amazon_Ec2_SecuritygroupsG%m MZend_Service_Amazon_Ec2_ResponseG#l IZend_Service_Amazon_Ec2_RegionG$k KZend_Service_Amazon_Ec2_KeypairG%j MZend_Service_Amazon_Ec2_InstanceG-i ]Zend_Service_Amazon_Ec2_Instance_WindowsG.h _Zend_Service_Amazon_Ec2_Instance_ReservedG"g GZend_Service_Amazon_Ec2_ImageG&f OZend_Service_Amazon_Ec2_ExceptionG&e OZend_Service_Amazon_Ec2_ElasticipG d CZend_Service_Amazon_Ec2_EbsG'c QZend_Service_Amazon_Ec2_CloudWatchG.b _Zend_Service_Amazon_Ec2_AvailabilityzonesG%a MZend_Service_Amazon_Ec2_AbstractG'` QZend_Service_Amazon_CustomerReviewG'_ QZend_Service_Amazon_AuthenticationG*^ WZend_Service_Amazon_Authentication_V2G*] WZend_Service_Amazon_Authentication_V1G*\ WZend_Service_Amazon_Authentication_S3G1[ eZend_Service_Amazon_Authentication_ExceptionG$Z KZend_Service_Amazon_AccessoriesG!Y EZend_Service_Amazon_AbstractGX 5Zend_Service_AkismetGW 7Zend_Service_AbstractGV 9Zend_Server_ReflectionG'U QZend_Server_Reflection_ReturnValueG%T MZend_Server_Reflection_PrototypeG%S MZend_Server_Reflection_ParameterG R CZend_Server_Reflection_NodeG"Q GZend_Server_Reflection_MethodG$P KZend_Server_Reflection_FunctionG-O ]Zend_Server_Reflection_Function_AbstractG%N MZend_Server_Reflection_ExceptionG!M EZend_Server_Reflection_ClassG!L EZend_Server_Method_PrototypeG!K EZend_Server_Method_ParameterG"J GZend_Server_Method_DefinitionG I CZend_Server_Method_CallbackGH 7Zend_Server_ExceptionGG 9Zend_Server_DefinitionGF /Zend_Server_CacheGE 5Zend_Server_AbstractGD +Zend_SerializerGC ?Zend_Serializer_ExceptionG!B EZend_Serializer_Adapter_WddxG)A UZend_Serializer_Adapter_PythonPickleG)@ UZend_Serializer_Adapter_PhpSerializeG$? KZend_Serializer_Adapter_PhpCodeG!> EZend_Serializer_Adapter_JsonG%= MZend_Serializer_Adapter_IgbinaryG!< EZend_Serializer_Adapter_Amf3G!; EZend_Serializer_Adapter_Amf0G,: [Zend_Serializer_Adapter_AdapterAbstractG9 1Zend_Search_LuceneG08 cZend_Search_Lucene_TermStreamsPriorityQueueG$7 KZend_Search_Lucene_Storage_FileG+6 YZend_Search_Lucene_Storage_File_MemoryG   4  y2e592+

}
		`	[A.{Dq/\~9f                            SG 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponseG3F iZend_Service_DeveloperGarden_Response_BaseTypeGJE Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstractGCD Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCallGGC Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequencedG=B }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallGAA Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatusGA@ Zend_Service_DeveloperGarden_Request_SmsValidation_ValidateGN? Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeywordGC> Zend_Service_DeveloperGarden_Request_SmsValidation_InvalidateGL= Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbersGB< Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstractG9; uZend_Service_DeveloperGarden_Request_SendSms_SendSMSG>: Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMSG99 uZend_Service_DeveloperGarden_Request_RequestAbstractGI8 Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequestGE7 Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequestG36 iZend_Service_DeveloperGarden_Request_ExceptionGR5 %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequestGY4 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequestGd3 IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequestGQ2 #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequestGR1 %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequestGY0 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequestGd/ IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequestGQ. #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequestGO- Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequestGU, +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequestGU+ +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequestGV* -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequestGa) CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequestGZ( 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequestGT' )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequestGR& %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequestGY% 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequestGQ$ #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequestGQ# #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequestGa" CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequestGN! Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformationGL  Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalanceGJ Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPoolG- ]Zend_Service_DeveloperGarden_LocalSearchG> Zend_Service_DeveloperGarden_LocalSearch_SearchParametersG7 qZend_Service_DeveloperGarden_LocalSearch_ExceptionG, [Zend_Service_DeveloperGarden_IpLocationG6 oZend_Service_DeveloperGarden_IpLocation_IpAddressG+ YZend_Service_DeveloperGarden_ExceptionG, [Zend_Service_DeveloperGarden_CredentialG0 cZend_Service_DeveloperGarden_ConferenceCallGC Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatusGC Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetailG< {Zend_Service_DeveloperGarden_ConferenceCall_ParticipantG   - e Lz,)oX


@		u	
N9,k]<u%F   e   ;t yZend_Service_DeveloperGarden_Response_ResponseAbstractGOs Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseTypeGKr Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseGAq Zend_Service_DeveloperGarden_Response_IpLocation_RegionTypeGKp Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseTypeGGo Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseGLn Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationTypeGIm Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesTypeG>l Zend_Service_DeveloperGarden_Response_IpLocation_CityTypeG4k kZend_Service_DeveloperGarden_Response_ExceptionGTj )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponseG[i 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponseGfh MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponseGSg 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponseGTf )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponseG[e 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponseGfd MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponseGSc 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponseGUb +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseTypeGQa #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseG[` 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseTypeGW_ /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseG[^ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseTypeGW] /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseG\\ 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseTypeGX[ 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseGgZ OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseTypeGcY GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseG`X AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseTypeG\W 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseGZV 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseTypeGVU -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseGXT 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseTypeGTS )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseG_R ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseTypeG[Q 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseGWP /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseTypeGSO 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseGQN #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstractGSM 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponseGJL Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseTypeGgK OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseTypeGcJ GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseGWI /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponseGUH +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponseG   J  ^r+)=P 

r
9
				c	8X/W&o<m;Q"oI-j=uM.                          > AZend_Service_ShortUrl_IsGdG$= KZend_Service_ShortUrl_ExceptionG,< [Zend_Service_ShortUrl_AbstractShortenerG; 9Zend_Service_ReCaptchaG$: KZend_Service_ReCaptcha_ResponseG$9 KZend_Service_ReCaptcha_MailHideG.8 _Zend_Service_ReCaptcha_MailHide_ExceptionG%7 MZend_Service_ReCaptcha_ExceptionG6 7Zend_Service_NirvanixG#5 IZend_Service_Nirvanix_ResponseG)4 UZend_Service_Nirvanix_Namespace_ImfsG)3 UZend_Service_Nirvanix_Namespace_BaseG$2 KZend_Service_Nirvanix_ExceptionG1 7Zend_Service_LiveDocxG$0 KZend_Service_LiveDocx_MailMergeG$/ KZend_Service_LiveDocx_ExceptionG. 3Zend_Service_FlickrG"- GZend_Service_Flickr_ResultSetG, AZend_Service_Flickr_ResultG+ ?Zend_Service_Flickr_ImageG* 9Zend_Service_ExceptionG) ?Zend_Service_Ebay_FindingG)( UZend_Service_Ebay_Finding_StorefrontG+' YZend_Service_Ebay_Finding_ShippingInfoG+& YZend_Service_Ebay_Finding_Set_AbstractG,% [Zend_Service_Ebay_Finding_SellingStatusG)$ UZend_Service_Ebay_Finding_SellerInfoG,# [Zend_Service_Ebay_Finding_Search_ResultG*" WZend_Service_Ebay_Finding_Search_ItemG.! _Zend_Service_Ebay_Finding_Search_Item_SetG0  cZend_Service_Ebay_Finding_Response_KeywordsG- ]Zend_Service_Ebay_Finding_Response_ItemsG2 gZend_Service_Ebay_Finding_Response_HistogramsG0 cZend_Service_Ebay_Finding_Response_AbstractG/ aZend_Service_Ebay_Finding_PaginationOutputG* WZend_Service_Ebay_Finding_ListingInfoG( SZend_Service_Ebay_Finding_ExceptionG, [Zend_Service_Ebay_Finding_Error_MessageG) UZend_Service_Ebay_Finding_Error_DataG- ]Zend_Service_Ebay_Finding_Error_Data_SetG' QZend_Service_Ebay_Finding_CategoryG1 eZend_Service_Ebay_Finding_Category_HistogramG5 mZend_Service_Ebay_Finding_Category_Histogram_SetG; yZend_Service_Ebay_Finding_Category_Histogram_ContainerG% MZend_Service_Ebay_Finding_AspectG) UZend_Service_Ebay_Finding_Aspect_SetG5 mZend_Service_Ebay_Finding_Aspect_Histogram_ValueG9 uZend_Service_Ebay_Finding_Aspect_Histogram_Value_SetG9 uZend_Service_Ebay_Finding_Aspect_Histogram_ContainerG' QZend_Service_Ebay_Finding_AbstractG  CZend_Service_Ebay_ExceptionG AZend_Service_Ebay_AbstractG+
 YZend_Service_DeveloperGarden_VoiceCallG/	 aZend_Service_DeveloperGarden_SmsValidationG) UZend_Service_DeveloperGarden_SendSmsG5 mZend_Service_DeveloperGarden_SecurityTokenServerG; yZend_Service_DeveloperGarden_SecurityTokenServer_CacheGK Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstractGL Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponseGP !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponseGG Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponseGJ Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponseGK  Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2ResponseGL Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponseGI~ Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumberGW} /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponseGJ| Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponseGU{ +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponseGCz Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponseGCy Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstractGHx Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponseGUw +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponseGQv #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponseGIu Zend_Service_DeveloperGarden_Response_SecurityTokenServer_ExceptionG   O  hC  wLgB[;V!



t
J
				k	=	h&q5Lx(Rk3U%I                                                9 uZend_Service_WindowsAzure_Storage_DynamicTableEntityG3 iZend_Service_WindowsAzure_Storage_BlobInstanceG4 kZend_Service_WindowsAzure_Storage_BlobContainerG+
 YZend_Service_WindowsAzure_Storage_BlobG2	 gZend_Service_WindowsAzure_Storage_Blob_StreamG; yZend_Service_WindowsAzure_Storage_BatchStorageAbstractG, [Zend_Service_WindowsAzure_Storage_BatchG- ]Zend_Service_WindowsAzure_SessionHandlerG> Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstractG1 eZend_Service_WindowsAzure_RetryPolicy_RetryNG2 gZend_Service_WindowsAzure_RetryPolicy_NoRetryG4 kZend_Service_WindowsAzure_RetryPolicy_ExceptionG( SZend_Service_WindowsAzure_ExceptionGJ  Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscriptionG2 gZend_Service_WindowsAzure_Diagnostics_ManagerG3~ iZend_Service_WindowsAzure_Diagnostics_LogLevelG4} kZend_Service_WindowsAzure_Diagnostics_ExceptionGN| Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscriptionGH{ Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLogGLz Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCountersGKy Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstractG<x {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogsGAw Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstanceGDv 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectoriesGUu +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogsGDt 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSourcesG8s sZend_Service_WindowsAzure_Credentials_SharedKeyLiteG4r kZend_Service_WindowsAzure_Credentials_SharedKeyGAq Zend_Service_WindowsAzure_Credentials_SharedAccessSignatureG4p kZend_Service_WindowsAzure_Credentials_ExceptionG>o Zend_Service_WindowsAzure_Credentials_CredentialsAbstractGn 5Zend_Service_TwitterG m CZend_Service_Twitter_SearchG#l IZend_Service_Twitter_ExceptionGk ;Zend_Service_TechnoratiG#j IZend_Service_Technorati_WeblogG"i GZend_Service_Technorati_UtilsG*h WZend_Service_Technorati_TagsResultSetG'g QZend_Service_Technorati_TagsResultG)f UZend_Service_Technorati_TagResultSetG&e OZend_Service_Technorati_TagResultG,d [Zend_Service_Technorati_SearchResultSetG)c UZend_Service_Technorati_SearchResultG&b OZend_Service_Technorati_ResultSetG#a IZend_Service_Technorati_ResultG*` WZend_Service_Technorati_KeyInfoResultG*_ WZend_Service_Technorati_GetInfoResultG&^ OZend_Service_Technorati_ExceptionG1] eZend_Service_Technorati_DailyCountsResultSetG.\ _Zend_Service_Technorati_DailyCountsResultG,[ [Zend_Service_Technorati_CosmosResultSetG)Z UZend_Service_Technorati_CosmosResultG+Y YZend_Service_Technorati_BlogInfoResultG#X IZend_Service_Technorati_AuthorGW ;Zend_Service_StrikeIronG(V SZend_Service_StrikeIron_ZipCodeInfoG2U gZend_Service_StrikeIron_USAddressVerificationG-T ]Zend_Service_StrikeIron_SalesUseTaxBasicG&S OZend_Service_StrikeIron_ExceptionG&R OZend_Service_StrikeIron_DecoratorG!Q EZend_Service_StrikeIron_BaseGP ;Zend_Service_SlideShareG&O OZend_Service_SlideShare_SlideShowG&N OZend_Service_SlideShare_ExceptionGM 1Zend_Service_SimpyG$L KZend_Service_Simpy_WatchlistSetG*K WZend_Service_Simpy_WatchlistFilterSetG'J QZend_Service_Simpy_WatchlistFilterG!I EZend_Service_Simpy_WatchlistGH ?Zend_Service_Simpy_TagSetGG 9Zend_Service_Simpy_TagGF AZend_Service_Simpy_NoteSetGE ;Zend_Service_Simpy_NoteGD AZend_Service_Simpy_LinkSetG!C EZend_Service_Simpy_LinkQueryGB ;Zend_Service_Simpy_LinkG%A MZend_Service_ShortUrl_TinyUrlComG&@ OZend_Service_ShortUrl_MetamarkNetG!? EZend_Service_ShortUrl_JdemCzG   a  [#qAnM&zP*c<




m
N
%					g	H	(	qP'n;$~Y8!n?]/lE^ByW;#                                n /Zend_TimeSync_NtpGm ;Zend_TimeSync_ExceptionGl +Zend_Text_TableGk 3Zend_Text_Table_RowGj ?Zend_Text_Table_ExceptionG&i OZend_Text_Table_Decorator_UnicodeG$h KZend_Text_Table_Decorator_AsciiGg 9Zend_Text_Table_ColumnGf 3Zend_Text_MultiByteGe -Zend_Text_FigletGd AZend_Text_Figlet_ExceptionGc 3Zend_Text_ExceptionG&b OZend_Test_PHPUnit_Db_SimpleTesterG,a [Zend_Test_PHPUnit_Db_Operation_TruncateG*` WZend_Test_PHPUnit_Db_Operation_InsertG-_ ]Zend_Test_PHPUnit_Db_Operation_DeleteAllG*^ WZend_Test_PHPUnit_Db_Metadata_GenericG#] IZend_Test_PHPUnit_Db_ExceptionG,\ [Zend_Test_PHPUnit_Db_DataSet_QueryTableG.[ _Zend_Test_PHPUnit_Db_DataSet_QueryDataSetG0Z cZend_Test_PHPUnit_Db_DataSet_DbTableDataSetG)Y UZend_Test_PHPUnit_Db_DataSet_DbTableG*X WZend_Test_PHPUnit_Db_DataSet_DbRowsetG$W KZend_Test_PHPUnit_Db_ConnectionG'V QZend_Test_PHPUnit_DatabaseTestCaseG)U UZend_Test_PHPUnit_ControllerTestCaseG0T cZend_Test_PHPUnit_Constraint_ResponseHeaderG*S WZend_Test_PHPUnit_Constraint_RedirectG+R YZend_Test_PHPUnit_Constraint_ExceptionG*Q WZend_Test_PHPUnit_Constraint_DomQueryGP 7Zend_Test_DbStatementGO 3Zend_Test_DbAdapterGN /Zend_Tag_ItemListGM 'Zend_Tag_ItemGL 1Zend_Tag_ExceptionGK )Zend_Tag_CloudGJ =Zend_Tag_Cloud_ExceptionG!I EZend_Tag_Cloud_Decorator_TagG%H MZend_Tag_Cloud_Decorator_HtmlTagG'G QZend_Tag_Cloud_Decorator_HtmlCloudG'F QZend_Tag_Cloud_Decorator_ExceptionG#E IZend_Tag_Cloud_Decorator_CloudGD )Zend_Soap_WsdlG/C aZend_Soap_Wsdl_Strategy_DefaultComplexTypeG&B OZend_Soap_Wsdl_Strategy_CompositeG0A cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequenceG/@ aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplexG$? KZend_Soap_Wsdl_Strategy_AnyTypeG%> MZend_Soap_Wsdl_Strategy_AbstractG= =Zend_Soap_Wsdl_ExceptionG< -Zend_Soap_ServerG; AZend_Soap_Server_ExceptionG: -Zend_Soap_ClientG9 9Zend_Soap_Client_LocalG8 AZend_Soap_Client_ExceptionG7 ;Zend_Soap_Client_DotNetG6 ;Zend_Soap_Client_CommonG5 9Zend_Soap_AutoDiscoverG%4 MZend_Soap_AutoDiscover_ExceptionG3 %Zend_SessionG)2 UZend_Session_Validator_HttpUserAgentG$1 KZend_Session_Validator_AbstractG'0 QZend_Session_SaveHandler_ExceptionG%/ MZend_Session_SaveHandler_DbTableG. 9Zend_Session_NamespaceG- 9Zend_Session_ExceptionG, 7Zend_Session_AbstractG+ 1Zend_Service_YahooG$* KZend_Service_Yahoo_WebResultSetG!) EZend_Service_Yahoo_WebResultG&( OZend_Service_Yahoo_VideoResultSetG#' IZend_Service_Yahoo_VideoResultG!& EZend_Service_Yahoo_ResultSetG% ?Zend_Service_Yahoo_ResultG)$ UZend_Service_Yahoo_PageDataResultSetG&# OZend_Service_Yahoo_PageDataResultG%" MZend_Service_Yahoo_NewsResultSetG"! GZend_Service_Yahoo_NewsResultG&  OZend_Service_Yahoo_LocalResultSetG# IZend_Service_Yahoo_LocalResultG+ YZend_Service_Yahoo_InlinkDataResultSetG( SZend_Service_Yahoo_InlinkDataResultG& OZend_Service_Yahoo_ImageResultSetG# IZend_Service_Yahoo_ImageResultG =Zend_Service_Yahoo_ImageG& OZend_Service_WindowsAzure_StorageG4 kZend_Service_WindowsAzure_Storage_TableInstanceG7 qZend_Service_WindowsAzure_Storage_TableEntityQueryG2 gZend_Service_WindowsAzure_Storage_TableEntityG, [Zend_Service_WindowsAzure_Storage_TableG< {Zend_Service_WindowsAzure_Storage_StorageEntityAbstractG7 qZend_Service_WindowsAzure_Storage_SignedIdentifierG3 iZend_Service_WindowsAzure_Storage_QueueMessageG4 kZend_Service_WindowsAzure_Storage_QueueInstanceG, [Zend_Service_WindowsAzure_Storage_QueueG9 uZend_Service_WindowsAzure_Storage_PageRegionInstanceG4 kZend_Service_WindowsAzure_Storage_LeaseInstanceG   M  [-g3Z~Bf:



Y
			w	L	h9
W$H~Gr.WPyH                   0; cZend_Tool_Project_Context_Zf_FormsDirectoryG*: WZend_Tool_Project_Context_Zf_FormFileG/9 aZend_Tool_Project_Context_Zf_DocsDirectoryG-8 ]Zend_Tool_Project_Context_Zf_DbTableFileG27 gZend_Tool_Project_Context_Zf_DbTableDirectoryG/6 aZend_Tool_Project_Context_Zf_DataDirectoryG65 oZend_Tool_Project_Context_Zf_ControllersDirectoryG04 cZend_Tool_Project_Context_Zf_ControllerFileG23 gZend_Tool_Project_Context_Zf_ConfigsDirectoryG,2 [Zend_Tool_Project_Context_Zf_ConfigFileG01 cZend_Tool_Project_Context_Zf_CacheDirectoryG/0 aZend_Tool_Project_Context_Zf_BootstrapFileG6/ oZend_Tool_Project_Context_Zf_ApplicationDirectoryG7. qZend_Tool_Project_Context_Zf_ApplicationConfigFileG/- aZend_Tool_Project_Context_Zf_ApisDirectoryG., _Zend_Tool_Project_Context_Zf_ActionMethodG3+ iZend_Tool_Project_Context_Zf_AbstractClassFileG@* Zend_Tool_Project_Context_System_ProjectProvidersDirectoryG8) sZend_Tool_Project_Context_System_ProjectProfileFileG6( oZend_Tool_Project_Context_System_ProjectDirectoryG)' UZend_Tool_Project_Context_RepositoryG.& _Zend_Tool_Project_Context_Filesystem_FileG3% iZend_Tool_Project_Context_Filesystem_DirectoryG2$ gZend_Tool_Project_Context_Filesystem_AbstractG(# SZend_Tool_Project_Context_ExceptionG-" ]Zend_Tool_Project_Context_Content_EngineG3! iZend_Tool_Project_Context_Content_Engine_PhtmlG;  yZend_Tool_Project_Context_Content_Engine_CodeGeneratorG0 cZend_Tool_Framework_System_Provider_VersionG0 cZend_Tool_Framework_System_Provider_PhpinfoG1 eZend_Tool_Framework_System_Provider_ManifestG/ aZend_Tool_Framework_System_Provider_ConfigG( SZend_Tool_Framework_System_ManifestG- ]Zend_Tool_Framework_System_Action_DeleteG- ]Zend_Tool_Framework_System_Action_CreateG! EZend_Tool_Framework_RegistryG+ YZend_Tool_Framework_Registry_ExceptionG+ YZend_Tool_Framework_Provider_SignatureG, [Zend_Tool_Framework_Provider_RepositoryG+ YZend_Tool_Framework_Provider_ExceptionG* WZend_Tool_Framework_Provider_AbstractG& OZend_Tool_Framework_Metadata_ToolG) UZend_Tool_Framework_Metadata_DynamicG' QZend_Tool_Framework_Metadata_BasicG, [Zend_Tool_Framework_Manifest_RepositoryG+ YZend_Tool_Framework_Manifest_ExceptionG1 eZend_Tool_Framework_Loader_IncludePathLoaderGJ Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIteratorG+ YZend_Tool_Framework_Loader_BasicLoaderG(
 SZend_Tool_Framework_Loader_AbstractG"	 GZend_Tool_Framework_ExceptionG' QZend_Tool_Framework_Client_StorageG1 eZend_Tool_Framework_Client_Storage_DirectoryG( SZend_Tool_Framework_Client_ResponseGD 	Zend_Tool_Framework_Client_Response_ContentDecorator_SeparatorG' QZend_Tool_Framework_Client_RequestG( SZend_Tool_Framework_Client_ManifestG9 uZend_Tool_Framework_Client_Interactive_InputResponseG8 sZend_Tool_Framework_Client_Interactive_InputRequestG8  sZend_Tool_Framework_Client_Interactive_InputHandlerG) UZend_Tool_Framework_Client_ExceptionG'~ QZend_Tool_Framework_Client_ConsoleGD} 	Zend_Tool_Framework_Client_Console_ResponseDecorator_IndentionGD| 	Zend_Tool_Framework_Client_Console_ResponseDecorator_ColorizerGC{ Zend_Tool_Framework_Client_Console_ResponseDecorator_BlockizeGFz Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenterG0y cZend_Tool_Framework_Client_Console_ManifestG2x gZend_Tool_Framework_Client_Console_HelpSystemG6w oZend_Tool_Framework_Client_Console_ArgumentParserG&v OZend_Tool_Framework_Client_ConfigG(u SZend_Tool_Framework_Client_AbstractG*t WZend_Tool_Framework_Action_RepositoryG)s UZend_Tool_Framework_Action_ExceptionG$r KZend_Tool_Framework_Action_BaseGq 'Zend_TimeSyncGp 1Zend_TimeSync_SntpGo 9Zend_TimeSync_ProtocolG   L  \&X#J^"r0


e
 			b	-p<MkGp;[,yQ'}R`=                   ! EZend_Translate_Adapter_XliffG AZend_Translate_Adapter_TmxG AZend_Translate_Adapter_TbxG ?Zend_Translate_Adapter_QtG AZend_Translate_Adapter_IniG# IZend_Translate_Adapter_GettextG AZend_Translate_Adapter_CsvG!  EZend_Translate_Adapter_ArrayG$ KZend_Tool_Project_Provider_ViewG$~ KZend_Tool_Project_Provider_TestG/} aZend_Tool_Project_Provider_ProjectProviderG'| QZend_Tool_Project_Provider_ProjectG'{ QZend_Tool_Project_Provider_ProfileG&z OZend_Tool_Project_Provider_ModuleG%y MZend_Tool_Project_Provider_ModelG(x SZend_Tool_Project_Provider_ManifestG&w OZend_Tool_Project_Provider_LayoutG$v KZend_Tool_Project_Provider_FormG)u UZend_Tool_Project_Provider_ExceptionG't QZend_Tool_Project_Provider_DbTableG)s UZend_Tool_Project_Provider_DbAdapterG*r WZend_Tool_Project_Provider_ControllerG+q YZend_Tool_Project_Provider_ApplicationG&p OZend_Tool_Project_Provider_ActionG(o SZend_Tool_Project_Provider_AbstractGn ?Zend_Tool_Project_ProfileG'm QZend_Tool_Project_Profile_ResourceG9l uZend_Tool_Project_Profile_Resource_SearchConstraintsG1k eZend_Tool_Project_Profile_Resource_ContainerG=j }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilterG5i mZend_Tool_Project_Profile_Iterator_ContextFilterG-h ]Zend_Tool_Project_Profile_FileParser_XmlG(g SZend_Tool_Project_Profile_ExceptionG f CZend_Tool_Project_ExceptionG<e {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectoryG0d cZend_Tool_Project_Context_Zf_ViewsDirectoryG6c oZend_Tool_Project_Context_Zf_ViewScriptsDirectoryG0b cZend_Tool_Project_Context_Zf_ViewScriptFileG6a oZend_Tool_Project_Context_Zf_ViewHelpersDirectoryG6` oZend_Tool_Project_Context_Zf_ViewFiltersDirectoryGA_ Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectoryG2^ gZend_Tool_Project_Context_Zf_UploadsDirectoryG0] cZend_Tool_Project_Context_Zf_TestsDirectoryG7\ qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFileG:[ wZend_Tool_Project_Context_Zf_TestPHPUnitBootstrapFileG@Z Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectoryG1Y eZend_Tool_Project_Context_Zf_TestLibraryFileG6X oZend_Tool_Project_Context_Zf_TestLibraryDirectoryG:W wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFileGBV Zend_Tool_Project_Context_Zf_TestApplicationModulesDirectoryGAU Zend_Tool_Project_Context_Zf_TestApplicationModuleDirectoryG:T wZend_Tool_Project_Context_Zf_TestApplicationDirectoryG@S Zend_Tool_Project_Context_Zf_TestApplicationControllerFileGER Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectoryG>Q Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFileG=P }Zend_Tool_Project_Context_Zf_TestApplicationActionMethodG4O kZend_Tool_Project_Context_Zf_TemporaryDirectoryG3N iZend_Tool_Project_Context_Zf_SessionsDirectoryG8M sZend_Tool_Project_Context_Zf_SearchIndexesDirectoryG<L {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectoryG8K sZend_Tool_Project_Context_Zf_PublicScriptsDirectoryG1J eZend_Tool_Project_Context_Zf_PublicIndexFileG7I qZend_Tool_Project_Context_Zf_PublicImagesDirectoryG1H eZend_Tool_Project_Context_Zf_PublicDirectoryG5G mZend_Tool_Project_Context_Zf_ProjectProviderFileG2F gZend_Tool_Project_Context_Zf_ModulesDirectoryG1E eZend_Tool_Project_Context_Zf_ModuleDirectoryG1D eZend_Tool_Project_Context_Zf_ModelsDirectoryG+C YZend_Tool_Project_Context_Zf_ModelFileG/B aZend_Tool_Project_Context_Zf_LogsDirectoryG2A gZend_Tool_Project_Context_Zf_LocalesDirectoryG2@ gZend_Tool_Project_Context_Zf_LibraryDirectoryG2? gZend_Tool_Project_Context_Zf_LayoutsDirectoryG8> sZend_Tool_Project_Context_Zf_LayoutScriptsDirectoryG2= gZend_Tool_Project_Context_Zf_LayoutScriptFileG.< _Zend_Tool_Project_Context_Zf_HtaccessFileG   q }fK5$zJ%hD mH _9




l
M
1
					h	E	%	jE  qM(cI*dE&
rO9$	hI$yT0yW1                                    x AZend_View_Helper_FormRadioG"w GZend_View_Helper_FormPasswordGv ?Zend_View_Helper_FormNoteG'u QZend_View_Helper_FormMultiCheckboxGt AZend_View_Helper_FormLabelGs AZend_View_Helper_FormImageG r CZend_View_Helper_FormHiddenGq ?Zend_View_Helper_FormFileG p CZend_View_Helper_FormErrorsG!o EZend_View_Helper_FormElementG"n GZend_View_Helper_FormCheckboxG m CZend_View_Helper_FormButtonGl 7Zend_View_Helper_FormGk ?Zend_View_Helper_FieldsetGj =Zend_View_Helper_DoctypeG!i EZend_View_Helper_DeclareVarsGh 9Zend_View_Helper_CycleGg ?Zend_View_Helper_CurrencyGf =Zend_View_Helper_BaseUrlGe ;Zend_View_Helper_ActionGd ?Zend_View_Helper_AbstractGc 3Zend_View_ExceptionGb 1Zend_View_AbstractGa %Zend_VersionG` 'Zend_ValidateG_ AZend_Validate_StringLengthG#^ IZend_Validate_Sitemap_PriorityG] ?Zend_Validate_Sitemap_LocG"\ GZend_Validate_Sitemap_LastmodG%[ MZend_Validate_Sitemap_ChangefreqGZ 3Zend_Validate_RegexGY 9Zend_Validate_PostCodeGX 9Zend_Validate_NotEmptyGW 9Zend_Validate_LessThanGV 1Zend_Validate_IsbnGU -Zend_Validate_IpGT /Zend_Validate_IntGS 7Zend_Validate_InArrayGR ;Zend_Validate_IdenticalGQ 1Zend_Validate_IbanGP 9Zend_Validate_HostnameGO /Zend_Validate_HexGN ?Zend_Validate_GreaterThanGM 3Zend_Validate_FloatG!L EZend_Validate_File_WordCountGK ?Zend_Validate_File_UploadGJ ;Zend_Validate_File_SizeGI ;Zend_Validate_File_Sha1G!H EZend_Validate_File_NotExistsG G CZend_Validate_File_MimeTypeGF 9Zend_Validate_File_Md5GE AZend_Validate_File_IsImageG$D KZend_Validate_File_IsCompressedG!C EZend_Validate_File_ImageSizeGB ;Zend_Validate_File_HashG!A EZend_Validate_File_FilesSizeG!@ EZend_Validate_File_ExtensionG? ?Zend_Validate_File_ExistsG'> QZend_Validate_File_ExcludeMimeTypeG(= SZend_Validate_File_ExcludeExtensionG< =Zend_Validate_File_Crc32G; =Zend_Validate_File_CountG: ;Zend_Validate_ExceptionG9 AZend_Validate_EmailAddressG8 5Zend_Validate_DigitsG"7 GZend_Validate_Db_RecordExistsG$6 KZend_Validate_Db_NoRecordExistsG5 ?Zend_Validate_Db_AbstractG4 1Zend_Validate_DateG3 =Zend_Validate_CreditCardG2 3Zend_Validate_CcnumG1 9Zend_Validate_CallbackG0 7Zend_Validate_BetweenG/ 7Zend_Validate_BarcodeG. AZend_Validate_Barcode_UpceG- AZend_Validate_Barcode_UpcaG, AZend_Validate_Barcode_SsccG$+ KZend_Validate_Barcode_RoyalmailG"* GZend_Validate_Barcode_PostnetG!) EZend_Validate_Barcode_PlanetG#( IZend_Validate_Barcode_LeitcodeG ' CZend_Validate_Barcode_Itf14G& AZend_Validate_Barcode_IssnG*% WZend_Validate_Barcode_IntelligentMailG$$ KZend_Validate_Barcode_IdentcodeG!# EZend_Validate_Barcode_Gtin14G!" EZend_Validate_Barcode_Gtin13G!! EZend_Validate_Barcode_Gtin12G  AZend_Validate_Barcode_Ean8G AZend_Validate_Barcode_Ean5G AZend_Validate_Barcode_Ean2G  CZend_Validate_Barcode_Ean18G  CZend_Validate_Barcode_Ean14G  CZend_Validate_Barcode_Ean13G  CZend_Validate_Barcode_Ean12G$ KZend_Validate_Barcode_Code93extG! EZend_Validate_Barcode_Code93G$ KZend_Validate_Barcode_Code39extG! EZend_Validate_Barcode_Code39G, [Zend_Validate_Barcode_Code25interleavedG! EZend_Validate_Barcode_Code25G* WZend_Validate_Barcode_AdapterAbstractG 3Zend_Validate_AlphaG 3Zend_Validate_AlnumG 9Zend_Validate_AbstractG Zend_UriG 'Zend_Uri_HttpG 1Zend_Uri_ExceptionG )Zend_TranslateG 7Zend_Translate_PluralG
 =Zend_Translate_ExceptionG	 9Zend_Translate_AdapterG! EZend_Translate_Adapter_XmlTmG   j  sM+	}X5bB`<h/



`
;
					g	N	<	nDnG,rQ/mK0`?x^C) {W8b>                             b CZend_Amf_Parse_OutputStreamHa AZend_Amf_Parse_InputStreamH ` CZend_Amf_Parse_DeserializerH#_ IZend_Amf_Parse_Amf3_SerializerH%^ MZend_Amf_Parse_Amf3_DeserializerH#] IZend_Amf_Parse_Amf0_SerializerH%\ MZend_Amf_Parse_Amf0_DeserializerH[ 1Zend_Amf_ExceptionHZ 1Zend_Amf_ConstantsHY 9Zend_Amf_Auth_AbstractH X CZend_Amf_Adobe_IntrospectorHW AZend_Amf_Adobe_DbInspectorHV 3Zend_Amf_Adobe_AuthHU Zend_AclHT 'Zend_Acl_RoleHS 9Zend_Acl_Role_RegistryH%R MZend_Acl_Role_Registry_ExceptionHQ /Zend_Acl_ResourceHP 1Zend_Acl_ExceptionHO /Zend_XmlRpc_ValueGN =Zend_XmlRpc_Value_StructGM =Zend_XmlRpc_Value_StringGL =Zend_XmlRpc_Value_ScalarGK 7Zend_XmlRpc_Value_NilGJ ?Zend_XmlRpc_Value_IntegerG I CZend_XmlRpc_Value_ExceptionGH =Zend_XmlRpc_Value_DoubleGG AZend_XmlRpc_Value_DateTimeG!F EZend_XmlRpc_Value_CollectionGE ?Zend_XmlRpc_Value_BooleanG!D EZend_XmlRpc_Value_BigIntegerGC =Zend_XmlRpc_Value_Base64GB ;Zend_XmlRpc_Value_ArrayGA 1Zend_XmlRpc_ServerG@ ?Zend_XmlRpc_Server_SystemG? =Zend_XmlRpc_Server_FaultG!> EZend_XmlRpc_Server_ExceptionG= =Zend_XmlRpc_Server_CacheG< 5Zend_XmlRpc_ResponseG; ?Zend_XmlRpc_Response_HttpG: 3Zend_XmlRpc_RequestG9 ?Zend_XmlRpc_Request_StdinG8 =Zend_XmlRpc_Request_HttpG$7 KZend_XmlRpc_Generator_XmlWriterG,6 [Zend_XmlRpc_Generator_GeneratorAbstractG&5 OZend_XmlRpc_Generator_DomDocumentG4 /Zend_XmlRpc_FaultG3 7Zend_XmlRpc_ExceptionG2 1Zend_XmlRpc_ClientG#1 IZend_XmlRpc_Client_ServerProxyG+0 YZend_XmlRpc_Client_ServerIntrospectionG+/ YZend_XmlRpc_Client_IntrospectExceptionG%. MZend_XmlRpc_Client_HttpExceptionG&- OZend_XmlRpc_Client_FaultExceptionG!, EZend_XmlRpc_Client_ExceptionG&+ OZend_Wildfire_Protocol_JsonStreamG!* EZend_Wildfire_Plugin_FirePhpG.) _Zend_Wildfire_Plugin_FirePhp_TableMessageG)( UZend_Wildfire_Plugin_FirePhp_MessageG' ;Zend_Wildfire_ExceptionG&& OZend_Wildfire_Channel_HttpHeadersG% Zend_ViewG$ -Zend_View_StreamG# AZend_View_Helper_UserAgentG" 5Zend_View_Helper_UrlG! AZend_View_Helper_TranslateG  =Zend_View_Helper_TinySrcG AZend_View_Helper_ServerUrlG) UZend_View_Helper_RenderToPlaceholderG! EZend_View_Helper_PlaceholderG* WZend_View_Helper_Placeholder_RegistryG4 kZend_View_Helper_Placeholder_Registry_ExceptionG+ YZend_View_Helper_Placeholder_ContainerG6 oZend_View_Helper_Placeholder_Container_StandaloneG5 mZend_View_Helper_Placeholder_Container_ExceptionG4 kZend_View_Helper_Placeholder_Container_AbstractG! EZend_View_Helper_PartialLoopG =Zend_View_Helper_PartialG' QZend_View_Helper_Partial_ExceptionG' QZend_View_Helper_PaginationControlG  CZend_View_Helper_NavigationG( SZend_View_Helper_Navigation_SitemapG% MZend_View_Helper_Navigation_MenuG& OZend_View_Helper_Navigation_LinksG/ aZend_View_Helper_Navigation_HelperAbstractG, [Zend_View_Helper_Navigation_BreadcrumbsG ;Zend_View_Helper_LayoutG 7Zend_View_Helper_JsonG"
 GZend_View_Helper_InlineScriptG#	 IZend_View_Helper_HtmlQuicktimeG ?Zend_View_Helper_HtmlPageG  CZend_View_Helper_HtmlObjectG ?Zend_View_Helper_HtmlListG AZend_View_Helper_HtmlFlashG! EZend_View_Helper_HtmlElementG AZend_View_Helper_HeadTitleG AZend_View_Helper_HeadStyleG  CZend_View_Helper_HeadScriptG  ?Zend_View_Helper_HeadMetaG ?Zend_View_Helper_HeadLinkG~ ?Zend_View_Helper_GravatarG"} GZend_View_Helper_FormTextareaG| ?Zend_View_Helper_FormTextG { CZend_View_Helper_FormSubmitG z CZend_View_Helper_FormSelectGy AZend_View_Helper_FormResetG   Y  >rDs5t?|?	



p
U
.
				v	?	rN2`8c@T%d=]@wU)vL+
             ! EZend_Log_Formatter_InterfaceH ?Zend_Log_Filter_InterfaceH ?Zend_Log_FactoryInterfaceH ?Zend_Loader_SplAutoloaderH' QZend_Loader_PluginLoader_InterfaceH% MZend_Loader_Autoloader_InterfaceH0 cZend_Ldap_Node_Schema_ObjectClass_InterfaceH2 gZend_Ldap_Node_Schema_AttributeType_InterfaceH  CZend_Http_UserAgent_StorageH) UZend_Http_UserAgent_Features_AdapterH AZend_Http_UserAgent_DeviceH$ KZend_Http_Client_Adapter_StreamH' QZend_Http_Client_Adapter_InterfaceH AZend_Gdata_App_MediaSourceH. _Zend_Form_Decorator_Marker_File_InterfaceH" GZend_Form_Decorator_InterfaceH 7Zend_Filter_InterfaceH"
 GZend_Filter_Encrypt_InterfaceH+	 YZend_Filter_Compress_CompressInterfaceH0 cZend_Feed_Writer_Renderer_RendererInterfaceH1 eZend_Feed_Writer_Extension_RendererInterfaceH# IZend_Feed_Reader_FeedInterfaceH$ KZend_Feed_Reader_EntryInterfaceH7 qZend_Feed_Pubsubhubbub_Model_SubscriptionInterfaceH- ]Zend_Feed_Pubsubhubbub_CallbackInterfaceH  CZend_Feed_Builder_InterfaceH1 eZend_EventManager_SharedEventCollectionAwareH,  [Zend_EventManager_SharedEventCollectionH( SZend_EventManager_ListenerAggregateH~ =Zend_EventManager_FilterH } CZend_EventManager_ExceptionH(| SZend_EventManager_EventManagerAwareH'{ QZend_EventManager_EventDescriptionH&z OZend_EventManager_EventCollectionH y CZend_Db_Statement_InterfaceH$x KZend_Currency_CurrencyInterfaceH)w UZend_Crypt_Math_BigInteger_InterfaceH+v YZend_Controller_Router_Route_InterfaceH%u MZend_Controller_Router_InterfaceH)t UZend_Controller_Dispatcher_InterfaceH%s MZend_Controller_Action_InterfaceH&r OZend_Cloud_StorageService_AdapterH$q KZend_Cloud_QueueService_AdapterH&p OZend_Cloud_Infrastructure_AdapterH,o [Zend_Cloud_DocumentService_QueryAdapterH'n QZend_Cloud_DocumentService_AdapterHm 5Zend_Captcha_AdapterH!l EZend_Cache_Backend_InterfaceH)k UZend_Cache_Backend_ExtendedInterfaceH j CZend_Auth_Storage_InterfaceH i CZend_Auth_Adapter_InterfaceH.h _Zend_Auth_Adapter_Http_Resolver_InterfaceH'g QZend_Application_Resource_ResourceH4f kZend_Application_Bootstrap_ResourceBootstrapperH,e [Zend_Application_Bootstrap_BootstrapperHd ;Zend_Acl_Role_InterfaceH c CZend_Acl_Resource_InterfaceHb ?Zend_Acl_Assert_InterfaceH#a IZend_Wildfire_Plugin_InterfaceG$` KZend_Wildfire_Channel_InterfaceG_ 3Zend_View_InterfaceG'^ QZend_View_Helper_Navigation_HelperG] AZend_View_Helper_InterfaceG\ ;Zend_Validate_InterfaceG+[ YZend_Validate_Barcode_AdapterInterfaceG3Z iZend_Tool_Project_Profile_FileParser_InterfaceG:Y wZend_Tool_Project_Context_System_TopLevelRestrictableG5X mZend_Tool_Project_Context_System_NotOverwritableG/W aZend_Tool_Project_Context_System_InterfaceG(V SZend_Tool_Project_Context_InterfaceG+U YZend_Tool_Framework_Registry_InterfaceG2T gZend_Tool_Framework_Registry_EnabledInterfaceG-S ]Zend_Tool_Framework_Provider_PretendableG+R YZend_Tool_Framework_Provider_InterfaceG.Q _Zend_Tool_Framework_Provider_InteractableG/P aZend_Tool_Framework_Provider_InitializableG;O yZend_Tool_Framework_Provider_DocblockManifestInterfaceG+N YZend_Tool_Framework_Metadata_InterfaceG.M _Zend_Tool_Framework_Metadata_AttributableG6L oZend_Tool_Framework_Manifest_ProviderManifestableG6K oZend_Tool_Framework_Manifest_MetadataManifestableG+J YZend_Tool_Framework_Manifest_InterfaceG+I YZend_Tool_Framework_Manifest_IndexableG4H kZend_Tool_Framework_Manifest_ActionManifestableG)G UZend_Tool_Framework_Loader_InterfaceG8F sZend_Tool_Framework_Client_Storage_AdapterInterfaceGDE 	Zend_Tool_Framework_Client_Response_ContentDecorator_InterfaceG;D yZend_Tool_Framework_Client_Interactive_OutputInterfaceG:C wZend_Tool_Framework_Client_Interactive_InputInterfaceG   f  ^<oN+pBd/[6



_
9
				^	5	sQ0oN2zV3~];}Z6`1nI'zR'                                        (H SZend_Cache_Backend_ZendServer_ShMemH'G QZend_Cache_Backend_ZendServer_DiskH$F KZend_Cache_Backend_ZendPlatformHE ?Zend_Cache_Backend_XcacheH D CZend_Cache_Backend_WinCacheH!C EZend_Cache_Backend_TwoLevelsHB ;Zend_Cache_Backend_TestHA ?Zend_Cache_Backend_StaticH@ ?Zend_Cache_Backend_SqliteH!? EZend_Cache_Backend_MemcachedH$> KZend_Cache_Backend_LibmemcachedH= ;Zend_Cache_Backend_FileH!< EZend_Cache_Backend_BlackHoleH; 9Zend_Cache_Backend_ApcH: %Zend_BarcodeH9 ?Zend_Barcode_Renderer_SvgH+8 YZend_Barcode_Renderer_RendererAbstractH7 ?Zend_Barcode_Renderer_PdfH 6 CZend_Barcode_Renderer_ImageH$5 KZend_Barcode_Renderer_ExceptionH4 =Zend_Barcode_Object_UpceH3 =Zend_Barcode_Object_UpcaH"2 GZend_Barcode_Object_RoyalmailH 1 CZend_Barcode_Object_PostnetH0 AZend_Barcode_Object_PlanetH'/ QZend_Barcode_Object_ObjectAbstractH!. EZend_Barcode_Object_LeitcodeH- ?Zend_Barcode_Object_Itf14H", GZend_Barcode_Object_IdentcodeH"+ GZend_Barcode_Object_ExceptionH* ?Zend_Barcode_Object_ErrorH) =Zend_Barcode_Object_Ean8H( =Zend_Barcode_Object_Ean5H' =Zend_Barcode_Object_Ean2H& ?Zend_Barcode_Object_Ean13H% AZend_Barcode_Object_Code39H*$ WZend_Barcode_Object_Code25interleavedH# AZend_Barcode_Object_Code25H " CZend_Barcode_Object_Code128H! 9Zend_Barcode_ExceptionH  Zend_AuthH ?Zend_Auth_Storage_SessionH$ KZend_Auth_Storage_NonPersistentH  CZend_Auth_Storage_ExceptionH -Zend_Auth_ResultH 3Zend_Auth_ExceptionH =Zend_Auth_Adapter_OpenIdH 9Zend_Auth_Adapter_LdapH 9Zend_Auth_Adapter_HttpH) UZend_Auth_Adapter_Http_Resolver_FileH. _Zend_Auth_Adapter_Http_Resolver_ExceptionH  CZend_Auth_Adapter_ExceptionH =Zend_Auth_Adapter_DigestH ?Zend_Auth_Adapter_DbTableH -Zend_ApplicationH# IZend_Application_Resource_ViewH( SZend_Application_Resource_UserAgentH( SZend_Application_Resource_TranslateH& OZend_Application_Resource_SessionH% MZend_Application_Resource_RouterH/ aZend_Application_Resource_ResourceAbstractH) UZend_Application_Resource_NavigationH&
 OZend_Application_Resource_MultidbH&	 OZend_Application_Resource_ModulesH# IZend_Application_Resource_MailH" GZend_Application_Resource_LogH% MZend_Application_Resource_LocaleH% MZend_Application_Resource_LayoutH. _Zend_Application_Resource_FrontcontrollerH( SZend_Application_Resource_ExceptionH# IZend_Application_Resource_DojoH! EZend_Application_Resource_DbH+  YZend_Application_Resource_CachemanagerH& OZend_Application_Module_BootstrapH'~ QZend_Application_Module_AutoloaderH} AZend_Application_ExceptionH)| UZend_Application_Bootstrap_ExceptionH1{ eZend_Application_Bootstrap_BootstrapAbstractH)z UZend_Application_Bootstrap_BootstrapHy ?Zend_Amf_Value_TraitsInfoH-x ]Zend_Amf_Value_Messaging_RemotingMessageH*w WZend_Amf_Value_Messaging_ErrorMessageH,v [Zend_Amf_Value_Messaging_CommandMessageH*u WZend_Amf_Value_Messaging_AsyncMessageH-t ]Zend_Amf_Value_Messaging_ArrayCollectionH0s cZend_Amf_Value_Messaging_AcknowledgeMessageH-r ]Zend_Amf_Value_Messaging_AbstractMessageH!q EZend_Amf_Value_MessageHeaderHp AZend_Amf_Value_MessageBodyHo =Zend_Amf_Value_ByteArrayHn AZend_Amf_Util_BinaryStreamHm +Zend_Amf_ServerHl ?Zend_Amf_Server_ExceptionHk /Zend_Amf_ResponseHj 9Zend_Amf_Response_HttpHi -Zend_Amf_RequestHh 7Zend_Amf_Request_HttpHg ?Zend_Amf_Parse_TypeLoaderHf ?Zend_Amf_Parse_SerializerH#e IZend_Amf_Parse_Resource_StreamH(d SZend_Amf_Parse_Resource_MysqlResultH)c UZend_Amf_Parse_Resource_MysqliResultH   `  fD#rX9k1[,T&



t
H
				X	#wLS)o;	Y5zQ\=~X<D      <( {Zend_Controller_Action_Helper_AutoCompleteScriptaculousH3' iZend_Controller_Action_Helper_AutoCompleteDojoH8& sZend_Controller_Action_Helper_AutoComplete_AbstractH.% _Zend_Controller_Action_Helper_AjaxContextH.$ _Zend_Controller_Action_Helper_ActionStackH+# YZend_Controller_Action_Helper_AbstractH%" MZend_Controller_Action_ExceptionH! 3Zend_Console_GetoptH"  GZend_Console_Getopt_ExceptionH #Zend_ConfigH -Zend_Config_YamlH +Zend_Config_XmlH 1Zend_Config_WriterH ;Zend_Config_Writer_YamlH 9Zend_Config_Writer_XmlH ;Zend_Config_Writer_JsonH 9Zend_Config_Writer_IniH$ KZend_Config_Writer_FileAbstractH =Zend_Config_Writer_ArrayH -Zend_Config_JsonH +Zend_Config_IniH 7Zend_Config_ExceptionH$ KZend_CodeGenerator_Php_PropertyH1 eZend_CodeGenerator_Php_Property_DefaultValueH% MZend_CodeGenerator_Php_ParameterH2 gZend_CodeGenerator_Php_Parameter_DefaultValueH" GZend_CodeGenerator_Php_MethodH, [Zend_CodeGenerator_Php_Member_ContainerH+ YZend_CodeGenerator_Php_Member_AbstractH  CZend_CodeGenerator_Php_FileH%
 MZend_CodeGenerator_Php_ExceptionH$	 KZend_CodeGenerator_Php_DocblockH( SZend_CodeGenerator_Php_Docblock_TagH/ aZend_CodeGenerator_Php_Docblock_Tag_ReturnH. _Zend_CodeGenerator_Php_Docblock_Tag_ParamH0 cZend_CodeGenerator_Php_Docblock_Tag_LicenseH! EZend_CodeGenerator_Php_ClassH  CZend_CodeGenerator_Php_BodyH$ KZend_CodeGenerator_Php_AbstractH! EZend_CodeGenerator_ExceptionH   CZend_CodeGenerator_AbstractH& OZend_Cloud_StorageService_FactoryH(~ SZend_Cloud_StorageService_ExceptionH3} iZend_Cloud_StorageService_Adapter_WindowsAzureH)| UZend_Cloud_StorageService_Adapter_S3H0{ cZend_Cloud_StorageService_Adapter_RackspaceH1z eZend_Cloud_StorageService_Adapter_FileSystemH'y QZend_Cloud_QueueService_MessageSetH$x KZend_Cloud_QueueService_MessageH$w KZend_Cloud_QueueService_FactoryH&v OZend_Cloud_QueueService_ExceptionH.u _Zend_Cloud_QueueService_Adapter_ZendQueueH1t eZend_Cloud_QueueService_Adapter_WindowsAzureH(s SZend_Cloud_QueueService_Adapter_SqsH4r kZend_Cloud_QueueService_Adapter_AbstractAdapterH.q _Zend_Cloud_OperationNotAvailableExceptionH+p YZend_Cloud_Infrastructure_InstanceListH'o QZend_Cloud_Infrastructure_InstanceH(n SZend_Cloud_Infrastructure_ImageListH$m KZend_Cloud_Infrastructure_ImageH&l OZend_Cloud_Infrastructure_FactoryH(k SZend_Cloud_Infrastructure_ExceptionH0j cZend_Cloud_Infrastructure_Adapter_RackspaceH*i WZend_Cloud_Infrastructure_Adapter_Ec2H6h oZend_Cloud_Infrastructure_Adapter_AbstractAdapterHg 5Zend_Cloud_ExceptionH%f MZend_Cloud_DocumentService_QueryH'e QZend_Cloud_DocumentService_FactoryH)d UZend_Cloud_DocumentService_ExceptionH+c YZend_Cloud_DocumentService_DocumentSetH(b SZend_Cloud_DocumentService_DocumentH4a kZend_Cloud_DocumentService_Adapter_WindowsAzureH:` wZend_Cloud_DocumentService_Adapter_WindowsAzure_QueryH0_ cZend_Cloud_DocumentService_Adapter_SimpleDbH6^ oZend_Cloud_DocumentService_Adapter_SimpleDb_QueryH7] qZend_Cloud_DocumentService_Adapter_AbstractAdapterH\ AZend_Cloud_AbstractFactoryH[ /Zend_Captcha_WordHZ 9Zend_Captcha_ReCaptchaHY 1Zend_Captcha_ImageHX 3Zend_Captcha_FigletHW 9Zend_Captcha_ExceptionHV /Zend_Captcha_DumbHU /Zend_Captcha_BaseHT !Zend_CacheHS 1Zend_Cache_ManagerHR =Zend_Cache_Frontend_PageHQ AZend_Cache_Frontend_OutputH!P EZend_Cache_Frontend_FunctionHO =Zend_Cache_Frontend_FileHN ?Zend_Cache_Frontend_ClassH M CZend_Cache_Frontend_CaptureHL 5Zend_Cache_ExceptionHK +Zend_Cache_CoreHJ 1Zend_Cache_BackendH"I GZend_Cache_Backend_ZendServerH   j  k@xL-h@pFyT)



]
/
				S	.	a4lJ/}kJ$uV1eC eF-`?fE+                 =Zend_Db_Table_DefinitionH 9Zend_Db_Table_AbstractH /Zend_Db_StatementH =Zend_Db_Statement_SqlsrvH' QZend_Db_Statement_Sqlsrv_ExceptionH 7Zend_Db_Statement_PdoH ?Zend_Db_Statement_Pdo_OciH ?Zend_Db_Statement_Pdo_IbmH
 =Zend_Db_Statement_OracleH'	 QZend_Db_Statement_Oracle_ExceptionH =Zend_Db_Statement_MysqliH' QZend_Db_Statement_Mysqli_ExceptionH  CZend_Db_Statement_ExceptionH 7Zend_Db_Statement_Db2H$ KZend_Db_Statement_Db2_ExceptionH )Zend_Db_SelectH =Zend_Db_Select_ExceptionH -Zend_Db_ProfilerH  9Zend_Db_Profiler_QueryH =Zend_Db_Profiler_FirebugH~ AZend_Db_Profiler_ExceptionH} %Zend_Db_ExprH| /Zend_Db_ExceptionH{ 9Zend_Db_Adapter_SqlsrvH%z MZend_Db_Adapter_Sqlsrv_ExceptionHy AZend_Db_Adapter_Pdo_SqliteHx ?Zend_Db_Adapter_Pdo_PgsqlHw ;Zend_Db_Adapter_Pdo_OciHv ?Zend_Db_Adapter_Pdo_MysqlHu ?Zend_Db_Adapter_Pdo_MssqlHt ;Zend_Db_Adapter_Pdo_IbmH s CZend_Db_Adapter_Pdo_Ibm_IdsH r CZend_Db_Adapter_Pdo_Ibm_Db2H!q EZend_Db_Adapter_Pdo_AbstractHp 9Zend_Db_Adapter_OracleH%o MZend_Db_Adapter_Oracle_ExceptionHn 9Zend_Db_Adapter_MysqliH%m MZend_Db_Adapter_Mysqli_ExceptionHl ?Zend_Db_Adapter_ExceptionHk 3Zend_Db_Adapter_Db2H"j GZend_Db_Adapter_Db2_ExceptionHi =Zend_Db_Adapter_AbstractHh Zend_DateHg 3Zend_Date_ExceptionHf 5Zend_Date_DateObjectHe -Zend_Date_CitiesHd 'Zend_CurrencyHc ;Zend_Currency_ExceptionHb !Zend_CryptHa )Zend_Crypt_RsaH` 1Zend_Crypt_Rsa_KeyH_ ?Zend_Crypt_Rsa_Key_PublicH^ AZend_Crypt_Rsa_Key_PrivateH] =Zend_Crypt_Rsa_ExceptionH\ +Zend_Crypt_MathH[ ?Zend_Crypt_Math_ExceptionHZ AZend_Crypt_Math_BigIntegerH#Y IZend_Crypt_Math_BigInteger_GmpH)X UZend_Crypt_Math_BigInteger_ExceptionH&W OZend_Crypt_Math_BigInteger_BcmathHV +Zend_Crypt_HmacHU ?Zend_Crypt_Hmac_ExceptionHT 5Zend_Crypt_ExceptionHS =Zend_Crypt_DiffieHellmanH'R QZend_Crypt_DiffieHellman_ExceptionH!Q EZend_Controller_Router_RouteH(P SZend_Controller_Router_Route_StaticH'O QZend_Controller_Router_Route_RegexH(N SZend_Controller_Router_Route_ModuleH*M WZend_Controller_Router_Route_HostnameH'L QZend_Controller_Router_Route_ChainH*K WZend_Controller_Router_Route_AbstractH#J IZend_Controller_Router_RewriteH%I MZend_Controller_Router_ExceptionH$H KZend_Controller_Router_AbstractH*G WZend_Controller_Response_HttpTestCaseH"F GZend_Controller_Response_HttpH'E QZend_Controller_Response_ExceptionH!D EZend_Controller_Response_CliH&C OZend_Controller_Response_AbstractH#B IZend_Controller_Request_SimpleH)A UZend_Controller_Request_HttpTestCaseH!@ EZend_Controller_Request_HttpH&? OZend_Controller_Request_ExceptionH&> OZend_Controller_Request_Apache404H%= MZend_Controller_Request_AbstractH&< OZend_Controller_Plugin_PutHandlerH(; SZend_Controller_Plugin_ErrorHandlerH": GZend_Controller_Plugin_BrokerH'9 QZend_Controller_Plugin_ActionStackH$8 KZend_Controller_Plugin_AbstractH7 7Zend_Controller_FrontH6 ?Zend_Controller_ExceptionH(5 SZend_Controller_Dispatcher_StandardH)4 UZend_Controller_Dispatcher_ExceptionH(3 SZend_Controller_Dispatcher_AbstractH2 9Zend_Controller_ActionH(1 SZend_Controller_Action_HelperBrokerH60 oZend_Controller_Action_HelperBroker_PriorityStackH// aZend_Controller_Action_Helper_ViewRendererH&. OZend_Controller_Action_Helper_UrlH-- ]Zend_Controller_Action_Helper_RedirectorH', QZend_Controller_Action_Helper_JsonH1+ eZend_Controller_Action_Helper_FlashMessengerH0* cZend_Controller_Action_Helper_ContextSwitchH() SZend_Controller_Action_Helper_CacheH   b  Y2{dHW)pL&|W-


{
N
				t	L	%|eDmFvIT(wR%{U+bK+qD3              )t UZend_EventManager_SharedEventManagerH)s UZend_EventManager_ResponseCollectionHr SplStackH)q UZend_EventManager_GlobalEventManagerH"p GZend_EventManager_FilterChainH,o [Zend_EventManager_Filter_FilterIteratorH9n uZend_EventManager_Exception_InvalidArgumentExceptionH#m IZend_EventManager_EventManagerHl ;Zend_EventManager_EventHk )Zend_Dom_QueryHj 7Zend_Dom_Query_ResultHi =Zend_Dom_Query_Css2XpathHh 1Zend_Dom_ExceptionHg Zend_DojoH)f UZend_Dojo_View_Helper_VerticalSliderH,e [Zend_Dojo_View_Helper_ValidationTextBoxH&d OZend_Dojo_View_Helper_TimeTextBoxH"c GZend_Dojo_View_Helper_TextBoxH#b IZend_Dojo_View_Helper_TextareaH'a QZend_Dojo_View_Helper_TabContainerH'` QZend_Dojo_View_Helper_SubmitButtonH)_ UZend_Dojo_View_Helper_StackContainerH)^ UZend_Dojo_View_Helper_SplitContainerH!] EZend_Dojo_View_Helper_SliderH)\ UZend_Dojo_View_Helper_SimpleTextareaH&[ OZend_Dojo_View_Helper_RadioButtonH*Z WZend_Dojo_View_Helper_PasswordTextBoxH(Y SZend_Dojo_View_Helper_NumberTextBoxH(X SZend_Dojo_View_Helper_NumberSpinnerH+W YZend_Dojo_View_Helper_HorizontalSliderHV AZend_Dojo_View_Helper_FormH*U WZend_Dojo_View_Helper_FilteringSelectH!T EZend_Dojo_View_Helper_EditorHS AZend_Dojo_View_Helper_DojoH)R UZend_Dojo_View_Helper_Dojo_ContainerH)Q UZend_Dojo_View_Helper_DijitContainerH P CZend_Dojo_View_Helper_DijitH&O OZend_Dojo_View_Helper_DateTextBoxH&N OZend_Dojo_View_Helper_CustomDijitH*M WZend_Dojo_View_Helper_CurrencyTextBoxH&L OZend_Dojo_View_Helper_ContentPaneH#K IZend_Dojo_View_Helper_ComboBoxH#J IZend_Dojo_View_Helper_CheckBoxH!I EZend_Dojo_View_Helper_ButtonH*H WZend_Dojo_View_Helper_BorderContainerH(G SZend_Dojo_View_Helper_AccordionPaneH-F ]Zend_Dojo_View_Helper_AccordionContainerHE =Zend_Dojo_View_ExceptionHD )Zend_Dojo_FormHC 9Zend_Dojo_Form_SubFormH*B WZend_Dojo_Form_Element_VerticalSliderH-A ]Zend_Dojo_Form_Element_ValidationTextBoxH'@ QZend_Dojo_Form_Element_TimeTextBoxH#? IZend_Dojo_Form_Element_TextBoxH$> KZend_Dojo_Form_Element_TextareaH(= SZend_Dojo_Form_Element_SubmitButtonH"< GZend_Dojo_Form_Element_SliderH*; WZend_Dojo_Form_Element_SimpleTextareaH': QZend_Dojo_Form_Element_RadioButtonH+9 YZend_Dojo_Form_Element_PasswordTextBoxH)8 UZend_Dojo_Form_Element_NumberTextBoxH)7 UZend_Dojo_Form_Element_NumberSpinnerH,6 [Zend_Dojo_Form_Element_HorizontalSliderH+5 YZend_Dojo_Form_Element_FilteringSelectH"4 GZend_Dojo_Form_Element_EditorH&3 OZend_Dojo_Form_Element_DijitMultiH!2 EZend_Dojo_Form_Element_DijitH'1 QZend_Dojo_Form_Element_DateTextBoxH+0 YZend_Dojo_Form_Element_CurrencyTextBoxH$/ KZend_Dojo_Form_Element_ComboBoxH$. KZend_Dojo_Form_Element_CheckBoxH"- GZend_Dojo_Form_Element_ButtonH , CZend_Dojo_Form_DisplayGroupH*+ WZend_Dojo_Form_Decorator_TabContainerH,* [Zend_Dojo_Form_Decorator_StackContainerH,) [Zend_Dojo_Form_Decorator_SplitContainerH'( QZend_Dojo_Form_Decorator_DijitFormH*' WZend_Dojo_Form_Decorator_DijitElementH,& [Zend_Dojo_Form_Decorator_DijitContainerH)% UZend_Dojo_Form_Decorator_ContentPaneH-$ ]Zend_Dojo_Form_Decorator_BorderContainerH+# YZend_Dojo_Form_Decorator_AccordionPaneH0" cZend_Dojo_Form_Decorator_AccordionContainerH! 3Zend_Dojo_ExceptionH  )Zend_Dojo_DataH 5Zend_Dojo_BuildLayerH !Zend_DebugH Zend_DbH 'Zend_Db_TableH 5Zend_Db_Table_SelectH# IZend_Db_Table_Select_ExceptionH 5Zend_Db_Table_RowsetH# IZend_Db_Table_Rowset_ExceptionH" GZend_Db_Table_Rowset_AbstractH /Zend_Db_Table_RowH  CZend_Db_Table_Row_ExceptionH AZend_Db_Table_Row_AbstractH ;Zend_Db_Table_ExceptionH   ^  jFoS#i@l5uH


r
?
			}	N	fDTk;g/j5pDxL$wZ9        R =Zend_Filter_Compress_LzfHQ ;Zend_Filter_Compress_GzH*P WZend_Filter_Compress_CompressAbstractHO =Zend_Filter_Compress_Bz2HN 5Zend_Filter_CallbackHM 3Zend_Filter_BooleanHL 5Zend_Filter_BaseNameHK /Zend_Filter_AlphaHJ /Zend_Filter_AlnumHI 1Zend_File_TransferH!H EZend_File_Transfer_ExceptionH$G KZend_File_Transfer_Adapter_HttpH(F SZend_File_Transfer_Adapter_AbstractHE AZend_File_ClassFileLocatorHD Zend_FeedHC -Zend_Feed_WriterHB ;Zend_Feed_Writer_SourceH/A aZend_Feed_Writer_Renderer_RendererAbstractH'@ QZend_Feed_Writer_Renderer_Feed_RssH(? SZend_Feed_Writer_Renderer_Feed_AtomH/> aZend_Feed_Writer_Renderer_Feed_Atom_SourceH5= mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstractH(< SZend_Feed_Writer_Renderer_Entry_RssH); UZend_Feed_Writer_Renderer_Entry_AtomH1: eZend_Feed_Writer_Renderer_Entry_Atom_DeletedH9 7Zend_Feed_Writer_FeedH'8 QZend_Feed_Writer_Feed_FeedAbstractH<7 {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_EntryH86 sZend_Feed_Writer_Extension_Threading_Renderer_EntryH45 kZend_Feed_Writer_Extension_Slash_Renderer_EntryH04 cZend_Feed_Writer_Extension_RendererAbstractH43 kZend_Feed_Writer_Extension_ITunes_Renderer_FeedH52 mZend_Feed_Writer_Extension_ITunes_Renderer_EntryH+1 YZend_Feed_Writer_Extension_ITunes_FeedH,0 [Zend_Feed_Writer_Extension_ITunes_EntryH8/ sZend_Feed_Writer_Extension_DublinCore_Renderer_FeedH9. uZend_Feed_Writer_Extension_DublinCore_Renderer_EntryH6- oZend_Feed_Writer_Extension_Content_Renderer_EntryH2, gZend_Feed_Writer_Extension_Atom_Renderer_FeedH6+ oZend_Feed_Writer_Exception_InvalidMethodExceptionH* 9Zend_Feed_Writer_EntryH) =Zend_Feed_Writer_DeletedH( 'Zend_Feed_RssH' -Zend_Feed_ReaderH& =Zend_Feed_Reader_FeedSetH"% GZend_Feed_Reader_FeedAbstractH$ ?Zend_Feed_Reader_Feed_RssH# AZend_Feed_Reader_Feed_AtomH&" OZend_Feed_Reader_Feed_Atom_SourceH3! iZend_Feed_Reader_Extension_WellFormedWeb_EntryH,  [Zend_Feed_Reader_Extension_Thread_EntryH0 cZend_Feed_Reader_Extension_Syndication_FeedH+ YZend_Feed_Reader_Extension_Slash_EntryH, [Zend_Feed_Reader_Extension_Podcast_FeedH- ]Zend_Feed_Reader_Extension_Podcast_EntryH, [Zend_Feed_Reader_Extension_FeedAbstractH- ]Zend_Feed_Reader_Extension_EntryAbstractH/ aZend_Feed_Reader_Extension_DublinCore_FeedH0 cZend_Feed_Reader_Extension_DublinCore_EntryH4 kZend_Feed_Reader_Extension_CreativeCommons_FeedH5 mZend_Feed_Reader_Extension_CreativeCommons_EntryH- ]Zend_Feed_Reader_Extension_Content_EntryH) UZend_Feed_Reader_Extension_Atom_FeedH* WZend_Feed_Reader_Extension_Atom_EntryH# IZend_Feed_Reader_EntryAbstractH AZend_Feed_Reader_Entry_RssH  CZend_Feed_Reader_Entry_AtomH  CZend_Feed_Reader_CollectionH3 iZend_Feed_Reader_Collection_CollectionAbstractH) UZend_Feed_Reader_Collection_CategoryH' QZend_Feed_Reader_Collection_AuthorH 9Zend_Feed_PubsubhubbubH&
 OZend_Feed_Pubsubhubbub_SubscriberH/	 aZend_Feed_Pubsubhubbub_Subscriber_CallbackH% MZend_Feed_Pubsubhubbub_PublisherH. _Zend_Feed_Pubsubhubbub_Model_SubscriptionH/ aZend_Feed_Pubsubhubbub_Model_ModelAbstractH( SZend_Feed_Pubsubhubbub_HttpResponseH% MZend_Feed_Pubsubhubbub_ExceptionH, [Zend_Feed_Pubsubhubbub_CallbackAbstractH 3Zend_Feed_ExceptionH 3Zend_Feed_Entry_RssH  5Zend_Feed_Entry_AtomH =Zend_Feed_Entry_AbstractH~ /Zend_Feed_ElementH} /Zend_Feed_BuilderH| =Zend_Feed_Builder_HeaderH${ KZend_Feed_Builder_Header_ItunesH z CZend_Feed_Builder_ExceptionHy ;Zend_Feed_Builder_EntryHx )Zend_Feed_AtomHw 1Zend_Feed_AbstractHv )Zend_ExceptionH)u UZend_EventManager_StaticEventManagerH   l  aE*pO,xN$kI+|S)



x
I
					d	;	~Y8_3_<yQ+gD$
oE~P e>                  > 5Zend_Gdata_App_EntryH,= [Zend_Gdata_App_CaptchaRequiredExceptionH#< IZend_Gdata_App_BaseMediaSourceH; 3Zend_Gdata_App_BaseH*: WZend_Gdata_App_BadMethodCallExceptionH!9 EZend_Gdata_App_AuthExceptionH8 5Zend_Gdata_AnalyticsH+7 YZend_Gdata_Analytics_Extension_TableIdH,6 [Zend_Gdata_Analytics_Extension_PropertyH*5 WZend_Gdata_Analytics_Extension_MetricH4 ?Zend_Gdata_Analytics_GoalH-3 ]Zend_Gdata_Analytics_Extension_DimensionH#2 IZend_Gdata_Analytics_DataQueryH"1 GZend_Gdata_Analytics_DataFeedH#0 IZend_Gdata_Analytics_DataEntryH&/ OZend_Gdata_Analytics_AccountQueryH%. MZend_Gdata_Analytics_AccountFeedH&- OZend_Gdata_Analytics_AccountEntryH, Zend_FormH+ /Zend_Form_SubFormH* 3Zend_Form_ExceptionH) /Zend_Form_ElementH( ;Zend_Form_Element_XhtmlH' AZend_Form_Element_TextareaH& 9Zend_Form_Element_TextH% =Zend_Form_Element_SubmitH$ =Zend_Form_Element_SelectH# ;Zend_Form_Element_ResetH" ;Zend_Form_Element_RadioH! AZend_Form_Element_PasswordH"  GZend_Form_Element_MultiselectH$ KZend_Form_Element_MultiCheckboxH ;Zend_Form_Element_MultiH ;Zend_Form_Element_ImageH =Zend_Form_Element_HiddenH 9Zend_Form_Element_HashH 9Zend_Form_Element_FileH  CZend_Form_Element_ExceptionH AZend_Form_Element_CheckboxH ?Zend_Form_Element_CaptchaH =Zend_Form_Element_ButtonH 9Zend_Form_DisplayGroupH# IZend_Form_Decorator_ViewScriptH# IZend_Form_Decorator_ViewHelperH  CZend_Form_Decorator_TooltipH( SZend_Form_Decorator_PrepareElementsH ?Zend_Form_Decorator_LabelH ?Zend_Form_Decorator_ImageH  CZend_Form_Decorator_HtmlTagH# IZend_Form_Decorator_FormErrorsH% MZend_Form_Decorator_FormElementsH =Zend_Form_Decorator_FormH
 =Zend_Form_Decorator_FileH!	 EZend_Form_Decorator_FieldsetH" GZend_Form_Decorator_ExceptionH AZend_Form_Decorator_ErrorsH$ KZend_Form_Decorator_DtDdWrapperH$ KZend_Form_Decorator_DescriptionH  CZend_Form_Decorator_CaptchaH% MZend_Form_Decorator_Captcha_WordH* WZend_Form_Decorator_Captcha_ReCaptchaH! EZend_Form_Decorator_CallbackH!  EZend_Form_Decorator_AbstractH #Zend_FilterH+~ YZend_Filter_Word_UnderscoreToSeparatorH&} OZend_Filter_Word_UnderscoreToDashH+| YZend_Filter_Word_UnderscoreToCamelCaseH*{ WZend_Filter_Word_SeparatorToSeparatorH%z MZend_Filter_Word_SeparatorToDashH*y WZend_Filter_Word_SeparatorToCamelCaseH(x SZend_Filter_Word_Separator_AbstractH&w OZend_Filter_Word_DashToUnderscoreH%v MZend_Filter_Word_DashToSeparatorH%u MZend_Filter_Word_DashToCamelCaseH+t YZend_Filter_Word_CamelCaseToUnderscoreH*s WZend_Filter_Word_CamelCaseToSeparatorH%r MZend_Filter_Word_CamelCaseToDashHq 7Zend_Filter_StripTagsHp ?Zend_Filter_StripNewlinesHo 9Zend_Filter_StringTrimHn ?Zend_Filter_StringToUpperHm ?Zend_Filter_StringToLowerHl 5Zend_Filter_RealPathHk ;Zend_Filter_PregReplaceHj -Zend_Filter_NullH&i OZend_Filter_NormalizedToLocalizedH&h OZend_Filter_LocalizedToNormalizedHg +Zend_Filter_IntHf /Zend_Filter_InputHe 7Zend_Filter_InflectorHd =Zend_Filter_HtmlEntitiesHc AZend_Filter_File_UpperCaseHb ;Zend_Filter_File_RenameHa AZend_Filter_File_LowerCaseH` =Zend_Filter_File_EncryptH_ =Zend_Filter_File_DecryptH^ 7Zend_Filter_ExceptionH] 3Zend_Filter_EncryptH \ CZend_Filter_Encrypt_OpensslH[ AZend_Filter_Encrypt_McryptHZ +Zend_Filter_DirHY 1Zend_Filter_DigitsHX 3Zend_Filter_DecryptHW 9Zend_Filter_DecompressHV 5Zend_Filter_CompressHU =Zend_Filter_Compress_ZipHT =Zend_Filter_Compress_TarHS =Zend_Filter_Compress_RarH   _  d7oD`5lEkF



t
X
0
				{	J	g6Y3V'[5dLY(iK2h@                                     " GZend_Gdata_Exif_Extension_IsoH, [Zend_Gdata_Exif_Extension_ImageUniqueIdH$ KZend_Gdata_Exif_Extension_FStopH* WZend_Gdata_Exif_Extension_FocalLengthH$ KZend_Gdata_Exif_Extension_FlashH' QZend_Gdata_Exif_Extension_ExposureH' QZend_Gdata_Exif_Extension_DistanceH 7Zend_Gdata_Exif_EntryH -Zend_Gdata_EntryH 7Zend_Gdata_DublinCoreH* WZend_Gdata_DublinCore_Extension_TitleH, [Zend_Gdata_DublinCore_Extension_SubjectH+ YZend_Gdata_DublinCore_Extension_RightsH. _Zend_Gdata_DublinCore_Extension_PublisherH- ]Zend_Gdata_DublinCore_Extension_LanguageH/ aZend_Gdata_DublinCore_Extension_IdentifierH+ YZend_Gdata_DublinCore_Extension_FormatH0 cZend_Gdata_DublinCore_Extension_DescriptionH) UZend_Gdata_DublinCore_Extension_DateH,
 [Zend_Gdata_DublinCore_Extension_CreatorH	 +Zend_Gdata_DocsH 7Zend_Gdata_Docs_QueryH% MZend_Gdata_Docs_DocumentListFeedH& OZend_Gdata_Docs_DocumentListEntryH 9Zend_Gdata_ClientLoginH 3Zend_Gdata_CalendarH! EZend_Gdata_Calendar_ListFeedH" GZend_Gdata_Calendar_ListEntryH- ]Zend_Gdata_Calendar_Extension_WebContentH+  YZend_Gdata_Calendar_Extension_TimezoneH9 uZend_Gdata_Calendar_Extension_SendEventNotificationsH+~ YZend_Gdata_Calendar_Extension_SelectedH+} YZend_Gdata_Calendar_Extension_QuickAddH'| QZend_Gdata_Calendar_Extension_LinkH){ UZend_Gdata_Calendar_Extension_HiddenH(z SZend_Gdata_Calendar_Extension_ColorH.y _Zend_Gdata_Calendar_Extension_AccessLevelH#x IZend_Gdata_Calendar_EventQueryH"w GZend_Gdata_Calendar_EventFeedH#v IZend_Gdata_Calendar_EventEntryHu -Zend_Gdata_BooksH!t EZend_Gdata_Books_VolumeQueryH s CZend_Gdata_Books_VolumeFeedH!r EZend_Gdata_Books_VolumeEntryH+q YZend_Gdata_Books_Extension_ViewabilityH-p ]Zend_Gdata_Books_Extension_ThumbnailLinkH&o OZend_Gdata_Books_Extension_ReviewH+n YZend_Gdata_Books_Extension_PreviewLinkH(m SZend_Gdata_Books_Extension_InfoLinkH-l ]Zend_Gdata_Books_Extension_EmbeddabilityH)k UZend_Gdata_Books_Extension_BooksLinkH-j ]Zend_Gdata_Books_Extension_BooksCategoryH.i _Zend_Gdata_Books_Extension_AnnotationLinkH$h KZend_Gdata_Books_CollectionFeedH%g MZend_Gdata_Books_CollectionEntryHf 1Zend_Gdata_AuthSubHe )Zend_Gdata_AppH$d KZend_Gdata_App_VersionExceptionHc 3Zend_Gdata_App_UtilH#b IZend_Gdata_App_MediaFileSourceHa ?Zend_Gdata_App_MediaEntryH2` gZend_Gdata_App_LoggingHttpClientAdapterSocketH_ AZend_Gdata_App_IOExceptionH,^ [Zend_Gdata_App_InvalidArgumentExceptionH!] EZend_Gdata_App_HttpExceptionH$\ KZend_Gdata_App_FeedSourceParentH#[ IZend_Gdata_App_FeedEntryParentHZ 3Zend_Gdata_App_FeedHY =Zend_Gdata_App_ExtensionH!X EZend_Gdata_App_Extension_UriH%W MZend_Gdata_App_Extension_UpdatedH#V IZend_Gdata_App_Extension_TitleH"U GZend_Gdata_App_Extension_TextH%T MZend_Gdata_App_Extension_SummaryH&S OZend_Gdata_App_Extension_SubtitleH$R KZend_Gdata_App_Extension_SourceH$Q KZend_Gdata_App_Extension_RightsH'P QZend_Gdata_App_Extension_PublishedH$O KZend_Gdata_App_Extension_PersonH"N GZend_Gdata_App_Extension_NameH"M GZend_Gdata_App_Extension_LogoH"L GZend_Gdata_App_Extension_LinkH K CZend_Gdata_App_Extension_IdH"J GZend_Gdata_App_Extension_IconH'I QZend_Gdata_App_Extension_GeneratorH#H IZend_Gdata_App_Extension_EmailH%G MZend_Gdata_App_Extension_ElementH$F KZend_Gdata_App_Extension_EditedH#E IZend_Gdata_App_Extension_DraftH%D MZend_Gdata_App_Extension_ControlH)C UZend_Gdata_App_Extension_ContributorH%B MZend_Gdata_App_Extension_ContentH&A OZend_Gdata_App_Extension_CategoryH$@ KZend_Gdata_App_Extension_AuthorH? =Zend_Gdata_App_ExceptionH   c  cF.b4tI%|T2jB



d
;
				n	K	'	lE!nL)]:tGsM"cE"pAR#                                  0  cZend_Gdata_Media_Extension_MediaRestrictionH+ YZend_Gdata_Media_Extension_MediaRatingH+~ YZend_Gdata_Media_Extension_MediaPlayerH-} ]Zend_Gdata_Media_Extension_MediaKeywordsH)| UZend_Gdata_Media_Extension_MediaHashH*{ WZend_Gdata_Media_Extension_MediaGroupH0z cZend_Gdata_Media_Extension_MediaDescriptionH+y YZend_Gdata_Media_Extension_MediaCreditH.x _Zend_Gdata_Media_Extension_MediaCopyrightH,w [Zend_Gdata_Media_Extension_MediaContentH-v ]Zend_Gdata_Media_Extension_MediaCategoryHu 9Zend_Gdata_Media_EntryHt AZend_Gdata_Kind_EventEntryHs 7Zend_Gdata_HttpClientH*r WZend_Gdata_HttpAdapterStreamingSocketH)q UZend_Gdata_HttpAdapterStreamingProxyHp /Zend_Gdata_HealthHo ;Zend_Gdata_Health_QueryH&n OZend_Gdata_Health_ProfileListFeedH'm QZend_Gdata_Health_ProfileListEntryH"l GZend_Gdata_Health_ProfileFeedH#k IZend_Gdata_Health_ProfileEntryH$j KZend_Gdata_Health_Extension_CcrHi )Zend_Gdata_GeoHh 3Zend_Gdata_Geo_FeedH$g KZend_Gdata_Geo_Extension_GmlPosH&f OZend_Gdata_Geo_Extension_GmlPointH)e UZend_Gdata_Geo_Extension_GeoRssWhereHd 5Zend_Gdata_Geo_EntryHc -Zend_Gdata_GbaseH"b GZend_Gdata_Gbase_SnippetQueryH!a EZend_Gdata_Gbase_SnippetFeedH"` GZend_Gdata_Gbase_SnippetEntryH_ 9Zend_Gdata_Gbase_QueryH^ AZend_Gdata_Gbase_ItemQueryH] ?Zend_Gdata_Gbase_ItemFeedH\ AZend_Gdata_Gbase_ItemEntryH[ 7Zend_Gdata_Gbase_FeedH-Z ]Zend_Gdata_Gbase_Extension_BaseAttributeHY 9Zend_Gdata_Gbase_EntryHX -Zend_Gdata_GappsHW AZend_Gdata_Gapps_UserQueryHV ?Zend_Gdata_Gapps_UserFeedHU AZend_Gdata_Gapps_UserEntryH&T OZend_Gdata_Gapps_ServiceExceptionHS 9Zend_Gdata_Gapps_QueryH R CZend_Gdata_Gapps_OwnerQueryHQ AZend_Gdata_Gapps_OwnerFeedH P CZend_Gdata_Gapps_OwnerEntryH#O IZend_Gdata_Gapps_NicknameQueryH"N GZend_Gdata_Gapps_NicknameFeedH#M IZend_Gdata_Gapps_NicknameEntryH!L EZend_Gdata_Gapps_MemberQueryH K CZend_Gdata_Gapps_MemberFeedH!J EZend_Gdata_Gapps_MemberEntryH I CZend_Gdata_Gapps_GroupQueryHH AZend_Gdata_Gapps_GroupFeedH G CZend_Gdata_Gapps_GroupEntryH%F MZend_Gdata_Gapps_Extension_QuotaH(E SZend_Gdata_Gapps_Extension_PropertyH(D SZend_Gdata_Gapps_Extension_NicknameH$C KZend_Gdata_Gapps_Extension_NameH%B MZend_Gdata_Gapps_Extension_LoginH)A UZend_Gdata_Gapps_Extension_EmailListH@ 9Zend_Gdata_Gapps_ErrorH-? ]Zend_Gdata_Gapps_EmailListRecipientQueryH,> [Zend_Gdata_Gapps_EmailListRecipientFeedH-= ]Zend_Gdata_Gapps_EmailListRecipientEntryH$< KZend_Gdata_Gapps_EmailListQueryH#; IZend_Gdata_Gapps_EmailListFeedH$: KZend_Gdata_Gapps_EmailListEntryH9 +Zend_Gdata_FeedH8 5Zend_Gdata_ExtensionH7 =Zend_Gdata_Extension_WhoH6 AZend_Gdata_Extension_WhereH5 ?Zend_Gdata_Extension_WhenH$4 KZend_Gdata_Extension_VisibilityH&3 OZend_Gdata_Extension_TransparencyH"2 GZend_Gdata_Extension_ReminderH-1 ]Zend_Gdata_Extension_RecurrenceExceptionH$0 KZend_Gdata_Extension_RecurrenceH / CZend_Gdata_Extension_RatingH'. QZend_Gdata_Extension_OriginalEventH0- cZend_Gdata_Extension_OpenSearchTotalResultsH., _Zend_Gdata_Extension_OpenSearchStartIndexH0+ cZend_Gdata_Extension_OpenSearchItemsPerPageH"* GZend_Gdata_Extension_FeedLinkH*) WZend_Gdata_Extension_ExtendedPropertyH%( MZend_Gdata_Extension_EventStatusH#' IZend_Gdata_Extension_EntryLinkH"& GZend_Gdata_Extension_CommentsH&% OZend_Gdata_Extension_AttendeeTypeH($ SZend_Gdata_Extension_AttendeeStatusH# +Zend_Gdata_ExifH" 5Zend_Gdata_Exif_FeedH#! IZend_Gdata_Exif_Extension_TimeH#  IZend_Gdata_Exif_Extension_TagsH$ KZend_Gdata_Exif_Extension_ModelH# IZend_Gdata_Exif_Extension_MakeH   [  sU<mFi8M$f9



U
'				}	X	4	gN$tA`/Y1	f=X*tF[*                       '[ QZend_Gdata_YouTube_Extension_MusicH(Z SZend_Gdata_YouTube_Extension_MoviesH-Y ]Zend_Gdata_YouTube_Extension_MediaRatingH,X [Zend_Gdata_YouTube_Extension_MediaGroupH-W ]Zend_Gdata_YouTube_Extension_MediaCreditH.V _Zend_Gdata_YouTube_Extension_MediaContentH*U WZend_Gdata_YouTube_Extension_LocationH&T OZend_Gdata_YouTube_Extension_LinkH*S WZend_Gdata_YouTube_Extension_LastNameH*R WZend_Gdata_YouTube_Extension_HometownH)Q UZend_Gdata_YouTube_Extension_HobbiesH(P SZend_Gdata_YouTube_Extension_GenderH+O YZend_Gdata_YouTube_Extension_FirstNameH*N WZend_Gdata_YouTube_Extension_DurationH-M ]Zend_Gdata_YouTube_Extension_DescriptionH+L YZend_Gdata_YouTube_Extension_CountHintH)K UZend_Gdata_YouTube_Extension_ControlH)J UZend_Gdata_YouTube_Extension_CompanyH'I QZend_Gdata_YouTube_Extension_BooksH%H MZend_Gdata_YouTube_Extension_AgeH)G UZend_Gdata_YouTube_Extension_AboutMeH#F IZend_Gdata_YouTube_ContactFeedH$E KZend_Gdata_YouTube_ContactEntryH#D IZend_Gdata_YouTube_CommentFeedH$C KZend_Gdata_YouTube_CommentEntryH$B KZend_Gdata_YouTube_ActivityFeedH%A MZend_Gdata_YouTube_ActivityEntryH@ ;Zend_Gdata_SpreadsheetsH*? WZend_Gdata_Spreadsheets_WorksheetFeedH+> YZend_Gdata_Spreadsheets_WorksheetEntryH,= [Zend_Gdata_Spreadsheets_SpreadsheetFeedH-< ]Zend_Gdata_Spreadsheets_SpreadsheetEntryH&; OZend_Gdata_Spreadsheets_ListQueryH%: MZend_Gdata_Spreadsheets_ListFeedH&9 OZend_Gdata_Spreadsheets_ListEntryH/8 aZend_Gdata_Spreadsheets_Extension_RowCountH-7 ]Zend_Gdata_Spreadsheets_Extension_CustomH/6 aZend_Gdata_Spreadsheets_Extension_ColCountH+5 YZend_Gdata_Spreadsheets_Extension_CellH*4 WZend_Gdata_Spreadsheets_DocumentQueryH&3 OZend_Gdata_Spreadsheets_CellQueryH%2 MZend_Gdata_Spreadsheets_CellFeedH&1 OZend_Gdata_Spreadsheets_CellEntryH0 -Zend_Gdata_QueryH/ /Zend_Gdata_PhotosH . CZend_Gdata_Photos_UserQueryH- AZend_Gdata_Photos_UserFeedH , CZend_Gdata_Photos_UserEntryH+ AZend_Gdata_Photos_TagEntryH!* EZend_Gdata_Photos_PhotoQueryH ) CZend_Gdata_Photos_PhotoFeedH!( EZend_Gdata_Photos_PhotoEntryH&' OZend_Gdata_Photos_Extension_WidthH'& QZend_Gdata_Photos_Extension_WeightH(% SZend_Gdata_Photos_Extension_VersionH%$ MZend_Gdata_Photos_Extension_UserH*# WZend_Gdata_Photos_Extension_TimestampH*" WZend_Gdata_Photos_Extension_ThumbnailH%! MZend_Gdata_Photos_Extension_SizeH)  UZend_Gdata_Photos_Extension_RotationH+ YZend_Gdata_Photos_Extension_QuotaLimitH- ]Zend_Gdata_Photos_Extension_QuotaCurrentH) UZend_Gdata_Photos_Extension_PositionH( SZend_Gdata_Photos_Extension_PhotoIdH3 iZend_Gdata_Photos_Extension_NumPhotosRemainingH* WZend_Gdata_Photos_Extension_NumPhotosH) UZend_Gdata_Photos_Extension_NicknameH% MZend_Gdata_Photos_Extension_NameH2 gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumH) UZend_Gdata_Photos_Extension_LocationH# IZend_Gdata_Photos_Extension_IdH' QZend_Gdata_Photos_Extension_HeightH2 gZend_Gdata_Photos_Extension_CommentingEnabledH- ]Zend_Gdata_Photos_Extension_CommentCountH' QZend_Gdata_Photos_Extension_ClientH) UZend_Gdata_Photos_Extension_ChecksumH* WZend_Gdata_Photos_Extension_BytesUsedH( SZend_Gdata_Photos_Extension_AlbumIdH' QZend_Gdata_Photos_Extension_AccessH# IZend_Gdata_Photos_CommentEntryH! EZend_Gdata_Photos_AlbumQueryH 
 CZend_Gdata_Photos_AlbumFeedH!	 EZend_Gdata_Photos_AlbumEntryH 3Zend_Gdata_MimeFileH ?Zend_Gdata_MimeBodyStringH AZend_Gdata_MediaMimeStreamH -Zend_Gdata_MediaH 7Zend_Gdata_Media_FeedH* WZend_Gdata_Media_Extension_MediaTitleH. _Zend_Gdata_Media_Extension_MediaThumbnailH) UZend_Gdata_Media_Extension_MediaTextH   f  s@\*rFlG!m@



w
\
I
#					`	G	.	cA&oM'R1yGhQ2`;t`DdG$                  A 7Zend_Ldap_Filter_MaskH@ =Zend_Ldap_Filter_LogicalH? AZend_Ldap_Filter_ExceptionH> 5Zend_Ldap_Filter_AndH= ?Zend_Ldap_Filter_AbstractH< 3Zend_Ldap_ExceptionH; %Zend_Ldap_DnH: 3Zend_Ldap_ConverterH"9 GZend_Ldap_Converter_ExceptionH8 5Zend_Ldap_CollectionH*7 WZend_Ldap_Collection_Iterator_DefaultH6 3Zend_Ldap_AttributeH5 #Zend_LayoutH4 7Zend_Layout_ExceptionH)3 UZend_Layout_Controller_Plugin_LayoutH02 cZend_Layout_Controller_Action_Helper_LayoutH1 Zend_JsonH0 -Zend_Json_ServerH/ 5Zend_Json_Server_SmdH!. EZend_Json_Server_Smd_ServiceH- ?Zend_Json_Server_ResponseH#, IZend_Json_Server_Response_HttpH+ =Zend_Json_Server_RequestH"* GZend_Json_Server_Request_HttpH) AZend_Json_Server_ExceptionH( 9Zend_Json_Server_ErrorH' 9Zend_Json_Server_CacheH& )Zend_Json_ExprH% 3Zend_Json_ExceptionH$ /Zend_Json_EncoderH# /Zend_Json_DecoderH" 3Zend_Http_UserAgentH"! GZend_Http_UserAgent_ValidatorH  =Zend_Http_UserAgent_TextH( SZend_Http_UserAgent_Storage_SessionH. _Zend_Http_UserAgent_Storage_NonPersistentH* WZend_Http_UserAgent_Storage_ExceptionH =Zend_Http_UserAgent_SpamH ?Zend_Http_UserAgent_ProbeH  CZend_Http_UserAgent_OfflineH AZend_Http_UserAgent_MobileH =Zend_Http_UserAgent_FeedH+ YZend_Http_UserAgent_Features_ExceptionH3 iZend_Http_UserAgent_Features_Adapter_TeraWurflH5 mZend_Http_UserAgent_Features_Adapter_DeviceAtlasH2 gZend_Http_UserAgent_Features_Adapter_BrowscapH" GZend_Http_UserAgent_ExceptionH ?Zend_Http_UserAgent_EmailH  CZend_Http_UserAgent_DesktopH  CZend_Http_UserAgent_ConsoleH  CZend_Http_UserAgent_CheckerH ;Zend_Http_UserAgent_BotH' QZend_Http_UserAgent_AbstractDeviceH 1Zend_Http_ResponseH ?Zend_Http_Response_StreamH
 AZend_Http_Header_SetCookieH0	 cZend_Http_Header_Exception_RuntimeExceptionH8 sZend_Http_Header_Exception_InvalidArgumentExceptionH 3Zend_Http_ExceptionH 3Zend_Http_CookieJarH -Zend_Http_CookieH -Zend_Http_ClientH AZend_Http_Client_ExceptionH" GZend_Http_Client_Adapter_TestH$ KZend_Http_Client_Adapter_SocketH#  IZend_Http_Client_Adapter_ProxyH' QZend_Http_Client_Adapter_ExceptionH"~ GZend_Http_Client_Adapter_CurlH} !Zend_GdataH| 1Zend_Gdata_YouTubeH"{ GZend_Gdata_YouTube_VideoQueryH!z EZend_Gdata_YouTube_VideoFeedH"y GZend_Gdata_YouTube_VideoEntryH(x SZend_Gdata_YouTube_UserProfileEntryH(w SZend_Gdata_YouTube_SubscriptionFeedH)v UZend_Gdata_YouTube_SubscriptionEntryH)u UZend_Gdata_YouTube_PlaylistVideoFeedH*t WZend_Gdata_YouTube_PlaylistVideoEntryH(s SZend_Gdata_YouTube_PlaylistListFeedH)r UZend_Gdata_YouTube_PlaylistListEntryH"q GZend_Gdata_YouTube_MediaEntryH!p EZend_Gdata_YouTube_InboxFeedH"o GZend_Gdata_YouTube_InboxEntryH)n UZend_Gdata_YouTube_Extension_VideoIdH*m WZend_Gdata_YouTube_Extension_UsernameH*l WZend_Gdata_YouTube_Extension_UploadedH'k QZend_Gdata_YouTube_Extension_TokenH(j SZend_Gdata_YouTube_Extension_StatusH,i [Zend_Gdata_YouTube_Extension_StatisticsH'h QZend_Gdata_YouTube_Extension_StateH(g SZend_Gdata_YouTube_Extension_SchoolH-f ]Zend_Gdata_YouTube_Extension_ReleaseDateH.e _Zend_Gdata_YouTube_Extension_RelationshipH*d WZend_Gdata_YouTube_Extension_RecordedH&c OZend_Gdata_YouTube_Extension_RacyH-b ]Zend_Gdata_YouTube_Extension_QueryStringH)a UZend_Gdata_YouTube_Extension_PrivateH*` WZend_Gdata_YouTube_Extension_PositionH/_ aZend_Gdata_YouTube_Extension_PlaylistTitleH,^ [Zend_Gdata_YouTube_Extension_PlaylistIdH,] [Zend_Gdata_YouTube_Extension_OccupationH)\ UZend_Gdata_YouTube_Extension_NoEmbedH   r  oO'e7i6[4lX3





p
U
4
					i	J	)	xY5$xS3pM) xY:dC1~O)rT@" jF)     3 3Zend_Measure_EnergyH2 5Zend_Measure_DensityH1 5Zend_Measure_CurrentH 0 CZend_Measure_Cooking_WeightH / CZend_Measure_Cooking_VolumeH. =Zend_Measure_CapacitanceH- 3Zend_Measure_BinaryH, /Zend_Measure_AreaH+ 1Zend_Measure_AngleH* ?Zend_Measure_AccelerationH) 7Zend_Measure_AbstractH( #Zend_MarkupH' 7Zend_Markup_TokenListH& /Zend_Markup_TokenH*% WZend_Markup_Renderer_RendererAbstractH$ ?Zend_Markup_Renderer_HtmlH"# GZend_Markup_Renderer_Html_UrlH#" IZend_Markup_Renderer_Html_ListH"! GZend_Markup_Renderer_Html_ImgH+  YZend_Markup_Renderer_Html_HtmlAbstractH# IZend_Markup_Renderer_Html_CodeH# IZend_Markup_Renderer_ExceptionH! EZend_Markup_Parser_ExceptionH ?Zend_Markup_Parser_BbcodeH 7Zend_Markup_ExceptionH Zend_MailH =Zend_Mail_Transport_SmtpH! EZend_Mail_Transport_SendmailH =Zend_Mail_Transport_FileH" GZend_Mail_Transport_ExceptionH! EZend_Mail_Transport_AbstractH /Zend_Mail_StorageH' QZend_Mail_Storage_Writable_MaildirH 9Zend_Mail_Storage_Pop3H 9Zend_Mail_Storage_MboxH ?Zend_Mail_Storage_MaildirH 9Zend_Mail_Storage_ImapH =Zend_Mail_Storage_FolderH" GZend_Mail_Storage_Folder_MboxH% MZend_Mail_Storage_Folder_MaildirH  CZend_Mail_Storage_ExceptionH
 AZend_Mail_Storage_AbstractH	 ;Zend_Mail_Protocol_SmtpH' QZend_Mail_Protocol_Smtp_Auth_PlainH' QZend_Mail_Protocol_Smtp_Auth_LoginH) UZend_Mail_Protocol_Smtp_Auth_Crammd5H ;Zend_Mail_Protocol_Pop3H ;Zend_Mail_Protocol_ImapH! EZend_Mail_Protocol_ExceptionH  CZend_Mail_Protocol_AbstractH )Zend_Mail_PartH  3Zend_Mail_Part_FileH /Zend_Mail_MessageH~ 9Zend_Mail_Message_FileH} 3Zend_Mail_ExceptionH| Zend_LogH { CZend_Log_Writer_ZendMonitorHz 9Zend_Log_Writer_SyslogHy 9Zend_Log_Writer_StreamHx 5Zend_Log_Writer_NullHw 5Zend_Log_Writer_MockHv 5Zend_Log_Writer_MailHu ;Zend_Log_Writer_FirebugHt 1Zend_Log_Writer_DbHs =Zend_Log_Writer_AbstractHr 9Zend_Log_Formatter_XmlHq ?Zend_Log_Formatter_SimpleHp AZend_Log_Formatter_FirebugH o CZend_Log_Formatter_AbstractHn =Zend_Log_Filter_SuppressHm =Zend_Log_Filter_PriorityHl ;Zend_Log_Filter_MessageHk =Zend_Log_Filter_AbstractHj 1Zend_Log_ExceptionHi #Zend_LocaleHh -Zend_Locale_MathHg =Zend_Locale_Math_PhpMathHf AZend_Locale_Math_ExceptionHe 1Zend_Locale_FormatHd 7Zend_Locale_ExceptionHc -Zend_Locale_DataH!b EZend_Locale_Data_TranslationHa #Zend_LoaderH#` IZend_Loader_StandardAutoloaderH_ =Zend_Loader_PluginLoaderH'^ QZend_Loader_PluginLoader_ExceptionH] 7Zend_Loader_ExceptionH3\ iZend_Loader_Exception_InvalidArgumentExceptionH#[ IZend_Loader_ClassMapAutoloaderH"Z GZend_Loader_AutoloaderFactoryHY 9Zend_Loader_AutoloaderH$X KZend_Loader_Autoloader_ResourceHW Zend_LdapHV )Zend_Ldap_NodeHU 7Zend_Ldap_Node_SchemaH#T IZend_Ldap_Node_Schema_OpenLdapH/S aZend_Ldap_Node_Schema_ObjectClass_OpenLdapH6R oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectoryHQ AZend_Ldap_Node_Schema_ItemH1P eZend_Ldap_Node_Schema_AttributeType_OpenLdapH8O sZend_Ldap_Node_Schema_AttributeType_ActiveDirectoryH*N WZend_Ldap_Node_Schema_ActiveDirectoryHM 9Zend_Ldap_Node_RootDseH$L KZend_Ldap_Node_RootDse_OpenLdapH&K OZend_Ldap_Node_RootDse_eDirectoryH+J YZend_Ldap_Node_RootDse_ActiveDirectoryHI ?Zend_Ldap_Node_CollectionH$H KZend_Ldap_Node_ChildrenIteratorHG ;Zend_Ldap_Node_AbstractHF 9Zend_Ldap_Ldif_EncoderHE -Zend_Ldap_FilterHD ;Zend_Ldap_Filter_StringHC 3Zend_Ldap_Filter_OrHB 5Zend_Ldap_Filter_NotH   o	 gH&
{Z@$wR,qW@.e3



k
6
				{	V	,	kC!nT8pN'kR?tJ%[.i;gI,	                                   " AZend_Pdf_Action_ImportDataH! 5Zend_Pdf_Action_HideH  7Zend_Pdf_Action_GoToRH 7Zend_Pdf_Action_GoToEH AZend_Pdf_Action_GoTo3DViewH 5Zend_Pdf_Action_GoToH )Zend_PaginatorH- ]Zend_Paginator_SerializableLimitIteratorH* WZend_Paginator_ScrollingStyle_SlidingH* WZend_Paginator_ScrollingStyle_JumpingH* WZend_Paginator_ScrollingStyle_ElasticH& OZend_Paginator_ScrollingStyle_AllH =Zend_Paginator_ExceptionH  CZend_Paginator_Adapter_NullH$ KZend_Paginator_Adapter_IteratorH) UZend_Paginator_Adapter_DbTableSelectH$ KZend_Paginator_Adapter_DbSelectH! EZend_Paginator_Adapter_ArrayH #Zend_OpenIdH 5Zend_OpenId_ProviderH ?Zend_OpenId_Provider_UserH& OZend_OpenId_Provider_User_SessionH! EZend_OpenId_Provider_StorageH& OZend_OpenId_Provider_Storage_FileH
 7Zend_OpenId_ExtensionH	 AZend_OpenId_Extension_SregH 7Zend_OpenId_ExceptionH 5Zend_OpenId_ConsumerH! EZend_OpenId_Consumer_StorageH& OZend_OpenId_Consumer_Storage_FileH !Zend_OauthH -Zend_Oauth_TokenH =Zend_Oauth_Token_RequestH' QZend_Oauth_Token_AuthorizedRequestH  ;Zend_Oauth_Token_AccessH+ YZend_Oauth_Signature_SignatureAbstractH~ =Zend_Oauth_Signature_RsaH#} IZend_Oauth_Signature_PlaintextH| ?Zend_Oauth_Signature_HmacH{ +Zend_Oauth_HttpHz ;Zend_Oauth_Http_UtilityH&y OZend_Oauth_Http_UserAuthorizationH!x EZend_Oauth_Http_RequestTokenH w CZend_Oauth_Http_AccessTokenHv 5Zend_Oauth_ExceptionHu 3Zend_Oauth_ConsumerHt /Zend_Oauth_ConfigHs /Zend_Oauth_ClientHr +Zend_NavigationHq 5Zend_Navigation_PageHp =Zend_Navigation_Page_UriHo =Zend_Navigation_Page_MvcHn ?Zend_Navigation_ExceptionHm ?Zend_Navigation_ContainerH$l KZend_Mobile_Push_Test_ApnsProxyH"k GZend_Mobile_Push_Response_GcmHj 7Zend_Mobile_Push_MpnsH"i GZend_Mobile_Push_Message_MpnsH(h SZend_Mobile_Push_Message_Mpns_ToastH'g QZend_Mobile_Push_Message_Mpns_TileH&f OZend_Mobile_Push_Message_Mpns_RawH!e EZend_Mobile_Push_Message_GcmH'd QZend_Mobile_Push_Message_ExceptionH"c GZend_Mobile_Push_Message_ApnsH&b OZend_Mobile_Push_Message_AbstractHa 5Zend_Mobile_Push_GcmH` AZend_Mobile_Push_ExceptionH1_ eZend_Mobile_Push_Exception_ServerUnavailableH-^ ]Zend_Mobile_Push_Exception_QuotaExceededH,] [Zend_Mobile_Push_Exception_InvalidTopicH,\ [Zend_Mobile_Push_Exception_InvalidTokenH3[ iZend_Mobile_Push_Exception_InvalidRegistrationH.Z _Zend_Mobile_Push_Exception_InvalidPayloadH0Y cZend_Mobile_Push_Exception_InvalidAuthTokenH3X iZend_Mobile_Push_Exception_DeviceQuotaExceededHW 7Zend_Mobile_Push_ApnsHV ?Zend_Mobile_Push_AbstractHU 7Zend_Mobile_ExceptionHT Zend_MimeHS )Zend_Mime_PartHR /Zend_Mime_MessageHQ 3Zend_Mime_ExceptionHP -Zend_Mime_DecodeHO #Zend_MemoryHN /Zend_Memory_ValueHM 3Zend_Memory_ManagerHL 7Zend_Memory_ExceptionHK 7Zend_Memory_ContainerH"J GZend_Memory_Container_MovableH!I EZend_Memory_Container_LockedH!H EZend_Memory_AccessControllerHG 3Zend_Measure_WeightHF 3Zend_Measure_VolumeH%E MZend_Measure_Viscosity_KinematicH#D IZend_Measure_Viscosity_DynamicHC 3Zend_Measure_TorqueHB /Zend_Measure_TimeHA =Zend_Measure_TemperatureH@ 1Zend_Measure_SpeedH? 7Zend_Measure_PressureH> 1Zend_Measure_PowerH= 3Zend_Measure_NumberH< 9Zend_Measure_LightnessH; 3Zend_Measure_LengthH: ?Zend_Measure_IlluminationH9 9Zend_Measure_FrequencyH8 1Zend_Measure_ForceH7 =Zend_Measure_Flow_VolumeH6 9Zend_Measure_Flow_MoleH5 9Zend_Measure_Flow_MassH4 9Zend_Measure_ExceptionH   g  `>|`H{c9{_D-L




`
C
$
					[	;	}]De?cB}cB"	|X(tGUZ$                      5	 mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldH2 gZend_Pdf_Resource_Font_Simple_Standard_SymbolH< {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueHA Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliqueH9 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldH5 mZend_Pdf_Resource_Font_Simple_Standard_HelveticaH: wZend_Pdf_Resource_Font_Simple_Standard_CourierObliqueH> Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliqueH7 qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldH3  iZend_Pdf_Resource_Font_Simple_Standard_CourierH) UZend_Pdf_Resource_Font_Simple_ParsedH2~ gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypeH*} WZend_Pdf_Resource_Font_FontDescriptorH%| MZend_Pdf_Resource_Font_ExtractedH#{ IZend_Pdf_Resource_Font_CidFontH,z [Zend_Pdf_Resource_Font_CidFont_TrueTypeH y CZend_Pdf_Resource_ExtractorH$x KZend_Pdf_Resource_ContentStreamH3w iZend_Pdf_RecursivelyIteratableObjectsContainerHv +Zend_Pdf_ParserHu 'Zend_Pdf_PageHt -Zend_Pdf_OutlineHs ;Zend_Pdf_Outline_LoadedHr =Zend_Pdf_Outline_CreatedHq /Zend_Pdf_NameTreeHp )Zend_Pdf_ImageHo 'Zend_Pdf_FontHn ?Zend_Pdf_Filter_RunLengthH m CZend_Pdf_Filter_CompressionH$l KZend_Pdf_Filter_Compression_LzwH&k OZend_Pdf_Filter_Compression_FlateHj =Zend_Pdf_Filter_AsciiHexHi ;Zend_Pdf_Filter_Ascii85H"h GZend_Pdf_FileParserDataSourceH)g UZend_Pdf_FileParserDataSource_StringH'f QZend_Pdf_FileParserDataSource_FileHe 3Zend_Pdf_FileParserHd ?Zend_Pdf_FileParser_ImageH"c GZend_Pdf_FileParser_Image_PngHb =Zend_Pdf_FileParser_FontH&a OZend_Pdf_FileParser_Font_OpenTypeH/` aZend_Pdf_FileParser_Font_OpenType_TrueTypeH_ 1Zend_Pdf_ExceptionH^ ;Zend_Pdf_ElementFactoryH"] GZend_Pdf_ElementFactory_ProxyH\ -Zend_Pdf_ElementH[ ;Zend_Pdf_Element_StringH#Z IZend_Pdf_Element_String_BinaryHY ;Zend_Pdf_Element_StreamHX AZend_Pdf_Element_ReferenceH%W MZend_Pdf_Element_Reference_TableH'V QZend_Pdf_Element_Reference_ContextHU ;Zend_Pdf_Element_ObjectH#T IZend_Pdf_Element_Object_StreamHS =Zend_Pdf_Element_NumericHR 7Zend_Pdf_Element_NullHQ 7Zend_Pdf_Element_NameH P CZend_Pdf_Element_DictionaryHO =Zend_Pdf_Element_BooleanHN 9Zend_Pdf_Element_ArrayHM 5Zend_Pdf_DestinationHL ?Zend_Pdf_Destination_ZoomH!K EZend_Pdf_Destination_UnknownHJ AZend_Pdf_Destination_NamedH'I QZend_Pdf_Destination_FitVerticallyH&H OZend_Pdf_Destination_FitRectangleH)G UZend_Pdf_Destination_FitHorizontallyH2F gZend_Pdf_Destination_FitBoundingBoxVerticallyH4E kZend_Pdf_Destination_FitBoundingBoxHorizontallyH(D SZend_Pdf_Destination_FitBoundingBoxHC =Zend_Pdf_Destination_FitH"B GZend_Pdf_Destination_ExplicitHA )Zend_Pdf_ColorH@ 1Zend_Pdf_Color_RgbH? 3Zend_Pdf_Color_HtmlH> =Zend_Pdf_Color_GrayScaleH= 3Zend_Pdf_Color_CmykH< 'Zend_Pdf_CmapH; AZend_Pdf_Cmap_TrimmedTableH!: EZend_Pdf_Cmap_SegmentToDeltaH9 AZend_Pdf_Cmap_ByteEncodingH&8 OZend_Pdf_Cmap_ByteEncoding_StaticH7 +Zend_Pdf_CanvasH6 =Zend_Pdf_Canvas_AbstractH5 3Zend_Pdf_AnnotationH4 =Zend_Pdf_Annotation_TextH3 AZend_Pdf_Annotation_MarkupH2 =Zend_Pdf_Annotation_LinkH'1 QZend_Pdf_Annotation_FileAttachmentH0 +Zend_Pdf_ActionH/ 3Zend_Pdf_Action_URIH. ;Zend_Pdf_Action_UnknownH- 7Zend_Pdf_Action_TransH, 9Zend_Pdf_Action_ThreadH+ AZend_Pdf_Action_SubmitFormH* 7Zend_Pdf_Action_SoundH ) CZend_Pdf_Action_SetOCGStateH( ?Zend_Pdf_Action_ResetFormH' ?Zend_Pdf_Action_RenditionH& 7Zend_Pdf_Action_NamedH% 7Zend_Pdf_Action_MovieH$ 9Zend_Pdf_Action_LaunchH# AZend_Pdf_Action_JavaScriptH   b  LwO*x^@)V+~Z/




a
5
					g	H	5	zX6]3mOCs7r4f8mH'                        !k EZend_Search_Lucene_FSMActionHj 9Zend_Search_Lucene_FSMHi =Zend_Search_Lucene_FieldH!h EZend_Search_Lucene_ExceptionH g CZend_Search_Lucene_DocumentH%f MZend_Search_Lucene_Document_XlsxH%e MZend_Search_Lucene_Document_PptxH(d SZend_Search_Lucene_Document_OpenXmlH%c MZend_Search_Lucene_Document_HtmlH*b WZend_Search_Lucene_Document_ExceptionH%a MZend_Search_Lucene_Document_DocxH,` [Zend_Search_Lucene_Analysis_TokenFilterH6_ oZend_Search_Lucene_Analysis_TokenFilter_StopWordsH7^ qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsH:] wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8H6\ oZend_Search_Lucene_Analysis_TokenFilter_LowerCaseH&[ OZend_Search_Lucene_Analysis_TokenH)Z UZend_Search_Lucene_Analysis_AnalyzerH0Y cZend_Search_Lucene_Analysis_Analyzer_CommonH8X sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumHIW Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitiveH5V mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8HFU Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitiveH8T sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumHIS Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitiveH5R mZend_Search_Lucene_Analysis_Analyzer_Common_TextHFQ Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiveHP 7Zend_Search_ExceptionHO -Zend_Rest_ServerHN AZend_Rest_Server_ExceptionHM +Zend_Rest_RouteHL 3Zend_Rest_ExceptionHK 5Zend_Rest_ControllerHJ -Zend_Rest_ClientHI ;Zend_Rest_Client_ResultH&H OZend_Rest_Client_Result_ExceptionHG AZend_Rest_Client_ExceptionHF 'Zend_RegistryHE =Zend_Reflection_PropertyHD ?Zend_Reflection_ParameterHC 9Zend_Reflection_MethodHB =Zend_Reflection_FunctionHA 5Zend_Reflection_FileH@ ?Zend_Reflection_ExtensionH? ?Zend_Reflection_ExceptionH> =Zend_Reflection_DocblockH!= EZend_Reflection_Docblock_TagH(< SZend_Reflection_Docblock_Tag_ReturnH'; QZend_Reflection_Docblock_Tag_ParamH: 7Zend_Reflection_ClassH9 !Zend_QueueH8 9Zend_Queue_Stomp_FrameH7 ;Zend_Queue_Stomp_ClientH'6 QZend_Queue_Stomp_Client_ConnectionH5 1Zend_Queue_MessageH#4 IZend_Queue_Message_PlatformJobH 3 CZend_Queue_Message_IteratorH2 5Zend_Queue_ExceptionH(1 SZend_Queue_Adapter_PlatformJobQueueH0 ;Zend_Queue_Adapter_NullH!/ EZend_Queue_Adapter_MemcacheqH. 7Zend_Queue_Adapter_DbH - CZend_Queue_Adapter_Db_QueueH", GZend_Queue_Adapter_Db_MessageH+ =Zend_Queue_Adapter_ArrayH'* QZend_Queue_Adapter_AdapterAbstractH ) CZend_Queue_Adapter_ActivemqH( -Zend_ProgressBarH' AZend_ProgressBar_ExceptionH& =Zend_ProgressBar_AdapterH$% KZend_ProgressBar_Adapter_JsPushH$$ KZend_ProgressBar_Adapter_JsPullH'# QZend_ProgressBar_Adapter_ExceptionH%" MZend_ProgressBar_Adapter_ConsoleH! Zend_PdfH!  EZend_Pdf_UpdateInfoContainerH -Zend_Pdf_TrailerH ;Zend_Pdf_Trailer_KeeperH AZend_Pdf_Trailer_GeneratorH +Zend_Pdf_TargetH )Zend_Pdf_StyleH 7Zend_Pdf_StringParserH /Zend_Pdf_ResourceH ?Zend_Pdf_Resource_UnifiedH# IZend_Pdf_Resource_ImageFactoryH ;Zend_Pdf_Resource_ImageH! EZend_Pdf_Resource_Image_TiffH  CZend_Pdf_Resource_Image_PngH! EZend_Pdf_Resource_Image_JpegH$ KZend_Pdf_Resource_GraphicsStateH 9Zend_Pdf_Resource_FontH! EZend_Pdf_Resource_Font_Type0H" GZend_Pdf_Resource_Font_SimpleH+ YZend_Pdf_Resource_Font_Simple_StandardH8 sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsH6 oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanH7 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicH;
 yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicH   X  wJrL"vCU'b&


x
J
				Z	(u@	zI`(q="Z2y\B#qL#W.                C 7Zend_Service_AbstractHB 9Zend_Server_ReflectionH'A QZend_Server_Reflection_ReturnValueH%@ MZend_Server_Reflection_PrototypeH%? MZend_Server_Reflection_ParameterH > CZend_Server_Reflection_NodeH"= GZend_Server_Reflection_MethodH$< KZend_Server_Reflection_FunctionH-; ]Zend_Server_Reflection_Function_AbstractH%: MZend_Server_Reflection_ExceptionH!9 EZend_Server_Reflection_ClassH!8 EZend_Server_Method_PrototypeH!7 EZend_Server_Method_ParameterH"6 GZend_Server_Method_DefinitionH 5 CZend_Server_Method_CallbackH4 7Zend_Server_ExceptionH3 9Zend_Server_DefinitionH2 /Zend_Server_CacheH1 5Zend_Server_AbstractH0 +Zend_SerializerH/ ?Zend_Serializer_ExceptionH!. EZend_Serializer_Adapter_WddxH)- UZend_Serializer_Adapter_PythonPickleH), UZend_Serializer_Adapter_PhpSerializeH$+ KZend_Serializer_Adapter_PhpCodeH!* EZend_Serializer_Adapter_JsonH%) MZend_Serializer_Adapter_IgbinaryH!( EZend_Serializer_Adapter_Amf3H!' EZend_Serializer_Adapter_Amf0H,& [Zend_Serializer_Adapter_AdapterAbstractH% 1Zend_Search_LuceneH0$ cZend_Search_Lucene_TermStreamsPriorityQueueH$# KZend_Search_Lucene_Storage_FileH+" YZend_Search_Lucene_Storage_File_MemoryH/! aZend_Search_Lucene_Storage_File_FilesystemH)  UZend_Search_Lucene_Storage_DirectoryH4 kZend_Search_Lucene_Storage_Directory_FilesystemH% MZend_Search_Lucene_Search_WeightH* WZend_Search_Lucene_Search_Weight_TermH, [Zend_Search_Lucene_Search_Weight_PhraseH/ aZend_Search_Lucene_Search_Weight_MultiTermH+ YZend_Search_Lucene_Search_Weight_EmptyH- ]Zend_Search_Lucene_Search_Weight_BooleanH) UZend_Search_Lucene_Search_SimilarityH1 eZend_Search_Lucene_Search_Similarity_DefaultH) UZend_Search_Lucene_Search_QueryTokenH3 iZend_Search_Lucene_Search_QueryParserExceptionH1 eZend_Search_Lucene_Search_QueryParserContextH* WZend_Search_Lucene_Search_QueryParserH) UZend_Search_Lucene_Search_QueryLexerH' QZend_Search_Lucene_Search_QueryHitH) UZend_Search_Lucene_Search_QueryEntryH. _Zend_Search_Lucene_Search_QueryEntry_TermH2 gZend_Search_Lucene_Search_QueryEntry_SubqueryH0 cZend_Search_Lucene_Search_QueryEntry_PhraseH$ KZend_Search_Lucene_Search_QueryH- ]Zend_Search_Lucene_Search_Query_WildcardH)
 UZend_Search_Lucene_Search_Query_TermH*	 WZend_Search_Lucene_Search_Query_RangeH2 gZend_Search_Lucene_Search_Query_PreprocessingH7 qZend_Search_Lucene_Search_Query_Preprocessing_TermH9 uZend_Search_Lucene_Search_Query_Preprocessing_PhraseH8 sZend_Search_Lucene_Search_Query_Preprocessing_FuzzyH+ YZend_Search_Lucene_Search_Query_PhraseH. _Zend_Search_Lucene_Search_Query_MultiTermH2 gZend_Search_Lucene_Search_Query_InsignificantH* WZend_Search_Lucene_Search_Query_FuzzyH*  WZend_Search_Lucene_Search_Query_EmptyH, [Zend_Search_Lucene_Search_Query_BooleanH2~ gZend_Search_Lucene_Search_Highlighter_DefaultH:} wZend_Search_Lucene_Search_BooleanExpressionRecognizerH| =Zend_Search_Lucene_ProxyH%{ MZend_Search_Lucene_PriorityQueueH/z aZend_Search_Lucene_Interface_MultiSearcherH%y MZend_Search_Lucene_MultiSearcherH#x IZend_Search_Lucene_LockManagerH$w KZend_Search_Lucene_Index_WriterH0v cZend_Search_Lucene_Index_TermsPriorityQueueH&u OZend_Search_Lucene_Index_TermInfoH"t GZend_Search_Lucene_Index_TermH+s YZend_Search_Lucene_Index_SegmentWriterH8r sZend_Search_Lucene_Index_SegmentWriter_StreamWriterH:q wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterH+p YZend_Search_Lucene_Index_SegmentMergerH)o UZend_Search_Lucene_Index_SegmentInfoH'n QZend_Search_Lucene_Index_FieldInfoH(m SZend_Search_Lucene_Index_DocsFilterH.l _Zend_Search_Lucene_Index_DictionaryLoaderH   O  a3X&]+Y*
uK)



m
N
#				m	H	qI KWJp6X
hY  R %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequestHY 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequestHQ #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequestHQ #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequestHa CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequestHN Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformationHL Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalanceHJ Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPoolH-
 ]Zend_Service_DeveloperGarden_LocalSearchH>	 Zend_Service_DeveloperGarden_LocalSearch_SearchParametersH7 qZend_Service_DeveloperGarden_LocalSearch_ExceptionH, [Zend_Service_DeveloperGarden_IpLocationH6 oZend_Service_DeveloperGarden_IpLocation_IpAddressH+ YZend_Service_DeveloperGarden_ExceptionH, [Zend_Service_DeveloperGarden_CredentialH0 cZend_Service_DeveloperGarden_ConferenceCallHC Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatusHC Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetailH<  {Zend_Service_DeveloperGarden_ConferenceCall_ParticipantH: wZend_Service_DeveloperGarden_ConferenceCall_ExceptionHD~ 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceScheduleHB} Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetailHC| Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccountH-{ ]Zend_Service_DeveloperGarden_Client_SoapH2z gZend_Service_DeveloperGarden_Client_ExceptionH7y qZend_Service_DeveloperGarden_Client_ClientAbstractH1x eZend_Service_DeveloperGarden_BaseUserServiceHAw Zend_Service_DeveloperGarden_BaseUserService_AccountBalanceHv 9Zend_Service_DeliciousH&u OZend_Service_Delicious_SimplePostH$t KZend_Service_Delicious_PostListH s CZend_Service_Delicious_PostH%r MZend_Service_Delicious_ExceptionH q CZend_Service_AudioscrobblerHp 3Zend_Service_AmazonHo ;Zend_Service_Amazon_SqsH&n OZend_Service_Amazon_Sqs_ExceptionH!m EZend_Service_Amazon_SimpleDbH*l WZend_Service_Amazon_SimpleDb_ResponseH&k OZend_Service_Amazon_SimpleDb_PageH+j YZend_Service_Amazon_SimpleDb_ExceptionH+i YZend_Service_Amazon_SimpleDb_AttributeH'h QZend_Service_Amazon_SimilarProductHg 9Zend_Service_Amazon_S3H"f GZend_Service_Amazon_S3_StreamH%e MZend_Service_Amazon_S3_ExceptionH"d GZend_Service_Amazon_ResultSetHc ?Zend_Service_Amazon_QueryH!b EZend_Service_Amazon_OfferSetHa ?Zend_Service_Amazon_OfferH&` OZend_Service_Amazon_ListmaniaListH_ =Zend_Service_Amazon_ItemH^ ?Zend_Service_Amazon_ImageH"] GZend_Service_Amazon_ExceptionH(\ SZend_Service_Amazon_EditorialReviewH[ ;Zend_Service_Amazon_Ec2H+Z YZend_Service_Amazon_Ec2_SecuritygroupsH%Y MZend_Service_Amazon_Ec2_ResponseH#X IZend_Service_Amazon_Ec2_RegionH$W KZend_Service_Amazon_Ec2_KeypairH%V MZend_Service_Amazon_Ec2_InstanceH-U ]Zend_Service_Amazon_Ec2_Instance_WindowsH.T _Zend_Service_Amazon_Ec2_Instance_ReservedH"S GZend_Service_Amazon_Ec2_ImageH&R OZend_Service_Amazon_Ec2_ExceptionH&Q OZend_Service_Amazon_Ec2_ElasticipH P CZend_Service_Amazon_Ec2_EbsH'O QZend_Service_Amazon_Ec2_CloudWatchH.N _Zend_Service_Amazon_Ec2_AvailabilityzonesH%M MZend_Service_Amazon_Ec2_AbstractH'L QZend_Service_Amazon_CustomerReviewH'K QZend_Service_Amazon_AuthenticationH*J WZend_Service_Amazon_Authentication_V2H*I WZend_Service_Amazon_Authentication_V1H*H WZend_Service_Amazon_Authentication_S3H1G eZend_Service_Amazon_Authentication_ExceptionH$F KZend_Service_Amazon_AccessoriesH!E EZend_Service_Amazon_AbstractHD 5Zend_Service_AkismetH   /  J21lY


o
&			Z	@d#C\/5$i                                                                              VA -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseHX@ 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseTypeHT? )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseH_> ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseTypeH[= 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseHW< /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseTypeHS; 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseHQ: #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstractHS9 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponseHJ8 Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseTypeHg7 OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseTypeHc6 GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseHW5 /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponseHU4 +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponseHS3 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponseH32 iZend_Service_DeveloperGarden_Response_BaseTypeHJ1 Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstractHC0 Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCallHG/ Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequencedH=. }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallHA- Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatusHA, Zend_Service_DeveloperGarden_Request_SmsValidation_ValidateHN+ Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeywordHC* Zend_Service_DeveloperGarden_Request_SmsValidation_InvalidateHL) Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbersHB( Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstractH9' uZend_Service_DeveloperGarden_Request_SendSms_SendSMSH>& Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMSH9% uZend_Service_DeveloperGarden_Request_RequestAbstractHI$ Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequestHE# Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequestH3" iZend_Service_DeveloperGarden_Request_ExceptionHR! %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequestHY  3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequestHd IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequestHQ #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequestHR %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequestHY 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequestHd IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequestHQ #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequestHO Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequestHU +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequestHU +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequestHV -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequestHa CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequestHZ 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequestHT )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequestH   / g BwP;.

m
		_>w'Hgl 9CV  g Lp Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponseHPo !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponseHGn Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponseHJm Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponseHKl Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2ResponseHLk Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponseHIj Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumberHWi /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponseHJh Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponseHUg +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponseHCf Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponseHCe Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstractHHd Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponseHUc +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponseHQb #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponseHIa Zend_Service_DeveloperGarden_Response_SecurityTokenServer_ExceptionH;` yZend_Service_DeveloperGarden_Response_ResponseAbstractHO_ Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseTypeHK^ Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseHA] Zend_Service_DeveloperGarden_Response_IpLocation_RegionTypeHK\ Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseTypeHG[ Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseHLZ Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationTypeHIY Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesTypeH>X Zend_Service_DeveloperGarden_Response_IpLocation_CityTypeH4W kZend_Service_DeveloperGarden_Response_ExceptionHTV )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponseH[U 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponseHfT MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponseHSS 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponseHTR )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponseH[Q 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponseHfP MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponseHSO 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponseHUN +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseTypeHQM #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseH[L 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseTypeHWK /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseH[J 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseTypeHWI /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseH\H 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseTypeHXG 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseHgF OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseTypeHcE GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseH`D AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseTypeH\C 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseHZB 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseTypeH   U  r9c8X/W&o<


m
;
				Q	"oI-n?\+m8}U-oJ [+C                          &E OZend_Service_StrikeIron_ExceptionH&D OZend_Service_StrikeIron_DecoratorH!C EZend_Service_StrikeIron_BaseH;B yZend_Service_SqlAzure_Management_ServiceEntityAbstractH4A kZend_Service_SqlAzure_Management_ServerInstanceH:@ wZend_Service_SqlAzure_Management_FirewallRuleInstanceH/? aZend_Service_SqlAzure_Management_ExceptionH,> [Zend_Service_SqlAzure_Management_ClientH$= KZend_Service_SqlAzure_ExceptionH< ;Zend_Service_SlideShareH&; OZend_Service_SlideShare_SlideShowH&: OZend_Service_SlideShare_ExceptionH%9 MZend_Service_ShortUrl_TinyUrlComH&8 OZend_Service_ShortUrl_MetamarkNetH!7 EZend_Service_ShortUrl_JdemCzH6 AZend_Service_ShortUrl_IsGdH$5 KZend_Service_ShortUrl_ExceptionH 4 CZend_Service_ShortUrl_BitLyH,3 [Zend_Service_ShortUrl_AbstractShortenerH2 9Zend_Service_ReCaptchaH$1 KZend_Service_ReCaptcha_ResponseH$0 KZend_Service_ReCaptcha_MailHideH./ _Zend_Service_ReCaptcha_MailHide_ExceptionH%. MZend_Service_ReCaptcha_ExceptionH#- IZend_Service_Rackspace_ServersH5, mZend_Service_Rackspace_Servers_SharedIpGroupListH1+ eZend_Service_Rackspace_Servers_SharedIpGroupH.* _Zend_Service_Rackspace_Servers_ServerListH*) WZend_Service_Rackspace_Servers_ServerH-( ]Zend_Service_Rackspace_Servers_ImageListH)' UZend_Service_Rackspace_Servers_ImageH-& ]Zend_Service_Rackspace_Servers_ExceptionH!% EZend_Service_Rackspace_FilesH,$ [Zend_Service_Rackspace_Files_ObjectListH(# SZend_Service_Rackspace_Files_ObjectH+" YZend_Service_Rackspace_Files_ExceptionH/! aZend_Service_Rackspace_Files_ContainerListH+  YZend_Service_Rackspace_Files_ContainerH% MZend_Service_Rackspace_ExceptionH$ KZend_Service_Rackspace_AbstractH 7Zend_Service_LiveDocxH$ KZend_Service_LiveDocx_MailMergeH$ KZend_Service_LiveDocx_ExceptionH 3Zend_Service_FlickrH" GZend_Service_Flickr_ResultSetH AZend_Service_Flickr_ResultH ?Zend_Service_Flickr_ImageH 9Zend_Service_ExceptionH ?Zend_Service_Ebay_FindingH) UZend_Service_Ebay_Finding_StorefrontH+ YZend_Service_Ebay_Finding_ShippingInfoH+ YZend_Service_Ebay_Finding_Set_AbstractH, [Zend_Service_Ebay_Finding_SellingStatusH) UZend_Service_Ebay_Finding_SellerInfoH, [Zend_Service_Ebay_Finding_Search_ResultH* WZend_Service_Ebay_Finding_Search_ItemH. _Zend_Service_Ebay_Finding_Search_Item_SetH0 cZend_Service_Ebay_Finding_Response_KeywordsH- ]Zend_Service_Ebay_Finding_Response_ItemsH2
 gZend_Service_Ebay_Finding_Response_HistogramsH0	 cZend_Service_Ebay_Finding_Response_AbstractH/ aZend_Service_Ebay_Finding_PaginationOutputH* WZend_Service_Ebay_Finding_ListingInfoH( SZend_Service_Ebay_Finding_ExceptionH, [Zend_Service_Ebay_Finding_Error_MessageH) UZend_Service_Ebay_Finding_Error_DataH- ]Zend_Service_Ebay_Finding_Error_Data_SetH' QZend_Service_Ebay_Finding_CategoryH1 eZend_Service_Ebay_Finding_Category_HistogramH5  mZend_Service_Ebay_Finding_Category_Histogram_SetH; yZend_Service_Ebay_Finding_Category_Histogram_ContainerH%~ MZend_Service_Ebay_Finding_AspectH)} UZend_Service_Ebay_Finding_Aspect_SetH5| mZend_Service_Ebay_Finding_Aspect_Histogram_ValueH9{ uZend_Service_Ebay_Finding_Aspect_Histogram_Value_SetH9z uZend_Service_Ebay_Finding_Aspect_Histogram_ContainerH'y QZend_Service_Ebay_Finding_AbstractH x CZend_Service_Ebay_ExceptionHw AZend_Service_Ebay_AbstractH+v YZend_Service_DeveloperGarden_VoiceCallH/u aZend_Service_DeveloperGarden_SmsValidationH)t UZend_Service_DeveloperGarden_SendSmsH5s mZend_Service_DeveloperGarden_SecurityTokenServerH;r yZend_Service_DeveloperGarden_SecurityTokenServer_CacheHKq Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstractH   E  mM&h3	\/}O)d+


R
?
				Y	Xr2GP_f/aL                                                        4
 kZend_Service_WindowsAzure_RetryPolicy_ExceptionHH	 Zend_Service_WindowsAzure_Management_SubscriptionOperationInstanceHA Zend_Service_WindowsAzure_Management_StorageServiceInstanceH@ Zend_Service_WindowsAzure_Management_ServiceEntityAbstractHB Zend_Service_WindowsAzure_Management_OperationStatusInstanceHB Zend_Service_WindowsAzure_Management_OperatingSystemInstanceHH Zend_Service_WindowsAzure_Management_OperatingSystemFamilyInstanceH: wZend_Service_WindowsAzure_Management_LocationInstanceH@ Zend_Service_WindowsAzure_Management_HostedServiceInstanceH3 iZend_Service_WindowsAzure_Management_ExceptionH<  {Zend_Service_WindowsAzure_Management_DeploymentInstanceH0 cZend_Service_WindowsAzure_Management_ClientH=~ }Zend_Service_WindowsAzure_Management_CertificateInstanceH@} Zend_Service_WindowsAzure_Management_AffinityGroupInstanceH6| oZend_Service_WindowsAzure_Log_Writer_WindowsAzureH9{ uZend_Service_WindowsAzure_Log_Formatter_WindowsAzureH(z SZend_Service_WindowsAzure_ExceptionHJy Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscriptionH2x gZend_Service_WindowsAzure_Diagnostics_ManagerH3w iZend_Service_WindowsAzure_Diagnostics_LogLevelH4v kZend_Service_WindowsAzure_Diagnostics_ExceptionHNu Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscriptionHHt Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLogHLs Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCountersHKr Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstractH<q {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogsHAp Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstanceHDo 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectoriesHUn +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogsHDm 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSourcesH8l sZend_Service_WindowsAzure_Credentials_SharedKeyLiteH4k kZend_Service_WindowsAzure_Credentials_SharedKeyHAj Zend_Service_WindowsAzure_Credentials_SharedAccessSignatureH4i kZend_Service_WindowsAzure_Credentials_ExceptionH>h Zend_Service_WindowsAzure_Credentials_CredentialsAbstractH2g gZend_Service_WindowsAzure_CommandLine_StorageH2f gZend_Service_WindowsAzure_CommandLine_ServiceHe !ScaffolderHWd /Zend_Service_WindowsAzure_CommandLine_PackageScaffolder_PackageScaffolderAbstractH2c gZend_Service_WindowsAzure_CommandLine_PackageHDb 	Zend_Service_WindowsAzure_CommandLine_GetAsynchronousOperationH5a mZend_Service_WindowsAzure_CommandLine_DeploymentH6` oZend_Service_WindowsAzure_CommandLine_CertificateH_ 5Zend_Service_TwitterH#^ IZend_Service_Twitter_ExceptionH] ;Zend_Service_TechnoratiH#\ IZend_Service_Technorati_WeblogH"[ GZend_Service_Technorati_UtilsH*Z WZend_Service_Technorati_TagsResultSetH'Y QZend_Service_Technorati_TagsResultH)X UZend_Service_Technorati_TagResultSetH&W OZend_Service_Technorati_TagResultH,V [Zend_Service_Technorati_SearchResultSetH)U UZend_Service_Technorati_SearchResultH&T OZend_Service_Technorati_ResultSetH#S IZend_Service_Technorati_ResultH*R WZend_Service_Technorati_KeyInfoResultH*Q WZend_Service_Technorati_GetInfoResultH&P OZend_Service_Technorati_ExceptionH1O eZend_Service_Technorati_DailyCountsResultSetH.N _Zend_Service_Technorati_DailyCountsResultH,M [Zend_Service_Technorati_CosmosResultSetH)L UZend_Service_Technorati_CosmosResultH+K YZend_Service_Technorati_BlogInfoResultH#J IZend_Service_Technorati_AuthorHI ;Zend_Service_StrikeIronH(H SZend_Service_StrikeIron_ZipCodeInfoH2G gZend_Service_StrikeIron_USAddressVerificationH-F ]Zend_Service_StrikeIron_SalesUseTaxBasicH   ]  S"}Nj-Sr:



r
C
				y	L	*	gL.tG2	hO,OL*oF! d6xM%          )g UZend_Test_PHPUnit_Db_DataSet_DbTableH*f WZend_Test_PHPUnit_Db_DataSet_DbRowsetH$e KZend_Test_PHPUnit_Db_ConnectionH'd QZend_Test_PHPUnit_DatabaseTestCaseH)c UZend_Test_PHPUnit_ControllerTestCaseH0b cZend_Test_PHPUnit_Constraint_ResponseHeaderH*a WZend_Test_PHPUnit_Constraint_RedirectH+` YZend_Test_PHPUnit_Constraint_ExceptionH*_ WZend_Test_PHPUnit_Constraint_DomQueryH^ 7Zend_Test_DbStatementH] 3Zend_Test_DbAdapterH\ /Zend_Tag_ItemListH[ 'Zend_Tag_ItemHZ 1Zend_Tag_ExceptionHY )Zend_Tag_CloudHX =Zend_Tag_Cloud_ExceptionH!W EZend_Tag_Cloud_Decorator_TagH%V MZend_Tag_Cloud_Decorator_HtmlTagH'U QZend_Tag_Cloud_Decorator_HtmlCloudH'T QZend_Tag_Cloud_Decorator_ExceptionH#S IZend_Tag_Cloud_Decorator_CloudH!R EZend_Stdlib_SplPriorityQueueHQ -SplPriorityQueueHP ?Zend_Stdlib_PriorityQueueH3O iZend_Stdlib_Exception_InvalidCallbackExceptionH N CZend_Stdlib_CallbackHandlerHM )Zend_Soap_WsdlH/L aZend_Soap_Wsdl_Strategy_DefaultComplexTypeH&K OZend_Soap_Wsdl_Strategy_CompositeH0J cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequenceH/I aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplexH$H KZend_Soap_Wsdl_Strategy_AnyTypeH%G MZend_Soap_Wsdl_Strategy_AbstractHF =Zend_Soap_Wsdl_ExceptionHE -Zend_Soap_ServerHD 9Zend_Soap_Server_ProxyHC AZend_Soap_Server_ExceptionHB -Zend_Soap_ClientHA 9Zend_Soap_Client_LocalH@ AZend_Soap_Client_ExceptionH? ;Zend_Soap_Client_DotNetH> ;Zend_Soap_Client_CommonH= 9Zend_Soap_AutoDiscoverH%< MZend_Soap_AutoDiscover_ExceptionH; %Zend_SessionH): UZend_Session_Validator_HttpUserAgentH$9 KZend_Session_Validator_AbstractH'8 QZend_Session_SaveHandler_ExceptionH%7 MZend_Session_SaveHandler_DbTableH6 9Zend_Session_NamespaceH5 9Zend_Session_ExceptionH4 7Zend_Session_AbstractH3 1Zend_Service_YahooH$2 KZend_Service_Yahoo_WebResultSetH!1 EZend_Service_Yahoo_WebResultH&0 OZend_Service_Yahoo_VideoResultSetH#/ IZend_Service_Yahoo_VideoResultH!. EZend_Service_Yahoo_ResultSetH- ?Zend_Service_Yahoo_ResultH), UZend_Service_Yahoo_PageDataResultSetH&+ OZend_Service_Yahoo_PageDataResultH%* MZend_Service_Yahoo_NewsResultSetH") GZend_Service_Yahoo_NewsResultH&( OZend_Service_Yahoo_LocalResultSetH#' IZend_Service_Yahoo_LocalResultH+& YZend_Service_Yahoo_InlinkDataResultSetH(% SZend_Service_Yahoo_InlinkDataResultH&$ OZend_Service_Yahoo_ImageResultSetH## IZend_Service_Yahoo_ImageResultH" =Zend_Service_Yahoo_ImageH&! OZend_Service_WindowsAzure_StorageH4  kZend_Service_WindowsAzure_Storage_TableInstanceH7 qZend_Service_WindowsAzure_Storage_TableEntityQueryH2 gZend_Service_WindowsAzure_Storage_TableEntityH, [Zend_Service_WindowsAzure_Storage_TableH< {Zend_Service_WindowsAzure_Storage_StorageEntityAbstractH7 qZend_Service_WindowsAzure_Storage_SignedIdentifierH3 iZend_Service_WindowsAzure_Storage_QueueMessageH4 kZend_Service_WindowsAzure_Storage_QueueInstanceH, [Zend_Service_WindowsAzure_Storage_QueueH9 uZend_Service_WindowsAzure_Storage_PageRegionInstanceH4 kZend_Service_WindowsAzure_Storage_LeaseInstanceH9 uZend_Service_WindowsAzure_Storage_DynamicTableEntityH3 iZend_Service_WindowsAzure_Storage_BlobInstanceH4 kZend_Service_WindowsAzure_Storage_BlobContainerH+ YZend_Service_WindowsAzure_Storage_BlobH2 gZend_Service_WindowsAzure_Storage_Blob_StreamH; yZend_Service_WindowsAzure_Storage_BatchStorageAbstractH, [Zend_Service_WindowsAzure_Storage_BatchH- ]Zend_Service_WindowsAzure_SessionHandlerH> Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstractH1 eZend_Service_WindowsAzure_RetryPolicy_RetryNH2 gZend_Service_WindowsAzure_RetryPolicy_NoRetryH   S  jC\@wU9!oBN


A				e	)M!o@Z,nDY4s>
`/d7                     8: sZend_Tool_Project_Context_System_ProjectProfileFileH69 oZend_Tool_Project_Context_System_ProjectDirectoryH)8 UZend_Tool_Project_Context_RepositoryH.7 _Zend_Tool_Project_Context_Filesystem_FileH36 iZend_Tool_Project_Context_Filesystem_DirectoryH25 gZend_Tool_Project_Context_Filesystem_AbstractH(4 SZend_Tool_Project_Context_ExceptionH-3 ]Zend_Tool_Project_Context_Content_EngineH32 iZend_Tool_Project_Context_Content_Engine_PhtmlH;1 yZend_Tool_Project_Context_Content_Engine_CodeGeneratorH00 cZend_Tool_Framework_System_Provider_VersionH0/ cZend_Tool_Framework_System_Provider_PhpinfoH1. eZend_Tool_Framework_System_Provider_ManifestH/- aZend_Tool_Framework_System_Provider_ConfigH(, SZend_Tool_Framework_System_ManifestH-+ ]Zend_Tool_Framework_System_Action_DeleteH-* ]Zend_Tool_Framework_System_Action_CreateH!) EZend_Tool_Framework_RegistryH+( YZend_Tool_Framework_Registry_ExceptionH+' YZend_Tool_Framework_Provider_SignatureH,& [Zend_Tool_Framework_Provider_RepositoryH+% YZend_Tool_Framework_Provider_ExceptionH*$ WZend_Tool_Framework_Provider_AbstractH&# OZend_Tool_Framework_Metadata_ToolH)" UZend_Tool_Framework_Metadata_DynamicH'! QZend_Tool_Framework_Metadata_BasicH,  [Zend_Tool_Framework_Manifest_RepositoryH2 gZend_Tool_Framework_Manifest_ProviderMetadataH* WZend_Tool_Framework_Manifest_MetadataH+ YZend_Tool_Framework_Manifest_ExceptionH0 cZend_Tool_Framework_Manifest_ActionMetadataH1 eZend_Tool_Framework_Loader_IncludePathLoaderHJ Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIteratorH+ YZend_Tool_Framework_Loader_BasicLoaderH( SZend_Tool_Framework_Loader_AbstractH" GZend_Tool_Framework_ExceptionH' QZend_Tool_Framework_Client_StorageH1 eZend_Tool_Framework_Client_Storage_DirectoryH( SZend_Tool_Framework_Client_ResponseHD 	Zend_Tool_Framework_Client_Response_ContentDecorator_SeparatorH' QZend_Tool_Framework_Client_RequestH( SZend_Tool_Framework_Client_ManifestH9 uZend_Tool_Framework_Client_Interactive_InputResponseH8 sZend_Tool_Framework_Client_Interactive_InputRequestH8 sZend_Tool_Framework_Client_Interactive_InputHandlerH) UZend_Tool_Framework_Client_ExceptionH' QZend_Tool_Framework_Client_ConsoleHD 	Zend_Tool_Framework_Client_Console_ResponseDecorator_IndentionHD
 	Zend_Tool_Framework_Client_Console_ResponseDecorator_ColorizerHC	 Zend_Tool_Framework_Client_Console_ResponseDecorator_BlockizeHF Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenterH0 cZend_Tool_Framework_Client_Console_ManifestH2 gZend_Tool_Framework_Client_Console_HelpSystemH6 oZend_Tool_Framework_Client_Console_ArgumentParserH& OZend_Tool_Framework_Client_ConfigH( SZend_Tool_Framework_Client_AbstractH* WZend_Tool_Framework_Action_RepositoryH) UZend_Tool_Framework_Action_ExceptionH$  KZend_Tool_Framework_Action_BaseH 'Zend_TimeSyncH~ 1Zend_TimeSync_SntpH} 9Zend_TimeSync_ProtocolH| /Zend_TimeSync_NtpH{ ;Zend_TimeSync_ExceptionHz +Zend_Text_TableHy 3Zend_Text_Table_RowHx ?Zend_Text_Table_ExceptionH&w OZend_Text_Table_Decorator_UnicodeH$v KZend_Text_Table_Decorator_AsciiHu 9Zend_Text_Table_ColumnHt 3Zend_Text_MultiByteHs -Zend_Text_FigletHr AZend_Text_Figlet_ExceptionHq 3Zend_Text_ExceptionH&p OZend_Test_PHPUnit_Db_SimpleTesterH,o [Zend_Test_PHPUnit_Db_Operation_TruncateH*n WZend_Test_PHPUnit_Db_Operation_InsertH-m ]Zend_Test_PHPUnit_Db_Operation_DeleteAllH*l WZend_Test_PHPUnit_Db_Metadata_GenericH#k IZend_Test_PHPUnit_Db_ExceptionH,j [Zend_Test_PHPUnit_Db_DataSet_QueryTableH.i _Zend_Test_PHPUnit_Db_DataSet_QueryDataSetH0h cZend_Test_PHPUnit_Db_DataSet_DbTableDataSetH   F  S xDp=uAg1



d
/				P	c,|:o*l7zFW#uQ%zE                                           ?Zend_Tool_Project_ProfileH' QZend_Tool_Project_Profile_ResourceH9~ uZend_Tool_Project_Profile_Resource_SearchConstraintsH1} eZend_Tool_Project_Profile_Resource_ContainerH=| }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilterH5{ mZend_Tool_Project_Profile_Iterator_ContextFilterH-z ]Zend_Tool_Project_Profile_FileParser_XmlH(y SZend_Tool_Project_Profile_ExceptionH x CZend_Tool_Project_ExceptionH<w {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectoryH0v cZend_Tool_Project_Context_Zf_ViewsDirectoryH6u oZend_Tool_Project_Context_Zf_ViewScriptsDirectoryH0t cZend_Tool_Project_Context_Zf_ViewScriptFileH6s oZend_Tool_Project_Context_Zf_ViewHelpersDirectoryH6r oZend_Tool_Project_Context_Zf_ViewFiltersDirectoryHAq Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectoryH2p gZend_Tool_Project_Context_Zf_UploadsDirectoryH0o cZend_Tool_Project_Context_Zf_TestsDirectoryH7n qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFileH:m wZend_Tool_Project_Context_Zf_TestPHPUnitBootstrapFileH@l Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectoryH1k eZend_Tool_Project_Context_Zf_TestLibraryFileH6j oZend_Tool_Project_Context_Zf_TestLibraryDirectoryH:i wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFileHBh Zend_Tool_Project_Context_Zf_TestApplicationModulesDirectoryHAg Zend_Tool_Project_Context_Zf_TestApplicationModuleDirectoryH:f wZend_Tool_Project_Context_Zf_TestApplicationDirectoryH@e Zend_Tool_Project_Context_Zf_TestApplicationControllerFileHEd Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectoryH>c Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFileH=b }Zend_Tool_Project_Context_Zf_TestApplicationActionMethodH4a kZend_Tool_Project_Context_Zf_TemporaryDirectoryH3` iZend_Tool_Project_Context_Zf_SessionsDirectoryH3_ iZend_Tool_Project_Context_Zf_ServicesDirectoryH8^ sZend_Tool_Project_Context_Zf_SearchIndexesDirectoryH<] {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectoryH8\ sZend_Tool_Project_Context_Zf_PublicScriptsDirectoryH1[ eZend_Tool_Project_Context_Zf_PublicIndexFileH7Z qZend_Tool_Project_Context_Zf_PublicImagesDirectoryH1Y eZend_Tool_Project_Context_Zf_PublicDirectoryH5X mZend_Tool_Project_Context_Zf_ProjectProviderFileH2W gZend_Tool_Project_Context_Zf_ModulesDirectoryH1V eZend_Tool_Project_Context_Zf_ModuleDirectoryH1U eZend_Tool_Project_Context_Zf_ModelsDirectoryH+T YZend_Tool_Project_Context_Zf_ModelFileH/S aZend_Tool_Project_Context_Zf_LogsDirectoryH2R gZend_Tool_Project_Context_Zf_LocalesDirectoryH2Q gZend_Tool_Project_Context_Zf_LibraryDirectoryH2P gZend_Tool_Project_Context_Zf_LayoutsDirectoryH8O sZend_Tool_Project_Context_Zf_LayoutScriptsDirectoryH2N gZend_Tool_Project_Context_Zf_LayoutScriptFileH.M _Zend_Tool_Project_Context_Zf_HtaccessFileH0L cZend_Tool_Project_Context_Zf_FormsDirectoryH*K WZend_Tool_Project_Context_Zf_FormFileH/J aZend_Tool_Project_Context_Zf_DocsDirectoryH-I ]Zend_Tool_Project_Context_Zf_DbTableFileH2H gZend_Tool_Project_Context_Zf_DbTableDirectoryH/G aZend_Tool_Project_Context_Zf_DataDirectoryH6F oZend_Tool_Project_Context_Zf_ControllersDirectoryH0E cZend_Tool_Project_Context_Zf_ControllerFileH2D gZend_Tool_Project_Context_Zf_ConfigsDirectoryH,C [Zend_Tool_Project_Context_Zf_ConfigFileH0B cZend_Tool_Project_Context_Zf_CacheDirectoryH/A aZend_Tool_Project_Context_Zf_BootstrapFileH6@ oZend_Tool_Project_Context_Zf_ApplicationDirectoryH7? qZend_Tool_Project_Context_Zf_ApplicationConfigFileH/> aZend_Tool_Project_Context_Zf_ApisDirectoryH.= _Zend_Tool_Project_Context_Zf_ActionMethodH3< iZend_Tool_Project_Context_Zf_AbstractClassFileH@; Zend_Tool_Project_Context_System_ProjectProvidersDirectoryH   m  {M vJ!nFjG$|eJ4#



y
I
$					g	C	lG^8kL0gD$iDpL'bH)dE&          m 3Zend_Validate_RegexHl 9Zend_Validate_PostCodeHk 9Zend_Validate_NotEmptyHj 9Zend_Validate_LessThanHi 7Zend_Validate_Ldap_DnHh 1Zend_Validate_IsbnHg -Zend_Validate_IpHf /Zend_Validate_IntHe 7Zend_Validate_InArrayHd ;Zend_Validate_IdenticalHc 1Zend_Validate_IbanHb 9Zend_Validate_HostnameHa /Zend_Validate_HexH` ?Zend_Validate_GreaterThanH_ 3Zend_Validate_FloatH!^ EZend_Validate_File_WordCountH] ?Zend_Validate_File_UploadH\ ;Zend_Validate_File_SizeH[ ;Zend_Validate_File_Sha1H!Z EZend_Validate_File_NotExistsH Y CZend_Validate_File_MimeTypeHX 9Zend_Validate_File_Md5HW AZend_Validate_File_IsImageH$V KZend_Validate_File_IsCompressedH!U EZend_Validate_File_ImageSizeHT ;Zend_Validate_File_HashH!S EZend_Validate_File_FilesSizeH!R EZend_Validate_File_ExtensionHQ ?Zend_Validate_File_ExistsH'P QZend_Validate_File_ExcludeMimeTypeH(O SZend_Validate_File_ExcludeExtensionHN =Zend_Validate_File_Crc32HM =Zend_Validate_File_CountHL ;Zend_Validate_ExceptionHK AZend_Validate_EmailAddressHJ 5Zend_Validate_DigitsH"I GZend_Validate_Db_RecordExistsH$H KZend_Validate_Db_NoRecordExistsHG ?Zend_Validate_Db_AbstractHF 1Zend_Validate_DateHE =Zend_Validate_CreditCardHD 3Zend_Validate_CcnumHC 9Zend_Validate_CallbackHB 7Zend_Validate_BetweenHA 7Zend_Validate_BarcodeH@ AZend_Validate_Barcode_UpceH? AZend_Validate_Barcode_UpcaH> AZend_Validate_Barcode_SsccH$= KZend_Validate_Barcode_RoyalmailH"< GZend_Validate_Barcode_PostnetH!; EZend_Validate_Barcode_PlanetH#: IZend_Validate_Barcode_LeitcodeH 9 CZend_Validate_Barcode_Itf14H8 AZend_Validate_Barcode_IssnH*7 WZend_Validate_Barcode_IntelligentMailH$6 KZend_Validate_Barcode_IdentcodeH!5 EZend_Validate_Barcode_Gtin14H!4 EZend_Validate_Barcode_Gtin13H!3 EZend_Validate_Barcode_Gtin12H2 AZend_Validate_Barcode_Ean8H1 AZend_Validate_Barcode_Ean5H0 AZend_Validate_Barcode_Ean2H / CZend_Validate_Barcode_Ean18H . CZend_Validate_Barcode_Ean14H - CZend_Validate_Barcode_Ean13H , CZend_Validate_Barcode_Ean12H$+ KZend_Validate_Barcode_Code93extH!* EZend_Validate_Barcode_Code93H$) KZend_Validate_Barcode_Code39extH!( EZend_Validate_Barcode_Code39H,' [Zend_Validate_Barcode_Code25interleavedH!& EZend_Validate_Barcode_Code25H*% WZend_Validate_Barcode_AdapterAbstractH$ 3Zend_Validate_AlphaH# 3Zend_Validate_AlnumH" 9Zend_Validate_AbstractH! Zend_UriH  'Zend_Uri_HttpH 1Zend_Uri_ExceptionH )Zend_TranslateH 7Zend_Translate_PluralH =Zend_Translate_ExceptionH 9Zend_Translate_AdapterH! EZend_Translate_Adapter_XmlTmH! EZend_Translate_Adapter_XliffH AZend_Translate_Adapter_TmxH AZend_Translate_Adapter_TbxH ?Zend_Translate_Adapter_QtH AZend_Translate_Adapter_IniH# IZend_Translate_Adapter_GettextH AZend_Translate_Adapter_CsvH! EZend_Translate_Adapter_ArrayH$ KZend_Tool_Project_Provider_ViewH$ KZend_Tool_Project_Provider_TestH/ aZend_Tool_Project_Provider_ProjectProviderH' QZend_Tool_Project_Provider_ProjectH' QZend_Tool_Project_Provider_ProfileH& OZend_Tool_Project_Provider_ModuleH% MZend_Tool_Project_Provider_ModelH(
 SZend_Tool_Project_Provider_ManifestH&	 OZend_Tool_Project_Provider_LayoutH$ KZend_Tool_Project_Provider_FormH) UZend_Tool_Project_Provider_ExceptionH' QZend_Tool_Project_Provider_DbTableH) UZend_Tool_Project_Provider_DbAdapterH* WZend_Tool_Project_Provider_ControllerH+ YZend_Tool_Project_Provider_ApplicationH& OZend_Tool_Project_Provider_ActionH( SZend_Tool_Project_Provider_AbstractH   i  hE/^?oJ&oM'wQ/




\
9
					f	F	d@l3d?sa7iDlQ3vT8pU5                      !V EZend_XmlRpc_Value_BigIntegerHU =Zend_XmlRpc_Value_Base64HT ;Zend_XmlRpc_Value_ArrayHS 1Zend_XmlRpc_ServerHR ?Zend_XmlRpc_Server_SystemHQ =Zend_XmlRpc_Server_FaultH!P EZend_XmlRpc_Server_ExceptionHO =Zend_XmlRpc_Server_CacheHN 5Zend_XmlRpc_ResponseHM ?Zend_XmlRpc_Response_HttpHL 3Zend_XmlRpc_RequestHK ?Zend_XmlRpc_Request_StdinHJ =Zend_XmlRpc_Request_HttpH$I KZend_XmlRpc_Generator_XmlWriterH,H [Zend_XmlRpc_Generator_GeneratorAbstractH&G OZend_XmlRpc_Generator_DomDocumentHF /Zend_XmlRpc_FaultHE 7Zend_XmlRpc_ExceptionHD 1Zend_XmlRpc_ClientH#C IZend_XmlRpc_Client_ServerProxyH+B YZend_XmlRpc_Client_ServerIntrospectionH+A YZend_XmlRpc_Client_IntrospectExceptionH%@ MZend_XmlRpc_Client_HttpExceptionH&? OZend_XmlRpc_Client_FaultExceptionH!> EZend_XmlRpc_Client_ExceptionH&= OZend_Wildfire_Protocol_JsonStreamH!< EZend_Wildfire_Plugin_FirePhpH.; _Zend_Wildfire_Plugin_FirePhp_TableMessageH): UZend_Wildfire_Plugin_FirePhp_MessageH9 ;Zend_Wildfire_ExceptionH&8 OZend_Wildfire_Channel_HttpHeadersH7 Zend_ViewH6 -Zend_View_StreamH5 AZend_View_Helper_UserAgentH4 5Zend_View_Helper_UrlH3 AZend_View_Helper_TranslateH2 AZend_View_Helper_ServerUrlH)1 UZend_View_Helper_RenderToPlaceholderH!0 EZend_View_Helper_PlaceholderH*/ WZend_View_Helper_Placeholder_RegistryH4. kZend_View_Helper_Placeholder_Registry_ExceptionH+- YZend_View_Helper_Placeholder_ContainerH6, oZend_View_Helper_Placeholder_Container_StandaloneH5+ mZend_View_Helper_Placeholder_Container_ExceptionH4* kZend_View_Helper_Placeholder_Container_AbstractH!) EZend_View_Helper_PartialLoopH( =Zend_View_Helper_PartialH'' QZend_View_Helper_Partial_ExceptionH'& QZend_View_Helper_PaginationControlH % CZend_View_Helper_NavigationH($ SZend_View_Helper_Navigation_SitemapH%# MZend_View_Helper_Navigation_MenuH&" OZend_View_Helper_Navigation_LinksH/! aZend_View_Helper_Navigation_HelperAbstractH,  [Zend_View_Helper_Navigation_BreadcrumbsH ;Zend_View_Helper_LayoutH 7Zend_View_Helper_JsonH" GZend_View_Helper_InlineScriptH# IZend_View_Helper_HtmlQuicktimeH ?Zend_View_Helper_HtmlPageH  CZend_View_Helper_HtmlObjectH ?Zend_View_Helper_HtmlListH AZend_View_Helper_HtmlFlashH! EZend_View_Helper_HtmlElementH AZend_View_Helper_HeadTitleH AZend_View_Helper_HeadStyleH  CZend_View_Helper_HeadScriptH ?Zend_View_Helper_HeadMetaH ?Zend_View_Helper_HeadLinkH ?Zend_View_Helper_GravatarH" GZend_View_Helper_FormTextareaH ?Zend_View_Helper_FormTextH  CZend_View_Helper_FormSubmitH  CZend_View_Helper_FormSelectH AZend_View_Helper_FormResetH AZend_View_Helper_FormRadioH"
 GZend_View_Helper_FormPasswordH	 ?Zend_View_Helper_FormNoteH' QZend_View_Helper_FormMultiCheckboxH AZend_View_Helper_FormLabelH AZend_View_Helper_FormImageH  CZend_View_Helper_FormHiddenH ?Zend_View_Helper_FormFileH  CZend_View_Helper_FormErrorsH! EZend_View_Helper_FormElementH" GZend_View_Helper_FormCheckboxH   CZend_View_Helper_FormButtonH 7Zend_View_Helper_FormH~ ?Zend_View_Helper_FieldsetH} =Zend_View_Helper_DoctypeH!| EZend_View_Helper_DeclareVarsH{ 9Zend_View_Helper_CycleHz ?Zend_View_Helper_CurrencyHy =Zend_View_Helper_BaseUrlHx ;Zend_View_Helper_ActionHw ?Zend_View_Helper_AbstractHv 3Zend_View_ExceptionHu 1Zend_View_AbstractHt %Zend_VersionHs 'Zend_ValidateHr AZend_Validate_StringLengthH#q IZend_Validate_Sitemap_PriorityHp ?Zend_Validate_Sitemap_LocH"o GZend_Validate_Sitemap_LastmodH%n MZend_Validate_Sitemap_ChangefreqH   i  uQ/y_6nS8tQ- iK2




{
X
3
			o	?	\/c<f?b8~]9{_F"`2hB                                 ? ?Zend_Barcode_Object_Itf14I"> GZend_Barcode_Object_IdentcodeI"= GZend_Barcode_Object_ExceptionI< ?Zend_Barcode_Object_ErrorI; =Zend_Barcode_Object_Ean8I: =Zend_Barcode_Object_Ean5I9 =Zend_Barcode_Object_Ean2I8 ?Zend_Barcode_Object_Ean13I7 AZend_Barcode_Object_Code39I*6 WZend_Barcode_Object_Code25interleavedI5 AZend_Barcode_Object_Code25I 4 CZend_Barcode_Object_Code128I3 9Zend_Barcode_ExceptionI2 Zend_AuthI1 ?Zend_Auth_Storage_SessionI$0 KZend_Auth_Storage_NonPersistentI / CZend_Auth_Storage_ExceptionI. -Zend_Auth_ResultI- 3Zend_Auth_ExceptionI, =Zend_Auth_Adapter_OpenIdI+ 9Zend_Auth_Adapter_LdapI* 9Zend_Auth_Adapter_HttpI)) UZend_Auth_Adapter_Http_Resolver_FileI.( _Zend_Auth_Adapter_Http_Resolver_ExceptionI ' CZend_Auth_Adapter_ExceptionI& =Zend_Auth_Adapter_DigestI% ?Zend_Auth_Adapter_DbTableI$ -Zend_ApplicationI## IZend_Application_Resource_ViewI(" SZend_Application_Resource_UserAgentI(! SZend_Application_Resource_TranslateI&  OZend_Application_Resource_SessionI% MZend_Application_Resource_RouterI/ aZend_Application_Resource_ResourceAbstractI) UZend_Application_Resource_NavigationI& OZend_Application_Resource_MultidbI& OZend_Application_Resource_ModulesI# IZend_Application_Resource_MailI" GZend_Application_Resource_LogI% MZend_Application_Resource_LocaleI% MZend_Application_Resource_LayoutI. _Zend_Application_Resource_FrontcontrollerI( SZend_Application_Resource_ExceptionI# IZend_Application_Resource_DojoI! EZend_Application_Resource_DbI+ YZend_Application_Resource_CachemanagerI& OZend_Application_Module_BootstrapI' QZend_Application_Module_AutoloaderI AZend_Application_ExceptionI) UZend_Application_Bootstrap_ExceptionI1 eZend_Application_Bootstrap_BootstrapAbstractI) UZend_Application_Bootstrap_BootstrapI ?Zend_Amf_Value_TraitsInfoI-
 ]Zend_Amf_Value_Messaging_RemotingMessageI*	 WZend_Amf_Value_Messaging_ErrorMessageI, [Zend_Amf_Value_Messaging_CommandMessageI* WZend_Amf_Value_Messaging_AsyncMessageI- ]Zend_Amf_Value_Messaging_ArrayCollectionI0 cZend_Amf_Value_Messaging_AcknowledgeMessageI- ]Zend_Amf_Value_Messaging_AbstractMessageI! EZend_Amf_Value_MessageHeaderI AZend_Amf_Value_MessageBodyI =Zend_Amf_Value_ByteArrayI  AZend_Amf_Util_BinaryStreamI +Zend_Amf_ServerI~ ?Zend_Amf_Server_ExceptionI} /Zend_Amf_ResponseI| 9Zend_Amf_Response_HttpI{ -Zend_Amf_RequestIz 7Zend_Amf_Request_HttpIy ?Zend_Amf_Parse_TypeLoaderIx ?Zend_Amf_Parse_SerializerI#w IZend_Amf_Parse_Resource_StreamI(v SZend_Amf_Parse_Resource_MysqlResultI)u UZend_Amf_Parse_Resource_MysqliResultI t CZend_Amf_Parse_OutputStreamIs AZend_Amf_Parse_InputStreamI r CZend_Amf_Parse_DeserializerI#q IZend_Amf_Parse_Amf3_SerializerI%p MZend_Amf_Parse_Amf3_DeserializerI#o IZend_Amf_Parse_Amf0_SerializerI%n MZend_Amf_Parse_Amf0_DeserializerIm 1Zend_Amf_ExceptionIl 1Zend_Amf_ConstantsIk 9Zend_Amf_Auth_AbstractI j CZend_Amf_Adobe_IntrospectorIi AZend_Amf_Adobe_DbInspectorIh 3Zend_Amf_Adobe_AuthIg Zend_AclIf 'Zend_Acl_RoleIe 9Zend_Acl_Role_RegistryI%d MZend_Acl_Role_Registry_ExceptionIc /Zend_Acl_ResourceIb 1Zend_Acl_ExceptionIa /Zend_XmlRpc_ValueH` =Zend_XmlRpc_Value_StructH_ =Zend_XmlRpc_Value_StringH^ =Zend_XmlRpc_Value_ScalarH] 7Zend_XmlRpc_Value_NilH\ ?Zend_XmlRpc_Value_IntegerH [ CZend_XmlRpc_Value_ExceptionHZ =Zend_XmlRpc_Value_DoubleHY AZend_XmlRpc_Value_DateTimeH!X EZend_XmlRpc_Value_CollectionHW ?Zend_XmlRpc_Value_BooleanH   Y  g=	mEY&n>!\3



i
+			}	F	xGxJZ"b@jKgDV/\0	     &t OZend_EventManager_EventCollectionI s CZend_Db_Statement_InterfaceI$r KZend_Currency_CurrencyInterfaceI)q UZend_Crypt_Math_BigInteger_InterfaceI+p YZend_Controller_Router_Route_InterfaceI%o MZend_Controller_Router_InterfaceI)n UZend_Controller_Dispatcher_InterfaceI%m MZend_Controller_Action_InterfaceI&l OZend_Cloud_StorageService_AdapterI$k KZend_Cloud_QueueService_AdapterI&j OZend_Cloud_Infrastructure_AdapterI,i [Zend_Cloud_DocumentService_QueryAdapterI'h QZend_Cloud_DocumentService_AdapterIg 5Zend_Captcha_AdapterI!f EZend_Cache_Backend_InterfaceI)e UZend_Cache_Backend_ExtendedInterfaceI d CZend_Auth_Storage_InterfaceI c CZend_Auth_Adapter_InterfaceI.b _Zend_Auth_Adapter_Http_Resolver_InterfaceI'a QZend_Application_Resource_ResourceI4` kZend_Application_Bootstrap_ResourceBootstrapperI,_ [Zend_Application_Bootstrap_BootstrapperI^ ;Zend_Acl_Role_InterfaceI ] CZend_Acl_Resource_InterfaceI\ ?Zend_Acl_Assert_InterfaceI#[ IZend_Wildfire_Plugin_InterfaceH$Z KZend_Wildfire_Channel_InterfaceHY 3Zend_View_InterfaceH'X QZend_View_Helper_Navigation_HelperHW AZend_View_Helper_InterfaceHV ;Zend_Validate_InterfaceH+U YZend_Validate_Barcode_AdapterInterfaceH3T iZend_Tool_Project_Profile_FileParser_InterfaceH:S wZend_Tool_Project_Context_System_TopLevelRestrictableH5R mZend_Tool_Project_Context_System_NotOverwritableH/Q aZend_Tool_Project_Context_System_InterfaceH(P SZend_Tool_Project_Context_InterfaceH+O YZend_Tool_Framework_Registry_InterfaceH2N gZend_Tool_Framework_Registry_EnabledInterfaceH-M ]Zend_Tool_Framework_Provider_PretendableH+L YZend_Tool_Framework_Provider_InterfaceH.K _Zend_Tool_Framework_Provider_InteractableH/J aZend_Tool_Framework_Provider_InitializableH;I yZend_Tool_Framework_Provider_DocblockManifestInterfaceH+H YZend_Tool_Framework_Metadata_InterfaceH.G _Zend_Tool_Framework_Metadata_AttributableH6F oZend_Tool_Framework_Manifest_ProviderManifestableH6E oZend_Tool_Framework_Manifest_MetadataManifestableH+D YZend_Tool_Framework_Manifest_InterfaceH+C YZend_Tool_Framework_Manifest_IndexableH4B kZend_Tool_Framework_Manifest_ActionManifestableH)A UZend_Tool_Framework_Loader_InterfaceH8@ sZend_Tool_Framework_Client_Storage_AdapterInterfaceHD? 	Zend_Tool_Framework_Client_Response_ContentDecorator_InterfaceH;> yZend_Tool_Framework_Client_Interactive_OutputInterfaceH:= wZend_Tool_Framework_Client_Interactive_InputInterfaceH)< UZend_Tool_Framework_Action_InterfaceH(; SZend_Text_Table_Decorator_InterfaceH: /Zend_Tag_TaggableH9 7Zend_Stdlib_ExceptionH&8 OZend_Soap_Wsdl_Strategy_InterfaceH%7 MZend_Session_Validator_InterfaceH'6 QZend_Session_SaveHandler_InterfaceH$5 KZend_Service_ShortUrl_ShortenerHI4 Zend_Service_DeveloperGarden_Response_SecurityTokenServer_InterfaceH3 7Zend_Server_InterfaceH-2 ]Zend_Serializer_Adapter_AdapterInterfaceH41 kZend_Search_Lucene_Search_Highlighter_InterfaceH!0 EZend_Search_Lucene_InterfaceH3/ iZend_Search_Lucene_Index_TermsStream_InterfaceH$. KZend_Queue_Stomp_FrameInterfaceH0- cZend_Queue_Stomp_Client_ConnectionInterfaceH(, SZend_Queue_Adapter_AdapterInterfaceH+ ?Zend_Pdf_Filter_InterfaceH&* OZend_Pdf_ElementFactory_InterfaceH) ?Zend_Pdf_Canvas_InterfaceH,( [Zend_Paginator_ScrollingStyle_InterfaceH$' KZend_Paginator_AdapterAggregateH%& MZend_Paginator_Adapter_InterfaceH&% OZend_Oauth_Config_ConfigInterfaceH'$ QZend_Mobile_Push_Message_InterfaceH# AZend_Mobile_Push_InterfaceH$" KZend_Memory_Container_InterfaceH1! eZend_Markup_Renderer_TokenConverterInterfaceH'  QZend_Markup_Parser_ParserInterfaceH) UZend_Mail_Storage_Writable_InterfaceH' QZend_Mail_Storage_Folder_InterfaceH =Zend_Mail_Part_InterfaceH  CZend_Mail_Message_InterfaceH   a  iC"dB-|Z8Z.rQ,	





g
K
0
				_	+Z-T vKQzEW3i7c4                     "  GZend_CodeGenerator_Php_MethodI, [Zend_CodeGenerator_Php_Member_ContainerI+ YZend_CodeGenerator_Php_Member_AbstractI  CZend_CodeGenerator_Php_FileI% MZend_CodeGenerator_Php_ExceptionI$ KZend_CodeGenerator_Php_DocblockI( SZend_CodeGenerator_Php_Docblock_TagI/ aZend_CodeGenerator_Php_Docblock_Tag_ReturnI. _Zend_CodeGenerator_Php_Docblock_Tag_ParamI0 cZend_CodeGenerator_Php_Docblock_Tag_LicenseI! EZend_CodeGenerator_Php_ClassI  CZend_CodeGenerator_Php_BodyI$ KZend_CodeGenerator_Php_AbstractI! EZend_CodeGenerator_ExceptionI  CZend_CodeGenerator_AbstractI& OZend_Cloud_StorageService_FactoryI( SZend_Cloud_StorageService_ExceptionI3 iZend_Cloud_StorageService_Adapter_WindowsAzureI) UZend_Cloud_StorageService_Adapter_S3I0 cZend_Cloud_StorageService_Adapter_RackspaceI1 eZend_Cloud_StorageService_Adapter_FileSystemI' QZend_Cloud_QueueService_MessageSetI$
 KZend_Cloud_QueueService_MessageI$	 KZend_Cloud_QueueService_FactoryI& OZend_Cloud_QueueService_ExceptionI. _Zend_Cloud_QueueService_Adapter_ZendQueueI1 eZend_Cloud_QueueService_Adapter_WindowsAzureI( SZend_Cloud_QueueService_Adapter_SqsI4 kZend_Cloud_QueueService_Adapter_AbstractAdapterI. _Zend_Cloud_OperationNotAvailableExceptionI+ YZend_Cloud_Infrastructure_InstanceListI' QZend_Cloud_Infrastructure_InstanceI(  SZend_Cloud_Infrastructure_ImageListI$ KZend_Cloud_Infrastructure_ImageI&~ OZend_Cloud_Infrastructure_FactoryI(} SZend_Cloud_Infrastructure_ExceptionI0| cZend_Cloud_Infrastructure_Adapter_RackspaceI*{ WZend_Cloud_Infrastructure_Adapter_Ec2I6z oZend_Cloud_Infrastructure_Adapter_AbstractAdapterIy 5Zend_Cloud_ExceptionI%x MZend_Cloud_DocumentService_QueryI'w QZend_Cloud_DocumentService_FactoryI)v UZend_Cloud_DocumentService_ExceptionI+u YZend_Cloud_DocumentService_DocumentSetI(t SZend_Cloud_DocumentService_DocumentI4s kZend_Cloud_DocumentService_Adapter_WindowsAzureI:r wZend_Cloud_DocumentService_Adapter_WindowsAzure_QueryI0q cZend_Cloud_DocumentService_Adapter_SimpleDbI6p oZend_Cloud_DocumentService_Adapter_SimpleDb_QueryI7o qZend_Cloud_DocumentService_Adapter_AbstractAdapterIn AZend_Cloud_AbstractFactoryIm /Zend_Captcha_WordIl 9Zend_Captcha_ReCaptchaIk 1Zend_Captcha_ImageIj 3Zend_Captcha_FigletIi 9Zend_Captcha_ExceptionIh /Zend_Captcha_DumbIg /Zend_Captcha_BaseIf !Zend_CacheIe 1Zend_Cache_ManagerId =Zend_Cache_Frontend_PageIc AZend_Cache_Frontend_OutputI!b EZend_Cache_Frontend_FunctionIa =Zend_Cache_Frontend_FileI` ?Zend_Cache_Frontend_ClassI _ CZend_Cache_Frontend_CaptureI^ 5Zend_Cache_ExceptionI] +Zend_Cache_CoreI\ 1Zend_Cache_BackendI"[ GZend_Cache_Backend_ZendServerI(Z SZend_Cache_Backend_ZendServer_ShMemI'Y QZend_Cache_Backend_ZendServer_DiskI$X KZend_Cache_Backend_ZendPlatformIW ?Zend_Cache_Backend_XcacheI V CZend_Cache_Backend_WinCacheI!U EZend_Cache_Backend_TwoLevelsIT ;Zend_Cache_Backend_TestIS ?Zend_Cache_Backend_StaticIR ?Zend_Cache_Backend_SqliteI!Q EZend_Cache_Backend_MemcachedI$P KZend_Cache_Backend_LibmemcachedIO ;Zend_Cache_Backend_FileI!N EZend_Cache_Backend_BlackHoleIM 9Zend_Cache_Backend_ApcIL %Zend_BarcodeIK ?Zend_Barcode_Renderer_SvgI+J YZend_Barcode_Renderer_RendererAbstractII ?Zend_Barcode_Renderer_PdfI H CZend_Barcode_Renderer_ImageI$G KZend_Barcode_Renderer_ExceptionIF =Zend_Barcode_Object_UpceIE =Zend_Barcode_Object_UpcaI"D GZend_Barcode_Object_RoyalmailI C CZend_Barcode_Object_PostnetIB AZend_Barcode_Object_PlanetI'A QZend_Barcode_Object_ObjectAbstractI!@ EZend_Barcode_Object_LeitcodeI   f  lD&mN.c4]],


i
J
					]	2	c9qF zL!pK ~Q*gL5"gA%sN*                    ;Zend_Db_Adapter_Pdo_IbmI  CZend_Db_Adapter_Pdo_Ibm_IdsI  CZend_Db_Adapter_Pdo_Ibm_Db2I! EZend_Db_Adapter_Pdo_AbstractI 9Zend_Db_Adapter_OracleI% MZend_Db_Adapter_Oracle_ExceptionI  9Zend_Db_Adapter_MysqliI% MZend_Db_Adapter_Mysqli_ExceptionI~ ?Zend_Db_Adapter_ExceptionI} 3Zend_Db_Adapter_Db2I"| GZend_Db_Adapter_Db2_ExceptionI{ =Zend_Db_Adapter_AbstractIz Zend_DateIy 3Zend_Date_ExceptionIx 5Zend_Date_DateObjectIw -Zend_Date_CitiesIv 'Zend_CurrencyIu ;Zend_Currency_ExceptionIt !Zend_CryptIs )Zend_Crypt_RsaIr 1Zend_Crypt_Rsa_KeyIq ?Zend_Crypt_Rsa_Key_PublicIp AZend_Crypt_Rsa_Key_PrivateIo =Zend_Crypt_Rsa_ExceptionIn +Zend_Crypt_MathIm ?Zend_Crypt_Math_ExceptionIl AZend_Crypt_Math_BigIntegerI#k IZend_Crypt_Math_BigInteger_GmpI)j UZend_Crypt_Math_BigInteger_ExceptionI&i OZend_Crypt_Math_BigInteger_BcmathIh +Zend_Crypt_HmacIg ?Zend_Crypt_Hmac_ExceptionIf 5Zend_Crypt_ExceptionIe =Zend_Crypt_DiffieHellmanI'd QZend_Crypt_DiffieHellman_ExceptionI!c EZend_Controller_Router_RouteI(b SZend_Controller_Router_Route_StaticI'a QZend_Controller_Router_Route_RegexI(` SZend_Controller_Router_Route_ModuleI*_ WZend_Controller_Router_Route_HostnameI'^ QZend_Controller_Router_Route_ChainI*] WZend_Controller_Router_Route_AbstractI#\ IZend_Controller_Router_RewriteI%[ MZend_Controller_Router_ExceptionI$Z KZend_Controller_Router_AbstractI*Y WZend_Controller_Response_HttpTestCaseI"X GZend_Controller_Response_HttpI'W QZend_Controller_Response_ExceptionI!V EZend_Controller_Response_CliI&U OZend_Controller_Response_AbstractI#T IZend_Controller_Request_SimpleI)S UZend_Controller_Request_HttpTestCaseI!R EZend_Controller_Request_HttpI&Q OZend_Controller_Request_ExceptionI&P OZend_Controller_Request_Apache404I%O MZend_Controller_Request_AbstractI&N OZend_Controller_Plugin_PutHandlerI(M SZend_Controller_Plugin_ErrorHandlerI"L GZend_Controller_Plugin_BrokerI'K QZend_Controller_Plugin_ActionStackI$J KZend_Controller_Plugin_AbstractII 7Zend_Controller_FrontIH ?Zend_Controller_ExceptionI(G SZend_Controller_Dispatcher_StandardI)F UZend_Controller_Dispatcher_ExceptionI(E SZend_Controller_Dispatcher_AbstractID 9Zend_Controller_ActionI(C SZend_Controller_Action_HelperBrokerI6B oZend_Controller_Action_HelperBroker_PriorityStackI/A aZend_Controller_Action_Helper_ViewRendererI&@ OZend_Controller_Action_Helper_UrlI-? ]Zend_Controller_Action_Helper_RedirectorI'> QZend_Controller_Action_Helper_JsonI1= eZend_Controller_Action_Helper_FlashMessengerI0< cZend_Controller_Action_Helper_ContextSwitchI(; SZend_Controller_Action_Helper_CacheI<: {Zend_Controller_Action_Helper_AutoCompleteScriptaculousI39 iZend_Controller_Action_Helper_AutoCompleteDojoI88 sZend_Controller_Action_Helper_AutoComplete_AbstractI.7 _Zend_Controller_Action_Helper_AjaxContextI.6 _Zend_Controller_Action_Helper_ActionStackI+5 YZend_Controller_Action_Helper_AbstractI%4 MZend_Controller_Action_ExceptionI3 3Zend_Console_GetoptI"2 GZend_Console_Getopt_ExceptionI1 #Zend_ConfigI0 -Zend_Config_YamlI/ +Zend_Config_XmlI. 1Zend_Config_WriterI- ;Zend_Config_Writer_YamlI, 9Zend_Config_Writer_XmlI+ ;Zend_Config_Writer_JsonI* 9Zend_Config_Writer_IniI$) KZend_Config_Writer_FileAbstractI( =Zend_Config_Writer_ArrayI' -Zend_Config_JsonI& +Zend_Config_IniI% 7Zend_Config_ExceptionI$$ KZend_CodeGenerator_Php_PropertyI1# eZend_CodeGenerator_Php_Property_DefaultValueI%" MZend_CodeGenerator_Php_ParameterI2! gZend_CodeGenerator_Php_Parameter_DefaultValueI   f  zW.}dC,vK*|bC"{T7






j
6
			y	K	 nH yO)pAnGf5	h>k>vJ                             *l WZend_Dojo_View_Helper_PasswordTextBoxI(k SZend_Dojo_View_Helper_NumberTextBoxI(j SZend_Dojo_View_Helper_NumberSpinnerI+i YZend_Dojo_View_Helper_HorizontalSliderIh AZend_Dojo_View_Helper_FormI*g WZend_Dojo_View_Helper_FilteringSelectI!f EZend_Dojo_View_Helper_EditorIe AZend_Dojo_View_Helper_DojoI)d UZend_Dojo_View_Helper_Dojo_ContainerI)c UZend_Dojo_View_Helper_DijitContainerI b CZend_Dojo_View_Helper_DijitI&a OZend_Dojo_View_Helper_DateTextBoxI&` OZend_Dojo_View_Helper_CustomDijitI*_ WZend_Dojo_View_Helper_CurrencyTextBoxI&^ OZend_Dojo_View_Helper_ContentPaneI#] IZend_Dojo_View_Helper_ComboBoxI#\ IZend_Dojo_View_Helper_CheckBoxI![ EZend_Dojo_View_Helper_ButtonI*Z WZend_Dojo_View_Helper_BorderContainerI(Y SZend_Dojo_View_Helper_AccordionPaneI-X ]Zend_Dojo_View_Helper_AccordionContainerIW =Zend_Dojo_View_ExceptionIV )Zend_Dojo_FormIU 9Zend_Dojo_Form_SubFormI*T WZend_Dojo_Form_Element_VerticalSliderI-S ]Zend_Dojo_Form_Element_ValidationTextBoxI'R QZend_Dojo_Form_Element_TimeTextBoxI#Q IZend_Dojo_Form_Element_TextBoxI$P KZend_Dojo_Form_Element_TextareaI(O SZend_Dojo_Form_Element_SubmitButtonI"N GZend_Dojo_Form_Element_SliderI*M WZend_Dojo_Form_Element_SimpleTextareaI'L QZend_Dojo_Form_Element_RadioButtonI+K YZend_Dojo_Form_Element_PasswordTextBoxI)J UZend_Dojo_Form_Element_NumberTextBoxI)I UZend_Dojo_Form_Element_NumberSpinnerI,H [Zend_Dojo_Form_Element_HorizontalSliderI+G YZend_Dojo_Form_Element_FilteringSelectI"F GZend_Dojo_Form_Element_EditorI&E OZend_Dojo_Form_Element_DijitMultiI!D EZend_Dojo_Form_Element_DijitI'C QZend_Dojo_Form_Element_DateTextBoxI+B YZend_Dojo_Form_Element_CurrencyTextBoxI$A KZend_Dojo_Form_Element_ComboBoxI$@ KZend_Dojo_Form_Element_CheckBoxI"? GZend_Dojo_Form_Element_ButtonI > CZend_Dojo_Form_DisplayGroupI*= WZend_Dojo_Form_Decorator_TabContainerI,< [Zend_Dojo_Form_Decorator_StackContainerI,; [Zend_Dojo_Form_Decorator_SplitContainerI': QZend_Dojo_Form_Decorator_DijitFormI*9 WZend_Dojo_Form_Decorator_DijitElementI,8 [Zend_Dojo_Form_Decorator_DijitContainerI)7 UZend_Dojo_Form_Decorator_ContentPaneI-6 ]Zend_Dojo_Form_Decorator_BorderContainerI+5 YZend_Dojo_Form_Decorator_AccordionPaneI04 cZend_Dojo_Form_Decorator_AccordionContainerI3 3Zend_Dojo_ExceptionI2 )Zend_Dojo_DataI1 5Zend_Dojo_BuildLayerI0 !Zend_DebugI/ Zend_DbI. 'Zend_Db_TableI- 5Zend_Db_Table_SelectI#, IZend_Db_Table_Select_ExceptionI+ 5Zend_Db_Table_RowsetI#* IZend_Db_Table_Rowset_ExceptionI") GZend_Db_Table_Rowset_AbstractI( /Zend_Db_Table_RowI ' CZend_Db_Table_Row_ExceptionI& AZend_Db_Table_Row_AbstractI% ;Zend_Db_Table_ExceptionI$ =Zend_Db_Table_DefinitionI# 9Zend_Db_Table_AbstractI" /Zend_Db_StatementI! =Zend_Db_Statement_SqlsrvI'  QZend_Db_Statement_Sqlsrv_ExceptionI 7Zend_Db_Statement_PdoI ?Zend_Db_Statement_Pdo_OciI ?Zend_Db_Statement_Pdo_IbmI =Zend_Db_Statement_OracleI' QZend_Db_Statement_Oracle_ExceptionI =Zend_Db_Statement_MysqliI' QZend_Db_Statement_Mysqli_ExceptionI  CZend_Db_Statement_ExceptionI 7Zend_Db_Statement_Db2I$ KZend_Db_Statement_Db2_ExceptionI )Zend_Db_SelectI =Zend_Db_Select_ExceptionI -Zend_Db_ProfilerI 9Zend_Db_Profiler_QueryI =Zend_Db_Profiler_FirebugI AZend_Db_Profiler_ExceptionI %Zend_Db_ExprI /Zend_Db_ExceptionI 9Zend_Db_Adapter_SqlsrvI% MZend_Db_Adapter_Sqlsrv_ExceptionI AZend_Db_Adapter_Pdo_SqliteI
 ?Zend_Db_Adapter_Pdo_PgsqlI	 ;Zend_Db_Adapter_Pdo_OciI ?Zend_Db_Adapter_Pdo_MysqlI ?Zend_Db_Adapter_Pdo_MssqlI   \  W*]- }]6ve8uQ)




z
^
.
			t	K	w@S"}JY%qO)_)vFr:                                                               8H sZend_Feed_Writer_Extension_Threading_Renderer_EntryI4G kZend_Feed_Writer_Extension_Slash_Renderer_EntryI0F cZend_Feed_Writer_Extension_RendererAbstractI4E kZend_Feed_Writer_Extension_ITunes_Renderer_FeedI5D mZend_Feed_Writer_Extension_ITunes_Renderer_EntryI+C YZend_Feed_Writer_Extension_ITunes_FeedI,B [Zend_Feed_Writer_Extension_ITunes_EntryI8A sZend_Feed_Writer_Extension_DublinCore_Renderer_FeedI9@ uZend_Feed_Writer_Extension_DublinCore_Renderer_EntryI6? oZend_Feed_Writer_Extension_Content_Renderer_EntryI2> gZend_Feed_Writer_Extension_Atom_Renderer_FeedI6= oZend_Feed_Writer_Exception_InvalidMethodExceptionI< 9Zend_Feed_Writer_EntryI; =Zend_Feed_Writer_DeletedI: 'Zend_Feed_RssI9 -Zend_Feed_ReaderI8 =Zend_Feed_Reader_FeedSetI"7 GZend_Feed_Reader_FeedAbstractI6 ?Zend_Feed_Reader_Feed_RssI5 AZend_Feed_Reader_Feed_AtomI&4 OZend_Feed_Reader_Feed_Atom_SourceI33 iZend_Feed_Reader_Extension_WellFormedWeb_EntryI,2 [Zend_Feed_Reader_Extension_Thread_EntryI01 cZend_Feed_Reader_Extension_Syndication_FeedI+0 YZend_Feed_Reader_Extension_Slash_EntryI,/ [Zend_Feed_Reader_Extension_Podcast_FeedI-. ]Zend_Feed_Reader_Extension_Podcast_EntryI,- [Zend_Feed_Reader_Extension_FeedAbstractI-, ]Zend_Feed_Reader_Extension_EntryAbstractI/+ aZend_Feed_Reader_Extension_DublinCore_FeedI0* cZend_Feed_Reader_Extension_DublinCore_EntryI4) kZend_Feed_Reader_Extension_CreativeCommons_FeedI5( mZend_Feed_Reader_Extension_CreativeCommons_EntryI-' ]Zend_Feed_Reader_Extension_Content_EntryI)& UZend_Feed_Reader_Extension_Atom_FeedI*% WZend_Feed_Reader_Extension_Atom_EntryI#$ IZend_Feed_Reader_EntryAbstractI# AZend_Feed_Reader_Entry_RssI " CZend_Feed_Reader_Entry_AtomI ! CZend_Feed_Reader_CollectionI3  iZend_Feed_Reader_Collection_CollectionAbstractI) UZend_Feed_Reader_Collection_CategoryI' QZend_Feed_Reader_Collection_AuthorI 9Zend_Feed_PubsubhubbubI& OZend_Feed_Pubsubhubbub_SubscriberI/ aZend_Feed_Pubsubhubbub_Subscriber_CallbackI% MZend_Feed_Pubsubhubbub_PublisherI. _Zend_Feed_Pubsubhubbub_Model_SubscriptionI/ aZend_Feed_Pubsubhubbub_Model_ModelAbstractI( SZend_Feed_Pubsubhubbub_HttpResponseI% MZend_Feed_Pubsubhubbub_ExceptionI, [Zend_Feed_Pubsubhubbub_CallbackAbstractI 3Zend_Feed_ExceptionI 3Zend_Feed_Entry_RssI 5Zend_Feed_Entry_AtomI =Zend_Feed_Entry_AbstractI /Zend_Feed_ElementI /Zend_Feed_BuilderI =Zend_Feed_Builder_HeaderI$ KZend_Feed_Builder_Header_ItunesI  CZend_Feed_Builder_ExceptionI ;Zend_Feed_Builder_EntryI
 )Zend_Feed_AtomI	 1Zend_Feed_AbstractI )Zend_ExceptionI) UZend_EventManager_StaticEventManagerI) UZend_EventManager_SharedEventManagerI) UZend_EventManager_ResponseCollectionI SplStackI) UZend_EventManager_GlobalEventManagerI" GZend_EventManager_FilterChainI, [Zend_EventManager_Filter_FilterIteratorI9  uZend_EventManager_Exception_InvalidArgumentExceptionI# IZend_EventManager_EventManagerI~ ;Zend_EventManager_EventI} )Zend_Dom_QueryI| 7Zend_Dom_Query_ResultI{ =Zend_Dom_Query_Css2XpathIz 1Zend_Dom_ExceptionIy Zend_DojoI)x UZend_Dojo_View_Helper_VerticalSliderI,w [Zend_Dojo_View_Helper_ValidationTextBoxI&v OZend_Dojo_View_Helper_TimeTextBoxI"u GZend_Dojo_View_Helper_TextBoxI#t IZend_Dojo_View_Helper_TextareaI's QZend_Dojo_View_Helper_TabContainerI'r QZend_Dojo_View_Helper_SubmitButtonI)q UZend_Dojo_View_Helper_StackContainerI)p UZend_Dojo_View_Helper_SplitContainerI!o EZend_Dojo_View_Helper_SliderI)n UZend_Dojo_View_Helper_SimpleTextareaI&m OZend_Dojo_View_Helper_RadioButtonI   k  wB}Q&Y1gFtW8




h
G
&
					g	O	%aB |S* }O i;{U0zX6
yX6pP(  3 AZend_Form_Element_PasswordI"2 GZend_Form_Element_MultiselectI$1 KZend_Form_Element_MultiCheckboxI0 ;Zend_Form_Element_MultiI/ ;Zend_Form_Element_ImageI. =Zend_Form_Element_HiddenI- 9Zend_Form_Element_HashI, 9Zend_Form_Element_FileI + CZend_Form_Element_ExceptionI* AZend_Form_Element_CheckboxI) ?Zend_Form_Element_CaptchaI( =Zend_Form_Element_ButtonI' 9Zend_Form_DisplayGroupI#& IZend_Form_Decorator_ViewScriptI#% IZend_Form_Decorator_ViewHelperI $ CZend_Form_Decorator_TooltipI(# SZend_Form_Decorator_PrepareElementsI" ?Zend_Form_Decorator_LabelI! ?Zend_Form_Decorator_ImageI   CZend_Form_Decorator_HtmlTagI# IZend_Form_Decorator_FormErrorsI% MZend_Form_Decorator_FormElementsI =Zend_Form_Decorator_FormI =Zend_Form_Decorator_FileI! EZend_Form_Decorator_FieldsetI" GZend_Form_Decorator_ExceptionI AZend_Form_Decorator_ErrorsI$ KZend_Form_Decorator_DtDdWrapperI$ KZend_Form_Decorator_DescriptionI  CZend_Form_Decorator_CaptchaI% MZend_Form_Decorator_Captcha_WordI* WZend_Form_Decorator_Captcha_ReCaptchaI! EZend_Form_Decorator_CallbackI! EZend_Form_Decorator_AbstractI #Zend_FilterI+ YZend_Filter_Word_UnderscoreToSeparatorI& OZend_Filter_Word_UnderscoreToDashI+ YZend_Filter_Word_UnderscoreToCamelCaseI* WZend_Filter_Word_SeparatorToSeparatorI% MZend_Filter_Word_SeparatorToDashI* WZend_Filter_Word_SeparatorToCamelCaseI(
 SZend_Filter_Word_Separator_AbstractI&	 OZend_Filter_Word_DashToUnderscoreI% MZend_Filter_Word_DashToSeparatorI% MZend_Filter_Word_DashToCamelCaseI+ YZend_Filter_Word_CamelCaseToUnderscoreI* WZend_Filter_Word_CamelCaseToSeparatorI% MZend_Filter_Word_CamelCaseToDashI 7Zend_Filter_StripTagsI ?Zend_Filter_StripNewlinesI 9Zend_Filter_StringTrimI  ?Zend_Filter_StringToUpperI ?Zend_Filter_StringToLowerI~ 5Zend_Filter_RealPathI} ;Zend_Filter_PregReplaceI| -Zend_Filter_NullI&{ OZend_Filter_NormalizedToLocalizedI&z OZend_Filter_LocalizedToNormalizedIy +Zend_Filter_IntIx /Zend_Filter_InputIw 7Zend_Filter_InflectorIv =Zend_Filter_HtmlEntitiesIu AZend_Filter_File_UpperCaseIt ;Zend_Filter_File_RenameIs AZend_Filter_File_LowerCaseIr =Zend_Filter_File_EncryptIq =Zend_Filter_File_DecryptIp 7Zend_Filter_ExceptionIo 3Zend_Filter_EncryptI n CZend_Filter_Encrypt_OpensslIm AZend_Filter_Encrypt_McryptIl +Zend_Filter_DirIk 1Zend_Filter_DigitsIj 3Zend_Filter_DecryptIi 9Zend_Filter_DecompressIh 5Zend_Filter_CompressIg =Zend_Filter_Compress_ZipIf =Zend_Filter_Compress_TarIe =Zend_Filter_Compress_RarId =Zend_Filter_Compress_LzfIc ;Zend_Filter_Compress_GzI*b WZend_Filter_Compress_CompressAbstractIa =Zend_Filter_Compress_Bz2I` 5Zend_Filter_CallbackI_ 3Zend_Filter_BooleanI^ 5Zend_Filter_BaseNameI] /Zend_Filter_AlphaI\ /Zend_Filter_AlnumI[ 1Zend_File_TransferI!Z EZend_File_Transfer_ExceptionI$Y KZend_File_Transfer_Adapter_HttpI(X SZend_File_Transfer_Adapter_AbstractIW AZend_File_ClassFileLocatorIV Zend_FeedIU -Zend_Feed_WriterIT ;Zend_Feed_Writer_SourceI/S aZend_Feed_Writer_Renderer_RendererAbstractI'R QZend_Feed_Writer_Renderer_Feed_RssI(Q SZend_Feed_Writer_Renderer_Feed_AtomI/P aZend_Feed_Writer_Renderer_Feed_Atom_SourceI5O mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstractI(N SZend_Feed_Writer_Renderer_Entry_RssI)M UZend_Feed_Writer_Renderer_Entry_AtomI1L eZend_Feed_Writer_Renderer_Entry_Atom_DeletedIK 7Zend_Feed_Writer_FeedI'J QZend_Feed_Writer_Feed_FeedAbstractI<I {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_EntryI   c  ~_<g=vHy]6vM 




X
-
				q	I	{U.|T/]Ad3zPiBj?uD                  3Zend_Gdata_CalendarI! EZend_Gdata_Calendar_ListFeedI" GZend_Gdata_Calendar_ListEntryI- ]Zend_Gdata_Calendar_Extension_WebContentI+ YZend_Gdata_Calendar_Extension_TimezoneI9 uZend_Gdata_Calendar_Extension_SendEventNotificationsI+ YZend_Gdata_Calendar_Extension_SelectedI+ YZend_Gdata_Calendar_Extension_QuickAddI' QZend_Gdata_Calendar_Extension_LinkI) UZend_Gdata_Calendar_Extension_HiddenI( SZend_Gdata_Calendar_Extension_ColorI. _Zend_Gdata_Calendar_Extension_AccessLevelI#
 IZend_Gdata_Calendar_EventQueryI"	 GZend_Gdata_Calendar_EventFeedI# IZend_Gdata_Calendar_EventEntryI -Zend_Gdata_BooksI! EZend_Gdata_Books_VolumeQueryI  CZend_Gdata_Books_VolumeFeedI! EZend_Gdata_Books_VolumeEntryI+ YZend_Gdata_Books_Extension_ViewabilityI- ]Zend_Gdata_Books_Extension_ThumbnailLinkI& OZend_Gdata_Books_Extension_ReviewI+  YZend_Gdata_Books_Extension_PreviewLinkI( SZend_Gdata_Books_Extension_InfoLinkI-~ ]Zend_Gdata_Books_Extension_EmbeddabilityI)} UZend_Gdata_Books_Extension_BooksLinkI-| ]Zend_Gdata_Books_Extension_BooksCategoryI.{ _Zend_Gdata_Books_Extension_AnnotationLinkI$z KZend_Gdata_Books_CollectionFeedI%y MZend_Gdata_Books_CollectionEntryIx 1Zend_Gdata_AuthSubIw )Zend_Gdata_AppI$v KZend_Gdata_App_VersionExceptionIu 3Zend_Gdata_App_UtilI#t IZend_Gdata_App_MediaFileSourceIs ?Zend_Gdata_App_MediaEntryI2r gZend_Gdata_App_LoggingHttpClientAdapterSocketIq AZend_Gdata_App_IOExceptionI,p [Zend_Gdata_App_InvalidArgumentExceptionI!o EZend_Gdata_App_HttpExceptionI$n KZend_Gdata_App_FeedSourceParentI#m IZend_Gdata_App_FeedEntryParentIl 3Zend_Gdata_App_FeedIk =Zend_Gdata_App_ExtensionI!j EZend_Gdata_App_Extension_UriI%i MZend_Gdata_App_Extension_UpdatedI#h IZend_Gdata_App_Extension_TitleI"g GZend_Gdata_App_Extension_TextI%f MZend_Gdata_App_Extension_SummaryI&e OZend_Gdata_App_Extension_SubtitleI$d KZend_Gdata_App_Extension_SourceI$c KZend_Gdata_App_Extension_RightsI'b QZend_Gdata_App_Extension_PublishedI$a KZend_Gdata_App_Extension_PersonI"` GZend_Gdata_App_Extension_NameI"_ GZend_Gdata_App_Extension_LogoI"^ GZend_Gdata_App_Extension_LinkI ] CZend_Gdata_App_Extension_IdI"\ GZend_Gdata_App_Extension_IconI'[ QZend_Gdata_App_Extension_GeneratorI#Z IZend_Gdata_App_Extension_EmailI%Y MZend_Gdata_App_Extension_ElementI$X KZend_Gdata_App_Extension_EditedI#W IZend_Gdata_App_Extension_DraftI%V MZend_Gdata_App_Extension_ControlI)U UZend_Gdata_App_Extension_ContributorI%T MZend_Gdata_App_Extension_ContentI&S OZend_Gdata_App_Extension_CategoryI$R KZend_Gdata_App_Extension_AuthorIQ =Zend_Gdata_App_ExceptionIP 5Zend_Gdata_App_EntryI,O [Zend_Gdata_App_CaptchaRequiredExceptionI#N IZend_Gdata_App_BaseMediaSourceIM 3Zend_Gdata_App_BaseI*L WZend_Gdata_App_BadMethodCallExceptionI!K EZend_Gdata_App_AuthExceptionIJ 5Zend_Gdata_AnalyticsI+I YZend_Gdata_Analytics_Extension_TableIdI,H [Zend_Gdata_Analytics_Extension_PropertyI*G WZend_Gdata_Analytics_Extension_MetricIF ?Zend_Gdata_Analytics_GoalI-E ]Zend_Gdata_Analytics_Extension_DimensionI#D IZend_Gdata_Analytics_DataQueryI"C GZend_Gdata_Analytics_DataFeedI#B IZend_Gdata_Analytics_DataEntryI&A OZend_Gdata_Analytics_AccountQueryI%@ MZend_Gdata_Analytics_AccountFeedI&? OZend_Gdata_Analytics_AccountEntryI> Zend_FormI= /Zend_Form_SubFormI< 3Zend_Form_ExceptionI; /Zend_Form_ElementI: ;Zend_Form_Element_XhtmlI9 AZend_Form_Element_TextareaI8 9Zend_Form_Element_TextI7 =Zend_Form_Element_SubmitI6 =Zend_Form_Element_SelectI5 ;Zend_Form_Element_ResetI4 ;Zend_Form_Element_RadioI   c  pX(e4uW> tLY<$




X
*
			j	?	rJ(`8Z1	dAb;dBuS0j=                              $y KZend_Gdata_Geo_Extension_GmlPosI&x OZend_Gdata_Geo_Extension_GmlPointI)w UZend_Gdata_Geo_Extension_GeoRssWhereIv 5Zend_Gdata_Geo_EntryIu -Zend_Gdata_GbaseI"t GZend_Gdata_Gbase_SnippetQueryI!s EZend_Gdata_Gbase_SnippetFeedI"r GZend_Gdata_Gbase_SnippetEntryIq 9Zend_Gdata_Gbase_QueryIp AZend_Gdata_Gbase_ItemQueryIo ?Zend_Gdata_Gbase_ItemFeedIn AZend_Gdata_Gbase_ItemEntryIm 7Zend_Gdata_Gbase_FeedI-l ]Zend_Gdata_Gbase_Extension_BaseAttributeIk 9Zend_Gdata_Gbase_EntryIj -Zend_Gdata_GappsIi AZend_Gdata_Gapps_UserQueryIh ?Zend_Gdata_Gapps_UserFeedIg AZend_Gdata_Gapps_UserEntryI&f OZend_Gdata_Gapps_ServiceExceptionIe 9Zend_Gdata_Gapps_QueryI d CZend_Gdata_Gapps_OwnerQueryIc AZend_Gdata_Gapps_OwnerFeedI b CZend_Gdata_Gapps_OwnerEntryI#a IZend_Gdata_Gapps_NicknameQueryI"` GZend_Gdata_Gapps_NicknameFeedI#_ IZend_Gdata_Gapps_NicknameEntryI!^ EZend_Gdata_Gapps_MemberQueryI ] CZend_Gdata_Gapps_MemberFeedI!\ EZend_Gdata_Gapps_MemberEntryI [ CZend_Gdata_Gapps_GroupQueryIZ AZend_Gdata_Gapps_GroupFeedI Y CZend_Gdata_Gapps_GroupEntryI%X MZend_Gdata_Gapps_Extension_QuotaI(W SZend_Gdata_Gapps_Extension_PropertyI(V SZend_Gdata_Gapps_Extension_NicknameI$U KZend_Gdata_Gapps_Extension_NameI%T MZend_Gdata_Gapps_Extension_LoginI)S UZend_Gdata_Gapps_Extension_EmailListIR 9Zend_Gdata_Gapps_ErrorI-Q ]Zend_Gdata_Gapps_EmailListRecipientQueryI,P [Zend_Gdata_Gapps_EmailListRecipientFeedI-O ]Zend_Gdata_Gapps_EmailListRecipientEntryI$N KZend_Gdata_Gapps_EmailListQueryI#M IZend_Gdata_Gapps_EmailListFeedI$L KZend_Gdata_Gapps_EmailListEntryIK +Zend_Gdata_FeedIJ 5Zend_Gdata_ExtensionII =Zend_Gdata_Extension_WhoIH AZend_Gdata_Extension_WhereIG ?Zend_Gdata_Extension_WhenI$F KZend_Gdata_Extension_VisibilityI&E OZend_Gdata_Extension_TransparencyI"D GZend_Gdata_Extension_ReminderI-C ]Zend_Gdata_Extension_RecurrenceExceptionI$B KZend_Gdata_Extension_RecurrenceI A CZend_Gdata_Extension_RatingI'@ QZend_Gdata_Extension_OriginalEventI0? cZend_Gdata_Extension_OpenSearchTotalResultsI.> _Zend_Gdata_Extension_OpenSearchStartIndexI0= cZend_Gdata_Extension_OpenSearchItemsPerPageI"< GZend_Gdata_Extension_FeedLinkI*; WZend_Gdata_Extension_ExtendedPropertyI%: MZend_Gdata_Extension_EventStatusI#9 IZend_Gdata_Extension_EntryLinkI"8 GZend_Gdata_Extension_CommentsI&7 OZend_Gdata_Extension_AttendeeTypeI(6 SZend_Gdata_Extension_AttendeeStatusI5 +Zend_Gdata_ExifI4 5Zend_Gdata_Exif_FeedI#3 IZend_Gdata_Exif_Extension_TimeI#2 IZend_Gdata_Exif_Extension_TagsI$1 KZend_Gdata_Exif_Extension_ModelI#0 IZend_Gdata_Exif_Extension_MakeI"/ GZend_Gdata_Exif_Extension_IsoI,. [Zend_Gdata_Exif_Extension_ImageUniqueIdI$- KZend_Gdata_Exif_Extension_FStopI*, WZend_Gdata_Exif_Extension_FocalLengthI$+ KZend_Gdata_Exif_Extension_FlashI'* QZend_Gdata_Exif_Extension_ExposureI') QZend_Gdata_Exif_Extension_DistanceI( 7Zend_Gdata_Exif_EntryI' -Zend_Gdata_EntryI& 7Zend_Gdata_DublinCoreI*% WZend_Gdata_DublinCore_Extension_TitleI,$ [Zend_Gdata_DublinCore_Extension_SubjectI+# YZend_Gdata_DublinCore_Extension_RightsI." _Zend_Gdata_DublinCore_Extension_PublisherI-! ]Zend_Gdata_DublinCore_Extension_LanguageI/  aZend_Gdata_DublinCore_Extension_IdentifierI+ YZend_Gdata_DublinCore_Extension_FormatI0 cZend_Gdata_DublinCore_Extension_DescriptionI) UZend_Gdata_DublinCore_Extension_DateI, [Zend_Gdata_DublinCore_Extension_CreatorI +Zend_Gdata_DocsI 7Zend_Gdata_Docs_QueryI% MZend_Gdata_Docs_DocumentListFeedI& OZend_Gdata_Docs_DocumentListEntryI 9Zend_Gdata_ClientLoginI   ]  ~X-nP-{L].mO6




g
@
				c	2}G`3}O!wR.	{aHn;
Z)|S+                           #V IZend_Gdata_YouTube_CommentFeedI$U KZend_Gdata_YouTube_CommentEntryI$T KZend_Gdata_YouTube_ActivityFeedI%S MZend_Gdata_YouTube_ActivityEntryIR ;Zend_Gdata_SpreadsheetsI*Q WZend_Gdata_Spreadsheets_WorksheetFeedI+P YZend_Gdata_Spreadsheets_WorksheetEntryI,O [Zend_Gdata_Spreadsheets_SpreadsheetFeedI-N ]Zend_Gdata_Spreadsheets_SpreadsheetEntryI&M OZend_Gdata_Spreadsheets_ListQueryI%L MZend_Gdata_Spreadsheets_ListFeedI&K OZend_Gdata_Spreadsheets_ListEntryI/J aZend_Gdata_Spreadsheets_Extension_RowCountI-I ]Zend_Gdata_Spreadsheets_Extension_CustomI/H aZend_Gdata_Spreadsheets_Extension_ColCountI+G YZend_Gdata_Spreadsheets_Extension_CellI*F WZend_Gdata_Spreadsheets_DocumentQueryI&E OZend_Gdata_Spreadsheets_CellQueryI%D MZend_Gdata_Spreadsheets_CellFeedI&C OZend_Gdata_Spreadsheets_CellEntryIB -Zend_Gdata_QueryIA /Zend_Gdata_PhotosI @ CZend_Gdata_Photos_UserQueryI? AZend_Gdata_Photos_UserFeedI > CZend_Gdata_Photos_UserEntryI= AZend_Gdata_Photos_TagEntryI!< EZend_Gdata_Photos_PhotoQueryI ; CZend_Gdata_Photos_PhotoFeedI!: EZend_Gdata_Photos_PhotoEntryI&9 OZend_Gdata_Photos_Extension_WidthI'8 QZend_Gdata_Photos_Extension_WeightI(7 SZend_Gdata_Photos_Extension_VersionI%6 MZend_Gdata_Photos_Extension_UserI*5 WZend_Gdata_Photos_Extension_TimestampI*4 WZend_Gdata_Photos_Extension_ThumbnailI%3 MZend_Gdata_Photos_Extension_SizeI)2 UZend_Gdata_Photos_Extension_RotationI+1 YZend_Gdata_Photos_Extension_QuotaLimitI-0 ]Zend_Gdata_Photos_Extension_QuotaCurrentI)/ UZend_Gdata_Photos_Extension_PositionI(. SZend_Gdata_Photos_Extension_PhotoIdI3- iZend_Gdata_Photos_Extension_NumPhotosRemainingI*, WZend_Gdata_Photos_Extension_NumPhotosI)+ UZend_Gdata_Photos_Extension_NicknameI%* MZend_Gdata_Photos_Extension_NameI2) gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumI)( UZend_Gdata_Photos_Extension_LocationI#' IZend_Gdata_Photos_Extension_IdI'& QZend_Gdata_Photos_Extension_HeightI2% gZend_Gdata_Photos_Extension_CommentingEnabledI-$ ]Zend_Gdata_Photos_Extension_CommentCountI'# QZend_Gdata_Photos_Extension_ClientI)" UZend_Gdata_Photos_Extension_ChecksumI*! WZend_Gdata_Photos_Extension_BytesUsedI(  SZend_Gdata_Photos_Extension_AlbumIdI' QZend_Gdata_Photos_Extension_AccessI# IZend_Gdata_Photos_CommentEntryI! EZend_Gdata_Photos_AlbumQueryI  CZend_Gdata_Photos_AlbumFeedI! EZend_Gdata_Photos_AlbumEntryI 3Zend_Gdata_MimeFileI ?Zend_Gdata_MimeBodyStringI AZend_Gdata_MediaMimeStreamI -Zend_Gdata_MediaI 7Zend_Gdata_Media_FeedI* WZend_Gdata_Media_Extension_MediaTitleI. _Zend_Gdata_Media_Extension_MediaThumbnailI) UZend_Gdata_Media_Extension_MediaTextI0 cZend_Gdata_Media_Extension_MediaRestrictionI+ YZend_Gdata_Media_Extension_MediaRatingI+ YZend_Gdata_Media_Extension_MediaPlayerI- ]Zend_Gdata_Media_Extension_MediaKeywordsI) UZend_Gdata_Media_Extension_MediaHashI* WZend_Gdata_Media_Extension_MediaGroupI0 cZend_Gdata_Media_Extension_MediaDescriptionI+ YZend_Gdata_Media_Extension_MediaCreditI.
 _Zend_Gdata_Media_Extension_MediaCopyrightI,	 [Zend_Gdata_Media_Extension_MediaContentI- ]Zend_Gdata_Media_Extension_MediaCategoryI 9Zend_Gdata_Media_EntryI AZend_Gdata_Kind_EventEntryI 7Zend_Gdata_HttpClientI* WZend_Gdata_HttpAdapterStreamingSocketI) UZend_Gdata_HttpAdapterStreamingProxyI /Zend_Gdata_HealthI ;Zend_Gdata_Health_QueryI&  OZend_Gdata_Health_ProfileListFeedI' QZend_Gdata_Health_ProfileListEntryI"~ GZend_Gdata_Health_ProfileFeedI#} IZend_Gdata_Health_ProfileEntryI$| KZend_Gdata_Health_Extension_CcrI{ )Zend_Gdata_GeoIz 3Zend_Gdata_Geo_FeedI   ]  [0vHd:yHd1


{
M
				c	7	]8^1hM:tQ8wT2`>rC"j8     "3 GZend_Http_UserAgent_ValidatorI2 =Zend_Http_UserAgent_TextI(1 SZend_Http_UserAgent_Storage_SessionI.0 _Zend_Http_UserAgent_Storage_NonPersistentI*/ WZend_Http_UserAgent_Storage_ExceptionI. =Zend_Http_UserAgent_SpamI- ?Zend_Http_UserAgent_ProbeI , CZend_Http_UserAgent_OfflineI+ AZend_Http_UserAgent_MobileI* =Zend_Http_UserAgent_FeedI+) YZend_Http_UserAgent_Features_ExceptionI3( iZend_Http_UserAgent_Features_Adapter_TeraWurflI5' mZend_Http_UserAgent_Features_Adapter_DeviceAtlasI2& gZend_Http_UserAgent_Features_Adapter_BrowscapI"% GZend_Http_UserAgent_ExceptionI$ ?Zend_Http_UserAgent_EmailI # CZend_Http_UserAgent_DesktopI " CZend_Http_UserAgent_ConsoleI ! CZend_Http_UserAgent_CheckerI  ;Zend_Http_UserAgent_BotI' QZend_Http_UserAgent_AbstractDeviceI 1Zend_Http_ResponseI ?Zend_Http_Response_StreamI AZend_Http_Header_SetCookieI0 cZend_Http_Header_Exception_RuntimeExceptionI8 sZend_Http_Header_Exception_InvalidArgumentExceptionI 3Zend_Http_ExceptionI 3Zend_Http_CookieJarI -Zend_Http_CookieI -Zend_Http_ClientI AZend_Http_Client_ExceptionI" GZend_Http_Client_Adapter_TestI$ KZend_Http_Client_Adapter_SocketI# IZend_Http_Client_Adapter_ProxyI' QZend_Http_Client_Adapter_ExceptionI" GZend_Http_Client_Adapter_CurlI !Zend_GdataI 1Zend_Gdata_YouTubeI" GZend_Gdata_YouTube_VideoQueryI! EZend_Gdata_YouTube_VideoFeedI" GZend_Gdata_YouTube_VideoEntryI(
 SZend_Gdata_YouTube_UserProfileEntryI(	 SZend_Gdata_YouTube_SubscriptionFeedI) UZend_Gdata_YouTube_SubscriptionEntryI) UZend_Gdata_YouTube_PlaylistVideoFeedI* WZend_Gdata_YouTube_PlaylistVideoEntryI( SZend_Gdata_YouTube_PlaylistListFeedI) UZend_Gdata_YouTube_PlaylistListEntryI" GZend_Gdata_YouTube_MediaEntryI! EZend_Gdata_YouTube_InboxFeedI" GZend_Gdata_YouTube_InboxEntryI)  UZend_Gdata_YouTube_Extension_VideoIdI* WZend_Gdata_YouTube_Extension_UsernameI*~ WZend_Gdata_YouTube_Extension_UploadedI'} QZend_Gdata_YouTube_Extension_TokenI(| SZend_Gdata_YouTube_Extension_StatusI,{ [Zend_Gdata_YouTube_Extension_StatisticsI'z QZend_Gdata_YouTube_Extension_StateI(y SZend_Gdata_YouTube_Extension_SchoolI-x ]Zend_Gdata_YouTube_Extension_ReleaseDateI.w _Zend_Gdata_YouTube_Extension_RelationshipI*v WZend_Gdata_YouTube_Extension_RecordedI&u OZend_Gdata_YouTube_Extension_RacyI-t ]Zend_Gdata_YouTube_Extension_QueryStringI)s UZend_Gdata_YouTube_Extension_PrivateI*r WZend_Gdata_YouTube_Extension_PositionI/q aZend_Gdata_YouTube_Extension_PlaylistTitleI,p [Zend_Gdata_YouTube_Extension_PlaylistIdI,o [Zend_Gdata_YouTube_Extension_OccupationI)n UZend_Gdata_YouTube_Extension_NoEmbedI'm QZend_Gdata_YouTube_Extension_MusicI(l SZend_Gdata_YouTube_Extension_MoviesI-k ]Zend_Gdata_YouTube_Extension_MediaRatingI,j [Zend_Gdata_YouTube_Extension_MediaGroupI-i ]Zend_Gdata_YouTube_Extension_MediaCreditI.h _Zend_Gdata_YouTube_Extension_MediaContentI*g WZend_Gdata_YouTube_Extension_LocationI&f OZend_Gdata_YouTube_Extension_LinkI*e WZend_Gdata_YouTube_Extension_LastNameI*d WZend_Gdata_YouTube_Extension_HometownI)c UZend_Gdata_YouTube_Extension_HobbiesI(b SZend_Gdata_YouTube_Extension_GenderI+a YZend_Gdata_YouTube_Extension_FirstNameI*` WZend_Gdata_YouTube_Extension_DurationI-_ ]Zend_Gdata_YouTube_Extension_DescriptionI+^ YZend_Gdata_YouTube_Extension_CountHintI)] UZend_Gdata_YouTube_Extension_ControlI)\ UZend_Gdata_YouTube_Extension_CompanyI'[ QZend_Gdata_YouTube_Extension_BooksI%Z MZend_Gdata_YouTube_Extension_AgeI)Y UZend_Gdata_YouTube_Extension_AboutMeI#X IZend_Gdata_YouTube_ContactFeedI$W KZend_Gdata_YouTube_ContactEntryI   s }^?gJ1pB%sP/`8



v
H
			z	G	 	lE}iD+fE%z[:jF5dD$^:jK                         & /Zend_Mail_StorageI'% QZend_Mail_Storage_Writable_MaildirI$ 9Zend_Mail_Storage_Pop3I# 9Zend_Mail_Storage_MboxI" ?Zend_Mail_Storage_MaildirI! 9Zend_Mail_Storage_ImapI  =Zend_Mail_Storage_FolderI" GZend_Mail_Storage_Folder_MboxI% MZend_Mail_Storage_Folder_MaildirI  CZend_Mail_Storage_ExceptionI AZend_Mail_Storage_AbstractI ;Zend_Mail_Protocol_SmtpI' QZend_Mail_Protocol_Smtp_Auth_PlainI' QZend_Mail_Protocol_Smtp_Auth_LoginI) UZend_Mail_Protocol_Smtp_Auth_Crammd5I ;Zend_Mail_Protocol_Pop3I ;Zend_Mail_Protocol_ImapI! EZend_Mail_Protocol_ExceptionI  CZend_Mail_Protocol_AbstractI )Zend_Mail_PartI 3Zend_Mail_Part_FileI /Zend_Mail_MessageI 9Zend_Mail_Message_FileI 3Zend_Mail_ExceptionI Zend_LogI  CZend_Log_Writer_ZendMonitorI 9Zend_Log_Writer_SyslogI 9Zend_Log_Writer_StreamI
 5Zend_Log_Writer_NullI	 5Zend_Log_Writer_MockI 5Zend_Log_Writer_MailI ;Zend_Log_Writer_FirebugI 1Zend_Log_Writer_DbI =Zend_Log_Writer_AbstractI 9Zend_Log_Formatter_XmlI ?Zend_Log_Formatter_SimpleI AZend_Log_Formatter_FirebugI  CZend_Log_Formatter_AbstractI  =Zend_Log_Filter_SuppressI =Zend_Log_Filter_PriorityI~ ;Zend_Log_Filter_MessageI} =Zend_Log_Filter_AbstractI| 1Zend_Log_ExceptionI{ #Zend_LocaleIz -Zend_Locale_MathIy =Zend_Locale_Math_PhpMathIx AZend_Locale_Math_ExceptionIw 1Zend_Locale_FormatIv 7Zend_Locale_ExceptionIu -Zend_Locale_DataI!t EZend_Locale_Data_TranslationIs #Zend_LoaderI#r IZend_Loader_StandardAutoloaderIq =Zend_Loader_PluginLoaderI'p QZend_Loader_PluginLoader_ExceptionIo 7Zend_Loader_ExceptionI3n iZend_Loader_Exception_InvalidArgumentExceptionI#m IZend_Loader_ClassMapAutoloaderI"l GZend_Loader_AutoloaderFactoryIk 9Zend_Loader_AutoloaderI$j KZend_Loader_Autoloader_ResourceIi Zend_LdapIh )Zend_Ldap_NodeIg 7Zend_Ldap_Node_SchemaI#f IZend_Ldap_Node_Schema_OpenLdapI/e aZend_Ldap_Node_Schema_ObjectClass_OpenLdapI6d oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectoryIc AZend_Ldap_Node_Schema_ItemI1b eZend_Ldap_Node_Schema_AttributeType_OpenLdapI8a sZend_Ldap_Node_Schema_AttributeType_ActiveDirectoryI*` WZend_Ldap_Node_Schema_ActiveDirectoryI_ 9Zend_Ldap_Node_RootDseI$^ KZend_Ldap_Node_RootDse_OpenLdapI&] OZend_Ldap_Node_RootDse_eDirectoryI+\ YZend_Ldap_Node_RootDse_ActiveDirectoryI[ ?Zend_Ldap_Node_CollectionI$Z KZend_Ldap_Node_ChildrenIteratorIY ;Zend_Ldap_Node_AbstractIX 9Zend_Ldap_Ldif_EncoderIW -Zend_Ldap_FilterIV ;Zend_Ldap_Filter_StringIU 3Zend_Ldap_Filter_OrIT 5Zend_Ldap_Filter_NotIS 7Zend_Ldap_Filter_MaskIR =Zend_Ldap_Filter_LogicalIQ AZend_Ldap_Filter_ExceptionIP 5Zend_Ldap_Filter_AndIO ?Zend_Ldap_Filter_AbstractIN 3Zend_Ldap_ExceptionIM %Zend_Ldap_DnIL 3Zend_Ldap_ConverterI"K GZend_Ldap_Converter_ExceptionIJ 5Zend_Ldap_CollectionI*I WZend_Ldap_Collection_Iterator_DefaultIH 3Zend_Ldap_AttributeIG #Zend_LayoutIF 7Zend_Layout_ExceptionI)E UZend_Layout_Controller_Plugin_LayoutI0D cZend_Layout_Controller_Action_Helper_LayoutIC Zend_JsonIB -Zend_Json_ServerIA 5Zend_Json_Server_SmdI!@ EZend_Json_Server_Smd_ServiceI? ?Zend_Json_Server_ResponseI#> IZend_Json_Server_Response_HttpI= =Zend_Json_Server_RequestI"< GZend_Json_Server_Request_HttpI; AZend_Json_Server_ExceptionI: 9Zend_Json_Server_ErrorI9 9Zend_Json_Server_CacheI8 )Zend_Json_ExprI7 3Zend_Json_ExceptionI6 /Zend_Json_EncoderI5 /Zend_Json_DecoderI4 3Zend_Http_UserAgentI   q oN<Z4}_K-uQ4}bC!




v
U
;
					r	M	'		lR;)`.f1vQ'f>iO3kI"fM:                                      & OZend_OpenId_Consumer_Storage_FileI !Zend_OauthI -Zend_Oauth_TokenI =Zend_Oauth_Token_RequestI' QZend_Oauth_Token_AuthorizedRequestI ;Zend_Oauth_Token_AccessI+ YZend_Oauth_Signature_SignatureAbstractI =Zend_Oauth_Signature_RsaI# IZend_Oauth_Signature_PlaintextI ?Zend_Oauth_Signature_HmacI +Zend_Oauth_HttpI ;Zend_Oauth_Http_UtilityI& OZend_Oauth_Http_UserAuthorizationI!
 EZend_Oauth_Http_RequestTokenI 	 CZend_Oauth_Http_AccessTokenI 5Zend_Oauth_ExceptionI 3Zend_Oauth_ConsumerI /Zend_Oauth_ConfigI /Zend_Oauth_ClientI +Zend_NavigationI 5Zend_Navigation_PageI =Zend_Navigation_Page_UriI =Zend_Navigation_Page_MvcI  ?Zend_Navigation_ExceptionI ?Zend_Navigation_ContainerI$~ KZend_Mobile_Push_Test_ApnsProxyI"} GZend_Mobile_Push_Response_GcmI| 7Zend_Mobile_Push_MpnsI"{ GZend_Mobile_Push_Message_MpnsI(z SZend_Mobile_Push_Message_Mpns_ToastI'y QZend_Mobile_Push_Message_Mpns_TileI&x OZend_Mobile_Push_Message_Mpns_RawI!w EZend_Mobile_Push_Message_GcmI'v QZend_Mobile_Push_Message_ExceptionI"u GZend_Mobile_Push_Message_ApnsI&t OZend_Mobile_Push_Message_AbstractIs 5Zend_Mobile_Push_GcmIr AZend_Mobile_Push_ExceptionI1q eZend_Mobile_Push_Exception_ServerUnavailableI-p ]Zend_Mobile_Push_Exception_QuotaExceededI,o [Zend_Mobile_Push_Exception_InvalidTopicI,n [Zend_Mobile_Push_Exception_InvalidTokenI3m iZend_Mobile_Push_Exception_InvalidRegistrationI.l _Zend_Mobile_Push_Exception_InvalidPayloadI0k cZend_Mobile_Push_Exception_InvalidAuthTokenI3j iZend_Mobile_Push_Exception_DeviceQuotaExceededIi 7Zend_Mobile_Push_ApnsIh ?Zend_Mobile_Push_AbstractIg 7Zend_Mobile_ExceptionIf Zend_MimeIe )Zend_Mime_PartId /Zend_Mime_MessageIc 3Zend_Mime_ExceptionIb -Zend_Mime_DecodeIa #Zend_MemoryI` /Zend_Memory_ValueI_ 3Zend_Memory_ManagerI^ 7Zend_Memory_ExceptionI] 7Zend_Memory_ContainerI"\ GZend_Memory_Container_MovableI![ EZend_Memory_Container_LockedI!Z EZend_Memory_AccessControllerIY 3Zend_Measure_WeightIX 3Zend_Measure_VolumeI%W MZend_Measure_Viscosity_KinematicI#V IZend_Measure_Viscosity_DynamicIU 3Zend_Measure_TorqueIT /Zend_Measure_TimeIS =Zend_Measure_TemperatureIR 1Zend_Measure_SpeedIQ 7Zend_Measure_PressureIP 1Zend_Measure_PowerIO 3Zend_Measure_NumberIN 9Zend_Measure_LightnessIM 3Zend_Measure_LengthIL ?Zend_Measure_IlluminationIK 9Zend_Measure_FrequencyIJ 1Zend_Measure_ForceII =Zend_Measure_Flow_VolumeIH 9Zend_Measure_Flow_MoleIG 9Zend_Measure_Flow_MassIF 9Zend_Measure_ExceptionIE 3Zend_Measure_EnergyID 5Zend_Measure_DensityIC 5Zend_Measure_CurrentI B CZend_Measure_Cooking_WeightI A CZend_Measure_Cooking_VolumeI@ =Zend_Measure_CapacitanceI? 3Zend_Measure_BinaryI> /Zend_Measure_AreaI= 1Zend_Measure_AngleI< ?Zend_Measure_AccelerationI; 7Zend_Measure_AbstractI: #Zend_MarkupI9 7Zend_Markup_TokenListI8 /Zend_Markup_TokenI*7 WZend_Markup_Renderer_RendererAbstractI6 ?Zend_Markup_Renderer_HtmlI"5 GZend_Markup_Renderer_Html_UrlI#4 IZend_Markup_Renderer_Html_ListI"3 GZend_Markup_Renderer_Html_ImgI+2 YZend_Markup_Renderer_Html_HtmlAbstractI#1 IZend_Markup_Renderer_Html_CodeI#0 IZend_Markup_Renderer_ExceptionI!/ EZend_Markup_Parser_ExceptionI. ?Zend_Markup_Parser_BbcodeI- 7Zend_Markup_ExceptionI, Zend_MailI+ =Zend_Mail_Transport_SmtpI!* EZend_Mail_Transport_SendmailI) =Zend_Mail_Transport_FileI"( GZend_Mail_Transport_ExceptionI!' EZend_Mail_Transport_AbstractI   o  }_5nFT&pR4vT2




p
T
<
					o	W	-	
oS8!v@vT7vO/qQ8zY3wW6qW6                         -Zend_Pdf_OutlineI ;Zend_Pdf_Outline_LoadedI =Zend_Pdf_Outline_CreatedI /Zend_Pdf_NameTreeI )Zend_Pdf_ImageI 'Zend_Pdf_FontI  ?Zend_Pdf_Filter_RunLengthI  CZend_Pdf_Filter_CompressionI$~ KZend_Pdf_Filter_Compression_LzwI&} OZend_Pdf_Filter_Compression_FlateI| =Zend_Pdf_Filter_AsciiHexI{ ;Zend_Pdf_Filter_Ascii85I"z GZend_Pdf_FileParserDataSourceI)y UZend_Pdf_FileParserDataSource_StringI'x QZend_Pdf_FileParserDataSource_FileIw 3Zend_Pdf_FileParserIv ?Zend_Pdf_FileParser_ImageI"u GZend_Pdf_FileParser_Image_PngIt =Zend_Pdf_FileParser_FontI&s OZend_Pdf_FileParser_Font_OpenTypeI/r aZend_Pdf_FileParser_Font_OpenType_TrueTypeIq 1Zend_Pdf_ExceptionIp ;Zend_Pdf_ElementFactoryI"o GZend_Pdf_ElementFactory_ProxyIn -Zend_Pdf_ElementIm ;Zend_Pdf_Element_StringI#l IZend_Pdf_Element_String_BinaryIk ;Zend_Pdf_Element_StreamIj AZend_Pdf_Element_ReferenceI%i MZend_Pdf_Element_Reference_TableI'h QZend_Pdf_Element_Reference_ContextIg ;Zend_Pdf_Element_ObjectI#f IZend_Pdf_Element_Object_StreamIe =Zend_Pdf_Element_NumericId 7Zend_Pdf_Element_NullIc 7Zend_Pdf_Element_NameI b CZend_Pdf_Element_DictionaryIa =Zend_Pdf_Element_BooleanI` 9Zend_Pdf_Element_ArrayI_ 5Zend_Pdf_DestinationI^ ?Zend_Pdf_Destination_ZoomI!] EZend_Pdf_Destination_UnknownI\ AZend_Pdf_Destination_NamedI'[ QZend_Pdf_Destination_FitVerticallyI&Z OZend_Pdf_Destination_FitRectangleI)Y UZend_Pdf_Destination_FitHorizontallyI2X gZend_Pdf_Destination_FitBoundingBoxVerticallyI4W kZend_Pdf_Destination_FitBoundingBoxHorizontallyI(V SZend_Pdf_Destination_FitBoundingBoxIU =Zend_Pdf_Destination_FitI"T GZend_Pdf_Destination_ExplicitIS )Zend_Pdf_ColorIR 1Zend_Pdf_Color_RgbIQ 3Zend_Pdf_Color_HtmlIP =Zend_Pdf_Color_GrayScaleIO 3Zend_Pdf_Color_CmykIN 'Zend_Pdf_CmapIM AZend_Pdf_Cmap_TrimmedTableI!L EZend_Pdf_Cmap_SegmentToDeltaIK AZend_Pdf_Cmap_ByteEncodingI&J OZend_Pdf_Cmap_ByteEncoding_StaticII +Zend_Pdf_CanvasIH =Zend_Pdf_Canvas_AbstractIG 3Zend_Pdf_AnnotationIF =Zend_Pdf_Annotation_TextIE AZend_Pdf_Annotation_MarkupID =Zend_Pdf_Annotation_LinkI'C QZend_Pdf_Annotation_FileAttachmentIB +Zend_Pdf_ActionIA 3Zend_Pdf_Action_URII@ ;Zend_Pdf_Action_UnknownI? 7Zend_Pdf_Action_TransI> 9Zend_Pdf_Action_ThreadI= AZend_Pdf_Action_SubmitFormI< 7Zend_Pdf_Action_SoundI ; CZend_Pdf_Action_SetOCGStateI: ?Zend_Pdf_Action_ResetFormI9 ?Zend_Pdf_Action_RenditionI8 7Zend_Pdf_Action_NamedI7 7Zend_Pdf_Action_MovieI6 9Zend_Pdf_Action_LaunchI5 AZend_Pdf_Action_JavaScriptI4 AZend_Pdf_Action_ImportDataI3 5Zend_Pdf_Action_HideI2 7Zend_Pdf_Action_GoToRI1 7Zend_Pdf_Action_GoToEI0 AZend_Pdf_Action_GoTo3DViewI/ 5Zend_Pdf_Action_GoToI. )Zend_PaginatorI-- ]Zend_Paginator_SerializableLimitIteratorI*, WZend_Paginator_ScrollingStyle_SlidingI*+ WZend_Paginator_ScrollingStyle_JumpingI** WZend_Paginator_ScrollingStyle_ElasticI&) OZend_Paginator_ScrollingStyle_AllI( =Zend_Paginator_ExceptionI ' CZend_Paginator_Adapter_NullI$& KZend_Paginator_Adapter_IteratorI)% UZend_Paginator_Adapter_DbTableSelectI$$ KZend_Paginator_Adapter_DbSelectI!# EZend_Paginator_Adapter_ArrayI" #Zend_OpenIdI! 5Zend_OpenId_ProviderI  ?Zend_OpenId_Provider_UserI& OZend_OpenId_Provider_User_SessionI! EZend_OpenId_Provider_StorageI& OZend_OpenId_Provider_Storage_FileI 7Zend_OpenId_ExtensionI AZend_OpenId_Extension_SregI 7Zend_OpenId_ExceptionI 5Zend_OpenId_ConsumerI! EZend_OpenId_Consumer_StorageI   a  sOk>LQh.



x
Y
1
				|	Z	@	"	ra8y`<cCiI*}\:xb?hO1a%                  Fg Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitiveI8f sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumIIe Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitiveI5d mZend_Search_Lucene_Analysis_Analyzer_Common_TextIFc Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiveIb 7Zend_Search_ExceptionIa -Zend_Rest_ServerI` AZend_Rest_Server_ExceptionI_ +Zend_Rest_RouteI^ 3Zend_Rest_ExceptionI] 5Zend_Rest_ControllerI\ -Zend_Rest_ClientI[ ;Zend_Rest_Client_ResultI&Z OZend_Rest_Client_Result_ExceptionIY AZend_Rest_Client_ExceptionIX 'Zend_RegistryIW =Zend_Reflection_PropertyIV ?Zend_Reflection_ParameterIU 9Zend_Reflection_MethodIT =Zend_Reflection_FunctionIS 5Zend_Reflection_FileIR ?Zend_Reflection_ExtensionIQ ?Zend_Reflection_ExceptionIP =Zend_Reflection_DocblockI!O EZend_Reflection_Docblock_TagI(N SZend_Reflection_Docblock_Tag_ReturnI'M QZend_Reflection_Docblock_Tag_ParamIL 7Zend_Reflection_ClassIK !Zend_QueueIJ 9Zend_Queue_Stomp_FrameII ;Zend_Queue_Stomp_ClientI'H QZend_Queue_Stomp_Client_ConnectionIG 1Zend_Queue_MessageI#F IZend_Queue_Message_PlatformJobI E CZend_Queue_Message_IteratorID 5Zend_Queue_ExceptionI(C SZend_Queue_Adapter_PlatformJobQueueIB ;Zend_Queue_Adapter_NullI!A EZend_Queue_Adapter_MemcacheqI@ 7Zend_Queue_Adapter_DbI ? CZend_Queue_Adapter_Db_QueueI"> GZend_Queue_Adapter_Db_MessageI= =Zend_Queue_Adapter_ArrayI'< QZend_Queue_Adapter_AdapterAbstractI ; CZend_Queue_Adapter_ActivemqI: -Zend_ProgressBarI9 AZend_ProgressBar_ExceptionI8 =Zend_ProgressBar_AdapterI$7 KZend_ProgressBar_Adapter_JsPushI$6 KZend_ProgressBar_Adapter_JsPullI'5 QZend_ProgressBar_Adapter_ExceptionI%4 MZend_ProgressBar_Adapter_ConsoleI3 Zend_PdfI!2 EZend_Pdf_UpdateInfoContainerI1 -Zend_Pdf_TrailerI0 ;Zend_Pdf_Trailer_KeeperI/ AZend_Pdf_Trailer_GeneratorI. +Zend_Pdf_TargetI- )Zend_Pdf_StyleI, 7Zend_Pdf_StringParserI+ /Zend_Pdf_ResourceI* ?Zend_Pdf_Resource_UnifiedI#) IZend_Pdf_Resource_ImageFactoryI( ;Zend_Pdf_Resource_ImageI!' EZend_Pdf_Resource_Image_TiffI & CZend_Pdf_Resource_Image_PngI!% EZend_Pdf_Resource_Image_JpegI$$ KZend_Pdf_Resource_GraphicsStateI# 9Zend_Pdf_Resource_FontI!" EZend_Pdf_Resource_Font_Type0I"! GZend_Pdf_Resource_Font_SimpleI+  YZend_Pdf_Resource_Font_Simple_StandardI8 sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsI6 oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanI7 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicI; yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicI5 mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldI2 gZend_Pdf_Resource_Font_Simple_Standard_SymbolI< {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueIA Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliqueI9 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldI5 mZend_Pdf_Resource_Font_Simple_Standard_HelveticaI: wZend_Pdf_Resource_Font_Simple_Standard_CourierObliqueI> Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliqueI7 qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldI3 iZend_Pdf_Resource_Font_Simple_Standard_CourierI) UZend_Pdf_Resource_Font_Simple_ParsedI2 gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypeI* WZend_Pdf_Resource_Font_FontDescriptorI% MZend_Pdf_Resource_Font_ExtractedI# IZend_Pdf_Resource_Font_CidFontI, [Zend_Pdf_Resource_Font_CidFont_TrueTypeI  CZend_Pdf_Resource_ExtractorI$
 KZend_Pdf_Resource_ContentStreamI3	 iZend_Pdf_RecursivelyIteratableObjectsContainerI +Zend_Pdf_ParserI 'Zend_Pdf_PageI   R  z>
y; m?tO.a4


\
6
				`	-	o?{Lb4zD_*d3sJ['             !9 EZend_Serializer_Adapter_Amf0I,8 [Zend_Serializer_Adapter_AdapterAbstractI7 1Zend_Search_LuceneI06 cZend_Search_Lucene_TermStreamsPriorityQueueI$5 KZend_Search_Lucene_Storage_FileI+4 YZend_Search_Lucene_Storage_File_MemoryI/3 aZend_Search_Lucene_Storage_File_FilesystemI)2 UZend_Search_Lucene_Storage_DirectoryI41 kZend_Search_Lucene_Storage_Directory_FilesystemI%0 MZend_Search_Lucene_Search_WeightI*/ WZend_Search_Lucene_Search_Weight_TermI,. [Zend_Search_Lucene_Search_Weight_PhraseI/- aZend_Search_Lucene_Search_Weight_MultiTermI+, YZend_Search_Lucene_Search_Weight_EmptyI-+ ]Zend_Search_Lucene_Search_Weight_BooleanI)* UZend_Search_Lucene_Search_SimilarityI1) eZend_Search_Lucene_Search_Similarity_DefaultI)( UZend_Search_Lucene_Search_QueryTokenI3' iZend_Search_Lucene_Search_QueryParserExceptionI1& eZend_Search_Lucene_Search_QueryParserContextI*% WZend_Search_Lucene_Search_QueryParserI)$ UZend_Search_Lucene_Search_QueryLexerI'# QZend_Search_Lucene_Search_QueryHitI)" UZend_Search_Lucene_Search_QueryEntryI.! _Zend_Search_Lucene_Search_QueryEntry_TermI2  gZend_Search_Lucene_Search_QueryEntry_SubqueryI0 cZend_Search_Lucene_Search_QueryEntry_PhraseI$ KZend_Search_Lucene_Search_QueryI- ]Zend_Search_Lucene_Search_Query_WildcardI) UZend_Search_Lucene_Search_Query_TermI* WZend_Search_Lucene_Search_Query_RangeI2 gZend_Search_Lucene_Search_Query_PreprocessingI7 qZend_Search_Lucene_Search_Query_Preprocessing_TermI9 uZend_Search_Lucene_Search_Query_Preprocessing_PhraseI8 sZend_Search_Lucene_Search_Query_Preprocessing_FuzzyI+ YZend_Search_Lucene_Search_Query_PhraseI. _Zend_Search_Lucene_Search_Query_MultiTermI2 gZend_Search_Lucene_Search_Query_InsignificantI* WZend_Search_Lucene_Search_Query_FuzzyI* WZend_Search_Lucene_Search_Query_EmptyI, [Zend_Search_Lucene_Search_Query_BooleanI2 gZend_Search_Lucene_Search_Highlighter_DefaultI: wZend_Search_Lucene_Search_BooleanExpressionRecognizerI =Zend_Search_Lucene_ProxyI% MZend_Search_Lucene_PriorityQueueI/ aZend_Search_Lucene_Interface_MultiSearcherI% MZend_Search_Lucene_MultiSearcherI#
 IZend_Search_Lucene_LockManagerI$	 KZend_Search_Lucene_Index_WriterI0 cZend_Search_Lucene_Index_TermsPriorityQueueI& OZend_Search_Lucene_Index_TermInfoI" GZend_Search_Lucene_Index_TermI+ YZend_Search_Lucene_Index_SegmentWriterI8 sZend_Search_Lucene_Index_SegmentWriter_StreamWriterI: wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterI+ YZend_Search_Lucene_Index_SegmentMergerI) UZend_Search_Lucene_Index_SegmentInfoI'  QZend_Search_Lucene_Index_FieldInfoI( SZend_Search_Lucene_Index_DocsFilterI.~ _Zend_Search_Lucene_Index_DictionaryLoaderI!} EZend_Search_Lucene_FSMActionI| 9Zend_Search_Lucene_FSMI{ =Zend_Search_Lucene_FieldI!z EZend_Search_Lucene_ExceptionI y CZend_Search_Lucene_DocumentI%x MZend_Search_Lucene_Document_XlsxI%w MZend_Search_Lucene_Document_PptxI(v SZend_Search_Lucene_Document_OpenXmlI%u MZend_Search_Lucene_Document_HtmlI*t WZend_Search_Lucene_Document_ExceptionI%s MZend_Search_Lucene_Document_DocxI,r [Zend_Search_Lucene_Analysis_TokenFilterI6q oZend_Search_Lucene_Analysis_TokenFilter_StopWordsI7p qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsI:o wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8I6n oZend_Search_Lucene_Analysis_TokenFilter_LowerCaseI&m OZend_Search_Lucene_Analysis_TokenI)l UZend_Search_Lucene_Analysis_AnalyzerI0k cZend_Search_Lucene_Analysis_Analyzer_CommonI8j sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumIIi Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitiveI5h mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8I   \  e8uV8V%a6Z,



z
Q
				|	V	${R#nD"fGfAjBDPC          0 cZend_Service_DeveloperGarden_ConferenceCallIC Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatusIC Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetailI< {Zend_Service_DeveloperGarden_ConferenceCall_ParticipantI: wZend_Service_DeveloperGarden_ConferenceCall_ExceptionID 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceScheduleIB Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetailIC Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccountI- ]Zend_Service_DeveloperGarden_Client_SoapI2 gZend_Service_DeveloperGarden_Client_ExceptionI7 qZend_Service_DeveloperGarden_Client_ClientAbstractI1
 eZend_Service_DeveloperGarden_BaseUserServiceIA	 Zend_Service_DeveloperGarden_BaseUserService_AccountBalanceI 9Zend_Service_DeliciousI& OZend_Service_Delicious_SimplePostI$ KZend_Service_Delicious_PostListI  CZend_Service_Delicious_PostI% MZend_Service_Delicious_ExceptionI  CZend_Service_AudioscrobblerI 3Zend_Service_AmazonI ;Zend_Service_Amazon_SqsI&  OZend_Service_Amazon_Sqs_ExceptionI! EZend_Service_Amazon_SimpleDbI*~ WZend_Service_Amazon_SimpleDb_ResponseI&} OZend_Service_Amazon_SimpleDb_PageI+| YZend_Service_Amazon_SimpleDb_ExceptionI+{ YZend_Service_Amazon_SimpleDb_AttributeI'z QZend_Service_Amazon_SimilarProductIy 9Zend_Service_Amazon_S3I"x GZend_Service_Amazon_S3_StreamI%w MZend_Service_Amazon_S3_ExceptionI"v GZend_Service_Amazon_ResultSetIu ?Zend_Service_Amazon_QueryI!t EZend_Service_Amazon_OfferSetIs ?Zend_Service_Amazon_OfferI&r OZend_Service_Amazon_ListmaniaListIq =Zend_Service_Amazon_ItemIp ?Zend_Service_Amazon_ImageI"o GZend_Service_Amazon_ExceptionI(n SZend_Service_Amazon_EditorialReviewIm ;Zend_Service_Amazon_Ec2I+l YZend_Service_Amazon_Ec2_SecuritygroupsI%k MZend_Service_Amazon_Ec2_ResponseI#j IZend_Service_Amazon_Ec2_RegionI$i KZend_Service_Amazon_Ec2_KeypairI%h MZend_Service_Amazon_Ec2_InstanceI-g ]Zend_Service_Amazon_Ec2_Instance_WindowsI.f _Zend_Service_Amazon_Ec2_Instance_ReservedI"e GZend_Service_Amazon_Ec2_ImageI&d OZend_Service_Amazon_Ec2_ExceptionI&c OZend_Service_Amazon_Ec2_ElasticipI b CZend_Service_Amazon_Ec2_EbsI'a QZend_Service_Amazon_Ec2_CloudWatchI.` _Zend_Service_Amazon_Ec2_AvailabilityzonesI%_ MZend_Service_Amazon_Ec2_AbstractI'^ QZend_Service_Amazon_CustomerReviewI'] QZend_Service_Amazon_AuthenticationI*\ WZend_Service_Amazon_Authentication_V2I*[ WZend_Service_Amazon_Authentication_V1I*Z WZend_Service_Amazon_Authentication_S3I1Y eZend_Service_Amazon_Authentication_ExceptionI$X KZend_Service_Amazon_AccessoriesI!W EZend_Service_Amazon_AbstractIV 5Zend_Service_AkismetIU 7Zend_Service_AbstractIT 9Zend_Server_ReflectionI'S QZend_Server_Reflection_ReturnValueI%R MZend_Server_Reflection_PrototypeI%Q MZend_Server_Reflection_ParameterI P CZend_Server_Reflection_NodeI"O GZend_Server_Reflection_MethodI$N KZend_Server_Reflection_FunctionI-M ]Zend_Server_Reflection_Function_AbstractI%L MZend_Server_Reflection_ExceptionI!K EZend_Server_Reflection_ClassI!J EZend_Server_Method_PrototypeI!I EZend_Server_Method_ParameterI"H GZend_Server_Method_DefinitionI G CZend_Server_Method_CallbackIF 7Zend_Server_ExceptionIE 9Zend_Server_DefinitionID /Zend_Server_CacheIC 5Zend_Server_AbstractIB +Zend_SerializerIA ?Zend_Serializer_ExceptionI!@ EZend_Serializer_Adapter_WddxI)? UZend_Serializer_Adapter_PythonPickleI)> UZend_Serializer_Adapter_PhpSerializeI$= KZend_Serializer_Adapter_PhpCodeI!< EZend_Serializer_Adapter_JsonI%; MZend_Serializer_Adapter_IgbinaryI!: EZend_Serializer_Adapter_Amf3I   3 q g7;4-!

b
			]	C0}Fs1^;h3  q   cH GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseIWG /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponseIUF +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponseISE 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponseI3D iZend_Service_DeveloperGarden_Response_BaseTypeIJC Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstractICB Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCallIGA Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequencedI=@ }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallIA? Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatusIA> Zend_Service_DeveloperGarden_Request_SmsValidation_ValidateIN= Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeywordIC< Zend_Service_DeveloperGarden_Request_SmsValidation_InvalidateIL; Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbersIB: Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstractI99 uZend_Service_DeveloperGarden_Request_SendSms_SendSMSI>8 Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMSI97 uZend_Service_DeveloperGarden_Request_RequestAbstractII6 Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequestIE5 Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequestI34 iZend_Service_DeveloperGarden_Request_ExceptionIR3 %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequestIY2 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequestId1 IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequestIQ0 #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequestIR/ %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequestIY. 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequestId- IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequestIQ, #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequestIO+ Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequestIU* +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequestIU) +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequestIV( -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequestIa' CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequestIZ& 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequestIT% )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequestIR$ %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequestIY# 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequestIQ" #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequestIQ! #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequestIa  CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequestIN Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformationIL Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalanceIJ Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPoolI- ]Zend_Service_DeveloperGarden_LocalSearchI> Zend_Service_DeveloperGarden_LocalSearch_SearchParametersI7 qZend_Service_DeveloperGarden_LocalSearch_ExceptionI, [Zend_Service_DeveloperGarden_IpLocationI6 oZend_Service_DeveloperGarden_IpLocation_IpAddressI+ YZend_Service_DeveloperGarden_ExceptionI, [Zend_Service_DeveloperGarden_CredentialI   -  GD's[


%		i	TG'xW@a3                                     Uu +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponseIQt #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponseIIs Zend_Service_DeveloperGarden_Response_SecurityTokenServer_ExceptionI;r yZend_Service_DeveloperGarden_Response_ResponseAbstractIOq Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseTypeIKp Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseIAo Zend_Service_DeveloperGarden_Response_IpLocation_RegionTypeIKn Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseTypeIGm Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseILl Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationTypeIIk Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesTypeI>j Zend_Service_DeveloperGarden_Response_IpLocation_CityTypeI4i kZend_Service_DeveloperGarden_Response_ExceptionITh )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponseI[g 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponseIff MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponseISe 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponseITd )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponseI[c 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponseIfb MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponseISa 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponseIU` +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseTypeIQ_ #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseI[^ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseTypeIW] /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseI[\ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseTypeIW[ /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseI\Z 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseTypeIXY 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseIgX OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseTypeIcW GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseI`V AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseTypeI\U 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseIZT 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseTypeIVS -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseIXR 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseTypeITQ )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseI_P ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseTypeI[O 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseIWN /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseTypeISM 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseIQL #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstractISK 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponseIJJ Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseTypeIgI OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseTypeI   K  m&$8Km4



^
3				S	*}R!j7h6{LjD( i:|W&h3               %@ MZend_Service_ReCaptcha_ExceptionI#? IZend_Service_Rackspace_ServersI5> mZend_Service_Rackspace_Servers_SharedIpGroupListI1= eZend_Service_Rackspace_Servers_SharedIpGroupI.< _Zend_Service_Rackspace_Servers_ServerListI*; WZend_Service_Rackspace_Servers_ServerI-: ]Zend_Service_Rackspace_Servers_ImageListI)9 UZend_Service_Rackspace_Servers_ImageI-8 ]Zend_Service_Rackspace_Servers_ExceptionI!7 EZend_Service_Rackspace_FilesI,6 [Zend_Service_Rackspace_Files_ObjectListI(5 SZend_Service_Rackspace_Files_ObjectI+4 YZend_Service_Rackspace_Files_ExceptionI/3 aZend_Service_Rackspace_Files_ContainerListI+2 YZend_Service_Rackspace_Files_ContainerI%1 MZend_Service_Rackspace_ExceptionI$0 KZend_Service_Rackspace_AbstractI/ 7Zend_Service_LiveDocxI$. KZend_Service_LiveDocx_MailMergeI$- KZend_Service_LiveDocx_ExceptionI, 3Zend_Service_FlickrI"+ GZend_Service_Flickr_ResultSetI* AZend_Service_Flickr_ResultI) ?Zend_Service_Flickr_ImageI( 9Zend_Service_ExceptionI' ?Zend_Service_Ebay_FindingI)& UZend_Service_Ebay_Finding_StorefrontI+% YZend_Service_Ebay_Finding_ShippingInfoI+$ YZend_Service_Ebay_Finding_Set_AbstractI,# [Zend_Service_Ebay_Finding_SellingStatusI)" UZend_Service_Ebay_Finding_SellerInfoI,! [Zend_Service_Ebay_Finding_Search_ResultI*  WZend_Service_Ebay_Finding_Search_ItemI. _Zend_Service_Ebay_Finding_Search_Item_SetI0 cZend_Service_Ebay_Finding_Response_KeywordsI- ]Zend_Service_Ebay_Finding_Response_ItemsI2 gZend_Service_Ebay_Finding_Response_HistogramsI0 cZend_Service_Ebay_Finding_Response_AbstractI/ aZend_Service_Ebay_Finding_PaginationOutputI* WZend_Service_Ebay_Finding_ListingInfoI( SZend_Service_Ebay_Finding_ExceptionI, [Zend_Service_Ebay_Finding_Error_MessageI) UZend_Service_Ebay_Finding_Error_DataI- ]Zend_Service_Ebay_Finding_Error_Data_SetI' QZend_Service_Ebay_Finding_CategoryI1 eZend_Service_Ebay_Finding_Category_HistogramI5 mZend_Service_Ebay_Finding_Category_Histogram_SetI; yZend_Service_Ebay_Finding_Category_Histogram_ContainerI% MZend_Service_Ebay_Finding_AspectI) UZend_Service_Ebay_Finding_Aspect_SetI5 mZend_Service_Ebay_Finding_Aspect_Histogram_ValueI9 uZend_Service_Ebay_Finding_Aspect_Histogram_Value_SetI9 uZend_Service_Ebay_Finding_Aspect_Histogram_ContainerI' QZend_Service_Ebay_Finding_AbstractI 
 CZend_Service_Ebay_ExceptionI	 AZend_Service_Ebay_AbstractI+ YZend_Service_DeveloperGarden_VoiceCallI/ aZend_Service_DeveloperGarden_SmsValidationI) UZend_Service_DeveloperGarden_SendSmsI5 mZend_Service_DeveloperGarden_SecurityTokenServerI; yZend_Service_DeveloperGarden_SecurityTokenServer_CacheIK Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstractIL Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponseIP !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponseIG  Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponseIJ Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponseIK~ Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2ResponseIL} Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponseII| Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumberIW{ /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponseIJz Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponseIUy +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponseICx Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponseICw Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstractIHv Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponseI   M  ~_/qH|IoEhA



N
$				w	J	jDFmZ$t/sMbk                    9 uZend_Service_WindowsAzure_Log_Formatter_WindowsAzureI( SZend_Service_WindowsAzure_ExceptionIJ Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscriptionI2
 gZend_Service_WindowsAzure_Diagnostics_ManagerI3	 iZend_Service_WindowsAzure_Diagnostics_LogLevelI4 kZend_Service_WindowsAzure_Diagnostics_ExceptionIN Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscriptionIH Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLogIL Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCountersIK Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstractI< {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogsIA Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstanceID 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectoriesIU  +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogsID 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSourcesI8~ sZend_Service_WindowsAzure_Credentials_SharedKeyLiteI4} kZend_Service_WindowsAzure_Credentials_SharedKeyIA| Zend_Service_WindowsAzure_Credentials_SharedAccessSignatureI4{ kZend_Service_WindowsAzure_Credentials_ExceptionI>z Zend_Service_WindowsAzure_Credentials_CredentialsAbstractI2y gZend_Service_WindowsAzure_CommandLine_StorageI2x gZend_Service_WindowsAzure_CommandLine_ServiceIw !ScaffolderIWv /Zend_Service_WindowsAzure_CommandLine_PackageScaffolder_PackageScaffolderAbstractI2u gZend_Service_WindowsAzure_CommandLine_PackageIDt 	Zend_Service_WindowsAzure_CommandLine_GetAsynchronousOperationI5s mZend_Service_WindowsAzure_CommandLine_DeploymentI6r oZend_Service_WindowsAzure_CommandLine_CertificateIq 5Zend_Service_TwitterI#p IZend_Service_Twitter_ExceptionIo ;Zend_Service_TechnoratiI#n IZend_Service_Technorati_WeblogI"m GZend_Service_Technorati_UtilsI*l WZend_Service_Technorati_TagsResultSetI'k QZend_Service_Technorati_TagsResultI)j UZend_Service_Technorati_TagResultSetI&i OZend_Service_Technorati_TagResultI,h [Zend_Service_Technorati_SearchResultSetI)g UZend_Service_Technorati_SearchResultI&f OZend_Service_Technorati_ResultSetI#e IZend_Service_Technorati_ResultI*d WZend_Service_Technorati_KeyInfoResultI*c WZend_Service_Technorati_GetInfoResultI&b OZend_Service_Technorati_ExceptionI1a eZend_Service_Technorati_DailyCountsResultSetI.` _Zend_Service_Technorati_DailyCountsResultI,_ [Zend_Service_Technorati_CosmosResultSetI)^ UZend_Service_Technorati_CosmosResultI+] YZend_Service_Technorati_BlogInfoResultI#\ IZend_Service_Technorati_AuthorI[ ;Zend_Service_StrikeIronI(Z SZend_Service_StrikeIron_ZipCodeInfoI2Y gZend_Service_StrikeIron_USAddressVerificationI-X ]Zend_Service_StrikeIron_SalesUseTaxBasicI&W OZend_Service_StrikeIron_ExceptionI&V OZend_Service_StrikeIron_DecoratorI!U EZend_Service_StrikeIron_BaseI;T yZend_Service_SqlAzure_Management_ServiceEntityAbstractI4S kZend_Service_SqlAzure_Management_ServerInstanceI:R wZend_Service_SqlAzure_Management_FirewallRuleInstanceI/Q aZend_Service_SqlAzure_Management_ExceptionI,P [Zend_Service_SqlAzure_Management_ClientI$O KZend_Service_SqlAzure_ExceptionIN ;Zend_Service_SlideShareI&M OZend_Service_SlideShare_SlideShowI&L OZend_Service_SlideShare_ExceptionI%K MZend_Service_ShortUrl_TinyUrlComI&J OZend_Service_ShortUrl_MetamarkNetI!I EZend_Service_ShortUrl_JdemCzIH AZend_Service_ShortUrl_IsGdI$G KZend_Service_ShortUrl_ExceptionI F CZend_Service_ShortUrl_BitLyI,E [Zend_Service_ShortUrl_AbstractShortenerID 9Zend_Service_ReCaptchaI$C KZend_Service_ReCaptcha_ResponseI$B KZend_Service_ReCaptcha_MailHideI.A _Zend_Service_ReCaptcha_MailHide_ExceptionI   S  AR<g/Q!


}
E
			\	,Bi?rK!{Y4{]>va8~[<#~J         ` CZend_Stdlib_CallbackHandlerI_ )Zend_Soap_WsdlI/^ aZend_Soap_Wsdl_Strategy_DefaultComplexTypeI&] OZend_Soap_Wsdl_Strategy_CompositeI0\ cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequenceI/[ aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplexI$Z KZend_Soap_Wsdl_Strategy_AnyTypeI%Y MZend_Soap_Wsdl_Strategy_AbstractIX =Zend_Soap_Wsdl_ExceptionIW -Zend_Soap_ServerIV 9Zend_Soap_Server_ProxyIU AZend_Soap_Server_ExceptionIT -Zend_Soap_ClientIS 9Zend_Soap_Client_LocalIR AZend_Soap_Client_ExceptionIQ ;Zend_Soap_Client_DotNetIP ;Zend_Soap_Client_CommonIO 9Zend_Soap_AutoDiscoverI%N MZend_Soap_AutoDiscover_ExceptionIM %Zend_SessionI)L UZend_Session_Validator_HttpUserAgentI$K KZend_Session_Validator_AbstractI'J QZend_Session_SaveHandler_ExceptionI%I MZend_Session_SaveHandler_DbTableIH 9Zend_Session_NamespaceIG 9Zend_Session_ExceptionIF 7Zend_Session_AbstractIE 1Zend_Service_YahooI$D KZend_Service_Yahoo_WebResultSetI!C EZend_Service_Yahoo_WebResultI&B OZend_Service_Yahoo_VideoResultSetI#A IZend_Service_Yahoo_VideoResultI!@ EZend_Service_Yahoo_ResultSetI? ?Zend_Service_Yahoo_ResultI)> UZend_Service_Yahoo_PageDataResultSetI&= OZend_Service_Yahoo_PageDataResultI%< MZend_Service_Yahoo_NewsResultSetI"; GZend_Service_Yahoo_NewsResultI&: OZend_Service_Yahoo_LocalResultSetI#9 IZend_Service_Yahoo_LocalResultI+8 YZend_Service_Yahoo_InlinkDataResultSetI(7 SZend_Service_Yahoo_InlinkDataResultI&6 OZend_Service_Yahoo_ImageResultSetI#5 IZend_Service_Yahoo_ImageResultI4 =Zend_Service_Yahoo_ImageI&3 OZend_Service_WindowsAzure_StorageI42 kZend_Service_WindowsAzure_Storage_TableInstanceI71 qZend_Service_WindowsAzure_Storage_TableEntityQueryI20 gZend_Service_WindowsAzure_Storage_TableEntityI,/ [Zend_Service_WindowsAzure_Storage_TableI<. {Zend_Service_WindowsAzure_Storage_StorageEntityAbstractI7- qZend_Service_WindowsAzure_Storage_SignedIdentifierI3, iZend_Service_WindowsAzure_Storage_QueueMessageI4+ kZend_Service_WindowsAzure_Storage_QueueInstanceI,* [Zend_Service_WindowsAzure_Storage_QueueI9) uZend_Service_WindowsAzure_Storage_PageRegionInstanceI4( kZend_Service_WindowsAzure_Storage_LeaseInstanceI9' uZend_Service_WindowsAzure_Storage_DynamicTableEntityI3& iZend_Service_WindowsAzure_Storage_BlobInstanceI4% kZend_Service_WindowsAzure_Storage_BlobContainerI+$ YZend_Service_WindowsAzure_Storage_BlobI2# gZend_Service_WindowsAzure_Storage_Blob_StreamI;" yZend_Service_WindowsAzure_Storage_BatchStorageAbstractI,! [Zend_Service_WindowsAzure_Storage_BatchI-  ]Zend_Service_WindowsAzure_SessionHandlerI> Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstractI1 eZend_Service_WindowsAzure_RetryPolicy_RetryNI2 gZend_Service_WindowsAzure_RetryPolicy_NoRetryI4 kZend_Service_WindowsAzure_RetryPolicy_ExceptionIH Zend_Service_WindowsAzure_Management_SubscriptionOperationInstanceIA Zend_Service_WindowsAzure_Management_StorageServiceInstanceI@ Zend_Service_WindowsAzure_Management_ServiceEntityAbstractIB Zend_Service_WindowsAzure_Management_OperationStatusInstanceIB Zend_Service_WindowsAzure_Management_OperatingSystemInstanceIH Zend_Service_WindowsAzure_Management_OperatingSystemFamilyInstanceI: wZend_Service_WindowsAzure_Management_LocationInstanceI@ Zend_Service_WindowsAzure_Management_HostedServiceInstanceI3 iZend_Service_WindowsAzure_Management_ExceptionI< {Zend_Service_WindowsAzure_Management_DeploymentInstanceI0 cZend_Service_WindowsAzure_Management_ClientI= }Zend_Service_WindowsAzure_Management_CertificateInstanceI@ Zend_Service_WindowsAzure_Management_AffinityGroupInstanceI6 oZend_Service_WindowsAzure_Log_Writer_WindowsAzureI   Y  iB}fK5V"tG\+




d
K
/
					h	H	.	[/a@p3h39s=].                       +9 YZend_Tool_Framework_Provider_SignatureI,8 [Zend_Tool_Framework_Provider_RepositoryI+7 YZend_Tool_Framework_Provider_ExceptionI*6 WZend_Tool_Framework_Provider_AbstractI&5 OZend_Tool_Framework_Metadata_ToolI)4 UZend_Tool_Framework_Metadata_DynamicI'3 QZend_Tool_Framework_Metadata_BasicI,2 [Zend_Tool_Framework_Manifest_RepositoryI21 gZend_Tool_Framework_Manifest_ProviderMetadataI*0 WZend_Tool_Framework_Manifest_MetadataI+/ YZend_Tool_Framework_Manifest_ExceptionI0. cZend_Tool_Framework_Manifest_ActionMetadataI1- eZend_Tool_Framework_Loader_IncludePathLoaderIJ, Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIteratorI++ YZend_Tool_Framework_Loader_BasicLoaderI(* SZend_Tool_Framework_Loader_AbstractI") GZend_Tool_Framework_ExceptionI'( QZend_Tool_Framework_Client_StorageI1' eZend_Tool_Framework_Client_Storage_DirectoryI(& SZend_Tool_Framework_Client_ResponseID% 	Zend_Tool_Framework_Client_Response_ContentDecorator_SeparatorI'$ QZend_Tool_Framework_Client_RequestI(# SZend_Tool_Framework_Client_ManifestI9" uZend_Tool_Framework_Client_Interactive_InputResponseI8! sZend_Tool_Framework_Client_Interactive_InputRequestI8  sZend_Tool_Framework_Client_Interactive_InputHandlerI) UZend_Tool_Framework_Client_ExceptionI' QZend_Tool_Framework_Client_ConsoleID 	Zend_Tool_Framework_Client_Console_ResponseDecorator_IndentionID 	Zend_Tool_Framework_Client_Console_ResponseDecorator_ColorizerIC Zend_Tool_Framework_Client_Console_ResponseDecorator_BlockizeIF Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenterI0 cZend_Tool_Framework_Client_Console_ManifestI2 gZend_Tool_Framework_Client_Console_HelpSystemI6 oZend_Tool_Framework_Client_Console_ArgumentParserI& OZend_Tool_Framework_Client_ConfigI( SZend_Tool_Framework_Client_AbstractI* WZend_Tool_Framework_Action_RepositoryI) UZend_Tool_Framework_Action_ExceptionI$ KZend_Tool_Framework_Action_BaseI 'Zend_TimeSyncI 1Zend_TimeSync_SntpI 9Zend_TimeSync_ProtocolI /Zend_TimeSync_NtpI ;Zend_TimeSync_ExceptionI +Zend_Text_TableI 3Zend_Text_Table_RowI
 ?Zend_Text_Table_ExceptionI&	 OZend_Text_Table_Decorator_UnicodeI$ KZend_Text_Table_Decorator_AsciiI 9Zend_Text_Table_ColumnI 3Zend_Text_MultiByteI -Zend_Text_FigletI AZend_Text_Figlet_ExceptionI 3Zend_Text_ExceptionI& OZend_Test_PHPUnit_Db_SimpleTesterI, [Zend_Test_PHPUnit_Db_Operation_TruncateI*  WZend_Test_PHPUnit_Db_Operation_InsertI- ]Zend_Test_PHPUnit_Db_Operation_DeleteAllI*~ WZend_Test_PHPUnit_Db_Metadata_GenericI#} IZend_Test_PHPUnit_Db_ExceptionI,| [Zend_Test_PHPUnit_Db_DataSet_QueryTableI.{ _Zend_Test_PHPUnit_Db_DataSet_QueryDataSetI0z cZend_Test_PHPUnit_Db_DataSet_DbTableDataSetI)y UZend_Test_PHPUnit_Db_DataSet_DbTableI*x WZend_Test_PHPUnit_Db_DataSet_DbRowsetI$w KZend_Test_PHPUnit_Db_ConnectionI'v QZend_Test_PHPUnit_DatabaseTestCaseI)u UZend_Test_PHPUnit_ControllerTestCaseI0t cZend_Test_PHPUnit_Constraint_ResponseHeaderI*s WZend_Test_PHPUnit_Constraint_RedirectI+r YZend_Test_PHPUnit_Constraint_ExceptionI*q WZend_Test_PHPUnit_Constraint_DomQueryIp 7Zend_Test_DbStatementIo 3Zend_Test_DbAdapterIn /Zend_Tag_ItemListIm 'Zend_Tag_ItemIl 1Zend_Tag_ExceptionIk )Zend_Tag_CloudIj =Zend_Tag_Cloud_ExceptionI!i EZend_Tag_Cloud_Decorator_TagI%h MZend_Tag_Cloud_Decorator_HtmlTagI'g QZend_Tag_Cloud_Decorator_HtmlCloudI'f QZend_Tag_Cloud_Decorator_ExceptionI#e IZend_Tag_Cloud_Decorator_CloudI!d EZend_Stdlib_SplPriorityQueueIc -SplPriorityQueueIb ?Zend_Stdlib_PriorityQueueI3a iZend_Stdlib_Exception_InvalidCallbackExceptionI   G  {JN{Eu9Y


}
M
			v	@	zHj4h2Te.s*cp,                               7  qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFileI: wZend_Tool_Project_Context_Zf_TestPHPUnitBootstrapFileI@~ Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectoryI1} eZend_Tool_Project_Context_Zf_TestLibraryFileI6| oZend_Tool_Project_Context_Zf_TestLibraryDirectoryI:{ wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFileIBz Zend_Tool_Project_Context_Zf_TestApplicationModulesDirectoryIAy Zend_Tool_Project_Context_Zf_TestApplicationModuleDirectoryI:x wZend_Tool_Project_Context_Zf_TestApplicationDirectoryI@w Zend_Tool_Project_Context_Zf_TestApplicationControllerFileIEv Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectoryI>u Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFileI=t }Zend_Tool_Project_Context_Zf_TestApplicationActionMethodI4s kZend_Tool_Project_Context_Zf_TemporaryDirectoryI3r iZend_Tool_Project_Context_Zf_SessionsDirectoryI3q iZend_Tool_Project_Context_Zf_ServicesDirectoryI8p sZend_Tool_Project_Context_Zf_SearchIndexesDirectoryI<o {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectoryI8n sZend_Tool_Project_Context_Zf_PublicScriptsDirectoryI1m eZend_Tool_Project_Context_Zf_PublicIndexFileI7l qZend_Tool_Project_Context_Zf_PublicImagesDirectoryI1k eZend_Tool_Project_Context_Zf_PublicDirectoryI5j mZend_Tool_Project_Context_Zf_ProjectProviderFileI2i gZend_Tool_Project_Context_Zf_ModulesDirectoryI1h eZend_Tool_Project_Context_Zf_ModuleDirectoryI1g eZend_Tool_Project_Context_Zf_ModelsDirectoryI+f YZend_Tool_Project_Context_Zf_ModelFileI/e aZend_Tool_Project_Context_Zf_LogsDirectoryI2d gZend_Tool_Project_Context_Zf_LocalesDirectoryI2c gZend_Tool_Project_Context_Zf_LibraryDirectoryI2b gZend_Tool_Project_Context_Zf_LayoutsDirectoryI8a sZend_Tool_Project_Context_Zf_LayoutScriptsDirectoryI2` gZend_Tool_Project_Context_Zf_LayoutScriptFileI._ _Zend_Tool_Project_Context_Zf_HtaccessFileI0^ cZend_Tool_Project_Context_Zf_FormsDirectoryI*] WZend_Tool_Project_Context_Zf_FormFileI/\ aZend_Tool_Project_Context_Zf_DocsDirectoryI-[ ]Zend_Tool_Project_Context_Zf_DbTableFileI2Z gZend_Tool_Project_Context_Zf_DbTableDirectoryI/Y aZend_Tool_Project_Context_Zf_DataDirectoryI6X oZend_Tool_Project_Context_Zf_ControllersDirectoryI0W cZend_Tool_Project_Context_Zf_ControllerFileI2V gZend_Tool_Project_Context_Zf_ConfigsDirectoryI,U [Zend_Tool_Project_Context_Zf_ConfigFileI0T cZend_Tool_Project_Context_Zf_CacheDirectoryI/S aZend_Tool_Project_Context_Zf_BootstrapFileI6R oZend_Tool_Project_Context_Zf_ApplicationDirectoryI7Q qZend_Tool_Project_Context_Zf_ApplicationConfigFileI/P aZend_Tool_Project_Context_Zf_ApisDirectoryI.O _Zend_Tool_Project_Context_Zf_ActionMethodI3N iZend_Tool_Project_Context_Zf_AbstractClassFileI@M Zend_Tool_Project_Context_System_ProjectProvidersDirectoryI8L sZend_Tool_Project_Context_System_ProjectProfileFileI6K oZend_Tool_Project_Context_System_ProjectDirectoryI)J UZend_Tool_Project_Context_RepositoryI.I _Zend_Tool_Project_Context_Filesystem_FileI3H iZend_Tool_Project_Context_Filesystem_DirectoryI2G gZend_Tool_Project_Context_Filesystem_AbstractI(F SZend_Tool_Project_Context_ExceptionI-E ]Zend_Tool_Project_Context_Content_EngineI3D iZend_Tool_Project_Context_Content_Engine_PhtmlI;C yZend_Tool_Project_Context_Content_Engine_CodeGeneratorI0B cZend_Tool_Framework_System_Provider_VersionI0A cZend_Tool_Framework_System_Provider_PhpinfoI1@ eZend_Tool_Framework_System_Provider_ManifestI/? aZend_Tool_Framework_System_Provider_ConfigI(> SZend_Tool_Framework_System_ManifestI-= ]Zend_Tool_Framework_System_Action_DeleteI-< ]Zend_Tool_Framework_System_Action_CreateI!; EZend_Tool_Framework_RegistryI+: YZend_Tool_Framework_Registry_ExceptionI   b  Qo;zA cAa6	



b
8
				_	:	e@udE)e=`=`2yQ.qP5eD#  'b QZend_Validate_File_ExcludeMimeTypeI(a SZend_Validate_File_ExcludeExtensionI` =Zend_Validate_File_Crc32I_ =Zend_Validate_File_CountI^ ;Zend_Validate_ExceptionI] AZend_Validate_EmailAddressI\ 5Zend_Validate_DigitsI"[ GZend_Validate_Db_RecordExistsI$Z KZend_Validate_Db_NoRecordExistsIY ?Zend_Validate_Db_AbstractIX 1Zend_Validate_DateIW =Zend_Validate_CreditCardIV 3Zend_Validate_CcnumIU 9Zend_Validate_CallbackIT 7Zend_Validate_BetweenIS 7Zend_Validate_BarcodeIR AZend_Validate_Barcode_UpceIQ AZend_Validate_Barcode_UpcaIP AZend_Validate_Barcode_SsccI$O KZend_Validate_Barcode_RoyalmailI"N GZend_Validate_Barcode_PostnetI!M EZend_Validate_Barcode_PlanetI#L IZend_Validate_Barcode_LeitcodeI K CZend_Validate_Barcode_Itf14IJ AZend_Validate_Barcode_IssnI*I WZend_Validate_Barcode_IntelligentMailI$H KZend_Validate_Barcode_IdentcodeI!G EZend_Validate_Barcode_Gtin14I!F EZend_Validate_Barcode_Gtin13I!E EZend_Validate_Barcode_Gtin12ID AZend_Validate_Barcode_Ean8IC AZend_Validate_Barcode_Ean5IB AZend_Validate_Barcode_Ean2I A CZend_Validate_Barcode_Ean18I @ CZend_Validate_Barcode_Ean14I ? CZend_Validate_Barcode_Ean13I > CZend_Validate_Barcode_Ean12I$= KZend_Validate_Barcode_Code93extI!< EZend_Validate_Barcode_Code93I$; KZend_Validate_Barcode_Code39extI!: EZend_Validate_Barcode_Code39I,9 [Zend_Validate_Barcode_Code25interleavedI!8 EZend_Validate_Barcode_Code25I*7 WZend_Validate_Barcode_AdapterAbstractI6 3Zend_Validate_AlphaI5 3Zend_Validate_AlnumI4 9Zend_Validate_AbstractI3 Zend_UriI2 'Zend_Uri_HttpI1 1Zend_Uri_ExceptionI0 )Zend_TranslateI/ 7Zend_Translate_PluralI. =Zend_Translate_ExceptionI- 9Zend_Translate_AdapterI!, EZend_Translate_Adapter_XmlTmI!+ EZend_Translate_Adapter_XliffI* AZend_Translate_Adapter_TmxI) AZend_Translate_Adapter_TbxI( ?Zend_Translate_Adapter_QtI' AZend_Translate_Adapter_IniI#& IZend_Translate_Adapter_GettextI% AZend_Translate_Adapter_CsvI!$ EZend_Translate_Adapter_ArrayI$# KZend_Tool_Project_Provider_ViewI$" KZend_Tool_Project_Provider_TestI/! aZend_Tool_Project_Provider_ProjectProviderI'  QZend_Tool_Project_Provider_ProjectI' QZend_Tool_Project_Provider_ProfileI& OZend_Tool_Project_Provider_ModuleI% MZend_Tool_Project_Provider_ModelI( SZend_Tool_Project_Provider_ManifestI& OZend_Tool_Project_Provider_LayoutI$ KZend_Tool_Project_Provider_FormI) UZend_Tool_Project_Provider_ExceptionI' QZend_Tool_Project_Provider_DbTableI) UZend_Tool_Project_Provider_DbAdapterI* WZend_Tool_Project_Provider_ControllerI+ YZend_Tool_Project_Provider_ApplicationI& OZend_Tool_Project_Provider_ActionI( SZend_Tool_Project_Provider_AbstractI ?Zend_Tool_Project_ProfileI' QZend_Tool_Project_Profile_ResourceI9 uZend_Tool_Project_Profile_Resource_SearchConstraintsI1 eZend_Tool_Project_Profile_Resource_ContainerI= }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilterI5 mZend_Tool_Project_Profile_Iterator_ContextFilterI- ]Zend_Tool_Project_Profile_FileParser_XmlI( SZend_Tool_Project_Profile_ExceptionI 
 CZend_Tool_Project_ExceptionI<	 {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectoryI0 cZend_Tool_Project_Context_Zf_ViewsDirectoryI6 oZend_Tool_Project_Context_Zf_ViewScriptsDirectoryI0 cZend_Tool_Project_Context_Zf_ViewScriptFileI6 oZend_Tool_Project_Context_Zf_ViewHelpersDirectoryI6 oZend_Tool_Project_Context_Zf_ViewFiltersDirectoryIA Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectoryI2 gZend_Tool_Project_Context_Zf_UploadsDirectoryI0 cZend_Tool_Project_Context_Zf_TestsDirectoryI   l  tO'|\:cE+|`7z_C!



z
Y
7
					d	@	dAmK'wS1
vCuJ)Y*rO,wJ                    !N EZend_Wildfire_Plugin_FirePhpI.M _Zend_Wildfire_Plugin_FirePhp_TableMessageI)L UZend_Wildfire_Plugin_FirePhp_MessageIK ;Zend_Wildfire_ExceptionI&J OZend_Wildfire_Channel_HttpHeadersII Zend_ViewIH -Zend_View_StreamIG AZend_View_Helper_UserAgentIF 5Zend_View_Helper_UrlIE AZend_View_Helper_TranslateID AZend_View_Helper_ServerUrlI)C UZend_View_Helper_RenderToPlaceholderI!B EZend_View_Helper_PlaceholderI*A WZend_View_Helper_Placeholder_RegistryI4@ kZend_View_Helper_Placeholder_Registry_ExceptionI+? YZend_View_Helper_Placeholder_ContainerI6> oZend_View_Helper_Placeholder_Container_StandaloneI5= mZend_View_Helper_Placeholder_Container_ExceptionI4< kZend_View_Helper_Placeholder_Container_AbstractI!; EZend_View_Helper_PartialLoopI: =Zend_View_Helper_PartialI'9 QZend_View_Helper_Partial_ExceptionI'8 QZend_View_Helper_PaginationControlI 7 CZend_View_Helper_NavigationI(6 SZend_View_Helper_Navigation_SitemapI%5 MZend_View_Helper_Navigation_MenuI&4 OZend_View_Helper_Navigation_LinksI/3 aZend_View_Helper_Navigation_HelperAbstractI,2 [Zend_View_Helper_Navigation_BreadcrumbsI1 ;Zend_View_Helper_LayoutI0 7Zend_View_Helper_JsonI"/ GZend_View_Helper_InlineScriptI#. IZend_View_Helper_HtmlQuicktimeI- ?Zend_View_Helper_HtmlPageI , CZend_View_Helper_HtmlObjectI+ ?Zend_View_Helper_HtmlListI* AZend_View_Helper_HtmlFlashI!) EZend_View_Helper_HtmlElementI( AZend_View_Helper_HeadTitleI' AZend_View_Helper_HeadStyleI & CZend_View_Helper_HeadScriptI% ?Zend_View_Helper_HeadMetaI$ ?Zend_View_Helper_HeadLinkI# ?Zend_View_Helper_GravatarI"" GZend_View_Helper_FormTextareaI! ?Zend_View_Helper_FormTextI   CZend_View_Helper_FormSubmitI  CZend_View_Helper_FormSelectI AZend_View_Helper_FormResetI AZend_View_Helper_FormRadioI" GZend_View_Helper_FormPasswordI ?Zend_View_Helper_FormNoteI' QZend_View_Helper_FormMultiCheckboxI AZend_View_Helper_FormLabelI AZend_View_Helper_FormImageI  CZend_View_Helper_FormHiddenI ?Zend_View_Helper_FormFileI  CZend_View_Helper_FormErrorsI! EZend_View_Helper_FormElementI" GZend_View_Helper_FormCheckboxI  CZend_View_Helper_FormButtonI 7Zend_View_Helper_FormI ?Zend_View_Helper_FieldsetI =Zend_View_Helper_DoctypeI! EZend_View_Helper_DeclareVarsI 9Zend_View_Helper_CycleI ?Zend_View_Helper_CurrencyI =Zend_View_Helper_BaseUrlI
 ;Zend_View_Helper_ActionI	 ?Zend_View_Helper_AbstractI 3Zend_View_ExceptionI 1Zend_View_AbstractI %Zend_VersionI 'Zend_ValidateI AZend_Validate_StringLengthI# IZend_Validate_Sitemap_PriorityI ?Zend_Validate_Sitemap_LocI" GZend_Validate_Sitemap_LastmodI%  MZend_Validate_Sitemap_ChangefreqI 3Zend_Validate_RegexI~ 9Zend_Validate_PostCodeI} 9Zend_Validate_NotEmptyI| 9Zend_Validate_LessThanI{ 7Zend_Validate_Ldap_DnIz 1Zend_Validate_IsbnIy -Zend_Validate_IpIx /Zend_Validate_IntIw 7Zend_Validate_InArrayIv ;Zend_Validate_IdenticalIu 1Zend_Validate_IbanIt 9Zend_Validate_HostnameIs /Zend_Validate_HexIr ?Zend_Validate_GreaterThanIq 3Zend_Validate_FloatI!p EZend_Validate_File_WordCountIo ?Zend_Validate_File_UploadIn ;Zend_Validate_File_SizeIm ;Zend_Validate_File_Sha1I!l EZend_Validate_File_NotExistsI k CZend_Validate_File_MimeTypeIj 9Zend_Validate_File_Md5Ii AZend_Validate_File_IsImageI$h KZend_Validate_File_IsCompressedI!g EZend_Validate_File_ImageSizeIf ;Zend_Validate_File_HashI!e EZend_Validate_File_FilesSizeI!d EZend_Validate_File_ExtensionIc ?Zend_Validate_File_ExistsI   i  ^/ \,fE \:mL+





s
]
L
0
					k	D	\0	oU3^*m<h=l:qGh<  7 ?Zend_Auth_Adapter_DbTableJ6 -Zend_ApplicationJ#5 IZend_Application_Resource_ViewJ(4 SZend_Application_Resource_UserAgentJ(3 SZend_Application_Resource_TranslateJ&2 OZend_Application_Resource_SessionJ%1 MZend_Application_Resource_RouterJ/0 aZend_Application_Resource_ResourceAbstractJ)/ UZend_Application_Resource_NavigationJ&. OZend_Application_Resource_MultidbJ&- OZend_Application_Resource_ModulesJ#, IZend_Application_Resource_MailJ"+ GZend_Application_Resource_LogJ%* MZend_Application_Resource_LocaleJ%) MZend_Application_Resource_LayoutJ.( _Zend_Application_Resource_FrontcontrollerJ(' SZend_Application_Resource_ExceptionJ#& IZend_Application_Resource_DojoJ!% EZend_Application_Resource_DbJ+$ YZend_Application_Resource_CachemanagerJ&# OZend_Application_Module_BootstrapJ'" QZend_Application_Module_AutoloaderJ! AZend_Application_ExceptionJ)  UZend_Application_Bootstrap_ExceptionJ1 eZend_Application_Bootstrap_BootstrapAbstractJ) UZend_Application_Bootstrap_BootstrapJ ?Zend_Amf_Value_TraitsInfoJ- ]Zend_Amf_Value_Messaging_RemotingMessageJ* WZend_Amf_Value_Messaging_ErrorMessageJ, [Zend_Amf_Value_Messaging_CommandMessageJ* WZend_Amf_Value_Messaging_AsyncMessageJ- ]Zend_Amf_Value_Messaging_ArrayCollectionJ0 cZend_Amf_Value_Messaging_AcknowledgeMessageJ- ]Zend_Amf_Value_Messaging_AbstractMessageJ! EZend_Amf_Value_MessageHeaderJ AZend_Amf_Value_MessageBodyJ =Zend_Amf_Value_ByteArrayJ AZend_Amf_Util_BinaryStreamJ +Zend_Amf_ServerJ ?Zend_Amf_Server_ExceptionJ /Zend_Amf_ResponseJ 9Zend_Amf_Response_HttpJ -Zend_Amf_RequestJ 7Zend_Amf_Request_HttpJ ?Zend_Amf_Parse_TypeLoaderJ
 ?Zend_Amf_Parse_SerializerJ#	 IZend_Amf_Parse_Resource_StreamJ( SZend_Amf_Parse_Resource_MysqlResultJ) UZend_Amf_Parse_Resource_MysqliResultJ  CZend_Amf_Parse_OutputStreamJ AZend_Amf_Parse_InputStreamJ  CZend_Amf_Parse_DeserializerJ# IZend_Amf_Parse_Amf3_SerializerJ% MZend_Amf_Parse_Amf3_DeserializerJ# IZend_Amf_Parse_Amf0_SerializerJ%  MZend_Amf_Parse_Amf0_DeserializerJ 1Zend_Amf_ExceptionJ~ 1Zend_Amf_ConstantsJ} 9Zend_Amf_Auth_AbstractJ | CZend_Amf_Adobe_IntrospectorJ{ AZend_Amf_Adobe_DbInspectorJz 3Zend_Amf_Adobe_AuthJy Zend_AclJx 'Zend_Acl_RoleJw 9Zend_Acl_Role_RegistryJ%v MZend_Acl_Role_Registry_ExceptionJu /Zend_Acl_ResourceJt 1Zend_Acl_ExceptionJs /Zend_XmlRpc_ValueIr =Zend_XmlRpc_Value_StructIq =Zend_XmlRpc_Value_StringIp =Zend_XmlRpc_Value_ScalarIo 7Zend_XmlRpc_Value_NilIn ?Zend_XmlRpc_Value_IntegerI m CZend_XmlRpc_Value_ExceptionIl =Zend_XmlRpc_Value_DoubleIk AZend_XmlRpc_Value_DateTimeI!j EZend_XmlRpc_Value_CollectionIi ?Zend_XmlRpc_Value_BooleanI!h EZend_XmlRpc_Value_BigIntegerIg =Zend_XmlRpc_Value_Base64If ;Zend_XmlRpc_Value_ArrayIe 1Zend_XmlRpc_ServerId ?Zend_XmlRpc_Server_SystemIc =Zend_XmlRpc_Server_FaultI!b EZend_XmlRpc_Server_ExceptionIa =Zend_XmlRpc_Server_CacheI` 5Zend_XmlRpc_ResponseI_ ?Zend_XmlRpc_Response_HttpI^ 3Zend_XmlRpc_RequestI] ?Zend_XmlRpc_Request_StdinI\ =Zend_XmlRpc_Request_HttpI$[ KZend_XmlRpc_Generator_XmlWriterI,Z [Zend_XmlRpc_Generator_GeneratorAbstractI&Y OZend_XmlRpc_Generator_DomDocumentIX /Zend_XmlRpc_FaultIW 7Zend_XmlRpc_ExceptionIV 1Zend_XmlRpc_ClientI#U IZend_XmlRpc_Client_ServerProxyI+T YZend_XmlRpc_Client_ServerIntrospectionI+S YZend_XmlRpc_Client_IntrospectExceptionI%R MZend_XmlRpc_Client_HttpExceptionI&Q OZend_XmlRpc_Client_FaultExceptionI!P EZend_XmlRpc_Client_ExceptionI&O OZend_Wildfire_Protocol_JsonStreamI   X  h=M& kF)`>_5




k
A
				n	D	|S2wS\2
TW+_&W&e:                         5L mZend_Tool_Project_Context_System_NotOverwritableI/K aZend_Tool_Project_Context_System_InterfaceI(J SZend_Tool_Project_Context_InterfaceI+I YZend_Tool_Framework_Registry_InterfaceI2H gZend_Tool_Framework_Registry_EnabledInterfaceI-G ]Zend_Tool_Framework_Provider_PretendableI+F YZend_Tool_Framework_Provider_InterfaceI.E _Zend_Tool_Framework_Provider_InteractableI/D aZend_Tool_Framework_Provider_InitializableI;C yZend_Tool_Framework_Provider_DocblockManifestInterfaceI+B YZend_Tool_Framework_Metadata_InterfaceI.A _Zend_Tool_Framework_Metadata_AttributableI6@ oZend_Tool_Framework_Manifest_ProviderManifestableI6? oZend_Tool_Framework_Manifest_MetadataManifestableI+> YZend_Tool_Framework_Manifest_InterfaceI+= YZend_Tool_Framework_Manifest_IndexableI4< kZend_Tool_Framework_Manifest_ActionManifestableI); UZend_Tool_Framework_Loader_InterfaceI8: sZend_Tool_Framework_Client_Storage_AdapterInterfaceID9 	Zend_Tool_Framework_Client_Response_ContentDecorator_InterfaceI;8 yZend_Tool_Framework_Client_Interactive_OutputInterfaceI:7 wZend_Tool_Framework_Client_Interactive_InputInterfaceI)6 UZend_Tool_Framework_Action_InterfaceI(5 SZend_Text_Table_Decorator_InterfaceI4 /Zend_Tag_TaggableI3 7Zend_Stdlib_ExceptionI&2 OZend_Soap_Wsdl_Strategy_InterfaceI%1 MZend_Session_Validator_InterfaceI'0 QZend_Session_SaveHandler_InterfaceI$/ KZend_Service_ShortUrl_ShortenerII. Zend_Service_DeveloperGarden_Response_SecurityTokenServer_InterfaceI- 7Zend_Server_InterfaceI-, ]Zend_Serializer_Adapter_AdapterInterfaceI4+ kZend_Search_Lucene_Search_Highlighter_InterfaceI!* EZend_Search_Lucene_InterfaceI3) iZend_Search_Lucene_Index_TermsStream_InterfaceI$( KZend_Queue_Stomp_FrameInterfaceI0' cZend_Queue_Stomp_Client_ConnectionInterfaceI(& SZend_Queue_Adapter_AdapterInterfaceI% ?Zend_Pdf_Filter_InterfaceI&$ OZend_Pdf_ElementFactory_InterfaceI# ?Zend_Pdf_Canvas_InterfaceI," [Zend_Paginator_ScrollingStyle_InterfaceI$! KZend_Paginator_AdapterAggregateI%  MZend_Paginator_Adapter_InterfaceI& OZend_Oauth_Config_ConfigInterfaceI' QZend_Mobile_Push_Message_InterfaceI AZend_Mobile_Push_InterfaceI$ KZend_Memory_Container_InterfaceI1 eZend_Markup_Renderer_TokenConverterInterfaceI' QZend_Markup_Parser_ParserInterfaceI) UZend_Mail_Storage_Writable_InterfaceI' QZend_Mail_Storage_Folder_InterfaceI =Zend_Mail_Part_InterfaceI  CZend_Mail_Message_InterfaceI! EZend_Log_Formatter_InterfaceI ?Zend_Log_Filter_InterfaceI ?Zend_Log_FactoryInterfaceI ?Zend_Loader_SplAutoloaderI' QZend_Loader_PluginLoader_InterfaceI% MZend_Loader_Autoloader_InterfaceI0 cZend_Ldap_Node_Schema_ObjectClass_InterfaceI2 gZend_Ldap_Node_Schema_AttributeType_InterfaceI  CZend_Http_UserAgent_StorageI) UZend_Http_UserAgent_Features_AdapterI AZend_Http_UserAgent_DeviceI$
 KZend_Http_Client_Adapter_StreamI'	 QZend_Http_Client_Adapter_InterfaceI AZend_Gdata_App_MediaSourceI. _Zend_Form_Decorator_Marker_File_InterfaceI" GZend_Form_Decorator_InterfaceI 7Zend_Filter_InterfaceI" GZend_Filter_Encrypt_InterfaceI+ YZend_Filter_Compress_CompressInterfaceI0 cZend_Feed_Writer_Renderer_RendererInterfaceI1 eZend_Feed_Writer_Extension_RendererInterfaceI#  IZend_Feed_Reader_FeedInterfaceI$ KZend_Feed_Reader_EntryInterfaceI7~ qZend_Feed_Pubsubhubbub_Model_SubscriptionInterfaceI-} ]Zend_Feed_Pubsubhubbub_CallbackInterfaceI | CZend_Feed_Builder_InterfaceI1{ eZend_EventManager_SharedEventCollectionAwareI,z [Zend_EventManager_SharedEventCollectionI(y SZend_EventManager_ListenerAggregateIx =Zend_EventManager_FilterI w CZend_EventManager_ExceptionI(v SZend_EventManager_EventManagerAwareI'u QZend_EventManager_EventDescriptionI   ^  _@kH)hE"]4h:



q
F
#
			u	R	"g4nL"U"mI&R+	g8oHj           '* QZend_Session_SaveHandler_InterfaceJ$) KZend_Service_ShortUrl_ShortenerJI( Zend_Service_DeveloperGarden_Response_SecurityTokenServer_InterfaceJ' 7Zend_Server_InterfaceJ-& ]Zend_Serializer_Adapter_AdapterInterfaceJ4% kZend_Search_Lucene_Search_Highlighter_InterfaceJ!$ EZend_Search_Lucene_InterfaceJ3# iZend_Search_Lucene_Index_TermsStream_InterfaceJ$" KZend_Queue_Stomp_FrameInterfaceJ0! cZend_Queue_Stomp_Client_ConnectionInterfaceJ(  SZend_Queue_Adapter_AdapterInterfaceJ ?Zend_Pdf_Filter_InterfaceJ& OZend_Pdf_ElementFactory_InterfaceJ ?Zend_Pdf_Canvas_InterfaceJ, [Zend_Paginator_ScrollingStyle_InterfaceJ$ KZend_Paginator_AdapterAggregateJ% MZend_Paginator_Adapter_InterfaceJ& OZend_Oauth_Config_ConfigInterfaceJ' QZend_Mobile_Push_Message_InterfaceJ AZend_Mobile_Push_InterfaceJ$ KZend_Memory_Container_InterfaceJ1 eZend_Markup_Renderer_TokenConverterInterfaceJ' QZend_Markup_Parser_ParserInterfaceJ) UZend_Mail_Storage_Writable_InterfaceJ' QZend_Mail_Storage_Folder_InterfaceJ =Zend_Mail_Part_InterfaceJ  CZend_Mail_Message_InterfaceJ! EZend_Log_Formatter_InterfaceJ ?Zend_Log_Filter_InterfaceJ ?Zend_Log_FactoryInterfaceJ ?Zend_Loader_SplAutoloaderJ' QZend_Loader_PluginLoader_InterfaceJ%
 MZend_Loader_Autoloader_InterfaceJ0	 cZend_Ldap_Node_Schema_ObjectClass_InterfaceJ2 gZend_Ldap_Node_Schema_AttributeType_InterfaceJ  CZend_Http_UserAgent_StorageJ) UZend_Http_UserAgent_Features_AdapterJ AZend_Http_UserAgent_DeviceJ$ KZend_Http_Client_Adapter_StreamJ' QZend_Http_Client_Adapter_InterfaceJ AZend_Gdata_App_MediaSourceJ. _Zend_Form_Decorator_Marker_File_InterfaceJ"  GZend_Form_Decorator_InterfaceJ 7Zend_Filter_InterfaceJ"~ GZend_Filter_Encrypt_InterfaceJ+} YZend_Filter_Compress_CompressInterfaceJ0| cZend_Feed_Writer_Renderer_RendererInterfaceJ1{ eZend_Feed_Writer_Extension_RendererInterfaceJ#z IZend_Feed_Reader_FeedInterfaceJ$y KZend_Feed_Reader_EntryInterfaceJ7x qZend_Feed_Pubsubhubbub_Model_SubscriptionInterfaceJ-w ]Zend_Feed_Pubsubhubbub_CallbackInterfaceJ v CZend_Feed_Builder_InterfaceJ1u eZend_EventManager_SharedEventCollectionAwareJ,t [Zend_EventManager_SharedEventCollectionJ(s SZend_EventManager_ListenerAggregateJr =Zend_EventManager_FilterJ q CZend_EventManager_ExceptionJ(p SZend_EventManager_EventManagerAwareJ'o QZend_EventManager_EventDescriptionJ&n OZend_EventManager_EventCollectionJ m CZend_Db_Statement_InterfaceJ$l KZend_Currency_CurrencyInterfaceJ)k UZend_Crypt_Math_BigInteger_InterfaceJ+j YZend_Controller_Router_Route_InterfaceJ%i MZend_Controller_Router_InterfaceJ)h UZend_Controller_Dispatcher_InterfaceJ%g MZend_Controller_Action_InterfaceJ&f OZend_Cloud_StorageService_AdapterJ$e KZend_Cloud_QueueService_AdapterJ&d OZend_Cloud_Infrastructure_AdapterJ,c [Zend_Cloud_DocumentService_QueryAdapterJ'b QZend_Cloud_DocumentService_AdapterJa 5Zend_Captcha_AdapterJ!` EZend_Cache_Backend_InterfaceJ)_ UZend_Cache_Backend_ExtendedInterfaceJ ^ CZend_Auth_Storage_InterfaceJ ] CZend_Auth_Adapter_InterfaceJ.\ _Zend_Auth_Adapter_Http_Resolver_InterfaceJ'[ QZend_Application_Resource_ResourceJ4Z kZend_Application_Bootstrap_ResourceBootstrapperJ,Y [Zend_Application_Bootstrap_BootstrapperJX ;Zend_Acl_Role_InterfaceJ W CZend_Acl_Resource_InterfaceJV ?Zend_Acl_Assert_InterfaceJ#U IZend_Wildfire_Plugin_InterfaceI$T KZend_Wildfire_Channel_InterfaceIS 3Zend_View_InterfaceI'R QZend_View_Helper_Navigation_HelperIQ AZend_View_Helper_InterfaceIP ;Zend_Validate_InterfaceI+O YZend_Validate_Barcode_AdapterInterfaceI3N iZend_Tool_Project_Profile_FileParser_InterfaceI:M wZend_Tool_Project_Context_System_TopLevelRestrictableI   f  \=|ZH)oN-|W,	}U1




e
E
					o	K	)	iQ4dI6sPi1~U8pFf.qI!                                   ' QZend_Cloud_QueueService_MessageSetJ$ KZend_Cloud_QueueService_MessageJ$ KZend_Cloud_QueueService_FactoryJ& OZend_Cloud_QueueService_ExceptionJ. _Zend_Cloud_QueueService_Adapter_ZendQueueJ1 eZend_Cloud_QueueService_Adapter_WindowsAzureJ( SZend_Cloud_QueueService_Adapter_SqsJ4 kZend_Cloud_QueueService_Adapter_AbstractAdapterJ. _Zend_Cloud_OperationNotAvailableExceptionJ+ YZend_Cloud_Infrastructure_InstanceListJ' QZend_Cloud_Infrastructure_InstanceJ( SZend_Cloud_Infrastructure_ImageListJ$ KZend_Cloud_Infrastructure_ImageJ& OZend_Cloud_Infrastructure_FactoryJ( SZend_Cloud_Infrastructure_ExceptionJ0 cZend_Cloud_Infrastructure_Adapter_RackspaceJ* WZend_Cloud_Infrastructure_Adapter_Ec2J6 oZend_Cloud_Infrastructure_Adapter_AbstractAdapterJ 5Zend_Cloud_ExceptionJ%
 MZend_Cloud_DocumentService_QueryJ'	 QZend_Cloud_DocumentService_FactoryJ) UZend_Cloud_DocumentService_ExceptionJ+ YZend_Cloud_DocumentService_DocumentSetJ( SZend_Cloud_DocumentService_DocumentJ4 kZend_Cloud_DocumentService_Adapter_WindowsAzureJ: wZend_Cloud_DocumentService_Adapter_WindowsAzure_QueryJ0 cZend_Cloud_DocumentService_Adapter_SimpleDbJ6 oZend_Cloud_DocumentService_Adapter_SimpleDb_QueryJ7 qZend_Cloud_DocumentService_Adapter_AbstractAdapterJ  AZend_Cloud_AbstractFactoryJ /Zend_Captcha_WordJ~ 9Zend_Captcha_ReCaptchaJ} 1Zend_Captcha_ImageJ| 3Zend_Captcha_FigletJ{ 9Zend_Captcha_ExceptionJz /Zend_Captcha_DumbJy /Zend_Captcha_BaseJx !Zend_CacheJw 1Zend_Cache_ManagerJv =Zend_Cache_Frontend_PageJu AZend_Cache_Frontend_OutputJ!t EZend_Cache_Frontend_FunctionJs =Zend_Cache_Frontend_FileJr ?Zend_Cache_Frontend_ClassJ q CZend_Cache_Frontend_CaptureJp 5Zend_Cache_ExceptionJo +Zend_Cache_CoreJn 1Zend_Cache_BackendJ"m GZend_Cache_Backend_ZendServerJ(l SZend_Cache_Backend_ZendServer_ShMemJ'k QZend_Cache_Backend_ZendServer_DiskJ$j KZend_Cache_Backend_ZendPlatformJi ?Zend_Cache_Backend_XcacheJ h CZend_Cache_Backend_WinCacheJ!g EZend_Cache_Backend_TwoLevelsJf ;Zend_Cache_Backend_TestJe ?Zend_Cache_Backend_StaticJd ?Zend_Cache_Backend_SqliteJ!c EZend_Cache_Backend_MemcachedJ$b KZend_Cache_Backend_LibmemcachedJa ;Zend_Cache_Backend_FileJ!` EZend_Cache_Backend_BlackHoleJ_ 9Zend_Cache_Backend_ApcJ^ %Zend_BarcodeJ] ?Zend_Barcode_Renderer_SvgJ+\ YZend_Barcode_Renderer_RendererAbstractJ[ ?Zend_Barcode_Renderer_PdfJ Z CZend_Barcode_Renderer_ImageJ$Y KZend_Barcode_Renderer_ExceptionJX =Zend_Barcode_Object_UpceJW =Zend_Barcode_Object_UpcaJ"V GZend_Barcode_Object_RoyalmailJ U CZend_Barcode_Object_PostnetJT AZend_Barcode_Object_PlanetJ'S QZend_Barcode_Object_ObjectAbstractJ!R EZend_Barcode_Object_LeitcodeJQ ?Zend_Barcode_Object_Itf14J"P GZend_Barcode_Object_IdentcodeJ"O GZend_Barcode_Object_ExceptionJN ?Zend_Barcode_Object_ErrorJM =Zend_Barcode_Object_Ean8JL =Zend_Barcode_Object_Ean5JK =Zend_Barcode_Object_Ean2JJ ?Zend_Barcode_Object_Ean13JI AZend_Barcode_Object_Code39J*H WZend_Barcode_Object_Code25interleavedJG AZend_Barcode_Object_Code25J F CZend_Barcode_Object_Code128JE 9Zend_Barcode_ExceptionJD Zend_AuthJC ?Zend_Auth_Storage_SessionJ$B KZend_Auth_Storage_NonPersistentJ A CZend_Auth_Storage_ExceptionJ@ -Zend_Auth_ResultJ? 3Zend_Auth_ExceptionJ> =Zend_Auth_Adapter_OpenIdJ= 9Zend_Auth_Adapter_LdapJ< 9Zend_Auth_Adapter_HttpJ); UZend_Auth_Adapter_Http_Resolver_FileJ.: _Zend_Auth_Adapter_Http_Resolver_ExceptionJ 9 CZend_Auth_Adapter_ExceptionJ8 =Zend_Auth_Adapter_DigestJ   ^  j3lH#^6d.rY8




w
_
F
2
				f	4U!f3U)pDxK$V.W+ cF$                               &{ OZend_Crypt_Math_BigInteger_BcmathJz +Zend_Crypt_HmacJy ?Zend_Crypt_Hmac_ExceptionJx 5Zend_Crypt_ExceptionJw =Zend_Crypt_DiffieHellmanJ'v QZend_Crypt_DiffieHellman_ExceptionJ!u EZend_Controller_Router_RouteJ(t SZend_Controller_Router_Route_StaticJ's QZend_Controller_Router_Route_RegexJ(r SZend_Controller_Router_Route_ModuleJ*q WZend_Controller_Router_Route_HostnameJ'p QZend_Controller_Router_Route_ChainJ*o WZend_Controller_Router_Route_AbstractJ#n IZend_Controller_Router_RewriteJ%m MZend_Controller_Router_ExceptionJ$l KZend_Controller_Router_AbstractJ*k WZend_Controller_Response_HttpTestCaseJ"j GZend_Controller_Response_HttpJ'i QZend_Controller_Response_ExceptionJ!h EZend_Controller_Response_CliJ&g OZend_Controller_Response_AbstractJ#f IZend_Controller_Request_SimpleJ)e UZend_Controller_Request_HttpTestCaseJ!d EZend_Controller_Request_HttpJ&c OZend_Controller_Request_ExceptionJ&b OZend_Controller_Request_Apache404J%a MZend_Controller_Request_AbstractJ&` OZend_Controller_Plugin_PutHandlerJ(_ SZend_Controller_Plugin_ErrorHandlerJ"^ GZend_Controller_Plugin_BrokerJ'] QZend_Controller_Plugin_ActionStackJ$\ KZend_Controller_Plugin_AbstractJ[ 7Zend_Controller_FrontJZ ?Zend_Controller_ExceptionJ(Y SZend_Controller_Dispatcher_StandardJ)X UZend_Controller_Dispatcher_ExceptionJ(W SZend_Controller_Dispatcher_AbstractJV 9Zend_Controller_ActionJ(U SZend_Controller_Action_HelperBrokerJ6T oZend_Controller_Action_HelperBroker_PriorityStackJ/S aZend_Controller_Action_Helper_ViewRendererJ&R OZend_Controller_Action_Helper_UrlJ-Q ]Zend_Controller_Action_Helper_RedirectorJ'P QZend_Controller_Action_Helper_JsonJ1O eZend_Controller_Action_Helper_FlashMessengerJ0N cZend_Controller_Action_Helper_ContextSwitchJ(M SZend_Controller_Action_Helper_CacheJ<L {Zend_Controller_Action_Helper_AutoCompleteScriptaculousJ3K iZend_Controller_Action_Helper_AutoCompleteDojoJ8J sZend_Controller_Action_Helper_AutoComplete_AbstractJ.I _Zend_Controller_Action_Helper_AjaxContextJ.H _Zend_Controller_Action_Helper_ActionStackJ+G YZend_Controller_Action_Helper_AbstractJ%F MZend_Controller_Action_ExceptionJE 3Zend_Console_GetoptJ"D GZend_Console_Getopt_ExceptionJC #Zend_ConfigJB -Zend_Config_YamlJA +Zend_Config_XmlJ@ 1Zend_Config_WriterJ? ;Zend_Config_Writer_YamlJ> 9Zend_Config_Writer_XmlJ= ;Zend_Config_Writer_JsonJ< 9Zend_Config_Writer_IniJ$; KZend_Config_Writer_FileAbstractJ: =Zend_Config_Writer_ArrayJ9 -Zend_Config_JsonJ8 +Zend_Config_IniJ7 7Zend_Config_ExceptionJ$6 KZend_CodeGenerator_Php_PropertyJ15 eZend_CodeGenerator_Php_Property_DefaultValueJ%4 MZend_CodeGenerator_Php_ParameterJ23 gZend_CodeGenerator_Php_Parameter_DefaultValueJ"2 GZend_CodeGenerator_Php_MethodJ,1 [Zend_CodeGenerator_Php_Member_ContainerJ+0 YZend_CodeGenerator_Php_Member_AbstractJ / CZend_CodeGenerator_Php_FileJ%. MZend_CodeGenerator_Php_ExceptionJ$- KZend_CodeGenerator_Php_DocblockJ(, SZend_CodeGenerator_Php_Docblock_TagJ/+ aZend_CodeGenerator_Php_Docblock_Tag_ReturnJ.* _Zend_CodeGenerator_Php_Docblock_Tag_ParamJ0) cZend_CodeGenerator_Php_Docblock_Tag_LicenseJ!( EZend_CodeGenerator_Php_ClassJ ' CZend_CodeGenerator_Php_BodyJ$& KZend_CodeGenerator_Php_AbstractJ!% EZend_CodeGenerator_ExceptionJ $ CZend_CodeGenerator_AbstractJ&# OZend_Cloud_StorageService_FactoryJ(" SZend_Cloud_StorageService_ExceptionJ3! iZend_Cloud_StorageService_Adapter_WindowsAzureJ)  UZend_Cloud_StorageService_Adapter_S3J0 cZend_Cloud_StorageService_Adapter_RackspaceJ1 eZend_Cloud_StorageService_Adapter_FileSystemJ   m  gO.nU8
\=hF$w]H%




l
N
*					p	N	0	jG#	x[E5"o>X(`1b2~P*S%              h )Zend_Dojo_FormJg 9Zend_Dojo_Form_SubFormJ*f WZend_Dojo_Form_Element_VerticalSliderJ-e ]Zend_Dojo_Form_Element_ValidationTextBoxJ'd QZend_Dojo_Form_Element_TimeTextBoxJ#c IZend_Dojo_Form_Element_TextBoxJ$b KZend_Dojo_Form_Element_TextareaJ(a SZend_Dojo_Form_Element_SubmitButtonJ"` GZend_Dojo_Form_Element_SliderJ*_ WZend_Dojo_Form_Element_SimpleTextareaJ'^ QZend_Dojo_Form_Element_RadioButtonJ+] YZend_Dojo_Form_Element_PasswordTextBoxJ)\ UZend_Dojo_Form_Element_NumberTextBoxJ)[ UZend_Dojo_Form_Element_NumberSpinnerJ,Z [Zend_Dojo_Form_Element_HorizontalSliderJ+Y YZend_Dojo_Form_Element_FilteringSelectJ"X GZend_Dojo_Form_Element_EditorJ&W OZend_Dojo_Form_Element_DijitMultiJ!V EZend_Dojo_Form_Element_DijitJ'U QZend_Dojo_Form_Element_DateTextBoxJ+T YZend_Dojo_Form_Element_CurrencyTextBoxJ$S KZend_Dojo_Form_Element_ComboBoxJ$R KZend_Dojo_Form_Element_CheckBoxJ"Q GZend_Dojo_Form_Element_ButtonJ P CZend_Dojo_Form_DisplayGroupJ*O WZend_Dojo_Form_Decorator_TabContainerJ,N [Zend_Dojo_Form_Decorator_StackContainerJ,M [Zend_Dojo_Form_Decorator_SplitContainerJ'L QZend_Dojo_Form_Decorator_DijitFormJ*K WZend_Dojo_Form_Decorator_DijitElementJ,J [Zend_Dojo_Form_Decorator_DijitContainerJ)I UZend_Dojo_Form_Decorator_ContentPaneJ-H ]Zend_Dojo_Form_Decorator_BorderContainerJ+G YZend_Dojo_Form_Decorator_AccordionPaneJ0F cZend_Dojo_Form_Decorator_AccordionContainerJE 3Zend_Dojo_ExceptionJD )Zend_Dojo_DataJC 5Zend_Dojo_BuildLayerJB !Zend_DebugJA Zend_DbJ@ 'Zend_Db_TableJ? 5Zend_Db_Table_SelectJ#> IZend_Db_Table_Select_ExceptionJ= 5Zend_Db_Table_RowsetJ#< IZend_Db_Table_Rowset_ExceptionJ"; GZend_Db_Table_Rowset_AbstractJ: /Zend_Db_Table_RowJ 9 CZend_Db_Table_Row_ExceptionJ8 AZend_Db_Table_Row_AbstractJ7 ;Zend_Db_Table_ExceptionJ6 =Zend_Db_Table_DefinitionJ5 9Zend_Db_Table_AbstractJ4 /Zend_Db_StatementJ3 =Zend_Db_Statement_SqlsrvJ'2 QZend_Db_Statement_Sqlsrv_ExceptionJ1 7Zend_Db_Statement_PdoJ0 ?Zend_Db_Statement_Pdo_OciJ/ ?Zend_Db_Statement_Pdo_IbmJ. =Zend_Db_Statement_OracleJ'- QZend_Db_Statement_Oracle_ExceptionJ, =Zend_Db_Statement_MysqliJ'+ QZend_Db_Statement_Mysqli_ExceptionJ * CZend_Db_Statement_ExceptionJ) 7Zend_Db_Statement_Db2J$( KZend_Db_Statement_Db2_ExceptionJ' )Zend_Db_SelectJ& =Zend_Db_Select_ExceptionJ% -Zend_Db_ProfilerJ$ 9Zend_Db_Profiler_QueryJ# =Zend_Db_Profiler_FirebugJ" AZend_Db_Profiler_ExceptionJ! %Zend_Db_ExprJ  /Zend_Db_ExceptionJ 9Zend_Db_Adapter_SqlsrvJ% MZend_Db_Adapter_Sqlsrv_ExceptionJ AZend_Db_Adapter_Pdo_SqliteJ ?Zend_Db_Adapter_Pdo_PgsqlJ ;Zend_Db_Adapter_Pdo_OciJ ?Zend_Db_Adapter_Pdo_MysqlJ ?Zend_Db_Adapter_Pdo_MssqlJ ;Zend_Db_Adapter_Pdo_IbmJ  CZend_Db_Adapter_Pdo_Ibm_IdsJ  CZend_Db_Adapter_Pdo_Ibm_Db2J! EZend_Db_Adapter_Pdo_AbstractJ 9Zend_Db_Adapter_OracleJ% MZend_Db_Adapter_Oracle_ExceptionJ 9Zend_Db_Adapter_MysqliJ% MZend_Db_Adapter_Mysqli_ExceptionJ ?Zend_Db_Adapter_ExceptionJ 3Zend_Db_Adapter_Db2J" GZend_Db_Adapter_Db2_ExceptionJ =Zend_Db_Adapter_AbstractJ Zend_DateJ 3Zend_Date_ExceptionJ
 5Zend_Date_DateObjectJ	 -Zend_Date_CitiesJ 'Zend_CurrencyJ ;Zend_Currency_ExceptionJ !Zend_CryptJ )Zend_Crypt_RsaJ 1Zend_Crypt_Rsa_KeyJ ?Zend_Crypt_Rsa_Key_PublicJ AZend_Crypt_Rsa_Key_PrivateJ =Zend_Crypt_Rsa_ExceptionJ  +Zend_Crypt_MathJ ?Zend_Crypt_Math_ExceptionJ~ AZend_Crypt_Math_BigIntegerJ#} IZend_Crypt_Math_BigInteger_GmpJ)| UZend_Crypt_Math_BigInteger_ExceptionJ   _  T/_5oAi?h=



i
W
<
					b	2	tG0qW=nBW8a>RR!^'                      G AZend_Feed_Reader_Feed_AtomJ&F OZend_Feed_Reader_Feed_Atom_SourceJ3E iZend_Feed_Reader_Extension_WellFormedWeb_EntryJ,D [Zend_Feed_Reader_Extension_Thread_EntryJ0C cZend_Feed_Reader_Extension_Syndication_FeedJ+B YZend_Feed_Reader_Extension_Slash_EntryJ,A [Zend_Feed_Reader_Extension_Podcast_FeedJ-@ ]Zend_Feed_Reader_Extension_Podcast_EntryJ,? [Zend_Feed_Reader_Extension_FeedAbstractJ-> ]Zend_Feed_Reader_Extension_EntryAbstractJ/= aZend_Feed_Reader_Extension_DublinCore_FeedJ0< cZend_Feed_Reader_Extension_DublinCore_EntryJ4; kZend_Feed_Reader_Extension_CreativeCommons_FeedJ5: mZend_Feed_Reader_Extension_CreativeCommons_EntryJ-9 ]Zend_Feed_Reader_Extension_Content_EntryJ)8 UZend_Feed_Reader_Extension_Atom_FeedJ*7 WZend_Feed_Reader_Extension_Atom_EntryJ#6 IZend_Feed_Reader_EntryAbstractJ5 AZend_Feed_Reader_Entry_RssJ 4 CZend_Feed_Reader_Entry_AtomJ 3 CZend_Feed_Reader_CollectionJ32 iZend_Feed_Reader_Collection_CollectionAbstractJ)1 UZend_Feed_Reader_Collection_CategoryJ'0 QZend_Feed_Reader_Collection_AuthorJ/ 9Zend_Feed_PubsubhubbubJ&. OZend_Feed_Pubsubhubbub_SubscriberJ/- aZend_Feed_Pubsubhubbub_Subscriber_CallbackJ%, MZend_Feed_Pubsubhubbub_PublisherJ.+ _Zend_Feed_Pubsubhubbub_Model_SubscriptionJ/* aZend_Feed_Pubsubhubbub_Model_ModelAbstractJ() SZend_Feed_Pubsubhubbub_HttpResponseJ%( MZend_Feed_Pubsubhubbub_ExceptionJ,' [Zend_Feed_Pubsubhubbub_CallbackAbstractJ& 3Zend_Feed_ExceptionJ% 3Zend_Feed_Entry_RssJ$ 5Zend_Feed_Entry_AtomJ# =Zend_Feed_Entry_AbstractJ" /Zend_Feed_ElementJ! /Zend_Feed_BuilderJ  =Zend_Feed_Builder_HeaderJ$ KZend_Feed_Builder_Header_ItunesJ  CZend_Feed_Builder_ExceptionJ ;Zend_Feed_Builder_EntryJ )Zend_Feed_AtomJ 1Zend_Feed_AbstractJ )Zend_ExceptionJ) UZend_EventManager_StaticEventManagerJ) UZend_EventManager_SharedEventManagerJ) UZend_EventManager_ResponseCollectionJ SplStackJ) UZend_EventManager_GlobalEventManagerJ" GZend_EventManager_FilterChainJ, [Zend_EventManager_Filter_FilterIteratorJ9 uZend_EventManager_Exception_InvalidArgumentExceptionJ# IZend_EventManager_EventManagerJ ;Zend_EventManager_EventJ )Zend_Dom_QueryJ 7Zend_Dom_Query_ResultJ =Zend_Dom_Query_Css2XpathJ 1Zend_Dom_ExceptionJ Zend_DojoJ)
 UZend_Dojo_View_Helper_VerticalSliderJ,	 [Zend_Dojo_View_Helper_ValidationTextBoxJ& OZend_Dojo_View_Helper_TimeTextBoxJ" GZend_Dojo_View_Helper_TextBoxJ# IZend_Dojo_View_Helper_TextareaJ' QZend_Dojo_View_Helper_TabContainerJ' QZend_Dojo_View_Helper_SubmitButtonJ) UZend_Dojo_View_Helper_StackContainerJ) UZend_Dojo_View_Helper_SplitContainerJ! EZend_Dojo_View_Helper_SliderJ)  UZend_Dojo_View_Helper_SimpleTextareaJ& OZend_Dojo_View_Helper_RadioButtonJ*~ WZend_Dojo_View_Helper_PasswordTextBoxJ(} SZend_Dojo_View_Helper_NumberTextBoxJ(| SZend_Dojo_View_Helper_NumberSpinnerJ+{ YZend_Dojo_View_Helper_HorizontalSliderJz AZend_Dojo_View_Helper_FormJ*y WZend_Dojo_View_Helper_FilteringSelectJ!x EZend_Dojo_View_Helper_EditorJw AZend_Dojo_View_Helper_DojoJ)v UZend_Dojo_View_Helper_Dojo_ContainerJ)u UZend_Dojo_View_Helper_DijitContainerJ t CZend_Dojo_View_Helper_DijitJ&s OZend_Dojo_View_Helper_DateTextBoxJ&r OZend_Dojo_View_Helper_CustomDijitJ*q WZend_Dojo_View_Helper_CurrencyTextBoxJ&p OZend_Dojo_View_Helper_ContentPaneJ#o IZend_Dojo_View_Helper_ComboBoxJ#n IZend_Dojo_View_Helper_CheckBoxJ!m EZend_Dojo_View_Helper_ButtonJ*l WZend_Dojo_View_Helper_BorderContainerJ(k SZend_Dojo_View_Helper_AccordionPaneJ-j ]Zend_Dojo_View_Helper_AccordionContainerJi =Zend_Dojo_View_ExceptionJ   e  ~hG(~Am5M"v=




`
G
5
				~	d	J	-	dC"vS/pM,oO2f8	a3
T@{S+                 ", GZend_Form_Decorator_ExceptionJ+ AZend_Form_Decorator_ErrorsJ$* KZend_Form_Decorator_DtDdWrapperJ$) KZend_Form_Decorator_DescriptionJ ( CZend_Form_Decorator_CaptchaJ%' MZend_Form_Decorator_Captcha_WordJ*& WZend_Form_Decorator_Captcha_ReCaptchaJ!% EZend_Form_Decorator_CallbackJ!$ EZend_Form_Decorator_AbstractJ# #Zend_FilterJ+" YZend_Filter_Word_UnderscoreToSeparatorJ&! OZend_Filter_Word_UnderscoreToDashJ+  YZend_Filter_Word_UnderscoreToCamelCaseJ* WZend_Filter_Word_SeparatorToSeparatorJ% MZend_Filter_Word_SeparatorToDashJ* WZend_Filter_Word_SeparatorToCamelCaseJ( SZend_Filter_Word_Separator_AbstractJ& OZend_Filter_Word_DashToUnderscoreJ% MZend_Filter_Word_DashToSeparatorJ% MZend_Filter_Word_DashToCamelCaseJ+ YZend_Filter_Word_CamelCaseToUnderscoreJ* WZend_Filter_Word_CamelCaseToSeparatorJ% MZend_Filter_Word_CamelCaseToDashJ 7Zend_Filter_StripTagsJ ?Zend_Filter_StripNewlinesJ 9Zend_Filter_StringTrimJ ?Zend_Filter_StringToUpperJ ?Zend_Filter_StringToLowerJ 5Zend_Filter_RealPathJ ;Zend_Filter_PregReplaceJ -Zend_Filter_NullJ& OZend_Filter_NormalizedToLocalizedJ& OZend_Filter_LocalizedToNormalizedJ +Zend_Filter_IntJ
 /Zend_Filter_InputJ	 7Zend_Filter_InflectorJ =Zend_Filter_HtmlEntitiesJ AZend_Filter_File_UpperCaseJ ;Zend_Filter_File_RenameJ AZend_Filter_File_LowerCaseJ =Zend_Filter_File_EncryptJ =Zend_Filter_File_DecryptJ 7Zend_Filter_ExceptionJ 3Zend_Filter_EncryptJ   CZend_Filter_Encrypt_OpensslJ AZend_Filter_Encrypt_McryptJ~ +Zend_Filter_DirJ} 1Zend_Filter_DigitsJ| 3Zend_Filter_DecryptJ{ 9Zend_Filter_DecompressJz 5Zend_Filter_CompressJy =Zend_Filter_Compress_ZipJx =Zend_Filter_Compress_TarJw =Zend_Filter_Compress_RarJv =Zend_Filter_Compress_LzfJu ;Zend_Filter_Compress_GzJ*t WZend_Filter_Compress_CompressAbstractJs =Zend_Filter_Compress_Bz2Jr 5Zend_Filter_CallbackJq 3Zend_Filter_BooleanJp 5Zend_Filter_BaseNameJo /Zend_Filter_AlphaJn /Zend_Filter_AlnumJm 1Zend_File_TransferJ!l EZend_File_Transfer_ExceptionJ$k KZend_File_Transfer_Adapter_HttpJ(j SZend_File_Transfer_Adapter_AbstractJi AZend_File_ClassFileLocatorJh Zend_FeedJg -Zend_Feed_WriterJf ;Zend_Feed_Writer_SourceJ/e aZend_Feed_Writer_Renderer_RendererAbstractJ'd QZend_Feed_Writer_Renderer_Feed_RssJ(c SZend_Feed_Writer_Renderer_Feed_AtomJ/b aZend_Feed_Writer_Renderer_Feed_Atom_SourceJ5a mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstractJ(` SZend_Feed_Writer_Renderer_Entry_RssJ)_ UZend_Feed_Writer_Renderer_Entry_AtomJ1^ eZend_Feed_Writer_Renderer_Entry_Atom_DeletedJ] 7Zend_Feed_Writer_FeedJ'\ QZend_Feed_Writer_Feed_FeedAbstractJ<[ {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_EntryJ8Z sZend_Feed_Writer_Extension_Threading_Renderer_EntryJ4Y kZend_Feed_Writer_Extension_Slash_Renderer_EntryJ0X cZend_Feed_Writer_Extension_RendererAbstractJ4W kZend_Feed_Writer_Extension_ITunes_Renderer_FeedJ5V mZend_Feed_Writer_Extension_ITunes_Renderer_EntryJ+U YZend_Feed_Writer_Extension_ITunes_FeedJ,T [Zend_Feed_Writer_Extension_ITunes_EntryJ8S sZend_Feed_Writer_Extension_DublinCore_Renderer_FeedJ9R uZend_Feed_Writer_Extension_DublinCore_Renderer_EntryJ6Q oZend_Feed_Writer_Extension_Content_Renderer_EntryJ2P gZend_Feed_Writer_Extension_Atom_Renderer_FeedJ6O oZend_Feed_Writer_Exception_InvalidMethodExceptionJN 9Zend_Feed_Writer_EntryJM =Zend_Feed_Writer_DeletedJL 'Zend_Feed_RssJK -Zend_Feed_ReaderJJ =Zend_Feed_Reader_FeedSetJ"I GZend_Feed_Reader_FeedAbstractJH ?Zend_Feed_Reader_Feed_RssJ   g  pI%jC${\;jJ)pVD



z
S
"
 			s	V	1	sR* Z2	mG!X.jI-f0qH _3     & OZend_Gdata_Books_Extension_ReviewJ+ YZend_Gdata_Books_Extension_PreviewLinkJ( SZend_Gdata_Books_Extension_InfoLinkJ- ]Zend_Gdata_Books_Extension_EmbeddabilityJ) UZend_Gdata_Books_Extension_BooksLinkJ- ]Zend_Gdata_Books_Extension_BooksCategoryJ. _Zend_Gdata_Books_Extension_AnnotationLinkJ$ KZend_Gdata_Books_CollectionFeedJ% MZend_Gdata_Books_CollectionEntryJ
 1Zend_Gdata_AuthSubJ	 )Zend_Gdata_AppJ$ KZend_Gdata_App_VersionExceptionJ 3Zend_Gdata_App_UtilJ# IZend_Gdata_App_MediaFileSourceJ ?Zend_Gdata_App_MediaEntryJ2 gZend_Gdata_App_LoggingHttpClientAdapterSocketJ AZend_Gdata_App_IOExceptionJ, [Zend_Gdata_App_InvalidArgumentExceptionJ! EZend_Gdata_App_HttpExceptionJ$  KZend_Gdata_App_FeedSourceParentJ# IZend_Gdata_App_FeedEntryParentJ~ 3Zend_Gdata_App_FeedJ} =Zend_Gdata_App_ExtensionJ!| EZend_Gdata_App_Extension_UriJ%{ MZend_Gdata_App_Extension_UpdatedJ#z IZend_Gdata_App_Extension_TitleJ"y GZend_Gdata_App_Extension_TextJ%x MZend_Gdata_App_Extension_SummaryJ&w OZend_Gdata_App_Extension_SubtitleJ$v KZend_Gdata_App_Extension_SourceJ$u KZend_Gdata_App_Extension_RightsJ't QZend_Gdata_App_Extension_PublishedJ$s KZend_Gdata_App_Extension_PersonJ"r GZend_Gdata_App_Extension_NameJ"q GZend_Gdata_App_Extension_LogoJ"p GZend_Gdata_App_Extension_LinkJ o CZend_Gdata_App_Extension_IdJ"n GZend_Gdata_App_Extension_IconJ'm QZend_Gdata_App_Extension_GeneratorJ#l IZend_Gdata_App_Extension_EmailJ%k MZend_Gdata_App_Extension_ElementJ$j KZend_Gdata_App_Extension_EditedJ#i IZend_Gdata_App_Extension_DraftJ%h MZend_Gdata_App_Extension_ControlJ)g UZend_Gdata_App_Extension_ContributorJ%f MZend_Gdata_App_Extension_ContentJ&e OZend_Gdata_App_Extension_CategoryJ$d KZend_Gdata_App_Extension_AuthorJc =Zend_Gdata_App_ExceptionJb 5Zend_Gdata_App_EntryJ,a [Zend_Gdata_App_CaptchaRequiredExceptionJ#` IZend_Gdata_App_BaseMediaSourceJ_ 3Zend_Gdata_App_BaseJ*^ WZend_Gdata_App_BadMethodCallExceptionJ!] EZend_Gdata_App_AuthExceptionJ\ 5Zend_Gdata_AnalyticsJ+[ YZend_Gdata_Analytics_Extension_TableIdJ,Z [Zend_Gdata_Analytics_Extension_PropertyJ*Y WZend_Gdata_Analytics_Extension_MetricJX ?Zend_Gdata_Analytics_GoalJ-W ]Zend_Gdata_Analytics_Extension_DimensionJ#V IZend_Gdata_Analytics_DataQueryJ"U GZend_Gdata_Analytics_DataFeedJ#T IZend_Gdata_Analytics_DataEntryJ&S OZend_Gdata_Analytics_AccountQueryJ%R MZend_Gdata_Analytics_AccountFeedJ&Q OZend_Gdata_Analytics_AccountEntryJP Zend_FormJO /Zend_Form_SubFormJN 3Zend_Form_ExceptionJM /Zend_Form_ElementJL ;Zend_Form_Element_XhtmlJK AZend_Form_Element_TextareaJJ 9Zend_Form_Element_TextJI =Zend_Form_Element_SubmitJH =Zend_Form_Element_SelectJG ;Zend_Form_Element_ResetJF ;Zend_Form_Element_RadioJE AZend_Form_Element_PasswordJ"D GZend_Form_Element_MultiselectJ$C KZend_Form_Element_MultiCheckboxJB ;Zend_Form_Element_MultiJA ;Zend_Form_Element_ImageJ@ =Zend_Form_Element_HiddenJ? 9Zend_Form_Element_HashJ> 9Zend_Form_Element_FileJ = CZend_Form_Element_ExceptionJ< AZend_Form_Element_CheckboxJ; ?Zend_Form_Element_CaptchaJ: =Zend_Form_Element_ButtonJ9 9Zend_Form_DisplayGroupJ#8 IZend_Form_Decorator_ViewScriptJ#7 IZend_Form_Decorator_ViewHelperJ 6 CZend_Form_Decorator_TooltipJ(5 SZend_Form_Decorator_PrepareElementsJ4 ?Zend_Form_Decorator_LabelJ3 ?Zend_Form_Decorator_ImageJ 2 CZend_Form_Decorator_HtmlTagJ#1 IZend_Form_Decorator_FormErrorsJ%0 MZend_Form_Decorator_FormElementsJ/ =Zend_Form_Decorator_FormJ. =Zend_Form_Decorator_FileJ!- EZend_Form_Decorator_FieldsetJ   `  {W2sGT%nDT%



`
0
					W	/	\4[5]+O)qT<d3j>a<  #s IZend_Gdata_Gapps_NicknameQueryJ"r GZend_Gdata_Gapps_NicknameFeedJ#q IZend_Gdata_Gapps_NicknameEntryJ!p EZend_Gdata_Gapps_MemberQueryJ o CZend_Gdata_Gapps_MemberFeedJ!n EZend_Gdata_Gapps_MemberEntryJ m CZend_Gdata_Gapps_GroupQueryJl AZend_Gdata_Gapps_GroupFeedJ k CZend_Gdata_Gapps_GroupEntryJ%j MZend_Gdata_Gapps_Extension_QuotaJ(i SZend_Gdata_Gapps_Extension_PropertyJ(h SZend_Gdata_Gapps_Extension_NicknameJ$g KZend_Gdata_Gapps_Extension_NameJ%f MZend_Gdata_Gapps_Extension_LoginJ)e UZend_Gdata_Gapps_Extension_EmailListJd 9Zend_Gdata_Gapps_ErrorJ-c ]Zend_Gdata_Gapps_EmailListRecipientQueryJ,b [Zend_Gdata_Gapps_EmailListRecipientFeedJ-a ]Zend_Gdata_Gapps_EmailListRecipientEntryJ$` KZend_Gdata_Gapps_EmailListQueryJ#_ IZend_Gdata_Gapps_EmailListFeedJ$^ KZend_Gdata_Gapps_EmailListEntryJ] +Zend_Gdata_FeedJ\ 5Zend_Gdata_ExtensionJ[ =Zend_Gdata_Extension_WhoJZ AZend_Gdata_Extension_WhereJY ?Zend_Gdata_Extension_WhenJ$X KZend_Gdata_Extension_VisibilityJ&W OZend_Gdata_Extension_TransparencyJ"V GZend_Gdata_Extension_ReminderJ-U ]Zend_Gdata_Extension_RecurrenceExceptionJ$T KZend_Gdata_Extension_RecurrenceJ S CZend_Gdata_Extension_RatingJ'R QZend_Gdata_Extension_OriginalEventJ0Q cZend_Gdata_Extension_OpenSearchTotalResultsJ.P _Zend_Gdata_Extension_OpenSearchStartIndexJ0O cZend_Gdata_Extension_OpenSearchItemsPerPageJ"N GZend_Gdata_Extension_FeedLinkJ*M WZend_Gdata_Extension_ExtendedPropertyJ%L MZend_Gdata_Extension_EventStatusJ#K IZend_Gdata_Extension_EntryLinkJ"J GZend_Gdata_Extension_CommentsJ&I OZend_Gdata_Extension_AttendeeTypeJ(H SZend_Gdata_Extension_AttendeeStatusJG +Zend_Gdata_ExifJF 5Zend_Gdata_Exif_FeedJ#E IZend_Gdata_Exif_Extension_TimeJ#D IZend_Gdata_Exif_Extension_TagsJ$C KZend_Gdata_Exif_Extension_ModelJ#B IZend_Gdata_Exif_Extension_MakeJ"A GZend_Gdata_Exif_Extension_IsoJ,@ [Zend_Gdata_Exif_Extension_ImageUniqueIdJ$? KZend_Gdata_Exif_Extension_FStopJ*> WZend_Gdata_Exif_Extension_FocalLengthJ$= KZend_Gdata_Exif_Extension_FlashJ'< QZend_Gdata_Exif_Extension_ExposureJ'; QZend_Gdata_Exif_Extension_DistanceJ: 7Zend_Gdata_Exif_EntryJ9 -Zend_Gdata_EntryJ8 7Zend_Gdata_DublinCoreJ*7 WZend_Gdata_DublinCore_Extension_TitleJ,6 [Zend_Gdata_DublinCore_Extension_SubjectJ+5 YZend_Gdata_DublinCore_Extension_RightsJ.4 _Zend_Gdata_DublinCore_Extension_PublisherJ-3 ]Zend_Gdata_DublinCore_Extension_LanguageJ/2 aZend_Gdata_DublinCore_Extension_IdentifierJ+1 YZend_Gdata_DublinCore_Extension_FormatJ00 cZend_Gdata_DublinCore_Extension_DescriptionJ)/ UZend_Gdata_DublinCore_Extension_DateJ,. [Zend_Gdata_DublinCore_Extension_CreatorJ- +Zend_Gdata_DocsJ, 7Zend_Gdata_Docs_QueryJ%+ MZend_Gdata_Docs_DocumentListFeedJ&* OZend_Gdata_Docs_DocumentListEntryJ) 9Zend_Gdata_ClientLoginJ( 3Zend_Gdata_CalendarJ!' EZend_Gdata_Calendar_ListFeedJ"& GZend_Gdata_Calendar_ListEntryJ-% ]Zend_Gdata_Calendar_Extension_WebContentJ+$ YZend_Gdata_Calendar_Extension_TimezoneJ9# uZend_Gdata_Calendar_Extension_SendEventNotificationsJ+" YZend_Gdata_Calendar_Extension_SelectedJ+! YZend_Gdata_Calendar_Extension_QuickAddJ'  QZend_Gdata_Calendar_Extension_LinkJ) UZend_Gdata_Calendar_Extension_HiddenJ( SZend_Gdata_Calendar_Extension_ColorJ. _Zend_Gdata_Calendar_Extension_AccessLevelJ# IZend_Gdata_Calendar_EventQueryJ" GZend_Gdata_Calendar_EventFeedJ# IZend_Gdata_Calendar_EventEntryJ -Zend_Gdata_BooksJ! EZend_Gdata_Books_VolumeQueryJ  CZend_Gdata_Books_VolumeFeedJ! EZend_Gdata_Books_VolumeEntryJ+ YZend_Gdata_Books_Extension_ViewabilityJ- ]Zend_Gdata_Books_Extension_ThumbnailLinkJ   b  vL){]:eL/}U.yL 



]
+				m	<	}K`<k>Z-s<V-|Q'rO+    &U OZend_Gdata_Spreadsheets_CellEntryJT -Zend_Gdata_QueryJS /Zend_Gdata_PhotosJ R CZend_Gdata_Photos_UserQueryJQ AZend_Gdata_Photos_UserFeedJ P CZend_Gdata_Photos_UserEntryJO AZend_Gdata_Photos_TagEntryJ!N EZend_Gdata_Photos_PhotoQueryJ M CZend_Gdata_Photos_PhotoFeedJ!L EZend_Gdata_Photos_PhotoEntryJ&K OZend_Gdata_Photos_Extension_WidthJ'J QZend_Gdata_Photos_Extension_WeightJ(I SZend_Gdata_Photos_Extension_VersionJ%H MZend_Gdata_Photos_Extension_UserJ*G WZend_Gdata_Photos_Extension_TimestampJ*F WZend_Gdata_Photos_Extension_ThumbnailJ%E MZend_Gdata_Photos_Extension_SizeJ)D UZend_Gdata_Photos_Extension_RotationJ+C YZend_Gdata_Photos_Extension_QuotaLimitJ-B ]Zend_Gdata_Photos_Extension_QuotaCurrentJ)A UZend_Gdata_Photos_Extension_PositionJ(@ SZend_Gdata_Photos_Extension_PhotoIdJ3? iZend_Gdata_Photos_Extension_NumPhotosRemainingJ*> WZend_Gdata_Photos_Extension_NumPhotosJ)= UZend_Gdata_Photos_Extension_NicknameJ%< MZend_Gdata_Photos_Extension_NameJ2; gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumJ): UZend_Gdata_Photos_Extension_LocationJ#9 IZend_Gdata_Photos_Extension_IdJ'8 QZend_Gdata_Photos_Extension_HeightJ27 gZend_Gdata_Photos_Extension_CommentingEnabledJ-6 ]Zend_Gdata_Photos_Extension_CommentCountJ'5 QZend_Gdata_Photos_Extension_ClientJ)4 UZend_Gdata_Photos_Extension_ChecksumJ*3 WZend_Gdata_Photos_Extension_BytesUsedJ(2 SZend_Gdata_Photos_Extension_AlbumIdJ'1 QZend_Gdata_Photos_Extension_AccessJ#0 IZend_Gdata_Photos_CommentEntryJ!/ EZend_Gdata_Photos_AlbumQueryJ . CZend_Gdata_Photos_AlbumFeedJ!- EZend_Gdata_Photos_AlbumEntryJ, 3Zend_Gdata_MimeFileJ+ ?Zend_Gdata_MimeBodyStringJ* AZend_Gdata_MediaMimeStreamJ) -Zend_Gdata_MediaJ( 7Zend_Gdata_Media_FeedJ*' WZend_Gdata_Media_Extension_MediaTitleJ.& _Zend_Gdata_Media_Extension_MediaThumbnailJ)% UZend_Gdata_Media_Extension_MediaTextJ0$ cZend_Gdata_Media_Extension_MediaRestrictionJ+# YZend_Gdata_Media_Extension_MediaRatingJ+" YZend_Gdata_Media_Extension_MediaPlayerJ-! ]Zend_Gdata_Media_Extension_MediaKeywordsJ)  UZend_Gdata_Media_Extension_MediaHashJ* WZend_Gdata_Media_Extension_MediaGroupJ0 cZend_Gdata_Media_Extension_MediaDescriptionJ+ YZend_Gdata_Media_Extension_MediaCreditJ. _Zend_Gdata_Media_Extension_MediaCopyrightJ, [Zend_Gdata_Media_Extension_MediaContentJ- ]Zend_Gdata_Media_Extension_MediaCategoryJ 9Zend_Gdata_Media_EntryJ AZend_Gdata_Kind_EventEntryJ 7Zend_Gdata_HttpClientJ* WZend_Gdata_HttpAdapterStreamingSocketJ) UZend_Gdata_HttpAdapterStreamingProxyJ /Zend_Gdata_HealthJ ;Zend_Gdata_Health_QueryJ& OZend_Gdata_Health_ProfileListFeedJ' QZend_Gdata_Health_ProfileListEntryJ" GZend_Gdata_Health_ProfileFeedJ# IZend_Gdata_Health_ProfileEntryJ$ KZend_Gdata_Health_Extension_CcrJ )Zend_Gdata_GeoJ 3Zend_Gdata_Geo_FeedJ$ KZend_Gdata_Geo_Extension_GmlPosJ&
 OZend_Gdata_Geo_Extension_GmlPointJ)	 UZend_Gdata_Geo_Extension_GeoRssWhereJ 5Zend_Gdata_Geo_EntryJ -Zend_Gdata_GbaseJ" GZend_Gdata_Gbase_SnippetQueryJ! EZend_Gdata_Gbase_SnippetFeedJ" GZend_Gdata_Gbase_SnippetEntryJ 9Zend_Gdata_Gbase_QueryJ AZend_Gdata_Gbase_ItemQueryJ ?Zend_Gdata_Gbase_ItemFeedJ  AZend_Gdata_Gbase_ItemEntryJ 7Zend_Gdata_Gbase_FeedJ-~ ]Zend_Gdata_Gbase_Extension_BaseAttributeJ} 9Zend_Gdata_Gbase_EntryJ| -Zend_Gdata_GappsJ{ AZend_Gdata_Gapps_UserQueryJz ?Zend_Gdata_Gapps_UserFeedJy AZend_Gdata_Gapps_UserEntryJ&x OZend_Gdata_Gapps_ServiceExceptionJw 9Zend_Gdata_Gapps_QueryJ v CZend_Gdata_Gapps_OwnerQueryJu AZend_Gdata_Gapps_OwnerFeedJ t CZend_Gdata_Gapps_OwnerEntryJ   [  Pf<~^5oBe4


~
P
"				g	7	R"c9|Q!nAwIqL&X2i5                         0 1Zend_Http_ResponseJ/ ?Zend_Http_Response_StreamJ. AZend_Http_Header_SetCookieJ0- cZend_Http_Header_Exception_RuntimeExceptionJ8, sZend_Http_Header_Exception_InvalidArgumentExceptionJ+ 3Zend_Http_ExceptionJ* 3Zend_Http_CookieJarJ) -Zend_Http_CookieJ( -Zend_Http_ClientJ' AZend_Http_Client_ExceptionJ"& GZend_Http_Client_Adapter_TestJ$% KZend_Http_Client_Adapter_SocketJ#$ IZend_Http_Client_Adapter_ProxyJ'# QZend_Http_Client_Adapter_ExceptionJ"" GZend_Http_Client_Adapter_CurlJ! !Zend_GdataJ  1Zend_Gdata_YouTubeJ" GZend_Gdata_YouTube_VideoQueryJ! EZend_Gdata_YouTube_VideoFeedJ" GZend_Gdata_YouTube_VideoEntryJ( SZend_Gdata_YouTube_UserProfileEntryJ( SZend_Gdata_YouTube_SubscriptionFeedJ) UZend_Gdata_YouTube_SubscriptionEntryJ) UZend_Gdata_YouTube_PlaylistVideoFeedJ* WZend_Gdata_YouTube_PlaylistVideoEntryJ( SZend_Gdata_YouTube_PlaylistListFeedJ) UZend_Gdata_YouTube_PlaylistListEntryJ" GZend_Gdata_YouTube_MediaEntryJ! EZend_Gdata_YouTube_InboxFeedJ" GZend_Gdata_YouTube_InboxEntryJ) UZend_Gdata_YouTube_Extension_VideoIdJ* WZend_Gdata_YouTube_Extension_UsernameJ* WZend_Gdata_YouTube_Extension_UploadedJ' QZend_Gdata_YouTube_Extension_TokenJ( SZend_Gdata_YouTube_Extension_StatusJ, [Zend_Gdata_YouTube_Extension_StatisticsJ' QZend_Gdata_YouTube_Extension_StateJ( SZend_Gdata_YouTube_Extension_SchoolJ-
 ]Zend_Gdata_YouTube_Extension_ReleaseDateJ.	 _Zend_Gdata_YouTube_Extension_RelationshipJ* WZend_Gdata_YouTube_Extension_RecordedJ& OZend_Gdata_YouTube_Extension_RacyJ- ]Zend_Gdata_YouTube_Extension_QueryStringJ) UZend_Gdata_YouTube_Extension_PrivateJ* WZend_Gdata_YouTube_Extension_PositionJ/ aZend_Gdata_YouTube_Extension_PlaylistTitleJ, [Zend_Gdata_YouTube_Extension_PlaylistIdJ, [Zend_Gdata_YouTube_Extension_OccupationJ)  UZend_Gdata_YouTube_Extension_NoEmbedJ' QZend_Gdata_YouTube_Extension_MusicJ(~ SZend_Gdata_YouTube_Extension_MoviesJ-} ]Zend_Gdata_YouTube_Extension_MediaRatingJ,| [Zend_Gdata_YouTube_Extension_MediaGroupJ-{ ]Zend_Gdata_YouTube_Extension_MediaCreditJ.z _Zend_Gdata_YouTube_Extension_MediaContentJ*y WZend_Gdata_YouTube_Extension_LocationJ&x OZend_Gdata_YouTube_Extension_LinkJ*w WZend_Gdata_YouTube_Extension_LastNameJ*v WZend_Gdata_YouTube_Extension_HometownJ)u UZend_Gdata_YouTube_Extension_HobbiesJ(t SZend_Gdata_YouTube_Extension_GenderJ+s YZend_Gdata_YouTube_Extension_FirstNameJ*r WZend_Gdata_YouTube_Extension_DurationJ-q ]Zend_Gdata_YouTube_Extension_DescriptionJ+p YZend_Gdata_YouTube_Extension_CountHintJ)o UZend_Gdata_YouTube_Extension_ControlJ)n UZend_Gdata_YouTube_Extension_CompanyJ'm QZend_Gdata_YouTube_Extension_BooksJ%l MZend_Gdata_YouTube_Extension_AgeJ)k UZend_Gdata_YouTube_Extension_AboutMeJ#j IZend_Gdata_YouTube_ContactFeedJ$i KZend_Gdata_YouTube_ContactEntryJ#h IZend_Gdata_YouTube_CommentFeedJ$g KZend_Gdata_YouTube_CommentEntryJ$f KZend_Gdata_YouTube_ActivityFeedJ%e MZend_Gdata_YouTube_ActivityEntryJd ;Zend_Gdata_SpreadsheetsJ*c WZend_Gdata_Spreadsheets_WorksheetFeedJ+b YZend_Gdata_Spreadsheets_WorksheetEntryJ,a [Zend_Gdata_Spreadsheets_SpreadsheetFeedJ-` ]Zend_Gdata_Spreadsheets_SpreadsheetEntryJ&_ OZend_Gdata_Spreadsheets_ListQueryJ%^ MZend_Gdata_Spreadsheets_ListFeedJ&] OZend_Gdata_Spreadsheets_ListEntryJ/\ aZend_Gdata_Spreadsheets_Extension_RowCountJ-[ ]Zend_Gdata_Spreadsheets_Extension_CustomJ/Z aZend_Gdata_Spreadsheets_Extension_ColCountJ+Y YZend_Gdata_Spreadsheets_Extension_CellJ*X WZend_Gdata_Spreadsheets_DocumentQueryJ&W OZend_Gdata_Spreadsheets_CellQueryJ%V MZend_Gdata_Spreadsheets_CellFeedJ   o  mI'[,S!x^B+\:




l
N
:
					|	`	>	!fM.kC$b(_@sR+}\C/mJ(	sV7                 CZend_Log_Writer_ZendMonitorJ 9Zend_Log_Writer_SyslogJ 9Zend_Log_Writer_StreamJ 5Zend_Log_Writer_NullJ 5Zend_Log_Writer_MockJ 5Zend_Log_Writer_MailJ ;Zend_Log_Writer_FirebugJ 1Zend_Log_Writer_DbJ =Zend_Log_Writer_AbstractJ 9Zend_Log_Formatter_XmlJ ?Zend_Log_Formatter_SimpleJ AZend_Log_Formatter_FirebugJ  CZend_Log_Formatter_AbstractJ =Zend_Log_Filter_SuppressJ =Zend_Log_Filter_PriorityJ ;Zend_Log_Filter_MessageJ =Zend_Log_Filter_AbstractJ 1Zend_Log_ExceptionJ #Zend_LocaleJ -Zend_Locale_MathJ =Zend_Locale_Math_PhpMathJ
 AZend_Locale_Math_ExceptionJ	 1Zend_Locale_FormatJ 7Zend_Locale_ExceptionJ -Zend_Locale_DataJ! EZend_Locale_Data_TranslationJ #Zend_LoaderJ# IZend_Loader_StandardAutoloaderJ =Zend_Loader_PluginLoaderJ' QZend_Loader_PluginLoader_ExceptionJ 7Zend_Loader_ExceptionJ3  iZend_Loader_Exception_InvalidArgumentExceptionJ# IZend_Loader_ClassMapAutoloaderJ"~ GZend_Loader_AutoloaderFactoryJ} 9Zend_Loader_AutoloaderJ$| KZend_Loader_Autoloader_ResourceJ{ Zend_LdapJz )Zend_Ldap_NodeJy 7Zend_Ldap_Node_SchemaJ#x IZend_Ldap_Node_Schema_OpenLdapJ/w aZend_Ldap_Node_Schema_ObjectClass_OpenLdapJ6v oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectoryJu AZend_Ldap_Node_Schema_ItemJ1t eZend_Ldap_Node_Schema_AttributeType_OpenLdapJ8s sZend_Ldap_Node_Schema_AttributeType_ActiveDirectoryJ*r WZend_Ldap_Node_Schema_ActiveDirectoryJq 9Zend_Ldap_Node_RootDseJ$p KZend_Ldap_Node_RootDse_OpenLdapJ&o OZend_Ldap_Node_RootDse_eDirectoryJ+n YZend_Ldap_Node_RootDse_ActiveDirectoryJm ?Zend_Ldap_Node_CollectionJ$l KZend_Ldap_Node_ChildrenIteratorJk ;Zend_Ldap_Node_AbstractJj 9Zend_Ldap_Ldif_EncoderJi -Zend_Ldap_FilterJh ;Zend_Ldap_Filter_StringJg 3Zend_Ldap_Filter_OrJf 5Zend_Ldap_Filter_NotJe 7Zend_Ldap_Filter_MaskJd =Zend_Ldap_Filter_LogicalJc AZend_Ldap_Filter_ExceptionJb 5Zend_Ldap_Filter_AndJa ?Zend_Ldap_Filter_AbstractJ` 3Zend_Ldap_ExceptionJ_ %Zend_Ldap_DnJ^ 3Zend_Ldap_ConverterJ"] GZend_Ldap_Converter_ExceptionJ\ 5Zend_Ldap_CollectionJ*[ WZend_Ldap_Collection_Iterator_DefaultJZ 3Zend_Ldap_AttributeJY #Zend_LayoutJX 7Zend_Layout_ExceptionJ)W UZend_Layout_Controller_Plugin_LayoutJ0V cZend_Layout_Controller_Action_Helper_LayoutJU Zend_JsonJT -Zend_Json_ServerJS 5Zend_Json_Server_SmdJ!R EZend_Json_Server_Smd_ServiceJQ ?Zend_Json_Server_ResponseJ#P IZend_Json_Server_Response_HttpJO =Zend_Json_Server_RequestJ"N GZend_Json_Server_Request_HttpJM AZend_Json_Server_ExceptionJL 9Zend_Json_Server_ErrorJK 9Zend_Json_Server_CacheJJ )Zend_Json_ExprJI 3Zend_Json_ExceptionJH /Zend_Json_EncoderJG /Zend_Json_DecoderJF 3Zend_Http_UserAgentJ"E GZend_Http_UserAgent_ValidatorJD =Zend_Http_UserAgent_TextJ(C SZend_Http_UserAgent_Storage_SessionJ.B _Zend_Http_UserAgent_Storage_NonPersistentJ*A WZend_Http_UserAgent_Storage_ExceptionJ@ =Zend_Http_UserAgent_SpamJ? ?Zend_Http_UserAgent_ProbeJ > CZend_Http_UserAgent_OfflineJ= AZend_Http_UserAgent_MobileJ< =Zend_Http_UserAgent_FeedJ+; YZend_Http_UserAgent_Features_ExceptionJ3: iZend_Http_UserAgent_Features_Adapter_TeraWurflJ59 mZend_Http_UserAgent_Features_Adapter_DeviceAtlasJ28 gZend_Http_UserAgent_Features_Adapter_BrowscapJ"7 GZend_Http_UserAgent_ExceptionJ6 ?Zend_Http_UserAgent_EmailJ 5 CZend_Http_UserAgent_DesktopJ 4 CZend_Http_UserAgent_ConsoleJ 3 CZend_Http_UserAgent_CheckerJ2 ;Zend_Http_UserAgent_BotJ'1 QZend_Http_UserAgent_AbstractDeviceJ   q  ~gC[;eC$uT/pI




W
=

					z	Y	5	}^="oQ6sW2uaH,T W&a6jL&                     $ KZend_Mobile_Push_Test_ApnsProxyJ" GZend_Mobile_Push_Response_GcmJ 7Zend_Mobile_Push_MpnsJ" GZend_Mobile_Push_Message_MpnsJ( SZend_Mobile_Push_Message_Mpns_ToastJ' QZend_Mobile_Push_Message_Mpns_TileJ&
 OZend_Mobile_Push_Message_Mpns_RawJ!	 EZend_Mobile_Push_Message_GcmJ' QZend_Mobile_Push_Message_ExceptionJ" GZend_Mobile_Push_Message_ApnsJ& OZend_Mobile_Push_Message_AbstractJ 5Zend_Mobile_Push_GcmJ AZend_Mobile_Push_ExceptionJ1 eZend_Mobile_Push_Exception_ServerUnavailableJ- ]Zend_Mobile_Push_Exception_QuotaExceededJ, [Zend_Mobile_Push_Exception_InvalidTopicJ,  [Zend_Mobile_Push_Exception_InvalidTokenJ3 iZend_Mobile_Push_Exception_InvalidRegistrationJ.~ _Zend_Mobile_Push_Exception_InvalidPayloadJ0} cZend_Mobile_Push_Exception_InvalidAuthTokenJ3| iZend_Mobile_Push_Exception_DeviceQuotaExceededJ{ 7Zend_Mobile_Push_ApnsJz ?Zend_Mobile_Push_AbstractJy 7Zend_Mobile_ExceptionJx Zend_MimeJw )Zend_Mime_PartJv /Zend_Mime_MessageJu 3Zend_Mime_ExceptionJt -Zend_Mime_DecodeJs #Zend_MemoryJr /Zend_Memory_ValueJq 3Zend_Memory_ManagerJp 7Zend_Memory_ExceptionJo 7Zend_Memory_ContainerJ"n GZend_Memory_Container_MovableJ!m EZend_Memory_Container_LockedJ!l EZend_Memory_AccessControllerJk 3Zend_Measure_WeightJj 3Zend_Measure_VolumeJ%i MZend_Measure_Viscosity_KinematicJ#h IZend_Measure_Viscosity_DynamicJg 3Zend_Measure_TorqueJf /Zend_Measure_TimeJe =Zend_Measure_TemperatureJd 1Zend_Measure_SpeedJc 7Zend_Measure_PressureJb 1Zend_Measure_PowerJa 3Zend_Measure_NumberJ` 9Zend_Measure_LightnessJ_ 3Zend_Measure_LengthJ^ ?Zend_Measure_IlluminationJ] 9Zend_Measure_FrequencyJ\ 1Zend_Measure_ForceJ[ =Zend_Measure_Flow_VolumeJZ 9Zend_Measure_Flow_MoleJY 9Zend_Measure_Flow_MassJX 9Zend_Measure_ExceptionJW 3Zend_Measure_EnergyJV 5Zend_Measure_DensityJU 5Zend_Measure_CurrentJ T CZend_Measure_Cooking_WeightJ S CZend_Measure_Cooking_VolumeJR =Zend_Measure_CapacitanceJQ 3Zend_Measure_BinaryJP /Zend_Measure_AreaJO 1Zend_Measure_AngleJN ?Zend_Measure_AccelerationJM 7Zend_Measure_AbstractJL #Zend_MarkupJK 7Zend_Markup_TokenListJJ /Zend_Markup_TokenJ*I WZend_Markup_Renderer_RendererAbstractJH ?Zend_Markup_Renderer_HtmlJ"G GZend_Markup_Renderer_Html_UrlJ#F IZend_Markup_Renderer_Html_ListJ"E GZend_Markup_Renderer_Html_ImgJ+D YZend_Markup_Renderer_Html_HtmlAbstractJ#C IZend_Markup_Renderer_Html_CodeJ#B IZend_Markup_Renderer_ExceptionJ!A EZend_Markup_Parser_ExceptionJ@ ?Zend_Markup_Parser_BbcodeJ? 7Zend_Markup_ExceptionJ> Zend_MailJ= =Zend_Mail_Transport_SmtpJ!< EZend_Mail_Transport_SendmailJ; =Zend_Mail_Transport_FileJ": GZend_Mail_Transport_ExceptionJ!9 EZend_Mail_Transport_AbstractJ8 /Zend_Mail_StorageJ'7 QZend_Mail_Storage_Writable_MaildirJ6 9Zend_Mail_Storage_Pop3J5 9Zend_Mail_Storage_MboxJ4 ?Zend_Mail_Storage_MaildirJ3 9Zend_Mail_Storage_ImapJ2 =Zend_Mail_Storage_FolderJ"1 GZend_Mail_Storage_Folder_MboxJ%0 MZend_Mail_Storage_Folder_MaildirJ / CZend_Mail_Storage_ExceptionJ. AZend_Mail_Storage_AbstractJ- ;Zend_Mail_Protocol_SmtpJ', QZend_Mail_Protocol_Smtp_Auth_PlainJ'+ QZend_Mail_Protocol_Smtp_Auth_LoginJ)* UZend_Mail_Protocol_Smtp_Auth_Crammd5J) ;Zend_Mail_Protocol_Pop3J( ;Zend_Mail_Protocol_ImapJ!' EZend_Mail_Protocol_ExceptionJ & CZend_Mail_Protocol_AbstractJ% )Zend_Mail_PartJ$ 3Zend_Mail_Part_FileJ# /Zend_Mail_MessageJ" 9Zend_Mail_Message_FileJ! 3Zend_Mail_ExceptionJ  Zend_LogJ   p
 z]E+eE-tI(rO1ye@



~
T
&					e	B	$	fH&bB&~bA)~bA%
HmH&	iH!jC#
                                    -Zend_Pdf_ElementJ ;Zend_Pdf_Element_StringJ#~ IZend_Pdf_Element_String_BinaryJ} ;Zend_Pdf_Element_StreamJ| AZend_Pdf_Element_ReferenceJ%{ MZend_Pdf_Element_Reference_TableJ'z QZend_Pdf_Element_Reference_ContextJy ;Zend_Pdf_Element_ObjectJ#x IZend_Pdf_Element_Object_StreamJw =Zend_Pdf_Element_NumericJv 7Zend_Pdf_Element_NullJu 7Zend_Pdf_Element_NameJ t CZend_Pdf_Element_DictionaryJs =Zend_Pdf_Element_BooleanJr 9Zend_Pdf_Element_ArrayJq 5Zend_Pdf_DestinationJp ?Zend_Pdf_Destination_ZoomJ!o EZend_Pdf_Destination_UnknownJn AZend_Pdf_Destination_NamedJ'm QZend_Pdf_Destination_FitVerticallyJ&l OZend_Pdf_Destination_FitRectangleJ)k UZend_Pdf_Destination_FitHorizontallyJ2j gZend_Pdf_Destination_FitBoundingBoxVerticallyJ4i kZend_Pdf_Destination_FitBoundingBoxHorizontallyJ(h SZend_Pdf_Destination_FitBoundingBoxJg =Zend_Pdf_Destination_FitJ"f GZend_Pdf_Destination_ExplicitJe )Zend_Pdf_ColorJd 1Zend_Pdf_Color_RgbJc 3Zend_Pdf_Color_HtmlJb =Zend_Pdf_Color_GrayScaleJa 3Zend_Pdf_Color_CmykJ` 'Zend_Pdf_CmapJ_ AZend_Pdf_Cmap_TrimmedTableJ!^ EZend_Pdf_Cmap_SegmentToDeltaJ] AZend_Pdf_Cmap_ByteEncodingJ&\ OZend_Pdf_Cmap_ByteEncoding_StaticJ[ +Zend_Pdf_CanvasJZ =Zend_Pdf_Canvas_AbstractJY 3Zend_Pdf_AnnotationJX =Zend_Pdf_Annotation_TextJW AZend_Pdf_Annotation_MarkupJV =Zend_Pdf_Annotation_LinkJ'U QZend_Pdf_Annotation_FileAttachmentJT +Zend_Pdf_ActionJS 3Zend_Pdf_Action_URIJR ;Zend_Pdf_Action_UnknownJQ 7Zend_Pdf_Action_TransJP 9Zend_Pdf_Action_ThreadJO AZend_Pdf_Action_SubmitFormJN 7Zend_Pdf_Action_SoundJ M CZend_Pdf_Action_SetOCGStateJL ?Zend_Pdf_Action_ResetFormJK ?Zend_Pdf_Action_RenditionJJ 7Zend_Pdf_Action_NamedJI 7Zend_Pdf_Action_MovieJH 9Zend_Pdf_Action_LaunchJG AZend_Pdf_Action_JavaScriptJF AZend_Pdf_Action_ImportDataJE 5Zend_Pdf_Action_HideJD 7Zend_Pdf_Action_GoToRJC 7Zend_Pdf_Action_GoToEJB AZend_Pdf_Action_GoTo3DViewJA 5Zend_Pdf_Action_GoToJ@ )Zend_PaginatorJ-? ]Zend_Paginator_SerializableLimitIteratorJ*> WZend_Paginator_ScrollingStyle_SlidingJ*= WZend_Paginator_ScrollingStyle_JumpingJ*< WZend_Paginator_ScrollingStyle_ElasticJ&; OZend_Paginator_ScrollingStyle_AllJ: =Zend_Paginator_ExceptionJ 9 CZend_Paginator_Adapter_NullJ$8 KZend_Paginator_Adapter_IteratorJ)7 UZend_Paginator_Adapter_DbTableSelectJ$6 KZend_Paginator_Adapter_DbSelectJ!5 EZend_Paginator_Adapter_ArrayJ4 #Zend_OpenIdJ3 5Zend_OpenId_ProviderJ2 ?Zend_OpenId_Provider_UserJ&1 OZend_OpenId_Provider_User_SessionJ!0 EZend_OpenId_Provider_StorageJ&/ OZend_OpenId_Provider_Storage_FileJ. 7Zend_OpenId_ExtensionJ- AZend_OpenId_Extension_SregJ, 7Zend_OpenId_ExceptionJ+ 5Zend_OpenId_ConsumerJ!* EZend_OpenId_Consumer_StorageJ&) OZend_OpenId_Consumer_Storage_FileJ( !Zend_OauthJ' -Zend_Oauth_TokenJ& =Zend_Oauth_Token_RequestJ'% QZend_Oauth_Token_AuthorizedRequestJ$ ;Zend_Oauth_Token_AccessJ+# YZend_Oauth_Signature_SignatureAbstractJ" =Zend_Oauth_Signature_RsaJ#! IZend_Oauth_Signature_PlaintextJ  ?Zend_Oauth_Signature_HmacJ +Zend_Oauth_HttpJ ;Zend_Oauth_Http_UtilityJ& OZend_Oauth_Http_UserAuthorizationJ! EZend_Oauth_Http_RequestTokenJ  CZend_Oauth_Http_AccessTokenJ 5Zend_Oauth_ExceptionJ 3Zend_Oauth_ConsumerJ /Zend_Oauth_ConfigJ /Zend_Oauth_ClientJ +Zend_NavigationJ 5Zend_Navigation_PageJ =Zend_Navigation_Page_UriJ =Zend_Navigation_Page_MvcJ ?Zend_Navigation_ExceptionJ ?Zend_Navigation_ContainerJ   d  lB!e?fP9`8f0


O
			V	h-b=hAu\7&a>%kM(tY.gB!               d ?Zend_Reflection_ExtensionJc ?Zend_Reflection_ExceptionJb =Zend_Reflection_DocblockJ!a EZend_Reflection_Docblock_TagJ(` SZend_Reflection_Docblock_Tag_ReturnJ'_ QZend_Reflection_Docblock_Tag_ParamJ^ 7Zend_Reflection_ClassJ] !Zend_QueueJ\ 9Zend_Queue_Stomp_FrameJ[ ;Zend_Queue_Stomp_ClientJ'Z QZend_Queue_Stomp_Client_ConnectionJY 1Zend_Queue_MessageJ#X IZend_Queue_Message_PlatformJobJ W CZend_Queue_Message_IteratorJV 5Zend_Queue_ExceptionJ(U SZend_Queue_Adapter_PlatformJobQueueJT ;Zend_Queue_Adapter_NullJ!S EZend_Queue_Adapter_MemcacheqJR 7Zend_Queue_Adapter_DbJ Q CZend_Queue_Adapter_Db_QueueJ"P GZend_Queue_Adapter_Db_MessageJO =Zend_Queue_Adapter_ArrayJ'N QZend_Queue_Adapter_AdapterAbstractJ M CZend_Queue_Adapter_ActivemqJL -Zend_ProgressBarJK AZend_ProgressBar_ExceptionJJ =Zend_ProgressBar_AdapterJ$I KZend_ProgressBar_Adapter_JsPushJ$H KZend_ProgressBar_Adapter_JsPullJ'G QZend_ProgressBar_Adapter_ExceptionJ%F MZend_ProgressBar_Adapter_ConsoleJE Zend_PdfJ!D EZend_Pdf_UpdateInfoContainerJC -Zend_Pdf_TrailerJB ;Zend_Pdf_Trailer_KeeperJA AZend_Pdf_Trailer_GeneratorJ@ +Zend_Pdf_TargetJ? )Zend_Pdf_StyleJ> 7Zend_Pdf_StringParserJ= /Zend_Pdf_ResourceJ< ?Zend_Pdf_Resource_UnifiedJ#; IZend_Pdf_Resource_ImageFactoryJ: ;Zend_Pdf_Resource_ImageJ!9 EZend_Pdf_Resource_Image_TiffJ 8 CZend_Pdf_Resource_Image_PngJ!7 EZend_Pdf_Resource_Image_JpegJ$6 KZend_Pdf_Resource_GraphicsStateJ5 9Zend_Pdf_Resource_FontJ!4 EZend_Pdf_Resource_Font_Type0J"3 GZend_Pdf_Resource_Font_SimpleJ+2 YZend_Pdf_Resource_Font_Simple_StandardJ81 sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsJ60 oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanJ7/ qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicJ;. yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicJ5- mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldJ2, gZend_Pdf_Resource_Font_Simple_Standard_SymbolJ<+ {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueJA* Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliqueJ9) uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldJ5( mZend_Pdf_Resource_Font_Simple_Standard_HelveticaJ:' wZend_Pdf_Resource_Font_Simple_Standard_CourierObliqueJ>& Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliqueJ7% qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldJ3$ iZend_Pdf_Resource_Font_Simple_Standard_CourierJ)# UZend_Pdf_Resource_Font_Simple_ParsedJ2" gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypeJ*! WZend_Pdf_Resource_Font_FontDescriptorJ%  MZend_Pdf_Resource_Font_ExtractedJ# IZend_Pdf_Resource_Font_CidFontJ, [Zend_Pdf_Resource_Font_CidFont_TrueTypeJ  CZend_Pdf_Resource_ExtractorJ$ KZend_Pdf_Resource_ContentStreamJ3 iZend_Pdf_RecursivelyIteratableObjectsContainerJ +Zend_Pdf_ParserJ 'Zend_Pdf_PageJ -Zend_Pdf_OutlineJ ;Zend_Pdf_Outline_LoadedJ =Zend_Pdf_Outline_CreatedJ /Zend_Pdf_NameTreeJ )Zend_Pdf_ImageJ 'Zend_Pdf_FontJ ?Zend_Pdf_Filter_RunLengthJ  CZend_Pdf_Filter_CompressionJ$ KZend_Pdf_Filter_Compression_LzwJ& OZend_Pdf_Filter_Compression_FlateJ =Zend_Pdf_Filter_AsciiHexJ ;Zend_Pdf_Filter_Ascii85J" GZend_Pdf_FileParserDataSourceJ) UZend_Pdf_FileParserDataSource_StringJ'
 QZend_Pdf_FileParserDataSource_FileJ	 3Zend_Pdf_FileParserJ ?Zend_Pdf_FileParser_ImageJ" GZend_Pdf_FileParser_Image_PngJ =Zend_Pdf_FileParser_FontJ& OZend_Pdf_FileParser_Font_OpenTypeJ/ aZend_Pdf_FileParser_Font_OpenType_TrueTypeJ 1Zend_Pdf_ExceptionJ ;Zend_Pdf_ElementFactoryJ" GZend_Pdf_ElementFactory_ProxyJ   U  `J'sP7I=v<



Y
0
				[	7	{O$NsL#h2p>[%q=}P"      39 iZend_Search_Lucene_Search_QueryParserExceptionJ18 eZend_Search_Lucene_Search_QueryParserContextJ*7 WZend_Search_Lucene_Search_QueryParserJ)6 UZend_Search_Lucene_Search_QueryLexerJ'5 QZend_Search_Lucene_Search_QueryHitJ)4 UZend_Search_Lucene_Search_QueryEntryJ.3 _Zend_Search_Lucene_Search_QueryEntry_TermJ22 gZend_Search_Lucene_Search_QueryEntry_SubqueryJ01 cZend_Search_Lucene_Search_QueryEntry_PhraseJ$0 KZend_Search_Lucene_Search_QueryJ-/ ]Zend_Search_Lucene_Search_Query_WildcardJ). UZend_Search_Lucene_Search_Query_TermJ*- WZend_Search_Lucene_Search_Query_RangeJ2, gZend_Search_Lucene_Search_Query_PreprocessingJ7+ qZend_Search_Lucene_Search_Query_Preprocessing_TermJ9* uZend_Search_Lucene_Search_Query_Preprocessing_PhraseJ8) sZend_Search_Lucene_Search_Query_Preprocessing_FuzzyJ+( YZend_Search_Lucene_Search_Query_PhraseJ.' _Zend_Search_Lucene_Search_Query_MultiTermJ2& gZend_Search_Lucene_Search_Query_InsignificantJ*% WZend_Search_Lucene_Search_Query_FuzzyJ*$ WZend_Search_Lucene_Search_Query_EmptyJ,# [Zend_Search_Lucene_Search_Query_BooleanJ2" gZend_Search_Lucene_Search_Highlighter_DefaultJ:! wZend_Search_Lucene_Search_BooleanExpressionRecognizerJ  =Zend_Search_Lucene_ProxyJ% MZend_Search_Lucene_PriorityQueueJ/ aZend_Search_Lucene_Interface_MultiSearcherJ% MZend_Search_Lucene_MultiSearcherJ# IZend_Search_Lucene_LockManagerJ$ KZend_Search_Lucene_Index_WriterJ0 cZend_Search_Lucene_Index_TermsPriorityQueueJ& OZend_Search_Lucene_Index_TermInfoJ" GZend_Search_Lucene_Index_TermJ+ YZend_Search_Lucene_Index_SegmentWriterJ8 sZend_Search_Lucene_Index_SegmentWriter_StreamWriterJ: wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterJ+ YZend_Search_Lucene_Index_SegmentMergerJ) UZend_Search_Lucene_Index_SegmentInfoJ' QZend_Search_Lucene_Index_FieldInfoJ( SZend_Search_Lucene_Index_DocsFilterJ. _Zend_Search_Lucene_Index_DictionaryLoaderJ! EZend_Search_Lucene_FSMActionJ 9Zend_Search_Lucene_FSMJ =Zend_Search_Lucene_FieldJ! EZend_Search_Lucene_ExceptionJ  CZend_Search_Lucene_DocumentJ%
 MZend_Search_Lucene_Document_XlsxJ%	 MZend_Search_Lucene_Document_PptxJ( SZend_Search_Lucene_Document_OpenXmlJ% MZend_Search_Lucene_Document_HtmlJ* WZend_Search_Lucene_Document_ExceptionJ% MZend_Search_Lucene_Document_DocxJ, [Zend_Search_Lucene_Analysis_TokenFilterJ6 oZend_Search_Lucene_Analysis_TokenFilter_StopWordsJ7 qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsJ: wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8J6  oZend_Search_Lucene_Analysis_TokenFilter_LowerCaseJ& OZend_Search_Lucene_Analysis_TokenJ)~ UZend_Search_Lucene_Analysis_AnalyzerJ0} cZend_Search_Lucene_Analysis_Analyzer_CommonJ8| sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumJI{ Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitiveJ5z mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8JFy Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitiveJ8x sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumJIw Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitiveJ5v mZend_Search_Lucene_Analysis_Analyzer_Common_TextJFu Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiveJt 7Zend_Search_ExceptionJs -Zend_Rest_ServerJr AZend_Rest_Server_ExceptionJq +Zend_Rest_RouteJp 3Zend_Rest_ExceptionJo 5Zend_Rest_ControllerJn -Zend_Rest_ClientJm ;Zend_Rest_Client_ResultJ&l OZend_Rest_Client_Result_ExceptionJk AZend_Rest_Client_ExceptionJj 'Zend_RegistryJi =Zend_Reflection_PropertyJh ?Zend_Reflection_ParameterJg 9Zend_Reflection_MethodJf =Zend_Reflection_FunctionJe 5Zend_Reflection_FileJ   `  q@Wh4vQ)pS9




h
C
				w	N	%{Si>j@f?uS2yP*X*{R.                     & OZend_Service_Delicious_SimplePostJ$ KZend_Service_Delicious_PostListJ  CZend_Service_Delicious_PostJ% MZend_Service_Delicious_ExceptionJ  CZend_Service_AudioscrobblerJ 3Zend_Service_AmazonJ ;Zend_Service_Amazon_SqsJ& OZend_Service_Amazon_Sqs_ExceptionJ! EZend_Service_Amazon_SimpleDbJ* WZend_Service_Amazon_SimpleDb_ResponseJ& OZend_Service_Amazon_SimpleDb_PageJ+ YZend_Service_Amazon_SimpleDb_ExceptionJ+ YZend_Service_Amazon_SimpleDb_AttributeJ' QZend_Service_Amazon_SimilarProductJ 9Zend_Service_Amazon_S3J"
 GZend_Service_Amazon_S3_StreamJ%	 MZend_Service_Amazon_S3_ExceptionJ" GZend_Service_Amazon_ResultSetJ ?Zend_Service_Amazon_QueryJ! EZend_Service_Amazon_OfferSetJ ?Zend_Service_Amazon_OfferJ& OZend_Service_Amazon_ListmaniaListJ =Zend_Service_Amazon_ItemJ ?Zend_Service_Amazon_ImageJ" GZend_Service_Amazon_ExceptionJ(  SZend_Service_Amazon_EditorialReviewJ ;Zend_Service_Amazon_Ec2J+~ YZend_Service_Amazon_Ec2_SecuritygroupsJ%} MZend_Service_Amazon_Ec2_ResponseJ#| IZend_Service_Amazon_Ec2_RegionJ${ KZend_Service_Amazon_Ec2_KeypairJ%z MZend_Service_Amazon_Ec2_InstanceJ-y ]Zend_Service_Amazon_Ec2_Instance_WindowsJ.x _Zend_Service_Amazon_Ec2_Instance_ReservedJ"w GZend_Service_Amazon_Ec2_ImageJ&v OZend_Service_Amazon_Ec2_ExceptionJ&u OZend_Service_Amazon_Ec2_ElasticipJ t CZend_Service_Amazon_Ec2_EbsJ's QZend_Service_Amazon_Ec2_CloudWatchJ.r _Zend_Service_Amazon_Ec2_AvailabilityzonesJ%q MZend_Service_Amazon_Ec2_AbstractJ'p QZend_Service_Amazon_CustomerReviewJ'o QZend_Service_Amazon_AuthenticationJ*n WZend_Service_Amazon_Authentication_V2J*m WZend_Service_Amazon_Authentication_V1J*l WZend_Service_Amazon_Authentication_S3J1k eZend_Service_Amazon_Authentication_ExceptionJ$j KZend_Service_Amazon_AccessoriesJ!i EZend_Service_Amazon_AbstractJh 5Zend_Service_AkismetJg 7Zend_Service_AbstractJf 9Zend_Server_ReflectionJ'e QZend_Server_Reflection_ReturnValueJ%d MZend_Server_Reflection_PrototypeJ%c MZend_Server_Reflection_ParameterJ b CZend_Server_Reflection_NodeJ"a GZend_Server_Reflection_MethodJ$` KZend_Server_Reflection_FunctionJ-_ ]Zend_Server_Reflection_Function_AbstractJ%^ MZend_Server_Reflection_ExceptionJ!] EZend_Server_Reflection_ClassJ!\ EZend_Server_Method_PrototypeJ![ EZend_Server_Method_ParameterJ"Z GZend_Server_Method_DefinitionJ Y CZend_Server_Method_CallbackJX 7Zend_Server_ExceptionJW 9Zend_Server_DefinitionJV /Zend_Server_CacheJU 5Zend_Server_AbstractJT +Zend_SerializerJS ?Zend_Serializer_ExceptionJ!R EZend_Serializer_Adapter_WddxJ)Q UZend_Serializer_Adapter_PythonPickleJ)P UZend_Serializer_Adapter_PhpSerializeJ$O KZend_Serializer_Adapter_PhpCodeJ!N EZend_Serializer_Adapter_JsonJ%M MZend_Serializer_Adapter_IgbinaryJ!L EZend_Serializer_Adapter_Amf3J!K EZend_Serializer_Adapter_Amf0J,J [Zend_Serializer_Adapter_AdapterAbstractJI 1Zend_Search_LuceneJ0H cZend_Search_Lucene_TermStreamsPriorityQueueJ$G KZend_Search_Lucene_Storage_FileJ+F YZend_Search_Lucene_Storage_File_MemoryJ/E aZend_Search_Lucene_Storage_File_FilesystemJ)D UZend_Search_Lucene_Storage_DirectoryJ4C kZend_Search_Lucene_Storage_Directory_FilesystemJ%B MZend_Search_Lucene_Search_WeightJ*A WZend_Search_Lucene_Search_Weight_TermJ,@ [Zend_Search_Lucene_Search_Weight_PhraseJ/? aZend_Search_Lucene_Search_Weight_MultiTermJ+> YZend_Search_Lucene_Search_Weight_EmptyJ-= ]Zend_Search_Lucene_Search_Weight_BooleanJ)< UZend_Search_Lucene_Search_SimilarityJ1; eZend_Search_Lucene_Search_Similarity_DefaultJ): UZend_Search_Lucene_Search_QueryTokenJ   6 u g,~8r+Qj9


I			:/l`PH-`#^  u NO Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeywordJCN Zend_Service_DeveloperGarden_Request_SmsValidation_InvalidateJLM Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbersJBL Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstractJ9K uZend_Service_DeveloperGarden_Request_SendSms_SendSMSJ>J Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMSJ9I uZend_Service_DeveloperGarden_Request_RequestAbstractJIH Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequestJEG Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequestJ3F iZend_Service_DeveloperGarden_Request_ExceptionJRE %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequestJYD 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequestJdC IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequestJQB #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequestJRA %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequestJY@ 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequestJd? IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequestJQ> #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequestJO= Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequestJU< +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequestJU; +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequestJV: -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequestJa9 CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequestJZ8 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequestJT7 )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequestJR6 %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequestJY5 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequestJQ4 #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequestJQ3 #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequestJa2 CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequestJN1 Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformationJL0 Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalanceJJ/ Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPoolJ-. ]Zend_Service_DeveloperGarden_LocalSearchJ>- Zend_Service_DeveloperGarden_LocalSearch_SearchParametersJ7, qZend_Service_DeveloperGarden_LocalSearch_ExceptionJ,+ [Zend_Service_DeveloperGarden_IpLocationJ6* oZend_Service_DeveloperGarden_IpLocation_IpAddressJ+) YZend_Service_DeveloperGarden_ExceptionJ,( [Zend_Service_DeveloperGarden_CredentialJ0' cZend_Service_DeveloperGarden_ConferenceCallJC& Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatusJC% Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetailJ<$ {Zend_Service_DeveloperGarden_ConferenceCall_ParticipantJ:# wZend_Service_DeveloperGarden_ConferenceCall_ExceptionJD" 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceScheduleJB! Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetailJC  Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccountJ- ]Zend_Service_DeveloperGarden_Client_SoapJ2 gZend_Service_DeveloperGarden_Client_ExceptionJ7 qZend_Service_DeveloperGarden_Client_ClientAbstractJ1 eZend_Service_DeveloperGarden_BaseUserServiceJA Zend_Service_DeveloperGarden_BaseUserService_AccountBalanceJ 9Zend_Service_DeliciousJ   -  v5UnAG


6		{	g<u[ L2{$[                                         >| Zend_Service_DeveloperGarden_Response_IpLocation_CityTypeJ4{ kZend_Service_DeveloperGarden_Response_ExceptionJTz )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponseJ[y 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponseJfx MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponseJSw 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponseJTv )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponseJ[u 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponseJft MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponseJSs 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponseJUr +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseTypeJQq #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseJ[p 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseTypeJWo /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseJ[n 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseTypeJWm /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseJ\l 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseTypeJXk 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseJgj OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseTypeJci GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseJ`h AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseTypeJ\g 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseJZf 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseTypeJVe -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseJXd 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseTypeJTc )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseJ_b ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseTypeJ[a 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseJW` /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseTypeJS_ 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseJQ^ #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstractJS] 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponseJJ\ Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseTypeJg[ OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseTypeJcZ GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseJWY /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponseJUX +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponseJSW 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponseJ3V iZend_Service_DeveloperGarden_Response_BaseTypeJJU Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstractJCT Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCallJGS Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequencedJ=R }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallJAQ Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatusJAP Zend_Service_DeveloperGarden_Request_SmsValidation_ValidateJ   C  c5V\u'


/			GT|M*a(Z%l@uDS#vW5                             $? KZend_Service_LiveDocx_ExceptionJ> 3Zend_Service_FlickrJ"= GZend_Service_Flickr_ResultSetJ< AZend_Service_Flickr_ResultJ; ?Zend_Service_Flickr_ImageJ: 9Zend_Service_ExceptionJ9 ?Zend_Service_Ebay_FindingJ)8 UZend_Service_Ebay_Finding_StorefrontJ+7 YZend_Service_Ebay_Finding_ShippingInfoJ+6 YZend_Service_Ebay_Finding_Set_AbstractJ,5 [Zend_Service_Ebay_Finding_SellingStatusJ)4 UZend_Service_Ebay_Finding_SellerInfoJ,3 [Zend_Service_Ebay_Finding_Search_ResultJ*2 WZend_Service_Ebay_Finding_Search_ItemJ.1 _Zend_Service_Ebay_Finding_Search_Item_SetJ00 cZend_Service_Ebay_Finding_Response_KeywordsJ-/ ]Zend_Service_Ebay_Finding_Response_ItemsJ2. gZend_Service_Ebay_Finding_Response_HistogramsJ0- cZend_Service_Ebay_Finding_Response_AbstractJ/, aZend_Service_Ebay_Finding_PaginationOutputJ*+ WZend_Service_Ebay_Finding_ListingInfoJ(* SZend_Service_Ebay_Finding_ExceptionJ,) [Zend_Service_Ebay_Finding_Error_MessageJ)( UZend_Service_Ebay_Finding_Error_DataJ-' ]Zend_Service_Ebay_Finding_Error_Data_SetJ'& QZend_Service_Ebay_Finding_CategoryJ1% eZend_Service_Ebay_Finding_Category_HistogramJ5$ mZend_Service_Ebay_Finding_Category_Histogram_SetJ;# yZend_Service_Ebay_Finding_Category_Histogram_ContainerJ%" MZend_Service_Ebay_Finding_AspectJ)! UZend_Service_Ebay_Finding_Aspect_SetJ5  mZend_Service_Ebay_Finding_Aspect_Histogram_ValueJ9 uZend_Service_Ebay_Finding_Aspect_Histogram_Value_SetJ9 uZend_Service_Ebay_Finding_Aspect_Histogram_ContainerJ' QZend_Service_Ebay_Finding_AbstractJ  CZend_Service_Ebay_ExceptionJ AZend_Service_Ebay_AbstractJ+ YZend_Service_DeveloperGarden_VoiceCallJ/ aZend_Service_DeveloperGarden_SmsValidationJ) UZend_Service_DeveloperGarden_SendSmsJ5 mZend_Service_DeveloperGarden_SecurityTokenServerJ; yZend_Service_DeveloperGarden_SecurityTokenServer_CacheJK Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstractJL Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponseJP !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponseJG Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponseJJ Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponseJK Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2ResponseJL Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponseJI Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumberJW /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponseJJ Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponseJU +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponseJC
 Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponseJC	 Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstractJH Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponseJU +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponseJQ #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponseJI Zend_Service_DeveloperGarden_Response_SecurityTokenServer_ExceptionJ; yZend_Service_DeveloperGarden_Response_ResponseAbstractJO Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseTypeJK Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseJA Zend_Service_DeveloperGarden_Response_IpLocation_RegionTypeJK  Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseTypeJG Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseJL~ Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationTypeJI} Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesTypeJ   S  i:|W&h3xP(	jE



~
V
&			}	>	^2_-rK!mBc)rVe                       U +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogsJD 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSourcesJ8 sZend_Service_WindowsAzure_Credentials_SharedKeyLiteJ4 kZend_Service_WindowsAzure_Credentials_SharedKeyJA Zend_Service_WindowsAzure_Credentials_SharedAccessSignatureJ4 kZend_Service_WindowsAzure_Credentials_ExceptionJ> Zend_Service_WindowsAzure_Credentials_CredentialsAbstractJ2 gZend_Service_WindowsAzure_CommandLine_StorageJ2
 gZend_Service_WindowsAzure_CommandLine_ServiceJ	 !ScaffolderJW /Zend_Service_WindowsAzure_CommandLine_PackageScaffolder_PackageScaffolderAbstractJ2 gZend_Service_WindowsAzure_CommandLine_PackageJD 	Zend_Service_WindowsAzure_CommandLine_GetAsynchronousOperationJ5 mZend_Service_WindowsAzure_CommandLine_DeploymentJ6 oZend_Service_WindowsAzure_CommandLine_CertificateJ 5Zend_Service_TwitterJ# IZend_Service_Twitter_ExceptionJ ;Zend_Service_TechnoratiJ#  IZend_Service_Technorati_WeblogJ" GZend_Service_Technorati_UtilsJ*~ WZend_Service_Technorati_TagsResultSetJ'} QZend_Service_Technorati_TagsResultJ)| UZend_Service_Technorati_TagResultSetJ&{ OZend_Service_Technorati_TagResultJ,z [Zend_Service_Technorati_SearchResultSetJ)y UZend_Service_Technorati_SearchResultJ&x OZend_Service_Technorati_ResultSetJ#w IZend_Service_Technorati_ResultJ*v WZend_Service_Technorati_KeyInfoResultJ*u WZend_Service_Technorati_GetInfoResultJ&t OZend_Service_Technorati_ExceptionJ1s eZend_Service_Technorati_DailyCountsResultSetJ.r _Zend_Service_Technorati_DailyCountsResultJ,q [Zend_Service_Technorati_CosmosResultSetJ)p UZend_Service_Technorati_CosmosResultJ+o YZend_Service_Technorati_BlogInfoResultJ#n IZend_Service_Technorati_AuthorJm ;Zend_Service_StrikeIronJ(l SZend_Service_StrikeIron_ZipCodeInfoJ2k gZend_Service_StrikeIron_USAddressVerificationJ-j ]Zend_Service_StrikeIron_SalesUseTaxBasicJ&i OZend_Service_StrikeIron_ExceptionJ&h OZend_Service_StrikeIron_DecoratorJ!g EZend_Service_StrikeIron_BaseJ;f yZend_Service_SqlAzure_Management_ServiceEntityAbstractJ4e kZend_Service_SqlAzure_Management_ServerInstanceJ:d wZend_Service_SqlAzure_Management_FirewallRuleInstanceJ/c aZend_Service_SqlAzure_Management_ExceptionJ,b [Zend_Service_SqlAzure_Management_ClientJ$a KZend_Service_SqlAzure_ExceptionJ` ;Zend_Service_SlideShareJ&_ OZend_Service_SlideShare_SlideShowJ&^ OZend_Service_SlideShare_ExceptionJ%] MZend_Service_ShortUrl_TinyUrlComJ&\ OZend_Service_ShortUrl_MetamarkNetJ![ EZend_Service_ShortUrl_JdemCzJZ AZend_Service_ShortUrl_IsGdJ$Y KZend_Service_ShortUrl_ExceptionJ X CZend_Service_ShortUrl_BitLyJ,W [Zend_Service_ShortUrl_AbstractShortenerJV 9Zend_Service_ReCaptchaJ$U KZend_Service_ReCaptcha_ResponseJ$T KZend_Service_ReCaptcha_MailHideJ.S _Zend_Service_ReCaptcha_MailHide_ExceptionJ%R MZend_Service_ReCaptcha_ExceptionJ#Q IZend_Service_Rackspace_ServersJ5P mZend_Service_Rackspace_Servers_SharedIpGroupListJ1O eZend_Service_Rackspace_Servers_SharedIpGroupJ.N _Zend_Service_Rackspace_Servers_ServerListJ*M WZend_Service_Rackspace_Servers_ServerJ-L ]Zend_Service_Rackspace_Servers_ImageListJ)K UZend_Service_Rackspace_Servers_ImageJ-J ]Zend_Service_Rackspace_Servers_ExceptionJ!I EZend_Service_Rackspace_FilesJ,H [Zend_Service_Rackspace_Files_ObjectListJ(G SZend_Service_Rackspace_Files_ObjectJ+F YZend_Service_Rackspace_Files_ExceptionJ/E aZend_Service_Rackspace_Files_ContainerListJ+D YZend_Service_Rackspace_Files_ContainerJ%C MZend_Service_Rackspace_ExceptionJ$B KZend_Service_Rackspace_AbstractJA 7Zend_Service_LiveDocxJ$@ KZend_Service_LiveDocx_MailMergeJ   H  s3HQ`g0


b
			M	^|Fk3Wv;g;lB}X0                                    Z 9Zend_Session_NamespaceJY 9Zend_Session_ExceptionJX 7Zend_Session_AbstractJW 1Zend_Service_YahooJ$V KZend_Service_Yahoo_WebResultSetJ!U EZend_Service_Yahoo_WebResultJ&T OZend_Service_Yahoo_VideoResultSetJ#S IZend_Service_Yahoo_VideoResultJ!R EZend_Service_Yahoo_ResultSetJQ ?Zend_Service_Yahoo_ResultJ)P UZend_Service_Yahoo_PageDataResultSetJ&O OZend_Service_Yahoo_PageDataResultJ%N MZend_Service_Yahoo_NewsResultSetJ"M GZend_Service_Yahoo_NewsResultJ&L OZend_Service_Yahoo_LocalResultSetJ#K IZend_Service_Yahoo_LocalResultJ+J YZend_Service_Yahoo_InlinkDataResultSetJ(I SZend_Service_Yahoo_InlinkDataResultJ&H OZend_Service_Yahoo_ImageResultSetJ#G IZend_Service_Yahoo_ImageResultJF =Zend_Service_Yahoo_ImageJ&E OZend_Service_WindowsAzure_StorageJ4D kZend_Service_WindowsAzure_Storage_TableInstanceJ7C qZend_Service_WindowsAzure_Storage_TableEntityQueryJ2B gZend_Service_WindowsAzure_Storage_TableEntityJ,A [Zend_Service_WindowsAzure_Storage_TableJ<@ {Zend_Service_WindowsAzure_Storage_StorageEntityAbstractJ7? qZend_Service_WindowsAzure_Storage_SignedIdentifierJ3> iZend_Service_WindowsAzure_Storage_QueueMessageJ4= kZend_Service_WindowsAzure_Storage_QueueInstanceJ,< [Zend_Service_WindowsAzure_Storage_QueueJ9; uZend_Service_WindowsAzure_Storage_PageRegionInstanceJ4: kZend_Service_WindowsAzure_Storage_LeaseInstanceJ99 uZend_Service_WindowsAzure_Storage_DynamicTableEntityJ38 iZend_Service_WindowsAzure_Storage_BlobInstanceJ47 kZend_Service_WindowsAzure_Storage_BlobContainerJ+6 YZend_Service_WindowsAzure_Storage_BlobJ25 gZend_Service_WindowsAzure_Storage_Blob_StreamJ;4 yZend_Service_WindowsAzure_Storage_BatchStorageAbstractJ,3 [Zend_Service_WindowsAzure_Storage_BatchJ-2 ]Zend_Service_WindowsAzure_SessionHandlerJ>1 Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstractJ10 eZend_Service_WindowsAzure_RetryPolicy_RetryNJ2/ gZend_Service_WindowsAzure_RetryPolicy_NoRetryJ4. kZend_Service_WindowsAzure_RetryPolicy_ExceptionJH- Zend_Service_WindowsAzure_Management_SubscriptionOperationInstanceJA, Zend_Service_WindowsAzure_Management_StorageServiceInstanceJ@+ Zend_Service_WindowsAzure_Management_ServiceEntityAbstractJB* Zend_Service_WindowsAzure_Management_OperationStatusInstanceJB) Zend_Service_WindowsAzure_Management_OperatingSystemInstanceJH( Zend_Service_WindowsAzure_Management_OperatingSystemFamilyInstanceJ:' wZend_Service_WindowsAzure_Management_LocationInstanceJ@& Zend_Service_WindowsAzure_Management_HostedServiceInstanceJ3% iZend_Service_WindowsAzure_Management_ExceptionJ<$ {Zend_Service_WindowsAzure_Management_DeploymentInstanceJ0# cZend_Service_WindowsAzure_Management_ClientJ=" }Zend_Service_WindowsAzure_Management_CertificateInstanceJ@! Zend_Service_WindowsAzure_Management_AffinityGroupInstanceJ6  oZend_Service_WindowsAzure_Log_Writer_WindowsAzureJ9 uZend_Service_WindowsAzure_Log_Formatter_WindowsAzureJ( SZend_Service_WindowsAzure_ExceptionJJ Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscriptionJ2 gZend_Service_WindowsAzure_Diagnostics_ManagerJ3 iZend_Service_WindowsAzure_Diagnostics_LogLevelJ4 kZend_Service_WindowsAzure_Diagnostics_ExceptionJN Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscriptionJH Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLogJL Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCountersJK Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstractJ< {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogsJA Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstanceJD 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectoriesJ   _  WBx_<_+\:!V1





t
F
				]	5	tD`6{Q/qI^(c{?o'  19 eZend_Tool_Framework_Client_Storage_DirectoryJ(8 SZend_Tool_Framework_Client_ResponseJD7 	Zend_Tool_Framework_Client_Response_ContentDecorator_SeparatorJ'6 QZend_Tool_Framework_Client_RequestJ(5 SZend_Tool_Framework_Client_ManifestJ94 uZend_Tool_Framework_Client_Interactive_InputResponseJ83 sZend_Tool_Framework_Client_Interactive_InputRequestJ82 sZend_Tool_Framework_Client_Interactive_InputHandlerJ)1 UZend_Tool_Framework_Client_ExceptionJ'0 QZend_Tool_Framework_Client_ConsoleJD/ 	Zend_Tool_Framework_Client_Console_ResponseDecorator_IndentionJD. 	Zend_Tool_Framework_Client_Console_ResponseDecorator_ColorizerJC- Zend_Tool_Framework_Client_Console_ResponseDecorator_BlockizeJF, Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenterJ0+ cZend_Tool_Framework_Client_Console_ManifestJ2* gZend_Tool_Framework_Client_Console_HelpSystemJ6) oZend_Tool_Framework_Client_Console_ArgumentParserJ&( OZend_Tool_Framework_Client_ConfigJ(' SZend_Tool_Framework_Client_AbstractJ*& WZend_Tool_Framework_Action_RepositoryJ)% UZend_Tool_Framework_Action_ExceptionJ$$ KZend_Tool_Framework_Action_BaseJ# 'Zend_TimeSyncJ" 1Zend_TimeSync_SntpJ! 9Zend_TimeSync_ProtocolJ  /Zend_TimeSync_NtpJ ;Zend_TimeSync_ExceptionJ +Zend_Text_TableJ 3Zend_Text_Table_RowJ ?Zend_Text_Table_ExceptionJ& OZend_Text_Table_Decorator_UnicodeJ$ KZend_Text_Table_Decorator_AsciiJ 9Zend_Text_Table_ColumnJ 3Zend_Text_MultiByteJ -Zend_Text_FigletJ AZend_Text_Figlet_ExceptionJ 3Zend_Text_ExceptionJ& OZend_Test_PHPUnit_Db_SimpleTesterJ, [Zend_Test_PHPUnit_Db_Operation_TruncateJ* WZend_Test_PHPUnit_Db_Operation_InsertJ- ]Zend_Test_PHPUnit_Db_Operation_DeleteAllJ* WZend_Test_PHPUnit_Db_Metadata_GenericJ# IZend_Test_PHPUnit_Db_ExceptionJ, [Zend_Test_PHPUnit_Db_DataSet_QueryTableJ. _Zend_Test_PHPUnit_Db_DataSet_QueryDataSetJ0 cZend_Test_PHPUnit_Db_DataSet_DbTableDataSetJ) UZend_Test_PHPUnit_Db_DataSet_DbTableJ*
 WZend_Test_PHPUnit_Db_DataSet_DbRowsetJ$	 KZend_Test_PHPUnit_Db_ConnectionJ' QZend_Test_PHPUnit_DatabaseTestCaseJ) UZend_Test_PHPUnit_ControllerTestCaseJ0 cZend_Test_PHPUnit_Constraint_ResponseHeaderJ* WZend_Test_PHPUnit_Constraint_RedirectJ+ YZend_Test_PHPUnit_Constraint_ExceptionJ* WZend_Test_PHPUnit_Constraint_DomQueryJ 7Zend_Test_DbStatementJ 3Zend_Test_DbAdapterJ  /Zend_Tag_ItemListJ 'Zend_Tag_ItemJ~ 1Zend_Tag_ExceptionJ} )Zend_Tag_CloudJ| =Zend_Tag_Cloud_ExceptionJ!{ EZend_Tag_Cloud_Decorator_TagJ%z MZend_Tag_Cloud_Decorator_HtmlTagJ'y QZend_Tag_Cloud_Decorator_HtmlCloudJ'x QZend_Tag_Cloud_Decorator_ExceptionJ#w IZend_Tag_Cloud_Decorator_CloudJ!v EZend_Stdlib_SplPriorityQueueJu -SplPriorityQueueJt ?Zend_Stdlib_PriorityQueueJ3s iZend_Stdlib_Exception_InvalidCallbackExceptionJ r CZend_Stdlib_CallbackHandlerJq )Zend_Soap_WsdlJ/p aZend_Soap_Wsdl_Strategy_DefaultComplexTypeJ&o OZend_Soap_Wsdl_Strategy_CompositeJ0n cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequenceJ/m aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplexJ$l KZend_Soap_Wsdl_Strategy_AnyTypeJ%k MZend_Soap_Wsdl_Strategy_AbstractJj =Zend_Soap_Wsdl_ExceptionJi -Zend_Soap_ServerJh 9Zend_Soap_Server_ProxyJg AZend_Soap_Server_ExceptionJf -Zend_Soap_ClientJe 9Zend_Soap_Client_LocalJd AZend_Soap_Client_ExceptionJc ;Zend_Soap_Client_DotNetJb ;Zend_Soap_Client_CommonJa 9Zend_Soap_AutoDiscoverJ%` MZend_Soap_AutoDiscover_ExceptionJ_ %Zend_SessionJ)^ UZend_Session_Validator_HttpUserAgentJ$] KZend_Session_Validator_AbstractJ'\ QZend_Session_SaveHandler_ExceptionJ%[ MZend_Session_SaveHandler_DbTableJ   K  Tn@
X*mHR


t
C
			x	K	Z(MExJr<n9`%t8                                             3 iZend_Tool_Project_Context_Zf_SessionsDirectoryJ3 iZend_Tool_Project_Context_Zf_ServicesDirectoryJ8 sZend_Tool_Project_Context_Zf_SearchIndexesDirectoryJ< {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectoryJ8  sZend_Tool_Project_Context_Zf_PublicScriptsDirectoryJ1 eZend_Tool_Project_Context_Zf_PublicIndexFileJ7~ qZend_Tool_Project_Context_Zf_PublicImagesDirectoryJ1} eZend_Tool_Project_Context_Zf_PublicDirectoryJ5| mZend_Tool_Project_Context_Zf_ProjectProviderFileJ2{ gZend_Tool_Project_Context_Zf_ModulesDirectoryJ1z eZend_Tool_Project_Context_Zf_ModuleDirectoryJ1y eZend_Tool_Project_Context_Zf_ModelsDirectoryJ+x YZend_Tool_Project_Context_Zf_ModelFileJ/w aZend_Tool_Project_Context_Zf_LogsDirectoryJ2v gZend_Tool_Project_Context_Zf_LocalesDirectoryJ2u gZend_Tool_Project_Context_Zf_LibraryDirectoryJ2t gZend_Tool_Project_Context_Zf_LayoutsDirectoryJ8s sZend_Tool_Project_Context_Zf_LayoutScriptsDirectoryJ2r gZend_Tool_Project_Context_Zf_LayoutScriptFileJ.q _Zend_Tool_Project_Context_Zf_HtaccessFileJ0p cZend_Tool_Project_Context_Zf_FormsDirectoryJ*o WZend_Tool_Project_Context_Zf_FormFileJ/n aZend_Tool_Project_Context_Zf_DocsDirectoryJ-m ]Zend_Tool_Project_Context_Zf_DbTableFileJ2l gZend_Tool_Project_Context_Zf_DbTableDirectoryJ/k aZend_Tool_Project_Context_Zf_DataDirectoryJ6j oZend_Tool_Project_Context_Zf_ControllersDirectoryJ0i cZend_Tool_Project_Context_Zf_ControllerFileJ2h gZend_Tool_Project_Context_Zf_ConfigsDirectoryJ,g [Zend_Tool_Project_Context_Zf_ConfigFileJ0f cZend_Tool_Project_Context_Zf_CacheDirectoryJ/e aZend_Tool_Project_Context_Zf_BootstrapFileJ6d oZend_Tool_Project_Context_Zf_ApplicationDirectoryJ7c qZend_Tool_Project_Context_Zf_ApplicationConfigFileJ/b aZend_Tool_Project_Context_Zf_ApisDirectoryJ.a _Zend_Tool_Project_Context_Zf_ActionMethodJ3` iZend_Tool_Project_Context_Zf_AbstractClassFileJ@_ Zend_Tool_Project_Context_System_ProjectProvidersDirectoryJ8^ sZend_Tool_Project_Context_System_ProjectProfileFileJ6] oZend_Tool_Project_Context_System_ProjectDirectoryJ)\ UZend_Tool_Project_Context_RepositoryJ.[ _Zend_Tool_Project_Context_Filesystem_FileJ3Z iZend_Tool_Project_Context_Filesystem_DirectoryJ2Y gZend_Tool_Project_Context_Filesystem_AbstractJ(X SZend_Tool_Project_Context_ExceptionJ-W ]Zend_Tool_Project_Context_Content_EngineJ3V iZend_Tool_Project_Context_Content_Engine_PhtmlJ;U yZend_Tool_Project_Context_Content_Engine_CodeGeneratorJ0T cZend_Tool_Framework_System_Provider_VersionJ0S cZend_Tool_Framework_System_Provider_PhpinfoJ1R eZend_Tool_Framework_System_Provider_ManifestJ/Q aZend_Tool_Framework_System_Provider_ConfigJ(P SZend_Tool_Framework_System_ManifestJ-O ]Zend_Tool_Framework_System_Action_DeleteJ-N ]Zend_Tool_Framework_System_Action_CreateJ!M EZend_Tool_Framework_RegistryJ+L YZend_Tool_Framework_Registry_ExceptionJ+K YZend_Tool_Framework_Provider_SignatureJ,J [Zend_Tool_Framework_Provider_RepositoryJ+I YZend_Tool_Framework_Provider_ExceptionJ*H WZend_Tool_Framework_Provider_AbstractJ&G OZend_Tool_Framework_Metadata_ToolJ)F UZend_Tool_Framework_Metadata_DynamicJ'E QZend_Tool_Framework_Metadata_BasicJ,D [Zend_Tool_Framework_Manifest_RepositoryJ2C gZend_Tool_Framework_Manifest_ProviderMetadataJ*B WZend_Tool_Framework_Manifest_MetadataJ+A YZend_Tool_Framework_Manifest_ExceptionJ0@ cZend_Tool_Framework_Manifest_ActionMetadataJ1? eZend_Tool_Framework_Loader_IncludePathLoaderJJ> Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIteratorJ+= YZend_Tool_Framework_Loader_BasicLoaderJ(< SZend_Tool_Framework_Loader_AbstractJ"; GZend_Tool_Framework_ExceptionJ': QZend_Tool_Framework_Client_StorageJ   W  Ez5wBQb.



\
0				P	pAf<g4uR0`B+d?uQ-	|W2   *[ WZend_Validate_Barcode_IntelligentMailJ$Z KZend_Validate_Barcode_IdentcodeJ!Y EZend_Validate_Barcode_Gtin14J!X EZend_Validate_Barcode_Gtin13J!W EZend_Validate_Barcode_Gtin12JV AZend_Validate_Barcode_Ean8JU AZend_Validate_Barcode_Ean5JT AZend_Validate_Barcode_Ean2J S CZend_Validate_Barcode_Ean18J R CZend_Validate_Barcode_Ean14J Q CZend_Validate_Barcode_Ean13J P CZend_Validate_Barcode_Ean12J$O KZend_Validate_Barcode_Code93extJ!N EZend_Validate_Barcode_Code93J$M KZend_Validate_Barcode_Code39extJ!L EZend_Validate_Barcode_Code39J,K [Zend_Validate_Barcode_Code25interleavedJ!J EZend_Validate_Barcode_Code25J*I WZend_Validate_Barcode_AdapterAbstractJH 3Zend_Validate_AlphaJG 3Zend_Validate_AlnumJF 9Zend_Validate_AbstractJE Zend_UriJD 'Zend_Uri_HttpJC 1Zend_Uri_ExceptionJB )Zend_TranslateJA 7Zend_Translate_PluralJ@ =Zend_Translate_ExceptionJ? 9Zend_Translate_AdapterJ!> EZend_Translate_Adapter_XmlTmJ!= EZend_Translate_Adapter_XliffJ< AZend_Translate_Adapter_TmxJ; AZend_Translate_Adapter_TbxJ: ?Zend_Translate_Adapter_QtJ9 AZend_Translate_Adapter_IniJ#8 IZend_Translate_Adapter_GettextJ7 AZend_Translate_Adapter_CsvJ!6 EZend_Translate_Adapter_ArrayJ$5 KZend_Tool_Project_Provider_ViewJ$4 KZend_Tool_Project_Provider_TestJ/3 aZend_Tool_Project_Provider_ProjectProviderJ'2 QZend_Tool_Project_Provider_ProjectJ'1 QZend_Tool_Project_Provider_ProfileJ&0 OZend_Tool_Project_Provider_ModuleJ%/ MZend_Tool_Project_Provider_ModelJ(. SZend_Tool_Project_Provider_ManifestJ&- OZend_Tool_Project_Provider_LayoutJ$, KZend_Tool_Project_Provider_FormJ)+ UZend_Tool_Project_Provider_ExceptionJ'* QZend_Tool_Project_Provider_DbTableJ)) UZend_Tool_Project_Provider_DbAdapterJ*( WZend_Tool_Project_Provider_ControllerJ+' YZend_Tool_Project_Provider_ApplicationJ&& OZend_Tool_Project_Provider_ActionJ(% SZend_Tool_Project_Provider_AbstractJ$ ?Zend_Tool_Project_ProfileJ'# QZend_Tool_Project_Profile_ResourceJ9" uZend_Tool_Project_Profile_Resource_SearchConstraintsJ1! eZend_Tool_Project_Profile_Resource_ContainerJ=  }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilterJ5 mZend_Tool_Project_Profile_Iterator_ContextFilterJ- ]Zend_Tool_Project_Profile_FileParser_XmlJ( SZend_Tool_Project_Profile_ExceptionJ  CZend_Tool_Project_ExceptionJ< {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectoryJ0 cZend_Tool_Project_Context_Zf_ViewsDirectoryJ6 oZend_Tool_Project_Context_Zf_ViewScriptsDirectoryJ0 cZend_Tool_Project_Context_Zf_ViewScriptFileJ6 oZend_Tool_Project_Context_Zf_ViewHelpersDirectoryJ6 oZend_Tool_Project_Context_Zf_ViewFiltersDirectoryJA Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectoryJ2 gZend_Tool_Project_Context_Zf_UploadsDirectoryJ0 cZend_Tool_Project_Context_Zf_TestsDirectoryJ7 qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFileJ: wZend_Tool_Project_Context_Zf_TestPHPUnitBootstrapFileJ@ Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectoryJ1 eZend_Tool_Project_Context_Zf_TestLibraryFileJ6 oZend_Tool_Project_Context_Zf_TestLibraryDirectoryJ: wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFileJB Zend_Tool_Project_Context_Zf_TestApplicationModulesDirectoryJA Zend_Tool_Project_Context_Zf_TestApplicationModuleDirectoryJ:
 wZend_Tool_Project_Context_Zf_TestApplicationDirectoryJ@	 Zend_Tool_Project_Context_Zf_TestApplicationControllerFileJE Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectoryJ> Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFileJ= }Zend_Tool_Project_Context_Zf_TestApplicationActionMethodJ4 kZend_Tool_Project_Context_Zf_TemporaryDirectoryJ   o mGz[?vS3xS.[6




q
W
8
						s	T	5	b?)zX9iD iG!qK){V3~`@^:                                         'J QZend_View_Helper_PaginationControlJ I CZend_View_Helper_NavigationJ(H SZend_View_Helper_Navigation_SitemapJ%G MZend_View_Helper_Navigation_MenuJ&F OZend_View_Helper_Navigation_LinksJ/E aZend_View_Helper_Navigation_HelperAbstractJ,D [Zend_View_Helper_Navigation_BreadcrumbsJC ;Zend_View_Helper_LayoutJB 7Zend_View_Helper_JsonJ"A GZend_View_Helper_InlineScriptJ#@ IZend_View_Helper_HtmlQuicktimeJ? ?Zend_View_Helper_HtmlPageJ > CZend_View_Helper_HtmlObjectJ= ?Zend_View_Helper_HtmlListJ< AZend_View_Helper_HtmlFlashJ!; EZend_View_Helper_HtmlElementJ: AZend_View_Helper_HeadTitleJ9 AZend_View_Helper_HeadStyleJ 8 CZend_View_Helper_HeadScriptJ7 ?Zend_View_Helper_HeadMetaJ6 ?Zend_View_Helper_HeadLinkJ5 ?Zend_View_Helper_GravatarJ"4 GZend_View_Helper_FormTextareaJ3 ?Zend_View_Helper_FormTextJ 2 CZend_View_Helper_FormSubmitJ 1 CZend_View_Helper_FormSelectJ0 AZend_View_Helper_FormResetJ/ AZend_View_Helper_FormRadioJ". GZend_View_Helper_FormPasswordJ- ?Zend_View_Helper_FormNoteJ', QZend_View_Helper_FormMultiCheckboxJ+ AZend_View_Helper_FormLabelJ* AZend_View_Helper_FormImageJ ) CZend_View_Helper_FormHiddenJ( ?Zend_View_Helper_FormFileJ ' CZend_View_Helper_FormErrorsJ!& EZend_View_Helper_FormElementJ"% GZend_View_Helper_FormCheckboxJ $ CZend_View_Helper_FormButtonJ# 7Zend_View_Helper_FormJ" ?Zend_View_Helper_FieldsetJ! =Zend_View_Helper_DoctypeJ!  EZend_View_Helper_DeclareVarsJ 9Zend_View_Helper_CycleJ ?Zend_View_Helper_CurrencyJ =Zend_View_Helper_BaseUrlJ ;Zend_View_Helper_ActionJ ?Zend_View_Helper_AbstractJ 3Zend_View_ExceptionJ 1Zend_View_AbstractJ %Zend_VersionJ 'Zend_ValidateJ AZend_Validate_StringLengthJ# IZend_Validate_Sitemap_PriorityJ ?Zend_Validate_Sitemap_LocJ" GZend_Validate_Sitemap_LastmodJ% MZend_Validate_Sitemap_ChangefreqJ 3Zend_Validate_RegexJ 9Zend_Validate_PostCodeJ 9Zend_Validate_NotEmptyJ 9Zend_Validate_LessThanJ 7Zend_Validate_Ldap_DnJ 1Zend_Validate_IsbnJ -Zend_Validate_IpJ
 /Zend_Validate_IntJ	 7Zend_Validate_InArrayJ ;Zend_Validate_IdenticalJ 1Zend_Validate_IbanJ 9Zend_Validate_HostnameJ /Zend_Validate_HexJ ?Zend_Validate_GreaterThanJ 3Zend_Validate_FloatJ! EZend_Validate_File_WordCountJ ?Zend_Validate_File_UploadJ  ;Zend_Validate_File_SizeJ ;Zend_Validate_File_Sha1J!~ EZend_Validate_File_NotExistsJ } CZend_Validate_File_MimeTypeJ| 9Zend_Validate_File_Md5J{ AZend_Validate_File_IsImageJ$z KZend_Validate_File_IsCompressedJ!y EZend_Validate_File_ImageSizeJx ;Zend_Validate_File_HashJ!w EZend_Validate_File_FilesSizeJ!v EZend_Validate_File_ExtensionJu ?Zend_Validate_File_ExistsJ't QZend_Validate_File_ExcludeMimeTypeJ(s SZend_Validate_File_ExcludeExtensionJr =Zend_Validate_File_Crc32Jq =Zend_Validate_File_CountJp ;Zend_Validate_ExceptionJo AZend_Validate_EmailAddressJn 5Zend_Validate_DigitsJ"m GZend_Validate_Db_RecordExistsJ$l KZend_Validate_Db_NoRecordExistsJk ?Zend_Validate_Db_AbstractJj 1Zend_Validate_DateJi =Zend_Validate_CreditCardJh 3Zend_Validate_CcnumJg 9Zend_Validate_CallbackJf 7Zend_Validate_BetweenJe 7Zend_Validate_BarcodeJd AZend_Validate_Barcode_UpceJc AZend_Validate_Barcode_UpcaJb AZend_Validate_Barcode_SsccJ$a KZend_Validate_Barcode_RoyalmailJ"` GZend_Validate_Barcode_PostnetJ!_ EZend_Validate_Barcode_PlanetJ#^ IZend_Validate_Barcode_LeitcodeJ ] CZend_Validate_Barcode_Itf14J\ AZend_Validate_Barcode_IssnJ   i  W}O*w^L"~T/~W<



a
?
#
				}	[	@	 pO+	nS9gH-rN+eC%vU2wIk6	             3 AZend_Application_ExceptionK)2 UZend_Application_Bootstrap_ExceptionK11 eZend_Application_Bootstrap_BootstrapAbstractK)0 UZend_Application_Bootstrap_BootstrapK/ ?Zend_Amf_Value_TraitsInfoK-. ]Zend_Amf_Value_Messaging_RemotingMessageK*- WZend_Amf_Value_Messaging_ErrorMessageK,, [Zend_Amf_Value_Messaging_CommandMessageK*+ WZend_Amf_Value_Messaging_AsyncMessageK-* ]Zend_Amf_Value_Messaging_ArrayCollectionK0) cZend_Amf_Value_Messaging_AcknowledgeMessageK-( ]Zend_Amf_Value_Messaging_AbstractMessageK!' EZend_Amf_Value_MessageHeaderK& AZend_Amf_Value_MessageBodyK% =Zend_Amf_Value_ByteArrayK$ AZend_Amf_Util_BinaryStreamK# +Zend_Amf_ServerK" ?Zend_Amf_Server_ExceptionK! /Zend_Amf_ResponseK  9Zend_Amf_Response_HttpK -Zend_Amf_RequestK 7Zend_Amf_Request_HttpK ?Zend_Amf_Parse_TypeLoaderK ?Zend_Amf_Parse_SerializerK# IZend_Amf_Parse_Resource_StreamK( SZend_Amf_Parse_Resource_MysqlResultK) UZend_Amf_Parse_Resource_MysqliResultK  CZend_Amf_Parse_OutputStreamK AZend_Amf_Parse_InputStreamK  CZend_Amf_Parse_DeserializerK# IZend_Amf_Parse_Amf3_SerializerK% MZend_Amf_Parse_Amf3_DeserializerK# IZend_Amf_Parse_Amf0_SerializerK% MZend_Amf_Parse_Amf0_DeserializerK 1Zend_Amf_ExceptionK 1Zend_Amf_ConstantsK 9Zend_Amf_Auth_AbstractK  CZend_Amf_Adobe_IntrospectorK AZend_Amf_Adobe_DbInspectorK 3Zend_Amf_Adobe_AuthK Zend_AclK
 'Zend_Acl_RoleK	 9Zend_Acl_Role_RegistryK% MZend_Acl_Role_Registry_ExceptionK /Zend_Acl_ResourceK 1Zend_Acl_ExceptionK /Zend_XmlRpc_ValueJ =Zend_XmlRpc_Value_StructJ =Zend_XmlRpc_Value_StringJ =Zend_XmlRpc_Value_ScalarJ 7Zend_XmlRpc_Value_NilJ  ?Zend_XmlRpc_Value_IntegerJ  CZend_XmlRpc_Value_ExceptionJ~ =Zend_XmlRpc_Value_DoubleJ} AZend_XmlRpc_Value_DateTimeJ!| EZend_XmlRpc_Value_CollectionJ{ ?Zend_XmlRpc_Value_BooleanJ!z EZend_XmlRpc_Value_BigIntegerJy =Zend_XmlRpc_Value_Base64Jx ;Zend_XmlRpc_Value_ArrayJw 1Zend_XmlRpc_ServerJv ?Zend_XmlRpc_Server_SystemJu =Zend_XmlRpc_Server_FaultJ!t EZend_XmlRpc_Server_ExceptionJs =Zend_XmlRpc_Server_CacheJr 5Zend_XmlRpc_ResponseJq ?Zend_XmlRpc_Response_HttpJp 3Zend_XmlRpc_RequestJo ?Zend_XmlRpc_Request_StdinJn =Zend_XmlRpc_Request_HttpJ$m KZend_XmlRpc_Generator_XmlWriterJ,l [Zend_XmlRpc_Generator_GeneratorAbstractJ&k OZend_XmlRpc_Generator_DomDocumentJj /Zend_XmlRpc_FaultJi 7Zend_XmlRpc_ExceptionJh 1Zend_XmlRpc_ClientJ#g IZend_XmlRpc_Client_ServerProxyJ+f YZend_XmlRpc_Client_ServerIntrospectionJ+e YZend_XmlRpc_Client_IntrospectExceptionJ%d MZend_XmlRpc_Client_HttpExceptionJ&c OZend_XmlRpc_Client_FaultExceptionJ!b EZend_XmlRpc_Client_ExceptionJ&a OZend_Wildfire_Protocol_JsonStreamJ!` EZend_Wildfire_Plugin_FirePhpJ._ _Zend_Wildfire_Plugin_FirePhp_TableMessageJ)^ UZend_Wildfire_Plugin_FirePhp_MessageJ] ;Zend_Wildfire_ExceptionJ&\ OZend_Wildfire_Channel_HttpHeadersJ[ Zend_ViewJZ -Zend_View_StreamJY AZend_View_Helper_UserAgentJX 5Zend_View_Helper_UrlJW AZend_View_Helper_TranslateJV AZend_View_Helper_ServerUrlJ)U UZend_View_Helper_RenderToPlaceholderJ!T EZend_View_Helper_PlaceholderJ*S WZend_View_Helper_Placeholder_RegistryJ4R kZend_View_Helper_Placeholder_Registry_ExceptionJ+Q YZend_View_Helper_Placeholder_ContainerJ6P oZend_View_Helper_Placeholder_Container_StandaloneJ5O mZend_View_Helper_Placeholder_Container_ExceptionJ4N kZend_View_Helper_Placeholder_Container_AbstractJ!M EZend_View_Helper_PartialLoopJL =Zend_View_Helper_PartialJ'K QZend_View_Helper_Partial_ExceptionJ   Y  yN"`%f-W%a3


a
+					w	P	*		a7pT*Z.b9vG_9b=wK(        0 cZend_Ldap_Node_Schema_ObjectClass_InterfaceK2 gZend_Ldap_Node_Schema_AttributeType_InterfaceK  CZend_Http_UserAgent_StorageK)  UZend_Http_UserAgent_Features_AdapterK AZend_Http_UserAgent_DeviceK$~ KZend_Http_Client_Adapter_StreamK'} QZend_Http_Client_Adapter_InterfaceK| AZend_Gdata_App_MediaSourceK.{ _Zend_Form_Decorator_Marker_File_InterfaceK"z GZend_Form_Decorator_InterfaceKy 7Zend_Filter_InterfaceK"x GZend_Filter_Encrypt_InterfaceK+w YZend_Filter_Compress_CompressInterfaceK0v cZend_Feed_Writer_Renderer_RendererInterfaceK1u eZend_Feed_Writer_Extension_RendererInterfaceK#t IZend_Feed_Reader_FeedInterfaceK$s KZend_Feed_Reader_EntryInterfaceK7r qZend_Feed_Pubsubhubbub_Model_SubscriptionInterfaceK-q ]Zend_Feed_Pubsubhubbub_CallbackInterfaceK p CZend_Feed_Builder_InterfaceK1o eZend_EventManager_SharedEventCollectionAwareK,n [Zend_EventManager_SharedEventCollectionK(m SZend_EventManager_ListenerAggregateKl =Zend_EventManager_FilterK k CZend_EventManager_ExceptionK(j SZend_EventManager_EventManagerAwareK'i QZend_EventManager_EventDescriptionK&h OZend_EventManager_EventCollectionK g CZend_Db_Statement_InterfaceK$f KZend_Currency_CurrencyInterfaceK)e UZend_Crypt_Math_BigInteger_InterfaceK+d YZend_Controller_Router_Route_InterfaceK%c MZend_Controller_Router_InterfaceK)b UZend_Controller_Dispatcher_InterfaceK%a MZend_Controller_Action_InterfaceK&` OZend_Cloud_StorageService_AdapterK$_ KZend_Cloud_QueueService_AdapterK&^ OZend_Cloud_Infrastructure_AdapterK,] [Zend_Cloud_DocumentService_QueryAdapterK'\ QZend_Cloud_DocumentService_AdapterK[ 5Zend_Captcha_AdapterK!Z EZend_Cache_Backend_InterfaceK)Y UZend_Cache_Backend_ExtendedInterfaceK X CZend_Auth_Storage_InterfaceK W CZend_Auth_Adapter_InterfaceK.V _Zend_Auth_Adapter_Http_Resolver_InterfaceK'U QZend_Application_Resource_ResourceK4T kZend_Application_Bootstrap_ResourceBootstrapperK,S [Zend_Application_Bootstrap_BootstrapperKR ;Zend_Acl_Role_InterfaceK Q CZend_Acl_Resource_InterfaceKP ?Zend_Acl_Assert_InterfaceK#O IZend_Wildfire_Plugin_InterfaceJ$N KZend_Wildfire_Channel_InterfaceJM 3Zend_View_InterfaceJ'L QZend_View_Helper_Navigation_HelperJK AZend_View_Helper_InterfaceJJ ;Zend_Validate_InterfaceJ+I YZend_Validate_Barcode_AdapterInterfaceJ3H iZend_Tool_Project_Profile_FileParser_InterfaceJ:G wZend_Tool_Project_Context_System_TopLevelRestrictableJ5F mZend_Tool_Project_Context_System_NotOverwritableJ/E aZend_Tool_Project_Context_System_InterfaceJ(D SZend_Tool_Project_Context_InterfaceJ+C YZend_Tool_Framework_Registry_InterfaceJ2B gZend_Tool_Framework_Registry_EnabledInterfaceJ-A ]Zend_Tool_Framework_Provider_PretendableJ+@ YZend_Tool_Framework_Provider_InterfaceJ.? _Zend_Tool_Framework_Provider_InteractableJ/> aZend_Tool_Framework_Provider_InitializableJ;= yZend_Tool_Framework_Provider_DocblockManifestInterfaceJ+< YZend_Tool_Framework_Metadata_InterfaceJ.; _Zend_Tool_Framework_Metadata_AttributableJ6: oZend_Tool_Framework_Manifest_ProviderManifestableJ69 oZend_Tool_Framework_Manifest_MetadataManifestableJ+8 YZend_Tool_Framework_Manifest_InterfaceJ+7 YZend_Tool_Framework_Manifest_IndexableJ46 kZend_Tool_Framework_Manifest_ActionManifestableJ)5 UZend_Tool_Framework_Loader_InterfaceJ84 sZend_Tool_Framework_Client_Storage_AdapterInterfaceJD3 	Zend_Tool_Framework_Client_Response_ContentDecorator_InterfaceJ;2 yZend_Tool_Framework_Client_Interactive_OutputInterfaceJ:1 wZend_Tool_Framework_Client_Interactive_InputInterfaceJ)0 UZend_Tool_Framework_Action_InterfaceJ(/ SZend_Text_Table_Decorator_InterfaceJ. /Zend_Tag_TaggableJ- 7Zend_Stdlib_ExceptionJ&, OZend_Soap_Wsdl_Strategy_InterfaceJ%+ MZend_Session_Validator_InterfaceJ   h  |W0Z3	V, rQ-oS:




w
T
&
				~	\	6	{W1R0jH&sH`?tU9MwH                         ' QZend_Cloud_DocumentService_FactoryK) UZend_Cloud_DocumentService_ExceptionK+ YZend_Cloud_DocumentService_DocumentSetK( SZend_Cloud_DocumentService_DocumentK4 kZend_Cloud_DocumentService_Adapter_WindowsAzureK: wZend_Cloud_DocumentService_Adapter_WindowsAzure_QueryK0 cZend_Cloud_DocumentService_Adapter_SimpleDbK6 oZend_Cloud_DocumentService_Adapter_SimpleDb_QueryK7 qZend_Cloud_DocumentService_Adapter_AbstractAdapterK AZend_Cloud_AbstractFactoryK /Zend_Captcha_WordK 9Zend_Captcha_ReCaptchaK 1Zend_Captcha_ImageK 3Zend_Captcha_FigletK 9Zend_Captcha_ExceptionK /Zend_Captcha_DumbK /Zend_Captcha_BaseK
 !Zend_CacheK	 1Zend_Cache_ManagerK =Zend_Cache_Frontend_PageK AZend_Cache_Frontend_OutputK! EZend_Cache_Frontend_FunctionK =Zend_Cache_Frontend_FileK ?Zend_Cache_Frontend_ClassK  CZend_Cache_Frontend_CaptureK 5Zend_Cache_ExceptionK +Zend_Cache_CoreK  1Zend_Cache_BackendK" GZend_Cache_Backend_ZendServerK(~ SZend_Cache_Backend_ZendServer_ShMemK'} QZend_Cache_Backend_ZendServer_DiskK$| KZend_Cache_Backend_ZendPlatformK{ ?Zend_Cache_Backend_XcacheK z CZend_Cache_Backend_WinCacheK!y EZend_Cache_Backend_TwoLevelsKx ;Zend_Cache_Backend_TestKw ?Zend_Cache_Backend_StaticKv ?Zend_Cache_Backend_SqliteK!u EZend_Cache_Backend_MemcachedK$t KZend_Cache_Backend_LibmemcachedKs ;Zend_Cache_Backend_FileK!r EZend_Cache_Backend_BlackHoleKq 9Zend_Cache_Backend_ApcKp %Zend_BarcodeKo ?Zend_Barcode_Renderer_SvgK+n YZend_Barcode_Renderer_RendererAbstractKm ?Zend_Barcode_Renderer_PdfK l CZend_Barcode_Renderer_ImageK$k KZend_Barcode_Renderer_ExceptionKj =Zend_Barcode_Object_UpceKi =Zend_Barcode_Object_UpcaK"h GZend_Barcode_Object_RoyalmailK g CZend_Barcode_Object_PostnetKf AZend_Barcode_Object_PlanetK'e QZend_Barcode_Object_ObjectAbstractK!d EZend_Barcode_Object_LeitcodeKc ?Zend_Barcode_Object_Itf14K"b GZend_Barcode_Object_IdentcodeK"a GZend_Barcode_Object_ExceptionK` ?Zend_Barcode_Object_ErrorK_ =Zend_Barcode_Object_Ean8K^ =Zend_Barcode_Object_Ean5K] =Zend_Barcode_Object_Ean2K\ ?Zend_Barcode_Object_Ean13K[ AZend_Barcode_Object_Code39K*Z WZend_Barcode_Object_Code25interleavedKY AZend_Barcode_Object_Code25K X CZend_Barcode_Object_Code128KW 9Zend_Barcode_ExceptionKV Zend_AuthKU ?Zend_Auth_Storage_SessionK$T KZend_Auth_Storage_NonPersistentK S CZend_Auth_Storage_ExceptionKR -Zend_Auth_ResultKQ 3Zend_Auth_ExceptionKP =Zend_Auth_Adapter_OpenIdKO 9Zend_Auth_Adapter_LdapKN 9Zend_Auth_Adapter_HttpK)M UZend_Auth_Adapter_Http_Resolver_FileK.L _Zend_Auth_Adapter_Http_Resolver_ExceptionK K CZend_Auth_Adapter_ExceptionKJ =Zend_Auth_Adapter_DigestKI ?Zend_Auth_Adapter_DbTableKH -Zend_ApplicationK#G IZend_Application_Resource_ViewK(F SZend_Application_Resource_UserAgentK(E SZend_Application_Resource_TranslateK&D OZend_Application_Resource_SessionK%C MZend_Application_Resource_RouterK/B aZend_Application_Resource_ResourceAbstractK)A UZend_Application_Resource_NavigationK&@ OZend_Application_Resource_MultidbK&? OZend_Application_Resource_ModulesK#> IZend_Application_Resource_MailK"= GZend_Application_Resource_LogK%< MZend_Application_Resource_LocaleK%; MZend_Application_Resource_LayoutK.: _Zend_Application_Resource_FrontcontrollerK(9 SZend_Application_Resource_ExceptionK#8 IZend_Application_Resource_DojoK!7 EZend_Application_Resource_DbK+6 YZend_Application_Resource_CachemanagerK&5 OZend_Application_Module_BootstrapK'4 QZend_Application_Module_AutoloaderK   \  RtIOxCU1



g
5
				a	2	}H iI*
h?p9d9qE&a9i?     )w UZend_Controller_Request_HttpTestCaseK!v EZend_Controller_Request_HttpK&u OZend_Controller_Request_ExceptionK&t OZend_Controller_Request_Apache404K%s MZend_Controller_Request_AbstractK&r OZend_Controller_Plugin_PutHandlerK(q SZend_Controller_Plugin_ErrorHandlerK"p GZend_Controller_Plugin_BrokerK'o QZend_Controller_Plugin_ActionStackK$n KZend_Controller_Plugin_AbstractKm 7Zend_Controller_FrontKl ?Zend_Controller_ExceptionK(k SZend_Controller_Dispatcher_StandardK)j UZend_Controller_Dispatcher_ExceptionK(i SZend_Controller_Dispatcher_AbstractKh 9Zend_Controller_ActionK(g SZend_Controller_Action_HelperBrokerK6f oZend_Controller_Action_HelperBroker_PriorityStackK/e aZend_Controller_Action_Helper_ViewRendererK&d OZend_Controller_Action_Helper_UrlK-c ]Zend_Controller_Action_Helper_RedirectorK'b QZend_Controller_Action_Helper_JsonK1a eZend_Controller_Action_Helper_FlashMessengerK0` cZend_Controller_Action_Helper_ContextSwitchK(_ SZend_Controller_Action_Helper_CacheK<^ {Zend_Controller_Action_Helper_AutoCompleteScriptaculousK3] iZend_Controller_Action_Helper_AutoCompleteDojoK8\ sZend_Controller_Action_Helper_AutoComplete_AbstractK.[ _Zend_Controller_Action_Helper_AjaxContextK.Z _Zend_Controller_Action_Helper_ActionStackK+Y YZend_Controller_Action_Helper_AbstractK%X MZend_Controller_Action_ExceptionKW 3Zend_Console_GetoptK"V GZend_Console_Getopt_ExceptionKU #Zend_ConfigKT -Zend_Config_YamlKS +Zend_Config_XmlKR 1Zend_Config_WriterKQ ;Zend_Config_Writer_YamlKP 9Zend_Config_Writer_XmlKO ;Zend_Config_Writer_JsonKN 9Zend_Config_Writer_IniK$M KZend_Config_Writer_FileAbstractKL =Zend_Config_Writer_ArrayKK -Zend_Config_JsonKJ +Zend_Config_IniKI 7Zend_Config_ExceptionK$H KZend_CodeGenerator_Php_PropertyK1G eZend_CodeGenerator_Php_Property_DefaultValueK%F MZend_CodeGenerator_Php_ParameterK2E gZend_CodeGenerator_Php_Parameter_DefaultValueK"D GZend_CodeGenerator_Php_MethodK,C [Zend_CodeGenerator_Php_Member_ContainerK+B YZend_CodeGenerator_Php_Member_AbstractK A CZend_CodeGenerator_Php_FileK%@ MZend_CodeGenerator_Php_ExceptionK$? KZend_CodeGenerator_Php_DocblockK(> SZend_CodeGenerator_Php_Docblock_TagK/= aZend_CodeGenerator_Php_Docblock_Tag_ReturnK.< _Zend_CodeGenerator_Php_Docblock_Tag_ParamK0; cZend_CodeGenerator_Php_Docblock_Tag_LicenseK!: EZend_CodeGenerator_Php_ClassK 9 CZend_CodeGenerator_Php_BodyK$8 KZend_CodeGenerator_Php_AbstractK!7 EZend_CodeGenerator_ExceptionK 6 CZend_CodeGenerator_AbstractK&5 OZend_Cloud_StorageService_FactoryK(4 SZend_Cloud_StorageService_ExceptionK33 iZend_Cloud_StorageService_Adapter_WindowsAzureK)2 UZend_Cloud_StorageService_Adapter_S3K01 cZend_Cloud_StorageService_Adapter_RackspaceK10 eZend_Cloud_StorageService_Adapter_FileSystemK'/ QZend_Cloud_QueueService_MessageSetK$. KZend_Cloud_QueueService_MessageK$- KZend_Cloud_QueueService_FactoryK&, OZend_Cloud_QueueService_ExceptionK.+ _Zend_Cloud_QueueService_Adapter_ZendQueueK1* eZend_Cloud_QueueService_Adapter_WindowsAzureK() SZend_Cloud_QueueService_Adapter_SqsK4( kZend_Cloud_QueueService_Adapter_AbstractAdapterK.' _Zend_Cloud_OperationNotAvailableExceptionK+& YZend_Cloud_Infrastructure_InstanceListK'% QZend_Cloud_Infrastructure_InstanceK($ SZend_Cloud_Infrastructure_ImageListK$# KZend_Cloud_Infrastructure_ImageK&" OZend_Cloud_Infrastructure_FactoryK(! SZend_Cloud_Infrastructure_ExceptionK0  cZend_Cloud_Infrastructure_Adapter_RackspaceK* WZend_Cloud_Infrastructure_Adapter_Ec2K6 oZend_Cloud_Infrastructure_Adapter_AbstractAdapterK 5Zend_Cloud_ExceptionK% MZend_Cloud_DocumentService_QueryK   n  _9e:d9jC eN;





Z
>
					g	C	yV-|cB+uJ){aB!zS6i5xJmG                    $e KZend_Dojo_Form_Element_ComboBoxK$d KZend_Dojo_Form_Element_CheckBoxK"c GZend_Dojo_Form_Element_ButtonK b CZend_Dojo_Form_DisplayGroupK*a WZend_Dojo_Form_Decorator_TabContainerK,` [Zend_Dojo_Form_Decorator_StackContainerK,_ [Zend_Dojo_Form_Decorator_SplitContainerK'^ QZend_Dojo_Form_Decorator_DijitFormK*] WZend_Dojo_Form_Decorator_DijitElementK,\ [Zend_Dojo_Form_Decorator_DijitContainerK)[ UZend_Dojo_Form_Decorator_ContentPaneK-Z ]Zend_Dojo_Form_Decorator_BorderContainerK+Y YZend_Dojo_Form_Decorator_AccordionPaneK0X cZend_Dojo_Form_Decorator_AccordionContainerKW 3Zend_Dojo_ExceptionKV )Zend_Dojo_DataKU 5Zend_Dojo_BuildLayerKT !Zend_DebugKS Zend_DbKR 'Zend_Db_TableKQ 5Zend_Db_Table_SelectK#P IZend_Db_Table_Select_ExceptionKO 5Zend_Db_Table_RowsetK#N IZend_Db_Table_Rowset_ExceptionK"M GZend_Db_Table_Rowset_AbstractKL /Zend_Db_Table_RowK K CZend_Db_Table_Row_ExceptionKJ AZend_Db_Table_Row_AbstractKI ;Zend_Db_Table_ExceptionKH =Zend_Db_Table_DefinitionKG 9Zend_Db_Table_AbstractKF /Zend_Db_StatementKE =Zend_Db_Statement_SqlsrvK'D QZend_Db_Statement_Sqlsrv_ExceptionKC 7Zend_Db_Statement_PdoKB ?Zend_Db_Statement_Pdo_OciKA ?Zend_Db_Statement_Pdo_IbmK@ =Zend_Db_Statement_OracleK'? QZend_Db_Statement_Oracle_ExceptionK> =Zend_Db_Statement_MysqliK'= QZend_Db_Statement_Mysqli_ExceptionK < CZend_Db_Statement_ExceptionK; 7Zend_Db_Statement_Db2K$: KZend_Db_Statement_Db2_ExceptionK9 )Zend_Db_SelectK8 =Zend_Db_Select_ExceptionK7 -Zend_Db_ProfilerK6 9Zend_Db_Profiler_QueryK5 =Zend_Db_Profiler_FirebugK4 AZend_Db_Profiler_ExceptionK3 %Zend_Db_ExprK2 /Zend_Db_ExceptionK1 9Zend_Db_Adapter_SqlsrvK%0 MZend_Db_Adapter_Sqlsrv_ExceptionK/ AZend_Db_Adapter_Pdo_SqliteK. ?Zend_Db_Adapter_Pdo_PgsqlK- ;Zend_Db_Adapter_Pdo_OciK, ?Zend_Db_Adapter_Pdo_MysqlK+ ?Zend_Db_Adapter_Pdo_MssqlK* ;Zend_Db_Adapter_Pdo_IbmK ) CZend_Db_Adapter_Pdo_Ibm_IdsK ( CZend_Db_Adapter_Pdo_Ibm_Db2K!' EZend_Db_Adapter_Pdo_AbstractK& 9Zend_Db_Adapter_OracleK%% MZend_Db_Adapter_Oracle_ExceptionK$ 9Zend_Db_Adapter_MysqliK%# MZend_Db_Adapter_Mysqli_ExceptionK" ?Zend_Db_Adapter_ExceptionK! 3Zend_Db_Adapter_Db2K"  GZend_Db_Adapter_Db2_ExceptionK =Zend_Db_Adapter_AbstractK Zend_DateK 3Zend_Date_ExceptionK 5Zend_Date_DateObjectK -Zend_Date_CitiesK 'Zend_CurrencyK ;Zend_Currency_ExceptionK !Zend_CryptK )Zend_Crypt_RsaK 1Zend_Crypt_Rsa_KeyK ?Zend_Crypt_Rsa_Key_PublicK AZend_Crypt_Rsa_Key_PrivateK =Zend_Crypt_Rsa_ExceptionK +Zend_Crypt_MathK ?Zend_Crypt_Math_ExceptionK AZend_Crypt_Math_BigIntegerK# IZend_Crypt_Math_BigInteger_GmpK) UZend_Crypt_Math_BigInteger_ExceptionK& OZend_Crypt_Math_BigInteger_BcmathK +Zend_Crypt_HmacK ?Zend_Crypt_Hmac_ExceptionK
 5Zend_Crypt_ExceptionK	 =Zend_Crypt_DiffieHellmanK' QZend_Crypt_DiffieHellman_ExceptionK! EZend_Controller_Router_RouteK( SZend_Controller_Router_Route_StaticK' QZend_Controller_Router_Route_RegexK( SZend_Controller_Router_Route_ModuleK* WZend_Controller_Router_Route_HostnameK' QZend_Controller_Router_Route_ChainK* WZend_Controller_Router_Route_AbstractK#  IZend_Controller_Router_RewriteK% MZend_Controller_Router_ExceptionK$~ KZend_Controller_Router_AbstractK*} WZend_Controller_Response_HttpTestCaseK"| GZend_Controller_Response_HttpK'{ QZend_Controller_Response_ExceptionK!z EZend_Controller_Response_CliK&y OZend_Controller_Response_AbstractK#x IZend_Controller_Request_SimpleK   b  W1xIvO$n=pF



s
F
#				~	R	&|O"U%uU.n]0mI! rV&lCo8   G AZend_Feed_Reader_Entry_RssK F CZend_Feed_Reader_Entry_AtomK E CZend_Feed_Reader_CollectionK3D iZend_Feed_Reader_Collection_CollectionAbstractK)C UZend_Feed_Reader_Collection_CategoryK'B QZend_Feed_Reader_Collection_AuthorKA 9Zend_Feed_PubsubhubbubK&@ OZend_Feed_Pubsubhubbub_SubscriberK/? aZend_Feed_Pubsubhubbub_Subscriber_CallbackK%> MZend_Feed_Pubsubhubbub_PublisherK.= _Zend_Feed_Pubsubhubbub_Model_SubscriptionK/< aZend_Feed_Pubsubhubbub_Model_ModelAbstractK(; SZend_Feed_Pubsubhubbub_HttpResponseK%: MZend_Feed_Pubsubhubbub_ExceptionK,9 [Zend_Feed_Pubsubhubbub_CallbackAbstractK8 3Zend_Feed_ExceptionK7 3Zend_Feed_Entry_RssK6 5Zend_Feed_Entry_AtomK5 =Zend_Feed_Entry_AbstractK4 /Zend_Feed_ElementK3 /Zend_Feed_BuilderK2 =Zend_Feed_Builder_HeaderK$1 KZend_Feed_Builder_Header_ItunesK 0 CZend_Feed_Builder_ExceptionK/ ;Zend_Feed_Builder_EntryK. )Zend_Feed_AtomK- 1Zend_Feed_AbstractK, )Zend_ExceptionK)+ UZend_EventManager_StaticEventManagerK)* UZend_EventManager_SharedEventManagerK)) UZend_EventManager_ResponseCollectionK( SplStackK)' UZend_EventManager_GlobalEventManagerK"& GZend_EventManager_FilterChainK,% [Zend_EventManager_Filter_FilterIteratorK9$ uZend_EventManager_Exception_InvalidArgumentExceptionK## IZend_EventManager_EventManagerK" ;Zend_EventManager_EventK! )Zend_Dom_QueryK  7Zend_Dom_Query_ResultK =Zend_Dom_Query_Css2XpathK 1Zend_Dom_ExceptionK Zend_DojoK) UZend_Dojo_View_Helper_VerticalSliderK, [Zend_Dojo_View_Helper_ValidationTextBoxK& OZend_Dojo_View_Helper_TimeTextBoxK" GZend_Dojo_View_Helper_TextBoxK# IZend_Dojo_View_Helper_TextareaK' QZend_Dojo_View_Helper_TabContainerK' QZend_Dojo_View_Helper_SubmitButtonK) UZend_Dojo_View_Helper_StackContainerK) UZend_Dojo_View_Helper_SplitContainerK! EZend_Dojo_View_Helper_SliderK) UZend_Dojo_View_Helper_SimpleTextareaK& OZend_Dojo_View_Helper_RadioButtonK* WZend_Dojo_View_Helper_PasswordTextBoxK( SZend_Dojo_View_Helper_NumberTextBoxK( SZend_Dojo_View_Helper_NumberSpinnerK+ YZend_Dojo_View_Helper_HorizontalSliderK AZend_Dojo_View_Helper_FormK* WZend_Dojo_View_Helper_FilteringSelectK!
 EZend_Dojo_View_Helper_EditorK	 AZend_Dojo_View_Helper_DojoK) UZend_Dojo_View_Helper_Dojo_ContainerK) UZend_Dojo_View_Helper_DijitContainerK  CZend_Dojo_View_Helper_DijitK& OZend_Dojo_View_Helper_DateTextBoxK& OZend_Dojo_View_Helper_CustomDijitK* WZend_Dojo_View_Helper_CurrencyTextBoxK& OZend_Dojo_View_Helper_ContentPaneK# IZend_Dojo_View_Helper_ComboBoxK#  IZend_Dojo_View_Helper_CheckBoxK! EZend_Dojo_View_Helper_ButtonK*~ WZend_Dojo_View_Helper_BorderContainerK(} SZend_Dojo_View_Helper_AccordionPaneK-| ]Zend_Dojo_View_Helper_AccordionContainerK{ =Zend_Dojo_View_ExceptionKz )Zend_Dojo_FormKy 9Zend_Dojo_Form_SubFormK*x WZend_Dojo_Form_Element_VerticalSliderK-w ]Zend_Dojo_Form_Element_ValidationTextBoxK'v QZend_Dojo_Form_Element_TimeTextBoxK#u IZend_Dojo_Form_Element_TextBoxK$t KZend_Dojo_Form_Element_TextareaK(s SZend_Dojo_Form_Element_SubmitButtonK"r GZend_Dojo_Form_Element_SliderK*q WZend_Dojo_Form_Element_SimpleTextareaK'p QZend_Dojo_Form_Element_RadioButtonK+o YZend_Dojo_Form_Element_PasswordTextBoxK)n UZend_Dojo_Form_Element_NumberTextBoxK)m UZend_Dojo_Form_Element_NumberSpinnerK,l [Zend_Dojo_Form_Element_HorizontalSliderK+k YZend_Dojo_Form_Element_FilteringSelectK"j GZend_Dojo_Form_Element_EditorK&i OZend_Dojo_Form_Element_DijitMultiK!h EZend_Dojo_Form_Element_DijitK'g QZend_Dojo_Form_Element_DateTextBoxK+f YZend_Dojo_Form_Element_CurrencyTextBoxK   b  ~MuDP zT3T


q
B
				e	)k>zOZ5 oA! aE*pO,xN$kI+         *) WZend_Filter_Word_CamelCaseToSeparatorK%( MZend_Filter_Word_CamelCaseToDashK' 7Zend_Filter_StripTagsK& ?Zend_Filter_StripNewlinesK% 9Zend_Filter_StringTrimK$ ?Zend_Filter_StringToUpperK# ?Zend_Filter_StringToLowerK" 5Zend_Filter_RealPathK! ;Zend_Filter_PregReplaceK  -Zend_Filter_NullK& OZend_Filter_NormalizedToLocalizedK& OZend_Filter_LocalizedToNormalizedK +Zend_Filter_IntK /Zend_Filter_InputK 7Zend_Filter_InflectorK =Zend_Filter_HtmlEntitiesK AZend_Filter_File_UpperCaseK ;Zend_Filter_File_RenameK AZend_Filter_File_LowerCaseK =Zend_Filter_File_EncryptK =Zend_Filter_File_DecryptK 7Zend_Filter_ExceptionK 3Zend_Filter_EncryptK  CZend_Filter_Encrypt_OpensslK AZend_Filter_Encrypt_McryptK +Zend_Filter_DirK 1Zend_Filter_DigitsK 3Zend_Filter_DecryptK 9Zend_Filter_DecompressK 5Zend_Filter_CompressK =Zend_Filter_Compress_ZipK
 =Zend_Filter_Compress_TarK	 =Zend_Filter_Compress_RarK =Zend_Filter_Compress_LzfK ;Zend_Filter_Compress_GzK* WZend_Filter_Compress_CompressAbstractK =Zend_Filter_Compress_Bz2K 5Zend_Filter_CallbackK 3Zend_Filter_BooleanK 5Zend_Filter_BaseNameK /Zend_Filter_AlphaK  /Zend_Filter_AlnumK 1Zend_File_TransferK!~ EZend_File_Transfer_ExceptionK$} KZend_File_Transfer_Adapter_HttpK(| SZend_File_Transfer_Adapter_AbstractK{ AZend_File_ClassFileLocatorKz Zend_FeedKy -Zend_Feed_WriterKx ;Zend_Feed_Writer_SourceK/w aZend_Feed_Writer_Renderer_RendererAbstractK'v QZend_Feed_Writer_Renderer_Feed_RssK(u SZend_Feed_Writer_Renderer_Feed_AtomK/t aZend_Feed_Writer_Renderer_Feed_Atom_SourceK5s mZend_Feed_Writer_Renderer_Feed_Atom_AtomAbstractK(r SZend_Feed_Writer_Renderer_Entry_RssK)q UZend_Feed_Writer_Renderer_Entry_AtomK1p eZend_Feed_Writer_Renderer_Entry_Atom_DeletedKo 7Zend_Feed_Writer_FeedK'n QZend_Feed_Writer_Feed_FeedAbstractK<m {Zend_Feed_Writer_Extension_WellFormedWeb_Renderer_EntryK8l sZend_Feed_Writer_Extension_Threading_Renderer_EntryK4k kZend_Feed_Writer_Extension_Slash_Renderer_EntryK0j cZend_Feed_Writer_Extension_RendererAbstractK4i kZend_Feed_Writer_Extension_ITunes_Renderer_FeedK5h mZend_Feed_Writer_Extension_ITunes_Renderer_EntryK+g YZend_Feed_Writer_Extension_ITunes_FeedK,f [Zend_Feed_Writer_Extension_ITunes_EntryK8e sZend_Feed_Writer_Extension_DublinCore_Renderer_FeedK9d uZend_Feed_Writer_Extension_DublinCore_Renderer_EntryK6c oZend_Feed_Writer_Extension_Content_Renderer_EntryK2b gZend_Feed_Writer_Extension_Atom_Renderer_FeedK6a oZend_Feed_Writer_Exception_InvalidMethodExceptionK` 9Zend_Feed_Writer_EntryK_ =Zend_Feed_Writer_DeletedK^ 'Zend_Feed_RssK] -Zend_Feed_ReaderK\ =Zend_Feed_Reader_FeedSetK"[ GZend_Feed_Reader_FeedAbstractKZ ?Zend_Feed_Reader_Feed_RssKY AZend_Feed_Reader_Feed_AtomK&X OZend_Feed_Reader_Feed_Atom_SourceK3W iZend_Feed_Reader_Extension_WellFormedWeb_EntryK,V [Zend_Feed_Reader_Extension_Thread_EntryK0U cZend_Feed_Reader_Extension_Syndication_FeedK+T YZend_Feed_Reader_Extension_Slash_EntryK,S [Zend_Feed_Reader_Extension_Podcast_FeedK-R ]Zend_Feed_Reader_Extension_Podcast_EntryK,Q [Zend_Feed_Reader_Extension_FeedAbstractK-P ]Zend_Feed_Reader_Extension_EntryAbstractK/O aZend_Feed_Reader_Extension_DublinCore_FeedK0N cZend_Feed_Reader_Extension_DublinCore_EntryK4M kZend_Feed_Reader_Extension_CreativeCommons_FeedK5L mZend_Feed_Reader_Extension_CreativeCommons_EntryK-K ]Zend_Feed_Reader_Extension_Content_EntryK)J UZend_Feed_Reader_Extension_Atom_FeedK*I WZend_Feed_Reader_Extension_Atom_EntryK#H IZend_Feed_Reader_EntryAbstractK   g  U)uKgCdC_;




h
D
%
				}	W	4	pP6 qJ$|L j:T+a;}R*b9    3Zend_Gdata_App_FeedK =Zend_Gdata_App_ExtensionK! EZend_Gdata_App_Extension_UriK% MZend_Gdata_App_Extension_UpdatedK# IZend_Gdata_App_Extension_TitleK" GZend_Gdata_App_Extension_TextK%
 MZend_Gdata_App_Extension_SummaryK&	 OZend_Gdata_App_Extension_SubtitleK$ KZend_Gdata_App_Extension_SourceK$ KZend_Gdata_App_Extension_RightsK' QZend_Gdata_App_Extension_PublishedK$ KZend_Gdata_App_Extension_PersonK" GZend_Gdata_App_Extension_NameK" GZend_Gdata_App_Extension_LogoK" GZend_Gdata_App_Extension_LinkK  CZend_Gdata_App_Extension_IdK"  GZend_Gdata_App_Extension_IconK' QZend_Gdata_App_Extension_GeneratorK#~ IZend_Gdata_App_Extension_EmailK%} MZend_Gdata_App_Extension_ElementK$| KZend_Gdata_App_Extension_EditedK#{ IZend_Gdata_App_Extension_DraftK%z MZend_Gdata_App_Extension_ControlK)y UZend_Gdata_App_Extension_ContributorK%x MZend_Gdata_App_Extension_ContentK&w OZend_Gdata_App_Extension_CategoryK$v KZend_Gdata_App_Extension_AuthorKu =Zend_Gdata_App_ExceptionKt 5Zend_Gdata_App_EntryK,s [Zend_Gdata_App_CaptchaRequiredExceptionK#r IZend_Gdata_App_BaseMediaSourceKq 3Zend_Gdata_App_BaseK*p WZend_Gdata_App_BadMethodCallExceptionK!o EZend_Gdata_App_AuthExceptionKn 5Zend_Gdata_AnalyticsK+m YZend_Gdata_Analytics_Extension_TableIdK,l [Zend_Gdata_Analytics_Extension_PropertyK*k WZend_Gdata_Analytics_Extension_MetricKj ?Zend_Gdata_Analytics_GoalK-i ]Zend_Gdata_Analytics_Extension_DimensionK#h IZend_Gdata_Analytics_DataQueryK"g GZend_Gdata_Analytics_DataFeedK#f IZend_Gdata_Analytics_DataEntryK&e OZend_Gdata_Analytics_AccountQueryK%d MZend_Gdata_Analytics_AccountFeedK&c OZend_Gdata_Analytics_AccountEntryKb Zend_FormKa /Zend_Form_SubFormK` 3Zend_Form_ExceptionK_ /Zend_Form_ElementK^ ;Zend_Form_Element_XhtmlK] AZend_Form_Element_TextareaK\ 9Zend_Form_Element_TextK[ =Zend_Form_Element_SubmitKZ =Zend_Form_Element_SelectKY ;Zend_Form_Element_ResetKX ;Zend_Form_Element_RadioKW AZend_Form_Element_PasswordK"V GZend_Form_Element_MultiselectK$U KZend_Form_Element_MultiCheckboxKT ;Zend_Form_Element_MultiKS ;Zend_Form_Element_ImageKR =Zend_Form_Element_HiddenKQ 9Zend_Form_Element_HashKP 9Zend_Form_Element_FileK O CZend_Form_Element_ExceptionKN AZend_Form_Element_CheckboxKM ?Zend_Form_Element_CaptchaKL =Zend_Form_Element_ButtonKK 9Zend_Form_DisplayGroupK#J IZend_Form_Decorator_ViewScriptK#I IZend_Form_Decorator_ViewHelperK H CZend_Form_Decorator_TooltipK(G SZend_Form_Decorator_PrepareElementsKF ?Zend_Form_Decorator_LabelKE ?Zend_Form_Decorator_ImageK D CZend_Form_Decorator_HtmlTagK#C IZend_Form_Decorator_FormErrorsK%B MZend_Form_Decorator_FormElementsKA =Zend_Form_Decorator_FormK@ =Zend_Form_Decorator_FileK!? EZend_Form_Decorator_FieldsetK"> GZend_Form_Decorator_ExceptionK= AZend_Form_Decorator_ErrorsK$< KZend_Form_Decorator_DtDdWrapperK$; KZend_Form_Decorator_DescriptionK : CZend_Form_Decorator_CaptchaK%9 MZend_Form_Decorator_Captcha_WordK*8 WZend_Form_Decorator_Captcha_ReCaptchaK!7 EZend_Form_Decorator_CallbackK!6 EZend_Form_Decorator_AbstractK5 #Zend_FilterK+4 YZend_Filter_Word_UnderscoreToSeparatorK&3 OZend_Filter_Word_UnderscoreToDashK+2 YZend_Filter_Word_UnderscoreToCamelCaseK*1 WZend_Filter_Word_SeparatorToSeparatorK%0 MZend_Filter_Word_SeparatorToDashK*/ WZend_Filter_Word_SeparatorToCamelCaseK(. SZend_Filter_Word_Separator_AbstractK&- OZend_Filter_Word_DashToUnderscoreK%, MZend_Filter_Word_DashToSeparatorK%+ MZend_Filter_Word_DashToCamelCaseK+* YZend_Filter_Word_CamelCaseToUnderscoreK   _  \9v_Dc2|M(yR 



m
>
			{	V	:	b5n<xZ/V0	v^2d>
yU-b?                                    o +Zend_Gdata_FeedKn 5Zend_Gdata_ExtensionKm =Zend_Gdata_Extension_WhoKl AZend_Gdata_Extension_WhereKk ?Zend_Gdata_Extension_WhenK$j KZend_Gdata_Extension_VisibilityK&i OZend_Gdata_Extension_TransparencyK"h GZend_Gdata_Extension_ReminderK-g ]Zend_Gdata_Extension_RecurrenceExceptionK$f KZend_Gdata_Extension_RecurrenceK e CZend_Gdata_Extension_RatingK'd QZend_Gdata_Extension_OriginalEventK0c cZend_Gdata_Extension_OpenSearchTotalResultsK.b _Zend_Gdata_Extension_OpenSearchStartIndexK0a cZend_Gdata_Extension_OpenSearchItemsPerPageK"` GZend_Gdata_Extension_FeedLinkK*_ WZend_Gdata_Extension_ExtendedPropertyK%^ MZend_Gdata_Extension_EventStatusK#] IZend_Gdata_Extension_EntryLinkK"\ GZend_Gdata_Extension_CommentsK&[ OZend_Gdata_Extension_AttendeeTypeK(Z SZend_Gdata_Extension_AttendeeStatusKY +Zend_Gdata_ExifKX 5Zend_Gdata_Exif_FeedK#W IZend_Gdata_Exif_Extension_TimeK#V IZend_Gdata_Exif_Extension_TagsK$U KZend_Gdata_Exif_Extension_ModelK#T IZend_Gdata_Exif_Extension_MakeK"S GZend_Gdata_Exif_Extension_IsoK,R [Zend_Gdata_Exif_Extension_ImageUniqueIdK$Q KZend_Gdata_Exif_Extension_FStopK*P WZend_Gdata_Exif_Extension_FocalLengthK$O KZend_Gdata_Exif_Extension_FlashK'N QZend_Gdata_Exif_Extension_ExposureK'M QZend_Gdata_Exif_Extension_DistanceKL 7Zend_Gdata_Exif_EntryKK -Zend_Gdata_EntryKJ 7Zend_Gdata_DublinCoreK*I WZend_Gdata_DublinCore_Extension_TitleK,H [Zend_Gdata_DublinCore_Extension_SubjectK+G YZend_Gdata_DublinCore_Extension_RightsK.F _Zend_Gdata_DublinCore_Extension_PublisherK-E ]Zend_Gdata_DublinCore_Extension_LanguageK/D aZend_Gdata_DublinCore_Extension_IdentifierK+C YZend_Gdata_DublinCore_Extension_FormatK0B cZend_Gdata_DublinCore_Extension_DescriptionK)A UZend_Gdata_DublinCore_Extension_DateK,@ [Zend_Gdata_DublinCore_Extension_CreatorK? +Zend_Gdata_DocsK> 7Zend_Gdata_Docs_QueryK%= MZend_Gdata_Docs_DocumentListFeedK&< OZend_Gdata_Docs_DocumentListEntryK; 9Zend_Gdata_ClientLoginK: 3Zend_Gdata_CalendarK!9 EZend_Gdata_Calendar_ListFeedK"8 GZend_Gdata_Calendar_ListEntryK-7 ]Zend_Gdata_Calendar_Extension_WebContentK+6 YZend_Gdata_Calendar_Extension_TimezoneK95 uZend_Gdata_Calendar_Extension_SendEventNotificationsK+4 YZend_Gdata_Calendar_Extension_SelectedK+3 YZend_Gdata_Calendar_Extension_QuickAddK'2 QZend_Gdata_Calendar_Extension_LinkK)1 UZend_Gdata_Calendar_Extension_HiddenK(0 SZend_Gdata_Calendar_Extension_ColorK./ _Zend_Gdata_Calendar_Extension_AccessLevelK#. IZend_Gdata_Calendar_EventQueryK"- GZend_Gdata_Calendar_EventFeedK#, IZend_Gdata_Calendar_EventEntryK+ -Zend_Gdata_BooksK!* EZend_Gdata_Books_VolumeQueryK ) CZend_Gdata_Books_VolumeFeedK!( EZend_Gdata_Books_VolumeEntryK+' YZend_Gdata_Books_Extension_ViewabilityK-& ]Zend_Gdata_Books_Extension_ThumbnailLinkK&% OZend_Gdata_Books_Extension_ReviewK+$ YZend_Gdata_Books_Extension_PreviewLinkK(# SZend_Gdata_Books_Extension_InfoLinkK-" ]Zend_Gdata_Books_Extension_EmbeddabilityK)! UZend_Gdata_Books_Extension_BooksLinkK-  ]Zend_Gdata_Books_Extension_BooksCategoryK. _Zend_Gdata_Books_Extension_AnnotationLinkK$ KZend_Gdata_Books_CollectionFeedK% MZend_Gdata_Books_CollectionEntryK 1Zend_Gdata_AuthSubK )Zend_Gdata_AppK$ KZend_Gdata_App_VersionExceptionK 3Zend_Gdata_App_UtilK# IZend_Gdata_App_MediaFileSourceK ?Zend_Gdata_App_MediaEntryK2 gZend_Gdata_App_LoggingHttpClientAdapterSocketK AZend_Gdata_App_IOExceptionK, [Zend_Gdata_App_InvalidArgumentExceptionK! EZend_Gdata_App_HttpExceptionK$ KZend_Gdata_App_FeedSourceParentK# IZend_Gdata_App_FeedEntryParentK   a  X(Z.nI% hE!pW8




b
<
					d	<	 		i?iJT&j6	rO-|Q%n8Z-                                                      *P WZend_Gdata_Photos_Extension_NumPhotosK)O UZend_Gdata_Photos_Extension_NicknameK%N MZend_Gdata_Photos_Extension_NameK2M gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumK)L UZend_Gdata_Photos_Extension_LocationK#K IZend_Gdata_Photos_Extension_IdK'J QZend_Gdata_Photos_Extension_HeightK2I gZend_Gdata_Photos_Extension_CommentingEnabledK-H ]Zend_Gdata_Photos_Extension_CommentCountK'G QZend_Gdata_Photos_Extension_ClientK)F UZend_Gdata_Photos_Extension_ChecksumK*E WZend_Gdata_Photos_Extension_BytesUsedK(D SZend_Gdata_Photos_Extension_AlbumIdK'C QZend_Gdata_Photos_Extension_AccessK#B IZend_Gdata_Photos_CommentEntryK!A EZend_Gdata_Photos_AlbumQueryK @ CZend_Gdata_Photos_AlbumFeedK!? EZend_Gdata_Photos_AlbumEntryK> 3Zend_Gdata_MimeFileK= ?Zend_Gdata_MimeBodyStringK< AZend_Gdata_MediaMimeStreamK; -Zend_Gdata_MediaK: 7Zend_Gdata_Media_FeedK*9 WZend_Gdata_Media_Extension_MediaTitleK.8 _Zend_Gdata_Media_Extension_MediaThumbnailK)7 UZend_Gdata_Media_Extension_MediaTextK06 cZend_Gdata_Media_Extension_MediaRestrictionK+5 YZend_Gdata_Media_Extension_MediaRatingK+4 YZend_Gdata_Media_Extension_MediaPlayerK-3 ]Zend_Gdata_Media_Extension_MediaKeywordsK)2 UZend_Gdata_Media_Extension_MediaHashK*1 WZend_Gdata_Media_Extension_MediaGroupK00 cZend_Gdata_Media_Extension_MediaDescriptionK+/ YZend_Gdata_Media_Extension_MediaCreditK.. _Zend_Gdata_Media_Extension_MediaCopyrightK,- [Zend_Gdata_Media_Extension_MediaContentK-, ]Zend_Gdata_Media_Extension_MediaCategoryK+ 9Zend_Gdata_Media_EntryK* AZend_Gdata_Kind_EventEntryK) 7Zend_Gdata_HttpClientK*( WZend_Gdata_HttpAdapterStreamingSocketK)' UZend_Gdata_HttpAdapterStreamingProxyK& /Zend_Gdata_HealthK% ;Zend_Gdata_Health_QueryK&$ OZend_Gdata_Health_ProfileListFeedK'# QZend_Gdata_Health_ProfileListEntryK"" GZend_Gdata_Health_ProfileFeedK#! IZend_Gdata_Health_ProfileEntryK$  KZend_Gdata_Health_Extension_CcrK )Zend_Gdata_GeoK 3Zend_Gdata_Geo_FeedK$ KZend_Gdata_Geo_Extension_GmlPosK& OZend_Gdata_Geo_Extension_GmlPointK) UZend_Gdata_Geo_Extension_GeoRssWhereK 5Zend_Gdata_Geo_EntryK -Zend_Gdata_GbaseK" GZend_Gdata_Gbase_SnippetQueryK! EZend_Gdata_Gbase_SnippetFeedK" GZend_Gdata_Gbase_SnippetEntryK 9Zend_Gdata_Gbase_QueryK AZend_Gdata_Gbase_ItemQueryK ?Zend_Gdata_Gbase_ItemFeedK AZend_Gdata_Gbase_ItemEntryK 7Zend_Gdata_Gbase_FeedK- ]Zend_Gdata_Gbase_Extension_BaseAttributeK 9Zend_Gdata_Gbase_EntryK -Zend_Gdata_GappsK AZend_Gdata_Gapps_UserQueryK ?Zend_Gdata_Gapps_UserFeedK AZend_Gdata_Gapps_UserEntryK&
 OZend_Gdata_Gapps_ServiceExceptionK	 9Zend_Gdata_Gapps_QueryK  CZend_Gdata_Gapps_OwnerQueryK AZend_Gdata_Gapps_OwnerFeedK  CZend_Gdata_Gapps_OwnerEntryK# IZend_Gdata_Gapps_NicknameQueryK" GZend_Gdata_Gapps_NicknameFeedK# IZend_Gdata_Gapps_NicknameEntryK! EZend_Gdata_Gapps_MemberQueryK  CZend_Gdata_Gapps_MemberFeedK!  EZend_Gdata_Gapps_MemberEntryK  CZend_Gdata_Gapps_GroupQueryK~ AZend_Gdata_Gapps_GroupFeedK } CZend_Gdata_Gapps_GroupEntryK%| MZend_Gdata_Gapps_Extension_QuotaK({ SZend_Gdata_Gapps_Extension_PropertyK(z SZend_Gdata_Gapps_Extension_NicknameK$y KZend_Gdata_Gapps_Extension_NameK%x MZend_Gdata_Gapps_Extension_LoginK)w UZend_Gdata_Gapps_Extension_EmailListKv 9Zend_Gdata_Gapps_ErrorK-u ]Zend_Gdata_Gapps_EmailListRecipientQueryK,t [Zend_Gdata_Gapps_EmailListRecipientFeedK-s ]Zend_Gdata_Gapps_EmailListRecipientEntryK$r KZend_Gdata_Gapps_EmailListQueryK#q IZend_Gdata_Gapps_EmailListFeedK$p KZend_Gdata_Gapps_EmailListEntryK   Y  p?^5	kF#[2xG



f
6
				h	@	tIa2}S%a5
}Jf4|P%vQ+                          () SZend_Gdata_YouTube_PlaylistListFeedK)( UZend_Gdata_YouTube_PlaylistListEntryK"' GZend_Gdata_YouTube_MediaEntryK!& EZend_Gdata_YouTube_InboxFeedK"% GZend_Gdata_YouTube_InboxEntryK)$ UZend_Gdata_YouTube_Extension_VideoIdK*# WZend_Gdata_YouTube_Extension_UsernameK*" WZend_Gdata_YouTube_Extension_UploadedK'! QZend_Gdata_YouTube_Extension_TokenK(  SZend_Gdata_YouTube_Extension_StatusK, [Zend_Gdata_YouTube_Extension_StatisticsK' QZend_Gdata_YouTube_Extension_StateK( SZend_Gdata_YouTube_Extension_SchoolK- ]Zend_Gdata_YouTube_Extension_ReleaseDateK. _Zend_Gdata_YouTube_Extension_RelationshipK* WZend_Gdata_YouTube_Extension_RecordedK& OZend_Gdata_YouTube_Extension_RacyK- ]Zend_Gdata_YouTube_Extension_QueryStringK) UZend_Gdata_YouTube_Extension_PrivateK* WZend_Gdata_YouTube_Extension_PositionK/ aZend_Gdata_YouTube_Extension_PlaylistTitleK, [Zend_Gdata_YouTube_Extension_PlaylistIdK, [Zend_Gdata_YouTube_Extension_OccupationK) UZend_Gdata_YouTube_Extension_NoEmbedK' QZend_Gdata_YouTube_Extension_MusicK( SZend_Gdata_YouTube_Extension_MoviesK- ]Zend_Gdata_YouTube_Extension_MediaRatingK, [Zend_Gdata_YouTube_Extension_MediaGroupK- ]Zend_Gdata_YouTube_Extension_MediaCreditK. _Zend_Gdata_YouTube_Extension_MediaContentK* WZend_Gdata_YouTube_Extension_LocationK&
 OZend_Gdata_YouTube_Extension_LinkK*	 WZend_Gdata_YouTube_Extension_LastNameK* WZend_Gdata_YouTube_Extension_HometownK) UZend_Gdata_YouTube_Extension_HobbiesK( SZend_Gdata_YouTube_Extension_GenderK+ YZend_Gdata_YouTube_Extension_FirstNameK* WZend_Gdata_YouTube_Extension_DurationK- ]Zend_Gdata_YouTube_Extension_DescriptionK+ YZend_Gdata_YouTube_Extension_CountHintK) UZend_Gdata_YouTube_Extension_ControlK)  UZend_Gdata_YouTube_Extension_CompanyK' QZend_Gdata_YouTube_Extension_BooksK%~ MZend_Gdata_YouTube_Extension_AgeK)} UZend_Gdata_YouTube_Extension_AboutMeK#| IZend_Gdata_YouTube_ContactFeedK${ KZend_Gdata_YouTube_ContactEntryK#z IZend_Gdata_YouTube_CommentFeedK$y KZend_Gdata_YouTube_CommentEntryK$x KZend_Gdata_YouTube_ActivityFeedK%w MZend_Gdata_YouTube_ActivityEntryKv ;Zend_Gdata_SpreadsheetsK*u WZend_Gdata_Spreadsheets_WorksheetFeedK+t YZend_Gdata_Spreadsheets_WorksheetEntryK,s [Zend_Gdata_Spreadsheets_SpreadsheetFeedK-r ]Zend_Gdata_Spreadsheets_SpreadsheetEntryK&q OZend_Gdata_Spreadsheets_ListQueryK%p MZend_Gdata_Spreadsheets_ListFeedK&o OZend_Gdata_Spreadsheets_ListEntryK/n aZend_Gdata_Spreadsheets_Extension_RowCountK-m ]Zend_Gdata_Spreadsheets_Extension_CustomK/l aZend_Gdata_Spreadsheets_Extension_ColCountK+k YZend_Gdata_Spreadsheets_Extension_CellK*j WZend_Gdata_Spreadsheets_DocumentQueryK&i OZend_Gdata_Spreadsheets_CellQueryK%h MZend_Gdata_Spreadsheets_CellFeedK&g OZend_Gdata_Spreadsheets_CellEntryKf -Zend_Gdata_QueryKe /Zend_Gdata_PhotosK d CZend_Gdata_Photos_UserQueryKc AZend_Gdata_Photos_UserFeedK b CZend_Gdata_Photos_UserEntryKa AZend_Gdata_Photos_TagEntryK!` EZend_Gdata_Photos_PhotoQueryK _ CZend_Gdata_Photos_PhotoFeedK!^ EZend_Gdata_Photos_PhotoEntryK&] OZend_Gdata_Photos_Extension_WidthK'\ QZend_Gdata_Photos_Extension_WeightK([ SZend_Gdata_Photos_Extension_VersionK%Z MZend_Gdata_Photos_Extension_UserK*Y WZend_Gdata_Photos_Extension_TimestampK*X WZend_Gdata_Photos_Extension_ThumbnailK%W MZend_Gdata_Photos_Extension_SizeK)V UZend_Gdata_Photos_Extension_RotationK+U YZend_Gdata_Photos_Extension_QuotaLimitK-T ]Zend_Gdata_Photos_Extension_QuotaCurrentK)S UZend_Gdata_Photos_Extension_PositionK(R SZend_Gdata_Photos_Extension_PhotoIdK3Q iZend_Gdata_Photos_Extension_NumPhotosRemainingK   j  xL [0	fJ.y^3_)



i
F
"
 				S	2	jK(sV=+|N1\; lD"TS,xQ                                  7Zend_Loader_ExceptionK3 iZend_Loader_Exception_InvalidArgumentExceptionK# IZend_Loader_ClassMapAutoloaderK" GZend_Loader_AutoloaderFactoryK 9Zend_Loader_AutoloaderK$ KZend_Loader_Autoloader_ResourceK Zend_LdapK )Zend_Ldap_NodeK 7Zend_Ldap_Node_SchemaK#
 IZend_Ldap_Node_Schema_OpenLdapK/	 aZend_Ldap_Node_Schema_ObjectClass_OpenLdapK6 oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectoryK AZend_Ldap_Node_Schema_ItemK1 eZend_Ldap_Node_Schema_AttributeType_OpenLdapK8 sZend_Ldap_Node_Schema_AttributeType_ActiveDirectoryK* WZend_Ldap_Node_Schema_ActiveDirectoryK 9Zend_Ldap_Node_RootDseK$ KZend_Ldap_Node_RootDse_OpenLdapK& OZend_Ldap_Node_RootDse_eDirectoryK+  YZend_Ldap_Node_RootDse_ActiveDirectoryK ?Zend_Ldap_Node_CollectionK$~ KZend_Ldap_Node_ChildrenIteratorK} ;Zend_Ldap_Node_AbstractK| 9Zend_Ldap_Ldif_EncoderK{ -Zend_Ldap_FilterKz ;Zend_Ldap_Filter_StringKy 3Zend_Ldap_Filter_OrKx 5Zend_Ldap_Filter_NotKw 7Zend_Ldap_Filter_MaskKv =Zend_Ldap_Filter_LogicalKu AZend_Ldap_Filter_ExceptionKt 5Zend_Ldap_Filter_AndKs ?Zend_Ldap_Filter_AbstractKr 3Zend_Ldap_ExceptionKq %Zend_Ldap_DnKp 3Zend_Ldap_ConverterK"o GZend_Ldap_Converter_ExceptionKn 5Zend_Ldap_CollectionK*m WZend_Ldap_Collection_Iterator_DefaultKl 3Zend_Ldap_AttributeKk #Zend_LayoutKj 7Zend_Layout_ExceptionK)i UZend_Layout_Controller_Plugin_LayoutK0h cZend_Layout_Controller_Action_Helper_LayoutKg Zend_JsonKf -Zend_Json_ServerKe 5Zend_Json_Server_SmdK!d EZend_Json_Server_Smd_ServiceKc ?Zend_Json_Server_ResponseK#b IZend_Json_Server_Response_HttpKa =Zend_Json_Server_RequestK"` GZend_Json_Server_Request_HttpK_ AZend_Json_Server_ExceptionK^ 9Zend_Json_Server_ErrorK] 9Zend_Json_Server_CacheK\ )Zend_Json_ExprK[ 3Zend_Json_ExceptionKZ /Zend_Json_EncoderKY /Zend_Json_DecoderKX 3Zend_Http_UserAgentK"W GZend_Http_UserAgent_ValidatorKV =Zend_Http_UserAgent_TextK(U SZend_Http_UserAgent_Storage_SessionK.T _Zend_Http_UserAgent_Storage_NonPersistentK*S WZend_Http_UserAgent_Storage_ExceptionKR =Zend_Http_UserAgent_SpamKQ ?Zend_Http_UserAgent_ProbeK P CZend_Http_UserAgent_OfflineKO AZend_Http_UserAgent_MobileKN =Zend_Http_UserAgent_FeedK+M YZend_Http_UserAgent_Features_ExceptionK3L iZend_Http_UserAgent_Features_Adapter_TeraWurflK5K mZend_Http_UserAgent_Features_Adapter_DeviceAtlasK2J gZend_Http_UserAgent_Features_Adapter_BrowscapK"I GZend_Http_UserAgent_ExceptionKH ?Zend_Http_UserAgent_EmailK G CZend_Http_UserAgent_DesktopK F CZend_Http_UserAgent_ConsoleK E CZend_Http_UserAgent_CheckerKD ;Zend_Http_UserAgent_BotK'C QZend_Http_UserAgent_AbstractDeviceKB 1Zend_Http_ResponseKA ?Zend_Http_Response_StreamK@ AZend_Http_Header_SetCookieK0? cZend_Http_Header_Exception_RuntimeExceptionK8> sZend_Http_Header_Exception_InvalidArgumentExceptionK= 3Zend_Http_ExceptionK< 3Zend_Http_CookieJarK; -Zend_Http_CookieK: -Zend_Http_ClientK9 AZend_Http_Client_ExceptionK"8 GZend_Http_Client_Adapter_TestK$7 KZend_Http_Client_Adapter_SocketK#6 IZend_Http_Client_Adapter_ProxyK'5 QZend_Http_Client_Adapter_ExceptionK"4 GZend_Http_Client_Adapter_CurlK3 !Zend_GdataK2 1Zend_Gdata_YouTubeK"1 GZend_Gdata_YouTube_VideoQueryK!0 EZend_Gdata_YouTube_VideoFeedK"/ GZend_Gdata_YouTube_VideoEntryK(. SZend_Gdata_YouTube_UserProfileEntryK(- SZend_Gdata_YouTube_SubscriptionFeedK), UZend_Gdata_YouTube_SubscriptionEntryK)+ UZend_Gdata_YouTube_PlaylistVideoFeedK** WZend_Gdata_YouTube_PlaylistVideoEntryK   y  yT;vU5kJ/zVE)
tT4



n
J
!					z	[	0	dR4pJ#uaC!gJ-xY7kQ5c=hQ?!       ?Zend_Mobile_Push_AbstractK 7Zend_Mobile_ExceptionK
 Zend_MimeK	 )Zend_Mime_PartK /Zend_Mime_MessageK 3Zend_Mime_ExceptionK -Zend_Mime_DecodeK #Zend_MemoryK /Zend_Memory_ValueK 3Zend_Memory_ManagerK 7Zend_Memory_ExceptionK 7Zend_Memory_ContainerK"  GZend_Memory_Container_MovableK! EZend_Memory_Container_LockedK!~ EZend_Memory_AccessControllerK} 3Zend_Measure_WeightK| 3Zend_Measure_VolumeK%{ MZend_Measure_Viscosity_KinematicK#z IZend_Measure_Viscosity_DynamicKy 3Zend_Measure_TorqueKx /Zend_Measure_TimeKw =Zend_Measure_TemperatureKv 1Zend_Measure_SpeedKu 7Zend_Measure_PressureKt 1Zend_Measure_PowerKs 3Zend_Measure_NumberKr 9Zend_Measure_LightnessKq 3Zend_Measure_LengthKp ?Zend_Measure_IlluminationKo 9Zend_Measure_FrequencyKn 1Zend_Measure_ForceKm =Zend_Measure_Flow_VolumeKl 9Zend_Measure_Flow_MoleKk 9Zend_Measure_Flow_MassKj 9Zend_Measure_ExceptionKi 3Zend_Measure_EnergyKh 5Zend_Measure_DensityKg 5Zend_Measure_CurrentK f CZend_Measure_Cooking_WeightK e CZend_Measure_Cooking_VolumeKd =Zend_Measure_CapacitanceKc 3Zend_Measure_BinaryKb /Zend_Measure_AreaKa 1Zend_Measure_AngleK` ?Zend_Measure_AccelerationK_ 7Zend_Measure_AbstractK^ #Zend_MarkupK] 7Zend_Markup_TokenListK\ /Zend_Markup_TokenK*[ WZend_Markup_Renderer_RendererAbstractKZ ?Zend_Markup_Renderer_HtmlK"Y GZend_Markup_Renderer_Html_UrlK#X IZend_Markup_Renderer_Html_ListK"W GZend_Markup_Renderer_Html_ImgK+V YZend_Markup_Renderer_Html_HtmlAbstractK#U IZend_Markup_Renderer_Html_CodeK#T IZend_Markup_Renderer_ExceptionK!S EZend_Markup_Parser_ExceptionKR ?Zend_Markup_Parser_BbcodeKQ 7Zend_Markup_ExceptionKP Zend_MailKO =Zend_Mail_Transport_SmtpK!N EZend_Mail_Transport_SendmailKM =Zend_Mail_Transport_FileK"L GZend_Mail_Transport_ExceptionK!K EZend_Mail_Transport_AbstractKJ /Zend_Mail_StorageK'I QZend_Mail_Storage_Writable_MaildirKH 9Zend_Mail_Storage_Pop3KG 9Zend_Mail_Storage_MboxKF ?Zend_Mail_Storage_MaildirKE 9Zend_Mail_Storage_ImapKD =Zend_Mail_Storage_FolderK"C GZend_Mail_Storage_Folder_MboxK%B MZend_Mail_Storage_Folder_MaildirK A CZend_Mail_Storage_ExceptionK@ AZend_Mail_Storage_AbstractK? ;Zend_Mail_Protocol_SmtpK'> QZend_Mail_Protocol_Smtp_Auth_PlainK'= QZend_Mail_Protocol_Smtp_Auth_LoginK)< UZend_Mail_Protocol_Smtp_Auth_Crammd5K; ;Zend_Mail_Protocol_Pop3K: ;Zend_Mail_Protocol_ImapK!9 EZend_Mail_Protocol_ExceptionK 8 CZend_Mail_Protocol_AbstractK7 )Zend_Mail_PartK6 3Zend_Mail_Part_FileK5 /Zend_Mail_MessageK4 9Zend_Mail_Message_FileK3 3Zend_Mail_ExceptionK2 Zend_LogK 1 CZend_Log_Writer_ZendMonitorK0 9Zend_Log_Writer_SyslogK/ 9Zend_Log_Writer_StreamK. 5Zend_Log_Writer_NullK- 5Zend_Log_Writer_MockK, 5Zend_Log_Writer_MailK+ ;Zend_Log_Writer_FirebugK* 1Zend_Log_Writer_DbK) =Zend_Log_Writer_AbstractK( 9Zend_Log_Formatter_XmlK' ?Zend_Log_Formatter_SimpleK& AZend_Log_Formatter_FirebugK % CZend_Log_Formatter_AbstractK$ =Zend_Log_Filter_SuppressK# =Zend_Log_Filter_PriorityK" ;Zend_Log_Filter_MessageK! =Zend_Log_Filter_AbstractK  1Zend_Log_ExceptionK #Zend_LocaleK -Zend_Locale_MathK =Zend_Locale_Math_PhpMathK AZend_Locale_Math_ExceptionK 1Zend_Locale_FormatK 7Zend_Locale_ExceptionK -Zend_Locale_DataK! EZend_Locale_Data_TranslationK #Zend_LoaderK# IZend_Loader_StandardAutoloaderK =Zend_Loader_PluginLoaderK' QZend_Loader_PluginLoader_ExceptionK   m wE}H%h>}U3fJ-	




`
9
				}	d	Q	'	\7m@{My[>{Y5{c8~T1z_H"                               y =Zend_Pdf_Destination_FitK"x GZend_Pdf_Destination_ExplicitKw )Zend_Pdf_ColorKv 1Zend_Pdf_Color_RgbKu 3Zend_Pdf_Color_HtmlKt =Zend_Pdf_Color_GrayScaleKs 3Zend_Pdf_Color_CmykKr 'Zend_Pdf_CmapKq AZend_Pdf_Cmap_TrimmedTableK!p EZend_Pdf_Cmap_SegmentToDeltaKo AZend_Pdf_Cmap_ByteEncodingK&n OZend_Pdf_Cmap_ByteEncoding_StaticKm +Zend_Pdf_CanvasKl =Zend_Pdf_Canvas_AbstractKk 3Zend_Pdf_AnnotationKj =Zend_Pdf_Annotation_TextKi AZend_Pdf_Annotation_MarkupKh =Zend_Pdf_Annotation_LinkK'g QZend_Pdf_Annotation_FileAttachmentKf +Zend_Pdf_ActionKe 3Zend_Pdf_Action_URIKd ;Zend_Pdf_Action_UnknownKc 7Zend_Pdf_Action_TransKb 9Zend_Pdf_Action_ThreadKa AZend_Pdf_Action_SubmitFormK` 7Zend_Pdf_Action_SoundK _ CZend_Pdf_Action_SetOCGStateK^ ?Zend_Pdf_Action_ResetFormK] ?Zend_Pdf_Action_RenditionK\ 7Zend_Pdf_Action_NamedK[ 7Zend_Pdf_Action_MovieKZ 9Zend_Pdf_Action_LaunchKY AZend_Pdf_Action_JavaScriptKX AZend_Pdf_Action_ImportDataKW 5Zend_Pdf_Action_HideKV 7Zend_Pdf_Action_GoToRKU 7Zend_Pdf_Action_GoToEKT AZend_Pdf_Action_GoTo3DViewKS 5Zend_Pdf_Action_GoToKR )Zend_PaginatorK-Q ]Zend_Paginator_SerializableLimitIteratorK*P WZend_Paginator_ScrollingStyle_SlidingK*O WZend_Paginator_ScrollingStyle_JumpingK*N WZend_Paginator_ScrollingStyle_ElasticK&M OZend_Paginator_ScrollingStyle_AllKL =Zend_Paginator_ExceptionK K CZend_Paginator_Adapter_NullK$J KZend_Paginator_Adapter_IteratorK)I UZend_Paginator_Adapter_DbTableSelectK$H KZend_Paginator_Adapter_DbSelectK!G EZend_Paginator_Adapter_ArrayKF #Zend_OpenIdKE 5Zend_OpenId_ProviderKD ?Zend_OpenId_Provider_UserK&C OZend_OpenId_Provider_User_SessionK!B EZend_OpenId_Provider_StorageK&A OZend_OpenId_Provider_Storage_FileK@ 7Zend_OpenId_ExtensionK? AZend_OpenId_Extension_SregK> 7Zend_OpenId_ExceptionK= 5Zend_OpenId_ConsumerK!< EZend_OpenId_Consumer_StorageK&; OZend_OpenId_Consumer_Storage_FileK: !Zend_OauthK9 -Zend_Oauth_TokenK8 =Zend_Oauth_Token_RequestK'7 QZend_Oauth_Token_AuthorizedRequestK6 ;Zend_Oauth_Token_AccessK+5 YZend_Oauth_Signature_SignatureAbstractK4 =Zend_Oauth_Signature_RsaK#3 IZend_Oauth_Signature_PlaintextK2 ?Zend_Oauth_Signature_HmacK1 +Zend_Oauth_HttpK0 ;Zend_Oauth_Http_UtilityK&/ OZend_Oauth_Http_UserAuthorizationK!. EZend_Oauth_Http_RequestTokenK - CZend_Oauth_Http_AccessTokenK, 5Zend_Oauth_ExceptionK+ 3Zend_Oauth_ConsumerK* /Zend_Oauth_ConfigK) /Zend_Oauth_ClientK( +Zend_NavigationK' 5Zend_Navigation_PageK& =Zend_Navigation_Page_UriK% =Zend_Navigation_Page_MvcK$ ?Zend_Navigation_ExceptionK# ?Zend_Navigation_ContainerK$" KZend_Mobile_Push_Test_ApnsProxyK"! GZend_Mobile_Push_Response_GcmK  7Zend_Mobile_Push_MpnsK" GZend_Mobile_Push_Message_MpnsK( SZend_Mobile_Push_Message_Mpns_ToastK' QZend_Mobile_Push_Message_Mpns_TileK& OZend_Mobile_Push_Message_Mpns_RawK! EZend_Mobile_Push_Message_GcmK' QZend_Mobile_Push_Message_ExceptionK" GZend_Mobile_Push_Message_ApnsK& OZend_Mobile_Push_Message_AbstractK 5Zend_Mobile_Push_GcmK AZend_Mobile_Push_ExceptionK1 eZend_Mobile_Push_Exception_ServerUnavailableK- ]Zend_Mobile_Push_Exception_QuotaExceededK, [Zend_Mobile_Push_Exception_InvalidTopicK, [Zend_Mobile_Push_Exception_InvalidTokenK3 iZend_Mobile_Push_Exception_InvalidRegistrationK. _Zend_Mobile_Push_Exception_InvalidPayloadK0 cZend_Mobile_Push_Exception_InvalidAuthTokenK3 iZend_Mobile_Push_Exception_DeviceQuotaExceededK 7Zend_Mobile_Push_ApnsK   b  f9z]>uU*w^8Y7



}
\
2

					}	\	<	#	rBa*o6t>Q|T/}cE.[0                     $[ KZend_ProgressBar_Adapter_JsPushK$Z KZend_ProgressBar_Adapter_JsPullK'Y QZend_ProgressBar_Adapter_ExceptionK%X MZend_ProgressBar_Adapter_ConsoleKW Zend_PdfK!V EZend_Pdf_UpdateInfoContainerKU -Zend_Pdf_TrailerKT ;Zend_Pdf_Trailer_KeeperKS AZend_Pdf_Trailer_GeneratorKR +Zend_Pdf_TargetKQ )Zend_Pdf_StyleKP 7Zend_Pdf_StringParserKO /Zend_Pdf_ResourceKN ?Zend_Pdf_Resource_UnifiedK#M IZend_Pdf_Resource_ImageFactoryKL ;Zend_Pdf_Resource_ImageK!K EZend_Pdf_Resource_Image_TiffK J CZend_Pdf_Resource_Image_PngK!I EZend_Pdf_Resource_Image_JpegK$H KZend_Pdf_Resource_GraphicsStateKG 9Zend_Pdf_Resource_FontK!F EZend_Pdf_Resource_Font_Type0K"E GZend_Pdf_Resource_Font_SimpleK+D YZend_Pdf_Resource_Font_Simple_StandardK8C sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsK6B oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanK7A qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicK;@ yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicK5? mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldK2> gZend_Pdf_Resource_Font_Simple_Standard_SymbolK<= {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueKA< Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliqueK9; uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldK5: mZend_Pdf_Resource_Font_Simple_Standard_HelveticaK:9 wZend_Pdf_Resource_Font_Simple_Standard_CourierObliqueK>8 Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliqueK77 qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldK36 iZend_Pdf_Resource_Font_Simple_Standard_CourierK)5 UZend_Pdf_Resource_Font_Simple_ParsedK24 gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypeK*3 WZend_Pdf_Resource_Font_FontDescriptorK%2 MZend_Pdf_Resource_Font_ExtractedK#1 IZend_Pdf_Resource_Font_CidFontK,0 [Zend_Pdf_Resource_Font_CidFont_TrueTypeK / CZend_Pdf_Resource_ExtractorK$. KZend_Pdf_Resource_ContentStreamK3- iZend_Pdf_RecursivelyIteratableObjectsContainerK, +Zend_Pdf_ParserK+ 'Zend_Pdf_PageK* -Zend_Pdf_OutlineK) ;Zend_Pdf_Outline_LoadedK( =Zend_Pdf_Outline_CreatedK' /Zend_Pdf_NameTreeK& )Zend_Pdf_ImageK% 'Zend_Pdf_FontK$ ?Zend_Pdf_Filter_RunLengthK # CZend_Pdf_Filter_CompressionK$" KZend_Pdf_Filter_Compression_LzwK&! OZend_Pdf_Filter_Compression_FlateK  =Zend_Pdf_Filter_AsciiHexK ;Zend_Pdf_Filter_Ascii85K" GZend_Pdf_FileParserDataSourceK) UZend_Pdf_FileParserDataSource_StringK' QZend_Pdf_FileParserDataSource_FileK 3Zend_Pdf_FileParserK ?Zend_Pdf_FileParser_ImageK" GZend_Pdf_FileParser_Image_PngK =Zend_Pdf_FileParser_FontK& OZend_Pdf_FileParser_Font_OpenTypeK/ aZend_Pdf_FileParser_Font_OpenType_TrueTypeK 1Zend_Pdf_ExceptionK ;Zend_Pdf_ElementFactoryK" GZend_Pdf_ElementFactory_ProxyK -Zend_Pdf_ElementK ;Zend_Pdf_Element_StringK# IZend_Pdf_Element_String_BinaryK ;Zend_Pdf_Element_StreamK AZend_Pdf_Element_ReferenceK% MZend_Pdf_Element_Reference_TableK' QZend_Pdf_Element_Reference_ContextK ;Zend_Pdf_Element_ObjectK#
 IZend_Pdf_Element_Object_StreamK	 =Zend_Pdf_Element_NumericK 7Zend_Pdf_Element_NullK 7Zend_Pdf_Element_NameK  CZend_Pdf_Element_DictionaryK =Zend_Pdf_Element_BooleanK 9Zend_Pdf_Element_ArrayK 5Zend_Pdf_DestinationK ?Zend_Pdf_Destination_ZoomK! EZend_Pdf_Destination_UnknownK  AZend_Pdf_Destination_NamedK' QZend_Pdf_Destination_FitVerticallyK&~ OZend_Pdf_Destination_FitRectangleK)} UZend_Pdf_Destination_FitHorizontallyK2| gZend_Pdf_Destination_FitBoundingBoxVerticallyK4{ kZend_Pdf_Destination_FitBoundingBoxHorizontallyK(z SZend_Pdf_Destination_FitBoundingBoxK   ]  T3Z=mZ<}[>X8




t
*			h	\(Y]4mL-R#zT*~K"]/          28 gZend_Search_Lucene_Search_Query_InsignificantK*7 WZend_Search_Lucene_Search_Query_FuzzyK*6 WZend_Search_Lucene_Search_Query_EmptyK,5 [Zend_Search_Lucene_Search_Query_BooleanK24 gZend_Search_Lucene_Search_Highlighter_DefaultK:3 wZend_Search_Lucene_Search_BooleanExpressionRecognizerK2 =Zend_Search_Lucene_ProxyK%1 MZend_Search_Lucene_PriorityQueueK/0 aZend_Search_Lucene_Interface_MultiSearcherK%/ MZend_Search_Lucene_MultiSearcherK#. IZend_Search_Lucene_LockManagerK$- KZend_Search_Lucene_Index_WriterK0, cZend_Search_Lucene_Index_TermsPriorityQueueK&+ OZend_Search_Lucene_Index_TermInfoK"* GZend_Search_Lucene_Index_TermK+) YZend_Search_Lucene_Index_SegmentWriterK8( sZend_Search_Lucene_Index_SegmentWriter_StreamWriterK:' wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterK+& YZend_Search_Lucene_Index_SegmentMergerK)% UZend_Search_Lucene_Index_SegmentInfoK'$ QZend_Search_Lucene_Index_FieldInfoK(# SZend_Search_Lucene_Index_DocsFilterK." _Zend_Search_Lucene_Index_DictionaryLoaderK!! EZend_Search_Lucene_FSMActionK  9Zend_Search_Lucene_FSMK =Zend_Search_Lucene_FieldK! EZend_Search_Lucene_ExceptionK  CZend_Search_Lucene_DocumentK% MZend_Search_Lucene_Document_XlsxK% MZend_Search_Lucene_Document_PptxK( SZend_Search_Lucene_Document_OpenXmlK% MZend_Search_Lucene_Document_HtmlK* WZend_Search_Lucene_Document_ExceptionK% MZend_Search_Lucene_Document_DocxK, [Zend_Search_Lucene_Analysis_TokenFilterK6 oZend_Search_Lucene_Analysis_TokenFilter_StopWordsK7 qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsK: wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8K6 oZend_Search_Lucene_Analysis_TokenFilter_LowerCaseK& OZend_Search_Lucene_Analysis_TokenK) UZend_Search_Lucene_Analysis_AnalyzerK0 cZend_Search_Lucene_Analysis_Analyzer_CommonK8 sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumKI Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitiveK5 mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8KF Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitiveK8
 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumKI	 Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitiveK5 mZend_Search_Lucene_Analysis_Analyzer_Common_TextKF Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiveK 7Zend_Search_ExceptionK -Zend_Rest_ServerK AZend_Rest_Server_ExceptionK +Zend_Rest_RouteK 3Zend_Rest_ExceptionK 5Zend_Rest_ControllerK  -Zend_Rest_ClientK ;Zend_Rest_Client_ResultK&~ OZend_Rest_Client_Result_ExceptionK} AZend_Rest_Client_ExceptionK| 'Zend_RegistryK{ =Zend_Reflection_PropertyKz ?Zend_Reflection_ParameterKy 9Zend_Reflection_MethodKx =Zend_Reflection_FunctionKw 5Zend_Reflection_FileKv ?Zend_Reflection_ExtensionKu ?Zend_Reflection_ExceptionKt =Zend_Reflection_DocblockK!s EZend_Reflection_Docblock_TagK(r SZend_Reflection_Docblock_Tag_ReturnK'q QZend_Reflection_Docblock_Tag_ParamKp 7Zend_Reflection_ClassKo !Zend_QueueKn 9Zend_Queue_Stomp_FrameKm ;Zend_Queue_Stomp_ClientK'l QZend_Queue_Stomp_Client_ConnectionKk 1Zend_Queue_MessageK#j IZend_Queue_Message_PlatformJobK i CZend_Queue_Message_IteratorKh 5Zend_Queue_ExceptionK(g SZend_Queue_Adapter_PlatformJobQueueKf ;Zend_Queue_Adapter_NullK!e EZend_Queue_Adapter_MemcacheqKd 7Zend_Queue_Adapter_DbK c CZend_Queue_Adapter_Db_QueueK"b GZend_Queue_Adapter_Db_MessageKa =Zend_Queue_Adapter_ArrayK'` QZend_Queue_Adapter_AdapterAbstractK _ CZend_Queue_Adapter_ActivemqK^ -Zend_ProgressBarK] AZend_ProgressBar_ExceptionK\ =Zend_ProgressBar_AdapterK   Z  c&Z)e8}FW$



e
8
			z	_	/	
oB`B`/k@!d6[)`.\-                                      ( SZend_Service_Amazon_EditorialReviewK ;Zend_Service_Amazon_Ec2K+ YZend_Service_Amazon_Ec2_SecuritygroupsK% MZend_Service_Amazon_Ec2_ResponseK# IZend_Service_Amazon_Ec2_RegionK$ KZend_Service_Amazon_Ec2_KeypairK% MZend_Service_Amazon_Ec2_InstanceK- ]Zend_Service_Amazon_Ec2_Instance_WindowsK.
 _Zend_Service_Amazon_Ec2_Instance_ReservedK"	 GZend_Service_Amazon_Ec2_ImageK& OZend_Service_Amazon_Ec2_ExceptionK& OZend_Service_Amazon_Ec2_ElasticipK  CZend_Service_Amazon_Ec2_EbsK' QZend_Service_Amazon_Ec2_CloudWatchK. _Zend_Service_Amazon_Ec2_AvailabilityzonesK% MZend_Service_Amazon_Ec2_AbstractK' QZend_Service_Amazon_CustomerReviewK' QZend_Service_Amazon_AuthenticationK*  WZend_Service_Amazon_Authentication_V2K* WZend_Service_Amazon_Authentication_V1K*~ WZend_Service_Amazon_Authentication_S3K1} eZend_Service_Amazon_Authentication_ExceptionK$| KZend_Service_Amazon_AccessoriesK!{ EZend_Service_Amazon_AbstractKz 5Zend_Service_AkismetKy 7Zend_Service_AbstractKx 9Zend_Server_ReflectionK'w QZend_Server_Reflection_ReturnValueK%v MZend_Server_Reflection_PrototypeK%u MZend_Server_Reflection_ParameterK t CZend_Server_Reflection_NodeK"s GZend_Server_Reflection_MethodK$r KZend_Server_Reflection_FunctionK-q ]Zend_Server_Reflection_Function_AbstractK%p MZend_Server_Reflection_ExceptionK!o EZend_Server_Reflection_ClassK!n EZend_Server_Method_PrototypeK!m EZend_Server_Method_ParameterK"l GZend_Server_Method_DefinitionK k CZend_Server_Method_CallbackKj 7Zend_Server_ExceptionKi 9Zend_Server_DefinitionKh /Zend_Server_CacheKg 5Zend_Server_AbstractKf +Zend_SerializerKe ?Zend_Serializer_ExceptionK!d EZend_Serializer_Adapter_WddxK)c UZend_Serializer_Adapter_PythonPickleK)b UZend_Serializer_Adapter_PhpSerializeK$a KZend_Serializer_Adapter_PhpCodeK!` EZend_Serializer_Adapter_JsonK%_ MZend_Serializer_Adapter_IgbinaryK!^ EZend_Serializer_Adapter_Amf3K!] EZend_Serializer_Adapter_Amf0K,\ [Zend_Serializer_Adapter_AdapterAbstractK[ 1Zend_Search_LuceneK0Z cZend_Search_Lucene_TermStreamsPriorityQueueK$Y KZend_Search_Lucene_Storage_FileK+X YZend_Search_Lucene_Storage_File_MemoryK/W aZend_Search_Lucene_Storage_File_FilesystemK)V UZend_Search_Lucene_Storage_DirectoryK4U kZend_Search_Lucene_Storage_Directory_FilesystemK%T MZend_Search_Lucene_Search_WeightK*S WZend_Search_Lucene_Search_Weight_TermK,R [Zend_Search_Lucene_Search_Weight_PhraseK/Q aZend_Search_Lucene_Search_Weight_MultiTermK+P YZend_Search_Lucene_Search_Weight_EmptyK-O ]Zend_Search_Lucene_Search_Weight_BooleanK)N UZend_Search_Lucene_Search_SimilarityK1M eZend_Search_Lucene_Search_Similarity_DefaultK)L UZend_Search_Lucene_Search_QueryTokenK3K iZend_Search_Lucene_Search_QueryParserExceptionK1J eZend_Search_Lucene_Search_QueryParserContextK*I WZend_Search_Lucene_Search_QueryParserK)H UZend_Search_Lucene_Search_QueryLexerK'G QZend_Search_Lucene_Search_QueryHitK)F UZend_Search_Lucene_Search_QueryEntryK.E _Zend_Search_Lucene_Search_QueryEntry_TermK2D gZend_Search_Lucene_Search_QueryEntry_SubqueryK0C cZend_Search_Lucene_Search_QueryEntry_PhraseK$B KZend_Search_Lucene_Search_QueryK-A ]Zend_Search_Lucene_Search_Query_WildcardK)@ UZend_Search_Lucene_Search_Query_TermK*? WZend_Search_Lucene_Search_Query_RangeK2> gZend_Search_Lucene_Search_Query_PreprocessingK7= qZend_Search_Lucene_Search_Query_Preprocessing_TermK9< uZend_Search_Lucene_Search_Query_Preprocessing_PhraseK8; sZend_Search_Lucene_Search_Query_Preprocessing_FuzzyK+: YZend_Search_Lucene_Search_Query_PhraseK.9 _Zend_Search_Lucene_Search_Query_MultiTermK   A  mK&pEj@ kA"m7

y
1			l	%X(z,%{pSN4                                                                                     RS %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequestKYR 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequestKdQ IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequestKQP #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequestKOO Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequestKUN +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequestKUM +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequestKVL -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequestKaK CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequestKZJ 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequestKTI )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequestKRH %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequestKYG 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequestKQF #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequestKQE #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequestKaD CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequestKNC Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformationKLB Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalanceKJA Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPoolK-@ ]Zend_Service_DeveloperGarden_LocalSearchK>? Zend_Service_DeveloperGarden_LocalSearch_SearchParametersK7> qZend_Service_DeveloperGarden_LocalSearch_ExceptionK,= [Zend_Service_DeveloperGarden_IpLocationK6< oZend_Service_DeveloperGarden_IpLocation_IpAddressK+; YZend_Service_DeveloperGarden_ExceptionK,: [Zend_Service_DeveloperGarden_CredentialK09 cZend_Service_DeveloperGarden_ConferenceCallKC8 Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatusKC7 Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetailK<6 {Zend_Service_DeveloperGarden_ConferenceCall_ParticipantK:5 wZend_Service_DeveloperGarden_ConferenceCall_ExceptionKD4 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceScheduleKB3 Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetailKC2 Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccountK-1 ]Zend_Service_DeveloperGarden_Client_SoapK20 gZend_Service_DeveloperGarden_Client_ExceptionK7/ qZend_Service_DeveloperGarden_Client_ClientAbstractK1. eZend_Service_DeveloperGarden_BaseUserServiceKA- Zend_Service_DeveloperGarden_BaseUserService_AccountBalanceK, 9Zend_Service_DeliciousK&+ OZend_Service_Delicious_SimplePostK$* KZend_Service_Delicious_PostListK ) CZend_Service_Delicious_PostK%( MZend_Service_Delicious_ExceptionK ' CZend_Service_AudioscrobblerK& 3Zend_Service_AmazonK% ;Zend_Service_Amazon_SqsK&$ OZend_Service_Amazon_Sqs_ExceptionK!# EZend_Service_Amazon_SimpleDbK*" WZend_Service_Amazon_SimpleDb_ResponseK&! OZend_Service_Amazon_SimpleDb_PageK+  YZend_Service_Amazon_SimpleDb_ExceptionK+ YZend_Service_Amazon_SimpleDb_AttributeK' QZend_Service_Amazon_SimilarProductK 9Zend_Service_Amazon_S3K" GZend_Service_Amazon_S3_StreamK% MZend_Service_Amazon_S3_ExceptionK" GZend_Service_Amazon_ResultSetK ?Zend_Service_Amazon_QueryK! EZend_Service_Amazon_OfferSetK ?Zend_Service_Amazon_OfferK& OZend_Service_Amazon_ListmaniaListK =Zend_Service_Amazon_ItemK ?Zend_Service_Amazon_ImageK" GZend_Service_Amazon_ExceptionK   / y CYDq*N

{
-			FtmS?{M3  y                   [ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseTypeKW /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseK[  7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseTypeKW /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseK\~ 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseTypeKX} 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseKg| OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseTypeKc{ GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseK`z AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseTypeK\y 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseKZx 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseTypeKVw -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseKXv 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseTypeKTu )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseK_t ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseTypeK[s 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseKWr /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseTypeKSq 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseKQp #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstractKSo 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponseKJn Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseTypeKgm OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseTypeKcl GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseKWk /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponseKUj +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponseKSi 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponseK3h iZend_Service_DeveloperGarden_Response_BaseTypeKJg Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstractKCf Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCallKGe Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequencedK=d }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallKAc Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatusKAb Zend_Service_DeveloperGarden_Request_SmsValidation_ValidateKNa Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeywordKC` Zend_Service_DeveloperGarden_Request_SmsValidation_InvalidateKL_ Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbersKB^ Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstractK9] uZend_Service_DeveloperGarden_Request_SendSms_SendSMSK>\ Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMSK9[ uZend_Service_DeveloperGarden_Request_RequestAbstractKIZ Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequestKEY Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequestK3X iZend_Service_DeveloperGarden_Request_ExceptionKRW %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequestKYV 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequestKdU IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequestKQT #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequestK   8  R2b*K 

l
			>D]gz/<d5I{B               ): UZend_Service_Ebay_Finding_Error_DataK-9 ]Zend_Service_Ebay_Finding_Error_Data_SetK'8 QZend_Service_Ebay_Finding_CategoryK17 eZend_Service_Ebay_Finding_Category_HistogramK56 mZend_Service_Ebay_Finding_Category_Histogram_SetK;5 yZend_Service_Ebay_Finding_Category_Histogram_ContainerK%4 MZend_Service_Ebay_Finding_AspectK)3 UZend_Service_Ebay_Finding_Aspect_SetK52 mZend_Service_Ebay_Finding_Aspect_Histogram_ValueK91 uZend_Service_Ebay_Finding_Aspect_Histogram_Value_SetK90 uZend_Service_Ebay_Finding_Aspect_Histogram_ContainerK'/ QZend_Service_Ebay_Finding_AbstractK . CZend_Service_Ebay_ExceptionK- AZend_Service_Ebay_AbstractK+, YZend_Service_DeveloperGarden_VoiceCallK/+ aZend_Service_DeveloperGarden_SmsValidationK)* UZend_Service_DeveloperGarden_SendSmsK5) mZend_Service_DeveloperGarden_SecurityTokenServerK;( yZend_Service_DeveloperGarden_SecurityTokenServer_CacheKK' Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstractKL& Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponseKP% !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponseKG$ Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponseKJ# Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponseKK" Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2ResponseKL! Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponseKI  Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumberKW /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponseKJ Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponseKU +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponseKC Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponseKC Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstractKH Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponseKU +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponseKQ #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponseKI Zend_Service_DeveloperGarden_Response_SecurityTokenServer_ExceptionK; yZend_Service_DeveloperGarden_Response_ResponseAbstractKO Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseTypeKK Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseKA Zend_Service_DeveloperGarden_Response_IpLocation_RegionTypeKK Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseTypeKG Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseKL Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationTypeKI Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesTypeK> Zend_Service_DeveloperGarden_Response_IpLocation_CityTypeK4 kZend_Service_DeveloperGarden_Response_ExceptionKT )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponseK[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponseKf
 MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponseKS	 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponseKT )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponseK[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponseKf MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponseKS 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponseKU +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseTypeKQ #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseK   X  vCtBX)vP4uF



c
2
			t	?	\4vQ'b2J%j>k9~W- yN                              # IZend_Service_Technorati_WeblogK" GZend_Service_Technorati_UtilsK* WZend_Service_Technorati_TagsResultSetK' QZend_Service_Technorati_TagsResultK) UZend_Service_Technorati_TagResultSetK& OZend_Service_Technorati_TagResultK, [Zend_Service_Technorati_SearchResultSetK) UZend_Service_Technorati_SearchResultK&
 OZend_Service_Technorati_ResultSetK#	 IZend_Service_Technorati_ResultK* WZend_Service_Technorati_KeyInfoResultK* WZend_Service_Technorati_GetInfoResultK& OZend_Service_Technorati_ExceptionK1 eZend_Service_Technorati_DailyCountsResultSetK. _Zend_Service_Technorati_DailyCountsResultK, [Zend_Service_Technorati_CosmosResultSetK) UZend_Service_Technorati_CosmosResultK+ YZend_Service_Technorati_BlogInfoResultK#  IZend_Service_Technorati_AuthorK ;Zend_Service_StrikeIronK(~ SZend_Service_StrikeIron_ZipCodeInfoK2} gZend_Service_StrikeIron_USAddressVerificationK-| ]Zend_Service_StrikeIron_SalesUseTaxBasicK&{ OZend_Service_StrikeIron_ExceptionK&z OZend_Service_StrikeIron_DecoratorK!y EZend_Service_StrikeIron_BaseK;x yZend_Service_SqlAzure_Management_ServiceEntityAbstractK4w kZend_Service_SqlAzure_Management_ServerInstanceK:v wZend_Service_SqlAzure_Management_FirewallRuleInstanceK/u aZend_Service_SqlAzure_Management_ExceptionK,t [Zend_Service_SqlAzure_Management_ClientK$s KZend_Service_SqlAzure_ExceptionKr ;Zend_Service_SlideShareK&q OZend_Service_SlideShare_SlideShowK&p OZend_Service_SlideShare_ExceptionK%o MZend_Service_ShortUrl_TinyUrlComK&n OZend_Service_ShortUrl_MetamarkNetK!m EZend_Service_ShortUrl_JdemCzKl AZend_Service_ShortUrl_IsGdK$k KZend_Service_ShortUrl_ExceptionK j CZend_Service_ShortUrl_BitLyK,i [Zend_Service_ShortUrl_AbstractShortenerKh 9Zend_Service_ReCaptchaK$g KZend_Service_ReCaptcha_ResponseK$f KZend_Service_ReCaptcha_MailHideK.e _Zend_Service_ReCaptcha_MailHide_ExceptionK%d MZend_Service_ReCaptcha_ExceptionK#c IZend_Service_Rackspace_ServersK5b mZend_Service_Rackspace_Servers_SharedIpGroupListK1a eZend_Service_Rackspace_Servers_SharedIpGroupK.` _Zend_Service_Rackspace_Servers_ServerListK*_ WZend_Service_Rackspace_Servers_ServerK-^ ]Zend_Service_Rackspace_Servers_ImageListK)] UZend_Service_Rackspace_Servers_ImageK-\ ]Zend_Service_Rackspace_Servers_ExceptionK![ EZend_Service_Rackspace_FilesK,Z [Zend_Service_Rackspace_Files_ObjectListK(Y SZend_Service_Rackspace_Files_ObjectK+X YZend_Service_Rackspace_Files_ExceptionK/W aZend_Service_Rackspace_Files_ContainerListK+V YZend_Service_Rackspace_Files_ContainerK%U MZend_Service_Rackspace_ExceptionK$T KZend_Service_Rackspace_AbstractKS 7Zend_Service_LiveDocxK$R KZend_Service_LiveDocx_MailMergeK$Q KZend_Service_LiveDocx_ExceptionKP 3Zend_Service_FlickrK"O GZend_Service_Flickr_ResultSetKN AZend_Service_Flickr_ResultKM ?Zend_Service_Flickr_ImageKL 9Zend_Service_ExceptionKK ?Zend_Service_Ebay_FindingK)J UZend_Service_Ebay_Finding_StorefrontK+I YZend_Service_Ebay_Finding_ShippingInfoK+H YZend_Service_Ebay_Finding_Set_AbstractK,G [Zend_Service_Ebay_Finding_SellingStatusK)F UZend_Service_Ebay_Finding_SellerInfoK,E [Zend_Service_Ebay_Finding_Search_ResultK*D WZend_Service_Ebay_Finding_Search_ItemK.C _Zend_Service_Ebay_Finding_Search_Item_SetK0B cZend_Service_Ebay_Finding_Response_KeywordsK-A ]Zend_Service_Ebay_Finding_Response_ItemsK2@ gZend_Service_Ebay_Finding_Response_HistogramsK0? cZend_Service_Ebay_Finding_Response_AbstractK/> aZend_Service_Ebay_Finding_PaginationOutputK*= WZend_Service_Ebay_Finding_ListingInfoK(< SZend_Service_Ebay_Finding_ExceptionK,; [Zend_Service_Ebay_Finding_Error_MessageK   A  b)P=WVp0


E				N	 ]d-_J[yCh0T                                 ,S [Zend_Service_WindowsAzure_Storage_TableK<R {Zend_Service_WindowsAzure_Storage_StorageEntityAbstractK7Q qZend_Service_WindowsAzure_Storage_SignedIdentifierK3P iZend_Service_WindowsAzure_Storage_QueueMessageK4O kZend_Service_WindowsAzure_Storage_QueueInstanceK,N [Zend_Service_WindowsAzure_Storage_QueueK9M uZend_Service_WindowsAzure_Storage_PageRegionInstanceK4L kZend_Service_WindowsAzure_Storage_LeaseInstanceK9K uZend_Service_WindowsAzure_Storage_DynamicTableEntityK3J iZend_Service_WindowsAzure_Storage_BlobInstanceK4I kZend_Service_WindowsAzure_Storage_BlobContainerK+H YZend_Service_WindowsAzure_Storage_BlobK2G gZend_Service_WindowsAzure_Storage_Blob_StreamK;F yZend_Service_WindowsAzure_Storage_BatchStorageAbstractK,E [Zend_Service_WindowsAzure_Storage_BatchK-D ]Zend_Service_WindowsAzure_SessionHandlerK>C Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstractK1B eZend_Service_WindowsAzure_RetryPolicy_RetryNK2A gZend_Service_WindowsAzure_RetryPolicy_NoRetryK4@ kZend_Service_WindowsAzure_RetryPolicy_ExceptionKH? Zend_Service_WindowsAzure_Management_SubscriptionOperationInstanceKA> Zend_Service_WindowsAzure_Management_StorageServiceInstanceK@= Zend_Service_WindowsAzure_Management_ServiceEntityAbstractKB< Zend_Service_WindowsAzure_Management_OperationStatusInstanceKB; Zend_Service_WindowsAzure_Management_OperatingSystemInstanceKH: Zend_Service_WindowsAzure_Management_OperatingSystemFamilyInstanceK:9 wZend_Service_WindowsAzure_Management_LocationInstanceK@8 Zend_Service_WindowsAzure_Management_HostedServiceInstanceK37 iZend_Service_WindowsAzure_Management_ExceptionK<6 {Zend_Service_WindowsAzure_Management_DeploymentInstanceK05 cZend_Service_WindowsAzure_Management_ClientK=4 }Zend_Service_WindowsAzure_Management_CertificateInstanceK@3 Zend_Service_WindowsAzure_Management_AffinityGroupInstanceK62 oZend_Service_WindowsAzure_Log_Writer_WindowsAzureK91 uZend_Service_WindowsAzure_Log_Formatter_WindowsAzureK(0 SZend_Service_WindowsAzure_ExceptionKJ/ Zend_Service_WindowsAzure_Diagnostics_PerformanceCounterSubscriptionK2. gZend_Service_WindowsAzure_Diagnostics_ManagerK3- iZend_Service_WindowsAzure_Diagnostics_LogLevelK4, kZend_Service_WindowsAzure_Diagnostics_ExceptionKN+ Zend_Service_WindowsAzure_Diagnostics_DirectoryConfigurationSubscriptionKH* Zend_Service_WindowsAzure_Diagnostics_ConfigurationWindowsEventLogKL) Zend_Service_WindowsAzure_Diagnostics_ConfigurationPerformanceCountersKK( Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstractK<' {Zend_Service_WindowsAzure_Diagnostics_ConfigurationLogsKA& Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstanceKD% 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDirectoriesKU$ +Zend_Service_WindowsAzure_Diagnostics_ConfigurationDiagnosticInfrastructureLogsKD# 	Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSourcesK8" sZend_Service_WindowsAzure_Credentials_SharedKeyLiteK4! kZend_Service_WindowsAzure_Credentials_SharedKeyKA  Zend_Service_WindowsAzure_Credentials_SharedAccessSignatureK4 kZend_Service_WindowsAzure_Credentials_ExceptionK> Zend_Service_WindowsAzure_Credentials_CredentialsAbstractK2 gZend_Service_WindowsAzure_CommandLine_StorageK2 gZend_Service_WindowsAzure_CommandLine_ServiceK !ScaffolderKW /Zend_Service_WindowsAzure_CommandLine_PackageScaffolder_PackageScaffolderAbstractK2 gZend_Service_WindowsAzure_CommandLine_PackageKD 	Zend_Service_WindowsAzure_CommandLine_GetAsynchronousOperationK5 mZend_Service_WindowsAzure_CommandLine_DeploymentK6 oZend_Service_WindowsAzure_CommandLine_CertificateK 5Zend_Service_TwitterK# IZend_Service_Twitter_ExceptionK ;Zend_Service_TechnoratiK   e  W-`9iG"iK,dO&




l
I
*
				l	8	iG.	c>S$jBQ*mC'^< ~V)                                          *8 WZend_Tool_Framework_Action_RepositoryK)7 UZend_Tool_Framework_Action_ExceptionK$6 KZend_Tool_Framework_Action_BaseK5 'Zend_TimeSyncK4 1Zend_TimeSync_SntpK3 9Zend_TimeSync_ProtocolK2 /Zend_TimeSync_NtpK1 ;Zend_TimeSync_ExceptionK0 +Zend_Text_TableK/ 3Zend_Text_Table_RowK. ?Zend_Text_Table_ExceptionK&- OZend_Text_Table_Decorator_UnicodeK$, KZend_Text_Table_Decorator_AsciiK+ 9Zend_Text_Table_ColumnK* 3Zend_Text_MultiByteK) -Zend_Text_FigletK( AZend_Text_Figlet_ExceptionK' 3Zend_Text_ExceptionK&& OZend_Test_PHPUnit_Db_SimpleTesterK,% [Zend_Test_PHPUnit_Db_Operation_TruncateK*$ WZend_Test_PHPUnit_Db_Operation_InsertK-# ]Zend_Test_PHPUnit_Db_Operation_DeleteAllK*" WZend_Test_PHPUnit_Db_Metadata_GenericK#! IZend_Test_PHPUnit_Db_ExceptionK,  [Zend_Test_PHPUnit_Db_DataSet_QueryTableK. _Zend_Test_PHPUnit_Db_DataSet_QueryDataSetK0 cZend_Test_PHPUnit_Db_DataSet_DbTableDataSetK) UZend_Test_PHPUnit_Db_DataSet_DbTableK* WZend_Test_PHPUnit_Db_DataSet_DbRowsetK$ KZend_Test_PHPUnit_Db_ConnectionK' QZend_Test_PHPUnit_DatabaseTestCaseK) UZend_Test_PHPUnit_ControllerTestCaseK0 cZend_Test_PHPUnit_Constraint_ResponseHeaderK* WZend_Test_PHPUnit_Constraint_RedirectK+ YZend_Test_PHPUnit_Constraint_ExceptionK* WZend_Test_PHPUnit_Constraint_DomQueryK 7Zend_Test_DbStatementK 3Zend_Test_DbAdapterK /Zend_Tag_ItemListK 'Zend_Tag_ItemK 1Zend_Tag_ExceptionK )Zend_Tag_CloudK =Zend_Tag_Cloud_ExceptionK! EZend_Tag_Cloud_Decorator_TagK% MZend_Tag_Cloud_Decorator_HtmlTagK' QZend_Tag_Cloud_Decorator_HtmlCloudK'
 QZend_Tag_Cloud_Decorator_ExceptionK#	 IZend_Tag_Cloud_Decorator_CloudK! EZend_Stdlib_SplPriorityQueueK -SplPriorityQueueK ?Zend_Stdlib_PriorityQueueK3 iZend_Stdlib_Exception_InvalidCallbackExceptionK  CZend_Stdlib_CallbackHandlerK )Zend_Soap_WsdlK/ aZend_Soap_Wsdl_Strategy_DefaultComplexTypeK& OZend_Soap_Wsdl_Strategy_CompositeK0  cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequenceK/ aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplexK$~ KZend_Soap_Wsdl_Strategy_AnyTypeK%} MZend_Soap_Wsdl_Strategy_AbstractK| =Zend_Soap_Wsdl_ExceptionK{ -Zend_Soap_ServerKz 9Zend_Soap_Server_ProxyKy AZend_Soap_Server_ExceptionKx -Zend_Soap_ClientKw 9Zend_Soap_Client_LocalKv AZend_Soap_Client_ExceptionKu ;Zend_Soap_Client_DotNetKt ;Zend_Soap_Client_CommonKs 9Zend_Soap_AutoDiscoverK%r MZend_Soap_AutoDiscover_ExceptionKq %Zend_SessionK)p UZend_Session_Validator_HttpUserAgentK$o KZend_Session_Validator_AbstractK'n QZend_Session_SaveHandler_ExceptionK%m MZend_Session_SaveHandler_DbTableKl 9Zend_Session_NamespaceKk 9Zend_Session_ExceptionKj 7Zend_Session_AbstractKi 1Zend_Service_YahooK$h KZend_Service_Yahoo_WebResultSetK!g EZend_Service_Yahoo_WebResultK&f OZend_Service_Yahoo_VideoResultSetK#e IZend_Service_Yahoo_VideoResultK!d EZend_Service_Yahoo_ResultSetKc ?Zend_Service_Yahoo_ResultK)b UZend_Service_Yahoo_PageDataResultSetK&a OZend_Service_Yahoo_PageDataResultK%` MZend_Service_Yahoo_NewsResultSetK"_ GZend_Service_Yahoo_NewsResultK&^ OZend_Service_Yahoo_LocalResultSetK#] IZend_Service_Yahoo_LocalResultK+\ YZend_Service_Yahoo_InlinkDataResultSetK([ SZend_Service_Yahoo_InlinkDataResultK&Z OZend_Service_Yahoo_ImageResultSetK#Y IZend_Service_Yahoo_ImageResultKX =Zend_Service_Yahoo_ImageK&W OZend_Service_WindowsAzure_StorageK4V kZend_Service_WindowsAzure_Storage_TableInstanceK7U qZend_Service_WindowsAzure_Storage_TableEntityQueryK2T gZend_Service_WindowsAzure_Storage_TableEntityK   K  p:u-Q9[,


u
F
				Z	0	tE _*LP#i2 X%WP"                                . _Zend_Tool_Project_Context_Zf_HtaccessFileK0 cZend_Tool_Project_Context_Zf_FormsDirectoryK* WZend_Tool_Project_Context_Zf_FormFileK/  aZend_Tool_Project_Context_Zf_DocsDirectoryK- ]Zend_Tool_Project_Context_Zf_DbTableFileK2~ gZend_Tool_Project_Context_Zf_DbTableDirectoryK/} aZend_Tool_Project_Context_Zf_DataDirectoryK6| oZend_Tool_Project_Context_Zf_ControllersDirectoryK0{ cZend_Tool_Project_Context_Zf_ControllerFileK2z gZend_Tool_Project_Context_Zf_ConfigsDirectoryK,y [Zend_Tool_Project_Context_Zf_ConfigFileK0x cZend_Tool_Project_Context_Zf_CacheDirectoryK/w aZend_Tool_Project_Context_Zf_BootstrapFileK6v oZend_Tool_Project_Context_Zf_ApplicationDirectoryK7u qZend_Tool_Project_Context_Zf_ApplicationConfigFileK/t aZend_Tool_Project_Context_Zf_ApisDirectoryK.s _Zend_Tool_Project_Context_Zf_ActionMethodK3r iZend_Tool_Project_Context_Zf_AbstractClassFileK@q Zend_Tool_Project_Context_System_ProjectProvidersDirectoryK8p sZend_Tool_Project_Context_System_ProjectProfileFileK6o oZend_Tool_Project_Context_System_ProjectDirectoryK)n UZend_Tool_Project_Context_RepositoryK.m _Zend_Tool_Project_Context_Filesystem_FileK3l iZend_Tool_Project_Context_Filesystem_DirectoryK2k gZend_Tool_Project_Context_Filesystem_AbstractK(j SZend_Tool_Project_Context_ExceptionK-i ]Zend_Tool_Project_Context_Content_EngineK3h iZend_Tool_Project_Context_Content_Engine_PhtmlK;g yZend_Tool_Project_Context_Content_Engine_CodeGeneratorK0f cZend_Tool_Framework_System_Provider_VersionK0e cZend_Tool_Framework_System_Provider_PhpinfoK1d eZend_Tool_Framework_System_Provider_ManifestK/c aZend_Tool_Framework_System_Provider_ConfigK(b SZend_Tool_Framework_System_ManifestK-a ]Zend_Tool_Framework_System_Action_DeleteK-` ]Zend_Tool_Framework_System_Action_CreateK!_ EZend_Tool_Framework_RegistryK+^ YZend_Tool_Framework_Registry_ExceptionK+] YZend_Tool_Framework_Provider_SignatureK,\ [Zend_Tool_Framework_Provider_RepositoryK+[ YZend_Tool_Framework_Provider_ExceptionK*Z WZend_Tool_Framework_Provider_AbstractK&Y OZend_Tool_Framework_Metadata_ToolK)X UZend_Tool_Framework_Metadata_DynamicK'W QZend_Tool_Framework_Metadata_BasicK,V [Zend_Tool_Framework_Manifest_RepositoryK2U gZend_Tool_Framework_Manifest_ProviderMetadataK*T WZend_Tool_Framework_Manifest_MetadataK+S YZend_Tool_Framework_Manifest_ExceptionK0R cZend_Tool_Framework_Manifest_ActionMetadataK1Q eZend_Tool_Framework_Loader_IncludePathLoaderKJP Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIteratorK+O YZend_Tool_Framework_Loader_BasicLoaderK(N SZend_Tool_Framework_Loader_AbstractK"M GZend_Tool_Framework_ExceptionK'L QZend_Tool_Framework_Client_StorageK1K eZend_Tool_Framework_Client_Storage_DirectoryK(J SZend_Tool_Framework_Client_ResponseKDI 	Zend_Tool_Framework_Client_Response_ContentDecorator_SeparatorK'H QZend_Tool_Framework_Client_RequestK(G SZend_Tool_Framework_Client_ManifestK9F uZend_Tool_Framework_Client_Interactive_InputResponseK8E sZend_Tool_Framework_Client_Interactive_InputRequestK8D sZend_Tool_Framework_Client_Interactive_InputHandlerK)C UZend_Tool_Framework_Client_ExceptionK'B QZend_Tool_Framework_Client_ConsoleKDA 	Zend_Tool_Framework_Client_Console_ResponseDecorator_IndentionKD@ 	Zend_Tool_Framework_Client_Console_ResponseDecorator_ColorizerKC? Zend_Tool_Framework_Client_Console_ResponseDecorator_BlockizeKF> Zend_Tool_Framework_Client_Console_ResponseDecorator_AlignCenterK0= cZend_Tool_Framework_Client_Console_ManifestK2< gZend_Tool_Framework_Client_Console_HelpSystemK6; oZend_Tool_Framework_Client_Console_ArgumentParserK&: OZend_Tool_Framework_Client_ConfigK(9 SZend_Tool_Framework_Client_AbstractK   L  X"U |ATm+


`
			]	(k7HfBk6V'tL"xM[8              !O EZend_Translate_Adapter_XliffKN AZend_Translate_Adapter_TmxKM AZend_Translate_Adapter_TbxKL ?Zend_Translate_Adapter_QtKK AZend_Translate_Adapter_IniK#J IZend_Translate_Adapter_GettextKI AZend_Translate_Adapter_CsvK!H EZend_Translate_Adapter_ArrayK$G KZend_Tool_Project_Provider_ViewK$F KZend_Tool_Project_Provider_TestK/E aZend_Tool_Project_Provider_ProjectProviderK'D QZend_Tool_Project_Provider_ProjectK'C QZend_Tool_Project_Provider_ProfileK&B OZend_Tool_Project_Provider_ModuleK%A MZend_Tool_Project_Provider_ModelK(@ SZend_Tool_Project_Provider_ManifestK&? OZend_Tool_Project_Provider_LayoutK$> KZend_Tool_Project_Provider_FormK)= UZend_Tool_Project_Provider_ExceptionK'< QZend_Tool_Project_Provider_DbTableK); UZend_Tool_Project_Provider_DbAdapterK*: WZend_Tool_Project_Provider_ControllerK+9 YZend_Tool_Project_Provider_ApplicationK&8 OZend_Tool_Project_Provider_ActionK(7 SZend_Tool_Project_Provider_AbstractK6 ?Zend_Tool_Project_ProfileK'5 QZend_Tool_Project_Profile_ResourceK94 uZend_Tool_Project_Profile_Resource_SearchConstraintsK13 eZend_Tool_Project_Profile_Resource_ContainerK=2 }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilterK51 mZend_Tool_Project_Profile_Iterator_ContextFilterK-0 ]Zend_Tool_Project_Profile_FileParser_XmlK(/ SZend_Tool_Project_Profile_ExceptionK . CZend_Tool_Project_ExceptionK<- {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectoryK0, cZend_Tool_Project_Context_Zf_ViewsDirectoryK6+ oZend_Tool_Project_Context_Zf_ViewScriptsDirectoryK0* cZend_Tool_Project_Context_Zf_ViewScriptFileK6) oZend_Tool_Project_Context_Zf_ViewHelpersDirectoryK6( oZend_Tool_Project_Context_Zf_ViewFiltersDirectoryKA' Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectoryK2& gZend_Tool_Project_Context_Zf_UploadsDirectoryK0% cZend_Tool_Project_Context_Zf_TestsDirectoryK7$ qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFileK:# wZend_Tool_Project_Context_Zf_TestPHPUnitBootstrapFileK@" Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectoryK1! eZend_Tool_Project_Context_Zf_TestLibraryFileK6  oZend_Tool_Project_Context_Zf_TestLibraryDirectoryK: wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFileKB Zend_Tool_Project_Context_Zf_TestApplicationModulesDirectoryKA Zend_Tool_Project_Context_Zf_TestApplicationModuleDirectoryK: wZend_Tool_Project_Context_Zf_TestApplicationDirectoryK@ Zend_Tool_Project_Context_Zf_TestApplicationControllerFileKE Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectoryK> Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFileK= }Zend_Tool_Project_Context_Zf_TestApplicationActionMethodK4 kZend_Tool_Project_Context_Zf_TemporaryDirectoryK3 iZend_Tool_Project_Context_Zf_SessionsDirectoryK3 iZend_Tool_Project_Context_Zf_ServicesDirectoryK8 sZend_Tool_Project_Context_Zf_SearchIndexesDirectoryK< {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectoryK8 sZend_Tool_Project_Context_Zf_PublicScriptsDirectoryK1 eZend_Tool_Project_Context_Zf_PublicIndexFileK7 qZend_Tool_Project_Context_Zf_PublicImagesDirectoryK1 eZend_Tool_Project_Context_Zf_PublicDirectoryK5 mZend_Tool_Project_Context_Zf_ProjectProviderFileK2 gZend_Tool_Project_Context_Zf_ModulesDirectoryK1 eZend_Tool_Project_Context_Zf_ModuleDirectoryK1 eZend_Tool_Project_Context_Zf_ModelsDirectoryK+
 YZend_Tool_Project_Context_Zf_ModelFileK/	 aZend_Tool_Project_Context_Zf_LogsDirectoryK2 gZend_Tool_Project_Context_Zf_LocalesDirectoryK2 gZend_Tool_Project_Context_Zf_LibraryDirectoryK2 gZend_Tool_Project_Context_Zf_LayoutsDirectoryK8 sZend_Tool_Project_Context_Zf_LayoutScriptsDirectoryK2 gZend_Tool_Project_Context_Zf_LayoutScriptFileK   r  }fK5$zJ%hD mH _9




l
M
1
					h	E	%	jE  qM(cI*eF'{T1lJ+[6[9     A AZend_View_Helper_FormRadioK"@ GZend_View_Helper_FormPasswordK? ?Zend_View_Helper_FormNoteK'> QZend_View_Helper_FormMultiCheckboxK= AZend_View_Helper_FormLabelK< AZend_View_Helper_FormImageK ; CZend_View_Helper_FormHiddenK: ?Zend_View_Helper_FormFileK 9 CZend_View_Helper_FormErrorsK!8 EZend_View_Helper_FormElementK"7 GZend_View_Helper_FormCheckboxK 6 CZend_View_Helper_FormButtonK5 7Zend_View_Helper_FormK4 ?Zend_View_Helper_FieldsetK3 =Zend_View_Helper_DoctypeK!2 EZend_View_Helper_DeclareVarsK1 9Zend_View_Helper_CycleK0 ?Zend_View_Helper_CurrencyK/ =Zend_View_Helper_BaseUrlK. ;Zend_View_Helper_ActionK- ?Zend_View_Helper_AbstractK, 3Zend_View_ExceptionK+ 1Zend_View_AbstractK* %Zend_VersionK) 'Zend_ValidateK( AZend_Validate_StringLengthK#' IZend_Validate_Sitemap_PriorityK& ?Zend_Validate_Sitemap_LocK"% GZend_Validate_Sitemap_LastmodK%$ MZend_Validate_Sitemap_ChangefreqK# 3Zend_Validate_RegexK" 9Zend_Validate_PostCodeK! 9Zend_Validate_NotEmptyK  9Zend_Validate_LessThanK 7Zend_Validate_Ldap_DnK 1Zend_Validate_IsbnK -Zend_Validate_IpK /Zend_Validate_IntK 7Zend_Validate_InArrayK ;Zend_Validate_IdenticalK 1Zend_Validate_IbanK 9Zend_Validate_HostnameK /Zend_Validate_HexK ?Zend_Validate_GreaterThanK 3Zend_Validate_FloatK! EZend_Validate_File_WordCountK ?Zend_Validate_File_UploadK ;Zend_Validate_File_SizeK ;Zend_Validate_File_Sha1K! EZend_Validate_File_NotExistsK  CZend_Validate_File_MimeTypeK 9Zend_Validate_File_Md5K AZend_Validate_File_IsImageK$ KZend_Validate_File_IsCompressedK! EZend_Validate_File_ImageSizeK
 ;Zend_Validate_File_HashK!	 EZend_Validate_File_FilesSizeK! EZend_Validate_File_ExtensionK ?Zend_Validate_File_ExistsK' QZend_Validate_File_ExcludeMimeTypeK( SZend_Validate_File_ExcludeExtensionK =Zend_Validate_File_Crc32K =Zend_Validate_File_CountK ;Zend_Validate_ExceptionK AZend_Validate_EmailAddressK  5Zend_Validate_DigitsK" GZend_Validate_Db_RecordExistsK$~ KZend_Validate_Db_NoRecordExistsK} ?Zend_Validate_Db_AbstractK| 1Zend_Validate_DateK{ =Zend_Validate_CreditCardKz 3Zend_Validate_CcnumKy 9Zend_Validate_CallbackKx 7Zend_Validate_BetweenKw 7Zend_Validate_BarcodeKv AZend_Validate_Barcode_UpceKu AZend_Validate_Barcode_UpcaKt AZend_Validate_Barcode_SsccK$s KZend_Validate_Barcode_RoyalmailK"r GZend_Validate_Barcode_PostnetK!q EZend_Validate_Barcode_PlanetK#p IZend_Validate_Barcode_LeitcodeK o CZend_Validate_Barcode_Itf14Kn AZend_Validate_Barcode_IssnK*m WZend_Validate_Barcode_IntelligentMailK$l KZend_Validate_Barcode_IdentcodeK!k EZend_Validate_Barcode_Gtin14K!j EZend_Validate_Barcode_Gtin13K!i EZend_Validate_Barcode_Gtin12Kh AZend_Validate_Barcode_Ean8Kg AZend_Validate_Barcode_Ean5Kf AZend_Validate_Barcode_Ean2K e CZend_Validate_Barcode_Ean18K d CZend_Validate_Barcode_Ean14K c CZend_Validate_Barcode_Ean13K b CZend_Validate_Barcode_Ean12K$a KZend_Validate_Barcode_Code93extK!` EZend_Validate_Barcode_Code93K$_ KZend_Validate_Barcode_Code39extK!^ EZend_Validate_Barcode_Code39K,] [Zend_Validate_Barcode_Code25interleavedK!\ EZend_Validate_Barcode_Code25K*[ WZend_Validate_Barcode_AdapterAbstractKZ 3Zend_Validate_AlphaKY 3Zend_Validate_AlnumKX 9Zend_Validate_AbstractKW Zend_UriKV 'Zend_Uri_HttpKU 1Zend_Uri_ExceptionKT )Zend_TranslateKS 7Zend_Translate_PluralKR =Zend_Translate_ExceptionKQ 9Zend_Translate_AdapterK!P EZend_Translate_Adapter_XmlTmK   k  sM+	}X5bB`<h/



`
;
					o	]	3	e@hM/rP4lQ1`<dJ!tBw^:  , Zend_AuthL+ ?Zend_Auth_Storage_SessionL$* KZend_Auth_Storage_NonPersistentL ) CZend_Auth_Storage_ExceptionL( -Zend_Auth_ResultL' 3Zend_Auth_ExceptionL& =Zend_Auth_Adapter_OpenIdL% 9Zend_Auth_Adapter_LdapL$ AZend_Auth_Adapter_InfoCardL# 9Zend_Auth_Adapter_HttpL)" UZend_Auth_Adapter_Http_Resolver_FileL.! _Zend_Auth_Adapter_Http_Resolver_ExceptionL   CZend_Auth_Adapter_ExceptionL =Zend_Auth_Adapter_DigestL ?Zend_Auth_Adapter_DbTableL Zend_AclL 'Zend_Acl_RoleL 9Zend_Acl_Role_RegistryL% MZend_Acl_Role_Registry_ExceptionL /Zend_Acl_ResourceL 1Zend_Acl_ExceptionL /Zend_XmlRpc_ValueK =Zend_XmlRpc_Value_StructK =Zend_XmlRpc_Value_StringK =Zend_XmlRpc_Value_ScalarK 7Zend_XmlRpc_Value_NilK ?Zend_XmlRpc_Value_IntegerK  CZend_XmlRpc_Value_ExceptionK =Zend_XmlRpc_Value_DoubleK AZend_XmlRpc_Value_DateTimeK! EZend_XmlRpc_Value_CollectionK ?Zend_XmlRpc_Value_BooleanK! EZend_XmlRpc_Value_BigIntegerK =Zend_XmlRpc_Value_Base64K
 ;Zend_XmlRpc_Value_ArrayK	 1Zend_XmlRpc_ServerK ?Zend_XmlRpc_Server_SystemK =Zend_XmlRpc_Server_FaultK! EZend_XmlRpc_Server_ExceptionK =Zend_XmlRpc_Server_CacheK 5Zend_XmlRpc_ResponseK ?Zend_XmlRpc_Response_HttpK 3Zend_XmlRpc_RequestK ?Zend_XmlRpc_Request_StdinK  =Zend_XmlRpc_Request_HttpK$ KZend_XmlRpc_Generator_XmlWriterK,~ [Zend_XmlRpc_Generator_GeneratorAbstractK&} OZend_XmlRpc_Generator_DomDocumentK| /Zend_XmlRpc_FaultK{ 7Zend_XmlRpc_ExceptionKz 1Zend_XmlRpc_ClientK#y IZend_XmlRpc_Client_ServerProxyK+x YZend_XmlRpc_Client_ServerIntrospectionK+w YZend_XmlRpc_Client_IntrospectExceptionK%v MZend_XmlRpc_Client_HttpExceptionK&u OZend_XmlRpc_Client_FaultExceptionK!t EZend_XmlRpc_Client_ExceptionK&s OZend_Wildfire_Protocol_JsonStreamK!r EZend_Wildfire_Plugin_FirePhpK.q _Zend_Wildfire_Plugin_FirePhp_TableMessageK)p UZend_Wildfire_Plugin_FirePhp_MessageKo ;Zend_Wildfire_ExceptionK&n OZend_Wildfire_Channel_HttpHeadersKm Zend_ViewKl -Zend_View_StreamKk AZend_View_Helper_UserAgentKj 5Zend_View_Helper_UrlKi AZend_View_Helper_TranslateKh AZend_View_Helper_ServerUrlK)g UZend_View_Helper_RenderToPlaceholderK!f EZend_View_Helper_PlaceholderK*e WZend_View_Helper_Placeholder_RegistryK4d kZend_View_Helper_Placeholder_Registry_ExceptionK+c YZend_View_Helper_Placeholder_ContainerK6b oZend_View_Helper_Placeholder_Container_StandaloneK5a mZend_View_Helper_Placeholder_Container_ExceptionK4` kZend_View_Helper_Placeholder_Container_AbstractK!_ EZend_View_Helper_PartialLoopK^ =Zend_View_Helper_PartialK'] QZend_View_Helper_Partial_ExceptionK'\ QZend_View_Helper_PaginationControlK [ CZend_View_Helper_NavigationK(Z SZend_View_Helper_Navigation_SitemapK%Y MZend_View_Helper_Navigation_MenuK&X OZend_View_Helper_Navigation_LinksK/W aZend_View_Helper_Navigation_HelperAbstractK,V [Zend_View_Helper_Navigation_BreadcrumbsKU ;Zend_View_Helper_LayoutKT 7Zend_View_Helper_JsonK"S GZend_View_Helper_InlineScriptK#R IZend_View_Helper_HtmlQuicktimeKQ ?Zend_View_Helper_HtmlPageK P CZend_View_Helper_HtmlObjectKO ?Zend_View_Helper_HtmlListKN AZend_View_Helper_HtmlFlashK!M EZend_View_Helper_HtmlElementKL AZend_View_Helper_HeadTitleKK AZend_View_Helper_HeadStyleK J CZend_View_Helper_HeadScriptKI ?Zend_View_Helper_HeadMetaKH ?Zend_View_Helper_HeadLinkKG ?Zend_View_Helper_GravatarK"F GZend_View_Helper_FormTextareaKE ?Zend_View_Helper_FormTextK D CZend_View_Helper_FormSubmitK C CZend_View_Helper_FormSelectKB AZend_View_Helper_FormResetK   Z  lK'd0	lEM&eH




Z
=
$				R	m?n@qAIg="rAU2Z0             7] qZend_InfoCard_Cipher_Symmetric_Aes128cbc_InterfaceL+\ YZend_InfoCard_Cipher_Pki_Rsa_InterfaceL'[ QZend_InfoCard_Cipher_Pki_InterfaceL$Z KZend_InfoCard_Adapter_InterfaceL'Y QZend_Http_Client_Adapter_InterfaceLX AZend_Gdata_App_MediaSourceL"W GZend_Form_Decorator_InterfaceLV 7Zend_Filter_InterfaceL U CZend_Feed_Builder_InterfaceL T CZend_Db_Statement_InterfaceL+S YZend_Controller_Router_Route_InterfaceL%R MZend_Controller_Router_InterfaceL)Q UZend_Controller_Dispatcher_InterfaceL!P EZend_Cache_Backend_InterfaceL O CZend_Auth_Storage_InterfaceL N CZend_Auth_Adapter_InterfaceL.M _Zend_Auth_Adapter_Http_Resolver_InterfaceLL ;Zend_Acl_Role_InterfaceL K CZend_Acl_Resource_InterfaceLJ ?Zend_Acl_Assert_InterfaceL#I IZend_Wildfire_Plugin_InterfaceK$H KZend_Wildfire_Channel_InterfaceKG 3Zend_View_InterfaceK'F QZend_View_Helper_Navigation_HelperKE AZend_View_Helper_InterfaceKD ;Zend_Validate_InterfaceK+C YZend_Validate_Barcode_AdapterInterfaceK3B iZend_Tool_Project_Profile_FileParser_InterfaceK:A wZend_Tool_Project_Context_System_TopLevelRestrictableK5@ mZend_Tool_Project_Context_System_NotOverwritableK/? aZend_Tool_Project_Context_System_InterfaceK(> SZend_Tool_Project_Context_InterfaceK+= YZend_Tool_Framework_Registry_InterfaceK2< gZend_Tool_Framework_Registry_EnabledInterfaceK-; ]Zend_Tool_Framework_Provider_PretendableK+: YZend_Tool_Framework_Provider_InterfaceK.9 _Zend_Tool_Framework_Provider_InteractableK/8 aZend_Tool_Framework_Provider_InitializableK;7 yZend_Tool_Framework_Provider_DocblockManifestInterfaceK+6 YZend_Tool_Framework_Metadata_InterfaceK.5 _Zend_Tool_Framework_Metadata_AttributableK64 oZend_Tool_Framework_Manifest_ProviderManifestableK63 oZend_Tool_Framework_Manifest_MetadataManifestableK+2 YZend_Tool_Framework_Manifest_InterfaceK+1 YZend_Tool_Framework_Manifest_IndexableK40 kZend_Tool_Framework_Manifest_ActionManifestableK)/ UZend_Tool_Framework_Loader_InterfaceK8. sZend_Tool_Framework_Client_Storage_AdapterInterfaceKD- 	Zend_Tool_Framework_Client_Response_ContentDecorator_InterfaceK;, yZend_Tool_Framework_Client_Interactive_OutputInterfaceK:+ wZend_Tool_Framework_Client_Interactive_InputInterfaceK)* UZend_Tool_Framework_Action_InterfaceK() SZend_Text_Table_Decorator_InterfaceK( /Zend_Tag_TaggableK' 7Zend_Stdlib_ExceptionK&& OZend_Soap_Wsdl_Strategy_InterfaceK%% MZend_Session_Validator_InterfaceK'$ QZend_Session_SaveHandler_InterfaceK$# KZend_Service_ShortUrl_ShortenerKI" Zend_Service_DeveloperGarden_Response_SecurityTokenServer_InterfaceK! 7Zend_Server_InterfaceK-  ]Zend_Serializer_Adapter_AdapterInterfaceK4 kZend_Search_Lucene_Search_Highlighter_InterfaceK! EZend_Search_Lucene_InterfaceK3 iZend_Search_Lucene_Index_TermsStream_InterfaceK$ KZend_Queue_Stomp_FrameInterfaceK0 cZend_Queue_Stomp_Client_ConnectionInterfaceK( SZend_Queue_Adapter_AdapterInterfaceK ?Zend_Pdf_Filter_InterfaceK& OZend_Pdf_ElementFactory_InterfaceK ?Zend_Pdf_Canvas_InterfaceK, [Zend_Paginator_ScrollingStyle_InterfaceK$ KZend_Paginator_AdapterAggregateK% MZend_Paginator_Adapter_InterfaceK& OZend_Oauth_Config_ConfigInterfaceK' QZend_Mobile_Push_Message_InterfaceK AZend_Mobile_Push_InterfaceK$ KZend_Memory_Container_InterfaceK1 eZend_Markup_Renderer_TokenConverterInterfaceK' QZend_Markup_Parser_ParserInterfaceK) UZend_Mail_Storage_Writable_InterfaceK' QZend_Mail_Storage_Folder_InterfaceK =Zend_Mail_Part_InterfaceK 
 CZend_Mail_Message_InterfaceK!	 EZend_Log_Formatter_InterfaceK ?Zend_Log_Filter_InterfaceK ?Zend_Log_FactoryInterfaceK ?Zend_Loader_SplAutoloaderK' QZend_Loader_PluginLoader_InterfaceK% MZend_Loader_Autoloader_InterfaceK   k  zZ2zW6#V'P|K!



w
J
					e	9	pF!X,zaD(hI tR0yZA 	tS(nK'          " GZend_Db_Table_Rowset_AbstractL /Zend_Db_Table_RowL  CZend_Db_Table_Row_ExceptionL AZend_Db_Table_Row_AbstractL ;Zend_Db_Table_ExceptionL 9Zend_Db_Table_AbstractL /Zend_Db_StatementL 7Zend_Db_Statement_PdoL ?Zend_Db_Statement_Pdo_IbmL =Zend_Db_Statement_OracleL' QZend_Db_Statement_Oracle_ExceptionL =Zend_Db_Statement_MysqliL' QZend_Db_Statement_Mysqli_ExceptionL 
 CZend_Db_Statement_ExceptionL	 7Zend_Db_Statement_Db2L$ KZend_Db_Statement_Db2_ExceptionL )Zend_Db_SelectL =Zend_Db_Select_ExceptionL -Zend_Db_ProfilerL 9Zend_Db_Profiler_QueryL AZend_Db_Profiler_ExceptionL %Zend_Db_ExprL /Zend_Db_ExceptionL  AZend_Db_Adapter_Pdo_SqliteL ?Zend_Db_Adapter_Pdo_PgsqlL~ ;Zend_Db_Adapter_Pdo_OciL} ?Zend_Db_Adapter_Pdo_MysqlL| ?Zend_Db_Adapter_Pdo_MssqlL{ ;Zend_Db_Adapter_Pdo_IbmL z CZend_Db_Adapter_Pdo_Ibm_IdsL y CZend_Db_Adapter_Pdo_Ibm_Db2L!x EZend_Db_Adapter_Pdo_AbstractLw 9Zend_Db_Adapter_OracleL%v MZend_Db_Adapter_Oracle_ExceptionLu 9Zend_Db_Adapter_MysqliL%t MZend_Db_Adapter_Mysqli_ExceptionLs ?Zend_Db_Adapter_ExceptionLr 3Zend_Db_Adapter_Db2L"q GZend_Db_Adapter_Db2_ExceptionLp =Zend_Db_Adapter_AbstractLo Zend_DateLn 3Zend_Date_ExceptionLm 5Zend_Date_DateObjectLl -Zend_Date_CitiesLk 'Zend_CurrencyLj ;Zend_Currency_ExceptionL!i EZend_Controller_Router_RouteL(h SZend_Controller_Router_Route_StaticL'g QZend_Controller_Router_Route_RegexL(f SZend_Controller_Router_Route_ModuleL#e IZend_Controller_Router_RewriteL%d MZend_Controller_Router_ExceptionL$c KZend_Controller_Router_AbstractL"b GZend_Controller_Response_HttpL'a QZend_Controller_Response_ExceptionL!` EZend_Controller_Response_CliL&_ OZend_Controller_Response_AbstractL#^ IZend_Controller_Request_SimpleL!] EZend_Controller_Request_HttpL&\ OZend_Controller_Request_ExceptionL&[ OZend_Controller_Request_Apache404L%Z MZend_Controller_Request_AbstractL(Y SZend_Controller_Plugin_ErrorHandlerL"X GZend_Controller_Plugin_BrokerL'W QZend_Controller_Plugin_ActionStackL$V KZend_Controller_Plugin_AbstractLU 7Zend_Controller_FrontLT ?Zend_Controller_ExceptionL(S SZend_Controller_Dispatcher_StandardL)R UZend_Controller_Dispatcher_ExceptionL(Q SZend_Controller_Dispatcher_AbstractLP 9Zend_Controller_ActionL(O SZend_Controller_Action_HelperBrokerL/N aZend_Controller_Action_Helper_ViewRendererL&M OZend_Controller_Action_Helper_UrlL-L ]Zend_Controller_Action_Helper_RedirectorL'K QZend_Controller_Action_Helper_JsonL1J eZend_Controller_Action_Helper_FlashMessengerL0I cZend_Controller_Action_Helper_ContextSwitchL<H {Zend_Controller_Action_Helper_AutoCompleteScriptaculousL3G iZend_Controller_Action_Helper_AutoCompleteDojoL8F sZend_Controller_Action_Helper_AutoComplete_AbstractL.E _Zend_Controller_Action_Helper_AjaxContextL.D _Zend_Controller_Action_Helper_ActionStackL+C YZend_Controller_Action_Helper_AbstractL%B MZend_Controller_Action_ExceptionLA 3Zend_Console_GetoptL"@ GZend_Console_Getopt_ExceptionL? #Zend_ConfigL> +Zend_Config_XmlL= +Zend_Config_IniL< 7Zend_Config_ExceptionL; !Zend_CacheL: =Zend_Cache_Frontend_PageL9 AZend_Cache_Frontend_OutputL!8 EZend_Cache_Frontend_FunctionL7 =Zend_Cache_Frontend_FileL6 ?Zend_Cache_Frontend_ClassL5 5Zend_Cache_ExceptionL4 +Zend_Cache_CoreL3 1Zend_Cache_BackendL$2 KZend_Cache_Backend_ZendPlatformL1 ;Zend_Cache_Backend_TestL0 ?Zend_Cache_Backend_SqliteL!/ EZend_Cache_Backend_MemcachedL. ;Zend_Cache_Backend_FileL- 9Zend_Cache_Backend_ApcL   p xbR?(iO5}cF+dG%o@



j
A
				w	R	-	oN%oP/h@uV3^B[2e:~V+                           $ KZend_Gdata_App_Extension_RightsL' QZend_Gdata_App_Extension_PublishedL$ KZend_Gdata_App_Extension_PersonL" GZend_Gdata_App_Extension_NameL" GZend_Gdata_App_Extension_LogoL" GZend_Gdata_App_Extension_LinkL  CZend_Gdata_App_Extension_IdL"  GZend_Gdata_App_Extension_IconL' QZend_Gdata_App_Extension_GeneratorL#~ IZend_Gdata_App_Extension_EmailL%} MZend_Gdata_App_Extension_ElementL#| IZend_Gdata_App_Extension_DraftL%{ MZend_Gdata_App_Extension_ControlL)z UZend_Gdata_App_Extension_ContributorL%y MZend_Gdata_App_Extension_ContentL&x OZend_Gdata_App_Extension_CategoryL$w KZend_Gdata_App_Extension_AuthorLv =Zend_Gdata_App_ExceptionLu 5Zend_Gdata_App_EntryL,t [Zend_Gdata_App_CaptchaRequiredExceptionL#s IZend_Gdata_App_BaseMediaSourceLr 3Zend_Gdata_App_BaseL*q WZend_Gdata_App_BadMethodCallExceptionL!p EZend_Gdata_App_AuthExceptionLo Zend_FormLn /Zend_Form_SubFormLm 3Zend_Form_ExceptionLl /Zend_Form_ElementLk ;Zend_Form_Element_XhtmlLj AZend_Form_Element_TextareaLi 9Zend_Form_Element_TextLh =Zend_Form_Element_SubmitLg =Zend_Form_Element_SelectLf ;Zend_Form_Element_ResetLe ;Zend_Form_Element_RadioLd AZend_Form_Element_PasswordL"c GZend_Form_Element_MultiselectL$b KZend_Form_Element_MultiCheckboxLa ;Zend_Form_Element_MultiL` ;Zend_Form_Element_ImageL_ =Zend_Form_Element_HiddenL^ 9Zend_Form_Element_HashL ] CZend_Form_Element_ExceptionL\ AZend_Form_Element_CheckboxL[ =Zend_Form_Element_ButtonLZ 9Zend_Form_DisplayGroupL#Y IZend_Form_Decorator_ViewScriptL#X IZend_Form_Decorator_ViewHelperLW ?Zend_Form_Decorator_LabelLV ?Zend_Form_Decorator_ImageL U CZend_Form_Decorator_HtmlTagL%T MZend_Form_Decorator_FormElementsLS =Zend_Form_Decorator_FormL!R EZend_Form_Decorator_FieldsetL"Q GZend_Form_Decorator_ExceptionLP AZend_Form_Decorator_ErrorsL$O KZend_Form_Decorator_DtDdWrapperL$N KZend_Form_Decorator_DescriptionL!M EZend_Form_Decorator_CallbackL!L EZend_Form_Decorator_AbstractLK #Zend_FilterL+J YZend_Filter_Word_UnderscoreToSeparatorL&I OZend_Filter_Word_UnderscoreToDashL+H YZend_Filter_Word_UnderscoreToCamelCaseL*G WZend_Filter_Word_SeparatorToSeparatorL%F MZend_Filter_Word_SeparatorToDashL*E WZend_Filter_Word_SeparatorToCamelCaseL(D SZend_Filter_Word_Separator_AbstractL&C OZend_Filter_Word_DashToUnderscoreL%B MZend_Filter_Word_DashToSeparatorL%A MZend_Filter_Word_DashToCamelCaseL+@ YZend_Filter_Word_CamelCaseToUnderscoreL*? WZend_Filter_Word_CamelCaseToSeparatorL%> MZend_Filter_Word_CamelCaseToDashL= 7Zend_Filter_StripTagsL< 9Zend_Filter_StringTrimL; ?Zend_Filter_StringToUpperL: ?Zend_Filter_StringToLowerL9 5Zend_Filter_RealPathL8 ;Zend_Filter_PregReplaceL7 +Zend_Filter_IntL6 /Zend_Filter_InputL5 7Zend_Filter_InflectorL4 =Zend_Filter_HtmlEntitiesL3 7Zend_Filter_ExceptionL2 +Zend_Filter_DirL1 1Zend_Filter_DigitsL0 5Zend_Filter_BaseNameL/ /Zend_Filter_AlphaL. /Zend_Filter_AlnumL- Zend_FeedL, 'Zend_Feed_RssL+ 3Zend_Feed_ExceptionL* 3Zend_Feed_Entry_RssL) 5Zend_Feed_Entry_AtomL( =Zend_Feed_Entry_AbstractL' /Zend_Feed_ElementL& /Zend_Feed_BuilderL% =Zend_Feed_Builder_HeaderL$$ KZend_Feed_Builder_Header_ItunesL # CZend_Feed_Builder_ExceptionL" ;Zend_Feed_Builder_EntryL! )Zend_Feed_AtomL  1Zend_Feed_AbstractL )Zend_ExceptionL !Zend_DebugL Zend_DbL 'Zend_Db_TableL 5Zend_Db_Table_SelectL# IZend_Db_Table_Select_ExceptionL 5Zend_Db_Table_RowsetL# IZend_Db_Table_Rowset_ExceptionL   c  _8^9	gK4sGT%




n
D
						X	0	]5\6^,P* rU=e4kBb@                        j 9Zend_Gdata_Gbase_EntryLi -Zend_Gdata_GappsLh AZend_Gdata_Gapps_UserQueryLg ?Zend_Gdata_Gapps_UserFeedLf AZend_Gdata_Gapps_UserEntryL&e OZend_Gdata_Gapps_ServiceExceptionLd 9Zend_Gdata_Gapps_QueryL#c IZend_Gdata_Gapps_NicknameQueryL"b GZend_Gdata_Gapps_NicknameFeedL#a IZend_Gdata_Gapps_NicknameEntryL%` MZend_Gdata_Gapps_Extension_QuotaL(_ SZend_Gdata_Gapps_Extension_NicknameL$^ KZend_Gdata_Gapps_Extension_NameL%] MZend_Gdata_Gapps_Extension_LoginL)\ UZend_Gdata_Gapps_Extension_EmailListL[ 9Zend_Gdata_Gapps_ErrorL-Z ]Zend_Gdata_Gapps_EmailListRecipientQueryL,Y [Zend_Gdata_Gapps_EmailListRecipientFeedL-X ]Zend_Gdata_Gapps_EmailListRecipientEntryL$W KZend_Gdata_Gapps_EmailListQueryL#V IZend_Gdata_Gapps_EmailListFeedL$U KZend_Gdata_Gapps_EmailListEntryLT +Zend_Gdata_FeedLS 5Zend_Gdata_ExtensionLR =Zend_Gdata_Extension_WhoLQ AZend_Gdata_Extension_WhereLP ?Zend_Gdata_Extension_WhenL$O KZend_Gdata_Extension_VisibilityL&N OZend_Gdata_Extension_TransparencyL"M GZend_Gdata_Extension_ReminderL-L ]Zend_Gdata_Extension_RecurrenceExceptionL$K KZend_Gdata_Extension_RecurrenceL J CZend_Gdata_Extension_RatingL'I QZend_Gdata_Extension_OriginalEventL0H cZend_Gdata_Extension_OpenSearchTotalResultsL.G _Zend_Gdata_Extension_OpenSearchStartIndexL0F cZend_Gdata_Extension_OpenSearchItemsPerPageL"E GZend_Gdata_Extension_FeedLinkL*D WZend_Gdata_Extension_ExtendedPropertyL%C MZend_Gdata_Extension_EventStatusL#B IZend_Gdata_Extension_EntryLinkL"A GZend_Gdata_Extension_CommentsL&@ OZend_Gdata_Extension_AttendeeTypeL(? SZend_Gdata_Extension_AttendeeStatusL> +Zend_Gdata_ExifL= 5Zend_Gdata_Exif_FeedL#< IZend_Gdata_Exif_Extension_TimeL#; IZend_Gdata_Exif_Extension_TagsL$: KZend_Gdata_Exif_Extension_ModelL#9 IZend_Gdata_Exif_Extension_MakeL"8 GZend_Gdata_Exif_Extension_IsoL,7 [Zend_Gdata_Exif_Extension_ImageUniqueIdL$6 KZend_Gdata_Exif_Extension_FStopL*5 WZend_Gdata_Exif_Extension_FocalLengthL$4 KZend_Gdata_Exif_Extension_FlashL'3 QZend_Gdata_Exif_Extension_ExposureL'2 QZend_Gdata_Exif_Extension_DistanceL1 7Zend_Gdata_Exif_EntryL0 -Zend_Gdata_EntryL/ +Zend_Gdata_DocsL. 7Zend_Gdata_Docs_QueryL%- MZend_Gdata_Docs_DocumentListFeedL&, OZend_Gdata_Docs_DocumentListEntryL+ 9Zend_Gdata_ClientLoginL* 3Zend_Gdata_CalendarL!) EZend_Gdata_Calendar_ListFeedL"( GZend_Gdata_Calendar_ListEntryL-' ]Zend_Gdata_Calendar_Extension_WebContentL+& YZend_Gdata_Calendar_Extension_TimezoneL9% uZend_Gdata_Calendar_Extension_SendEventNotificationsL+$ YZend_Gdata_Calendar_Extension_SelectedL+# YZend_Gdata_Calendar_Extension_QuickAddL'" QZend_Gdata_Calendar_Extension_LinkL)! UZend_Gdata_Calendar_Extension_HiddenL(  SZend_Gdata_Calendar_Extension_ColorL. _Zend_Gdata_Calendar_Extension_AccessLevelL# IZend_Gdata_Calendar_EventQueryL" GZend_Gdata_Calendar_EventFeedL# IZend_Gdata_Calendar_EventEntryL 1Zend_Gdata_AuthSubL )Zend_Gdata_AppL 3Zend_Gdata_App_UtilL# IZend_Gdata_App_MediaFileSourceL ?Zend_Gdata_App_MediaEntryL2 gZend_Gdata_App_LoggingHttpClientAdapterSocketL AZend_Gdata_App_IOExceptionL, [Zend_Gdata_App_InvalidArgumentExceptionL! EZend_Gdata_App_HttpExceptionL$ KZend_Gdata_App_FeedSourceParentL# IZend_Gdata_App_FeedEntryParentL 3Zend_Gdata_App_FeedL =Zend_Gdata_App_ExtensionL! EZend_Gdata_App_Extension_UriL% MZend_Gdata_App_Extension_UpdatedL# IZend_Gdata_App_Extension_TitleL" GZend_Gdata_App_Extension_TextL%
 MZend_Gdata_App_Extension_SummaryL&	 OZend_Gdata_App_Extension_SubtitleL$ KZend_Gdata_App_Extension_SourceL   ]  lI*V,^.k>{N




n
I
"				p	E	_) nB_1Y4]C* Pf<~^6                                      $G KZend_Gdata_YouTube_ContactEntryL#F IZend_Gdata_YouTube_CommentFeedL$E KZend_Gdata_YouTube_CommentEntryLD ;Zend_Gdata_SpreadsheetsL*C WZend_Gdata_Spreadsheets_WorksheetFeedL+B YZend_Gdata_Spreadsheets_WorksheetEntryL,A [Zend_Gdata_Spreadsheets_SpreadsheetFeedL-@ ]Zend_Gdata_Spreadsheets_SpreadsheetEntryL&? OZend_Gdata_Spreadsheets_ListQueryL%> MZend_Gdata_Spreadsheets_ListFeedL&= OZend_Gdata_Spreadsheets_ListEntryL/< aZend_Gdata_Spreadsheets_Extension_RowCountL-; ]Zend_Gdata_Spreadsheets_Extension_CustomL/: aZend_Gdata_Spreadsheets_Extension_ColCountL+9 YZend_Gdata_Spreadsheets_Extension_CellL*8 WZend_Gdata_Spreadsheets_DocumentQueryL&7 OZend_Gdata_Spreadsheets_CellQueryL%6 MZend_Gdata_Spreadsheets_CellFeedL&5 OZend_Gdata_Spreadsheets_CellEntryL4 -Zend_Gdata_QueryL3 /Zend_Gdata_PhotosL 2 CZend_Gdata_Photos_UserQueryL1 AZend_Gdata_Photos_UserFeedL 0 CZend_Gdata_Photos_UserEntryL/ AZend_Gdata_Photos_TagEntryL!. EZend_Gdata_Photos_PhotoQueryL - CZend_Gdata_Photos_PhotoFeedL!, EZend_Gdata_Photos_PhotoEntryL&+ OZend_Gdata_Photos_Extension_WidthL'* QZend_Gdata_Photos_Extension_WeightL() SZend_Gdata_Photos_Extension_VersionL%( MZend_Gdata_Photos_Extension_UserL*' WZend_Gdata_Photos_Extension_TimestampL*& WZend_Gdata_Photos_Extension_ThumbnailL%% MZend_Gdata_Photos_Extension_SizeL)$ UZend_Gdata_Photos_Extension_RotationL+# YZend_Gdata_Photos_Extension_QuotaLimitL-" ]Zend_Gdata_Photos_Extension_QuotaCurrentL)! UZend_Gdata_Photos_Extension_PositionL(  SZend_Gdata_Photos_Extension_PhotoIdL3 iZend_Gdata_Photos_Extension_NumPhotosRemainingL* WZend_Gdata_Photos_Extension_NumPhotosL) UZend_Gdata_Photos_Extension_NicknameL% MZend_Gdata_Photos_Extension_NameL2 gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumL) UZend_Gdata_Photos_Extension_LocationL# IZend_Gdata_Photos_Extension_IdL' QZend_Gdata_Photos_Extension_HeightL2 gZend_Gdata_Photos_Extension_CommentingEnabledL- ]Zend_Gdata_Photos_Extension_CommentCountL' QZend_Gdata_Photos_Extension_ClientL) UZend_Gdata_Photos_Extension_ChecksumL* WZend_Gdata_Photos_Extension_BytesUsedL( SZend_Gdata_Photos_Extension_AlbumIdL' QZend_Gdata_Photos_Extension_AccessL# IZend_Gdata_Photos_CommentEntryL! EZend_Gdata_Photos_AlbumQueryL  CZend_Gdata_Photos_AlbumFeedL! EZend_Gdata_Photos_AlbumEntryL -Zend_Gdata_MediaL 7Zend_Gdata_Media_FeedL*
 WZend_Gdata_Media_Extension_MediaTitleL.	 _Zend_Gdata_Media_Extension_MediaThumbnailL) UZend_Gdata_Media_Extension_MediaTextL0 cZend_Gdata_Media_Extension_MediaRestrictionL+ YZend_Gdata_Media_Extension_MediaRatingL+ YZend_Gdata_Media_Extension_MediaPlayerL- ]Zend_Gdata_Media_Extension_MediaKeywordsL) UZend_Gdata_Media_Extension_MediaHashL* WZend_Gdata_Media_Extension_MediaGroupL0 cZend_Gdata_Media_Extension_MediaDescriptionL+  YZend_Gdata_Media_Extension_MediaCreditL. _Zend_Gdata_Media_Extension_MediaCopyrightL,~ [Zend_Gdata_Media_Extension_MediaContentL-} ]Zend_Gdata_Media_Extension_MediaCategoryL| 9Zend_Gdata_Media_EntryL{ AZend_Gdata_Kind_EventEntryLz )Zend_Gdata_GeoLy 3Zend_Gdata_Geo_FeedL$x KZend_Gdata_Geo_Extension_GmlPosL&w OZend_Gdata_Geo_Extension_GmlPointL)v UZend_Gdata_Geo_Extension_GeoRssWhereLu 5Zend_Gdata_Geo_EntryLt -Zend_Gdata_GbaseL"s GZend_Gdata_Gbase_SnippetQueryL!r EZend_Gdata_Gbase_SnippetFeedL"q GZend_Gdata_Gbase_SnippetEntryLp 9Zend_Gdata_Gbase_QueryLo AZend_Gdata_Gbase_ItemQueryLn ?Zend_Gdata_Gbase_ItemFeedLm AZend_Gdata_Gbase_ItemEntryLl 7Zend_Gdata_Gbase_FeedL-k ]Zend_Gdata_Gbase_Extension_BaseAttributeL   a  X+sE_4Mi>



c
6
					f	@	%	rO6|U#L/|Z)\2yB
sY?#~bP2          ( #Zend_LoaderL' =Zend_Loader_PluginLoaderL'& QZend_Loader_PluginLoader_ExceptionL% 7Zend_Loader_ExceptionL$ Zend_LdapL# 3Zend_Ldap_ExceptionL" #Zend_LayoutL! 7Zend_Layout_ExceptionL)  UZend_Layout_Controller_Plugin_LayoutL0 cZend_Layout_Controller_Action_Helper_LayoutL Zend_JsonL 3Zend_Json_ExceptionL /Zend_Json_EncoderL /Zend_Json_DecoderL 'Zend_InfoCardL- ]Zend_InfoCard_Xml_SecurityTokenReferenceL AZend_InfoCard_Xml_SecurityL) UZend_InfoCard_Xml_Security_TransformL4 kZend_InfoCard_Xml_Security_Transform_XmlExcC14NL3 iZend_InfoCard_Xml_Security_Transform_ExceptionL< {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignatureL) UZend_InfoCard_Xml_Security_ExceptionL ?Zend_InfoCard_Xml_KeyInfoL& OZend_InfoCard_Xml_KeyInfo_XmlDSigL& OZend_InfoCard_Xml_KeyInfo_DefaultL' QZend_InfoCard_Xml_KeyInfo_AbstractL  CZend_InfoCard_Xml_ExceptionL# IZend_InfoCard_Xml_EncryptedKeyL$ KZend_InfoCard_Xml_EncryptedDataL+ YZend_InfoCard_Xml_EncryptedData_XmlEncL-
 ]Zend_InfoCard_Xml_EncryptedData_AbstractL	 ?Zend_InfoCard_Xml_ElementL  CZend_InfoCard_Xml_AssertionL% MZend_InfoCard_Xml_Assertion_SamlL ;Zend_InfoCard_ExceptionL% MZend_InfoCard_Exception_AbstractL 5Zend_InfoCard_ClaimsL 5Zend_InfoCard_CipherL5 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcL5 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcL4  kZend_InfoCard_Cipher_Symmetric_Adapter_AbstractL) UZend_InfoCard_Cipher_Pki_Adapter_RsaL.~ _Zend_InfoCard_Cipher_Pki_Adapter_AbstractL#} IZend_InfoCard_Cipher_ExceptionL$| KZend_InfoCard_Adapter_ExceptionL"{ GZend_InfoCard_Adapter_DefaultLz 1Zend_Http_ResponseLy 3Zend_Http_ExceptionLx 3Zend_Http_CookieJarLw -Zend_Http_CookieLv -Zend_Http_ClientLu AZend_Http_Client_ExceptionL"t GZend_Http_Client_Adapter_TestL$s KZend_Http_Client_Adapter_SocketL#r IZend_Http_Client_Adapter_ProxyL'q QZend_Http_Client_Adapter_ExceptionLp !Zend_GdataLo 1Zend_Gdata_YouTubeL"n GZend_Gdata_YouTube_VideoQueryL!m EZend_Gdata_YouTube_VideoFeedL"l GZend_Gdata_YouTube_VideoEntryL(k SZend_Gdata_YouTube_UserProfileEntryL(j SZend_Gdata_YouTube_SubscriptionFeedL)i UZend_Gdata_YouTube_SubscriptionEntryL)h UZend_Gdata_YouTube_PlaylistVideoFeedL*g WZend_Gdata_YouTube_PlaylistVideoEntryL(f SZend_Gdata_YouTube_PlaylistListFeedL)e UZend_Gdata_YouTube_PlaylistListEntryL"d GZend_Gdata_YouTube_MediaEntryL*c WZend_Gdata_YouTube_Extension_UsernameL'b QZend_Gdata_YouTube_Extension_TokenL(a SZend_Gdata_YouTube_Extension_StatusL,` [Zend_Gdata_YouTube_Extension_StatisticsL'_ QZend_Gdata_YouTube_Extension_StateL(^ SZend_Gdata_YouTube_Extension_SchoolL-] ]Zend_Gdata_YouTube_Extension_ReleaseDateL.\ _Zend_Gdata_YouTube_Extension_RelationshipL&[ OZend_Gdata_YouTube_Extension_RacyL*Z WZend_Gdata_YouTube_Extension_PositionL,Y [Zend_Gdata_YouTube_Extension_OccupationL)X UZend_Gdata_YouTube_Extension_NoEmbedL'W QZend_Gdata_YouTube_Extension_MusicL(V SZend_Gdata_YouTube_Extension_MoviesL,U [Zend_Gdata_YouTube_Extension_MediaGroupL.T _Zend_Gdata_YouTube_Extension_MediaContentL*S WZend_Gdata_YouTube_Extension_LocationL&R OZend_Gdata_YouTube_Extension_LinkL*Q WZend_Gdata_YouTube_Extension_HometownL)P UZend_Gdata_YouTube_Extension_HobbiesL(O SZend_Gdata_YouTube_Extension_GenderL*N WZend_Gdata_YouTube_Extension_DurationL-M ]Zend_Gdata_YouTube_Extension_DescriptionL)L UZend_Gdata_YouTube_Extension_ControlL)K UZend_Gdata_YouTube_Extension_CompanyL'J QZend_Gdata_YouTube_Extension_BooksL%I MZend_Gdata_YouTube_Extension_AgeL#H IZend_Gdata_YouTube_ContactFeedL   y fE,yZ9~gC[;eC$



u
P
/
						k	G	#	pO4cH'^9tX>'hJ ~T1z_H)`@                           '! QZend_Pdf_Element_Reference_ContextL  ;Zend_Pdf_Element_ObjectL# IZend_Pdf_Element_Object_StreamL =Zend_Pdf_Element_NumericL 7Zend_Pdf_Element_NullL 7Zend_Pdf_Element_NameL  CZend_Pdf_Element_DictionaryL =Zend_Pdf_Element_BooleanL 9Zend_Pdf_Element_ArrayL )Zend_Pdf_ColorL 1Zend_Pdf_Color_RgbL 3Zend_Pdf_Color_HtmlL =Zend_Pdf_Color_GrayScaleL 3Zend_Pdf_Color_CmykL 'Zend_Pdf_CmapL AZend_Pdf_Cmap_TrimmedTableL! EZend_Pdf_Cmap_SegmentToDeltaL AZend_Pdf_Cmap_ByteEncodingL& OZend_Pdf_Cmap_ByteEncoding_StaticL #Zend_OpenIdL 5Zend_OpenId_ProviderL ?Zend_OpenId_Provider_UserL& OZend_OpenId_Provider_User_SessionL!
 EZend_OpenId_Provider_StorageL&	 OZend_OpenId_Provider_Storage_FileL 7Zend_OpenId_ExtensionL AZend_OpenId_Extension_SregL 7Zend_OpenId_ExceptionL 5Zend_OpenId_ConsumerL! EZend_OpenId_Consumer_StorageL& OZend_OpenId_Consumer_Storage_FileL Zend_MimeL )Zend_Mime_PartL  /Zend_Mime_MessageL 3Zend_Mime_ExceptionL~ -Zend_Mime_DecodeL} #Zend_MemoryL| /Zend_Memory_ValueL{ 3Zend_Memory_ManagerLz 7Zend_Memory_ExceptionLy 7Zend_Memory_ContainerL"x GZend_Memory_Container_MovableL!w EZend_Memory_Container_LockedL!v EZend_Memory_AccessControllerLu 3Zend_Measure_WeightLt 3Zend_Measure_VolumeL%s MZend_Measure_Viscosity_KinematicL#r IZend_Measure_Viscosity_DynamicLq 3Zend_Measure_TorqueLp =Zend_Measure_TemperatureLo 1Zend_Measure_SpeedLn 7Zend_Measure_PressureLm 1Zend_Measure_PowerLl 3Zend_Measure_NumberLk 9Zend_Measure_LightnessLj 3Zend_Measure_LengthLi ?Zend_Measure_IlluminationLh 9Zend_Measure_FrequencyLg 1Zend_Measure_ForceLf =Zend_Measure_Flow_VolumeLe 9Zend_Measure_Flow_MoleLd 9Zend_Measure_Flow_MassLc 9Zend_Measure_ExceptionLb 3Zend_Measure_EnergyLa 5Zend_Measure_DensityL` 5Zend_Measure_CurrentL _ CZend_Measure_Cooking_WeightL ^ CZend_Measure_Cooking_VolumeL] =Zend_Measure_CapacitanceL\ 3Zend_Measure_BinaryL[ /Zend_Measure_AreaLZ 1Zend_Measure_AngleLY ?Zend_Measure_AccelerationLX 7Zend_Measure_AbstractLW Zend_MailLV =Zend_Mail_Transport_SmtpL!U EZend_Mail_Transport_SendmailL"T GZend_Mail_Transport_ExceptionL!S EZend_Mail_Transport_AbstractLR /Zend_Mail_StorageL'Q QZend_Mail_Storage_Writable_MaildirLP 9Zend_Mail_Storage_Pop3LO 9Zend_Mail_Storage_MboxLN ?Zend_Mail_Storage_MaildirLM 9Zend_Mail_Storage_ImapLL =Zend_Mail_Storage_FolderL"K GZend_Mail_Storage_Folder_MboxL%J MZend_Mail_Storage_Folder_MaildirL I CZend_Mail_Storage_ExceptionLH AZend_Mail_Storage_AbstractLG ;Zend_Mail_Protocol_SmtpL'F QZend_Mail_Protocol_Smtp_Auth_PlainL'E QZend_Mail_Protocol_Smtp_Auth_LoginL)D UZend_Mail_Protocol_Smtp_Auth_Crammd5LC ;Zend_Mail_Protocol_Pop3LB ;Zend_Mail_Protocol_ImapL!A EZend_Mail_Protocol_ExceptionL @ CZend_Mail_Protocol_AbstractL? )Zend_Mail_PartL> /Zend_Mail_MessageL= 3Zend_Mail_ExceptionL< Zend_LogL; 9Zend_Log_Writer_StreamL: 5Zend_Log_Writer_NullL9 5Zend_Log_Writer_MockL8 1Zend_Log_Writer_DbL7 =Zend_Log_Writer_AbstractL6 9Zend_Log_Formatter_XmlL5 ?Zend_Log_Formatter_SimpleL4 =Zend_Log_Filter_SuppressL3 =Zend_Log_Filter_PriorityL2 ;Zend_Log_Filter_MessageL1 1Zend_Log_ExceptionL0 #Zend_LocaleL/ -Zend_Locale_MathL. =Zend_Locale_Math_PhpMathL- AZend_Locale_Math_ExceptionL, 1Zend_Locale_FormatL+ 7Zend_Locale_ExceptionL* -Zend_Locale_DataL!) EZend_Locale_Data_TranslationL   [  mM4vU/sS2yZB(zD


c
%			j	*|AvQ2}cE.cC*j1^%h;^$               %| MZend_Search_Lucene_Document_HtmlL,{ [Zend_Search_Lucene_Analysis_TokenFilterL6z oZend_Search_Lucene_Analysis_TokenFilter_StopWordsL7y qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsL:x wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8L6w oZend_Search_Lucene_Analysis_TokenFilter_LowerCaseL&v OZend_Search_Lucene_Analysis_TokenL)u UZend_Search_Lucene_Analysis_AnalyzerL0t cZend_Search_Lucene_Analysis_Analyzer_CommonL8s sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumLIr Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitiveL5q mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8LFp Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitiveL8o sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumLIn Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitiveL5m mZend_Search_Lucene_Analysis_Analyzer_Common_TextLFl Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiveLk 7Zend_Search_ExceptionLj -Zend_Rest_ServerLi AZend_Rest_Server_ExceptionLh 3Zend_Rest_ExceptionLg -Zend_Rest_ClientLf ;Zend_Rest_Client_ResultLe AZend_Rest_Client_ExceptionLd 'Zend_RegistryLc Zend_PdfL!b EZend_Pdf_UpdateInfoContainerLa -Zend_Pdf_TrailerL` ;Zend_Pdf_Trailer_KeeperL_ AZend_Pdf_Trailer_GeneratorL^ )Zend_Pdf_StyleL] 7Zend_Pdf_StringParserL\ /Zend_Pdf_ResourceL#[ IZend_Pdf_Resource_ImageFactoryLZ ;Zend_Pdf_Resource_ImageL!Y EZend_Pdf_Resource_Image_TiffL X CZend_Pdf_Resource_Image_PngL!W EZend_Pdf_Resource_Image_JpegLV 9Zend_Pdf_Resource_FontL!U EZend_Pdf_Resource_Font_Type0L"T GZend_Pdf_Resource_Font_SimpleL+S YZend_Pdf_Resource_Font_Simple_StandardL8R sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsL6Q oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanL7P qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicL;O yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicL5N mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldL2M gZend_Pdf_Resource_Font_Simple_Standard_SymbolL<L {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueLAK Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliqueL9J uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldL5I mZend_Pdf_Resource_Font_Simple_Standard_HelveticaL:H wZend_Pdf_Resource_Font_Simple_Standard_CourierObliqueL>G Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliqueL7F qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldL3E iZend_Pdf_Resource_Font_Simple_Standard_CourierL)D UZend_Pdf_Resource_Font_Simple_ParsedL2C gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypeL*B WZend_Pdf_Resource_Font_FontDescriptorL%A MZend_Pdf_Resource_Font_ExtractedL#@ IZend_Pdf_Resource_Font_CidFontL,? [Zend_Pdf_Resource_Font_CidFont_TrueTypeL> /Zend_Pdf_PhpArrayL= +Zend_Pdf_ParserL< 9Zend_Pdf_Parser_StreamL; 'Zend_Pdf_PageL: )Zend_Pdf_ImageL9 'Zend_Pdf_FontL 8 CZend_Pdf_Filter_CompressionL$7 KZend_Pdf_Filter_Compression_LzwL&6 OZend_Pdf_Filter_Compression_FlateL5 =Zend_Pdf_Filter_AsciiHexL4 ;Zend_Pdf_Filter_Ascii85L"3 GZend_Pdf_FileParserDataSourceL)2 UZend_Pdf_FileParserDataSource_StringL'1 QZend_Pdf_FileParserDataSource_FileL0 3Zend_Pdf_FileParserL/ ?Zend_Pdf_FileParser_ImageL". GZend_Pdf_FileParser_Image_PngL- =Zend_Pdf_FileParser_FontL&, OZend_Pdf_FileParser_Font_OpenTypeL/+ aZend_Pdf_FileParser_Font_OpenType_TrueTypeL* 1Zend_Pdf_ExceptionL) ;Zend_Pdf_ElementFactoryL"( GZend_Pdf_ElementFactory_ProxyL' -Zend_Pdf_ElementL& ;Zend_Pdf_Element_StringL#% IZend_Pdf_Element_String_BinaryL$ ;Zend_Pdf_Element_StreamL# AZend_Pdf_Element_ReferenceL%" MZend_Pdf_Element_Reference_TableL   \  wR _!f>_1l>



N
				i	4n=}TeJ-hBdG[9a8b?                       $X KZend_Service_Nirvanix_ExceptionLW 3Zend_Service_FlickrL"V GZend_Service_Flickr_ResultSetLU AZend_Service_Flickr_ResultLT ?Zend_Service_Flickr_ImageLS 9Zend_Service_ExceptionLR 9Zend_Service_DeliciousL&Q OZend_Service_Delicious_SimplePostL$P KZend_Service_Delicious_PostListL O CZend_Service_Delicious_PostL%N MZend_Service_Delicious_ExceptionL M CZend_Service_AudioscrobblerLL 3Zend_Service_AmazonL'K QZend_Service_Amazon_SimilarProductL"J GZend_Service_Amazon_ResultSetLI ?Zend_Service_Amazon_QueryL!H EZend_Service_Amazon_OfferSetLG ?Zend_Service_Amazon_OfferL&F OZend_Service_Amazon_ListmaniaListLE =Zend_Service_Amazon_ItemLD ?Zend_Service_Amazon_ImageL(C SZend_Service_Amazon_EditorialReviewL'B QZend_Service_Amazon_CustomerReviewL$A KZend_Service_Amazon_AccessoriesL@ 5Zend_Service_AkismetL? 7Zend_Service_AbstractL> 9Zend_Server_ReflectionL'= QZend_Server_Reflection_ReturnValueL%< MZend_Server_Reflection_PrototypeL%; MZend_Server_Reflection_ParameterL : CZend_Server_Reflection_NodeL"9 GZend_Server_Reflection_MethodL$8 KZend_Server_Reflection_FunctionL-7 ]Zend_Server_Reflection_Function_AbstractL%6 MZend_Server_Reflection_ExceptionL!5 EZend_Server_Reflection_ClassL4 7Zend_Server_ExceptionL3 5Zend_Server_AbstractL2 1Zend_Search_LuceneL$1 KZend_Search_Lucene_Storage_FileL+0 YZend_Search_Lucene_Storage_File_MemoryL// aZend_Search_Lucene_Storage_File_FilesystemL). UZend_Search_Lucene_Storage_DirectoryL4- kZend_Search_Lucene_Storage_Directory_FilesystemL%, MZend_Search_Lucene_Search_WeightL*+ WZend_Search_Lucene_Search_Weight_TermL,* [Zend_Search_Lucene_Search_Weight_PhraseL/) aZend_Search_Lucene_Search_Weight_MultiTermL+( YZend_Search_Lucene_Search_Weight_EmptyL-' ]Zend_Search_Lucene_Search_Weight_BooleanL)& UZend_Search_Lucene_Search_SimilarityL1% eZend_Search_Lucene_Search_Similarity_DefaultL)$ UZend_Search_Lucene_Search_QueryTokenL3# iZend_Search_Lucene_Search_QueryParserExceptionL1" eZend_Search_Lucene_Search_QueryParserContextL*! WZend_Search_Lucene_Search_QueryParserL)  UZend_Search_Lucene_Search_QueryLexerL' QZend_Search_Lucene_Search_QueryHitL) UZend_Search_Lucene_Search_QueryEntryL. _Zend_Search_Lucene_Search_QueryEntry_TermL2 gZend_Search_Lucene_Search_QueryEntry_SubqueryL0 cZend_Search_Lucene_Search_QueryEntry_PhraseL$ KZend_Search_Lucene_Search_QueryL- ]Zend_Search_Lucene_Search_Query_WildcardL) UZend_Search_Lucene_Search_Query_TermL* WZend_Search_Lucene_Search_Query_RangeL+ YZend_Search_Lucene_Search_Query_PhraseL. _Zend_Search_Lucene_Search_Query_MultiTermL2 gZend_Search_Lucene_Search_Query_InsignificantL* WZend_Search_Lucene_Search_Query_FuzzyL* WZend_Search_Lucene_Search_Query_EmptyL, [Zend_Search_Lucene_Search_Query_BooleanL: wZend_Search_Lucene_Search_BooleanExpressionRecognizerL =Zend_Search_Lucene_ProxyL% MZend_Search_Lucene_PriorityQueueL# IZend_Search_Lucene_LockManagerL$ KZend_Search_Lucene_Index_WriterL& OZend_Search_Lucene_Index_TermInfoL"
 GZend_Search_Lucene_Index_TermL+	 YZend_Search_Lucene_Index_SegmentWriterL8 sZend_Search_Lucene_Index_SegmentWriter_StreamWriterL: wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterL+ YZend_Search_Lucene_Index_SegmentMergerL6 oZend_Search_Lucene_Index_SegmentInfoPriorityQueueL) UZend_Search_Lucene_Index_SegmentInfoL' QZend_Search_Lucene_Index_FieldInfoL. _Zend_Search_Lucene_Index_DictionaryLoaderL! EZend_Search_Lucene_FSMActionL  9Zend_Search_Lucene_FSML =Zend_Search_Lucene_FieldL!~ EZend_Search_Lucene_ExceptionL } CZend_Search_Lucene_DocumentL     {tmf_XQJC<5.' xqjc\UNG@92+$|ung`YRKD=6/(!SLE>70)"



















z
s
l
e
^
W
P
I
B
;
4
-
&





																			~	w	p	i	b	[	T	M	F	?	8	1	*	#					 {tmf_XQJC<5.' xqjc\UNG@92+$|ung`YRKD=6/(!yrkd]VOHA:3,%yrkd]VOHA:3,%	}vohaZ	yrkd]VOHA:3,%	}vohaZ         k    /  Q  i      '  :  P  n    .  9  ]      8  O  f  x      <  f      ,  O  n      4  G  Z  l    4  P  V  ~w  }  ǉd  Ɖ  ŉ/  ĉ:  ÉL  s    3  F  a  x      4  n  m2  kJ  j_  im  h	  g.  fT  e_  ds  c  b8  aU  `i  _   ^  ]-  \:  [W  Z  Y!  X*  WB  Vh  U  T   S6  RM  Pd  Ov  N  M&  LP  Kf  Jr  I  H4  GP  Fc  Ez  D  C#  B:  A[  @  ?  >!  =H  <f  ;~  :  8+  7>  6M  5i  4  31  29  1U  0z  /  .,  -E  ,\  +o  *|  )  (C  '^  &g  %
  $*  #H  "X   q      /  R  y      ?  \  v    #  6  C  a    %  /  R  r    
  7  M  \  w  #  >  G  j   
  '  3  H  V  q    9  @  d    "  /  D  S  l    3  툡9  술]  눟~  ꈟ  鈞*  舝?  爜N  戛g  创  䈚/  ㈙5  ∘X  ሗy    ߈%  ވ:  ݈I  ܈a  ۈ  ڈ+  و1  ؈S  ׈u  ֈ  Ո"  ӈ7  ҈G  ш^  Ј  ψ(  Έ/  ͈Q  ̈r  ˈ  ʈ  Ɉ4  ȈC  ǈ_  ƈ  ň(  Ĉ/  ÈM  o      1  A  X  |  !  (  G  j      ,  A  O    8  S    :    S    8  [  y      )  P  o    )  G  e  w    3  J  [    9  Z    ?  |  O    9  d         0  U  s    ,  G  h  {  ^  k    /  Q  i      '  :  P  n    .  9  ]      8  O  f  x      <  f      ,  O  n      4  G  Z  l    4  P  V  ~w  }  |9  {R  zi  y   x  w$  v;  u\  t  s  r$  qI  ph  o    }7  |N  {b  z   y9  x`  w  v@  uu  tH  s  r9  qg  p  o  n&  m3  lV  ky  j  i3  hH  gl  f  e   c?  bV  am  `   _:  ^g  ]
  \E  [p  ZA  Y  XC  Wk  V	  U"  T3  SA  R[  Q   P  O>  NR  Mt  L  K(  JH  Hb  Gx  F  E;  Dn  C  B>  At  @G  ?  >5  =f  <  ;  :  90  8S  7u  6  5-  4I  3h  2z  1  .5  -K  ,]  +  *:  )[  (  '6  &  %X  $	  #1  "O  !h   s     "  G  d      :  U        @  a      1  I  W  g    !  I   i  aAuP%`@`4a/



t
M
#				o	D	a7e<wM( a4pM&tU4`=jN,                       A ?Zend_Validate_Hostname_AtL@ /Zend_Validate_HexL? ?Zend_Validate_GreaterThanL> 3Zend_Validate_FloatL= ;Zend_Validate_ExceptionL< AZend_Validate_EmailAddressL; 5Zend_Validate_DigitsL: 1Zend_Validate_DateL9 3Zend_Validate_CcnumL8 7Zend_Validate_BetweenL7 7Zend_Validate_BarcodeL6 AZend_Validate_Barcode_UpcAL 5 CZend_Validate_Barcode_Ean13L4 3Zend_Validate_AlphaL3 3Zend_Validate_AlnumL2 9Zend_Validate_AbstractL1 Zend_UriL0 'Zend_Uri_HttpL/ 1Zend_Uri_ExceptionL. )Zend_TranslateL- =Zend_Translate_ExceptionL, 9Zend_Translate_AdapterL!+ EZend_Translate_Adapter_XmlTmL!* EZend_Translate_Adapter_XliffL) AZend_Translate_Adapter_TmxL( AZend_Translate_Adapter_TbxL' ?Zend_Translate_Adapter_QtL#& IZend_Translate_Adapter_GettextL% AZend_Translate_Adapter_CsvL!$ EZend_Translate_Adapter_ArrayL# 'Zend_TimeSyncL" 1Zend_TimeSync_SntpL! 9Zend_TimeSync_ProtocolL  /Zend_TimeSync_NtpL ;Zend_TimeSync_ExceptionL %Zend_SessionL) UZend_Session_Validator_HttpUserAgentL$ KZend_Session_Validator_AbstractL 9Zend_Session_NamespaceL 9Zend_Session_ExceptionL 7Zend_Session_AbstractL 1Zend_Service_YahooL$ KZend_Service_Yahoo_WebResultSetL! EZend_Service_Yahoo_WebResultL& OZend_Service_Yahoo_VideoResultSetL# IZend_Service_Yahoo_VideoResultL! EZend_Service_Yahoo_ResultSetL ?Zend_Service_Yahoo_ResultL) UZend_Service_Yahoo_PageDataResultSetL& OZend_Service_Yahoo_PageDataResultL% MZend_Service_Yahoo_NewsResultSetL" GZend_Service_Yahoo_NewsResultL& OZend_Service_Yahoo_LocalResultSetL# IZend_Service_Yahoo_LocalResultL+ YZend_Service_Yahoo_InlinkDataResultSetL(
 SZend_Service_Yahoo_InlinkDataResultL&	 OZend_Service_Yahoo_ImageResultSetL# IZend_Service_Yahoo_ImageResultL =Zend_Service_Yahoo_ImageL ;Zend_Service_TechnoratiL# IZend_Service_Technorati_WeblogL" GZend_Service_Technorati_UtilsL* WZend_Service_Technorati_TagsResultSetL' QZend_Service_Technorati_TagsResultL) UZend_Service_Technorati_TagResultSetL&  OZend_Service_Technorati_TagResultL, [Zend_Service_Technorati_SearchResultSetL)~ UZend_Service_Technorati_SearchResultL&} OZend_Service_Technorati_ResultSetL#| IZend_Service_Technorati_ResultL*{ WZend_Service_Technorati_KeyInfoResultL*z WZend_Service_Technorati_GetInfoResultL&y OZend_Service_Technorati_ExceptionL1x eZend_Service_Technorati_DailyCountsResultSetL.w _Zend_Service_Technorati_DailyCountsResultL,v [Zend_Service_Technorati_CosmosResultSetL)u UZend_Service_Technorati_CosmosResultL+t YZend_Service_Technorati_BlogInfoResultL#s IZend_Service_Technorati_AuthorLr ;Zend_Service_StrikeIronL(q SZend_Service_StrikeIron_ZipCodeInfoL2p gZend_Service_StrikeIron_USAddressVerificationL-o ]Zend_Service_StrikeIron_SalesUseTaxBasicL&n OZend_Service_StrikeIron_ExceptionL&m OZend_Service_StrikeIron_DecoratorL!l EZend_Service_StrikeIron_BaseLk ;Zend_Service_SlideShareL&j OZend_Service_SlideShare_SlideShowL&i OZend_Service_SlideShare_ExceptionLh 1Zend_Service_SimpyL$g KZend_Service_Simpy_WatchlistSetL*f WZend_Service_Simpy_WatchlistFilterSetL'e QZend_Service_Simpy_WatchlistFilterL!d EZend_Service_Simpy_WatchlistLc ?Zend_Service_Simpy_TagSetLb 9Zend_Service_Simpy_TagLa AZend_Service_Simpy_NoteSetL` ;Zend_Service_Simpy_NoteL_ AZend_Service_Simpy_LinkSetL!^ EZend_Service_Simpy_LinkQueryL] ;Zend_Service_Simpy_LinkL\ 7Zend_Service_NirvanixL#[ IZend_Service_Nirvanix_ResponseL)Z UZend_Service_Nirvanix_Namespace_ImfsL)Y UZend_Service_Nirvanix_Namespace_BaseL   p  xV4cD(^=jH$kH%



s
Q
-

					a	6	EhK9c<!hK*fAuT:tS/oN2               1 CZend_Auth_Storage_ExceptionM0 -Zend_Auth_ResultM/ 3Zend_Auth_ExceptionM. =Zend_Auth_Adapter_OpenIdM- 9Zend_Auth_Adapter_LdapM, AZend_Auth_Adapter_InfoCardM+ 9Zend_Auth_Adapter_HttpM)* UZend_Auth_Adapter_Http_Resolver_FileM.) _Zend_Auth_Adapter_Http_Resolver_ExceptionM ( CZend_Auth_Adapter_ExceptionM' =Zend_Auth_Adapter_DigestM& ?Zend_Auth_Adapter_DbTableM% Zend_AclM$ 'Zend_Acl_RoleM# 9Zend_Acl_Role_RegistryM%" MZend_Acl_Role_Registry_ExceptionM! /Zend_Acl_ResourceM  1Zend_Acl_ExceptionM /Zend_XmlRpc_ValueL =Zend_XmlRpc_Value_StructL =Zend_XmlRpc_Value_StringL =Zend_XmlRpc_Value_ScalarL ?Zend_XmlRpc_Value_IntegerL  CZend_XmlRpc_Value_ExceptionL =Zend_XmlRpc_Value_DoubleL AZend_XmlRpc_Value_DateTimeL! EZend_XmlRpc_Value_CollectionL ?Zend_XmlRpc_Value_BooleanL =Zend_XmlRpc_Value_Base64L ;Zend_XmlRpc_Value_ArrayL 1Zend_XmlRpc_ServerL =Zend_XmlRpc_Server_FaultL! EZend_XmlRpc_Server_ExceptionL =Zend_XmlRpc_Server_CacheL 5Zend_XmlRpc_ResponseL ?Zend_XmlRpc_Response_HttpL 3Zend_XmlRpc_RequestL ?Zend_XmlRpc_Request_StdinL =Zend_XmlRpc_Request_HttpL
 /Zend_XmlRpc_FaultL	 7Zend_XmlRpc_ExceptionL 1Zend_XmlRpc_ClientL# IZend_XmlRpc_Client_ServerProxyL+ YZend_XmlRpc_Client_ServerIntrospectionL+ YZend_XmlRpc_Client_IntrospectExceptionL% MZend_XmlRpc_Client_HttpExceptionL& OZend_XmlRpc_Client_FaultExceptionL! EZend_XmlRpc_Client_ExceptionL Zend_ViewL  5Zend_View_Helper_UrlL AZend_View_Helper_TranslateL!~ EZend_View_Helper_PlaceholderL*} WZend_View_Helper_Placeholder_RegistryL4| kZend_View_Helper_Placeholder_Registry_ExceptionL+{ YZend_View_Helper_Placeholder_ContainerL6z oZend_View_Helper_Placeholder_Container_StandaloneL5y mZend_View_Helper_Placeholder_Container_ExceptionL4x kZend_View_Helper_Placeholder_Container_AbstractL!w EZend_View_Helper_PartialLoopLv =Zend_View_Helper_PartialL'u QZend_View_Helper_Partial_ExceptionLt ;Zend_View_Helper_LayoutLs 7Zend_View_Helper_JsonL"r GZend_View_Helper_InlineScriptLq ?Zend_View_Helper_HtmlListLp AZend_View_Helper_HeadTitleLo AZend_View_Helper_HeadStyleL n CZend_View_Helper_HeadScriptLm ?Zend_View_Helper_HeadMetaLl ?Zend_View_Helper_HeadLinkL"k GZend_View_Helper_FormTextareaLj ?Zend_View_Helper_FormTextL i CZend_View_Helper_FormSubmitL h CZend_View_Helper_FormSelectLg AZend_View_Helper_FormResetLf AZend_View_Helper_FormRadioL"e GZend_View_Helper_FormPasswordLd ?Zend_View_Helper_FormNoteL'c QZend_View_Helper_FormMultiCheckboxLb AZend_View_Helper_FormLabelLa AZend_View_Helper_FormImageL ` CZend_View_Helper_FormHiddenL_ ?Zend_View_Helper_FormFileL ^ CZend_View_Helper_FormErrorsL!] EZend_View_Helper_FormElementL"\ GZend_View_Helper_FormCheckboxL [ CZend_View_Helper_FormButtonLZ 7Zend_View_Helper_FormLY ?Zend_View_Helper_FieldsetLX =Zend_View_Helper_DoctypeL!W EZend_View_Helper_DeclareVarsLV ;Zend_View_Helper_ActionLU 3Zend_View_ExceptionLT 1Zend_View_AbstractLS %Zend_VersionLR 'Zend_ValidateLQ AZend_Validate_StringLengthLP 3Zend_Validate_RegexLO 9Zend_Validate_NotEmptyLN 9Zend_Validate_LessThanLM -Zend_Validate_IpLL /Zend_Validate_IntLK 7Zend_Validate_InArrayLJ ;Zend_Validate_IdenticalLI 9Zend_Validate_HostnameLH ?Zend_Validate_Hostname_SeLG ?Zend_Validate_Hostname_NoLF ?Zend_Validate_Hostname_LiLE ?Zend_Validate_Hostname_HuLD ?Zend_Validate_Hostname_FiLC ?Zend_Validate_Hostname_DeLB ?Zend_Validate_Hostname_ChL   a  i>nDeHsP1 jB




j
@
				M	d:xO.}U6dAxU8vHwL!|R&              &> OZend_Pdf_ElementFactory_InterfaceN$= KZend_Memory_Container_InterfaceN)< UZend_Mail_Storage_Writable_InterfaceN'; QZend_Mail_Storage_Folder_InterfaceN!: EZend_Log_Formatter_InterfaceN9 ?Zend_Log_Filter_InterfaceN'8 QZend_Loader_PluginLoader_InterfaceN37 iZend_InfoCard_Xml_Security_Transform_InterfaceN(6 SZend_InfoCard_Xml_KeyInfo_InterfaceN(5 SZend_InfoCard_Xml_Element_InterfaceN*4 WZend_InfoCard_Xml_Assertion_InterfaceN-3 ]Zend_InfoCard_Cipher_Symmetric_InterfaceN72 qZend_InfoCard_Cipher_Symmetric_Aes256cbc_InterfaceN71 qZend_InfoCard_Cipher_Symmetric_Aes128cbc_InterfaceN+0 YZend_InfoCard_Cipher_Pki_Rsa_InterfaceN'/ QZend_InfoCard_Cipher_Pki_InterfaceN$. KZend_InfoCard_Adapter_InterfaceN'- QZend_Http_Client_Adapter_InterfaceN, AZend_Gdata_App_MediaSourceN"+ GZend_Form_Decorator_InterfaceN* 7Zend_Filter_InterfaceN ) CZend_Feed_Builder_InterfaceN ( CZend_Db_Statement_InterfaceN+' YZend_Controller_Router_Route_InterfaceN%& MZend_Controller_Router_InterfaceN)% UZend_Controller_Dispatcher_InterfaceN!$ EZend_Cache_Backend_InterfaceN # CZend_Auth_Storage_InterfaceN " CZend_Auth_Adapter_InterfaceN.! _Zend_Auth_Adapter_Http_Resolver_InterfaceN  ;Zend_Acl_Role_InterfaceN  CZend_Acl_Resource_InterfaceN ?Zend_Acl_Assert_InterfaceN 3Zend_View_InterfaceM ;Zend_Validate_InterfaceM% MZend_Validate_Hostname_InterfaceM% MZend_Session_Validator_InterfaceM' QZend_Session_SaveHandler_InterfaceM 7Zend_Server_InterfaceM! EZend_Search_Lucene_InterfaceM 9Zend_Request_InterfaceM ?Zend_Pdf_Filter_InterfaceM& OZend_Pdf_ElementFactory_InterfaceM$ KZend_Memory_Container_InterfaceM) UZend_Mail_Storage_Writable_InterfaceM' QZend_Mail_Storage_Folder_InterfaceM! EZend_Log_Formatter_InterfaceM ?Zend_Log_Filter_InterfaceM' QZend_Loader_PluginLoader_InterfaceM3 iZend_InfoCard_Xml_Security_Transform_InterfaceM( SZend_InfoCard_Xml_KeyInfo_InterfaceM( SZend_InfoCard_Xml_Element_InterfaceM*
 WZend_InfoCard_Xml_Assertion_InterfaceM-	 ]Zend_InfoCard_Cipher_Symmetric_InterfaceM7 qZend_InfoCard_Cipher_Symmetric_AES256CBC_InterfaceM7 qZend_InfoCard_Cipher_Symmetric_AES128CBC_InterfaceM+ YZend_InfoCard_Cipher_PKI_RSA_InterfaceM' QZend_InfoCard_Cipher_PKI_InterfaceM$ KZend_InfoCard_Adapter_InterfaceM' QZend_Http_Client_Adapter_InterfaceM AZend_Gdata_App_MediaSourceM" GZend_Form_Decorator_InterfaceM  7Zend_Filter_InterfaceM  CZend_Feed_Builder_InterfaceM ~ CZend_Db_Statement_InterfaceM+} YZend_Controller_Router_Route_InterfaceM%| MZend_Controller_Router_InterfaceM){ UZend_Controller_Dispatcher_InterfaceM!z EZend_Cache_Backend_InterfaceM y CZend_Auth_Storage_InterfaceM x CZend_Auth_Adapter_InterfaceM.w _Zend_Auth_Adapter_Http_Resolver_InterfaceMv ;Zend_Acl_Role_InterfaceM u CZend_Acl_Resource_InterfaceMt ?Zend_Acl_Assert_InterfaceMs 3Zend_View_InterfaceLr ;Zend_Validate_InterfaceL%q MZend_Validate_Hostname_InterfaceL%p MZend_Session_Validator_InterfaceL'o QZend_Session_SaveHandler_InterfaceLn 7Zend_Server_InterfaceL!m EZend_Search_Lucene_InterfaceLl 9Zend_Request_InterfaceLk ?Zend_Pdf_Filter_InterfaceL&j OZend_Pdf_ElementFactory_InterfaceL$i KZend_Memory_Container_InterfaceL)h UZend_Mail_Storage_Writable_InterfaceL'g QZend_Mail_Storage_Folder_InterfaceL!f EZend_Log_Formatter_InterfaceLe ?Zend_Log_Filter_InterfaceL'd QZend_Loader_PluginLoader_InterfaceL3c iZend_InfoCard_Xml_Security_Transform_InterfaceL(b SZend_InfoCard_Xml_KeyInfo_InterfaceL(a SZend_InfoCard_Xml_Element_InterfaceL*` WZend_InfoCard_Xml_Assertion_InterfaceL-_ ]Zend_InfoCard_Cipher_Symmetric_InterfaceL7^ qZend_InfoCard_Cipher_Symmetric_Aes256cbc_InterfaceL   j  e@dCye?#g+K 



f
G
					Z	/		`;tL#yT4sW5
xY4cC!tS<W6                =Zend_Db_Statement_OracleM' QZend_Db_Statement_Oracle_ExceptionM =Zend_Db_Statement_MysqliM' QZend_Db_Statement_Mysqli_ExceptionM AZend_Db_Statement_FirebirdM) UZend_Db_Statement_Firebird_ExceptionM  CZend_Db_Statement_ExceptionM 7Zend_Db_Statement_Db2M$ KZend_Db_Statement_Db2_ExceptionM )Zend_Db_SelectM =Zend_Db_Select_ExceptionM -Zend_Db_ProfilerM 9Zend_Db_Profiler_QueryM AZend_Db_Profiler_ExceptionM %Zend_Db_ExprM /Zend_Db_ExceptionM AZend_Db_Adapter_Pdo_SqliteM
 ?Zend_Db_Adapter_Pdo_PgsqlM	 ;Zend_Db_Adapter_Pdo_OciM ?Zend_Db_Adapter_Pdo_MysqlM ?Zend_Db_Adapter_Pdo_MssqlM ;Zend_Db_Adapter_Pdo_IbmM  CZend_Db_Adapter_Pdo_Ibm_IdsM  CZend_Db_Adapter_Pdo_Ibm_Db2M! EZend_Db_Adapter_Pdo_FirebirdM! EZend_Db_Adapter_Pdo_AbstractM 9Zend_Db_Adapter_OracleM%  MZend_Db_Adapter_Oracle_ExceptionM 9Zend_Db_Adapter_MysqliM%~ MZend_Db_Adapter_Mysqli_ExceptionM} =Zend_Db_Adapter_FirebirdM'| QZend_Db_Adapter_Firebird_ExceptionM{ ?Zend_Db_Adapter_ExceptionMz 3Zend_Db_Adapter_Db2M"y GZend_Db_Adapter_Db2_ExceptionMx =Zend_Db_Adapter_AbstractMw Zend_DateMv 3Zend_Date_ExceptionMu 5Zend_Date_DateObjectMt -Zend_Date_CitiesMs 'Zend_CurrencyMr ;Zend_Currency_ExceptionM!q EZend_Controller_Router_RouteM(p SZend_Controller_Router_Route_StaticM'o QZend_Controller_Router_Route_RegexM(n SZend_Controller_Router_Route_ModuleM#m IZend_Controller_Router_RewriteM%l MZend_Controller_Router_ExceptionM$k KZend_Controller_Router_AbstractM"j GZend_Controller_Response_HttpM'i QZend_Controller_Response_ExceptionM!h EZend_Controller_Response_CliM&g OZend_Controller_Response_AbstractM#f IZend_Controller_Request_SimpleM!e EZend_Controller_Request_HttpM&d OZend_Controller_Request_ExceptionM&c OZend_Controller_Request_Apache404M%b MZend_Controller_Request_AbstractM(a SZend_Controller_Plugin_ErrorHandlerM"` GZend_Controller_Plugin_BrokerM'_ QZend_Controller_Plugin_ActionStackM$^ KZend_Controller_Plugin_AbstractM] 7Zend_Controller_FrontM\ ?Zend_Controller_ExceptionM([ SZend_Controller_Dispatcher_StandardM)Z UZend_Controller_Dispatcher_ExceptionM(Y SZend_Controller_Dispatcher_AbstractMX 9Zend_Controller_ActionM(W SZend_Controller_Action_HelperBrokerM/V aZend_Controller_Action_Helper_ViewRendererM&U OZend_Controller_Action_Helper_UrlM-T ]Zend_Controller_Action_Helper_RedirectorM'S QZend_Controller_Action_Helper_JsonM1R eZend_Controller_Action_Helper_FlashMessengerM0Q cZend_Controller_Action_Helper_ContextSwitchM<P {Zend_Controller_Action_Helper_AutoCompleteScriptaculousM3O iZend_Controller_Action_Helper_AutoCompleteDojoM8N sZend_Controller_Action_Helper_AutoComplete_AbstractM.M _Zend_Controller_Action_Helper_AjaxContextM.L _Zend_Controller_Action_Helper_ActionStackM+K YZend_Controller_Action_Helper_AbstractM%J MZend_Controller_Action_ExceptionMI 3Zend_Console_GetoptM"H GZend_Console_Getopt_ExceptionMG #Zend_ConfigMF +Zend_Config_XmlME +Zend_Config_IniMD 7Zend_Config_ExceptionMC !Zend_CacheMB =Zend_Cache_Frontend_PageMA AZend_Cache_Frontend_OutputM!@ EZend_Cache_Frontend_FunctionM? =Zend_Cache_Frontend_FileM> ?Zend_Cache_Frontend_ClassM= 5Zend_Cache_ExceptionM< +Zend_Cache_CoreM; 1Zend_Cache_BackendM$: KZend_Cache_Backend_ZendPlatformM9 ;Zend_Cache_Backend_TestM8 ?Zend_Cache_Backend_SqliteM!7 EZend_Cache_Backend_MemcachedM6 ;Zend_Cache_Backend_FileM5 9Zend_Cache_Backend_ApcM4 Zend_AuthM3 ?Zend_Auth_Storage_SessionM$2 KZend_Auth_Storage_NonPersistentM   q gD iYF/pV<jM2kN,




v
G
				q	H	~Y4}T0`?vU4pKlDtK$c=                                           $ KZend_Gdata_App_Extension_PersonM" GZend_Gdata_App_Extension_NameM"
 GZend_Gdata_App_Extension_LogoM"	 GZend_Gdata_App_Extension_LinkM  CZend_Gdata_App_Extension_IdM" GZend_Gdata_App_Extension_IconM' QZend_Gdata_App_Extension_GeneratorM# IZend_Gdata_App_Extension_EmailM% MZend_Gdata_App_Extension_ElementM# IZend_Gdata_App_Extension_DraftM% MZend_Gdata_App_Extension_ControlM) UZend_Gdata_App_Extension_ContributorM%  MZend_Gdata_App_Extension_ContentM& OZend_Gdata_App_Extension_CategoryM$~ KZend_Gdata_App_Extension_AuthorM} =Zend_Gdata_App_ExceptionM| 5Zend_Gdata_App_EntryM,{ [Zend_Gdata_App_CaptchaRequiredExceptionM#z IZend_Gdata_App_BaseMediaSourceMy 3Zend_Gdata_App_BaseM*x WZend_Gdata_App_BadMethodCallExceptionM!w EZend_Gdata_App_AuthExceptionMv Zend_FormMu /Zend_Form_SubFormMt 3Zend_Form_ExceptionMs /Zend_Form_ElementMr ;Zend_Form_Element_XhtmlMq AZend_Form_Element_TextareaMp 9Zend_Form_Element_TextMo =Zend_Form_Element_SubmitMn =Zend_Form_Element_SelectMm ;Zend_Form_Element_ResetMl ;Zend_Form_Element_RadioMk AZend_Form_Element_PasswordM"j GZend_Form_Element_MultiselectMi ;Zend_Form_Element_MultiMh ;Zend_Form_Element_ImageMg =Zend_Form_Element_HiddenM f CZend_Form_Element_ExceptionMe AZend_Form_Element_CheckboxMd =Zend_Form_Element_ButtonMc 9Zend_Form_DisplayGroupM#b IZend_Form_Decorator_ViewHelperMa ?Zend_Form_Decorator_LabelM ` CZend_Form_Decorator_HtmlTagM%_ MZend_Form_Decorator_FormElementsM^ =Zend_Form_Decorator_FormM!] EZend_Form_Decorator_FieldsetM"\ GZend_Form_Decorator_ExceptionM[ AZend_Form_Decorator_ErrorsM$Z KZend_Form_Decorator_DtDdWrapperM!Y EZend_Form_Decorator_CallbackM!X EZend_Form_Decorator_AbstractMW #Zend_FilterM+V YZend_Filter_Word_UnderscoreToSeparatorM&U OZend_Filter_Word_UnderscoreToDashM+T YZend_Filter_Word_UnderscoreToCamelCaseM*S WZend_Filter_Word_SeparatorToSeparatorM%R MZend_Filter_Word_SeparatorToDashM*Q WZend_Filter_Word_SeparatorToCamelCaseM(P SZend_Filter_Word_Separator_AbstractM&O OZend_Filter_Word_DashToUnderscoreM%N MZend_Filter_Word_DashToSeparatorM%M MZend_Filter_Word_DashToCamelCaseM+L YZend_Filter_Word_CamelCaseToUnderscoreM*K WZend_Filter_Word_CamelCaseToSeparatorM%J MZend_Filter_Word_CamelCaseToDashMI 7Zend_Filter_StripTagsMH 9Zend_Filter_StringTrimMG ?Zend_Filter_StringToUpperMF ?Zend_Filter_StringToLowerME 5Zend_Filter_RealPathMD ;Zend_Filter_PregReplaceMC +Zend_Filter_IntMB /Zend_Filter_InputMA 7Zend_Filter_InflectorM@ =Zend_Filter_HtmlEntitiesM? 7Zend_Filter_ExceptionM> +Zend_Filter_DirM= 1Zend_Filter_DigitsM< 5Zend_Filter_BaseNameM; /Zend_Filter_AlphaM: /Zend_Filter_AlnumM9 Zend_FeedM8 'Zend_Feed_RssM7 3Zend_Feed_ExceptionM6 3Zend_Feed_Entry_RssM5 5Zend_Feed_Entry_AtomM4 =Zend_Feed_Entry_AbstractM3 /Zend_Feed_ElementM2 /Zend_Feed_BuilderM1 =Zend_Feed_Builder_HeaderM$0 KZend_Feed_Builder_Header_ItunesM / CZend_Feed_Builder_ExceptionM. ;Zend_Feed_Builder_EntryM- )Zend_Feed_AtomM, 1Zend_Feed_AbstractM+ )Zend_ExceptionM* !Zend_DebugM) Zend_DbM( 'Zend_Db_TableM' 5Zend_Db_Table_SelectM#& IZend_Db_Table_Select_ExceptionM% 5Zend_Db_Table_RowsetM"$ GZend_Db_Table_Rowset_AbstractM# /Zend_Db_Table_RowM " CZend_Db_Table_Row_ExceptionM! AZend_Db_Table_Row_AbstractM  ;Zend_Db_Table_ExceptionM 9Zend_Db_Table_AbstractM /Zend_Db_StatementM 7Zend_Db_Statement_PdoM ?Zend_Db_Statement_Pdo_IbmM   c  [2vZ3qJ.V*t7



p
Q
'						f	;	g@i?uAd3vU8 xHzN%hE#                           o -Zend_Gdata_GappsMn AZend_Gdata_Gapps_UserQueryMm ?Zend_Gdata_Gapps_UserFeedMl AZend_Gdata_Gapps_UserEntryM&k OZend_Gdata_Gapps_ServiceExceptionMj 9Zend_Gdata_Gapps_QueryM#i IZend_Gdata_Gapps_NicknameQueryM"h GZend_Gdata_Gapps_NicknameFeedM#g IZend_Gdata_Gapps_NicknameEntryM%f MZend_Gdata_Gapps_Extension_QuotaM(e SZend_Gdata_Gapps_Extension_NicknameM$d KZend_Gdata_Gapps_Extension_NameM%c MZend_Gdata_Gapps_Extension_LoginM)b UZend_Gdata_Gapps_Extension_EmailListMa 9Zend_Gdata_Gapps_ErrorM-` ]Zend_Gdata_Gapps_EmailListRecipientQueryM,_ [Zend_Gdata_Gapps_EmailListRecipientFeedM-^ ]Zend_Gdata_Gapps_EmailListRecipientEntryM$] KZend_Gdata_Gapps_EmailListQueryM#\ IZend_Gdata_Gapps_EmailListFeedM$[ KZend_Gdata_Gapps_EmailListEntryMZ +Zend_Gdata_FeedMY 5Zend_Gdata_ExtensionMX =Zend_Gdata_Extension_WhoMW AZend_Gdata_Extension_WhereMV ?Zend_Gdata_Extension_WhenM$U KZend_Gdata_Extension_VisibilityM&T OZend_Gdata_Extension_TransparencyM"S GZend_Gdata_Extension_ReminderM-R ]Zend_Gdata_Extension_RecurrenceExceptionM$Q KZend_Gdata_Extension_RecurrenceM P CZend_Gdata_Extension_RatingM'O QZend_Gdata_Extension_OriginalEventM0N cZend_Gdata_Extension_OpenSearchTotalResultsM.M _Zend_Gdata_Extension_OpenSearchStartIndexM0L cZend_Gdata_Extension_OpenSearchItemsPerPageM"K GZend_Gdata_Extension_FeedLinkM*J WZend_Gdata_Extension_ExtendedPropertyM%I MZend_Gdata_Extension_EventStatusM#H IZend_Gdata_Extension_EntryLinkM"G GZend_Gdata_Extension_CommentsM&F OZend_Gdata_Extension_AttendeeTypeM(E SZend_Gdata_Extension_AttendeeStatusMD +Zend_Gdata_ExifMC 5Zend_Gdata_Exif_FeedM#B IZend_Gdata_Exif_Extension_TimeM#A IZend_Gdata_Exif_Extension_TagsM$@ KZend_Gdata_Exif_Extension_ModelM#? IZend_Gdata_Exif_Extension_MakeM"> GZend_Gdata_Exif_Extension_IsoM,= [Zend_Gdata_Exif_Extension_ImageUniqueIdM$< KZend_Gdata_Exif_Extension_FStopM*; WZend_Gdata_Exif_Extension_FocalLengthM$: KZend_Gdata_Exif_Extension_FlashM'9 QZend_Gdata_Exif_Extension_ExposureM'8 QZend_Gdata_Exif_Extension_DistanceM7 7Zend_Gdata_Exif_EntryM6 -Zend_Gdata_EntryM5 +Zend_Gdata_DocsM4 7Zend_Gdata_Docs_QueryM%3 MZend_Gdata_Docs_DocumentListFeedM&2 OZend_Gdata_Docs_DocumentListEntryM1 9Zend_Gdata_ClientLoginM0 3Zend_Gdata_CalendarM!/ EZend_Gdata_Calendar_ListFeedM". GZend_Gdata_Calendar_ListEntryM-- ]Zend_Gdata_Calendar_Extension_WebContentM+, YZend_Gdata_Calendar_Extension_TimezoneM9+ uZend_Gdata_Calendar_Extension_SendEventNotificationsM+* YZend_Gdata_Calendar_Extension_SelectedM+) YZend_Gdata_Calendar_Extension_QuickAddM'( QZend_Gdata_Calendar_Extension_LinkM)' UZend_Gdata_Calendar_Extension_HiddenM(& SZend_Gdata_Calendar_Extension_ColorM.% _Zend_Gdata_Calendar_Extension_AccessLevelM#$ IZend_Gdata_Calendar_EventQueryM"# GZend_Gdata_Calendar_EventFeedM#" IZend_Gdata_Calendar_EventEntryM! 1Zend_Gdata_AuthSubM  )Zend_Gdata_AppM 3Zend_Gdata_App_UtilM# IZend_Gdata_App_MediaFileSourceM ?Zend_Gdata_App_MediaEntryM AZend_Gdata_App_IOExceptionM, [Zend_Gdata_App_InvalidArgumentExceptionM! EZend_Gdata_App_HttpExceptionM$ KZend_Gdata_App_FeedSourceParentM# IZend_Gdata_App_FeedEntryParentM 3Zend_Gdata_App_FeedM =Zend_Gdata_App_ExtensionM! EZend_Gdata_App_Extension_UriM% MZend_Gdata_App_Extension_UpdatedM# IZend_Gdata_App_Extension_TitleM" GZend_Gdata_App_Extension_TextM% MZend_Gdata_App_Extension_SummaryM& OZend_Gdata_App_Extension_SubtitleM$ KZend_Gdata_App_Extension_SourceM$ KZend_Gdata_App_Extension_RightsM' QZend_Gdata_App_Extension_PublishedM   ^  oM*d7p?zL\/




s
O
*
			~	Q	&m@
O#i@d:b>$`1pG_?      $M KZend_Gdata_YouTube_ContactEntryM#L IZend_Gdata_YouTube_CommentFeedM$K KZend_Gdata_YouTube_CommentEntryMJ ;Zend_Gdata_SpreadsheetsM*I WZend_Gdata_Spreadsheets_WorksheetFeedM+H YZend_Gdata_Spreadsheets_WorksheetEntryM,G [Zend_Gdata_Spreadsheets_SpreadsheetFeedM-F ]Zend_Gdata_Spreadsheets_SpreadsheetEntryM&E OZend_Gdata_Spreadsheets_ListQueryM%D MZend_Gdata_Spreadsheets_ListFeedM&C OZend_Gdata_Spreadsheets_ListEntryM/B aZend_Gdata_Spreadsheets_Extension_RowCountM-A ]Zend_Gdata_Spreadsheets_Extension_CustomM/@ aZend_Gdata_Spreadsheets_Extension_ColCountM+? YZend_Gdata_Spreadsheets_Extension_CellM*> WZend_Gdata_Spreadsheets_DocumentQueryM&= OZend_Gdata_Spreadsheets_CellQueryM%< MZend_Gdata_Spreadsheets_CellFeedM&; OZend_Gdata_Spreadsheets_CellEntryM: -Zend_Gdata_QueryM9 /Zend_Gdata_PhotosM 8 CZend_Gdata_Photos_UserQueryM7 AZend_Gdata_Photos_UserFeedM 6 CZend_Gdata_Photos_UserEntryM5 AZend_Gdata_Photos_TagEntryM!4 EZend_Gdata_Photos_PhotoQueryM 3 CZend_Gdata_Photos_PhotoFeedM!2 EZend_Gdata_Photos_PhotoEntryM&1 OZend_Gdata_Photos_Extension_WidthM'0 QZend_Gdata_Photos_Extension_WeightM(/ SZend_Gdata_Photos_Extension_VersionM%. MZend_Gdata_Photos_Extension_UserM*- WZend_Gdata_Photos_Extension_TimestampM*, WZend_Gdata_Photos_Extension_ThumbnailM%+ MZend_Gdata_Photos_Extension_SizeM)* UZend_Gdata_Photos_Extension_RotationM+) YZend_Gdata_Photos_Extension_QuotaLimitM-( ]Zend_Gdata_Photos_Extension_QuotaCurrentM)' UZend_Gdata_Photos_Extension_PositionM(& SZend_Gdata_Photos_Extension_PhotoIdM3% iZend_Gdata_Photos_Extension_NumPhotosRemainingM*$ WZend_Gdata_Photos_Extension_NumPhotosM)# UZend_Gdata_Photos_Extension_NicknameM%" MZend_Gdata_Photos_Extension_NameM2! gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumM)  UZend_Gdata_Photos_Extension_LocationM# IZend_Gdata_Photos_Extension_IdM' QZend_Gdata_Photos_Extension_HeightM2 gZend_Gdata_Photos_Extension_CommentingEnabledM- ]Zend_Gdata_Photos_Extension_CommentCountM' QZend_Gdata_Photos_Extension_ClientM) UZend_Gdata_Photos_Extension_ChecksumM* WZend_Gdata_Photos_Extension_BytesUsedM( SZend_Gdata_Photos_Extension_AlbumIdM' QZend_Gdata_Photos_Extension_AccessM# IZend_Gdata_Photos_CommentEntryM! EZend_Gdata_Photos_AlbumQueryM  CZend_Gdata_Photos_AlbumFeedM! EZend_Gdata_Photos_AlbumEntryM -Zend_Gdata_MediaM 7Zend_Gdata_Media_FeedM* WZend_Gdata_Media_Extension_MediaTitleM. _Zend_Gdata_Media_Extension_MediaThumbnailM) UZend_Gdata_Media_Extension_MediaTextM0 cZend_Gdata_Media_Extension_MediaRestrictionM+ YZend_Gdata_Media_Extension_MediaRatingM+ YZend_Gdata_Media_Extension_MediaPlayerM-
 ]Zend_Gdata_Media_Extension_MediaKeywordsM)	 UZend_Gdata_Media_Extension_MediaHashM* WZend_Gdata_Media_Extension_MediaGroupM0 cZend_Gdata_Media_Extension_MediaDescriptionM+ YZend_Gdata_Media_Extension_MediaCreditM. _Zend_Gdata_Media_Extension_MediaCopyrightM, [Zend_Gdata_Media_Extension_MediaContentM- ]Zend_Gdata_Media_Extension_MediaCategoryM 9Zend_Gdata_Media_EntryM AZend_Gdata_Kind_EventEntryM  )Zend_Gdata_GeoM 3Zend_Gdata_Geo_FeedM$~ KZend_Gdata_Geo_Extension_GmlPosM&} OZend_Gdata_Geo_Extension_GmlPointM)| UZend_Gdata_Geo_Extension_GeoRssWhereM{ 5Zend_Gdata_Geo_EntryMz -Zend_Gdata_GbaseM"y GZend_Gdata_Gbase_SnippetQueryM!x EZend_Gdata_Gbase_SnippetFeedM"w GZend_Gdata_Gbase_SnippetEntryMv 9Zend_Gdata_Gbase_QueryMu AZend_Gdata_Gbase_ItemQueryMt ?Zend_Gdata_Gbase_ItemFeedMs AZend_Gdata_Gbase_ItemEntryMr 7Zend_Gdata_Gbase_FeedM-q ]Zend_Gdata_Gbase_Extension_BaseAttributeMp 9Zend_Gdata_Gbase_EntryM   b  X'rD^. sGj>



^
8
					m	E	wQ)k2vM)X4	f&g6 ]?+ZA#                          / AZend_Locale_Math_ExceptionM. 1Zend_Locale_FormatM- 7Zend_Locale_ExceptionM, -Zend_Locale_DataM!+ EZend_Locale_Data_TranslationM* #Zend_LoaderM) =Zend_Loader_PluginLoaderM'( QZend_Loader_PluginLoader_ExceptionM' 7Zend_Loader_ExceptionM& Zend_LdapM% 3Zend_Ldap_ExceptionM$ #Zend_LayoutM# 7Zend_Layout_ExceptionM)" UZend_Layout_Controller_Plugin_LayoutM0! cZend_Layout_Controller_Action_Helper_LayoutM  Zend_JsonM 3Zend_Json_ExceptionM /Zend_Json_EncoderM /Zend_Json_DecoderM 'Zend_InfoCardM- ]Zend_InfoCard_Xml_SecurityTokenReferenceM AZend_InfoCard_Xml_SecurityM) UZend_InfoCard_Xml_Security_TransformM4 kZend_InfoCard_Xml_Security_Transform_XmlExcC14NM3 iZend_InfoCard_Xml_Security_Transform_ExceptionM< {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignatureM) UZend_InfoCard_Xml_Security_ExceptionM ?Zend_InfoCard_Xml_KeyInfoM& OZend_InfoCard_Xml_KeyInfo_XmlDSigM& OZend_InfoCard_Xml_KeyInfo_DefaultM' QZend_InfoCard_Xml_KeyInfo_AbstractM  CZend_InfoCard_Xml_ExceptionM# IZend_InfoCard_Xml_EncryptedKeyM$ KZend_InfoCard_Xml_EncryptedDataM+ YZend_InfoCard_Xml_EncryptedData_XmlEncM- ]Zend_InfoCard_Xml_EncryptedData_AbstractM ?Zend_InfoCard_Xml_ElementM 
 CZend_InfoCard_Xml_AssertionM%	 MZend_InfoCard_Xml_Assertion_SAMLM ;Zend_InfoCard_ExceptionM% MZend_InfoCard_Exception_AbstractM 5Zend_InfoCard_ClaimsM 5Zend_InfoCard_CipherM5 mZend_InfoCard_Cipher_Symmetric_Adapter_AES256CBCM5 mZend_InfoCard_Cipher_Symmetric_Adapter_AES128CBCM4 kZend_InfoCard_Cipher_Symmetric_Adapter_AbstractM) UZend_InfoCard_Cipher_PKI_Adapter_RSAM.  _Zend_InfoCard_Cipher_PKI_Adapter_AbstractM# IZend_InfoCard_Cipher_ExceptionM$~ KZend_InfoCard_Adapter_ExceptionM"} GZend_InfoCard_Adapter_DefaultM| 1Zend_Http_ResponseM{ 3Zend_Http_ExceptionMz 3Zend_Http_CookieJarMy -Zend_Http_CookieMx -Zend_Http_ClientMw AZend_Http_Client_ExceptionM"v GZend_Http_Client_Adapter_TestM$u KZend_Http_Client_Adapter_SocketM#t IZend_Http_Client_Adapter_ProxyM's QZend_Http_Client_Adapter_ExceptionMr !Zend_GdataMq 1Zend_Gdata_YouTubeM"p GZend_Gdata_YouTube_VideoQueryM!o EZend_Gdata_YouTube_VideoFeedM"n GZend_Gdata_YouTube_VideoEntryM(m SZend_Gdata_YouTube_UserProfileEntryM(l SZend_Gdata_YouTube_SubscriptionFeedM)k UZend_Gdata_YouTube_SubscriptionEntryM)j UZend_Gdata_YouTube_PlaylistVideoFeedM*i WZend_Gdata_YouTube_PlaylistVideoEntryM(h SZend_Gdata_YouTube_PlaylistListFeedM)g UZend_Gdata_YouTube_PlaylistListEntryM"f GZend_Gdata_YouTube_MediaEntryM*e WZend_Gdata_YouTube_Extension_UsernameM(d SZend_Gdata_YouTube_Extension_StatusM,c [Zend_Gdata_YouTube_Extension_StatisticsM(b SZend_Gdata_YouTube_Extension_SchoolM-a ]Zend_Gdata_YouTube_Extension_ReleaseDateM.` _Zend_Gdata_YouTube_Extension_RelationshipM&_ OZend_Gdata_YouTube_Extension_RacyM*^ WZend_Gdata_YouTube_Extension_PositionM,] [Zend_Gdata_YouTube_Extension_OccupationM)\ UZend_Gdata_YouTube_Extension_NoEmbedM'[ QZend_Gdata_YouTube_Extension_MusicM(Z SZend_Gdata_YouTube_Extension_MoviesM,Y [Zend_Gdata_YouTube_Extension_MediaGroupM.X _Zend_Gdata_YouTube_Extension_MediaContentM*W WZend_Gdata_YouTube_Extension_LocationM*V WZend_Gdata_YouTube_Extension_HometownM)U UZend_Gdata_YouTube_Extension_HobbiesM(T SZend_Gdata_YouTube_Extension_GenderM*S WZend_Gdata_YouTube_Extension_DurationM-R ]Zend_Gdata_YouTube_Extension_DescriptionM)Q UZend_Gdata_YouTube_Extension_CompanyM'P QZend_Gdata_YouTube_Extension_BooksM%O MZend_Gdata_YouTube_Extension_AgeM#N IZend_Gdata_YouTube_ContactFeedM   y  wV5~_N2xK e?tZ5




w
\
B
&
					g	H	)	
qR6~U9qU;'`C%kI,mQ0~`B!cC   ( ;Zend_Pdf_Element_StringM#' IZend_Pdf_Element_String_BinaryM& ;Zend_Pdf_Element_StreamM% AZend_Pdf_Element_ReferenceM%$ MZend_Pdf_Element_Reference_TableM'# QZend_Pdf_Element_Reference_ContextM" ;Zend_Pdf_Element_ObjectM#! IZend_Pdf_Element_Object_StreamM  =Zend_Pdf_Element_NumericM 7Zend_Pdf_Element_NullM 7Zend_Pdf_Element_NameM  CZend_Pdf_Element_DictionaryM =Zend_Pdf_Element_BooleanM 9Zend_Pdf_Element_ArrayM )Zend_Pdf_ColorM 1Zend_Pdf_Color_RgbM 3Zend_Pdf_Color_HtmlM =Zend_Pdf_Color_GrayScaleM 3Zend_Pdf_Color_CmykM 'Zend_Pdf_CmapM AZend_Pdf_Cmap_TrimmedTableM! EZend_Pdf_Cmap_SegmentToDeltaM AZend_Pdf_Cmap_ByteEncodingM& OZend_Pdf_Cmap_ByteEncoding_StaticM #Zend_OpenIdM 5Zend_OpenId_ProviderM ?Zend_OpenId_Provider_UserM& OZend_OpenId_Provider_User_SessionM! EZend_OpenId_Provider_StorageM& OZend_OpenId_Provider_Storage_FileM
 7Zend_OpenId_ExtensionM	 AZend_OpenId_Extension_SregM 7Zend_OpenId_ExceptionM 5Zend_OpenId_ConsumerM! EZend_OpenId_Consumer_StorageM& OZend_OpenId_Consumer_Storage_FileM Zend_MimeM )Zend_Mime_PartM /Zend_Mime_MessageM 3Zend_Mime_ExceptionM  -Zend_Mime_DecodeM #Zend_MemoryM~ /Zend_Memory_ValueM} 3Zend_Memory_ManagerM| 7Zend_Memory_ExceptionM{ 7Zend_Memory_ContainerM"z GZend_Memory_Container_MovableM!y EZend_Memory_Container_LockedM!x EZend_Memory_AccessControllerMw 3Zend_Measure_WeightMv 3Zend_Measure_VolumeM%u MZend_Measure_Viscosity_KinematicM#t IZend_Measure_Viscosity_DynamicMs 3Zend_Measure_TorqueMr =Zend_Measure_TemperatureMq 1Zend_Measure_SpeedMp 7Zend_Measure_PressureMo 1Zend_Measure_PowerMn 3Zend_Measure_NumberMm 9Zend_Measure_LightnessMl 3Zend_Measure_LengthMk ?Zend_Measure_IlluminationMj 9Zend_Measure_FrequencyMi 1Zend_Measure_ForceMh =Zend_Measure_Flow_VolumeMg 9Zend_Measure_Flow_MoleMf 9Zend_Measure_Flow_MassMe 9Zend_Measure_ExceptionMd 3Zend_Measure_EnergyMc 5Zend_Measure_DensityMb 5Zend_Measure_CurrentM a CZend_Measure_Cooking_WeightM ` CZend_Measure_Cooking_VolumeM_ =Zend_Measure_CapacitanceM^ 3Zend_Measure_BinaryM] /Zend_Measure_AreaM\ 1Zend_Measure_AngleM[ ?Zend_Measure_AccelerationMZ 7Zend_Measure_AbstractMY Zend_MailMX =Zend_Mail_Transport_SmtpM!W EZend_Mail_Transport_SendmailM"V GZend_Mail_Transport_ExceptionM!U EZend_Mail_Transport_AbstractMT /Zend_Mail_StorageM'S QZend_Mail_Storage_Writable_MaildirMR 9Zend_Mail_Storage_Pop3MQ 9Zend_Mail_Storage_MboxMP ?Zend_Mail_Storage_MaildirMO 9Zend_Mail_Storage_ImapMN =Zend_Mail_Storage_FolderM"M GZend_Mail_Storage_Folder_MboxM%L MZend_Mail_Storage_Folder_MaildirM K CZend_Mail_Storage_ExceptionMJ AZend_Mail_Storage_AbstractMI ;Zend_Mail_Protocol_SmtpM'H QZend_Mail_Protocol_Smtp_Auth_PlainM'G QZend_Mail_Protocol_Smtp_Auth_LoginM)F UZend_Mail_Protocol_Smtp_Auth_Crammd5ME ;Zend_Mail_Protocol_Pop3MD ;Zend_Mail_Protocol_ImapM!C EZend_Mail_Protocol_ExceptionM B CZend_Mail_Protocol_AbstractMA )Zend_Mail_PartM@ /Zend_Mail_MessageM? 3Zend_Mail_ExceptionM> Zend_LogM= 9Zend_Log_Writer_StreamM< 5Zend_Log_Writer_NullM; 5Zend_Log_Writer_MockM: 1Zend_Log_Writer_DbM9 =Zend_Log_Writer_AbstractM8 9Zend_Log_Formatter_XmlM7 ?Zend_Log_Formatter_SimpleM6 =Zend_Log_Filter_SuppressM5 =Zend_Log_Filter_PriorityM4 ;Zend_Log_Filter_MessageM3 1Zend_Log_ExceptionM2 #Zend_LocaleM1 -Zend_Locale_MathM0 =Zend_Locale_Math_PhpMathM   \  S)yL&oYB,V ?


F
			X	xR-Y?!
xb?FKJ|X3qD
                            + YZend_Search_Lucene_Index_SegmentMergerM6 oZend_Search_Lucene_Index_SegmentInfoPriorityQueueM) UZend_Search_Lucene_Index_SegmentInfoM' QZend_Search_Lucene_Index_FieldInfoM.  _Zend_Search_Lucene_Index_DictionaryLoaderM! EZend_Search_Lucene_FSMActionM~ 9Zend_Search_Lucene_FSMM} =Zend_Search_Lucene_FieldM!| EZend_Search_Lucene_ExceptionM { CZend_Search_Lucene_DocumentM%z MZend_Search_Lucene_Document_HtmlM,y [Zend_Search_Lucene_Analysis_TokenFilterM6x oZend_Search_Lucene_Analysis_TokenFilter_StopWordsM7w qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsM6v oZend_Search_Lucene_Analysis_TokenFilter_LowerCaseM&u OZend_Search_Lucene_Analysis_TokenM)t UZend_Search_Lucene_Analysis_AnalyzerM0s cZend_Search_Lucene_Analysis_Analyzer_CommonM8r sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumM5q mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8M8p sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumMIo Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitiveM5n mZend_Search_Lucene_Analysis_Analyzer_Common_TextMFm Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiveMl 7Zend_Search_ExceptionMk -Zend_Rest_ServerMj AZend_Rest_Server_ExceptionMi 3Zend_Rest_ExceptionMh -Zend_Rest_ClientMg ;Zend_Rest_Client_ResultMf AZend_Rest_Client_ExceptionMe 'Zend_RegistryMd Zend_PdfM!c EZend_Pdf_UpdateInfoContainerMb -Zend_Pdf_TrailerMa ;Zend_Pdf_Trailer_KeeperM` AZend_Pdf_Trailer_GeneratorM_ )Zend_Pdf_StyleM^ 7Zend_Pdf_StringParserM] /Zend_Pdf_ResourceM#\ IZend_Pdf_Resource_ImageFactoryM[ ;Zend_Pdf_Resource_ImageM!Z EZend_Pdf_Resource_Image_TiffM Y CZend_Pdf_Resource_Image_PngM!X EZend_Pdf_Resource_Image_JpegMW 9Zend_Pdf_Resource_FontM!V EZend_Pdf_Resource_Font_Type0M"U GZend_Pdf_Resource_Font_SimpleM+T YZend_Pdf_Resource_Font_Simple_StandardM8S sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsM6R oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanM7Q qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicM;P yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicM5O mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldM2N gZend_Pdf_Resource_Font_Simple_Standard_SymbolM<M {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueMAL Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliqueM9K uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldM5J mZend_Pdf_Resource_Font_Simple_Standard_HelveticaM:I wZend_Pdf_Resource_Font_Simple_Standard_CourierObliqueM>H Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliqueM7G qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldM3F iZend_Pdf_Resource_Font_Simple_Standard_CourierM)E UZend_Pdf_Resource_Font_Simple_ParsedM2D gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypeM*C WZend_Pdf_Resource_Font_FontDescriptorM#B IZend_Pdf_Resource_Font_CidFontM,A [Zend_Pdf_Resource_Font_CidFont_TrueTypeM@ /Zend_Pdf_PhpArrayM? +Zend_Pdf_ParserM> 9Zend_Pdf_Parser_StreamM= 'Zend_Pdf_PageM< )Zend_Pdf_ImageM; 'Zend_Pdf_FontM : CZend_Pdf_Filter_CompressionM$9 KZend_Pdf_Filter_Compression_LzwM&8 OZend_Pdf_Filter_Compression_FlateM7 =Zend_Pdf_Filter_AsciiHexM6 ;Zend_Pdf_Filter_Ascii85M"5 GZend_Pdf_FileParserDataSourceM)4 UZend_Pdf_FileParserDataSource_StringM'3 QZend_Pdf_FileParserDataSource_FileM2 3Zend_Pdf_FileParserM1 ?Zend_Pdf_FileParser_ImageM"0 GZend_Pdf_FileParser_Image_PngM/ =Zend_Pdf_FileParser_FontM&. OZend_Pdf_FileParser_Font_OpenTypeM/- aZend_Pdf_FileParser_Font_OpenType_TrueTypeM, 1Zend_Pdf_ExceptionM+ ;Zend_Pdf_ElementFactoryM"* GZend_Pdf_ElementFactory_ProxyM) -Zend_Pdf_ElementM   [  W1n0 n<Y%e8



q
<
			|	L	].b1	mB#iG&mB&cD%p>[,                       *_ WZend_Service_RememberTheMilk_ListListM&^ OZend_Service_RememberTheMilk_ListM+] YZend_Service_RememberTheMilk_GroupListM'\ QZend_Service_RememberTheMilk_GroupM+[ YZend_Service_RememberTheMilk_ErrorListM'Z QZend_Service_RememberTheMilk_ErrorM-Y ]Zend_Service_RememberTheMilk_ContactListM)X UZend_Service_RememberTheMilk_ContactM.W _Zend_Service_RememberTheMilk_ArgumentListM*V WZend_Service_RememberTheMilk_ArgumentMU 3Zend_Service_FlickrM"T GZend_Service_Flickr_ResultSetMS AZend_Service_Flickr_ResultMR ?Zend_Service_Flickr_ImageMQ 9Zend_Service_ExceptionMP 9Zend_Service_DeliciousM&O OZend_Service_Delicious_SimplePostM$N KZend_Service_Delicious_PostListM M CZend_Service_Delicious_PostM%L MZend_Service_Delicious_ExceptionM K CZend_Service_AudioscrobblerMJ 3Zend_Service_AmazonM'I QZend_Service_Amazon_SimilarProductM"H GZend_Service_Amazon_ResultSetMG ?Zend_Service_Amazon_QueryM!F EZend_Service_Amazon_OfferSetME ?Zend_Service_Amazon_OfferM&D OZend_Service_Amazon_ListmaniaListMC =Zend_Service_Amazon_ItemMB ?Zend_Service_Amazon_ImageM(A SZend_Service_Amazon_EditorialReviewM'@ QZend_Service_Amazon_CustomerReviewM$? KZend_Service_Amazon_AccessoriesM> 5Zend_Service_AkismetM= 7Zend_Service_AbstractM< 9Zend_Server_ReflectionM'; QZend_Server_Reflection_ReturnValueM%: MZend_Server_Reflection_PrototypeM%9 MZend_Server_Reflection_ParameterM 8 CZend_Server_Reflection_NodeM"7 GZend_Server_Reflection_MethodM$6 KZend_Server_Reflection_FunctionM-5 ]Zend_Server_Reflection_Function_AbstractM%4 MZend_Server_Reflection_ExceptionM!3 EZend_Server_Reflection_ClassM2 7Zend_Server_ExceptionM1 5Zend_Server_AbstractM0 1Zend_Search_LuceneM$/ KZend_Search_Lucene_Storage_FileM+. YZend_Search_Lucene_Storage_File_MemoryM/- aZend_Search_Lucene_Storage_File_FilesystemM), UZend_Search_Lucene_Storage_DirectoryM4+ kZend_Search_Lucene_Storage_Directory_FilesystemM%* MZend_Search_Lucene_Search_WeightM*) WZend_Search_Lucene_Search_Weight_TermM,( [Zend_Search_Lucene_Search_Weight_PhraseM/' aZend_Search_Lucene_Search_Weight_MultiTermM+& YZend_Search_Lucene_Search_Weight_EmptyM-% ]Zend_Search_Lucene_Search_Weight_BooleanM)$ UZend_Search_Lucene_Search_SimilarityM1# eZend_Search_Lucene_Search_Similarity_DefaultM)" UZend_Search_Lucene_Search_QueryTokenM3! iZend_Search_Lucene_Search_QueryParserExceptionM1  eZend_Search_Lucene_Search_QueryParserContextM* WZend_Search_Lucene_Search_QueryParserM) UZend_Search_Lucene_Search_QueryLexerM' QZend_Search_Lucene_Search_QueryHitM) UZend_Search_Lucene_Search_QueryEntryM. _Zend_Search_Lucene_Search_QueryEntry_TermM2 gZend_Search_Lucene_Search_QueryEntry_SubqueryM0 cZend_Search_Lucene_Search_QueryEntry_PhraseM$ KZend_Search_Lucene_Search_QueryM- ]Zend_Search_Lucene_Search_Query_WildcardM) UZend_Search_Lucene_Search_Query_TermM* WZend_Search_Lucene_Search_Query_RangeM+ YZend_Search_Lucene_Search_Query_PhraseM. _Zend_Search_Lucene_Search_Query_MultiTermM2 gZend_Search_Lucene_Search_Query_InsignificantM* WZend_Search_Lucene_Search_Query_FuzzyM* WZend_Search_Lucene_Search_Query_EmptyM, [Zend_Search_Lucene_Search_Query_BooleanM: wZend_Search_Lucene_Search_BooleanExpressionRecognizerM =Zend_Search_Lucene_ProxyM% MZend_Search_Lucene_PriorityQueueM# IZend_Search_Lucene_LockManagerM$
 KZend_Search_Lucene_Index_WriterM&	 OZend_Search_Lucene_Index_TermInfoM" GZend_Search_Lucene_Index_TermM+ YZend_Search_Lucene_Index_SegmentWriterM8 sZend_Search_Lucene_Index_SegmentWriter_StreamWriterM: wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterM   d  |O!e;kF#zO!jE



^
>
				Y	$wM n@a5f<wR*^I)wP.^G,                       C 9Zend_Validate_AbstractMB Zend_UriMA 'Zend_Uri_HttpM@ 1Zend_Uri_ExceptionM? )Zend_TranslateM> =Zend_Translate_ExceptionM= 9Zend_Translate_AdapterM!< EZend_Translate_Adapter_XmlTmM!; EZend_Translate_Adapter_XliffM: AZend_Translate_Adapter_TmxM9 AZend_Translate_Adapter_TbxM8 ?Zend_Translate_Adapter_QtM#7 IZend_Translate_Adapter_GettextM6 AZend_Translate_Adapter_CsvM!5 EZend_Translate_Adapter_ArrayM4 'Zend_TimeSyncM3 1Zend_TimeSync_SntpM2 9Zend_TimeSync_ProtocolM1 /Zend_TimeSync_NtpM0 ;Zend_TimeSync_ExceptionM/ %Zend_SessionM). UZend_Session_Validator_HttpUserAgentM$- KZend_Session_Validator_AbstractM, 9Zend_Session_NamespaceM+ 9Zend_Session_ExceptionM* 7Zend_Session_AbstractM) 1Zend_Service_YahooM$( KZend_Service_Yahoo_WebResultSetM!' EZend_Service_Yahoo_WebResultM&& OZend_Service_Yahoo_VideoResultSetM#% IZend_Service_Yahoo_VideoResultM!$ EZend_Service_Yahoo_ResultSetM# ?Zend_Service_Yahoo_ResultM)" UZend_Service_Yahoo_PageDataResultSetM&! OZend_Service_Yahoo_PageDataResultM%  MZend_Service_Yahoo_NewsResultSetM" GZend_Service_Yahoo_NewsResultM& OZend_Service_Yahoo_LocalResultSetM# IZend_Service_Yahoo_LocalResultM+ YZend_Service_Yahoo_InlinkDataResultSetM( SZend_Service_Yahoo_InlinkDataResultM& OZend_Service_Yahoo_ImageResultSetM# IZend_Service_Yahoo_ImageResultM =Zend_Service_Yahoo_ImageM ;Zend_Service_TechnoratiM# IZend_Service_Technorati_WeblogM" GZend_Service_Technorati_UtilsM* WZend_Service_Technorati_TagsResultSetM' QZend_Service_Technorati_TagsResultM) UZend_Service_Technorati_TagResultSetM& OZend_Service_Technorati_TagResultM, [Zend_Service_Technorati_SearchResultSetM) UZend_Service_Technorati_SearchResultM& OZend_Service_Technorati_ResultSetM# IZend_Service_Technorati_ResultM* WZend_Service_Technorati_KeyInfoResultM* WZend_Service_Technorati_GetInfoResultM&
 OZend_Service_Technorati_ExceptionM1	 eZend_Service_Technorati_DailyCountsResultSetM. _Zend_Service_Technorati_DailyCountsResultM, [Zend_Service_Technorati_CosmosResultSetM) UZend_Service_Technorati_CosmosResultM+ YZend_Service_Technorati_BlogInfoResultM# IZend_Service_Technorati_AuthorM ;Zend_Service_StrikeIronM( SZend_Service_StrikeIron_ZipCodeInfoM2 gZend_Service_StrikeIron_USAddressVerificationM-  ]Zend_Service_StrikeIron_SalesUseTaxBasicM& OZend_Service_StrikeIron_ExceptionM&~ OZend_Service_StrikeIron_DecoratorM!} EZend_Service_StrikeIron_BaseM| ;Zend_Service_SlideShareM&{ OZend_Service_SlideShare_SlideShowM&z OZend_Service_SlideShare_ExceptionMy 1Zend_Service_SimpyM$x KZend_Service_Simpy_WatchlistSetM*w WZend_Service_Simpy_WatchlistFilterSetM'v QZend_Service_Simpy_WatchlistFilterM!u EZend_Service_Simpy_WatchlistMt ?Zend_Service_Simpy_TagSetMs 9Zend_Service_Simpy_TagMr AZend_Service_Simpy_NoteSetMq ;Zend_Service_Simpy_NoteMp AZend_Service_Simpy_LinkSetM!o EZend_Service_Simpy_LinkQueryMn ;Zend_Service_Simpy_LinkM!m EZend_Service_RememberTheMilkM'l QZend_Service_RememberTheMilk_TokenM.k _Zend_Service_RememberTheMilk_TimezoneListM*j WZend_Service_RememberTheMilk_TimezoneM&i OZend_Service_RememberTheMilk_TimeM0h cZend_Service_RememberTheMilk_TaskSeriesListM,g [Zend_Service_RememberTheMilk_TaskSeriesM*f WZend_Service_RememberTheMilk_TaskListM&e OZend_Service_RememberTheMilk_TaskM*d WZend_Service_RememberTheMilk_SettingsM)c UZend_Service_RememberTheMilk_RequestM*b WZend_Service_RememberTheMilk_NoteListM&a OZend_Service_RememberTheMilk_NoteM(` SZend_Service_RememberTheMilk_MethodM   q sV3wU3nT;x\<lG#



u
O
,
					y	W	5	eEc)oL/vG nL/lJ%zY8zX7                                          4 CZend_Auth_Adapter_ExceptionN3 =Zend_Auth_Adapter_DigestN2 ?Zend_Auth_Adapter_DbTableN1 Zend_AclN0 'Zend_Acl_RoleN/ 9Zend_Acl_Role_RegistryN%. MZend_Acl_Role_Registry_ExceptionN- /Zend_Acl_ResourceN, 1Zend_Acl_ExceptionN+ /Zend_XmlRpc_ValueM* =Zend_XmlRpc_Value_StructM) =Zend_XmlRpc_Value_StringM( =Zend_XmlRpc_Value_ScalarM' ?Zend_XmlRpc_Value_IntegerM & CZend_XmlRpc_Value_ExceptionM% =Zend_XmlRpc_Value_DoubleM$ AZend_XmlRpc_Value_DateTimeM!# EZend_XmlRpc_Value_CollectionM" ?Zend_XmlRpc_Value_BooleanM! =Zend_XmlRpc_Value_Base64M  ;Zend_XmlRpc_Value_ArrayM 1Zend_XmlRpc_ServerM =Zend_XmlRpc_Server_FaultM! EZend_XmlRpc_Server_ExceptionM =Zend_XmlRpc_Server_CacheM 5Zend_XmlRpc_ResponseM ?Zend_XmlRpc_Response_HttpM 3Zend_XmlRpc_RequestM ?Zend_XmlRpc_Request_StdinM =Zend_XmlRpc_Request_HttpM /Zend_XmlRpc_FaultM 7Zend_XmlRpc_ExceptionM 1Zend_XmlRpc_ClientM# IZend_XmlRpc_Client_ServerProxyM+ YZend_XmlRpc_Client_ServerIntrospectionM+ YZend_XmlRpc_Client_IntrospectExceptionM% MZend_XmlRpc_Client_HttpExceptionM& OZend_XmlRpc_Client_FaultExceptionM! EZend_XmlRpc_Client_ExceptionM Zend_ViewM 5Zend_View_Helper_UrlM AZend_View_Helper_TranslateM!
 EZend_View_Helper_PlaceholderM*	 WZend_View_Helper_Placeholder_RegistryM4 kZend_View_Helper_Placeholder_Registry_ExceptionM+ YZend_View_Helper_Placeholder_ContainerM6 oZend_View_Helper_Placeholder_Container_StandaloneM5 mZend_View_Helper_Placeholder_Container_ExceptionM4 kZend_View_Helper_Placeholder_Container_AbstractM! EZend_View_Helper_PartialLoopM =Zend_View_Helper_PartialM' QZend_View_Helper_Partial_ExceptionM  ;Zend_View_Helper_LayoutM 7Zend_View_Helper_JsonM"~ GZend_View_Helper_InlineScriptM} ?Zend_View_Helper_HtmlListM| AZend_View_Helper_HeadTitleM{ AZend_View_Helper_HeadStyleM z CZend_View_Helper_HeadScriptMy ?Zend_View_Helper_HeadMetaMx ?Zend_View_Helper_HeadLinkM"w GZend_View_Helper_FormTextareaMv ?Zend_View_Helper_FormTextM u CZend_View_Helper_FormSubmitM t CZend_View_Helper_FormSelectMs AZend_View_Helper_FormResetMr AZend_View_Helper_FormRadioM"q GZend_View_Helper_FormPasswordMp ?Zend_View_Helper_FormNoteMo AZend_View_Helper_FormLabelMn AZend_View_Helper_FormImageM m CZend_View_Helper_FormHiddenMl ?Zend_View_Helper_FormFileM k CZend_View_Helper_FormErrorsM!j EZend_View_Helper_FormElementM"i GZend_View_Helper_FormCheckboxM h CZend_View_Helper_FormButtonMg 7Zend_View_Helper_FormMf ?Zend_View_Helper_FieldsetMe =Zend_View_Helper_DoctypeM!d EZend_View_Helper_DeclareVarsMc ;Zend_View_Helper_ActionMb 3Zend_View_ExceptionMa 1Zend_View_AbstractM` %Zend_VersionM_ 'Zend_ValidateM^ AZend_Validate_StringLengthM] 3Zend_Validate_RegexM\ 9Zend_Validate_NotEmptyM[ 9Zend_Validate_LessThanMZ -Zend_Validate_IpMY /Zend_Validate_IntMX 7Zend_Validate_InArrayMW 9Zend_Validate_HostnameMV ?Zend_Validate_Hostname_SeMU ?Zend_Validate_Hostname_NoMT ?Zend_Validate_Hostname_LiMS ?Zend_Validate_Hostname_HuMR ?Zend_Validate_Hostname_FiMQ ?Zend_Validate_Hostname_DeMP ?Zend_Validate_Hostname_ChMO ?Zend_Validate_Hostname_AtMN /Zend_Validate_HexMM ?Zend_Validate_GreaterThanML 3Zend_Validate_FloatMK ;Zend_Validate_ExceptionMJ AZend_Validate_EmailAddressMI 5Zend_Validate_DigitsMH 1Zend_Validate_DateMG 3Zend_Validate_CcnumMF 7Zend_Validate_BetweenME 3Zend_Validate_AlphaMD 3Zend_Validate_AlnumM   j  _>"	jJ%kI(v^J$~L


e
0
			w	K	,	 g?oE Y1^9~X<eAwT:%jL(                                  ' QZend_Db_Statement_Mysqli_ExceptionN  CZend_Db_Statement_ExceptionN 7Zend_Db_Statement_Db2N$ KZend_Db_Statement_Db2_ExceptionN )Zend_Db_SelectN =Zend_Db_Select_ExceptionN -Zend_Db_ProfilerN 9Zend_Db_Profiler_QueryN AZend_Db_Profiler_ExceptionN %Zend_Db_ExprN /Zend_Db_ExceptionN AZend_Db_Adapter_Pdo_SqliteN ?Zend_Db_Adapter_Pdo_PgsqlN ;Zend_Db_Adapter_Pdo_OciN ?Zend_Db_Adapter_Pdo_MysqlN ?Zend_Db_Adapter_Pdo_MssqlN ;Zend_Db_Adapter_Pdo_IbmN  CZend_Db_Adapter_Pdo_Ibm_IdsN  CZend_Db_Adapter_Pdo_Ibm_Db2N! EZend_Db_Adapter_Pdo_AbstractN
 9Zend_Db_Adapter_OracleN%	 MZend_Db_Adapter_Oracle_ExceptionN 9Zend_Db_Adapter_MysqliN% MZend_Db_Adapter_Mysqli_ExceptionN ?Zend_Db_Adapter_ExceptionN 3Zend_Db_Adapter_Db2N" GZend_Db_Adapter_Db2_ExceptionN =Zend_Db_Adapter_AbstractN Zend_DateN 3Zend_Date_ExceptionN  5Zend_Date_DateObjectN -Zend_Date_CitiesN~ 'Zend_CurrencyN} ;Zend_Currency_ExceptionN!| EZend_Controller_Router_RouteN({ SZend_Controller_Router_Route_StaticN'z QZend_Controller_Router_Route_RegexN(y SZend_Controller_Router_Route_ModuleN#x IZend_Controller_Router_RewriteN%w MZend_Controller_Router_ExceptionN$v KZend_Controller_Router_AbstractN"u GZend_Controller_Response_HttpN't QZend_Controller_Response_ExceptionN!s EZend_Controller_Response_CliN&r OZend_Controller_Response_AbstractN#q IZend_Controller_Request_SimpleN!p EZend_Controller_Request_HttpN&o OZend_Controller_Request_ExceptionN&n OZend_Controller_Request_Apache404N%m MZend_Controller_Request_AbstractN(l SZend_Controller_Plugin_ErrorHandlerN"k GZend_Controller_Plugin_BrokerN'j QZend_Controller_Plugin_ActionStackN$i KZend_Controller_Plugin_AbstractNh 7Zend_Controller_FrontNg ?Zend_Controller_ExceptionN(f SZend_Controller_Dispatcher_StandardN)e UZend_Controller_Dispatcher_ExceptionN(d SZend_Controller_Dispatcher_AbstractNc 9Zend_Controller_ActionN(b SZend_Controller_Action_HelperBrokerN/a aZend_Controller_Action_Helper_ViewRendererN&` OZend_Controller_Action_Helper_UrlN-_ ]Zend_Controller_Action_Helper_RedirectorN'^ QZend_Controller_Action_Helper_JsonN1] eZend_Controller_Action_Helper_FlashMessengerN0\ cZend_Controller_Action_Helper_ContextSwitchN<[ {Zend_Controller_Action_Helper_AutoCompleteScriptaculousN3Z iZend_Controller_Action_Helper_AutoCompleteDojoN8Y sZend_Controller_Action_Helper_AutoComplete_AbstractN.X _Zend_Controller_Action_Helper_AjaxContextN.W _Zend_Controller_Action_Helper_ActionStackN+V YZend_Controller_Action_Helper_AbstractN%U MZend_Controller_Action_ExceptionNT 3Zend_Console_GetoptN"S GZend_Console_Getopt_ExceptionNR #Zend_ConfigNQ +Zend_Config_XmlNP +Zend_Config_IniNO 7Zend_Config_ExceptionNN !Zend_CacheNM =Zend_Cache_Frontend_PageNL AZend_Cache_Frontend_OutputN!K EZend_Cache_Frontend_FunctionNJ =Zend_Cache_Frontend_FileNI ?Zend_Cache_Frontend_ClassNH 5Zend_Cache_ExceptionNG +Zend_Cache_CoreNF 1Zend_Cache_BackendN$E KZend_Cache_Backend_ZendPlatformND ;Zend_Cache_Backend_TestNC ?Zend_Cache_Backend_SqliteN!B EZend_Cache_Backend_MemcachedNA ;Zend_Cache_Backend_FileN@ 9Zend_Cache_Backend_ApcN? Zend_AuthN> ?Zend_Auth_Storage_SessionN$= KZend_Auth_Storage_NonPersistentN < CZend_Auth_Storage_ExceptionN; -Zend_Auth_ResultN: 3Zend_Auth_ExceptionN9 =Zend_Auth_Adapter_OpenIdN8 AZend_Auth_Adapter_InfoCardN7 9Zend_Auth_Adapter_HttpN)6 UZend_Auth_Adapter_Http_Resolver_FileN.5 _Zend_Auth_Adapter_Http_Resolver_ExceptionN   r  qS9sL/iI%jN2
hG)




v
W
9
				a	7	W-xP-tR0	[<jJ*	lP6$^A xO(                    % MZend_Gdata_App_Extension_ElementN# IZend_Gdata_App_Extension_DraftN% MZend_Gdata_App_Extension_ControlN) UZend_Gdata_App_Extension_ContributorN% MZend_Gdata_App_Extension_ContentN& OZend_Gdata_App_Extension_CategoryN$
 KZend_Gdata_App_Extension_AuthorN	 =Zend_Gdata_App_ExceptionN 5Zend_Gdata_App_EntryN, [Zend_Gdata_App_CaptchaRequiredExceptionN# IZend_Gdata_App_BaseMediaSourceN 3Zend_Gdata_App_BaseN* WZend_Gdata_App_BadMethodCallExceptionN! EZend_Gdata_App_AuthExceptionN Zend_FormN /Zend_Form_SubFormN  3Zend_Form_ExceptionN /Zend_Form_ElementN~ ;Zend_Form_Element_XhtmlN} AZend_Form_Element_TextareaN| 9Zend_Form_Element_TextN{ =Zend_Form_Element_SubmitNz =Zend_Form_Element_SelectNy ;Zend_Form_Element_ResetNx ;Zend_Form_Element_RadioNw AZend_Form_Element_PasswordN"v GZend_Form_Element_MultiselectN$u KZend_Form_Element_MultiCheckboxNt ;Zend_Form_Element_MultiNs ;Zend_Form_Element_ImageNr =Zend_Form_Element_HiddenNq 9Zend_Form_Element_HashN p CZend_Form_Element_ExceptionNo AZend_Form_Element_CheckboxNn =Zend_Form_Element_ButtonNm 9Zend_Form_DisplayGroupN#l IZend_Form_Decorator_ViewScriptN#k IZend_Form_Decorator_ViewHelperNj ?Zend_Form_Decorator_LabelNi ?Zend_Form_Decorator_ImageN h CZend_Form_Decorator_HtmlTagN%g MZend_Form_Decorator_FormElementsNf =Zend_Form_Decorator_FormN!e EZend_Form_Decorator_FieldsetN"d GZend_Form_Decorator_ExceptionNc AZend_Form_Decorator_ErrorsN$b KZend_Form_Decorator_DtDdWrapperN$a KZend_Form_Decorator_DescriptionN!` EZend_Form_Decorator_CallbackN!_ EZend_Form_Decorator_AbstractN^ #Zend_FilterN+] YZend_Filter_Word_UnderscoreToSeparatorN&\ OZend_Filter_Word_UnderscoreToDashN+[ YZend_Filter_Word_UnderscoreToCamelCaseN*Z WZend_Filter_Word_SeparatorToSeparatorN%Y MZend_Filter_Word_SeparatorToDashN*X WZend_Filter_Word_SeparatorToCamelCaseN(W SZend_Filter_Word_Separator_AbstractN&V OZend_Filter_Word_DashToUnderscoreN%U MZend_Filter_Word_DashToSeparatorN%T MZend_Filter_Word_DashToCamelCaseN+S YZend_Filter_Word_CamelCaseToUnderscoreN*R WZend_Filter_Word_CamelCaseToSeparatorN%Q MZend_Filter_Word_CamelCaseToDashNP 7Zend_Filter_StripTagsNO 9Zend_Filter_StringTrimNN ?Zend_Filter_StringToUpperNM ?Zend_Filter_StringToLowerNL 5Zend_Filter_RealPathNK ;Zend_Filter_PregReplaceNJ +Zend_Filter_IntNI /Zend_Filter_InputNH 7Zend_Filter_InflectorNG =Zend_Filter_HtmlEntitiesNF 7Zend_Filter_ExceptionNE +Zend_Filter_DirND 1Zend_Filter_DigitsNC 5Zend_Filter_BaseNameNB /Zend_Filter_AlphaNA /Zend_Filter_AlnumN@ Zend_FeedN? 'Zend_Feed_RssN> 3Zend_Feed_ExceptionN= 3Zend_Feed_Entry_RssN< 5Zend_Feed_Entry_AtomN; =Zend_Feed_Entry_AbstractN: /Zend_Feed_ElementN9 /Zend_Feed_BuilderN8 =Zend_Feed_Builder_HeaderN$7 KZend_Feed_Builder_Header_ItunesN 6 CZend_Feed_Builder_ExceptionN5 ;Zend_Feed_Builder_EntryN4 )Zend_Feed_AtomN3 1Zend_Feed_AbstractN2 )Zend_ExceptionN1 !Zend_DebugN0 Zend_DbN/ 'Zend_Db_TableN. 5Zend_Db_Table_SelectN#- IZend_Db_Table_Select_ExceptionN, 5Zend_Db_Table_RowsetN#+ IZend_Db_Table_Rowset_ExceptionN"* GZend_Db_Table_Rowset_AbstractN) /Zend_Db_Table_RowN ( CZend_Db_Table_Row_ExceptionN' AZend_Db_Table_Row_AbstractN& ;Zend_Db_Table_ExceptionN% 9Zend_Db_Table_AbstractN$ /Zend_Db_StatementN# 7Zend_Db_Statement_PdoN" ?Zend_Db_Statement_Pdo_IbmN! =Zend_Db_Statement_OracleN'  QZend_Db_Statement_Oracle_ExceptionN =Zend_Db_Statement_MysqliN   b  d>wO%a@$]'iC



f
7
			k	E	 	t\C%yQ!^A)]/	oD wO-
e=_6                       (r SZend_Gdata_Gapps_Extension_NicknameN$q KZend_Gdata_Gapps_Extension_NameN%p MZend_Gdata_Gapps_Extension_LoginN)o UZend_Gdata_Gapps_Extension_EmailListNn 9Zend_Gdata_Gapps_ErrorN-m ]Zend_Gdata_Gapps_EmailListRecipientQueryN,l [Zend_Gdata_Gapps_EmailListRecipientFeedN-k ]Zend_Gdata_Gapps_EmailListRecipientEntryN$j KZend_Gdata_Gapps_EmailListQueryN#i IZend_Gdata_Gapps_EmailListFeedN$h KZend_Gdata_Gapps_EmailListEntryNg +Zend_Gdata_FeedNf 5Zend_Gdata_ExtensionNe =Zend_Gdata_Extension_WhoNd AZend_Gdata_Extension_WhereNc ?Zend_Gdata_Extension_WhenN$b KZend_Gdata_Extension_VisibilityN&a OZend_Gdata_Extension_TransparencyN"` GZend_Gdata_Extension_ReminderN-_ ]Zend_Gdata_Extension_RecurrenceExceptionN$^ KZend_Gdata_Extension_RecurrenceN ] CZend_Gdata_Extension_RatingN'\ QZend_Gdata_Extension_OriginalEventN0[ cZend_Gdata_Extension_OpenSearchTotalResultsN.Z _Zend_Gdata_Extension_OpenSearchStartIndexN0Y cZend_Gdata_Extension_OpenSearchItemsPerPageN"X GZend_Gdata_Extension_FeedLinkN*W WZend_Gdata_Extension_ExtendedPropertyN%V MZend_Gdata_Extension_EventStatusN#U IZend_Gdata_Extension_EntryLinkN"T GZend_Gdata_Extension_CommentsN&S OZend_Gdata_Extension_AttendeeTypeN(R SZend_Gdata_Extension_AttendeeStatusNQ +Zend_Gdata_ExifNP 5Zend_Gdata_Exif_FeedN#O IZend_Gdata_Exif_Extension_TimeN#N IZend_Gdata_Exif_Extension_TagsN$M KZend_Gdata_Exif_Extension_ModelN#L IZend_Gdata_Exif_Extension_MakeN"K GZend_Gdata_Exif_Extension_IsoN,J [Zend_Gdata_Exif_Extension_ImageUniqueIdN$I KZend_Gdata_Exif_Extension_FStopN*H WZend_Gdata_Exif_Extension_FocalLengthN$G KZend_Gdata_Exif_Extension_FlashN'F QZend_Gdata_Exif_Extension_ExposureN'E QZend_Gdata_Exif_Extension_DistanceND 7Zend_Gdata_Exif_EntryNC -Zend_Gdata_EntryNB +Zend_Gdata_DocsNA 7Zend_Gdata_Docs_QueryN%@ MZend_Gdata_Docs_DocumentListFeedN&? OZend_Gdata_Docs_DocumentListEntryN> 9Zend_Gdata_ClientLoginN= 3Zend_Gdata_CalendarN!< EZend_Gdata_Calendar_ListFeedN"; GZend_Gdata_Calendar_ListEntryN-: ]Zend_Gdata_Calendar_Extension_WebContentN+9 YZend_Gdata_Calendar_Extension_TimezoneN98 uZend_Gdata_Calendar_Extension_SendEventNotificationsN+7 YZend_Gdata_Calendar_Extension_SelectedN+6 YZend_Gdata_Calendar_Extension_QuickAddN'5 QZend_Gdata_Calendar_Extension_LinkN)4 UZend_Gdata_Calendar_Extension_HiddenN(3 SZend_Gdata_Calendar_Extension_ColorN.2 _Zend_Gdata_Calendar_Extension_AccessLevelN#1 IZend_Gdata_Calendar_EventQueryN"0 GZend_Gdata_Calendar_EventFeedN#/ IZend_Gdata_Calendar_EventEntryN. 1Zend_Gdata_AuthSubN- )Zend_Gdata_AppN, 3Zend_Gdata_App_UtilN#+ IZend_Gdata_App_MediaFileSourceN* ?Zend_Gdata_App_MediaEntryN2) gZend_Gdata_App_LoggingHttpClientAdapterSocketN( AZend_Gdata_App_IOExceptionN,' [Zend_Gdata_App_InvalidArgumentExceptionN!& EZend_Gdata_App_HttpExceptionN$% KZend_Gdata_App_FeedSourceParentN#$ IZend_Gdata_App_FeedEntryParentN# 3Zend_Gdata_App_FeedN" =Zend_Gdata_App_ExtensionN!! EZend_Gdata_App_Extension_UriN%  MZend_Gdata_App_Extension_UpdatedN# IZend_Gdata_App_Extension_TitleN" GZend_Gdata_App_Extension_TextN% MZend_Gdata_App_Extension_SummaryN& OZend_Gdata_App_Extension_SubtitleN$ KZend_Gdata_App_Extension_SourceN$ KZend_Gdata_App_Extension_RightsN' QZend_Gdata_App_Extension_PublishedN$ KZend_Gdata_App_Extension_PersonN" GZend_Gdata_App_Extension_NameN" GZend_Gdata_App_Extension_LogoN" GZend_Gdata_App_Extension_LinkN  CZend_Gdata_App_Extension_IdN" GZend_Gdata_App_Extension_IconN' QZend_Gdata_App_Extension_GeneratorN# IZend_Gdata_App_Extension_EmailN   _  cDzI+~Y3~bK(	vG



X
)				h	J	1	qEX-zM^/}T(eBzQ'f3	                           %Q MZend_Gdata_Spreadsheets_ListFeedN&P OZend_Gdata_Spreadsheets_ListEntryN/O aZend_Gdata_Spreadsheets_Extension_RowCountN-N ]Zend_Gdata_Spreadsheets_Extension_CustomN/M aZend_Gdata_Spreadsheets_Extension_ColCountN+L YZend_Gdata_Spreadsheets_Extension_CellN*K WZend_Gdata_Spreadsheets_DocumentQueryN&J OZend_Gdata_Spreadsheets_CellQueryN%I MZend_Gdata_Spreadsheets_CellFeedN&H OZend_Gdata_Spreadsheets_CellEntryNG -Zend_Gdata_QueryNF /Zend_Gdata_PhotosN E CZend_Gdata_Photos_UserQueryND AZend_Gdata_Photos_UserFeedN C CZend_Gdata_Photos_UserEntryNB AZend_Gdata_Photos_TagEntryN!A EZend_Gdata_Photos_PhotoQueryN @ CZend_Gdata_Photos_PhotoFeedN!? EZend_Gdata_Photos_PhotoEntryN&> OZend_Gdata_Photos_Extension_WidthN'= QZend_Gdata_Photos_Extension_WeightN(< SZend_Gdata_Photos_Extension_VersionN%; MZend_Gdata_Photos_Extension_UserN*: WZend_Gdata_Photos_Extension_TimestampN*9 WZend_Gdata_Photos_Extension_ThumbnailN%8 MZend_Gdata_Photos_Extension_SizeN)7 UZend_Gdata_Photos_Extension_RotationN+6 YZend_Gdata_Photos_Extension_QuotaLimitN-5 ]Zend_Gdata_Photos_Extension_QuotaCurrentN)4 UZend_Gdata_Photos_Extension_PositionN(3 SZend_Gdata_Photos_Extension_PhotoIdN32 iZend_Gdata_Photos_Extension_NumPhotosRemainingN*1 WZend_Gdata_Photos_Extension_NumPhotosN)0 UZend_Gdata_Photos_Extension_NicknameN%/ MZend_Gdata_Photos_Extension_NameN2. gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumN)- UZend_Gdata_Photos_Extension_LocationN#, IZend_Gdata_Photos_Extension_IdN'+ QZend_Gdata_Photos_Extension_HeightN2* gZend_Gdata_Photos_Extension_CommentingEnabledN-) ]Zend_Gdata_Photos_Extension_CommentCountN'( QZend_Gdata_Photos_Extension_ClientN)' UZend_Gdata_Photos_Extension_ChecksumN*& WZend_Gdata_Photos_Extension_BytesUsedN(% SZend_Gdata_Photos_Extension_AlbumIdN'$ QZend_Gdata_Photos_Extension_AccessN## IZend_Gdata_Photos_CommentEntryN!" EZend_Gdata_Photos_AlbumQueryN ! CZend_Gdata_Photos_AlbumFeedN!  EZend_Gdata_Photos_AlbumEntryN -Zend_Gdata_MediaN 7Zend_Gdata_Media_FeedN* WZend_Gdata_Media_Extension_MediaTitleN. _Zend_Gdata_Media_Extension_MediaThumbnailN) UZend_Gdata_Media_Extension_MediaTextN0 cZend_Gdata_Media_Extension_MediaRestrictionN+ YZend_Gdata_Media_Extension_MediaRatingN+ YZend_Gdata_Media_Extension_MediaPlayerN- ]Zend_Gdata_Media_Extension_MediaKeywordsN) UZend_Gdata_Media_Extension_MediaHashN* WZend_Gdata_Media_Extension_MediaGroupN0 cZend_Gdata_Media_Extension_MediaDescriptionN+ YZend_Gdata_Media_Extension_MediaCreditN. _Zend_Gdata_Media_Extension_MediaCopyrightN, [Zend_Gdata_Media_Extension_MediaContentN- ]Zend_Gdata_Media_Extension_MediaCategoryN 9Zend_Gdata_Media_EntryN AZend_Gdata_Kind_EventEntryN )Zend_Gdata_GeoN 3Zend_Gdata_Geo_FeedN$ KZend_Gdata_Geo_Extension_GmlPosN&
 OZend_Gdata_Geo_Extension_GmlPointN)	 UZend_Gdata_Geo_Extension_GeoRssWhereN 5Zend_Gdata_Geo_EntryN -Zend_Gdata_GbaseN" GZend_Gdata_Gbase_SnippetQueryN! EZend_Gdata_Gbase_SnippetFeedN" GZend_Gdata_Gbase_SnippetEntryN 9Zend_Gdata_Gbase_QueryN AZend_Gdata_Gbase_ItemQueryN ?Zend_Gdata_Gbase_ItemFeedN  AZend_Gdata_Gbase_ItemEntryN 7Zend_Gdata_Gbase_FeedN-~ ]Zend_Gdata_Gbase_Extension_BaseAttributeN} 9Zend_Gdata_Gbase_EntryN| -Zend_Gdata_GappsN{ AZend_Gdata_Gapps_UserQueryNz ?Zend_Gdata_Gapps_UserFeedNy AZend_Gdata_Gapps_UserEntryN&x OZend_Gdata_Gapps_ServiceExceptionNw 9Zend_Gdata_Gapps_QueryN#v IZend_Gdata_Gapps_NicknameQueryN"u GZend_Gdata_Gapps_NicknameFeedN#t IZend_Gdata_Gapps_NicknameEntryN%s MZend_Gdata_Gapps_Extension_QuotaN   ^  uFZ1zN!i9W-



n
B
				j	<	d?qK(}U.^%yU3`5RbL2                                        / Zend_JsonN. 3Zend_Json_ExceptionN- /Zend_Json_EncoderN, /Zend_Json_DecoderN+ 'Zend_InfoCardN-* ]Zend_InfoCard_Xml_SecurityTokenReferenceN) AZend_InfoCard_Xml_SecurityN)( UZend_InfoCard_Xml_Security_TransformN4' kZend_InfoCard_Xml_Security_Transform_XmlExcC14NN3& iZend_InfoCard_Xml_Security_Transform_ExceptionN<% {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignatureN)$ UZend_InfoCard_Xml_Security_ExceptionN# ?Zend_InfoCard_Xml_KeyInfoN&" OZend_InfoCard_Xml_KeyInfo_XmlDSigN&! OZend_InfoCard_Xml_KeyInfo_DefaultN'  QZend_InfoCard_Xml_KeyInfo_AbstractN  CZend_InfoCard_Xml_ExceptionN# IZend_InfoCard_Xml_EncryptedKeyN$ KZend_InfoCard_Xml_EncryptedDataN+ YZend_InfoCard_Xml_EncryptedData_XmlEncN- ]Zend_InfoCard_Xml_EncryptedData_AbstractN ?Zend_InfoCard_Xml_ElementN  CZend_InfoCard_Xml_AssertionN% MZend_InfoCard_Xml_Assertion_SamlN ;Zend_InfoCard_ExceptionN% MZend_InfoCard_Exception_AbstractN 5Zend_InfoCard_ClaimsN 5Zend_InfoCard_CipherN5 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcN5 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcN4 kZend_InfoCard_Cipher_Symmetric_Adapter_AbstractN) UZend_InfoCard_Cipher_Pki_Adapter_RsaN. _Zend_InfoCard_Cipher_Pki_Adapter_AbstractN# IZend_InfoCard_Cipher_ExceptionN$ KZend_InfoCard_Adapter_ExceptionN" GZend_InfoCard_Adapter_DefaultN 1Zend_Http_ResponseN
 3Zend_Http_ExceptionN	 3Zend_Http_CookieJarN -Zend_Http_CookieN -Zend_Http_ClientN AZend_Http_Client_ExceptionN" GZend_Http_Client_Adapter_TestN$ KZend_Http_Client_Adapter_SocketN# IZend_Http_Client_Adapter_ProxyN' QZend_Http_Client_Adapter_ExceptionN !Zend_GdataN  1Zend_Gdata_YouTubeN" GZend_Gdata_YouTube_VideoQueryN!~ EZend_Gdata_YouTube_VideoFeedN"} GZend_Gdata_YouTube_VideoEntryN(| SZend_Gdata_YouTube_UserProfileEntryN({ SZend_Gdata_YouTube_SubscriptionFeedN)z UZend_Gdata_YouTube_SubscriptionEntryN)y UZend_Gdata_YouTube_PlaylistVideoFeedN*x WZend_Gdata_YouTube_PlaylistVideoEntryN(w SZend_Gdata_YouTube_PlaylistListFeedN)v UZend_Gdata_YouTube_PlaylistListEntryN"u GZend_Gdata_YouTube_MediaEntryN*t WZend_Gdata_YouTube_Extension_UsernameN's QZend_Gdata_YouTube_Extension_TokenN(r SZend_Gdata_YouTube_Extension_StatusN,q [Zend_Gdata_YouTube_Extension_StatisticsN(p SZend_Gdata_YouTube_Extension_SchoolN-o ]Zend_Gdata_YouTube_Extension_ReleaseDateN.n _Zend_Gdata_YouTube_Extension_RelationshipN&m OZend_Gdata_YouTube_Extension_RacyN*l WZend_Gdata_YouTube_Extension_PositionN,k [Zend_Gdata_YouTube_Extension_OccupationN)j UZend_Gdata_YouTube_Extension_NoEmbedN'i QZend_Gdata_YouTube_Extension_MusicN(h SZend_Gdata_YouTube_Extension_MoviesN,g [Zend_Gdata_YouTube_Extension_MediaGroupN.f _Zend_Gdata_YouTube_Extension_MediaContentN*e WZend_Gdata_YouTube_Extension_LocationN&d OZend_Gdata_YouTube_Extension_LinkN*c WZend_Gdata_YouTube_Extension_HometownN)b UZend_Gdata_YouTube_Extension_HobbiesN(a SZend_Gdata_YouTube_Extension_GenderN*` WZend_Gdata_YouTube_Extension_DurationN-_ ]Zend_Gdata_YouTube_Extension_DescriptionN)^ UZend_Gdata_YouTube_Extension_CompanyN'] QZend_Gdata_YouTube_Extension_BooksN%\ MZend_Gdata_YouTube_Extension_AgeN#[ IZend_Gdata_YouTube_ContactFeedN$Z KZend_Gdata_YouTube_ContactEntryN#Y IZend_Gdata_YouTube_CommentFeedN$X KZend_Gdata_YouTube_CommentEntryNW ;Zend_Gdata_SpreadsheetsN*V WZend_Gdata_Spreadsheets_WorksheetFeedN+U YZend_Gdata_Spreadsheets_WorksheetEntryN,T [Zend_Gdata_Spreadsheets_SpreadsheetFeedN-S ]Zend_Gdata_Spreadsheets_SpreadsheetEntryN&R OZend_Gdata_Spreadsheets_ListQueryN   y mO$xU4hI(mV2uJ*



s
T
2
					d	?		{Z6~_>#pR7rM(|cG-zW9mC iN7                              ( 9Zend_Pdf_Element_ArrayN' )Zend_Pdf_ColorN& 1Zend_Pdf_Color_RgbN% 3Zend_Pdf_Color_HtmlN$ =Zend_Pdf_Color_GrayScaleN# 3Zend_Pdf_Color_CmykN" 'Zend_Pdf_CmapN! AZend_Pdf_Cmap_TrimmedTableN!  EZend_Pdf_Cmap_SegmentToDeltaN AZend_Pdf_Cmap_ByteEncodingN& OZend_Pdf_Cmap_ByteEncoding_StaticN #Zend_OpenIdN 5Zend_OpenId_ProviderN ?Zend_OpenId_Provider_UserN& OZend_OpenId_Provider_User_SessionN! EZend_OpenId_Provider_StorageN& OZend_OpenId_Provider_Storage_FileN 7Zend_OpenId_ExtensionN AZend_OpenId_Extension_SregN 7Zend_OpenId_ExceptionN 5Zend_OpenId_ConsumerN! EZend_OpenId_Consumer_StorageN& OZend_OpenId_Consumer_Storage_FileN Zend_MimeN )Zend_Mime_PartN /Zend_Mime_MessageN 3Zend_Mime_ExceptionN -Zend_Mime_DecodeN #Zend_MemoryN /Zend_Memory_ValueN
 3Zend_Memory_ManagerN	 7Zend_Memory_ExceptionN 7Zend_Memory_ContainerN" GZend_Memory_Container_MovableN! EZend_Memory_Container_LockedN! EZend_Memory_AccessControllerN 3Zend_Measure_WeightN 3Zend_Measure_VolumeN% MZend_Measure_Viscosity_KinematicN# IZend_Measure_Viscosity_DynamicN  3Zend_Measure_TorqueN =Zend_Measure_TemperatureN~ 1Zend_Measure_SpeedN} 7Zend_Measure_PressureN| 1Zend_Measure_PowerN{ 3Zend_Measure_NumberNz 9Zend_Measure_LightnessNy 3Zend_Measure_LengthNx ?Zend_Measure_IlluminationNw 9Zend_Measure_FrequencyNv 1Zend_Measure_ForceNu =Zend_Measure_Flow_VolumeNt 9Zend_Measure_Flow_MoleNs 9Zend_Measure_Flow_MassNr 9Zend_Measure_ExceptionNq 3Zend_Measure_EnergyNp 5Zend_Measure_DensityNo 5Zend_Measure_CurrentN n CZend_Measure_Cooking_WeightN m CZend_Measure_Cooking_VolumeNl =Zend_Measure_CapacitanceNk 3Zend_Measure_BinaryNj /Zend_Measure_AreaNi 1Zend_Measure_AngleNh ?Zend_Measure_AccelerationNg 7Zend_Measure_AbstractNf Zend_MailNe =Zend_Mail_Transport_SmtpN!d EZend_Mail_Transport_SendmailN"c GZend_Mail_Transport_ExceptionN!b EZend_Mail_Transport_AbstractNa /Zend_Mail_StorageN'` QZend_Mail_Storage_Writable_MaildirN_ 9Zend_Mail_Storage_Pop3N^ 9Zend_Mail_Storage_MboxN] ?Zend_Mail_Storage_MaildirN\ 9Zend_Mail_Storage_ImapN[ =Zend_Mail_Storage_FolderN"Z GZend_Mail_Storage_Folder_MboxN%Y MZend_Mail_Storage_Folder_MaildirN X CZend_Mail_Storage_ExceptionNW AZend_Mail_Storage_AbstractNV ;Zend_Mail_Protocol_SmtpN'U QZend_Mail_Protocol_Smtp_Auth_PlainN'T QZend_Mail_Protocol_Smtp_Auth_LoginN)S UZend_Mail_Protocol_Smtp_Auth_Crammd5NR ;Zend_Mail_Protocol_Pop3NQ ;Zend_Mail_Protocol_ImapN!P EZend_Mail_Protocol_ExceptionN O CZend_Mail_Protocol_AbstractNN )Zend_Mail_PartNM /Zend_Mail_MessageNL 3Zend_Mail_ExceptionNK Zend_LogNJ 9Zend_Log_Writer_StreamNI 5Zend_Log_Writer_NullNH 5Zend_Log_Writer_MockNG 1Zend_Log_Writer_DbNF =Zend_Log_Writer_AbstractNE 9Zend_Log_Formatter_XmlND ?Zend_Log_Formatter_SimpleNC =Zend_Log_Filter_SuppressNB =Zend_Log_Filter_PriorityNA ;Zend_Log_Filter_MessageN@ 1Zend_Log_ExceptionN? #Zend_LocaleN> -Zend_Locale_MathN= =Zend_Locale_Math_PhpMathN< AZend_Locale_Math_ExceptionN; 1Zend_Locale_FormatN: 7Zend_Locale_ExceptionN9 -Zend_Locale_DataN!8 EZend_Locale_Data_TranslationN7 #Zend_LoaderN6 =Zend_Loader_PluginLoaderN'5 QZend_Loader_PluginLoader_ExceptionN4 7Zend_Loader_ExceptionN3 #Zend_LayoutN2 7Zend_Layout_ExceptionN)1 UZend_Layout_Controller_Plugin_LayoutN00 cZend_Layout_Controller_Action_Helper_LayoutN   ]  ^7Y9 bA_?{eF.



f
0
			O	Vh-b=iO1rO/VJT'                                                            & OZend_Search_Lucene_Analysis_TokenN) UZend_Search_Lucene_Analysis_AnalyzerN0 cZend_Search_Lucene_Analysis_Analyzer_CommonN8 sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumNI Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitiveN5  mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NF Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitiveN8~ sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumNI} Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitiveN5| mZend_Search_Lucene_Analysis_Analyzer_Common_TextNF{ Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiveNz 7Zend_Search_ExceptionNy -Zend_Rest_ServerNx AZend_Rest_Server_ExceptionNw 3Zend_Rest_ExceptionNv -Zend_Rest_ClientNu ;Zend_Rest_Client_ResultNt AZend_Rest_Client_ExceptionNs 'Zend_RegistryNr Zend_PdfN!q EZend_Pdf_UpdateInfoContainerNp -Zend_Pdf_TrailerNo ;Zend_Pdf_Trailer_KeeperNn AZend_Pdf_Trailer_GeneratorNm )Zend_Pdf_StyleNl 7Zend_Pdf_StringParserNk /Zend_Pdf_ResourceN#j IZend_Pdf_Resource_ImageFactoryNi ;Zend_Pdf_Resource_ImageN!h EZend_Pdf_Resource_Image_TiffN g CZend_Pdf_Resource_Image_PngN!f EZend_Pdf_Resource_Image_JpegNe 9Zend_Pdf_Resource_FontN!d EZend_Pdf_Resource_Font_Type0N"c GZend_Pdf_Resource_Font_SimpleN+b YZend_Pdf_Resource_Font_Simple_StandardN8a sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsN6` oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanN7_ qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicN;^ yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicN5] mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldN2\ gZend_Pdf_Resource_Font_Simple_Standard_SymbolN<[ {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueNAZ Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliqueN9Y uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldN5X mZend_Pdf_Resource_Font_Simple_Standard_HelveticaN:W wZend_Pdf_Resource_Font_Simple_Standard_CourierObliqueN>V Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliqueN7U qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldN3T iZend_Pdf_Resource_Font_Simple_Standard_CourierN)S UZend_Pdf_Resource_Font_Simple_ParsedN2R gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypeN*Q WZend_Pdf_Resource_Font_FontDescriptorN%P MZend_Pdf_Resource_Font_ExtractedN#O IZend_Pdf_Resource_Font_CidFontN,N [Zend_Pdf_Resource_Font_CidFont_TrueTypeNM /Zend_Pdf_PhpArrayNL +Zend_Pdf_ParserNK 9Zend_Pdf_Parser_StreamNJ 'Zend_Pdf_PageNI )Zend_Pdf_ImageNH 'Zend_Pdf_FontN G CZend_Pdf_Filter_CompressionN$F KZend_Pdf_Filter_Compression_LzwN&E OZend_Pdf_Filter_Compression_FlateND =Zend_Pdf_Filter_AsciiHexNC ;Zend_Pdf_Filter_Ascii85N"B GZend_Pdf_FileParserDataSourceN)A UZend_Pdf_FileParserDataSource_StringN'@ QZend_Pdf_FileParserDataSource_FileN? 3Zend_Pdf_FileParserN> ?Zend_Pdf_FileParser_ImageN"= GZend_Pdf_FileParser_Image_PngN< =Zend_Pdf_FileParser_FontN&; OZend_Pdf_FileParser_Font_OpenTypeN/: aZend_Pdf_FileParser_Font_OpenType_TrueTypeN9 1Zend_Pdf_ExceptionN8 ;Zend_Pdf_ElementFactoryN"7 GZend_Pdf_ElementFactory_ProxyN6 -Zend_Pdf_ElementN5 ;Zend_Pdf_Element_StringN#4 IZend_Pdf_Element_String_BinaryN3 ;Zend_Pdf_Element_StreamN2 AZend_Pdf_Element_ReferenceN%1 MZend_Pdf_Element_Reference_TableN'0 QZend_Pdf_Element_Reference_ContextN/ ;Zend_Pdf_Element_ObjectN#. IZend_Pdf_Element_Object_StreamN- =Zend_Pdf_Element_NumericN, 7Zend_Pdf_Element_NullN+ 7Zend_Pdf_Element_NameN * CZend_Pdf_Element_DictionaryN) =Zend_Pdf_Element_BooleanN   Y  MqP1HpJ I



U
&				r	>	~Q#U(e7vG{J"[<`?[?                       ^ CZend_Service_Delicious_PostN%] MZend_Service_Delicious_ExceptionN \ CZend_Service_AudioscrobblerN[ 3Zend_Service_AmazonN'Z QZend_Service_Amazon_SimilarProductN"Y GZend_Service_Amazon_ResultSetNX ?Zend_Service_Amazon_QueryN!W EZend_Service_Amazon_OfferSetNV ?Zend_Service_Amazon_OfferN&U OZend_Service_Amazon_ListmaniaListNT =Zend_Service_Amazon_ItemNS ?Zend_Service_Amazon_ImageN(R SZend_Service_Amazon_EditorialReviewN'Q QZend_Service_Amazon_CustomerReviewN$P KZend_Service_Amazon_AccessoriesNO 5Zend_Service_AkismetNN 7Zend_Service_AbstractNM 9Zend_Server_ReflectionN'L QZend_Server_Reflection_ReturnValueN%K MZend_Server_Reflection_PrototypeN%J MZend_Server_Reflection_ParameterN I CZend_Server_Reflection_NodeN"H GZend_Server_Reflection_MethodN$G KZend_Server_Reflection_FunctionN-F ]Zend_Server_Reflection_Function_AbstractN%E MZend_Server_Reflection_ExceptionN!D EZend_Server_Reflection_ClassNC 7Zend_Server_ExceptionNB 5Zend_Server_AbstractNA 1Zend_Search_LuceneN$@ KZend_Search_Lucene_Storage_FileN+? YZend_Search_Lucene_Storage_File_MemoryN/> aZend_Search_Lucene_Storage_File_FilesystemN)= UZend_Search_Lucene_Storage_DirectoryN4< kZend_Search_Lucene_Storage_Directory_FilesystemN%; MZend_Search_Lucene_Search_WeightN*: WZend_Search_Lucene_Search_Weight_TermN,9 [Zend_Search_Lucene_Search_Weight_PhraseN/8 aZend_Search_Lucene_Search_Weight_MultiTermN+7 YZend_Search_Lucene_Search_Weight_EmptyN-6 ]Zend_Search_Lucene_Search_Weight_BooleanN)5 UZend_Search_Lucene_Search_SimilarityN14 eZend_Search_Lucene_Search_Similarity_DefaultN)3 UZend_Search_Lucene_Search_QueryTokenN32 iZend_Search_Lucene_Search_QueryParserExceptionN11 eZend_Search_Lucene_Search_QueryParserContextN*0 WZend_Search_Lucene_Search_QueryParserN)/ UZend_Search_Lucene_Search_QueryLexerN'. QZend_Search_Lucene_Search_QueryHitN)- UZend_Search_Lucene_Search_QueryEntryN., _Zend_Search_Lucene_Search_QueryEntry_TermN2+ gZend_Search_Lucene_Search_QueryEntry_SubqueryN0* cZend_Search_Lucene_Search_QueryEntry_PhraseN$) KZend_Search_Lucene_Search_QueryN-( ]Zend_Search_Lucene_Search_Query_WildcardN)' UZend_Search_Lucene_Search_Query_TermN*& WZend_Search_Lucene_Search_Query_RangeN+% YZend_Search_Lucene_Search_Query_PhraseN.$ _Zend_Search_Lucene_Search_Query_MultiTermN2# gZend_Search_Lucene_Search_Query_InsignificantN*" WZend_Search_Lucene_Search_Query_FuzzyN*! WZend_Search_Lucene_Search_Query_EmptyN,  [Zend_Search_Lucene_Search_Query_BooleanN: wZend_Search_Lucene_Search_BooleanExpressionRecognizerN =Zend_Search_Lucene_ProxyN% MZend_Search_Lucene_PriorityQueueN# IZend_Search_Lucene_LockManagerN$ KZend_Search_Lucene_Index_WriterN& OZend_Search_Lucene_Index_TermInfoN" GZend_Search_Lucene_Index_TermN+ YZend_Search_Lucene_Index_SegmentWriterN8 sZend_Search_Lucene_Index_SegmentWriter_StreamWriterN: wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterN+ YZend_Search_Lucene_Index_SegmentMergerN6 oZend_Search_Lucene_Index_SegmentInfoPriorityQueueN) UZend_Search_Lucene_Index_SegmentInfoN' QZend_Search_Lucene_Index_FieldInfoN. _Zend_Search_Lucene_Index_DictionaryLoaderN! EZend_Search_Lucene_FSMActionN 9Zend_Search_Lucene_FSMN =Zend_Search_Lucene_FieldN! EZend_Search_Lucene_ExceptionN  CZend_Search_Lucene_DocumentN% MZend_Search_Lucene_Document_HtmlN,
 [Zend_Search_Lucene_Analysis_TokenFilterN6	 oZend_Search_Lucene_Analysis_TokenFilter_StopWordsN7 qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsN: wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8N6 oZend_Search_Lucene_Analysis_TokenFilter_LowerCaseN   i  pN+a>W<yOuF



X
*				~	N	$xQ1d=mK&mO0mN3iF!tcD(mR5                         G ;Zend_Validate_ExceptionNF AZend_Validate_EmailAddressNE 5Zend_Validate_DigitsND 1Zend_Validate_DateNC 3Zend_Validate_CcnumNB 7Zend_Validate_BetweenNA 7Zend_Validate_BarcodeN@ AZend_Validate_Barcode_UpcAN ? CZend_Validate_Barcode_Ean13N> 3Zend_Validate_AlphaN= 3Zend_Validate_AlnumN< 9Zend_Validate_AbstractN; Zend_UriN: 'Zend_Uri_HttpN9 1Zend_Uri_ExceptionN8 )Zend_TranslateN7 =Zend_Translate_ExceptionN6 9Zend_Translate_AdapterN!5 EZend_Translate_Adapter_XmlTmN!4 EZend_Translate_Adapter_XliffN3 AZend_Translate_Adapter_TmxN2 AZend_Translate_Adapter_TbxN1 ?Zend_Translate_Adapter_QtN#0 IZend_Translate_Adapter_GettextN/ AZend_Translate_Adapter_CsvN!. EZend_Translate_Adapter_ArrayN- 'Zend_TimeSyncN, 1Zend_TimeSync_SntpN+ 9Zend_TimeSync_ProtocolN* /Zend_TimeSync_NtpN) ;Zend_TimeSync_ExceptionN( %Zend_SessionN)' UZend_Session_Validator_HttpUserAgentN$& KZend_Session_Validator_AbstractN% 9Zend_Session_NamespaceN$ 9Zend_Session_ExceptionN# 7Zend_Session_AbstractN" 1Zend_Service_YahooN$! KZend_Service_Yahoo_WebResultSetN!  EZend_Service_Yahoo_WebResultN& OZend_Service_Yahoo_VideoResultSetN# IZend_Service_Yahoo_VideoResultN! EZend_Service_Yahoo_ResultSetN ?Zend_Service_Yahoo_ResultN) UZend_Service_Yahoo_PageDataResultSetN& OZend_Service_Yahoo_PageDataResultN% MZend_Service_Yahoo_NewsResultSetN" GZend_Service_Yahoo_NewsResultN& OZend_Service_Yahoo_LocalResultSetN# IZend_Service_Yahoo_LocalResultN+ YZend_Service_Yahoo_InlinkDataResultSetN( SZend_Service_Yahoo_InlinkDataResultN& OZend_Service_Yahoo_ImageResultSetN# IZend_Service_Yahoo_ImageResultN =Zend_Service_Yahoo_ImageN ;Zend_Service_TechnoratiN# IZend_Service_Technorati_WeblogN" GZend_Service_Technorati_UtilsN* WZend_Service_Technorati_TagsResultSetN' QZend_Service_Technorati_TagsResultN) UZend_Service_Technorati_TagResultSetN&
 OZend_Service_Technorati_TagResultN,	 [Zend_Service_Technorati_SearchResultSetN) UZend_Service_Technorati_SearchResultN& OZend_Service_Technorati_ResultSetN# IZend_Service_Technorati_ResultN* WZend_Service_Technorati_KeyInfoResultN* WZend_Service_Technorati_GetInfoResultN& OZend_Service_Technorati_ExceptionN1 eZend_Service_Technorati_DailyCountsResultSetN. _Zend_Service_Technorati_DailyCountsResultN,  [Zend_Service_Technorati_CosmosResultSetN) UZend_Service_Technorati_CosmosResultN+~ YZend_Service_Technorati_BlogInfoResultN#} IZend_Service_Technorati_AuthorN| ;Zend_Service_StrikeIronN({ SZend_Service_StrikeIron_ZipCodeInfoN2z gZend_Service_StrikeIron_USAddressVerificationN-y ]Zend_Service_StrikeIron_SalesUseTaxBasicN&x OZend_Service_StrikeIron_ExceptionN&w OZend_Service_StrikeIron_DecoratorN!v EZend_Service_StrikeIron_BaseNu ;Zend_Service_SlideShareN&t OZend_Service_SlideShare_SlideShowN&s OZend_Service_SlideShare_ExceptionNr 1Zend_Service_SimpyN$q KZend_Service_Simpy_WatchlistSetN*p WZend_Service_Simpy_WatchlistFilterSetN'o QZend_Service_Simpy_WatchlistFilterN!n EZend_Service_Simpy_WatchlistNm ?Zend_Service_Simpy_TagSetNl 9Zend_Service_Simpy_TagNk AZend_Service_Simpy_NoteSetNj ;Zend_Service_Simpy_NoteNi AZend_Service_Simpy_LinkSetN!h EZend_Service_Simpy_LinkQueryNg ;Zend_Service_Simpy_LinkNf 3Zend_Service_FlickrN"e GZend_Service_Flickr_ResultSetNd AZend_Service_Flickr_ResultNc ?Zend_Service_Flickr_ImageNb 9Zend_Service_ExceptionNa 9Zend_Service_DeliciousN&` OZend_Service_Delicious_SimplePostN$_ KZend_Service_Delicious_PostListN   p  dB yY;!u`E)	_9d9




c
A
					m	K	%	v>d6pGoN,jO/_=bC-V7              7 9Zend_Auth_Adapter_LdapO6 AZend_Auth_Adapter_InfoCardO5 9Zend_Auth_Adapter_HttpO)4 UZend_Auth_Adapter_Http_Resolver_FileO.3 _Zend_Auth_Adapter_Http_Resolver_ExceptionO 2 CZend_Auth_Adapter_ExceptionO1 =Zend_Auth_Adapter_DigestO0 ?Zend_Auth_Adapter_DbTableO/ Zend_AclO. 'Zend_Acl_RoleO- 9Zend_Acl_Role_RegistryO%, MZend_Acl_Role_Registry_ExceptionO+ /Zend_Acl_ResourceO* 1Zend_Acl_ExceptionO) /Zend_XmlRpc_ValueN( =Zend_XmlRpc_Value_StructN' =Zend_XmlRpc_Value_StringN& =Zend_XmlRpc_Value_ScalarN% ?Zend_XmlRpc_Value_IntegerN $ CZend_XmlRpc_Value_ExceptionN# =Zend_XmlRpc_Value_DoubleN" AZend_XmlRpc_Value_DateTimeN!! EZend_XmlRpc_Value_CollectionN  ?Zend_XmlRpc_Value_BooleanN =Zend_XmlRpc_Value_Base64N ;Zend_XmlRpc_Value_ArrayN 1Zend_XmlRpc_ServerN =Zend_XmlRpc_Server_FaultN! EZend_XmlRpc_Server_ExceptionN =Zend_XmlRpc_Server_CacheN 5Zend_XmlRpc_ResponseN ?Zend_XmlRpc_Response_HttpN 3Zend_XmlRpc_RequestN ?Zend_XmlRpc_Request_StdinN =Zend_XmlRpc_Request_HttpN /Zend_XmlRpc_FaultN 7Zend_XmlRpc_ExceptionN 1Zend_XmlRpc_ClientN# IZend_XmlRpc_Client_ServerProxyN+ YZend_XmlRpc_Client_ServerIntrospectionN+ YZend_XmlRpc_Client_IntrospectExceptionN% MZend_XmlRpc_Client_HttpExceptionN& OZend_XmlRpc_Client_FaultExceptionN! EZend_XmlRpc_Client_ExceptionN Zend_ViewN
 5Zend_View_Helper_UrlN	 AZend_View_Helper_TranslateN! EZend_View_Helper_PlaceholderN* WZend_View_Helper_Placeholder_RegistryN4 kZend_View_Helper_Placeholder_Registry_ExceptionN+ YZend_View_Helper_Placeholder_ContainerN6 oZend_View_Helper_Placeholder_Container_StandaloneN5 mZend_View_Helper_Placeholder_Container_ExceptionN4 kZend_View_Helper_Placeholder_Container_AbstractN! EZend_View_Helper_PartialLoopN  =Zend_View_Helper_PartialN' QZend_View_Helper_Partial_ExceptionN~ ;Zend_View_Helper_LayoutN} 7Zend_View_Helper_JsonN"| GZend_View_Helper_InlineScriptN{ ?Zend_View_Helper_HtmlListNz AZend_View_Helper_HeadTitleNy AZend_View_Helper_HeadStyleN x CZend_View_Helper_HeadScriptNw ?Zend_View_Helper_HeadMetaNv ?Zend_View_Helper_HeadLinkN"u GZend_View_Helper_FormTextareaNt ?Zend_View_Helper_FormTextN s CZend_View_Helper_FormSubmitN r CZend_View_Helper_FormSelectNq AZend_View_Helper_FormResetNp AZend_View_Helper_FormRadioN"o GZend_View_Helper_FormPasswordNn ?Zend_View_Helper_FormNoteN'm QZend_View_Helper_FormMultiCheckboxNl AZend_View_Helper_FormLabelNk AZend_View_Helper_FormImageN j CZend_View_Helper_FormHiddenNi ?Zend_View_Helper_FormFileN h CZend_View_Helper_FormErrorsN!g EZend_View_Helper_FormElementN"f GZend_View_Helper_FormCheckboxN e CZend_View_Helper_FormButtonNd 7Zend_View_Helper_FormNc ?Zend_View_Helper_FieldsetNb =Zend_View_Helper_DoctypeN!a EZend_View_Helper_DeclareVarsN` ;Zend_View_Helper_ActionN_ 3Zend_View_ExceptionN^ 1Zend_View_AbstractN] %Zend_VersionN\ 'Zend_ValidateN[ AZend_Validate_StringLengthNZ 3Zend_Validate_RegexNY 9Zend_Validate_NotEmptyNX 9Zend_Validate_LessThanNW -Zend_Validate_IpNV /Zend_Validate_IntNU 7Zend_Validate_InArrayNT ;Zend_Validate_IdenticalNS 9Zend_Validate_HostnameNR ?Zend_Validate_Hostname_SeNQ ?Zend_Validate_Hostname_NoNP ?Zend_Validate_Hostname_LiNO ?Zend_Validate_Hostname_HuNN ?Zend_Validate_Hostname_FiNM ?Zend_Validate_Hostname_DeNL ?Zend_Validate_Hostname_ChNK ?Zend_Validate_Hostname_AtNJ /Zend_Validate_HexNI ?Zend_Validate_GreaterThanNH 3Zend_Validate_FloatN   d  V.i8zL)xQ'U(



r
Q
-
				f	H	$	nS2yU)pK)FY#^7d<wF#              !" EZend_Cache_Backend_InterfaceQ ! CZend_Auth_Storage_InterfaceQ   CZend_Auth_Adapter_InterfaceQ. _Zend_Auth_Adapter_Http_Resolver_InterfaceQ ;Zend_Acl_Role_InterfaceQ  CZend_Acl_Resource_InterfaceQ ?Zend_Acl_Assert_InterfaceQ 3Zend_View_InterfaceP ;Zend_Validate_InterfaceP% MZend_Validate_Hostname_InterfaceP% MZend_Session_Validator_InterfaceP' QZend_Session_SaveHandler_InterfaceP 7Zend_Server_InterfaceP! EZend_Search_Lucene_InterfaceP 9Zend_Request_InterfaceP ?Zend_Pdf_Filter_InterfaceP& OZend_Pdf_ElementFactory_InterfaceP$ KZend_Memory_Container_InterfaceP) UZend_Mail_Storage_Writable_InterfaceP' QZend_Mail_Storage_Folder_InterfaceP! EZend_Log_Formatter_InterfaceP ?Zend_Log_Filter_InterfaceP' QZend_Loader_PluginLoader_InterfaceP3 iZend_InfoCard_Xml_Security_Transform_InterfaceP(
 SZend_InfoCard_Xml_KeyInfo_InterfaceP(	 SZend_InfoCard_Xml_Element_InterfaceP* WZend_InfoCard_Xml_Assertion_InterfaceP- ]Zend_InfoCard_Cipher_Symmetric_InterfaceP7 qZend_InfoCard_Cipher_Symmetric_Aes256cbc_InterfaceP7 qZend_InfoCard_Cipher_Symmetric_Aes128cbc_InterfaceP+ YZend_InfoCard_Cipher_Pki_Rsa_InterfaceP' QZend_InfoCard_Cipher_Pki_InterfaceP$ KZend_InfoCard_Adapter_InterfaceP' QZend_Http_Client_Adapter_InterfaceP  AZend_Gdata_App_MediaSourceP" GZend_Form_Decorator_InterfaceP~ 7Zend_Filter_InterfaceP } CZend_Feed_Builder_InterfaceP | CZend_Db_Statement_InterfaceP+{ YZend_Controller_Router_Route_InterfaceP%z MZend_Controller_Router_InterfaceP)y UZend_Controller_Dispatcher_InterfaceP!x EZend_Cache_Backend_InterfaceP w CZend_Auth_Storage_InterfaceP v CZend_Auth_Adapter_InterfaceP.u _Zend_Auth_Adapter_Http_Resolver_InterfacePt ;Zend_Acl_Role_InterfaceP s CZend_Acl_Resource_InterfacePr ?Zend_Acl_Assert_InterfacePq 3Zend_View_InterfaceOp ;Zend_Validate_InterfaceO%o MZend_Validate_Hostname_InterfaceO%n MZend_Session_Validator_InterfaceO'm QZend_Session_SaveHandler_InterfaceOl 7Zend_Server_InterfaceO!k EZend_Search_Lucene_InterfaceOj 9Zend_Request_InterfaceOi ?Zend_Pdf_Filter_InterfaceO&h OZend_Pdf_ElementFactory_InterfaceO$g KZend_Memory_Container_InterfaceO)f UZend_Mail_Storage_Writable_InterfaceO'e QZend_Mail_Storage_Folder_InterfaceO!d EZend_Log_Formatter_InterfaceOc ?Zend_Log_Filter_InterfaceO'b QZend_Loader_PluginLoader_InterfaceO3a iZend_InfoCard_Xml_Security_Transform_InterfaceO(` SZend_InfoCard_Xml_KeyInfo_InterfaceO(_ SZend_InfoCard_Xml_Element_InterfaceO*^ WZend_InfoCard_Xml_Assertion_InterfaceO-] ]Zend_InfoCard_Cipher_Symmetric_InterfaceO7\ qZend_InfoCard_Cipher_Symmetric_Aes256cbc_InterfaceO7[ qZend_InfoCard_Cipher_Symmetric_Aes128cbc_InterfaceO+Z YZend_InfoCard_Cipher_Pki_Rsa_InterfaceO'Y QZend_InfoCard_Cipher_Pki_InterfaceO$X KZend_InfoCard_Adapter_InterfaceO'W QZend_Http_Client_Adapter_InterfaceOV AZend_Gdata_App_MediaSourceO"U GZend_Form_Decorator_InterfaceOT 7Zend_Filter_InterfaceO S CZend_Feed_Builder_InterfaceO R CZend_Db_Statement_InterfaceO+Q YZend_Controller_Router_Route_InterfaceO%P MZend_Controller_Router_InterfaceO)O UZend_Controller_Dispatcher_InterfaceO!N EZend_Cache_Backend_InterfaceO M CZend_Auth_Storage_InterfaceO L CZend_Auth_Adapter_InterfaceO.K _Zend_Auth_Adapter_Http_Resolver_InterfaceOJ ;Zend_Acl_Role_InterfaceO I CZend_Acl_Resource_InterfaceOH ?Zend_Acl_Assert_InterfaceOG 3Zend_View_InterfaceNF ;Zend_Validate_InterfaceN%E MZend_Validate_Hostname_InterfaceN%D MZend_Session_Validator_InterfaceN'C QZend_Session_SaveHandler_InterfaceNB 7Zend_Server_InterfaceN!A EZend_Search_Lucene_InterfaceN@ 9Zend_Request_InterfaceN? ?Zend_Pdf_Filter_InterfaceN   k  ^<*\A)`M/Qz:


u
K
				t	H	&	c:pK V+nR@sJ+|Z:kJ3}R1                    " 7Zend_Db_Statement_PdoO! ?Zend_Db_Statement_Pdo_IbmO  =Zend_Db_Statement_OracleO' QZend_Db_Statement_Oracle_ExceptionO =Zend_Db_Statement_MysqliO' QZend_Db_Statement_Mysqli_ExceptionO  CZend_Db_Statement_ExceptionO 7Zend_Db_Statement_Db2O$ KZend_Db_Statement_Db2_ExceptionO )Zend_Db_SelectO =Zend_Db_Select_ExceptionO -Zend_Db_ProfilerO 9Zend_Db_Profiler_QueryO AZend_Db_Profiler_ExceptionO %Zend_Db_ExprO /Zend_Db_ExceptionO AZend_Db_Adapter_Pdo_SqliteO ?Zend_Db_Adapter_Pdo_PgsqlO ;Zend_Db_Adapter_Pdo_OciO ?Zend_Db_Adapter_Pdo_MysqlO ?Zend_Db_Adapter_Pdo_MssqlO ;Zend_Db_Adapter_Pdo_IbmO  CZend_Db_Adapter_Pdo_Ibm_IdsO  CZend_Db_Adapter_Pdo_Ibm_Db2O!
 EZend_Db_Adapter_Pdo_AbstractO	 9Zend_Db_Adapter_OracleO% MZend_Db_Adapter_Oracle_ExceptionO 9Zend_Db_Adapter_MysqliO% MZend_Db_Adapter_Mysqli_ExceptionO ?Zend_Db_Adapter_ExceptionO 3Zend_Db_Adapter_Db2O" GZend_Db_Adapter_Db2_ExceptionO =Zend_Db_Adapter_AbstractO Zend_DateO  3Zend_Date_ExceptionO 5Zend_Date_DateObjectO~ -Zend_Date_CitiesO} 'Zend_CurrencyO| ;Zend_Currency_ExceptionO!{ EZend_Controller_Router_RouteO(z SZend_Controller_Router_Route_StaticO'y QZend_Controller_Router_Route_RegexO(x SZend_Controller_Router_Route_ModuleO#w IZend_Controller_Router_RewriteO%v MZend_Controller_Router_ExceptionO$u KZend_Controller_Router_AbstractO"t GZend_Controller_Response_HttpO's QZend_Controller_Response_ExceptionO!r EZend_Controller_Response_CliO&q OZend_Controller_Response_AbstractO#p IZend_Controller_Request_SimpleO!o EZend_Controller_Request_HttpO&n OZend_Controller_Request_ExceptionO&m OZend_Controller_Request_Apache404O%l MZend_Controller_Request_AbstractO(k SZend_Controller_Plugin_ErrorHandlerO"j GZend_Controller_Plugin_BrokerO'i QZend_Controller_Plugin_ActionStackO$h KZend_Controller_Plugin_AbstractOg 7Zend_Controller_FrontOf ?Zend_Controller_ExceptionO(e SZend_Controller_Dispatcher_StandardO)d UZend_Controller_Dispatcher_ExceptionO(c SZend_Controller_Dispatcher_AbstractOb 9Zend_Controller_ActionO(a SZend_Controller_Action_HelperBrokerO/` aZend_Controller_Action_Helper_ViewRendererO&_ OZend_Controller_Action_Helper_UrlO-^ ]Zend_Controller_Action_Helper_RedirectorO'] QZend_Controller_Action_Helper_JsonO1\ eZend_Controller_Action_Helper_FlashMessengerO0[ cZend_Controller_Action_Helper_ContextSwitchO<Z {Zend_Controller_Action_Helper_AutoCompleteScriptaculousO3Y iZend_Controller_Action_Helper_AutoCompleteDojoO8X sZend_Controller_Action_Helper_AutoComplete_AbstractO.W _Zend_Controller_Action_Helper_AjaxContextO.V _Zend_Controller_Action_Helper_ActionStackO+U YZend_Controller_Action_Helper_AbstractO%T MZend_Controller_Action_ExceptionOS 3Zend_Console_GetoptO"R GZend_Console_Getopt_ExceptionOQ #Zend_ConfigOP +Zend_Config_XmlOO +Zend_Config_IniON 7Zend_Config_ExceptionOM !Zend_CacheOL =Zend_Cache_Frontend_PageOK AZend_Cache_Frontend_OutputO!J EZend_Cache_Frontend_FunctionOI =Zend_Cache_Frontend_FileOH ?Zend_Cache_Frontend_ClassOG 5Zend_Cache_ExceptionOF +Zend_Cache_CoreOE 1Zend_Cache_BackendO$D KZend_Cache_Backend_ZendPlatformOC ;Zend_Cache_Backend_TestOB ?Zend_Cache_Backend_SqliteO!A EZend_Cache_Backend_MemcachedO@ ;Zend_Cache_Backend_FileO? 9Zend_Cache_Backend_ApcO> Zend_AuthO= ?Zend_Auth_Storage_SessionO$< KZend_Auth_Storage_NonPersistentO ; CZend_Auth_Storage_ExceptionO: -Zend_Auth_ResultO9 3Zend_Auth_ExceptionO8 =Zend_Auth_Adapter_OpenIdO   q `F r_H-oU4fK3gE#



`
7
				a	3	rM%nE!pO,`:vS3~b;{R%Z4                                        CZend_Gdata_App_Extension_IdO" GZend_Gdata_App_Extension_IconO' QZend_Gdata_App_Extension_GeneratorO# IZend_Gdata_App_Extension_EmailO% MZend_Gdata_App_Extension_ElementO# IZend_Gdata_App_Extension_DraftO% MZend_Gdata_App_Extension_ControlO) UZend_Gdata_App_Extension_ContributorO% MZend_Gdata_App_Extension_ContentO&
 OZend_Gdata_App_Extension_CategoryO$	 KZend_Gdata_App_Extension_AuthorO =Zend_Gdata_App_ExceptionO 5Zend_Gdata_App_EntryO, [Zend_Gdata_App_CaptchaRequiredExceptionO# IZend_Gdata_App_BaseMediaSourceO 3Zend_Gdata_App_BaseO* WZend_Gdata_App_BadMethodCallExceptionO! EZend_Gdata_App_AuthExceptionO Zend_FormO  /Zend_Form_SubFormO 3Zend_Form_ExceptionO~ /Zend_Form_ElementO} ;Zend_Form_Element_XhtmlO| AZend_Form_Element_TextareaO{ 9Zend_Form_Element_TextOz =Zend_Form_Element_SubmitOy =Zend_Form_Element_SelectOx ;Zend_Form_Element_ResetOw ;Zend_Form_Element_RadioOv AZend_Form_Element_PasswordO"u GZend_Form_Element_MultiselectO$t KZend_Form_Element_MultiCheckboxOs ;Zend_Form_Element_MultiOr ;Zend_Form_Element_ImageOq =Zend_Form_Element_HiddenOp 9Zend_Form_Element_HashO o CZend_Form_Element_ExceptionOn AZend_Form_Element_CheckboxOm =Zend_Form_Element_ButtonOl 9Zend_Form_DisplayGroupO#k IZend_Form_Decorator_ViewScriptO#j IZend_Form_Decorator_ViewHelperOi ?Zend_Form_Decorator_LabelOh ?Zend_Form_Decorator_ImageO g CZend_Form_Decorator_HtmlTagO%f MZend_Form_Decorator_FormElementsOe =Zend_Form_Decorator_FormO!d EZend_Form_Decorator_FieldsetO"c GZend_Form_Decorator_ExceptionOb AZend_Form_Decorator_ErrorsO$a KZend_Form_Decorator_DtDdWrapperO$` KZend_Form_Decorator_DescriptionO!_ EZend_Form_Decorator_CallbackO!^ EZend_Form_Decorator_AbstractO] #Zend_FilterO+\ YZend_Filter_Word_UnderscoreToSeparatorO&[ OZend_Filter_Word_UnderscoreToDashO+Z YZend_Filter_Word_UnderscoreToCamelCaseO*Y WZend_Filter_Word_SeparatorToSeparatorO%X MZend_Filter_Word_SeparatorToDashO*W WZend_Filter_Word_SeparatorToCamelCaseO(V SZend_Filter_Word_Separator_AbstractO&U OZend_Filter_Word_DashToUnderscoreO%T MZend_Filter_Word_DashToSeparatorO%S MZend_Filter_Word_DashToCamelCaseO+R YZend_Filter_Word_CamelCaseToUnderscoreO*Q WZend_Filter_Word_CamelCaseToSeparatorO%P MZend_Filter_Word_CamelCaseToDashOO 7Zend_Filter_StripTagsON 9Zend_Filter_StringTrimOM ?Zend_Filter_StringToUpperOL ?Zend_Filter_StringToLowerOK 5Zend_Filter_RealPathOJ ;Zend_Filter_PregReplaceOI +Zend_Filter_IntOH /Zend_Filter_InputOG 7Zend_Filter_InflectorOF =Zend_Filter_HtmlEntitiesOE 7Zend_Filter_ExceptionOD +Zend_Filter_DirOC 1Zend_Filter_DigitsOB 5Zend_Filter_BaseNameOA /Zend_Filter_AlphaO@ /Zend_Filter_AlnumO? Zend_FeedO> 'Zend_Feed_RssO= 3Zend_Feed_ExceptionO< 3Zend_Feed_Entry_RssO; 5Zend_Feed_Entry_AtomO: =Zend_Feed_Entry_AbstractO9 /Zend_Feed_ElementO8 /Zend_Feed_BuilderO7 =Zend_Feed_Builder_HeaderO$6 KZend_Feed_Builder_Header_ItunesO 5 CZend_Feed_Builder_ExceptionO4 ;Zend_Feed_Builder_EntryO3 )Zend_Feed_AtomO2 1Zend_Feed_AbstractO1 )Zend_ExceptionO0 !Zend_DebugO/ Zend_DbO. 'Zend_Db_TableO- 5Zend_Db_Table_SelectO#, IZend_Db_Table_Select_ExceptionO+ 5Zend_Db_Table_RowsetO#* IZend_Db_Table_Rowset_ExceptionO") GZend_Db_Table_Rowset_AbstractO( /Zend_Db_Table_RowO ' CZend_Db_Table_Row_ExceptionO& AZend_Db_Table_Row_AbstractO% ;Zend_Db_Table_ExceptionO$ 9Zend_Db_Table_AbstractO# /Zend_Db_StatementO   b  f;rK"qLz^G,Z-


g
8
					W	.	kCpH!oI"q?c=hP(xG(~U.                      #u IZend_Gdata_Gapps_NicknameQueryO"t GZend_Gdata_Gapps_NicknameFeedO#s IZend_Gdata_Gapps_NicknameEntryO%r MZend_Gdata_Gapps_Extension_QuotaO(q SZend_Gdata_Gapps_Extension_NicknameO$p KZend_Gdata_Gapps_Extension_NameO%o MZend_Gdata_Gapps_Extension_LoginO)n UZend_Gdata_Gapps_Extension_EmailListOm 9Zend_Gdata_Gapps_ErrorO-l ]Zend_Gdata_Gapps_EmailListRecipientQueryO,k [Zend_Gdata_Gapps_EmailListRecipientFeedO-j ]Zend_Gdata_Gapps_EmailListRecipientEntryO$i KZend_Gdata_Gapps_EmailListQueryO#h IZend_Gdata_Gapps_EmailListFeedO$g KZend_Gdata_Gapps_EmailListEntryOf +Zend_Gdata_FeedOe 5Zend_Gdata_ExtensionOd =Zend_Gdata_Extension_WhoOc AZend_Gdata_Extension_WhereOb ?Zend_Gdata_Extension_WhenO$a KZend_Gdata_Extension_VisibilityO&` OZend_Gdata_Extension_TransparencyO"_ GZend_Gdata_Extension_ReminderO-^ ]Zend_Gdata_Extension_RecurrenceExceptionO$] KZend_Gdata_Extension_RecurrenceO \ CZend_Gdata_Extension_RatingO'[ QZend_Gdata_Extension_OriginalEventO0Z cZend_Gdata_Extension_OpenSearchTotalResultsO.Y _Zend_Gdata_Extension_OpenSearchStartIndexO0X cZend_Gdata_Extension_OpenSearchItemsPerPageO"W GZend_Gdata_Extension_FeedLinkO*V WZend_Gdata_Extension_ExtendedPropertyO%U MZend_Gdata_Extension_EventStatusO#T IZend_Gdata_Extension_EntryLinkO"S GZend_Gdata_Extension_CommentsO&R OZend_Gdata_Extension_AttendeeTypeO(Q SZend_Gdata_Extension_AttendeeStatusOP +Zend_Gdata_ExifOO 5Zend_Gdata_Exif_FeedO#N IZend_Gdata_Exif_Extension_TimeO#M IZend_Gdata_Exif_Extension_TagsO$L KZend_Gdata_Exif_Extension_ModelO#K IZend_Gdata_Exif_Extension_MakeO"J GZend_Gdata_Exif_Extension_IsoO,I [Zend_Gdata_Exif_Extension_ImageUniqueIdO$H KZend_Gdata_Exif_Extension_FStopO*G WZend_Gdata_Exif_Extension_FocalLengthO$F KZend_Gdata_Exif_Extension_FlashO'E QZend_Gdata_Exif_Extension_ExposureO'D QZend_Gdata_Exif_Extension_DistanceOC 7Zend_Gdata_Exif_EntryOB -Zend_Gdata_EntryOA +Zend_Gdata_DocsO@ 7Zend_Gdata_Docs_QueryO%? MZend_Gdata_Docs_DocumentListFeedO&> OZend_Gdata_Docs_DocumentListEntryO= 9Zend_Gdata_ClientLoginO< 3Zend_Gdata_CalendarO!; EZend_Gdata_Calendar_ListFeedO": GZend_Gdata_Calendar_ListEntryO-9 ]Zend_Gdata_Calendar_Extension_WebContentO+8 YZend_Gdata_Calendar_Extension_TimezoneO97 uZend_Gdata_Calendar_Extension_SendEventNotificationsO+6 YZend_Gdata_Calendar_Extension_SelectedO+5 YZend_Gdata_Calendar_Extension_QuickAddO'4 QZend_Gdata_Calendar_Extension_LinkO)3 UZend_Gdata_Calendar_Extension_HiddenO(2 SZend_Gdata_Calendar_Extension_ColorO.1 _Zend_Gdata_Calendar_Extension_AccessLevelO#0 IZend_Gdata_Calendar_EventQueryO"/ GZend_Gdata_Calendar_EventFeedO#. IZend_Gdata_Calendar_EventEntryO- 1Zend_Gdata_AuthSubO, )Zend_Gdata_AppO+ 3Zend_Gdata_App_UtilO#* IZend_Gdata_App_MediaFileSourceO) ?Zend_Gdata_App_MediaEntryO2( gZend_Gdata_App_LoggingHttpClientAdapterSocketO' AZend_Gdata_App_IOExceptionO,& [Zend_Gdata_App_InvalidArgumentExceptionO!% EZend_Gdata_App_HttpExceptionO$$ KZend_Gdata_App_FeedSourceParentO## IZend_Gdata_App_FeedEntryParentO" 3Zend_Gdata_App_FeedO! =Zend_Gdata_App_ExtensionO!  EZend_Gdata_App_Extension_UriO% MZend_Gdata_App_Extension_UpdatedO# IZend_Gdata_App_Extension_TitleO" GZend_Gdata_App_Extension_TextO% MZend_Gdata_App_Extension_SummaryO& OZend_Gdata_App_Extension_SubtitleO$ KZend_Gdata_App_Extension_SourceO$ KZend_Gdata_App_Extension_RightsO' QZend_Gdata_App_Extension_PublishedO$ KZend_Gdata_App_Extension_PersonO" GZend_Gdata_App_Extension_NameO" GZend_Gdata_App_Extension_LogoO" GZend_Gdata_App_Extension_LinkO   ^  rO6`AmCuEU$



e
3
					`	9	\+v@Y,vHpK'tZAg4}S"                                               ,S [Zend_Gdata_Spreadsheets_SpreadsheetFeedO-R ]Zend_Gdata_Spreadsheets_SpreadsheetEntryO&Q OZend_Gdata_Spreadsheets_ListQueryO%P MZend_Gdata_Spreadsheets_ListFeedO&O OZend_Gdata_Spreadsheets_ListEntryO/N aZend_Gdata_Spreadsheets_Extension_RowCountO-M ]Zend_Gdata_Spreadsheets_Extension_CustomO/L aZend_Gdata_Spreadsheets_Extension_ColCountO+K YZend_Gdata_Spreadsheets_Extension_CellO*J WZend_Gdata_Spreadsheets_DocumentQueryO&I OZend_Gdata_Spreadsheets_CellQueryO%H MZend_Gdata_Spreadsheets_CellFeedO&G OZend_Gdata_Spreadsheets_CellEntryOF -Zend_Gdata_QueryOE /Zend_Gdata_PhotosO D CZend_Gdata_Photos_UserQueryOC AZend_Gdata_Photos_UserFeedO B CZend_Gdata_Photos_UserEntryOA AZend_Gdata_Photos_TagEntryO!@ EZend_Gdata_Photos_PhotoQueryO ? CZend_Gdata_Photos_PhotoFeedO!> EZend_Gdata_Photos_PhotoEntryO&= OZend_Gdata_Photos_Extension_WidthO'< QZend_Gdata_Photos_Extension_WeightO(; SZend_Gdata_Photos_Extension_VersionO%: MZend_Gdata_Photos_Extension_UserO*9 WZend_Gdata_Photos_Extension_TimestampO*8 WZend_Gdata_Photos_Extension_ThumbnailO%7 MZend_Gdata_Photos_Extension_SizeO)6 UZend_Gdata_Photos_Extension_RotationO+5 YZend_Gdata_Photos_Extension_QuotaLimitO-4 ]Zend_Gdata_Photos_Extension_QuotaCurrentO)3 UZend_Gdata_Photos_Extension_PositionO(2 SZend_Gdata_Photos_Extension_PhotoIdO31 iZend_Gdata_Photos_Extension_NumPhotosRemainingO*0 WZend_Gdata_Photos_Extension_NumPhotosO)/ UZend_Gdata_Photos_Extension_NicknameO%. MZend_Gdata_Photos_Extension_NameO2- gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumO), UZend_Gdata_Photos_Extension_LocationO#+ IZend_Gdata_Photos_Extension_IdO'* QZend_Gdata_Photos_Extension_HeightO2) gZend_Gdata_Photos_Extension_CommentingEnabledO-( ]Zend_Gdata_Photos_Extension_CommentCountO'' QZend_Gdata_Photos_Extension_ClientO)& UZend_Gdata_Photos_Extension_ChecksumO*% WZend_Gdata_Photos_Extension_BytesUsedO($ SZend_Gdata_Photos_Extension_AlbumIdO'# QZend_Gdata_Photos_Extension_AccessO#" IZend_Gdata_Photos_CommentEntryO!! EZend_Gdata_Photos_AlbumQueryO   CZend_Gdata_Photos_AlbumFeedO! EZend_Gdata_Photos_AlbumEntryO -Zend_Gdata_MediaO 7Zend_Gdata_Media_FeedO* WZend_Gdata_Media_Extension_MediaTitleO. _Zend_Gdata_Media_Extension_MediaThumbnailO) UZend_Gdata_Media_Extension_MediaTextO0 cZend_Gdata_Media_Extension_MediaRestrictionO+ YZend_Gdata_Media_Extension_MediaRatingO+ YZend_Gdata_Media_Extension_MediaPlayerO- ]Zend_Gdata_Media_Extension_MediaKeywordsO) UZend_Gdata_Media_Extension_MediaHashO* WZend_Gdata_Media_Extension_MediaGroupO0 cZend_Gdata_Media_Extension_MediaDescriptionO+ YZend_Gdata_Media_Extension_MediaCreditO. _Zend_Gdata_Media_Extension_MediaCopyrightO, [Zend_Gdata_Media_Extension_MediaContentO- ]Zend_Gdata_Media_Extension_MediaCategoryO 9Zend_Gdata_Media_EntryO AZend_Gdata_Kind_EventEntryO )Zend_Gdata_GeoO 3Zend_Gdata_Geo_FeedO$
 KZend_Gdata_Geo_Extension_GmlPosO&	 OZend_Gdata_Geo_Extension_GmlPointO) UZend_Gdata_Geo_Extension_GeoRssWhereO 5Zend_Gdata_Geo_EntryO -Zend_Gdata_GbaseO" GZend_Gdata_Gbase_SnippetQueryO! EZend_Gdata_Gbase_SnippetFeedO" GZend_Gdata_Gbase_SnippetEntryO 9Zend_Gdata_Gbase_QueryO AZend_Gdata_Gbase_ItemQueryO  ?Zend_Gdata_Gbase_ItemFeedO AZend_Gdata_Gbase_ItemEntryO~ 7Zend_Gdata_Gbase_FeedO-} ]Zend_Gdata_Gbase_Extension_BaseAttributeO| 9Zend_Gdata_Gbase_EntryO{ -Zend_Gdata_GappsOz AZend_Gdata_Gapps_UserQueryOy ?Zend_Gdata_Gapps_UserFeedOx AZend_Gdata_Gapps_UserEntryO&w OZend_Gdata_Gapps_ServiceExceptionOv 9Zend_Gdata_Gapps_QueryO   ^  [4d7Q'k@Y(



u
J
				o	B	rL1~[B)a/X;f5h>NeK/                                      01 cZend_Layout_Controller_Action_Helper_LayoutO0 Zend_JsonO/ 3Zend_Json_ExceptionO. /Zend_Json_EncoderO- /Zend_Json_DecoderO, 'Zend_InfoCardO-+ ]Zend_InfoCard_Xml_SecurityTokenReferenceO* AZend_InfoCard_Xml_SecurityO)) UZend_InfoCard_Xml_Security_TransformO4( kZend_InfoCard_Xml_Security_Transform_XmlExcC14NO3' iZend_InfoCard_Xml_Security_Transform_ExceptionO<& {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignatureO)% UZend_InfoCard_Xml_Security_ExceptionO$ ?Zend_InfoCard_Xml_KeyInfoO&# OZend_InfoCard_Xml_KeyInfo_XmlDSigO&" OZend_InfoCard_Xml_KeyInfo_DefaultO'! QZend_InfoCard_Xml_KeyInfo_AbstractO   CZend_InfoCard_Xml_ExceptionO# IZend_InfoCard_Xml_EncryptedKeyO$ KZend_InfoCard_Xml_EncryptedDataO+ YZend_InfoCard_Xml_EncryptedData_XmlEncO- ]Zend_InfoCard_Xml_EncryptedData_AbstractO ?Zend_InfoCard_Xml_ElementO  CZend_InfoCard_Xml_AssertionO% MZend_InfoCard_Xml_Assertion_SamlO ;Zend_InfoCard_ExceptionO% MZend_InfoCard_Exception_AbstractO 5Zend_InfoCard_ClaimsO 5Zend_InfoCard_CipherO5 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcO5 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcO4 kZend_InfoCard_Cipher_Symmetric_Adapter_AbstractO) UZend_InfoCard_Cipher_Pki_Adapter_RsaO. _Zend_InfoCard_Cipher_Pki_Adapter_AbstractO# IZend_InfoCard_Cipher_ExceptionO$ KZend_InfoCard_Adapter_ExceptionO" GZend_InfoCard_Adapter_DefaultO 1Zend_Http_ResponseO 3Zend_Http_ExceptionO
 3Zend_Http_CookieJarO	 -Zend_Http_CookieO -Zend_Http_ClientO AZend_Http_Client_ExceptionO" GZend_Http_Client_Adapter_TestO$ KZend_Http_Client_Adapter_SocketO# IZend_Http_Client_Adapter_ProxyO' QZend_Http_Client_Adapter_ExceptionO !Zend_GdataO 1Zend_Gdata_YouTubeO"  GZend_Gdata_YouTube_VideoQueryO! EZend_Gdata_YouTube_VideoFeedO"~ GZend_Gdata_YouTube_VideoEntryO(} SZend_Gdata_YouTube_UserProfileEntryO(| SZend_Gdata_YouTube_SubscriptionFeedO){ UZend_Gdata_YouTube_SubscriptionEntryO)z UZend_Gdata_YouTube_PlaylistVideoFeedO*y WZend_Gdata_YouTube_PlaylistVideoEntryO(x SZend_Gdata_YouTube_PlaylistListFeedO)w UZend_Gdata_YouTube_PlaylistListEntryO"v GZend_Gdata_YouTube_MediaEntryO*u WZend_Gdata_YouTube_Extension_UsernameO't QZend_Gdata_YouTube_Extension_TokenO(s SZend_Gdata_YouTube_Extension_StatusO,r [Zend_Gdata_YouTube_Extension_StatisticsO'q QZend_Gdata_YouTube_Extension_StateO(p SZend_Gdata_YouTube_Extension_SchoolO-o ]Zend_Gdata_YouTube_Extension_ReleaseDateO.n _Zend_Gdata_YouTube_Extension_RelationshipO&m OZend_Gdata_YouTube_Extension_RacyO*l WZend_Gdata_YouTube_Extension_PositionO,k [Zend_Gdata_YouTube_Extension_OccupationO)j UZend_Gdata_YouTube_Extension_NoEmbedO'i QZend_Gdata_YouTube_Extension_MusicO(h SZend_Gdata_YouTube_Extension_MoviesO,g [Zend_Gdata_YouTube_Extension_MediaGroupO.f _Zend_Gdata_YouTube_Extension_MediaContentO*e WZend_Gdata_YouTube_Extension_LocationO&d OZend_Gdata_YouTube_Extension_LinkO*c WZend_Gdata_YouTube_Extension_HometownO)b UZend_Gdata_YouTube_Extension_HobbiesO(a SZend_Gdata_YouTube_Extension_GenderO*` WZend_Gdata_YouTube_Extension_DurationO-_ ]Zend_Gdata_YouTube_Extension_DescriptionO)^ UZend_Gdata_YouTube_Extension_ControlO)] UZend_Gdata_YouTube_Extension_CompanyO'\ QZend_Gdata_YouTube_Extension_BooksO%[ MZend_Gdata_YouTube_Extension_AgeO#Z IZend_Gdata_YouTube_ContactFeedO$Y KZend_Gdata_YouTube_ContactEntryO#X IZend_Gdata_YouTube_CommentFeedO$W KZend_Gdata_YouTube_CommentEntryOV ;Zend_Gdata_SpreadsheetsO*U WZend_Gdata_Spreadsheets_WorksheetFeedO+T YZend_Gdata_Spreadsheets_WorksheetEntryO   z sU*	~[:!nO.s\8{P0



y
Z
8
					j	E	$	`<eD)
vX= xS.iM3
]?sI&oT=                                  + 9Zend_Pdf_Element_ArrayO* )Zend_Pdf_ColorO) 1Zend_Pdf_Color_RgbO( 3Zend_Pdf_Color_HtmlO' =Zend_Pdf_Color_GrayScaleO& 3Zend_Pdf_Color_CmykO% 'Zend_Pdf_CmapO$ AZend_Pdf_Cmap_TrimmedTableO!# EZend_Pdf_Cmap_SegmentToDeltaO" AZend_Pdf_Cmap_ByteEncodingO&! OZend_Pdf_Cmap_ByteEncoding_StaticO  #Zend_OpenIdO 5Zend_OpenId_ProviderO ?Zend_OpenId_Provider_UserO& OZend_OpenId_Provider_User_SessionO! EZend_OpenId_Provider_StorageO& OZend_OpenId_Provider_Storage_FileO 7Zend_OpenId_ExtensionO AZend_OpenId_Extension_SregO 7Zend_OpenId_ExceptionO 5Zend_OpenId_ConsumerO! EZend_OpenId_Consumer_StorageO& OZend_OpenId_Consumer_Storage_FileO Zend_MimeO )Zend_Mime_PartO /Zend_Mime_MessageO 3Zend_Mime_ExceptionO -Zend_Mime_DecodeO #Zend_MemoryO /Zend_Memory_ValueO 3Zend_Memory_ManagerO 7Zend_Memory_ExceptionO 7Zend_Memory_ContainerO"
 GZend_Memory_Container_MovableO!	 EZend_Memory_Container_LockedO! EZend_Memory_AccessControllerO 3Zend_Measure_WeightO 3Zend_Measure_VolumeO% MZend_Measure_Viscosity_KinematicO# IZend_Measure_Viscosity_DynamicO 3Zend_Measure_TorqueO =Zend_Measure_TemperatureO 1Zend_Measure_SpeedO  7Zend_Measure_PressureO 1Zend_Measure_PowerO~ 3Zend_Measure_NumberO} 9Zend_Measure_LightnessO| 3Zend_Measure_LengthO{ ?Zend_Measure_IlluminationOz 9Zend_Measure_FrequencyOy 1Zend_Measure_ForceOx =Zend_Measure_Flow_VolumeOw 9Zend_Measure_Flow_MoleOv 9Zend_Measure_Flow_MassOu 9Zend_Measure_ExceptionOt 3Zend_Measure_EnergyOs 5Zend_Measure_DensityOr 5Zend_Measure_CurrentO q CZend_Measure_Cooking_WeightO p CZend_Measure_Cooking_VolumeOo =Zend_Measure_CapacitanceOn 3Zend_Measure_BinaryOm /Zend_Measure_AreaOl 1Zend_Measure_AngleOk ?Zend_Measure_AccelerationOj 7Zend_Measure_AbstractOi Zend_MailOh =Zend_Mail_Transport_SmtpO!g EZend_Mail_Transport_SendmailO"f GZend_Mail_Transport_ExceptionO!e EZend_Mail_Transport_AbstractOd /Zend_Mail_StorageO'c QZend_Mail_Storage_Writable_MaildirOb 9Zend_Mail_Storage_Pop3Oa 9Zend_Mail_Storage_MboxO` ?Zend_Mail_Storage_MaildirO_ 9Zend_Mail_Storage_ImapO^ =Zend_Mail_Storage_FolderO"] GZend_Mail_Storage_Folder_MboxO%\ MZend_Mail_Storage_Folder_MaildirO [ CZend_Mail_Storage_ExceptionOZ AZend_Mail_Storage_AbstractOY ;Zend_Mail_Protocol_SmtpO'X QZend_Mail_Protocol_Smtp_Auth_PlainO'W QZend_Mail_Protocol_Smtp_Auth_LoginO)V UZend_Mail_Protocol_Smtp_Auth_Crammd5OU ;Zend_Mail_Protocol_Pop3OT ;Zend_Mail_Protocol_ImapO!S EZend_Mail_Protocol_ExceptionO R CZend_Mail_Protocol_AbstractOQ )Zend_Mail_PartOP /Zend_Mail_MessageOO 3Zend_Mail_ExceptionON Zend_LogOM 9Zend_Log_Writer_StreamOL 5Zend_Log_Writer_NullOK 5Zend_Log_Writer_MockOJ 1Zend_Log_Writer_DbOI =Zend_Log_Writer_AbstractOH 9Zend_Log_Formatter_XmlOG ?Zend_Log_Formatter_SimpleOF =Zend_Log_Filter_SuppressOE =Zend_Log_Filter_PriorityOD ;Zend_Log_Filter_MessageOC 1Zend_Log_ExceptionOB #Zend_LocaleOA -Zend_Locale_MathO@ =Zend_Locale_Math_PhpMathO? AZend_Locale_Math_ExceptionO> 1Zend_Locale_FormatO= 7Zend_Locale_ExceptionO< -Zend_Locale_DataO!; EZend_Locale_Data_TranslationO: #Zend_LoaderO9 =Zend_Loader_PluginLoaderO'8 QZend_Loader_PluginLoader_ExceptionO7 7Zend_Loader_ExceptionO6 Zend_LdapO5 3Zend_Ldap_ExceptionO4 #Zend_LayoutO3 7Zend_Layout_ExceptionO)2 UZend_Layout_Controller_Plugin_LayoutO   ]  ^7Y9 bA_?{eF.



f
0
			O	Vh-b=iO1rO/VJT'                                                            & OZend_Search_Lucene_Analysis_TokenO) UZend_Search_Lucene_Analysis_AnalyzerO0 cZend_Search_Lucene_Analysis_Analyzer_CommonO8 sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumOI Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitiveO5 mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8OF Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitiveO8 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumOI  Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitiveO5 mZend_Search_Lucene_Analysis_Analyzer_Common_TextOF~ Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiveO} 7Zend_Search_ExceptionO| -Zend_Rest_ServerO{ AZend_Rest_Server_ExceptionOz 3Zend_Rest_ExceptionOy -Zend_Rest_ClientOx ;Zend_Rest_Client_ResultOw AZend_Rest_Client_ExceptionOv 'Zend_RegistryOu Zend_PdfO!t EZend_Pdf_UpdateInfoContainerOs -Zend_Pdf_TrailerOr ;Zend_Pdf_Trailer_KeeperOq AZend_Pdf_Trailer_GeneratorOp )Zend_Pdf_StyleOo 7Zend_Pdf_StringParserOn /Zend_Pdf_ResourceO#m IZend_Pdf_Resource_ImageFactoryOl ;Zend_Pdf_Resource_ImageO!k EZend_Pdf_Resource_Image_TiffO j CZend_Pdf_Resource_Image_PngO!i EZend_Pdf_Resource_Image_JpegOh 9Zend_Pdf_Resource_FontO!g EZend_Pdf_Resource_Font_Type0O"f GZend_Pdf_Resource_Font_SimpleO+e YZend_Pdf_Resource_Font_Simple_StandardO8d sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsO6c oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanO7b qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicO;a yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicO5` mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldO2_ gZend_Pdf_Resource_Font_Simple_Standard_SymbolO<^ {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueOA] Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliqueO9\ uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldO5[ mZend_Pdf_Resource_Font_Simple_Standard_HelveticaO:Z wZend_Pdf_Resource_Font_Simple_Standard_CourierObliqueO>Y Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliqueO7X qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldO3W iZend_Pdf_Resource_Font_Simple_Standard_CourierO)V UZend_Pdf_Resource_Font_Simple_ParsedO2U gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypeO*T WZend_Pdf_Resource_Font_FontDescriptorO%S MZend_Pdf_Resource_Font_ExtractedO#R IZend_Pdf_Resource_Font_CidFontO,Q [Zend_Pdf_Resource_Font_CidFont_TrueTypeOP /Zend_Pdf_PhpArrayOO +Zend_Pdf_ParserON 9Zend_Pdf_Parser_StreamOM 'Zend_Pdf_PageOL )Zend_Pdf_ImageOK 'Zend_Pdf_FontO J CZend_Pdf_Filter_CompressionO$I KZend_Pdf_Filter_Compression_LzwO&H OZend_Pdf_Filter_Compression_FlateOG =Zend_Pdf_Filter_AsciiHexOF ;Zend_Pdf_Filter_Ascii85O"E GZend_Pdf_FileParserDataSourceO)D UZend_Pdf_FileParserDataSource_StringO'C QZend_Pdf_FileParserDataSource_FileOB 3Zend_Pdf_FileParserOA ?Zend_Pdf_FileParser_ImageO"@ GZend_Pdf_FileParser_Image_PngO? =Zend_Pdf_FileParser_FontO&> OZend_Pdf_FileParser_Font_OpenTypeO/= aZend_Pdf_FileParser_Font_OpenType_TrueTypeO< 1Zend_Pdf_ExceptionO; ;Zend_Pdf_ElementFactoryO": GZend_Pdf_ElementFactory_ProxyO9 -Zend_Pdf_ElementO8 ;Zend_Pdf_Element_StringO#7 IZend_Pdf_Element_String_BinaryO6 ;Zend_Pdf_Element_StreamO5 AZend_Pdf_Element_ReferenceO%4 MZend_Pdf_Element_Reference_TableO'3 QZend_Pdf_Element_Reference_ContextO2 ;Zend_Pdf_Element_ObjectO#1 IZend_Pdf_Element_Object_StreamO0 =Zend_Pdf_Element_NumericO/ 7Zend_Pdf_Element_NullO. 7Zend_Pdf_Element_NameO - CZend_Pdf_Element_DictionaryO, =Zend_Pdf_Element_BooleanO   Y  MqP1HpJ I



U
&				r	>	~Q#U(e7vG{J"[<`?[?                       a CZend_Service_Delicious_PostO%` MZend_Service_Delicious_ExceptionO _ CZend_Service_AudioscrobblerO^ 3Zend_Service_AmazonO'] QZend_Service_Amazon_SimilarProductO"\ GZend_Service_Amazon_ResultSetO[ ?Zend_Service_Amazon_QueryO!Z EZend_Service_Amazon_OfferSetOY ?Zend_Service_Amazon_OfferO&X OZend_Service_Amazon_ListmaniaListOW =Zend_Service_Amazon_ItemOV ?Zend_Service_Amazon_ImageO(U SZend_Service_Amazon_EditorialReviewO'T QZend_Service_Amazon_CustomerReviewO$S KZend_Service_Amazon_AccessoriesOR 5Zend_Service_AkismetOQ 7Zend_Service_AbstractOP 9Zend_Server_ReflectionO'O QZend_Server_Reflection_ReturnValueO%N MZend_Server_Reflection_PrototypeO%M MZend_Server_Reflection_ParameterO L CZend_Server_Reflection_NodeO"K GZend_Server_Reflection_MethodO$J KZend_Server_Reflection_FunctionO-I ]Zend_Server_Reflection_Function_AbstractO%H MZend_Server_Reflection_ExceptionO!G EZend_Server_Reflection_ClassOF 7Zend_Server_ExceptionOE 5Zend_Server_AbstractOD 1Zend_Search_LuceneO$C KZend_Search_Lucene_Storage_FileO+B YZend_Search_Lucene_Storage_File_MemoryO/A aZend_Search_Lucene_Storage_File_FilesystemO)@ UZend_Search_Lucene_Storage_DirectoryO4? kZend_Search_Lucene_Storage_Directory_FilesystemO%> MZend_Search_Lucene_Search_WeightO*= WZend_Search_Lucene_Search_Weight_TermO,< [Zend_Search_Lucene_Search_Weight_PhraseO/; aZend_Search_Lucene_Search_Weight_MultiTermO+: YZend_Search_Lucene_Search_Weight_EmptyO-9 ]Zend_Search_Lucene_Search_Weight_BooleanO)8 UZend_Search_Lucene_Search_SimilarityO17 eZend_Search_Lucene_Search_Similarity_DefaultO)6 UZend_Search_Lucene_Search_QueryTokenO35 iZend_Search_Lucene_Search_QueryParserExceptionO14 eZend_Search_Lucene_Search_QueryParserContextO*3 WZend_Search_Lucene_Search_QueryParserO)2 UZend_Search_Lucene_Search_QueryLexerO'1 QZend_Search_Lucene_Search_QueryHitO)0 UZend_Search_Lucene_Search_QueryEntryO./ _Zend_Search_Lucene_Search_QueryEntry_TermO2. gZend_Search_Lucene_Search_QueryEntry_SubqueryO0- cZend_Search_Lucene_Search_QueryEntry_PhraseO$, KZend_Search_Lucene_Search_QueryO-+ ]Zend_Search_Lucene_Search_Query_WildcardO)* UZend_Search_Lucene_Search_Query_TermO*) WZend_Search_Lucene_Search_Query_RangeO+( YZend_Search_Lucene_Search_Query_PhraseO.' _Zend_Search_Lucene_Search_Query_MultiTermO2& gZend_Search_Lucene_Search_Query_InsignificantO*% WZend_Search_Lucene_Search_Query_FuzzyO*$ WZend_Search_Lucene_Search_Query_EmptyO,# [Zend_Search_Lucene_Search_Query_BooleanO:" wZend_Search_Lucene_Search_BooleanExpressionRecognizerO! =Zend_Search_Lucene_ProxyO%  MZend_Search_Lucene_PriorityQueueO# IZend_Search_Lucene_LockManagerO$ KZend_Search_Lucene_Index_WriterO& OZend_Search_Lucene_Index_TermInfoO" GZend_Search_Lucene_Index_TermO+ YZend_Search_Lucene_Index_SegmentWriterO8 sZend_Search_Lucene_Index_SegmentWriter_StreamWriterO: wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterO+ YZend_Search_Lucene_Index_SegmentMergerO6 oZend_Search_Lucene_Index_SegmentInfoPriorityQueueO) UZend_Search_Lucene_Index_SegmentInfoO' QZend_Search_Lucene_Index_FieldInfoO. _Zend_Search_Lucene_Index_DictionaryLoaderO! EZend_Search_Lucene_FSMActionO 9Zend_Search_Lucene_FSMO =Zend_Search_Lucene_FieldO! EZend_Search_Lucene_ExceptionO  CZend_Search_Lucene_DocumentO% MZend_Search_Lucene_Document_HtmlO, [Zend_Search_Lucene_Analysis_TokenFilterO6 oZend_Search_Lucene_Analysis_TokenFilter_StopWordsO7 qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsO:
 wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8O6	 oZend_Search_Lucene_Analysis_TokenFilter_LowerCaseO   h  pN+g@"wX6uK!W!




R
"				c	5	]0jI"vL&_8iJ"lV1Z5}aE!          I 7Zend_Validate_BarcodeOH AZend_Validate_Barcode_UpcAO G CZend_Validate_Barcode_Ean13OF 3Zend_Validate_AlphaOE 3Zend_Validate_AlnumOD 9Zend_Validate_AbstractOC Zend_UriOB 'Zend_Uri_HttpOA 1Zend_Uri_ExceptionO@ )Zend_TranslateO? =Zend_Translate_ExceptionO> 9Zend_Translate_AdapterO!= EZend_Translate_Adapter_XmlTmO!< EZend_Translate_Adapter_XliffO; AZend_Translate_Adapter_TmxO: AZend_Translate_Adapter_TbxO9 ?Zend_Translate_Adapter_QtO#8 IZend_Translate_Adapter_GettextO7 AZend_Translate_Adapter_CsvO!6 EZend_Translate_Adapter_ArrayO5 'Zend_TimeSyncO4 1Zend_TimeSync_SntpO3 9Zend_TimeSync_ProtocolO2 /Zend_TimeSync_NtpO1 ;Zend_TimeSync_ExceptionO0 %Zend_SessionO)/ UZend_Session_Validator_HttpUserAgentO$. KZend_Session_Validator_AbstractO- 9Zend_Session_NamespaceO, 9Zend_Session_ExceptionO+ 7Zend_Session_AbstractO* 1Zend_Service_YahooO$) KZend_Service_Yahoo_WebResultSetO!( EZend_Service_Yahoo_WebResultO&' OZend_Service_Yahoo_VideoResultSetO#& IZend_Service_Yahoo_VideoResultO!% EZend_Service_Yahoo_ResultSetO$ ?Zend_Service_Yahoo_ResultO)# UZend_Service_Yahoo_PageDataResultSetO&" OZend_Service_Yahoo_PageDataResultO%! MZend_Service_Yahoo_NewsResultSetO"  GZend_Service_Yahoo_NewsResultO& OZend_Service_Yahoo_LocalResultSetO# IZend_Service_Yahoo_LocalResultO+ YZend_Service_Yahoo_InlinkDataResultSetO( SZend_Service_Yahoo_InlinkDataResultO& OZend_Service_Yahoo_ImageResultSetO# IZend_Service_Yahoo_ImageResultO =Zend_Service_Yahoo_ImageO ;Zend_Service_TechnoratiO# IZend_Service_Technorati_WeblogO" GZend_Service_Technorati_UtilsO* WZend_Service_Technorati_TagsResultSetO' QZend_Service_Technorati_TagsResultO) UZend_Service_Technorati_TagResultSetO& OZend_Service_Technorati_TagResultO, [Zend_Service_Technorati_SearchResultSetO) UZend_Service_Technorati_SearchResultO& OZend_Service_Technorati_ResultSetO# IZend_Service_Technorati_ResultO* WZend_Service_Technorati_KeyInfoResultO* WZend_Service_Technorati_GetInfoResultO& OZend_Service_Technorati_ExceptionO1
 eZend_Service_Technorati_DailyCountsResultSetO.	 _Zend_Service_Technorati_DailyCountsResultO, [Zend_Service_Technorati_CosmosResultSetO) UZend_Service_Technorati_CosmosResultO+ YZend_Service_Technorati_BlogInfoResultO# IZend_Service_Technorati_AuthorO ;Zend_Service_StrikeIronO( SZend_Service_StrikeIron_ZipCodeInfoO2 gZend_Service_StrikeIron_USAddressVerificationO- ]Zend_Service_StrikeIron_SalesUseTaxBasicO&  OZend_Service_StrikeIron_ExceptionO& OZend_Service_StrikeIron_DecoratorO!~ EZend_Service_StrikeIron_BaseO} ;Zend_Service_SlideShareO&| OZend_Service_SlideShare_SlideShowO&{ OZend_Service_SlideShare_ExceptionOz 1Zend_Service_SimpyO$y KZend_Service_Simpy_WatchlistSetO*x WZend_Service_Simpy_WatchlistFilterSetO'w QZend_Service_Simpy_WatchlistFilterO!v EZend_Service_Simpy_WatchlistOu ?Zend_Service_Simpy_TagSetOt 9Zend_Service_Simpy_TagOs AZend_Service_Simpy_NoteSetOr ;Zend_Service_Simpy_NoteOq AZend_Service_Simpy_LinkSetO!p EZend_Service_Simpy_LinkQueryOo ;Zend_Service_Simpy_LinkOn 7Zend_Service_NirvanixO#m IZend_Service_Nirvanix_ResponseO)l UZend_Service_Nirvanix_Namespace_ImfsO)k UZend_Service_Nirvanix_Namespace_BaseO$j KZend_Service_Nirvanix_ExceptionOi 3Zend_Service_FlickrO"h GZend_Service_Flickr_ResultSetOg AZend_Service_Flickr_ResultOf ?Zend_Service_Flickr_ImageOe 9Zend_Service_ExceptionOd 9Zend_Service_DeliciousO&c OZend_Service_Delicious_SimplePostO$b KZend_Service_Delicious_PostListO   q  kK/kI'lS4tT/_;




b
<
					f	D	"pR2P\9
c4w[9zY7gF%xgE$                        : CZend_Auth_Adapter_ExceptionP9 =Zend_Auth_Adapter_DigestP8 ?Zend_Auth_Adapter_DbTableP7 Zend_AclP6 'Zend_Acl_RoleP5 9Zend_Acl_Role_RegistryP%4 MZend_Acl_Role_Registry_ExceptionP3 /Zend_Acl_ResourceP2 1Zend_Acl_ExceptionP1 /Zend_XmlRpc_ValueO0 =Zend_XmlRpc_Value_StructO/ =Zend_XmlRpc_Value_StringO. =Zend_XmlRpc_Value_ScalarO- ?Zend_XmlRpc_Value_IntegerO , CZend_XmlRpc_Value_ExceptionO+ =Zend_XmlRpc_Value_DoubleO* AZend_XmlRpc_Value_DateTimeO!) EZend_XmlRpc_Value_CollectionO( ?Zend_XmlRpc_Value_BooleanO' =Zend_XmlRpc_Value_Base64O& ;Zend_XmlRpc_Value_ArrayO% 1Zend_XmlRpc_ServerO$ =Zend_XmlRpc_Server_FaultO!# EZend_XmlRpc_Server_ExceptionO" =Zend_XmlRpc_Server_CacheO! 5Zend_XmlRpc_ResponseO  ?Zend_XmlRpc_Response_HttpO 3Zend_XmlRpc_RequestO ?Zend_XmlRpc_Request_StdinO =Zend_XmlRpc_Request_HttpO /Zend_XmlRpc_FaultO 7Zend_XmlRpc_ExceptionO 1Zend_XmlRpc_ClientO# IZend_XmlRpc_Client_ServerProxyO+ YZend_XmlRpc_Client_ServerIntrospectionO+ YZend_XmlRpc_Client_IntrospectExceptionO% MZend_XmlRpc_Client_HttpExceptionO& OZend_XmlRpc_Client_FaultExceptionO! EZend_XmlRpc_Client_ExceptionO Zend_ViewO 5Zend_View_Helper_UrlO AZend_View_Helper_TranslateO! EZend_View_Helper_PlaceholderO* WZend_View_Helper_Placeholder_RegistryO4 kZend_View_Helper_Placeholder_Registry_ExceptionO+ YZend_View_Helper_Placeholder_ContainerO6 oZend_View_Helper_Placeholder_Container_StandaloneO5 mZend_View_Helper_Placeholder_Container_ExceptionO4
 kZend_View_Helper_Placeholder_Container_AbstractO!	 EZend_View_Helper_PartialLoopO =Zend_View_Helper_PartialO' QZend_View_Helper_Partial_ExceptionO ;Zend_View_Helper_LayoutO 7Zend_View_Helper_JsonO" GZend_View_Helper_InlineScriptO ?Zend_View_Helper_HtmlListO AZend_View_Helper_HeadTitleO AZend_View_Helper_HeadStyleO   CZend_View_Helper_HeadScriptO ?Zend_View_Helper_HeadMetaO~ ?Zend_View_Helper_HeadLinkO"} GZend_View_Helper_FormTextareaO| ?Zend_View_Helper_FormTextO { CZend_View_Helper_FormSubmitO z CZend_View_Helper_FormSelectOy AZend_View_Helper_FormResetOx AZend_View_Helper_FormRadioO"w GZend_View_Helper_FormPasswordOv ?Zend_View_Helper_FormNoteO'u QZend_View_Helper_FormMultiCheckboxOt AZend_View_Helper_FormLabelOs AZend_View_Helper_FormImageO r CZend_View_Helper_FormHiddenOq ?Zend_View_Helper_FormFileO p CZend_View_Helper_FormErrorsO!o EZend_View_Helper_FormElementO"n GZend_View_Helper_FormCheckboxO m CZend_View_Helper_FormButtonOl 7Zend_View_Helper_FormOk ?Zend_View_Helper_FieldsetOj =Zend_View_Helper_DoctypeO!i EZend_View_Helper_DeclareVarsOh ;Zend_View_Helper_ActionOg 3Zend_View_ExceptionOf 1Zend_View_AbstractOe %Zend_VersionOd 'Zend_ValidateOc AZend_Validate_StringLengthOb 3Zend_Validate_RegexOa 9Zend_Validate_NotEmptyO` 9Zend_Validate_LessThanO_ -Zend_Validate_IpO^ /Zend_Validate_IntO] 7Zend_Validate_InArrayO\ ;Zend_Validate_IdenticalO[ 9Zend_Validate_HostnameOZ ?Zend_Validate_Hostname_SeOY ?Zend_Validate_Hostname_NoOX ?Zend_Validate_Hostname_LiOW ?Zend_Validate_Hostname_HuOV ?Zend_Validate_Hostname_FiOU ?Zend_Validate_Hostname_DeOT ?Zend_Validate_Hostname_ChOS ?Zend_Validate_Hostname_AtOR /Zend_Validate_HexOQ ?Zend_Validate_GreaterThanOP 3Zend_Validate_FloatOO ;Zend_Validate_ExceptionON AZend_Validate_EmailAddressOM 5Zend_Validate_DigitsOL 1Zend_Validate_DateOK 3Zend_Validate_CcnumOJ 7Zend_Validate_BetweenO   k  _@|jK+iL*	oW?+_-


z
F
				X	,	fH zP&`:k?_9kF"zX5sK-	 '% QZend_Db_Statement_Mysqli_ExceptionP $ CZend_Db_Statement_ExceptionP# 7Zend_Db_Statement_Db2P$" KZend_Db_Statement_Db2_ExceptionP! )Zend_Db_SelectP  =Zend_Db_Select_ExceptionP -Zend_Db_ProfilerP 9Zend_Db_Profiler_QueryP AZend_Db_Profiler_ExceptionP %Zend_Db_ExprP /Zend_Db_ExceptionP AZend_Db_Adapter_Pdo_SqliteP ?Zend_Db_Adapter_Pdo_PgsqlP ;Zend_Db_Adapter_Pdo_OciP ?Zend_Db_Adapter_Pdo_MysqlP ?Zend_Db_Adapter_Pdo_MssqlP ;Zend_Db_Adapter_Pdo_IbmP  CZend_Db_Adapter_Pdo_Ibm_IdsP  CZend_Db_Adapter_Pdo_Ibm_Db2P! EZend_Db_Adapter_Pdo_AbstractP 9Zend_Db_Adapter_OracleP% MZend_Db_Adapter_Oracle_ExceptionP 9Zend_Db_Adapter_MysqliP% MZend_Db_Adapter_Mysqli_ExceptionP ?Zend_Db_Adapter_ExceptionP 3Zend_Db_Adapter_Db2P" GZend_Db_Adapter_Db2_ExceptionP
 =Zend_Db_Adapter_AbstractP	 Zend_DateP 3Zend_Date_ExceptionP 5Zend_Date_DateObjectP -Zend_Date_CitiesP 'Zend_CurrencyP ;Zend_Currency_ExceptionP! EZend_Controller_Router_RouteP( SZend_Controller_Router_Route_StaticP' QZend_Controller_Router_Route_RegexP(  SZend_Controller_Router_Route_ModuleP# IZend_Controller_Router_RewriteP%~ MZend_Controller_Router_ExceptionP$} KZend_Controller_Router_AbstractP"| GZend_Controller_Response_HttpP'{ QZend_Controller_Response_ExceptionP!z EZend_Controller_Response_CliP&y OZend_Controller_Response_AbstractP#x IZend_Controller_Request_SimpleP!w EZend_Controller_Request_HttpP&v OZend_Controller_Request_ExceptionP&u OZend_Controller_Request_Apache404P%t MZend_Controller_Request_AbstractP(s SZend_Controller_Plugin_ErrorHandlerP"r GZend_Controller_Plugin_BrokerP'q QZend_Controller_Plugin_ActionStackP$p KZend_Controller_Plugin_AbstractPo 7Zend_Controller_FrontPn ?Zend_Controller_ExceptionP(m SZend_Controller_Dispatcher_StandardP)l UZend_Controller_Dispatcher_ExceptionP(k SZend_Controller_Dispatcher_AbstractPj 9Zend_Controller_ActionP(i SZend_Controller_Action_HelperBrokerP/h aZend_Controller_Action_Helper_ViewRendererP&g OZend_Controller_Action_Helper_UrlP-f ]Zend_Controller_Action_Helper_RedirectorP'e QZend_Controller_Action_Helper_JsonP1d eZend_Controller_Action_Helper_FlashMessengerP0c cZend_Controller_Action_Helper_ContextSwitchP<b {Zend_Controller_Action_Helper_AutoCompleteScriptaculousP3a iZend_Controller_Action_Helper_AutoCompleteDojoP8` sZend_Controller_Action_Helper_AutoComplete_AbstractP._ _Zend_Controller_Action_Helper_AjaxContextP.^ _Zend_Controller_Action_Helper_ActionStackP+] YZend_Controller_Action_Helper_AbstractP%\ MZend_Controller_Action_ExceptionP[ 3Zend_Console_GetoptP"Z GZend_Console_Getopt_ExceptionPY #Zend_ConfigPX +Zend_Config_XmlPW +Zend_Config_IniPV 7Zend_Config_ExceptionPU !Zend_CachePT =Zend_Cache_Frontend_PagePS AZend_Cache_Frontend_OutputP!R EZend_Cache_Frontend_FunctionPQ =Zend_Cache_Frontend_FilePP ?Zend_Cache_Frontend_ClassPO 5Zend_Cache_ExceptionPN +Zend_Cache_CorePM 1Zend_Cache_BackendP$L KZend_Cache_Backend_ZendPlatformPK ;Zend_Cache_Backend_TestPJ ?Zend_Cache_Backend_SqliteP!I EZend_Cache_Backend_MemcachedPH ;Zend_Cache_Backend_FilePG 9Zend_Cache_Backend_ApcPF Zend_AuthPE ?Zend_Auth_Storage_SessionP$D KZend_Auth_Storage_NonPersistentP C CZend_Auth_Storage_ExceptionPB -Zend_Auth_ResultPA 3Zend_Auth_ExceptionP@ =Zend_Auth_Adapter_OpenIdP? 9Zend_Auth_Adapter_LdapP> AZend_Auth_Adapter_InfoCardP= 9Zend_Auth_Adapter_HttpP)< UZend_Auth_Adapter_Http_Resolver_FileP.; _Zend_Auth_Adapter_Http_Resolver_ExceptionP   r  qS9sL/iI%jN2
hG)




v
W
9
				a	7	W-xP-tR0	[<jJ*	lP6$^A xO(                    % MZend_Gdata_App_Extension_ElementP# IZend_Gdata_App_Extension_DraftP% MZend_Gdata_App_Extension_ControlP) UZend_Gdata_App_Extension_ContributorP% MZend_Gdata_App_Extension_ContentP& OZend_Gdata_App_Extension_CategoryP$ KZend_Gdata_App_Extension_AuthorP =Zend_Gdata_App_ExceptionP 5Zend_Gdata_App_EntryP, [Zend_Gdata_App_CaptchaRequiredExceptionP# IZend_Gdata_App_BaseMediaSourceP 3Zend_Gdata_App_BaseP* WZend_Gdata_App_BadMethodCallExceptionP!
 EZend_Gdata_App_AuthExceptionP	 Zend_FormP /Zend_Form_SubFormP 3Zend_Form_ExceptionP /Zend_Form_ElementP ;Zend_Form_Element_XhtmlP AZend_Form_Element_TextareaP 9Zend_Form_Element_TextP =Zend_Form_Element_SubmitP =Zend_Form_Element_SelectP  ;Zend_Form_Element_ResetP ;Zend_Form_Element_RadioP~ AZend_Form_Element_PasswordP"} GZend_Form_Element_MultiselectP$| KZend_Form_Element_MultiCheckboxP{ ;Zend_Form_Element_MultiPz ;Zend_Form_Element_ImagePy =Zend_Form_Element_HiddenPx 9Zend_Form_Element_HashP w CZend_Form_Element_ExceptionPv AZend_Form_Element_CheckboxPu =Zend_Form_Element_ButtonPt 9Zend_Form_DisplayGroupP#s IZend_Form_Decorator_ViewScriptP#r IZend_Form_Decorator_ViewHelperPq ?Zend_Form_Decorator_LabelPp ?Zend_Form_Decorator_ImageP o CZend_Form_Decorator_HtmlTagP%n MZend_Form_Decorator_FormElementsPm =Zend_Form_Decorator_FormP!l EZend_Form_Decorator_FieldsetP"k GZend_Form_Decorator_ExceptionPj AZend_Form_Decorator_ErrorsP$i KZend_Form_Decorator_DtDdWrapperP$h KZend_Form_Decorator_DescriptionP!g EZend_Form_Decorator_CallbackP!f EZend_Form_Decorator_AbstractPe #Zend_FilterP+d YZend_Filter_Word_UnderscoreToSeparatorP&c OZend_Filter_Word_UnderscoreToDashP+b YZend_Filter_Word_UnderscoreToCamelCaseP*a WZend_Filter_Word_SeparatorToSeparatorP%` MZend_Filter_Word_SeparatorToDashP*_ WZend_Filter_Word_SeparatorToCamelCaseP(^ SZend_Filter_Word_Separator_AbstractP&] OZend_Filter_Word_DashToUnderscoreP%\ MZend_Filter_Word_DashToSeparatorP%[ MZend_Filter_Word_DashToCamelCaseP+Z YZend_Filter_Word_CamelCaseToUnderscoreP*Y WZend_Filter_Word_CamelCaseToSeparatorP%X MZend_Filter_Word_CamelCaseToDashPW 7Zend_Filter_StripTagsPV 9Zend_Filter_StringTrimPU ?Zend_Filter_StringToUpperPT ?Zend_Filter_StringToLowerPS 5Zend_Filter_RealPathPR ;Zend_Filter_PregReplacePQ +Zend_Filter_IntPP /Zend_Filter_InputPO 7Zend_Filter_InflectorPN =Zend_Filter_HtmlEntitiesPM 7Zend_Filter_ExceptionPL +Zend_Filter_DirPK 1Zend_Filter_DigitsPJ 5Zend_Filter_BaseNamePI /Zend_Filter_AlphaPH /Zend_Filter_AlnumPG Zend_FeedPF 'Zend_Feed_RssPE 3Zend_Feed_ExceptionPD 3Zend_Feed_Entry_RssPC 5Zend_Feed_Entry_AtomPB =Zend_Feed_Entry_AbstractPA /Zend_Feed_ElementP@ /Zend_Feed_BuilderP? =Zend_Feed_Builder_HeaderP$> KZend_Feed_Builder_Header_ItunesP = CZend_Feed_Builder_ExceptionP< ;Zend_Feed_Builder_EntryP; )Zend_Feed_AtomP: 1Zend_Feed_AbstractP9 )Zend_ExceptionP8 !Zend_DebugP7 Zend_DbP6 'Zend_Db_TableP5 5Zend_Db_Table_SelectP#4 IZend_Db_Table_Select_ExceptionP3 5Zend_Db_Table_RowsetP#2 IZend_Db_Table_Rowset_ExceptionP"1 GZend_Db_Table_Rowset_AbstractP0 /Zend_Db_Table_RowP / CZend_Db_Table_Row_ExceptionP. AZend_Db_Table_Row_AbstractP- ;Zend_Db_Table_ExceptionP, 9Zend_Db_Table_AbstractP+ /Zend_Db_StatementP* 7Zend_Db_Statement_PdoP) ?Zend_Db_Statement_Pdo_IbmP( =Zend_Db_Statement_OracleP'' QZend_Db_Statement_Oracle_ExceptionP& =Zend_Db_Statement_MysqliP   b  d>wO%a@$]'iC



f
7
			k	E	 	t\C%yQ!^A)]/	oD wO-
e=_6                       (y SZend_Gdata_Gapps_Extension_NicknameP$x KZend_Gdata_Gapps_Extension_NameP%w MZend_Gdata_Gapps_Extension_LoginP)v UZend_Gdata_Gapps_Extension_EmailListPu 9Zend_Gdata_Gapps_ErrorP-t ]Zend_Gdata_Gapps_EmailListRecipientQueryP,s [Zend_Gdata_Gapps_EmailListRecipientFeedP-r ]Zend_Gdata_Gapps_EmailListRecipientEntryP$q KZend_Gdata_Gapps_EmailListQueryP#p IZend_Gdata_Gapps_EmailListFeedP$o KZend_Gdata_Gapps_EmailListEntryPn +Zend_Gdata_FeedPm 5Zend_Gdata_ExtensionPl =Zend_Gdata_Extension_WhoPk AZend_Gdata_Extension_WherePj ?Zend_Gdata_Extension_WhenP$i KZend_Gdata_Extension_VisibilityP&h OZend_Gdata_Extension_TransparencyP"g GZend_Gdata_Extension_ReminderP-f ]Zend_Gdata_Extension_RecurrenceExceptionP$e KZend_Gdata_Extension_RecurrenceP d CZend_Gdata_Extension_RatingP'c QZend_Gdata_Extension_OriginalEventP0b cZend_Gdata_Extension_OpenSearchTotalResultsP.a _Zend_Gdata_Extension_OpenSearchStartIndexP0` cZend_Gdata_Extension_OpenSearchItemsPerPageP"_ GZend_Gdata_Extension_FeedLinkP*^ WZend_Gdata_Extension_ExtendedPropertyP%] MZend_Gdata_Extension_EventStatusP#\ IZend_Gdata_Extension_EntryLinkP"[ GZend_Gdata_Extension_CommentsP&Z OZend_Gdata_Extension_AttendeeTypeP(Y SZend_Gdata_Extension_AttendeeStatusPX +Zend_Gdata_ExifPW 5Zend_Gdata_Exif_FeedP#V IZend_Gdata_Exif_Extension_TimeP#U IZend_Gdata_Exif_Extension_TagsP$T KZend_Gdata_Exif_Extension_ModelP#S IZend_Gdata_Exif_Extension_MakeP"R GZend_Gdata_Exif_Extension_IsoP,Q [Zend_Gdata_Exif_Extension_ImageUniqueIdP$P KZend_Gdata_Exif_Extension_FStopP*O WZend_Gdata_Exif_Extension_FocalLengthP$N KZend_Gdata_Exif_Extension_FlashP'M QZend_Gdata_Exif_Extension_ExposureP'L QZend_Gdata_Exif_Extension_DistancePK 7Zend_Gdata_Exif_EntryPJ -Zend_Gdata_EntryPI +Zend_Gdata_DocsPH 7Zend_Gdata_Docs_QueryP%G MZend_Gdata_Docs_DocumentListFeedP&F OZend_Gdata_Docs_DocumentListEntryPE 9Zend_Gdata_ClientLoginPD 3Zend_Gdata_CalendarP!C EZend_Gdata_Calendar_ListFeedP"B GZend_Gdata_Calendar_ListEntryP-A ]Zend_Gdata_Calendar_Extension_WebContentP+@ YZend_Gdata_Calendar_Extension_TimezoneP9? uZend_Gdata_Calendar_Extension_SendEventNotificationsP+> YZend_Gdata_Calendar_Extension_SelectedP+= YZend_Gdata_Calendar_Extension_QuickAddP'< QZend_Gdata_Calendar_Extension_LinkP); UZend_Gdata_Calendar_Extension_HiddenP(: SZend_Gdata_Calendar_Extension_ColorP.9 _Zend_Gdata_Calendar_Extension_AccessLevelP#8 IZend_Gdata_Calendar_EventQueryP"7 GZend_Gdata_Calendar_EventFeedP#6 IZend_Gdata_Calendar_EventEntryP5 1Zend_Gdata_AuthSubP4 )Zend_Gdata_AppP3 3Zend_Gdata_App_UtilP#2 IZend_Gdata_App_MediaFileSourceP1 ?Zend_Gdata_App_MediaEntryP20 gZend_Gdata_App_LoggingHttpClientAdapterSocketP/ AZend_Gdata_App_IOExceptionP,. [Zend_Gdata_App_InvalidArgumentExceptionP!- EZend_Gdata_App_HttpExceptionP$, KZend_Gdata_App_FeedSourceParentP#+ IZend_Gdata_App_FeedEntryParentP* 3Zend_Gdata_App_FeedP) =Zend_Gdata_App_ExtensionP!( EZend_Gdata_App_Extension_UriP%' MZend_Gdata_App_Extension_UpdatedP#& IZend_Gdata_App_Extension_TitleP"% GZend_Gdata_App_Extension_TextP%$ MZend_Gdata_App_Extension_SummaryP&# OZend_Gdata_App_Extension_SubtitleP$" KZend_Gdata_App_Extension_SourceP$! KZend_Gdata_App_Extension_RightsP'  QZend_Gdata_App_Extension_PublishedP$ KZend_Gdata_App_Extension_PersonP" GZend_Gdata_App_Extension_NameP" GZend_Gdata_App_Extension_LogoP" GZend_Gdata_App_Extension_LinkP  CZend_Gdata_App_Extension_IdP" GZend_Gdata_App_Extension_IconP' QZend_Gdata_App_Extension_GeneratorP# IZend_Gdata_App_Extension_EmailP   _  cDzI+~Y3~bK(	vG



X
)				h	J	1	qEX-zM^/}T(eBzQ'f3	                           %X MZend_Gdata_Spreadsheets_ListFeedP&W OZend_Gdata_Spreadsheets_ListEntryP/V aZend_Gdata_Spreadsheets_Extension_RowCountP-U ]Zend_Gdata_Spreadsheets_Extension_CustomP/T aZend_Gdata_Spreadsheets_Extension_ColCountP+S YZend_Gdata_Spreadsheets_Extension_CellP*R WZend_Gdata_Spreadsheets_DocumentQueryP&Q OZend_Gdata_Spreadsheets_CellQueryP%P MZend_Gdata_Spreadsheets_CellFeedP&O OZend_Gdata_Spreadsheets_CellEntryPN -Zend_Gdata_QueryPM /Zend_Gdata_PhotosP L CZend_Gdata_Photos_UserQueryPK AZend_Gdata_Photos_UserFeedP J CZend_Gdata_Photos_UserEntryPI AZend_Gdata_Photos_TagEntryP!H EZend_Gdata_Photos_PhotoQueryP G CZend_Gdata_Photos_PhotoFeedP!F EZend_Gdata_Photos_PhotoEntryP&E OZend_Gdata_Photos_Extension_WidthP'D QZend_Gdata_Photos_Extension_WeightP(C SZend_Gdata_Photos_Extension_VersionP%B MZend_Gdata_Photos_Extension_UserP*A WZend_Gdata_Photos_Extension_TimestampP*@ WZend_Gdata_Photos_Extension_ThumbnailP%? MZend_Gdata_Photos_Extension_SizeP)> UZend_Gdata_Photos_Extension_RotationP+= YZend_Gdata_Photos_Extension_QuotaLimitP-< ]Zend_Gdata_Photos_Extension_QuotaCurrentP); UZend_Gdata_Photos_Extension_PositionP(: SZend_Gdata_Photos_Extension_PhotoIdP39 iZend_Gdata_Photos_Extension_NumPhotosRemainingP*8 WZend_Gdata_Photos_Extension_NumPhotosP)7 UZend_Gdata_Photos_Extension_NicknameP%6 MZend_Gdata_Photos_Extension_NameP25 gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumP)4 UZend_Gdata_Photos_Extension_LocationP#3 IZend_Gdata_Photos_Extension_IdP'2 QZend_Gdata_Photos_Extension_HeightP21 gZend_Gdata_Photos_Extension_CommentingEnabledP-0 ]Zend_Gdata_Photos_Extension_CommentCountP'/ QZend_Gdata_Photos_Extension_ClientP). UZend_Gdata_Photos_Extension_ChecksumP*- WZend_Gdata_Photos_Extension_BytesUsedP(, SZend_Gdata_Photos_Extension_AlbumIdP'+ QZend_Gdata_Photos_Extension_AccessP#* IZend_Gdata_Photos_CommentEntryP!) EZend_Gdata_Photos_AlbumQueryP ( CZend_Gdata_Photos_AlbumFeedP!' EZend_Gdata_Photos_AlbumEntryP& -Zend_Gdata_MediaP% 7Zend_Gdata_Media_FeedP*$ WZend_Gdata_Media_Extension_MediaTitleP.# _Zend_Gdata_Media_Extension_MediaThumbnailP)" UZend_Gdata_Media_Extension_MediaTextP0! cZend_Gdata_Media_Extension_MediaRestrictionP+  YZend_Gdata_Media_Extension_MediaRatingP+ YZend_Gdata_Media_Extension_MediaPlayerP- ]Zend_Gdata_Media_Extension_MediaKeywordsP) UZend_Gdata_Media_Extension_MediaHashP* WZend_Gdata_Media_Extension_MediaGroupP0 cZend_Gdata_Media_Extension_MediaDescriptionP+ YZend_Gdata_Media_Extension_MediaCreditP. _Zend_Gdata_Media_Extension_MediaCopyrightP, [Zend_Gdata_Media_Extension_MediaContentP- ]Zend_Gdata_Media_Extension_MediaCategoryP 9Zend_Gdata_Media_EntryP AZend_Gdata_Kind_EventEntryP )Zend_Gdata_GeoP 3Zend_Gdata_Geo_FeedP$ KZend_Gdata_Geo_Extension_GmlPosP& OZend_Gdata_Geo_Extension_GmlPointP) UZend_Gdata_Geo_Extension_GeoRssWhereP 5Zend_Gdata_Geo_EntryP -Zend_Gdata_GbaseP" GZend_Gdata_Gbase_SnippetQueryP! EZend_Gdata_Gbase_SnippetFeedP" GZend_Gdata_Gbase_SnippetEntryP
 9Zend_Gdata_Gbase_QueryP	 AZend_Gdata_Gbase_ItemQueryP ?Zend_Gdata_Gbase_ItemFeedP AZend_Gdata_Gbase_ItemEntryP 7Zend_Gdata_Gbase_FeedP- ]Zend_Gdata_Gbase_Extension_BaseAttributeP 9Zend_Gdata_Gbase_EntryP -Zend_Gdata_GappsP AZend_Gdata_Gapps_UserQueryP ?Zend_Gdata_Gapps_UserFeedP  AZend_Gdata_Gapps_UserEntryP& OZend_Gdata_Gapps_ServiceExceptionP~ 9Zend_Gdata_Gapps_QueryP#} IZend_Gdata_Gapps_NicknameQueryP"| GZend_Gdata_Gapps_NicknameFeedP#{ IZend_Gdata_Gapps_NicknameEntryP%z MZend_Gdata_Gapps_Extension_QuotaP   ]  uFZ1{M!n<X* 


q
F
				k	>	^2hAfK%w?jJ!{S,g:^;
                          5 /Zend_Json_DecoderP4 'Zend_InfoCardP-3 ]Zend_InfoCard_Xml_SecurityTokenReferenceP2 AZend_InfoCard_Xml_SecurityP)1 UZend_InfoCard_Xml_Security_TransformP40 kZend_InfoCard_Xml_Security_Transform_XmlExcC14NP3/ iZend_InfoCard_Xml_Security_Transform_ExceptionP<. {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignatureP)- UZend_InfoCard_Xml_Security_ExceptionP, ?Zend_InfoCard_Xml_KeyInfoP&+ OZend_InfoCard_Xml_KeyInfo_XmlDSigP&* OZend_InfoCard_Xml_KeyInfo_DefaultP') QZend_InfoCard_Xml_KeyInfo_AbstractP ( CZend_InfoCard_Xml_ExceptionP#' IZend_InfoCard_Xml_EncryptedKeyP$& KZend_InfoCard_Xml_EncryptedDataP+% YZend_InfoCard_Xml_EncryptedData_XmlEncP-$ ]Zend_InfoCard_Xml_EncryptedData_AbstractP# ?Zend_InfoCard_Xml_ElementP " CZend_InfoCard_Xml_AssertionP%! MZend_InfoCard_Xml_Assertion_SamlP  ;Zend_InfoCard_ExceptionP% MZend_InfoCard_Exception_AbstractP 5Zend_InfoCard_ClaimsP 5Zend_InfoCard_CipherP5 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcP5 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcP4 kZend_InfoCard_Cipher_Symmetric_Adapter_AbstractP) UZend_InfoCard_Cipher_Pki_Adapter_RsaP. _Zend_InfoCard_Cipher_Pki_Adapter_AbstractP# IZend_InfoCard_Cipher_ExceptionP$ KZend_InfoCard_Adapter_ExceptionP" GZend_InfoCard_Adapter_DefaultP 1Zend_Http_ResponseP 3Zend_Http_ExceptionP 3Zend_Http_CookieJarP -Zend_Http_CookieP -Zend_Http_ClientP AZend_Http_Client_ExceptionP" GZend_Http_Client_Adapter_TestP$ KZend_Http_Client_Adapter_SocketP# IZend_Http_Client_Adapter_ProxyP' QZend_Http_Client_Adapter_ExceptionP
 !Zend_GdataP	 1Zend_Gdata_YouTubeP" GZend_Gdata_YouTube_VideoQueryP! EZend_Gdata_YouTube_VideoFeedP" GZend_Gdata_YouTube_VideoEntryP( SZend_Gdata_YouTube_UserProfileEntryP( SZend_Gdata_YouTube_SubscriptionFeedP) UZend_Gdata_YouTube_SubscriptionEntryP) UZend_Gdata_YouTube_PlaylistVideoFeedP* WZend_Gdata_YouTube_PlaylistVideoEntryP(  SZend_Gdata_YouTube_PlaylistListFeedP) UZend_Gdata_YouTube_PlaylistListEntryP"~ GZend_Gdata_YouTube_MediaEntryP*} WZend_Gdata_YouTube_Extension_UsernameP'| QZend_Gdata_YouTube_Extension_TokenP({ SZend_Gdata_YouTube_Extension_StatusP,z [Zend_Gdata_YouTube_Extension_StatisticsP'y QZend_Gdata_YouTube_Extension_StateP(x SZend_Gdata_YouTube_Extension_SchoolP-w ]Zend_Gdata_YouTube_Extension_ReleaseDateP.v _Zend_Gdata_YouTube_Extension_RelationshipP&u OZend_Gdata_YouTube_Extension_RacyP*t WZend_Gdata_YouTube_Extension_PositionP,s [Zend_Gdata_YouTube_Extension_OccupationP)r UZend_Gdata_YouTube_Extension_NoEmbedP'q QZend_Gdata_YouTube_Extension_MusicP(p SZend_Gdata_YouTube_Extension_MoviesP,o [Zend_Gdata_YouTube_Extension_MediaGroupP.n _Zend_Gdata_YouTube_Extension_MediaContentP*m WZend_Gdata_YouTube_Extension_LocationP&l OZend_Gdata_YouTube_Extension_LinkP*k WZend_Gdata_YouTube_Extension_HometownP)j UZend_Gdata_YouTube_Extension_HobbiesP(i SZend_Gdata_YouTube_Extension_GenderP*h WZend_Gdata_YouTube_Extension_DurationP-g ]Zend_Gdata_YouTube_Extension_DescriptionP)f UZend_Gdata_YouTube_Extension_ControlP)e UZend_Gdata_YouTube_Extension_CompanyP'd QZend_Gdata_YouTube_Extension_BooksP%c MZend_Gdata_YouTube_Extension_AgeP#b IZend_Gdata_YouTube_ContactFeedP$a KZend_Gdata_YouTube_ContactEntryP#` IZend_Gdata_YouTube_CommentFeedP$_ KZend_Gdata_YouTube_CommentEntryP^ ;Zend_Gdata_SpreadsheetsP*] WZend_Gdata_Spreadsheets_WorksheetFeedP+\ YZend_Gdata_Spreadsheets_WorksheetEntryP,[ [Zend_Gdata_Spreadsheets_SpreadsheetFeedP-Z ]Zend_Gdata_Spreadsheets_SpreadsheetEntryP&Y OZend_Gdata_Spreadsheets_ListQueryP   z W9%	yT;vV5z]>-wW*




m
D
					~	S	9	xV;!bF'lP1]4nP4d?"tJ(bL0                   / =Zend_Pdf_Color_GrayScaleP. 3Zend_Pdf_Color_CmykP- 'Zend_Pdf_CmapP, AZend_Pdf_Cmap_TrimmedTableP!+ EZend_Pdf_Cmap_SegmentToDeltaP* AZend_Pdf_Cmap_ByteEncodingP&) OZend_Pdf_Cmap_ByteEncoding_StaticP( #Zend_OpenIdP' 5Zend_OpenId_ProviderP& ?Zend_OpenId_Provider_UserP&% OZend_OpenId_Provider_User_SessionP!$ EZend_OpenId_Provider_StorageP&# OZend_OpenId_Provider_Storage_FileP" 7Zend_OpenId_ExtensionP! AZend_OpenId_Extension_SregP  7Zend_OpenId_ExceptionP 5Zend_OpenId_ConsumerP! EZend_OpenId_Consumer_StorageP& OZend_OpenId_Consumer_Storage_FileP Zend_MimeP )Zend_Mime_PartP /Zend_Mime_MessageP 3Zend_Mime_ExceptionP -Zend_Mime_DecodeP #Zend_MemoryP /Zend_Memory_ValueP 3Zend_Memory_ManagerP 7Zend_Memory_ExceptionP 7Zend_Memory_ContainerP" GZend_Memory_Container_MovableP! EZend_Memory_Container_LockedP! EZend_Memory_AccessControllerP 3Zend_Measure_WeightP 3Zend_Measure_VolumeP% MZend_Measure_Viscosity_KinematicP# IZend_Measure_Viscosity_DynamicP 3Zend_Measure_TorqueP
 =Zend_Measure_TemperatureP	 1Zend_Measure_SpeedP 7Zend_Measure_PressureP 1Zend_Measure_PowerP 3Zend_Measure_NumberP 9Zend_Measure_LightnessP 3Zend_Measure_LengthP ?Zend_Measure_IlluminationP 9Zend_Measure_FrequencyP 1Zend_Measure_ForceP  =Zend_Measure_Flow_VolumeP 9Zend_Measure_Flow_MoleP~ 9Zend_Measure_Flow_MassP} 9Zend_Measure_ExceptionP| 3Zend_Measure_EnergyP{ 5Zend_Measure_DensityPz 5Zend_Measure_CurrentP y CZend_Measure_Cooking_WeightP x CZend_Measure_Cooking_VolumePw =Zend_Measure_CapacitancePv 3Zend_Measure_BinaryPu /Zend_Measure_AreaPt 1Zend_Measure_AnglePs ?Zend_Measure_AccelerationPr 7Zend_Measure_AbstractPq Zend_MailPp =Zend_Mail_Transport_SmtpP!o EZend_Mail_Transport_SendmailP"n GZend_Mail_Transport_ExceptionP!m EZend_Mail_Transport_AbstractPl /Zend_Mail_StorageP'k QZend_Mail_Storage_Writable_MaildirPj 9Zend_Mail_Storage_Pop3Pi 9Zend_Mail_Storage_MboxPh ?Zend_Mail_Storage_MaildirPg 9Zend_Mail_Storage_ImapPf =Zend_Mail_Storage_FolderP"e GZend_Mail_Storage_Folder_MboxP%d MZend_Mail_Storage_Folder_MaildirP c CZend_Mail_Storage_ExceptionPb AZend_Mail_Storage_AbstractPa ;Zend_Mail_Protocol_SmtpP'` QZend_Mail_Protocol_Smtp_Auth_PlainP'_ QZend_Mail_Protocol_Smtp_Auth_LoginP)^ UZend_Mail_Protocol_Smtp_Auth_Crammd5P] ;Zend_Mail_Protocol_Pop3P\ ;Zend_Mail_Protocol_ImapP![ EZend_Mail_Protocol_ExceptionP Z CZend_Mail_Protocol_AbstractPY )Zend_Mail_PartPX /Zend_Mail_MessagePW 3Zend_Mail_ExceptionPV Zend_LogPU 9Zend_Log_Writer_StreamPT 5Zend_Log_Writer_NullPS 5Zend_Log_Writer_MockPR 1Zend_Log_Writer_DbPQ =Zend_Log_Writer_AbstractPP 9Zend_Log_Formatter_XmlPO ?Zend_Log_Formatter_SimplePN =Zend_Log_Filter_SuppressPM =Zend_Log_Filter_PriorityPL ;Zend_Log_Filter_MessagePK 1Zend_Log_ExceptionPJ #Zend_LocalePI -Zend_Locale_MathPH =Zend_Locale_Math_PhpMathPG AZend_Locale_Math_ExceptionPF 1Zend_Locale_FormatPE 7Zend_Locale_ExceptionPD -Zend_Locale_DataP!C EZend_Locale_Data_TranslationPB #Zend_LoaderPA =Zend_Loader_PluginLoaderP'@ QZend_Loader_PluginLoader_ExceptionP? 7Zend_Loader_ExceptionP> Zend_LdapP= 3Zend_Ldap_ExceptionP< #Zend_LayoutP; 7Zend_Layout_ExceptionP): UZend_Layout_Controller_Plugin_LayoutP09 cZend_Layout_Controller_Action_Helper_LayoutP8 Zend_JsonP7 3Zend_Json_ExceptionP6 /Zend_Json_EncoderP   _  rN0V3mRpE_;%




w
P
'				_	$k.s:JhC#jQ,jQ3c'W                                  0 cZend_Search_Lucene_Analysis_Analyzer_CommonP8 sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumPI Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitiveP5 mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8PF
 Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitiveP8	 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumPI Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitiveP5 mZend_Search_Lucene_Analysis_Analyzer_Common_TextPF Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiveP 7Zend_Search_ExceptionP -Zend_Rest_ServerP AZend_Rest_Server_ExceptionP 3Zend_Rest_ExceptionP -Zend_Rest_ClientP  ;Zend_Rest_Client_ResultP AZend_Rest_Client_ExceptionP~ 'Zend_RegistryP} Zend_PdfP!| EZend_Pdf_UpdateInfoContainerP{ -Zend_Pdf_TrailerPz ;Zend_Pdf_Trailer_KeeperPy AZend_Pdf_Trailer_GeneratorPx )Zend_Pdf_StylePw 7Zend_Pdf_StringParserPv /Zend_Pdf_ResourceP#u IZend_Pdf_Resource_ImageFactoryPt ;Zend_Pdf_Resource_ImageP!s EZend_Pdf_Resource_Image_TiffP r CZend_Pdf_Resource_Image_PngP!q EZend_Pdf_Resource_Image_JpegPp 9Zend_Pdf_Resource_FontP!o EZend_Pdf_Resource_Font_Type0P"n GZend_Pdf_Resource_Font_SimpleP+m YZend_Pdf_Resource_Font_Simple_StandardP8l sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsP6k oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanP7j qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicP;i yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicP5h mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldP2g gZend_Pdf_Resource_Font_Simple_Standard_SymbolP<f {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliquePAe Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliqueP9d uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldP5c mZend_Pdf_Resource_Font_Simple_Standard_HelveticaP:b wZend_Pdf_Resource_Font_Simple_Standard_CourierObliqueP>a Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliqueP7` qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldP3_ iZend_Pdf_Resource_Font_Simple_Standard_CourierP)^ UZend_Pdf_Resource_Font_Simple_ParsedP2] gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypeP*\ WZend_Pdf_Resource_Font_FontDescriptorP%[ MZend_Pdf_Resource_Font_ExtractedP#Z IZend_Pdf_Resource_Font_CidFontP,Y [Zend_Pdf_Resource_Font_CidFont_TrueTypePX /Zend_Pdf_PhpArrayPW +Zend_Pdf_ParserPV 9Zend_Pdf_Parser_StreamPU 'Zend_Pdf_PagePT )Zend_Pdf_ImagePS 'Zend_Pdf_FontP R CZend_Pdf_Filter_CompressionP$Q KZend_Pdf_Filter_Compression_LzwP&P OZend_Pdf_Filter_Compression_FlatePO =Zend_Pdf_Filter_AsciiHexPN ;Zend_Pdf_Filter_Ascii85P"M GZend_Pdf_FileParserDataSourceP)L UZend_Pdf_FileParserDataSource_StringP'K QZend_Pdf_FileParserDataSource_FilePJ 3Zend_Pdf_FileParserPI ?Zend_Pdf_FileParser_ImageP"H GZend_Pdf_FileParser_Image_PngPG =Zend_Pdf_FileParser_FontP&F OZend_Pdf_FileParser_Font_OpenTypeP/E aZend_Pdf_FileParser_Font_OpenType_TrueTypePD 1Zend_Pdf_ExceptionPC ;Zend_Pdf_ElementFactoryP"B GZend_Pdf_ElementFactory_ProxyPA -Zend_Pdf_ElementP@ ;Zend_Pdf_Element_StringP#? IZend_Pdf_Element_String_BinaryP> ;Zend_Pdf_Element_StreamP= AZend_Pdf_Element_ReferenceP%< MZend_Pdf_Element_Reference_TableP'; QZend_Pdf_Element_Reference_ContextP: ;Zend_Pdf_Element_ObjectP#9 IZend_Pdf_Element_Object_StreamP8 =Zend_Pdf_Element_NumericP7 7Zend_Pdf_Element_NullP6 7Zend_Pdf_Element_NameP 5 CZend_Pdf_Element_DictionaryP4 =Zend_Pdf_Element_BooleanP3 9Zend_Pdf_Element_ArrayP2 )Zend_Pdf_ColorP1 1Zend_Pdf_Color_RgbP0 3Zend_Pdf_Color_HtmlP   Y  o1c?X+HzQ0



f
0				t	C	R'`3q>RrM$X/W+	wU/             g CZend_Service_AudioscrobblerPf 3Zend_Service_AmazonP'e QZend_Service_Amazon_SimilarProductP"d GZend_Service_Amazon_ResultSetPc ?Zend_Service_Amazon_QueryP!b EZend_Service_Amazon_OfferSetPa ?Zend_Service_Amazon_OfferP&` OZend_Service_Amazon_ListmaniaListP_ =Zend_Service_Amazon_ItemP^ ?Zend_Service_Amazon_ImageP(] SZend_Service_Amazon_EditorialReviewP'\ QZend_Service_Amazon_CustomerReviewP$[ KZend_Service_Amazon_AccessoriesPZ 5Zend_Service_AkismetPY 7Zend_Service_AbstractPX 9Zend_Server_ReflectionP'W QZend_Server_Reflection_ReturnValueP%V MZend_Server_Reflection_PrototypeP%U MZend_Server_Reflection_ParameterP T CZend_Server_Reflection_NodeP"S GZend_Server_Reflection_MethodP$R KZend_Server_Reflection_FunctionP-Q ]Zend_Server_Reflection_Function_AbstractP%P MZend_Server_Reflection_ExceptionP!O EZend_Server_Reflection_ClassPN 7Zend_Server_ExceptionPM 5Zend_Server_AbstractPL 1Zend_Search_LuceneP$K KZend_Search_Lucene_Storage_FileP+J YZend_Search_Lucene_Storage_File_MemoryP/I aZend_Search_Lucene_Storage_File_FilesystemP)H UZend_Search_Lucene_Storage_DirectoryP4G kZend_Search_Lucene_Storage_Directory_FilesystemP%F MZend_Search_Lucene_Search_WeightP*E WZend_Search_Lucene_Search_Weight_TermP,D [Zend_Search_Lucene_Search_Weight_PhraseP/C aZend_Search_Lucene_Search_Weight_MultiTermP+B YZend_Search_Lucene_Search_Weight_EmptyP-A ]Zend_Search_Lucene_Search_Weight_BooleanP)@ UZend_Search_Lucene_Search_SimilarityP1? eZend_Search_Lucene_Search_Similarity_DefaultP)> UZend_Search_Lucene_Search_QueryTokenP3= iZend_Search_Lucene_Search_QueryParserExceptionP1< eZend_Search_Lucene_Search_QueryParserContextP*; WZend_Search_Lucene_Search_QueryParserP): UZend_Search_Lucene_Search_QueryLexerP'9 QZend_Search_Lucene_Search_QueryHitP)8 UZend_Search_Lucene_Search_QueryEntryP.7 _Zend_Search_Lucene_Search_QueryEntry_TermP26 gZend_Search_Lucene_Search_QueryEntry_SubqueryP05 cZend_Search_Lucene_Search_QueryEntry_PhraseP$4 KZend_Search_Lucene_Search_QueryP-3 ]Zend_Search_Lucene_Search_Query_WildcardP)2 UZend_Search_Lucene_Search_Query_TermP*1 WZend_Search_Lucene_Search_Query_RangeP+0 YZend_Search_Lucene_Search_Query_PhraseP./ _Zend_Search_Lucene_Search_Query_MultiTermP2. gZend_Search_Lucene_Search_Query_InsignificantP*- WZend_Search_Lucene_Search_Query_FuzzyP*, WZend_Search_Lucene_Search_Query_EmptyP,+ [Zend_Search_Lucene_Search_Query_BooleanP:* wZend_Search_Lucene_Search_BooleanExpressionRecognizerP) =Zend_Search_Lucene_ProxyP%( MZend_Search_Lucene_PriorityQueueP#' IZend_Search_Lucene_LockManagerP$& KZend_Search_Lucene_Index_WriterP&% OZend_Search_Lucene_Index_TermInfoP"$ GZend_Search_Lucene_Index_TermP+# YZend_Search_Lucene_Index_SegmentWriterP8" sZend_Search_Lucene_Index_SegmentWriter_StreamWriterP:! wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterP+  YZend_Search_Lucene_Index_SegmentMergerP6 oZend_Search_Lucene_Index_SegmentInfoPriorityQueueP) UZend_Search_Lucene_Index_SegmentInfoP' QZend_Search_Lucene_Index_FieldInfoP. _Zend_Search_Lucene_Index_DictionaryLoaderP! EZend_Search_Lucene_FSMActionP 9Zend_Search_Lucene_FSMP =Zend_Search_Lucene_FieldP! EZend_Search_Lucene_ExceptionP  CZend_Search_Lucene_DocumentP% MZend_Search_Lucene_Document_HtmlP, [Zend_Search_Lucene_Analysis_TokenFilterP6 oZend_Search_Lucene_Analysis_TokenFilter_StopWordsP7 qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsP: wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8P6 oZend_Search_Lucene_Analysis_TokenFilter_LowerCaseP& OZend_Search_Lucene_Analysis_TokenP) UZend_Search_Lucene_Analysis_AnalyzerP   g  aB#tGmM*kC(e;




a
2
			n	D	j:d=P)Y7tY;sY:	xU2v`O0                                   N 3Zend_Validate_AlphaPM 3Zend_Validate_AlnumPL 9Zend_Validate_AbstractPK Zend_UriPJ 'Zend_Uri_HttpPI 1Zend_Uri_ExceptionPH )Zend_TranslatePG =Zend_Translate_ExceptionPF 9Zend_Translate_AdapterP!E EZend_Translate_Adapter_XmlTmP!D EZend_Translate_Adapter_XliffPC AZend_Translate_Adapter_TmxPB AZend_Translate_Adapter_TbxPA ?Zend_Translate_Adapter_QtP#@ IZend_Translate_Adapter_GettextP? AZend_Translate_Adapter_CsvP!> EZend_Translate_Adapter_ArrayP= 'Zend_TimeSyncP< 1Zend_TimeSync_SntpP; 9Zend_TimeSync_ProtocolP: /Zend_TimeSync_NtpP9 ;Zend_TimeSync_ExceptionP8 %Zend_SessionP)7 UZend_Session_Validator_HttpUserAgentP$6 KZend_Session_Validator_AbstractP5 9Zend_Session_NamespaceP4 9Zend_Session_ExceptionP3 7Zend_Session_AbstractP2 1Zend_Service_YahooP$1 KZend_Service_Yahoo_WebResultSetP!0 EZend_Service_Yahoo_WebResultP&/ OZend_Service_Yahoo_VideoResultSetP#. IZend_Service_Yahoo_VideoResultP!- EZend_Service_Yahoo_ResultSetP, ?Zend_Service_Yahoo_ResultP)+ UZend_Service_Yahoo_PageDataResultSetP&* OZend_Service_Yahoo_PageDataResultP%) MZend_Service_Yahoo_NewsResultSetP"( GZend_Service_Yahoo_NewsResultP&' OZend_Service_Yahoo_LocalResultSetP#& IZend_Service_Yahoo_LocalResultP+% YZend_Service_Yahoo_InlinkDataResultSetP($ SZend_Service_Yahoo_InlinkDataResultP&# OZend_Service_Yahoo_ImageResultSetP#" IZend_Service_Yahoo_ImageResultP! =Zend_Service_Yahoo_ImageP  ;Zend_Service_TechnoratiP# IZend_Service_Technorati_WeblogP" GZend_Service_Technorati_UtilsP* WZend_Service_Technorati_TagsResultSetP' QZend_Service_Technorati_TagsResultP) UZend_Service_Technorati_TagResultSetP& OZend_Service_Technorati_TagResultP, [Zend_Service_Technorati_SearchResultSetP) UZend_Service_Technorati_SearchResultP& OZend_Service_Technorati_ResultSetP# IZend_Service_Technorati_ResultP* WZend_Service_Technorati_KeyInfoResultP* WZend_Service_Technorati_GetInfoResultP& OZend_Service_Technorati_ExceptionP1 eZend_Service_Technorati_DailyCountsResultSetP. _Zend_Service_Technorati_DailyCountsResultP, [Zend_Service_Technorati_CosmosResultSetP) UZend_Service_Technorati_CosmosResultP+ YZend_Service_Technorati_BlogInfoResultP# IZend_Service_Technorati_AuthorP ;Zend_Service_StrikeIronP( SZend_Service_StrikeIron_ZipCodeInfoP2
 gZend_Service_StrikeIron_USAddressVerificationP-	 ]Zend_Service_StrikeIron_SalesUseTaxBasicP& OZend_Service_StrikeIron_ExceptionP& OZend_Service_StrikeIron_DecoratorP! EZend_Service_StrikeIron_BaseP ;Zend_Service_SlideShareP& OZend_Service_SlideShare_SlideShowP& OZend_Service_SlideShare_ExceptionP 1Zend_Service_SimpyP$ KZend_Service_Simpy_WatchlistSetP*  WZend_Service_Simpy_WatchlistFilterSetP' QZend_Service_Simpy_WatchlistFilterP!~ EZend_Service_Simpy_WatchlistP} ?Zend_Service_Simpy_TagSetP| 9Zend_Service_Simpy_TagP{ AZend_Service_Simpy_NoteSetPz ;Zend_Service_Simpy_NotePy AZend_Service_Simpy_LinkSetP!x EZend_Service_Simpy_LinkQueryPw ;Zend_Service_Simpy_LinkPv 7Zend_Service_NirvanixP#u IZend_Service_Nirvanix_ResponseP)t UZend_Service_Nirvanix_Namespace_ImfsP)s UZend_Service_Nirvanix_Namespace_BaseP$r KZend_Service_Nirvanix_ExceptionPq 3Zend_Service_FlickrP"p GZend_Service_Flickr_ResultSetPo AZend_Service_Flickr_ResultPn ?Zend_Service_Flickr_ImagePm 9Zend_Service_ExceptionPl 9Zend_Service_DeliciousP&k OZend_Service_Delicious_SimplePostP$j KZend_Service_Delicious_PostListP i CZend_Service_Delicious_PostP%h MZend_Service_Delicious_ExceptionP   q }aF)lJ(~_?!q[F+iE




m
J
					m	I	'	vS1\$JV-oU4qP5iE#qH)                        ? Zend_AclQ> 'Zend_Acl_RoleQ= 9Zend_Acl_Role_RegistryQ%< MZend_Acl_Role_Registry_ExceptionQ; /Zend_Acl_ResourceQ: 1Zend_Acl_ExceptionQ9 /Zend_XmlRpc_ValueP8 =Zend_XmlRpc_Value_StructP7 =Zend_XmlRpc_Value_StringP6 =Zend_XmlRpc_Value_ScalarP5 ?Zend_XmlRpc_Value_IntegerP 4 CZend_XmlRpc_Value_ExceptionP3 =Zend_XmlRpc_Value_DoubleP2 AZend_XmlRpc_Value_DateTimeP!1 EZend_XmlRpc_Value_CollectionP0 ?Zend_XmlRpc_Value_BooleanP/ =Zend_XmlRpc_Value_Base64P. ;Zend_XmlRpc_Value_ArrayP- 1Zend_XmlRpc_ServerP, =Zend_XmlRpc_Server_FaultP!+ EZend_XmlRpc_Server_ExceptionP* =Zend_XmlRpc_Server_CacheP) 5Zend_XmlRpc_ResponseP( ?Zend_XmlRpc_Response_HttpP' 3Zend_XmlRpc_RequestP& ?Zend_XmlRpc_Request_StdinP% =Zend_XmlRpc_Request_HttpP$ /Zend_XmlRpc_FaultP# 7Zend_XmlRpc_ExceptionP" 1Zend_XmlRpc_ClientP#! IZend_XmlRpc_Client_ServerProxyP+  YZend_XmlRpc_Client_ServerIntrospectionP+ YZend_XmlRpc_Client_IntrospectExceptionP% MZend_XmlRpc_Client_HttpExceptionP& OZend_XmlRpc_Client_FaultExceptionP! EZend_XmlRpc_Client_ExceptionP Zend_ViewP 5Zend_View_Helper_UrlP AZend_View_Helper_TranslateP! EZend_View_Helper_PlaceholderP* WZend_View_Helper_Placeholder_RegistryP4 kZend_View_Helper_Placeholder_Registry_ExceptionP+ YZend_View_Helper_Placeholder_ContainerP6 oZend_View_Helper_Placeholder_Container_StandaloneP5 mZend_View_Helper_Placeholder_Container_ExceptionP4 kZend_View_Helper_Placeholder_Container_AbstractP! EZend_View_Helper_PartialLoopP =Zend_View_Helper_PartialP' QZend_View_Helper_Partial_ExceptionP ;Zend_View_Helper_LayoutP 7Zend_View_Helper_JsonP" GZend_View_Helper_InlineScriptP ?Zend_View_Helper_HtmlListP
 AZend_View_Helper_HeadTitleP	 AZend_View_Helper_HeadStyleP  CZend_View_Helper_HeadScriptP ?Zend_View_Helper_HeadMetaP ?Zend_View_Helper_HeadLinkP" GZend_View_Helper_FormTextareaP ?Zend_View_Helper_FormTextP  CZend_View_Helper_FormSubmitP  CZend_View_Helper_FormSelectP AZend_View_Helper_FormResetP  AZend_View_Helper_FormRadioP" GZend_View_Helper_FormPasswordP~ ?Zend_View_Helper_FormNoteP'} QZend_View_Helper_FormMultiCheckboxP| AZend_View_Helper_FormLabelP{ AZend_View_Helper_FormImageP z CZend_View_Helper_FormHiddenPy ?Zend_View_Helper_FormFileP x CZend_View_Helper_FormErrorsP!w EZend_View_Helper_FormElementP"v GZend_View_Helper_FormCheckboxP u CZend_View_Helper_FormButtonPt 7Zend_View_Helper_FormPs ?Zend_View_Helper_FieldsetPr =Zend_View_Helper_DoctypeP!q EZend_View_Helper_DeclareVarsPp ;Zend_View_Helper_ActionPo 3Zend_View_ExceptionPn 1Zend_View_AbstractPm %Zend_VersionPl 'Zend_ValidatePk AZend_Validate_StringLengthPj 3Zend_Validate_RegexPi 9Zend_Validate_NotEmptyPh 9Zend_Validate_LessThanPg -Zend_Validate_IpPf /Zend_Validate_IntPe 7Zend_Validate_InArrayPd ;Zend_Validate_IdenticalPc 9Zend_Validate_HostnamePb ?Zend_Validate_Hostname_SePa ?Zend_Validate_Hostname_NoP` ?Zend_Validate_Hostname_LiP_ ?Zend_Validate_Hostname_HuP^ ?Zend_Validate_Hostname_FiP] ?Zend_Validate_Hostname_DeP\ ?Zend_Validate_Hostname_ChP[ ?Zend_Validate_Hostname_AtPZ /Zend_Validate_HexPY ?Zend_Validate_GreaterThanPX 3Zend_Validate_FloatPW ;Zend_Validate_ExceptionPV AZend_Validate_EmailAddressPU 5Zend_Validate_DigitsPT 1Zend_Validate_DatePS 3Zend_Validate_CcnumPR 7Zend_Validate_BetweenPQ 7Zend_Validate_BarcodePP AZend_Validate_Barcode_UpcAP O CZend_Validate_Barcode_Ean13P   k  g:_7}]5}Z9&Y*



S
				N	$zM!h<sI$[/}dG+kL#wU3|]D#       $* KZend_Db_Statement_Db2_ExceptionQ) )Zend_Db_SelectQ( =Zend_Db_Select_ExceptionQ' -Zend_Db_ProfilerQ& 9Zend_Db_Profiler_QueryQ% AZend_Db_Profiler_ExceptionQ$ %Zend_Db_ExprQ# /Zend_Db_ExceptionQ" AZend_Db_Adapter_Pdo_SqliteQ! ?Zend_Db_Adapter_Pdo_PgsqlQ  ;Zend_Db_Adapter_Pdo_OciQ ?Zend_Db_Adapter_Pdo_MysqlQ ?Zend_Db_Adapter_Pdo_MssqlQ ;Zend_Db_Adapter_Pdo_IbmQ  CZend_Db_Adapter_Pdo_Ibm_IdsQ  CZend_Db_Adapter_Pdo_Ibm_Db2Q! EZend_Db_Adapter_Pdo_AbstractQ 9Zend_Db_Adapter_OracleQ% MZend_Db_Adapter_Oracle_ExceptionQ 9Zend_Db_Adapter_MysqliQ% MZend_Db_Adapter_Mysqli_ExceptionQ ?Zend_Db_Adapter_ExceptionQ 3Zend_Db_Adapter_Db2Q" GZend_Db_Adapter_Db2_ExceptionQ =Zend_Db_Adapter_AbstractQ Zend_DateQ 3Zend_Date_ExceptionQ 5Zend_Date_DateObjectQ -Zend_Date_CitiesQ 'Zend_CurrencyQ ;Zend_Currency_ExceptionQ! EZend_Controller_Router_RouteQ(
 SZend_Controller_Router_Route_StaticQ'	 QZend_Controller_Router_Route_RegexQ( SZend_Controller_Router_Route_ModuleQ# IZend_Controller_Router_RewriteQ% MZend_Controller_Router_ExceptionQ$ KZend_Controller_Router_AbstractQ" GZend_Controller_Response_HttpQ' QZend_Controller_Response_ExceptionQ! EZend_Controller_Response_CliQ& OZend_Controller_Response_AbstractQ#  IZend_Controller_Request_SimpleQ! EZend_Controller_Request_HttpQ&~ OZend_Controller_Request_ExceptionQ&} OZend_Controller_Request_Apache404Q%| MZend_Controller_Request_AbstractQ({ SZend_Controller_Plugin_ErrorHandlerQ"z GZend_Controller_Plugin_BrokerQ'y QZend_Controller_Plugin_ActionStackQ$x KZend_Controller_Plugin_AbstractQw 7Zend_Controller_FrontQv ?Zend_Controller_ExceptionQ(u SZend_Controller_Dispatcher_StandardQ)t UZend_Controller_Dispatcher_ExceptionQ(s SZend_Controller_Dispatcher_AbstractQr 9Zend_Controller_ActionQ(q SZend_Controller_Action_HelperBrokerQ/p aZend_Controller_Action_Helper_ViewRendererQ&o OZend_Controller_Action_Helper_UrlQ-n ]Zend_Controller_Action_Helper_RedirectorQ'm QZend_Controller_Action_Helper_JsonQ1l eZend_Controller_Action_Helper_FlashMessengerQ0k cZend_Controller_Action_Helper_ContextSwitchQ<j {Zend_Controller_Action_Helper_AutoCompleteScriptaculousQ3i iZend_Controller_Action_Helper_AutoCompleteDojoQ8h sZend_Controller_Action_Helper_AutoComplete_AbstractQ.g _Zend_Controller_Action_Helper_AjaxContextQ.f _Zend_Controller_Action_Helper_ActionStackQ+e YZend_Controller_Action_Helper_AbstractQ%d MZend_Controller_Action_ExceptionQc 3Zend_Console_GetoptQ"b GZend_Console_Getopt_ExceptionQa #Zend_ConfigQ` +Zend_Config_XmlQ_ +Zend_Config_IniQ^ 7Zend_Config_ExceptionQ] !Zend_CacheQ\ =Zend_Cache_Frontend_PageQ[ AZend_Cache_Frontend_OutputQ!Z EZend_Cache_Frontend_FunctionQY =Zend_Cache_Frontend_FileQX ?Zend_Cache_Frontend_ClassQW 5Zend_Cache_ExceptionQV +Zend_Cache_CoreQU 1Zend_Cache_BackendQ$T KZend_Cache_Backend_ZendPlatformQS ;Zend_Cache_Backend_TestQR ?Zend_Cache_Backend_SqliteQ!Q EZend_Cache_Backend_MemcachedQP ;Zend_Cache_Backend_FileQO 9Zend_Cache_Backend_ApcQN Zend_AuthQM ?Zend_Auth_Storage_SessionQ$L KZend_Auth_Storage_NonPersistentQ K CZend_Auth_Storage_ExceptionQJ -Zend_Auth_ResultQI 3Zend_Auth_ExceptionQH =Zend_Auth_Adapter_OpenIdQG 9Zend_Auth_Adapter_LdapQF AZend_Auth_Adapter_InfoCardQE 9Zend_Auth_Adapter_HttpQ)D UZend_Auth_Adapter_Http_Resolver_FileQ.C _Zend_Auth_Adapter_Http_Resolver_ExceptionQ B CZend_Auth_Adapter_ExceptionQA =Zend_Auth_Adapter_DigestQ@ ?Zend_Auth_Adapter_DbTableQ   r rG&jF,~hXE.oU;iL1





j
M
+
					u	F	pG}X3uT+uV5nF {\9dH!a8                               ) UZend_Gdata_App_Extension_ContributorQ% MZend_Gdata_App_Extension_ContentQ& OZend_Gdata_App_Extension_CategoryQ$ KZend_Gdata_App_Extension_AuthorQ =Zend_Gdata_App_ExceptionQ 5Zend_Gdata_App_EntryQ, [Zend_Gdata_App_CaptchaRequiredExceptionQ# IZend_Gdata_App_BaseMediaSourceQ 3Zend_Gdata_App_BaseQ* WZend_Gdata_App_BadMethodCallExceptionQ! EZend_Gdata_App_AuthExceptionQ Zend_FormQ /Zend_Form_SubFormQ 3Zend_Form_ExceptionQ /Zend_Form_ElementQ ;Zend_Form_Element_XhtmlQ AZend_Form_Element_TextareaQ 9Zend_Form_Element_TextQ
 =Zend_Form_Element_SubmitQ	 =Zend_Form_Element_SelectQ ;Zend_Form_Element_ResetQ ;Zend_Form_Element_RadioQ AZend_Form_Element_PasswordQ" GZend_Form_Element_MultiselectQ$ KZend_Form_Element_MultiCheckboxQ ;Zend_Form_Element_MultiQ ;Zend_Form_Element_ImageQ =Zend_Form_Element_HiddenQ  9Zend_Form_Element_HashQ  CZend_Form_Element_ExceptionQ~ AZend_Form_Element_CheckboxQ} =Zend_Form_Element_ButtonQ| 9Zend_Form_DisplayGroupQ#{ IZend_Form_Decorator_ViewScriptQ#z IZend_Form_Decorator_ViewHelperQy ?Zend_Form_Decorator_LabelQx ?Zend_Form_Decorator_ImageQ w CZend_Form_Decorator_HtmlTagQ%v MZend_Form_Decorator_FormElementsQu =Zend_Form_Decorator_FormQ!t EZend_Form_Decorator_FieldsetQ"s GZend_Form_Decorator_ExceptionQr AZend_Form_Decorator_ErrorsQ$q KZend_Form_Decorator_DtDdWrapperQ$p KZend_Form_Decorator_DescriptionQ!o EZend_Form_Decorator_CallbackQ!n EZend_Form_Decorator_AbstractQm #Zend_FilterQ+l YZend_Filter_Word_UnderscoreToSeparatorQ&k OZend_Filter_Word_UnderscoreToDashQ+j YZend_Filter_Word_UnderscoreToCamelCaseQ*i WZend_Filter_Word_SeparatorToSeparatorQ%h MZend_Filter_Word_SeparatorToDashQ*g WZend_Filter_Word_SeparatorToCamelCaseQ(f SZend_Filter_Word_Separator_AbstractQ&e OZend_Filter_Word_DashToUnderscoreQ%d MZend_Filter_Word_DashToSeparatorQ%c MZend_Filter_Word_DashToCamelCaseQ+b YZend_Filter_Word_CamelCaseToUnderscoreQ*a WZend_Filter_Word_CamelCaseToSeparatorQ%` MZend_Filter_Word_CamelCaseToDashQ_ 7Zend_Filter_StripTagsQ^ 9Zend_Filter_StringTrimQ] ?Zend_Filter_StringToUpperQ\ ?Zend_Filter_StringToLowerQ[ 5Zend_Filter_RealPathQZ ;Zend_Filter_PregReplaceQY +Zend_Filter_IntQX /Zend_Filter_InputQW 7Zend_Filter_InflectorQV =Zend_Filter_HtmlEntitiesQU 7Zend_Filter_ExceptionQT +Zend_Filter_DirQS 1Zend_Filter_DigitsQR 5Zend_Filter_BaseNameQQ /Zend_Filter_AlphaQP /Zend_Filter_AlnumQO Zend_FeedQN 'Zend_Feed_RssQM 3Zend_Feed_ExceptionQL 3Zend_Feed_Entry_RssQK 5Zend_Feed_Entry_AtomQJ =Zend_Feed_Entry_AbstractQI /Zend_Feed_ElementQH /Zend_Feed_BuilderQG =Zend_Feed_Builder_HeaderQ$F KZend_Feed_Builder_Header_ItunesQ E CZend_Feed_Builder_ExceptionQD ;Zend_Feed_Builder_EntryQC )Zend_Feed_AtomQB 1Zend_Feed_AbstractQA )Zend_ExceptionQ@ !Zend_DebugQ? Zend_DbQ> 'Zend_Db_TableQ= 5Zend_Db_Table_SelectQ#< IZend_Db_Table_Select_ExceptionQ; 5Zend_Db_Table_RowsetQ#: IZend_Db_Table_Rowset_ExceptionQ"9 GZend_Db_Table_Rowset_AbstractQ8 /Zend_Db_Table_RowQ 7 CZend_Db_Table_Row_ExceptionQ6 AZend_Db_Table_Row_AbstractQ5 ;Zend_Db_Table_ExceptionQ4 9Zend_Db_Table_AbstractQ3 /Zend_Db_StatementQ2 7Zend_Db_Statement_PdoQ1 ?Zend_Db_Statement_Pdo_IbmQ0 =Zend_Db_Statement_OracleQ'/ QZend_Db_Statement_Oracle_ExceptionQ. =Zend_Db_Statement_MysqliQ'- QZend_Db_Statement_Mysqli_ExceptionQ , CZend_Db_Statement_ExceptionQ+ 7Zend_Db_Statement_Db2Q   b  `5yQ&]6\7eI2



q
E
				R	#lBV. [3Z4\*N(pS;c2                           )~ UZend_Gdata_Gapps_Extension_EmailListQ} 9Zend_Gdata_Gapps_ErrorQ-| ]Zend_Gdata_Gapps_EmailListRecipientQueryQ,{ [Zend_Gdata_Gapps_EmailListRecipientFeedQ-z ]Zend_Gdata_Gapps_EmailListRecipientEntryQ$y KZend_Gdata_Gapps_EmailListQueryQ#x IZend_Gdata_Gapps_EmailListFeedQ$w KZend_Gdata_Gapps_EmailListEntryQv +Zend_Gdata_FeedQu 5Zend_Gdata_ExtensionQt =Zend_Gdata_Extension_WhoQs AZend_Gdata_Extension_WhereQr ?Zend_Gdata_Extension_WhenQ$q KZend_Gdata_Extension_VisibilityQ&p OZend_Gdata_Extension_TransparencyQ"o GZend_Gdata_Extension_ReminderQ-n ]Zend_Gdata_Extension_RecurrenceExceptionQ$m KZend_Gdata_Extension_RecurrenceQ l CZend_Gdata_Extension_RatingQ'k QZend_Gdata_Extension_OriginalEventQ0j cZend_Gdata_Extension_OpenSearchTotalResultsQ.i _Zend_Gdata_Extension_OpenSearchStartIndexQ0h cZend_Gdata_Extension_OpenSearchItemsPerPageQ"g GZend_Gdata_Extension_FeedLinkQ*f WZend_Gdata_Extension_ExtendedPropertyQ%e MZend_Gdata_Extension_EventStatusQ#d IZend_Gdata_Extension_EntryLinkQ"c GZend_Gdata_Extension_CommentsQ&b OZend_Gdata_Extension_AttendeeTypeQ(a SZend_Gdata_Extension_AttendeeStatusQ` +Zend_Gdata_ExifQ_ 5Zend_Gdata_Exif_FeedQ#^ IZend_Gdata_Exif_Extension_TimeQ#] IZend_Gdata_Exif_Extension_TagsQ$\ KZend_Gdata_Exif_Extension_ModelQ#[ IZend_Gdata_Exif_Extension_MakeQ"Z GZend_Gdata_Exif_Extension_IsoQ,Y [Zend_Gdata_Exif_Extension_ImageUniqueIdQ$X KZend_Gdata_Exif_Extension_FStopQ*W WZend_Gdata_Exif_Extension_FocalLengthQ$V KZend_Gdata_Exif_Extension_FlashQ'U QZend_Gdata_Exif_Extension_ExposureQ'T QZend_Gdata_Exif_Extension_DistanceQS 7Zend_Gdata_Exif_EntryQR -Zend_Gdata_EntryQQ +Zend_Gdata_DocsQP 7Zend_Gdata_Docs_QueryQ%O MZend_Gdata_Docs_DocumentListFeedQ&N OZend_Gdata_Docs_DocumentListEntryQM 9Zend_Gdata_ClientLoginQL 3Zend_Gdata_CalendarQ!K EZend_Gdata_Calendar_ListFeedQ"J GZend_Gdata_Calendar_ListEntryQ-I ]Zend_Gdata_Calendar_Extension_WebContentQ+H YZend_Gdata_Calendar_Extension_TimezoneQ9G uZend_Gdata_Calendar_Extension_SendEventNotificationsQ+F YZend_Gdata_Calendar_Extension_SelectedQ+E YZend_Gdata_Calendar_Extension_QuickAddQ'D QZend_Gdata_Calendar_Extension_LinkQ)C UZend_Gdata_Calendar_Extension_HiddenQ(B SZend_Gdata_Calendar_Extension_ColorQ.A _Zend_Gdata_Calendar_Extension_AccessLevelQ#@ IZend_Gdata_Calendar_EventQueryQ"? GZend_Gdata_Calendar_EventFeedQ#> IZend_Gdata_Calendar_EventEntryQ= 1Zend_Gdata_AuthSubQ< )Zend_Gdata_AppQ; 3Zend_Gdata_App_UtilQ#: IZend_Gdata_App_MediaFileSourceQ9 ?Zend_Gdata_App_MediaEntryQ28 gZend_Gdata_App_LoggingHttpClientAdapterSocketQ7 AZend_Gdata_App_IOExceptionQ,6 [Zend_Gdata_App_InvalidArgumentExceptionQ!5 EZend_Gdata_App_HttpExceptionQ$4 KZend_Gdata_App_FeedSourceParentQ#3 IZend_Gdata_App_FeedEntryParentQ2 3Zend_Gdata_App_FeedQ1 =Zend_Gdata_App_ExtensionQ!0 EZend_Gdata_App_Extension_UriQ%/ MZend_Gdata_App_Extension_UpdatedQ#. IZend_Gdata_App_Extension_TitleQ"- GZend_Gdata_App_Extension_TextQ%, MZend_Gdata_App_Extension_SummaryQ&+ OZend_Gdata_App_Extension_SubtitleQ$* KZend_Gdata_App_Extension_SourceQ$) KZend_Gdata_App_Extension_RightsQ'( QZend_Gdata_App_Extension_PublishedQ$' KZend_Gdata_App_Extension_PersonQ"& GZend_Gdata_App_Extension_NameQ"% GZend_Gdata_App_Extension_LogoQ"$ GZend_Gdata_App_Extension_LinkQ # CZend_Gdata_App_Extension_IdQ"" GZend_Gdata_App_Extension_IconQ'! QZend_Gdata_App_Extension_GeneratorQ#  IZend_Gdata_App_Extension_EmailQ% MZend_Gdata_App_Extension_ElementQ# IZend_Gdata_App_Extension_DraftQ% MZend_Gdata_App_Extension_ControlQ   _  Z3zX5iF'S)[+



h
;

			x	K	kFmB\&k?\. V1~Z@'|M                                    -] ]Zend_Gdata_Spreadsheets_Extension_CustomQ/\ aZend_Gdata_Spreadsheets_Extension_ColCountQ+[ YZend_Gdata_Spreadsheets_Extension_CellQ*Z WZend_Gdata_Spreadsheets_DocumentQueryQ&Y OZend_Gdata_Spreadsheets_CellQueryQ%X MZend_Gdata_Spreadsheets_CellFeedQ&W OZend_Gdata_Spreadsheets_CellEntryQV -Zend_Gdata_QueryQU /Zend_Gdata_PhotosQ T CZend_Gdata_Photos_UserQueryQS AZend_Gdata_Photos_UserFeedQ R CZend_Gdata_Photos_UserEntryQQ AZend_Gdata_Photos_TagEntryQ!P EZend_Gdata_Photos_PhotoQueryQ O CZend_Gdata_Photos_PhotoFeedQ!N EZend_Gdata_Photos_PhotoEntryQ&M OZend_Gdata_Photos_Extension_WidthQ'L QZend_Gdata_Photos_Extension_WeightQ(K SZend_Gdata_Photos_Extension_VersionQ%J MZend_Gdata_Photos_Extension_UserQ*I WZend_Gdata_Photos_Extension_TimestampQ*H WZend_Gdata_Photos_Extension_ThumbnailQ%G MZend_Gdata_Photos_Extension_SizeQ)F UZend_Gdata_Photos_Extension_RotationQ+E YZend_Gdata_Photos_Extension_QuotaLimitQ-D ]Zend_Gdata_Photos_Extension_QuotaCurrentQ)C UZend_Gdata_Photos_Extension_PositionQ(B SZend_Gdata_Photos_Extension_PhotoIdQ3A iZend_Gdata_Photos_Extension_NumPhotosRemainingQ*@ WZend_Gdata_Photos_Extension_NumPhotosQ)? UZend_Gdata_Photos_Extension_NicknameQ%> MZend_Gdata_Photos_Extension_NameQ2= gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumQ)< UZend_Gdata_Photos_Extension_LocationQ#; IZend_Gdata_Photos_Extension_IdQ': QZend_Gdata_Photos_Extension_HeightQ29 gZend_Gdata_Photos_Extension_CommentingEnabledQ-8 ]Zend_Gdata_Photos_Extension_CommentCountQ'7 QZend_Gdata_Photos_Extension_ClientQ)6 UZend_Gdata_Photos_Extension_ChecksumQ*5 WZend_Gdata_Photos_Extension_BytesUsedQ(4 SZend_Gdata_Photos_Extension_AlbumIdQ'3 QZend_Gdata_Photos_Extension_AccessQ#2 IZend_Gdata_Photos_CommentEntryQ!1 EZend_Gdata_Photos_AlbumQueryQ 0 CZend_Gdata_Photos_AlbumFeedQ!/ EZend_Gdata_Photos_AlbumEntryQ. -Zend_Gdata_MediaQ- 7Zend_Gdata_Media_FeedQ*, WZend_Gdata_Media_Extension_MediaTitleQ.+ _Zend_Gdata_Media_Extension_MediaThumbnailQ)* UZend_Gdata_Media_Extension_MediaTextQ0) cZend_Gdata_Media_Extension_MediaRestrictionQ+( YZend_Gdata_Media_Extension_MediaRatingQ+' YZend_Gdata_Media_Extension_MediaPlayerQ-& ]Zend_Gdata_Media_Extension_MediaKeywordsQ)% UZend_Gdata_Media_Extension_MediaHashQ*$ WZend_Gdata_Media_Extension_MediaGroupQ0# cZend_Gdata_Media_Extension_MediaDescriptionQ+" YZend_Gdata_Media_Extension_MediaCreditQ.! _Zend_Gdata_Media_Extension_MediaCopyrightQ,  [Zend_Gdata_Media_Extension_MediaContentQ- ]Zend_Gdata_Media_Extension_MediaCategoryQ 9Zend_Gdata_Media_EntryQ AZend_Gdata_Kind_EventEntryQ )Zend_Gdata_GeoQ 3Zend_Gdata_Geo_FeedQ$ KZend_Gdata_Geo_Extension_GmlPosQ& OZend_Gdata_Geo_Extension_GmlPointQ) UZend_Gdata_Geo_Extension_GeoRssWhereQ 5Zend_Gdata_Geo_EntryQ -Zend_Gdata_GbaseQ" GZend_Gdata_Gbase_SnippetQueryQ! EZend_Gdata_Gbase_SnippetFeedQ" GZend_Gdata_Gbase_SnippetEntryQ 9Zend_Gdata_Gbase_QueryQ AZend_Gdata_Gbase_ItemQueryQ ?Zend_Gdata_Gbase_ItemFeedQ AZend_Gdata_Gbase_ItemEntryQ 7Zend_Gdata_Gbase_FeedQ- ]Zend_Gdata_Gbase_Extension_BaseAttributeQ 9Zend_Gdata_Gbase_EntryQ -Zend_Gdata_GappsQ
 AZend_Gdata_Gapps_UserQueryQ	 ?Zend_Gdata_Gapps_UserFeedQ AZend_Gdata_Gapps_UserEntryQ& OZend_Gdata_Gapps_ServiceExceptionQ 9Zend_Gdata_Gapps_QueryQ# IZend_Gdata_Gapps_NicknameQueryQ" GZend_Gdata_Gapps_NicknameFeedQ# IZend_Gdata_Gapps_NicknameEntryQ% MZend_Gdata_Gapps_Extension_QuotaQ( SZend_Gdata_Gapps_Extension_NicknameQ$  KZend_Gdata_Gapps_Extension_NameQ% MZend_Gdata_Gapps_Extension_LoginQ   \  zPrJ#S&n@Z/


z
H
				d	9	^1a; mJ1wPG*wU$W-t=                         )9 UZend_InfoCard_Xml_Security_TransformQ48 kZend_InfoCard_Xml_Security_Transform_XmlExcC14NQ37 iZend_InfoCard_Xml_Security_Transform_ExceptionQ<6 {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignatureQ)5 UZend_InfoCard_Xml_Security_ExceptionQ4 ?Zend_InfoCard_Xml_KeyInfoQ&3 OZend_InfoCard_Xml_KeyInfo_XmlDSigQ&2 OZend_InfoCard_Xml_KeyInfo_DefaultQ'1 QZend_InfoCard_Xml_KeyInfo_AbstractQ 0 CZend_InfoCard_Xml_ExceptionQ#/ IZend_InfoCard_Xml_EncryptedKeyQ$. KZend_InfoCard_Xml_EncryptedDataQ+- YZend_InfoCard_Xml_EncryptedData_XmlEncQ-, ]Zend_InfoCard_Xml_EncryptedData_AbstractQ+ ?Zend_InfoCard_Xml_ElementQ * CZend_InfoCard_Xml_AssertionQ%) MZend_InfoCard_Xml_Assertion_SamlQ( ;Zend_InfoCard_ExceptionQ%' MZend_InfoCard_Exception_AbstractQ& 5Zend_InfoCard_ClaimsQ% 5Zend_InfoCard_CipherQ5$ mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcQ5# mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcQ4" kZend_InfoCard_Cipher_Symmetric_Adapter_AbstractQ)! UZend_InfoCard_Cipher_Pki_Adapter_RsaQ.  _Zend_InfoCard_Cipher_Pki_Adapter_AbstractQ# IZend_InfoCard_Cipher_ExceptionQ$ KZend_InfoCard_Adapter_ExceptionQ" GZend_InfoCard_Adapter_DefaultQ 1Zend_Http_ResponseQ 3Zend_Http_ExceptionQ 3Zend_Http_CookieJarQ -Zend_Http_CookieQ -Zend_Http_ClientQ AZend_Http_Client_ExceptionQ" GZend_Http_Client_Adapter_TestQ$ KZend_Http_Client_Adapter_SocketQ# IZend_Http_Client_Adapter_ProxyQ' QZend_Http_Client_Adapter_ExceptionQ !Zend_GdataQ 1Zend_Gdata_YouTubeQ" GZend_Gdata_YouTube_VideoQueryQ! EZend_Gdata_YouTube_VideoFeedQ" GZend_Gdata_YouTube_VideoEntryQ( SZend_Gdata_YouTube_UserProfileEntryQ( SZend_Gdata_YouTube_SubscriptionFeedQ) UZend_Gdata_YouTube_SubscriptionEntryQ)
 UZend_Gdata_YouTube_PlaylistVideoFeedQ*	 WZend_Gdata_YouTube_PlaylistVideoEntryQ( SZend_Gdata_YouTube_PlaylistListFeedQ) UZend_Gdata_YouTube_PlaylistListEntryQ" GZend_Gdata_YouTube_MediaEntryQ* WZend_Gdata_YouTube_Extension_UsernameQ' QZend_Gdata_YouTube_Extension_TokenQ( SZend_Gdata_YouTube_Extension_StatusQ, [Zend_Gdata_YouTube_Extension_StatisticsQ' QZend_Gdata_YouTube_Extension_StateQ(  SZend_Gdata_YouTube_Extension_SchoolQ- ]Zend_Gdata_YouTube_Extension_ReleaseDateQ.~ _Zend_Gdata_YouTube_Extension_RelationshipQ&} OZend_Gdata_YouTube_Extension_RacyQ*| WZend_Gdata_YouTube_Extension_PositionQ,{ [Zend_Gdata_YouTube_Extension_OccupationQ)z UZend_Gdata_YouTube_Extension_NoEmbedQ'y QZend_Gdata_YouTube_Extension_MusicQ(x SZend_Gdata_YouTube_Extension_MoviesQ,w [Zend_Gdata_YouTube_Extension_MediaGroupQ.v _Zend_Gdata_YouTube_Extension_MediaContentQ*u WZend_Gdata_YouTube_Extension_LocationQ&t OZend_Gdata_YouTube_Extension_LinkQ*s WZend_Gdata_YouTube_Extension_HometownQ)r UZend_Gdata_YouTube_Extension_HobbiesQ(q SZend_Gdata_YouTube_Extension_GenderQ*p WZend_Gdata_YouTube_Extension_DurationQ-o ]Zend_Gdata_YouTube_Extension_DescriptionQ)n UZend_Gdata_YouTube_Extension_ControlQ)m UZend_Gdata_YouTube_Extension_CompanyQ'l QZend_Gdata_YouTube_Extension_BooksQ%k MZend_Gdata_YouTube_Extension_AgeQ#j IZend_Gdata_YouTube_ContactFeedQ$i KZend_Gdata_YouTube_ContactEntryQ#h IZend_Gdata_YouTube_CommentFeedQ$g KZend_Gdata_YouTube_CommentEntryQf ;Zend_Gdata_SpreadsheetsQ*e WZend_Gdata_Spreadsheets_WorksheetFeedQ+d YZend_Gdata_Spreadsheets_WorksheetEntryQ,c [Zend_Gdata_Spreadsheets_SpreadsheetFeedQ-b ]Zend_Gdata_Spreadsheets_SpreadsheetEntryQ&a OZend_Gdata_Spreadsheets_ListQueryQ%` MZend_Gdata_Spreadsheets_ListFeedQ&_ OZend_Gdata_Spreadsheets_ListEntryQ/^ aZend_Gdata_Spreadsheets_Extension_RowCountQ   z |bF4 sU*	~[:!nO.s\8



{
P
0
				y	Z	8	jE$`<eD)
vX= xS.iM3
]?sI&     !3 EZend_Pdf_Cmap_SegmentToDeltaQ2 AZend_Pdf_Cmap_ByteEncodingQ&1 OZend_Pdf_Cmap_ByteEncoding_StaticQ0 #Zend_OpenIdQ/ 5Zend_OpenId_ProviderQ. ?Zend_OpenId_Provider_UserQ&- OZend_OpenId_Provider_User_SessionQ!, EZend_OpenId_Provider_StorageQ&+ OZend_OpenId_Provider_Storage_FileQ* 7Zend_OpenId_ExtensionQ) AZend_OpenId_Extension_SregQ( 7Zend_OpenId_ExceptionQ' 5Zend_OpenId_ConsumerQ!& EZend_OpenId_Consumer_StorageQ&% OZend_OpenId_Consumer_Storage_FileQ$ Zend_MimeQ# )Zend_Mime_PartQ" /Zend_Mime_MessageQ! 3Zend_Mime_ExceptionQ  -Zend_Mime_DecodeQ #Zend_MemoryQ /Zend_Memory_ValueQ 3Zend_Memory_ManagerQ 7Zend_Memory_ExceptionQ 7Zend_Memory_ContainerQ" GZend_Memory_Container_MovableQ! EZend_Memory_Container_LockedQ! EZend_Memory_AccessControllerQ 3Zend_Measure_WeightQ 3Zend_Measure_VolumeQ% MZend_Measure_Viscosity_KinematicQ# IZend_Measure_Viscosity_DynamicQ 3Zend_Measure_TorqueQ =Zend_Measure_TemperatureQ 1Zend_Measure_SpeedQ 7Zend_Measure_PressureQ 1Zend_Measure_PowerQ 3Zend_Measure_NumberQ 9Zend_Measure_LightnessQ 3Zend_Measure_LengthQ ?Zend_Measure_IlluminationQ
 9Zend_Measure_FrequencyQ	 1Zend_Measure_ForceQ =Zend_Measure_Flow_VolumeQ 9Zend_Measure_Flow_MoleQ 9Zend_Measure_Flow_MassQ 9Zend_Measure_ExceptionQ 3Zend_Measure_EnergyQ 5Zend_Measure_DensityQ 5Zend_Measure_CurrentQ  CZend_Measure_Cooking_WeightQ   CZend_Measure_Cooking_VolumeQ =Zend_Measure_CapacitanceQ~ 3Zend_Measure_BinaryQ} /Zend_Measure_AreaQ| 1Zend_Measure_AngleQ{ ?Zend_Measure_AccelerationQz 7Zend_Measure_AbstractQy Zend_MailQx =Zend_Mail_Transport_SmtpQ!w EZend_Mail_Transport_SendmailQ"v GZend_Mail_Transport_ExceptionQ!u EZend_Mail_Transport_AbstractQt /Zend_Mail_StorageQ's QZend_Mail_Storage_Writable_MaildirQr 9Zend_Mail_Storage_Pop3Qq 9Zend_Mail_Storage_MboxQp ?Zend_Mail_Storage_MaildirQo 9Zend_Mail_Storage_ImapQn =Zend_Mail_Storage_FolderQ"m GZend_Mail_Storage_Folder_MboxQ%l MZend_Mail_Storage_Folder_MaildirQ k CZend_Mail_Storage_ExceptionQj AZend_Mail_Storage_AbstractQi ;Zend_Mail_Protocol_SmtpQ'h QZend_Mail_Protocol_Smtp_Auth_PlainQ'g QZend_Mail_Protocol_Smtp_Auth_LoginQ)f UZend_Mail_Protocol_Smtp_Auth_Crammd5Qe ;Zend_Mail_Protocol_Pop3Qd ;Zend_Mail_Protocol_ImapQ!c EZend_Mail_Protocol_ExceptionQ b CZend_Mail_Protocol_AbstractQa )Zend_Mail_PartQ` /Zend_Mail_MessageQ_ 3Zend_Mail_ExceptionQ^ Zend_LogQ] 9Zend_Log_Writer_StreamQ\ 5Zend_Log_Writer_NullQ[ 5Zend_Log_Writer_MockQZ 1Zend_Log_Writer_DbQY =Zend_Log_Writer_AbstractQX 9Zend_Log_Formatter_XmlQW ?Zend_Log_Formatter_SimpleQV =Zend_Log_Filter_SuppressQU =Zend_Log_Filter_PriorityQT ;Zend_Log_Filter_MessageQS 1Zend_Log_ExceptionQR #Zend_LocaleQQ -Zend_Locale_MathQP =Zend_Locale_Math_PhpMathQO AZend_Locale_Math_ExceptionQN 1Zend_Locale_FormatQM 7Zend_Locale_ExceptionQL -Zend_Locale_DataQ!K EZend_Locale_Data_TranslationQJ #Zend_LoaderQI =Zend_Loader_PluginLoaderQ'H QZend_Loader_PluginLoader_ExceptionQG 7Zend_Loader_ExceptionQF Zend_LdapQE 3Zend_Ldap_ExceptionQD #Zend_LayoutQC 7Zend_Layout_ExceptionQ)B UZend_Layout_Controller_Plugin_LayoutQ0A cZend_Layout_Controller_Action_Helper_LayoutQ@ Zend_JsonQ? 3Zend_Json_ExceptionQ> /Zend_Json_EncoderQ= /Zend_Json_DecoderQ< 'Zend_InfoCardQ-; ]Zend_InfoCard_Xml_SecurityTokenReferenceQ: AZend_InfoCard_Xml_SecurityQ   a  nS<{T4	vV=^8|\;





c
K
1
				M	 l.s3JZ;lN7lL3s:g.                        I Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitiveQ5 mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8QF Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitiveQ8 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumQI Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitiveQ5 mZend_Search_Lucene_Analysis_Analyzer_Common_TextQF Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiveQ 7Zend_Search_ExceptionQ -Zend_Rest_ServerQ AZend_Rest_Server_ExceptionQ
 3Zend_Rest_ExceptionQ	 -Zend_Rest_ClientQ ;Zend_Rest_Client_ResultQ AZend_Rest_Client_ExceptionQ 'Zend_RegistryQ Zend_PdfQ! EZend_Pdf_UpdateInfoContainerQ -Zend_Pdf_TrailerQ ;Zend_Pdf_Trailer_KeeperQ AZend_Pdf_Trailer_GeneratorQ  )Zend_Pdf_StyleQ 7Zend_Pdf_StringParserQ~ /Zend_Pdf_ResourceQ#} IZend_Pdf_Resource_ImageFactoryQ| ;Zend_Pdf_Resource_ImageQ!{ EZend_Pdf_Resource_Image_TiffQ z CZend_Pdf_Resource_Image_PngQ!y EZend_Pdf_Resource_Image_JpegQx 9Zend_Pdf_Resource_FontQ!w EZend_Pdf_Resource_Font_Type0Q"v GZend_Pdf_Resource_Font_SimpleQ+u YZend_Pdf_Resource_Font_Simple_StandardQ8t sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsQ6s oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanQ7r qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicQ;q yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicQ5p mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldQ2o gZend_Pdf_Resource_Font_Simple_Standard_SymbolQ<n {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueQAm Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliqueQ9l uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldQ5k mZend_Pdf_Resource_Font_Simple_Standard_HelveticaQ:j wZend_Pdf_Resource_Font_Simple_Standard_CourierObliqueQ>i Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliqueQ7h qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldQ3g iZend_Pdf_Resource_Font_Simple_Standard_CourierQ)f UZend_Pdf_Resource_Font_Simple_ParsedQ2e gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypeQ*d WZend_Pdf_Resource_Font_FontDescriptorQ%c MZend_Pdf_Resource_Font_ExtractedQ#b IZend_Pdf_Resource_Font_CidFontQ,a [Zend_Pdf_Resource_Font_CidFont_TrueTypeQ` /Zend_Pdf_PhpArrayQ_ +Zend_Pdf_ParserQ^ 9Zend_Pdf_Parser_StreamQ] 'Zend_Pdf_PageQ\ )Zend_Pdf_ImageQ[ 'Zend_Pdf_FontQ Z CZend_Pdf_Filter_CompressionQ$Y KZend_Pdf_Filter_Compression_LzwQ&X OZend_Pdf_Filter_Compression_FlateQW =Zend_Pdf_Filter_AsciiHexQV ;Zend_Pdf_Filter_Ascii85Q"U GZend_Pdf_FileParserDataSourceQ)T UZend_Pdf_FileParserDataSource_StringQ'S QZend_Pdf_FileParserDataSource_FileQR 3Zend_Pdf_FileParserQQ ?Zend_Pdf_FileParser_ImageQ"P GZend_Pdf_FileParser_Image_PngQO =Zend_Pdf_FileParser_FontQ&N OZend_Pdf_FileParser_Font_OpenTypeQ/M aZend_Pdf_FileParser_Font_OpenType_TrueTypeQL 1Zend_Pdf_ExceptionQK ;Zend_Pdf_ElementFactoryQ"J GZend_Pdf_ElementFactory_ProxyQI -Zend_Pdf_ElementQH ;Zend_Pdf_Element_StringQ#G IZend_Pdf_Element_String_BinaryQF ;Zend_Pdf_Element_StreamQE AZend_Pdf_Element_ReferenceQ%D MZend_Pdf_Element_Reference_TableQ'C QZend_Pdf_Element_Reference_ContextQB ;Zend_Pdf_Element_ObjectQ#A IZend_Pdf_Element_Object_StreamQ@ =Zend_Pdf_Element_NumericQ? 7Zend_Pdf_Element_NullQ> 7Zend_Pdf_Element_NameQ = CZend_Pdf_Element_DictionaryQ< =Zend_Pdf_Element_BooleanQ; 9Zend_Pdf_Element_ArrayQ: )Zend_Pdf_ColorQ9 1Zend_Pdf_Color_RgbQ8 3Zend_Pdf_Color_HtmlQ7 =Zend_Pdf_Color_GrayScaleQ6 3Zend_Pdf_Color_CmykQ5 'Zend_Pdf_CmapQ4 AZend_Pdf_Cmap_TrimmedTableQ   X  c9LjERY1




R
$				_	1	wA\'a0pGX= [5uW:xN,         "l GZend_Service_Amazon_ResultSetQk ?Zend_Service_Amazon_QueryQ!j EZend_Service_Amazon_OfferSetQi ?Zend_Service_Amazon_OfferQ&h OZend_Service_Amazon_ListmaniaListQg =Zend_Service_Amazon_ItemQf ?Zend_Service_Amazon_ImageQ(e SZend_Service_Amazon_EditorialReviewQ'd QZend_Service_Amazon_CustomerReviewQ$c KZend_Service_Amazon_AccessoriesQb 5Zend_Service_AkismetQa 7Zend_Service_AbstractQ` 9Zend_Server_ReflectionQ'_ QZend_Server_Reflection_ReturnValueQ%^ MZend_Server_Reflection_PrototypeQ%] MZend_Server_Reflection_ParameterQ \ CZend_Server_Reflection_NodeQ"[ GZend_Server_Reflection_MethodQ$Z KZend_Server_Reflection_FunctionQ-Y ]Zend_Server_Reflection_Function_AbstractQ%X MZend_Server_Reflection_ExceptionQ!W EZend_Server_Reflection_ClassQV 7Zend_Server_ExceptionQU 5Zend_Server_AbstractQT 1Zend_Search_LuceneQ$S KZend_Search_Lucene_Storage_FileQ+R YZend_Search_Lucene_Storage_File_MemoryQ/Q aZend_Search_Lucene_Storage_File_FilesystemQ)P UZend_Search_Lucene_Storage_DirectoryQ4O kZend_Search_Lucene_Storage_Directory_FilesystemQ%N MZend_Search_Lucene_Search_WeightQ*M WZend_Search_Lucene_Search_Weight_TermQ,L [Zend_Search_Lucene_Search_Weight_PhraseQ/K aZend_Search_Lucene_Search_Weight_MultiTermQ+J YZend_Search_Lucene_Search_Weight_EmptyQ-I ]Zend_Search_Lucene_Search_Weight_BooleanQ)H UZend_Search_Lucene_Search_SimilarityQ1G eZend_Search_Lucene_Search_Similarity_DefaultQ)F UZend_Search_Lucene_Search_QueryTokenQ3E iZend_Search_Lucene_Search_QueryParserExceptionQ1D eZend_Search_Lucene_Search_QueryParserContextQ*C WZend_Search_Lucene_Search_QueryParserQ)B UZend_Search_Lucene_Search_QueryLexerQ'A QZend_Search_Lucene_Search_QueryHitQ)@ UZend_Search_Lucene_Search_QueryEntryQ.? _Zend_Search_Lucene_Search_QueryEntry_TermQ2> gZend_Search_Lucene_Search_QueryEntry_SubqueryQ0= cZend_Search_Lucene_Search_QueryEntry_PhraseQ$< KZend_Search_Lucene_Search_QueryQ-; ]Zend_Search_Lucene_Search_Query_WildcardQ): UZend_Search_Lucene_Search_Query_TermQ*9 WZend_Search_Lucene_Search_Query_RangeQ+8 YZend_Search_Lucene_Search_Query_PhraseQ.7 _Zend_Search_Lucene_Search_Query_MultiTermQ26 gZend_Search_Lucene_Search_Query_InsignificantQ*5 WZend_Search_Lucene_Search_Query_FuzzyQ*4 WZend_Search_Lucene_Search_Query_EmptyQ,3 [Zend_Search_Lucene_Search_Query_BooleanQ:2 wZend_Search_Lucene_Search_BooleanExpressionRecognizerQ1 =Zend_Search_Lucene_ProxyQ%0 MZend_Search_Lucene_PriorityQueueQ#/ IZend_Search_Lucene_LockManagerQ$. KZend_Search_Lucene_Index_WriterQ&- OZend_Search_Lucene_Index_TermInfoQ", GZend_Search_Lucene_Index_TermQ++ YZend_Search_Lucene_Index_SegmentWriterQ8* sZend_Search_Lucene_Index_SegmentWriter_StreamWriterQ:) wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterQ+( YZend_Search_Lucene_Index_SegmentMergerQ6' oZend_Search_Lucene_Index_SegmentInfoPriorityQueueQ)& UZend_Search_Lucene_Index_SegmentInfoQ'% QZend_Search_Lucene_Index_FieldInfoQ.$ _Zend_Search_Lucene_Index_DictionaryLoaderQ!# EZend_Search_Lucene_FSMActionQ" 9Zend_Search_Lucene_FSMQ! =Zend_Search_Lucene_FieldQ!  EZend_Search_Lucene_ExceptionQ  CZend_Search_Lucene_DocumentQ% MZend_Search_Lucene_Document_HtmlQ, [Zend_Search_Lucene_Analysis_TokenFilterQ6 oZend_Search_Lucene_Analysis_TokenFilter_StopWordsQ7 qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsQ: wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8Q6 oZend_Search_Lucene_Analysis_TokenFilter_LowerCaseQ& OZend_Search_Lucene_Analysis_TokenQ) UZend_Search_Lucene_Analysis_AnalyzerQ0 cZend_Search_Lucene_Analysis_Analyzer_CommonQ8 sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumQ   g  lH sM1	jJ%~Y. iI$



i
=
				j	8	}V,xMj@nEV1	j=(yV/}^=&                S Zend_UriQR 'Zend_Uri_HttpQQ 1Zend_Uri_ExceptionQP )Zend_TranslateQO =Zend_Translate_ExceptionQN 9Zend_Translate_AdapterQ!M EZend_Translate_Adapter_XmlTmQ!L EZend_Translate_Adapter_XliffQK AZend_Translate_Adapter_TmxQJ AZend_Translate_Adapter_TbxQI ?Zend_Translate_Adapter_QtQ#H IZend_Translate_Adapter_GettextQG AZend_Translate_Adapter_CsvQ!F EZend_Translate_Adapter_ArrayQE 'Zend_TimeSyncQD 1Zend_TimeSync_SntpQC 9Zend_TimeSync_ProtocolQB /Zend_TimeSync_NtpQA ;Zend_TimeSync_ExceptionQ@ %Zend_SessionQ)? UZend_Session_Validator_HttpUserAgentQ$> KZend_Session_Validator_AbstractQ= 9Zend_Session_NamespaceQ< 9Zend_Session_ExceptionQ; 7Zend_Session_AbstractQ: 1Zend_Service_YahooQ$9 KZend_Service_Yahoo_WebResultSetQ!8 EZend_Service_Yahoo_WebResultQ&7 OZend_Service_Yahoo_VideoResultSetQ#6 IZend_Service_Yahoo_VideoResultQ!5 EZend_Service_Yahoo_ResultSetQ4 ?Zend_Service_Yahoo_ResultQ)3 UZend_Service_Yahoo_PageDataResultSetQ&2 OZend_Service_Yahoo_PageDataResultQ%1 MZend_Service_Yahoo_NewsResultSetQ"0 GZend_Service_Yahoo_NewsResultQ&/ OZend_Service_Yahoo_LocalResultSetQ#. IZend_Service_Yahoo_LocalResultQ+- YZend_Service_Yahoo_InlinkDataResultSetQ(, SZend_Service_Yahoo_InlinkDataResultQ&+ OZend_Service_Yahoo_ImageResultSetQ#* IZend_Service_Yahoo_ImageResultQ) =Zend_Service_Yahoo_ImageQ( ;Zend_Service_TechnoratiQ#' IZend_Service_Technorati_WeblogQ"& GZend_Service_Technorati_UtilsQ*% WZend_Service_Technorati_TagsResultSetQ'$ QZend_Service_Technorati_TagsResultQ)# UZend_Service_Technorati_TagResultSetQ&" OZend_Service_Technorati_TagResultQ,! [Zend_Service_Technorati_SearchResultSetQ)  UZend_Service_Technorati_SearchResultQ& OZend_Service_Technorati_ResultSetQ# IZend_Service_Technorati_ResultQ* WZend_Service_Technorati_KeyInfoResultQ* WZend_Service_Technorati_GetInfoResultQ& OZend_Service_Technorati_ExceptionQ1 eZend_Service_Technorati_DailyCountsResultSetQ. _Zend_Service_Technorati_DailyCountsResultQ, [Zend_Service_Technorati_CosmosResultSetQ) UZend_Service_Technorati_CosmosResultQ+ YZend_Service_Technorati_BlogInfoResultQ# IZend_Service_Technorati_AuthorQ ;Zend_Service_StrikeIronQ( SZend_Service_StrikeIron_ZipCodeInfoQ2 gZend_Service_StrikeIron_USAddressVerificationQ- ]Zend_Service_StrikeIron_SalesUseTaxBasicQ& OZend_Service_StrikeIron_ExceptionQ& OZend_Service_StrikeIron_DecoratorQ! EZend_Service_StrikeIron_BaseQ ;Zend_Service_SlideShareQ& OZend_Service_SlideShare_SlideShowQ& OZend_Service_SlideShare_ExceptionQ
 1Zend_Service_SimpyQ$	 KZend_Service_Simpy_WatchlistSetQ* WZend_Service_Simpy_WatchlistFilterSetQ' QZend_Service_Simpy_WatchlistFilterQ! EZend_Service_Simpy_WatchlistQ ?Zend_Service_Simpy_TagSetQ 9Zend_Service_Simpy_TagQ AZend_Service_Simpy_NoteSetQ ;Zend_Service_Simpy_NoteQ AZend_Service_Simpy_LinkSetQ!  EZend_Service_Simpy_LinkQueryQ ;Zend_Service_Simpy_LinkQ~ 7Zend_Service_NirvanixQ#} IZend_Service_Nirvanix_ResponseQ)| UZend_Service_Nirvanix_Namespace_ImfsQ){ UZend_Service_Nirvanix_Namespace_BaseQ$z KZend_Service_Nirvanix_ExceptionQy 3Zend_Service_FlickrQ"x GZend_Service_Flickr_ResultSetQw AZend_Service_Flickr_ResultQv ?Zend_Service_Flickr_ImageQu 9Zend_Service_ExceptionQt 9Zend_Service_DeliciousQ&s OZend_Service_Delicious_SimplePostQ$r KZend_Service_Delicious_PostListQ q CZend_Service_Delicious_PostQ%p MZend_Service_Delicious_ExceptionQ o CZend_Service_AudioscrobblerQn 3Zend_Service_AmazonQ'm QZend_Service_Amazon_SimilarProductQ   q  bD&
sQ7kI'xY=sR0




]
9
					]	:	fBvK*Z+}`N)xQ6}`?{V3lK1                   D /Zend_Acl_ResourceRC 1Zend_Acl_ExceptionRB /Zend_XmlRpc_ValueQA =Zend_XmlRpc_Value_StructQ@ =Zend_XmlRpc_Value_StringQ? =Zend_XmlRpc_Value_ScalarQ> 7Zend_XmlRpc_Value_NilQ= ?Zend_XmlRpc_Value_IntegerQ < CZend_XmlRpc_Value_ExceptionQ; =Zend_XmlRpc_Value_DoubleQ: AZend_XmlRpc_Value_DateTimeQ!9 EZend_XmlRpc_Value_CollectionQ8 ?Zend_XmlRpc_Value_BooleanQ7 =Zend_XmlRpc_Value_Base64Q6 ;Zend_XmlRpc_Value_ArrayQ5 1Zend_XmlRpc_ServerQ4 =Zend_XmlRpc_Server_FaultQ!3 EZend_XmlRpc_Server_ExceptionQ2 =Zend_XmlRpc_Server_CacheQ1 5Zend_XmlRpc_ResponseQ0 ?Zend_XmlRpc_Response_HttpQ/ 3Zend_XmlRpc_RequestQ. ?Zend_XmlRpc_Request_StdinQ- =Zend_XmlRpc_Request_HttpQ, /Zend_XmlRpc_FaultQ+ 7Zend_XmlRpc_ExceptionQ* 1Zend_XmlRpc_ClientQ#) IZend_XmlRpc_Client_ServerProxyQ+( YZend_XmlRpc_Client_ServerIntrospectionQ+' YZend_XmlRpc_Client_IntrospectExceptionQ%& MZend_XmlRpc_Client_HttpExceptionQ&% OZend_XmlRpc_Client_FaultExceptionQ!$ EZend_XmlRpc_Client_ExceptionQ# Zend_ViewQ" 5Zend_View_Helper_UrlQ! AZend_View_Helper_TranslateQ!  EZend_View_Helper_PlaceholderQ* WZend_View_Helper_Placeholder_RegistryQ4 kZend_View_Helper_Placeholder_Registry_ExceptionQ+ YZend_View_Helper_Placeholder_ContainerQ6 oZend_View_Helper_Placeholder_Container_StandaloneQ5 mZend_View_Helper_Placeholder_Container_ExceptionQ4 kZend_View_Helper_Placeholder_Container_AbstractQ! EZend_View_Helper_PartialLoopQ =Zend_View_Helper_PartialQ' QZend_View_Helper_Partial_ExceptionQ ;Zend_View_Helper_LayoutQ 7Zend_View_Helper_JsonQ" GZend_View_Helper_InlineScriptQ ?Zend_View_Helper_HtmlListQ AZend_View_Helper_HeadTitleQ AZend_View_Helper_HeadStyleQ  CZend_View_Helper_HeadScriptQ ?Zend_View_Helper_HeadMetaQ ?Zend_View_Helper_HeadLinkQ" GZend_View_Helper_FormTextareaQ ?Zend_View_Helper_FormTextQ  CZend_View_Helper_FormSubmitQ 
 CZend_View_Helper_FormSelectQ	 AZend_View_Helper_FormResetQ AZend_View_Helper_FormRadioQ" GZend_View_Helper_FormPasswordQ ?Zend_View_Helper_FormNoteQ' QZend_View_Helper_FormMultiCheckboxQ AZend_View_Helper_FormLabelQ AZend_View_Helper_FormImageQ  CZend_View_Helper_FormHiddenQ ?Zend_View_Helper_FormFileQ   CZend_View_Helper_FormErrorsQ! EZend_View_Helper_FormElementQ"~ GZend_View_Helper_FormCheckboxQ } CZend_View_Helper_FormButtonQ| 7Zend_View_Helper_FormQ{ ?Zend_View_Helper_FieldsetQz =Zend_View_Helper_DoctypeQ!y EZend_View_Helper_DeclareVarsQx ;Zend_View_Helper_ActionQw 3Zend_View_ExceptionQv 1Zend_View_AbstractQu %Zend_VersionQt 'Zend_ValidateQs AZend_Validate_StringLengthQr 3Zend_Validate_RegexQq 9Zend_Validate_NotEmptyQp 9Zend_Validate_LessThanQo -Zend_Validate_IpQn /Zend_Validate_IntQm 7Zend_Validate_InArrayQl ;Zend_Validate_IdenticalQk 9Zend_Validate_HostnameQj ?Zend_Validate_Hostname_SeQi ?Zend_Validate_Hostname_NoQh ?Zend_Validate_Hostname_LiQg ?Zend_Validate_Hostname_HuQf ?Zend_Validate_Hostname_FiQe ?Zend_Validate_Hostname_DeQd ?Zend_Validate_Hostname_ChQc ?Zend_Validate_Hostname_AtQb /Zend_Validate_HexQa ?Zend_Validate_GreaterThanQ` 3Zend_Validate_FloatQ_ ;Zend_Validate_ExceptionQ^ AZend_Validate_EmailAddressQ] 5Zend_Validate_DigitsQ\ 1Zend_Validate_DateQ[ 3Zend_Validate_CcnumQZ 7Zend_Validate_BetweenQY 7Zend_Validate_BarcodeQX AZend_Validate_Barcode_UpcAQ W CZend_Validate_Barcode_Ean13QV 3Zend_Validate_AlphaQU 3Zend_Validate_AlnumQT 9Zend_Validate_AbstractQ   a  ~[8Y+Z/_5	zV9




d
A
"					[	3	}[1
x>U+
i@nF'xU2iF)g9                                                      7 qZend_InfoCard_Cipher_Symmetric_Aes128cbc_InterfaceS+ YZend_InfoCard_Cipher_Pki_Rsa_InterfaceS' QZend_InfoCard_Cipher_Pki_InterfaceS$  KZend_InfoCard_Adapter_InterfaceS' QZend_Http_Client_Adapter_InterfaceS~ AZend_Gdata_App_MediaSourceS"} GZend_Form_Decorator_InterfaceS| 7Zend_Filter_InterfaceS { CZend_Feed_Builder_InterfaceS z CZend_Db_Statement_InterfaceS+y YZend_Controller_Router_Route_InterfaceS%x MZend_Controller_Router_InterfaceS)w UZend_Controller_Dispatcher_InterfaceS!v EZend_Cache_Backend_InterfaceS u CZend_Auth_Storage_InterfaceS t CZend_Auth_Adapter_InterfaceS.s _Zend_Auth_Adapter_Http_Resolver_InterfaceSr ;Zend_Acl_Role_InterfaceS q CZend_Acl_Resource_InterfaceSp ?Zend_Acl_Assert_InterfaceSo 3Zend_View_InterfaceRn ;Zend_Validate_InterfaceR%m MZend_Validate_Hostname_InterfaceR%l MZend_Session_Validator_InterfaceR'k QZend_Session_SaveHandler_InterfaceRj 7Zend_Server_InterfaceR!i EZend_Search_Lucene_InterfaceRh 9Zend_Request_InterfaceRg ?Zend_Pdf_Filter_InterfaceR&f OZend_Pdf_ElementFactory_InterfaceR$e KZend_Memory_Container_InterfaceR)d UZend_Mail_Storage_Writable_InterfaceR'c QZend_Mail_Storage_Folder_InterfaceR!b EZend_Log_Formatter_InterfaceRa ?Zend_Log_Filter_InterfaceR'` QZend_Loader_PluginLoader_InterfaceR3_ iZend_InfoCard_Xml_Security_Transform_InterfaceR(^ SZend_InfoCard_Xml_KeyInfo_InterfaceR(] SZend_InfoCard_Xml_Element_InterfaceR*\ WZend_InfoCard_Xml_Assertion_InterfaceR-[ ]Zend_InfoCard_Cipher_Symmetric_InterfaceR7Z qZend_InfoCard_Cipher_Symmetric_Aes256cbc_InterfaceR7Y qZend_InfoCard_Cipher_Symmetric_Aes128cbc_InterfaceR+X YZend_InfoCard_Cipher_Pki_Rsa_InterfaceR'W QZend_InfoCard_Cipher_Pki_InterfaceR$V KZend_InfoCard_Adapter_InterfaceR'U QZend_Http_Client_Adapter_InterfaceRT AZend_Gdata_App_MediaSourceR"S GZend_Form_Decorator_InterfaceRR 7Zend_Filter_InterfaceR Q CZend_Feed_Builder_InterfaceR P CZend_Db_Statement_InterfaceR+O YZend_Controller_Router_Route_InterfaceR%N MZend_Controller_Router_InterfaceR)M UZend_Controller_Dispatcher_InterfaceR!L EZend_Cache_Backend_InterfaceR K CZend_Auth_Storage_InterfaceR J CZend_Auth_Adapter_InterfaceR.I _Zend_Auth_Adapter_Http_Resolver_InterfaceRH ;Zend_Acl_Role_InterfaceR G CZend_Acl_Resource_InterfaceRF ?Zend_Acl_Assert_InterfaceRE 3Zend_View_InterfaceQD ;Zend_Validate_InterfaceQ%C MZend_Validate_Hostname_InterfaceQ%B MZend_Session_Validator_InterfaceQ'A QZend_Session_SaveHandler_InterfaceQ@ 7Zend_Server_InterfaceQ!? EZend_Search_Lucene_InterfaceQ> 9Zend_Request_InterfaceQ= ?Zend_Pdf_Filter_InterfaceQ&< OZend_Pdf_ElementFactory_InterfaceQ$; KZend_Memory_Container_InterfaceQ): UZend_Mail_Storage_Writable_InterfaceQ'9 QZend_Mail_Storage_Folder_InterfaceQ!8 EZend_Log_Formatter_InterfaceQ7 ?Zend_Log_Filter_InterfaceQ'6 QZend_Loader_PluginLoader_InterfaceQ35 iZend_InfoCard_Xml_Security_Transform_InterfaceQ(4 SZend_InfoCard_Xml_KeyInfo_InterfaceQ(3 SZend_InfoCard_Xml_Element_InterfaceQ*2 WZend_InfoCard_Xml_Assertion_InterfaceQ-1 ]Zend_InfoCard_Cipher_Symmetric_InterfaceQ70 qZend_InfoCard_Cipher_Symmetric_Aes256cbc_InterfaceQ7/ qZend_InfoCard_Cipher_Symmetric_Aes128cbc_InterfaceQ+. YZend_InfoCard_Cipher_Pki_Rsa_InterfaceQ'- QZend_InfoCard_Cipher_Pki_InterfaceQ$, KZend_InfoCard_Adapter_InterfaceQ'+ QZend_Http_Client_Adapter_InterfaceQ* AZend_Gdata_App_MediaSourceQ") GZend_Form_Decorator_InterfaceQ( 7Zend_Filter_InterfaceQ ' CZend_Feed_Builder_InterfaceQ & CZend_Db_Statement_InterfaceQ+% YZend_Controller_Router_Route_InterfaceQ%$ MZend_Controller_Router_InterfaceQ)# UZend_Controller_Dispatcher_InterfaceQ   k  oN*jI-uU0vT3iU/



W
			p	;	V7rJzP+d<iD$cG%pL(_E0                 / 9Zend_Db_Profiler_QueryR. AZend_Db_Profiler_ExceptionR- %Zend_Db_ExprR, /Zend_Db_ExceptionR+ AZend_Db_Adapter_Pdo_SqliteR* ?Zend_Db_Adapter_Pdo_PgsqlR) ;Zend_Db_Adapter_Pdo_OciR( ?Zend_Db_Adapter_Pdo_MysqlR' ?Zend_Db_Adapter_Pdo_MssqlR& ;Zend_Db_Adapter_Pdo_IbmR % CZend_Db_Adapter_Pdo_Ibm_IdsR $ CZend_Db_Adapter_Pdo_Ibm_Db2R!# EZend_Db_Adapter_Pdo_AbstractR" 9Zend_Db_Adapter_OracleR%! MZend_Db_Adapter_Oracle_ExceptionR  9Zend_Db_Adapter_MysqliR% MZend_Db_Adapter_Mysqli_ExceptionR ?Zend_Db_Adapter_ExceptionR 3Zend_Db_Adapter_Db2R" GZend_Db_Adapter_Db2_ExceptionR =Zend_Db_Adapter_AbstractR Zend_DateR 3Zend_Date_ExceptionR 5Zend_Date_DateObjectR -Zend_Date_CitiesR 'Zend_CurrencyR ;Zend_Currency_ExceptionR! EZend_Controller_Router_RouteR( SZend_Controller_Router_Route_StaticR' QZend_Controller_Router_Route_RegexR( SZend_Controller_Router_Route_ModuleR# IZend_Controller_Router_RewriteR% MZend_Controller_Router_ExceptionR$ KZend_Controller_Router_AbstractR" GZend_Controller_Response_HttpR' QZend_Controller_Response_ExceptionR! EZend_Controller_Response_CliR&
 OZend_Controller_Response_AbstractR#	 IZend_Controller_Request_SimpleR! EZend_Controller_Request_HttpR& OZend_Controller_Request_ExceptionR& OZend_Controller_Request_Apache404R% MZend_Controller_Request_AbstractR( SZend_Controller_Plugin_ErrorHandlerR" GZend_Controller_Plugin_BrokerR' QZend_Controller_Plugin_ActionStackR$ KZend_Controller_Plugin_AbstractR  7Zend_Controller_FrontR ?Zend_Controller_ExceptionR(~ SZend_Controller_Dispatcher_StandardR)} UZend_Controller_Dispatcher_ExceptionR(| SZend_Controller_Dispatcher_AbstractR{ 9Zend_Controller_ActionR(z SZend_Controller_Action_HelperBrokerR/y aZend_Controller_Action_Helper_ViewRendererR&x OZend_Controller_Action_Helper_UrlR-w ]Zend_Controller_Action_Helper_RedirectorR'v QZend_Controller_Action_Helper_JsonR1u eZend_Controller_Action_Helper_FlashMessengerR0t cZend_Controller_Action_Helper_ContextSwitchR<s {Zend_Controller_Action_Helper_AutoCompleteScriptaculousR3r iZend_Controller_Action_Helper_AutoCompleteDojoR8q sZend_Controller_Action_Helper_AutoComplete_AbstractR.p _Zend_Controller_Action_Helper_AjaxContextR.o _Zend_Controller_Action_Helper_ActionStackR+n YZend_Controller_Action_Helper_AbstractR%m MZend_Controller_Action_ExceptionRl 3Zend_Console_GetoptR"k GZend_Console_Getopt_ExceptionRj #Zend_ConfigRi +Zend_Config_XmlRh +Zend_Config_IniRg 7Zend_Config_ExceptionRf !Zend_CacheRe =Zend_Cache_Frontend_PageRd AZend_Cache_Frontend_OutputR!c EZend_Cache_Frontend_FunctionRb =Zend_Cache_Frontend_FileRa ?Zend_Cache_Frontend_ClassR` 5Zend_Cache_ExceptionR_ +Zend_Cache_CoreR^ 1Zend_Cache_BackendR$] KZend_Cache_Backend_ZendPlatformR\ ;Zend_Cache_Backend_TestR[ ?Zend_Cache_Backend_SqliteR!Z EZend_Cache_Backend_MemcachedRY ;Zend_Cache_Backend_FileRX 9Zend_Cache_Backend_ApcRW Zend_AuthRV ?Zend_Auth_Storage_SessionR$U KZend_Auth_Storage_NonPersistentR T CZend_Auth_Storage_ExceptionRS -Zend_Auth_ResultRR 3Zend_Auth_ExceptionRQ =Zend_Auth_Adapter_OpenIdRP 9Zend_Auth_Adapter_LdapRO AZend_Auth_Adapter_InfoCardRN 9Zend_Auth_Adapter_HttpR)M UZend_Auth_Adapter_Http_Resolver_FileR.L _Zend_Auth_Adapter_Http_Resolver_ExceptionR K CZend_Auth_Adapter_ExceptionRJ =Zend_Auth_Adapter_DigestRI ?Zend_Auth_Adapter_DbTableRH Zend_AclRG 'Zend_Acl_RoleRF 9Zend_Acl_Role_RegistryR%E MZend_Acl_Role_Registry_ExceptionR   s iEmS4fI"c?hL6$






a
C
)
					q	S	*{Q%qGjG!lJ#uV5dD#jP>x[:                                    $" KZend_Gdata_App_Extension_AuthorR! =Zend_Gdata_App_ExceptionR  5Zend_Gdata_App_EntryR, [Zend_Gdata_App_CaptchaRequiredExceptionR# IZend_Gdata_App_BaseMediaSourceR 3Zend_Gdata_App_BaseR* WZend_Gdata_App_BadMethodCallExceptionR! EZend_Gdata_App_AuthExceptionR Zend_FormR /Zend_Form_SubFormR 3Zend_Form_ExceptionR /Zend_Form_ElementR ;Zend_Form_Element_XhtmlR AZend_Form_Element_TextareaR 9Zend_Form_Element_TextR =Zend_Form_Element_SubmitR =Zend_Form_Element_SelectR ;Zend_Form_Element_ResetR ;Zend_Form_Element_RadioR AZend_Form_Element_PasswordR" GZend_Form_Element_MultiselectR$ KZend_Form_Element_MultiCheckboxR ;Zend_Form_Element_MultiR ;Zend_Form_Element_ImageR
 =Zend_Form_Element_HiddenR	 9Zend_Form_Element_HashR  CZend_Form_Element_ExceptionR AZend_Form_Element_CheckboxR =Zend_Form_Element_ButtonR 9Zend_Form_DisplayGroupR# IZend_Form_Decorator_ViewScriptR# IZend_Form_Decorator_ViewHelperR ?Zend_Form_Decorator_LabelR ?Zend_Form_Decorator_ImageR   CZend_Form_Decorator_HtmlTagR% MZend_Form_Decorator_FormElementsR~ =Zend_Form_Decorator_FormR!} EZend_Form_Decorator_FieldsetR"| GZend_Form_Decorator_ExceptionR{ AZend_Form_Decorator_ErrorsR$z KZend_Form_Decorator_DtDdWrapperR$y KZend_Form_Decorator_DescriptionR!x EZend_Form_Decorator_CallbackR!w EZend_Form_Decorator_AbstractRv #Zend_FilterR+u YZend_Filter_Word_UnderscoreToSeparatorR&t OZend_Filter_Word_UnderscoreToDashR+s YZend_Filter_Word_UnderscoreToCamelCaseR*r WZend_Filter_Word_SeparatorToSeparatorR%q MZend_Filter_Word_SeparatorToDashR*p WZend_Filter_Word_SeparatorToCamelCaseR(o SZend_Filter_Word_Separator_AbstractR&n OZend_Filter_Word_DashToUnderscoreR%m MZend_Filter_Word_DashToSeparatorR%l MZend_Filter_Word_DashToCamelCaseR+k YZend_Filter_Word_CamelCaseToUnderscoreR*j WZend_Filter_Word_CamelCaseToSeparatorR%i MZend_Filter_Word_CamelCaseToDashRh 7Zend_Filter_StripTagsRg 9Zend_Filter_StringTrimRf ?Zend_Filter_StringToUpperRe ?Zend_Filter_StringToLowerRd 5Zend_Filter_RealPathRc ;Zend_Filter_PregReplaceRb +Zend_Filter_IntRa /Zend_Filter_InputR` 7Zend_Filter_InflectorR_ =Zend_Filter_HtmlEntitiesR^ 7Zend_Filter_ExceptionR] +Zend_Filter_DirR\ 1Zend_Filter_DigitsR[ 5Zend_Filter_BaseNameRZ /Zend_Filter_AlphaRY /Zend_Filter_AlnumRX Zend_FeedRW 'Zend_Feed_RssRV 3Zend_Feed_ExceptionRU 3Zend_Feed_Entry_RssRT 5Zend_Feed_Entry_AtomRS =Zend_Feed_Entry_AbstractRR /Zend_Feed_ElementRQ /Zend_Feed_BuilderRP =Zend_Feed_Builder_HeaderR$O KZend_Feed_Builder_Header_ItunesR N CZend_Feed_Builder_ExceptionRM ;Zend_Feed_Builder_EntryRL )Zend_Feed_AtomRK 1Zend_Feed_AbstractRJ )Zend_ExceptionRI !Zend_DebugRH Zend_DbRG 'Zend_Db_TableRF 5Zend_Db_Table_SelectR#E IZend_Db_Table_Select_ExceptionRD 5Zend_Db_Table_RowsetR#C IZend_Db_Table_Rowset_ExceptionR"B GZend_Db_Table_Rowset_AbstractRA /Zend_Db_Table_RowR @ CZend_Db_Table_Row_ExceptionR? AZend_Db_Table_Row_AbstractR> ;Zend_Db_Table_ExceptionR= 9Zend_Db_Table_AbstractR< /Zend_Db_StatementR; 7Zend_Db_Statement_PdoR: ?Zend_Db_Statement_Pdo_IbmR9 =Zend_Db_Statement_OracleR'8 QZend_Db_Statement_Oracle_ExceptionR7 =Zend_Db_Statement_MysqliR'6 QZend_Db_Statement_Mysqli_ExceptionR 5 CZend_Db_Statement_ExceptionR4 7Zend_Db_Statement_Db2R$3 KZend_Db_Statement_Db2_ExceptionR2 )Zend_Db_SelectR1 =Zend_Db_Select_ExceptionR0 -Zend_Db_ProfilerR   b  W0kE~V,hG+d.




p
J
#				m	>	rL'{cJ,X(eH0d6vK'~V4lD                        , [Zend_Gdata_Gapps_EmailListRecipientFeedR- ]Zend_Gdata_Gapps_EmailListRecipientEntryR$ KZend_Gdata_Gapps_EmailListQueryR# IZend_Gdata_Gapps_EmailListFeedR$  KZend_Gdata_Gapps_EmailListEntryR +Zend_Gdata_FeedR~ 5Zend_Gdata_ExtensionR} =Zend_Gdata_Extension_WhoR| AZend_Gdata_Extension_WhereR{ ?Zend_Gdata_Extension_WhenR$z KZend_Gdata_Extension_VisibilityR&y OZend_Gdata_Extension_TransparencyR"x GZend_Gdata_Extension_ReminderR-w ]Zend_Gdata_Extension_RecurrenceExceptionR$v KZend_Gdata_Extension_RecurrenceR u CZend_Gdata_Extension_RatingR't QZend_Gdata_Extension_OriginalEventR0s cZend_Gdata_Extension_OpenSearchTotalResultsR.r _Zend_Gdata_Extension_OpenSearchStartIndexR0q cZend_Gdata_Extension_OpenSearchItemsPerPageR"p GZend_Gdata_Extension_FeedLinkR*o WZend_Gdata_Extension_ExtendedPropertyR%n MZend_Gdata_Extension_EventStatusR#m IZend_Gdata_Extension_EntryLinkR"l GZend_Gdata_Extension_CommentsR&k OZend_Gdata_Extension_AttendeeTypeR(j SZend_Gdata_Extension_AttendeeStatusRi +Zend_Gdata_ExifRh 5Zend_Gdata_Exif_FeedR#g IZend_Gdata_Exif_Extension_TimeR#f IZend_Gdata_Exif_Extension_TagsR$e KZend_Gdata_Exif_Extension_ModelR#d IZend_Gdata_Exif_Extension_MakeR"c GZend_Gdata_Exif_Extension_IsoR,b [Zend_Gdata_Exif_Extension_ImageUniqueIdR$a KZend_Gdata_Exif_Extension_FStopR*` WZend_Gdata_Exif_Extension_FocalLengthR$_ KZend_Gdata_Exif_Extension_FlashR'^ QZend_Gdata_Exif_Extension_ExposureR'] QZend_Gdata_Exif_Extension_DistanceR\ 7Zend_Gdata_Exif_EntryR[ -Zend_Gdata_EntryRZ +Zend_Gdata_DocsRY 7Zend_Gdata_Docs_QueryR%X MZend_Gdata_Docs_DocumentListFeedR&W OZend_Gdata_Docs_DocumentListEntryRV 9Zend_Gdata_ClientLoginRU 3Zend_Gdata_CalendarR!T EZend_Gdata_Calendar_ListFeedR"S GZend_Gdata_Calendar_ListEntryR-R ]Zend_Gdata_Calendar_Extension_WebContentR+Q YZend_Gdata_Calendar_Extension_TimezoneR9P uZend_Gdata_Calendar_Extension_SendEventNotificationsR+O YZend_Gdata_Calendar_Extension_SelectedR+N YZend_Gdata_Calendar_Extension_QuickAddR'M QZend_Gdata_Calendar_Extension_LinkR)L UZend_Gdata_Calendar_Extension_HiddenR(K SZend_Gdata_Calendar_Extension_ColorR.J _Zend_Gdata_Calendar_Extension_AccessLevelR#I IZend_Gdata_Calendar_EventQueryR"H GZend_Gdata_Calendar_EventFeedR#G IZend_Gdata_Calendar_EventEntryRF 1Zend_Gdata_AuthSubRE )Zend_Gdata_AppRD 3Zend_Gdata_App_UtilR#C IZend_Gdata_App_MediaFileSourceRB ?Zend_Gdata_App_MediaEntryR2A gZend_Gdata_App_LoggingHttpClientAdapterSocketR@ AZend_Gdata_App_IOExceptionR,? [Zend_Gdata_App_InvalidArgumentExceptionR!> EZend_Gdata_App_HttpExceptionR$= KZend_Gdata_App_FeedSourceParentR#< IZend_Gdata_App_FeedEntryParentR; 3Zend_Gdata_App_FeedR: =Zend_Gdata_App_ExtensionR!9 EZend_Gdata_App_Extension_UriR%8 MZend_Gdata_App_Extension_UpdatedR#7 IZend_Gdata_App_Extension_TitleR"6 GZend_Gdata_App_Extension_TextR%5 MZend_Gdata_App_Extension_SummaryR&4 OZend_Gdata_App_Extension_SubtitleR$3 KZend_Gdata_App_Extension_SourceR$2 KZend_Gdata_App_Extension_RightsR'1 QZend_Gdata_App_Extension_PublishedR$0 KZend_Gdata_App_Extension_PersonR"/ GZend_Gdata_App_Extension_NameR". GZend_Gdata_App_Extension_LogoR"- GZend_Gdata_App_Extension_LinkR , CZend_Gdata_App_Extension_IdR"+ GZend_Gdata_App_Extension_IconR'* QZend_Gdata_App_Extension_GeneratorR#) IZend_Gdata_App_Extension_EmailR%( MZend_Gdata_App_Extension_ElementR#' IZend_Gdata_App_Extension_DraftR%& MZend_Gdata_App_Extension_ControlR)% UZend_Gdata_App_Extension_ContributorR%$ MZend_Gdata_App_Extension_ContentR&# OZend_Gdata_App_Extension_CategoryR   `  Z2iJ O1_9 hQ.


|
M
				^	/nP7wK^3S%d5Z.kH$W-          +d YZend_Gdata_Spreadsheets_Extension_CellR*c WZend_Gdata_Spreadsheets_DocumentQueryR&b OZend_Gdata_Spreadsheets_CellQueryR%a MZend_Gdata_Spreadsheets_CellFeedR&` OZend_Gdata_Spreadsheets_CellEntryR_ -Zend_Gdata_QueryR^ /Zend_Gdata_PhotosR ] CZend_Gdata_Photos_UserQueryR\ AZend_Gdata_Photos_UserFeedR [ CZend_Gdata_Photos_UserEntryRZ AZend_Gdata_Photos_TagEntryR!Y EZend_Gdata_Photos_PhotoQueryR X CZend_Gdata_Photos_PhotoFeedR!W EZend_Gdata_Photos_PhotoEntryR&V OZend_Gdata_Photos_Extension_WidthR'U QZend_Gdata_Photos_Extension_WeightR(T SZend_Gdata_Photos_Extension_VersionR%S MZend_Gdata_Photos_Extension_UserR*R WZend_Gdata_Photos_Extension_TimestampR*Q WZend_Gdata_Photos_Extension_ThumbnailR%P MZend_Gdata_Photos_Extension_SizeR)O UZend_Gdata_Photos_Extension_RotationR+N YZend_Gdata_Photos_Extension_QuotaLimitR-M ]Zend_Gdata_Photos_Extension_QuotaCurrentR)L UZend_Gdata_Photos_Extension_PositionR(K SZend_Gdata_Photos_Extension_PhotoIdR3J iZend_Gdata_Photos_Extension_NumPhotosRemainingR*I WZend_Gdata_Photos_Extension_NumPhotosR)H UZend_Gdata_Photos_Extension_NicknameR%G MZend_Gdata_Photos_Extension_NameR2F gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumR)E UZend_Gdata_Photos_Extension_LocationR#D IZend_Gdata_Photos_Extension_IdR'C QZend_Gdata_Photos_Extension_HeightR2B gZend_Gdata_Photos_Extension_CommentingEnabledR-A ]Zend_Gdata_Photos_Extension_CommentCountR'@ QZend_Gdata_Photos_Extension_ClientR)? UZend_Gdata_Photos_Extension_ChecksumR*> WZend_Gdata_Photos_Extension_BytesUsedR(= SZend_Gdata_Photos_Extension_AlbumIdR'< QZend_Gdata_Photos_Extension_AccessR#; IZend_Gdata_Photos_CommentEntryR!: EZend_Gdata_Photos_AlbumQueryR 9 CZend_Gdata_Photos_AlbumFeedR!8 EZend_Gdata_Photos_AlbumEntryR7 -Zend_Gdata_MediaR6 7Zend_Gdata_Media_FeedR*5 WZend_Gdata_Media_Extension_MediaTitleR.4 _Zend_Gdata_Media_Extension_MediaThumbnailR)3 UZend_Gdata_Media_Extension_MediaTextR02 cZend_Gdata_Media_Extension_MediaRestrictionR+1 YZend_Gdata_Media_Extension_MediaRatingR+0 YZend_Gdata_Media_Extension_MediaPlayerR-/ ]Zend_Gdata_Media_Extension_MediaKeywordsR). UZend_Gdata_Media_Extension_MediaHashR*- WZend_Gdata_Media_Extension_MediaGroupR0, cZend_Gdata_Media_Extension_MediaDescriptionR++ YZend_Gdata_Media_Extension_MediaCreditR.* _Zend_Gdata_Media_Extension_MediaCopyrightR,) [Zend_Gdata_Media_Extension_MediaContentR-( ]Zend_Gdata_Media_Extension_MediaCategoryR' 9Zend_Gdata_Media_EntryR& AZend_Gdata_Kind_EventEntryR% )Zend_Gdata_GeoR$ 3Zend_Gdata_Geo_FeedR$# KZend_Gdata_Geo_Extension_GmlPosR&" OZend_Gdata_Geo_Extension_GmlPointR)! UZend_Gdata_Geo_Extension_GeoRssWhereR  5Zend_Gdata_Geo_EntryR -Zend_Gdata_GbaseR" GZend_Gdata_Gbase_SnippetQueryR! EZend_Gdata_Gbase_SnippetFeedR" GZend_Gdata_Gbase_SnippetEntryR 9Zend_Gdata_Gbase_QueryR AZend_Gdata_Gbase_ItemQueryR ?Zend_Gdata_Gbase_ItemFeedR AZend_Gdata_Gbase_ItemEntryR 7Zend_Gdata_Gbase_FeedR- ]Zend_Gdata_Gbase_Extension_BaseAttributeR 9Zend_Gdata_Gbase_EntryR -Zend_Gdata_GappsR AZend_Gdata_Gapps_UserQueryR ?Zend_Gdata_Gapps_UserFeedR AZend_Gdata_Gapps_UserEntryR& OZend_Gdata_Gapps_ServiceExceptionR 9Zend_Gdata_Gapps_QueryR# IZend_Gdata_Gapps_NicknameQueryR" GZend_Gdata_Gapps_NicknameFeedR# IZend_Gdata_Gapps_NicknameEntryR% MZend_Gdata_Gapps_Extension_QuotaR(
 SZend_Gdata_Gapps_Extension_NicknameR$	 KZend_Gdata_Gapps_Extension_NameR% MZend_Gdata_Gapps_Extension_LoginR) UZend_Gdata_Gapps_Extension_EmailListR 9Zend_Gdata_Gapps_ErrorR- ]Zend_Gdata_Gapps_EmailListRecipientQueryR   \  i?\.pGc7
R"



n
@
				\	,	 T(tH"~W/	|a;U`7iB}P                          3@ iZend_InfoCard_Xml_Security_Transform_ExceptionR<? {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignatureR)> UZend_InfoCard_Xml_Security_ExceptionR= ?Zend_InfoCard_Xml_KeyInfoR&< OZend_InfoCard_Xml_KeyInfo_XmlDSigR&; OZend_InfoCard_Xml_KeyInfo_DefaultR': QZend_InfoCard_Xml_KeyInfo_AbstractR 9 CZend_InfoCard_Xml_ExceptionR#8 IZend_InfoCard_Xml_EncryptedKeyR$7 KZend_InfoCard_Xml_EncryptedDataR+6 YZend_InfoCard_Xml_EncryptedData_XmlEncR-5 ]Zend_InfoCard_Xml_EncryptedData_AbstractR4 ?Zend_InfoCard_Xml_ElementR 3 CZend_InfoCard_Xml_AssertionR%2 MZend_InfoCard_Xml_Assertion_SamlR1 ;Zend_InfoCard_ExceptionR%0 MZend_InfoCard_Exception_AbstractR/ 5Zend_InfoCard_ClaimsR. 5Zend_InfoCard_CipherR5- mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcR5, mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcR4+ kZend_InfoCard_Cipher_Symmetric_Adapter_AbstractR)* UZend_InfoCard_Cipher_Pki_Adapter_RsaR.) _Zend_InfoCard_Cipher_Pki_Adapter_AbstractR#( IZend_InfoCard_Cipher_ExceptionR$' KZend_InfoCard_Adapter_ExceptionR"& GZend_InfoCard_Adapter_DefaultR% 1Zend_Http_ResponseR$ 3Zend_Http_ExceptionR# 3Zend_Http_CookieJarR" -Zend_Http_CookieR! -Zend_Http_ClientR  AZend_Http_Client_ExceptionR" GZend_Http_Client_Adapter_TestR$ KZend_Http_Client_Adapter_SocketR# IZend_Http_Client_Adapter_ProxyR' QZend_Http_Client_Adapter_ExceptionR !Zend_GdataR 1Zend_Gdata_YouTubeR" GZend_Gdata_YouTube_VideoQueryR! EZend_Gdata_YouTube_VideoFeedR" GZend_Gdata_YouTube_VideoEntryR( SZend_Gdata_YouTube_UserProfileEntryR( SZend_Gdata_YouTube_SubscriptionFeedR) UZend_Gdata_YouTube_SubscriptionEntryR) UZend_Gdata_YouTube_PlaylistVideoFeedR* WZend_Gdata_YouTube_PlaylistVideoEntryR( SZend_Gdata_YouTube_PlaylistListFeedR) UZend_Gdata_YouTube_PlaylistListEntryR" GZend_Gdata_YouTube_MediaEntryR* WZend_Gdata_YouTube_Extension_UsernameR' QZend_Gdata_YouTube_Extension_TokenR( SZend_Gdata_YouTube_Extension_StatusR, [Zend_Gdata_YouTube_Extension_StatisticsR'
 QZend_Gdata_YouTube_Extension_StateR(	 SZend_Gdata_YouTube_Extension_SchoolR- ]Zend_Gdata_YouTube_Extension_ReleaseDateR. _Zend_Gdata_YouTube_Extension_RelationshipR& OZend_Gdata_YouTube_Extension_RacyR* WZend_Gdata_YouTube_Extension_PositionR, [Zend_Gdata_YouTube_Extension_OccupationR) UZend_Gdata_YouTube_Extension_NoEmbedR' QZend_Gdata_YouTube_Extension_MusicR( SZend_Gdata_YouTube_Extension_MoviesR,  [Zend_Gdata_YouTube_Extension_MediaGroupR. _Zend_Gdata_YouTube_Extension_MediaContentR*~ WZend_Gdata_YouTube_Extension_LocationR&} OZend_Gdata_YouTube_Extension_LinkR*| WZend_Gdata_YouTube_Extension_HometownR){ UZend_Gdata_YouTube_Extension_HobbiesR(z SZend_Gdata_YouTube_Extension_GenderR*y WZend_Gdata_YouTube_Extension_DurationR-x ]Zend_Gdata_YouTube_Extension_DescriptionR)w UZend_Gdata_YouTube_Extension_ControlR)v UZend_Gdata_YouTube_Extension_CompanyR'u QZend_Gdata_YouTube_Extension_BooksR%t MZend_Gdata_YouTube_Extension_AgeR#s IZend_Gdata_YouTube_ContactFeedR$r KZend_Gdata_YouTube_ContactEntryR#q IZend_Gdata_YouTube_CommentFeedR$p KZend_Gdata_YouTube_CommentEntryRo ;Zend_Gdata_SpreadsheetsR*n WZend_Gdata_Spreadsheets_WorksheetFeedR+m YZend_Gdata_Spreadsheets_WorksheetEntryR,l [Zend_Gdata_Spreadsheets_SpreadsheetFeedR-k ]Zend_Gdata_Spreadsheets_SpreadsheetEntryR&j OZend_Gdata_Spreadsheets_ListQueryR%i MZend_Gdata_Spreadsheets_ListFeedR&h OZend_Gdata_Spreadsheets_ListEntryR/g aZend_Gdata_Spreadsheets_Extension_RowCountR-f ]Zend_Gdata_Spreadsheets_Extension_CustomR/e aZend_Gdata_Spreadsheets_Extension_ColCountR   y xG1nP< kR4mL+	tUD(




n
A
					[	5	jP+mR8y]> gH,tK/gK1{V9a?"                    9 #Zend_OpenIdR8 5Zend_OpenId_ProviderR7 ?Zend_OpenId_Provider_UserR&6 OZend_OpenId_Provider_User_SessionR!5 EZend_OpenId_Provider_StorageR&4 OZend_OpenId_Provider_Storage_FileR3 7Zend_OpenId_ExtensionR2 AZend_OpenId_Extension_SregR1 7Zend_OpenId_ExceptionR0 5Zend_OpenId_ConsumerR!/ EZend_OpenId_Consumer_StorageR&. OZend_OpenId_Consumer_Storage_FileR- Zend_MimeR, )Zend_Mime_PartR+ /Zend_Mime_MessageR* 3Zend_Mime_ExceptionR) -Zend_Mime_DecodeR( #Zend_MemoryR' /Zend_Memory_ValueR& 3Zend_Memory_ManagerR% 7Zend_Memory_ExceptionR$ 7Zend_Memory_ContainerR"# GZend_Memory_Container_MovableR!" EZend_Memory_Container_LockedR!! EZend_Memory_AccessControllerR  3Zend_Measure_WeightR 3Zend_Measure_VolumeR% MZend_Measure_Viscosity_KinematicR# IZend_Measure_Viscosity_DynamicR 3Zend_Measure_TorqueR =Zend_Measure_TemperatureR 1Zend_Measure_SpeedR 7Zend_Measure_PressureR 1Zend_Measure_PowerR 3Zend_Measure_NumberR 9Zend_Measure_LightnessR 3Zend_Measure_LengthR ?Zend_Measure_IlluminationR 9Zend_Measure_FrequencyR 1Zend_Measure_ForceR =Zend_Measure_Flow_VolumeR 9Zend_Measure_Flow_MoleR 9Zend_Measure_Flow_MassR 9Zend_Measure_ExceptionR 3Zend_Measure_EnergyR 5Zend_Measure_DensityR 5Zend_Measure_CurrentR 
 CZend_Measure_Cooking_WeightR 	 CZend_Measure_Cooking_VolumeR =Zend_Measure_CapacitanceR 3Zend_Measure_BinaryR /Zend_Measure_AreaR 1Zend_Measure_AngleR ?Zend_Measure_AccelerationR 7Zend_Measure_AbstractR Zend_MailR =Zend_Mail_Transport_SmtpR!  EZend_Mail_Transport_SendmailR" GZend_Mail_Transport_ExceptionR!~ EZend_Mail_Transport_AbstractR} /Zend_Mail_StorageR'| QZend_Mail_Storage_Writable_MaildirR{ 9Zend_Mail_Storage_Pop3Rz 9Zend_Mail_Storage_MboxRy ?Zend_Mail_Storage_MaildirRx 9Zend_Mail_Storage_ImapRw =Zend_Mail_Storage_FolderR"v GZend_Mail_Storage_Folder_MboxR%u MZend_Mail_Storage_Folder_MaildirR t CZend_Mail_Storage_ExceptionRs AZend_Mail_Storage_AbstractRr ;Zend_Mail_Protocol_SmtpR'q QZend_Mail_Protocol_Smtp_Auth_PlainR'p QZend_Mail_Protocol_Smtp_Auth_LoginR)o UZend_Mail_Protocol_Smtp_Auth_Crammd5Rn ;Zend_Mail_Protocol_Pop3Rm ;Zend_Mail_Protocol_ImapR!l EZend_Mail_Protocol_ExceptionR k CZend_Mail_Protocol_AbstractRj )Zend_Mail_PartRi /Zend_Mail_MessageRh 3Zend_Mail_ExceptionRg Zend_LogRf 9Zend_Log_Writer_StreamRe 5Zend_Log_Writer_NullRd 5Zend_Log_Writer_MockRc 1Zend_Log_Writer_DbRb =Zend_Log_Writer_AbstractRa 9Zend_Log_Formatter_XmlR` ?Zend_Log_Formatter_SimpleR_ =Zend_Log_Filter_SuppressR^ =Zend_Log_Filter_PriorityR] ;Zend_Log_Filter_MessageR\ 1Zend_Log_ExceptionR[ #Zend_LocaleRZ -Zend_Locale_MathRY =Zend_Locale_Math_PhpMathRX AZend_Locale_Math_ExceptionRW 1Zend_Locale_FormatRV 7Zend_Locale_ExceptionRU -Zend_Locale_DataR!T EZend_Locale_Data_TranslationRS #Zend_LoaderRR =Zend_Loader_PluginLoaderR'Q QZend_Loader_PluginLoader_ExceptionRP 7Zend_Loader_ExceptionRO Zend_LdapRN 3Zend_Ldap_ExceptionRM #Zend_LayoutRL 7Zend_Layout_ExceptionR)K UZend_Layout_Controller_Plugin_LayoutR0J cZend_Layout_Controller_Action_Helper_LayoutRI Zend_JsonRH 3Zend_Json_ExceptionRG /Zend_Json_EncoderRF /Zend_Json_DecoderRE 'Zend_InfoCardR-D ]Zend_InfoCard_Xml_SecurityTokenReferenceRC AZend_InfoCard_Xml_SecurityR)B UZend_InfoCard_Xml_Security_TransformR4A kZend_InfoCard_Xml_Security_Transform_XmlExcC14NR   b  kU9fH*	nK+j7]0




w
S
=
&
					h	?	w<FRb3[;iD3iK{?                                          F Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitiveR8 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumRI Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitiveR5 mZend_Search_Lucene_Analysis_Analyzer_Common_TextRF Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiveR 7Zend_Search_ExceptionR -Zend_Rest_ServerR AZend_Rest_Server_ExceptionR 3Zend_Rest_ExceptionR -Zend_Rest_ClientR ;Zend_Rest_Client_ResultR AZend_Rest_Client_ExceptionR 'Zend_RegistryR Zend_PdfR! EZend_Pdf_UpdateInfoContainerR -Zend_Pdf_TrailerR ;Zend_Pdf_Trailer_KeeperR
 AZend_Pdf_Trailer_GeneratorR	 )Zend_Pdf_StyleR 7Zend_Pdf_StringParserR /Zend_Pdf_ResourceR# IZend_Pdf_Resource_ImageFactoryR ;Zend_Pdf_Resource_ImageR! EZend_Pdf_Resource_Image_TiffR  CZend_Pdf_Resource_Image_PngR! EZend_Pdf_Resource_Image_JpegR 9Zend_Pdf_Resource_FontR!  EZend_Pdf_Resource_Font_Type0R" GZend_Pdf_Resource_Font_SimpleR+~ YZend_Pdf_Resource_Font_Simple_StandardR8} sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsR6| oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanR7{ qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicR;z yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicR5y mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldR2x gZend_Pdf_Resource_Font_Simple_Standard_SymbolR<w {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueRAv Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliqueR9u uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldR5t mZend_Pdf_Resource_Font_Simple_Standard_HelveticaR:s wZend_Pdf_Resource_Font_Simple_Standard_CourierObliqueR>r Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliqueR7q qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldR3p iZend_Pdf_Resource_Font_Simple_Standard_CourierR)o UZend_Pdf_Resource_Font_Simple_ParsedR2n gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypeR*m WZend_Pdf_Resource_Font_FontDescriptorR%l MZend_Pdf_Resource_Font_ExtractedR#k IZend_Pdf_Resource_Font_CidFontR,j [Zend_Pdf_Resource_Font_CidFont_TrueTypeRi /Zend_Pdf_PhpArrayRh +Zend_Pdf_ParserRg 9Zend_Pdf_Parser_StreamRf 'Zend_Pdf_PageRe )Zend_Pdf_ImageRd 'Zend_Pdf_FontR c CZend_Pdf_Filter_CompressionR$b KZend_Pdf_Filter_Compression_LzwR&a OZend_Pdf_Filter_Compression_FlateR` =Zend_Pdf_Filter_AsciiHexR_ ;Zend_Pdf_Filter_Ascii85R"^ GZend_Pdf_FileParserDataSourceR)] UZend_Pdf_FileParserDataSource_StringR'\ QZend_Pdf_FileParserDataSource_FileR[ 3Zend_Pdf_FileParserRZ ?Zend_Pdf_FileParser_ImageR"Y GZend_Pdf_FileParser_Image_PngRX =Zend_Pdf_FileParser_FontR&W OZend_Pdf_FileParser_Font_OpenTypeR/V aZend_Pdf_FileParser_Font_OpenType_TrueTypeRU 1Zend_Pdf_ExceptionRT ;Zend_Pdf_ElementFactoryR"S GZend_Pdf_ElementFactory_ProxyRR -Zend_Pdf_ElementRQ ;Zend_Pdf_Element_StringR#P IZend_Pdf_Element_String_BinaryRO ;Zend_Pdf_Element_StreamRN AZend_Pdf_Element_ReferenceR%M MZend_Pdf_Element_Reference_TableR'L QZend_Pdf_Element_Reference_ContextRK ;Zend_Pdf_Element_ObjectR#J IZend_Pdf_Element_Object_StreamRI =Zend_Pdf_Element_NumericRH 7Zend_Pdf_Element_NullRG 7Zend_Pdf_Element_NameR F CZend_Pdf_Element_DictionaryRE =Zend_Pdf_Element_BooleanRD 9Zend_Pdf_Element_ArrayRC )Zend_Pdf_ColorRB 1Zend_Pdf_Color_RgbRA 3Zend_Pdf_Color_HtmlR@ =Zend_Pdf_Color_GrayScaleR? 3Zend_Pdf_Color_CmykR> 'Zend_Pdf_CmapR= AZend_Pdf_Cmap_TrimmedTableR!< EZend_Pdf_Cmap_SegmentToDeltaR; AZend_Pdf_Cmap_ByteEncodingR&: OZend_Pdf_Cmap_ByteEncoding_StaticR   V  z>
y; mI$b5R#




[
:				p	:	~M%\1j={H\)|W.b9a5                      &q OZend_Service_Amazon_ListmaniaListRp =Zend_Service_Amazon_ItemRo ?Zend_Service_Amazon_ImageR(n SZend_Service_Amazon_EditorialReviewR'm QZend_Service_Amazon_CustomerReviewR$l KZend_Service_Amazon_AccessoriesRk 5Zend_Service_AkismetRj 7Zend_Service_AbstractRi 9Zend_Server_ReflectionR'h QZend_Server_Reflection_ReturnValueR%g MZend_Server_Reflection_PrototypeR%f MZend_Server_Reflection_ParameterR e CZend_Server_Reflection_NodeR"d GZend_Server_Reflection_MethodR$c KZend_Server_Reflection_FunctionR-b ]Zend_Server_Reflection_Function_AbstractR%a MZend_Server_Reflection_ExceptionR!` EZend_Server_Reflection_ClassR_ 7Zend_Server_ExceptionR^ 5Zend_Server_AbstractR] 1Zend_Search_LuceneR$\ KZend_Search_Lucene_Storage_FileR+[ YZend_Search_Lucene_Storage_File_MemoryR/Z aZend_Search_Lucene_Storage_File_FilesystemR)Y UZend_Search_Lucene_Storage_DirectoryR4X kZend_Search_Lucene_Storage_Directory_FilesystemR%W MZend_Search_Lucene_Search_WeightR*V WZend_Search_Lucene_Search_Weight_TermR,U [Zend_Search_Lucene_Search_Weight_PhraseR/T aZend_Search_Lucene_Search_Weight_MultiTermR+S YZend_Search_Lucene_Search_Weight_EmptyR-R ]Zend_Search_Lucene_Search_Weight_BooleanR)Q UZend_Search_Lucene_Search_SimilarityR1P eZend_Search_Lucene_Search_Similarity_DefaultR)O UZend_Search_Lucene_Search_QueryTokenR3N iZend_Search_Lucene_Search_QueryParserExceptionR1M eZend_Search_Lucene_Search_QueryParserContextR*L WZend_Search_Lucene_Search_QueryParserR)K UZend_Search_Lucene_Search_QueryLexerR'J QZend_Search_Lucene_Search_QueryHitR)I UZend_Search_Lucene_Search_QueryEntryR.H _Zend_Search_Lucene_Search_QueryEntry_TermR2G gZend_Search_Lucene_Search_QueryEntry_SubqueryR0F cZend_Search_Lucene_Search_QueryEntry_PhraseR$E KZend_Search_Lucene_Search_QueryR-D ]Zend_Search_Lucene_Search_Query_WildcardR)C UZend_Search_Lucene_Search_Query_TermR*B WZend_Search_Lucene_Search_Query_RangeR+A YZend_Search_Lucene_Search_Query_PhraseR.@ _Zend_Search_Lucene_Search_Query_MultiTermR2? gZend_Search_Lucene_Search_Query_InsignificantR*> WZend_Search_Lucene_Search_Query_FuzzyR*= WZend_Search_Lucene_Search_Query_EmptyR,< [Zend_Search_Lucene_Search_Query_BooleanR:; wZend_Search_Lucene_Search_BooleanExpressionRecognizerR: =Zend_Search_Lucene_ProxyR%9 MZend_Search_Lucene_PriorityQueueR#8 IZend_Search_Lucene_LockManagerR$7 KZend_Search_Lucene_Index_WriterR&6 OZend_Search_Lucene_Index_TermInfoR"5 GZend_Search_Lucene_Index_TermR+4 YZend_Search_Lucene_Index_SegmentWriterR83 sZend_Search_Lucene_Index_SegmentWriter_StreamWriterR:2 wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterR+1 YZend_Search_Lucene_Index_SegmentMergerR60 oZend_Search_Lucene_Index_SegmentInfoPriorityQueueR)/ UZend_Search_Lucene_Index_SegmentInfoR'. QZend_Search_Lucene_Index_FieldInfoR.- _Zend_Search_Lucene_Index_DictionaryLoaderR!, EZend_Search_Lucene_FSMActionR+ 9Zend_Search_Lucene_FSMR* =Zend_Search_Lucene_FieldR!) EZend_Search_Lucene_ExceptionR ( CZend_Search_Lucene_DocumentR%' MZend_Search_Lucene_Document_HtmlR,& [Zend_Search_Lucene_Analysis_TokenFilterR6% oZend_Search_Lucene_Analysis_TokenFilter_StopWordsR7$ qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsR:# wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8R6" oZend_Search_Lucene_Analysis_TokenFilter_LowerCaseR&! OZend_Search_Lucene_Analysis_TokenR)  UZend_Search_Lucene_Analysis_AnalyzerR0 cZend_Search_Lucene_Analysis_Analyzer_CommonR8 sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumRI Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitiveR5 mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8R   e  qF*gH)zM sS0qI.



k
A
				g	8	tJp@jC#V/_=z_A"y_@%~[8                             !V EZend_Translate_Adapter_XmlTmR!U EZend_Translate_Adapter_XliffRT AZend_Translate_Adapter_TmxRS AZend_Translate_Adapter_TbxRR ?Zend_Translate_Adapter_QtR#Q IZend_Translate_Adapter_GettextRP AZend_Translate_Adapter_CsvR!O EZend_Translate_Adapter_ArrayRN 'Zend_TimeSyncRM 1Zend_TimeSync_SntpRL 9Zend_TimeSync_ProtocolRK /Zend_TimeSync_NtpRJ ;Zend_TimeSync_ExceptionRI %Zend_SessionR)H UZend_Session_Validator_HttpUserAgentR$G KZend_Session_Validator_AbstractRF 9Zend_Session_NamespaceRE 9Zend_Session_ExceptionRD 7Zend_Session_AbstractRC 1Zend_Service_YahooR$B KZend_Service_Yahoo_WebResultSetR!A EZend_Service_Yahoo_WebResultR&@ OZend_Service_Yahoo_VideoResultSetR#? IZend_Service_Yahoo_VideoResultR!> EZend_Service_Yahoo_ResultSetR= ?Zend_Service_Yahoo_ResultR)< UZend_Service_Yahoo_PageDataResultSetR&; OZend_Service_Yahoo_PageDataResultR%: MZend_Service_Yahoo_NewsResultSetR"9 GZend_Service_Yahoo_NewsResultR&8 OZend_Service_Yahoo_LocalResultSetR#7 IZend_Service_Yahoo_LocalResultR+6 YZend_Service_Yahoo_InlinkDataResultSetR(5 SZend_Service_Yahoo_InlinkDataResultR&4 OZend_Service_Yahoo_ImageResultSetR#3 IZend_Service_Yahoo_ImageResultR2 =Zend_Service_Yahoo_ImageR1 ;Zend_Service_TechnoratiR#0 IZend_Service_Technorati_WeblogR"/ GZend_Service_Technorati_UtilsR*. WZend_Service_Technorati_TagsResultSetR'- QZend_Service_Technorati_TagsResultR), UZend_Service_Technorati_TagResultSetR&+ OZend_Service_Technorati_TagResultR,* [Zend_Service_Technorati_SearchResultSetR)) UZend_Service_Technorati_SearchResultR&( OZend_Service_Technorati_ResultSetR#' IZend_Service_Technorati_ResultR*& WZend_Service_Technorati_KeyInfoResultR*% WZend_Service_Technorati_GetInfoResultR&$ OZend_Service_Technorati_ExceptionR1# eZend_Service_Technorati_DailyCountsResultSetR." _Zend_Service_Technorati_DailyCountsResultR,! [Zend_Service_Technorati_CosmosResultSetR)  UZend_Service_Technorati_CosmosResultR+ YZend_Service_Technorati_BlogInfoResultR# IZend_Service_Technorati_AuthorR ;Zend_Service_StrikeIronR( SZend_Service_StrikeIron_ZipCodeInfoR2 gZend_Service_StrikeIron_USAddressVerificationR- ]Zend_Service_StrikeIron_SalesUseTaxBasicR& OZend_Service_StrikeIron_ExceptionR& OZend_Service_StrikeIron_DecoratorR! EZend_Service_StrikeIron_BaseR ;Zend_Service_SlideShareR& OZend_Service_SlideShare_SlideShowR& OZend_Service_SlideShare_ExceptionR 1Zend_Service_SimpyR$ KZend_Service_Simpy_WatchlistSetR* WZend_Service_Simpy_WatchlistFilterSetR' QZend_Service_Simpy_WatchlistFilterR! EZend_Service_Simpy_WatchlistR ?Zend_Service_Simpy_TagSetR 9Zend_Service_Simpy_TagR AZend_Service_Simpy_NoteSetR ;Zend_Service_Simpy_NoteR
 AZend_Service_Simpy_LinkSetR!	 EZend_Service_Simpy_LinkQueryR ;Zend_Service_Simpy_LinkR 7Zend_Service_NirvanixR# IZend_Service_Nirvanix_ResponseR) UZend_Service_Nirvanix_Namespace_ImfsR) UZend_Service_Nirvanix_Namespace_BaseR$ KZend_Service_Nirvanix_ExceptionR 3Zend_Service_FlickrR" GZend_Service_Flickr_ResultSetR  AZend_Service_Flickr_ResultR ?Zend_Service_Flickr_ImageR~ 9Zend_Service_ExceptionR} 9Zend_Service_DeliciousR&| OZend_Service_Delicious_SimplePostR${ KZend_Service_Delicious_PostListR z CZend_Service_Delicious_PostR%y MZend_Service_Delicious_ExceptionR x CZend_Service_AudioscrobblerRw 3Zend_Service_AmazonR'v QZend_Service_Amazon_SimilarProductR"u GZend_Service_Amazon_ResultSetRt ?Zend_Service_Amazon_QueryR!s EZend_Service_Amazon_OfferSetRr ?Zend_Service_Amazon_OfferR   r  xgH,qV9|Z8oO1kV;




y
U
/

				}	Z	/	}Y7cAl4Z,f=eD"`E%yU3         H =Zend_XmlRpc_Value_ScalarRG 7Zend_XmlRpc_Value_NilRF ?Zend_XmlRpc_Value_IntegerR E CZend_XmlRpc_Value_ExceptionRD =Zend_XmlRpc_Value_DoubleRC AZend_XmlRpc_Value_DateTimeR!B EZend_XmlRpc_Value_CollectionRA ?Zend_XmlRpc_Value_BooleanR@ =Zend_XmlRpc_Value_Base64R? ;Zend_XmlRpc_Value_ArrayR> 1Zend_XmlRpc_ServerR= =Zend_XmlRpc_Server_FaultR!< EZend_XmlRpc_Server_ExceptionR; =Zend_XmlRpc_Server_CacheR: 5Zend_XmlRpc_ResponseR9 ?Zend_XmlRpc_Response_HttpR8 3Zend_XmlRpc_RequestR7 ?Zend_XmlRpc_Request_StdinR6 =Zend_XmlRpc_Request_HttpR5 /Zend_XmlRpc_FaultR4 7Zend_XmlRpc_ExceptionR3 1Zend_XmlRpc_ClientR#2 IZend_XmlRpc_Client_ServerProxyR+1 YZend_XmlRpc_Client_ServerIntrospectionR+0 YZend_XmlRpc_Client_IntrospectExceptionR%/ MZend_XmlRpc_Client_HttpExceptionR&. OZend_XmlRpc_Client_FaultExceptionR!- EZend_XmlRpc_Client_ExceptionR, Zend_ViewR+ 5Zend_View_Helper_UrlR* AZend_View_Helper_TranslateR!) EZend_View_Helper_PlaceholderR*( WZend_View_Helper_Placeholder_RegistryR4' kZend_View_Helper_Placeholder_Registry_ExceptionR+& YZend_View_Helper_Placeholder_ContainerR6% oZend_View_Helper_Placeholder_Container_StandaloneR5$ mZend_View_Helper_Placeholder_Container_ExceptionR4# kZend_View_Helper_Placeholder_Container_AbstractR!" EZend_View_Helper_PartialLoopR! =Zend_View_Helper_PartialR'  QZend_View_Helper_Partial_ExceptionR ;Zend_View_Helper_LayoutR 7Zend_View_Helper_JsonR" GZend_View_Helper_InlineScriptR ?Zend_View_Helper_HtmlListR AZend_View_Helper_HeadTitleR AZend_View_Helper_HeadStyleR  CZend_View_Helper_HeadScriptR ?Zend_View_Helper_HeadMetaR ?Zend_View_Helper_HeadLinkR" GZend_View_Helper_FormTextareaR ?Zend_View_Helper_FormTextR  CZend_View_Helper_FormSubmitR  CZend_View_Helper_FormSelectR AZend_View_Helper_FormResetR AZend_View_Helper_FormRadioR" GZend_View_Helper_FormPasswordR ?Zend_View_Helper_FormNoteR' QZend_View_Helper_FormMultiCheckboxR AZend_View_Helper_FormLabelR AZend_View_Helper_FormImageR  CZend_View_Helper_FormHiddenR
 ?Zend_View_Helper_FormFileR 	 CZend_View_Helper_FormErrorsR! EZend_View_Helper_FormElementR" GZend_View_Helper_FormCheckboxR  CZend_View_Helper_FormButtonR 7Zend_View_Helper_FormR ?Zend_View_Helper_FieldsetR =Zend_View_Helper_DoctypeR! EZend_View_Helper_DeclareVarsR ;Zend_View_Helper_ActionR  3Zend_View_ExceptionR 1Zend_View_AbstractR~ %Zend_VersionR} 'Zend_ValidateR| AZend_Validate_StringLengthR{ 3Zend_Validate_RegexRz 9Zend_Validate_NotEmptyRy 9Zend_Validate_LessThanRx -Zend_Validate_IpRw /Zend_Validate_IntRv 7Zend_Validate_InArrayRu ;Zend_Validate_IdenticalRt 9Zend_Validate_HostnameRs ?Zend_Validate_Hostname_SeRr ?Zend_Validate_Hostname_NoRq ?Zend_Validate_Hostname_LiRp ?Zend_Validate_Hostname_HuRo ?Zend_Validate_Hostname_FiRn ?Zend_Validate_Hostname_DeRm ?Zend_Validate_Hostname_ChRl ?Zend_Validate_Hostname_AtRk /Zend_Validate_HexRj ?Zend_Validate_GreaterThanRi 3Zend_Validate_FloatRh ;Zend_Validate_ExceptionRg AZend_Validate_EmailAddressRf 5Zend_Validate_DigitsRe 1Zend_Validate_DateRd 3Zend_Validate_CcnumRc 7Zend_Validate_BetweenRb 7Zend_Validate_BarcodeRa AZend_Validate_Barcode_UpcAR ` CZend_Validate_Barcode_Ean13R_ 3Zend_Validate_AlphaR^ 3Zend_Validate_AlnumR] 9Zend_Validate_AbstractR\ Zend_UriR[ 'Zend_Uri_HttpRZ 1Zend_Uri_ExceptionRY )Zend_TranslateRX =Zend_Translate_ExceptionRW 9Zend_Translate_AdapterR   k  oF' g:_7}]5}Z9&





Y
*				S	N$zM!h<sI$[/}dG+kL#wU3                    3 ?Zend_Db_Adapter_Pdo_PgsqlS2 ;Zend_Db_Adapter_Pdo_OciS1 ?Zend_Db_Adapter_Pdo_MysqlS0 ?Zend_Db_Adapter_Pdo_MssqlS/ ;Zend_Db_Adapter_Pdo_IbmS . CZend_Db_Adapter_Pdo_Ibm_IdsS - CZend_Db_Adapter_Pdo_Ibm_Db2S!, EZend_Db_Adapter_Pdo_AbstractS+ 9Zend_Db_Adapter_OracleS%* MZend_Db_Adapter_Oracle_ExceptionS) 9Zend_Db_Adapter_MysqliS%( MZend_Db_Adapter_Mysqli_ExceptionS' ?Zend_Db_Adapter_ExceptionS& 3Zend_Db_Adapter_Db2S"% GZend_Db_Adapter_Db2_ExceptionS$ =Zend_Db_Adapter_AbstractS# Zend_DateS" 3Zend_Date_ExceptionS! 5Zend_Date_DateObjectS  -Zend_Date_CitiesS 'Zend_CurrencyS ;Zend_Currency_ExceptionS! EZend_Controller_Router_RouteS( SZend_Controller_Router_Route_StaticS' QZend_Controller_Router_Route_RegexS( SZend_Controller_Router_Route_ModuleS# IZend_Controller_Router_RewriteS% MZend_Controller_Router_ExceptionS$ KZend_Controller_Router_AbstractS" GZend_Controller_Response_HttpS' QZend_Controller_Response_ExceptionS! EZend_Controller_Response_CliS& OZend_Controller_Response_AbstractS# IZend_Controller_Request_SimpleS! EZend_Controller_Request_HttpS& OZend_Controller_Request_ExceptionS& OZend_Controller_Request_Apache404S% MZend_Controller_Request_AbstractS( SZend_Controller_Plugin_ErrorHandlerS" GZend_Controller_Plugin_BrokerS' QZend_Controller_Plugin_ActionStackS$
 KZend_Controller_Plugin_AbstractS	 7Zend_Controller_FrontS ?Zend_Controller_ExceptionS( SZend_Controller_Dispatcher_StandardS) UZend_Controller_Dispatcher_ExceptionS( SZend_Controller_Dispatcher_AbstractS 9Zend_Controller_ActionS( SZend_Controller_Action_HelperBrokerS/ aZend_Controller_Action_Helper_ViewRendererS& OZend_Controller_Action_Helper_UrlS-  ]Zend_Controller_Action_Helper_RedirectorS' QZend_Controller_Action_Helper_JsonS1~ eZend_Controller_Action_Helper_FlashMessengerS0} cZend_Controller_Action_Helper_ContextSwitchS<| {Zend_Controller_Action_Helper_AutoCompleteScriptaculousS3{ iZend_Controller_Action_Helper_AutoCompleteDojoS8z sZend_Controller_Action_Helper_AutoComplete_AbstractS.y _Zend_Controller_Action_Helper_AjaxContextS.x _Zend_Controller_Action_Helper_ActionStackS+w YZend_Controller_Action_Helper_AbstractS%v MZend_Controller_Action_ExceptionSu 3Zend_Console_GetoptS"t GZend_Console_Getopt_ExceptionSs #Zend_ConfigSr +Zend_Config_XmlSq +Zend_Config_IniSp 7Zend_Config_ExceptionSo !Zend_CacheSn =Zend_Cache_Frontend_PageSm AZend_Cache_Frontend_OutputS!l EZend_Cache_Frontend_FunctionSk =Zend_Cache_Frontend_FileSj ?Zend_Cache_Frontend_ClassSi 5Zend_Cache_ExceptionSh +Zend_Cache_CoreSg 1Zend_Cache_BackendS$f KZend_Cache_Backend_ZendPlatformSe ;Zend_Cache_Backend_TestSd ?Zend_Cache_Backend_SqliteS!c EZend_Cache_Backend_MemcachedSb ;Zend_Cache_Backend_FileSa 9Zend_Cache_Backend_ApcS` Zend_AuthS_ ?Zend_Auth_Storage_SessionS$^ KZend_Auth_Storage_NonPersistentS ] CZend_Auth_Storage_ExceptionS\ -Zend_Auth_ResultS[ 3Zend_Auth_ExceptionSZ =Zend_Auth_Adapter_OpenIdSY 9Zend_Auth_Adapter_LdapSX AZend_Auth_Adapter_InfoCardSW 9Zend_Auth_Adapter_HttpS)V UZend_Auth_Adapter_Http_Resolver_FileS.U _Zend_Auth_Adapter_Http_Resolver_ExceptionS T CZend_Auth_Adapter_ExceptionSS =Zend_Auth_Adapter_DigestSR ?Zend_Auth_Adapter_DbTableSQ Zend_AclSP 'Zend_Acl_RoleSO 9Zend_Acl_Role_RegistryS%N MZend_Acl_Role_Registry_ExceptionSM /Zend_Acl_ResourceSL 1Zend_Acl_ExceptionSK /Zend_XmlRpc_ValueRJ =Zend_XmlRpc_Value_StructRI =Zend_XmlRpc_Value_StringR   t lS2e:]9q[K8!bH.





v
\
?
$
					}	]	@	h9c:pK&hGhI(a9nO,W;                                    #' IZend_Gdata_App_BaseMediaSourceS& 3Zend_Gdata_App_BaseS*% WZend_Gdata_App_BadMethodCallExceptionS!$ EZend_Gdata_App_AuthExceptionS# Zend_FormS" /Zend_Form_SubFormS! 3Zend_Form_ExceptionS  /Zend_Form_ElementS ;Zend_Form_Element_XhtmlS AZend_Form_Element_TextareaS 9Zend_Form_Element_TextS =Zend_Form_Element_SubmitS =Zend_Form_Element_SelectS ;Zend_Form_Element_ResetS ;Zend_Form_Element_RadioS AZend_Form_Element_PasswordS" GZend_Form_Element_MultiselectS$ KZend_Form_Element_MultiCheckboxS ;Zend_Form_Element_MultiS ;Zend_Form_Element_ImageS =Zend_Form_Element_HiddenS 9Zend_Form_Element_HashS  CZend_Form_Element_ExceptionS AZend_Form_Element_CheckboxS =Zend_Form_Element_ButtonS 9Zend_Form_DisplayGroupS# IZend_Form_Decorator_ViewScriptS# IZend_Form_Decorator_ViewHelperS ?Zend_Form_Decorator_LabelS
 ?Zend_Form_Decorator_ImageS 	 CZend_Form_Decorator_HtmlTagS% MZend_Form_Decorator_FormElementsS =Zend_Form_Decorator_FormS! EZend_Form_Decorator_FieldsetS" GZend_Form_Decorator_ExceptionS AZend_Form_Decorator_ErrorsS$ KZend_Form_Decorator_DtDdWrapperS$ KZend_Form_Decorator_DescriptionS! EZend_Form_Decorator_CallbackS!  EZend_Form_Decorator_AbstractS #Zend_FilterS+~ YZend_Filter_Word_UnderscoreToSeparatorS&} OZend_Filter_Word_UnderscoreToDashS+| YZend_Filter_Word_UnderscoreToCamelCaseS*{ WZend_Filter_Word_SeparatorToSeparatorS%z MZend_Filter_Word_SeparatorToDashS*y WZend_Filter_Word_SeparatorToCamelCaseS(x SZend_Filter_Word_Separator_AbstractS&w OZend_Filter_Word_DashToUnderscoreS%v MZend_Filter_Word_DashToSeparatorS%u MZend_Filter_Word_DashToCamelCaseS+t YZend_Filter_Word_CamelCaseToUnderscoreS*s WZend_Filter_Word_CamelCaseToSeparatorS%r MZend_Filter_Word_CamelCaseToDashSq 7Zend_Filter_StripTagsSp 9Zend_Filter_StringTrimSo ?Zend_Filter_StringToUpperSn ?Zend_Filter_StringToLowerSm 5Zend_Filter_RealPathSl ;Zend_Filter_PregReplaceSk +Zend_Filter_IntSj /Zend_Filter_InputSi 7Zend_Filter_InflectorSh =Zend_Filter_HtmlEntitiesSg 7Zend_Filter_ExceptionSf +Zend_Filter_DirSe 1Zend_Filter_DigitsSd 5Zend_Filter_BaseNameSc /Zend_Filter_AlphaSb /Zend_Filter_AlnumSa Zend_FeedS` 'Zend_Feed_RssS_ 3Zend_Feed_ExceptionS^ 3Zend_Feed_Entry_RssS] 5Zend_Feed_Entry_AtomS\ =Zend_Feed_Entry_AbstractS[ /Zend_Feed_ElementSZ /Zend_Feed_BuilderSY =Zend_Feed_Builder_HeaderS$X KZend_Feed_Builder_Header_ItunesS W CZend_Feed_Builder_ExceptionSV ;Zend_Feed_Builder_EntrySU )Zend_Feed_AtomST 1Zend_Feed_AbstractSS )Zend_ExceptionSR !Zend_DebugSQ Zend_DbSP 'Zend_Db_TableSO 5Zend_Db_Table_SelectS#N IZend_Db_Table_Select_ExceptionSM 5Zend_Db_Table_RowsetS#L IZend_Db_Table_Rowset_ExceptionS"K GZend_Db_Table_Rowset_AbstractSJ /Zend_Db_Table_RowS I CZend_Db_Table_Row_ExceptionSH AZend_Db_Table_Row_AbstractSG ;Zend_Db_Table_ExceptionSF 9Zend_Db_Table_AbstractSE /Zend_Db_StatementSD 7Zend_Db_Statement_PdoSC ?Zend_Db_Statement_Pdo_IbmSB =Zend_Db_Statement_OracleS'A QZend_Db_Statement_Oracle_ExceptionS@ =Zend_Db_Statement_MysqliS'? QZend_Db_Statement_Mysqli_ExceptionS > CZend_Db_Statement_ExceptionS= 7Zend_Db_Statement_Db2S$< KZend_Db_Statement_Db2_ExceptionS; )Zend_Db_SelectS: =Zend_Db_Select_ExceptionS9 -Zend_Db_ProfilerS8 9Zend_Db_Profiler_QueryS7 AZend_Db_Profiler_ExceptionS6 %Zend_Db_ExprS5 /Zend_Db_ExceptionS4 AZend_Db_Adapter_Pdo_SqliteS   c  j@qJc;mG nF!



v
O
3

				[	/	y<uV,k@lEnDzFi8{Z=%          #
 IZend_Gdata_Gapps_EmailListFeedS$	 KZend_Gdata_Gapps_EmailListEntryS +Zend_Gdata_FeedS 5Zend_Gdata_ExtensionS =Zend_Gdata_Extension_WhoS AZend_Gdata_Extension_WhereS ?Zend_Gdata_Extension_WhenS$ KZend_Gdata_Extension_VisibilityS& OZend_Gdata_Extension_TransparencyS" GZend_Gdata_Extension_ReminderS-  ]Zend_Gdata_Extension_RecurrenceExceptionS$ KZend_Gdata_Extension_RecurrenceS ~ CZend_Gdata_Extension_RatingS'} QZend_Gdata_Extension_OriginalEventS0| cZend_Gdata_Extension_OpenSearchTotalResultsS.{ _Zend_Gdata_Extension_OpenSearchStartIndexS0z cZend_Gdata_Extension_OpenSearchItemsPerPageS"y GZend_Gdata_Extension_FeedLinkS*x WZend_Gdata_Extension_ExtendedPropertyS%w MZend_Gdata_Extension_EventStatusS#v IZend_Gdata_Extension_EntryLinkS"u GZend_Gdata_Extension_CommentsS&t OZend_Gdata_Extension_AttendeeTypeS(s SZend_Gdata_Extension_AttendeeStatusSr +Zend_Gdata_ExifSq 5Zend_Gdata_Exif_FeedS#p IZend_Gdata_Exif_Extension_TimeS#o IZend_Gdata_Exif_Extension_TagsS$n KZend_Gdata_Exif_Extension_ModelS#m IZend_Gdata_Exif_Extension_MakeS"l GZend_Gdata_Exif_Extension_IsoS,k [Zend_Gdata_Exif_Extension_ImageUniqueIdS$j KZend_Gdata_Exif_Extension_FStopS*i WZend_Gdata_Exif_Extension_FocalLengthS$h KZend_Gdata_Exif_Extension_FlashS'g QZend_Gdata_Exif_Extension_ExposureS'f QZend_Gdata_Exif_Extension_DistanceSe 7Zend_Gdata_Exif_EntrySd -Zend_Gdata_EntrySc +Zend_Gdata_DocsSb 7Zend_Gdata_Docs_QueryS%a MZend_Gdata_Docs_DocumentListFeedS&` OZend_Gdata_Docs_DocumentListEntryS_ 9Zend_Gdata_ClientLoginS^ 3Zend_Gdata_CalendarS!] EZend_Gdata_Calendar_ListFeedS"\ GZend_Gdata_Calendar_ListEntryS-[ ]Zend_Gdata_Calendar_Extension_WebContentS+Z YZend_Gdata_Calendar_Extension_TimezoneS9Y uZend_Gdata_Calendar_Extension_SendEventNotificationsS+X YZend_Gdata_Calendar_Extension_SelectedS+W YZend_Gdata_Calendar_Extension_QuickAddS'V QZend_Gdata_Calendar_Extension_LinkS)U UZend_Gdata_Calendar_Extension_HiddenS(T SZend_Gdata_Calendar_Extension_ColorS.S _Zend_Gdata_Calendar_Extension_AccessLevelS#R IZend_Gdata_Calendar_EventQueryS"Q GZend_Gdata_Calendar_EventFeedS#P IZend_Gdata_Calendar_EventEntrySO 1Zend_Gdata_AuthSubSN )Zend_Gdata_AppSM 3Zend_Gdata_App_UtilS#L IZend_Gdata_App_MediaFileSourceSK ?Zend_Gdata_App_MediaEntryS2J gZend_Gdata_App_LoggingHttpClientAdapterSocketSI AZend_Gdata_App_IOExceptionS,H [Zend_Gdata_App_InvalidArgumentExceptionS!G EZend_Gdata_App_HttpExceptionS$F KZend_Gdata_App_FeedSourceParentS#E IZend_Gdata_App_FeedEntryParentSD 3Zend_Gdata_App_FeedSC =Zend_Gdata_App_ExtensionS!B EZend_Gdata_App_Extension_UriS%A MZend_Gdata_App_Extension_UpdatedS#@ IZend_Gdata_App_Extension_TitleS"? GZend_Gdata_App_Extension_TextS%> MZend_Gdata_App_Extension_SummaryS&= OZend_Gdata_App_Extension_SubtitleS$< KZend_Gdata_App_Extension_SourceS$; KZend_Gdata_App_Extension_RightsS': QZend_Gdata_App_Extension_PublishedS$9 KZend_Gdata_App_Extension_PersonS"8 GZend_Gdata_App_Extension_NameS"7 GZend_Gdata_App_Extension_LogoS"6 GZend_Gdata_App_Extension_LinkS 5 CZend_Gdata_App_Extension_IdS"4 GZend_Gdata_App_Extension_IconS'3 QZend_Gdata_App_Extension_GeneratorS#2 IZend_Gdata_App_Extension_EmailS%1 MZend_Gdata_App_Extension_ElementS#0 IZend_Gdata_App_Extension_DraftS%/ MZend_Gdata_App_Extension_ControlS). UZend_Gdata_App_Extension_ContributorS%- MZend_Gdata_App_Extension_ContentS&, OZend_Gdata_App_Extension_CategoryS$+ KZend_Gdata_App_Extension_AuthorS* =Zend_Gdata_App_ExceptionS) 5Zend_Gdata_App_EntryS,( [Zend_Gdata_App_CaptchaRequiredExceptionS   `  wF'}T-tR/c@!zM#





U
%				b	5	rEe@g<V e9V(zP+xT:!        %j MZend_Gdata_Spreadsheets_CellFeedS&i OZend_Gdata_Spreadsheets_CellEntrySh -Zend_Gdata_QuerySg /Zend_Gdata_PhotosS f CZend_Gdata_Photos_UserQuerySe AZend_Gdata_Photos_UserFeedS d CZend_Gdata_Photos_UserEntrySc AZend_Gdata_Photos_TagEntryS!b EZend_Gdata_Photos_PhotoQueryS a CZend_Gdata_Photos_PhotoFeedS!` EZend_Gdata_Photos_PhotoEntryS&_ OZend_Gdata_Photos_Extension_WidthS'^ QZend_Gdata_Photos_Extension_WeightS(] SZend_Gdata_Photos_Extension_VersionS%\ MZend_Gdata_Photos_Extension_UserS*[ WZend_Gdata_Photos_Extension_TimestampS*Z WZend_Gdata_Photos_Extension_ThumbnailS%Y MZend_Gdata_Photos_Extension_SizeS)X UZend_Gdata_Photos_Extension_RotationS+W YZend_Gdata_Photos_Extension_QuotaLimitS-V ]Zend_Gdata_Photos_Extension_QuotaCurrentS)U UZend_Gdata_Photos_Extension_PositionS(T SZend_Gdata_Photos_Extension_PhotoIdS3S iZend_Gdata_Photos_Extension_NumPhotosRemainingS*R WZend_Gdata_Photos_Extension_NumPhotosS)Q UZend_Gdata_Photos_Extension_NicknameS%P MZend_Gdata_Photos_Extension_NameS2O gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumS)N UZend_Gdata_Photos_Extension_LocationS#M IZend_Gdata_Photos_Extension_IdS'L QZend_Gdata_Photos_Extension_HeightS2K gZend_Gdata_Photos_Extension_CommentingEnabledS-J ]Zend_Gdata_Photos_Extension_CommentCountS'I QZend_Gdata_Photos_Extension_ClientS)H UZend_Gdata_Photos_Extension_ChecksumS*G WZend_Gdata_Photos_Extension_BytesUsedS(F SZend_Gdata_Photos_Extension_AlbumIdS'E QZend_Gdata_Photos_Extension_AccessS#D IZend_Gdata_Photos_CommentEntryS!C EZend_Gdata_Photos_AlbumQueryS B CZend_Gdata_Photos_AlbumFeedS!A EZend_Gdata_Photos_AlbumEntryS@ -Zend_Gdata_MediaS? 7Zend_Gdata_Media_FeedS*> WZend_Gdata_Media_Extension_MediaTitleS.= _Zend_Gdata_Media_Extension_MediaThumbnailS)< UZend_Gdata_Media_Extension_MediaTextS0; cZend_Gdata_Media_Extension_MediaRestrictionS+: YZend_Gdata_Media_Extension_MediaRatingS+9 YZend_Gdata_Media_Extension_MediaPlayerS-8 ]Zend_Gdata_Media_Extension_MediaKeywordsS)7 UZend_Gdata_Media_Extension_MediaHashS*6 WZend_Gdata_Media_Extension_MediaGroupS05 cZend_Gdata_Media_Extension_MediaDescriptionS+4 YZend_Gdata_Media_Extension_MediaCreditS.3 _Zend_Gdata_Media_Extension_MediaCopyrightS,2 [Zend_Gdata_Media_Extension_MediaContentS-1 ]Zend_Gdata_Media_Extension_MediaCategoryS0 9Zend_Gdata_Media_EntryS/ AZend_Gdata_Kind_EventEntryS. )Zend_Gdata_GeoS- 3Zend_Gdata_Geo_FeedS$, KZend_Gdata_Geo_Extension_GmlPosS&+ OZend_Gdata_Geo_Extension_GmlPointS)* UZend_Gdata_Geo_Extension_GeoRssWhereS) 5Zend_Gdata_Geo_EntryS( -Zend_Gdata_GbaseS"' GZend_Gdata_Gbase_SnippetQueryS!& EZend_Gdata_Gbase_SnippetFeedS"% GZend_Gdata_Gbase_SnippetEntryS$ 9Zend_Gdata_Gbase_QueryS# AZend_Gdata_Gbase_ItemQueryS" ?Zend_Gdata_Gbase_ItemFeedS! AZend_Gdata_Gbase_ItemEntryS  7Zend_Gdata_Gbase_FeedS- ]Zend_Gdata_Gbase_Extension_BaseAttributeS 9Zend_Gdata_Gbase_EntryS -Zend_Gdata_GappsS AZend_Gdata_Gapps_UserQueryS ?Zend_Gdata_Gapps_UserFeedS AZend_Gdata_Gapps_UserEntryS& OZend_Gdata_Gapps_ServiceExceptionS 9Zend_Gdata_Gapps_QueryS# IZend_Gdata_Gapps_NicknameQueryS" GZend_Gdata_Gapps_NicknameFeedS# IZend_Gdata_Gapps_NicknameEntryS% MZend_Gdata_Gapps_Extension_QuotaS( SZend_Gdata_Gapps_Extension_NicknameS$ KZend_Gdata_Gapps_Extension_NameS% MZend_Gdata_Gapps_Extension_LoginS) UZend_Gdata_Gapps_Extension_EmailListS 9Zend_Gdata_Gapps_ErrorS- ]Zend_Gdata_Gapps_EmailListRecipientQueryS, [Zend_Gdata_Gapps_EmailListRecipientFeedS- ]Zend_Gdata_Gapps_EmailListRecipientEntryS$ KZend_Gdata_Gapps_EmailListQueryS   ]  yFe4_8h;
U+



o
D
				b	0xL!tFnI#{U2 _8h/_=j?         G ?Zend_InfoCard_Xml_KeyInfoS&F OZend_InfoCard_Xml_KeyInfo_XmlDSigS&E OZend_InfoCard_Xml_KeyInfo_DefaultS'D QZend_InfoCard_Xml_KeyInfo_AbstractS C CZend_InfoCard_Xml_ExceptionS#B IZend_InfoCard_Xml_EncryptedKeyS$A KZend_InfoCard_Xml_EncryptedDataS+@ YZend_InfoCard_Xml_EncryptedData_XmlEncS-? ]Zend_InfoCard_Xml_EncryptedData_AbstractS> ?Zend_InfoCard_Xml_ElementS = CZend_InfoCard_Xml_AssertionS%< MZend_InfoCard_Xml_Assertion_SamlS; ;Zend_InfoCard_ExceptionS%: MZend_InfoCard_Exception_AbstractS9 5Zend_InfoCard_ClaimsS8 5Zend_InfoCard_CipherS57 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcS56 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcS45 kZend_InfoCard_Cipher_Symmetric_Adapter_AbstractS)4 UZend_InfoCard_Cipher_Pki_Adapter_RsaS.3 _Zend_InfoCard_Cipher_Pki_Adapter_AbstractS#2 IZend_InfoCard_Cipher_ExceptionS$1 KZend_InfoCard_Adapter_ExceptionS"0 GZend_InfoCard_Adapter_DefaultS/ 1Zend_Http_ResponseS. 3Zend_Http_ExceptionS- 3Zend_Http_CookieJarS, -Zend_Http_CookieS+ -Zend_Http_ClientS* AZend_Http_Client_ExceptionS") GZend_Http_Client_Adapter_TestS$( KZend_Http_Client_Adapter_SocketS#' IZend_Http_Client_Adapter_ProxyS'& QZend_Http_Client_Adapter_ExceptionS% !Zend_GdataS$ 1Zend_Gdata_YouTubeS"# GZend_Gdata_YouTube_VideoQueryS!" EZend_Gdata_YouTube_VideoFeedS"! GZend_Gdata_YouTube_VideoEntryS(  SZend_Gdata_YouTube_UserProfileEntryS( SZend_Gdata_YouTube_SubscriptionFeedS) UZend_Gdata_YouTube_SubscriptionEntryS) UZend_Gdata_YouTube_PlaylistVideoFeedS* WZend_Gdata_YouTube_PlaylistVideoEntryS( SZend_Gdata_YouTube_PlaylistListFeedS) UZend_Gdata_YouTube_PlaylistListEntryS" GZend_Gdata_YouTube_MediaEntryS* WZend_Gdata_YouTube_Extension_UsernameS' QZend_Gdata_YouTube_Extension_TokenS( SZend_Gdata_YouTube_Extension_StatusS, [Zend_Gdata_YouTube_Extension_StatisticsS' QZend_Gdata_YouTube_Extension_StateS( SZend_Gdata_YouTube_Extension_SchoolS- ]Zend_Gdata_YouTube_Extension_ReleaseDateS. _Zend_Gdata_YouTube_Extension_RelationshipS& OZend_Gdata_YouTube_Extension_RacyS) UZend_Gdata_YouTube_Extension_PrivateS* WZend_Gdata_YouTube_Extension_PositionS, [Zend_Gdata_YouTube_Extension_OccupationS) UZend_Gdata_YouTube_Extension_NoEmbedS' QZend_Gdata_YouTube_Extension_MusicS(
 SZend_Gdata_YouTube_Extension_MoviesS,	 [Zend_Gdata_YouTube_Extension_MediaGroupS. _Zend_Gdata_YouTube_Extension_MediaContentS* WZend_Gdata_YouTube_Extension_LocationS& OZend_Gdata_YouTube_Extension_LinkS* WZend_Gdata_YouTube_Extension_HometownS) UZend_Gdata_YouTube_Extension_HobbiesS( SZend_Gdata_YouTube_Extension_GenderS* WZend_Gdata_YouTube_Extension_DurationS- ]Zend_Gdata_YouTube_Extension_DescriptionS)  UZend_Gdata_YouTube_Extension_ControlS) UZend_Gdata_YouTube_Extension_CompanyS'~ QZend_Gdata_YouTube_Extension_BooksS%} MZend_Gdata_YouTube_Extension_AgeS#| IZend_Gdata_YouTube_ContactFeedS${ KZend_Gdata_YouTube_ContactEntryS#z IZend_Gdata_YouTube_CommentFeedS$y KZend_Gdata_YouTube_CommentEntrySx ;Zend_Gdata_SpreadsheetsS*w WZend_Gdata_Spreadsheets_WorksheetFeedS+v YZend_Gdata_Spreadsheets_WorksheetEntryS,u [Zend_Gdata_Spreadsheets_SpreadsheetFeedS-t ]Zend_Gdata_Spreadsheets_SpreadsheetEntryS&s OZend_Gdata_Spreadsheets_ListQueryS%r MZend_Gdata_Spreadsheets_ListFeedS&q OZend_Gdata_Spreadsheets_ListEntryS/p aZend_Gdata_Spreadsheets_Extension_RowCountS-o ]Zend_Gdata_Spreadsheets_Extension_CustomS/n aZend_Gdata_Spreadsheets_Extension_ColCountS+m YZend_Gdata_Spreadsheets_Extension_CellS*l WZend_Gdata_Spreadsheets_DocumentQueryS&k OZend_Gdata_Spreadsheets_CellQueryS   w \$sY=+|jL! uR1eF%






j
S
/

				r	G	'	pQ/a<	xW3{\; mO4oJ%y`D*wT6                      &> OZend_OpenId_Provider_Storage_FileS= 7Zend_OpenId_ExtensionS< AZend_OpenId_Extension_SregS; 7Zend_OpenId_ExceptionS: 5Zend_OpenId_ConsumerS!9 EZend_OpenId_Consumer_StorageS&8 OZend_OpenId_Consumer_Storage_FileS7 Zend_MimeS6 )Zend_Mime_PartS5 /Zend_Mime_MessageS4 3Zend_Mime_ExceptionS3 -Zend_Mime_DecodeS2 #Zend_MemoryS1 /Zend_Memory_ValueS0 3Zend_Memory_ManagerS/ 7Zend_Memory_ExceptionS. 7Zend_Memory_ContainerS"- GZend_Memory_Container_MovableS!, EZend_Memory_Container_LockedS!+ EZend_Memory_AccessControllerS* 3Zend_Measure_WeightS) 3Zend_Measure_VolumeS%( MZend_Measure_Viscosity_KinematicS#' IZend_Measure_Viscosity_DynamicS& 3Zend_Measure_TorqueS% =Zend_Measure_TemperatureS$ 1Zend_Measure_SpeedS# 7Zend_Measure_PressureS" 1Zend_Measure_PowerS! 3Zend_Measure_NumberS  9Zend_Measure_LightnessS 3Zend_Measure_LengthS ?Zend_Measure_IlluminationS 9Zend_Measure_FrequencyS 1Zend_Measure_ForceS =Zend_Measure_Flow_VolumeS 9Zend_Measure_Flow_MoleS 9Zend_Measure_Flow_MassS 9Zend_Measure_ExceptionS 3Zend_Measure_EnergyS 5Zend_Measure_DensityS 5Zend_Measure_CurrentS  CZend_Measure_Cooking_WeightS  CZend_Measure_Cooking_VolumeS =Zend_Measure_CapacitanceS 3Zend_Measure_BinaryS /Zend_Measure_AreaS 1Zend_Measure_AngleS ?Zend_Measure_AccelerationS 7Zend_Measure_AbstractS Zend_MailS =Zend_Mail_Transport_SmtpS!
 EZend_Mail_Transport_SendmailS"	 GZend_Mail_Transport_ExceptionS! EZend_Mail_Transport_AbstractS /Zend_Mail_StorageS' QZend_Mail_Storage_Writable_MaildirS 9Zend_Mail_Storage_Pop3S 9Zend_Mail_Storage_MboxS ?Zend_Mail_Storage_MaildirS 9Zend_Mail_Storage_ImapS =Zend_Mail_Storage_FolderS"  GZend_Mail_Storage_Folder_MboxS% MZend_Mail_Storage_Folder_MaildirS ~ CZend_Mail_Storage_ExceptionS} AZend_Mail_Storage_AbstractS| ;Zend_Mail_Protocol_SmtpS'{ QZend_Mail_Protocol_Smtp_Auth_PlainS'z QZend_Mail_Protocol_Smtp_Auth_LoginS)y UZend_Mail_Protocol_Smtp_Auth_Crammd5Sx ;Zend_Mail_Protocol_Pop3Sw ;Zend_Mail_Protocol_ImapS!v EZend_Mail_Protocol_ExceptionS u CZend_Mail_Protocol_AbstractSt )Zend_Mail_PartSs /Zend_Mail_MessageSr 3Zend_Mail_ExceptionSq Zend_LogSp 9Zend_Log_Writer_StreamSo 5Zend_Log_Writer_NullSn 5Zend_Log_Writer_MockSm 1Zend_Log_Writer_DbSl =Zend_Log_Writer_AbstractSk 9Zend_Log_Formatter_XmlSj ?Zend_Log_Formatter_SimpleSi =Zend_Log_Filter_SuppressSh =Zend_Log_Filter_PrioritySg ;Zend_Log_Filter_MessageSf 1Zend_Log_ExceptionSe #Zend_LocaleSd -Zend_Locale_MathSc =Zend_Locale_Math_PhpMathSb AZend_Locale_Math_ExceptionSa 1Zend_Locale_FormatS` 7Zend_Locale_ExceptionS_ -Zend_Locale_DataS!^ EZend_Locale_Data_TranslationS] #Zend_LoaderS\ =Zend_Loader_PluginLoaderS'[ QZend_Loader_PluginLoader_ExceptionSZ 7Zend_Loader_ExceptionSY Zend_LdapSX 3Zend_Ldap_ExceptionSW #Zend_LayoutSV 7Zend_Layout_ExceptionS)U UZend_Layout_Controller_Plugin_LayoutS0T cZend_Layout_Controller_Action_Helper_LayoutSS Zend_JsonSR 3Zend_Json_ExceptionSQ /Zend_Json_EncoderSP /Zend_Json_DecoderSO 'Zend_InfoCardS-N ]Zend_InfoCard_Xml_SecurityTokenReferenceSM AZend_InfoCard_Xml_SecurityS)L UZend_InfoCard_Xml_Security_TransformS4K kZend_InfoCard_Xml_Security_Transform_XmlExcC14NS3J iZend_InfoCard_Xml_Security_Transform_ExceptionS<I {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignatureS)H UZend_InfoCard_Xml_Security_ExceptionS   e  r^4vZ?(	g@ bB)kJ$



h
H
'						n	O	7	o9X_q6kF'rX:# {X8_&        I# Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitiveS5" mZend_Search_Lucene_Analysis_Analyzer_Common_TextSF! Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiveS  7Zend_Search_ExceptionS -Zend_Rest_ServerS AZend_Rest_Server_ExceptionS 3Zend_Rest_ExceptionS -Zend_Rest_ClientS ;Zend_Rest_Client_ResultS AZend_Rest_Client_ExceptionS 'Zend_RegistryS Zend_PdfS! EZend_Pdf_UpdateInfoContainerS -Zend_Pdf_TrailerS ;Zend_Pdf_Trailer_KeeperS AZend_Pdf_Trailer_GeneratorS )Zend_Pdf_StyleS 7Zend_Pdf_StringParserS /Zend_Pdf_ResourceS# IZend_Pdf_Resource_ImageFactoryS ;Zend_Pdf_Resource_ImageS! EZend_Pdf_Resource_Image_TiffS  CZend_Pdf_Resource_Image_PngS! EZend_Pdf_Resource_Image_JpegS 9Zend_Pdf_Resource_FontS!
 EZend_Pdf_Resource_Font_Type0S"	 GZend_Pdf_Resource_Font_SimpleS+ YZend_Pdf_Resource_Font_Simple_StandardS8 sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsS6 oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanS7 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicS; yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicS5 mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldS2 gZend_Pdf_Resource_Font_Simple_Standard_SymbolS< {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueSA  Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliqueS9 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldS5~ mZend_Pdf_Resource_Font_Simple_Standard_HelveticaS:} wZend_Pdf_Resource_Font_Simple_Standard_CourierObliqueS>| Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliqueS7{ qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldS3z iZend_Pdf_Resource_Font_Simple_Standard_CourierS)y UZend_Pdf_Resource_Font_Simple_ParsedS2x gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypeS*w WZend_Pdf_Resource_Font_FontDescriptorS%v MZend_Pdf_Resource_Font_ExtractedS#u IZend_Pdf_Resource_Font_CidFontS,t [Zend_Pdf_Resource_Font_CidFont_TrueTypeSs /Zend_Pdf_PhpArraySr +Zend_Pdf_ParserSq 9Zend_Pdf_Parser_StreamSp 'Zend_Pdf_PageSo )Zend_Pdf_ImageSn 'Zend_Pdf_FontS m CZend_Pdf_Filter_CompressionS$l KZend_Pdf_Filter_Compression_LzwS&k OZend_Pdf_Filter_Compression_FlateSj =Zend_Pdf_Filter_AsciiHexSi ;Zend_Pdf_Filter_Ascii85S"h GZend_Pdf_FileParserDataSourceS)g UZend_Pdf_FileParserDataSource_StringS'f QZend_Pdf_FileParserDataSource_FileSe 3Zend_Pdf_FileParserSd ?Zend_Pdf_FileParser_ImageS"c GZend_Pdf_FileParser_Image_PngSb =Zend_Pdf_FileParser_FontS&a OZend_Pdf_FileParser_Font_OpenTypeS/` aZend_Pdf_FileParser_Font_OpenType_TrueTypeS_ 1Zend_Pdf_ExceptionS^ ;Zend_Pdf_ElementFactoryS"] GZend_Pdf_ElementFactory_ProxyS\ -Zend_Pdf_ElementS[ ;Zend_Pdf_Element_StringS#Z IZend_Pdf_Element_String_BinarySY ;Zend_Pdf_Element_StreamSX AZend_Pdf_Element_ReferenceS%W MZend_Pdf_Element_Reference_TableS'V QZend_Pdf_Element_Reference_ContextSU ;Zend_Pdf_Element_ObjectS#T IZend_Pdf_Element_Object_StreamSS =Zend_Pdf_Element_NumericSR 7Zend_Pdf_Element_NullSQ 7Zend_Pdf_Element_NameS P CZend_Pdf_Element_DictionarySO =Zend_Pdf_Element_BooleanSN 9Zend_Pdf_Element_ArraySM )Zend_Pdf_ColorSL 1Zend_Pdf_Color_RgbSK 3Zend_Pdf_Color_HtmlSJ =Zend_Pdf_Color_GrayScaleSI 3Zend_Pdf_Color_CmykSH 'Zend_Pdf_CmapSG AZend_Pdf_Cmap_TrimmedTableS!F EZend_Pdf_Cmap_SegmentToDeltaSE AZend_Pdf_Cmap_ByteEncodingS&D OZend_Pdf_Cmap_ByteEncoding_StaticSC #Zend_OpenIdSB 5Zend_OpenId_ProviderSA ?Zend_OpenId_Provider_UserS&@ OZend_OpenId_Provider_User_SessionS!? EZend_OpenId_Provider_StorageS   T  zAW-z@}^9uF


w
M
%				v	F	S%k5~PU$d;tL1wO)iK.                                            'w QZend_Service_Amazon_CustomerReviewS$v KZend_Service_Amazon_AccessoriesSu 5Zend_Service_AkismetSt 7Zend_Service_AbstractSs 9Zend_Server_ReflectionS'r QZend_Server_Reflection_ReturnValueS%q MZend_Server_Reflection_PrototypeS%p MZend_Server_Reflection_ParameterS o CZend_Server_Reflection_NodeS"n GZend_Server_Reflection_MethodS$m KZend_Server_Reflection_FunctionS-l ]Zend_Server_Reflection_Function_AbstractS%k MZend_Server_Reflection_ExceptionS!j EZend_Server_Reflection_ClassSi 7Zend_Server_ExceptionSh 5Zend_Server_AbstractSg 1Zend_Search_LuceneS$f KZend_Search_Lucene_Storage_FileS+e YZend_Search_Lucene_Storage_File_MemoryS/d aZend_Search_Lucene_Storage_File_FilesystemS)c UZend_Search_Lucene_Storage_DirectoryS4b kZend_Search_Lucene_Storage_Directory_FilesystemS%a MZend_Search_Lucene_Search_WeightS*` WZend_Search_Lucene_Search_Weight_TermS,_ [Zend_Search_Lucene_Search_Weight_PhraseS/^ aZend_Search_Lucene_Search_Weight_MultiTermS+] YZend_Search_Lucene_Search_Weight_EmptyS-\ ]Zend_Search_Lucene_Search_Weight_BooleanS)[ UZend_Search_Lucene_Search_SimilarityS1Z eZend_Search_Lucene_Search_Similarity_DefaultS)Y UZend_Search_Lucene_Search_QueryTokenS3X iZend_Search_Lucene_Search_QueryParserExceptionS1W eZend_Search_Lucene_Search_QueryParserContextS*V WZend_Search_Lucene_Search_QueryParserS)U UZend_Search_Lucene_Search_QueryLexerS'T QZend_Search_Lucene_Search_QueryHitS)S UZend_Search_Lucene_Search_QueryEntryS.R _Zend_Search_Lucene_Search_QueryEntry_TermS2Q gZend_Search_Lucene_Search_QueryEntry_SubqueryS0P cZend_Search_Lucene_Search_QueryEntry_PhraseS$O KZend_Search_Lucene_Search_QueryS-N ]Zend_Search_Lucene_Search_Query_WildcardS)M UZend_Search_Lucene_Search_Query_TermS*L WZend_Search_Lucene_Search_Query_RangeS+K YZend_Search_Lucene_Search_Query_PhraseS.J _Zend_Search_Lucene_Search_Query_MultiTermS2I gZend_Search_Lucene_Search_Query_InsignificantS*H WZend_Search_Lucene_Search_Query_FuzzyS*G WZend_Search_Lucene_Search_Query_EmptyS,F [Zend_Search_Lucene_Search_Query_BooleanS:E wZend_Search_Lucene_Search_BooleanExpressionRecognizerSD =Zend_Search_Lucene_ProxyS%C MZend_Search_Lucene_PriorityQueueS#B IZend_Search_Lucene_LockManagerS$A KZend_Search_Lucene_Index_WriterS&@ OZend_Search_Lucene_Index_TermInfoS"? GZend_Search_Lucene_Index_TermS+> YZend_Search_Lucene_Index_SegmentWriterS8= sZend_Search_Lucene_Index_SegmentWriter_StreamWriterS:< wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterS+; YZend_Search_Lucene_Index_SegmentMergerS6: oZend_Search_Lucene_Index_SegmentInfoPriorityQueueS)9 UZend_Search_Lucene_Index_SegmentInfoS'8 QZend_Search_Lucene_Index_FieldInfoS.7 _Zend_Search_Lucene_Index_DictionaryLoaderS!6 EZend_Search_Lucene_FSMActionS5 9Zend_Search_Lucene_FSMS4 =Zend_Search_Lucene_FieldS!3 EZend_Search_Lucene_ExceptionS 2 CZend_Search_Lucene_DocumentS%1 MZend_Search_Lucene_Document_HtmlS,0 [Zend_Search_Lucene_Analysis_TokenFilterS6/ oZend_Search_Lucene_Analysis_TokenFilter_StopWordsS7. qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsS:- wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8S6, oZend_Search_Lucene_Analysis_TokenFilter_LowerCaseS&+ OZend_Search_Lucene_Analysis_TokenS)* UZend_Search_Lucene_Analysis_AnalyzerS0) cZend_Search_Lucene_Analysis_Analyzer_CommonS8( sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumSI' Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitiveS5& mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8SF% Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitiveS8$ sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumS   e  gE mD nK%	`B"xV1



k
A
!				w	A	rBU.}P%iBlFX.	jB vQ.                    \ ?Zend_Translate_Adapter_QtS#[ IZend_Translate_Adapter_GettextSZ AZend_Translate_Adapter_CsvS!Y EZend_Translate_Adapter_ArraySX 'Zend_TimeSyncSW 1Zend_TimeSync_SntpSV 9Zend_TimeSync_ProtocolSU /Zend_TimeSync_NtpST ;Zend_TimeSync_ExceptionSS %Zend_SessionS)R UZend_Session_Validator_HttpUserAgentS$Q KZend_Session_Validator_AbstractSP 9Zend_Session_NamespaceSO 9Zend_Session_ExceptionSN 7Zend_Session_AbstractSM 1Zend_Service_YahooS$L KZend_Service_Yahoo_WebResultSetS!K EZend_Service_Yahoo_WebResultS&J OZend_Service_Yahoo_VideoResultSetS#I IZend_Service_Yahoo_VideoResultS!H EZend_Service_Yahoo_ResultSetSG ?Zend_Service_Yahoo_ResultS)F UZend_Service_Yahoo_PageDataResultSetS&E OZend_Service_Yahoo_PageDataResultS%D MZend_Service_Yahoo_NewsResultSetS"C GZend_Service_Yahoo_NewsResultS&B OZend_Service_Yahoo_LocalResultSetS#A IZend_Service_Yahoo_LocalResultS+@ YZend_Service_Yahoo_InlinkDataResultSetS(? SZend_Service_Yahoo_InlinkDataResultS&> OZend_Service_Yahoo_ImageResultSetS#= IZend_Service_Yahoo_ImageResultS< =Zend_Service_Yahoo_ImageS; ;Zend_Service_TechnoratiS#: IZend_Service_Technorati_WeblogS"9 GZend_Service_Technorati_UtilsS*8 WZend_Service_Technorati_TagsResultSetS'7 QZend_Service_Technorati_TagsResultS)6 UZend_Service_Technorati_TagResultSetS&5 OZend_Service_Technorati_TagResultS,4 [Zend_Service_Technorati_SearchResultSetS)3 UZend_Service_Technorati_SearchResultS&2 OZend_Service_Technorati_ResultSetS#1 IZend_Service_Technorati_ResultS*0 WZend_Service_Technorati_KeyInfoResultS*/ WZend_Service_Technorati_GetInfoResultS&. OZend_Service_Technorati_ExceptionS1- eZend_Service_Technorati_DailyCountsResultSetS., _Zend_Service_Technorati_DailyCountsResultS,+ [Zend_Service_Technorati_CosmosResultSetS)* UZend_Service_Technorati_CosmosResultS+) YZend_Service_Technorati_BlogInfoResultS#( IZend_Service_Technorati_AuthorS' ;Zend_Service_StrikeIronS(& SZend_Service_StrikeIron_ZipCodeInfoS2% gZend_Service_StrikeIron_USAddressVerificationS-$ ]Zend_Service_StrikeIron_SalesUseTaxBasicS&# OZend_Service_StrikeIron_ExceptionS&" OZend_Service_StrikeIron_DecoratorS!! EZend_Service_StrikeIron_BaseS  ;Zend_Service_SlideShareS& OZend_Service_SlideShare_SlideShowS& OZend_Service_SlideShare_ExceptionS 1Zend_Service_SimpyS$ KZend_Service_Simpy_WatchlistSetS* WZend_Service_Simpy_WatchlistFilterSetS' QZend_Service_Simpy_WatchlistFilterS! EZend_Service_Simpy_WatchlistS ?Zend_Service_Simpy_TagSetS 9Zend_Service_Simpy_TagS AZend_Service_Simpy_NoteSetS ;Zend_Service_Simpy_NoteS AZend_Service_Simpy_LinkSetS! EZend_Service_Simpy_LinkQueryS ;Zend_Service_Simpy_LinkS 7Zend_Service_NirvanixS# IZend_Service_Nirvanix_ResponseS) UZend_Service_Nirvanix_Namespace_ImfsS) UZend_Service_Nirvanix_Namespace_BaseS$ KZend_Service_Nirvanix_ExceptionS 3Zend_Service_FlickrS" GZend_Service_Flickr_ResultSetS
 AZend_Service_Flickr_ResultS	 ?Zend_Service_Flickr_ImageS 9Zend_Service_ExceptionS 9Zend_Service_DeliciousS& OZend_Service_Delicious_SimplePostS$ KZend_Service_Delicious_PostListS  CZend_Service_Delicious_PostS% MZend_Service_Delicious_ExceptionS  CZend_Service_AudioscrobblerS 3Zend_Service_AmazonS'  QZend_Service_Amazon_SimilarProductS" GZend_Service_Amazon_ResultSetS~ ?Zend_Service_Amazon_QueryS!} EZend_Service_Amazon_OfferSetS| ?Zend_Service_Amazon_OfferS&{ OZend_Service_Amazon_ListmaniaListSz =Zend_Service_Amazon_ItemSy ?Zend_Service_Amazon_ImageS(x SZend_Service_Amazon_EditorialReviewS   q
 pQ0\9fJ(dB nO0





o
J
)
				z	V	4	}W4_=mM"k1wT7% ~O(vT7tR-
                                M AZend_XmlRpc_Value_DateTimeS!L EZend_XmlRpc_Value_CollectionSK ?Zend_XmlRpc_Value_BooleanSJ =Zend_XmlRpc_Value_Base64SI ;Zend_XmlRpc_Value_ArraySH 1Zend_XmlRpc_ServerSG =Zend_XmlRpc_Server_FaultS!F EZend_XmlRpc_Server_ExceptionSE =Zend_XmlRpc_Server_CacheSD 5Zend_XmlRpc_ResponseSC ?Zend_XmlRpc_Response_HttpSB 3Zend_XmlRpc_RequestSA ?Zend_XmlRpc_Request_StdinS@ =Zend_XmlRpc_Request_HttpS? /Zend_XmlRpc_FaultS> 7Zend_XmlRpc_ExceptionS= 1Zend_XmlRpc_ClientS#< IZend_XmlRpc_Client_ServerProxyS+; YZend_XmlRpc_Client_ServerIntrospectionS+: YZend_XmlRpc_Client_IntrospectExceptionS%9 MZend_XmlRpc_Client_HttpExceptionS&8 OZend_XmlRpc_Client_FaultExceptionS!7 EZend_XmlRpc_Client_ExceptionS6 Zend_ViewS5 5Zend_View_Helper_UrlS4 AZend_View_Helper_TranslateS!3 EZend_View_Helper_PlaceholderS*2 WZend_View_Helper_Placeholder_RegistryS41 kZend_View_Helper_Placeholder_Registry_ExceptionS+0 YZend_View_Helper_Placeholder_ContainerS6/ oZend_View_Helper_Placeholder_Container_StandaloneS5. mZend_View_Helper_Placeholder_Container_ExceptionS4- kZend_View_Helper_Placeholder_Container_AbstractS!, EZend_View_Helper_PartialLoopS+ =Zend_View_Helper_PartialS'* QZend_View_Helper_Partial_ExceptionS) ;Zend_View_Helper_LayoutS( 7Zend_View_Helper_JsonS"' GZend_View_Helper_InlineScriptS& ?Zend_View_Helper_HtmlListS% AZend_View_Helper_HeadTitleS$ AZend_View_Helper_HeadStyleS # CZend_View_Helper_HeadScriptS" ?Zend_View_Helper_HeadMetaS! ?Zend_View_Helper_HeadLinkS"  GZend_View_Helper_FormTextareaS ?Zend_View_Helper_FormTextS  CZend_View_Helper_FormSubmitS  CZend_View_Helper_FormSelectS AZend_View_Helper_FormResetS AZend_View_Helper_FormRadioS" GZend_View_Helper_FormPasswordS ?Zend_View_Helper_FormNoteS' QZend_View_Helper_FormMultiCheckboxS AZend_View_Helper_FormLabelS AZend_View_Helper_FormImageS  CZend_View_Helper_FormHiddenS ?Zend_View_Helper_FormFileS  CZend_View_Helper_FormErrorsS! EZend_View_Helper_FormElementS" GZend_View_Helper_FormCheckboxS  CZend_View_Helper_FormButtonS 7Zend_View_Helper_FormS ?Zend_View_Helper_FieldsetS =Zend_View_Helper_DoctypeS! EZend_View_Helper_DeclareVarsS ;Zend_View_Helper_ActionS
 3Zend_View_ExceptionS	 1Zend_View_AbstractS %Zend_VersionS 'Zend_ValidateS AZend_Validate_StringLengthS 3Zend_Validate_RegexS 9Zend_Validate_NotEmptyS 9Zend_Validate_LessThanS -Zend_Validate_IpS /Zend_Validate_IntS  7Zend_Validate_InArrayS ;Zend_Validate_IdenticalS~ 9Zend_Validate_HostnameS} ?Zend_Validate_Hostname_SeS| ?Zend_Validate_Hostname_NoS{ ?Zend_Validate_Hostname_LiSz ?Zend_Validate_Hostname_HuSy ?Zend_Validate_Hostname_FiSx ?Zend_Validate_Hostname_DeSw ?Zend_Validate_Hostname_ChSv ?Zend_Validate_Hostname_AtSu /Zend_Validate_HexSt ?Zend_Validate_GreaterThanSs 3Zend_Validate_FloatSr ;Zend_Validate_ExceptionSq AZend_Validate_EmailAddressSp 5Zend_Validate_DigitsSo 1Zend_Validate_DateSn 3Zend_Validate_CcnumSm 7Zend_Validate_BetweenSl 7Zend_Validate_BarcodeSk AZend_Validate_Barcode_UpcAS j CZend_Validate_Barcode_Ean13Si 3Zend_Validate_AlphaSh 3Zend_Validate_AlnumSg 9Zend_Validate_AbstractSf Zend_UriSe 'Zend_Uri_HttpSd 1Zend_Uri_ExceptionSc )Zend_TranslateSb =Zend_Translate_ExceptionSa 9Zend_Translate_AdapterS!` EZend_Translate_Adapter_XmlTmS!_ EZend_Translate_Adapter_XliffS^ AZend_Translate_Adapter_TmxS] AZend_Translate_Adapter_TbxS   j  {Z9kZ8uR3o]>mR:




q
^
D
*
						l	X	2	Zs>K {Y;mCvQ& Z,|P+  7 -Zend_Date_CitiesT6 'Zend_CurrencyT5 ;Zend_Currency_ExceptionT!4 EZend_Controller_Router_RouteT(3 SZend_Controller_Router_Route_StaticT'2 QZend_Controller_Router_Route_RegexT(1 SZend_Controller_Router_Route_ModuleT*0 WZend_Controller_Router_Route_HostnameT'/ QZend_Controller_Router_Route_ChainT*. WZend_Controller_Router_Route_AbstractT#- IZend_Controller_Router_RewriteT%, MZend_Controller_Router_ExceptionT$+ KZend_Controller_Router_AbstractT** WZend_Controller_Response_HttpTestCaseT") GZend_Controller_Response_HttpT'( QZend_Controller_Response_ExceptionT!' EZend_Controller_Response_CliT&& OZend_Controller_Response_AbstractT#% IZend_Controller_Request_SimpleT)$ UZend_Controller_Request_HttpTestCaseT!# EZend_Controller_Request_HttpT&" OZend_Controller_Request_ExceptionT&! OZend_Controller_Request_Apache404T%  MZend_Controller_Request_AbstractT( SZend_Controller_Plugin_ErrorHandlerT" GZend_Controller_Plugin_BrokerT' QZend_Controller_Plugin_ActionStackT$ KZend_Controller_Plugin_AbstractT 7Zend_Controller_FrontT ?Zend_Controller_ExceptionT( SZend_Controller_Dispatcher_StandardT) UZend_Controller_Dispatcher_ExceptionT( SZend_Controller_Dispatcher_AbstractT 9Zend_Controller_ActionT( SZend_Controller_Action_HelperBrokerT6 oZend_Controller_Action_HelperBroker_PriorityStackT/ aZend_Controller_Action_Helper_ViewRendererT& OZend_Controller_Action_Helper_UrlT- ]Zend_Controller_Action_Helper_RedirectorT' QZend_Controller_Action_Helper_JsonT1 eZend_Controller_Action_Helper_FlashMessengerT0 cZend_Controller_Action_Helper_ContextSwitchT< {Zend_Controller_Action_Helper_AutoCompleteScriptaculousT3 iZend_Controller_Action_Helper_AutoCompleteDojoT8 sZend_Controller_Action_Helper_AutoComplete_AbstractT.
 _Zend_Controller_Action_Helper_AjaxContextT.	 _Zend_Controller_Action_Helper_ActionStackT+ YZend_Controller_Action_Helper_AbstractT% MZend_Controller_Action_ExceptionT 3Zend_Console_GetoptT" GZend_Console_Getopt_ExceptionT #Zend_ConfigT +Zend_Config_XmlT +Zend_Config_IniT 7Zend_Config_ExceptionT  /Zend_Captcha_WordT 9Zend_Captcha_ReCaptchaT~ 1Zend_Captcha_ImageT} 3Zend_Captcha_FigletT| /Zend_Captcha_DumbT{ /Zend_Captcha_BaseTz !Zend_CacheTy =Zend_Cache_Frontend_PageTx AZend_Cache_Frontend_OutputT!w EZend_Cache_Frontend_FunctionTv =Zend_Cache_Frontend_FileTu ?Zend_Cache_Frontend_ClassTt 5Zend_Cache_ExceptionTs +Zend_Cache_CoreTr 1Zend_Cache_BackendT$q KZend_Cache_Backend_ZendPlatformTp ?Zend_Cache_Backend_XcacheTo ;Zend_Cache_Backend_TestTn ?Zend_Cache_Backend_SqliteT!m EZend_Cache_Backend_MemcachedTl ;Zend_Cache_Backend_FileTk 9Zend_Cache_Backend_ApcTj Zend_AuthTi ?Zend_Auth_Storage_SessionT$h KZend_Auth_Storage_NonPersistentT g CZend_Auth_Storage_ExceptionTf -Zend_Auth_ResultTe 3Zend_Auth_ExceptionTd =Zend_Auth_Adapter_OpenIdTc 9Zend_Auth_Adapter_LdapTb AZend_Auth_Adapter_InfoCardTa 9Zend_Auth_Adapter_HttpT)` UZend_Auth_Adapter_Http_Resolver_FileT._ _Zend_Auth_Adapter_Http_Resolver_ExceptionT ^ CZend_Auth_Adapter_ExceptionT] =Zend_Auth_Adapter_DigestT\ ?Zend_Auth_Adapter_DbTableT[ Zend_AclTZ 'Zend_Acl_RoleTY 9Zend_Acl_Role_RegistryT%X MZend_Acl_Role_Registry_ExceptionTW /Zend_Acl_ResourceTV 1Zend_Acl_ExceptionTU /Zend_XmlRpc_ValueST =Zend_XmlRpc_Value_StructSS =Zend_XmlRpc_Value_StringSR =Zend_XmlRpc_Value_ScalarSQ 7Zend_XmlRpc_Value_NilSP ?Zend_XmlRpc_Value_IntegerS O CZend_XmlRpc_Value_ExceptionSN =Zend_XmlRpc_Value_DoubleS   a  i>nDeHsP1 zN&




p
N
$				k	1	~Hl@xZ6^Cb?vS0{Q#R'                                                   (d SZend_InfoCard_Xml_KeyInfo_InterfaceU(c SZend_InfoCard_Xml_Element_InterfaceU*b WZend_InfoCard_Xml_Assertion_InterfaceU-a ]Zend_InfoCard_Cipher_Symmetric_InterfaceU7` qZend_InfoCard_Cipher_Symmetric_Aes256cbc_InterfaceU7_ qZend_InfoCard_Cipher_Symmetric_Aes128cbc_InterfaceU+^ YZend_InfoCard_Cipher_Pki_Rsa_InterfaceU'] QZend_InfoCard_Cipher_Pki_InterfaceU$\ KZend_InfoCard_Adapter_InterfaceU'[ QZend_Http_Client_Adapter_InterfaceUZ AZend_Gdata_App_MediaSourceU"Y GZend_Form_Decorator_InterfaceUX 7Zend_Filter_InterfaceU W CZend_Feed_Builder_InterfaceU V CZend_Db_Statement_InterfaceU+U YZend_Controller_Router_Route_InterfaceU%T MZend_Controller_Router_InterfaceU)S UZend_Controller_Dispatcher_InterfaceU!R EZend_Cache_Backend_InterfaceU Q CZend_Auth_Storage_InterfaceU P CZend_Auth_Adapter_InterfaceU.O _Zend_Auth_Adapter_Http_Resolver_InterfaceUN ;Zend_Acl_Role_InterfaceU M CZend_Acl_Resource_InterfaceUL ?Zend_Acl_Assert_InterfaceU#K IZend_Wildfire_Plugin_InterfaceT$J KZend_Wildfire_Channel_InterfaceTI 3Zend_View_InterfaceTH AZend_View_Helper_InterfaceTG ;Zend_Validate_InterfaceT%F MZend_Validate_Hostname_InterfaceT%E MZend_Session_Validator_InterfaceT'D QZend_Session_SaveHandler_InterfaceTC 7Zend_Server_InterfaceT!B EZend_Search_Lucene_InterfaceTA 9Zend_Request_InterfaceT@ ?Zend_Pdf_Filter_InterfaceT&? OZend_Pdf_ElementFactory_InterfaceT,> [Zend_Paginator_ScrollingStyle_InterfaceT%= MZend_Paginator_Adapter_InterfaceT$< KZend_Memory_Container_InterfaceT); UZend_Mail_Storage_Writable_InterfaceT': QZend_Mail_Storage_Folder_InterfaceT9 =Zend_Mail_Part_InterfaceT 8 CZend_Mail_Message_InterfaceT!7 EZend_Log_Formatter_InterfaceT6 ?Zend_Log_Filter_InterfaceT'5 QZend_Loader_PluginLoader_InterfaceT34 iZend_InfoCard_Xml_Security_Transform_InterfaceT(3 SZend_InfoCard_Xml_KeyInfo_InterfaceT(2 SZend_InfoCard_Xml_Element_InterfaceT*1 WZend_InfoCard_Xml_Assertion_InterfaceT-0 ]Zend_InfoCard_Cipher_Symmetric_InterfaceT7/ qZend_InfoCard_Cipher_Symmetric_Aes256cbc_InterfaceT7. qZend_InfoCard_Cipher_Symmetric_Aes128cbc_InterfaceT+- YZend_InfoCard_Cipher_Pki_Rsa_InterfaceT', QZend_InfoCard_Cipher_Pki_InterfaceT$+ KZend_InfoCard_Adapter_InterfaceT'* QZend_Http_Client_Adapter_InterfaceT) AZend_Gdata_App_MediaSourceT"( GZend_Form_Decorator_InterfaceT' 7Zend_Filter_InterfaceT & CZend_Feed_Builder_InterfaceT % CZend_Db_Statement_InterfaceT+$ YZend_Controller_Router_Route_InterfaceT%# MZend_Controller_Router_InterfaceT)" UZend_Controller_Dispatcher_InterfaceT! 5Zend_Captcha_AdapterT!  EZend_Cache_Backend_InterfaceT  CZend_Auth_Storage_InterfaceT  CZend_Auth_Adapter_InterfaceT. _Zend_Auth_Adapter_Http_Resolver_InterfaceT ;Zend_Acl_Role_InterfaceT  CZend_Acl_Resource_InterfaceT ?Zend_Acl_Assert_InterfaceT 3Zend_View_InterfaceS ;Zend_Validate_InterfaceS% MZend_Validate_Hostname_InterfaceS% MZend_Session_Validator_InterfaceS' QZend_Session_SaveHandler_InterfaceS 7Zend_Server_InterfaceS! EZend_Search_Lucene_InterfaceS 9Zend_Request_InterfaceS ?Zend_Pdf_Filter_InterfaceS& OZend_Pdf_ElementFactory_InterfaceS$ KZend_Memory_Container_InterfaceS) UZend_Mail_Storage_Writable_InterfaceS' QZend_Mail_Storage_Folder_InterfaceS! EZend_Log_Formatter_InterfaceS ?Zend_Log_Filter_InterfaceS'
 QZend_Loader_PluginLoader_InterfaceS3	 iZend_InfoCard_Xml_Security_Transform_InterfaceS( SZend_InfoCard_Xml_KeyInfo_InterfaceS( SZend_InfoCard_Xml_Element_InterfaceS* WZend_InfoCard_Xml_Assertion_InterfaceS- ]Zend_InfoCard_Cipher_Symmetric_InterfaceS7 qZend_InfoCard_Cipher_Symmetric_Aes256cbc_InterfaceS   h  nR0{W3jP;_AcE+




e
>
!							q	=	R'uO'V'nCwFd6kArO                              ( SZend_Dojo_View_Helper_NumberSpinnerT+ YZend_Dojo_View_Helper_HorizontalSliderT AZend_Dojo_View_Helper_FormT* WZend_Dojo_View_Helper_FilteringSelectT AZend_Dojo_View_Helper_DojoT) UZend_Dojo_View_Helper_Dojo_ContainerT) UZend_Dojo_View_Helper_DijitContainerT  CZend_Dojo_View_Helper_DijitT& OZend_Dojo_View_Helper_DateTextBoxT* WZend_Dojo_View_Helper_CurrencyTextBoxT& OZend_Dojo_View_Helper_ContentPaneT# IZend_Dojo_View_Helper_ComboBoxT# IZend_Dojo_View_Helper_CheckBoxT! EZend_Dojo_View_Helper_ButtonT* WZend_Dojo_View_Helper_BorderContainerT( SZend_Dojo_View_Helper_AccordionPaneT- ]Zend_Dojo_View_Helper_AccordionContainerT =Zend_Dojo_View_ExceptionT )Zend_Dojo_FormT 9Zend_Dojo_Form_SubFormT* WZend_Dojo_Form_Element_VerticalSliderT-
 ]Zend_Dojo_Form_Element_ValidationTextBoxT'	 QZend_Dojo_Form_Element_TimeTextBoxT# IZend_Dojo_Form_Element_TextBoxT$ KZend_Dojo_Form_Element_TextareaT( SZend_Dojo_Form_Element_SubmitButtonT" GZend_Dojo_Form_Element_SliderT' QZend_Dojo_Form_Element_RadioButtonT+ YZend_Dojo_Form_Element_PasswordTextBoxT) UZend_Dojo_Form_Element_NumberTextBoxT) UZend_Dojo_Form_Element_NumberSpinnerT,  [Zend_Dojo_Form_Element_HorizontalSliderT+ YZend_Dojo_Form_Element_FilteringSelectT&~ OZend_Dojo_Form_Element_DijitMultiT!} EZend_Dojo_Form_Element_DijitT'| QZend_Dojo_Form_Element_DateTextBoxT+{ YZend_Dojo_Form_Element_CurrencyTextBoxT$z KZend_Dojo_Form_Element_ComboBoxT$y KZend_Dojo_Form_Element_CheckBoxT"x GZend_Dojo_Form_Element_ButtonT w CZend_Dojo_Form_DisplayGroupT*v WZend_Dojo_Form_Decorator_TabContainerT,u [Zend_Dojo_Form_Decorator_StackContainerT,t [Zend_Dojo_Form_Decorator_SplitContainerT's QZend_Dojo_Form_Decorator_DijitFormT*r WZend_Dojo_Form_Decorator_DijitElementT,q [Zend_Dojo_Form_Decorator_DijitContainerT)p UZend_Dojo_Form_Decorator_ContentPaneT-o ]Zend_Dojo_Form_Decorator_BorderContainerT+n YZend_Dojo_Form_Decorator_AccordionPaneT0m cZend_Dojo_Form_Decorator_AccordionContainerTl 3Zend_Dojo_ExceptionTk )Zend_Dojo_DataTj !Zend_DebugTi Zend_DbTh 'Zend_Db_TableTg 5Zend_Db_Table_SelectT#f IZend_Db_Table_Select_ExceptionTe 5Zend_Db_Table_RowsetT#d IZend_Db_Table_Rowset_ExceptionT"c GZend_Db_Table_Rowset_AbstractTb /Zend_Db_Table_RowT a CZend_Db_Table_Row_ExceptionT` AZend_Db_Table_Row_AbstractT_ ;Zend_Db_Table_ExceptionT^ 9Zend_Db_Table_AbstractT] /Zend_Db_StatementT\ 7Zend_Db_Statement_PdoT[ ?Zend_Db_Statement_Pdo_IbmTZ =Zend_Db_Statement_OracleT'Y QZend_Db_Statement_Oracle_ExceptionTX =Zend_Db_Statement_MysqliT'W QZend_Db_Statement_Mysqli_ExceptionT V CZend_Db_Statement_ExceptionTU 7Zend_Db_Statement_Db2T$T KZend_Db_Statement_Db2_ExceptionTS )Zend_Db_SelectTR =Zend_Db_Select_ExceptionTQ -Zend_Db_ProfilerTP 9Zend_Db_Profiler_QueryTO =Zend_Db_Profiler_FirebugTN AZend_Db_Profiler_ExceptionTM %Zend_Db_ExprTL /Zend_Db_ExceptionTK AZend_Db_Adapter_Pdo_SqliteTJ ?Zend_Db_Adapter_Pdo_PgsqlTI ;Zend_Db_Adapter_Pdo_OciTH ?Zend_Db_Adapter_Pdo_MysqlTG ?Zend_Db_Adapter_Pdo_MssqlTF ;Zend_Db_Adapter_Pdo_IbmT E CZend_Db_Adapter_Pdo_Ibm_IdsT D CZend_Db_Adapter_Pdo_Ibm_Db2T!C EZend_Db_Adapter_Pdo_AbstractTB 9Zend_Db_Adapter_OracleT%A MZend_Db_Adapter_Oracle_ExceptionT@ 9Zend_Db_Adapter_MysqliT%? MZend_Db_Adapter_Mysqli_ExceptionT> ?Zend_Db_Adapter_ExceptionT= 3Zend_Db_Adapter_Db2T"< GZend_Db_Adapter_Db2_ExceptionT; =Zend_Db_Adapter_AbstractT: Zend_DateT9 3Zend_Date_ExceptionT8 5Zend_Date_DateObjectT   p  |W*Z0 gP9z`F%|T/





r
Q
3

					a	?	!rIn?_;}\3}^=uU5cB# ~Y+ # IZend_Gdata_App_BaseMediaSourceT 3Zend_Gdata_App_BaseT* WZend_Gdata_App_BadMethodCallExceptionT! EZend_Gdata_App_AuthExceptionT Zend_FormT
 /Zend_Form_SubFormT	 3Zend_Form_ExceptionT /Zend_Form_ElementT ;Zend_Form_Element_XhtmlT AZend_Form_Element_TextareaT 9Zend_Form_Element_TextT =Zend_Form_Element_SubmitT =Zend_Form_Element_SelectT ;Zend_Form_Element_ResetT ;Zend_Form_Element_RadioT  AZend_Form_Element_PasswordT" GZend_Form_Element_MultiselectT$~ KZend_Form_Element_MultiCheckboxT} ;Zend_Form_Element_MultiT| ;Zend_Form_Element_ImageT{ =Zend_Form_Element_HiddenTz 9Zend_Form_Element_HashTy 9Zend_Form_Element_FileT x CZend_Form_Element_ExceptionTw AZend_Form_Element_CheckboxTv ?Zend_Form_Element_CaptchaTu =Zend_Form_Element_ButtonTt 9Zend_Form_DisplayGroupT#s IZend_Form_Decorator_ViewScriptT#r IZend_Form_Decorator_ViewHelperTq ?Zend_Form_Decorator_LabelTp ?Zend_Form_Decorator_ImageT o CZend_Form_Decorator_HtmlTagT%n MZend_Form_Decorator_FormElementsTm =Zend_Form_Decorator_FormT!l EZend_Form_Decorator_FieldsetT"k GZend_Form_Decorator_ExceptionTj AZend_Form_Decorator_ErrorsT$i KZend_Form_Decorator_DtDdWrapperT$h KZend_Form_Decorator_DescriptionT g CZend_Form_Decorator_CaptchaT%f MZend_Form_Decorator_Captcha_WordT!e EZend_Form_Decorator_CallbackT!d EZend_Form_Decorator_AbstractTc #Zend_FilterT+b YZend_Filter_Word_UnderscoreToSeparatorT&a OZend_Filter_Word_UnderscoreToDashT+` YZend_Filter_Word_UnderscoreToCamelCaseT*_ WZend_Filter_Word_SeparatorToSeparatorT%^ MZend_Filter_Word_SeparatorToDashT*] WZend_Filter_Word_SeparatorToCamelCaseT(\ SZend_Filter_Word_Separator_AbstractT&[ OZend_Filter_Word_DashToUnderscoreT%Z MZend_Filter_Word_DashToSeparatorT%Y MZend_Filter_Word_DashToCamelCaseT+X YZend_Filter_Word_CamelCaseToUnderscoreT*W WZend_Filter_Word_CamelCaseToSeparatorT%V MZend_Filter_Word_CamelCaseToDashTU 7Zend_Filter_StripTagsTT ?Zend_Filter_StripNewlinesTS 9Zend_Filter_StringTrimTR ?Zend_Filter_StringToUpperTQ ?Zend_Filter_StringToLowerTP 5Zend_Filter_RealPathTO ;Zend_Filter_PregReplaceTN +Zend_Filter_IntTM /Zend_Filter_InputTL 7Zend_Filter_InflectorTK =Zend_Filter_HtmlEntitiesTJ 7Zend_Filter_ExceptionTI +Zend_Filter_DirTH 1Zend_Filter_DigitsTG 5Zend_Filter_BaseNameTF /Zend_Filter_AlphaTE /Zend_Filter_AlnumTD 1Zend_File_TransferT!C EZend_File_Transfer_ExceptionT$B KZend_File_Transfer_Adapter_HttpT(A SZend_File_Transfer_Adapter_AbstractT@ Zend_FeedT? 'Zend_Feed_RssT> 3Zend_Feed_ExceptionT= 3Zend_Feed_Entry_RssT< 5Zend_Feed_Entry_AtomT; =Zend_Feed_Entry_AbstractT: /Zend_Feed_ElementT9 /Zend_Feed_BuilderT8 =Zend_Feed_Builder_HeaderT$7 KZend_Feed_Builder_Header_ItunesT 6 CZend_Feed_Builder_ExceptionT5 ;Zend_Feed_Builder_EntryT4 )Zend_Feed_AtomT3 1Zend_Feed_AbstractT2 )Zend_ExceptionT1 )Zend_Dom_QueryT0 7Zend_Dom_Query_ResultT/ =Zend_Dom_Query_Css2XpathT. 1Zend_Dom_ExceptionT- Zend_DojoT), UZend_Dojo_View_Helper_VerticalSliderT,+ [Zend_Dojo_View_Helper_ValidationTextBoxT&* OZend_Dojo_View_Helper_TimeTextBoxT") GZend_Dojo_View_Helper_TextBoxT#( IZend_Dojo_View_Helper_TextareaT'' QZend_Dojo_View_Helper_TabContainerT'& QZend_Dojo_View_Helper_SubmitButtonT)% UZend_Dojo_View_Helper_StackContainerT)$ UZend_Dojo_View_Helper_SplitContainerT!# EZend_Dojo_View_Helper_SliderT&" OZend_Dojo_View_Helper_RadioButtonT*! WZend_Dojo_View_Helper_PasswordTextBoxT(  SZend_Dojo_View_Helper_NumberTextBoxT   c  j@qJc;mG nF!



v
O
3

				[	/	y<uV,k@lEnDzFi8{Z=%          #r IZend_Gdata_Gapps_EmailListFeedT$q KZend_Gdata_Gapps_EmailListEntryTp +Zend_Gdata_FeedTo 5Zend_Gdata_ExtensionTn =Zend_Gdata_Extension_WhoTm AZend_Gdata_Extension_WhereTl ?Zend_Gdata_Extension_WhenT$k KZend_Gdata_Extension_VisibilityT&j OZend_Gdata_Extension_TransparencyT"i GZend_Gdata_Extension_ReminderT-h ]Zend_Gdata_Extension_RecurrenceExceptionT$g KZend_Gdata_Extension_RecurrenceT f CZend_Gdata_Extension_RatingT'e QZend_Gdata_Extension_OriginalEventT0d cZend_Gdata_Extension_OpenSearchTotalResultsT.c _Zend_Gdata_Extension_OpenSearchStartIndexT0b cZend_Gdata_Extension_OpenSearchItemsPerPageT"a GZend_Gdata_Extension_FeedLinkT*` WZend_Gdata_Extension_ExtendedPropertyT%_ MZend_Gdata_Extension_EventStatusT#^ IZend_Gdata_Extension_EntryLinkT"] GZend_Gdata_Extension_CommentsT&\ OZend_Gdata_Extension_AttendeeTypeT([ SZend_Gdata_Extension_AttendeeStatusTZ +Zend_Gdata_ExifTY 5Zend_Gdata_Exif_FeedT#X IZend_Gdata_Exif_Extension_TimeT#W IZend_Gdata_Exif_Extension_TagsT$V KZend_Gdata_Exif_Extension_ModelT#U IZend_Gdata_Exif_Extension_MakeT"T GZend_Gdata_Exif_Extension_IsoT,S [Zend_Gdata_Exif_Extension_ImageUniqueIdT$R KZend_Gdata_Exif_Extension_FStopT*Q WZend_Gdata_Exif_Extension_FocalLengthT$P KZend_Gdata_Exif_Extension_FlashT'O QZend_Gdata_Exif_Extension_ExposureT'N QZend_Gdata_Exif_Extension_DistanceTM 7Zend_Gdata_Exif_EntryTL -Zend_Gdata_EntryTK +Zend_Gdata_DocsTJ 7Zend_Gdata_Docs_QueryT%I MZend_Gdata_Docs_DocumentListFeedT&H OZend_Gdata_Docs_DocumentListEntryTG 9Zend_Gdata_ClientLoginTF 3Zend_Gdata_CalendarT!E EZend_Gdata_Calendar_ListFeedT"D GZend_Gdata_Calendar_ListEntryT-C ]Zend_Gdata_Calendar_Extension_WebContentT+B YZend_Gdata_Calendar_Extension_TimezoneT9A uZend_Gdata_Calendar_Extension_SendEventNotificationsT+@ YZend_Gdata_Calendar_Extension_SelectedT+? YZend_Gdata_Calendar_Extension_QuickAddT'> QZend_Gdata_Calendar_Extension_LinkT)= UZend_Gdata_Calendar_Extension_HiddenT(< SZend_Gdata_Calendar_Extension_ColorT.; _Zend_Gdata_Calendar_Extension_AccessLevelT#: IZend_Gdata_Calendar_EventQueryT"9 GZend_Gdata_Calendar_EventFeedT#8 IZend_Gdata_Calendar_EventEntryT7 1Zend_Gdata_AuthSubT6 )Zend_Gdata_AppT5 3Zend_Gdata_App_UtilT#4 IZend_Gdata_App_MediaFileSourceT3 ?Zend_Gdata_App_MediaEntryT22 gZend_Gdata_App_LoggingHttpClientAdapterSocketT1 AZend_Gdata_App_IOExceptionT,0 [Zend_Gdata_App_InvalidArgumentExceptionT!/ EZend_Gdata_App_HttpExceptionT$. KZend_Gdata_App_FeedSourceParentT#- IZend_Gdata_App_FeedEntryParentT, 3Zend_Gdata_App_FeedT+ =Zend_Gdata_App_ExtensionT!* EZend_Gdata_App_Extension_UriT%) MZend_Gdata_App_Extension_UpdatedT#( IZend_Gdata_App_Extension_TitleT"' GZend_Gdata_App_Extension_TextT%& MZend_Gdata_App_Extension_SummaryT&% OZend_Gdata_App_Extension_SubtitleT$$ KZend_Gdata_App_Extension_SourceT$# KZend_Gdata_App_Extension_RightsT'" QZend_Gdata_App_Extension_PublishedT$! KZend_Gdata_App_Extension_PersonT"  GZend_Gdata_App_Extension_NameT" GZend_Gdata_App_Extension_LogoT" GZend_Gdata_App_Extension_LinkT  CZend_Gdata_App_Extension_IdT" GZend_Gdata_App_Extension_IconT' QZend_Gdata_App_Extension_GeneratorT# IZend_Gdata_App_Extension_EmailT% MZend_Gdata_App_Extension_ElementT# IZend_Gdata_App_Extension_DraftT% MZend_Gdata_App_Extension_ControlT) UZend_Gdata_App_Extension_ContributorT% MZend_Gdata_App_Extension_ContentT& OZend_Gdata_App_Extension_CategoryT$ KZend_Gdata_App_Extension_AuthorT =Zend_Gdata_App_ExceptionT 5Zend_Gdata_App_EntryT, [Zend_Gdata_App_CaptchaRequiredExceptionT   `  wF'}T-tR/c@!zM#





h
7
			r	D	T'kG"vIe8~Ga8
\2}Z6                  &R OZend_Gdata_Spreadsheets_CellEntryTQ -Zend_Gdata_QueryTP /Zend_Gdata_PhotosT O CZend_Gdata_Photos_UserQueryTN AZend_Gdata_Photos_UserFeedT M CZend_Gdata_Photos_UserEntryTL AZend_Gdata_Photos_TagEntryT!K EZend_Gdata_Photos_PhotoQueryT J CZend_Gdata_Photos_PhotoFeedT!I EZend_Gdata_Photos_PhotoEntryT&H OZend_Gdata_Photos_Extension_WidthT'G QZend_Gdata_Photos_Extension_WeightT(F SZend_Gdata_Photos_Extension_VersionT%E MZend_Gdata_Photos_Extension_UserT*D WZend_Gdata_Photos_Extension_TimestampT*C WZend_Gdata_Photos_Extension_ThumbnailT%B MZend_Gdata_Photos_Extension_SizeT)A UZend_Gdata_Photos_Extension_RotationT+@ YZend_Gdata_Photos_Extension_QuotaLimitT-? ]Zend_Gdata_Photos_Extension_QuotaCurrentT)> UZend_Gdata_Photos_Extension_PositionT(= SZend_Gdata_Photos_Extension_PhotoIdT3< iZend_Gdata_Photos_Extension_NumPhotosRemainingT*; WZend_Gdata_Photos_Extension_NumPhotosT): UZend_Gdata_Photos_Extension_NicknameT%9 MZend_Gdata_Photos_Extension_NameT28 gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumT)7 UZend_Gdata_Photos_Extension_LocationT#6 IZend_Gdata_Photos_Extension_IdT'5 QZend_Gdata_Photos_Extension_HeightT24 gZend_Gdata_Photos_Extension_CommentingEnabledT-3 ]Zend_Gdata_Photos_Extension_CommentCountT'2 QZend_Gdata_Photos_Extension_ClientT)1 UZend_Gdata_Photos_Extension_ChecksumT*0 WZend_Gdata_Photos_Extension_BytesUsedT(/ SZend_Gdata_Photos_Extension_AlbumIdT'. QZend_Gdata_Photos_Extension_AccessT#- IZend_Gdata_Photos_CommentEntryT!, EZend_Gdata_Photos_AlbumQueryT + CZend_Gdata_Photos_AlbumFeedT!* EZend_Gdata_Photos_AlbumEntryT) -Zend_Gdata_MediaT( 7Zend_Gdata_Media_FeedT*' WZend_Gdata_Media_Extension_MediaTitleT.& _Zend_Gdata_Media_Extension_MediaThumbnailT)% UZend_Gdata_Media_Extension_MediaTextT0$ cZend_Gdata_Media_Extension_MediaRestrictionT+# YZend_Gdata_Media_Extension_MediaRatingT+" YZend_Gdata_Media_Extension_MediaPlayerT-! ]Zend_Gdata_Media_Extension_MediaKeywordsT)  UZend_Gdata_Media_Extension_MediaHashT* WZend_Gdata_Media_Extension_MediaGroupT0 cZend_Gdata_Media_Extension_MediaDescriptionT+ YZend_Gdata_Media_Extension_MediaCreditT. _Zend_Gdata_Media_Extension_MediaCopyrightT, [Zend_Gdata_Media_Extension_MediaContentT- ]Zend_Gdata_Media_Extension_MediaCategoryT 9Zend_Gdata_Media_EntryT AZend_Gdata_Kind_EventEntryT 7Zend_Gdata_HttpClientT )Zend_Gdata_GeoT 3Zend_Gdata_Geo_FeedT$ KZend_Gdata_Geo_Extension_GmlPosT& OZend_Gdata_Geo_Extension_GmlPointT) UZend_Gdata_Geo_Extension_GeoRssWhereT 5Zend_Gdata_Geo_EntryT -Zend_Gdata_GbaseT" GZend_Gdata_Gbase_SnippetQueryT! EZend_Gdata_Gbase_SnippetFeedT" GZend_Gdata_Gbase_SnippetEntryT 9Zend_Gdata_Gbase_QueryT AZend_Gdata_Gbase_ItemQueryT
 ?Zend_Gdata_Gbase_ItemFeedT	 AZend_Gdata_Gbase_ItemEntryT 7Zend_Gdata_Gbase_FeedT- ]Zend_Gdata_Gbase_Extension_BaseAttributeT 9Zend_Gdata_Gbase_EntryT -Zend_Gdata_GappsT AZend_Gdata_Gapps_UserQueryT ?Zend_Gdata_Gapps_UserFeedT AZend_Gdata_Gapps_UserEntryT& OZend_Gdata_Gapps_ServiceExceptionT  9Zend_Gdata_Gapps_QueryT# IZend_Gdata_Gapps_NicknameQueryT"~ GZend_Gdata_Gapps_NicknameFeedT#} IZend_Gdata_Gapps_NicknameEntryT%| MZend_Gdata_Gapps_Extension_QuotaT({ SZend_Gdata_Gapps_Extension_NicknameT$z KZend_Gdata_Gapps_Extension_NameT%y MZend_Gdata_Gapps_Extension_LoginT)x UZend_Gdata_Gapps_Extension_EmailListTw 9Zend_Gdata_Gapps_ErrorT-v ]Zend_Gdata_Gapps_EmailListRecipientQueryT,u [Zend_Gdata_Gapps_EmailListRecipientFeedT-t ]Zend_Gdata_Gapps_EmailListRecipientEntryT$s KZend_Gdata_Gapps_EmailListQueryT   ]  Pf<~^6l?Z,


r
F
				c	9	O#wKkE zR,	^6x?Z6eA  &/ OZend_InfoCard_Xml_KeyInfo_XmlDSigT&. OZend_InfoCard_Xml_KeyInfo_DefaultT'- QZend_InfoCard_Xml_KeyInfo_AbstractT , CZend_InfoCard_Xml_ExceptionT#+ IZend_InfoCard_Xml_EncryptedKeyT$* KZend_InfoCard_Xml_EncryptedDataT+) YZend_InfoCard_Xml_EncryptedData_XmlEncT-( ]Zend_InfoCard_Xml_EncryptedData_AbstractT' ?Zend_InfoCard_Xml_ElementT & CZend_InfoCard_Xml_AssertionT%% MZend_InfoCard_Xml_Assertion_SamlT$ ;Zend_InfoCard_ExceptionT%# MZend_InfoCard_Exception_AbstractT" 5Zend_InfoCard_ClaimsT! 5Zend_InfoCard_CipherT5  mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcT5 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcT4 kZend_InfoCard_Cipher_Symmetric_Adapter_AbstractT) UZend_InfoCard_Cipher_Pki_Adapter_RsaT. _Zend_InfoCard_Cipher_Pki_Adapter_AbstractT# IZend_InfoCard_Cipher_ExceptionT$ KZend_InfoCard_Adapter_ExceptionT" GZend_InfoCard_Adapter_DefaultT 1Zend_Http_ResponseT 3Zend_Http_ExceptionT 3Zend_Http_CookieJarT -Zend_Http_CookieT -Zend_Http_ClientT AZend_Http_Client_ExceptionT" GZend_Http_Client_Adapter_TestT$ KZend_Http_Client_Adapter_SocketT# IZend_Http_Client_Adapter_ProxyT' QZend_Http_Client_Adapter_ExceptionT !Zend_GdataT 1Zend_Gdata_YouTubeT" GZend_Gdata_YouTube_VideoQueryT! EZend_Gdata_YouTube_VideoFeedT"
 GZend_Gdata_YouTube_VideoEntryT(	 SZend_Gdata_YouTube_UserProfileEntryT( SZend_Gdata_YouTube_SubscriptionFeedT) UZend_Gdata_YouTube_SubscriptionEntryT) UZend_Gdata_YouTube_PlaylistVideoFeedT* WZend_Gdata_YouTube_PlaylistVideoEntryT( SZend_Gdata_YouTube_PlaylistListFeedT) UZend_Gdata_YouTube_PlaylistListEntryT" GZend_Gdata_YouTube_MediaEntryT* WZend_Gdata_YouTube_Extension_UsernameT'  QZend_Gdata_YouTube_Extension_TokenT( SZend_Gdata_YouTube_Extension_StatusT,~ [Zend_Gdata_YouTube_Extension_StatisticsT'} QZend_Gdata_YouTube_Extension_StateT(| SZend_Gdata_YouTube_Extension_SchoolT-{ ]Zend_Gdata_YouTube_Extension_ReleaseDateT.z _Zend_Gdata_YouTube_Extension_RelationshipT&y OZend_Gdata_YouTube_Extension_RacyT)x UZend_Gdata_YouTube_Extension_PrivateT*w WZend_Gdata_YouTube_Extension_PositionT,v [Zend_Gdata_YouTube_Extension_OccupationT)u UZend_Gdata_YouTube_Extension_NoEmbedT't QZend_Gdata_YouTube_Extension_MusicT(s SZend_Gdata_YouTube_Extension_MoviesT,r [Zend_Gdata_YouTube_Extension_MediaGroupT.q _Zend_Gdata_YouTube_Extension_MediaContentT*p WZend_Gdata_YouTube_Extension_LocationT&o OZend_Gdata_YouTube_Extension_LinkT*n WZend_Gdata_YouTube_Extension_HometownT)m UZend_Gdata_YouTube_Extension_HobbiesT(l SZend_Gdata_YouTube_Extension_GenderT*k WZend_Gdata_YouTube_Extension_DurationT-j ]Zend_Gdata_YouTube_Extension_DescriptionT)i UZend_Gdata_YouTube_Extension_ControlT)h UZend_Gdata_YouTube_Extension_CompanyT'g QZend_Gdata_YouTube_Extension_BooksT%f MZend_Gdata_YouTube_Extension_AgeT#e IZend_Gdata_YouTube_ContactFeedT$d KZend_Gdata_YouTube_ContactEntryT#c IZend_Gdata_YouTube_CommentFeedT$b KZend_Gdata_YouTube_CommentEntryTa ;Zend_Gdata_SpreadsheetsT*` WZend_Gdata_Spreadsheets_WorksheetFeedT+_ YZend_Gdata_Spreadsheets_WorksheetEntryT,^ [Zend_Gdata_Spreadsheets_SpreadsheetFeedT-] ]Zend_Gdata_Spreadsheets_SpreadsheetEntryT&\ OZend_Gdata_Spreadsheets_ListQueryT%[ MZend_Gdata_Spreadsheets_ListFeedT&Z OZend_Gdata_Spreadsheets_ListEntryT/Y aZend_Gdata_Spreadsheets_Extension_RowCountT-X ]Zend_Gdata_Spreadsheets_Extension_CustomT/W aZend_Gdata_Spreadsheets_Extension_ColCountT+V YZend_Gdata_Spreadsheets_Extension_CellT*U WZend_Gdata_Spreadsheets_DocumentQueryT&T OZend_Gdata_Spreadsheets_CellQueryT%S MZend_Gdata_Spreadsheets_CellFeedT   v  q:kQ7kI${]I-x_A&




z
Y
8
					~	a	B	1	`@ }Z6fGq_AeH+vW5iO3a;            % 7Zend_Memory_ExceptionT$ 7Zend_Memory_ContainerT"# GZend_Memory_Container_MovableT!" EZend_Memory_Container_LockedT!! EZend_Memory_AccessControllerT  3Zend_Measure_WeightT 3Zend_Measure_VolumeT% MZend_Measure_Viscosity_KinematicT# IZend_Measure_Viscosity_DynamicT 3Zend_Measure_TorqueT /Zend_Measure_TimeT =Zend_Measure_TemperatureT 1Zend_Measure_SpeedT 7Zend_Measure_PressureT 1Zend_Measure_PowerT 3Zend_Measure_NumberT 9Zend_Measure_LightnessT 3Zend_Measure_LengthT ?Zend_Measure_IlluminationT 9Zend_Measure_FrequencyT 1Zend_Measure_ForceT =Zend_Measure_Flow_VolumeT 9Zend_Measure_Flow_MoleT 9Zend_Measure_Flow_MassT 9Zend_Measure_ExceptionT 3Zend_Measure_EnergyT 5Zend_Measure_DensityT
 5Zend_Measure_CurrentT 	 CZend_Measure_Cooking_WeightT  CZend_Measure_Cooking_VolumeT =Zend_Measure_CapacitanceT 3Zend_Measure_BinaryT /Zend_Measure_AreaT 1Zend_Measure_AngleT ?Zend_Measure_AccelerationT 7Zend_Measure_AbstractT Zend_MailT  =Zend_Mail_Transport_SmtpT! EZend_Mail_Transport_SendmailT"~ GZend_Mail_Transport_ExceptionT!} EZend_Mail_Transport_AbstractT| /Zend_Mail_StorageT'{ QZend_Mail_Storage_Writable_MaildirTz 9Zend_Mail_Storage_Pop3Ty 9Zend_Mail_Storage_MboxTx ?Zend_Mail_Storage_MaildirTw 9Zend_Mail_Storage_ImapTv =Zend_Mail_Storage_FolderT"u GZend_Mail_Storage_Folder_MboxT%t MZend_Mail_Storage_Folder_MaildirT s CZend_Mail_Storage_ExceptionTr AZend_Mail_Storage_AbstractTq ;Zend_Mail_Protocol_SmtpT'p QZend_Mail_Protocol_Smtp_Auth_PlainT'o QZend_Mail_Protocol_Smtp_Auth_LoginT)n UZend_Mail_Protocol_Smtp_Auth_Crammd5Tm ;Zend_Mail_Protocol_Pop3Tl ;Zend_Mail_Protocol_ImapT!k EZend_Mail_Protocol_ExceptionT j CZend_Mail_Protocol_AbstractTi )Zend_Mail_PartTh 3Zend_Mail_Part_FileTg /Zend_Mail_MessageTf 9Zend_Mail_Message_FileTe 3Zend_Mail_ExceptionTd Zend_LogTc 9Zend_Log_Writer_StreamTb 5Zend_Log_Writer_NullTa 5Zend_Log_Writer_MockT` ;Zend_Log_Writer_FirebugT_ 1Zend_Log_Writer_DbT^ =Zend_Log_Writer_AbstractT] 9Zend_Log_Formatter_XmlT\ ?Zend_Log_Formatter_SimpleT[ =Zend_Log_Filter_SuppressTZ =Zend_Log_Filter_PriorityTY ;Zend_Log_Filter_MessageTX 1Zend_Log_ExceptionTW #Zend_LocaleTV -Zend_Locale_MathTU =Zend_Locale_Math_PhpMathTT AZend_Locale_Math_ExceptionTS 1Zend_Locale_FormatTR 7Zend_Locale_ExceptionTQ -Zend_Locale_DataT!P EZend_Locale_Data_TranslationTO #Zend_LoaderTN =Zend_Loader_PluginLoaderT'M QZend_Loader_PluginLoader_ExceptionTL 7Zend_Loader_ExceptionTK Zend_LdapTJ 3Zend_Ldap_ExceptionTI #Zend_LayoutTH 7Zend_Layout_ExceptionT)G UZend_Layout_Controller_Plugin_LayoutT0F cZend_Layout_Controller_Action_Helper_LayoutTE Zend_JsonTD -Zend_Json_ServerTC 5Zend_Json_Server_SmdT!B EZend_Json_Server_Smd_ServiceTA ?Zend_Json_Server_ResponseT#@ IZend_Json_Server_Response_HttpT? =Zend_Json_Server_RequestT"> GZend_Json_Server_Request_HttpT= AZend_Json_Server_ExceptionT< 9Zend_Json_Server_ErrorT; 3Zend_Json_ExceptionT: /Zend_Json_EncoderT9 /Zend_Json_DecoderT8 'Zend_InfoCardT-7 ]Zend_InfoCard_Xml_SecurityTokenReferenceT6 AZend_InfoCard_Xml_SecurityT)5 UZend_InfoCard_Xml_Security_TransformT44 kZend_InfoCard_Xml_Security_Transform_XmlExcC14NT33 iZend_InfoCard_Xml_Security_Transform_ExceptionT<2 {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignatureT)1 UZend_InfoCard_Xml_Security_ExceptionT0 ?Zend_InfoCard_Xml_KeyInfoT   f  gP>sI$Z2g9"w[:




j
L
+
				m	M	&	Y/R,u_H2a3^h#t5U/
                         9Zend_Pdf_Resource_FontT!
 EZend_Pdf_Resource_Font_Type0T"	 GZend_Pdf_Resource_Font_SimpleT+ YZend_Pdf_Resource_Font_Simple_StandardT8 sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsT6 oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanT7 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicT; yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicT5 mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldT2 gZend_Pdf_Resource_Font_Simple_Standard_SymbolT< {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueTA  Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliqueT9 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldT5~ mZend_Pdf_Resource_Font_Simple_Standard_HelveticaT:} wZend_Pdf_Resource_Font_Simple_Standard_CourierObliqueT>| Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliqueT7{ qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldT3z iZend_Pdf_Resource_Font_Simple_Standard_CourierT)y UZend_Pdf_Resource_Font_Simple_ParsedT2x gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypeT*w WZend_Pdf_Resource_Font_FontDescriptorT%v MZend_Pdf_Resource_Font_ExtractedT#u IZend_Pdf_Resource_Font_CidFontT,t [Zend_Pdf_Resource_Font_CidFont_TrueTypeTs /Zend_Pdf_PhpArrayTr +Zend_Pdf_ParserTq 9Zend_Pdf_Parser_StreamTp 'Zend_Pdf_PageTo )Zend_Pdf_ImageTn 'Zend_Pdf_FontT m CZend_Pdf_Filter_CompressionT$l KZend_Pdf_Filter_Compression_LzwT&k OZend_Pdf_Filter_Compression_FlateTj =Zend_Pdf_Filter_AsciiHexTi ;Zend_Pdf_Filter_Ascii85T"h GZend_Pdf_FileParserDataSourceT)g UZend_Pdf_FileParserDataSource_StringT'f QZend_Pdf_FileParserDataSource_FileTe 3Zend_Pdf_FileParserTd ?Zend_Pdf_FileParser_ImageT"c GZend_Pdf_FileParser_Image_PngTb =Zend_Pdf_FileParser_FontT&a OZend_Pdf_FileParser_Font_OpenTypeT/` aZend_Pdf_FileParser_Font_OpenType_TrueTypeT_ 1Zend_Pdf_ExceptionT^ ;Zend_Pdf_ElementFactoryT"] GZend_Pdf_ElementFactory_ProxyT\ -Zend_Pdf_ElementT[ ;Zend_Pdf_Element_StringT#Z IZend_Pdf_Element_String_BinaryTY ;Zend_Pdf_Element_StreamTX AZend_Pdf_Element_ReferenceT%W MZend_Pdf_Element_Reference_TableT'V QZend_Pdf_Element_Reference_ContextTU ;Zend_Pdf_Element_ObjectT#T IZend_Pdf_Element_Object_StreamTS =Zend_Pdf_Element_NumericTR 7Zend_Pdf_Element_NullTQ 7Zend_Pdf_Element_NameT P CZend_Pdf_Element_DictionaryTO =Zend_Pdf_Element_BooleanTN 9Zend_Pdf_Element_ArrayTM )Zend_Pdf_ColorTL 1Zend_Pdf_Color_RgbTK 3Zend_Pdf_Color_HtmlTJ =Zend_Pdf_Color_GrayScaleTI 3Zend_Pdf_Color_CmykTH 'Zend_Pdf_CmapTG AZend_Pdf_Cmap_TrimmedTableT!F EZend_Pdf_Cmap_SegmentToDeltaTE AZend_Pdf_Cmap_ByteEncodingT&D OZend_Pdf_Cmap_ByteEncoding_StaticTC )Zend_PaginatorT*B WZend_Paginator_ScrollingStyle_SlidingT*A WZend_Paginator_ScrollingStyle_JumpingT*@ WZend_Paginator_ScrollingStyle_ElasticT&? OZend_Paginator_ScrollingStyle_AllT> =Zend_Paginator_ExceptionT = CZend_Paginator_Adapter_NullT$< KZend_Paginator_Adapter_IteratorT$; KZend_Paginator_Adapter_DbSelectT!: EZend_Paginator_Adapter_ArrayT9 #Zend_OpenIdT8 5Zend_OpenId_ProviderT7 ?Zend_OpenId_Provider_UserT&6 OZend_OpenId_Provider_User_SessionT!5 EZend_OpenId_Provider_StorageT&4 OZend_OpenId_Provider_Storage_FileT3 7Zend_OpenId_ExtensionT2 AZend_OpenId_Extension_SregT1 7Zend_OpenId_ExceptionT0 5Zend_OpenId_ConsumerT!/ EZend_OpenId_Consumer_StorageT&. OZend_OpenId_Consumer_Storage_FileT- Zend_MimeT, )Zend_Mime_PartT+ /Zend_Mime_MessageT* 3Zend_Mime_ExceptionT) -Zend_Mime_DecodeT( #Zend_MemoryT' /Zend_Memory_ValueT& 3Zend_Memory_ManagerT   V  rK1{jT18v,j6	


g
,				u	P	/	a'~O)f(f4yQ]0i4tD                                                          %a MZend_Search_Lucene_Search_WeightT*` WZend_Search_Lucene_Search_Weight_TermT,_ [Zend_Search_Lucene_Search_Weight_PhraseT/^ aZend_Search_Lucene_Search_Weight_MultiTermT+] YZend_Search_Lucene_Search_Weight_EmptyT-\ ]Zend_Search_Lucene_Search_Weight_BooleanT)[ UZend_Search_Lucene_Search_SimilarityT1Z eZend_Search_Lucene_Search_Similarity_DefaultT)Y UZend_Search_Lucene_Search_QueryTokenT3X iZend_Search_Lucene_Search_QueryParserExceptionT1W eZend_Search_Lucene_Search_QueryParserContextT*V WZend_Search_Lucene_Search_QueryParserT)U UZend_Search_Lucene_Search_QueryLexerT'T QZend_Search_Lucene_Search_QueryHitT)S UZend_Search_Lucene_Search_QueryEntryT.R _Zend_Search_Lucene_Search_QueryEntry_TermT2Q gZend_Search_Lucene_Search_QueryEntry_SubqueryT0P cZend_Search_Lucene_Search_QueryEntry_PhraseT$O KZend_Search_Lucene_Search_QueryT-N ]Zend_Search_Lucene_Search_Query_WildcardT)M UZend_Search_Lucene_Search_Query_TermT*L WZend_Search_Lucene_Search_Query_RangeT+K YZend_Search_Lucene_Search_Query_PhraseT.J _Zend_Search_Lucene_Search_Query_MultiTermT2I gZend_Search_Lucene_Search_Query_InsignificantT*H WZend_Search_Lucene_Search_Query_FuzzyT*G WZend_Search_Lucene_Search_Query_EmptyT,F [Zend_Search_Lucene_Search_Query_BooleanT:E wZend_Search_Lucene_Search_BooleanExpressionRecognizerTD =Zend_Search_Lucene_ProxyT%C MZend_Search_Lucene_PriorityQueueT#B IZend_Search_Lucene_LockManagerT$A KZend_Search_Lucene_Index_WriterT&@ OZend_Search_Lucene_Index_TermInfoT"? GZend_Search_Lucene_Index_TermT+> YZend_Search_Lucene_Index_SegmentWriterT8= sZend_Search_Lucene_Index_SegmentWriter_StreamWriterT:< wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterT+; YZend_Search_Lucene_Index_SegmentMergerT6: oZend_Search_Lucene_Index_SegmentInfoPriorityQueueT)9 UZend_Search_Lucene_Index_SegmentInfoT'8 QZend_Search_Lucene_Index_FieldInfoT.7 _Zend_Search_Lucene_Index_DictionaryLoaderT!6 EZend_Search_Lucene_FSMActionT5 9Zend_Search_Lucene_FSMT4 =Zend_Search_Lucene_FieldT!3 EZend_Search_Lucene_ExceptionT 2 CZend_Search_Lucene_DocumentT%1 MZend_Search_Lucene_Document_HtmlT,0 [Zend_Search_Lucene_Analysis_TokenFilterT6/ oZend_Search_Lucene_Analysis_TokenFilter_StopWordsT7. qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsT:- wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8T6, oZend_Search_Lucene_Analysis_TokenFilter_LowerCaseT&+ OZend_Search_Lucene_Analysis_TokenT)* UZend_Search_Lucene_Analysis_AnalyzerT0) cZend_Search_Lucene_Analysis_Analyzer_CommonT8( sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumTI' Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitiveT5& mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8TF% Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitiveT8$ sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumTI# Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitiveT5" mZend_Search_Lucene_Analysis_Analyzer_Common_TextTF! Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiveT  7Zend_Search_ExceptionT -Zend_Rest_ServerT AZend_Rest_Server_ExceptionT 3Zend_Rest_ExceptionT -Zend_Rest_ClientT ;Zend_Rest_Client_ResultT AZend_Rest_Client_ExceptionT 'Zend_RegistryT Zend_PdfT! EZend_Pdf_UpdateInfoContainerT -Zend_Pdf_TrailerT ;Zend_Pdf_Trailer_KeeperT AZend_Pdf_Trailer_GeneratorT )Zend_Pdf_StyleT 7Zend_Pdf_StringParserT /Zend_Pdf_ResourceT# IZend_Pdf_Resource_ImageFactoryT ;Zend_Pdf_Resource_ImageT! EZend_Pdf_Resource_Image_TiffT  CZend_Pdf_Resource_Image_PngT! EZend_Pdf_Resource_Image_JpegT   b  h9m<xM.tR1xM1



n
O
0
					T	'	 _7mN,kA~MuHY+}S&`?                                   &C OZend_Service_Yahoo_ImageResultSetT#B IZend_Service_Yahoo_ImageResultTA =Zend_Service_Yahoo_ImageT@ ;Zend_Service_TechnoratiT#? IZend_Service_Technorati_WeblogT"> GZend_Service_Technorati_UtilsT*= WZend_Service_Technorati_TagsResultSetT'< QZend_Service_Technorati_TagsResultT); UZend_Service_Technorati_TagResultSetT&: OZend_Service_Technorati_TagResultT,9 [Zend_Service_Technorati_SearchResultSetT)8 UZend_Service_Technorati_SearchResultT&7 OZend_Service_Technorati_ResultSetT#6 IZend_Service_Technorati_ResultT*5 WZend_Service_Technorati_KeyInfoResultT*4 WZend_Service_Technorati_GetInfoResultT&3 OZend_Service_Technorati_ExceptionT12 eZend_Service_Technorati_DailyCountsResultSetT.1 _Zend_Service_Technorati_DailyCountsResultT,0 [Zend_Service_Technorati_CosmosResultSetT)/ UZend_Service_Technorati_CosmosResultT+. YZend_Service_Technorati_BlogInfoResultT#- IZend_Service_Technorati_AuthorT, ;Zend_Service_StrikeIronT(+ SZend_Service_StrikeIron_ZipCodeInfoT2* gZend_Service_StrikeIron_USAddressVerificationT-) ]Zend_Service_StrikeIron_SalesUseTaxBasicT&( OZend_Service_StrikeIron_ExceptionT&' OZend_Service_StrikeIron_DecoratorT!& EZend_Service_StrikeIron_BaseT% ;Zend_Service_SlideShareT&$ OZend_Service_SlideShare_SlideShowT&# OZend_Service_SlideShare_ExceptionT" 1Zend_Service_SimpyT$! KZend_Service_Simpy_WatchlistSetT*  WZend_Service_Simpy_WatchlistFilterSetT' QZend_Service_Simpy_WatchlistFilterT! EZend_Service_Simpy_WatchlistT ?Zend_Service_Simpy_TagSetT 9Zend_Service_Simpy_TagT AZend_Service_Simpy_NoteSetT ;Zend_Service_Simpy_NoteT AZend_Service_Simpy_LinkSetT! EZend_Service_Simpy_LinkQueryT ;Zend_Service_Simpy_LinkT 9Zend_Service_ReCaptchaT$ KZend_Service_ReCaptcha_ResponseT$ KZend_Service_ReCaptcha_MailHideT. _Zend_Service_ReCaptcha_MailHide_ExceptionT% MZend_Service_ReCaptcha_ExceptionT 7Zend_Service_NirvanixT# IZend_Service_Nirvanix_ResponseT) UZend_Service_Nirvanix_Namespace_ImfsT) UZend_Service_Nirvanix_Namespace_BaseT$ KZend_Service_Nirvanix_ExceptionT 3Zend_Service_FlickrT" GZend_Service_Flickr_ResultSetT
 AZend_Service_Flickr_ResultT	 ?Zend_Service_Flickr_ImageT 9Zend_Service_ExceptionT 9Zend_Service_DeliciousT& OZend_Service_Delicious_SimplePostT$ KZend_Service_Delicious_PostListT  CZend_Service_Delicious_PostT% MZend_Service_Delicious_ExceptionT  CZend_Service_AudioscrobblerT 3Zend_Service_AmazonT'  QZend_Service_Amazon_SimilarProductT" GZend_Service_Amazon_ResultSetT~ ?Zend_Service_Amazon_QueryT!} EZend_Service_Amazon_OfferSetT| ?Zend_Service_Amazon_OfferT&{ OZend_Service_Amazon_ListmaniaListTz =Zend_Service_Amazon_ItemTy ?Zend_Service_Amazon_ImageT(x SZend_Service_Amazon_EditorialReviewT'w QZend_Service_Amazon_CustomerReviewT$v KZend_Service_Amazon_AccessoriesTu 5Zend_Service_AkismetTt 7Zend_Service_AbstractTs 9Zend_Server_ReflectionT'r QZend_Server_Reflection_ReturnValueT%q MZend_Server_Reflection_PrototypeT%p MZend_Server_Reflection_ParameterT o CZend_Server_Reflection_NodeT"n GZend_Server_Reflection_MethodT$m KZend_Server_Reflection_FunctionT-l ]Zend_Server_Reflection_Function_AbstractT%k MZend_Server_Reflection_ExceptionT!j EZend_Server_Reflection_ClassTi 7Zend_Server_ExceptionTh 5Zend_Server_AbstractTg 1Zend_Search_LuceneT$f KZend_Search_Lucene_Storage_FileT+e YZend_Search_Lucene_Storage_File_MemoryT/d aZend_Search_Lucene_Storage_File_FilesystemT)c UZend_Search_Lucene_Storage_DirectoryT4b kZend_Search_Lucene_Storage_Directory_FilesystemT   s  ~T.g@qR)uU5yT6



`
3
						g	Q	,		zW2tU9~cF#sS1sQ/lR9vZ8nH#                   6 CZend_View_Helper_FormErrorsT!5 EZend_View_Helper_FormElementT"4 GZend_View_Helper_FormCheckboxT 3 CZend_View_Helper_FormButtonT2 7Zend_View_Helper_FormT1 ?Zend_View_Helper_FieldsetT0 =Zend_View_Helper_DoctypeT!/ EZend_View_Helper_DeclareVarsT. ;Zend_View_Helper_ActionT- ?Zend_View_Helper_AbstractT, 3Zend_View_ExceptionT+ 1Zend_View_AbstractT* %Zend_VersionT) 'Zend_ValidateT( AZend_Validate_StringLengthT' 3Zend_Validate_RegexT& 9Zend_Validate_NotEmptyT% 9Zend_Validate_LessThanT$ -Zend_Validate_IpT# /Zend_Validate_IntT" 7Zend_Validate_InArrayT! ;Zend_Validate_IdenticalT  9Zend_Validate_HostnameT ?Zend_Validate_Hostname_SeT ?Zend_Validate_Hostname_NoT ?Zend_Validate_Hostname_LiT ?Zend_Validate_Hostname_HuT ?Zend_Validate_Hostname_FiT ?Zend_Validate_Hostname_DeT ?Zend_Validate_Hostname_ChT ?Zend_Validate_Hostname_AtT /Zend_Validate_HexT ?Zend_Validate_GreaterThanT 3Zend_Validate_FloatT ?Zend_Validate_File_UploadT ;Zend_Validate_File_SizeT! EZend_Validate_File_ImageSizeT! EZend_Validate_File_FilesSizeT! EZend_Validate_File_ExtensionT =Zend_Validate_File_CountT ;Zend_Validate_ExceptionT AZend_Validate_EmailAddressT 5Zend_Validate_DigitsT 1Zend_Validate_DateT
 3Zend_Validate_CcnumT	 7Zend_Validate_BetweenT 7Zend_Validate_BarcodeT AZend_Validate_Barcode_UpcAT  CZend_Validate_Barcode_Ean13T 3Zend_Validate_AlphaT 3Zend_Validate_AlnumT 9Zend_Validate_AbstractT Zend_UriT 'Zend_Uri_HttpT  1Zend_Uri_ExceptionT )Zend_TranslateT~ =Zend_Translate_ExceptionT} 9Zend_Translate_AdapterT!| EZend_Translate_Adapter_XmlTmT!{ EZend_Translate_Adapter_XliffTz AZend_Translate_Adapter_TmxTy AZend_Translate_Adapter_TbxTx ?Zend_Translate_Adapter_QtTw AZend_Translate_Adapter_IniT#v IZend_Translate_Adapter_GettextTu AZend_Translate_Adapter_CsvT!t EZend_Translate_Adapter_ArrayTs 'Zend_TimeSyncTr 1Zend_TimeSync_SntpTq 9Zend_TimeSync_ProtocolTp /Zend_TimeSync_NtpTo ;Zend_TimeSync_ExceptionTn -Zend_Text_FigletTm AZend_Text_Figlet_ExceptionTl 3Zend_Text_ExceptionT)k UZend_Test_PHPUnit_ControllerTestCaseT0j cZend_Test_PHPUnit_Constraint_ResponseHeaderT*i WZend_Test_PHPUnit_Constraint_RedirectT+h YZend_Test_PHPUnit_Constraint_ExceptionT*g WZend_Test_PHPUnit_Constraint_DomQueryTf )Zend_Soap_WsdlTe 7Zend_Soap_Wsdl_ParserT!d EZend_Soap_Wsdl_Parser_ResultT!c EZend_Soap_Wsdl_CodeGeneratorTb -Zend_Soap_ServerTa AZend_Soap_Server_ExceptionT` -Zend_Soap_ClientT_ 9Zend_Soap_Client_LocalT^ AZend_Soap_Client_ExceptionT] ;Zend_Soap_Client_DotNetT\ ;Zend_Soap_Client_CommonT[ 9Zend_Soap_AutoDiscoverTZ %Zend_SessionT)Y UZend_Session_Validator_HttpUserAgentT$X KZend_Session_Validator_AbstractT'W QZend_Session_SaveHandler_ExceptionT%V MZend_Session_SaveHandler_DbTableTU 9Zend_Session_NamespaceTT 9Zend_Session_ExceptionTS 7Zend_Session_AbstractTR 1Zend_Service_YahooT$Q KZend_Service_Yahoo_WebResultSetT!P EZend_Service_Yahoo_WebResultT&O OZend_Service_Yahoo_VideoResultSetT#N IZend_Service_Yahoo_VideoResultT!M EZend_Service_Yahoo_ResultSetTL ?Zend_Service_Yahoo_ResultT)K UZend_Service_Yahoo_PageDataResultSetT&J OZend_Service_Yahoo_PageDataResultT%I MZend_Service_Yahoo_NewsResultSetT"H GZend_Service_Yahoo_NewsResultT&G OZend_Service_Yahoo_LocalResultSetT#F IZend_Service_Yahoo_LocalResultT+E YZend_Service_Yahoo_InlinkDataResultSetT(D SZend_Service_Yahoo_InlinkDataResultT   m  tI'sQ+	}X5bBn5



f
A
						_	2	 b9
{a@}\A! uQ/y_6W*sO'mM+       # 1Zend_Cache_BackendU$" KZend_Cache_Backend_ZendPlatformU! ?Zend_Cache_Backend_XcacheU  ;Zend_Cache_Backend_TestU ?Zend_Cache_Backend_SqliteU! EZend_Cache_Backend_MemcachedU ;Zend_Cache_Backend_FileU 9Zend_Cache_Backend_ApcU Zend_AuthU ?Zend_Auth_Storage_SessionU$ KZend_Auth_Storage_NonPersistentU  CZend_Auth_Storage_ExceptionU -Zend_Auth_ResultU 3Zend_Auth_ExceptionU =Zend_Auth_Adapter_OpenIdU 9Zend_Auth_Adapter_LdapU AZend_Auth_Adapter_InfoCardU 9Zend_Auth_Adapter_HttpU) UZend_Auth_Adapter_Http_Resolver_FileU. _Zend_Auth_Adapter_Http_Resolver_ExceptionU  CZend_Auth_Adapter_ExceptionU =Zend_Auth_Adapter_DigestU ?Zend_Auth_Adapter_DbTableU Zend_AclU 'Zend_Acl_RoleU
 9Zend_Acl_Role_RegistryU%	 MZend_Acl_Role_Registry_ExceptionU /Zend_Acl_ResourceU 1Zend_Acl_ExceptionU /Zend_XmlRpc_ValueT =Zend_XmlRpc_Value_StructT =Zend_XmlRpc_Value_StringT =Zend_XmlRpc_Value_ScalarT 7Zend_XmlRpc_Value_NilT ?Zend_XmlRpc_Value_IntegerT   CZend_XmlRpc_Value_ExceptionT =Zend_XmlRpc_Value_DoubleT~ AZend_XmlRpc_Value_DateTimeT!} EZend_XmlRpc_Value_CollectionT| ?Zend_XmlRpc_Value_BooleanT{ =Zend_XmlRpc_Value_Base64Tz ;Zend_XmlRpc_Value_ArrayTy 1Zend_XmlRpc_ServerTx =Zend_XmlRpc_Server_FaultT!w EZend_XmlRpc_Server_ExceptionTv =Zend_XmlRpc_Server_CacheTu 5Zend_XmlRpc_ResponseTt ?Zend_XmlRpc_Response_HttpTs 3Zend_XmlRpc_RequestTr ?Zend_XmlRpc_Request_StdinTq =Zend_XmlRpc_Request_HttpTp /Zend_XmlRpc_FaultTo 7Zend_XmlRpc_ExceptionTn 1Zend_XmlRpc_ClientT#m IZend_XmlRpc_Client_ServerProxyT+l YZend_XmlRpc_Client_ServerIntrospectionT+k YZend_XmlRpc_Client_IntrospectExceptionT%j MZend_XmlRpc_Client_HttpExceptionT&i OZend_XmlRpc_Client_FaultExceptionT!h EZend_XmlRpc_Client_ExceptionT&g OZend_Wildfire_Protocol_JsonStreamT!f EZend_Wildfire_Plugin_FirePhpT.e _Zend_Wildfire_Plugin_FirePhp_TableMessageT)d UZend_Wildfire_Plugin_FirePhp_MessageTc ;Zend_Wildfire_ExceptionT&b OZend_Wildfire_Channel_HttpHeadersTa Zend_ViewT` -Zend_View_StreamT_ 5Zend_View_Helper_UrlT^ AZend_View_Helper_TranslateT)] UZend_View_Helper_RenderToPlaceholderT!\ EZend_View_Helper_PlaceholderT*[ WZend_View_Helper_Placeholder_RegistryT4Z kZend_View_Helper_Placeholder_Registry_ExceptionT+Y YZend_View_Helper_Placeholder_ContainerT6X oZend_View_Helper_Placeholder_Container_StandaloneT5W mZend_View_Helper_Placeholder_Container_ExceptionT4V kZend_View_Helper_Placeholder_Container_AbstractT!U EZend_View_Helper_PartialLoopTT =Zend_View_Helper_PartialT'S QZend_View_Helper_Partial_ExceptionT'R QZend_View_Helper_PaginationControlTQ ;Zend_View_Helper_LayoutTP 7Zend_View_Helper_JsonT"O GZend_View_Helper_InlineScriptT#N IZend_View_Helper_HtmlQuicktimeTM ?Zend_View_Helper_HtmlPageT L CZend_View_Helper_HtmlObjectTK ?Zend_View_Helper_HtmlListTJ AZend_View_Helper_HtmlFlashT!I EZend_View_Helper_HtmlElementTH AZend_View_Helper_HeadTitleTG AZend_View_Helper_HeadStyleT F CZend_View_Helper_HeadScriptTE ?Zend_View_Helper_HeadMetaTD ?Zend_View_Helper_HeadLinkT"C GZend_View_Helper_FormTextareaTB ?Zend_View_Helper_FormTextT A CZend_View_Helper_FormSubmitT @ CZend_View_Helper_FormSelectT? AZend_View_Helper_FormResetT> AZend_View_Helper_FormRadioT"= GZend_View_Helper_FormPasswordT< ?Zend_View_Helper_FormNoteT'; QZend_View_Helper_FormMultiCheckboxT: AZend_View_Helper_FormLabelT9 AZend_View_Helper_FormImageT 8 CZend_View_Helper_FormHiddenT7 ?Zend_View_Helper_FormFileT   j  c@h?p9e4
`3



t
N
"					S	,	^6a5vU/a<pN+iA#gE'mG  # IZend_Db_Table_Select_ExceptionU 5Zend_Db_Table_RowsetU# IZend_Db_Table_Rowset_ExceptionU"
 GZend_Db_Table_Rowset_AbstractU	 /Zend_Db_Table_RowU  CZend_Db_Table_Row_ExceptionU AZend_Db_Table_Row_AbstractU ;Zend_Db_Table_ExceptionU 9Zend_Db_Table_AbstractU /Zend_Db_StatementU 7Zend_Db_Statement_PdoU ?Zend_Db_Statement_Pdo_IbmU =Zend_Db_Statement_OracleU'  QZend_Db_Statement_Oracle_ExceptionU =Zend_Db_Statement_MysqliU'~ QZend_Db_Statement_Mysqli_ExceptionU } CZend_Db_Statement_ExceptionU| 7Zend_Db_Statement_Db2U${ KZend_Db_Statement_Db2_ExceptionUz )Zend_Db_SelectUy =Zend_Db_Select_ExceptionUx -Zend_Db_ProfilerUw 9Zend_Db_Profiler_QueryUv AZend_Db_Profiler_ExceptionUu %Zend_Db_ExprUt /Zend_Db_ExceptionUs AZend_Db_Adapter_Pdo_SqliteUr ?Zend_Db_Adapter_Pdo_PgsqlUq ;Zend_Db_Adapter_Pdo_OciUp ?Zend_Db_Adapter_Pdo_MysqlUo ?Zend_Db_Adapter_Pdo_MssqlUn ;Zend_Db_Adapter_Pdo_IbmU m CZend_Db_Adapter_Pdo_Ibm_IdsU l CZend_Db_Adapter_Pdo_Ibm_Db2U!k EZend_Db_Adapter_Pdo_AbstractUj 9Zend_Db_Adapter_OracleU%i MZend_Db_Adapter_Oracle_ExceptionUh 9Zend_Db_Adapter_MysqliU%g MZend_Db_Adapter_Mysqli_ExceptionUf ?Zend_Db_Adapter_ExceptionUe 3Zend_Db_Adapter_Db2U"d GZend_Db_Adapter_Db2_ExceptionUc =Zend_Db_Adapter_AbstractUb Zend_DateUa 3Zend_Date_ExceptionU` 5Zend_Date_DateObjectU_ -Zend_Date_CitiesU^ 'Zend_CurrencyU] ;Zend_Currency_ExceptionU!\ EZend_Controller_Router_RouteU([ SZend_Controller_Router_Route_StaticU'Z QZend_Controller_Router_Route_RegexU(Y SZend_Controller_Router_Route_ModuleU*X WZend_Controller_Router_Route_AbstractU#W IZend_Controller_Router_RewriteU%V MZend_Controller_Router_ExceptionU$U KZend_Controller_Router_AbstractU*T WZend_Controller_Response_HttpTestCaseU"S GZend_Controller_Response_HttpU'R QZend_Controller_Response_ExceptionU!Q EZend_Controller_Response_CliU&P OZend_Controller_Response_AbstractU#O IZend_Controller_Request_SimpleU)N UZend_Controller_Request_HttpTestCaseU!M EZend_Controller_Request_HttpU&L OZend_Controller_Request_ExceptionU&K OZend_Controller_Request_Apache404U%J MZend_Controller_Request_AbstractU(I SZend_Controller_Plugin_ErrorHandlerU"H GZend_Controller_Plugin_BrokerU'G QZend_Controller_Plugin_ActionStackU$F KZend_Controller_Plugin_AbstractUE 7Zend_Controller_FrontUD ?Zend_Controller_ExceptionU(C SZend_Controller_Dispatcher_StandardU)B UZend_Controller_Dispatcher_ExceptionU(A SZend_Controller_Dispatcher_AbstractU@ 9Zend_Controller_ActionU(? SZend_Controller_Action_HelperBrokerU/> aZend_Controller_Action_Helper_ViewRendererU&= OZend_Controller_Action_Helper_UrlU-< ]Zend_Controller_Action_Helper_RedirectorU'; QZend_Controller_Action_Helper_JsonU1: eZend_Controller_Action_Helper_FlashMessengerU09 cZend_Controller_Action_Helper_ContextSwitchU<8 {Zend_Controller_Action_Helper_AutoCompleteScriptaculousU37 iZend_Controller_Action_Helper_AutoCompleteDojoU86 sZend_Controller_Action_Helper_AutoComplete_AbstractU.5 _Zend_Controller_Action_Helper_AjaxContextU.4 _Zend_Controller_Action_Helper_ActionStackU+3 YZend_Controller_Action_Helper_AbstractU%2 MZend_Controller_Action_ExceptionU1 3Zend_Console_GetoptU"0 GZend_Console_Getopt_ExceptionU/ #Zend_ConfigU. +Zend_Config_XmlU- +Zend_Config_IniU, 7Zend_Config_ExceptionU+ !Zend_CacheU* =Zend_Cache_Frontend_PageU) AZend_Cache_Frontend_OutputU!( EZend_Cache_Frontend_FunctionU' =Zend_Cache_Frontend_FileU& ?Zend_Cache_Frontend_ClassU% 5Zend_Cache_ExceptionU$ +Zend_Cache_CoreU   i  wCX-{U-\-xR*


y
Z
C
"				r	K	$~Q$U)U.oT3qI(~hV<"u[C#\.                                      +v YZend_Filter_Word_CamelCaseToUnderscoreU*u WZend_Filter_Word_CamelCaseToSeparatorU%t MZend_Filter_Word_CamelCaseToDashUs 7Zend_Filter_StripTagsUr 9Zend_Filter_StringTrimUq ?Zend_Filter_StringToUpperUp ?Zend_Filter_StringToLowerUo 5Zend_Filter_RealPathUn ;Zend_Filter_PregReplaceUm +Zend_Filter_IntUl /Zend_Filter_InputUk 7Zend_Filter_InflectorUj =Zend_Filter_HtmlEntitiesUi 7Zend_Filter_ExceptionUh +Zend_Filter_DirUg 1Zend_Filter_DigitsUf 5Zend_Filter_BaseNameUe /Zend_Filter_AlphaUd /Zend_Filter_AlnumUc Zend_FeedUb 'Zend_Feed_RssUa 3Zend_Feed_ExceptionU` 3Zend_Feed_Entry_RssU_ 5Zend_Feed_Entry_AtomU^ =Zend_Feed_Entry_AbstractU] /Zend_Feed_ElementU\ /Zend_Feed_BuilderU[ =Zend_Feed_Builder_HeaderU$Z KZend_Feed_Builder_Header_ItunesU Y CZend_Feed_Builder_ExceptionUX ;Zend_Feed_Builder_EntryUW )Zend_Feed_AtomUV 1Zend_Feed_AbstractUU )Zend_ExceptionUT )Zend_Dom_QueryUS 7Zend_Dom_Query_ResultUR =Zend_Dom_Query_Css2XpathUQ 1Zend_Dom_ExceptionUP Zend_DojoU)O UZend_Dojo_View_Helper_VerticalSliderU,N [Zend_Dojo_View_Helper_ValidationTextBoxU&M OZend_Dojo_View_Helper_TimeTextBoxU"L GZend_Dojo_View_Helper_TextBoxU#K IZend_Dojo_View_Helper_TextareaU'J QZend_Dojo_View_Helper_TabContainerU)I UZend_Dojo_View_Helper_StackContainerU)H UZend_Dojo_View_Helper_SplitContainerU!G EZend_Dojo_View_Helper_SliderU&F OZend_Dojo_View_Helper_RadioButtonU(E SZend_Dojo_View_Helper_NumberTextBoxU(D SZend_Dojo_View_Helper_NumberSpinnerU+C YZend_Dojo_View_Helper_HorizontalSliderUB AZend_Dojo_View_Helper_FormU*A WZend_Dojo_View_Helper_FilteringSelectU@ AZend_Dojo_View_Helper_DojoU)? UZend_Dojo_View_Helper_Dojo_ContainerU)> UZend_Dojo_View_Helper_DijitContainerU = CZend_Dojo_View_Helper_DijitU&< OZend_Dojo_View_Helper_DateTextBoxU*; WZend_Dojo_View_Helper_CurrencyTextBoxU&: OZend_Dojo_View_Helper_ContentPaneU#9 IZend_Dojo_View_Helper_ComboBoxU#8 IZend_Dojo_View_Helper_CheckBoxU!7 EZend_Dojo_View_Helper_ButtonU*6 WZend_Dojo_View_Helper_BorderContainerU(5 SZend_Dojo_View_Helper_AccordionPaneU-4 ]Zend_Dojo_View_Helper_AccordionContainerU3 =Zend_Dojo_View_ExceptionU2 )Zend_Dojo_FormU1 9Zend_Dojo_Form_SubFormU*0 WZend_Dojo_Form_Element_VerticalSliderU-/ ]Zend_Dojo_Form_Element_ValidationTextBoxU'. QZend_Dojo_Form_Element_TimeTextBoxU#- IZend_Dojo_Form_Element_TextBoxU$, KZend_Dojo_Form_Element_TextareaU"+ GZend_Dojo_Form_Element_SliderU'* QZend_Dojo_Form_Element_RadioButtonU)) UZend_Dojo_Form_Element_NumberTextBoxU)( UZend_Dojo_Form_Element_NumberSpinnerU,' [Zend_Dojo_Form_Element_HorizontalSliderU+& YZend_Dojo_Form_Element_FilteringSelectU&% OZend_Dojo_Form_Element_DijitMultiU!$ EZend_Dojo_Form_Element_DijitU'# QZend_Dojo_Form_Element_DateTextBoxU+" YZend_Dojo_Form_Element_CurrencyTextBoxU$! KZend_Dojo_Form_Element_ComboBoxU$  KZend_Dojo_Form_Element_CheckBoxU" GZend_Dojo_Form_Element_ButtonU  CZend_Dojo_Form_DisplayGroupU* WZend_Dojo_Form_Decorator_TabContainerU, [Zend_Dojo_Form_Decorator_StackContainerU, [Zend_Dojo_Form_Decorator_SplitContainerU' QZend_Dojo_Form_Decorator_DijitFormU* WZend_Dojo_Form_Decorator_DijitElementU, [Zend_Dojo_Form_Decorator_DijitContainerU) UZend_Dojo_Form_Decorator_ContentPaneU- ]Zend_Dojo_Form_Decorator_BorderContainerU+ YZend_Dojo_Form_Decorator_AccordionPaneU0 cZend_Dojo_Form_Decorator_AccordionContainerU 3Zend_Dojo_ExceptionU )Zend_Dojo_DataU !Zend_DebugU Zend_DbU 'Zend_Db_TableU 5Zend_Db_Table_SelectU   f  X*zK7zT/}V/hH( 



w
V
5
						q	L		mEuL%d>qH"pI!sQ*h6
T                     +\ YZend_Gdata_Calendar_Extension_TimezoneU9[ uZend_Gdata_Calendar_Extension_SendEventNotificationsU+Z YZend_Gdata_Calendar_Extension_SelectedU+Y YZend_Gdata_Calendar_Extension_QuickAddU'X QZend_Gdata_Calendar_Extension_LinkU)W UZend_Gdata_Calendar_Extension_HiddenU(V SZend_Gdata_Calendar_Extension_ColorU.U _Zend_Gdata_Calendar_Extension_AccessLevelU#T IZend_Gdata_Calendar_EventQueryU"S GZend_Gdata_Calendar_EventFeedU#R IZend_Gdata_Calendar_EventEntryUQ 1Zend_Gdata_AuthSubUP )Zend_Gdata_AppUO 3Zend_Gdata_App_UtilU#N IZend_Gdata_App_MediaFileSourceUM ?Zend_Gdata_App_MediaEntryU2L gZend_Gdata_App_LoggingHttpClientAdapterSocketUK AZend_Gdata_App_IOExceptionU,J [Zend_Gdata_App_InvalidArgumentExceptionU!I EZend_Gdata_App_HttpExceptionU$H KZend_Gdata_App_FeedSourceParentU#G IZend_Gdata_App_FeedEntryParentUF 3Zend_Gdata_App_FeedUE =Zend_Gdata_App_ExtensionU!D EZend_Gdata_App_Extension_UriU%C MZend_Gdata_App_Extension_UpdatedU#B IZend_Gdata_App_Extension_TitleU"A GZend_Gdata_App_Extension_TextU%@ MZend_Gdata_App_Extension_SummaryU&? OZend_Gdata_App_Extension_SubtitleU$> KZend_Gdata_App_Extension_SourceU$= KZend_Gdata_App_Extension_RightsU'< QZend_Gdata_App_Extension_PublishedU$; KZend_Gdata_App_Extension_PersonU": GZend_Gdata_App_Extension_NameU"9 GZend_Gdata_App_Extension_LogoU"8 GZend_Gdata_App_Extension_LinkU 7 CZend_Gdata_App_Extension_IdU"6 GZend_Gdata_App_Extension_IconU'5 QZend_Gdata_App_Extension_GeneratorU#4 IZend_Gdata_App_Extension_EmailU%3 MZend_Gdata_App_Extension_ElementU#2 IZend_Gdata_App_Extension_DraftU%1 MZend_Gdata_App_Extension_ControlU)0 UZend_Gdata_App_Extension_ContributorU%/ MZend_Gdata_App_Extension_ContentU&. OZend_Gdata_App_Extension_CategoryU$- KZend_Gdata_App_Extension_AuthorU, =Zend_Gdata_App_ExceptionU+ 5Zend_Gdata_App_EntryU,* [Zend_Gdata_App_CaptchaRequiredExceptionU#) IZend_Gdata_App_BaseMediaSourceU( 3Zend_Gdata_App_BaseU*' WZend_Gdata_App_BadMethodCallExceptionU!& EZend_Gdata_App_AuthExceptionU% Zend_FormU$ /Zend_Form_SubFormU# 3Zend_Form_ExceptionU" /Zend_Form_ElementU! ;Zend_Form_Element_XhtmlU  AZend_Form_Element_TextareaU 9Zend_Form_Element_TextU =Zend_Form_Element_SubmitU =Zend_Form_Element_SelectU ;Zend_Form_Element_ResetU ;Zend_Form_Element_RadioU AZend_Form_Element_PasswordU" GZend_Form_Element_MultiselectU$ KZend_Form_Element_MultiCheckboxU ;Zend_Form_Element_MultiU ;Zend_Form_Element_ImageU =Zend_Form_Element_HiddenU 9Zend_Form_Element_HashU  CZend_Form_Element_ExceptionU AZend_Form_Element_CheckboxU =Zend_Form_Element_ButtonU 9Zend_Form_DisplayGroupU# IZend_Form_Decorator_ViewScriptU# IZend_Form_Decorator_ViewHelperU ?Zend_Form_Decorator_LabelU ?Zend_Form_Decorator_ImageU  CZend_Form_Decorator_HtmlTagU%
 MZend_Form_Decorator_FormElementsU	 =Zend_Form_Decorator_FormU! EZend_Form_Decorator_FieldsetU" GZend_Form_Decorator_ExceptionU AZend_Form_Decorator_ErrorsU$ KZend_Form_Decorator_DtDdWrapperU$ KZend_Form_Decorator_DescriptionU! EZend_Form_Decorator_CallbackU! EZend_Form_Decorator_AbstractU #Zend_FilterU+  YZend_Filter_Word_UnderscoreToSeparatorU& OZend_Filter_Word_UnderscoreToDashU+~ YZend_Filter_Word_UnderscoreToCamelCaseU*} WZend_Filter_Word_SeparatorToSeparatorU%| MZend_Filter_Word_SeparatorToDashU*{ WZend_Filter_Word_SeparatorToCamelCaseU(z SZend_Filter_Word_Separator_AbstractU&y OZend_Filter_Word_DashToUnderscoreU%x MZend_Filter_Word_DashToSeparatorU%w MZend_Filter_Word_DashToCamelCaseU   c  hI^3_8a7m9



\
+
				n	M	0	p@rF`=qN,	y`CsP1 o;Q                                   )? UZend_Gdata_Media_Extension_MediaTextU0> cZend_Gdata_Media_Extension_MediaRestrictionU+= YZend_Gdata_Media_Extension_MediaRatingU+< YZend_Gdata_Media_Extension_MediaPlayerU-; ]Zend_Gdata_Media_Extension_MediaKeywordsU): UZend_Gdata_Media_Extension_MediaHashU*9 WZend_Gdata_Media_Extension_MediaGroupU08 cZend_Gdata_Media_Extension_MediaDescriptionU+7 YZend_Gdata_Media_Extension_MediaCreditU.6 _Zend_Gdata_Media_Extension_MediaCopyrightU,5 [Zend_Gdata_Media_Extension_MediaContentU-4 ]Zend_Gdata_Media_Extension_MediaCategoryU3 9Zend_Gdata_Media_EntryU2 AZend_Gdata_Kind_EventEntryU1 7Zend_Gdata_HttpClientU0 )Zend_Gdata_GeoU/ 3Zend_Gdata_Geo_FeedU$. KZend_Gdata_Geo_Extension_GmlPosU&- OZend_Gdata_Geo_Extension_GmlPointU), UZend_Gdata_Geo_Extension_GeoRssWhereU+ 5Zend_Gdata_Geo_EntryU* -Zend_Gdata_GbaseU") GZend_Gdata_Gbase_SnippetQueryU!( EZend_Gdata_Gbase_SnippetFeedU"' GZend_Gdata_Gbase_SnippetEntryU& 9Zend_Gdata_Gbase_QueryU% AZend_Gdata_Gbase_ItemQueryU$ ?Zend_Gdata_Gbase_ItemFeedU# AZend_Gdata_Gbase_ItemEntryU" 7Zend_Gdata_Gbase_FeedU-! ]Zend_Gdata_Gbase_Extension_BaseAttributeU  9Zend_Gdata_Gbase_EntryU -Zend_Gdata_GappsU AZend_Gdata_Gapps_UserQueryU ?Zend_Gdata_Gapps_UserFeedU AZend_Gdata_Gapps_UserEntryU& OZend_Gdata_Gapps_ServiceExceptionU 9Zend_Gdata_Gapps_QueryU# IZend_Gdata_Gapps_NicknameQueryU" GZend_Gdata_Gapps_NicknameFeedU# IZend_Gdata_Gapps_NicknameEntryU% MZend_Gdata_Gapps_Extension_QuotaU( SZend_Gdata_Gapps_Extension_NicknameU$ KZend_Gdata_Gapps_Extension_NameU% MZend_Gdata_Gapps_Extension_LoginU) UZend_Gdata_Gapps_Extension_EmailListU 9Zend_Gdata_Gapps_ErrorU- ]Zend_Gdata_Gapps_EmailListRecipientQueryU, [Zend_Gdata_Gapps_EmailListRecipientFeedU- ]Zend_Gdata_Gapps_EmailListRecipientEntryU$ KZend_Gdata_Gapps_EmailListQueryU# IZend_Gdata_Gapps_EmailListFeedU$ KZend_Gdata_Gapps_EmailListEntryU
 +Zend_Gdata_FeedU	 5Zend_Gdata_ExtensionU =Zend_Gdata_Extension_WhoU AZend_Gdata_Extension_WhereU ?Zend_Gdata_Extension_WhenU$ KZend_Gdata_Extension_VisibilityU& OZend_Gdata_Extension_TransparencyU" GZend_Gdata_Extension_ReminderU- ]Zend_Gdata_Extension_RecurrenceExceptionU$ KZend_Gdata_Extension_RecurrenceU   CZend_Gdata_Extension_RatingU' QZend_Gdata_Extension_OriginalEventU0~ cZend_Gdata_Extension_OpenSearchTotalResultsU.} _Zend_Gdata_Extension_OpenSearchStartIndexU0| cZend_Gdata_Extension_OpenSearchItemsPerPageU"{ GZend_Gdata_Extension_FeedLinkU*z WZend_Gdata_Extension_ExtendedPropertyU%y MZend_Gdata_Extension_EventStatusU#x IZend_Gdata_Extension_EntryLinkU"w GZend_Gdata_Extension_CommentsU&v OZend_Gdata_Extension_AttendeeTypeU(u SZend_Gdata_Extension_AttendeeStatusUt +Zend_Gdata_ExifUs 5Zend_Gdata_Exif_FeedU#r IZend_Gdata_Exif_Extension_TimeU#q IZend_Gdata_Exif_Extension_TagsU$p KZend_Gdata_Exif_Extension_ModelU#o IZend_Gdata_Exif_Extension_MakeU"n GZend_Gdata_Exif_Extension_IsoU,m [Zend_Gdata_Exif_Extension_ImageUniqueIdU$l KZend_Gdata_Exif_Extension_FStopU*k WZend_Gdata_Exif_Extension_FocalLengthU$j KZend_Gdata_Exif_Extension_FlashU'i QZend_Gdata_Exif_Extension_ExposureU'h QZend_Gdata_Exif_Extension_DistanceUg 7Zend_Gdata_Exif_EntryUf -Zend_Gdata_EntryUe +Zend_Gdata_DocsUd 7Zend_Gdata_Docs_QueryU%c MZend_Gdata_Docs_DocumentListFeedU&b OZend_Gdata_Docs_DocumentListEntryUa 9Zend_Gdata_ClientLoginU` 3Zend_Gdata_CalendarU!_ EZend_Gdata_Calendar_ListFeedU"^ GZend_Gdata_Calendar_ListEntryU-] ]Zend_Gdata_Calendar_Extension_WebContentU   Z  iD }O"e>W g:



`
5
				z	V	3	_1kA^0rIe9T$pB\1                          ( SZend_Gdata_YouTube_Extension_StatusU, [Zend_Gdata_YouTube_Extension_StatisticsU' QZend_Gdata_YouTube_Extension_StateU( SZend_Gdata_YouTube_Extension_SchoolU- ]Zend_Gdata_YouTube_Extension_ReleaseDateU. _Zend_Gdata_YouTube_Extension_RelationshipU& OZend_Gdata_YouTube_Extension_RacyU) UZend_Gdata_YouTube_Extension_PrivateU* WZend_Gdata_YouTube_Extension_PositionU, [Zend_Gdata_YouTube_Extension_OccupationU) UZend_Gdata_YouTube_Extension_NoEmbedU' QZend_Gdata_YouTube_Extension_MusicU( SZend_Gdata_YouTube_Extension_MoviesU, [Zend_Gdata_YouTube_Extension_MediaGroupU. _Zend_Gdata_YouTube_Extension_MediaContentU*
 WZend_Gdata_YouTube_Extension_LocationU&	 OZend_Gdata_YouTube_Extension_LinkU* WZend_Gdata_YouTube_Extension_HometownU) UZend_Gdata_YouTube_Extension_HobbiesU( SZend_Gdata_YouTube_Extension_GenderU* WZend_Gdata_YouTube_Extension_DurationU- ]Zend_Gdata_YouTube_Extension_DescriptionU) UZend_Gdata_YouTube_Extension_ControlU) UZend_Gdata_YouTube_Extension_CompanyU' QZend_Gdata_YouTube_Extension_BooksU%  MZend_Gdata_YouTube_Extension_AgeU# IZend_Gdata_YouTube_ContactFeedU$~ KZend_Gdata_YouTube_ContactEntryU#} IZend_Gdata_YouTube_CommentFeedU$| KZend_Gdata_YouTube_CommentEntryU{ ;Zend_Gdata_SpreadsheetsU*z WZend_Gdata_Spreadsheets_WorksheetFeedU+y YZend_Gdata_Spreadsheets_WorksheetEntryU,x [Zend_Gdata_Spreadsheets_SpreadsheetFeedU-w ]Zend_Gdata_Spreadsheets_SpreadsheetEntryU&v OZend_Gdata_Spreadsheets_ListQueryU%u MZend_Gdata_Spreadsheets_ListFeedU&t OZend_Gdata_Spreadsheets_ListEntryU/s aZend_Gdata_Spreadsheets_Extension_RowCountU-r ]Zend_Gdata_Spreadsheets_Extension_CustomU/q aZend_Gdata_Spreadsheets_Extension_ColCountU+p YZend_Gdata_Spreadsheets_Extension_CellU*o WZend_Gdata_Spreadsheets_DocumentQueryU&n OZend_Gdata_Spreadsheets_CellQueryU%m MZend_Gdata_Spreadsheets_CellFeedU&l OZend_Gdata_Spreadsheets_CellEntryUk -Zend_Gdata_QueryUj /Zend_Gdata_PhotosU i CZend_Gdata_Photos_UserQueryUh AZend_Gdata_Photos_UserFeedU g CZend_Gdata_Photos_UserEntryUf AZend_Gdata_Photos_TagEntryU!e EZend_Gdata_Photos_PhotoQueryU d CZend_Gdata_Photos_PhotoFeedU!c EZend_Gdata_Photos_PhotoEntryU&b OZend_Gdata_Photos_Extension_WidthU'a QZend_Gdata_Photos_Extension_WeightU(` SZend_Gdata_Photos_Extension_VersionU%_ MZend_Gdata_Photos_Extension_UserU*^ WZend_Gdata_Photos_Extension_TimestampU*] WZend_Gdata_Photos_Extension_ThumbnailU%\ MZend_Gdata_Photos_Extension_SizeU)[ UZend_Gdata_Photos_Extension_RotationU+Z YZend_Gdata_Photos_Extension_QuotaLimitU-Y ]Zend_Gdata_Photos_Extension_QuotaCurrentU)X UZend_Gdata_Photos_Extension_PositionU(W SZend_Gdata_Photos_Extension_PhotoIdU3V iZend_Gdata_Photos_Extension_NumPhotosRemainingU*U WZend_Gdata_Photos_Extension_NumPhotosU)T UZend_Gdata_Photos_Extension_NicknameU%S MZend_Gdata_Photos_Extension_NameU2R gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumU)Q UZend_Gdata_Photos_Extension_LocationU#P IZend_Gdata_Photos_Extension_IdU'O QZend_Gdata_Photos_Extension_HeightU2N gZend_Gdata_Photos_Extension_CommentingEnabledU-M ]Zend_Gdata_Photos_Extension_CommentCountU'L QZend_Gdata_Photos_Extension_ClientU)K UZend_Gdata_Photos_Extension_ChecksumU*J WZend_Gdata_Photos_Extension_BytesUsedU(I SZend_Gdata_Photos_Extension_AlbumIdU'H QZend_Gdata_Photos_Extension_AccessU#G IZend_Gdata_Photos_CommentEntryU!F EZend_Gdata_Photos_AlbumQueryU E CZend_Gdata_Photos_AlbumFeedU!D EZend_Gdata_Photos_AlbumEntryUC -Zend_Gdata_MediaUB 7Zend_Gdata_Media_FeedU*A WZend_Gdata_Media_Extension_MediaTitleU.@ _Zend_Gdata_Media_Extension_MediaThumbnailU   l  T(tH"~W/	|a;U




`
7
				i	B	}PtQ 
xR1
{GqP<hT9uZ= hD                                 ;Zend_Mail_Protocol_ImapU! EZend_Mail_Protocol_ExceptionU  CZend_Mail_Protocol_AbstractU )Zend_Mail_PartU 3Zend_Mail_Part_FileU  /Zend_Mail_MessageU 9Zend_Mail_Message_FileU~ 3Zend_Mail_ExceptionU} Zend_LogU| 9Zend_Log_Writer_StreamU{ 5Zend_Log_Writer_NullUz 5Zend_Log_Writer_MockUy 1Zend_Log_Writer_DbUx =Zend_Log_Writer_AbstractUw 9Zend_Log_Formatter_XmlUv ?Zend_Log_Formatter_SimpleUu =Zend_Log_Filter_SuppressUt =Zend_Log_Filter_PriorityUs ;Zend_Log_Filter_MessageUr 1Zend_Log_ExceptionUq #Zend_LocaleUp -Zend_Locale_MathUo =Zend_Locale_Math_PhpMathUn AZend_Locale_Math_ExceptionUm 1Zend_Locale_FormatUl 7Zend_Locale_ExceptionUk -Zend_Locale_DataU!j EZend_Locale_Data_TranslationUi #Zend_LoaderUh =Zend_Loader_PluginLoaderU'g QZend_Loader_PluginLoader_ExceptionUf 7Zend_Loader_ExceptionUe Zend_LdapUd 3Zend_Ldap_ExceptionUc #Zend_LayoutUb 7Zend_Layout_ExceptionU)a UZend_Layout_Controller_Plugin_LayoutU0` cZend_Layout_Controller_Action_Helper_LayoutU_ Zend_JsonU^ -Zend_Json_ServerU] 5Zend_Json_Server_SmdU!\ EZend_Json_Server_Smd_ServiceU[ ?Zend_Json_Server_ResponseU#Z IZend_Json_Server_Response_HttpUY =Zend_Json_Server_RequestU"X GZend_Json_Server_Request_HttpUW AZend_Json_Server_ExceptionUV 9Zend_Json_Server_ErrorUU 3Zend_Json_ExceptionUT /Zend_Json_EncoderUS /Zend_Json_DecoderUR 'Zend_InfoCardU-Q ]Zend_InfoCard_Xml_SecurityTokenReferenceUP AZend_InfoCard_Xml_SecurityU)O UZend_InfoCard_Xml_Security_TransformU4N kZend_InfoCard_Xml_Security_Transform_XmlExcC14NU3M iZend_InfoCard_Xml_Security_Transform_ExceptionU<L {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignatureU)K UZend_InfoCard_Xml_Security_ExceptionUJ ?Zend_InfoCard_Xml_KeyInfoU&I OZend_InfoCard_Xml_KeyInfo_XmlDSigU&H OZend_InfoCard_Xml_KeyInfo_DefaultU'G QZend_InfoCard_Xml_KeyInfo_AbstractU F CZend_InfoCard_Xml_ExceptionU#E IZend_InfoCard_Xml_EncryptedKeyU$D KZend_InfoCard_Xml_EncryptedDataU+C YZend_InfoCard_Xml_EncryptedData_XmlEncU-B ]Zend_InfoCard_Xml_EncryptedData_AbstractUA ?Zend_InfoCard_Xml_ElementU @ CZend_InfoCard_Xml_AssertionU%? MZend_InfoCard_Xml_Assertion_SamlU> ;Zend_InfoCard_ExceptionU%= MZend_InfoCard_Exception_AbstractU< 5Zend_InfoCard_ClaimsU; 5Zend_InfoCard_CipherU5: mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcU59 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcU48 kZend_InfoCard_Cipher_Symmetric_Adapter_AbstractU)7 UZend_InfoCard_Cipher_Pki_Adapter_RsaU.6 _Zend_InfoCard_Cipher_Pki_Adapter_AbstractU#5 IZend_InfoCard_Cipher_ExceptionU$4 KZend_InfoCard_Adapter_ExceptionU"3 GZend_InfoCard_Adapter_DefaultU2 1Zend_Http_ResponseU1 3Zend_Http_ExceptionU0 3Zend_Http_CookieJarU/ -Zend_Http_CookieU. -Zend_Http_ClientU- AZend_Http_Client_ExceptionU", GZend_Http_Client_Adapter_TestU$+ KZend_Http_Client_Adapter_SocketU#* IZend_Http_Client_Adapter_ProxyU') QZend_Http_Client_Adapter_ExceptionU( !Zend_GdataU' 1Zend_Gdata_YouTubeU"& GZend_Gdata_YouTube_VideoQueryU!% EZend_Gdata_YouTube_VideoFeedU"$ GZend_Gdata_YouTube_VideoEntryU(# SZend_Gdata_YouTube_UserProfileEntryU(" SZend_Gdata_YouTube_SubscriptionFeedU)! UZend_Gdata_YouTube_SubscriptionEntryU)  UZend_Gdata_YouTube_PlaylistVideoFeedU* WZend_Gdata_YouTube_PlaylistVideoEntryU( SZend_Gdata_YouTube_PlaylistListFeedU) UZend_Gdata_YouTube_PlaylistListEntryU" GZend_Gdata_YouTube_MediaEntryU* WZend_Gdata_YouTube_Extension_UsernameU' QZend_Gdata_YouTube_Extension_TokenU   t ]=gE&wR1mI%rQ6





e
J
)
					k	F	!u\@&sP2zfAT&oL6kG)xO,fK                                        /y aZend_Pdf_FileParser_Font_OpenType_TrueTypeUx 1Zend_Pdf_ExceptionUw ;Zend_Pdf_ElementFactoryU"v GZend_Pdf_ElementFactory_ProxyUu -Zend_Pdf_ElementUt ;Zend_Pdf_Element_StringU#s IZend_Pdf_Element_String_BinaryUr ;Zend_Pdf_Element_StreamUq AZend_Pdf_Element_ReferenceU%p MZend_Pdf_Element_Reference_TableU'o QZend_Pdf_Element_Reference_ContextUn ;Zend_Pdf_Element_ObjectU#m IZend_Pdf_Element_Object_StreamUl =Zend_Pdf_Element_NumericUk 7Zend_Pdf_Element_NullUj 7Zend_Pdf_Element_NameU i CZend_Pdf_Element_DictionaryUh =Zend_Pdf_Element_BooleanUg 9Zend_Pdf_Element_ArrayUf )Zend_Pdf_ColorUe 1Zend_Pdf_Color_RgbUd 3Zend_Pdf_Color_HtmlUc =Zend_Pdf_Color_GrayScaleUb 3Zend_Pdf_Color_CmykUa 'Zend_Pdf_CmapU` AZend_Pdf_Cmap_TrimmedTableU!_ EZend_Pdf_Cmap_SegmentToDeltaU^ AZend_Pdf_Cmap_ByteEncodingU&] OZend_Pdf_Cmap_ByteEncoding_StaticU\ )Zend_PaginatorU*[ WZend_Paginator_ScrollingStyle_SlidingU*Z WZend_Paginator_ScrollingStyle_JumpingU*Y WZend_Paginator_ScrollingStyle_ElasticU&X OZend_Paginator_ScrollingStyle_AllUW =Zend_Paginator_ExceptionU V CZend_Paginator_Adapter_NullU$U KZend_Paginator_Adapter_IteratorU$T KZend_Paginator_Adapter_DbSelectU!S EZend_Paginator_Adapter_ArrayUR #Zend_OpenIdUQ 5Zend_OpenId_ProviderUP ?Zend_OpenId_Provider_UserU&O OZend_OpenId_Provider_User_SessionU!N EZend_OpenId_Provider_StorageU&M OZend_OpenId_Provider_Storage_FileUL 7Zend_OpenId_ExtensionUK AZend_OpenId_Extension_SregUJ 7Zend_OpenId_ExceptionUI 5Zend_OpenId_ConsumerU!H EZend_OpenId_Consumer_StorageU&G OZend_OpenId_Consumer_Storage_FileUF Zend_MimeUE )Zend_Mime_PartUD /Zend_Mime_MessageUC 3Zend_Mime_ExceptionUB -Zend_Mime_DecodeUA #Zend_MemoryU@ /Zend_Memory_ValueU? 3Zend_Memory_ManagerU> 7Zend_Memory_ExceptionU= 7Zend_Memory_ContainerU"< GZend_Memory_Container_MovableU!; EZend_Memory_Container_LockedU!: EZend_Memory_AccessControllerU9 3Zend_Measure_WeightU8 3Zend_Measure_VolumeU%7 MZend_Measure_Viscosity_KinematicU#6 IZend_Measure_Viscosity_DynamicU5 3Zend_Measure_TorqueU4 /Zend_Measure_TimeU3 =Zend_Measure_TemperatureU2 1Zend_Measure_SpeedU1 7Zend_Measure_PressureU0 1Zend_Measure_PowerU/ 3Zend_Measure_NumberU. 9Zend_Measure_LightnessU- 3Zend_Measure_LengthU, ?Zend_Measure_IlluminationU+ 9Zend_Measure_FrequencyU* 1Zend_Measure_ForceU) =Zend_Measure_Flow_VolumeU( 9Zend_Measure_Flow_MoleU' 9Zend_Measure_Flow_MassU& 9Zend_Measure_ExceptionU% 3Zend_Measure_EnergyU$ 5Zend_Measure_DensityU# 5Zend_Measure_CurrentU " CZend_Measure_Cooking_WeightU ! CZend_Measure_Cooking_VolumeU  =Zend_Measure_CapacitanceU 3Zend_Measure_BinaryU /Zend_Measure_AreaU 1Zend_Measure_AngleU ?Zend_Measure_AccelerationU 7Zend_Measure_AbstractU Zend_MailU =Zend_Mail_Transport_SmtpU! EZend_Mail_Transport_SendmailU" GZend_Mail_Transport_ExceptionU! EZend_Mail_Transport_AbstractU /Zend_Mail_StorageU' QZend_Mail_Storage_Writable_MaildirU 9Zend_Mail_Storage_Pop3U 9Zend_Mail_Storage_MboxU ?Zend_Mail_Storage_MaildirU 9Zend_Mail_Storage_ImapU =Zend_Mail_Storage_FolderU" GZend_Mail_Storage_Folder_MboxU% MZend_Mail_Storage_Folder_MaildirU  CZend_Mail_Storage_ExceptionU AZend_Mail_Storage_AbstractU
 ;Zend_Mail_Protocol_SmtpU'	 QZend_Mail_Protocol_Smtp_Auth_PlainU' QZend_Mail_Protocol_Smtp_Auth_LoginU) UZend_Mail_Protocol_Smtp_Auth_Crammd5U ;Zend_Mail_Protocol_Pop3U   Y  mQ&h@X1w@L


T
			g	+mI$kK2nK2D8q7T+}K                                                           )R UZend_Search_Lucene_Index_SegmentInfoU'Q QZend_Search_Lucene_Index_FieldInfoU.P _Zend_Search_Lucene_Index_DictionaryLoaderU!O EZend_Search_Lucene_FSMActionUN 9Zend_Search_Lucene_FSMUM =Zend_Search_Lucene_FieldU!L EZend_Search_Lucene_ExceptionU K CZend_Search_Lucene_DocumentU%J MZend_Search_Lucene_Document_HtmlU,I [Zend_Search_Lucene_Analysis_TokenFilterU6H oZend_Search_Lucene_Analysis_TokenFilter_StopWordsU7G qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsU:F wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8U6E oZend_Search_Lucene_Analysis_TokenFilter_LowerCaseU&D OZend_Search_Lucene_Analysis_TokenU)C UZend_Search_Lucene_Analysis_AnalyzerU0B cZend_Search_Lucene_Analysis_Analyzer_CommonU8A sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumUI@ Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitiveU5? mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8UF> Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitiveU8= sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumUI< Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitiveU5; mZend_Search_Lucene_Analysis_Analyzer_Common_TextUF: Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiveU9 7Zend_Search_ExceptionU8 -Zend_Rest_ServerU7 AZend_Rest_Server_ExceptionU6 3Zend_Rest_ExceptionU5 -Zend_Rest_ClientU4 ;Zend_Rest_Client_ResultU3 AZend_Rest_Client_ExceptionU2 'Zend_RegistryU1 Zend_PdfU!0 EZend_Pdf_UpdateInfoContainerU/ -Zend_Pdf_TrailerU. ;Zend_Pdf_Trailer_KeeperU- AZend_Pdf_Trailer_GeneratorU, )Zend_Pdf_StyleU+ 7Zend_Pdf_StringParserU* /Zend_Pdf_ResourceU#) IZend_Pdf_Resource_ImageFactoryU( ;Zend_Pdf_Resource_ImageU!' EZend_Pdf_Resource_Image_TiffU & CZend_Pdf_Resource_Image_PngU!% EZend_Pdf_Resource_Image_JpegU$ 9Zend_Pdf_Resource_FontU!# EZend_Pdf_Resource_Font_Type0U"" GZend_Pdf_Resource_Font_SimpleU+! YZend_Pdf_Resource_Font_Simple_StandardU8  sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsU6 oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanU7 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicU; yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicU5 mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldU2 gZend_Pdf_Resource_Font_Simple_Standard_SymbolU< {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueUA Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliqueU9 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldU5 mZend_Pdf_Resource_Font_Simple_Standard_HelveticaU: wZend_Pdf_Resource_Font_Simple_Standard_CourierObliqueU> Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliqueU7 qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldU3 iZend_Pdf_Resource_Font_Simple_Standard_CourierU) UZend_Pdf_Resource_Font_Simple_ParsedU2 gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypeU* WZend_Pdf_Resource_Font_FontDescriptorU% MZend_Pdf_Resource_Font_ExtractedU# IZend_Pdf_Resource_Font_CidFontU, [Zend_Pdf_Resource_Font_CidFont_TrueTypeU /Zend_Pdf_PhpArrayU +Zend_Pdf_ParserU
 9Zend_Pdf_Parser_StreamU	 'Zend_Pdf_PageU )Zend_Pdf_ImageU 'Zend_Pdf_FontU  CZend_Pdf_Filter_CompressionU$ KZend_Pdf_Filter_Compression_LzwU& OZend_Pdf_Filter_Compression_FlateU =Zend_Pdf_Filter_AsciiHexU ;Zend_Pdf_Filter_Ascii85U" GZend_Pdf_FileParserDataSourceU)  UZend_Pdf_FileParserDataSource_StringU' QZend_Pdf_FileParserDataSource_FileU~ 3Zend_Pdf_FileParserU} ?Zend_Pdf_FileParser_ImageU"| GZend_Pdf_FileParser_Image_PngU{ =Zend_Pdf_FileParser_FontU&z OZend_Pdf_FileParser_Font_OpenTypeU   ]  YvO&i;vIT'



l
5
			u	F	T'eG"zV-W, qL*pL$wQ5nN)   / AZend_Service_Simpy_NoteSetU. ;Zend_Service_Simpy_NoteU- AZend_Service_Simpy_LinkSetU!, EZend_Service_Simpy_LinkQueryU+ ;Zend_Service_Simpy_LinkU* 7Zend_Service_NirvanixU#) IZend_Service_Nirvanix_ResponseU)( UZend_Service_Nirvanix_Namespace_ImfsU)' UZend_Service_Nirvanix_Namespace_BaseU$& KZend_Service_Nirvanix_ExceptionU% 3Zend_Service_FlickrU"$ GZend_Service_Flickr_ResultSetU# AZend_Service_Flickr_ResultU" ?Zend_Service_Flickr_ImageU! 9Zend_Service_ExceptionU  9Zend_Service_DeliciousU& OZend_Service_Delicious_SimplePostU$ KZend_Service_Delicious_PostListU  CZend_Service_Delicious_PostU% MZend_Service_Delicious_ExceptionU  CZend_Service_AudioscrobblerU 3Zend_Service_AmazonU' QZend_Service_Amazon_SimilarProductU" GZend_Service_Amazon_ResultSetU ?Zend_Service_Amazon_QueryU! EZend_Service_Amazon_OfferSetU ?Zend_Service_Amazon_OfferU& OZend_Service_Amazon_ListmaniaListU =Zend_Service_Amazon_ItemU ?Zend_Service_Amazon_ImageU( SZend_Service_Amazon_EditorialReviewU' QZend_Service_Amazon_CustomerReviewU$ KZend_Service_Amazon_AccessoriesU 5Zend_Service_AkismetU 7Zend_Service_AbstractU 9Zend_Server_ReflectionU' QZend_Server_Reflection_ReturnValueU%
 MZend_Server_Reflection_PrototypeU%	 MZend_Server_Reflection_ParameterU  CZend_Server_Reflection_NodeU" GZend_Server_Reflection_MethodU$ KZend_Server_Reflection_FunctionU- ]Zend_Server_Reflection_Function_AbstractU% MZend_Server_Reflection_ExceptionU! EZend_Server_Reflection_ClassU 7Zend_Server_ExceptionU 5Zend_Server_AbstractU  1Zend_Search_LuceneU$ KZend_Search_Lucene_Storage_FileU+~ YZend_Search_Lucene_Storage_File_MemoryU/} aZend_Search_Lucene_Storage_File_FilesystemU)| UZend_Search_Lucene_Storage_DirectoryU4{ kZend_Search_Lucene_Storage_Directory_FilesystemU%z MZend_Search_Lucene_Search_WeightU*y WZend_Search_Lucene_Search_Weight_TermU,x [Zend_Search_Lucene_Search_Weight_PhraseU/w aZend_Search_Lucene_Search_Weight_MultiTermU+v YZend_Search_Lucene_Search_Weight_EmptyU-u ]Zend_Search_Lucene_Search_Weight_BooleanU)t UZend_Search_Lucene_Search_SimilarityU1s eZend_Search_Lucene_Search_Similarity_DefaultU)r UZend_Search_Lucene_Search_QueryTokenU3q iZend_Search_Lucene_Search_QueryParserExceptionU1p eZend_Search_Lucene_Search_QueryParserContextU*o WZend_Search_Lucene_Search_QueryParserU)n UZend_Search_Lucene_Search_QueryLexerU'm QZend_Search_Lucene_Search_QueryHitU)l UZend_Search_Lucene_Search_QueryEntryU.k _Zend_Search_Lucene_Search_QueryEntry_TermU2j gZend_Search_Lucene_Search_QueryEntry_SubqueryU0i cZend_Search_Lucene_Search_QueryEntry_PhraseU$h KZend_Search_Lucene_Search_QueryU-g ]Zend_Search_Lucene_Search_Query_WildcardU)f UZend_Search_Lucene_Search_Query_TermU*e WZend_Search_Lucene_Search_Query_RangeU+d YZend_Search_Lucene_Search_Query_PhraseU.c _Zend_Search_Lucene_Search_Query_MultiTermU2b gZend_Search_Lucene_Search_Query_InsignificantU*a WZend_Search_Lucene_Search_Query_FuzzyU*` WZend_Search_Lucene_Search_Query_EmptyU,_ [Zend_Search_Lucene_Search_Query_BooleanU:^ wZend_Search_Lucene_Search_BooleanExpressionRecognizerU] =Zend_Search_Lucene_ProxyU%\ MZend_Search_Lucene_PriorityQueueU#[ IZend_Search_Lucene_LockManagerU$Z KZend_Search_Lucene_Index_WriterU&Y OZend_Search_Lucene_Index_TermInfoU"X GZend_Search_Lucene_Index_TermU+W YZend_Search_Lucene_Index_SegmentWriterU8V sZend_Search_Lucene_Index_SegmentWriter_StreamWriterU:U wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterU+T YZend_Search_Lucene_Index_SegmentMergerU6S oZend_Search_Lucene_Index_SegmentInfoPriorityQueueU   h  oAe;~^7yDm@



`
:
					U	&\/rJ/W*x_:U!|bC(^;w\F5         3Zend_Validate_AlphaU 3Zend_Validate_AlnumU 9Zend_Validate_AbstractU Zend_UriU 'Zend_Uri_HttpU 1Zend_Uri_ExceptionU )Zend_TranslateU =Zend_Translate_ExceptionU 9Zend_Translate_AdapterU! EZend_Translate_Adapter_XmlTmU! EZend_Translate_Adapter_XliffU AZend_Translate_Adapter_TmxU AZend_Translate_Adapter_TbxU
 ?Zend_Translate_Adapter_QtU	 AZend_Translate_Adapter_IniU# IZend_Translate_Adapter_GettextU AZend_Translate_Adapter_CsvU! EZend_Translate_Adapter_ArrayU 'Zend_TimeSyncU 1Zend_TimeSync_SntpU 9Zend_TimeSync_ProtocolU /Zend_TimeSync_NtpU ;Zend_TimeSync_ExceptionU  -Zend_Text_FigletU AZend_Text_Figlet_ExceptionU~ 3Zend_Text_ExceptionU)} UZend_Test_PHPUnit_ControllerTestCaseU0| cZend_Test_PHPUnit_Constraint_ResponseHeaderU*{ WZend_Test_PHPUnit_Constraint_RedirectU+z YZend_Test_PHPUnit_Constraint_ExceptionU*y WZend_Test_PHPUnit_Constraint_DomQueryUx )Zend_Soap_WsdlUw 7Zend_Soap_Wsdl_ParserU!v EZend_Soap_Wsdl_Parser_ResultU!u EZend_Soap_Wsdl_CodeGeneratorUt -Zend_Soap_ServerUs AZend_Soap_Server_ExceptionUr -Zend_Soap_ClientUq 9Zend_Soap_Client_LocalUp AZend_Soap_Client_ExceptionUo 9Zend_Soap_AutoDiscoverUn %Zend_SessionU)m UZend_Session_Validator_HttpUserAgentU$l KZend_Session_Validator_AbstractU'k QZend_Session_SaveHandler_ExceptionU%j MZend_Session_SaveHandler_DbTableUi 9Zend_Session_NamespaceUh 9Zend_Session_ExceptionUg 7Zend_Session_AbstractUf 1Zend_Service_YahooU$e KZend_Service_Yahoo_WebResultSetU!d EZend_Service_Yahoo_WebResultU&c OZend_Service_Yahoo_VideoResultSetU#b IZend_Service_Yahoo_VideoResultU!a EZend_Service_Yahoo_ResultSetU` ?Zend_Service_Yahoo_ResultU)_ UZend_Service_Yahoo_PageDataResultSetU&^ OZend_Service_Yahoo_PageDataResultU%] MZend_Service_Yahoo_NewsResultSetU"\ GZend_Service_Yahoo_NewsResultU&[ OZend_Service_Yahoo_LocalResultSetU#Z IZend_Service_Yahoo_LocalResultU+Y YZend_Service_Yahoo_InlinkDataResultSetU(X SZend_Service_Yahoo_InlinkDataResultU&W OZend_Service_Yahoo_ImageResultSetU#V IZend_Service_Yahoo_ImageResultUU =Zend_Service_Yahoo_ImageUT ;Zend_Service_TechnoratiU#S IZend_Service_Technorati_WeblogU"R GZend_Service_Technorati_UtilsU*Q WZend_Service_Technorati_TagsResultSetU'P QZend_Service_Technorati_TagsResultU)O UZend_Service_Technorati_TagResultSetU&N OZend_Service_Technorati_TagResultU,M [Zend_Service_Technorati_SearchResultSetU)L UZend_Service_Technorati_SearchResultU&K OZend_Service_Technorati_ResultSetU#J IZend_Service_Technorati_ResultU*I WZend_Service_Technorati_KeyInfoResultU*H WZend_Service_Technorati_GetInfoResultU&G OZend_Service_Technorati_ExceptionU1F eZend_Service_Technorati_DailyCountsResultSetU.E _Zend_Service_Technorati_DailyCountsResultU,D [Zend_Service_Technorati_CosmosResultSetU)C UZend_Service_Technorati_CosmosResultU+B YZend_Service_Technorati_BlogInfoResultU#A IZend_Service_Technorati_AuthorU@ ;Zend_Service_StrikeIronU(? SZend_Service_StrikeIron_ZipCodeInfoU2> gZend_Service_StrikeIron_USAddressVerificationU-= ]Zend_Service_StrikeIron_SalesUseTaxBasicU&< OZend_Service_StrikeIron_ExceptionU&; OZend_Service_StrikeIron_DecoratorU!: EZend_Service_StrikeIron_BaseU9 ;Zend_Service_SlideShareU&8 OZend_Service_SlideShare_SlideShowU&7 OZend_Service_SlideShare_ExceptionU6 1Zend_Service_SimpyU$5 KZend_Service_Simpy_WatchlistSetU*4 WZend_Service_Simpy_WatchlistFilterSetU'3 QZend_Service_Simpy_WatchlistFilterU!2 EZend_Service_Simpy_WatchlistU1 ?Zend_Service_Simpy_TagSetU0 9Zend_Service_Simpy_TagU   p  }aF)lJ(~_?!q[F+eG#




n
K
(					o	K	'	wT1Z4Z"He;rT:{V5oN*    7Zend_XmlRpc_Value_NilU ?Zend_XmlRpc_Value_IntegerU  CZend_XmlRpc_Value_ExceptionU =Zend_XmlRpc_Value_DoubleU AZend_XmlRpc_Value_DateTimeU! EZend_XmlRpc_Value_CollectionU ?Zend_XmlRpc_Value_BooleanU  =Zend_XmlRpc_Value_Base64U ;Zend_XmlRpc_Value_ArrayU~ 1Zend_XmlRpc_ServerU} =Zend_XmlRpc_Server_FaultU!| EZend_XmlRpc_Server_ExceptionU{ =Zend_XmlRpc_Server_CacheUz 5Zend_XmlRpc_ResponseUy ?Zend_XmlRpc_Response_HttpUx 3Zend_XmlRpc_RequestUw ?Zend_XmlRpc_Request_StdinUv =Zend_XmlRpc_Request_HttpUu /Zend_XmlRpc_FaultUt 7Zend_XmlRpc_ExceptionUs 1Zend_XmlRpc_ClientU#r IZend_XmlRpc_Client_ServerProxyU+q YZend_XmlRpc_Client_ServerIntrospectionU+p YZend_XmlRpc_Client_IntrospectExceptionU%o MZend_XmlRpc_Client_HttpExceptionU&n OZend_XmlRpc_Client_FaultExceptionU!m EZend_XmlRpc_Client_ExceptionUl Zend_ViewUk -Zend_View_StreamUj 5Zend_View_Helper_UrlUi AZend_View_Helper_TranslateU!h EZend_View_Helper_PlaceholderU*g WZend_View_Helper_Placeholder_RegistryU4f kZend_View_Helper_Placeholder_Registry_ExceptionU+e YZend_View_Helper_Placeholder_ContainerU6d oZend_View_Helper_Placeholder_Container_StandaloneU5c mZend_View_Helper_Placeholder_Container_ExceptionU4b kZend_View_Helper_Placeholder_Container_AbstractU!a EZend_View_Helper_PartialLoopU` =Zend_View_Helper_PartialU'_ QZend_View_Helper_Partial_ExceptionU'^ QZend_View_Helper_PaginationControlU] ;Zend_View_Helper_LayoutU\ 7Zend_View_Helper_JsonU"[ GZend_View_Helper_InlineScriptU#Z IZend_View_Helper_HtmlQuicktimeUY ?Zend_View_Helper_HtmlPageU X CZend_View_Helper_HtmlObjectUW ?Zend_View_Helper_HtmlListUV AZend_View_Helper_HtmlFlashU!U EZend_View_Helper_HtmlElementUT AZend_View_Helper_HeadTitleUS AZend_View_Helper_HeadStyleU R CZend_View_Helper_HeadScriptUQ ?Zend_View_Helper_HeadMetaUP ?Zend_View_Helper_HeadLinkU"O GZend_View_Helper_FormTextareaUN ?Zend_View_Helper_FormTextU M CZend_View_Helper_FormSubmitU L CZend_View_Helper_FormSelectUK AZend_View_Helper_FormResetUJ AZend_View_Helper_FormRadioU"I GZend_View_Helper_FormPasswordUH ?Zend_View_Helper_FormNoteU'G QZend_View_Helper_FormMultiCheckboxUF AZend_View_Helper_FormLabelUE AZend_View_Helper_FormImageU D CZend_View_Helper_FormHiddenUC ?Zend_View_Helper_FormFileU B CZend_View_Helper_FormErrorsU!A EZend_View_Helper_FormElementU"@ GZend_View_Helper_FormCheckboxU ? CZend_View_Helper_FormButtonU> 7Zend_View_Helper_FormU= ?Zend_View_Helper_FieldsetU< =Zend_View_Helper_DoctypeU!; EZend_View_Helper_DeclareVarsU: ;Zend_View_Helper_ActionU9 ?Zend_View_Helper_AbstractU8 3Zend_View_ExceptionU7 1Zend_View_AbstractU6 %Zend_VersionU5 'Zend_ValidateU4 AZend_Validate_StringLengthU3 3Zend_Validate_RegexU2 9Zend_Validate_NotEmptyU1 9Zend_Validate_LessThanU0 -Zend_Validate_IpU/ /Zend_Validate_IntU. 7Zend_Validate_InArrayU- ;Zend_Validate_IdenticalU, 9Zend_Validate_HostnameU+ ?Zend_Validate_Hostname_SeU* ?Zend_Validate_Hostname_NoU) ?Zend_Validate_Hostname_LiU( ?Zend_Validate_Hostname_HuU' ?Zend_Validate_Hostname_FiU& ?Zend_Validate_Hostname_DeU% ?Zend_Validate_Hostname_ChU$ ?Zend_Validate_Hostname_AtU# /Zend_Validate_HexU" ?Zend_Validate_GreaterThanU! 3Zend_Validate_FloatU  ;Zend_Validate_ExceptionU AZend_Validate_EmailAddressU 5Zend_Validate_DigitsU 1Zend_Validate_DateU 3Zend_Validate_CcnumU 7Zend_Validate_BetweenU 7Zend_Validate_BarcodeU AZend_Validate_Barcode_UpcAU  CZend_Validate_Barcode_Ean13U   j  hN%xF{b>~\<_:





x
Y
?
!
						r	C	l,g=
Y, mGyL%W/X,zaD(                          q =Zend_Db_Adapter_AbstractVp Zend_DateVo 3Zend_Date_ExceptionVn 5Zend_Date_DateObjectVm -Zend_Date_CitiesVl 'Zend_CurrencyVk ;Zend_Currency_ExceptionV!j EZend_Controller_Router_RouteV(i SZend_Controller_Router_Route_StaticV'h QZend_Controller_Router_Route_RegexV(g SZend_Controller_Router_Route_ModuleV*f WZend_Controller_Router_Route_HostnameV'e QZend_Controller_Router_Route_ChainV*d WZend_Controller_Router_Route_AbstractV#c IZend_Controller_Router_RewriteV%b MZend_Controller_Router_ExceptionV$a KZend_Controller_Router_AbstractV*` WZend_Controller_Response_HttpTestCaseV"_ GZend_Controller_Response_HttpV'^ QZend_Controller_Response_ExceptionV!] EZend_Controller_Response_CliV&\ OZend_Controller_Response_AbstractV#[ IZend_Controller_Request_SimpleV)Z UZend_Controller_Request_HttpTestCaseV!Y EZend_Controller_Request_HttpV&X OZend_Controller_Request_ExceptionV&W OZend_Controller_Request_Apache404V%V MZend_Controller_Request_AbstractV(U SZend_Controller_Plugin_ErrorHandlerV"T GZend_Controller_Plugin_BrokerV'S QZend_Controller_Plugin_ActionStackV$R KZend_Controller_Plugin_AbstractVQ 7Zend_Controller_FrontVP ?Zend_Controller_ExceptionV(O SZend_Controller_Dispatcher_StandardV)N UZend_Controller_Dispatcher_ExceptionV(M SZend_Controller_Dispatcher_AbstractVL 9Zend_Controller_ActionV(K SZend_Controller_Action_HelperBrokerV6J oZend_Controller_Action_HelperBroker_PriorityStackV/I aZend_Controller_Action_Helper_ViewRendererV&H OZend_Controller_Action_Helper_UrlV-G ]Zend_Controller_Action_Helper_RedirectorV'F QZend_Controller_Action_Helper_JsonV1E eZend_Controller_Action_Helper_FlashMessengerV0D cZend_Controller_Action_Helper_ContextSwitchV<C {Zend_Controller_Action_Helper_AutoCompleteScriptaculousV3B iZend_Controller_Action_Helper_AutoCompleteDojoV8A sZend_Controller_Action_Helper_AutoComplete_AbstractV.@ _Zend_Controller_Action_Helper_AjaxContextV.? _Zend_Controller_Action_Helper_ActionStackV+> YZend_Controller_Action_Helper_AbstractV%= MZend_Controller_Action_ExceptionV< 3Zend_Console_GetoptV"; GZend_Console_Getopt_ExceptionV: #Zend_ConfigV9 +Zend_Config_XmlV8 +Zend_Config_IniV7 7Zend_Config_ExceptionV6 /Zend_Captcha_WordV5 9Zend_Captcha_ReCaptchaV4 1Zend_Captcha_ImageV3 3Zend_Captcha_FigletV2 /Zend_Captcha_DumbV1 /Zend_Captcha_BaseV0 !Zend_CacheV/ =Zend_Cache_Frontend_PageV. AZend_Cache_Frontend_OutputV!- EZend_Cache_Frontend_FunctionV, =Zend_Cache_Frontend_FileV+ ?Zend_Cache_Frontend_ClassV* 5Zend_Cache_ExceptionV) +Zend_Cache_CoreV( 1Zend_Cache_BackendV$' KZend_Cache_Backend_ZendPlatformV& ?Zend_Cache_Backend_XcacheV% ;Zend_Cache_Backend_TestV$ ?Zend_Cache_Backend_SqliteV!# EZend_Cache_Backend_MemcachedV" ;Zend_Cache_Backend_FileV! 9Zend_Cache_Backend_ApcV  Zend_AuthV ?Zend_Auth_Storage_SessionV$ KZend_Auth_Storage_NonPersistentV  CZend_Auth_Storage_ExceptionV -Zend_Auth_ResultV 3Zend_Auth_ExceptionV =Zend_Auth_Adapter_OpenIdV 9Zend_Auth_Adapter_LdapV AZend_Auth_Adapter_InfoCardV 9Zend_Auth_Adapter_HttpV) UZend_Auth_Adapter_Http_Resolver_FileV. _Zend_Auth_Adapter_Http_Resolver_ExceptionV  CZend_Auth_Adapter_ExceptionV =Zend_Auth_Adapter_DigestV ?Zend_Auth_Adapter_DbTableV Zend_AclV 'Zend_Acl_RoleV 9Zend_Acl_Role_RegistryV% MZend_Acl_Role_Registry_ExceptionV /Zend_Acl_ResourceV 1Zend_Acl_ExceptionV /Zend_XmlRpc_ValueU
 =Zend_XmlRpc_Value_StructU	 =Zend_XmlRpc_Value_StringU =Zend_XmlRpc_Value_ScalarU   c  [8sDqI!b1W)




U
.
			b	2	yO.
qJ"gJ tM'pM)hE(f8g<              3G iZend_InfoCard_Xml_Security_Transform_InterfaceW(F SZend_InfoCard_Xml_KeyInfo_InterfaceW(E SZend_InfoCard_Xml_Element_InterfaceW*D WZend_InfoCard_Xml_Assertion_InterfaceW-C ]Zend_InfoCard_Cipher_Symmetric_InterfaceW7B qZend_InfoCard_Cipher_Symmetric_Aes256cbc_InterfaceW7A qZend_InfoCard_Cipher_Symmetric_Aes128cbc_InterfaceW+@ YZend_InfoCard_Cipher_Pki_Rsa_InterfaceW'? QZend_InfoCard_Cipher_Pki_InterfaceW$> KZend_InfoCard_Adapter_InterfaceW'= QZend_Http_Client_Adapter_InterfaceW< AZend_Gdata_App_MediaSourceW"; GZend_Form_Decorator_InterfaceW: 7Zend_Filter_InterfaceW 9 CZend_Feed_Builder_InterfaceW 8 CZend_Db_Statement_InterfaceW+7 YZend_Controller_Router_Route_InterfaceW%6 MZend_Controller_Router_InterfaceW)5 UZend_Controller_Dispatcher_InterfaceW4 5Zend_Captcha_AdapterW!3 EZend_Cache_Backend_InterfaceW 2 CZend_Auth_Storage_InterfaceW 1 CZend_Auth_Adapter_InterfaceW.0 _Zend_Auth_Adapter_Http_Resolver_InterfaceW/ ;Zend_Acl_Role_InterfaceW . CZend_Acl_Resource_InterfaceW- ?Zend_Acl_Assert_InterfaceW#, IZend_Wildfire_Plugin_InterfaceV$+ KZend_Wildfire_Channel_InterfaceV* 3Zend_View_InterfaceV) AZend_View_Helper_InterfaceV( ;Zend_Validate_InterfaceV%' MZend_Validate_Hostname_InterfaceV%& MZend_Session_Validator_InterfaceV'% QZend_Session_SaveHandler_InterfaceV$ 7Zend_Server_InterfaceV!# EZend_Search_Lucene_InterfaceV" 9Zend_Request_InterfaceV! ?Zend_Pdf_Filter_InterfaceV&  OZend_Pdf_ElementFactory_InterfaceV, [Zend_Paginator_ScrollingStyle_InterfaceV% MZend_Paginator_Adapter_InterfaceV$ KZend_Memory_Container_InterfaceV) UZend_Mail_Storage_Writable_InterfaceV' QZend_Mail_Storage_Folder_InterfaceV =Zend_Mail_Part_InterfaceV  CZend_Mail_Message_InterfaceV! EZend_Log_Formatter_InterfaceV ?Zend_Log_Filter_InterfaceV' QZend_Loader_PluginLoader_InterfaceV3 iZend_InfoCard_Xml_Security_Transform_InterfaceV( SZend_InfoCard_Xml_KeyInfo_InterfaceV( SZend_InfoCard_Xml_Element_InterfaceV* WZend_InfoCard_Xml_Assertion_InterfaceV- ]Zend_InfoCard_Cipher_Symmetric_InterfaceV7 qZend_InfoCard_Cipher_Symmetric_Aes256cbc_InterfaceV7 qZend_InfoCard_Cipher_Symmetric_Aes128cbc_InterfaceV+ YZend_InfoCard_Cipher_Pki_Rsa_InterfaceV' QZend_InfoCard_Cipher_Pki_InterfaceV$ KZend_InfoCard_Adapter_InterfaceV' QZend_Http_Client_Adapter_InterfaceV
 AZend_Gdata_App_MediaSourceV"	 GZend_Form_Decorator_InterfaceV 7Zend_Filter_InterfaceV  CZend_Feed_Builder_InterfaceV  CZend_Db_Statement_InterfaceV+ YZend_Controller_Router_Route_InterfaceV% MZend_Controller_Router_InterfaceV) UZend_Controller_Dispatcher_InterfaceV 5Zend_Captcha_AdapterV! EZend_Cache_Backend_InterfaceV   CZend_Auth_Storage_InterfaceV  CZend_Auth_Adapter_InterfaceV.~ _Zend_Auth_Adapter_Http_Resolver_InterfaceV} ;Zend_Acl_Role_InterfaceV | CZend_Acl_Resource_InterfaceV{ ?Zend_Acl_Assert_InterfaceVz 3Zend_View_InterfaceUy AZend_View_Helper_InterfaceUx ;Zend_Validate_InterfaceU%w MZend_Validate_Hostname_InterfaceU%v MZend_Session_Validator_InterfaceU'u QZend_Session_SaveHandler_InterfaceUt 7Zend_Server_InterfaceU!s EZend_Search_Lucene_InterfaceUr 9Zend_Request_InterfaceUq ?Zend_Pdf_Filter_InterfaceU&p OZend_Pdf_ElementFactory_InterfaceU,o [Zend_Paginator_ScrollingStyle_InterfaceU%n MZend_Paginator_Adapter_InterfaceU$m KZend_Memory_Container_InterfaceU)l UZend_Mail_Storage_Writable_InterfaceU'k QZend_Mail_Storage_Folder_InterfaceUj =Zend_Mail_Part_InterfaceU i CZend_Mail_Message_InterfaceU!h EZend_Log_Formatter_InterfaceUg ?Zend_Log_Filter_InterfaceU'f QZend_Loader_PluginLoader_InterfaceU3e iZend_InfoCard_Xml_Security_Transform_InterfaceU   g  sT+];cD+
^=xX5




f
I
3
#
				z	I	c3k<c6	]5eN-}V/\/`4       &X OZend_Dojo_View_Helper_RadioButtonV*W WZend_Dojo_View_Helper_PasswordTextBoxV(V SZend_Dojo_View_Helper_NumberTextBoxV(U SZend_Dojo_View_Helper_NumberSpinnerV+T YZend_Dojo_View_Helper_HorizontalSliderVS AZend_Dojo_View_Helper_FormV*R WZend_Dojo_View_Helper_FilteringSelectVQ AZend_Dojo_View_Helper_DojoV)P UZend_Dojo_View_Helper_Dojo_ContainerV)O UZend_Dojo_View_Helper_DijitContainerV N CZend_Dojo_View_Helper_DijitV&M OZend_Dojo_View_Helper_DateTextBoxV*L WZend_Dojo_View_Helper_CurrencyTextBoxV&K OZend_Dojo_View_Helper_ContentPaneV#J IZend_Dojo_View_Helper_ComboBoxV#I IZend_Dojo_View_Helper_CheckBoxV!H EZend_Dojo_View_Helper_ButtonV*G WZend_Dojo_View_Helper_BorderContainerV(F SZend_Dojo_View_Helper_AccordionPaneV-E ]Zend_Dojo_View_Helper_AccordionContainerVD =Zend_Dojo_View_ExceptionVC )Zend_Dojo_FormVB 9Zend_Dojo_Form_SubFormV*A WZend_Dojo_Form_Element_VerticalSliderV-@ ]Zend_Dojo_Form_Element_ValidationTextBoxV'? QZend_Dojo_Form_Element_TimeTextBoxV#> IZend_Dojo_Form_Element_TextBoxV$= KZend_Dojo_Form_Element_TextareaV(< SZend_Dojo_Form_Element_SubmitButtonV"; GZend_Dojo_Form_Element_SliderV': QZend_Dojo_Form_Element_RadioButtonV+9 YZend_Dojo_Form_Element_PasswordTextBoxV)8 UZend_Dojo_Form_Element_NumberTextBoxV)7 UZend_Dojo_Form_Element_NumberSpinnerV,6 [Zend_Dojo_Form_Element_HorizontalSliderV+5 YZend_Dojo_Form_Element_FilteringSelectV&4 OZend_Dojo_Form_Element_DijitMultiV!3 EZend_Dojo_Form_Element_DijitV'2 QZend_Dojo_Form_Element_DateTextBoxV+1 YZend_Dojo_Form_Element_CurrencyTextBoxV$0 KZend_Dojo_Form_Element_ComboBoxV$/ KZend_Dojo_Form_Element_CheckBoxV". GZend_Dojo_Form_Element_ButtonV - CZend_Dojo_Form_DisplayGroupV*, WZend_Dojo_Form_Decorator_TabContainerV,+ [Zend_Dojo_Form_Decorator_StackContainerV,* [Zend_Dojo_Form_Decorator_SplitContainerV') QZend_Dojo_Form_Decorator_DijitFormV*( WZend_Dojo_Form_Decorator_DijitElementV,' [Zend_Dojo_Form_Decorator_DijitContainerV)& UZend_Dojo_Form_Decorator_ContentPaneV-% ]Zend_Dojo_Form_Decorator_BorderContainerV+$ YZend_Dojo_Form_Decorator_AccordionPaneV0# cZend_Dojo_Form_Decorator_AccordionContainerV" 3Zend_Dojo_ExceptionV! )Zend_Dojo_DataV  !Zend_DebugV Zend_DbV 'Zend_Db_TableV 5Zend_Db_Table_SelectV# IZend_Db_Table_Select_ExceptionV 5Zend_Db_Table_RowsetV# IZend_Db_Table_Rowset_ExceptionV" GZend_Db_Table_Rowset_AbstractV /Zend_Db_Table_RowV  CZend_Db_Table_Row_ExceptionV AZend_Db_Table_Row_AbstractV ;Zend_Db_Table_ExceptionV 9Zend_Db_Table_AbstractV /Zend_Db_StatementV 7Zend_Db_Statement_PdoV ?Zend_Db_Statement_Pdo_IbmV =Zend_Db_Statement_OracleV' QZend_Db_Statement_Oracle_ExceptionV =Zend_Db_Statement_MysqliV' QZend_Db_Statement_Mysqli_ExceptionV  CZend_Db_Statement_ExceptionV 7Zend_Db_Statement_Db2V$
 KZend_Db_Statement_Db2_ExceptionV	 )Zend_Db_SelectV =Zend_Db_Select_ExceptionV -Zend_Db_ProfilerV 9Zend_Db_Profiler_QueryV =Zend_Db_Profiler_FirebugV AZend_Db_Profiler_ExceptionV %Zend_Db_ExprV /Zend_Db_ExceptionV AZend_Db_Adapter_Pdo_SqliteV  ?Zend_Db_Adapter_Pdo_PgsqlV ;Zend_Db_Adapter_Pdo_OciV~ ?Zend_Db_Adapter_Pdo_MysqlV} ?Zend_Db_Adapter_Pdo_MssqlV| ;Zend_Db_Adapter_Pdo_IbmV { CZend_Db_Adapter_Pdo_Ibm_IdsV z CZend_Db_Adapter_Pdo_Ibm_Db2V!y EZend_Db_Adapter_Pdo_AbstractVx 9Zend_Db_Adapter_OracleV%w MZend_Db_Adapter_Oracle_ExceptionVv 9Zend_Db_Adapter_MysqliV%u MZend_Db_Adapter_Mysqli_ExceptionVt ?Zend_Db_Adapter_ExceptionVs 3Zend_Db_Adapter_Db2V"r GZend_Db_Adapter_Db2_ExceptionV   p  V+WE*	kGpT>, ~dG,





e
H
&
				|	N	wI jV1oL&qO(|X9kH(dJ.l<                       H =Zend_Gdata_App_ExceptionVG 5Zend_Gdata_App_EntryV,F [Zend_Gdata_App_CaptchaRequiredExceptionV#E IZend_Gdata_App_BaseMediaSourceVD 3Zend_Gdata_App_BaseV*C WZend_Gdata_App_BadMethodCallExceptionV!B EZend_Gdata_App_AuthExceptionVA Zend_FormV@ /Zend_Form_SubFormV? 3Zend_Form_ExceptionV> /Zend_Form_ElementV= ;Zend_Form_Element_XhtmlV< AZend_Form_Element_TextareaV; 9Zend_Form_Element_TextV: =Zend_Form_Element_SubmitV9 =Zend_Form_Element_SelectV8 ;Zend_Form_Element_ResetV7 ;Zend_Form_Element_RadioV6 AZend_Form_Element_PasswordV"5 GZend_Form_Element_MultiselectV$4 KZend_Form_Element_MultiCheckboxV3 ;Zend_Form_Element_MultiV2 ;Zend_Form_Element_ImageV1 =Zend_Form_Element_HiddenV0 9Zend_Form_Element_HashV/ 9Zend_Form_Element_FileV . CZend_Form_Element_ExceptionV- AZend_Form_Element_CheckboxV, ?Zend_Form_Element_CaptchaV+ =Zend_Form_Element_ButtonV* 9Zend_Form_DisplayGroupV#) IZend_Form_Decorator_ViewScriptV#( IZend_Form_Decorator_ViewHelperV' ?Zend_Form_Decorator_LabelV& ?Zend_Form_Decorator_ImageV % CZend_Form_Decorator_HtmlTagV%$ MZend_Form_Decorator_FormElementsV# =Zend_Form_Decorator_FormV!" EZend_Form_Decorator_FieldsetV"! GZend_Form_Decorator_ExceptionV  AZend_Form_Decorator_ErrorsV$ KZend_Form_Decorator_DtDdWrapperV$ KZend_Form_Decorator_DescriptionV  CZend_Form_Decorator_CaptchaV% MZend_Form_Decorator_Captcha_WordV! EZend_Form_Decorator_CallbackV! EZend_Form_Decorator_AbstractV #Zend_FilterV+ YZend_Filter_Word_UnderscoreToSeparatorV& OZend_Filter_Word_UnderscoreToDashV+ YZend_Filter_Word_UnderscoreToCamelCaseV* WZend_Filter_Word_SeparatorToSeparatorV% MZend_Filter_Word_SeparatorToDashV* WZend_Filter_Word_SeparatorToCamelCaseV( SZend_Filter_Word_Separator_AbstractV& OZend_Filter_Word_DashToUnderscoreV% MZend_Filter_Word_DashToSeparatorV% MZend_Filter_Word_DashToCamelCaseV+ YZend_Filter_Word_CamelCaseToUnderscoreV* WZend_Filter_Word_CamelCaseToSeparatorV% MZend_Filter_Word_CamelCaseToDashV 7Zend_Filter_StripTagsV
 ?Zend_Filter_StripNewlinesV	 9Zend_Filter_StringTrimV ?Zend_Filter_StringToUpperV ?Zend_Filter_StringToLowerV 5Zend_Filter_RealPathV ;Zend_Filter_PregReplaceV +Zend_Filter_IntV /Zend_Filter_InputV 7Zend_Filter_InflectorV =Zend_Filter_HtmlEntitiesV  7Zend_Filter_ExceptionV +Zend_Filter_DirV~ 1Zend_Filter_DigitsV} 5Zend_Filter_BaseNameV| /Zend_Filter_AlphaV{ /Zend_Filter_AlnumVz 1Zend_File_TransferV!y EZend_File_Transfer_ExceptionV$x KZend_File_Transfer_Adapter_HttpV(w SZend_File_Transfer_Adapter_AbstractVv Zend_FeedVu 'Zend_Feed_RssVt 3Zend_Feed_ExceptionVs 3Zend_Feed_Entry_RssVr 5Zend_Feed_Entry_AtomVq =Zend_Feed_Entry_AbstractVp /Zend_Feed_ElementVo /Zend_Feed_BuilderVn =Zend_Feed_Builder_HeaderV$m KZend_Feed_Builder_Header_ItunesV l CZend_Feed_Builder_ExceptionVk ;Zend_Feed_Builder_EntryVj )Zend_Feed_AtomVi 1Zend_Feed_AbstractVh )Zend_ExceptionVg )Zend_Dom_QueryVf 7Zend_Dom_Query_ResultVe =Zend_Dom_Query_Css2XpathVd 1Zend_Dom_ExceptionVc Zend_DojoV)b UZend_Dojo_View_Helper_VerticalSliderV,a [Zend_Dojo_View_Helper_ValidationTextBoxV&` OZend_Dojo_View_Helper_TimeTextBoxV"_ GZend_Dojo_View_Helper_TextBoxV#^ IZend_Dojo_View_Helper_TextareaV'] QZend_Dojo_View_Helper_TabContainerV'\ QZend_Dojo_View_Helper_SubmitButtonV)[ UZend_Dojo_View_Helper_StackContainerV)Z UZend_Dojo_View_Helper_SplitContainerV!Y EZend_Dojo_View_Helper_SliderV   b  X/gC~V.e@_<




o
H
"				p	E	{J$qS;"X0 d= e<N#V.kD                                -* ]Zend_Gdata_Gapps_EmailListRecipientEntryV$) KZend_Gdata_Gapps_EmailListQueryV#( IZend_Gdata_Gapps_EmailListFeedV$' KZend_Gdata_Gapps_EmailListEntryV& +Zend_Gdata_FeedV% 5Zend_Gdata_ExtensionV$ =Zend_Gdata_Extension_WhoV# AZend_Gdata_Extension_WhereV" ?Zend_Gdata_Extension_WhenV$! KZend_Gdata_Extension_VisibilityV&  OZend_Gdata_Extension_TransparencyV" GZend_Gdata_Extension_ReminderV- ]Zend_Gdata_Extension_RecurrenceExceptionV$ KZend_Gdata_Extension_RecurrenceV  CZend_Gdata_Extension_RatingV' QZend_Gdata_Extension_OriginalEventV0 cZend_Gdata_Extension_OpenSearchTotalResultsV. _Zend_Gdata_Extension_OpenSearchStartIndexV0 cZend_Gdata_Extension_OpenSearchItemsPerPageV" GZend_Gdata_Extension_FeedLinkV* WZend_Gdata_Extension_ExtendedPropertyV% MZend_Gdata_Extension_EventStatusV# IZend_Gdata_Extension_EntryLinkV" GZend_Gdata_Extension_CommentsV& OZend_Gdata_Extension_AttendeeTypeV( SZend_Gdata_Extension_AttendeeStatusV +Zend_Gdata_ExifV 5Zend_Gdata_Exif_FeedV# IZend_Gdata_Exif_Extension_TimeV# IZend_Gdata_Exif_Extension_TagsV$ KZend_Gdata_Exif_Extension_ModelV# IZend_Gdata_Exif_Extension_MakeV"
 GZend_Gdata_Exif_Extension_IsoV,	 [Zend_Gdata_Exif_Extension_ImageUniqueIdV$ KZend_Gdata_Exif_Extension_FStopV* WZend_Gdata_Exif_Extension_FocalLengthV$ KZend_Gdata_Exif_Extension_FlashV' QZend_Gdata_Exif_Extension_ExposureV' QZend_Gdata_Exif_Extension_DistanceV 7Zend_Gdata_Exif_EntryV -Zend_Gdata_EntryV +Zend_Gdata_DocsV  7Zend_Gdata_Docs_QueryV% MZend_Gdata_Docs_DocumentListFeedV&~ OZend_Gdata_Docs_DocumentListEntryV} 9Zend_Gdata_ClientLoginV| 3Zend_Gdata_CalendarV!{ EZend_Gdata_Calendar_ListFeedV"z GZend_Gdata_Calendar_ListEntryV-y ]Zend_Gdata_Calendar_Extension_WebContentV+x YZend_Gdata_Calendar_Extension_TimezoneV9w uZend_Gdata_Calendar_Extension_SendEventNotificationsV+v YZend_Gdata_Calendar_Extension_SelectedV+u YZend_Gdata_Calendar_Extension_QuickAddV't QZend_Gdata_Calendar_Extension_LinkV)s UZend_Gdata_Calendar_Extension_HiddenV(r SZend_Gdata_Calendar_Extension_ColorV.q _Zend_Gdata_Calendar_Extension_AccessLevelV#p IZend_Gdata_Calendar_EventQueryV"o GZend_Gdata_Calendar_EventFeedV#n IZend_Gdata_Calendar_EventEntryVm 1Zend_Gdata_AuthSubVl )Zend_Gdata_AppVk 3Zend_Gdata_App_UtilV#j IZend_Gdata_App_MediaFileSourceVi ?Zend_Gdata_App_MediaEntryV2h gZend_Gdata_App_LoggingHttpClientAdapterSocketVg AZend_Gdata_App_IOExceptionV,f [Zend_Gdata_App_InvalidArgumentExceptionV!e EZend_Gdata_App_HttpExceptionV$d KZend_Gdata_App_FeedSourceParentV#c IZend_Gdata_App_FeedEntryParentVb 3Zend_Gdata_App_FeedVa =Zend_Gdata_App_ExtensionV!` EZend_Gdata_App_Extension_UriV%_ MZend_Gdata_App_Extension_UpdatedV#^ IZend_Gdata_App_Extension_TitleV"] GZend_Gdata_App_Extension_TextV%\ MZend_Gdata_App_Extension_SummaryV&[ OZend_Gdata_App_Extension_SubtitleV$Z KZend_Gdata_App_Extension_SourceV$Y KZend_Gdata_App_Extension_RightsV'X QZend_Gdata_App_Extension_PublishedV$W KZend_Gdata_App_Extension_PersonV"V GZend_Gdata_App_Extension_NameV"U GZend_Gdata_App_Extension_LogoV"T GZend_Gdata_App_Extension_LinkV S CZend_Gdata_App_Extension_IdV"R GZend_Gdata_App_Extension_IconV'Q QZend_Gdata_App_Extension_GeneratorV#P IZend_Gdata_App_Extension_EmailV%O MZend_Gdata_App_Extension_ElementV#N IZend_Gdata_App_Extension_DraftV%M MZend_Gdata_App_Extension_ControlV)L UZend_Gdata_App_Extension_ContributorV%K MZend_Gdata_App_Extension_ContentV&J OZend_Gdata_App_Extension_CategoryV$I KZend_Gdata_App_Extension_AuthorV   `  S*`9oPzT/	|T8!



`
.				p	?	N {T)wF[2tGc5fBu\2	                        &
 OZend_Gdata_Spreadsheets_CellQueryV%	 MZend_Gdata_Spreadsheets_CellFeedV& OZend_Gdata_Spreadsheets_CellEntryV -Zend_Gdata_QueryV /Zend_Gdata_PhotosV  CZend_Gdata_Photos_UserQueryV AZend_Gdata_Photos_UserFeedV  CZend_Gdata_Photos_UserEntryV AZend_Gdata_Photos_TagEntryV! EZend_Gdata_Photos_PhotoQueryV   CZend_Gdata_Photos_PhotoFeedV! EZend_Gdata_Photos_PhotoEntryV&~ OZend_Gdata_Photos_Extension_WidthV'} QZend_Gdata_Photos_Extension_WeightV(| SZend_Gdata_Photos_Extension_VersionV%{ MZend_Gdata_Photos_Extension_UserV*z WZend_Gdata_Photos_Extension_TimestampV*y WZend_Gdata_Photos_Extension_ThumbnailV%x MZend_Gdata_Photos_Extension_SizeV)w UZend_Gdata_Photos_Extension_RotationV+v YZend_Gdata_Photos_Extension_QuotaLimitV-u ]Zend_Gdata_Photos_Extension_QuotaCurrentV)t UZend_Gdata_Photos_Extension_PositionV(s SZend_Gdata_Photos_Extension_PhotoIdV3r iZend_Gdata_Photos_Extension_NumPhotosRemainingV*q WZend_Gdata_Photos_Extension_NumPhotosV)p UZend_Gdata_Photos_Extension_NicknameV%o MZend_Gdata_Photos_Extension_NameV2n gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumV)m UZend_Gdata_Photos_Extension_LocationV#l IZend_Gdata_Photos_Extension_IdV'k QZend_Gdata_Photos_Extension_HeightV2j gZend_Gdata_Photos_Extension_CommentingEnabledV-i ]Zend_Gdata_Photos_Extension_CommentCountV'h QZend_Gdata_Photos_Extension_ClientV)g UZend_Gdata_Photos_Extension_ChecksumV*f WZend_Gdata_Photos_Extension_BytesUsedV(e SZend_Gdata_Photos_Extension_AlbumIdV'd QZend_Gdata_Photos_Extension_AccessV#c IZend_Gdata_Photos_CommentEntryV!b EZend_Gdata_Photos_AlbumQueryV a CZend_Gdata_Photos_AlbumFeedV!` EZend_Gdata_Photos_AlbumEntryV_ -Zend_Gdata_MediaV^ 7Zend_Gdata_Media_FeedV*] WZend_Gdata_Media_Extension_MediaTitleV.\ _Zend_Gdata_Media_Extension_MediaThumbnailV)[ UZend_Gdata_Media_Extension_MediaTextV0Z cZend_Gdata_Media_Extension_MediaRestrictionV+Y YZend_Gdata_Media_Extension_MediaRatingV+X YZend_Gdata_Media_Extension_MediaPlayerV-W ]Zend_Gdata_Media_Extension_MediaKeywordsV)V UZend_Gdata_Media_Extension_MediaHashV*U WZend_Gdata_Media_Extension_MediaGroupV0T cZend_Gdata_Media_Extension_MediaDescriptionV+S YZend_Gdata_Media_Extension_MediaCreditV.R _Zend_Gdata_Media_Extension_MediaCopyrightV,Q [Zend_Gdata_Media_Extension_MediaContentV-P ]Zend_Gdata_Media_Extension_MediaCategoryVO 9Zend_Gdata_Media_EntryVN AZend_Gdata_Kind_EventEntryVM 7Zend_Gdata_HttpClientVL )Zend_Gdata_GeoVK 3Zend_Gdata_Geo_FeedV$J KZend_Gdata_Geo_Extension_GmlPosV&I OZend_Gdata_Geo_Extension_GmlPointV)H UZend_Gdata_Geo_Extension_GeoRssWhereVG 5Zend_Gdata_Geo_EntryVF -Zend_Gdata_GbaseV"E GZend_Gdata_Gbase_SnippetQueryV!D EZend_Gdata_Gbase_SnippetFeedV"C GZend_Gdata_Gbase_SnippetEntryVB 9Zend_Gdata_Gbase_QueryVA AZend_Gdata_Gbase_ItemQueryV@ ?Zend_Gdata_Gbase_ItemFeedV? AZend_Gdata_Gbase_ItemEntryV> 7Zend_Gdata_Gbase_FeedV-= ]Zend_Gdata_Gbase_Extension_BaseAttributeV< 9Zend_Gdata_Gbase_EntryV; -Zend_Gdata_GappsV: AZend_Gdata_Gapps_UserQueryV9 ?Zend_Gdata_Gapps_UserFeedV8 AZend_Gdata_Gapps_UserEntryV&7 OZend_Gdata_Gapps_ServiceExceptionV6 9Zend_Gdata_Gapps_QueryV#5 IZend_Gdata_Gapps_NicknameQueryV"4 GZend_Gdata_Gapps_NicknameFeedV#3 IZend_Gdata_Gapps_NicknameEntryV%2 MZend_Gdata_Gapps_Extension_QuotaV(1 SZend_Gdata_Gapps_Extension_NicknameV$0 KZend_Gdata_Gapps_Extension_NameV%/ MZend_Gdata_Gapps_Extension_LoginV). UZend_Gdata_Gapps_Extension_EmailListV- 9Zend_Gdata_Gapps_ErrorV-, ]Zend_Gdata_Gapps_EmailListRecipientQueryV,+ [Zend_Gdata_Gapps_EmailListRecipientFeedV   ]  p?^.b:e4U'



n
A
				Z	)vKpCsM2\C*b0Y<g6i?      )g UZend_InfoCard_Xml_Security_ExceptionVf ?Zend_InfoCard_Xml_KeyInfoV&e OZend_InfoCard_Xml_KeyInfo_XmlDSigV&d OZend_InfoCard_Xml_KeyInfo_DefaultV'c QZend_InfoCard_Xml_KeyInfo_AbstractV b CZend_InfoCard_Xml_ExceptionV#a IZend_InfoCard_Xml_EncryptedKeyV$` KZend_InfoCard_Xml_EncryptedDataV+_ YZend_InfoCard_Xml_EncryptedData_XmlEncV-^ ]Zend_InfoCard_Xml_EncryptedData_AbstractV] ?Zend_InfoCard_Xml_ElementV \ CZend_InfoCard_Xml_AssertionV%[ MZend_InfoCard_Xml_Assertion_SamlVZ ;Zend_InfoCard_ExceptionV%Y MZend_InfoCard_Exception_AbstractVX 5Zend_InfoCard_ClaimsVW 5Zend_InfoCard_CipherV5V mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcV5U mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcV4T kZend_InfoCard_Cipher_Symmetric_Adapter_AbstractV)S UZend_InfoCard_Cipher_Pki_Adapter_RsaV.R _Zend_InfoCard_Cipher_Pki_Adapter_AbstractV#Q IZend_InfoCard_Cipher_ExceptionV$P KZend_InfoCard_Adapter_ExceptionV"O GZend_InfoCard_Adapter_DefaultVN 1Zend_Http_ResponseVM 3Zend_Http_ExceptionVL 3Zend_Http_CookieJarVK -Zend_Http_CookieVJ -Zend_Http_ClientVI AZend_Http_Client_ExceptionV"H GZend_Http_Client_Adapter_TestV$G KZend_Http_Client_Adapter_SocketV#F IZend_Http_Client_Adapter_ProxyV'E QZend_Http_Client_Adapter_ExceptionVD !Zend_GdataVC 1Zend_Gdata_YouTubeV"B GZend_Gdata_YouTube_VideoQueryV!A EZend_Gdata_YouTube_VideoFeedV"@ GZend_Gdata_YouTube_VideoEntryV(? SZend_Gdata_YouTube_UserProfileEntryV(> SZend_Gdata_YouTube_SubscriptionFeedV)= UZend_Gdata_YouTube_SubscriptionEntryV)< UZend_Gdata_YouTube_PlaylistVideoFeedV*; WZend_Gdata_YouTube_PlaylistVideoEntryV(: SZend_Gdata_YouTube_PlaylistListFeedV)9 UZend_Gdata_YouTube_PlaylistListEntryV"8 GZend_Gdata_YouTube_MediaEntryV*7 WZend_Gdata_YouTube_Extension_UsernameV'6 QZend_Gdata_YouTube_Extension_TokenV(5 SZend_Gdata_YouTube_Extension_StatusV,4 [Zend_Gdata_YouTube_Extension_StatisticsV'3 QZend_Gdata_YouTube_Extension_StateV(2 SZend_Gdata_YouTube_Extension_SchoolV-1 ]Zend_Gdata_YouTube_Extension_ReleaseDateV.0 _Zend_Gdata_YouTube_Extension_RelationshipV&/ OZend_Gdata_YouTube_Extension_RacyV). UZend_Gdata_YouTube_Extension_PrivateV*- WZend_Gdata_YouTube_Extension_PositionV,, [Zend_Gdata_YouTube_Extension_OccupationV)+ UZend_Gdata_YouTube_Extension_NoEmbedV'* QZend_Gdata_YouTube_Extension_MusicV() SZend_Gdata_YouTube_Extension_MoviesV,( [Zend_Gdata_YouTube_Extension_MediaGroupV.' _Zend_Gdata_YouTube_Extension_MediaContentV*& WZend_Gdata_YouTube_Extension_LocationV&% OZend_Gdata_YouTube_Extension_LinkV*$ WZend_Gdata_YouTube_Extension_HometownV)# UZend_Gdata_YouTube_Extension_HobbiesV(" SZend_Gdata_YouTube_Extension_GenderV*! WZend_Gdata_YouTube_Extension_DurationV-  ]Zend_Gdata_YouTube_Extension_DescriptionV) UZend_Gdata_YouTube_Extension_ControlV) UZend_Gdata_YouTube_Extension_CompanyV' QZend_Gdata_YouTube_Extension_BooksV% MZend_Gdata_YouTube_Extension_AgeV# IZend_Gdata_YouTube_ContactFeedV$ KZend_Gdata_YouTube_ContactEntryV# IZend_Gdata_YouTube_CommentFeedV$ KZend_Gdata_YouTube_CommentEntryV ;Zend_Gdata_SpreadsheetsV* WZend_Gdata_Spreadsheets_WorksheetFeedV+ YZend_Gdata_Spreadsheets_WorksheetEntryV, [Zend_Gdata_Spreadsheets_SpreadsheetFeedV- ]Zend_Gdata_Spreadsheets_SpreadsheetEntryV& OZend_Gdata_Spreadsheets_ListQueryV% MZend_Gdata_Spreadsheets_ListFeedV& OZend_Gdata_Spreadsheets_ListEntryV/ aZend_Gdata_Spreadsheets_Extension_RowCountV- ]Zend_Gdata_Spreadsheets_Extension_CustomV/ aZend_Gdata_Spreadsheets_Extension_ColCountV+ YZend_Gdata_Spreadsheets_Extension_CellV* WZend_Gdata_Spreadsheets_DocumentQueryV   w Q$jK(sV=+|jL! uR1




e
F
%

						d	E	+	oB\6kQ,nS9z^? hI-[2lN2              ^ #Zend_MemoryV] /Zend_Memory_ValueV\ 3Zend_Memory_ManagerV[ 7Zend_Memory_ExceptionVZ 7Zend_Memory_ContainerV"Y GZend_Memory_Container_MovableV!X EZend_Memory_Container_LockedV!W EZend_Memory_AccessControllerVV 3Zend_Measure_WeightVU 3Zend_Measure_VolumeV%T MZend_Measure_Viscosity_KinematicV#S IZend_Measure_Viscosity_DynamicVR 3Zend_Measure_TorqueVQ /Zend_Measure_TimeVP =Zend_Measure_TemperatureVO 1Zend_Measure_SpeedVN 7Zend_Measure_PressureVM 1Zend_Measure_PowerVL 3Zend_Measure_NumberVK 9Zend_Measure_LightnessVJ 3Zend_Measure_LengthVI ?Zend_Measure_IlluminationVH 9Zend_Measure_FrequencyVG 1Zend_Measure_ForceVF =Zend_Measure_Flow_VolumeVE 9Zend_Measure_Flow_MoleVD 9Zend_Measure_Flow_MassVC 9Zend_Measure_ExceptionVB 3Zend_Measure_EnergyVA 5Zend_Measure_DensityV@ 5Zend_Measure_CurrentV ? CZend_Measure_Cooking_WeightV > CZend_Measure_Cooking_VolumeV= =Zend_Measure_CapacitanceV< 3Zend_Measure_BinaryV; /Zend_Measure_AreaV: 1Zend_Measure_AngleV9 ?Zend_Measure_AccelerationV8 7Zend_Measure_AbstractV7 Zend_MailV6 =Zend_Mail_Transport_SmtpV!5 EZend_Mail_Transport_SendmailV"4 GZend_Mail_Transport_ExceptionV!3 EZend_Mail_Transport_AbstractV2 /Zend_Mail_StorageV'1 QZend_Mail_Storage_Writable_MaildirV0 9Zend_Mail_Storage_Pop3V/ 9Zend_Mail_Storage_MboxV. ?Zend_Mail_Storage_MaildirV- 9Zend_Mail_Storage_ImapV, =Zend_Mail_Storage_FolderV"+ GZend_Mail_Storage_Folder_MboxV%* MZend_Mail_Storage_Folder_MaildirV ) CZend_Mail_Storage_ExceptionV( AZend_Mail_Storage_AbstractV' ;Zend_Mail_Protocol_SmtpV'& QZend_Mail_Protocol_Smtp_Auth_PlainV'% QZend_Mail_Protocol_Smtp_Auth_LoginV)$ UZend_Mail_Protocol_Smtp_Auth_Crammd5V# ;Zend_Mail_Protocol_Pop3V" ;Zend_Mail_Protocol_ImapV!! EZend_Mail_Protocol_ExceptionV   CZend_Mail_Protocol_AbstractV )Zend_Mail_PartV 3Zend_Mail_Part_FileV /Zend_Mail_MessageV 9Zend_Mail_Message_FileV 3Zend_Mail_ExceptionV Zend_LogV 9Zend_Log_Writer_StreamV 5Zend_Log_Writer_NullV 5Zend_Log_Writer_MockV ;Zend_Log_Writer_FirebugV 1Zend_Log_Writer_DbV =Zend_Log_Writer_AbstractV 9Zend_Log_Formatter_XmlV ?Zend_Log_Formatter_SimpleV =Zend_Log_Filter_SuppressV =Zend_Log_Filter_PriorityV ;Zend_Log_Filter_MessageV 1Zend_Log_ExceptionV #Zend_LocaleV -Zend_Locale_MathV =Zend_Locale_Math_PhpMathV
 AZend_Locale_Math_ExceptionV	 1Zend_Locale_FormatV 7Zend_Locale_ExceptionV -Zend_Locale_DataV! EZend_Locale_Data_TranslationV #Zend_LoaderV =Zend_Loader_PluginLoaderV' QZend_Loader_PluginLoader_ExceptionV 7Zend_Loader_ExceptionV Zend_LdapV  3Zend_Ldap_ExceptionV #Zend_LayoutV~ 7Zend_Layout_ExceptionV)} UZend_Layout_Controller_Plugin_LayoutV0| cZend_Layout_Controller_Action_Helper_LayoutV{ Zend_JsonVz -Zend_Json_ServerVy 5Zend_Json_Server_SmdV!x EZend_Json_Server_Smd_ServiceVw ?Zend_Json_Server_ResponseV#v IZend_Json_Server_Response_HttpVu =Zend_Json_Server_RequestV"t GZend_Json_Server_Request_HttpVs AZend_Json_Server_ExceptionVr 9Zend_Json_Server_ErrorVq 3Zend_Json_ExceptionVp /Zend_Json_EncoderVo /Zend_Json_DecoderVn 'Zend_InfoCardV-m ]Zend_InfoCard_Xml_SecurityTokenReferenceVl AZend_InfoCard_Xml_SecurityV)k UZend_InfoCard_Xml_Security_TransformV4j kZend_InfoCard_Xml_Security_Transform_XmlExcC14NV3i iZend_InfoCard_Xml_Security_Transform_ExceptionV<h {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignatureV   e  ^9nD"|X7lBhM6




u
N
.
				p	P	7	yX2vV5|]E+}Gf(m-D
yT5                            C CZend_Pdf_Resource_Image_PngV!B EZend_Pdf_Resource_Image_JpegVA 9Zend_Pdf_Resource_FontV!@ EZend_Pdf_Resource_Font_Type0V"? GZend_Pdf_Resource_Font_SimpleV+> YZend_Pdf_Resource_Font_Simple_StandardV8= sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsV6< oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanV7; qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicV;: yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicV59 mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldV28 gZend_Pdf_Resource_Font_Simple_Standard_SymbolV<7 {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueVA6 Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliqueV95 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldV54 mZend_Pdf_Resource_Font_Simple_Standard_HelveticaV:3 wZend_Pdf_Resource_Font_Simple_Standard_CourierObliqueV>2 Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliqueV71 qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldV30 iZend_Pdf_Resource_Font_Simple_Standard_CourierV)/ UZend_Pdf_Resource_Font_Simple_ParsedV2. gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypeV*- WZend_Pdf_Resource_Font_FontDescriptorV%, MZend_Pdf_Resource_Font_ExtractedV#+ IZend_Pdf_Resource_Font_CidFontV,* [Zend_Pdf_Resource_Font_CidFont_TrueTypeV) /Zend_Pdf_PhpArrayV( +Zend_Pdf_ParserV' 9Zend_Pdf_Parser_StreamV& 'Zend_Pdf_PageV% )Zend_Pdf_ImageV$ 'Zend_Pdf_FontV # CZend_Pdf_Filter_CompressionV$" KZend_Pdf_Filter_Compression_LzwV&! OZend_Pdf_Filter_Compression_FlateV  =Zend_Pdf_Filter_AsciiHexV ;Zend_Pdf_Filter_Ascii85V" GZend_Pdf_FileParserDataSourceV) UZend_Pdf_FileParserDataSource_StringV' QZend_Pdf_FileParserDataSource_FileV 3Zend_Pdf_FileParserV ?Zend_Pdf_FileParser_ImageV" GZend_Pdf_FileParser_Image_PngV =Zend_Pdf_FileParser_FontV& OZend_Pdf_FileParser_Font_OpenTypeV/ aZend_Pdf_FileParser_Font_OpenType_TrueTypeV 1Zend_Pdf_ExceptionV ;Zend_Pdf_ElementFactoryV" GZend_Pdf_ElementFactory_ProxyV -Zend_Pdf_ElementV ;Zend_Pdf_Element_StringV# IZend_Pdf_Element_String_BinaryV ;Zend_Pdf_Element_StreamV AZend_Pdf_Element_ReferenceV% MZend_Pdf_Element_Reference_TableV' QZend_Pdf_Element_Reference_ContextV ;Zend_Pdf_Element_ObjectV#
 IZend_Pdf_Element_Object_StreamV	 =Zend_Pdf_Element_NumericV 7Zend_Pdf_Element_NullV 7Zend_Pdf_Element_NameV  CZend_Pdf_Element_DictionaryV =Zend_Pdf_Element_BooleanV 9Zend_Pdf_Element_ArrayV )Zend_Pdf_ColorV 1Zend_Pdf_Color_RgbV 3Zend_Pdf_Color_HtmlV  =Zend_Pdf_Color_GrayScaleV 3Zend_Pdf_Color_CmykV~ 'Zend_Pdf_CmapV} AZend_Pdf_Cmap_TrimmedTableV!| EZend_Pdf_Cmap_SegmentToDeltaV{ AZend_Pdf_Cmap_ByteEncodingV&z OZend_Pdf_Cmap_ByteEncoding_StaticVy )Zend_PaginatorV*x WZend_Paginator_ScrollingStyle_SlidingV*w WZend_Paginator_ScrollingStyle_JumpingV*v WZend_Paginator_ScrollingStyle_ElasticV&u OZend_Paginator_ScrollingStyle_AllVt =Zend_Paginator_ExceptionV s CZend_Paginator_Adapter_NullV$r KZend_Paginator_Adapter_IteratorV$q KZend_Paginator_Adapter_DbSelectV!p EZend_Paginator_Adapter_ArrayVo #Zend_OpenIdVn 5Zend_OpenId_ProviderVm ?Zend_OpenId_Provider_UserV&l OZend_OpenId_Provider_User_SessionV!k EZend_OpenId_Provider_StorageV&j OZend_OpenId_Provider_Storage_FileVi 7Zend_OpenId_ExtensionVh AZend_OpenId_Extension_SregVg 7Zend_OpenId_ExceptionVf 5Zend_OpenId_ConsumerV!e EZend_OpenId_Consumer_StorageV&d OZend_OpenId_Consumer_Storage_FileVc Zend_MimeVb )Zend_Mime_PartVa /Zend_Mime_MessageV` 3Zend_Mime_ExceptionV_ -Zend_Mime_DecodeV   V  z\E"zZA%Hu<R(


u
;
				x	Y	4	pArH qA}N f0yK}P_6                               ) UZend_Search_Lucene_Storage_DirectoryV4 kZend_Search_Lucene_Storage_Directory_FilesystemV% MZend_Search_Lucene_Search_WeightV* WZend_Search_Lucene_Search_Weight_TermV, [Zend_Search_Lucene_Search_Weight_PhraseV/ aZend_Search_Lucene_Search_Weight_MultiTermV+ YZend_Search_Lucene_Search_Weight_EmptyV- ]Zend_Search_Lucene_Search_Weight_BooleanV) UZend_Search_Lucene_Search_SimilarityV1 eZend_Search_Lucene_Search_Similarity_DefaultV) UZend_Search_Lucene_Search_QueryTokenV3 iZend_Search_Lucene_Search_QueryParserExceptionV1 eZend_Search_Lucene_Search_QueryParserContextV* WZend_Search_Lucene_Search_QueryParserV) UZend_Search_Lucene_Search_QueryLexerV'
 QZend_Search_Lucene_Search_QueryHitV)	 UZend_Search_Lucene_Search_QueryEntryV. _Zend_Search_Lucene_Search_QueryEntry_TermV2 gZend_Search_Lucene_Search_QueryEntry_SubqueryV0 cZend_Search_Lucene_Search_QueryEntry_PhraseV$ KZend_Search_Lucene_Search_QueryV- ]Zend_Search_Lucene_Search_Query_WildcardV) UZend_Search_Lucene_Search_Query_TermV* WZend_Search_Lucene_Search_Query_RangeV+ YZend_Search_Lucene_Search_Query_PhraseV.  _Zend_Search_Lucene_Search_Query_MultiTermV2 gZend_Search_Lucene_Search_Query_InsignificantV*~ WZend_Search_Lucene_Search_Query_FuzzyV*} WZend_Search_Lucene_Search_Query_EmptyV,| [Zend_Search_Lucene_Search_Query_BooleanV:{ wZend_Search_Lucene_Search_BooleanExpressionRecognizerVz =Zend_Search_Lucene_ProxyV%y MZend_Search_Lucene_PriorityQueueV#x IZend_Search_Lucene_LockManagerV$w KZend_Search_Lucene_Index_WriterV&v OZend_Search_Lucene_Index_TermInfoV"u GZend_Search_Lucene_Index_TermV+t YZend_Search_Lucene_Index_SegmentWriterV8s sZend_Search_Lucene_Index_SegmentWriter_StreamWriterV:r wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterV+q YZend_Search_Lucene_Index_SegmentMergerV6p oZend_Search_Lucene_Index_SegmentInfoPriorityQueueV)o UZend_Search_Lucene_Index_SegmentInfoV'n QZend_Search_Lucene_Index_FieldInfoV.m _Zend_Search_Lucene_Index_DictionaryLoaderV!l EZend_Search_Lucene_FSMActionVk 9Zend_Search_Lucene_FSMVj =Zend_Search_Lucene_FieldV!i EZend_Search_Lucene_ExceptionV h CZend_Search_Lucene_DocumentV%g MZend_Search_Lucene_Document_HtmlV,f [Zend_Search_Lucene_Analysis_TokenFilterV6e oZend_Search_Lucene_Analysis_TokenFilter_StopWordsV7d qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsV:c wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8V6b oZend_Search_Lucene_Analysis_TokenFilter_LowerCaseV&a OZend_Search_Lucene_Analysis_TokenV)` UZend_Search_Lucene_Analysis_AnalyzerV0_ cZend_Search_Lucene_Analysis_Analyzer_CommonV8^ sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumVI] Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitiveV5\ mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8VF[ Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitiveV8Z sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumVIY Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitiveV5X mZend_Search_Lucene_Analysis_Analyzer_Common_TextVFW Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiveVV 7Zend_Search_ExceptionVU -Zend_Rest_ServerVT AZend_Rest_Server_ExceptionVS 3Zend_Rest_ExceptionVR -Zend_Rest_ClientVQ ;Zend_Rest_Client_ResultVP AZend_Rest_Client_ExceptionVO 'Zend_RegistryVN Zend_PdfV!M EZend_Pdf_UpdateInfoContainerVL -Zend_Pdf_TrailerVK ;Zend_Pdf_Trailer_KeeperVJ AZend_Pdf_Trailer_GeneratorVI )Zend_Pdf_StyleVH 7Zend_Pdf_StringParserVG /Zend_Pdf_ResourceV#F IZend_Pdf_Resource_ImageFactoryVE ;Zend_Pdf_Resource_ImageV!D EZend_Pdf_Resource_Image_TiffV   c  v[> yS/uX0lJ%rI%




s
P
*
				e	G	}]8lA|\7|P0	}Ki?`2}S'     #| IZend_Service_Yahoo_LocalResultV+{ YZend_Service_Yahoo_InlinkDataResultSetV(z SZend_Service_Yahoo_InlinkDataResultV&y OZend_Service_Yahoo_ImageResultSetV#x IZend_Service_Yahoo_ImageResultVw =Zend_Service_Yahoo_ImageVv ;Zend_Service_TechnoratiV#u IZend_Service_Technorati_WeblogV"t GZend_Service_Technorati_UtilsV*s WZend_Service_Technorati_TagsResultSetV'r QZend_Service_Technorati_TagsResultV)q UZend_Service_Technorati_TagResultSetV&p OZend_Service_Technorati_TagResultV,o [Zend_Service_Technorati_SearchResultSetV)n UZend_Service_Technorati_SearchResultV&m OZend_Service_Technorati_ResultSetV#l IZend_Service_Technorati_ResultV*k WZend_Service_Technorati_KeyInfoResultV*j WZend_Service_Technorati_GetInfoResultV&i OZend_Service_Technorati_ExceptionV1h eZend_Service_Technorati_DailyCountsResultSetV.g _Zend_Service_Technorati_DailyCountsResultV,f [Zend_Service_Technorati_CosmosResultSetV)e UZend_Service_Technorati_CosmosResultV+d YZend_Service_Technorati_BlogInfoResultV#c IZend_Service_Technorati_AuthorVb ;Zend_Service_StrikeIronV(a SZend_Service_StrikeIron_ZipCodeInfoV2` gZend_Service_StrikeIron_USAddressVerificationV-_ ]Zend_Service_StrikeIron_SalesUseTaxBasicV&^ OZend_Service_StrikeIron_ExceptionV&] OZend_Service_StrikeIron_DecoratorV!\ EZend_Service_StrikeIron_BaseV[ ;Zend_Service_SlideShareV&Z OZend_Service_SlideShare_SlideShowV&Y OZend_Service_SlideShare_ExceptionVX 1Zend_Service_SimpyV$W KZend_Service_Simpy_WatchlistSetV*V WZend_Service_Simpy_WatchlistFilterSetV'U QZend_Service_Simpy_WatchlistFilterV!T EZend_Service_Simpy_WatchlistVS ?Zend_Service_Simpy_TagSetVR 9Zend_Service_Simpy_TagVQ AZend_Service_Simpy_NoteSetVP ;Zend_Service_Simpy_NoteVO AZend_Service_Simpy_LinkSetV!N EZend_Service_Simpy_LinkQueryVM ;Zend_Service_Simpy_LinkVL 9Zend_Service_ReCaptchaV$K KZend_Service_ReCaptcha_ResponseV$J KZend_Service_ReCaptcha_MailHideV.I _Zend_Service_ReCaptcha_MailHide_ExceptionV%H MZend_Service_ReCaptcha_ExceptionVG 7Zend_Service_NirvanixV#F IZend_Service_Nirvanix_ResponseV)E UZend_Service_Nirvanix_Namespace_ImfsV)D UZend_Service_Nirvanix_Namespace_BaseV$C KZend_Service_Nirvanix_ExceptionVB 3Zend_Service_FlickrV"A GZend_Service_Flickr_ResultSetV@ AZend_Service_Flickr_ResultV? ?Zend_Service_Flickr_ImageV> 9Zend_Service_ExceptionV= 9Zend_Service_DeliciousV&< OZend_Service_Delicious_SimplePostV$; KZend_Service_Delicious_PostListV : CZend_Service_Delicious_PostV%9 MZend_Service_Delicious_ExceptionV 8 CZend_Service_AudioscrobblerV7 3Zend_Service_AmazonV'6 QZend_Service_Amazon_SimilarProductV"5 GZend_Service_Amazon_ResultSetV4 ?Zend_Service_Amazon_QueryV!3 EZend_Service_Amazon_OfferSetV2 ?Zend_Service_Amazon_OfferV&1 OZend_Service_Amazon_ListmaniaListV0 =Zend_Service_Amazon_ItemV/ ?Zend_Service_Amazon_ImageV(. SZend_Service_Amazon_EditorialReviewV'- QZend_Service_Amazon_CustomerReviewV$, KZend_Service_Amazon_AccessoriesV+ 5Zend_Service_AkismetV* 7Zend_Service_AbstractV) 9Zend_Server_ReflectionV'( QZend_Server_Reflection_ReturnValueV%' MZend_Server_Reflection_PrototypeV%& MZend_Server_Reflection_ParameterV % CZend_Server_Reflection_NodeV"$ GZend_Server_Reflection_MethodV$# KZend_Server_Reflection_FunctionV-" ]Zend_Server_Reflection_Function_AbstractV%! MZend_Server_Reflection_ExceptionV!  EZend_Server_Reflection_ClassV 7Zend_Server_ExceptionV 5Zend_Server_AbstractV 1Zend_Search_LuceneV$ KZend_Search_Lucene_Storage_FileV+ YZend_Search_Lucene_Storage_File_MemoryV/ aZend_Search_Lucene_Storage_File_FilesystemV   s
 ]0sK0X+y`;V"




}
c
D
)
					_	<	x]G6z\@%Z5yW5lL.~hS8rT0
{X5
                            'o QZend_View_Helper_FormMultiCheckboxVn AZend_View_Helper_FormLabelVm AZend_View_Helper_FormImageV l CZend_View_Helper_FormHiddenVk ?Zend_View_Helper_FormFileV j CZend_View_Helper_FormErrorsV!i EZend_View_Helper_FormElementV"h GZend_View_Helper_FormCheckboxV g CZend_View_Helper_FormButtonVf 7Zend_View_Helper_FormVe ?Zend_View_Helper_FieldsetVd =Zend_View_Helper_DoctypeV!c EZend_View_Helper_DeclareVarsVb ;Zend_View_Helper_ActionVa ?Zend_View_Helper_AbstractV` 3Zend_View_ExceptionV_ 1Zend_View_AbstractV^ %Zend_VersionV] 'Zend_ValidateV\ AZend_Validate_StringLengthV[ 3Zend_Validate_RegexVZ 9Zend_Validate_NotEmptyVY 9Zend_Validate_LessThanVX -Zend_Validate_IpVW /Zend_Validate_IntVV 7Zend_Validate_InArrayVU ;Zend_Validate_IdenticalVT 9Zend_Validate_HostnameVS ?Zend_Validate_Hostname_SeVR ?Zend_Validate_Hostname_NoVQ ?Zend_Validate_Hostname_LiVP ?Zend_Validate_Hostname_HuVO ?Zend_Validate_Hostname_FiVN ?Zend_Validate_Hostname_DeVM ?Zend_Validate_Hostname_ChVL ?Zend_Validate_Hostname_AtVK /Zend_Validate_HexVJ ?Zend_Validate_GreaterThanVI 3Zend_Validate_FloatVH ?Zend_Validate_File_UploadVG ;Zend_Validate_File_SizeV!F EZend_Validate_File_ImageSizeV!E EZend_Validate_File_FilesSizeV!D EZend_Validate_File_ExtensionVC =Zend_Validate_File_CountVB ;Zend_Validate_ExceptionVA AZend_Validate_EmailAddressV@ 5Zend_Validate_DigitsV? 1Zend_Validate_DateV> 3Zend_Validate_CcnumV= 7Zend_Validate_BetweenV< 7Zend_Validate_BarcodeV; AZend_Validate_Barcode_UpcAV : CZend_Validate_Barcode_Ean13V9 3Zend_Validate_AlphaV8 3Zend_Validate_AlnumV7 9Zend_Validate_AbstractV6 Zend_UriV5 'Zend_Uri_HttpV4 1Zend_Uri_ExceptionV3 )Zend_TranslateV2 =Zend_Translate_ExceptionV1 9Zend_Translate_AdapterV!0 EZend_Translate_Adapter_XmlTmV!/ EZend_Translate_Adapter_XliffV. AZend_Translate_Adapter_TmxV- AZend_Translate_Adapter_TbxV, ?Zend_Translate_Adapter_QtV+ AZend_Translate_Adapter_IniV#* IZend_Translate_Adapter_GettextV) AZend_Translate_Adapter_CsvV!( EZend_Translate_Adapter_ArrayV' 'Zend_TimeSyncV& 1Zend_TimeSync_SntpV% 9Zend_TimeSync_ProtocolV$ /Zend_TimeSync_NtpV# ;Zend_TimeSync_ExceptionV" -Zend_Text_FigletV! AZend_Text_Figlet_ExceptionV  3Zend_Text_ExceptionV) UZend_Test_PHPUnit_ControllerTestCaseV0 cZend_Test_PHPUnit_Constraint_ResponseHeaderV* WZend_Test_PHPUnit_Constraint_RedirectV+ YZend_Test_PHPUnit_Constraint_ExceptionV* WZend_Test_PHPUnit_Constraint_DomQueryV )Zend_Soap_WsdlV 7Zend_Soap_Wsdl_ParserV! EZend_Soap_Wsdl_Parser_ResultV! EZend_Soap_Wsdl_CodeGeneratorV -Zend_Soap_ServerV AZend_Soap_Server_ExceptionV -Zend_Soap_ClientV 9Zend_Soap_Client_LocalV AZend_Soap_Client_ExceptionV 9Zend_Soap_AutoDiscoverV %Zend_SessionV) UZend_Session_Validator_HttpUserAgentV$ KZend_Session_Validator_AbstractV' QZend_Session_SaveHandler_ExceptionV% MZend_Session_SaveHandler_DbTableV 9Zend_Session_NamespaceV
 9Zend_Session_ExceptionV	 7Zend_Session_AbstractV 1Zend_Service_YahooV$ KZend_Service_Yahoo_WebResultSetV! EZend_Service_Yahoo_WebResultV& OZend_Service_Yahoo_VideoResultSetV# IZend_Service_Yahoo_VideoResultV! EZend_Service_Yahoo_ResultSetV ?Zend_Service_Yahoo_ResultV) UZend_Service_Yahoo_PageDataResultSetV&  OZend_Service_Yahoo_PageDataResultV% MZend_Service_Yahoo_NewsResultSetV"~ GZend_Service_Yahoo_NewsResultV&} OZend_Service_Yahoo_LocalResultSetV   m rN*zW4]7]%K




r
`
6
				h	C	kP2zY4pM,eK0d@_C*kF$jH'                                !\ EZend_Cache_Frontend_FunctionW[ =Zend_Cache_Frontend_FileWZ ?Zend_Cache_Frontend_ClassWY 5Zend_Cache_ExceptionWX +Zend_Cache_CoreWW 1Zend_Cache_BackendW$V KZend_Cache_Backend_ZendPlatformWU ?Zend_Cache_Backend_XcacheWT ;Zend_Cache_Backend_TestWS ?Zend_Cache_Backend_SqliteW!R EZend_Cache_Backend_MemcachedWQ ;Zend_Cache_Backend_FileWP 9Zend_Cache_Backend_ApcWO Zend_AuthWN ?Zend_Auth_Storage_SessionW$M KZend_Auth_Storage_NonPersistentW L CZend_Auth_Storage_ExceptionWK -Zend_Auth_ResultWJ 3Zend_Auth_ExceptionWI =Zend_Auth_Adapter_OpenIdWH 9Zend_Auth_Adapter_LdapWG AZend_Auth_Adapter_InfoCardWF 9Zend_Auth_Adapter_HttpW)E UZend_Auth_Adapter_Http_Resolver_FileW.D _Zend_Auth_Adapter_Http_Resolver_ExceptionW C CZend_Auth_Adapter_ExceptionWB =Zend_Auth_Adapter_DigestWA ?Zend_Auth_Adapter_DbTableW@ Zend_AclW? 'Zend_Acl_RoleW> 9Zend_Acl_Role_RegistryW%= MZend_Acl_Role_Registry_ExceptionW< /Zend_Acl_ResourceW; 1Zend_Acl_ExceptionW: /Zend_XmlRpc_ValueV9 =Zend_XmlRpc_Value_StructV8 =Zend_XmlRpc_Value_StringV7 =Zend_XmlRpc_Value_ScalarV6 7Zend_XmlRpc_Value_NilV5 ?Zend_XmlRpc_Value_IntegerV 4 CZend_XmlRpc_Value_ExceptionV3 =Zend_XmlRpc_Value_DoubleV2 AZend_XmlRpc_Value_DateTimeV!1 EZend_XmlRpc_Value_CollectionV0 ?Zend_XmlRpc_Value_BooleanV/ =Zend_XmlRpc_Value_Base64V. ;Zend_XmlRpc_Value_ArrayV- 1Zend_XmlRpc_ServerV, =Zend_XmlRpc_Server_FaultV!+ EZend_XmlRpc_Server_ExceptionV* =Zend_XmlRpc_Server_CacheV) 5Zend_XmlRpc_ResponseV( ?Zend_XmlRpc_Response_HttpV' 3Zend_XmlRpc_RequestV& ?Zend_XmlRpc_Request_StdinV% =Zend_XmlRpc_Request_HttpV$ /Zend_XmlRpc_FaultV# 7Zend_XmlRpc_ExceptionV" 1Zend_XmlRpc_ClientV#! IZend_XmlRpc_Client_ServerProxyV+  YZend_XmlRpc_Client_ServerIntrospectionV+ YZend_XmlRpc_Client_IntrospectExceptionV% MZend_XmlRpc_Client_HttpExceptionV& OZend_XmlRpc_Client_FaultExceptionV! EZend_XmlRpc_Client_ExceptionV& OZend_Wildfire_Protocol_JsonStreamV! EZend_Wildfire_Plugin_FirePhpV. _Zend_Wildfire_Plugin_FirePhp_TableMessageV) UZend_Wildfire_Plugin_FirePhp_MessageV ;Zend_Wildfire_ExceptionV& OZend_Wildfire_Channel_HttpHeadersV Zend_ViewV -Zend_View_StreamV 5Zend_View_Helper_UrlV AZend_View_Helper_TranslateV) UZend_View_Helper_RenderToPlaceholderV! EZend_View_Helper_PlaceholderV* WZend_View_Helper_Placeholder_RegistryV4 kZend_View_Helper_Placeholder_Registry_ExceptionV+ YZend_View_Helper_Placeholder_ContainerV6 oZend_View_Helper_Placeholder_Container_StandaloneV5 mZend_View_Helper_Placeholder_Container_ExceptionV4
 kZend_View_Helper_Placeholder_Container_AbstractV!	 EZend_View_Helper_PartialLoopV =Zend_View_Helper_PartialV' QZend_View_Helper_Partial_ExceptionV' QZend_View_Helper_PaginationControlV ;Zend_View_Helper_LayoutV 7Zend_View_Helper_JsonV" GZend_View_Helper_InlineScriptV# IZend_View_Helper_HtmlQuicktimeV ?Zend_View_Helper_HtmlPageV   CZend_View_Helper_HtmlObjectV ?Zend_View_Helper_HtmlListV~ AZend_View_Helper_HtmlFlashV!} EZend_View_Helper_HtmlElementV| AZend_View_Helper_HeadTitleV{ AZend_View_Helper_HeadStyleV z CZend_View_Helper_HeadScriptVy ?Zend_View_Helper_HeadMetaVx ?Zend_View_Helper_HeadLinkV"w GZend_View_Helper_FormTextareaVv ?Zend_View_Helper_FormTextV u CZend_View_Helper_FormSubmitV t CZend_View_Helper_FormSelectVs AZend_View_Helper_FormResetVr AZend_View_Helper_FormRadioV"q GZend_View_Helper_FormPasswordVp ?Zend_View_Helper_FormNoteV   i  uY>}a8	i2^-jK




^
3
				d	?	qKwLvV@'
yW.~Z:wb?hDlR3                       E AZend_Db_Table_Row_AbstractWD ;Zend_Db_Table_ExceptionWC 9Zend_Db_Table_AbstractWB /Zend_Db_StatementWA 7Zend_Db_Statement_PdoW@ ?Zend_Db_Statement_Pdo_IbmW? =Zend_Db_Statement_OracleW'> QZend_Db_Statement_Oracle_ExceptionW= =Zend_Db_Statement_MysqliW'< QZend_Db_Statement_Mysqli_ExceptionW ; CZend_Db_Statement_ExceptionW: 7Zend_Db_Statement_Db2W$9 KZend_Db_Statement_Db2_ExceptionW8 )Zend_Db_SelectW7 =Zend_Db_Select_ExceptionW6 -Zend_Db_ProfilerW5 9Zend_Db_Profiler_QueryW4 =Zend_Db_Profiler_FirebugW3 AZend_Db_Profiler_ExceptionW2 %Zend_Db_ExprW1 /Zend_Db_ExceptionW0 AZend_Db_Adapter_Pdo_SqliteW/ ?Zend_Db_Adapter_Pdo_PgsqlW. ;Zend_Db_Adapter_Pdo_OciW- ?Zend_Db_Adapter_Pdo_MysqlW, ?Zend_Db_Adapter_Pdo_MssqlW+ ;Zend_Db_Adapter_Pdo_IbmW * CZend_Db_Adapter_Pdo_Ibm_IdsW ) CZend_Db_Adapter_Pdo_Ibm_Db2W!( EZend_Db_Adapter_Pdo_AbstractW' 9Zend_Db_Adapter_OracleW%& MZend_Db_Adapter_Oracle_ExceptionW% 9Zend_Db_Adapter_MysqliW%$ MZend_Db_Adapter_Mysqli_ExceptionW# ?Zend_Db_Adapter_ExceptionW" 3Zend_Db_Adapter_Db2W"! GZend_Db_Adapter_Db2_ExceptionW  =Zend_Db_Adapter_AbstractW Zend_DateW 3Zend_Date_ExceptionW 5Zend_Date_DateObjectW -Zend_Date_CitiesW 'Zend_CurrencyW ;Zend_Currency_ExceptionW! EZend_Controller_Router_RouteW( SZend_Controller_Router_Route_StaticW' QZend_Controller_Router_Route_RegexW( SZend_Controller_Router_Route_ModuleW* WZend_Controller_Router_Route_HostnameW' QZend_Controller_Router_Route_ChainW* WZend_Controller_Router_Route_AbstractW# IZend_Controller_Router_RewriteW% MZend_Controller_Router_ExceptionW$ KZend_Controller_Router_AbstractW* WZend_Controller_Response_HttpTestCaseW" GZend_Controller_Response_HttpW' QZend_Controller_Response_ExceptionW! EZend_Controller_Response_CliW& OZend_Controller_Response_AbstractW#
 IZend_Controller_Request_SimpleW)	 UZend_Controller_Request_HttpTestCaseW! EZend_Controller_Request_HttpW& OZend_Controller_Request_ExceptionW& OZend_Controller_Request_Apache404W% MZend_Controller_Request_AbstractW( SZend_Controller_Plugin_ErrorHandlerW" GZend_Controller_Plugin_BrokerW' QZend_Controller_Plugin_ActionStackW$ KZend_Controller_Plugin_AbstractW  7Zend_Controller_FrontW ?Zend_Controller_ExceptionW(~ SZend_Controller_Dispatcher_StandardW)} UZend_Controller_Dispatcher_ExceptionW(| SZend_Controller_Dispatcher_AbstractW{ 9Zend_Controller_ActionW(z SZend_Controller_Action_HelperBrokerW6y oZend_Controller_Action_HelperBroker_PriorityStackW/x aZend_Controller_Action_Helper_ViewRendererW&w OZend_Controller_Action_Helper_UrlW-v ]Zend_Controller_Action_Helper_RedirectorW'u QZend_Controller_Action_Helper_JsonW1t eZend_Controller_Action_Helper_FlashMessengerW0s cZend_Controller_Action_Helper_ContextSwitchW<r {Zend_Controller_Action_Helper_AutoCompleteScriptaculousW3q iZend_Controller_Action_Helper_AutoCompleteDojoW8p sZend_Controller_Action_Helper_AutoComplete_AbstractW.o _Zend_Controller_Action_Helper_AjaxContextW.n _Zend_Controller_Action_Helper_ActionStackW+m YZend_Controller_Action_Helper_AbstractW%l MZend_Controller_Action_ExceptionWk 3Zend_Console_GetoptW"j GZend_Console_Getopt_ExceptionWi #Zend_ConfigWh +Zend_Config_XmlWg +Zend_Config_IniWf 7Zend_Config_ExceptionWe /Zend_Captcha_WordWd 9Zend_Captcha_ReCaptchaWc 1Zend_Captcha_ImageWb 3Zend_Captcha_FigletWa /Zend_Captcha_DumbW` /Zend_Captcha_BaseW_ !Zend_CacheW^ =Zend_Cache_Frontend_PageW] AZend_Cache_Frontend_OutputW   g  uX1tE^.^6^.


z
T
(
 			}	O	0	mH!xT'W+U([+{dI2qP3Z?%                         , 5Zend_Filter_BaseNameW+ /Zend_Filter_AlphaW* /Zend_Filter_AlnumW) 1Zend_File_TransferW!( EZend_File_Transfer_ExceptionW$' KZend_File_Transfer_Adapter_HttpW(& SZend_File_Transfer_Adapter_AbstractW% Zend_FeedW$ 'Zend_Feed_RssW# 3Zend_Feed_ExceptionW" 3Zend_Feed_Entry_RssW! 5Zend_Feed_Entry_AtomW  =Zend_Feed_Entry_AbstractW /Zend_Feed_ElementW /Zend_Feed_BuilderW =Zend_Feed_Builder_HeaderW$ KZend_Feed_Builder_Header_ItunesW  CZend_Feed_Builder_ExceptionW ;Zend_Feed_Builder_EntryW )Zend_Feed_AtomW 1Zend_Feed_AbstractW )Zend_ExceptionW )Zend_Dom_QueryW 7Zend_Dom_Query_ResultW =Zend_Dom_Query_Css2XpathW 1Zend_Dom_ExceptionW Zend_DojoW) UZend_Dojo_View_Helper_VerticalSliderW, [Zend_Dojo_View_Helper_ValidationTextBoxW& OZend_Dojo_View_Helper_TimeTextBoxW" GZend_Dojo_View_Helper_TextBoxW# IZend_Dojo_View_Helper_TextareaW' QZend_Dojo_View_Helper_TabContainerW' QZend_Dojo_View_Helper_SubmitButtonW)
 UZend_Dojo_View_Helper_StackContainerW)	 UZend_Dojo_View_Helper_SplitContainerW! EZend_Dojo_View_Helper_SliderW& OZend_Dojo_View_Helper_RadioButtonW* WZend_Dojo_View_Helper_PasswordTextBoxW( SZend_Dojo_View_Helper_NumberTextBoxW( SZend_Dojo_View_Helper_NumberSpinnerW+ YZend_Dojo_View_Helper_HorizontalSliderW AZend_Dojo_View_Helper_FormW* WZend_Dojo_View_Helper_FilteringSelectW  AZend_Dojo_View_Helper_DojoW) UZend_Dojo_View_Helper_Dojo_ContainerW)~ UZend_Dojo_View_Helper_DijitContainerW } CZend_Dojo_View_Helper_DijitW&| OZend_Dojo_View_Helper_DateTextBoxW*{ WZend_Dojo_View_Helper_CurrencyTextBoxW&z OZend_Dojo_View_Helper_ContentPaneW#y IZend_Dojo_View_Helper_ComboBoxW#x IZend_Dojo_View_Helper_CheckBoxW!w EZend_Dojo_View_Helper_ButtonW*v WZend_Dojo_View_Helper_BorderContainerW(u SZend_Dojo_View_Helper_AccordionPaneW-t ]Zend_Dojo_View_Helper_AccordionContainerWs =Zend_Dojo_View_ExceptionWr )Zend_Dojo_FormWq 9Zend_Dojo_Form_SubFormW*p WZend_Dojo_Form_Element_VerticalSliderW-o ]Zend_Dojo_Form_Element_ValidationTextBoxW'n QZend_Dojo_Form_Element_TimeTextBoxW#m IZend_Dojo_Form_Element_TextBoxW$l KZend_Dojo_Form_Element_TextareaW(k SZend_Dojo_Form_Element_SubmitButtonW"j GZend_Dojo_Form_Element_SliderW'i QZend_Dojo_Form_Element_RadioButtonW+h YZend_Dojo_Form_Element_PasswordTextBoxW)g UZend_Dojo_Form_Element_NumberTextBoxW)f UZend_Dojo_Form_Element_NumberSpinnerW,e [Zend_Dojo_Form_Element_HorizontalSliderW+d YZend_Dojo_Form_Element_FilteringSelectW&c OZend_Dojo_Form_Element_DijitMultiW!b EZend_Dojo_Form_Element_DijitW'a QZend_Dojo_Form_Element_DateTextBoxW+` YZend_Dojo_Form_Element_CurrencyTextBoxW$_ KZend_Dojo_Form_Element_ComboBoxW$^ KZend_Dojo_Form_Element_CheckBoxW"] GZend_Dojo_Form_Element_ButtonW \ CZend_Dojo_Form_DisplayGroupW*[ WZend_Dojo_Form_Decorator_TabContainerW,Z [Zend_Dojo_Form_Decorator_StackContainerW,Y [Zend_Dojo_Form_Decorator_SplitContainerW'X QZend_Dojo_Form_Decorator_DijitFormW*W WZend_Dojo_Form_Decorator_DijitElementW,V [Zend_Dojo_Form_Decorator_DijitContainerW)U UZend_Dojo_Form_Decorator_ContentPaneW-T ]Zend_Dojo_Form_Decorator_BorderContainerW+S YZend_Dojo_Form_Decorator_AccordionPaneW0R cZend_Dojo_Form_Decorator_AccordionContainerWQ 3Zend_Dojo_ExceptionWP )Zend_Dojo_DataWO !Zend_DebugWN Zend_DbWM 'Zend_Db_TableWL 5Zend_Db_Table_SelectW#K IZend_Db_Table_Select_ExceptionWJ 5Zend_Db_Table_RowsetW#I IZend_Db_Table_Rowset_ExceptionW"H GZend_Db_Table_Rowset_AbstractWG /Zend_Db_Table_RowW F CZend_Db_Table_Row_ExceptionW   j  pV>|^5\0|R#xP(



p
L
*
				z	X	5	rJ$`=hL%e<oD`5lEkF                         AZend_Gdata_App_IOExceptionW, [Zend_Gdata_App_InvalidArgumentExceptionW! EZend_Gdata_App_HttpExceptionW$ KZend_Gdata_App_FeedSourceParentW# IZend_Gdata_App_FeedEntryParentW 3Zend_Gdata_App_FeedW =Zend_Gdata_App_ExtensionW! EZend_Gdata_App_Extension_UriW% MZend_Gdata_App_Extension_UpdatedW# IZend_Gdata_App_Extension_TitleW" GZend_Gdata_App_Extension_TextW% MZend_Gdata_App_Extension_SummaryW&
 OZend_Gdata_App_Extension_SubtitleW$	 KZend_Gdata_App_Extension_SourceW$ KZend_Gdata_App_Extension_RightsW' QZend_Gdata_App_Extension_PublishedW$ KZend_Gdata_App_Extension_PersonW" GZend_Gdata_App_Extension_NameW" GZend_Gdata_App_Extension_LogoW" GZend_Gdata_App_Extension_LinkW  CZend_Gdata_App_Extension_IdW" GZend_Gdata_App_Extension_IconW'  QZend_Gdata_App_Extension_GeneratorW# IZend_Gdata_App_Extension_EmailW%~ MZend_Gdata_App_Extension_ElementW#} IZend_Gdata_App_Extension_DraftW%| MZend_Gdata_App_Extension_ControlW){ UZend_Gdata_App_Extension_ContributorW%z MZend_Gdata_App_Extension_ContentW&y OZend_Gdata_App_Extension_CategoryW$x KZend_Gdata_App_Extension_AuthorWw =Zend_Gdata_App_ExceptionWv 5Zend_Gdata_App_EntryW,u [Zend_Gdata_App_CaptchaRequiredExceptionW#t IZend_Gdata_App_BaseMediaSourceWs 3Zend_Gdata_App_BaseW*r WZend_Gdata_App_BadMethodCallExceptionW!q EZend_Gdata_App_AuthExceptionWp Zend_FormWo /Zend_Form_SubFormWn 3Zend_Form_ExceptionWm /Zend_Form_ElementWl ;Zend_Form_Element_XhtmlWk AZend_Form_Element_TextareaWj 9Zend_Form_Element_TextWi =Zend_Form_Element_SubmitWh =Zend_Form_Element_SelectWg ;Zend_Form_Element_ResetWf ;Zend_Form_Element_RadioWe AZend_Form_Element_PasswordW"d GZend_Form_Element_MultiselectW$c KZend_Form_Element_MultiCheckboxWb ;Zend_Form_Element_MultiWa ;Zend_Form_Element_ImageW` =Zend_Form_Element_HiddenW_ 9Zend_Form_Element_HashW^ 9Zend_Form_Element_FileW ] CZend_Form_Element_ExceptionW\ AZend_Form_Element_CheckboxW[ ?Zend_Form_Element_CaptchaWZ =Zend_Form_Element_ButtonWY 9Zend_Form_DisplayGroupW#X IZend_Form_Decorator_ViewScriptW#W IZend_Form_Decorator_ViewHelperWV ?Zend_Form_Decorator_LabelWU ?Zend_Form_Decorator_ImageW T CZend_Form_Decorator_HtmlTagW%S MZend_Form_Decorator_FormElementsWR =Zend_Form_Decorator_FormW!Q EZend_Form_Decorator_FieldsetW"P GZend_Form_Decorator_ExceptionWO AZend_Form_Decorator_ErrorsW$N KZend_Form_Decorator_DtDdWrapperW$M KZend_Form_Decorator_DescriptionW L CZend_Form_Decorator_CaptchaW%K MZend_Form_Decorator_Captcha_WordW!J EZend_Form_Decorator_CallbackW!I EZend_Form_Decorator_AbstractWH #Zend_FilterW+G YZend_Filter_Word_UnderscoreToSeparatorW&F OZend_Filter_Word_UnderscoreToDashW+E YZend_Filter_Word_UnderscoreToCamelCaseW*D WZend_Filter_Word_SeparatorToSeparatorW%C MZend_Filter_Word_SeparatorToDashW*B WZend_Filter_Word_SeparatorToCamelCaseW(A SZend_Filter_Word_Separator_AbstractW&@ OZend_Filter_Word_DashToUnderscoreW%? MZend_Filter_Word_DashToSeparatorW%> MZend_Filter_Word_DashToCamelCaseW+= YZend_Filter_Word_CamelCaseToUnderscoreW*< WZend_Filter_Word_CamelCaseToSeparatorW%; MZend_Filter_Word_CamelCaseToDashW: 7Zend_Filter_StripTagsW9 ?Zend_Filter_StripNewlinesW8 9Zend_Filter_StringTrimW7 ?Zend_Filter_StringToUpperW6 ?Zend_Filter_StringToLowerW5 5Zend_Filter_RealPathW4 ;Zend_Filter_PregReplaceW3 +Zend_Filter_IntW2 /Zend_Filter_InputW1 7Zend_Filter_InflectorW0 =Zend_Filter_HtmlEntitiesW/ 7Zend_Filter_ExceptionW. +Zend_Filter_DirW- 1Zend_Filter_DigitsW   d  eN3a4	n?^5rJ



w
O
(
				v	P	)	 xFjDoW/N/\5|Z7kH)U+                        z 3Zend_Gdata_Geo_FeedW$y KZend_Gdata_Geo_Extension_GmlPosW&x OZend_Gdata_Geo_Extension_GmlPointW)w UZend_Gdata_Geo_Extension_GeoRssWhereWv 5Zend_Gdata_Geo_EntryWu -Zend_Gdata_GbaseW"t GZend_Gdata_Gbase_SnippetQueryW!s EZend_Gdata_Gbase_SnippetFeedW"r GZend_Gdata_Gbase_SnippetEntryWq 9Zend_Gdata_Gbase_QueryWp AZend_Gdata_Gbase_ItemQueryWo ?Zend_Gdata_Gbase_ItemFeedWn AZend_Gdata_Gbase_ItemEntryWm 7Zend_Gdata_Gbase_FeedW-l ]Zend_Gdata_Gbase_Extension_BaseAttributeWk 9Zend_Gdata_Gbase_EntryWj -Zend_Gdata_GappsWi AZend_Gdata_Gapps_UserQueryWh ?Zend_Gdata_Gapps_UserFeedWg AZend_Gdata_Gapps_UserEntryW&f OZend_Gdata_Gapps_ServiceExceptionWe 9Zend_Gdata_Gapps_QueryW#d IZend_Gdata_Gapps_NicknameQueryW"c GZend_Gdata_Gapps_NicknameFeedW#b IZend_Gdata_Gapps_NicknameEntryW%a MZend_Gdata_Gapps_Extension_QuotaW(` SZend_Gdata_Gapps_Extension_NicknameW$_ KZend_Gdata_Gapps_Extension_NameW%^ MZend_Gdata_Gapps_Extension_LoginW)] UZend_Gdata_Gapps_Extension_EmailListW\ 9Zend_Gdata_Gapps_ErrorW-[ ]Zend_Gdata_Gapps_EmailListRecipientQueryW,Z [Zend_Gdata_Gapps_EmailListRecipientFeedW-Y ]Zend_Gdata_Gapps_EmailListRecipientEntryW$X KZend_Gdata_Gapps_EmailListQueryW#W IZend_Gdata_Gapps_EmailListFeedW$V KZend_Gdata_Gapps_EmailListEntryWU +Zend_Gdata_FeedWT 5Zend_Gdata_ExtensionWS =Zend_Gdata_Extension_WhoWR AZend_Gdata_Extension_WhereWQ ?Zend_Gdata_Extension_WhenW$P KZend_Gdata_Extension_VisibilityW&O OZend_Gdata_Extension_TransparencyW"N GZend_Gdata_Extension_ReminderW-M ]Zend_Gdata_Extension_RecurrenceExceptionW$L KZend_Gdata_Extension_RecurrenceW K CZend_Gdata_Extension_RatingW'J QZend_Gdata_Extension_OriginalEventW0I cZend_Gdata_Extension_OpenSearchTotalResultsW.H _Zend_Gdata_Extension_OpenSearchStartIndexW0G cZend_Gdata_Extension_OpenSearchItemsPerPageW"F GZend_Gdata_Extension_FeedLinkW*E WZend_Gdata_Extension_ExtendedPropertyW%D MZend_Gdata_Extension_EventStatusW#C IZend_Gdata_Extension_EntryLinkW"B GZend_Gdata_Extension_CommentsW&A OZend_Gdata_Extension_AttendeeTypeW(@ SZend_Gdata_Extension_AttendeeStatusW? +Zend_Gdata_ExifW> 5Zend_Gdata_Exif_FeedW#= IZend_Gdata_Exif_Extension_TimeW#< IZend_Gdata_Exif_Extension_TagsW$; KZend_Gdata_Exif_Extension_ModelW#: IZend_Gdata_Exif_Extension_MakeW"9 GZend_Gdata_Exif_Extension_IsoW,8 [Zend_Gdata_Exif_Extension_ImageUniqueIdW$7 KZend_Gdata_Exif_Extension_FStopW*6 WZend_Gdata_Exif_Extension_FocalLengthW$5 KZend_Gdata_Exif_Extension_FlashW'4 QZend_Gdata_Exif_Extension_ExposureW'3 QZend_Gdata_Exif_Extension_DistanceW2 7Zend_Gdata_Exif_EntryW1 -Zend_Gdata_EntryW0 +Zend_Gdata_DocsW/ 7Zend_Gdata_Docs_QueryW%. MZend_Gdata_Docs_DocumentListFeedW&- OZend_Gdata_Docs_DocumentListEntryW, 9Zend_Gdata_ClientLoginW+ 3Zend_Gdata_CalendarW!* EZend_Gdata_Calendar_ListFeedW") GZend_Gdata_Calendar_ListEntryW-( ]Zend_Gdata_Calendar_Extension_WebContentW+' YZend_Gdata_Calendar_Extension_TimezoneW9& uZend_Gdata_Calendar_Extension_SendEventNotificationsW+% YZend_Gdata_Calendar_Extension_SelectedW+$ YZend_Gdata_Calendar_Extension_QuickAddW'# QZend_Gdata_Calendar_Extension_LinkW)" UZend_Gdata_Calendar_Extension_HiddenW(! SZend_Gdata_Calendar_Extension_ColorW.  _Zend_Gdata_Calendar_Extension_AccessLevelW# IZend_Gdata_Calendar_EventQueryW" GZend_Gdata_Calendar_EventFeedW# IZend_Gdata_Calendar_EventEntryW 1Zend_Gdata_AuthSubW )Zend_Gdata_AppW 3Zend_Gdata_App_UtilW# IZend_Gdata_App_MediaFileSourceW ?Zend_Gdata_App_MediaEntryW2 gZend_Gdata_App_LoggingHttpClientAdapterSocketW   [  X(e8uHhCj?



Y
#				h	<	Y+}S.
{W=$yJ`6xX0	f9T&                  *U WZend_Gdata_YouTube_Extension_LocationW&T OZend_Gdata_YouTube_Extension_LinkW*S WZend_Gdata_YouTube_Extension_HometownW)R UZend_Gdata_YouTube_Extension_HobbiesW(Q SZend_Gdata_YouTube_Extension_GenderW*P WZend_Gdata_YouTube_Extension_DurationW-O ]Zend_Gdata_YouTube_Extension_DescriptionW)N UZend_Gdata_YouTube_Extension_ControlW)M UZend_Gdata_YouTube_Extension_CompanyW'L QZend_Gdata_YouTube_Extension_BooksW%K MZend_Gdata_YouTube_Extension_AgeW#J IZend_Gdata_YouTube_ContactFeedW$I KZend_Gdata_YouTube_ContactEntryW#H IZend_Gdata_YouTube_CommentFeedW$G KZend_Gdata_YouTube_CommentEntryWF ;Zend_Gdata_SpreadsheetsW*E WZend_Gdata_Spreadsheets_WorksheetFeedW+D YZend_Gdata_Spreadsheets_WorksheetEntryW,C [Zend_Gdata_Spreadsheets_SpreadsheetFeedW-B ]Zend_Gdata_Spreadsheets_SpreadsheetEntryW&A OZend_Gdata_Spreadsheets_ListQueryW%@ MZend_Gdata_Spreadsheets_ListFeedW&? OZend_Gdata_Spreadsheets_ListEntryW/> aZend_Gdata_Spreadsheets_Extension_RowCountW-= ]Zend_Gdata_Spreadsheets_Extension_CustomW/< aZend_Gdata_Spreadsheets_Extension_ColCountW+; YZend_Gdata_Spreadsheets_Extension_CellW*: WZend_Gdata_Spreadsheets_DocumentQueryW&9 OZend_Gdata_Spreadsheets_CellQueryW%8 MZend_Gdata_Spreadsheets_CellFeedW&7 OZend_Gdata_Spreadsheets_CellEntryW6 -Zend_Gdata_QueryW5 /Zend_Gdata_PhotosW 4 CZend_Gdata_Photos_UserQueryW3 AZend_Gdata_Photos_UserFeedW 2 CZend_Gdata_Photos_UserEntryW1 AZend_Gdata_Photos_TagEntryW!0 EZend_Gdata_Photos_PhotoQueryW / CZend_Gdata_Photos_PhotoFeedW!. EZend_Gdata_Photos_PhotoEntryW&- OZend_Gdata_Photos_Extension_WidthW', QZend_Gdata_Photos_Extension_WeightW(+ SZend_Gdata_Photos_Extension_VersionW%* MZend_Gdata_Photos_Extension_UserW*) WZend_Gdata_Photos_Extension_TimestampW*( WZend_Gdata_Photos_Extension_ThumbnailW%' MZend_Gdata_Photos_Extension_SizeW)& UZend_Gdata_Photos_Extension_RotationW+% YZend_Gdata_Photos_Extension_QuotaLimitW-$ ]Zend_Gdata_Photos_Extension_QuotaCurrentW)# UZend_Gdata_Photos_Extension_PositionW(" SZend_Gdata_Photos_Extension_PhotoIdW3! iZend_Gdata_Photos_Extension_NumPhotosRemainingW*  WZend_Gdata_Photos_Extension_NumPhotosW) UZend_Gdata_Photos_Extension_NicknameW% MZend_Gdata_Photos_Extension_NameW2 gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumW) UZend_Gdata_Photos_Extension_LocationW# IZend_Gdata_Photos_Extension_IdW' QZend_Gdata_Photos_Extension_HeightW2 gZend_Gdata_Photos_Extension_CommentingEnabledW- ]Zend_Gdata_Photos_Extension_CommentCountW' QZend_Gdata_Photos_Extension_ClientW) UZend_Gdata_Photos_Extension_ChecksumW* WZend_Gdata_Photos_Extension_BytesUsedW( SZend_Gdata_Photos_Extension_AlbumIdW' QZend_Gdata_Photos_Extension_AccessW# IZend_Gdata_Photos_CommentEntryW! EZend_Gdata_Photos_AlbumQueryW  CZend_Gdata_Photos_AlbumFeedW! EZend_Gdata_Photos_AlbumEntryW -Zend_Gdata_MediaW 7Zend_Gdata_Media_FeedW* WZend_Gdata_Media_Extension_MediaTitleW. _Zend_Gdata_Media_Extension_MediaThumbnailW)
 UZend_Gdata_Media_Extension_MediaTextW0	 cZend_Gdata_Media_Extension_MediaRestrictionW+ YZend_Gdata_Media_Extension_MediaRatingW+ YZend_Gdata_Media_Extension_MediaPlayerW- ]Zend_Gdata_Media_Extension_MediaKeywordsW) UZend_Gdata_Media_Extension_MediaHashW* WZend_Gdata_Media_Extension_MediaGroupW0 cZend_Gdata_Media_Extension_MediaDescriptionW+ YZend_Gdata_Media_Extension_MediaCreditW. _Zend_Gdata_Media_Extension_MediaCopyrightW,  [Zend_Gdata_Media_Extension_MediaContentW- ]Zend_Gdata_Media_Extension_MediaCategoryW~ 9Zend_Gdata_Media_EntryW} AZend_Gdata_Kind_EventEntryW| 7Zend_Gdata_HttpClientW{ )Zend_Gdata_GeoW   d  rGe3{O$wIqL&



~
X
5

					b	;		k2b@mB_(oY?%	Y7iK7	fM/                                  9 AZend_Locale_Math_ExceptionW8 1Zend_Locale_FormatW7 7Zend_Locale_ExceptionW6 -Zend_Locale_DataW!5 EZend_Locale_Data_TranslationW4 #Zend_LoaderW3 =Zend_Loader_PluginLoaderW'2 QZend_Loader_PluginLoader_ExceptionW1 7Zend_Loader_ExceptionW0 Zend_LdapW/ 3Zend_Ldap_ExceptionW. #Zend_LayoutW- 7Zend_Layout_ExceptionW), UZend_Layout_Controller_Plugin_LayoutW0+ cZend_Layout_Controller_Action_Helper_LayoutW* Zend_JsonW) -Zend_Json_ServerW( 5Zend_Json_Server_SmdW!' EZend_Json_Server_Smd_ServiceW& ?Zend_Json_Server_ResponseW#% IZend_Json_Server_Response_HttpW$ =Zend_Json_Server_RequestW"# GZend_Json_Server_Request_HttpW" AZend_Json_Server_ExceptionW! 9Zend_Json_Server_ErrorW  3Zend_Json_ExceptionW /Zend_Json_EncoderW /Zend_Json_DecoderW 'Zend_InfoCardW- ]Zend_InfoCard_Xml_SecurityTokenReferenceW AZend_InfoCard_Xml_SecurityW) UZend_InfoCard_Xml_Security_TransformW4 kZend_InfoCard_Xml_Security_Transform_XmlExcC14NW3 iZend_InfoCard_Xml_Security_Transform_ExceptionW< {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignatureW) UZend_InfoCard_Xml_Security_ExceptionW ?Zend_InfoCard_Xml_KeyInfoW& OZend_InfoCard_Xml_KeyInfo_XmlDSigW& OZend_InfoCard_Xml_KeyInfo_DefaultW' QZend_InfoCard_Xml_KeyInfo_AbstractW  CZend_InfoCard_Xml_ExceptionW# IZend_InfoCard_Xml_EncryptedKeyW$ KZend_InfoCard_Xml_EncryptedDataW+ YZend_InfoCard_Xml_EncryptedData_XmlEncW- ]Zend_InfoCard_Xml_EncryptedData_AbstractW ?Zend_InfoCard_Xml_ElementW  CZend_InfoCard_Xml_AssertionW%
 MZend_InfoCard_Xml_Assertion_SamlW	 ;Zend_InfoCard_ExceptionW% MZend_InfoCard_Exception_AbstractW 5Zend_InfoCard_ClaimsW 5Zend_InfoCard_CipherW5 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcW5 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcW4 kZend_InfoCard_Cipher_Symmetric_Adapter_AbstractW) UZend_InfoCard_Cipher_Pki_Adapter_RsaW. _Zend_InfoCard_Cipher_Pki_Adapter_AbstractW#  IZend_InfoCard_Cipher_ExceptionW$ KZend_InfoCard_Adapter_ExceptionW"~ GZend_InfoCard_Adapter_DefaultW} 1Zend_Http_ResponseW| 3Zend_Http_ExceptionW{ 3Zend_Http_CookieJarWz -Zend_Http_CookieWy -Zend_Http_ClientWx AZend_Http_Client_ExceptionW"w GZend_Http_Client_Adapter_TestW$v KZend_Http_Client_Adapter_SocketW#u IZend_Http_Client_Adapter_ProxyW't QZend_Http_Client_Adapter_ExceptionWs !Zend_GdataWr 1Zend_Gdata_YouTubeW"q GZend_Gdata_YouTube_VideoQueryW!p EZend_Gdata_YouTube_VideoFeedW"o GZend_Gdata_YouTube_VideoEntryW(n SZend_Gdata_YouTube_UserProfileEntryW(m SZend_Gdata_YouTube_SubscriptionFeedW)l UZend_Gdata_YouTube_SubscriptionEntryW)k UZend_Gdata_YouTube_PlaylistVideoFeedW*j WZend_Gdata_YouTube_PlaylistVideoEntryW(i SZend_Gdata_YouTube_PlaylistListFeedW)h UZend_Gdata_YouTube_PlaylistListEntryW"g GZend_Gdata_YouTube_MediaEntryW*f WZend_Gdata_YouTube_Extension_UsernameW'e QZend_Gdata_YouTube_Extension_TokenW(d SZend_Gdata_YouTube_Extension_StatusW,c [Zend_Gdata_YouTube_Extension_StatisticsW'b QZend_Gdata_YouTube_Extension_StateW(a SZend_Gdata_YouTube_Extension_SchoolW-` ]Zend_Gdata_YouTube_Extension_ReleaseDateW._ _Zend_Gdata_YouTube_Extension_RelationshipW&^ OZend_Gdata_YouTube_Extension_RacyW)] UZend_Gdata_YouTube_Extension_PrivateW*\ WZend_Gdata_YouTube_Extension_PositionW,[ [Zend_Gdata_YouTube_Extension_OccupationW)Z UZend_Gdata_YouTube_Extension_NoEmbedW'Y QZend_Gdata_YouTube_Extension_MusicW(X SZend_Gdata_YouTube_Extension_MoviesW,W [Zend_Gdata_YouTube_Extension_MediaGroupW.V _Zend_Gdata_YouTube_Extension_MediaContentW   x  wV5{^?.]=zW3
cD




n
\
>

					b	E	(	sT2fL0	^8}cL:oE ~V.
c5sW6        1 1Zend_Pdf_Color_RgbW0 3Zend_Pdf_Color_HtmlW/ =Zend_Pdf_Color_GrayScaleW. 3Zend_Pdf_Color_CmykW- 'Zend_Pdf_CmapW, AZend_Pdf_Cmap_TrimmedTableW!+ EZend_Pdf_Cmap_SegmentToDeltaW* AZend_Pdf_Cmap_ByteEncodingW&) OZend_Pdf_Cmap_ByteEncoding_StaticW( )Zend_PaginatorW*' WZend_Paginator_ScrollingStyle_SlidingW*& WZend_Paginator_ScrollingStyle_JumpingW*% WZend_Paginator_ScrollingStyle_ElasticW&$ OZend_Paginator_ScrollingStyle_AllW# =Zend_Paginator_ExceptionW " CZend_Paginator_Adapter_NullW$! KZend_Paginator_Adapter_IteratorW$  KZend_Paginator_Adapter_DbSelectW! EZend_Paginator_Adapter_ArrayW #Zend_OpenIdW 5Zend_OpenId_ProviderW ?Zend_OpenId_Provider_UserW& OZend_OpenId_Provider_User_SessionW! EZend_OpenId_Provider_StorageW& OZend_OpenId_Provider_Storage_FileW 7Zend_OpenId_ExtensionW AZend_OpenId_Extension_SregW 7Zend_OpenId_ExceptionW 5Zend_OpenId_ConsumerW! EZend_OpenId_Consumer_StorageW& OZend_OpenId_Consumer_Storage_FileW Zend_MimeW )Zend_Mime_PartW /Zend_Mime_MessageW 3Zend_Mime_ExceptionW -Zend_Mime_DecodeW #Zend_MemoryW /Zend_Memory_ValueW 3Zend_Memory_ManagerW
 7Zend_Memory_ExceptionW	 7Zend_Memory_ContainerW" GZend_Memory_Container_MovableW! EZend_Memory_Container_LockedW! EZend_Memory_AccessControllerW 3Zend_Measure_WeightW 3Zend_Measure_VolumeW% MZend_Measure_Viscosity_KinematicW# IZend_Measure_Viscosity_DynamicW 3Zend_Measure_TorqueW  /Zend_Measure_TimeW =Zend_Measure_TemperatureW~ 1Zend_Measure_SpeedW} 7Zend_Measure_PressureW| 1Zend_Measure_PowerW{ 3Zend_Measure_NumberWz 9Zend_Measure_LightnessWy 3Zend_Measure_LengthWx ?Zend_Measure_IlluminationWw 9Zend_Measure_FrequencyWv 1Zend_Measure_ForceWu =Zend_Measure_Flow_VolumeWt 9Zend_Measure_Flow_MoleWs 9Zend_Measure_Flow_MassWr 9Zend_Measure_ExceptionWq 3Zend_Measure_EnergyWp 5Zend_Measure_DensityWo 5Zend_Measure_CurrentW n CZend_Measure_Cooking_WeightW m CZend_Measure_Cooking_VolumeWl =Zend_Measure_CapacitanceWk 3Zend_Measure_BinaryWj /Zend_Measure_AreaWi 1Zend_Measure_AngleWh ?Zend_Measure_AccelerationWg 7Zend_Measure_AbstractWf Zend_MailWe =Zend_Mail_Transport_SmtpW!d EZend_Mail_Transport_SendmailW"c GZend_Mail_Transport_ExceptionW!b EZend_Mail_Transport_AbstractWa /Zend_Mail_StorageW'` QZend_Mail_Storage_Writable_MaildirW_ 9Zend_Mail_Storage_Pop3W^ 9Zend_Mail_Storage_MboxW] ?Zend_Mail_Storage_MaildirW\ 9Zend_Mail_Storage_ImapW[ =Zend_Mail_Storage_FolderW"Z GZend_Mail_Storage_Folder_MboxW%Y MZend_Mail_Storage_Folder_MaildirW X CZend_Mail_Storage_ExceptionWW AZend_Mail_Storage_AbstractWV ;Zend_Mail_Protocol_SmtpW'U QZend_Mail_Protocol_Smtp_Auth_PlainW'T QZend_Mail_Protocol_Smtp_Auth_LoginW)S UZend_Mail_Protocol_Smtp_Auth_Crammd5WR ;Zend_Mail_Protocol_Pop3WQ ;Zend_Mail_Protocol_ImapW!P EZend_Mail_Protocol_ExceptionW O CZend_Mail_Protocol_AbstractWN )Zend_Mail_PartWM 3Zend_Mail_Part_FileWL /Zend_Mail_MessageWK 9Zend_Mail_Message_FileWJ 3Zend_Mail_ExceptionWI Zend_LogWH 9Zend_Log_Writer_StreamWG 5Zend_Log_Writer_NullWF 5Zend_Log_Writer_MockWE ;Zend_Log_Writer_FirebugWD 1Zend_Log_Writer_DbWC =Zend_Log_Writer_AbstractWB 9Zend_Log_Formatter_XmlWA ?Zend_Log_Formatter_SimpleW@ =Zend_Log_Filter_SuppressW? =Zend_Log_Filter_PriorityW> ;Zend_Log_Filter_MessageW= 1Zend_Log_ExceptionW< #Zend_LocaleW; -Zend_Locale_MathW: =Zend_Locale_Math_PhpMathW   _  gI(jJ#V,|O)	r\E/




^
0				[	e q2R,zZ3cR<j ^R   & OZend_Search_Lucene_Analysis_TokenW) UZend_Search_Lucene_Analysis_AnalyzerW0 cZend_Search_Lucene_Analysis_Analyzer_CommonW8 sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumWI Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitiveW5 mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8WF
 Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitiveW8	 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumWI Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitiveW5 mZend_Search_Lucene_Analysis_Analyzer_Common_TextWF Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiveW 7Zend_Search_ExceptionW -Zend_Rest_ServerW AZend_Rest_Server_ExceptionW 3Zend_Rest_ExceptionW -Zend_Rest_ClientW  ;Zend_Rest_Client_ResultW AZend_Rest_Client_ExceptionW~ 'Zend_RegistryW} Zend_PdfW!| EZend_Pdf_UpdateInfoContainerW{ -Zend_Pdf_TrailerWz ;Zend_Pdf_Trailer_KeeperWy AZend_Pdf_Trailer_GeneratorWx )Zend_Pdf_StyleWw 7Zend_Pdf_StringParserWv /Zend_Pdf_ResourceW#u IZend_Pdf_Resource_ImageFactoryWt ;Zend_Pdf_Resource_ImageW!s EZend_Pdf_Resource_Image_TiffW r CZend_Pdf_Resource_Image_PngW!q EZend_Pdf_Resource_Image_JpegWp 9Zend_Pdf_Resource_FontW!o EZend_Pdf_Resource_Font_Type0W"n GZend_Pdf_Resource_Font_SimpleW+m YZend_Pdf_Resource_Font_Simple_StandardW8l sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsW6k oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanW7j qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicW;i yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicW5h mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldW2g gZend_Pdf_Resource_Font_Simple_Standard_SymbolW<f {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueWAe Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliqueW9d uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldW5c mZend_Pdf_Resource_Font_Simple_Standard_HelveticaW:b wZend_Pdf_Resource_Font_Simple_Standard_CourierObliqueW>a Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliqueW7` qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldW3_ iZend_Pdf_Resource_Font_Simple_Standard_CourierW)^ UZend_Pdf_Resource_Font_Simple_ParsedW2] gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypeW*\ WZend_Pdf_Resource_Font_FontDescriptorW%[ MZend_Pdf_Resource_Font_ExtractedW#Z IZend_Pdf_Resource_Font_CidFontW,Y [Zend_Pdf_Resource_Font_CidFont_TrueTypeWX /Zend_Pdf_PhpArrayWW +Zend_Pdf_ParserWV 9Zend_Pdf_Parser_StreamWU 'Zend_Pdf_PageWT )Zend_Pdf_ImageWS 'Zend_Pdf_FontW R CZend_Pdf_Filter_CompressionW$Q KZend_Pdf_Filter_Compression_LzwW&P OZend_Pdf_Filter_Compression_FlateWO =Zend_Pdf_Filter_AsciiHexWN ;Zend_Pdf_Filter_Ascii85W"M GZend_Pdf_FileParserDataSourceW)L UZend_Pdf_FileParserDataSource_StringW'K QZend_Pdf_FileParserDataSource_FileWJ 3Zend_Pdf_FileParserWI ?Zend_Pdf_FileParser_ImageW"H GZend_Pdf_FileParser_Image_PngWG =Zend_Pdf_FileParser_FontW&F OZend_Pdf_FileParser_Font_OpenTypeW/E aZend_Pdf_FileParser_Font_OpenType_TrueTypeWD 1Zend_Pdf_ExceptionWC ;Zend_Pdf_ElementFactoryW"B GZend_Pdf_ElementFactory_ProxyWA -Zend_Pdf_ElementW@ ;Zend_Pdf_Element_StringW#? IZend_Pdf_Element_String_BinaryW> ;Zend_Pdf_Element_StreamW= AZend_Pdf_Element_ReferenceW%< MZend_Pdf_Element_Reference_TableW'; QZend_Pdf_Element_Reference_ContextW: ;Zend_Pdf_Element_ObjectW#9 IZend_Pdf_Element_Object_StreamW8 =Zend_Pdf_Element_NumericW7 7Zend_Pdf_Element_NullW6 7Zend_Pdf_Element_NameW 5 CZend_Pdf_Element_DictionaryW4 =Zend_Pdf_Element_BooleanW3 9Zend_Pdf_Element_ArrayW2 )Zend_Pdf_ColorW   Y  MqP1HpJ I



U
&				r	>	~Q#U(e7vG{J"[<`?[?                       i CZend_Service_Delicious_PostW%h MZend_Service_Delicious_ExceptionW g CZend_Service_AudioscrobblerWf 3Zend_Service_AmazonW'e QZend_Service_Amazon_SimilarProductW"d GZend_Service_Amazon_ResultSetWc ?Zend_Service_Amazon_QueryW!b EZend_Service_Amazon_OfferSetWa ?Zend_Service_Amazon_OfferW&` OZend_Service_Amazon_ListmaniaListW_ =Zend_Service_Amazon_ItemW^ ?Zend_Service_Amazon_ImageW(] SZend_Service_Amazon_EditorialReviewW'\ QZend_Service_Amazon_CustomerReviewW$[ KZend_Service_Amazon_AccessoriesWZ 5Zend_Service_AkismetWY 7Zend_Service_AbstractWX 9Zend_Server_ReflectionW'W QZend_Server_Reflection_ReturnValueW%V MZend_Server_Reflection_PrototypeW%U MZend_Server_Reflection_ParameterW T CZend_Server_Reflection_NodeW"S GZend_Server_Reflection_MethodW$R KZend_Server_Reflection_FunctionW-Q ]Zend_Server_Reflection_Function_AbstractW%P MZend_Server_Reflection_ExceptionW!O EZend_Server_Reflection_ClassWN 7Zend_Server_ExceptionWM 5Zend_Server_AbstractWL 1Zend_Search_LuceneW$K KZend_Search_Lucene_Storage_FileW+J YZend_Search_Lucene_Storage_File_MemoryW/I aZend_Search_Lucene_Storage_File_FilesystemW)H UZend_Search_Lucene_Storage_DirectoryW4G kZend_Search_Lucene_Storage_Directory_FilesystemW%F MZend_Search_Lucene_Search_WeightW*E WZend_Search_Lucene_Search_Weight_TermW,D [Zend_Search_Lucene_Search_Weight_PhraseW/C aZend_Search_Lucene_Search_Weight_MultiTermW+B YZend_Search_Lucene_Search_Weight_EmptyW-A ]Zend_Search_Lucene_Search_Weight_BooleanW)@ UZend_Search_Lucene_Search_SimilarityW1? eZend_Search_Lucene_Search_Similarity_DefaultW)> UZend_Search_Lucene_Search_QueryTokenW3= iZend_Search_Lucene_Search_QueryParserExceptionW1< eZend_Search_Lucene_Search_QueryParserContextW*; WZend_Search_Lucene_Search_QueryParserW): UZend_Search_Lucene_Search_QueryLexerW'9 QZend_Search_Lucene_Search_QueryHitW)8 UZend_Search_Lucene_Search_QueryEntryW.7 _Zend_Search_Lucene_Search_QueryEntry_TermW26 gZend_Search_Lucene_Search_QueryEntry_SubqueryW05 cZend_Search_Lucene_Search_QueryEntry_PhraseW$4 KZend_Search_Lucene_Search_QueryW-3 ]Zend_Search_Lucene_Search_Query_WildcardW)2 UZend_Search_Lucene_Search_Query_TermW*1 WZend_Search_Lucene_Search_Query_RangeW+0 YZend_Search_Lucene_Search_Query_PhraseW./ _Zend_Search_Lucene_Search_Query_MultiTermW2. gZend_Search_Lucene_Search_Query_InsignificantW*- WZend_Search_Lucene_Search_Query_FuzzyW*, WZend_Search_Lucene_Search_Query_EmptyW,+ [Zend_Search_Lucene_Search_Query_BooleanW:* wZend_Search_Lucene_Search_BooleanExpressionRecognizerW) =Zend_Search_Lucene_ProxyW%( MZend_Search_Lucene_PriorityQueueW#' IZend_Search_Lucene_LockManagerW$& KZend_Search_Lucene_Index_WriterW&% OZend_Search_Lucene_Index_TermInfoW"$ GZend_Search_Lucene_Index_TermW+# YZend_Search_Lucene_Index_SegmentWriterW8" sZend_Search_Lucene_Index_SegmentWriter_StreamWriterW:! wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterW+  YZend_Search_Lucene_Index_SegmentMergerW6 oZend_Search_Lucene_Index_SegmentInfoPriorityQueueW) UZend_Search_Lucene_Index_SegmentInfoW' QZend_Search_Lucene_Index_FieldInfoW. _Zend_Search_Lucene_Index_DictionaryLoaderW! EZend_Search_Lucene_FSMActionW 9Zend_Search_Lucene_FSMW =Zend_Search_Lucene_FieldW! EZend_Search_Lucene_ExceptionW  CZend_Search_Lucene_DocumentW% MZend_Search_Lucene_Document_HtmlW, [Zend_Search_Lucene_Analysis_TokenFilterW6 oZend_Search_Lucene_Analysis_TokenFilter_StopWordsW7 qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsW: wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8W6 oZend_Search_Lucene_Analysis_TokenFilter_LowerCaseW   d  pN+g@"wX8lGW7



W
+
				X	&kDf;X.\3	nDW,c@!dM                                 +M YZend_Test_PHPUnit_Constraint_ExceptionW*L WZend_Test_PHPUnit_Constraint_DomQueryWK )Zend_Soap_WsdlWJ 7Zend_Soap_Wsdl_ParserW!I EZend_Soap_Wsdl_Parser_ResultW!H EZend_Soap_Wsdl_CodeGeneratorWG -Zend_Soap_ServerWF AZend_Soap_Server_ExceptionWE -Zend_Soap_ClientWD 9Zend_Soap_Client_LocalWC AZend_Soap_Client_ExceptionWB ;Zend_Soap_Client_DotNetWA ;Zend_Soap_Client_CommonW@ 9Zend_Soap_AutoDiscoverW? %Zend_SessionW)> UZend_Session_Validator_HttpUserAgentW$= KZend_Session_Validator_AbstractW'< QZend_Session_SaveHandler_ExceptionW%; MZend_Session_SaveHandler_DbTableW: 9Zend_Session_NamespaceW9 9Zend_Session_ExceptionW8 7Zend_Session_AbstractW7 1Zend_Service_YahooW$6 KZend_Service_Yahoo_WebResultSetW!5 EZend_Service_Yahoo_WebResultW&4 OZend_Service_Yahoo_VideoResultSetW#3 IZend_Service_Yahoo_VideoResultW!2 EZend_Service_Yahoo_ResultSetW1 ?Zend_Service_Yahoo_ResultW)0 UZend_Service_Yahoo_PageDataResultSetW&/ OZend_Service_Yahoo_PageDataResultW%. MZend_Service_Yahoo_NewsResultSetW"- GZend_Service_Yahoo_NewsResultW&, OZend_Service_Yahoo_LocalResultSetW#+ IZend_Service_Yahoo_LocalResultW+* YZend_Service_Yahoo_InlinkDataResultSetW() SZend_Service_Yahoo_InlinkDataResultW&( OZend_Service_Yahoo_ImageResultSetW#' IZend_Service_Yahoo_ImageResultW& =Zend_Service_Yahoo_ImageW% ;Zend_Service_TechnoratiW#$ IZend_Service_Technorati_WeblogW"# GZend_Service_Technorati_UtilsW*" WZend_Service_Technorati_TagsResultSetW'! QZend_Service_Technorati_TagsResultW)  UZend_Service_Technorati_TagResultSetW& OZend_Service_Technorati_TagResultW, [Zend_Service_Technorati_SearchResultSetW) UZend_Service_Technorati_SearchResultW& OZend_Service_Technorati_ResultSetW# IZend_Service_Technorati_ResultW* WZend_Service_Technorati_KeyInfoResultW* WZend_Service_Technorati_GetInfoResultW& OZend_Service_Technorati_ExceptionW1 eZend_Service_Technorati_DailyCountsResultSetW. _Zend_Service_Technorati_DailyCountsResultW, [Zend_Service_Technorati_CosmosResultSetW) UZend_Service_Technorati_CosmosResultW+ YZend_Service_Technorati_BlogInfoResultW# IZend_Service_Technorati_AuthorW ;Zend_Service_StrikeIronW( SZend_Service_StrikeIron_ZipCodeInfoW2 gZend_Service_StrikeIron_USAddressVerificationW- ]Zend_Service_StrikeIron_SalesUseTaxBasicW& OZend_Service_StrikeIron_ExceptionW& OZend_Service_StrikeIron_DecoratorW! EZend_Service_StrikeIron_BaseW
 ;Zend_Service_SlideShareW&	 OZend_Service_SlideShare_SlideShowW& OZend_Service_SlideShare_ExceptionW 1Zend_Service_SimpyW$ KZend_Service_Simpy_WatchlistSetW* WZend_Service_Simpy_WatchlistFilterSetW' QZend_Service_Simpy_WatchlistFilterW! EZend_Service_Simpy_WatchlistW ?Zend_Service_Simpy_TagSetW 9Zend_Service_Simpy_TagW  AZend_Service_Simpy_NoteSetW ;Zend_Service_Simpy_NoteW~ AZend_Service_Simpy_LinkSetW!} EZend_Service_Simpy_LinkQueryW| ;Zend_Service_Simpy_LinkW{ 9Zend_Service_ReCaptchaW$z KZend_Service_ReCaptcha_ResponseW$y KZend_Service_ReCaptcha_MailHideW.x _Zend_Service_ReCaptcha_MailHide_ExceptionW%w MZend_Service_ReCaptcha_ExceptionWv 7Zend_Service_NirvanixW#u IZend_Service_Nirvanix_ResponseW)t UZend_Service_Nirvanix_Namespace_ImfsW)s UZend_Service_Nirvanix_Namespace_BaseW$r KZend_Service_Nirvanix_ExceptionWq 3Zend_Service_FlickrW"p GZend_Service_Flickr_ResultSetWo AZend_Service_Flickr_ResultWn ?Zend_Service_Flickr_ImageWm 9Zend_Service_ExceptionWl 9Zend_Service_DeliciousW&k OZend_Service_Delicious_SimplePostW$j KZend_Service_Delicious_PostListW   q	 qU2jG pK,w[7aA 




o
S
1
					m	K	)	wX9vV1a=d>hF$ rP,
T)r8	                               +> YZend_View_Helper_Placeholder_ContainerW6= oZend_View_Helper_Placeholder_Container_StandaloneW5< mZend_View_Helper_Placeholder_Container_ExceptionW4; kZend_View_Helper_Placeholder_Container_AbstractW!: EZend_View_Helper_PartialLoopW9 =Zend_View_Helper_PartialW'8 QZend_View_Helper_Partial_ExceptionW'7 QZend_View_Helper_PaginationControlW6 ;Zend_View_Helper_LayoutW5 7Zend_View_Helper_JsonW"4 GZend_View_Helper_InlineScriptW#3 IZend_View_Helper_HtmlQuicktimeW2 ?Zend_View_Helper_HtmlPageW 1 CZend_View_Helper_HtmlObjectW0 ?Zend_View_Helper_HtmlListW/ AZend_View_Helper_HtmlFlashW!. EZend_View_Helper_HtmlElementW- AZend_View_Helper_HeadTitleW, AZend_View_Helper_HeadStyleW + CZend_View_Helper_HeadScriptW* ?Zend_View_Helper_HeadMetaW) ?Zend_View_Helper_HeadLinkW"( GZend_View_Helper_FormTextareaW' ?Zend_View_Helper_FormTextW & CZend_View_Helper_FormSubmitW % CZend_View_Helper_FormSelectW$ AZend_View_Helper_FormResetW# AZend_View_Helper_FormRadioW"" GZend_View_Helper_FormPasswordW! ?Zend_View_Helper_FormNoteW'  QZend_View_Helper_FormMultiCheckboxW AZend_View_Helper_FormLabelW AZend_View_Helper_FormImageW  CZend_View_Helper_FormHiddenW ?Zend_View_Helper_FormFileW  CZend_View_Helper_FormErrorsW! EZend_View_Helper_FormElementW" GZend_View_Helper_FormCheckboxW  CZend_View_Helper_FormButtonW 7Zend_View_Helper_FormW ?Zend_View_Helper_FieldsetW =Zend_View_Helper_DoctypeW! EZend_View_Helper_DeclareVarsW ;Zend_View_Helper_ActionW ?Zend_View_Helper_AbstractW 3Zend_View_ExceptionW 1Zend_View_AbstractW %Zend_VersionW 'Zend_ValidateW AZend_Validate_StringLengthW 3Zend_Validate_RegexW 9Zend_Validate_NotEmptyW
 9Zend_Validate_LessThanW	 -Zend_Validate_IpW /Zend_Validate_IntW 7Zend_Validate_InArrayW ;Zend_Validate_IdenticalW 9Zend_Validate_HostnameW ?Zend_Validate_Hostname_SeW ?Zend_Validate_Hostname_NoW ?Zend_Validate_Hostname_LiW ?Zend_Validate_Hostname_HuW  ?Zend_Validate_Hostname_FiW ?Zend_Validate_Hostname_DeW~ ?Zend_Validate_Hostname_ChW} ?Zend_Validate_Hostname_AtW| /Zend_Validate_HexW{ ?Zend_Validate_GreaterThanWz 3Zend_Validate_FloatWy ?Zend_Validate_File_UploadWx ;Zend_Validate_File_SizeW!w EZend_Validate_File_ImageSizeW!v EZend_Validate_File_FilesSizeW!u EZend_Validate_File_ExtensionWt =Zend_Validate_File_CountWs ;Zend_Validate_ExceptionWr AZend_Validate_EmailAddressWq 5Zend_Validate_DigitsWp 1Zend_Validate_DateWo 3Zend_Validate_CcnumWn 7Zend_Validate_BetweenWm 7Zend_Validate_BarcodeWl AZend_Validate_Barcode_UpcAW k CZend_Validate_Barcode_Ean13Wj 3Zend_Validate_AlphaWi 3Zend_Validate_AlnumWh 9Zend_Validate_AbstractWg Zend_UriWf 'Zend_Uri_HttpWe 1Zend_Uri_ExceptionWd )Zend_TranslateWc =Zend_Translate_ExceptionWb 9Zend_Translate_AdapterW!a EZend_Translate_Adapter_XmlTmW!` EZend_Translate_Adapter_XliffW_ AZend_Translate_Adapter_TmxW^ AZend_Translate_Adapter_TbxW] ?Zend_Translate_Adapter_QtW\ AZend_Translate_Adapter_IniW#[ IZend_Translate_Adapter_GettextWZ AZend_Translate_Adapter_CsvW!Y EZend_Translate_Adapter_ArrayWX 'Zend_TimeSyncWW 1Zend_TimeSync_SntpWV 9Zend_TimeSync_ProtocolWU /Zend_TimeSync_NtpWT ;Zend_TimeSync_ExceptionWS -Zend_Text_FigletWR AZend_Text_Figlet_ExceptionWQ 3Zend_Text_ExceptionW)P UZend_Test_PHPUnit_ControllerTestCaseW0O cZend_Test_PHPUnit_Constraint_ResponseHeaderW*N WZend_Test_PHPUnit_Constraint_RedirectW   m  uH%f4m>tR6uU4




c
E
$
					j	K	5	$	^?[9'_7\;(fN6"V$q=O        (+ SZend_Controller_Action_HelperBrokerX6* oZend_Controller_Action_HelperBroker_PriorityStackX/) aZend_Controller_Action_Helper_ViewRendererX&( OZend_Controller_Action_Helper_UrlX-' ]Zend_Controller_Action_Helper_RedirectorX'& QZend_Controller_Action_Helper_JsonX1% eZend_Controller_Action_Helper_FlashMessengerX0$ cZend_Controller_Action_Helper_ContextSwitchX<# {Zend_Controller_Action_Helper_AutoCompleteScriptaculousX3" iZend_Controller_Action_Helper_AutoCompleteDojoX8! sZend_Controller_Action_Helper_AutoComplete_AbstractX.  _Zend_Controller_Action_Helper_AjaxContextX. _Zend_Controller_Action_Helper_ActionStackX+ YZend_Controller_Action_Helper_AbstractX% MZend_Controller_Action_ExceptionX 3Zend_Console_GetoptX" GZend_Console_Getopt_ExceptionX #Zend_ConfigX +Zend_Config_XmlX +Zend_Config_IniX 7Zend_Config_ExceptionX /Zend_Captcha_WordX 9Zend_Captcha_ReCaptchaX 1Zend_Captcha_ImageX 3Zend_Captcha_FigletX /Zend_Captcha_DumbX /Zend_Captcha_BaseX !Zend_CacheX =Zend_Cache_Frontend_PageX AZend_Cache_Frontend_OutputX! EZend_Cache_Frontend_FunctionX =Zend_Cache_Frontend_FileX ?Zend_Cache_Frontend_ClassX
 5Zend_Cache_ExceptionX	 +Zend_Cache_CoreX 1Zend_Cache_BackendX$ KZend_Cache_Backend_ZendPlatformX ?Zend_Cache_Backend_XcacheX ;Zend_Cache_Backend_TestX ?Zend_Cache_Backend_SqliteX! EZend_Cache_Backend_MemcachedX ;Zend_Cache_Backend_FileX 9Zend_Cache_Backend_ApcX  Zend_AuthX ?Zend_Auth_Storage_SessionX$~ KZend_Auth_Storage_NonPersistentX } CZend_Auth_Storage_ExceptionX| -Zend_Auth_ResultX{ 3Zend_Auth_ExceptionXz =Zend_Auth_Adapter_OpenIdXy 9Zend_Auth_Adapter_LdapXx AZend_Auth_Adapter_InfoCardXw 9Zend_Auth_Adapter_HttpX)v UZend_Auth_Adapter_Http_Resolver_FileX.u _Zend_Auth_Adapter_Http_Resolver_ExceptionX t CZend_Auth_Adapter_ExceptionXs =Zend_Auth_Adapter_DigestXr ?Zend_Auth_Adapter_DbTableXq Zend_AclXp 'Zend_Acl_RoleXo 9Zend_Acl_Role_RegistryX%n MZend_Acl_Role_Registry_ExceptionXm /Zend_Acl_ResourceXl 1Zend_Acl_ExceptionXk /Zend_XmlRpc_ValueWj =Zend_XmlRpc_Value_StructWi =Zend_XmlRpc_Value_StringWh =Zend_XmlRpc_Value_ScalarWg 7Zend_XmlRpc_Value_NilWf ?Zend_XmlRpc_Value_IntegerW e CZend_XmlRpc_Value_ExceptionWd =Zend_XmlRpc_Value_DoubleWc AZend_XmlRpc_Value_DateTimeW!b EZend_XmlRpc_Value_CollectionWa ?Zend_XmlRpc_Value_BooleanW` =Zend_XmlRpc_Value_Base64W_ ;Zend_XmlRpc_Value_ArrayW^ 1Zend_XmlRpc_ServerW] =Zend_XmlRpc_Server_FaultW!\ EZend_XmlRpc_Server_ExceptionW[ =Zend_XmlRpc_Server_CacheWZ 5Zend_XmlRpc_ResponseWY ?Zend_XmlRpc_Response_HttpWX 3Zend_XmlRpc_RequestWW ?Zend_XmlRpc_Request_StdinWV =Zend_XmlRpc_Request_HttpWU /Zend_XmlRpc_FaultWT 7Zend_XmlRpc_ExceptionWS 1Zend_XmlRpc_ClientW#R IZend_XmlRpc_Client_ServerProxyW+Q YZend_XmlRpc_Client_ServerIntrospectionW+P YZend_XmlRpc_Client_IntrospectExceptionW%O MZend_XmlRpc_Client_HttpExceptionW&N OZend_XmlRpc_Client_FaultExceptionW!M EZend_XmlRpc_Client_ExceptionW&L OZend_Wildfire_Protocol_JsonStreamW!K EZend_Wildfire_Plugin_FirePhpW.J _Zend_Wildfire_Plugin_FirePhp_TableMessageW)I UZend_Wildfire_Plugin_FirePhp_MessageWH ;Zend_Wildfire_ExceptionW&G OZend_Wildfire_Channel_HttpHeadersWF Zend_ViewWE -Zend_View_StreamWD 5Zend_View_Helper_UrlWC AZend_View_Helper_TranslateW)B UZend_View_Helper_RenderToPlaceholderW!A EZend_View_Helper_PlaceholderW*@ WZend_View_Helper_Placeholder_RegistryW4? kZend_View_Helper_Placeholder_Registry_ExceptionW   c  nN$zQ0W8jKh@




h
>
				K	b8Z3tP3	x]6|Y6tQ.yO!}P%                                             (* SZend_InfoCard_Xml_KeyInfo_InterfaceY() SZend_InfoCard_Xml_Element_InterfaceY*( WZend_InfoCard_Xml_Assertion_InterfaceY-' ]Zend_InfoCard_Cipher_Symmetric_InterfaceY7& qZend_InfoCard_Cipher_Symmetric_Aes256cbc_InterfaceY7% qZend_InfoCard_Cipher_Symmetric_Aes128cbc_InterfaceY+$ YZend_InfoCard_Cipher_Pki_Rsa_InterfaceY'# QZend_InfoCard_Cipher_Pki_InterfaceY$" KZend_InfoCard_Adapter_InterfaceY'! QZend_Http_Client_Adapter_InterfaceY  AZend_Gdata_App_MediaSourceY" GZend_Form_Decorator_InterfaceY 7Zend_Filter_InterfaceY  CZend_Feed_Builder_InterfaceY  CZend_Db_Statement_InterfaceY+ YZend_Controller_Router_Route_InterfaceY% MZend_Controller_Router_InterfaceY) UZend_Controller_Dispatcher_InterfaceY 5Zend_Captcha_AdapterY! EZend_Cache_Backend_InterfaceY  CZend_Auth_Storage_InterfaceY  CZend_Auth_Adapter_InterfaceY. _Zend_Auth_Adapter_Http_Resolver_InterfaceY ;Zend_Acl_Role_InterfaceY  CZend_Acl_Resource_InterfaceY ?Zend_Acl_Assert_InterfaceY# IZend_Wildfire_Plugin_InterfaceX$ KZend_Wildfire_Channel_InterfaceX 3Zend_View_InterfaceX AZend_View_Helper_InterfaceX ;Zend_Validate_InterfaceX% MZend_Validate_Hostname_InterfaceX%
 MZend_Session_Validator_InterfaceX'	 QZend_Session_SaveHandler_InterfaceX 7Zend_Server_InterfaceX! EZend_Search_Lucene_InterfaceX 9Zend_Request_InterfaceX ?Zend_Pdf_Filter_InterfaceX& OZend_Pdf_ElementFactory_InterfaceX, [Zend_Paginator_ScrollingStyle_InterfaceX% MZend_Paginator_Adapter_InterfaceX$ KZend_Memory_Container_InterfaceX)  UZend_Mail_Storage_Writable_InterfaceX' QZend_Mail_Storage_Folder_InterfaceX~ =Zend_Mail_Part_InterfaceX } CZend_Mail_Message_InterfaceX!| EZend_Log_Formatter_InterfaceX{ ?Zend_Log_Filter_InterfaceX'z QZend_Loader_PluginLoader_InterfaceX3y iZend_InfoCard_Xml_Security_Transform_InterfaceX(x SZend_InfoCard_Xml_KeyInfo_InterfaceX(w SZend_InfoCard_Xml_Element_InterfaceX*v WZend_InfoCard_Xml_Assertion_InterfaceX-u ]Zend_InfoCard_Cipher_Symmetric_InterfaceX7t qZend_InfoCard_Cipher_Symmetric_Aes256cbc_InterfaceX7s qZend_InfoCard_Cipher_Symmetric_Aes128cbc_InterfaceX+r YZend_InfoCard_Cipher_Pki_Rsa_InterfaceX'q QZend_InfoCard_Cipher_Pki_InterfaceX$p KZend_InfoCard_Adapter_InterfaceX'o QZend_Http_Client_Adapter_InterfaceXn AZend_Gdata_App_MediaSourceX"m GZend_Form_Decorator_InterfaceXl 7Zend_Filter_InterfaceX k CZend_Feed_Builder_InterfaceX j CZend_Db_Statement_InterfaceX+i YZend_Controller_Router_Route_InterfaceX%h MZend_Controller_Router_InterfaceX)g UZend_Controller_Dispatcher_InterfaceXf 5Zend_Captcha_AdapterX!e EZend_Cache_Backend_InterfaceX d CZend_Auth_Storage_InterfaceX c CZend_Auth_Adapter_InterfaceX.b _Zend_Auth_Adapter_Http_Resolver_InterfaceXa ;Zend_Acl_Role_InterfaceX ` CZend_Acl_Resource_InterfaceX_ ?Zend_Acl_Assert_InterfaceX#^ IZend_Wildfire_Plugin_InterfaceW$] KZend_Wildfire_Channel_InterfaceW\ 3Zend_View_InterfaceW[ AZend_View_Helper_InterfaceWZ ;Zend_Validate_InterfaceW%Y MZend_Validate_Hostname_InterfaceW%X MZend_Session_Validator_InterfaceW'W QZend_Session_SaveHandler_InterfaceWV 7Zend_Server_InterfaceW!U EZend_Search_Lucene_InterfaceWT 9Zend_Request_InterfaceWS ?Zend_Pdf_Filter_InterfaceW&R OZend_Pdf_ElementFactory_InterfaceW,Q [Zend_Paginator_ScrollingStyle_InterfaceW%P MZend_Paginator_Adapter_InterfaceW$O KZend_Memory_Container_InterfaceW)N UZend_Mail_Storage_Writable_InterfaceW'M QZend_Mail_Storage_Folder_InterfaceWL =Zend_Mail_Part_InterfaceW K CZend_Mail_Message_InterfaceW!J EZend_Log_Formatter_InterfaceWI ?Zend_Log_Filter_InterfaceW'H QZend_Loader_PluginLoader_InterfaceW   j  \:wN$W2b;]1





r
Q
+
				|	]	8	lJ'|[DcB bH"taJ.m=V2b=         + YZend_Dojo_Form_Element_FilteringSelectX& OZend_Dojo_Form_Element_DijitMultiX! EZend_Dojo_Form_Element_DijitX' QZend_Dojo_Form_Element_DateTextBoxX+ YZend_Dojo_Form_Element_CurrencyTextBoxX$ KZend_Dojo_Form_Element_ComboBoxX$ KZend_Dojo_Form_Element_CheckBoxX" GZend_Dojo_Form_Element_ButtonX  CZend_Dojo_Form_DisplayGroupX* WZend_Dojo_Form_Decorator_TabContainerX, [Zend_Dojo_Form_Decorator_StackContainerX,
 [Zend_Dojo_Form_Decorator_SplitContainerX'	 QZend_Dojo_Form_Decorator_DijitFormX* WZend_Dojo_Form_Decorator_DijitElementX, [Zend_Dojo_Form_Decorator_DijitContainerX) UZend_Dojo_Form_Decorator_ContentPaneX- ]Zend_Dojo_Form_Decorator_BorderContainerX+ YZend_Dojo_Form_Decorator_AccordionPaneX0 cZend_Dojo_Form_Decorator_AccordionContainerX 3Zend_Dojo_ExceptionX )Zend_Dojo_DataX  !Zend_DebugX Zend_DbX~ 'Zend_Db_TableX} 5Zend_Db_Table_SelectX#| IZend_Db_Table_Select_ExceptionX{ 5Zend_Db_Table_RowsetX#z IZend_Db_Table_Rowset_ExceptionX"y GZend_Db_Table_Rowset_AbstractXx /Zend_Db_Table_RowX w CZend_Db_Table_Row_ExceptionXv AZend_Db_Table_Row_AbstractXu ;Zend_Db_Table_ExceptionXt 9Zend_Db_Table_AbstractXs /Zend_Db_StatementXr 7Zend_Db_Statement_PdoXq ?Zend_Db_Statement_Pdo_IbmXp =Zend_Db_Statement_OracleX'o QZend_Db_Statement_Oracle_ExceptionXn =Zend_Db_Statement_MysqliX'm QZend_Db_Statement_Mysqli_ExceptionX l CZend_Db_Statement_ExceptionXk 7Zend_Db_Statement_Db2X$j KZend_Db_Statement_Db2_ExceptionXi )Zend_Db_SelectXh =Zend_Db_Select_ExceptionXg -Zend_Db_ProfilerXf 9Zend_Db_Profiler_QueryXe =Zend_Db_Profiler_FirebugXd AZend_Db_Profiler_ExceptionXc %Zend_Db_ExprXb /Zend_Db_ExceptionXa AZend_Db_Adapter_Pdo_SqliteX` ?Zend_Db_Adapter_Pdo_PgsqlX_ ;Zend_Db_Adapter_Pdo_OciX^ ?Zend_Db_Adapter_Pdo_MysqlX] ?Zend_Db_Adapter_Pdo_MssqlX\ ;Zend_Db_Adapter_Pdo_IbmX [ CZend_Db_Adapter_Pdo_Ibm_IdsX Z CZend_Db_Adapter_Pdo_Ibm_Db2X!Y EZend_Db_Adapter_Pdo_AbstractXX 9Zend_Db_Adapter_OracleX%W MZend_Db_Adapter_Oracle_ExceptionXV 9Zend_Db_Adapter_MysqliX%U MZend_Db_Adapter_Mysqli_ExceptionXT ?Zend_Db_Adapter_ExceptionXS 3Zend_Db_Adapter_Db2X"R GZend_Db_Adapter_Db2_ExceptionXQ =Zend_Db_Adapter_AbstractXP Zend_DateXO 3Zend_Date_ExceptionXN 5Zend_Date_DateObjectXM -Zend_Date_CitiesXL 'Zend_CurrencyXK ;Zend_Currency_ExceptionX!J EZend_Controller_Router_RouteX(I SZend_Controller_Router_Route_StaticX'H QZend_Controller_Router_Route_RegexX(G SZend_Controller_Router_Route_ModuleX*F WZend_Controller_Router_Route_HostnameX'E QZend_Controller_Router_Route_ChainX*D WZend_Controller_Router_Route_AbstractX#C IZend_Controller_Router_RewriteX%B MZend_Controller_Router_ExceptionX$A KZend_Controller_Router_AbstractX*@ WZend_Controller_Response_HttpTestCaseX"? GZend_Controller_Response_HttpX'> QZend_Controller_Response_ExceptionX!= EZend_Controller_Response_CliX&< OZend_Controller_Response_AbstractX#; IZend_Controller_Request_SimpleX): UZend_Controller_Request_HttpTestCaseX!9 EZend_Controller_Request_HttpX&8 OZend_Controller_Request_ExceptionX&7 OZend_Controller_Request_Apache404X%6 MZend_Controller_Request_AbstractX(5 SZend_Controller_Plugin_ErrorHandlerX"4 GZend_Controller_Plugin_BrokerX'3 QZend_Controller_Plugin_ActionStackX$2 KZend_Controller_Plugin_AbstractX1 7Zend_Controller_FrontX0 ?Zend_Controller_ExceptionX(/ SZend_Controller_Dispatcher_StandardX). UZend_Controller_Dispatcher_ExceptionX(- SZend_Controller_Dispatcher_AbstractX, 9Zend_Controller_ActionX   i  vG{Pi=rDyK(



s
I
$				t	M	'sR4hG-uI!u]?qO-wHrIZ5                ~ CZend_Form_Decorator_CaptchaX%} MZend_Form_Decorator_Captcha_WordX!| EZend_Form_Decorator_CallbackX!{ EZend_Form_Decorator_AbstractXz #Zend_FilterX+y YZend_Filter_Word_UnderscoreToSeparatorX&x OZend_Filter_Word_UnderscoreToDashX+w YZend_Filter_Word_UnderscoreToCamelCaseX*v WZend_Filter_Word_SeparatorToSeparatorX%u MZend_Filter_Word_SeparatorToDashX*t WZend_Filter_Word_SeparatorToCamelCaseX(s SZend_Filter_Word_Separator_AbstractX&r OZend_Filter_Word_DashToUnderscoreX%q MZend_Filter_Word_DashToSeparatorX%p MZend_Filter_Word_DashToCamelCaseX+o YZend_Filter_Word_CamelCaseToUnderscoreX*n WZend_Filter_Word_CamelCaseToSeparatorX%m MZend_Filter_Word_CamelCaseToDashXl 7Zend_Filter_StripTagsXk ?Zend_Filter_StripNewlinesXj 9Zend_Filter_StringTrimXi ?Zend_Filter_StringToUpperXh ?Zend_Filter_StringToLowerXg 5Zend_Filter_RealPathXf ;Zend_Filter_PregReplaceXe +Zend_Filter_IntXd /Zend_Filter_InputXc 7Zend_Filter_InflectorXb =Zend_Filter_HtmlEntitiesXa ;Zend_Filter_File_RenameX` 7Zend_Filter_ExceptionX_ +Zend_Filter_DirX^ 1Zend_Filter_DigitsX] 5Zend_Filter_BaseNameX\ /Zend_Filter_AlphaX[ /Zend_Filter_AlnumXZ 1Zend_File_TransferX!Y EZend_File_Transfer_ExceptionX$X KZend_File_Transfer_Adapter_HttpX(W SZend_File_Transfer_Adapter_AbstractXV Zend_FeedXU 'Zend_Feed_RssXT 3Zend_Feed_ExceptionXS 3Zend_Feed_Entry_RssXR 5Zend_Feed_Entry_AtomXQ =Zend_Feed_Entry_AbstractXP /Zend_Feed_ElementXO /Zend_Feed_BuilderXN =Zend_Feed_Builder_HeaderX$M KZend_Feed_Builder_Header_ItunesX L CZend_Feed_Builder_ExceptionXK ;Zend_Feed_Builder_EntryXJ )Zend_Feed_AtomXI 1Zend_Feed_AbstractXH )Zend_ExceptionXG )Zend_Dom_QueryXF 7Zend_Dom_Query_ResultXE =Zend_Dom_Query_Css2XpathXD 1Zend_Dom_ExceptionXC Zend_DojoX)B UZend_Dojo_View_Helper_VerticalSliderX,A [Zend_Dojo_View_Helper_ValidationTextBoxX&@ OZend_Dojo_View_Helper_TimeTextBoxX"? GZend_Dojo_View_Helper_TextBoxX#> IZend_Dojo_View_Helper_TextareaX'= QZend_Dojo_View_Helper_TabContainerX'< QZend_Dojo_View_Helper_SubmitButtonX); UZend_Dojo_View_Helper_StackContainerX): UZend_Dojo_View_Helper_SplitContainerX!9 EZend_Dojo_View_Helper_SliderX&8 OZend_Dojo_View_Helper_RadioButtonX*7 WZend_Dojo_View_Helper_PasswordTextBoxX(6 SZend_Dojo_View_Helper_NumberTextBoxX(5 SZend_Dojo_View_Helper_NumberSpinnerX+4 YZend_Dojo_View_Helper_HorizontalSliderX3 AZend_Dojo_View_Helper_FormX*2 WZend_Dojo_View_Helper_FilteringSelectX1 AZend_Dojo_View_Helper_DojoX)0 UZend_Dojo_View_Helper_Dojo_ContainerX)/ UZend_Dojo_View_Helper_DijitContainerX . CZend_Dojo_View_Helper_DijitX&- OZend_Dojo_View_Helper_DateTextBoxX*, WZend_Dojo_View_Helper_CurrencyTextBoxX&+ OZend_Dojo_View_Helper_ContentPaneX#* IZend_Dojo_View_Helper_ComboBoxX#) IZend_Dojo_View_Helper_CheckBoxX!( EZend_Dojo_View_Helper_ButtonX*' WZend_Dojo_View_Helper_BorderContainerX(& SZend_Dojo_View_Helper_AccordionPaneX-% ]Zend_Dojo_View_Helper_AccordionContainerX$ =Zend_Dojo_View_ExceptionX# )Zend_Dojo_FormX" 9Zend_Dojo_Form_SubFormX*! WZend_Dojo_Form_Element_VerticalSliderX-  ]Zend_Dojo_Form_Element_ValidationTextBoxX' QZend_Dojo_Form_Element_TimeTextBoxX# IZend_Dojo_Form_Element_TextBoxX$ KZend_Dojo_Form_Element_TextareaX( SZend_Dojo_Form_Element_SubmitButtonX" GZend_Dojo_Form_Element_SliderX' QZend_Dojo_Form_Element_RadioButtonX+ YZend_Dojo_Form_Element_PasswordTextBoxX) UZend_Dojo_Form_Element_NumberTextBoxX) UZend_Dojo_Form_Element_NumberSpinnerX, [Zend_Dojo_Form_Element_HorizontalSliderX   h  gB!iB#z[:iI(oUC



}
`
?
				n	G	\6mC^B{E#a:U&c>"zaC                      'f QZend_Gdata_Exif_Extension_ExposureX'e QZend_Gdata_Exif_Extension_DistanceXd 7Zend_Gdata_Exif_EntryXc -Zend_Gdata_EntryXb +Zend_Gdata_DocsXa 7Zend_Gdata_Docs_QueryX%` MZend_Gdata_Docs_DocumentListFeedX&_ OZend_Gdata_Docs_DocumentListEntryX^ 9Zend_Gdata_ClientLoginX] 3Zend_Gdata_CalendarX!\ EZend_Gdata_Calendar_ListFeedX"[ GZend_Gdata_Calendar_ListEntryX-Z ]Zend_Gdata_Calendar_Extension_WebContentX+Y YZend_Gdata_Calendar_Extension_TimezoneX9X uZend_Gdata_Calendar_Extension_SendEventNotificationsX+W YZend_Gdata_Calendar_Extension_SelectedX+V YZend_Gdata_Calendar_Extension_QuickAddX'U QZend_Gdata_Calendar_Extension_LinkX)T UZend_Gdata_Calendar_Extension_HiddenX(S SZend_Gdata_Calendar_Extension_ColorX.R _Zend_Gdata_Calendar_Extension_AccessLevelX#Q IZend_Gdata_Calendar_EventQueryX"P GZend_Gdata_Calendar_EventFeedX#O IZend_Gdata_Calendar_EventEntryXN 1Zend_Gdata_AuthSubXM )Zend_Gdata_AppXL 3Zend_Gdata_App_UtilX#K IZend_Gdata_App_MediaFileSourceXJ ?Zend_Gdata_App_MediaEntryX2I gZend_Gdata_App_LoggingHttpClientAdapterSocketXH AZend_Gdata_App_IOExceptionX,G [Zend_Gdata_App_InvalidArgumentExceptionX!F EZend_Gdata_App_HttpExceptionX$E KZend_Gdata_App_FeedSourceParentX#D IZend_Gdata_App_FeedEntryParentXC 3Zend_Gdata_App_FeedXB =Zend_Gdata_App_ExtensionX!A EZend_Gdata_App_Extension_UriX%@ MZend_Gdata_App_Extension_UpdatedX#? IZend_Gdata_App_Extension_TitleX"> GZend_Gdata_App_Extension_TextX%= MZend_Gdata_App_Extension_SummaryX&< OZend_Gdata_App_Extension_SubtitleX$; KZend_Gdata_App_Extension_SourceX$: KZend_Gdata_App_Extension_RightsX'9 QZend_Gdata_App_Extension_PublishedX$8 KZend_Gdata_App_Extension_PersonX"7 GZend_Gdata_App_Extension_NameX"6 GZend_Gdata_App_Extension_LogoX"5 GZend_Gdata_App_Extension_LinkX 4 CZend_Gdata_App_Extension_IdX"3 GZend_Gdata_App_Extension_IconX'2 QZend_Gdata_App_Extension_GeneratorX#1 IZend_Gdata_App_Extension_EmailX%0 MZend_Gdata_App_Extension_ElementX#/ IZend_Gdata_App_Extension_DraftX%. MZend_Gdata_App_Extension_ControlX)- UZend_Gdata_App_Extension_ContributorX%, MZend_Gdata_App_Extension_ContentX&+ OZend_Gdata_App_Extension_CategoryX$* KZend_Gdata_App_Extension_AuthorX) =Zend_Gdata_App_ExceptionX( 5Zend_Gdata_App_EntryX,' [Zend_Gdata_App_CaptchaRequiredExceptionX#& IZend_Gdata_App_BaseMediaSourceX% 3Zend_Gdata_App_BaseX*$ WZend_Gdata_App_BadMethodCallExceptionX!# EZend_Gdata_App_AuthExceptionX" Zend_FormX! /Zend_Form_SubFormX  3Zend_Form_ExceptionX /Zend_Form_ElementX ;Zend_Form_Element_XhtmlX AZend_Form_Element_TextareaX 9Zend_Form_Element_TextX =Zend_Form_Element_SubmitX =Zend_Form_Element_SelectX ;Zend_Form_Element_ResetX ;Zend_Form_Element_RadioX AZend_Form_Element_PasswordX" GZend_Form_Element_MultiselectX$ KZend_Form_Element_MultiCheckboxX ;Zend_Form_Element_MultiX ;Zend_Form_Element_ImageX =Zend_Form_Element_HiddenX 9Zend_Form_Element_HashX 9Zend_Form_Element_FileX  CZend_Form_Element_ExceptionX AZend_Form_Element_CheckboxX ?Zend_Form_Element_CaptchaX =Zend_Form_Element_ButtonX 9Zend_Form_DisplayGroupX#
 IZend_Form_Decorator_ViewScriptX#	 IZend_Form_Decorator_ViewHelperX ?Zend_Form_Decorator_LabelX ?Zend_Form_Decorator_ImageX  CZend_Form_Decorator_HtmlTagX% MZend_Form_Decorator_FormElementsX =Zend_Form_Decorator_FormX! EZend_Form_Decorator_FieldsetX" GZend_Form_Decorator_ExceptionX AZend_Form_Decorator_ErrorsX$  KZend_Form_Decorator_DtDdWrapperX$ KZend_Form_Decorator_DescriptionX   b  R,rZ.`:uQ)^;




n
=
				g	?	vW-
\>lF-u^@k<|M]?&f:                    )H UZend_Gdata_Photos_Extension_ChecksumX*G WZend_Gdata_Photos_Extension_BytesUsedX(F SZend_Gdata_Photos_Extension_AlbumIdX'E QZend_Gdata_Photos_Extension_AccessX#D IZend_Gdata_Photos_CommentEntryX!C EZend_Gdata_Photos_AlbumQueryX B CZend_Gdata_Photos_AlbumFeedX!A EZend_Gdata_Photos_AlbumEntryX@ -Zend_Gdata_MediaX? 7Zend_Gdata_Media_FeedX*> WZend_Gdata_Media_Extension_MediaTitleX.= _Zend_Gdata_Media_Extension_MediaThumbnailX)< UZend_Gdata_Media_Extension_MediaTextX0; cZend_Gdata_Media_Extension_MediaRestrictionX+: YZend_Gdata_Media_Extension_MediaRatingX+9 YZend_Gdata_Media_Extension_MediaPlayerX-8 ]Zend_Gdata_Media_Extension_MediaKeywordsX)7 UZend_Gdata_Media_Extension_MediaHashX*6 WZend_Gdata_Media_Extension_MediaGroupX05 cZend_Gdata_Media_Extension_MediaDescriptionX+4 YZend_Gdata_Media_Extension_MediaCreditX.3 _Zend_Gdata_Media_Extension_MediaCopyrightX,2 [Zend_Gdata_Media_Extension_MediaContentX-1 ]Zend_Gdata_Media_Extension_MediaCategoryX0 9Zend_Gdata_Media_EntryX/ AZend_Gdata_Kind_EventEntryX. 7Zend_Gdata_HttpClientX- )Zend_Gdata_GeoX, 3Zend_Gdata_Geo_FeedX$+ KZend_Gdata_Geo_Extension_GmlPosX&* OZend_Gdata_Geo_Extension_GmlPointX)) UZend_Gdata_Geo_Extension_GeoRssWhereX( 5Zend_Gdata_Geo_EntryX' -Zend_Gdata_GbaseX"& GZend_Gdata_Gbase_SnippetQueryX!% EZend_Gdata_Gbase_SnippetFeedX"$ GZend_Gdata_Gbase_SnippetEntryX# 9Zend_Gdata_Gbase_QueryX" AZend_Gdata_Gbase_ItemQueryX! ?Zend_Gdata_Gbase_ItemFeedX  AZend_Gdata_Gbase_ItemEntryX 7Zend_Gdata_Gbase_FeedX- ]Zend_Gdata_Gbase_Extension_BaseAttributeX 9Zend_Gdata_Gbase_EntryX -Zend_Gdata_GappsX AZend_Gdata_Gapps_UserQueryX ?Zend_Gdata_Gapps_UserFeedX AZend_Gdata_Gapps_UserEntryX& OZend_Gdata_Gapps_ServiceExceptionX 9Zend_Gdata_Gapps_QueryX# IZend_Gdata_Gapps_NicknameQueryX" GZend_Gdata_Gapps_NicknameFeedX# IZend_Gdata_Gapps_NicknameEntryX% MZend_Gdata_Gapps_Extension_QuotaX( SZend_Gdata_Gapps_Extension_NicknameX$ KZend_Gdata_Gapps_Extension_NameX% MZend_Gdata_Gapps_Extension_LoginX) UZend_Gdata_Gapps_Extension_EmailListX 9Zend_Gdata_Gapps_ErrorX- ]Zend_Gdata_Gapps_EmailListRecipientQueryX, [Zend_Gdata_Gapps_EmailListRecipientFeedX- ]Zend_Gdata_Gapps_EmailListRecipientEntryX$
 KZend_Gdata_Gapps_EmailListQueryX#	 IZend_Gdata_Gapps_EmailListFeedX$ KZend_Gdata_Gapps_EmailListEntryX +Zend_Gdata_FeedX 5Zend_Gdata_ExtensionX =Zend_Gdata_Extension_WhoX AZend_Gdata_Extension_WhereX ?Zend_Gdata_Extension_WhenX$ KZend_Gdata_Extension_VisibilityX& OZend_Gdata_Extension_TransparencyX"  GZend_Gdata_Extension_ReminderX- ]Zend_Gdata_Extension_RecurrenceExceptionX$~ KZend_Gdata_Extension_RecurrenceX } CZend_Gdata_Extension_RatingX'| QZend_Gdata_Extension_OriginalEventX0{ cZend_Gdata_Extension_OpenSearchTotalResultsX.z _Zend_Gdata_Extension_OpenSearchStartIndexX0y cZend_Gdata_Extension_OpenSearchItemsPerPageX"x GZend_Gdata_Extension_FeedLinkX*w WZend_Gdata_Extension_ExtendedPropertyX%v MZend_Gdata_Extension_EventStatusX#u IZend_Gdata_Extension_EntryLinkX"t GZend_Gdata_Extension_CommentsX&s OZend_Gdata_Extension_AttendeeTypeX(r SZend_Gdata_Extension_AttendeeStatusXq +Zend_Gdata_ExifXp 5Zend_Gdata_Exif_FeedX#o IZend_Gdata_Exif_Extension_TimeX#n IZend_Gdata_Exif_Extension_TagsX$m KZend_Gdata_Exif_Extension_ModelX#l IZend_Gdata_Exif_Extension_MakeX"k GZend_Gdata_Exif_Extension_IsoX,j [Zend_Gdata_Exif_Extension_ImageUniqueIdX$i KZend_Gdata_Exif_Extension_FStopX*h WZend_Gdata_Exif_Extension_FocalLengthX$g KZend_Gdata_Exif_Extension_FlashX   Y  nCc5tEj>{X4




g
=
			|	I	k<wP'qCd2~N f:Z4S'                             "! GZend_Gdata_YouTube_VideoEntryX(  SZend_Gdata_YouTube_UserProfileEntryX( SZend_Gdata_YouTube_SubscriptionFeedX) UZend_Gdata_YouTube_SubscriptionEntryX) UZend_Gdata_YouTube_PlaylistVideoFeedX* WZend_Gdata_YouTube_PlaylistVideoEntryX( SZend_Gdata_YouTube_PlaylistListFeedX) UZend_Gdata_YouTube_PlaylistListEntryX" GZend_Gdata_YouTube_MediaEntryX* WZend_Gdata_YouTube_Extension_UsernameX' QZend_Gdata_YouTube_Extension_TokenX( SZend_Gdata_YouTube_Extension_StatusX, [Zend_Gdata_YouTube_Extension_StatisticsX' QZend_Gdata_YouTube_Extension_StateX( SZend_Gdata_YouTube_Extension_SchoolX- ]Zend_Gdata_YouTube_Extension_ReleaseDateX. _Zend_Gdata_YouTube_Extension_RelationshipX& OZend_Gdata_YouTube_Extension_RacyX) UZend_Gdata_YouTube_Extension_PrivateX* WZend_Gdata_YouTube_Extension_PositionX, [Zend_Gdata_YouTube_Extension_OccupationX) UZend_Gdata_YouTube_Extension_NoEmbedX' QZend_Gdata_YouTube_Extension_MusicX(
 SZend_Gdata_YouTube_Extension_MoviesX,	 [Zend_Gdata_YouTube_Extension_MediaGroupX. _Zend_Gdata_YouTube_Extension_MediaContentX* WZend_Gdata_YouTube_Extension_LocationX& OZend_Gdata_YouTube_Extension_LinkX* WZend_Gdata_YouTube_Extension_HometownX) UZend_Gdata_YouTube_Extension_HobbiesX( SZend_Gdata_YouTube_Extension_GenderX* WZend_Gdata_YouTube_Extension_DurationX- ]Zend_Gdata_YouTube_Extension_DescriptionX)  UZend_Gdata_YouTube_Extension_ControlX) UZend_Gdata_YouTube_Extension_CompanyX'~ QZend_Gdata_YouTube_Extension_BooksX%} MZend_Gdata_YouTube_Extension_AgeX#| IZend_Gdata_YouTube_ContactFeedX${ KZend_Gdata_YouTube_ContactEntryX#z IZend_Gdata_YouTube_CommentFeedX$y KZend_Gdata_YouTube_CommentEntryXx ;Zend_Gdata_SpreadsheetsX*w WZend_Gdata_Spreadsheets_WorksheetFeedX+v YZend_Gdata_Spreadsheets_WorksheetEntryX,u [Zend_Gdata_Spreadsheets_SpreadsheetFeedX-t ]Zend_Gdata_Spreadsheets_SpreadsheetEntryX&s OZend_Gdata_Spreadsheets_ListQueryX%r MZend_Gdata_Spreadsheets_ListFeedX&q OZend_Gdata_Spreadsheets_ListEntryX/p aZend_Gdata_Spreadsheets_Extension_RowCountX-o ]Zend_Gdata_Spreadsheets_Extension_CustomX/n aZend_Gdata_Spreadsheets_Extension_ColCountX+m YZend_Gdata_Spreadsheets_Extension_CellX*l WZend_Gdata_Spreadsheets_DocumentQueryX&k OZend_Gdata_Spreadsheets_CellQueryX%j MZend_Gdata_Spreadsheets_CellFeedX&i OZend_Gdata_Spreadsheets_CellEntryXh -Zend_Gdata_QueryXg /Zend_Gdata_PhotosX f CZend_Gdata_Photos_UserQueryXe AZend_Gdata_Photos_UserFeedX d CZend_Gdata_Photos_UserEntryXc AZend_Gdata_Photos_TagEntryX!b EZend_Gdata_Photos_PhotoQueryX a CZend_Gdata_Photos_PhotoFeedX!` EZend_Gdata_Photos_PhotoEntryX&_ OZend_Gdata_Photos_Extension_WidthX'^ QZend_Gdata_Photos_Extension_WeightX(] SZend_Gdata_Photos_Extension_VersionX%\ MZend_Gdata_Photos_Extension_UserX*[ WZend_Gdata_Photos_Extension_TimestampX*Z WZend_Gdata_Photos_Extension_ThumbnailX%Y MZend_Gdata_Photos_Extension_SizeX)X UZend_Gdata_Photos_Extension_RotationX+W YZend_Gdata_Photos_Extension_QuotaLimitX-V ]Zend_Gdata_Photos_Extension_QuotaCurrentX)U UZend_Gdata_Photos_Extension_PositionX(T SZend_Gdata_Photos_Extension_PhotoIdX3S iZend_Gdata_Photos_Extension_NumPhotosRemainingX*R WZend_Gdata_Photos_Extension_NumPhotosX)Q UZend_Gdata_Photos_Extension_NicknameX%P MZend_Gdata_Photos_Extension_NameX2O gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumX)N UZend_Gdata_Photos_Extension_LocationX#M IZend_Gdata_Photos_Extension_IdX'L QZend_Gdata_Photos_Extension_HeightX2K gZend_Gdata_Photos_Extension_CommentingEnabledX-J ]Zend_Gdata_Photos_Extension_CommentCountX'I QZend_Gdata_Photos_Extension_ClientX   n \5vZ?k3^>oG 



}
[
.				R	/yV0kY%zO._F2tS8sY=&pEdC$                               ?Zend_Mail_Storage_MaildirX 9Zend_Mail_Storage_ImapX =Zend_Mail_Storage_FolderX" GZend_Mail_Storage_Folder_MboxX% MZend_Mail_Storage_Folder_MaildirX 
 CZend_Mail_Storage_ExceptionX	 AZend_Mail_Storage_AbstractX ;Zend_Mail_Protocol_SmtpX' QZend_Mail_Protocol_Smtp_Auth_PlainX' QZend_Mail_Protocol_Smtp_Auth_LoginX) UZend_Mail_Protocol_Smtp_Auth_Crammd5X ;Zend_Mail_Protocol_Pop3X ;Zend_Mail_Protocol_ImapX! EZend_Mail_Protocol_ExceptionX  CZend_Mail_Protocol_AbstractX  )Zend_Mail_PartX 3Zend_Mail_Part_FileX~ /Zend_Mail_MessageX} 9Zend_Mail_Message_FileX| 3Zend_Mail_ExceptionX{ Zend_LogXz 9Zend_Log_Writer_StreamXy 5Zend_Log_Writer_NullXx 5Zend_Log_Writer_MockXw ;Zend_Log_Writer_FirebugXv 1Zend_Log_Writer_DbXu =Zend_Log_Writer_AbstractXt 9Zend_Log_Formatter_XmlXs ?Zend_Log_Formatter_SimpleXr =Zend_Log_Filter_SuppressXq =Zend_Log_Filter_PriorityXp ;Zend_Log_Filter_MessageXo 1Zend_Log_ExceptionXn #Zend_LocaleXm -Zend_Locale_MathXl =Zend_Locale_Math_PhpMathXk AZend_Locale_Math_ExceptionXj 1Zend_Locale_FormatXi 7Zend_Locale_ExceptionXh -Zend_Locale_DataX!g EZend_Locale_Data_TranslationXf #Zend_LoaderXe =Zend_Loader_PluginLoaderX'd QZend_Loader_PluginLoader_ExceptionXc 7Zend_Loader_ExceptionXb Zend_LdapXa 3Zend_Ldap_ExceptionX` #Zend_LayoutX_ 7Zend_Layout_ExceptionX)^ UZend_Layout_Controller_Plugin_LayoutX0] cZend_Layout_Controller_Action_Helper_LayoutX\ Zend_JsonX[ -Zend_Json_ServerXZ 5Zend_Json_Server_SmdX!Y EZend_Json_Server_Smd_ServiceXX ?Zend_Json_Server_ResponseX#W IZend_Json_Server_Response_HttpXV =Zend_Json_Server_RequestX"U GZend_Json_Server_Request_HttpXT AZend_Json_Server_ExceptionXS 9Zend_Json_Server_ErrorXR 3Zend_Json_ExceptionXQ /Zend_Json_EncoderXP /Zend_Json_DecoderXO 'Zend_InfoCardX-N ]Zend_InfoCard_Xml_SecurityTokenReferenceXM AZend_InfoCard_Xml_SecurityX)L UZend_InfoCard_Xml_Security_TransformX4K kZend_InfoCard_Xml_Security_Transform_XmlExcC14NX3J iZend_InfoCard_Xml_Security_Transform_ExceptionX<I {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignatureX)H UZend_InfoCard_Xml_Security_ExceptionXG ?Zend_InfoCard_Xml_KeyInfoX&F OZend_InfoCard_Xml_KeyInfo_XmlDSigX&E OZend_InfoCard_Xml_KeyInfo_DefaultX'D QZend_InfoCard_Xml_KeyInfo_AbstractX C CZend_InfoCard_Xml_ExceptionX#B IZend_InfoCard_Xml_EncryptedKeyX$A KZend_InfoCard_Xml_EncryptedDataX+@ YZend_InfoCard_Xml_EncryptedData_XmlEncX-? ]Zend_InfoCard_Xml_EncryptedData_AbstractX> ?Zend_InfoCard_Xml_ElementX = CZend_InfoCard_Xml_AssertionX%< MZend_InfoCard_Xml_Assertion_SamlX; ;Zend_InfoCard_ExceptionX%: MZend_InfoCard_Exception_AbstractX9 5Zend_InfoCard_ClaimsX8 5Zend_InfoCard_CipherX57 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcX56 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcX45 kZend_InfoCard_Cipher_Symmetric_Adapter_AbstractX)4 UZend_InfoCard_Cipher_Pki_Adapter_RsaX.3 _Zend_InfoCard_Cipher_Pki_Adapter_AbstractX#2 IZend_InfoCard_Cipher_ExceptionX$1 KZend_InfoCard_Adapter_ExceptionX"0 GZend_InfoCard_Adapter_DefaultX/ 1Zend_Http_ResponseX. 3Zend_Http_ExceptionX- 3Zend_Http_CookieJarX, -Zend_Http_CookieX+ -Zend_Http_ClientX* AZend_Http_Client_ExceptionX") GZend_Http_Client_Adapter_TestX$( KZend_Http_Client_Adapter_SocketX#' IZend_Http_Client_Adapter_ProxyX'& QZend_Http_Client_Adapter_ExceptionX% !Zend_GdataX$ 1Zend_Gdata_YouTubeX"# GZend_Gdata_YouTube_VideoQueryX!" EZend_Gdata_YouTube_VideoFeedX   t }X2eI(kL-uY> ^B&



z
^
D
0
						i	L	.	tR5!g=rO*}fG&~^3
gA!b@$e;                                   $ KZend_Pdf_Filter_Compression_LzwX& OZend_Pdf_Filter_Compression_FlateX =Zend_Pdf_Filter_AsciiHexX  ;Zend_Pdf_Filter_Ascii85X" GZend_Pdf_FileParserDataSourceX)~ UZend_Pdf_FileParserDataSource_StringX'} QZend_Pdf_FileParserDataSource_FileX| 3Zend_Pdf_FileParserX{ ?Zend_Pdf_FileParser_ImageX"z GZend_Pdf_FileParser_Image_PngXy =Zend_Pdf_FileParser_FontX&x OZend_Pdf_FileParser_Font_OpenTypeX/w aZend_Pdf_FileParser_Font_OpenType_TrueTypeXv 1Zend_Pdf_ExceptionXu ;Zend_Pdf_ElementFactoryX"t GZend_Pdf_ElementFactory_ProxyXs -Zend_Pdf_ElementXr ;Zend_Pdf_Element_StringX#q IZend_Pdf_Element_String_BinaryXp ;Zend_Pdf_Element_StreamXo AZend_Pdf_Element_ReferenceX%n MZend_Pdf_Element_Reference_TableX'm QZend_Pdf_Element_Reference_ContextXl ;Zend_Pdf_Element_ObjectX#k IZend_Pdf_Element_Object_StreamXj =Zend_Pdf_Element_NumericXi 7Zend_Pdf_Element_NullXh 7Zend_Pdf_Element_NameX g CZend_Pdf_Element_DictionaryXf =Zend_Pdf_Element_BooleanXe 9Zend_Pdf_Element_ArrayXd )Zend_Pdf_ColorXc 1Zend_Pdf_Color_RgbXb 3Zend_Pdf_Color_HtmlXa =Zend_Pdf_Color_GrayScaleX` 3Zend_Pdf_Color_CmykX_ 'Zend_Pdf_CmapX^ AZend_Pdf_Cmap_TrimmedTableX!] EZend_Pdf_Cmap_SegmentToDeltaX\ AZend_Pdf_Cmap_ByteEncodingX&[ OZend_Pdf_Cmap_ByteEncoding_StaticXZ )Zend_PaginatorX*Y WZend_Paginator_ScrollingStyle_SlidingX*X WZend_Paginator_ScrollingStyle_JumpingX*W WZend_Paginator_ScrollingStyle_ElasticX&V OZend_Paginator_ScrollingStyle_AllXU =Zend_Paginator_ExceptionX T CZend_Paginator_Adapter_NullX$S KZend_Paginator_Adapter_IteratorX$R KZend_Paginator_Adapter_DbSelectX!Q EZend_Paginator_Adapter_ArrayXP #Zend_OpenIdXO 5Zend_OpenId_ProviderXN ?Zend_OpenId_Provider_UserX&M OZend_OpenId_Provider_User_SessionX!L EZend_OpenId_Provider_StorageX&K OZend_OpenId_Provider_Storage_FileXJ 7Zend_OpenId_ExtensionXI AZend_OpenId_Extension_SregXH 7Zend_OpenId_ExceptionXG 5Zend_OpenId_ConsumerX!F EZend_OpenId_Consumer_StorageX&E OZend_OpenId_Consumer_Storage_FileXD Zend_MimeXC )Zend_Mime_PartXB /Zend_Mime_MessageXA 3Zend_Mime_ExceptionX@ -Zend_Mime_DecodeX? #Zend_MemoryX> /Zend_Memory_ValueX= 3Zend_Memory_ManagerX< 7Zend_Memory_ExceptionX; 7Zend_Memory_ContainerX": GZend_Memory_Container_MovableX!9 EZend_Memory_Container_LockedX!8 EZend_Memory_AccessControllerX7 3Zend_Measure_WeightX6 3Zend_Measure_VolumeX%5 MZend_Measure_Viscosity_KinematicX#4 IZend_Measure_Viscosity_DynamicX3 3Zend_Measure_TorqueX2 /Zend_Measure_TimeX1 =Zend_Measure_TemperatureX0 1Zend_Measure_SpeedX/ 7Zend_Measure_PressureX. 1Zend_Measure_PowerX- 3Zend_Measure_NumberX, 9Zend_Measure_LightnessX+ 3Zend_Measure_LengthX* ?Zend_Measure_IlluminationX) 9Zend_Measure_FrequencyX( 1Zend_Measure_ForceX' =Zend_Measure_Flow_VolumeX& 9Zend_Measure_Flow_MoleX% 9Zend_Measure_Flow_MassX$ 9Zend_Measure_ExceptionX# 3Zend_Measure_EnergyX" 5Zend_Measure_DensityX! 5Zend_Measure_CurrentX   CZend_Measure_Cooking_WeightX  CZend_Measure_Cooking_VolumeX =Zend_Measure_CapacitanceX 3Zend_Measure_BinaryX /Zend_Measure_AreaX 1Zend_Measure_AngleX ?Zend_Measure_AccelerationX 7Zend_Measure_AbstractX Zend_MailX =Zend_Mail_Transport_SmtpX! EZend_Mail_Transport_SendmailX" GZend_Mail_Transport_ExceptionX! EZend_Mail_Transport_AbstractX /Zend_Mail_StorageX' QZend_Mail_Storage_Writable_MaildirX 9Zend_Mail_Storage_Pop3X 9Zend_Mail_Storage_MboxX   X  zbHd7 EJa'



q
R
-
						e	N	+	cJ.Q~E[1~Db=yJ{Q)  [ =Zend_Search_Lucene_ProxyX%Z MZend_Search_Lucene_PriorityQueueX#Y IZend_Search_Lucene_LockManagerX$X KZend_Search_Lucene_Index_WriterX&W OZend_Search_Lucene_Index_TermInfoX"V GZend_Search_Lucene_Index_TermX+U YZend_Search_Lucene_Index_SegmentWriterX8T sZend_Search_Lucene_Index_SegmentWriter_StreamWriterX:S wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterX+R YZend_Search_Lucene_Index_SegmentMergerX6Q oZend_Search_Lucene_Index_SegmentInfoPriorityQueueX)P UZend_Search_Lucene_Index_SegmentInfoX'O QZend_Search_Lucene_Index_FieldInfoX.N _Zend_Search_Lucene_Index_DictionaryLoaderX!M EZend_Search_Lucene_FSMActionXL 9Zend_Search_Lucene_FSMXK =Zend_Search_Lucene_FieldX!J EZend_Search_Lucene_ExceptionX I CZend_Search_Lucene_DocumentX%H MZend_Search_Lucene_Document_HtmlX,G [Zend_Search_Lucene_Analysis_TokenFilterX6F oZend_Search_Lucene_Analysis_TokenFilter_StopWordsX7E qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsX:D wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8X6C oZend_Search_Lucene_Analysis_TokenFilter_LowerCaseX&B OZend_Search_Lucene_Analysis_TokenX)A UZend_Search_Lucene_Analysis_AnalyzerX0@ cZend_Search_Lucene_Analysis_Analyzer_CommonX8? sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumXI> Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitiveX5= mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8XF< Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitiveX8; sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumXI: Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitiveX59 mZend_Search_Lucene_Analysis_Analyzer_Common_TextXF8 Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiveX7 7Zend_Search_ExceptionX6 -Zend_Rest_ServerX5 AZend_Rest_Server_ExceptionX4 3Zend_Rest_ExceptionX3 -Zend_Rest_ClientX2 ;Zend_Rest_Client_ResultX1 AZend_Rest_Client_ExceptionX0 'Zend_RegistryX/ Zend_PdfX!. EZend_Pdf_UpdateInfoContainerX- -Zend_Pdf_TrailerX, ;Zend_Pdf_Trailer_KeeperX+ AZend_Pdf_Trailer_GeneratorX* )Zend_Pdf_StyleX) 7Zend_Pdf_StringParserX( /Zend_Pdf_ResourceX#' IZend_Pdf_Resource_ImageFactoryX& ;Zend_Pdf_Resource_ImageX!% EZend_Pdf_Resource_Image_TiffX $ CZend_Pdf_Resource_Image_PngX!# EZend_Pdf_Resource_Image_JpegX" 9Zend_Pdf_Resource_FontX!! EZend_Pdf_Resource_Font_Type0X"  GZend_Pdf_Resource_Font_SimpleX+ YZend_Pdf_Resource_Font_Simple_StandardX8 sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsX6 oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanX7 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicX; yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicX5 mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldX2 gZend_Pdf_Resource_Font_Simple_Standard_SymbolX< {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueXA Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliqueX9 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldX5 mZend_Pdf_Resource_Font_Simple_Standard_HelveticaX: wZend_Pdf_Resource_Font_Simple_Standard_CourierObliqueX> Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliqueX7 qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldX3 iZend_Pdf_Resource_Font_Simple_Standard_CourierX) UZend_Pdf_Resource_Font_Simple_ParsedX2 gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypeX* WZend_Pdf_Resource_Font_FontDescriptorX% MZend_Pdf_Resource_Font_ExtractedX# IZend_Pdf_Resource_Font_CidFontX, [Zend_Pdf_Resource_Font_CidFont_TrueTypeX
 /Zend_Pdf_PhpArrayX	 +Zend_Pdf_ParserX 9Zend_Pdf_Parser_StreamX 'Zend_Pdf_PageX )Zend_Pdf_ImageX 'Zend_Pdf_FontX  CZend_Pdf_Filter_CompressionX   _  d6 qDO"g0pA



O
"				}	`	B	uQ(zR'lG%kGrL0i@Z7c5    &: OZend_Service_SlideShare_ExceptionX9 1Zend_Service_SimpyX$8 KZend_Service_Simpy_WatchlistSetX*7 WZend_Service_Simpy_WatchlistFilterSetX'6 QZend_Service_Simpy_WatchlistFilterX!5 EZend_Service_Simpy_WatchlistX4 ?Zend_Service_Simpy_TagSetX3 9Zend_Service_Simpy_TagX2 AZend_Service_Simpy_NoteSetX1 ;Zend_Service_Simpy_NoteX0 AZend_Service_Simpy_LinkSetX!/ EZend_Service_Simpy_LinkQueryX. ;Zend_Service_Simpy_LinkX- 9Zend_Service_ReCaptchaX$, KZend_Service_ReCaptcha_ResponseX$+ KZend_Service_ReCaptcha_MailHideX.* _Zend_Service_ReCaptcha_MailHide_ExceptionX%) MZend_Service_ReCaptcha_ExceptionX( 7Zend_Service_NirvanixX#' IZend_Service_Nirvanix_ResponseX)& UZend_Service_Nirvanix_Namespace_ImfsX)% UZend_Service_Nirvanix_Namespace_BaseX$$ KZend_Service_Nirvanix_ExceptionX# 3Zend_Service_FlickrX"" GZend_Service_Flickr_ResultSetX! AZend_Service_Flickr_ResultX  ?Zend_Service_Flickr_ImageX 9Zend_Service_ExceptionX 9Zend_Service_DeliciousX& OZend_Service_Delicious_SimplePostX$ KZend_Service_Delicious_PostListX  CZend_Service_Delicious_PostX% MZend_Service_Delicious_ExceptionX  CZend_Service_AudioscrobblerX 3Zend_Service_AmazonX' QZend_Service_Amazon_SimilarProductX" GZend_Service_Amazon_ResultSetX ?Zend_Service_Amazon_QueryX! EZend_Service_Amazon_OfferSetX ?Zend_Service_Amazon_OfferX& OZend_Service_Amazon_ListmaniaListX =Zend_Service_Amazon_ItemX ?Zend_Service_Amazon_ImageX( SZend_Service_Amazon_EditorialReviewX' QZend_Service_Amazon_CustomerReviewX$ KZend_Service_Amazon_AccessoriesX 5Zend_Service_AkismetX 7Zend_Service_AbstractX
 9Zend_Server_ReflectionX'	 QZend_Server_Reflection_ReturnValueX% MZend_Server_Reflection_PrototypeX% MZend_Server_Reflection_ParameterX  CZend_Server_Reflection_NodeX" GZend_Server_Reflection_MethodX$ KZend_Server_Reflection_FunctionX- ]Zend_Server_Reflection_Function_AbstractX% MZend_Server_Reflection_ExceptionX! EZend_Server_Reflection_ClassX  7Zend_Server_ExceptionX 5Zend_Server_AbstractX~ 1Zend_Search_LuceneX$} KZend_Search_Lucene_Storage_FileX+| YZend_Search_Lucene_Storage_File_MemoryX/{ aZend_Search_Lucene_Storage_File_FilesystemX)z UZend_Search_Lucene_Storage_DirectoryX4y kZend_Search_Lucene_Storage_Directory_FilesystemX%x MZend_Search_Lucene_Search_WeightX*w WZend_Search_Lucene_Search_Weight_TermX,v [Zend_Search_Lucene_Search_Weight_PhraseX/u aZend_Search_Lucene_Search_Weight_MultiTermX+t YZend_Search_Lucene_Search_Weight_EmptyX-s ]Zend_Search_Lucene_Search_Weight_BooleanX)r UZend_Search_Lucene_Search_SimilarityX1q eZend_Search_Lucene_Search_Similarity_DefaultX)p UZend_Search_Lucene_Search_QueryTokenX3o iZend_Search_Lucene_Search_QueryParserExceptionX1n eZend_Search_Lucene_Search_QueryParserContextX*m WZend_Search_Lucene_Search_QueryParserX)l UZend_Search_Lucene_Search_QueryLexerX'k QZend_Search_Lucene_Search_QueryHitX)j UZend_Search_Lucene_Search_QueryEntryX.i _Zend_Search_Lucene_Search_QueryEntry_TermX2h gZend_Search_Lucene_Search_QueryEntry_SubqueryX0g cZend_Search_Lucene_Search_QueryEntry_PhraseX$f KZend_Search_Lucene_Search_QueryX-e ]Zend_Search_Lucene_Search_Query_WildcardX)d UZend_Search_Lucene_Search_Query_TermX*c WZend_Search_Lucene_Search_Query_RangeX+b YZend_Search_Lucene_Search_Query_PhraseX.a _Zend_Search_Lucene_Search_Query_MultiTermX2` gZend_Search_Lucene_Search_Query_InsignificantX*_ WZend_Search_Lucene_Search_Query_FuzzyX*^ WZend_Search_Lucene_Search_Query_EmptyX,] [Zend_Search_Lucene_Search_Query_BooleanX:\ wZend_Search_Lucene_Search_BooleanExpressionRecognizerX   i  g=c4pFl<f?




R
+
				[	9	v[=VA"dK&oAhN/lJ'zcH2!eG+                          # 5Zend_Validate_DigitsX" 1Zend_Validate_DateX! 3Zend_Validate_CcnumX  7Zend_Validate_BetweenX 7Zend_Validate_BarcodeX AZend_Validate_Barcode_UpcAX  CZend_Validate_Barcode_Ean13X 3Zend_Validate_AlphaX 3Zend_Validate_AlnumX 9Zend_Validate_AbstractX Zend_UriX 'Zend_Uri_HttpX 1Zend_Uri_ExceptionX )Zend_TranslateX =Zend_Translate_ExceptionX 9Zend_Translate_AdapterX! EZend_Translate_Adapter_XmlTmX! EZend_Translate_Adapter_XliffX AZend_Translate_Adapter_TmxX AZend_Translate_Adapter_TbxX ?Zend_Translate_Adapter_QtX AZend_Translate_Adapter_IniX# IZend_Translate_Adapter_GettextX AZend_Translate_Adapter_CsvX! EZend_Translate_Adapter_ArrayX
 'Zend_TimeSyncX	 1Zend_TimeSync_SntpX 9Zend_TimeSync_ProtocolX /Zend_TimeSync_NtpX ;Zend_TimeSync_ExceptionX -Zend_Text_FigletX AZend_Text_Figlet_ExceptionX 3Zend_Text_ExceptionX) UZend_Test_PHPUnit_ControllerTestCaseX0 cZend_Test_PHPUnit_Constraint_ResponseHeaderX*  WZend_Test_PHPUnit_Constraint_RedirectX+ YZend_Test_PHPUnit_Constraint_ExceptionX*~ WZend_Test_PHPUnit_Constraint_DomQueryX} )Zend_Soap_WsdlX| 7Zend_Soap_Wsdl_ParserX!{ EZend_Soap_Wsdl_Parser_ResultX!z EZend_Soap_Wsdl_CodeGeneratorXy -Zend_Soap_ServerXx AZend_Soap_Server_ExceptionXw -Zend_Soap_ClientXv 9Zend_Soap_Client_LocalXu AZend_Soap_Client_ExceptionXt ;Zend_Soap_Client_DotNetXs ;Zend_Soap_Client_CommonXr 9Zend_Soap_AutoDiscoverXq %Zend_SessionX)p UZend_Session_Validator_HttpUserAgentX$o KZend_Session_Validator_AbstractX'n QZend_Session_SaveHandler_ExceptionX%m MZend_Session_SaveHandler_DbTableXl 9Zend_Session_NamespaceXk 9Zend_Session_ExceptionXj 7Zend_Session_AbstractXi 1Zend_Service_YahooX$h KZend_Service_Yahoo_WebResultSetX!g EZend_Service_Yahoo_WebResultX&f OZend_Service_Yahoo_VideoResultSetX#e IZend_Service_Yahoo_VideoResultX!d EZend_Service_Yahoo_ResultSetXc ?Zend_Service_Yahoo_ResultX)b UZend_Service_Yahoo_PageDataResultSetX&a OZend_Service_Yahoo_PageDataResultX%` MZend_Service_Yahoo_NewsResultSetX"_ GZend_Service_Yahoo_NewsResultX&^ OZend_Service_Yahoo_LocalResultSetX#] IZend_Service_Yahoo_LocalResultX+\ YZend_Service_Yahoo_InlinkDataResultSetX([ SZend_Service_Yahoo_InlinkDataResultX&Z OZend_Service_Yahoo_ImageResultSetX#Y IZend_Service_Yahoo_ImageResultXX =Zend_Service_Yahoo_ImageXW ;Zend_Service_TechnoratiX#V IZend_Service_Technorati_WeblogX"U GZend_Service_Technorati_UtilsX*T WZend_Service_Technorati_TagsResultSetX'S QZend_Service_Technorati_TagsResultX)R UZend_Service_Technorati_TagResultSetX&Q OZend_Service_Technorati_TagResultX,P [Zend_Service_Technorati_SearchResultSetX)O UZend_Service_Technorati_SearchResultX&N OZend_Service_Technorati_ResultSetX#M IZend_Service_Technorati_ResultX*L WZend_Service_Technorati_KeyInfoResultX*K WZend_Service_Technorati_GetInfoResultX&J OZend_Service_Technorati_ExceptionX1I eZend_Service_Technorati_DailyCountsResultSetX.H _Zend_Service_Technorati_DailyCountsResultX,G [Zend_Service_Technorati_CosmosResultSetX)F UZend_Service_Technorati_CosmosResultX+E YZend_Service_Technorati_BlogInfoResultX#D IZend_Service_Technorati_AuthorXC ;Zend_Service_StrikeIronX(B SZend_Service_StrikeIron_ZipCodeInfoX2A gZend_Service_StrikeIron_USAddressVerificationX-@ ]Zend_Service_StrikeIron_SalesUseTaxBasicX&? OZend_Service_StrikeIron_ExceptionX&> OZend_Service_StrikeIron_DecoratorX!= EZend_Service_StrikeIron_BaseX< ;Zend_Service_SlideShareX&; OZend_Service_SlideShare_SlideShowX   m  zU0dB(~\:iJ.gB!




r
N
,
				u	O	,		yW5a=e:Ib?"	N)X)lP.                =Zend_XmlRpc_Server_CacheX 5Zend_XmlRpc_ResponseX ?Zend_XmlRpc_Response_HttpX 3Zend_XmlRpc_RequestX ?Zend_XmlRpc_Request_StdinX =Zend_XmlRpc_Request_HttpX
 /Zend_XmlRpc_FaultX	 7Zend_XmlRpc_ExceptionX 1Zend_XmlRpc_ClientX# IZend_XmlRpc_Client_ServerProxyX+ YZend_XmlRpc_Client_ServerIntrospectionX+ YZend_XmlRpc_Client_IntrospectExceptionX% MZend_XmlRpc_Client_HttpExceptionX& OZend_XmlRpc_Client_FaultExceptionX! EZend_XmlRpc_Client_ExceptionX& OZend_Wildfire_Protocol_JsonStreamX!  EZend_Wildfire_Plugin_FirePhpX. _Zend_Wildfire_Plugin_FirePhp_TableMessageX)~ UZend_Wildfire_Plugin_FirePhp_MessageX} ;Zend_Wildfire_ExceptionX&| OZend_Wildfire_Channel_HttpHeadersX{ Zend_ViewXz -Zend_View_StreamXy 5Zend_View_Helper_UrlXx AZend_View_Helper_TranslateX)w UZend_View_Helper_RenderToPlaceholderX!v EZend_View_Helper_PlaceholderX*u WZend_View_Helper_Placeholder_RegistryX4t kZend_View_Helper_Placeholder_Registry_ExceptionX+s YZend_View_Helper_Placeholder_ContainerX6r oZend_View_Helper_Placeholder_Container_StandaloneX5q mZend_View_Helper_Placeholder_Container_ExceptionX4p kZend_View_Helper_Placeholder_Container_AbstractX!o EZend_View_Helper_PartialLoopXn =Zend_View_Helper_PartialX'm QZend_View_Helper_Partial_ExceptionX'l QZend_View_Helper_PaginationControlXk ;Zend_View_Helper_LayoutXj 7Zend_View_Helper_JsonX"i GZend_View_Helper_InlineScriptX#h IZend_View_Helper_HtmlQuicktimeXg ?Zend_View_Helper_HtmlPageX f CZend_View_Helper_HtmlObjectXe ?Zend_View_Helper_HtmlListXd AZend_View_Helper_HtmlFlashX!c EZend_View_Helper_HtmlElementXb AZend_View_Helper_HeadTitleXa AZend_View_Helper_HeadStyleX ` CZend_View_Helper_HeadScriptX_ ?Zend_View_Helper_HeadMetaX^ ?Zend_View_Helper_HeadLinkX"] GZend_View_Helper_FormTextareaX\ ?Zend_View_Helper_FormTextX [ CZend_View_Helper_FormSubmitX Z CZend_View_Helper_FormSelectXY AZend_View_Helper_FormResetXX AZend_View_Helper_FormRadioX"W GZend_View_Helper_FormPasswordXV ?Zend_View_Helper_FormNoteX'U QZend_View_Helper_FormMultiCheckboxXT AZend_View_Helper_FormLabelXS AZend_View_Helper_FormImageX R CZend_View_Helper_FormHiddenXQ ?Zend_View_Helper_FormFileX P CZend_View_Helper_FormErrorsX!O EZend_View_Helper_FormElementX"N GZend_View_Helper_FormCheckboxX M CZend_View_Helper_FormButtonXL 7Zend_View_Helper_FormXK ?Zend_View_Helper_FieldsetXJ =Zend_View_Helper_DoctypeX!I EZend_View_Helper_DeclareVarsXH ;Zend_View_Helper_ActionXG ?Zend_View_Helper_AbstractXF 3Zend_View_ExceptionXE 1Zend_View_AbstractXD %Zend_VersionXC 'Zend_ValidateXB AZend_Validate_StringLengthXA 3Zend_Validate_RegexX@ 9Zend_Validate_NotEmptyX? 9Zend_Validate_LessThanX> -Zend_Validate_IpX= /Zend_Validate_IntX< 7Zend_Validate_InArrayX; ;Zend_Validate_IdenticalX: 9Zend_Validate_HostnameX9 ?Zend_Validate_Hostname_SeX8 ?Zend_Validate_Hostname_NoX7 ?Zend_Validate_Hostname_LiX6 ?Zend_Validate_Hostname_HuX5 ?Zend_Validate_Hostname_FiX4 ?Zend_Validate_Hostname_DeX3 ?Zend_Validate_Hostname_ChX2 ?Zend_Validate_Hostname_AtX1 /Zend_Validate_HexX0 ?Zend_Validate_GreaterThanX/ 3Zend_Validate_FloatX. ?Zend_Validate_File_UploadX- ;Zend_Validate_File_SizeX!, EZend_Validate_File_NotExistsX + CZend_Validate_File_MimeTypeX!* EZend_Validate_File_ImageSizeX!) EZend_Validate_File_FilesSizeX!( EZend_Validate_File_ExtensionX' ?Zend_Validate_File_ExistsX& =Zend_Validate_File_CountX% ;Zend_Validate_ExceptionX$ AZend_Validate_EmailAddressX   j  ^<oN-u_N,iF'cQ2




a
F
.
					e	R	8		x`L&
Ng2y?oM/a7jEuN                           'z QZend_Controller_Router_Route_ChainY*y WZend_Controller_Router_Route_AbstractY#x IZend_Controller_Router_RewriteY%w MZend_Controller_Router_ExceptionY$v KZend_Controller_Router_AbstractY*u WZend_Controller_Response_HttpTestCaseY"t GZend_Controller_Response_HttpY's QZend_Controller_Response_ExceptionY!r EZend_Controller_Response_CliY&q OZend_Controller_Response_AbstractY#p IZend_Controller_Request_SimpleY)o UZend_Controller_Request_HttpTestCaseY!n EZend_Controller_Request_HttpY&m OZend_Controller_Request_ExceptionY&l OZend_Controller_Request_Apache404Y%k MZend_Controller_Request_AbstractY(j SZend_Controller_Plugin_ErrorHandlerY"i GZend_Controller_Plugin_BrokerY'h QZend_Controller_Plugin_ActionStackY$g KZend_Controller_Plugin_AbstractYf 7Zend_Controller_FrontYe ?Zend_Controller_ExceptionY(d SZend_Controller_Dispatcher_StandardY)c UZend_Controller_Dispatcher_ExceptionY(b SZend_Controller_Dispatcher_AbstractYa 9Zend_Controller_ActionY(` SZend_Controller_Action_HelperBrokerY6_ oZend_Controller_Action_HelperBroker_PriorityStackY/^ aZend_Controller_Action_Helper_ViewRendererY&] OZend_Controller_Action_Helper_UrlY-\ ]Zend_Controller_Action_Helper_RedirectorY'[ QZend_Controller_Action_Helper_JsonY1Z eZend_Controller_Action_Helper_FlashMessengerY0Y cZend_Controller_Action_Helper_ContextSwitchY<X {Zend_Controller_Action_Helper_AutoCompleteScriptaculousY3W iZend_Controller_Action_Helper_AutoCompleteDojoY8V sZend_Controller_Action_Helper_AutoComplete_AbstractY.U _Zend_Controller_Action_Helper_AjaxContextY.T _Zend_Controller_Action_Helper_ActionStackY+S YZend_Controller_Action_Helper_AbstractY%R MZend_Controller_Action_ExceptionYQ 3Zend_Console_GetoptY"P GZend_Console_Getopt_ExceptionYO #Zend_ConfigYN +Zend_Config_XmlYM +Zend_Config_IniYL 7Zend_Config_ExceptionYK /Zend_Captcha_WordYJ 9Zend_Captcha_ReCaptchaYI 1Zend_Captcha_ImageYH 3Zend_Captcha_FigletYG /Zend_Captcha_DumbYF /Zend_Captcha_BaseYE !Zend_CacheYD =Zend_Cache_Frontend_PageYC AZend_Cache_Frontend_OutputY!B EZend_Cache_Frontend_FunctionYA =Zend_Cache_Frontend_FileY@ ?Zend_Cache_Frontend_ClassY? 5Zend_Cache_ExceptionY> +Zend_Cache_CoreY= 1Zend_Cache_BackendY$< KZend_Cache_Backend_ZendPlatformY; ?Zend_Cache_Backend_XcacheY: ;Zend_Cache_Backend_TestY9 ?Zend_Cache_Backend_SqliteY!8 EZend_Cache_Backend_MemcachedY7 ;Zend_Cache_Backend_FileY6 9Zend_Cache_Backend_ApcY5 Zend_AuthY4 ?Zend_Auth_Storage_SessionY$3 KZend_Auth_Storage_NonPersistentY 2 CZend_Auth_Storage_ExceptionY1 -Zend_Auth_ResultY0 3Zend_Auth_ExceptionY/ =Zend_Auth_Adapter_OpenIdY. 9Zend_Auth_Adapter_LdapY- AZend_Auth_Adapter_InfoCardY, 9Zend_Auth_Adapter_HttpY)+ UZend_Auth_Adapter_Http_Resolver_FileY.* _Zend_Auth_Adapter_Http_Resolver_ExceptionY ) CZend_Auth_Adapter_ExceptionY( =Zend_Auth_Adapter_DigestY' ?Zend_Auth_Adapter_DbTableY& Zend_AclY% 'Zend_Acl_RoleY$ 9Zend_Acl_Role_RegistryY%# MZend_Acl_Role_Registry_ExceptionY" /Zend_Acl_ResourceY! 1Zend_Acl_ExceptionY  /Zend_XmlRpc_ValueX =Zend_XmlRpc_Value_StructX =Zend_XmlRpc_Value_StringX =Zend_XmlRpc_Value_ScalarX 7Zend_XmlRpc_Value_NilX ?Zend_XmlRpc_Value_IntegerX  CZend_XmlRpc_Value_ExceptionX =Zend_XmlRpc_Value_DoubleX AZend_XmlRpc_Value_DateTimeX! EZend_XmlRpc_Value_CollectionX ?Zend_XmlRpc_Value_BooleanX =Zend_XmlRpc_Value_Base64X ;Zend_XmlRpc_Value_ArrayX 1Zend_XmlRpc_ServerX =Zend_XmlRpc_Server_FaultX! EZend_XmlRpc_Server_ExceptionX   i  {O*
oI-{V2hE+yb:




`
>
 
					f	@	hL[-tP*[1xI}R!k?tF                                c CZend_Dojo_View_Helper_DijitY&b OZend_Dojo_View_Helper_DateTextBoxY*a WZend_Dojo_View_Helper_CurrencyTextBoxY&` OZend_Dojo_View_Helper_ContentPaneY#_ IZend_Dojo_View_Helper_ComboBoxY#^ IZend_Dojo_View_Helper_CheckBoxY!] EZend_Dojo_View_Helper_ButtonY*\ WZend_Dojo_View_Helper_BorderContainerY([ SZend_Dojo_View_Helper_AccordionPaneY-Z ]Zend_Dojo_View_Helper_AccordionContainerYY =Zend_Dojo_View_ExceptionYX )Zend_Dojo_FormYW 9Zend_Dojo_Form_SubFormY*V WZend_Dojo_Form_Element_VerticalSliderY-U ]Zend_Dojo_Form_Element_ValidationTextBoxY'T QZend_Dojo_Form_Element_TimeTextBoxY#S IZend_Dojo_Form_Element_TextBoxY$R KZend_Dojo_Form_Element_TextareaY(Q SZend_Dojo_Form_Element_SubmitButtonY"P GZend_Dojo_Form_Element_SliderY'O QZend_Dojo_Form_Element_RadioButtonY+N YZend_Dojo_Form_Element_PasswordTextBoxY)M UZend_Dojo_Form_Element_NumberTextBoxY)L UZend_Dojo_Form_Element_NumberSpinnerY,K [Zend_Dojo_Form_Element_HorizontalSliderY+J YZend_Dojo_Form_Element_FilteringSelectY&I OZend_Dojo_Form_Element_DijitMultiY!H EZend_Dojo_Form_Element_DijitY'G QZend_Dojo_Form_Element_DateTextBoxY+F YZend_Dojo_Form_Element_CurrencyTextBoxY$E KZend_Dojo_Form_Element_ComboBoxY$D KZend_Dojo_Form_Element_CheckBoxY"C GZend_Dojo_Form_Element_ButtonY B CZend_Dojo_Form_DisplayGroupY*A WZend_Dojo_Form_Decorator_TabContainerY,@ [Zend_Dojo_Form_Decorator_StackContainerY,? [Zend_Dojo_Form_Decorator_SplitContainerY'> QZend_Dojo_Form_Decorator_DijitFormY*= WZend_Dojo_Form_Decorator_DijitElementY,< [Zend_Dojo_Form_Decorator_DijitContainerY); UZend_Dojo_Form_Decorator_ContentPaneY-: ]Zend_Dojo_Form_Decorator_BorderContainerY+9 YZend_Dojo_Form_Decorator_AccordionPaneY08 cZend_Dojo_Form_Decorator_AccordionContainerY7 3Zend_Dojo_ExceptionY6 )Zend_Dojo_DataY5 !Zend_DebugY4 Zend_DbY3 'Zend_Db_TableY2 5Zend_Db_Table_SelectY#1 IZend_Db_Table_Select_ExceptionY0 5Zend_Db_Table_RowsetY#/ IZend_Db_Table_Rowset_ExceptionY". GZend_Db_Table_Rowset_AbstractY- /Zend_Db_Table_RowY , CZend_Db_Table_Row_ExceptionY+ AZend_Db_Table_Row_AbstractY* ;Zend_Db_Table_ExceptionY) 9Zend_Db_Table_AbstractY( /Zend_Db_StatementY' 7Zend_Db_Statement_PdoY& ?Zend_Db_Statement_Pdo_IbmY% =Zend_Db_Statement_OracleY'$ QZend_Db_Statement_Oracle_ExceptionY# =Zend_Db_Statement_MysqliY'" QZend_Db_Statement_Mysqli_ExceptionY ! CZend_Db_Statement_ExceptionY  7Zend_Db_Statement_Db2Y$ KZend_Db_Statement_Db2_ExceptionY )Zend_Db_SelectY =Zend_Db_Select_ExceptionY -Zend_Db_ProfilerY 9Zend_Db_Profiler_QueryY =Zend_Db_Profiler_FirebugY AZend_Db_Profiler_ExceptionY %Zend_Db_ExprY /Zend_Db_ExceptionY AZend_Db_Adapter_Pdo_SqliteY ?Zend_Db_Adapter_Pdo_PgsqlY ;Zend_Db_Adapter_Pdo_OciY ?Zend_Db_Adapter_Pdo_MysqlY ?Zend_Db_Adapter_Pdo_MssqlY ;Zend_Db_Adapter_Pdo_IbmY  CZend_Db_Adapter_Pdo_Ibm_IdsY  CZend_Db_Adapter_Pdo_Ibm_Db2Y! EZend_Db_Adapter_Pdo_AbstractY 9Zend_Db_Adapter_OracleY% MZend_Db_Adapter_Oracle_ExceptionY 9Zend_Db_Adapter_MysqliY%
 MZend_Db_Adapter_Mysqli_ExceptionY	 ?Zend_Db_Adapter_ExceptionY 3Zend_Db_Adapter_Db2Y" GZend_Db_Adapter_Db2_ExceptionY =Zend_Db_Adapter_AbstractY Zend_DateY 3Zend_Date_ExceptionY 5Zend_Date_DateObjectY -Zend_Date_CitiesY 'Zend_CurrencyY  ;Zend_Currency_ExceptionY! EZend_Controller_Router_RouteY(~ SZend_Controller_Router_Route_StaticY'} QZend_Controller_Router_Route_RegexY(| SZend_Controller_Router_Route_ModuleY*{ WZend_Controller_Router_Route_HostnameY   m  U2}S.~W1}\>'rQ7






S
+
						g	I	)	{Y7R) |S%d?Y4a:jK,}Z:                        P =Zend_Form_Element_SelectYO ;Zend_Form_Element_ResetYN ;Zend_Form_Element_RadioYM AZend_Form_Element_PasswordY"L GZend_Form_Element_MultiselectY$K KZend_Form_Element_MultiCheckboxYJ ;Zend_Form_Element_MultiYI ;Zend_Form_Element_ImageYH =Zend_Form_Element_HiddenYG 9Zend_Form_Element_HashYF 9Zend_Form_Element_FileY E CZend_Form_Element_ExceptionYD AZend_Form_Element_CheckboxYC ?Zend_Form_Element_CaptchaYB =Zend_Form_Element_ButtonYA 9Zend_Form_DisplayGroupY#@ IZend_Form_Decorator_ViewScriptY#? IZend_Form_Decorator_ViewHelperY> ?Zend_Form_Decorator_LabelY= ?Zend_Form_Decorator_ImageY < CZend_Form_Decorator_HtmlTagY%; MZend_Form_Decorator_FormElementsY: =Zend_Form_Decorator_FormY9 =Zend_Form_Decorator_FileY!8 EZend_Form_Decorator_FieldsetY"7 GZend_Form_Decorator_ExceptionY6 AZend_Form_Decorator_ErrorsY$5 KZend_Form_Decorator_DtDdWrapperY$4 KZend_Form_Decorator_DescriptionY 3 CZend_Form_Decorator_CaptchaY%2 MZend_Form_Decorator_Captcha_WordY!1 EZend_Form_Decorator_CallbackY!0 EZend_Form_Decorator_AbstractY/ #Zend_FilterY+. YZend_Filter_Word_UnderscoreToSeparatorY&- OZend_Filter_Word_UnderscoreToDashY+, YZend_Filter_Word_UnderscoreToCamelCaseY*+ WZend_Filter_Word_SeparatorToSeparatorY%* MZend_Filter_Word_SeparatorToDashY*) WZend_Filter_Word_SeparatorToCamelCaseY(( SZend_Filter_Word_Separator_AbstractY&' OZend_Filter_Word_DashToUnderscoreY%& MZend_Filter_Word_DashToSeparatorY%% MZend_Filter_Word_DashToCamelCaseY+$ YZend_Filter_Word_CamelCaseToUnderscoreY*# WZend_Filter_Word_CamelCaseToSeparatorY%" MZend_Filter_Word_CamelCaseToDashY! 7Zend_Filter_StripTagsY  ?Zend_Filter_StripNewlinesY 9Zend_Filter_StringTrimY ?Zend_Filter_StringToUpperY ?Zend_Filter_StringToLowerY 5Zend_Filter_RealPathY ;Zend_Filter_PregReplaceY +Zend_Filter_IntY /Zend_Filter_InputY 7Zend_Filter_InflectorY =Zend_Filter_HtmlEntitiesY ;Zend_Filter_File_RenameY 7Zend_Filter_ExceptionY +Zend_Filter_DirY 1Zend_Filter_DigitsY 5Zend_Filter_BaseNameY /Zend_Filter_AlphaY /Zend_Filter_AlnumY 1Zend_File_TransferY! EZend_File_Transfer_ExceptionY$ KZend_File_Transfer_Adapter_HttpY( SZend_File_Transfer_Adapter_AbstractY Zend_FeedY
 'Zend_Feed_RssY	 3Zend_Feed_ExceptionY 3Zend_Feed_Entry_RssY 5Zend_Feed_Entry_AtomY =Zend_Feed_Entry_AbstractY /Zend_Feed_ElementY /Zend_Feed_BuilderY =Zend_Feed_Builder_HeaderY$ KZend_Feed_Builder_Header_ItunesY  CZend_Feed_Builder_ExceptionY  ;Zend_Feed_Builder_EntryY )Zend_Feed_AtomY~ 1Zend_Feed_AbstractY} )Zend_ExceptionY| )Zend_Dom_QueryY{ 7Zend_Dom_Query_ResultYz =Zend_Dom_Query_Css2XpathYy 1Zend_Dom_ExceptionYx Zend_DojoY)w UZend_Dojo_View_Helper_VerticalSliderY,v [Zend_Dojo_View_Helper_ValidationTextBoxY&u OZend_Dojo_View_Helper_TimeTextBoxY"t GZend_Dojo_View_Helper_TextBoxY#s IZend_Dojo_View_Helper_TextareaY'r QZend_Dojo_View_Helper_TabContainerY'q QZend_Dojo_View_Helper_SubmitButtonY)p UZend_Dojo_View_Helper_StackContainerY)o UZend_Dojo_View_Helper_SplitContainerY!n EZend_Dojo_View_Helper_SliderY&m OZend_Dojo_View_Helper_RadioButtonY*l WZend_Dojo_View_Helper_PasswordTextBoxY(k SZend_Dojo_View_Helper_NumberTextBoxY(j SZend_Dojo_View_Helper_NumberSpinnerY+i YZend_Dojo_View_Helper_HorizontalSliderYh AZend_Dojo_View_Helper_FormY*g WZend_Dojo_View_Helper_FilteringSelectYf AZend_Dojo_View_Helper_DojoY)e UZend_Dojo_View_Helper_Dojo_ContainerY)d UZend_Dojo_View_Helper_DijitContainerY   d  }cG-U8oF~Z4mE



|
W
6
				v	S	_9\-a;jR9oG{T7|S%e:                               $4 KZend_Gdata_Extension_RecurrenceY 3 CZend_Gdata_Extension_RatingY'2 QZend_Gdata_Extension_OriginalEventY01 cZend_Gdata_Extension_OpenSearchTotalResultsY.0 _Zend_Gdata_Extension_OpenSearchStartIndexY0/ cZend_Gdata_Extension_OpenSearchItemsPerPageY". GZend_Gdata_Extension_FeedLinkY*- WZend_Gdata_Extension_ExtendedPropertyY%, MZend_Gdata_Extension_EventStatusY#+ IZend_Gdata_Extension_EntryLinkY"* GZend_Gdata_Extension_CommentsY&) OZend_Gdata_Extension_AttendeeTypeY(( SZend_Gdata_Extension_AttendeeStatusY' +Zend_Gdata_ExifY& 5Zend_Gdata_Exif_FeedY#% IZend_Gdata_Exif_Extension_TimeY#$ IZend_Gdata_Exif_Extension_TagsY$# KZend_Gdata_Exif_Extension_ModelY#" IZend_Gdata_Exif_Extension_MakeY"! GZend_Gdata_Exif_Extension_IsoY,  [Zend_Gdata_Exif_Extension_ImageUniqueIdY$ KZend_Gdata_Exif_Extension_FStopY* WZend_Gdata_Exif_Extension_FocalLengthY$ KZend_Gdata_Exif_Extension_FlashY' QZend_Gdata_Exif_Extension_ExposureY' QZend_Gdata_Exif_Extension_DistanceY 7Zend_Gdata_Exif_EntryY -Zend_Gdata_EntryY +Zend_Gdata_DocsY 7Zend_Gdata_Docs_QueryY% MZend_Gdata_Docs_DocumentListFeedY& OZend_Gdata_Docs_DocumentListEntryY 9Zend_Gdata_ClientLoginY 3Zend_Gdata_CalendarY! EZend_Gdata_Calendar_ListFeedY" GZend_Gdata_Calendar_ListEntryY- ]Zend_Gdata_Calendar_Extension_WebContentY+ YZend_Gdata_Calendar_Extension_TimezoneY9 uZend_Gdata_Calendar_Extension_SendEventNotificationsY+ YZend_Gdata_Calendar_Extension_SelectedY+ YZend_Gdata_Calendar_Extension_QuickAddY' QZend_Gdata_Calendar_Extension_LinkY)
 UZend_Gdata_Calendar_Extension_HiddenY(	 SZend_Gdata_Calendar_Extension_ColorY. _Zend_Gdata_Calendar_Extension_AccessLevelY# IZend_Gdata_Calendar_EventQueryY" GZend_Gdata_Calendar_EventFeedY# IZend_Gdata_Calendar_EventEntryY 1Zend_Gdata_AuthSubY )Zend_Gdata_AppY 3Zend_Gdata_App_UtilY# IZend_Gdata_App_MediaFileSourceY  ?Zend_Gdata_App_MediaEntryY2 gZend_Gdata_App_LoggingHttpClientAdapterSocketY~ AZend_Gdata_App_IOExceptionY,} [Zend_Gdata_App_InvalidArgumentExceptionY!| EZend_Gdata_App_HttpExceptionY${ KZend_Gdata_App_FeedSourceParentY#z IZend_Gdata_App_FeedEntryParentYy 3Zend_Gdata_App_FeedYx =Zend_Gdata_App_ExtensionY!w EZend_Gdata_App_Extension_UriY%v MZend_Gdata_App_Extension_UpdatedY#u IZend_Gdata_App_Extension_TitleY"t GZend_Gdata_App_Extension_TextY%s MZend_Gdata_App_Extension_SummaryY&r OZend_Gdata_App_Extension_SubtitleY$q KZend_Gdata_App_Extension_SourceY$p KZend_Gdata_App_Extension_RightsY'o QZend_Gdata_App_Extension_PublishedY$n KZend_Gdata_App_Extension_PersonY"m GZend_Gdata_App_Extension_NameY"l GZend_Gdata_App_Extension_LogoY"k GZend_Gdata_App_Extension_LinkY j CZend_Gdata_App_Extension_IdY"i GZend_Gdata_App_Extension_IconY'h QZend_Gdata_App_Extension_GeneratorY#g IZend_Gdata_App_Extension_EmailY%f MZend_Gdata_App_Extension_ElementY#e IZend_Gdata_App_Extension_DraftY%d MZend_Gdata_App_Extension_ControlY)c UZend_Gdata_App_Extension_ContributorY%b MZend_Gdata_App_Extension_ContentY&a OZend_Gdata_App_Extension_CategoryY$` KZend_Gdata_App_Extension_AuthorY_ =Zend_Gdata_App_ExceptionY^ 5Zend_Gdata_App_EntryY,] [Zend_Gdata_App_CaptchaRequiredExceptionY#\ IZend_Gdata_App_BaseMediaSourceY[ 3Zend_Gdata_App_BaseY*Z WZend_Gdata_App_BadMethodCallExceptionY!Y EZend_Gdata_App_AuthExceptionYX Zend_FormYW /Zend_Form_SubFormYV 3Zend_Form_ExceptionYU /Zend_Form_ElementYT ;Zend_Form_Element_XhtmlYS AZend_Form_Element_TextareaYR 9Zend_Form_Element_TextYQ =Zend_Form_Element_SubmitY   `  W5mEg>tM.d3




h
C

				h	L	5	tBS$b4h=Z$oF[*wI    ' QZend_Gdata_Photos_Extension_WeightY( SZend_Gdata_Photos_Extension_VersionY% MZend_Gdata_Photos_Extension_UserY* WZend_Gdata_Photos_Extension_TimestampY* WZend_Gdata_Photos_Extension_ThumbnailY% MZend_Gdata_Photos_Extension_SizeY) UZend_Gdata_Photos_Extension_RotationY+ YZend_Gdata_Photos_Extension_QuotaLimitY- ]Zend_Gdata_Photos_Extension_QuotaCurrentY) UZend_Gdata_Photos_Extension_PositionY(
 SZend_Gdata_Photos_Extension_PhotoIdY3	 iZend_Gdata_Photos_Extension_NumPhotosRemainingY* WZend_Gdata_Photos_Extension_NumPhotosY) UZend_Gdata_Photos_Extension_NicknameY% MZend_Gdata_Photos_Extension_NameY2 gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumY) UZend_Gdata_Photos_Extension_LocationY# IZend_Gdata_Photos_Extension_IdY' QZend_Gdata_Photos_Extension_HeightY2 gZend_Gdata_Photos_Extension_CommentingEnabledY-  ]Zend_Gdata_Photos_Extension_CommentCountY' QZend_Gdata_Photos_Extension_ClientY)~ UZend_Gdata_Photos_Extension_ChecksumY*} WZend_Gdata_Photos_Extension_BytesUsedY(| SZend_Gdata_Photos_Extension_AlbumIdY'{ QZend_Gdata_Photos_Extension_AccessY#z IZend_Gdata_Photos_CommentEntryY!y EZend_Gdata_Photos_AlbumQueryY x CZend_Gdata_Photos_AlbumFeedY!w EZend_Gdata_Photos_AlbumEntryYv -Zend_Gdata_MediaYu 7Zend_Gdata_Media_FeedY*t WZend_Gdata_Media_Extension_MediaTitleY.s _Zend_Gdata_Media_Extension_MediaThumbnailY)r UZend_Gdata_Media_Extension_MediaTextY0q cZend_Gdata_Media_Extension_MediaRestrictionY+p YZend_Gdata_Media_Extension_MediaRatingY+o YZend_Gdata_Media_Extension_MediaPlayerY-n ]Zend_Gdata_Media_Extension_MediaKeywordsY)m UZend_Gdata_Media_Extension_MediaHashY*l WZend_Gdata_Media_Extension_MediaGroupY0k cZend_Gdata_Media_Extension_MediaDescriptionY+j YZend_Gdata_Media_Extension_MediaCreditY.i _Zend_Gdata_Media_Extension_MediaCopyrightY,h [Zend_Gdata_Media_Extension_MediaContentY-g ]Zend_Gdata_Media_Extension_MediaCategoryYf 9Zend_Gdata_Media_EntryYe AZend_Gdata_Kind_EventEntryYd 7Zend_Gdata_HttpClientYc )Zend_Gdata_GeoYb 3Zend_Gdata_Geo_FeedY$a KZend_Gdata_Geo_Extension_GmlPosY&` OZend_Gdata_Geo_Extension_GmlPointY)_ UZend_Gdata_Geo_Extension_GeoRssWhereY^ 5Zend_Gdata_Geo_EntryY] -Zend_Gdata_GbaseY"\ GZend_Gdata_Gbase_SnippetQueryY![ EZend_Gdata_Gbase_SnippetFeedY"Z GZend_Gdata_Gbase_SnippetEntryYY 9Zend_Gdata_Gbase_QueryYX AZend_Gdata_Gbase_ItemQueryYW ?Zend_Gdata_Gbase_ItemFeedYV AZend_Gdata_Gbase_ItemEntryYU 7Zend_Gdata_Gbase_FeedY-T ]Zend_Gdata_Gbase_Extension_BaseAttributeYS 9Zend_Gdata_Gbase_EntryYR -Zend_Gdata_GappsYQ AZend_Gdata_Gapps_UserQueryYP ?Zend_Gdata_Gapps_UserFeedYO AZend_Gdata_Gapps_UserEntryY&N OZend_Gdata_Gapps_ServiceExceptionYM 9Zend_Gdata_Gapps_QueryY#L IZend_Gdata_Gapps_NicknameQueryY"K GZend_Gdata_Gapps_NicknameFeedY#J IZend_Gdata_Gapps_NicknameEntryY%I MZend_Gdata_Gapps_Extension_QuotaY(H SZend_Gdata_Gapps_Extension_NicknameY$G KZend_Gdata_Gapps_Extension_NameY%F MZend_Gdata_Gapps_Extension_LoginY)E UZend_Gdata_Gapps_Extension_EmailListYD 9Zend_Gdata_Gapps_ErrorY-C ]Zend_Gdata_Gapps_EmailListRecipientQueryY,B [Zend_Gdata_Gapps_EmailListRecipientFeedY-A ]Zend_Gdata_Gapps_EmailListRecipientEntryY$@ KZend_Gdata_Gapps_EmailListQueryY#? IZend_Gdata_Gapps_EmailListFeedY$> KZend_Gdata_Gapps_EmailListEntryY= +Zend_Gdata_FeedY< 5Zend_Gdata_ExtensionY; =Zend_Gdata_Extension_WhoY: AZend_Gdata_Extension_WhereY9 ?Zend_Gdata_Extension_WhenY$8 KZend_Gdata_Extension_VisibilityY&7 OZend_Gdata_Extension_TransparencyY"6 GZend_Gdata_Extension_ReminderY-5 ]Zend_Gdata_Extension_RecurrenceExceptionY   ^  hE!}T*i6X)d=



^
0
				Q	k;S'uG!m@w\ImT8Z-fI                      %r MZend_InfoCard_Xml_Assertion_SamlYq ;Zend_InfoCard_ExceptionY%p MZend_InfoCard_Exception_AbstractYo 5Zend_InfoCard_ClaimsYn 5Zend_InfoCard_CipherY5m mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcY5l mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcY4k kZend_InfoCard_Cipher_Symmetric_Adapter_AbstractY)j UZend_InfoCard_Cipher_Pki_Adapter_RsaY.i _Zend_InfoCard_Cipher_Pki_Adapter_AbstractY#h IZend_InfoCard_Cipher_ExceptionY$g KZend_InfoCard_Adapter_ExceptionY"f GZend_InfoCard_Adapter_DefaultYe 1Zend_Http_ResponseYd 3Zend_Http_ExceptionYc 3Zend_Http_CookieJarYb -Zend_Http_CookieYa -Zend_Http_ClientY` AZend_Http_Client_ExceptionY"_ GZend_Http_Client_Adapter_TestY$^ KZend_Http_Client_Adapter_SocketY#] IZend_Http_Client_Adapter_ProxyY'\ QZend_Http_Client_Adapter_ExceptionY[ !Zend_GdataYZ 1Zend_Gdata_YouTubeY"Y GZend_Gdata_YouTube_VideoQueryY!X EZend_Gdata_YouTube_VideoFeedY"W GZend_Gdata_YouTube_VideoEntryY(V SZend_Gdata_YouTube_UserProfileEntryY(U SZend_Gdata_YouTube_SubscriptionFeedY)T UZend_Gdata_YouTube_SubscriptionEntryY)S UZend_Gdata_YouTube_PlaylistVideoFeedY*R WZend_Gdata_YouTube_PlaylistVideoEntryY(Q SZend_Gdata_YouTube_PlaylistListFeedY)P UZend_Gdata_YouTube_PlaylistListEntryY"O GZend_Gdata_YouTube_MediaEntryY*N WZend_Gdata_YouTube_Extension_UsernameY'M QZend_Gdata_YouTube_Extension_TokenY(L SZend_Gdata_YouTube_Extension_StatusY,K [Zend_Gdata_YouTube_Extension_StatisticsY'J QZend_Gdata_YouTube_Extension_StateY(I SZend_Gdata_YouTube_Extension_SchoolY-H ]Zend_Gdata_YouTube_Extension_ReleaseDateY.G _Zend_Gdata_YouTube_Extension_RelationshipY&F OZend_Gdata_YouTube_Extension_RacyY)E UZend_Gdata_YouTube_Extension_PrivateY*D WZend_Gdata_YouTube_Extension_PositionY,C [Zend_Gdata_YouTube_Extension_OccupationY)B UZend_Gdata_YouTube_Extension_NoEmbedY'A QZend_Gdata_YouTube_Extension_MusicY(@ SZend_Gdata_YouTube_Extension_MoviesY,? [Zend_Gdata_YouTube_Extension_MediaGroupY.> _Zend_Gdata_YouTube_Extension_MediaContentY*= WZend_Gdata_YouTube_Extension_LocationY&< OZend_Gdata_YouTube_Extension_LinkY*; WZend_Gdata_YouTube_Extension_HometownY): UZend_Gdata_YouTube_Extension_HobbiesY(9 SZend_Gdata_YouTube_Extension_GenderY*8 WZend_Gdata_YouTube_Extension_DurationY-7 ]Zend_Gdata_YouTube_Extension_DescriptionY)6 UZend_Gdata_YouTube_Extension_ControlY)5 UZend_Gdata_YouTube_Extension_CompanyY'4 QZend_Gdata_YouTube_Extension_BooksY%3 MZend_Gdata_YouTube_Extension_AgeY#2 IZend_Gdata_YouTube_ContactFeedY$1 KZend_Gdata_YouTube_ContactEntryY#0 IZend_Gdata_YouTube_CommentFeedY$/ KZend_Gdata_YouTube_CommentEntryY. ;Zend_Gdata_SpreadsheetsY*- WZend_Gdata_Spreadsheets_WorksheetFeedY+, YZend_Gdata_Spreadsheets_WorksheetEntryY,+ [Zend_Gdata_Spreadsheets_SpreadsheetFeedY-* ]Zend_Gdata_Spreadsheets_SpreadsheetEntryY&) OZend_Gdata_Spreadsheets_ListQueryY%( MZend_Gdata_Spreadsheets_ListFeedY&' OZend_Gdata_Spreadsheets_ListEntryY/& aZend_Gdata_Spreadsheets_Extension_RowCountY-% ]Zend_Gdata_Spreadsheets_Extension_CustomY/$ aZend_Gdata_Spreadsheets_Extension_ColCountY+# YZend_Gdata_Spreadsheets_Extension_CellY*" WZend_Gdata_Spreadsheets_DocumentQueryY&! OZend_Gdata_Spreadsheets_CellQueryY%  MZend_Gdata_Spreadsheets_CellFeedY& OZend_Gdata_Spreadsheets_CellEntryY -Zend_Gdata_QueryY /Zend_Gdata_PhotosY  CZend_Gdata_Photos_UserQueryY AZend_Gdata_Photos_UserFeedY  CZend_Gdata_Photos_UserEntryY AZend_Gdata_Photos_TagEntryY! EZend_Gdata_Photos_PhotoQueryY  CZend_Gdata_Photos_PhotoFeedY! EZend_Gdata_Photos_PhotoEntryY& OZend_Gdata_Photos_Extension_WidthY   t  Z2hFj=dAoVD





e
:

					k	J	1		~_>#}^D([0uO.jElR6wX9bF+   f 1Zend_Measure_SpeedYe 7Zend_Measure_PressureYd 1Zend_Measure_PowerYc 3Zend_Measure_NumberYb 9Zend_Measure_LightnessYa 3Zend_Measure_LengthY` ?Zend_Measure_IlluminationY_ 9Zend_Measure_FrequencyY^ 1Zend_Measure_ForceY] =Zend_Measure_Flow_VolumeY\ 9Zend_Measure_Flow_MoleY[ 9Zend_Measure_Flow_MassYZ 9Zend_Measure_ExceptionYY 3Zend_Measure_EnergyYX 5Zend_Measure_DensityYW 5Zend_Measure_CurrentY V CZend_Measure_Cooking_WeightY U CZend_Measure_Cooking_VolumeYT =Zend_Measure_CapacitanceYS 3Zend_Measure_BinaryYR /Zend_Measure_AreaYQ 1Zend_Measure_AngleYP ?Zend_Measure_AccelerationYO 7Zend_Measure_AbstractYN Zend_MailYM =Zend_Mail_Transport_SmtpY!L EZend_Mail_Transport_SendmailY"K GZend_Mail_Transport_ExceptionY!J EZend_Mail_Transport_AbstractYI /Zend_Mail_StorageY'H QZend_Mail_Storage_Writable_MaildirYG 9Zend_Mail_Storage_Pop3YF 9Zend_Mail_Storage_MboxYE ?Zend_Mail_Storage_MaildirYD 9Zend_Mail_Storage_ImapYC =Zend_Mail_Storage_FolderY"B GZend_Mail_Storage_Folder_MboxY%A MZend_Mail_Storage_Folder_MaildirY @ CZend_Mail_Storage_ExceptionY? AZend_Mail_Storage_AbstractY> ;Zend_Mail_Protocol_SmtpY'= QZend_Mail_Protocol_Smtp_Auth_PlainY'< QZend_Mail_Protocol_Smtp_Auth_LoginY); UZend_Mail_Protocol_Smtp_Auth_Crammd5Y: ;Zend_Mail_Protocol_Pop3Y9 ;Zend_Mail_Protocol_ImapY!8 EZend_Mail_Protocol_ExceptionY 7 CZend_Mail_Protocol_AbstractY6 )Zend_Mail_PartY5 3Zend_Mail_Part_FileY4 /Zend_Mail_MessageY3 9Zend_Mail_Message_FileY2 3Zend_Mail_ExceptionY1 Zend_LogY0 9Zend_Log_Writer_StreamY/ 5Zend_Log_Writer_NullY. 5Zend_Log_Writer_MockY- ;Zend_Log_Writer_FirebugY, 1Zend_Log_Writer_DbY+ =Zend_Log_Writer_AbstractY* 9Zend_Log_Formatter_XmlY) ?Zend_Log_Formatter_SimpleY( =Zend_Log_Filter_SuppressY' =Zend_Log_Filter_PriorityY& ;Zend_Log_Filter_MessageY% 1Zend_Log_ExceptionY$ #Zend_LocaleY# -Zend_Locale_MathY" =Zend_Locale_Math_PhpMathY! AZend_Locale_Math_ExceptionY  1Zend_Locale_FormatY 7Zend_Locale_ExceptionY -Zend_Locale_DataY! EZend_Locale_Data_TranslationY #Zend_LoaderY =Zend_Loader_PluginLoaderY' QZend_Loader_PluginLoader_ExceptionY 7Zend_Loader_ExceptionY Zend_LdapY 3Zend_Ldap_ExceptionY #Zend_LayoutY 7Zend_Layout_ExceptionY) UZend_Layout_Controller_Plugin_LayoutY0 cZend_Layout_Controller_Action_Helper_LayoutY Zend_JsonY -Zend_Json_ServerY 5Zend_Json_Server_SmdY! EZend_Json_Server_Smd_ServiceY ?Zend_Json_Server_ResponseY# IZend_Json_Server_Response_HttpY =Zend_Json_Server_RequestY" GZend_Json_Server_Request_HttpY
 AZend_Json_Server_ExceptionY	 9Zend_Json_Server_ErrorY 3Zend_Json_ExceptionY /Zend_Json_EncoderY /Zend_Json_DecoderY 'Zend_InfoCardY- ]Zend_InfoCard_Xml_SecurityTokenReferenceY AZend_InfoCard_Xml_SecurityY) UZend_InfoCard_Xml_Security_TransformY4 kZend_InfoCard_Xml_Security_Transform_XmlExcC14NY3  iZend_InfoCard_Xml_Security_Transform_ExceptionY< {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignatureY)~ UZend_InfoCard_Xml_Security_ExceptionY} ?Zend_InfoCard_Xml_KeyInfoY&| OZend_InfoCard_Xml_KeyInfo_XmlDSigY&{ OZend_InfoCard_Xml_KeyInfo_DefaultY'z QZend_InfoCard_Xml_KeyInfo_AbstractY y CZend_InfoCard_Xml_ExceptionY#x IZend_InfoCard_Xml_EncryptedKeyY$w KZend_InfoCard_Xml_EncryptedDataY+v YZend_InfoCard_Xml_EncryptedData_XmlEncY-u ]Zend_InfoCard_Xml_EncryptedData_AbstractYt ?Zend_InfoCard_Xml_ElementY s CZend_InfoCard_Xml_AssertionY   j  Y=!uY?+dG)oM0zV5



j
@
						f	K	4	sL,nN5wV0tT3	z[C){Ed&k+                          2P gZend_Pdf_Resource_Font_Simple_Standard_SymbolY<O {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueYAN Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliqueY9M uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldY5L mZend_Pdf_Resource_Font_Simple_Standard_HelveticaY:K wZend_Pdf_Resource_Font_Simple_Standard_CourierObliqueY>J Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliqueY7I qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldY3H iZend_Pdf_Resource_Font_Simple_Standard_CourierY)G UZend_Pdf_Resource_Font_Simple_ParsedY2F gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypeY*E WZend_Pdf_Resource_Font_FontDescriptorY%D MZend_Pdf_Resource_Font_ExtractedY#C IZend_Pdf_Resource_Font_CidFontY,B [Zend_Pdf_Resource_Font_CidFont_TrueTypeYA /Zend_Pdf_PhpArrayY@ +Zend_Pdf_ParserY? 9Zend_Pdf_Parser_StreamY> 'Zend_Pdf_PageY= )Zend_Pdf_ImageY< 'Zend_Pdf_FontY ; CZend_Pdf_Filter_CompressionY$: KZend_Pdf_Filter_Compression_LzwY&9 OZend_Pdf_Filter_Compression_FlateY8 =Zend_Pdf_Filter_AsciiHexY7 ;Zend_Pdf_Filter_Ascii85Y"6 GZend_Pdf_FileParserDataSourceY)5 UZend_Pdf_FileParserDataSource_StringY'4 QZend_Pdf_FileParserDataSource_FileY3 3Zend_Pdf_FileParserY2 ?Zend_Pdf_FileParser_ImageY"1 GZend_Pdf_FileParser_Image_PngY0 =Zend_Pdf_FileParser_FontY&/ OZend_Pdf_FileParser_Font_OpenTypeY/. aZend_Pdf_FileParser_Font_OpenType_TrueTypeY- 1Zend_Pdf_ExceptionY, ;Zend_Pdf_ElementFactoryY"+ GZend_Pdf_ElementFactory_ProxyY* -Zend_Pdf_ElementY) ;Zend_Pdf_Element_StringY#( IZend_Pdf_Element_String_BinaryY' ;Zend_Pdf_Element_StreamY& AZend_Pdf_Element_ReferenceY%% MZend_Pdf_Element_Reference_TableY'$ QZend_Pdf_Element_Reference_ContextY# ;Zend_Pdf_Element_ObjectY#" IZend_Pdf_Element_Object_StreamY! =Zend_Pdf_Element_NumericY  7Zend_Pdf_Element_NullY 7Zend_Pdf_Element_NameY  CZend_Pdf_Element_DictionaryY =Zend_Pdf_Element_BooleanY 9Zend_Pdf_Element_ArrayY )Zend_Pdf_ColorY 1Zend_Pdf_Color_RgbY 3Zend_Pdf_Color_HtmlY =Zend_Pdf_Color_GrayScaleY 3Zend_Pdf_Color_CmykY 'Zend_Pdf_CmapY AZend_Pdf_Cmap_TrimmedTableY! EZend_Pdf_Cmap_SegmentToDeltaY AZend_Pdf_Cmap_ByteEncodingY& OZend_Pdf_Cmap_ByteEncoding_StaticY )Zend_PaginatorY* WZend_Paginator_ScrollingStyle_SlidingY* WZend_Paginator_ScrollingStyle_JumpingY* WZend_Paginator_ScrollingStyle_ElasticY& OZend_Paginator_ScrollingStyle_AllY =Zend_Paginator_ExceptionY  CZend_Paginator_Adapter_NullY$
 KZend_Paginator_Adapter_IteratorY)	 UZend_Paginator_Adapter_DbTableSelectY$ KZend_Paginator_Adapter_DbSelectY! EZend_Paginator_Adapter_ArrayY #Zend_OpenIdY 5Zend_OpenId_ProviderY ?Zend_OpenId_Provider_UserY& OZend_OpenId_Provider_User_SessionY! EZend_OpenId_Provider_StorageY& OZend_OpenId_Provider_Storage_FileY  7Zend_OpenId_ExtensionY AZend_OpenId_Extension_SregY~ 7Zend_OpenId_ExceptionY} 5Zend_OpenId_ConsumerY!| EZend_OpenId_Consumer_StorageY&{ OZend_OpenId_Consumer_Storage_FileYz Zend_MimeYy )Zend_Mime_PartYx /Zend_Mime_MessageYw 3Zend_Mime_ExceptionYv -Zend_Mime_DecodeYu #Zend_MemoryYt /Zend_Memory_ValueYs 3Zend_Memory_ManagerYr 7Zend_Memory_ExceptionYq 7Zend_Memory_ContainerY"p GZend_Memory_Container_MovableY!o EZend_Memory_Container_LockedY!n EZend_Memory_AccessControllerYm 3Zend_Measure_WeightYl 3Zend_Measure_VolumeY%k MZend_Measure_Viscosity_KinematicY#j IZend_Measure_Viscosity_DynamicYi 3Zend_Measure_TorqueYh /Zend_Measure_TimeYg =Zend_Measure_TemperatureY   V  M]>oQ:oO6v=


j
1			t	G	j0 mN)e6g=f6rC[%n@                                 3& iZend_Search_Lucene_Search_QueryParserExceptionY1% eZend_Search_Lucene_Search_QueryParserContextY*$ WZend_Search_Lucene_Search_QueryParserY)# UZend_Search_Lucene_Search_QueryLexerY'" QZend_Search_Lucene_Search_QueryHitY)! UZend_Search_Lucene_Search_QueryEntryY.  _Zend_Search_Lucene_Search_QueryEntry_TermY2 gZend_Search_Lucene_Search_QueryEntry_SubqueryY0 cZend_Search_Lucene_Search_QueryEntry_PhraseY$ KZend_Search_Lucene_Search_QueryY- ]Zend_Search_Lucene_Search_Query_WildcardY) UZend_Search_Lucene_Search_Query_TermY* WZend_Search_Lucene_Search_Query_RangeY+ YZend_Search_Lucene_Search_Query_PhraseY. _Zend_Search_Lucene_Search_Query_MultiTermY2 gZend_Search_Lucene_Search_Query_InsignificantY* WZend_Search_Lucene_Search_Query_FuzzyY* WZend_Search_Lucene_Search_Query_EmptyY, [Zend_Search_Lucene_Search_Query_BooleanY: wZend_Search_Lucene_Search_BooleanExpressionRecognizerY =Zend_Search_Lucene_ProxyY% MZend_Search_Lucene_PriorityQueueY# IZend_Search_Lucene_LockManagerY$ KZend_Search_Lucene_Index_WriterY& OZend_Search_Lucene_Index_TermInfoY" GZend_Search_Lucene_Index_TermY+ YZend_Search_Lucene_Index_SegmentWriterY8 sZend_Search_Lucene_Index_SegmentWriter_StreamWriterY:
 wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterY+	 YZend_Search_Lucene_Index_SegmentMergerY6 oZend_Search_Lucene_Index_SegmentInfoPriorityQueueY) UZend_Search_Lucene_Index_SegmentInfoY' QZend_Search_Lucene_Index_FieldInfoY. _Zend_Search_Lucene_Index_DictionaryLoaderY! EZend_Search_Lucene_FSMActionY 9Zend_Search_Lucene_FSMY =Zend_Search_Lucene_FieldY! EZend_Search_Lucene_ExceptionY   CZend_Search_Lucene_DocumentY% MZend_Search_Lucene_Document_HtmlY,~ [Zend_Search_Lucene_Analysis_TokenFilterY6} oZend_Search_Lucene_Analysis_TokenFilter_StopWordsY7| qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsY:{ wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8Y6z oZend_Search_Lucene_Analysis_TokenFilter_LowerCaseY&y OZend_Search_Lucene_Analysis_TokenY)x UZend_Search_Lucene_Analysis_AnalyzerY0w cZend_Search_Lucene_Analysis_Analyzer_CommonY8v sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumYIu Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitiveY5t mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8YFs Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitiveY8r sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumYIq Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitiveY5p mZend_Search_Lucene_Analysis_Analyzer_Common_TextYFo Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiveYn 7Zend_Search_ExceptionYm -Zend_Rest_ServerYl AZend_Rest_Server_ExceptionYk 3Zend_Rest_ExceptionYj -Zend_Rest_ClientYi ;Zend_Rest_Client_ResultYh AZend_Rest_Client_ExceptionYg 'Zend_RegistryYf Zend_PdfY!e EZend_Pdf_UpdateInfoContainerYd -Zend_Pdf_TrailerYc ;Zend_Pdf_Trailer_KeeperYb AZend_Pdf_Trailer_GeneratorYa )Zend_Pdf_StyleY` 7Zend_Pdf_StringParserY_ /Zend_Pdf_ResourceY#^ IZend_Pdf_Resource_ImageFactoryY] ;Zend_Pdf_Resource_ImageY!\ EZend_Pdf_Resource_Image_TiffY [ CZend_Pdf_Resource_Image_PngY!Z EZend_Pdf_Resource_Image_JpegYY 9Zend_Pdf_Resource_FontY!X EZend_Pdf_Resource_Font_Type0Y"W GZend_Pdf_Resource_Font_SimpleY+V YZend_Pdf_Resource_Font_Simple_StandardY8U sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsY6T oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanY7S qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicY;R yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicY5Q mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldY   a  q@WhM0kE!gJ"




^
<
					d	;	eB ~W9oO*^3nN)nB"o=[1           , [Zend_Service_Technorati_SearchResultSetY) UZend_Service_Technorati_SearchResultY& OZend_Service_Technorati_ResultSetY# IZend_Service_Technorati_ResultY* WZend_Service_Technorati_KeyInfoResultY* WZend_Service_Technorati_GetInfoResultY& OZend_Service_Technorati_ExceptionY1  eZend_Service_Technorati_DailyCountsResultSetY. _Zend_Service_Technorati_DailyCountsResultY,~ [Zend_Service_Technorati_CosmosResultSetY)} UZend_Service_Technorati_CosmosResultY+| YZend_Service_Technorati_BlogInfoResultY#{ IZend_Service_Technorati_AuthorYz ;Zend_Service_StrikeIronY(y SZend_Service_StrikeIron_ZipCodeInfoY2x gZend_Service_StrikeIron_USAddressVerificationY-w ]Zend_Service_StrikeIron_SalesUseTaxBasicY&v OZend_Service_StrikeIron_ExceptionY&u OZend_Service_StrikeIron_DecoratorY!t EZend_Service_StrikeIron_BaseYs ;Zend_Service_SlideShareY&r OZend_Service_SlideShare_SlideShowY&q OZend_Service_SlideShare_ExceptionYp 1Zend_Service_SimpyY$o KZend_Service_Simpy_WatchlistSetY*n WZend_Service_Simpy_WatchlistFilterSetY'm QZend_Service_Simpy_WatchlistFilterY!l EZend_Service_Simpy_WatchlistYk ?Zend_Service_Simpy_TagSetYj 9Zend_Service_Simpy_TagYi AZend_Service_Simpy_NoteSetYh ;Zend_Service_Simpy_NoteYg AZend_Service_Simpy_LinkSetY!f EZend_Service_Simpy_LinkQueryYe ;Zend_Service_Simpy_LinkYd 9Zend_Service_ReCaptchaY$c KZend_Service_ReCaptcha_ResponseY$b KZend_Service_ReCaptcha_MailHideY.a _Zend_Service_ReCaptcha_MailHide_ExceptionY%` MZend_Service_ReCaptcha_ExceptionY_ 7Zend_Service_NirvanixY#^ IZend_Service_Nirvanix_ResponseY)] UZend_Service_Nirvanix_Namespace_ImfsY)\ UZend_Service_Nirvanix_Namespace_BaseY$[ KZend_Service_Nirvanix_ExceptionYZ 3Zend_Service_FlickrY"Y GZend_Service_Flickr_ResultSetYX AZend_Service_Flickr_ResultYW ?Zend_Service_Flickr_ImageYV 9Zend_Service_ExceptionYU 9Zend_Service_DeliciousY&T OZend_Service_Delicious_SimplePostY$S KZend_Service_Delicious_PostListY R CZend_Service_Delicious_PostY%Q MZend_Service_Delicious_ExceptionY P CZend_Service_AudioscrobblerYO 3Zend_Service_AmazonY'N QZend_Service_Amazon_SimilarProductY"M GZend_Service_Amazon_ResultSetYL ?Zend_Service_Amazon_QueryY!K EZend_Service_Amazon_OfferSetYJ ?Zend_Service_Amazon_OfferY&I OZend_Service_Amazon_ListmaniaListYH =Zend_Service_Amazon_ItemYG ?Zend_Service_Amazon_ImageY(F SZend_Service_Amazon_EditorialReviewY'E QZend_Service_Amazon_CustomerReviewY$D KZend_Service_Amazon_AccessoriesYC 5Zend_Service_AkismetYB 7Zend_Service_AbstractYA 9Zend_Server_ReflectionY'@ QZend_Server_Reflection_ReturnValueY%? MZend_Server_Reflection_PrototypeY%> MZend_Server_Reflection_ParameterY = CZend_Server_Reflection_NodeY"< GZend_Server_Reflection_MethodY$; KZend_Server_Reflection_FunctionY-: ]Zend_Server_Reflection_Function_AbstractY%9 MZend_Server_Reflection_ExceptionY!8 EZend_Server_Reflection_ClassY7 7Zend_Server_ExceptionY6 5Zend_Server_AbstractY5 1Zend_Search_LuceneY$4 KZend_Search_Lucene_Storage_FileY+3 YZend_Search_Lucene_Storage_File_MemoryY/2 aZend_Search_Lucene_Storage_File_FilesystemY)1 UZend_Search_Lucene_Storage_DirectoryY40 kZend_Search_Lucene_Storage_Directory_FilesystemY%/ MZend_Search_Lucene_Search_WeightY*. WZend_Search_Lucene_Search_Weight_TermY,- [Zend_Search_Lucene_Search_Weight_PhraseY/, aZend_Search_Lucene_Search_Weight_MultiTermY++ YZend_Search_Lucene_Search_Weight_EmptyY-* ]Zend_Search_Lucene_Search_Weight_BooleanY)) UZend_Search_Lucene_Search_SimilarityY1( eZend_Search_Lucene_Search_Similarity_DefaultY)' UZend_Search_Lucene_Search_QueryTokenY   o  ~P*qEvLb:oG




d
K
(
					b	3	eL,zS0~_>'jG)tS'kC yW=qO-         v ;Zend_Validate_IdenticalYu 9Zend_Validate_HostnameYt ?Zend_Validate_Hostname_SeYs ?Zend_Validate_Hostname_NoYr ?Zend_Validate_Hostname_LiYq ?Zend_Validate_Hostname_HuYp ?Zend_Validate_Hostname_FiYo ?Zend_Validate_Hostname_DeYn ?Zend_Validate_Hostname_ChYm ?Zend_Validate_Hostname_AtYl /Zend_Validate_HexYk ?Zend_Validate_GreaterThanYj 3Zend_Validate_FloatYi ?Zend_Validate_File_UploadYh ;Zend_Validate_File_SizeY!g EZend_Validate_File_NotExistsY f CZend_Validate_File_MimeTypeYe AZend_Validate_File_IsImageY$d KZend_Validate_File_IsCompressedY!c EZend_Validate_File_ImageSizeY!b EZend_Validate_File_FilesSizeY!a EZend_Validate_File_ExtensionY` ?Zend_Validate_File_ExistsY'_ QZend_Validate_File_ExcludeMimeTypeY(^ SZend_Validate_File_ExcludeExtensionY] =Zend_Validate_File_CountY\ ;Zend_Validate_ExceptionY[ AZend_Validate_EmailAddressYZ 5Zend_Validate_DigitsYY 1Zend_Validate_DateYX 3Zend_Validate_CcnumYW 7Zend_Validate_BetweenYV 7Zend_Validate_BarcodeYU AZend_Validate_Barcode_UpcAY T CZend_Validate_Barcode_Ean13YS 3Zend_Validate_AlphaYR 3Zend_Validate_AlnumYQ 9Zend_Validate_AbstractYP Zend_UriYO 'Zend_Uri_HttpYN 1Zend_Uri_ExceptionYM )Zend_TranslateYL =Zend_Translate_ExceptionYK 9Zend_Translate_AdapterY!J EZend_Translate_Adapter_XmlTmY!I EZend_Translate_Adapter_XliffYH AZend_Translate_Adapter_TmxYG AZend_Translate_Adapter_TbxYF ?Zend_Translate_Adapter_QtYE AZend_Translate_Adapter_IniY#D IZend_Translate_Adapter_GettextYC AZend_Translate_Adapter_CsvY!B EZend_Translate_Adapter_ArrayYA 'Zend_TimeSyncY@ 1Zend_TimeSync_SntpY? 9Zend_TimeSync_ProtocolY> /Zend_TimeSync_NtpY= ;Zend_TimeSync_ExceptionY< -Zend_Text_FigletY; AZend_Text_Figlet_ExceptionY: 3Zend_Text_ExceptionY)9 UZend_Test_PHPUnit_ControllerTestCaseY08 cZend_Test_PHPUnit_Constraint_ResponseHeaderY*7 WZend_Test_PHPUnit_Constraint_RedirectY+6 YZend_Test_PHPUnit_Constraint_ExceptionY*5 WZend_Test_PHPUnit_Constraint_DomQueryY4 )Zend_Soap_WsdlY3 7Zend_Soap_Wsdl_ParserY!2 EZend_Soap_Wsdl_Parser_ResultY!1 EZend_Soap_Wsdl_CodeGeneratorY0 -Zend_Soap_ServerY/ AZend_Soap_Server_ExceptionY. -Zend_Soap_ClientY- 9Zend_Soap_Client_LocalY, AZend_Soap_Client_ExceptionY+ ;Zend_Soap_Client_DotNetY* ;Zend_Soap_Client_CommonY) 9Zend_Soap_AutoDiscoverY( %Zend_SessionY)' UZend_Session_Validator_HttpUserAgentY$& KZend_Session_Validator_AbstractY'% QZend_Session_SaveHandler_ExceptionY%$ MZend_Session_SaveHandler_DbTableY# 9Zend_Session_NamespaceY" 9Zend_Session_ExceptionY! 7Zend_Session_AbstractY  1Zend_Service_YahooY$ KZend_Service_Yahoo_WebResultSetY! EZend_Service_Yahoo_WebResultY& OZend_Service_Yahoo_VideoResultSetY# IZend_Service_Yahoo_VideoResultY! EZend_Service_Yahoo_ResultSetY ?Zend_Service_Yahoo_ResultY) UZend_Service_Yahoo_PageDataResultSetY& OZend_Service_Yahoo_PageDataResultY% MZend_Service_Yahoo_NewsResultSetY" GZend_Service_Yahoo_NewsResultY& OZend_Service_Yahoo_LocalResultSetY# IZend_Service_Yahoo_LocalResultY+ YZend_Service_Yahoo_InlinkDataResultSetY( SZend_Service_Yahoo_InlinkDataResultY& OZend_Service_Yahoo_ImageResultSetY# IZend_Service_Yahoo_ImageResultY =Zend_Service_Yahoo_ImageY ;Zend_Service_TechnoratiY# IZend_Service_Technorati_WeblogY" GZend_Service_Technorati_UtilsY* WZend_Service_Technorati_TagsResultSetY'
 QZend_Service_Technorati_TagsResultY)	 UZend_Service_Technorati_TagResultSetY& OZend_Service_Technorati_TagResultY   n qU2iH&uS/vS0~\8




d
B
					a	@	pA	fI0uP&P)wU8uS.eD#	veJ/                                  %d MZend_Amf_Parse_Amf0_DeserializerZc 1Zend_Amf_ExceptionZb 1Zend_Amf_ConstantsZa Zend_AclZ` 'Zend_Acl_RoleZ_ 9Zend_Acl_Role_RegistryZ%^ MZend_Acl_Role_Registry_ExceptionZ] /Zend_Acl_ResourceZ\ 1Zend_Acl_ExceptionZ[ /Zend_XmlRpc_ValueYZ =Zend_XmlRpc_Value_StructYY =Zend_XmlRpc_Value_StringYX =Zend_XmlRpc_Value_ScalarYW 7Zend_XmlRpc_Value_NilYV ?Zend_XmlRpc_Value_IntegerY U CZend_XmlRpc_Value_ExceptionYT =Zend_XmlRpc_Value_DoubleYS AZend_XmlRpc_Value_DateTimeY!R EZend_XmlRpc_Value_CollectionYQ ?Zend_XmlRpc_Value_BooleanYP =Zend_XmlRpc_Value_Base64YO ;Zend_XmlRpc_Value_ArrayYN 1Zend_XmlRpc_ServerYM =Zend_XmlRpc_Server_FaultY!L EZend_XmlRpc_Server_ExceptionYK =Zend_XmlRpc_Server_CacheYJ 5Zend_XmlRpc_ResponseYI ?Zend_XmlRpc_Response_HttpYH 3Zend_XmlRpc_RequestYG ?Zend_XmlRpc_Request_StdinYF =Zend_XmlRpc_Request_HttpYE /Zend_XmlRpc_FaultYD 7Zend_XmlRpc_ExceptionYC 1Zend_XmlRpc_ClientY#B IZend_XmlRpc_Client_ServerProxyY+A YZend_XmlRpc_Client_ServerIntrospectionY+@ YZend_XmlRpc_Client_IntrospectExceptionY%? MZend_XmlRpc_Client_HttpExceptionY&> OZend_XmlRpc_Client_FaultExceptionY!= EZend_XmlRpc_Client_ExceptionY&< OZend_Wildfire_Protocol_JsonStreamY!; EZend_Wildfire_Plugin_FirePhpY.: _Zend_Wildfire_Plugin_FirePhp_TableMessageY)9 UZend_Wildfire_Plugin_FirePhp_MessageY8 ;Zend_Wildfire_ExceptionY&7 OZend_Wildfire_Channel_HttpHeadersY6 Zend_ViewY5 -Zend_View_StreamY4 5Zend_View_Helper_UrlY3 AZend_View_Helper_TranslateY)2 UZend_View_Helper_RenderToPlaceholderY!1 EZend_View_Helper_PlaceholderY*0 WZend_View_Helper_Placeholder_RegistryY4/ kZend_View_Helper_Placeholder_Registry_ExceptionY+. YZend_View_Helper_Placeholder_ContainerY6- oZend_View_Helper_Placeholder_Container_StandaloneY5, mZend_View_Helper_Placeholder_Container_ExceptionY4+ kZend_View_Helper_Placeholder_Container_AbstractY!* EZend_View_Helper_PartialLoopY) =Zend_View_Helper_PartialY'( QZend_View_Helper_Partial_ExceptionY'' QZend_View_Helper_PaginationControlY& ;Zend_View_Helper_LayoutY% 7Zend_View_Helper_JsonY"$ GZend_View_Helper_InlineScriptY## IZend_View_Helper_HtmlQuicktimeY" ?Zend_View_Helper_HtmlPageY ! CZend_View_Helper_HtmlObjectY  ?Zend_View_Helper_HtmlListY AZend_View_Helper_HtmlFlashY! EZend_View_Helper_HtmlElementY AZend_View_Helper_HeadTitleY AZend_View_Helper_HeadStyleY  CZend_View_Helper_HeadScriptY ?Zend_View_Helper_HeadMetaY ?Zend_View_Helper_HeadLinkY" GZend_View_Helper_FormTextareaY ?Zend_View_Helper_FormTextY  CZend_View_Helper_FormSubmitY  CZend_View_Helper_FormSelectY AZend_View_Helper_FormResetY AZend_View_Helper_FormRadioY" GZend_View_Helper_FormPasswordY ?Zend_View_Helper_FormNoteY' QZend_View_Helper_FormMultiCheckboxY AZend_View_Helper_FormLabelY AZend_View_Helper_FormImageY  CZend_View_Helper_FormHiddenY ?Zend_View_Helper_FormFileY  CZend_View_Helper_FormErrorsY!
 EZend_View_Helper_FormElementY"	 GZend_View_Helper_FormCheckboxY  CZend_View_Helper_FormButtonY 7Zend_View_Helper_FormY ?Zend_View_Helper_FieldsetY =Zend_View_Helper_DoctypeY! EZend_View_Helper_DeclareVarsY ;Zend_View_Helper_ActionY ?Zend_View_Helper_AbstractY 3Zend_View_ExceptionY  1Zend_View_AbstractY %Zend_VersionY~ 'Zend_ValidateY} AZend_Validate_StringLengthY| 3Zend_Validate_RegexY{ 9Zend_Validate_NotEmptyYz 9Zend_Validate_LessThanYy -Zend_Validate_IpYx /Zend_Validate_IntYw 7Zend_Validate_InArrayY   c [8sDqI!xW4rN2



j
M
(
				]	#a6 nN$zQ0V+Z9T0oL/
m?                                                       7 qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interface[+ YZend_InfoCard_Cipher_Pki_Rsa_Interface[' QZend_InfoCard_Cipher_Pki_Interface[$
 KZend_InfoCard_Adapter_Interface['	 QZend_Http_Client_Adapter_Interface[ AZend_Gdata_App_MediaSource[" GZend_Form_Decorator_Interface[ 7Zend_Filter_Interface[  CZend_Feed_Builder_Interface[  CZend_Db_Statement_Interface[+ YZend_Controller_Router_Route_Interface[% MZend_Controller_Router_Interface[) UZend_Controller_Dispatcher_Interface[  5Zend_Captcha_Adapter[! EZend_Cache_Backend_Interface[)~ UZend_Cache_Backend_ExtendedInterface[ } CZend_Auth_Storage_Interface[ | CZend_Auth_Adapter_Interface[.{ _Zend_Auth_Adapter_Http_Resolver_Interface[z ;Zend_Acl_Role_Interface[ y CZend_Acl_Resource_Interface[x ?Zend_Acl_Assert_Interface[#w IZend_Wildfire_Plugin_InterfaceZ$v KZend_Wildfire_Channel_InterfaceZu 3Zend_View_InterfaceZt AZend_View_Helper_InterfaceZs ;Zend_Validate_InterfaceZ%r MZend_Validate_Hostname_InterfaceZ(q SZend_Text_Table_Decorator_InterfaceZ&p OZend_Soap_Wsdl_Strategy_InterfaceZ%o MZend_Session_Validator_InterfaceZ'n QZend_Session_SaveHandler_InterfaceZm 7Zend_Server_InterfaceZ!l EZend_Search_Lucene_InterfaceZk 9Zend_Request_InterfaceZj ?Zend_Pdf_Filter_InterfaceZ&i OZend_Pdf_ElementFactory_InterfaceZ,h [Zend_Paginator_ScrollingStyle_InterfaceZ%g MZend_Paginator_Adapter_InterfaceZ$f KZend_Memory_Container_InterfaceZ)e UZend_Mail_Storage_Writable_InterfaceZ'd QZend_Mail_Storage_Folder_InterfaceZc =Zend_Mail_Part_InterfaceZ b CZend_Mail_Message_InterfaceZ!a EZend_Log_Formatter_InterfaceZ` ?Zend_Log_Filter_InterfaceZ'_ QZend_Loader_PluginLoader_InterfaceZ3^ iZend_InfoCard_Xml_Security_Transform_InterfaceZ(] SZend_InfoCard_Xml_KeyInfo_InterfaceZ(\ SZend_InfoCard_Xml_Element_InterfaceZ*[ WZend_InfoCard_Xml_Assertion_InterfaceZ-Z ]Zend_InfoCard_Cipher_Symmetric_InterfaceZ7Y qZend_InfoCard_Cipher_Symmetric_Aes256cbc_InterfaceZ7X qZend_InfoCard_Cipher_Symmetric_Aes128cbc_InterfaceZ+W YZend_InfoCard_Cipher_Pki_Rsa_InterfaceZ'V QZend_InfoCard_Cipher_Pki_InterfaceZ$U KZend_InfoCard_Adapter_InterfaceZ'T QZend_Http_Client_Adapter_InterfaceZS AZend_Gdata_App_MediaSourceZ"R GZend_Form_Decorator_InterfaceZQ 7Zend_Filter_InterfaceZ P CZend_Feed_Builder_InterfaceZ O CZend_Db_Statement_InterfaceZ+N YZend_Controller_Router_Route_InterfaceZ%M MZend_Controller_Router_InterfaceZ)L UZend_Controller_Dispatcher_InterfaceZK 5Zend_Captcha_AdapterZ!J EZend_Cache_Backend_InterfaceZ)I UZend_Cache_Backend_ExtendedInterfaceZ H CZend_Auth_Storage_InterfaceZ G CZend_Auth_Adapter_InterfaceZ.F _Zend_Auth_Adapter_Http_Resolver_InterfaceZE ;Zend_Acl_Role_InterfaceZ D CZend_Acl_Resource_InterfaceZC ?Zend_Acl_Assert_InterfaceZ#B IZend_Wildfire_Plugin_InterfaceY$A KZend_Wildfire_Channel_InterfaceY@ 3Zend_View_InterfaceY? AZend_View_Helper_InterfaceY> ;Zend_Validate_InterfaceY%= MZend_Validate_Hostname_InterfaceY%< MZend_Session_Validator_InterfaceY'; QZend_Session_SaveHandler_InterfaceY: 7Zend_Server_InterfaceY!9 EZend_Search_Lucene_InterfaceY8 9Zend_Request_InterfaceY7 ?Zend_Pdf_Filter_InterfaceY&6 OZend_Pdf_ElementFactory_InterfaceY,5 [Zend_Paginator_ScrollingStyle_InterfaceY%4 MZend_Paginator_Adapter_InterfaceY$3 KZend_Memory_Container_InterfaceY)2 UZend_Mail_Storage_Writable_InterfaceY'1 QZend_Mail_Storage_Folder_InterfaceY0 =Zend_Mail_Part_InterfaceY / CZend_Mail_Message_InterfaceY!. EZend_Log_Formatter_InterfaceY- ?Zend_Log_Filter_InterfaceY', QZend_Loader_PluginLoader_InterfaceY3+ iZend_InfoCard_Xml_Security_Transform_InterfaceY   i  eBjH0s?`>{X9




u
c
D
$					v	N	3	sR?%|^F%z^5f/[* gH[0
a<               #M IZend_Controller_Request_SimpleZ)L UZend_Controller_Request_HttpTestCaseZ!K EZend_Controller_Request_HttpZ&J OZend_Controller_Request_ExceptionZ&I OZend_Controller_Request_Apache404Z%H MZend_Controller_Request_AbstractZ(G SZend_Controller_Plugin_ErrorHandlerZ"F GZend_Controller_Plugin_BrokerZ'E QZend_Controller_Plugin_ActionStackZ$D KZend_Controller_Plugin_AbstractZC 7Zend_Controller_FrontZB ?Zend_Controller_ExceptionZ(A SZend_Controller_Dispatcher_StandardZ)@ UZend_Controller_Dispatcher_ExceptionZ(? SZend_Controller_Dispatcher_AbstractZ> 9Zend_Controller_ActionZ(= SZend_Controller_Action_HelperBrokerZ6< oZend_Controller_Action_HelperBroker_PriorityStackZ/; aZend_Controller_Action_Helper_ViewRendererZ&: OZend_Controller_Action_Helper_UrlZ-9 ]Zend_Controller_Action_Helper_RedirectorZ'8 QZend_Controller_Action_Helper_JsonZ17 eZend_Controller_Action_Helper_FlashMessengerZ06 cZend_Controller_Action_Helper_ContextSwitchZ<5 {Zend_Controller_Action_Helper_AutoCompleteScriptaculousZ34 iZend_Controller_Action_Helper_AutoCompleteDojoZ83 sZend_Controller_Action_Helper_AutoComplete_AbstractZ.2 _Zend_Controller_Action_Helper_AjaxContextZ.1 _Zend_Controller_Action_Helper_ActionStackZ+0 YZend_Controller_Action_Helper_AbstractZ%/ MZend_Controller_Action_ExceptionZ. 3Zend_Console_GetoptZ"- GZend_Console_Getopt_ExceptionZ, #Zend_ConfigZ+ +Zend_Config_XmlZ* 1Zend_Config_WriterZ) 9Zend_Config_Writer_XmlZ( 9Zend_Config_Writer_IniZ' =Zend_Config_Writer_ArrayZ& +Zend_Config_IniZ% 7Zend_Config_ExceptionZ$ /Zend_Captcha_WordZ# 9Zend_Captcha_ReCaptchaZ" 1Zend_Captcha_ImageZ! 3Zend_Captcha_FigletZ  9Zend_Captcha_ExceptionZ /Zend_Captcha_DumbZ /Zend_Captcha_BaseZ !Zend_CacheZ =Zend_Cache_Frontend_PageZ AZend_Cache_Frontend_OutputZ! EZend_Cache_Frontend_FunctionZ =Zend_Cache_Frontend_FileZ ?Zend_Cache_Frontend_ClassZ 5Zend_Cache_ExceptionZ +Zend_Cache_CoreZ 1Zend_Cache_BackendZ$ KZend_Cache_Backend_ZendPlatformZ ?Zend_Cache_Backend_XcacheZ! EZend_Cache_Backend_TwoLevelsZ ;Zend_Cache_Backend_TestZ ?Zend_Cache_Backend_SqliteZ! EZend_Cache_Backend_MemcachedZ ;Zend_Cache_Backend_FileZ 9Zend_Cache_Backend_ApcZ Zend_AuthZ ?Zend_Auth_Storage_SessionZ$
 KZend_Auth_Storage_NonPersistentZ 	 CZend_Auth_Storage_ExceptionZ -Zend_Auth_ResultZ 3Zend_Auth_ExceptionZ =Zend_Auth_Adapter_OpenIdZ 9Zend_Auth_Adapter_LdapZ AZend_Auth_Adapter_InfoCardZ 9Zend_Auth_Adapter_HttpZ) UZend_Auth_Adapter_Http_Resolver_FileZ. _Zend_Auth_Adapter_Http_Resolver_ExceptionZ   CZend_Auth_Adapter_ExceptionZ =Zend_Auth_Adapter_DigestZ~ ?Zend_Auth_Adapter_DbTableZ} ?Zend_Amf_Value_TraitsInfoZ-| ]Zend_Amf_Value_Messaging_RemotingMessageZ*{ WZend_Amf_Value_Messaging_ErrorMessageZ,z [Zend_Amf_Value_Messaging_CommandMessageZ*y WZend_Amf_Value_Messaging_AsyncMessageZ0x cZend_Amf_Value_Messaging_AcknowledgeMessageZ-w ]Zend_Amf_Value_Messaging_AbstractMessageZ!v EZend_Amf_Value_MessageHeaderZu AZend_Amf_Value_MessageBodyZt =Zend_Amf_Value_ByteArrayZs AZend_Amf_Util_BinaryStreamZr +Zend_Amf_ServerZq ?Zend_Amf_Server_ExceptionZp /Zend_Amf_ResponseZo 9Zend_Amf_Response_HttpZn -Zend_Amf_RequestZm 7Zend_Amf_Request_HttpZl ?Zend_Amf_Parse_TypeLoaderZk ?Zend_Amf_Parse_SerializerZ j CZend_Amf_Parse_OutputStreamZi AZend_Amf_Parse_InputStreamZ h CZend_Amf_Parse_DeserializerZ#g IZend_Amf_Parse_Amf3_SerializerZ%f MZend_Amf_Parse_Amf3_DeserializerZ#e IZend_Amf_Parse_Amf0_SerializerZ   i  `2
a3kU<lC$oO-




w
T
3
					}	Y	.	gH(z]6yJc3c;l=Y3\.                               6 )Zend_Dojo_FormZ5 9Zend_Dojo_Form_SubFormZ*4 WZend_Dojo_Form_Element_VerticalSliderZ-3 ]Zend_Dojo_Form_Element_ValidationTextBoxZ'2 QZend_Dojo_Form_Element_TimeTextBoxZ#1 IZend_Dojo_Form_Element_TextBoxZ$0 KZend_Dojo_Form_Element_TextareaZ(/ SZend_Dojo_Form_Element_SubmitButtonZ". GZend_Dojo_Form_Element_SliderZ'- QZend_Dojo_Form_Element_RadioButtonZ+, YZend_Dojo_Form_Element_PasswordTextBoxZ)+ UZend_Dojo_Form_Element_NumberTextBoxZ)* UZend_Dojo_Form_Element_NumberSpinnerZ,) [Zend_Dojo_Form_Element_HorizontalSliderZ+( YZend_Dojo_Form_Element_FilteringSelectZ"' GZend_Dojo_Form_Element_EditorZ&& OZend_Dojo_Form_Element_DijitMultiZ!% EZend_Dojo_Form_Element_DijitZ'$ QZend_Dojo_Form_Element_DateTextBoxZ+# YZend_Dojo_Form_Element_CurrencyTextBoxZ$" KZend_Dojo_Form_Element_ComboBoxZ$! KZend_Dojo_Form_Element_CheckBoxZ"  GZend_Dojo_Form_Element_ButtonZ  CZend_Dojo_Form_DisplayGroupZ* WZend_Dojo_Form_Decorator_TabContainerZ, [Zend_Dojo_Form_Decorator_StackContainerZ, [Zend_Dojo_Form_Decorator_SplitContainerZ' QZend_Dojo_Form_Decorator_DijitFormZ* WZend_Dojo_Form_Decorator_DijitElementZ, [Zend_Dojo_Form_Decorator_DijitContainerZ) UZend_Dojo_Form_Decorator_ContentPaneZ- ]Zend_Dojo_Form_Decorator_BorderContainerZ+ YZend_Dojo_Form_Decorator_AccordionPaneZ0 cZend_Dojo_Form_Decorator_AccordionContainerZ 3Zend_Dojo_ExceptionZ )Zend_Dojo_DataZ !Zend_DebugZ Zend_DbZ 'Zend_Db_TableZ 5Zend_Db_Table_SelectZ# IZend_Db_Table_Select_ExceptionZ 5Zend_Db_Table_RowsetZ# IZend_Db_Table_Rowset_ExceptionZ" GZend_Db_Table_Rowset_AbstractZ
 /Zend_Db_Table_RowZ 	 CZend_Db_Table_Row_ExceptionZ AZend_Db_Table_Row_AbstractZ ;Zend_Db_Table_ExceptionZ 9Zend_Db_Table_AbstractZ /Zend_Db_StatementZ 7Zend_Db_Statement_PdoZ ?Zend_Db_Statement_Pdo_IbmZ =Zend_Db_Statement_OracleZ' QZend_Db_Statement_Oracle_ExceptionZ  =Zend_Db_Statement_MysqliZ' QZend_Db_Statement_Mysqli_ExceptionZ ~ CZend_Db_Statement_ExceptionZ} 7Zend_Db_Statement_Db2Z$| KZend_Db_Statement_Db2_ExceptionZ{ )Zend_Db_SelectZz =Zend_Db_Select_ExceptionZy -Zend_Db_ProfilerZx 9Zend_Db_Profiler_QueryZw =Zend_Db_Profiler_FirebugZv AZend_Db_Profiler_ExceptionZu %Zend_Db_ExprZt /Zend_Db_ExceptionZs AZend_Db_Adapter_Pdo_SqliteZr ?Zend_Db_Adapter_Pdo_PgsqlZq ;Zend_Db_Adapter_Pdo_OciZp ?Zend_Db_Adapter_Pdo_MysqlZo ?Zend_Db_Adapter_Pdo_MssqlZn ;Zend_Db_Adapter_Pdo_IbmZ m CZend_Db_Adapter_Pdo_Ibm_IdsZ l CZend_Db_Adapter_Pdo_Ibm_Db2Z!k EZend_Db_Adapter_Pdo_AbstractZj 9Zend_Db_Adapter_OracleZ%i MZend_Db_Adapter_Oracle_ExceptionZh 9Zend_Db_Adapter_MysqliZ%g MZend_Db_Adapter_Mysqli_ExceptionZf ?Zend_Db_Adapter_ExceptionZe 3Zend_Db_Adapter_Db2Z"d GZend_Db_Adapter_Db2_ExceptionZc =Zend_Db_Adapter_AbstractZb Zend_DateZa 3Zend_Date_ExceptionZ` 5Zend_Date_DateObjectZ_ -Zend_Date_CitiesZ^ 'Zend_CurrencyZ] ;Zend_Currency_ExceptionZ!\ EZend_Controller_Router_RouteZ([ SZend_Controller_Router_Route_StaticZ'Z QZend_Controller_Router_Route_RegexZ(Y SZend_Controller_Router_Route_ModuleZ*X WZend_Controller_Router_Route_HostnameZ'W QZend_Controller_Router_Route_ChainZ*V WZend_Controller_Router_Route_AbstractZ#U IZend_Controller_Router_RewriteZ%T MZend_Controller_Router_ExceptionZ$S KZend_Controller_Router_AbstractZ*R WZend_Controller_Response_HttpTestCaseZ"Q GZend_Controller_Response_HttpZ'P QZend_Controller_Response_ExceptionZ!O EZend_Controller_Response_CliZ&N OZend_Controller_Response_AbstractZ   j  T/_;kHi<g@




f
E
'
						[	:	 	zh<hP2s[;{R$yMo@,mE"lE!                                      ?Zend_Form_Decorator_ImageZ  CZend_Form_Decorator_HtmlTagZ# IZend_Form_Decorator_FormErrorsZ% MZend_Form_Decorator_FormElementsZ =Zend_Form_Decorator_FormZ =Zend_Form_Decorator_FileZ! EZend_Form_Decorator_FieldsetZ" GZend_Form_Decorator_ExceptionZ AZend_Form_Decorator_ErrorsZ$ KZend_Form_Decorator_DtDdWrapperZ$ KZend_Form_Decorator_DescriptionZ  CZend_Form_Decorator_CaptchaZ% MZend_Form_Decorator_Captcha_WordZ! EZend_Form_Decorator_CallbackZ! EZend_Form_Decorator_AbstractZ #Zend_FilterZ+ YZend_Filter_Word_UnderscoreToSeparatorZ& OZend_Filter_Word_UnderscoreToDashZ+ YZend_Filter_Word_UnderscoreToCamelCaseZ* WZend_Filter_Word_SeparatorToSeparatorZ% MZend_Filter_Word_SeparatorToDashZ* WZend_Filter_Word_SeparatorToCamelCaseZ(
 SZend_Filter_Word_Separator_AbstractZ&	 OZend_Filter_Word_DashToUnderscoreZ% MZend_Filter_Word_DashToSeparatorZ% MZend_Filter_Word_DashToCamelCaseZ+ YZend_Filter_Word_CamelCaseToUnderscoreZ* WZend_Filter_Word_CamelCaseToSeparatorZ% MZend_Filter_Word_CamelCaseToDashZ 7Zend_Filter_StripTagsZ ?Zend_Filter_StripNewlinesZ 9Zend_Filter_StringTrimZ  ?Zend_Filter_StringToUpperZ ?Zend_Filter_StringToLowerZ~ 5Zend_Filter_RealPathZ} ;Zend_Filter_PregReplaceZ| +Zend_Filter_IntZ{ /Zend_Filter_InputZz 7Zend_Filter_InflectorZy =Zend_Filter_HtmlEntitiesZx AZend_Filter_File_UpperCaseZw ;Zend_Filter_File_RenameZv AZend_Filter_File_LowerCaseZu 7Zend_Filter_ExceptionZt +Zend_Filter_DirZs 1Zend_Filter_DigitsZr 5Zend_Filter_BaseNameZq /Zend_Filter_AlphaZp /Zend_Filter_AlnumZo 1Zend_File_TransferZ!n EZend_File_Transfer_ExceptionZ$m KZend_File_Transfer_Adapter_HttpZ(l SZend_File_Transfer_Adapter_AbstractZk Zend_FeedZj 'Zend_Feed_RssZi 3Zend_Feed_ExceptionZh 3Zend_Feed_Entry_RssZg 5Zend_Feed_Entry_AtomZf =Zend_Feed_Entry_AbstractZe /Zend_Feed_ElementZd /Zend_Feed_BuilderZc =Zend_Feed_Builder_HeaderZ$b KZend_Feed_Builder_Header_ItunesZ a CZend_Feed_Builder_ExceptionZ` ;Zend_Feed_Builder_EntryZ_ )Zend_Feed_AtomZ^ 1Zend_Feed_AbstractZ] )Zend_ExceptionZ\ )Zend_Dom_QueryZ[ 7Zend_Dom_Query_ResultZZ =Zend_Dom_Query_Css2XpathZY 1Zend_Dom_ExceptionZX Zend_DojoZ)W UZend_Dojo_View_Helper_VerticalSliderZ,V [Zend_Dojo_View_Helper_ValidationTextBoxZ&U OZend_Dojo_View_Helper_TimeTextBoxZ"T GZend_Dojo_View_Helper_TextBoxZ#S IZend_Dojo_View_Helper_TextareaZ'R QZend_Dojo_View_Helper_TabContainerZ'Q QZend_Dojo_View_Helper_SubmitButtonZ)P UZend_Dojo_View_Helper_StackContainerZ)O UZend_Dojo_View_Helper_SplitContainerZ!N EZend_Dojo_View_Helper_SliderZ)M UZend_Dojo_View_Helper_SimpleTextareaZ&L OZend_Dojo_View_Helper_RadioButtonZ*K WZend_Dojo_View_Helper_PasswordTextBoxZ(J SZend_Dojo_View_Helper_NumberTextBoxZ(I SZend_Dojo_View_Helper_NumberSpinnerZ+H YZend_Dojo_View_Helper_HorizontalSliderZG AZend_Dojo_View_Helper_FormZ*F WZend_Dojo_View_Helper_FilteringSelectZ!E EZend_Dojo_View_Helper_EditorZD AZend_Dojo_View_Helper_DojoZ)C UZend_Dojo_View_Helper_Dojo_ContainerZ)B UZend_Dojo_View_Helper_DijitContainerZ A CZend_Dojo_View_Helper_DijitZ&@ OZend_Dojo_View_Helper_DateTextBoxZ*? WZend_Dojo_View_Helper_CurrencyTextBoxZ&> OZend_Dojo_View_Helper_ContentPaneZ#= IZend_Dojo_View_Helper_ComboBoxZ#< IZend_Dojo_View_Helper_CheckBoxZ!; EZend_Dojo_View_Helper_ButtonZ*: WZend_Dojo_View_Helper_BorderContainerZ(9 SZend_Dojo_View_Helper_AccordionPaneZ-8 ]Zend_Dojo_View_Helper_AccordionContainerZ7 =Zend_Dojo_View_ExceptionZ   e  dE$}\<kJ)
we@a9



i
@
				~	X	2	
e<d=gEMc9kR+S(^-                 ! EZend_Gdata_Calendar_ListFeedZ" GZend_Gdata_Calendar_ListEntryZ- ]Zend_Gdata_Calendar_Extension_WebContentZ+ YZend_Gdata_Calendar_Extension_TimezoneZ9 uZend_Gdata_Calendar_Extension_SendEventNotificationsZ+  YZend_Gdata_Calendar_Extension_SelectedZ+ YZend_Gdata_Calendar_Extension_QuickAddZ'~ QZend_Gdata_Calendar_Extension_LinkZ)} UZend_Gdata_Calendar_Extension_HiddenZ(| SZend_Gdata_Calendar_Extension_ColorZ.{ _Zend_Gdata_Calendar_Extension_AccessLevelZ#z IZend_Gdata_Calendar_EventQueryZ"y GZend_Gdata_Calendar_EventFeedZ#x IZend_Gdata_Calendar_EventEntryZw -Zend_Gdata_BooksZ!v EZend_Gdata_Books_VolumeQueryZ u CZend_Gdata_Books_VolumeFeedZ!t EZend_Gdata_Books_VolumeEntryZ+s YZend_Gdata_Books_Extension_ViewabilityZ-r ]Zend_Gdata_Books_Extension_ThumbnailLinkZ&q OZend_Gdata_Books_Extension_ReviewZ+p YZend_Gdata_Books_Extension_PreviewLinkZ(o SZend_Gdata_Books_Extension_InfoLinkZ-n ]Zend_Gdata_Books_Extension_EmbeddabilityZ)m UZend_Gdata_Books_Extension_BooksLinkZ-l ]Zend_Gdata_Books_Extension_BooksCategoryZ.k _Zend_Gdata_Books_Extension_AnnotationLinkZ$j KZend_Gdata_Books_CollectionFeedZ%i MZend_Gdata_Books_CollectionEntryZh 1Zend_Gdata_AuthSubZg )Zend_Gdata_AppZf 3Zend_Gdata_App_UtilZ#e IZend_Gdata_App_MediaFileSourceZd ?Zend_Gdata_App_MediaEntryZ2c gZend_Gdata_App_LoggingHttpClientAdapterSocketZb AZend_Gdata_App_IOExceptionZ,a [Zend_Gdata_App_InvalidArgumentExceptionZ!` EZend_Gdata_App_HttpExceptionZ$_ KZend_Gdata_App_FeedSourceParentZ#^ IZend_Gdata_App_FeedEntryParentZ] 3Zend_Gdata_App_FeedZ\ =Zend_Gdata_App_ExtensionZ![ EZend_Gdata_App_Extension_UriZ%Z MZend_Gdata_App_Extension_UpdatedZ#Y IZend_Gdata_App_Extension_TitleZ"X GZend_Gdata_App_Extension_TextZ%W MZend_Gdata_App_Extension_SummaryZ&V OZend_Gdata_App_Extension_SubtitleZ$U KZend_Gdata_App_Extension_SourceZ$T KZend_Gdata_App_Extension_RightsZ'S QZend_Gdata_App_Extension_PublishedZ$R KZend_Gdata_App_Extension_PersonZ"Q GZend_Gdata_App_Extension_NameZ"P GZend_Gdata_App_Extension_LogoZ"O GZend_Gdata_App_Extension_LinkZ N CZend_Gdata_App_Extension_IdZ"M GZend_Gdata_App_Extension_IconZ'L QZend_Gdata_App_Extension_GeneratorZ#K IZend_Gdata_App_Extension_EmailZ%J MZend_Gdata_App_Extension_ElementZ#I IZend_Gdata_App_Extension_DraftZ%H MZend_Gdata_App_Extension_ControlZ)G UZend_Gdata_App_Extension_ContributorZ%F MZend_Gdata_App_Extension_ContentZ&E OZend_Gdata_App_Extension_CategoryZ$D KZend_Gdata_App_Extension_AuthorZC =Zend_Gdata_App_ExceptionZB 5Zend_Gdata_App_EntryZ,A [Zend_Gdata_App_CaptchaRequiredExceptionZ#@ IZend_Gdata_App_BaseMediaSourceZ? 3Zend_Gdata_App_BaseZ*> WZend_Gdata_App_BadMethodCallExceptionZ!= EZend_Gdata_App_AuthExceptionZ< Zend_FormZ; /Zend_Form_SubFormZ: 3Zend_Form_ExceptionZ9 /Zend_Form_ElementZ8 ;Zend_Form_Element_XhtmlZ7 AZend_Form_Element_TextareaZ6 9Zend_Form_Element_TextZ5 =Zend_Form_Element_SubmitZ4 =Zend_Form_Element_SelectZ3 ;Zend_Form_Element_ResetZ2 ;Zend_Form_Element_RadioZ1 AZend_Form_Element_PasswordZ"0 GZend_Form_Element_MultiselectZ$/ KZend_Form_Element_MultiCheckboxZ. ;Zend_Form_Element_MultiZ- ;Zend_Form_Element_ImageZ, =Zend_Form_Element_HiddenZ+ 9Zend_Form_Element_HashZ* 9Zend_Form_Element_FileZ ) CZend_Form_Element_ExceptionZ( AZend_Form_Element_CheckboxZ' ?Zend_Form_Element_CaptchaZ& =Zend_Form_Element_ButtonZ% 9Zend_Form_DisplayGroupZ#$ IZend_Form_Decorator_ViewScriptZ## IZend_Form_Decorator_ViewHelperZ(" SZend_Form_Decorator_PrepareElementsZ! ?Zend_Form_Decorator_LabelZ   c  rT<|IY;"X0 d= 



e
<
				N	#V.kDk>qK$sZ;
e?g?#{K                             +h YZend_Gdata_Media_Extension_MediaCreditZ.g _Zend_Gdata_Media_Extension_MediaCopyrightZ,f [Zend_Gdata_Media_Extension_MediaContentZ-e ]Zend_Gdata_Media_Extension_MediaCategoryZd 9Zend_Gdata_Media_EntryZc AZend_Gdata_Kind_EventEntryZb 7Zend_Gdata_HttpClientZa )Zend_Gdata_GeoZ` 3Zend_Gdata_Geo_FeedZ$_ KZend_Gdata_Geo_Extension_GmlPosZ&^ OZend_Gdata_Geo_Extension_GmlPointZ)] UZend_Gdata_Geo_Extension_GeoRssWhereZ\ 5Zend_Gdata_Geo_EntryZ[ -Zend_Gdata_GbaseZ"Z GZend_Gdata_Gbase_SnippetQueryZ!Y EZend_Gdata_Gbase_SnippetFeedZ"X GZend_Gdata_Gbase_SnippetEntryZW 9Zend_Gdata_Gbase_QueryZV AZend_Gdata_Gbase_ItemQueryZU ?Zend_Gdata_Gbase_ItemFeedZT AZend_Gdata_Gbase_ItemEntryZS 7Zend_Gdata_Gbase_FeedZ-R ]Zend_Gdata_Gbase_Extension_BaseAttributeZQ 9Zend_Gdata_Gbase_EntryZP -Zend_Gdata_GappsZO AZend_Gdata_Gapps_UserQueryZN ?Zend_Gdata_Gapps_UserFeedZM AZend_Gdata_Gapps_UserEntryZ&L OZend_Gdata_Gapps_ServiceExceptionZK 9Zend_Gdata_Gapps_QueryZ#J IZend_Gdata_Gapps_NicknameQueryZ"I GZend_Gdata_Gapps_NicknameFeedZ#H IZend_Gdata_Gapps_NicknameEntryZ%G MZend_Gdata_Gapps_Extension_QuotaZ(F SZend_Gdata_Gapps_Extension_NicknameZ$E KZend_Gdata_Gapps_Extension_NameZ%D MZend_Gdata_Gapps_Extension_LoginZ)C UZend_Gdata_Gapps_Extension_EmailListZB 9Zend_Gdata_Gapps_ErrorZ-A ]Zend_Gdata_Gapps_EmailListRecipientQueryZ,@ [Zend_Gdata_Gapps_EmailListRecipientFeedZ-? ]Zend_Gdata_Gapps_EmailListRecipientEntryZ$> KZend_Gdata_Gapps_EmailListQueryZ#= IZend_Gdata_Gapps_EmailListFeedZ$< KZend_Gdata_Gapps_EmailListEntryZ; +Zend_Gdata_FeedZ: 5Zend_Gdata_ExtensionZ9 =Zend_Gdata_Extension_WhoZ8 AZend_Gdata_Extension_WhereZ7 ?Zend_Gdata_Extension_WhenZ$6 KZend_Gdata_Extension_VisibilityZ&5 OZend_Gdata_Extension_TransparencyZ"4 GZend_Gdata_Extension_ReminderZ-3 ]Zend_Gdata_Extension_RecurrenceExceptionZ$2 KZend_Gdata_Extension_RecurrenceZ 1 CZend_Gdata_Extension_RatingZ'0 QZend_Gdata_Extension_OriginalEventZ0/ cZend_Gdata_Extension_OpenSearchTotalResultsZ.. _Zend_Gdata_Extension_OpenSearchStartIndexZ0- cZend_Gdata_Extension_OpenSearchItemsPerPageZ", GZend_Gdata_Extension_FeedLinkZ*+ WZend_Gdata_Extension_ExtendedPropertyZ%* MZend_Gdata_Extension_EventStatusZ#) IZend_Gdata_Extension_EntryLinkZ"( GZend_Gdata_Extension_CommentsZ&' OZend_Gdata_Extension_AttendeeTypeZ(& SZend_Gdata_Extension_AttendeeStatusZ% +Zend_Gdata_ExifZ$ 5Zend_Gdata_Exif_FeedZ## IZend_Gdata_Exif_Extension_TimeZ#" IZend_Gdata_Exif_Extension_TagsZ$! KZend_Gdata_Exif_Extension_ModelZ#  IZend_Gdata_Exif_Extension_MakeZ" GZend_Gdata_Exif_Extension_IsoZ, [Zend_Gdata_Exif_Extension_ImageUniqueIdZ$ KZend_Gdata_Exif_Extension_FStopZ* WZend_Gdata_Exif_Extension_FocalLengthZ$ KZend_Gdata_Exif_Extension_FlashZ' QZend_Gdata_Exif_Extension_ExposureZ' QZend_Gdata_Exif_Extension_DistanceZ 7Zend_Gdata_Exif_EntryZ -Zend_Gdata_EntryZ 7Zend_Gdata_DublinCoreZ* WZend_Gdata_DublinCore_Extension_TitleZ, [Zend_Gdata_DublinCore_Extension_SubjectZ+ YZend_Gdata_DublinCore_Extension_RightsZ. _Zend_Gdata_DublinCore_Extension_PublisherZ- ]Zend_Gdata_DublinCore_Extension_LanguageZ/ aZend_Gdata_DublinCore_Extension_IdentifierZ+ YZend_Gdata_DublinCore_Extension_FormatZ0 cZend_Gdata_DublinCore_Extension_DescriptionZ) UZend_Gdata_DublinCore_Extension_DateZ, [Zend_Gdata_DublinCore_Extension_CreatorZ +Zend_Gdata_DocsZ
 7Zend_Gdata_Docs_QueryZ%	 MZend_Gdata_Docs_DocumentListFeedZ& OZend_Gdata_Docs_DocumentListEntryZ 9Zend_Gdata_ClientLoginZ 3Zend_Gdata_CalendarZ   Z  q@O!|U*xG\3


u
H
				d	6	gCv]3
Po>iBrE_5yN!         *B WZend_Gdata_YouTube_Extension_PositionZ,A [Zend_Gdata_YouTube_Extension_OccupationZ)@ UZend_Gdata_YouTube_Extension_NoEmbedZ'? QZend_Gdata_YouTube_Extension_MusicZ(> SZend_Gdata_YouTube_Extension_MoviesZ,= [Zend_Gdata_YouTube_Extension_MediaGroupZ.< _Zend_Gdata_YouTube_Extension_MediaContentZ*; WZend_Gdata_YouTube_Extension_LocationZ&: OZend_Gdata_YouTube_Extension_LinkZ*9 WZend_Gdata_YouTube_Extension_HometownZ)8 UZend_Gdata_YouTube_Extension_HobbiesZ(7 SZend_Gdata_YouTube_Extension_GenderZ*6 WZend_Gdata_YouTube_Extension_DurationZ-5 ]Zend_Gdata_YouTube_Extension_DescriptionZ)4 UZend_Gdata_YouTube_Extension_ControlZ)3 UZend_Gdata_YouTube_Extension_CompanyZ'2 QZend_Gdata_YouTube_Extension_BooksZ%1 MZend_Gdata_YouTube_Extension_AgeZ#0 IZend_Gdata_YouTube_ContactFeedZ$/ KZend_Gdata_YouTube_ContactEntryZ#. IZend_Gdata_YouTube_CommentFeedZ$- KZend_Gdata_YouTube_CommentEntryZ, ;Zend_Gdata_SpreadsheetsZ*+ WZend_Gdata_Spreadsheets_WorksheetFeedZ+* YZend_Gdata_Spreadsheets_WorksheetEntryZ,) [Zend_Gdata_Spreadsheets_SpreadsheetFeedZ-( ]Zend_Gdata_Spreadsheets_SpreadsheetEntryZ&' OZend_Gdata_Spreadsheets_ListQueryZ%& MZend_Gdata_Spreadsheets_ListFeedZ&% OZend_Gdata_Spreadsheets_ListEntryZ/$ aZend_Gdata_Spreadsheets_Extension_RowCountZ-# ]Zend_Gdata_Spreadsheets_Extension_CustomZ/" aZend_Gdata_Spreadsheets_Extension_ColCountZ+! YZend_Gdata_Spreadsheets_Extension_CellZ*  WZend_Gdata_Spreadsheets_DocumentQueryZ& OZend_Gdata_Spreadsheets_CellQueryZ% MZend_Gdata_Spreadsheets_CellFeedZ& OZend_Gdata_Spreadsheets_CellEntryZ -Zend_Gdata_QueryZ /Zend_Gdata_PhotosZ  CZend_Gdata_Photos_UserQueryZ AZend_Gdata_Photos_UserFeedZ  CZend_Gdata_Photos_UserEntryZ AZend_Gdata_Photos_TagEntryZ! EZend_Gdata_Photos_PhotoQueryZ  CZend_Gdata_Photos_PhotoFeedZ! EZend_Gdata_Photos_PhotoEntryZ& OZend_Gdata_Photos_Extension_WidthZ' QZend_Gdata_Photos_Extension_WeightZ( SZend_Gdata_Photos_Extension_VersionZ% MZend_Gdata_Photos_Extension_UserZ* WZend_Gdata_Photos_Extension_TimestampZ* WZend_Gdata_Photos_Extension_ThumbnailZ% MZend_Gdata_Photos_Extension_SizeZ) UZend_Gdata_Photos_Extension_RotationZ+ YZend_Gdata_Photos_Extension_QuotaLimitZ-
 ]Zend_Gdata_Photos_Extension_QuotaCurrentZ)	 UZend_Gdata_Photos_Extension_PositionZ( SZend_Gdata_Photos_Extension_PhotoIdZ3 iZend_Gdata_Photos_Extension_NumPhotosRemainingZ* WZend_Gdata_Photos_Extension_NumPhotosZ) UZend_Gdata_Photos_Extension_NicknameZ% MZend_Gdata_Photos_Extension_NameZ2 gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumZ) UZend_Gdata_Photos_Extension_LocationZ# IZend_Gdata_Photos_Extension_IdZ'  QZend_Gdata_Photos_Extension_HeightZ2 gZend_Gdata_Photos_Extension_CommentingEnabledZ-~ ]Zend_Gdata_Photos_Extension_CommentCountZ'} QZend_Gdata_Photos_Extension_ClientZ)| UZend_Gdata_Photos_Extension_ChecksumZ*{ WZend_Gdata_Photos_Extension_BytesUsedZ(z SZend_Gdata_Photos_Extension_AlbumIdZ'y QZend_Gdata_Photos_Extension_AccessZ#x IZend_Gdata_Photos_CommentEntryZ!w EZend_Gdata_Photos_AlbumQueryZ v CZend_Gdata_Photos_AlbumFeedZ!u EZend_Gdata_Photos_AlbumEntryZt -Zend_Gdata_MediaZs 7Zend_Gdata_Media_FeedZ*r WZend_Gdata_Media_Extension_MediaTitleZ.q _Zend_Gdata_Media_Extension_MediaThumbnailZ)p UZend_Gdata_Media_Extension_MediaTextZ0o cZend_Gdata_Media_Extension_MediaRestrictionZ+n YZend_Gdata_Media_Extension_MediaRatingZ+m YZend_Gdata_Media_Extension_MediaPlayerZ-l ]Zend_Gdata_Media_Extension_MediaKeywordsZ)k UZend_Gdata_Media_Extension_MediaHashZ*j WZend_Gdata_Media_Extension_MediaGroupZ0i cZend_Gdata_Media_Extension_MediaDescriptionZ   h  {Ie:_2b<!nK2




x
Q
				H	+	xV%X.u>oU; wP.	`B. ]D&_>      * 9Zend_Log_Formatter_XmlZ) ?Zend_Log_Formatter_SimpleZ( =Zend_Log_Filter_SuppressZ' =Zend_Log_Filter_PriorityZ& ;Zend_Log_Filter_MessageZ% 1Zend_Log_ExceptionZ$ #Zend_LocaleZ# -Zend_Locale_MathZ" =Zend_Locale_Math_PhpMathZ! AZend_Locale_Math_ExceptionZ  1Zend_Locale_FormatZ 7Zend_Locale_ExceptionZ -Zend_Locale_DataZ! EZend_Locale_Data_TranslationZ #Zend_LoaderZ =Zend_Loader_PluginLoaderZ' QZend_Loader_PluginLoader_ExceptionZ 7Zend_Loader_ExceptionZ Zend_LdapZ 3Zend_Ldap_ExceptionZ #Zend_LayoutZ 7Zend_Layout_ExceptionZ) UZend_Layout_Controller_Plugin_LayoutZ0 cZend_Layout_Controller_Action_Helper_LayoutZ Zend_JsonZ -Zend_Json_ServerZ 5Zend_Json_Server_SmdZ! EZend_Json_Server_Smd_ServiceZ ?Zend_Json_Server_ResponseZ# IZend_Json_Server_Response_HttpZ =Zend_Json_Server_RequestZ" GZend_Json_Server_Request_HttpZ
 AZend_Json_Server_ExceptionZ	 9Zend_Json_Server_ErrorZ 9Zend_Json_Server_CacheZ 3Zend_Json_ExceptionZ /Zend_Json_EncoderZ /Zend_Json_DecoderZ 'Zend_InfoCardZ- ]Zend_InfoCard_Xml_SecurityTokenReferenceZ AZend_InfoCard_Xml_SecurityZ) UZend_InfoCard_Xml_Security_TransformZ4  kZend_InfoCard_Xml_Security_Transform_XmlExcC14NZ3 iZend_InfoCard_Xml_Security_Transform_ExceptionZ<~ {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignatureZ)} UZend_InfoCard_Xml_Security_ExceptionZ| ?Zend_InfoCard_Xml_KeyInfoZ&{ OZend_InfoCard_Xml_KeyInfo_XmlDSigZ&z OZend_InfoCard_Xml_KeyInfo_DefaultZ'y QZend_InfoCard_Xml_KeyInfo_AbstractZ x CZend_InfoCard_Xml_ExceptionZ#w IZend_InfoCard_Xml_EncryptedKeyZ$v KZend_InfoCard_Xml_EncryptedDataZ+u YZend_InfoCard_Xml_EncryptedData_XmlEncZ-t ]Zend_InfoCard_Xml_EncryptedData_AbstractZs ?Zend_InfoCard_Xml_ElementZ r CZend_InfoCard_Xml_AssertionZ%q MZend_InfoCard_Xml_Assertion_SamlZp ;Zend_InfoCard_ExceptionZ%o MZend_InfoCard_Exception_AbstractZn 5Zend_InfoCard_ClaimsZm 5Zend_InfoCard_CipherZ5l mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcZ5k mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcZ4j kZend_InfoCard_Cipher_Symmetric_Adapter_AbstractZ)i UZend_InfoCard_Cipher_Pki_Adapter_RsaZ.h _Zend_InfoCard_Cipher_Pki_Adapter_AbstractZ#g IZend_InfoCard_Cipher_ExceptionZ$f KZend_InfoCard_Adapter_ExceptionZ"e GZend_InfoCard_Adapter_DefaultZd 1Zend_Http_ResponseZc 3Zend_Http_ExceptionZb 3Zend_Http_CookieJarZa -Zend_Http_CookieZ` -Zend_Http_ClientZ_ AZend_Http_Client_ExceptionZ"^ GZend_Http_Client_Adapter_TestZ$] KZend_Http_Client_Adapter_SocketZ#\ IZend_Http_Client_Adapter_ProxyZ'[ QZend_Http_Client_Adapter_ExceptionZZ !Zend_GdataZY 1Zend_Gdata_YouTubeZ"X GZend_Gdata_YouTube_VideoQueryZ!W EZend_Gdata_YouTube_VideoFeedZ"V GZend_Gdata_YouTube_VideoEntryZ(U SZend_Gdata_YouTube_UserProfileEntryZ(T SZend_Gdata_YouTube_SubscriptionFeedZ)S UZend_Gdata_YouTube_SubscriptionEntryZ)R UZend_Gdata_YouTube_PlaylistVideoFeedZ*Q WZend_Gdata_YouTube_PlaylistVideoEntryZ(P SZend_Gdata_YouTube_PlaylistListFeedZ)O UZend_Gdata_YouTube_PlaylistListEntryZ"N GZend_Gdata_YouTube_MediaEntryZ*M WZend_Gdata_YouTube_Extension_UsernameZ'L QZend_Gdata_YouTube_Extension_TokenZ(K SZend_Gdata_YouTube_Extension_StatusZ,J [Zend_Gdata_YouTube_Extension_StatisticsZ'I QZend_Gdata_YouTube_Extension_StateZ(H SZend_Gdata_YouTube_Extension_SchoolZ-G ]Zend_Gdata_YouTube_Extension_ReleaseDateZ.F _Zend_Gdata_YouTube_Extension_RelationshipZ*E WZend_Gdata_YouTube_Extension_RecordedZ&D OZend_Gdata_YouTube_Extension_RacyZ)C UZend_Gdata_YouTube_Extension_PrivateZ   w jK:iI)c?oP%zhJ(




n
Q
4
						`	>	"	rX<jD&oXF{Q,b5pBhR6cE'                ! =Zend_Pdf_Element_NumericZ  7Zend_Pdf_Element_NullZ 7Zend_Pdf_Element_NameZ  CZend_Pdf_Element_DictionaryZ =Zend_Pdf_Element_BooleanZ 9Zend_Pdf_Element_ArrayZ )Zend_Pdf_ColorZ 1Zend_Pdf_Color_RgbZ 3Zend_Pdf_Color_HtmlZ =Zend_Pdf_Color_GrayScaleZ 3Zend_Pdf_Color_CmykZ 'Zend_Pdf_CmapZ AZend_Pdf_Cmap_TrimmedTableZ! EZend_Pdf_Cmap_SegmentToDeltaZ AZend_Pdf_Cmap_ByteEncodingZ& OZend_Pdf_Cmap_ByteEncoding_StaticZ )Zend_PaginatorZ* WZend_Paginator_ScrollingStyle_SlidingZ* WZend_Paginator_ScrollingStyle_JumpingZ* WZend_Paginator_ScrollingStyle_ElasticZ& OZend_Paginator_ScrollingStyle_AllZ =Zend_Paginator_ExceptionZ  CZend_Paginator_Adapter_NullZ$
 KZend_Paginator_Adapter_IteratorZ)	 UZend_Paginator_Adapter_DbTableSelectZ$ KZend_Paginator_Adapter_DbSelectZ! EZend_Paginator_Adapter_ArrayZ #Zend_OpenIdZ 5Zend_OpenId_ProviderZ ?Zend_OpenId_Provider_UserZ& OZend_OpenId_Provider_User_SessionZ! EZend_OpenId_Provider_StorageZ& OZend_OpenId_Provider_Storage_FileZ  7Zend_OpenId_ExtensionZ AZend_OpenId_Extension_SregZ~ 7Zend_OpenId_ExceptionZ} 5Zend_OpenId_ConsumerZ!| EZend_OpenId_Consumer_StorageZ&{ OZend_OpenId_Consumer_Storage_FileZz Zend_MimeZy )Zend_Mime_PartZx /Zend_Mime_MessageZw 3Zend_Mime_ExceptionZv -Zend_Mime_DecodeZu #Zend_MemoryZt /Zend_Memory_ValueZs 3Zend_Memory_ManagerZr 7Zend_Memory_ExceptionZq 7Zend_Memory_ContainerZ"p GZend_Memory_Container_MovableZ!o EZend_Memory_Container_LockedZ!n EZend_Memory_AccessControllerZm 3Zend_Measure_WeightZl 3Zend_Measure_VolumeZ%k MZend_Measure_Viscosity_KinematicZ#j IZend_Measure_Viscosity_DynamicZi 3Zend_Measure_TorqueZh /Zend_Measure_TimeZg =Zend_Measure_TemperatureZf 1Zend_Measure_SpeedZe 7Zend_Measure_PressureZd 1Zend_Measure_PowerZc 3Zend_Measure_NumberZb 9Zend_Measure_LightnessZa 3Zend_Measure_LengthZ` ?Zend_Measure_IlluminationZ_ 9Zend_Measure_FrequencyZ^ 1Zend_Measure_ForceZ] =Zend_Measure_Flow_VolumeZ\ 9Zend_Measure_Flow_MoleZ[ 9Zend_Measure_Flow_MassZZ 9Zend_Measure_ExceptionZY 3Zend_Measure_EnergyZX 5Zend_Measure_DensityZW 5Zend_Measure_CurrentZ V CZend_Measure_Cooking_WeightZ U CZend_Measure_Cooking_VolumeZT =Zend_Measure_CapacitanceZS 3Zend_Measure_BinaryZR /Zend_Measure_AreaZQ 1Zend_Measure_AngleZP ?Zend_Measure_AccelerationZO 7Zend_Measure_AbstractZN Zend_MailZM =Zend_Mail_Transport_SmtpZ!L EZend_Mail_Transport_SendmailZ"K GZend_Mail_Transport_ExceptionZ!J EZend_Mail_Transport_AbstractZI /Zend_Mail_StorageZ'H QZend_Mail_Storage_Writable_MaildirZG 9Zend_Mail_Storage_Pop3ZF 9Zend_Mail_Storage_MboxZE ?Zend_Mail_Storage_MaildirZD 9Zend_Mail_Storage_ImapZC =Zend_Mail_Storage_FolderZ"B GZend_Mail_Storage_Folder_MboxZ%A MZend_Mail_Storage_Folder_MaildirZ @ CZend_Mail_Storage_ExceptionZ? AZend_Mail_Storage_AbstractZ> ;Zend_Mail_Protocol_SmtpZ'= QZend_Mail_Protocol_Smtp_Auth_PlainZ'< QZend_Mail_Protocol_Smtp_Auth_LoginZ); UZend_Mail_Protocol_Smtp_Auth_Crammd5Z: ;Zend_Mail_Protocol_Pop3Z9 ;Zend_Mail_Protocol_ImapZ!8 EZend_Mail_Protocol_ExceptionZ 7 CZend_Mail_Protocol_AbstractZ6 )Zend_Mail_PartZ5 3Zend_Mail_Part_FileZ4 /Zend_Mail_MessageZ3 9Zend_Mail_Message_FileZ2 3Zend_Mail_ExceptionZ1 Zend_LogZ0 9Zend_Log_Writer_StreamZ/ 5Zend_Log_Writer_NullZ. 5Zend_Log_Writer_MockZ- ;Zend_Log_Writer_FirebugZ, 1Zend_Log_Writer_DbZ+ =Zend_Log_Writer_AbstractZ   ^  eB"|a.T'nJ4_6


n
3			z	=I
Y*wR2y`;*eB)qN5G;         0 cZend_Search_Lucene_Analysis_Analyzer_CommonZ8~ sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumZI} Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitiveZ5| mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8ZF{ Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitiveZ8z sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumZIy Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitiveZ5x mZend_Search_Lucene_Analysis_Analyzer_Common_TextZFw Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiveZv 7Zend_Search_ExceptionZu -Zend_Rest_ServerZt AZend_Rest_Server_ExceptionZs 3Zend_Rest_ExceptionZr -Zend_Rest_ClientZq ;Zend_Rest_Client_ResultZ&p OZend_Rest_Client_Result_ExceptionZo AZend_Rest_Client_ExceptionZn 'Zend_RegistryZm -Zend_ProgressBarZl AZend_ProgressBar_ExceptionZk =Zend_ProgressBar_AdapterZ$j KZend_ProgressBar_Adapter_JsPushZ$i KZend_ProgressBar_Adapter_JsPullZ'h QZend_ProgressBar_Adapter_ExceptionZ%g MZend_ProgressBar_Adapter_ConsoleZf Zend_PdfZ!e EZend_Pdf_UpdateInfoContainerZd -Zend_Pdf_TrailerZc ;Zend_Pdf_Trailer_KeeperZb AZend_Pdf_Trailer_GeneratorZa )Zend_Pdf_StyleZ` 7Zend_Pdf_StringParserZ_ /Zend_Pdf_ResourceZ#^ IZend_Pdf_Resource_ImageFactoryZ] ;Zend_Pdf_Resource_ImageZ!\ EZend_Pdf_Resource_Image_TiffZ [ CZend_Pdf_Resource_Image_PngZ!Z EZend_Pdf_Resource_Image_JpegZY 9Zend_Pdf_Resource_FontZ!X EZend_Pdf_Resource_Font_Type0Z"W GZend_Pdf_Resource_Font_SimpleZ+V YZend_Pdf_Resource_Font_Simple_StandardZ8U sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsZ6T oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanZ7S qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicZ;R yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicZ5Q mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldZ2P gZend_Pdf_Resource_Font_Simple_Standard_SymbolZ<O {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueZAN Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliqueZ9M uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldZ5L mZend_Pdf_Resource_Font_Simple_Standard_HelveticaZ:K wZend_Pdf_Resource_Font_Simple_Standard_CourierObliqueZ>J Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliqueZ7I qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldZ3H iZend_Pdf_Resource_Font_Simple_Standard_CourierZ)G UZend_Pdf_Resource_Font_Simple_ParsedZ2F gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypeZ*E WZend_Pdf_Resource_Font_FontDescriptorZ%D MZend_Pdf_Resource_Font_ExtractedZ#C IZend_Pdf_Resource_Font_CidFontZ,B [Zend_Pdf_Resource_Font_CidFont_TrueTypeZA /Zend_Pdf_PhpArrayZ@ +Zend_Pdf_ParserZ? 9Zend_Pdf_Parser_StreamZ> 'Zend_Pdf_PageZ= )Zend_Pdf_ImageZ< 'Zend_Pdf_FontZ ; CZend_Pdf_Filter_CompressionZ$: KZend_Pdf_Filter_Compression_LzwZ&9 OZend_Pdf_Filter_Compression_FlateZ8 =Zend_Pdf_Filter_AsciiHexZ7 ;Zend_Pdf_Filter_Ascii85Z"6 GZend_Pdf_FileParserDataSourceZ)5 UZend_Pdf_FileParserDataSource_StringZ'4 QZend_Pdf_FileParserDataSource_FileZ3 3Zend_Pdf_FileParserZ2 ?Zend_Pdf_FileParser_ImageZ"1 GZend_Pdf_FileParser_Image_PngZ0 =Zend_Pdf_FileParser_FontZ&/ OZend_Pdf_FileParser_Font_OpenTypeZ/. aZend_Pdf_FileParser_Font_OpenType_TrueTypeZ- 1Zend_Pdf_ExceptionZ, ;Zend_Pdf_ElementFactoryZ"+ GZend_Pdf_ElementFactory_ProxyZ* -Zend_Pdf_ElementZ) ;Zend_Pdf_Element_StringZ#( IZend_Pdf_Element_String_BinaryZ' ;Zend_Pdf_Element_StreamZ& AZend_Pdf_Element_ReferenceZ%% MZend_Pdf_Element_Reference_TableZ'$ QZend_Pdf_Element_Reference_ContextZ# ;Zend_Pdf_Element_ObjectZ#" IZend_Pdf_Element_Object_StreamZ   X  o1c:sR3XuF 



~
]
				]	+pHT'`+k;LfBS+dE'
                                           $W KZend_Service_Amazon_AccessoriesZV 5Zend_Service_AkismetZU 7Zend_Service_AbstractZT 9Zend_Server_ReflectionZ'S QZend_Server_Reflection_ReturnValueZ%R MZend_Server_Reflection_PrototypeZ%Q MZend_Server_Reflection_ParameterZ P CZend_Server_Reflection_NodeZ"O GZend_Server_Reflection_MethodZ$N KZend_Server_Reflection_FunctionZ-M ]Zend_Server_Reflection_Function_AbstractZ%L MZend_Server_Reflection_ExceptionZ!K EZend_Server_Reflection_ClassZ!J EZend_Server_Method_PrototypeZ!I EZend_Server_Method_ParameterZ"H GZend_Server_Method_DefinitionZ G CZend_Server_Method_CallbackZF 7Zend_Server_ExceptionZE 9Zend_Server_DefinitionZD /Zend_Server_CacheZC 5Zend_Server_AbstractZB 1Zend_Search_LuceneZ$A KZend_Search_Lucene_Storage_FileZ+@ YZend_Search_Lucene_Storage_File_MemoryZ/? aZend_Search_Lucene_Storage_File_FilesystemZ)> UZend_Search_Lucene_Storage_DirectoryZ4= kZend_Search_Lucene_Storage_Directory_FilesystemZ%< MZend_Search_Lucene_Search_WeightZ*; WZend_Search_Lucene_Search_Weight_TermZ,: [Zend_Search_Lucene_Search_Weight_PhraseZ/9 aZend_Search_Lucene_Search_Weight_MultiTermZ+8 YZend_Search_Lucene_Search_Weight_EmptyZ-7 ]Zend_Search_Lucene_Search_Weight_BooleanZ)6 UZend_Search_Lucene_Search_SimilarityZ15 eZend_Search_Lucene_Search_Similarity_DefaultZ)4 UZend_Search_Lucene_Search_QueryTokenZ33 iZend_Search_Lucene_Search_QueryParserExceptionZ12 eZend_Search_Lucene_Search_QueryParserContextZ*1 WZend_Search_Lucene_Search_QueryParserZ)0 UZend_Search_Lucene_Search_QueryLexerZ'/ QZend_Search_Lucene_Search_QueryHitZ). UZend_Search_Lucene_Search_QueryEntryZ.- _Zend_Search_Lucene_Search_QueryEntry_TermZ2, gZend_Search_Lucene_Search_QueryEntry_SubqueryZ0+ cZend_Search_Lucene_Search_QueryEntry_PhraseZ$* KZend_Search_Lucene_Search_QueryZ-) ]Zend_Search_Lucene_Search_Query_WildcardZ)( UZend_Search_Lucene_Search_Query_TermZ*' WZend_Search_Lucene_Search_Query_RangeZ+& YZend_Search_Lucene_Search_Query_PhraseZ.% _Zend_Search_Lucene_Search_Query_MultiTermZ2$ gZend_Search_Lucene_Search_Query_InsignificantZ*# WZend_Search_Lucene_Search_Query_FuzzyZ*" WZend_Search_Lucene_Search_Query_EmptyZ,! [Zend_Search_Lucene_Search_Query_BooleanZ:  wZend_Search_Lucene_Search_BooleanExpressionRecognizerZ =Zend_Search_Lucene_ProxyZ% MZend_Search_Lucene_PriorityQueueZ# IZend_Search_Lucene_LockManagerZ$ KZend_Search_Lucene_Index_WriterZ& OZend_Search_Lucene_Index_TermInfoZ" GZend_Search_Lucene_Index_TermZ+ YZend_Search_Lucene_Index_SegmentWriterZ8 sZend_Search_Lucene_Index_SegmentWriter_StreamWriterZ: wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterZ+ YZend_Search_Lucene_Index_SegmentMergerZ6 oZend_Search_Lucene_Index_SegmentInfoPriorityQueueZ) UZend_Search_Lucene_Index_SegmentInfoZ' QZend_Search_Lucene_Index_FieldInfoZ( SZend_Search_Lucene_Index_DocsFilterZ. _Zend_Search_Lucene_Index_DictionaryLoaderZ! EZend_Search_Lucene_FSMActionZ 9Zend_Search_Lucene_FSMZ =Zend_Search_Lucene_FieldZ! EZend_Search_Lucene_ExceptionZ  CZend_Search_Lucene_DocumentZ% MZend_Search_Lucene_Document_XlsxZ%
 MZend_Search_Lucene_Document_PptxZ(	 SZend_Search_Lucene_Document_OpenXmlZ% MZend_Search_Lucene_Document_HtmlZ% MZend_Search_Lucene_Document_DocxZ, [Zend_Search_Lucene_Analysis_TokenFilterZ6 oZend_Search_Lucene_Analysis_TokenFilter_StopWordsZ7 qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsZ: wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8Z6 oZend_Search_Lucene_Analysis_TokenFilter_LowerCaseZ& OZend_Search_Lucene_Analysis_TokenZ)  UZend_Search_Lucene_Analysis_AnalyzerZ   c  f<fBeC \5lM-




a
<
				v	L	,	L  }M`9[0nJ-`9iG"iK,                       %: MZend_Session_SaveHandler_DbTableZ9 9Zend_Session_NamespaceZ8 9Zend_Session_ExceptionZ7 7Zend_Session_AbstractZ6 1Zend_Service_YahooZ$5 KZend_Service_Yahoo_WebResultSetZ!4 EZend_Service_Yahoo_WebResultZ&3 OZend_Service_Yahoo_VideoResultSetZ#2 IZend_Service_Yahoo_VideoResultZ!1 EZend_Service_Yahoo_ResultSetZ0 ?Zend_Service_Yahoo_ResultZ)/ UZend_Service_Yahoo_PageDataResultSetZ&. OZend_Service_Yahoo_PageDataResultZ%- MZend_Service_Yahoo_NewsResultSetZ", GZend_Service_Yahoo_NewsResultZ&+ OZend_Service_Yahoo_LocalResultSetZ#* IZend_Service_Yahoo_LocalResultZ+) YZend_Service_Yahoo_InlinkDataResultSetZ(( SZend_Service_Yahoo_InlinkDataResultZ&' OZend_Service_Yahoo_ImageResultSetZ#& IZend_Service_Yahoo_ImageResultZ% =Zend_Service_Yahoo_ImageZ$ 5Zend_Service_TwitterZ # CZend_Service_Twitter_SearchZ#" IZend_Service_Twitter_ExceptionZ! ;Zend_Service_TechnoratiZ#  IZend_Service_Technorati_WeblogZ" GZend_Service_Technorati_UtilsZ* WZend_Service_Technorati_TagsResultSetZ' QZend_Service_Technorati_TagsResultZ) UZend_Service_Technorati_TagResultSetZ& OZend_Service_Technorati_TagResultZ, [Zend_Service_Technorati_SearchResultSetZ) UZend_Service_Technorati_SearchResultZ& OZend_Service_Technorati_ResultSetZ# IZend_Service_Technorati_ResultZ* WZend_Service_Technorati_KeyInfoResultZ* WZend_Service_Technorati_GetInfoResultZ& OZend_Service_Technorati_ExceptionZ1 eZend_Service_Technorati_DailyCountsResultSetZ. _Zend_Service_Technorati_DailyCountsResultZ, [Zend_Service_Technorati_CosmosResultSetZ) UZend_Service_Technorati_CosmosResultZ+ YZend_Service_Technorati_BlogInfoResultZ# IZend_Service_Technorati_AuthorZ ;Zend_Service_StrikeIronZ( SZend_Service_StrikeIron_ZipCodeInfoZ2 gZend_Service_StrikeIron_USAddressVerificationZ-
 ]Zend_Service_StrikeIron_SalesUseTaxBasicZ&	 OZend_Service_StrikeIron_ExceptionZ& OZend_Service_StrikeIron_DecoratorZ! EZend_Service_StrikeIron_BaseZ ;Zend_Service_SlideShareZ& OZend_Service_SlideShare_SlideShowZ& OZend_Service_SlideShare_ExceptionZ 1Zend_Service_SimpyZ$ KZend_Service_Simpy_WatchlistSetZ* WZend_Service_Simpy_WatchlistFilterSetZ'  QZend_Service_Simpy_WatchlistFilterZ! EZend_Service_Simpy_WatchlistZ~ ?Zend_Service_Simpy_TagSetZ} 9Zend_Service_Simpy_TagZ| AZend_Service_Simpy_NoteSetZ{ ;Zend_Service_Simpy_NoteZz AZend_Service_Simpy_LinkSetZ!y EZend_Service_Simpy_LinkQueryZx ;Zend_Service_Simpy_LinkZw 9Zend_Service_ReCaptchaZ$v KZend_Service_ReCaptcha_ResponseZ$u KZend_Service_ReCaptcha_MailHideZ.t _Zend_Service_ReCaptcha_MailHide_ExceptionZ%s MZend_Service_ReCaptcha_ExceptionZr 7Zend_Service_NirvanixZ#q IZend_Service_Nirvanix_ResponseZ)p UZend_Service_Nirvanix_Namespace_ImfsZ)o UZend_Service_Nirvanix_Namespace_BaseZ$n KZend_Service_Nirvanix_ExceptionZm 3Zend_Service_FlickrZ"l GZend_Service_Flickr_ResultSetZk AZend_Service_Flickr_ResultZj ?Zend_Service_Flickr_ImageZi 9Zend_Service_ExceptionZh 9Zend_Service_DeliciousZ&g OZend_Service_Delicious_SimplePostZ$f KZend_Service_Delicious_PostListZ e CZend_Service_Delicious_PostZ%d MZend_Service_Delicious_ExceptionZ c CZend_Service_AudioscrobblerZb 3Zend_Service_AmazonZ'a QZend_Service_Amazon_SimilarProductZ"` GZend_Service_Amazon_ResultSetZ_ ?Zend_Service_Amazon_QueryZ!^ EZend_Service_Amazon_OfferSetZ] ?Zend_Service_Amazon_OfferZ&\ OZend_Service_Amazon_ListmaniaListZ[ =Zend_Service_Amazon_ItemZZ ?Zend_Service_Amazon_ImageZ(Y SZend_Service_Amazon_EditorialReviewZ'X QZend_Service_Amazon_CustomerReviewZ   s  kB#eL'r?d6}^6




|
]
B
,
				x	U	2	v`O0uY>!pE#lI*cA'}[9hI-
fA                  - ?Zend_View_Helper_FieldsetZ, =Zend_View_Helper_DoctypeZ!+ EZend_View_Helper_DeclareVarsZ* ;Zend_View_Helper_ActionZ) ?Zend_View_Helper_AbstractZ( 3Zend_View_ExceptionZ' 1Zend_View_AbstractZ& %Zend_VersionZ% 'Zend_ValidateZ$ AZend_Validate_StringLengthZ# 3Zend_Validate_RegexZ" 9Zend_Validate_NotEmptyZ! 9Zend_Validate_LessThanZ  -Zend_Validate_IpZ /Zend_Validate_IntZ 7Zend_Validate_InArrayZ ;Zend_Validate_IdenticalZ 9Zend_Validate_HostnameZ ?Zend_Validate_Hostname_SeZ ?Zend_Validate_Hostname_NoZ ?Zend_Validate_Hostname_LiZ ?Zend_Validate_Hostname_HuZ ?Zend_Validate_Hostname_FiZ ?Zend_Validate_Hostname_DeZ ?Zend_Validate_Hostname_ChZ ?Zend_Validate_Hostname_AtZ /Zend_Validate_HexZ ?Zend_Validate_GreaterThanZ 3Zend_Validate_FloatZ ?Zend_Validate_File_UploadZ ;Zend_Validate_File_SizeZ ;Zend_Validate_File_Sha1Z! EZend_Validate_File_NotExistsZ  CZend_Validate_File_MimeTypeZ 9Zend_Validate_File_Md5Z
 AZend_Validate_File_IsImageZ$	 KZend_Validate_File_IsCompressedZ! EZend_Validate_File_ImageSizeZ ;Zend_Validate_File_HashZ! EZend_Validate_File_FilesSizeZ! EZend_Validate_File_ExtensionZ ?Zend_Validate_File_ExistsZ' QZend_Validate_File_ExcludeMimeTypeZ( SZend_Validate_File_ExcludeExtensionZ =Zend_Validate_File_Crc32Z  =Zend_Validate_File_CountZ ;Zend_Validate_ExceptionZ~ AZend_Validate_EmailAddressZ} 5Zend_Validate_DigitsZ| 1Zend_Validate_DateZ{ 3Zend_Validate_CcnumZz 7Zend_Validate_BetweenZy 7Zend_Validate_BarcodeZx AZend_Validate_Barcode_UpcAZ w CZend_Validate_Barcode_Ean13Zv 3Zend_Validate_AlphaZu 3Zend_Validate_AlnumZt 9Zend_Validate_AbstractZs Zend_UriZr 'Zend_Uri_HttpZq 1Zend_Uri_ExceptionZp )Zend_TranslateZo =Zend_Translate_ExceptionZn 9Zend_Translate_AdapterZ!m EZend_Translate_Adapter_XmlTmZ!l EZend_Translate_Adapter_XliffZk AZend_Translate_Adapter_TmxZj AZend_Translate_Adapter_TbxZi ?Zend_Translate_Adapter_QtZh AZend_Translate_Adapter_IniZ#g IZend_Translate_Adapter_GettextZf AZend_Translate_Adapter_CsvZ!e EZend_Translate_Adapter_ArrayZd 'Zend_TimeSyncZc 1Zend_TimeSync_SntpZb 9Zend_TimeSync_ProtocolZa /Zend_TimeSync_NtpZ` ;Zend_TimeSync_ExceptionZ_ +Zend_Text_TableZ^ 3Zend_Text_Table_RowZ] ?Zend_Text_Table_ExceptionZ&\ OZend_Text_Table_Decorator_UnicodeZ$[ KZend_Text_Table_Decorator_AsciiZZ 9Zend_Text_Table_ColumnZY -Zend_Text_FigletZX AZend_Text_Figlet_ExceptionZW 3Zend_Text_ExceptionZ)V UZend_Test_PHPUnit_ControllerTestCaseZ0U cZend_Test_PHPUnit_Constraint_ResponseHeaderZ*T WZend_Test_PHPUnit_Constraint_RedirectZ+S YZend_Test_PHPUnit_Constraint_ExceptionZ*R WZend_Test_PHPUnit_Constraint_DomQueryZQ )Zend_Soap_WsdlZ/P aZend_Soap_Wsdl_Strategy_DefaultComplexTypeZ0O cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequenceZ/N aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplexZ$M KZend_Soap_Wsdl_Strategy_AnyTypeZ%L MZend_Soap_Wsdl_Strategy_AbstractZK 7Zend_Soap_Wsdl_ParserZ!J EZend_Soap_Wsdl_Parser_ResultZI =Zend_Soap_Wsdl_ExceptionZ!H EZend_Soap_Wsdl_CodeGeneratorZG -Zend_Soap_ServerZF AZend_Soap_Server_ExceptionZE -Zend_Soap_ClientZD 9Zend_Soap_Client_LocalZC AZend_Soap_Client_ExceptionZB ;Zend_Soap_Client_DotNetZA ;Zend_Soap_Client_CommonZ@ 9Zend_Soap_AutoDiscoverZ%? MZend_Soap_AutoDiscover_ExceptionZ> %Zend_SessionZ)= UZend_Session_Validator_HttpUserAgentZ$< KZend_Session_Validator_AbstractZ'; QZend_Session_SaveHandler_ExceptionZ   m  sO-	vP-
zX6b>f;



J
				c	@	#	
O* Y*mQ/nN-~\>cD.nG# zaB(              +Zend_Amf_Server[ ?Zend_Amf_Server_Exception[ /Zend_Amf_Response[ 9Zend_Amf_Response_Http[ -Zend_Amf_Request[ 7Zend_Amf_Request_Http[ ?Zend_Amf_Parse_TypeLoader[ ?Zend_Amf_Parse_Serializer[  CZend_Amf_Parse_OutputStream[ AZend_Amf_Parse_InputStream[  CZend_Amf_Parse_Deserializer[# IZend_Amf_Parse_Amf3_Serializer[% MZend_Amf_Parse_Amf3_Deserializer[# IZend_Amf_Parse_Amf0_Serializer[% MZend_Amf_Parse_Amf0_Deserializer[ 1Zend_Amf_Exception[
 1Zend_Amf_Constants[	 Zend_Acl[ 'Zend_Acl_Role[ 9Zend_Acl_Role_Registry[% MZend_Acl_Role_Registry_Exception[ /Zend_Acl_Resource[ 1Zend_Acl_Exception[ /Zend_XmlRpc_ValueZ =Zend_XmlRpc_Value_StructZ =Zend_XmlRpc_Value_StringZ  =Zend_XmlRpc_Value_ScalarZ 7Zend_XmlRpc_Value_NilZ~ ?Zend_XmlRpc_Value_IntegerZ } CZend_XmlRpc_Value_ExceptionZ| =Zend_XmlRpc_Value_DoubleZ{ AZend_XmlRpc_Value_DateTimeZ!z EZend_XmlRpc_Value_CollectionZy ?Zend_XmlRpc_Value_BooleanZx =Zend_XmlRpc_Value_Base64Zw ;Zend_XmlRpc_Value_ArrayZv 1Zend_XmlRpc_ServerZu ?Zend_XmlRpc_Server_SystemZt =Zend_XmlRpc_Server_FaultZ!s EZend_XmlRpc_Server_ExceptionZr =Zend_XmlRpc_Server_CacheZq 5Zend_XmlRpc_ResponseZp ?Zend_XmlRpc_Response_HttpZo 3Zend_XmlRpc_RequestZn ?Zend_XmlRpc_Request_StdinZm =Zend_XmlRpc_Request_HttpZl /Zend_XmlRpc_FaultZk 7Zend_XmlRpc_ExceptionZj 1Zend_XmlRpc_ClientZ#i IZend_XmlRpc_Client_ServerProxyZ+h YZend_XmlRpc_Client_ServerIntrospectionZ+g YZend_XmlRpc_Client_IntrospectExceptionZ%f MZend_XmlRpc_Client_HttpExceptionZ&e OZend_XmlRpc_Client_FaultExceptionZ!d EZend_XmlRpc_Client_ExceptionZ&c OZend_Wildfire_Protocol_JsonStreamZ!b EZend_Wildfire_Plugin_FirePhpZ.a _Zend_Wildfire_Plugin_FirePhp_TableMessageZ)` UZend_Wildfire_Plugin_FirePhp_MessageZ_ ;Zend_Wildfire_ExceptionZ&^ OZend_Wildfire_Channel_HttpHeadersZ] Zend_ViewZ\ -Zend_View_StreamZ[ 5Zend_View_Helper_UrlZZ AZend_View_Helper_TranslateZ)Y UZend_View_Helper_RenderToPlaceholderZ!X EZend_View_Helper_PlaceholderZ*W WZend_View_Helper_Placeholder_RegistryZ4V kZend_View_Helper_Placeholder_Registry_ExceptionZ+U YZend_View_Helper_Placeholder_ContainerZ6T oZend_View_Helper_Placeholder_Container_StandaloneZ5S mZend_View_Helper_Placeholder_Container_ExceptionZ4R kZend_View_Helper_Placeholder_Container_AbstractZ!Q EZend_View_Helper_PartialLoopZP =Zend_View_Helper_PartialZ'O QZend_View_Helper_Partial_ExceptionZ'N QZend_View_Helper_PaginationControlZM ;Zend_View_Helper_LayoutZL 7Zend_View_Helper_JsonZ"K GZend_View_Helper_InlineScriptZ#J IZend_View_Helper_HtmlQuicktimeZI ?Zend_View_Helper_HtmlPageZ H CZend_View_Helper_HtmlObjectZG ?Zend_View_Helper_HtmlListZF AZend_View_Helper_HtmlFlashZ!E EZend_View_Helper_HtmlElementZD AZend_View_Helper_HeadTitleZC AZend_View_Helper_HeadStyleZ B CZend_View_Helper_HeadScriptZA ?Zend_View_Helper_HeadMetaZ@ ?Zend_View_Helper_HeadLinkZ"? GZend_View_Helper_FormTextareaZ> ?Zend_View_Helper_FormTextZ = CZend_View_Helper_FormSubmitZ < CZend_View_Helper_FormSelectZ; AZend_View_Helper_FormResetZ: AZend_View_Helper_FormRadioZ"9 GZend_View_Helper_FormPasswordZ8 ?Zend_View_Helper_FormNoteZ'7 QZend_View_Helper_FormMultiCheckboxZ6 AZend_View_Helper_FormLabelZ5 AZend_View_Helper_FormImageZ 4 CZend_View_Helper_FormHiddenZ3 ?Zend_View_Helper_FormFileZ 2 CZend_View_Helper_FormErrorsZ!1 EZend_View_Helper_FormElementZ"0 GZend_View_Helper_FormCheckboxZ / CZend_View_Helper_FormButtonZ. 7Zend_View_Helper_FormZ   f  tCR0jK(	gE3hF




f
C
"
						f	L	.	pJ.r6V+c7qS+ [1i>rD                        *  WZend_Controller_Router_Route_Hostname[' QZend_Controller_Router_Route_Chain[*~ WZend_Controller_Router_Route_Abstract[#} IZend_Controller_Router_Rewrite[%| MZend_Controller_Router_Exception[${ KZend_Controller_Router_Abstract[*z WZend_Controller_Response_HttpTestCase["y GZend_Controller_Response_Http['x QZend_Controller_Response_Exception[!w EZend_Controller_Response_Cli[&v OZend_Controller_Response_Abstract[#u IZend_Controller_Request_Simple[)t UZend_Controller_Request_HttpTestCase[!s EZend_Controller_Request_Http[&r OZend_Controller_Request_Exception[&q OZend_Controller_Request_Apache404[%p MZend_Controller_Request_Abstract[(o SZend_Controller_Plugin_ErrorHandler["n GZend_Controller_Plugin_Broker['m QZend_Controller_Plugin_ActionStack[$l KZend_Controller_Plugin_Abstract[k 7Zend_Controller_Front[j ?Zend_Controller_Exception[(i SZend_Controller_Dispatcher_Standard[)h UZend_Controller_Dispatcher_Exception[(g SZend_Controller_Dispatcher_Abstract[f 9Zend_Controller_Action[(e SZend_Controller_Action_HelperBroker[6d oZend_Controller_Action_HelperBroker_PriorityStack[/c aZend_Controller_Action_Helper_ViewRenderer[&b OZend_Controller_Action_Helper_Url[-a ]Zend_Controller_Action_Helper_Redirector['` QZend_Controller_Action_Helper_Json[1_ eZend_Controller_Action_Helper_FlashMessenger[0^ cZend_Controller_Action_Helper_ContextSwitch[<] {Zend_Controller_Action_Helper_AutoCompleteScriptaculous[3\ iZend_Controller_Action_Helper_AutoCompleteDojo[8[ sZend_Controller_Action_Helper_AutoComplete_Abstract[.Z _Zend_Controller_Action_Helper_AjaxContext[.Y _Zend_Controller_Action_Helper_ActionStack[+X YZend_Controller_Action_Helper_Abstract[%W MZend_Controller_Action_Exception[V 3Zend_Console_Getopt["U GZend_Console_Getopt_Exception[T #Zend_Config[S +Zend_Config_Xml[R 1Zend_Config_Writer[Q 9Zend_Config_Writer_Xml[P 9Zend_Config_Writer_Ini[O =Zend_Config_Writer_Array[N +Zend_Config_Ini[M 7Zend_Config_Exception[L /Zend_Captcha_Word[K 9Zend_Captcha_ReCaptcha[J 1Zend_Captcha_Image[I 3Zend_Captcha_Figlet[H 9Zend_Captcha_Exception[G /Zend_Captcha_Dumb[F /Zend_Captcha_Base[E !Zend_Cache[D =Zend_Cache_Frontend_Page[C AZend_Cache_Frontend_Output[!B EZend_Cache_Frontend_Function[A =Zend_Cache_Frontend_File[@ ?Zend_Cache_Frontend_Class[? 5Zend_Cache_Exception[> +Zend_Cache_Core[= 1Zend_Cache_Backend[$< KZend_Cache_Backend_ZendPlatform[; ?Zend_Cache_Backend_Xcache[!: EZend_Cache_Backend_TwoLevels[9 ;Zend_Cache_Backend_Test[8 ?Zend_Cache_Backend_Sqlite[!7 EZend_Cache_Backend_Memcached[6 ;Zend_Cache_Backend_File[5 9Zend_Cache_Backend_Apc[4 Zend_Auth[3 ?Zend_Auth_Storage_Session[$2 KZend_Auth_Storage_NonPersistent[ 1 CZend_Auth_Storage_Exception[0 -Zend_Auth_Result[/ 3Zend_Auth_Exception[. =Zend_Auth_Adapter_OpenId[- 9Zend_Auth_Adapter_Ldap[, AZend_Auth_Adapter_InfoCard[+ 9Zend_Auth_Adapter_Http[)* UZend_Auth_Adapter_Http_Resolver_File[.) _Zend_Auth_Adapter_Http_Resolver_Exception[ ( CZend_Auth_Adapter_Exception[' =Zend_Auth_Adapter_Digest[& ?Zend_Auth_Adapter_DbTable[% ?Zend_Amf_Value_TraitsInfo[-$ ]Zend_Amf_Value_Messaging_RemotingMessage[*# WZend_Amf_Value_Messaging_ErrorMessage[," [Zend_Amf_Value_Messaging_CommandMessage[*! WZend_Amf_Value_Messaging_AsyncMessage[0  cZend_Amf_Value_Messaging_AcknowledgeMessage[- ]Zend_Amf_Value_Messaging_AbstractMessage[! EZend_Amf_Value_MessageHeader[ AZend_Amf_Value_MessageBody[ =Zend_Amf_Value_ByteArray[ AZend_Amf_Util_BinaryStream[   i  }X8"	w[9`<sYD! hJ&




l
N
4
					n	G	*	zF[0 ~X0_9
Q& Z)sG|N$                                        i CZend_Dojo_View_Helper_Dijit[&h OZend_Dojo_View_Helper_DateTextBox[*g WZend_Dojo_View_Helper_CurrencyTextBox[&f OZend_Dojo_View_Helper_ContentPane[#e IZend_Dojo_View_Helper_ComboBox[#d IZend_Dojo_View_Helper_CheckBox[!c EZend_Dojo_View_Helper_Button[*b WZend_Dojo_View_Helper_BorderContainer[(a SZend_Dojo_View_Helper_AccordionPane[-` ]Zend_Dojo_View_Helper_AccordionContainer[_ =Zend_Dojo_View_Exception[^ )Zend_Dojo_Form[] 9Zend_Dojo_Form_SubForm[*\ WZend_Dojo_Form_Element_VerticalSlider[-[ ]Zend_Dojo_Form_Element_ValidationTextBox['Z QZend_Dojo_Form_Element_TimeTextBox[#Y IZend_Dojo_Form_Element_TextBox[$X KZend_Dojo_Form_Element_Textarea[(W SZend_Dojo_Form_Element_SubmitButton["V GZend_Dojo_Form_Element_Slider['U QZend_Dojo_Form_Element_RadioButton[+T YZend_Dojo_Form_Element_PasswordTextBox[)S UZend_Dojo_Form_Element_NumberTextBox[)R UZend_Dojo_Form_Element_NumberSpinner[,Q [Zend_Dojo_Form_Element_HorizontalSlider[+P YZend_Dojo_Form_Element_FilteringSelect["O GZend_Dojo_Form_Element_Editor[&N OZend_Dojo_Form_Element_DijitMulti[!M EZend_Dojo_Form_Element_Dijit['L QZend_Dojo_Form_Element_DateTextBox[+K YZend_Dojo_Form_Element_CurrencyTextBox[$J KZend_Dojo_Form_Element_ComboBox[$I KZend_Dojo_Form_Element_CheckBox["H GZend_Dojo_Form_Element_Button[ G CZend_Dojo_Form_DisplayGroup[*F WZend_Dojo_Form_Decorator_TabContainer[,E [Zend_Dojo_Form_Decorator_StackContainer[,D [Zend_Dojo_Form_Decorator_SplitContainer['C QZend_Dojo_Form_Decorator_DijitForm[*B WZend_Dojo_Form_Decorator_DijitElement[,A [Zend_Dojo_Form_Decorator_DijitContainer[)@ UZend_Dojo_Form_Decorator_ContentPane[-? ]Zend_Dojo_Form_Decorator_BorderContainer[+> YZend_Dojo_Form_Decorator_AccordionPane[0= cZend_Dojo_Form_Decorator_AccordionContainer[< 3Zend_Dojo_Exception[; )Zend_Dojo_Data[: !Zend_Debug[9 Zend_Db[8 'Zend_Db_Table[7 5Zend_Db_Table_Select[#6 IZend_Db_Table_Select_Exception[5 5Zend_Db_Table_Rowset[#4 IZend_Db_Table_Rowset_Exception["3 GZend_Db_Table_Rowset_Abstract[2 /Zend_Db_Table_Row[ 1 CZend_Db_Table_Row_Exception[0 AZend_Db_Table_Row_Abstract[/ ;Zend_Db_Table_Exception[. 9Zend_Db_Table_Abstract[- /Zend_Db_Statement[, 7Zend_Db_Statement_Pdo[+ ?Zend_Db_Statement_Pdo_Ibm[* =Zend_Db_Statement_Oracle[') QZend_Db_Statement_Oracle_Exception[( =Zend_Db_Statement_Mysqli['' QZend_Db_Statement_Mysqli_Exception[ & CZend_Db_Statement_Exception[% 7Zend_Db_Statement_Db2[$$ KZend_Db_Statement_Db2_Exception[# )Zend_Db_Select[" =Zend_Db_Select_Exception[! -Zend_Db_Profiler[  9Zend_Db_Profiler_Query[ =Zend_Db_Profiler_Firebug[ AZend_Db_Profiler_Exception[ %Zend_Db_Expr[ /Zend_Db_Exception[ AZend_Db_Adapter_Pdo_Sqlite[ ?Zend_Db_Adapter_Pdo_Pgsql[ ;Zend_Db_Adapter_Pdo_Oci[ ?Zend_Db_Adapter_Pdo_Mysql[ ?Zend_Db_Adapter_Pdo_Mssql[ ;Zend_Db_Adapter_Pdo_Ibm[  CZend_Db_Adapter_Pdo_Ibm_Ids[  CZend_Db_Adapter_Pdo_Ibm_Db2[! EZend_Db_Adapter_Pdo_Abstract[ 9Zend_Db_Adapter_Oracle[% MZend_Db_Adapter_Oracle_Exception[ 9Zend_Db_Adapter_Mysqli[% MZend_Db_Adapter_Mysqli_Exception[ ?Zend_Db_Adapter_Exception[ 3Zend_Db_Adapter_Db2[" GZend_Db_Adapter_Db2_Exception[ =Zend_Db_Adapter_Abstract[
 Zend_Date[	 3Zend_Date_Exception[ 5Zend_Date_DateObject[ -Zend_Date_Cities[ 'Zend_Currency[ ;Zend_Currency_Exception[! EZend_Controller_Router_Route[( SZend_Controller_Router_Route_Static[' QZend_Controller_Router_Route_Regex[( SZend_Controller_Router_Route_Module[   l  ^0X.W,XF+
lH 





q
U
?
-
					e	H	-	pR8  ^@h>^4~Z2
{Z1
vO(	`A                                  U ;Zend_Form_Element_Image[T =Zend_Form_Element_Hidden[S 9Zend_Form_Element_Hash[R 9Zend_Form_Element_File[ Q CZend_Form_Element_Exception[P AZend_Form_Element_Checkbox[O ?Zend_Form_Element_Captcha[N =Zend_Form_Element_Button[M 9Zend_Form_DisplayGroup[#L IZend_Form_Decorator_ViewScript[#K IZend_Form_Decorator_ViewHelper[(J SZend_Form_Decorator_PrepareElements[I ?Zend_Form_Decorator_Label[H ?Zend_Form_Decorator_Image[ G CZend_Form_Decorator_HtmlTag[#F IZend_Form_Decorator_FormErrors[%E MZend_Form_Decorator_FormElements[D =Zend_Form_Decorator_Form[C =Zend_Form_Decorator_File[!B EZend_Form_Decorator_Fieldset["A GZend_Form_Decorator_Exception[@ AZend_Form_Decorator_Errors[$? KZend_Form_Decorator_DtDdWrapper[$> KZend_Form_Decorator_Description[ = CZend_Form_Decorator_Captcha[%< MZend_Form_Decorator_Captcha_Word[!; EZend_Form_Decorator_Callback[!: EZend_Form_Decorator_Abstract[9 #Zend_Filter[+8 YZend_Filter_Word_UnderscoreToSeparator[&7 OZend_Filter_Word_UnderscoreToDash[+6 YZend_Filter_Word_UnderscoreToCamelCase[*5 WZend_Filter_Word_SeparatorToSeparator[%4 MZend_Filter_Word_SeparatorToDash[*3 WZend_Filter_Word_SeparatorToCamelCase[(2 SZend_Filter_Word_Separator_Abstract[&1 OZend_Filter_Word_DashToUnderscore[%0 MZend_Filter_Word_DashToSeparator[%/ MZend_Filter_Word_DashToCamelCase[+. YZend_Filter_Word_CamelCaseToUnderscore[*- WZend_Filter_Word_CamelCaseToSeparator[%, MZend_Filter_Word_CamelCaseToDash[+ 7Zend_Filter_StripTags[* ?Zend_Filter_StripNewlines[) 9Zend_Filter_StringTrim[( ?Zend_Filter_StringToUpper[' ?Zend_Filter_StringToLower[& 5Zend_Filter_RealPath[% ;Zend_Filter_PregReplace[$ +Zend_Filter_Int[# /Zend_Filter_Input[" 7Zend_Filter_Inflector[! =Zend_Filter_HtmlEntities[  AZend_Filter_File_UpperCase[ ;Zend_Filter_File_Rename[ AZend_Filter_File_LowerCase[ 7Zend_Filter_Exception[ +Zend_Filter_Dir[ 1Zend_Filter_Digits[ 5Zend_Filter_BaseName[ /Zend_Filter_Alpha[ /Zend_Filter_Alnum[ 1Zend_File_Transfer[! EZend_File_Transfer_Exception[$ KZend_File_Transfer_Adapter_Http[( SZend_File_Transfer_Adapter_Abstract[ Zend_Feed[ 'Zend_Feed_Rss[ 3Zend_Feed_Exception[ 3Zend_Feed_Entry_Rss[ 5Zend_Feed_Entry_Atom[ =Zend_Feed_Entry_Abstract[ /Zend_Feed_Element[ /Zend_Feed_Builder[ =Zend_Feed_Builder_Header[$
 KZend_Feed_Builder_Header_Itunes[ 	 CZend_Feed_Builder_Exception[ ;Zend_Feed_Builder_Entry[ )Zend_Feed_Atom[ 1Zend_Feed_Abstract[ )Zend_Exception[ )Zend_Dom_Query[ 7Zend_Dom_Query_Result[ =Zend_Dom_Query_Css2Xpath[ 1Zend_Dom_Exception[  Zend_Dojo[) UZend_Dojo_View_Helper_VerticalSlider[,~ [Zend_Dojo_View_Helper_ValidationTextBox[&} OZend_Dojo_View_Helper_TimeTextBox["| GZend_Dojo_View_Helper_TextBox[#{ IZend_Dojo_View_Helper_Textarea['z QZend_Dojo_View_Helper_TabContainer['y QZend_Dojo_View_Helper_SubmitButton[)x UZend_Dojo_View_Helper_StackContainer[)w UZend_Dojo_View_Helper_SplitContainer[!v EZend_Dojo_View_Helper_Slider[)u UZend_Dojo_View_Helper_SimpleTextarea[&t OZend_Dojo_View_Helper_RadioButton[*s WZend_Dojo_View_Helper_PasswordTextBox[(r SZend_Dojo_View_Helper_NumberTextBox[(q SZend_Dojo_View_Helper_NumberSpinner[+p YZend_Dojo_View_Helper_HorizontalSlider[o AZend_Dojo_View_Helper_Form[*n WZend_Dojo_View_Helper_FilteringSelect[!m EZend_Dojo_View_Helper_Editor[l AZend_Dojo_View_Helper_Dojo[)k UZend_Dojo_View_Helper_Dojo_Container[)j UZend_Dojo_View_Helper_DijitContainer[   c  oO/qU;)cF%}T-hB



{
S
)
 				e	D	(	a+	kCV'xT/pDQ"kAQ"                                  /8 aZend_Gdata_DublinCore_Extension_Identifier[+7 YZend_Gdata_DublinCore_Extension_Format[06 cZend_Gdata_DublinCore_Extension_Description[)5 UZend_Gdata_DublinCore_Extension_Date[,4 [Zend_Gdata_DublinCore_Extension_Creator[3 +Zend_Gdata_Docs[2 7Zend_Gdata_Docs_Query[%1 MZend_Gdata_Docs_DocumentListFeed[&0 OZend_Gdata_Docs_DocumentListEntry[/ 9Zend_Gdata_ClientLogin[. 3Zend_Gdata_Calendar[!- EZend_Gdata_Calendar_ListFeed[", GZend_Gdata_Calendar_ListEntry[-+ ]Zend_Gdata_Calendar_Extension_WebContent[+* YZend_Gdata_Calendar_Extension_Timezone[9) uZend_Gdata_Calendar_Extension_SendEventNotifications[+( YZend_Gdata_Calendar_Extension_Selected[+' YZend_Gdata_Calendar_Extension_QuickAdd['& QZend_Gdata_Calendar_Extension_Link[)% UZend_Gdata_Calendar_Extension_Hidden[($ SZend_Gdata_Calendar_Extension_Color[.# _Zend_Gdata_Calendar_Extension_AccessLevel[#" IZend_Gdata_Calendar_EventQuery["! GZend_Gdata_Calendar_EventFeed[#  IZend_Gdata_Calendar_EventEntry[ -Zend_Gdata_Books[! EZend_Gdata_Books_VolumeQuery[  CZend_Gdata_Books_VolumeFeed[! EZend_Gdata_Books_VolumeEntry[+ YZend_Gdata_Books_Extension_Viewability[- ]Zend_Gdata_Books_Extension_ThumbnailLink[& OZend_Gdata_Books_Extension_Review[+ YZend_Gdata_Books_Extension_PreviewLink[( SZend_Gdata_Books_Extension_InfoLink[- ]Zend_Gdata_Books_Extension_Embeddability[) UZend_Gdata_Books_Extension_BooksLink[- ]Zend_Gdata_Books_Extension_BooksCategory[. _Zend_Gdata_Books_Extension_AnnotationLink[$ KZend_Gdata_Books_CollectionFeed[% MZend_Gdata_Books_CollectionEntry[ 1Zend_Gdata_AuthSub[ )Zend_Gdata_App[ 3Zend_Gdata_App_Util[# IZend_Gdata_App_MediaFileSource[ ?Zend_Gdata_App_MediaEntry[2 gZend_Gdata_App_LoggingHttpClientAdapterSocket[
 AZend_Gdata_App_IOException[,	 [Zend_Gdata_App_InvalidArgumentException[! EZend_Gdata_App_HttpException[$ KZend_Gdata_App_FeedSourceParent[# IZend_Gdata_App_FeedEntryParent[ 3Zend_Gdata_App_Feed[ =Zend_Gdata_App_Extension[! EZend_Gdata_App_Extension_Uri[% MZend_Gdata_App_Extension_Updated[# IZend_Gdata_App_Extension_Title["  GZend_Gdata_App_Extension_Text[% MZend_Gdata_App_Extension_Summary[&~ OZend_Gdata_App_Extension_Subtitle[$} KZend_Gdata_App_Extension_Source[$| KZend_Gdata_App_Extension_Rights['{ QZend_Gdata_App_Extension_Published[$z KZend_Gdata_App_Extension_Person["y GZend_Gdata_App_Extension_Name["x GZend_Gdata_App_Extension_Logo["w GZend_Gdata_App_Extension_Link[ v CZend_Gdata_App_Extension_Id["u GZend_Gdata_App_Extension_Icon['t QZend_Gdata_App_Extension_Generator[#s IZend_Gdata_App_Extension_Email[%r MZend_Gdata_App_Extension_Element[#q IZend_Gdata_App_Extension_Draft[%p MZend_Gdata_App_Extension_Control[)o UZend_Gdata_App_Extension_Contributor[%n MZend_Gdata_App_Extension_Content[&m OZend_Gdata_App_Extension_Category[$l KZend_Gdata_App_Extension_Author[k =Zend_Gdata_App_Exception[j 5Zend_Gdata_App_Entry[,i [Zend_Gdata_App_CaptchaRequiredException[#h IZend_Gdata_App_BaseMediaSource[g 3Zend_Gdata_App_Base[*f WZend_Gdata_App_BadMethodCallException[!e EZend_Gdata_App_AuthException[d Zend_Form[c /Zend_Form_SubForm[b 3Zend_Form_Exception[a /Zend_Form_Element[` ;Zend_Form_Element_Xhtml[_ AZend_Form_Element_Textarea[^ 9Zend_Form_Element_Text[] =Zend_Form_Element_Submit[\ =Zend_Form_Element_Select[[ ;Zend_Form_Element_Reset[Z ;Zend_Form_Element_Radio[Y AZend_Form_Element_Password["X GZend_Form_Element_Multiselect[$W KZend_Form_Element_MultiCheckbox[V ;Zend_Form_Element_Multi[   a  n>e=jBiCk9



]
7
					b	J	"rA"xO(oM*^;uHc2m?O"                                       . _Zend_Gdata_Media_Extension_MediaThumbnail[) UZend_Gdata_Media_Extension_MediaText[0 cZend_Gdata_Media_Extension_MediaRestriction[+ YZend_Gdata_Media_Extension_MediaRating[+ YZend_Gdata_Media_Extension_MediaPlayer[- ]Zend_Gdata_Media_Extension_MediaKeywords[) UZend_Gdata_Media_Extension_MediaHash[* WZend_Gdata_Media_Extension_MediaGroup[0 cZend_Gdata_Media_Extension_MediaDescription[+ YZend_Gdata_Media_Extension_MediaCredit[. _Zend_Gdata_Media_Extension_MediaCopyright[, [Zend_Gdata_Media_Extension_MediaContent[- ]Zend_Gdata_Media_Extension_MediaCategory[ 9Zend_Gdata_Media_Entry[ AZend_Gdata_Kind_EventEntry[
 7Zend_Gdata_HttpClient[	 )Zend_Gdata_Geo[ 3Zend_Gdata_Geo_Feed[$ KZend_Gdata_Geo_Extension_GmlPos[& OZend_Gdata_Geo_Extension_GmlPoint[) UZend_Gdata_Geo_Extension_GeoRssWhere[ 5Zend_Gdata_Geo_Entry[ -Zend_Gdata_Gbase[" GZend_Gdata_Gbase_SnippetQuery[! EZend_Gdata_Gbase_SnippetFeed["  GZend_Gdata_Gbase_SnippetEntry[ 9Zend_Gdata_Gbase_Query[~ AZend_Gdata_Gbase_ItemQuery[} ?Zend_Gdata_Gbase_ItemFeed[| AZend_Gdata_Gbase_ItemEntry[{ 7Zend_Gdata_Gbase_Feed[-z ]Zend_Gdata_Gbase_Extension_BaseAttribute[y 9Zend_Gdata_Gbase_Entry[x -Zend_Gdata_Gapps[w AZend_Gdata_Gapps_UserQuery[v ?Zend_Gdata_Gapps_UserFeed[u AZend_Gdata_Gapps_UserEntry[&t OZend_Gdata_Gapps_ServiceException[s 9Zend_Gdata_Gapps_Query[#r IZend_Gdata_Gapps_NicknameQuery["q GZend_Gdata_Gapps_NicknameFeed[#p IZend_Gdata_Gapps_NicknameEntry[%o MZend_Gdata_Gapps_Extension_Quota[(n SZend_Gdata_Gapps_Extension_Nickname[$m KZend_Gdata_Gapps_Extension_Name[%l MZend_Gdata_Gapps_Extension_Login[)k UZend_Gdata_Gapps_Extension_EmailList[j 9Zend_Gdata_Gapps_Error[-i ]Zend_Gdata_Gapps_EmailListRecipientQuery[,h [Zend_Gdata_Gapps_EmailListRecipientFeed[-g ]Zend_Gdata_Gapps_EmailListRecipientEntry[$f KZend_Gdata_Gapps_EmailListQuery[#e IZend_Gdata_Gapps_EmailListFeed[$d KZend_Gdata_Gapps_EmailListEntry[c +Zend_Gdata_Feed[b 5Zend_Gdata_Extension[a =Zend_Gdata_Extension_Who[` AZend_Gdata_Extension_Where[_ ?Zend_Gdata_Extension_When[$^ KZend_Gdata_Extension_Visibility[&] OZend_Gdata_Extension_Transparency["\ GZend_Gdata_Extension_Reminder[-[ ]Zend_Gdata_Extension_RecurrenceException[$Z KZend_Gdata_Extension_Recurrence[ Y CZend_Gdata_Extension_Rating['X QZend_Gdata_Extension_OriginalEvent[0W cZend_Gdata_Extension_OpenSearchTotalResults[.V _Zend_Gdata_Extension_OpenSearchStartIndex[0U cZend_Gdata_Extension_OpenSearchItemsPerPage["T GZend_Gdata_Extension_FeedLink[*S WZend_Gdata_Extension_ExtendedProperty[%R MZend_Gdata_Extension_EventStatus[#Q IZend_Gdata_Extension_EntryLink["P GZend_Gdata_Extension_Comments[&O OZend_Gdata_Extension_AttendeeType[(N SZend_Gdata_Extension_AttendeeStatus[M +Zend_Gdata_Exif[L 5Zend_Gdata_Exif_Feed[#K IZend_Gdata_Exif_Extension_Time[#J IZend_Gdata_Exif_Extension_Tags[$I KZend_Gdata_Exif_Extension_Model[#H IZend_Gdata_Exif_Extension_Make["G GZend_Gdata_Exif_Extension_Iso[,F [Zend_Gdata_Exif_Extension_ImageUniqueId[$E KZend_Gdata_Exif_Extension_FStop[*D WZend_Gdata_Exif_Extension_FocalLength[$C KZend_Gdata_Exif_Extension_Flash['B QZend_Gdata_Exif_Extension_Exposure['A QZend_Gdata_Exif_Extension_Distance[@ 7Zend_Gdata_Exif_Entry[? -Zend_Gdata_Entry[> 7Zend_Gdata_DublinCore[*= WZend_Gdata_DublinCore_Extension_Title[,< [Zend_Gdata_DublinCore_Extension_Subject[+; YZend_Gdata_DublinCore_Extension_Rights[.: _Zend_Gdata_DublinCore_Extension_Publisher[-9 ]Zend_Gdata_DublinCore_Extension_Language[   Z  vR-T)pCR&lC



g
=
					e	A	'	c4sJ bB{P#k>V*tG`5                              (s SZend_Gdata_YouTube_Extension_Status[,r [Zend_Gdata_YouTube_Extension_Statistics['q QZend_Gdata_YouTube_Extension_State[(p SZend_Gdata_YouTube_Extension_School[-o ]Zend_Gdata_YouTube_Extension_ReleaseDate[.n _Zend_Gdata_YouTube_Extension_Relationship[*m WZend_Gdata_YouTube_Extension_Recorded[&l OZend_Gdata_YouTube_Extension_Racy[)k UZend_Gdata_YouTube_Extension_Private[*j WZend_Gdata_YouTube_Extension_Position[,i [Zend_Gdata_YouTube_Extension_Occupation[)h UZend_Gdata_YouTube_Extension_NoEmbed['g QZend_Gdata_YouTube_Extension_Music[(f SZend_Gdata_YouTube_Extension_Movies[,e [Zend_Gdata_YouTube_Extension_MediaGroup[.d _Zend_Gdata_YouTube_Extension_MediaContent[*c WZend_Gdata_YouTube_Extension_Location[&b OZend_Gdata_YouTube_Extension_Link[*a WZend_Gdata_YouTube_Extension_Hometown[)` UZend_Gdata_YouTube_Extension_Hobbies[(_ SZend_Gdata_YouTube_Extension_Gender[*^ WZend_Gdata_YouTube_Extension_Duration[-] ]Zend_Gdata_YouTube_Extension_Description[)\ UZend_Gdata_YouTube_Extension_Control[)[ UZend_Gdata_YouTube_Extension_Company['Z QZend_Gdata_YouTube_Extension_Books[%Y MZend_Gdata_YouTube_Extension_Age[#X IZend_Gdata_YouTube_ContactFeed[$W KZend_Gdata_YouTube_ContactEntry[#V IZend_Gdata_YouTube_CommentFeed[$U KZend_Gdata_YouTube_CommentEntry[T ;Zend_Gdata_Spreadsheets[*S WZend_Gdata_Spreadsheets_WorksheetFeed[+R YZend_Gdata_Spreadsheets_WorksheetEntry[,Q [Zend_Gdata_Spreadsheets_SpreadsheetFeed[-P ]Zend_Gdata_Spreadsheets_SpreadsheetEntry[&O OZend_Gdata_Spreadsheets_ListQuery[%N MZend_Gdata_Spreadsheets_ListFeed[&M OZend_Gdata_Spreadsheets_ListEntry[/L aZend_Gdata_Spreadsheets_Extension_RowCount[-K ]Zend_Gdata_Spreadsheets_Extension_Custom[/J aZend_Gdata_Spreadsheets_Extension_ColCount[+I YZend_Gdata_Spreadsheets_Extension_Cell[*H WZend_Gdata_Spreadsheets_DocumentQuery[&G OZend_Gdata_Spreadsheets_CellQuery[%F MZend_Gdata_Spreadsheets_CellFeed[&E OZend_Gdata_Spreadsheets_CellEntry[D -Zend_Gdata_Query[C /Zend_Gdata_Photos[ B CZend_Gdata_Photos_UserQuery[A AZend_Gdata_Photos_UserFeed[ @ CZend_Gdata_Photos_UserEntry[? AZend_Gdata_Photos_TagEntry[!> EZend_Gdata_Photos_PhotoQuery[ = CZend_Gdata_Photos_PhotoFeed[!< EZend_Gdata_Photos_PhotoEntry[&; OZend_Gdata_Photos_Extension_Width[': QZend_Gdata_Photos_Extension_Weight[(9 SZend_Gdata_Photos_Extension_Version[%8 MZend_Gdata_Photos_Extension_User[*7 WZend_Gdata_Photos_Extension_Timestamp[*6 WZend_Gdata_Photos_Extension_Thumbnail[%5 MZend_Gdata_Photos_Extension_Size[)4 UZend_Gdata_Photos_Extension_Rotation[+3 YZend_Gdata_Photos_Extension_QuotaLimit[-2 ]Zend_Gdata_Photos_Extension_QuotaCurrent[)1 UZend_Gdata_Photos_Extension_Position[(0 SZend_Gdata_Photos_Extension_PhotoId[3/ iZend_Gdata_Photos_Extension_NumPhotosRemaining[*. WZend_Gdata_Photos_Extension_NumPhotos[)- UZend_Gdata_Photos_Extension_Nickname[%, MZend_Gdata_Photos_Extension_Name[2+ gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum[)* UZend_Gdata_Photos_Extension_Location[#) IZend_Gdata_Photos_Extension_Id['( QZend_Gdata_Photos_Extension_Height[2' gZend_Gdata_Photos_Extension_CommentingEnabled[-& ]Zend_Gdata_Photos_Extension_CommentCount['% QZend_Gdata_Photos_Extension_Client[)$ UZend_Gdata_Photos_Extension_Checksum[*# WZend_Gdata_Photos_Extension_BytesUsed[(" SZend_Gdata_Photos_Extension_AlbumId['! QZend_Gdata_Photos_Extension_Access[#  IZend_Gdata_Photos_CommentEntry[! EZend_Gdata_Photos_AlbumQuery[  CZend_Gdata_Photos_AlbumFeed[! EZend_Gdata_Photos_AlbumEntry[ -Zend_Gdata_Media[ 7Zend_Gdata_Media_Feed[* WZend_Gdata_Media_Extension_MediaTitle[   l T(tH"~W/	|a;U




`
7
				i	B	}PtQ 
|Y3n\(}R1bI5wV;v\@)                                      _ CZend_Mail_Protocol_Abstract[^ )Zend_Mail_Part[] 3Zend_Mail_Part_File[\ /Zend_Mail_Message[[ 9Zend_Mail_Message_File[Z 3Zend_Mail_Exception[Y Zend_Log[X 9Zend_Log_Writer_Stream[W 5Zend_Log_Writer_Null[V 5Zend_Log_Writer_Mock[U ;Zend_Log_Writer_Firebug[T 1Zend_Log_Writer_Db[S =Zend_Log_Writer_Abstract[R 9Zend_Log_Formatter_Xml[Q ?Zend_Log_Formatter_Simple[P =Zend_Log_Filter_Suppress[O =Zend_Log_Filter_Priority[N ;Zend_Log_Filter_Message[M 1Zend_Log_Exception[L #Zend_Locale[K -Zend_Locale_Math[J =Zend_Locale_Math_PhpMath[I AZend_Locale_Math_Exception[H 1Zend_Locale_Format[G 7Zend_Locale_Exception[F -Zend_Locale_Data[!E EZend_Locale_Data_Translation[D #Zend_Loader[C =Zend_Loader_PluginLoader['B QZend_Loader_PluginLoader_Exception[A 7Zend_Loader_Exception[@ Zend_Ldap[? 3Zend_Ldap_Exception[> #Zend_Layout[= 7Zend_Layout_Exception[)< UZend_Layout_Controller_Plugin_Layout[0; cZend_Layout_Controller_Action_Helper_Layout[: Zend_Json[9 -Zend_Json_Server[8 5Zend_Json_Server_Smd[!7 EZend_Json_Server_Smd_Service[6 ?Zend_Json_Server_Response[#5 IZend_Json_Server_Response_Http[4 =Zend_Json_Server_Request["3 GZend_Json_Server_Request_Http[2 AZend_Json_Server_Exception[1 9Zend_Json_Server_Error[0 9Zend_Json_Server_Cache[/ 3Zend_Json_Exception[. /Zend_Json_Encoder[- /Zend_Json_Decoder[, 'Zend_InfoCard[-+ ]Zend_InfoCard_Xml_SecurityTokenReference[* AZend_InfoCard_Xml_Security[)) UZend_InfoCard_Xml_Security_Transform[4( kZend_InfoCard_Xml_Security_Transform_XmlExcC14N[3' iZend_InfoCard_Xml_Security_Transform_Exception[<& {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignature[)% UZend_InfoCard_Xml_Security_Exception[$ ?Zend_InfoCard_Xml_KeyInfo[&# OZend_InfoCard_Xml_KeyInfo_XmlDSig[&" OZend_InfoCard_Xml_KeyInfo_Default['! QZend_InfoCard_Xml_KeyInfo_Abstract[   CZend_InfoCard_Xml_Exception[# IZend_InfoCard_Xml_EncryptedKey[$ KZend_InfoCard_Xml_EncryptedData[+ YZend_InfoCard_Xml_EncryptedData_XmlEnc[- ]Zend_InfoCard_Xml_EncryptedData_Abstract[ ?Zend_InfoCard_Xml_Element[  CZend_InfoCard_Xml_Assertion[% MZend_InfoCard_Xml_Assertion_Saml[ ;Zend_InfoCard_Exception[% MZend_InfoCard_Exception_Abstract[ 5Zend_InfoCard_Claims[ 5Zend_InfoCard_Cipher[5 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc[5 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc[4 kZend_InfoCard_Cipher_Symmetric_Adapter_Abstract[) UZend_InfoCard_Cipher_Pki_Adapter_Rsa[. _Zend_InfoCard_Cipher_Pki_Adapter_Abstract[# IZend_InfoCard_Cipher_Exception[$ KZend_InfoCard_Adapter_Exception[" GZend_InfoCard_Adapter_Default[ 1Zend_Http_Response[ 3Zend_Http_Exception[
 3Zend_Http_CookieJar[	 -Zend_Http_Cookie[ -Zend_Http_Client[ AZend_Http_Client_Exception[" GZend_Http_Client_Adapter_Test[$ KZend_Http_Client_Adapter_Socket[# IZend_Http_Client_Adapter_Proxy[' QZend_Http_Client_Adapter_Exception[ !Zend_Gdata[ 1Zend_Gdata_YouTube["  GZend_Gdata_YouTube_VideoQuery[! EZend_Gdata_YouTube_VideoFeed["~ GZend_Gdata_YouTube_VideoEntry[(} SZend_Gdata_YouTube_UserProfileEntry[(| SZend_Gdata_YouTube_SubscriptionFeed[){ UZend_Gdata_YouTube_SubscriptionEntry[)z UZend_Gdata_YouTube_PlaylistVideoFeed[*y WZend_Gdata_YouTube_PlaylistVideoEntry[(x SZend_Gdata_YouTube_PlaylistListFeed[)w UZend_Gdata_YouTube_PlaylistListEntry["v GZend_Gdata_YouTube_MediaEntry[*u WZend_Gdata_YouTube_Extension_Username['t QZend_Gdata_YouTube_Extension_Token[   u  nCbA" }X2eI(kL-




u
Y
>
 
					^	B	&	z^D0iL.tR5![:oE"kP9xQ1sS:   T ;Zend_Pdf_ElementFactory["S GZend_Pdf_ElementFactory_Proxy[R -Zend_Pdf_Element[Q ;Zend_Pdf_Element_String[#P IZend_Pdf_Element_String_Binary[O ;Zend_Pdf_Element_Stream[N AZend_Pdf_Element_Reference[%M MZend_Pdf_Element_Reference_Table['L QZend_Pdf_Element_Reference_Context[K ;Zend_Pdf_Element_Object[#J IZend_Pdf_Element_Object_Stream[I =Zend_Pdf_Element_Numeric[H 7Zend_Pdf_Element_Null[G 7Zend_Pdf_Element_Name[ F CZend_Pdf_Element_Dictionary[E =Zend_Pdf_Element_Boolean[D 9Zend_Pdf_Element_Array[C )Zend_Pdf_Color[B 1Zend_Pdf_Color_Rgb[A 3Zend_Pdf_Color_Html[@ =Zend_Pdf_Color_GrayScale[? 3Zend_Pdf_Color_Cmyk[> 'Zend_Pdf_Cmap[= AZend_Pdf_Cmap_TrimmedTable[!< EZend_Pdf_Cmap_SegmentToDelta[; AZend_Pdf_Cmap_ByteEncoding[&: OZend_Pdf_Cmap_ByteEncoding_Static[9 )Zend_Paginator[*8 WZend_Paginator_ScrollingStyle_Sliding[*7 WZend_Paginator_ScrollingStyle_Jumping[*6 WZend_Paginator_ScrollingStyle_Elastic[&5 OZend_Paginator_ScrollingStyle_All[4 =Zend_Paginator_Exception[ 3 CZend_Paginator_Adapter_Null[$2 KZend_Paginator_Adapter_Iterator[)1 UZend_Paginator_Adapter_DbTableSelect[$0 KZend_Paginator_Adapter_DbSelect[!/ EZend_Paginator_Adapter_Array[. #Zend_OpenId[- 5Zend_OpenId_Provider[, ?Zend_OpenId_Provider_User[&+ OZend_OpenId_Provider_User_Session[!* EZend_OpenId_Provider_Storage[&) OZend_OpenId_Provider_Storage_File[( 7Zend_OpenId_Extension[' AZend_OpenId_Extension_Sreg[& 7Zend_OpenId_Exception[% 5Zend_OpenId_Consumer[!$ EZend_OpenId_Consumer_Storage[&# OZend_OpenId_Consumer_Storage_File[" Zend_Mime[! )Zend_Mime_Part[  /Zend_Mime_Message[ 3Zend_Mime_Exception[ -Zend_Mime_Decode[ #Zend_Memory[ /Zend_Memory_Value[ 3Zend_Memory_Manager[ 7Zend_Memory_Exception[ 7Zend_Memory_Container[" GZend_Memory_Container_Movable[! EZend_Memory_Container_Locked[! EZend_Memory_AccessController[ 3Zend_Measure_Weight[ 3Zend_Measure_Volume[% MZend_Measure_Viscosity_Kinematic[# IZend_Measure_Viscosity_Dynamic[ 3Zend_Measure_Torque[ /Zend_Measure_Time[ =Zend_Measure_Temperature[ 1Zend_Measure_Speed[ 7Zend_Measure_Pressure[ 1Zend_Measure_Power[ 3Zend_Measure_Number[
 9Zend_Measure_Lightness[	 3Zend_Measure_Length[ ?Zend_Measure_Illumination[ 9Zend_Measure_Frequency[ 1Zend_Measure_Force[ =Zend_Measure_Flow_Volume[ 9Zend_Measure_Flow_Mole[ 9Zend_Measure_Flow_Mass[ 9Zend_Measure_Exception[ 3Zend_Measure_Energy[  5Zend_Measure_Density[ 5Zend_Measure_Current[ ~ CZend_Measure_Cooking_Weight[ } CZend_Measure_Cooking_Volume[| =Zend_Measure_Capacitance[{ 3Zend_Measure_Binary[z /Zend_Measure_Area[y 1Zend_Measure_Angle[x ?Zend_Measure_Acceleration[w 7Zend_Measure_Abstract[v Zend_Mail[u =Zend_Mail_Transport_Smtp[!t EZend_Mail_Transport_Sendmail["s GZend_Mail_Transport_Exception[!r EZend_Mail_Transport_Abstract[q /Zend_Mail_Storage['p QZend_Mail_Storage_Writable_Maildir[o 9Zend_Mail_Storage_Pop3[n 9Zend_Mail_Storage_Mbox[m ?Zend_Mail_Storage_Maildir[l 9Zend_Mail_Storage_Imap[k =Zend_Mail_Storage_Folder["j GZend_Mail_Storage_Folder_Mbox[%i MZend_Mail_Storage_Folder_Maildir[ h CZend_Mail_Storage_Exception[g AZend_Mail_Storage_Abstract[f ;Zend_Mail_Protocol_Smtp['e QZend_Mail_Protocol_Smtp_Auth_Plain['d QZend_Mail_Protocol_Smtp_Auth_Login[)c UZend_Mail_Protocol_Smtp_Auth_Crammd5[b ;Zend_Mail_Protocol_Pop3[a ;Zend_Mail_Protocol_Imap[!` EZend_Mail_Protocol_Exception[   Z  gAeDlT:
V)u7


|
<
			S	cDuW@Z2
tJ*QEO"E                                ,. [Zend_Search_Lucene_Analysis_TokenFilter[6- oZend_Search_Lucene_Analysis_TokenFilter_StopWords[7, qZend_Search_Lucene_Analysis_TokenFilter_ShortWords[:+ wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8[6* oZend_Search_Lucene_Analysis_TokenFilter_LowerCase[&) OZend_Search_Lucene_Analysis_Token[)( UZend_Search_Lucene_Analysis_Analyzer[0' cZend_Search_Lucene_Analysis_Analyzer_Common[8& sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num[I% Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive[5$ mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8[F# Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive[8" sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum[I! Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive[5  mZend_Search_Lucene_Analysis_Analyzer_Common_Text[F Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive[ 7Zend_Search_Exception[ -Zend_Rest_Server[ AZend_Rest_Server_Exception[ 3Zend_Rest_Exception[ -Zend_Rest_Client[ ;Zend_Rest_Client_Result[& OZend_Rest_Client_Result_Exception[ AZend_Rest_Client_Exception[ 'Zend_Registry[ -Zend_ProgressBar[ AZend_ProgressBar_Exception[ =Zend_ProgressBar_Adapter[$ KZend_ProgressBar_Adapter_JsPush[$ KZend_ProgressBar_Adapter_JsPull[' QZend_ProgressBar_Adapter_Exception[% MZend_ProgressBar_Adapter_Console[ Zend_Pdf[! EZend_Pdf_UpdateInfoContainer[ -Zend_Pdf_Trailer[ ;Zend_Pdf_Trailer_Keeper[
 AZend_Pdf_Trailer_Generator[	 )Zend_Pdf_Style[ 7Zend_Pdf_StringParser[ /Zend_Pdf_Resource[# IZend_Pdf_Resource_ImageFactory[ ;Zend_Pdf_Resource_Image[! EZend_Pdf_Resource_Image_Tiff[  CZend_Pdf_Resource_Image_Png[! EZend_Pdf_Resource_Image_Jpeg[ 9Zend_Pdf_Resource_Font[!  EZend_Pdf_Resource_Font_Type0[" GZend_Pdf_Resource_Font_Simple[+~ YZend_Pdf_Resource_Font_Simple_Standard[8} sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats[6| oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman[7{ qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic[;z yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic[5y mZend_Pdf_Resource_Font_Simple_Standard_TimesBold[2x gZend_Pdf_Resource_Font_Simple_Standard_Symbol[<w {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaOblique[Av Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique[9u uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold[5t mZend_Pdf_Resource_Font_Simple_Standard_Helvetica[:s wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique[>r Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique[7q qZend_Pdf_Resource_Font_Simple_Standard_CourierBold[3p iZend_Pdf_Resource_Font_Simple_Standard_Courier[)o UZend_Pdf_Resource_Font_Simple_Parsed[2n gZend_Pdf_Resource_Font_Simple_Parsed_TrueType[*m WZend_Pdf_Resource_Font_FontDescriptor[%l MZend_Pdf_Resource_Font_Extracted[#k IZend_Pdf_Resource_Font_CidFont[,j [Zend_Pdf_Resource_Font_CidFont_TrueType[i /Zend_Pdf_PhpArray[h +Zend_Pdf_Parser[g 9Zend_Pdf_Parser_Stream[f 'Zend_Pdf_Page[e )Zend_Pdf_Image[d 'Zend_Pdf_Font[ c CZend_Pdf_Filter_Compression[$b KZend_Pdf_Filter_Compression_Lzw[&a OZend_Pdf_Filter_Compression_Flate[` =Zend_Pdf_Filter_AsciiHex[_ ;Zend_Pdf_Filter_Ascii85["^ GZend_Pdf_FileParserDataSource[)] UZend_Pdf_FileParserDataSource_String['\ QZend_Pdf_FileParserDataSource_File[[ 3Zend_Pdf_FileParser[Z ?Zend_Pdf_FileParser_Image["Y GZend_Pdf_FileParser_Image_Png[X =Zend_Pdf_FileParser_Font[&W OZend_Pdf_FileParser_Font_OpenType[/V aZend_Pdf_FileParser_Font_OpenType_TrueType[U 1Zend_Pdf_Exception[   [  Y0P$c%jBc5


p
B
				R	 m8rAX iN1kF!yU,~V+pK)                           '	 QZend_Service_Amazon_SimilarProduct[" GZend_Service_Amazon_ResultSet[ ?Zend_Service_Amazon_Query[! EZend_Service_Amazon_OfferSet[ ?Zend_Service_Amazon_Offer[& OZend_Service_Amazon_ListmaniaList[ =Zend_Service_Amazon_Item[ ?Zend_Service_Amazon_Image[( SZend_Service_Amazon_EditorialReview['  QZend_Service_Amazon_CustomerReview[$ KZend_Service_Amazon_Accessories[~ 5Zend_Service_Akismet[} 7Zend_Service_Abstract[| 9Zend_Server_Reflection['{ QZend_Server_Reflection_ReturnValue[%z MZend_Server_Reflection_Prototype[%y MZend_Server_Reflection_Parameter[ x CZend_Server_Reflection_Node["w GZend_Server_Reflection_Method[$v KZend_Server_Reflection_Function[-u ]Zend_Server_Reflection_Function_Abstract[%t MZend_Server_Reflection_Exception[!s EZend_Server_Reflection_Class[!r EZend_Server_Method_Prototype[!q EZend_Server_Method_Parameter["p GZend_Server_Method_Definition[ o CZend_Server_Method_Callback[n 7Zend_Server_Exception[m 9Zend_Server_Definition[l /Zend_Server_Cache[k 5Zend_Server_Abstract[j 1Zend_Search_Lucene[$i KZend_Search_Lucene_Storage_File[+h YZend_Search_Lucene_Storage_File_Memory[/g aZend_Search_Lucene_Storage_File_Filesystem[)f UZend_Search_Lucene_Storage_Directory[4e kZend_Search_Lucene_Storage_Directory_Filesystem[%d MZend_Search_Lucene_Search_Weight[*c WZend_Search_Lucene_Search_Weight_Term[,b [Zend_Search_Lucene_Search_Weight_Phrase[/a aZend_Search_Lucene_Search_Weight_MultiTerm[+` YZend_Search_Lucene_Search_Weight_Empty[-_ ]Zend_Search_Lucene_Search_Weight_Boolean[)^ UZend_Search_Lucene_Search_Similarity[1] eZend_Search_Lucene_Search_Similarity_Default[)\ UZend_Search_Lucene_Search_QueryToken[3[ iZend_Search_Lucene_Search_QueryParserException[1Z eZend_Search_Lucene_Search_QueryParserContext[*Y WZend_Search_Lucene_Search_QueryParser[)X UZend_Search_Lucene_Search_QueryLexer['W QZend_Search_Lucene_Search_QueryHit[)V UZend_Search_Lucene_Search_QueryEntry[.U _Zend_Search_Lucene_Search_QueryEntry_Term[2T gZend_Search_Lucene_Search_QueryEntry_Subquery[0S cZend_Search_Lucene_Search_QueryEntry_Phrase[$R KZend_Search_Lucene_Search_Query[-Q ]Zend_Search_Lucene_Search_Query_Wildcard[)P UZend_Search_Lucene_Search_Query_Term[*O WZend_Search_Lucene_Search_Query_Range[+N YZend_Search_Lucene_Search_Query_Phrase[.M _Zend_Search_Lucene_Search_Query_MultiTerm[2L gZend_Search_Lucene_Search_Query_Insignificant[*K WZend_Search_Lucene_Search_Query_Fuzzy[*J WZend_Search_Lucene_Search_Query_Empty[,I [Zend_Search_Lucene_Search_Query_Boolean[:H wZend_Search_Lucene_Search_BooleanExpressionRecognizer[G =Zend_Search_Lucene_Proxy[%F MZend_Search_Lucene_PriorityQueue[#E IZend_Search_Lucene_LockManager[$D KZend_Search_Lucene_Index_Writer[&C OZend_Search_Lucene_Index_TermInfo["B GZend_Search_Lucene_Index_Term[+A YZend_Search_Lucene_Index_SegmentWriter[8@ sZend_Search_Lucene_Index_SegmentWriter_StreamWriter[:? wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter[+> YZend_Search_Lucene_Index_SegmentMerger[6= oZend_Search_Lucene_Index_SegmentInfoPriorityQueue[)< UZend_Search_Lucene_Index_SegmentInfo['; QZend_Search_Lucene_Index_FieldInfo[(: SZend_Search_Lucene_Index_DocsFilter[.9 _Zend_Search_Lucene_Index_DictionaryLoader[!8 EZend_Search_Lucene_FSMAction[7 9Zend_Search_Lucene_FSM[6 =Zend_Search_Lucene_Field[!5 EZend_Search_Lucene_Exception[ 4 CZend_Search_Lucene_Document[%3 MZend_Search_Lucene_Document_Xlsx[%2 MZend_Search_Lucene_Document_Pptx[(1 SZend_Search_Lucene_Document_OpenXml[%0 MZend_Search_Lucene_Document_Html[%/ MZend_Search_Lucene_Document_Docx[   d  sK!x\4l:cC a9




[
1
 			~	W	(d:`0Z3c9g>yO*b7eE"                           m -Zend_Soap_Client[l 9Zend_Soap_Client_Local[k AZend_Soap_Client_Exception[j ;Zend_Soap_Client_DotNet[i ;Zend_Soap_Client_Common[h 9Zend_Soap_AutoDiscover[%g MZend_Soap_AutoDiscover_Exception[f %Zend_Session[)e UZend_Session_Validator_HttpUserAgent[$d KZend_Session_Validator_Abstract['c QZend_Session_SaveHandler_Exception[%b MZend_Session_SaveHandler_DbTable[a 9Zend_Session_Namespace[` 9Zend_Session_Exception[_ 7Zend_Session_Abstract[^ 1Zend_Service_Yahoo[$] KZend_Service_Yahoo_WebResultSet[!\ EZend_Service_Yahoo_WebResult[&[ OZend_Service_Yahoo_VideoResultSet[#Z IZend_Service_Yahoo_VideoResult[!Y EZend_Service_Yahoo_ResultSet[X ?Zend_Service_Yahoo_Result[)W UZend_Service_Yahoo_PageDataResultSet[&V OZend_Service_Yahoo_PageDataResult[%U MZend_Service_Yahoo_NewsResultSet["T GZend_Service_Yahoo_NewsResult[&S OZend_Service_Yahoo_LocalResultSet[#R IZend_Service_Yahoo_LocalResult[+Q YZend_Service_Yahoo_InlinkDataResultSet[(P SZend_Service_Yahoo_InlinkDataResult[&O OZend_Service_Yahoo_ImageResultSet[#N IZend_Service_Yahoo_ImageResult[M =Zend_Service_Yahoo_Image[L 5Zend_Service_Twitter[ K CZend_Service_Twitter_Search[#J IZend_Service_Twitter_Exception[I ;Zend_Service_Technorati[#H IZend_Service_Technorati_Weblog["G GZend_Service_Technorati_Utils[*F WZend_Service_Technorati_TagsResultSet['E QZend_Service_Technorati_TagsResult[)D UZend_Service_Technorati_TagResultSet[&C OZend_Service_Technorati_TagResult[,B [Zend_Service_Technorati_SearchResultSet[)A UZend_Service_Technorati_SearchResult[&@ OZend_Service_Technorati_ResultSet[#? IZend_Service_Technorati_Result[*> WZend_Service_Technorati_KeyInfoResult[*= WZend_Service_Technorati_GetInfoResult[&< OZend_Service_Technorati_Exception[1; eZend_Service_Technorati_DailyCountsResultSet[.: _Zend_Service_Technorati_DailyCountsResult[,9 [Zend_Service_Technorati_CosmosResultSet[)8 UZend_Service_Technorati_CosmosResult[+7 YZend_Service_Technorati_BlogInfoResult[#6 IZend_Service_Technorati_Author[5 ;Zend_Service_StrikeIron[(4 SZend_Service_StrikeIron_ZipCodeInfo[23 gZend_Service_StrikeIron_USAddressVerification[-2 ]Zend_Service_StrikeIron_SalesUseTaxBasic[&1 OZend_Service_StrikeIron_Exception[&0 OZend_Service_StrikeIron_Decorator[!/ EZend_Service_StrikeIron_Base[. ;Zend_Service_SlideShare[&- OZend_Service_SlideShare_SlideShow[&, OZend_Service_SlideShare_Exception[+ 1Zend_Service_Simpy[$* KZend_Service_Simpy_WatchlistSet[*) WZend_Service_Simpy_WatchlistFilterSet['( QZend_Service_Simpy_WatchlistFilter[!' EZend_Service_Simpy_Watchlist[& ?Zend_Service_Simpy_TagSet[% 9Zend_Service_Simpy_Tag[$ AZend_Service_Simpy_NoteSet[# ;Zend_Service_Simpy_Note[" AZend_Service_Simpy_LinkSet[!! EZend_Service_Simpy_LinkQuery[  ;Zend_Service_Simpy_Link[ 9Zend_Service_ReCaptcha[$ KZend_Service_ReCaptcha_Response[$ KZend_Service_ReCaptcha_MailHide[. _Zend_Service_ReCaptcha_MailHide_Exception[% MZend_Service_ReCaptcha_Exception[ 7Zend_Service_Nirvanix[# IZend_Service_Nirvanix_Response[) UZend_Service_Nirvanix_Namespace_Imfs[) UZend_Service_Nirvanix_Namespace_Base[$ KZend_Service_Nirvanix_Exception[ 3Zend_Service_Flickr[" GZend_Service_Flickr_ResultSet[ AZend_Service_Flickr_Result[ ?Zend_Service_Flickr_Image[ 9Zend_Service_Exception[ 9Zend_Service_Delicious[& OZend_Service_Delicious_SimplePost[$ KZend_Service_Delicious_PostList[  CZend_Service_Delicious_Post[% MZend_Service_Delicious_Exception[  CZend_Service_Audioscrobbler[
 3Zend_Service_Amazon[   r ~Y;P9zM1bF.\5




`
A
 
							p	L	)	vV5vQ1~Y9}[9pP2lW< vX4\9                                  '_ QZend_View_Helper_FormMultiCheckbox[^ AZend_View_Helper_FormLabel[] AZend_View_Helper_FormImage[ \ CZend_View_Helper_FormHidden[[ ?Zend_View_Helper_FormFile[ Z CZend_View_Helper_FormErrors[!Y EZend_View_Helper_FormElement["X GZend_View_Helper_FormCheckbox[ W CZend_View_Helper_FormButton[V 7Zend_View_Helper_Form[U ?Zend_View_Helper_Fieldset[T =Zend_View_Helper_Doctype[!S EZend_View_Helper_DeclareVars[R ;Zend_View_Helper_Action[Q ?Zend_View_Helper_Abstract[P 3Zend_View_Exception[O 1Zend_View_Abstract[N %Zend_Version[M 'Zend_Validate[L AZend_Validate_StringLength[K 3Zend_Validate_Regex[J 9Zend_Validate_NotEmpty[I 9Zend_Validate_LessThan[H -Zend_Validate_Ip[G /Zend_Validate_Int[F 7Zend_Validate_InArray[E ;Zend_Validate_Identical[D 9Zend_Validate_Hostname[C ?Zend_Validate_Hostname_Se[B ?Zend_Validate_Hostname_No[A ?Zend_Validate_Hostname_Li[@ ?Zend_Validate_Hostname_Hu[? ?Zend_Validate_Hostname_Fi[> ?Zend_Validate_Hostname_De[= ?Zend_Validate_Hostname_Ch[< ?Zend_Validate_Hostname_At[; /Zend_Validate_Hex[: ?Zend_Validate_GreaterThan[9 3Zend_Validate_Float[8 ?Zend_Validate_File_Upload[7 ;Zend_Validate_File_Size[6 ;Zend_Validate_File_Sha1[!5 EZend_Validate_File_NotExists[ 4 CZend_Validate_File_MimeType[3 9Zend_Validate_File_Md5[2 AZend_Validate_File_IsImage[$1 KZend_Validate_File_IsCompressed[!0 EZend_Validate_File_ImageSize[/ ;Zend_Validate_File_Hash[!. EZend_Validate_File_FilesSize[!- EZend_Validate_File_Extension[, ?Zend_Validate_File_Exists['+ QZend_Validate_File_ExcludeMimeType[(* SZend_Validate_File_ExcludeExtension[) =Zend_Validate_File_Crc32[( =Zend_Validate_File_Count[' ;Zend_Validate_Exception[& AZend_Validate_EmailAddress[% 5Zend_Validate_Digits[$ 1Zend_Validate_Date[# 3Zend_Validate_Ccnum[" 7Zend_Validate_Between[! 7Zend_Validate_Barcode[  AZend_Validate_Barcode_UpcA[  CZend_Validate_Barcode_Ean13[ 3Zend_Validate_Alpha[ 3Zend_Validate_Alnum[ 9Zend_Validate_Abstract[ Zend_Uri[ 'Zend_Uri_Http[ 1Zend_Uri_Exception[ )Zend_Translate[ =Zend_Translate_Exception[ 9Zend_Translate_Adapter[! EZend_Translate_Adapter_XmlTm[! EZend_Translate_Adapter_Xliff[ AZend_Translate_Adapter_Tmx[ AZend_Translate_Adapter_Tbx[ ?Zend_Translate_Adapter_Qt[ AZend_Translate_Adapter_Ini[# IZend_Translate_Adapter_Gettext[ AZend_Translate_Adapter_Csv[! EZend_Translate_Adapter_Array[ 'Zend_TimeSync[ 1Zend_TimeSync_Sntp[
 9Zend_TimeSync_Protocol[	 /Zend_TimeSync_Ntp[ ;Zend_TimeSync_Exception[ +Zend_Text_Table[ 3Zend_Text_Table_Row[ ?Zend_Text_Table_Exception[& OZend_Text_Table_Decorator_Unicode[$ KZend_Text_Table_Decorator_Ascii[ 9Zend_Text_Table_Column[ -Zend_Text_Figlet[  AZend_Text_Figlet_Exception[ 3Zend_Text_Exception[)~ UZend_Test_PHPUnit_ControllerTestCase[0} cZend_Test_PHPUnit_Constraint_ResponseHeader[*| WZend_Test_PHPUnit_Constraint_Redirect[+{ YZend_Test_PHPUnit_Constraint_Exception[*z WZend_Test_PHPUnit_Constraint_DomQuery[y )Zend_Soap_Wsdl[/x aZend_Soap_Wsdl_Strategy_DefaultComplexType[0w cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence[/v aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex[$u KZend_Soap_Wsdl_Strategy_AnyType[%t MZend_Soap_Wsdl_Strategy_Abstract[s 7Zend_Soap_Wsdl_Parser[!r EZend_Soap_Wsdl_Parser_Result[q =Zend_Soap_Wsdl_Exception[!p EZend_Soap_Wsdl_CodeGenerator[o -Zend_Soap_Server[n AZend_Soap_Server_Exception[   k rN*zW4]7]%K




r
`
6
				h	C	kP2zY4sN+
dC)jO&hD" nV3e7                                         ,J [Zend_Amf_Value_Messaging_CommandMessage\*I WZend_Amf_Value_Messaging_AsyncMessage\0H cZend_Amf_Value_Messaging_AcknowledgeMessage\-G ]Zend_Amf_Value_Messaging_AbstractMessage\!F EZend_Amf_Value_MessageHeader\E AZend_Amf_Value_MessageBody\D =Zend_Amf_Value_ByteArray\C AZend_Amf_Util_BinaryStream\B +Zend_Amf_Server\A ?Zend_Amf_Server_Exception\@ /Zend_Amf_Response\? 9Zend_Amf_Response_Http\> -Zend_Amf_Request\= 7Zend_Amf_Request_Http\< ?Zend_Amf_Parse_TypeLoader\; ?Zend_Amf_Parse_Serializer\ : CZend_Amf_Parse_OutputStream\9 AZend_Amf_Parse_InputStream\ 8 CZend_Amf_Parse_Deserializer\#7 IZend_Amf_Parse_Amf3_Serializer\%6 MZend_Amf_Parse_Amf3_Deserializer\#5 IZend_Amf_Parse_Amf0_Serializer\%4 MZend_Amf_Parse_Amf0_Deserializer\3 1Zend_Amf_Exception\2 1Zend_Amf_Constants\1 Zend_Acl\0 'Zend_Acl_Role\/ 9Zend_Acl_Role_Registry\%. MZend_Acl_Role_Registry_Exception\- /Zend_Acl_Resource\, 1Zend_Acl_Exception\+ /Zend_XmlRpc_Value[* =Zend_XmlRpc_Value_Struct[) =Zend_XmlRpc_Value_String[( =Zend_XmlRpc_Value_Scalar[' 7Zend_XmlRpc_Value_Nil[& ?Zend_XmlRpc_Value_Integer[ % CZend_XmlRpc_Value_Exception[$ =Zend_XmlRpc_Value_Double[# AZend_XmlRpc_Value_DateTime[!" EZend_XmlRpc_Value_Collection[! ?Zend_XmlRpc_Value_Boolean[  =Zend_XmlRpc_Value_Base64[ ;Zend_XmlRpc_Value_Array[ 1Zend_XmlRpc_Server[ ?Zend_XmlRpc_Server_System[ =Zend_XmlRpc_Server_Fault[! EZend_XmlRpc_Server_Exception[ =Zend_XmlRpc_Server_Cache[ 5Zend_XmlRpc_Response[ ?Zend_XmlRpc_Response_Http[ 3Zend_XmlRpc_Request[ ?Zend_XmlRpc_Request_Stdin[ =Zend_XmlRpc_Request_Http[ /Zend_XmlRpc_Fault[ 7Zend_XmlRpc_Exception[ 1Zend_XmlRpc_Client[# IZend_XmlRpc_Client_ServerProxy[+ YZend_XmlRpc_Client_ServerIntrospection[+ YZend_XmlRpc_Client_IntrospectException[% MZend_XmlRpc_Client_HttpException[& OZend_XmlRpc_Client_FaultException[! EZend_XmlRpc_Client_Exception[& OZend_Wildfire_Protocol_JsonStream[!
 EZend_Wildfire_Plugin_FirePhp[.	 _Zend_Wildfire_Plugin_FirePhp_TableMessage[) UZend_Wildfire_Plugin_FirePhp_Message[ ;Zend_Wildfire_Exception[& OZend_Wildfire_Channel_HttpHeaders[ Zend_View[ -Zend_View_Stream[ 5Zend_View_Helper_Url[ AZend_View_Helper_Translate[) UZend_View_Helper_RenderToPlaceholder[!  EZend_View_Helper_Placeholder[* WZend_View_Helper_Placeholder_Registry[4~ kZend_View_Helper_Placeholder_Registry_Exception[+} YZend_View_Helper_Placeholder_Container[6| oZend_View_Helper_Placeholder_Container_Standalone[5{ mZend_View_Helper_Placeholder_Container_Exception[4z kZend_View_Helper_Placeholder_Container_Abstract[!y EZend_View_Helper_PartialLoop[x =Zend_View_Helper_Partial['w QZend_View_Helper_Partial_Exception['v QZend_View_Helper_PaginationControl[u ;Zend_View_Helper_Layout[t 7Zend_View_Helper_Json["s GZend_View_Helper_InlineScript[#r IZend_View_Helper_HtmlQuicktime[q ?Zend_View_Helper_HtmlPage[ p CZend_View_Helper_HtmlObject[o ?Zend_View_Helper_HtmlList[n AZend_View_Helper_HtmlFlash[!m EZend_View_Helper_HtmlElement[l AZend_View_Helper_HeadTitle[k AZend_View_Helper_HeadStyle[ j CZend_View_Helper_HeadScript[i ?Zend_View_Helper_HeadMeta[h ?Zend_View_Helper_HeadLink["g GZend_View_Helper_FormTextarea[f ?Zend_View_Helper_FormText[ e CZend_View_Helper_FormSubmit[ d CZend_View_Helper_FormSelect[c AZend_View_Helper_FormReset[b AZend_View_Helper_FormRadio["a GZend_View_Helper_FormPassword[` ?Zend_View_Helper_FormNote[   d  i>nK+W.\3]7




]
1
				o	L	)	tJxK tP-h9f>mL)
gC'_B   'q QZend_Http_Client_Adapter_Interface]p AZend_Gdata_App_MediaSource]"o GZend_Form_Decorator_Interface]n 7Zend_Filter_Interface] m CZend_Feed_Builder_Interface] l CZend_Db_Statement_Interface]+k YZend_Controller_Router_Route_Interface]%j MZend_Controller_Router_Interface])i UZend_Controller_Dispatcher_Interface]h 5Zend_Captcha_Adapter]!g EZend_Cache_Backend_Interface])f UZend_Cache_Backend_ExtendedInterface] e CZend_Auth_Storage_Interface] d CZend_Auth_Adapter_Interface].c _Zend_Auth_Adapter_Http_Resolver_Interface]b ;Zend_Acl_Role_Interface] a CZend_Acl_Resource_Interface]` ?Zend_Acl_Assert_Interface]#_ IZend_Wildfire_Plugin_Interface\$^ KZend_Wildfire_Channel_Interface\] 3Zend_View_Interface\\ AZend_View_Helper_Interface\[ ;Zend_Validate_Interface\%Z MZend_Validate_Hostname_Interface\%Y MZend_Session_Validator_Interface\'X QZend_Session_SaveHandler_Interface\W 7Zend_Server_Interface\!V EZend_Search_Lucene_Interface\U 9Zend_Request_Interface\T ?Zend_Pdf_Filter_Interface\&S OZend_Pdf_ElementFactory_Interface\,R [Zend_Paginator_ScrollingStyle_Interface\%Q MZend_Paginator_Adapter_Interface\$P KZend_Memory_Container_Interface\)O UZend_Mail_Storage_Writable_Interface\'N QZend_Mail_Storage_Folder_Interface\M =Zend_Mail_Part_Interface\ L CZend_Mail_Message_Interface\!K EZend_Log_Formatter_Interface\J ?Zend_Log_Filter_Interface\'I QZend_Loader_PluginLoader_Interface\3H iZend_InfoCard_Xml_Security_Transform_Interface\(G SZend_InfoCard_Xml_KeyInfo_Interface\(F SZend_InfoCard_Xml_Element_Interface\*E WZend_InfoCard_Xml_Assertion_Interface\-D ]Zend_InfoCard_Cipher_Symmetric_Interface\7C qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface\7B qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interface\+A YZend_InfoCard_Cipher_Pki_Rsa_Interface\'@ QZend_InfoCard_Cipher_Pki_Interface\$? KZend_InfoCard_Adapter_Interface\'> QZend_Http_Client_Adapter_Interface\= AZend_Gdata_App_MediaSource\"< GZend_Form_Decorator_Interface\; 7Zend_Filter_Interface\ : CZend_Feed_Builder_Interface\ 9 CZend_Db_Statement_Interface\+8 YZend_Controller_Router_Route_Interface\%7 MZend_Controller_Router_Interface\)6 UZend_Controller_Dispatcher_Interface\5 5Zend_Captcha_Adapter\!4 EZend_Cache_Backend_Interface\)3 UZend_Cache_Backend_ExtendedInterface\ 2 CZend_Auth_Storage_Interface\ 1 CZend_Auth_Adapter_Interface\.0 _Zend_Auth_Adapter_Http_Resolver_Interface\/ ;Zend_Acl_Role_Interface\ . CZend_Acl_Resource_Interface\- ?Zend_Acl_Assert_Interface\#, IZend_Wildfire_Plugin_Interface[$+ KZend_Wildfire_Channel_Interface[* 3Zend_View_Interface[) AZend_View_Helper_Interface[( ;Zend_Validate_Interface[%' MZend_Validate_Hostname_Interface[(& SZend_Text_Table_Decorator_Interface[&% OZend_Soap_Wsdl_Strategy_Interface[%$ MZend_Session_Validator_Interface['# QZend_Session_SaveHandler_Interface[" 7Zend_Server_Interface[!! EZend_Search_Lucene_Interface[  9Zend_Request_Interface[ ?Zend_Pdf_Filter_Interface[& OZend_Pdf_ElementFactory_Interface[, [Zend_Paginator_ScrollingStyle_Interface[% MZend_Paginator_Adapter_Interface[$ KZend_Memory_Container_Interface[) UZend_Mail_Storage_Writable_Interface[' QZend_Mail_Storage_Folder_Interface[ =Zend_Mail_Part_Interface[  CZend_Mail_Message_Interface[! EZend_Log_Formatter_Interface[ ?Zend_Log_Filter_Interface[' QZend_Loader_PluginLoader_Interface[3 iZend_InfoCard_Xml_Security_Transform_Interface[( SZend_InfoCard_Xml_KeyInfo_Interface[( SZend_InfoCard_Xml_Element_Interface[* WZend_InfoCard_Xml_Assertion_Interface[- ]Zend_InfoCard_Cipher_Symmetric_Interface[7 qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface[   h  ]<wX7cCmR:q^D*





l
X
2
				Z	s>K {Y;mCvQ& Z,|P+pJ.            %2 MZend_Db_Adapter_Mysqli_Exception\1 ?Zend_Db_Adapter_Exception\0 3Zend_Db_Adapter_Db2\"/ GZend_Db_Adapter_Db2_Exception\. =Zend_Db_Adapter_Abstract\- Zend_Date\, 3Zend_Date_Exception\+ 5Zend_Date_DateObject\* -Zend_Date_Cities\) 'Zend_Currency\( ;Zend_Currency_Exception\!' EZend_Controller_Router_Route\(& SZend_Controller_Router_Route_Static\'% QZend_Controller_Router_Route_Regex\($ SZend_Controller_Router_Route_Module\*# WZend_Controller_Router_Route_Hostname\'" QZend_Controller_Router_Route_Chain\*! WZend_Controller_Router_Route_Abstract\#  IZend_Controller_Router_Rewrite\% MZend_Controller_Router_Exception\$ KZend_Controller_Router_Abstract\* WZend_Controller_Response_HttpTestCase\" GZend_Controller_Response_Http\' QZend_Controller_Response_Exception\! EZend_Controller_Response_Cli\& OZend_Controller_Response_Abstract\# IZend_Controller_Request_Simple\) UZend_Controller_Request_HttpTestCase\! EZend_Controller_Request_Http\& OZend_Controller_Request_Exception\& OZend_Controller_Request_Apache404\% MZend_Controller_Request_Abstract\( SZend_Controller_Plugin_ErrorHandler\" GZend_Controller_Plugin_Broker\' QZend_Controller_Plugin_ActionStack\$ KZend_Controller_Plugin_Abstract\ 7Zend_Controller_Front\ ?Zend_Controller_Exception\( SZend_Controller_Dispatcher_Standard\) UZend_Controller_Dispatcher_Exception\(
 SZend_Controller_Dispatcher_Abstract\	 9Zend_Controller_Action\( SZend_Controller_Action_HelperBroker\6 oZend_Controller_Action_HelperBroker_PriorityStack\/ aZend_Controller_Action_Helper_ViewRenderer\& OZend_Controller_Action_Helper_Url\- ]Zend_Controller_Action_Helper_Redirector\' QZend_Controller_Action_Helper_Json\1 eZend_Controller_Action_Helper_FlashMessenger\0 cZend_Controller_Action_Helper_ContextSwitch\<  {Zend_Controller_Action_Helper_AutoCompleteScriptaculous\3 iZend_Controller_Action_Helper_AutoCompleteDojo\8~ sZend_Controller_Action_Helper_AutoComplete_Abstract\.} _Zend_Controller_Action_Helper_AjaxContext\.| _Zend_Controller_Action_Helper_ActionStack\+{ YZend_Controller_Action_Helper_Abstract\%z MZend_Controller_Action_Exception\y 3Zend_Console_Getopt\"x GZend_Console_Getopt_Exception\w #Zend_Config\v +Zend_Config_Xml\u +Zend_Config_Ini\t 7Zend_Config_Exception\s /Zend_Captcha_Word\r 9Zend_Captcha_ReCaptcha\q 1Zend_Captcha_Image\p 3Zend_Captcha_Figlet\o /Zend_Captcha_Dumb\n /Zend_Captcha_Base\m !Zend_Cache\l =Zend_Cache_Frontend_Page\k AZend_Cache_Frontend_Output\!j EZend_Cache_Frontend_Function\i =Zend_Cache_Frontend_File\h ?Zend_Cache_Frontend_Class\g 5Zend_Cache_Exception\f +Zend_Cache_Core\e 1Zend_Cache_Backend\$d KZend_Cache_Backend_ZendPlatform\c ?Zend_Cache_Backend_Xcache\!b EZend_Cache_Backend_TwoLevels\a ;Zend_Cache_Backend_Test\` ?Zend_Cache_Backend_Sqlite\!_ EZend_Cache_Backend_Memcached\^ ;Zend_Cache_Backend_File\] 9Zend_Cache_Backend_Apc\\ Zend_Auth\[ ?Zend_Auth_Storage_Session\$Z KZend_Auth_Storage_NonPersistent\ Y CZend_Auth_Storage_Exception\X -Zend_Auth_Result\W 3Zend_Auth_Exception\V =Zend_Auth_Adapter_OpenId\U 9Zend_Auth_Adapter_Ldap\T AZend_Auth_Adapter_InfoCard\S 9Zend_Auth_Adapter_Http\)R UZend_Auth_Adapter_Http_Resolver_File\.Q _Zend_Auth_Adapter_Http_Resolver_Exception\ P CZend_Auth_Adapter_Exception\O =Zend_Auth_Adapter_Digest\N ?Zend_Auth_Adapter_DbTable\M ?Zend_Amf_Value_TraitsInfo\-L ]Zend_Amf_Value_Messaging_RemotingMessage\*K WZend_Amf_Value_Messaging_ErrorMessage\   f  tP,cI4X:~\>$^7






j
6
			y	K	 nH yO)pAuJc7	l>sN vH                              ) UZend_Dojo_View_Helper_SimpleTextarea\& OZend_Dojo_View_Helper_RadioButton\* WZend_Dojo_View_Helper_PasswordTextBox\( SZend_Dojo_View_Helper_NumberTextBox\( SZend_Dojo_View_Helper_NumberSpinner\+ YZend_Dojo_View_Helper_HorizontalSlider\ AZend_Dojo_View_Helper_Form\* WZend_Dojo_View_Helper_FilteringSelect\! EZend_Dojo_View_Helper_Editor\ AZend_Dojo_View_Helper_Dojo\) UZend_Dojo_View_Helper_Dojo_Container\) UZend_Dojo_View_Helper_DijitContainer\  CZend_Dojo_View_Helper_Dijit\& OZend_Dojo_View_Helper_DateTextBox\*
 WZend_Dojo_View_Helper_CurrencyTextBox\&	 OZend_Dojo_View_Helper_ContentPane\# IZend_Dojo_View_Helper_ComboBox\# IZend_Dojo_View_Helper_CheckBox\! EZend_Dojo_View_Helper_Button\* WZend_Dojo_View_Helper_BorderContainer\( SZend_Dojo_View_Helper_AccordionPane\- ]Zend_Dojo_View_Helper_AccordionContainer\ =Zend_Dojo_View_Exception\ )Zend_Dojo_Form\  9Zend_Dojo_Form_SubForm\* WZend_Dojo_Form_Element_VerticalSlider\-~ ]Zend_Dojo_Form_Element_ValidationTextBox\'} QZend_Dojo_Form_Element_TimeTextBox\#| IZend_Dojo_Form_Element_TextBox\${ KZend_Dojo_Form_Element_Textarea\(z SZend_Dojo_Form_Element_SubmitButton\"y GZend_Dojo_Form_Element_Slider\'x QZend_Dojo_Form_Element_RadioButton\+w YZend_Dojo_Form_Element_PasswordTextBox\)v UZend_Dojo_Form_Element_NumberTextBox\)u UZend_Dojo_Form_Element_NumberSpinner\,t [Zend_Dojo_Form_Element_HorizontalSlider\+s YZend_Dojo_Form_Element_FilteringSelect\"r GZend_Dojo_Form_Element_Editor\&q OZend_Dojo_Form_Element_DijitMulti\!p EZend_Dojo_Form_Element_Dijit\'o QZend_Dojo_Form_Element_DateTextBox\+n YZend_Dojo_Form_Element_CurrencyTextBox\$m KZend_Dojo_Form_Element_ComboBox\$l KZend_Dojo_Form_Element_CheckBox\"k GZend_Dojo_Form_Element_Button\ j CZend_Dojo_Form_DisplayGroup\*i WZend_Dojo_Form_Decorator_TabContainer\,h [Zend_Dojo_Form_Decorator_StackContainer\,g [Zend_Dojo_Form_Decorator_SplitContainer\'f QZend_Dojo_Form_Decorator_DijitForm\*e WZend_Dojo_Form_Decorator_DijitElement\,d [Zend_Dojo_Form_Decorator_DijitContainer\)c UZend_Dojo_Form_Decorator_ContentPane\-b ]Zend_Dojo_Form_Decorator_BorderContainer\+a YZend_Dojo_Form_Decorator_AccordionPane\0` cZend_Dojo_Form_Decorator_AccordionContainer\_ 3Zend_Dojo_Exception\^ )Zend_Dojo_Data\] !Zend_Debug\\ Zend_Db\[ 'Zend_Db_Table\Z 5Zend_Db_Table_Select\#Y IZend_Db_Table_Select_Exception\X 5Zend_Db_Table_Rowset\#W IZend_Db_Table_Rowset_Exception\"V GZend_Db_Table_Rowset_Abstract\U /Zend_Db_Table_Row\ T CZend_Db_Table_Row_Exception\S AZend_Db_Table_Row_Abstract\R ;Zend_Db_Table_Exception\Q 9Zend_Db_Table_Abstract\P /Zend_Db_Statement\O 7Zend_Db_Statement_Pdo\N ?Zend_Db_Statement_Pdo_Ibm\M =Zend_Db_Statement_Oracle\'L QZend_Db_Statement_Oracle_Exception\K =Zend_Db_Statement_Mysqli\'J QZend_Db_Statement_Mysqli_Exception\ I CZend_Db_Statement_Exception\H 7Zend_Db_Statement_Db2\$G KZend_Db_Statement_Db2_Exception\F )Zend_Db_Select\E =Zend_Db_Select_Exception\D -Zend_Db_Profiler\C 9Zend_Db_Profiler_Query\B =Zend_Db_Profiler_Firebug\A AZend_Db_Profiler_Exception\@ %Zend_Db_Expr\? /Zend_Db_Exception\> AZend_Db_Adapter_Pdo_Sqlite\= ?Zend_Db_Adapter_Pdo_Pgsql\< ;Zend_Db_Adapter_Pdo_Oci\; ?Zend_Db_Adapter_Pdo_Mysql\: ?Zend_Db_Adapter_Pdo_Mssql\9 ;Zend_Db_Adapter_Pdo_Ibm\ 8 CZend_Db_Adapter_Pdo_Ibm_Ids\ 7 CZend_Db_Adapter_Pdo_Ibm_Db2\!6 EZend_Db_Adapter_Pdo_Abstract\5 9Zend_Db_Adapter_Oracle\%4 MZend_Db_Adapter_Oracle_Exception\3 9Zend_Db_Adapter_Mysqli\   p  V+WE*	kGpT>, ~dG,




}
e
E
(
					\	.W) yJ6wO,vR0^;xP*fC#	nR+                    , [Zend_Gdata_App_CaptchaRequiredException\# IZend_Gdata_App_BaseMediaSource\ 3Zend_Gdata_App_Base\* WZend_Gdata_App_BadMethodCallException\! EZend_Gdata_App_AuthException\ Zend_Form\ /Zend_Form_SubForm\ 3Zend_Form_Exception\  /Zend_Form_Element\ ;Zend_Form_Element_Xhtml\~ AZend_Form_Element_Textarea\} 9Zend_Form_Element_Text\| =Zend_Form_Element_Submit\{ =Zend_Form_Element_Select\z ;Zend_Form_Element_Reset\y ;Zend_Form_Element_Radio\x AZend_Form_Element_Password\"w GZend_Form_Element_Multiselect\$v KZend_Form_Element_MultiCheckbox\u ;Zend_Form_Element_Multi\t ;Zend_Form_Element_Image\s =Zend_Form_Element_Hidden\r 9Zend_Form_Element_Hash\q 9Zend_Form_Element_File\ p CZend_Form_Element_Exception\o AZend_Form_Element_Checkbox\n ?Zend_Form_Element_Captcha\m =Zend_Form_Element_Button\l 9Zend_Form_DisplayGroup\#k IZend_Form_Decorator_ViewScript\#j IZend_Form_Decorator_ViewHelper\i ?Zend_Form_Decorator_Label\h ?Zend_Form_Decorator_Image\ g CZend_Form_Decorator_HtmlTag\%f MZend_Form_Decorator_FormElements\e =Zend_Form_Decorator_Form\d =Zend_Form_Decorator_File\!c EZend_Form_Decorator_Fieldset\"b GZend_Form_Decorator_Exception\a AZend_Form_Decorator_Errors\$` KZend_Form_Decorator_DtDdWrapper\$_ KZend_Form_Decorator_Description\ ^ CZend_Form_Decorator_Captcha\%] MZend_Form_Decorator_Captcha_Word\!\ EZend_Form_Decorator_Callback\![ EZend_Form_Decorator_Abstract\Z #Zend_Filter\+Y YZend_Filter_Word_UnderscoreToSeparator\&X OZend_Filter_Word_UnderscoreToDash\+W YZend_Filter_Word_UnderscoreToCamelCase\*V WZend_Filter_Word_SeparatorToSeparator\%U MZend_Filter_Word_SeparatorToDash\*T WZend_Filter_Word_SeparatorToCamelCase\(S SZend_Filter_Word_Separator_Abstract\&R OZend_Filter_Word_DashToUnderscore\%Q MZend_Filter_Word_DashToSeparator\%P MZend_Filter_Word_DashToCamelCase\+O YZend_Filter_Word_CamelCaseToUnderscore\*N WZend_Filter_Word_CamelCaseToSeparator\%M MZend_Filter_Word_CamelCaseToDash\L 7Zend_Filter_StripTags\K ?Zend_Filter_StripNewlines\J 9Zend_Filter_StringTrim\I ?Zend_Filter_StringToUpper\H ?Zend_Filter_StringToLower\G 5Zend_Filter_RealPath\F ;Zend_Filter_PregReplace\E +Zend_Filter_Int\D /Zend_Filter_Input\C 7Zend_Filter_Inflector\B =Zend_Filter_HtmlEntities\A ;Zend_Filter_File_Rename\@ 7Zend_Filter_Exception\? +Zend_Filter_Dir\> 1Zend_Filter_Digits\= 5Zend_Filter_BaseName\< /Zend_Filter_Alpha\; /Zend_Filter_Alnum\: 1Zend_File_Transfer\!9 EZend_File_Transfer_Exception\$8 KZend_File_Transfer_Adapter_Http\(7 SZend_File_Transfer_Adapter_Abstract\6 Zend_Feed\5 'Zend_Feed_Rss\4 3Zend_Feed_Exception\3 3Zend_Feed_Entry_Rss\2 5Zend_Feed_Entry_Atom\1 =Zend_Feed_Entry_Abstract\0 /Zend_Feed_Element\/ /Zend_Feed_Builder\. =Zend_Feed_Builder_Header\$- KZend_Feed_Builder_Header_Itunes\ , CZend_Feed_Builder_Exception\+ ;Zend_Feed_Builder_Entry\* )Zend_Feed_Atom\) 1Zend_Feed_Abstract\( )Zend_Exception\' )Zend_Dom_Query\& 7Zend_Dom_Query_Result\% =Zend_Dom_Query_Css2Xpath\$ 1Zend_Dom_Exception\# Zend_Dojo\)" UZend_Dojo_View_Helper_VerticalSlider\,! [Zend_Dojo_View_Helper_ValidationTextBox\&  OZend_Dojo_View_Helper_TimeTextBox\" GZend_Dojo_View_Helper_TextBox\# IZend_Dojo_View_Helper_Textarea\' QZend_Dojo_View_Helper_TabContainer\' QZend_Dojo_View_Helper_SubmitButton\) UZend_Dojo_View_Helper_StackContainer\) UZend_Dojo_View_Helper_SplitContainer\! EZend_Dojo_View_Helper_Slider\   `  pGzO)k@wP'vQ!




c
L
1
			}	P	i:f?Z+hC'O"[)~eGsC        $h KZend_Gdata_Exif_Extension_Model\#g IZend_Gdata_Exif_Extension_Make\"f GZend_Gdata_Exif_Extension_Iso\,e [Zend_Gdata_Exif_Extension_ImageUniqueId\$d KZend_Gdata_Exif_Extension_FStop\*c WZend_Gdata_Exif_Extension_FocalLength\$b KZend_Gdata_Exif_Extension_Flash\'a QZend_Gdata_Exif_Extension_Exposure\'` QZend_Gdata_Exif_Extension_Distance\_ 7Zend_Gdata_Exif_Entry\^ -Zend_Gdata_Entry\] 7Zend_Gdata_DublinCore\*\ WZend_Gdata_DublinCore_Extension_Title\,[ [Zend_Gdata_DublinCore_Extension_Subject\+Z YZend_Gdata_DublinCore_Extension_Rights\.Y _Zend_Gdata_DublinCore_Extension_Publisher\-X ]Zend_Gdata_DublinCore_Extension_Language\/W aZend_Gdata_DublinCore_Extension_Identifier\+V YZend_Gdata_DublinCore_Extension_Format\0U cZend_Gdata_DublinCore_Extension_Description\)T UZend_Gdata_DublinCore_Extension_Date\,S [Zend_Gdata_DublinCore_Extension_Creator\R +Zend_Gdata_Docs\Q 7Zend_Gdata_Docs_Query\%P MZend_Gdata_Docs_DocumentListFeed\&O OZend_Gdata_Docs_DocumentListEntry\N 9Zend_Gdata_ClientLogin\M 3Zend_Gdata_Calendar\!L EZend_Gdata_Calendar_ListFeed\"K GZend_Gdata_Calendar_ListEntry\-J ]Zend_Gdata_Calendar_Extension_WebContent\+I YZend_Gdata_Calendar_Extension_Timezone\9H uZend_Gdata_Calendar_Extension_SendEventNotifications\+G YZend_Gdata_Calendar_Extension_Selected\+F YZend_Gdata_Calendar_Extension_QuickAdd\'E QZend_Gdata_Calendar_Extension_Link\)D UZend_Gdata_Calendar_Extension_Hidden\(C SZend_Gdata_Calendar_Extension_Color\.B _Zend_Gdata_Calendar_Extension_AccessLevel\#A IZend_Gdata_Calendar_EventQuery\"@ GZend_Gdata_Calendar_EventFeed\#? IZend_Gdata_Calendar_EventEntry\> -Zend_Gdata_Books\!= EZend_Gdata_Books_VolumeQuery\ < CZend_Gdata_Books_VolumeFeed\!; EZend_Gdata_Books_VolumeEntry\+: YZend_Gdata_Books_Extension_Viewability\-9 ]Zend_Gdata_Books_Extension_ThumbnailLink\&8 OZend_Gdata_Books_Extension_Review\+7 YZend_Gdata_Books_Extension_PreviewLink\(6 SZend_Gdata_Books_Extension_InfoLink\-5 ]Zend_Gdata_Books_Extension_Embeddability\)4 UZend_Gdata_Books_Extension_BooksLink\-3 ]Zend_Gdata_Books_Extension_BooksCategory\.2 _Zend_Gdata_Books_Extension_AnnotationLink\$1 KZend_Gdata_Books_CollectionFeed\%0 MZend_Gdata_Books_CollectionEntry\/ 1Zend_Gdata_AuthSub\. )Zend_Gdata_App\- 3Zend_Gdata_App_Util\#, IZend_Gdata_App_MediaFileSource\+ ?Zend_Gdata_App_MediaEntry\2* gZend_Gdata_App_LoggingHttpClientAdapterSocket\) AZend_Gdata_App_IOException\,( [Zend_Gdata_App_InvalidArgumentException\!' EZend_Gdata_App_HttpException\$& KZend_Gdata_App_FeedSourceParent\#% IZend_Gdata_App_FeedEntryParent\$ 3Zend_Gdata_App_Feed\# =Zend_Gdata_App_Extension\!" EZend_Gdata_App_Extension_Uri\%! MZend_Gdata_App_Extension_Updated\#  IZend_Gdata_App_Extension_Title\" GZend_Gdata_App_Extension_Text\% MZend_Gdata_App_Extension_Summary\& OZend_Gdata_App_Extension_Subtitle\$ KZend_Gdata_App_Extension_Source\$ KZend_Gdata_App_Extension_Rights\' QZend_Gdata_App_Extension_Published\$ KZend_Gdata_App_Extension_Person\" GZend_Gdata_App_Extension_Name\" GZend_Gdata_App_Extension_Logo\" GZend_Gdata_App_Extension_Link\  CZend_Gdata_App_Extension_Id\" GZend_Gdata_App_Extension_Icon\' QZend_Gdata_App_Extension_Generator\# IZend_Gdata_App_Extension_Email\% MZend_Gdata_App_Extension_Element\# IZend_Gdata_App_Extension_Draft\% MZend_Gdata_App_Extension_Control\) UZend_Gdata_App_Extension_Contributor\% MZend_Gdata_App_Extension_Content\& OZend_Gdata_App_Extension_Category\$ KZend_Gdata_App_Extension_Author\
 =Zend_Gdata_App_Exception\	 5Zend_Gdata_App_Entry\   a  }Q'])tL^= `0




b
6
				z	P	-	a>iP3c@!_+pAbI$ ]/pE                                        )I UZend_Gdata_Photos_Extension_Location\#H IZend_Gdata_Photos_Extension_Id\'G QZend_Gdata_Photos_Extension_Height\2F gZend_Gdata_Photos_Extension_CommentingEnabled\-E ]Zend_Gdata_Photos_Extension_CommentCount\'D QZend_Gdata_Photos_Extension_Client\)C UZend_Gdata_Photos_Extension_Checksum\*B WZend_Gdata_Photos_Extension_BytesUsed\(A SZend_Gdata_Photos_Extension_AlbumId\'@ QZend_Gdata_Photos_Extension_Access\#? IZend_Gdata_Photos_CommentEntry\!> EZend_Gdata_Photos_AlbumQuery\ = CZend_Gdata_Photos_AlbumFeed\!< EZend_Gdata_Photos_AlbumEntry\; -Zend_Gdata_Media\: 7Zend_Gdata_Media_Feed\*9 WZend_Gdata_Media_Extension_MediaTitle\.8 _Zend_Gdata_Media_Extension_MediaThumbnail\)7 UZend_Gdata_Media_Extension_MediaText\06 cZend_Gdata_Media_Extension_MediaRestriction\+5 YZend_Gdata_Media_Extension_MediaRating\+4 YZend_Gdata_Media_Extension_MediaPlayer\-3 ]Zend_Gdata_Media_Extension_MediaKeywords\)2 UZend_Gdata_Media_Extension_MediaHash\*1 WZend_Gdata_Media_Extension_MediaGroup\00 cZend_Gdata_Media_Extension_MediaDescription\+/ YZend_Gdata_Media_Extension_MediaCredit\.. _Zend_Gdata_Media_Extension_MediaCopyright\,- [Zend_Gdata_Media_Extension_MediaContent\-, ]Zend_Gdata_Media_Extension_MediaCategory\+ 9Zend_Gdata_Media_Entry\* AZend_Gdata_Kind_EventEntry\) 7Zend_Gdata_HttpClient\( )Zend_Gdata_Geo\' 3Zend_Gdata_Geo_Feed\$& KZend_Gdata_Geo_Extension_GmlPos\&% OZend_Gdata_Geo_Extension_GmlPoint\)$ UZend_Gdata_Geo_Extension_GeoRssWhere\# 5Zend_Gdata_Geo_Entry\" -Zend_Gdata_Gbase\"! GZend_Gdata_Gbase_SnippetQuery\!  EZend_Gdata_Gbase_SnippetFeed\" GZend_Gdata_Gbase_SnippetEntry\ 9Zend_Gdata_Gbase_Query\ AZend_Gdata_Gbase_ItemQuery\ ?Zend_Gdata_Gbase_ItemFeed\ AZend_Gdata_Gbase_ItemEntry\ 7Zend_Gdata_Gbase_Feed\- ]Zend_Gdata_Gbase_Extension_BaseAttribute\ 9Zend_Gdata_Gbase_Entry\ -Zend_Gdata_Gapps\ AZend_Gdata_Gapps_UserQuery\ ?Zend_Gdata_Gapps_UserFeed\ AZend_Gdata_Gapps_UserEntry\& OZend_Gdata_Gapps_ServiceException\ 9Zend_Gdata_Gapps_Query\# IZend_Gdata_Gapps_NicknameQuery\" GZend_Gdata_Gapps_NicknameFeed\# IZend_Gdata_Gapps_NicknameEntry\% MZend_Gdata_Gapps_Extension_Quota\( SZend_Gdata_Gapps_Extension_Nickname\$ KZend_Gdata_Gapps_Extension_Name\% MZend_Gdata_Gapps_Extension_Login\)
 UZend_Gdata_Gapps_Extension_EmailList\	 9Zend_Gdata_Gapps_Error\- ]Zend_Gdata_Gapps_EmailListRecipientQuery\, [Zend_Gdata_Gapps_EmailListRecipientFeed\- ]Zend_Gdata_Gapps_EmailListRecipientEntry\$ KZend_Gdata_Gapps_EmailListQuery\# IZend_Gdata_Gapps_EmailListFeed\$ KZend_Gdata_Gapps_EmailListEntry\ +Zend_Gdata_Feed\ 5Zend_Gdata_Extension\  =Zend_Gdata_Extension_Who\ AZend_Gdata_Extension_Where\~ ?Zend_Gdata_Extension_When\$} KZend_Gdata_Extension_Visibility\&| OZend_Gdata_Extension_Transparency\"{ GZend_Gdata_Extension_Reminder\-z ]Zend_Gdata_Extension_RecurrenceException\$y KZend_Gdata_Extension_Recurrence\ x CZend_Gdata_Extension_Rating\'w QZend_Gdata_Extension_OriginalEvent\0v cZend_Gdata_Extension_OpenSearchTotalResults\.u _Zend_Gdata_Extension_OpenSearchStartIndex\0t cZend_Gdata_Extension_OpenSearchItemsPerPage\"s GZend_Gdata_Extension_FeedLink\*r WZend_Gdata_Extension_ExtendedProperty\%q MZend_Gdata_Extension_EventStatus\#p IZend_Gdata_Extension_EntryLink\"o GZend_Gdata_Extension_Comments\&n OZend_Gdata_Extension_AttendeeType\(m SZend_Gdata_Extension_AttendeeStatus\l +Zend_Gdata_Exif\k 5Zend_Gdata_Exif_Feed\#j IZend_Gdata_Exif_Extension_Time\#i IZend_Gdata_Exif_Extension_Tags\   [  tFV) {O$iE"xN 



Z
0
			|	M	a8T(uC_1zIk=c6
mR?         $$ KZend_Http_Client_Adapter_Socket\## IZend_Http_Client_Adapter_Proxy\'" QZend_Http_Client_Adapter_Exception\! !Zend_Gdata\  1Zend_Gdata_YouTube\" GZend_Gdata_YouTube_VideoQuery\! EZend_Gdata_YouTube_VideoFeed\" GZend_Gdata_YouTube_VideoEntry\( SZend_Gdata_YouTube_UserProfileEntry\( SZend_Gdata_YouTube_SubscriptionFeed\) UZend_Gdata_YouTube_SubscriptionEntry\) UZend_Gdata_YouTube_PlaylistVideoFeed\* WZend_Gdata_YouTube_PlaylistVideoEntry\( SZend_Gdata_YouTube_PlaylistListFeed\) UZend_Gdata_YouTube_PlaylistListEntry\" GZend_Gdata_YouTube_MediaEntry\* WZend_Gdata_YouTube_Extension_Username\' QZend_Gdata_YouTube_Extension_Token\( SZend_Gdata_YouTube_Extension_Status\, [Zend_Gdata_YouTube_Extension_Statistics\' QZend_Gdata_YouTube_Extension_State\( SZend_Gdata_YouTube_Extension_School\- ]Zend_Gdata_YouTube_Extension_ReleaseDate\. _Zend_Gdata_YouTube_Extension_Relationship\* WZend_Gdata_YouTube_Extension_Recorded\& OZend_Gdata_YouTube_Extension_Racy\)
 UZend_Gdata_YouTube_Extension_Private\*	 WZend_Gdata_YouTube_Extension_Position\, [Zend_Gdata_YouTube_Extension_Occupation\) UZend_Gdata_YouTube_Extension_NoEmbed\' QZend_Gdata_YouTube_Extension_Music\( SZend_Gdata_YouTube_Extension_Movies\, [Zend_Gdata_YouTube_Extension_MediaGroup\. _Zend_Gdata_YouTube_Extension_MediaContent\* WZend_Gdata_YouTube_Extension_Location\& OZend_Gdata_YouTube_Extension_Link\*  WZend_Gdata_YouTube_Extension_Hometown\) UZend_Gdata_YouTube_Extension_Hobbies\(~ SZend_Gdata_YouTube_Extension_Gender\*} WZend_Gdata_YouTube_Extension_Duration\-| ]Zend_Gdata_YouTube_Extension_Description\){ UZend_Gdata_YouTube_Extension_Control\)z UZend_Gdata_YouTube_Extension_Company\'y QZend_Gdata_YouTube_Extension_Books\%x MZend_Gdata_YouTube_Extension_Age\#w IZend_Gdata_YouTube_ContactFeed\$v KZend_Gdata_YouTube_ContactEntry\#u IZend_Gdata_YouTube_CommentFeed\$t KZend_Gdata_YouTube_CommentEntry\s ;Zend_Gdata_Spreadsheets\*r WZend_Gdata_Spreadsheets_WorksheetFeed\+q YZend_Gdata_Spreadsheets_WorksheetEntry\,p [Zend_Gdata_Spreadsheets_SpreadsheetFeed\-o ]Zend_Gdata_Spreadsheets_SpreadsheetEntry\&n OZend_Gdata_Spreadsheets_ListQuery\%m MZend_Gdata_Spreadsheets_ListFeed\&l OZend_Gdata_Spreadsheets_ListEntry\/k aZend_Gdata_Spreadsheets_Extension_RowCount\-j ]Zend_Gdata_Spreadsheets_Extension_Custom\/i aZend_Gdata_Spreadsheets_Extension_ColCount\+h YZend_Gdata_Spreadsheets_Extension_Cell\*g WZend_Gdata_Spreadsheets_DocumentQuery\&f OZend_Gdata_Spreadsheets_CellQuery\%e MZend_Gdata_Spreadsheets_CellFeed\&d OZend_Gdata_Spreadsheets_CellEntry\c -Zend_Gdata_Query\b /Zend_Gdata_Photos\ a CZend_Gdata_Photos_UserQuery\` AZend_Gdata_Photos_UserFeed\ _ CZend_Gdata_Photos_UserEntry\^ AZend_Gdata_Photos_TagEntry\!] EZend_Gdata_Photos_PhotoQuery\ \ CZend_Gdata_Photos_PhotoFeed\![ EZend_Gdata_Photos_PhotoEntry\&Z OZend_Gdata_Photos_Extension_Width\'Y QZend_Gdata_Photos_Extension_Weight\(X SZend_Gdata_Photos_Extension_Version\%W MZend_Gdata_Photos_Extension_User\*V WZend_Gdata_Photos_Extension_Timestamp\*U WZend_Gdata_Photos_Extension_Thumbnail\%T MZend_Gdata_Photos_Extension_Size\)S UZend_Gdata_Photos_Extension_Rotation\+R YZend_Gdata_Photos_Extension_QuotaLimit\-Q ]Zend_Gdata_Photos_Extension_QuotaCurrent\)P UZend_Gdata_Photos_Extension_Position\(O SZend_Gdata_Photos_Extension_PhotoId\3N iZend_Gdata_Photos_Extension_NumPhotosRemaining\*M WZend_Gdata_Photos_Extension_NumPhotos\)L UZend_Gdata_Photos_Extension_Nickname\%K MZend_Gdata_Photos_Extension_Name\2J gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum\   n iM2^&zQ1b:pN!


r
E
"						l	I	#	w^LmB!sR9%
gF+fL0c8}W6rM'                              ! EZend_Mail_Transport_Sendmail\" GZend_Mail_Transport_Exception\! EZend_Mail_Transport_Abstract\ /Zend_Mail_Storage\' QZend_Mail_Storage_Writable_Maildir\ 9Zend_Mail_Storage_Pop3\ 9Zend_Mail_Storage_Mbox\ ?Zend_Mail_Storage_Maildir\
 9Zend_Mail_Storage_Imap\	 =Zend_Mail_Storage_Folder\" GZend_Mail_Storage_Folder_Mbox\% MZend_Mail_Storage_Folder_Maildir\  CZend_Mail_Storage_Exception\ AZend_Mail_Storage_Abstract\ ;Zend_Mail_Protocol_Smtp\' QZend_Mail_Protocol_Smtp_Auth_Plain\' QZend_Mail_Protocol_Smtp_Auth_Login\) UZend_Mail_Protocol_Smtp_Auth_Crammd5\  ;Zend_Mail_Protocol_Pop3\ ;Zend_Mail_Protocol_Imap\!~ EZend_Mail_Protocol_Exception\ } CZend_Mail_Protocol_Abstract\| )Zend_Mail_Part\{ 3Zend_Mail_Part_File\z /Zend_Mail_Message\y 9Zend_Mail_Message_File\x 3Zend_Mail_Exception\w Zend_Log\v 9Zend_Log_Writer_Stream\u 5Zend_Log_Writer_Null\t 5Zend_Log_Writer_Mock\s ;Zend_Log_Writer_Firebug\r 1Zend_Log_Writer_Db\q =Zend_Log_Writer_Abstract\p 9Zend_Log_Formatter_Xml\o ?Zend_Log_Formatter_Simple\n =Zend_Log_Filter_Suppress\m =Zend_Log_Filter_Priority\l ;Zend_Log_Filter_Message\k 1Zend_Log_Exception\j #Zend_Locale\i -Zend_Locale_Math\h =Zend_Locale_Math_PhpMath\g AZend_Locale_Math_Exception\f 1Zend_Locale_Format\e 7Zend_Locale_Exception\d -Zend_Locale_Data\!c EZend_Locale_Data_Translation\b #Zend_Loader\a =Zend_Loader_PluginLoader\'` QZend_Loader_PluginLoader_Exception\_ 7Zend_Loader_Exception\^ Zend_Ldap\] 3Zend_Ldap_Exception\\ #Zend_Layout\[ 7Zend_Layout_Exception\)Z UZend_Layout_Controller_Plugin_Layout\0Y cZend_Layout_Controller_Action_Helper_Layout\X Zend_Json\W -Zend_Json_Server\V 5Zend_Json_Server_Smd\!U EZend_Json_Server_Smd_Service\T ?Zend_Json_Server_Response\#S IZend_Json_Server_Response_Http\R =Zend_Json_Server_Request\"Q GZend_Json_Server_Request_Http\P AZend_Json_Server_Exception\O 9Zend_Json_Server_Error\N 3Zend_Json_Exception\M /Zend_Json_Encoder\L /Zend_Json_Decoder\K 'Zend_InfoCard\-J ]Zend_InfoCard_Xml_SecurityTokenReference\I AZend_InfoCard_Xml_Security\)H UZend_InfoCard_Xml_Security_Transform\4G kZend_InfoCard_Xml_Security_Transform_XmlExcC14N\3F iZend_InfoCard_Xml_Security_Transform_Exception\<E {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignature\)D UZend_InfoCard_Xml_Security_Exception\C ?Zend_InfoCard_Xml_KeyInfo\&B OZend_InfoCard_Xml_KeyInfo_XmlDSig\&A OZend_InfoCard_Xml_KeyInfo_Default\'@ QZend_InfoCard_Xml_KeyInfo_Abstract\ ? CZend_InfoCard_Xml_Exception\#> IZend_InfoCard_Xml_EncryptedKey\$= KZend_InfoCard_Xml_EncryptedData\+< YZend_InfoCard_Xml_EncryptedData_XmlEnc\-; ]Zend_InfoCard_Xml_EncryptedData_Abstract\: ?Zend_InfoCard_Xml_Element\ 9 CZend_InfoCard_Xml_Assertion\%8 MZend_InfoCard_Xml_Assertion_Saml\7 ;Zend_InfoCard_Exception\%6 MZend_InfoCard_Exception_Abstract\5 5Zend_InfoCard_Claims\4 5Zend_InfoCard_Cipher\53 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc\52 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc\41 kZend_InfoCard_Cipher_Symmetric_Adapter_Abstract\)0 UZend_InfoCard_Cipher_Pki_Adapter_Rsa\./ _Zend_InfoCard_Cipher_Pki_Adapter_Abstract\#. IZend_InfoCard_Cipher_Exception\$- KZend_InfoCard_Adapter_Exception\", GZend_InfoCard_Adapter_Default\+ 1Zend_Http_Response\* 3Zend_Http_Exception\) 3Zend_Http_CookieJar\( -Zend_Http_Cookie\' -Zend_Http_Client\& AZend_Http_Client_Exception\"% GZend_Http_Client_Adapter_Test\   u! rX<}^? hL1zQ5mQ7#






\
?
!					g	E	(	rN-yb8z^C,kD$fF-oN(lL+rS;!                                                /Zend_Pdf_PhpArray\ +Zend_Pdf_Parser\ 9Zend_Pdf_Parser_Stream\ 'Zend_Pdf_Page\ )Zend_Pdf_Image\ 'Zend_Pdf_Font\  CZend_Pdf_Filter_Compression\$  KZend_Pdf_Filter_Compression_Lzw\& OZend_Pdf_Filter_Compression_Flate\~ =Zend_Pdf_Filter_AsciiHex\} ;Zend_Pdf_Filter_Ascii85\"| GZend_Pdf_FileParserDataSource\){ UZend_Pdf_FileParserDataSource_String\'z QZend_Pdf_FileParserDataSource_File\y 3Zend_Pdf_FileParser\x ?Zend_Pdf_FileParser_Image\"w GZend_Pdf_FileParser_Image_Png\v =Zend_Pdf_FileParser_Font\&u OZend_Pdf_FileParser_Font_OpenType\/t aZend_Pdf_FileParser_Font_OpenType_TrueType\s 1Zend_Pdf_Exception\r ;Zend_Pdf_ElementFactory\"q GZend_Pdf_ElementFactory_Proxy\p -Zend_Pdf_Element\o ;Zend_Pdf_Element_String\#n IZend_Pdf_Element_String_Binary\m ;Zend_Pdf_Element_Stream\l AZend_Pdf_Element_Reference\%k MZend_Pdf_Element_Reference_Table\'j QZend_Pdf_Element_Reference_Context\i ;Zend_Pdf_Element_Object\#h IZend_Pdf_Element_Object_Stream\g =Zend_Pdf_Element_Numeric\f 7Zend_Pdf_Element_Null\e 7Zend_Pdf_Element_Name\ d CZend_Pdf_Element_Dictionary\c =Zend_Pdf_Element_Boolean\b 9Zend_Pdf_Element_Array\a )Zend_Pdf_Color\` 1Zend_Pdf_Color_Rgb\_ 3Zend_Pdf_Color_Html\^ =Zend_Pdf_Color_GrayScale\] 3Zend_Pdf_Color_Cmyk\\ 'Zend_Pdf_Cmap\[ AZend_Pdf_Cmap_TrimmedTable\!Z EZend_Pdf_Cmap_SegmentToDelta\Y AZend_Pdf_Cmap_ByteEncoding\&X OZend_Pdf_Cmap_ByteEncoding_Static\W )Zend_Paginator\*V WZend_Paginator_ScrollingStyle_Sliding\*U WZend_Paginator_ScrollingStyle_Jumping\*T WZend_Paginator_ScrollingStyle_Elastic\&S OZend_Paginator_ScrollingStyle_All\R =Zend_Paginator_Exception\ Q CZend_Paginator_Adapter_Null\$P KZend_Paginator_Adapter_Iterator\)O UZend_Paginator_Adapter_DbTableSelect\$N KZend_Paginator_Adapter_DbSelect\!M EZend_Paginator_Adapter_Array\L #Zend_OpenId\K 5Zend_OpenId_Provider\J ?Zend_OpenId_Provider_User\&I OZend_OpenId_Provider_User_Session\!H EZend_OpenId_Provider_Storage\&G OZend_OpenId_Provider_Storage_File\F 7Zend_OpenId_Extension\E AZend_OpenId_Extension_Sreg\D 7Zend_OpenId_Exception\C 5Zend_OpenId_Consumer\!B EZend_OpenId_Consumer_Storage\&A OZend_OpenId_Consumer_Storage_File\@ Zend_Mime\? )Zend_Mime_Part\> /Zend_Mime_Message\= 3Zend_Mime_Exception\< -Zend_Mime_Decode\; #Zend_Memory\: /Zend_Memory_Value\9 3Zend_Memory_Manager\8 7Zend_Memory_Exception\7 7Zend_Memory_Container\"6 GZend_Memory_Container_Movable\!5 EZend_Memory_Container_Locked\!4 EZend_Memory_AccessController\3 3Zend_Measure_Weight\2 3Zend_Measure_Volume\%1 MZend_Measure_Viscosity_Kinematic\#0 IZend_Measure_Viscosity_Dynamic\/ 3Zend_Measure_Torque\. /Zend_Measure_Time\- =Zend_Measure_Temperature\, 1Zend_Measure_Speed\+ 7Zend_Measure_Pressure\* 1Zend_Measure_Power\) 3Zend_Measure_Number\( 9Zend_Measure_Lightness\' 3Zend_Measure_Length\& ?Zend_Measure_Illumination\% 9Zend_Measure_Frequency\$ 1Zend_Measure_Force\# =Zend_Measure_Flow_Volume\" 9Zend_Measure_Flow_Mole\! 9Zend_Measure_Flow_Mass\  9Zend_Measure_Exception\ 3Zend_Measure_Energy\ 5Zend_Measure_Density\ 5Zend_Measure_Current\  CZend_Measure_Cooking_Weight\  CZend_Measure_Cooking_Volume\ =Zend_Measure_Capacitance\ 3Zend_Measure_Binary\ /Zend_Measure_Area\ 1Zend_Measure_Angle\ ?Zend_Measure_Acceleration\ 7Zend_Measure_Abstract\ Zend_Mail\ =Zend_Mail_Transport_Smtp\   U  R};BTtN)




|
U
;

					t	^	;		B	6t@q6zN%wEF
c<    :\ wZend_Search_Lucene_Search_BooleanExpressionRecognizer\[ =Zend_Search_Lucene_Proxy\%Z MZend_Search_Lucene_PriorityQueue\#Y IZend_Search_Lucene_LockManager\$X KZend_Search_Lucene_Index_Writer\&W OZend_Search_Lucene_Index_TermInfo\"V GZend_Search_Lucene_Index_Term\+U YZend_Search_Lucene_Index_SegmentWriter\8T sZend_Search_Lucene_Index_SegmentWriter_StreamWriter\:S wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter\+R YZend_Search_Lucene_Index_SegmentMerger\6Q oZend_Search_Lucene_Index_SegmentInfoPriorityQueue\)P UZend_Search_Lucene_Index_SegmentInfo\'O QZend_Search_Lucene_Index_FieldInfo\.N _Zend_Search_Lucene_Index_DictionaryLoader\!M EZend_Search_Lucene_FSMAction\L 9Zend_Search_Lucene_FSM\K =Zend_Search_Lucene_Field\!J EZend_Search_Lucene_Exception\ I CZend_Search_Lucene_Document\%H MZend_Search_Lucene_Document_Pptx\(G SZend_Search_Lucene_Document_OpenXml\%F MZend_Search_Lucene_Document_Html\%E MZend_Search_Lucene_Document_Docx\,D [Zend_Search_Lucene_Analysis_TokenFilter\6C oZend_Search_Lucene_Analysis_TokenFilter_StopWords\7B qZend_Search_Lucene_Analysis_TokenFilter_ShortWords\:A wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8\6@ oZend_Search_Lucene_Analysis_TokenFilter_LowerCase\&? OZend_Search_Lucene_Analysis_Token\)> UZend_Search_Lucene_Analysis_Analyzer\0= cZend_Search_Lucene_Analysis_Analyzer_Common\8< sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num\I; Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive\5: mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8\F9 Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive\88 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum\I7 Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive\56 mZend_Search_Lucene_Analysis_Analyzer_Common_Text\F5 Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive\4 7Zend_Search_Exception\3 -Zend_Rest_Server\2 AZend_Rest_Server_Exception\1 3Zend_Rest_Exception\0 -Zend_Rest_Client\/ ;Zend_Rest_Client_Result\. AZend_Rest_Client_Exception\- 'Zend_Registry\, Zend_Pdf\!+ EZend_Pdf_UpdateInfoContainer\* -Zend_Pdf_Trailer\) ;Zend_Pdf_Trailer_Keeper\( AZend_Pdf_Trailer_Generator\' )Zend_Pdf_Style\& 7Zend_Pdf_StringParser\% /Zend_Pdf_Resource\#$ IZend_Pdf_Resource_ImageFactory\# ;Zend_Pdf_Resource_Image\!" EZend_Pdf_Resource_Image_Tiff\ ! CZend_Pdf_Resource_Image_Png\!  EZend_Pdf_Resource_Image_Jpeg\ 9Zend_Pdf_Resource_Font\! EZend_Pdf_Resource_Font_Type0\" GZend_Pdf_Resource_Font_Simple\+ YZend_Pdf_Resource_Font_Simple_Standard\8 sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats\6 oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman\7 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic\; yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic\5 mZend_Pdf_Resource_Font_Simple_Standard_TimesBold\2 gZend_Pdf_Resource_Font_Simple_Standard_Symbol\< {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaOblique\A Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique\9 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold\5 mZend_Pdf_Resource_Font_Simple_Standard_Helvetica\: wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique\> Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique\7 qZend_Pdf_Resource_Font_Simple_Standard_CourierBold\3 iZend_Pdf_Resource_Font_Simple_Standard_Courier\) UZend_Pdf_Resource_Font_Simple_Parsed\2 gZend_Pdf_Resource_Font_Simple_Parsed_TrueType\* WZend_Pdf_Resource_Font_FontDescriptor\%
 MZend_Pdf_Resource_Font_Extracted\#	 IZend_Pdf_Resource_Font_CidFont\, [Zend_Pdf_Resource_Font_CidFont_TrueType\   _  t>Q)`5nAL



`
-						[	2	f=e9c=]3nF~L$uU2sK0                       &; OZend_Service_SlideShare_SlideShow\&: OZend_Service_SlideShare_Exception\9 1Zend_Service_Simpy\$8 KZend_Service_Simpy_WatchlistSet\*7 WZend_Service_Simpy_WatchlistFilterSet\'6 QZend_Service_Simpy_WatchlistFilter\!5 EZend_Service_Simpy_Watchlist\4 ?Zend_Service_Simpy_TagSet\3 9Zend_Service_Simpy_Tag\2 AZend_Service_Simpy_NoteSet\1 ;Zend_Service_Simpy_Note\0 AZend_Service_Simpy_LinkSet\!/ EZend_Service_Simpy_LinkQuery\. ;Zend_Service_Simpy_Link\- 9Zend_Service_ReCaptcha\$, KZend_Service_ReCaptcha_Response\$+ KZend_Service_ReCaptcha_MailHide\.* _Zend_Service_ReCaptcha_MailHide_Exception\%) MZend_Service_ReCaptcha_Exception\( 7Zend_Service_Nirvanix\#' IZend_Service_Nirvanix_Response\)& UZend_Service_Nirvanix_Namespace_Imfs\)% UZend_Service_Nirvanix_Namespace_Base\$$ KZend_Service_Nirvanix_Exception\# 3Zend_Service_Flickr\"" GZend_Service_Flickr_ResultSet\! AZend_Service_Flickr_Result\  ?Zend_Service_Flickr_Image\ 9Zend_Service_Exception\ 9Zend_Service_Delicious\& OZend_Service_Delicious_SimplePost\$ KZend_Service_Delicious_PostList\  CZend_Service_Delicious_Post\% MZend_Service_Delicious_Exception\  CZend_Service_Audioscrobbler\ 3Zend_Service_Amazon\' QZend_Service_Amazon_SimilarProduct\" GZend_Service_Amazon_ResultSet\ ?Zend_Service_Amazon_Query\! EZend_Service_Amazon_OfferSet\ ?Zend_Service_Amazon_Offer\& OZend_Service_Amazon_ListmaniaList\ =Zend_Service_Amazon_Item\ ?Zend_Service_Amazon_Image\( SZend_Service_Amazon_EditorialReview\' QZend_Service_Amazon_CustomerReview\$ KZend_Service_Amazon_Accessories\ 5Zend_Service_Akismet\ 7Zend_Service_Abstract\
 9Zend_Server_Reflection\'	 QZend_Server_Reflection_ReturnValue\% MZend_Server_Reflection_Prototype\% MZend_Server_Reflection_Parameter\  CZend_Server_Reflection_Node\" GZend_Server_Reflection_Method\$ KZend_Server_Reflection_Function\- ]Zend_Server_Reflection_Function_Abstract\% MZend_Server_Reflection_Exception\! EZend_Server_Reflection_Class\  7Zend_Server_Exception\ 5Zend_Server_Abstract\~ 1Zend_Search_Lucene\$} KZend_Search_Lucene_Storage_File\+| YZend_Search_Lucene_Storage_File_Memory\/{ aZend_Search_Lucene_Storage_File_Filesystem\)z UZend_Search_Lucene_Storage_Directory\4y kZend_Search_Lucene_Storage_Directory_Filesystem\%x MZend_Search_Lucene_Search_Weight\*w WZend_Search_Lucene_Search_Weight_Term\,v [Zend_Search_Lucene_Search_Weight_Phrase\/u aZend_Search_Lucene_Search_Weight_MultiTerm\+t YZend_Search_Lucene_Search_Weight_Empty\-s ]Zend_Search_Lucene_Search_Weight_Boolean\)r UZend_Search_Lucene_Search_Similarity\1q eZend_Search_Lucene_Search_Similarity_Default\)p UZend_Search_Lucene_Search_QueryToken\3o iZend_Search_Lucene_Search_QueryParserException\1n eZend_Search_Lucene_Search_QueryParserContext\*m WZend_Search_Lucene_Search_QueryParser\)l UZend_Search_Lucene_Search_QueryLexer\'k QZend_Search_Lucene_Search_QueryHit\)j UZend_Search_Lucene_Search_QueryEntry\.i _Zend_Search_Lucene_Search_QueryEntry_Term\2h gZend_Search_Lucene_Search_QueryEntry_Subquery\0g cZend_Search_Lucene_Search_QueryEntry_Phrase\$f KZend_Search_Lucene_Search_Query\-e ]Zend_Search_Lucene_Search_Query_Wildcard\)d UZend_Search_Lucene_Search_Query_Term\*c WZend_Search_Lucene_Search_Query_Range\+b YZend_Search_Lucene_Search_Query_Phrase\.a _Zend_Search_Lucene_Search_Query_MultiTerm\2` gZend_Search_Lucene_Search_Query_Insignificant\*_ WZend_Search_Lucene_Search_Query_Fuzzy\*^ WZend_Search_Lucene_Search_Query_Empty\,] [Zend_Search_Lucene_Search_Query_Boolean\   i  g6 ^1pBf<iI(


|
U
+
				c	>	gH) kL,uP+k7
xY>(tQ.	r\K,qU:                                 $ AZend_Validate_EmailAddress\# 5Zend_Validate_Digits\" 1Zend_Validate_Date\! 3Zend_Validate_Ccnum\  7Zend_Validate_Between\ 7Zend_Validate_Barcode\ AZend_Validate_Barcode_UpcA\  CZend_Validate_Barcode_Ean13\ 3Zend_Validate_Alpha\ 3Zend_Validate_Alnum\ 9Zend_Validate_Abstract\ Zend_Uri\ 'Zend_Uri_Http\ 1Zend_Uri_Exception\ )Zend_Translate\ =Zend_Translate_Exception\ 9Zend_Translate_Adapter\! EZend_Translate_Adapter_XmlTm\! EZend_Translate_Adapter_Xliff\ AZend_Translate_Adapter_Tmx\ AZend_Translate_Adapter_Tbx\ ?Zend_Translate_Adapter_Qt\ AZend_Translate_Adapter_Ini\# IZend_Translate_Adapter_Gettext\ AZend_Translate_Adapter_Csv\! EZend_Translate_Adapter_Array\
 'Zend_TimeSync\	 1Zend_TimeSync_Sntp\ 9Zend_TimeSync_Protocol\ /Zend_TimeSync_Ntp\ ;Zend_TimeSync_Exception\ -Zend_Text_Figlet\ AZend_Text_Figlet_Exception\ 3Zend_Text_Exception\) UZend_Test_PHPUnit_ControllerTestCase\0 cZend_Test_PHPUnit_Constraint_ResponseHeader\*  WZend_Test_PHPUnit_Constraint_Redirect\+ YZend_Test_PHPUnit_Constraint_Exception\*~ WZend_Test_PHPUnit_Constraint_DomQuery\} )Zend_Soap_Wsdl\| 7Zend_Soap_Wsdl_Parser\!{ EZend_Soap_Wsdl_Parser_Result\!z EZend_Soap_Wsdl_CodeGenerator\y -Zend_Soap_Server\x AZend_Soap_Server_Exception\w -Zend_Soap_Client\v 9Zend_Soap_Client_Local\u AZend_Soap_Client_Exception\t ;Zend_Soap_Client_DotNet\s ;Zend_Soap_Client_Common\r 9Zend_Soap_AutoDiscover\q %Zend_Session\)p UZend_Session_Validator_HttpUserAgent\$o KZend_Session_Validator_Abstract\'n QZend_Session_SaveHandler_Exception\%m MZend_Session_SaveHandler_DbTable\l 9Zend_Session_Namespace\k 9Zend_Session_Exception\j 7Zend_Session_Abstract\i 1Zend_Service_Yahoo\$h KZend_Service_Yahoo_WebResultSet\!g EZend_Service_Yahoo_WebResult\&f OZend_Service_Yahoo_VideoResultSet\#e IZend_Service_Yahoo_VideoResult\!d EZend_Service_Yahoo_ResultSet\c ?Zend_Service_Yahoo_Result\)b UZend_Service_Yahoo_PageDataResultSet\&a OZend_Service_Yahoo_PageDataResult\%` MZend_Service_Yahoo_NewsResultSet\"_ GZend_Service_Yahoo_NewsResult\&^ OZend_Service_Yahoo_LocalResultSet\#] IZend_Service_Yahoo_LocalResult\+\ YZend_Service_Yahoo_InlinkDataResultSet\([ SZend_Service_Yahoo_InlinkDataResult\&Z OZend_Service_Yahoo_ImageResultSet\#Y IZend_Service_Yahoo_ImageResult\X =Zend_Service_Yahoo_Image\W ;Zend_Service_Technorati\#V IZend_Service_Technorati_Weblog\"U GZend_Service_Technorati_Utils\*T WZend_Service_Technorati_TagsResultSet\'S QZend_Service_Technorati_TagsResult\)R UZend_Service_Technorati_TagResultSet\&Q OZend_Service_Technorati_TagResult\,P [Zend_Service_Technorati_SearchResultSet\)O UZend_Service_Technorati_SearchResult\&N OZend_Service_Technorati_ResultSet\#M IZend_Service_Technorati_Result\*L WZend_Service_Technorati_KeyInfoResult\*K WZend_Service_Technorati_GetInfoResult\&J OZend_Service_Technorati_Exception\1I eZend_Service_Technorati_DailyCountsResultSet\.H _Zend_Service_Technorati_DailyCountsResult\,G [Zend_Service_Technorati_CosmosResultSet\)F UZend_Service_Technorati_CosmosResult\+E YZend_Service_Technorati_BlogInfoResult\#D IZend_Service_Technorati_Author\C ;Zend_Service_StrikeIron\(B SZend_Service_StrikeIron_ZipCodeInfo\2A gZend_Service_StrikeIron_USAddressVerification\-@ ]Zend_Service_StrikeIron_SalesUseTaxBasic\&? OZend_Service_StrikeIron_Exception\&> OZend_Service_StrikeIron_Decorator\!= EZend_Service_StrikeIron_Base\< ;Zend_Service_SlideShare\   l  hF!hC#eC!zZ<"	vaF*




b
>
					f	C	fB oL'uO1u=c5xN.[1hJ0               ?Zend_XmlRpc_Request_Stdin\ =Zend_XmlRpc_Request_Http\ /Zend_XmlRpc_Fault\ 7Zend_XmlRpc_Exception\ 1Zend_XmlRpc_Client\# IZend_XmlRpc_Client_ServerProxy\+
 YZend_XmlRpc_Client_ServerIntrospection\+	 YZend_XmlRpc_Client_IntrospectException\% MZend_XmlRpc_Client_HttpException\& OZend_XmlRpc_Client_FaultException\! EZend_XmlRpc_Client_Exception\& OZend_Wildfire_Protocol_JsonStream\! EZend_Wildfire_Plugin_FirePhp\. _Zend_Wildfire_Plugin_FirePhp_TableMessage\) UZend_Wildfire_Plugin_FirePhp_Message\ ;Zend_Wildfire_Exception\&  OZend_Wildfire_Channel_HttpHeaders\ Zend_View\~ -Zend_View_Stream\} 5Zend_View_Helper_Url\| AZend_View_Helper_Translate\){ UZend_View_Helper_RenderToPlaceholder\!z EZend_View_Helper_Placeholder\*y WZend_View_Helper_Placeholder_Registry\4x kZend_View_Helper_Placeholder_Registry_Exception\+w YZend_View_Helper_Placeholder_Container\6v oZend_View_Helper_Placeholder_Container_Standalone\5u mZend_View_Helper_Placeholder_Container_Exception\4t kZend_View_Helper_Placeholder_Container_Abstract\!s EZend_View_Helper_PartialLoop\r =Zend_View_Helper_Partial\'q QZend_View_Helper_Partial_Exception\'p QZend_View_Helper_PaginationControl\o ;Zend_View_Helper_Layout\n 7Zend_View_Helper_Json\"m GZend_View_Helper_InlineScript\#l IZend_View_Helper_HtmlQuicktime\k ?Zend_View_Helper_HtmlPage\ j CZend_View_Helper_HtmlObject\i ?Zend_View_Helper_HtmlList\h AZend_View_Helper_HtmlFlash\!g EZend_View_Helper_HtmlElement\f AZend_View_Helper_HeadTitle\e AZend_View_Helper_HeadStyle\ d CZend_View_Helper_HeadScript\c ?Zend_View_Helper_HeadMeta\b ?Zend_View_Helper_HeadLink\"a GZend_View_Helper_FormTextarea\` ?Zend_View_Helper_FormText\ _ CZend_View_Helper_FormSubmit\ ^ CZend_View_Helper_FormSelect\] AZend_View_Helper_FormReset\\ AZend_View_Helper_FormRadio\"[ GZend_View_Helper_FormPassword\Z ?Zend_View_Helper_FormNote\'Y QZend_View_Helper_FormMultiCheckbox\X AZend_View_Helper_FormLabel\W AZend_View_Helper_FormImage\ V CZend_View_Helper_FormHidden\U ?Zend_View_Helper_FormFile\ T CZend_View_Helper_FormErrors\!S EZend_View_Helper_FormElement\"R GZend_View_Helper_FormCheckbox\ Q CZend_View_Helper_FormButton\P 7Zend_View_Helper_Form\O ?Zend_View_Helper_Fieldset\N =Zend_View_Helper_Doctype\!M EZend_View_Helper_DeclareVars\L ;Zend_View_Helper_Action\K ?Zend_View_Helper_Abstract\J 3Zend_View_Exception\I 1Zend_View_Abstract\H %Zend_Version\G 'Zend_Validate\F AZend_Validate_StringLength\E 3Zend_Validate_Regex\D 9Zend_Validate_NotEmpty\C 9Zend_Validate_LessThan\B -Zend_Validate_Ip\A /Zend_Validate_Int\@ 7Zend_Validate_InArray\? ;Zend_Validate_Identical\> 9Zend_Validate_Hostname\= ?Zend_Validate_Hostname_Se\< ?Zend_Validate_Hostname_No\; ?Zend_Validate_Hostname_Li\: ?Zend_Validate_Hostname_Hu\9 ?Zend_Validate_Hostname_Fi\8 ?Zend_Validate_Hostname_De\7 ?Zend_Validate_Hostname_Ch\6 ?Zend_Validate_Hostname_At\5 /Zend_Validate_Hex\4 ?Zend_Validate_GreaterThan\3 3Zend_Validate_Float\2 ?Zend_Validate_File_Upload\1 ;Zend_Validate_File_Size\!0 EZend_Validate_File_NotExists\ / CZend_Validate_File_MimeType\. AZend_Validate_File_IsImage\$- KZend_Validate_File_IsCompressed\!, EZend_Validate_File_ImageSize\!+ EZend_Validate_File_FilesSize\!* EZend_Validate_File_Extension\) ?Zend_Validate_File_Exists\'( QZend_Validate_File_ExcludeMimeType\(' SZend_Validate_File_ExcludeExtension\& =Zend_Validate_File_Count\% ;Zend_Validate_Exception\   p  _>#xW3v[AsL#oM/





_
<
				T	&l:oV2
rP0qO.	~_C(	yZ?'yGb.                  1  eZend_Controller_Action_Helper_FlashMessenger]0 cZend_Controller_Action_Helper_ContextSwitch]<~ {Zend_Controller_Action_Helper_AutoCompleteScriptaculous]3} iZend_Controller_Action_Helper_AutoCompleteDojo]8| sZend_Controller_Action_Helper_AutoComplete_Abstract].{ _Zend_Controller_Action_Helper_AjaxContext].z _Zend_Controller_Action_Helper_ActionStack]+y YZend_Controller_Action_Helper_Abstract]%x MZend_Controller_Action_Exception]w 3Zend_Console_Getopt]"v GZend_Console_Getopt_Exception]u #Zend_Config]t +Zend_Config_Xml]s 1Zend_Config_Writer]r 9Zend_Config_Writer_Xml]q 9Zend_Config_Writer_Ini]p =Zend_Config_Writer_Array]o +Zend_Config_Ini]n 7Zend_Config_Exception]m /Zend_Captcha_Word]l 9Zend_Captcha_ReCaptcha]k 1Zend_Captcha_Image]j 3Zend_Captcha_Figlet]i 9Zend_Captcha_Exception]h /Zend_Captcha_Dumb]g /Zend_Captcha_Base]f !Zend_Cache]e =Zend_Cache_Frontend_Page]d AZend_Cache_Frontend_Output]!c EZend_Cache_Frontend_Function]b =Zend_Cache_Frontend_File]a ?Zend_Cache_Frontend_Class]` 5Zend_Cache_Exception]_ +Zend_Cache_Core]^ 1Zend_Cache_Backend]$] KZend_Cache_Backend_ZendPlatform]\ ?Zend_Cache_Backend_Xcache]![ EZend_Cache_Backend_TwoLevels]Z ;Zend_Cache_Backend_Test]Y ?Zend_Cache_Backend_Sqlite]!X EZend_Cache_Backend_Memcached]W ;Zend_Cache_Backend_File]V 9Zend_Cache_Backend_Apc]U Zend_Auth]T ?Zend_Auth_Storage_Session]$S KZend_Auth_Storage_NonPersistent] R CZend_Auth_Storage_Exception]Q -Zend_Auth_Result]P 3Zend_Auth_Exception]O =Zend_Auth_Adapter_OpenId]N 9Zend_Auth_Adapter_Ldap]M AZend_Auth_Adapter_InfoCard]L 9Zend_Auth_Adapter_Http])K UZend_Auth_Adapter_Http_Resolver_File].J _Zend_Auth_Adapter_Http_Resolver_Exception] I CZend_Auth_Adapter_Exception]H =Zend_Auth_Adapter_Digest]G ?Zend_Auth_Adapter_DbTable]F ?Zend_Amf_Value_TraitsInfo]-E ]Zend_Amf_Value_Messaging_RemotingMessage]*D WZend_Amf_Value_Messaging_ErrorMessage],C [Zend_Amf_Value_Messaging_CommandMessage]*B WZend_Amf_Value_Messaging_AsyncMessage]0A cZend_Amf_Value_Messaging_AcknowledgeMessage]-@ ]Zend_Amf_Value_Messaging_AbstractMessage]!? EZend_Amf_Value_MessageHeader]> AZend_Amf_Value_MessageBody]= =Zend_Amf_Value_ByteArray]< AZend_Amf_Util_BinaryStream]; +Zend_Amf_Server]: ?Zend_Amf_Server_Exception]9 /Zend_Amf_Response]8 9Zend_Amf_Response_Http]7 -Zend_Amf_Request]6 7Zend_Amf_Request_Http]5 ?Zend_Amf_Parse_TypeLoader]4 ?Zend_Amf_Parse_Serializer] 3 CZend_Amf_Parse_OutputStream]2 AZend_Amf_Parse_InputStream] 1 CZend_Amf_Parse_Deserializer]#0 IZend_Amf_Parse_Amf3_Serializer]%/ MZend_Amf_Parse_Amf3_Deserializer]#. IZend_Amf_Parse_Amf0_Serializer]%- MZend_Amf_Parse_Amf0_Deserializer], 1Zend_Amf_Exception]+ 1Zend_Amf_Constants]* Zend_Acl]) 'Zend_Acl_Role]( 9Zend_Acl_Role_Registry]%' MZend_Acl_Role_Registry_Exception]& /Zend_Acl_Resource]% 1Zend_Acl_Exception]$ /Zend_XmlRpc_Value\# =Zend_XmlRpc_Value_Struct\" =Zend_XmlRpc_Value_String\! =Zend_XmlRpc_Value_Scalar\  7Zend_XmlRpc_Value_Nil\ ?Zend_XmlRpc_Value_Integer\  CZend_XmlRpc_Value_Exception\ =Zend_XmlRpc_Value_Double\ AZend_XmlRpc_Value_DateTime\! EZend_XmlRpc_Value_Collection\ ?Zend_XmlRpc_Value_Boolean\ =Zend_XmlRpc_Value_Base64\ ;Zend_XmlRpc_Value_Array\ 1Zend_XmlRpc_Server\ =Zend_XmlRpc_Server_Fault\! EZend_XmlRpc_Server_Exception\ =Zend_XmlRpc_Server_Cache\ 5Zend_XmlRpc_Response\ ?Zend_XmlRpc_Response_Http\ 3Zend_XmlRpc_Request\   i  zGi=X/b8lC



i
>
						e	S	2	]>mM+v]<%oD#gC){eUB+{Ne7                    "i GZend_Dojo_Form_Element_Button] h CZend_Dojo_Form_DisplayGroup]*g WZend_Dojo_Form_Decorator_TabContainer],f [Zend_Dojo_Form_Decorator_StackContainer],e [Zend_Dojo_Form_Decorator_SplitContainer]'d QZend_Dojo_Form_Decorator_DijitForm]*c WZend_Dojo_Form_Decorator_DijitElement],b [Zend_Dojo_Form_Decorator_DijitContainer])a UZend_Dojo_Form_Decorator_ContentPane]-` ]Zend_Dojo_Form_Decorator_BorderContainer]+_ YZend_Dojo_Form_Decorator_AccordionPane]0^ cZend_Dojo_Form_Decorator_AccordionContainer]] 3Zend_Dojo_Exception]\ )Zend_Dojo_Data][ !Zend_Debug]Z Zend_Db]Y 'Zend_Db_Table]X 5Zend_Db_Table_Select]#W IZend_Db_Table_Select_Exception]V 5Zend_Db_Table_Rowset]#U IZend_Db_Table_Rowset_Exception]"T GZend_Db_Table_Rowset_Abstract]S /Zend_Db_Table_Row] R CZend_Db_Table_Row_Exception]Q AZend_Db_Table_Row_Abstract]P ;Zend_Db_Table_Exception]O 9Zend_Db_Table_Abstract]N /Zend_Db_Statement]M 7Zend_Db_Statement_Pdo]L ?Zend_Db_Statement_Pdo_Ibm]K =Zend_Db_Statement_Oracle]'J QZend_Db_Statement_Oracle_Exception]I =Zend_Db_Statement_Mysqli]'H QZend_Db_Statement_Mysqli_Exception] G CZend_Db_Statement_Exception]F 7Zend_Db_Statement_Db2]$E KZend_Db_Statement_Db2_Exception]D )Zend_Db_Select]C =Zend_Db_Select_Exception]B -Zend_Db_Profiler]A 9Zend_Db_Profiler_Query]@ =Zend_Db_Profiler_Firebug]? AZend_Db_Profiler_Exception]> %Zend_Db_Expr]= /Zend_Db_Exception]< AZend_Db_Adapter_Pdo_Sqlite]; ?Zend_Db_Adapter_Pdo_Pgsql]: ;Zend_Db_Adapter_Pdo_Oci]9 ?Zend_Db_Adapter_Pdo_Mysql]8 ?Zend_Db_Adapter_Pdo_Mssql]7 ;Zend_Db_Adapter_Pdo_Ibm] 6 CZend_Db_Adapter_Pdo_Ibm_Ids] 5 CZend_Db_Adapter_Pdo_Ibm_Db2]!4 EZend_Db_Adapter_Pdo_Abstract]3 9Zend_Db_Adapter_Oracle]%2 MZend_Db_Adapter_Oracle_Exception]1 9Zend_Db_Adapter_Mysqli]%0 MZend_Db_Adapter_Mysqli_Exception]/ ?Zend_Db_Adapter_Exception]. 3Zend_Db_Adapter_Db2]"- GZend_Db_Adapter_Db2_Exception], =Zend_Db_Adapter_Abstract]+ Zend_Date]* 3Zend_Date_Exception]) 5Zend_Date_DateObject]( -Zend_Date_Cities]' 'Zend_Currency]& ;Zend_Currency_Exception]!% EZend_Controller_Router_Route]($ SZend_Controller_Router_Route_Static]'# QZend_Controller_Router_Route_Regex](" SZend_Controller_Router_Route_Module]*! WZend_Controller_Router_Route_Hostname]'  QZend_Controller_Router_Route_Chain]* WZend_Controller_Router_Route_Abstract]# IZend_Controller_Router_Rewrite]% MZend_Controller_Router_Exception]$ KZend_Controller_Router_Abstract]* WZend_Controller_Response_HttpTestCase]" GZend_Controller_Response_Http]' QZend_Controller_Response_Exception]! EZend_Controller_Response_Cli]& OZend_Controller_Response_Abstract]# IZend_Controller_Request_Simple]) UZend_Controller_Request_HttpTestCase]! EZend_Controller_Request_Http]& OZend_Controller_Request_Exception]& OZend_Controller_Request_Apache404]% MZend_Controller_Request_Abstract]( SZend_Controller_Plugin_ErrorHandler]" GZend_Controller_Plugin_Broker]' QZend_Controller_Plugin_ActionStack]$ KZend_Controller_Plugin_Abstract] 7Zend_Controller_Front] ?Zend_Controller_Exception](
 SZend_Controller_Dispatcher_Standard])	 UZend_Controller_Dispatcher_Exception]( SZend_Controller_Dispatcher_Abstract] 9Zend_Controller_Action]( SZend_Controller_Action_HelperBroker]6 oZend_Controller_Action_HelperBroker_PriorityStack]/ aZend_Controller_Action_Helper_ViewRenderer]& OZend_Controller_Action_Helper_Url]- ]Zend_Controller_Action_Helper_Redirector]' QZend_Controller_Action_Helper_Json]   i  V1U(|T-mLuN$



{
N
+
				Z	.	 W*]- }fK4sR5\A'|\9iG(b9             &R OZend_Filter_Word_DashToUnderscore]%Q MZend_Filter_Word_DashToSeparator]%P MZend_Filter_Word_DashToCamelCase]+O YZend_Filter_Word_CamelCaseToUnderscore]*N WZend_Filter_Word_CamelCaseToSeparator]%M MZend_Filter_Word_CamelCaseToDash]L 7Zend_Filter_StripTags]K ?Zend_Filter_StripNewlines]J 9Zend_Filter_StringTrim]I ?Zend_Filter_StringToUpper]H ?Zend_Filter_StringToLower]G 5Zend_Filter_RealPath]F ;Zend_Filter_PregReplace]E +Zend_Filter_Int]D /Zend_Filter_Input]C 7Zend_Filter_Inflector]B =Zend_Filter_HtmlEntities]A AZend_Filter_File_UpperCase]@ ;Zend_Filter_File_Rename]? AZend_Filter_File_LowerCase]> 7Zend_Filter_Exception]= +Zend_Filter_Dir]< 1Zend_Filter_Digits]; 5Zend_Filter_BaseName]: /Zend_Filter_Alpha]9 /Zend_Filter_Alnum]8 1Zend_File_Transfer]!7 EZend_File_Transfer_Exception]$6 KZend_File_Transfer_Adapter_Http](5 SZend_File_Transfer_Adapter_Abstract]4 Zend_Feed]3 'Zend_Feed_Rss]2 3Zend_Feed_Exception]1 3Zend_Feed_Entry_Rss]0 5Zend_Feed_Entry_Atom]/ =Zend_Feed_Entry_Abstract]. /Zend_Feed_Element]- /Zend_Feed_Builder], =Zend_Feed_Builder_Header]$+ KZend_Feed_Builder_Header_Itunes] * CZend_Feed_Builder_Exception]) ;Zend_Feed_Builder_Entry]( )Zend_Feed_Atom]' 1Zend_Feed_Abstract]& )Zend_Exception]% )Zend_Dom_Query]$ 7Zend_Dom_Query_Result]# =Zend_Dom_Query_Css2Xpath]" 1Zend_Dom_Exception]! Zend_Dojo])  UZend_Dojo_View_Helper_VerticalSlider], [Zend_Dojo_View_Helper_ValidationTextBox]& OZend_Dojo_View_Helper_TimeTextBox]" GZend_Dojo_View_Helper_TextBox]# IZend_Dojo_View_Helper_Textarea]' QZend_Dojo_View_Helper_TabContainer]' QZend_Dojo_View_Helper_SubmitButton]) UZend_Dojo_View_Helper_StackContainer]) UZend_Dojo_View_Helper_SplitContainer]! EZend_Dojo_View_Helper_Slider]) UZend_Dojo_View_Helper_SimpleTextarea]& OZend_Dojo_View_Helper_RadioButton]* WZend_Dojo_View_Helper_PasswordTextBox]( SZend_Dojo_View_Helper_NumberTextBox]( SZend_Dojo_View_Helper_NumberSpinner]+ YZend_Dojo_View_Helper_HorizontalSlider] AZend_Dojo_View_Helper_Form]* WZend_Dojo_View_Helper_FilteringSelect]! EZend_Dojo_View_Helper_Editor] AZend_Dojo_View_Helper_Dojo]) UZend_Dojo_View_Helper_Dojo_Container]) UZend_Dojo_View_Helper_DijitContainer] 
 CZend_Dojo_View_Helper_Dijit]&	 OZend_Dojo_View_Helper_DateTextBox]* WZend_Dojo_View_Helper_CurrencyTextBox]& OZend_Dojo_View_Helper_ContentPane]# IZend_Dojo_View_Helper_ComboBox]# IZend_Dojo_View_Helper_CheckBox]! EZend_Dojo_View_Helper_Button]* WZend_Dojo_View_Helper_BorderContainer]( SZend_Dojo_View_Helper_AccordionPane]- ]Zend_Dojo_View_Helper_AccordionContainer]  =Zend_Dojo_View_Exception] )Zend_Dojo_Form]~ 9Zend_Dojo_Form_SubForm]*} WZend_Dojo_Form_Element_VerticalSlider]-| ]Zend_Dojo_Form_Element_ValidationTextBox]'{ QZend_Dojo_Form_Element_TimeTextBox]#z IZend_Dojo_Form_Element_TextBox]$y KZend_Dojo_Form_Element_Textarea](x SZend_Dojo_Form_Element_SubmitButton]"w GZend_Dojo_Form_Element_Slider]'v QZend_Dojo_Form_Element_RadioButton]+u YZend_Dojo_Form_Element_PasswordTextBox])t UZend_Dojo_Form_Element_NumberTextBox])s UZend_Dojo_Form_Element_NumberSpinner],r [Zend_Dojo_Form_Element_HorizontalSlider]+q YZend_Dojo_Form_Element_FilteringSelect]"p GZend_Dojo_Form_Element_Editor]&o OZend_Dojo_Form_Element_DijitMulti]!n EZend_Dojo_Form_Element_Dijit]'m QZend_Dojo_Form_Element_DateTextBox]+l YZend_Dojo_Form_Element_CurrencyTextBox]$k KZend_Dojo_Form_Element_ComboBox]$j KZend_Dojo_Form_Element_CheckBox]   g  }O i@^=d8eA"



z
T
1
					m	M	3	|U%l?tN*e=uL'vF#qV-uD                    +9 YZend_Gdata_Books_Extension_PreviewLink](8 SZend_Gdata_Books_Extension_InfoLink]-7 ]Zend_Gdata_Books_Extension_Embeddability])6 UZend_Gdata_Books_Extension_BooksLink]-5 ]Zend_Gdata_Books_Extension_BooksCategory].4 _Zend_Gdata_Books_Extension_AnnotationLink]$3 KZend_Gdata_Books_CollectionFeed]%2 MZend_Gdata_Books_CollectionEntry]1 1Zend_Gdata_AuthSub]0 )Zend_Gdata_App]/ 3Zend_Gdata_App_Util]#. IZend_Gdata_App_MediaFileSource]- ?Zend_Gdata_App_MediaEntry]2, gZend_Gdata_App_LoggingHttpClientAdapterSocket]+ AZend_Gdata_App_IOException],* [Zend_Gdata_App_InvalidArgumentException]!) EZend_Gdata_App_HttpException]$( KZend_Gdata_App_FeedSourceParent]#' IZend_Gdata_App_FeedEntryParent]& 3Zend_Gdata_App_Feed]% =Zend_Gdata_App_Extension]!$ EZend_Gdata_App_Extension_Uri]%# MZend_Gdata_App_Extension_Updated]#" IZend_Gdata_App_Extension_Title]"! GZend_Gdata_App_Extension_Text]%  MZend_Gdata_App_Extension_Summary]& OZend_Gdata_App_Extension_Subtitle]$ KZend_Gdata_App_Extension_Source]$ KZend_Gdata_App_Extension_Rights]' QZend_Gdata_App_Extension_Published]$ KZend_Gdata_App_Extension_Person]" GZend_Gdata_App_Extension_Name]" GZend_Gdata_App_Extension_Logo]" GZend_Gdata_App_Extension_Link]  CZend_Gdata_App_Extension_Id]" GZend_Gdata_App_Extension_Icon]' QZend_Gdata_App_Extension_Generator]# IZend_Gdata_App_Extension_Email]% MZend_Gdata_App_Extension_Element]# IZend_Gdata_App_Extension_Draft]% MZend_Gdata_App_Extension_Control]) UZend_Gdata_App_Extension_Contributor]% MZend_Gdata_App_Extension_Content]& OZend_Gdata_App_Extension_Category]$ KZend_Gdata_App_Extension_Author] =Zend_Gdata_App_Exception] 5Zend_Gdata_App_Entry],
 [Zend_Gdata_App_CaptchaRequiredException]#	 IZend_Gdata_App_BaseMediaSource] 3Zend_Gdata_App_Base]* WZend_Gdata_App_BadMethodCallException]! EZend_Gdata_App_AuthException] Zend_Form] /Zend_Form_SubForm] 3Zend_Form_Exception] /Zend_Form_Element] ;Zend_Form_Element_Xhtml]  AZend_Form_Element_Textarea] 9Zend_Form_Element_Text]~ =Zend_Form_Element_Submit]} =Zend_Form_Element_Select]| ;Zend_Form_Element_Reset]{ ;Zend_Form_Element_Radio]z AZend_Form_Element_Password]"y GZend_Form_Element_Multiselect]$x KZend_Form_Element_MultiCheckbox]w ;Zend_Form_Element_Multi]v ;Zend_Form_Element_Image]u =Zend_Form_Element_Hidden]t 9Zend_Form_Element_Hash]s 9Zend_Form_Element_File] r CZend_Form_Element_Exception]q AZend_Form_Element_Checkbox]p ?Zend_Form_Element_Captcha]o =Zend_Form_Element_Button]n 9Zend_Form_DisplayGroup]#m IZend_Form_Decorator_ViewScript]#l IZend_Form_Decorator_ViewHelper](k SZend_Form_Decorator_PrepareElements]j ?Zend_Form_Decorator_Label]i ?Zend_Form_Decorator_Image] h CZend_Form_Decorator_HtmlTag]#g IZend_Form_Decorator_FormErrors]%f MZend_Form_Decorator_FormElements]e =Zend_Form_Decorator_Form]d =Zend_Form_Decorator_File]!c EZend_Form_Decorator_Fieldset]"b GZend_Form_Decorator_Exception]a AZend_Form_Decorator_Errors]$` KZend_Form_Decorator_DtDdWrapper]$_ KZend_Form_Decorator_Description] ^ CZend_Form_Decorator_Captcha]%] MZend_Form_Decorator_Captcha_Word]!\ EZend_Form_Decorator_Callback]![ EZend_Form_Decorator_Abstract]Z #Zend_Filter]+Y YZend_Filter_Word_UnderscoreToSeparator]&X OZend_Filter_Word_UnderscoreToDash]+W YZend_Filter_Word_UnderscoreToCamelCase]*V WZend_Filter_Word_SeparatorToSeparator]%U MZend_Filter_Word_SeparatorToDash]*T WZend_Filter_Word_SeparatorToCamelCase](S SZend_Filter_Word_Separator_Abstract]   `  vQ-{Ig*cD^*



e
6
					X	-	Y2
[1g3~V%hG*j:	l@Z7                    -Zend_Gdata_Gapps] AZend_Gdata_Gapps_UserQuery] ?Zend_Gdata_Gapps_UserFeed] AZend_Gdata_Gapps_UserEntry]& OZend_Gdata_Gapps_ServiceException] 9Zend_Gdata_Gapps_Query]# IZend_Gdata_Gapps_NicknameQuery]" GZend_Gdata_Gapps_NicknameFeed]# IZend_Gdata_Gapps_NicknameEntry]% MZend_Gdata_Gapps_Extension_Quota]( SZend_Gdata_Gapps_Extension_Nickname]$ KZend_Gdata_Gapps_Extension_Name]% MZend_Gdata_Gapps_Extension_Login]) UZend_Gdata_Gapps_Extension_EmailList] 9Zend_Gdata_Gapps_Error]-
 ]Zend_Gdata_Gapps_EmailListRecipientQuery],	 [Zend_Gdata_Gapps_EmailListRecipientFeed]- ]Zend_Gdata_Gapps_EmailListRecipientEntry]$ KZend_Gdata_Gapps_EmailListQuery]# IZend_Gdata_Gapps_EmailListFeed]$ KZend_Gdata_Gapps_EmailListEntry] +Zend_Gdata_Feed] 5Zend_Gdata_Extension] =Zend_Gdata_Extension_Who] AZend_Gdata_Extension_Where]  ?Zend_Gdata_Extension_When]$ KZend_Gdata_Extension_Visibility]&~ OZend_Gdata_Extension_Transparency]"} GZend_Gdata_Extension_Reminder]-| ]Zend_Gdata_Extension_RecurrenceException]${ KZend_Gdata_Extension_Recurrence] z CZend_Gdata_Extension_Rating]'y QZend_Gdata_Extension_OriginalEvent]0x cZend_Gdata_Extension_OpenSearchTotalResults].w _Zend_Gdata_Extension_OpenSearchStartIndex]0v cZend_Gdata_Extension_OpenSearchItemsPerPage]"u GZend_Gdata_Extension_FeedLink]*t WZend_Gdata_Extension_ExtendedProperty]%s MZend_Gdata_Extension_EventStatus]#r IZend_Gdata_Extension_EntryLink]"q GZend_Gdata_Extension_Comments]&p OZend_Gdata_Extension_AttendeeType](o SZend_Gdata_Extension_AttendeeStatus]n +Zend_Gdata_Exif]m 5Zend_Gdata_Exif_Feed]#l IZend_Gdata_Exif_Extension_Time]#k IZend_Gdata_Exif_Extension_Tags]$j KZend_Gdata_Exif_Extension_Model]#i IZend_Gdata_Exif_Extension_Make]"h GZend_Gdata_Exif_Extension_Iso],g [Zend_Gdata_Exif_Extension_ImageUniqueId]$f KZend_Gdata_Exif_Extension_FStop]*e WZend_Gdata_Exif_Extension_FocalLength]$d KZend_Gdata_Exif_Extension_Flash]'c QZend_Gdata_Exif_Extension_Exposure]'b QZend_Gdata_Exif_Extension_Distance]a 7Zend_Gdata_Exif_Entry]` -Zend_Gdata_Entry]_ 7Zend_Gdata_DublinCore]*^ WZend_Gdata_DublinCore_Extension_Title],] [Zend_Gdata_DublinCore_Extension_Subject]+\ YZend_Gdata_DublinCore_Extension_Rights].[ _Zend_Gdata_DublinCore_Extension_Publisher]-Z ]Zend_Gdata_DublinCore_Extension_Language]/Y aZend_Gdata_DublinCore_Extension_Identifier]+X YZend_Gdata_DublinCore_Extension_Format]0W cZend_Gdata_DublinCore_Extension_Description])V UZend_Gdata_DublinCore_Extension_Date],U [Zend_Gdata_DublinCore_Extension_Creator]T +Zend_Gdata_Docs]S 7Zend_Gdata_Docs_Query]%R MZend_Gdata_Docs_DocumentListFeed]&Q OZend_Gdata_Docs_DocumentListEntry]P 9Zend_Gdata_ClientLogin]O 3Zend_Gdata_Calendar]!N EZend_Gdata_Calendar_ListFeed]"M GZend_Gdata_Calendar_ListEntry]-L ]Zend_Gdata_Calendar_Extension_WebContent]+K YZend_Gdata_Calendar_Extension_Timezone]9J uZend_Gdata_Calendar_Extension_SendEventNotifications]+I YZend_Gdata_Calendar_Extension_Selected]+H YZend_Gdata_Calendar_Extension_QuickAdd]'G QZend_Gdata_Calendar_Extension_Link])F UZend_Gdata_Calendar_Extension_Hidden](E SZend_Gdata_Calendar_Extension_Color].D _Zend_Gdata_Calendar_Extension_AccessLevel]#C IZend_Gdata_Calendar_EventQuery]"B GZend_Gdata_Calendar_EventFeed]#A IZend_Gdata_Calendar_EventEntry]@ -Zend_Gdata_Books]!? EZend_Gdata_Books_VolumeQuery] > CZend_Gdata_Books_VolumeFeed]!= EZend_Gdata_Books_VolumeEntry]+< YZend_Gdata_Books_Extension_Viewability]-; ]Zend_Gdata_Books_Extension_ThumbnailLink]&: OZend_Gdata_Books_Extension_Review]   ^  oM*d7qR!\.r>



z
U
1
				`	3	vO"h1xK"qFgD pB|R)oA!                #w IZend_Gdata_YouTube_CommentFeed]$v KZend_Gdata_YouTube_CommentEntry]u ;Zend_Gdata_Spreadsheets]*t WZend_Gdata_Spreadsheets_WorksheetFeed]+s YZend_Gdata_Spreadsheets_WorksheetEntry],r [Zend_Gdata_Spreadsheets_SpreadsheetFeed]-q ]Zend_Gdata_Spreadsheets_SpreadsheetEntry]&p OZend_Gdata_Spreadsheets_ListQuery]%o MZend_Gdata_Spreadsheets_ListFeed]&n OZend_Gdata_Spreadsheets_ListEntry]/m aZend_Gdata_Spreadsheets_Extension_RowCount]-l ]Zend_Gdata_Spreadsheets_Extension_Custom]/k aZend_Gdata_Spreadsheets_Extension_ColCount]+j YZend_Gdata_Spreadsheets_Extension_Cell]*i WZend_Gdata_Spreadsheets_DocumentQuery]&h OZend_Gdata_Spreadsheets_CellQuery]%g MZend_Gdata_Spreadsheets_CellFeed]&f OZend_Gdata_Spreadsheets_CellEntry]e -Zend_Gdata_Query]d /Zend_Gdata_Photos] c CZend_Gdata_Photos_UserQuery]b AZend_Gdata_Photos_UserFeed] a CZend_Gdata_Photos_UserEntry]` AZend_Gdata_Photos_TagEntry]!_ EZend_Gdata_Photos_PhotoQuery] ^ CZend_Gdata_Photos_PhotoFeed]!] EZend_Gdata_Photos_PhotoEntry]&\ OZend_Gdata_Photos_Extension_Width]'[ QZend_Gdata_Photos_Extension_Weight](Z SZend_Gdata_Photos_Extension_Version]%Y MZend_Gdata_Photos_Extension_User]*X WZend_Gdata_Photos_Extension_Timestamp]*W WZend_Gdata_Photos_Extension_Thumbnail]%V MZend_Gdata_Photos_Extension_Size])U UZend_Gdata_Photos_Extension_Rotation]+T YZend_Gdata_Photos_Extension_QuotaLimit]-S ]Zend_Gdata_Photos_Extension_QuotaCurrent])R UZend_Gdata_Photos_Extension_Position](Q SZend_Gdata_Photos_Extension_PhotoId]3P iZend_Gdata_Photos_Extension_NumPhotosRemaining]*O WZend_Gdata_Photos_Extension_NumPhotos])N UZend_Gdata_Photos_Extension_Nickname]%M MZend_Gdata_Photos_Extension_Name]2L gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum])K UZend_Gdata_Photos_Extension_Location]#J IZend_Gdata_Photos_Extension_Id]'I QZend_Gdata_Photos_Extension_Height]2H gZend_Gdata_Photos_Extension_CommentingEnabled]-G ]Zend_Gdata_Photos_Extension_CommentCount]'F QZend_Gdata_Photos_Extension_Client])E UZend_Gdata_Photos_Extension_Checksum]*D WZend_Gdata_Photos_Extension_BytesUsed](C SZend_Gdata_Photos_Extension_AlbumId]'B QZend_Gdata_Photos_Extension_Access]#A IZend_Gdata_Photos_CommentEntry]!@ EZend_Gdata_Photos_AlbumQuery] ? CZend_Gdata_Photos_AlbumFeed]!> EZend_Gdata_Photos_AlbumEntry]= -Zend_Gdata_Media]< 7Zend_Gdata_Media_Feed]*; WZend_Gdata_Media_Extension_MediaTitle].: _Zend_Gdata_Media_Extension_MediaThumbnail])9 UZend_Gdata_Media_Extension_MediaText]08 cZend_Gdata_Media_Extension_MediaRestriction]+7 YZend_Gdata_Media_Extension_MediaRating]+6 YZend_Gdata_Media_Extension_MediaPlayer]-5 ]Zend_Gdata_Media_Extension_MediaKeywords])4 UZend_Gdata_Media_Extension_MediaHash]*3 WZend_Gdata_Media_Extension_MediaGroup]02 cZend_Gdata_Media_Extension_MediaDescription]+1 YZend_Gdata_Media_Extension_MediaCredit].0 _Zend_Gdata_Media_Extension_MediaCopyright],/ [Zend_Gdata_Media_Extension_MediaContent]-. ]Zend_Gdata_Media_Extension_MediaCategory]- 9Zend_Gdata_Media_Entry], AZend_Gdata_Kind_EventEntry]+ 7Zend_Gdata_HttpClient]* )Zend_Gdata_Geo]) 3Zend_Gdata_Geo_Feed]$( KZend_Gdata_Geo_Extension_GmlPos]&' OZend_Gdata_Geo_Extension_GmlPoint])& UZend_Gdata_Geo_Extension_GeoRssWhere]% 5Zend_Gdata_Geo_Entry]$ -Zend_Gdata_Gbase]"# GZend_Gdata_Gbase_SnippetQuery]!" EZend_Gdata_Gbase_SnippetFeed]"! GZend_Gdata_Gbase_SnippetEntry]  9Zend_Gdata_Gbase_Query] AZend_Gdata_Gbase_ItemQuery] ?Zend_Gdata_Gbase_ItemFeed] AZend_Gdata_Gbase_ItemEntry] 7Zend_Gdata_Gbase_Feed]- ]Zend_Gdata_Gbase_Extension_BaseAttribute] 9Zend_Gdata_Gbase_Entry]   _  ]0xKc7T*mB



g
:
				Z	.	d=~bG!s;fFwO(c6Z7b?             #V IZend_Json_Server_Response_Http]U =Zend_Json_Server_Request]"T GZend_Json_Server_Request_Http]S AZend_Json_Server_Exception]R 9Zend_Json_Server_Error]Q 9Zend_Json_Server_Cache]P 3Zend_Json_Exception]O /Zend_Json_Encoder]N /Zend_Json_Decoder]M 'Zend_InfoCard]-L ]Zend_InfoCard_Xml_SecurityTokenReference]K AZend_InfoCard_Xml_Security])J UZend_InfoCard_Xml_Security_Transform]4I kZend_InfoCard_Xml_Security_Transform_XmlExcC14N]3H iZend_InfoCard_Xml_Security_Transform_Exception]<G {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignature])F UZend_InfoCard_Xml_Security_Exception]E ?Zend_InfoCard_Xml_KeyInfo]&D OZend_InfoCard_Xml_KeyInfo_XmlDSig]&C OZend_InfoCard_Xml_KeyInfo_Default]'B QZend_InfoCard_Xml_KeyInfo_Abstract] A CZend_InfoCard_Xml_Exception]#@ IZend_InfoCard_Xml_EncryptedKey]$? KZend_InfoCard_Xml_EncryptedData]+> YZend_InfoCard_Xml_EncryptedData_XmlEnc]-= ]Zend_InfoCard_Xml_EncryptedData_Abstract]< ?Zend_InfoCard_Xml_Element] ; CZend_InfoCard_Xml_Assertion]%: MZend_InfoCard_Xml_Assertion_Saml]9 ;Zend_InfoCard_Exception]%8 MZend_InfoCard_Exception_Abstract]7 5Zend_InfoCard_Claims]6 5Zend_InfoCard_Cipher]55 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc]54 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc]43 kZend_InfoCard_Cipher_Symmetric_Adapter_Abstract])2 UZend_InfoCard_Cipher_Pki_Adapter_Rsa].1 _Zend_InfoCard_Cipher_Pki_Adapter_Abstract]#0 IZend_InfoCard_Cipher_Exception]$/ KZend_InfoCard_Adapter_Exception]". GZend_InfoCard_Adapter_Default]- 1Zend_Http_Response], 3Zend_Http_Exception]+ 3Zend_Http_CookieJar]* -Zend_Http_Cookie]) -Zend_Http_Client]( AZend_Http_Client_Exception]"' GZend_Http_Client_Adapter_Test]$& KZend_Http_Client_Adapter_Socket]#% IZend_Http_Client_Adapter_Proxy]'$ QZend_Http_Client_Adapter_Exception]# !Zend_Gdata]" 1Zend_Gdata_YouTube]"! GZend_Gdata_YouTube_VideoQuery]!  EZend_Gdata_YouTube_VideoFeed]" GZend_Gdata_YouTube_VideoEntry]( SZend_Gdata_YouTube_UserProfileEntry]( SZend_Gdata_YouTube_SubscriptionFeed]) UZend_Gdata_YouTube_SubscriptionEntry]) UZend_Gdata_YouTube_PlaylistVideoFeed]* WZend_Gdata_YouTube_PlaylistVideoEntry]( SZend_Gdata_YouTube_PlaylistListFeed]) UZend_Gdata_YouTube_PlaylistListEntry]" GZend_Gdata_YouTube_MediaEntry]* WZend_Gdata_YouTube_Extension_Username]' QZend_Gdata_YouTube_Extension_Token]( SZend_Gdata_YouTube_Extension_Status], [Zend_Gdata_YouTube_Extension_Statistics]' QZend_Gdata_YouTube_Extension_State]( SZend_Gdata_YouTube_Extension_School]- ]Zend_Gdata_YouTube_Extension_ReleaseDate]. _Zend_Gdata_YouTube_Extension_Relationship]* WZend_Gdata_YouTube_Extension_Recorded]& OZend_Gdata_YouTube_Extension_Racy]) UZend_Gdata_YouTube_Extension_Private]* WZend_Gdata_YouTube_Extension_Position],
 [Zend_Gdata_YouTube_Extension_Occupation])	 UZend_Gdata_YouTube_Extension_NoEmbed]' QZend_Gdata_YouTube_Extension_Music]( SZend_Gdata_YouTube_Extension_Movies], [Zend_Gdata_YouTube_Extension_MediaGroup]. _Zend_Gdata_YouTube_Extension_MediaContent]* WZend_Gdata_YouTube_Extension_Location]& OZend_Gdata_YouTube_Extension_Link]* WZend_Gdata_YouTube_Extension_Hometown]) UZend_Gdata_YouTube_Extension_Hobbies](  SZend_Gdata_YouTube_Extension_Gender]* WZend_Gdata_YouTube_Extension_Duration]-~ ]Zend_Gdata_YouTube_Extension_Description])} UZend_Gdata_YouTube_Extension_Control])| UZend_Gdata_YouTube_Extension_Company]'{ QZend_Gdata_YouTube_Extension_Books]%z MZend_Gdata_YouTube_Extension_Age]#y IZend_Gdata_YouTube_ContactFeed]$x KZend_Gdata_YouTube_ContactEntry]   z q=gF2w^J/kP0qU>




]
2
				|	[	<	rL'cBfG&sX:x\@x^J1fH%lO;                          !P EZend_Paginator_Adapter_Array]O #Zend_OpenId]N 5Zend_OpenId_Provider]M ?Zend_OpenId_Provider_User]&L OZend_OpenId_Provider_User_Session]!K EZend_OpenId_Provider_Storage]&J OZend_OpenId_Provider_Storage_File]I 7Zend_OpenId_Extension]H AZend_OpenId_Extension_Sreg]G 7Zend_OpenId_Exception]F 5Zend_OpenId_Consumer]!E EZend_OpenId_Consumer_Storage]&D OZend_OpenId_Consumer_Storage_File]C Zend_Mime]B )Zend_Mime_Part]A /Zend_Mime_Message]@ 3Zend_Mime_Exception]? -Zend_Mime_Decode]> #Zend_Memory]= /Zend_Memory_Value]< 3Zend_Memory_Manager]; 7Zend_Memory_Exception]: 7Zend_Memory_Container]"9 GZend_Memory_Container_Movable]!8 EZend_Memory_Container_Locked]!7 EZend_Memory_AccessController]6 3Zend_Measure_Weight]5 3Zend_Measure_Volume]%4 MZend_Measure_Viscosity_Kinematic]#3 IZend_Measure_Viscosity_Dynamic]2 3Zend_Measure_Torque]1 /Zend_Measure_Time]0 =Zend_Measure_Temperature]/ 1Zend_Measure_Speed]. 7Zend_Measure_Pressure]- 1Zend_Measure_Power], 3Zend_Measure_Number]+ 9Zend_Measure_Lightness]* 3Zend_Measure_Length]) ?Zend_Measure_Illumination]( 9Zend_Measure_Frequency]' 1Zend_Measure_Force]& =Zend_Measure_Flow_Volume]% 9Zend_Measure_Flow_Mole]$ 9Zend_Measure_Flow_Mass]# 9Zend_Measure_Exception]" 3Zend_Measure_Energy]! 5Zend_Measure_Density]  5Zend_Measure_Current]  CZend_Measure_Cooking_Weight]  CZend_Measure_Cooking_Volume] =Zend_Measure_Capacitance] 3Zend_Measure_Binary] /Zend_Measure_Area] 1Zend_Measure_Angle] ?Zend_Measure_Acceleration] 7Zend_Measure_Abstract] Zend_Mail] =Zend_Mail_Transport_Smtp]! EZend_Mail_Transport_Sendmail]" GZend_Mail_Transport_Exception]! EZend_Mail_Transport_Abstract] /Zend_Mail_Storage]' QZend_Mail_Storage_Writable_Maildir] 9Zend_Mail_Storage_Pop3] 9Zend_Mail_Storage_Mbox] ?Zend_Mail_Storage_Maildir] 9Zend_Mail_Storage_Imap] =Zend_Mail_Storage_Folder]" GZend_Mail_Storage_Folder_Mbox]%
 MZend_Mail_Storage_Folder_Maildir] 	 CZend_Mail_Storage_Exception] AZend_Mail_Storage_Abstract] ;Zend_Mail_Protocol_Smtp]' QZend_Mail_Protocol_Smtp_Auth_Plain]' QZend_Mail_Protocol_Smtp_Auth_Login]) UZend_Mail_Protocol_Smtp_Auth_Crammd5] ;Zend_Mail_Protocol_Pop3] ;Zend_Mail_Protocol_Imap]! EZend_Mail_Protocol_Exception]   CZend_Mail_Protocol_Abstract] )Zend_Mail_Part]~ 3Zend_Mail_Part_File]} /Zend_Mail_Message]| 9Zend_Mail_Message_File]{ 3Zend_Mail_Exception]z Zend_Log]y 9Zend_Log_Writer_Stream]x 5Zend_Log_Writer_Null]w 5Zend_Log_Writer_Mock]v ;Zend_Log_Writer_Firebug]u 1Zend_Log_Writer_Db]t =Zend_Log_Writer_Abstract]s 9Zend_Log_Formatter_Xml]r ?Zend_Log_Formatter_Simple]q =Zend_Log_Filter_Suppress]p =Zend_Log_Filter_Priority]o ;Zend_Log_Filter_Message]n 1Zend_Log_Exception]m #Zend_Locale]l -Zend_Locale_Math]k =Zend_Locale_Math_PhpMath]j AZend_Locale_Math_Exception]i 1Zend_Locale_Format]h 7Zend_Locale_Exception]g -Zend_Locale_Data]!f EZend_Locale_Data_Translation]e #Zend_Loader]d =Zend_Loader_PluginLoader]'c QZend_Loader_PluginLoader_Exception]b 7Zend_Loader_Exception]a Zend_Ldap]` 3Zend_Ldap_Exception]_ #Zend_Layout]^ 7Zend_Layout_Exception])] UZend_Layout_Controller_Plugin_Layout]0\ cZend_Layout_Controller_Action_Helper_Layout][ Zend_Json]Z -Zend_Json_Server]Y 5Zend_Json_Server_Smd]!X EZend_Json_Server_Smd_Service]W ?Zend_Json_Server_Response]   d  _>sI&oT=|U5
wW>




_
9
				}	]	<	dL2N!m/t4K[<mO8}R*                  4 =Zend_ProgressBar_Adapter]$3 KZend_ProgressBar_Adapter_JsPush]$2 KZend_ProgressBar_Adapter_JsPull]'1 QZend_ProgressBar_Adapter_Exception]%0 MZend_ProgressBar_Adapter_Console]/ Zend_Pdf]!. EZend_Pdf_UpdateInfoContainer]- -Zend_Pdf_Trailer], ;Zend_Pdf_Trailer_Keeper]+ AZend_Pdf_Trailer_Generator]* )Zend_Pdf_Style]) 7Zend_Pdf_StringParser]( /Zend_Pdf_Resource]#' IZend_Pdf_Resource_ImageFactory]& ;Zend_Pdf_Resource_Image]!% EZend_Pdf_Resource_Image_Tiff] $ CZend_Pdf_Resource_Image_Png]!# EZend_Pdf_Resource_Image_Jpeg]" 9Zend_Pdf_Resource_Font]!! EZend_Pdf_Resource_Font_Type0]"  GZend_Pdf_Resource_Font_Simple]+ YZend_Pdf_Resource_Font_Simple_Standard]8 sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats]6 oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman]7 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic]; yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic]5 mZend_Pdf_Resource_Font_Simple_Standard_TimesBold]2 gZend_Pdf_Resource_Font_Simple_Standard_Symbol]< {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaOblique]A Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique]9 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold]5 mZend_Pdf_Resource_Font_Simple_Standard_Helvetica]: wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique]> Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique]7 qZend_Pdf_Resource_Font_Simple_Standard_CourierBold]3 iZend_Pdf_Resource_Font_Simple_Standard_Courier]) UZend_Pdf_Resource_Font_Simple_Parsed]2 gZend_Pdf_Resource_Font_Simple_Parsed_TrueType]* WZend_Pdf_Resource_Font_FontDescriptor]% MZend_Pdf_Resource_Font_Extracted]# IZend_Pdf_Resource_Font_CidFont], [Zend_Pdf_Resource_Font_CidFont_TrueType]
 /Zend_Pdf_PhpArray]	 +Zend_Pdf_Parser] 9Zend_Pdf_Parser_Stream] 'Zend_Pdf_Page] )Zend_Pdf_Image] 'Zend_Pdf_Font]  CZend_Pdf_Filter_Compression]$ KZend_Pdf_Filter_Compression_Lzw]& OZend_Pdf_Filter_Compression_Flate] =Zend_Pdf_Filter_AsciiHex]  ;Zend_Pdf_Filter_Ascii85]" GZend_Pdf_FileParserDataSource])~ UZend_Pdf_FileParserDataSource_String]'} QZend_Pdf_FileParserDataSource_File]| 3Zend_Pdf_FileParser]{ ?Zend_Pdf_FileParser_Image]"z GZend_Pdf_FileParser_Image_Png]y =Zend_Pdf_FileParser_Font]&x OZend_Pdf_FileParser_Font_OpenType]/w aZend_Pdf_FileParser_Font_OpenType_TrueType]v 1Zend_Pdf_Exception]u ;Zend_Pdf_ElementFactory]"t GZend_Pdf_ElementFactory_Proxy]s -Zend_Pdf_Element]r ;Zend_Pdf_Element_String]#q IZend_Pdf_Element_String_Binary]p ;Zend_Pdf_Element_Stream]o AZend_Pdf_Element_Reference]%n MZend_Pdf_Element_Reference_Table]'m QZend_Pdf_Element_Reference_Context]l ;Zend_Pdf_Element_Object]#k IZend_Pdf_Element_Object_Stream]j =Zend_Pdf_Element_Numeric]i 7Zend_Pdf_Element_Null]h 7Zend_Pdf_Element_Name] g CZend_Pdf_Element_Dictionary]f =Zend_Pdf_Element_Boolean]e 9Zend_Pdf_Element_Array]d )Zend_Pdf_Color]c 1Zend_Pdf_Color_Rgb]b 3Zend_Pdf_Color_Html]a =Zend_Pdf_Color_GrayScale]` 3Zend_Pdf_Color_Cmyk]_ 'Zend_Pdf_Cmap]^ AZend_Pdf_Cmap_TrimmedTable]!] EZend_Pdf_Cmap_SegmentToDelta]\ AZend_Pdf_Cmap_ByteEncoding]&[ OZend_Pdf_Cmap_ByteEncoding_Static]Z )Zend_Paginator]*Y WZend_Paginator_ScrollingStyle_Sliding]*X WZend_Paginator_ScrollingStyle_Jumping]*W WZend_Paginator_ScrollingStyle_Elastic]&V OZend_Paginator_ScrollingStyle_All]U =Zend_Paginator_Exception] T CZend_Paginator_Adapter_Null]$S KZend_Paginator_Adapter_Iterator])R UZend_Paginator_Adapter_DbTableSelect]$Q KZend_Paginator_Adapter_DbSelect]   T  aA(h/\#f9\"



t
K
"					t	B	U\4U'b4zD_*d3sJ    / aZend_Search_Lucene_Storage_File_Filesystem]) UZend_Search_Lucene_Storage_Directory]4 kZend_Search_Lucene_Storage_Directory_Filesystem]% MZend_Search_Lucene_Search_Weight]* WZend_Search_Lucene_Search_Weight_Term], [Zend_Search_Lucene_Search_Weight_Phrase]/ aZend_Search_Lucene_Search_Weight_MultiTerm]+ YZend_Search_Lucene_Search_Weight_Empty]-  ]Zend_Search_Lucene_Search_Weight_Boolean]) UZend_Search_Lucene_Search_Similarity]1~ eZend_Search_Lucene_Search_Similarity_Default])} UZend_Search_Lucene_Search_QueryToken]3| iZend_Search_Lucene_Search_QueryParserException]1{ eZend_Search_Lucene_Search_QueryParserContext]*z WZend_Search_Lucene_Search_QueryParser])y UZend_Search_Lucene_Search_QueryLexer]'x QZend_Search_Lucene_Search_QueryHit])w UZend_Search_Lucene_Search_QueryEntry].v _Zend_Search_Lucene_Search_QueryEntry_Term]2u gZend_Search_Lucene_Search_QueryEntry_Subquery]0t cZend_Search_Lucene_Search_QueryEntry_Phrase]$s KZend_Search_Lucene_Search_Query]-r ]Zend_Search_Lucene_Search_Query_Wildcard])q UZend_Search_Lucene_Search_Query_Term]*p WZend_Search_Lucene_Search_Query_Range]+o YZend_Search_Lucene_Search_Query_Phrase].n _Zend_Search_Lucene_Search_Query_MultiTerm]2m gZend_Search_Lucene_Search_Query_Insignificant]*l WZend_Search_Lucene_Search_Query_Fuzzy]*k WZend_Search_Lucene_Search_Query_Empty],j [Zend_Search_Lucene_Search_Query_Boolean]:i wZend_Search_Lucene_Search_BooleanExpressionRecognizer]h =Zend_Search_Lucene_Proxy]%g MZend_Search_Lucene_PriorityQueue]#f IZend_Search_Lucene_LockManager]$e KZend_Search_Lucene_Index_Writer]&d OZend_Search_Lucene_Index_TermInfo]"c GZend_Search_Lucene_Index_Term]+b YZend_Search_Lucene_Index_SegmentWriter]8a sZend_Search_Lucene_Index_SegmentWriter_StreamWriter]:` wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter]+_ YZend_Search_Lucene_Index_SegmentMerger]6^ oZend_Search_Lucene_Index_SegmentInfoPriorityQueue])] UZend_Search_Lucene_Index_SegmentInfo]'\ QZend_Search_Lucene_Index_FieldInfo]([ SZend_Search_Lucene_Index_DocsFilter].Z _Zend_Search_Lucene_Index_DictionaryLoader]!Y EZend_Search_Lucene_FSMAction]X 9Zend_Search_Lucene_FSM]W =Zend_Search_Lucene_Field]!V EZend_Search_Lucene_Exception] U CZend_Search_Lucene_Document]%T MZend_Search_Lucene_Document_Xlsx]%S MZend_Search_Lucene_Document_Pptx](R SZend_Search_Lucene_Document_OpenXml]%Q MZend_Search_Lucene_Document_Html]%P MZend_Search_Lucene_Document_Docx],O [Zend_Search_Lucene_Analysis_TokenFilter]6N oZend_Search_Lucene_Analysis_TokenFilter_StopWords]7M qZend_Search_Lucene_Analysis_TokenFilter_ShortWords]:L wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8]6K oZend_Search_Lucene_Analysis_TokenFilter_LowerCase]&J OZend_Search_Lucene_Analysis_Token])I UZend_Search_Lucene_Analysis_Analyzer]0H cZend_Search_Lucene_Analysis_Analyzer_Common]8G sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num]IF Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive]5E mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8]FD Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive]8C sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum]IB Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive]5A mZend_Search_Lucene_Analysis_Analyzer_Common_Text]F@ Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive]? 7Zend_Search_Exception]> -Zend_Rest_Server]= AZend_Rest_Server_Exception]< 3Zend_Rest_Exception]; -Zend_Rest_Client]: ;Zend_Rest_Client_Result]&9 OZend_Rest_Client_Result_Exception]8 AZend_Rest_Client_Exception]7 'Zend_Registry]6 -Zend_ProgressBar]5 AZend_ProgressBar_Exception]   d  qW8a8lCk?iC




c
9
					t	L	R*{[8yQ6sIo@|R$xHrK+                  l CZend_Service_Twitter_Search]#k IZend_Service_Twitter_Exception]j ;Zend_Service_Technorati]#i IZend_Service_Technorati_Weblog]"h GZend_Service_Technorati_Utils]*g WZend_Service_Technorati_TagsResultSet]'f QZend_Service_Technorati_TagsResult])e UZend_Service_Technorati_TagResultSet]&d OZend_Service_Technorati_TagResult],c [Zend_Service_Technorati_SearchResultSet])b UZend_Service_Technorati_SearchResult]&a OZend_Service_Technorati_ResultSet]#` IZend_Service_Technorati_Result]*_ WZend_Service_Technorati_KeyInfoResult]*^ WZend_Service_Technorati_GetInfoResult]&] OZend_Service_Technorati_Exception]1\ eZend_Service_Technorati_DailyCountsResultSet].[ _Zend_Service_Technorati_DailyCountsResult],Z [Zend_Service_Technorati_CosmosResultSet])Y UZend_Service_Technorati_CosmosResult]+X YZend_Service_Technorati_BlogInfoResult]#W IZend_Service_Technorati_Author]V ;Zend_Service_StrikeIron](U SZend_Service_StrikeIron_ZipCodeInfo]2T gZend_Service_StrikeIron_USAddressVerification]-S ]Zend_Service_StrikeIron_SalesUseTaxBasic]&R OZend_Service_StrikeIron_Exception]&Q OZend_Service_StrikeIron_Decorator]!P EZend_Service_StrikeIron_Base]O ;Zend_Service_SlideShare]&N OZend_Service_SlideShare_SlideShow]&M OZend_Service_SlideShare_Exception]L 1Zend_Service_Simpy]$K KZend_Service_Simpy_WatchlistSet]*J WZend_Service_Simpy_WatchlistFilterSet]'I QZend_Service_Simpy_WatchlistFilter]!H EZend_Service_Simpy_Watchlist]G ?Zend_Service_Simpy_TagSet]F 9Zend_Service_Simpy_Tag]E AZend_Service_Simpy_NoteSet]D ;Zend_Service_Simpy_Note]C AZend_Service_Simpy_LinkSet]!B EZend_Service_Simpy_LinkQuery]A ;Zend_Service_Simpy_Link]@ 9Zend_Service_ReCaptcha]$? KZend_Service_ReCaptcha_Response]$> KZend_Service_ReCaptcha_MailHide].= _Zend_Service_ReCaptcha_MailHide_Exception]%< MZend_Service_ReCaptcha_Exception]; 7Zend_Service_Nirvanix]#: IZend_Service_Nirvanix_Response])9 UZend_Service_Nirvanix_Namespace_Imfs])8 UZend_Service_Nirvanix_Namespace_Base]$7 KZend_Service_Nirvanix_Exception]6 3Zend_Service_Flickr]"5 GZend_Service_Flickr_ResultSet]4 AZend_Service_Flickr_Result]3 ?Zend_Service_Flickr_Image]2 9Zend_Service_Exception]1 9Zend_Service_Delicious]&0 OZend_Service_Delicious_SimplePost]$/ KZend_Service_Delicious_PostList] . CZend_Service_Delicious_Post]%- MZend_Service_Delicious_Exception] , CZend_Service_Audioscrobbler]+ 3Zend_Service_Amazon]'* QZend_Service_Amazon_SimilarProduct]") GZend_Service_Amazon_ResultSet]( ?Zend_Service_Amazon_Query]!' EZend_Service_Amazon_OfferSet]& ?Zend_Service_Amazon_Offer]&% OZend_Service_Amazon_ListmaniaList]$ =Zend_Service_Amazon_Item]# ?Zend_Service_Amazon_Image](" SZend_Service_Amazon_EditorialReview]'! QZend_Service_Amazon_CustomerReview]$  KZend_Service_Amazon_Accessories] 5Zend_Service_Akismet] 7Zend_Service_Abstract] 9Zend_Server_Reflection]' QZend_Server_Reflection_ReturnValue]% MZend_Server_Reflection_Prototype]% MZend_Server_Reflection_Parameter]  CZend_Server_Reflection_Node]" GZend_Server_Reflection_Method]$ KZend_Server_Reflection_Function]- ]Zend_Server_Reflection_Function_Abstract]% MZend_Server_Reflection_Exception]! EZend_Server_Reflection_Class]! EZend_Server_Method_Prototype]! EZend_Server_Method_Parameter]" GZend_Server_Method_Definition]  CZend_Server_Method_Callback] 7Zend_Server_Exception] 9Zend_Server_Definition] /Zend_Server_Cache] 5Zend_Server_Abstract] 1Zend_Search_Lucene]$
 KZend_Search_Lucene_Storage_File]+	 YZend_Search_Lucene_Storage_File_Memory]   n  qEvLb:oG}Z;"




{
]
4
			r	[	-oS0hP0~W4cB+nK-xW6
sS.{[;                          Z 3Zend_Validate_Float]Y ?Zend_Validate_File_Upload]X ;Zend_Validate_File_Size]W ;Zend_Validate_File_Sha1]!V EZend_Validate_File_NotExists] U CZend_Validate_File_MimeType]T 9Zend_Validate_File_Md5]S AZend_Validate_File_IsImage]$R KZend_Validate_File_IsCompressed]!Q EZend_Validate_File_ImageSize]P ;Zend_Validate_File_Hash]!O EZend_Validate_File_FilesSize]!N EZend_Validate_File_Extension]M ?Zend_Validate_File_Exists]'L QZend_Validate_File_ExcludeMimeType](K SZend_Validate_File_ExcludeExtension]J =Zend_Validate_File_Crc32]I =Zend_Validate_File_Count]H ;Zend_Validate_Exception]G AZend_Validate_EmailAddress]F 5Zend_Validate_Digits]E 1Zend_Validate_Date]D 3Zend_Validate_Ccnum]C 7Zend_Validate_Between]B 7Zend_Validate_Barcode]A AZend_Validate_Barcode_UpcA] @ CZend_Validate_Barcode_Ean13]? 3Zend_Validate_Alpha]> 3Zend_Validate_Alnum]= 9Zend_Validate_Abstract]< Zend_Uri]; 'Zend_Uri_Http]: 1Zend_Uri_Exception]9 )Zend_Translate]8 =Zend_Translate_Exception]7 9Zend_Translate_Adapter]!6 EZend_Translate_Adapter_XmlTm]!5 EZend_Translate_Adapter_Xliff]4 AZend_Translate_Adapter_Tmx]3 AZend_Translate_Adapter_Tbx]2 ?Zend_Translate_Adapter_Qt]1 AZend_Translate_Adapter_Ini]#0 IZend_Translate_Adapter_Gettext]/ AZend_Translate_Adapter_Csv]!. EZend_Translate_Adapter_Array]- 'Zend_TimeSync], 1Zend_TimeSync_Sntp]+ 9Zend_TimeSync_Protocol]* /Zend_TimeSync_Ntp]) ;Zend_TimeSync_Exception]( +Zend_Text_Table]' 3Zend_Text_Table_Row]& ?Zend_Text_Table_Exception]&% OZend_Text_Table_Decorator_Unicode]$$ KZend_Text_Table_Decorator_Ascii]# 9Zend_Text_Table_Column]" -Zend_Text_Figlet]! AZend_Text_Figlet_Exception]  3Zend_Text_Exception]) UZend_Test_PHPUnit_ControllerTestCase]0 cZend_Test_PHPUnit_Constraint_ResponseHeader]* WZend_Test_PHPUnit_Constraint_Redirect]+ YZend_Test_PHPUnit_Constraint_Exception]* WZend_Test_PHPUnit_Constraint_DomQuery] )Zend_Soap_Wsdl]/ aZend_Soap_Wsdl_Strategy_DefaultComplexType]0 cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence]/ aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex]$ KZend_Soap_Wsdl_Strategy_AnyType]% MZend_Soap_Wsdl_Strategy_Abstract] 7Zend_Soap_Wsdl_Parser]! EZend_Soap_Wsdl_Parser_Result] =Zend_Soap_Wsdl_Exception]! EZend_Soap_Wsdl_CodeGenerator] -Zend_Soap_Server] AZend_Soap_Server_Exception] -Zend_Soap_Client] 9Zend_Soap_Client_Local] AZend_Soap_Client_Exception] ;Zend_Soap_Client_DotNet]
 ;Zend_Soap_Client_Common]	 9Zend_Soap_AutoDiscover]% MZend_Soap_AutoDiscover_Exception] %Zend_Session]) UZend_Session_Validator_HttpUserAgent]$ KZend_Session_Validator_Abstract]' QZend_Session_SaveHandler_Exception]% MZend_Session_SaveHandler_DbTable] 9Zend_Session_Namespace] 9Zend_Session_Exception]  7Zend_Session_Abstract] 1Zend_Service_Yahoo]$~ KZend_Service_Yahoo_WebResultSet]!} EZend_Service_Yahoo_WebResult]&| OZend_Service_Yahoo_VideoResultSet]#{ IZend_Service_Yahoo_VideoResult]!z EZend_Service_Yahoo_ResultSet]y ?Zend_Service_Yahoo_Result])x UZend_Service_Yahoo_PageDataResultSet]&w OZend_Service_Yahoo_PageDataResult]%v MZend_Service_Yahoo_NewsResultSet]"u GZend_Service_Yahoo_NewsResult]&t OZend_Service_Yahoo_LocalResultSet]#s IZend_Service_Yahoo_LocalResult]+r YZend_Service_Yahoo_InlinkDataResultSet](q SZend_Service_Yahoo_InlinkDataResult]&p OZend_Service_Yahoo_ImageResultSet]#o IZend_Service_Yahoo_ImageResult]n =Zend_Service_Yahoo_Image]m 5Zend_Service_Twitter]   m  ^<uW=$|aE#}Y3^3




]
;
					g	B	jL,X~P+iIvL#eK*gF$	^=                      G ?Zend_XmlRpc_Value_Integer] F CZend_XmlRpc_Value_Exception]E =Zend_XmlRpc_Value_Double]D AZend_XmlRpc_Value_DateTime]!C EZend_XmlRpc_Value_Collection]B ?Zend_XmlRpc_Value_Boolean]A =Zend_XmlRpc_Value_Base64]@ ;Zend_XmlRpc_Value_Array]? 1Zend_XmlRpc_Server]> ?Zend_XmlRpc_Server_System]= =Zend_XmlRpc_Server_Fault]!< EZend_XmlRpc_Server_Exception]; =Zend_XmlRpc_Server_Cache]: 5Zend_XmlRpc_Response]9 ?Zend_XmlRpc_Response_Http]8 3Zend_XmlRpc_Request]7 ?Zend_XmlRpc_Request_Stdin]6 =Zend_XmlRpc_Request_Http]5 /Zend_XmlRpc_Fault]4 7Zend_XmlRpc_Exception]3 1Zend_XmlRpc_Client]#2 IZend_XmlRpc_Client_ServerProxy]+1 YZend_XmlRpc_Client_ServerIntrospection]+0 YZend_XmlRpc_Client_IntrospectException]%/ MZend_XmlRpc_Client_HttpException]&. OZend_XmlRpc_Client_FaultException]!- EZend_XmlRpc_Client_Exception]&, OZend_Wildfire_Protocol_JsonStream]!+ EZend_Wildfire_Plugin_FirePhp].* _Zend_Wildfire_Plugin_FirePhp_TableMessage])) UZend_Wildfire_Plugin_FirePhp_Message]( ;Zend_Wildfire_Exception]&' OZend_Wildfire_Channel_HttpHeaders]& Zend_View]% -Zend_View_Stream]$ 5Zend_View_Helper_Url]# AZend_View_Helper_Translate])" UZend_View_Helper_RenderToPlaceholder]!! EZend_View_Helper_Placeholder]*  WZend_View_Helper_Placeholder_Registry]4 kZend_View_Helper_Placeholder_Registry_Exception]+ YZend_View_Helper_Placeholder_Container]6 oZend_View_Helper_Placeholder_Container_Standalone]5 mZend_View_Helper_Placeholder_Container_Exception]4 kZend_View_Helper_Placeholder_Container_Abstract]! EZend_View_Helper_PartialLoop] =Zend_View_Helper_Partial]' QZend_View_Helper_Partial_Exception]' QZend_View_Helper_PaginationControl] ;Zend_View_Helper_Layout] 7Zend_View_Helper_Json]" GZend_View_Helper_InlineScript]# IZend_View_Helper_HtmlQuicktime] ?Zend_View_Helper_HtmlPage]  CZend_View_Helper_HtmlObject] ?Zend_View_Helper_HtmlList] AZend_View_Helper_HtmlFlash]! EZend_View_Helper_HtmlElement] AZend_View_Helper_HeadTitle] AZend_View_Helper_HeadStyle]  CZend_View_Helper_HeadScript]
 ?Zend_View_Helper_HeadMeta]	 ?Zend_View_Helper_HeadLink]" GZend_View_Helper_FormTextarea] ?Zend_View_Helper_FormText]  CZend_View_Helper_FormSubmit]  CZend_View_Helper_FormSelect] AZend_View_Helper_FormReset] AZend_View_Helper_FormRadio]" GZend_View_Helper_FormPassword] ?Zend_View_Helper_FormNote]'  QZend_View_Helper_FormMultiCheckbox] AZend_View_Helper_FormLabel]~ AZend_View_Helper_FormImage] } CZend_View_Helper_FormHidden]| ?Zend_View_Helper_FormFile] { CZend_View_Helper_FormErrors]!z EZend_View_Helper_FormElement]"y GZend_View_Helper_FormCheckbox] x CZend_View_Helper_FormButton]w 7Zend_View_Helper_Form]v ?Zend_View_Helper_Fieldset]u =Zend_View_Helper_Doctype]!t EZend_View_Helper_DeclareVars]s ;Zend_View_Helper_Action]r ?Zend_View_Helper_Abstract]q 3Zend_View_Exception]p 1Zend_View_Abstract]o %Zend_Version]n 'Zend_Validate]m AZend_Validate_StringLength]l 3Zend_Validate_Regex]k 9Zend_Validate_NotEmpty]j 9Zend_Validate_LessThan]i -Zend_Validate_Ip]h /Zend_Validate_Int]g 7Zend_Validate_InArray]f ;Zend_Validate_Identical]e 9Zend_Validate_Hostname]d ?Zend_Validate_Hostname_Se]c ?Zend_Validate_Hostname_No]b ?Zend_Validate_Hostname_Li]a ?Zend_Validate_Hostname_Hu]` ?Zend_Validate_Hostname_Fi]_ ?Zend_Validate_Hostname_De]^ ?Zend_Validate_Hostname_Ch]] ?Zend_Validate_Hostname_At]\ /Zend_Validate_Hex][ ?Zend_Validate_GreaterThan]   m  eJ0b;^<oN+sC




[
)					z	^	E	!a?}`>mN2hI.h6Qb/~Q%    4 7Zend_Controller_Front^3 ?Zend_Controller_Exception^(2 SZend_Controller_Dispatcher_Standard^)1 UZend_Controller_Dispatcher_Exception^(0 SZend_Controller_Dispatcher_Abstract^/ 9Zend_Controller_Action^(. SZend_Controller_Action_HelperBroker^6- oZend_Controller_Action_HelperBroker_PriorityStack^/, aZend_Controller_Action_Helper_ViewRenderer^&+ OZend_Controller_Action_Helper_Url^-* ]Zend_Controller_Action_Helper_Redirector^') QZend_Controller_Action_Helper_Json^1( eZend_Controller_Action_Helper_FlashMessenger^0' cZend_Controller_Action_Helper_ContextSwitch^<& {Zend_Controller_Action_Helper_AutoCompleteScriptaculous^3% iZend_Controller_Action_Helper_AutoCompleteDojo^8$ sZend_Controller_Action_Helper_AutoComplete_Abstract^.# _Zend_Controller_Action_Helper_AjaxContext^." _Zend_Controller_Action_Helper_ActionStack^+! YZend_Controller_Action_Helper_Abstract^%  MZend_Controller_Action_Exception^ 3Zend_Console_Getopt^" GZend_Console_Getopt_Exception^ #Zend_Config^ +Zend_Config_Xml^ 1Zend_Config_Writer^ 9Zend_Config_Writer_Xml^ 9Zend_Config_Writer_Ini^ =Zend_Config_Writer_Array^ +Zend_Config_Ini^ 7Zend_Config_Exception^ /Zend_Captcha_Word^ 9Zend_Captcha_ReCaptcha^ 1Zend_Captcha_Image^ 3Zend_Captcha_Figlet^ 9Zend_Captcha_Exception^ /Zend_Captcha_Dumb^ /Zend_Captcha_Base^ !Zend_Cache^ =Zend_Cache_Frontend_Page^ AZend_Cache_Frontend_Output^! EZend_Cache_Frontend_Function^
 =Zend_Cache_Frontend_File^	 ?Zend_Cache_Frontend_Class^ 5Zend_Cache_Exception^ +Zend_Cache_Core^ 1Zend_Cache_Backend^$ KZend_Cache_Backend_ZendPlatform^ ?Zend_Cache_Backend_Xcache^! EZend_Cache_Backend_TwoLevels^ ;Zend_Cache_Backend_Test^ ?Zend_Cache_Backend_Sqlite^!  EZend_Cache_Backend_Memcached^ ;Zend_Cache_Backend_File^~ 9Zend_Cache_Backend_Apc^} Zend_Auth^| ?Zend_Auth_Storage_Session^${ KZend_Auth_Storage_NonPersistent^ z CZend_Auth_Storage_Exception^y -Zend_Auth_Result^x 3Zend_Auth_Exception^w =Zend_Auth_Adapter_OpenId^v 9Zend_Auth_Adapter_Ldap^u AZend_Auth_Adapter_InfoCard^t 9Zend_Auth_Adapter_Http^)s UZend_Auth_Adapter_Http_Resolver_File^.r _Zend_Auth_Adapter_Http_Resolver_Exception^ q CZend_Auth_Adapter_Exception^p =Zend_Auth_Adapter_Digest^o ?Zend_Auth_Adapter_DbTable^n ?Zend_Amf_Value_TraitsInfo^-m ]Zend_Amf_Value_Messaging_RemotingMessage^*l WZend_Amf_Value_Messaging_ErrorMessage^,k [Zend_Amf_Value_Messaging_CommandMessage^*j WZend_Amf_Value_Messaging_AsyncMessage^0i cZend_Amf_Value_Messaging_AcknowledgeMessage^-h ]Zend_Amf_Value_Messaging_AbstractMessage^!g EZend_Amf_Value_MessageHeader^f AZend_Amf_Value_MessageBody^e =Zend_Amf_Value_ByteArray^d AZend_Amf_Util_BinaryStream^c +Zend_Amf_Server^b ?Zend_Amf_Server_Exception^a /Zend_Amf_Response^` 9Zend_Amf_Response_Http^_ -Zend_Amf_Request^^ 7Zend_Amf_Request_Http^] ?Zend_Amf_Parse_TypeLoader^\ ?Zend_Amf_Parse_Serializer^ [ CZend_Amf_Parse_OutputStream^Z AZend_Amf_Parse_InputStream^ Y CZend_Amf_Parse_Deserializer^#X IZend_Amf_Parse_Amf3_Serializer^%W MZend_Amf_Parse_Amf3_Deserializer^#V IZend_Amf_Parse_Amf0_Serializer^%U MZend_Amf_Parse_Amf0_Deserializer^T 1Zend_Amf_Exception^S 1Zend_Amf_Constants^R Zend_Acl^Q 'Zend_Acl_Role^P 9Zend_Acl_Role_Registry^%O MZend_Acl_Role_Registry_Exception^N /Zend_Acl_Resource^M 1Zend_Acl_Exception^L /Zend_XmlRpc_Value]K =Zend_XmlRpc_Value_Struct]J =Zend_XmlRpc_Value_String]I =Zend_XmlRpc_Value_Scalar]H 7Zend_XmlRpc_Value_Nil]   b  GZ$rHuT6zO'



~
]
:
				x	T	8	pS.c)g<tT*W6\1	`?Z6                                   )S UZend_Controller_Dispatcher_Interface_R 5Zend_Captcha_Adapter_!Q EZend_Cache_Backend_Interface_)P UZend_Cache_Backend_ExtendedInterface_ O CZend_Auth_Storage_Interface_ N CZend_Auth_Adapter_Interface_.M _Zend_Auth_Adapter_Http_Resolver_Interface_L ;Zend_Acl_Role_Interface_ K CZend_Acl_Resource_Interface_J ?Zend_Acl_Assert_Interface_#I IZend_Wildfire_Plugin_Interface^$H KZend_Wildfire_Channel_Interface^G 3Zend_View_Interface^F AZend_View_Helper_Interface^E ;Zend_Validate_Interface^%D MZend_Validate_Hostname_Interface^(C SZend_Text_Table_Decorator_Interface^&B OZend_Soap_Wsdl_Strategy_Interface^%A MZend_Session_Validator_Interface^'@ QZend_Session_SaveHandler_Interface^? 7Zend_Server_Interface^!> EZend_Search_Lucene_Interface^= 9Zend_Request_Interface^< ?Zend_Pdf_Filter_Interface^&; OZend_Pdf_ElementFactory_Interface^,: [Zend_Paginator_ScrollingStyle_Interface^%9 MZend_Paginator_Adapter_Interface^$8 KZend_Memory_Container_Interface^)7 UZend_Mail_Storage_Writable_Interface^'6 QZend_Mail_Storage_Folder_Interface^5 =Zend_Mail_Part_Interface^ 4 CZend_Mail_Message_Interface^!3 EZend_Log_Formatter_Interface^2 ?Zend_Log_Filter_Interface^'1 QZend_Loader_PluginLoader_Interface^30 iZend_InfoCard_Xml_Security_Transform_Interface^(/ SZend_InfoCard_Xml_KeyInfo_Interface^(. SZend_InfoCard_Xml_Element_Interface^*- WZend_InfoCard_Xml_Assertion_Interface^-, ]Zend_InfoCard_Cipher_Symmetric_Interface^7+ qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface^7* qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interface^+) YZend_InfoCard_Cipher_Pki_Rsa_Interface^'( QZend_InfoCard_Cipher_Pki_Interface^$' KZend_InfoCard_Adapter_Interface^'& QZend_Http_Client_Adapter_Interface^% AZend_Gdata_App_MediaSource^"$ GZend_Form_Decorator_Interface^# 7Zend_Filter_Interface^ " CZend_Feed_Builder_Interface^ ! CZend_Db_Statement_Interface^+  YZend_Controller_Router_Route_Interface^% MZend_Controller_Router_Interface^) UZend_Controller_Dispatcher_Interface^ 5Zend_Captcha_Adapter^! EZend_Cache_Backend_Interface^) UZend_Cache_Backend_ExtendedInterface^  CZend_Auth_Storage_Interface^  CZend_Auth_Adapter_Interface^. _Zend_Auth_Adapter_Http_Resolver_Interface^ ;Zend_Acl_Role_Interface^  CZend_Acl_Resource_Interface^ ?Zend_Acl_Assert_Interface^# IZend_Wildfire_Plugin_Interface]$ KZend_Wildfire_Channel_Interface] 3Zend_View_Interface] AZend_View_Helper_Interface] ;Zend_Validate_Interface]% MZend_Validate_Hostname_Interface]( SZend_Text_Table_Decorator_Interface]& OZend_Soap_Wsdl_Strategy_Interface]% MZend_Session_Validator_Interface]' QZend_Session_SaveHandler_Interface]
 7Zend_Server_Interface]!	 EZend_Search_Lucene_Interface] 9Zend_Request_Interface] ?Zend_Pdf_Filter_Interface]& OZend_Pdf_ElementFactory_Interface], [Zend_Paginator_ScrollingStyle_Interface]% MZend_Paginator_Adapter_Interface]$ KZend_Memory_Container_Interface]) UZend_Mail_Storage_Writable_Interface]' QZend_Mail_Storage_Folder_Interface]  =Zend_Mail_Part_Interface]  CZend_Mail_Message_Interface]!~ EZend_Log_Formatter_Interface]} ?Zend_Log_Filter_Interface]'| QZend_Loader_PluginLoader_Interface]3{ iZend_InfoCard_Xml_Security_Transform_Interface](z SZend_InfoCard_Xml_KeyInfo_Interface](y SZend_InfoCard_Xml_Element_Interface]*x WZend_InfoCard_Xml_Assertion_Interface]-w ]Zend_InfoCard_Cipher_Symmetric_Interface]7v qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface]7u qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interface]+t YZend_InfoCard_Cipher_Pki_Rsa_Interface]'s QZend_InfoCard_Cipher_Pki_Interface]$r KZend_InfoCard_Adapter_Interface]   i  [2e;oFlAhV5




`
A
					p	P	.	y`?( rG&jF,~hXE.~Q!h:qF!rE                + YZend_Dojo_Form_Element_PasswordTextBox^) UZend_Dojo_Form_Element_NumberTextBox^) UZend_Dojo_Form_Element_NumberSpinner^, [Zend_Dojo_Form_Element_HorizontalSlider^+ YZend_Dojo_Form_Element_FilteringSelect^" GZend_Dojo_Form_Element_Editor^& OZend_Dojo_Form_Element_DijitMulti^! EZend_Dojo_Form_Element_Dijit^' QZend_Dojo_Form_Element_DateTextBox^+ YZend_Dojo_Form_Element_CurrencyTextBox^$ KZend_Dojo_Form_Element_ComboBox^$ KZend_Dojo_Form_Element_CheckBox^" GZend_Dojo_Form_Element_Button^  CZend_Dojo_Form_DisplayGroup^* WZend_Dojo_Form_Decorator_TabContainer^, [Zend_Dojo_Form_Decorator_StackContainer^, [Zend_Dojo_Form_Decorator_SplitContainer^' QZend_Dojo_Form_Decorator_DijitForm^* WZend_Dojo_Form_Decorator_DijitElement^,
 [Zend_Dojo_Form_Decorator_DijitContainer^)	 UZend_Dojo_Form_Decorator_ContentPane^- ]Zend_Dojo_Form_Decorator_BorderContainer^+ YZend_Dojo_Form_Decorator_AccordionPane^0 cZend_Dojo_Form_Decorator_AccordionContainer^ 3Zend_Dojo_Exception^ )Zend_Dojo_Data^ !Zend_Debug^ Zend_Db^ 'Zend_Db_Table^  5Zend_Db_Table_Select^# IZend_Db_Table_Select_Exception^~ 5Zend_Db_Table_Rowset^#} IZend_Db_Table_Rowset_Exception^"| GZend_Db_Table_Rowset_Abstract^{ /Zend_Db_Table_Row^ z CZend_Db_Table_Row_Exception^y AZend_Db_Table_Row_Abstract^x ;Zend_Db_Table_Exception^w 9Zend_Db_Table_Abstract^v /Zend_Db_Statement^u 7Zend_Db_Statement_Pdo^t ?Zend_Db_Statement_Pdo_Ibm^s =Zend_Db_Statement_Oracle^'r QZend_Db_Statement_Oracle_Exception^q =Zend_Db_Statement_Mysqli^'p QZend_Db_Statement_Mysqli_Exception^ o CZend_Db_Statement_Exception^n 7Zend_Db_Statement_Db2^$m KZend_Db_Statement_Db2_Exception^l )Zend_Db_Select^k =Zend_Db_Select_Exception^j -Zend_Db_Profiler^i 9Zend_Db_Profiler_Query^h =Zend_Db_Profiler_Firebug^g AZend_Db_Profiler_Exception^f %Zend_Db_Expr^e /Zend_Db_Exception^d AZend_Db_Adapter_Pdo_Sqlite^c ?Zend_Db_Adapter_Pdo_Pgsql^b ;Zend_Db_Adapter_Pdo_Oci^a ?Zend_Db_Adapter_Pdo_Mysql^` ?Zend_Db_Adapter_Pdo_Mssql^_ ;Zend_Db_Adapter_Pdo_Ibm^ ^ CZend_Db_Adapter_Pdo_Ibm_Ids^ ] CZend_Db_Adapter_Pdo_Ibm_Db2^!\ EZend_Db_Adapter_Pdo_Abstract^[ 9Zend_Db_Adapter_Oracle^%Z MZend_Db_Adapter_Oracle_Exception^Y 9Zend_Db_Adapter_Mysqli^%X MZend_Db_Adapter_Mysqli_Exception^W ?Zend_Db_Adapter_Exception^V 3Zend_Db_Adapter_Db2^"U GZend_Db_Adapter_Db2_Exception^T =Zend_Db_Adapter_Abstract^S Zend_Date^R 3Zend_Date_Exception^Q 5Zend_Date_DateObject^P -Zend_Date_Cities^O 'Zend_Currency^N ;Zend_Currency_Exception^!M EZend_Controller_Router_Route^(L SZend_Controller_Router_Route_Static^'K QZend_Controller_Router_Route_Regex^(J SZend_Controller_Router_Route_Module^*I WZend_Controller_Router_Route_Hostname^'H QZend_Controller_Router_Route_Chain^*G WZend_Controller_Router_Route_Abstract^#F IZend_Controller_Router_Rewrite^%E MZend_Controller_Router_Exception^$D KZend_Controller_Router_Abstract^*C WZend_Controller_Response_HttpTestCase^"B GZend_Controller_Response_Http^'A QZend_Controller_Response_Exception^!@ EZend_Controller_Response_Cli^&? OZend_Controller_Response_Abstract^#> IZend_Controller_Request_Simple^)= UZend_Controller_Request_HttpTestCase^!< EZend_Controller_Request_Http^&; OZend_Controller_Request_Exception^&: OZend_Controller_Request_Apache404^%9 MZend_Controller_Request_Abstract^(8 SZend_Controller_Plugin_ErrorHandler^"7 GZend_Controller_Plugin_Broker^'6 QZend_Controller_Plugin_ActionStack^$5 KZend_Controller_Plugin_Abstract^   j  [4	tS"|U+U2a5



^
1
				d	4	mR;zY< cH.c@pN/i@j<{V-	      $ KZend_Form_Decorator_Description^  CZend_Form_Decorator_Captcha^% MZend_Form_Decorator_Captcha_Word^! EZend_Form_Decorator_Callback^! EZend_Form_Decorator_Abstract^ #Zend_Filter^+ YZend_Filter_Word_UnderscoreToSeparator^&  OZend_Filter_Word_UnderscoreToDash^+ YZend_Filter_Word_UnderscoreToCamelCase^*~ WZend_Filter_Word_SeparatorToSeparator^%} MZend_Filter_Word_SeparatorToDash^*| WZend_Filter_Word_SeparatorToCamelCase^({ SZend_Filter_Word_Separator_Abstract^&z OZend_Filter_Word_DashToUnderscore^%y MZend_Filter_Word_DashToSeparator^%x MZend_Filter_Word_DashToCamelCase^+w YZend_Filter_Word_CamelCaseToUnderscore^*v WZend_Filter_Word_CamelCaseToSeparator^%u MZend_Filter_Word_CamelCaseToDash^t 7Zend_Filter_StripTags^s ?Zend_Filter_StripNewlines^r 9Zend_Filter_StringTrim^q ?Zend_Filter_StringToUpper^p ?Zend_Filter_StringToLower^o 5Zend_Filter_RealPath^n ;Zend_Filter_PregReplace^m +Zend_Filter_Int^l /Zend_Filter_Input^k 7Zend_Filter_Inflector^j =Zend_Filter_HtmlEntities^i AZend_Filter_File_UpperCase^h ;Zend_Filter_File_Rename^g AZend_Filter_File_LowerCase^f 7Zend_Filter_Exception^e +Zend_Filter_Dir^d 1Zend_Filter_Digits^c 5Zend_Filter_BaseName^b /Zend_Filter_Alpha^a /Zend_Filter_Alnum^` 1Zend_File_Transfer^!_ EZend_File_Transfer_Exception^$^ KZend_File_Transfer_Adapter_Http^(] SZend_File_Transfer_Adapter_Abstract^\ Zend_Feed^[ 'Zend_Feed_Rss^Z 3Zend_Feed_Exception^Y 3Zend_Feed_Entry_Rss^X 5Zend_Feed_Entry_Atom^W =Zend_Feed_Entry_Abstract^V /Zend_Feed_Element^U /Zend_Feed_Builder^T =Zend_Feed_Builder_Header^$S KZend_Feed_Builder_Header_Itunes^ R CZend_Feed_Builder_Exception^Q ;Zend_Feed_Builder_Entry^P )Zend_Feed_Atom^O 1Zend_Feed_Abstract^N )Zend_Exception^M )Zend_Dom_Query^L 7Zend_Dom_Query_Result^K =Zend_Dom_Query_Css2Xpath^J 1Zend_Dom_Exception^I Zend_Dojo^)H UZend_Dojo_View_Helper_VerticalSlider^,G [Zend_Dojo_View_Helper_ValidationTextBox^&F OZend_Dojo_View_Helper_TimeTextBox^"E GZend_Dojo_View_Helper_TextBox^#D IZend_Dojo_View_Helper_Textarea^'C QZend_Dojo_View_Helper_TabContainer^'B QZend_Dojo_View_Helper_SubmitButton^)A UZend_Dojo_View_Helper_StackContainer^)@ UZend_Dojo_View_Helper_SplitContainer^!? EZend_Dojo_View_Helper_Slider^)> UZend_Dojo_View_Helper_SimpleTextarea^&= OZend_Dojo_View_Helper_RadioButton^*< WZend_Dojo_View_Helper_PasswordTextBox^(; SZend_Dojo_View_Helper_NumberTextBox^(: SZend_Dojo_View_Helper_NumberSpinner^+9 YZend_Dojo_View_Helper_HorizontalSlider^8 AZend_Dojo_View_Helper_Form^*7 WZend_Dojo_View_Helper_FilteringSelect^!6 EZend_Dojo_View_Helper_Editor^5 AZend_Dojo_View_Helper_Dojo^)4 UZend_Dojo_View_Helper_Dojo_Container^)3 UZend_Dojo_View_Helper_DijitContainer^ 2 CZend_Dojo_View_Helper_Dijit^&1 OZend_Dojo_View_Helper_DateTextBox^*0 WZend_Dojo_View_Helper_CurrencyTextBox^&/ OZend_Dojo_View_Helper_ContentPane^#. IZend_Dojo_View_Helper_ComboBox^#- IZend_Dojo_View_Helper_CheckBox^!, EZend_Dojo_View_Helper_Button^*+ WZend_Dojo_View_Helper_BorderContainer^(* SZend_Dojo_View_Helper_AccordionPane^-) ]Zend_Dojo_View_Helper_AccordionContainer^( =Zend_Dojo_View_Exception^' )Zend_Dojo_Form^& 9Zend_Dojo_Form_SubForm^*% WZend_Dojo_Form_Element_VerticalSlider^-$ ]Zend_Dojo_Form_Element_ValidationTextBox^'# QZend_Dojo_Form_Element_TimeTextBox^#" IZend_Dojo_Form_Element_TextBox^$! KZend_Dojo_Form_Element_Textarea^(  SZend_Dojo_Form_Element_SubmitButton^" GZend_Dojo_Form_Element_Slider^' QZend_Dojo_Form_Element_RadioButton^   g  jI(pDqM.`=yY?#	




a
1
				x	K	"Z6qI!X3R/lU:Y(rCoH                     (n SZend_Gdata_Calendar_Extension_Color^.m _Zend_Gdata_Calendar_Extension_AccessLevel^#l IZend_Gdata_Calendar_EventQuery^"k GZend_Gdata_Calendar_EventFeed^#j IZend_Gdata_Calendar_EventEntry^i -Zend_Gdata_Books^!h EZend_Gdata_Books_VolumeQuery^ g CZend_Gdata_Books_VolumeFeed^!f EZend_Gdata_Books_VolumeEntry^+e YZend_Gdata_Books_Extension_Viewability^-d ]Zend_Gdata_Books_Extension_ThumbnailLink^&c OZend_Gdata_Books_Extension_Review^+b YZend_Gdata_Books_Extension_PreviewLink^(a SZend_Gdata_Books_Extension_InfoLink^-` ]Zend_Gdata_Books_Extension_Embeddability^)_ UZend_Gdata_Books_Extension_BooksLink^-^ ]Zend_Gdata_Books_Extension_BooksCategory^.] _Zend_Gdata_Books_Extension_AnnotationLink^$\ KZend_Gdata_Books_CollectionFeed^%[ MZend_Gdata_Books_CollectionEntry^Z 1Zend_Gdata_AuthSub^Y )Zend_Gdata_App^$X KZend_Gdata_App_VersionException^W 3Zend_Gdata_App_Util^#V IZend_Gdata_App_MediaFileSource^U ?Zend_Gdata_App_MediaEntry^2T gZend_Gdata_App_LoggingHttpClientAdapterSocket^S AZend_Gdata_App_IOException^,R [Zend_Gdata_App_InvalidArgumentException^!Q EZend_Gdata_App_HttpException^$P KZend_Gdata_App_FeedSourceParent^#O IZend_Gdata_App_FeedEntryParent^N 3Zend_Gdata_App_Feed^M =Zend_Gdata_App_Extension^!L EZend_Gdata_App_Extension_Uri^%K MZend_Gdata_App_Extension_Updated^#J IZend_Gdata_App_Extension_Title^"I GZend_Gdata_App_Extension_Text^%H MZend_Gdata_App_Extension_Summary^&G OZend_Gdata_App_Extension_Subtitle^$F KZend_Gdata_App_Extension_Source^$E KZend_Gdata_App_Extension_Rights^'D QZend_Gdata_App_Extension_Published^$C KZend_Gdata_App_Extension_Person^"B GZend_Gdata_App_Extension_Name^"A GZend_Gdata_App_Extension_Logo^"@ GZend_Gdata_App_Extension_Link^ ? CZend_Gdata_App_Extension_Id^"> GZend_Gdata_App_Extension_Icon^'= QZend_Gdata_App_Extension_Generator^#< IZend_Gdata_App_Extension_Email^%; MZend_Gdata_App_Extension_Element^#: IZend_Gdata_App_Extension_Draft^%9 MZend_Gdata_App_Extension_Control^)8 UZend_Gdata_App_Extension_Contributor^%7 MZend_Gdata_App_Extension_Content^&6 OZend_Gdata_App_Extension_Category^$5 KZend_Gdata_App_Extension_Author^4 =Zend_Gdata_App_Exception^3 5Zend_Gdata_App_Entry^,2 [Zend_Gdata_App_CaptchaRequiredException^#1 IZend_Gdata_App_BaseMediaSource^0 3Zend_Gdata_App_Base^*/ WZend_Gdata_App_BadMethodCallException^!. EZend_Gdata_App_AuthException^- Zend_Form^, /Zend_Form_SubForm^+ 3Zend_Form_Exception^* /Zend_Form_Element^) ;Zend_Form_Element_Xhtml^( AZend_Form_Element_Textarea^' 9Zend_Form_Element_Text^& =Zend_Form_Element_Submit^% =Zend_Form_Element_Select^$ ;Zend_Form_Element_Reset^# ;Zend_Form_Element_Radio^" AZend_Form_Element_Password^"! GZend_Form_Element_Multiselect^$  KZend_Form_Element_MultiCheckbox^ ;Zend_Form_Element_Multi^ ;Zend_Form_Element_Image^ =Zend_Form_Element_Hidden^ 9Zend_Form_Element_Hash^ 9Zend_Form_Element_File^  CZend_Form_Element_Exception^ AZend_Form_Element_Checkbox^ ?Zend_Form_Element_Captcha^ =Zend_Form_Element_Button^ 9Zend_Form_DisplayGroup^# IZend_Form_Decorator_ViewScript^# IZend_Form_Decorator_ViewHelper^( SZend_Form_Decorator_PrepareElements^ ?Zend_Form_Decorator_Label^ ?Zend_Form_Decorator_Image^  CZend_Form_Decorator_HtmlTag^# IZend_Form_Decorator_FormErrors^% MZend_Form_Decorator_FormElements^ =Zend_Form_Decorator_Form^ =Zend_Form_Decorator_File^! EZend_Form_Decorator_Fieldset^"
 GZend_Form_Decorator_Exception^	 AZend_Form_Decorator_Errors^$ KZend_Form_Decorator_DtDdWrapper^   a  yJbF'nAzHf;



b
<
					j	>	pJa9nK*~MwO#g=lN+	|V=                                           )O UZend_Gdata_Geo_Extension_GeoRssWhere^N 5Zend_Gdata_Geo_Entry^M -Zend_Gdata_Gbase^"L GZend_Gdata_Gbase_SnippetQuery^!K EZend_Gdata_Gbase_SnippetFeed^"J GZend_Gdata_Gbase_SnippetEntry^I 9Zend_Gdata_Gbase_Query^H AZend_Gdata_Gbase_ItemQuery^G ?Zend_Gdata_Gbase_ItemFeed^F AZend_Gdata_Gbase_ItemEntry^E 7Zend_Gdata_Gbase_Feed^-D ]Zend_Gdata_Gbase_Extension_BaseAttribute^C 9Zend_Gdata_Gbase_Entry^B -Zend_Gdata_Gapps^A AZend_Gdata_Gapps_UserQuery^@ ?Zend_Gdata_Gapps_UserFeed^? AZend_Gdata_Gapps_UserEntry^&> OZend_Gdata_Gapps_ServiceException^= 9Zend_Gdata_Gapps_Query^#< IZend_Gdata_Gapps_NicknameQuery^"; GZend_Gdata_Gapps_NicknameFeed^#: IZend_Gdata_Gapps_NicknameEntry^%9 MZend_Gdata_Gapps_Extension_Quota^(8 SZend_Gdata_Gapps_Extension_Nickname^$7 KZend_Gdata_Gapps_Extension_Name^%6 MZend_Gdata_Gapps_Extension_Login^)5 UZend_Gdata_Gapps_Extension_EmailList^4 9Zend_Gdata_Gapps_Error^-3 ]Zend_Gdata_Gapps_EmailListRecipientQuery^,2 [Zend_Gdata_Gapps_EmailListRecipientFeed^-1 ]Zend_Gdata_Gapps_EmailListRecipientEntry^$0 KZend_Gdata_Gapps_EmailListQuery^#/ IZend_Gdata_Gapps_EmailListFeed^$. KZend_Gdata_Gapps_EmailListEntry^- +Zend_Gdata_Feed^, 5Zend_Gdata_Extension^+ =Zend_Gdata_Extension_Who^* AZend_Gdata_Extension_Where^) ?Zend_Gdata_Extension_When^$( KZend_Gdata_Extension_Visibility^&' OZend_Gdata_Extension_Transparency^"& GZend_Gdata_Extension_Reminder^-% ]Zend_Gdata_Extension_RecurrenceException^$$ KZend_Gdata_Extension_Recurrence^ # CZend_Gdata_Extension_Rating^'" QZend_Gdata_Extension_OriginalEvent^0! cZend_Gdata_Extension_OpenSearchTotalResults^.  _Zend_Gdata_Extension_OpenSearchStartIndex^0 cZend_Gdata_Extension_OpenSearchItemsPerPage^" GZend_Gdata_Extension_FeedLink^* WZend_Gdata_Extension_ExtendedProperty^% MZend_Gdata_Extension_EventStatus^# IZend_Gdata_Extension_EntryLink^" GZend_Gdata_Extension_Comments^& OZend_Gdata_Extension_AttendeeType^( SZend_Gdata_Extension_AttendeeStatus^ +Zend_Gdata_Exif^ 5Zend_Gdata_Exif_Feed^# IZend_Gdata_Exif_Extension_Time^# IZend_Gdata_Exif_Extension_Tags^$ KZend_Gdata_Exif_Extension_Model^# IZend_Gdata_Exif_Extension_Make^" GZend_Gdata_Exif_Extension_Iso^, [Zend_Gdata_Exif_Extension_ImageUniqueId^$ KZend_Gdata_Exif_Extension_FStop^* WZend_Gdata_Exif_Extension_FocalLength^$ KZend_Gdata_Exif_Extension_Flash^' QZend_Gdata_Exif_Extension_Exposure^' QZend_Gdata_Exif_Extension_Distance^
 7Zend_Gdata_Exif_Entry^	 -Zend_Gdata_Entry^ 7Zend_Gdata_DublinCore^* WZend_Gdata_DublinCore_Extension_Title^, [Zend_Gdata_DublinCore_Extension_Subject^+ YZend_Gdata_DublinCore_Extension_Rights^. _Zend_Gdata_DublinCore_Extension_Publisher^- ]Zend_Gdata_DublinCore_Extension_Language^/ aZend_Gdata_DublinCore_Extension_Identifier^+ YZend_Gdata_DublinCore_Extension_Format^0  cZend_Gdata_DublinCore_Extension_Description^) UZend_Gdata_DublinCore_Extension_Date^,~ [Zend_Gdata_DublinCore_Extension_Creator^} +Zend_Gdata_Docs^| 7Zend_Gdata_Docs_Query^%{ MZend_Gdata_Docs_DocumentListFeed^&z OZend_Gdata_Docs_DocumentListEntry^y 9Zend_Gdata_ClientLogin^x 3Zend_Gdata_Calendar^!w EZend_Gdata_Calendar_ListFeed^"v GZend_Gdata_Calendar_ListEntry^-u ]Zend_Gdata_Calendar_Extension_WebContent^+t YZend_Gdata_Calendar_Extension_Timezone^9s uZend_Gdata_Calendar_Extension_SendEventNotifications^+r YZend_Gdata_Calendar_Extension_Selected^+q YZend_Gdata_Calendar_Extension_QuickAdd^'p QZend_Gdata_Calendar_Extension_Link^)o UZend_Gdata_Calendar_Extension_Hidden^   ]  {S,wY6U!f7vX?




S
%				f	;	[-l=b6sP,	_5tAc4oH       ', QZend_Gdata_YouTube_Extension_Books^%+ MZend_Gdata_YouTube_Extension_Age^)* UZend_Gdata_YouTube_Extension_AboutMe^#) IZend_Gdata_YouTube_ContactFeed^$( KZend_Gdata_YouTube_ContactEntry^#' IZend_Gdata_YouTube_CommentFeed^$& KZend_Gdata_YouTube_CommentEntry^% ;Zend_Gdata_Spreadsheets^*$ WZend_Gdata_Spreadsheets_WorksheetFeed^+# YZend_Gdata_Spreadsheets_WorksheetEntry^," [Zend_Gdata_Spreadsheets_SpreadsheetFeed^-! ]Zend_Gdata_Spreadsheets_SpreadsheetEntry^&  OZend_Gdata_Spreadsheets_ListQuery^% MZend_Gdata_Spreadsheets_ListFeed^& OZend_Gdata_Spreadsheets_ListEntry^/ aZend_Gdata_Spreadsheets_Extension_RowCount^- ]Zend_Gdata_Spreadsheets_Extension_Custom^/ aZend_Gdata_Spreadsheets_Extension_ColCount^+ YZend_Gdata_Spreadsheets_Extension_Cell^* WZend_Gdata_Spreadsheets_DocumentQuery^& OZend_Gdata_Spreadsheets_CellQuery^% MZend_Gdata_Spreadsheets_CellFeed^& OZend_Gdata_Spreadsheets_CellEntry^ -Zend_Gdata_Query^ /Zend_Gdata_Photos^  CZend_Gdata_Photos_UserQuery^ AZend_Gdata_Photos_UserFeed^  CZend_Gdata_Photos_UserEntry^ AZend_Gdata_Photos_TagEntry^! EZend_Gdata_Photos_PhotoQuery^  CZend_Gdata_Photos_PhotoFeed^! EZend_Gdata_Photos_PhotoEntry^& OZend_Gdata_Photos_Extension_Width^' QZend_Gdata_Photos_Extension_Weight^(
 SZend_Gdata_Photos_Extension_Version^%	 MZend_Gdata_Photos_Extension_User^* WZend_Gdata_Photos_Extension_Timestamp^* WZend_Gdata_Photos_Extension_Thumbnail^% MZend_Gdata_Photos_Extension_Size^) UZend_Gdata_Photos_Extension_Rotation^+ YZend_Gdata_Photos_Extension_QuotaLimit^- ]Zend_Gdata_Photos_Extension_QuotaCurrent^) UZend_Gdata_Photos_Extension_Position^( SZend_Gdata_Photos_Extension_PhotoId^3  iZend_Gdata_Photos_Extension_NumPhotosRemaining^* WZend_Gdata_Photos_Extension_NumPhotos^)~ UZend_Gdata_Photos_Extension_Nickname^%} MZend_Gdata_Photos_Extension_Name^2| gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum^){ UZend_Gdata_Photos_Extension_Location^#z IZend_Gdata_Photos_Extension_Id^'y QZend_Gdata_Photos_Extension_Height^2x gZend_Gdata_Photos_Extension_CommentingEnabled^-w ]Zend_Gdata_Photos_Extension_CommentCount^'v QZend_Gdata_Photos_Extension_Client^)u UZend_Gdata_Photos_Extension_Checksum^*t WZend_Gdata_Photos_Extension_BytesUsed^(s SZend_Gdata_Photos_Extension_AlbumId^'r QZend_Gdata_Photos_Extension_Access^#q IZend_Gdata_Photos_CommentEntry^!p EZend_Gdata_Photos_AlbumQuery^ o CZend_Gdata_Photos_AlbumFeed^!n EZend_Gdata_Photos_AlbumEntry^m -Zend_Gdata_Media^l 7Zend_Gdata_Media_Feed^*k WZend_Gdata_Media_Extension_MediaTitle^.j _Zend_Gdata_Media_Extension_MediaThumbnail^)i UZend_Gdata_Media_Extension_MediaText^0h cZend_Gdata_Media_Extension_MediaRestriction^+g YZend_Gdata_Media_Extension_MediaRating^+f YZend_Gdata_Media_Extension_MediaPlayer^-e ]Zend_Gdata_Media_Extension_MediaKeywords^)d UZend_Gdata_Media_Extension_MediaHash^*c WZend_Gdata_Media_Extension_MediaGroup^0b cZend_Gdata_Media_Extension_MediaDescription^+a YZend_Gdata_Media_Extension_MediaCredit^.` _Zend_Gdata_Media_Extension_MediaCopyright^,_ [Zend_Gdata_Media_Extension_MediaContent^-^ ]Zend_Gdata_Media_Extension_MediaCategory^] 9Zend_Gdata_Media_Entry^\ AZend_Gdata_Kind_EventEntry^[ 7Zend_Gdata_HttpClient^Z /Zend_Gdata_Health^Y ;Zend_Gdata_Health_Query^&X OZend_Gdata_Health_ProfileListFeed^'W QZend_Gdata_Health_ProfileListEntry^"V GZend_Gdata_Health_ProfileFeed^#U IZend_Gdata_Health_ProfileEntry^$T KZend_Gdata_Health_Extension_Ccr^S )Zend_Gdata_Geo^R 3Zend_Gdata_Geo_Feed^$Q KZend_Gdata_Geo_Extension_GmlPos^&P OZend_Gdata_Geo_Extension_GmlPoint^   [  wFb4
yId4uK



c
3
				S	-	 yL hU*y`D(f9rU,l=uK)M                 - ]Zend_InfoCard_Xml_SecurityTokenReference^ AZend_InfoCard_Xml_Security^) UZend_InfoCard_Xml_Security_Transform^4 kZend_InfoCard_Xml_Security_Transform_XmlExcC14N^3 iZend_InfoCard_Xml_Security_Transform_Exception^< {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignature^) UZend_InfoCard_Xml_Security_Exception^  ?Zend_InfoCard_Xml_KeyInfo^& OZend_InfoCard_Xml_KeyInfo_XmlDSig^&~ OZend_InfoCard_Xml_KeyInfo_Default^'} QZend_InfoCard_Xml_KeyInfo_Abstract^ | CZend_InfoCard_Xml_Exception^#{ IZend_InfoCard_Xml_EncryptedKey^$z KZend_InfoCard_Xml_EncryptedData^+y YZend_InfoCard_Xml_EncryptedData_XmlEnc^-x ]Zend_InfoCard_Xml_EncryptedData_Abstract^w ?Zend_InfoCard_Xml_Element^ v CZend_InfoCard_Xml_Assertion^%u MZend_InfoCard_Xml_Assertion_Saml^t ;Zend_InfoCard_Exception^%s MZend_InfoCard_Exception_Abstract^r 5Zend_InfoCard_Claims^q 5Zend_InfoCard_Cipher^5p mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc^5o mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc^4n kZend_InfoCard_Cipher_Symmetric_Adapter_Abstract^)m UZend_InfoCard_Cipher_Pki_Adapter_Rsa^.l _Zend_InfoCard_Cipher_Pki_Adapter_Abstract^#k IZend_InfoCard_Cipher_Exception^$j KZend_InfoCard_Adapter_Exception^"i GZend_InfoCard_Adapter_Default^h 1Zend_Http_Response^g 3Zend_Http_Exception^f 3Zend_Http_CookieJar^e -Zend_Http_Cookie^d -Zend_Http_Client^c AZend_Http_Client_Exception^"b GZend_Http_Client_Adapter_Test^$a KZend_Http_Client_Adapter_Socket^#` IZend_Http_Client_Adapter_Proxy^'_ QZend_Http_Client_Adapter_Exception^^ !Zend_Gdata^] 1Zend_Gdata_YouTube^"\ GZend_Gdata_YouTube_VideoQuery^![ EZend_Gdata_YouTube_VideoFeed^"Z GZend_Gdata_YouTube_VideoEntry^(Y SZend_Gdata_YouTube_UserProfileEntry^(X SZend_Gdata_YouTube_SubscriptionFeed^)W UZend_Gdata_YouTube_SubscriptionEntry^)V UZend_Gdata_YouTube_PlaylistVideoFeed^*U WZend_Gdata_YouTube_PlaylistVideoEntry^(T SZend_Gdata_YouTube_PlaylistListFeed^)S UZend_Gdata_YouTube_PlaylistListEntry^"R GZend_Gdata_YouTube_MediaEntry^)Q UZend_Gdata_YouTube_Extension_VideoId^*P WZend_Gdata_YouTube_Extension_Username^*O WZend_Gdata_YouTube_Extension_Uploaded^'N QZend_Gdata_YouTube_Extension_Token^(M SZend_Gdata_YouTube_Extension_Status^,L [Zend_Gdata_YouTube_Extension_Statistics^'K QZend_Gdata_YouTube_Extension_State^(J SZend_Gdata_YouTube_Extension_School^-I ]Zend_Gdata_YouTube_Extension_ReleaseDate^.H _Zend_Gdata_YouTube_Extension_Relationship^*G WZend_Gdata_YouTube_Extension_Recorded^&F OZend_Gdata_YouTube_Extension_Racy^-E ]Zend_Gdata_YouTube_Extension_QueryString^)D UZend_Gdata_YouTube_Extension_Private^*C WZend_Gdata_YouTube_Extension_Position^/B aZend_Gdata_YouTube_Extension_PlaylistTitle^,A [Zend_Gdata_YouTube_Extension_PlaylistId^,@ [Zend_Gdata_YouTube_Extension_Occupation^)? UZend_Gdata_YouTube_Extension_NoEmbed^'> QZend_Gdata_YouTube_Extension_Music^(= SZend_Gdata_YouTube_Extension_Movies^-< ]Zend_Gdata_YouTube_Extension_MediaRating^,; [Zend_Gdata_YouTube_Extension_MediaGroup^-: ]Zend_Gdata_YouTube_Extension_MediaCredit^.9 _Zend_Gdata_YouTube_Extension_MediaContent^*8 WZend_Gdata_YouTube_Extension_Location^&7 OZend_Gdata_YouTube_Extension_Link^*6 WZend_Gdata_YouTube_Extension_LastName^*5 WZend_Gdata_YouTube_Extension_Hometown^)4 UZend_Gdata_YouTube_Extension_Hobbies^(3 SZend_Gdata_YouTube_Extension_Gender^+2 YZend_Gdata_YouTube_Extension_FirstName^*1 WZend_Gdata_YouTube_Extension_Duration^-0 ]Zend_Gdata_YouTube_Extension_Description^+/ YZend_Gdata_YouTube_Extension_CountHint^). UZend_Gdata_YouTube_Extension_Control^)- UZend_Gdata_YouTube_Extension_Company^   { {\9gN<{]2cB)vW6





u
V
<
 
						S	(mG&|b=dJ.oP1yZ>#lC'}_C)sN1                      7Zend_OpenId_Exception^ 5Zend_OpenId_Consumer^!  EZend_OpenId_Consumer_Storage^& OZend_OpenId_Consumer_Storage_File^~ Zend_Mime^} )Zend_Mime_Part^| /Zend_Mime_Message^{ 3Zend_Mime_Exception^z -Zend_Mime_Decode^y #Zend_Memory^x /Zend_Memory_Value^w 3Zend_Memory_Manager^v 7Zend_Memory_Exception^u 7Zend_Memory_Container^"t GZend_Memory_Container_Movable^!s EZend_Memory_Container_Locked^!r EZend_Memory_AccessController^q 3Zend_Measure_Weight^p 3Zend_Measure_Volume^%o MZend_Measure_Viscosity_Kinematic^#n IZend_Measure_Viscosity_Dynamic^m 3Zend_Measure_Torque^l /Zend_Measure_Time^k =Zend_Measure_Temperature^j 1Zend_Measure_Speed^i 7Zend_Measure_Pressure^h 1Zend_Measure_Power^g 3Zend_Measure_Number^f 9Zend_Measure_Lightness^e 3Zend_Measure_Length^d ?Zend_Measure_Illumination^c 9Zend_Measure_Frequency^b 1Zend_Measure_Force^a =Zend_Measure_Flow_Volume^` 9Zend_Measure_Flow_Mole^_ 9Zend_Measure_Flow_Mass^^ 9Zend_Measure_Exception^] 3Zend_Measure_Energy^\ 5Zend_Measure_Density^[ 5Zend_Measure_Current^ Z CZend_Measure_Cooking_Weight^ Y CZend_Measure_Cooking_Volume^X =Zend_Measure_Capacitance^W 3Zend_Measure_Binary^V /Zend_Measure_Area^U 1Zend_Measure_Angle^T ?Zend_Measure_Acceleration^S 7Zend_Measure_Abstract^R Zend_Mail^Q =Zend_Mail_Transport_Smtp^!P EZend_Mail_Transport_Sendmail^"O GZend_Mail_Transport_Exception^!N EZend_Mail_Transport_Abstract^M /Zend_Mail_Storage^'L QZend_Mail_Storage_Writable_Maildir^K 9Zend_Mail_Storage_Pop3^J 9Zend_Mail_Storage_Mbox^I ?Zend_Mail_Storage_Maildir^H 9Zend_Mail_Storage_Imap^G =Zend_Mail_Storage_Folder^"F GZend_Mail_Storage_Folder_Mbox^%E MZend_Mail_Storage_Folder_Maildir^ D CZend_Mail_Storage_Exception^C AZend_Mail_Storage_Abstract^B ;Zend_Mail_Protocol_Smtp^'A QZend_Mail_Protocol_Smtp_Auth_Plain^'@ QZend_Mail_Protocol_Smtp_Auth_Login^)? UZend_Mail_Protocol_Smtp_Auth_Crammd5^> ;Zend_Mail_Protocol_Pop3^= ;Zend_Mail_Protocol_Imap^!< EZend_Mail_Protocol_Exception^ ; CZend_Mail_Protocol_Abstract^: )Zend_Mail_Part^9 3Zend_Mail_Part_File^8 /Zend_Mail_Message^7 9Zend_Mail_Message_File^6 3Zend_Mail_Exception^5 Zend_Log^4 9Zend_Log_Writer_Stream^3 5Zend_Log_Writer_Null^2 5Zend_Log_Writer_Mock^1 ;Zend_Log_Writer_Firebug^0 1Zend_Log_Writer_Db^/ =Zend_Log_Writer_Abstract^. 9Zend_Log_Formatter_Xml^- ?Zend_Log_Formatter_Simple^, =Zend_Log_Filter_Suppress^+ =Zend_Log_Filter_Priority^* ;Zend_Log_Filter_Message^) 1Zend_Log_Exception^( #Zend_Locale^' -Zend_Locale_Math^& =Zend_Locale_Math_PhpMath^% AZend_Locale_Math_Exception^$ 1Zend_Locale_Format^# 7Zend_Locale_Exception^" -Zend_Locale_Data^!! EZend_Locale_Data_Translation^  #Zend_Loader^ =Zend_Loader_PluginLoader^' QZend_Loader_PluginLoader_Exception^ 7Zend_Loader_Exception^ Zend_Ldap^ 3Zend_Ldap_Exception^ #Zend_Layout^ 7Zend_Layout_Exception^) UZend_Layout_Controller_Plugin_Layout^0 cZend_Layout_Controller_Action_Helper_Layout^ Zend_Json^ -Zend_Json_Server^ 5Zend_Json_Server_Smd^! EZend_Json_Server_Smd_Service^ ?Zend_Json_Server_Response^# IZend_Json_Server_Response_Http^ =Zend_Json_Server_Request^" GZend_Json_Server_Request_Http^ AZend_Json_Server_Exception^ 9Zend_Json_Server_Error^ 9Zend_Json_Server_Cache^ 3Zend_Json_Exception^
 /Zend_Json_Encoder^	 /Zend_Json_Decoder^ 'Zend_InfoCard^   d  pF$yQ-XAzY="kJ#



l
E
%
				x	N	-	qK+
~gQ2 R};BTtN)
|U;                    f AZend_Pdf_Trailer_Generator^e )Zend_Pdf_Style^d 7Zend_Pdf_StringParser^c /Zend_Pdf_Resource^#b IZend_Pdf_Resource_ImageFactory^a ;Zend_Pdf_Resource_Image^!` EZend_Pdf_Resource_Image_Tiff^ _ CZend_Pdf_Resource_Image_Png^!^ EZend_Pdf_Resource_Image_Jpeg^] 9Zend_Pdf_Resource_Font^!\ EZend_Pdf_Resource_Font_Type0^"[ GZend_Pdf_Resource_Font_Simple^+Z YZend_Pdf_Resource_Font_Simple_Standard^8Y sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats^6X oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman^7W qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic^;V yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic^5U mZend_Pdf_Resource_Font_Simple_Standard_TimesBold^2T gZend_Pdf_Resource_Font_Simple_Standard_Symbol^<S {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaOblique^AR Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique^9Q uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold^5P mZend_Pdf_Resource_Font_Simple_Standard_Helvetica^:O wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique^>N Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique^7M qZend_Pdf_Resource_Font_Simple_Standard_CourierBold^3L iZend_Pdf_Resource_Font_Simple_Standard_Courier^)K UZend_Pdf_Resource_Font_Simple_Parsed^2J gZend_Pdf_Resource_Font_Simple_Parsed_TrueType^*I WZend_Pdf_Resource_Font_FontDescriptor^%H MZend_Pdf_Resource_Font_Extracted^#G IZend_Pdf_Resource_Font_CidFont^,F [Zend_Pdf_Resource_Font_CidFont_TrueType^E /Zend_Pdf_PhpArray^D +Zend_Pdf_Parser^C 9Zend_Pdf_Parser_Stream^B 'Zend_Pdf_Page^A )Zend_Pdf_Image^@ 'Zend_Pdf_Font^ ? CZend_Pdf_Filter_Compression^$> KZend_Pdf_Filter_Compression_Lzw^&= OZend_Pdf_Filter_Compression_Flate^< =Zend_Pdf_Filter_AsciiHex^; ;Zend_Pdf_Filter_Ascii85^": GZend_Pdf_FileParserDataSource^)9 UZend_Pdf_FileParserDataSource_String^'8 QZend_Pdf_FileParserDataSource_File^7 3Zend_Pdf_FileParser^6 ?Zend_Pdf_FileParser_Image^"5 GZend_Pdf_FileParser_Image_Png^4 =Zend_Pdf_FileParser_Font^&3 OZend_Pdf_FileParser_Font_OpenType^/2 aZend_Pdf_FileParser_Font_OpenType_TrueType^1 1Zend_Pdf_Exception^0 ;Zend_Pdf_ElementFactory^"/ GZend_Pdf_ElementFactory_Proxy^. -Zend_Pdf_Element^- ;Zend_Pdf_Element_String^#, IZend_Pdf_Element_String_Binary^+ ;Zend_Pdf_Element_Stream^* AZend_Pdf_Element_Reference^%) MZend_Pdf_Element_Reference_Table^'( QZend_Pdf_Element_Reference_Context^' ;Zend_Pdf_Element_Object^#& IZend_Pdf_Element_Object_Stream^% =Zend_Pdf_Element_Numeric^$ 7Zend_Pdf_Element_Null^# 7Zend_Pdf_Element_Name^ " CZend_Pdf_Element_Dictionary^! =Zend_Pdf_Element_Boolean^  9Zend_Pdf_Element_Array^ )Zend_Pdf_Color^ 1Zend_Pdf_Color_Rgb^ 3Zend_Pdf_Color_Html^ =Zend_Pdf_Color_GrayScale^ 3Zend_Pdf_Color_Cmyk^ 'Zend_Pdf_Cmap^ AZend_Pdf_Cmap_TrimmedTable^! EZend_Pdf_Cmap_SegmentToDelta^ AZend_Pdf_Cmap_ByteEncoding^& OZend_Pdf_Cmap_ByteEncoding_Static^ )Zend_Paginator^* WZend_Paginator_ScrollingStyle_Sliding^* WZend_Paginator_ScrollingStyle_Jumping^* WZend_Paginator_ScrollingStyle_Elastic^& OZend_Paginator_ScrollingStyle_All^ =Zend_Paginator_Exception^  CZend_Paginator_Adapter_Null^$ KZend_Paginator_Adapter_Iterator^) UZend_Paginator_Adapter_DbTableSelect^$ KZend_Paginator_Adapter_DbSelect^! EZend_Paginator_Adapter_Array^
 #Zend_OpenId^	 5Zend_OpenId_Provider^ ?Zend_OpenId_Provider_User^& OZend_OpenId_Provider_User_Session^! EZend_OpenId_Provider_Storage^& OZend_OpenId_Provider_Storage_File^ 7Zend_OpenId_Extension^ AZend_OpenId_Extension_Sreg^   V  h=zW-~4r(f2


c
(				l	@	e@P!xR( Q!]. zFY+]0                              +< YZend_Search_Lucene_Search_Weight_Empty^-; ]Zend_Search_Lucene_Search_Weight_Boolean^): UZend_Search_Lucene_Search_Similarity^19 eZend_Search_Lucene_Search_Similarity_Default^)8 UZend_Search_Lucene_Search_QueryToken^37 iZend_Search_Lucene_Search_QueryParserException^16 eZend_Search_Lucene_Search_QueryParserContext^*5 WZend_Search_Lucene_Search_QueryParser^)4 UZend_Search_Lucene_Search_QueryLexer^'3 QZend_Search_Lucene_Search_QueryHit^)2 UZend_Search_Lucene_Search_QueryEntry^.1 _Zend_Search_Lucene_Search_QueryEntry_Term^20 gZend_Search_Lucene_Search_QueryEntry_Subquery^0/ cZend_Search_Lucene_Search_QueryEntry_Phrase^$. KZend_Search_Lucene_Search_Query^-- ]Zend_Search_Lucene_Search_Query_Wildcard^), UZend_Search_Lucene_Search_Query_Term^*+ WZend_Search_Lucene_Search_Query_Range^+* YZend_Search_Lucene_Search_Query_Phrase^.) _Zend_Search_Lucene_Search_Query_MultiTerm^2( gZend_Search_Lucene_Search_Query_Insignificant^*' WZend_Search_Lucene_Search_Query_Fuzzy^*& WZend_Search_Lucene_Search_Query_Empty^,% [Zend_Search_Lucene_Search_Query_Boolean^:$ wZend_Search_Lucene_Search_BooleanExpressionRecognizer^# =Zend_Search_Lucene_Proxy^%" MZend_Search_Lucene_PriorityQueue^#! IZend_Search_Lucene_LockManager^$  KZend_Search_Lucene_Index_Writer^& OZend_Search_Lucene_Index_TermInfo^" GZend_Search_Lucene_Index_Term^+ YZend_Search_Lucene_Index_SegmentWriter^8 sZend_Search_Lucene_Index_SegmentWriter_StreamWriter^: wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter^+ YZend_Search_Lucene_Index_SegmentMerger^6 oZend_Search_Lucene_Index_SegmentInfoPriorityQueue^) UZend_Search_Lucene_Index_SegmentInfo^' QZend_Search_Lucene_Index_FieldInfo^( SZend_Search_Lucene_Index_DocsFilter^. _Zend_Search_Lucene_Index_DictionaryLoader^! EZend_Search_Lucene_FSMAction^ 9Zend_Search_Lucene_FSM^ =Zend_Search_Lucene_Field^! EZend_Search_Lucene_Exception^  CZend_Search_Lucene_Document^% MZend_Search_Lucene_Document_Xlsx^% MZend_Search_Lucene_Document_Pptx^( SZend_Search_Lucene_Document_OpenXml^% MZend_Search_Lucene_Document_Html^% MZend_Search_Lucene_Document_Docx^,
 [Zend_Search_Lucene_Analysis_TokenFilter^6	 oZend_Search_Lucene_Analysis_TokenFilter_StopWords^7 qZend_Search_Lucene_Analysis_TokenFilter_ShortWords^: wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8^6 oZend_Search_Lucene_Analysis_TokenFilter_LowerCase^& OZend_Search_Lucene_Analysis_Token^) UZend_Search_Lucene_Analysis_Analyzer^0 cZend_Search_Lucene_Analysis_Analyzer_Common^8 sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num^I Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive^5  mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8^F Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive^8~ sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum^I} Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive^5| mZend_Search_Lucene_Analysis_Analyzer_Common_Text^F{ Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive^z 7Zend_Search_Exception^y -Zend_Rest_Server^x AZend_Rest_Server_Exception^w 3Zend_Rest_Exception^v -Zend_Rest_Client^u ;Zend_Rest_Client_Result^&t OZend_Rest_Client_Result_Exception^s AZend_Rest_Client_Exception^r 'Zend_Registry^q -Zend_ProgressBar^p AZend_ProgressBar_Exception^o =Zend_ProgressBar_Adapter^$n KZend_ProgressBar_Adapter_JsPush^$m KZend_ProgressBar_Adapter_JsPull^'l QZend_ProgressBar_Adapter_Exception^%k MZend_ProgressBar_Adapter_Console^j Zend_Pdf^!i EZend_Pdf_UpdateInfoContainer^h -Zend_Pdf_Trailer^g ;Zend_Pdf_Trailer_Keeper^   b  oFW<~Y4gClD




^
9
					]	9	d>"y[2 qL)	U'pK!dD_* }S&                                           , [Zend_Service_Technorati_SearchResultSet^) UZend_Service_Technorati_SearchResult^& OZend_Service_Technorati_ResultSet^# IZend_Service_Technorati_Result^* WZend_Service_Technorati_KeyInfoResult^* WZend_Service_Technorati_GetInfoResult^& OZend_Service_Technorati_Exception^1 eZend_Service_Technorati_DailyCountsResultSet^. _Zend_Service_Technorati_DailyCountsResult^, [Zend_Service_Technorati_CosmosResultSet^) UZend_Service_Technorati_CosmosResult^+ YZend_Service_Technorati_BlogInfoResult^# IZend_Service_Technorati_Author^ ;Zend_Service_StrikeIron^( SZend_Service_StrikeIron_ZipCodeInfo^2 gZend_Service_StrikeIron_USAddressVerification^- ]Zend_Service_StrikeIron_SalesUseTaxBasic^& OZend_Service_StrikeIron_Exception^& OZend_Service_StrikeIron_Decorator^! EZend_Service_StrikeIron_Base^
 ;Zend_Service_SlideShare^&	 OZend_Service_SlideShare_SlideShow^& OZend_Service_SlideShare_Exception^ 1Zend_Service_Simpy^$ KZend_Service_Simpy_WatchlistSet^* WZend_Service_Simpy_WatchlistFilterSet^' QZend_Service_Simpy_WatchlistFilter^! EZend_Service_Simpy_Watchlist^ ?Zend_Service_Simpy_TagSet^ 9Zend_Service_Simpy_Tag^  AZend_Service_Simpy_NoteSet^ ;Zend_Service_Simpy_Note^~ AZend_Service_Simpy_LinkSet^!} EZend_Service_Simpy_LinkQuery^| ;Zend_Service_Simpy_Link^{ 9Zend_Service_ReCaptcha^$z KZend_Service_ReCaptcha_Response^$y KZend_Service_ReCaptcha_MailHide^.x _Zend_Service_ReCaptcha_MailHide_Exception^%w MZend_Service_ReCaptcha_Exception^v 7Zend_Service_Nirvanix^#u IZend_Service_Nirvanix_Response^)t UZend_Service_Nirvanix_Namespace_Imfs^)s UZend_Service_Nirvanix_Namespace_Base^$r KZend_Service_Nirvanix_Exception^q 3Zend_Service_Flickr^"p GZend_Service_Flickr_ResultSet^o AZend_Service_Flickr_Result^n ?Zend_Service_Flickr_Image^m 9Zend_Service_Exception^l 9Zend_Service_Delicious^&k OZend_Service_Delicious_SimplePost^$j KZend_Service_Delicious_PostList^ i CZend_Service_Delicious_Post^%h MZend_Service_Delicious_Exception^ g CZend_Service_Audioscrobbler^f 3Zend_Service_Amazon^'e QZend_Service_Amazon_SimilarProduct^"d GZend_Service_Amazon_ResultSet^c ?Zend_Service_Amazon_Query^!b EZend_Service_Amazon_OfferSet^a ?Zend_Service_Amazon_Offer^&` OZend_Service_Amazon_ListmaniaList^_ =Zend_Service_Amazon_Item^^ ?Zend_Service_Amazon_Image^(] SZend_Service_Amazon_EditorialReview^'\ QZend_Service_Amazon_CustomerReview^$[ KZend_Service_Amazon_Accessories^Z 5Zend_Service_Akismet^Y 7Zend_Service_Abstract^X 9Zend_Server_Reflection^'W QZend_Server_Reflection_ReturnValue^%V MZend_Server_Reflection_Prototype^%U MZend_Server_Reflection_Parameter^ T CZend_Server_Reflection_Node^"S GZend_Server_Reflection_Method^$R KZend_Server_Reflection_Function^-Q ]Zend_Server_Reflection_Function_Abstract^%P MZend_Server_Reflection_Exception^!O EZend_Server_Reflection_Class^!N EZend_Server_Method_Prototype^!M EZend_Server_Method_Parameter^"L GZend_Server_Method_Definition^ K CZend_Server_Method_Callback^J 7Zend_Server_Exception^I 9Zend_Server_Definition^H /Zend_Server_Cache^G 5Zend_Server_Abstract^F 1Zend_Search_Lucene^$E KZend_Search_Lucene_Storage_File^+D YZend_Search_Lucene_Storage_File_Memory^/C aZend_Search_Lucene_Storage_File_Filesystem^)B UZend_Search_Lucene_Storage_Directory^4A kZend_Search_Lucene_Storage_Directory_Filesystem^%@ MZend_Search_Lucene_Search_Weight^*? WZend_Search_Lucene_Search_Weight_Term^,> [Zend_Search_Lucene_Search_Weight_Phrase^/= aZend_Search_Lucene_Search_Weight_MultiTerm^   m  ~P*{Z3	]7pIz[2



t
U
5
					~	Y	8	q=
h4h> t^9d?bF*pS0wU0           ;Zend_Validate_File_Hash^!
 EZend_Validate_File_FilesSize^!	 EZend_Validate_File_Extension^ ?Zend_Validate_File_Exists^' QZend_Validate_File_ExcludeMimeType^( SZend_Validate_File_ExcludeExtension^ =Zend_Validate_File_Crc32^ =Zend_Validate_File_Count^ ;Zend_Validate_Exception^ AZend_Validate_EmailAddress^ 5Zend_Validate_Digits^  1Zend_Validate_Date^ 3Zend_Validate_Ccnum^~ 7Zend_Validate_Between^} 7Zend_Validate_Barcode^| AZend_Validate_Barcode_UpcA^ { CZend_Validate_Barcode_Ean13^z 3Zend_Validate_Alpha^y 3Zend_Validate_Alnum^x 9Zend_Validate_Abstract^w Zend_Uri^v 'Zend_Uri_Http^u 1Zend_Uri_Exception^t )Zend_Translate^s =Zend_Translate_Exception^r 9Zend_Translate_Adapter^!q EZend_Translate_Adapter_XmlTm^!p EZend_Translate_Adapter_Xliff^o AZend_Translate_Adapter_Tmx^n AZend_Translate_Adapter_Tbx^m ?Zend_Translate_Adapter_Qt^l AZend_Translate_Adapter_Ini^#k IZend_Translate_Adapter_Gettext^j AZend_Translate_Adapter_Csv^!i EZend_Translate_Adapter_Array^h 'Zend_TimeSync^g 1Zend_TimeSync_Sntp^f 9Zend_TimeSync_Protocol^e /Zend_TimeSync_Ntp^d ;Zend_TimeSync_Exception^c +Zend_Text_Table^b 3Zend_Text_Table_Row^a ?Zend_Text_Table_Exception^&` OZend_Text_Table_Decorator_Unicode^$_ KZend_Text_Table_Decorator_Ascii^^ 9Zend_Text_Table_Column^] -Zend_Text_Figlet^\ AZend_Text_Figlet_Exception^[ 3Zend_Text_Exception^)Z UZend_Test_PHPUnit_ControllerTestCase^0Y cZend_Test_PHPUnit_Constraint_ResponseHeader^*X WZend_Test_PHPUnit_Constraint_Redirect^+W YZend_Test_PHPUnit_Constraint_Exception^*V WZend_Test_PHPUnit_Constraint_DomQuery^U )Zend_Soap_Wsdl^/T aZend_Soap_Wsdl_Strategy_DefaultComplexType^0S cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence^/R aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex^$Q KZend_Soap_Wsdl_Strategy_AnyType^%P MZend_Soap_Wsdl_Strategy_Abstract^O 7Zend_Soap_Wsdl_Parser^!N EZend_Soap_Wsdl_Parser_Result^M =Zend_Soap_Wsdl_Exception^!L EZend_Soap_Wsdl_CodeGenerator^K -Zend_Soap_Server^J AZend_Soap_Server_Exception^I -Zend_Soap_Client^H 9Zend_Soap_Client_Local^G AZend_Soap_Client_Exception^F ;Zend_Soap_Client_DotNet^E ;Zend_Soap_Client_Common^D 9Zend_Soap_AutoDiscover^%C MZend_Soap_AutoDiscover_Exception^B %Zend_Session^)A UZend_Session_Validator_HttpUserAgent^$@ KZend_Session_Validator_Abstract^'? QZend_Session_SaveHandler_Exception^%> MZend_Session_SaveHandler_DbTable^= 9Zend_Session_Namespace^< 9Zend_Session_Exception^; 7Zend_Session_Abstract^: 1Zend_Service_Yahoo^$9 KZend_Service_Yahoo_WebResultSet^!8 EZend_Service_Yahoo_WebResult^&7 OZend_Service_Yahoo_VideoResultSet^#6 IZend_Service_Yahoo_VideoResult^!5 EZend_Service_Yahoo_ResultSet^4 ?Zend_Service_Yahoo_Result^)3 UZend_Service_Yahoo_PageDataResultSet^&2 OZend_Service_Yahoo_PageDataResult^%1 MZend_Service_Yahoo_NewsResultSet^"0 GZend_Service_Yahoo_NewsResult^&/ OZend_Service_Yahoo_LocalResultSet^#. IZend_Service_Yahoo_LocalResult^+- YZend_Service_Yahoo_InlinkDataResultSet^(, SZend_Service_Yahoo_InlinkDataResult^&+ OZend_Service_Yahoo_ImageResultSet^#* IZend_Service_Yahoo_ImageResult^) =Zend_Service_Yahoo_Image^( 5Zend_Service_Twitter^ ' CZend_Service_Twitter_Search^#& IZend_Service_Twitter_Exception^% ;Zend_Service_Technorati^#$ IZend_Service_Technorati_Weblog^"# GZend_Service_Technorati_Utils^*" WZend_Service_Technorati_TagsResultSet^'! QZend_Service_Technorati_TagsResult^)  UZend_Service_Technorati_TagResultSet^& OZend_Service_Technorati_TagResult^   m  qM(nL*^?tQ;&gE'



r
N
+
				r	O	+	{W4a:_:`(hO=oE oH-tW6               x =Zend_XmlRpc_Server_Fault^!w EZend_XmlRpc_Server_Exception^v =Zend_XmlRpc_Server_Cache^u 5Zend_XmlRpc_Response^t ?Zend_XmlRpc_Response_Http^s 3Zend_XmlRpc_Request^r ?Zend_XmlRpc_Request_Stdin^q =Zend_XmlRpc_Request_Http^p /Zend_XmlRpc_Fault^o 7Zend_XmlRpc_Exception^n 1Zend_XmlRpc_Client^#m IZend_XmlRpc_Client_ServerProxy^+l YZend_XmlRpc_Client_ServerIntrospection^+k YZend_XmlRpc_Client_IntrospectException^%j MZend_XmlRpc_Client_HttpException^&i OZend_XmlRpc_Client_FaultException^!h EZend_XmlRpc_Client_Exception^&g OZend_Wildfire_Protocol_JsonStream^!f EZend_Wildfire_Plugin_FirePhp^.e _Zend_Wildfire_Plugin_FirePhp_TableMessage^)d UZend_Wildfire_Plugin_FirePhp_Message^c ;Zend_Wildfire_Exception^&b OZend_Wildfire_Channel_HttpHeaders^a Zend_View^` -Zend_View_Stream^_ 5Zend_View_Helper_Url^^ AZend_View_Helper_Translate^)] UZend_View_Helper_RenderToPlaceholder^!\ EZend_View_Helper_Placeholder^*[ WZend_View_Helper_Placeholder_Registry^4Z kZend_View_Helper_Placeholder_Registry_Exception^+Y YZend_View_Helper_Placeholder_Container^6X oZend_View_Helper_Placeholder_Container_Standalone^5W mZend_View_Helper_Placeholder_Container_Exception^4V kZend_View_Helper_Placeholder_Container_Abstract^!U EZend_View_Helper_PartialLoop^T =Zend_View_Helper_Partial^'S QZend_View_Helper_Partial_Exception^'R QZend_View_Helper_PaginationControl^Q ;Zend_View_Helper_Layout^P 7Zend_View_Helper_Json^"O GZend_View_Helper_InlineScript^#N IZend_View_Helper_HtmlQuicktime^M ?Zend_View_Helper_HtmlPage^ L CZend_View_Helper_HtmlObject^K ?Zend_View_Helper_HtmlList^J AZend_View_Helper_HtmlFlash^!I EZend_View_Helper_HtmlElement^H AZend_View_Helper_HeadTitle^G AZend_View_Helper_HeadStyle^ F CZend_View_Helper_HeadScript^E ?Zend_View_Helper_HeadMeta^D ?Zend_View_Helper_HeadLink^"C GZend_View_Helper_FormTextarea^B ?Zend_View_Helper_FormText^ A CZend_View_Helper_FormSubmit^ @ CZend_View_Helper_FormSelect^? AZend_View_Helper_FormReset^> AZend_View_Helper_FormRadio^"= GZend_View_Helper_FormPassword^< ?Zend_View_Helper_FormNote^'; QZend_View_Helper_FormMultiCheckbox^: AZend_View_Helper_FormLabel^9 AZend_View_Helper_FormImage^ 8 CZend_View_Helper_FormHidden^7 ?Zend_View_Helper_FormFile^ 6 CZend_View_Helper_FormErrors^!5 EZend_View_Helper_FormElement^"4 GZend_View_Helper_FormCheckbox^ 3 CZend_View_Helper_FormButton^2 7Zend_View_Helper_Form^1 ?Zend_View_Helper_Fieldset^0 =Zend_View_Helper_Doctype^!/ EZend_View_Helper_DeclareVars^. ;Zend_View_Helper_Action^- ?Zend_View_Helper_Abstract^, 3Zend_View_Exception^+ 1Zend_View_Abstract^* %Zend_Version^) 'Zend_Validate^( AZend_Validate_StringLength^' 3Zend_Validate_Regex^& 9Zend_Validate_NotEmpty^% 9Zend_Validate_LessThan^$ -Zend_Validate_Ip^# /Zend_Validate_Int^" 7Zend_Validate_InArray^! ;Zend_Validate_Identical^  9Zend_Validate_Hostname^ ?Zend_Validate_Hostname_Se^ ?Zend_Validate_Hostname_No^ ?Zend_Validate_Hostname_Li^ ?Zend_Validate_Hostname_Hu^ ?Zend_Validate_Hostname_Fi^ ?Zend_Validate_Hostname_De^ ?Zend_Validate_Hostname_Ch^ ?Zend_Validate_Hostname_At^ /Zend_Validate_Hex^ ?Zend_Validate_GreaterThan^ 3Zend_Validate_Float^ ?Zend_Validate_File_Upload^ ;Zend_Validate_File_Size^ ;Zend_Validate_File_Sha1^! EZend_Validate_File_NotExists^  CZend_Validate_File_MimeType^ 9Zend_Validate_File_Md5^ AZend_Validate_File_IsImage^$ KZend_Validate_File_IsCompressed^! EZend_Validate_File_ImageSize^   n `;rQ0rW<xU1}[C 




R
$				s	Q	0	kL+vW7aF.eR8qY8qHyBn=                                               &f OZend_Controller_Action_Helper_Url_-e ]Zend_Controller_Action_Helper_Redirector_'d QZend_Controller_Action_Helper_Json_1c eZend_Controller_Action_Helper_FlashMessenger_0b cZend_Controller_Action_Helper_ContextSwitch_<a {Zend_Controller_Action_Helper_AutoCompleteScriptaculous_3` iZend_Controller_Action_Helper_AutoCompleteDojo_8_ sZend_Controller_Action_Helper_AutoComplete_Abstract_.^ _Zend_Controller_Action_Helper_AjaxContext_.] _Zend_Controller_Action_Helper_ActionStack_+\ YZend_Controller_Action_Helper_Abstract_%[ MZend_Controller_Action_Exception_Z 3Zend_Console_Getopt_"Y GZend_Console_Getopt_Exception_X #Zend_Config_W +Zend_Config_Xml_V 1Zend_Config_Writer_U 9Zend_Config_Writer_Xml_T 9Zend_Config_Writer_Ini_S =Zend_Config_Writer_Array_R +Zend_Config_Ini_Q 7Zend_Config_Exception_P /Zend_Captcha_Word_O 9Zend_Captcha_ReCaptcha_N 1Zend_Captcha_Image_M 3Zend_Captcha_Figlet_L 9Zend_Captcha_Exception_K /Zend_Captcha_Dumb_J /Zend_Captcha_Base_I !Zend_Cache_H =Zend_Cache_Frontend_Page_G AZend_Cache_Frontend_Output_!F EZend_Cache_Frontend_Function_E =Zend_Cache_Frontend_File_D ?Zend_Cache_Frontend_Class_C 5Zend_Cache_Exception_B +Zend_Cache_Core_A 1Zend_Cache_Backend_$@ KZend_Cache_Backend_ZendPlatform_? ?Zend_Cache_Backend_Xcache_!> EZend_Cache_Backend_TwoLevels_= ;Zend_Cache_Backend_Test_< ?Zend_Cache_Backend_Sqlite_!; EZend_Cache_Backend_Memcached_: ;Zend_Cache_Backend_File_9 9Zend_Cache_Backend_Apc_8 Zend_Auth_7 ?Zend_Auth_Storage_Session_$6 KZend_Auth_Storage_NonPersistent_ 5 CZend_Auth_Storage_Exception_4 -Zend_Auth_Result_3 3Zend_Auth_Exception_2 =Zend_Auth_Adapter_OpenId_1 9Zend_Auth_Adapter_Ldap_0 AZend_Auth_Adapter_InfoCard_/ 9Zend_Auth_Adapter_Http_). UZend_Auth_Adapter_Http_Resolver_File_.- _Zend_Auth_Adapter_Http_Resolver_Exception_ , CZend_Auth_Adapter_Exception_+ =Zend_Auth_Adapter_Digest_* ?Zend_Auth_Adapter_DbTable_) ?Zend_Amf_Value_TraitsInfo_-( ]Zend_Amf_Value_Messaging_RemotingMessage_*' WZend_Amf_Value_Messaging_ErrorMessage_,& [Zend_Amf_Value_Messaging_CommandMessage_*% WZend_Amf_Value_Messaging_AsyncMessage_0$ cZend_Amf_Value_Messaging_AcknowledgeMessage_-# ]Zend_Amf_Value_Messaging_AbstractMessage_!" EZend_Amf_Value_MessageHeader_! AZend_Amf_Value_MessageBody_  =Zend_Amf_Value_ByteArray_ AZend_Amf_Util_BinaryStream_ +Zend_Amf_Server_ ?Zend_Amf_Server_Exception_ /Zend_Amf_Response_ 9Zend_Amf_Response_Http_ -Zend_Amf_Request_ 7Zend_Amf_Request_Http_ ?Zend_Amf_Parse_TypeLoader_ ?Zend_Amf_Parse_Serializer_  CZend_Amf_Parse_OutputStream_ AZend_Amf_Parse_InputStream_  CZend_Amf_Parse_Deserializer_# IZend_Amf_Parse_Amf3_Serializer_% MZend_Amf_Parse_Amf3_Deserializer_# IZend_Amf_Parse_Amf0_Serializer_% MZend_Amf_Parse_Amf0_Deserializer_ 1Zend_Amf_Exception_ 1Zend_Amf_Constants_ Zend_Acl_ 'Zend_Acl_Role_ 9Zend_Acl_Role_Registry_%
 MZend_Acl_Role_Registry_Exception_	 /Zend_Acl_Resource_ 1Zend_Acl_Exception_ /Zend_XmlRpc_Value^ =Zend_XmlRpc_Value_Struct^ =Zend_XmlRpc_Value_String^ =Zend_XmlRpc_Value_Scalar^ 7Zend_XmlRpc_Value_Nil^ ?Zend_XmlRpc_Value_Integer^  CZend_XmlRpc_Value_Exception^  =Zend_XmlRpc_Value_Double^ AZend_XmlRpc_Value_DateTime^!~ EZend_XmlRpc_Value_Collection^} ?Zend_XmlRpc_Value_Boolean^| =Zend_XmlRpc_Value_Base64^{ ;Zend_XmlRpc_Value_Array^z 1Zend_XmlRpc_Server^y ?Zend_XmlRpc_Server_System^   i  gH[0
a<nHtI



s
S
=
$
					v	T	+	{W7t_<eAiO0bEa2vKsK#                           +O YZend_Dojo_Form_Element_CurrencyTextBox_$N KZend_Dojo_Form_Element_ComboBox_$M KZend_Dojo_Form_Element_CheckBox_"L GZend_Dojo_Form_Element_Button_ K CZend_Dojo_Form_DisplayGroup_*J WZend_Dojo_Form_Decorator_TabContainer_,I [Zend_Dojo_Form_Decorator_StackContainer_,H [Zend_Dojo_Form_Decorator_SplitContainer_'G QZend_Dojo_Form_Decorator_DijitForm_*F WZend_Dojo_Form_Decorator_DijitElement_,E [Zend_Dojo_Form_Decorator_DijitContainer_)D UZend_Dojo_Form_Decorator_ContentPane_-C ]Zend_Dojo_Form_Decorator_BorderContainer_+B YZend_Dojo_Form_Decorator_AccordionPane_0A cZend_Dojo_Form_Decorator_AccordionContainer_@ 3Zend_Dojo_Exception_? )Zend_Dojo_Data_> !Zend_Debug_= Zend_Db_< 'Zend_Db_Table_; 5Zend_Db_Table_Select_#: IZend_Db_Table_Select_Exception_9 5Zend_Db_Table_Rowset_#8 IZend_Db_Table_Rowset_Exception_"7 GZend_Db_Table_Rowset_Abstract_6 /Zend_Db_Table_Row_ 5 CZend_Db_Table_Row_Exception_4 AZend_Db_Table_Row_Abstract_3 ;Zend_Db_Table_Exception_2 9Zend_Db_Table_Abstract_1 /Zend_Db_Statement_0 7Zend_Db_Statement_Pdo_/ ?Zend_Db_Statement_Pdo_Ibm_. =Zend_Db_Statement_Oracle_'- QZend_Db_Statement_Oracle_Exception_, =Zend_Db_Statement_Mysqli_'+ QZend_Db_Statement_Mysqli_Exception_ * CZend_Db_Statement_Exception_) 7Zend_Db_Statement_Db2_$( KZend_Db_Statement_Db2_Exception_' )Zend_Db_Select_& =Zend_Db_Select_Exception_% -Zend_Db_Profiler_$ 9Zend_Db_Profiler_Query_# =Zend_Db_Profiler_Firebug_" AZend_Db_Profiler_Exception_! %Zend_Db_Expr_  /Zend_Db_Exception_ AZend_Db_Adapter_Pdo_Sqlite_ ?Zend_Db_Adapter_Pdo_Pgsql_ ;Zend_Db_Adapter_Pdo_Oci_ ?Zend_Db_Adapter_Pdo_Mysql_ ?Zend_Db_Adapter_Pdo_Mssql_ ;Zend_Db_Adapter_Pdo_Ibm_  CZend_Db_Adapter_Pdo_Ibm_Ids_  CZend_Db_Adapter_Pdo_Ibm_Db2_! EZend_Db_Adapter_Pdo_Abstract_ 9Zend_Db_Adapter_Oracle_% MZend_Db_Adapter_Oracle_Exception_ 9Zend_Db_Adapter_Mysqli_% MZend_Db_Adapter_Mysqli_Exception_ ?Zend_Db_Adapter_Exception_ 3Zend_Db_Adapter_Db2_" GZend_Db_Adapter_Db2_Exception_ =Zend_Db_Adapter_Abstract_ Zend_Date_ 3Zend_Date_Exception_ 5Zend_Date_DateObject_ -Zend_Date_Cities_
 'Zend_Currency_	 ;Zend_Currency_Exception_! EZend_Controller_Router_Route_( SZend_Controller_Router_Route_Static_' QZend_Controller_Router_Route_Regex_( SZend_Controller_Router_Route_Module_* WZend_Controller_Router_Route_Hostname_' QZend_Controller_Router_Route_Chain_* WZend_Controller_Router_Route_Abstract_# IZend_Controller_Router_Rewrite_%  MZend_Controller_Router_Exception_$ KZend_Controller_Router_Abstract_*~ WZend_Controller_Response_HttpTestCase_"} GZend_Controller_Response_Http_'| QZend_Controller_Response_Exception_!{ EZend_Controller_Response_Cli_&z OZend_Controller_Response_Abstract_#y IZend_Controller_Request_Simple_)x UZend_Controller_Request_HttpTestCase_!w EZend_Controller_Request_Http_&v OZend_Controller_Request_Exception_&u OZend_Controller_Request_Apache404_%t MZend_Controller_Request_Abstract_(s SZend_Controller_Plugin_ErrorHandler_"r GZend_Controller_Plugin_Broker_'q QZend_Controller_Plugin_ActionStack_$p KZend_Controller_Plugin_Abstract_o 7Zend_Controller_Front_n ?Zend_Controller_Exception_(m SZend_Controller_Dispatcher_Standard_)l UZend_Controller_Dispatcher_Exception_(k SZend_Controller_Dispatcher_Abstract_j 9Zend_Controller_Action_(i SZend_Controller_Action_HelperBroker_6h oZend_Controller_Action_HelperBroker_PriorityStack_/g aZend_Controller_Action_Helper_ViewRenderer_   i  `1xM'P"n@uK'




W
4
				U	(	~S,mR1oG&|fT( oT<y_G'
g>e9         %8 MZend_Filter_Word_SeparatorToDash_*7 WZend_Filter_Word_SeparatorToCamelCase_(6 SZend_Filter_Word_Separator_Abstract_&5 OZend_Filter_Word_DashToUnderscore_%4 MZend_Filter_Word_DashToSeparator_%3 MZend_Filter_Word_DashToCamelCase_+2 YZend_Filter_Word_CamelCaseToUnderscore_*1 WZend_Filter_Word_CamelCaseToSeparator_%0 MZend_Filter_Word_CamelCaseToDash_/ 7Zend_Filter_StripTags_. ?Zend_Filter_StripNewlines_- 9Zend_Filter_StringTrim_, ?Zend_Filter_StringToUpper_+ ?Zend_Filter_StringToLower_* 5Zend_Filter_RealPath_) ;Zend_Filter_PregReplace_( +Zend_Filter_Int_' /Zend_Filter_Input_& 7Zend_Filter_Inflector_% =Zend_Filter_HtmlEntities_$ AZend_Filter_File_UpperCase_# ;Zend_Filter_File_Rename_" AZend_Filter_File_LowerCase_! 7Zend_Filter_Exception_  +Zend_Filter_Dir_ 1Zend_Filter_Digits_ 5Zend_Filter_BaseName_ /Zend_Filter_Alpha_ /Zend_Filter_Alnum_ 1Zend_File_Transfer_! EZend_File_Transfer_Exception_$ KZend_File_Transfer_Adapter_Http_( SZend_File_Transfer_Adapter_Abstract_ Zend_Feed_ 'Zend_Feed_Rss_ 3Zend_Feed_Exception_ 3Zend_Feed_Entry_Rss_ 5Zend_Feed_Entry_Atom_ =Zend_Feed_Entry_Abstract_ /Zend_Feed_Element_ /Zend_Feed_Builder_ =Zend_Feed_Builder_Header_$ KZend_Feed_Builder_Header_Itunes_  CZend_Feed_Builder_Exception_ ;Zend_Feed_Builder_Entry_ )Zend_Feed_Atom_
 1Zend_Feed_Abstract_	 )Zend_Exception_ )Zend_Dom_Query_ 7Zend_Dom_Query_Result_ =Zend_Dom_Query_Css2Xpath_ 1Zend_Dom_Exception_ Zend_Dojo_) UZend_Dojo_View_Helper_VerticalSlider_, [Zend_Dojo_View_Helper_ValidationTextBox_& OZend_Dojo_View_Helper_TimeTextBox_"  GZend_Dojo_View_Helper_TextBox_# IZend_Dojo_View_Helper_Textarea_'~ QZend_Dojo_View_Helper_TabContainer_'} QZend_Dojo_View_Helper_SubmitButton_)| UZend_Dojo_View_Helper_StackContainer_){ UZend_Dojo_View_Helper_SplitContainer_!z EZend_Dojo_View_Helper_Slider_)y UZend_Dojo_View_Helper_SimpleTextarea_&x OZend_Dojo_View_Helper_RadioButton_*w WZend_Dojo_View_Helper_PasswordTextBox_(v SZend_Dojo_View_Helper_NumberTextBox_(u SZend_Dojo_View_Helper_NumberSpinner_+t YZend_Dojo_View_Helper_HorizontalSlider_s AZend_Dojo_View_Helper_Form_*r WZend_Dojo_View_Helper_FilteringSelect_!q EZend_Dojo_View_Helper_Editor_p AZend_Dojo_View_Helper_Dojo_)o UZend_Dojo_View_Helper_Dojo_Container_)n UZend_Dojo_View_Helper_DijitContainer_ m CZend_Dojo_View_Helper_Dijit_&l OZend_Dojo_View_Helper_DateTextBox_*k WZend_Dojo_View_Helper_CurrencyTextBox_&j OZend_Dojo_View_Helper_ContentPane_#i IZend_Dojo_View_Helper_ComboBox_#h IZend_Dojo_View_Helper_CheckBox_!g EZend_Dojo_View_Helper_Button_*f WZend_Dojo_View_Helper_BorderContainer_(e SZend_Dojo_View_Helper_AccordionPane_-d ]Zend_Dojo_View_Helper_AccordionContainer_c =Zend_Dojo_View_Exception_b )Zend_Dojo_Form_a 9Zend_Dojo_Form_SubForm_*` WZend_Dojo_Form_Element_VerticalSlider_-_ ]Zend_Dojo_Form_Element_ValidationTextBox_'^ QZend_Dojo_Form_Element_TimeTextBox_#] IZend_Dojo_Form_Element_TextBox_$\ KZend_Dojo_Form_Element_Textarea_([ SZend_Dojo_Form_Element_SubmitButton_"Z GZend_Dojo_Form_Element_Slider_'Y QZend_Dojo_Form_Element_RadioButton_+X YZend_Dojo_Form_Element_PasswordTextBox_)W UZend_Dojo_Form_Element_NumberTextBox_)V UZend_Dojo_Form_Element_NumberSpinner_,U [Zend_Dojo_Form_Element_HorizontalSlider_+T YZend_Dojo_Form_Element_FilteringSelect_"S GZend_Dojo_Form_Element_Editor_&R OZend_Dojo_Form_Element_DijitMulti_!Q EZend_Dojo_Form_Element_Dijit_'P QZend_Dojo_Form_Element_DateTextBox_   g  yJ6wO,vO+	mN-eE%




t
S
2
						n	I	jBrI"a;nEmFpN'`.sD                    - ]Zend_Gdata_Books_Extension_ThumbnailLink_& OZend_Gdata_Books_Extension_Review_+ YZend_Gdata_Books_Extension_PreviewLink_( SZend_Gdata_Books_Extension_InfoLink_- ]Zend_Gdata_Books_Extension_Embeddability_) UZend_Gdata_Books_Extension_BooksLink_- ]Zend_Gdata_Books_Extension_BooksCategory_. _Zend_Gdata_Books_Extension_AnnotationLink_$ KZend_Gdata_Books_CollectionFeed_% MZend_Gdata_Books_CollectionEntry_ 1Zend_Gdata_AuthSub_ )Zend_Gdata_App_$ KZend_Gdata_App_VersionException_ 3Zend_Gdata_App_Util_# IZend_Gdata_App_MediaFileSource_ ?Zend_Gdata_App_MediaEntry_2 gZend_Gdata_App_LoggingHttpClientAdapterSocket_ AZend_Gdata_App_IOException_, [Zend_Gdata_App_InvalidArgumentException_! EZend_Gdata_App_HttpException_$ KZend_Gdata_App_FeedSourceParent_#
 IZend_Gdata_App_FeedEntryParent_	 3Zend_Gdata_App_Feed_ =Zend_Gdata_App_Extension_! EZend_Gdata_App_Extension_Uri_% MZend_Gdata_App_Extension_Updated_# IZend_Gdata_App_Extension_Title_" GZend_Gdata_App_Extension_Text_% MZend_Gdata_App_Extension_Summary_& OZend_Gdata_App_Extension_Subtitle_$ KZend_Gdata_App_Extension_Source_$  KZend_Gdata_App_Extension_Rights_' QZend_Gdata_App_Extension_Published_$~ KZend_Gdata_App_Extension_Person_"} GZend_Gdata_App_Extension_Name_"| GZend_Gdata_App_Extension_Logo_"{ GZend_Gdata_App_Extension_Link_ z CZend_Gdata_App_Extension_Id_"y GZend_Gdata_App_Extension_Icon_'x QZend_Gdata_App_Extension_Generator_#w IZend_Gdata_App_Extension_Email_%v MZend_Gdata_App_Extension_Element_#u IZend_Gdata_App_Extension_Draft_%t MZend_Gdata_App_Extension_Control_)s UZend_Gdata_App_Extension_Contributor_%r MZend_Gdata_App_Extension_Content_&q OZend_Gdata_App_Extension_Category_$p KZend_Gdata_App_Extension_Author_o =Zend_Gdata_App_Exception_n 5Zend_Gdata_App_Entry_,m [Zend_Gdata_App_CaptchaRequiredException_#l IZend_Gdata_App_BaseMediaSource_k 3Zend_Gdata_App_Base_*j WZend_Gdata_App_BadMethodCallException_!i EZend_Gdata_App_AuthException_h Zend_Form_g /Zend_Form_SubForm_f 3Zend_Form_Exception_e /Zend_Form_Element_d ;Zend_Form_Element_Xhtml_c AZend_Form_Element_Textarea_b 9Zend_Form_Element_Text_a =Zend_Form_Element_Submit_` =Zend_Form_Element_Select__ ;Zend_Form_Element_Reset_^ ;Zend_Form_Element_Radio_] AZend_Form_Element_Password_"\ GZend_Form_Element_Multiselect_$[ KZend_Form_Element_MultiCheckbox_Z ;Zend_Form_Element_Multi_Y ;Zend_Form_Element_Image_X =Zend_Form_Element_Hidden_W 9Zend_Form_Element_Hash_V 9Zend_Form_Element_File_ U CZend_Form_Element_Exception_T AZend_Form_Element_Checkbox_S ?Zend_Form_Element_Captcha_R =Zend_Form_Element_Button_Q 9Zend_Form_DisplayGroup_#P IZend_Form_Decorator_ViewScript_#O IZend_Form_Decorator_ViewHelper_(N SZend_Form_Decorator_PrepareElements_M ?Zend_Form_Decorator_Label_L ?Zend_Form_Decorator_Image_ K CZend_Form_Decorator_HtmlTag_#J IZend_Form_Decorator_FormErrors_%I MZend_Form_Decorator_FormElements_H =Zend_Form_Decorator_Form_G =Zend_Form_Decorator_File_!F EZend_Form_Decorator_Fieldset_"E GZend_Form_Decorator_Exception_D AZend_Form_Decorator_Errors_$C KZend_Form_Decorator_DtDdWrapper_$B KZend_Form_Decorator_Description_ A CZend_Form_Decorator_Captcha_%@ MZend_Form_Decorator_Captcha_Word_!? EZend_Form_Decorator_Callback_!> EZend_Form_Decorator_Abstract_= #Zend_Filter_+< YZend_Filter_Word_UnderscoreToSeparator_&; OZend_Filter_Word_UnderscoreToDash_+: YZend_Filter_Word_UnderscoreToCamelCase_*9 WZend_Filter_Word_SeparatorToSeparator_   `  cJ#xK V%uL.V#



a
3
					`	2	
e>f?\(Z0mEdErK%pM4                             - ]Zend_Gdata_Gbase_Extension_BaseAttribute_~ 9Zend_Gdata_Gbase_Entry_} -Zend_Gdata_Gapps_| AZend_Gdata_Gapps_UserQuery_{ ?Zend_Gdata_Gapps_UserFeed_z AZend_Gdata_Gapps_UserEntry_&y OZend_Gdata_Gapps_ServiceException_x 9Zend_Gdata_Gapps_Query_#w IZend_Gdata_Gapps_NicknameQuery_"v GZend_Gdata_Gapps_NicknameFeed_#u IZend_Gdata_Gapps_NicknameEntry_%t MZend_Gdata_Gapps_Extension_Quota_(s SZend_Gdata_Gapps_Extension_Nickname_$r KZend_Gdata_Gapps_Extension_Name_%q MZend_Gdata_Gapps_Extension_Login_)p UZend_Gdata_Gapps_Extension_EmailList_o 9Zend_Gdata_Gapps_Error_-n ]Zend_Gdata_Gapps_EmailListRecipientQuery_,m [Zend_Gdata_Gapps_EmailListRecipientFeed_-l ]Zend_Gdata_Gapps_EmailListRecipientEntry_$k KZend_Gdata_Gapps_EmailListQuery_#j IZend_Gdata_Gapps_EmailListFeed_$i KZend_Gdata_Gapps_EmailListEntry_h +Zend_Gdata_Feed_g 5Zend_Gdata_Extension_f =Zend_Gdata_Extension_Who_e AZend_Gdata_Extension_Where_d ?Zend_Gdata_Extension_When_$c KZend_Gdata_Extension_Visibility_&b OZend_Gdata_Extension_Transparency_"a GZend_Gdata_Extension_Reminder_-` ]Zend_Gdata_Extension_RecurrenceException_$_ KZend_Gdata_Extension_Recurrence_ ^ CZend_Gdata_Extension_Rating_'] QZend_Gdata_Extension_OriginalEvent_0\ cZend_Gdata_Extension_OpenSearchTotalResults_.[ _Zend_Gdata_Extension_OpenSearchStartIndex_0Z cZend_Gdata_Extension_OpenSearchItemsPerPage_"Y GZend_Gdata_Extension_FeedLink_*X WZend_Gdata_Extension_ExtendedProperty_%W MZend_Gdata_Extension_EventStatus_#V IZend_Gdata_Extension_EntryLink_"U GZend_Gdata_Extension_Comments_&T OZend_Gdata_Extension_AttendeeType_(S SZend_Gdata_Extension_AttendeeStatus_R +Zend_Gdata_Exif_Q 5Zend_Gdata_Exif_Feed_#P IZend_Gdata_Exif_Extension_Time_#O IZend_Gdata_Exif_Extension_Tags_$N KZend_Gdata_Exif_Extension_Model_#M IZend_Gdata_Exif_Extension_Make_"L GZend_Gdata_Exif_Extension_Iso_,K [Zend_Gdata_Exif_Extension_ImageUniqueId_$J KZend_Gdata_Exif_Extension_FStop_*I WZend_Gdata_Exif_Extension_FocalLength_$H KZend_Gdata_Exif_Extension_Flash_'G QZend_Gdata_Exif_Extension_Exposure_'F QZend_Gdata_Exif_Extension_Distance_E 7Zend_Gdata_Exif_Entry_D -Zend_Gdata_Entry_C 7Zend_Gdata_DublinCore_*B WZend_Gdata_DublinCore_Extension_Title_,A [Zend_Gdata_DublinCore_Extension_Subject_+@ YZend_Gdata_DublinCore_Extension_Rights_.? _Zend_Gdata_DublinCore_Extension_Publisher_-> ]Zend_Gdata_DublinCore_Extension_Language_/= aZend_Gdata_DublinCore_Extension_Identifier_+< YZend_Gdata_DublinCore_Extension_Format_0; cZend_Gdata_DublinCore_Extension_Description_): UZend_Gdata_DublinCore_Extension_Date_,9 [Zend_Gdata_DublinCore_Extension_Creator_8 +Zend_Gdata_Docs_7 7Zend_Gdata_Docs_Query_%6 MZend_Gdata_Docs_DocumentListFeed_&5 OZend_Gdata_Docs_DocumentListEntry_4 9Zend_Gdata_ClientLogin_3 3Zend_Gdata_Calendar_!2 EZend_Gdata_Calendar_ListFeed_"1 GZend_Gdata_Calendar_ListEntry_-0 ]Zend_Gdata_Calendar_Extension_WebContent_+/ YZend_Gdata_Calendar_Extension_Timezone_9. uZend_Gdata_Calendar_Extension_SendEventNotifications_+- YZend_Gdata_Calendar_Extension_Selected_+, YZend_Gdata_Calendar_Extension_QuickAdd_'+ QZend_Gdata_Calendar_Extension_Link_)* UZend_Gdata_Calendar_Extension_Hidden_() SZend_Gdata_Calendar_Extension_Color_.( _Zend_Gdata_Calendar_Extension_AccessLevel_#' IZend_Gdata_Calendar_EventQuery_"& GZend_Gdata_Calendar_EventFeed_#% IZend_Gdata_Calendar_EventEntry_$ -Zend_Gdata_Books_!# EZend_Gdata_Books_VolumeQuery_ " CZend_Gdata_Books_VolumeFeed_!! EZend_Gdata_Books_VolumeEntry_+  YZend_Gdata_Books_Extension_Viewability_   ^  z[5]5b8m=zM



]
+					}	X	1	T#n8}Q$n@hClR9_,uK                                       ,] [Zend_Gdata_Spreadsheets_SpreadsheetFeed_-\ ]Zend_Gdata_Spreadsheets_SpreadsheetEntry_&[ OZend_Gdata_Spreadsheets_ListQuery_%Z MZend_Gdata_Spreadsheets_ListFeed_&Y OZend_Gdata_Spreadsheets_ListEntry_/X aZend_Gdata_Spreadsheets_Extension_RowCount_-W ]Zend_Gdata_Spreadsheets_Extension_Custom_/V aZend_Gdata_Spreadsheets_Extension_ColCount_+U YZend_Gdata_Spreadsheets_Extension_Cell_*T WZend_Gdata_Spreadsheets_DocumentQuery_&S OZend_Gdata_Spreadsheets_CellQuery_%R MZend_Gdata_Spreadsheets_CellFeed_&Q OZend_Gdata_Spreadsheets_CellEntry_P -Zend_Gdata_Query_O /Zend_Gdata_Photos_ N CZend_Gdata_Photos_UserQuery_M AZend_Gdata_Photos_UserFeed_ L CZend_Gdata_Photos_UserEntry_K AZend_Gdata_Photos_TagEntry_!J EZend_Gdata_Photos_PhotoQuery_ I CZend_Gdata_Photos_PhotoFeed_!H EZend_Gdata_Photos_PhotoEntry_&G OZend_Gdata_Photos_Extension_Width_'F QZend_Gdata_Photos_Extension_Weight_(E SZend_Gdata_Photos_Extension_Version_%D MZend_Gdata_Photos_Extension_User_*C WZend_Gdata_Photos_Extension_Timestamp_*B WZend_Gdata_Photos_Extension_Thumbnail_%A MZend_Gdata_Photos_Extension_Size_)@ UZend_Gdata_Photos_Extension_Rotation_+? YZend_Gdata_Photos_Extension_QuotaLimit_-> ]Zend_Gdata_Photos_Extension_QuotaCurrent_)= UZend_Gdata_Photos_Extension_Position_(< SZend_Gdata_Photos_Extension_PhotoId_3; iZend_Gdata_Photos_Extension_NumPhotosRemaining_*: WZend_Gdata_Photos_Extension_NumPhotos_)9 UZend_Gdata_Photos_Extension_Nickname_%8 MZend_Gdata_Photos_Extension_Name_27 gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum_)6 UZend_Gdata_Photos_Extension_Location_#5 IZend_Gdata_Photos_Extension_Id_'4 QZend_Gdata_Photos_Extension_Height_23 gZend_Gdata_Photos_Extension_CommentingEnabled_-2 ]Zend_Gdata_Photos_Extension_CommentCount_'1 QZend_Gdata_Photos_Extension_Client_)0 UZend_Gdata_Photos_Extension_Checksum_*/ WZend_Gdata_Photos_Extension_BytesUsed_(. SZend_Gdata_Photos_Extension_AlbumId_'- QZend_Gdata_Photos_Extension_Access_#, IZend_Gdata_Photos_CommentEntry_!+ EZend_Gdata_Photos_AlbumQuery_ * CZend_Gdata_Photos_AlbumFeed_!) EZend_Gdata_Photos_AlbumEntry_( -Zend_Gdata_Media_' 7Zend_Gdata_Media_Feed_*& WZend_Gdata_Media_Extension_MediaTitle_.% _Zend_Gdata_Media_Extension_MediaThumbnail_)$ UZend_Gdata_Media_Extension_MediaText_0# cZend_Gdata_Media_Extension_MediaRestriction_+" YZend_Gdata_Media_Extension_MediaRating_+! YZend_Gdata_Media_Extension_MediaPlayer_-  ]Zend_Gdata_Media_Extension_MediaKeywords_) UZend_Gdata_Media_Extension_MediaHash_* WZend_Gdata_Media_Extension_MediaGroup_0 cZend_Gdata_Media_Extension_MediaDescription_+ YZend_Gdata_Media_Extension_MediaCredit_. _Zend_Gdata_Media_Extension_MediaCopyright_, [Zend_Gdata_Media_Extension_MediaContent_- ]Zend_Gdata_Media_Extension_MediaCategory_ 9Zend_Gdata_Media_Entry_ AZend_Gdata_Kind_EventEntry_ 7Zend_Gdata_HttpClient_ /Zend_Gdata_Health_ ;Zend_Gdata_Health_Query_& OZend_Gdata_Health_ProfileListFeed_' QZend_Gdata_Health_ProfileListEntry_" GZend_Gdata_Health_ProfileFeed_# IZend_Gdata_Health_ProfileEntry_$ KZend_Gdata_Health_Extension_Ccr_ )Zend_Gdata_Geo_ 3Zend_Gdata_Geo_Feed_$ KZend_Gdata_Geo_Extension_GmlPos_& OZend_Gdata_Geo_Extension_GmlPoint_)
 UZend_Gdata_Geo_Extension_GeoRssWhere_	 5Zend_Gdata_Geo_Entry_ -Zend_Gdata_Gbase_" GZend_Gdata_Gbase_SnippetQuery_! EZend_Gdata_Gbase_SnippetFeed_" GZend_Gdata_Gbase_SnippetEntry_ 9Zend_Gdata_Gbase_Query_ AZend_Gdata_Gbase_ItemQuery_ ?Zend_Gdata_Gbase_ItemFeed_ AZend_Gdata_Gbase_ItemEntry_  7Zend_Gdata_Gbase_Feed_   \  [4d7
|M!n@|P%



e
7

				O	k@d8
X2g?qK#e,pG#yR.                          &9 OZend_InfoCard_Xml_KeyInfo_Default_'8 QZend_InfoCard_Xml_KeyInfo_Abstract_ 7 CZend_InfoCard_Xml_Exception_#6 IZend_InfoCard_Xml_EncryptedKey_$5 KZend_InfoCard_Xml_EncryptedData_+4 YZend_InfoCard_Xml_EncryptedData_XmlEnc_-3 ]Zend_InfoCard_Xml_EncryptedData_Abstract_2 ?Zend_InfoCard_Xml_Element_ 1 CZend_InfoCard_Xml_Assertion_%0 MZend_InfoCard_Xml_Assertion_Saml_/ ;Zend_InfoCard_Exception_%. MZend_InfoCard_Exception_Abstract_- 5Zend_InfoCard_Claims_, 5Zend_InfoCard_Cipher_5+ mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc_5* mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc_4) kZend_InfoCard_Cipher_Symmetric_Adapter_Abstract_)( UZend_InfoCard_Cipher_Pki_Adapter_Rsa_.' _Zend_InfoCard_Cipher_Pki_Adapter_Abstract_#& IZend_InfoCard_Cipher_Exception_$% KZend_InfoCard_Adapter_Exception_"$ GZend_InfoCard_Adapter_Default_# 1Zend_Http_Response_" 3Zend_Http_Exception_! 3Zend_Http_CookieJar_  -Zend_Http_Cookie_ -Zend_Http_Client_ AZend_Http_Client_Exception_" GZend_Http_Client_Adapter_Test_$ KZend_Http_Client_Adapter_Socket_# IZend_Http_Client_Adapter_Proxy_' QZend_Http_Client_Adapter_Exception_ !Zend_Gdata_ 1Zend_Gdata_YouTube_" GZend_Gdata_YouTube_VideoQuery_! EZend_Gdata_YouTube_VideoFeed_" GZend_Gdata_YouTube_VideoEntry_( SZend_Gdata_YouTube_UserProfileEntry_( SZend_Gdata_YouTube_SubscriptionFeed_) UZend_Gdata_YouTube_SubscriptionEntry_) UZend_Gdata_YouTube_PlaylistVideoFeed_* WZend_Gdata_YouTube_PlaylistVideoEntry_( SZend_Gdata_YouTube_PlaylistListFeed_) UZend_Gdata_YouTube_PlaylistListEntry_" GZend_Gdata_YouTube_MediaEntry_) UZend_Gdata_YouTube_Extension_VideoId_* WZend_Gdata_YouTube_Extension_Username_*
 WZend_Gdata_YouTube_Extension_Uploaded_'	 QZend_Gdata_YouTube_Extension_Token_( SZend_Gdata_YouTube_Extension_Status_, [Zend_Gdata_YouTube_Extension_Statistics_' QZend_Gdata_YouTube_Extension_State_( SZend_Gdata_YouTube_Extension_School_- ]Zend_Gdata_YouTube_Extension_ReleaseDate_. _Zend_Gdata_YouTube_Extension_Relationship_* WZend_Gdata_YouTube_Extension_Recorded_& OZend_Gdata_YouTube_Extension_Racy_-  ]Zend_Gdata_YouTube_Extension_QueryString_) UZend_Gdata_YouTube_Extension_Private_*~ WZend_Gdata_YouTube_Extension_Position_/} aZend_Gdata_YouTube_Extension_PlaylistTitle_,| [Zend_Gdata_YouTube_Extension_PlaylistId_,{ [Zend_Gdata_YouTube_Extension_Occupation_)z UZend_Gdata_YouTube_Extension_NoEmbed_'y QZend_Gdata_YouTube_Extension_Music_(x SZend_Gdata_YouTube_Extension_Movies_-w ]Zend_Gdata_YouTube_Extension_MediaRating_,v [Zend_Gdata_YouTube_Extension_MediaGroup_-u ]Zend_Gdata_YouTube_Extension_MediaCredit_.t _Zend_Gdata_YouTube_Extension_MediaContent_*s WZend_Gdata_YouTube_Extension_Location_&r OZend_Gdata_YouTube_Extension_Link_*q WZend_Gdata_YouTube_Extension_LastName_*p WZend_Gdata_YouTube_Extension_Hometown_)o UZend_Gdata_YouTube_Extension_Hobbies_(n SZend_Gdata_YouTube_Extension_Gender_+m YZend_Gdata_YouTube_Extension_FirstName_*l WZend_Gdata_YouTube_Extension_Duration_-k ]Zend_Gdata_YouTube_Extension_Description_+j YZend_Gdata_YouTube_Extension_CountHint_)i UZend_Gdata_YouTube_Extension_Control_)h UZend_Gdata_YouTube_Extension_Company_'g QZend_Gdata_YouTube_Extension_Books_%f MZend_Gdata_YouTube_Extension_Age_)e UZend_Gdata_YouTube_Extension_AboutMe_#d IZend_Gdata_YouTube_ContactFeed_$c KZend_Gdata_YouTube_ContactEntry_#b IZend_Gdata_YouTube_CommentFeed_$a KZend_Gdata_YouTube_CommentEntry_` ;Zend_Gdata_Spreadsheets_*_ WZend_Gdata_Spreadsheets_WorksheetFeed_+^ YZend_Gdata_Spreadsheets_WorksheetEntry_   u GWA'jI" _2 hT/





l
Q
1
					r	R	5	w`<T4}^<nI(d@iH-z\A ~b=                                      !. EZend_Memory_Container_Locked_!- EZend_Memory_AccessController_, 3Zend_Measure_Weight_+ 3Zend_Measure_Volume_%* MZend_Measure_Viscosity_Kinematic_#) IZend_Measure_Viscosity_Dynamic_( 3Zend_Measure_Torque_' /Zend_Measure_Time_& =Zend_Measure_Temperature_% 1Zend_Measure_Speed_$ 7Zend_Measure_Pressure_# 1Zend_Measure_Power_" 3Zend_Measure_Number_! 9Zend_Measure_Lightness_  3Zend_Measure_Length_ ?Zend_Measure_Illumination_ 9Zend_Measure_Frequency_ 1Zend_Measure_Force_ =Zend_Measure_Flow_Volume_ 9Zend_Measure_Flow_Mole_ 9Zend_Measure_Flow_Mass_ 9Zend_Measure_Exception_ 3Zend_Measure_Energy_ 5Zend_Measure_Density_ 5Zend_Measure_Current_  CZend_Measure_Cooking_Weight_  CZend_Measure_Cooking_Volume_ =Zend_Measure_Capacitance_ 3Zend_Measure_Binary_ /Zend_Measure_Area_ 1Zend_Measure_Angle_ ?Zend_Measure_Acceleration_ 7Zend_Measure_Abstract_ Zend_Mail_ =Zend_Mail_Transport_Smtp_! EZend_Mail_Transport_Sendmail_"
 GZend_Mail_Transport_Exception_!	 EZend_Mail_Transport_Abstract_ /Zend_Mail_Storage_' QZend_Mail_Storage_Writable_Maildir_ 9Zend_Mail_Storage_Pop3_ 9Zend_Mail_Storage_Mbox_ ?Zend_Mail_Storage_Maildir_ 9Zend_Mail_Storage_Imap_ =Zend_Mail_Storage_Folder_" GZend_Mail_Storage_Folder_Mbox_%  MZend_Mail_Storage_Folder_Maildir_  CZend_Mail_Storage_Exception_~ AZend_Mail_Storage_Abstract_} ;Zend_Mail_Protocol_Smtp_'| QZend_Mail_Protocol_Smtp_Auth_Plain_'{ QZend_Mail_Protocol_Smtp_Auth_Login_)z UZend_Mail_Protocol_Smtp_Auth_Crammd5_y ;Zend_Mail_Protocol_Pop3_x ;Zend_Mail_Protocol_Imap_!w EZend_Mail_Protocol_Exception_ v CZend_Mail_Protocol_Abstract_u )Zend_Mail_Part_t 3Zend_Mail_Part_File_s /Zend_Mail_Message_r 9Zend_Mail_Message_File_q 3Zend_Mail_Exception_p Zend_Log_o 9Zend_Log_Writer_Stream_n 5Zend_Log_Writer_Null_m 5Zend_Log_Writer_Mock_l ;Zend_Log_Writer_Firebug_k 1Zend_Log_Writer_Db_j =Zend_Log_Writer_Abstract_i 9Zend_Log_Formatter_Xml_h ?Zend_Log_Formatter_Simple_g =Zend_Log_Filter_Suppress_f =Zend_Log_Filter_Priority_e ;Zend_Log_Filter_Message_d 1Zend_Log_Exception_c #Zend_Locale_b -Zend_Locale_Math_a =Zend_Locale_Math_PhpMath_` AZend_Locale_Math_Exception__ 1Zend_Locale_Format_^ 7Zend_Locale_Exception_] -Zend_Locale_Data_!\ EZend_Locale_Data_Translation_[ #Zend_Loader_Z =Zend_Loader_PluginLoader_'Y QZend_Loader_PluginLoader_Exception_X 7Zend_Loader_Exception_W Zend_Ldap_V 3Zend_Ldap_Exception_U #Zend_Layout_T 7Zend_Layout_Exception_)S UZend_Layout_Controller_Plugin_Layout_0R cZend_Layout_Controller_Action_Helper_Layout_Q Zend_Json_P -Zend_Json_Server_O 5Zend_Json_Server_Smd_!N EZend_Json_Server_Smd_Service_M ?Zend_Json_Server_Response_#L IZend_Json_Server_Response_Http_K =Zend_Json_Server_Request_"J GZend_Json_Server_Request_Http_I AZend_Json_Server_Exception_H 9Zend_Json_Server_Error_G 9Zend_Json_Server_Cache_F 3Zend_Json_Exception_E /Zend_Json_Encoder_D /Zend_Json_Decoder_C 'Zend_InfoCard_-B ]Zend_InfoCard_Xml_SecurityTokenReference_A AZend_InfoCard_Xml_Security_)@ UZend_InfoCard_Xml_Security_Transform_4? kZend_InfoCard_Xml_Security_Transform_XmlExcC14N_3> iZend_InfoCard_Xml_Security_Transform_Exception_<= {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignature_)< UZend_InfoCard_Xml_Security_Exception_; ?Zend_InfoCard_Xml_KeyInfo_&: OZend_InfoCard_Xml_KeyInfo_XmlDSig_   f  hT;pR/vYE ^4iF!





t
]
>
					u	U	*	w^8Y7}\2
lR"nA
OTk1                                  8 sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats_6 oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman_7 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic_; yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic_5 mZend_Pdf_Resource_Font_Simple_Standard_TimesBold_2 gZend_Pdf_Resource_Font_Simple_Standard_Symbol_< {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaOblique_A Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique_9 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold_5 mZend_Pdf_Resource_Font_Simple_Standard_Helvetica_:
 wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique_>	 Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique_7 qZend_Pdf_Resource_Font_Simple_Standard_CourierBold_3 iZend_Pdf_Resource_Font_Simple_Standard_Courier_) UZend_Pdf_Resource_Font_Simple_Parsed_2 gZend_Pdf_Resource_Font_Simple_Parsed_TrueType_* WZend_Pdf_Resource_Font_FontDescriptor_% MZend_Pdf_Resource_Font_Extracted_# IZend_Pdf_Resource_Font_CidFont_, [Zend_Pdf_Resource_Font_CidFont_TrueType_  /Zend_Pdf_PhpArray_ +Zend_Pdf_Parser_~ 9Zend_Pdf_Parser_Stream_} 'Zend_Pdf_Page_| )Zend_Pdf_Image_{ 'Zend_Pdf_Font_ z CZend_Pdf_Filter_Compression_$y KZend_Pdf_Filter_Compression_Lzw_&x OZend_Pdf_Filter_Compression_Flate_w =Zend_Pdf_Filter_AsciiHex_v ;Zend_Pdf_Filter_Ascii85_"u GZend_Pdf_FileParserDataSource_)t UZend_Pdf_FileParserDataSource_String_'s QZend_Pdf_FileParserDataSource_File_r 3Zend_Pdf_FileParser_q ?Zend_Pdf_FileParser_Image_"p GZend_Pdf_FileParser_Image_Png_o =Zend_Pdf_FileParser_Font_&n OZend_Pdf_FileParser_Font_OpenType_/m aZend_Pdf_FileParser_Font_OpenType_TrueType_l 1Zend_Pdf_Exception_k ;Zend_Pdf_ElementFactory_"j GZend_Pdf_ElementFactory_Proxy_i -Zend_Pdf_Element_h ;Zend_Pdf_Element_String_#g IZend_Pdf_Element_String_Binary_f ;Zend_Pdf_Element_Stream_e AZend_Pdf_Element_Reference_%d MZend_Pdf_Element_Reference_Table_'c QZend_Pdf_Element_Reference_Context_b ;Zend_Pdf_Element_Object_#a IZend_Pdf_Element_Object_Stream_` =Zend_Pdf_Element_Numeric__ 7Zend_Pdf_Element_Null_^ 7Zend_Pdf_Element_Name_ ] CZend_Pdf_Element_Dictionary_\ =Zend_Pdf_Element_Boolean_[ 9Zend_Pdf_Element_Array_Z )Zend_Pdf_Color_Y 1Zend_Pdf_Color_Rgb_X 3Zend_Pdf_Color_Html_W =Zend_Pdf_Color_GrayScale_V 3Zend_Pdf_Color_Cmyk_U 'Zend_Pdf_Cmap_T AZend_Pdf_Cmap_TrimmedTable_!S EZend_Pdf_Cmap_SegmentToDelta_R AZend_Pdf_Cmap_ByteEncoding_&Q OZend_Pdf_Cmap_ByteEncoding_Static_P )Zend_Paginator_*O WZend_Paginator_ScrollingStyle_Sliding_*N WZend_Paginator_ScrollingStyle_Jumping_*M WZend_Paginator_ScrollingStyle_Elastic_&L OZend_Paginator_ScrollingStyle_All_K =Zend_Paginator_Exception_ J CZend_Paginator_Adapter_Null_$I KZend_Paginator_Adapter_Iterator_)H UZend_Paginator_Adapter_DbTableSelect_$G KZend_Paginator_Adapter_DbSelect_!F EZend_Paginator_Adapter_Array_E #Zend_OpenId_D 5Zend_OpenId_Provider_C ?Zend_OpenId_Provider_User_&B OZend_OpenId_Provider_User_Session_!A EZend_OpenId_Provider_Storage_&@ OZend_OpenId_Provider_Storage_File_? 7Zend_OpenId_Extension_> AZend_OpenId_Extension_Sreg_= 7Zend_OpenId_Exception_< 5Zend_OpenId_Consumer_!; EZend_OpenId_Consumer_Storage_&: OZend_OpenId_Consumer_Storage_File_9 Zend_Mime_8 )Zend_Mime_Part_7 /Zend_Mime_Message_6 3Zend_Mime_Exception_5 -Zend_Mime_Decode_4 #Zend_Memory_3 /Zend_Memory_Value_2 3Zend_Memory_Manager_1 7Zend_Memory_Exception_0 7Zend_Memory_Container_"/ GZend_Memory_Container_Movable_   Z  gBzc@ }U-mM4t;


h
/			r	E	h.W.
N"a#h@a3n@P            'n QZend_Search_Lucene_Search_QueryHit_)m UZend_Search_Lucene_Search_QueryEntry_.l _Zend_Search_Lucene_Search_QueryEntry_Term_2k gZend_Search_Lucene_Search_QueryEntry_Subquery_0j cZend_Search_Lucene_Search_QueryEntry_Phrase_$i KZend_Search_Lucene_Search_Query_-h ]Zend_Search_Lucene_Search_Query_Wildcard_)g UZend_Search_Lucene_Search_Query_Term_*f WZend_Search_Lucene_Search_Query_Range_+e YZend_Search_Lucene_Search_Query_Phrase_.d _Zend_Search_Lucene_Search_Query_MultiTerm_2c gZend_Search_Lucene_Search_Query_Insignificant_*b WZend_Search_Lucene_Search_Query_Fuzzy_*a WZend_Search_Lucene_Search_Query_Empty_,` [Zend_Search_Lucene_Search_Query_Boolean_:_ wZend_Search_Lucene_Search_BooleanExpressionRecognizer_^ =Zend_Search_Lucene_Proxy_%] MZend_Search_Lucene_PriorityQueue_#\ IZend_Search_Lucene_LockManager_$[ KZend_Search_Lucene_Index_Writer_&Z OZend_Search_Lucene_Index_TermInfo_"Y GZend_Search_Lucene_Index_Term_+X YZend_Search_Lucene_Index_SegmentWriter_8W sZend_Search_Lucene_Index_SegmentWriter_StreamWriter_:V wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter_+U YZend_Search_Lucene_Index_SegmentMerger_6T oZend_Search_Lucene_Index_SegmentInfoPriorityQueue_)S UZend_Search_Lucene_Index_SegmentInfo_'R QZend_Search_Lucene_Index_FieldInfo_(Q SZend_Search_Lucene_Index_DocsFilter_.P _Zend_Search_Lucene_Index_DictionaryLoader_!O EZend_Search_Lucene_FSMAction_N 9Zend_Search_Lucene_FSM_M =Zend_Search_Lucene_Field_!L EZend_Search_Lucene_Exception_ K CZend_Search_Lucene_Document_%J MZend_Search_Lucene_Document_Xlsx_%I MZend_Search_Lucene_Document_Pptx_(H SZend_Search_Lucene_Document_OpenXml_%G MZend_Search_Lucene_Document_Html_%F MZend_Search_Lucene_Document_Docx_,E [Zend_Search_Lucene_Analysis_TokenFilter_6D oZend_Search_Lucene_Analysis_TokenFilter_StopWords_7C qZend_Search_Lucene_Analysis_TokenFilter_ShortWords_:B wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8_6A oZend_Search_Lucene_Analysis_TokenFilter_LowerCase_&@ OZend_Search_Lucene_Analysis_Token_)? UZend_Search_Lucene_Analysis_Analyzer_0> cZend_Search_Lucene_Analysis_Analyzer_Common_8= sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_I< Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive_5; mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8_F: Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive_89 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum_I8 Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive_57 mZend_Search_Lucene_Analysis_Analyzer_Common_Text_F6 Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive_5 7Zend_Search_Exception_4 -Zend_Rest_Server_3 AZend_Rest_Server_Exception_2 3Zend_Rest_Exception_1 -Zend_Rest_Client_0 ;Zend_Rest_Client_Result_&/ OZend_Rest_Client_Result_Exception_. AZend_Rest_Client_Exception_- 'Zend_Registry_, -Zend_ProgressBar_+ AZend_ProgressBar_Exception_* =Zend_ProgressBar_Adapter_$) KZend_ProgressBar_Adapter_JsPush_$( KZend_ProgressBar_Adapter_JsPull_'' QZend_ProgressBar_Adapter_Exception_%& MZend_ProgressBar_Adapter_Console_% Zend_Pdf_!$ EZend_Pdf_UpdateInfoContainer_# -Zend_Pdf_Trailer_" ;Zend_Pdf_Trailer_Keeper_! AZend_Pdf_Trailer_Generator_  )Zend_Pdf_Style_ 7Zend_Pdf_StringParser_ /Zend_Pdf_Resource_# IZend_Pdf_Resource_ImageFactory_ ;Zend_Pdf_Resource_Image_! EZend_Pdf_Resource_Image_Tiff_  CZend_Pdf_Resource_Image_Png_! EZend_Pdf_Resource_Image_Jpeg_ 9Zend_Pdf_Resource_Font_! EZend_Pdf_Resource_Font_Type0_" GZend_Pdf_Resource_Font_Simple_+ YZend_Pdf_Resource_Font_Simple_Standard_   b  p9yJX+iO0~Y0




d
;
					c	7	a;[1lD|J"sS0qI.kAg8                ,P [Zend_Service_Technorati_CosmosResultSet_)O UZend_Service_Technorati_CosmosResult_+N YZend_Service_Technorati_BlogInfoResult_#M IZend_Service_Technorati_Author_L ;Zend_Service_StrikeIron_(K SZend_Service_StrikeIron_ZipCodeInfo_2J gZend_Service_StrikeIron_USAddressVerification_-I ]Zend_Service_StrikeIron_SalesUseTaxBasic_&H OZend_Service_StrikeIron_Exception_&G OZend_Service_StrikeIron_Decorator_!F EZend_Service_StrikeIron_Base_E ;Zend_Service_SlideShare_&D OZend_Service_SlideShare_SlideShow_&C OZend_Service_SlideShare_Exception_B 1Zend_Service_Simpy_$A KZend_Service_Simpy_WatchlistSet_*@ WZend_Service_Simpy_WatchlistFilterSet_'? QZend_Service_Simpy_WatchlistFilter_!> EZend_Service_Simpy_Watchlist_= ?Zend_Service_Simpy_TagSet_< 9Zend_Service_Simpy_Tag_; AZend_Service_Simpy_NoteSet_: ;Zend_Service_Simpy_Note_9 AZend_Service_Simpy_LinkSet_!8 EZend_Service_Simpy_LinkQuery_7 ;Zend_Service_Simpy_Link_6 9Zend_Service_ReCaptcha_$5 KZend_Service_ReCaptcha_Response_$4 KZend_Service_ReCaptcha_MailHide_.3 _Zend_Service_ReCaptcha_MailHide_Exception_%2 MZend_Service_ReCaptcha_Exception_1 7Zend_Service_Nirvanix_#0 IZend_Service_Nirvanix_Response_)/ UZend_Service_Nirvanix_Namespace_Imfs_). UZend_Service_Nirvanix_Namespace_Base_$- KZend_Service_Nirvanix_Exception_, 3Zend_Service_Flickr_"+ GZend_Service_Flickr_ResultSet_* AZend_Service_Flickr_Result_) ?Zend_Service_Flickr_Image_( 9Zend_Service_Exception_' 9Zend_Service_Delicious_&& OZend_Service_Delicious_SimplePost_$% KZend_Service_Delicious_PostList_ $ CZend_Service_Delicious_Post_%# MZend_Service_Delicious_Exception_ " CZend_Service_Audioscrobbler_! 3Zend_Service_Amazon_'  QZend_Service_Amazon_SimilarProduct_" GZend_Service_Amazon_ResultSet_ ?Zend_Service_Amazon_Query_! EZend_Service_Amazon_OfferSet_ ?Zend_Service_Amazon_Offer_& OZend_Service_Amazon_ListmaniaList_ =Zend_Service_Amazon_Item_ ?Zend_Service_Amazon_Image_( SZend_Service_Amazon_EditorialReview_' QZend_Service_Amazon_CustomerReview_$ KZend_Service_Amazon_Accessories_ 5Zend_Service_Akismet_ 7Zend_Service_Abstract_ 9Zend_Server_Reflection_' QZend_Server_Reflection_ReturnValue_% MZend_Server_Reflection_Prototype_% MZend_Server_Reflection_Parameter_  CZend_Server_Reflection_Node_" GZend_Server_Reflection_Method_$ KZend_Server_Reflection_Function_- ]Zend_Server_Reflection_Function_Abstract_% MZend_Server_Reflection_Exception_!
 EZend_Server_Reflection_Class_!	 EZend_Server_Method_Prototype_! EZend_Server_Method_Parameter_" GZend_Server_Method_Definition_  CZend_Server_Method_Callback_ 7Zend_Server_Exception_ 9Zend_Server_Definition_ /Zend_Server_Cache_ 5Zend_Server_Abstract_ 1Zend_Search_Lucene_$  KZend_Search_Lucene_Storage_File_+ YZend_Search_Lucene_Storage_File_Memory_/~ aZend_Search_Lucene_Storage_File_Filesystem_)} UZend_Search_Lucene_Storage_Directory_4| kZend_Search_Lucene_Storage_Directory_Filesystem_%{ MZend_Search_Lucene_Search_Weight_*z WZend_Search_Lucene_Search_Weight_Term_,y [Zend_Search_Lucene_Search_Weight_Phrase_/x aZend_Search_Lucene_Search_Weight_MultiTerm_+w YZend_Search_Lucene_Search_Weight_Empty_-v ]Zend_Search_Lucene_Search_Weight_Boolean_)u UZend_Search_Lucene_Search_Similarity_1t eZend_Search_Lucene_Search_Similarity_Default_)s UZend_Search_Lucene_Search_QueryToken_3r iZend_Search_Lucene_Search_QueryParserException_1q eZend_Search_Lucene_Search_QueryParserContext_*p WZend_Search_Lucene_Search_QueryParser_)o UZend_Search_Lucene_Search_QueryLexer_   j  oAe;hH!nBsI




_
7
					l	D		zW8xZ1	oX*lP-eI1_8cD#sO,                     : 7Zend_Validate_Between_9 7Zend_Validate_Barcode_8 AZend_Validate_Barcode_UpcA_ 7 CZend_Validate_Barcode_Ean13_6 3Zend_Validate_Alpha_5 3Zend_Validate_Alnum_4 9Zend_Validate_Abstract_3 Zend_Uri_2 'Zend_Uri_Http_1 1Zend_Uri_Exception_0 )Zend_Translate_/ =Zend_Translate_Exception_. 9Zend_Translate_Adapter_!- EZend_Translate_Adapter_XmlTm_!, EZend_Translate_Adapter_Xliff_+ AZend_Translate_Adapter_Tmx_* AZend_Translate_Adapter_Tbx_) ?Zend_Translate_Adapter_Qt_( AZend_Translate_Adapter_Ini_#' IZend_Translate_Adapter_Gettext_& AZend_Translate_Adapter_Csv_!% EZend_Translate_Adapter_Array_$ 'Zend_TimeSync_# 1Zend_TimeSync_Sntp_" 9Zend_TimeSync_Protocol_! /Zend_TimeSync_Ntp_  ;Zend_TimeSync_Exception_ +Zend_Text_Table_ 3Zend_Text_Table_Row_ ?Zend_Text_Table_Exception_& OZend_Text_Table_Decorator_Unicode_$ KZend_Text_Table_Decorator_Ascii_ 9Zend_Text_Table_Column_ 3Zend_Text_MultiByte_ -Zend_Text_Figlet_ AZend_Text_Figlet_Exception_ 3Zend_Text_Exception_) UZend_Test_PHPUnit_ControllerTestCase_0 cZend_Test_PHPUnit_Constraint_ResponseHeader_* WZend_Test_PHPUnit_Constraint_Redirect_+ YZend_Test_PHPUnit_Constraint_Exception_* WZend_Test_PHPUnit_Constraint_DomQuery_ )Zend_Soap_Wsdl_/ aZend_Soap_Wsdl_Strategy_DefaultComplexType_0 cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence_/ aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex_$ KZend_Soap_Wsdl_Strategy_AnyType_% MZend_Soap_Wsdl_Strategy_Abstract_
 7Zend_Soap_Wsdl_Parser_!	 EZend_Soap_Wsdl_Parser_Result_ =Zend_Soap_Wsdl_Exception_! EZend_Soap_Wsdl_CodeGenerator_ -Zend_Soap_Server_ AZend_Soap_Server_Exception_ -Zend_Soap_Client_ 9Zend_Soap_Client_Local_ AZend_Soap_Client_Exception_ ;Zend_Soap_Client_DotNet_  ;Zend_Soap_Client_Common_ 9Zend_Soap_AutoDiscover_%~ MZend_Soap_AutoDiscover_Exception_} %Zend_Session_)| UZend_Session_Validator_HttpUserAgent_${ KZend_Session_Validator_Abstract_'z QZend_Session_SaveHandler_Exception_%y MZend_Session_SaveHandler_DbTable_x 9Zend_Session_Namespace_w 9Zend_Session_Exception_v 7Zend_Session_Abstract_u 1Zend_Service_Yahoo_$t KZend_Service_Yahoo_WebResultSet_!s EZend_Service_Yahoo_WebResult_&r OZend_Service_Yahoo_VideoResultSet_#q IZend_Service_Yahoo_VideoResult_!p EZend_Service_Yahoo_ResultSet_o ?Zend_Service_Yahoo_Result_)n UZend_Service_Yahoo_PageDataResultSet_&m OZend_Service_Yahoo_PageDataResult_%l MZend_Service_Yahoo_NewsResultSet_"k GZend_Service_Yahoo_NewsResult_&j OZend_Service_Yahoo_LocalResultSet_#i IZend_Service_Yahoo_LocalResult_+h YZend_Service_Yahoo_InlinkDataResultSet_(g SZend_Service_Yahoo_InlinkDataResult_&f OZend_Service_Yahoo_ImageResultSet_#e IZend_Service_Yahoo_ImageResult_d =Zend_Service_Yahoo_Image_c 5Zend_Service_Twitter_ b CZend_Service_Twitter_Search_#a IZend_Service_Twitter_Exception_` ;Zend_Service_Technorati_#_ IZend_Service_Technorati_Weblog_"^ GZend_Service_Technorati_Utils_*] WZend_Service_Technorati_TagsResultSet_'\ QZend_Service_Technorati_TagsResult_)[ UZend_Service_Technorati_TagResultSet_&Z OZend_Service_Technorati_TagResult_,Y [Zend_Service_Technorati_SearchResultSet_)X UZend_Service_Technorati_SearchResult_&W OZend_Service_Technorati_ResultSet_#V IZend_Service_Technorati_Result_*U WZend_Service_Technorati_KeyInfoResult_*T WZend_Service_Technorati_GetInfoResult_&S OZend_Service_Technorati_Exception_1R eZend_Service_Technorati_DailyCountsResultSet_.Q _Zend_Service_Technorati_DailyCountsResult_   m  iH'dDlL,
nL*cE+





j
O
3
					k	G	!oL!oK)xU0~X:~Fl>W7
d: +' YZend_XmlRpc_Client_IntrospectException_%& MZend_XmlRpc_Client_HttpException_&% OZend_XmlRpc_Client_FaultException_!$ EZend_XmlRpc_Client_Exception_&# OZend_Wildfire_Protocol_JsonStream_!" EZend_Wildfire_Plugin_FirePhp_.! _Zend_Wildfire_Plugin_FirePhp_TableMessage_)  UZend_Wildfire_Plugin_FirePhp_Message_ ;Zend_Wildfire_Exception_& OZend_Wildfire_Channel_HttpHeaders_ Zend_View_ -Zend_View_Stream_ 5Zend_View_Helper_Url_ AZend_View_Helper_Translate_) UZend_View_Helper_RenderToPlaceholder_! EZend_View_Helper_Placeholder_* WZend_View_Helper_Placeholder_Registry_4 kZend_View_Helper_Placeholder_Registry_Exception_+ YZend_View_Helper_Placeholder_Container_6 oZend_View_Helper_Placeholder_Container_Standalone_5 mZend_View_Helper_Placeholder_Container_Exception_4 kZend_View_Helper_Placeholder_Container_Abstract_! EZend_View_Helper_PartialLoop_ =Zend_View_Helper_Partial_' QZend_View_Helper_Partial_Exception_' QZend_View_Helper_PaginationControl_ ;Zend_View_Helper_Layout_ 7Zend_View_Helper_Json_" GZend_View_Helper_InlineScript_#
 IZend_View_Helper_HtmlQuicktime_	 ?Zend_View_Helper_HtmlPage_  CZend_View_Helper_HtmlObject_ ?Zend_View_Helper_HtmlList_ AZend_View_Helper_HtmlFlash_! EZend_View_Helper_HtmlElement_ AZend_View_Helper_HeadTitle_ AZend_View_Helper_HeadStyle_  CZend_View_Helper_HeadScript_ ?Zend_View_Helper_HeadMeta_  ?Zend_View_Helper_HeadLink_" GZend_View_Helper_FormTextarea_~ ?Zend_View_Helper_FormText_ } CZend_View_Helper_FormSubmit_ | CZend_View_Helper_FormSelect_{ AZend_View_Helper_FormReset_z AZend_View_Helper_FormRadio_"y GZend_View_Helper_FormPassword_x ?Zend_View_Helper_FormNote_'w QZend_View_Helper_FormMultiCheckbox_v AZend_View_Helper_FormLabel_u AZend_View_Helper_FormImage_ t CZend_View_Helper_FormHidden_s ?Zend_View_Helper_FormFile_ r CZend_View_Helper_FormErrors_!q EZend_View_Helper_FormElement_"p GZend_View_Helper_FormCheckbox_ o CZend_View_Helper_FormButton_n 7Zend_View_Helper_Form_m ?Zend_View_Helper_Fieldset_l =Zend_View_Helper_Doctype_!k EZend_View_Helper_DeclareVars_j ;Zend_View_Helper_Action_i ?Zend_View_Helper_Abstract_h 3Zend_View_Exception_g 1Zend_View_Abstract_f %Zend_Version_e 'Zend_Validate_d AZend_Validate_StringLength_c 3Zend_Validate_Regex_b 9Zend_Validate_NotEmpty_a 9Zend_Validate_LessThan_` -Zend_Validate_Ip__ /Zend_Validate_Int_^ 7Zend_Validate_InArray_] ;Zend_Validate_Identical_\ 9Zend_Validate_Hostname_[ ?Zend_Validate_Hostname_Se_Z ?Zend_Validate_Hostname_No_Y ?Zend_Validate_Hostname_Li_X ?Zend_Validate_Hostname_Hu_W ?Zend_Validate_Hostname_Fi_V ?Zend_Validate_Hostname_De_U ?Zend_Validate_Hostname_Ch_T ?Zend_Validate_Hostname_At_S /Zend_Validate_Hex_R ?Zend_Validate_GreaterThan_Q 3Zend_Validate_Float_P ?Zend_Validate_File_Upload_O ;Zend_Validate_File_Size_N ;Zend_Validate_File_Sha1_!M EZend_Validate_File_NotExists_ L CZend_Validate_File_MimeType_K 9Zend_Validate_File_Md5_J AZend_Validate_File_IsImage_$I KZend_Validate_File_IsCompressed_!H EZend_Validate_File_ImageSize_G ;Zend_Validate_File_Hash_!F EZend_Validate_File_FilesSize_!E EZend_Validate_File_Extension_D ?Zend_Validate_File_Exists_'C QZend_Validate_File_ExcludeMimeType_(B SZend_Validate_File_ExcludeExtension_A =Zend_Validate_File_Crc32_@ =Zend_Validate_File_Count_? ;Zend_Validate_Exception_> AZend_Validate_EmailAddress_= 5Zend_Validate_Digits_< 1Zend_Validate_Date_; 3Zend_Validate_Ccnum_   s qW6sR0jI%hM3
e>




a
?
!
					r	Q	.		vF^,}aH$dB"cA pQ5kL1k9                         . _Zend_Controller_Action_Helper_AjaxContext`. _Zend_Controller_Action_Helper_ActionStack`+ YZend_Controller_Action_Helper_Abstract`% MZend_Controller_Action_Exception` 3Zend_Console_Getopt`" GZend_Console_Getopt_Exception` #Zend_Config` +Zend_Config_Xml` 1Zend_Config_Writer` 9Zend_Config_Writer_Xml` 9Zend_Config_Writer_Ini` =Zend_Config_Writer_Array` +Zend_Config_Ini` 7Zend_Config_Exception` /Zend_Captcha_Word` 9Zend_Captcha_ReCaptcha`
 1Zend_Captcha_Image`	 3Zend_Captcha_Figlet` 9Zend_Captcha_Exception` /Zend_Captcha_Dumb` /Zend_Captcha_Base` !Zend_Cache` =Zend_Cache_Frontend_Page` AZend_Cache_Frontend_Output`! EZend_Cache_Frontend_Function` =Zend_Cache_Frontend_File`  ?Zend_Cache_Frontend_Class` 5Zend_Cache_Exception`~ +Zend_Cache_Core`} 1Zend_Cache_Backend`$| KZend_Cache_Backend_ZendPlatform`{ ?Zend_Cache_Backend_Xcache`!z EZend_Cache_Backend_TwoLevels`y ;Zend_Cache_Backend_Test`x ?Zend_Cache_Backend_Sqlite`!w EZend_Cache_Backend_Memcached`v ;Zend_Cache_Backend_File`u 9Zend_Cache_Backend_Apc`t Zend_Auth`s ?Zend_Auth_Storage_Session`$r KZend_Auth_Storage_NonPersistent` q CZend_Auth_Storage_Exception`p -Zend_Auth_Result`o 3Zend_Auth_Exception`n =Zend_Auth_Adapter_OpenId`m 9Zend_Auth_Adapter_Ldap`l AZend_Auth_Adapter_InfoCard`k 9Zend_Auth_Adapter_Http`)j UZend_Auth_Adapter_Http_Resolver_File`.i _Zend_Auth_Adapter_Http_Resolver_Exception` h CZend_Auth_Adapter_Exception`g =Zend_Auth_Adapter_Digest`f ?Zend_Auth_Adapter_DbTable`e ?Zend_Amf_Value_TraitsInfo`-d ]Zend_Amf_Value_Messaging_RemotingMessage`*c WZend_Amf_Value_Messaging_ErrorMessage`,b [Zend_Amf_Value_Messaging_CommandMessage`*a WZend_Amf_Value_Messaging_AsyncMessage`0` cZend_Amf_Value_Messaging_AcknowledgeMessage`-_ ]Zend_Amf_Value_Messaging_AbstractMessage`!^ EZend_Amf_Value_MessageHeader`] AZend_Amf_Value_MessageBody`\ =Zend_Amf_Value_ByteArray`[ AZend_Amf_Util_BinaryStream`Z +Zend_Amf_Server`Y ?Zend_Amf_Server_Exception`X /Zend_Amf_Response`W 9Zend_Amf_Response_Http`V -Zend_Amf_Request`U 7Zend_Amf_Request_Http`T ?Zend_Amf_Parse_TypeLoader`S ?Zend_Amf_Parse_Serializer` R CZend_Amf_Parse_OutputStream`Q AZend_Amf_Parse_InputStream` P CZend_Amf_Parse_Deserializer`#O IZend_Amf_Parse_Amf3_Serializer`%N MZend_Amf_Parse_Amf3_Deserializer`#M IZend_Amf_Parse_Amf0_Serializer`%L MZend_Amf_Parse_Amf0_Deserializer`K 1Zend_Amf_Exception`J 1Zend_Amf_Constants`I Zend_Acl`H 'Zend_Acl_Role`G 9Zend_Acl_Role_Registry`%F MZend_Acl_Role_Registry_Exception`E /Zend_Acl_Resource`D 1Zend_Acl_Exception`C /Zend_XmlRpc_Value_B =Zend_XmlRpc_Value_Struct_A =Zend_XmlRpc_Value_String_@ =Zend_XmlRpc_Value_Scalar_? 7Zend_XmlRpc_Value_Nil_> ?Zend_XmlRpc_Value_Integer_ = CZend_XmlRpc_Value_Exception_< =Zend_XmlRpc_Value_Double_; AZend_XmlRpc_Value_DateTime_!: EZend_XmlRpc_Value_Collection_9 ?Zend_XmlRpc_Value_Boolean_8 =Zend_XmlRpc_Value_Base64_7 ;Zend_XmlRpc_Value_Array_6 1Zend_XmlRpc_Server_5 ?Zend_XmlRpc_Server_System_4 =Zend_XmlRpc_Server_Fault_!3 EZend_XmlRpc_Server_Exception_2 =Zend_XmlRpc_Server_Cache_1 5Zend_XmlRpc_Response_0 ?Zend_XmlRpc_Response_Http_/ 3Zend_XmlRpc_Request_. ?Zend_XmlRpc_Request_Stdin_- =Zend_XmlRpc_Request_Http_, /Zend_XmlRpc_Fault_+ 7Zend_XmlRpc_Exception_* 1Zend_XmlRpc_Client_#) IZend_XmlRpc_Client_ServerProxy_+( YZend_XmlRpc_Client_ServerIntrospection_   c  dG" W[0hHtK*



y
P
%					z	T	3	zN*iF)g9h=mJ* V-[2\6       6 ;Zend_Acl_Role_Interfacea 5 CZend_Acl_Resource_Interfacea4 ?Zend_Acl_Assert_Interfacea#3 IZend_Wildfire_Plugin_Interface`$2 KZend_Wildfire_Channel_Interface`1 3Zend_View_Interface`0 AZend_View_Helper_Interface`/ ;Zend_Validate_Interface`%. MZend_Validate_Hostname_Interface`(- SZend_Text_Table_Decorator_Interface`&, OZend_Soap_Wsdl_Strategy_Interface`%+ MZend_Session_Validator_Interface`'* QZend_Session_SaveHandler_Interface`) 7Zend_Server_Interface`!( EZend_Search_Lucene_Interface`' 9Zend_Request_Interface`& ?Zend_Pdf_Filter_Interface`&% OZend_Pdf_ElementFactory_Interface`,$ [Zend_Paginator_ScrollingStyle_Interface`%# MZend_Paginator_Adapter_Interface`$" KZend_Memory_Container_Interface`)! UZend_Mail_Storage_Writable_Interface`'  QZend_Mail_Storage_Folder_Interface` =Zend_Mail_Part_Interface`  CZend_Mail_Message_Interface`! EZend_Log_Formatter_Interface` ?Zend_Log_Filter_Interface`' QZend_Loader_PluginLoader_Interface`3 iZend_InfoCard_Xml_Security_Transform_Interface`( SZend_InfoCard_Xml_KeyInfo_Interface`( SZend_InfoCard_Xml_Element_Interface`* WZend_InfoCard_Xml_Assertion_Interface`- ]Zend_InfoCard_Cipher_Symmetric_Interface`7 qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface`7 qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interface`+ YZend_InfoCard_Cipher_Pki_Rsa_Interface`' QZend_InfoCard_Cipher_Pki_Interface`$ KZend_InfoCard_Adapter_Interface`' QZend_Http_Client_Adapter_Interface` AZend_Gdata_App_MediaSource`" GZend_Form_Decorator_Interface` 7Zend_Filter_Interface`  CZend_Feed_Builder_Interface`  CZend_Db_Statement_Interface`+
 YZend_Controller_Router_Route_Interface`%	 MZend_Controller_Router_Interface`) UZend_Controller_Dispatcher_Interface` 5Zend_Captcha_Adapter`! EZend_Cache_Backend_Interface`) UZend_Cache_Backend_ExtendedInterface`  CZend_Auth_Storage_Interface`  CZend_Auth_Adapter_Interface`. _Zend_Auth_Adapter_Http_Resolver_Interface` ;Zend_Acl_Role_Interface`   CZend_Acl_Resource_Interface` ?Zend_Acl_Assert_Interface`#~ IZend_Wildfire_Plugin_Interface_$} KZend_Wildfire_Channel_Interface_| 3Zend_View_Interface_{ AZend_View_Helper_Interface_z ;Zend_Validate_Interface_%y MZend_Validate_Hostname_Interface_(x SZend_Text_Table_Decorator_Interface_&w OZend_Soap_Wsdl_Strategy_Interface_%v MZend_Session_Validator_Interface_'u QZend_Session_SaveHandler_Interface_t 7Zend_Server_Interface_!s EZend_Search_Lucene_Interface_r 9Zend_Request_Interface_q ?Zend_Pdf_Filter_Interface_&p OZend_Pdf_ElementFactory_Interface_,o [Zend_Paginator_ScrollingStyle_Interface_%n MZend_Paginator_Adapter_Interface_$m KZend_Memory_Container_Interface_)l UZend_Mail_Storage_Writable_Interface_'k QZend_Mail_Storage_Folder_Interface_j =Zend_Mail_Part_Interface_ i CZend_Mail_Message_Interface_!h EZend_Log_Formatter_Interface_g ?Zend_Log_Filter_Interface_'f QZend_Loader_PluginLoader_Interface_3e iZend_InfoCard_Xml_Security_Transform_Interface_(d SZend_InfoCard_Xml_KeyInfo_Interface_(c SZend_InfoCard_Xml_Element_Interface_*b WZend_InfoCard_Xml_Assertion_Interface_-a ]Zend_InfoCard_Cipher_Symmetric_Interface_7` qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface_7_ qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interface_+^ YZend_InfoCard_Cipher_Pki_Rsa_Interface_'] QZend_InfoCard_Cipher_Pki_Interface_$\ KZend_InfoCard_Adapter_Interface_'[ QZend_Http_Client_Adapter_Interface_Z AZend_Gdata_App_MediaSource_"Y GZend_Form_Decorator_Interface_X 7Zend_Filter_Interface_ W CZend_Feed_Builder_Interface_ V CZend_Db_Statement_Interface_+U YZend_Controller_Router_Route_Interface_%T MZend_Controller_Router_Interface_   g M^+zM!h<mF



x
P
'
 			y	M	"eI7jA"sQ1yZA 	tS(nK'|_I9&_2                                            , [Zend_Dojo_Form_Decorator_DijitContainer`)  UZend_Dojo_Form_Decorator_ContentPane`- ]Zend_Dojo_Form_Decorator_BorderContainer`+~ YZend_Dojo_Form_Decorator_AccordionPane`0} cZend_Dojo_Form_Decorator_AccordionContainer`| 3Zend_Dojo_Exception`{ )Zend_Dojo_Data`z !Zend_Debug`y Zend_Db`x 'Zend_Db_Table`w 5Zend_Db_Table_Select`#v IZend_Db_Table_Select_Exception`u 5Zend_Db_Table_Rowset`#t IZend_Db_Table_Rowset_Exception`"s GZend_Db_Table_Rowset_Abstract`r /Zend_Db_Table_Row` q CZend_Db_Table_Row_Exception`p AZend_Db_Table_Row_Abstract`o ;Zend_Db_Table_Exception`n 9Zend_Db_Table_Abstract`m /Zend_Db_Statement`l 7Zend_Db_Statement_Pdo`k ?Zend_Db_Statement_Pdo_Ibm`j =Zend_Db_Statement_Oracle`'i QZend_Db_Statement_Oracle_Exception`h =Zend_Db_Statement_Mysqli`'g QZend_Db_Statement_Mysqli_Exception` f CZend_Db_Statement_Exception`e 7Zend_Db_Statement_Db2`$d KZend_Db_Statement_Db2_Exception`c )Zend_Db_Select`b =Zend_Db_Select_Exception`a -Zend_Db_Profiler`` 9Zend_Db_Profiler_Query`_ =Zend_Db_Profiler_Firebug`^ AZend_Db_Profiler_Exception`] %Zend_Db_Expr`\ /Zend_Db_Exception`[ AZend_Db_Adapter_Pdo_Sqlite`Z ?Zend_Db_Adapter_Pdo_Pgsql`Y ;Zend_Db_Adapter_Pdo_Oci`X ?Zend_Db_Adapter_Pdo_Mysql`W ?Zend_Db_Adapter_Pdo_Mssql`V ;Zend_Db_Adapter_Pdo_Ibm` U CZend_Db_Adapter_Pdo_Ibm_Ids` T CZend_Db_Adapter_Pdo_Ibm_Db2`!S EZend_Db_Adapter_Pdo_Abstract`R 9Zend_Db_Adapter_Oracle`%Q MZend_Db_Adapter_Oracle_Exception`P 9Zend_Db_Adapter_Mysqli`%O MZend_Db_Adapter_Mysqli_Exception`N ?Zend_Db_Adapter_Exception`M 3Zend_Db_Adapter_Db2`"L GZend_Db_Adapter_Db2_Exception`K =Zend_Db_Adapter_Abstract`J Zend_Date`I 3Zend_Date_Exception`H 5Zend_Date_DateObject`G -Zend_Date_Cities`F 'Zend_Currency`E ;Zend_Currency_Exception`!D EZend_Controller_Router_Route`(C SZend_Controller_Router_Route_Static`'B QZend_Controller_Router_Route_Regex`(A SZend_Controller_Router_Route_Module`*@ WZend_Controller_Router_Route_Hostname`'? QZend_Controller_Router_Route_Chain`*> WZend_Controller_Router_Route_Abstract`#= IZend_Controller_Router_Rewrite`%< MZend_Controller_Router_Exception`$; KZend_Controller_Router_Abstract`*: WZend_Controller_Response_HttpTestCase`"9 GZend_Controller_Response_Http`'8 QZend_Controller_Response_Exception`!7 EZend_Controller_Response_Cli`&6 OZend_Controller_Response_Abstract`#5 IZend_Controller_Request_Simple`)4 UZend_Controller_Request_HttpTestCase`!3 EZend_Controller_Request_Http`&2 OZend_Controller_Request_Exception`&1 OZend_Controller_Request_Apache404`%0 MZend_Controller_Request_Abstract`(/ SZend_Controller_Plugin_ErrorHandler`". GZend_Controller_Plugin_Broker`'- QZend_Controller_Plugin_ActionStack`$, KZend_Controller_Plugin_Abstract`+ 7Zend_Controller_Front`* ?Zend_Controller_Exception`() SZend_Controller_Dispatcher_Standard`)( UZend_Controller_Dispatcher_Exception`(' SZend_Controller_Dispatcher_Abstract`& 9Zend_Controller_Action`(% SZend_Controller_Action_HelperBroker`6$ oZend_Controller_Action_HelperBroker_PriorityStack`/# aZend_Controller_Action_Helper_ViewRenderer`&" OZend_Controller_Action_Helper_Url`-! ]Zend_Controller_Action_Helper_Redirector`'  QZend_Controller_Action_Helper_Json`1 eZend_Controller_Action_Helper_FlashMessenger`0 cZend_Controller_Action_Helper_ContextSwitch`< {Zend_Controller_Action_Helper_AutoCompleteScriptaculous`3 iZend_Controller_Action_Helper_AutoCompleteDojo`8 sZend_Controller_Action_Helper_AutoComplete_Abstract`   h  wGP% Q$wK#rS<



k
D
				w	J	U)xS&|V,cL5v\B!xP+nK+wZ8                                i 9Zend_Filter_StringTrim`h ?Zend_Filter_StringToUpper`g ?Zend_Filter_StringToLower`f 5Zend_Filter_RealPath`e ;Zend_Filter_PregReplace`d +Zend_Filter_Int`c /Zend_Filter_Input`b 7Zend_Filter_Inflector`a =Zend_Filter_HtmlEntities`` AZend_Filter_File_UpperCase`_ ;Zend_Filter_File_Rename`^ AZend_Filter_File_LowerCase`] 7Zend_Filter_Exception`\ +Zend_Filter_Dir`[ 1Zend_Filter_Digits`Z 5Zend_Filter_BaseName`Y /Zend_Filter_Alpha`X /Zend_Filter_Alnum`W 1Zend_File_Transfer`!V EZend_File_Transfer_Exception`$U KZend_File_Transfer_Adapter_Http`(T SZend_File_Transfer_Adapter_Abstract`S Zend_Feed`R 'Zend_Feed_Rss`Q 3Zend_Feed_Exception`P 3Zend_Feed_Entry_Rss`O 5Zend_Feed_Entry_Atom`N =Zend_Feed_Entry_Abstract`M /Zend_Feed_Element`L /Zend_Feed_Builder`K =Zend_Feed_Builder_Header`$J KZend_Feed_Builder_Header_Itunes` I CZend_Feed_Builder_Exception`H ;Zend_Feed_Builder_Entry`G )Zend_Feed_Atom`F 1Zend_Feed_Abstract`E )Zend_Exception`D )Zend_Dom_Query`C 7Zend_Dom_Query_Result`B =Zend_Dom_Query_Css2Xpath`A 1Zend_Dom_Exception`@ Zend_Dojo`)? UZend_Dojo_View_Helper_VerticalSlider`,> [Zend_Dojo_View_Helper_ValidationTextBox`&= OZend_Dojo_View_Helper_TimeTextBox`"< GZend_Dojo_View_Helper_TextBox`#; IZend_Dojo_View_Helper_Textarea`': QZend_Dojo_View_Helper_TabContainer`'9 QZend_Dojo_View_Helper_SubmitButton`)8 UZend_Dojo_View_Helper_StackContainer`)7 UZend_Dojo_View_Helper_SplitContainer`!6 EZend_Dojo_View_Helper_Slider`)5 UZend_Dojo_View_Helper_SimpleTextarea`&4 OZend_Dojo_View_Helper_RadioButton`*3 WZend_Dojo_View_Helper_PasswordTextBox`(2 SZend_Dojo_View_Helper_NumberTextBox`(1 SZend_Dojo_View_Helper_NumberSpinner`+0 YZend_Dojo_View_Helper_HorizontalSlider`/ AZend_Dojo_View_Helper_Form`*. WZend_Dojo_View_Helper_FilteringSelect`!- EZend_Dojo_View_Helper_Editor`, AZend_Dojo_View_Helper_Dojo`)+ UZend_Dojo_View_Helper_Dojo_Container`)* UZend_Dojo_View_Helper_DijitContainer` ) CZend_Dojo_View_Helper_Dijit`&( OZend_Dojo_View_Helper_DateTextBox`*' WZend_Dojo_View_Helper_CurrencyTextBox`&& OZend_Dojo_View_Helper_ContentPane`#% IZend_Dojo_View_Helper_ComboBox`#$ IZend_Dojo_View_Helper_CheckBox`!# EZend_Dojo_View_Helper_Button`*" WZend_Dojo_View_Helper_BorderContainer`(! SZend_Dojo_View_Helper_AccordionPane`-  ]Zend_Dojo_View_Helper_AccordionContainer` =Zend_Dojo_View_Exception` )Zend_Dojo_Form` 9Zend_Dojo_Form_SubForm`* WZend_Dojo_Form_Element_VerticalSlider`- ]Zend_Dojo_Form_Element_ValidationTextBox`' QZend_Dojo_Form_Element_TimeTextBox`# IZend_Dojo_Form_Element_TextBox`$ KZend_Dojo_Form_Element_Textarea`( SZend_Dojo_Form_Element_SubmitButton`" GZend_Dojo_Form_Element_Slider`' QZend_Dojo_Form_Element_RadioButton`+ YZend_Dojo_Form_Element_PasswordTextBox`) UZend_Dojo_Form_Element_NumberTextBox`) UZend_Dojo_Form_Element_NumberSpinner`, [Zend_Dojo_Form_Element_HorizontalSlider`+ YZend_Dojo_Form_Element_FilteringSelect`" GZend_Dojo_Form_Element_Editor`& OZend_Dojo_Form_Element_DijitMulti`! EZend_Dojo_Form_Element_Dijit`' QZend_Dojo_Form_Element_DateTextBox`+ YZend_Dojo_Form_Element_CurrencyTextBox`$
 KZend_Dojo_Form_Element_ComboBox`$	 KZend_Dojo_Form_Element_CheckBox`" GZend_Dojo_Form_Element_Button`  CZend_Dojo_Form_DisplayGroup`* WZend_Dojo_Form_Decorator_TabContainer`, [Zend_Dojo_Form_Decorator_StackContainer`, [Zend_Dojo_Form_Decorator_SplitContainer`' QZend_Dojo_Form_Decorator_DijitForm`* WZend_Dojo_Form_Decorator_DijitElement`   h  i:d;qL'gAfD"




h
F
#						`	8	mN+V:}S*]2vN#Z3
Y4bF                     Q 1Zend_Gdata_AuthSub`P )Zend_Gdata_App`$O KZend_Gdata_App_VersionException`N 3Zend_Gdata_App_Util`#M IZend_Gdata_App_MediaFileSource`L ?Zend_Gdata_App_MediaEntry`2K gZend_Gdata_App_LoggingHttpClientAdapterSocket`J AZend_Gdata_App_IOException`,I [Zend_Gdata_App_InvalidArgumentException`!H EZend_Gdata_App_HttpException`$G KZend_Gdata_App_FeedSourceParent`#F IZend_Gdata_App_FeedEntryParent`E 3Zend_Gdata_App_Feed`D =Zend_Gdata_App_Extension`!C EZend_Gdata_App_Extension_Uri`%B MZend_Gdata_App_Extension_Updated`#A IZend_Gdata_App_Extension_Title`"@ GZend_Gdata_App_Extension_Text`%? MZend_Gdata_App_Extension_Summary`&> OZend_Gdata_App_Extension_Subtitle`$= KZend_Gdata_App_Extension_Source`$< KZend_Gdata_App_Extension_Rights`'; QZend_Gdata_App_Extension_Published`$: KZend_Gdata_App_Extension_Person`"9 GZend_Gdata_App_Extension_Name`"8 GZend_Gdata_App_Extension_Logo`"7 GZend_Gdata_App_Extension_Link` 6 CZend_Gdata_App_Extension_Id`"5 GZend_Gdata_App_Extension_Icon`'4 QZend_Gdata_App_Extension_Generator`#3 IZend_Gdata_App_Extension_Email`%2 MZend_Gdata_App_Extension_Element`#1 IZend_Gdata_App_Extension_Draft`%0 MZend_Gdata_App_Extension_Control`)/ UZend_Gdata_App_Extension_Contributor`%. MZend_Gdata_App_Extension_Content`&- OZend_Gdata_App_Extension_Category`$, KZend_Gdata_App_Extension_Author`+ =Zend_Gdata_App_Exception`* 5Zend_Gdata_App_Entry`,) [Zend_Gdata_App_CaptchaRequiredException`#( IZend_Gdata_App_BaseMediaSource`' 3Zend_Gdata_App_Base`*& WZend_Gdata_App_BadMethodCallException`!% EZend_Gdata_App_AuthException`$ Zend_Form`# /Zend_Form_SubForm`" 3Zend_Form_Exception`! /Zend_Form_Element`  ;Zend_Form_Element_Xhtml` AZend_Form_Element_Textarea` 9Zend_Form_Element_Text` =Zend_Form_Element_Submit` =Zend_Form_Element_Select` ;Zend_Form_Element_Reset` ;Zend_Form_Element_Radio` AZend_Form_Element_Password`" GZend_Form_Element_Multiselect`$ KZend_Form_Element_MultiCheckbox` ;Zend_Form_Element_Multi` ;Zend_Form_Element_Image` =Zend_Form_Element_Hidden` 9Zend_Form_Element_Hash` 9Zend_Form_Element_File`  CZend_Form_Element_Exception` AZend_Form_Element_Checkbox` ?Zend_Form_Element_Captcha` =Zend_Form_Element_Button` 9Zend_Form_DisplayGroup`# IZend_Form_Decorator_ViewScript`# IZend_Form_Decorator_ViewHelper`(
 SZend_Form_Decorator_PrepareElements`	 ?Zend_Form_Decorator_Label` ?Zend_Form_Decorator_Image`  CZend_Form_Decorator_HtmlTag`# IZend_Form_Decorator_FormErrors`% MZend_Form_Decorator_FormElements` =Zend_Form_Decorator_Form` =Zend_Form_Decorator_File`! EZend_Form_Decorator_Fieldset`" GZend_Form_Decorator_Exception`  AZend_Form_Decorator_Errors`$ KZend_Form_Decorator_DtDdWrapper`$~ KZend_Form_Decorator_Description` } CZend_Form_Decorator_Captcha`%| MZend_Form_Decorator_Captcha_Word`!{ EZend_Form_Decorator_Callback`!z EZend_Form_Decorator_Abstract`y #Zend_Filter`+x YZend_Filter_Word_UnderscoreToSeparator`&w OZend_Filter_Word_UnderscoreToDash`+v YZend_Filter_Word_UnderscoreToCamelCase`*u WZend_Filter_Word_SeparatorToSeparator`%t MZend_Filter_Word_SeparatorToDash`*s WZend_Filter_Word_SeparatorToCamelCase`(r SZend_Filter_Word_Separator_Abstract`&q OZend_Filter_Word_DashToUnderscore`%p MZend_Filter_Word_DashToSeparator`%o MZend_Filter_Word_DashToCamelCase`+n YZend_Filter_Word_CamelCaseToUnderscore`*m WZend_Filter_Word_CamelCaseToSeparator`%l MZend_Filter_Word_CamelCaseToDash`k 7Zend_Filter_StripTags`j ?Zend_Filter_StripNewlines`   ^  }Li8	[5X)]7




f
N
				[	*kM4jBvO2wN `5h@}V.}P'                 (/ SZend_Gdata_Gapps_Extension_Nickname`$. KZend_Gdata_Gapps_Extension_Name`%- MZend_Gdata_Gapps_Extension_Login`), UZend_Gdata_Gapps_Extension_EmailList`+ 9Zend_Gdata_Gapps_Error`-* ]Zend_Gdata_Gapps_EmailListRecipientQuery`,) [Zend_Gdata_Gapps_EmailListRecipientFeed`-( ]Zend_Gdata_Gapps_EmailListRecipientEntry`$' KZend_Gdata_Gapps_EmailListQuery`#& IZend_Gdata_Gapps_EmailListFeed`$% KZend_Gdata_Gapps_EmailListEntry`$ +Zend_Gdata_Feed`# 5Zend_Gdata_Extension`" =Zend_Gdata_Extension_Who`! AZend_Gdata_Extension_Where`  ?Zend_Gdata_Extension_When`$ KZend_Gdata_Extension_Visibility`& OZend_Gdata_Extension_Transparency`" GZend_Gdata_Extension_Reminder`- ]Zend_Gdata_Extension_RecurrenceException`$ KZend_Gdata_Extension_Recurrence`  CZend_Gdata_Extension_Rating`' QZend_Gdata_Extension_OriginalEvent`0 cZend_Gdata_Extension_OpenSearchTotalResults`. _Zend_Gdata_Extension_OpenSearchStartIndex`0 cZend_Gdata_Extension_OpenSearchItemsPerPage`" GZend_Gdata_Extension_FeedLink`* WZend_Gdata_Extension_ExtendedProperty`% MZend_Gdata_Extension_EventStatus`# IZend_Gdata_Extension_EntryLink`" GZend_Gdata_Extension_Comments`& OZend_Gdata_Extension_AttendeeType`( SZend_Gdata_Extension_AttendeeStatus` +Zend_Gdata_Exif` 5Zend_Gdata_Exif_Feed`# IZend_Gdata_Exif_Extension_Time`# IZend_Gdata_Exif_Extension_Tags`$
 KZend_Gdata_Exif_Extension_Model`#	 IZend_Gdata_Exif_Extension_Make`" GZend_Gdata_Exif_Extension_Iso`, [Zend_Gdata_Exif_Extension_ImageUniqueId`$ KZend_Gdata_Exif_Extension_FStop`* WZend_Gdata_Exif_Extension_FocalLength`$ KZend_Gdata_Exif_Extension_Flash`' QZend_Gdata_Exif_Extension_Exposure`' QZend_Gdata_Exif_Extension_Distance` 7Zend_Gdata_Exif_Entry`  -Zend_Gdata_Entry` 7Zend_Gdata_DublinCore`*~ WZend_Gdata_DublinCore_Extension_Title`,} [Zend_Gdata_DublinCore_Extension_Subject`+| YZend_Gdata_DublinCore_Extension_Rights`.{ _Zend_Gdata_DublinCore_Extension_Publisher`-z ]Zend_Gdata_DublinCore_Extension_Language`/y aZend_Gdata_DublinCore_Extension_Identifier`+x YZend_Gdata_DublinCore_Extension_Format`0w cZend_Gdata_DublinCore_Extension_Description`)v UZend_Gdata_DublinCore_Extension_Date`,u [Zend_Gdata_DublinCore_Extension_Creator`t +Zend_Gdata_Docs`s 7Zend_Gdata_Docs_Query`%r MZend_Gdata_Docs_DocumentListFeed`&q OZend_Gdata_Docs_DocumentListEntry`p 9Zend_Gdata_ClientLogin`o 3Zend_Gdata_Calendar`!n EZend_Gdata_Calendar_ListFeed`"m GZend_Gdata_Calendar_ListEntry`-l ]Zend_Gdata_Calendar_Extension_WebContent`+k YZend_Gdata_Calendar_Extension_Timezone`9j uZend_Gdata_Calendar_Extension_SendEventNotifications`+i YZend_Gdata_Calendar_Extension_Selected`+h YZend_Gdata_Calendar_Extension_QuickAdd`'g QZend_Gdata_Calendar_Extension_Link`)f UZend_Gdata_Calendar_Extension_Hidden`(e SZend_Gdata_Calendar_Extension_Color`.d _Zend_Gdata_Calendar_Extension_AccessLevel`#c IZend_Gdata_Calendar_EventQuery`"b GZend_Gdata_Calendar_EventFeed`#a IZend_Gdata_Calendar_EventEntry`` -Zend_Gdata_Books`!_ EZend_Gdata_Books_VolumeQuery` ^ CZend_Gdata_Books_VolumeFeed`!] EZend_Gdata_Books_VolumeEntry`+\ YZend_Gdata_Books_Extension_Viewability`-[ ]Zend_Gdata_Books_Extension_ThumbnailLink`&Z OZend_Gdata_Books_Extension_Review`+Y YZend_Gdata_Books_Extension_PreviewLink`(X SZend_Gdata_Books_Extension_InfoLink`-W ]Zend_Gdata_Books_Extension_Embeddability`)V UZend_Gdata_Books_Extension_BooksLink`-U ]Zend_Gdata_Books_Extension_BooksCategory`.T _Zend_Gdata_Books_Extension_AnnotationLink`$S KZend_Gdata_Books_CollectionFeed`%R MZend_Gdata_Books_CollectionEntry`   a  cDzI+~Y3~bK#aG)



T
%				e	6	tF(zO#l6X+m<[2hC X/              * WZend_Gdata_Spreadsheets_DocumentQuery`& OZend_Gdata_Spreadsheets_CellQuery`% MZend_Gdata_Spreadsheets_CellFeed`& OZend_Gdata_Spreadsheets_CellEntry` -Zend_Gdata_Query` /Zend_Gdata_Photos` 
 CZend_Gdata_Photos_UserQuery`	 AZend_Gdata_Photos_UserFeed`  CZend_Gdata_Photos_UserEntry` AZend_Gdata_Photos_TagEntry`! EZend_Gdata_Photos_PhotoQuery`  CZend_Gdata_Photos_PhotoFeed`! EZend_Gdata_Photos_PhotoEntry`& OZend_Gdata_Photos_Extension_Width`' QZend_Gdata_Photos_Extension_Weight`( SZend_Gdata_Photos_Extension_Version`%  MZend_Gdata_Photos_Extension_User`* WZend_Gdata_Photos_Extension_Timestamp`*~ WZend_Gdata_Photos_Extension_Thumbnail`%} MZend_Gdata_Photos_Extension_Size`)| UZend_Gdata_Photos_Extension_Rotation`+{ YZend_Gdata_Photos_Extension_QuotaLimit`-z ]Zend_Gdata_Photos_Extension_QuotaCurrent`)y UZend_Gdata_Photos_Extension_Position`(x SZend_Gdata_Photos_Extension_PhotoId`3w iZend_Gdata_Photos_Extension_NumPhotosRemaining`*v WZend_Gdata_Photos_Extension_NumPhotos`)u UZend_Gdata_Photos_Extension_Nickname`%t MZend_Gdata_Photos_Extension_Name`2s gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum`)r UZend_Gdata_Photos_Extension_Location`#q IZend_Gdata_Photos_Extension_Id`'p QZend_Gdata_Photos_Extension_Height`2o gZend_Gdata_Photos_Extension_CommentingEnabled`-n ]Zend_Gdata_Photos_Extension_CommentCount`'m QZend_Gdata_Photos_Extension_Client`)l UZend_Gdata_Photos_Extension_Checksum`*k WZend_Gdata_Photos_Extension_BytesUsed`(j SZend_Gdata_Photos_Extension_AlbumId`'i QZend_Gdata_Photos_Extension_Access`#h IZend_Gdata_Photos_CommentEntry`!g EZend_Gdata_Photos_AlbumQuery` f CZend_Gdata_Photos_AlbumFeed`!e EZend_Gdata_Photos_AlbumEntry`d -Zend_Gdata_Media`c 7Zend_Gdata_Media_Feed`*b WZend_Gdata_Media_Extension_MediaTitle`.a _Zend_Gdata_Media_Extension_MediaThumbnail`)` UZend_Gdata_Media_Extension_MediaText`0_ cZend_Gdata_Media_Extension_MediaRestriction`+^ YZend_Gdata_Media_Extension_MediaRating`+] YZend_Gdata_Media_Extension_MediaPlayer`-\ ]Zend_Gdata_Media_Extension_MediaKeywords`)[ UZend_Gdata_Media_Extension_MediaHash`*Z WZend_Gdata_Media_Extension_MediaGroup`0Y cZend_Gdata_Media_Extension_MediaDescription`+X YZend_Gdata_Media_Extension_MediaCredit`.W _Zend_Gdata_Media_Extension_MediaCopyright`,V [Zend_Gdata_Media_Extension_MediaContent`-U ]Zend_Gdata_Media_Extension_MediaCategory`T 9Zend_Gdata_Media_Entry`S AZend_Gdata_Kind_EventEntry`R 7Zend_Gdata_HttpClient`Q /Zend_Gdata_Health`P ;Zend_Gdata_Health_Query`&O OZend_Gdata_Health_ProfileListFeed`'N QZend_Gdata_Health_ProfileListEntry`"M GZend_Gdata_Health_ProfileFeed`#L IZend_Gdata_Health_ProfileEntry`$K KZend_Gdata_Health_Extension_Ccr`J )Zend_Gdata_Geo`I 3Zend_Gdata_Geo_Feed`$H KZend_Gdata_Geo_Extension_GmlPos`&G OZend_Gdata_Geo_Extension_GmlPoint`)F UZend_Gdata_Geo_Extension_GeoRssWhere`E 5Zend_Gdata_Geo_Entry`D -Zend_Gdata_Gbase`"C GZend_Gdata_Gbase_SnippetQuery`!B EZend_Gdata_Gbase_SnippetFeed`"A GZend_Gdata_Gbase_SnippetEntry`@ 9Zend_Gdata_Gbase_Query`? AZend_Gdata_Gbase_ItemQuery`> ?Zend_Gdata_Gbase_ItemFeed`= AZend_Gdata_Gbase_ItemEntry`< 7Zend_Gdata_Gbase_Feed`-; ]Zend_Gdata_Gbase_Extension_BaseAttribute`: 9Zend_Gdata_Gbase_Entry`9 -Zend_Gdata_Gapps`8 AZend_Gdata_Gapps_UserQuery`7 ?Zend_Gdata_Gapps_UserFeed`6 AZend_Gdata_Gapps_UserEntry`&5 OZend_Gdata_Gapps_ServiceException`4 9Zend_Gdata_Gapps_Query`#3 IZend_Gdata_Gapps_NicknameQuery`"2 GZend_Gdata_Gapps_NicknameFeed`#1 IZend_Gdata_Gapps_NicknameEntry`%0 MZend_Gdata_Gapps_Extension_Quota`   [  m:\-hAf7}P"



j
9
					T	$f5zN#n@f9iC(uR9 X&O2                k ;Zend_InfoCard_Exception`%j MZend_InfoCard_Exception_Abstract`i 5Zend_InfoCard_Claims`h 5Zend_InfoCard_Cipher`5g mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc`5f mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc`4e kZend_InfoCard_Cipher_Symmetric_Adapter_Abstract`)d UZend_InfoCard_Cipher_Pki_Adapter_Rsa`.c _Zend_InfoCard_Cipher_Pki_Adapter_Abstract`#b IZend_InfoCard_Cipher_Exception`$a KZend_InfoCard_Adapter_Exception`"` GZend_InfoCard_Adapter_Default`_ 1Zend_Http_Response`^ 3Zend_Http_Exception`] 3Zend_Http_CookieJar`\ -Zend_Http_Cookie`[ -Zend_Http_Client`Z AZend_Http_Client_Exception`"Y GZend_Http_Client_Adapter_Test`$X KZend_Http_Client_Adapter_Socket`#W IZend_Http_Client_Adapter_Proxy`'V QZend_Http_Client_Adapter_Exception`U !Zend_Gdata`T 1Zend_Gdata_YouTube`"S GZend_Gdata_YouTube_VideoQuery`!R EZend_Gdata_YouTube_VideoFeed`"Q GZend_Gdata_YouTube_VideoEntry`(P SZend_Gdata_YouTube_UserProfileEntry`(O SZend_Gdata_YouTube_SubscriptionFeed`)N UZend_Gdata_YouTube_SubscriptionEntry`)M UZend_Gdata_YouTube_PlaylistVideoFeed`*L WZend_Gdata_YouTube_PlaylistVideoEntry`(K SZend_Gdata_YouTube_PlaylistListFeed`)J UZend_Gdata_YouTube_PlaylistListEntry`"I GZend_Gdata_YouTube_MediaEntry`)H UZend_Gdata_YouTube_Extension_VideoId`*G WZend_Gdata_YouTube_Extension_Username`*F WZend_Gdata_YouTube_Extension_Uploaded`'E QZend_Gdata_YouTube_Extension_Token`(D SZend_Gdata_YouTube_Extension_Status`,C [Zend_Gdata_YouTube_Extension_Statistics`'B QZend_Gdata_YouTube_Extension_State`(A SZend_Gdata_YouTube_Extension_School`-@ ]Zend_Gdata_YouTube_Extension_ReleaseDate`.? _Zend_Gdata_YouTube_Extension_Relationship`*> WZend_Gdata_YouTube_Extension_Recorded`&= OZend_Gdata_YouTube_Extension_Racy`-< ]Zend_Gdata_YouTube_Extension_QueryString`); UZend_Gdata_YouTube_Extension_Private`*: WZend_Gdata_YouTube_Extension_Position`/9 aZend_Gdata_YouTube_Extension_PlaylistTitle`,8 [Zend_Gdata_YouTube_Extension_PlaylistId`,7 [Zend_Gdata_YouTube_Extension_Occupation`)6 UZend_Gdata_YouTube_Extension_NoEmbed`'5 QZend_Gdata_YouTube_Extension_Music`(4 SZend_Gdata_YouTube_Extension_Movies`-3 ]Zend_Gdata_YouTube_Extension_MediaRating`,2 [Zend_Gdata_YouTube_Extension_MediaGroup`-1 ]Zend_Gdata_YouTube_Extension_MediaCredit`.0 _Zend_Gdata_YouTube_Extension_MediaContent`*/ WZend_Gdata_YouTube_Extension_Location`&. OZend_Gdata_YouTube_Extension_Link`*- WZend_Gdata_YouTube_Extension_LastName`*, WZend_Gdata_YouTube_Extension_Hometown`)+ UZend_Gdata_YouTube_Extension_Hobbies`(* SZend_Gdata_YouTube_Extension_Gender`+) YZend_Gdata_YouTube_Extension_FirstName`*( WZend_Gdata_YouTube_Extension_Duration`-' ]Zend_Gdata_YouTube_Extension_Description`+& YZend_Gdata_YouTube_Extension_CountHint`)% UZend_Gdata_YouTube_Extension_Control`)$ UZend_Gdata_YouTube_Extension_Company`'# QZend_Gdata_YouTube_Extension_Books`%" MZend_Gdata_YouTube_Extension_Age`)! UZend_Gdata_YouTube_Extension_AboutMe`#  IZend_Gdata_YouTube_ContactFeed`$ KZend_Gdata_YouTube_ContactEntry`# IZend_Gdata_YouTube_CommentFeed`$ KZend_Gdata_YouTube_CommentEntry` ;Zend_Gdata_Spreadsheets`* WZend_Gdata_Spreadsheets_WorksheetFeed`+ YZend_Gdata_Spreadsheets_WorksheetEntry`, [Zend_Gdata_Spreadsheets_SpreadsheetFeed`- ]Zend_Gdata_Spreadsheets_SpreadsheetEntry`& OZend_Gdata_Spreadsheets_ListQuery`% MZend_Gdata_Spreadsheets_ListFeed`& OZend_Gdata_Spreadsheets_ListEntry`/ aZend_Gdata_Spreadsheets_Extension_RowCount`- ]Zend_Gdata_Spreadsheets_Extension_Custom`/ aZend_Gdata_Spreadsheets_Extension_ColCount`+ YZend_Gdata_Spreadsheets_Extension_Cell`   s  `1	i?yAvZ;iD'



}
i
M
;
						a	F	#	yX6bQ5`@zV-g<"a?$
hK/wU9                 ^ 3Zend_Measure_Number`] 9Zend_Measure_Lightness`\ 3Zend_Measure_Length`[ ?Zend_Measure_Illumination`Z 9Zend_Measure_Frequency`Y 1Zend_Measure_Force`X =Zend_Measure_Flow_Volume`W 9Zend_Measure_Flow_Mole`V 9Zend_Measure_Flow_Mass`U 9Zend_Measure_Exception`T 3Zend_Measure_Energy`S 5Zend_Measure_Density`R 5Zend_Measure_Current` Q CZend_Measure_Cooking_Weight` P CZend_Measure_Cooking_Volume`O =Zend_Measure_Capacitance`N 3Zend_Measure_Binary`M /Zend_Measure_Area`L 1Zend_Measure_Angle`K ?Zend_Measure_Acceleration`J 7Zend_Measure_Abstract`I Zend_Mail`H =Zend_Mail_Transport_Smtp`!G EZend_Mail_Transport_Sendmail`"F GZend_Mail_Transport_Exception`!E EZend_Mail_Transport_Abstract`D /Zend_Mail_Storage`'C QZend_Mail_Storage_Writable_Maildir`B 9Zend_Mail_Storage_Pop3`A 9Zend_Mail_Storage_Mbox`@ ?Zend_Mail_Storage_Maildir`? 9Zend_Mail_Storage_Imap`> =Zend_Mail_Storage_Folder`"= GZend_Mail_Storage_Folder_Mbox`%< MZend_Mail_Storage_Folder_Maildir` ; CZend_Mail_Storage_Exception`: AZend_Mail_Storage_Abstract`9 ;Zend_Mail_Protocol_Smtp`'8 QZend_Mail_Protocol_Smtp_Auth_Plain`'7 QZend_Mail_Protocol_Smtp_Auth_Login`)6 UZend_Mail_Protocol_Smtp_Auth_Crammd5`5 ;Zend_Mail_Protocol_Pop3`4 ;Zend_Mail_Protocol_Imap`!3 EZend_Mail_Protocol_Exception` 2 CZend_Mail_Protocol_Abstract`1 )Zend_Mail_Part`0 3Zend_Mail_Part_File`/ /Zend_Mail_Message`. 9Zend_Mail_Message_File`- 3Zend_Mail_Exception`, Zend_Log`+ 9Zend_Log_Writer_Stream`* 5Zend_Log_Writer_Null`) 5Zend_Log_Writer_Mock`( ;Zend_Log_Writer_Firebug`' 1Zend_Log_Writer_Db`& =Zend_Log_Writer_Abstract`% 9Zend_Log_Formatter_Xml`$ ?Zend_Log_Formatter_Simple`# =Zend_Log_Filter_Suppress`" =Zend_Log_Filter_Priority`! ;Zend_Log_Filter_Message`  1Zend_Log_Exception` #Zend_Locale` -Zend_Locale_Math` =Zend_Locale_Math_PhpMath` AZend_Locale_Math_Exception` 1Zend_Locale_Format` 7Zend_Locale_Exception` -Zend_Locale_Data`! EZend_Locale_Data_Translation` #Zend_Loader` =Zend_Loader_PluginLoader`' QZend_Loader_PluginLoader_Exception` 7Zend_Loader_Exception` Zend_Ldap` 3Zend_Ldap_Exception` #Zend_Layout` 7Zend_Layout_Exception`) UZend_Layout_Controller_Plugin_Layout`0 cZend_Layout_Controller_Action_Helper_Layout` Zend_Json` -Zend_Json_Server` 5Zend_Json_Server_Smd`!
 EZend_Json_Server_Smd_Service`	 ?Zend_Json_Server_Response`# IZend_Json_Server_Response_Http` =Zend_Json_Server_Request`" GZend_Json_Server_Request_Http` AZend_Json_Server_Exception` 9Zend_Json_Server_Error` 9Zend_Json_Server_Cache` 3Zend_Json_Exception` /Zend_Json_Encoder`  /Zend_Json_Decoder` 'Zend_InfoCard`-~ ]Zend_InfoCard_Xml_SecurityTokenReference`} AZend_InfoCard_Xml_Security`)| UZend_InfoCard_Xml_Security_Transform`4{ kZend_InfoCard_Xml_Security_Transform_XmlExcC14N`3z iZend_InfoCard_Xml_Security_Transform_Exception`<y {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignature`)x UZend_InfoCard_Xml_Security_Exception`w ?Zend_InfoCard_Xml_KeyInfo`&v OZend_InfoCard_Xml_KeyInfo_XmlDSig`&u OZend_InfoCard_Xml_KeyInfo_Default`'t QZend_InfoCard_Xml_KeyInfo_Abstract` s CZend_InfoCard_Xml_Exception`#r IZend_InfoCard_Xml_EncryptedKey`$q KZend_InfoCard_Xml_EncryptedData`+p YZend_InfoCard_Xml_EncryptedData_XmlEnc`-o ]Zend_InfoCard_Xml_EncryptedData_Abstract`n ?Zend_InfoCard_Xml_Element` m CZend_InfoCard_Xml_Assertion`%l MZend_InfoCard_Xml_Assertion_Saml`   k qU.]?!q_5jE{N&



[
-
					k	O	.	|^@aAM#sF  iS<&~U'R\                                                         AI Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique`9H uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold`5G mZend_Pdf_Resource_Font_Simple_Standard_Helvetica`:F wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique`>E Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique`7D qZend_Pdf_Resource_Font_Simple_Standard_CourierBold`3C iZend_Pdf_Resource_Font_Simple_Standard_Courier`)B UZend_Pdf_Resource_Font_Simple_Parsed`2A gZend_Pdf_Resource_Font_Simple_Parsed_TrueType`*@ WZend_Pdf_Resource_Font_FontDescriptor`%? MZend_Pdf_Resource_Font_Extracted`#> IZend_Pdf_Resource_Font_CidFont`,= [Zend_Pdf_Resource_Font_CidFont_TrueType`< /Zend_Pdf_PhpArray`; +Zend_Pdf_Parser`: 9Zend_Pdf_Parser_Stream`9 'Zend_Pdf_Page`8 )Zend_Pdf_Image`7 'Zend_Pdf_Font` 6 CZend_Pdf_Filter_Compression`$5 KZend_Pdf_Filter_Compression_Lzw`&4 OZend_Pdf_Filter_Compression_Flate`3 =Zend_Pdf_Filter_AsciiHex`2 ;Zend_Pdf_Filter_Ascii85`"1 GZend_Pdf_FileParserDataSource`)0 UZend_Pdf_FileParserDataSource_String`'/ QZend_Pdf_FileParserDataSource_File`. 3Zend_Pdf_FileParser`- ?Zend_Pdf_FileParser_Image`", GZend_Pdf_FileParser_Image_Png`+ =Zend_Pdf_FileParser_Font`&* OZend_Pdf_FileParser_Font_OpenType`/) aZend_Pdf_FileParser_Font_OpenType_TrueType`( 1Zend_Pdf_Exception`' ;Zend_Pdf_ElementFactory`"& GZend_Pdf_ElementFactory_Proxy`% -Zend_Pdf_Element`$ ;Zend_Pdf_Element_String`## IZend_Pdf_Element_String_Binary`" ;Zend_Pdf_Element_Stream`! AZend_Pdf_Element_Reference`%  MZend_Pdf_Element_Reference_Table`' QZend_Pdf_Element_Reference_Context` ;Zend_Pdf_Element_Object`# IZend_Pdf_Element_Object_Stream` =Zend_Pdf_Element_Numeric` 7Zend_Pdf_Element_Null` 7Zend_Pdf_Element_Name`  CZend_Pdf_Element_Dictionary` =Zend_Pdf_Element_Boolean` 9Zend_Pdf_Element_Array` )Zend_Pdf_Color` 1Zend_Pdf_Color_Rgb` 3Zend_Pdf_Color_Html` =Zend_Pdf_Color_GrayScale` 3Zend_Pdf_Color_Cmyk` 'Zend_Pdf_Cmap` AZend_Pdf_Cmap_TrimmedTable`! EZend_Pdf_Cmap_SegmentToDelta` AZend_Pdf_Cmap_ByteEncoding`& OZend_Pdf_Cmap_ByteEncoding_Static` )Zend_Paginator`* WZend_Paginator_ScrollingStyle_Sliding`*
 WZend_Paginator_ScrollingStyle_Jumping`*	 WZend_Paginator_ScrollingStyle_Elastic`& OZend_Paginator_ScrollingStyle_All` =Zend_Paginator_Exception`  CZend_Paginator_Adapter_Null`$ KZend_Paginator_Adapter_Iterator`) UZend_Paginator_Adapter_DbTableSelect`$ KZend_Paginator_Adapter_DbSelect`! EZend_Paginator_Adapter_Array` #Zend_OpenId`  5Zend_OpenId_Provider` ?Zend_OpenId_Provider_User`&~ OZend_OpenId_Provider_User_Session`!} EZend_OpenId_Provider_Storage`&| OZend_OpenId_Provider_Storage_File`{ 7Zend_OpenId_Extension`z AZend_OpenId_Extension_Sreg`y 7Zend_OpenId_Exception`x 5Zend_OpenId_Consumer`!w EZend_OpenId_Consumer_Storage`&v OZend_OpenId_Consumer_Storage_File`u Zend_Mime`t )Zend_Mime_Part`s /Zend_Mime_Message`r 3Zend_Mime_Exception`q -Zend_Mime_Decode`p #Zend_Memory`o /Zend_Memory_Value`n 3Zend_Memory_Manager`m 7Zend_Memory_Exception`l 7Zend_Memory_Container`"k GZend_Memory_Container_Movable`!j EZend_Memory_Container_Locked`!i EZend_Memory_AccessController`h 3Zend_Measure_Weight`g 3Zend_Measure_Volume`%f MZend_Measure_Viscosity_Kinematic`#e IZend_Measure_Viscosity_Dynamic`d 3Zend_Measure_Torque`c /Zend_Measure_Time`b =Zend_Measure_Temperature`a 1Zend_Measure_Speed`` 7Zend_Measure_Pressure`_ 1Zend_Measure_Power`   X  Qa2Z:hC2	mJ1




y
V
=
			O	C|B_6kF%X+HzQ0f0                         +! YZend_Search_Lucene_Search_Query_Phrase`.  _Zend_Search_Lucene_Search_Query_MultiTerm`2 gZend_Search_Lucene_Search_Query_Insignificant`* WZend_Search_Lucene_Search_Query_Fuzzy`* WZend_Search_Lucene_Search_Query_Empty`, [Zend_Search_Lucene_Search_Query_Boolean`: wZend_Search_Lucene_Search_BooleanExpressionRecognizer` =Zend_Search_Lucene_Proxy`% MZend_Search_Lucene_PriorityQueue`# IZend_Search_Lucene_LockManager`$ KZend_Search_Lucene_Index_Writer`& OZend_Search_Lucene_Index_TermInfo`" GZend_Search_Lucene_Index_Term`+ YZend_Search_Lucene_Index_SegmentWriter`8 sZend_Search_Lucene_Index_SegmentWriter_StreamWriter`: wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter`+ YZend_Search_Lucene_Index_SegmentMerger`6 oZend_Search_Lucene_Index_SegmentInfoPriorityQueue`) UZend_Search_Lucene_Index_SegmentInfo`' QZend_Search_Lucene_Index_FieldInfo`( SZend_Search_Lucene_Index_DocsFilter`. _Zend_Search_Lucene_Index_DictionaryLoader`! EZend_Search_Lucene_FSMAction`
 9Zend_Search_Lucene_FSM`	 =Zend_Search_Lucene_Field`! EZend_Search_Lucene_Exception`  CZend_Search_Lucene_Document`% MZend_Search_Lucene_Document_Xlsx`% MZend_Search_Lucene_Document_Pptx`( SZend_Search_Lucene_Document_OpenXml`% MZend_Search_Lucene_Document_Html`% MZend_Search_Lucene_Document_Docx`, [Zend_Search_Lucene_Analysis_TokenFilter`6  oZend_Search_Lucene_Analysis_TokenFilter_StopWords`7 qZend_Search_Lucene_Analysis_TokenFilter_ShortWords`:~ wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8`6} oZend_Search_Lucene_Analysis_TokenFilter_LowerCase`&| OZend_Search_Lucene_Analysis_Token`){ UZend_Search_Lucene_Analysis_Analyzer`0z cZend_Search_Lucene_Analysis_Analyzer_Common`8y sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num`Ix Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive`5w mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8`Fv Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive`8u sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum`It Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive`5s mZend_Search_Lucene_Analysis_Analyzer_Common_Text`Fr Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive`q 7Zend_Search_Exception`p -Zend_Rest_Server`o AZend_Rest_Server_Exception`n 3Zend_Rest_Exception`m -Zend_Rest_Client`l ;Zend_Rest_Client_Result`&k OZend_Rest_Client_Result_Exception`j AZend_Rest_Client_Exception`i 'Zend_Registry`h -Zend_ProgressBar`g AZend_ProgressBar_Exception`f =Zend_ProgressBar_Adapter`$e KZend_ProgressBar_Adapter_JsPush`$d KZend_ProgressBar_Adapter_JsPull`'c QZend_ProgressBar_Adapter_Exception`%b MZend_ProgressBar_Adapter_Console`a Zend_Pdf`!` EZend_Pdf_UpdateInfoContainer`_ -Zend_Pdf_Trailer`^ ;Zend_Pdf_Trailer_Keeper`] AZend_Pdf_Trailer_Generator`\ )Zend_Pdf_Style`[ 7Zend_Pdf_StringParser`Z /Zend_Pdf_Resource`#Y IZend_Pdf_Resource_ImageFactory`X ;Zend_Pdf_Resource_Image`!W EZend_Pdf_Resource_Image_Tiff` V CZend_Pdf_Resource_Image_Png`!U EZend_Pdf_Resource_Image_Jpeg`T 9Zend_Pdf_Resource_Font`!S EZend_Pdf_Resource_Font_Type0`"R GZend_Pdf_Resource_Font_Simple`+Q YZend_Pdf_Resource_Font_Simple_Standard`8P sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats`6O oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman`7N qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic`;M yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic`5L mZend_Pdf_Resource_Font_Simple_Standard_TimesBold`2K gZend_Pdf_Resource_Font_Simple_Standard_Symbol`<J {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaOblique`   a  tLX+d/o?P!





j
F
 					W	/		hI+mL" hL(jK)oBzR3iG"\2                                    ! EZend_Service_StrikeIron_Base` ;Zend_Service_SlideShare`&  OZend_Service_SlideShare_SlideShow`& OZend_Service_SlideShare_Exception`~ 1Zend_Service_Simpy`$} KZend_Service_Simpy_WatchlistSet`*| WZend_Service_Simpy_WatchlistFilterSet`'{ QZend_Service_Simpy_WatchlistFilter`!z EZend_Service_Simpy_Watchlist`y ?Zend_Service_Simpy_TagSet`x 9Zend_Service_Simpy_Tag`w AZend_Service_Simpy_NoteSet`v ;Zend_Service_Simpy_Note`u AZend_Service_Simpy_LinkSet`!t EZend_Service_Simpy_LinkQuery`s ;Zend_Service_Simpy_Link`r 9Zend_Service_ReCaptcha`$q KZend_Service_ReCaptcha_Response`$p KZend_Service_ReCaptcha_MailHide`.o _Zend_Service_ReCaptcha_MailHide_Exception`%n MZend_Service_ReCaptcha_Exception`m 7Zend_Service_Nirvanix`#l IZend_Service_Nirvanix_Response`)k UZend_Service_Nirvanix_Namespace_Imfs`)j UZend_Service_Nirvanix_Namespace_Base`$i KZend_Service_Nirvanix_Exception`h 3Zend_Service_Flickr`"g GZend_Service_Flickr_ResultSet`f AZend_Service_Flickr_Result`e ?Zend_Service_Flickr_Image`d 9Zend_Service_Exception`c 9Zend_Service_Delicious`&b OZend_Service_Delicious_SimplePost`$a KZend_Service_Delicious_PostList` ` CZend_Service_Delicious_Post`%_ MZend_Service_Delicious_Exception` ^ CZend_Service_Audioscrobbler`] 3Zend_Service_Amazon`'\ QZend_Service_Amazon_SimilarProduct`"[ GZend_Service_Amazon_ResultSet`Z ?Zend_Service_Amazon_Query`!Y EZend_Service_Amazon_OfferSet`X ?Zend_Service_Amazon_Offer`&W OZend_Service_Amazon_ListmaniaList`V =Zend_Service_Amazon_Item`U ?Zend_Service_Amazon_Image`(T SZend_Service_Amazon_EditorialReview`'S QZend_Service_Amazon_CustomerReview`$R KZend_Service_Amazon_Accessories`Q 5Zend_Service_Akismet`P 7Zend_Service_Abstract`O 9Zend_Server_Reflection`'N QZend_Server_Reflection_ReturnValue`%M MZend_Server_Reflection_Prototype`%L MZend_Server_Reflection_Parameter` K CZend_Server_Reflection_Node`"J GZend_Server_Reflection_Method`$I KZend_Server_Reflection_Function`-H ]Zend_Server_Reflection_Function_Abstract`%G MZend_Server_Reflection_Exception`!F EZend_Server_Reflection_Class`!E EZend_Server_Method_Prototype`!D EZend_Server_Method_Parameter`"C GZend_Server_Method_Definition` B CZend_Server_Method_Callback`A 7Zend_Server_Exception`@ 9Zend_Server_Definition`? /Zend_Server_Cache`> 5Zend_Server_Abstract`= 1Zend_Search_Lucene`$< KZend_Search_Lucene_Storage_File`+; YZend_Search_Lucene_Storage_File_Memory`/: aZend_Search_Lucene_Storage_File_Filesystem`)9 UZend_Search_Lucene_Storage_Directory`48 kZend_Search_Lucene_Storage_Directory_Filesystem`%7 MZend_Search_Lucene_Search_Weight`*6 WZend_Search_Lucene_Search_Weight_Term`,5 [Zend_Search_Lucene_Search_Weight_Phrase`/4 aZend_Search_Lucene_Search_Weight_MultiTerm`+3 YZend_Search_Lucene_Search_Weight_Empty`-2 ]Zend_Search_Lucene_Search_Weight_Boolean`)1 UZend_Search_Lucene_Search_Similarity`10 eZend_Search_Lucene_Search_Similarity_Default`)/ UZend_Search_Lucene_Search_QueryToken`3. iZend_Search_Lucene_Search_QueryParserException`1- eZend_Search_Lucene_Search_QueryParserContext`*, WZend_Search_Lucene_Search_QueryParser`)+ UZend_Search_Lucene_Search_QueryLexer`'* QZend_Search_Lucene_Search_QueryHit`)) UZend_Search_Lucene_Search_QueryEntry`.( _Zend_Search_Lucene_Search_QueryEntry_Term`2' gZend_Search_Lucene_Search_QueryEntry_Subquery`0& cZend_Search_Lucene_Search_QueryEntry_Phrase`$% KZend_Search_Lucene_Search_Query`-$ ]Zend_Search_Lucene_Search_Query_Wildcard`)# UZend_Search_Lucene_Search_Query_Term`*" WZend_Search_Lucene_Search_Query_Range`   e  {EvFY2T)gC&



Y
2
				b	@	}bD%]H ~eB)wOpAsZ>wW=~[9                                  g AZend_Translate_Adapter_Tmx`f AZend_Translate_Adapter_Tbx`e ?Zend_Translate_Adapter_Qt`d AZend_Translate_Adapter_Ini`#c IZend_Translate_Adapter_Gettext`b AZend_Translate_Adapter_Csv`!a EZend_Translate_Adapter_Array`` 'Zend_TimeSync`_ 1Zend_TimeSync_Sntp`^ 9Zend_TimeSync_Protocol`] /Zend_TimeSync_Ntp`\ ;Zend_TimeSync_Exception`[ +Zend_Text_Table`Z 3Zend_Text_Table_Row`Y ?Zend_Text_Table_Exception`&X OZend_Text_Table_Decorator_Unicode`$W KZend_Text_Table_Decorator_Ascii`V 9Zend_Text_Table_Column`U 3Zend_Text_MultiByte`T -Zend_Text_Figlet`S AZend_Text_Figlet_Exception`R 3Zend_Text_Exception`)Q UZend_Test_PHPUnit_ControllerTestCase`0P cZend_Test_PHPUnit_Constraint_ResponseHeader`*O WZend_Test_PHPUnit_Constraint_Redirect`+N YZend_Test_PHPUnit_Constraint_Exception`*M WZend_Test_PHPUnit_Constraint_DomQuery`L )Zend_Soap_Wsdl`/K aZend_Soap_Wsdl_Strategy_DefaultComplexType`0J cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence`/I aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex`$H KZend_Soap_Wsdl_Strategy_AnyType`%G MZend_Soap_Wsdl_Strategy_Abstract`F 7Zend_Soap_Wsdl_Parser`!E EZend_Soap_Wsdl_Parser_Result`D =Zend_Soap_Wsdl_Exception`!C EZend_Soap_Wsdl_CodeGenerator`B -Zend_Soap_Server`A AZend_Soap_Server_Exception`@ -Zend_Soap_Client`? 9Zend_Soap_Client_Local`> AZend_Soap_Client_Exception`= ;Zend_Soap_Client_DotNet`< ;Zend_Soap_Client_Common`; 9Zend_Soap_AutoDiscover`%: MZend_Soap_AutoDiscover_Exception`9 %Zend_Session`)8 UZend_Session_Validator_HttpUserAgent`$7 KZend_Session_Validator_Abstract`'6 QZend_Session_SaveHandler_Exception`%5 MZend_Session_SaveHandler_DbTable`4 9Zend_Session_Namespace`3 9Zend_Session_Exception`2 7Zend_Session_Abstract`1 1Zend_Service_Yahoo`$0 KZend_Service_Yahoo_WebResultSet`!/ EZend_Service_Yahoo_WebResult`&. OZend_Service_Yahoo_VideoResultSet`#- IZend_Service_Yahoo_VideoResult`!, EZend_Service_Yahoo_ResultSet`+ ?Zend_Service_Yahoo_Result`)* UZend_Service_Yahoo_PageDataResultSet`&) OZend_Service_Yahoo_PageDataResult`%( MZend_Service_Yahoo_NewsResultSet`"' GZend_Service_Yahoo_NewsResult`&& OZend_Service_Yahoo_LocalResultSet`#% IZend_Service_Yahoo_LocalResult`+$ YZend_Service_Yahoo_InlinkDataResultSet`(# SZend_Service_Yahoo_InlinkDataResult`&" OZend_Service_Yahoo_ImageResultSet`#! IZend_Service_Yahoo_ImageResult`  =Zend_Service_Yahoo_Image` 5Zend_Service_Twitter`  CZend_Service_Twitter_Search`# IZend_Service_Twitter_Exception` ;Zend_Service_Technorati`# IZend_Service_Technorati_Weblog`" GZend_Service_Technorati_Utils`* WZend_Service_Technorati_TagsResultSet`' QZend_Service_Technorati_TagsResult`) UZend_Service_Technorati_TagResultSet`& OZend_Service_Technorati_TagResult`, [Zend_Service_Technorati_SearchResultSet`) UZend_Service_Technorati_SearchResult`& OZend_Service_Technorati_ResultSet`# IZend_Service_Technorati_Result`* WZend_Service_Technorati_KeyInfoResult`* WZend_Service_Technorati_GetInfoResult`& OZend_Service_Technorati_Exception`1 eZend_Service_Technorati_DailyCountsResultSet`. _Zend_Service_Technorati_DailyCountsResult`, [Zend_Service_Technorati_CosmosResultSet`) UZend_Service_Technorati_CosmosResult`+
 YZend_Service_Technorati_BlogInfoResult`#	 IZend_Service_Technorati_Author` ;Zend_Service_StrikeIron`( SZend_Service_StrikeIron_ZipCodeInfo`2 gZend_Service_StrikeIron_USAddressVerification`- ]Zend_Service_StrikeIron_SalesUseTaxBasic`& OZend_Service_StrikeIron_Exception`& OZend_Service_StrikeIron_Decorator`   p  v_D.aC'j>b:oM1




m
K
)
					n	U	6	vT4d?dBlF$sP.
}]2P\/        W 5Zend_View_Helper_Url`V AZend_View_Helper_Translate`)U UZend_View_Helper_RenderToPlaceholder`!T EZend_View_Helper_Placeholder`*S WZend_View_Helper_Placeholder_Registry`4R kZend_View_Helper_Placeholder_Registry_Exception`+Q YZend_View_Helper_Placeholder_Container`6P oZend_View_Helper_Placeholder_Container_Standalone`5O mZend_View_Helper_Placeholder_Container_Exception`4N kZend_View_Helper_Placeholder_Container_Abstract`!M EZend_View_Helper_PartialLoop`L =Zend_View_Helper_Partial`'K QZend_View_Helper_Partial_Exception`'J QZend_View_Helper_PaginationControl`I ;Zend_View_Helper_Layout`H 7Zend_View_Helper_Json`"G GZend_View_Helper_InlineScript`#F IZend_View_Helper_HtmlQuicktime`E ?Zend_View_Helper_HtmlPage` D CZend_View_Helper_HtmlObject`C ?Zend_View_Helper_HtmlList`B AZend_View_Helper_HtmlFlash`!A EZend_View_Helper_HtmlElement`@ AZend_View_Helper_HeadTitle`? AZend_View_Helper_HeadStyle` > CZend_View_Helper_HeadScript`= ?Zend_View_Helper_HeadMeta`< ?Zend_View_Helper_HeadLink`"; GZend_View_Helper_FormTextarea`: ?Zend_View_Helper_FormText` 9 CZend_View_Helper_FormSubmit` 8 CZend_View_Helper_FormSelect`7 AZend_View_Helper_FormReset`6 AZend_View_Helper_FormRadio`"5 GZend_View_Helper_FormPassword`4 ?Zend_View_Helper_FormNote`'3 QZend_View_Helper_FormMultiCheckbox`2 AZend_View_Helper_FormLabel`1 AZend_View_Helper_FormImage` 0 CZend_View_Helper_FormHidden`/ ?Zend_View_Helper_FormFile` . CZend_View_Helper_FormErrors`!- EZend_View_Helper_FormElement`", GZend_View_Helper_FormCheckbox` + CZend_View_Helper_FormButton`* 7Zend_View_Helper_Form`) ?Zend_View_Helper_Fieldset`( =Zend_View_Helper_Doctype`!' EZend_View_Helper_DeclareVars`& ;Zend_View_Helper_Action`% ?Zend_View_Helper_Abstract`$ 3Zend_View_Exception`# 1Zend_View_Abstract`" %Zend_Version`! 'Zend_Validate`  AZend_Validate_StringLength` 3Zend_Validate_Regex` 9Zend_Validate_NotEmpty` 9Zend_Validate_LessThan` -Zend_Validate_Ip` /Zend_Validate_Int` 7Zend_Validate_InArray` ;Zend_Validate_Identical` 9Zend_Validate_Hostname` ?Zend_Validate_Hostname_Se` ?Zend_Validate_Hostname_No` ?Zend_Validate_Hostname_Li` ?Zend_Validate_Hostname_Hu` ?Zend_Validate_Hostname_Fi` ?Zend_Validate_Hostname_De` ?Zend_Validate_Hostname_Ch` ?Zend_Validate_Hostname_At` /Zend_Validate_Hex` ?Zend_Validate_GreaterThan` 3Zend_Validate_Float` ?Zend_Validate_File_Upload` ;Zend_Validate_File_Size`
 ;Zend_Validate_File_Sha1`!	 EZend_Validate_File_NotExists`  CZend_Validate_File_MimeType` 9Zend_Validate_File_Md5` AZend_Validate_File_IsImage`$ KZend_Validate_File_IsCompressed`! EZend_Validate_File_ImageSize` ;Zend_Validate_File_Hash`! EZend_Validate_File_FilesSize`! EZend_Validate_File_Extension`  ?Zend_Validate_File_Exists`' QZend_Validate_File_ExcludeMimeType`(~ SZend_Validate_File_ExcludeExtension`} =Zend_Validate_File_Crc32`| =Zend_Validate_File_Count`{ ;Zend_Validate_Exception`z AZend_Validate_EmailAddress`y 5Zend_Validate_Digits`x 1Zend_Validate_Date`w 3Zend_Validate_Ccnum`v 7Zend_Validate_Between`u 7Zend_Validate_Barcode`t AZend_Validate_Barcode_UpcA` s CZend_Validate_Barcode_Ean13`r 3Zend_Validate_Alpha`q 3Zend_Validate_Alnum`p 9Zend_Validate_Abstract`o Zend_Uri`n 'Zend_Uri_Http`m 1Zend_Uri_Exception`l )Zend_Translate`k =Zend_Translate_Exception`j 9Zend_Translate_Adapter`!i EZend_Translate_Adapter_XmlTm`!h EZend_Translate_Adapter_Xliff`   r  ^,e6lJ.fK+
[9





i
@
!
					t	K	$	 uW>d?|Nb5~Z2xX3wV1kP1              I 7Zend_Config_ExceptionaH /Zend_Captcha_WordaG 9Zend_Captcha_ReCaptchaaF 1Zend_Captcha_ImageaE 3Zend_Captcha_FigletaD 9Zend_Captcha_ExceptionaC /Zend_Captcha_DumbaB /Zend_Captcha_BaseaA !Zend_Cachea@ =Zend_Cache_Frontend_Pagea? AZend_Cache_Frontend_Outputa!> EZend_Cache_Frontend_Functiona= =Zend_Cache_Frontend_Filea< ?Zend_Cache_Frontend_Classa; 5Zend_Cache_Exceptiona: +Zend_Cache_Corea9 1Zend_Cache_Backenda$8 KZend_Cache_Backend_ZendPlatforma7 ?Zend_Cache_Backend_Xcachea!6 EZend_Cache_Backend_TwoLevelsa5 ;Zend_Cache_Backend_Testa4 ?Zend_Cache_Backend_Sqlitea!3 EZend_Cache_Backend_Memcacheda2 ;Zend_Cache_Backend_Filea1 9Zend_Cache_Backend_Apca0 Zend_Autha/ ?Zend_Auth_Storage_Sessiona$. KZend_Auth_Storage_NonPersistenta - CZend_Auth_Storage_Exceptiona, -Zend_Auth_Resulta+ 3Zend_Auth_Exceptiona* =Zend_Auth_Adapter_OpenIda) 9Zend_Auth_Adapter_Ldapa( AZend_Auth_Adapter_InfoCarda' 9Zend_Auth_Adapter_Httpa)& UZend_Auth_Adapter_Http_Resolver_Filea.% _Zend_Auth_Adapter_Http_Resolver_Exceptiona $ CZend_Auth_Adapter_Exceptiona# =Zend_Auth_Adapter_Digesta" ?Zend_Auth_Adapter_DbTablea! ?Zend_Amf_Value_TraitsInfoa-  ]Zend_Amf_Value_Messaging_RemotingMessagea* WZend_Amf_Value_Messaging_ErrorMessagea, [Zend_Amf_Value_Messaging_CommandMessagea* WZend_Amf_Value_Messaging_AsyncMessagea0 cZend_Amf_Value_Messaging_AcknowledgeMessagea- ]Zend_Amf_Value_Messaging_AbstractMessagea! EZend_Amf_Value_MessageHeadera AZend_Amf_Value_MessageBodya =Zend_Amf_Value_ByteArraya AZend_Amf_Util_BinaryStreama +Zend_Amf_Servera ?Zend_Amf_Server_Exceptiona /Zend_Amf_Responsea 9Zend_Amf_Response_Httpa -Zend_Amf_Requesta 7Zend_Amf_Request_Httpa ?Zend_Amf_Parse_TypeLoadera ?Zend_Amf_Parse_Serializera  CZend_Amf_Parse_OutputStreama AZend_Amf_Parse_InputStreama  CZend_Amf_Parse_Deserializera# IZend_Amf_Parse_Amf3_Serializera%
 MZend_Amf_Parse_Amf3_Deserializera#	 IZend_Amf_Parse_Amf0_Serializera% MZend_Amf_Parse_Amf0_Deserializera 1Zend_Amf_Exceptiona 1Zend_Amf_Constantsa Zend_Acla 'Zend_Acl_Rolea 9Zend_Acl_Role_Registrya% MZend_Acl_Role_Registry_Exceptiona /Zend_Acl_Resourcea  1Zend_Acl_Exceptiona /Zend_XmlRpc_Value`~ =Zend_XmlRpc_Value_Struct`} =Zend_XmlRpc_Value_String`| =Zend_XmlRpc_Value_Scalar`{ 7Zend_XmlRpc_Value_Nil`z ?Zend_XmlRpc_Value_Integer` y CZend_XmlRpc_Value_Exception`x =Zend_XmlRpc_Value_Double`w AZend_XmlRpc_Value_DateTime`!v EZend_XmlRpc_Value_Collection`u ?Zend_XmlRpc_Value_Boolean`t =Zend_XmlRpc_Value_Base64`s ;Zend_XmlRpc_Value_Array`r 1Zend_XmlRpc_Server`q ?Zend_XmlRpc_Server_System`p =Zend_XmlRpc_Server_Fault`!o EZend_XmlRpc_Server_Exception`n =Zend_XmlRpc_Server_Cache`m 5Zend_XmlRpc_Response`l ?Zend_XmlRpc_Response_Http`k 3Zend_XmlRpc_Request`j ?Zend_XmlRpc_Request_Stdin`i =Zend_XmlRpc_Request_Http`h /Zend_XmlRpc_Fault`g 7Zend_XmlRpc_Exception`f 1Zend_XmlRpc_Client`#e IZend_XmlRpc_Client_ServerProxy`+d YZend_XmlRpc_Client_ServerIntrospection`+c YZend_XmlRpc_Client_IntrospectException`%b MZend_XmlRpc_Client_HttpException`&a OZend_XmlRpc_Client_FaultException`!` EZend_XmlRpc_Client_Exception`&_ OZend_Wildfire_Protocol_JsonStream`!^ EZend_Wildfire_Plugin_FirePhp`.] _Zend_Wildfire_Plugin_FirePhp_TableMessage`)\ UZend_Wildfire_Plugin_FirePhp_Message`[ ;Zend_Wildfire_Exception`&Z OZend_Wildfire_Channel_HttpHeaders`Y Zend_View`X -Zend_View_Stream`   h  nVB vD](o5	eC%




W
-
				`	;	kDf:{Z4fAuS0dM%lK)kQ+                1 5Zend_Db_Table_Rowseta#0 IZend_Db_Table_Rowset_Exceptiona"/ GZend_Db_Table_Rowset_Abstracta. /Zend_Db_Table_Rowa - CZend_Db_Table_Row_Exceptiona, AZend_Db_Table_Row_Abstracta+ ;Zend_Db_Table_Exceptiona* 9Zend_Db_Table_Abstracta) /Zend_Db_Statementa( 7Zend_Db_Statement_Pdoa' ?Zend_Db_Statement_Pdo_Ibma& =Zend_Db_Statement_Oraclea'% QZend_Db_Statement_Oracle_Exceptiona$ =Zend_Db_Statement_Mysqlia'# QZend_Db_Statement_Mysqli_Exceptiona " CZend_Db_Statement_Exceptiona! 7Zend_Db_Statement_Db2a$  KZend_Db_Statement_Db2_Exceptiona )Zend_Db_Selecta =Zend_Db_Select_Exceptiona -Zend_Db_Profilera 9Zend_Db_Profiler_Querya =Zend_Db_Profiler_Firebuga AZend_Db_Profiler_Exceptiona %Zend_Db_Expra /Zend_Db_Exceptiona AZend_Db_Adapter_Pdo_Sqlitea ?Zend_Db_Adapter_Pdo_Pgsqla ;Zend_Db_Adapter_Pdo_Ocia ?Zend_Db_Adapter_Pdo_Mysqla ?Zend_Db_Adapter_Pdo_Mssqla ;Zend_Db_Adapter_Pdo_Ibma  CZend_Db_Adapter_Pdo_Ibm_Idsa  CZend_Db_Adapter_Pdo_Ibm_Db2a! EZend_Db_Adapter_Pdo_Abstracta 9Zend_Db_Adapter_Oraclea% MZend_Db_Adapter_Oracle_Exceptiona 9Zend_Db_Adapter_Mysqlia% MZend_Db_Adapter_Mysqli_Exceptiona
 ?Zend_Db_Adapter_Exceptiona	 3Zend_Db_Adapter_Db2a" GZend_Db_Adapter_Db2_Exceptiona =Zend_Db_Adapter_Abstracta Zend_Datea 3Zend_Date_Exceptiona 5Zend_Date_DateObjecta -Zend_Date_Citiesa 'Zend_Currencya ;Zend_Currency_Exceptiona!  EZend_Controller_Router_Routea( SZend_Controller_Router_Route_Statica'~ QZend_Controller_Router_Route_Regexa(} SZend_Controller_Router_Route_Modulea*| WZend_Controller_Router_Route_Hostnamea'{ QZend_Controller_Router_Route_Chaina*z WZend_Controller_Router_Route_Abstracta#y IZend_Controller_Router_Rewritea%x MZend_Controller_Router_Exceptiona$w KZend_Controller_Router_Abstracta*v WZend_Controller_Response_HttpTestCasea"u GZend_Controller_Response_Httpa't QZend_Controller_Response_Exceptiona!s EZend_Controller_Response_Clia&r OZend_Controller_Response_Abstracta#q IZend_Controller_Request_Simplea)p UZend_Controller_Request_HttpTestCasea!o EZend_Controller_Request_Httpa&n OZend_Controller_Request_Exceptiona&m OZend_Controller_Request_Apache404a%l MZend_Controller_Request_Abstracta(k SZend_Controller_Plugin_ErrorHandlera"j GZend_Controller_Plugin_Brokera'i QZend_Controller_Plugin_ActionStacka$h KZend_Controller_Plugin_Abstractag 7Zend_Controller_Frontaf ?Zend_Controller_Exceptiona(e SZend_Controller_Dispatcher_Standarda)d UZend_Controller_Dispatcher_Exceptiona(c SZend_Controller_Dispatcher_Abstractab 9Zend_Controller_Actiona(a SZend_Controller_Action_HelperBrokera6` oZend_Controller_Action_HelperBroker_PriorityStacka/_ aZend_Controller_Action_Helper_ViewRenderera&^ OZend_Controller_Action_Helper_Urla-] ]Zend_Controller_Action_Helper_Redirectora'\ QZend_Controller_Action_Helper_Jsona1[ eZend_Controller_Action_Helper_FlashMessengera0Z cZend_Controller_Action_Helper_ContextSwitcha<Y {Zend_Controller_Action_Helper_AutoCompleteScriptaculousa3X iZend_Controller_Action_Helper_AutoCompleteDojoa8W sZend_Controller_Action_Helper_AutoComplete_Abstracta.V _Zend_Controller_Action_Helper_AjaxContexta.U _Zend_Controller_Action_Helper_ActionStacka+T YZend_Controller_Action_Helper_Abstracta%S MZend_Controller_Action_ExceptionaR 3Zend_Console_Getopta"Q GZend_Console_Getopt_ExceptionaP #Zend_ConfigaO +Zend_Config_XmlaN 1Zend_Config_WriteraM 9Zend_Config_Writer_XmlaL 9Zend_Config_Writer_IniaK =Zend_Config_Writer_ArrayaJ +Zend_Config_Inia   g  lP_1xT._5V'




[
0					z	I	|R$|Y4\.X-[.ybBcG+oU;                       +Zend_Filter_Dira 1Zend_Filter_Digitsa 5Zend_Filter_BaseNamea /Zend_Filter_Alphaa /Zend_Filter_Alnuma 1Zend_File_Transfera! EZend_File_Transfer_Exceptiona$ KZend_File_Transfer_Adapter_Httpa( SZend_File_Transfer_Adapter_Abstracta Zend_Feeda 'Zend_Feed_Rssa 3Zend_Feed_Exceptiona 3Zend_Feed_Entry_Rssa 5Zend_Feed_Entry_Atoma
 =Zend_Feed_Entry_Abstracta	 /Zend_Feed_Elementa /Zend_Feed_Buildera =Zend_Feed_Builder_Headera$ KZend_Feed_Builder_Header_Itunesa  CZend_Feed_Builder_Exceptiona ;Zend_Feed_Builder_Entrya )Zend_Feed_Atoma 1Zend_Feed_Abstracta )Zend_Exceptiona  )Zend_Dom_Querya 7Zend_Dom_Query_Resulta~ =Zend_Dom_Query_Css2Xpatha} 1Zend_Dom_Exceptiona| Zend_Dojoa){ UZend_Dojo_View_Helper_VerticalSlidera,z [Zend_Dojo_View_Helper_ValidationTextBoxa&y OZend_Dojo_View_Helper_TimeTextBoxa"x GZend_Dojo_View_Helper_TextBoxa#w IZend_Dojo_View_Helper_Textareaa'v QZend_Dojo_View_Helper_TabContainera'u QZend_Dojo_View_Helper_SubmitButtona)t UZend_Dojo_View_Helper_StackContainera)s UZend_Dojo_View_Helper_SplitContainera!r EZend_Dojo_View_Helper_Slidera)q UZend_Dojo_View_Helper_SimpleTextareaa&p OZend_Dojo_View_Helper_RadioButtona*o WZend_Dojo_View_Helper_PasswordTextBoxa(n SZend_Dojo_View_Helper_NumberTextBoxa(m SZend_Dojo_View_Helper_NumberSpinnera+l YZend_Dojo_View_Helper_HorizontalSliderak AZend_Dojo_View_Helper_Forma*j WZend_Dojo_View_Helper_FilteringSelecta!i EZend_Dojo_View_Helper_Editorah AZend_Dojo_View_Helper_Dojoa)g UZend_Dojo_View_Helper_Dojo_Containera)f UZend_Dojo_View_Helper_DijitContainera e CZend_Dojo_View_Helper_Dijita&d OZend_Dojo_View_Helper_DateTextBoxa*c WZend_Dojo_View_Helper_CurrencyTextBoxa&b OZend_Dojo_View_Helper_ContentPanea#a IZend_Dojo_View_Helper_ComboBoxa#` IZend_Dojo_View_Helper_CheckBoxa!_ EZend_Dojo_View_Helper_Buttona*^ WZend_Dojo_View_Helper_BorderContainera(] SZend_Dojo_View_Helper_AccordionPanea-\ ]Zend_Dojo_View_Helper_AccordionContainera[ =Zend_Dojo_View_ExceptionaZ )Zend_Dojo_FormaY 9Zend_Dojo_Form_SubForma*X WZend_Dojo_Form_Element_VerticalSlidera-W ]Zend_Dojo_Form_Element_ValidationTextBoxa'V QZend_Dojo_Form_Element_TimeTextBoxa#U IZend_Dojo_Form_Element_TextBoxa$T KZend_Dojo_Form_Element_Textareaa(S SZend_Dojo_Form_Element_SubmitButtona"R GZend_Dojo_Form_Element_Slidera'Q QZend_Dojo_Form_Element_RadioButtona+P YZend_Dojo_Form_Element_PasswordTextBoxa)O UZend_Dojo_Form_Element_NumberTextBoxa)N UZend_Dojo_Form_Element_NumberSpinnera,M [Zend_Dojo_Form_Element_HorizontalSlidera+L YZend_Dojo_Form_Element_FilteringSelecta"K GZend_Dojo_Form_Element_Editora&J OZend_Dojo_Form_Element_DijitMultia!I EZend_Dojo_Form_Element_Dijita'H QZend_Dojo_Form_Element_DateTextBoxa+G YZend_Dojo_Form_Element_CurrencyTextBoxa$F KZend_Dojo_Form_Element_ComboBoxa$E KZend_Dojo_Form_Element_CheckBoxa"D GZend_Dojo_Form_Element_Buttona C CZend_Dojo_Form_DisplayGroupa*B WZend_Dojo_Form_Decorator_TabContainera,A [Zend_Dojo_Form_Decorator_StackContainera,@ [Zend_Dojo_Form_Decorator_SplitContainera'? QZend_Dojo_Form_Decorator_DijitForma*> WZend_Dojo_Form_Decorator_DijitElementa,= [Zend_Dojo_Form_Decorator_DijitContainera)< UZend_Dojo_Form_Decorator_ContentPanea-; ]Zend_Dojo_Form_Decorator_BorderContainera+: YZend_Dojo_Form_Decorator_AccordionPanea09 cZend_Dojo_Form_Decorator_AccordionContainera8 3Zend_Dojo_Exceptiona7 )Zend_Dojo_Dataa6 !Zend_Debuga5 Zend_Dba4 'Zend_Db_Tablea3 5Zend_Db_Table_Selecta#2 IZend_Db_Table_Select_Exceptiona   j  |[=#kI+|S)xIiE




f
E
					a	:	jK,}Z:v\@&~N1h?wS-f>uP/                 # IZend_Gdata_App_FeedEntryParenta 3Zend_Gdata_App_Feeda  =Zend_Gdata_App_Extensiona! EZend_Gdata_App_Extension_Uria%~ MZend_Gdata_App_Extension_Updateda#} IZend_Gdata_App_Extension_Titlea"| GZend_Gdata_App_Extension_Texta%{ MZend_Gdata_App_Extension_Summarya&z OZend_Gdata_App_Extension_Subtitlea$y KZend_Gdata_App_Extension_Sourcea$x KZend_Gdata_App_Extension_Rightsa'w QZend_Gdata_App_Extension_Publisheda$v KZend_Gdata_App_Extension_Persona"u GZend_Gdata_App_Extension_Namea"t GZend_Gdata_App_Extension_Logoa"s GZend_Gdata_App_Extension_Linka r CZend_Gdata_App_Extension_Ida"q GZend_Gdata_App_Extension_Icona'p QZend_Gdata_App_Extension_Generatora#o IZend_Gdata_App_Extension_Emaila%n MZend_Gdata_App_Extension_Elementa#m IZend_Gdata_App_Extension_Drafta%l MZend_Gdata_App_Extension_Controla)k UZend_Gdata_App_Extension_Contributora%j MZend_Gdata_App_Extension_Contenta&i OZend_Gdata_App_Extension_Categorya$h KZend_Gdata_App_Extension_Authorag =Zend_Gdata_App_Exceptionaf 5Zend_Gdata_App_Entrya,e [Zend_Gdata_App_CaptchaRequiredExceptiona#d IZend_Gdata_App_BaseMediaSourceac 3Zend_Gdata_App_Basea*b WZend_Gdata_App_BadMethodCallExceptiona!a EZend_Gdata_App_AuthExceptiona` Zend_Forma_ /Zend_Form_SubForma^ 3Zend_Form_Exceptiona] /Zend_Form_Elementa\ ;Zend_Form_Element_Xhtmla[ AZend_Form_Element_TextareaaZ 9Zend_Form_Element_TextaY =Zend_Form_Element_SubmitaX =Zend_Form_Element_SelectaW ;Zend_Form_Element_ResetaV ;Zend_Form_Element_RadioaU AZend_Form_Element_Passworda"T GZend_Form_Element_Multiselecta$S KZend_Form_Element_MultiCheckboxaR ;Zend_Form_Element_MultiaQ ;Zend_Form_Element_ImageaP =Zend_Form_Element_HiddenaO 9Zend_Form_Element_HashaN 9Zend_Form_Element_Filea M CZend_Form_Element_ExceptionaL AZend_Form_Element_CheckboxaK ?Zend_Form_Element_CaptchaaJ =Zend_Form_Element_ButtonaI 9Zend_Form_DisplayGroupa#H IZend_Form_Decorator_ViewScripta#G IZend_Form_Decorator_ViewHelpera(F SZend_Form_Decorator_PrepareElementsaE ?Zend_Form_Decorator_LabelaD ?Zend_Form_Decorator_Imagea C CZend_Form_Decorator_HtmlTaga#B IZend_Form_Decorator_FormErrorsa%A MZend_Form_Decorator_FormElementsa@ =Zend_Form_Decorator_Forma? =Zend_Form_Decorator_Filea!> EZend_Form_Decorator_Fieldseta"= GZend_Form_Decorator_Exceptiona< AZend_Form_Decorator_Errorsa$; KZend_Form_Decorator_DtDdWrappera$: KZend_Form_Decorator_Descriptiona 9 CZend_Form_Decorator_Captchaa%8 MZend_Form_Decorator_Captcha_Worda!7 EZend_Form_Decorator_Callbacka!6 EZend_Form_Decorator_Abstracta5 #Zend_Filtera+4 YZend_Filter_Word_UnderscoreToSeparatora&3 OZend_Filter_Word_UnderscoreToDasha+2 YZend_Filter_Word_UnderscoreToCamelCasea*1 WZend_Filter_Word_SeparatorToSeparatora%0 MZend_Filter_Word_SeparatorToDasha*/ WZend_Filter_Word_SeparatorToCamelCasea(. SZend_Filter_Word_Separator_Abstracta&- OZend_Filter_Word_DashToUnderscorea%, MZend_Filter_Word_DashToSeparatora%+ MZend_Filter_Word_DashToCamelCasea+* YZend_Filter_Word_CamelCaseToUnderscorea*) WZend_Filter_Word_CamelCaseToSeparatora%( MZend_Filter_Word_CamelCaseToDasha' 7Zend_Filter_StripTagsa& ?Zend_Filter_StripNewlinesa% 9Zend_Filter_StringTrima$ ?Zend_Filter_StringToUppera# ?Zend_Filter_StringToLowera" 5Zend_Filter_RealPatha! ;Zend_Filter_PregReplacea  +Zend_Filter_Inta /Zend_Filter_Inputa 7Zend_Filter_Inflectora =Zend_Filter_HtmlEntitiesa AZend_Filter_File_UpperCasea ;Zend_Filter_File_Renamea AZend_Filter_File_LowerCasea 7Zend_Filter_Exceptiona   _  `*kBY-tO+yG



e
(				}	a	B	\(c4V+}W0Y/	e1|T#fE(                                   $a KZend_Gdata_Gapps_EmailListEntrya` +Zend_Gdata_Feeda_ 5Zend_Gdata_Extensiona^ =Zend_Gdata_Extension_Whoa] AZend_Gdata_Extension_Wherea\ ?Zend_Gdata_Extension_Whena$[ KZend_Gdata_Extension_Visibilitya&Z OZend_Gdata_Extension_Transparencya"Y GZend_Gdata_Extension_Remindera-X ]Zend_Gdata_Extension_RecurrenceExceptiona$W KZend_Gdata_Extension_Recurrencea V CZend_Gdata_Extension_Ratinga'U QZend_Gdata_Extension_OriginalEventa0T cZend_Gdata_Extension_OpenSearchTotalResultsa.S _Zend_Gdata_Extension_OpenSearchStartIndexa0R cZend_Gdata_Extension_OpenSearchItemsPerPagea"Q GZend_Gdata_Extension_FeedLinka*P WZend_Gdata_Extension_ExtendedPropertya%O MZend_Gdata_Extension_EventStatusa#N IZend_Gdata_Extension_EntryLinka"M GZend_Gdata_Extension_Commentsa&L OZend_Gdata_Extension_AttendeeTypea(K SZend_Gdata_Extension_AttendeeStatusaJ +Zend_Gdata_ExifaI 5Zend_Gdata_Exif_Feeda#H IZend_Gdata_Exif_Extension_Timea#G IZend_Gdata_Exif_Extension_Tagsa$F KZend_Gdata_Exif_Extension_Modela#E IZend_Gdata_Exif_Extension_Makea"D GZend_Gdata_Exif_Extension_Isoa,C [Zend_Gdata_Exif_Extension_ImageUniqueIda$B KZend_Gdata_Exif_Extension_FStopa*A WZend_Gdata_Exif_Extension_FocalLengtha$@ KZend_Gdata_Exif_Extension_Flasha'? QZend_Gdata_Exif_Extension_Exposurea'> QZend_Gdata_Exif_Extension_Distancea= 7Zend_Gdata_Exif_Entrya< -Zend_Gdata_Entrya; 7Zend_Gdata_DublinCorea*: WZend_Gdata_DublinCore_Extension_Titlea,9 [Zend_Gdata_DublinCore_Extension_Subjecta+8 YZend_Gdata_DublinCore_Extension_Rightsa.7 _Zend_Gdata_DublinCore_Extension_Publishera-6 ]Zend_Gdata_DublinCore_Extension_Languagea/5 aZend_Gdata_DublinCore_Extension_Identifiera+4 YZend_Gdata_DublinCore_Extension_Formata03 cZend_Gdata_DublinCore_Extension_Descriptiona)2 UZend_Gdata_DublinCore_Extension_Datea,1 [Zend_Gdata_DublinCore_Extension_Creatora0 +Zend_Gdata_Docsa/ 7Zend_Gdata_Docs_Querya%. MZend_Gdata_Docs_DocumentListFeeda&- OZend_Gdata_Docs_DocumentListEntrya, 9Zend_Gdata_ClientLogina+ 3Zend_Gdata_Calendara!* EZend_Gdata_Calendar_ListFeeda") GZend_Gdata_Calendar_ListEntrya-( ]Zend_Gdata_Calendar_Extension_WebContenta+' YZend_Gdata_Calendar_Extension_Timezonea9& uZend_Gdata_Calendar_Extension_SendEventNotificationsa+% YZend_Gdata_Calendar_Extension_Selecteda+$ YZend_Gdata_Calendar_Extension_QuickAdda'# QZend_Gdata_Calendar_Extension_Linka)" UZend_Gdata_Calendar_Extension_Hiddena(! SZend_Gdata_Calendar_Extension_Colora.  _Zend_Gdata_Calendar_Extension_AccessLevela# IZend_Gdata_Calendar_EventQuerya" GZend_Gdata_Calendar_EventFeeda# IZend_Gdata_Calendar_EventEntrya -Zend_Gdata_Booksa! EZend_Gdata_Books_VolumeQuerya  CZend_Gdata_Books_VolumeFeeda! EZend_Gdata_Books_VolumeEntrya+ YZend_Gdata_Books_Extension_Viewabilitya- ]Zend_Gdata_Books_Extension_ThumbnailLinka& OZend_Gdata_Books_Extension_Reviewa+ YZend_Gdata_Books_Extension_PreviewLinka( SZend_Gdata_Books_Extension_InfoLinka- ]Zend_Gdata_Books_Extension_Embeddabilitya) UZend_Gdata_Books_Extension_BooksLinka- ]Zend_Gdata_Books_Extension_BooksCategorya. _Zend_Gdata_Books_Extension_AnnotationLinka$ KZend_Gdata_Books_CollectionFeeda% MZend_Gdata_Books_CollectionEntrya 1Zend_Gdata_AuthSuba )Zend_Gdata_Appa$ KZend_Gdata_App_VersionExceptiona
 3Zend_Gdata_App_Utila#	 IZend_Gdata_App_MediaFileSourcea ?Zend_Gdata_App_MediaEntrya2 gZend_Gdata_App_LoggingHttpClientAdapterSocketa AZend_Gdata_App_IOExceptiona, [Zend_Gdata_App_InvalidArgumentExceptiona! EZend_Gdata_App_HttpExceptiona$ KZend_Gdata_App_FeedSourceParenta   _  P V-pM+^<pS&




y
R
,
					\	=	{G])~e@yKa:Sc6\1                             !@ EZend_Gdata_Photos_PhotoEntrya&? OZend_Gdata_Photos_Extension_Widtha'> QZend_Gdata_Photos_Extension_Weighta(= SZend_Gdata_Photos_Extension_Versiona%< MZend_Gdata_Photos_Extension_Usera*; WZend_Gdata_Photos_Extension_Timestampa*: WZend_Gdata_Photos_Extension_Thumbnaila%9 MZend_Gdata_Photos_Extension_Sizea)8 UZend_Gdata_Photos_Extension_Rotationa+7 YZend_Gdata_Photos_Extension_QuotaLimita-6 ]Zend_Gdata_Photos_Extension_QuotaCurrenta)5 UZend_Gdata_Photos_Extension_Positiona(4 SZend_Gdata_Photos_Extension_PhotoIda33 iZend_Gdata_Photos_Extension_NumPhotosRemaininga*2 WZend_Gdata_Photos_Extension_NumPhotosa)1 UZend_Gdata_Photos_Extension_Nicknamea%0 MZend_Gdata_Photos_Extension_Namea2/ gZend_Gdata_Photos_Extension_MaxPhotosPerAlbuma). UZend_Gdata_Photos_Extension_Locationa#- IZend_Gdata_Photos_Extension_Ida', QZend_Gdata_Photos_Extension_Heighta2+ gZend_Gdata_Photos_Extension_CommentingEnableda-* ]Zend_Gdata_Photos_Extension_CommentCounta') QZend_Gdata_Photos_Extension_Clienta)( UZend_Gdata_Photos_Extension_Checksuma*' WZend_Gdata_Photos_Extension_BytesUseda(& SZend_Gdata_Photos_Extension_AlbumIda'% QZend_Gdata_Photos_Extension_Accessa#$ IZend_Gdata_Photos_CommentEntrya!# EZend_Gdata_Photos_AlbumQuerya " CZend_Gdata_Photos_AlbumFeeda!! EZend_Gdata_Photos_AlbumEntrya  -Zend_Gdata_Mediaa 7Zend_Gdata_Media_Feeda* WZend_Gdata_Media_Extension_MediaTitlea. _Zend_Gdata_Media_Extension_MediaThumbnaila) UZend_Gdata_Media_Extension_MediaTexta0 cZend_Gdata_Media_Extension_MediaRestrictiona+ YZend_Gdata_Media_Extension_MediaRatinga+ YZend_Gdata_Media_Extension_MediaPlayera- ]Zend_Gdata_Media_Extension_MediaKeywordsa) UZend_Gdata_Media_Extension_MediaHasha* WZend_Gdata_Media_Extension_MediaGroupa0 cZend_Gdata_Media_Extension_MediaDescriptiona+ YZend_Gdata_Media_Extension_MediaCredita. _Zend_Gdata_Media_Extension_MediaCopyrighta, [Zend_Gdata_Media_Extension_MediaContenta- ]Zend_Gdata_Media_Extension_MediaCategorya 9Zend_Gdata_Media_Entrya AZend_Gdata_Kind_EventEntrya 7Zend_Gdata_HttpClienta /Zend_Gdata_Healtha ;Zend_Gdata_Health_Querya& OZend_Gdata_Health_ProfileListFeeda'
 QZend_Gdata_Health_ProfileListEntrya"	 GZend_Gdata_Health_ProfileFeeda# IZend_Gdata_Health_ProfileEntrya$ KZend_Gdata_Health_Extension_Ccra )Zend_Gdata_Geoa 3Zend_Gdata_Geo_Feeda$ KZend_Gdata_Geo_Extension_GmlPosa& OZend_Gdata_Geo_Extension_GmlPointa) UZend_Gdata_Geo_Extension_GeoRssWherea 5Zend_Gdata_Geo_Entrya  -Zend_Gdata_Gbasea" GZend_Gdata_Gbase_SnippetQuerya!~ EZend_Gdata_Gbase_SnippetFeeda"} GZend_Gdata_Gbase_SnippetEntrya| 9Zend_Gdata_Gbase_Querya{ AZend_Gdata_Gbase_ItemQueryaz ?Zend_Gdata_Gbase_ItemFeeday AZend_Gdata_Gbase_ItemEntryax 7Zend_Gdata_Gbase_Feeda-w ]Zend_Gdata_Gbase_Extension_BaseAttributeav 9Zend_Gdata_Gbase_Entryau -Zend_Gdata_Gappsat AZend_Gdata_Gapps_UserQueryas ?Zend_Gdata_Gapps_UserFeedar AZend_Gdata_Gapps_UserEntrya&q OZend_Gdata_Gapps_ServiceExceptionap 9Zend_Gdata_Gapps_Querya#o IZend_Gdata_Gapps_NicknameQuerya"n GZend_Gdata_Gapps_NicknameFeeda#m IZend_Gdata_Gapps_NicknameEntrya%l MZend_Gdata_Gapps_Extension_Quotaa(k SZend_Gdata_Gapps_Extension_Nicknamea$j KZend_Gdata_Gapps_Extension_Namea%i MZend_Gdata_Gapps_Extension_Logina)h UZend_Gdata_Gapps_Extension_EmailListag 9Zend_Gdata_Gapps_Errora-f ]Zend_Gdata_Gapps_EmailListRecipientQuerya,e [Zend_Gdata_Gapps_EmailListRecipientFeeda-d ]Zend_Gdata_Gapps_EmailListRecipientEntrya$c KZend_Gdata_Gapps_EmailListQuerya#b IZend_Gdata_Gapps_EmailListFeeda   ]  pM)yK[2xJ*_6



Q
#				m	?	T#o?V(n>^8W+s`5kO3          $ KZend_InfoCard_Adapter_Exceptiona" GZend_InfoCard_Adapter_Defaulta 1Zend_Http_Responsea 3Zend_Http_Exceptiona 3Zend_Http_CookieJara -Zend_Http_Cookiea -Zend_Http_Clienta AZend_Http_Client_Exceptiona" GZend_Http_Client_Adapter_Testa$ KZend_Http_Client_Adapter_Socketa# IZend_Http_Client_Adapter_Proxya' QZend_Http_Client_Adapter_Exceptiona !Zend_Gdataa 1Zend_Gdata_YouTubea" GZend_Gdata_YouTube_VideoQuerya! EZend_Gdata_YouTube_VideoFeeda" GZend_Gdata_YouTube_VideoEntrya( SZend_Gdata_YouTube_UserProfileEntrya( SZend_Gdata_YouTube_SubscriptionFeeda)
 UZend_Gdata_YouTube_SubscriptionEntrya)	 UZend_Gdata_YouTube_PlaylistVideoFeeda* WZend_Gdata_YouTube_PlaylistVideoEntrya( SZend_Gdata_YouTube_PlaylistListFeeda) UZend_Gdata_YouTube_PlaylistListEntrya" GZend_Gdata_YouTube_MediaEntrya) UZend_Gdata_YouTube_Extension_VideoIda* WZend_Gdata_YouTube_Extension_Usernamea* WZend_Gdata_YouTube_Extension_Uploadeda' QZend_Gdata_YouTube_Extension_Tokena(  SZend_Gdata_YouTube_Extension_Statusa, [Zend_Gdata_YouTube_Extension_Statisticsa'~ QZend_Gdata_YouTube_Extension_Statea(} SZend_Gdata_YouTube_Extension_Schoola-| ]Zend_Gdata_YouTube_Extension_ReleaseDatea.{ _Zend_Gdata_YouTube_Extension_Relationshipa*z WZend_Gdata_YouTube_Extension_Recordeda&y OZend_Gdata_YouTube_Extension_Racya-x ]Zend_Gdata_YouTube_Extension_QueryStringa)w UZend_Gdata_YouTube_Extension_Privatea*v WZend_Gdata_YouTube_Extension_Positiona/u aZend_Gdata_YouTube_Extension_PlaylistTitlea,t [Zend_Gdata_YouTube_Extension_PlaylistIda,s [Zend_Gdata_YouTube_Extension_Occupationa)r UZend_Gdata_YouTube_Extension_NoEmbeda'q QZend_Gdata_YouTube_Extension_Musica(p SZend_Gdata_YouTube_Extension_Moviesa-o ]Zend_Gdata_YouTube_Extension_MediaRatinga,n [Zend_Gdata_YouTube_Extension_MediaGroupa-m ]Zend_Gdata_YouTube_Extension_MediaCredita.l _Zend_Gdata_YouTube_Extension_MediaContenta*k WZend_Gdata_YouTube_Extension_Locationa&j OZend_Gdata_YouTube_Extension_Linka*i WZend_Gdata_YouTube_Extension_LastNamea*h WZend_Gdata_YouTube_Extension_Hometowna)g UZend_Gdata_YouTube_Extension_Hobbiesa(f SZend_Gdata_YouTube_Extension_Gendera+e YZend_Gdata_YouTube_Extension_FirstNamea*d WZend_Gdata_YouTube_Extension_Durationa-c ]Zend_Gdata_YouTube_Extension_Descriptiona+b YZend_Gdata_YouTube_Extension_CountHinta)a UZend_Gdata_YouTube_Extension_Controla)` UZend_Gdata_YouTube_Extension_Companya'_ QZend_Gdata_YouTube_Extension_Booksa%^ MZend_Gdata_YouTube_Extension_Agea)] UZend_Gdata_YouTube_Extension_AboutMea#\ IZend_Gdata_YouTube_ContactFeeda$[ KZend_Gdata_YouTube_ContactEntrya#Z IZend_Gdata_YouTube_CommentFeeda$Y KZend_Gdata_YouTube_CommentEntryaX ;Zend_Gdata_Spreadsheetsa*W WZend_Gdata_Spreadsheets_WorksheetFeeda+V YZend_Gdata_Spreadsheets_WorksheetEntrya,U [Zend_Gdata_Spreadsheets_SpreadsheetFeeda-T ]Zend_Gdata_Spreadsheets_SpreadsheetEntrya&S OZend_Gdata_Spreadsheets_ListQuerya%R MZend_Gdata_Spreadsheets_ListFeeda&Q OZend_Gdata_Spreadsheets_ListEntrya/P aZend_Gdata_Spreadsheets_Extension_RowCounta-O ]Zend_Gdata_Spreadsheets_Extension_Customa/N aZend_Gdata_Spreadsheets_Extension_ColCounta+M YZend_Gdata_Spreadsheets_Extension_Cella*L WZend_Gdata_Spreadsheets_DocumentQuerya&K OZend_Gdata_Spreadsheets_CellQuerya%J MZend_Gdata_Spreadsheets_CellFeeda&I OZend_Gdata_Spreadsheets_CellEntryaH -Zend_Gdata_QueryaG /Zend_Gdata_Photosa F CZend_Gdata_Photos_UserQueryaE AZend_Gdata_Photos_UserFeeda D CZend_Gdata_Photos_UserEntryaC AZend_Gdata_Photos_TagEntrya!B EZend_Gdata_Photos_PhotoQuerya A CZend_Gdata_Photos_PhotoFeeda   o  zB	mM$ ~V/j=a>





i
F
 					t	[	I	j?
pO6"`A {_@&
j=W1fL'iN4                   =Zend_Measure_Capacitancea 3Zend_Measure_Binarya
 /Zend_Measure_Areaa	 1Zend_Measure_Anglea ?Zend_Measure_Accelerationa 7Zend_Measure_Abstracta Zend_Maila =Zend_Mail_Transport_Smtpa! EZend_Mail_Transport_Sendmaila" GZend_Mail_Transport_Exceptiona! EZend_Mail_Transport_Abstracta /Zend_Mail_Storagea'  QZend_Mail_Storage_Writable_Maildira 9Zend_Mail_Storage_Pop3a~ 9Zend_Mail_Storage_Mboxa} ?Zend_Mail_Storage_Maildira| 9Zend_Mail_Storage_Imapa{ =Zend_Mail_Storage_Foldera"z GZend_Mail_Storage_Folder_Mboxa%y MZend_Mail_Storage_Folder_Maildira x CZend_Mail_Storage_Exceptionaw AZend_Mail_Storage_Abstractav ;Zend_Mail_Protocol_Smtpa'u QZend_Mail_Protocol_Smtp_Auth_Plaina't QZend_Mail_Protocol_Smtp_Auth_Logina)s UZend_Mail_Protocol_Smtp_Auth_Crammd5ar ;Zend_Mail_Protocol_Pop3aq ;Zend_Mail_Protocol_Imapa!p EZend_Mail_Protocol_Exceptiona o CZend_Mail_Protocol_Abstractan )Zend_Mail_Partam 3Zend_Mail_Part_Fileal /Zend_Mail_Messageak 9Zend_Mail_Message_Fileaj 3Zend_Mail_Exceptionai Zend_Logah 9Zend_Log_Writer_Streamag 5Zend_Log_Writer_Nullaf 5Zend_Log_Writer_Mockae ;Zend_Log_Writer_Firebugad 1Zend_Log_Writer_Dbac =Zend_Log_Writer_Abstractab 9Zend_Log_Formatter_Xmlaa ?Zend_Log_Formatter_Simplea` AZend_Log_Formatter_Firebuga_ =Zend_Log_Filter_Suppressa^ =Zend_Log_Filter_Prioritya] ;Zend_Log_Filter_Messagea\ 1Zend_Log_Exceptiona[ #Zend_LocaleaZ -Zend_Locale_MathaY =Zend_Locale_Math_PhpMathaX AZend_Locale_Math_ExceptionaW 1Zend_Locale_FormataV 7Zend_Locale_ExceptionaU -Zend_Locale_Dataa!T EZend_Locale_Data_TranslationaS #Zend_LoaderaR =Zend_Loader_PluginLoadera'Q QZend_Loader_PluginLoader_ExceptionaP 7Zend_Loader_ExceptionaO Zend_LdapaN 3Zend_Ldap_ExceptionaM #Zend_LayoutaL 7Zend_Layout_Exceptiona)K UZend_Layout_Controller_Plugin_Layouta0J cZend_Layout_Controller_Action_Helper_LayoutaI Zend_JsonaH -Zend_Json_ServeraG 5Zend_Json_Server_Smda!F EZend_Json_Server_Smd_ServiceaE ?Zend_Json_Server_Responsea#D IZend_Json_Server_Response_HttpaC =Zend_Json_Server_Requesta"B GZend_Json_Server_Request_HttpaA AZend_Json_Server_Exceptiona@ 9Zend_Json_Server_Errora? 9Zend_Json_Server_Cachea> 3Zend_Json_Exceptiona= /Zend_Json_Encodera< /Zend_Json_Decodera; 'Zend_InfoCarda-: ]Zend_InfoCard_Xml_SecurityTokenReferencea9 AZend_InfoCard_Xml_Securitya)8 UZend_InfoCard_Xml_Security_Transforma47 kZend_InfoCard_Xml_Security_Transform_XmlExcC14Na36 iZend_InfoCard_Xml_Security_Transform_Exceptiona<5 {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignaturea)4 UZend_InfoCard_Xml_Security_Exceptiona3 ?Zend_InfoCard_Xml_KeyInfoa&2 OZend_InfoCard_Xml_KeyInfo_XmlDSiga&1 OZend_InfoCard_Xml_KeyInfo_Defaulta'0 QZend_InfoCard_Xml_KeyInfo_Abstracta / CZend_InfoCard_Xml_Exceptiona#. IZend_InfoCard_Xml_EncryptedKeya$- KZend_InfoCard_Xml_EncryptedDataa+, YZend_InfoCard_Xml_EncryptedData_XmlEnca-+ ]Zend_InfoCard_Xml_EncryptedData_Abstracta* ?Zend_InfoCard_Xml_Elementa ) CZend_InfoCard_Xml_Assertiona%( MZend_InfoCard_Xml_Assertion_Samla' ;Zend_InfoCard_Exceptiona%& MZend_InfoCard_Exception_Abstracta% 5Zend_InfoCard_Claimsa$ 5Zend_InfoCard_Ciphera5# mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbca5" mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbca4! kZend_InfoCard_Cipher_Symmetric_Adapter_Abstracta)  UZend_InfoCard_Cipher_Pki_Adapter_Rsaa. _Zend_InfoCard_Cipher_Pki_Adapter_Abstracta# IZend_InfoCard_Cipher_Exceptiona   s  ~bC$lM1_6pR6fA$



v
L
*
					W	3	^G_C(qP)	rK+~T3wQ1mW8 X"        ) UZend_Pdf_Resource_Font_Simple_Parseda2~ gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypea*} WZend_Pdf_Resource_Font_FontDescriptora%| MZend_Pdf_Resource_Font_Extracteda#{ IZend_Pdf_Resource_Font_CidFonta,z [Zend_Pdf_Resource_Font_CidFont_TrueTypeay /Zend_Pdf_PhpArrayax +Zend_Pdf_Parseraw 9Zend_Pdf_Parser_Streamav 'Zend_Pdf_Pageau )Zend_Pdf_Imageat 'Zend_Pdf_Fonta s CZend_Pdf_Filter_Compressiona$r KZend_Pdf_Filter_Compression_Lzwa&q OZend_Pdf_Filter_Compression_Flateap =Zend_Pdf_Filter_AsciiHexao ;Zend_Pdf_Filter_Ascii85a"n GZend_Pdf_FileParserDataSourcea)m UZend_Pdf_FileParserDataSource_Stringa'l QZend_Pdf_FileParserDataSource_Fileak 3Zend_Pdf_FileParseraj ?Zend_Pdf_FileParser_Imagea"i GZend_Pdf_FileParser_Image_Pngah =Zend_Pdf_FileParser_Fonta&g OZend_Pdf_FileParser_Font_OpenTypea/f aZend_Pdf_FileParser_Font_OpenType_TrueTypeae 1Zend_Pdf_Exceptionad ;Zend_Pdf_ElementFactorya"c GZend_Pdf_ElementFactory_Proxyab -Zend_Pdf_Elementaa ;Zend_Pdf_Element_Stringa#` IZend_Pdf_Element_String_Binarya_ ;Zend_Pdf_Element_Streama^ AZend_Pdf_Element_Referencea%] MZend_Pdf_Element_Reference_Tablea'\ QZend_Pdf_Element_Reference_Contexta[ ;Zend_Pdf_Element_Objecta#Z IZend_Pdf_Element_Object_StreamaY =Zend_Pdf_Element_NumericaX 7Zend_Pdf_Element_NullaW 7Zend_Pdf_Element_Namea V CZend_Pdf_Element_DictionaryaU =Zend_Pdf_Element_BooleanaT 9Zend_Pdf_Element_ArrayaS )Zend_Pdf_ColoraR 1Zend_Pdf_Color_RgbaQ 3Zend_Pdf_Color_HtmlaP =Zend_Pdf_Color_GrayScaleaO 3Zend_Pdf_Color_CmykaN 'Zend_Pdf_CmapaM AZend_Pdf_Cmap_TrimmedTablea!L EZend_Pdf_Cmap_SegmentToDeltaaK AZend_Pdf_Cmap_ByteEncodinga&J OZend_Pdf_Cmap_ByteEncoding_StaticaI )Zend_Paginatora*H WZend_Paginator_ScrollingStyle_Slidinga*G WZend_Paginator_ScrollingStyle_Jumpinga*F WZend_Paginator_ScrollingStyle_Elastica&E OZend_Paginator_ScrollingStyle_AllaD =Zend_Paginator_Exceptiona C CZend_Paginator_Adapter_Nulla$B KZend_Paginator_Adapter_Iteratora)A UZend_Paginator_Adapter_DbTableSelecta$@ KZend_Paginator_Adapter_DbSelecta!? EZend_Paginator_Adapter_Arraya> #Zend_OpenIda= 5Zend_OpenId_Providera< ?Zend_OpenId_Provider_Usera&; OZend_OpenId_Provider_User_Sessiona!: EZend_OpenId_Provider_Storagea&9 OZend_OpenId_Provider_Storage_Filea8 7Zend_OpenId_Extensiona7 AZend_OpenId_Extension_Srega6 7Zend_OpenId_Exceptiona5 5Zend_OpenId_Consumera!4 EZend_OpenId_Consumer_Storagea&3 OZend_OpenId_Consumer_Storage_Filea2 Zend_Mimea1 )Zend_Mime_Parta0 /Zend_Mime_Messagea/ 3Zend_Mime_Exceptiona. -Zend_Mime_Decodea- #Zend_Memorya, /Zend_Memory_Valuea+ 3Zend_Memory_Managera* 7Zend_Memory_Exceptiona) 7Zend_Memory_Containera"( GZend_Memory_Container_Movablea!' EZend_Memory_Container_Lockeda!& EZend_Memory_AccessControllera% 3Zend_Measure_Weighta$ 3Zend_Measure_Volumea%# MZend_Measure_Viscosity_Kinematica#" IZend_Measure_Viscosity_Dynamica! 3Zend_Measure_Torquea  /Zend_Measure_Timea =Zend_Measure_Temperaturea 1Zend_Measure_Speeda 7Zend_Measure_Pressurea 1Zend_Measure_Powera 3Zend_Measure_Numbera 9Zend_Measure_Lightnessa 3Zend_Measure_Lengtha ?Zend_Measure_Illuminationa 9Zend_Measure_Frequencya 1Zend_Measure_Forcea =Zend_Measure_Flow_Volumea 9Zend_Measure_Flow_Molea 9Zend_Measure_Flow_Massa 9Zend_Measure_Exceptiona 3Zend_Measure_Energya 5Zend_Measure_Densitya 5Zend_Measure_Currenta  CZend_Measure_Cooking_Weighta  CZend_Measure_Cooking_Volumea   V  LSe*_:fL.





\
1
						n	K	!	r(fZ&W`4xY4~DlF                           #U IZend_Search_Lucene_LockManagera$T KZend_Search_Lucene_Index_Writera&S OZend_Search_Lucene_Index_TermInfoa"R GZend_Search_Lucene_Index_Terma+Q YZend_Search_Lucene_Index_SegmentWritera8P sZend_Search_Lucene_Index_SegmentWriter_StreamWritera:O wZend_Search_Lucene_Index_SegmentWriter_DocumentWritera+N YZend_Search_Lucene_Index_SegmentMergera6M oZend_Search_Lucene_Index_SegmentInfoPriorityQueuea)L UZend_Search_Lucene_Index_SegmentInfoa'K QZend_Search_Lucene_Index_FieldInfoa(J SZend_Search_Lucene_Index_DocsFiltera.I _Zend_Search_Lucene_Index_DictionaryLoadera!H EZend_Search_Lucene_FSMActionaG 9Zend_Search_Lucene_FSMaF =Zend_Search_Lucene_Fielda!E EZend_Search_Lucene_Exceptiona D CZend_Search_Lucene_Documenta%C MZend_Search_Lucene_Document_Xlsxa%B MZend_Search_Lucene_Document_Pptxa(A SZend_Search_Lucene_Document_OpenXmla%@ MZend_Search_Lucene_Document_Htmla%? MZend_Search_Lucene_Document_Docxa,> [Zend_Search_Lucene_Analysis_TokenFiltera6= oZend_Search_Lucene_Analysis_TokenFilter_StopWordsa7< qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsa:; wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8a6: oZend_Search_Lucene_Analysis_TokenFilter_LowerCasea&9 OZend_Search_Lucene_Analysis_Tokena)8 UZend_Search_Lucene_Analysis_Analyzera07 cZend_Search_Lucene_Analysis_Analyzer_Commona86 sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumaI5 Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitivea54 mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8aF3 Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitivea82 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumaI1 Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitivea50 mZend_Search_Lucene_Analysis_Analyzer_Common_TextaF/ Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitivea. 7Zend_Search_Exceptiona- -Zend_Rest_Servera, AZend_Rest_Server_Exceptiona+ 3Zend_Rest_Exceptiona* -Zend_Rest_Clienta) ;Zend_Rest_Client_Resulta&( OZend_Rest_Client_Result_Exceptiona' AZend_Rest_Client_Exceptiona& 'Zend_Registrya% -Zend_ProgressBara$ AZend_ProgressBar_Exceptiona# =Zend_ProgressBar_Adaptera$" KZend_ProgressBar_Adapter_JsPusha$! KZend_ProgressBar_Adapter_JsPulla'  QZend_ProgressBar_Adapter_Exceptiona% MZend_ProgressBar_Adapter_Consolea Zend_Pdfa! EZend_Pdf_UpdateInfoContainera -Zend_Pdf_Trailera ;Zend_Pdf_Trailer_Keepera AZend_Pdf_Trailer_Generatora )Zend_Pdf_Stylea 7Zend_Pdf_StringParsera /Zend_Pdf_Resourcea# IZend_Pdf_Resource_ImageFactorya ;Zend_Pdf_Resource_Imagea! EZend_Pdf_Resource_Image_Tiffa  CZend_Pdf_Resource_Image_Pnga! EZend_Pdf_Resource_Image_Jpega 9Zend_Pdf_Resource_Fonta! EZend_Pdf_Resource_Font_Type0a" GZend_Pdf_Resource_Font_Simplea+ YZend_Pdf_Resource_Font_Simple_Standarda8 sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsa6 oZend_Pdf_Resource_Font_Simple_Standard_TimesRomana7 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalica;
 yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalica5	 mZend_Pdf_Resource_Font_Simple_Standard_TimesBolda2 gZend_Pdf_Resource_Font_Simple_Standard_Symbola< {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueaA Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliquea9 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBolda5 mZend_Pdf_Resource_Font_Simple_Standard_Helveticaa: wZend_Pdf_Resource_Font_Simple_Standard_CourierObliquea> Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliquea7 qZend_Pdf_Resource_Font_Simple_Standard_CourierBolda3  iZend_Pdf_Resource_Font_Simple_Standard_Couriera   _  xHU'm7RW&



f
=
			v	N	3	uP+^:c;wU0}T0~[5pR)hC                          4 AZend_Service_Simpy_NoteSeta3 ;Zend_Service_Simpy_Notea2 AZend_Service_Simpy_LinkSeta!1 EZend_Service_Simpy_LinkQuerya0 ;Zend_Service_Simpy_Linka/ 9Zend_Service_ReCaptchaa$. KZend_Service_ReCaptcha_Responsea$- KZend_Service_ReCaptcha_MailHidea., _Zend_Service_ReCaptcha_MailHide_Exceptiona%+ MZend_Service_ReCaptcha_Exceptiona* 7Zend_Service_Nirvanixa#) IZend_Service_Nirvanix_Responsea)( UZend_Service_Nirvanix_Namespace_Imfsa)' UZend_Service_Nirvanix_Namespace_Basea$& KZend_Service_Nirvanix_Exceptiona% 3Zend_Service_Flickra"$ GZend_Service_Flickr_ResultSeta# AZend_Service_Flickr_Resulta" ?Zend_Service_Flickr_Imagea! 9Zend_Service_Exceptiona  9Zend_Service_Deliciousa& OZend_Service_Delicious_SimplePosta$ KZend_Service_Delicious_PostLista  CZend_Service_Delicious_Posta% MZend_Service_Delicious_Exceptiona  CZend_Service_Audioscrobblera 3Zend_Service_Amazona' QZend_Service_Amazon_SimilarProducta" GZend_Service_Amazon_ResultSeta ?Zend_Service_Amazon_Querya! EZend_Service_Amazon_OfferSeta ?Zend_Service_Amazon_Offera& OZend_Service_Amazon_ListmaniaLista =Zend_Service_Amazon_Itema ?Zend_Service_Amazon_Imagea( SZend_Service_Amazon_EditorialReviewa' QZend_Service_Amazon_CustomerReviewa$ KZend_Service_Amazon_Accessoriesa 5Zend_Service_Akismeta 7Zend_Service_Abstracta 9Zend_Server_Reflectiona' QZend_Server_Reflection_ReturnValuea%
 MZend_Server_Reflection_Prototypea%	 MZend_Server_Reflection_Parametera  CZend_Server_Reflection_Nodea" GZend_Server_Reflection_Methoda$ KZend_Server_Reflection_Functiona- ]Zend_Server_Reflection_Function_Abstracta% MZend_Server_Reflection_Exceptiona! EZend_Server_Reflection_Classa! EZend_Server_Method_Prototypea! EZend_Server_Method_Parametera"  GZend_Server_Method_Definitiona  CZend_Server_Method_Callbacka~ 7Zend_Server_Exceptiona} 9Zend_Server_Definitiona| /Zend_Server_Cachea{ 5Zend_Server_Abstractaz 1Zend_Search_Lucenea$y KZend_Search_Lucene_Storage_Filea+x YZend_Search_Lucene_Storage_File_Memorya/w aZend_Search_Lucene_Storage_File_Filesystema)v UZend_Search_Lucene_Storage_Directorya4u kZend_Search_Lucene_Storage_Directory_Filesystema%t MZend_Search_Lucene_Search_Weighta*s WZend_Search_Lucene_Search_Weight_Terma,r [Zend_Search_Lucene_Search_Weight_Phrasea/q aZend_Search_Lucene_Search_Weight_MultiTerma+p YZend_Search_Lucene_Search_Weight_Emptya-o ]Zend_Search_Lucene_Search_Weight_Booleana)n UZend_Search_Lucene_Search_Similaritya1m eZend_Search_Lucene_Search_Similarity_Defaulta)l UZend_Search_Lucene_Search_QueryTokena3k iZend_Search_Lucene_Search_QueryParserExceptiona1j eZend_Search_Lucene_Search_QueryParserContexta*i WZend_Search_Lucene_Search_QueryParsera)h UZend_Search_Lucene_Search_QueryLexera'g QZend_Search_Lucene_Search_QueryHita)f UZend_Search_Lucene_Search_QueryEntrya.e _Zend_Search_Lucene_Search_QueryEntry_Terma2d gZend_Search_Lucene_Search_QueryEntry_Subquerya0c cZend_Search_Lucene_Search_QueryEntry_Phrasea$b KZend_Search_Lucene_Search_Querya-a ]Zend_Search_Lucene_Search_Query_Wildcarda)` UZend_Search_Lucene_Search_Query_Terma*_ WZend_Search_Lucene_Search_Query_Rangea+^ YZend_Search_Lucene_Search_Query_Phrasea.] _Zend_Search_Lucene_Search_Query_MultiTerma2\ gZend_Search_Lucene_Search_Query_Insignificanta*[ WZend_Search_Lucene_Search_Query_Fuzzya*Z WZend_Search_Lucene_Search_Query_Emptya,Y [Zend_Search_Lucene_Search_Query_Booleana:X wZend_Search_Lucene_Search_BooleanExpressionRecognizeraW =Zend_Search_Lucene_Proxya%V MZend_Search_Lucene_PriorityQueuea   d  oAe;~^7yDm@



`
:
					j	C	mGY/
kBeE%iH#MxD\2               +Zend_Text_Tablea 3Zend_Text_Table_Rowa ?Zend_Text_Table_Exceptiona& OZend_Text_Table_Decorator_Unicodea$ KZend_Text_Table_Decorator_Asciia 9Zend_Text_Table_Columna 3Zend_Text_MultiBytea -Zend_Text_Figleta AZend_Text_Figlet_Exceptiona 3Zend_Text_Exceptiona) UZend_Test_PHPUnit_ControllerTestCasea0 cZend_Test_PHPUnit_Constraint_ResponseHeadera* WZend_Test_PHPUnit_Constraint_Redirecta+ YZend_Test_PHPUnit_Constraint_Exceptiona*
 WZend_Test_PHPUnit_Constraint_DomQuerya	 )Zend_Soap_Wsdla/ aZend_Soap_Wsdl_Strategy_DefaultComplexTypea0 cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequencea/ aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplexa$ KZend_Soap_Wsdl_Strategy_AnyTypea% MZend_Soap_Wsdl_Strategy_Abstracta 7Zend_Soap_Wsdl_Parsera! EZend_Soap_Wsdl_Parser_Resulta =Zend_Soap_Wsdl_Exceptiona!  EZend_Soap_Wsdl_CodeGeneratora -Zend_Soap_Servera~ AZend_Soap_Server_Exceptiona} -Zend_Soap_Clienta| 9Zend_Soap_Client_Locala{ AZend_Soap_Client_Exceptionaz ;Zend_Soap_Client_DotNetay ;Zend_Soap_Client_Commonax 9Zend_Soap_AutoDiscovera%w MZend_Soap_AutoDiscover_Exceptionav %Zend_Sessiona)u UZend_Session_Validator_HttpUserAgenta$t KZend_Session_Validator_Abstracta's QZend_Session_SaveHandler_Exceptiona%r MZend_Session_SaveHandler_DbTableaq 9Zend_Session_Namespaceap 9Zend_Session_Exceptionao 7Zend_Session_Abstractan 1Zend_Service_Yahooa$m KZend_Service_Yahoo_WebResultSeta!l EZend_Service_Yahoo_WebResulta&k OZend_Service_Yahoo_VideoResultSeta#j IZend_Service_Yahoo_VideoResulta!i EZend_Service_Yahoo_ResultSetah ?Zend_Service_Yahoo_Resulta)g UZend_Service_Yahoo_PageDataResultSeta&f OZend_Service_Yahoo_PageDataResulta%e MZend_Service_Yahoo_NewsResultSeta"d GZend_Service_Yahoo_NewsResulta&c OZend_Service_Yahoo_LocalResultSeta#b IZend_Service_Yahoo_LocalResulta+a YZend_Service_Yahoo_InlinkDataResultSeta(` SZend_Service_Yahoo_InlinkDataResulta&_ OZend_Service_Yahoo_ImageResultSeta#^ IZend_Service_Yahoo_ImageResulta] =Zend_Service_Yahoo_Imagea\ 5Zend_Service_Twittera [ CZend_Service_Twitter_Searcha#Z IZend_Service_Twitter_ExceptionaY ;Zend_Service_Technoratia#X IZend_Service_Technorati_Webloga"W GZend_Service_Technorati_Utilsa*V WZend_Service_Technorati_TagsResultSeta'U QZend_Service_Technorati_TagsResulta)T UZend_Service_Technorati_TagResultSeta&S OZend_Service_Technorati_TagResulta,R [Zend_Service_Technorati_SearchResultSeta)Q UZend_Service_Technorati_SearchResulta&P OZend_Service_Technorati_ResultSeta#O IZend_Service_Technorati_Resulta*N WZend_Service_Technorati_KeyInfoResulta*M WZend_Service_Technorati_GetInfoResulta&L OZend_Service_Technorati_Exceptiona1K eZend_Service_Technorati_DailyCountsResultSeta.J _Zend_Service_Technorati_DailyCountsResulta,I [Zend_Service_Technorati_CosmosResultSeta)H UZend_Service_Technorati_CosmosResulta+G YZend_Service_Technorati_BlogInfoResulta#F IZend_Service_Technorati_AuthoraE ;Zend_Service_StrikeIrona(D SZend_Service_StrikeIron_ZipCodeInfoa2C gZend_Service_StrikeIron_USAddressVerificationa-B ]Zend_Service_StrikeIron_SalesUseTaxBasica&A OZend_Service_StrikeIron_Exceptiona&@ OZend_Service_StrikeIron_Decoratora!? EZend_Service_StrikeIron_Basea> ;Zend_Service_SlideSharea&= OZend_Service_SlideShare_SlideShowa&< OZend_Service_SlideShare_Exceptiona; 1Zend_Service_Simpya$: KZend_Service_Simpy_WatchlistSeta*9 WZend_Service_Simpy_WatchlistFilterSeta'8 QZend_Service_Simpy_WatchlistFiltera!7 EZend_Service_Simpy_Watchlista6 ?Zend_Service_Simpy_TagSeta5 9Zend_Service_Simpy_Taga   s vQ.|W2z^BkH(mH#



t
P
+
					q	O	-	aB"wT>)jH*uQ.uR.
~Z7d=b=                       4 kZend_View_Helper_Placeholder_Container_Abstracta!
 EZend_View_Helper_PartialLoopa	 =Zend_View_Helper_Partiala' QZend_View_Helper_Partial_Exceptiona' QZend_View_Helper_PaginationControla ;Zend_View_Helper_Layouta 7Zend_View_Helper_Jsona" GZend_View_Helper_InlineScripta# IZend_View_Helper_HtmlQuicktimea ?Zend_View_Helper_HtmlPagea  CZend_View_Helper_HtmlObjecta  ?Zend_View_Helper_HtmlLista AZend_View_Helper_HtmlFlasha!~ EZend_View_Helper_HtmlElementa} AZend_View_Helper_HeadTitlea| AZend_View_Helper_HeadStylea { CZend_View_Helper_HeadScriptaz ?Zend_View_Helper_HeadMetaay ?Zend_View_Helper_HeadLinka"x GZend_View_Helper_FormTextareaaw ?Zend_View_Helper_FormTexta v CZend_View_Helper_FormSubmita u CZend_View_Helper_FormSelectat AZend_View_Helper_FormResetas AZend_View_Helper_FormRadioa"r GZend_View_Helper_FormPasswordaq ?Zend_View_Helper_FormNotea'p QZend_View_Helper_FormMultiCheckboxao AZend_View_Helper_FormLabelan AZend_View_Helper_FormImagea m CZend_View_Helper_FormHiddenal ?Zend_View_Helper_FormFilea k CZend_View_Helper_FormErrorsa!j EZend_View_Helper_FormElementa"i GZend_View_Helper_FormCheckboxa h CZend_View_Helper_FormButtonag 7Zend_View_Helper_Formaf ?Zend_View_Helper_Fieldsetae =Zend_View_Helper_Doctypea!d EZend_View_Helper_DeclareVarsac ;Zend_View_Helper_Actionab ?Zend_View_Helper_Abstractaa 3Zend_View_Exceptiona` 1Zend_View_Abstracta_ %Zend_Versiona^ 'Zend_Validatea] AZend_Validate_StringLengtha\ 3Zend_Validate_Regexa[ 9Zend_Validate_NotEmptyaZ 9Zend_Validate_LessThanaY -Zend_Validate_IpaX /Zend_Validate_IntaW 7Zend_Validate_InArrayaV ;Zend_Validate_IdenticalaU 9Zend_Validate_HostnameaT ?Zend_Validate_Hostname_SeaS ?Zend_Validate_Hostname_NoaR ?Zend_Validate_Hostname_LiaQ ?Zend_Validate_Hostname_HuaP ?Zend_Validate_Hostname_FiaO ?Zend_Validate_Hostname_DeaN ?Zend_Validate_Hostname_ChaM ?Zend_Validate_Hostname_AtaL /Zend_Validate_HexaK ?Zend_Validate_GreaterThanaJ 3Zend_Validate_FloataI ?Zend_Validate_File_UploadaH ;Zend_Validate_File_SizeaG ;Zend_Validate_File_Sha1a!F EZend_Validate_File_NotExistsa E CZend_Validate_File_MimeTypeaD 9Zend_Validate_File_Md5aC AZend_Validate_File_IsImagea$B KZend_Validate_File_IsCompresseda!A EZend_Validate_File_ImageSizea@ ;Zend_Validate_File_Hasha!? EZend_Validate_File_FilesSizea!> EZend_Validate_File_Extensiona= ?Zend_Validate_File_Existsa'< QZend_Validate_File_ExcludeMimeTypea(; SZend_Validate_File_ExcludeExtensiona: =Zend_Validate_File_Crc32a9 =Zend_Validate_File_Counta8 ;Zend_Validate_Exceptiona7 AZend_Validate_EmailAddressa6 5Zend_Validate_Digitsa5 1Zend_Validate_Datea4 3Zend_Validate_Ccnuma3 7Zend_Validate_Betweena2 7Zend_Validate_Barcodea1 AZend_Validate_Barcode_UpcAa 0 CZend_Validate_Barcode_Ean13a/ 3Zend_Validate_Alphaa. 3Zend_Validate_Alnuma- 9Zend_Validate_Abstracta, Zend_Uria+ 'Zend_Uri_Httpa* 1Zend_Uri_Exceptiona) )Zend_Translatea( =Zend_Translate_Exceptiona' 9Zend_Translate_Adaptera!& EZend_Translate_Adapter_XmlTma!% EZend_Translate_Adapter_Xliffa$ AZend_Translate_Adapter_Tmxa# AZend_Translate_Adapter_Tbxa" ?Zend_Translate_Adapter_Qta! AZend_Translate_Adapter_Inia#  IZend_Translate_Adapter_Gettexta AZend_Translate_Adapter_Csva! EZend_Translate_Adapter_Arraya 'Zend_TimeSynca 1Zend_TimeSync_Sntpa 9Zend_TimeSync_Protocola /Zend_TimeSync_Ntpa ;Zend_TimeSync_Exceptiona   m  ^&fM;mCmF+rU4




p
N
)
					`	?		q`E*fCkI1t@a?|Y:vdE% wO4                              x 5Zend_Cache_Exceptionbw +Zend_Cache_Corebv 1Zend_Cache_Backendb$u KZend_Cache_Backend_ZendPlatformbt ?Zend_Cache_Backend_Xcacheb!s EZend_Cache_Backend_TwoLevelsbr ;Zend_Cache_Backend_Testbq ?Zend_Cache_Backend_Sqliteb!p EZend_Cache_Backend_Memcachedbo ;Zend_Cache_Backend_Filebn 9Zend_Cache_Backend_Apcbm Zend_Authbl ?Zend_Auth_Storage_Sessionb$k KZend_Auth_Storage_NonPersistentb j CZend_Auth_Storage_Exceptionbi -Zend_Auth_Resultbh 3Zend_Auth_Exceptionbg =Zend_Auth_Adapter_OpenIdbf 9Zend_Auth_Adapter_Ldapbe AZend_Auth_Adapter_InfoCardbd 9Zend_Auth_Adapter_Httpb)c UZend_Auth_Adapter_Http_Resolver_Fileb.b _Zend_Auth_Adapter_Http_Resolver_Exceptionb a CZend_Auth_Adapter_Exceptionb` =Zend_Auth_Adapter_Digestb_ ?Zend_Auth_Adapter_DbTableb^ ?Zend_Amf_Value_TraitsInfob-] ]Zend_Amf_Value_Messaging_RemotingMessageb*\ WZend_Amf_Value_Messaging_ErrorMessageb,[ [Zend_Amf_Value_Messaging_CommandMessageb*Z WZend_Amf_Value_Messaging_AsyncMessageb0Y cZend_Amf_Value_Messaging_AcknowledgeMessageb-X ]Zend_Amf_Value_Messaging_AbstractMessageb!W EZend_Amf_Value_MessageHeaderbV AZend_Amf_Value_MessageBodybU =Zend_Amf_Value_ByteArraybT AZend_Amf_Util_BinaryStreambS +Zend_Amf_ServerbR ?Zend_Amf_Server_ExceptionbQ /Zend_Amf_ResponsebP 9Zend_Amf_Response_HttpbO -Zend_Amf_RequestbN 7Zend_Amf_Request_HttpbM ?Zend_Amf_Parse_TypeLoaderbL ?Zend_Amf_Parse_Serializerb K CZend_Amf_Parse_OutputStreambJ AZend_Amf_Parse_InputStreamb I CZend_Amf_Parse_Deserializerb#H IZend_Amf_Parse_Amf3_Serializerb%G MZend_Amf_Parse_Amf3_Deserializerb#F IZend_Amf_Parse_Amf0_Serializerb%E MZend_Amf_Parse_Amf0_DeserializerbD 1Zend_Amf_ExceptionbC 1Zend_Amf_ConstantsbB Zend_AclbA 'Zend_Acl_Roleb@ 9Zend_Acl_Role_Registryb%? MZend_Acl_Role_Registry_Exceptionb> /Zend_Acl_Resourceb= 1Zend_Acl_Exceptionb< /Zend_XmlRpc_Valuea; =Zend_XmlRpc_Value_Structa: =Zend_XmlRpc_Value_Stringa9 =Zend_XmlRpc_Value_Scalara8 7Zend_XmlRpc_Value_Nila7 ?Zend_XmlRpc_Value_Integera 6 CZend_XmlRpc_Value_Exceptiona5 =Zend_XmlRpc_Value_Doublea4 AZend_XmlRpc_Value_DateTimea!3 EZend_XmlRpc_Value_Collectiona2 ?Zend_XmlRpc_Value_Booleana1 =Zend_XmlRpc_Value_Base64a0 ;Zend_XmlRpc_Value_Arraya/ 1Zend_XmlRpc_Servera. ?Zend_XmlRpc_Server_Systema- =Zend_XmlRpc_Server_Faulta!, EZend_XmlRpc_Server_Exceptiona+ =Zend_XmlRpc_Server_Cachea* 5Zend_XmlRpc_Responsea) ?Zend_XmlRpc_Response_Httpa( 3Zend_XmlRpc_Requesta' ?Zend_XmlRpc_Request_Stdina& =Zend_XmlRpc_Request_Httpa% /Zend_XmlRpc_Faulta$ 7Zend_XmlRpc_Exceptiona# 1Zend_XmlRpc_Clienta#" IZend_XmlRpc_Client_ServerProxya+! YZend_XmlRpc_Client_ServerIntrospectiona+  YZend_XmlRpc_Client_IntrospectExceptiona% MZend_XmlRpc_Client_HttpExceptiona& OZend_XmlRpc_Client_FaultExceptiona! EZend_XmlRpc_Client_Exceptiona& OZend_Wildfire_Protocol_JsonStreama! EZend_Wildfire_Plugin_FirePhpa. _Zend_Wildfire_Plugin_FirePhp_TableMessagea) UZend_Wildfire_Plugin_FirePhp_Messagea ;Zend_Wildfire_Exceptiona& OZend_Wildfire_Channel_HttpHeadersa Zend_Viewa -Zend_View_Streama 5Zend_View_Helper_Urla AZend_View_Helper_Translatea) UZend_View_Helper_RenderToPlaceholdera! EZend_View_Helper_Placeholdera* WZend_View_Helper_Placeholder_Registrya4 kZend_View_Helper_Placeholder_Registry_Exceptiona+ YZend_View_Helper_Placeholder_Containera6 oZend_View_Helper_Placeholder_Container_Standalonea5 mZend_View_Helper_Placeholder_Container_Exceptiona   b  ]9xU8vHwL!|Y9



e
<
					j	A	kE$k?}Z7X*Y.^;vGtL#      % MZend_Validate_Hostname_Interfaceb( SZend_Text_Table_Decorator_Interfaceb& OZend_Soap_Wsdl_Strategy_Interfaceb% MZend_Session_Validator_Interfaceb' QZend_Session_SaveHandler_Interfaceb 7Zend_Server_Interfaceb! EZend_Search_Lucene_Interfaceb 9Zend_Request_Interfaceb ?Zend_Pdf_Filter_Interfaceb& OZend_Pdf_ElementFactory_Interfaceb, [Zend_Paginator_ScrollingStyle_Interfaceb% MZend_Paginator_Adapter_Interfaceb$ KZend_Memory_Container_Interfaceb) UZend_Mail_Storage_Writable_Interfaceb'
 QZend_Mail_Storage_Folder_Interfaceb	 =Zend_Mail_Part_Interfaceb  CZend_Mail_Message_Interfaceb! EZend_Log_Formatter_Interfaceb ?Zend_Log_Filter_Interfaceb' QZend_Loader_PluginLoader_Interfaceb3 iZend_InfoCard_Xml_Security_Transform_Interfaceb( SZend_InfoCard_Xml_KeyInfo_Interfaceb( SZend_InfoCard_Xml_Element_Interfaceb* WZend_InfoCard_Xml_Assertion_Interfaceb-  ]Zend_InfoCard_Cipher_Symmetric_Interfaceb7 qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interfaceb7~ qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interfaceb+} YZend_InfoCard_Cipher_Pki_Rsa_Interfaceb'| QZend_InfoCard_Cipher_Pki_Interfaceb${ KZend_InfoCard_Adapter_Interfaceb'z QZend_Http_Client_Adapter_Interfaceby AZend_Gdata_App_MediaSourceb"x GZend_Form_Decorator_Interfacebw 7Zend_Filter_Interfaceb v CZend_Feed_Builder_Interfaceb u CZend_Db_Statement_Interfaceb+t YZend_Controller_Router_Route_Interfaceb%s MZend_Controller_Router_Interfaceb)r UZend_Controller_Dispatcher_Interfacebq 5Zend_Captcha_Adapterb!p EZend_Cache_Backend_Interfaceb)o UZend_Cache_Backend_ExtendedInterfaceb n CZend_Auth_Storage_Interfaceb m CZend_Auth_Adapter_Interfaceb.l _Zend_Auth_Adapter_Http_Resolver_Interfacebk ;Zend_Acl_Role_Interfaceb j CZend_Acl_Resource_Interfacebi ?Zend_Acl_Assert_Interfaceb#h IZend_Wildfire_Plugin_Interfacea$g KZend_Wildfire_Channel_Interfaceaf 3Zend_View_Interfaceae AZend_View_Helper_Interfacead ;Zend_Validate_Interfacea%c MZend_Validate_Hostname_Interfacea(b SZend_Text_Table_Decorator_Interfacea&a OZend_Soap_Wsdl_Strategy_Interfacea%` MZend_Session_Validator_Interfacea'_ QZend_Session_SaveHandler_Interfacea^ 7Zend_Server_Interfacea!] EZend_Search_Lucene_Interfacea\ 9Zend_Request_Interfacea[ ?Zend_Pdf_Filter_Interfacea&Z OZend_Pdf_ElementFactory_Interfacea,Y [Zend_Paginator_ScrollingStyle_Interfacea%X MZend_Paginator_Adapter_Interfacea$W KZend_Memory_Container_Interfacea)V UZend_Mail_Storage_Writable_Interfacea'U QZend_Mail_Storage_Folder_InterfaceaT =Zend_Mail_Part_Interfacea S CZend_Mail_Message_Interfacea!R EZend_Log_Formatter_InterfaceaQ ?Zend_Log_Filter_Interfacea'P QZend_Loader_PluginLoader_Interfacea3O iZend_InfoCard_Xml_Security_Transform_Interfacea(N SZend_InfoCard_Xml_KeyInfo_Interfacea(M SZend_InfoCard_Xml_Element_Interfacea*L WZend_InfoCard_Xml_Assertion_Interfacea-K ]Zend_InfoCard_Cipher_Symmetric_Interfacea7J qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interfacea7I qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interfacea+H YZend_InfoCard_Cipher_Pki_Rsa_Interfacea'G QZend_InfoCard_Cipher_Pki_Interfacea$F KZend_InfoCard_Adapter_Interfacea'E QZend_Http_Client_Adapter_InterfaceaD AZend_Gdata_App_MediaSourcea"C GZend_Form_Decorator_InterfaceaB 7Zend_Filter_Interfacea A CZend_Feed_Builder_Interfacea @ CZend_Db_Statement_Interfacea+? YZend_Controller_Router_Route_Interfacea%> MZend_Controller_Router_Interfacea)= UZend_Controller_Dispatcher_Interfacea< 5Zend_Captcha_Adaptera!; EZend_Cache_Backend_Interfacea): UZend_Cache_Backend_ExtendedInterfacea 9 CZend_Auth_Storage_Interfacea 8 CZend_Auth_Adapter_Interfacea.7 _Zend_Auth_Adapter_Http_Resolver_Interfacea   i  uTA'~`H'|`7h1],


i
J
					]	2	c>pJvKuU?&	xV-}Y9va>gC                              a =Zend_Db_Statement_Mysqlib'` QZend_Db_Statement_Mysqli_Exceptionb _ CZend_Db_Statement_Exceptionb^ 7Zend_Db_Statement_Db2b$] KZend_Db_Statement_Db2_Exceptionb\ )Zend_Db_Selectb[ =Zend_Db_Select_ExceptionbZ -Zend_Db_ProfilerbY 9Zend_Db_Profiler_QuerybX =Zend_Db_Profiler_FirebugbW AZend_Db_Profiler_ExceptionbV %Zend_Db_ExprbU /Zend_Db_ExceptionbT AZend_Db_Adapter_Pdo_SqlitebS ?Zend_Db_Adapter_Pdo_PgsqlbR ;Zend_Db_Adapter_Pdo_OcibQ ?Zend_Db_Adapter_Pdo_MysqlbP ?Zend_Db_Adapter_Pdo_MssqlbO ;Zend_Db_Adapter_Pdo_Ibmb N CZend_Db_Adapter_Pdo_Ibm_Idsb M CZend_Db_Adapter_Pdo_Ibm_Db2b!L EZend_Db_Adapter_Pdo_AbstractbK 9Zend_Db_Adapter_Oracleb%J MZend_Db_Adapter_Oracle_ExceptionbI 9Zend_Db_Adapter_Mysqlib%H MZend_Db_Adapter_Mysqli_ExceptionbG ?Zend_Db_Adapter_ExceptionbF 3Zend_Db_Adapter_Db2b"E GZend_Db_Adapter_Db2_ExceptionbD =Zend_Db_Adapter_AbstractbC Zend_DatebB 3Zend_Date_ExceptionbA 5Zend_Date_DateObjectb@ -Zend_Date_Citiesb? 'Zend_Currencyb> ;Zend_Currency_Exceptionb!= EZend_Controller_Router_Routeb(< SZend_Controller_Router_Route_Staticb'; QZend_Controller_Router_Route_Regexb(: SZend_Controller_Router_Route_Moduleb*9 WZend_Controller_Router_Route_Hostnameb'8 QZend_Controller_Router_Route_Chainb*7 WZend_Controller_Router_Route_Abstractb#6 IZend_Controller_Router_Rewriteb%5 MZend_Controller_Router_Exceptionb$4 KZend_Controller_Router_Abstractb*3 WZend_Controller_Response_HttpTestCaseb"2 GZend_Controller_Response_Httpb'1 QZend_Controller_Response_Exceptionb!0 EZend_Controller_Response_Clib&/ OZend_Controller_Response_Abstractb#. IZend_Controller_Request_Simpleb)- UZend_Controller_Request_HttpTestCaseb!, EZend_Controller_Request_Httpb&+ OZend_Controller_Request_Exceptionb&* OZend_Controller_Request_Apache404b%) MZend_Controller_Request_Abstractb(( SZend_Controller_Plugin_ErrorHandlerb"' GZend_Controller_Plugin_Brokerb'& QZend_Controller_Plugin_ActionStackb$% KZend_Controller_Plugin_Abstractb$ 7Zend_Controller_Frontb# ?Zend_Controller_Exceptionb(" SZend_Controller_Dispatcher_Standardb)! UZend_Controller_Dispatcher_Exceptionb(  SZend_Controller_Dispatcher_Abstractb 9Zend_Controller_Actionb( SZend_Controller_Action_HelperBrokerb6 oZend_Controller_Action_HelperBroker_PriorityStackb/ aZend_Controller_Action_Helper_ViewRendererb& OZend_Controller_Action_Helper_Urlb- ]Zend_Controller_Action_Helper_Redirectorb' QZend_Controller_Action_Helper_Jsonb1 eZend_Controller_Action_Helper_FlashMessengerb0 cZend_Controller_Action_Helper_ContextSwitchb< {Zend_Controller_Action_Helper_AutoCompleteScriptaculousb3 iZend_Controller_Action_Helper_AutoCompleteDojob8 sZend_Controller_Action_Helper_AutoComplete_Abstractb. _Zend_Controller_Action_Helper_AjaxContextb. _Zend_Controller_Action_Helper_ActionStackb+ YZend_Controller_Action_Helper_Abstractb% MZend_Controller_Action_Exceptionb 3Zend_Console_Getoptb" GZend_Console_Getopt_Exceptionb #Zend_Configb +Zend_Config_Xmlb 1Zend_Config_Writerb
 9Zend_Config_Writer_Xmlb	 9Zend_Config_Writer_Inib =Zend_Config_Writer_Arrayb +Zend_Config_Inib 7Zend_Config_Exceptionb /Zend_Captcha_Wordb 9Zend_Captcha_ReCaptchab 1Zend_Captcha_Imageb 3Zend_Captcha_Figletb 9Zend_Captcha_Exceptionb  /Zend_Captcha_Dumbb /Zend_Captcha_Baseb~ !Zend_Cacheb} =Zend_Cache_Frontend_Pageb| AZend_Cache_Frontend_Outputb!{ EZend_Cache_Frontend_Functionbz =Zend_Cache_Frontend_Fileby ?Zend_Cache_Frontend_Classb   e  tZ;mP)l=V&~V.




_
0
 			w	L	&O!m?tJ&V3~T'}R+~lQ0nF%                                F /Zend_Feed_ElementbE /Zend_Feed_BuilderbD =Zend_Feed_Builder_Headerb$C KZend_Feed_Builder_Header_Itunesb B CZend_Feed_Builder_ExceptionbA ;Zend_Feed_Builder_Entryb@ )Zend_Feed_Atomb? 1Zend_Feed_Abstractb> )Zend_Exceptionb= )Zend_Dom_Queryb< 7Zend_Dom_Query_Resultb; =Zend_Dom_Query_Css2Xpathb: 1Zend_Dom_Exceptionb9 Zend_Dojob)8 UZend_Dojo_View_Helper_VerticalSliderb,7 [Zend_Dojo_View_Helper_ValidationTextBoxb&6 OZend_Dojo_View_Helper_TimeTextBoxb"5 GZend_Dojo_View_Helper_TextBoxb#4 IZend_Dojo_View_Helper_Textareab'3 QZend_Dojo_View_Helper_TabContainerb'2 QZend_Dojo_View_Helper_SubmitButtonb)1 UZend_Dojo_View_Helper_StackContainerb)0 UZend_Dojo_View_Helper_SplitContainerb!/ EZend_Dojo_View_Helper_Sliderb). UZend_Dojo_View_Helper_SimpleTextareab&- OZend_Dojo_View_Helper_RadioButtonb*, WZend_Dojo_View_Helper_PasswordTextBoxb(+ SZend_Dojo_View_Helper_NumberTextBoxb(* SZend_Dojo_View_Helper_NumberSpinnerb+) YZend_Dojo_View_Helper_HorizontalSliderb( AZend_Dojo_View_Helper_Formb*' WZend_Dojo_View_Helper_FilteringSelectb!& EZend_Dojo_View_Helper_Editorb% AZend_Dojo_View_Helper_Dojob)$ UZend_Dojo_View_Helper_Dojo_Containerb)# UZend_Dojo_View_Helper_DijitContainerb " CZend_Dojo_View_Helper_Dijitb&! OZend_Dojo_View_Helper_DateTextBoxb*  WZend_Dojo_View_Helper_CurrencyTextBoxb& OZend_Dojo_View_Helper_ContentPaneb# IZend_Dojo_View_Helper_ComboBoxb# IZend_Dojo_View_Helper_CheckBoxb! EZend_Dojo_View_Helper_Buttonb* WZend_Dojo_View_Helper_BorderContainerb( SZend_Dojo_View_Helper_AccordionPaneb- ]Zend_Dojo_View_Helper_AccordionContainerb =Zend_Dojo_View_Exceptionb )Zend_Dojo_Formb 9Zend_Dojo_Form_SubFormb* WZend_Dojo_Form_Element_VerticalSliderb- ]Zend_Dojo_Form_Element_ValidationTextBoxb' QZend_Dojo_Form_Element_TimeTextBoxb# IZend_Dojo_Form_Element_TextBoxb$ KZend_Dojo_Form_Element_Textareab( SZend_Dojo_Form_Element_SubmitButtonb" GZend_Dojo_Form_Element_Sliderb' QZend_Dojo_Form_Element_RadioButtonb+ YZend_Dojo_Form_Element_PasswordTextBoxb) UZend_Dojo_Form_Element_NumberTextBoxb) UZend_Dojo_Form_Element_NumberSpinnerb,
 [Zend_Dojo_Form_Element_HorizontalSliderb+	 YZend_Dojo_Form_Element_FilteringSelectb" GZend_Dojo_Form_Element_Editorb& OZend_Dojo_Form_Element_DijitMultib! EZend_Dojo_Form_Element_Dijitb' QZend_Dojo_Form_Element_DateTextBoxb+ YZend_Dojo_Form_Element_CurrencyTextBoxb$ KZend_Dojo_Form_Element_ComboBoxb$ KZend_Dojo_Form_Element_CheckBoxb" GZend_Dojo_Form_Element_Buttonb   CZend_Dojo_Form_DisplayGroupb* WZend_Dojo_Form_Decorator_TabContainerb,~ [Zend_Dojo_Form_Decorator_StackContainerb,} [Zend_Dojo_Form_Decorator_SplitContainerb'| QZend_Dojo_Form_Decorator_DijitFormb*{ WZend_Dojo_Form_Decorator_DijitElementb,z [Zend_Dojo_Form_Decorator_DijitContainerb)y UZend_Dojo_Form_Decorator_ContentPaneb-x ]Zend_Dojo_Form_Decorator_BorderContainerb+w YZend_Dojo_Form_Decorator_AccordionPaneb0v cZend_Dojo_Form_Decorator_AccordionContainerbu 3Zend_Dojo_Exceptionbt )Zend_Dojo_Databs !Zend_Debugbr Zend_Dbbq 'Zend_Db_Tablebp 5Zend_Db_Table_Selectb#o IZend_Db_Table_Select_Exceptionbn 5Zend_Db_Table_Rowsetb#m IZend_Db_Table_Rowset_Exceptionb"l GZend_Db_Table_Rowset_Abstractbk /Zend_Db_Table_Rowb j CZend_Db_Table_Row_Exceptionbi AZend_Db_Table_Row_Abstractbh ;Zend_Db_Table_Exceptionbg 9Zend_Db_Table_Abstractbf /Zend_Db_Statementbe 7Zend_Db_Statement_Pdobd ?Zend_Db_Statement_Pdo_Ibmbc =Zend_Db_Statement_Oracleb'b QZend_Db_Statement_Oracle_Exceptionb   m tb6}bJ,	mU5uLsG



i
:
&
				g	?	f?]>vU5dC"p^9{Z2b9wQ+                                 $3 KZend_Gdata_App_Extension_Personb"2 GZend_Gdata_App_Extension_Nameb"1 GZend_Gdata_App_Extension_Logob"0 GZend_Gdata_App_Extension_Linkb / CZend_Gdata_App_Extension_Idb". GZend_Gdata_App_Extension_Iconb'- QZend_Gdata_App_Extension_Generatorb#, IZend_Gdata_App_Extension_Emailb%+ MZend_Gdata_App_Extension_Elementb#* IZend_Gdata_App_Extension_Draftb%) MZend_Gdata_App_Extension_Controlb)( UZend_Gdata_App_Extension_Contributorb%' MZend_Gdata_App_Extension_Contentb&& OZend_Gdata_App_Extension_Categoryb$% KZend_Gdata_App_Extension_Authorb$ =Zend_Gdata_App_Exceptionb# 5Zend_Gdata_App_Entryb," [Zend_Gdata_App_CaptchaRequiredExceptionb#! IZend_Gdata_App_BaseMediaSourceb  3Zend_Gdata_App_Baseb* WZend_Gdata_App_BadMethodCallExceptionb! EZend_Gdata_App_AuthExceptionb Zend_Formb /Zend_Form_SubFormb 3Zend_Form_Exceptionb /Zend_Form_Elementb ;Zend_Form_Element_Xhtmlb AZend_Form_Element_Textareab 9Zend_Form_Element_Textb =Zend_Form_Element_Submitb =Zend_Form_Element_Selectb ;Zend_Form_Element_Resetb ;Zend_Form_Element_Radiob AZend_Form_Element_Passwordb" GZend_Form_Element_Multiselectb$ KZend_Form_Element_MultiCheckboxb ;Zend_Form_Element_Multib ;Zend_Form_Element_Imageb =Zend_Form_Element_Hiddenb 9Zend_Form_Element_Hashb 9Zend_Form_Element_Fileb 
 CZend_Form_Element_Exceptionb	 AZend_Form_Element_Checkboxb ?Zend_Form_Element_Captchab =Zend_Form_Element_Buttonb 9Zend_Form_DisplayGroupb# IZend_Form_Decorator_ViewScriptb# IZend_Form_Decorator_ViewHelperb( SZend_Form_Decorator_PrepareElementsb ?Zend_Form_Decorator_Labelb ?Zend_Form_Decorator_Imageb   CZend_Form_Decorator_HtmlTagb# IZend_Form_Decorator_FormErrorsb%~ MZend_Form_Decorator_FormElementsb} =Zend_Form_Decorator_Formb| =Zend_Form_Decorator_Fileb!{ EZend_Form_Decorator_Fieldsetb"z GZend_Form_Decorator_Exceptionby AZend_Form_Decorator_Errorsb$x KZend_Form_Decorator_DtDdWrapperb$w KZend_Form_Decorator_Descriptionb v CZend_Form_Decorator_Captchab%u MZend_Form_Decorator_Captcha_Wordb!t EZend_Form_Decorator_Callbackb!s EZend_Form_Decorator_Abstractbr #Zend_Filterb+q YZend_Filter_Word_UnderscoreToSeparatorb&p OZend_Filter_Word_UnderscoreToDashb+o YZend_Filter_Word_UnderscoreToCamelCaseb*n WZend_Filter_Word_SeparatorToSeparatorb%m MZend_Filter_Word_SeparatorToDashb*l WZend_Filter_Word_SeparatorToCamelCaseb(k SZend_Filter_Word_Separator_Abstractb&j OZend_Filter_Word_DashToUnderscoreb%i MZend_Filter_Word_DashToSeparatorb%h MZend_Filter_Word_DashToCamelCaseb+g YZend_Filter_Word_CamelCaseToUnderscoreb*f WZend_Filter_Word_CamelCaseToSeparatorb%e MZend_Filter_Word_CamelCaseToDashbd 7Zend_Filter_StripTagsbc ?Zend_Filter_StripNewlinesbb 9Zend_Filter_StringTrimba ?Zend_Filter_StringToUpperb` ?Zend_Filter_StringToLowerb_ 5Zend_Filter_RealPathb^ ;Zend_Filter_PregReplaceb] +Zend_Filter_Intb\ /Zend_Filter_Inputb[ 7Zend_Filter_InflectorbZ =Zend_Filter_HtmlEntitiesbY AZend_Filter_File_UpperCasebX ;Zend_Filter_File_RenamebW AZend_Filter_File_LowerCasebV 7Zend_Filter_ExceptionbU +Zend_Filter_DirbT 1Zend_Filter_DigitsbS 5Zend_Filter_BaseNamebR /Zend_Filter_AlphabQ /Zend_Filter_AlnumbP 1Zend_File_Transferb!O EZend_File_Transfer_Exceptionb$N KZend_File_Transfer_Adapter_Httpb(M SZend_File_Transfer_Adapter_AbstractbL Zend_FeedbK 'Zend_Feed_RssbJ 3Zend_Feed_ExceptionbI 3Zend_Feed_Entry_RssbH 5Zend_Feed_Entry_AtombG =Zend_Feed_Entry_Abstractb   _  [2vZ3];uM`1



^
9
 				z	N	![,uK"[,g7	^6c;b<d2               ' QZend_Gdata_Extension_OriginalEventb0 cZend_Gdata_Extension_OpenSearchTotalResultsb. _Zend_Gdata_Extension_OpenSearchStartIndexb0 cZend_Gdata_Extension_OpenSearchItemsPerPageb" GZend_Gdata_Extension_FeedLinkb* WZend_Gdata_Extension_ExtendedPropertyb% MZend_Gdata_Extension_EventStatusb# IZend_Gdata_Extension_EntryLinkb"
 GZend_Gdata_Extension_Commentsb&	 OZend_Gdata_Extension_AttendeeTypeb( SZend_Gdata_Extension_AttendeeStatusb +Zend_Gdata_Exifb 5Zend_Gdata_Exif_Feedb# IZend_Gdata_Exif_Extension_Timeb# IZend_Gdata_Exif_Extension_Tagsb$ KZend_Gdata_Exif_Extension_Modelb# IZend_Gdata_Exif_Extension_Makeb" GZend_Gdata_Exif_Extension_Isob,  [Zend_Gdata_Exif_Extension_ImageUniqueIdb$ KZend_Gdata_Exif_Extension_FStopb*~ WZend_Gdata_Exif_Extension_FocalLengthb$} KZend_Gdata_Exif_Extension_Flashb'| QZend_Gdata_Exif_Extension_Exposureb'{ QZend_Gdata_Exif_Extension_Distancebz 7Zend_Gdata_Exif_Entryby -Zend_Gdata_Entrybx 7Zend_Gdata_DublinCoreb*w WZend_Gdata_DublinCore_Extension_Titleb,v [Zend_Gdata_DublinCore_Extension_Subjectb+u YZend_Gdata_DublinCore_Extension_Rightsb.t _Zend_Gdata_DublinCore_Extension_Publisherb-s ]Zend_Gdata_DublinCore_Extension_Languageb/r aZend_Gdata_DublinCore_Extension_Identifierb+q YZend_Gdata_DublinCore_Extension_Formatb0p cZend_Gdata_DublinCore_Extension_Descriptionb)o UZend_Gdata_DublinCore_Extension_Dateb,n [Zend_Gdata_DublinCore_Extension_Creatorbm +Zend_Gdata_Docsbl 7Zend_Gdata_Docs_Queryb%k MZend_Gdata_Docs_DocumentListFeedb&j OZend_Gdata_Docs_DocumentListEntrybi 9Zend_Gdata_ClientLoginbh 3Zend_Gdata_Calendarb!g EZend_Gdata_Calendar_ListFeedb"f GZend_Gdata_Calendar_ListEntryb-e ]Zend_Gdata_Calendar_Extension_WebContentb+d YZend_Gdata_Calendar_Extension_Timezoneb9c uZend_Gdata_Calendar_Extension_SendEventNotificationsb+b YZend_Gdata_Calendar_Extension_Selectedb+a YZend_Gdata_Calendar_Extension_QuickAddb'` QZend_Gdata_Calendar_Extension_Linkb)_ UZend_Gdata_Calendar_Extension_Hiddenb(^ SZend_Gdata_Calendar_Extension_Colorb.] _Zend_Gdata_Calendar_Extension_AccessLevelb#\ IZend_Gdata_Calendar_EventQueryb"[ GZend_Gdata_Calendar_EventFeedb#Z IZend_Gdata_Calendar_EventEntrybY -Zend_Gdata_Booksb!X EZend_Gdata_Books_VolumeQueryb W CZend_Gdata_Books_VolumeFeedb!V EZend_Gdata_Books_VolumeEntryb+U YZend_Gdata_Books_Extension_Viewabilityb-T ]Zend_Gdata_Books_Extension_ThumbnailLinkb&S OZend_Gdata_Books_Extension_Reviewb+R YZend_Gdata_Books_Extension_PreviewLinkb(Q SZend_Gdata_Books_Extension_InfoLinkb-P ]Zend_Gdata_Books_Extension_Embeddabilityb)O UZend_Gdata_Books_Extension_BooksLinkb-N ]Zend_Gdata_Books_Extension_BooksCategoryb.M _Zend_Gdata_Books_Extension_AnnotationLinkb$L KZend_Gdata_Books_CollectionFeedb%K MZend_Gdata_Books_CollectionEntrybJ 1Zend_Gdata_AuthSubbI )Zend_Gdata_Appb$H KZend_Gdata_App_VersionExceptionbG 3Zend_Gdata_App_Utilb#F IZend_Gdata_App_MediaFileSourcebE ?Zend_Gdata_App_MediaEntryb2D gZend_Gdata_App_LoggingHttpClientAdapterSocketbC AZend_Gdata_App_IOExceptionb,B [Zend_Gdata_App_InvalidArgumentExceptionb!A EZend_Gdata_App_HttpExceptionb$@ KZend_Gdata_App_FeedSourceParentb#? IZend_Gdata_App_FeedEntryParentb> 3Zend_Gdata_App_Feedb= =Zend_Gdata_App_Extensionb!< EZend_Gdata_App_Extension_Urib%; MZend_Gdata_App_Extension_Updatedb#: IZend_Gdata_App_Extension_Titleb"9 GZend_Gdata_App_Extension_Textb%8 MZend_Gdata_App_Extension_Summaryb&7 OZend_Gdata_App_Extension_Subtitleb$6 KZend_Gdata_App_Extension_Sourceb$5 KZend_Gdata_App_Extension_Rightsb'4 QZend_Gdata_App_Extension_Publishedb   a  ]3pH!gHuN(sP7




a
B
					n	D		 tIT$a4qDd?f;
Ud8                 -s ]Zend_Gdata_Photos_Extension_QuotaCurrentb)r UZend_Gdata_Photos_Extension_Positionb(q SZend_Gdata_Photos_Extension_PhotoIdb3p iZend_Gdata_Photos_Extension_NumPhotosRemainingb*o WZend_Gdata_Photos_Extension_NumPhotosb)n UZend_Gdata_Photos_Extension_Nicknameb%m MZend_Gdata_Photos_Extension_Nameb2l gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumb)k UZend_Gdata_Photos_Extension_Locationb#j IZend_Gdata_Photos_Extension_Idb'i QZend_Gdata_Photos_Extension_Heightb2h gZend_Gdata_Photos_Extension_CommentingEnabledb-g ]Zend_Gdata_Photos_Extension_CommentCountb'f QZend_Gdata_Photos_Extension_Clientb)e UZend_Gdata_Photos_Extension_Checksumb*d WZend_Gdata_Photos_Extension_BytesUsedb(c SZend_Gdata_Photos_Extension_AlbumIdb'b QZend_Gdata_Photos_Extension_Accessb#a IZend_Gdata_Photos_CommentEntryb!` EZend_Gdata_Photos_AlbumQueryb _ CZend_Gdata_Photos_AlbumFeedb!^ EZend_Gdata_Photos_AlbumEntryb] -Zend_Gdata_Mediab\ 7Zend_Gdata_Media_Feedb*[ WZend_Gdata_Media_Extension_MediaTitleb.Z _Zend_Gdata_Media_Extension_MediaThumbnailb)Y UZend_Gdata_Media_Extension_MediaTextb0X cZend_Gdata_Media_Extension_MediaRestrictionb+W YZend_Gdata_Media_Extension_MediaRatingb+V YZend_Gdata_Media_Extension_MediaPlayerb-U ]Zend_Gdata_Media_Extension_MediaKeywordsb)T UZend_Gdata_Media_Extension_MediaHashb*S WZend_Gdata_Media_Extension_MediaGroupb0R cZend_Gdata_Media_Extension_MediaDescriptionb+Q YZend_Gdata_Media_Extension_MediaCreditb.P _Zend_Gdata_Media_Extension_MediaCopyrightb,O [Zend_Gdata_Media_Extension_MediaContentb-N ]Zend_Gdata_Media_Extension_MediaCategorybM 9Zend_Gdata_Media_EntrybL AZend_Gdata_Kind_EventEntrybK 7Zend_Gdata_HttpClientbJ /Zend_Gdata_HealthbI ;Zend_Gdata_Health_Queryb&H OZend_Gdata_Health_ProfileListFeedb'G QZend_Gdata_Health_ProfileListEntryb"F GZend_Gdata_Health_ProfileFeedb#E IZend_Gdata_Health_ProfileEntryb$D KZend_Gdata_Health_Extension_CcrbC )Zend_Gdata_GeobB 3Zend_Gdata_Geo_Feedb$A KZend_Gdata_Geo_Extension_GmlPosb&@ OZend_Gdata_Geo_Extension_GmlPointb)? UZend_Gdata_Geo_Extension_GeoRssWhereb> 5Zend_Gdata_Geo_Entryb= -Zend_Gdata_Gbaseb"< GZend_Gdata_Gbase_SnippetQueryb!; EZend_Gdata_Gbase_SnippetFeedb": GZend_Gdata_Gbase_SnippetEntryb9 9Zend_Gdata_Gbase_Queryb8 AZend_Gdata_Gbase_ItemQueryb7 ?Zend_Gdata_Gbase_ItemFeedb6 AZend_Gdata_Gbase_ItemEntryb5 7Zend_Gdata_Gbase_Feedb-4 ]Zend_Gdata_Gbase_Extension_BaseAttributeb3 9Zend_Gdata_Gbase_Entryb2 -Zend_Gdata_Gappsb1 AZend_Gdata_Gapps_UserQueryb0 ?Zend_Gdata_Gapps_UserFeedb/ AZend_Gdata_Gapps_UserEntryb&. OZend_Gdata_Gapps_ServiceExceptionb- 9Zend_Gdata_Gapps_Queryb#, IZend_Gdata_Gapps_NicknameQueryb"+ GZend_Gdata_Gapps_NicknameFeedb#* IZend_Gdata_Gapps_NicknameEntryb%) MZend_Gdata_Gapps_Extension_Quotab(( SZend_Gdata_Gapps_Extension_Nicknameb$' KZend_Gdata_Gapps_Extension_Nameb%& MZend_Gdata_Gapps_Extension_Loginb)% UZend_Gdata_Gapps_Extension_EmailListb$ 9Zend_Gdata_Gapps_Errorb-# ]Zend_Gdata_Gapps_EmailListRecipientQueryb," [Zend_Gdata_Gapps_EmailListRecipientFeedb-! ]Zend_Gdata_Gapps_EmailListRecipientEntryb$  KZend_Gdata_Gapps_EmailListQueryb# IZend_Gdata_Gapps_EmailListFeedb$ KZend_Gdata_Gapps_EmailListEntryb +Zend_Gdata_Feedb 5Zend_Gdata_Extensionb =Zend_Gdata_Extension_Whob AZend_Gdata_Extension_Whereb ?Zend_Gdata_Extension_Whenb$ KZend_Gdata_Extension_Visibilityb& OZend_Gdata_Extension_Transparencyb" GZend_Gdata_Extension_Reminderb- ]Zend_Gdata_Extension_RecurrenceExceptionb$ KZend_Gdata_Extension_Recurrenceb  CZend_Gdata_Extension_Ratingb   Y  {MuP,y_Fl9X'



z
Q
)
				^	5	
P"l>S"n>U'm=]7
V*                                "L GZend_Gdata_YouTube_VideoEntryb(K SZend_Gdata_YouTube_UserProfileEntryb(J SZend_Gdata_YouTube_SubscriptionFeedb)I UZend_Gdata_YouTube_SubscriptionEntryb)H UZend_Gdata_YouTube_PlaylistVideoFeedb*G WZend_Gdata_YouTube_PlaylistVideoEntryb(F SZend_Gdata_YouTube_PlaylistListFeedb)E UZend_Gdata_YouTube_PlaylistListEntryb"D GZend_Gdata_YouTube_MediaEntryb)C UZend_Gdata_YouTube_Extension_VideoIdb*B WZend_Gdata_YouTube_Extension_Usernameb*A WZend_Gdata_YouTube_Extension_Uploadedb'@ QZend_Gdata_YouTube_Extension_Tokenb(? SZend_Gdata_YouTube_Extension_Statusb,> [Zend_Gdata_YouTube_Extension_Statisticsb'= QZend_Gdata_YouTube_Extension_Stateb(< SZend_Gdata_YouTube_Extension_Schoolb-; ]Zend_Gdata_YouTube_Extension_ReleaseDateb.: _Zend_Gdata_YouTube_Extension_Relationshipb*9 WZend_Gdata_YouTube_Extension_Recordedb&8 OZend_Gdata_YouTube_Extension_Racyb-7 ]Zend_Gdata_YouTube_Extension_QueryStringb)6 UZend_Gdata_YouTube_Extension_Privateb*5 WZend_Gdata_YouTube_Extension_Positionb/4 aZend_Gdata_YouTube_Extension_PlaylistTitleb,3 [Zend_Gdata_YouTube_Extension_PlaylistIdb,2 [Zend_Gdata_YouTube_Extension_Occupationb)1 UZend_Gdata_YouTube_Extension_NoEmbedb'0 QZend_Gdata_YouTube_Extension_Musicb(/ SZend_Gdata_YouTube_Extension_Moviesb-. ]Zend_Gdata_YouTube_Extension_MediaRatingb,- [Zend_Gdata_YouTube_Extension_MediaGroupb-, ]Zend_Gdata_YouTube_Extension_MediaCreditb.+ _Zend_Gdata_YouTube_Extension_MediaContentb** WZend_Gdata_YouTube_Extension_Locationb&) OZend_Gdata_YouTube_Extension_Linkb*( WZend_Gdata_YouTube_Extension_LastNameb*' WZend_Gdata_YouTube_Extension_Hometownb)& UZend_Gdata_YouTube_Extension_Hobbiesb(% SZend_Gdata_YouTube_Extension_Genderb+$ YZend_Gdata_YouTube_Extension_FirstNameb*# WZend_Gdata_YouTube_Extension_Durationb-" ]Zend_Gdata_YouTube_Extension_Descriptionb+! YZend_Gdata_YouTube_Extension_CountHintb)  UZend_Gdata_YouTube_Extension_Controlb) UZend_Gdata_YouTube_Extension_Companyb' QZend_Gdata_YouTube_Extension_Booksb% MZend_Gdata_YouTube_Extension_Ageb) UZend_Gdata_YouTube_Extension_AboutMeb# IZend_Gdata_YouTube_ContactFeedb$ KZend_Gdata_YouTube_ContactEntryb# IZend_Gdata_YouTube_CommentFeedb$ KZend_Gdata_YouTube_CommentEntryb$ KZend_Gdata_YouTube_ActivityFeedb% MZend_Gdata_YouTube_ActivityEntryb ;Zend_Gdata_Spreadsheetsb* WZend_Gdata_Spreadsheets_WorksheetFeedb+ YZend_Gdata_Spreadsheets_WorksheetEntryb, [Zend_Gdata_Spreadsheets_SpreadsheetFeedb- ]Zend_Gdata_Spreadsheets_SpreadsheetEntryb& OZend_Gdata_Spreadsheets_ListQueryb% MZend_Gdata_Spreadsheets_ListFeedb& OZend_Gdata_Spreadsheets_ListEntryb/ aZend_Gdata_Spreadsheets_Extension_RowCountb- ]Zend_Gdata_Spreadsheets_Extension_Customb/ aZend_Gdata_Spreadsheets_Extension_ColCountb+
 YZend_Gdata_Spreadsheets_Extension_Cellb*	 WZend_Gdata_Spreadsheets_DocumentQueryb& OZend_Gdata_Spreadsheets_CellQueryb% MZend_Gdata_Spreadsheets_CellFeedb& OZend_Gdata_Spreadsheets_CellEntryb -Zend_Gdata_Queryb /Zend_Gdata_Photosb  CZend_Gdata_Photos_UserQueryb AZend_Gdata_Photos_UserFeedb  CZend_Gdata_Photos_UserEntryb  AZend_Gdata_Photos_TagEntryb! EZend_Gdata_Photos_PhotoQueryb ~ CZend_Gdata_Photos_PhotoFeedb!} EZend_Gdata_Photos_PhotoEntryb&| OZend_Gdata_Photos_Extension_Widthb'{ QZend_Gdata_Photos_Extension_Weightb(z SZend_Gdata_Photos_Extension_Versionb%y MZend_Gdata_Photos_Extension_Userb*x WZend_Gdata_Photos_Extension_Timestampb*w WZend_Gdata_Photos_Extension_Thumbnailb%v MZend_Gdata_Photos_Extension_Sizeb)u UZend_Gdata_Photos_Extension_Rotationb+t YZend_Gdata_Photos_Extension_QuotaLimitb   n \5vZ?k3^>oG 



}
[
.				R	/yZ7eL:y[0a@'sQ2}lP1{[.qH"                             : =Zend_Mail_Storage_Folderb"9 GZend_Mail_Storage_Folder_Mboxb%8 MZend_Mail_Storage_Folder_Maildirb 7 CZend_Mail_Storage_Exceptionb6 AZend_Mail_Storage_Abstractb5 ;Zend_Mail_Protocol_Smtpb'4 QZend_Mail_Protocol_Smtp_Auth_Plainb'3 QZend_Mail_Protocol_Smtp_Auth_Loginb)2 UZend_Mail_Protocol_Smtp_Auth_Crammd5b1 ;Zend_Mail_Protocol_Pop3b0 ;Zend_Mail_Protocol_Imapb!/ EZend_Mail_Protocol_Exceptionb . CZend_Mail_Protocol_Abstractb- )Zend_Mail_Partb, 3Zend_Mail_Part_Fileb+ /Zend_Mail_Messageb* 9Zend_Mail_Message_Fileb) 3Zend_Mail_Exceptionb( Zend_Logb' 9Zend_Log_Writer_Streamb& 5Zend_Log_Writer_Nullb% 5Zend_Log_Writer_Mockb$ ;Zend_Log_Writer_Firebugb# 1Zend_Log_Writer_Dbb" =Zend_Log_Writer_Abstractb! 9Zend_Log_Formatter_Xmlb  ?Zend_Log_Formatter_Simpleb AZend_Log_Formatter_Firebugb =Zend_Log_Filter_Suppressb =Zend_Log_Filter_Priorityb ;Zend_Log_Filter_Messageb 1Zend_Log_Exceptionb #Zend_Localeb -Zend_Locale_Mathb =Zend_Locale_Math_PhpMathb AZend_Locale_Math_Exceptionb 1Zend_Locale_Formatb 7Zend_Locale_Exceptionb -Zend_Locale_Datab! EZend_Locale_Data_Translationb #Zend_Loaderb =Zend_Loader_PluginLoaderb' QZend_Loader_PluginLoader_Exceptionb 7Zend_Loader_Exceptionb Zend_Ldapb 3Zend_Ldap_Exceptionb #Zend_Layoutb 7Zend_Layout_Exceptionb)
 UZend_Layout_Controller_Plugin_Layoutb0	 cZend_Layout_Controller_Action_Helper_Layoutb Zend_Jsonb -Zend_Json_Serverb 5Zend_Json_Server_Smdb! EZend_Json_Server_Smd_Serviceb ?Zend_Json_Server_Responseb# IZend_Json_Server_Response_Httpb =Zend_Json_Server_Requestb" GZend_Json_Server_Request_Httpb  AZend_Json_Server_Exceptionb 9Zend_Json_Server_Errorb~ 9Zend_Json_Server_Cacheb} 3Zend_Json_Exceptionb| /Zend_Json_Encoderb{ /Zend_Json_Decoderbz 'Zend_InfoCardb-y ]Zend_InfoCard_Xml_SecurityTokenReferencebx AZend_InfoCard_Xml_Securityb)w UZend_InfoCard_Xml_Security_Transformb4v kZend_InfoCard_Xml_Security_Transform_XmlExcC14Nb3u iZend_InfoCard_Xml_Security_Transform_Exceptionb<t {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignatureb)s UZend_InfoCard_Xml_Security_Exceptionbr ?Zend_InfoCard_Xml_KeyInfob&q OZend_InfoCard_Xml_KeyInfo_XmlDSigb&p OZend_InfoCard_Xml_KeyInfo_Defaultb'o QZend_InfoCard_Xml_KeyInfo_Abstractb n CZend_InfoCard_Xml_Exceptionb#m IZend_InfoCard_Xml_EncryptedKeyb$l KZend_InfoCard_Xml_EncryptedDatab+k YZend_InfoCard_Xml_EncryptedData_XmlEncb-j ]Zend_InfoCard_Xml_EncryptedData_Abstractbi ?Zend_InfoCard_Xml_Elementb h CZend_InfoCard_Xml_Assertionb%g MZend_InfoCard_Xml_Assertion_Samlbf ;Zend_InfoCard_Exceptionb%e MZend_InfoCard_Exception_Abstractbd 5Zend_InfoCard_Claimsbc 5Zend_InfoCard_Cipherb5b mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcb5a mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcb4` kZend_InfoCard_Cipher_Symmetric_Adapter_Abstractb)_ UZend_InfoCard_Cipher_Pki_Adapter_Rsab.^ _Zend_InfoCard_Cipher_Pki_Adapter_Abstractb#] IZend_InfoCard_Cipher_Exceptionb$\ KZend_InfoCard_Adapter_Exceptionb"[ GZend_InfoCard_Adapter_DefaultbZ 1Zend_Http_ResponsebY 3Zend_Http_ExceptionbX 3Zend_Http_CookieJarbW -Zend_Http_CookiebV -Zend_Http_ClientbU AZend_Http_Client_Exceptionb"T GZend_Http_Client_Adapter_Testb$S KZend_Http_Client_Adapter_Socketb#R IZend_Http_Client_Adapter_Proxyb'Q QZend_Http_Client_Adapter_ExceptionbP !Zend_GdatabO 1Zend_Gdata_YouTubeb"N GZend_Gdata_YouTube_VideoQueryb!M EZend_Gdata_YouTube_VideoFeedb   u  V<{Y>$eI*oS4mF



u
W
9

						w	M	(	]3f>sE.gF*vX7yY2e;^8      / =Zend_Pdf_Filter_AsciiHexb. ;Zend_Pdf_Filter_Ascii85b"- GZend_Pdf_FileParserDataSourceb), UZend_Pdf_FileParserDataSource_Stringb'+ QZend_Pdf_FileParserDataSource_Fileb* 3Zend_Pdf_FileParserb) ?Zend_Pdf_FileParser_Imageb"( GZend_Pdf_FileParser_Image_Pngb' =Zend_Pdf_FileParser_Fontb&& OZend_Pdf_FileParser_Font_OpenTypeb/% aZend_Pdf_FileParser_Font_OpenType_TrueTypeb$ 1Zend_Pdf_Exceptionb# ;Zend_Pdf_ElementFactoryb"" GZend_Pdf_ElementFactory_Proxyb! -Zend_Pdf_Elementb  ;Zend_Pdf_Element_Stringb# IZend_Pdf_Element_String_Binaryb ;Zend_Pdf_Element_Streamb AZend_Pdf_Element_Referenceb% MZend_Pdf_Element_Reference_Tableb' QZend_Pdf_Element_Reference_Contextb ;Zend_Pdf_Element_Objectb# IZend_Pdf_Element_Object_Streamb =Zend_Pdf_Element_Numericb 7Zend_Pdf_Element_Nullb 7Zend_Pdf_Element_Nameb  CZend_Pdf_Element_Dictionaryb =Zend_Pdf_Element_Booleanb 9Zend_Pdf_Element_Arrayb )Zend_Pdf_Colorb 1Zend_Pdf_Color_Rgbb 3Zend_Pdf_Color_Htmlb =Zend_Pdf_Color_GrayScaleb 3Zend_Pdf_Color_Cmykb 'Zend_Pdf_Cmapb AZend_Pdf_Cmap_TrimmedTableb! EZend_Pdf_Cmap_SegmentToDeltab
 AZend_Pdf_Cmap_ByteEncodingb&	 OZend_Pdf_Cmap_ByteEncoding_Staticb )Zend_Paginatorb* WZend_Paginator_ScrollingStyle_Slidingb* WZend_Paginator_ScrollingStyle_Jumpingb* WZend_Paginator_ScrollingStyle_Elasticb& OZend_Paginator_ScrollingStyle_Allb =Zend_Paginator_Exceptionb  CZend_Paginator_Adapter_Nullb$ KZend_Paginator_Adapter_Iteratorb)  UZend_Paginator_Adapter_DbTableSelectb$ KZend_Paginator_Adapter_DbSelectb!~ EZend_Paginator_Adapter_Arrayb} #Zend_OpenIdb| 5Zend_OpenId_Providerb{ ?Zend_OpenId_Provider_Userb&z OZend_OpenId_Provider_User_Sessionb!y EZend_OpenId_Provider_Storageb&x OZend_OpenId_Provider_Storage_Filebw 7Zend_OpenId_Extensionbv AZend_OpenId_Extension_Sregbu 7Zend_OpenId_Exceptionbt 5Zend_OpenId_Consumerb!s EZend_OpenId_Consumer_Storageb&r OZend_OpenId_Consumer_Storage_Filebq Zend_Mimebp )Zend_Mime_Partbo /Zend_Mime_Messagebn 3Zend_Mime_Exceptionbm -Zend_Mime_Decodebl #Zend_Memorybk /Zend_Memory_Valuebj 3Zend_Memory_Managerbi 7Zend_Memory_Exceptionbh 7Zend_Memory_Containerb"g GZend_Memory_Container_Movableb!f EZend_Memory_Container_Lockedb!e EZend_Memory_AccessControllerbd 3Zend_Measure_Weightbc 3Zend_Measure_Volumeb%b MZend_Measure_Viscosity_Kinematicb#a IZend_Measure_Viscosity_Dynamicb` 3Zend_Measure_Torqueb_ /Zend_Measure_Timeb^ =Zend_Measure_Temperatureb] 1Zend_Measure_Speedb\ 7Zend_Measure_Pressureb[ 1Zend_Measure_PowerbZ 3Zend_Measure_NumberbY 9Zend_Measure_LightnessbX 3Zend_Measure_LengthbW ?Zend_Measure_IlluminationbV 9Zend_Measure_FrequencybU 1Zend_Measure_ForcebT =Zend_Measure_Flow_VolumebS 9Zend_Measure_Flow_MolebR 9Zend_Measure_Flow_MassbQ 9Zend_Measure_ExceptionbP 3Zend_Measure_EnergybO 5Zend_Measure_DensitybN 5Zend_Measure_Currentb M CZend_Measure_Cooking_Weightb L CZend_Measure_Cooking_VolumebK =Zend_Measure_CapacitancebJ 3Zend_Measure_BinarybI /Zend_Measure_AreabH 1Zend_Measure_AnglebG ?Zend_Measure_AccelerationbF 7Zend_Measure_AbstractbE Zend_MailbD =Zend_Mail_Transport_Smtpb!C EZend_Mail_Transport_Sendmailb"B GZend_Mail_Transport_Exceptionb!A EZend_Mail_Transport_Abstractb@ /Zend_Mail_Storageb'? QZend_Mail_Storage_Writable_Maildirb> 9Zend_Mail_Storage_Pop3b= 9Zend_Mail_Storage_Mboxb< ?Zend_Mail_Storage_Maildirb; 9Zend_Mail_Storage_Imapb   Y  t]G(vHs1}8J


j
D

 				r	K	1	{jAiS0uWK{?z<n@uP/                                                  ! EZend_Search_Lucene_FSMActionb 9Zend_Search_Lucene_FSMb =Zend_Search_Lucene_Fieldb! EZend_Search_Lucene_Exceptionb  CZend_Search_Lucene_Documentb% MZend_Search_Lucene_Document_Xlsxb% MZend_Search_Lucene_Document_Pptxb( SZend_Search_Lucene_Document_OpenXmlb%  MZend_Search_Lucene_Document_Htmlb* WZend_Search_Lucene_Document_Exceptionb%~ MZend_Search_Lucene_Document_Docxb,} [Zend_Search_Lucene_Analysis_TokenFilterb6| oZend_Search_Lucene_Analysis_TokenFilter_StopWordsb7{ qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsb:z wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8b6y oZend_Search_Lucene_Analysis_TokenFilter_LowerCaseb&x OZend_Search_Lucene_Analysis_Tokenb)w UZend_Search_Lucene_Analysis_Analyzerb0v cZend_Search_Lucene_Analysis_Analyzer_Commonb8u sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumbIt Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitiveb5s mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8bFr Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitiveb8q sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumbIp Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitiveb5o mZend_Search_Lucene_Analysis_Analyzer_Common_TextbFn Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitivebm 7Zend_Search_Exceptionbl -Zend_Rest_Serverbk AZend_Rest_Server_Exceptionbj 3Zend_Rest_Exceptionbi -Zend_Rest_Clientbh ;Zend_Rest_Client_Resultb&g OZend_Rest_Client_Result_Exceptionbf AZend_Rest_Client_Exceptionbe 'Zend_Registrybd -Zend_ProgressBarbc AZend_ProgressBar_Exceptionbb =Zend_ProgressBar_Adapterb$a KZend_ProgressBar_Adapter_JsPushb$` KZend_ProgressBar_Adapter_JsPullb'_ QZend_ProgressBar_Adapter_Exceptionb%^ MZend_ProgressBar_Adapter_Consoleb] Zend_Pdfb!\ EZend_Pdf_UpdateInfoContainerb[ -Zend_Pdf_TrailerbZ ;Zend_Pdf_Trailer_KeeperbY AZend_Pdf_Trailer_GeneratorbX )Zend_Pdf_StylebW 7Zend_Pdf_StringParserbV /Zend_Pdf_Resourceb#U IZend_Pdf_Resource_ImageFactorybT ;Zend_Pdf_Resource_Imageb!S EZend_Pdf_Resource_Image_Tiffb R CZend_Pdf_Resource_Image_Pngb!Q EZend_Pdf_Resource_Image_JpegbP 9Zend_Pdf_Resource_Fontb!O EZend_Pdf_Resource_Font_Type0b"N GZend_Pdf_Resource_Font_Simpleb+M YZend_Pdf_Resource_Font_Simple_Standardb8L sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsb6K oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanb7J qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicb;I yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicb5H mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldb2G gZend_Pdf_Resource_Font_Simple_Standard_Symbolb<F {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliquebAE Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliqueb9D uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldb5C mZend_Pdf_Resource_Font_Simple_Standard_Helveticab:B wZend_Pdf_Resource_Font_Simple_Standard_CourierObliqueb>A Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliqueb7@ qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldb3? iZend_Pdf_Resource_Font_Simple_Standard_Courierb)> UZend_Pdf_Resource_Font_Simple_Parsedb2= gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypeb*< WZend_Pdf_Resource_Font_FontDescriptorb%; MZend_Pdf_Resource_Font_Extractedb#: IZend_Pdf_Resource_Font_CidFontb,9 [Zend_Pdf_Resource_Font_CidFont_TrueTypeb8 /Zend_Pdf_PhpArrayb7 +Zend_Pdf_Parserb6 9Zend_Pdf_Parser_Streamb5 'Zend_Pdf_Pageb4 )Zend_Pdf_Imageb3 'Zend_Pdf_Fontb 2 CZend_Pdf_Filter_Compressionb$1 KZend_Pdf_Filter_Compression_Lzwb&0 OZend_Pdf_Filter_Compression_Flateb   \  wJg8pOOb:


q
F
				R	]-q>vX4vEV7}[:V:wX9                "d GZend_Service_Flickr_ResultSetbc AZend_Service_Flickr_Resultbb ?Zend_Service_Flickr_Imageba 9Zend_Service_Exceptionb` 9Zend_Service_Deliciousb&_ OZend_Service_Delicious_SimplePostb$^ KZend_Service_Delicious_PostListb ] CZend_Service_Delicious_Postb%\ MZend_Service_Delicious_Exceptionb [ CZend_Service_AudioscrobblerbZ 3Zend_Service_Amazonb'Y QZend_Service_Amazon_SimilarProductb"X GZend_Service_Amazon_ResultSetbW ?Zend_Service_Amazon_Queryb!V EZend_Service_Amazon_OfferSetbU ?Zend_Service_Amazon_Offerb&T OZend_Service_Amazon_ListmaniaListbS =Zend_Service_Amazon_ItembR ?Zend_Service_Amazon_Imageb(Q SZend_Service_Amazon_EditorialReviewb'P QZend_Service_Amazon_CustomerReviewb$O KZend_Service_Amazon_AccessoriesbN 5Zend_Service_AkismetbM 7Zend_Service_AbstractbL 9Zend_Server_Reflectionb'K QZend_Server_Reflection_ReturnValueb%J MZend_Server_Reflection_Prototypeb%I MZend_Server_Reflection_Parameterb H CZend_Server_Reflection_Nodeb"G GZend_Server_Reflection_Methodb$F KZend_Server_Reflection_Functionb-E ]Zend_Server_Reflection_Function_Abstractb%D MZend_Server_Reflection_Exceptionb!C EZend_Server_Reflection_Classb!B EZend_Server_Method_Prototypeb!A EZend_Server_Method_Parameterb"@ GZend_Server_Method_Definitionb ? CZend_Server_Method_Callbackb> 7Zend_Server_Exceptionb= 9Zend_Server_Definitionb< /Zend_Server_Cacheb; 5Zend_Server_Abstractb: 1Zend_Search_Luceneb$9 KZend_Search_Lucene_Storage_Fileb+8 YZend_Search_Lucene_Storage_File_Memoryb/7 aZend_Search_Lucene_Storage_File_Filesystemb)6 UZend_Search_Lucene_Storage_Directoryb45 kZend_Search_Lucene_Storage_Directory_Filesystemb%4 MZend_Search_Lucene_Search_Weightb*3 WZend_Search_Lucene_Search_Weight_Termb,2 [Zend_Search_Lucene_Search_Weight_Phraseb/1 aZend_Search_Lucene_Search_Weight_MultiTermb+0 YZend_Search_Lucene_Search_Weight_Emptyb-/ ]Zend_Search_Lucene_Search_Weight_Booleanb). UZend_Search_Lucene_Search_Similarityb1- eZend_Search_Lucene_Search_Similarity_Defaultb), UZend_Search_Lucene_Search_QueryTokenb3+ iZend_Search_Lucene_Search_QueryParserExceptionb1* eZend_Search_Lucene_Search_QueryParserContextb*) WZend_Search_Lucene_Search_QueryParserb)( UZend_Search_Lucene_Search_QueryLexerb'' QZend_Search_Lucene_Search_QueryHitb)& UZend_Search_Lucene_Search_QueryEntryb.% _Zend_Search_Lucene_Search_QueryEntry_Termb2$ gZend_Search_Lucene_Search_QueryEntry_Subqueryb0# cZend_Search_Lucene_Search_QueryEntry_Phraseb$" KZend_Search_Lucene_Search_Queryb-! ]Zend_Search_Lucene_Search_Query_Wildcardb)  UZend_Search_Lucene_Search_Query_Termb* WZend_Search_Lucene_Search_Query_Rangeb+ YZend_Search_Lucene_Search_Query_Phraseb. _Zend_Search_Lucene_Search_Query_MultiTermb2 gZend_Search_Lucene_Search_Query_Insignificantb* WZend_Search_Lucene_Search_Query_Fuzzyb* WZend_Search_Lucene_Search_Query_Emptyb, [Zend_Search_Lucene_Search_Query_Booleanb: wZend_Search_Lucene_Search_BooleanExpressionRecognizerb =Zend_Search_Lucene_Proxyb% MZend_Search_Lucene_PriorityQueueb# IZend_Search_Lucene_LockManagerb$ KZend_Search_Lucene_Index_Writerb& OZend_Search_Lucene_Index_TermInfob" GZend_Search_Lucene_Index_Termb+ YZend_Search_Lucene_Index_SegmentWriterb8 sZend_Search_Lucene_Index_SegmentWriter_StreamWriterb: wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterb+ YZend_Search_Lucene_Index_SegmentMergerb6 oZend_Search_Lucene_Index_SegmentInfoPriorityQueueb) UZend_Search_Lucene_Index_SegmentInfob' QZend_Search_Lucene_Index_FieldInfob(
 SZend_Search_Lucene_Index_DocsFilterb.	 _Zend_Search_Lucene_Index_DictionaryLoaderb   c  b;rS3gB|R2R&



S
!				f	?	a6tP3f?oM(oQ2jU,rO6\)                                        0G cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequenceb/F aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplexb$E KZend_Soap_Wsdl_Strategy_AnyTypeb%D MZend_Soap_Wsdl_Strategy_AbstractbC 7Zend_Soap_Wsdl_Parserb!B EZend_Soap_Wsdl_Parser_ResultbA =Zend_Soap_Wsdl_Exceptionb!@ EZend_Soap_Wsdl_CodeGeneratorb? -Zend_Soap_Serverb> AZend_Soap_Server_Exceptionb= -Zend_Soap_Clientb< 9Zend_Soap_Client_Localb; AZend_Soap_Client_Exceptionb: ;Zend_Soap_Client_DotNetb9 ;Zend_Soap_Client_Commonb8 9Zend_Soap_AutoDiscoverb%7 MZend_Soap_AutoDiscover_Exceptionb6 %Zend_Sessionb)5 UZend_Session_Validator_HttpUserAgentb$4 KZend_Session_Validator_Abstractb'3 QZend_Session_SaveHandler_Exceptionb%2 MZend_Session_SaveHandler_DbTableb1 9Zend_Session_Namespaceb0 9Zend_Session_Exceptionb/ 7Zend_Session_Abstractb. 1Zend_Service_Yahoob$- KZend_Service_Yahoo_WebResultSetb!, EZend_Service_Yahoo_WebResultb&+ OZend_Service_Yahoo_VideoResultSetb#* IZend_Service_Yahoo_VideoResultb!) EZend_Service_Yahoo_ResultSetb( ?Zend_Service_Yahoo_Resultb)' UZend_Service_Yahoo_PageDataResultSetb&& OZend_Service_Yahoo_PageDataResultb%% MZend_Service_Yahoo_NewsResultSetb"$ GZend_Service_Yahoo_NewsResultb&# OZend_Service_Yahoo_LocalResultSetb#" IZend_Service_Yahoo_LocalResultb+! YZend_Service_Yahoo_InlinkDataResultSetb(  SZend_Service_Yahoo_InlinkDataResultb& OZend_Service_Yahoo_ImageResultSetb# IZend_Service_Yahoo_ImageResultb =Zend_Service_Yahoo_Imageb 5Zend_Service_Twitterb  CZend_Service_Twitter_Searchb# IZend_Service_Twitter_Exceptionb ;Zend_Service_Technoratib# IZend_Service_Technorati_Weblogb" GZend_Service_Technorati_Utilsb* WZend_Service_Technorati_TagsResultSetb' QZend_Service_Technorati_TagsResultb) UZend_Service_Technorati_TagResultSetb& OZend_Service_Technorati_TagResultb, [Zend_Service_Technorati_SearchResultSetb) UZend_Service_Technorati_SearchResultb& OZend_Service_Technorati_ResultSetb# IZend_Service_Technorati_Resultb* WZend_Service_Technorati_KeyInfoResultb* WZend_Service_Technorati_GetInfoResultb& OZend_Service_Technorati_Exceptionb1 eZend_Service_Technorati_DailyCountsResultSetb.
 _Zend_Service_Technorati_DailyCountsResultb,	 [Zend_Service_Technorati_CosmosResultSetb) UZend_Service_Technorati_CosmosResultb+ YZend_Service_Technorati_BlogInfoResultb# IZend_Service_Technorati_Authorb ;Zend_Service_StrikeIronb( SZend_Service_StrikeIron_ZipCodeInfob2 gZend_Service_StrikeIron_USAddressVerificationb- ]Zend_Service_StrikeIron_SalesUseTaxBasicb& OZend_Service_StrikeIron_Exceptionb&  OZend_Service_StrikeIron_Decoratorb! EZend_Service_StrikeIron_Baseb~ ;Zend_Service_SlideShareb&} OZend_Service_SlideShare_SlideShowb&| OZend_Service_SlideShare_Exceptionb{ 1Zend_Service_Simpyb$z KZend_Service_Simpy_WatchlistSetb*y WZend_Service_Simpy_WatchlistFilterSetb'x QZend_Service_Simpy_WatchlistFilterb!w EZend_Service_Simpy_Watchlistbv ?Zend_Service_Simpy_TagSetbu 9Zend_Service_Simpy_Tagbt AZend_Service_Simpy_NoteSetbs ;Zend_Service_Simpy_Notebr AZend_Service_Simpy_LinkSetb!q EZend_Service_Simpy_LinkQuerybp ;Zend_Service_Simpy_Linkbo 9Zend_Service_ReCaptchab$n KZend_Service_ReCaptcha_Responseb$m KZend_Service_ReCaptcha_MailHideb.l _Zend_Service_ReCaptcha_MailHide_Exceptionb%k MZend_Service_ReCaptcha_Exceptionbj 7Zend_Service_Nirvanixb#i IZend_Service_Nirvanix_Responseb)h UZend_Service_Nirvanix_Namespace_Imfsb)g UZend_Service_Nirvanix_Namespace_Baseb$f KZend_Service_Nirvanix_Exceptionbe 3Zend_Service_Flickrb   s Y+rV7oU6sQ.jO9(	




l
N
2
					u	I	mE"zX< xV4y`A"_?oJ&oM'wQ/                               : ?Zend_View_Helper_HeadMetab9 ?Zend_View_Helper_HeadLinkb"8 GZend_View_Helper_FormTextareab7 ?Zend_View_Helper_FormTextb 6 CZend_View_Helper_FormSubmitb 5 CZend_View_Helper_FormSelectb4 AZend_View_Helper_FormResetb3 AZend_View_Helper_FormRadiob"2 GZend_View_Helper_FormPasswordb1 ?Zend_View_Helper_FormNoteb'0 QZend_View_Helper_FormMultiCheckboxb/ AZend_View_Helper_FormLabelb. AZend_View_Helper_FormImageb - CZend_View_Helper_FormHiddenb, ?Zend_View_Helper_FormFileb + CZend_View_Helper_FormErrorsb!* EZend_View_Helper_FormElementb") GZend_View_Helper_FormCheckboxb ( CZend_View_Helper_FormButtonb' 7Zend_View_Helper_Formb& ?Zend_View_Helper_Fieldsetb% =Zend_View_Helper_Doctypeb!$ EZend_View_Helper_DeclareVarsb# ;Zend_View_Helper_Actionb" ?Zend_View_Helper_Abstractb! 3Zend_View_Exceptionb  1Zend_View_Abstractb %Zend_Versionb 'Zend_Validateb AZend_Validate_StringLengthb 3Zend_Validate_Regexb 9Zend_Validate_NotEmptyb 9Zend_Validate_LessThanb -Zend_Validate_Ipb /Zend_Validate_Intb 7Zend_Validate_InArrayb ;Zend_Validate_Identicalb 9Zend_Validate_Hostnameb ?Zend_Validate_Hostname_Seb ?Zend_Validate_Hostname_Nob ?Zend_Validate_Hostname_Lib ?Zend_Validate_Hostname_Hub ?Zend_Validate_Hostname_Fib ?Zend_Validate_Hostname_Deb ?Zend_Validate_Hostname_Chb ?Zend_Validate_Hostname_Atb /Zend_Validate_Hexb ?Zend_Validate_GreaterThanb
 3Zend_Validate_Floatb	 ?Zend_Validate_File_Uploadb ;Zend_Validate_File_Sizeb ;Zend_Validate_File_Sha1b! EZend_Validate_File_NotExistsb  CZend_Validate_File_MimeTypeb 9Zend_Validate_File_Md5b AZend_Validate_File_IsImageb$ KZend_Validate_File_IsCompressedb! EZend_Validate_File_ImageSizeb  ;Zend_Validate_File_Hashb! EZend_Validate_File_FilesSizeb!~ EZend_Validate_File_Extensionb} ?Zend_Validate_File_Existsb'| QZend_Validate_File_ExcludeMimeTypeb({ SZend_Validate_File_ExcludeExtensionbz =Zend_Validate_File_Crc32by =Zend_Validate_File_Countbx ;Zend_Validate_Exceptionbw AZend_Validate_EmailAddressbv 5Zend_Validate_Digitsbu 1Zend_Validate_Datebt 3Zend_Validate_Ccnumbs 7Zend_Validate_Betweenbr 7Zend_Validate_Barcodebq AZend_Validate_Barcode_UpcAb p CZend_Validate_Barcode_Ean13bo 3Zend_Validate_Alphabn 3Zend_Validate_Alnumbm 9Zend_Validate_Abstractbl Zend_Uribk 'Zend_Uri_Httpbj 1Zend_Uri_Exceptionbi )Zend_Translatebh =Zend_Translate_Exceptionbg 9Zend_Translate_Adapterb!f EZend_Translate_Adapter_XmlTmb!e EZend_Translate_Adapter_Xliffbd AZend_Translate_Adapter_Tmxbc AZend_Translate_Adapter_Tbxbb ?Zend_Translate_Adapter_Qtba AZend_Translate_Adapter_Inib#` IZend_Translate_Adapter_Gettextb_ AZend_Translate_Adapter_Csvb!^ EZend_Translate_Adapter_Arrayb] 'Zend_TimeSyncb\ 1Zend_TimeSync_Sntpb[ 9Zend_TimeSync_ProtocolbZ /Zend_TimeSync_NtpbY ;Zend_TimeSync_ExceptionbX +Zend_Text_TablebW 3Zend_Text_Table_RowbV ?Zend_Text_Table_Exceptionb&U OZend_Text_Table_Decorator_Unicodeb$T KZend_Text_Table_Decorator_AsciibS 9Zend_Text_Table_ColumnbR 3Zend_Text_MultiBytebQ -Zend_Text_FigletbP AZend_Text_Figlet_ExceptionbO 3Zend_Text_Exceptionb)N UZend_Test_PHPUnit_ControllerTestCaseb0M cZend_Test_PHPUnit_Constraint_ResponseHeaderb*L WZend_Test_PHPUnit_Constraint_Redirectb+K YZend_Test_PHPUnit_Constraint_Exceptionb*J WZend_Test_PHPUnit_Constraint_DomQuerybI )Zend_Soap_Wsdlb/H aZend_Soap_Wsdl_Strategy_DefaultComplexTypeb   k  qN,{[0NZ-
xK



{
R
#					z	Y	7	uS8lH&pV-a8bD+tQ,i;
O"   % AZend_Auth_Adapter_InfoCardc$ 9Zend_Auth_Adapter_Httpc)# UZend_Auth_Adapter_Http_Resolver_Filec." _Zend_Auth_Adapter_Http_Resolver_Exceptionc ! CZend_Auth_Adapter_Exceptionc  =Zend_Auth_Adapter_Digestc ?Zend_Auth_Adapter_DbTablec ?Zend_Amf_Value_TraitsInfoc- ]Zend_Amf_Value_Messaging_RemotingMessagec* WZend_Amf_Value_Messaging_ErrorMessagec, [Zend_Amf_Value_Messaging_CommandMessagec* WZend_Amf_Value_Messaging_AsyncMessagec0 cZend_Amf_Value_Messaging_AcknowledgeMessagec- ]Zend_Amf_Value_Messaging_AbstractMessagec! EZend_Amf_Value_MessageHeaderc AZend_Amf_Value_MessageBodyc =Zend_Amf_Value_ByteArrayc AZend_Amf_Util_BinaryStreamc +Zend_Amf_Serverc ?Zend_Amf_Server_Exceptionc /Zend_Amf_Responsec 9Zend_Amf_Response_Httpc -Zend_Amf_Requestc 7Zend_Amf_Request_Httpc ?Zend_Amf_Parse_TypeLoaderc ?Zend_Amf_Parse_Serializerc  CZend_Amf_Parse_OutputStreamc
 AZend_Amf_Parse_InputStreamc 	 CZend_Amf_Parse_Deserializerc# IZend_Amf_Parse_Amf3_Serializerc% MZend_Amf_Parse_Amf3_Deserializerc# IZend_Amf_Parse_Amf0_Serializerc% MZend_Amf_Parse_Amf0_Deserializerc 1Zend_Amf_Exceptionc 1Zend_Amf_Constantsc Zend_Aclc 'Zend_Acl_Rolec  9Zend_Acl_Role_Registryc% MZend_Acl_Role_Registry_Exceptionc~ /Zend_Acl_Resourcec} 1Zend_Acl_Exceptionc| /Zend_XmlRpc_Valueb{ =Zend_XmlRpc_Value_Structbz =Zend_XmlRpc_Value_Stringby =Zend_XmlRpc_Value_Scalarbx 7Zend_XmlRpc_Value_Nilbw ?Zend_XmlRpc_Value_Integerb v CZend_XmlRpc_Value_Exceptionbu =Zend_XmlRpc_Value_Doublebt AZend_XmlRpc_Value_DateTimeb!s EZend_XmlRpc_Value_Collectionbr ?Zend_XmlRpc_Value_Booleanbq =Zend_XmlRpc_Value_Base64bp ;Zend_XmlRpc_Value_Arraybo 1Zend_XmlRpc_Serverbn ?Zend_XmlRpc_Server_Systembm =Zend_XmlRpc_Server_Faultb!l EZend_XmlRpc_Server_Exceptionbk =Zend_XmlRpc_Server_Cachebj 5Zend_XmlRpc_Responsebi ?Zend_XmlRpc_Response_Httpbh 3Zend_XmlRpc_Requestbg ?Zend_XmlRpc_Request_Stdinbf =Zend_XmlRpc_Request_Httpbe /Zend_XmlRpc_Faultbd 7Zend_XmlRpc_Exceptionbc 1Zend_XmlRpc_Clientb#b IZend_XmlRpc_Client_ServerProxyb+a YZend_XmlRpc_Client_ServerIntrospectionb+` YZend_XmlRpc_Client_IntrospectExceptionb%_ MZend_XmlRpc_Client_HttpExceptionb&^ OZend_XmlRpc_Client_FaultExceptionb!] EZend_XmlRpc_Client_Exceptionb&\ OZend_Wildfire_Protocol_JsonStreamb![ EZend_Wildfire_Plugin_FirePhpb.Z _Zend_Wildfire_Plugin_FirePhp_TableMessageb)Y UZend_Wildfire_Plugin_FirePhp_MessagebX ;Zend_Wildfire_Exceptionb&W OZend_Wildfire_Channel_HttpHeadersbV Zend_ViewbU -Zend_View_StreambT 5Zend_View_Helper_UrlbS AZend_View_Helper_Translateb)R UZend_View_Helper_RenderToPlaceholderb!Q EZend_View_Helper_Placeholderb*P WZend_View_Helper_Placeholder_Registryb4O kZend_View_Helper_Placeholder_Registry_Exceptionb+N YZend_View_Helper_Placeholder_Containerb6M oZend_View_Helper_Placeholder_Container_Standaloneb5L mZend_View_Helper_Placeholder_Container_Exceptionb4K kZend_View_Helper_Placeholder_Container_Abstractb!J EZend_View_Helper_PartialLoopbI =Zend_View_Helper_Partialb'H QZend_View_Helper_Partial_Exceptionb'G QZend_View_Helper_PaginationControlbF ;Zend_View_Helper_LayoutbE 7Zend_View_Helper_Jsonb"D GZend_View_Helper_InlineScriptb#C IZend_View_Helper_HtmlQuicktimebB ?Zend_View_Helper_HtmlPageb A CZend_View_Helper_HtmlObjectb@ ?Zend_View_Helper_HtmlListb? AZend_View_Helper_HtmlFlashb!> EZend_View_Helper_HtmlElementb= AZend_View_Helper_HeadTitleb< AZend_View_Helper_HeadStyleb ; CZend_View_Helper_HeadScriptb   c  }W6}Q-lI,j<k@



p
M
-
				Y	0	^5
_9_3qN+vLzM"vR/j;       { 9Zend_Request_Interfacedz ?Zend_Pdf_Filter_Interfaced&y OZend_Pdf_ElementFactory_Interfaced,x [Zend_Paginator_ScrollingStyle_Interfaced%w MZend_Paginator_Adapter_Interfaced$v KZend_Memory_Container_Interfaced)u UZend_Mail_Storage_Writable_Interfaced't QZend_Mail_Storage_Folder_Interfaceds =Zend_Mail_Part_Interfaced r CZend_Mail_Message_Interfaced!q EZend_Log_Formatter_Interfacedp ?Zend_Log_Filter_Interfaced'o QZend_Loader_PluginLoader_Interfaced3n iZend_InfoCard_Xml_Security_Transform_Interfaced(m SZend_InfoCard_Xml_KeyInfo_Interfaced(l SZend_InfoCard_Xml_Element_Interfaced*k WZend_InfoCard_Xml_Assertion_Interfaced-j ]Zend_InfoCard_Cipher_Symmetric_Interfaced7i qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interfaced7h qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interfaced+g YZend_InfoCard_Cipher_Pki_Rsa_Interfaced'f QZend_InfoCard_Cipher_Pki_Interfaced$e KZend_InfoCard_Adapter_Interfaced'd QZend_Http_Client_Adapter_Interfacedc AZend_Gdata_App_MediaSourced"b GZend_Form_Decorator_Interfaceda 7Zend_Filter_Interfaced ` CZend_Feed_Builder_Interfaced _ CZend_Db_Statement_Interfaced+^ YZend_Controller_Router_Route_Interfaced%] MZend_Controller_Router_Interfaced)\ UZend_Controller_Dispatcher_Interfaced[ 5Zend_Captcha_Adapterd!Z EZend_Cache_Backend_Interfaced)Y UZend_Cache_Backend_ExtendedInterfaced X CZend_Auth_Storage_Interfaced W CZend_Auth_Adapter_Interfaced.V _Zend_Auth_Adapter_Http_Resolver_InterfacedU ;Zend_Acl_Role_Interfaced T CZend_Acl_Resource_InterfacedS ?Zend_Acl_Assert_Interfaced#R IZend_Wildfire_Plugin_Interfacec$Q KZend_Wildfire_Channel_InterfacecP 3Zend_View_InterfacecO AZend_View_Helper_InterfacecN ;Zend_Validate_Interfacec%M MZend_Validate_Hostname_Interfacec(L SZend_Text_Table_Decorator_Interfacec&K OZend_Soap_Wsdl_Strategy_Interfacec%J MZend_Session_Validator_Interfacec'I QZend_Session_SaveHandler_InterfacecH 7Zend_Server_Interfacec!G EZend_Search_Lucene_InterfacecF 9Zend_Request_InterfacecE ?Zend_Pdf_Filter_Interfacec&D OZend_Pdf_ElementFactory_Interfacec,C [Zend_Paginator_ScrollingStyle_Interfacec%B MZend_Paginator_Adapter_Interfacec$A KZend_Memory_Container_Interfacec)@ UZend_Mail_Storage_Writable_Interfacec'? QZend_Mail_Storage_Folder_Interfacec> =Zend_Mail_Part_Interfacec = CZend_Mail_Message_Interfacec!< EZend_Log_Formatter_Interfacec; ?Zend_Log_Filter_Interfacec': QZend_Loader_PluginLoader_Interfacec39 iZend_InfoCard_Xml_Security_Transform_Interfacec(8 SZend_InfoCard_Xml_KeyInfo_Interfacec(7 SZend_InfoCard_Xml_Element_Interfacec*6 WZend_InfoCard_Xml_Assertion_Interfacec-5 ]Zend_InfoCard_Cipher_Symmetric_Interfacec74 qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interfacec73 qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interfacec+2 YZend_InfoCard_Cipher_Pki_Rsa_Interfacec'1 QZend_InfoCard_Cipher_Pki_Interfacec$0 KZend_InfoCard_Adapter_Interfacec'/ QZend_Http_Client_Adapter_Interfacec. AZend_Gdata_App_MediaSourcec"- GZend_Form_Decorator_Interfacec, 7Zend_Filter_Interfacec + CZend_Feed_Builder_Interfacec * CZend_Db_Statement_Interfacec+) YZend_Controller_Router_Route_Interfacec%( MZend_Controller_Router_Interfacec)' UZend_Controller_Dispatcher_Interfacec& 5Zend_Captcha_Adapterc!% EZend_Cache_Backend_Interfacec)$ UZend_Cache_Backend_ExtendedInterfacec # CZend_Auth_Storage_Interfacec " CZend_Auth_Adapter_Interfacec.! _Zend_Auth_Adapter_Http_Resolver_Interfacec  ;Zend_Acl_Role_Interfacec  CZend_Acl_Resource_Interfacec ?Zend_Acl_Assert_Interfacec# IZend_Wildfire_Plugin_Interfaceb$ KZend_Wildfire_Channel_Interfaceb 3Zend_View_Interfaceb AZend_View_Helper_Interfaceb ;Zend_Validate_Interfaceb   j  g?e@c>x]>$t\H"


|
J
			c	.	u;kI+]3	fAqJl@`:lG#      ;Zend_Db_Adapter_Pdo_Ibmc  CZend_Db_Adapter_Pdo_Ibm_Idsc  CZend_Db_Adapter_Pdo_Ibm_Db2c! EZend_Db_Adapter_Pdo_Abstractc 9Zend_Db_Adapter_Oraclec%
 MZend_Db_Adapter_Oracle_Exceptionc	 9Zend_Db_Adapter_Mysqlic% MZend_Db_Adapter_Mysqli_Exceptionc ?Zend_Db_Adapter_Exceptionc 3Zend_Db_Adapter_Db2c" GZend_Db_Adapter_Db2_Exceptionc =Zend_Db_Adapter_Abstractc Zend_Datec 3Zend_Date_Exceptionc 5Zend_Date_DateObjectc  -Zend_Date_Citiesc 'Zend_Currencyc~ ;Zend_Currency_Exceptionc!} EZend_Controller_Router_Routec(| SZend_Controller_Router_Route_Staticc'{ QZend_Controller_Router_Route_Regexc(z SZend_Controller_Router_Route_Modulec*y WZend_Controller_Router_Route_Hostnamec'x QZend_Controller_Router_Route_Chainc*w WZend_Controller_Router_Route_Abstractc#v IZend_Controller_Router_Rewritec%u MZend_Controller_Router_Exceptionc$t KZend_Controller_Router_Abstractc*s WZend_Controller_Response_HttpTestCasec"r GZend_Controller_Response_Httpc'q QZend_Controller_Response_Exceptionc!p EZend_Controller_Response_Clic&o OZend_Controller_Response_Abstractc#n IZend_Controller_Request_Simplec)m UZend_Controller_Request_HttpTestCasec!l EZend_Controller_Request_Httpc&k OZend_Controller_Request_Exceptionc&j OZend_Controller_Request_Apache404c%i MZend_Controller_Request_Abstractc(h SZend_Controller_Plugin_ErrorHandlerc"g GZend_Controller_Plugin_Brokerc'f QZend_Controller_Plugin_ActionStackc$e KZend_Controller_Plugin_Abstractcd 7Zend_Controller_Frontcc ?Zend_Controller_Exceptionc(b SZend_Controller_Dispatcher_Standardc)a UZend_Controller_Dispatcher_Exceptionc(` SZend_Controller_Dispatcher_Abstractc_ 9Zend_Controller_Actionc(^ SZend_Controller_Action_HelperBrokerc6] oZend_Controller_Action_HelperBroker_PriorityStackc/\ aZend_Controller_Action_Helper_ViewRendererc&[ OZend_Controller_Action_Helper_Urlc-Z ]Zend_Controller_Action_Helper_Redirectorc'Y QZend_Controller_Action_Helper_Jsonc1X eZend_Controller_Action_Helper_FlashMessengerc0W cZend_Controller_Action_Helper_ContextSwitchc<V {Zend_Controller_Action_Helper_AutoCompleteScriptaculousc3U iZend_Controller_Action_Helper_AutoCompleteDojoc8T sZend_Controller_Action_Helper_AutoComplete_Abstractc.S _Zend_Controller_Action_Helper_AjaxContextc.R _Zend_Controller_Action_Helper_ActionStackc+Q YZend_Controller_Action_Helper_Abstractc%P MZend_Controller_Action_ExceptioncO 3Zend_Console_Getoptc"N GZend_Console_Getopt_ExceptioncM #Zend_ConfigcL +Zend_Config_XmlcK 1Zend_Config_WritercJ 9Zend_Config_Writer_XmlcI 9Zend_Config_Writer_InicH =Zend_Config_Writer_ArraycG +Zend_Config_InicF 7Zend_Config_ExceptioncE /Zend_Captcha_WordcD 9Zend_Captcha_ReCaptchacC 1Zend_Captcha_ImagecB 3Zend_Captcha_FigletcA 9Zend_Captcha_Exceptionc@ /Zend_Captcha_Dumbc? /Zend_Captcha_Basec> !Zend_Cachec= =Zend_Cache_Frontend_Pagec< AZend_Cache_Frontend_Outputc!; EZend_Cache_Frontend_Functionc: =Zend_Cache_Frontend_Filec9 ?Zend_Cache_Frontend_Classc8 5Zend_Cache_Exceptionc7 +Zend_Cache_Corec6 1Zend_Cache_Backendc$5 KZend_Cache_Backend_ZendPlatformc4 ?Zend_Cache_Backend_Xcachec!3 EZend_Cache_Backend_TwoLevelsc2 ;Zend_Cache_Backend_Testc1 ?Zend_Cache_Backend_Sqlitec!0 EZend_Cache_Backend_Memcachedc/ ;Zend_Cache_Backend_Filec. 9Zend_Cache_Backend_Apcc- Zend_Authc, ?Zend_Auth_Storage_Sessionc$+ KZend_Auth_Storage_NonPersistentc * CZend_Auth_Storage_Exceptionc) -Zend_Auth_Resultc( 3Zend_Auth_Exceptionc' =Zend_Auth_Adapter_OpenIdc& 9Zend_Auth_Adapter_Ldapc   e  zW=(tL.
rP2xR+z^*



m
?
				b	<	mCd5
i>W+`2gBj<f;                        #t IZend_Dojo_View_Helper_Textareac's QZend_Dojo_View_Helper_TabContainerc'r QZend_Dojo_View_Helper_SubmitButtonc)q UZend_Dojo_View_Helper_StackContainerc)p UZend_Dojo_View_Helper_SplitContainerc!o EZend_Dojo_View_Helper_Sliderc)n UZend_Dojo_View_Helper_SimpleTextareac&m OZend_Dojo_View_Helper_RadioButtonc*l WZend_Dojo_View_Helper_PasswordTextBoxc(k SZend_Dojo_View_Helper_NumberTextBoxc(j SZend_Dojo_View_Helper_NumberSpinnerc+i YZend_Dojo_View_Helper_HorizontalSliderch AZend_Dojo_View_Helper_Formc*g WZend_Dojo_View_Helper_FilteringSelectc!f EZend_Dojo_View_Helper_Editorce AZend_Dojo_View_Helper_Dojoc)d UZend_Dojo_View_Helper_Dojo_Containerc)c UZend_Dojo_View_Helper_DijitContainerc b CZend_Dojo_View_Helper_Dijitc&a OZend_Dojo_View_Helper_DateTextBoxc*` WZend_Dojo_View_Helper_CurrencyTextBoxc&_ OZend_Dojo_View_Helper_ContentPanec#^ IZend_Dojo_View_Helper_ComboBoxc#] IZend_Dojo_View_Helper_CheckBoxc!\ EZend_Dojo_View_Helper_Buttonc*[ WZend_Dojo_View_Helper_BorderContainerc(Z SZend_Dojo_View_Helper_AccordionPanec-Y ]Zend_Dojo_View_Helper_AccordionContainercX =Zend_Dojo_View_ExceptioncW )Zend_Dojo_FormcV 9Zend_Dojo_Form_SubFormc*U WZend_Dojo_Form_Element_VerticalSliderc-T ]Zend_Dojo_Form_Element_ValidationTextBoxc'S QZend_Dojo_Form_Element_TimeTextBoxc#R IZend_Dojo_Form_Element_TextBoxc$Q KZend_Dojo_Form_Element_Textareac(P SZend_Dojo_Form_Element_SubmitButtonc"O GZend_Dojo_Form_Element_Sliderc'N QZend_Dojo_Form_Element_RadioButtonc+M YZend_Dojo_Form_Element_PasswordTextBoxc)L UZend_Dojo_Form_Element_NumberTextBoxc)K UZend_Dojo_Form_Element_NumberSpinnerc,J [Zend_Dojo_Form_Element_HorizontalSliderc+I YZend_Dojo_Form_Element_FilteringSelectc"H GZend_Dojo_Form_Element_Editorc&G OZend_Dojo_Form_Element_DijitMultic!F EZend_Dojo_Form_Element_Dijitc'E QZend_Dojo_Form_Element_DateTextBoxc+D YZend_Dojo_Form_Element_CurrencyTextBoxc$C KZend_Dojo_Form_Element_ComboBoxc$B KZend_Dojo_Form_Element_CheckBoxc"A GZend_Dojo_Form_Element_Buttonc @ CZend_Dojo_Form_DisplayGroupc*? WZend_Dojo_Form_Decorator_TabContainerc,> [Zend_Dojo_Form_Decorator_StackContainerc,= [Zend_Dojo_Form_Decorator_SplitContainerc'< QZend_Dojo_Form_Decorator_DijitFormc*; WZend_Dojo_Form_Decorator_DijitElementc,: [Zend_Dojo_Form_Decorator_DijitContainerc)9 UZend_Dojo_Form_Decorator_ContentPanec-8 ]Zend_Dojo_Form_Decorator_BorderContainerc+7 YZend_Dojo_Form_Decorator_AccordionPanec06 cZend_Dojo_Form_Decorator_AccordionContainerc5 3Zend_Dojo_Exceptionc4 )Zend_Dojo_Datac3 !Zend_Debugc2 Zend_Dbc1 'Zend_Db_Tablec0 5Zend_Db_Table_Selectc#/ IZend_Db_Table_Select_Exceptionc. 5Zend_Db_Table_Rowsetc#- IZend_Db_Table_Rowset_Exceptionc", GZend_Db_Table_Rowset_Abstractc+ /Zend_Db_Table_Rowc * CZend_Db_Table_Row_Exceptionc) AZend_Db_Table_Row_Abstractc( ;Zend_Db_Table_Exceptionc' 9Zend_Db_Table_Abstractc& /Zend_Db_Statementc% 7Zend_Db_Statement_Pdoc$ ?Zend_Db_Statement_Pdo_Ibmc# =Zend_Db_Statement_Oraclec'" QZend_Db_Statement_Oracle_Exceptionc! =Zend_Db_Statement_Mysqlic'  QZend_Db_Statement_Mysqli_Exceptionc  CZend_Db_Statement_Exceptionc 7Zend_Db_Statement_Db2c$ KZend_Db_Statement_Db2_Exceptionc )Zend_Db_Selectc =Zend_Db_Select_Exceptionc -Zend_Db_Profilerc 9Zend_Db_Profiler_Queryc =Zend_Db_Profiler_Firebugc AZend_Db_Profiler_Exceptionc %Zend_Db_Exprc /Zend_Db_Exceptionc AZend_Db_Adapter_Pdo_Sqlitec ?Zend_Db_Adapter_Pdo_Pgsqlc ;Zend_Db_Adapter_Pdo_Ocic ?Zend_Db_Adapter_Pdo_Mysqlc ?Zend_Db_Adapter_Pdo_Mssqlc   q  SA&gClP:(z`C(kM3




{
Y
;
				c	9	Y/ yU-vU,qJ#z[<jJ*	lP6$^A                $e KZend_Gdata_App_Extension_Authorcd =Zend_Gdata_App_Exceptioncc 5Zend_Gdata_App_Entryc,b [Zend_Gdata_App_CaptchaRequiredExceptionc#a IZend_Gdata_App_BaseMediaSourcec` 3Zend_Gdata_App_Basec*_ WZend_Gdata_App_BadMethodCallExceptionc!^ EZend_Gdata_App_AuthExceptionc] Zend_Formc\ /Zend_Form_SubFormc[ 3Zend_Form_ExceptioncZ /Zend_Form_ElementcY ;Zend_Form_Element_XhtmlcX AZend_Form_Element_TextareacW 9Zend_Form_Element_TextcV =Zend_Form_Element_SubmitcU =Zend_Form_Element_SelectcT ;Zend_Form_Element_ResetcS ;Zend_Form_Element_RadiocR AZend_Form_Element_Passwordc"Q GZend_Form_Element_Multiselectc$P KZend_Form_Element_MultiCheckboxcO ;Zend_Form_Element_MulticN ;Zend_Form_Element_ImagecM =Zend_Form_Element_HiddencL 9Zend_Form_Element_HashcK 9Zend_Form_Element_Filec J CZend_Form_Element_ExceptioncI AZend_Form_Element_CheckboxcH ?Zend_Form_Element_CaptchacG =Zend_Form_Element_ButtoncF 9Zend_Form_DisplayGroupc#E IZend_Form_Decorator_ViewScriptc#D IZend_Form_Decorator_ViewHelperc(C SZend_Form_Decorator_PrepareElementscB ?Zend_Form_Decorator_LabelcA ?Zend_Form_Decorator_Imagec @ CZend_Form_Decorator_HtmlTagc#? IZend_Form_Decorator_FormErrorsc%> MZend_Form_Decorator_FormElementsc= =Zend_Form_Decorator_Formc< =Zend_Form_Decorator_Filec!; EZend_Form_Decorator_Fieldsetc": GZend_Form_Decorator_Exceptionc9 AZend_Form_Decorator_Errorsc$8 KZend_Form_Decorator_DtDdWrapperc$7 KZend_Form_Decorator_Descriptionc 6 CZend_Form_Decorator_Captchac%5 MZend_Form_Decorator_Captcha_Wordc!4 EZend_Form_Decorator_Callbackc!3 EZend_Form_Decorator_Abstractc2 #Zend_Filterc+1 YZend_Filter_Word_UnderscoreToSeparatorc&0 OZend_Filter_Word_UnderscoreToDashc+/ YZend_Filter_Word_UnderscoreToCamelCasec*. WZend_Filter_Word_SeparatorToSeparatorc%- MZend_Filter_Word_SeparatorToDashc*, WZend_Filter_Word_SeparatorToCamelCasec(+ SZend_Filter_Word_Separator_Abstractc&* OZend_Filter_Word_DashToUnderscorec%) MZend_Filter_Word_DashToSeparatorc%( MZend_Filter_Word_DashToCamelCasec+' YZend_Filter_Word_CamelCaseToUnderscorec*& WZend_Filter_Word_CamelCaseToSeparatorc%% MZend_Filter_Word_CamelCaseToDashc$ 7Zend_Filter_StripTagsc# ?Zend_Filter_StripNewlinesc" 9Zend_Filter_StringTrimc! ?Zend_Filter_StringToUpperc  ?Zend_Filter_StringToLowerc 5Zend_Filter_RealPathc ;Zend_Filter_PregReplacec +Zend_Filter_Intc /Zend_Filter_Inputc 7Zend_Filter_Inflectorc =Zend_Filter_HtmlEntitiesc AZend_Filter_File_UpperCasec ;Zend_Filter_File_Renamec AZend_Filter_File_LowerCasec 7Zend_Filter_Exceptionc +Zend_Filter_Dirc 1Zend_Filter_Digitsc 5Zend_Filter_BaseNamec /Zend_Filter_Alphac /Zend_Filter_Alnumc 1Zend_File_Transferc! EZend_File_Transfer_Exceptionc$ KZend_File_Transfer_Adapter_Httpc( SZend_File_Transfer_Adapter_Abstractc Zend_Feedc 'Zend_Feed_Rssc
 3Zend_Feed_Exceptionc	 3Zend_Feed_Entry_Rssc 5Zend_Feed_Entry_Atomc =Zend_Feed_Entry_Abstractc /Zend_Feed_Elementc /Zend_Feed_Builderc =Zend_Feed_Builder_Headerc$ KZend_Feed_Builder_Header_Itunesc  CZend_Feed_Builder_Exceptionc ;Zend_Feed_Builder_Entryc  )Zend_Feed_Atomc 1Zend_Feed_Abstractc~ )Zend_Exceptionc} )Zend_Dom_Queryc| 7Zend_Dom_Query_Resultc{ =Zend_Dom_Query_Css2Xpathcz 1Zend_Dom_Exceptioncy Zend_Dojoc)x UZend_Dojo_View_Helper_VerticalSliderc,w [Zend_Dojo_View_Helper_ValidationTextBoxc&v OZend_Dojo_View_Helper_TimeTextBoxc"u GZend_Dojo_View_Helper_TextBoxc   _  W0kE~V,hG+d.




o
F
				]	1	xS/
}Ki,eF`,g8Z/[4                                #D IZend_Gdata_Exif_Extension_Tagsc$C KZend_Gdata_Exif_Extension_Modelc#B IZend_Gdata_Exif_Extension_Makec"A GZend_Gdata_Exif_Extension_Isoc,@ [Zend_Gdata_Exif_Extension_ImageUniqueIdc$? KZend_Gdata_Exif_Extension_FStopc*> WZend_Gdata_Exif_Extension_FocalLengthc$= KZend_Gdata_Exif_Extension_Flashc'< QZend_Gdata_Exif_Extension_Exposurec'; QZend_Gdata_Exif_Extension_Distancec: 7Zend_Gdata_Exif_Entryc9 -Zend_Gdata_Entryc8 7Zend_Gdata_DublinCorec*7 WZend_Gdata_DublinCore_Extension_Titlec,6 [Zend_Gdata_DublinCore_Extension_Subjectc+5 YZend_Gdata_DublinCore_Extension_Rightsc.4 _Zend_Gdata_DublinCore_Extension_Publisherc-3 ]Zend_Gdata_DublinCore_Extension_Languagec/2 aZend_Gdata_DublinCore_Extension_Identifierc+1 YZend_Gdata_DublinCore_Extension_Formatc00 cZend_Gdata_DublinCore_Extension_Descriptionc)/ UZend_Gdata_DublinCore_Extension_Datec,. [Zend_Gdata_DublinCore_Extension_Creatorc- +Zend_Gdata_Docsc, 7Zend_Gdata_Docs_Queryc%+ MZend_Gdata_Docs_DocumentListFeedc&* OZend_Gdata_Docs_DocumentListEntryc) 9Zend_Gdata_ClientLoginc( 3Zend_Gdata_Calendarc!' EZend_Gdata_Calendar_ListFeedc"& GZend_Gdata_Calendar_ListEntryc-% ]Zend_Gdata_Calendar_Extension_WebContentc+$ YZend_Gdata_Calendar_Extension_Timezonec9# uZend_Gdata_Calendar_Extension_SendEventNotificationsc+" YZend_Gdata_Calendar_Extension_Selectedc+! YZend_Gdata_Calendar_Extension_QuickAddc'  QZend_Gdata_Calendar_Extension_Linkc) UZend_Gdata_Calendar_Extension_Hiddenc( SZend_Gdata_Calendar_Extension_Colorc. _Zend_Gdata_Calendar_Extension_AccessLevelc# IZend_Gdata_Calendar_EventQueryc" GZend_Gdata_Calendar_EventFeedc# IZend_Gdata_Calendar_EventEntryc -Zend_Gdata_Booksc! EZend_Gdata_Books_VolumeQueryc  CZend_Gdata_Books_VolumeFeedc! EZend_Gdata_Books_VolumeEntryc+ YZend_Gdata_Books_Extension_Viewabilityc- ]Zend_Gdata_Books_Extension_ThumbnailLinkc& OZend_Gdata_Books_Extension_Reviewc+ YZend_Gdata_Books_Extension_PreviewLinkc( SZend_Gdata_Books_Extension_InfoLinkc- ]Zend_Gdata_Books_Extension_Embeddabilityc) UZend_Gdata_Books_Extension_BooksLinkc- ]Zend_Gdata_Books_Extension_BooksCategoryc. _Zend_Gdata_Books_Extension_AnnotationLinkc$ KZend_Gdata_Books_CollectionFeedc% MZend_Gdata_Books_CollectionEntryc
 1Zend_Gdata_AuthSubc	 )Zend_Gdata_Appc$ KZend_Gdata_App_VersionExceptionc 3Zend_Gdata_App_Utilc# IZend_Gdata_App_MediaFileSourcec ?Zend_Gdata_App_MediaEntryc2 gZend_Gdata_App_LoggingHttpClientAdapterSocketc AZend_Gdata_App_IOExceptionc, [Zend_Gdata_App_InvalidArgumentExceptionc! EZend_Gdata_App_HttpExceptionc$  KZend_Gdata_App_FeedSourceParentc# IZend_Gdata_App_FeedEntryParentc~ 3Zend_Gdata_App_Feedc} =Zend_Gdata_App_Extensionc!| EZend_Gdata_App_Extension_Uric%{ MZend_Gdata_App_Extension_Updatedc#z IZend_Gdata_App_Extension_Titlec"y GZend_Gdata_App_Extension_Textc%x MZend_Gdata_App_Extension_Summaryc&w OZend_Gdata_App_Extension_Subtitlec$v KZend_Gdata_App_Extension_Sourcec$u KZend_Gdata_App_Extension_Rightsc't QZend_Gdata_App_Extension_Publishedc$s KZend_Gdata_App_Extension_Personc"r GZend_Gdata_App_Extension_Namec"q GZend_Gdata_App_Extension_Logoc"p GZend_Gdata_App_Extension_Linkc o CZend_Gdata_App_Extension_Idc"n GZend_Gdata_App_Extension_Iconc'm QZend_Gdata_App_Extension_Generatorc#l IZend_Gdata_App_Extension_Emailc%k MZend_Gdata_App_Extension_Elementc#j IZend_Gdata_App_Extension_Draftc%i MZend_Gdata_App_Extension_Controlc)h UZend_Gdata_App_Extension_Contributorc%g MZend_Gdata_App_Extension_Contentc&f OZend_Gdata_App_Extension_Categoryc   c  xN(PsBdG/W&



]
4
				w	T	2	eC wZ-Y3wI+V'g8	vH*Y.       *' WZend_Gdata_Photos_Extension_BytesUsedc(& SZend_Gdata_Photos_Extension_AlbumIdc'% QZend_Gdata_Photos_Extension_Accessc#$ IZend_Gdata_Photos_CommentEntryc!# EZend_Gdata_Photos_AlbumQueryc " CZend_Gdata_Photos_AlbumFeedc!! EZend_Gdata_Photos_AlbumEntryc  AZend_Gdata_MediaMimeStreamc -Zend_Gdata_Mediac 7Zend_Gdata_Media_Feedc* WZend_Gdata_Media_Extension_MediaTitlec. _Zend_Gdata_Media_Extension_MediaThumbnailc) UZend_Gdata_Media_Extension_MediaTextc0 cZend_Gdata_Media_Extension_MediaRestrictionc+ YZend_Gdata_Media_Extension_MediaRatingc+ YZend_Gdata_Media_Extension_MediaPlayerc- ]Zend_Gdata_Media_Extension_MediaKeywordsc) UZend_Gdata_Media_Extension_MediaHashc* WZend_Gdata_Media_Extension_MediaGroupc0 cZend_Gdata_Media_Extension_MediaDescriptionc+ YZend_Gdata_Media_Extension_MediaCreditc. _Zend_Gdata_Media_Extension_MediaCopyrightc, [Zend_Gdata_Media_Extension_MediaContentc- ]Zend_Gdata_Media_Extension_MediaCategoryc 9Zend_Gdata_Media_Entryc AZend_Gdata_Kind_EventEntryc 7Zend_Gdata_HttpClientc* WZend_Gdata_HttpAdapterStreamingSocketc) UZend_Gdata_HttpAdapterStreamingProxyc
 /Zend_Gdata_Healthc	 ;Zend_Gdata_Health_Queryc& OZend_Gdata_Health_ProfileListFeedc' QZend_Gdata_Health_ProfileListEntryc" GZend_Gdata_Health_ProfileFeedc# IZend_Gdata_Health_ProfileEntryc$ KZend_Gdata_Health_Extension_Ccrc )Zend_Gdata_Geoc 3Zend_Gdata_Geo_Feedc$ KZend_Gdata_Geo_Extension_GmlPosc&  OZend_Gdata_Geo_Extension_GmlPointc) UZend_Gdata_Geo_Extension_GeoRssWherec~ 5Zend_Gdata_Geo_Entryc} -Zend_Gdata_Gbasec"| GZend_Gdata_Gbase_SnippetQueryc!{ EZend_Gdata_Gbase_SnippetFeedc"z GZend_Gdata_Gbase_SnippetEntrycy 9Zend_Gdata_Gbase_Querycx AZend_Gdata_Gbase_ItemQuerycw ?Zend_Gdata_Gbase_ItemFeedcv AZend_Gdata_Gbase_ItemEntrycu 7Zend_Gdata_Gbase_Feedc-t ]Zend_Gdata_Gbase_Extension_BaseAttributecs 9Zend_Gdata_Gbase_Entrycr -Zend_Gdata_Gappscq AZend_Gdata_Gapps_UserQuerycp ?Zend_Gdata_Gapps_UserFeedco AZend_Gdata_Gapps_UserEntryc&n OZend_Gdata_Gapps_ServiceExceptioncm 9Zend_Gdata_Gapps_Queryc#l IZend_Gdata_Gapps_NicknameQueryc"k GZend_Gdata_Gapps_NicknameFeedc#j IZend_Gdata_Gapps_NicknameEntryc%i MZend_Gdata_Gapps_Extension_Quotac(h SZend_Gdata_Gapps_Extension_Nicknamec$g KZend_Gdata_Gapps_Extension_Namec%f MZend_Gdata_Gapps_Extension_Loginc)e UZend_Gdata_Gapps_Extension_EmailListcd 9Zend_Gdata_Gapps_Errorc-c ]Zend_Gdata_Gapps_EmailListRecipientQueryc,b [Zend_Gdata_Gapps_EmailListRecipientFeedc-a ]Zend_Gdata_Gapps_EmailListRecipientEntryc$` KZend_Gdata_Gapps_EmailListQueryc#_ IZend_Gdata_Gapps_EmailListFeedc$^ KZend_Gdata_Gapps_EmailListEntryc] +Zend_Gdata_Feedc\ 5Zend_Gdata_Extensionc[ =Zend_Gdata_Extension_WhocZ AZend_Gdata_Extension_WherecY ?Zend_Gdata_Extension_Whenc$X KZend_Gdata_Extension_Visibilityc&W OZend_Gdata_Extension_Transparencyc"V GZend_Gdata_Extension_Reminderc-U ]Zend_Gdata_Extension_RecurrenceExceptionc$T KZend_Gdata_Extension_Recurrencec S CZend_Gdata_Extension_Ratingc'R QZend_Gdata_Extension_OriginalEventc0Q cZend_Gdata_Extension_OpenSearchTotalResultsc.P _Zend_Gdata_Extension_OpenSearchStartIndexc0O cZend_Gdata_Extension_OpenSearchItemsPerPagec"N GZend_Gdata_Extension_FeedLinkc*M WZend_Gdata_Extension_ExtendedPropertyc%L MZend_Gdata_Extension_EventStatusc#K IZend_Gdata_Extension_EntryLinkc"J GZend_Gdata_Extension_Commentsc&I OZend_Gdata_Extension_AttendeeTypec(H SZend_Gdata_Extension_AttendeeStatuscG +Zend_Gdata_ExifcF 5Zend_Gdata_Exif_Feedc#E IZend_Gdata_Exif_Extension_Timec   X  wAc6xGf=sN+




c
:
				O	n>pH!|Q$i:[-i=R$n<                                        ( SZend_Gdata_YouTube_Extension_Schoolc-~ ]Zend_Gdata_YouTube_Extension_ReleaseDatec.} _Zend_Gdata_YouTube_Extension_Relationshipc*| WZend_Gdata_YouTube_Extension_Recordedc&{ OZend_Gdata_YouTube_Extension_Racyc-z ]Zend_Gdata_YouTube_Extension_QueryStringc)y UZend_Gdata_YouTube_Extension_Privatec*x WZend_Gdata_YouTube_Extension_Positionc/w aZend_Gdata_YouTube_Extension_PlaylistTitlec,v [Zend_Gdata_YouTube_Extension_PlaylistIdc,u [Zend_Gdata_YouTube_Extension_Occupationc)t UZend_Gdata_YouTube_Extension_NoEmbedc's QZend_Gdata_YouTube_Extension_Musicc(r SZend_Gdata_YouTube_Extension_Moviesc-q ]Zend_Gdata_YouTube_Extension_MediaRatingc,p [Zend_Gdata_YouTube_Extension_MediaGroupc-o ]Zend_Gdata_YouTube_Extension_MediaCreditc.n _Zend_Gdata_YouTube_Extension_MediaContentc*m WZend_Gdata_YouTube_Extension_Locationc&l OZend_Gdata_YouTube_Extension_Linkc*k WZend_Gdata_YouTube_Extension_LastNamec*j WZend_Gdata_YouTube_Extension_Hometownc)i UZend_Gdata_YouTube_Extension_Hobbiesc(h SZend_Gdata_YouTube_Extension_Genderc+g YZend_Gdata_YouTube_Extension_FirstNamec*f WZend_Gdata_YouTube_Extension_Durationc-e ]Zend_Gdata_YouTube_Extension_Descriptionc+d YZend_Gdata_YouTube_Extension_CountHintc)c UZend_Gdata_YouTube_Extension_Controlc)b UZend_Gdata_YouTube_Extension_Companyc'a QZend_Gdata_YouTube_Extension_Booksc%` MZend_Gdata_YouTube_Extension_Agec)_ UZend_Gdata_YouTube_Extension_AboutMec#^ IZend_Gdata_YouTube_ContactFeedc$] KZend_Gdata_YouTube_ContactEntryc#\ IZend_Gdata_YouTube_CommentFeedc$[ KZend_Gdata_YouTube_CommentEntryc$Z KZend_Gdata_YouTube_ActivityFeedc%Y MZend_Gdata_YouTube_ActivityEntrycX ;Zend_Gdata_Spreadsheetsc*W WZend_Gdata_Spreadsheets_WorksheetFeedc+V YZend_Gdata_Spreadsheets_WorksheetEntryc,U [Zend_Gdata_Spreadsheets_SpreadsheetFeedc-T ]Zend_Gdata_Spreadsheets_SpreadsheetEntryc&S OZend_Gdata_Spreadsheets_ListQueryc%R MZend_Gdata_Spreadsheets_ListFeedc&Q OZend_Gdata_Spreadsheets_ListEntryc/P aZend_Gdata_Spreadsheets_Extension_RowCountc-O ]Zend_Gdata_Spreadsheets_Extension_Customc/N aZend_Gdata_Spreadsheets_Extension_ColCountc+M YZend_Gdata_Spreadsheets_Extension_Cellc*L WZend_Gdata_Spreadsheets_DocumentQueryc&K OZend_Gdata_Spreadsheets_CellQueryc%J MZend_Gdata_Spreadsheets_CellFeedc&I OZend_Gdata_Spreadsheets_CellEntrycH -Zend_Gdata_QuerycG /Zend_Gdata_Photosc F CZend_Gdata_Photos_UserQuerycE AZend_Gdata_Photos_UserFeedc D CZend_Gdata_Photos_UserEntrycC AZend_Gdata_Photos_TagEntryc!B EZend_Gdata_Photos_PhotoQueryc A CZend_Gdata_Photos_PhotoFeedc!@ EZend_Gdata_Photos_PhotoEntryc&? OZend_Gdata_Photos_Extension_Widthc'> QZend_Gdata_Photos_Extension_Weightc(= SZend_Gdata_Photos_Extension_Versionc%< MZend_Gdata_Photos_Extension_Userc*; WZend_Gdata_Photos_Extension_Timestampc*: WZend_Gdata_Photos_Extension_Thumbnailc%9 MZend_Gdata_Photos_Extension_Sizec)8 UZend_Gdata_Photos_Extension_Rotationc+7 YZend_Gdata_Photos_Extension_QuotaLimitc-6 ]Zend_Gdata_Photos_Extension_QuotaCurrentc)5 UZend_Gdata_Photos_Extension_Positionc(4 SZend_Gdata_Photos_Extension_PhotoIdc33 iZend_Gdata_Photos_Extension_NumPhotosRemainingc*2 WZend_Gdata_Photos_Extension_NumPhotosc)1 UZend_Gdata_Photos_Extension_Nicknamec%0 MZend_Gdata_Photos_Extension_Namec2/ gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumc). UZend_Gdata_Photos_Extension_Locationc#- IZend_Gdata_Photos_Extension_Idc', QZend_Gdata_Photos_Extension_Heightc2+ gZend_Gdata_Photos_Extension_CommentingEnabledc-* ]Zend_Gdata_Photos_Extension_CommentCountc') QZend_Gdata_Photos_Extension_Clientc)( UZend_Gdata_Photos_Extension_Checksumc   j  yN rFf@uM'Y1



s
:
				~	U	1	`<n.o>(wQ0	zFpO;gS8rQ6  i 5Zend_Log_Writer_Nullch 5Zend_Log_Writer_Mockcg ;Zend_Log_Writer_Firebugcf 1Zend_Log_Writer_Dbce =Zend_Log_Writer_Abstractcd 9Zend_Log_Formatter_Xmlcc ?Zend_Log_Formatter_Simplecb AZend_Log_Formatter_Firebugca =Zend_Log_Filter_Suppressc` =Zend_Log_Filter_Priorityc_ ;Zend_Log_Filter_Messagec^ 1Zend_Log_Exceptionc] #Zend_Localec\ -Zend_Locale_Mathc[ =Zend_Locale_Math_PhpMathcZ AZend_Locale_Math_ExceptioncY 1Zend_Locale_FormatcX 7Zend_Locale_ExceptioncW -Zend_Locale_Datac!V EZend_Locale_Data_TranslationcU #Zend_LoadercT =Zend_Loader_PluginLoaderc'S QZend_Loader_PluginLoader_ExceptioncR 7Zend_Loader_ExceptioncQ Zend_LdapcP 3Zend_Ldap_ExceptioncO #Zend_LayoutcN 7Zend_Layout_Exceptionc)M UZend_Layout_Controller_Plugin_Layoutc0L cZend_Layout_Controller_Action_Helper_LayoutcK Zend_JsoncJ -Zend_Json_ServercI 5Zend_Json_Server_Smdc!H EZend_Json_Server_Smd_ServicecG ?Zend_Json_Server_Responsec#F IZend_Json_Server_Response_HttpcE =Zend_Json_Server_Requestc"D GZend_Json_Server_Request_HttpcC AZend_Json_Server_ExceptioncB 9Zend_Json_Server_ErrorcA 9Zend_Json_Server_Cachec@ 3Zend_Json_Exceptionc? /Zend_Json_Encoderc> /Zend_Json_Decoderc= 'Zend_InfoCardc-< ]Zend_InfoCard_Xml_SecurityTokenReferencec; AZend_InfoCard_Xml_Securityc): UZend_InfoCard_Xml_Security_Transformc49 kZend_InfoCard_Xml_Security_Transform_XmlExcC14Nc38 iZend_InfoCard_Xml_Security_Transform_Exceptionc<7 {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignaturec)6 UZend_InfoCard_Xml_Security_Exceptionc5 ?Zend_InfoCard_Xml_KeyInfoc&4 OZend_InfoCard_Xml_KeyInfo_XmlDSigc&3 OZend_InfoCard_Xml_KeyInfo_Defaultc'2 QZend_InfoCard_Xml_KeyInfo_Abstractc 1 CZend_InfoCard_Xml_Exceptionc#0 IZend_InfoCard_Xml_EncryptedKeyc$/ KZend_InfoCard_Xml_EncryptedDatac+. YZend_InfoCard_Xml_EncryptedData_XmlEncc-- ]Zend_InfoCard_Xml_EncryptedData_Abstractc, ?Zend_InfoCard_Xml_Elementc + CZend_InfoCard_Xml_Assertionc%* MZend_InfoCard_Xml_Assertion_Samlc) ;Zend_InfoCard_Exceptionc%( MZend_InfoCard_Exception_Abstractc' 5Zend_InfoCard_Claimsc& 5Zend_InfoCard_Cipherc5% mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcc5$ mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcc4# kZend_InfoCard_Cipher_Symmetric_Adapter_Abstractc)" UZend_InfoCard_Cipher_Pki_Adapter_Rsac.! _Zend_InfoCard_Cipher_Pki_Adapter_Abstractc#  IZend_InfoCard_Cipher_Exceptionc$ KZend_InfoCard_Adapter_Exceptionc" GZend_InfoCard_Adapter_Defaultc 1Zend_Http_Responsec 3Zend_Http_Exceptionc 3Zend_Http_CookieJarc -Zend_Http_Cookiec -Zend_Http_Clientc AZend_Http_Client_Exceptionc" GZend_Http_Client_Adapter_Testc$ KZend_Http_Client_Adapter_Socketc# IZend_Http_Client_Adapter_Proxyc' QZend_Http_Client_Adapter_Exceptionc !Zend_Gdatac 1Zend_Gdata_YouTubec" GZend_Gdata_YouTube_VideoQueryc! EZend_Gdata_YouTube_VideoFeedc" GZend_Gdata_YouTube_VideoEntryc( SZend_Gdata_YouTube_UserProfileEntryc( SZend_Gdata_YouTube_SubscriptionFeedc) UZend_Gdata_YouTube_SubscriptionEntryc) UZend_Gdata_YouTube_PlaylistVideoFeedc*
 WZend_Gdata_YouTube_PlaylistVideoEntryc(	 SZend_Gdata_YouTube_PlaylistListFeedc) UZend_Gdata_YouTube_PlaylistListEntryc" GZend_Gdata_YouTube_MediaEntryc) UZend_Gdata_YouTube_Extension_VideoIdc* WZend_Gdata_YouTube_Extension_Usernamec* WZend_Gdata_YouTube_Extension_Uploadedc' QZend_Gdata_YouTube_Extension_Tokenc( SZend_Gdata_YouTube_Extension_Statusc, [Zend_Gdata_YouTube_Extension_Statisticsc'  QZend_Gdata_YouTube_Extension_Statec   v {_H$g<eF$|V1mL(




p
Q
0
					}	b	D	)	fJ% hT;pR/vYE ^4iF!t]>uU*             %_ MZend_Pdf_Element_Reference_Tablec'^ QZend_Pdf_Element_Reference_Contextc] ;Zend_Pdf_Element_Objectc#\ IZend_Pdf_Element_Object_Streamc[ =Zend_Pdf_Element_NumericcZ 7Zend_Pdf_Element_NullcY 7Zend_Pdf_Element_Namec X CZend_Pdf_Element_DictionarycW =Zend_Pdf_Element_BooleancV 9Zend_Pdf_Element_ArraycU )Zend_Pdf_ColorcT 1Zend_Pdf_Color_RgbcS 3Zend_Pdf_Color_HtmlcR =Zend_Pdf_Color_GrayScalecQ 3Zend_Pdf_Color_CmykcP 'Zend_Pdf_CmapcO AZend_Pdf_Cmap_TrimmedTablec!N EZend_Pdf_Cmap_SegmentToDeltacM AZend_Pdf_Cmap_ByteEncodingc&L OZend_Pdf_Cmap_ByteEncoding_StaticcK )Zend_Paginatorc*J WZend_Paginator_ScrollingStyle_Slidingc*I WZend_Paginator_ScrollingStyle_Jumpingc*H WZend_Paginator_ScrollingStyle_Elasticc&G OZend_Paginator_ScrollingStyle_AllcF =Zend_Paginator_Exceptionc E CZend_Paginator_Adapter_Nullc$D KZend_Paginator_Adapter_Iteratorc)C UZend_Paginator_Adapter_DbTableSelectc$B KZend_Paginator_Adapter_DbSelectc!A EZend_Paginator_Adapter_Arrayc@ #Zend_OpenIdc? 5Zend_OpenId_Providerc> ?Zend_OpenId_Provider_Userc&= OZend_OpenId_Provider_User_Sessionc!< EZend_OpenId_Provider_Storagec&; OZend_OpenId_Provider_Storage_Filec: 7Zend_OpenId_Extensionc9 AZend_OpenId_Extension_Sregc8 7Zend_OpenId_Exceptionc7 5Zend_OpenId_Consumerc!6 EZend_OpenId_Consumer_Storagec&5 OZend_OpenId_Consumer_Storage_Filec4 Zend_Mimec3 )Zend_Mime_Partc2 /Zend_Mime_Messagec1 3Zend_Mime_Exceptionc0 -Zend_Mime_Decodec/ #Zend_Memoryc. /Zend_Memory_Valuec- 3Zend_Memory_Managerc, 7Zend_Memory_Exceptionc+ 7Zend_Memory_Containerc"* GZend_Memory_Container_Movablec!) EZend_Memory_Container_Lockedc!( EZend_Memory_AccessControllerc' 3Zend_Measure_Weightc& 3Zend_Measure_Volumec%% MZend_Measure_Viscosity_Kinematicc#$ IZend_Measure_Viscosity_Dynamicc# 3Zend_Measure_Torquec" /Zend_Measure_Timec! =Zend_Measure_Temperaturec  1Zend_Measure_Speedc 7Zend_Measure_Pressurec 1Zend_Measure_Powerc 3Zend_Measure_Numberc 9Zend_Measure_Lightnessc 3Zend_Measure_Lengthc ?Zend_Measure_Illuminationc 9Zend_Measure_Frequencyc 1Zend_Measure_Forcec =Zend_Measure_Flow_Volumec 9Zend_Measure_Flow_Molec 9Zend_Measure_Flow_Massc 9Zend_Measure_Exceptionc 3Zend_Measure_Energyc 5Zend_Measure_Densityc 5Zend_Measure_Currentc  CZend_Measure_Cooking_Weightc  CZend_Measure_Cooking_Volumec =Zend_Measure_Capacitancec 3Zend_Measure_Binaryc /Zend_Measure_Areac 1Zend_Measure_Anglec
 ?Zend_Measure_Accelerationc	 7Zend_Measure_Abstractc Zend_Mailc =Zend_Mail_Transport_Smtpc! EZend_Mail_Transport_Sendmailc" GZend_Mail_Transport_Exceptionc! EZend_Mail_Transport_Abstractc /Zend_Mail_Storagec' QZend_Mail_Storage_Writable_Maildirc 9Zend_Mail_Storage_Pop3c  9Zend_Mail_Storage_Mboxc ?Zend_Mail_Storage_Maildirc~ 9Zend_Mail_Storage_Imapc} =Zend_Mail_Storage_Folderc"| GZend_Mail_Storage_Folder_Mboxc%{ MZend_Mail_Storage_Folder_Maildirc z CZend_Mail_Storage_Exceptioncy AZend_Mail_Storage_Abstractcx ;Zend_Mail_Protocol_Smtpc'w QZend_Mail_Protocol_Smtp_Auth_Plainc'v QZend_Mail_Protocol_Smtp_Auth_Loginc)u UZend_Mail_Protocol_Smtp_Auth_Crammd5ct ;Zend_Mail_Protocol_Pop3cs ;Zend_Mail_Protocol_Imapc!r EZend_Mail_Protocol_Exceptionc q CZend_Mail_Protocol_Abstractcp )Zend_Mail_Partco 3Zend_Mail_Part_Filecn /Zend_Mail_Messagecm 9Zend_Mail_Message_Filecl 3Zend_Mail_Exceptionck Zend_Logcj 9Zend_Log_Writer_Streamc   ]  v]7~X6|[1	kQ!m@	


N
			S	j0z[6nW4qI! aA(h/\#f9                    6< oZend_Search_Lucene_Analysis_TokenFilter_LowerCasec&; OZend_Search_Lucene_Analysis_Tokenc): UZend_Search_Lucene_Analysis_Analyzerc09 cZend_Search_Lucene_Analysis_Analyzer_Commonc88 sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumcI7 Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitivec56 mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8cF5 Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitivec84 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumcI3 Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitivec52 mZend_Search_Lucene_Analysis_Analyzer_Common_TextcF1 Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitivec0 7Zend_Search_Exceptionc/ -Zend_Rest_Serverc. AZend_Rest_Server_Exceptionc- 3Zend_Rest_Exceptionc, -Zend_Rest_Clientc+ ;Zend_Rest_Client_Resultc&* OZend_Rest_Client_Result_Exceptionc) AZend_Rest_Client_Exceptionc( 'Zend_Registryc' -Zend_ProgressBarc& AZend_ProgressBar_Exceptionc% =Zend_ProgressBar_Adapterc$$ KZend_ProgressBar_Adapter_JsPushc$# KZend_ProgressBar_Adapter_JsPullc'" QZend_ProgressBar_Adapter_Exceptionc%! MZend_ProgressBar_Adapter_Consolec  Zend_Pdfc! EZend_Pdf_UpdateInfoContainerc -Zend_Pdf_Trailerc ;Zend_Pdf_Trailer_Keeperc AZend_Pdf_Trailer_Generatorc )Zend_Pdf_Stylec 7Zend_Pdf_StringParserc /Zend_Pdf_Resourcec# IZend_Pdf_Resource_ImageFactoryc ;Zend_Pdf_Resource_Imagec! EZend_Pdf_Resource_Image_Tiffc  CZend_Pdf_Resource_Image_Pngc! EZend_Pdf_Resource_Image_Jpegc 9Zend_Pdf_Resource_Fontc! EZend_Pdf_Resource_Font_Type0c" GZend_Pdf_Resource_Font_Simplec+ YZend_Pdf_Resource_Font_Simple_Standardc8 sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsc6 oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanc7 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicc; yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicc5 mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldc2
 gZend_Pdf_Resource_Font_Simple_Standard_Symbolc<	 {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliquecA Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliquec9 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldc5 mZend_Pdf_Resource_Font_Simple_Standard_Helveticac: wZend_Pdf_Resource_Font_Simple_Standard_CourierObliquec> Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliquec7 qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldc3 iZend_Pdf_Resource_Font_Simple_Standard_Courierc) UZend_Pdf_Resource_Font_Simple_Parsedc2  gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypec* WZend_Pdf_Resource_Font_FontDescriptorc%~ MZend_Pdf_Resource_Font_Extractedc#} IZend_Pdf_Resource_Font_CidFontc,| [Zend_Pdf_Resource_Font_CidFont_TrueTypec{ /Zend_Pdf_PhpArraycz +Zend_Pdf_Parsercy 9Zend_Pdf_Parser_Streamcx 'Zend_Pdf_Pagecw )Zend_Pdf_Imagecv 'Zend_Pdf_Fontc u CZend_Pdf_Filter_Compressionc$t KZend_Pdf_Filter_Compression_Lzwc&s OZend_Pdf_Filter_Compression_Flatecr =Zend_Pdf_Filter_AsciiHexcq ;Zend_Pdf_Filter_Ascii85c"p GZend_Pdf_FileParserDataSourcec)o UZend_Pdf_FileParserDataSource_Stringc'n QZend_Pdf_FileParserDataSource_Filecm 3Zend_Pdf_FileParsercl ?Zend_Pdf_FileParser_Imagec"k GZend_Pdf_FileParser_Image_Pngcj =Zend_Pdf_FileParser_Fontc&i OZend_Pdf_FileParser_Font_OpenTypec/h aZend_Pdf_FileParser_Font_OpenType_TrueTypecg 1Zend_Pdf_Exceptioncf ;Zend_Pdf_ElementFactoryc"e GZend_Pdf_ElementFactory_Proxycd -Zend_Pdf_Elementcc ;Zend_Pdf_Element_Stringc#b IZend_Pdf_Element_String_Binaryca ;Zend_Pdf_Element_Streamc` AZend_Pdf_Element_Referencec   Y  MqHq?RY1




R
$				_	1	wA\'a0pGX= Z5hDmE                     ?Zend_Service_Amazon_Imagec( SZend_Service_Amazon_EditorialReviewc' QZend_Service_Amazon_CustomerReviewc$ KZend_Service_Amazon_Accessoriesc 5Zend_Service_Akismetc 7Zend_Service_Abstractc 9Zend_Server_Reflectionc' QZend_Server_Reflection_ReturnValuec% MZend_Server_Reflection_Prototypec% MZend_Server_Reflection_Parameterc  CZend_Server_Reflection_Nodec"
 GZend_Server_Reflection_Methodc$	 KZend_Server_Reflection_Functionc- ]Zend_Server_Reflection_Function_Abstractc% MZend_Server_Reflection_Exceptionc! EZend_Server_Reflection_Classc! EZend_Server_Method_Prototypec! EZend_Server_Method_Parameterc" GZend_Server_Method_Definitionc  CZend_Server_Method_Callbackc 7Zend_Server_Exceptionc  9Zend_Server_Definitionc /Zend_Server_Cachec~ 5Zend_Server_Abstractc} 1Zend_Search_Lucenec$| KZend_Search_Lucene_Storage_Filec+{ YZend_Search_Lucene_Storage_File_Memoryc/z aZend_Search_Lucene_Storage_File_Filesystemc)y UZend_Search_Lucene_Storage_Directoryc4x kZend_Search_Lucene_Storage_Directory_Filesystemc%w MZend_Search_Lucene_Search_Weightc*v WZend_Search_Lucene_Search_Weight_Termc,u [Zend_Search_Lucene_Search_Weight_Phrasec/t aZend_Search_Lucene_Search_Weight_MultiTermc+s YZend_Search_Lucene_Search_Weight_Emptyc-r ]Zend_Search_Lucene_Search_Weight_Booleanc)q UZend_Search_Lucene_Search_Similarityc1p eZend_Search_Lucene_Search_Similarity_Defaultc)o UZend_Search_Lucene_Search_QueryTokenc3n iZend_Search_Lucene_Search_QueryParserExceptionc1m eZend_Search_Lucene_Search_QueryParserContextc*l WZend_Search_Lucene_Search_QueryParserc)k UZend_Search_Lucene_Search_QueryLexerc'j QZend_Search_Lucene_Search_QueryHitc)i UZend_Search_Lucene_Search_QueryEntryc.h _Zend_Search_Lucene_Search_QueryEntry_Termc2g gZend_Search_Lucene_Search_QueryEntry_Subqueryc0f cZend_Search_Lucene_Search_QueryEntry_Phrasec$e KZend_Search_Lucene_Search_Queryc-d ]Zend_Search_Lucene_Search_Query_Wildcardc)c UZend_Search_Lucene_Search_Query_Termc*b WZend_Search_Lucene_Search_Query_Rangec+a YZend_Search_Lucene_Search_Query_Phrasec.` _Zend_Search_Lucene_Search_Query_MultiTermc2_ gZend_Search_Lucene_Search_Query_Insignificantc*^ WZend_Search_Lucene_Search_Query_Fuzzyc*] WZend_Search_Lucene_Search_Query_Emptyc,\ [Zend_Search_Lucene_Search_Query_Booleanc:[ wZend_Search_Lucene_Search_BooleanExpressionRecognizercZ =Zend_Search_Lucene_Proxyc%Y MZend_Search_Lucene_PriorityQueuec#X IZend_Search_Lucene_LockManagerc$W KZend_Search_Lucene_Index_Writerc&V OZend_Search_Lucene_Index_TermInfoc"U GZend_Search_Lucene_Index_Termc+T YZend_Search_Lucene_Index_SegmentWriterc8S sZend_Search_Lucene_Index_SegmentWriter_StreamWriterc:R wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterc+Q YZend_Search_Lucene_Index_SegmentMergerc6P oZend_Search_Lucene_Index_SegmentInfoPriorityQueuec)O UZend_Search_Lucene_Index_SegmentInfoc'N QZend_Search_Lucene_Index_FieldInfoc(M SZend_Search_Lucene_Index_DocsFilterc.L _Zend_Search_Lucene_Index_DictionaryLoaderc!K EZend_Search_Lucene_FSMActioncJ 9Zend_Search_Lucene_FSMcI =Zend_Search_Lucene_Fieldc!H EZend_Search_Lucene_Exceptionc G CZend_Search_Lucene_Documentc%F MZend_Search_Lucene_Document_Xlsxc%E MZend_Search_Lucene_Document_Pptxc(D SZend_Search_Lucene_Document_OpenXmlc%C MZend_Search_Lucene_Document_Htmlc*B WZend_Search_Lucene_Document_Exceptionc%A MZend_Search_Lucene_Document_Docxc,@ [Zend_Search_Lucene_Analysis_TokenFilterc6? oZend_Search_Lucene_Analysis_TokenFilter_StopWordsc7> qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsc:= wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8c   c  nL&nFsW/g5^>




\
4
					V	,yR#_5[+{U.^4b9tJ%]2
                )x UZend_Session_Validator_HttpUserAgentc$w KZend_Session_Validator_Abstractc'v QZend_Session_SaveHandler_Exceptionc%u MZend_Session_SaveHandler_DbTablect 9Zend_Session_Namespacecs 9Zend_Session_Exceptioncr 7Zend_Session_Abstractcq 1Zend_Service_Yahooc$p KZend_Service_Yahoo_WebResultSetc!o EZend_Service_Yahoo_WebResultc&n OZend_Service_Yahoo_VideoResultSetc#m IZend_Service_Yahoo_VideoResultc!l EZend_Service_Yahoo_ResultSetck ?Zend_Service_Yahoo_Resultc)j UZend_Service_Yahoo_PageDataResultSetc&i OZend_Service_Yahoo_PageDataResultc%h MZend_Service_Yahoo_NewsResultSetc"g GZend_Service_Yahoo_NewsResultc&f OZend_Service_Yahoo_LocalResultSetc#e IZend_Service_Yahoo_LocalResultc+d YZend_Service_Yahoo_InlinkDataResultSetc(c SZend_Service_Yahoo_InlinkDataResultc&b OZend_Service_Yahoo_ImageResultSetc#a IZend_Service_Yahoo_ImageResultc` =Zend_Service_Yahoo_Imagec_ 5Zend_Service_Twitterc ^ CZend_Service_Twitter_Searchc#] IZend_Service_Twitter_Exceptionc\ ;Zend_Service_Technoratic#[ IZend_Service_Technorati_Weblogc"Z GZend_Service_Technorati_Utilsc*Y WZend_Service_Technorati_TagsResultSetc'X QZend_Service_Technorati_TagsResultc)W UZend_Service_Technorati_TagResultSetc&V OZend_Service_Technorati_TagResultc,U [Zend_Service_Technorati_SearchResultSetc)T UZend_Service_Technorati_SearchResultc&S OZend_Service_Technorati_ResultSetc#R IZend_Service_Technorati_Resultc*Q WZend_Service_Technorati_KeyInfoResultc*P WZend_Service_Technorati_GetInfoResultc&O OZend_Service_Technorati_Exceptionc1N eZend_Service_Technorati_DailyCountsResultSetc.M _Zend_Service_Technorati_DailyCountsResultc,L [Zend_Service_Technorati_CosmosResultSetc)K UZend_Service_Technorati_CosmosResultc+J YZend_Service_Technorati_BlogInfoResultc#I IZend_Service_Technorati_AuthorcH ;Zend_Service_StrikeIronc(G SZend_Service_StrikeIron_ZipCodeInfoc2F gZend_Service_StrikeIron_USAddressVerificationc-E ]Zend_Service_StrikeIron_SalesUseTaxBasicc&D OZend_Service_StrikeIron_Exceptionc&C OZend_Service_StrikeIron_Decoratorc!B EZend_Service_StrikeIron_BasecA ;Zend_Service_SlideSharec&@ OZend_Service_SlideShare_SlideShowc&? OZend_Service_SlideShare_Exceptionc> 1Zend_Service_Simpyc$= KZend_Service_Simpy_WatchlistSetc*< WZend_Service_Simpy_WatchlistFilterSetc'; QZend_Service_Simpy_WatchlistFilterc!: EZend_Service_Simpy_Watchlistc9 ?Zend_Service_Simpy_TagSetc8 9Zend_Service_Simpy_Tagc7 AZend_Service_Simpy_NoteSetc6 ;Zend_Service_Simpy_Notec5 AZend_Service_Simpy_LinkSetc!4 EZend_Service_Simpy_LinkQueryc3 ;Zend_Service_Simpy_Linkc2 9Zend_Service_ReCaptchac$1 KZend_Service_ReCaptcha_Responsec$0 KZend_Service_ReCaptcha_MailHidec./ _Zend_Service_ReCaptcha_MailHide_Exceptionc%. MZend_Service_ReCaptcha_Exceptionc- 7Zend_Service_Nirvanixc#, IZend_Service_Nirvanix_Responsec)+ UZend_Service_Nirvanix_Namespace_Imfsc)* UZend_Service_Nirvanix_Namespace_Basec$) KZend_Service_Nirvanix_Exceptionc( 3Zend_Service_Flickrc"' GZend_Service_Flickr_ResultSetc& AZend_Service_Flickr_Resultc% ?Zend_Service_Flickr_Imagec$ 9Zend_Service_Exceptionc# 9Zend_Service_Deliciousc&" OZend_Service_Delicious_SimplePostc$! KZend_Service_Delicious_PostListc   CZend_Service_Delicious_Postc% MZend_Service_Delicious_Exceptionc  CZend_Service_Audioscrobblerc 3Zend_Service_Amazonc' QZend_Service_Amazon_SimilarProductc" GZend_Service_Amazon_ResultSetc ?Zend_Service_Amazon_Queryc! EZend_Service_Amazon_OfferSetc ?Zend_Service_Amazon_Offerc& OZend_Service_Amazon_ListmaniaListc =Zend_Service_Amazon_Itemc   t  c@!aCXAU9pN2





k
H
!					q	L	-	x\8bB! b=jE%iG%{\<nXC(bD            "l GZend_View_Helper_FormCheckboxc k CZend_View_Helper_FormButtoncj 7Zend_View_Helper_Formci ?Zend_View_Helper_Fieldsetch =Zend_View_Helper_Doctypec!g EZend_View_Helper_DeclareVarscf ;Zend_View_Helper_Actionce ?Zend_View_Helper_Abstractcd 3Zend_View_Exceptioncc 1Zend_View_Abstractcb %Zend_Versionca 'Zend_Validatec` AZend_Validate_StringLengthc_ 3Zend_Validate_Regexc^ 9Zend_Validate_NotEmptyc] 9Zend_Validate_LessThanc\ -Zend_Validate_Ipc[ /Zend_Validate_IntcZ 7Zend_Validate_InArraycY ;Zend_Validate_IdenticalcX 9Zend_Validate_HostnamecW ?Zend_Validate_Hostname_SecV ?Zend_Validate_Hostname_NocU ?Zend_Validate_Hostname_LicT ?Zend_Validate_Hostname_HucS ?Zend_Validate_Hostname_FicR ?Zend_Validate_Hostname_DecQ ?Zend_Validate_Hostname_ChcP ?Zend_Validate_Hostname_AtcO /Zend_Validate_HexcN ?Zend_Validate_GreaterThancM 3Zend_Validate_FloatcL ?Zend_Validate_File_UploadcK ;Zend_Validate_File_SizecJ ;Zend_Validate_File_Sha1c!I EZend_Validate_File_NotExistsc H CZend_Validate_File_MimeTypecG 9Zend_Validate_File_Md5cF AZend_Validate_File_IsImagec$E KZend_Validate_File_IsCompressedc!D EZend_Validate_File_ImageSizecC ;Zend_Validate_File_Hashc!B EZend_Validate_File_FilesSizec!A EZend_Validate_File_Extensionc@ ?Zend_Validate_File_Existsc'? QZend_Validate_File_ExcludeMimeTypec(> SZend_Validate_File_ExcludeExtensionc= =Zend_Validate_File_Crc32c< =Zend_Validate_File_Countc; ;Zend_Validate_Exceptionc: AZend_Validate_EmailAddressc9 5Zend_Validate_Digitsc8 1Zend_Validate_Datec7 3Zend_Validate_Ccnumc6 7Zend_Validate_Betweenc5 7Zend_Validate_Barcodec4 AZend_Validate_Barcode_UpcAc 3 CZend_Validate_Barcode_Ean13c2 3Zend_Validate_Alphac1 3Zend_Validate_Alnumc0 9Zend_Validate_Abstractc/ Zend_Uric. 'Zend_Uri_Httpc- 1Zend_Uri_Exceptionc, )Zend_Translatec+ =Zend_Translate_Exceptionc* 9Zend_Translate_Adapterc!) EZend_Translate_Adapter_XmlTmc!( EZend_Translate_Adapter_Xliffc' AZend_Translate_Adapter_Tmxc& AZend_Translate_Adapter_Tbxc% ?Zend_Translate_Adapter_Qtc$ AZend_Translate_Adapter_Inic## IZend_Translate_Adapter_Gettextc" AZend_Translate_Adapter_Csvc!! EZend_Translate_Adapter_Arrayc  'Zend_TimeSyncc 1Zend_TimeSync_Sntpc 9Zend_TimeSync_Protocolc /Zend_TimeSync_Ntpc ;Zend_TimeSync_Exceptionc +Zend_Text_Tablec 3Zend_Text_Table_Rowc ?Zend_Text_Table_Exceptionc& OZend_Text_Table_Decorator_Unicodec$ KZend_Text_Table_Decorator_Asciic 9Zend_Text_Table_Columnc 3Zend_Text_MultiBytec -Zend_Text_Figletc AZend_Text_Figlet_Exceptionc 3Zend_Text_Exceptionc) UZend_Test_PHPUnit_ControllerTestCasec0 cZend_Test_PHPUnit_Constraint_ResponseHeaderc* WZend_Test_PHPUnit_Constraint_Redirectc+ YZend_Test_PHPUnit_Constraint_Exceptionc* WZend_Test_PHPUnit_Constraint_DomQueryc )Zend_Soap_Wsdlc/ aZend_Soap_Wsdl_Strategy_DefaultComplexTypec0
 cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequencec/	 aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplexc$ KZend_Soap_Wsdl_Strategy_AnyTypec% MZend_Soap_Wsdl_Strategy_Abstractc 7Zend_Soap_Wsdl_Parserc! EZend_Soap_Wsdl_Parser_Resultc =Zend_Soap_Wsdl_Exceptionc! EZend_Soap_Wsdl_CodeGeneratorc -Zend_Soap_Serverc AZend_Soap_Server_Exceptionc  -Zend_Soap_Clientc 9Zend_Soap_Client_Localc~ AZend_Soap_Client_Exceptionc} ;Zend_Soap_Client_DotNetc| ;Zend_Soap_Client_Commonc{ 9Zend_Soap_AutoDiscoverc%z MZend_Soap_AutoDiscover_Exceptioncy %Zend_Sessionc   m  qN+ rN*zW4]7]%



K
					r	`	6	hCkP2zY4sN+
dC)jO&hD" nV3              Y AZend_Amf_Value_MessageBodydX =Zend_Amf_Value_ByteArraydW AZend_Amf_Util_BinaryStreamdV +Zend_Amf_ServerdU ?Zend_Amf_Server_ExceptiondT /Zend_Amf_ResponsedS 9Zend_Amf_Response_HttpdR -Zend_Amf_RequestdQ 7Zend_Amf_Request_HttpdP ?Zend_Amf_Parse_TypeLoaderdO ?Zend_Amf_Parse_Serializerd N CZend_Amf_Parse_OutputStreamdM AZend_Amf_Parse_InputStreamd L CZend_Amf_Parse_Deserializerd#K IZend_Amf_Parse_Amf3_Serializerd%J MZend_Amf_Parse_Amf3_Deserializerd#I IZend_Amf_Parse_Amf0_Serializerd%H MZend_Amf_Parse_Amf0_DeserializerdG 1Zend_Amf_ExceptiondF 1Zend_Amf_ConstantsdE Zend_AcldD 'Zend_Acl_RoledC 9Zend_Acl_Role_Registryd%B MZend_Acl_Role_Registry_ExceptiondA /Zend_Acl_Resourced@ 1Zend_Acl_Exceptiond? /Zend_XmlRpc_Valuec> =Zend_XmlRpc_Value_Structc= =Zend_XmlRpc_Value_Stringc< =Zend_XmlRpc_Value_Scalarc; 7Zend_XmlRpc_Value_Nilc: ?Zend_XmlRpc_Value_Integerc 9 CZend_XmlRpc_Value_Exceptionc8 =Zend_XmlRpc_Value_Doublec7 AZend_XmlRpc_Value_DateTimec!6 EZend_XmlRpc_Value_Collectionc5 ?Zend_XmlRpc_Value_Booleanc4 =Zend_XmlRpc_Value_Base64c3 ;Zend_XmlRpc_Value_Arrayc2 1Zend_XmlRpc_Serverc1 ?Zend_XmlRpc_Server_Systemc0 =Zend_XmlRpc_Server_Faultc!/ EZend_XmlRpc_Server_Exceptionc. =Zend_XmlRpc_Server_Cachec- 5Zend_XmlRpc_Responsec, ?Zend_XmlRpc_Response_Httpc+ 3Zend_XmlRpc_Requestc* ?Zend_XmlRpc_Request_Stdinc) =Zend_XmlRpc_Request_Httpc( /Zend_XmlRpc_Faultc' 7Zend_XmlRpc_Exceptionc& 1Zend_XmlRpc_Clientc#% IZend_XmlRpc_Client_ServerProxyc+$ YZend_XmlRpc_Client_ServerIntrospectionc+# YZend_XmlRpc_Client_IntrospectExceptionc%" MZend_XmlRpc_Client_HttpExceptionc&! OZend_XmlRpc_Client_FaultExceptionc!  EZend_XmlRpc_Client_Exceptionc& OZend_Wildfire_Protocol_JsonStreamc! EZend_Wildfire_Plugin_FirePhpc. _Zend_Wildfire_Plugin_FirePhp_TableMessagec) UZend_Wildfire_Plugin_FirePhp_Messagec ;Zend_Wildfire_Exceptionc& OZend_Wildfire_Channel_HttpHeadersc Zend_Viewc -Zend_View_Streamc 5Zend_View_Helper_Urlc AZend_View_Helper_Translatec) UZend_View_Helper_RenderToPlaceholderc! EZend_View_Helper_Placeholderc* WZend_View_Helper_Placeholder_Registryc4 kZend_View_Helper_Placeholder_Registry_Exceptionc+ YZend_View_Helper_Placeholder_Containerc6 oZend_View_Helper_Placeholder_Container_Standalonec5 mZend_View_Helper_Placeholder_Container_Exceptionc4 kZend_View_Helper_Placeholder_Container_Abstractc! EZend_View_Helper_PartialLoopc =Zend_View_Helper_Partialc' QZend_View_Helper_Partial_Exceptionc'
 QZend_View_Helper_PaginationControlc	 ;Zend_View_Helper_Layoutc 7Zend_View_Helper_Jsonc" GZend_View_Helper_InlineScriptc# IZend_View_Helper_HtmlQuicktimec ?Zend_View_Helper_HtmlPagec  CZend_View_Helper_HtmlObjectc ?Zend_View_Helper_HtmlListc AZend_View_Helper_HtmlFlashc! EZend_View_Helper_HtmlElementc  AZend_View_Helper_HeadTitlec AZend_View_Helper_HeadStylec ~ CZend_View_Helper_HeadScriptc} ?Zend_View_Helper_HeadMetac| ?Zend_View_Helper_HeadLinkc"{ GZend_View_Helper_FormTextareacz ?Zend_View_Helper_FormTextc y CZend_View_Helper_FormSubmitc x CZend_View_Helper_FormSelectcw AZend_View_Helper_FormResetcv AZend_View_Helper_FormRadioc"u GZend_View_Helper_FormPasswordct ?Zend_View_Helper_FormNotec's QZend_View_Helper_FormMultiCheckboxcr AZend_View_Helper_FormLabelcq AZend_View_Helper_FormImagec p CZend_View_Helper_FormHiddenco ?Zend_View_Helper_FormFilec n CZend_View_Helper_FormErrorsc!m EZend_View_Helper_FormElementc   e  vHuT0pO3{[6jR5




v
\
B
#
					}	\	=		l=f&a7S&gAsFQ) R&                                          '> QZend_Controller_Router_Route_Regexd(= SZend_Controller_Router_Route_Moduled*< WZend_Controller_Router_Route_Hostnamed'; QZend_Controller_Router_Route_Chaind*: WZend_Controller_Router_Route_Abstractd#9 IZend_Controller_Router_Rewrited%8 MZend_Controller_Router_Exceptiond$7 KZend_Controller_Router_Abstractd*6 WZend_Controller_Response_HttpTestCased"5 GZend_Controller_Response_Httpd'4 QZend_Controller_Response_Exceptiond!3 EZend_Controller_Response_Clid&2 OZend_Controller_Response_Abstractd#1 IZend_Controller_Request_Simpled)0 UZend_Controller_Request_HttpTestCased!/ EZend_Controller_Request_Httpd&. OZend_Controller_Request_Exceptiond&- OZend_Controller_Request_Apache404d%, MZend_Controller_Request_Abstractd(+ SZend_Controller_Plugin_ErrorHandlerd"* GZend_Controller_Plugin_Brokerd') QZend_Controller_Plugin_ActionStackd$( KZend_Controller_Plugin_Abstractd' 7Zend_Controller_Frontd& ?Zend_Controller_Exceptiond(% SZend_Controller_Dispatcher_Standardd)$ UZend_Controller_Dispatcher_Exceptiond(# SZend_Controller_Dispatcher_Abstractd" 9Zend_Controller_Actiond(! SZend_Controller_Action_HelperBrokerd6  oZend_Controller_Action_HelperBroker_PriorityStackd/ aZend_Controller_Action_Helper_ViewRendererd& OZend_Controller_Action_Helper_Urld- ]Zend_Controller_Action_Helper_Redirectord' QZend_Controller_Action_Helper_Jsond1 eZend_Controller_Action_Helper_FlashMessengerd0 cZend_Controller_Action_Helper_ContextSwitchd< {Zend_Controller_Action_Helper_AutoCompleteScriptaculousd3 iZend_Controller_Action_Helper_AutoCompleteDojod8 sZend_Controller_Action_Helper_AutoComplete_Abstractd. _Zend_Controller_Action_Helper_AjaxContextd. _Zend_Controller_Action_Helper_ActionStackd+ YZend_Controller_Action_Helper_Abstractd% MZend_Controller_Action_Exceptiond 3Zend_Console_Getoptd" GZend_Console_Getopt_Exceptiond #Zend_Configd +Zend_Config_Xmld 1Zend_Config_Writerd 9Zend_Config_Writer_Xmld 9Zend_Config_Writer_Inid =Zend_Config_Writer_Arrayd
 +Zend_Config_Inid	 7Zend_Config_Exceptiond /Zend_Captcha_Wordd 9Zend_Captcha_ReCaptchad 1Zend_Captcha_Imaged 3Zend_Captcha_Figletd 9Zend_Captcha_Exceptiond /Zend_Captcha_Dumbd /Zend_Captcha_Based !Zend_Cached  =Zend_Cache_Frontend_Paged AZend_Cache_Frontend_Outputd!~ EZend_Cache_Frontend_Functiond} =Zend_Cache_Frontend_Filed| ?Zend_Cache_Frontend_Classd{ 5Zend_Cache_Exceptiondz +Zend_Cache_Coredy 1Zend_Cache_Backendd$x KZend_Cache_Backend_ZendPlatformdw ?Zend_Cache_Backend_Xcached!v EZend_Cache_Backend_TwoLevelsdu ;Zend_Cache_Backend_Testdt ?Zend_Cache_Backend_Sqlited!s EZend_Cache_Backend_Memcacheddr ;Zend_Cache_Backend_Filedq 9Zend_Cache_Backend_Apcdp Zend_Authdo ?Zend_Auth_Storage_Sessiond$n KZend_Auth_Storage_NonPersistentd m CZend_Auth_Storage_Exceptiondl -Zend_Auth_Resultdk 3Zend_Auth_Exceptiondj =Zend_Auth_Adapter_OpenIddi 9Zend_Auth_Adapter_Ldapdh AZend_Auth_Adapter_InfoCarddg 9Zend_Auth_Adapter_Httpd)f UZend_Auth_Adapter_Http_Resolver_Filed.e _Zend_Auth_Adapter_Http_Resolver_Exceptiond d CZend_Auth_Adapter_Exceptiondc =Zend_Auth_Adapter_Digestdb ?Zend_Auth_Adapter_DbTableda ?Zend_Amf_Value_TraitsInfod-` ]Zend_Amf_Value_Messaging_RemotingMessaged*_ WZend_Amf_Value_Messaging_ErrorMessaged,^ [Zend_Amf_Value_Messaging_CommandMessaged*] WZend_Amf_Value_Messaging_AsyncMessaged0\ cZend_Amf_Value_Messaging_AcknowledgeMessaged-[ ]Zend_Amf_Value_Messaging_AbstractMessaged!Z EZend_Amf_Value_MessageHeaderd   i  y`C'gH sQ/xW8}R1




l
L
)
					Z	=	'		n=W'_0a1}W+R3pK${W*                                    )' UZend_Dojo_View_Helper_Dojo_Containerd)& UZend_Dojo_View_Helper_DijitContainerd % CZend_Dojo_View_Helper_Dijitd&$ OZend_Dojo_View_Helper_DateTextBoxd*# WZend_Dojo_View_Helper_CurrencyTextBoxd&" OZend_Dojo_View_Helper_ContentPaned#! IZend_Dojo_View_Helper_ComboBoxd#  IZend_Dojo_View_Helper_CheckBoxd! EZend_Dojo_View_Helper_Buttond* WZend_Dojo_View_Helper_BorderContainerd( SZend_Dojo_View_Helper_AccordionPaned- ]Zend_Dojo_View_Helper_AccordionContainerd =Zend_Dojo_View_Exceptiond )Zend_Dojo_Formd 9Zend_Dojo_Form_SubFormd* WZend_Dojo_Form_Element_VerticalSliderd- ]Zend_Dojo_Form_Element_ValidationTextBoxd' QZend_Dojo_Form_Element_TimeTextBoxd# IZend_Dojo_Form_Element_TextBoxd$ KZend_Dojo_Form_Element_Textaread( SZend_Dojo_Form_Element_SubmitButtond" GZend_Dojo_Form_Element_Sliderd' QZend_Dojo_Form_Element_RadioButtond+ YZend_Dojo_Form_Element_PasswordTextBoxd) UZend_Dojo_Form_Element_NumberTextBoxd) UZend_Dojo_Form_Element_NumberSpinnerd, [Zend_Dojo_Form_Element_HorizontalSliderd+ YZend_Dojo_Form_Element_FilteringSelectd" GZend_Dojo_Form_Element_Editord&
 OZend_Dojo_Form_Element_DijitMultid!	 EZend_Dojo_Form_Element_Dijitd' QZend_Dojo_Form_Element_DateTextBoxd+ YZend_Dojo_Form_Element_CurrencyTextBoxd$ KZend_Dojo_Form_Element_ComboBoxd$ KZend_Dojo_Form_Element_CheckBoxd" GZend_Dojo_Form_Element_Buttond  CZend_Dojo_Form_DisplayGroupd* WZend_Dojo_Form_Decorator_TabContainerd, [Zend_Dojo_Form_Decorator_StackContainerd,  [Zend_Dojo_Form_Decorator_SplitContainerd' QZend_Dojo_Form_Decorator_DijitFormd*~ WZend_Dojo_Form_Decorator_DijitElementd,} [Zend_Dojo_Form_Decorator_DijitContainerd)| UZend_Dojo_Form_Decorator_ContentPaned-{ ]Zend_Dojo_Form_Decorator_BorderContainerd+z YZend_Dojo_Form_Decorator_AccordionPaned0y cZend_Dojo_Form_Decorator_AccordionContainerdx 3Zend_Dojo_Exceptiondw )Zend_Dojo_Datadv !Zend_Debugdu Zend_Dbdt 'Zend_Db_Tableds 5Zend_Db_Table_Selectd#r IZend_Db_Table_Select_Exceptiondq 5Zend_Db_Table_Rowsetd#p IZend_Db_Table_Rowset_Exceptiond"o GZend_Db_Table_Rowset_Abstractdn /Zend_Db_Table_Rowd m CZend_Db_Table_Row_Exceptiondl AZend_Db_Table_Row_Abstractdk ;Zend_Db_Table_Exceptiondj 9Zend_Db_Table_Abstractdi /Zend_Db_Statementdh 7Zend_Db_Statement_Pdodg ?Zend_Db_Statement_Pdo_Ibmdf =Zend_Db_Statement_Oracled'e QZend_Db_Statement_Oracle_Exceptiondd =Zend_Db_Statement_Mysqlid'c QZend_Db_Statement_Mysqli_Exceptiond b CZend_Db_Statement_Exceptionda 7Zend_Db_Statement_Db2d$` KZend_Db_Statement_Db2_Exceptiond_ )Zend_Db_Selectd^ =Zend_Db_Select_Exceptiond] -Zend_Db_Profilerd\ 9Zend_Db_Profiler_Queryd[ =Zend_Db_Profiler_FirebugdZ AZend_Db_Profiler_ExceptiondY %Zend_Db_ExprdX /Zend_Db_ExceptiondW AZend_Db_Adapter_Pdo_SqlitedV ?Zend_Db_Adapter_Pdo_PgsqldU ;Zend_Db_Adapter_Pdo_OcidT ?Zend_Db_Adapter_Pdo_MysqldS ?Zend_Db_Adapter_Pdo_MssqldR ;Zend_Db_Adapter_Pdo_Ibmd Q CZend_Db_Adapter_Pdo_Ibm_Idsd P CZend_Db_Adapter_Pdo_Ibm_Db2d!O EZend_Db_Adapter_Pdo_AbstractdN 9Zend_Db_Adapter_Oracled%M MZend_Db_Adapter_Oracle_ExceptiondL 9Zend_Db_Adapter_Mysqlid%K MZend_Db_Adapter_Mysqli_ExceptiondJ ?Zend_Db_Adapter_ExceptiondI 3Zend_Db_Adapter_Db2d"H GZend_Db_Adapter_Db2_ExceptiondG =Zend_Db_Adapter_AbstractdF Zend_DatedE 3Zend_Date_ExceptiondD 5Zend_Date_DateObjectdC -Zend_Date_CitiesdB 'Zend_CurrencydA ;Zend_Currency_Exceptiond!@ EZend_Controller_Router_Routed(? SZend_Controller_Router_Route_Staticd   m  g8[6	_9dF/zY?%





[
3
						o	Q	.	zZ=qCl>_K&dAd@cB zZ:           " GZend_Form_Element_Multiselectd$ KZend_Form_Element_MultiCheckboxd ;Zend_Form_Element_Multid ;Zend_Form_Element_Imaged =Zend_Form_Element_Hiddend 9Zend_Form_Element_Hashd 9Zend_Form_Element_Filed  CZend_Form_Element_Exceptiond AZend_Form_Element_Checkboxd ?Zend_Form_Element_Captchad
 =Zend_Form_Element_Buttond	 9Zend_Form_DisplayGroupd# IZend_Form_Decorator_ViewScriptd# IZend_Form_Decorator_ViewHelperd( SZend_Form_Decorator_PrepareElementsd ?Zend_Form_Decorator_Labeld ?Zend_Form_Decorator_Imaged  CZend_Form_Decorator_HtmlTagd# IZend_Form_Decorator_FormErrorsd% MZend_Form_Decorator_FormElementsd  =Zend_Form_Decorator_Formd =Zend_Form_Decorator_Filed!~ EZend_Form_Decorator_Fieldsetd"} GZend_Form_Decorator_Exceptiond| AZend_Form_Decorator_Errorsd${ KZend_Form_Decorator_DtDdWrapperd$z KZend_Form_Decorator_Descriptiond y CZend_Form_Decorator_Captchad%x MZend_Form_Decorator_Captcha_Wordd!w EZend_Form_Decorator_Callbackd!v EZend_Form_Decorator_Abstractdu #Zend_Filterd+t YZend_Filter_Word_UnderscoreToSeparatord&s OZend_Filter_Word_UnderscoreToDashd+r YZend_Filter_Word_UnderscoreToCamelCased*q WZend_Filter_Word_SeparatorToSeparatord%p MZend_Filter_Word_SeparatorToDashd*o WZend_Filter_Word_SeparatorToCamelCased(n SZend_Filter_Word_Separator_Abstractd&m OZend_Filter_Word_DashToUnderscored%l MZend_Filter_Word_DashToSeparatord%k MZend_Filter_Word_DashToCamelCased+j YZend_Filter_Word_CamelCaseToUnderscored*i WZend_Filter_Word_CamelCaseToSeparatord%h MZend_Filter_Word_CamelCaseToDashdg 7Zend_Filter_StripTagsdf ?Zend_Filter_StripNewlinesde 9Zend_Filter_StringTrimdd ?Zend_Filter_StringToUpperdc ?Zend_Filter_StringToLowerdb 5Zend_Filter_RealPathda ;Zend_Filter_PregReplaced` +Zend_Filter_Intd_ /Zend_Filter_Inputd^ 7Zend_Filter_Inflectord] =Zend_Filter_HtmlEntitiesd\ AZend_Filter_File_UpperCased[ ;Zend_Filter_File_RenamedZ AZend_Filter_File_LowerCasedY 7Zend_Filter_ExceptiondX +Zend_Filter_DirdW 1Zend_Filter_DigitsdV 5Zend_Filter_BaseNamedU /Zend_Filter_AlphadT /Zend_Filter_AlnumdS 1Zend_File_Transferd!R EZend_File_Transfer_Exceptiond$Q KZend_File_Transfer_Adapter_Httpd(P SZend_File_Transfer_Adapter_AbstractdO Zend_FeeddN 'Zend_Feed_RssdM 3Zend_Feed_ExceptiondL 3Zend_Feed_Entry_RssdK 5Zend_Feed_Entry_AtomdJ =Zend_Feed_Entry_AbstractdI /Zend_Feed_ElementdH /Zend_Feed_BuilderdG =Zend_Feed_Builder_Headerd$F KZend_Feed_Builder_Header_Itunesd E CZend_Feed_Builder_ExceptiondD ;Zend_Feed_Builder_EntrydC )Zend_Feed_AtomdB 1Zend_Feed_AbstractdA )Zend_Exceptiond@ )Zend_Dom_Queryd? 7Zend_Dom_Query_Resultd> =Zend_Dom_Query_Css2Xpathd= 1Zend_Dom_Exceptiond< Zend_Dojod); UZend_Dojo_View_Helper_VerticalSliderd,: [Zend_Dojo_View_Helper_ValidationTextBoxd&9 OZend_Dojo_View_Helper_TimeTextBoxd"8 GZend_Dojo_View_Helper_TextBoxd#7 IZend_Dojo_View_Helper_Textaread'6 QZend_Dojo_View_Helper_TabContainerd'5 QZend_Dojo_View_Helper_SubmitButtond)4 UZend_Dojo_View_Helper_StackContainerd)3 UZend_Dojo_View_Helper_SplitContainerd!2 EZend_Dojo_View_Helper_Sliderd)1 UZend_Dojo_View_Helper_SimpleTextaread&0 OZend_Dojo_View_Helper_RadioButtond*/ WZend_Dojo_View_Helper_PasswordTextBoxd(. SZend_Dojo_View_Helper_NumberTextBoxd(- SZend_Dojo_View_Helper_NumberSpinnerd+, YZend_Dojo_View_Helper_HorizontalSliderd+ AZend_Dojo_View_Helper_Formd** WZend_Dojo_View_Helper_FilteringSelectd!) EZend_Dojo_View_Helper_Editord( AZend_Dojo_View_Helper_Dojod   c  |[<rD(kAsJ#b<



o
F
 					n	G	qO(a/tErM4b5
o@_6 o@               -w ]Zend_Gdata_DublinCore_Extension_Languaged/v aZend_Gdata_DublinCore_Extension_Identifierd+u YZend_Gdata_DublinCore_Extension_Formatd0t cZend_Gdata_DublinCore_Extension_Descriptiond)s UZend_Gdata_DublinCore_Extension_Dated,r [Zend_Gdata_DublinCore_Extension_Creatordq +Zend_Gdata_Docsdp 7Zend_Gdata_Docs_Queryd%o MZend_Gdata_Docs_DocumentListFeedd&n OZend_Gdata_Docs_DocumentListEntrydm 9Zend_Gdata_ClientLogindl 3Zend_Gdata_Calendard!k EZend_Gdata_Calendar_ListFeedd"j GZend_Gdata_Calendar_ListEntryd-i ]Zend_Gdata_Calendar_Extension_WebContentd+h YZend_Gdata_Calendar_Extension_Timezoned9g uZend_Gdata_Calendar_Extension_SendEventNotificationsd+f YZend_Gdata_Calendar_Extension_Selectedd+e YZend_Gdata_Calendar_Extension_QuickAddd'd QZend_Gdata_Calendar_Extension_Linkd)c UZend_Gdata_Calendar_Extension_Hiddend(b SZend_Gdata_Calendar_Extension_Colord.a _Zend_Gdata_Calendar_Extension_AccessLeveld#` IZend_Gdata_Calendar_EventQueryd"_ GZend_Gdata_Calendar_EventFeedd#^ IZend_Gdata_Calendar_EventEntryd] -Zend_Gdata_Booksd!\ EZend_Gdata_Books_VolumeQueryd [ CZend_Gdata_Books_VolumeFeedd!Z EZend_Gdata_Books_VolumeEntryd+Y YZend_Gdata_Books_Extension_Viewabilityd-X ]Zend_Gdata_Books_Extension_ThumbnailLinkd&W OZend_Gdata_Books_Extension_Reviewd+V YZend_Gdata_Books_Extension_PreviewLinkd(U SZend_Gdata_Books_Extension_InfoLinkd-T ]Zend_Gdata_Books_Extension_Embeddabilityd)S UZend_Gdata_Books_Extension_BooksLinkd-R ]Zend_Gdata_Books_Extension_BooksCategoryd.Q _Zend_Gdata_Books_Extension_AnnotationLinkd$P KZend_Gdata_Books_CollectionFeedd%O MZend_Gdata_Books_CollectionEntrydN 1Zend_Gdata_AuthSubdM )Zend_Gdata_Appd$L KZend_Gdata_App_VersionExceptiondK 3Zend_Gdata_App_Utild#J IZend_Gdata_App_MediaFileSourcedI ?Zend_Gdata_App_MediaEntryd2H gZend_Gdata_App_LoggingHttpClientAdapterSocketdG AZend_Gdata_App_IOExceptiond,F [Zend_Gdata_App_InvalidArgumentExceptiond!E EZend_Gdata_App_HttpExceptiond$D KZend_Gdata_App_FeedSourceParentd#C IZend_Gdata_App_FeedEntryParentdB 3Zend_Gdata_App_FeeddA =Zend_Gdata_App_Extensiond!@ EZend_Gdata_App_Extension_Urid%? MZend_Gdata_App_Extension_Updatedd#> IZend_Gdata_App_Extension_Titled"= GZend_Gdata_App_Extension_Textd%< MZend_Gdata_App_Extension_Summaryd&; OZend_Gdata_App_Extension_Subtitled$: KZend_Gdata_App_Extension_Sourced$9 KZend_Gdata_App_Extension_Rightsd'8 QZend_Gdata_App_Extension_Publishedd$7 KZend_Gdata_App_Extension_Persond"6 GZend_Gdata_App_Extension_Named"5 GZend_Gdata_App_Extension_Logod"4 GZend_Gdata_App_Extension_Linkd 3 CZend_Gdata_App_Extension_Idd"2 GZend_Gdata_App_Extension_Icond'1 QZend_Gdata_App_Extension_Generatord#0 IZend_Gdata_App_Extension_Emaild%/ MZend_Gdata_App_Extension_Elementd$. KZend_Gdata_App_Extension_Editedd#- IZend_Gdata_App_Extension_Draftd%, MZend_Gdata_App_Extension_Controld)+ UZend_Gdata_App_Extension_Contributord%* MZend_Gdata_App_Extension_Contentd&) OZend_Gdata_App_Extension_Categoryd$( KZend_Gdata_App_Extension_Authord' =Zend_Gdata_App_Exceptiond& 5Zend_Gdata_App_Entryd,% [Zend_Gdata_App_CaptchaRequiredExceptiond#$ IZend_Gdata_App_BaseMediaSourced# 3Zend_Gdata_App_Based*" WZend_Gdata_App_BadMethodCallExceptiond!! EZend_Gdata_App_AuthExceptiond  Zend_Formd /Zend_Form_SubFormd 3Zend_Form_Exceptiond /Zend_Form_Elementd ;Zend_Form_Element_Xhtmld AZend_Form_Element_Textaread 9Zend_Form_Element_Textd =Zend_Form_Element_Submitd =Zend_Form_Element_Selectd ;Zend_Form_Element_Resetd ;Zend_Form_Element_Radiod AZend_Form_Element_Passwordd   c  oA#
n@sL%tM$j6



h
>
					{	S	,	rS&Y3~[B#lM'yO'T*
wT5s?                       )Z UZend_Gdata_Media_Extension_MediaHashd*Y WZend_Gdata_Media_Extension_MediaGroupd0X cZend_Gdata_Media_Extension_MediaDescriptiond+W YZend_Gdata_Media_Extension_MediaCreditd.V _Zend_Gdata_Media_Extension_MediaCopyrightd,U [Zend_Gdata_Media_Extension_MediaContentd-T ]Zend_Gdata_Media_Extension_MediaCategorydS 9Zend_Gdata_Media_EntrydR AZend_Gdata_Kind_EventEntrydQ 7Zend_Gdata_HttpClientd*P WZend_Gdata_HttpAdapterStreamingSocketd)O UZend_Gdata_HttpAdapterStreamingProxydN /Zend_Gdata_HealthdM ;Zend_Gdata_Health_Queryd&L OZend_Gdata_Health_ProfileListFeedd'K QZend_Gdata_Health_ProfileListEntryd"J GZend_Gdata_Health_ProfileFeedd#I IZend_Gdata_Health_ProfileEntryd$H KZend_Gdata_Health_Extension_CcrdG )Zend_Gdata_GeodF 3Zend_Gdata_Geo_Feedd$E KZend_Gdata_Geo_Extension_GmlPosd&D OZend_Gdata_Geo_Extension_GmlPointd)C UZend_Gdata_Geo_Extension_GeoRssWheredB 5Zend_Gdata_Geo_EntrydA -Zend_Gdata_Gbased"@ GZend_Gdata_Gbase_SnippetQueryd!? EZend_Gdata_Gbase_SnippetFeedd"> GZend_Gdata_Gbase_SnippetEntryd= 9Zend_Gdata_Gbase_Queryd< AZend_Gdata_Gbase_ItemQueryd; ?Zend_Gdata_Gbase_ItemFeedd: AZend_Gdata_Gbase_ItemEntryd9 7Zend_Gdata_Gbase_Feedd-8 ]Zend_Gdata_Gbase_Extension_BaseAttributed7 9Zend_Gdata_Gbase_Entryd6 -Zend_Gdata_Gappsd5 AZend_Gdata_Gapps_UserQueryd4 ?Zend_Gdata_Gapps_UserFeedd3 AZend_Gdata_Gapps_UserEntryd&2 OZend_Gdata_Gapps_ServiceExceptiond1 9Zend_Gdata_Gapps_Queryd#0 IZend_Gdata_Gapps_NicknameQueryd"/ GZend_Gdata_Gapps_NicknameFeedd#. IZend_Gdata_Gapps_NicknameEntryd%- MZend_Gdata_Gapps_Extension_Quotad(, SZend_Gdata_Gapps_Extension_Nicknamed$+ KZend_Gdata_Gapps_Extension_Named%* MZend_Gdata_Gapps_Extension_Logind)) UZend_Gdata_Gapps_Extension_EmailListd( 9Zend_Gdata_Gapps_Errord-' ]Zend_Gdata_Gapps_EmailListRecipientQueryd,& [Zend_Gdata_Gapps_EmailListRecipientFeedd-% ]Zend_Gdata_Gapps_EmailListRecipientEntryd$$ KZend_Gdata_Gapps_EmailListQueryd## IZend_Gdata_Gapps_EmailListFeedd$" KZend_Gdata_Gapps_EmailListEntryd! +Zend_Gdata_Feedd  5Zend_Gdata_Extensiond =Zend_Gdata_Extension_Whod AZend_Gdata_Extension_Whered ?Zend_Gdata_Extension_Whend$ KZend_Gdata_Extension_Visibilityd& OZend_Gdata_Extension_Transparencyd" GZend_Gdata_Extension_Reminderd- ]Zend_Gdata_Extension_RecurrenceExceptiond$ KZend_Gdata_Extension_Recurrenced  CZend_Gdata_Extension_Ratingd' QZend_Gdata_Extension_OriginalEventd0 cZend_Gdata_Extension_OpenSearchTotalResultsd. _Zend_Gdata_Extension_OpenSearchStartIndexd0 cZend_Gdata_Extension_OpenSearchItemsPerPaged" GZend_Gdata_Extension_FeedLinkd* WZend_Gdata_Extension_ExtendedPropertyd% MZend_Gdata_Extension_EventStatusd# IZend_Gdata_Extension_EntryLinkd" GZend_Gdata_Extension_Commentsd& OZend_Gdata_Extension_AttendeeTyped( SZend_Gdata_Extension_AttendeeStatusd +Zend_Gdata_Exifd
 5Zend_Gdata_Exif_Feedd#	 IZend_Gdata_Exif_Extension_Timed# IZend_Gdata_Exif_Extension_Tagsd$ KZend_Gdata_Exif_Extension_Modeld# IZend_Gdata_Exif_Extension_Maked" GZend_Gdata_Exif_Extension_Isod, [Zend_Gdata_Exif_Extension_ImageUniqueIdd$ KZend_Gdata_Exif_Extension_FStopd* WZend_Gdata_Exif_Extension_FocalLengthd$ KZend_Gdata_Exif_Extension_Flashd'  QZend_Gdata_Exif_Extension_Exposured' QZend_Gdata_Exif_Extension_Distanced~ 7Zend_Gdata_Exif_Entryd} -Zend_Gdata_Entryd| 7Zend_Gdata_DublinCored*{ WZend_Gdata_DublinCore_Extension_Titled,z [Zend_Gdata_DublinCore_Extension_Subjectd+y YZend_Gdata_DublinCore_Extension_Rightsd.x _Zend_Gdata_DublinCore_Extension_Publisherd   Z  q=yV1j<}R+rD



T
'				y	M	"gC vLX.zK]5`3vJi7                           ,4 [Zend_Gdata_YouTube_Extension_MediaGroupd-3 ]Zend_Gdata_YouTube_Extension_MediaCreditd.2 _Zend_Gdata_YouTube_Extension_MediaContentd*1 WZend_Gdata_YouTube_Extension_Locationd&0 OZend_Gdata_YouTube_Extension_Linkd*/ WZend_Gdata_YouTube_Extension_LastNamed*. WZend_Gdata_YouTube_Extension_Hometownd)- UZend_Gdata_YouTube_Extension_Hobbiesd(, SZend_Gdata_YouTube_Extension_Genderd++ YZend_Gdata_YouTube_Extension_FirstNamed** WZend_Gdata_YouTube_Extension_Durationd-) ]Zend_Gdata_YouTube_Extension_Descriptiond+( YZend_Gdata_YouTube_Extension_CountHintd)' UZend_Gdata_YouTube_Extension_Controld)& UZend_Gdata_YouTube_Extension_Companyd'% QZend_Gdata_YouTube_Extension_Booksd%$ MZend_Gdata_YouTube_Extension_Aged)# UZend_Gdata_YouTube_Extension_AboutMed#" IZend_Gdata_YouTube_ContactFeedd$! KZend_Gdata_YouTube_ContactEntryd#  IZend_Gdata_YouTube_CommentFeedd$ KZend_Gdata_YouTube_CommentEntryd$ KZend_Gdata_YouTube_ActivityFeedd% MZend_Gdata_YouTube_ActivityEntryd ;Zend_Gdata_Spreadsheetsd* WZend_Gdata_Spreadsheets_WorksheetFeedd+ YZend_Gdata_Spreadsheets_WorksheetEntryd, [Zend_Gdata_Spreadsheets_SpreadsheetFeedd- ]Zend_Gdata_Spreadsheets_SpreadsheetEntryd& OZend_Gdata_Spreadsheets_ListQueryd% MZend_Gdata_Spreadsheets_ListFeedd& OZend_Gdata_Spreadsheets_ListEntryd/ aZend_Gdata_Spreadsheets_Extension_RowCountd- ]Zend_Gdata_Spreadsheets_Extension_Customd/ aZend_Gdata_Spreadsheets_Extension_ColCountd+ YZend_Gdata_Spreadsheets_Extension_Celld* WZend_Gdata_Spreadsheets_DocumentQueryd& OZend_Gdata_Spreadsheets_CellQueryd% MZend_Gdata_Spreadsheets_CellFeedd& OZend_Gdata_Spreadsheets_CellEntryd -Zend_Gdata_Queryd /Zend_Gdata_Photosd 
 CZend_Gdata_Photos_UserQueryd	 AZend_Gdata_Photos_UserFeedd  CZend_Gdata_Photos_UserEntryd AZend_Gdata_Photos_TagEntryd! EZend_Gdata_Photos_PhotoQueryd  CZend_Gdata_Photos_PhotoFeedd! EZend_Gdata_Photos_PhotoEntryd& OZend_Gdata_Photos_Extension_Widthd' QZend_Gdata_Photos_Extension_Weightd( SZend_Gdata_Photos_Extension_Versiond%  MZend_Gdata_Photos_Extension_Userd* WZend_Gdata_Photos_Extension_Timestampd*~ WZend_Gdata_Photos_Extension_Thumbnaild%} MZend_Gdata_Photos_Extension_Sized)| UZend_Gdata_Photos_Extension_Rotationd+{ YZend_Gdata_Photos_Extension_QuotaLimitd-z ]Zend_Gdata_Photos_Extension_QuotaCurrentd)y UZend_Gdata_Photos_Extension_Positiond(x SZend_Gdata_Photos_Extension_PhotoIdd3w iZend_Gdata_Photos_Extension_NumPhotosRemainingd*v WZend_Gdata_Photos_Extension_NumPhotosd)u UZend_Gdata_Photos_Extension_Nicknamed%t MZend_Gdata_Photos_Extension_Named2s gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumd)r UZend_Gdata_Photos_Extension_Locationd#q IZend_Gdata_Photos_Extension_Idd'p QZend_Gdata_Photos_Extension_Heightd2o gZend_Gdata_Photos_Extension_CommentingEnabledd-n ]Zend_Gdata_Photos_Extension_CommentCountd'm QZend_Gdata_Photos_Extension_Clientd)l UZend_Gdata_Photos_Extension_Checksumd*k WZend_Gdata_Photos_Extension_BytesUsedd(j SZend_Gdata_Photos_Extension_AlbumIdd'i QZend_Gdata_Photos_Extension_Accessd#h IZend_Gdata_Photos_CommentEntryd!g EZend_Gdata_Photos_AlbumQueryd f CZend_Gdata_Photos_AlbumFeedd!e EZend_Gdata_Photos_AlbumEntrydd AZend_Gdata_MediaMimeStreamdc -Zend_Gdata_Mediadb 7Zend_Gdata_Media_Feedd*a WZend_Gdata_Media_Extension_MediaTitled.` _Zend_Gdata_Media_Extension_MediaThumbnaild)_ UZend_Gdata_Media_Extension_MediaTextd0^ cZend_Gdata_Media_Extension_MediaRestrictiond+] YZend_Gdata_Media_Extension_MediaRatingd+\ YZend_Gdata_Media_Extension_MediaPlayerd-[ ]Zend_Gdata_Media_Extension_MediaKeywordsd   b  xK],qEe7
]0



`
:

				l	I	0	vOF)vT#V,s<mS9uN,^@,                       7Zend_Loader_Exceptiond Zend_Ldapd 3Zend_Ldap_Exceptiond #Zend_Layoutd 7Zend_Layout_Exceptiond) UZend_Layout_Controller_Plugin_Layoutd0 cZend_Layout_Controller_Action_Helper_Layoutd Zend_Jsond -Zend_Json_Serverd 5Zend_Json_Server_Smdd! EZend_Json_Server_Smd_Serviced ?Zend_Json_Server_Responsed#
 IZend_Json_Server_Response_Httpd	 =Zend_Json_Server_Requestd" GZend_Json_Server_Request_Httpd AZend_Json_Server_Exceptiond 9Zend_Json_Server_Errord 9Zend_Json_Server_Cached 3Zend_Json_Exceptiond /Zend_Json_Encoderd /Zend_Json_Decoderd 'Zend_InfoCardd-  ]Zend_InfoCard_Xml_SecurityTokenReferenced AZend_InfoCard_Xml_Securityd)~ UZend_InfoCard_Xml_Security_Transformd4} kZend_InfoCard_Xml_Security_Transform_XmlExcC14Nd3| iZend_InfoCard_Xml_Security_Transform_Exceptiond<{ {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignatured)z UZend_InfoCard_Xml_Security_Exceptiondy ?Zend_InfoCard_Xml_KeyInfod&x OZend_InfoCard_Xml_KeyInfo_XmlDSigd&w OZend_InfoCard_Xml_KeyInfo_Defaultd'v QZend_InfoCard_Xml_KeyInfo_Abstractd u CZend_InfoCard_Xml_Exceptiond#t IZend_InfoCard_Xml_EncryptedKeyd$s KZend_InfoCard_Xml_EncryptedDatad+r YZend_InfoCard_Xml_EncryptedData_XmlEncd-q ]Zend_InfoCard_Xml_EncryptedData_Abstractdp ?Zend_InfoCard_Xml_Elementd o CZend_InfoCard_Xml_Assertiond%n MZend_InfoCard_Xml_Assertion_Samldm ;Zend_InfoCard_Exceptiond%l MZend_InfoCard_Exception_Abstractdk 5Zend_InfoCard_Claimsdj 5Zend_InfoCard_Cipherd5i mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcd5h mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcd4g kZend_InfoCard_Cipher_Symmetric_Adapter_Abstractd)f UZend_InfoCard_Cipher_Pki_Adapter_Rsad.e _Zend_InfoCard_Cipher_Pki_Adapter_Abstractd#d IZend_InfoCard_Cipher_Exceptiond$c KZend_InfoCard_Adapter_Exceptiond"b GZend_InfoCard_Adapter_Defaultda 1Zend_Http_Responsed` 3Zend_Http_Exceptiond_ 3Zend_Http_CookieJard^ -Zend_Http_Cookied] -Zend_Http_Clientd\ AZend_Http_Client_Exceptiond"[ GZend_Http_Client_Adapter_Testd$Z KZend_Http_Client_Adapter_Socketd#Y IZend_Http_Client_Adapter_Proxyd'X QZend_Http_Client_Adapter_ExceptiondW !Zend_GdatadV 1Zend_Gdata_YouTubed"U GZend_Gdata_YouTube_VideoQueryd!T EZend_Gdata_YouTube_VideoFeedd"S GZend_Gdata_YouTube_VideoEntryd(R SZend_Gdata_YouTube_UserProfileEntryd(Q SZend_Gdata_YouTube_SubscriptionFeedd)P UZend_Gdata_YouTube_SubscriptionEntryd)O UZend_Gdata_YouTube_PlaylistVideoFeedd*N WZend_Gdata_YouTube_PlaylistVideoEntryd(M SZend_Gdata_YouTube_PlaylistListFeedd)L UZend_Gdata_YouTube_PlaylistListEntryd"K GZend_Gdata_YouTube_MediaEntryd)J UZend_Gdata_YouTube_Extension_VideoIdd*I WZend_Gdata_YouTube_Extension_Usernamed*H WZend_Gdata_YouTube_Extension_Uploadedd'G QZend_Gdata_YouTube_Extension_Tokend(F SZend_Gdata_YouTube_Extension_Statusd,E [Zend_Gdata_YouTube_Extension_Statisticsd'D QZend_Gdata_YouTube_Extension_Stated(C SZend_Gdata_YouTube_Extension_Schoold-B ]Zend_Gdata_YouTube_Extension_ReleaseDated.A _Zend_Gdata_YouTube_Extension_Relationshipd*@ WZend_Gdata_YouTube_Extension_Recordedd&? OZend_Gdata_YouTube_Extension_Racyd-> ]Zend_Gdata_YouTube_Extension_QueryStringd)= UZend_Gdata_YouTube_Extension_Privated*< WZend_Gdata_YouTube_Extension_Positiond/; aZend_Gdata_YouTube_Extension_PlaylistTitled,: [Zend_Gdata_YouTube_Extension_PlaylistIdd,9 [Zend_Gdata_YouTube_Extension_Occupationd)8 UZend_Gdata_YouTube_Extension_NoEmbedd'7 QZend_Gdata_YouTube_Extension_Musicd(6 SZend_Gdata_YouTube_Extension_Moviesd-5 ]Zend_Gdata_YouTube_Extension_MediaRatingd   w {bD)}\;{^A"e@  }]:




e
F
'					r	Q	?	!iE(qV7jI/fA|`F/pR(a9uG                                   * WZend_Paginator_ScrollingStyle_Jumpingd* WZend_Paginator_ScrollingStyle_Elasticd& OZend_Paginator_ScrollingStyle_Alld
 =Zend_Paginator_Exceptiond 	 CZend_Paginator_Adapter_Nulld$ KZend_Paginator_Adapter_Iteratord) UZend_Paginator_Adapter_DbTableSelectd$ KZend_Paginator_Adapter_DbSelectd! EZend_Paginator_Adapter_Arrayd #Zend_OpenIdd 5Zend_OpenId_Providerd ?Zend_OpenId_Provider_Userd& OZend_OpenId_Provider_User_Sessiond!  EZend_OpenId_Provider_Storaged& OZend_OpenId_Provider_Storage_Filed~ 7Zend_OpenId_Extensiond} AZend_OpenId_Extension_Sregd| 7Zend_OpenId_Exceptiond{ 5Zend_OpenId_Consumerd!z EZend_OpenId_Consumer_Storaged&y OZend_OpenId_Consumer_Storage_Filedx Zend_Mimedw )Zend_Mime_Partdv /Zend_Mime_Messagedu 3Zend_Mime_Exceptiondt -Zend_Mime_Decodeds #Zend_Memorydr /Zend_Memory_Valuedq 3Zend_Memory_Managerdp 7Zend_Memory_Exceptiondo 7Zend_Memory_Containerd"n GZend_Memory_Container_Movabled!m EZend_Memory_Container_Lockedd!l EZend_Memory_AccessControllerdk 3Zend_Measure_Weightdj 3Zend_Measure_Volumed%i MZend_Measure_Viscosity_Kinematicd#h IZend_Measure_Viscosity_Dynamicdg 3Zend_Measure_Torquedf /Zend_Measure_Timede =Zend_Measure_Temperaturedd 1Zend_Measure_Speeddc 7Zend_Measure_Pressuredb 1Zend_Measure_Powerda 3Zend_Measure_Numberd` 9Zend_Measure_Lightnessd_ 3Zend_Measure_Lengthd^ ?Zend_Measure_Illuminationd] 9Zend_Measure_Frequencyd\ 1Zend_Measure_Forced[ =Zend_Measure_Flow_VolumedZ 9Zend_Measure_Flow_MoledY 9Zend_Measure_Flow_MassdX 9Zend_Measure_ExceptiondW 3Zend_Measure_EnergydV 5Zend_Measure_DensitydU 5Zend_Measure_Currentd T CZend_Measure_Cooking_Weightd S CZend_Measure_Cooking_VolumedR =Zend_Measure_CapacitancedQ 3Zend_Measure_BinarydP /Zend_Measure_AreadO 1Zend_Measure_AngledN ?Zend_Measure_AccelerationdM 7Zend_Measure_AbstractdL Zend_MaildK =Zend_Mail_Transport_Smtpd!J EZend_Mail_Transport_Sendmaild"I GZend_Mail_Transport_Exceptiond!H EZend_Mail_Transport_AbstractdG /Zend_Mail_Storaged'F QZend_Mail_Storage_Writable_MaildirdE 9Zend_Mail_Storage_Pop3dD 9Zend_Mail_Storage_MboxdC ?Zend_Mail_Storage_MaildirdB 9Zend_Mail_Storage_ImapdA =Zend_Mail_Storage_Folderd"@ GZend_Mail_Storage_Folder_Mboxd%? MZend_Mail_Storage_Folder_Maildird > CZend_Mail_Storage_Exceptiond= AZend_Mail_Storage_Abstractd< ;Zend_Mail_Protocol_Smtpd'; QZend_Mail_Protocol_Smtp_Auth_Plaind': QZend_Mail_Protocol_Smtp_Auth_Logind)9 UZend_Mail_Protocol_Smtp_Auth_Crammd5d8 ;Zend_Mail_Protocol_Pop3d7 ;Zend_Mail_Protocol_Imapd!6 EZend_Mail_Protocol_Exceptiond 5 CZend_Mail_Protocol_Abstractd4 )Zend_Mail_Partd3 3Zend_Mail_Part_Filed2 /Zend_Mail_Messaged1 9Zend_Mail_Message_Filed0 3Zend_Mail_Exceptiond/ Zend_Logd. 9Zend_Log_Writer_Streamd- 5Zend_Log_Writer_Nulld, 5Zend_Log_Writer_Mockd+ ;Zend_Log_Writer_Firebugd* 1Zend_Log_Writer_Dbd) =Zend_Log_Writer_Abstractd( 9Zend_Log_Formatter_Xmld' ?Zend_Log_Formatter_Simpled& AZend_Log_Formatter_Firebugd% =Zend_Log_Filter_Suppressd$ =Zend_Log_Filter_Priorityd# ;Zend_Log_Filter_Messaged" 1Zend_Log_Exceptiond! #Zend_Localed  -Zend_Locale_Mathd =Zend_Locale_Math_PhpMathd AZend_Locale_Math_Exceptiond 1Zend_Locale_Formatd 7Zend_Locale_Exceptiond -Zend_Locale_Datad! EZend_Locale_Data_Translationd #Zend_Loaderd =Zend_Loader_PluginLoaderd' QZend_Loader_PluginLoader_Exceptiond   g  nI&fE!}R)`@%_C




Z
2
						z	J	#i2w>|FY_;]=$rJ)jQ5       t 7Zend_Search_Exceptionds -Zend_Rest_Serverdr AZend_Rest_Server_Exceptiondq 3Zend_Rest_Exceptiondp -Zend_Rest_Clientdo ;Zend_Rest_Client_Resultd&n OZend_Rest_Client_Result_Exceptiondm AZend_Rest_Client_Exceptiondl 'Zend_Registrydk -Zend_ProgressBardj AZend_ProgressBar_Exceptiondi =Zend_ProgressBar_Adapterd$h KZend_ProgressBar_Adapter_JsPushd$g KZend_ProgressBar_Adapter_JsPulld'f QZend_ProgressBar_Adapter_Exceptiond%e MZend_ProgressBar_Adapter_Consoledd Zend_Pdfd!c EZend_Pdf_UpdateInfoContainerdb -Zend_Pdf_Trailerda ;Zend_Pdf_Trailer_Keeperd` AZend_Pdf_Trailer_Generatord_ )Zend_Pdf_Styled^ 7Zend_Pdf_StringParserd] /Zend_Pdf_Resourced#\ IZend_Pdf_Resource_ImageFactoryd[ ;Zend_Pdf_Resource_Imaged!Z EZend_Pdf_Resource_Image_Tiffd Y CZend_Pdf_Resource_Image_Pngd!X EZend_Pdf_Resource_Image_JpegdW 9Zend_Pdf_Resource_Fontd!V EZend_Pdf_Resource_Font_Type0d"U GZend_Pdf_Resource_Font_Simpled+T YZend_Pdf_Resource_Font_Simple_Standardd8S sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsd6R oZend_Pdf_Resource_Font_Simple_Standard_TimesRomand7Q qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicd;P yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicd5O mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldd2N gZend_Pdf_Resource_Font_Simple_Standard_Symbold<M {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliquedAL Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliqued9K uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldd5J mZend_Pdf_Resource_Font_Simple_Standard_Helveticad:I wZend_Pdf_Resource_Font_Simple_Standard_CourierObliqued>H Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliqued7G qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldd3F iZend_Pdf_Resource_Font_Simple_Standard_Courierd)E UZend_Pdf_Resource_Font_Simple_Parsedd2D gZend_Pdf_Resource_Font_Simple_Parsed_TrueTyped*C WZend_Pdf_Resource_Font_FontDescriptord%B MZend_Pdf_Resource_Font_Extractedd#A IZend_Pdf_Resource_Font_CidFontd,@ [Zend_Pdf_Resource_Font_CidFont_TrueTyped? /Zend_Pdf_PhpArrayd> +Zend_Pdf_Parserd= 9Zend_Pdf_Parser_Streamd< 'Zend_Pdf_Paged; )Zend_Pdf_Imaged: 'Zend_Pdf_Fontd 9 CZend_Pdf_Filter_Compressiond$8 KZend_Pdf_Filter_Compression_Lzwd&7 OZend_Pdf_Filter_Compression_Flated6 =Zend_Pdf_Filter_AsciiHexd5 ;Zend_Pdf_Filter_Ascii85d"4 GZend_Pdf_FileParserDataSourced)3 UZend_Pdf_FileParserDataSource_Stringd'2 QZend_Pdf_FileParserDataSource_Filed1 3Zend_Pdf_FileParserd0 ?Zend_Pdf_FileParser_Imaged"/ GZend_Pdf_FileParser_Image_Pngd. =Zend_Pdf_FileParser_Fontd&- OZend_Pdf_FileParser_Font_OpenTyped/, aZend_Pdf_FileParser_Font_OpenType_TrueTyped+ 1Zend_Pdf_Exceptiond* ;Zend_Pdf_ElementFactoryd") GZend_Pdf_ElementFactory_Proxyd( -Zend_Pdf_Elementd' ;Zend_Pdf_Element_Stringd#& IZend_Pdf_Element_String_Binaryd% ;Zend_Pdf_Element_Streamd$ AZend_Pdf_Element_Referenced%# MZend_Pdf_Element_Reference_Tabled'" QZend_Pdf_Element_Reference_Contextd! ;Zend_Pdf_Element_Objectd#  IZend_Pdf_Element_Object_Streamd =Zend_Pdf_Element_Numericd 7Zend_Pdf_Element_Nulld 7Zend_Pdf_Element_Named  CZend_Pdf_Element_Dictionaryd =Zend_Pdf_Element_Booleand 9Zend_Pdf_Element_Arrayd )Zend_Pdf_Colord 1Zend_Pdf_Color_Rgbd 3Zend_Pdf_Color_Htmld =Zend_Pdf_Color_GrayScaled 3Zend_Pdf_Color_Cmykd 'Zend_Pdf_Cmapd AZend_Pdf_Cmap_TrimmedTabled! EZend_Pdf_Cmap_SegmentToDeltad AZend_Pdf_Cmap_ByteEncodingd& OZend_Pdf_Cmap_ByteEncoding_Staticd )Zend_Paginatord* WZend_Paginator_ScrollingStyle_Slidingd   R  }0q$]#p@kB




b
6
			u	7|T-uGT'd2JS$j2{`C)
                               F CZend_Server_Method_CallbackdE 7Zend_Server_ExceptiondD 9Zend_Server_DefinitiondC /Zend_Server_CachedB 5Zend_Server_AbstractdA 1Zend_Search_Lucened$@ KZend_Search_Lucene_Storage_Filed+? YZend_Search_Lucene_Storage_File_Memoryd/> aZend_Search_Lucene_Storage_File_Filesystemd)= UZend_Search_Lucene_Storage_Directoryd4< kZend_Search_Lucene_Storage_Directory_Filesystemd%; MZend_Search_Lucene_Search_Weightd*: WZend_Search_Lucene_Search_Weight_Termd,9 [Zend_Search_Lucene_Search_Weight_Phrased/8 aZend_Search_Lucene_Search_Weight_MultiTermd+7 YZend_Search_Lucene_Search_Weight_Emptyd-6 ]Zend_Search_Lucene_Search_Weight_Booleand)5 UZend_Search_Lucene_Search_Similarityd14 eZend_Search_Lucene_Search_Similarity_Defaultd)3 UZend_Search_Lucene_Search_QueryTokend32 iZend_Search_Lucene_Search_QueryParserExceptiond11 eZend_Search_Lucene_Search_QueryParserContextd*0 WZend_Search_Lucene_Search_QueryParserd)/ UZend_Search_Lucene_Search_QueryLexerd'. QZend_Search_Lucene_Search_QueryHitd)- UZend_Search_Lucene_Search_QueryEntryd., _Zend_Search_Lucene_Search_QueryEntry_Termd2+ gZend_Search_Lucene_Search_QueryEntry_Subqueryd0* cZend_Search_Lucene_Search_QueryEntry_Phrased$) KZend_Search_Lucene_Search_Queryd-( ]Zend_Search_Lucene_Search_Query_Wildcardd)' UZend_Search_Lucene_Search_Query_Termd*& WZend_Search_Lucene_Search_Query_Ranged+% YZend_Search_Lucene_Search_Query_Phrased.$ _Zend_Search_Lucene_Search_Query_MultiTermd2# gZend_Search_Lucene_Search_Query_Insignificantd*" WZend_Search_Lucene_Search_Query_Fuzzyd*! WZend_Search_Lucene_Search_Query_Emptyd,  [Zend_Search_Lucene_Search_Query_Booleand: wZend_Search_Lucene_Search_BooleanExpressionRecognizerd =Zend_Search_Lucene_Proxyd% MZend_Search_Lucene_PriorityQueued# IZend_Search_Lucene_LockManagerd$ KZend_Search_Lucene_Index_Writerd& OZend_Search_Lucene_Index_TermInfod" GZend_Search_Lucene_Index_Termd+ YZend_Search_Lucene_Index_SegmentWriterd8 sZend_Search_Lucene_Index_SegmentWriter_StreamWriterd: wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterd+ YZend_Search_Lucene_Index_SegmentMergerd6 oZend_Search_Lucene_Index_SegmentInfoPriorityQueued) UZend_Search_Lucene_Index_SegmentInfod' QZend_Search_Lucene_Index_FieldInfod( SZend_Search_Lucene_Index_DocsFilterd. _Zend_Search_Lucene_Index_DictionaryLoaderd! EZend_Search_Lucene_FSMActiond 9Zend_Search_Lucene_FSMd =Zend_Search_Lucene_Fieldd! EZend_Search_Lucene_Exceptiond  CZend_Search_Lucene_Documentd%
 MZend_Search_Lucene_Document_Xlsxd%	 MZend_Search_Lucene_Document_Pptxd( SZend_Search_Lucene_Document_OpenXmld% MZend_Search_Lucene_Document_Htmld* WZend_Search_Lucene_Document_Exceptiond% MZend_Search_Lucene_Document_Docxd, [Zend_Search_Lucene_Analysis_TokenFilterd6 oZend_Search_Lucene_Analysis_TokenFilter_StopWordsd7 qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsd: wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8d6  oZend_Search_Lucene_Analysis_TokenFilter_LowerCased& OZend_Search_Lucene_Analysis_Tokend)~ UZend_Search_Lucene_Analysis_Analyzerd0} cZend_Search_Lucene_Analysis_Analyzer_Commond8| sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumdI{ Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitived5z mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8dFy Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitived8x sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumdIw Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitived5v mZend_Search_Lucene_Analysis_Analyzer_Common_TextdFu Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitived   c  kBvM"uI'sM"mC$



~
V
)					\	4	eB#[@}S"yJ\. R(|U5[/             #) IZend_Service_Yahoo_LocalResultd+( YZend_Service_Yahoo_InlinkDataResultSetd(' SZend_Service_Yahoo_InlinkDataResultd&& OZend_Service_Yahoo_ImageResultSetd#% IZend_Service_Yahoo_ImageResultd$ =Zend_Service_Yahoo_Imaged# 5Zend_Service_Twitterd " CZend_Service_Twitter_Searchd#! IZend_Service_Twitter_Exceptiond  ;Zend_Service_Technoratid# IZend_Service_Technorati_Weblogd" GZend_Service_Technorati_Utilsd* WZend_Service_Technorati_TagsResultSetd' QZend_Service_Technorati_TagsResultd) UZend_Service_Technorati_TagResultSetd& OZend_Service_Technorati_TagResultd, [Zend_Service_Technorati_SearchResultSetd) UZend_Service_Technorati_SearchResultd& OZend_Service_Technorati_ResultSetd# IZend_Service_Technorati_Resultd* WZend_Service_Technorati_KeyInfoResultd* WZend_Service_Technorati_GetInfoResultd& OZend_Service_Technorati_Exceptiond1 eZend_Service_Technorati_DailyCountsResultSetd. _Zend_Service_Technorati_DailyCountsResultd, [Zend_Service_Technorati_CosmosResultSetd) UZend_Service_Technorati_CosmosResultd+ YZend_Service_Technorati_BlogInfoResultd# IZend_Service_Technorati_Authord ;Zend_Service_StrikeIrond( SZend_Service_StrikeIron_ZipCodeInfod2
 gZend_Service_StrikeIron_USAddressVerificationd-	 ]Zend_Service_StrikeIron_SalesUseTaxBasicd& OZend_Service_StrikeIron_Exceptiond& OZend_Service_StrikeIron_Decoratord! EZend_Service_StrikeIron_Based ;Zend_Service_SlideShared& OZend_Service_SlideShare_SlideShowd& OZend_Service_SlideShare_Exceptiond 1Zend_Service_Simpyd$ KZend_Service_Simpy_WatchlistSetd*  WZend_Service_Simpy_WatchlistFilterSetd' QZend_Service_Simpy_WatchlistFilterd!~ EZend_Service_Simpy_Watchlistd} ?Zend_Service_Simpy_TagSetd| 9Zend_Service_Simpy_Tagd{ AZend_Service_Simpy_NoteSetdz ;Zend_Service_Simpy_Notedy AZend_Service_Simpy_LinkSetd!x EZend_Service_Simpy_LinkQuerydw ;Zend_Service_Simpy_Linkdv 9Zend_Service_ReCaptchad$u KZend_Service_ReCaptcha_Responsed$t KZend_Service_ReCaptcha_MailHided.s _Zend_Service_ReCaptcha_MailHide_Exceptiond%r MZend_Service_ReCaptcha_Exceptiondq 7Zend_Service_Nirvanixd#p IZend_Service_Nirvanix_Responsed)o UZend_Service_Nirvanix_Namespace_Imfsd)n UZend_Service_Nirvanix_Namespace_Based$m KZend_Service_Nirvanix_Exceptiondl 3Zend_Service_Flickrd"k GZend_Service_Flickr_ResultSetdj AZend_Service_Flickr_Resultdi ?Zend_Service_Flickr_Imagedh 9Zend_Service_Exceptiondg 9Zend_Service_Deliciousd&f OZend_Service_Delicious_SimplePostd$e KZend_Service_Delicious_PostListd d CZend_Service_Delicious_Postd%c MZend_Service_Delicious_Exceptiond b CZend_Service_Audioscrobblerda 3Zend_Service_Amazond'` QZend_Service_Amazon_SimilarProductd"_ GZend_Service_Amazon_ResultSetd^ ?Zend_Service_Amazon_Queryd!] EZend_Service_Amazon_OfferSetd\ ?Zend_Service_Amazon_Offerd&[ OZend_Service_Amazon_ListmaniaListdZ =Zend_Service_Amazon_ItemdY ?Zend_Service_Amazon_Imaged(X SZend_Service_Amazon_EditorialReviewd'W QZend_Service_Amazon_CustomerReviewd$V KZend_Service_Amazon_AccessoriesdU 5Zend_Service_AkismetdT 7Zend_Service_AbstractdS 9Zend_Server_Reflectiond'R QZend_Server_Reflection_ReturnValued%Q MZend_Server_Reflection_Prototyped%P MZend_Server_Reflection_Parameterd O CZend_Server_Reflection_Noded"N GZend_Server_Reflection_Methodd$M KZend_Server_Reflection_Functiond-L ]Zend_Server_Reflection_Function_Abstractd%K MZend_Server_Reflection_Exceptiond!J EZend_Server_Reflection_Classd!I EZend_Server_Method_Prototyped!H EZend_Server_Method_Parameterd"G GZend_Server_Method_Definitiond   p  ]0sK0X+kL3nE



l
>
				d	A	(	y]E%sL)wX7 c@"mL+hH#pP0rP.    ?Zend_Validate_Hostname_Lid ?Zend_Validate_Hostname_Hud ?Zend_Validate_Hostname_Fid ?Zend_Validate_Hostname_Ded ?Zend_Validate_Hostname_Chd ?Zend_Validate_Hostname_Atd /Zend_Validate_Hexd ?Zend_Validate_GreaterThand 3Zend_Validate_Floatd ?Zend_Validate_File_Uploadd ;Zend_Validate_File_Sized ;Zend_Validate_File_Sha1d! EZend_Validate_File_NotExistsd  CZend_Validate_File_MimeTyped 9Zend_Validate_File_Md5d
 AZend_Validate_File_IsImaged$	 KZend_Validate_File_IsCompressedd! EZend_Validate_File_ImageSized ;Zend_Validate_File_Hashd! EZend_Validate_File_FilesSized! EZend_Validate_File_Extensiond ?Zend_Validate_File_Existsd' QZend_Validate_File_ExcludeMimeTyped( SZend_Validate_File_ExcludeExtensiond =Zend_Validate_File_Crc32d  =Zend_Validate_File_Countd ;Zend_Validate_Exceptiond~ AZend_Validate_EmailAddressd} 5Zend_Validate_Digitsd| 1Zend_Validate_Dated{ 3Zend_Validate_Ccnumdz 7Zend_Validate_Betweendy 7Zend_Validate_Barcodedx AZend_Validate_Barcode_UpcAd w CZend_Validate_Barcode_Ean13dv 3Zend_Validate_Alphadu 3Zend_Validate_Alnumdt 9Zend_Validate_Abstractds Zend_Uridr 'Zend_Uri_Httpdq 1Zend_Uri_Exceptiondp )Zend_Translatedo =Zend_Translate_Exceptiondn 9Zend_Translate_Adapterd!m EZend_Translate_Adapter_XmlTmd!l EZend_Translate_Adapter_Xliffdk AZend_Translate_Adapter_Tmxdj AZend_Translate_Adapter_Tbxdi ?Zend_Translate_Adapter_Qtdh AZend_Translate_Adapter_Inid#g IZend_Translate_Adapter_Gettextdf AZend_Translate_Adapter_Csvd!e EZend_Translate_Adapter_Arraydd 'Zend_TimeSyncdc 1Zend_TimeSync_Sntpdb 9Zend_TimeSync_Protocolda /Zend_TimeSync_Ntpd` ;Zend_TimeSync_Exceptiond_ +Zend_Text_Tabled^ 3Zend_Text_Table_Rowd] ?Zend_Text_Table_Exceptiond&\ OZend_Text_Table_Decorator_Unicoded$[ KZend_Text_Table_Decorator_AsciidZ 9Zend_Text_Table_ColumndY 3Zend_Text_MultiBytedX -Zend_Text_FigletdW AZend_Text_Figlet_ExceptiondV 3Zend_Text_Exceptiond)U UZend_Test_PHPUnit_ControllerTestCased0T cZend_Test_PHPUnit_Constraint_ResponseHeaderd*S WZend_Test_PHPUnit_Constraint_Redirectd+R YZend_Test_PHPUnit_Constraint_Exceptiond*Q WZend_Test_PHPUnit_Constraint_DomQuerydP )Zend_Soap_Wsdld/O aZend_Soap_Wsdl_Strategy_DefaultComplexTyped0N cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequenced/M aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplexd$L KZend_Soap_Wsdl_Strategy_AnyTyped%K MZend_Soap_Wsdl_Strategy_AbstractdJ 7Zend_Soap_Wsdl_Parserd!I EZend_Soap_Wsdl_Parser_ResultdH =Zend_Soap_Wsdl_Exceptiond!G EZend_Soap_Wsdl_CodeGeneratordF -Zend_Soap_ServerdE AZend_Soap_Server_ExceptiondD -Zend_Soap_ClientdC 9Zend_Soap_Client_LocaldB AZend_Soap_Client_ExceptiondA ;Zend_Soap_Client_DotNetd@ ;Zend_Soap_Client_Commond? 9Zend_Soap_AutoDiscoverd%> MZend_Soap_AutoDiscover_Exceptiond= %Zend_Sessiond)< UZend_Session_Validator_HttpUserAgentd$; KZend_Session_Validator_Abstractd': QZend_Session_SaveHandler_Exceptiond%9 MZend_Session_SaveHandler_DbTabled8 9Zend_Session_Namespaced7 9Zend_Session_Exceptiond6 7Zend_Session_Abstractd5 1Zend_Service_Yahood$4 KZend_Service_Yahoo_WebResultSetd!3 EZend_Service_Yahoo_WebResultd&2 OZend_Service_Yahoo_VideoResultSetd#1 IZend_Service_Yahoo_VideoResultd!0 EZend_Service_Yahoo_ResultSetd/ ?Zend_Service_Yahoo_Resultd). UZend_Service_Yahoo_PageDataResultSetd&- OZend_Service_Yahoo_PageDataResultd%, MZend_Service_Yahoo_NewsResultSetd"+ GZend_Service_Yahoo_NewsResultd&* OZend_Service_Yahoo_LocalResultSetd   n  }_E,iM+a;f;eC




o
J
'
				r	T	4		`'X3qQ$~T+mS2oN,fE!~dI/     9Zend_Acl_Role_Registrye% MZend_Acl_Role_Registry_Exceptione /Zend_Acl_Resourcee 1Zend_Acl_Exceptione /Zend_XmlRpc_Valued =Zend_XmlRpc_Value_Structd =Zend_XmlRpc_Value_Stringd  =Zend_XmlRpc_Value_Scalard 7Zend_XmlRpc_Value_Nild~ ?Zend_XmlRpc_Value_Integerd } CZend_XmlRpc_Value_Exceptiond| =Zend_XmlRpc_Value_Doubled{ AZend_XmlRpc_Value_DateTimed!z EZend_XmlRpc_Value_Collectiondy ?Zend_XmlRpc_Value_Booleandx =Zend_XmlRpc_Value_Base64dw ;Zend_XmlRpc_Value_Arraydv 1Zend_XmlRpc_Serverdu ?Zend_XmlRpc_Server_Systemdt =Zend_XmlRpc_Server_Faultd!s EZend_XmlRpc_Server_Exceptiondr =Zend_XmlRpc_Server_Cachedq 5Zend_XmlRpc_Responsedp ?Zend_XmlRpc_Response_Httpdo 3Zend_XmlRpc_Requestdn ?Zend_XmlRpc_Request_Stdindm =Zend_XmlRpc_Request_Httpdl /Zend_XmlRpc_Faultdk 7Zend_XmlRpc_Exceptiondj 1Zend_XmlRpc_Clientd#i IZend_XmlRpc_Client_ServerProxyd+h YZend_XmlRpc_Client_ServerIntrospectiond+g YZend_XmlRpc_Client_IntrospectExceptiond%f MZend_XmlRpc_Client_HttpExceptiond&e OZend_XmlRpc_Client_FaultExceptiond!d EZend_XmlRpc_Client_Exceptiond&c OZend_Wildfire_Protocol_JsonStreamd!b EZend_Wildfire_Plugin_FirePhpd.a _Zend_Wildfire_Plugin_FirePhp_TableMessaged)` UZend_Wildfire_Plugin_FirePhp_Messaged_ ;Zend_Wildfire_Exceptiond&^ OZend_Wildfire_Channel_HttpHeadersd] Zend_Viewd\ -Zend_View_Streamd[ 5Zend_View_Helper_UrldZ AZend_View_Helper_Translated)Y UZend_View_Helper_RenderToPlaceholderd!X EZend_View_Helper_Placeholderd*W WZend_View_Helper_Placeholder_Registryd4V kZend_View_Helper_Placeholder_Registry_Exceptiond+U YZend_View_Helper_Placeholder_Containerd6T oZend_View_Helper_Placeholder_Container_Standaloned5S mZend_View_Helper_Placeholder_Container_Exceptiond4R kZend_View_Helper_Placeholder_Container_Abstractd!Q EZend_View_Helper_PartialLoopdP =Zend_View_Helper_Partiald'O QZend_View_Helper_Partial_Exceptiond'N QZend_View_Helper_PaginationControldM ;Zend_View_Helper_LayoutdL 7Zend_View_Helper_Jsond"K GZend_View_Helper_InlineScriptd#J IZend_View_Helper_HtmlQuicktimedI ?Zend_View_Helper_HtmlPaged H CZend_View_Helper_HtmlObjectdG ?Zend_View_Helper_HtmlListdF AZend_View_Helper_HtmlFlashd!E EZend_View_Helper_HtmlElementdD AZend_View_Helper_HeadTitledC AZend_View_Helper_HeadStyled B CZend_View_Helper_HeadScriptdA ?Zend_View_Helper_HeadMetad@ ?Zend_View_Helper_HeadLinkd"? GZend_View_Helper_FormTextaread> ?Zend_View_Helper_FormTextd = CZend_View_Helper_FormSubmitd < CZend_View_Helper_FormSelectd; AZend_View_Helper_FormResetd: AZend_View_Helper_FormRadiod"9 GZend_View_Helper_FormPasswordd8 ?Zend_View_Helper_FormNoted'7 QZend_View_Helper_FormMultiCheckboxd6 AZend_View_Helper_FormLabeld5 AZend_View_Helper_FormImaged 4 CZend_View_Helper_FormHiddend3 ?Zend_View_Helper_FormFiled 2 CZend_View_Helper_FormErrorsd!1 EZend_View_Helper_FormElementd"0 GZend_View_Helper_FormCheckboxd / CZend_View_Helper_FormButtond. 7Zend_View_Helper_Formd- ?Zend_View_Helper_Fieldsetd, =Zend_View_Helper_Doctyped!+ EZend_View_Helper_DeclareVarsd* ;Zend_View_Helper_Actiond) ?Zend_View_Helper_Abstractd( 3Zend_View_Exceptiond' 1Zend_View_Abstractd& %Zend_Versiond% 'Zend_Validated$ AZend_Validate_StringLengthd# 3Zend_Validate_Regexd" 9Zend_Validate_NotEmptyd! 9Zend_Validate_LessThand  -Zend_Validate_Ipd /Zend_Validate_Intd 7Zend_Validate_InArrayd ;Zend_Validate_Identicald 9Zend_Validate_Hostnamed ?Zend_Validate_Hostname_Sed ?Zend_Validate_Hostname_Nod   c  mDnH'nB]:[-



\
1
				a	>	yJ! wO&wP*	sP$ b?g=k>gC           '^ QZend_Mail_Storage_Folder_Interfacef] =Zend_Mail_Part_Interfacef \ CZend_Mail_Message_Interfacef![ EZend_Log_Formatter_InterfacefZ ?Zend_Log_Filter_Interfacef'Y QZend_Loader_PluginLoader_Interfacef3X iZend_InfoCard_Xml_Security_Transform_Interfacef(W SZend_InfoCard_Xml_KeyInfo_Interfacef(V SZend_InfoCard_Xml_Element_Interfacef*U WZend_InfoCard_Xml_Assertion_Interfacef-T ]Zend_InfoCard_Cipher_Symmetric_Interfacef7S qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interfacef7R qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interfacef+Q YZend_InfoCard_Cipher_Pki_Rsa_Interfacef'P QZend_InfoCard_Cipher_Pki_Interfacef$O KZend_InfoCard_Adapter_Interfacef'N QZend_Http_Client_Adapter_InterfacefM AZend_Gdata_App_MediaSourcef"L GZend_Form_Decorator_InterfacefK 7Zend_Filter_Interfacef J CZend_Feed_Builder_Interfacef I CZend_Db_Statement_Interfacef+H YZend_Controller_Router_Route_Interfacef%G MZend_Controller_Router_Interfacef)F UZend_Controller_Dispatcher_InterfacefE 5Zend_Captcha_Adapterf!D EZend_Cache_Backend_Interfacef)C UZend_Cache_Backend_ExtendedInterfacef B CZend_Auth_Storage_Interfacef A CZend_Auth_Adapter_Interfacef.@ _Zend_Auth_Adapter_Http_Resolver_Interfacef? ;Zend_Acl_Role_Interfacef > CZend_Acl_Resource_Interfacef= ?Zend_Acl_Assert_Interfacef#< IZend_Wildfire_Plugin_Interfacee$; KZend_Wildfire_Channel_Interfacee: 3Zend_View_Interfacee9 AZend_View_Helper_Interfacee8 ;Zend_Validate_Interfacee%7 MZend_Validate_Hostname_Interfacee(6 SZend_Text_Table_Decorator_Interfacee&5 OZend_Soap_Wsdl_Strategy_Interfacee%4 MZend_Session_Validator_Interfacee'3 QZend_Session_SaveHandler_Interfacee2 7Zend_Server_Interfacee!1 EZend_Search_Lucene_Interfacee0 9Zend_Request_Interfacee/ ?Zend_Pdf_Filter_Interfacee&. OZend_Pdf_ElementFactory_Interfacee,- [Zend_Paginator_ScrollingStyle_Interfacee%, MZend_Paginator_Adapter_Interfacee$+ KZend_Memory_Container_Interfacee)* UZend_Mail_Storage_Writable_Interfacee') QZend_Mail_Storage_Folder_Interfacee( =Zend_Mail_Part_Interfacee ' CZend_Mail_Message_Interfacee!& EZend_Log_Formatter_Interfacee% ?Zend_Log_Filter_Interfacee'$ QZend_Loader_PluginLoader_Interfacee3# iZend_InfoCard_Xml_Security_Transform_Interfacee(" SZend_InfoCard_Xml_KeyInfo_Interfacee(! SZend_InfoCard_Xml_Element_Interfacee*  WZend_InfoCard_Xml_Assertion_Interfacee- ]Zend_InfoCard_Cipher_Symmetric_Interfacee7 qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interfacee7 qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interfacee+ YZend_InfoCard_Cipher_Pki_Rsa_Interfacee' QZend_InfoCard_Cipher_Pki_Interfacee$ KZend_InfoCard_Adapter_Interfacee' QZend_Http_Client_Adapter_Interfacee AZend_Gdata_App_MediaSourcee" GZend_Form_Decorator_Interfacee 7Zend_Filter_Interfacee  CZend_Feed_Builder_Interfacee  CZend_Db_Statement_Interfacee+ YZend_Controller_Router_Route_Interfacee% MZend_Controller_Router_Interfacee) UZend_Controller_Dispatcher_Interfacee 5Zend_Captcha_Adaptere! EZend_Cache_Backend_Interfacee) UZend_Cache_Backend_ExtendedInterfacee  CZend_Auth_Storage_Interfacee  CZend_Auth_Adapter_Interfacee. _Zend_Auth_Adapter_Http_Resolver_Interfacee
 ;Zend_Acl_Role_Interfacee 	 CZend_Acl_Resource_Interfacee ?Zend_Acl_Assert_Interfacee# IZend_Wildfire_Plugin_Interfaced$ KZend_Wildfire_Channel_Interfaced 3Zend_View_Interfaced AZend_View_Helper_Interfaced ;Zend_Validate_Interfaced% MZend_Validate_Hostname_Interfaced( SZend_Text_Table_Decorator_Interfaced&  OZend_Soap_Wsdl_Strategy_Interfaced% MZend_Session_Validator_Interfaced'~ QZend_Session_SaveHandler_Interfaced} 7Zend_Server_Interfaced!| EZend_Search_Lucene_Interfaced   j zS*vT6fC[-sA




v
]
9
					y	W	7	xV5fJ/aF.Ni5 zGi=X/                                         &q OZend_Controller_Request_Apache404e%p MZend_Controller_Request_Abstracte(o SZend_Controller_Plugin_ErrorHandlere"n GZend_Controller_Plugin_Brokere'm QZend_Controller_Plugin_ActionStacke$l KZend_Controller_Plugin_Abstractek 7Zend_Controller_Frontej ?Zend_Controller_Exceptione(i SZend_Controller_Dispatcher_Standarde)h UZend_Controller_Dispatcher_Exceptione(g SZend_Controller_Dispatcher_Abstractef 9Zend_Controller_Actione(e SZend_Controller_Action_HelperBrokere6d oZend_Controller_Action_HelperBroker_PriorityStacke/c aZend_Controller_Action_Helper_ViewRenderere&b OZend_Controller_Action_Helper_Urle-a ]Zend_Controller_Action_Helper_Redirectore'` QZend_Controller_Action_Helper_Jsone1_ eZend_Controller_Action_Helper_FlashMessengere0^ cZend_Controller_Action_Helper_ContextSwitche<] {Zend_Controller_Action_Helper_AutoCompleteScriptaculouse3\ iZend_Controller_Action_Helper_AutoCompleteDojoe8[ sZend_Controller_Action_Helper_AutoComplete_Abstracte.Z _Zend_Controller_Action_Helper_AjaxContexte.Y _Zend_Controller_Action_Helper_ActionStacke+X YZend_Controller_Action_Helper_Abstracte%W MZend_Controller_Action_ExceptioneV 3Zend_Console_Getopte"U GZend_Console_Getopt_ExceptioneT #Zend_ConfigeS +Zend_Config_XmleR 1Zend_Config_WritereQ 9Zend_Config_Writer_XmleP 9Zend_Config_Writer_InieO =Zend_Config_Writer_ArrayeN +Zend_Config_InieM 7Zend_Config_ExceptioneL /Zend_Captcha_WordeK 9Zend_Captcha_ReCaptchaeJ 1Zend_Captcha_ImageeI 3Zend_Captcha_FigleteH 9Zend_Captcha_ExceptioneG /Zend_Captcha_DumbeF /Zend_Captcha_BaseeE !Zend_CacheeD =Zend_Cache_Frontend_PageeC AZend_Cache_Frontend_Outpute!B EZend_Cache_Frontend_FunctioneA =Zend_Cache_Frontend_Filee@ ?Zend_Cache_Frontend_Classe? 5Zend_Cache_Exceptione> +Zend_Cache_Coree= 1Zend_Cache_Backende$< KZend_Cache_Backend_ZendPlatforme; ?Zend_Cache_Backend_Xcachee!: EZend_Cache_Backend_TwoLevelse9 ;Zend_Cache_Backend_Teste8 ?Zend_Cache_Backend_Sqlitee!7 EZend_Cache_Backend_Memcachede6 ;Zend_Cache_Backend_Filee5 9Zend_Cache_Backend_Apce4 Zend_Authe3 ?Zend_Auth_Storage_Sessione$2 KZend_Auth_Storage_NonPersistente 1 CZend_Auth_Storage_Exceptione0 -Zend_Auth_Resulte/ 3Zend_Auth_Exceptione. =Zend_Auth_Adapter_OpenIde- 9Zend_Auth_Adapter_Ldape, AZend_Auth_Adapter_InfoCarde+ 9Zend_Auth_Adapter_Httpe)* UZend_Auth_Adapter_Http_Resolver_Filee.) _Zend_Auth_Adapter_Http_Resolver_Exceptione ( CZend_Auth_Adapter_Exceptione' =Zend_Auth_Adapter_Digeste& ?Zend_Auth_Adapter_DbTablee% ?Zend_Amf_Value_TraitsInfoe-$ ]Zend_Amf_Value_Messaging_RemotingMessagee*# WZend_Amf_Value_Messaging_ErrorMessagee," [Zend_Amf_Value_Messaging_CommandMessagee*! WZend_Amf_Value_Messaging_AsyncMessagee0  cZend_Amf_Value_Messaging_AcknowledgeMessagee- ]Zend_Amf_Value_Messaging_AbstractMessagee! EZend_Amf_Value_MessageHeadere AZend_Amf_Value_MessageBodye =Zend_Amf_Value_ByteArraye AZend_Amf_Util_BinaryStreame +Zend_Amf_Servere ?Zend_Amf_Server_Exceptione /Zend_Amf_Responsee 9Zend_Amf_Response_Httpe -Zend_Amf_Requeste 7Zend_Amf_Request_Httpe ?Zend_Amf_Parse_TypeLoadere ?Zend_Amf_Parse_Serializere  CZend_Amf_Parse_OutputStreame AZend_Amf_Parse_InputStreame  CZend_Amf_Parse_Deserializere# IZend_Amf_Parse_Amf3_Serializere% MZend_Amf_Parse_Amf3_Deserializere# IZend_Amf_Parse_Amf0_Serializere% MZend_Amf_Parse_Amf0_Deserializere 1Zend_Amf_Exceptione
 1Zend_Amf_Constantse	 Zend_Acle 'Zend_Acl_Rolee   i  ]3g>d9|`N-X9




h
H
&
					q	X	7	 j?b>$v`P=&
vI`2i>j=d<                 'Z QZend_Dojo_Form_Element_TimeTextBoxe#Y IZend_Dojo_Form_Element_TextBoxe$X KZend_Dojo_Form_Element_Textareae(W SZend_Dojo_Form_Element_SubmitButtone"V GZend_Dojo_Form_Element_Slidere'U QZend_Dojo_Form_Element_RadioButtone+T YZend_Dojo_Form_Element_PasswordTextBoxe)S UZend_Dojo_Form_Element_NumberTextBoxe)R UZend_Dojo_Form_Element_NumberSpinnere,Q [Zend_Dojo_Form_Element_HorizontalSlidere+P YZend_Dojo_Form_Element_FilteringSelecte"O GZend_Dojo_Form_Element_Editore&N OZend_Dojo_Form_Element_DijitMultie!M EZend_Dojo_Form_Element_Dijite'L QZend_Dojo_Form_Element_DateTextBoxe+K YZend_Dojo_Form_Element_CurrencyTextBoxe$J KZend_Dojo_Form_Element_ComboBoxe$I KZend_Dojo_Form_Element_CheckBoxe"H GZend_Dojo_Form_Element_Buttone G CZend_Dojo_Form_DisplayGroupe*F WZend_Dojo_Form_Decorator_TabContainere,E [Zend_Dojo_Form_Decorator_StackContainere,D [Zend_Dojo_Form_Decorator_SplitContainere'C QZend_Dojo_Form_Decorator_DijitForme*B WZend_Dojo_Form_Decorator_DijitElemente,A [Zend_Dojo_Form_Decorator_DijitContainere)@ UZend_Dojo_Form_Decorator_ContentPanee-? ]Zend_Dojo_Form_Decorator_BorderContainere+> YZend_Dojo_Form_Decorator_AccordionPanee0= cZend_Dojo_Form_Decorator_AccordionContainere< 3Zend_Dojo_Exceptione; )Zend_Dojo_Datae: !Zend_Debuge9 Zend_Dbe8 'Zend_Db_Tablee7 5Zend_Db_Table_Selecte#6 IZend_Db_Table_Select_Exceptione5 5Zend_Db_Table_Rowsete#4 IZend_Db_Table_Rowset_Exceptione"3 GZend_Db_Table_Rowset_Abstracte2 /Zend_Db_Table_Rowe 1 CZend_Db_Table_Row_Exceptione0 AZend_Db_Table_Row_Abstracte/ ;Zend_Db_Table_Exceptione. 9Zend_Db_Table_Abstracte- /Zend_Db_Statemente, 7Zend_Db_Statement_Pdoe+ ?Zend_Db_Statement_Pdo_Ibme* =Zend_Db_Statement_Oraclee') QZend_Db_Statement_Oracle_Exceptione( =Zend_Db_Statement_Mysqlie'' QZend_Db_Statement_Mysqli_Exceptione & CZend_Db_Statement_Exceptione% 7Zend_Db_Statement_Db2e$$ KZend_Db_Statement_Db2_Exceptione# )Zend_Db_Selecte" =Zend_Db_Select_Exceptione! -Zend_Db_Profilere  9Zend_Db_Profiler_Querye =Zend_Db_Profiler_Firebuge AZend_Db_Profiler_Exceptione %Zend_Db_Expre /Zend_Db_Exceptione AZend_Db_Adapter_Pdo_Sqlitee ?Zend_Db_Adapter_Pdo_Pgsqle ;Zend_Db_Adapter_Pdo_Ocie ?Zend_Db_Adapter_Pdo_Mysqle ?Zend_Db_Adapter_Pdo_Mssqle ;Zend_Db_Adapter_Pdo_Ibme  CZend_Db_Adapter_Pdo_Ibm_Idse  CZend_Db_Adapter_Pdo_Ibm_Db2e! EZend_Db_Adapter_Pdo_Abstracte 9Zend_Db_Adapter_Oraclee% MZend_Db_Adapter_Oracle_Exceptione 9Zend_Db_Adapter_Mysqlie% MZend_Db_Adapter_Mysqli_Exceptione ?Zend_Db_Adapter_Exceptione 3Zend_Db_Adapter_Db2e" GZend_Db_Adapter_Db2_Exceptione =Zend_Db_Adapter_Abstracte
 Zend_Datee	 3Zend_Date_Exceptione 5Zend_Date_DateObjecte -Zend_Date_Citiese 'Zend_Currencye ;Zend_Currency_Exceptione! EZend_Controller_Router_Routee( SZend_Controller_Router_Route_Statice' QZend_Controller_Router_Route_Regexe( SZend_Controller_Router_Route_Modulee*  WZend_Controller_Router_Route_Hostnamee' QZend_Controller_Router_Route_Chaine*~ WZend_Controller_Router_Route_Abstracte#} IZend_Controller_Router_Rewritee%| MZend_Controller_Router_Exceptione${ KZend_Controller_Router_Abstracte*z WZend_Controller_Response_HttpTestCasee"y GZend_Controller_Response_Httpe'x QZend_Controller_Response_Exceptione!w EZend_Controller_Response_Clie&v OZend_Controller_Response_Abstracte#u IZend_Controller_Request_Simplee)t UZend_Controller_Request_HttpTestCasee!s EZend_Controller_Request_Httpe&r OZend_Controller_Request_Exceptione   j  kJsL"yL)X,U(




[
+						{	d	I	2	qP3Z?%zZ7gE&`7a3rM$ gB!                                     D =Zend_Form_Decorator_FormeC =Zend_Form_Decorator_Filee!B EZend_Form_Decorator_Fieldsete"A GZend_Form_Decorator_Exceptione@ AZend_Form_Decorator_Errorse$? KZend_Form_Decorator_DtDdWrappere$> KZend_Form_Decorator_Descriptione = CZend_Form_Decorator_Captchae%< MZend_Form_Decorator_Captcha_Worde!; EZend_Form_Decorator_Callbacke!: EZend_Form_Decorator_Abstracte9 #Zend_Filtere+8 YZend_Filter_Word_UnderscoreToSeparatore&7 OZend_Filter_Word_UnderscoreToDashe+6 YZend_Filter_Word_UnderscoreToCamelCasee*5 WZend_Filter_Word_SeparatorToSeparatore%4 MZend_Filter_Word_SeparatorToDashe*3 WZend_Filter_Word_SeparatorToCamelCasee(2 SZend_Filter_Word_Separator_Abstracte&1 OZend_Filter_Word_DashToUnderscoree%0 MZend_Filter_Word_DashToSeparatore%/ MZend_Filter_Word_DashToCamelCasee+. YZend_Filter_Word_CamelCaseToUnderscoree*- WZend_Filter_Word_CamelCaseToSeparatore%, MZend_Filter_Word_CamelCaseToDashe+ 7Zend_Filter_StripTagse* ?Zend_Filter_StripNewlinese) 9Zend_Filter_StringTrime( ?Zend_Filter_StringToUppere' ?Zend_Filter_StringToLowere& 5Zend_Filter_RealPathe% ;Zend_Filter_PregReplacee$ +Zend_Filter_Inte# /Zend_Filter_Inpute" 7Zend_Filter_Inflectore! =Zend_Filter_HtmlEntitiese  AZend_Filter_File_UpperCasee ;Zend_Filter_File_Renamee AZend_Filter_File_LowerCasee 7Zend_Filter_Exceptione +Zend_Filter_Dire 1Zend_Filter_Digitse 5Zend_Filter_BaseNamee /Zend_Filter_Alphae /Zend_Filter_Alnume 1Zend_File_Transfere! EZend_File_Transfer_Exceptione$ KZend_File_Transfer_Adapter_Httpe( SZend_File_Transfer_Adapter_Abstracte Zend_Feede 'Zend_Feed_Rsse 3Zend_Feed_Exceptione 3Zend_Feed_Entry_Rsse 5Zend_Feed_Entry_Atome =Zend_Feed_Entry_Abstracte /Zend_Feed_Elemente /Zend_Feed_Buildere =Zend_Feed_Builder_Headere$
 KZend_Feed_Builder_Header_Itunese 	 CZend_Feed_Builder_Exceptione ;Zend_Feed_Builder_Entrye )Zend_Feed_Atome 1Zend_Feed_Abstracte )Zend_Exceptione )Zend_Dom_Querye 7Zend_Dom_Query_Resulte =Zend_Dom_Query_Css2Xpathe 1Zend_Dom_Exceptione  Zend_Dojoe) UZend_Dojo_View_Helper_VerticalSlidere,~ [Zend_Dojo_View_Helper_ValidationTextBoxe&} OZend_Dojo_View_Helper_TimeTextBoxe"| GZend_Dojo_View_Helper_TextBoxe#{ IZend_Dojo_View_Helper_Textareae'z QZend_Dojo_View_Helper_TabContainere'y QZend_Dojo_View_Helper_SubmitButtone)x UZend_Dojo_View_Helper_StackContainere)w UZend_Dojo_View_Helper_SplitContainere!v EZend_Dojo_View_Helper_Slidere)u UZend_Dojo_View_Helper_SimpleTextareae&t OZend_Dojo_View_Helper_RadioButtone*s WZend_Dojo_View_Helper_PasswordTextBoxe(r SZend_Dojo_View_Helper_NumberTextBoxe(q SZend_Dojo_View_Helper_NumberSpinnere+p YZend_Dojo_View_Helper_HorizontalSlidereo AZend_Dojo_View_Helper_Forme*n WZend_Dojo_View_Helper_FilteringSelecte!m EZend_Dojo_View_Helper_Editorel AZend_Dojo_View_Helper_Dojoe)k UZend_Dojo_View_Helper_Dojo_Containere)j UZend_Dojo_View_Helper_DijitContainere i CZend_Dojo_View_Helper_Dijite&h OZend_Dojo_View_Helper_DateTextBoxe*g WZend_Dojo_View_Helper_CurrencyTextBoxe&f OZend_Dojo_View_Helper_ContentPanee#e IZend_Dojo_View_Helper_ComboBoxe#d IZend_Dojo_View_Helper_CheckBoxe!c EZend_Dojo_View_Helper_Buttone*b WZend_Dojo_View_Helper_BorderContainere(a SZend_Dojo_View_Helper_AccordionPanee-` ]Zend_Dojo_View_Helper_AccordionContainere_ =Zend_Dojo_View_Exceptione^ )Zend_Dojo_Forme] 9Zend_Dojo_Form_SubForme*\ WZend_Dojo_Form_Element_VerticalSlidere-[ ]Zend_Dojo_Form_Element_ValidationTextBoxe   f  jHlI%^8tQ1|`9	



y
P
#					[	0	
tL!~X1W2`Dg6	}S"lEmB                 +* YZend_Gdata_Calendar_Extension_Selectede+) YZend_Gdata_Calendar_Extension_QuickAdde'( QZend_Gdata_Calendar_Extension_Linke)' UZend_Gdata_Calendar_Extension_Hiddene(& SZend_Gdata_Calendar_Extension_Colore.% _Zend_Gdata_Calendar_Extension_AccessLevele#$ IZend_Gdata_Calendar_EventQuerye"# GZend_Gdata_Calendar_EventFeede#" IZend_Gdata_Calendar_EventEntrye! -Zend_Gdata_Bookse!  EZend_Gdata_Books_VolumeQuerye  CZend_Gdata_Books_VolumeFeede! EZend_Gdata_Books_VolumeEntrye+ YZend_Gdata_Books_Extension_Viewabilitye- ]Zend_Gdata_Books_Extension_ThumbnailLinke& OZend_Gdata_Books_Extension_Reviewe+ YZend_Gdata_Books_Extension_PreviewLinke( SZend_Gdata_Books_Extension_InfoLinke- ]Zend_Gdata_Books_Extension_Embeddabilitye) UZend_Gdata_Books_Extension_BooksLinke- ]Zend_Gdata_Books_Extension_BooksCategorye. _Zend_Gdata_Books_Extension_AnnotationLinke$ KZend_Gdata_Books_CollectionFeede% MZend_Gdata_Books_CollectionEntrye 1Zend_Gdata_AuthSube )Zend_Gdata_Appe$ KZend_Gdata_App_VersionExceptione 3Zend_Gdata_App_Utile# IZend_Gdata_App_MediaFileSourcee ?Zend_Gdata_App_MediaEntrye2 gZend_Gdata_App_LoggingHttpClientAdapterSockete AZend_Gdata_App_IOExceptione,
 [Zend_Gdata_App_InvalidArgumentExceptione!	 EZend_Gdata_App_HttpExceptione$ KZend_Gdata_App_FeedSourceParente# IZend_Gdata_App_FeedEntryParente 3Zend_Gdata_App_Feede =Zend_Gdata_App_Extensione! EZend_Gdata_App_Extension_Urie% MZend_Gdata_App_Extension_Updatede# IZend_Gdata_App_Extension_Titlee" GZend_Gdata_App_Extension_Texte%  MZend_Gdata_App_Extension_Summarye& OZend_Gdata_App_Extension_Subtitlee$~ KZend_Gdata_App_Extension_Sourcee$} KZend_Gdata_App_Extension_Rightse'| QZend_Gdata_App_Extension_Publishede${ KZend_Gdata_App_Extension_Persone"z GZend_Gdata_App_Extension_Namee"y GZend_Gdata_App_Extension_Logoe"x GZend_Gdata_App_Extension_Linke w CZend_Gdata_App_Extension_Ide"v GZend_Gdata_App_Extension_Icone'u QZend_Gdata_App_Extension_Generatore#t IZend_Gdata_App_Extension_Emaile%s MZend_Gdata_App_Extension_Elemente$r KZend_Gdata_App_Extension_Editede#q IZend_Gdata_App_Extension_Drafte%p MZend_Gdata_App_Extension_Controle)o UZend_Gdata_App_Extension_Contributore%n MZend_Gdata_App_Extension_Contente&m OZend_Gdata_App_Extension_Categorye$l KZend_Gdata_App_Extension_Authorek =Zend_Gdata_App_Exceptionej 5Zend_Gdata_App_Entrye,i [Zend_Gdata_App_CaptchaRequiredExceptione#h IZend_Gdata_App_BaseMediaSourceeg 3Zend_Gdata_App_Basee*f WZend_Gdata_App_BadMethodCallExceptione!e EZend_Gdata_App_AuthExceptioned Zend_Formec /Zend_Form_SubFormeb 3Zend_Form_Exceptionea /Zend_Form_Elemente` ;Zend_Form_Element_Xhtmle_ AZend_Form_Element_Textareae^ 9Zend_Form_Element_Texte] =Zend_Form_Element_Submite\ =Zend_Form_Element_Selecte[ ;Zend_Form_Element_ReseteZ ;Zend_Form_Element_RadioeY AZend_Form_Element_Passworde"X GZend_Form_Element_Multiselecte$W KZend_Form_Element_MultiCheckboxeV ;Zend_Form_Element_MultieU ;Zend_Form_Element_ImageeT =Zend_Form_Element_HiddeneS 9Zend_Form_Element_HasheR 9Zend_Form_Element_Filee Q CZend_Form_Element_ExceptioneP AZend_Form_Element_CheckboxeO ?Zend_Form_Element_CaptchaeN =Zend_Form_Element_ButtoneM 9Zend_Form_DisplayGroupe#L IZend_Form_Decorator_ViewScripte#K IZend_Form_Decorator_ViewHelpere(J SZend_Form_Decorator_PrepareElementseI ?Zend_Form_Decorator_LabeleH ?Zend_Form_Decorator_Imagee G CZend_Form_Decorator_HtmlTage#F IZend_Form_Decorator_FormErrorse%E MZend_Form_Decorator_FormElementse   c  c=lT$a0qS:pH



|
U
8
 				}	T	&	 f;nF$\4V-c<rS"}W2W;$         # IZend_Gdata_Health_ProfileEntrye$ KZend_Gdata_Health_Extension_Ccre )Zend_Gdata_Geoe
 3Zend_Gdata_Geo_Feede$	 KZend_Gdata_Geo_Extension_GmlPose& OZend_Gdata_Geo_Extension_GmlPointe) UZend_Gdata_Geo_Extension_GeoRssWheree 5Zend_Gdata_Geo_Entrye -Zend_Gdata_Gbasee" GZend_Gdata_Gbase_SnippetQuerye! EZend_Gdata_Gbase_SnippetFeede" GZend_Gdata_Gbase_SnippetEntrye 9Zend_Gdata_Gbase_Querye  AZend_Gdata_Gbase_ItemQuerye ?Zend_Gdata_Gbase_ItemFeede~ AZend_Gdata_Gbase_ItemEntrye} 7Zend_Gdata_Gbase_Feede-| ]Zend_Gdata_Gbase_Extension_BaseAttributee{ 9Zend_Gdata_Gbase_Entryez -Zend_Gdata_Gappsey AZend_Gdata_Gapps_UserQueryex ?Zend_Gdata_Gapps_UserFeedew AZend_Gdata_Gapps_UserEntrye&v OZend_Gdata_Gapps_ServiceExceptioneu 9Zend_Gdata_Gapps_Querye#t IZend_Gdata_Gapps_NicknameQuerye"s GZend_Gdata_Gapps_NicknameFeede#r IZend_Gdata_Gapps_NicknameEntrye%q MZend_Gdata_Gapps_Extension_Quotae(p SZend_Gdata_Gapps_Extension_Nicknamee$o KZend_Gdata_Gapps_Extension_Namee%n MZend_Gdata_Gapps_Extension_Logine)m UZend_Gdata_Gapps_Extension_EmailListel 9Zend_Gdata_Gapps_Errore-k ]Zend_Gdata_Gapps_EmailListRecipientQuerye,j [Zend_Gdata_Gapps_EmailListRecipientFeede-i ]Zend_Gdata_Gapps_EmailListRecipientEntrye$h KZend_Gdata_Gapps_EmailListQuerye#g IZend_Gdata_Gapps_EmailListFeede$f KZend_Gdata_Gapps_EmailListEntryee +Zend_Gdata_Feeded 5Zend_Gdata_Extensionec =Zend_Gdata_Extension_Whoeb AZend_Gdata_Extension_Whereea ?Zend_Gdata_Extension_Whene$` KZend_Gdata_Extension_Visibilitye&_ OZend_Gdata_Extension_Transparencye"^ GZend_Gdata_Extension_Remindere-] ]Zend_Gdata_Extension_RecurrenceExceptione$\ KZend_Gdata_Extension_Recurrencee [ CZend_Gdata_Extension_Ratinge'Z QZend_Gdata_Extension_OriginalEvente0Y cZend_Gdata_Extension_OpenSearchTotalResultse.X _Zend_Gdata_Extension_OpenSearchStartIndexe0W cZend_Gdata_Extension_OpenSearchItemsPerPagee"V GZend_Gdata_Extension_FeedLinke*U WZend_Gdata_Extension_ExtendedPropertye%T MZend_Gdata_Extension_EventStatuse#S IZend_Gdata_Extension_EntryLinke"R GZend_Gdata_Extension_Commentse&Q OZend_Gdata_Extension_AttendeeTypee(P SZend_Gdata_Extension_AttendeeStatuseO +Zend_Gdata_ExifeN 5Zend_Gdata_Exif_Feede#M IZend_Gdata_Exif_Extension_Timee#L IZend_Gdata_Exif_Extension_Tagse$K KZend_Gdata_Exif_Extension_Modele#J IZend_Gdata_Exif_Extension_Makee"I GZend_Gdata_Exif_Extension_Isoe,H [Zend_Gdata_Exif_Extension_ImageUniqueIde$G KZend_Gdata_Exif_Extension_FStope*F WZend_Gdata_Exif_Extension_FocalLengthe$E KZend_Gdata_Exif_Extension_Flashe'D QZend_Gdata_Exif_Extension_Exposuree'C QZend_Gdata_Exif_Extension_DistanceeB 7Zend_Gdata_Exif_EntryeA -Zend_Gdata_Entrye@ 7Zend_Gdata_DublinCoree*? WZend_Gdata_DublinCore_Extension_Titlee,> [Zend_Gdata_DublinCore_Extension_Subjecte+= YZend_Gdata_DublinCore_Extension_Rightse.< _Zend_Gdata_DublinCore_Extension_Publishere-; ]Zend_Gdata_DublinCore_Extension_Languagee/: aZend_Gdata_DublinCore_Extension_Identifiere+9 YZend_Gdata_DublinCore_Extension_Formate08 cZend_Gdata_DublinCore_Extension_Descriptione)7 UZend_Gdata_DublinCore_Extension_Datee,6 [Zend_Gdata_DublinCore_Extension_Creatore5 +Zend_Gdata_Docse4 7Zend_Gdata_Docs_Querye%3 MZend_Gdata_Docs_DocumentListFeede&2 OZend_Gdata_Docs_DocumentListEntrye1 9Zend_Gdata_ClientLogine0 3Zend_Gdata_Calendare!/ EZend_Gdata_Calendar_ListFeede". GZend_Gdata_Calendar_ListEntrye-- ]Zend_Gdata_Calendar_Extension_WebContente+, YZend_Gdata_Calendar_Extension_Timezonee9+ uZend_Gdata_Calendar_Extension_SendEventNotificationse   \  eK_/l?|OpL' 


{
N
#				j	=	L f=a7_;!].mD\<tM               'i QZend_Gdata_YouTube_Extension_Bookse%h MZend_Gdata_YouTube_Extension_Agee)g UZend_Gdata_YouTube_Extension_AboutMee#f IZend_Gdata_YouTube_ContactFeede$e KZend_Gdata_YouTube_ContactEntrye#d IZend_Gdata_YouTube_CommentFeede$c KZend_Gdata_YouTube_CommentEntrye$b KZend_Gdata_YouTube_ActivityFeede%a MZend_Gdata_YouTube_ActivityEntrye` ;Zend_Gdata_Spreadsheetse*_ WZend_Gdata_Spreadsheets_WorksheetFeede+^ YZend_Gdata_Spreadsheets_WorksheetEntrye,] [Zend_Gdata_Spreadsheets_SpreadsheetFeede-\ ]Zend_Gdata_Spreadsheets_SpreadsheetEntrye&[ OZend_Gdata_Spreadsheets_ListQuerye%Z MZend_Gdata_Spreadsheets_ListFeede&Y OZend_Gdata_Spreadsheets_ListEntrye/X aZend_Gdata_Spreadsheets_Extension_RowCounte-W ]Zend_Gdata_Spreadsheets_Extension_Custome/V aZend_Gdata_Spreadsheets_Extension_ColCounte+U YZend_Gdata_Spreadsheets_Extension_Celle*T WZend_Gdata_Spreadsheets_DocumentQuerye&S OZend_Gdata_Spreadsheets_CellQuerye%R MZend_Gdata_Spreadsheets_CellFeede&Q OZend_Gdata_Spreadsheets_CellEntryeP -Zend_Gdata_QueryeO /Zend_Gdata_Photose N CZend_Gdata_Photos_UserQueryeM AZend_Gdata_Photos_UserFeede L CZend_Gdata_Photos_UserEntryeK AZend_Gdata_Photos_TagEntrye!J EZend_Gdata_Photos_PhotoQuerye I CZend_Gdata_Photos_PhotoFeede!H EZend_Gdata_Photos_PhotoEntrye&G OZend_Gdata_Photos_Extension_Widthe'F QZend_Gdata_Photos_Extension_Weighte(E SZend_Gdata_Photos_Extension_Versione%D MZend_Gdata_Photos_Extension_Usere*C WZend_Gdata_Photos_Extension_Timestampe*B WZend_Gdata_Photos_Extension_Thumbnaile%A MZend_Gdata_Photos_Extension_Sizee)@ UZend_Gdata_Photos_Extension_Rotatione+? YZend_Gdata_Photos_Extension_QuotaLimite-> ]Zend_Gdata_Photos_Extension_QuotaCurrente)= UZend_Gdata_Photos_Extension_Positione(< SZend_Gdata_Photos_Extension_PhotoIde3; iZend_Gdata_Photos_Extension_NumPhotosRemaininge*: WZend_Gdata_Photos_Extension_NumPhotose)9 UZend_Gdata_Photos_Extension_Nicknamee%8 MZend_Gdata_Photos_Extension_Namee27 gZend_Gdata_Photos_Extension_MaxPhotosPerAlbume)6 UZend_Gdata_Photos_Extension_Locatione#5 IZend_Gdata_Photos_Extension_Ide'4 QZend_Gdata_Photos_Extension_Heighte23 gZend_Gdata_Photos_Extension_CommentingEnablede-2 ]Zend_Gdata_Photos_Extension_CommentCounte'1 QZend_Gdata_Photos_Extension_Cliente)0 UZend_Gdata_Photos_Extension_Checksume*/ WZend_Gdata_Photos_Extension_BytesUsede(. SZend_Gdata_Photos_Extension_AlbumIde'- QZend_Gdata_Photos_Extension_Accesse#, IZend_Gdata_Photos_CommentEntrye!+ EZend_Gdata_Photos_AlbumQuerye * CZend_Gdata_Photos_AlbumFeede!) EZend_Gdata_Photos_AlbumEntrye( AZend_Gdata_MediaMimeStreame' -Zend_Gdata_Mediae& 7Zend_Gdata_Media_Feede*% WZend_Gdata_Media_Extension_MediaTitlee.$ _Zend_Gdata_Media_Extension_MediaThumbnaile)# UZend_Gdata_Media_Extension_MediaTexte0" cZend_Gdata_Media_Extension_MediaRestrictione+! YZend_Gdata_Media_Extension_MediaRatinge+  YZend_Gdata_Media_Extension_MediaPlayere- ]Zend_Gdata_Media_Extension_MediaKeywordse) UZend_Gdata_Media_Extension_MediaHashe* WZend_Gdata_Media_Extension_MediaGroupe0 cZend_Gdata_Media_Extension_MediaDescriptione+ YZend_Gdata_Media_Extension_MediaCredite. _Zend_Gdata_Media_Extension_MediaCopyrighte, [Zend_Gdata_Media_Extension_MediaContente- ]Zend_Gdata_Media_Extension_MediaCategorye 9Zend_Gdata_Media_Entrye AZend_Gdata_Kind_EventEntrye 7Zend_Gdata_HttpCliente* WZend_Gdata_HttpAdapterStreamingSockete) UZend_Gdata_HttpAdapterStreamingProxye /Zend_Gdata_Healthe ;Zend_Gdata_Health_Querye& OZend_Gdata_Health_ProfileListFeede' QZend_Gdata_Health_ProfileListEntrye" GZend_Gdata_Health_ProfileFeede   [  wFb4
yId4uK



c
3
				S	-	[.^8
jG.tM}D'
tR!T* q:                        )D UZend_InfoCard_Xml_Security_Transforme4C kZend_InfoCard_Xml_Security_Transform_XmlExcC14Ne3B iZend_InfoCard_Xml_Security_Transform_Exceptione<A {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignaturee)@ UZend_InfoCard_Xml_Security_Exceptione? ?Zend_InfoCard_Xml_KeyInfoe&> OZend_InfoCard_Xml_KeyInfo_XmlDSige&= OZend_InfoCard_Xml_KeyInfo_Defaulte'< QZend_InfoCard_Xml_KeyInfo_Abstracte ; CZend_InfoCard_Xml_Exceptione#: IZend_InfoCard_Xml_EncryptedKeye$9 KZend_InfoCard_Xml_EncryptedDatae+8 YZend_InfoCard_Xml_EncryptedData_XmlEnce-7 ]Zend_InfoCard_Xml_EncryptedData_Abstracte6 ?Zend_InfoCard_Xml_Elemente 5 CZend_InfoCard_Xml_Assertione%4 MZend_InfoCard_Xml_Assertion_Samle3 ;Zend_InfoCard_Exceptione%2 MZend_InfoCard_Exception_Abstracte1 5Zend_InfoCard_Claimse0 5Zend_InfoCard_Ciphere5/ mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbce5. mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbce4- kZend_InfoCard_Cipher_Symmetric_Adapter_Abstracte), UZend_InfoCard_Cipher_Pki_Adapter_Rsae.+ _Zend_InfoCard_Cipher_Pki_Adapter_Abstracte#* IZend_InfoCard_Cipher_Exceptione$) KZend_InfoCard_Adapter_Exceptione"( GZend_InfoCard_Adapter_Defaulte' 1Zend_Http_Responsee& 3Zend_Http_Exceptione% 3Zend_Http_CookieJare$ -Zend_Http_Cookiee# -Zend_Http_Cliente" AZend_Http_Client_Exceptione"! GZend_Http_Client_Adapter_Teste$  KZend_Http_Client_Adapter_Sockete# IZend_Http_Client_Adapter_Proxye' QZend_Http_Client_Adapter_Exceptione !Zend_Gdatae 1Zend_Gdata_YouTubee" GZend_Gdata_YouTube_VideoQuerye! EZend_Gdata_YouTube_VideoFeede" GZend_Gdata_YouTube_VideoEntrye( SZend_Gdata_YouTube_UserProfileEntrye( SZend_Gdata_YouTube_SubscriptionFeede) UZend_Gdata_YouTube_SubscriptionEntrye) UZend_Gdata_YouTube_PlaylistVideoFeede* WZend_Gdata_YouTube_PlaylistVideoEntrye( SZend_Gdata_YouTube_PlaylistListFeede) UZend_Gdata_YouTube_PlaylistListEntrye" GZend_Gdata_YouTube_MediaEntrye! EZend_Gdata_YouTube_InboxFeede" GZend_Gdata_YouTube_InboxEntrye) UZend_Gdata_YouTube_Extension_VideoIde* WZend_Gdata_YouTube_Extension_Usernamee* WZend_Gdata_YouTube_Extension_Uploadede' QZend_Gdata_YouTube_Extension_Tokene(
 SZend_Gdata_YouTube_Extension_Statuse,	 [Zend_Gdata_YouTube_Extension_Statisticse' QZend_Gdata_YouTube_Extension_Statee( SZend_Gdata_YouTube_Extension_Schoole- ]Zend_Gdata_YouTube_Extension_ReleaseDatee. _Zend_Gdata_YouTube_Extension_Relationshipe* WZend_Gdata_YouTube_Extension_Recordede& OZend_Gdata_YouTube_Extension_Racye- ]Zend_Gdata_YouTube_Extension_QueryStringe) UZend_Gdata_YouTube_Extension_Privatee*  WZend_Gdata_YouTube_Extension_Positione/ aZend_Gdata_YouTube_Extension_PlaylistTitlee,~ [Zend_Gdata_YouTube_Extension_PlaylistIde,} [Zend_Gdata_YouTube_Extension_Occupatione)| UZend_Gdata_YouTube_Extension_NoEmbede'{ QZend_Gdata_YouTube_Extension_Musice(z SZend_Gdata_YouTube_Extension_Moviese-y ]Zend_Gdata_YouTube_Extension_MediaRatinge,x [Zend_Gdata_YouTube_Extension_MediaGroupe-w ]Zend_Gdata_YouTube_Extension_MediaCredite.v _Zend_Gdata_YouTube_Extension_MediaContente*u WZend_Gdata_YouTube_Extension_Locatione&t OZend_Gdata_YouTube_Extension_Linke*s WZend_Gdata_YouTube_Extension_LastNamee*r WZend_Gdata_YouTube_Extension_Hometowne)q UZend_Gdata_YouTube_Extension_Hobbiese(p SZend_Gdata_YouTube_Extension_Gendere+o YZend_Gdata_YouTube_Extension_FirstNamee*n WZend_Gdata_YouTube_Extension_Duratione-m ]Zend_Gdata_YouTube_Extension_Descriptione+l YZend_Gdata_YouTube_Extension_CountHinte)k UZend_Gdata_YouTube_Extension_Controle)j UZend_Gdata_YouTube_Extension_Companye   z& |bF'wU0iU9'	kM2eD!





g
J
+
						n	I	)		fCnO0{ZH*rN1z_@sR8oJ$iO8&                                          > Zend_Mimee= )Zend_Mime_Parte< /Zend_Mime_Messagee; 3Zend_Mime_Exceptione: -Zend_Mime_Decodee9 #Zend_Memorye8 /Zend_Memory_Valuee7 3Zend_Memory_Managere6 7Zend_Memory_Exceptione5 7Zend_Memory_Containere"4 GZend_Memory_Container_Movablee!3 EZend_Memory_Container_Lockede!2 EZend_Memory_AccessControllere1 3Zend_Measure_Weighte0 3Zend_Measure_Volumee%/ MZend_Measure_Viscosity_Kinematice#. IZend_Measure_Viscosity_Dynamice- 3Zend_Measure_Torquee, /Zend_Measure_Timee+ =Zend_Measure_Temperaturee* 1Zend_Measure_Speede) 7Zend_Measure_Pressuree( 1Zend_Measure_Powere' 3Zend_Measure_Numbere& 9Zend_Measure_Lightnesse% 3Zend_Measure_Lengthe$ ?Zend_Measure_Illuminatione# 9Zend_Measure_Frequencye" 1Zend_Measure_Forcee! =Zend_Measure_Flow_Volumee  9Zend_Measure_Flow_Molee 9Zend_Measure_Flow_Masse 9Zend_Measure_Exceptione 3Zend_Measure_Energye 5Zend_Measure_Densitye 5Zend_Measure_Currente  CZend_Measure_Cooking_Weighte  CZend_Measure_Cooking_Volumee =Zend_Measure_Capacitancee 3Zend_Measure_Binarye /Zend_Measure_Areae 1Zend_Measure_Anglee ?Zend_Measure_Acceleratione 7Zend_Measure_Abstracte Zend_Maile =Zend_Mail_Transport_Smtpe! EZend_Mail_Transport_Sendmaile" GZend_Mail_Transport_Exceptione! EZend_Mail_Transport_Abstracte /Zend_Mail_Storagee' QZend_Mail_Storage_Writable_Maildire 9Zend_Mail_Storage_Pop3e
 9Zend_Mail_Storage_Mboxe	 ?Zend_Mail_Storage_Maildire 9Zend_Mail_Storage_Imape =Zend_Mail_Storage_Foldere" GZend_Mail_Storage_Folder_Mboxe% MZend_Mail_Storage_Folder_Maildire  CZend_Mail_Storage_Exceptione AZend_Mail_Storage_Abstracte ;Zend_Mail_Protocol_Smtpe' QZend_Mail_Protocol_Smtp_Auth_Plaine'  QZend_Mail_Protocol_Smtp_Auth_Logine) UZend_Mail_Protocol_Smtp_Auth_Crammd5e~ ;Zend_Mail_Protocol_Pop3e} ;Zend_Mail_Protocol_Imape!| EZend_Mail_Protocol_Exceptione { CZend_Mail_Protocol_Abstractez )Zend_Mail_Partey 3Zend_Mail_Part_Fileex /Zend_Mail_Messageew 9Zend_Mail_Message_Fileev 3Zend_Mail_Exceptioneu Zend_Loget 9Zend_Log_Writer_Streames 5Zend_Log_Writer_Nuller 5Zend_Log_Writer_Mockeq ;Zend_Log_Writer_Firebugep 1Zend_Log_Writer_Dbeo =Zend_Log_Writer_Abstracten 9Zend_Log_Formatter_Xmlem ?Zend_Log_Formatter_Simpleel AZend_Log_Formatter_Firebugek =Zend_Log_Filter_Suppressej =Zend_Log_Filter_Priorityei ;Zend_Log_Filter_Messageeh 1Zend_Log_Exceptioneg #Zend_Localeef -Zend_Locale_Mathee =Zend_Locale_Math_PhpMathed AZend_Locale_Math_Exceptionec 1Zend_Locale_Formateb 7Zend_Locale_Exceptionea -Zend_Locale_Datae!` EZend_Locale_Data_Translatione_ #Zend_Loadere^ =Zend_Loader_PluginLoadere'] QZend_Loader_PluginLoader_Exceptione\ 7Zend_Loader_Exceptione[ Zend_LdapeZ 3Zend_Ldap_ExceptioneY #Zend_LayouteX 7Zend_Layout_Exceptione)W UZend_Layout_Controller_Plugin_Layoute0V cZend_Layout_Controller_Action_Helper_LayouteU Zend_JsoneT -Zend_Json_ServereS 5Zend_Json_Server_Smde!R EZend_Json_Server_Smd_ServiceeQ ?Zend_Json_Server_Responsee#P IZend_Json_Server_Response_HttpeO =Zend_Json_Server_Requeste"N GZend_Json_Server_Request_HttpeM AZend_Json_Server_ExceptioneL 9Zend_Json_Server_ErroreK 9Zend_Json_Server_CacheeJ 3Zend_Json_ExceptioneI /Zend_Json_EncodereH /Zend_Json_DecodereG 'Zend_InfoCarde-F ]Zend_InfoCard_Xml_SecurityTokenReferenceeE AZend_InfoCard_Xml_Securitye   c  vS5}iDX*jE"bA




y
N
%
					\	<	!}[?V.
vFe.s:xB	U[7                                     ! ;Zend_Pdf_Resource_Imagee!  EZend_Pdf_Resource_Image_Tiffe  CZend_Pdf_Resource_Image_Pnge! EZend_Pdf_Resource_Image_Jpege 9Zend_Pdf_Resource_Fonte! EZend_Pdf_Resource_Font_Type0e" GZend_Pdf_Resource_Font_Simplee+ YZend_Pdf_Resource_Font_Simple_Standarde8 sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatse6 oZend_Pdf_Resource_Font_Simple_Standard_TimesRomane7 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalice; yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalice5 mZend_Pdf_Resource_Font_Simple_Standard_TimesBolde2 gZend_Pdf_Resource_Font_Simple_Standard_Symbole< {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueeA Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliquee9 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBolde5 mZend_Pdf_Resource_Font_Simple_Standard_Helveticae: wZend_Pdf_Resource_Font_Simple_Standard_CourierObliquee> Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliquee7 qZend_Pdf_Resource_Font_Simple_Standard_CourierBolde3 iZend_Pdf_Resource_Font_Simple_Standard_Couriere) UZend_Pdf_Resource_Font_Simple_Parsede2
 gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypee*	 WZend_Pdf_Resource_Font_FontDescriptore% MZend_Pdf_Resource_Font_Extractede# IZend_Pdf_Resource_Font_CidFonte, [Zend_Pdf_Resource_Font_CidFont_TrueTypee /Zend_Pdf_PhpArraye +Zend_Pdf_Parsere 9Zend_Pdf_Parser_Streame 'Zend_Pdf_Pagee )Zend_Pdf_Imagee  'Zend_Pdf_Fonte  CZend_Pdf_Filter_Compressione$~ KZend_Pdf_Filter_Compression_Lzwe&} OZend_Pdf_Filter_Compression_Flatee| =Zend_Pdf_Filter_AsciiHexe{ ;Zend_Pdf_Filter_Ascii85e"z GZend_Pdf_FileParserDataSourcee)y UZend_Pdf_FileParserDataSource_Stringe'x QZend_Pdf_FileParserDataSource_Fileew 3Zend_Pdf_FileParserev ?Zend_Pdf_FileParser_Imagee"u GZend_Pdf_FileParser_Image_Pnget =Zend_Pdf_FileParser_Fonte&s OZend_Pdf_FileParser_Font_OpenTypee/r aZend_Pdf_FileParser_Font_OpenType_TrueTypeeq 1Zend_Pdf_Exceptionep ;Zend_Pdf_ElementFactorye"o GZend_Pdf_ElementFactory_Proxyen -Zend_Pdf_Elementem ;Zend_Pdf_Element_Stringe#l IZend_Pdf_Element_String_Binaryek ;Zend_Pdf_Element_Streamej AZend_Pdf_Element_Referencee%i MZend_Pdf_Element_Reference_Tablee'h QZend_Pdf_Element_Reference_Contexteg ;Zend_Pdf_Element_Objecte#f IZend_Pdf_Element_Object_Streamee =Zend_Pdf_Element_Numericed 7Zend_Pdf_Element_Nullec 7Zend_Pdf_Element_Namee b CZend_Pdf_Element_Dictionaryea =Zend_Pdf_Element_Booleane` 9Zend_Pdf_Element_Arraye_ )Zend_Pdf_Colore^ 1Zend_Pdf_Color_Rgbe] 3Zend_Pdf_Color_Htmle\ =Zend_Pdf_Color_GrayScalee[ 3Zend_Pdf_Color_CmykeZ 'Zend_Pdf_CmapeY AZend_Pdf_Cmap_TrimmedTablee!X EZend_Pdf_Cmap_SegmentToDeltaeW AZend_Pdf_Cmap_ByteEncodinge&V OZend_Pdf_Cmap_ByteEncoding_StaticeU )Zend_Paginatore*T WZend_Paginator_ScrollingStyle_Slidinge*S WZend_Paginator_ScrollingStyle_Jumpinge*R WZend_Paginator_ScrollingStyle_Elastice&Q OZend_Paginator_ScrollingStyle_AlleP =Zend_Paginator_Exceptione O CZend_Paginator_Adapter_Nulle$N KZend_Paginator_Adapter_Iteratore)M UZend_Paginator_Adapter_DbTableSelecte$L KZend_Paginator_Adapter_DbSelecte!K EZend_Paginator_Adapter_ArrayeJ #Zend_OpenIdeI 5Zend_OpenId_ProvidereH ?Zend_OpenId_Provider_Usere&G OZend_OpenId_Provider_User_Sessione!F EZend_OpenId_Provider_Storagee&E OZend_OpenId_Provider_Storage_FileeD 7Zend_OpenId_ExtensioneC AZend_OpenId_Extension_SregeB 7Zend_OpenId_ExceptioneA 5Zend_OpenId_Consumere!@ EZend_OpenId_Consumer_Storagee&? OZend_OpenId_Consumer_Storage_Filee   X  gG.	|T3t[?bV	


l
B
			U	%yP'yGZa9Z,g9Id/                     )y UZend_Search_Lucene_Search_QueryTokene3x iZend_Search_Lucene_Search_QueryParserExceptione1w eZend_Search_Lucene_Search_QueryParserContexte*v WZend_Search_Lucene_Search_QueryParsere)u UZend_Search_Lucene_Search_QueryLexere't QZend_Search_Lucene_Search_QueryHite)s UZend_Search_Lucene_Search_QueryEntrye.r _Zend_Search_Lucene_Search_QueryEntry_Terme2q gZend_Search_Lucene_Search_QueryEntry_Subquerye0p cZend_Search_Lucene_Search_QueryEntry_Phrasee$o KZend_Search_Lucene_Search_Querye-n ]Zend_Search_Lucene_Search_Query_Wildcarde)m UZend_Search_Lucene_Search_Query_Terme*l WZend_Search_Lucene_Search_Query_Rangee+k YZend_Search_Lucene_Search_Query_Phrasee.j _Zend_Search_Lucene_Search_Query_MultiTerme2i gZend_Search_Lucene_Search_Query_Insignificante*h WZend_Search_Lucene_Search_Query_Fuzzye*g WZend_Search_Lucene_Search_Query_Emptye,f [Zend_Search_Lucene_Search_Query_Booleane:e wZend_Search_Lucene_Search_BooleanExpressionRecognizered =Zend_Search_Lucene_Proxye%c MZend_Search_Lucene_PriorityQueuee#b IZend_Search_Lucene_LockManagere$a KZend_Search_Lucene_Index_Writere&` OZend_Search_Lucene_Index_TermInfoe"_ GZend_Search_Lucene_Index_Terme+^ YZend_Search_Lucene_Index_SegmentWritere8] sZend_Search_Lucene_Index_SegmentWriter_StreamWritere:\ wZend_Search_Lucene_Index_SegmentWriter_DocumentWritere+[ YZend_Search_Lucene_Index_SegmentMergere6Z oZend_Search_Lucene_Index_SegmentInfoPriorityQueuee)Y UZend_Search_Lucene_Index_SegmentInfoe'X QZend_Search_Lucene_Index_FieldInfoe(W SZend_Search_Lucene_Index_DocsFiltere.V _Zend_Search_Lucene_Index_DictionaryLoadere!U EZend_Search_Lucene_FSMActioneT 9Zend_Search_Lucene_FSMeS =Zend_Search_Lucene_Fielde!R EZend_Search_Lucene_Exceptione Q CZend_Search_Lucene_Documente%P MZend_Search_Lucene_Document_Xlsxe%O MZend_Search_Lucene_Document_Pptxe(N SZend_Search_Lucene_Document_OpenXmle%M MZend_Search_Lucene_Document_Htmle*L WZend_Search_Lucene_Document_Exceptione%K MZend_Search_Lucene_Document_Docxe,J [Zend_Search_Lucene_Analysis_TokenFiltere6I oZend_Search_Lucene_Analysis_TokenFilter_StopWordse7H qZend_Search_Lucene_Analysis_TokenFilter_ShortWordse:G wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8e6F oZend_Search_Lucene_Analysis_TokenFilter_LowerCasee&E OZend_Search_Lucene_Analysis_Tokene)D UZend_Search_Lucene_Analysis_Analyzere0C cZend_Search_Lucene_Analysis_Analyzer_Commone8B sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumeIA Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitivee5@ mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8eF? Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitivee8> sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumeI= Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitivee5< mZend_Search_Lucene_Analysis_Analyzer_Common_TexteF; Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitivee: 7Zend_Search_Exceptione9 -Zend_Rest_Servere8 AZend_Rest_Server_Exceptione7 3Zend_Rest_Exceptione6 -Zend_Rest_Cliente5 ;Zend_Rest_Client_Resulte&4 OZend_Rest_Client_Result_Exceptione3 AZend_Rest_Client_Exceptione2 'Zend_Registrye1 -Zend_ProgressBare0 AZend_ProgressBar_Exceptione/ =Zend_ProgressBar_Adaptere$. KZend_ProgressBar_Adapter_JsPushe$- KZend_ProgressBar_Adapter_JsPulle', QZend_ProgressBar_Adapter_Exceptione%+ MZend_ProgressBar_Adapter_Consolee* Zend_Pdfe!) EZend_Pdf_UpdateInfoContainere( -Zend_Pdf_Trailere' ;Zend_Pdf_Trailer_Keepere& AZend_Pdf_Trailer_Generatore% )Zend_Pdf_Stylee$ 7Zend_Pdf_StringParsere# /Zend_Pdf_Resourcee#" IZend_Pdf_Resource_ImageFactorye   b  m>Lz]C$rM$X/




W
+
					w	U	/	wO%|`8p>gG$e="_5[,h>                       *[ WZend_Service_Technorati_KeyInfoResulte*Z WZend_Service_Technorati_GetInfoResulte&Y OZend_Service_Technorati_Exceptione1X eZend_Service_Technorati_DailyCountsResultSete.W _Zend_Service_Technorati_DailyCountsResulte,V [Zend_Service_Technorati_CosmosResultSete)U UZend_Service_Technorati_CosmosResulte+T YZend_Service_Technorati_BlogInfoResulte#S IZend_Service_Technorati_AuthoreR ;Zend_Service_StrikeIrone(Q SZend_Service_StrikeIron_ZipCodeInfoe2P gZend_Service_StrikeIron_USAddressVerificatione-O ]Zend_Service_StrikeIron_SalesUseTaxBasice&N OZend_Service_StrikeIron_Exceptione&M OZend_Service_StrikeIron_Decoratore!L EZend_Service_StrikeIron_BaseeK ;Zend_Service_SlideSharee&J OZend_Service_SlideShare_SlideShowe&I OZend_Service_SlideShare_ExceptioneH 1Zend_Service_Simpye$G KZend_Service_Simpy_WatchlistSete*F WZend_Service_Simpy_WatchlistFilterSete'E QZend_Service_Simpy_WatchlistFiltere!D EZend_Service_Simpy_WatchlisteC ?Zend_Service_Simpy_TagSeteB 9Zend_Service_Simpy_TageA AZend_Service_Simpy_NoteSete@ ;Zend_Service_Simpy_Notee? AZend_Service_Simpy_LinkSete!> EZend_Service_Simpy_LinkQuerye= ;Zend_Service_Simpy_Linke< 9Zend_Service_ReCaptchae$; KZend_Service_ReCaptcha_Responsee$: KZend_Service_ReCaptcha_MailHidee.9 _Zend_Service_ReCaptcha_MailHide_Exceptione%8 MZend_Service_ReCaptcha_Exceptione7 7Zend_Service_Nirvanixe#6 IZend_Service_Nirvanix_Responsee)5 UZend_Service_Nirvanix_Namespace_Imfse)4 UZend_Service_Nirvanix_Namespace_Basee$3 KZend_Service_Nirvanix_Exceptione2 3Zend_Service_Flickre"1 GZend_Service_Flickr_ResultSete0 AZend_Service_Flickr_Resulte/ ?Zend_Service_Flickr_Imagee. 9Zend_Service_Exceptione- 9Zend_Service_Deliciouse&, OZend_Service_Delicious_SimplePoste$+ KZend_Service_Delicious_PostListe * CZend_Service_Delicious_Poste%) MZend_Service_Delicious_Exceptione ( CZend_Service_Audioscrobblere' 3Zend_Service_Amazone'& QZend_Service_Amazon_SimilarProducte"% GZend_Service_Amazon_ResultSete$ ?Zend_Service_Amazon_Querye!# EZend_Service_Amazon_OfferSete" ?Zend_Service_Amazon_Offere&! OZend_Service_Amazon_ListmaniaListe  =Zend_Service_Amazon_Iteme ?Zend_Service_Amazon_Imagee( SZend_Service_Amazon_EditorialReviewe' QZend_Service_Amazon_CustomerReviewe$ KZend_Service_Amazon_Accessoriese 5Zend_Service_Akismete 7Zend_Service_Abstracte 9Zend_Server_Reflectione' QZend_Server_Reflection_ReturnValuee% MZend_Server_Reflection_Prototypee% MZend_Server_Reflection_Parametere  CZend_Server_Reflection_Nodee" GZend_Server_Reflection_Methode$ KZend_Server_Reflection_Functione- ]Zend_Server_Reflection_Function_Abstracte% MZend_Server_Reflection_Exceptione! EZend_Server_Reflection_Classe! EZend_Server_Method_Prototypee! EZend_Server_Method_Parametere" GZend_Server_Method_Definitione  CZend_Server_Method_Callbacke 7Zend_Server_Exceptione
 9Zend_Server_Definitione	 /Zend_Server_Cachee 5Zend_Server_Abstracte 1Zend_Search_Lucenee$ KZend_Search_Lucene_Storage_Filee+ YZend_Search_Lucene_Storage_File_Memorye/ aZend_Search_Lucene_Storage_File_Filesysteme) UZend_Search_Lucene_Storage_Directorye4 kZend_Search_Lucene_Storage_Directory_Filesysteme% MZend_Search_Lucene_Search_Weighte*  WZend_Search_Lucene_Search_Weight_Terme, [Zend_Search_Lucene_Search_Weight_Phrasee/~ aZend_Search_Lucene_Search_Weight_MultiTerme+} YZend_Search_Lucene_Search_Weight_Emptye-| ]Zend_Search_Lucene_Search_Weight_Booleane){ UZend_Search_Lucene_Search_Similaritye1z eZend_Search_Lucene_Search_Similarity_Defaulte   l R(|U5[/ `6	qL$	




Y
1
					g	D	%	eG\EY=tR6oL%uP1|`<fF%                                    G =Zend_Validate_File_Crc32eF =Zend_Validate_File_CounteE ;Zend_Validate_ExceptioneD AZend_Validate_EmailAddresseC 5Zend_Validate_DigitseB 1Zend_Validate_DateeA 3Zend_Validate_Ccnume@ 7Zend_Validate_Betweene? 7Zend_Validate_Barcodee> AZend_Validate_Barcode_UpcAe = CZend_Validate_Barcode_Ean13e< 3Zend_Validate_Alphae; 3Zend_Validate_Alnume: 9Zend_Validate_Abstracte9 Zend_Urie8 'Zend_Uri_Httpe7 1Zend_Uri_Exceptione6 )Zend_Translatee5 =Zend_Translate_Exceptione4 9Zend_Translate_Adaptere!3 EZend_Translate_Adapter_XmlTme!2 EZend_Translate_Adapter_Xliffe1 AZend_Translate_Adapter_Tmxe0 AZend_Translate_Adapter_Tbxe/ ?Zend_Translate_Adapter_Qte. AZend_Translate_Adapter_Inie#- IZend_Translate_Adapter_Gettexte, AZend_Translate_Adapter_Csve!+ EZend_Translate_Adapter_Arraye* 'Zend_TimeSynce) 1Zend_TimeSync_Sntpe( 9Zend_TimeSync_Protocole' /Zend_TimeSync_Ntpe& ;Zend_TimeSync_Exceptione% +Zend_Text_Tablee$ 3Zend_Text_Table_Rowe# ?Zend_Text_Table_Exceptione&" OZend_Text_Table_Decorator_Unicodee$! KZend_Text_Table_Decorator_Asciie  9Zend_Text_Table_Columne 3Zend_Text_MultiBytee -Zend_Text_Figlete AZend_Text_Figlet_Exceptione 3Zend_Text_Exceptione) UZend_Test_PHPUnit_ControllerTestCasee0 cZend_Test_PHPUnit_Constraint_ResponseHeadere* WZend_Test_PHPUnit_Constraint_Redirecte+ YZend_Test_PHPUnit_Constraint_Exceptione* WZend_Test_PHPUnit_Constraint_DomQuerye )Zend_Soap_Wsdle/ aZend_Soap_Wsdl_Strategy_DefaultComplexTypee0 cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequencee/ aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplexe$ KZend_Soap_Wsdl_Strategy_AnyTypee% MZend_Soap_Wsdl_Strategy_Abstracte 7Zend_Soap_Wsdl_Parsere! EZend_Soap_Wsdl_Parser_Resulte =Zend_Soap_Wsdl_Exceptione! EZend_Soap_Wsdl_CodeGeneratore -Zend_Soap_Servere AZend_Soap_Server_Exceptione
 -Zend_Soap_Cliente	 9Zend_Soap_Client_Locale AZend_Soap_Client_Exceptione ;Zend_Soap_Client_DotNete ;Zend_Soap_Client_Commone 9Zend_Soap_AutoDiscovere% MZend_Soap_AutoDiscover_Exceptione %Zend_Sessione) UZend_Session_Validator_HttpUserAgente$ KZend_Session_Validator_Abstracte'  QZend_Session_SaveHandler_Exceptione% MZend_Session_SaveHandler_DbTablee~ 9Zend_Session_Namespacee} 9Zend_Session_Exceptione| 7Zend_Session_Abstracte{ 1Zend_Service_Yahooe$z KZend_Service_Yahoo_WebResultSete!y EZend_Service_Yahoo_WebResulte&x OZend_Service_Yahoo_VideoResultSete#w IZend_Service_Yahoo_VideoResulte!v EZend_Service_Yahoo_ResultSeteu ?Zend_Service_Yahoo_Resulte)t UZend_Service_Yahoo_PageDataResultSete&s OZend_Service_Yahoo_PageDataResulte%r MZend_Service_Yahoo_NewsResultSete"q GZend_Service_Yahoo_NewsResulte&p OZend_Service_Yahoo_LocalResultSete#o IZend_Service_Yahoo_LocalResulte+n YZend_Service_Yahoo_InlinkDataResultSete(m SZend_Service_Yahoo_InlinkDataResulte&l OZend_Service_Yahoo_ImageResultSete#k IZend_Service_Yahoo_ImageResultej =Zend_Service_Yahoo_Imageei 5Zend_Service_Twittere h CZend_Service_Twitter_Searche#g IZend_Service_Twitter_Exceptionef ;Zend_Service_Technoratie#e IZend_Service_Technorati_Webloge"d GZend_Service_Technorati_Utilse*c WZend_Service_Technorati_TagsResultSete'b QZend_Service_Technorati_TagsResulte)a UZend_Service_Technorati_TagResultSete&` OZend_Service_Technorati_TagResulte,_ [Zend_Service_Technorati_SearchResultSete)^ UZend_Service_Technorati_SearchResulte&] OZend_Service_Technorati_ResultSete#\ IZend_Service_Technorati_Resulte   l  b=jE%iG%{\<nXC(




b
D
 					k	H	%lH$tQ.	~W1|W}ElZ0b=eJ,                  3 =Zend_XmlRpc_Request_Httpe2 /Zend_XmlRpc_Faulte1 7Zend_XmlRpc_Exceptione0 1Zend_XmlRpc_Cliente#/ IZend_XmlRpc_Client_ServerProxye+. YZend_XmlRpc_Client_ServerIntrospectione+- YZend_XmlRpc_Client_IntrospectExceptione%, MZend_XmlRpc_Client_HttpExceptione&+ OZend_XmlRpc_Client_FaultExceptione!* EZend_XmlRpc_Client_Exceptione&) OZend_Wildfire_Protocol_JsonStreame!( EZend_Wildfire_Plugin_FirePhpe.' _Zend_Wildfire_Plugin_FirePhp_TableMessagee)& UZend_Wildfire_Plugin_FirePhp_Messagee% ;Zend_Wildfire_Exceptione&$ OZend_Wildfire_Channel_HttpHeaderse# Zend_Viewe" -Zend_View_Streame! 5Zend_View_Helper_Urle  AZend_View_Helper_Translatee) UZend_View_Helper_RenderToPlaceholdere! EZend_View_Helper_Placeholdere* WZend_View_Helper_Placeholder_Registrye4 kZend_View_Helper_Placeholder_Registry_Exceptione+ YZend_View_Helper_Placeholder_Containere6 oZend_View_Helper_Placeholder_Container_Standalonee5 mZend_View_Helper_Placeholder_Container_Exceptione4 kZend_View_Helper_Placeholder_Container_Abstracte! EZend_View_Helper_PartialLoope =Zend_View_Helper_Partiale' QZend_View_Helper_Partial_Exceptione' QZend_View_Helper_PaginationControle ;Zend_View_Helper_Layoute 7Zend_View_Helper_Jsone" GZend_View_Helper_InlineScripte# IZend_View_Helper_HtmlQuicktimee ?Zend_View_Helper_HtmlPagee  CZend_View_Helper_HtmlObjecte ?Zend_View_Helper_HtmlListe AZend_View_Helper_HtmlFlashe! EZend_View_Helper_HtmlElemente
 AZend_View_Helper_HeadTitlee	 AZend_View_Helper_HeadStylee  CZend_View_Helper_HeadScripte ?Zend_View_Helper_HeadMetae ?Zend_View_Helper_HeadLinke" GZend_View_Helper_FormTextareae ?Zend_View_Helper_FormTexte  CZend_View_Helper_FormSubmite  CZend_View_Helper_FormSelecte AZend_View_Helper_FormResete  AZend_View_Helper_FormRadioe" GZend_View_Helper_FormPassworde~ ?Zend_View_Helper_FormNotee'} QZend_View_Helper_FormMultiCheckboxe| AZend_View_Helper_FormLabele{ AZend_View_Helper_FormImagee z CZend_View_Helper_FormHiddeney ?Zend_View_Helper_FormFilee x CZend_View_Helper_FormErrorse!w EZend_View_Helper_FormElemente"v GZend_View_Helper_FormCheckboxe u CZend_View_Helper_FormButtonet 7Zend_View_Helper_Formes ?Zend_View_Helper_Fieldseter =Zend_View_Helper_Doctypee!q EZend_View_Helper_DeclareVarsep ;Zend_View_Helper_Actioneo ?Zend_View_Helper_Abstracten 3Zend_View_Exceptionem 1Zend_View_Abstractel %Zend_Versionek 'Zend_Validateej AZend_Validate_StringLengthei 3Zend_Validate_Regexeh 9Zend_Validate_NotEmptyeg 9Zend_Validate_LessThanef -Zend_Validate_Ipee /Zend_Validate_Inted 7Zend_Validate_InArrayec ;Zend_Validate_Identicaleb 9Zend_Validate_Hostnameea ?Zend_Validate_Hostname_See` ?Zend_Validate_Hostname_Noe_ ?Zend_Validate_Hostname_Lie^ ?Zend_Validate_Hostname_Hue] ?Zend_Validate_Hostname_Fie\ ?Zend_Validate_Hostname_Dee[ ?Zend_Validate_Hostname_CheZ ?Zend_Validate_Hostname_AteY /Zend_Validate_HexeX ?Zend_Validate_GreaterThaneW 3Zend_Validate_FloateV ?Zend_Validate_File_UploadeU ;Zend_Validate_File_SizeeT ;Zend_Validate_File_Sha1e!S EZend_Validate_File_NotExistse R CZend_Validate_File_MimeTypeeQ 9Zend_Validate_File_Md5eP AZend_Validate_File_IsImagee$O KZend_Validate_File_IsCompressede!N EZend_Validate_File_ImageSizeeM ;Zend_Validate_File_Hashe!L EZend_Validate_File_FilesSizee!K EZend_Validate_File_ExtensioneJ ?Zend_Validate_File_Existse'I QZend_Validate_File_ExcludeMimeTypee(H SZend_Validate_File_ExcludeExtensione   q  b=|W4mL2sX/qM+	




w
_
<
				n	@	mL(hG+sS.}bJ-nT:uT5d5^ 0$ cZend_Controller_Action_Helper_ContextSwitchf<# {Zend_Controller_Action_Helper_AutoCompleteScriptaculousf3" iZend_Controller_Action_Helper_AutoCompleteDojof8! sZend_Controller_Action_Helper_AutoComplete_Abstractf.  _Zend_Controller_Action_Helper_AjaxContextf. _Zend_Controller_Action_Helper_ActionStackf+ YZend_Controller_Action_Helper_Abstractf% MZend_Controller_Action_Exceptionf 3Zend_Console_Getoptf" GZend_Console_Getopt_Exceptionf #Zend_Configf +Zend_Config_Xmlf 1Zend_Config_Writerf 9Zend_Config_Writer_Xmlf 9Zend_Config_Writer_Inif =Zend_Config_Writer_Arrayf +Zend_Config_Inif 7Zend_Config_Exceptionf /Zend_Captcha_Wordf 9Zend_Captcha_ReCaptchaf 1Zend_Captcha_Imagef 3Zend_Captcha_Figletf 9Zend_Captcha_Exceptionf /Zend_Captcha_Dumbf /Zend_Captcha_Basef !Zend_Cachef
 =Zend_Cache_Frontend_Pagef	 AZend_Cache_Frontend_Outputf! EZend_Cache_Frontend_Functionf =Zend_Cache_Frontend_Filef ?Zend_Cache_Frontend_Classf 5Zend_Cache_Exceptionf +Zend_Cache_Coref 1Zend_Cache_Backendf$ KZend_Cache_Backend_ZendPlatformf ?Zend_Cache_Backend_Xcachef!  EZend_Cache_Backend_TwoLevelsf ;Zend_Cache_Backend_Testf~ ?Zend_Cache_Backend_Sqlitef!} EZend_Cache_Backend_Memcachedf| ;Zend_Cache_Backend_Filef{ 9Zend_Cache_Backend_Apcfz Zend_Authfy ?Zend_Auth_Storage_Sessionf$x KZend_Auth_Storage_NonPersistentf w CZend_Auth_Storage_Exceptionfv -Zend_Auth_Resultfu 3Zend_Auth_Exceptionft =Zend_Auth_Adapter_OpenIdfs 9Zend_Auth_Adapter_Ldapfr AZend_Auth_Adapter_InfoCardfq 9Zend_Auth_Adapter_Httpf)p UZend_Auth_Adapter_Http_Resolver_Filef.o _Zend_Auth_Adapter_Http_Resolver_Exceptionf n CZend_Auth_Adapter_Exceptionfm =Zend_Auth_Adapter_Digestfl ?Zend_Auth_Adapter_DbTablefk ?Zend_Amf_Value_TraitsInfof-j ]Zend_Amf_Value_Messaging_RemotingMessagef*i WZend_Amf_Value_Messaging_ErrorMessagef,h [Zend_Amf_Value_Messaging_CommandMessagef*g WZend_Amf_Value_Messaging_AsyncMessagef0f cZend_Amf_Value_Messaging_AcknowledgeMessagef-e ]Zend_Amf_Value_Messaging_AbstractMessagef!d EZend_Amf_Value_MessageHeaderfc AZend_Amf_Value_MessageBodyfb =Zend_Amf_Value_ByteArrayfa AZend_Amf_Util_BinaryStreamf` +Zend_Amf_Serverf_ ?Zend_Amf_Server_Exceptionf^ /Zend_Amf_Responsef] 9Zend_Amf_Response_Httpf\ -Zend_Amf_Requestf[ 7Zend_Amf_Request_HttpfZ ?Zend_Amf_Parse_TypeLoaderfY ?Zend_Amf_Parse_Serializerf X CZend_Amf_Parse_OutputStreamfW AZend_Amf_Parse_InputStreamf V CZend_Amf_Parse_Deserializerf#U IZend_Amf_Parse_Amf3_Serializerf%T MZend_Amf_Parse_Amf3_Deserializerf#S IZend_Amf_Parse_Amf0_Serializerf%R MZend_Amf_Parse_Amf0_DeserializerfQ 1Zend_Amf_ExceptionfP 1Zend_Amf_ConstantsfO Zend_AclfN 'Zend_Acl_RolefM 9Zend_Acl_Role_Registryf%L MZend_Acl_Role_Registry_ExceptionfK /Zend_Acl_ResourcefJ 1Zend_Acl_ExceptionfI /Zend_XmlRpc_ValueeH =Zend_XmlRpc_Value_StructeG =Zend_XmlRpc_Value_StringeF =Zend_XmlRpc_Value_ScalareE 7Zend_XmlRpc_Value_NileD ?Zend_XmlRpc_Value_Integere C CZend_XmlRpc_Value_ExceptioneB =Zend_XmlRpc_Value_DoubleeA AZend_XmlRpc_Value_DateTimee!@ EZend_XmlRpc_Value_Collectione? ?Zend_XmlRpc_Value_Booleane> =Zend_XmlRpc_Value_Base64e= ;Zend_XmlRpc_Value_Arraye< 1Zend_XmlRpc_Servere; ?Zend_XmlRpc_Server_Systeme: =Zend_XmlRpc_Server_Faulte!9 EZend_XmlRpc_Server_Exceptione8 =Zend_XmlRpc_Server_Cachee7 5Zend_XmlRpc_Responsee6 ?Zend_XmlRpc_Response_Httpe5 3Zend_XmlRpc_Requeste4 ?Zend_XmlRpc_Request_Stdine   i  oEa4uO#T-_7



`
4
						i	L	0	pQ(	|Z8`A([:uU2cF0 wF`0       CZend_Dojo_Form_DisplayGroupf* WZend_Dojo_Form_Decorator_TabContainerf, [Zend_Dojo_Form_Decorator_StackContainerf,
 [Zend_Dojo_Form_Decorator_SplitContainerf'	 QZend_Dojo_Form_Decorator_DijitFormf* WZend_Dojo_Form_Decorator_DijitElementf, [Zend_Dojo_Form_Decorator_DijitContainerf) UZend_Dojo_Form_Decorator_ContentPanef- ]Zend_Dojo_Form_Decorator_BorderContainerf+ YZend_Dojo_Form_Decorator_AccordionPanef0 cZend_Dojo_Form_Decorator_AccordionContainerf 3Zend_Dojo_Exceptionf )Zend_Dojo_Dataf  !Zend_Debugf Zend_Dbf~ 'Zend_Db_Tablef} 5Zend_Db_Table_Selectf#| IZend_Db_Table_Select_Exceptionf{ 5Zend_Db_Table_Rowsetf#z IZend_Db_Table_Rowset_Exceptionf"y GZend_Db_Table_Rowset_Abstractfx /Zend_Db_Table_Rowf w CZend_Db_Table_Row_Exceptionfv AZend_Db_Table_Row_Abstractfu ;Zend_Db_Table_Exceptionft 9Zend_Db_Table_Abstractfs /Zend_Db_Statementfr 7Zend_Db_Statement_Pdofq ?Zend_Db_Statement_Pdo_Ibmfp =Zend_Db_Statement_Oraclef'o QZend_Db_Statement_Oracle_Exceptionfn =Zend_Db_Statement_Mysqlif'm QZend_Db_Statement_Mysqli_Exceptionf l CZend_Db_Statement_Exceptionfk 7Zend_Db_Statement_Db2f$j KZend_Db_Statement_Db2_Exceptionfi )Zend_Db_Selectfh =Zend_Db_Select_Exceptionfg -Zend_Db_Profilerff 9Zend_Db_Profiler_Queryfe =Zend_Db_Profiler_Firebugfd AZend_Db_Profiler_Exceptionfc %Zend_Db_Exprfb /Zend_Db_Exceptionfa AZend_Db_Adapter_Pdo_Sqlitef` ?Zend_Db_Adapter_Pdo_Pgsqlf_ ;Zend_Db_Adapter_Pdo_Ocif^ ?Zend_Db_Adapter_Pdo_Mysqlf] ?Zend_Db_Adapter_Pdo_Mssqlf\ ;Zend_Db_Adapter_Pdo_Ibmf [ CZend_Db_Adapter_Pdo_Ibm_Idsf Z CZend_Db_Adapter_Pdo_Ibm_Db2f!Y EZend_Db_Adapter_Pdo_AbstractfX 9Zend_Db_Adapter_Oraclef%W MZend_Db_Adapter_Oracle_ExceptionfV 9Zend_Db_Adapter_Mysqlif%U MZend_Db_Adapter_Mysqli_ExceptionfT ?Zend_Db_Adapter_ExceptionfS 3Zend_Db_Adapter_Db2f"R GZend_Db_Adapter_Db2_ExceptionfQ =Zend_Db_Adapter_AbstractfP Zend_DatefO 3Zend_Date_ExceptionfN 5Zend_Date_DateObjectfM -Zend_Date_CitiesfL 'Zend_CurrencyfK ;Zend_Currency_Exceptionf!J EZend_Controller_Router_Routef(I SZend_Controller_Router_Route_Staticf'H QZend_Controller_Router_Route_Regexf(G SZend_Controller_Router_Route_Modulef*F WZend_Controller_Router_Route_Hostnamef'E QZend_Controller_Router_Route_Chainf*D WZend_Controller_Router_Route_Abstractf#C IZend_Controller_Router_Rewritef%B MZend_Controller_Router_Exceptionf$A KZend_Controller_Router_Abstractf*@ WZend_Controller_Response_HttpTestCasef"? GZend_Controller_Response_Httpf'> QZend_Controller_Response_Exceptionf!= EZend_Controller_Response_Clif&< OZend_Controller_Response_Abstractf#; IZend_Controller_Request_Simplef): UZend_Controller_Request_HttpTestCasef!9 EZend_Controller_Request_Httpf&8 OZend_Controller_Request_Exceptionf&7 OZend_Controller_Request_Apache404f%6 MZend_Controller_Request_Abstractf(5 SZend_Controller_Plugin_ErrorHandlerf"4 GZend_Controller_Plugin_Brokerf'3 QZend_Controller_Plugin_ActionStackf$2 KZend_Controller_Plugin_Abstractf1 7Zend_Controller_Frontf0 ?Zend_Controller_Exceptionf(/ SZend_Controller_Dispatcher_Standardf). UZend_Controller_Dispatcher_Exceptionf(- SZend_Controller_Dispatcher_Abstractf, 9Zend_Controller_Actionf(+ SZend_Controller_Action_HelperBrokerf6* oZend_Controller_Action_HelperBroker_PriorityStackf/) aZend_Controller_Action_Helper_ViewRendererf&( OZend_Controller_Action_Helper_Urlf-' ]Zend_Controller_Action_Helper_Redirectorf'& QZend_Controller_Action_Helper_Jsonf1% eZend_Controller_Action_Helper_FlashMessengerf   i  [0\/V.}^G&vO(




U
(
				`	4	^1a7nW@%gM,[6yV6eC!k<                 %v MZend_Filter_Word_DashToSeparatorf%u MZend_Filter_Word_DashToCamelCasef+t YZend_Filter_Word_CamelCaseToUnderscoref*s WZend_Filter_Word_CamelCaseToSeparatorf%r MZend_Filter_Word_CamelCaseToDashfq 7Zend_Filter_StripTagsfp ?Zend_Filter_StripNewlinesfo 9Zend_Filter_StringTrimfn ?Zend_Filter_StringToUpperfm ?Zend_Filter_StringToLowerfl 5Zend_Filter_RealPathfk ;Zend_Filter_PregReplacefj +Zend_Filter_Intfi /Zend_Filter_Inputfh 7Zend_Filter_Inflectorfg =Zend_Filter_HtmlEntitiesff AZend_Filter_File_UpperCasefe ;Zend_Filter_File_Renamefd AZend_Filter_File_LowerCasefc 7Zend_Filter_Exceptionfb +Zend_Filter_Dirfa 1Zend_Filter_Digitsf` 5Zend_Filter_BaseNamef_ /Zend_Filter_Alphaf^ /Zend_Filter_Alnumf] 1Zend_File_Transferf!\ EZend_File_Transfer_Exceptionf$[ KZend_File_Transfer_Adapter_Httpf(Z SZend_File_Transfer_Adapter_AbstractfY Zend_FeedfX 'Zend_Feed_RssfW 3Zend_Feed_ExceptionfV 3Zend_Feed_Entry_RssfU 5Zend_Feed_Entry_AtomfT =Zend_Feed_Entry_AbstractfS /Zend_Feed_ElementfR /Zend_Feed_BuilderfQ =Zend_Feed_Builder_Headerf$P KZend_Feed_Builder_Header_Itunesf O CZend_Feed_Builder_ExceptionfN ;Zend_Feed_Builder_EntryfM )Zend_Feed_AtomfL 1Zend_Feed_AbstractfK )Zend_ExceptionfJ )Zend_Dom_QueryfI 7Zend_Dom_Query_ResultfH =Zend_Dom_Query_Css2XpathfG 1Zend_Dom_ExceptionfF Zend_Dojof)E UZend_Dojo_View_Helper_VerticalSliderf,D [Zend_Dojo_View_Helper_ValidationTextBoxf&C OZend_Dojo_View_Helper_TimeTextBoxf"B GZend_Dojo_View_Helper_TextBoxf#A IZend_Dojo_View_Helper_Textareaf'@ QZend_Dojo_View_Helper_TabContainerf'? QZend_Dojo_View_Helper_SubmitButtonf)> UZend_Dojo_View_Helper_StackContainerf)= UZend_Dojo_View_Helper_SplitContainerf!< EZend_Dojo_View_Helper_Sliderf); UZend_Dojo_View_Helper_SimpleTextareaf&: OZend_Dojo_View_Helper_RadioButtonf*9 WZend_Dojo_View_Helper_PasswordTextBoxf(8 SZend_Dojo_View_Helper_NumberTextBoxf(7 SZend_Dojo_View_Helper_NumberSpinnerf+6 YZend_Dojo_View_Helper_HorizontalSliderf5 AZend_Dojo_View_Helper_Formf*4 WZend_Dojo_View_Helper_FilteringSelectf!3 EZend_Dojo_View_Helper_Editorf2 AZend_Dojo_View_Helper_Dojof)1 UZend_Dojo_View_Helper_Dojo_Containerf)0 UZend_Dojo_View_Helper_DijitContainerf / CZend_Dojo_View_Helper_Dijitf&. OZend_Dojo_View_Helper_DateTextBoxf*- WZend_Dojo_View_Helper_CurrencyTextBoxf&, OZend_Dojo_View_Helper_ContentPanef#+ IZend_Dojo_View_Helper_ComboBoxf#* IZend_Dojo_View_Helper_CheckBoxf!) EZend_Dojo_View_Helper_Buttonf*( WZend_Dojo_View_Helper_BorderContainerf(' SZend_Dojo_View_Helper_AccordionPanef-& ]Zend_Dojo_View_Helper_AccordionContainerf% =Zend_Dojo_View_Exceptionf$ )Zend_Dojo_Formf# 9Zend_Dojo_Form_SubFormf*" WZend_Dojo_Form_Element_VerticalSliderf-! ]Zend_Dojo_Form_Element_ValidationTextBoxf'  QZend_Dojo_Form_Element_TimeTextBoxf# IZend_Dojo_Form_Element_TextBoxf$ KZend_Dojo_Form_Element_Textareaf( SZend_Dojo_Form_Element_SubmitButtonf" GZend_Dojo_Form_Element_Sliderf' QZend_Dojo_Form_Element_RadioButtonf+ YZend_Dojo_Form_Element_PasswordTextBoxf) UZend_Dojo_Form_Element_NumberTextBoxf) UZend_Dojo_Form_Element_NumberSpinnerf, [Zend_Dojo_Form_Element_HorizontalSliderf+ YZend_Dojo_Form_Element_FilteringSelectf" GZend_Dojo_Form_Element_Editorf& OZend_Dojo_Form_Element_DijitMultif! EZend_Dojo_Form_Element_Dijitf' QZend_Dojo_Form_Element_DateTextBoxf+ YZend_Dojo_Form_Element_CurrencyTextBoxf$ KZend_Dojo_Form_Element_ComboBoxf$ KZend_Dojo_Form_Element_CheckBoxf" GZend_Dojo_Form_Element_Buttonf   g  |S%d?Y4~\:^;




x
P
*
					f	C	#		nR+kBtM"f>pJ#qI$yR6Y(                                      )] UZend_Gdata_Books_Extension_BooksLinkf-\ ]Zend_Gdata_Books_Extension_BooksCategoryf.[ _Zend_Gdata_Books_Extension_AnnotationLinkf$Z KZend_Gdata_Books_CollectionFeedf%Y MZend_Gdata_Books_CollectionEntryfX 1Zend_Gdata_AuthSubfW )Zend_Gdata_Appf$V KZend_Gdata_App_VersionExceptionfU 3Zend_Gdata_App_Utilf#T IZend_Gdata_App_MediaFileSourcefS ?Zend_Gdata_App_MediaEntryf2R gZend_Gdata_App_LoggingHttpClientAdapterSocketfQ AZend_Gdata_App_IOExceptionf,P [Zend_Gdata_App_InvalidArgumentExceptionf!O EZend_Gdata_App_HttpExceptionf$N KZend_Gdata_App_FeedSourceParentf#M IZend_Gdata_App_FeedEntryParentfL 3Zend_Gdata_App_FeedfK =Zend_Gdata_App_Extensionf!J EZend_Gdata_App_Extension_Urif%I MZend_Gdata_App_Extension_Updatedf#H IZend_Gdata_App_Extension_Titlef"G GZend_Gdata_App_Extension_Textf%F MZend_Gdata_App_Extension_Summaryf&E OZend_Gdata_App_Extension_Subtitlef$D KZend_Gdata_App_Extension_Sourcef$C KZend_Gdata_App_Extension_Rightsf'B QZend_Gdata_App_Extension_Publishedf$A KZend_Gdata_App_Extension_Personf"@ GZend_Gdata_App_Extension_Namef"? GZend_Gdata_App_Extension_Logof"> GZend_Gdata_App_Extension_Linkf = CZend_Gdata_App_Extension_Idf"< GZend_Gdata_App_Extension_Iconf'; QZend_Gdata_App_Extension_Generatorf#: IZend_Gdata_App_Extension_Emailf%9 MZend_Gdata_App_Extension_Elementf$8 KZend_Gdata_App_Extension_Editedf#7 IZend_Gdata_App_Extension_Draftf%6 MZend_Gdata_App_Extension_Controlf)5 UZend_Gdata_App_Extension_Contributorf%4 MZend_Gdata_App_Extension_Contentf&3 OZend_Gdata_App_Extension_Categoryf$2 KZend_Gdata_App_Extension_Authorf1 =Zend_Gdata_App_Exceptionf0 5Zend_Gdata_App_Entryf,/ [Zend_Gdata_App_CaptchaRequiredExceptionf#. IZend_Gdata_App_BaseMediaSourcef- 3Zend_Gdata_App_Basef*, WZend_Gdata_App_BadMethodCallExceptionf!+ EZend_Gdata_App_AuthExceptionf* Zend_Formf) /Zend_Form_SubFormf( 3Zend_Form_Exceptionf' /Zend_Form_Elementf& ;Zend_Form_Element_Xhtmlf% AZend_Form_Element_Textareaf$ 9Zend_Form_Element_Textf# =Zend_Form_Element_Submitf" =Zend_Form_Element_Selectf! ;Zend_Form_Element_Resetf  ;Zend_Form_Element_Radiof AZend_Form_Element_Passwordf" GZend_Form_Element_Multiselectf$ KZend_Form_Element_MultiCheckboxf ;Zend_Form_Element_Multif ;Zend_Form_Element_Imagef =Zend_Form_Element_Hiddenf 9Zend_Form_Element_Hashf 9Zend_Form_Element_Filef  CZend_Form_Element_Exceptionf AZend_Form_Element_Checkboxf ?Zend_Form_Element_Captchaf =Zend_Form_Element_Buttonf 9Zend_Form_DisplayGroupf# IZend_Form_Decorator_ViewScriptf# IZend_Form_Decorator_ViewHelperf( SZend_Form_Decorator_PrepareElementsf ?Zend_Form_Decorator_Labelf ?Zend_Form_Decorator_Imagef  CZend_Form_Decorator_HtmlTagf# IZend_Form_Decorator_FormErrorsf% MZend_Form_Decorator_FormElementsf
 =Zend_Form_Decorator_Formf	 =Zend_Form_Decorator_Filef! EZend_Form_Decorator_Fieldsetf" GZend_Form_Decorator_Exceptionf AZend_Form_Decorator_Errorsf$ KZend_Form_Decorator_DtDdWrapperf$ KZend_Form_Decorator_Descriptionf  CZend_Form_Decorator_Captchaf% MZend_Form_Decorator_Captcha_Wordf! EZend_Form_Decorator_Callbackf!  EZend_Form_Decorator_Abstractf #Zend_Filterf+~ YZend_Filter_Word_UnderscoreToSeparatorf&} OZend_Filter_Word_UnderscoreToDashf+| YZend_Filter_Word_UnderscoreToCamelCasef*{ WZend_Filter_Word_SeparatorToSeparatorf%z MZend_Filter_Word_SeparatorToDashf*y WZend_Filter_Word_SeparatorToCamelCasef(x SZend_Filter_Word_Separator_Abstractf&w OZend_Filter_Word_DashToUnderscoref   _  tJ|c<d9
o>eG/



o
<
			z	L	.	yK#~W0X/uAsI!^7}^1d>          &< OZend_Gdata_Gapps_ServiceExceptionf; 9Zend_Gdata_Gapps_Queryf#: IZend_Gdata_Gapps_NicknameQueryf"9 GZend_Gdata_Gapps_NicknameFeedf#8 IZend_Gdata_Gapps_NicknameEntryf%7 MZend_Gdata_Gapps_Extension_Quotaf(6 SZend_Gdata_Gapps_Extension_Nicknamef$5 KZend_Gdata_Gapps_Extension_Namef%4 MZend_Gdata_Gapps_Extension_Loginf)3 UZend_Gdata_Gapps_Extension_EmailListf2 9Zend_Gdata_Gapps_Errorf-1 ]Zend_Gdata_Gapps_EmailListRecipientQueryf,0 [Zend_Gdata_Gapps_EmailListRecipientFeedf-/ ]Zend_Gdata_Gapps_EmailListRecipientEntryf$. KZend_Gdata_Gapps_EmailListQueryf#- IZend_Gdata_Gapps_EmailListFeedf$, KZend_Gdata_Gapps_EmailListEntryf+ +Zend_Gdata_Feedf* 5Zend_Gdata_Extensionf) =Zend_Gdata_Extension_Whof( AZend_Gdata_Extension_Wheref' ?Zend_Gdata_Extension_Whenf$& KZend_Gdata_Extension_Visibilityf&% OZend_Gdata_Extension_Transparencyf"$ GZend_Gdata_Extension_Reminderf-# ]Zend_Gdata_Extension_RecurrenceExceptionf$" KZend_Gdata_Extension_Recurrencef ! CZend_Gdata_Extension_Ratingf'  QZend_Gdata_Extension_OriginalEventf0 cZend_Gdata_Extension_OpenSearchTotalResultsf. _Zend_Gdata_Extension_OpenSearchStartIndexf0 cZend_Gdata_Extension_OpenSearchItemsPerPagef" GZend_Gdata_Extension_FeedLinkf* WZend_Gdata_Extension_ExtendedPropertyf% MZend_Gdata_Extension_EventStatusf# IZend_Gdata_Extension_EntryLinkf" GZend_Gdata_Extension_Commentsf& OZend_Gdata_Extension_AttendeeTypef( SZend_Gdata_Extension_AttendeeStatusf +Zend_Gdata_Exiff 5Zend_Gdata_Exif_Feedf# IZend_Gdata_Exif_Extension_Timef# IZend_Gdata_Exif_Extension_Tagsf$ KZend_Gdata_Exif_Extension_Modelf# IZend_Gdata_Exif_Extension_Makef" GZend_Gdata_Exif_Extension_Isof, [Zend_Gdata_Exif_Extension_ImageUniqueIdf$ KZend_Gdata_Exif_Extension_FStopf* WZend_Gdata_Exif_Extension_FocalLengthf$ KZend_Gdata_Exif_Extension_Flashf'
 QZend_Gdata_Exif_Extension_Exposuref'	 QZend_Gdata_Exif_Extension_Distancef 7Zend_Gdata_Exif_Entryf -Zend_Gdata_Entryf 7Zend_Gdata_DublinCoref* WZend_Gdata_DublinCore_Extension_Titlef, [Zend_Gdata_DublinCore_Extension_Subjectf+ YZend_Gdata_DublinCore_Extension_Rightsf. _Zend_Gdata_DublinCore_Extension_Publisherf- ]Zend_Gdata_DublinCore_Extension_Languagef/  aZend_Gdata_DublinCore_Extension_Identifierf+ YZend_Gdata_DublinCore_Extension_Formatf0~ cZend_Gdata_DublinCore_Extension_Descriptionf)} UZend_Gdata_DublinCore_Extension_Datef,| [Zend_Gdata_DublinCore_Extension_Creatorf{ +Zend_Gdata_Docsfz 7Zend_Gdata_Docs_Queryf%y MZend_Gdata_Docs_DocumentListFeedf&x OZend_Gdata_Docs_DocumentListEntryfw 9Zend_Gdata_ClientLoginfv 3Zend_Gdata_Calendarf!u EZend_Gdata_Calendar_ListFeedf"t GZend_Gdata_Calendar_ListEntryf-s ]Zend_Gdata_Calendar_Extension_WebContentf+r YZend_Gdata_Calendar_Extension_Timezonef9q uZend_Gdata_Calendar_Extension_SendEventNotificationsf+p YZend_Gdata_Calendar_Extension_Selectedf+o YZend_Gdata_Calendar_Extension_QuickAddf'n QZend_Gdata_Calendar_Extension_Linkf)m UZend_Gdata_Calendar_Extension_Hiddenf(l SZend_Gdata_Calendar_Extension_Colorf.k _Zend_Gdata_Calendar_Extension_AccessLevelf#j IZend_Gdata_Calendar_EventQueryf"i GZend_Gdata_Calendar_EventFeedf#h IZend_Gdata_Calendar_EventEntryfg -Zend_Gdata_Booksf!f EZend_Gdata_Books_VolumeQueryf e CZend_Gdata_Books_VolumeFeedf!d EZend_Gdata_Books_VolumeEntryf+c YZend_Gdata_Books_Extension_Viewabilityf-b ]Zend_Gdata_Books_Extension_ThumbnailLinkf&a OZend_Gdata_Books_Extension_Reviewf+` YZend_Gdata_Books_Extension_PreviewLinkf(_ SZend_Gdata_Books_Extension_InfoLinkf-^ ]Zend_Gdata_Books_Extension_Embeddabilityf   `  `/d? dH1	gG- rA


|
N
!				^	1wR.	]0sLe.uHnCdAm?                      / aZend_Gdata_Spreadsheets_Extension_ColCountf+ YZend_Gdata_Spreadsheets_Extension_Cellf* WZend_Gdata_Spreadsheets_DocumentQueryf& OZend_Gdata_Spreadsheets_CellQueryf% MZend_Gdata_Spreadsheets_CellFeedf& OZend_Gdata_Spreadsheets_CellEntryf -Zend_Gdata_Queryf /Zend_Gdata_Photosf  CZend_Gdata_Photos_UserQueryf AZend_Gdata_Photos_UserFeedf  CZend_Gdata_Photos_UserEntryf AZend_Gdata_Photos_TagEntryf! EZend_Gdata_Photos_PhotoQueryf  CZend_Gdata_Photos_PhotoFeedf! EZend_Gdata_Photos_PhotoEntryf& OZend_Gdata_Photos_Extension_Widthf' QZend_Gdata_Photos_Extension_Weightf( SZend_Gdata_Photos_Extension_Versionf%
 MZend_Gdata_Photos_Extension_Userf*	 WZend_Gdata_Photos_Extension_Timestampf* WZend_Gdata_Photos_Extension_Thumbnailf% MZend_Gdata_Photos_Extension_Sizef) UZend_Gdata_Photos_Extension_Rotationf+ YZend_Gdata_Photos_Extension_QuotaLimitf- ]Zend_Gdata_Photos_Extension_QuotaCurrentf) UZend_Gdata_Photos_Extension_Positionf( SZend_Gdata_Photos_Extension_PhotoIdf3 iZend_Gdata_Photos_Extension_NumPhotosRemainingf*  WZend_Gdata_Photos_Extension_NumPhotosf) UZend_Gdata_Photos_Extension_Nicknamef%~ MZend_Gdata_Photos_Extension_Namef2} gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumf)| UZend_Gdata_Photos_Extension_Locationf#{ IZend_Gdata_Photos_Extension_Idf'z QZend_Gdata_Photos_Extension_Heightf2y gZend_Gdata_Photos_Extension_CommentingEnabledf-x ]Zend_Gdata_Photos_Extension_CommentCountf'w QZend_Gdata_Photos_Extension_Clientf)v UZend_Gdata_Photos_Extension_Checksumf*u WZend_Gdata_Photos_Extension_BytesUsedf(t SZend_Gdata_Photos_Extension_AlbumIdf's QZend_Gdata_Photos_Extension_Accessf#r IZend_Gdata_Photos_CommentEntryf!q EZend_Gdata_Photos_AlbumQueryf p CZend_Gdata_Photos_AlbumFeedf!o EZend_Gdata_Photos_AlbumEntryfn AZend_Gdata_MediaMimeStreamfm -Zend_Gdata_Mediafl 7Zend_Gdata_Media_Feedf*k WZend_Gdata_Media_Extension_MediaTitlef.j _Zend_Gdata_Media_Extension_MediaThumbnailf)i UZend_Gdata_Media_Extension_MediaTextf0h cZend_Gdata_Media_Extension_MediaRestrictionf+g YZend_Gdata_Media_Extension_MediaRatingf+f YZend_Gdata_Media_Extension_MediaPlayerf-e ]Zend_Gdata_Media_Extension_MediaKeywordsf)d UZend_Gdata_Media_Extension_MediaHashf*c WZend_Gdata_Media_Extension_MediaGroupf0b cZend_Gdata_Media_Extension_MediaDescriptionf+a YZend_Gdata_Media_Extension_MediaCreditf.` _Zend_Gdata_Media_Extension_MediaCopyrightf,_ [Zend_Gdata_Media_Extension_MediaContentf-^ ]Zend_Gdata_Media_Extension_MediaCategoryf] 9Zend_Gdata_Media_Entryf\ AZend_Gdata_Kind_EventEntryf[ 7Zend_Gdata_HttpClientf*Z WZend_Gdata_HttpAdapterStreamingSocketf)Y UZend_Gdata_HttpAdapterStreamingProxyfX /Zend_Gdata_HealthfW ;Zend_Gdata_Health_Queryf&V OZend_Gdata_Health_ProfileListFeedf'U QZend_Gdata_Health_ProfileListEntryf"T GZend_Gdata_Health_ProfileFeedf#S IZend_Gdata_Health_ProfileEntryf$R KZend_Gdata_Health_Extension_CcrfQ )Zend_Gdata_GeofP 3Zend_Gdata_Geo_Feedf$O KZend_Gdata_Geo_Extension_GmlPosf&N OZend_Gdata_Geo_Extension_GmlPointf)M UZend_Gdata_Geo_Extension_GeoRssWherefL 5Zend_Gdata_Geo_EntryfK -Zend_Gdata_Gbasef"J GZend_Gdata_Gbase_SnippetQueryf!I EZend_Gdata_Gbase_SnippetFeedf"H GZend_Gdata_Gbase_SnippetEntryfG 9Zend_Gdata_Gbase_QueryfF AZend_Gdata_Gbase_ItemQueryfE ?Zend_Gdata_Gbase_ItemFeedfD AZend_Gdata_Gbase_ItemEntryfC 7Zend_Gdata_Gbase_Feedf-B ]Zend_Gdata_Gbase_Extension_BaseAttributefA 9Zend_Gdata_Gbase_Entryf@ -Zend_Gdata_Gappsf? AZend_Gdata_Gapps_UserQueryf> ?Zend_Gdata_Gapps_UserFeedf= AZend_Gdata_Gapps_UserEntryf   [  rIaAyR%wHa3


{
J
				e	5	wF_4Q$Z,zT/	a;mEN                               w 5Zend_InfoCard_Claimsfv 5Zend_InfoCard_Cipherf5u mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcf5t mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcf4s kZend_InfoCard_Cipher_Symmetric_Adapter_Abstractf)r UZend_InfoCard_Cipher_Pki_Adapter_Rsaf.q _Zend_InfoCard_Cipher_Pki_Adapter_Abstractf#p IZend_InfoCard_Cipher_Exceptionf$o KZend_InfoCard_Adapter_Exceptionf"n GZend_InfoCard_Adapter_Defaultfm 1Zend_Http_Responsefl 3Zend_Http_Exceptionfk 3Zend_Http_CookieJarfj -Zend_Http_Cookiefi -Zend_Http_Clientfh AZend_Http_Client_Exceptionf"g GZend_Http_Client_Adapter_Testf$f KZend_Http_Client_Adapter_Socketf#e IZend_Http_Client_Adapter_Proxyf'd QZend_Http_Client_Adapter_Exceptionfc !Zend_Gdatafb 1Zend_Gdata_YouTubef"a GZend_Gdata_YouTube_VideoQueryf!` EZend_Gdata_YouTube_VideoFeedf"_ GZend_Gdata_YouTube_VideoEntryf(^ SZend_Gdata_YouTube_UserProfileEntryf(] SZend_Gdata_YouTube_SubscriptionFeedf)\ UZend_Gdata_YouTube_SubscriptionEntryf)[ UZend_Gdata_YouTube_PlaylistVideoFeedf*Z WZend_Gdata_YouTube_PlaylistVideoEntryf(Y SZend_Gdata_YouTube_PlaylistListFeedf)X UZend_Gdata_YouTube_PlaylistListEntryf"W GZend_Gdata_YouTube_MediaEntryf!V EZend_Gdata_YouTube_InboxFeedf"U GZend_Gdata_YouTube_InboxEntryf)T UZend_Gdata_YouTube_Extension_VideoIdf*S WZend_Gdata_YouTube_Extension_Usernamef*R WZend_Gdata_YouTube_Extension_Uploadedf'Q QZend_Gdata_YouTube_Extension_Tokenf(P SZend_Gdata_YouTube_Extension_Statusf,O [Zend_Gdata_YouTube_Extension_Statisticsf'N QZend_Gdata_YouTube_Extension_Statef(M SZend_Gdata_YouTube_Extension_Schoolf-L ]Zend_Gdata_YouTube_Extension_ReleaseDatef.K _Zend_Gdata_YouTube_Extension_Relationshipf*J WZend_Gdata_YouTube_Extension_Recordedf&I OZend_Gdata_YouTube_Extension_Racyf-H ]Zend_Gdata_YouTube_Extension_QueryStringf)G UZend_Gdata_YouTube_Extension_Privatef*F WZend_Gdata_YouTube_Extension_Positionf/E aZend_Gdata_YouTube_Extension_PlaylistTitlef,D [Zend_Gdata_YouTube_Extension_PlaylistIdf,C [Zend_Gdata_YouTube_Extension_Occupationf)B UZend_Gdata_YouTube_Extension_NoEmbedf'A QZend_Gdata_YouTube_Extension_Musicf(@ SZend_Gdata_YouTube_Extension_Moviesf-? ]Zend_Gdata_YouTube_Extension_MediaRatingf,> [Zend_Gdata_YouTube_Extension_MediaGroupf-= ]Zend_Gdata_YouTube_Extension_MediaCreditf.< _Zend_Gdata_YouTube_Extension_MediaContentf*; WZend_Gdata_YouTube_Extension_Locationf&: OZend_Gdata_YouTube_Extension_Linkf*9 WZend_Gdata_YouTube_Extension_LastNamef*8 WZend_Gdata_YouTube_Extension_Hometownf)7 UZend_Gdata_YouTube_Extension_Hobbiesf(6 SZend_Gdata_YouTube_Extension_Genderf+5 YZend_Gdata_YouTube_Extension_FirstNamef*4 WZend_Gdata_YouTube_Extension_Durationf-3 ]Zend_Gdata_YouTube_Extension_Descriptionf+2 YZend_Gdata_YouTube_Extension_CountHintf)1 UZend_Gdata_YouTube_Extension_Controlf)0 UZend_Gdata_YouTube_Extension_Companyf'/ QZend_Gdata_YouTube_Extension_Booksf%. MZend_Gdata_YouTube_Extension_Agef)- UZend_Gdata_YouTube_Extension_AboutMef#, IZend_Gdata_YouTube_ContactFeedf$+ KZend_Gdata_YouTube_ContactEntryf#* IZend_Gdata_YouTube_CommentFeedf$) KZend_Gdata_YouTube_CommentEntryf$( KZend_Gdata_YouTube_ActivityFeedf%' MZend_Gdata_YouTube_ActivityEntryf& ;Zend_Gdata_Spreadsheetsf*% WZend_Gdata_Spreadsheets_WorksheetFeedf+$ YZend_Gdata_Spreadsheets_WorksheetEntryf,# [Zend_Gdata_Spreadsheets_SpreadsheetFeedf-" ]Zend_Gdata_Spreadsheets_SpreadsheetEntryf&! OZend_Gdata_Spreadsheets_ListQueryf%  MZend_Gdata_Spreadsheets_ListFeedf& OZend_Gdata_Spreadsheets_ListEntryf/ aZend_Gdata_Spreadsheets_Extension_RowCountf- ]Zend_Gdata_Spreadsheets_Extension_Customf   r jHuJ g0waG-iB 





R
4
 
					t	O	6	qQ0oO2t]9|Q1z[9kF%a=fE*                               i 9Zend_Measure_Frequencyfh 1Zend_Measure_Forcefg =Zend_Measure_Flow_Volumeff 9Zend_Measure_Flow_Molefe 9Zend_Measure_Flow_Massfd 9Zend_Measure_Exceptionfc 3Zend_Measure_Energyfb 5Zend_Measure_Densityfa 5Zend_Measure_Currentf ` CZend_Measure_Cooking_Weightf _ CZend_Measure_Cooking_Volumef^ =Zend_Measure_Capacitancef] 3Zend_Measure_Binaryf\ /Zend_Measure_Areaf[ 1Zend_Measure_AnglefZ ?Zend_Measure_AccelerationfY 7Zend_Measure_AbstractfX Zend_MailfW =Zend_Mail_Transport_Smtpf!V EZend_Mail_Transport_Sendmailf"U GZend_Mail_Transport_Exceptionf!T EZend_Mail_Transport_AbstractfS /Zend_Mail_Storagef'R QZend_Mail_Storage_Writable_MaildirfQ 9Zend_Mail_Storage_Pop3fP 9Zend_Mail_Storage_MboxfO ?Zend_Mail_Storage_MaildirfN 9Zend_Mail_Storage_ImapfM =Zend_Mail_Storage_Folderf"L GZend_Mail_Storage_Folder_Mboxf%K MZend_Mail_Storage_Folder_Maildirf J CZend_Mail_Storage_ExceptionfI AZend_Mail_Storage_AbstractfH ;Zend_Mail_Protocol_Smtpf'G QZend_Mail_Protocol_Smtp_Auth_Plainf'F QZend_Mail_Protocol_Smtp_Auth_Loginf)E UZend_Mail_Protocol_Smtp_Auth_Crammd5fD ;Zend_Mail_Protocol_Pop3fC ;Zend_Mail_Protocol_Imapf!B EZend_Mail_Protocol_Exceptionf A CZend_Mail_Protocol_Abstractf@ )Zend_Mail_Partf? 3Zend_Mail_Part_Filef> /Zend_Mail_Messagef= 9Zend_Mail_Message_Filef< 3Zend_Mail_Exceptionf; Zend_Logf: 9Zend_Log_Writer_Streamf9 5Zend_Log_Writer_Nullf8 5Zend_Log_Writer_Mockf7 ;Zend_Log_Writer_Firebugf6 1Zend_Log_Writer_Dbf5 =Zend_Log_Writer_Abstractf4 9Zend_Log_Formatter_Xmlf3 ?Zend_Log_Formatter_Simplef2 AZend_Log_Formatter_Firebugf1 =Zend_Log_Filter_Suppressf0 =Zend_Log_Filter_Priorityf/ ;Zend_Log_Filter_Messagef. 1Zend_Log_Exceptionf- #Zend_Localef, -Zend_Locale_Mathf+ =Zend_Locale_Math_PhpMathf* AZend_Locale_Math_Exceptionf) 1Zend_Locale_Formatf( 7Zend_Locale_Exceptionf' -Zend_Locale_Dataf!& EZend_Locale_Data_Translationf% #Zend_Loaderf$ =Zend_Loader_PluginLoaderf'# QZend_Loader_PluginLoader_Exceptionf" 7Zend_Loader_Exceptionf! Zend_Ldapf  3Zend_Ldap_Exceptionf #Zend_Layoutf 7Zend_Layout_Exceptionf) UZend_Layout_Controller_Plugin_Layoutf0 cZend_Layout_Controller_Action_Helper_Layoutf Zend_Jsonf -Zend_Json_Serverf 5Zend_Json_Server_Smdf! EZend_Json_Server_Smd_Servicef ?Zend_Json_Server_Responsef# IZend_Json_Server_Response_Httpf =Zend_Json_Server_Requestf" GZend_Json_Server_Request_Httpf AZend_Json_Server_Exceptionf 9Zend_Json_Server_Errorf 9Zend_Json_Server_Cachef 3Zend_Json_Exceptionf /Zend_Json_Encoderf /Zend_Json_Decoderf 'Zend_InfoCardf- ]Zend_InfoCard_Xml_SecurityTokenReferencef AZend_InfoCard_Xml_Securityf)
 UZend_InfoCard_Xml_Security_Transformf4	 kZend_InfoCard_Xml_Security_Transform_XmlExcC14Nf3 iZend_InfoCard_Xml_Security_Transform_Exceptionf< {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignaturef) UZend_InfoCard_Xml_Security_Exceptionf ?Zend_InfoCard_Xml_KeyInfof& OZend_InfoCard_Xml_KeyInfo_XmlDSigf& OZend_InfoCard_Xml_KeyInfo_Defaultf' QZend_InfoCard_Xml_KeyInfo_Abstractf  CZend_InfoCard_Xml_Exceptionf#  IZend_InfoCard_Xml_EncryptedKeyf$ KZend_InfoCard_Xml_EncryptedDataf+~ YZend_InfoCard_Xml_EncryptedData_XmlEncf-} ]Zend_InfoCard_Xml_EncryptedData_Abstractf| ?Zend_InfoCard_Xml_Elementf { CZend_InfoCard_Xml_Assertionf%z MZend_InfoCard_Xml_Assertion_Samlfy ;Zend_InfoCard_Exceptionf%x MZend_InfoCard_Exception_Abstractf   m  lN3pT/
r^E)z\9cO*



h
>
				s	P	+	~gH'_4hB"cA%f<v\,xKY                                                               5V mZend_Pdf_Resource_Font_Simple_Standard_Helveticaf:U wZend_Pdf_Resource_Font_Simple_Standard_CourierObliquef>T Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliquef7S qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldf3R iZend_Pdf_Resource_Font_Simple_Standard_Courierf)Q UZend_Pdf_Resource_Font_Simple_Parsedf2P gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypef*O WZend_Pdf_Resource_Font_FontDescriptorf%N MZend_Pdf_Resource_Font_Extractedf#M IZend_Pdf_Resource_Font_CidFontf,L [Zend_Pdf_Resource_Font_CidFont_TrueTypefK /Zend_Pdf_PhpArrayfJ +Zend_Pdf_ParserfI 9Zend_Pdf_Parser_StreamfH 'Zend_Pdf_PagefG )Zend_Pdf_ImagefF 'Zend_Pdf_Fontf E CZend_Pdf_Filter_Compressionf$D KZend_Pdf_Filter_Compression_Lzwf&C OZend_Pdf_Filter_Compression_FlatefB =Zend_Pdf_Filter_AsciiHexfA ;Zend_Pdf_Filter_Ascii85f"@ GZend_Pdf_FileParserDataSourcef)? UZend_Pdf_FileParserDataSource_Stringf'> QZend_Pdf_FileParserDataSource_Filef= 3Zend_Pdf_FileParserf< ?Zend_Pdf_FileParser_Imagef"; GZend_Pdf_FileParser_Image_Pngf: =Zend_Pdf_FileParser_Fontf&9 OZend_Pdf_FileParser_Font_OpenTypef/8 aZend_Pdf_FileParser_Font_OpenType_TrueTypef7 1Zend_Pdf_Exceptionf6 ;Zend_Pdf_ElementFactoryf"5 GZend_Pdf_ElementFactory_Proxyf4 -Zend_Pdf_Elementf3 ;Zend_Pdf_Element_Stringf#2 IZend_Pdf_Element_String_Binaryf1 ;Zend_Pdf_Element_Streamf0 AZend_Pdf_Element_Referencef%/ MZend_Pdf_Element_Reference_Tablef'. QZend_Pdf_Element_Reference_Contextf- ;Zend_Pdf_Element_Objectf#, IZend_Pdf_Element_Object_Streamf+ =Zend_Pdf_Element_Numericf* 7Zend_Pdf_Element_Nullf) 7Zend_Pdf_Element_Namef ( CZend_Pdf_Element_Dictionaryf' =Zend_Pdf_Element_Booleanf& 9Zend_Pdf_Element_Arrayf% )Zend_Pdf_Colorf$ 1Zend_Pdf_Color_Rgbf# 3Zend_Pdf_Color_Htmlf" =Zend_Pdf_Color_GrayScalef! 3Zend_Pdf_Color_Cmykf  'Zend_Pdf_Cmapf AZend_Pdf_Cmap_TrimmedTablef! EZend_Pdf_Cmap_SegmentToDeltaf AZend_Pdf_Cmap_ByteEncodingf& OZend_Pdf_Cmap_ByteEncoding_Staticf )Zend_Paginatorf* WZend_Paginator_ScrollingStyle_Slidingf* WZend_Paginator_ScrollingStyle_Jumpingf* WZend_Paginator_ScrollingStyle_Elasticf& OZend_Paginator_ScrollingStyle_Allf =Zend_Paginator_Exceptionf  CZend_Paginator_Adapter_Nullf$ KZend_Paginator_Adapter_Iteratorf) UZend_Paginator_Adapter_DbTableSelectf$ KZend_Paginator_Adapter_DbSelectf! EZend_Paginator_Adapter_Arrayf #Zend_OpenIdf 5Zend_OpenId_Providerf ?Zend_OpenId_Provider_Userf& OZend_OpenId_Provider_User_Sessionf! EZend_OpenId_Provider_Storagef& OZend_OpenId_Provider_Storage_Filef
 7Zend_OpenId_Extensionf	 AZend_OpenId_Extension_Sregf 7Zend_OpenId_Exceptionf 5Zend_OpenId_Consumerf! EZend_OpenId_Consumer_Storagef& OZend_OpenId_Consumer_Storage_Filef Zend_Mimef )Zend_Mime_Partf /Zend_Mime_Messagef 3Zend_Mime_Exceptionf  -Zend_Mime_Decodef #Zend_Memoryf~ /Zend_Memory_Valuef} 3Zend_Memory_Managerf| 7Zend_Memory_Exceptionf{ 7Zend_Memory_Containerf"z GZend_Memory_Container_Movablef!y EZend_Memory_Container_Lockedf!x EZend_Memory_AccessControllerfw 3Zend_Measure_Weightfv 3Zend_Measure_Volumef%u MZend_Measure_Viscosity_Kinematicf#t IZend_Measure_Viscosity_Dynamicfs 3Zend_Measure_Torquefr /Zend_Measure_Timefq =Zend_Measure_Temperaturefp 1Zend_Measure_Speedfo 7Zend_Measure_Pressurefn 1Zend_Measure_Powerfm 3Zend_Measure_Numberfl 9Zend_Measure_Lightnessfk 3Zend_Measure_Lengthfj ?Zend_Measure_Illuminationf   W  ~>UeF!wYB\4




v
L
,
					S	GQ$G]1uV1{AiCB                                               *- WZend_Search_Lucene_Search_Query_Emptyf,, [Zend_Search_Lucene_Search_Query_Booleanf:+ wZend_Search_Lucene_Search_BooleanExpressionRecognizerf* =Zend_Search_Lucene_Proxyf%) MZend_Search_Lucene_PriorityQueuef#( IZend_Search_Lucene_LockManagerf$' KZend_Search_Lucene_Index_Writerf&& OZend_Search_Lucene_Index_TermInfof"% GZend_Search_Lucene_Index_Termf+$ YZend_Search_Lucene_Index_SegmentWriterf8# sZend_Search_Lucene_Index_SegmentWriter_StreamWriterf:" wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterf+! YZend_Search_Lucene_Index_SegmentMergerf6  oZend_Search_Lucene_Index_SegmentInfoPriorityQueuef) UZend_Search_Lucene_Index_SegmentInfof' QZend_Search_Lucene_Index_FieldInfof( SZend_Search_Lucene_Index_DocsFilterf. _Zend_Search_Lucene_Index_DictionaryLoaderf! EZend_Search_Lucene_FSMActionf 9Zend_Search_Lucene_FSMf =Zend_Search_Lucene_Fieldf! EZend_Search_Lucene_Exceptionf  CZend_Search_Lucene_Documentf% MZend_Search_Lucene_Document_Xlsxf% MZend_Search_Lucene_Document_Pptxf( SZend_Search_Lucene_Document_OpenXmlf% MZend_Search_Lucene_Document_Htmlf* WZend_Search_Lucene_Document_Exceptionf% MZend_Search_Lucene_Document_Docxf, [Zend_Search_Lucene_Analysis_TokenFilterf6 oZend_Search_Lucene_Analysis_TokenFilter_StopWordsf7 qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsf: wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8f6 oZend_Search_Lucene_Analysis_TokenFilter_LowerCasef& OZend_Search_Lucene_Analysis_Tokenf)
 UZend_Search_Lucene_Analysis_Analyzerf0	 cZend_Search_Lucene_Analysis_Analyzer_Commonf8 sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumfI Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitivef5 mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8fF Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitivef8 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumfI Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitivef5 mZend_Search_Lucene_Analysis_Analyzer_Common_TextfF Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitivef  7Zend_Search_Exceptionf -Zend_Rest_Serverf~ AZend_Rest_Server_Exceptionf} 3Zend_Rest_Exceptionf| -Zend_Rest_Clientf{ ;Zend_Rest_Client_Resultf&z OZend_Rest_Client_Result_Exceptionfy AZend_Rest_Client_Exceptionfx 'Zend_Registryfw -Zend_ProgressBarfv AZend_ProgressBar_Exceptionfu =Zend_ProgressBar_Adapterf$t KZend_ProgressBar_Adapter_JsPushf$s KZend_ProgressBar_Adapter_JsPullf'r QZend_ProgressBar_Adapter_Exceptionf%q MZend_ProgressBar_Adapter_Consolefp Zend_Pdff!o EZend_Pdf_UpdateInfoContainerfn -Zend_Pdf_Trailerfm ;Zend_Pdf_Trailer_Keeperfl AZend_Pdf_Trailer_Generatorfk )Zend_Pdf_Stylefj 7Zend_Pdf_StringParserfi /Zend_Pdf_Resourcef#h IZend_Pdf_Resource_ImageFactoryfg ;Zend_Pdf_Resource_Imagef!f EZend_Pdf_Resource_Image_Tifff e CZend_Pdf_Resource_Image_Pngf!d EZend_Pdf_Resource_Image_Jpegfc 9Zend_Pdf_Resource_Fontf!b EZend_Pdf_Resource_Font_Type0f"a GZend_Pdf_Resource_Font_Simplef+` YZend_Pdf_Resource_Font_Simple_Standardf8_ sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsf6^ oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanf7] qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicf;\ yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicf5[ mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldf2Z gZend_Pdf_Resource_Font_Simple_Standard_Symbolf<Y {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliquefAX Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliquef9W uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldf   `  j;Sf8j=zL#



\
4
						[	6	jD fI!];c:dA}V8nN)]2                     $ KZend_Service_Simpy_WatchlistSetf* WZend_Service_Simpy_WatchlistFilterSetf' QZend_Service_Simpy_WatchlistFilterf!
 EZend_Service_Simpy_Watchlistf	 ?Zend_Service_Simpy_TagSetf 9Zend_Service_Simpy_Tagf AZend_Service_Simpy_NoteSetf ;Zend_Service_Simpy_Notef AZend_Service_Simpy_LinkSetf! EZend_Service_Simpy_LinkQueryf ;Zend_Service_Simpy_Linkf 9Zend_Service_ReCaptchaf$ KZend_Service_ReCaptcha_Responsef$  KZend_Service_ReCaptcha_MailHidef. _Zend_Service_ReCaptcha_MailHide_Exceptionf%~ MZend_Service_ReCaptcha_Exceptionf} 7Zend_Service_Nirvanixf#| IZend_Service_Nirvanix_Responsef){ UZend_Service_Nirvanix_Namespace_Imfsf)z UZend_Service_Nirvanix_Namespace_Basef$y KZend_Service_Nirvanix_Exceptionfx 3Zend_Service_Flickrf"w GZend_Service_Flickr_ResultSetfv AZend_Service_Flickr_Resultfu ?Zend_Service_Flickr_Imageft 9Zend_Service_Exceptionfs 9Zend_Service_Deliciousf&r OZend_Service_Delicious_SimplePostf$q KZend_Service_Delicious_PostListf p CZend_Service_Delicious_Postf%o MZend_Service_Delicious_Exceptionf n CZend_Service_Audioscrobblerfm 3Zend_Service_Amazonf'l QZend_Service_Amazon_SimilarProductf"k GZend_Service_Amazon_ResultSetfj ?Zend_Service_Amazon_Queryf!i EZend_Service_Amazon_OfferSetfh ?Zend_Service_Amazon_Offerf&g OZend_Service_Amazon_ListmaniaListff =Zend_Service_Amazon_Itemfe ?Zend_Service_Amazon_Imagef(d SZend_Service_Amazon_EditorialReviewf'c QZend_Service_Amazon_CustomerReviewf$b KZend_Service_Amazon_Accessoriesfa 5Zend_Service_Akismetf` 7Zend_Service_Abstractf_ 9Zend_Server_Reflectionf'^ QZend_Server_Reflection_ReturnValuef%] MZend_Server_Reflection_Prototypef%\ MZend_Server_Reflection_Parameterf [ CZend_Server_Reflection_Nodef"Z GZend_Server_Reflection_Methodf$Y KZend_Server_Reflection_Functionf-X ]Zend_Server_Reflection_Function_Abstractf%W MZend_Server_Reflection_Exceptionf!V EZend_Server_Reflection_Classf!U EZend_Server_Method_Prototypef!T EZend_Server_Method_Parameterf"S GZend_Server_Method_Definitionf R CZend_Server_Method_CallbackfQ 7Zend_Server_ExceptionfP 9Zend_Server_DefinitionfO /Zend_Server_CachefN 5Zend_Server_AbstractfM 1Zend_Search_Lucenef$L KZend_Search_Lucene_Storage_Filef+K YZend_Search_Lucene_Storage_File_Memoryf/J aZend_Search_Lucene_Storage_File_Filesystemf)I UZend_Search_Lucene_Storage_Directoryf4H kZend_Search_Lucene_Storage_Directory_Filesystemf%G MZend_Search_Lucene_Search_Weightf*F WZend_Search_Lucene_Search_Weight_Termf,E [Zend_Search_Lucene_Search_Weight_Phrasef/D aZend_Search_Lucene_Search_Weight_MultiTermf+C YZend_Search_Lucene_Search_Weight_Emptyf-B ]Zend_Search_Lucene_Search_Weight_Booleanf)A UZend_Search_Lucene_Search_Similarityf1@ eZend_Search_Lucene_Search_Similarity_Defaultf)? UZend_Search_Lucene_Search_QueryTokenf3> iZend_Search_Lucene_Search_QueryParserExceptionf1= eZend_Search_Lucene_Search_QueryParserContextf*< WZend_Search_Lucene_Search_QueryParserf); UZend_Search_Lucene_Search_QueryLexerf': QZend_Search_Lucene_Search_QueryHitf)9 UZend_Search_Lucene_Search_QueryEntryf.8 _Zend_Search_Lucene_Search_QueryEntry_Termf27 gZend_Search_Lucene_Search_QueryEntry_Subqueryf06 cZend_Search_Lucene_Search_QueryEntry_Phrasef$5 KZend_Search_Lucene_Search_Queryf-4 ]Zend_Search_Lucene_Search_Query_Wildcardf)3 UZend_Search_Lucene_Search_Query_Termf*2 WZend_Search_Lucene_Search_Query_Rangef+1 YZend_Search_Lucene_Search_Query_Phrasef.0 _Zend_Search_Lucene_Search_Query_MultiTermf2/ gZend_Search_Lucene_Search_Query_Insignificantf*. WZend_Search_Lucene_Search_Query_Fuzzyf   e  qL"eE`+~T'uG!




r
Q
*
 			~	T	.	g@qR)kL,uP/
h4_+kCjO9                                r AZend_Translate_Adapter_Csvf!q EZend_Translate_Adapter_Arrayfp 'Zend_TimeSyncfo 1Zend_TimeSync_Sntpfn 9Zend_TimeSync_Protocolfm /Zend_TimeSync_Ntpfl ;Zend_TimeSync_Exceptionfk +Zend_Text_Tablefj 3Zend_Text_Table_Rowfi ?Zend_Text_Table_Exceptionf&h OZend_Text_Table_Decorator_Unicodef$g KZend_Text_Table_Decorator_Asciiff 9Zend_Text_Table_Columnfe 3Zend_Text_MultiBytefd -Zend_Text_Figletfc AZend_Text_Figlet_Exceptionfb 3Zend_Text_Exceptionf)a UZend_Test_PHPUnit_ControllerTestCasef0` cZend_Test_PHPUnit_Constraint_ResponseHeaderf*_ WZend_Test_PHPUnit_Constraint_Redirectf+^ YZend_Test_PHPUnit_Constraint_Exceptionf*] WZend_Test_PHPUnit_Constraint_DomQueryf\ )Zend_Soap_Wsdlf/[ aZend_Soap_Wsdl_Strategy_DefaultComplexTypef0Z cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequencef/Y aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplexf$X KZend_Soap_Wsdl_Strategy_AnyTypef%W MZend_Soap_Wsdl_Strategy_AbstractfV 7Zend_Soap_Wsdl_Parserf!U EZend_Soap_Wsdl_Parser_ResultfT =Zend_Soap_Wsdl_Exceptionf!S EZend_Soap_Wsdl_CodeGeneratorfR -Zend_Soap_ServerfQ AZend_Soap_Server_ExceptionfP -Zend_Soap_ClientfO 9Zend_Soap_Client_LocalfN AZend_Soap_Client_ExceptionfM ;Zend_Soap_Client_DotNetfL ;Zend_Soap_Client_CommonfK 9Zend_Soap_AutoDiscoverf%J MZend_Soap_AutoDiscover_ExceptionfI %Zend_Sessionf)H UZend_Session_Validator_HttpUserAgentf$G KZend_Session_Validator_Abstractf'F QZend_Session_SaveHandler_Exceptionf%E MZend_Session_SaveHandler_DbTablefD 9Zend_Session_NamespacefC 9Zend_Session_ExceptionfB 7Zend_Session_AbstractfA 1Zend_Service_Yahoof$@ KZend_Service_Yahoo_WebResultSetf!? EZend_Service_Yahoo_WebResultf&> OZend_Service_Yahoo_VideoResultSetf#= IZend_Service_Yahoo_VideoResultf!< EZend_Service_Yahoo_ResultSetf; ?Zend_Service_Yahoo_Resultf): UZend_Service_Yahoo_PageDataResultSetf&9 OZend_Service_Yahoo_PageDataResultf%8 MZend_Service_Yahoo_NewsResultSetf"7 GZend_Service_Yahoo_NewsResultf&6 OZend_Service_Yahoo_LocalResultSetf#5 IZend_Service_Yahoo_LocalResultf+4 YZend_Service_Yahoo_InlinkDataResultSetf(3 SZend_Service_Yahoo_InlinkDataResultf&2 OZend_Service_Yahoo_ImageResultSetf#1 IZend_Service_Yahoo_ImageResultf0 =Zend_Service_Yahoo_Imagef/ 5Zend_Service_Twitterf . CZend_Service_Twitter_Searchf#- IZend_Service_Twitter_Exceptionf, ;Zend_Service_Technoratif#+ IZend_Service_Technorati_Weblogf"* GZend_Service_Technorati_Utilsf*) WZend_Service_Technorati_TagsResultSetf'( QZend_Service_Technorati_TagsResultf)' UZend_Service_Technorati_TagResultSetf&& OZend_Service_Technorati_TagResultf,% [Zend_Service_Technorati_SearchResultSetf)$ UZend_Service_Technorati_SearchResultf&# OZend_Service_Technorati_ResultSetf#" IZend_Service_Technorati_Resultf*! WZend_Service_Technorati_KeyInfoResultf*  WZend_Service_Technorati_GetInfoResultf& OZend_Service_Technorati_Exceptionf1 eZend_Service_Technorati_DailyCountsResultSetf. _Zend_Service_Technorati_DailyCountsResultf, [Zend_Service_Technorati_CosmosResultSetf) UZend_Service_Technorati_CosmosResultf+ YZend_Service_Technorati_BlogInfoResultf# IZend_Service_Technorati_Authorf ;Zend_Service_StrikeIronf( SZend_Service_StrikeIron_ZipCodeInfof2 gZend_Service_StrikeIron_USAddressVerificationf- ]Zend_Service_StrikeIron_SalesUseTaxBasicf& OZend_Service_StrikeIron_Exceptionf& OZend_Service_StrikeIron_Decoratorf! EZend_Service_StrikeIron_Basef ;Zend_Service_SlideSharef& OZend_Service_SlideShare_SlideShowf& OZend_Service_SlideShare_Exceptionf 1Zend_Service_Simpyf   p  qN)|kL0uZ=a?eF"





]
C
!					w	U	3	eI&]<iG# jG$ rP,	|X6U4d5                      4b kZend_View_Helper_Placeholder_Registry_Exceptionf+a YZend_View_Helper_Placeholder_Containerf6` oZend_View_Helper_Placeholder_Container_Standalonef5_ mZend_View_Helper_Placeholder_Container_Exceptionf4^ kZend_View_Helper_Placeholder_Container_Abstractf!] EZend_View_Helper_PartialLoopf\ =Zend_View_Helper_Partialf'[ QZend_View_Helper_Partial_Exceptionf'Z QZend_View_Helper_PaginationControlfY ;Zend_View_Helper_LayoutfX 7Zend_View_Helper_Jsonf"W GZend_View_Helper_InlineScriptf#V IZend_View_Helper_HtmlQuicktimefU ?Zend_View_Helper_HtmlPagef T CZend_View_Helper_HtmlObjectfS ?Zend_View_Helper_HtmlListfR AZend_View_Helper_HtmlFlashf!Q EZend_View_Helper_HtmlElementfP AZend_View_Helper_HeadTitlefO AZend_View_Helper_HeadStylef N CZend_View_Helper_HeadScriptfM ?Zend_View_Helper_HeadMetafL ?Zend_View_Helper_HeadLinkf"K GZend_View_Helper_FormTextareafJ ?Zend_View_Helper_FormTextf I CZend_View_Helper_FormSubmitf H CZend_View_Helper_FormSelectfG AZend_View_Helper_FormResetfF AZend_View_Helper_FormRadiof"E GZend_View_Helper_FormPasswordfD ?Zend_View_Helper_FormNotef'C QZend_View_Helper_FormMultiCheckboxfB AZend_View_Helper_FormLabelfA AZend_View_Helper_FormImagef @ CZend_View_Helper_FormHiddenf? ?Zend_View_Helper_FormFilef > CZend_View_Helper_FormErrorsf!= EZend_View_Helper_FormElementf"< GZend_View_Helper_FormCheckboxf ; CZend_View_Helper_FormButtonf: 7Zend_View_Helper_Formf9 ?Zend_View_Helper_Fieldsetf8 =Zend_View_Helper_Doctypef!7 EZend_View_Helper_DeclareVarsf6 ;Zend_View_Helper_Actionf5 ?Zend_View_Helper_Abstractf4 3Zend_View_Exceptionf3 1Zend_View_Abstractf2 %Zend_Versionf1 'Zend_Validatef0 AZend_Validate_StringLengthf/ 3Zend_Validate_Regexf. 9Zend_Validate_NotEmptyf- 9Zend_Validate_LessThanf, -Zend_Validate_Ipf+ /Zend_Validate_Intf* 7Zend_Validate_InArrayf) ;Zend_Validate_Identicalf( 9Zend_Validate_Hostnamef' ?Zend_Validate_Hostname_Sef& ?Zend_Validate_Hostname_Nof% ?Zend_Validate_Hostname_Lif$ ?Zend_Validate_Hostname_Huf# ?Zend_Validate_Hostname_Fif" ?Zend_Validate_Hostname_Def! ?Zend_Validate_Hostname_Chf  ?Zend_Validate_Hostname_Atf /Zend_Validate_Hexf ?Zend_Validate_GreaterThanf 3Zend_Validate_Floatf ?Zend_Validate_File_Uploadf ;Zend_Validate_File_Sizef ;Zend_Validate_File_Sha1f! EZend_Validate_File_NotExistsf  CZend_Validate_File_MimeTypef 9Zend_Validate_File_Md5f AZend_Validate_File_IsImagef$ KZend_Validate_File_IsCompressedf! EZend_Validate_File_ImageSizef ;Zend_Validate_File_Hashf! EZend_Validate_File_FilesSizef! EZend_Validate_File_Extensionf ?Zend_Validate_File_Existsf' QZend_Validate_File_ExcludeMimeTypef( SZend_Validate_File_ExcludeExtensionf =Zend_Validate_File_Crc32f =Zend_Validate_File_Countf ;Zend_Validate_Exceptionf
 AZend_Validate_EmailAddressf	 5Zend_Validate_Digitsf 1Zend_Validate_Datef 3Zend_Validate_Ccnumf 7Zend_Validate_Betweenf 7Zend_Validate_Barcodef AZend_Validate_Barcode_UpcAf  CZend_Validate_Barcode_Ean13f 3Zend_Validate_Alphaf 3Zend_Validate_Alnumf  9Zend_Validate_Abstractf Zend_Urif~ 'Zend_Uri_Httpf} 1Zend_Uri_Exceptionf| )Zend_Translatef{ =Zend_Translate_Exceptionfz 9Zend_Translate_Adapterf!y EZend_Translate_Adapter_XmlTmf!x EZend_Translate_Adapter_Xlifffw AZend_Translate_Adapter_Tmxfv AZend_Translate_Adapter_Tbxfu ?Zend_Translate_Adapter_Qtft AZend_Translate_Adapter_Inif#s IZend_Translate_Adapter_Gettextf   j  ]@'lGvG nL/kJ(



y
[
:
						a	K	:		d@~_E#N];^4_5V/}P1                    L 9Zend_Auth_Adapter_LdapgK AZend_Auth_Adapter_InfoCardgJ 9Zend_Auth_Adapter_Httpg)I UZend_Auth_Adapter_Http_Resolver_Fileg.H _Zend_Auth_Adapter_Http_Resolver_Exceptiong G CZend_Auth_Adapter_ExceptiongF =Zend_Auth_Adapter_DigestgE ?Zend_Auth_Adapter_DbTablegD -Zend_Applicationg#C IZend_Application_Resource_Viewg(B SZend_Application_Resource_Translateg&A OZend_Application_Resource_Sessiong%@ MZend_Application_Resource_Routerg/? aZend_Application_Resource_ResourceAbstractg)> UZend_Application_Resource_Navigationg&= OZend_Application_Resource_Modulesg%< MZend_Application_Resource_Localeg%; MZend_Application_Resource_Layoutg.: _Zend_Application_Resource_Frontcontrollerg(9 SZend_Application_Resource_Exceptiong!8 EZend_Application_Resource_Dbg&7 OZend_Application_Module_Bootstrapg'6 QZend_Application_Module_Autoloaderg5 AZend_Application_Exceptiong)4 UZend_Application_Bootstrap_Exceptiong13 eZend_Application_Bootstrap_BootstrapAbstractg)2 UZend_Application_Bootstrap_Bootstrapg1 ?Zend_Amf_Value_TraitsInfog-0 ]Zend_Amf_Value_Messaging_RemotingMessageg*/ WZend_Amf_Value_Messaging_ErrorMessageg,. [Zend_Amf_Value_Messaging_CommandMessageg*- WZend_Amf_Value_Messaging_AsyncMessageg0, cZend_Amf_Value_Messaging_AcknowledgeMessageg-+ ]Zend_Amf_Value_Messaging_AbstractMessageg!* EZend_Amf_Value_MessageHeaderg) AZend_Amf_Value_MessageBodyg( =Zend_Amf_Value_ByteArrayg' AZend_Amf_Util_BinaryStreamg& +Zend_Amf_Serverg% ?Zend_Amf_Server_Exceptiong$ /Zend_Amf_Responseg# 9Zend_Amf_Response_Httpg" -Zend_Amf_Requestg! 7Zend_Amf_Request_Httpg  ?Zend_Amf_Parse_TypeLoaderg ?Zend_Amf_Parse_Serializerg  CZend_Amf_Parse_OutputStreamg AZend_Amf_Parse_InputStreamg  CZend_Amf_Parse_Deserializerg# IZend_Amf_Parse_Amf3_Serializerg% MZend_Amf_Parse_Amf3_Deserializerg# IZend_Amf_Parse_Amf0_Serializerg% MZend_Amf_Parse_Amf0_Deserializerg 1Zend_Amf_Exceptiong 1Zend_Amf_Constantsg Zend_Aclg 'Zend_Acl_Roleg 9Zend_Acl_Role_Registryg% MZend_Acl_Role_Registry_Exceptiong /Zend_Acl_Resourceg 1Zend_Acl_Exceptiong /Zend_XmlRpc_Valuef =Zend_XmlRpc_Value_Structf =Zend_XmlRpc_Value_Stringf =Zend_XmlRpc_Value_Scalarf 7Zend_XmlRpc_Value_Nilf
 ?Zend_XmlRpc_Value_Integerf 	 CZend_XmlRpc_Value_Exceptionf =Zend_XmlRpc_Value_Doublef AZend_XmlRpc_Value_DateTimef! EZend_XmlRpc_Value_Collectionf ?Zend_XmlRpc_Value_Booleanf =Zend_XmlRpc_Value_Base64f ;Zend_XmlRpc_Value_Arrayf 1Zend_XmlRpc_Serverf ?Zend_XmlRpc_Server_Systemf  =Zend_XmlRpc_Server_Faultf! EZend_XmlRpc_Server_Exceptionf~ =Zend_XmlRpc_Server_Cachef} 5Zend_XmlRpc_Responsef| ?Zend_XmlRpc_Response_Httpf{ 3Zend_XmlRpc_Requestfz ?Zend_XmlRpc_Request_Stdinfy =Zend_XmlRpc_Request_Httpfx /Zend_XmlRpc_Faultfw 7Zend_XmlRpc_Exceptionfv 1Zend_XmlRpc_Clientf#u IZend_XmlRpc_Client_ServerProxyf+t YZend_XmlRpc_Client_ServerIntrospectionf+s YZend_XmlRpc_Client_IntrospectExceptionf%r MZend_XmlRpc_Client_HttpExceptionf&q OZend_XmlRpc_Client_FaultExceptionf!p EZend_XmlRpc_Client_Exceptionf&o OZend_Wildfire_Protocol_JsonStreamf!n EZend_Wildfire_Plugin_FirePhpf.m _Zend_Wildfire_Plugin_FirePhp_TableMessagef)l UZend_Wildfire_Plugin_FirePhp_Messagefk ;Zend_Wildfire_Exceptionf&j OZend_Wildfire_Channel_HttpHeadersfi Zend_Viewfh -Zend_View_Streamfg 5Zend_View_Helper_Urlff AZend_View_Helper_Translatef)e UZend_View_Helper_RenderToPlaceholderf!d EZend_View_Helper_Placeholderf*c WZend_View_Helper_Placeholder_Registryf   \  V-[2\6mC|`8



g
D

				`	9	m=\2T-V2cJx1e,a1                +: YZend_Tool_Framework_Registry_Interfaceg29 gZend_Tool_Framework_Registry_EnabledInterfaceg-8 ]Zend_Tool_Framework_Provider_Pretendableg+7 YZend_Tool_Framework_Provider_Interfaceg.6 _Zend_Tool_Framework_Provider_Interactableg;5 yZend_Tool_Framework_Provider_DocblockManifestInterfaceg+4 YZend_Tool_Framework_Metadata_Interfaceg63 oZend_Tool_Framework_Manifest_ProviderManifestableg62 oZend_Tool_Framework_Manifest_MetadataManifestableg+1 YZend_Tool_Framework_Manifest_Interfaceg+0 YZend_Tool_Framework_Manifest_Indexableg4/ kZend_Tool_Framework_Manifest_ActionManifestablegD. 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interfaceg;- yZend_Tool_Framework_Client_Interactive_OutputInterfaceg:, wZend_Tool_Framework_Client_Interactive_InputInterfaceg)+ UZend_Tool_Framework_Action_Interfaceg(* SZend_Text_Table_Decorator_Interfaceg) /Zend_Tag_Taggableg&( OZend_Soap_Wsdl_Strategy_Interfaceg%' MZend_Session_Validator_Interfaceg'& QZend_Session_SaveHandler_Interfaceg% 7Zend_Server_Interfaceg4$ kZend_Search_Lucene_Search_Highlighter_Interfaceg!# EZend_Search_Lucene_Interfaceg3" iZend_Search_Lucene_Index_TermsStream_Interfaceg! ?Zend_Pdf_Filter_Interfaceg&  OZend_Pdf_ElementFactory_Interfaceg, [Zend_Paginator_ScrollingStyle_Interfaceg% MZend_Paginator_Adapter_Interfaceg$ KZend_Memory_Container_Interfaceg) UZend_Mail_Storage_Writable_Interfaceg' QZend_Mail_Storage_Folder_Interfaceg =Zend_Mail_Part_Interfaceg  CZend_Mail_Message_Interfaceg! EZend_Log_Formatter_Interfaceg ?Zend_Log_Filter_Interfaceg' QZend_Loader_PluginLoader_Interfaceg% MZend_Loader_Autoloader_Interfaceg3 iZend_InfoCard_Xml_Security_Transform_Interfaceg( SZend_InfoCard_Xml_KeyInfo_Interfaceg( SZend_InfoCard_Xml_Element_Interfaceg* WZend_InfoCard_Xml_Assertion_Interfaceg- ]Zend_InfoCard_Cipher_Symmetric_Interfaceg7 qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interfaceg7 qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interfaceg+ YZend_InfoCard_Cipher_Pki_Rsa_Interfaceg' QZend_InfoCard_Cipher_Pki_Interfaceg$ KZend_InfoCard_Adapter_Interfaceg'
 QZend_Http_Client_Adapter_Interfaceg	 AZend_Gdata_App_MediaSourceg. _Zend_Form_Decorator_Marker_File_Interfaceg" GZend_Form_Decorator_Interfaceg 7Zend_Filter_Interfaceg" GZend_Filter_Encrypt_Interfaceg  CZend_Feed_Builder_Interfaceg  CZend_Db_Statement_Interfaceg) UZend_Crypt_Math_BigInteger_Interfaceg+ YZend_Controller_Router_Route_Interfaceg%  MZend_Controller_Router_Interfaceg) UZend_Controller_Dispatcher_Interfaceg%~ MZend_Controller_Action_Interfaceg} 5Zend_Captcha_Adapterg!| EZend_Cache_Backend_Interfaceg){ UZend_Cache_Backend_ExtendedInterfaceg z CZend_Auth_Storage_Interfaceg y CZend_Auth_Adapter_Interfaceg.x _Zend_Auth_Adapter_Http_Resolver_Interfaceg'w QZend_Application_Resource_Resourceg4v kZend_Application_Bootstrap_ResourceBootstrapperg,u [Zend_Application_Bootstrap_Bootstrappergt ;Zend_Acl_Role_Interfaceg s CZend_Acl_Resource_Interfacegr ?Zend_Acl_Assert_Interfaceg#q IZend_Wildfire_Plugin_Interfacef$p KZend_Wildfire_Channel_Interfacefo 3Zend_View_Interfacefn AZend_View_Helper_Interfacefm ;Zend_Validate_Interfacef%l MZend_Validate_Hostname_Interfacef(k SZend_Text_Table_Decorator_Interfacef&j OZend_Soap_Wsdl_Strategy_Interfacef%i MZend_Session_Validator_Interfacef'h QZend_Session_SaveHandler_Interfacefg 7Zend_Server_Interfacef!f EZend_Search_Lucene_Interfacefe 9Zend_Request_Interfacefd ?Zend_Pdf_Filter_Interfacef&c OZend_Pdf_ElementFactory_Interfacef,b [Zend_Paginator_ScrollingStyle_Interfacef%a MZend_Paginator_Adapter_Interfacef$` KZend_Memory_Container_Interfacef)_ UZend_Mail_Storage_Writable_Interfacef   e  ^<*_=}eH&oU6}U1


s
G
				s	M	$gL4 T"o;MoC!^5h>rI"                                   *1 WZend_Controller_Router_Route_Abstractg#0 IZend_Controller_Router_Rewriteg%/ MZend_Controller_Router_Exceptiong$. KZend_Controller_Router_Abstractg*- WZend_Controller_Response_HttpTestCaseg", GZend_Controller_Response_Httpg'+ QZend_Controller_Response_Exceptiong!* EZend_Controller_Response_Clig&) OZend_Controller_Response_Abstractg#( IZend_Controller_Request_Simpleg)' UZend_Controller_Request_HttpTestCaseg!& EZend_Controller_Request_Httpg&% OZend_Controller_Request_Exceptiong&$ OZend_Controller_Request_Apache404g%# MZend_Controller_Request_Abstractg(" SZend_Controller_Plugin_ErrorHandlerg"! GZend_Controller_Plugin_Brokerg'  QZend_Controller_Plugin_ActionStackg$ KZend_Controller_Plugin_Abstractg 7Zend_Controller_Frontg ?Zend_Controller_Exceptiong( SZend_Controller_Dispatcher_Standardg) UZend_Controller_Dispatcher_Exceptiong( SZend_Controller_Dispatcher_Abstractg 9Zend_Controller_Actiong( SZend_Controller_Action_HelperBrokerg6 oZend_Controller_Action_HelperBroker_PriorityStackg/ aZend_Controller_Action_Helper_ViewRendererg& OZend_Controller_Action_Helper_Urlg- ]Zend_Controller_Action_Helper_Redirectorg' QZend_Controller_Action_Helper_Jsong1 eZend_Controller_Action_Helper_FlashMessengerg0 cZend_Controller_Action_Helper_ContextSwitchg< {Zend_Controller_Action_Helper_AutoCompleteScriptaculousg3 iZend_Controller_Action_Helper_AutoCompleteDojog8 sZend_Controller_Action_Helper_AutoComplete_Abstractg. _Zend_Controller_Action_Helper_AjaxContextg. _Zend_Controller_Action_Helper_ActionStackg+ YZend_Controller_Action_Helper_Abstractg%
 MZend_Controller_Action_Exceptiong	 3Zend_Console_Getoptg" GZend_Console_Getopt_Exceptiong #Zend_Configg +Zend_Config_Xmlg 1Zend_Config_Writerg 9Zend_Config_Writer_Xmlg 9Zend_Config_Writer_Inig =Zend_Config_Writer_Arrayg +Zend_Config_Inig  7Zend_Config_Exceptiong$ KZend_CodeGenerator_Php_Propertyg%~ MZend_CodeGenerator_Php_Parameterg"} GZend_CodeGenerator_Php_Methodg,| [Zend_CodeGenerator_Php_Member_Containerg+{ YZend_CodeGenerator_Php_Member_Abstractg z CZend_CodeGenerator_Php_Fileg%y MZend_CodeGenerator_Php_Exceptiong$x KZend_CodeGenerator_Php_Docblockg(w SZend_CodeGenerator_Php_Docblock_Tagg/v aZend_CodeGenerator_Php_Docblock_Tag_Returng.u _Zend_CodeGenerator_Php_Docblock_Tag_Paramg0t cZend_CodeGenerator_Php_Docblock_Tag_Licenseg!s EZend_CodeGenerator_Php_Classg r CZend_CodeGenerator_Php_Bodyg$q KZend_CodeGenerator_Php_Abstractg!p EZend_CodeGenerator_Exceptiong o CZend_CodeGenerator_Abstractgn /Zend_Captcha_Wordgm 9Zend_Captcha_ReCaptchagl 1Zend_Captcha_Imagegk 3Zend_Captcha_Figletgj 9Zend_Captcha_Exceptiongi /Zend_Captcha_Dumbgh /Zend_Captcha_Basegg !Zend_Cachegf =Zend_Cache_Frontend_Pagege AZend_Cache_Frontend_Outputg!d EZend_Cache_Frontend_Functiongc =Zend_Cache_Frontend_Filegb ?Zend_Cache_Frontend_Classga 5Zend_Cache_Exceptiong` +Zend_Cache_Coreg_ 1Zend_Cache_Backendg"^ GZend_Cache_Backend_ZendServerg(] SZend_Cache_Backend_ZendServer_ShMemg'\ QZend_Cache_Backend_ZendServer_Diskg$[ KZend_Cache_Backend_ZendPlatformgZ ?Zend_Cache_Backend_Xcacheg!Y EZend_Cache_Backend_TwoLevelsgX ;Zend_Cache_Backend_TestgW ?Zend_Cache_Backend_Sqliteg!V EZend_Cache_Backend_MemcachedgU ;Zend_Cache_Backend_FilegT 9Zend_Cache_Backend_ApcgS Zend_AuthgR ?Zend_Auth_Storage_Sessiong$Q KZend_Auth_Storage_NonPersistentg P CZend_Auth_Storage_ExceptiongO -Zend_Auth_ResultgN 3Zend_Auth_ExceptiongM =Zend_Auth_Adapter_OpenIdg   l {P$t\2dB'ucB mN)



}
]
;
						m	L	5	T3xU1iSC0i<S%\1]0{U)                                 $ KZend_Dojo_Form_Element_Textareag( SZend_Dojo_Form_Element_SubmitButtong" GZend_Dojo_Form_Element_Sliderg* WZend_Dojo_Form_Element_SimpleTextareag' QZend_Dojo_Form_Element_RadioButtong+ YZend_Dojo_Form_Element_PasswordTextBoxg) UZend_Dojo_Form_Element_NumberTextBoxg) UZend_Dojo_Form_Element_NumberSpinnerg, [Zend_Dojo_Form_Element_HorizontalSliderg+ YZend_Dojo_Form_Element_FilteringSelectg" GZend_Dojo_Form_Element_Editorg& OZend_Dojo_Form_Element_DijitMultig! EZend_Dojo_Form_Element_Dijitg' QZend_Dojo_Form_Element_DateTextBoxg+ YZend_Dojo_Form_Element_CurrencyTextBoxg$ KZend_Dojo_Form_Element_ComboBoxg$ KZend_Dojo_Form_Element_CheckBoxg" GZend_Dojo_Form_Element_Buttong  CZend_Dojo_Form_DisplayGroupg*
 WZend_Dojo_Form_Decorator_TabContainerg,	 [Zend_Dojo_Form_Decorator_StackContainerg, [Zend_Dojo_Form_Decorator_SplitContainerg' QZend_Dojo_Form_Decorator_DijitFormg* WZend_Dojo_Form_Decorator_DijitElementg, [Zend_Dojo_Form_Decorator_DijitContainerg) UZend_Dojo_Form_Decorator_ContentPaneg- ]Zend_Dojo_Form_Decorator_BorderContainerg+ YZend_Dojo_Form_Decorator_AccordionPaneg0 cZend_Dojo_Form_Decorator_AccordionContainerg  3Zend_Dojo_Exceptiong )Zend_Dojo_Datag~ !Zend_Debugg} Zend_Dbg| 'Zend_Db_Tableg{ 5Zend_Db_Table_Selectg#z IZend_Db_Table_Select_Exceptiongy 5Zend_Db_Table_Rowsetg#x IZend_Db_Table_Rowset_Exceptiong"w GZend_Db_Table_Rowset_Abstractgv /Zend_Db_Table_Rowg u CZend_Db_Table_Row_Exceptiongt AZend_Db_Table_Row_Abstractgs ;Zend_Db_Table_Exceptiongr 9Zend_Db_Table_Abstractgq /Zend_Db_Statementgp 7Zend_Db_Statement_Pdogo ?Zend_Db_Statement_Pdo_Ocign ?Zend_Db_Statement_Pdo_Ibmgm =Zend_Db_Statement_Oracleg'l QZend_Db_Statement_Oracle_Exceptiongk =Zend_Db_Statement_Mysqlig'j QZend_Db_Statement_Mysqli_Exceptiong i CZend_Db_Statement_Exceptiongh 7Zend_Db_Statement_Db2g$g KZend_Db_Statement_Db2_Exceptiongf )Zend_Db_Selectge =Zend_Db_Select_Exceptiongd -Zend_Db_Profilergc 9Zend_Db_Profiler_Querygb =Zend_Db_Profiler_Firebugga AZend_Db_Profiler_Exceptiong` %Zend_Db_Exprg_ /Zend_Db_Exceptiong^ AZend_Db_Adapter_Pdo_Sqliteg] ?Zend_Db_Adapter_Pdo_Pgsqlg\ ;Zend_Db_Adapter_Pdo_Ocig[ ?Zend_Db_Adapter_Pdo_MysqlgZ ?Zend_Db_Adapter_Pdo_MssqlgY ;Zend_Db_Adapter_Pdo_Ibmg X CZend_Db_Adapter_Pdo_Ibm_Idsg W CZend_Db_Adapter_Pdo_Ibm_Db2g!V EZend_Db_Adapter_Pdo_AbstractgU 9Zend_Db_Adapter_Oracleg%T MZend_Db_Adapter_Oracle_ExceptiongS 9Zend_Db_Adapter_Mysqlig%R MZend_Db_Adapter_Mysqli_ExceptiongQ ?Zend_Db_Adapter_ExceptiongP 3Zend_Db_Adapter_Db2g"O GZend_Db_Adapter_Db2_ExceptiongN =Zend_Db_Adapter_AbstractgM Zend_DategL 3Zend_Date_ExceptiongK 5Zend_Date_DateObjectgJ -Zend_Date_CitiesgI 'Zend_CurrencygH ;Zend_Currency_ExceptiongG !Zend_CryptgF )Zend_Crypt_RsagE 1Zend_Crypt_Rsa_KeygD ?Zend_Crypt_Rsa_Key_PublicgC AZend_Crypt_Rsa_Key_PrivategB +Zend_Crypt_MathgA ?Zend_Crypt_Math_Exceptiong@ AZend_Crypt_Math_BigIntegerg#? IZend_Crypt_Math_BigInteger_Gmpg#> IZend_Math_BigInteger_Exceptiong&= OZend_Crypt_Math_BigInteger_Bcmathg< +Zend_Crypt_Hmacg; ?Zend_Crypt_Hmac_Exceptiong: 5Zend_Crypt_Exceptiong9 =Zend_Crypt_DiffieHellmang'8 QZend_Crypt_DiffieHellman_Exceptiong!7 EZend_Controller_Router_Routeg(6 SZend_Controller_Router_Route_Staticg'5 QZend_Controller_Router_Route_Regexg(4 SZend_Controller_Router_Route_Moduleg*3 WZend_Controller_Router_Route_Hostnameg'2 QZend_Controller_Router_Route_Chaing   k  }O0mH!xN*Z7X+



V
/
					p	U	4	rJ)iW+rU9dC  lBxV8`6
V,              #Zend_Filterg+ YZend_Filter_Word_UnderscoreToSeparatorg& OZend_Filter_Word_UnderscoreToDashg+ YZend_Filter_Word_UnderscoreToCamelCaseg* WZend_Filter_Word_SeparatorToSeparatorg% MZend_Filter_Word_SeparatorToDashg* WZend_Filter_Word_SeparatorToCamelCaseg( SZend_Filter_Word_Separator_Abstractg&  OZend_Filter_Word_DashToUnderscoreg% MZend_Filter_Word_DashToSeparatorg%~ MZend_Filter_Word_DashToCamelCaseg+} YZend_Filter_Word_CamelCaseToUnderscoreg*| WZend_Filter_Word_CamelCaseToSeparatorg%{ MZend_Filter_Word_CamelCaseToDashgz 7Zend_Filter_StripTagsgy ?Zend_Filter_StripNewlinesgx 9Zend_Filter_StringTrimgw ?Zend_Filter_StringToUppergv ?Zend_Filter_StringToLowergu 5Zend_Filter_RealPathgt ;Zend_Filter_PregReplaceg&s OZend_Filter_NormalizedToLocalizedg&r OZend_Filter_LocalizedToNormalizedgq +Zend_Filter_Intgp /Zend_Filter_Inputgo 7Zend_Filter_Inflectorgn =Zend_Filter_HtmlEntitiesgm AZend_Filter_File_UpperCasegl ;Zend_Filter_File_Renamegk AZend_Filter_File_LowerCasegj =Zend_Filter_File_Encryptgi =Zend_Filter_File_Decryptgh 7Zend_Filter_Exceptiongg 3Zend_Filter_Encryptg f CZend_Filter_Encrypt_Opensslge AZend_Filter_Encrypt_Mcryptgd +Zend_Filter_Dirgc 1Zend_Filter_Digitsgb 3Zend_Filter_Decryptga 5Zend_Filter_Callbackg` 5Zend_Filter_BaseNameg_ /Zend_Filter_Alphag^ /Zend_Filter_Alnumg] 1Zend_File_Transferg!\ EZend_File_Transfer_Exceptiong$[ KZend_File_Transfer_Adapter_Httpg(Z SZend_File_Transfer_Adapter_AbstractgY Zend_FeedgX 'Zend_Feed_RssgW 3Zend_Feed_ExceptiongV 3Zend_Feed_Entry_RssgU 5Zend_Feed_Entry_AtomgT =Zend_Feed_Entry_AbstractgS /Zend_Feed_ElementgR /Zend_Feed_BuildergQ =Zend_Feed_Builder_Headerg$P KZend_Feed_Builder_Header_Itunesg O CZend_Feed_Builder_ExceptiongN ;Zend_Feed_Builder_EntrygM )Zend_Feed_AtomgL 1Zend_Feed_AbstractgK )Zend_ExceptiongJ )Zend_Dom_QuerygI 7Zend_Dom_Query_ResultgH =Zend_Dom_Query_Css2XpathgG 1Zend_Dom_ExceptiongF Zend_Dojog)E UZend_Dojo_View_Helper_VerticalSliderg,D [Zend_Dojo_View_Helper_ValidationTextBoxg&C OZend_Dojo_View_Helper_TimeTextBoxg"B GZend_Dojo_View_Helper_TextBoxg#A IZend_Dojo_View_Helper_Textareag'@ QZend_Dojo_View_Helper_TabContainerg'? QZend_Dojo_View_Helper_SubmitButtong)> UZend_Dojo_View_Helper_StackContainerg)= UZend_Dojo_View_Helper_SplitContainerg!< EZend_Dojo_View_Helper_Sliderg); UZend_Dojo_View_Helper_SimpleTextareag&: OZend_Dojo_View_Helper_RadioButtong*9 WZend_Dojo_View_Helper_PasswordTextBoxg(8 SZend_Dojo_View_Helper_NumberTextBoxg(7 SZend_Dojo_View_Helper_NumberSpinnerg+6 YZend_Dojo_View_Helper_HorizontalSliderg5 AZend_Dojo_View_Helper_Formg*4 WZend_Dojo_View_Helper_FilteringSelectg!3 EZend_Dojo_View_Helper_Editorg2 AZend_Dojo_View_Helper_Dojog)1 UZend_Dojo_View_Helper_Dojo_Containerg)0 UZend_Dojo_View_Helper_DijitContainerg / CZend_Dojo_View_Helper_Dijitg&. OZend_Dojo_View_Helper_DateTextBoxg&- OZend_Dojo_View_Helper_CustomDijitg*, WZend_Dojo_View_Helper_CurrencyTextBoxg&+ OZend_Dojo_View_Helper_ContentPaneg#* IZend_Dojo_View_Helper_ComboBoxg#) IZend_Dojo_View_Helper_CheckBoxg!( EZend_Dojo_View_Helper_Buttong*' WZend_Dojo_View_Helper_BorderContainerg(& SZend_Dojo_View_Helper_AccordionPaneg-% ]Zend_Dojo_View_Helper_AccordionContainerg$ =Zend_Dojo_View_Exceptiong# )Zend_Dojo_Formg" 9Zend_Dojo_Form_SubFormg*! WZend_Dojo_Form_Element_VerticalSliderg-  ]Zend_Dojo_Form_Element_ValidationTextBoxg' QZend_Dojo_Form_Element_TimeTextBoxg# IZend_Dojo_Form_Element_TextBoxg   g  iAi@a:jK,}Z:




v
\
@
&
				~	N	1	h?uO+f>vM(wG$aJ/{Ng8                           o CZend_Gdata_Books_VolumeFeedg!n EZend_Gdata_Books_VolumeEntryg+m YZend_Gdata_Books_Extension_Viewabilityg-l ]Zend_Gdata_Books_Extension_ThumbnailLinkg&k OZend_Gdata_Books_Extension_Reviewg+j YZend_Gdata_Books_Extension_PreviewLinkg(i SZend_Gdata_Books_Extension_InfoLinkg-h ]Zend_Gdata_Books_Extension_Embeddabilityg)g UZend_Gdata_Books_Extension_BooksLinkg-f ]Zend_Gdata_Books_Extension_BooksCategoryg.e _Zend_Gdata_Books_Extension_AnnotationLinkg$d KZend_Gdata_Books_CollectionFeedg%c MZend_Gdata_Books_CollectionEntrygb 1Zend_Gdata_AuthSubga )Zend_Gdata_Appg$` KZend_Gdata_App_VersionExceptiong_ 3Zend_Gdata_App_Utilg#^ IZend_Gdata_App_MediaFileSourceg] ?Zend_Gdata_App_MediaEntryg2\ gZend_Gdata_App_LoggingHttpClientAdapterSocketg[ AZend_Gdata_App_IOExceptiong,Z [Zend_Gdata_App_InvalidArgumentExceptiong!Y EZend_Gdata_App_HttpExceptiong$X KZend_Gdata_App_FeedSourceParentg#W IZend_Gdata_App_FeedEntryParentgV 3Zend_Gdata_App_FeedgU =Zend_Gdata_App_Extensiong!T EZend_Gdata_App_Extension_Urig%S MZend_Gdata_App_Extension_Updatedg#R IZend_Gdata_App_Extension_Titleg"Q GZend_Gdata_App_Extension_Textg%P MZend_Gdata_App_Extension_Summaryg&O OZend_Gdata_App_Extension_Subtitleg$N KZend_Gdata_App_Extension_Sourceg$M KZend_Gdata_App_Extension_Rightsg'L QZend_Gdata_App_Extension_Publishedg$K KZend_Gdata_App_Extension_Persong"J GZend_Gdata_App_Extension_Nameg"I GZend_Gdata_App_Extension_Logog"H GZend_Gdata_App_Extension_Linkg G CZend_Gdata_App_Extension_Idg"F GZend_Gdata_App_Extension_Icong'E QZend_Gdata_App_Extension_Generatorg#D IZend_Gdata_App_Extension_Emailg%C MZend_Gdata_App_Extension_Elementg$B KZend_Gdata_App_Extension_Editedg#A IZend_Gdata_App_Extension_Draftg%@ MZend_Gdata_App_Extension_Controlg)? UZend_Gdata_App_Extension_Contributorg%> MZend_Gdata_App_Extension_Contentg&= OZend_Gdata_App_Extension_Categoryg$< KZend_Gdata_App_Extension_Authorg; =Zend_Gdata_App_Exceptiong: 5Zend_Gdata_App_Entryg,9 [Zend_Gdata_App_CaptchaRequiredExceptiong#8 IZend_Gdata_App_BaseMediaSourceg7 3Zend_Gdata_App_Baseg*6 WZend_Gdata_App_BadMethodCallExceptiong!5 EZend_Gdata_App_AuthExceptiong4 Zend_Formg3 /Zend_Form_SubFormg2 3Zend_Form_Exceptiong1 /Zend_Form_Elementg0 ;Zend_Form_Element_Xhtmlg/ AZend_Form_Element_Textareag. 9Zend_Form_Element_Textg- =Zend_Form_Element_Submitg, =Zend_Form_Element_Selectg+ ;Zend_Form_Element_Resetg* ;Zend_Form_Element_Radiog) AZend_Form_Element_Passwordg"( GZend_Form_Element_Multiselectg$' KZend_Form_Element_MultiCheckboxg& ;Zend_Form_Element_Multig% ;Zend_Form_Element_Imageg$ =Zend_Form_Element_Hiddeng# 9Zend_Form_Element_Hashg" 9Zend_Form_Element_Fileg ! CZend_Form_Element_Exceptiong  AZend_Form_Element_Checkboxg ?Zend_Form_Element_Captchag =Zend_Form_Element_Buttong 9Zend_Form_DisplayGroupg# IZend_Form_Decorator_ViewScriptg# IZend_Form_Decorator_ViewHelperg  CZend_Form_Decorator_Tooltipg( SZend_Form_Decorator_PrepareElementsg ?Zend_Form_Decorator_Labelg ?Zend_Form_Decorator_Imageg  CZend_Form_Decorator_HtmlTagg# IZend_Form_Decorator_FormErrorsg% MZend_Form_Decorator_FormElementsg =Zend_Form_Decorator_Formg =Zend_Form_Decorator_Fileg! EZend_Form_Decorator_Fieldsetg" GZend_Form_Decorator_Exceptiong AZend_Form_Decorator_Errorsg$ KZend_Form_Decorator_DtDdWrapperg$ KZend_Form_Decorator_Descriptiong  CZend_Form_Decorator_Captchag% MZend_Form_Decorator_Captcha_Wordg!
 EZend_Form_Decorator_Callbackg!	 EZend_Form_Decorator_Abstractg   a  uNi:wR6^1j8	



t
V
+
 				R	,	rZ.`:uQ)^;n=g?vW-
\>              P AZend_Gdata_Gbase_ItemQuerygO ?Zend_Gdata_Gbase_ItemFeedgN AZend_Gdata_Gbase_ItemEntrygM 7Zend_Gdata_Gbase_Feedg-L ]Zend_Gdata_Gbase_Extension_BaseAttributegK 9Zend_Gdata_Gbase_EntrygJ -Zend_Gdata_GappsgI AZend_Gdata_Gapps_UserQuerygH ?Zend_Gdata_Gapps_UserFeedgG AZend_Gdata_Gapps_UserEntryg&F OZend_Gdata_Gapps_ServiceExceptiongE 9Zend_Gdata_Gapps_Queryg#D IZend_Gdata_Gapps_NicknameQueryg"C GZend_Gdata_Gapps_NicknameFeedg#B IZend_Gdata_Gapps_NicknameEntryg%A MZend_Gdata_Gapps_Extension_Quotag(@ SZend_Gdata_Gapps_Extension_Nicknameg$? KZend_Gdata_Gapps_Extension_Nameg%> MZend_Gdata_Gapps_Extension_Loging)= UZend_Gdata_Gapps_Extension_EmailListg< 9Zend_Gdata_Gapps_Errorg-; ]Zend_Gdata_Gapps_EmailListRecipientQueryg,: [Zend_Gdata_Gapps_EmailListRecipientFeedg-9 ]Zend_Gdata_Gapps_EmailListRecipientEntryg$8 KZend_Gdata_Gapps_EmailListQueryg#7 IZend_Gdata_Gapps_EmailListFeedg$6 KZend_Gdata_Gapps_EmailListEntryg5 +Zend_Gdata_Feedg4 5Zend_Gdata_Extensiong3 =Zend_Gdata_Extension_Whog2 AZend_Gdata_Extension_Whereg1 ?Zend_Gdata_Extension_Wheng$0 KZend_Gdata_Extension_Visibilityg&/ OZend_Gdata_Extension_Transparencyg". GZend_Gdata_Extension_Reminderg-- ]Zend_Gdata_Extension_RecurrenceExceptiong$, KZend_Gdata_Extension_Recurrenceg + CZend_Gdata_Extension_Ratingg'* QZend_Gdata_Extension_OriginalEventg0) cZend_Gdata_Extension_OpenSearchTotalResultsg.( _Zend_Gdata_Extension_OpenSearchStartIndexg0' cZend_Gdata_Extension_OpenSearchItemsPerPageg"& GZend_Gdata_Extension_FeedLinkg*% WZend_Gdata_Extension_ExtendedPropertyg%$ MZend_Gdata_Extension_EventStatusg## IZend_Gdata_Extension_EntryLinkg"" GZend_Gdata_Extension_Commentsg&! OZend_Gdata_Extension_AttendeeTypeg(  SZend_Gdata_Extension_AttendeeStatusg +Zend_Gdata_Exifg 5Zend_Gdata_Exif_Feedg# IZend_Gdata_Exif_Extension_Timeg# IZend_Gdata_Exif_Extension_Tagsg$ KZend_Gdata_Exif_Extension_Modelg# IZend_Gdata_Exif_Extension_Makeg" GZend_Gdata_Exif_Extension_Isog, [Zend_Gdata_Exif_Extension_ImageUniqueIdg$ KZend_Gdata_Exif_Extension_FStopg* WZend_Gdata_Exif_Extension_FocalLengthg$ KZend_Gdata_Exif_Extension_Flashg' QZend_Gdata_Exif_Extension_Exposureg' QZend_Gdata_Exif_Extension_Distanceg 7Zend_Gdata_Exif_Entryg -Zend_Gdata_Entryg 7Zend_Gdata_DublinCoreg* WZend_Gdata_DublinCore_Extension_Titleg, [Zend_Gdata_DublinCore_Extension_Subjectg+ YZend_Gdata_DublinCore_Extension_Rightsg. _Zend_Gdata_DublinCore_Extension_Publisherg- ]Zend_Gdata_DublinCore_Extension_Languageg/
 aZend_Gdata_DublinCore_Extension_Identifierg+	 YZend_Gdata_DublinCore_Extension_Formatg0 cZend_Gdata_DublinCore_Extension_Descriptiong) UZend_Gdata_DublinCore_Extension_Dateg, [Zend_Gdata_DublinCore_Extension_Creatorg +Zend_Gdata_Docsg 7Zend_Gdata_Docs_Queryg% MZend_Gdata_Docs_DocumentListFeedg& OZend_Gdata_Docs_DocumentListEntryg 9Zend_Gdata_ClientLoging  3Zend_Gdata_Calendarg! EZend_Gdata_Calendar_ListFeedg"~ GZend_Gdata_Calendar_ListEntryg-} ]Zend_Gdata_Calendar_Extension_WebContentg+| YZend_Gdata_Calendar_Extension_Timezoneg9{ uZend_Gdata_Calendar_Extension_SendEventNotificationsg+z YZend_Gdata_Calendar_Extension_Selectedg+y YZend_Gdata_Calendar_Extension_QuickAddg'x QZend_Gdata_Calendar_Extension_Linkg)w UZend_Gdata_Calendar_Extension_Hiddeng(v SZend_Gdata_Calendar_Extension_Colorg.u _Zend_Gdata_Calendar_Extension_AccessLevelg#t IZend_Gdata_Calendar_EventQueryg"s GZend_Gdata_Calendar_EventFeedg#r IZend_Gdata_Calendar_EventEntrygq -Zend_Gdata_Booksg!p EZend_Gdata_Books_VolumeQueryg   ]  pW:`9W)h6xG



V
(

					`	9	\+v@Y,vHpK'tZAg4}S"                                                 ,- [Zend_Gdata_Spreadsheets_SpreadsheetFeedg-, ]Zend_Gdata_Spreadsheets_SpreadsheetEntryg&+ OZend_Gdata_Spreadsheets_ListQueryg%* MZend_Gdata_Spreadsheets_ListFeedg&) OZend_Gdata_Spreadsheets_ListEntryg/( aZend_Gdata_Spreadsheets_Extension_RowCountg-' ]Zend_Gdata_Spreadsheets_Extension_Customg/& aZend_Gdata_Spreadsheets_Extension_ColCountg+% YZend_Gdata_Spreadsheets_Extension_Cellg*$ WZend_Gdata_Spreadsheets_DocumentQueryg&# OZend_Gdata_Spreadsheets_CellQueryg%" MZend_Gdata_Spreadsheets_CellFeedg&! OZend_Gdata_Spreadsheets_CellEntryg  -Zend_Gdata_Queryg /Zend_Gdata_Photosg  CZend_Gdata_Photos_UserQueryg AZend_Gdata_Photos_UserFeedg  CZend_Gdata_Photos_UserEntryg AZend_Gdata_Photos_TagEntryg! EZend_Gdata_Photos_PhotoQueryg  CZend_Gdata_Photos_PhotoFeedg! EZend_Gdata_Photos_PhotoEntryg& OZend_Gdata_Photos_Extension_Widthg' QZend_Gdata_Photos_Extension_Weightg( SZend_Gdata_Photos_Extension_Versiong% MZend_Gdata_Photos_Extension_Userg* WZend_Gdata_Photos_Extension_Timestampg* WZend_Gdata_Photos_Extension_Thumbnailg% MZend_Gdata_Photos_Extension_Sizeg) UZend_Gdata_Photos_Extension_Rotationg+ YZend_Gdata_Photos_Extension_QuotaLimitg- ]Zend_Gdata_Photos_Extension_QuotaCurrentg) UZend_Gdata_Photos_Extension_Positiong( SZend_Gdata_Photos_Extension_PhotoIdg3 iZend_Gdata_Photos_Extension_NumPhotosRemainingg*
 WZend_Gdata_Photos_Extension_NumPhotosg)	 UZend_Gdata_Photos_Extension_Nicknameg% MZend_Gdata_Photos_Extension_Nameg2 gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumg) UZend_Gdata_Photos_Extension_Locationg# IZend_Gdata_Photos_Extension_Idg' QZend_Gdata_Photos_Extension_Heightg2 gZend_Gdata_Photos_Extension_CommentingEnabledg- ]Zend_Gdata_Photos_Extension_CommentCountg' QZend_Gdata_Photos_Extension_Clientg)  UZend_Gdata_Photos_Extension_Checksumg* WZend_Gdata_Photos_Extension_BytesUsedg(~ SZend_Gdata_Photos_Extension_AlbumIdg'} QZend_Gdata_Photos_Extension_Accessg#| IZend_Gdata_Photos_CommentEntryg!{ EZend_Gdata_Photos_AlbumQueryg z CZend_Gdata_Photos_AlbumFeedg!y EZend_Gdata_Photos_AlbumEntrygx AZend_Gdata_MediaMimeStreamgw -Zend_Gdata_Mediagv 7Zend_Gdata_Media_Feedg*u WZend_Gdata_Media_Extension_MediaTitleg.t _Zend_Gdata_Media_Extension_MediaThumbnailg)s UZend_Gdata_Media_Extension_MediaTextg0r cZend_Gdata_Media_Extension_MediaRestrictiong+q YZend_Gdata_Media_Extension_MediaRatingg+p YZend_Gdata_Media_Extension_MediaPlayerg-o ]Zend_Gdata_Media_Extension_MediaKeywordsg)n UZend_Gdata_Media_Extension_MediaHashg*m WZend_Gdata_Media_Extension_MediaGroupg0l cZend_Gdata_Media_Extension_MediaDescriptiong+k YZend_Gdata_Media_Extension_MediaCreditg.j _Zend_Gdata_Media_Extension_MediaCopyrightg,i [Zend_Gdata_Media_Extension_MediaContentg-h ]Zend_Gdata_Media_Extension_MediaCategorygg 9Zend_Gdata_Media_Entrygf AZend_Gdata_Kind_EventEntryge 7Zend_Gdata_HttpClientg*d WZend_Gdata_HttpAdapterStreamingSocketg)c UZend_Gdata_HttpAdapterStreamingProxygb /Zend_Gdata_Healthga ;Zend_Gdata_Health_Queryg&` OZend_Gdata_Health_ProfileListFeedg'_ QZend_Gdata_Health_ProfileListEntryg"^ GZend_Gdata_Health_ProfileFeedg#] IZend_Gdata_Health_ProfileEntryg$\ KZend_Gdata_Health_Extension_Ccrg[ )Zend_Gdata_GeogZ 3Zend_Gdata_Geo_Feedg$Y KZend_Gdata_Geo_Extension_GmlPosg&X OZend_Gdata_Geo_Extension_GmlPointg)W UZend_Gdata_Geo_Extension_GeoRssWheregV 5Zend_Gdata_Geo_EntrygU -Zend_Gdata_Gbaseg"T GZend_Gdata_Gbase_SnippetQueryg!S EZend_Gdata_Gbase_SnippetFeedg"R GZend_Gdata_Gbase_SnippetEntrygQ 9Zend_Gdata_Gbase_Queryg   \  Z2
g>Y+uG\+



w
G
				^	0vFf@nAqK0}W4a:j1a?                                +	 YZend_InfoCard_Xml_EncryptedData_XmlEncg- ]Zend_InfoCard_Xml_EncryptedData_Abstractg ?Zend_InfoCard_Xml_Elementg  CZend_InfoCard_Xml_Assertiong% MZend_InfoCard_Xml_Assertion_Samlg ;Zend_InfoCard_Exceptiong% MZend_InfoCard_Exception_Abstractg 5Zend_InfoCard_Claimsg 5Zend_InfoCard_Cipherg5  mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcg5 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcg4~ kZend_InfoCard_Cipher_Symmetric_Adapter_Abstractg)} UZend_InfoCard_Cipher_Pki_Adapter_Rsag.| _Zend_InfoCard_Cipher_Pki_Adapter_Abstractg#{ IZend_InfoCard_Cipher_Exceptiong$z KZend_InfoCard_Adapter_Exceptiong"y GZend_InfoCard_Adapter_Defaultgx 1Zend_Http_Responsegw 3Zend_Http_Exceptiongv 3Zend_Http_CookieJargu -Zend_Http_Cookiegt -Zend_Http_Clientgs AZend_Http_Client_Exceptiong"r GZend_Http_Client_Adapter_Testg$q KZend_Http_Client_Adapter_Socketg#p IZend_Http_Client_Adapter_Proxyg'o QZend_Http_Client_Adapter_Exceptiong"n GZend_Http_Client_Adapter_Curlgm !Zend_Gdatagl 1Zend_Gdata_YouTubeg"k GZend_Gdata_YouTube_VideoQueryg!j EZend_Gdata_YouTube_VideoFeedg"i GZend_Gdata_YouTube_VideoEntryg(h SZend_Gdata_YouTube_UserProfileEntryg(g SZend_Gdata_YouTube_SubscriptionFeedg)f UZend_Gdata_YouTube_SubscriptionEntryg)e UZend_Gdata_YouTube_PlaylistVideoFeedg*d WZend_Gdata_YouTube_PlaylistVideoEntryg(c SZend_Gdata_YouTube_PlaylistListFeedg)b UZend_Gdata_YouTube_PlaylistListEntryg"a GZend_Gdata_YouTube_MediaEntryg!` EZend_Gdata_YouTube_InboxFeedg"_ GZend_Gdata_YouTube_InboxEntryg)^ UZend_Gdata_YouTube_Extension_VideoIdg*] WZend_Gdata_YouTube_Extension_Usernameg*\ WZend_Gdata_YouTube_Extension_Uploadedg'[ QZend_Gdata_YouTube_Extension_Tokeng(Z SZend_Gdata_YouTube_Extension_Statusg,Y [Zend_Gdata_YouTube_Extension_Statisticsg'X QZend_Gdata_YouTube_Extension_Stateg(W SZend_Gdata_YouTube_Extension_Schoolg-V ]Zend_Gdata_YouTube_Extension_ReleaseDateg.U _Zend_Gdata_YouTube_Extension_Relationshipg*T WZend_Gdata_YouTube_Extension_Recordedg&S OZend_Gdata_YouTube_Extension_Racyg-R ]Zend_Gdata_YouTube_Extension_QueryStringg)Q UZend_Gdata_YouTube_Extension_Privateg*P WZend_Gdata_YouTube_Extension_Positiong/O aZend_Gdata_YouTube_Extension_PlaylistTitleg,N [Zend_Gdata_YouTube_Extension_PlaylistIdg,M [Zend_Gdata_YouTube_Extension_Occupationg)L UZend_Gdata_YouTube_Extension_NoEmbedg'K QZend_Gdata_YouTube_Extension_Musicg(J SZend_Gdata_YouTube_Extension_Moviesg-I ]Zend_Gdata_YouTube_Extension_MediaRatingg,H [Zend_Gdata_YouTube_Extension_MediaGroupg-G ]Zend_Gdata_YouTube_Extension_MediaCreditg.F _Zend_Gdata_YouTube_Extension_MediaContentg*E WZend_Gdata_YouTube_Extension_Locationg&D OZend_Gdata_YouTube_Extension_Linkg*C WZend_Gdata_YouTube_Extension_LastNameg*B WZend_Gdata_YouTube_Extension_Hometowng)A UZend_Gdata_YouTube_Extension_Hobbiesg(@ SZend_Gdata_YouTube_Extension_Genderg+? YZend_Gdata_YouTube_Extension_FirstNameg*> WZend_Gdata_YouTube_Extension_Durationg-= ]Zend_Gdata_YouTube_Extension_Descriptiong+< YZend_Gdata_YouTube_Extension_CountHintg); UZend_Gdata_YouTube_Extension_Controlg): UZend_Gdata_YouTube_Extension_Companyg'9 QZend_Gdata_YouTube_Extension_Booksg%8 MZend_Gdata_YouTube_Extension_Ageg)7 UZend_Gdata_YouTube_Extension_AboutMeg#6 IZend_Gdata_YouTube_ContactFeedg$5 KZend_Gdata_YouTube_ContactEntryg#4 IZend_Gdata_YouTube_CommentFeedg$3 KZend_Gdata_YouTube_CommentEntryg$2 KZend_Gdata_YouTube_ActivityFeedg%1 MZend_Gdata_YouTube_ActivityEntryg0 ;Zend_Gdata_Spreadsheetsg*/ WZend_Gdata_Spreadsheets_WorksheetFeedg+. YZend_Gdata_Spreadsheets_WorksheetEntryg   u  b8Hy_E)jC!S5!




c
B
.
						s	Z	F	+	eD)	fG-qD^8mS.pU;|`A"jK/     ~ 7Zend_Measure_Pressureg} 1Zend_Measure_Powerg| 3Zend_Measure_Numberg{ 9Zend_Measure_Lightnessgz 3Zend_Measure_Lengthgy ?Zend_Measure_Illuminationgx 9Zend_Measure_Frequencygw 1Zend_Measure_Forcegv =Zend_Measure_Flow_Volumegu 9Zend_Measure_Flow_Molegt 9Zend_Measure_Flow_Massgs 9Zend_Measure_Exceptiongr 3Zend_Measure_Energygq 5Zend_Measure_Densitygp 5Zend_Measure_Currentg o CZend_Measure_Cooking_Weightg n CZend_Measure_Cooking_Volumegm =Zend_Measure_Capacitancegl 3Zend_Measure_Binarygk /Zend_Measure_Areagj 1Zend_Measure_Anglegi ?Zend_Measure_Accelerationgh 7Zend_Measure_Abstractgg Zend_Mailgf =Zend_Mail_Transport_Smtpg!e EZend_Mail_Transport_Sendmailg"d GZend_Mail_Transport_Exceptiong!c EZend_Mail_Transport_Abstractgb /Zend_Mail_Storageg'a QZend_Mail_Storage_Writable_Maildirg` 9Zend_Mail_Storage_Pop3g_ 9Zend_Mail_Storage_Mboxg^ ?Zend_Mail_Storage_Maildirg] 9Zend_Mail_Storage_Imapg\ =Zend_Mail_Storage_Folderg"[ GZend_Mail_Storage_Folder_Mboxg%Z MZend_Mail_Storage_Folder_Maildirg Y CZend_Mail_Storage_ExceptiongX AZend_Mail_Storage_AbstractgW ;Zend_Mail_Protocol_Smtpg'V QZend_Mail_Protocol_Smtp_Auth_Plaing'U QZend_Mail_Protocol_Smtp_Auth_Loging)T UZend_Mail_Protocol_Smtp_Auth_Crammd5gS ;Zend_Mail_Protocol_Pop3gR ;Zend_Mail_Protocol_Imapg!Q EZend_Mail_Protocol_Exceptiong P CZend_Mail_Protocol_AbstractgO )Zend_Mail_PartgN 3Zend_Mail_Part_FilegM /Zend_Mail_MessagegL 9Zend_Mail_Message_FilegK 3Zend_Mail_ExceptiongJ Zend_LoggI 9Zend_Log_Writer_StreamgH 5Zend_Log_Writer_NullgG 5Zend_Log_Writer_MockgF 5Zend_Log_Writer_MailgE ;Zend_Log_Writer_FirebuggD 1Zend_Log_Writer_DbgC =Zend_Log_Writer_AbstractgB 9Zend_Log_Formatter_XmlgA ?Zend_Log_Formatter_Simpleg@ AZend_Log_Formatter_Firebugg? =Zend_Log_Filter_Suppressg> =Zend_Log_Filter_Priorityg= ;Zend_Log_Filter_Messageg< 1Zend_Log_Exceptiong; #Zend_Localeg: -Zend_Locale_Mathg9 =Zend_Locale_Math_PhpMathg8 AZend_Locale_Math_Exceptiong7 1Zend_Locale_Formatg6 7Zend_Locale_Exceptiong5 -Zend_Locale_Datag!4 EZend_Locale_Data_Translationg3 #Zend_Loaderg2 =Zend_Loader_PluginLoaderg'1 QZend_Loader_PluginLoader_Exceptiong0 7Zend_Loader_Exceptiong/ 9Zend_Loader_Autoloaderg$. KZend_Loader_Autoloader_Resourceg- Zend_Ldapg, 3Zend_Ldap_Exceptiong+ #Zend_Layoutg* 7Zend_Layout_Exceptiong)) UZend_Layout_Controller_Plugin_Layoutg0( cZend_Layout_Controller_Action_Helper_Layoutg' Zend_Jsong& -Zend_Json_Serverg% 5Zend_Json_Server_Smdg!$ EZend_Json_Server_Smd_Serviceg# ?Zend_Json_Server_Responseg#" IZend_Json_Server_Response_Httpg! =Zend_Json_Server_Requestg"  GZend_Json_Server_Request_Httpg AZend_Json_Server_Exceptiong 9Zend_Json_Server_Errorg 9Zend_Json_Server_Cacheg )Zend_Json_Exprg 3Zend_Json_Exceptiong /Zend_Json_Encoderg /Zend_Json_Decoderg 'Zend_InfoCardg- ]Zend_InfoCard_Xml_SecurityTokenReferenceg AZend_InfoCard_Xml_Securityg) UZend_InfoCard_Xml_Security_Transformg4 kZend_InfoCard_Xml_Security_Transform_XmlExcC14Ng3 iZend_InfoCard_Xml_Security_Transform_Exceptiong< {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignatureg) UZend_InfoCard_Xml_Security_Exceptiong ?Zend_InfoCard_Xml_KeyInfog& OZend_InfoCard_Xml_KeyInfo_XmlDSigg& OZend_InfoCard_Xml_KeyInfo_Defaultg' QZend_InfoCard_Xml_KeyInfo_Abstractg  CZend_InfoCard_Xml_Exceptiong# IZend_InfoCard_Xml_EncryptedKeyg$
 KZend_InfoCard_Xml_EncryptedDatag   m g>"xZ>$vT3qS0wZF!




_
5
				j	G	"u^?vV+x_9Z8~]3mS#oBP                                                     5k mZend_Pdf_Resource_Font_Simple_Standard_Helveticag:j wZend_Pdf_Resource_Font_Simple_Standard_CourierObliqueg>i Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliqueg7h qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldg3g iZend_Pdf_Resource_Font_Simple_Standard_Courierg)f UZend_Pdf_Resource_Font_Simple_Parsedg2e gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypeg*d WZend_Pdf_Resource_Font_FontDescriptorg%c MZend_Pdf_Resource_Font_Extractedg#b IZend_Pdf_Resource_Font_CidFontg,a [Zend_Pdf_Resource_Font_CidFont_TrueTypeg` /Zend_Pdf_PhpArrayg_ +Zend_Pdf_Parserg^ 9Zend_Pdf_Parser_Streamg] 'Zend_Pdf_Pageg\ )Zend_Pdf_Imageg[ 'Zend_Pdf_Fontg Z CZend_Pdf_Filter_Compressiong$Y KZend_Pdf_Filter_Compression_Lzwg&X OZend_Pdf_Filter_Compression_FlategW =Zend_Pdf_Filter_AsciiHexgV ;Zend_Pdf_Filter_Ascii85g"U GZend_Pdf_FileParserDataSourceg)T UZend_Pdf_FileParserDataSource_Stringg'S QZend_Pdf_FileParserDataSource_FilegR 3Zend_Pdf_FileParsergQ ?Zend_Pdf_FileParser_Imageg"P GZend_Pdf_FileParser_Image_PnggO =Zend_Pdf_FileParser_Fontg&N OZend_Pdf_FileParser_Font_OpenTypeg/M aZend_Pdf_FileParser_Font_OpenType_TrueTypegL 1Zend_Pdf_ExceptiongK ;Zend_Pdf_ElementFactoryg"J GZend_Pdf_ElementFactory_ProxygI -Zend_Pdf_ElementgH ;Zend_Pdf_Element_Stringg#G IZend_Pdf_Element_String_BinarygF ;Zend_Pdf_Element_StreamgE AZend_Pdf_Element_Referenceg%D MZend_Pdf_Element_Reference_Tableg'C QZend_Pdf_Element_Reference_ContextgB ;Zend_Pdf_Element_Objectg#A IZend_Pdf_Element_Object_Streamg@ =Zend_Pdf_Element_Numericg? 7Zend_Pdf_Element_Nullg> 7Zend_Pdf_Element_Nameg = CZend_Pdf_Element_Dictionaryg< =Zend_Pdf_Element_Booleang; 9Zend_Pdf_Element_Arrayg: )Zend_Pdf_Colorg9 1Zend_Pdf_Color_Rgbg8 3Zend_Pdf_Color_Htmlg7 =Zend_Pdf_Color_GrayScaleg6 3Zend_Pdf_Color_Cmykg5 'Zend_Pdf_Cmapg4 AZend_Pdf_Cmap_TrimmedTableg!3 EZend_Pdf_Cmap_SegmentToDeltag2 AZend_Pdf_Cmap_ByteEncodingg&1 OZend_Pdf_Cmap_ByteEncoding_Staticg0 )Zend_Paginatorg*/ WZend_Paginator_ScrollingStyle_Slidingg*. WZend_Paginator_ScrollingStyle_Jumpingg*- WZend_Paginator_ScrollingStyle_Elasticg&, OZend_Paginator_ScrollingStyle_Allg+ =Zend_Paginator_Exceptiong * CZend_Paginator_Adapter_Nullg$) KZend_Paginator_Adapter_Iteratorg)( UZend_Paginator_Adapter_DbTableSelectg$' KZend_Paginator_Adapter_DbSelectg!& EZend_Paginator_Adapter_Arrayg% #Zend_OpenIdg$ 5Zend_OpenId_Providerg# ?Zend_OpenId_Provider_Userg&" OZend_OpenId_Provider_User_Sessiong!! EZend_OpenId_Provider_Storageg&  OZend_OpenId_Provider_Storage_Fileg 7Zend_OpenId_Extensiong AZend_OpenId_Extension_Sregg 7Zend_OpenId_Exceptiong 5Zend_OpenId_Consumerg! EZend_OpenId_Consumer_Storageg& OZend_OpenId_Consumer_Storage_Fileg +Zend_Navigationg 5Zend_Navigation_Pageg =Zend_Navigation_Page_Urig =Zend_Navigation_Page_Mvcg ?Zend_Navigation_Exceptiong ?Zend_Navigation_Containerg Zend_Mimeg )Zend_Mime_Partg /Zend_Mime_Messageg 3Zend_Mime_Exceptiong -Zend_Mime_Decodeg #Zend_Memoryg /Zend_Memory_Valueg 3Zend_Memory_Managerg 7Zend_Memory_Exceptiong
 7Zend_Memory_Containerg"	 GZend_Memory_Container_Movableg! EZend_Memory_Container_Lockedg! EZend_Memory_AccessControllerg 3Zend_Measure_Weightg 3Zend_Measure_Volumeg% MZend_Measure_Viscosity_Kinematicg# IZend_Measure_Viscosity_Dynamicg 3Zend_Measure_Torqueg /Zend_Measure_Timeg  =Zend_Measure_Temperatureg 1Zend_Measure_Speedg   Z  ~>UeF!wYB\4




f
:
					r	S	1	tX5{.o"[!n>i@`4	o3                                   "E GZend_Search_Lucene_Index_Termg+D YZend_Search_Lucene_Index_SegmentWriterg8C sZend_Search_Lucene_Index_SegmentWriter_StreamWriterg:B wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterg+A YZend_Search_Lucene_Index_SegmentMergerg)@ UZend_Search_Lucene_Index_SegmentInfog'? QZend_Search_Lucene_Index_FieldInfog(> SZend_Search_Lucene_Index_DocsFilterg.= _Zend_Search_Lucene_Index_DictionaryLoaderg!< EZend_Search_Lucene_FSMActiong; 9Zend_Search_Lucene_FSMg: =Zend_Search_Lucene_Fieldg!9 EZend_Search_Lucene_Exceptiong 8 CZend_Search_Lucene_Documentg%7 MZend_Search_Lucene_Document_Xlsxg%6 MZend_Search_Lucene_Document_Pptxg(5 SZend_Search_Lucene_Document_OpenXmlg%4 MZend_Search_Lucene_Document_Htmlg*3 WZend_Search_Lucene_Document_Exceptiong%2 MZend_Search_Lucene_Document_Docxg,1 [Zend_Search_Lucene_Analysis_TokenFilterg60 oZend_Search_Lucene_Analysis_TokenFilter_StopWordsg7/ qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsg:. wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8g6- oZend_Search_Lucene_Analysis_TokenFilter_LowerCaseg&, OZend_Search_Lucene_Analysis_Tokeng)+ UZend_Search_Lucene_Analysis_Analyzerg0* cZend_Search_Lucene_Analysis_Analyzer_Commong8) sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumgI( Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitiveg5' mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8gF& Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitiveg8% sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumgI$ Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitiveg5# mZend_Search_Lucene_Analysis_Analyzer_Common_TextgF" Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiveg! 7Zend_Search_Exceptiong  -Zend_Rest_Serverg AZend_Rest_Server_Exceptiong 3Zend_Rest_Exceptiong -Zend_Rest_Clientg ;Zend_Rest_Client_Resultg& OZend_Rest_Client_Result_Exceptiong AZend_Rest_Client_Exceptiong 'Zend_Registryg =Zend_Reflection_Propertyg ?Zend_Reflection_Parameterg 9Zend_Reflection_Methodg =Zend_Reflection_Functiong 5Zend_Reflection_Fileg ?Zend_Reflection_Extensiong ?Zend_Reflection_Exceptiong =Zend_Reflection_Docblockg! EZend_Reflection_Docblock_Tagg( SZend_Reflection_Docblock_Tag_Returng' QZend_Reflection_Docblock_Tag_Paramg 7Zend_Reflection_Classg -Zend_ProgressBarg AZend_ProgressBar_Exceptiong
 =Zend_ProgressBar_Adapterg$	 KZend_ProgressBar_Adapter_JsPushg$ KZend_ProgressBar_Adapter_JsPullg' QZend_ProgressBar_Adapter_Exceptiong% MZend_ProgressBar_Adapter_Consoleg Zend_Pdfg! EZend_Pdf_UpdateInfoContainerg -Zend_Pdf_Trailerg ;Zend_Pdf_Trailer_Keeperg AZend_Pdf_Trailer_Generatorg  )Zend_Pdf_Styleg 7Zend_Pdf_StringParserg~ /Zend_Pdf_Resourceg#} IZend_Pdf_Resource_ImageFactoryg| ;Zend_Pdf_Resource_Imageg!{ EZend_Pdf_Resource_Image_Tiffg z CZend_Pdf_Resource_Image_Pngg!y EZend_Pdf_Resource_Image_Jpeggx 9Zend_Pdf_Resource_Fontg!w EZend_Pdf_Resource_Font_Type0g"v GZend_Pdf_Resource_Font_Simpleg+u YZend_Pdf_Resource_Font_Simple_Standardg8t sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsg6s oZend_Pdf_Resource_Font_Simple_Standard_TimesRomang7r qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicg;q yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicg5p mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldg2o gZend_Pdf_Resource_Font_Simple_Standard_Symbolg<n {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliquegAm Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliqueg9l uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldg   Z  zS b2n?U'm7



R
				W	&f=vNgAxP*jL/
\8mF|Z9              ! EZend_Service_Amazon_OfferSetg ?Zend_Service_Amazon_Offerg& OZend_Service_Amazon_ListmaniaListg =Zend_Service_Amazon_Itemg ?Zend_Service_Amazon_Imageg" GZend_Service_Amazon_Exceptiong( SZend_Service_Amazon_EditorialReviewg ;Zend_Service_Amazon_Ec2g+ YZend_Service_Amazon_Ec2_Securitygroupsg% MZend_Service_Amazon_Ec2_Responseg# IZend_Service_Amazon_Ec2_Regiong$ KZend_Service_Amazon_Ec2_Keypairg% MZend_Service_Amazon_Ec2_Instanceg" GZend_Service_Amazon_Ec2_Imageg& OZend_Service_Amazon_Ec2_Exceptiong& OZend_Service_Amazon_Ec2_Elasticipg  CZend_Service_Amazon_Ec2_Ebsg. _Zend_Service_Amazon_Ec2_Availabilityzonesg% MZend_Service_Amazon_Ec2_Abstractg' QZend_Service_Amazon_CustomerReviewg$ KZend_Service_Amazon_Accessoriesg!
 EZend_Service_Amazon_Abstractg	 5Zend_Service_Akismetg 7Zend_Service_Abstractg 9Zend_Server_Reflectiong' QZend_Server_Reflection_ReturnValueg% MZend_Server_Reflection_Prototypeg% MZend_Server_Reflection_Parameterg  CZend_Server_Reflection_Nodeg" GZend_Server_Reflection_Methodg$ KZend_Server_Reflection_Functiong-  ]Zend_Server_Reflection_Function_Abstractg% MZend_Server_Reflection_Exceptiong!~ EZend_Server_Reflection_Classg!} EZend_Server_Method_Prototypeg!| EZend_Server_Method_Parameterg"{ GZend_Server_Method_Definitiong z CZend_Server_Method_Callbackgy 7Zend_Server_Exceptiongx 9Zend_Server_Definitiongw /Zend_Server_Cachegv 5Zend_Server_Abstractgu 1Zend_Search_Luceneg0t cZend_Search_Lucene_termStreamsPriorityQueueg$s KZend_Search_Lucene_Storage_Fileg+r YZend_Search_Lucene_Storage_File_Memoryg/q aZend_Search_Lucene_Storage_File_Filesystemg)p UZend_Search_Lucene_Storage_Directoryg4o kZend_Search_Lucene_Storage_Directory_Filesystemg%n MZend_Search_Lucene_Search_Weightg*m WZend_Search_Lucene_Search_Weight_Termg,l [Zend_Search_Lucene_Search_Weight_Phraseg/k aZend_Search_Lucene_Search_Weight_MultiTermg+j YZend_Search_Lucene_Search_Weight_Emptyg-i ]Zend_Search_Lucene_Search_Weight_Booleang)h UZend_Search_Lucene_Search_Similarityg1g eZend_Search_Lucene_Search_Similarity_Defaultg)f UZend_Search_Lucene_Search_QueryTokeng3e iZend_Search_Lucene_Search_QueryParserExceptiong1d eZend_Search_Lucene_Search_QueryParserContextg*c WZend_Search_Lucene_Search_QueryParserg)b UZend_Search_Lucene_Search_QueryLexerg'a QZend_Search_Lucene_Search_QueryHitg)` UZend_Search_Lucene_Search_QueryEntryg._ _Zend_Search_Lucene_Search_QueryEntry_Termg2^ gZend_Search_Lucene_Search_QueryEntry_Subqueryg0] cZend_Search_Lucene_Search_QueryEntry_Phraseg$\ KZend_Search_Lucene_Search_Queryg-[ ]Zend_Search_Lucene_Search_Query_Wildcardg)Z UZend_Search_Lucene_Search_Query_Termg*Y WZend_Search_Lucene_Search_Query_Rangeg2X gZend_Search_Lucene_Search_Query_Preprocessingg7W qZend_Search_Lucene_Search_Query_Preprocessing_Termg9V uZend_Search_Lucene_Search_Query_Preprocessing_Phraseg8U sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzyg+T YZend_Search_Lucene_Search_Query_Phraseg.S _Zend_Search_Lucene_Search_Query_MultiTermg2R gZend_Search_Lucene_Search_Query_Insignificantg*Q WZend_Search_Lucene_Search_Query_Fuzzyg*P WZend_Search_Lucene_Search_Query_Emptyg,O [Zend_Search_Lucene_Search_Query_Booleang2N gZend_Search_Lucene_Search_Highlighter_Defaultg:M wZend_Search_Lucene_Search_BooleanExpressionRecognizergL =Zend_Search_Lucene_Proxyg%K MZend_Search_Lucene_PriorityQueueg/J aZend_Search_Lucene_Interface_MultiSearcherg#I IZend_Search_Lucene_LockManagerg$H KZend_Search_Lucene_Index_Writerg0G cZend_Search_Lucene_Index_TermsPriorityQueueg&F OZend_Search_Lucene_Index_TermInfog   c  iJj@!{S&Y1	b? 




X
=
				z	P	vGY+O%yR2X,]3nI!V.                                %Zend_Sessiong) UZend_Session_Validator_HttpUserAgentg$  KZend_Session_Validator_Abstractg' QZend_Session_SaveHandler_Exceptiong%~ MZend_Session_SaveHandler_DbTableg} 9Zend_Session_Namespaceg| 9Zend_Session_Exceptiong{ 7Zend_Session_Abstractgz 1Zend_Service_Yahoog$y KZend_Service_Yahoo_WebResultSetg!x EZend_Service_Yahoo_WebResultg&w OZend_Service_Yahoo_VideoResultSetg#v IZend_Service_Yahoo_VideoResultg!u EZend_Service_Yahoo_ResultSetgt ?Zend_Service_Yahoo_Resultg)s UZend_Service_Yahoo_PageDataResultSetg&r OZend_Service_Yahoo_PageDataResultg%q MZend_Service_Yahoo_NewsResultSetg"p GZend_Service_Yahoo_NewsResultg&o OZend_Service_Yahoo_LocalResultSetg#n IZend_Service_Yahoo_LocalResultg+m YZend_Service_Yahoo_InlinkDataResultSetg(l SZend_Service_Yahoo_InlinkDataResultg&k OZend_Service_Yahoo_ImageResultSetg#j IZend_Service_Yahoo_ImageResultgi =Zend_Service_Yahoo_Imagegh 5Zend_Service_Twitterg g CZend_Service_Twitter_Searchg#f IZend_Service_Twitter_Exceptionge ;Zend_Service_Technoratig#d IZend_Service_Technorati_Weblogg"c GZend_Service_Technorati_Utilsg*b WZend_Service_Technorati_TagsResultSetg'a QZend_Service_Technorati_TagsResultg)` UZend_Service_Technorati_TagResultSetg&_ OZend_Service_Technorati_TagResultg,^ [Zend_Service_Technorati_SearchResultSetg)] UZend_Service_Technorati_SearchResultg&\ OZend_Service_Technorati_ResultSetg#[ IZend_Service_Technorati_Resultg*Z WZend_Service_Technorati_KeyInfoResultg*Y WZend_Service_Technorati_GetInfoResultg&X OZend_Service_Technorati_Exceptiong1W eZend_Service_Technorati_DailyCountsResultSetg.V _Zend_Service_Technorati_DailyCountsResultg,U [Zend_Service_Technorati_CosmosResultSetg)T UZend_Service_Technorati_CosmosResultg+S YZend_Service_Technorati_BlogInfoResultg#R IZend_Service_Technorati_AuthorgQ ;Zend_Service_StrikeIrong(P SZend_Service_StrikeIron_ZipCodeInfog2O gZend_Service_StrikeIron_USAddressVerificationg-N ]Zend_Service_StrikeIron_SalesUseTaxBasicg&M OZend_Service_StrikeIron_Exceptiong&L OZend_Service_StrikeIron_Decoratorg!K EZend_Service_StrikeIron_BasegJ ;Zend_Service_SlideShareg&I OZend_Service_SlideShare_SlideShowg&H OZend_Service_SlideShare_ExceptiongG 1Zend_Service_Simpyg$F KZend_Service_Simpy_WatchlistSetg*E WZend_Service_Simpy_WatchlistFilterSetg'D QZend_Service_Simpy_WatchlistFilterg!C EZend_Service_Simpy_WatchlistgB ?Zend_Service_Simpy_TagSetgA 9Zend_Service_Simpy_Tagg@ AZend_Service_Simpy_NoteSetg? ;Zend_Service_Simpy_Noteg> AZend_Service_Simpy_LinkSetg!= EZend_Service_Simpy_LinkQueryg< ;Zend_Service_Simpy_Linkg; 9Zend_Service_ReCaptchag$: KZend_Service_ReCaptcha_Responseg$9 KZend_Service_ReCaptcha_MailHideg.8 _Zend_Service_ReCaptcha_MailHide_Exceptiong%7 MZend_Service_ReCaptcha_Exceptiong6 7Zend_Service_Nirvanixg#5 IZend_Service_Nirvanix_Responseg)4 UZend_Service_Nirvanix_Namespace_Imfsg)3 UZend_Service_Nirvanix_Namespace_Baseg$2 KZend_Service_Nirvanix_Exceptiong1 3Zend_Service_Flickrg"0 GZend_Service_Flickr_ResultSetg/ AZend_Service_Flickr_Resultg. ?Zend_Service_Flickr_Imageg- 9Zend_Service_Exceptiong, 9Zend_Service_Deliciousg&+ OZend_Service_Delicious_SimplePostg$* KZend_Service_Delicious_PostListg ) CZend_Service_Delicious_Postg%( MZend_Service_Delicious_Exceptiong ' CZend_Service_Audioscrobblerg& 3Zend_Service_Amazong'% QZend_Service_Amazon_SimilarProductg$ 9Zend_Service_Amazon_S3g"# GZend_Service_Amazon_S3_Streamg%" MZend_Service_Amazon_S3_Exceptiong"! GZend_Service_Amazon_ResultSetg  ?Zend_Service_Amazon_Queryg   [  xU6o<mBv`FZ>



u
S
7
						m	@	vBf*zN(yJj;W&]1e+                                                  8] sZend_Tool_Project_Context_System_ProjectProfileFileg6\ oZend_Tool_Project_Context_System_ProjectDirectoryg)[ UZend_Tool_Project_Context_Repositoryg.Z _Zend_Tool_Project_Context_Filesystem_Fileg3Y iZend_Tool_Project_Context_Filesystem_Directoryg2X gZend_Tool_Project_Context_Filesystem_Abstractg(W SZend_Tool_Project_Context_Exceptiong0V cZend_Tool_Framework_System_Provider_Versiong0U cZend_Tool_Framework_System_Provider_Phpinfog1T eZend_Tool_Framework_System_Provider_Manifestg(S SZend_Tool_Framework_System_Manifestg-R ]Zend_Tool_Framework_System_Action_Deleteg-Q ]Zend_Tool_Framework_System_Action_Createg!P EZend_Tool_Framework_Registryg+O YZend_Tool_Framework_Registry_Exceptiong+N YZend_Tool_Framework_Provider_Signatureg,M [Zend_Tool_Framework_Provider_Repositoryg+L YZend_Tool_Framework_Provider_Exceptiong*K WZend_Tool_Framework_Provider_Abstractg&J OZend_Tool_Framework_Metadata_Toolg)I UZend_Tool_Framework_Metadata_Dynamicg'H QZend_Tool_Framework_Metadata_Basicg,G [Zend_Tool_Framework_Manifest_Repositoryg+F YZend_Tool_Framework_Manifest_Exceptiong1E eZend_Tool_Framework_Loader_IncludePathLoadergJD Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIteratorg(C SZend_Tool_Framework_Loader_Abstractg"B GZend_Tool_Framework_Exceptiong(A SZend_Tool_Framework_Client_ResponsegD@ 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separatorg'? QZend_Tool_Framework_Client_Requestg9> uZend_Tool_Framework_Client_Interactive_InputResponseg8= sZend_Tool_Framework_Client_Interactive_InputRequestg8< sZend_Tool_Framework_Client_Interactive_InputHandlerg); UZend_Tool_Framework_Client_Exceptiong': QZend_Tool_Framework_Client_ConsolegD9 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizerg08 cZend_Tool_Framework_Client_Console_Manifestg27 gZend_Tool_Framework_Client_Console_HelpSystemg66 oZend_Tool_Framework_Client_Console_ArgumentParserg(5 SZend_Tool_Framework_Client_Abstractg*4 WZend_Tool_Framework_Action_Repositoryg)3 UZend_Tool_Framework_Action_Exceptiong$2 KZend_Tool_Framework_Action_Baseg1 'Zend_TimeSyncg0 1Zend_TimeSync_Sntpg/ 9Zend_TimeSync_Protocolg. /Zend_TimeSync_Ntpg- ;Zend_TimeSync_Exceptiong, +Zend_Text_Tableg+ 3Zend_Text_Table_Rowg* ?Zend_Text_Table_Exceptiong&) OZend_Text_Table_Decorator_Unicodeg$( KZend_Text_Table_Decorator_Asciig' 9Zend_Text_Table_Columng& 3Zend_Text_MultiByteg% -Zend_Text_Figletg$ AZend_Text_Figlet_Exceptiong# 3Zend_Text_Exceptiong)" UZend_Test_PHPUnit_ControllerTestCaseg0! cZend_Test_PHPUnit_Constraint_ResponseHeaderg*  WZend_Test_PHPUnit_Constraint_Redirectg+ YZend_Test_PHPUnit_Constraint_Exceptiong* WZend_Test_PHPUnit_Constraint_DomQueryg /Zend_Tag_ItemListg 'Zend_Tag_Itemg 1Zend_Tag_Exceptiong )Zend_Tag_Cloudg =Zend_Tag_Cloud_Exceptiong! EZend_Tag_Cloud_Decorator_Tagg% MZend_Tag_Cloud_Decorator_HtmlTagg' QZend_Tag_Cloud_Decorator_HtmlCloudg' QZend_Tag_Cloud_Decorator_Exceptiong# IZend_Tag_Cloud_Decorator_Cloudg )Zend_Soap_Wsdlg/ aZend_Soap_Wsdl_Strategy_DefaultComplexTypeg& OZend_Soap_Wsdl_Strategy_Compositeg0 cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequenceg/ aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplexg$ KZend_Soap_Wsdl_Strategy_AnyTypeg% MZend_Soap_Wsdl_Strategy_Abstractg =Zend_Soap_Wsdl_Exceptiong -Zend_Soap_Serverg
 AZend_Soap_Server_Exceptiong	 -Zend_Soap_Clientg 9Zend_Soap_Client_Localg AZend_Soap_Client_Exceptiong ;Zend_Soap_Client_DotNetg ;Zend_Soap_Client_Commong 9Zend_Soap_AutoDiscoverg% MZend_Soap_AutoDiscover_Exceptiong   K  W{Kt>yCu@



a
,			t	=	z6Kbu;wFnL sGmE                         ( AZend_Translate_Adapter_Inig#' IZend_Translate_Adapter_Gettextg& AZend_Translate_Adapter_Csvg!% EZend_Translate_Adapter_Arrayg$$ KZend_Tool_Project_Provider_Viewg$# KZend_Tool_Project_Provider_Testg/" aZend_Tool_Project_Provider_ProjectProviderg'! QZend_Tool_Project_Provider_Projectg'  QZend_Tool_Project_Provider_Profileg% MZend_Tool_Project_Provider_Modelg( SZend_Tool_Project_Provider_Manifestg$ KZend_Tool_Project_Provider_Formg) UZend_Tool_Project_Provider_Exceptiong* WZend_Tool_Project_Provider_Controllerg& OZend_Tool_Project_Provider_Actiong( SZend_Tool_Project_Provider_Abstractg ?Zend_Tool_Project_Profileg' QZend_Tool_Project_Profile_Resourceg9 uZend_Tool_Project_Profile_Resource_SearchConstraintsg1 eZend_Tool_Project_Profile_Resource_Containerg7 qZend_Tool_Project_Profile_Iterator_EnabledResourceg- ]Zend_Tool_Project_Profile_FileParser_Xmlg( SZend_Tool_Project_Profile_Exceptiong  CZend_Tool_Project_Exceptiong< {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectoryg0 cZend_Tool_Project_Context_Zf_ViewsDirectoryg6 oZend_Tool_Project_Context_Zf_ViewScriptsDirectoryg0 cZend_Tool_Project_Context_Zf_ViewScriptFileg6 oZend_Tool_Project_Context_Zf_ViewHelpersDirectoryg6 oZend_Tool_Project_Context_Zf_ViewFiltersDirectorygA
 Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectoryg2	 gZend_Tool_Project_Context_Zf_UploadsDirectoryg0 cZend_Tool_Project_Context_Zf_TestsDirectoryg7 qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFileg@ Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectoryg1 eZend_Tool_Project_Context_Zf_TestLibraryFileg6 oZend_Tool_Project_Context_Zf_TestLibraryDirectoryg: wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFileg: wZend_Tool_Project_Context_Zf_TestApplicationDirectoryg@ Zend_Tool_Project_Context_Zf_TestApplicationControllerFilegE  Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectoryg> Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFileg4~ kZend_Tool_Project_Context_Zf_TemporaryDirectoryg3} iZend_Tool_Project_Context_Zf_SessionsDirectoryg8| sZend_Tool_Project_Context_Zf_SearchIndexesDirectoryg<{ {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectoryg8z sZend_Tool_Project_Context_Zf_PublicScriptsDirectoryg1y eZend_Tool_Project_Context_Zf_PublicIndexFileg7x qZend_Tool_Project_Context_Zf_PublicImagesDirectoryg1w eZend_Tool_Project_Context_Zf_PublicDirectoryg5v mZend_Tool_Project_Context_Zf_ProjectProviderFileg2u gZend_Tool_Project_Context_Zf_ModulesDirectoryg1t eZend_Tool_Project_Context_Zf_ModelsDirectoryg+s YZend_Tool_Project_Context_Zf_ModelFileg/r aZend_Tool_Project_Context_Zf_LogsDirectoryg2q gZend_Tool_Project_Context_Zf_LocalesDirectoryg2p gZend_Tool_Project_Context_Zf_LibraryDirectoryg2o gZend_Tool_Project_Context_Zf_LayoutsDirectoryg.n _Zend_Tool_Project_Context_Zf_HtaccessFileg0m cZend_Tool_Project_Context_Zf_FormsDirectoryg*l WZend_Tool_Project_Context_Zf_FormFileg-k ]Zend_Tool_Project_Context_Zf_DbTableFileg2j gZend_Tool_Project_Context_Zf_DbTableDirectoryg/i aZend_Tool_Project_Context_Zf_DataDirectoryg6h oZend_Tool_Project_Context_Zf_ControllersDirectoryg0g cZend_Tool_Project_Context_Zf_ControllerFileg2f gZend_Tool_Project_Context_Zf_ConfigsDirectoryg,e [Zend_Tool_Project_Context_Zf_ConfigFileg0d cZend_Tool_Project_Context_Zf_CacheDirectoryg/c aZend_Tool_Project_Context_Zf_BootstrapFileg6b oZend_Tool_Project_Context_Zf_ApplicationDirectoryg7a qZend_Tool_Project_Context_Zf_ApplicationConfigFileg/` aZend_Tool_Project_Context_Zf_ApisDirectoryg._ _Zend_Tool_Project_Context_Zf_ActionMethodg@^ Zend_Tool_Project_Context_System_ProjectProvidersDirectoryg   q  sN/z^:Z4f;b? 




u
P
4
						f	M	.	[8"uP/\:]:eCoK)n;mB!                   ! EZend_View_Helper_PartialLoopg =Zend_View_Helper_Partialg' QZend_View_Helper_Partial_Exceptiong' QZend_View_Helper_PaginationControlg  CZend_View_Helper_Navigationg( SZend_View_Helper_Navigation_Sitemapg% MZend_View_Helper_Navigation_Menug& OZend_View_Helper_Navigation_Linksg/ aZend_View_Helper_Navigation_HelperAbstractg, [Zend_View_Helper_Navigation_Breadcrumbsg ;Zend_View_Helper_Layoutg 7Zend_View_Helper_Jsong" GZend_View_Helper_InlineScriptg# IZend_View_Helper_HtmlQuicktimeg ?Zend_View_Helper_HtmlPageg 
 CZend_View_Helper_HtmlObjectg	 ?Zend_View_Helper_HtmlListg AZend_View_Helper_HtmlFlashg! EZend_View_Helper_HtmlElementg AZend_View_Helper_HeadTitleg AZend_View_Helper_HeadStyleg  CZend_View_Helper_HeadScriptg ?Zend_View_Helper_HeadMetag ?Zend_View_Helper_HeadLinkg" GZend_View_Helper_FormTextareag  ?Zend_View_Helper_FormTextg  CZend_View_Helper_FormSubmitg ~ CZend_View_Helper_FormSelectg} AZend_View_Helper_FormResetg| AZend_View_Helper_FormRadiog"{ GZend_View_Helper_FormPasswordgz ?Zend_View_Helper_FormNoteg'y QZend_View_Helper_FormMultiCheckboxgx AZend_View_Helper_FormLabelgw AZend_View_Helper_FormImageg v CZend_View_Helper_FormHiddengu ?Zend_View_Helper_FormFileg t CZend_View_Helper_FormErrorsg!s EZend_View_Helper_FormElementg"r GZend_View_Helper_FormCheckboxg q CZend_View_Helper_FormButtongp 7Zend_View_Helper_Formgo ?Zend_View_Helper_Fieldsetgn =Zend_View_Helper_Doctypeg!m EZend_View_Helper_DeclareVarsgl 9Zend_View_Helper_Cyclegk ;Zend_View_Helper_Actiongj ?Zend_View_Helper_Abstractgi 3Zend_View_Exceptiongh 1Zend_View_Abstractgg %Zend_Versiongf 'Zend_Validatege AZend_Validate_StringLengthg#d IZend_Validate_Sitemap_Prioritygc ?Zend_Validate_Sitemap_Locg"b GZend_Validate_Sitemap_Lastmodg%a MZend_Validate_Sitemap_Changefreqg` 3Zend_Validate_Regexg_ 9Zend_Validate_NotEmptyg^ 9Zend_Validate_LessThang] -Zend_Validate_Ipg\ /Zend_Validate_Intg[ 7Zend_Validate_InArraygZ ;Zend_Validate_IdenticalgY 1Zend_Validate_IbangX 9Zend_Validate_HostnamegW /Zend_Validate_HexgV ?Zend_Validate_GreaterThangU 3Zend_Validate_Floatg!T EZend_Validate_File_WordCountgS ?Zend_Validate_File_UploadgR ;Zend_Validate_File_SizegQ ;Zend_Validate_File_Sha1g!P EZend_Validate_File_NotExistsg O CZend_Validate_File_MimeTypegN 9Zend_Validate_File_Md5gM AZend_Validate_File_IsImageg$L KZend_Validate_File_IsCompressedg!K EZend_Validate_File_ImageSizegJ ;Zend_Validate_File_Hashg!I EZend_Validate_File_FilesSizeg!H EZend_Validate_File_ExtensiongG ?Zend_Validate_File_Existsg'F QZend_Validate_File_ExcludeMimeTypeg(E SZend_Validate_File_ExcludeExtensiongD =Zend_Validate_File_Crc32gC =Zend_Validate_File_CountgB ;Zend_Validate_ExceptiongA AZend_Validate_EmailAddressg@ 5Zend_Validate_Digitsg"? GZend_Validate_Db_RecordExistsg$> KZend_Validate_Db_NoRecordExistsg= ?Zend_Validate_Db_Abstractg< 1Zend_Validate_Dateg; 3Zend_Validate_Ccnumg: 7Zend_Validate_Betweeng9 7Zend_Validate_Barcodeg8 AZend_Validate_Barcode_UpcAg 7 CZend_Validate_Barcode_Ean13g6 3Zend_Validate_Alphag5 3Zend_Validate_Alnumg4 9Zend_Validate_Abstractg3 Zend_Urig2 'Zend_Uri_Httpg1 1Zend_Uri_Exceptiong0 )Zend_Translateg/ =Zend_Translate_Exceptiong. 9Zend_Translate_Adapterg!- EZend_Translate_Adapter_XmlTmg!, EZend_Translate_Adapter_Xliffg+ AZend_Translate_Adapter_Tmxg* AZend_Translate_Adapter_Tbxg) ?Zend_Translate_Adapter_Qtg   i  U&nK(i7pAwU9




q
V
6
					f	D	&	tK,V/bI*oJY(c9e;b5                           AZend_Auth_Adapter_InfoCardh 9Zend_Auth_Adapter_Httph)  UZend_Auth_Adapter_Http_Resolver_Fileh. _Zend_Auth_Adapter_Http_Resolver_Exceptionh ~ CZend_Auth_Adapter_Exceptionh} =Zend_Auth_Adapter_Digesth| ?Zend_Auth_Adapter_DbTableh{ -Zend_Applicationh#z IZend_Application_Resource_Viewh&y OZend_Application_Resource_Sessionh&x OZend_Application_Resource_Modulesh.w _Zend_Application_Resource_Frontcontrollerh(v SZend_Application_Resource_Exceptionh!u EZend_Application_Resource_Dbh#t IZend_Application_Resource_Baseh&s OZend_Application_Module_Bootstraph'r QZend_Application_Module_Autoloaderhq AZend_Application_Exceptionh)p UZend_Application_Bootstrap_Exceptionh$o KZend_Application_Bootstrap_Basehn ?Zend_Amf_Value_TraitsInfoh-m ]Zend_Amf_Value_Messaging_RemotingMessageh*l WZend_Amf_Value_Messaging_ErrorMessageh,k [Zend_Amf_Value_Messaging_CommandMessageh*j WZend_Amf_Value_Messaging_AsyncMessageh0i cZend_Amf_Value_Messaging_AcknowledgeMessageh-h ]Zend_Amf_Value_Messaging_AbstractMessageh!g EZend_Amf_Value_MessageHeaderhf AZend_Amf_Value_MessageBodyhe =Zend_Amf_Value_ByteArrayhd AZend_Amf_Util_BinaryStreamhc +Zend_Amf_Serverhb ?Zend_Amf_Server_Exceptionha /Zend_Amf_Responseh` 9Zend_Amf_Response_Httph_ -Zend_Amf_Requesth^ 7Zend_Amf_Request_Httph] ?Zend_Amf_Parse_TypeLoaderh\ ?Zend_Amf_Parse_Serializerh [ CZend_Amf_Parse_OutputStreamhZ AZend_Amf_Parse_InputStreamh Y CZend_Amf_Parse_Deserializerh#X IZend_Amf_Parse_Amf3_Serializerh%W MZend_Amf_Parse_Amf3_Deserializerh#V IZend_Amf_Parse_Amf0_Serializerh%U MZend_Amf_Parse_Amf0_DeserializerhT 1Zend_Amf_ExceptionhS 1Zend_Amf_ConstantshR Zend_AclhQ 'Zend_Acl_RolehP 9Zend_Acl_Role_Registryh%O MZend_Acl_Role_Registry_ExceptionhN /Zend_Acl_ResourcehM 1Zend_Acl_ExceptionhL /Zend_XmlRpc_ValuegK =Zend_XmlRpc_Value_StructgJ =Zend_XmlRpc_Value_StringgI =Zend_XmlRpc_Value_ScalargH 7Zend_XmlRpc_Value_NilgG ?Zend_XmlRpc_Value_Integerg F CZend_XmlRpc_Value_ExceptiongE =Zend_XmlRpc_Value_DoublegD AZend_XmlRpc_Value_DateTimeg!C EZend_XmlRpc_Value_CollectiongB ?Zend_XmlRpc_Value_BooleangA =Zend_XmlRpc_Value_Base64g@ ;Zend_XmlRpc_Value_Arrayg? 1Zend_XmlRpc_Serverg> ?Zend_XmlRpc_Server_Systemg= =Zend_XmlRpc_Server_Faultg!< EZend_XmlRpc_Server_Exceptiong; =Zend_XmlRpc_Server_Cacheg: 5Zend_XmlRpc_Responseg9 ?Zend_XmlRpc_Response_Httpg8 3Zend_XmlRpc_Requestg7 ?Zend_XmlRpc_Request_Stding6 =Zend_XmlRpc_Request_Httpg5 /Zend_XmlRpc_Faultg4 7Zend_XmlRpc_Exceptiong3 1Zend_XmlRpc_Clientg#2 IZend_XmlRpc_Client_ServerProxyg+1 YZend_XmlRpc_Client_ServerIntrospectiong+0 YZend_XmlRpc_Client_IntrospectExceptiong%/ MZend_XmlRpc_Client_HttpExceptiong&. OZend_XmlRpc_Client_FaultExceptiong!- EZend_XmlRpc_Client_Exceptiong&, OZend_Wildfire_Protocol_JsonStreamg!+ EZend_Wildfire_Plugin_FirePhpg.* _Zend_Wildfire_Plugin_FirePhp_TableMessageg)) UZend_Wildfire_Plugin_FirePhp_Messageg( ;Zend_Wildfire_Exceptiong&' OZend_Wildfire_Channel_HttpHeadersg& Zend_Viewg% -Zend_View_Streamg$ 5Zend_View_Helper_Urlg# AZend_View_Helper_Translateg" AZend_View_Helper_ServerUrlg)! UZend_View_Helper_RenderToPlaceholderg!  EZend_View_Helper_Placeholderg* WZend_View_Helper_Placeholder_Registryg4 kZend_View_Helper_Placeholder_Registry_Exceptiong+ YZend_View_Helper_Placeholder_Containerg6 oZend_View_Helper_Placeholder_Container_Standaloneg5 mZend_View_Helper_Placeholder_Container_Exceptiong4 kZend_View_Helper_Placeholder_Container_Abstractg   [  k.rK%`5nR*|Y6



|
R
+
			_	/	vN$rF~H$a5sExCC]7                         ;Zend_Acl_Role_Interfacei  CZend_Acl_Resource_Interfacei ?Zend_Acl_Assert_Interfacei# IZend_Wildfire_Plugin_Interfaceh$ KZend_Wildfire_Channel_Interfaceh 3Zend_View_Interfaceh* WZend_View_Helper_Navigation_Interfaceh AZend_View_Helper_Interfaceh ;Zend_Validate_Interfaceh3 iZend_Tool_Project_Profile_FileParser_Interfaceh: wZend_Tool_Project_Context_System_TopLevelRestrictableh5
 mZend_Tool_Project_Context_System_NotOverwritableh/	 aZend_Tool_Project_Context_System_Interfaceh( SZend_Tool_Project_Context_Interfaceh+ YZend_Tool_Framework_Registry_Interfaceh2 gZend_Tool_Framework_Registry_EnabledInterfaceh- ]Zend_Tool_Framework_Provider_Pretendableh+ YZend_Tool_Framework_Provider_Interfaceh. _Zend_Tool_Framework_Provider_Interactableh; yZend_Tool_Framework_Provider_DocblockManifestInterfaceh+ YZend_Tool_Framework_Manifest_InterfacehD  	Zend_Tool_Framework_Client_Response_ContentDecorator_Interfaceh; yZend_Tool_Framework_Client_Interactive_OutputInterfaceh:~ wZend_Tool_Framework_Client_Interactive_InputInterfaceh)} UZend_Tool_Framework_Action_Interfaceh(| SZend_Text_Table_Decorator_Interfaceh&{ OZend_Soap_Wsdl_Strategy_Interfaceh%z MZend_Session_Validator_Interfaceh'y QZend_Session_SaveHandler_Interfacehx 7Zend_Server_Interfaceh!w EZend_Search_Lucene_Interfaceh3v iZend_Search_Lucene_Index_TermsStream_Interfacehu ?Zend_Pdf_Filter_Interfaceh&t OZend_Pdf_ElementFactory_Interfaceh,s [Zend_Paginator_ScrollingStyle_Interfaceh%r MZend_Paginator_Adapter_Interfaceh$q KZend_Memory_Container_Interfaceh)p UZend_Mail_Storage_Writable_Interfaceh'o QZend_Mail_Storage_Folder_Interfacehn =Zend_Mail_Part_Interfaceh m CZend_Mail_Message_Interfaceh!l EZend_Log_Formatter_Interfacehk ?Zend_Log_Filter_Interfaceh'j QZend_Loader_PluginLoader_Interfaceh%i MZend_Loader_Autoloader_Interfaceh3h iZend_InfoCard_Xml_Security_Transform_Interfaceh(g SZend_InfoCard_Xml_KeyInfo_Interfaceh(f SZend_InfoCard_Xml_Element_Interfaceh*e WZend_InfoCard_Xml_Assertion_Interfaceh-d ]Zend_InfoCard_Cipher_Symmetric_Interfaceh7c qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interfaceh7b qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interfaceh+a YZend_InfoCard_Cipher_Pki_Rsa_Interfaceh'` QZend_InfoCard_Cipher_Pki_Interfaceh$_ KZend_InfoCard_Adapter_Interfaceh'^ QZend_Http_Client_Adapter_Interfaceh] AZend_Gdata_App_MediaSourceh.\ _Zend_Form_Decorator_Marker_File_Interfaceh"[ GZend_Form_Decorator_InterfacehZ 7Zend_Filter_Interfaceh"Y GZend_Filter_Encrypt_Interfaceh X CZend_Feed_Builder_Interfaceh W CZend_Db_Statement_Interfaceh)V UZend_Crypt_Math_BigInteger_Interfaceh+U YZend_Controller_Router_Route_Interfaceh%T MZend_Controller_Router_Interfaceh)S UZend_Controller_Dispatcher_Interfaceh%R MZend_Controller_Action_InterfacehQ 5Zend_Captcha_Adapterh!P EZend_Cache_Backend_Interfaceh)O UZend_Cache_Backend_ExtendedInterfaceh N CZend_Auth_Storage_Interfaceh M CZend_Auth_Adapter_Interfaceh.L _Zend_Auth_Adapter_Http_Resolver_Interfaceh(K SZend_Application_Resource_IResourceh2J gZend_Application_Bootstrap_IResourceBootstraph*I WZend_Application_Bootstrap_IBootstraphH ;Zend_Acl_Role_Interfaceh G CZend_Acl_Resource_InterfacehF ?Zend_Acl_Assert_Interfaceh#E IZend_Wildfire_Plugin_Interfaceg$D KZend_Wildfire_Channel_InterfacegC 3Zend_View_Interfaceg'B QZend_View_Helper_Navigation_HelpergA AZend_View_Helper_Interfaceg@ ;Zend_Validate_Interfaceg3? iZend_Tool_Project_Profile_FileParser_Interfaceg:> wZend_Tool_Project_Context_System_TopLevelRestrictableg5= mZend_Tool_Project_Context_System_NotOverwritableg/< aZend_Tool_Project_Context_System_Interfaceg(; SZend_Tool_Project_Context_Interfaceg   f  g?e@y^F)}jP6^6



\
4
				b	9	|aI5T"o;MoC!^5h>rI"                                 *h WZend_Controller_Router_Route_Abstracth#g IZend_Controller_Router_Rewriteh%f MZend_Controller_Router_Exceptionh$e KZend_Controller_Router_Abstracth*d WZend_Controller_Response_HttpTestCaseh"c GZend_Controller_Response_Httph'b QZend_Controller_Response_Exceptionh!a EZend_Controller_Response_Clih&` OZend_Controller_Response_Abstracth#_ IZend_Controller_Request_Simpleh)^ UZend_Controller_Request_HttpTestCaseh!] EZend_Controller_Request_Httph&\ OZend_Controller_Request_Exceptionh&[ OZend_Controller_Request_Apache404h%Z MZend_Controller_Request_Abstracth(Y SZend_Controller_Plugin_ErrorHandlerh"X GZend_Controller_Plugin_Brokerh'W QZend_Controller_Plugin_ActionStackh$V KZend_Controller_Plugin_AbstracthU 7Zend_Controller_FronthT ?Zend_Controller_Exceptionh(S SZend_Controller_Dispatcher_Standardh)R UZend_Controller_Dispatcher_Exceptionh(Q SZend_Controller_Dispatcher_AbstracthP 9Zend_Controller_Actionh(O SZend_Controller_Action_HelperBrokerh6N oZend_Controller_Action_HelperBroker_PriorityStackh/M aZend_Controller_Action_Helper_ViewRendererh&L OZend_Controller_Action_Helper_Urlh-K ]Zend_Controller_Action_Helper_Redirectorh'J QZend_Controller_Action_Helper_Jsonh1I eZend_Controller_Action_Helper_FlashMessengerh0H cZend_Controller_Action_Helper_ContextSwitchh<G {Zend_Controller_Action_Helper_AutoCompleteScriptaculoush3F iZend_Controller_Action_Helper_AutoCompleteDojoh8E sZend_Controller_Action_Helper_AutoComplete_Abstracth.D _Zend_Controller_Action_Helper_AjaxContexth.C _Zend_Controller_Action_Helper_ActionStackh+B YZend_Controller_Action_Helper_Abstracth%A MZend_Controller_Action_Exceptionh@ %Zend_Consoleh? 3Zend_Console_Getopth"> GZend_Console_Getopt_Exceptionh= #Zend_Configh< +Zend_Config_Xmlh; 1Zend_Config_Writerh: 9Zend_Config_Writer_Xmlh9 9Zend_Config_Writer_Inih8 =Zend_Config_Writer_Arrayh7 +Zend_Config_Inih6 7Zend_Config_Exceptionh$5 KZend_CodeGenerator_Php_Propertyh%4 MZend_CodeGenerator_Php_Parameterh"3 GZend_CodeGenerator_Php_Methodh,2 [Zend_CodeGenerator_Php_Member_Containerh+1 YZend_CodeGenerator_Php_Member_Abstracth 0 CZend_CodeGenerator_Php_Fileh%/ MZend_CodeGenerator_Php_Exceptionh$. KZend_CodeGenerator_Php_Docblockh(- SZend_CodeGenerator_Php_Docblock_Tagh/, aZend_CodeGenerator_Php_Docblock_Tag_Returnh.+ _Zend_CodeGenerator_Php_Docblock_Tag_Paramh!* EZend_CodeGenerator_Php_Classh ) CZend_CodeGenerator_Php_Bodyh$( KZend_CodeGenerator_Php_Abstracth!' EZend_CodeGenerator_Exceptionh & CZend_CodeGenerator_Abstracth% /Zend_Captcha_Wordh$ 9Zend_Captcha_ReCaptchah# 1Zend_Captcha_Imageh" 3Zend_Captcha_Figleth! 9Zend_Captcha_Exceptionh  /Zend_Captcha_Dumbh /Zend_Captcha_Baseh !Zend_Cacheh =Zend_Cache_Frontend_Pageh AZend_Cache_Frontend_Outputh! EZend_Cache_Frontend_Functionh =Zend_Cache_Frontend_Fileh ?Zend_Cache_Frontend_Classh 5Zend_Cache_Exceptionh +Zend_Cache_Coreh 1Zend_Cache_Backendh" GZend_Cache_Backend_ZendServerh( SZend_Cache_Backend_ZendServer_ShMemh' QZend_Cache_Backend_ZendServer_Diskh$ KZend_Cache_Backend_ZendPlatformh ?Zend_Cache_Backend_Xcacheh! EZend_Cache_Backend_TwoLevelsh ;Zend_Cache_Backend_Testh ?Zend_Cache_Backend_Sqliteh! EZend_Cache_Backend_Memcachedh ;Zend_Cache_Backend_Fileh 9Zend_Cache_Backend_Apch
 Zend_Authh	 ?Zend_Auth_Storage_Sessionh$ KZend_Auth_Storage_NonPersistenth  CZend_Auth_Storage_Exceptionh -Zend_Auth_Resulth 3Zend_Auth_Exceptionh =Zend_Auth_Adapter_OpenIdh 9Zend_Auth_Adapter_Ldaph   l {P$t\2dB'ucB mN)



}
]
;
						m	L	5	T3xU1iSC0i<S%\1]0{U)                                 $T KZend_Dojo_Form_Element_Textareah(S SZend_Dojo_Form_Element_SubmitButtonh"R GZend_Dojo_Form_Element_Sliderh*Q WZend_Dojo_Form_Element_SimpleTextareah'P QZend_Dojo_Form_Element_RadioButtonh+O YZend_Dojo_Form_Element_PasswordTextBoxh)N UZend_Dojo_Form_Element_NumberTextBoxh)M UZend_Dojo_Form_Element_NumberSpinnerh,L [Zend_Dojo_Form_Element_HorizontalSliderh+K YZend_Dojo_Form_Element_FilteringSelecth"J GZend_Dojo_Form_Element_Editorh&I OZend_Dojo_Form_Element_DijitMultih!H EZend_Dojo_Form_Element_Dijith'G QZend_Dojo_Form_Element_DateTextBoxh+F YZend_Dojo_Form_Element_CurrencyTextBoxh$E KZend_Dojo_Form_Element_ComboBoxh$D KZend_Dojo_Form_Element_CheckBoxh"C GZend_Dojo_Form_Element_Buttonh B CZend_Dojo_Form_DisplayGrouph*A WZend_Dojo_Form_Decorator_TabContainerh,@ [Zend_Dojo_Form_Decorator_StackContainerh,? [Zend_Dojo_Form_Decorator_SplitContainerh'> QZend_Dojo_Form_Decorator_DijitFormh*= WZend_Dojo_Form_Decorator_DijitElementh,< [Zend_Dojo_Form_Decorator_DijitContainerh); UZend_Dojo_Form_Decorator_ContentPaneh-: ]Zend_Dojo_Form_Decorator_BorderContainerh+9 YZend_Dojo_Form_Decorator_AccordionPaneh08 cZend_Dojo_Form_Decorator_AccordionContainerh7 3Zend_Dojo_Exceptionh6 )Zend_Dojo_Datah5 !Zend_Debugh4 Zend_Dbh3 'Zend_Db_Tableh2 5Zend_Db_Table_Selecth#1 IZend_Db_Table_Select_Exceptionh0 5Zend_Db_Table_Rowseth#/ IZend_Db_Table_Rowset_Exceptionh". GZend_Db_Table_Rowset_Abstracth- /Zend_Db_Table_Rowh , CZend_Db_Table_Row_Exceptionh+ AZend_Db_Table_Row_Abstracth* ;Zend_Db_Table_Exceptionh) 9Zend_Db_Table_Abstracth( /Zend_Db_Statementh' 7Zend_Db_Statement_Pdoh& ?Zend_Db_Statement_Pdo_Ocih% ?Zend_Db_Statement_Pdo_Ibmh$ =Zend_Db_Statement_Oracleh'# QZend_Db_Statement_Oracle_Exceptionh" =Zend_Db_Statement_Mysqlih'! QZend_Db_Statement_Mysqli_Exceptionh   CZend_Db_Statement_Exceptionh 7Zend_Db_Statement_Db2h$ KZend_Db_Statement_Db2_Exceptionh )Zend_Db_Selecth =Zend_Db_Select_Exceptionh -Zend_Db_Profilerh 9Zend_Db_Profiler_Queryh =Zend_Db_Profiler_Firebugh AZend_Db_Profiler_Exceptionh %Zend_Db_Exprh /Zend_Db_Exceptionh AZend_Db_Adapter_Pdo_Sqliteh ?Zend_Db_Adapter_Pdo_Pgsqlh ;Zend_Db_Adapter_Pdo_Ocih ?Zend_Db_Adapter_Pdo_Mysqlh ?Zend_Db_Adapter_Pdo_Mssqlh ;Zend_Db_Adapter_Pdo_Ibmh  CZend_Db_Adapter_Pdo_Ibm_Idsh  CZend_Db_Adapter_Pdo_Ibm_Db2h! EZend_Db_Adapter_Pdo_Abstracth 9Zend_Db_Adapter_Oracleh% MZend_Db_Adapter_Oracle_Exceptionh
 9Zend_Db_Adapter_Mysqlih%	 MZend_Db_Adapter_Mysqli_Exceptionh ?Zend_Db_Adapter_Exceptionh 3Zend_Db_Adapter_Db2h" GZend_Db_Adapter_Db2_Exceptionh =Zend_Db_Adapter_Abstracth Zend_Dateh 3Zend_Date_Exceptionh 5Zend_Date_DateObjecth -Zend_Date_Citiesh  'Zend_Currencyh ;Zend_Currency_Exceptionh~ !Zend_Crypth} )Zend_Crypt_Rsah| 1Zend_Crypt_Rsa_Keyh{ ?Zend_Crypt_Rsa_Key_Publichz AZend_Crypt_Rsa_Key_Privatehy +Zend_Crypt_Mathhx ?Zend_Crypt_Math_Exceptionhw AZend_Crypt_Math_BigIntegerh#v IZend_Crypt_Math_BigInteger_Gmph#u IZend_Math_BigInteger_Exceptionh&t OZend_Crypt_Math_BigInteger_Bcmathhs +Zend_Crypt_Hmachr ?Zend_Crypt_Hmac_Exceptionhq 5Zend_Crypt_Exceptionhp =Zend_Crypt_DiffieHellmanh'o QZend_Crypt_DiffieHellman_Exceptionh!n EZend_Controller_Router_Routeh(m SZend_Controller_Router_Route_Statich'l QZend_Controller_Router_Route_Regexh(k SZend_Controller_Router_Route_Moduleh*j WZend_Controller_Router_Route_Hostnameh'i QZend_Controller_Router_Route_Chainh   k  }O0mH!xT'a2U0



Y
3
						^	@	)	tS9U-cH0mJ*vY7_0Z1{gB                       %? MZend_Form_Decorator_Captcha_Wordh!> EZend_Form_Decorator_Callbackh!= EZend_Form_Decorator_Abstracth< #Zend_Filterh+; YZend_Filter_Word_UnderscoreToSeparatorh&: OZend_Filter_Word_UnderscoreToDashh+9 YZend_Filter_Word_UnderscoreToCamelCaseh*8 WZend_Filter_Word_SeparatorToSeparatorh%7 MZend_Filter_Word_SeparatorToDashh*6 WZend_Filter_Word_SeparatorToCamelCaseh(5 SZend_Filter_Word_Separator_Abstracth&4 OZend_Filter_Word_DashToUnderscoreh%3 MZend_Filter_Word_DashToSeparatorh%2 MZend_Filter_Word_DashToCamelCaseh+1 YZend_Filter_Word_CamelCaseToUnderscoreh*0 WZend_Filter_Word_CamelCaseToSeparatorh%/ MZend_Filter_Word_CamelCaseToDashh. 7Zend_Filter_StripTagsh- ?Zend_Filter_StripNewlinesh, 9Zend_Filter_StringTrimh+ ?Zend_Filter_StringToUpperh* ?Zend_Filter_StringToLowerh) 5Zend_Filter_RealPathh( ;Zend_Filter_PregReplaceh' +Zend_Filter_Inth& /Zend_Filter_Inputh% 7Zend_Filter_Inflectorh$ =Zend_Filter_HtmlEntitiesh# AZend_Filter_File_UpperCaseh" ;Zend_Filter_File_Renameh! AZend_Filter_File_LowerCaseh  =Zend_Filter_File_Encrypth =Zend_Filter_File_Decrypth 7Zend_Filter_Exceptionh 3Zend_Filter_Encrypth  CZend_Filter_Encrypt_Opensslh AZend_Filter_Encrypt_Mcrypth +Zend_Filter_Dirh 1Zend_Filter_Digitsh 3Zend_Filter_Decrypth 5Zend_Filter_Callbackh 5Zend_Filter_BaseNameh /Zend_Filter_Alphah /Zend_Filter_Alnumh 1Zend_File_Transferh! EZend_File_Transfer_Exceptionh$ KZend_File_Transfer_Adapter_Httph( SZend_File_Transfer_Adapter_Abstracth Zend_Feedh 'Zend_Feed_Rssh 3Zend_Feed_Exceptionh 3Zend_Feed_Entry_Rssh 5Zend_Feed_Entry_Atomh
 =Zend_Feed_Entry_Abstracth	 /Zend_Feed_Elementh /Zend_Feed_Builderh =Zend_Feed_Builder_Headerh$ KZend_Feed_Builder_Header_Itunesh  CZend_Feed_Builder_Exceptionh ;Zend_Feed_Builder_Entryh )Zend_Feed_Atomh 1Zend_Feed_Abstracth )Zend_Exceptionh  )Zend_Dom_Queryh 7Zend_Dom_Query_Resulth~ =Zend_Dom_Query_Css2Xpathh} 1Zend_Dom_Exceptionh| Zend_Dojoh){ UZend_Dojo_View_Helper_VerticalSliderh,z [Zend_Dojo_View_Helper_ValidationTextBoxh&y OZend_Dojo_View_Helper_TimeTextBoxh"x GZend_Dojo_View_Helper_TextBoxh#w IZend_Dojo_View_Helper_Textareah'v QZend_Dojo_View_Helper_TabContainerh'u QZend_Dojo_View_Helper_SubmitButtonh)t UZend_Dojo_View_Helper_StackContainerh)s UZend_Dojo_View_Helper_SplitContainerh!r EZend_Dojo_View_Helper_Sliderh)q UZend_Dojo_View_Helper_SimpleTextareah&p OZend_Dojo_View_Helper_RadioButtonh*o WZend_Dojo_View_Helper_PasswordTextBoxh(n SZend_Dojo_View_Helper_NumberTextBoxh(m SZend_Dojo_View_Helper_NumberSpinnerh+l YZend_Dojo_View_Helper_HorizontalSliderhk AZend_Dojo_View_Helper_Formh*j WZend_Dojo_View_Helper_FilteringSelecth!i EZend_Dojo_View_Helper_Editorhh AZend_Dojo_View_Helper_Dojoh)g UZend_Dojo_View_Helper_Dojo_Containerh)f UZend_Dojo_View_Helper_DijitContainerh e CZend_Dojo_View_Helper_Dijith&d OZend_Dojo_View_Helper_DateTextBoxh*c WZend_Dojo_View_Helper_CurrencyTextBoxh&b OZend_Dojo_View_Helper_ContentPaneh#a IZend_Dojo_View_Helper_ComboBoxh#` IZend_Dojo_View_Helper_CheckBoxh!_ EZend_Dojo_View_Helper_Buttonh*^ WZend_Dojo_View_Helper_BorderContainerh(] SZend_Dojo_View_Helper_AccordionPaneh-\ ]Zend_Dojo_View_Helper_AccordionContainerh[ =Zend_Dojo_View_ExceptionhZ )Zend_Dojo_FormhY 9Zend_Dojo_Form_SubFormh*X WZend_Dojo_Form_Element_VerticalSliderh-W ]Zend_Dojo_Form_Element_ValidationTextBoxh'V QZend_Dojo_Form_Element_TimeTextBoxh#U IZend_Dojo_Form_Element_TextBoxh   g  iChF$gF$~^>lK,	





b
4
					[	1	c:xR,_6z^7a?yQd5b=$                                        #& IZend_Gdata_Calendar_EventEntryh% -Zend_Gdata_Booksh!$ EZend_Gdata_Books_VolumeQueryh # CZend_Gdata_Books_VolumeFeedh!" EZend_Gdata_Books_VolumeEntryh+! YZend_Gdata_Books_Extension_Viewabilityh-  ]Zend_Gdata_Books_Extension_ThumbnailLinkh& OZend_Gdata_Books_Extension_Reviewh+ YZend_Gdata_Books_Extension_PreviewLinkh( SZend_Gdata_Books_Extension_InfoLinkh- ]Zend_Gdata_Books_Extension_Embeddabilityh) UZend_Gdata_Books_Extension_BooksLinkh- ]Zend_Gdata_Books_Extension_BooksCategoryh. _Zend_Gdata_Books_Extension_AnnotationLinkh$ KZend_Gdata_Books_CollectionFeedh% MZend_Gdata_Books_CollectionEntryh 1Zend_Gdata_AuthSubh )Zend_Gdata_Apph$ KZend_Gdata_App_VersionExceptionh 3Zend_Gdata_App_Utilh# IZend_Gdata_App_MediaFileSourceh ?Zend_Gdata_App_MediaEntryh2 gZend_Gdata_App_LoggingHttpClientAdapterSocketh AZend_Gdata_App_IOExceptionh, [Zend_Gdata_App_InvalidArgumentExceptionh! EZend_Gdata_App_HttpExceptionh$ KZend_Gdata_App_FeedSourceParenth# IZend_Gdata_App_FeedEntryParenth
 3Zend_Gdata_App_Feedh	 =Zend_Gdata_App_Extensionh! EZend_Gdata_App_Extension_Urih% MZend_Gdata_App_Extension_Updatedh# IZend_Gdata_App_Extension_Titleh" GZend_Gdata_App_Extension_Texth% MZend_Gdata_App_Extension_Summaryh& OZend_Gdata_App_Extension_Subtitleh$ KZend_Gdata_App_Extension_Sourceh$ KZend_Gdata_App_Extension_Rightsh'  QZend_Gdata_App_Extension_Publishedh$ KZend_Gdata_App_Extension_Personh"~ GZend_Gdata_App_Extension_Nameh"} GZend_Gdata_App_Extension_Logoh"| GZend_Gdata_App_Extension_Linkh { CZend_Gdata_App_Extension_Idh"z GZend_Gdata_App_Extension_Iconh'y QZend_Gdata_App_Extension_Generatorh#x IZend_Gdata_App_Extension_Emailh%w MZend_Gdata_App_Extension_Elementh$v KZend_Gdata_App_Extension_Editedh#u IZend_Gdata_App_Extension_Drafth%t MZend_Gdata_App_Extension_Controlh)s UZend_Gdata_App_Extension_Contributorh%r MZend_Gdata_App_Extension_Contenth&q OZend_Gdata_App_Extension_Categoryh$p KZend_Gdata_App_Extension_Authorho =Zend_Gdata_App_Exceptionhn 5Zend_Gdata_App_Entryh,m [Zend_Gdata_App_CaptchaRequiredExceptionh#l IZend_Gdata_App_BaseMediaSourcehk 3Zend_Gdata_App_Baseh*j WZend_Gdata_App_BadMethodCallExceptionh!i EZend_Gdata_App_AuthExceptionhh Zend_Formhg /Zend_Form_SubFormhf 3Zend_Form_Exceptionhe /Zend_Form_Elementhd ;Zend_Form_Element_Xhtmlhc AZend_Form_Element_Textareahb 9Zend_Form_Element_Textha =Zend_Form_Element_Submith` =Zend_Form_Element_Selecth_ ;Zend_Form_Element_Reseth^ ;Zend_Form_Element_Radioh] AZend_Form_Element_Passwordh"\ GZend_Form_Element_Multiselecth$[ KZend_Form_Element_MultiCheckboxhZ ;Zend_Form_Element_MultihY ;Zend_Form_Element_ImagehX =Zend_Form_Element_HiddenhW 9Zend_Form_Element_HashhV 9Zend_Form_Element_Fileh U CZend_Form_Element_ExceptionhT AZend_Form_Element_CheckboxhS ?Zend_Form_Element_CaptchahR =Zend_Form_Element_ButtonhQ 9Zend_Form_DisplayGrouph#P IZend_Form_Decorator_ViewScripth#O IZend_Form_Decorator_ViewHelperh N CZend_Form_Decorator_Tooltiph(M SZend_Form_Decorator_PrepareElementshL ?Zend_Form_Decorator_LabelhK ?Zend_Form_Decorator_Imageh J CZend_Form_Decorator_HtmlTagh#I IZend_Form_Decorator_FormErrorsh%H MZend_Form_Decorator_FormElementshG =Zend_Form_Decorator_FormhF =Zend_Form_Decorator_Fileh!E EZend_Form_Decorator_Fieldseth"D GZend_Form_Decorator_ExceptionhC AZend_Form_Decorator_Errorsh$B KZend_Form_Decorator_DtDdWrapperh$A KZend_Form_Decorator_Descriptionh @ CZend_Form_Decorator_Captchah   a  U(b3|R)b3 n>




e
=
				j	B	iCk9]7bJ"rA"xO(oM*^;         ! EZend_Gdata_Gbase_SnippetFeedh" GZend_Gdata_Gbase_SnippetEntryh 9Zend_Gdata_Gbase_Queryh AZend_Gdata_Gbase_ItemQueryh ?Zend_Gdata_Gbase_ItemFeedh AZend_Gdata_Gbase_ItemEntryh 7Zend_Gdata_Gbase_Feedh-  ]Zend_Gdata_Gbase_Extension_BaseAttributeh 9Zend_Gdata_Gbase_Entryh~ -Zend_Gdata_Gappsh} AZend_Gdata_Gapps_UserQueryh| ?Zend_Gdata_Gapps_UserFeedh{ AZend_Gdata_Gapps_UserEntryh&z OZend_Gdata_Gapps_ServiceExceptionhy 9Zend_Gdata_Gapps_Queryh#x IZend_Gdata_Gapps_NicknameQueryh"w GZend_Gdata_Gapps_NicknameFeedh#v IZend_Gdata_Gapps_NicknameEntryh%u MZend_Gdata_Gapps_Extension_Quotah(t SZend_Gdata_Gapps_Extension_Nicknameh$s KZend_Gdata_Gapps_Extension_Nameh%r MZend_Gdata_Gapps_Extension_Loginh)q UZend_Gdata_Gapps_Extension_EmailListhp 9Zend_Gdata_Gapps_Errorh-o ]Zend_Gdata_Gapps_EmailListRecipientQueryh,n [Zend_Gdata_Gapps_EmailListRecipientFeedh-m ]Zend_Gdata_Gapps_EmailListRecipientEntryh$l KZend_Gdata_Gapps_EmailListQueryh#k IZend_Gdata_Gapps_EmailListFeedh$j KZend_Gdata_Gapps_EmailListEntryhi +Zend_Gdata_Feedhh 5Zend_Gdata_Extensionhg =Zend_Gdata_Extension_Whohf AZend_Gdata_Extension_Wherehe ?Zend_Gdata_Extension_Whenh$d KZend_Gdata_Extension_Visibilityh&c OZend_Gdata_Extension_Transparencyh"b GZend_Gdata_Extension_Reminderh-a ]Zend_Gdata_Extension_RecurrenceExceptionh$` KZend_Gdata_Extension_Recurrenceh _ CZend_Gdata_Extension_Ratingh'^ QZend_Gdata_Extension_OriginalEventh0] cZend_Gdata_Extension_OpenSearchTotalResultsh.\ _Zend_Gdata_Extension_OpenSearchStartIndexh0[ cZend_Gdata_Extension_OpenSearchItemsPerPageh"Z GZend_Gdata_Extension_FeedLinkh*Y WZend_Gdata_Extension_ExtendedPropertyh%X MZend_Gdata_Extension_EventStatush#W IZend_Gdata_Extension_EntryLinkh"V GZend_Gdata_Extension_Commentsh&U OZend_Gdata_Extension_AttendeeTypeh(T SZend_Gdata_Extension_AttendeeStatushS +Zend_Gdata_ExifhR 5Zend_Gdata_Exif_Feedh#Q IZend_Gdata_Exif_Extension_Timeh#P IZend_Gdata_Exif_Extension_Tagsh$O KZend_Gdata_Exif_Extension_Modelh#N IZend_Gdata_Exif_Extension_Makeh"M GZend_Gdata_Exif_Extension_Isoh,L [Zend_Gdata_Exif_Extension_ImageUniqueIdh$K KZend_Gdata_Exif_Extension_FStoph*J WZend_Gdata_Exif_Extension_FocalLengthh$I KZend_Gdata_Exif_Extension_Flashh'H QZend_Gdata_Exif_Extension_Exposureh'G QZend_Gdata_Exif_Extension_DistancehF 7Zend_Gdata_Exif_EntryhE -Zend_Gdata_EntryhD 7Zend_Gdata_DublinCoreh*C WZend_Gdata_DublinCore_Extension_Titleh,B [Zend_Gdata_DublinCore_Extension_Subjecth+A YZend_Gdata_DublinCore_Extension_Rightsh.@ _Zend_Gdata_DublinCore_Extension_Publisherh-? ]Zend_Gdata_DublinCore_Extension_Languageh/> aZend_Gdata_DublinCore_Extension_Identifierh+= YZend_Gdata_DublinCore_Extension_Formath0< cZend_Gdata_DublinCore_Extension_Descriptionh); UZend_Gdata_DublinCore_Extension_Dateh,: [Zend_Gdata_DublinCore_Extension_Creatorh9 +Zend_Gdata_Docsh8 7Zend_Gdata_Docs_Queryh%7 MZend_Gdata_Docs_DocumentListFeedh&6 OZend_Gdata_Docs_DocumentListEntryh5 9Zend_Gdata_ClientLoginh4 3Zend_Gdata_Calendarh!3 EZend_Gdata_Calendar_ListFeedh"2 GZend_Gdata_Calendar_ListEntryh-1 ]Zend_Gdata_Calendar_Extension_WebContenth+0 YZend_Gdata_Calendar_Extension_Timezoneh9/ uZend_Gdata_Calendar_Extension_SendEventNotificationsh+. YZend_Gdata_Calendar_Extension_Selectedh+- YZend_Gdata_Calendar_Extension_QuickAddh', QZend_Gdata_Calendar_Extension_Linkh)+ UZend_Gdata_Calendar_Extension_Hiddenh(* SZend_Gdata_Calendar_Extension_Colorh.) _Zend_Gdata_Calendar_Extension_AccessLevelh#( IZend_Gdata_Calendar_EventQueryh"' GZend_Gdata_Calendar_EventFeedh   ]  wM%	}R(uR3q=S



t
[
8
				x	L	_4T&e6	[/lI%X. m:\-                               d ;Zend_Gdata_Spreadsheetsh*c WZend_Gdata_Spreadsheets_WorksheetFeedh+b YZend_Gdata_Spreadsheets_WorksheetEntryh,a [Zend_Gdata_Spreadsheets_SpreadsheetFeedh-` ]Zend_Gdata_Spreadsheets_SpreadsheetEntryh&_ OZend_Gdata_Spreadsheets_ListQueryh%^ MZend_Gdata_Spreadsheets_ListFeedh&] OZend_Gdata_Spreadsheets_ListEntryh/\ aZend_Gdata_Spreadsheets_Extension_RowCounth-[ ]Zend_Gdata_Spreadsheets_Extension_Customh/Z aZend_Gdata_Spreadsheets_Extension_ColCounth+Y YZend_Gdata_Spreadsheets_Extension_Cellh*X WZend_Gdata_Spreadsheets_DocumentQueryh&W OZend_Gdata_Spreadsheets_CellQueryh%V MZend_Gdata_Spreadsheets_CellFeedh&U OZend_Gdata_Spreadsheets_CellEntryhT -Zend_Gdata_QueryhS /Zend_Gdata_Photosh R CZend_Gdata_Photos_UserQueryhQ AZend_Gdata_Photos_UserFeedh P CZend_Gdata_Photos_UserEntryhO AZend_Gdata_Photos_TagEntryh!N EZend_Gdata_Photos_PhotoQueryh M CZend_Gdata_Photos_PhotoFeedh!L EZend_Gdata_Photos_PhotoEntryh&K OZend_Gdata_Photos_Extension_Widthh'J QZend_Gdata_Photos_Extension_Weighth(I SZend_Gdata_Photos_Extension_Versionh%H MZend_Gdata_Photos_Extension_Userh*G WZend_Gdata_Photos_Extension_Timestamph*F WZend_Gdata_Photos_Extension_Thumbnailh%E MZend_Gdata_Photos_Extension_Sizeh)D UZend_Gdata_Photos_Extension_Rotationh+C YZend_Gdata_Photos_Extension_QuotaLimith-B ]Zend_Gdata_Photos_Extension_QuotaCurrenth)A UZend_Gdata_Photos_Extension_Positionh(@ SZend_Gdata_Photos_Extension_PhotoIdh3? iZend_Gdata_Photos_Extension_NumPhotosRemainingh*> WZend_Gdata_Photos_Extension_NumPhotosh)= UZend_Gdata_Photos_Extension_Nicknameh%< MZend_Gdata_Photos_Extension_Nameh2; gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumh): UZend_Gdata_Photos_Extension_Locationh#9 IZend_Gdata_Photos_Extension_Idh'8 QZend_Gdata_Photos_Extension_Heighth27 gZend_Gdata_Photos_Extension_CommentingEnabledh-6 ]Zend_Gdata_Photos_Extension_CommentCounth'5 QZend_Gdata_Photos_Extension_Clienth)4 UZend_Gdata_Photos_Extension_Checksumh*3 WZend_Gdata_Photos_Extension_BytesUsedh(2 SZend_Gdata_Photos_Extension_AlbumIdh'1 QZend_Gdata_Photos_Extension_Accessh#0 IZend_Gdata_Photos_CommentEntryh!/ EZend_Gdata_Photos_AlbumQueryh . CZend_Gdata_Photos_AlbumFeedh!- EZend_Gdata_Photos_AlbumEntryh, AZend_Gdata_MediaMimeStreamh+ -Zend_Gdata_Mediah* 7Zend_Gdata_Media_Feedh*) WZend_Gdata_Media_Extension_MediaTitleh.( _Zend_Gdata_Media_Extension_MediaThumbnailh)' UZend_Gdata_Media_Extension_MediaTexth0& cZend_Gdata_Media_Extension_MediaRestrictionh+% YZend_Gdata_Media_Extension_MediaRatingh+$ YZend_Gdata_Media_Extension_MediaPlayerh-# ]Zend_Gdata_Media_Extension_MediaKeywordsh)" UZend_Gdata_Media_Extension_MediaHashh*! WZend_Gdata_Media_Extension_MediaGrouph0  cZend_Gdata_Media_Extension_MediaDescriptionh+ YZend_Gdata_Media_Extension_MediaCredith. _Zend_Gdata_Media_Extension_MediaCopyrighth, [Zend_Gdata_Media_Extension_MediaContenth- ]Zend_Gdata_Media_Extension_MediaCategoryh 9Zend_Gdata_Media_Entryh AZend_Gdata_Kind_EventEntryh 7Zend_Gdata_HttpClienth* WZend_Gdata_HttpAdapterStreamingSocketh) UZend_Gdata_HttpAdapterStreamingProxyh /Zend_Gdata_Healthh ;Zend_Gdata_Health_Queryh& OZend_Gdata_Health_ProfileListFeedh' QZend_Gdata_Health_ProfileListEntryh" GZend_Gdata_Health_ProfileFeedh# IZend_Gdata_Health_ProfileEntryh$ KZend_Gdata_Health_Extension_Ccrh )Zend_Gdata_Geoh 3Zend_Gdata_Geo_Feedh$ KZend_Gdata_Geo_Extension_GmlPosh& OZend_Gdata_Geo_Extension_GmlPointh) UZend_Gdata_Geo_Extension_GeoRssWhereh
 5Zend_Gdata_Geo_Entryh	 -Zend_Gdata_Gbaseh" GZend_Gdata_Gbase_SnippetQueryh   \  `8c6yM l:	|Q$



c
6
			{	J	l>rEe9tI"cG,X tK+\4                                           @ CZend_InfoCard_Xml_Exceptionh#? IZend_InfoCard_Xml_EncryptedKeyh$> KZend_InfoCard_Xml_EncryptedDatah+= YZend_InfoCard_Xml_EncryptedData_XmlEnch-< ]Zend_InfoCard_Xml_EncryptedData_Abstracth; ?Zend_InfoCard_Xml_Elementh : CZend_InfoCard_Xml_Assertionh%9 MZend_InfoCard_Xml_Assertion_Samlh8 ;Zend_InfoCard_Exceptionh%7 MZend_InfoCard_Exception_Abstracth6 5Zend_InfoCard_Claimsh5 5Zend_InfoCard_Cipherh54 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbch53 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbch42 kZend_InfoCard_Cipher_Symmetric_Adapter_Abstracth)1 UZend_InfoCard_Cipher_Pki_Adapter_Rsah.0 _Zend_InfoCard_Cipher_Pki_Adapter_Abstracth#/ IZend_InfoCard_Cipher_Exceptionh$. KZend_InfoCard_Adapter_Exceptionh"- GZend_InfoCard_Adapter_Defaulth, 1Zend_Http_Responseh+ 3Zend_Http_Exceptionh* 3Zend_Http_CookieJarh) -Zend_Http_Cookieh( -Zend_Http_Clienth' AZend_Http_Client_Exceptionh"& GZend_Http_Client_Adapter_Testh$% KZend_Http_Client_Adapter_Socketh#$ IZend_Http_Client_Adapter_Proxyh'# QZend_Http_Client_Adapter_Exceptionh"" GZend_Http_Client_Adapter_Curlh! !Zend_Gdatah  1Zend_Gdata_YouTubeh" GZend_Gdata_YouTube_VideoQueryh! EZend_Gdata_YouTube_VideoFeedh" GZend_Gdata_YouTube_VideoEntryh( SZend_Gdata_YouTube_UserProfileEntryh( SZend_Gdata_YouTube_SubscriptionFeedh) UZend_Gdata_YouTube_SubscriptionEntryh) UZend_Gdata_YouTube_PlaylistVideoFeedh* WZend_Gdata_YouTube_PlaylistVideoEntryh( SZend_Gdata_YouTube_PlaylistListFeedh) UZend_Gdata_YouTube_PlaylistListEntryh" GZend_Gdata_YouTube_MediaEntryh! EZend_Gdata_YouTube_InboxFeedh" GZend_Gdata_YouTube_InboxEntryh) UZend_Gdata_YouTube_Extension_VideoIdh* WZend_Gdata_YouTube_Extension_Usernameh* WZend_Gdata_YouTube_Extension_Uploadedh' QZend_Gdata_YouTube_Extension_Tokenh( SZend_Gdata_YouTube_Extension_Statush, [Zend_Gdata_YouTube_Extension_Statisticsh' QZend_Gdata_YouTube_Extension_Stateh( SZend_Gdata_YouTube_Extension_Schoolh-
 ]Zend_Gdata_YouTube_Extension_ReleaseDateh.	 _Zend_Gdata_YouTube_Extension_Relationshiph* WZend_Gdata_YouTube_Extension_Recordedh& OZend_Gdata_YouTube_Extension_Racyh- ]Zend_Gdata_YouTube_Extension_QueryStringh) UZend_Gdata_YouTube_Extension_Privateh* WZend_Gdata_YouTube_Extension_Positionh/ aZend_Gdata_YouTube_Extension_PlaylistTitleh, [Zend_Gdata_YouTube_Extension_PlaylistIdh, [Zend_Gdata_YouTube_Extension_Occupationh)  UZend_Gdata_YouTube_Extension_NoEmbedh' QZend_Gdata_YouTube_Extension_Musich(~ SZend_Gdata_YouTube_Extension_Moviesh-} ]Zend_Gdata_YouTube_Extension_MediaRatingh,| [Zend_Gdata_YouTube_Extension_MediaGrouph-{ ]Zend_Gdata_YouTube_Extension_MediaCredith.z _Zend_Gdata_YouTube_Extension_MediaContenth*y WZend_Gdata_YouTube_Extension_Locationh&x OZend_Gdata_YouTube_Extension_Linkh*w WZend_Gdata_YouTube_Extension_LastNameh*v WZend_Gdata_YouTube_Extension_Hometownh)u UZend_Gdata_YouTube_Extension_Hobbiesh(t SZend_Gdata_YouTube_Extension_Genderh+s YZend_Gdata_YouTube_Extension_FirstNameh*r WZend_Gdata_YouTube_Extension_Durationh-q ]Zend_Gdata_YouTube_Extension_Descriptionh+p YZend_Gdata_YouTube_Extension_CountHinth)o UZend_Gdata_YouTube_Extension_Controlh)n UZend_Gdata_YouTube_Extension_Companyh'm QZend_Gdata_YouTube_Extension_Booksh%l MZend_Gdata_YouTube_Extension_Ageh)k UZend_Gdata_YouTube_Extension_AboutMeh#j IZend_Gdata_YouTube_ContactFeedh$i KZend_Gdata_YouTube_ContactEntryh#h IZend_Gdata_YouTube_CommentFeedh$g KZend_Gdata_YouTube_CommentEntryh$f KZend_Gdata_YouTube_ActivityFeedh%e MZend_Gdata_YouTube_ActivityEntryh   v  _2V3fG$oR9'xf>



|
c
E
*
					~	]	<	|_B%mI$aAkI*{V5#qM)vU:iN-    6 3Zend_Measure_Torqueh5 /Zend_Measure_Timeh4 =Zend_Measure_Temperatureh3 1Zend_Measure_Speedh2 7Zend_Measure_Pressureh1 1Zend_Measure_Powerh0 3Zend_Measure_Numberh/ 9Zend_Measure_Lightnessh. 3Zend_Measure_Lengthh- ?Zend_Measure_Illuminationh, 9Zend_Measure_Frequencyh+ 1Zend_Measure_Forceh* =Zend_Measure_Flow_Volumeh) 9Zend_Measure_Flow_Moleh( 9Zend_Measure_Flow_Massh' 9Zend_Measure_Exceptionh& 3Zend_Measure_Energyh% 5Zend_Measure_Densityh$ 5Zend_Measure_Currenth # CZend_Measure_Cooking_Weighth " CZend_Measure_Cooking_Volumeh! =Zend_Measure_Capacitanceh  3Zend_Measure_Binaryh /Zend_Measure_Areah 1Zend_Measure_Angleh ?Zend_Measure_Accelerationh 7Zend_Measure_Abstracth Zend_Mailh =Zend_Mail_Transport_Smtph! EZend_Mail_Transport_Sendmailh" GZend_Mail_Transport_Exceptionh! EZend_Mail_Transport_Abstracth /Zend_Mail_Storageh' QZend_Mail_Storage_Writable_Maildirh 9Zend_Mail_Storage_Pop3h 9Zend_Mail_Storage_Mboxh ?Zend_Mail_Storage_Maildirh 9Zend_Mail_Storage_Imaph =Zend_Mail_Storage_Folderh" GZend_Mail_Storage_Folder_Mboxh% MZend_Mail_Storage_Folder_Maildirh  CZend_Mail_Storage_Exceptionh AZend_Mail_Storage_Abstracth ;Zend_Mail_Protocol_Smtph'
 QZend_Mail_Protocol_Smtp_Auth_Plainh'	 QZend_Mail_Protocol_Smtp_Auth_Loginh) UZend_Mail_Protocol_Smtp_Auth_Crammd5h ;Zend_Mail_Protocol_Pop3h ;Zend_Mail_Protocol_Imaph! EZend_Mail_Protocol_Exceptionh  CZend_Mail_Protocol_Abstracth )Zend_Mail_Parth 3Zend_Mail_Part_Fileh /Zend_Mail_Messageh  9Zend_Mail_Message_Fileh 3Zend_Mail_Exceptionh~ Zend_Logh} 9Zend_Log_Writer_Streamh| 5Zend_Log_Writer_Nullh{ 5Zend_Log_Writer_Mockhz 5Zend_Log_Writer_Mailhy ;Zend_Log_Writer_Firebughx 1Zend_Log_Writer_Dbhw =Zend_Log_Writer_Abstracthv 9Zend_Log_Formatter_Xmlhu ?Zend_Log_Formatter_Simpleht AZend_Log_Formatter_Firebughs =Zend_Log_Filter_Suppresshr =Zend_Log_Filter_Priorityhq ;Zend_Log_Filter_Messagehp 1Zend_Log_Exceptionho #Zend_Localehn -Zend_Locale_Mathhm =Zend_Locale_Math_PhpMathhl AZend_Locale_Math_Exceptionhk 1Zend_Locale_Formathj 7Zend_Locale_Exceptionhi -Zend_Locale_Datah!h EZend_Locale_Data_Translationhg #Zend_Loaderhf =Zend_Loader_PluginLoaderh'e QZend_Loader_PluginLoader_Exceptionhd 7Zend_Loader_Exceptionhc 9Zend_Loader_Autoloaderh$b KZend_Loader_Autoloader_Resourceha Zend_Ldaph` 3Zend_Ldap_Exceptionh_ #Zend_Layouth^ 7Zend_Layout_Exceptionh)] UZend_Layout_Controller_Plugin_Layouth0\ cZend_Layout_Controller_Action_Helper_Layouth[ Zend_JsonhZ -Zend_Json_ServerhY 5Zend_Json_Server_Smdh!X EZend_Json_Server_Smd_ServicehW ?Zend_Json_Server_Responseh#V IZend_Json_Server_Response_HttphU =Zend_Json_Server_Requesth"T GZend_Json_Server_Request_HttphS AZend_Json_Server_ExceptionhR 9Zend_Json_Server_ErrorhQ 9Zend_Json_Server_CachehP )Zend_Json_ExprhO 3Zend_Json_ExceptionhN /Zend_Json_EncoderhM /Zend_Json_DecoderhL 'Zend_InfoCardh-K ]Zend_InfoCard_Xml_SecurityTokenReferencehJ AZend_InfoCard_Xml_Securityh)I UZend_InfoCard_Xml_Security_Transformh4H kZend_InfoCard_Xml_Security_Transform_XmlExcC14Nh3G iZend_InfoCard_Xml_Security_Transform_Exceptionh<F {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignatureh)E UZend_InfoCard_Xml_Security_ExceptionhD ?Zend_InfoCard_Xml_KeyInfoh&C OZend_InfoCard_Xml_KeyInfo_XmlDSigh&B OZend_InfoCard_Xml_KeyInfo_Defaulth'A QZend_InfoCard_Xml_KeyInfo_Abstracth   k xS.iM3
gO% Z5k>



y
K

				q	[	?		lN0tQ1
p=c6}YC,nE}B L                                         A! Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliqueh9  uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldh5 mZend_Pdf_Resource_Font_Simple_Standard_Helveticah: wZend_Pdf_Resource_Font_Simple_Standard_CourierObliqueh> Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliqueh7 qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldh3 iZend_Pdf_Resource_Font_Simple_Standard_Courierh) UZend_Pdf_Resource_Font_Simple_Parsedh2 gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypeh* WZend_Pdf_Resource_Font_FontDescriptorh% MZend_Pdf_Resource_Font_Extractedh# IZend_Pdf_Resource_Font_CidFonth, [Zend_Pdf_Resource_Font_CidFont_TrueTypeh /Zend_Pdf_PhpArrayh +Zend_Pdf_Parserh 9Zend_Pdf_Parser_Streamh 'Zend_Pdf_Pageh )Zend_Pdf_Imageh 'Zend_Pdf_Fonth  CZend_Pdf_Filter_Compressionh$ KZend_Pdf_Filter_Compression_Lzwh& OZend_Pdf_Filter_Compression_Flateh =Zend_Pdf_Filter_AsciiHexh
 ;Zend_Pdf_Filter_Ascii85h"	 GZend_Pdf_FileParserDataSourceh) UZend_Pdf_FileParserDataSource_Stringh' QZend_Pdf_FileParserDataSource_Fileh 3Zend_Pdf_FileParserh ?Zend_Pdf_FileParser_Imageh" GZend_Pdf_FileParser_Image_Pngh =Zend_Pdf_FileParser_Fonth& OZend_Pdf_FileParser_Font_OpenTypeh/ aZend_Pdf_FileParser_Font_OpenType_TrueTypeh  1Zend_Pdf_Exceptionh ;Zend_Pdf_ElementFactoryh"~ GZend_Pdf_ElementFactory_Proxyh} -Zend_Pdf_Elementh| ;Zend_Pdf_Element_Stringh#{ IZend_Pdf_Element_String_Binaryhz ;Zend_Pdf_Element_Streamhy AZend_Pdf_Element_Referenceh%x MZend_Pdf_Element_Reference_Tableh'w QZend_Pdf_Element_Reference_Contexthv ;Zend_Pdf_Element_Objecth#u IZend_Pdf_Element_Object_Streamht =Zend_Pdf_Element_Numerichs 7Zend_Pdf_Element_Nullhr 7Zend_Pdf_Element_Nameh q CZend_Pdf_Element_Dictionaryhp =Zend_Pdf_Element_Booleanho 9Zend_Pdf_Element_Arrayhn )Zend_Pdf_Colorhm 1Zend_Pdf_Color_Rgbhl 3Zend_Pdf_Color_Htmlhk =Zend_Pdf_Color_GrayScalehj 3Zend_Pdf_Color_Cmykhi 'Zend_Pdf_Cmaphh AZend_Pdf_Cmap_TrimmedTableh!g EZend_Pdf_Cmap_SegmentToDeltahf AZend_Pdf_Cmap_ByteEncodingh&e OZend_Pdf_Cmap_ByteEncoding_Statichd )Zend_Paginatorh*c WZend_Paginator_ScrollingStyle_Slidingh*b WZend_Paginator_ScrollingStyle_Jumpingh*a WZend_Paginator_ScrollingStyle_Elastich&` OZend_Paginator_ScrollingStyle_Allh_ =Zend_Paginator_Exceptionh ^ CZend_Paginator_Adapter_Nullh$] KZend_Paginator_Adapter_Iteratorh)\ UZend_Paginator_Adapter_DbTableSelecth$[ KZend_Paginator_Adapter_DbSelecth!Z EZend_Paginator_Adapter_ArrayhY #Zend_OpenIdhX 5Zend_OpenId_ProviderhW ?Zend_OpenId_Provider_Userh&V OZend_OpenId_Provider_User_Sessionh!U EZend_OpenId_Provider_Storageh&T OZend_OpenId_Provider_Storage_FilehS 7Zend_OpenId_ExtensionhR AZend_OpenId_Extension_SreghQ 7Zend_OpenId_ExceptionhP 5Zend_OpenId_Consumerh!O EZend_OpenId_Consumer_Storageh&N OZend_OpenId_Consumer_Storage_FilehM +Zend_NavigationhL 5Zend_Navigation_PagehK =Zend_Navigation_Page_UrihJ =Zend_Navigation_Page_MvchI ?Zend_Navigation_ExceptionhH ?Zend_Navigation_ContainerhG Zend_MimehF )Zend_Mime_ParthE /Zend_Mime_MessagehD 3Zend_Mime_ExceptionhC -Zend_Mime_DecodehB #Zend_MemoryhA /Zend_Memory_Valueh@ 3Zend_Memory_Managerh? 7Zend_Memory_Exceptionh> 7Zend_Memory_Containerh"= GZend_Memory_Container_Movableh!< EZend_Memory_Container_Lockedh!; EZend_Memory_AccessControllerh: 3Zend_Measure_Weighth9 3Zend_Measure_Volumeh%8 MZend_Measure_Viscosity_Kinematich#7 IZend_Measure_Viscosity_Dynamich   [  Qa2Z:hC2	mJ1



v
T
2
					|	Y	/	6t*h4e*i@yX9^/`6                             $| KZend_Search_Lucene_Index_Writerh0{ cZend_Search_Lucene_Index_TermsPriorityQueueh&z OZend_Search_Lucene_Index_TermInfoh"y GZend_Search_Lucene_Index_Termh+x YZend_Search_Lucene_Index_SegmentWriterh8w sZend_Search_Lucene_Index_SegmentWriter_StreamWriterh:v wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterh+u YZend_Search_Lucene_Index_SegmentMergerh)t UZend_Search_Lucene_Index_SegmentInfoh's QZend_Search_Lucene_Index_FieldInfoh(r SZend_Search_Lucene_Index_DocsFilterh.q _Zend_Search_Lucene_Index_DictionaryLoaderh!p EZend_Search_Lucene_FSMActionho 9Zend_Search_Lucene_FSMhn =Zend_Search_Lucene_Fieldh!m EZend_Search_Lucene_Exceptionh l CZend_Search_Lucene_Documenth%k MZend_Search_Lucene_Document_Xlsxh%j MZend_Search_Lucene_Document_Pptxh(i SZend_Search_Lucene_Document_OpenXmlh%h MZend_Search_Lucene_Document_Htmlh*g WZend_Search_Lucene_Document_Exceptionh%f MZend_Search_Lucene_Document_Docxh,e [Zend_Search_Lucene_Analysis_TokenFilterh6d oZend_Search_Lucene_Analysis_TokenFilter_StopWordsh7c qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsh:b wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8h6a oZend_Search_Lucene_Analysis_TokenFilter_LowerCaseh&` OZend_Search_Lucene_Analysis_Tokenh)_ UZend_Search_Lucene_Analysis_Analyzerh0^ cZend_Search_Lucene_Analysis_Analyzer_Commonh8] sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumhI\ Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitiveh5[ mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8hFZ Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitiveh8Y sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumhIX Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitiveh5W mZend_Search_Lucene_Analysis_Analyzer_Common_TexthFV Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitivehU 7Zend_Search_ExceptionhT -Zend_Rest_ServerhS AZend_Rest_Server_ExceptionhR 3Zend_Rest_ExceptionhQ -Zend_Rest_ClienthP ;Zend_Rest_Client_Resulth&O OZend_Rest_Client_Result_ExceptionhN AZend_Rest_Client_ExceptionhM 'Zend_RegistryhL =Zend_Reflection_PropertyhK ?Zend_Reflection_ParameterhJ 9Zend_Reflection_MethodhI =Zend_Reflection_FunctionhH 5Zend_Reflection_FilehG ?Zend_Reflection_ExtensionhF ?Zend_Reflection_ExceptionhE =Zend_Reflection_Docblockh!D EZend_Reflection_Docblock_Tagh(C SZend_Reflection_Docblock_Tag_Returnh'B QZend_Reflection_Docblock_Tag_ParamhA 7Zend_Reflection_Classh@ -Zend_ProgressBarh? AZend_ProgressBar_Exceptionh> =Zend_ProgressBar_Adapterh$= KZend_ProgressBar_Adapter_JsPushh$< KZend_ProgressBar_Adapter_JsPullh'; QZend_ProgressBar_Adapter_Exceptionh%: MZend_ProgressBar_Adapter_Consoleh9 Zend_Pdfh!8 EZend_Pdf_UpdateInfoContainerh7 -Zend_Pdf_Trailerh6 ;Zend_Pdf_Trailer_Keeperh5 AZend_Pdf_Trailer_Generatorh4 )Zend_Pdf_Styleh3 7Zend_Pdf_StringParserh2 /Zend_Pdf_Resourceh#1 IZend_Pdf_Resource_ImageFactoryh0 ;Zend_Pdf_Resource_Imageh!/ EZend_Pdf_Resource_Image_Tiffh . CZend_Pdf_Resource_Image_Pngh!- EZend_Pdf_Resource_Image_Jpegh, 9Zend_Pdf_Resource_Fonth!+ EZend_Pdf_Resource_Font_Type0h"* GZend_Pdf_Resource_Font_Simpleh+) YZend_Pdf_Resource_Font_Simple_Standardh8( sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsh6' oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanh7& qZend_Pdf_Resource_Font_Simple_Standard_TimesItalich;% yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalich5$ mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldh2# gZend_Pdf_Resource_Font_Simple_Standard_Symbolh<" {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueh   [  }\\*G])i<


u
@
				P	"a2
{W1h@yZ<~L(]6lJ)pG!                          'W QZend_Service_Amazon_SimilarProducthV 9Zend_Service_Amazon_S3h"U GZend_Service_Amazon_S3_Streamh%T MZend_Service_Amazon_S3_Exceptionh"S GZend_Service_Amazon_ResultSethR ?Zend_Service_Amazon_Queryh!Q EZend_Service_Amazon_OfferSethP ?Zend_Service_Amazon_Offerh&O OZend_Service_Amazon_ListmaniaListhN =Zend_Service_Amazon_ItemhM ?Zend_Service_Amazon_Imageh"L GZend_Service_Amazon_Exceptionh(K SZend_Service_Amazon_EditorialReviewhJ ;Zend_Service_Amazon_Ec2h+I YZend_Service_Amazon_Ec2_Securitygroupsh%H MZend_Service_Amazon_Ec2_Responseh#G IZend_Service_Amazon_Ec2_Regionh$F KZend_Service_Amazon_Ec2_Keypairh%E MZend_Service_Amazon_Ec2_Instanceh"D GZend_Service_Amazon_Ec2_Imageh&C OZend_Service_Amazon_Ec2_Exceptionh&B OZend_Service_Amazon_Ec2_Elasticiph A CZend_Service_Amazon_Ec2_Ebsh.@ _Zend_Service_Amazon_Ec2_Availabilityzonesh%? MZend_Service_Amazon_Ec2_Abstracth'> QZend_Service_Amazon_CustomerReviewh$= KZend_Service_Amazon_Accessoriesh!< EZend_Service_Amazon_Abstracth; 5Zend_Service_Akismeth: 7Zend_Service_Abstracth9 9Zend_Server_Reflectionh'8 QZend_Server_Reflection_ReturnValueh%7 MZend_Server_Reflection_Prototypeh%6 MZend_Server_Reflection_Parameterh 5 CZend_Server_Reflection_Nodeh"4 GZend_Server_Reflection_Methodh$3 KZend_Server_Reflection_Functionh-2 ]Zend_Server_Reflection_Function_Abstracth%1 MZend_Server_Reflection_Exceptionh!0 EZend_Server_Reflection_Classh!/ EZend_Server_Method_Prototypeh!. EZend_Server_Method_Parameterh"- GZend_Server_Method_Definitionh , CZend_Server_Method_Callbackh+ 7Zend_Server_Exceptionh* 9Zend_Server_Definitionh) /Zend_Server_Cacheh( 5Zend_Server_Abstracth' 1Zend_Search_Luceneh$& KZend_Search_Lucene_Storage_Fileh+% YZend_Search_Lucene_Storage_File_Memoryh/$ aZend_Search_Lucene_Storage_File_Filesystemh)# UZend_Search_Lucene_Storage_Directoryh4" kZend_Search_Lucene_Storage_Directory_Filesystemh%! MZend_Search_Lucene_Search_Weighth*  WZend_Search_Lucene_Search_Weight_Termh, [Zend_Search_Lucene_Search_Weight_Phraseh/ aZend_Search_Lucene_Search_Weight_MultiTermh+ YZend_Search_Lucene_Search_Weight_Emptyh- ]Zend_Search_Lucene_Search_Weight_Booleanh) UZend_Search_Lucene_Search_Similarityh1 eZend_Search_Lucene_Search_Similarity_Defaulth) UZend_Search_Lucene_Search_QueryTokenh3 iZend_Search_Lucene_Search_QueryParserExceptionh1 eZend_Search_Lucene_Search_QueryParserContexth* WZend_Search_Lucene_Search_QueryParserh) UZend_Search_Lucene_Search_QueryLexerh' QZend_Search_Lucene_Search_QueryHith) UZend_Search_Lucene_Search_QueryEntryh. _Zend_Search_Lucene_Search_QueryEntry_Termh2 gZend_Search_Lucene_Search_QueryEntry_Subqueryh0 cZend_Search_Lucene_Search_QueryEntry_Phraseh$ KZend_Search_Lucene_Search_Queryh- ]Zend_Search_Lucene_Search_Query_Wildcardh) UZend_Search_Lucene_Search_Query_Termh* WZend_Search_Lucene_Search_Query_Rangeh2 gZend_Search_Lucene_Search_Query_Preprocessingh7
 qZend_Search_Lucene_Search_Query_Preprocessing_Termh9	 uZend_Search_Lucene_Search_Query_Preprocessing_Phraseh8 sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzyh+ YZend_Search_Lucene_Search_Query_Phraseh. _Zend_Search_Lucene_Search_Query_MultiTermh2 gZend_Search_Lucene_Search_Query_Insignificanth* WZend_Search_Lucene_Search_Query_Fuzzyh* WZend_Search_Lucene_Search_Query_Emptyh, [Zend_Search_Lucene_Search_Query_Booleanh: wZend_Search_Lucene_Search_BooleanExpressionRecognizerh  =Zend_Search_Lucene_Proxyh% MZend_Search_Lucene_PriorityQueueh/~ aZend_Search_Lucene_Interface_MultiSearcherh#} IZend_Search_Lucene_LockManagerh   d  sK!x\4l:cC a9




[
1
 			~	W	(d:`0Z3c9g>yO*b7eE"                           ; -Zend_Soap_Clienth: 9Zend_Soap_Client_Localh9 AZend_Soap_Client_Exceptionh8 ;Zend_Soap_Client_DotNeth7 ;Zend_Soap_Client_Commonh6 9Zend_Soap_AutoDiscoverh%5 MZend_Soap_AutoDiscover_Exceptionh4 %Zend_Sessionh)3 UZend_Session_Validator_HttpUserAgenth$2 KZend_Session_Validator_Abstracth'1 QZend_Session_SaveHandler_Exceptionh%0 MZend_Session_SaveHandler_DbTableh/ 9Zend_Session_Namespaceh. 9Zend_Session_Exceptionh- 7Zend_Session_Abstracth, 1Zend_Service_Yahooh$+ KZend_Service_Yahoo_WebResultSeth!* EZend_Service_Yahoo_WebResulth&) OZend_Service_Yahoo_VideoResultSeth#( IZend_Service_Yahoo_VideoResulth!' EZend_Service_Yahoo_ResultSeth& ?Zend_Service_Yahoo_Resulth)% UZend_Service_Yahoo_PageDataResultSeth&$ OZend_Service_Yahoo_PageDataResulth%# MZend_Service_Yahoo_NewsResultSeth"" GZend_Service_Yahoo_NewsResulth&! OZend_Service_Yahoo_LocalResultSeth#  IZend_Service_Yahoo_LocalResulth+ YZend_Service_Yahoo_InlinkDataResultSeth( SZend_Service_Yahoo_InlinkDataResulth& OZend_Service_Yahoo_ImageResultSeth# IZend_Service_Yahoo_ImageResulth =Zend_Service_Yahoo_Imageh 5Zend_Service_Twitterh  CZend_Service_Twitter_Searchh# IZend_Service_Twitter_Exceptionh ;Zend_Service_Technoratih# IZend_Service_Technorati_Weblogh" GZend_Service_Technorati_Utilsh* WZend_Service_Technorati_TagsResultSeth' QZend_Service_Technorati_TagsResulth) UZend_Service_Technorati_TagResultSeth& OZend_Service_Technorati_TagResulth, [Zend_Service_Technorati_SearchResultSeth) UZend_Service_Technorati_SearchResulth& OZend_Service_Technorati_ResultSeth# IZend_Service_Technorati_Resulth* WZend_Service_Technorati_KeyInfoResulth* WZend_Service_Technorati_GetInfoResulth&
 OZend_Service_Technorati_Exceptionh1	 eZend_Service_Technorati_DailyCountsResultSeth. _Zend_Service_Technorati_DailyCountsResulth, [Zend_Service_Technorati_CosmosResultSeth) UZend_Service_Technorati_CosmosResulth+ YZend_Service_Technorati_BlogInfoResulth# IZend_Service_Technorati_Authorh ;Zend_Service_StrikeIronh( SZend_Service_StrikeIron_ZipCodeInfoh2 gZend_Service_StrikeIron_USAddressVerificationh-  ]Zend_Service_StrikeIron_SalesUseTaxBasich& OZend_Service_StrikeIron_Exceptionh&~ OZend_Service_StrikeIron_Decoratorh!} EZend_Service_StrikeIron_Baseh| ;Zend_Service_SlideShareh&{ OZend_Service_SlideShare_SlideShowh&z OZend_Service_SlideShare_Exceptionhy 1Zend_Service_Simpyh$x KZend_Service_Simpy_WatchlistSeth*w WZend_Service_Simpy_WatchlistFilterSeth'v QZend_Service_Simpy_WatchlistFilterh!u EZend_Service_Simpy_Watchlistht ?Zend_Service_Simpy_TagSeths 9Zend_Service_Simpy_Taghr AZend_Service_Simpy_NoteSethq ;Zend_Service_Simpy_Notehp AZend_Service_Simpy_LinkSeth!o EZend_Service_Simpy_LinkQueryhn ;Zend_Service_Simpy_Linkhm 9Zend_Service_ReCaptchah$l KZend_Service_ReCaptcha_Responseh$k KZend_Service_ReCaptcha_MailHideh.j _Zend_Service_ReCaptcha_MailHide_Exceptionh%i MZend_Service_ReCaptcha_Exceptionhh 7Zend_Service_Nirvanixh#g IZend_Service_Nirvanix_Responseh)f UZend_Service_Nirvanix_Namespace_Imfsh)e UZend_Service_Nirvanix_Namespace_Baseh$d KZend_Service_Nirvanix_Exceptionhc 3Zend_Service_Flickrh"b GZend_Service_Flickr_ResultSetha AZend_Service_Flickr_Resulth` ?Zend_Service_Flickr_Imageh_ 9Zend_Service_Exceptionh^ 9Zend_Service_Delicioush&] OZend_Service_Delicious_SimplePosth$\ KZend_Service_Delicious_PostListh [ CZend_Service_Delicious_Posth%Z MZend_Service_Delicious_Exceptionh Y CZend_Service_AudioscrobblerhX 3Zend_Service_Amazonh   U  zRwIoL3hP0qC


s
+
 			[	Y-vGV&rAvBwJ^+O     0 cZend_Tool_Project_Context_Zf_ControllerFileh2 gZend_Tool_Project_Context_Zf_ConfigsDirectoryh, [Zend_Tool_Project_Context_Zf_ConfigFileh0 cZend_Tool_Project_Context_Zf_CacheDirectoryh/ aZend_Tool_Project_Context_Zf_BootstrapFileh6 oZend_Tool_Project_Context_Zf_ApplicationDirectoryh7
 qZend_Tool_Project_Context_Zf_ApplicationConfigFileh/	 aZend_Tool_Project_Context_Zf_ApisDirectoryh. _Zend_Tool_Project_Context_Zf_ActionMethodh@ Zend_Tool_Project_Context_System_ProjectProvidersDirectoryh8 sZend_Tool_Project_Context_System_ProjectProfileFileh6 oZend_Tool_Project_Context_System_ProjectDirectoryh) UZend_Tool_Project_Context_Repositoryh. _Zend_Tool_Project_Context_Filesystem_Fileh3 iZend_Tool_Project_Context_Filesystem_Directoryh2 gZend_Tool_Project_Context_Filesystem_Abstracth(  SZend_Tool_Project_Context_Exceptionh0 cZend_Tool_Framework_System_Provider_Versionh2~ gZend_Tool_Framework_System_Provider_Providersh0} cZend_Tool_Framework_System_Provider_Phpinfoh1| eZend_Tool_Framework_System_Provider_Manifesth({ SZend_Tool_Framework_System_Manifesth-z ]Zend_Tool_Framework_System_Action_Deleteh-y ]Zend_Tool_Framework_System_Action_Createh!x EZend_Tool_Framework_Registryh+w YZend_Tool_Framework_Registry_Exceptionh+v YZend_Tool_Framework_Provider_Signatureh,u [Zend_Tool_Framework_Provider_Repositoryh+t YZend_Tool_Framework_Provider_Exceptionh*s WZend_Tool_Framework_Provider_Abstracth,r [Zend_Tool_Framework_Manifest_Repositoryh2q gZend_Tool_Framework_Manifest_ProviderMetadatah*p WZend_Tool_Framework_Manifest_Metadatah+o YZend_Tool_Framework_Manifest_Exceptionh0n cZend_Tool_Framework_Manifest_ActionMetadatah1m eZend_Tool_Framework_Loader_IncludePathLoaderhJl Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIteratorh(k SZend_Tool_Framework_Loader_Abstracth"j GZend_Tool_Framework_Exceptionh(i SZend_Tool_Framework_Client_ResponsehDh 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separatorh'g QZend_Tool_Framework_Client_Requesth9f uZend_Tool_Framework_Client_Interactive_InputResponseh8e sZend_Tool_Framework_Client_Interactive_InputRequesth8d sZend_Tool_Framework_Client_Interactive_InputHandlerh)c UZend_Tool_Framework_Client_Exceptionh'b QZend_Tool_Framework_Client_ConsolehDa 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizerh0` cZend_Tool_Framework_Client_Console_Manifesth2_ gZend_Tool_Framework_Client_Console_HelpSystemh6^ oZend_Tool_Framework_Client_Console_ArgumentParserh(] SZend_Tool_Framework_Client_Abstracth*\ WZend_Tool_Framework_Action_Repositoryh)[ UZend_Tool_Framework_Action_Exceptionh$Z KZend_Tool_Framework_Action_BasehY 'Zend_TimeSynchX 1Zend_TimeSync_SntphW 9Zend_TimeSync_ProtocolhV /Zend_TimeSync_NtphU ;Zend_TimeSync_ExceptionhT +Zend_Text_TablehS 3Zend_Text_Table_RowhR ?Zend_Text_Table_Exceptionh&Q OZend_Text_Table_Decorator_Unicodeh$P KZend_Text_Table_Decorator_AsciihO 9Zend_Text_Table_ColumnhN 3Zend_Text_MultiBytehM -Zend_Text_FiglethL AZend_Text_Figlet_ExceptionhK 3Zend_Text_Exceptionh)J UZend_Test_PHPUnit_ControllerTestCaseh0I cZend_Test_PHPUnit_Constraint_ResponseHeaderh*H WZend_Test_PHPUnit_Constraint_Redirecth+G YZend_Test_PHPUnit_Constraint_Exceptionh*F WZend_Test_PHPUnit_Constraint_DomQueryhE )Zend_Soap_Wsdlh/D aZend_Soap_Wsdl_Strategy_DefaultComplexTypeh&C OZend_Soap_Wsdl_Strategy_Compositeh0B cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequenceh/A aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplexh$@ KZend_Soap_Wsdl_Strategy_AnyTypeh%? MZend_Soap_Wsdl_Strategy_Abstracth> =Zend_Soap_Wsdl_Exceptionh= -Zend_Soap_Serverh< AZend_Soap_Server_Exceptionh   R  ],b,_)K\$


U
			j	&<Z&e*k?b:\4zX5qV@/            b CZend_Validate_Barcode_Ean13ha 3Zend_Validate_Alphah` 3Zend_Validate_Alnumh_ 9Zend_Validate_Abstracth^ Zend_Urih] 'Zend_Uri_Httph\ 1Zend_Uri_Exceptionh[ )Zend_TranslatehZ =Zend_Translate_ExceptionhY 9Zend_Translate_Adapterh!X EZend_Translate_Adapter_XmlTmh!W EZend_Translate_Adapter_XliffhV AZend_Translate_Adapter_TmxhU AZend_Translate_Adapter_TbxhT ?Zend_Translate_Adapter_QthS AZend_Translate_Adapter_Inih#R IZend_Translate_Adapter_GettexthQ AZend_Translate_Adapter_Csvh!P EZend_Translate_Adapter_Arrayh$O KZend_Tool_Project_Provider_Viewh$N KZend_Tool_Project_Provider_Testh/M aZend_Tool_Project_Provider_ProjectProviderh'L QZend_Tool_Project_Provider_Projecth'K QZend_Tool_Project_Provider_Profileh%J MZend_Tool_Project_Provider_Modelh(I SZend_Tool_Project_Provider_Manifesth$H KZend_Tool_Project_Provider_Formh)G UZend_Tool_Project_Provider_Exceptionh'F QZend_Tool_Project_Provider_DbTableh)E UZend_Tool_Project_Provider_DbAdapterh*D WZend_Tool_Project_Provider_Controllerh&C OZend_Tool_Project_Provider_Actionh(B SZend_Tool_Project_Provider_AbstracthA ?Zend_Tool_Project_Profileh'@ QZend_Tool_Project_Profile_Resourceh9? uZend_Tool_Project_Profile_Resource_SearchConstraintsh1> eZend_Tool_Project_Profile_Resource_Containerh7= qZend_Tool_Project_Profile_Iterator_EnabledResourceh-< ]Zend_Tool_Project_Profile_FileParser_Xmlh(; SZend_Tool_Project_Profile_Exceptionh : CZend_Tool_Project_Exceptionh<9 {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectoryh08 cZend_Tool_Project_Context_Zf_ViewsDirectoryh67 oZend_Tool_Project_Context_Zf_ViewScriptsDirectoryh06 cZend_Tool_Project_Context_Zf_ViewScriptFileh65 oZend_Tool_Project_Context_Zf_ViewHelpersDirectoryh64 oZend_Tool_Project_Context_Zf_ViewFiltersDirectoryhA3 Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectoryh22 gZend_Tool_Project_Context_Zf_UploadsDirectoryh01 cZend_Tool_Project_Context_Zf_TestsDirectoryh70 qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFileh@/ Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectoryh1. eZend_Tool_Project_Context_Zf_TestLibraryFileh6- oZend_Tool_Project_Context_Zf_TestLibraryDirectoryh:, wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFileh:+ wZend_Tool_Project_Context_Zf_TestApplicationDirectoryh@* Zend_Tool_Project_Context_Zf_TestApplicationControllerFilehE) Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectoryh>( Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFileh4' kZend_Tool_Project_Context_Zf_TemporaryDirectoryh3& iZend_Tool_Project_Context_Zf_SessionsDirectoryh8% sZend_Tool_Project_Context_Zf_SearchIndexesDirectoryh<$ {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectoryh8# sZend_Tool_Project_Context_Zf_PublicScriptsDirectoryh1" eZend_Tool_Project_Context_Zf_PublicIndexFileh7! qZend_Tool_Project_Context_Zf_PublicImagesDirectoryh1  eZend_Tool_Project_Context_Zf_PublicDirectoryh5 mZend_Tool_Project_Context_Zf_ProjectProviderFileh2 gZend_Tool_Project_Context_Zf_ModulesDirectoryh1 eZend_Tool_Project_Context_Zf_ModelsDirectoryh+ YZend_Tool_Project_Context_Zf_ModelFileh/ aZend_Tool_Project_Context_Zf_LogsDirectoryh2 gZend_Tool_Project_Context_Zf_LocalesDirectoryh2 gZend_Tool_Project_Context_Zf_LibraryDirectoryh2 gZend_Tool_Project_Context_Zf_LayoutsDirectoryh. _Zend_Tool_Project_Context_Zf_HtaccessFileh0 cZend_Tool_Project_Context_Zf_FormsDirectoryh* WZend_Tool_Project_Context_Zf_FormFileh- ]Zend_Tool_Project_Context_Zf_DbTableFileh2 gZend_Tool_Project_Context_Zf_DbTableDirectoryh/ aZend_Tool_Project_Context_Zf_DataDirectoryh6 oZend_Tool_Project_Context_Zf_ControllersDirectoryh   l jM*
qO*uV2jH.dE)





b
=
					m	I	'	pJ'tR0~\8^.`5~D]:X&                                 !N EZend_Wildfire_Plugin_FirePhph.M _Zend_Wildfire_Plugin_FirePhp_TableMessageh)L UZend_Wildfire_Plugin_FirePhp_MessagehK ;Zend_Wildfire_Exceptionh&J OZend_Wildfire_Channel_HttpHeadershI Zend_ViewhH -Zend_View_StreamhG 5Zend_View_Helper_UrlhF AZend_View_Helper_TranslatehE AZend_View_Helper_ServerUrlh)D UZend_View_Helper_RenderToPlaceholderh!C EZend_View_Helper_Placeholderh*B WZend_View_Helper_Placeholder_Registryh4A kZend_View_Helper_Placeholder_Registry_Exceptionh+@ YZend_View_Helper_Placeholder_Containerh6? oZend_View_Helper_Placeholder_Container_Standaloneh5> mZend_View_Helper_Placeholder_Container_Exceptionh4= kZend_View_Helper_Placeholder_Container_Abstracth!< EZend_View_Helper_PartialLooph; =Zend_View_Helper_Partialh': QZend_View_Helper_Partial_Exceptionh'9 QZend_View_Helper_PaginationControlh 8 CZend_View_Helper_Navigationh(7 SZend_View_Helper_Navigation_Sitemaph%6 MZend_View_Helper_Navigation_Menuh&5 OZend_View_Helper_Navigation_Linksh,4 [Zend_View_Helper_Navigation_Breadcrumbsh)3 UZend_View_Helper_Navigation_Abstracth2 ;Zend_View_Helper_Layouth1 7Zend_View_Helper_Jsonh"0 GZend_View_Helper_InlineScripth#/ IZend_View_Helper_HtmlQuicktimeh. ?Zend_View_Helper_HtmlPageh - CZend_View_Helper_HtmlObjecth, ?Zend_View_Helper_HtmlListh+ AZend_View_Helper_HtmlFlashh!* EZend_View_Helper_HtmlElementh) AZend_View_Helper_HeadTitleh( AZend_View_Helper_HeadStyleh ' CZend_View_Helper_HeadScripth& ?Zend_View_Helper_HeadMetah% ?Zend_View_Helper_HeadLinkh"$ GZend_View_Helper_FormTextareah# ?Zend_View_Helper_FormTexth " CZend_View_Helper_FormSubmith ! CZend_View_Helper_FormSelecth  AZend_View_Helper_FormReseth AZend_View_Helper_FormRadioh" GZend_View_Helper_FormPasswordh ?Zend_View_Helper_FormNoteh' QZend_View_Helper_FormMultiCheckboxh AZend_View_Helper_FormLabelh AZend_View_Helper_FormImageh  CZend_View_Helper_FormHiddenh ?Zend_View_Helper_FormFileh  CZend_View_Helper_FormErrorsh! EZend_View_Helper_FormElementh" GZend_View_Helper_FormCheckboxh  CZend_View_Helper_FormButtonh 7Zend_View_Helper_Formh ?Zend_View_Helper_Fieldseth =Zend_View_Helper_Doctypeh! EZend_View_Helper_DeclareVarsh ;Zend_View_Helper_Actionh ?Zend_View_Helper_Abstracth 3Zend_View_Exceptionh 1Zend_View_Abstracth %Zend_Versionh
 'Zend_Validateh	 AZend_Validate_StringLengthh 3Zend_Validate_Regexh 9Zend_Validate_NotEmptyh 9Zend_Validate_LessThanh -Zend_Validate_Iph /Zend_Validate_Inth 7Zend_Validate_InArrayh ;Zend_Validate_Identicalh 1Zend_Validate_Ibanh  9Zend_Validate_Hostnameh /Zend_Validate_Hexh~ ?Zend_Validate_GreaterThanh} 3Zend_Validate_Floath!| EZend_Validate_File_WordCounth{ ?Zend_Validate_File_Uploadhz ;Zend_Validate_File_Sizehy ;Zend_Validate_File_Sha1h!x EZend_Validate_File_NotExistsh w CZend_Validate_File_MimeTypehv 9Zend_Validate_File_Md5hu AZend_Validate_File_IsImageh$t KZend_Validate_File_IsCompressedh!s EZend_Validate_File_ImageSizehr ;Zend_Validate_File_Hashh!q EZend_Validate_File_FilesSizeh!p EZend_Validate_File_Extensionho ?Zend_Validate_File_Existsh'n QZend_Validate_File_ExcludeMimeTypeh(m SZend_Validate_File_ExcludeExtensionhl =Zend_Validate_File_Crc32hk =Zend_Validate_File_Counthj ;Zend_Validate_Exceptionhi AZend_Validate_EmailAddresshh 5Zend_Validate_Digitshg 1Zend_Validate_Datehf 3Zend_Validate_Ccnumhe 7Zend_Validate_Betweenhd 7Zend_Validate_Barcodehc AZend_Validate_Barcode_UpcAh   l  ^/ eC'_D$xT2|b9




m
D
					n	P	7	]8uGeBjAe;h6	kR.nL,      : ?Zend_Cache_Backend_Xcachei!9 EZend_Cache_Backend_TwoLevelsi8 ;Zend_Cache_Backend_Testi7 ?Zend_Cache_Backend_Sqlitei!6 EZend_Cache_Backend_Memcachedi5 ;Zend_Cache_Backend_Filei4 9Zend_Cache_Backend_Apci3 Zend_Authi2 ?Zend_Auth_Storage_Sessioni$1 KZend_Auth_Storage_NonPersistenti 0 CZend_Auth_Storage_Exceptioni/ -Zend_Auth_Resulti. 3Zend_Auth_Exceptioni- =Zend_Auth_Adapter_OpenIdi, 9Zend_Auth_Adapter_Ldapi+ AZend_Auth_Adapter_InfoCardi* 9Zend_Auth_Adapter_Httpi)) UZend_Auth_Adapter_Http_Resolver_Filei.( _Zend_Auth_Adapter_Http_Resolver_Exceptioni ' CZend_Auth_Adapter_Exceptioni& =Zend_Auth_Adapter_Digesti% ?Zend_Auth_Adapter_DbTablei$ -Zend_Applicationi## IZend_Application_Resource_Viewi(" SZend_Application_Resource_Translatei&! OZend_Application_Resource_Sessioni%  MZend_Application_Resource_Routeri/ aZend_Application_Resource_ResourceAbstracti) UZend_Application_Resource_Navigationi& OZend_Application_Resource_Modulesi% MZend_Application_Resource_Localei% MZend_Application_Resource_Layouti. _Zend_Application_Resource_Frontcontrolleri( SZend_Application_Resource_Exceptioni! EZend_Application_Resource_Dbi& OZend_Application_Module_Bootstrapi' QZend_Application_Module_Autoloaderi AZend_Application_Exceptioni) UZend_Application_Bootstrap_Exceptioni1 eZend_Application_Bootstrap_BootstrapAbstracti) UZend_Application_Bootstrap_Bootstrapi ?Zend_Amf_Value_TraitsInfoi- ]Zend_Amf_Value_Messaging_RemotingMessagei* WZend_Amf_Value_Messaging_ErrorMessagei, [Zend_Amf_Value_Messaging_CommandMessagei* WZend_Amf_Value_Messaging_AsyncMessagei0 cZend_Amf_Value_Messaging_AcknowledgeMessagei- ]Zend_Amf_Value_Messaging_AbstractMessagei!
 EZend_Amf_Value_MessageHeaderi	 AZend_Amf_Value_MessageBodyi =Zend_Amf_Value_ByteArrayi AZend_Amf_Util_BinaryStreami +Zend_Amf_Serveri ?Zend_Amf_Server_Exceptioni /Zend_Amf_Responsei 9Zend_Amf_Response_Httpi -Zend_Amf_Requesti 7Zend_Amf_Request_Httpi  ?Zend_Amf_Parse_TypeLoaderi ?Zend_Amf_Parse_Serializeri ~ CZend_Amf_Parse_OutputStreami} AZend_Amf_Parse_InputStreami | CZend_Amf_Parse_Deserializeri#{ IZend_Amf_Parse_Amf3_Serializeri%z MZend_Amf_Parse_Amf3_Deserializeri#y IZend_Amf_Parse_Amf0_Serializeri%x MZend_Amf_Parse_Amf0_Deserializeriw 1Zend_Amf_Exceptioniv 1Zend_Amf_Constantsiu Zend_Aclit 'Zend_Acl_Roleis 9Zend_Acl_Role_Registryi%r MZend_Acl_Role_Registry_Exceptioniq /Zend_Acl_Resourceip 1Zend_Acl_Exceptionio /Zend_XmlRpc_Valuehn =Zend_XmlRpc_Value_Structhm =Zend_XmlRpc_Value_Stringhl =Zend_XmlRpc_Value_Scalarhk 7Zend_XmlRpc_Value_Nilhj ?Zend_XmlRpc_Value_Integerh i CZend_XmlRpc_Value_Exceptionhh =Zend_XmlRpc_Value_Doublehg AZend_XmlRpc_Value_DateTimeh!f EZend_XmlRpc_Value_Collectionhe ?Zend_XmlRpc_Value_Booleanhd =Zend_XmlRpc_Value_Base64hc ;Zend_XmlRpc_Value_Arrayhb 1Zend_XmlRpc_Serverha ?Zend_XmlRpc_Server_Systemh` =Zend_XmlRpc_Server_Faulth!_ EZend_XmlRpc_Server_Exceptionh^ =Zend_XmlRpc_Server_Cacheh] 5Zend_XmlRpc_Responseh\ ?Zend_XmlRpc_Response_Httph[ 3Zend_XmlRpc_RequesthZ ?Zend_XmlRpc_Request_StdinhY =Zend_XmlRpc_Request_HttphX /Zend_XmlRpc_FaulthW 7Zend_XmlRpc_ExceptionhV 1Zend_XmlRpc_Clienth#U IZend_XmlRpc_Client_ServerProxyh+T YZend_XmlRpc_Client_ServerIntrospectionh+S YZend_XmlRpc_Client_IntrospectExceptionh%R MZend_XmlRpc_Client_HttpExceptionh&Q OZend_XmlRpc_Client_FaultExceptionh!P EZend_XmlRpc_Client_Exceptionh&O OZend_Wildfire_Protocol_JsonStreamh   c  [@(_L2e@i6
f6




h
I
*
					x	I	r2mC_2sM!R+]5^2jM+                            & OZend_Crypt_Math_BigInteger_Bcmathi +Zend_Crypt_Hmaci ?Zend_Crypt_Hmac_Exceptioni 5Zend_Crypt_Exceptioni =Zend_Crypt_DiffieHellmani' QZend_Crypt_DiffieHellman_Exceptioni! EZend_Controller_Router_Routei( SZend_Controller_Router_Route_Statici' QZend_Controller_Router_Route_Regexi( SZend_Controller_Router_Route_Modulei* WZend_Controller_Router_Route_Hostnamei' QZend_Controller_Router_Route_Chaini* WZend_Controller_Router_Route_Abstracti# IZend_Controller_Router_Rewritei% MZend_Controller_Router_Exceptioni$ KZend_Controller_Router_Abstracti* WZend_Controller_Response_HttpTestCasei" GZend_Controller_Response_Httpi' QZend_Controller_Response_Exceptioni!
 EZend_Controller_Response_Clii&	 OZend_Controller_Response_Abstracti# IZend_Controller_Request_Simplei) UZend_Controller_Request_HttpTestCasei! EZend_Controller_Request_Httpi& OZend_Controller_Request_Exceptioni& OZend_Controller_Request_Apache404i% MZend_Controller_Request_Abstracti( SZend_Controller_Plugin_ErrorHandleri" GZend_Controller_Plugin_Brokeri'  QZend_Controller_Plugin_ActionStacki$ KZend_Controller_Plugin_Abstracti~ 7Zend_Controller_Fronti} ?Zend_Controller_Exceptioni(| SZend_Controller_Dispatcher_Standardi){ UZend_Controller_Dispatcher_Exceptioni(z SZend_Controller_Dispatcher_Abstractiy 9Zend_Controller_Actioni(x SZend_Controller_Action_HelperBrokeri6w oZend_Controller_Action_HelperBroker_PriorityStacki/v aZend_Controller_Action_Helper_ViewRendereri&u OZend_Controller_Action_Helper_Urli-t ]Zend_Controller_Action_Helper_Redirectori's QZend_Controller_Action_Helper_Jsoni1r eZend_Controller_Action_Helper_FlashMessengeri0q cZend_Controller_Action_Helper_ContextSwitchi<p {Zend_Controller_Action_Helper_AutoCompleteScriptaculousi3o iZend_Controller_Action_Helper_AutoCompleteDojoi8n sZend_Controller_Action_Helper_AutoComplete_Abstracti.m _Zend_Controller_Action_Helper_AjaxContexti.l _Zend_Controller_Action_Helper_ActionStacki+k YZend_Controller_Action_Helper_Abstracti%j MZend_Controller_Action_Exceptionii 3Zend_Console_Getopti"h GZend_Console_Getopt_Exceptionig #Zend_Configif +Zend_Config_Xmlie 1Zend_Config_Writerid 9Zend_Config_Writer_Xmlic 9Zend_Config_Writer_Iniib =Zend_Config_Writer_Arrayia +Zend_Config_Inii` 7Zend_Config_Exceptioni$_ KZend_CodeGenerator_Php_Propertyi%^ MZend_CodeGenerator_Php_Parameteri"] GZend_CodeGenerator_Php_Methodi,\ [Zend_CodeGenerator_Php_Member_Containeri+[ YZend_CodeGenerator_Php_Member_Abstracti Z CZend_CodeGenerator_Php_Filei%Y MZend_CodeGenerator_Php_Exceptioni$X KZend_CodeGenerator_Php_Docblocki(W SZend_CodeGenerator_Php_Docblock_Tagi/V aZend_CodeGenerator_Php_Docblock_Tag_Returni.U _Zend_CodeGenerator_Php_Docblock_Tag_Parami0T cZend_CodeGenerator_Php_Docblock_Tag_Licensei!S EZend_CodeGenerator_Php_Classi R CZend_CodeGenerator_Php_Bodyi$Q KZend_CodeGenerator_Php_Abstracti!P EZend_CodeGenerator_Exceptioni O CZend_CodeGenerator_AbstractiN /Zend_Captcha_WordiM 9Zend_Captcha_ReCaptchaiL 1Zend_Captcha_ImageiK 3Zend_Captcha_FigletiJ 9Zend_Captcha_ExceptioniI /Zend_Captcha_DumbiH /Zend_Captcha_BaseiG !Zend_CacheiF =Zend_Cache_Frontend_PageiE AZend_Cache_Frontend_Outputi!D EZend_Cache_Frontend_FunctioniC =Zend_Cache_Frontend_FileiB ?Zend_Cache_Frontend_ClassiA 5Zend_Cache_Exceptioni@ +Zend_Cache_Corei? 1Zend_Cache_Backendi"> GZend_Cache_Backend_ZendServeri(= SZend_Cache_Backend_ZendServer_ShMemi'< QZend_Cache_Backend_ZendServer_Diski$; KZend_Cache_Backend_ZendPlatformi   l  mU2|_C1d;mK+	sT;



n
M
"
					f	F	#{T7!h7
Q!Y*[+wI#}Lj<                 #	 IZend_Dojo_View_Helper_CheckBoxi! EZend_Dojo_View_Helper_Buttoni* WZend_Dojo_View_Helper_BorderContaineri( SZend_Dojo_View_Helper_AccordionPanei- ]Zend_Dojo_View_Helper_AccordionContaineri =Zend_Dojo_View_Exceptioni )Zend_Dojo_Formi 9Zend_Dojo_Form_SubFormi* WZend_Dojo_Form_Element_VerticalSlideri-  ]Zend_Dojo_Form_Element_ValidationTextBoxi' QZend_Dojo_Form_Element_TimeTextBoxi#~ IZend_Dojo_Form_Element_TextBoxi$} KZend_Dojo_Form_Element_Textareai(| SZend_Dojo_Form_Element_SubmitButtoni"{ GZend_Dojo_Form_Element_Slideri*z WZend_Dojo_Form_Element_SimpleTextareai'y QZend_Dojo_Form_Element_RadioButtoni+x YZend_Dojo_Form_Element_PasswordTextBoxi)w UZend_Dojo_Form_Element_NumberTextBoxi)v UZend_Dojo_Form_Element_NumberSpinneri,u [Zend_Dojo_Form_Element_HorizontalSlideri+t YZend_Dojo_Form_Element_FilteringSelecti"s GZend_Dojo_Form_Element_Editori&r OZend_Dojo_Form_Element_DijitMultii!q EZend_Dojo_Form_Element_Dijiti'p QZend_Dojo_Form_Element_DateTextBoxi+o YZend_Dojo_Form_Element_CurrencyTextBoxi$n KZend_Dojo_Form_Element_ComboBoxi$m KZend_Dojo_Form_Element_CheckBoxi"l GZend_Dojo_Form_Element_Buttoni k CZend_Dojo_Form_DisplayGroupi*j WZend_Dojo_Form_Decorator_TabContaineri,i [Zend_Dojo_Form_Decorator_StackContaineri,h [Zend_Dojo_Form_Decorator_SplitContaineri'g QZend_Dojo_Form_Decorator_DijitFormi*f WZend_Dojo_Form_Decorator_DijitElementi,e [Zend_Dojo_Form_Decorator_DijitContaineri)d UZend_Dojo_Form_Decorator_ContentPanei-c ]Zend_Dojo_Form_Decorator_BorderContaineri+b YZend_Dojo_Form_Decorator_AccordionPanei0a cZend_Dojo_Form_Decorator_AccordionContaineri` 3Zend_Dojo_Exceptioni_ )Zend_Dojo_Datai^ !Zend_Debugi] Zend_Dbi\ 'Zend_Db_Tablei[ 5Zend_Db_Table_Selecti#Z IZend_Db_Table_Select_ExceptioniY 5Zend_Db_Table_Rowseti#X IZend_Db_Table_Rowset_Exceptioni"W GZend_Db_Table_Rowset_AbstractiV /Zend_Db_Table_Rowi U CZend_Db_Table_Row_ExceptioniT AZend_Db_Table_Row_AbstractiS ;Zend_Db_Table_ExceptioniR 9Zend_Db_Table_AbstractiQ /Zend_Db_StatementiP 7Zend_Db_Statement_PdoiO ?Zend_Db_Statement_Pdo_OciiN ?Zend_Db_Statement_Pdo_IbmiM =Zend_Db_Statement_Oraclei'L QZend_Db_Statement_Oracle_ExceptioniK =Zend_Db_Statement_Mysqlii'J QZend_Db_Statement_Mysqli_Exceptioni I CZend_Db_Statement_ExceptioniH 7Zend_Db_Statement_Db2i$G KZend_Db_Statement_Db2_ExceptioniF )Zend_Db_SelectiE =Zend_Db_Select_ExceptioniD -Zend_Db_ProfileriC 9Zend_Db_Profiler_QueryiB =Zend_Db_Profiler_FirebugiA AZend_Db_Profiler_Exceptioni@ %Zend_Db_Expri? /Zend_Db_Exceptioni> AZend_Db_Adapter_Pdo_Sqlitei= ?Zend_Db_Adapter_Pdo_Pgsqli< ;Zend_Db_Adapter_Pdo_Ocii; ?Zend_Db_Adapter_Pdo_Mysqli: ?Zend_Db_Adapter_Pdo_Mssqli9 ;Zend_Db_Adapter_Pdo_Ibmi 8 CZend_Db_Adapter_Pdo_Ibm_Idsi 7 CZend_Db_Adapter_Pdo_Ibm_Db2i!6 EZend_Db_Adapter_Pdo_Abstracti5 9Zend_Db_Adapter_Oraclei%4 MZend_Db_Adapter_Oracle_Exceptioni3 9Zend_Db_Adapter_Mysqlii%2 MZend_Db_Adapter_Mysqli_Exceptioni1 ?Zend_Db_Adapter_Exceptioni0 3Zend_Db_Adapter_Db2i"/ GZend_Db_Adapter_Db2_Exceptioni. =Zend_Db_Adapter_Abstracti- Zend_Datei, 3Zend_Date_Exceptioni+ 5Zend_Date_DateObjecti* -Zend_Date_Citiesi) 'Zend_Currencyi( ;Zend_Currency_Exceptioni' !Zend_Crypti& )Zend_Crypt_Rsai% 1Zend_Crypt_Rsa_Keyi$ ?Zend_Crypt_Rsa_Key_Publici# AZend_Crypt_Rsa_Key_Privatei" +Zend_Crypt_Mathi! ?Zend_Crypt_Math_Exceptioni  AZend_Crypt_Math_BigIntegeri# IZend_Crypt_Math_BigInteger_Gmpi# IZend_Math_BigInteger_Exceptioni   l  W-	g9a7
`5aO4





u
Q
)
					z	^	H	6	
nQ4dC"}cK!vW5h?d5~U1	sR1  #u IZend_Form_Decorator_FormErrorsi%t MZend_Form_Decorator_FormElementsis =Zend_Form_Decorator_Formir =Zend_Form_Decorator_Filei!q EZend_Form_Decorator_Fieldseti"p GZend_Form_Decorator_Exceptionio AZend_Form_Decorator_Errorsi$n KZend_Form_Decorator_DtDdWrapperi$m KZend_Form_Decorator_Descriptioni l CZend_Form_Decorator_Captchai%k MZend_Form_Decorator_Captcha_Wordi!j EZend_Form_Decorator_Callbacki!i EZend_Form_Decorator_Abstractih #Zend_Filteri+g YZend_Filter_Word_UnderscoreToSeparatori&f OZend_Filter_Word_UnderscoreToDashi+e YZend_Filter_Word_UnderscoreToCamelCasei*d WZend_Filter_Word_SeparatorToSeparatori%c MZend_Filter_Word_SeparatorToDashi*b WZend_Filter_Word_SeparatorToCamelCasei(a SZend_Filter_Word_Separator_Abstracti&` OZend_Filter_Word_DashToUnderscorei%_ MZend_Filter_Word_DashToSeparatori%^ MZend_Filter_Word_DashToCamelCasei+] YZend_Filter_Word_CamelCaseToUnderscorei*\ WZend_Filter_Word_CamelCaseToSeparatori%[ MZend_Filter_Word_CamelCaseToDashiZ 7Zend_Filter_StripTagsiY ?Zend_Filter_StripNewlinesiX 9Zend_Filter_StringTrimiW ?Zend_Filter_StringToUpperiV ?Zend_Filter_StringToLoweriU 5Zend_Filter_RealPathiT ;Zend_Filter_PregReplacei&S OZend_Filter_NormalizedToLocalizedi&R OZend_Filter_LocalizedToNormalizediQ +Zend_Filter_IntiP /Zend_Filter_InputiO 7Zend_Filter_InflectoriN =Zend_Filter_HtmlEntitiesiM AZend_Filter_File_UpperCaseiL ;Zend_Filter_File_RenameiK AZend_Filter_File_LowerCaseiJ =Zend_Filter_File_EncryptiI =Zend_Filter_File_DecryptiH 7Zend_Filter_ExceptioniG 3Zend_Filter_Encrypti F CZend_Filter_Encrypt_OpenssliE AZend_Filter_Encrypt_McryptiD +Zend_Filter_DiriC 1Zend_Filter_DigitsiB 3Zend_Filter_DecryptiA 5Zend_Filter_Callbacki@ 5Zend_Filter_BaseNamei? /Zend_Filter_Alphai> /Zend_Filter_Alnumi= 1Zend_File_Transferi!< EZend_File_Transfer_Exceptioni$; KZend_File_Transfer_Adapter_Httpi(: SZend_File_Transfer_Adapter_Abstracti9 Zend_Feedi8 'Zend_Feed_Rssi7 3Zend_Feed_Exceptioni6 3Zend_Feed_Entry_Rssi5 5Zend_Feed_Entry_Atomi4 =Zend_Feed_Entry_Abstracti3 /Zend_Feed_Elementi2 /Zend_Feed_Builderi1 =Zend_Feed_Builder_Headeri$0 KZend_Feed_Builder_Header_Itunesi / CZend_Feed_Builder_Exceptioni. ;Zend_Feed_Builder_Entryi- )Zend_Feed_Atomi, 1Zend_Feed_Abstracti+ )Zend_Exceptioni* )Zend_Dom_Queryi) 7Zend_Dom_Query_Resulti( =Zend_Dom_Query_Css2Xpathi' 1Zend_Dom_Exceptioni& Zend_Dojoi)% UZend_Dojo_View_Helper_VerticalSlideri,$ [Zend_Dojo_View_Helper_ValidationTextBoxi&# OZend_Dojo_View_Helper_TimeTextBoxi"" GZend_Dojo_View_Helper_TextBoxi#! IZend_Dojo_View_Helper_Textareai'  QZend_Dojo_View_Helper_TabContaineri' QZend_Dojo_View_Helper_SubmitButtoni) UZend_Dojo_View_Helper_StackContaineri) UZend_Dojo_View_Helper_SplitContaineri! EZend_Dojo_View_Helper_Slideri) UZend_Dojo_View_Helper_SimpleTextareai& OZend_Dojo_View_Helper_RadioButtoni* WZend_Dojo_View_Helper_PasswordTextBoxi( SZend_Dojo_View_Helper_NumberTextBoxi( SZend_Dojo_View_Helper_NumberSpinneri+ YZend_Dojo_View_Helper_HorizontalSlideri AZend_Dojo_View_Helper_Formi* WZend_Dojo_View_Helper_FilteringSelecti! EZend_Dojo_View_Helper_Editori AZend_Dojo_View_Helper_Dojoi) UZend_Dojo_View_Helper_Dojo_Containeri) UZend_Dojo_View_Helper_DijitContaineri  CZend_Dojo_View_Helper_Dijiti& OZend_Dojo_View_Helper_DateTextBoxi& OZend_Dojo_View_Helper_CustomDijiti* WZend_Dojo_View_Helper_CurrencyTextBoxi& OZend_Dojo_View_Helper_ContentPanei#
 IZend_Dojo_View_Helper_ComboBoxi   e lH!uQ2dA!}]C'e5



|
O
&					\	6	xM%]4^.pH1b5NqK$n?                                                              +Z YZend_Gdata_Calendar_Extension_Selectedi+Y YZend_Gdata_Calendar_Extension_QuickAddi'X QZend_Gdata_Calendar_Extension_Linki)W UZend_Gdata_Calendar_Extension_Hiddeni(V SZend_Gdata_Calendar_Extension_Colori.U _Zend_Gdata_Calendar_Extension_AccessLeveli#T IZend_Gdata_Calendar_EventQueryi"S GZend_Gdata_Calendar_EventFeedi#R IZend_Gdata_Calendar_EventEntryiQ -Zend_Gdata_Booksi!P EZend_Gdata_Books_VolumeQueryi O CZend_Gdata_Books_VolumeFeedi!N EZend_Gdata_Books_VolumeEntryi+M YZend_Gdata_Books_Extension_Viewabilityi-L ]Zend_Gdata_Books_Extension_ThumbnailLinki&K OZend_Gdata_Books_Extension_Reviewi+J YZend_Gdata_Books_Extension_PreviewLinki(I SZend_Gdata_Books_Extension_InfoLinki-H ]Zend_Gdata_Books_Extension_Embeddabilityi)G UZend_Gdata_Books_Extension_BooksLinki-F ]Zend_Gdata_Books_Extension_BooksCategoryi.E _Zend_Gdata_Books_Extension_AnnotationLinki$D KZend_Gdata_Books_CollectionFeedi%C MZend_Gdata_Books_CollectionEntryiB 1Zend_Gdata_AuthSubiA )Zend_Gdata_Appi$@ KZend_Gdata_App_VersionExceptioni? 3Zend_Gdata_App_Utili#> IZend_Gdata_App_MediaFileSourcei= ?Zend_Gdata_App_MediaEntryi2< gZend_Gdata_App_LoggingHttpClientAdapterSocketi; AZend_Gdata_App_IOExceptioni,: [Zend_Gdata_App_InvalidArgumentExceptioni!9 EZend_Gdata_App_HttpExceptioni$8 KZend_Gdata_App_FeedSourceParenti#7 IZend_Gdata_App_FeedEntryParenti6 3Zend_Gdata_App_Feedi5 =Zend_Gdata_App_Extensioni!4 EZend_Gdata_App_Extension_Urii%3 MZend_Gdata_App_Extension_Updatedi#2 IZend_Gdata_App_Extension_Titlei"1 GZend_Gdata_App_Extension_Texti%0 MZend_Gdata_App_Extension_Summaryi&/ OZend_Gdata_App_Extension_Subtitlei$. KZend_Gdata_App_Extension_Sourcei$- KZend_Gdata_App_Extension_Rightsi', QZend_Gdata_App_Extension_Publishedi$+ KZend_Gdata_App_Extension_Personi"* GZend_Gdata_App_Extension_Namei") GZend_Gdata_App_Extension_Logoi"( GZend_Gdata_App_Extension_Linki ' CZend_Gdata_App_Extension_Idi"& GZend_Gdata_App_Extension_Iconi'% QZend_Gdata_App_Extension_Generatori#$ IZend_Gdata_App_Extension_Emaili%# MZend_Gdata_App_Extension_Elementi$" KZend_Gdata_App_Extension_Editedi#! IZend_Gdata_App_Extension_Drafti%  MZend_Gdata_App_Extension_Controli) UZend_Gdata_App_Extension_Contributori% MZend_Gdata_App_Extension_Contenti& OZend_Gdata_App_Extension_Categoryi$ KZend_Gdata_App_Extension_Authori =Zend_Gdata_App_Exceptioni 5Zend_Gdata_App_Entryi, [Zend_Gdata_App_CaptchaRequiredExceptioni# IZend_Gdata_App_BaseMediaSourcei 3Zend_Gdata_App_Basei* WZend_Gdata_App_BadMethodCallExceptioni! EZend_Gdata_App_AuthExceptioni Zend_Formi /Zend_Form_SubFormi 3Zend_Form_Exceptioni /Zend_Form_Elementi ;Zend_Form_Element_Xhtmli AZend_Form_Element_Textareai 9Zend_Form_Element_Texti =Zend_Form_Element_Submiti =Zend_Form_Element_Selecti ;Zend_Form_Element_Reseti
 ;Zend_Form_Element_Radioi	 AZend_Form_Element_Passwordi" GZend_Form_Element_Multiselecti$ KZend_Form_Element_MultiCheckboxi ;Zend_Form_Element_Multii ;Zend_Form_Element_Imagei =Zend_Form_Element_Hiddeni 9Zend_Form_Element_Hashi 9Zend_Form_Element_Filei  CZend_Form_Element_Exceptioni  AZend_Form_Element_Checkboxi ?Zend_Form_Element_Captchai~ =Zend_Form_Element_Buttoni} 9Zend_Form_DisplayGroupi#| IZend_Form_Decorator_ViewScripti#{ IZend_Form_Decorator_ViewHelperi z CZend_Form_Decorator_Tooltipi(y SZend_Form_Decorator_PrepareElementsix ?Zend_Form_Decorator_Labeliw ?Zend_Form_Decorator_Imagei v CZend_Form_Decorator_HtmlTagi   c  c=lT$a0qS:pH



|
U
8
 				}	T	&	 f;nF$\4V-c<rS"}W2W;$         #= IZend_Gdata_Health_ProfileEntryi$< KZend_Gdata_Health_Extension_Ccri; )Zend_Gdata_Geoi: 3Zend_Gdata_Geo_Feedi$9 KZend_Gdata_Geo_Extension_GmlPosi&8 OZend_Gdata_Geo_Extension_GmlPointi)7 UZend_Gdata_Geo_Extension_GeoRssWherei6 5Zend_Gdata_Geo_Entryi5 -Zend_Gdata_Gbasei"4 GZend_Gdata_Gbase_SnippetQueryi!3 EZend_Gdata_Gbase_SnippetFeedi"2 GZend_Gdata_Gbase_SnippetEntryi1 9Zend_Gdata_Gbase_Queryi0 AZend_Gdata_Gbase_ItemQueryi/ ?Zend_Gdata_Gbase_ItemFeedi. AZend_Gdata_Gbase_ItemEntryi- 7Zend_Gdata_Gbase_Feedi-, ]Zend_Gdata_Gbase_Extension_BaseAttributei+ 9Zend_Gdata_Gbase_Entryi* -Zend_Gdata_Gappsi) AZend_Gdata_Gapps_UserQueryi( ?Zend_Gdata_Gapps_UserFeedi' AZend_Gdata_Gapps_UserEntryi&& OZend_Gdata_Gapps_ServiceExceptioni% 9Zend_Gdata_Gapps_Queryi#$ IZend_Gdata_Gapps_NicknameQueryi"# GZend_Gdata_Gapps_NicknameFeedi#" IZend_Gdata_Gapps_NicknameEntryi%! MZend_Gdata_Gapps_Extension_Quotai(  SZend_Gdata_Gapps_Extension_Nicknamei$ KZend_Gdata_Gapps_Extension_Namei% MZend_Gdata_Gapps_Extension_Logini) UZend_Gdata_Gapps_Extension_EmailListi 9Zend_Gdata_Gapps_Errori- ]Zend_Gdata_Gapps_EmailListRecipientQueryi, [Zend_Gdata_Gapps_EmailListRecipientFeedi- ]Zend_Gdata_Gapps_EmailListRecipientEntryi$ KZend_Gdata_Gapps_EmailListQueryi# IZend_Gdata_Gapps_EmailListFeedi$ KZend_Gdata_Gapps_EmailListEntryi +Zend_Gdata_Feedi 5Zend_Gdata_Extensioni =Zend_Gdata_Extension_Whoi AZend_Gdata_Extension_Wherei ?Zend_Gdata_Extension_Wheni$ KZend_Gdata_Extension_Visibilityi& OZend_Gdata_Extension_Transparencyi" GZend_Gdata_Extension_Reminderi- ]Zend_Gdata_Extension_RecurrenceExceptioni$ KZend_Gdata_Extension_Recurrencei  CZend_Gdata_Extension_Ratingi'
 QZend_Gdata_Extension_OriginalEventi0	 cZend_Gdata_Extension_OpenSearchTotalResultsi. _Zend_Gdata_Extension_OpenSearchStartIndexi0 cZend_Gdata_Extension_OpenSearchItemsPerPagei" GZend_Gdata_Extension_FeedLinki* WZend_Gdata_Extension_ExtendedPropertyi% MZend_Gdata_Extension_EventStatusi# IZend_Gdata_Extension_EntryLinki" GZend_Gdata_Extension_Commentsi& OZend_Gdata_Extension_AttendeeTypei(  SZend_Gdata_Extension_AttendeeStatusi +Zend_Gdata_Exifi~ 5Zend_Gdata_Exif_Feedi#} IZend_Gdata_Exif_Extension_Timei#| IZend_Gdata_Exif_Extension_Tagsi${ KZend_Gdata_Exif_Extension_Modeli#z IZend_Gdata_Exif_Extension_Makei"y GZend_Gdata_Exif_Extension_Isoi,x [Zend_Gdata_Exif_Extension_ImageUniqueIdi$w KZend_Gdata_Exif_Extension_FStopi*v WZend_Gdata_Exif_Extension_FocalLengthi$u KZend_Gdata_Exif_Extension_Flashi't QZend_Gdata_Exif_Extension_Exposurei's QZend_Gdata_Exif_Extension_Distanceir 7Zend_Gdata_Exif_Entryiq -Zend_Gdata_Entryip 7Zend_Gdata_DublinCorei*o WZend_Gdata_DublinCore_Extension_Titlei,n [Zend_Gdata_DublinCore_Extension_Subjecti+m YZend_Gdata_DublinCore_Extension_Rightsi.l _Zend_Gdata_DublinCore_Extension_Publisheri-k ]Zend_Gdata_DublinCore_Extension_Languagei/j aZend_Gdata_DublinCore_Extension_Identifieri+i YZend_Gdata_DublinCore_Extension_Formati0h cZend_Gdata_DublinCore_Extension_Descriptioni)g UZend_Gdata_DublinCore_Extension_Datei,f [Zend_Gdata_DublinCore_Extension_Creatorie +Zend_Gdata_Docsid 7Zend_Gdata_Docs_Queryi%c MZend_Gdata_Docs_DocumentListFeedi&b OZend_Gdata_Docs_DocumentListEntryia 9Zend_Gdata_ClientLogini` 3Zend_Gdata_Calendari!_ EZend_Gdata_Calendar_ListFeedi"^ GZend_Gdata_Calendar_ListEntryi-] ]Zend_Gdata_Calendar_Extension_WebContenti+\ YZend_Gdata_Calendar_Extension_Timezonei9[ uZend_Gdata_Calendar_Extension_SendEventNotificationsi   \  eK_/l?|OpL' 


{
N
#				j	=	L f=a7_;!].mD\<tM               ' QZend_Gdata_YouTube_Extension_Booksi% MZend_Gdata_YouTube_Extension_Agei) UZend_Gdata_YouTube_Extension_AboutMei# IZend_Gdata_YouTube_ContactFeedi$ KZend_Gdata_YouTube_ContactEntryi# IZend_Gdata_YouTube_CommentFeedi$ KZend_Gdata_YouTube_CommentEntryi$ KZend_Gdata_YouTube_ActivityFeedi% MZend_Gdata_YouTube_ActivityEntryi ;Zend_Gdata_Spreadsheetsi* WZend_Gdata_Spreadsheets_WorksheetFeedi+ YZend_Gdata_Spreadsheets_WorksheetEntryi, [Zend_Gdata_Spreadsheets_SpreadsheetFeedi- ]Zend_Gdata_Spreadsheets_SpreadsheetEntryi& OZend_Gdata_Spreadsheets_ListQueryi%
 MZend_Gdata_Spreadsheets_ListFeedi&	 OZend_Gdata_Spreadsheets_ListEntryi/ aZend_Gdata_Spreadsheets_Extension_RowCounti- ]Zend_Gdata_Spreadsheets_Extension_Customi/ aZend_Gdata_Spreadsheets_Extension_ColCounti+ YZend_Gdata_Spreadsheets_Extension_Celli* WZend_Gdata_Spreadsheets_DocumentQueryi& OZend_Gdata_Spreadsheets_CellQueryi% MZend_Gdata_Spreadsheets_CellFeedi& OZend_Gdata_Spreadsheets_CellEntryi  -Zend_Gdata_Queryi /Zend_Gdata_Photosi ~ CZend_Gdata_Photos_UserQueryi} AZend_Gdata_Photos_UserFeedi | CZend_Gdata_Photos_UserEntryi{ AZend_Gdata_Photos_TagEntryi!z EZend_Gdata_Photos_PhotoQueryi y CZend_Gdata_Photos_PhotoFeedi!x EZend_Gdata_Photos_PhotoEntryi&w OZend_Gdata_Photos_Extension_Widthi'v QZend_Gdata_Photos_Extension_Weighti(u SZend_Gdata_Photos_Extension_Versioni%t MZend_Gdata_Photos_Extension_Useri*s WZend_Gdata_Photos_Extension_Timestampi*r WZend_Gdata_Photos_Extension_Thumbnaili%q MZend_Gdata_Photos_Extension_Sizei)p UZend_Gdata_Photos_Extension_Rotationi+o YZend_Gdata_Photos_Extension_QuotaLimiti-n ]Zend_Gdata_Photos_Extension_QuotaCurrenti)m UZend_Gdata_Photos_Extension_Positioni(l SZend_Gdata_Photos_Extension_PhotoIdi3k iZend_Gdata_Photos_Extension_NumPhotosRemainingi*j WZend_Gdata_Photos_Extension_NumPhotosi)i UZend_Gdata_Photos_Extension_Nicknamei%h MZend_Gdata_Photos_Extension_Namei2g gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumi)f UZend_Gdata_Photos_Extension_Locationi#e IZend_Gdata_Photos_Extension_Idi'd QZend_Gdata_Photos_Extension_Heighti2c gZend_Gdata_Photos_Extension_CommentingEnabledi-b ]Zend_Gdata_Photos_Extension_CommentCounti'a QZend_Gdata_Photos_Extension_Clienti)` UZend_Gdata_Photos_Extension_Checksumi*_ WZend_Gdata_Photos_Extension_BytesUsedi(^ SZend_Gdata_Photos_Extension_AlbumIdi'] QZend_Gdata_Photos_Extension_Accessi#\ IZend_Gdata_Photos_CommentEntryi![ EZend_Gdata_Photos_AlbumQueryi Z CZend_Gdata_Photos_AlbumFeedi!Y EZend_Gdata_Photos_AlbumEntryiX AZend_Gdata_MediaMimeStreamiW -Zend_Gdata_MediaiV 7Zend_Gdata_Media_Feedi*U WZend_Gdata_Media_Extension_MediaTitlei.T _Zend_Gdata_Media_Extension_MediaThumbnaili)S UZend_Gdata_Media_Extension_MediaTexti0R cZend_Gdata_Media_Extension_MediaRestrictioni+Q YZend_Gdata_Media_Extension_MediaRatingi+P YZend_Gdata_Media_Extension_MediaPlayeri-O ]Zend_Gdata_Media_Extension_MediaKeywordsi)N UZend_Gdata_Media_Extension_MediaHashi*M WZend_Gdata_Media_Extension_MediaGroupi0L cZend_Gdata_Media_Extension_MediaDescriptioni+K YZend_Gdata_Media_Extension_MediaCrediti.J _Zend_Gdata_Media_Extension_MediaCopyrighti,I [Zend_Gdata_Media_Extension_MediaContenti-H ]Zend_Gdata_Media_Extension_MediaCategoryiG 9Zend_Gdata_Media_EntryiF AZend_Gdata_Kind_EventEntryiE 7Zend_Gdata_HttpClienti*D WZend_Gdata_HttpAdapterStreamingSocketi)C UZend_Gdata_HttpAdapterStreamingProxyiB /Zend_Gdata_HealthiA ;Zend_Gdata_Health_Queryi&@ OZend_Gdata_Health_ProfileListFeedi'? QZend_Gdata_Health_ProfileListEntryi"> GZend_Gdata_Health_ProfileFeedi   [  wFb4
yId4uK



c
3
				S	-	[.^8
jD!vN'WrN,}Y.K                               4t kZend_InfoCard_Xml_Security_Transform_XmlExcC14Ni3s iZend_InfoCard_Xml_Security_Transform_Exceptioni<r {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignaturei)q UZend_InfoCard_Xml_Security_Exceptionip ?Zend_InfoCard_Xml_KeyInfoi&o OZend_InfoCard_Xml_KeyInfo_XmlDSigi&n OZend_InfoCard_Xml_KeyInfo_Defaulti'm QZend_InfoCard_Xml_KeyInfo_Abstracti l CZend_InfoCard_Xml_Exceptioni#k IZend_InfoCard_Xml_EncryptedKeyi$j KZend_InfoCard_Xml_EncryptedDatai+i YZend_InfoCard_Xml_EncryptedData_XmlEnci-h ]Zend_InfoCard_Xml_EncryptedData_Abstractig ?Zend_InfoCard_Xml_Elementi f CZend_InfoCard_Xml_Assertioni%e MZend_InfoCard_Xml_Assertion_Samlid ;Zend_InfoCard_Exceptioni%c MZend_InfoCard_Exception_Abstractib 5Zend_InfoCard_Claimsia 5Zend_InfoCard_Cipheri5` mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbci5_ mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbci4^ kZend_InfoCard_Cipher_Symmetric_Adapter_Abstracti)] UZend_InfoCard_Cipher_Pki_Adapter_Rsai.\ _Zend_InfoCard_Cipher_Pki_Adapter_Abstracti#[ IZend_InfoCard_Cipher_Exceptioni$Z KZend_InfoCard_Adapter_Exceptioni"Y GZend_InfoCard_Adapter_DefaultiX 1Zend_Http_ResponseiW 3Zend_Http_ExceptioniV 3Zend_Http_CookieJariU -Zend_Http_CookieiT -Zend_Http_ClientiS AZend_Http_Client_Exceptioni"R GZend_Http_Client_Adapter_Testi$Q KZend_Http_Client_Adapter_Socketi#P IZend_Http_Client_Adapter_Proxyi'O QZend_Http_Client_Adapter_Exceptioni"N GZend_Http_Client_Adapter_CurliM !Zend_GdataiL 1Zend_Gdata_YouTubei"K GZend_Gdata_YouTube_VideoQueryi!J EZend_Gdata_YouTube_VideoFeedi"I GZend_Gdata_YouTube_VideoEntryi(H SZend_Gdata_YouTube_UserProfileEntryi(G SZend_Gdata_YouTube_SubscriptionFeedi)F UZend_Gdata_YouTube_SubscriptionEntryi)E UZend_Gdata_YouTube_PlaylistVideoFeedi*D WZend_Gdata_YouTube_PlaylistVideoEntryi(C SZend_Gdata_YouTube_PlaylistListFeedi)B UZend_Gdata_YouTube_PlaylistListEntryi"A GZend_Gdata_YouTube_MediaEntryi!@ EZend_Gdata_YouTube_InboxFeedi"? GZend_Gdata_YouTube_InboxEntryi)> UZend_Gdata_YouTube_Extension_VideoIdi*= WZend_Gdata_YouTube_Extension_Usernamei*< WZend_Gdata_YouTube_Extension_Uploadedi'; QZend_Gdata_YouTube_Extension_Tokeni(: SZend_Gdata_YouTube_Extension_Statusi,9 [Zend_Gdata_YouTube_Extension_Statisticsi'8 QZend_Gdata_YouTube_Extension_Statei(7 SZend_Gdata_YouTube_Extension_Schooli-6 ]Zend_Gdata_YouTube_Extension_ReleaseDatei.5 _Zend_Gdata_YouTube_Extension_Relationshipi*4 WZend_Gdata_YouTube_Extension_Recordedi&3 OZend_Gdata_YouTube_Extension_Racyi-2 ]Zend_Gdata_YouTube_Extension_QueryStringi)1 UZend_Gdata_YouTube_Extension_Privatei*0 WZend_Gdata_YouTube_Extension_Positioni// aZend_Gdata_YouTube_Extension_PlaylistTitlei,. [Zend_Gdata_YouTube_Extension_PlaylistIdi,- [Zend_Gdata_YouTube_Extension_Occupationi), UZend_Gdata_YouTube_Extension_NoEmbedi'+ QZend_Gdata_YouTube_Extension_Musici(* SZend_Gdata_YouTube_Extension_Moviesi-) ]Zend_Gdata_YouTube_Extension_MediaRatingi,( [Zend_Gdata_YouTube_Extension_MediaGroupi-' ]Zend_Gdata_YouTube_Extension_MediaCrediti.& _Zend_Gdata_YouTube_Extension_MediaContenti*% WZend_Gdata_YouTube_Extension_Locationi&$ OZend_Gdata_YouTube_Extension_Linki*# WZend_Gdata_YouTube_Extension_LastNamei*" WZend_Gdata_YouTube_Extension_Hometowni)! UZend_Gdata_YouTube_Extension_Hobbiesi(  SZend_Gdata_YouTube_Extension_Genderi+ YZend_Gdata_YouTube_Extension_FirstNamei* WZend_Gdata_YouTube_Extension_Durationi- ]Zend_Gdata_YouTube_Extension_Descriptioni+ YZend_Gdata_YouTube_Extension_CountHinti) UZend_Gdata_YouTube_Extension_Controli) UZend_Gdata_YouTube_Extension_Companyi   y
 iO5{Z3pC%~S2cJ6




t
U
4
						r	V	7		a4	wN(]C`E+lP1vZ;tM$|^@$
                m /Zend_Memory_Valueil 3Zend_Memory_Managerik 7Zend_Memory_Exceptionij 7Zend_Memory_Containeri"i GZend_Memory_Container_Movablei!h EZend_Memory_Container_Lockedi!g EZend_Memory_AccessControllerif 3Zend_Measure_Weightie 3Zend_Measure_Volumei%d MZend_Measure_Viscosity_Kinematici#c IZend_Measure_Viscosity_Dynamicib 3Zend_Measure_Torqueia /Zend_Measure_Timei` =Zend_Measure_Temperaturei_ 1Zend_Measure_Speedi^ 7Zend_Measure_Pressurei] 1Zend_Measure_Poweri\ 3Zend_Measure_Numberi[ 9Zend_Measure_LightnessiZ 3Zend_Measure_LengthiY ?Zend_Measure_IlluminationiX 9Zend_Measure_FrequencyiW 1Zend_Measure_ForceiV =Zend_Measure_Flow_VolumeiU 9Zend_Measure_Flow_MoleiT 9Zend_Measure_Flow_MassiS 9Zend_Measure_ExceptioniR 3Zend_Measure_EnergyiQ 5Zend_Measure_DensityiP 5Zend_Measure_Currenti O CZend_Measure_Cooking_Weighti N CZend_Measure_Cooking_VolumeiM =Zend_Measure_CapacitanceiL 3Zend_Measure_BinaryiK /Zend_Measure_AreaiJ 1Zend_Measure_AngleiI ?Zend_Measure_AccelerationiH 7Zend_Measure_AbstractiG Zend_MailiF =Zend_Mail_Transport_Smtpi!E EZend_Mail_Transport_Sendmaili"D GZend_Mail_Transport_Exceptioni!C EZend_Mail_Transport_AbstractiB /Zend_Mail_Storagei'A QZend_Mail_Storage_Writable_Maildiri@ 9Zend_Mail_Storage_Pop3i? 9Zend_Mail_Storage_Mboxi> ?Zend_Mail_Storage_Maildiri= 9Zend_Mail_Storage_Imapi< =Zend_Mail_Storage_Folderi"; GZend_Mail_Storage_Folder_Mboxi%: MZend_Mail_Storage_Folder_Maildiri 9 CZend_Mail_Storage_Exceptioni8 AZend_Mail_Storage_Abstracti7 ;Zend_Mail_Protocol_Smtpi'6 QZend_Mail_Protocol_Smtp_Auth_Plaini'5 QZend_Mail_Protocol_Smtp_Auth_Logini)4 UZend_Mail_Protocol_Smtp_Auth_Crammd5i3 ;Zend_Mail_Protocol_Pop3i2 ;Zend_Mail_Protocol_Imapi!1 EZend_Mail_Protocol_Exceptioni 0 CZend_Mail_Protocol_Abstracti/ )Zend_Mail_Parti. 3Zend_Mail_Part_Filei- /Zend_Mail_Messagei, 9Zend_Mail_Message_Filei+ 3Zend_Mail_Exceptioni* Zend_Logi) 9Zend_Log_Writer_Streami( 5Zend_Log_Writer_Nulli' 5Zend_Log_Writer_Mocki& 5Zend_Log_Writer_Maili% ;Zend_Log_Writer_Firebugi$ 1Zend_Log_Writer_Dbi# =Zend_Log_Writer_Abstracti" 9Zend_Log_Formatter_Xmli! ?Zend_Log_Formatter_Simplei  AZend_Log_Formatter_Firebugi =Zend_Log_Filter_Suppressi =Zend_Log_Filter_Priorityi ;Zend_Log_Filter_Messagei 1Zend_Log_Exceptioni #Zend_Localei -Zend_Locale_Mathi =Zend_Locale_Math_PhpMathi AZend_Locale_Math_Exceptioni 1Zend_Locale_Formati 7Zend_Locale_Exceptioni -Zend_Locale_Datai! EZend_Locale_Data_Translationi #Zend_Loaderi =Zend_Loader_PluginLoaderi' QZend_Loader_PluginLoader_Exceptioni 7Zend_Loader_Exceptioni 9Zend_Loader_Autoloaderi$ KZend_Loader_Autoloader_Resourcei Zend_Ldapi 3Zend_Ldap_Exceptioni #Zend_Layouti
 7Zend_Layout_Exceptioni)	 UZend_Layout_Controller_Plugin_Layouti0 cZend_Layout_Controller_Action_Helper_Layouti Zend_Jsoni -Zend_Json_Serveri 5Zend_Json_Server_Smdi! EZend_Json_Server_Smd_Servicei ?Zend_Json_Server_Responsei# IZend_Json_Server_Response_Httpi =Zend_Json_Server_Requesti"  GZend_Json_Server_Request_Httpi AZend_Json_Server_Exceptioni~ 9Zend_Json_Server_Errori} 9Zend_Json_Server_Cachei| )Zend_Json_Expri{ 3Zend_Json_Exceptioniz /Zend_Json_Encoderiy /Zend_Json_Decoderix 'Zend_InfoCardi-w ]Zend_InfoCard_Xml_SecurityTokenReferenceiv AZend_InfoCard_Xml_Securityi)u UZend_InfoCard_Xml_Security_Transformi   f tR0jM/uS6"\;pF#





l
Q
:
					y	R	2	tT;}\6zZ9aI/Kj,q1H                                                          6S oZend_Pdf_Resource_Font_Simple_Standard_TimesRomani7R qZend_Pdf_Resource_Font_Simple_Standard_TimesItalici;Q yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalici5P mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldi2O gZend_Pdf_Resource_Font_Simple_Standard_Symboli<N {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueiAM Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliquei9L uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldi5K mZend_Pdf_Resource_Font_Simple_Standard_Helveticai:J wZend_Pdf_Resource_Font_Simple_Standard_CourierObliquei>I Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliquei7H qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldi3G iZend_Pdf_Resource_Font_Simple_Standard_Courieri)F UZend_Pdf_Resource_Font_Simple_Parsedi2E gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypei*D WZend_Pdf_Resource_Font_FontDescriptori%C MZend_Pdf_Resource_Font_Extractedi#B IZend_Pdf_Resource_Font_CidFonti,A [Zend_Pdf_Resource_Font_CidFont_TrueTypei@ /Zend_Pdf_PhpArrayi? +Zend_Pdf_Parseri> 9Zend_Pdf_Parser_Streami= 'Zend_Pdf_Pagei< )Zend_Pdf_Imagei; 'Zend_Pdf_Fonti : CZend_Pdf_Filter_Compressioni$9 KZend_Pdf_Filter_Compression_Lzwi&8 OZend_Pdf_Filter_Compression_Flatei7 =Zend_Pdf_Filter_AsciiHexi6 ;Zend_Pdf_Filter_Ascii85i"5 GZend_Pdf_FileParserDataSourcei)4 UZend_Pdf_FileParserDataSource_Stringi'3 QZend_Pdf_FileParserDataSource_Filei2 3Zend_Pdf_FileParseri1 ?Zend_Pdf_FileParser_Imagei"0 GZend_Pdf_FileParser_Image_Pngi/ =Zend_Pdf_FileParser_Fonti&. OZend_Pdf_FileParser_Font_OpenTypei/- aZend_Pdf_FileParser_Font_OpenType_TrueTypei, 1Zend_Pdf_Exceptioni+ ;Zend_Pdf_ElementFactoryi"* GZend_Pdf_ElementFactory_Proxyi) -Zend_Pdf_Elementi( ;Zend_Pdf_Element_Stringi#' IZend_Pdf_Element_String_Binaryi& ;Zend_Pdf_Element_Streami% AZend_Pdf_Element_Referencei%$ MZend_Pdf_Element_Reference_Tablei'# QZend_Pdf_Element_Reference_Contexti" ;Zend_Pdf_Element_Objecti#! IZend_Pdf_Element_Object_Streami  =Zend_Pdf_Element_Numerici 7Zend_Pdf_Element_Nulli 7Zend_Pdf_Element_Namei  CZend_Pdf_Element_Dictionaryi =Zend_Pdf_Element_Booleani 9Zend_Pdf_Element_Arrayi )Zend_Pdf_Colori 1Zend_Pdf_Color_Rgbi 3Zend_Pdf_Color_Htmli =Zend_Pdf_Color_GrayScalei 3Zend_Pdf_Color_Cmyki 'Zend_Pdf_Cmapi AZend_Pdf_Cmap_TrimmedTablei! EZend_Pdf_Cmap_SegmentToDeltai AZend_Pdf_Cmap_ByteEncodingi& OZend_Pdf_Cmap_ByteEncoding_Statici )Zend_Paginatori* WZend_Paginator_ScrollingStyle_Slidingi* WZend_Paginator_ScrollingStyle_Jumpingi* WZend_Paginator_ScrollingStyle_Elastici& OZend_Paginator_ScrollingStyle_Alli =Zend_Paginator_Exceptioni 
 CZend_Paginator_Adapter_Nulli$	 KZend_Paginator_Adapter_Iteratori) UZend_Paginator_Adapter_DbTableSelecti$ KZend_Paginator_Adapter_DbSelecti! EZend_Paginator_Adapter_Arrayi #Zend_OpenIdi 5Zend_OpenId_Provideri ?Zend_OpenId_Provider_Useri& OZend_OpenId_Provider_User_Sessioni! EZend_OpenId_Provider_Storagei&  OZend_OpenId_Provider_Storage_Filei 7Zend_OpenId_Extensioni~ AZend_OpenId_Extension_Sregi} 7Zend_OpenId_Exceptioni| 5Zend_OpenId_Consumeri!{ EZend_OpenId_Consumer_Storagei&z OZend_OpenId_Consumer_Storage_Fileiy +Zend_Navigationix 5Zend_Navigation_Pageiw =Zend_Navigation_Page_Uriiv =Zend_Navigation_Page_Mvciu ?Zend_Navigation_Exceptionit ?Zend_Navigation_Containeris Zend_Mimeir )Zend_Mime_Partiq /Zend_Mime_Messageip 3Zend_Mime_Exceptionio -Zend_Mime_Decodein #Zend_Memoryi   ]  oJ+v\>'lAvKxW8




r
Y
=

			`	Tj@S#wN%wETe=[%       *0 WZend_Search_Lucene_Search_Query_Emptyi,/ [Zend_Search_Lucene_Search_Query_Booleani2. gZend_Search_Lucene_Search_Highlighter_Defaulti:- wZend_Search_Lucene_Search_BooleanExpressionRecognizeri, =Zend_Search_Lucene_Proxyi%+ MZend_Search_Lucene_PriorityQueuei/* aZend_Search_Lucene_Interface_MultiSearcheri#) IZend_Search_Lucene_LockManageri$( KZend_Search_Lucene_Index_Writeri0' cZend_Search_Lucene_Index_TermsPriorityQueuei&& OZend_Search_Lucene_Index_TermInfoi"% GZend_Search_Lucene_Index_Termi+$ YZend_Search_Lucene_Index_SegmentWriteri8# sZend_Search_Lucene_Index_SegmentWriter_StreamWriteri:" wZend_Search_Lucene_Index_SegmentWriter_DocumentWriteri+! YZend_Search_Lucene_Index_SegmentMergeri)  UZend_Search_Lucene_Index_SegmentInfoi' QZend_Search_Lucene_Index_FieldInfoi( SZend_Search_Lucene_Index_DocsFilteri. _Zend_Search_Lucene_Index_DictionaryLoaderi! EZend_Search_Lucene_FSMActioni 9Zend_Search_Lucene_FSMi =Zend_Search_Lucene_Fieldi! EZend_Search_Lucene_Exceptioni  CZend_Search_Lucene_Documenti% MZend_Search_Lucene_Document_Xlsxi% MZend_Search_Lucene_Document_Pptxi( SZend_Search_Lucene_Document_OpenXmli% MZend_Search_Lucene_Document_Htmli* WZend_Search_Lucene_Document_Exceptioni% MZend_Search_Lucene_Document_Docxi, [Zend_Search_Lucene_Analysis_TokenFilteri6 oZend_Search_Lucene_Analysis_TokenFilter_StopWordsi7 qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsi: wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8i6 oZend_Search_Lucene_Analysis_TokenFilter_LowerCasei& OZend_Search_Lucene_Analysis_Tokeni) UZend_Search_Lucene_Analysis_Analyzeri0
 cZend_Search_Lucene_Analysis_Analyzer_Commoni8	 sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumiI Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitivei5 mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8iF Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitivei8 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumiI Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitivei5 mZend_Search_Lucene_Analysis_Analyzer_Common_TextiF Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitivei 7Zend_Search_Exceptioni  -Zend_Rest_Serveri AZend_Rest_Server_Exceptioni~ 3Zend_Rest_Exceptioni} -Zend_Rest_Clienti| ;Zend_Rest_Client_Resulti&{ OZend_Rest_Client_Result_Exceptioniz AZend_Rest_Client_Exceptioniy 'Zend_Registryix =Zend_Reflection_Propertyiw ?Zend_Reflection_Parameteriv 9Zend_Reflection_Methodiu =Zend_Reflection_Functionit 5Zend_Reflection_Fileis ?Zend_Reflection_Extensionir ?Zend_Reflection_Exceptioniq =Zend_Reflection_Docblocki!p EZend_Reflection_Docblock_Tagi(o SZend_Reflection_Docblock_Tag_Returni'n QZend_Reflection_Docblock_Tag_Paramim 7Zend_Reflection_Classil -Zend_ProgressBarik AZend_ProgressBar_Exceptionij =Zend_ProgressBar_Adapteri$i KZend_ProgressBar_Adapter_JsPushi$h KZend_ProgressBar_Adapter_JsPulli'g QZend_ProgressBar_Adapter_Exceptioni%f MZend_ProgressBar_Adapter_Consoleie Zend_Pdfi!d EZend_Pdf_UpdateInfoContaineric -Zend_Pdf_Trailerib ;Zend_Pdf_Trailer_Keeperia AZend_Pdf_Trailer_Generatori` )Zend_Pdf_Stylei_ 7Zend_Pdf_StringParseri^ /Zend_Pdf_Resourcei#] IZend_Pdf_Resource_ImageFactoryi\ ;Zend_Pdf_Resource_Imagei![ EZend_Pdf_Resource_Image_Tiffi Z CZend_Pdf_Resource_Image_Pngi!Y EZend_Pdf_Resource_Image_JpegiX 9Zend_Pdf_Resource_Fonti!W EZend_Pdf_Resource_Font_Type0i"V GZend_Pdf_Resource_Font_Simplei+U YZend_Pdf_Resource_Font_Simple_Standardi8T sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsi   ]  j;Q#i3|NS"



b
9
			r	J	c=tL&fH+X4
iBxV5|S-zV.       9Zend_Service_Exceptioni 9Zend_Service_Deliciousi& OZend_Service_Delicious_SimplePosti$
 KZend_Service_Delicious_PostListi 	 CZend_Service_Delicious_Posti% MZend_Service_Delicious_Exceptioni  CZend_Service_Audioscrobbleri 3Zend_Service_Amazoni' QZend_Service_Amazon_SimilarProducti 9Zend_Service_Amazon_S3i" GZend_Service_Amazon_S3_Streami% MZend_Service_Amazon_S3_Exceptioni" GZend_Service_Amazon_ResultSeti  ?Zend_Service_Amazon_Queryi! EZend_Service_Amazon_OfferSeti~ ?Zend_Service_Amazon_Offeri&} OZend_Service_Amazon_ListmaniaListi| =Zend_Service_Amazon_Itemi{ ?Zend_Service_Amazon_Imagei"z GZend_Service_Amazon_Exceptioni(y SZend_Service_Amazon_EditorialReviewix ;Zend_Service_Amazon_Ec2i+w YZend_Service_Amazon_Ec2_Securitygroupsi%v MZend_Service_Amazon_Ec2_Responsei#u IZend_Service_Amazon_Ec2_Regioni$t KZend_Service_Amazon_Ec2_Keypairi%s MZend_Service_Amazon_Ec2_Instancei"r GZend_Service_Amazon_Ec2_Imagei&q OZend_Service_Amazon_Ec2_Exceptioni&p OZend_Service_Amazon_Ec2_Elasticipi o CZend_Service_Amazon_Ec2_Ebsi.n _Zend_Service_Amazon_Ec2_Availabilityzonesi%m MZend_Service_Amazon_Ec2_Abstracti'l QZend_Service_Amazon_CustomerReviewi$k KZend_Service_Amazon_Accessoriesi!j EZend_Service_Amazon_Abstractii 5Zend_Service_Akismetih 7Zend_Service_Abstractig 9Zend_Server_Reflectioni'f QZend_Server_Reflection_ReturnValuei%e MZend_Server_Reflection_Prototypei%d MZend_Server_Reflection_Parameteri c CZend_Server_Reflection_Nodei"b GZend_Server_Reflection_Methodi$a KZend_Server_Reflection_Functioni-` ]Zend_Server_Reflection_Function_Abstracti%_ MZend_Server_Reflection_Exceptioni!^ EZend_Server_Reflection_Classi!] EZend_Server_Method_Prototypei!\ EZend_Server_Method_Parameteri"[ GZend_Server_Method_Definitioni Z CZend_Server_Method_CallbackiY 7Zend_Server_ExceptioniX 9Zend_Server_DefinitioniW /Zend_Server_CacheiV 5Zend_Server_AbstractiU 1Zend_Search_Lucenei0T cZend_Search_Lucene_termStreamsPriorityQueuei$S KZend_Search_Lucene_Storage_Filei+R YZend_Search_Lucene_Storage_File_Memoryi/Q aZend_Search_Lucene_Storage_File_Filesystemi)P UZend_Search_Lucene_Storage_Directoryi4O kZend_Search_Lucene_Storage_Directory_Filesystemi%N MZend_Search_Lucene_Search_Weighti*M WZend_Search_Lucene_Search_Weight_Termi,L [Zend_Search_Lucene_Search_Weight_Phrasei/K aZend_Search_Lucene_Search_Weight_MultiTermi+J YZend_Search_Lucene_Search_Weight_Emptyi-I ]Zend_Search_Lucene_Search_Weight_Booleani)H UZend_Search_Lucene_Search_Similarityi1G eZend_Search_Lucene_Search_Similarity_Defaulti)F UZend_Search_Lucene_Search_QueryTokeni3E iZend_Search_Lucene_Search_QueryParserExceptioni1D eZend_Search_Lucene_Search_QueryParserContexti*C WZend_Search_Lucene_Search_QueryParseri)B UZend_Search_Lucene_Search_QueryLexeri'A QZend_Search_Lucene_Search_QueryHiti)@ UZend_Search_Lucene_Search_QueryEntryi.? _Zend_Search_Lucene_Search_QueryEntry_Termi2> gZend_Search_Lucene_Search_QueryEntry_Subqueryi0= cZend_Search_Lucene_Search_QueryEntry_Phrasei$< KZend_Search_Lucene_Search_Queryi-; ]Zend_Search_Lucene_Search_Query_Wildcardi): UZend_Search_Lucene_Search_Query_Termi*9 WZend_Search_Lucene_Search_Query_Rangei28 gZend_Search_Lucene_Search_Query_Preprocessingi77 qZend_Search_Lucene_Search_Query_Preprocessing_Termi96 uZend_Search_Lucene_Search_Query_Preprocessing_Phrasei85 sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzyi+4 YZend_Search_Lucene_Search_Query_Phrasei.3 _Zend_Search_Lucene_Search_Query_MultiTermi22 gZend_Search_Lucene_Search_Query_Insignificanti*1 WZend_Search_Lucene_Search_Query_Fuzzyi   c  yQ$W/`=~V;xN



t
E
				W	)}M#wP0	V*[1lGT,b? Y&                                     0p cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequencei/o aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplexi$n KZend_Soap_Wsdl_Strategy_AnyTypei%m MZend_Soap_Wsdl_Strategy_Abstractil =Zend_Soap_Wsdl_Exceptionik -Zend_Soap_Serverij AZend_Soap_Server_Exceptionii -Zend_Soap_Clientih 9Zend_Soap_Client_Localig AZend_Soap_Client_Exceptionif ;Zend_Soap_Client_DotNetie ;Zend_Soap_Client_Commonid 9Zend_Soap_AutoDiscoveri%c MZend_Soap_AutoDiscover_Exceptionib %Zend_Sessioni)a UZend_Session_Validator_HttpUserAgenti$` KZend_Session_Validator_Abstracti'_ QZend_Session_SaveHandler_Exceptioni%^ MZend_Session_SaveHandler_DbTablei] 9Zend_Session_Namespacei\ 9Zend_Session_Exceptioni[ 7Zend_Session_AbstractiZ 1Zend_Service_Yahooi$Y KZend_Service_Yahoo_WebResultSeti!X EZend_Service_Yahoo_WebResulti&W OZend_Service_Yahoo_VideoResultSeti#V IZend_Service_Yahoo_VideoResulti!U EZend_Service_Yahoo_ResultSetiT ?Zend_Service_Yahoo_Resulti)S UZend_Service_Yahoo_PageDataResultSeti&R OZend_Service_Yahoo_PageDataResulti%Q MZend_Service_Yahoo_NewsResultSeti"P GZend_Service_Yahoo_NewsResulti&O OZend_Service_Yahoo_LocalResultSeti#N IZend_Service_Yahoo_LocalResulti+M YZend_Service_Yahoo_InlinkDataResultSeti(L SZend_Service_Yahoo_InlinkDataResulti&K OZend_Service_Yahoo_ImageResultSeti#J IZend_Service_Yahoo_ImageResultiI =Zend_Service_Yahoo_ImageiH 5Zend_Service_Twitteri G CZend_Service_Twitter_Searchi#F IZend_Service_Twitter_ExceptioniE ;Zend_Service_Technoratii#D IZend_Service_Technorati_Weblogi"C GZend_Service_Technorati_Utilsi*B WZend_Service_Technorati_TagsResultSeti'A QZend_Service_Technorati_TagsResulti)@ UZend_Service_Technorati_TagResultSeti&? OZend_Service_Technorati_TagResulti,> [Zend_Service_Technorati_SearchResultSeti)= UZend_Service_Technorati_SearchResulti&< OZend_Service_Technorati_ResultSeti#; IZend_Service_Technorati_Resulti*: WZend_Service_Technorati_KeyInfoResulti*9 WZend_Service_Technorati_GetInfoResulti&8 OZend_Service_Technorati_Exceptioni17 eZend_Service_Technorati_DailyCountsResultSeti.6 _Zend_Service_Technorati_DailyCountsResulti,5 [Zend_Service_Technorati_CosmosResultSeti)4 UZend_Service_Technorati_CosmosResulti+3 YZend_Service_Technorati_BlogInfoResulti#2 IZend_Service_Technorati_Authori1 ;Zend_Service_StrikeIroni(0 SZend_Service_StrikeIron_ZipCodeInfoi2/ gZend_Service_StrikeIron_USAddressVerificationi-. ]Zend_Service_StrikeIron_SalesUseTaxBasici&- OZend_Service_StrikeIron_Exceptioni&, OZend_Service_StrikeIron_Decoratori!+ EZend_Service_StrikeIron_Basei* ;Zend_Service_SlideSharei&) OZend_Service_SlideShare_SlideShowi&( OZend_Service_SlideShare_Exceptioni' 1Zend_Service_Simpyi$& KZend_Service_Simpy_WatchlistSeti*% WZend_Service_Simpy_WatchlistFilterSeti'$ QZend_Service_Simpy_WatchlistFilteri!# EZend_Service_Simpy_Watchlisti" ?Zend_Service_Simpy_TagSeti! 9Zend_Service_Simpy_Tagi  AZend_Service_Simpy_NoteSeti ;Zend_Service_Simpy_Notei AZend_Service_Simpy_LinkSeti! EZend_Service_Simpy_LinkQueryi ;Zend_Service_Simpy_Linki 9Zend_Service_ReCaptchai$ KZend_Service_ReCaptcha_Responsei$ KZend_Service_ReCaptcha_MailHidei. _Zend_Service_ReCaptcha_MailHide_Exceptioni% MZend_Service_ReCaptcha_Exceptioni 7Zend_Service_Nirvanixi# IZend_Service_Nirvanix_Responsei) UZend_Service_Nirvanix_Namespace_Imfsi) UZend_Service_Nirvanix_Namespace_Basei$ KZend_Service_Nirvanix_Exceptioni 3Zend_Service_Flickri" GZend_Service_Flickr_ResultSeti AZend_Service_Flickr_Resulti ?Zend_Service_Flickr_Imagei   W  e:nX>R6mK/e8



n
:				^	"rF qBb3OU)]#q>b2                    0G cZend_Tool_Project_Context_Zf_ControllerFilei2F gZend_Tool_Project_Context_Zf_ConfigsDirectoryi,E [Zend_Tool_Project_Context_Zf_ConfigFilei0D cZend_Tool_Project_Context_Zf_CacheDirectoryi/C aZend_Tool_Project_Context_Zf_BootstrapFilei6B oZend_Tool_Project_Context_Zf_ApplicationDirectoryi7A qZend_Tool_Project_Context_Zf_ApplicationConfigFilei/@ aZend_Tool_Project_Context_Zf_ApisDirectoryi.? _Zend_Tool_Project_Context_Zf_ActionMethodi@> Zend_Tool_Project_Context_System_ProjectProvidersDirectoryi8= sZend_Tool_Project_Context_System_ProjectProfileFilei6< oZend_Tool_Project_Context_System_ProjectDirectoryi); UZend_Tool_Project_Context_Repositoryi.: _Zend_Tool_Project_Context_Filesystem_Filei39 iZend_Tool_Project_Context_Filesystem_Directoryi28 gZend_Tool_Project_Context_Filesystem_Abstracti(7 SZend_Tool_Project_Context_Exceptioni06 cZend_Tool_Framework_System_Provider_Versioni05 cZend_Tool_Framework_System_Provider_Phpinfoi14 eZend_Tool_Framework_System_Provider_Manifesti(3 SZend_Tool_Framework_System_Manifesti-2 ]Zend_Tool_Framework_System_Action_Deletei-1 ]Zend_Tool_Framework_System_Action_Createi!0 EZend_Tool_Framework_Registryi+/ YZend_Tool_Framework_Registry_Exceptioni+. YZend_Tool_Framework_Provider_Signaturei,- [Zend_Tool_Framework_Provider_Repositoryi+, YZend_Tool_Framework_Provider_Exceptioni*+ WZend_Tool_Framework_Provider_Abstracti&* OZend_Tool_Framework_Metadata_Tooli)) UZend_Tool_Framework_Metadata_Dynamici'( QZend_Tool_Framework_Metadata_Basici,' [Zend_Tool_Framework_Manifest_Repositoryi+& YZend_Tool_Framework_Manifest_Exceptioni1% eZend_Tool_Framework_Loader_IncludePathLoaderiJ$ Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIteratori(# SZend_Tool_Framework_Loader_Abstracti"" GZend_Tool_Framework_Exceptioni(! SZend_Tool_Framework_Client_ResponseiD  	Zend_Tool_Framework_Client_Response_ContentDecorator_Separatori' QZend_Tool_Framework_Client_Requesti9 uZend_Tool_Framework_Client_Interactive_InputResponsei8 sZend_Tool_Framework_Client_Interactive_InputRequesti8 sZend_Tool_Framework_Client_Interactive_InputHandleri) UZend_Tool_Framework_Client_Exceptioni' QZend_Tool_Framework_Client_ConsoleiD 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizeri0 cZend_Tool_Framework_Client_Console_Manifesti2 gZend_Tool_Framework_Client_Console_HelpSystemi6 oZend_Tool_Framework_Client_Console_ArgumentParseri( SZend_Tool_Framework_Client_Abstracti* WZend_Tool_Framework_Action_Repositoryi) UZend_Tool_Framework_Action_Exceptioni$ KZend_Tool_Framework_Action_Basei 'Zend_TimeSynci 1Zend_TimeSync_Sntpi 9Zend_TimeSync_Protocoli /Zend_TimeSync_Ntpi ;Zend_TimeSync_Exceptioni +Zend_Text_Tablei 3Zend_Text_Table_Rowi
 ?Zend_Text_Table_Exceptioni&	 OZend_Text_Table_Decorator_Unicodei$ KZend_Text_Table_Decorator_Asciii 9Zend_Text_Table_Columni 3Zend_Text_MultiBytei -Zend_Text_Figleti AZend_Text_Figlet_Exceptioni 3Zend_Text_Exceptioni) UZend_Test_PHPUnit_ControllerTestCasei0 cZend_Test_PHPUnit_Constraint_ResponseHeaderi*  WZend_Test_PHPUnit_Constraint_Redirecti+ YZend_Test_PHPUnit_Constraint_Exceptioni*~ WZend_Test_PHPUnit_Constraint_DomQueryi} /Zend_Tag_ItemListi| 'Zend_Tag_Itemi{ 1Zend_Tag_Exceptioniz )Zend_Tag_Cloudiy =Zend_Tag_Cloud_Exceptioni!x EZend_Tag_Cloud_Decorator_Tagi%w MZend_Tag_Cloud_Decorator_HtmlTagi'v QZend_Tag_Cloud_Decorator_HtmlCloudi'u QZend_Tag_Cloud_Decorator_Exceptioni#t IZend_Tag_Cloud_Decorator_Cloudis )Zend_Soap_Wsdli/r aZend_Soap_Wsdl_Strategy_DefaultComplexTypei&q OZend_Soap_Wsdl_Strategy_Compositei   R  ],b,_)K\$


U
			j	&<Z&e*k?f=d?jE hL0                                  7Zend_Validate_Barcodei AZend_Validate_Barcode_UpcAi  CZend_Validate_Barcode_Ean13i 3Zend_Validate_Alphai 3Zend_Validate_Alnumi 9Zend_Validate_Abstracti Zend_Urii 'Zend_Uri_Httpi 1Zend_Uri_Exceptioni )Zend_Translatei =Zend_Translate_Exceptioni 9Zend_Translate_Adapteri! EZend_Translate_Adapter_XmlTmi! EZend_Translate_Adapter_Xliffi AZend_Translate_Adapter_Tmxi
 AZend_Translate_Adapter_Tbxi	 ?Zend_Translate_Adapter_Qti AZend_Translate_Adapter_Inii# IZend_Translate_Adapter_Gettexti AZend_Translate_Adapter_Csvi! EZend_Translate_Adapter_Arrayi$ KZend_Tool_Project_Provider_Viewi$ KZend_Tool_Project_Provider_Testi/ aZend_Tool_Project_Provider_ProjectProvideri' QZend_Tool_Project_Provider_Projecti'  QZend_Tool_Project_Provider_Profilei% MZend_Tool_Project_Provider_Modeli(~ SZend_Tool_Project_Provider_Manifesti$} KZend_Tool_Project_Provider_Formi)| UZend_Tool_Project_Provider_Exceptioni*{ WZend_Tool_Project_Provider_Controlleri&z OZend_Tool_Project_Provider_Actioni(y SZend_Tool_Project_Provider_Abstractix ?Zend_Tool_Project_Profilei'w QZend_Tool_Project_Profile_Resourcei9v uZend_Tool_Project_Profile_Resource_SearchConstraintsi1u eZend_Tool_Project_Profile_Resource_Containeri7t qZend_Tool_Project_Profile_Iterator_EnabledResourcei-s ]Zend_Tool_Project_Profile_FileParser_Xmli(r SZend_Tool_Project_Profile_Exceptioni q CZend_Tool_Project_Exceptioni<p {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectoryi0o cZend_Tool_Project_Context_Zf_ViewsDirectoryi6n oZend_Tool_Project_Context_Zf_ViewScriptsDirectoryi0m cZend_Tool_Project_Context_Zf_ViewScriptFilei6l oZend_Tool_Project_Context_Zf_ViewHelpersDirectoryi6k oZend_Tool_Project_Context_Zf_ViewFiltersDirectoryiAj Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectoryi2i gZend_Tool_Project_Context_Zf_UploadsDirectoryi0h cZend_Tool_Project_Context_Zf_TestsDirectoryi7g qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFilei@f Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectoryi1e eZend_Tool_Project_Context_Zf_TestLibraryFilei6d oZend_Tool_Project_Context_Zf_TestLibraryDirectoryi:c wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFilei:b wZend_Tool_Project_Context_Zf_TestApplicationDirectoryi@a Zend_Tool_Project_Context_Zf_TestApplicationControllerFileiE` Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectoryi>_ Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFilei4^ kZend_Tool_Project_Context_Zf_TemporaryDirectoryi3] iZend_Tool_Project_Context_Zf_SessionsDirectoryi8\ sZend_Tool_Project_Context_Zf_SearchIndexesDirectoryi<[ {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectoryi8Z sZend_Tool_Project_Context_Zf_PublicScriptsDirectoryi1Y eZend_Tool_Project_Context_Zf_PublicIndexFilei7X qZend_Tool_Project_Context_Zf_PublicImagesDirectoryi1W eZend_Tool_Project_Context_Zf_PublicDirectoryi5V mZend_Tool_Project_Context_Zf_ProjectProviderFilei2U gZend_Tool_Project_Context_Zf_ModulesDirectoryi1T eZend_Tool_Project_Context_Zf_ModelsDirectoryi+S YZend_Tool_Project_Context_Zf_ModelFilei/R aZend_Tool_Project_Context_Zf_LogsDirectoryi2Q gZend_Tool_Project_Context_Zf_LocalesDirectoryi2P gZend_Tool_Project_Context_Zf_LibraryDirectoryi2O gZend_Tool_Project_Context_Zf_LayoutsDirectoryi.N _Zend_Tool_Project_Context_Zf_HtaccessFilei0M cZend_Tool_Project_Context_Zf_FormsDirectoryi*L WZend_Tool_Project_Context_Zf_FormFilei-K ]Zend_Tool_Project_Context_Zf_DbTableFilei2J gZend_Tool_Project_Context_Zf_DbTableDirectoryi/I aZend_Tool_Project_Context_Zf_DataDirectoryi6H oZend_Tool_Project_Context_Zf_ControllersDirectoryi   m  a;mB iF'|W;mT5




b
?
)
					|	W	6	cAdAlJ&vR0	uBtI(X)qN+    Zend_Viewi -Zend_View_Streami 5Zend_View_Helper_Urli AZend_View_Helper_Translatei AZend_View_Helper_ServerUrli) UZend_View_Helper_RenderToPlaceholderi!  EZend_View_Helper_Placeholderi* WZend_View_Helper_Placeholder_Registryi4~ kZend_View_Helper_Placeholder_Registry_Exceptioni+} YZend_View_Helper_Placeholder_Containeri6| oZend_View_Helper_Placeholder_Container_Standalonei5{ mZend_View_Helper_Placeholder_Container_Exceptioni4z kZend_View_Helper_Placeholder_Container_Abstracti!y EZend_View_Helper_PartialLoopix =Zend_View_Helper_Partiali'w QZend_View_Helper_Partial_Exceptioni'v QZend_View_Helper_PaginationControli u CZend_View_Helper_Navigationi(t SZend_View_Helper_Navigation_Sitemapi%s MZend_View_Helper_Navigation_Menui&r OZend_View_Helper_Navigation_Linksi/q aZend_View_Helper_Navigation_HelperAbstracti,p [Zend_View_Helper_Navigation_Breadcrumbsio ;Zend_View_Helper_Layoutin 7Zend_View_Helper_Jsoni"m GZend_View_Helper_InlineScripti#l IZend_View_Helper_HtmlQuicktimeik ?Zend_View_Helper_HtmlPagei j CZend_View_Helper_HtmlObjectii ?Zend_View_Helper_HtmlListih AZend_View_Helper_HtmlFlashi!g EZend_View_Helper_HtmlElementif AZend_View_Helper_HeadTitleie AZend_View_Helper_HeadStylei d CZend_View_Helper_HeadScriptic ?Zend_View_Helper_HeadMetaib ?Zend_View_Helper_HeadLinki"a GZend_View_Helper_FormTextareai` ?Zend_View_Helper_FormTexti _ CZend_View_Helper_FormSubmiti ^ CZend_View_Helper_FormSelecti] AZend_View_Helper_FormReseti\ AZend_View_Helper_FormRadioi"[ GZend_View_Helper_FormPasswordiZ ?Zend_View_Helper_FormNotei'Y QZend_View_Helper_FormMultiCheckboxiX AZend_View_Helper_FormLabeliW AZend_View_Helper_FormImagei V CZend_View_Helper_FormHiddeniU ?Zend_View_Helper_FormFilei T CZend_View_Helper_FormErrorsi!S EZend_View_Helper_FormElementi"R GZend_View_Helper_FormCheckboxi Q CZend_View_Helper_FormButtoniP 7Zend_View_Helper_FormiO ?Zend_View_Helper_FieldsetiN =Zend_View_Helper_Doctypei!M EZend_View_Helper_DeclareVarsiL 9Zend_View_Helper_CycleiK ;Zend_View_Helper_ActioniJ ?Zend_View_Helper_AbstractiI 3Zend_View_ExceptioniH 1Zend_View_AbstractiG %Zend_VersioniF 'Zend_ValidateiE AZend_Validate_StringLengthi#D IZend_Validate_Sitemap_PriorityiC ?Zend_Validate_Sitemap_Loci"B GZend_Validate_Sitemap_Lastmodi%A MZend_Validate_Sitemap_Changefreqi@ 3Zend_Validate_Regexi? 9Zend_Validate_NotEmptyi> 9Zend_Validate_LessThani= -Zend_Validate_Ipi< /Zend_Validate_Inti; 7Zend_Validate_InArrayi: ;Zend_Validate_Identicali9 1Zend_Validate_Ibani8 9Zend_Validate_Hostnamei7 /Zend_Validate_Hexi6 ?Zend_Validate_GreaterThani5 3Zend_Validate_Floati!4 EZend_Validate_File_WordCounti3 ?Zend_Validate_File_Uploadi2 ;Zend_Validate_File_Sizei1 ;Zend_Validate_File_Sha1i!0 EZend_Validate_File_NotExistsi / CZend_Validate_File_MimeTypei. 9Zend_Validate_File_Md5i- AZend_Validate_File_IsImagei$, KZend_Validate_File_IsCompressedi!+ EZend_Validate_File_ImageSizei* ;Zend_Validate_File_Hashi!) EZend_Validate_File_FilesSizei!( EZend_Validate_File_Extensioni' ?Zend_Validate_File_Existsi'& QZend_Validate_File_ExcludeMimeTypei(% SZend_Validate_File_ExcludeExtensioni$ =Zend_Validate_File_Crc32i# =Zend_Validate_File_Counti" ;Zend_Validate_Exceptioni! AZend_Validate_EmailAddressi  5Zend_Validate_Digitsi" GZend_Validate_Db_RecordExistsi$ KZend_Validate_Db_NoRecordExistsi ?Zend_Validate_Db_Abstracti 1Zend_Validate_Datei 3Zend_Validate_Ccnumi 7Zend_Validate_Betweeni   k  W2a2uY7vV5dF%




k
L
6
%
				{	R	+	|^E&kFU$sP%xO&sIvDy`<    q Zend_Authjp ?Zend_Auth_Storage_Sessionj$o KZend_Auth_Storage_NonPersistentj n CZend_Auth_Storage_Exceptionjm -Zend_Auth_Resultjl 3Zend_Auth_Exceptionjk =Zend_Auth_Adapter_OpenIdjj 9Zend_Auth_Adapter_Ldapji AZend_Auth_Adapter_InfoCardjh 9Zend_Auth_Adapter_Httpj)g UZend_Auth_Adapter_Http_Resolver_Filej.f _Zend_Auth_Adapter_Http_Resolver_Exceptionj e CZend_Auth_Adapter_Exceptionjd =Zend_Auth_Adapter_Digestjc ?Zend_Auth_Adapter_DbTablejb -Zend_Applicationj#a IZend_Application_Resource_Viewj(` SZend_Application_Resource_Translatej&_ OZend_Application_Resource_Sessionj%^ MZend_Application_Resource_Routerj/] aZend_Application_Resource_ResourceAbstractj)\ UZend_Application_Resource_Navigationj&[ OZend_Application_Resource_Modulesj%Z MZend_Application_Resource_Localej%Y MZend_Application_Resource_Layoutj.X _Zend_Application_Resource_Frontcontrollerj(W SZend_Application_Resource_Exceptionj!V EZend_Application_Resource_Dbj&U OZend_Application_Module_Bootstrapj'T QZend_Application_Module_AutoloaderjS AZend_Application_Exceptionj)R UZend_Application_Bootstrap_Exceptionj1Q eZend_Application_Bootstrap_BootstrapAbstractj)P UZend_Application_Bootstrap_BootstrapjO ?Zend_Amf_Value_TraitsInfoj-N ]Zend_Amf_Value_Messaging_RemotingMessagej*M WZend_Amf_Value_Messaging_ErrorMessagej,L [Zend_Amf_Value_Messaging_CommandMessagej*K WZend_Amf_Value_Messaging_AsyncMessagej0J cZend_Amf_Value_Messaging_AcknowledgeMessagej-I ]Zend_Amf_Value_Messaging_AbstractMessagej!H EZend_Amf_Value_MessageHeaderjG AZend_Amf_Value_MessageBodyjF =Zend_Amf_Value_ByteArrayjE AZend_Amf_Util_BinaryStreamjD +Zend_Amf_ServerjC ?Zend_Amf_Server_ExceptionjB /Zend_Amf_ResponsejA 9Zend_Amf_Response_Httpj@ -Zend_Amf_Requestj? 7Zend_Amf_Request_Httpj> ?Zend_Amf_Parse_TypeLoaderj= ?Zend_Amf_Parse_Serializerj < CZend_Amf_Parse_OutputStreamj; AZend_Amf_Parse_InputStreamj : CZend_Amf_Parse_Deserializerj#9 IZend_Amf_Parse_Amf3_Serializerj%8 MZend_Amf_Parse_Amf3_Deserializerj#7 IZend_Amf_Parse_Amf0_Serializerj%6 MZend_Amf_Parse_Amf0_Deserializerj5 1Zend_Amf_Exceptionj4 1Zend_Amf_Constantsj 3 CZend_Amf_Adobe_Introspectorj2 Zend_Aclj1 'Zend_Acl_Rolej0 9Zend_Acl_Role_Registryj%/ MZend_Acl_Role_Registry_Exceptionj. /Zend_Acl_Resourcej- 1Zend_Acl_Exceptionj, /Zend_XmlRpc_Valuei+ =Zend_XmlRpc_Value_Structi* =Zend_XmlRpc_Value_Stringi) =Zend_XmlRpc_Value_Scalari( 7Zend_XmlRpc_Value_Nili' ?Zend_XmlRpc_Value_Integeri & CZend_XmlRpc_Value_Exceptioni% =Zend_XmlRpc_Value_Doublei$ AZend_XmlRpc_Value_DateTimei!# EZend_XmlRpc_Value_Collectioni" ?Zend_XmlRpc_Value_Booleani! =Zend_XmlRpc_Value_Base64i  ;Zend_XmlRpc_Value_Arrayi 1Zend_XmlRpc_Serveri ?Zend_XmlRpc_Server_Systemi =Zend_XmlRpc_Server_Faulti! EZend_XmlRpc_Server_Exceptioni =Zend_XmlRpc_Server_Cachei 5Zend_XmlRpc_Responsei ?Zend_XmlRpc_Response_Httpi 3Zend_XmlRpc_Requesti ?Zend_XmlRpc_Request_Stdini =Zend_XmlRpc_Request_Httpi /Zend_XmlRpc_Faulti 7Zend_XmlRpc_Exceptioni 1Zend_XmlRpc_Clienti# IZend_XmlRpc_Client_ServerProxyi+ YZend_XmlRpc_Client_ServerIntrospectioni+ YZend_XmlRpc_Client_IntrospectExceptioni% MZend_XmlRpc_Client_HttpExceptioni& OZend_XmlRpc_Client_FaultExceptioni! EZend_XmlRpc_Client_Exceptioni& OZend_Wildfire_Protocol_JsonStreami! EZend_Wildfire_Plugin_FirePhpi.
 _Zend_Wildfire_Plugin_FirePhp_TableMessagei)	 UZend_Wildfire_Plugin_FirePhp_Messagei ;Zend_Wildfire_Exceptioni& OZend_Wildfire_Channel_HttpHeadersi   Y  p?e9qL/
f<j=



_
>
					Z	2	_(wL ^'Y+^)f)mF W-                                  n CZend_Auth_Adapter_Interfacej.m _Zend_Auth_Adapter_Http_Resolver_Interfacej'l QZend_Application_Resource_Resourcej4k kZend_Application_Bootstrap_ResourceBootstrapperj,j [Zend_Application_Bootstrap_Bootstrapperji ;Zend_Acl_Role_Interfacej h CZend_Acl_Resource_Interfacejg ?Zend_Acl_Assert_Interfacej#f IZend_Wildfire_Plugin_Interfacei$e KZend_Wildfire_Channel_Interfaceid 3Zend_View_Interfacei'c QZend_View_Helper_Navigation_Helperib AZend_View_Helper_Interfaceia ;Zend_Validate_Interfacei3` iZend_Tool_Project_Profile_FileParser_Interfacei:_ wZend_Tool_Project_Context_System_TopLevelRestrictablei5^ mZend_Tool_Project_Context_System_NotOverwritablei/] aZend_Tool_Project_Context_System_Interfacei(\ SZend_Tool_Project_Context_Interfacei+[ YZend_Tool_Framework_Registry_Interfacei2Z gZend_Tool_Framework_Registry_EnabledInterfacei-Y ]Zend_Tool_Framework_Provider_Pretendablei+X YZend_Tool_Framework_Provider_Interfacei.W _Zend_Tool_Framework_Provider_Interactablei;V yZend_Tool_Framework_Provider_DocblockManifestInterfacei+U YZend_Tool_Framework_Metadata_Interfacei6T oZend_Tool_Framework_Manifest_ProviderManifestablei6S oZend_Tool_Framework_Manifest_MetadataManifestablei+R YZend_Tool_Framework_Manifest_Interfacei+Q YZend_Tool_Framework_Manifest_Indexablei4P kZend_Tool_Framework_Manifest_ActionManifestableiDO 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interfacei;N yZend_Tool_Framework_Client_Interactive_OutputInterfacei:M wZend_Tool_Framework_Client_Interactive_InputInterfacei)L UZend_Tool_Framework_Action_Interfacei(K SZend_Text_Table_Decorator_InterfaceiJ /Zend_Tag_Taggablei&I OZend_Soap_Wsdl_Strategy_Interfacei%H MZend_Session_Validator_Interfacei'G QZend_Session_SaveHandler_InterfaceiF 7Zend_Server_Interfacei4E kZend_Search_Lucene_Search_Highlighter_Interfacei!D EZend_Search_Lucene_Interfacei3C iZend_Search_Lucene_Index_TermsStream_InterfaceiB ?Zend_Pdf_Filter_Interfacei&A OZend_Pdf_ElementFactory_Interfacei,@ [Zend_Paginator_ScrollingStyle_Interfacei%? MZend_Paginator_Adapter_Interfacei$> KZend_Memory_Container_Interfacei)= UZend_Mail_Storage_Writable_Interfacei'< QZend_Mail_Storage_Folder_Interfacei; =Zend_Mail_Part_Interfacei : CZend_Mail_Message_Interfacei!9 EZend_Log_Formatter_Interfacei8 ?Zend_Log_Filter_Interfacei'7 QZend_Loader_PluginLoader_Interfacei%6 MZend_Loader_Autoloader_Interfacei35 iZend_InfoCard_Xml_Security_Transform_Interfacei(4 SZend_InfoCard_Xml_KeyInfo_Interfacei(3 SZend_InfoCard_Xml_Element_Interfacei*2 WZend_InfoCard_Xml_Assertion_Interfacei-1 ]Zend_InfoCard_Cipher_Symmetric_Interfacei70 qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interfacei7/ qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interfacei+. YZend_InfoCard_Cipher_Pki_Rsa_Interfacei'- QZend_InfoCard_Cipher_Pki_Interfacei$, KZend_InfoCard_Adapter_Interfacei'+ QZend_Http_Client_Adapter_Interfacei* AZend_Gdata_App_MediaSourcei.) _Zend_Form_Decorator_Marker_File_Interfacei"( GZend_Form_Decorator_Interfacei' 7Zend_Filter_Interfacei"& GZend_Filter_Encrypt_Interfacei % CZend_Feed_Builder_Interfacei $ CZend_Db_Statement_Interfacei)# UZend_Crypt_Math_BigInteger_Interfacei+" YZend_Controller_Router_Route_Interfacei%! MZend_Controller_Router_Interfacei)  UZend_Controller_Dispatcher_Interfacei% MZend_Controller_Action_Interfacei 5Zend_Captcha_Adapteri! EZend_Cache_Backend_Interfacei) UZend_Cache_Backend_ExtendedInterfacei  CZend_Auth_Storage_Interfacei  CZend_Auth_Adapter_Interfacei. _Zend_Auth_Adapter_Http_Resolver_Interfacei' QZend_Application_Resource_Resourcei4 kZend_Application_Bootstrap_ResourceBootstrapperi, [Zend_Application_Bootstrap_Bootstrapperi   c  zZ5nS;r_E+xS+|I



y
I
#					{	\	=	"	
\*EV#rE`4e>pHqE                                 (T SZend_Controller_Router_Route_Staticj'S QZend_Controller_Router_Route_Regexj(R SZend_Controller_Router_Route_Modulej*Q WZend_Controller_Router_Route_Hostnamej'P QZend_Controller_Router_Route_Chainj*O WZend_Controller_Router_Route_Abstractj#N IZend_Controller_Router_Rewritej%M MZend_Controller_Router_Exceptionj$L KZend_Controller_Router_Abstractj*K WZend_Controller_Response_HttpTestCasej"J GZend_Controller_Response_Httpj'I QZend_Controller_Response_Exceptionj!H EZend_Controller_Response_Clij&G OZend_Controller_Response_Abstractj#F IZend_Controller_Request_Simplej)E UZend_Controller_Request_HttpTestCasej!D EZend_Controller_Request_Httpj&C OZend_Controller_Request_Exceptionj&B OZend_Controller_Request_Apache404j%A MZend_Controller_Request_Abstractj(@ SZend_Controller_Plugin_ErrorHandlerj"? GZend_Controller_Plugin_Brokerj'> QZend_Controller_Plugin_ActionStackj$= KZend_Controller_Plugin_Abstractj< 7Zend_Controller_Frontj; ?Zend_Controller_Exceptionj(: SZend_Controller_Dispatcher_Standardj)9 UZend_Controller_Dispatcher_Exceptionj(8 SZend_Controller_Dispatcher_Abstractj7 9Zend_Controller_Actionj(6 SZend_Controller_Action_HelperBrokerj65 oZend_Controller_Action_HelperBroker_PriorityStackj/4 aZend_Controller_Action_Helper_ViewRendererj&3 OZend_Controller_Action_Helper_Urlj-2 ]Zend_Controller_Action_Helper_Redirectorj'1 QZend_Controller_Action_Helper_Jsonj10 eZend_Controller_Action_Helper_FlashMessengerj0/ cZend_Controller_Action_Helper_ContextSwitchj<. {Zend_Controller_Action_Helper_AutoCompleteScriptaculousj3- iZend_Controller_Action_Helper_AutoCompleteDojoj8, sZend_Controller_Action_Helper_AutoComplete_Abstractj.+ _Zend_Controller_Action_Helper_AjaxContextj.* _Zend_Controller_Action_Helper_ActionStackj+) YZend_Controller_Action_Helper_Abstractj%( MZend_Controller_Action_Exceptionj' 3Zend_Console_Getoptj"& GZend_Console_Getopt_Exceptionj% #Zend_Configj$ +Zend_Config_Xmlj# 1Zend_Config_Writerj" 9Zend_Config_Writer_Xmlj! 9Zend_Config_Writer_Inij  =Zend_Config_Writer_Arrayj +Zend_Config_Inij 7Zend_Config_Exceptionj$ KZend_CodeGenerator_Php_Propertyj% MZend_CodeGenerator_Php_Parameterj" GZend_CodeGenerator_Php_Methodj, [Zend_CodeGenerator_Php_Member_Containerj+ YZend_CodeGenerator_Php_Member_Abstractj  CZend_CodeGenerator_Php_Filej% MZend_CodeGenerator_Php_Exceptionj$ KZend_CodeGenerator_Php_Docblockj( SZend_CodeGenerator_Php_Docblock_Tagj/ aZend_CodeGenerator_Php_Docblock_Tag_Returnj. _Zend_CodeGenerator_Php_Docblock_Tag_Paramj0 cZend_CodeGenerator_Php_Docblock_Tag_Licensej! EZend_CodeGenerator_Php_Classj  CZend_CodeGenerator_Php_Bodyj$ KZend_CodeGenerator_Php_Abstractj! EZend_CodeGenerator_Exceptionj  CZend_CodeGenerator_Abstractj /Zend_Captcha_Wordj 9Zend_Captcha_ReCaptchaj
 1Zend_Captcha_Imagej	 3Zend_Captcha_Figletj 9Zend_Captcha_Exceptionj /Zend_Captcha_Dumbj /Zend_Captcha_Basej !Zend_Cachej =Zend_Cache_Frontend_Pagej AZend_Cache_Frontend_Outputj! EZend_Cache_Frontend_Functionj =Zend_Cache_Frontend_Filej  ?Zend_Cache_Frontend_Classj 5Zend_Cache_Exceptionj~ +Zend_Cache_Corej} 1Zend_Cache_Backendj"| GZend_Cache_Backend_ZendServerj({ SZend_Cache_Backend_ZendServer_ShMemj'z QZend_Cache_Backend_ZendServer_Diskj$y KZend_Cache_Backend_ZendPlatformjx ?Zend_Cache_Backend_Xcachej!w EZend_Cache_Backend_TwoLevelsjv ;Zend_Cache_Backend_Testju ?Zend_Cache_Backend_Sqlitej!t EZend_Cache_Backend_Memcachedjs ;Zend_Cache_Backend_Filejr 9Zend_Cache_Backend_Apcj   m  rP8u]:gK9lC$uS3




{
\
C
"
				v	U	*		nN+\?)p?Y)a2c3Q+T&               A )Zend_Dojo_Formj@ 9Zend_Dojo_Form_SubFormj*? WZend_Dojo_Form_Element_VerticalSliderj-> ]Zend_Dojo_Form_Element_ValidationTextBoxj'= QZend_Dojo_Form_Element_TimeTextBoxj#< IZend_Dojo_Form_Element_TextBoxj$; KZend_Dojo_Form_Element_Textareaj(: SZend_Dojo_Form_Element_SubmitButtonj"9 GZend_Dojo_Form_Element_Sliderj*8 WZend_Dojo_Form_Element_SimpleTextareaj'7 QZend_Dojo_Form_Element_RadioButtonj+6 YZend_Dojo_Form_Element_PasswordTextBoxj)5 UZend_Dojo_Form_Element_NumberTextBoxj)4 UZend_Dojo_Form_Element_NumberSpinnerj,3 [Zend_Dojo_Form_Element_HorizontalSliderj+2 YZend_Dojo_Form_Element_FilteringSelectj"1 GZend_Dojo_Form_Element_Editorj&0 OZend_Dojo_Form_Element_DijitMultij!/ EZend_Dojo_Form_Element_Dijitj'. QZend_Dojo_Form_Element_DateTextBoxj+- YZend_Dojo_Form_Element_CurrencyTextBoxj$, KZend_Dojo_Form_Element_ComboBoxj$+ KZend_Dojo_Form_Element_CheckBoxj"* GZend_Dojo_Form_Element_Buttonj ) CZend_Dojo_Form_DisplayGroupj*( WZend_Dojo_Form_Decorator_TabContainerj,' [Zend_Dojo_Form_Decorator_StackContainerj,& [Zend_Dojo_Form_Decorator_SplitContainerj'% QZend_Dojo_Form_Decorator_DijitFormj*$ WZend_Dojo_Form_Decorator_DijitElementj,# [Zend_Dojo_Form_Decorator_DijitContainerj)" UZend_Dojo_Form_Decorator_ContentPanej-! ]Zend_Dojo_Form_Decorator_BorderContainerj+  YZend_Dojo_Form_Decorator_AccordionPanej0 cZend_Dojo_Form_Decorator_AccordionContainerj 3Zend_Dojo_Exceptionj )Zend_Dojo_Dataj !Zend_Debugj Zend_Dbj 'Zend_Db_Tablej 5Zend_Db_Table_Selectj# IZend_Db_Table_Select_Exceptionj 5Zend_Db_Table_Rowsetj# IZend_Db_Table_Rowset_Exceptionj" GZend_Db_Table_Rowset_Abstractj /Zend_Db_Table_Rowj  CZend_Db_Table_Row_Exceptionj AZend_Db_Table_Row_Abstractj ;Zend_Db_Table_Exceptionj 9Zend_Db_Table_Abstractj /Zend_Db_Statementj 7Zend_Db_Statement_Pdoj ?Zend_Db_Statement_Pdo_Ocij ?Zend_Db_Statement_Pdo_Ibmj =Zend_Db_Statement_Oraclej'
 QZend_Db_Statement_Oracle_Exceptionj	 =Zend_Db_Statement_Mysqlij' QZend_Db_Statement_Mysqli_Exceptionj  CZend_Db_Statement_Exceptionj 7Zend_Db_Statement_Db2j$ KZend_Db_Statement_Db2_Exceptionj )Zend_Db_Selectj =Zend_Db_Select_Exceptionj -Zend_Db_Profilerj 9Zend_Db_Profiler_Queryj  =Zend_Db_Profiler_Firebugj AZend_Db_Profiler_Exceptionj~ %Zend_Db_Exprj} /Zend_Db_Exceptionj| AZend_Db_Adapter_Pdo_Sqlitej{ ?Zend_Db_Adapter_Pdo_Pgsqljz ;Zend_Db_Adapter_Pdo_Ocijy ?Zend_Db_Adapter_Pdo_Mysqljx ?Zend_Db_Adapter_Pdo_Mssqljw ;Zend_Db_Adapter_Pdo_Ibmj v CZend_Db_Adapter_Pdo_Ibm_Idsj u CZend_Db_Adapter_Pdo_Ibm_Db2j!t EZend_Db_Adapter_Pdo_Abstractjs 9Zend_Db_Adapter_Oraclej%r MZend_Db_Adapter_Oracle_Exceptionjq 9Zend_Db_Adapter_Mysqlij%p MZend_Db_Adapter_Mysqli_Exceptionjo ?Zend_Db_Adapter_Exceptionjn 3Zend_Db_Adapter_Db2j"m GZend_Db_Adapter_Db2_Exceptionjl =Zend_Db_Adapter_Abstractjk Zend_Datejj 3Zend_Date_Exceptionji 5Zend_Date_DateObjectjh -Zend_Date_Citiesjg 'Zend_Currencyjf ;Zend_Currency_Exceptionje !Zend_Cryptjd )Zend_Crypt_Rsajc 1Zend_Crypt_Rsa_Keyjb ?Zend_Crypt_Rsa_Key_Publicja AZend_Crypt_Rsa_Key_Privatej` +Zend_Crypt_Mathj_ ?Zend_Crypt_Math_Exceptionj^ AZend_Crypt_Math_BigIntegerj#] IZend_Crypt_Math_BigInteger_Gmpj)\ UZend_Crypt_Math_BigInteger_Exceptionj&[ OZend_Crypt_Math_BigInteger_BcmathjZ +Zend_Crypt_HmacjY ?Zend_Crypt_Hmac_ExceptionjX 5Zend_Crypt_ExceptionjW =Zend_Crypt_DiffieHellmanj'V QZend_Crypt_DiffieHellman_Exceptionj!U EZend_Controller_Router_Routej   k  T/_5oAi?h=



i
W
<
						}	Y	1	fP>vY< lK*kS)~_=pGl=]9            $, KZend_Form_Decorator_DtDdWrapperj$+ KZend_Form_Decorator_Descriptionj * CZend_Form_Decorator_Captchaj%) MZend_Form_Decorator_Captcha_Wordj!( EZend_Form_Decorator_Callbackj!' EZend_Form_Decorator_Abstractj& #Zend_Filterj+% YZend_Filter_Word_UnderscoreToSeparatorj&$ OZend_Filter_Word_UnderscoreToDashj+# YZend_Filter_Word_UnderscoreToCamelCasej*" WZend_Filter_Word_SeparatorToSeparatorj%! MZend_Filter_Word_SeparatorToDashj*  WZend_Filter_Word_SeparatorToCamelCasej( SZend_Filter_Word_Separator_Abstractj& OZend_Filter_Word_DashToUnderscorej% MZend_Filter_Word_DashToSeparatorj% MZend_Filter_Word_DashToCamelCasej+ YZend_Filter_Word_CamelCaseToUnderscorej* WZend_Filter_Word_CamelCaseToSeparatorj% MZend_Filter_Word_CamelCaseToDashj 7Zend_Filter_StripTagsj ?Zend_Filter_StripNewlinesj 9Zend_Filter_StringTrimj ?Zend_Filter_StringToUpperj ?Zend_Filter_StringToLowerj 5Zend_Filter_RealPathj ;Zend_Filter_PregReplacej& OZend_Filter_NormalizedToLocalizedj& OZend_Filter_LocalizedToNormalizedj +Zend_Filter_Intj /Zend_Filter_Inputj 7Zend_Filter_Inflectorj =Zend_Filter_HtmlEntitiesj AZend_Filter_File_UpperCasej
 ;Zend_Filter_File_Renamej	 AZend_Filter_File_LowerCasej =Zend_Filter_File_Encryptj =Zend_Filter_File_Decryptj 7Zend_Filter_Exceptionj 3Zend_Filter_Encryptj  CZend_Filter_Encrypt_Opensslj AZend_Filter_Encrypt_Mcryptj +Zend_Filter_Dirj 1Zend_Filter_Digitsj  3Zend_Filter_Decryptj 5Zend_Filter_Callbackj~ 5Zend_Filter_BaseNamej} /Zend_Filter_Alphaj| /Zend_Filter_Alnumj{ 1Zend_File_Transferj!z EZend_File_Transfer_Exceptionj$y KZend_File_Transfer_Adapter_Httpj(x SZend_File_Transfer_Adapter_Abstractjw Zend_Feedjv 'Zend_Feed_Rssju 3Zend_Feed_Exceptionjt 3Zend_Feed_Entry_Rssjs 5Zend_Feed_Entry_Atomjr =Zend_Feed_Entry_Abstractjq /Zend_Feed_Elementjp /Zend_Feed_Builderjo =Zend_Feed_Builder_Headerj$n KZend_Feed_Builder_Header_Itunesj m CZend_Feed_Builder_Exceptionjl ;Zend_Feed_Builder_Entryjk )Zend_Feed_Atomjj 1Zend_Feed_Abstractji )Zend_Exceptionjh )Zend_Dom_Queryjg 7Zend_Dom_Query_Resultjf =Zend_Dom_Query_Css2Xpathje 1Zend_Dom_Exceptionjd Zend_Dojoj)c UZend_Dojo_View_Helper_VerticalSliderj,b [Zend_Dojo_View_Helper_ValidationTextBoxj&a OZend_Dojo_View_Helper_TimeTextBoxj"` GZend_Dojo_View_Helper_TextBoxj#_ IZend_Dojo_View_Helper_Textareaj'^ QZend_Dojo_View_Helper_TabContainerj'] QZend_Dojo_View_Helper_SubmitButtonj)\ UZend_Dojo_View_Helper_StackContainerj)[ UZend_Dojo_View_Helper_SplitContainerj!Z EZend_Dojo_View_Helper_Sliderj)Y UZend_Dojo_View_Helper_SimpleTextareaj&X OZend_Dojo_View_Helper_RadioButtonj*W WZend_Dojo_View_Helper_PasswordTextBoxj(V SZend_Dojo_View_Helper_NumberTextBoxj(U SZend_Dojo_View_Helper_NumberSpinnerj+T YZend_Dojo_View_Helper_HorizontalSliderjS AZend_Dojo_View_Helper_Formj*R WZend_Dojo_View_Helper_FilteringSelectj!Q EZend_Dojo_View_Helper_EditorjP AZend_Dojo_View_Helper_Dojoj)O UZend_Dojo_View_Helper_Dojo_Containerj)N UZend_Dojo_View_Helper_DijitContainerj M CZend_Dojo_View_Helper_Dijitj&L OZend_Dojo_View_Helper_DateTextBoxj&K OZend_Dojo_View_Helper_CustomDijitj*J WZend_Dojo_View_Helper_CurrencyTextBoxj&I OZend_Dojo_View_Helper_ContentPanej#H IZend_Dojo_View_Helper_ComboBoxj#G IZend_Dojo_View_Helper_CheckBoxj!F EZend_Dojo_View_Helper_Buttonj*E WZend_Dojo_View_Helper_BorderContainerj(D SZend_Dojo_View_Helper_AccordionPanej-C ]Zend_Dojo_View_Helper_AccordionContainerjB =Zend_Dojo_View_Exceptionj   g  qP' lH!uQ2dA!}]C'




e
5
				|	O	&\6xM%]4^.pH1b5NqK$                             . _Zend_Gdata_Calendar_Extension_AccessLevelj# IZend_Gdata_Calendar_EventQueryj" GZend_Gdata_Calendar_EventFeedj# IZend_Gdata_Calendar_EventEntryj -Zend_Gdata_Booksj! EZend_Gdata_Books_VolumeQueryj  CZend_Gdata_Books_VolumeFeedj! EZend_Gdata_Books_VolumeEntryj+ YZend_Gdata_Books_Extension_Viewabilityj-
 ]Zend_Gdata_Books_Extension_ThumbnailLinkj&	 OZend_Gdata_Books_Extension_Reviewj+ YZend_Gdata_Books_Extension_PreviewLinkj( SZend_Gdata_Books_Extension_InfoLinkj- ]Zend_Gdata_Books_Extension_Embeddabilityj) UZend_Gdata_Books_Extension_BooksLinkj- ]Zend_Gdata_Books_Extension_BooksCategoryj. _Zend_Gdata_Books_Extension_AnnotationLinkj$ KZend_Gdata_Books_CollectionFeedj% MZend_Gdata_Books_CollectionEntryj  1Zend_Gdata_AuthSubj )Zend_Gdata_Appj$~ KZend_Gdata_App_VersionExceptionj} 3Zend_Gdata_App_Utilj#| IZend_Gdata_App_MediaFileSourcej{ ?Zend_Gdata_App_MediaEntryj2z gZend_Gdata_App_LoggingHttpClientAdapterSocketjy AZend_Gdata_App_IOExceptionj,x [Zend_Gdata_App_InvalidArgumentExceptionj!w EZend_Gdata_App_HttpExceptionj$v KZend_Gdata_App_FeedSourceParentj#u IZend_Gdata_App_FeedEntryParentjt 3Zend_Gdata_App_Feedjs =Zend_Gdata_App_Extensionj!r EZend_Gdata_App_Extension_Urij%q MZend_Gdata_App_Extension_Updatedj#p IZend_Gdata_App_Extension_Titlej"o GZend_Gdata_App_Extension_Textj%n MZend_Gdata_App_Extension_Summaryj&m OZend_Gdata_App_Extension_Subtitlej$l KZend_Gdata_App_Extension_Sourcej$k KZend_Gdata_App_Extension_Rightsj'j QZend_Gdata_App_Extension_Publishedj$i KZend_Gdata_App_Extension_Personj"h GZend_Gdata_App_Extension_Namej"g GZend_Gdata_App_Extension_Logoj"f GZend_Gdata_App_Extension_Linkj e CZend_Gdata_App_Extension_Idj"d GZend_Gdata_App_Extension_Iconj'c QZend_Gdata_App_Extension_Generatorj#b IZend_Gdata_App_Extension_Emailj%a MZend_Gdata_App_Extension_Elementj$` KZend_Gdata_App_Extension_Editedj#_ IZend_Gdata_App_Extension_Draftj%^ MZend_Gdata_App_Extension_Controlj)] UZend_Gdata_App_Extension_Contributorj%\ MZend_Gdata_App_Extension_Contentj&[ OZend_Gdata_App_Extension_Categoryj$Z KZend_Gdata_App_Extension_AuthorjY =Zend_Gdata_App_ExceptionjX 5Zend_Gdata_App_Entryj,W [Zend_Gdata_App_CaptchaRequiredExceptionj#V IZend_Gdata_App_BaseMediaSourcejU 3Zend_Gdata_App_Basej*T WZend_Gdata_App_BadMethodCallExceptionj!S EZend_Gdata_App_AuthExceptionjR Zend_FormjQ /Zend_Form_SubFormjP 3Zend_Form_ExceptionjO /Zend_Form_ElementjN ;Zend_Form_Element_XhtmljM AZend_Form_Element_TextareajL 9Zend_Form_Element_TextjK =Zend_Form_Element_SubmitjJ =Zend_Form_Element_SelectjI ;Zend_Form_Element_ResetjH ;Zend_Form_Element_RadiojG AZend_Form_Element_Passwordj"F GZend_Form_Element_Multiselectj$E KZend_Form_Element_MultiCheckboxjD ;Zend_Form_Element_MultijC ;Zend_Form_Element_ImagejB =Zend_Form_Element_HiddenjA 9Zend_Form_Element_Hashj@ 9Zend_Form_Element_Filej ? CZend_Form_Element_Exceptionj> AZend_Form_Element_Checkboxj= ?Zend_Form_Element_Captchaj< =Zend_Form_Element_Buttonj; 9Zend_Form_DisplayGroupj#: IZend_Form_Decorator_ViewScriptj#9 IZend_Form_Decorator_ViewHelperj 8 CZend_Form_Decorator_Tooltipj(7 SZend_Form_Decorator_PrepareElementsj6 ?Zend_Form_Decorator_Labelj5 ?Zend_Form_Decorator_Imagej 4 CZend_Form_Decorator_HtmlTagj#3 IZend_Form_Decorator_FormErrorsj%2 MZend_Form_Decorator_FormElementsj1 =Zend_Form_Decorator_Formj0 =Zend_Form_Decorator_Filej!/ EZend_Form_Decorator_Fieldsetj". GZend_Form_Decorator_Exceptionj- AZend_Form_Decorator_Errorsj   a  |M[6rBNqX:



f
6
				s	V	>	rDY5dBzR!tK#Z;q@"uP*                                           t 5Zend_Gdata_Geo_Entryjs -Zend_Gdata_Gbasej"r GZend_Gdata_Gbase_SnippetQueryj!q EZend_Gdata_Gbase_SnippetFeedj"p GZend_Gdata_Gbase_SnippetEntryjo 9Zend_Gdata_Gbase_Queryjn AZend_Gdata_Gbase_ItemQueryjm ?Zend_Gdata_Gbase_ItemFeedjl AZend_Gdata_Gbase_ItemEntryjk 7Zend_Gdata_Gbase_Feedj-j ]Zend_Gdata_Gbase_Extension_BaseAttributeji 9Zend_Gdata_Gbase_Entryjh -Zend_Gdata_Gappsjg AZend_Gdata_Gapps_UserQueryjf ?Zend_Gdata_Gapps_UserFeedje AZend_Gdata_Gapps_UserEntryj&d OZend_Gdata_Gapps_ServiceExceptionjc 9Zend_Gdata_Gapps_Queryj#b IZend_Gdata_Gapps_NicknameQueryj"a GZend_Gdata_Gapps_NicknameFeedj#` IZend_Gdata_Gapps_NicknameEntryj%_ MZend_Gdata_Gapps_Extension_Quotaj(^ SZend_Gdata_Gapps_Extension_Nicknamej$] KZend_Gdata_Gapps_Extension_Namej%\ MZend_Gdata_Gapps_Extension_Loginj)[ UZend_Gdata_Gapps_Extension_EmailListjZ 9Zend_Gdata_Gapps_Errorj-Y ]Zend_Gdata_Gapps_EmailListRecipientQueryj,X [Zend_Gdata_Gapps_EmailListRecipientFeedj-W ]Zend_Gdata_Gapps_EmailListRecipientEntryj$V KZend_Gdata_Gapps_EmailListQueryj#U IZend_Gdata_Gapps_EmailListFeedj$T KZend_Gdata_Gapps_EmailListEntryjS +Zend_Gdata_FeedjR 5Zend_Gdata_ExtensionjQ =Zend_Gdata_Extension_WhojP AZend_Gdata_Extension_WherejO ?Zend_Gdata_Extension_Whenj$N KZend_Gdata_Extension_Visibilityj&M OZend_Gdata_Extension_Transparencyj"L GZend_Gdata_Extension_Reminderj-K ]Zend_Gdata_Extension_RecurrenceExceptionj$J KZend_Gdata_Extension_Recurrencej I CZend_Gdata_Extension_Ratingj'H QZend_Gdata_Extension_OriginalEventj0G cZend_Gdata_Extension_OpenSearchTotalResultsj.F _Zend_Gdata_Extension_OpenSearchStartIndexj0E cZend_Gdata_Extension_OpenSearchItemsPerPagej"D GZend_Gdata_Extension_FeedLinkj*C WZend_Gdata_Extension_ExtendedPropertyj%B MZend_Gdata_Extension_EventStatusj#A IZend_Gdata_Extension_EntryLinkj"@ GZend_Gdata_Extension_Commentsj&? OZend_Gdata_Extension_AttendeeTypej(> SZend_Gdata_Extension_AttendeeStatusj= +Zend_Gdata_Exifj< 5Zend_Gdata_Exif_Feedj#; IZend_Gdata_Exif_Extension_Timej#: IZend_Gdata_Exif_Extension_Tagsj$9 KZend_Gdata_Exif_Extension_Modelj#8 IZend_Gdata_Exif_Extension_Makej"7 GZend_Gdata_Exif_Extension_Isoj,6 [Zend_Gdata_Exif_Extension_ImageUniqueIdj$5 KZend_Gdata_Exif_Extension_FStopj*4 WZend_Gdata_Exif_Extension_FocalLengthj$3 KZend_Gdata_Exif_Extension_Flashj'2 QZend_Gdata_Exif_Extension_Exposurej'1 QZend_Gdata_Exif_Extension_Distancej0 7Zend_Gdata_Exif_Entryj/ -Zend_Gdata_Entryj. 7Zend_Gdata_DublinCorej*- WZend_Gdata_DublinCore_Extension_Titlej,, [Zend_Gdata_DublinCore_Extension_Subjectj++ YZend_Gdata_DublinCore_Extension_Rightsj.* _Zend_Gdata_DublinCore_Extension_Publisherj-) ]Zend_Gdata_DublinCore_Extension_Languagej/( aZend_Gdata_DublinCore_Extension_Identifierj+' YZend_Gdata_DublinCore_Extension_Formatj0& cZend_Gdata_DublinCore_Extension_Descriptionj)% UZend_Gdata_DublinCore_Extension_Datej,$ [Zend_Gdata_DublinCore_Extension_Creatorj# +Zend_Gdata_Docsj" 7Zend_Gdata_Docs_Queryj%! MZend_Gdata_Docs_DocumentListFeedj&  OZend_Gdata_Docs_DocumentListEntryj 9Zend_Gdata_ClientLoginj 3Zend_Gdata_Calendarj! EZend_Gdata_Calendar_ListFeedj" GZend_Gdata_Calendar_ListEntryj- ]Zend_Gdata_Calendar_Extension_WebContentj+ YZend_Gdata_Calendar_Extension_Timezonej9 uZend_Gdata_Calendar_Extension_SendEventNotificationsj+ YZend_Gdata_Calendar_Extension_Selectedj+ YZend_Gdata_Calendar_Extension_QuickAddj' QZend_Gdata_Calendar_Extension_Linkj) UZend_Gdata_Calendar_Extension_Hiddenj( SZend_Gdata_Calendar_Extension_Colorj   ]  eN&dJ^.k>{N




o
K
&				z	M	"i<Ke<`6^: \-lC[;  $Q KZend_Gdata_YouTube_CommentEntryj$P KZend_Gdata_YouTube_ActivityFeedj%O MZend_Gdata_YouTube_ActivityEntryjN ;Zend_Gdata_Spreadsheetsj*M WZend_Gdata_Spreadsheets_WorksheetFeedj+L YZend_Gdata_Spreadsheets_WorksheetEntryj,K [Zend_Gdata_Spreadsheets_SpreadsheetFeedj-J ]Zend_Gdata_Spreadsheets_SpreadsheetEntryj&I OZend_Gdata_Spreadsheets_ListQueryj%H MZend_Gdata_Spreadsheets_ListFeedj&G OZend_Gdata_Spreadsheets_ListEntryj/F aZend_Gdata_Spreadsheets_Extension_RowCountj-E ]Zend_Gdata_Spreadsheets_Extension_Customj/D aZend_Gdata_Spreadsheets_Extension_ColCountj+C YZend_Gdata_Spreadsheets_Extension_Cellj*B WZend_Gdata_Spreadsheets_DocumentQueryj&A OZend_Gdata_Spreadsheets_CellQueryj%@ MZend_Gdata_Spreadsheets_CellFeedj&? OZend_Gdata_Spreadsheets_CellEntryj> -Zend_Gdata_Queryj= /Zend_Gdata_Photosj < CZend_Gdata_Photos_UserQueryj; AZend_Gdata_Photos_UserFeedj : CZend_Gdata_Photos_UserEntryj9 AZend_Gdata_Photos_TagEntryj!8 EZend_Gdata_Photos_PhotoQueryj 7 CZend_Gdata_Photos_PhotoFeedj!6 EZend_Gdata_Photos_PhotoEntryj&5 OZend_Gdata_Photos_Extension_Widthj'4 QZend_Gdata_Photos_Extension_Weightj(3 SZend_Gdata_Photos_Extension_Versionj%2 MZend_Gdata_Photos_Extension_Userj*1 WZend_Gdata_Photos_Extension_Timestampj*0 WZend_Gdata_Photos_Extension_Thumbnailj%/ MZend_Gdata_Photos_Extension_Sizej). UZend_Gdata_Photos_Extension_Rotationj+- YZend_Gdata_Photos_Extension_QuotaLimitj-, ]Zend_Gdata_Photos_Extension_QuotaCurrentj)+ UZend_Gdata_Photos_Extension_Positionj(* SZend_Gdata_Photos_Extension_PhotoIdj3) iZend_Gdata_Photos_Extension_NumPhotosRemainingj*( WZend_Gdata_Photos_Extension_NumPhotosj)' UZend_Gdata_Photos_Extension_Nicknamej%& MZend_Gdata_Photos_Extension_Namej2% gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumj)$ UZend_Gdata_Photos_Extension_Locationj## IZend_Gdata_Photos_Extension_Idj'" QZend_Gdata_Photos_Extension_Heightj2! gZend_Gdata_Photos_Extension_CommentingEnabledj-  ]Zend_Gdata_Photos_Extension_CommentCountj' QZend_Gdata_Photos_Extension_Clientj) UZend_Gdata_Photos_Extension_Checksumj* WZend_Gdata_Photos_Extension_BytesUsedj( SZend_Gdata_Photos_Extension_AlbumIdj' QZend_Gdata_Photos_Extension_Accessj# IZend_Gdata_Photos_CommentEntryj! EZend_Gdata_Photos_AlbumQueryj  CZend_Gdata_Photos_AlbumFeedj! EZend_Gdata_Photos_AlbumEntryj AZend_Gdata_MediaMimeStreamj -Zend_Gdata_Mediaj 7Zend_Gdata_Media_Feedj* WZend_Gdata_Media_Extension_MediaTitlej. _Zend_Gdata_Media_Extension_MediaThumbnailj) UZend_Gdata_Media_Extension_MediaTextj0 cZend_Gdata_Media_Extension_MediaRestrictionj+ YZend_Gdata_Media_Extension_MediaRatingj+ YZend_Gdata_Media_Extension_MediaPlayerj- ]Zend_Gdata_Media_Extension_MediaKeywordsj) UZend_Gdata_Media_Extension_MediaHashj* WZend_Gdata_Media_Extension_MediaGroupj0
 cZend_Gdata_Media_Extension_MediaDescriptionj+	 YZend_Gdata_Media_Extension_MediaCreditj. _Zend_Gdata_Media_Extension_MediaCopyrightj, [Zend_Gdata_Media_Extension_MediaContentj- ]Zend_Gdata_Media_Extension_MediaCategoryj 9Zend_Gdata_Media_Entryj AZend_Gdata_Kind_EventEntryj 7Zend_Gdata_HttpClientj* WZend_Gdata_HttpAdapterStreamingSocketj) UZend_Gdata_HttpAdapterStreamingProxyj  /Zend_Gdata_Healthj ;Zend_Gdata_Health_Queryj&~ OZend_Gdata_Health_ProfileListFeedj'} QZend_Gdata_Health_ProfileListEntryj"| GZend_Gdata_Health_ProfileFeedj#{ IZend_Gdata_Health_ProfileEntryj$z KZend_Gdata_Health_Extension_Ccrjy )Zend_Gdata_Geojx 3Zend_Gdata_Geo_Feedj$w KZend_Gdata_Geo_Extension_GmlPosj&v OZend_Gdata_Geo_Extension_GmlPointj)u UZend_Gdata_Geo_Extension_GeoRssWherej   \  ]4	O!k=R!m=



~
T
&				l	<	\6d7
gA&sM*W0`'
{W5b7                                    &- OZend_InfoCard_Xml_KeyInfo_XmlDSigj&, OZend_InfoCard_Xml_KeyInfo_Defaultj'+ QZend_InfoCard_Xml_KeyInfo_Abstractj * CZend_InfoCard_Xml_Exceptionj#) IZend_InfoCard_Xml_EncryptedKeyj$( KZend_InfoCard_Xml_EncryptedDataj+' YZend_InfoCard_Xml_EncryptedData_XmlEncj-& ]Zend_InfoCard_Xml_EncryptedData_Abstractj% ?Zend_InfoCard_Xml_Elementj $ CZend_InfoCard_Xml_Assertionj%# MZend_InfoCard_Xml_Assertion_Samlj" ;Zend_InfoCard_Exceptionj%! MZend_InfoCard_Exception_Abstractj  5Zend_InfoCard_Claimsj 5Zend_InfoCard_Cipherj5 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcj5 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcj4 kZend_InfoCard_Cipher_Symmetric_Adapter_Abstractj) UZend_InfoCard_Cipher_Pki_Adapter_Rsaj. _Zend_InfoCard_Cipher_Pki_Adapter_Abstractj# IZend_InfoCard_Cipher_Exceptionj$ KZend_InfoCard_Adapter_Exceptionj" GZend_InfoCard_Adapter_Defaultj 1Zend_Http_Responsej 3Zend_Http_Exceptionj 3Zend_Http_CookieJarj -Zend_Http_Cookiej -Zend_Http_Clientj AZend_Http_Client_Exceptionj" GZend_Http_Client_Adapter_Testj$ KZend_Http_Client_Adapter_Socketj# IZend_Http_Client_Adapter_Proxyj' QZend_Http_Client_Adapter_Exceptionj" GZend_Http_Client_Adapter_Curlj !Zend_Gdataj
 1Zend_Gdata_YouTubej"	 GZend_Gdata_YouTube_VideoQueryj! EZend_Gdata_YouTube_VideoFeedj" GZend_Gdata_YouTube_VideoEntryj( SZend_Gdata_YouTube_UserProfileEntryj( SZend_Gdata_YouTube_SubscriptionFeedj) UZend_Gdata_YouTube_SubscriptionEntryj) UZend_Gdata_YouTube_PlaylistVideoFeedj* WZend_Gdata_YouTube_PlaylistVideoEntryj( SZend_Gdata_YouTube_PlaylistListFeedj)  UZend_Gdata_YouTube_PlaylistListEntryj" GZend_Gdata_YouTube_MediaEntryj!~ EZend_Gdata_YouTube_InboxFeedj"} GZend_Gdata_YouTube_InboxEntryj)| UZend_Gdata_YouTube_Extension_VideoIdj*{ WZend_Gdata_YouTube_Extension_Usernamej*z WZend_Gdata_YouTube_Extension_Uploadedj'y QZend_Gdata_YouTube_Extension_Tokenj(x SZend_Gdata_YouTube_Extension_Statusj,w [Zend_Gdata_YouTube_Extension_Statisticsj'v QZend_Gdata_YouTube_Extension_Statej(u SZend_Gdata_YouTube_Extension_Schoolj-t ]Zend_Gdata_YouTube_Extension_ReleaseDatej.s _Zend_Gdata_YouTube_Extension_Relationshipj*r WZend_Gdata_YouTube_Extension_Recordedj&q OZend_Gdata_YouTube_Extension_Racyj-p ]Zend_Gdata_YouTube_Extension_QueryStringj)o UZend_Gdata_YouTube_Extension_Privatej*n WZend_Gdata_YouTube_Extension_Positionj/m aZend_Gdata_YouTube_Extension_PlaylistTitlej,l [Zend_Gdata_YouTube_Extension_PlaylistIdj,k [Zend_Gdata_YouTube_Extension_Occupationj)j UZend_Gdata_YouTube_Extension_NoEmbedj'i QZend_Gdata_YouTube_Extension_Musicj(h SZend_Gdata_YouTube_Extension_Moviesj-g ]Zend_Gdata_YouTube_Extension_MediaRatingj,f [Zend_Gdata_YouTube_Extension_MediaGroupj-e ]Zend_Gdata_YouTube_Extension_MediaCreditj.d _Zend_Gdata_YouTube_Extension_MediaContentj*c WZend_Gdata_YouTube_Extension_Locationj&b OZend_Gdata_YouTube_Extension_Linkj*a WZend_Gdata_YouTube_Extension_LastNamej*` WZend_Gdata_YouTube_Extension_Hometownj)_ UZend_Gdata_YouTube_Extension_Hobbiesj(^ SZend_Gdata_YouTube_Extension_Genderj+] YZend_Gdata_YouTube_Extension_FirstNamej*\ WZend_Gdata_YouTube_Extension_Durationj-[ ]Zend_Gdata_YouTube_Extension_Descriptionj+Z YZend_Gdata_YouTube_Extension_CountHintj)Y UZend_Gdata_YouTube_Extension_Controlj)X UZend_Gdata_YouTube_Extension_Companyj'W QZend_Gdata_YouTube_Extension_Booksj%V MZend_Gdata_YouTube_Extension_Agej)U UZend_Gdata_YouTube_Extension_AboutMej#T IZend_Gdata_YouTube_ContactFeedj$S KZend_Gdata_YouTube_ContactEntryj#R IZend_Gdata_YouTube_CommentFeedj   v
 q:kQ7}\5rE'U4 





e
L
8
					v	W	6	tX9c6yP*	_E bG-nR3x\=!vO&
                      # 3Zend_Measure_Volumej%" MZend_Measure_Viscosity_Kinematicj#! IZend_Measure_Viscosity_Dynamicj  3Zend_Measure_Torquej /Zend_Measure_Timej =Zend_Measure_Temperaturej 1Zend_Measure_Speedj 7Zend_Measure_Pressurej 1Zend_Measure_Powerj 3Zend_Measure_Numberj 9Zend_Measure_Lightnessj 3Zend_Measure_Lengthj ?Zend_Measure_Illuminationj 9Zend_Measure_Frequencyj 1Zend_Measure_Forcej =Zend_Measure_Flow_Volumej 9Zend_Measure_Flow_Molej 9Zend_Measure_Flow_Massj 9Zend_Measure_Exceptionj 3Zend_Measure_Energyj 5Zend_Measure_Densityj 5Zend_Measure_Currentj  CZend_Measure_Cooking_Weightj  CZend_Measure_Cooking_Volumej =Zend_Measure_Capacitancej
 3Zend_Measure_Binaryj	 /Zend_Measure_Areaj 1Zend_Measure_Anglej ?Zend_Measure_Accelerationj 7Zend_Measure_Abstractj Zend_Mailj =Zend_Mail_Transport_Smtpj! EZend_Mail_Transport_Sendmailj" GZend_Mail_Transport_Exceptionj! EZend_Mail_Transport_Abstractj  /Zend_Mail_Storagej' QZend_Mail_Storage_Writable_Maildirj~ 9Zend_Mail_Storage_Pop3j} 9Zend_Mail_Storage_Mboxj| ?Zend_Mail_Storage_Maildirj{ 9Zend_Mail_Storage_Imapjz =Zend_Mail_Storage_Folderj"y GZend_Mail_Storage_Folder_Mboxj%x MZend_Mail_Storage_Folder_Maildirj w CZend_Mail_Storage_Exceptionjv AZend_Mail_Storage_Abstractju ;Zend_Mail_Protocol_Smtpj't QZend_Mail_Protocol_Smtp_Auth_Plainj's QZend_Mail_Protocol_Smtp_Auth_Loginj)r UZend_Mail_Protocol_Smtp_Auth_Crammd5jq ;Zend_Mail_Protocol_Pop3jp ;Zend_Mail_Protocol_Imapj!o EZend_Mail_Protocol_Exceptionj n CZend_Mail_Protocol_Abstractjm )Zend_Mail_Partjl 3Zend_Mail_Part_Filejk /Zend_Mail_Messagejj 9Zend_Mail_Message_Fileji 3Zend_Mail_Exceptionjh Zend_Logjg 9Zend_Log_Writer_Streamjf 5Zend_Log_Writer_Nullje 5Zend_Log_Writer_Mockjd 5Zend_Log_Writer_Mailjc ;Zend_Log_Writer_Firebugjb 1Zend_Log_Writer_Dbja =Zend_Log_Writer_Abstractj` 9Zend_Log_Formatter_Xmlj_ ?Zend_Log_Formatter_Simplej^ AZend_Log_Formatter_Firebugj] =Zend_Log_Filter_Suppressj\ =Zend_Log_Filter_Priorityj[ ;Zend_Log_Filter_MessagejZ 1Zend_Log_ExceptionjY #Zend_LocalejX -Zend_Locale_MathjW =Zend_Locale_Math_PhpMathjV AZend_Locale_Math_ExceptionjU 1Zend_Locale_FormatjT 7Zend_Locale_ExceptionjS -Zend_Locale_Dataj!R EZend_Locale_Data_TranslationjQ #Zend_LoaderjP =Zend_Loader_PluginLoaderj'O QZend_Loader_PluginLoader_ExceptionjN 7Zend_Loader_ExceptionjM 9Zend_Loader_Autoloaderj$L KZend_Loader_Autoloader_ResourcejK Zend_LdapjJ 3Zend_Ldap_ExceptionjI #Zend_LayoutjH 7Zend_Layout_Exceptionj)G UZend_Layout_Controller_Plugin_Layoutj0F cZend_Layout_Controller_Action_Helper_LayoutjE Zend_JsonjD -Zend_Json_ServerjC 5Zend_Json_Server_Smdj!B EZend_Json_Server_Smd_ServicejA ?Zend_Json_Server_Responsej#@ IZend_Json_Server_Response_Httpj? =Zend_Json_Server_Requestj"> GZend_Json_Server_Request_Httpj= AZend_Json_Server_Exceptionj< 9Zend_Json_Server_Errorj; 9Zend_Json_Server_Cachej: )Zend_Json_Exprj9 3Zend_Json_Exceptionj8 /Zend_Json_Encoderj7 /Zend_Json_Decoderj6 'Zend_InfoCardj-5 ]Zend_InfoCard_Xml_SecurityTokenReferencej4 AZend_InfoCard_Xml_Securityj)3 UZend_InfoCard_Xml_Security_Transformj42 kZend_InfoCard_Xml_Security_Transform_XmlExcC14Nj31 iZend_InfoCard_Xml_Security_Transform_Exceptionj<0 {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignaturej)/ UZend_InfoCard_Xml_Security_Exceptionj. ?Zend_InfoCard_Xml_KeyInfoj   j  tV8vT2lO1wU8$^=



r
H
%
 					n	S	<	{T4	vV=^8|\;cK1M l.s3                                  2 gZend_Pdf_Resource_Font_Simple_Standard_Symbolj< {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliquejA Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliquej9
 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldj5	 mZend_Pdf_Resource_Font_Simple_Standard_Helveticaj: wZend_Pdf_Resource_Font_Simple_Standard_CourierObliquej> Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliquej7 qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldj3 iZend_Pdf_Resource_Font_Simple_Standard_Courierj) UZend_Pdf_Resource_Font_Simple_Parsedj2 gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypej* WZend_Pdf_Resource_Font_FontDescriptorj% MZend_Pdf_Resource_Font_Extractedj#  IZend_Pdf_Resource_Font_CidFontj, [Zend_Pdf_Resource_Font_CidFont_TrueTypej~ /Zend_Pdf_PhpArrayj} +Zend_Pdf_Parserj| 9Zend_Pdf_Parser_Streamj{ 'Zend_Pdf_Pagejz )Zend_Pdf_Imagejy 'Zend_Pdf_Fontj x CZend_Pdf_Filter_Compressionj$w KZend_Pdf_Filter_Compression_Lzwj&v OZend_Pdf_Filter_Compression_Flateju =Zend_Pdf_Filter_AsciiHexjt ;Zend_Pdf_Filter_Ascii85j"s GZend_Pdf_FileParserDataSourcej)r UZend_Pdf_FileParserDataSource_Stringj'q QZend_Pdf_FileParserDataSource_Filejp 3Zend_Pdf_FileParserjo ?Zend_Pdf_FileParser_Imagej"n GZend_Pdf_FileParser_Image_Pngjm =Zend_Pdf_FileParser_Fontj&l OZend_Pdf_FileParser_Font_OpenTypej/k aZend_Pdf_FileParser_Font_OpenType_TrueTypejj 1Zend_Pdf_Exceptionji ;Zend_Pdf_ElementFactoryj"h GZend_Pdf_ElementFactory_Proxyjg -Zend_Pdf_Elementjf ;Zend_Pdf_Element_Stringj#e IZend_Pdf_Element_String_Binaryjd ;Zend_Pdf_Element_Streamjc AZend_Pdf_Element_Referencej%b MZend_Pdf_Element_Reference_Tablej'a QZend_Pdf_Element_Reference_Contextj` ;Zend_Pdf_Element_Objectj#_ IZend_Pdf_Element_Object_Streamj^ =Zend_Pdf_Element_Numericj] 7Zend_Pdf_Element_Nullj\ 7Zend_Pdf_Element_Namej [ CZend_Pdf_Element_DictionaryjZ =Zend_Pdf_Element_BooleanjY 9Zend_Pdf_Element_ArrayjX )Zend_Pdf_ColorjW 1Zend_Pdf_Color_RgbjV 3Zend_Pdf_Color_HtmljU =Zend_Pdf_Color_GrayScalejT 3Zend_Pdf_Color_CmykjS 'Zend_Pdf_CmapjR AZend_Pdf_Cmap_TrimmedTablej!Q EZend_Pdf_Cmap_SegmentToDeltajP AZend_Pdf_Cmap_ByteEncodingj&O OZend_Pdf_Cmap_ByteEncoding_StaticjN )Zend_Paginatorj*M WZend_Paginator_ScrollingStyle_Slidingj*L WZend_Paginator_ScrollingStyle_Jumpingj*K WZend_Paginator_ScrollingStyle_Elasticj&J OZend_Paginator_ScrollingStyle_AlljI =Zend_Paginator_Exceptionj H CZend_Paginator_Adapter_Nullj$G KZend_Paginator_Adapter_Iteratorj)F UZend_Paginator_Adapter_DbTableSelectj$E KZend_Paginator_Adapter_DbSelectj!D EZend_Paginator_Adapter_ArrayjC #Zend_OpenIdjB 5Zend_OpenId_ProviderjA ?Zend_OpenId_Provider_Userj&@ OZend_OpenId_Provider_User_Sessionj!? EZend_OpenId_Provider_Storagej&> OZend_OpenId_Provider_Storage_Filej= 7Zend_OpenId_Extensionj< AZend_OpenId_Extension_Sregj; 7Zend_OpenId_Exceptionj: 5Zend_OpenId_Consumerj!9 EZend_OpenId_Consumer_Storagej&8 OZend_OpenId_Consumer_Storage_Filej7 +Zend_Navigationj6 5Zend_Navigation_Pagej5 =Zend_Navigation_Page_Urij4 =Zend_Navigation_Page_Mvcj3 ?Zend_Navigation_Exceptionj2 ?Zend_Navigation_Containerj1 Zend_Mimej0 )Zend_Mime_Partj/ /Zend_Mime_Messagej. 3Zend_Mime_Exceptionj- -Zend_Mime_Decodej, #Zend_Memoryj+ /Zend_Memory_Valuej* 3Zend_Memory_Managerj) 7Zend_Memory_Exceptionj( 7Zend_Memory_Containerj"' GZend_Memory_Container_Movablej!& EZend_Memory_Container_Lockedj!% EZend_Memory_AccessControllerj$ 3Zend_Measure_Weightj   \  M]>oQ:T,^2




j
K
)
					l	P	-	s&g}Sf6a8X,g+xP)               %i MZend_Search_Lucene_PriorityQueuej/h aZend_Search_Lucene_Interface_MultiSearcherj#g IZend_Search_Lucene_LockManagerj$f KZend_Search_Lucene_Index_Writerj0e cZend_Search_Lucene_Index_TermsPriorityQueuej&d OZend_Search_Lucene_Index_TermInfoj"c GZend_Search_Lucene_Index_Termj+b YZend_Search_Lucene_Index_SegmentWriterj8a sZend_Search_Lucene_Index_SegmentWriter_StreamWriterj:` wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterj+_ YZend_Search_Lucene_Index_SegmentMergerj)^ UZend_Search_Lucene_Index_SegmentInfoj'] QZend_Search_Lucene_Index_FieldInfoj(\ SZend_Search_Lucene_Index_DocsFilterj.[ _Zend_Search_Lucene_Index_DictionaryLoaderj!Z EZend_Search_Lucene_FSMActionjY 9Zend_Search_Lucene_FSMjX =Zend_Search_Lucene_Fieldj!W EZend_Search_Lucene_Exceptionj V CZend_Search_Lucene_Documentj%U MZend_Search_Lucene_Document_Xlsxj%T MZend_Search_Lucene_Document_Pptxj(S SZend_Search_Lucene_Document_OpenXmlj%R MZend_Search_Lucene_Document_Htmlj*Q WZend_Search_Lucene_Document_Exceptionj%P MZend_Search_Lucene_Document_Docxj,O [Zend_Search_Lucene_Analysis_TokenFilterj6N oZend_Search_Lucene_Analysis_TokenFilter_StopWordsj7M qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsj:L wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8j6K oZend_Search_Lucene_Analysis_TokenFilter_LowerCasej&J OZend_Search_Lucene_Analysis_Tokenj)I UZend_Search_Lucene_Analysis_Analyzerj0H cZend_Search_Lucene_Analysis_Analyzer_Commonj8G sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumjIF Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitivej5E mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8jFD Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitivej8C sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumjIB Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitivej5A mZend_Search_Lucene_Analysis_Analyzer_Common_TextjF@ Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitivej? 7Zend_Search_Exceptionj> -Zend_Rest_Serverj= AZend_Rest_Server_Exceptionj< 3Zend_Rest_Exceptionj; -Zend_Rest_Clientj: ;Zend_Rest_Client_Resultj&9 OZend_Rest_Client_Result_Exceptionj8 AZend_Rest_Client_Exceptionj7 'Zend_Registryj6 =Zend_Reflection_Propertyj5 ?Zend_Reflection_Parameterj4 9Zend_Reflection_Methodj3 =Zend_Reflection_Functionj2 5Zend_Reflection_Filej1 ?Zend_Reflection_Extensionj0 ?Zend_Reflection_Exceptionj/ =Zend_Reflection_Docblockj!. EZend_Reflection_Docblock_Tagj(- SZend_Reflection_Docblock_Tag_Returnj', QZend_Reflection_Docblock_Tag_Paramj+ 7Zend_Reflection_Classj* -Zend_ProgressBarj) AZend_ProgressBar_Exceptionj( =Zend_ProgressBar_Adapterj$' KZend_ProgressBar_Adapter_JsPushj$& KZend_ProgressBar_Adapter_JsPullj'% QZend_ProgressBar_Adapter_Exceptionj%$ MZend_ProgressBar_Adapter_Consolej# Zend_Pdfj!" EZend_Pdf_UpdateInfoContainerj! -Zend_Pdf_Trailerj  ;Zend_Pdf_Trailer_Keeperj AZend_Pdf_Trailer_Generatorj )Zend_Pdf_Stylej 7Zend_Pdf_StringParserj /Zend_Pdf_Resourcej# IZend_Pdf_Resource_ImageFactoryj ;Zend_Pdf_Resource_Imagej! EZend_Pdf_Resource_Image_Tiffj  CZend_Pdf_Resource_Image_Pngj! EZend_Pdf_Resource_Image_Jpegj 9Zend_Pdf_Resource_Fontj! EZend_Pdf_Resource_Font_Type0j" GZend_Pdf_Resource_Font_Simplej+ YZend_Pdf_Resource_Font_Simple_Standardj8 sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsj6 oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanj7 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicj; yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicj5 mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldj   [  k;wH^0v@[&



`
/
 			o	F	W#pJ% Y3sU8eAvO&cB`:                        D 3Zend_Service_Amazonj'C QZend_Service_Amazon_SimilarProductjB 9Zend_Service_Amazon_S3j"A GZend_Service_Amazon_S3_Streamj%@ MZend_Service_Amazon_S3_Exceptionj"? GZend_Service_Amazon_ResultSetj> ?Zend_Service_Amazon_Queryj!= EZend_Service_Amazon_OfferSetj< ?Zend_Service_Amazon_Offerj&; OZend_Service_Amazon_ListmaniaListj: =Zend_Service_Amazon_Itemj9 ?Zend_Service_Amazon_Imagej"8 GZend_Service_Amazon_Exceptionj(7 SZend_Service_Amazon_EditorialReviewj6 ;Zend_Service_Amazon_Ec2j+5 YZend_Service_Amazon_Ec2_Securitygroupsj%4 MZend_Service_Amazon_Ec2_Responsej#3 IZend_Service_Amazon_Ec2_Regionj$2 KZend_Service_Amazon_Ec2_Keypairj%1 MZend_Service_Amazon_Ec2_Instancej"0 GZend_Service_Amazon_Ec2_Imagej&/ OZend_Service_Amazon_Ec2_Exceptionj&. OZend_Service_Amazon_Ec2_Elasticipj - CZend_Service_Amazon_Ec2_Ebsj., _Zend_Service_Amazon_Ec2_Availabilityzonesj%+ MZend_Service_Amazon_Ec2_Abstractj'* QZend_Service_Amazon_CustomerReviewj$) KZend_Service_Amazon_Accessoriesj!( EZend_Service_Amazon_Abstractj' 5Zend_Service_Akismetj& 7Zend_Service_Abstractj% 9Zend_Server_Reflectionj'$ QZend_Server_Reflection_ReturnValuej%# MZend_Server_Reflection_Prototypej%" MZend_Server_Reflection_Parameterj ! CZend_Server_Reflection_Nodej"  GZend_Server_Reflection_Methodj$ KZend_Server_Reflection_Functionj- ]Zend_Server_Reflection_Function_Abstractj% MZend_Server_Reflection_Exceptionj! EZend_Server_Reflection_Classj! EZend_Server_Method_Prototypej! EZend_Server_Method_Parameterj" GZend_Server_Method_Definitionj  CZend_Server_Method_Callbackj 7Zend_Server_Exceptionj 9Zend_Server_Definitionj /Zend_Server_Cachej 5Zend_Server_Abstractj 1Zend_Search_Lucenej0 cZend_Search_Lucene_termStreamsPriorityQueuej$ KZend_Search_Lucene_Storage_Filej+ YZend_Search_Lucene_Storage_File_Memoryj/ aZend_Search_Lucene_Storage_File_Filesystemj) UZend_Search_Lucene_Storage_Directoryj4 kZend_Search_Lucene_Storage_Directory_Filesystemj% MZend_Search_Lucene_Search_Weightj* WZend_Search_Lucene_Search_Weight_Termj,
 [Zend_Search_Lucene_Search_Weight_Phrasej/	 aZend_Search_Lucene_Search_Weight_MultiTermj+ YZend_Search_Lucene_Search_Weight_Emptyj- ]Zend_Search_Lucene_Search_Weight_Booleanj) UZend_Search_Lucene_Search_Similarityj1 eZend_Search_Lucene_Search_Similarity_Defaultj) UZend_Search_Lucene_Search_QueryTokenj3 iZend_Search_Lucene_Search_QueryParserExceptionj1 eZend_Search_Lucene_Search_QueryParserContextj* WZend_Search_Lucene_Search_QueryParserj)  UZend_Search_Lucene_Search_QueryLexerj' QZend_Search_Lucene_Search_QueryHitj)~ UZend_Search_Lucene_Search_QueryEntryj.} _Zend_Search_Lucene_Search_QueryEntry_Termj2| gZend_Search_Lucene_Search_QueryEntry_Subqueryj0{ cZend_Search_Lucene_Search_QueryEntry_Phrasej$z KZend_Search_Lucene_Search_Queryj-y ]Zend_Search_Lucene_Search_Query_Wildcardj)x UZend_Search_Lucene_Search_Query_Termj*w WZend_Search_Lucene_Search_Query_Rangej2v gZend_Search_Lucene_Search_Query_Preprocessingj7u qZend_Search_Lucene_Search_Query_Preprocessing_Termj9t uZend_Search_Lucene_Search_Query_Preprocessing_Phrasej8s sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzyj+r YZend_Search_Lucene_Search_Query_Phrasej.q _Zend_Search_Lucene_Search_Query_MultiTermj2p gZend_Search_Lucene_Search_Query_Insignificantj*o WZend_Search_Lucene_Search_Query_Fuzzyj*n WZend_Search_Lucene_Search_Query_Emptyj,m [Zend_Search_Lucene_Search_Query_Booleanj2l gZend_Search_Lucene_Search_Highlighter_Defaultj:k wZend_Search_Lucene_Search_BooleanExpressionRecognizerjj =Zend_Search_Lucene_Proxyj   d  g=xP#V._<}U:



w
M
				s	D	V(|L"vO/U)Z0kF~S+a>                    ( AZend_Soap_Server_Exceptionj' -Zend_Soap_Clientj& 9Zend_Soap_Client_Localj% AZend_Soap_Client_Exceptionj$ ;Zend_Soap_Client_DotNetj# ;Zend_Soap_Client_Commonj" 9Zend_Soap_AutoDiscoverj%! MZend_Soap_AutoDiscover_Exceptionj  %Zend_Sessionj) UZend_Session_Validator_HttpUserAgentj$ KZend_Session_Validator_Abstractj' QZend_Session_SaveHandler_Exceptionj% MZend_Session_SaveHandler_DbTablej 9Zend_Session_Namespacej 9Zend_Session_Exceptionj 7Zend_Session_Abstractj 1Zend_Service_Yahooj$ KZend_Service_Yahoo_WebResultSetj! EZend_Service_Yahoo_WebResultj& OZend_Service_Yahoo_VideoResultSetj# IZend_Service_Yahoo_VideoResultj! EZend_Service_Yahoo_ResultSetj ?Zend_Service_Yahoo_Resultj) UZend_Service_Yahoo_PageDataResultSetj& OZend_Service_Yahoo_PageDataResultj% MZend_Service_Yahoo_NewsResultSetj" GZend_Service_Yahoo_NewsResultj& OZend_Service_Yahoo_LocalResultSetj# IZend_Service_Yahoo_LocalResultj+ YZend_Service_Yahoo_InlinkDataResultSetj(
 SZend_Service_Yahoo_InlinkDataResultj&	 OZend_Service_Yahoo_ImageResultSetj# IZend_Service_Yahoo_ImageResultj =Zend_Service_Yahoo_Imagej 5Zend_Service_Twitterj  CZend_Service_Twitter_Searchj# IZend_Service_Twitter_Exceptionj ;Zend_Service_Technoratij# IZend_Service_Technorati_Weblogj" GZend_Service_Technorati_Utilsj*  WZend_Service_Technorati_TagsResultSetj' QZend_Service_Technorati_TagsResultj)~ UZend_Service_Technorati_TagResultSetj&} OZend_Service_Technorati_TagResultj,| [Zend_Service_Technorati_SearchResultSetj){ UZend_Service_Technorati_SearchResultj&z OZend_Service_Technorati_ResultSetj#y IZend_Service_Technorati_Resultj*x WZend_Service_Technorati_KeyInfoResultj*w WZend_Service_Technorati_GetInfoResultj&v OZend_Service_Technorati_Exceptionj1u eZend_Service_Technorati_DailyCountsResultSetj.t _Zend_Service_Technorati_DailyCountsResultj,s [Zend_Service_Technorati_CosmosResultSetj)r UZend_Service_Technorati_CosmosResultj+q YZend_Service_Technorati_BlogInfoResultj#p IZend_Service_Technorati_Authorjo ;Zend_Service_StrikeIronj(n SZend_Service_StrikeIron_ZipCodeInfoj2m gZend_Service_StrikeIron_USAddressVerificationj-l ]Zend_Service_StrikeIron_SalesUseTaxBasicj&k OZend_Service_StrikeIron_Exceptionj&j OZend_Service_StrikeIron_Decoratorj!i EZend_Service_StrikeIron_Basejh ;Zend_Service_SlideSharej&g OZend_Service_SlideShare_SlideShowj&f OZend_Service_SlideShare_Exceptionje 1Zend_Service_Simpyj$d KZend_Service_Simpy_WatchlistSetj*c WZend_Service_Simpy_WatchlistFilterSetj'b QZend_Service_Simpy_WatchlistFilterj!a EZend_Service_Simpy_Watchlistj` ?Zend_Service_Simpy_TagSetj_ 9Zend_Service_Simpy_Tagj^ AZend_Service_Simpy_NoteSetj] ;Zend_Service_Simpy_Notej\ AZend_Service_Simpy_LinkSetj![ EZend_Service_Simpy_LinkQueryjZ ;Zend_Service_Simpy_LinkjY 9Zend_Service_ReCaptchaj$X KZend_Service_ReCaptcha_Responsej$W KZend_Service_ReCaptcha_MailHidej.V _Zend_Service_ReCaptcha_MailHide_Exceptionj%U MZend_Service_ReCaptcha_ExceptionjT 7Zend_Service_Nirvanixj#S IZend_Service_Nirvanix_Responsej)R UZend_Service_Nirvanix_Namespace_Imfsj)Q UZend_Service_Nirvanix_Namespace_Basej$P KZend_Service_Nirvanix_ExceptionjO 3Zend_Service_Flickrj"N GZend_Service_Flickr_ResultSetjM AZend_Service_Flickr_ResultjL ?Zend_Service_Flickr_ImagejK 9Zend_Service_ExceptionjJ 9Zend_Service_Deliciousj&I OZend_Service_Delicious_SimplePostj$H KZend_Service_Delicious_PostListj G CZend_Service_Delicious_Postj%F MZend_Service_Delicious_Exceptionj E CZend_Service_Audioscrobblerj   X  uBsH|fL`D!{Y=%




s
F
			|	H	 l0T.P pA], c7k1L                                6  oZend_Tool_Project_Context_Zf_ApplicationDirectoryj7 qZend_Tool_Project_Context_Zf_ApplicationConfigFilej/~ aZend_Tool_Project_Context_Zf_ApisDirectoryj.} _Zend_Tool_Project_Context_Zf_ActionMethodj@| Zend_Tool_Project_Context_System_ProjectProvidersDirectoryj8{ sZend_Tool_Project_Context_System_ProjectProfileFilej6z oZend_Tool_Project_Context_System_ProjectDirectoryj)y UZend_Tool_Project_Context_Repositoryj.x _Zend_Tool_Project_Context_Filesystem_Filej3w iZend_Tool_Project_Context_Filesystem_Directoryj2v gZend_Tool_Project_Context_Filesystem_Abstractj(u SZend_Tool_Project_Context_Exceptionj0t cZend_Tool_Framework_System_Provider_Versionj0s cZend_Tool_Framework_System_Provider_Phpinfoj1r eZend_Tool_Framework_System_Provider_Manifestj(q SZend_Tool_Framework_System_Manifestj-p ]Zend_Tool_Framework_System_Action_Deletej-o ]Zend_Tool_Framework_System_Action_Createj!n EZend_Tool_Framework_Registryj+m YZend_Tool_Framework_Registry_Exceptionj+l YZend_Tool_Framework_Provider_Signaturej,k [Zend_Tool_Framework_Provider_Repositoryj+j YZend_Tool_Framework_Provider_Exceptionj*i WZend_Tool_Framework_Provider_Abstractj&h OZend_Tool_Framework_Metadata_Toolj)g UZend_Tool_Framework_Metadata_Dynamicj'f QZend_Tool_Framework_Metadata_Basicj,e [Zend_Tool_Framework_Manifest_Repositoryj+d YZend_Tool_Framework_Manifest_Exceptionj1c eZend_Tool_Framework_Loader_IncludePathLoaderjJb Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIteratorj(a SZend_Tool_Framework_Loader_Abstractj"` GZend_Tool_Framework_Exceptionj(_ SZend_Tool_Framework_Client_ResponsejD^ 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separatorj'] QZend_Tool_Framework_Client_Requestj9\ uZend_Tool_Framework_Client_Interactive_InputResponsej8[ sZend_Tool_Framework_Client_Interactive_InputRequestj8Z sZend_Tool_Framework_Client_Interactive_InputHandlerj)Y UZend_Tool_Framework_Client_Exceptionj'X QZend_Tool_Framework_Client_ConsolejDW 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizerj0V cZend_Tool_Framework_Client_Console_Manifestj2U gZend_Tool_Framework_Client_Console_HelpSystemj6T oZend_Tool_Framework_Client_Console_ArgumentParserj(S SZend_Tool_Framework_Client_Abstractj*R WZend_Tool_Framework_Action_Repositoryj)Q UZend_Tool_Framework_Action_Exceptionj$P KZend_Tool_Framework_Action_BasejO 'Zend_TimeSyncjN 1Zend_TimeSync_SntpjM 9Zend_TimeSync_ProtocoljL /Zend_TimeSync_NtpjK ;Zend_TimeSync_ExceptionjJ +Zend_Text_TablejI 3Zend_Text_Table_RowjH ?Zend_Text_Table_Exceptionj&G OZend_Text_Table_Decorator_Unicodej$F KZend_Text_Table_Decorator_AsciijE 9Zend_Text_Table_ColumnjD 3Zend_Text_MultiBytejC -Zend_Text_FigletjB AZend_Text_Figlet_ExceptionjA 3Zend_Text_Exceptionj)@ UZend_Test_PHPUnit_ControllerTestCasej0? cZend_Test_PHPUnit_Constraint_ResponseHeaderj*> WZend_Test_PHPUnit_Constraint_Redirectj+= YZend_Test_PHPUnit_Constraint_Exceptionj*< WZend_Test_PHPUnit_Constraint_DomQueryj; /Zend_Tag_ItemListj: 'Zend_Tag_Itemj9 1Zend_Tag_Exceptionj8 )Zend_Tag_Cloudj7 =Zend_Tag_Cloud_Exceptionj!6 EZend_Tag_Cloud_Decorator_Tagj%5 MZend_Tag_Cloud_Decorator_HtmlTagj'4 QZend_Tag_Cloud_Decorator_HtmlCloudj'3 QZend_Tag_Cloud_Decorator_Exceptionj#2 IZend_Tag_Cloud_Decorator_Cloudj1 )Zend_Soap_Wsdlj/0 aZend_Soap_Wsdl_Strategy_DefaultComplexTypej&/ OZend_Soap_Wsdl_Strategy_Compositej0. cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequencej/- aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplexj$, KZend_Soap_Wsdl_Strategy_AnyTypej%+ MZend_Soap_Wsdl_Strategy_Abstractj* =Zend_Soap_Wsdl_Exceptionj) -Zend_Soap_Serverj   M  i3\+a+^)J


]
&			c	i4K^$`/CrEsH}V3       !M EZend_Translate_Adapter_XliffjL AZend_Translate_Adapter_TmxjK AZend_Translate_Adapter_TbxjJ ?Zend_Translate_Adapter_QtjI AZend_Translate_Adapter_Inij#H IZend_Translate_Adapter_GettextjG AZend_Translate_Adapter_Csvj!F EZend_Translate_Adapter_Arrayj$E KZend_Tool_Project_Provider_Viewj$D KZend_Tool_Project_Provider_Testj/C aZend_Tool_Project_Provider_ProjectProviderj'B QZend_Tool_Project_Provider_Projectj'A QZend_Tool_Project_Provider_Profilej&@ OZend_Tool_Project_Provider_Modulej%? MZend_Tool_Project_Provider_Modelj(> SZend_Tool_Project_Provider_Manifestj$= KZend_Tool_Project_Provider_Formj)< UZend_Tool_Project_Provider_Exceptionj*; WZend_Tool_Project_Provider_Controllerj&: OZend_Tool_Project_Provider_Actionj(9 SZend_Tool_Project_Provider_Abstractj8 ?Zend_Tool_Project_Profilej'7 QZend_Tool_Project_Profile_Resourcej96 uZend_Tool_Project_Profile_Resource_SearchConstraintsj15 eZend_Tool_Project_Profile_Resource_Containerj=4 }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilterj53 mZend_Tool_Project_Profile_Iterator_ContextFilterj-2 ]Zend_Tool_Project_Profile_FileParser_Xmlj(1 SZend_Tool_Project_Profile_Exceptionj 0 CZend_Tool_Project_Exceptionj</ {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectoryj0. cZend_Tool_Project_Context_Zf_ViewsDirectoryj6- oZend_Tool_Project_Context_Zf_ViewScriptsDirectoryj0, cZend_Tool_Project_Context_Zf_ViewScriptFilej6+ oZend_Tool_Project_Context_Zf_ViewHelpersDirectoryj6* oZend_Tool_Project_Context_Zf_ViewFiltersDirectoryjA) Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectoryj2( gZend_Tool_Project_Context_Zf_UploadsDirectoryj0' cZend_Tool_Project_Context_Zf_TestsDirectoryj7& qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFilej@% Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectoryj1$ eZend_Tool_Project_Context_Zf_TestLibraryFilej6# oZend_Tool_Project_Context_Zf_TestLibraryDirectoryj:" wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFilej:! wZend_Tool_Project_Context_Zf_TestApplicationDirectoryj@  Zend_Tool_Project_Context_Zf_TestApplicationControllerFilejE Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectoryj> Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFilej4 kZend_Tool_Project_Context_Zf_TemporaryDirectoryj3 iZend_Tool_Project_Context_Zf_SessionsDirectoryj8 sZend_Tool_Project_Context_Zf_SearchIndexesDirectoryj< {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectoryj8 sZend_Tool_Project_Context_Zf_PublicScriptsDirectoryj1 eZend_Tool_Project_Context_Zf_PublicIndexFilej7 qZend_Tool_Project_Context_Zf_PublicImagesDirectoryj1 eZend_Tool_Project_Context_Zf_PublicDirectoryj5 mZend_Tool_Project_Context_Zf_ProjectProviderFilej2 gZend_Tool_Project_Context_Zf_ModulesDirectoryj1 eZend_Tool_Project_Context_Zf_ModuleDirectoryj1 eZend_Tool_Project_Context_Zf_ModelsDirectoryj+ YZend_Tool_Project_Context_Zf_ModelFilej/ aZend_Tool_Project_Context_Zf_LogsDirectoryj2 gZend_Tool_Project_Context_Zf_LocalesDirectoryj2 gZend_Tool_Project_Context_Zf_LibraryDirectoryj2 gZend_Tool_Project_Context_Zf_LayoutsDirectoryj. _Zend_Tool_Project_Context_Zf_HtaccessFilej0 cZend_Tool_Project_Context_Zf_FormsDirectoryj*
 WZend_Tool_Project_Context_Zf_FormFilej-	 ]Zend_Tool_Project_Context_Zf_DbTableFilej2 gZend_Tool_Project_Context_Zf_DbTableDirectoryj/ aZend_Tool_Project_Context_Zf_DataDirectoryj6 oZend_Tool_Project_Context_Zf_ControllersDirectoryj0 cZend_Tool_Project_Context_Zf_ControllerFilej2 gZend_Tool_Project_Context_Zf_ConfigsDirectoryj, [Zend_Tool_Project_Context_Zf_ConfigFilej0 cZend_Tool_Project_Context_Zf_CacheDirectoryj/ aZend_Tool_Project_Context_Zf_BootstrapFilej   o iSB#hL1a@\<dD$




f
K
+
						W	1	cA!|X2]2\:fAiK+uI%Q                                                  5< mZend_View_Helper_Placeholder_Container_Exceptionj4; kZend_View_Helper_Placeholder_Container_Abstractj!: EZend_View_Helper_PartialLoopj9 =Zend_View_Helper_Partialj'8 QZend_View_Helper_Partial_Exceptionj'7 QZend_View_Helper_PaginationControlj 6 CZend_View_Helper_Navigationj(5 SZend_View_Helper_Navigation_Sitemapj%4 MZend_View_Helper_Navigation_Menuj&3 OZend_View_Helper_Navigation_Linksj/2 aZend_View_Helper_Navigation_HelperAbstractj,1 [Zend_View_Helper_Navigation_Breadcrumbsj0 ;Zend_View_Helper_Layoutj/ 7Zend_View_Helper_Jsonj". GZend_View_Helper_InlineScriptj#- IZend_View_Helper_HtmlQuicktimej, ?Zend_View_Helper_HtmlPagej + CZend_View_Helper_HtmlObjectj* ?Zend_View_Helper_HtmlListj) AZend_View_Helper_HtmlFlashj!( EZend_View_Helper_HtmlElementj' AZend_View_Helper_HeadTitlej& AZend_View_Helper_HeadStylej % CZend_View_Helper_HeadScriptj$ ?Zend_View_Helper_HeadMetaj# ?Zend_View_Helper_HeadLinkj"" GZend_View_Helper_FormTextareaj! ?Zend_View_Helper_FormTextj   CZend_View_Helper_FormSubmitj  CZend_View_Helper_FormSelectj AZend_View_Helper_FormResetj AZend_View_Helper_FormRadioj" GZend_View_Helper_FormPasswordj ?Zend_View_Helper_FormNotej' QZend_View_Helper_FormMultiCheckboxj AZend_View_Helper_FormLabelj AZend_View_Helper_FormImagej  CZend_View_Helper_FormHiddenj ?Zend_View_Helper_FormFilej  CZend_View_Helper_FormErrorsj! EZend_View_Helper_FormElementj" GZend_View_Helper_FormCheckboxj  CZend_View_Helper_FormButtonj 7Zend_View_Helper_Formj ?Zend_View_Helper_Fieldsetj =Zend_View_Helper_Doctypej! EZend_View_Helper_DeclareVarsj 9Zend_View_Helper_Cyclej ;Zend_View_Helper_Actionj ?Zend_View_Helper_Abstractj
 3Zend_View_Exceptionj	 1Zend_View_Abstractj %Zend_Versionj 'Zend_Validatej AZend_Validate_StringLengthj# IZend_Validate_Sitemap_Priorityj ?Zend_Validate_Sitemap_Locj" GZend_Validate_Sitemap_Lastmodj% MZend_Validate_Sitemap_Changefreqj 3Zend_Validate_Regexj  9Zend_Validate_NotEmptyj 9Zend_Validate_LessThanj~ -Zend_Validate_Ipj} /Zend_Validate_Intj| 7Zend_Validate_InArrayj{ ;Zend_Validate_Identicaljz 1Zend_Validate_Ibanjy 9Zend_Validate_Hostnamejx /Zend_Validate_Hexjw ?Zend_Validate_GreaterThanjv 3Zend_Validate_Floatj!u EZend_Validate_File_WordCountjt ?Zend_Validate_File_Uploadjs ;Zend_Validate_File_Sizejr ;Zend_Validate_File_Sha1j!q EZend_Validate_File_NotExistsj p CZend_Validate_File_MimeTypejo 9Zend_Validate_File_Md5jn AZend_Validate_File_IsImagej$m KZend_Validate_File_IsCompressedj!l EZend_Validate_File_ImageSizejk ;Zend_Validate_File_Hashj!j EZend_Validate_File_FilesSizej!i EZend_Validate_File_Extensionjh ?Zend_Validate_File_Existsj'g QZend_Validate_File_ExcludeMimeTypej(f SZend_Validate_File_ExcludeExtensionje =Zend_Validate_File_Crc32jd =Zend_Validate_File_Countjc ;Zend_Validate_Exceptionjb AZend_Validate_EmailAddressja 5Zend_Validate_Digitsj"` GZend_Validate_Db_RecordExistsj$_ KZend_Validate_Db_NoRecordExistsj^ ?Zend_Validate_Db_Abstractj] 1Zend_Validate_Datej\ 3Zend_Validate_Ccnumj[ 7Zend_Validate_BetweenjZ 7Zend_Validate_BarcodejY AZend_Validate_Barcode_UpcAj X CZend_Validate_Barcode_Ean13jW 3Zend_Validate_AlphajV 3Zend_Validate_AlnumjU 9Zend_Validate_AbstractjT Zend_UrijS 'Zend_Uri_HttpjR 1Zend_Uri_ExceptionjQ )Zend_TranslatejP =Zend_Translate_ExceptionjO 9Zend_Translate_Adapterj!N EZend_Translate_Adapter_XmlTmj   i  _1|cQ'Y4
\A#	kJ%




d
?
					v	U	4	vR7|X5w];# f2uD"pEoFi=   % ?Zend_Auth_Adapter_DbTablek$ -Zend_Applicationk## IZend_Application_Resource_Viewk(" SZend_Application_Resource_Translatek&! OZend_Application_Resource_Sessionk%  MZend_Application_Resource_Routerk/ aZend_Application_Resource_ResourceAbstractk) UZend_Application_Resource_Navigationk& OZend_Application_Resource_Modulesk% MZend_Application_Resource_Localek% MZend_Application_Resource_Layoutk. _Zend_Application_Resource_Frontcontrollerk( SZend_Application_Resource_Exceptionk! EZend_Application_Resource_Dbk& OZend_Application_Module_Bootstrapk' QZend_Application_Module_Autoloaderk AZend_Application_Exceptionk) UZend_Application_Bootstrap_Exceptionk1 eZend_Application_Bootstrap_BootstrapAbstractk) UZend_Application_Bootstrap_Bootstrapk ?Zend_Amf_Value_TraitsInfok- ]Zend_Amf_Value_Messaging_RemotingMessagek* WZend_Amf_Value_Messaging_ErrorMessagek, [Zend_Amf_Value_Messaging_CommandMessagek* WZend_Amf_Value_Messaging_AsyncMessagek- ]Zend_Amf_Value_Messaging_ArrayCollectionk0 cZend_Amf_Value_Messaging_AcknowledgeMessagek-
 ]Zend_Amf_Value_Messaging_AbstractMessagek!	 EZend_Amf_Value_MessageHeaderk AZend_Amf_Value_MessageBodyk =Zend_Amf_Value_ByteArrayk AZend_Amf_Util_BinaryStreamk +Zend_Amf_Serverk ?Zend_Amf_Server_Exceptionk /Zend_Amf_Responsek 9Zend_Amf_Response_Httpk -Zend_Amf_Requestk  7Zend_Amf_Request_Httpk ?Zend_Amf_Parse_TypeLoaderk~ ?Zend_Amf_Parse_Serializerk } CZend_Amf_Parse_OutputStreamk| AZend_Amf_Parse_InputStreamk { CZend_Amf_Parse_Deserializerk#z IZend_Amf_Parse_Amf3_Serializerk%y MZend_Amf_Parse_Amf3_Deserializerk#x IZend_Amf_Parse_Amf0_Serializerk%w MZend_Amf_Parse_Amf0_Deserializerkv 1Zend_Amf_Exceptionku 1Zend_Amf_Constantsk t CZend_Amf_Adobe_Introspectorks Zend_Aclkr 'Zend_Acl_Rolekq 9Zend_Acl_Role_Registryk%p MZend_Acl_Role_Registry_Exceptionko /Zend_Acl_Resourcekn 1Zend_Acl_Exceptionkm /Zend_XmlRpc_Valuejl =Zend_XmlRpc_Value_Structjk =Zend_XmlRpc_Value_Stringjj =Zend_XmlRpc_Value_Scalarji 7Zend_XmlRpc_Value_Niljh ?Zend_XmlRpc_Value_Integerj g CZend_XmlRpc_Value_Exceptionjf =Zend_XmlRpc_Value_Doubleje AZend_XmlRpc_Value_DateTimej!d EZend_XmlRpc_Value_Collectionjc ?Zend_XmlRpc_Value_Booleanjb =Zend_XmlRpc_Value_Base64ja ;Zend_XmlRpc_Value_Arrayj` 1Zend_XmlRpc_Serverj_ ?Zend_XmlRpc_Server_Systemj^ =Zend_XmlRpc_Server_Faultj!] EZend_XmlRpc_Server_Exceptionj\ =Zend_XmlRpc_Server_Cachej[ 5Zend_XmlRpc_ResponsejZ ?Zend_XmlRpc_Response_HttpjY 3Zend_XmlRpc_RequestjX ?Zend_XmlRpc_Request_StdinjW =Zend_XmlRpc_Request_HttpjV /Zend_XmlRpc_FaultjU 7Zend_XmlRpc_ExceptionjT 1Zend_XmlRpc_Clientj#S IZend_XmlRpc_Client_ServerProxyj+R YZend_XmlRpc_Client_ServerIntrospectionj+Q YZend_XmlRpc_Client_IntrospectExceptionj%P MZend_XmlRpc_Client_HttpExceptionj&O OZend_XmlRpc_Client_FaultExceptionj!N EZend_XmlRpc_Client_Exceptionj&M OZend_Wildfire_Protocol_JsonStreamj!L EZend_Wildfire_Plugin_FirePhpj.K _Zend_Wildfire_Plugin_FirePhp_TableMessagej)J UZend_Wildfire_Plugin_FirePhp_MessagejI ;Zend_Wildfire_Exceptionj&H OZend_Wildfire_Channel_HttpHeadersjG Zend_ViewjF -Zend_View_StreamjE 5Zend_View_Helper_UrljD AZend_View_Helper_TranslatejC AZend_View_Helper_ServerUrlj)B UZend_View_Helper_RenderToPlaceholderj!A EZend_View_Helper_Placeholderj*@ WZend_View_Helper_Placeholder_Registryj4? kZend_View_Helper_Placeholder_Registry_Exceptionj+> YZend_View_Helper_Placeholder_Containerj6= oZend_View_Helper_Placeholder_Container_Standalonej   Z  qIxU0qJ ~N!mC"




e
>
				g	C	t[0Bv=rBJlQ*r;nJ.                               )H UZend_Controller_Dispatcher_Interfacek%G MZend_Controller_Action_InterfacekF 5Zend_Captcha_Adapterk!E EZend_Cache_Backend_Interfacek)D UZend_Cache_Backend_ExtendedInterfacek C CZend_Auth_Storage_Interfacek B CZend_Auth_Adapter_Interfacek.A _Zend_Auth_Adapter_Http_Resolver_Interfacek'@ QZend_Application_Resource_Resourcek4? kZend_Application_Bootstrap_ResourceBootstrapperk,> [Zend_Application_Bootstrap_Bootstrapperk= ;Zend_Acl_Role_Interfacek < CZend_Acl_Resource_Interfacek; ?Zend_Acl_Assert_Interfacek#: IZend_Wildfire_Plugin_Interfacej$9 KZend_Wildfire_Channel_Interfacej8 3Zend_View_Interfacej'7 QZend_View_Helper_Navigation_Helperj6 AZend_View_Helper_Interfacej5 ;Zend_Validate_Interfacej34 iZend_Tool_Project_Profile_FileParser_Interfacej:3 wZend_Tool_Project_Context_System_TopLevelRestrictablej52 mZend_Tool_Project_Context_System_NotOverwritablej/1 aZend_Tool_Project_Context_System_Interfacej(0 SZend_Tool_Project_Context_Interfacej+/ YZend_Tool_Framework_Registry_Interfacej2. gZend_Tool_Framework_Registry_EnabledInterfacej-- ]Zend_Tool_Framework_Provider_Pretendablej+, YZend_Tool_Framework_Provider_Interfacej.+ _Zend_Tool_Framework_Provider_Interactablej;* yZend_Tool_Framework_Provider_DocblockManifestInterfacej+) YZend_Tool_Framework_Metadata_Interfacej6( oZend_Tool_Framework_Manifest_ProviderManifestablej6' oZend_Tool_Framework_Manifest_MetadataManifestablej+& YZend_Tool_Framework_Manifest_Interfacej+% YZend_Tool_Framework_Manifest_Indexablej4$ kZend_Tool_Framework_Manifest_ActionManifestablejD# 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interfacej;" yZend_Tool_Framework_Client_Interactive_OutputInterfacej:! wZend_Tool_Framework_Client_Interactive_InputInterfacej)  UZend_Tool_Framework_Action_Interfacej( SZend_Text_Table_Decorator_Interfacej /Zend_Tag_Taggablej& OZend_Soap_Wsdl_Strategy_Interfacej% MZend_Session_Validator_Interfacej' QZend_Session_SaveHandler_Interfacej 7Zend_Server_Interfacej4 kZend_Search_Lucene_Search_Highlighter_Interfacej! EZend_Search_Lucene_Interfacej3 iZend_Search_Lucene_Index_TermsStream_Interfacej ?Zend_Pdf_Filter_Interfacej& OZend_Pdf_ElementFactory_Interfacej, [Zend_Paginator_ScrollingStyle_Interfacej% MZend_Paginator_Adapter_Interfacej$ KZend_Memory_Container_Interfacej) UZend_Mail_Storage_Writable_Interfacej' QZend_Mail_Storage_Folder_Interfacej =Zend_Mail_Part_Interfacej  CZend_Mail_Message_Interfacej! EZend_Log_Formatter_Interfacej ?Zend_Log_Filter_Interfacej' QZend_Loader_PluginLoader_Interfacej%
 MZend_Loader_Autoloader_Interfacej3	 iZend_InfoCard_Xml_Security_Transform_Interfacej( SZend_InfoCard_Xml_KeyInfo_Interfacej( SZend_InfoCard_Xml_Element_Interfacej* WZend_InfoCard_Xml_Assertion_Interfacej- ]Zend_InfoCard_Cipher_Symmetric_Interfacej7 qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interfacej7 qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interfacej+ YZend_InfoCard_Cipher_Pki_Rsa_Interfacej' QZend_InfoCard_Cipher_Pki_Interfacej$  KZend_InfoCard_Adapter_Interfacej' QZend_Http_Client_Adapter_Interfacej~ AZend_Gdata_App_MediaSourcej.} _Zend_Form_Decorator_Marker_File_Interfacej"| GZend_Form_Decorator_Interfacej{ 7Zend_Filter_Interfacej"z GZend_Filter_Encrypt_Interfacej y CZend_Feed_Builder_Interfacej x CZend_Db_Statement_Interfacej)w UZend_Crypt_Math_BigInteger_Interfacej+v YZend_Controller_Router_Route_Interfacej%u MZend_Controller_Router_Interfacej)t UZend_Controller_Dispatcher_Interfacej%s MZend_Controller_Action_Interfacejr 5Zend_Captcha_Adapterj!q EZend_Cache_Backend_Interfacej)p UZend_Cache_Backend_ExtendedInterfacej o CZend_Auth_Storage_Interfacej   f  \=Y7%Z8x`C! jP1




x
P
,
			n	B	nHbG/Oj6{Hj>Y0c9                      ' QZend_Controller_Response_Exceptionk!
 EZend_Controller_Response_Clik&	 OZend_Controller_Response_Abstractk# IZend_Controller_Request_Simplek) UZend_Controller_Request_HttpTestCasek! EZend_Controller_Request_Httpk& OZend_Controller_Request_Exceptionk& OZend_Controller_Request_Apache404k% MZend_Controller_Request_Abstractk( SZend_Controller_Plugin_ErrorHandlerk" GZend_Controller_Plugin_Brokerk'  QZend_Controller_Plugin_ActionStackk$ KZend_Controller_Plugin_Abstractk~ 7Zend_Controller_Frontk} ?Zend_Controller_Exceptionk(| SZend_Controller_Dispatcher_Standardk){ UZend_Controller_Dispatcher_Exceptionk(z SZend_Controller_Dispatcher_Abstractky 9Zend_Controller_Actionk(x SZend_Controller_Action_HelperBrokerk6w oZend_Controller_Action_HelperBroker_PriorityStackk/v aZend_Controller_Action_Helper_ViewRendererk&u OZend_Controller_Action_Helper_Urlk-t ]Zend_Controller_Action_Helper_Redirectork's QZend_Controller_Action_Helper_Jsonk1r eZend_Controller_Action_Helper_FlashMessengerk0q cZend_Controller_Action_Helper_ContextSwitchk<p {Zend_Controller_Action_Helper_AutoCompleteScriptaculousk3o iZend_Controller_Action_Helper_AutoCompleteDojok8n sZend_Controller_Action_Helper_AutoComplete_Abstractk.m _Zend_Controller_Action_Helper_AjaxContextk.l _Zend_Controller_Action_Helper_ActionStackk+k YZend_Controller_Action_Helper_Abstractk%j MZend_Controller_Action_Exceptionki 3Zend_Console_Getoptk"h GZend_Console_Getopt_Exceptionkg #Zend_Configkf +Zend_Config_Xmlke 1Zend_Config_Writerkd 9Zend_Config_Writer_Xmlkc 9Zend_Config_Writer_Inikb =Zend_Config_Writer_Arrayka +Zend_Config_Inik` 7Zend_Config_Exceptionk$_ KZend_CodeGenerator_Php_Propertyk%^ MZend_CodeGenerator_Php_Parameterk"] GZend_CodeGenerator_Php_Methodk,\ [Zend_CodeGenerator_Php_Member_Containerk+[ YZend_CodeGenerator_Php_Member_Abstractk Z CZend_CodeGenerator_Php_Filek%Y MZend_CodeGenerator_Php_Exceptionk$X KZend_CodeGenerator_Php_Docblockk(W SZend_CodeGenerator_Php_Docblock_Tagk/V aZend_CodeGenerator_Php_Docblock_Tag_Returnk.U _Zend_CodeGenerator_Php_Docblock_Tag_Paramk0T cZend_CodeGenerator_Php_Docblock_Tag_Licensek!S EZend_CodeGenerator_Php_Classk R CZend_CodeGenerator_Php_Bodyk$Q KZend_CodeGenerator_Php_Abstractk!P EZend_CodeGenerator_Exceptionk O CZend_CodeGenerator_AbstractkN /Zend_Captcha_WordkM 9Zend_Captcha_ReCaptchakL 1Zend_Captcha_ImagekK 3Zend_Captcha_FigletkJ 9Zend_Captcha_ExceptionkI /Zend_Captcha_DumbkH /Zend_Captcha_BasekG !Zend_CachekF =Zend_Cache_Frontend_PagekE AZend_Cache_Frontend_Outputk!D EZend_Cache_Frontend_FunctionkC =Zend_Cache_Frontend_FilekB ?Zend_Cache_Frontend_ClasskA 5Zend_Cache_Exceptionk@ +Zend_Cache_Corek? 1Zend_Cache_Backendk"> GZend_Cache_Backend_ZendServerk(= SZend_Cache_Backend_ZendServer_ShMemk'< QZend_Cache_Backend_ZendServer_Diskk$; KZend_Cache_Backend_ZendPlatformk: ?Zend_Cache_Backend_Xcachek!9 EZend_Cache_Backend_TwoLevelsk8 ;Zend_Cache_Backend_Testk7 ?Zend_Cache_Backend_Sqlitek!6 EZend_Cache_Backend_Memcachedk5 ;Zend_Cache_Backend_Filek4 9Zend_Cache_Backend_Apck3 Zend_Authk2 ?Zend_Auth_Storage_Sessionk$1 KZend_Auth_Storage_NonPersistentk 0 CZend_Auth_Storage_Exceptionk/ -Zend_Auth_Resultk. 3Zend_Auth_Exceptionk- =Zend_Auth_Adapter_OpenIdk, 9Zend_Auth_Adapter_Ldapk+ AZend_Auth_Adapter_InfoCardk* 9Zend_Auth_Adapter_Httpk)) UZend_Auth_Adapter_Http_Resolver_Filek.( _Zend_Auth_Adapter_Http_Resolver_Exceptionk ' CZend_Auth_Adapter_Exceptionk& =Zend_Auth_Adapter_Digestk   l [4V*zb8dB'ucB 



m
N
)
				}	]	;	mL5T3xU1iSC0i<S%\1]0                                   )w UZend_Dojo_Form_Element_NumberTextBoxk)v UZend_Dojo_Form_Element_NumberSpinnerk,u [Zend_Dojo_Form_Element_HorizontalSliderk+t YZend_Dojo_Form_Element_FilteringSelectk"s GZend_Dojo_Form_Element_Editork&r OZend_Dojo_Form_Element_DijitMultik!q EZend_Dojo_Form_Element_Dijitk'p QZend_Dojo_Form_Element_DateTextBoxk+o YZend_Dojo_Form_Element_CurrencyTextBoxk$n KZend_Dojo_Form_Element_ComboBoxk$m KZend_Dojo_Form_Element_CheckBoxk"l GZend_Dojo_Form_Element_Buttonk k CZend_Dojo_Form_DisplayGroupk*j WZend_Dojo_Form_Decorator_TabContainerk,i [Zend_Dojo_Form_Decorator_StackContainerk,h [Zend_Dojo_Form_Decorator_SplitContainerk'g QZend_Dojo_Form_Decorator_DijitFormk*f WZend_Dojo_Form_Decorator_DijitElementk,e [Zend_Dojo_Form_Decorator_DijitContainerk)d UZend_Dojo_Form_Decorator_ContentPanek-c ]Zend_Dojo_Form_Decorator_BorderContainerk+b YZend_Dojo_Form_Decorator_AccordionPanek0a cZend_Dojo_Form_Decorator_AccordionContainerk` 3Zend_Dojo_Exceptionk_ )Zend_Dojo_Datak^ !Zend_Debugk] Zend_Dbk\ 'Zend_Db_Tablek[ 5Zend_Db_Table_Selectk#Z IZend_Db_Table_Select_ExceptionkY 5Zend_Db_Table_Rowsetk#X IZend_Db_Table_Rowset_Exceptionk"W GZend_Db_Table_Rowset_AbstractkV /Zend_Db_Table_Rowk U CZend_Db_Table_Row_ExceptionkT AZend_Db_Table_Row_AbstractkS ;Zend_Db_Table_ExceptionkR 9Zend_Db_Table_AbstractkQ /Zend_Db_StatementkP 7Zend_Db_Statement_PdokO ?Zend_Db_Statement_Pdo_OcikN ?Zend_Db_Statement_Pdo_IbmkM =Zend_Db_Statement_Oraclek'L QZend_Db_Statement_Oracle_ExceptionkK =Zend_Db_Statement_Mysqlik'J QZend_Db_Statement_Mysqli_Exceptionk I CZend_Db_Statement_ExceptionkH 7Zend_Db_Statement_Db2k$G KZend_Db_Statement_Db2_ExceptionkF )Zend_Db_SelectkE =Zend_Db_Select_ExceptionkD -Zend_Db_ProfilerkC 9Zend_Db_Profiler_QuerykB =Zend_Db_Profiler_FirebugkA AZend_Db_Profiler_Exceptionk@ %Zend_Db_Exprk? /Zend_Db_Exceptionk> AZend_Db_Adapter_Pdo_Sqlitek= ?Zend_Db_Adapter_Pdo_Pgsqlk< ;Zend_Db_Adapter_Pdo_Ocik; ?Zend_Db_Adapter_Pdo_Mysqlk: ?Zend_Db_Adapter_Pdo_Mssqlk9 ;Zend_Db_Adapter_Pdo_Ibmk 8 CZend_Db_Adapter_Pdo_Ibm_Idsk 7 CZend_Db_Adapter_Pdo_Ibm_Db2k!6 EZend_Db_Adapter_Pdo_Abstractk5 9Zend_Db_Adapter_Oraclek%4 MZend_Db_Adapter_Oracle_Exceptionk3 9Zend_Db_Adapter_Mysqlik%2 MZend_Db_Adapter_Mysqli_Exceptionk1 ?Zend_Db_Adapter_Exceptionk0 3Zend_Db_Adapter_Db2k"/ GZend_Db_Adapter_Db2_Exceptionk. =Zend_Db_Adapter_Abstractk- Zend_Datek, 3Zend_Date_Exceptionk+ 5Zend_Date_DateObjectk* -Zend_Date_Citiesk) 'Zend_Currencyk( ;Zend_Currency_Exceptionk' !Zend_Cryptk& )Zend_Crypt_Rsak% 1Zend_Crypt_Rsa_Keyk$ ?Zend_Crypt_Rsa_Key_Publick# AZend_Crypt_Rsa_Key_Privatek" +Zend_Crypt_Mathk! ?Zend_Crypt_Math_Exceptionk  AZend_Crypt_Math_BigIntegerk# IZend_Crypt_Math_BigInteger_Gmpk) UZend_Crypt_Math_BigInteger_Exceptionk& OZend_Crypt_Math_BigInteger_Bcmathk +Zend_Crypt_Hmack ?Zend_Crypt_Hmac_Exceptionk 5Zend_Crypt_Exceptionk =Zend_Crypt_DiffieHellmank' QZend_Crypt_DiffieHellman_Exceptionk! EZend_Controller_Router_Routek( SZend_Controller_Router_Route_Statick' QZend_Controller_Router_Route_Regexk( SZend_Controller_Router_Route_Modulek* WZend_Controller_Router_Route_Hostnamek' QZend_Controller_Router_Route_Chaink* WZend_Controller_Router_Route_Abstractk# IZend_Controller_Router_Rewritek% MZend_Controller_Router_Exceptionk$ KZend_Controller_Router_Abstractk* WZend_Controller_Response_HttpTestCasek" GZend_Controller_Response_Httpk   j xR&{M.kFvL(X5



V
)
				T	-	nS2pH'}gU)pS7bAj@vT6^4                                            (a SZend_Filter_Word_Separator_Abstractk&` OZend_Filter_Word_DashToUnderscorek%_ MZend_Filter_Word_DashToSeparatork%^ MZend_Filter_Word_DashToCamelCasek+] YZend_Filter_Word_CamelCaseToUnderscorek*\ WZend_Filter_Word_CamelCaseToSeparatork%[ MZend_Filter_Word_CamelCaseToDashkZ 7Zend_Filter_StripTagskY ?Zend_Filter_StripNewlineskX 9Zend_Filter_StringTrimkW ?Zend_Filter_StringToUpperkV ?Zend_Filter_StringToLowerkU 5Zend_Filter_RealPathkT ;Zend_Filter_PregReplacek&S OZend_Filter_NormalizedToLocalizedk&R OZend_Filter_LocalizedToNormalizedkQ +Zend_Filter_IntkP /Zend_Filter_InputkO 7Zend_Filter_InflectorkN =Zend_Filter_HtmlEntitieskM AZend_Filter_File_UpperCasekL ;Zend_Filter_File_RenamekK AZend_Filter_File_LowerCasekJ =Zend_Filter_File_EncryptkI =Zend_Filter_File_DecryptkH 7Zend_Filter_ExceptionkG 3Zend_Filter_Encryptk F CZend_Filter_Encrypt_OpensslkE AZend_Filter_Encrypt_McryptkD +Zend_Filter_DirkC 1Zend_Filter_DigitskB 3Zend_Filter_DecryptkA 5Zend_Filter_Callbackk@ 5Zend_Filter_BaseNamek? /Zend_Filter_Alphak> /Zend_Filter_Alnumk= 1Zend_File_Transferk!< EZend_File_Transfer_Exceptionk$; KZend_File_Transfer_Adapter_Httpk(: SZend_File_Transfer_Adapter_Abstractk9 Zend_Feedk8 'Zend_Feed_Rssk7 3Zend_Feed_Exceptionk6 3Zend_Feed_Entry_Rssk5 5Zend_Feed_Entry_Atomk4 =Zend_Feed_Entry_Abstractk3 /Zend_Feed_Elementk2 /Zend_Feed_Builderk1 =Zend_Feed_Builder_Headerk$0 KZend_Feed_Builder_Header_Itunesk / CZend_Feed_Builder_Exceptionk. ;Zend_Feed_Builder_Entryk- )Zend_Feed_Atomk, 1Zend_Feed_Abstractk+ )Zend_Exceptionk* )Zend_Dom_Queryk) 7Zend_Dom_Query_Resultk( =Zend_Dom_Query_Css2Xpathk' 1Zend_Dom_Exceptionk& Zend_Dojok)% UZend_Dojo_View_Helper_VerticalSliderk,$ [Zend_Dojo_View_Helper_ValidationTextBoxk&# OZend_Dojo_View_Helper_TimeTextBoxk"" GZend_Dojo_View_Helper_TextBoxk#! IZend_Dojo_View_Helper_Textareak'  QZend_Dojo_View_Helper_TabContainerk' QZend_Dojo_View_Helper_SubmitButtonk) UZend_Dojo_View_Helper_StackContainerk) UZend_Dojo_View_Helper_SplitContainerk! EZend_Dojo_View_Helper_Sliderk) UZend_Dojo_View_Helper_SimpleTextareak& OZend_Dojo_View_Helper_RadioButtonk* WZend_Dojo_View_Helper_PasswordTextBoxk( SZend_Dojo_View_Helper_NumberTextBoxk( SZend_Dojo_View_Helper_NumberSpinnerk+ YZend_Dojo_View_Helper_HorizontalSliderk AZend_Dojo_View_Helper_Formk* WZend_Dojo_View_Helper_FilteringSelectk! EZend_Dojo_View_Helper_Editork AZend_Dojo_View_Helper_Dojok) UZend_Dojo_View_Helper_Dojo_Containerk) UZend_Dojo_View_Helper_DijitContainerk  CZend_Dojo_View_Helper_Dijitk& OZend_Dojo_View_Helper_DateTextBoxk& OZend_Dojo_View_Helper_CustomDijitk* WZend_Dojo_View_Helper_CurrencyTextBoxk& OZend_Dojo_View_Helper_ContentPanek#
 IZend_Dojo_View_Helper_ComboBoxk#	 IZend_Dojo_View_Helper_CheckBoxk! EZend_Dojo_View_Helper_Buttonk* WZend_Dojo_View_Helper_BorderContainerk( SZend_Dojo_View_Helper_AccordionPanek- ]Zend_Dojo_View_Helper_AccordionContainerk =Zend_Dojo_View_Exceptionk )Zend_Dojo_Formk 9Zend_Dojo_Form_SubFormk* WZend_Dojo_Form_Element_VerticalSliderk-  ]Zend_Dojo_Form_Element_ValidationTextBoxk' QZend_Dojo_Form_Element_TimeTextBoxk#~ IZend_Dojo_Form_Element_TextBoxk$} KZend_Dojo_Form_Element_Textareak(| SZend_Dojo_Form_Element_SubmitButtonk"{ GZend_Dojo_Form_Element_Sliderk*z WZend_Dojo_Form_Element_SimpleTextareak'y QZend_Dojo_Form_Element_RadioButtonk+x YZend_Dojo_Form_Element_PasswordTextBoxk   g  {L"lH iHd@mI*




\
9
					u	U	;		]-tGT.
pE|U,{V&h@)Z-                                       -H ]Zend_Gdata_Books_Extension_Embeddabilityk)G UZend_Gdata_Books_Extension_BooksLinkk-F ]Zend_Gdata_Books_Extension_BooksCategoryk.E _Zend_Gdata_Books_Extension_AnnotationLinkk$D KZend_Gdata_Books_CollectionFeedk%C MZend_Gdata_Books_CollectionEntrykB 1Zend_Gdata_AuthSubkA )Zend_Gdata_Appk$@ KZend_Gdata_App_VersionExceptionk? 3Zend_Gdata_App_Utilk#> IZend_Gdata_App_MediaFileSourcek= ?Zend_Gdata_App_MediaEntryk2< gZend_Gdata_App_LoggingHttpClientAdapterSocketk; AZend_Gdata_App_IOExceptionk,: [Zend_Gdata_App_InvalidArgumentExceptionk!9 EZend_Gdata_App_HttpExceptionk$8 KZend_Gdata_App_FeedSourceParentk#7 IZend_Gdata_App_FeedEntryParentk6 3Zend_Gdata_App_Feedk5 =Zend_Gdata_App_Extensionk!4 EZend_Gdata_App_Extension_Urik%3 MZend_Gdata_App_Extension_Updatedk#2 IZend_Gdata_App_Extension_Titlek"1 GZend_Gdata_App_Extension_Textk%0 MZend_Gdata_App_Extension_Summaryk&/ OZend_Gdata_App_Extension_Subtitlek$. KZend_Gdata_App_Extension_Sourcek$- KZend_Gdata_App_Extension_Rightsk', QZend_Gdata_App_Extension_Publishedk$+ KZend_Gdata_App_Extension_Personk"* GZend_Gdata_App_Extension_Namek") GZend_Gdata_App_Extension_Logok"( GZend_Gdata_App_Extension_Linkk ' CZend_Gdata_App_Extension_Idk"& GZend_Gdata_App_Extension_Iconk'% QZend_Gdata_App_Extension_Generatork#$ IZend_Gdata_App_Extension_Emailk%# MZend_Gdata_App_Extension_Elementk$" KZend_Gdata_App_Extension_Editedk#! IZend_Gdata_App_Extension_Draftk%  MZend_Gdata_App_Extension_Controlk) UZend_Gdata_App_Extension_Contributork% MZend_Gdata_App_Extension_Contentk& OZend_Gdata_App_Extension_Categoryk$ KZend_Gdata_App_Extension_Authork =Zend_Gdata_App_Exceptionk 5Zend_Gdata_App_Entryk, [Zend_Gdata_App_CaptchaRequiredExceptionk# IZend_Gdata_App_BaseMediaSourcek 3Zend_Gdata_App_Basek* WZend_Gdata_App_BadMethodCallExceptionk! EZend_Gdata_App_AuthExceptionk Zend_Formk /Zend_Form_SubFormk 3Zend_Form_Exceptionk /Zend_Form_Elementk ;Zend_Form_Element_Xhtmlk AZend_Form_Element_Textareak 9Zend_Form_Element_Textk =Zend_Form_Element_Submitk =Zend_Form_Element_Selectk ;Zend_Form_Element_Resetk
 ;Zend_Form_Element_Radiok	 AZend_Form_Element_Passwordk" GZend_Form_Element_Multiselectk$ KZend_Form_Element_MultiCheckboxk ;Zend_Form_Element_Multik ;Zend_Form_Element_Imagek =Zend_Form_Element_Hiddenk 9Zend_Form_Element_Hashk 9Zend_Form_Element_Filek  CZend_Form_Element_Exceptionk  AZend_Form_Element_Checkboxk ?Zend_Form_Element_Captchak~ =Zend_Form_Element_Buttonk} 9Zend_Form_DisplayGroupk#| IZend_Form_Decorator_ViewScriptk#{ IZend_Form_Decorator_ViewHelperk z CZend_Form_Decorator_Tooltipk(y SZend_Form_Decorator_PrepareElementskx ?Zend_Form_Decorator_Labelkw ?Zend_Form_Decorator_Imagek v CZend_Form_Decorator_HtmlTagk#u IZend_Form_Decorator_FormErrorsk%t MZend_Form_Decorator_FormElementsks =Zend_Form_Decorator_Formkr =Zend_Form_Decorator_Filek!q EZend_Form_Decorator_Fieldsetk"p GZend_Form_Decorator_Exceptionko AZend_Form_Decorator_Errorsk$n KZend_Form_Decorator_DtDdWrapperk$m KZend_Form_Decorator_Descriptionk l CZend_Form_Decorator_Captchak%k MZend_Form_Decorator_Captcha_Wordk!j EZend_Form_Decorator_Callbackk!i EZend_Form_Decorator_Abstractkh #Zend_Filterk+g YZend_Filter_Word_UnderscoreToSeparatork&f OZend_Filter_Word_UnderscoreToDashk+e YZend_Filter_Word_UnderscoreToCamelCasek*d WZend_Filter_Word_SeparatorToSeparatork%c MZend_Filter_Word_SeparatorToDashk*b WZend_Filter_Word_SeparatorToCamelCasek   _  {JmG j;oI$x`0


m
<

			}	_	F	(|T$aD, `2rG#zR0h@b9oH)                        ' AZend_Gdata_Gapps_UserEntryk&& OZend_Gdata_Gapps_ServiceExceptionk% 9Zend_Gdata_Gapps_Queryk#$ IZend_Gdata_Gapps_NicknameQueryk"# GZend_Gdata_Gapps_NicknameFeedk#" IZend_Gdata_Gapps_NicknameEntryk%! MZend_Gdata_Gapps_Extension_Quotak(  SZend_Gdata_Gapps_Extension_Nicknamek$ KZend_Gdata_Gapps_Extension_Namek% MZend_Gdata_Gapps_Extension_Logink) UZend_Gdata_Gapps_Extension_EmailListk 9Zend_Gdata_Gapps_Errork- ]Zend_Gdata_Gapps_EmailListRecipientQueryk, [Zend_Gdata_Gapps_EmailListRecipientFeedk- ]Zend_Gdata_Gapps_EmailListRecipientEntryk$ KZend_Gdata_Gapps_EmailListQueryk# IZend_Gdata_Gapps_EmailListFeedk$ KZend_Gdata_Gapps_EmailListEntryk +Zend_Gdata_Feedk 5Zend_Gdata_Extensionk =Zend_Gdata_Extension_Whok AZend_Gdata_Extension_Wherek ?Zend_Gdata_Extension_Whenk$ KZend_Gdata_Extension_Visibilityk& OZend_Gdata_Extension_Transparencyk" GZend_Gdata_Extension_Reminderk- ]Zend_Gdata_Extension_RecurrenceExceptionk$ KZend_Gdata_Extension_Recurrencek  CZend_Gdata_Extension_Ratingk'
 QZend_Gdata_Extension_OriginalEventk0	 cZend_Gdata_Extension_OpenSearchTotalResultsk. _Zend_Gdata_Extension_OpenSearchStartIndexk0 cZend_Gdata_Extension_OpenSearchItemsPerPagek" GZend_Gdata_Extension_FeedLinkk* WZend_Gdata_Extension_ExtendedPropertyk% MZend_Gdata_Extension_EventStatusk# IZend_Gdata_Extension_EntryLinkk" GZend_Gdata_Extension_Commentsk& OZend_Gdata_Extension_AttendeeTypek(  SZend_Gdata_Extension_AttendeeStatusk +Zend_Gdata_Exifk~ 5Zend_Gdata_Exif_Feedk#} IZend_Gdata_Exif_Extension_Timek#| IZend_Gdata_Exif_Extension_Tagsk${ KZend_Gdata_Exif_Extension_Modelk#z IZend_Gdata_Exif_Extension_Makek"y GZend_Gdata_Exif_Extension_Isok,x [Zend_Gdata_Exif_Extension_ImageUniqueIdk$w KZend_Gdata_Exif_Extension_FStopk*v WZend_Gdata_Exif_Extension_FocalLengthk$u KZend_Gdata_Exif_Extension_Flashk't QZend_Gdata_Exif_Extension_Exposurek's QZend_Gdata_Exif_Extension_Distancekr 7Zend_Gdata_Exif_Entrykq -Zend_Gdata_Entrykp 7Zend_Gdata_DublinCorek*o WZend_Gdata_DublinCore_Extension_Titlek,n [Zend_Gdata_DublinCore_Extension_Subjectk+m YZend_Gdata_DublinCore_Extension_Rightsk.l _Zend_Gdata_DublinCore_Extension_Publisherk-k ]Zend_Gdata_DublinCore_Extension_Languagek/j aZend_Gdata_DublinCore_Extension_Identifierk+i YZend_Gdata_DublinCore_Extension_Formatk0h cZend_Gdata_DublinCore_Extension_Descriptionk)g UZend_Gdata_DublinCore_Extension_Datek,f [Zend_Gdata_DublinCore_Extension_Creatorke +Zend_Gdata_Docskd 7Zend_Gdata_Docs_Queryk%c MZend_Gdata_Docs_DocumentListFeedk&b OZend_Gdata_Docs_DocumentListEntryka 9Zend_Gdata_ClientLogink` 3Zend_Gdata_Calendark!_ EZend_Gdata_Calendar_ListFeedk"^ GZend_Gdata_Calendar_ListEntryk-] ]Zend_Gdata_Calendar_Extension_WebContentk+\ YZend_Gdata_Calendar_Extension_Timezonek9[ uZend_Gdata_Calendar_Extension_SendEventNotificationsk+Z YZend_Gdata_Calendar_Extension_Selectedk+Y YZend_Gdata_Calendar_Extension_QuickAddk'X QZend_Gdata_Calendar_Extension_Linkk)W UZend_Gdata_Calendar_Extension_Hiddenk(V SZend_Gdata_Calendar_Extension_Colork.U _Zend_Gdata_Calendar_Extension_AccessLevelk#T IZend_Gdata_Calendar_EventQueryk"S GZend_Gdata_Calendar_EventFeedk#R IZend_Gdata_Calendar_EventEntrykQ -Zend_Gdata_Booksk!P EZend_Gdata_Books_VolumeQueryk O CZend_Gdata_Books_VolumeFeedk!N EZend_Gdata_Books_VolumeEntryk+M YZend_Gdata_Books_Extension_Viewabilityk-L ]Zend_Gdata_Books_Extension_ThumbnailLinkk&K OZend_Gdata_Books_Extension_Reviewk+J YZend_Gdata_Books_Extension_PreviewLinkk(I SZend_Gdata_Books_Extension_InfoLinkk   `  R4b<#kT,jP#d4


q
D
				T	"uQ,S(oBQ%kBf<d@&b3         - ]Zend_Gdata_Spreadsheets_Extension_Customk/ aZend_Gdata_Spreadsheets_Extension_ColCountk+ YZend_Gdata_Spreadsheets_Extension_Cellk* WZend_Gdata_Spreadsheets_DocumentQueryk& OZend_Gdata_Spreadsheets_CellQueryk% MZend_Gdata_Spreadsheets_CellFeedk& OZend_Gdata_Spreadsheets_CellEntryk  -Zend_Gdata_Queryk /Zend_Gdata_Photosk ~ CZend_Gdata_Photos_UserQueryk} AZend_Gdata_Photos_UserFeedk | CZend_Gdata_Photos_UserEntryk{ AZend_Gdata_Photos_TagEntryk!z EZend_Gdata_Photos_PhotoQueryk y CZend_Gdata_Photos_PhotoFeedk!x EZend_Gdata_Photos_PhotoEntryk&w OZend_Gdata_Photos_Extension_Widthk'v QZend_Gdata_Photos_Extension_Weightk(u SZend_Gdata_Photos_Extension_Versionk%t MZend_Gdata_Photos_Extension_Userk*s WZend_Gdata_Photos_Extension_Timestampk*r WZend_Gdata_Photos_Extension_Thumbnailk%q MZend_Gdata_Photos_Extension_Sizek)p UZend_Gdata_Photos_Extension_Rotationk+o YZend_Gdata_Photos_Extension_QuotaLimitk-n ]Zend_Gdata_Photos_Extension_QuotaCurrentk)m UZend_Gdata_Photos_Extension_Positionk(l SZend_Gdata_Photos_Extension_PhotoIdk3k iZend_Gdata_Photos_Extension_NumPhotosRemainingk*j WZend_Gdata_Photos_Extension_NumPhotosk)i UZend_Gdata_Photos_Extension_Nicknamek%h MZend_Gdata_Photos_Extension_Namek2g gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumk)f UZend_Gdata_Photos_Extension_Locationk#e IZend_Gdata_Photos_Extension_Idk'd QZend_Gdata_Photos_Extension_Heightk2c gZend_Gdata_Photos_Extension_CommentingEnabledk-b ]Zend_Gdata_Photos_Extension_CommentCountk'a QZend_Gdata_Photos_Extension_Clientk)` UZend_Gdata_Photos_Extension_Checksumk*_ WZend_Gdata_Photos_Extension_BytesUsedk(^ SZend_Gdata_Photos_Extension_AlbumIdk'] QZend_Gdata_Photos_Extension_Accessk#\ IZend_Gdata_Photos_CommentEntryk![ EZend_Gdata_Photos_AlbumQueryk Z CZend_Gdata_Photos_AlbumFeedk!Y EZend_Gdata_Photos_AlbumEntrykX AZend_Gdata_MediaMimeStreamkW -Zend_Gdata_MediakV 7Zend_Gdata_Media_Feedk*U WZend_Gdata_Media_Extension_MediaTitlek.T _Zend_Gdata_Media_Extension_MediaThumbnailk)S UZend_Gdata_Media_Extension_MediaTextk0R cZend_Gdata_Media_Extension_MediaRestrictionk+Q YZend_Gdata_Media_Extension_MediaRatingk+P YZend_Gdata_Media_Extension_MediaPlayerk-O ]Zend_Gdata_Media_Extension_MediaKeywordsk)N UZend_Gdata_Media_Extension_MediaHashk*M WZend_Gdata_Media_Extension_MediaGroupk0L cZend_Gdata_Media_Extension_MediaDescriptionk+K YZend_Gdata_Media_Extension_MediaCreditk.J _Zend_Gdata_Media_Extension_MediaCopyrightk,I [Zend_Gdata_Media_Extension_MediaContentk-H ]Zend_Gdata_Media_Extension_MediaCategorykG 9Zend_Gdata_Media_EntrykF AZend_Gdata_Kind_EventEntrykE 7Zend_Gdata_HttpClientk*D WZend_Gdata_HttpAdapterStreamingSocketk)C UZend_Gdata_HttpAdapterStreamingProxykB /Zend_Gdata_HealthkA ;Zend_Gdata_Health_Queryk&@ OZend_Gdata_Health_ProfileListFeedk'? QZend_Gdata_Health_ProfileListEntryk"> GZend_Gdata_Health_ProfileFeedk#= IZend_Gdata_Health_ProfileEntryk$< KZend_Gdata_Health_Extension_Ccrk; )Zend_Gdata_Geok: 3Zend_Gdata_Geo_Feedk$9 KZend_Gdata_Geo_Extension_GmlPosk&8 OZend_Gdata_Geo_Extension_GmlPointk)7 UZend_Gdata_Geo_Extension_GeoRssWherek6 5Zend_Gdata_Geo_Entryk5 -Zend_Gdata_Gbasek"4 GZend_Gdata_Gbase_SnippetQueryk!3 EZend_Gdata_Gbase_SnippetFeedk"2 GZend_Gdata_Gbase_SnippetEntryk1 9Zend_Gdata_Gbase_Queryk0 AZend_Gdata_Gbase_ItemQueryk/ ?Zend_Gdata_Gbase_ItemFeedk. AZend_Gdata_Gbase_ItemEntryk- 7Zend_Gdata_Gbase_Feedk-, ]Zend_Gdata_Gbase_Extension_BaseAttributek+ 9Zend_Gdata_Gbase_Entryk* -Zend_Gdata_Gappsk) AZend_Gdata_Gapps_UserQueryk( ?Zend_Gdata_Gapps_UserFeedk   [  zPrI!V-yHd6


{
K
				f	6	wMe5	U/
]0`:lF#
xP)Y                                          b 5Zend_InfoCard_Claimska 5Zend_InfoCard_Cipherk5` mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbck5_ mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbck4^ kZend_InfoCard_Cipher_Symmetric_Adapter_Abstractk)] UZend_InfoCard_Cipher_Pki_Adapter_Rsak.\ _Zend_InfoCard_Cipher_Pki_Adapter_Abstractk#[ IZend_InfoCard_Cipher_Exceptionk$Z KZend_InfoCard_Adapter_Exceptionk"Y GZend_InfoCard_Adapter_DefaultkX 1Zend_Http_ResponsekW 3Zend_Http_ExceptionkV 3Zend_Http_CookieJarkU -Zend_Http_CookiekT -Zend_Http_ClientkS AZend_Http_Client_Exceptionk"R GZend_Http_Client_Adapter_Testk$Q KZend_Http_Client_Adapter_Socketk#P IZend_Http_Client_Adapter_Proxyk'O QZend_Http_Client_Adapter_Exceptionk"N GZend_Http_Client_Adapter_CurlkM !Zend_GdatakL 1Zend_Gdata_YouTubek"K GZend_Gdata_YouTube_VideoQueryk!J EZend_Gdata_YouTube_VideoFeedk"I GZend_Gdata_YouTube_VideoEntryk(H SZend_Gdata_YouTube_UserProfileEntryk(G SZend_Gdata_YouTube_SubscriptionFeedk)F UZend_Gdata_YouTube_SubscriptionEntryk)E UZend_Gdata_YouTube_PlaylistVideoFeedk*D WZend_Gdata_YouTube_PlaylistVideoEntryk(C SZend_Gdata_YouTube_PlaylistListFeedk)B UZend_Gdata_YouTube_PlaylistListEntryk"A GZend_Gdata_YouTube_MediaEntryk!@ EZend_Gdata_YouTube_InboxFeedk"? GZend_Gdata_YouTube_InboxEntryk)> UZend_Gdata_YouTube_Extension_VideoIdk*= WZend_Gdata_YouTube_Extension_Usernamek*< WZend_Gdata_YouTube_Extension_Uploadedk'; QZend_Gdata_YouTube_Extension_Tokenk(: SZend_Gdata_YouTube_Extension_Statusk,9 [Zend_Gdata_YouTube_Extension_Statisticsk'8 QZend_Gdata_YouTube_Extension_Statek(7 SZend_Gdata_YouTube_Extension_Schoolk-6 ]Zend_Gdata_YouTube_Extension_ReleaseDatek.5 _Zend_Gdata_YouTube_Extension_Relationshipk*4 WZend_Gdata_YouTube_Extension_Recordedk&3 OZend_Gdata_YouTube_Extension_Racyk-2 ]Zend_Gdata_YouTube_Extension_QueryStringk)1 UZend_Gdata_YouTube_Extension_Privatek*0 WZend_Gdata_YouTube_Extension_Positionk// aZend_Gdata_YouTube_Extension_PlaylistTitlek,. [Zend_Gdata_YouTube_Extension_PlaylistIdk,- [Zend_Gdata_YouTube_Extension_Occupationk), UZend_Gdata_YouTube_Extension_NoEmbedk'+ QZend_Gdata_YouTube_Extension_Musick(* SZend_Gdata_YouTube_Extension_Moviesk-) ]Zend_Gdata_YouTube_Extension_MediaRatingk,( [Zend_Gdata_YouTube_Extension_MediaGroupk-' ]Zend_Gdata_YouTube_Extension_MediaCreditk.& _Zend_Gdata_YouTube_Extension_MediaContentk*% WZend_Gdata_YouTube_Extension_Locationk&$ OZend_Gdata_YouTube_Extension_Linkk*# WZend_Gdata_YouTube_Extension_LastNamek*" WZend_Gdata_YouTube_Extension_Hometownk)! UZend_Gdata_YouTube_Extension_Hobbiesk(  SZend_Gdata_YouTube_Extension_Genderk+ YZend_Gdata_YouTube_Extension_FirstNamek* WZend_Gdata_YouTube_Extension_Durationk- ]Zend_Gdata_YouTube_Extension_Descriptionk+ YZend_Gdata_YouTube_Extension_CountHintk) UZend_Gdata_YouTube_Extension_Controlk) UZend_Gdata_YouTube_Extension_Companyk' QZend_Gdata_YouTube_Extension_Booksk% MZend_Gdata_YouTube_Extension_Agek) UZend_Gdata_YouTube_Extension_AboutMek# IZend_Gdata_YouTube_ContactFeedk$ KZend_Gdata_YouTube_ContactEntryk# IZend_Gdata_YouTube_CommentFeedk$ KZend_Gdata_YouTube_CommentEntryk$ KZend_Gdata_YouTube_ActivityFeedk% MZend_Gdata_YouTube_ActivityEntryk ;Zend_Gdata_Spreadsheetsk* WZend_Gdata_Spreadsheets_WorksheetFeedk+ YZend_Gdata_Spreadsheets_WorksheetEntryk, [Zend_Gdata_Spreadsheets_SpreadsheetFeedk- ]Zend_Gdata_Spreadsheets_SpreadsheetEntryk& OZend_Gdata_Spreadsheets_ListQueryk%
 MZend_Gdata_Spreadsheets_ListFeedk&	 OZend_Gdata_Spreadsheets_ListEntryk/ aZend_Gdata_Spreadsheets_Extension_RowCountk   r
 jHuJ g0waG-sR+	




h
;

						v	K	*	|[B.lM,{jN/yY,oF U;zX=#dH)
                              T 9Zend_Measure_Flow_MasskS 9Zend_Measure_ExceptionkR 3Zend_Measure_EnergykQ 5Zend_Measure_DensitykP 5Zend_Measure_Currentk O CZend_Measure_Cooking_Weightk N CZend_Measure_Cooking_VolumekM =Zend_Measure_CapacitancekL 3Zend_Measure_BinarykK /Zend_Measure_AreakJ 1Zend_Measure_AnglekI ?Zend_Measure_AccelerationkH 7Zend_Measure_AbstractkG Zend_MailkF =Zend_Mail_Transport_Smtpk!E EZend_Mail_Transport_Sendmailk"D GZend_Mail_Transport_Exceptionk!C EZend_Mail_Transport_AbstractkB /Zend_Mail_Storagek'A QZend_Mail_Storage_Writable_Maildirk@ 9Zend_Mail_Storage_Pop3k? 9Zend_Mail_Storage_Mboxk> ?Zend_Mail_Storage_Maildirk= 9Zend_Mail_Storage_Imapk< =Zend_Mail_Storage_Folderk"; GZend_Mail_Storage_Folder_Mboxk%: MZend_Mail_Storage_Folder_Maildirk 9 CZend_Mail_Storage_Exceptionk8 AZend_Mail_Storage_Abstractk7 ;Zend_Mail_Protocol_Smtpk'6 QZend_Mail_Protocol_Smtp_Auth_Plaink'5 QZend_Mail_Protocol_Smtp_Auth_Logink)4 UZend_Mail_Protocol_Smtp_Auth_Crammd5k3 ;Zend_Mail_Protocol_Pop3k2 ;Zend_Mail_Protocol_Imapk!1 EZend_Mail_Protocol_Exceptionk 0 CZend_Mail_Protocol_Abstractk/ )Zend_Mail_Partk. 3Zend_Mail_Part_Filek- /Zend_Mail_Messagek, 9Zend_Mail_Message_Filek+ 3Zend_Mail_Exceptionk* Zend_Logk) 9Zend_Log_Writer_Streamk( 5Zend_Log_Writer_Nullk' 5Zend_Log_Writer_Mockk& 5Zend_Log_Writer_Mailk% ;Zend_Log_Writer_Firebugk$ 1Zend_Log_Writer_Dbk# =Zend_Log_Writer_Abstractk" 9Zend_Log_Formatter_Xmlk! ?Zend_Log_Formatter_Simplek  AZend_Log_Formatter_Firebugk =Zend_Log_Filter_Suppressk =Zend_Log_Filter_Priorityk ;Zend_Log_Filter_Messagek 1Zend_Log_Exceptionk #Zend_Localek -Zend_Locale_Mathk =Zend_Locale_Math_PhpMathk AZend_Locale_Math_Exceptionk 1Zend_Locale_Formatk 7Zend_Locale_Exceptionk -Zend_Locale_Datak! EZend_Locale_Data_Translationk #Zend_Loaderk =Zend_Loader_PluginLoaderk' QZend_Loader_PluginLoader_Exceptionk 7Zend_Loader_Exceptionk 9Zend_Loader_Autoloaderk$ KZend_Loader_Autoloader_Resourcek Zend_Ldapk 3Zend_Ldap_Exceptionk #Zend_Layoutk
 7Zend_Layout_Exceptionk)	 UZend_Layout_Controller_Plugin_Layoutk0 cZend_Layout_Controller_Action_Helper_Layoutk Zend_Jsonk -Zend_Json_Serverk 5Zend_Json_Server_Smdk! EZend_Json_Server_Smd_Servicek ?Zend_Json_Server_Responsek# IZend_Json_Server_Response_Httpk =Zend_Json_Server_Requestk"  GZend_Json_Server_Request_Httpk AZend_Json_Server_Exceptionk~ 9Zend_Json_Server_Errork} 9Zend_Json_Server_Cachek| )Zend_Json_Exprk{ 3Zend_Json_Exceptionkz /Zend_Json_Encoderky /Zend_Json_Decoderkx 'Zend_InfoCardk-w ]Zend_InfoCard_Xml_SecurityTokenReferencekv AZend_InfoCard_Xml_Securityk)u UZend_InfoCard_Xml_Security_Transformk4t kZend_InfoCard_Xml_Security_Transform_XmlExcC14Nk3s iZend_InfoCard_Xml_Security_Transform_Exceptionk<r {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignaturek)q UZend_InfoCard_Xml_Security_Exceptionkp ?Zend_InfoCard_Xml_KeyInfok&o OZend_InfoCard_Xml_KeyInfo_XmlDSigk&n OZend_InfoCard_Xml_KeyInfo_Defaultk'm QZend_InfoCard_Xml_KeyInfo_Abstractk l CZend_InfoCard_Xml_Exceptionk#k IZend_InfoCard_Xml_EncryptedKeyk$j KZend_InfoCard_Xml_EncryptedDatak+i YZend_InfoCard_Xml_EncryptedData_XmlEnck-h ]Zend_InfoCard_Xml_EncryptedData_Abstractkg ?Zend_InfoCard_Xml_Elementk f CZend_InfoCard_Xml_Assertionk%e MZend_InfoCard_Xml_Assertion_Samlkd ;Zend_InfoCard_Exceptionk%c MZend_InfoCard_Exception_Abstractk   r dH)~b;jL.~lJ(bE'



m
K
.
				x	T	3		h>dI2qJ*lL3uT.rR1xYA'yC                                          )F UZend_Pdf_Resource_Font_Simple_Parsedk2E gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypek*D WZend_Pdf_Resource_Font_FontDescriptork%C MZend_Pdf_Resource_Font_Extractedk#B IZend_Pdf_Resource_Font_CidFontk,A [Zend_Pdf_Resource_Font_CidFont_TrueTypek@ /Zend_Pdf_PhpArrayk? +Zend_Pdf_Parserk> 9Zend_Pdf_Parser_Streamk= 'Zend_Pdf_Pagek< )Zend_Pdf_Imagek; 'Zend_Pdf_Fontk : CZend_Pdf_Filter_Compressionk$9 KZend_Pdf_Filter_Compression_Lzwk&8 OZend_Pdf_Filter_Compression_Flatek7 =Zend_Pdf_Filter_AsciiHexk6 ;Zend_Pdf_Filter_Ascii85k"5 GZend_Pdf_FileParserDataSourcek)4 UZend_Pdf_FileParserDataSource_Stringk'3 QZend_Pdf_FileParserDataSource_Filek2 3Zend_Pdf_FileParserk1 ?Zend_Pdf_FileParser_Imagek"0 GZend_Pdf_FileParser_Image_Pngk/ =Zend_Pdf_FileParser_Fontk&. OZend_Pdf_FileParser_Font_OpenTypek/- aZend_Pdf_FileParser_Font_OpenType_TrueTypek, 1Zend_Pdf_Exceptionk+ ;Zend_Pdf_ElementFactoryk"* GZend_Pdf_ElementFactory_Proxyk) -Zend_Pdf_Elementk( ;Zend_Pdf_Element_Stringk#' IZend_Pdf_Element_String_Binaryk& ;Zend_Pdf_Element_Streamk% AZend_Pdf_Element_Referencek%$ MZend_Pdf_Element_Reference_Tablek'# QZend_Pdf_Element_Reference_Contextk" ;Zend_Pdf_Element_Objectk#! IZend_Pdf_Element_Object_Streamk  =Zend_Pdf_Element_Numerick 7Zend_Pdf_Element_Nullk 7Zend_Pdf_Element_Namek  CZend_Pdf_Element_Dictionaryk =Zend_Pdf_Element_Booleank 9Zend_Pdf_Element_Arrayk )Zend_Pdf_Colork 1Zend_Pdf_Color_Rgbk 3Zend_Pdf_Color_Htmlk =Zend_Pdf_Color_GrayScalek 3Zend_Pdf_Color_Cmykk 'Zend_Pdf_Cmapk AZend_Pdf_Cmap_TrimmedTablek! EZend_Pdf_Cmap_SegmentToDeltak AZend_Pdf_Cmap_ByteEncodingk& OZend_Pdf_Cmap_ByteEncoding_Statick )Zend_Paginatork* WZend_Paginator_ScrollingStyle_Slidingk* WZend_Paginator_ScrollingStyle_Jumpingk* WZend_Paginator_ScrollingStyle_Elastick& OZend_Paginator_ScrollingStyle_Allk =Zend_Paginator_Exceptionk 
 CZend_Paginator_Adapter_Nullk$	 KZend_Paginator_Adapter_Iteratork) UZend_Paginator_Adapter_DbTableSelectk$ KZend_Paginator_Adapter_DbSelectk! EZend_Paginator_Adapter_Arrayk #Zend_OpenIdk 5Zend_OpenId_Providerk ?Zend_OpenId_Provider_Userk& OZend_OpenId_Provider_User_Sessionk! EZend_OpenId_Provider_Storagek&  OZend_OpenId_Provider_Storage_Filek 7Zend_OpenId_Extensionk~ AZend_OpenId_Extension_Sregk} 7Zend_OpenId_Exceptionk| 5Zend_OpenId_Consumerk!{ EZend_OpenId_Consumer_Storagek&z OZend_OpenId_Consumer_Storage_Fileky +Zend_Navigationkx 5Zend_Navigation_Pagekw =Zend_Navigation_Page_Urikv =Zend_Navigation_Page_Mvcku ?Zend_Navigation_Exceptionkt ?Zend_Navigation_Containerks Zend_Mimekr )Zend_Mime_Partkq /Zend_Mime_Messagekp 3Zend_Mime_Exceptionko -Zend_Mime_Decodekn #Zend_Memorykm /Zend_Memory_Valuekl 3Zend_Memory_Managerkk 7Zend_Memory_Exceptionkj 7Zend_Memory_Containerk"i GZend_Memory_Container_Movablek!h EZend_Memory_Container_Lockedk!g EZend_Memory_AccessControllerkf 3Zend_Measure_Weightke 3Zend_Measure_Volumek%d MZend_Measure_Viscosity_Kinematick#c IZend_Measure_Viscosity_Dynamickb 3Zend_Measure_Torqueka /Zend_Measure_Timek` =Zend_Measure_Temperaturek_ 1Zend_Measure_Speedk^ 7Zend_Measure_Pressurek] 1Zend_Measure_Powerk\ 3Zend_Measure_Numberk[ 9Zend_Measure_LightnesskZ 3Zend_Measure_LengthkY ?Zend_Measure_IlluminationkX 9Zend_Measure_FrequencykW 1Zend_Measure_ForcekV =Zend_Measure_Flow_VolumekU 9Zend_Measure_Flow_Molek   Y  LSe*_:fL.





\
1
						f	;	hG(bI-
P}DZ0}Cg>g5	                                     ' QZend_Search_Lucene_Index_FieldInfok( SZend_Search_Lucene_Index_DocsFilterk. _Zend_Search_Lucene_Index_DictionaryLoaderk! EZend_Search_Lucene_FSMActionk 9Zend_Search_Lucene_FSMk =Zend_Search_Lucene_Fieldk! EZend_Search_Lucene_Exceptionk  CZend_Search_Lucene_Documentk% MZend_Search_Lucene_Document_Xlsxk% MZend_Search_Lucene_Document_Pptxk( SZend_Search_Lucene_Document_OpenXmlk% MZend_Search_Lucene_Document_Htmlk* WZend_Search_Lucene_Document_Exceptionk% MZend_Search_Lucene_Document_Docxk, [Zend_Search_Lucene_Analysis_TokenFilterk6 oZend_Search_Lucene_Analysis_TokenFilter_StopWordsk7 qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsk: wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8k6 oZend_Search_Lucene_Analysis_TokenFilter_LowerCasek& OZend_Search_Lucene_Analysis_Tokenk) UZend_Search_Lucene_Analysis_Analyzerk0
 cZend_Search_Lucene_Analysis_Analyzer_Commonk8	 sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumkI Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitivek5 mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8kF Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitivek8 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumkI Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitivek5 mZend_Search_Lucene_Analysis_Analyzer_Common_TextkF Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitivek 7Zend_Search_Exceptionk  -Zend_Rest_Serverk AZend_Rest_Server_Exceptionk~ 3Zend_Rest_Exceptionk} -Zend_Rest_Clientk| ;Zend_Rest_Client_Resultk&{ OZend_Rest_Client_Result_Exceptionkz AZend_Rest_Client_Exceptionky 'Zend_Registrykx =Zend_Reflection_Propertykw ?Zend_Reflection_Parameterkv 9Zend_Reflection_Methodku =Zend_Reflection_Functionkt 5Zend_Reflection_Fileks ?Zend_Reflection_Extensionkr ?Zend_Reflection_Exceptionkq =Zend_Reflection_Docblockk!p EZend_Reflection_Docblock_Tagk(o SZend_Reflection_Docblock_Tag_Returnk'n QZend_Reflection_Docblock_Tag_Paramkm 7Zend_Reflection_Classkl -Zend_ProgressBarkk AZend_ProgressBar_Exceptionkj =Zend_ProgressBar_Adapterk$i KZend_ProgressBar_Adapter_JsPushk$h KZend_ProgressBar_Adapter_JsPullk'g QZend_ProgressBar_Adapter_Exceptionk%f MZend_ProgressBar_Adapter_Consoleke Zend_Pdfk!d EZend_Pdf_UpdateInfoContainerkc -Zend_Pdf_Trailerkb ;Zend_Pdf_Trailer_Keeperka AZend_Pdf_Trailer_Generatork` )Zend_Pdf_Stylek_ 7Zend_Pdf_StringParserk^ /Zend_Pdf_Resourcek#] IZend_Pdf_Resource_ImageFactoryk\ ;Zend_Pdf_Resource_Imagek![ EZend_Pdf_Resource_Image_Tiffk Z CZend_Pdf_Resource_Image_Pngk!Y EZend_Pdf_Resource_Image_JpegkX 9Zend_Pdf_Resource_Fontk!W EZend_Pdf_Resource_Font_Type0k"V GZend_Pdf_Resource_Font_Simplek+U YZend_Pdf_Resource_Font_Simple_Standardk8T sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsk6S oZend_Pdf_Resource_Font_Simple_Standard_TimesRomank7R qZend_Pdf_Resource_Font_Simple_Standard_TimesItalick;Q yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalick5P mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldk2O gZend_Pdf_Resource_Font_Simple_Standard_Symbolk<N {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliquekAM Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliquek9L uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldk5K mZend_Pdf_Resource_Font_Simple_Standard_Helveticak:J wZend_Pdf_Resource_Font_Simple_Standard_CourierObliquek>I Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliquek7H qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldk3G iZend_Pdf_Resource_Font_Simple_Standard_Courierk   X  f*wO(m7uC`*



v
B
				U	'Y,i;zK#~`<~M%^?!c1jB             +w YZend_Service_Amazon_Ec2_Securitygroupsk%v MZend_Service_Amazon_Ec2_Responsek#u IZend_Service_Amazon_Ec2_Regionk$t KZend_Service_Amazon_Ec2_Keypairk%s MZend_Service_Amazon_Ec2_Instancek"r GZend_Service_Amazon_Ec2_Imagek&q OZend_Service_Amazon_Ec2_Exceptionk&p OZend_Service_Amazon_Ec2_Elasticipk o CZend_Service_Amazon_Ec2_Ebsk.n _Zend_Service_Amazon_Ec2_Availabilityzonesk%m MZend_Service_Amazon_Ec2_Abstractk'l QZend_Service_Amazon_CustomerReviewk$k KZend_Service_Amazon_Accessoriesk!j EZend_Service_Amazon_Abstractki 5Zend_Service_Akismetkh 7Zend_Service_Abstractkg 9Zend_Server_Reflectionk'f QZend_Server_Reflection_ReturnValuek%e MZend_Server_Reflection_Prototypek%d MZend_Server_Reflection_Parameterk c CZend_Server_Reflection_Nodek"b GZend_Server_Reflection_Methodk$a KZend_Server_Reflection_Functionk-` ]Zend_Server_Reflection_Function_Abstractk%_ MZend_Server_Reflection_Exceptionk!^ EZend_Server_Reflection_Classk!] EZend_Server_Method_Prototypek!\ EZend_Server_Method_Parameterk"[ GZend_Server_Method_Definitionk Z CZend_Server_Method_CallbackkY 7Zend_Server_ExceptionkX 9Zend_Server_DefinitionkW /Zend_Server_CachekV 5Zend_Server_AbstractkU 1Zend_Search_Lucenek0T cZend_Search_Lucene_termStreamsPriorityQueuek$S KZend_Search_Lucene_Storage_Filek+R YZend_Search_Lucene_Storage_File_Memoryk/Q aZend_Search_Lucene_Storage_File_Filesystemk)P UZend_Search_Lucene_Storage_Directoryk4O kZend_Search_Lucene_Storage_Directory_Filesystemk%N MZend_Search_Lucene_Search_Weightk*M WZend_Search_Lucene_Search_Weight_Termk,L [Zend_Search_Lucene_Search_Weight_Phrasek/K aZend_Search_Lucene_Search_Weight_MultiTermk+J YZend_Search_Lucene_Search_Weight_Emptyk-I ]Zend_Search_Lucene_Search_Weight_Booleank)H UZend_Search_Lucene_Search_Similarityk1G eZend_Search_Lucene_Search_Similarity_Defaultk)F UZend_Search_Lucene_Search_QueryTokenk3E iZend_Search_Lucene_Search_QueryParserExceptionk1D eZend_Search_Lucene_Search_QueryParserContextk*C WZend_Search_Lucene_Search_QueryParserk)B UZend_Search_Lucene_Search_QueryLexerk'A QZend_Search_Lucene_Search_QueryHitk)@ UZend_Search_Lucene_Search_QueryEntryk.? _Zend_Search_Lucene_Search_QueryEntry_Termk2> gZend_Search_Lucene_Search_QueryEntry_Subqueryk0= cZend_Search_Lucene_Search_QueryEntry_Phrasek$< KZend_Search_Lucene_Search_Queryk-; ]Zend_Search_Lucene_Search_Query_Wildcardk): UZend_Search_Lucene_Search_Query_Termk*9 WZend_Search_Lucene_Search_Query_Rangek28 gZend_Search_Lucene_Search_Query_Preprocessingk77 qZend_Search_Lucene_Search_Query_Preprocessing_Termk96 uZend_Search_Lucene_Search_Query_Preprocessing_Phrasek85 sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzyk+4 YZend_Search_Lucene_Search_Query_Phrasek.3 _Zend_Search_Lucene_Search_Query_MultiTermk22 gZend_Search_Lucene_Search_Query_Insignificantk*1 WZend_Search_Lucene_Search_Query_Fuzzyk*0 WZend_Search_Lucene_Search_Query_Emptyk,/ [Zend_Search_Lucene_Search_Query_Booleank2. gZend_Search_Lucene_Search_Highlighter_Defaultk:- wZend_Search_Lucene_Search_BooleanExpressionRecognizerk, =Zend_Search_Lucene_Proxyk%+ MZend_Search_Lucene_PriorityQueuek/* aZend_Search_Lucene_Interface_MultiSearcherk#) IZend_Search_Lucene_LockManagerk$( KZend_Search_Lucene_Index_Writerk0' cZend_Search_Lucene_Index_TermsPriorityQueuek&& OZend_Search_Lucene_Index_TermInfok"% GZend_Search_Lucene_Index_Termk+$ YZend_Search_Lucene_Index_SegmentWriterk8# sZend_Search_Lucene_Index_SegmentWriter_StreamWriterk:" wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterk+! YZend_Search_Lucene_Index_SegmentMergerk)  UZend_Search_Lucene_Index_SegmentInfok   c  lK!iC$lDqU- e3




\
<
					Z	2	~T*wP!]3Y)yS,\2`7rH#                    Z 1Zend_Service_Yahook$Y KZend_Service_Yahoo_WebResultSetk!X EZend_Service_Yahoo_WebResultk&W OZend_Service_Yahoo_VideoResultSetk#V IZend_Service_Yahoo_VideoResultk!U EZend_Service_Yahoo_ResultSetkT ?Zend_Service_Yahoo_Resultk)S UZend_Service_Yahoo_PageDataResultSetk&R OZend_Service_Yahoo_PageDataResultk%Q MZend_Service_Yahoo_NewsResultSetk"P GZend_Service_Yahoo_NewsResultk&O OZend_Service_Yahoo_LocalResultSetk#N IZend_Service_Yahoo_LocalResultk+M YZend_Service_Yahoo_InlinkDataResultSetk(L SZend_Service_Yahoo_InlinkDataResultk&K OZend_Service_Yahoo_ImageResultSetk#J IZend_Service_Yahoo_ImageResultkI =Zend_Service_Yahoo_ImagekH 5Zend_Service_Twitterk G CZend_Service_Twitter_Searchk#F IZend_Service_Twitter_ExceptionkE ;Zend_Service_Technoratik#D IZend_Service_Technorati_Weblogk"C GZend_Service_Technorati_Utilsk*B WZend_Service_Technorati_TagsResultSetk'A QZend_Service_Technorati_TagsResultk)@ UZend_Service_Technorati_TagResultSetk&? OZend_Service_Technorati_TagResultk,> [Zend_Service_Technorati_SearchResultSetk)= UZend_Service_Technorati_SearchResultk&< OZend_Service_Technorati_ResultSetk#; IZend_Service_Technorati_Resultk*: WZend_Service_Technorati_KeyInfoResultk*9 WZend_Service_Technorati_GetInfoResultk&8 OZend_Service_Technorati_Exceptionk17 eZend_Service_Technorati_DailyCountsResultSetk.6 _Zend_Service_Technorati_DailyCountsResultk,5 [Zend_Service_Technorati_CosmosResultSetk)4 UZend_Service_Technorati_CosmosResultk+3 YZend_Service_Technorati_BlogInfoResultk#2 IZend_Service_Technorati_Authork1 ;Zend_Service_StrikeIronk(0 SZend_Service_StrikeIron_ZipCodeInfok2/ gZend_Service_StrikeIron_USAddressVerificationk-. ]Zend_Service_StrikeIron_SalesUseTaxBasick&- OZend_Service_StrikeIron_Exceptionk&, OZend_Service_StrikeIron_Decoratork!+ EZend_Service_StrikeIron_Basek* ;Zend_Service_SlideSharek&) OZend_Service_SlideShare_SlideShowk&( OZend_Service_SlideShare_Exceptionk' 1Zend_Service_Simpyk$& KZend_Service_Simpy_WatchlistSetk*% WZend_Service_Simpy_WatchlistFilterSetk'$ QZend_Service_Simpy_WatchlistFilterk!# EZend_Service_Simpy_Watchlistk" ?Zend_Service_Simpy_TagSetk! 9Zend_Service_Simpy_Tagk  AZend_Service_Simpy_NoteSetk ;Zend_Service_Simpy_Notek AZend_Service_Simpy_LinkSetk! EZend_Service_Simpy_LinkQueryk ;Zend_Service_Simpy_Linkk 9Zend_Service_ReCaptchak$ KZend_Service_ReCaptcha_Responsek$ KZend_Service_ReCaptcha_MailHidek. _Zend_Service_ReCaptcha_MailHide_Exceptionk% MZend_Service_ReCaptcha_Exceptionk 7Zend_Service_Nirvanixk# IZend_Service_Nirvanix_Responsek) UZend_Service_Nirvanix_Namespace_Imfsk) UZend_Service_Nirvanix_Namespace_Basek$ KZend_Service_Nirvanix_Exceptionk 3Zend_Service_Flickrk" GZend_Service_Flickr_ResultSetk AZend_Service_Flickr_Resultk ?Zend_Service_Flickr_Imagek 9Zend_Service_Exceptionk 9Zend_Service_Deliciousk& OZend_Service_Delicious_SimplePostk$
 KZend_Service_Delicious_PostListk 	 CZend_Service_Delicious_Postk% MZend_Service_Delicious_Exceptionk  CZend_Service_Audioscrobblerk 3Zend_Service_Amazonk' QZend_Service_Amazon_SimilarProductk 9Zend_Service_Amazon_S3k" GZend_Service_Amazon_S3_Streamk% MZend_Service_Amazon_S3_Exceptionk" GZend_Service_Amazon_ResultSetk  ?Zend_Service_Amazon_Queryk! EZend_Service_Amazon_OfferSetk~ ?Zend_Service_Amazon_Offerk&} OZend_Service_Amazon_ListmaniaListk| =Zend_Service_Amazon_Itemk{ ?Zend_Service_Amazon_Imagek"z GZend_Service_Amazon_Exceptionk(y SZend_Service_Amazon_EditorialReviewkx ;Zend_Service_Amazon_Ec2k   ^  {P(~^;}U"zS(w\F,



m
@
$
					[	9		{S&\(L`4_0 ~P!n=wC                              28 gZend_Tool_Project_Context_Filesystem_Abstractk(7 SZend_Tool_Project_Context_Exceptionk06 cZend_Tool_Framework_System_Provider_Versionk05 cZend_Tool_Framework_System_Provider_Phpinfok14 eZend_Tool_Framework_System_Provider_Manifestk(3 SZend_Tool_Framework_System_Manifestk-2 ]Zend_Tool_Framework_System_Action_Deletek-1 ]Zend_Tool_Framework_System_Action_Createk!0 EZend_Tool_Framework_Registryk+/ YZend_Tool_Framework_Registry_Exceptionk+. YZend_Tool_Framework_Provider_Signaturek,- [Zend_Tool_Framework_Provider_Repositoryk+, YZend_Tool_Framework_Provider_Exceptionk*+ WZend_Tool_Framework_Provider_Abstractk&* OZend_Tool_Framework_Metadata_Toolk)) UZend_Tool_Framework_Metadata_Dynamick'( QZend_Tool_Framework_Metadata_Basick,' [Zend_Tool_Framework_Manifest_Repositoryk+& YZend_Tool_Framework_Manifest_Exceptionk1% eZend_Tool_Framework_Loader_IncludePathLoaderkJ$ Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIteratork(# SZend_Tool_Framework_Loader_Abstractk"" GZend_Tool_Framework_Exceptionk(! SZend_Tool_Framework_Client_ResponsekD  	Zend_Tool_Framework_Client_Response_ContentDecorator_Separatork' QZend_Tool_Framework_Client_Requestk9 uZend_Tool_Framework_Client_Interactive_InputResponsek8 sZend_Tool_Framework_Client_Interactive_InputRequestk8 sZend_Tool_Framework_Client_Interactive_InputHandlerk) UZend_Tool_Framework_Client_Exceptionk' QZend_Tool_Framework_Client_ConsolekD 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizerk0 cZend_Tool_Framework_Client_Console_Manifestk2 gZend_Tool_Framework_Client_Console_HelpSystemk6 oZend_Tool_Framework_Client_Console_ArgumentParserk( SZend_Tool_Framework_Client_Abstractk* WZend_Tool_Framework_Action_Repositoryk) UZend_Tool_Framework_Action_Exceptionk$ KZend_Tool_Framework_Action_Basek 'Zend_TimeSynck 1Zend_TimeSync_Sntpk 9Zend_TimeSync_Protocolk /Zend_TimeSync_Ntpk ;Zend_TimeSync_Exceptionk +Zend_Text_Tablek 3Zend_Text_Table_Rowk
 ?Zend_Text_Table_Exceptionk&	 OZend_Text_Table_Decorator_Unicodek$ KZend_Text_Table_Decorator_Asciik 9Zend_Text_Table_Columnk 3Zend_Text_MultiBytek -Zend_Text_Figletk AZend_Text_Figlet_Exceptionk 3Zend_Text_Exceptionk) UZend_Test_PHPUnit_ControllerTestCasek0 cZend_Test_PHPUnit_Constraint_ResponseHeaderk*  WZend_Test_PHPUnit_Constraint_Redirectk+ YZend_Test_PHPUnit_Constraint_Exceptionk*~ WZend_Test_PHPUnit_Constraint_DomQueryk} /Zend_Tag_ItemListk| 'Zend_Tag_Itemk{ 1Zend_Tag_Exceptionkz )Zend_Tag_Cloudky =Zend_Tag_Cloud_Exceptionk!x EZend_Tag_Cloud_Decorator_Tagk%w MZend_Tag_Cloud_Decorator_HtmlTagk'v QZend_Tag_Cloud_Decorator_HtmlCloudk'u QZend_Tag_Cloud_Decorator_Exceptionk#t IZend_Tag_Cloud_Decorator_Cloudks )Zend_Soap_Wsdlk/r aZend_Soap_Wsdl_Strategy_DefaultComplexTypek&q OZend_Soap_Wsdl_Strategy_Compositek0p cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequencek/o aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplexk$n KZend_Soap_Wsdl_Strategy_AnyTypek%m MZend_Soap_Wsdl_Strategy_Abstractkl =Zend_Soap_Wsdl_Exceptionkk -Zend_Soap_Serverkj AZend_Soap_Server_Exceptionki -Zend_Soap_Clientkh 9Zend_Soap_Client_Localkg AZend_Soap_Client_Exceptionkf ;Zend_Soap_Client_DotNetke ;Zend_Soap_Client_Commonkd 9Zend_Soap_AutoDiscoverk%c MZend_Soap_AutoDiscover_Exceptionkb %Zend_Sessionk)a UZend_Session_Validator_HttpUserAgentk$` KZend_Session_Validator_Abstractk'_ QZend_Session_SaveHandler_Exceptionk%^ MZend_Session_SaveHandler_DbTablek] 9Zend_Session_Namespacek\ 9Zend_Session_Exceptionk[ 7Zend_Session_Abstractk   I  j0~Ko?	h2m7


i
4				[	 o39y?
W!h4b6VvH       % MZend_Tool_Project_Provider_Modelk(  SZend_Tool_Project_Provider_Manifestk$ KZend_Tool_Project_Provider_Formk)~ UZend_Tool_Project_Provider_Exceptionk*} WZend_Tool_Project_Provider_Controllerk&| OZend_Tool_Project_Provider_Actionk({ SZend_Tool_Project_Provider_Abstractkz ?Zend_Tool_Project_Profilek'y QZend_Tool_Project_Profile_Resourcek9x uZend_Tool_Project_Profile_Resource_SearchConstraintsk1w eZend_Tool_Project_Profile_Resource_Containerk=v }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilterk5u mZend_Tool_Project_Profile_Iterator_ContextFilterk-t ]Zend_Tool_Project_Profile_FileParser_Xmlk(s SZend_Tool_Project_Profile_Exceptionk r CZend_Tool_Project_Exceptionk<q {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectoryk0p cZend_Tool_Project_Context_Zf_ViewsDirectoryk6o oZend_Tool_Project_Context_Zf_ViewScriptsDirectoryk0n cZend_Tool_Project_Context_Zf_ViewScriptFilek6m oZend_Tool_Project_Context_Zf_ViewHelpersDirectoryk6l oZend_Tool_Project_Context_Zf_ViewFiltersDirectorykAk Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectoryk2j gZend_Tool_Project_Context_Zf_UploadsDirectoryk0i cZend_Tool_Project_Context_Zf_TestsDirectoryk7h qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFilek@g Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectoryk1f eZend_Tool_Project_Context_Zf_TestLibraryFilek6e oZend_Tool_Project_Context_Zf_TestLibraryDirectoryk:d wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFilek:c wZend_Tool_Project_Context_Zf_TestApplicationDirectoryk@b Zend_Tool_Project_Context_Zf_TestApplicationControllerFilekEa Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectoryk>` Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFilek4_ kZend_Tool_Project_Context_Zf_TemporaryDirectoryk3^ iZend_Tool_Project_Context_Zf_SessionsDirectoryk8] sZend_Tool_Project_Context_Zf_SearchIndexesDirectoryk<\ {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectoryk8[ sZend_Tool_Project_Context_Zf_PublicScriptsDirectoryk1Z eZend_Tool_Project_Context_Zf_PublicIndexFilek7Y qZend_Tool_Project_Context_Zf_PublicImagesDirectoryk1X eZend_Tool_Project_Context_Zf_PublicDirectoryk5W mZend_Tool_Project_Context_Zf_ProjectProviderFilek2V gZend_Tool_Project_Context_Zf_ModulesDirectoryk1U eZend_Tool_Project_Context_Zf_ModuleDirectoryk1T eZend_Tool_Project_Context_Zf_ModelsDirectoryk+S YZend_Tool_Project_Context_Zf_ModelFilek/R aZend_Tool_Project_Context_Zf_LogsDirectoryk2Q gZend_Tool_Project_Context_Zf_LocalesDirectoryk2P gZend_Tool_Project_Context_Zf_LibraryDirectoryk2O gZend_Tool_Project_Context_Zf_LayoutsDirectoryk.N _Zend_Tool_Project_Context_Zf_HtaccessFilek0M cZend_Tool_Project_Context_Zf_FormsDirectoryk*L WZend_Tool_Project_Context_Zf_FormFilek-K ]Zend_Tool_Project_Context_Zf_DbTableFilek2J gZend_Tool_Project_Context_Zf_DbTableDirectoryk/I aZend_Tool_Project_Context_Zf_DataDirectoryk6H oZend_Tool_Project_Context_Zf_ControllersDirectoryk0G cZend_Tool_Project_Context_Zf_ControllerFilek2F gZend_Tool_Project_Context_Zf_ConfigsDirectoryk,E [Zend_Tool_Project_Context_Zf_ConfigFilek0D cZend_Tool_Project_Context_Zf_CacheDirectoryk/C aZend_Tool_Project_Context_Zf_BootstrapFilek6B oZend_Tool_Project_Context_Zf_ApplicationDirectoryk7A qZend_Tool_Project_Context_Zf_ApplicationConfigFilek/@ aZend_Tool_Project_Context_Zf_ApisDirectoryk.? _Zend_Tool_Project_Context_Zf_ActionMethodk@> Zend_Tool_Project_Context_System_ProjectProvidersDirectoryk8= sZend_Tool_Project_Context_System_ProjectProfileFilek6< oZend_Tool_Project_Context_System_ProjectDirectoryk); UZend_Tool_Project_Context_Repositoryk.: _Zend_Tool_Project_Context_Filesystem_Filek39 iZend_Tool_Project_Context_Filesystem_Directoryk   q	 M%kI&ybG1 dF*_?




_
:
					g	B	"	}cD)	z^5x]AxZ6^;^:gDmG)	                               r ;Zend_View_Helper_Layoutkq 7Zend_View_Helper_Jsonk"p GZend_View_Helper_InlineScriptk#o IZend_View_Helper_HtmlQuicktimekn ?Zend_View_Helper_HtmlPagek m CZend_View_Helper_HtmlObjectkl ?Zend_View_Helper_HtmlListkk AZend_View_Helper_HtmlFlashk!j EZend_View_Helper_HtmlElementki AZend_View_Helper_HeadTitlekh AZend_View_Helper_HeadStylek g CZend_View_Helper_HeadScriptkf ?Zend_View_Helper_HeadMetake ?Zend_View_Helper_HeadLinkk"d GZend_View_Helper_FormTextareakc ?Zend_View_Helper_FormTextk b CZend_View_Helper_FormSubmitk a CZend_View_Helper_FormSelectk` AZend_View_Helper_FormResetk_ AZend_View_Helper_FormRadiok"^ GZend_View_Helper_FormPasswordk] ?Zend_View_Helper_FormNotek'\ QZend_View_Helper_FormMultiCheckboxk[ AZend_View_Helper_FormLabelkZ AZend_View_Helper_FormImagek Y CZend_View_Helper_FormHiddenkX ?Zend_View_Helper_FormFilek W CZend_View_Helper_FormErrorsk!V EZend_View_Helper_FormElementk"U GZend_View_Helper_FormCheckboxk T CZend_View_Helper_FormButtonkS 7Zend_View_Helper_FormkR ?Zend_View_Helper_FieldsetkQ =Zend_View_Helper_Doctypek!P EZend_View_Helper_DeclareVarskO 9Zend_View_Helper_CyclekN ;Zend_View_Helper_ActionkM ?Zend_View_Helper_AbstractkL 3Zend_View_ExceptionkK 1Zend_View_AbstractkJ %Zend_VersionkI 'Zend_ValidatekH AZend_Validate_StringLengthk#G IZend_Validate_Sitemap_PrioritykF ?Zend_Validate_Sitemap_Lock"E GZend_Validate_Sitemap_Lastmodk%D MZend_Validate_Sitemap_ChangefreqkC 3Zend_Validate_RegexkB 9Zend_Validate_NotEmptykA 9Zend_Validate_LessThank@ -Zend_Validate_Ipk? /Zend_Validate_Intk> 7Zend_Validate_InArrayk= ;Zend_Validate_Identicalk< 1Zend_Validate_Ibank; 9Zend_Validate_Hostnamek: /Zend_Validate_Hexk9 ?Zend_Validate_GreaterThank8 3Zend_Validate_Floatk!7 EZend_Validate_File_WordCountk6 ?Zend_Validate_File_Uploadk5 ;Zend_Validate_File_Sizek4 ;Zend_Validate_File_Sha1k!3 EZend_Validate_File_NotExistsk 2 CZend_Validate_File_MimeTypek1 9Zend_Validate_File_Md5k0 AZend_Validate_File_IsImagek$/ KZend_Validate_File_IsCompressedk!. EZend_Validate_File_ImageSizek- ;Zend_Validate_File_Hashk!, EZend_Validate_File_FilesSizek!+ EZend_Validate_File_Extensionk* ?Zend_Validate_File_Existsk') QZend_Validate_File_ExcludeMimeTypek(( SZend_Validate_File_ExcludeExtensionk' =Zend_Validate_File_Crc32k& =Zend_Validate_File_Countk% ;Zend_Validate_Exceptionk$ AZend_Validate_EmailAddressk# 5Zend_Validate_Digitsk"" GZend_Validate_Db_RecordExistsk$! KZend_Validate_Db_NoRecordExistsk  ?Zend_Validate_Db_Abstractk 1Zend_Validate_Datek 3Zend_Validate_Ccnumk 7Zend_Validate_Betweenk 7Zend_Validate_Barcodek AZend_Validate_Barcode_UpcAk  CZend_Validate_Barcode_Ean13k 3Zend_Validate_Alphak 3Zend_Validate_Alnumk 9Zend_Validate_Abstractk Zend_Urik 'Zend_Uri_Httpk 1Zend_Uri_Exceptionk )Zend_Translatek =Zend_Translate_Exceptionk 9Zend_Translate_Adapterk! EZend_Translate_Adapter_XmlTmk! EZend_Translate_Adapter_Xliffk AZend_Translate_Adapter_Tmxk AZend_Translate_Adapter_Tbxk ?Zend_Translate_Adapter_Qtk AZend_Translate_Adapter_Inik#
 IZend_Translate_Adapter_Gettextk	 AZend_Translate_Adapter_Csvk! EZend_Translate_Adapter_Arrayk$ KZend_Tool_Project_Provider_Viewk$ KZend_Tool_Project_Provider_Testk/ aZend_Tool_Project_Provider_ProjectProviderk' QZend_Tool_Project_Provider_Projectk' QZend_Tool_Project_Provider_Profilek& OZend_Tool_Project_Provider_Modulek   h  sJ^&LiP>pF!



p
I
.
					u	X	7	sQ,	cB!tcG$ [2tM+	w_<n=^1                                     1Z eZend_Application_Bootstrap_BootstrapAbstractl)Y UZend_Application_Bootstrap_BootstraplX ?Zend_Amf_Value_TraitsInfol-W ]Zend_Amf_Value_Messaging_RemotingMessagel*V WZend_Amf_Value_Messaging_ErrorMessagel,U [Zend_Amf_Value_Messaging_CommandMessagel*T WZend_Amf_Value_Messaging_AsyncMessagel-S ]Zend_Amf_Value_Messaging_ArrayCollectionl0R cZend_Amf_Value_Messaging_AcknowledgeMessagel-Q ]Zend_Amf_Value_Messaging_AbstractMessagel!P EZend_Amf_Value_MessageHeaderlO AZend_Amf_Value_MessageBodylN =Zend_Amf_Value_ByteArraylM AZend_Amf_Util_BinaryStreamlL +Zend_Amf_ServerlK ?Zend_Amf_Server_ExceptionlJ /Zend_Amf_ResponselI 9Zend_Amf_Response_HttplH -Zend_Amf_RequestlG 7Zend_Amf_Request_HttplF ?Zend_Amf_Parse_TypeLoaderlE ?Zend_Amf_Parse_Serializerl#D IZend_Amf_Parse_Resource_Streaml(C SZend_Amf_Parse_Resource_MysqlResultl B CZend_Amf_Parse_OutputStreamlA AZend_Amf_Parse_InputStreaml @ CZend_Amf_Parse_Deserializerl#? IZend_Amf_Parse_Amf3_Serializerl%> MZend_Amf_Parse_Amf3_Deserializerl#= IZend_Amf_Parse_Amf0_Serializerl%< MZend_Amf_Parse_Amf0_Deserializerl; 1Zend_Amf_Exceptionl: 1Zend_Amf_Constantsl9 9Zend_Amf_Auth_Abstractl 8 CZend_Amf_Adobe_Introspectorl7 AZend_Amf_Adobe_DbInspectorl6 3Zend_Amf_Adobe_Authl5 Zend_Acll4 'Zend_Acl_Rolel3 9Zend_Acl_Role_Registryl%2 MZend_Acl_Role_Registry_Exceptionl1 /Zend_Acl_Resourcel0 1Zend_Acl_Exceptionl/ /Zend_XmlRpc_Valuek. =Zend_XmlRpc_Value_Structk- =Zend_XmlRpc_Value_Stringk, =Zend_XmlRpc_Value_Scalark+ 7Zend_XmlRpc_Value_Nilk* ?Zend_XmlRpc_Value_Integerk ) CZend_XmlRpc_Value_Exceptionk( =Zend_XmlRpc_Value_Doublek' AZend_XmlRpc_Value_DateTimek!& EZend_XmlRpc_Value_Collectionk% ?Zend_XmlRpc_Value_Booleank$ =Zend_XmlRpc_Value_Base64k# ;Zend_XmlRpc_Value_Arrayk" 1Zend_XmlRpc_Serverk! ?Zend_XmlRpc_Server_Systemk  =Zend_XmlRpc_Server_Faultk! EZend_XmlRpc_Server_Exceptionk =Zend_XmlRpc_Server_Cachek 5Zend_XmlRpc_Responsek ?Zend_XmlRpc_Response_Httpk 3Zend_XmlRpc_Requestk ?Zend_XmlRpc_Request_Stdink =Zend_XmlRpc_Request_Httpk /Zend_XmlRpc_Faultk 7Zend_XmlRpc_Exceptionk 1Zend_XmlRpc_Clientk# IZend_XmlRpc_Client_ServerProxyk+ YZend_XmlRpc_Client_ServerIntrospectionk+ YZend_XmlRpc_Client_IntrospectExceptionk% MZend_XmlRpc_Client_HttpExceptionk& OZend_XmlRpc_Client_FaultExceptionk! EZend_XmlRpc_Client_Exceptionk& OZend_Wildfire_Protocol_JsonStreamk! EZend_Wildfire_Plugin_FirePhpk. _Zend_Wildfire_Plugin_FirePhp_TableMessagek) UZend_Wildfire_Plugin_FirePhp_Messagek ;Zend_Wildfire_Exceptionk&
 OZend_Wildfire_Channel_HttpHeadersk	 Zend_Viewk -Zend_View_Streamk 5Zend_View_Helper_Urlk AZend_View_Helper_Translatek AZend_View_Helper_ServerUrlk) UZend_View_Helper_RenderToPlaceholderk! EZend_View_Helper_Placeholderk* WZend_View_Helper_Placeholder_Registryk4 kZend_View_Helper_Placeholder_Registry_Exceptionk+  YZend_View_Helper_Placeholder_Containerk6 oZend_View_Helper_Placeholder_Container_Standalonek5~ mZend_View_Helper_Placeholder_Container_Exceptionk4} kZend_View_Helper_Placeholder_Container_Abstractk!| EZend_View_Helper_PartialLoopk{ =Zend_View_Helper_Partialk'z QZend_View_Helper_Partial_Exceptionk'y QZend_View_Helper_PaginationControlk x CZend_View_Helper_Navigationk(w SZend_View_Helper_Navigation_Sitemapk%v MZend_View_Helper_Navigation_Menuk&u OZend_View_Helper_Navigation_Linksk/t aZend_View_Helper_Navigation_HelperAbstractk,s [Zend_View_Helper_Navigation_Breadcrumbsk   Z  ~[8~T-a1xP&tH!




J
&					W	>	l%Y U%e-yO4U}Q-g;                      "" GZend_Filter_Encrypt_Interfacel ! CZend_Feed_Builder_Interfacel   CZend_Db_Statement_Interfacel) UZend_Crypt_Math_BigInteger_Interfacel+ YZend_Controller_Router_Route_Interfacel% MZend_Controller_Router_Interfacel) UZend_Controller_Dispatcher_Interfacel% MZend_Controller_Action_Interfacel 5Zend_Captcha_Adapterl! EZend_Cache_Backend_Interfacel) UZend_Cache_Backend_ExtendedInterfacel  CZend_Auth_Storage_Interfacel  CZend_Auth_Adapter_Interfacel. _Zend_Auth_Adapter_Http_Resolver_Interfacel' QZend_Application_Resource_Resourcel4 kZend_Application_Bootstrap_ResourceBootstrapperl, [Zend_Application_Bootstrap_Bootstrapperl ;Zend_Acl_Role_Interfacel  CZend_Acl_Resource_Interfacel ?Zend_Acl_Assert_Interfacel# IZend_Wildfire_Plugin_Interfacek$ KZend_Wildfire_Channel_Interfacek 3Zend_View_Interfacek' QZend_View_Helper_Navigation_Helperk
 AZend_View_Helper_Interfacek	 ;Zend_Validate_Interfacek3 iZend_Tool_Project_Profile_FileParser_Interfacek: wZend_Tool_Project_Context_System_TopLevelRestrictablek5 mZend_Tool_Project_Context_System_NotOverwritablek/ aZend_Tool_Project_Context_System_Interfacek( SZend_Tool_Project_Context_Interfacek+ YZend_Tool_Framework_Registry_Interfacek2 gZend_Tool_Framework_Registry_EnabledInterfacek- ]Zend_Tool_Framework_Provider_Pretendablek+  YZend_Tool_Framework_Provider_Interfacek. _Zend_Tool_Framework_Provider_Interactablek;~ yZend_Tool_Framework_Provider_DocblockManifestInterfacek+} YZend_Tool_Framework_Metadata_Interfacek6| oZend_Tool_Framework_Manifest_ProviderManifestablek6{ oZend_Tool_Framework_Manifest_MetadataManifestablek+z YZend_Tool_Framework_Manifest_Interfacek+y YZend_Tool_Framework_Manifest_Indexablek4x kZend_Tool_Framework_Manifest_ActionManifestablekDw 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interfacek;v yZend_Tool_Framework_Client_Interactive_OutputInterfacek:u wZend_Tool_Framework_Client_Interactive_InputInterfacek)t UZend_Tool_Framework_Action_Interfacek(s SZend_Text_Table_Decorator_Interfacekr /Zend_Tag_Taggablek&q OZend_Soap_Wsdl_Strategy_Interfacek%p MZend_Session_Validator_Interfacek'o QZend_Session_SaveHandler_Interfacekn 7Zend_Server_Interfacek4m kZend_Search_Lucene_Search_Highlighter_Interfacek!l EZend_Search_Lucene_Interfacek3k iZend_Search_Lucene_Index_TermsStream_Interfacekj ?Zend_Pdf_Filter_Interfacek&i OZend_Pdf_ElementFactory_Interfacek,h [Zend_Paginator_ScrollingStyle_Interfacek%g MZend_Paginator_Adapter_Interfacek$f KZend_Memory_Container_Interfacek)e UZend_Mail_Storage_Writable_Interfacek'd QZend_Mail_Storage_Folder_Interfacekc =Zend_Mail_Part_Interfacek b CZend_Mail_Message_Interfacek!a EZend_Log_Formatter_Interfacek` ?Zend_Log_Filter_Interfacek'_ QZend_Loader_PluginLoader_Interfacek%^ MZend_Loader_Autoloader_Interfacek3] iZend_InfoCard_Xml_Security_Transform_Interfacek(\ SZend_InfoCard_Xml_KeyInfo_Interfacek([ SZend_InfoCard_Xml_Element_Interfacek*Z WZend_InfoCard_Xml_Assertion_Interfacek-Y ]Zend_InfoCard_Cipher_Symmetric_Interfacek7X qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interfacek7W qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interfacek+V YZend_InfoCard_Cipher_Pki_Rsa_Interfacek'U QZend_InfoCard_Cipher_Pki_Interfacek$T KZend_InfoCard_Adapter_Interfacek'S QZend_Http_Client_Adapter_InterfacekR AZend_Gdata_App_MediaSourcek.Q _Zend_Form_Decorator_Marker_File_Interfacek"P GZend_Form_Decorator_InterfacekO 7Zend_Filter_Interfacek"N GZend_Filter_Encrypt_Interfacek M CZend_Feed_Builder_Interfacek L CZend_Db_Statement_Interfacek)K UZend_Crypt_Math_BigInteger_Interfacek+J YZend_Controller_Router_Route_Interfacek%I MZend_Controller_Router_Interfacek   f  [6
\/}V=wX5tR@!



u
S
+
 				{	^	<	kL0kG"]5c:}bJ6j8Qc)            @ 9Zend_Controller_Actionl(? SZend_Controller_Action_HelperBrokerl6> oZend_Controller_Action_HelperBroker_PriorityStackl/= aZend_Controller_Action_Helper_ViewRendererl&< OZend_Controller_Action_Helper_Urll-; ]Zend_Controller_Action_Helper_Redirectorl': QZend_Controller_Action_Helper_Jsonl19 eZend_Controller_Action_Helper_FlashMessengerl08 cZend_Controller_Action_Helper_ContextSwitchl<7 {Zend_Controller_Action_Helper_AutoCompleteScriptaculousl36 iZend_Controller_Action_Helper_AutoCompleteDojol85 sZend_Controller_Action_Helper_AutoComplete_Abstractl.4 _Zend_Controller_Action_Helper_AjaxContextl.3 _Zend_Controller_Action_Helper_ActionStackl+2 YZend_Controller_Action_Helper_Abstractl%1 MZend_Controller_Action_Exceptionl0 3Zend_Console_Getoptl"/ GZend_Console_Getopt_Exceptionl. #Zend_Configl- +Zend_Config_Xmll, 1Zend_Config_Writerl+ 9Zend_Config_Writer_Xmll* 9Zend_Config_Writer_Inil) =Zend_Config_Writer_Arrayl( +Zend_Config_Inil' 7Zend_Config_Exceptionl$& KZend_CodeGenerator_Php_Propertyl%% MZend_CodeGenerator_Php_Parameterl"$ GZend_CodeGenerator_Php_Methodl,# [Zend_CodeGenerator_Php_Member_Containerl+" YZend_CodeGenerator_Php_Member_Abstractl ! CZend_CodeGenerator_Php_Filel%  MZend_CodeGenerator_Php_Exceptionl$ KZend_CodeGenerator_Php_Docblockl( SZend_CodeGenerator_Php_Docblock_Tagl/ aZend_CodeGenerator_Php_Docblock_Tag_Returnl. _Zend_CodeGenerator_Php_Docblock_Tag_Paraml0 cZend_CodeGenerator_Php_Docblock_Tag_Licensel! EZend_CodeGenerator_Php_Classl  CZend_CodeGenerator_Php_Bodyl$ KZend_CodeGenerator_Php_Abstractl! EZend_CodeGenerator_Exceptionl  CZend_CodeGenerator_Abstractl /Zend_Captcha_Wordl 9Zend_Captcha_ReCaptchal 1Zend_Captcha_Imagel 3Zend_Captcha_Figletl 9Zend_Captcha_Exceptionl /Zend_Captcha_Dumbl /Zend_Captcha_Basel !Zend_Cachel =Zend_Cache_Frontend_Pagel AZend_Cache_Frontend_Outputl! EZend_Cache_Frontend_Functionl
 =Zend_Cache_Frontend_Filel	 ?Zend_Cache_Frontend_Classl 5Zend_Cache_Exceptionl +Zend_Cache_Corel 1Zend_Cache_Backendl" GZend_Cache_Backend_ZendServerl( SZend_Cache_Backend_ZendServer_ShMeml' QZend_Cache_Backend_ZendServer_Diskl$ KZend_Cache_Backend_ZendPlatforml ?Zend_Cache_Backend_Xcachel!  EZend_Cache_Backend_TwoLevelsl ;Zend_Cache_Backend_Testl~ ?Zend_Cache_Backend_Sqlitel!} EZend_Cache_Backend_Memcachedl| ;Zend_Cache_Backend_Filel{ 9Zend_Cache_Backend_Apclz Zend_Authly ?Zend_Auth_Storage_Sessionl$x KZend_Auth_Storage_NonPersistentl w CZend_Auth_Storage_Exceptionlv -Zend_Auth_Resultlu 3Zend_Auth_Exceptionlt =Zend_Auth_Adapter_OpenIdls 9Zend_Auth_Adapter_Ldaplr AZend_Auth_Adapter_InfoCardlq 9Zend_Auth_Adapter_Httpl)p UZend_Auth_Adapter_Http_Resolver_Filel.o _Zend_Auth_Adapter_Http_Resolver_Exceptionl n CZend_Auth_Adapter_Exceptionlm =Zend_Auth_Adapter_Digestll ?Zend_Auth_Adapter_DbTablelk -Zend_Applicationl#j IZend_Application_Resource_Viewl(i SZend_Application_Resource_Translatel&h OZend_Application_Resource_Sessionl%g MZend_Application_Resource_Routerl/f aZend_Application_Resource_ResourceAbstractl)e UZend_Application_Resource_Navigationl&d OZend_Application_Resource_Modulesl%c MZend_Application_Resource_Localel%b MZend_Application_Resource_Layoutl.a _Zend_Application_Resource_Frontcontrollerl(` SZend_Application_Resource_Exceptionl!_ EZend_Application_Resource_Dbl&^ OZend_Application_Module_Bootstrapl'] QZend_Application_Module_Autoloaderl\ AZend_Application_Exceptionl)[ UZend_Application_Bootstrap_Exceptionl   m {Y;mCvQ& Z,|P+ 




^
1

					h	M	6	#	hB&tO+a>$r[3zY7{W=yiV?#b2                                  *- WZend_Dojo_Form_Decorator_DijitElementl,, [Zend_Dojo_Form_Decorator_DijitContainerl)+ UZend_Dojo_Form_Decorator_ContentPanel-* ]Zend_Dojo_Form_Decorator_BorderContainerl+) YZend_Dojo_Form_Decorator_AccordionPanel0( cZend_Dojo_Form_Decorator_AccordionContainerl' 3Zend_Dojo_Exceptionl& )Zend_Dojo_Datal% !Zend_Debugl$ Zend_Dbl# 'Zend_Db_Tablel" 5Zend_Db_Table_Selectl#! IZend_Db_Table_Select_Exceptionl  5Zend_Db_Table_Rowsetl# IZend_Db_Table_Rowset_Exceptionl" GZend_Db_Table_Rowset_Abstractl /Zend_Db_Table_Rowl  CZend_Db_Table_Row_Exceptionl AZend_Db_Table_Row_Abstractl ;Zend_Db_Table_Exceptionl 9Zend_Db_Table_Abstractl /Zend_Db_Statementl 7Zend_Db_Statement_Pdol ?Zend_Db_Statement_Pdo_Ocil ?Zend_Db_Statement_Pdo_Ibml =Zend_Db_Statement_Oraclel' QZend_Db_Statement_Oracle_Exceptionl =Zend_Db_Statement_Mysqlil' QZend_Db_Statement_Mysqli_Exceptionl  CZend_Db_Statement_Exceptionl 7Zend_Db_Statement_Db2l$ KZend_Db_Statement_Db2_Exceptionl )Zend_Db_Selectl =Zend_Db_Select_Exceptionl -Zend_Db_Profilerl
 9Zend_Db_Profiler_Queryl	 =Zend_Db_Profiler_Firebugl AZend_Db_Profiler_Exceptionl %Zend_Db_Exprl /Zend_Db_Exceptionl AZend_Db_Adapter_Pdo_Sqlitel ?Zend_Db_Adapter_Pdo_Pgsqll ;Zend_Db_Adapter_Pdo_Ocil ?Zend_Db_Adapter_Pdo_Mysqll ?Zend_Db_Adapter_Pdo_Mssqll  ;Zend_Db_Adapter_Pdo_Ibml  CZend_Db_Adapter_Pdo_Ibm_Idsl ~ CZend_Db_Adapter_Pdo_Ibm_Db2l!} EZend_Db_Adapter_Pdo_Abstractl| 9Zend_Db_Adapter_Oraclel%{ MZend_Db_Adapter_Oracle_Exceptionlz 9Zend_Db_Adapter_Mysqlil%y MZend_Db_Adapter_Mysqli_Exceptionlx ?Zend_Db_Adapter_Exceptionlw 3Zend_Db_Adapter_Db2l"v GZend_Db_Adapter_Db2_Exceptionlu =Zend_Db_Adapter_Abstractlt Zend_Datels 3Zend_Date_Exceptionlr 5Zend_Date_DateObjectlq -Zend_Date_Citieslp 'Zend_Currencylo ;Zend_Currency_Exceptionln !Zend_Cryptlm )Zend_Crypt_Rsall 1Zend_Crypt_Rsa_Keylk ?Zend_Crypt_Rsa_Key_Publiclj AZend_Crypt_Rsa_Key_Privateli +Zend_Crypt_Mathlh ?Zend_Crypt_Math_Exceptionlg AZend_Crypt_Math_BigIntegerl#f IZend_Crypt_Math_BigInteger_Gmpl)e UZend_Crypt_Math_BigInteger_Exceptionl&d OZend_Crypt_Math_BigInteger_Bcmathlc +Zend_Crypt_Hmaclb ?Zend_Crypt_Hmac_Exceptionla 5Zend_Crypt_Exceptionl` =Zend_Crypt_DiffieHellmanl'_ QZend_Crypt_DiffieHellman_Exceptionl!^ EZend_Controller_Router_Routel(] SZend_Controller_Router_Route_Staticl'\ QZend_Controller_Router_Route_Regexl([ SZend_Controller_Router_Route_Modulel*Z WZend_Controller_Router_Route_Hostnamel'Y QZend_Controller_Router_Route_Chainl*X WZend_Controller_Router_Route_Abstractl#W IZend_Controller_Router_Rewritel%V MZend_Controller_Router_Exceptionl$U KZend_Controller_Router_Abstractl*T WZend_Controller_Response_HttpTestCasel"S GZend_Controller_Response_Httpl'R QZend_Controller_Response_Exceptionl!Q EZend_Controller_Response_Clil&P OZend_Controller_Response_Abstractl#O IZend_Controller_Request_Simplel)N UZend_Controller_Request_HttpTestCasel!M EZend_Controller_Request_Httpl&L OZend_Controller_Request_Exceptionl&K OZend_Controller_Request_Apache404l%J MZend_Controller_Request_Abstractl(I SZend_Controller_Plugin_ErrorHandlerl"H GZend_Controller_Plugin_Brokerl'G QZend_Controller_Plugin_ActionStackl$F KZend_Controller_Plugin_AbstractlE 7Zend_Controller_FrontlD ?Zend_Controller_Exceptionl(C SZend_Controller_Dispatcher_Standardl)B UZend_Controller_Dispatcher_Exceptionl(A SZend_Controller_Dispatcher_Abstractl   h  uG#~S.R%wK#rS<



k
D
				q	M	 }Z+{N)yR,xW9"mL2zN&x\A)fC#          =Zend_Filter_HtmlEntitiesl AZend_Filter_File_UpperCasel ;Zend_Filter_File_Renamel AZend_Filter_File_LowerCasel =Zend_Filter_File_Encryptl =Zend_Filter_File_Decryptl 7Zend_Filter_Exceptionl 3Zend_Filter_Encryptl  CZend_Filter_Encrypt_Openssll AZend_Filter_Encrypt_Mcryptl +Zend_Filter_Dirl
 1Zend_Filter_Digitsl	 3Zend_Filter_Decryptl 5Zend_Filter_Callbackl 5Zend_Filter_BaseNamel /Zend_Filter_Alphal /Zend_Filter_Alnuml 1Zend_File_Transferl! EZend_File_Transfer_Exceptionl$ KZend_File_Transfer_Adapter_Httpl( SZend_File_Transfer_Adapter_Abstractl  Zend_Feedl 'Zend_Feed_Rssl~ 3Zend_Feed_Exceptionl} 3Zend_Feed_Entry_Rssl| 5Zend_Feed_Entry_Atoml{ =Zend_Feed_Entry_Abstractlz /Zend_Feed_Elemently /Zend_Feed_Builderlx =Zend_Feed_Builder_Headerl$w KZend_Feed_Builder_Header_Itunesl v CZend_Feed_Builder_Exceptionlu ;Zend_Feed_Builder_Entrylt )Zend_Feed_Atomls 1Zend_Feed_Abstractlr )Zend_Exceptionlq )Zend_Dom_Querylp 7Zend_Dom_Query_Resultlo =Zend_Dom_Query_Css2Xpathln 1Zend_Dom_Exceptionlm Zend_Dojol)l UZend_Dojo_View_Helper_VerticalSliderl,k [Zend_Dojo_View_Helper_ValidationTextBoxl&j OZend_Dojo_View_Helper_TimeTextBoxl"i GZend_Dojo_View_Helper_TextBoxl#h IZend_Dojo_View_Helper_Textareal'g QZend_Dojo_View_Helper_TabContainerl'f QZend_Dojo_View_Helper_SubmitButtonl)e UZend_Dojo_View_Helper_StackContainerl)d UZend_Dojo_View_Helper_SplitContainerl!c EZend_Dojo_View_Helper_Sliderl)b UZend_Dojo_View_Helper_SimpleTextareal&a OZend_Dojo_View_Helper_RadioButtonl*` WZend_Dojo_View_Helper_PasswordTextBoxl(_ SZend_Dojo_View_Helper_NumberTextBoxl(^ SZend_Dojo_View_Helper_NumberSpinnerl+] YZend_Dojo_View_Helper_HorizontalSliderl\ AZend_Dojo_View_Helper_Forml*[ WZend_Dojo_View_Helper_FilteringSelectl!Z EZend_Dojo_View_Helper_EditorlY AZend_Dojo_View_Helper_Dojol)X UZend_Dojo_View_Helper_Dojo_Containerl)W UZend_Dojo_View_Helper_DijitContainerl V CZend_Dojo_View_Helper_Dijitl&U OZend_Dojo_View_Helper_DateTextBoxl&T OZend_Dojo_View_Helper_CustomDijitl*S WZend_Dojo_View_Helper_CurrencyTextBoxl&R OZend_Dojo_View_Helper_ContentPanel#Q IZend_Dojo_View_Helper_ComboBoxl#P IZend_Dojo_View_Helper_CheckBoxl!O EZend_Dojo_View_Helper_Buttonl*N WZend_Dojo_View_Helper_BorderContainerl(M SZend_Dojo_View_Helper_AccordionPanel-L ]Zend_Dojo_View_Helper_AccordionContainerlK =Zend_Dojo_View_ExceptionlJ )Zend_Dojo_FormlI 9Zend_Dojo_Form_SubForml*H WZend_Dojo_Form_Element_VerticalSliderl-G ]Zend_Dojo_Form_Element_ValidationTextBoxl'F QZend_Dojo_Form_Element_TimeTextBoxl#E IZend_Dojo_Form_Element_TextBoxl$D KZend_Dojo_Form_Element_Textareal(C SZend_Dojo_Form_Element_SubmitButtonl"B GZend_Dojo_Form_Element_Sliderl*A WZend_Dojo_Form_Element_SimpleTextareal'@ QZend_Dojo_Form_Element_RadioButtonl+? YZend_Dojo_Form_Element_PasswordTextBoxl)> UZend_Dojo_Form_Element_NumberTextBoxl)= UZend_Dojo_Form_Element_NumberSpinnerl,< [Zend_Dojo_Form_Element_HorizontalSliderl+; YZend_Dojo_Form_Element_FilteringSelectl": GZend_Dojo_Form_Element_Editorl&9 OZend_Dojo_Form_Element_DijitMultil!8 EZend_Dojo_Form_Element_Dijitl'7 QZend_Dojo_Form_Element_DateTextBoxl+6 YZend_Dojo_Form_Element_CurrencyTextBoxl$5 KZend_Dojo_Form_Element_ComboBoxl$4 KZend_Dojo_Form_Element_CheckBoxl"3 GZend_Dojo_Form_Element_Buttonl 2 CZend_Dojo_Form_DisplayGroupl*1 WZend_Dojo_Form_Decorator_TabContainerl,0 [Zend_Dojo_Form_Decorator_StackContainerl,/ [Zend_Dojo_Form_Decorator_SplitContainerl'. QZend_Dojo_Form_Decorator_DijitForml   i  \<|S%zN pA-nF#




m
F
"
 				g	@	!	 xY8gG&mSA{^=lE|X2kCzU4                        #~ IZend_Gdata_App_FeedEntryParentl} 3Zend_Gdata_App_Feedl| =Zend_Gdata_App_Extensionl!{ EZend_Gdata_App_Extension_Uril%z MZend_Gdata_App_Extension_Updatedl#y IZend_Gdata_App_Extension_Titlel"x GZend_Gdata_App_Extension_Textl%w MZend_Gdata_App_Extension_Summaryl&v OZend_Gdata_App_Extension_Subtitlel$u KZend_Gdata_App_Extension_Sourcel$t KZend_Gdata_App_Extension_Rightsl's QZend_Gdata_App_Extension_Publishedl$r KZend_Gdata_App_Extension_Personl"q GZend_Gdata_App_Extension_Namel"p GZend_Gdata_App_Extension_Logol"o GZend_Gdata_App_Extension_Linkl n CZend_Gdata_App_Extension_Idl"m GZend_Gdata_App_Extension_Iconl'l QZend_Gdata_App_Extension_Generatorl#k IZend_Gdata_App_Extension_Emaill%j MZend_Gdata_App_Extension_Elementl$i KZend_Gdata_App_Extension_Editedl#h IZend_Gdata_App_Extension_Draftl%g MZend_Gdata_App_Extension_Controll)f UZend_Gdata_App_Extension_Contributorl%e MZend_Gdata_App_Extension_Contentl&d OZend_Gdata_App_Extension_Categoryl$c KZend_Gdata_App_Extension_Authorlb =Zend_Gdata_App_Exceptionla 5Zend_Gdata_App_Entryl,` [Zend_Gdata_App_CaptchaRequiredExceptionl#_ IZend_Gdata_App_BaseMediaSourcel^ 3Zend_Gdata_App_Basel*] WZend_Gdata_App_BadMethodCallExceptionl!\ EZend_Gdata_App_AuthExceptionl[ Zend_FormlZ /Zend_Form_SubFormlY 3Zend_Form_ExceptionlX /Zend_Form_ElementlW ;Zend_Form_Element_XhtmllV AZend_Form_Element_TextarealU 9Zend_Form_Element_TextlT =Zend_Form_Element_SubmitlS =Zend_Form_Element_SelectlR ;Zend_Form_Element_ResetlQ ;Zend_Form_Element_RadiolP AZend_Form_Element_Passwordl"O GZend_Form_Element_Multiselectl$N KZend_Form_Element_MultiCheckboxlM ;Zend_Form_Element_MultilL ;Zend_Form_Element_ImagelK =Zend_Form_Element_HiddenlJ 9Zend_Form_Element_HashlI 9Zend_Form_Element_Filel H CZend_Form_Element_ExceptionlG AZend_Form_Element_CheckboxlF ?Zend_Form_Element_CaptchalE =Zend_Form_Element_ButtonlD 9Zend_Form_DisplayGroupl#C IZend_Form_Decorator_ViewScriptl#B IZend_Form_Decorator_ViewHelperl A CZend_Form_Decorator_Tooltipl(@ SZend_Form_Decorator_PrepareElementsl? ?Zend_Form_Decorator_Labell> ?Zend_Form_Decorator_Imagel = CZend_Form_Decorator_HtmlTagl#< IZend_Form_Decorator_FormErrorsl%; MZend_Form_Decorator_FormElementsl: =Zend_Form_Decorator_Forml9 =Zend_Form_Decorator_Filel!8 EZend_Form_Decorator_Fieldsetl"7 GZend_Form_Decorator_Exceptionl6 AZend_Form_Decorator_Errorsl$5 KZend_Form_Decorator_DtDdWrapperl$4 KZend_Form_Decorator_Descriptionl 3 CZend_Form_Decorator_Captchal%2 MZend_Form_Decorator_Captcha_Wordl!1 EZend_Form_Decorator_Callbackl!0 EZend_Form_Decorator_Abstractl/ #Zend_Filterl+. YZend_Filter_Word_UnderscoreToSeparatorl&- OZend_Filter_Word_UnderscoreToDashl+, YZend_Filter_Word_UnderscoreToCamelCasel*+ WZend_Filter_Word_SeparatorToSeparatorl%* MZend_Filter_Word_SeparatorToDashl*) WZend_Filter_Word_SeparatorToCamelCasel(( SZend_Filter_Word_Separator_Abstractl&' OZend_Filter_Word_DashToUnderscorel%& MZend_Filter_Word_DashToSeparatorl%% MZend_Filter_Word_DashToCamelCasel+$ YZend_Filter_Word_CamelCaseToUnderscorel*# WZend_Filter_Word_CamelCaseToSeparatorl%" MZend_Filter_Word_CamelCaseToDashl! 7Zend_Filter_StripTagsl  ?Zend_Filter_StripNewlinesl 9Zend_Filter_StringTriml ?Zend_Filter_StringToUpperl ?Zend_Filter_StringToLowerl 5Zend_Filter_RealPathl ;Zend_Filter_PregReplacel& OZend_Filter_NormalizedToLocalizedl& OZend_Filter_LocalizedToNormalizedl +Zend_Filter_Intl /Zend_Filter_Inputl 7Zend_Filter_Inflectorl   _  `*kBY-tO+yG



e
(				}	a	B	\(c4V+}W0Y/	e1|T#fE(                                   $] KZend_Gdata_Gapps_EmailListEntryl\ +Zend_Gdata_Feedl[ 5Zend_Gdata_ExtensionlZ =Zend_Gdata_Extension_WholY AZend_Gdata_Extension_WherelX ?Zend_Gdata_Extension_Whenl$W KZend_Gdata_Extension_Visibilityl&V OZend_Gdata_Extension_Transparencyl"U GZend_Gdata_Extension_Reminderl-T ]Zend_Gdata_Extension_RecurrenceExceptionl$S KZend_Gdata_Extension_Recurrencel R CZend_Gdata_Extension_Ratingl'Q QZend_Gdata_Extension_OriginalEventl0P cZend_Gdata_Extension_OpenSearchTotalResultsl.O _Zend_Gdata_Extension_OpenSearchStartIndexl0N cZend_Gdata_Extension_OpenSearchItemsPerPagel"M GZend_Gdata_Extension_FeedLinkl*L WZend_Gdata_Extension_ExtendedPropertyl%K MZend_Gdata_Extension_EventStatusl#J IZend_Gdata_Extension_EntryLinkl"I GZend_Gdata_Extension_Commentsl&H OZend_Gdata_Extension_AttendeeTypel(G SZend_Gdata_Extension_AttendeeStatuslF +Zend_Gdata_ExiflE 5Zend_Gdata_Exif_Feedl#D IZend_Gdata_Exif_Extension_Timel#C IZend_Gdata_Exif_Extension_Tagsl$B KZend_Gdata_Exif_Extension_Modell#A IZend_Gdata_Exif_Extension_Makel"@ GZend_Gdata_Exif_Extension_Isol,? [Zend_Gdata_Exif_Extension_ImageUniqueIdl$> KZend_Gdata_Exif_Extension_FStopl*= WZend_Gdata_Exif_Extension_FocalLengthl$< KZend_Gdata_Exif_Extension_Flashl'; QZend_Gdata_Exif_Extension_Exposurel': QZend_Gdata_Exif_Extension_Distancel9 7Zend_Gdata_Exif_Entryl8 -Zend_Gdata_Entryl7 7Zend_Gdata_DublinCorel*6 WZend_Gdata_DublinCore_Extension_Titlel,5 [Zend_Gdata_DublinCore_Extension_Subjectl+4 YZend_Gdata_DublinCore_Extension_Rightsl.3 _Zend_Gdata_DublinCore_Extension_Publisherl-2 ]Zend_Gdata_DublinCore_Extension_Languagel/1 aZend_Gdata_DublinCore_Extension_Identifierl+0 YZend_Gdata_DublinCore_Extension_Formatl0/ cZend_Gdata_DublinCore_Extension_Descriptionl). UZend_Gdata_DublinCore_Extension_Datel,- [Zend_Gdata_DublinCore_Extension_Creatorl, +Zend_Gdata_Docsl+ 7Zend_Gdata_Docs_Queryl%* MZend_Gdata_Docs_DocumentListFeedl&) OZend_Gdata_Docs_DocumentListEntryl( 9Zend_Gdata_ClientLoginl' 3Zend_Gdata_Calendarl!& EZend_Gdata_Calendar_ListFeedl"% GZend_Gdata_Calendar_ListEntryl-$ ]Zend_Gdata_Calendar_Extension_WebContentl+# YZend_Gdata_Calendar_Extension_Timezonel9" uZend_Gdata_Calendar_Extension_SendEventNotificationsl+! YZend_Gdata_Calendar_Extension_Selectedl+  YZend_Gdata_Calendar_Extension_QuickAddl' QZend_Gdata_Calendar_Extension_Linkl) UZend_Gdata_Calendar_Extension_Hiddenl( SZend_Gdata_Calendar_Extension_Colorl. _Zend_Gdata_Calendar_Extension_AccessLevell# IZend_Gdata_Calendar_EventQueryl" GZend_Gdata_Calendar_EventFeedl# IZend_Gdata_Calendar_EventEntryl -Zend_Gdata_Booksl! EZend_Gdata_Books_VolumeQueryl  CZend_Gdata_Books_VolumeFeedl! EZend_Gdata_Books_VolumeEntryl+ YZend_Gdata_Books_Extension_Viewabilityl- ]Zend_Gdata_Books_Extension_ThumbnailLinkl& OZend_Gdata_Books_Extension_Reviewl+ YZend_Gdata_Books_Extension_PreviewLinkl( SZend_Gdata_Books_Extension_InfoLinkl- ]Zend_Gdata_Books_Extension_Embeddabilityl) UZend_Gdata_Books_Extension_BooksLinkl- ]Zend_Gdata_Books_Extension_BooksCategoryl. _Zend_Gdata_Books_Extension_AnnotationLinkl$ KZend_Gdata_Books_CollectionFeedl%
 MZend_Gdata_Books_CollectionEntryl	 1Zend_Gdata_AuthSubl )Zend_Gdata_Appl$ KZend_Gdata_App_VersionExceptionl 3Zend_Gdata_App_Utill# IZend_Gdata_App_MediaFileSourcel ?Zend_Gdata_App_MediaEntryl2 gZend_Gdata_App_LoggingHttpClientAdapterSocketl AZend_Gdata_App_IOExceptionl, [Zend_Gdata_App_InvalidArgumentExceptionl!  EZend_Gdata_App_HttpExceptionl$ KZend_Gdata_App_FeedSourceParentl   _  P V-pM+^<pS&




y
R
,
				p	B	$	O `1oA#
yR'uDY0rEa3
                         (< SZend_Gdata_Photos_Extension_Versionl%; MZend_Gdata_Photos_Extension_Userl*: WZend_Gdata_Photos_Extension_Timestampl*9 WZend_Gdata_Photos_Extension_Thumbnaill%8 MZend_Gdata_Photos_Extension_Sizel)7 UZend_Gdata_Photos_Extension_Rotationl+6 YZend_Gdata_Photos_Extension_QuotaLimitl-5 ]Zend_Gdata_Photos_Extension_QuotaCurrentl)4 UZend_Gdata_Photos_Extension_Positionl(3 SZend_Gdata_Photos_Extension_PhotoIdl32 iZend_Gdata_Photos_Extension_NumPhotosRemainingl*1 WZend_Gdata_Photos_Extension_NumPhotosl)0 UZend_Gdata_Photos_Extension_Nicknamel%/ MZend_Gdata_Photos_Extension_Namel2. gZend_Gdata_Photos_Extension_MaxPhotosPerAlbuml)- UZend_Gdata_Photos_Extension_Locationl#, IZend_Gdata_Photos_Extension_Idl'+ QZend_Gdata_Photos_Extension_Heightl2* gZend_Gdata_Photos_Extension_CommentingEnabledl-) ]Zend_Gdata_Photos_Extension_CommentCountl'( QZend_Gdata_Photos_Extension_Clientl)' UZend_Gdata_Photos_Extension_Checksuml*& WZend_Gdata_Photos_Extension_BytesUsedl(% SZend_Gdata_Photos_Extension_AlbumIdl'$ QZend_Gdata_Photos_Extension_Accessl## IZend_Gdata_Photos_CommentEntryl!" EZend_Gdata_Photos_AlbumQueryl ! CZend_Gdata_Photos_AlbumFeedl!  EZend_Gdata_Photos_AlbumEntryl AZend_Gdata_MediaMimeStreaml -Zend_Gdata_Medial 7Zend_Gdata_Media_Feedl* WZend_Gdata_Media_Extension_MediaTitlel. _Zend_Gdata_Media_Extension_MediaThumbnaill) UZend_Gdata_Media_Extension_MediaTextl0 cZend_Gdata_Media_Extension_MediaRestrictionl+ YZend_Gdata_Media_Extension_MediaRatingl+ YZend_Gdata_Media_Extension_MediaPlayerl- ]Zend_Gdata_Media_Extension_MediaKeywordsl) UZend_Gdata_Media_Extension_MediaHashl* WZend_Gdata_Media_Extension_MediaGroupl0 cZend_Gdata_Media_Extension_MediaDescriptionl+ YZend_Gdata_Media_Extension_MediaCreditl. _Zend_Gdata_Media_Extension_MediaCopyrightl, [Zend_Gdata_Media_Extension_MediaContentl- ]Zend_Gdata_Media_Extension_MediaCategoryl 9Zend_Gdata_Media_Entryl AZend_Gdata_Kind_EventEntryl 7Zend_Gdata_HttpClientl* WZend_Gdata_HttpAdapterStreamingSocketl)
 UZend_Gdata_HttpAdapterStreamingProxyl	 /Zend_Gdata_Healthl ;Zend_Gdata_Health_Queryl& OZend_Gdata_Health_ProfileListFeedl' QZend_Gdata_Health_ProfileListEntryl" GZend_Gdata_Health_ProfileFeedl# IZend_Gdata_Health_ProfileEntryl$ KZend_Gdata_Health_Extension_Ccrl )Zend_Gdata_Geol 3Zend_Gdata_Geo_Feedl$  KZend_Gdata_Geo_Extension_GmlPosl& OZend_Gdata_Geo_Extension_GmlPointl)~ UZend_Gdata_Geo_Extension_GeoRssWherel} 5Zend_Gdata_Geo_Entryl| -Zend_Gdata_Gbasel"{ GZend_Gdata_Gbase_SnippetQueryl!z EZend_Gdata_Gbase_SnippetFeedl"y GZend_Gdata_Gbase_SnippetEntrylx 9Zend_Gdata_Gbase_Querylw AZend_Gdata_Gbase_ItemQuerylv ?Zend_Gdata_Gbase_ItemFeedlu AZend_Gdata_Gbase_ItemEntrylt 7Zend_Gdata_Gbase_Feedl-s ]Zend_Gdata_Gbase_Extension_BaseAttributelr 9Zend_Gdata_Gbase_Entrylq -Zend_Gdata_Gappslp AZend_Gdata_Gapps_UserQuerylo ?Zend_Gdata_Gapps_UserFeedln AZend_Gdata_Gapps_UserEntryl&m OZend_Gdata_Gapps_ServiceExceptionll 9Zend_Gdata_Gapps_Queryl#k IZend_Gdata_Gapps_NicknameQueryl"j GZend_Gdata_Gapps_NicknameFeedl#i IZend_Gdata_Gapps_NicknameEntryl%h MZend_Gdata_Gapps_Extension_Quotal(g SZend_Gdata_Gapps_Extension_Nicknamel$f KZend_Gdata_Gapps_Extension_Namel%e MZend_Gdata_Gapps_Extension_Loginl)d UZend_Gdata_Gapps_Extension_EmailListlc 9Zend_Gdata_Gapps_Errorl-b ]Zend_Gdata_Gapps_EmailListRecipientQueryl,a [Zend_Gdata_Gapps_EmailListRecipientFeedl-` ]Zend_Gdata_Gapps_EmailListRecipientEntryl$_ KZend_Gdata_Gapps_EmailListQueryl#^ IZend_Gdata_Gapps_EmailListFeedl   |ung`YRKD=6/(!yrkd]VOHA:3,%	}vohaZSLE>70)"



















z
s
l
e
^
W
P
I
B
;
4
-
&





																			~	w	p	i	b	[	T	M	F	?	8	1	*	#					 {tmf_XQJC<5.' xqjc\UNG@92+$|ung`YRKD=6/(!yrkd]VOHA:3,%	}vohaZSLE>70)"{tmf_XQJC<5.' xqjc\UNG@92+$+  7Q  6p  5  4         M  L,  KP  Jr  I  H*  GA  FZ  Ev  B  A!  @<  ?r  >  =/  <W  ;v  :  9  8+  7Q  6p  5  4(  3B  2U  0q  /  .  -F  ,t  +  *-  )^  (y  '  &  %/  $T  #r  "  !'   F  X  s      Q  y    6  ]  y      6  Z  x    (  C  ]  
v  	  !  X  x    =  [  v       8  X  y    )  <  Z  n    ,  ^  y    C  b  r  |  틢  싡<  닠Y  ꋟz  鋟  苞-  狝>  勜Y  䋛p  ㋚  ⋚5  ዙ`  {  ߋ  ދC  ݋^  ܋i  ۋu  ڋ  ً>  ؋[  ׋v  ֋  Ջ)  ԋA  ҋZ  ыo  Ћ  ϋ<  ΋]  ͋z  ̋!  ˋ?  ʋZ  ɋc  ȋx  ǋ  Ƌ=  ŋ^  ċu  Ë  !  =  S  h    @  \  {  $  @  J  Y  }    >  W  n    $  8  M  j     >  \    %  <  C  Y      ?  U  p      4  H  t    <  ]      %  F  k    #  6  N  i  ~    7  l    "  N  i  r    2  ~O  }o  |}  {  z3  xK  w`  vy  u0  tL  sh  r  q4  p>  oQ  nx  m  l6  kI  jc  i{  g  f(  e;  ds  c  b/  aW  `{  _  ^  \<  []  Z~  Y  X-  W@  UZ  Tr  S  R8  QZ  Pw  O  NF  MT  Lb  K  J'  IH  Ha  Gw  F  D%  C<  BM  A   @(  ?D  >i  =  <#  ;-  :Q  9t  8  7,  6A  5T  3q  2  1  0G  /p  .  -0  ,S  +m  *t  )  (=  'Z  &u  %	  $  #:  "N  !b     ;  W  |  !  6  @  d    &  ?  T  h      (  ]      E  k  
~  		  -  P  o      1  L   b  r    -  V  i  w    <  ]  v    $  3  G  [  y  !  >  D  i    *  D  Z  q      )  F  t    ߉  މ4  ݉Z  ܉w  ۉ  ډ'  ى>  ؉Y  ׉l  ։x  Չ  ԉ<  Ӊ_  ҉i  щ  Љ'  ωD  Ήe  ͉t  ̉  ʉ%  ɉ:   bG  ǉd  Ɖ  ŉ/  ĉ:  ÉL  s    3  F  a  x      -    D    a  "  t  E    W  $  E  X    2  O  u    1  <  L  q    1  J  a  ~x  |  {)  z?  y_  x  w/  vM  uu  t  s,  r1  qI  pp  o  n/  mD  la  kt  i  h&  g:  ff  e  d2  cM  b}  a  `%  _/  ^M  ]r  \  [-  ZE  Y`  Xu  V  U&  T5  Sm  R  Q0  PR  Ow  N   [  b=|R)o>]-_7



k
@
				X	)tJX,tA]+sGmH"nAx]J$                      # IZend_Http_Client_Adapter_Proxyl' QZend_Http_Client_Adapter_Exceptionl" GZend_Http_Client_Adapter_Curll !Zend_Gdatal 1Zend_Gdata_YouTubel" GZend_Gdata_YouTube_VideoQueryl! EZend_Gdata_YouTube_VideoFeedl" GZend_Gdata_YouTube_VideoEntryl( SZend_Gdata_YouTube_UserProfileEntryl( SZend_Gdata_YouTube_SubscriptionFeedl) UZend_Gdata_YouTube_SubscriptionEntryl) UZend_Gdata_YouTube_PlaylistVideoFeedl* WZend_Gdata_YouTube_PlaylistVideoEntryl(
 SZend_Gdata_YouTube_PlaylistListFeedl)	 UZend_Gdata_YouTube_PlaylistListEntryl" GZend_Gdata_YouTube_MediaEntryl! EZend_Gdata_YouTube_InboxFeedl" GZend_Gdata_YouTube_InboxEntryl) UZend_Gdata_YouTube_Extension_VideoIdl* WZend_Gdata_YouTube_Extension_Usernamel* WZend_Gdata_YouTube_Extension_Uploadedl' QZend_Gdata_YouTube_Extension_Tokenl( SZend_Gdata_YouTube_Extension_Statusl,  [Zend_Gdata_YouTube_Extension_Statisticsl' QZend_Gdata_YouTube_Extension_Statel(~ SZend_Gdata_YouTube_Extension_Schooll-} ]Zend_Gdata_YouTube_Extension_ReleaseDatel.| _Zend_Gdata_YouTube_Extension_Relationshipl*{ WZend_Gdata_YouTube_Extension_Recordedl&z OZend_Gdata_YouTube_Extension_Racyl-y ]Zend_Gdata_YouTube_Extension_QueryStringl)x UZend_Gdata_YouTube_Extension_Privatel*w WZend_Gdata_YouTube_Extension_Positionl/v aZend_Gdata_YouTube_Extension_PlaylistTitlel,u [Zend_Gdata_YouTube_Extension_PlaylistIdl,t [Zend_Gdata_YouTube_Extension_Occupationl)s UZend_Gdata_YouTube_Extension_NoEmbedl'r QZend_Gdata_YouTube_Extension_Musicl(q SZend_Gdata_YouTube_Extension_Moviesl-p ]Zend_Gdata_YouTube_Extension_MediaRatingl,o [Zend_Gdata_YouTube_Extension_MediaGroupl-n ]Zend_Gdata_YouTube_Extension_MediaCreditl.m _Zend_Gdata_YouTube_Extension_MediaContentl*l WZend_Gdata_YouTube_Extension_Locationl&k OZend_Gdata_YouTube_Extension_Linkl*j WZend_Gdata_YouTube_Extension_LastNamel*i WZend_Gdata_YouTube_Extension_Hometownl)h UZend_Gdata_YouTube_Extension_Hobbiesl(g SZend_Gdata_YouTube_Extension_Genderl+f YZend_Gdata_YouTube_Extension_FirstNamel*e WZend_Gdata_YouTube_Extension_Durationl-d ]Zend_Gdata_YouTube_Extension_Descriptionl+c YZend_Gdata_YouTube_Extension_CountHintl)b UZend_Gdata_YouTube_Extension_Controll)a UZend_Gdata_YouTube_Extension_Companyl'` QZend_Gdata_YouTube_Extension_Booksl%_ MZend_Gdata_YouTube_Extension_Agel)^ UZend_Gdata_YouTube_Extension_AboutMel#] IZend_Gdata_YouTube_ContactFeedl$\ KZend_Gdata_YouTube_ContactEntryl#[ IZend_Gdata_YouTube_CommentFeedl$Z KZend_Gdata_YouTube_CommentEntryl$Y KZend_Gdata_YouTube_ActivityFeedl%X MZend_Gdata_YouTube_ActivityEntrylW ;Zend_Gdata_Spreadsheetsl*V WZend_Gdata_Spreadsheets_WorksheetFeedl+U YZend_Gdata_Spreadsheets_WorksheetEntryl,T [Zend_Gdata_Spreadsheets_SpreadsheetFeedl-S ]Zend_Gdata_Spreadsheets_SpreadsheetEntryl&R OZend_Gdata_Spreadsheets_ListQueryl%Q MZend_Gdata_Spreadsheets_ListFeedl&P OZend_Gdata_Spreadsheets_ListEntryl/O aZend_Gdata_Spreadsheets_Extension_RowCountl-N ]Zend_Gdata_Spreadsheets_Extension_Customl/M aZend_Gdata_Spreadsheets_Extension_ColCountl+L YZend_Gdata_Spreadsheets_Extension_Celll*K WZend_Gdata_Spreadsheets_DocumentQueryl&J OZend_Gdata_Spreadsheets_CellQueryl%I MZend_Gdata_Spreadsheets_CellFeedl&H OZend_Gdata_Spreadsheets_CellEntrylG -Zend_Gdata_QuerylF /Zend_Gdata_Photosl E CZend_Gdata_Photos_UserQuerylD AZend_Gdata_Photos_UserFeedl C CZend_Gdata_Photos_UserEntrylB AZend_Gdata_Photos_TagEntryl!A EZend_Gdata_Photos_PhotoQueryl @ CZend_Gdata_Photos_PhotoFeedl!? EZend_Gdata_Photos_PhotoEntryl&> OZend_Gdata_Photos_Extension_Widthl'= QZend_Gdata_Photos_Extension_Weightl   o  v]A%
c6oR)	i:rH&



J
						c	L	-	}[6 o[?-|hC*eE$~cC&	gK4~S(rQ2             9Zend_Mail_Storage_Mboxl ?Zend_Mail_Storage_Maildirl 9Zend_Mail_Storage_Imapl =Zend_Mail_Storage_Folderl" GZend_Mail_Storage_Folder_Mboxl% MZend_Mail_Storage_Folder_Maildirl   CZend_Mail_Storage_Exceptionl AZend_Mail_Storage_Abstractl~ ;Zend_Mail_Protocol_Smtpl'} QZend_Mail_Protocol_Smtp_Auth_Plainl'| QZend_Mail_Protocol_Smtp_Auth_Loginl){ UZend_Mail_Protocol_Smtp_Auth_Crammd5lz ;Zend_Mail_Protocol_Pop3ly ;Zend_Mail_Protocol_Imapl!x EZend_Mail_Protocol_Exceptionl w CZend_Mail_Protocol_Abstractlv )Zend_Mail_Partlu 3Zend_Mail_Part_Filelt /Zend_Mail_Messagels 9Zend_Mail_Message_Filelr 3Zend_Mail_Exceptionlq Zend_Loglp 9Zend_Log_Writer_Streamlo 5Zend_Log_Writer_Nullln 5Zend_Log_Writer_Mocklm 5Zend_Log_Writer_Mailll ;Zend_Log_Writer_Firebuglk 1Zend_Log_Writer_Dblj =Zend_Log_Writer_Abstractli 9Zend_Log_Formatter_Xmllh ?Zend_Log_Formatter_Simplelg AZend_Log_Formatter_Firebuglf =Zend_Log_Filter_Suppressle =Zend_Log_Filter_Priorityld ;Zend_Log_Filter_Messagelc 1Zend_Log_Exceptionlb #Zend_Localela -Zend_Locale_Mathl` =Zend_Locale_Math_PhpMathl_ AZend_Locale_Math_Exceptionl^ 1Zend_Locale_Formatl] 7Zend_Locale_Exceptionl\ -Zend_Locale_Datal![ EZend_Locale_Data_TranslationlZ #Zend_LoaderlY =Zend_Loader_PluginLoaderl'X QZend_Loader_PluginLoader_ExceptionlW 7Zend_Loader_ExceptionlV 9Zend_Loader_Autoloaderl$U KZend_Loader_Autoloader_ResourcelT Zend_LdaplS 3Zend_Ldap_ExceptionlR #Zend_LayoutlQ 7Zend_Layout_Exceptionl)P UZend_Layout_Controller_Plugin_Layoutl0O cZend_Layout_Controller_Action_Helper_LayoutlN Zend_JsonlM -Zend_Json_ServerlL 5Zend_Json_Server_Smdl!K EZend_Json_Server_Smd_ServicelJ ?Zend_Json_Server_Responsel#I IZend_Json_Server_Response_HttplH =Zend_Json_Server_Requestl"G GZend_Json_Server_Request_HttplF AZend_Json_Server_ExceptionlE 9Zend_Json_Server_ErrorlD 9Zend_Json_Server_CachelC )Zend_Json_ExprlB 3Zend_Json_ExceptionlA /Zend_Json_Encoderl@ /Zend_Json_Decoderl? 'Zend_InfoCardl-> ]Zend_InfoCard_Xml_SecurityTokenReferencel= AZend_InfoCard_Xml_Securityl)< UZend_InfoCard_Xml_Security_Transforml4; kZend_InfoCard_Xml_Security_Transform_XmlExcC14Nl3: iZend_InfoCard_Xml_Security_Transform_Exceptionl<9 {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignaturel)8 UZend_InfoCard_Xml_Security_Exceptionl7 ?Zend_InfoCard_Xml_KeyInfol&6 OZend_InfoCard_Xml_KeyInfo_XmlDSigl&5 OZend_InfoCard_Xml_KeyInfo_Defaultl'4 QZend_InfoCard_Xml_KeyInfo_Abstractl 3 CZend_InfoCard_Xml_Exceptionl#2 IZend_InfoCard_Xml_EncryptedKeyl$1 KZend_InfoCard_Xml_EncryptedDatal+0 YZend_InfoCard_Xml_EncryptedData_XmlEncl-/ ]Zend_InfoCard_Xml_EncryptedData_Abstractl. ?Zend_InfoCard_Xml_Elementl - CZend_InfoCard_Xml_Assertionl%, MZend_InfoCard_Xml_Assertion_Samll+ ;Zend_InfoCard_Exceptionl%* MZend_InfoCard_Exception_Abstractl) 5Zend_InfoCard_Claimsl( 5Zend_InfoCard_Cipherl5' mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcl5& mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcl4% kZend_InfoCard_Cipher_Symmetric_Adapter_Abstractl)$ UZend_InfoCard_Cipher_Pki_Adapter_Rsal.# _Zend_InfoCard_Cipher_Pki_Adapter_Abstractl#" IZend_InfoCard_Cipher_Exceptionl$! KZend_InfoCard_Adapter_Exceptionl"  GZend_InfoCard_Adapter_Defaultl 1Zend_Http_Responsel 3Zend_Http_Exceptionl 3Zend_Http_CookieJarl -Zend_Http_Cookiel -Zend_Http_Clientl AZend_Http_Client_Exceptionl" GZend_Http_Client_Adapter_Testl$ KZend_Http_Client_Adapter_Socketl   u wQ,hG#kL+x]?$}aE 




}
c
O
6

 					r	Q	4	oQ'`8tFa>(~]9jAxX=
w[0                 ){ UZend_Pdf_FileParserDataSource_Stringl'z QZend_Pdf_FileParserDataSource_Filely 3Zend_Pdf_FileParserlx ?Zend_Pdf_FileParser_Imagel"w GZend_Pdf_FileParser_Image_Pnglv =Zend_Pdf_FileParser_Fontl&u OZend_Pdf_FileParser_Font_OpenTypel/t aZend_Pdf_FileParser_Font_OpenType_TrueTypels 1Zend_Pdf_Exceptionlr ;Zend_Pdf_ElementFactoryl"q GZend_Pdf_ElementFactory_Proxylp -Zend_Pdf_Elementlo ;Zend_Pdf_Element_Stringl#n IZend_Pdf_Element_String_Binarylm ;Zend_Pdf_Element_Streamll AZend_Pdf_Element_Referencel%k MZend_Pdf_Element_Reference_Tablel'j QZend_Pdf_Element_Reference_Contextli ;Zend_Pdf_Element_Objectl#h IZend_Pdf_Element_Object_Streamlg =Zend_Pdf_Element_Numericlf 7Zend_Pdf_Element_Nullle 7Zend_Pdf_Element_Namel d CZend_Pdf_Element_Dictionarylc =Zend_Pdf_Element_Booleanlb 9Zend_Pdf_Element_Arrayla )Zend_Pdf_Colorl` 1Zend_Pdf_Color_Rgbl_ 3Zend_Pdf_Color_Htmll^ =Zend_Pdf_Color_GrayScalel] 3Zend_Pdf_Color_Cmykl\ 'Zend_Pdf_Cmapl[ AZend_Pdf_Cmap_TrimmedTablel!Z EZend_Pdf_Cmap_SegmentToDeltalY AZend_Pdf_Cmap_ByteEncodingl&X OZend_Pdf_Cmap_ByteEncoding_StaticlW )Zend_Paginatorl*V WZend_Paginator_ScrollingStyle_Slidingl*U WZend_Paginator_ScrollingStyle_Jumpingl*T WZend_Paginator_ScrollingStyle_Elasticl&S OZend_Paginator_ScrollingStyle_AlllR =Zend_Paginator_Exceptionl Q CZend_Paginator_Adapter_Nulll$P KZend_Paginator_Adapter_Iteratorl)O UZend_Paginator_Adapter_DbTableSelectl$N KZend_Paginator_Adapter_DbSelectl!M EZend_Paginator_Adapter_ArraylL #Zend_OpenIdlK 5Zend_OpenId_ProviderlJ ?Zend_OpenId_Provider_Userl&I OZend_OpenId_Provider_User_Sessionl!H EZend_OpenId_Provider_Storagel&G OZend_OpenId_Provider_Storage_FilelF 7Zend_OpenId_ExtensionlE AZend_OpenId_Extension_SreglD 7Zend_OpenId_ExceptionlC 5Zend_OpenId_Consumerl!B EZend_OpenId_Consumer_Storagel&A OZend_OpenId_Consumer_Storage_Filel@ +Zend_Navigationl? 5Zend_Navigation_Pagel> =Zend_Navigation_Page_Uril= =Zend_Navigation_Page_Mvcl< ?Zend_Navigation_Exceptionl; ?Zend_Navigation_Containerl: Zend_Mimel9 )Zend_Mime_Partl8 /Zend_Mime_Messagel7 3Zend_Mime_Exceptionl6 -Zend_Mime_Decodel5 #Zend_Memoryl4 /Zend_Memory_Valuel3 3Zend_Memory_Managerl2 7Zend_Memory_Exceptionl1 7Zend_Memory_Containerl"0 GZend_Memory_Container_Movablel!/ EZend_Memory_Container_Lockedl!. EZend_Memory_AccessControllerl- 3Zend_Measure_Weightl, 3Zend_Measure_Volumel%+ MZend_Measure_Viscosity_Kinematicl#* IZend_Measure_Viscosity_Dynamicl) 3Zend_Measure_Torquel( /Zend_Measure_Timel' =Zend_Measure_Temperaturel& 1Zend_Measure_Speedl% 7Zend_Measure_Pressurel$ 1Zend_Measure_Powerl# 3Zend_Measure_Numberl" 9Zend_Measure_Lightnessl! 3Zend_Measure_Lengthl  ?Zend_Measure_Illuminationl 9Zend_Measure_Frequencyl 1Zend_Measure_Forcel =Zend_Measure_Flow_Volumel 9Zend_Measure_Flow_Molel 9Zend_Measure_Flow_Massl 9Zend_Measure_Exceptionl 3Zend_Measure_Energyl 5Zend_Measure_Densityl 5Zend_Measure_Currentl  CZend_Measure_Cooking_Weightl  CZend_Measure_Cooking_Volumel =Zend_Measure_Capacitancel 3Zend_Measure_Binaryl /Zend_Measure_Areal 1Zend_Measure_Anglel ?Zend_Measure_Accelerationl 7Zend_Measure_Abstractl Zend_Maill =Zend_Mail_Transport_Smtpl! EZend_Mail_Transport_Sendmaill" GZend_Mail_Transport_Exceptionl!
 EZend_Mail_Transport_Abstractl	 /Zend_Mail_Storagel' QZend_Mail_Storage_Writable_Maildirl 9Zend_Mail_Storage_Pop3l   \  oG#_8~GS["


n
2
				t	P	+	rR9_>hG%cM* oQEu9t6   6W oZend_Search_Lucene_Analysis_TokenFilter_StopWordsl7V qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsl:U wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8l6T oZend_Search_Lucene_Analysis_TokenFilter_LowerCasel&S OZend_Search_Lucene_Analysis_Tokenl)R UZend_Search_Lucene_Analysis_Analyzerl0Q cZend_Search_Lucene_Analysis_Analyzer_Commonl8P sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumlIO Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitivel5N mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8lFM Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitivel8L sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumlIK Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitivel5J mZend_Search_Lucene_Analysis_Analyzer_Common_TextlFI Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitivelH 7Zend_Search_ExceptionlG -Zend_Rest_ServerlF AZend_Rest_Server_ExceptionlE 3Zend_Rest_ExceptionlD -Zend_Rest_ClientlC ;Zend_Rest_Client_Resultl&B OZend_Rest_Client_Result_ExceptionlA AZend_Rest_Client_Exceptionl@ 'Zend_Registryl? =Zend_Reflection_Propertyl> ?Zend_Reflection_Parameterl= 9Zend_Reflection_Methodl< =Zend_Reflection_Functionl; 5Zend_Reflection_Filel: ?Zend_Reflection_Extensionl9 ?Zend_Reflection_Exceptionl8 =Zend_Reflection_Docblockl!7 EZend_Reflection_Docblock_Tagl(6 SZend_Reflection_Docblock_Tag_Returnl'5 QZend_Reflection_Docblock_Tag_Paraml4 7Zend_Reflection_Classl3 -Zend_ProgressBarl2 AZend_ProgressBar_Exceptionl1 =Zend_ProgressBar_Adapterl$0 KZend_ProgressBar_Adapter_JsPushl$/ KZend_ProgressBar_Adapter_JsPulll'. QZend_ProgressBar_Adapter_Exceptionl%- MZend_ProgressBar_Adapter_Consolel, Zend_Pdfl!+ EZend_Pdf_UpdateInfoContainerl* -Zend_Pdf_Trailerl) ;Zend_Pdf_Trailer_Keeperl( AZend_Pdf_Trailer_Generatorl' )Zend_Pdf_Stylel& 7Zend_Pdf_StringParserl% /Zend_Pdf_Resourcel#$ IZend_Pdf_Resource_ImageFactoryl# ;Zend_Pdf_Resource_Imagel!" EZend_Pdf_Resource_Image_Tiffl ! CZend_Pdf_Resource_Image_Pngl!  EZend_Pdf_Resource_Image_Jpegl 9Zend_Pdf_Resource_Fontl! EZend_Pdf_Resource_Font_Type0l" GZend_Pdf_Resource_Font_Simplel+ YZend_Pdf_Resource_Font_Simple_Standardl8 sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsl6 oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanl7 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicl; yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicl5 mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldl2 gZend_Pdf_Resource_Font_Simple_Standard_Symboll< {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliquelA Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliquel9 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldl5 mZend_Pdf_Resource_Font_Simple_Standard_Helvetical: wZend_Pdf_Resource_Font_Simple_Standard_CourierObliquel> Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliquel7 qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldl3 iZend_Pdf_Resource_Font_Simple_Standard_Courierl) UZend_Pdf_Resource_Font_Simple_Parsedl2 gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypel* WZend_Pdf_Resource_Font_FontDescriptorl%
 MZend_Pdf_Resource_Font_Extractedl#	 IZend_Pdf_Resource_Font_CidFontl, [Zend_Pdf_Resource_Font_CidFont_TrueTypel /Zend_Pdf_PhpArrayl +Zend_Pdf_Parserl 9Zend_Pdf_Parser_Streaml 'Zend_Pdf_Pagel )Zend_Pdf_Imagel 'Zend_Pdf_Fontl  CZend_Pdf_Filter_Compressionl$  KZend_Pdf_Filter_Compression_Lzwl& OZend_Pdf_Filter_Compression_Flatel~ =Zend_Pdf_Filter_AsciiHexl} ;Zend_Pdf_Filter_Ascii85l"| GZend_Pdf_FileParserDataSourcel   X  yP$hI$n?pFgF


t
F
			s	6j9uHV)g4uHoR8gBvM$       / 7Zend_Service_Abstractl. 9Zend_Server_Reflectionl'- QZend_Server_Reflection_ReturnValuel%, MZend_Server_Reflection_Prototypel%+ MZend_Server_Reflection_Parameterl * CZend_Server_Reflection_Nodel") GZend_Server_Reflection_Methodl$( KZend_Server_Reflection_Functionl-' ]Zend_Server_Reflection_Function_Abstractl%& MZend_Server_Reflection_Exceptionl!% EZend_Server_Reflection_Classl!$ EZend_Server_Method_Prototypel!# EZend_Server_Method_Parameterl"" GZend_Server_Method_Definitionl ! CZend_Server_Method_Callbackl  7Zend_Server_Exceptionl 9Zend_Server_Definitionl /Zend_Server_Cachel 5Zend_Server_Abstractl 1Zend_Search_Lucenel0 cZend_Search_Lucene_TermStreamsPriorityQueuel$ KZend_Search_Lucene_Storage_Filel+ YZend_Search_Lucene_Storage_File_Memoryl/ aZend_Search_Lucene_Storage_File_Filesysteml) UZend_Search_Lucene_Storage_Directoryl4 kZend_Search_Lucene_Storage_Directory_Filesysteml% MZend_Search_Lucene_Search_Weightl* WZend_Search_Lucene_Search_Weight_Terml, [Zend_Search_Lucene_Search_Weight_Phrasel/ aZend_Search_Lucene_Search_Weight_MultiTerml+ YZend_Search_Lucene_Search_Weight_Emptyl- ]Zend_Search_Lucene_Search_Weight_Booleanl) UZend_Search_Lucene_Search_Similarityl1 eZend_Search_Lucene_Search_Similarity_Defaultl) UZend_Search_Lucene_Search_QueryTokenl3 iZend_Search_Lucene_Search_QueryParserExceptionl1 eZend_Search_Lucene_Search_QueryParserContextl*
 WZend_Search_Lucene_Search_QueryParserl)	 UZend_Search_Lucene_Search_QueryLexerl' QZend_Search_Lucene_Search_QueryHitl) UZend_Search_Lucene_Search_QueryEntryl. _Zend_Search_Lucene_Search_QueryEntry_Terml2 gZend_Search_Lucene_Search_QueryEntry_Subqueryl0 cZend_Search_Lucene_Search_QueryEntry_Phrasel$ KZend_Search_Lucene_Search_Queryl- ]Zend_Search_Lucene_Search_Query_Wildcardl) UZend_Search_Lucene_Search_Query_Terml*  WZend_Search_Lucene_Search_Query_Rangel2 gZend_Search_Lucene_Search_Query_Preprocessingl7~ qZend_Search_Lucene_Search_Query_Preprocessing_Terml9} uZend_Search_Lucene_Search_Query_Preprocessing_Phrasel8| sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzyl+{ YZend_Search_Lucene_Search_Query_Phrasel.z _Zend_Search_Lucene_Search_Query_MultiTerml2y gZend_Search_Lucene_Search_Query_Insignificantl*x WZend_Search_Lucene_Search_Query_Fuzzyl*w WZend_Search_Lucene_Search_Query_Emptyl,v [Zend_Search_Lucene_Search_Query_Booleanl2u gZend_Search_Lucene_Search_Highlighter_Defaultl:t wZend_Search_Lucene_Search_BooleanExpressionRecognizerls =Zend_Search_Lucene_Proxyl%r MZend_Search_Lucene_PriorityQueuel/q aZend_Search_Lucene_Interface_MultiSearcherl#p IZend_Search_Lucene_LockManagerl$o KZend_Search_Lucene_Index_Writerl0n cZend_Search_Lucene_Index_TermsPriorityQueuel&m OZend_Search_Lucene_Index_TermInfol"l GZend_Search_Lucene_Index_Terml+k YZend_Search_Lucene_Index_SegmentWriterl8j sZend_Search_Lucene_Index_SegmentWriter_StreamWriterl:i wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterl+h YZend_Search_Lucene_Index_SegmentMergerl)g UZend_Search_Lucene_Index_SegmentInfol'f QZend_Search_Lucene_Index_FieldInfol(e SZend_Search_Lucene_Index_DocsFilterl.d _Zend_Search_Lucene_Index_DictionaryLoaderl!c EZend_Search_Lucene_FSMActionlb 9Zend_Search_Lucene_FSMla =Zend_Search_Lucene_Fieldl!` EZend_Search_Lucene_Exceptionl _ CZend_Search_Lucene_Documentl%^ MZend_Search_Lucene_Document_Xlsxl%] MZend_Search_Lucene_Document_Pptxl(\ SZend_Search_Lucene_Document_OpenXmll%[ MZend_Search_Lucene_Document_Htmll*Z WZend_Search_Lucene_Document_Exceptionl%Y MZend_Search_Lucene_Document_Docxl,X [Zend_Search_Lucene_Analysis_TokenFilterl   c  kBrI!V0|Z4[2



~
\
9
				u	N	0	fF!zU*eE e9f4yR(tIcF%        & OZend_Service_Yahoo_ImageResultSetl# IZend_Service_Yahoo_ImageResultl =Zend_Service_Yahoo_Imagel 5Zend_Service_Twitterl  CZend_Service_Twitter_Searchl# IZend_Service_Twitter_Exceptionl ;Zend_Service_Technoratil# IZend_Service_Technorati_Weblogl"
 GZend_Service_Technorati_Utilsl*	 WZend_Service_Technorati_TagsResultSetl' QZend_Service_Technorati_TagsResultl) UZend_Service_Technorati_TagResultSetl& OZend_Service_Technorati_TagResultl, [Zend_Service_Technorati_SearchResultSetl) UZend_Service_Technorati_SearchResultl& OZend_Service_Technorati_ResultSetl# IZend_Service_Technorati_Resultl* WZend_Service_Technorati_KeyInfoResultl*  WZend_Service_Technorati_GetInfoResultl& OZend_Service_Technorati_Exceptionl1~ eZend_Service_Technorati_DailyCountsResultSetl.} _Zend_Service_Technorati_DailyCountsResultl,| [Zend_Service_Technorati_CosmosResultSetl){ UZend_Service_Technorati_CosmosResultl+z YZend_Service_Technorati_BlogInfoResultl#y IZend_Service_Technorati_Authorlx ;Zend_Service_StrikeIronl(w SZend_Service_StrikeIron_ZipCodeInfol2v gZend_Service_StrikeIron_USAddressVerificationl-u ]Zend_Service_StrikeIron_SalesUseTaxBasicl&t OZend_Service_StrikeIron_Exceptionl&s OZend_Service_StrikeIron_Decoratorl!r EZend_Service_StrikeIron_Baselq ;Zend_Service_SlideSharel&p OZend_Service_SlideShare_SlideShowl&o OZend_Service_SlideShare_Exceptionln 1Zend_Service_Simpyl$m KZend_Service_Simpy_WatchlistSetl*l WZend_Service_Simpy_WatchlistFilterSetl'k QZend_Service_Simpy_WatchlistFilterl!j EZend_Service_Simpy_Watchlistli ?Zend_Service_Simpy_TagSetlh 9Zend_Service_Simpy_Taglg AZend_Service_Simpy_NoteSetlf ;Zend_Service_Simpy_Notele AZend_Service_Simpy_LinkSetl!d EZend_Service_Simpy_LinkQuerylc ;Zend_Service_Simpy_Linklb 9Zend_Service_ReCaptchal$a KZend_Service_ReCaptcha_Responsel$` KZend_Service_ReCaptcha_MailHidel._ _Zend_Service_ReCaptcha_MailHide_Exceptionl%^ MZend_Service_ReCaptcha_Exceptionl] 7Zend_Service_Nirvanixl#\ IZend_Service_Nirvanix_Responsel)[ UZend_Service_Nirvanix_Namespace_Imfsl)Z UZend_Service_Nirvanix_Namespace_Basel$Y KZend_Service_Nirvanix_ExceptionlX 3Zend_Service_Flickrl"W GZend_Service_Flickr_ResultSetlV AZend_Service_Flickr_ResultlU ?Zend_Service_Flickr_ImagelT 9Zend_Service_ExceptionlS 9Zend_Service_Deliciousl&R OZend_Service_Delicious_SimplePostl$Q KZend_Service_Delicious_PostListl P CZend_Service_Delicious_Postl%O MZend_Service_Delicious_Exceptionl N CZend_Service_AudioscrobblerlM 3Zend_Service_Amazonl'L QZend_Service_Amazon_SimilarProductlK 9Zend_Service_Amazon_S3l"J GZend_Service_Amazon_S3_Streaml%I MZend_Service_Amazon_S3_Exceptionl"H GZend_Service_Amazon_ResultSetlG ?Zend_Service_Amazon_Queryl!F EZend_Service_Amazon_OfferSetlE ?Zend_Service_Amazon_Offerl&D OZend_Service_Amazon_ListmaniaListlC =Zend_Service_Amazon_ItemlB ?Zend_Service_Amazon_Imagel"A GZend_Service_Amazon_Exceptionl(@ SZend_Service_Amazon_EditorialReviewl? ;Zend_Service_Amazon_Ec2l+> YZend_Service_Amazon_Ec2_Securitygroupsl%= MZend_Service_Amazon_Ec2_Responsel#< IZend_Service_Amazon_Ec2_Regionl$; KZend_Service_Amazon_Ec2_Keypairl%: MZend_Service_Amazon_Ec2_Instancel"9 GZend_Service_Amazon_Ec2_Imagel&8 OZend_Service_Amazon_Ec2_Exceptionl&7 OZend_Service_Amazon_Ec2_Elasticipl 6 CZend_Service_Amazon_Ec2_Ebsl.5 _Zend_Service_Amazon_Ec2_Availabilityzonesl%4 MZend_Service_Amazon_Ec2_Abstractl'3 QZend_Service_Amazon_CustomerReviewl$2 KZend_Service_Amazon_Accessoriesl!1 EZend_Service_Amazon_Abstractl0 5Zend_Service_Akismetl   a  ~T.g@qR)kL,uT+


r
?
(
				]	<	%	
}Oz[3	yZ?)z@
c6VBV,       +s YZend_Tool_Framework_Provider_Exceptionl*r WZend_Tool_Framework_Provider_Abstractl&q OZend_Tool_Framework_Metadata_Tooll)p UZend_Tool_Framework_Metadata_Dynamicl'o QZend_Tool_Framework_Metadata_Basicl,n [Zend_Tool_Framework_Manifest_Repositoryl+m YZend_Tool_Framework_Manifest_Exceptionl1l eZend_Tool_Framework_Loader_IncludePathLoaderlJk Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIteratorl(j SZend_Tool_Framework_Loader_Abstractl"i GZend_Tool_Framework_Exceptionl(h SZend_Tool_Framework_Client_ResponselDg 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separatorl'f QZend_Tool_Framework_Client_Requestl9e uZend_Tool_Framework_Client_Interactive_InputResponsel8d sZend_Tool_Framework_Client_Interactive_InputRequestl8c sZend_Tool_Framework_Client_Interactive_InputHandlerl)b UZend_Tool_Framework_Client_Exceptionl'a QZend_Tool_Framework_Client_ConsolelD` 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizerl0_ cZend_Tool_Framework_Client_Console_Manifestl2^ gZend_Tool_Framework_Client_Console_HelpSysteml6] oZend_Tool_Framework_Client_Console_ArgumentParserl(\ SZend_Tool_Framework_Client_Abstractl*[ WZend_Tool_Framework_Action_Repositoryl)Z UZend_Tool_Framework_Action_Exceptionl$Y KZend_Tool_Framework_Action_BaselX 'Zend_TimeSynclW 1Zend_TimeSync_SntplV 9Zend_TimeSync_ProtocollU /Zend_TimeSync_NtplT ;Zend_TimeSync_ExceptionlS +Zend_Text_TablelR 3Zend_Text_Table_RowlQ ?Zend_Text_Table_Exceptionl&P OZend_Text_Table_Decorator_Unicodel$O KZend_Text_Table_Decorator_AsciilN 9Zend_Text_Table_ColumnlM 3Zend_Text_MultiBytelL -Zend_Text_FigletlK AZend_Text_Figlet_ExceptionlJ 3Zend_Text_Exceptionl)I UZend_Test_PHPUnit_ControllerTestCasel0H cZend_Test_PHPUnit_Constraint_ResponseHeaderl*G WZend_Test_PHPUnit_Constraint_Redirectl+F YZend_Test_PHPUnit_Constraint_Exceptionl*E WZend_Test_PHPUnit_Constraint_DomQuerylD /Zend_Tag_ItemListlC 'Zend_Tag_ItemlB 1Zend_Tag_ExceptionlA )Zend_Tag_Cloudl@ =Zend_Tag_Cloud_Exceptionl!? EZend_Tag_Cloud_Decorator_Tagl%> MZend_Tag_Cloud_Decorator_HtmlTagl'= QZend_Tag_Cloud_Decorator_HtmlCloudl'< QZend_Tag_Cloud_Decorator_Exceptionl#; IZend_Tag_Cloud_Decorator_Cloudl: )Zend_Soap_Wsdll/9 aZend_Soap_Wsdl_Strategy_DefaultComplexTypel&8 OZend_Soap_Wsdl_Strategy_Compositel07 cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequencel/6 aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplexl$5 KZend_Soap_Wsdl_Strategy_AnyTypel%4 MZend_Soap_Wsdl_Strategy_Abstractl3 =Zend_Soap_Wsdl_Exceptionl2 -Zend_Soap_Serverl1 AZend_Soap_Server_Exceptionl0 -Zend_Soap_Clientl/ 9Zend_Soap_Client_Locall. AZend_Soap_Client_Exceptionl- ;Zend_Soap_Client_DotNetl, ;Zend_Soap_Client_Commonl+ 9Zend_Soap_AutoDiscoverl%* MZend_Soap_AutoDiscover_Exceptionl) %Zend_Sessionl)( UZend_Session_Validator_HttpUserAgentl$' KZend_Session_Validator_Abstractl'& QZend_Session_SaveHandler_Exceptionl%% MZend_Session_SaveHandler_DbTablel$ 9Zend_Session_Namespacel# 9Zend_Session_Exceptionl" 7Zend_Session_Abstractl! 1Zend_Service_Yahool$  KZend_Service_Yahoo_WebResultSetl! EZend_Service_Yahoo_WebResultl& OZend_Service_Yahoo_VideoResultSetl# IZend_Service_Yahoo_VideoResultl! EZend_Service_Yahoo_ResultSetl ?Zend_Service_Yahoo_Resultl) UZend_Service_Yahoo_PageDataResultSetl& OZend_Service_Yahoo_PageDataResultl% MZend_Service_Yahoo_NewsResultSetl" GZend_Service_Yahoo_NewsResultl& OZend_Service_Yahoo_LocalResultSetl# IZend_Service_Yahoo_LocalResultl+ YZend_Service_Yahoo_InlinkDataResultSetl( SZend_Service_Yahoo_InlinkDataResultl   H  rMV"W*p>c/



[
(				_	-X)Po/Bw9Kb(F"                                               -; ]Zend_Tool_Project_Profile_FileParser_Xmll(: SZend_Tool_Project_Profile_Exceptionl 9 CZend_Tool_Project_Exceptionl<8 {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectoryl07 cZend_Tool_Project_Context_Zf_ViewsDirectoryl66 oZend_Tool_Project_Context_Zf_ViewScriptsDirectoryl05 cZend_Tool_Project_Context_Zf_ViewScriptFilel64 oZend_Tool_Project_Context_Zf_ViewHelpersDirectoryl63 oZend_Tool_Project_Context_Zf_ViewFiltersDirectorylA2 Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectoryl21 gZend_Tool_Project_Context_Zf_UploadsDirectoryl00 cZend_Tool_Project_Context_Zf_TestsDirectoryl7/ qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFilel@. Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectoryl1- eZend_Tool_Project_Context_Zf_TestLibraryFilel6, oZend_Tool_Project_Context_Zf_TestLibraryDirectoryl:+ wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFilel:* wZend_Tool_Project_Context_Zf_TestApplicationDirectoryl@) Zend_Tool_Project_Context_Zf_TestApplicationControllerFilelE( Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectoryl>' Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFilel4& kZend_Tool_Project_Context_Zf_TemporaryDirectoryl3% iZend_Tool_Project_Context_Zf_SessionsDirectoryl8$ sZend_Tool_Project_Context_Zf_SearchIndexesDirectoryl<# {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectoryl8" sZend_Tool_Project_Context_Zf_PublicScriptsDirectoryl1! eZend_Tool_Project_Context_Zf_PublicIndexFilel7  qZend_Tool_Project_Context_Zf_PublicImagesDirectoryl1 eZend_Tool_Project_Context_Zf_PublicDirectoryl5 mZend_Tool_Project_Context_Zf_ProjectProviderFilel2 gZend_Tool_Project_Context_Zf_ModulesDirectoryl1 eZend_Tool_Project_Context_Zf_ModuleDirectoryl1 eZend_Tool_Project_Context_Zf_ModelsDirectoryl+ YZend_Tool_Project_Context_Zf_ModelFilel/ aZend_Tool_Project_Context_Zf_LogsDirectoryl2 gZend_Tool_Project_Context_Zf_LocalesDirectoryl2 gZend_Tool_Project_Context_Zf_LibraryDirectoryl2 gZend_Tool_Project_Context_Zf_LayoutsDirectoryl. _Zend_Tool_Project_Context_Zf_HtaccessFilel0 cZend_Tool_Project_Context_Zf_FormsDirectoryl* WZend_Tool_Project_Context_Zf_FormFilel- ]Zend_Tool_Project_Context_Zf_DbTableFilel2 gZend_Tool_Project_Context_Zf_DbTableDirectoryl/ aZend_Tool_Project_Context_Zf_DataDirectoryl6 oZend_Tool_Project_Context_Zf_ControllersDirectoryl0 cZend_Tool_Project_Context_Zf_ControllerFilel2 gZend_Tool_Project_Context_Zf_ConfigsDirectoryl, [Zend_Tool_Project_Context_Zf_ConfigFilel0 cZend_Tool_Project_Context_Zf_CacheDirectoryl/
 aZend_Tool_Project_Context_Zf_BootstrapFilel6	 oZend_Tool_Project_Context_Zf_ApplicationDirectoryl7 qZend_Tool_Project_Context_Zf_ApplicationConfigFilel/ aZend_Tool_Project_Context_Zf_ApisDirectoryl. _Zend_Tool_Project_Context_Zf_ActionMethodl@ Zend_Tool_Project_Context_System_ProjectProvidersDirectoryl8 sZend_Tool_Project_Context_System_ProjectProfileFilel6 oZend_Tool_Project_Context_System_ProjectDirectoryl) UZend_Tool_Project_Context_Repositoryl. _Zend_Tool_Project_Context_Filesystem_Filel3  iZend_Tool_Project_Context_Filesystem_Directoryl2 gZend_Tool_Project_Context_Filesystem_Abstractl(~ SZend_Tool_Project_Context_Exceptionl0} cZend_Tool_Framework_System_Provider_Versionl0| cZend_Tool_Framework_System_Provider_Phpinfol1{ eZend_Tool_Framework_System_Provider_Manifestl(z SZend_Tool_Framework_System_Manifestl-y ]Zend_Tool_Framework_System_Action_Deletel-x ]Zend_Tool_Framework_System_Action_Createl!w EZend_Tool_Framework_Registryl+v YZend_Tool_Framework_Registry_Exceptionl+u YZend_Tool_Framework_Provider_Signaturel,t [Zend_Tool_Framework_Provider_Repositoryl   m  QqCoDqN'wR3





~
b
>
						^	8	j?fC$ yT8jQ2_<&yT3`>a>                       ( CZend_View_Helper_FormSelectl' AZend_View_Helper_FormResetl& AZend_View_Helper_FormRadiol"% GZend_View_Helper_FormPasswordl$ ?Zend_View_Helper_FormNotel'# QZend_View_Helper_FormMultiCheckboxl" AZend_View_Helper_FormLabell! AZend_View_Helper_FormImagel   CZend_View_Helper_FormHiddenl ?Zend_View_Helper_FormFilel  CZend_View_Helper_FormErrorsl! EZend_View_Helper_FormElementl" GZend_View_Helper_FormCheckboxl  CZend_View_Helper_FormButtonl 7Zend_View_Helper_Forml ?Zend_View_Helper_Fieldsetl =Zend_View_Helper_Doctypel! EZend_View_Helper_DeclareVarsl 9Zend_View_Helper_Cyclel ;Zend_View_Helper_Actionl ?Zend_View_Helper_Abstractl 3Zend_View_Exceptionl 1Zend_View_Abstractl %Zend_Versionl 'Zend_Validatel AZend_Validate_StringLengthl# IZend_Validate_Sitemap_Priorityl ?Zend_Validate_Sitemap_Locl" GZend_Validate_Sitemap_Lastmodl% MZend_Validate_Sitemap_Changefreql
 3Zend_Validate_Regexl	 9Zend_Validate_NotEmptyl 9Zend_Validate_LessThanl -Zend_Validate_Ipl /Zend_Validate_Intl 7Zend_Validate_InArrayl ;Zend_Validate_Identicall 1Zend_Validate_Ibanl 9Zend_Validate_Hostnamel /Zend_Validate_Hexl  ?Zend_Validate_GreaterThanl 3Zend_Validate_Floatl!~ EZend_Validate_File_WordCountl} ?Zend_Validate_File_Uploadl| ;Zend_Validate_File_Sizel{ ;Zend_Validate_File_Sha1l!z EZend_Validate_File_NotExistsl y CZend_Validate_File_MimeTypelx 9Zend_Validate_File_Md5lw AZend_Validate_File_IsImagel$v KZend_Validate_File_IsCompressedl!u EZend_Validate_File_ImageSizelt ;Zend_Validate_File_Hashl!s EZend_Validate_File_FilesSizel!r EZend_Validate_File_Extensionlq ?Zend_Validate_File_Existsl'p QZend_Validate_File_ExcludeMimeTypel(o SZend_Validate_File_ExcludeExtensionln =Zend_Validate_File_Crc32lm =Zend_Validate_File_Countll ;Zend_Validate_Exceptionlk AZend_Validate_EmailAddresslj 5Zend_Validate_Digitsl"i GZend_Validate_Db_RecordExistsl$h KZend_Validate_Db_NoRecordExistslg ?Zend_Validate_Db_Abstractlf 1Zend_Validate_Datele 3Zend_Validate_Ccnumld 7Zend_Validate_Betweenlc 7Zend_Validate_Barcodelb AZend_Validate_Barcode_UpcAl a CZend_Validate_Barcode_Ean13l` 3Zend_Validate_Alphal_ 3Zend_Validate_Alnuml^ 9Zend_Validate_Abstractl] Zend_Uril\ 'Zend_Uri_Httpl[ 1Zend_Uri_ExceptionlZ )Zend_TranslatelY =Zend_Translate_ExceptionlX 9Zend_Translate_Adapterl!W EZend_Translate_Adapter_XmlTml!V EZend_Translate_Adapter_XlifflU AZend_Translate_Adapter_TmxlT AZend_Translate_Adapter_TbxlS ?Zend_Translate_Adapter_QtlR AZend_Translate_Adapter_Inil#Q IZend_Translate_Adapter_GettextlP AZend_Translate_Adapter_Csvl!O EZend_Translate_Adapter_Arrayl$N KZend_Tool_Project_Provider_Viewl$M KZend_Tool_Project_Provider_Testl/L aZend_Tool_Project_Provider_ProjectProviderl'K QZend_Tool_Project_Provider_Projectl'J QZend_Tool_Project_Provider_Profilel&I OZend_Tool_Project_Provider_Modulel%H MZend_Tool_Project_Provider_Modell(G SZend_Tool_Project_Provider_Manifestl$F KZend_Tool_Project_Provider_Forml)E UZend_Tool_Project_Provider_Exceptionl*D WZend_Tool_Project_Provider_Controllerl&C OZend_Tool_Project_Provider_Actionl(B SZend_Tool_Project_Provider_AbstractlA ?Zend_Tool_Project_Profilel'@ QZend_Tool_Project_Profile_Resourcel9? uZend_Tool_Project_Profile_Resource_SearchConstraintsl1> eZend_Tool_Project_Profile_Resource_Containerl== }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilterl5< mZend_Tool_Project_Profile_Iterator_ContextFilterl   k  rP,	|X6{HzO.	^/



w
T
1
					r	@	yJ^B z_?oM/}T5qV-oKiP1                         ?Zend_Amf_Server_Exceptionm /Zend_Amf_Responsem 9Zend_Amf_Response_Httpm -Zend_Amf_Requestm 7Zend_Amf_Request_Httpm ?Zend_Amf_Parse_TypeLoaderm ?Zend_Amf_Parse_Serializerm# IZend_Amf_Parse_Resource_Streamm( SZend_Amf_Parse_Resource_MysqlResultm)
 UZend_Amf_Parse_Resource_MysqliResultm 	 CZend_Amf_Parse_OutputStreamm AZend_Amf_Parse_InputStreamm  CZend_Amf_Parse_Deserializerm# IZend_Amf_Parse_Amf3_Serializerm% MZend_Amf_Parse_Amf3_Deserializerm# IZend_Amf_Parse_Amf0_Serializerm% MZend_Amf_Parse_Amf0_Deserializerm 1Zend_Amf_Exceptionm 1Zend_Amf_Constantsm  9Zend_Amf_Auth_Abstractm  CZend_Amf_Adobe_Introspectorm~ AZend_Amf_Adobe_DbInspectorm} 3Zend_Amf_Adobe_Authm| Zend_Aclm{ 'Zend_Acl_Rolemz 9Zend_Acl_Role_Registrym%y MZend_Acl_Role_Registry_Exceptionmx /Zend_Acl_Resourcemw 1Zend_Acl_Exceptionmv /Zend_XmlRpc_Valuelu =Zend_XmlRpc_Value_Structlt =Zend_XmlRpc_Value_Stringls =Zend_XmlRpc_Value_Scalarlr 7Zend_XmlRpc_Value_Nillq ?Zend_XmlRpc_Value_Integerl p CZend_XmlRpc_Value_Exceptionlo =Zend_XmlRpc_Value_Doubleln AZend_XmlRpc_Value_DateTimel!m EZend_XmlRpc_Value_Collectionll ?Zend_XmlRpc_Value_Booleanlk =Zend_XmlRpc_Value_Base64lj ;Zend_XmlRpc_Value_Arrayli 1Zend_XmlRpc_Serverlh ?Zend_XmlRpc_Server_Systemlg =Zend_XmlRpc_Server_Faultl!f EZend_XmlRpc_Server_Exceptionle =Zend_XmlRpc_Server_Cacheld 5Zend_XmlRpc_Responselc ?Zend_XmlRpc_Response_Httplb 3Zend_XmlRpc_Requestla ?Zend_XmlRpc_Request_Stdinl` =Zend_XmlRpc_Request_Httpl_ /Zend_XmlRpc_Faultl^ 7Zend_XmlRpc_Exceptionl] 1Zend_XmlRpc_Clientl#\ IZend_XmlRpc_Client_ServerProxyl+[ YZend_XmlRpc_Client_ServerIntrospectionl+Z YZend_XmlRpc_Client_IntrospectExceptionl%Y MZend_XmlRpc_Client_HttpExceptionl&X OZend_XmlRpc_Client_FaultExceptionl!W EZend_XmlRpc_Client_Exceptionl&V OZend_Wildfire_Protocol_JsonStreaml!U EZend_Wildfire_Plugin_FirePhpl.T _Zend_Wildfire_Plugin_FirePhp_TableMessagel)S UZend_Wildfire_Plugin_FirePhp_MessagelR ;Zend_Wildfire_Exceptionl&Q OZend_Wildfire_Channel_HttpHeaderslP Zend_ViewlO -Zend_View_StreamlN 5Zend_View_Helper_UrllM AZend_View_Helper_TranslatelL AZend_View_Helper_ServerUrll)K UZend_View_Helper_RenderToPlaceholderl!J EZend_View_Helper_Placeholderl*I WZend_View_Helper_Placeholder_Registryl4H kZend_View_Helper_Placeholder_Registry_Exceptionl+G YZend_View_Helper_Placeholder_Containerl6F oZend_View_Helper_Placeholder_Container_Standalonel5E mZend_View_Helper_Placeholder_Container_Exceptionl4D kZend_View_Helper_Placeholder_Container_Abstractl!C EZend_View_Helper_PartialLooplB =Zend_View_Helper_Partiall'A QZend_View_Helper_Partial_Exceptionl'@ QZend_View_Helper_PaginationControll ? CZend_View_Helper_Navigationl(> SZend_View_Helper_Navigation_Sitemapl%= MZend_View_Helper_Navigation_Menul&< OZend_View_Helper_Navigation_Linksl/; aZend_View_Helper_Navigation_HelperAbstractl,: [Zend_View_Helper_Navigation_Breadcrumbsl9 ;Zend_View_Helper_Layoutl8 7Zend_View_Helper_Jsonl"7 GZend_View_Helper_InlineScriptl#6 IZend_View_Helper_HtmlQuicktimel5 ?Zend_View_Helper_HtmlPagel 4 CZend_View_Helper_HtmlObjectl3 ?Zend_View_Helper_HtmlListl2 AZend_View_Helper_HtmlFlashl!1 EZend_View_Helper_HtmlElementl0 AZend_View_Helper_HeadTitlel/ AZend_View_Helper_HeadStylel . CZend_View_Helper_HeadScriptl- ?Zend_View_Helper_HeadMetal, ?Zend_View_Helper_HeadLinkl"+ GZend_View_Helper_FormTextareal* ?Zend_View_Helper_FormTextl ) CZend_View_Helper_FormSubmitl   Z  kANe=a5m7



m
D
+
 			Y	FpBRf<!qBj>T({J(                             $| KZend_InfoCard_Adapter_Interfacem'{ QZend_Http_Client_Adapter_Interfacemz AZend_Gdata_App_MediaSourcem.y _Zend_Form_Decorator_Marker_File_Interfacem"x GZend_Form_Decorator_Interfacemw 7Zend_Filter_Interfacem"v GZend_Filter_Encrypt_Interfacem u CZend_Feed_Builder_Interfacem t CZend_Db_Statement_Interfacem)s UZend_Crypt_Math_BigInteger_Interfacem+r YZend_Controller_Router_Route_Interfacem%q MZend_Controller_Router_Interfacem)p UZend_Controller_Dispatcher_Interfacem%o MZend_Controller_Action_Interfacemn 5Zend_Captcha_Adapterm!m EZend_Cache_Backend_Interfacem)l UZend_Cache_Backend_ExtendedInterfacem k CZend_Auth_Storage_Interfacem j CZend_Auth_Adapter_Interfacem.i _Zend_Auth_Adapter_Http_Resolver_Interfacem'h QZend_Application_Resource_Resourcem4g kZend_Application_Bootstrap_ResourceBootstrapperm,f [Zend_Application_Bootstrap_Bootstrapperme ;Zend_Acl_Role_Interfacem d CZend_Acl_Resource_Interfacemc ?Zend_Acl_Assert_Interfacem#b IZend_Wildfire_Plugin_Interfacel$a KZend_Wildfire_Channel_Interfacel` 3Zend_View_Interfacel'_ QZend_View_Helper_Navigation_Helperl^ AZend_View_Helper_Interfacel] ;Zend_Validate_Interfacel3\ iZend_Tool_Project_Profile_FileParser_Interfacel:[ wZend_Tool_Project_Context_System_TopLevelRestrictablel5Z mZend_Tool_Project_Context_System_NotOverwritablel/Y aZend_Tool_Project_Context_System_Interfacel(X SZend_Tool_Project_Context_Interfacel+W YZend_Tool_Framework_Registry_Interfacel2V gZend_Tool_Framework_Registry_EnabledInterfacel-U ]Zend_Tool_Framework_Provider_Pretendablel+T YZend_Tool_Framework_Provider_Interfacel.S _Zend_Tool_Framework_Provider_Interactablel;R yZend_Tool_Framework_Provider_DocblockManifestInterfacel+Q YZend_Tool_Framework_Metadata_Interfacel6P oZend_Tool_Framework_Manifest_ProviderManifestablel6O oZend_Tool_Framework_Manifest_MetadataManifestablel+N YZend_Tool_Framework_Manifest_Interfacel+M YZend_Tool_Framework_Manifest_Indexablel4L kZend_Tool_Framework_Manifest_ActionManifestablelDK 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interfacel;J yZend_Tool_Framework_Client_Interactive_OutputInterfacel:I wZend_Tool_Framework_Client_Interactive_InputInterfacel)H UZend_Tool_Framework_Action_Interfacel(G SZend_Text_Table_Decorator_InterfacelF /Zend_Tag_Taggablel&E OZend_Soap_Wsdl_Strategy_Interfacel%D MZend_Session_Validator_Interfacel'C QZend_Session_SaveHandler_InterfacelB 7Zend_Server_Interfacel4A kZend_Search_Lucene_Search_Highlighter_Interfacel!@ EZend_Search_Lucene_Interfacel3? iZend_Search_Lucene_Index_TermsStream_Interfacel> ?Zend_Pdf_Filter_Interfacel&= OZend_Pdf_ElementFactory_Interfacel,< [Zend_Paginator_ScrollingStyle_Interfacel%; MZend_Paginator_Adapter_Interfacel$: KZend_Memory_Container_Interfacel)9 UZend_Mail_Storage_Writable_Interfacel'8 QZend_Mail_Storage_Folder_Interfacel7 =Zend_Mail_Part_Interfacel 6 CZend_Mail_Message_Interfacel!5 EZend_Log_Formatter_Interfacel4 ?Zend_Log_Filter_Interfacel'3 QZend_Loader_PluginLoader_Interfacel%2 MZend_Loader_Autoloader_Interfacel31 iZend_InfoCard_Xml_Security_Transform_Interfacel(0 SZend_InfoCard_Xml_KeyInfo_Interfacel(/ SZend_InfoCard_Xml_Element_Interfacel*. WZend_InfoCard_Xml_Assertion_Interfacel-- ]Zend_InfoCard_Cipher_Symmetric_Interfacel7, qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interfacel7+ qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interfacel+* YZend_InfoCard_Cipher_Pki_Rsa_Interfacel') QZend_InfoCard_Cipher_Pki_Interfacel$( KZend_InfoCard_Adapter_Interfacel'' QZend_Http_Client_Adapter_Interfacel& AZend_Gdata_App_MediaSourcel.% _Zend_Form_Decorator_Marker_File_Interfacel"$ GZend_Form_Decorator_Interfacel# 7Zend_Filter_Interfacel   h  \+h:	X5
]4X.




[
)					z	^	E	!a?Y3 {X7$
{a=sAm>ya@!yP!                        .{ _Zend_Controller_Action_Helper_ActionStackm+z YZend_Controller_Action_Helper_Abstractm%y MZend_Controller_Action_Exceptionmx 3Zend_Console_Getoptm"w GZend_Console_Getopt_Exceptionmv #Zend_Configmu +Zend_Config_Xmlmt 1Zend_Config_Writerms 9Zend_Config_Writer_Xmlmr 9Zend_Config_Writer_Inimq =Zend_Config_Writer_Arraymp +Zend_Config_Inimo 7Zend_Config_Exceptionm$n KZend_CodeGenerator_Php_Propertym%m MZend_CodeGenerator_Php_Parameterm"l GZend_CodeGenerator_Php_Methodm,k [Zend_CodeGenerator_Php_Member_Containerm+j YZend_CodeGenerator_Php_Member_Abstractm i CZend_CodeGenerator_Php_Filem%h MZend_CodeGenerator_Php_Exceptionm$g KZend_CodeGenerator_Php_Docblockm(f SZend_CodeGenerator_Php_Docblock_Tagm/e aZend_CodeGenerator_Php_Docblock_Tag_Returnm.d _Zend_CodeGenerator_Php_Docblock_Tag_Paramm0c cZend_CodeGenerator_Php_Docblock_Tag_Licensem!b EZend_CodeGenerator_Php_Classm a CZend_CodeGenerator_Php_Bodym$` KZend_CodeGenerator_Php_Abstractm!_ EZend_CodeGenerator_Exceptionm ^ CZend_CodeGenerator_Abstractm] /Zend_Captcha_Wordm\ 9Zend_Captcha_ReCaptcham[ 1Zend_Captcha_ImagemZ 3Zend_Captcha_FigletmY 9Zend_Captcha_ExceptionmX /Zend_Captcha_DumbmW /Zend_Captcha_BasemV !Zend_CachemU =Zend_Cache_Frontend_PagemT AZend_Cache_Frontend_Outputm!S EZend_Cache_Frontend_FunctionmR =Zend_Cache_Frontend_FilemQ ?Zend_Cache_Frontend_ClassmP 5Zend_Cache_ExceptionmO +Zend_Cache_CoremN 1Zend_Cache_Backendm"M GZend_Cache_Backend_ZendServerm(L SZend_Cache_Backend_ZendServer_ShMemm'K QZend_Cache_Backend_ZendServer_Diskm$J KZend_Cache_Backend_ZendPlatformmI ?Zend_Cache_Backend_Xcachem!H EZend_Cache_Backend_TwoLevelsmG ;Zend_Cache_Backend_TestmF ?Zend_Cache_Backend_Sqlitem!E EZend_Cache_Backend_MemcachedmD ;Zend_Cache_Backend_FilemC 9Zend_Cache_Backend_ApcmB Zend_AuthmA ?Zend_Auth_Storage_Sessionm$@ KZend_Auth_Storage_NonPersistentm ? CZend_Auth_Storage_Exceptionm> -Zend_Auth_Resultm= 3Zend_Auth_Exceptionm< =Zend_Auth_Adapter_OpenIdm; 9Zend_Auth_Adapter_Ldapm: AZend_Auth_Adapter_InfoCardm9 9Zend_Auth_Adapter_Httpm)8 UZend_Auth_Adapter_Http_Resolver_Filem.7 _Zend_Auth_Adapter_Http_Resolver_Exceptionm 6 CZend_Auth_Adapter_Exceptionm5 =Zend_Auth_Adapter_Digestm4 ?Zend_Auth_Adapter_DbTablem3 -Zend_Applicationm#2 IZend_Application_Resource_Viewm(1 SZend_Application_Resource_Translatem&0 OZend_Application_Resource_Sessionm%/ MZend_Application_Resource_Routerm/. aZend_Application_Resource_ResourceAbstractm)- UZend_Application_Resource_Navigationm&, OZend_Application_Resource_Modulesm%+ MZend_Application_Resource_Localem%* MZend_Application_Resource_Layoutm.) _Zend_Application_Resource_Frontcontrollerm(( SZend_Application_Resource_Exceptionm!' EZend_Application_Resource_Dbm&& OZend_Application_Module_Bootstrapm'% QZend_Application_Module_Autoloaderm$ AZend_Application_Exceptionm)# UZend_Application_Bootstrap_Exceptionm1" eZend_Application_Bootstrap_BootstrapAbstractm)! UZend_Application_Bootstrap_Bootstrapm  ?Zend_Amf_Value_TraitsInfom- ]Zend_Amf_Value_Messaging_RemotingMessagem* WZend_Amf_Value_Messaging_ErrorMessagem, [Zend_Amf_Value_Messaging_CommandMessagem* WZend_Amf_Value_Messaging_AsyncMessagem- ]Zend_Amf_Value_Messaging_ArrayCollectionm0 cZend_Amf_Value_Messaging_AcknowledgeMessagem- ]Zend_Amf_Value_Messaging_AbstractMessagem! EZend_Amf_Value_MessageHeaderm AZend_Amf_Value_MessageBodym =Zend_Amf_Value_ByteArraym AZend_Amf_Util_BinaryStreamm +Zend_Amf_Serverm   h  [V,tH\6
h;



t
F
				u	G	tS6~[9!waH+xO0{[9`? e:kQ2                        c AZend_Db_Table_Row_Abstractmb ;Zend_Db_Table_Exceptionma 9Zend_Db_Table_Abstractm` /Zend_Db_Statementm_ 7Zend_Db_Statement_Pdom^ ?Zend_Db_Statement_Pdo_Ocim] ?Zend_Db_Statement_Pdo_Ibmm\ =Zend_Db_Statement_Oraclem'[ QZend_Db_Statement_Oracle_ExceptionmZ =Zend_Db_Statement_Mysqlim'Y QZend_Db_Statement_Mysqli_Exceptionm X CZend_Db_Statement_ExceptionmW 7Zend_Db_Statement_Db2m$V KZend_Db_Statement_Db2_ExceptionmU )Zend_Db_SelectmT =Zend_Db_Select_ExceptionmS -Zend_Db_ProfilermR 9Zend_Db_Profiler_QuerymQ =Zend_Db_Profiler_FirebugmP AZend_Db_Profiler_ExceptionmO %Zend_Db_ExprmN /Zend_Db_ExceptionmM AZend_Db_Adapter_Pdo_SqlitemL ?Zend_Db_Adapter_Pdo_PgsqlmK ;Zend_Db_Adapter_Pdo_OcimJ ?Zend_Db_Adapter_Pdo_MysqlmI ?Zend_Db_Adapter_Pdo_MssqlmH ;Zend_Db_Adapter_Pdo_Ibmm G CZend_Db_Adapter_Pdo_Ibm_Idsm F CZend_Db_Adapter_Pdo_Ibm_Db2m!E EZend_Db_Adapter_Pdo_AbstractmD 9Zend_Db_Adapter_Oraclem%C MZend_Db_Adapter_Oracle_ExceptionmB 9Zend_Db_Adapter_Mysqlim%A MZend_Db_Adapter_Mysqli_Exceptionm@ ?Zend_Db_Adapter_Exceptionm? 3Zend_Db_Adapter_Db2m"> GZend_Db_Adapter_Db2_Exceptionm= =Zend_Db_Adapter_Abstractm< Zend_Datem; 3Zend_Date_Exceptionm: 5Zend_Date_DateObjectm9 -Zend_Date_Citiesm8 'Zend_Currencym7 ;Zend_Currency_Exceptionm6 !Zend_Cryptm5 )Zend_Crypt_Rsam4 1Zend_Crypt_Rsa_Keym3 ?Zend_Crypt_Rsa_Key_Publicm2 AZend_Crypt_Rsa_Key_Privatem1 +Zend_Crypt_Mathm0 ?Zend_Crypt_Math_Exceptionm/ AZend_Crypt_Math_BigIntegerm#. IZend_Crypt_Math_BigInteger_Gmpm)- UZend_Crypt_Math_BigInteger_Exceptionm&, OZend_Crypt_Math_BigInteger_Bcmathm+ +Zend_Crypt_Hmacm* ?Zend_Crypt_Hmac_Exceptionm) 5Zend_Crypt_Exceptionm( =Zend_Crypt_DiffieHellmanm'' QZend_Crypt_DiffieHellman_Exceptionm!& EZend_Controller_Router_Routem(% SZend_Controller_Router_Route_Staticm'$ QZend_Controller_Router_Route_Regexm(# SZend_Controller_Router_Route_Modulem*" WZend_Controller_Router_Route_Hostnamem'! QZend_Controller_Router_Route_Chainm*  WZend_Controller_Router_Route_Abstractm# IZend_Controller_Router_Rewritem% MZend_Controller_Router_Exceptionm$ KZend_Controller_Router_Abstractm* WZend_Controller_Response_HttpTestCasem" GZend_Controller_Response_Httpm' QZend_Controller_Response_Exceptionm! EZend_Controller_Response_Clim& OZend_Controller_Response_Abstractm# IZend_Controller_Request_Simplem) UZend_Controller_Request_HttpTestCasem! EZend_Controller_Request_Httpm& OZend_Controller_Request_Exceptionm& OZend_Controller_Request_Apache404m% MZend_Controller_Request_Abstractm( SZend_Controller_Plugin_ErrorHandlerm" GZend_Controller_Plugin_Brokerm' QZend_Controller_Plugin_ActionStackm$ KZend_Controller_Plugin_Abstractm 7Zend_Controller_Frontm ?Zend_Controller_Exceptionm( SZend_Controller_Dispatcher_Standardm)
 UZend_Controller_Dispatcher_Exceptionm(	 SZend_Controller_Dispatcher_Abstractm 9Zend_Controller_Actionm( SZend_Controller_Action_HelperBrokerm6 oZend_Controller_Action_HelperBroker_PriorityStackm/ aZend_Controller_Action_Helper_ViewRendererm& OZend_Controller_Action_Helper_Urlm- ]Zend_Controller_Action_Helper_Redirectorm' QZend_Controller_Action_Helper_Jsonm1 eZend_Controller_Action_Helper_FlashMessengerm0  cZend_Controller_Action_Helper_ContextSwitchm< {Zend_Controller_Action_Helper_AutoCompleteScriptaculousm3~ iZend_Controller_Action_Helper_AutoCompleteDojom8} sZend_Controller_Action_Helper_AutoComplete_Abstractm.| _Zend_Controller_Action_Helper_AjaxContextm   f  uX1tE^.^6g8



T
&
 				Z	)sG|N$|Y4\.X-[.ybBcG+    (I SZend_File_Transfer_Adapter_AbstractmH Zend_FeedmG 'Zend_Feed_RssmF 3Zend_Feed_ExceptionmE 3Zend_Feed_Entry_RssmD 5Zend_Feed_Entry_AtommC =Zend_Feed_Entry_AbstractmB /Zend_Feed_ElementmA /Zend_Feed_Builderm@ =Zend_Feed_Builder_Headerm$? KZend_Feed_Builder_Header_Itunesm > CZend_Feed_Builder_Exceptionm= ;Zend_Feed_Builder_Entrym< )Zend_Feed_Atomm; 1Zend_Feed_Abstractm: )Zend_Exceptionm9 )Zend_Dom_Querym8 7Zend_Dom_Query_Resultm7 =Zend_Dom_Query_Css2Xpathm6 1Zend_Dom_Exceptionm5 Zend_Dojom)4 UZend_Dojo_View_Helper_VerticalSliderm,3 [Zend_Dojo_View_Helper_ValidationTextBoxm&2 OZend_Dojo_View_Helper_TimeTextBoxm"1 GZend_Dojo_View_Helper_TextBoxm#0 IZend_Dojo_View_Helper_Textaream'/ QZend_Dojo_View_Helper_TabContainerm'. QZend_Dojo_View_Helper_SubmitButtonm)- UZend_Dojo_View_Helper_StackContainerm), UZend_Dojo_View_Helper_SplitContainerm!+ EZend_Dojo_View_Helper_Sliderm)* UZend_Dojo_View_Helper_SimpleTextaream&) OZend_Dojo_View_Helper_RadioButtonm*( WZend_Dojo_View_Helper_PasswordTextBoxm(' SZend_Dojo_View_Helper_NumberTextBoxm(& SZend_Dojo_View_Helper_NumberSpinnerm+% YZend_Dojo_View_Helper_HorizontalSliderm$ AZend_Dojo_View_Helper_Formm*# WZend_Dojo_View_Helper_FilteringSelectm!" EZend_Dojo_View_Helper_Editorm! AZend_Dojo_View_Helper_Dojom)  UZend_Dojo_View_Helper_Dojo_Containerm) UZend_Dojo_View_Helper_DijitContainerm  CZend_Dojo_View_Helper_Dijitm& OZend_Dojo_View_Helper_DateTextBoxm& OZend_Dojo_View_Helper_CustomDijitm* WZend_Dojo_View_Helper_CurrencyTextBoxm& OZend_Dojo_View_Helper_ContentPanem# IZend_Dojo_View_Helper_ComboBoxm# IZend_Dojo_View_Helper_CheckBoxm! EZend_Dojo_View_Helper_Buttonm* WZend_Dojo_View_Helper_BorderContainerm( SZend_Dojo_View_Helper_AccordionPanem- ]Zend_Dojo_View_Helper_AccordionContainerm =Zend_Dojo_View_Exceptionm )Zend_Dojo_Formm 9Zend_Dojo_Form_SubFormm* WZend_Dojo_Form_Element_VerticalSliderm- ]Zend_Dojo_Form_Element_ValidationTextBoxm' QZend_Dojo_Form_Element_TimeTextBoxm# IZend_Dojo_Form_Element_TextBoxm$ KZend_Dojo_Form_Element_Textaream( SZend_Dojo_Form_Element_SubmitButtonm"
 GZend_Dojo_Form_Element_Sliderm*	 WZend_Dojo_Form_Element_SimpleTextaream' QZend_Dojo_Form_Element_RadioButtonm+ YZend_Dojo_Form_Element_PasswordTextBoxm) UZend_Dojo_Form_Element_NumberTextBoxm) UZend_Dojo_Form_Element_NumberSpinnerm, [Zend_Dojo_Form_Element_HorizontalSliderm+ YZend_Dojo_Form_Element_FilteringSelectm" GZend_Dojo_Form_Element_Editorm& OZend_Dojo_Form_Element_DijitMultim!  EZend_Dojo_Form_Element_Dijitm' QZend_Dojo_Form_Element_DateTextBoxm+~ YZend_Dojo_Form_Element_CurrencyTextBoxm$} KZend_Dojo_Form_Element_ComboBoxm$| KZend_Dojo_Form_Element_CheckBoxm"{ GZend_Dojo_Form_Element_Buttonm z CZend_Dojo_Form_DisplayGroupm*y WZend_Dojo_Form_Decorator_TabContainerm,x [Zend_Dojo_Form_Decorator_StackContainerm,w [Zend_Dojo_Form_Decorator_SplitContainerm'v QZend_Dojo_Form_Decorator_DijitFormm*u WZend_Dojo_Form_Decorator_DijitElementm,t [Zend_Dojo_Form_Decorator_DijitContainerm)s UZend_Dojo_Form_Decorator_ContentPanem-r ]Zend_Dojo_Form_Decorator_BorderContainerm+q YZend_Dojo_Form_Decorator_AccordionPanem0p cZend_Dojo_Form_Decorator_AccordionContainermo 3Zend_Dojo_Exceptionmn )Zend_Dojo_Datamm !Zend_Debugml Zend_Dbmk 'Zend_Db_Tablemj 5Zend_Db_Table_Selectm#i IZend_Db_Table_Select_Exceptionmh 5Zend_Db_Table_Rowsetm#g IZend_Db_Table_Rowset_Exceptionm"f GZend_Db_Table_Rowset_Abstractme /Zend_Db_Table_Rowm d CZend_Db_Table_Row_Exceptionm   m  ~dG*xZ9sYAlM+^5



Z
+
				t	K	'iH'oCoL(	a;wT4c<|S&^3         6 CZend_Gdata_App_Extension_Idm"5 GZend_Gdata_App_Extension_Iconm'4 QZend_Gdata_App_Extension_Generatorm#3 IZend_Gdata_App_Extension_Emailm%2 MZend_Gdata_App_Extension_Elementm$1 KZend_Gdata_App_Extension_Editedm#0 IZend_Gdata_App_Extension_Draftm%/ MZend_Gdata_App_Extension_Controlm). UZend_Gdata_App_Extension_Contributorm%- MZend_Gdata_App_Extension_Contentm&, OZend_Gdata_App_Extension_Categorym$+ KZend_Gdata_App_Extension_Authorm* =Zend_Gdata_App_Exceptionm) 5Zend_Gdata_App_Entrym,( [Zend_Gdata_App_CaptchaRequiredExceptionm#' IZend_Gdata_App_BaseMediaSourcem& 3Zend_Gdata_App_Basem*% WZend_Gdata_App_BadMethodCallExceptionm!$ EZend_Gdata_App_AuthExceptionm# Zend_Formm" /Zend_Form_SubFormm! 3Zend_Form_Exceptionm  /Zend_Form_Elementm ;Zend_Form_Element_Xhtmlm AZend_Form_Element_Textaream 9Zend_Form_Element_Textm =Zend_Form_Element_Submitm =Zend_Form_Element_Selectm ;Zend_Form_Element_Resetm ;Zend_Form_Element_Radiom AZend_Form_Element_Passwordm" GZend_Form_Element_Multiselectm$ KZend_Form_Element_MultiCheckboxm ;Zend_Form_Element_Multim ;Zend_Form_Element_Imagem =Zend_Form_Element_Hiddenm 9Zend_Form_Element_Hashm 9Zend_Form_Element_Filem  CZend_Form_Element_Exceptionm AZend_Form_Element_Checkboxm ?Zend_Form_Element_Captcham =Zend_Form_Element_Buttonm 9Zend_Form_DisplayGroupm# IZend_Form_Decorator_ViewScriptm#
 IZend_Form_Decorator_ViewHelperm 	 CZend_Form_Decorator_Tooltipm( SZend_Form_Decorator_PrepareElementsm ?Zend_Form_Decorator_Labelm ?Zend_Form_Decorator_Imagem  CZend_Form_Decorator_HtmlTagm# IZend_Form_Decorator_FormErrorsm% MZend_Form_Decorator_FormElementsm =Zend_Form_Decorator_Formm =Zend_Form_Decorator_Filem!  EZend_Form_Decorator_Fieldsetm" GZend_Form_Decorator_Exceptionm~ AZend_Form_Decorator_Errorsm$} KZend_Form_Decorator_DtDdWrapperm$| KZend_Form_Decorator_Descriptionm { CZend_Form_Decorator_Captcham%z MZend_Form_Decorator_Captcha_Wordm!y EZend_Form_Decorator_Callbackm!x EZend_Form_Decorator_Abstractmw #Zend_Filterm+v YZend_Filter_Word_UnderscoreToSeparatorm&u OZend_Filter_Word_UnderscoreToDashm+t YZend_Filter_Word_UnderscoreToCamelCasem*s WZend_Filter_Word_SeparatorToSeparatorm%r MZend_Filter_Word_SeparatorToDashm*q WZend_Filter_Word_SeparatorToCamelCasem(p SZend_Filter_Word_Separator_Abstractm&o OZend_Filter_Word_DashToUnderscorem%n MZend_Filter_Word_DashToSeparatorm%m MZend_Filter_Word_DashToCamelCasem+l YZend_Filter_Word_CamelCaseToUnderscorem*k WZend_Filter_Word_CamelCaseToSeparatorm%j MZend_Filter_Word_CamelCaseToDashmi 7Zend_Filter_StripTagsmh ?Zend_Filter_StripNewlinesmg 9Zend_Filter_StringTrimmf ?Zend_Filter_StringToUpperme ?Zend_Filter_StringToLowermd 5Zend_Filter_RealPathmc ;Zend_Filter_PregReplacem&b OZend_Filter_NormalizedToLocalizedm&a OZend_Filter_LocalizedToNormalizedm` +Zend_Filter_Intm_ /Zend_Filter_Inputm^ 7Zend_Filter_Inflectorm] =Zend_Filter_HtmlEntitiesm\ AZend_Filter_File_UpperCasem[ ;Zend_Filter_File_RenamemZ AZend_Filter_File_LowerCasemY =Zend_Filter_File_EncryptmX =Zend_Filter_File_DecryptmW 7Zend_Filter_ExceptionmV 3Zend_Filter_Encryptm U CZend_Filter_Encrypt_OpensslmT AZend_Filter_Encrypt_McryptmS +Zend_Filter_DirmR 1Zend_Filter_DigitsmQ 3Zend_Filter_DecryptmP 5Zend_Filter_CallbackmO 5Zend_Filter_BaseNamemN /Zend_Filter_AlphamM /Zend_Filter_AlnummL 1Zend_File_Transferm!K EZend_File_Transfer_Exceptionm$J KZend_File_Transfer_Adapter_Httpm   `  f;rK"qLz^6P#



m
<
					_	9	\-a;jR"_.oQ8nFzS6{R$    0 cZend_Gdata_Extension_OpenSearchItemsPerPagem" GZend_Gdata_Extension_FeedLinkm* WZend_Gdata_Extension_ExtendedPropertym% MZend_Gdata_Extension_EventStatusm# IZend_Gdata_Extension_EntryLinkm" GZend_Gdata_Extension_Commentsm& OZend_Gdata_Extension_AttendeeTypem( SZend_Gdata_Extension_AttendeeStatusm +Zend_Gdata_Exifm 5Zend_Gdata_Exif_Feedm# IZend_Gdata_Exif_Extension_Timem# IZend_Gdata_Exif_Extension_Tagsm$
 KZend_Gdata_Exif_Extension_Modelm#	 IZend_Gdata_Exif_Extension_Makem" GZend_Gdata_Exif_Extension_Isom, [Zend_Gdata_Exif_Extension_ImageUniqueIdm$ KZend_Gdata_Exif_Extension_FStopm* WZend_Gdata_Exif_Extension_FocalLengthm$ KZend_Gdata_Exif_Extension_Flashm' QZend_Gdata_Exif_Extension_Exposurem' QZend_Gdata_Exif_Extension_Distancem 7Zend_Gdata_Exif_Entrym  -Zend_Gdata_Entrym 7Zend_Gdata_DublinCorem*~ WZend_Gdata_DublinCore_Extension_Titlem,} [Zend_Gdata_DublinCore_Extension_Subjectm+| YZend_Gdata_DublinCore_Extension_Rightsm.{ _Zend_Gdata_DublinCore_Extension_Publisherm-z ]Zend_Gdata_DublinCore_Extension_Languagem/y aZend_Gdata_DublinCore_Extension_Identifierm+x YZend_Gdata_DublinCore_Extension_Formatm0w cZend_Gdata_DublinCore_Extension_Descriptionm)v UZend_Gdata_DublinCore_Extension_Datem,u [Zend_Gdata_DublinCore_Extension_Creatormt +Zend_Gdata_Docsms 7Zend_Gdata_Docs_Querym%r MZend_Gdata_Docs_DocumentListFeedm&q OZend_Gdata_Docs_DocumentListEntrymp 9Zend_Gdata_ClientLoginmo 3Zend_Gdata_Calendarm!n EZend_Gdata_Calendar_ListFeedm"m GZend_Gdata_Calendar_ListEntrym-l ]Zend_Gdata_Calendar_Extension_WebContentm+k YZend_Gdata_Calendar_Extension_Timezonem9j uZend_Gdata_Calendar_Extension_SendEventNotificationsm+i YZend_Gdata_Calendar_Extension_Selectedm+h YZend_Gdata_Calendar_Extension_QuickAddm'g QZend_Gdata_Calendar_Extension_Linkm)f UZend_Gdata_Calendar_Extension_Hiddenm(e SZend_Gdata_Calendar_Extension_Colorm.d _Zend_Gdata_Calendar_Extension_AccessLevelm#c IZend_Gdata_Calendar_EventQuerym"b GZend_Gdata_Calendar_EventFeedm#a IZend_Gdata_Calendar_EventEntrym` -Zend_Gdata_Booksm!_ EZend_Gdata_Books_VolumeQuerym ^ CZend_Gdata_Books_VolumeFeedm!] EZend_Gdata_Books_VolumeEntrym+\ YZend_Gdata_Books_Extension_Viewabilitym-[ ]Zend_Gdata_Books_Extension_ThumbnailLinkm&Z OZend_Gdata_Books_Extension_Reviewm+Y YZend_Gdata_Books_Extension_PreviewLinkm(X SZend_Gdata_Books_Extension_InfoLinkm-W ]Zend_Gdata_Books_Extension_Embeddabilitym)V UZend_Gdata_Books_Extension_BooksLinkm-U ]Zend_Gdata_Books_Extension_BooksCategorym.T _Zend_Gdata_Books_Extension_AnnotationLinkm$S KZend_Gdata_Books_CollectionFeedm%R MZend_Gdata_Books_CollectionEntrymQ 1Zend_Gdata_AuthSubmP )Zend_Gdata_Appm$O KZend_Gdata_App_VersionExceptionmN 3Zend_Gdata_App_Utilm#M IZend_Gdata_App_MediaFileSourcemL ?Zend_Gdata_App_MediaEntrym2K gZend_Gdata_App_LoggingHttpClientAdapterSocketmJ AZend_Gdata_App_IOExceptionm,I [Zend_Gdata_App_InvalidArgumentExceptionm!H EZend_Gdata_App_HttpExceptionm$G KZend_Gdata_App_FeedSourceParentm#F IZend_Gdata_App_FeedEntryParentmE 3Zend_Gdata_App_FeedmD =Zend_Gdata_App_Extensionm!C EZend_Gdata_App_Extension_Urim%B MZend_Gdata_App_Extension_Updatedm#A IZend_Gdata_App_Extension_Titlem"@ GZend_Gdata_App_Extension_Textm%? MZend_Gdata_App_Extension_Summarym&> OZend_Gdata_App_Extension_Subtitlem$= KZend_Gdata_App_Extension_Sourcem$< KZend_Gdata_App_Extension_Rightsm'; QZend_Gdata_App_Extension_Publishedm$: KZend_Gdata_App_Extension_Personm"9 GZend_Gdata_App_Extension_Namem"8 GZend_Gdata_App_Extension_Logom"7 GZend_Gdata_App_Extension_Linkm   b  oK#zX5h7a9pQ'




V
8
					f	@	'	
oX0	nT'h8uHX&|`;tF\5       2x gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumm)w UZend_Gdata_Photos_Extension_Locationm#v IZend_Gdata_Photos_Extension_Idm'u QZend_Gdata_Photos_Extension_Heightm2t gZend_Gdata_Photos_Extension_CommentingEnabledm-s ]Zend_Gdata_Photos_Extension_CommentCountm'r QZend_Gdata_Photos_Extension_Clientm)q UZend_Gdata_Photos_Extension_Checksumm*p WZend_Gdata_Photos_Extension_BytesUsedm(o SZend_Gdata_Photos_Extension_AlbumIdm'n QZend_Gdata_Photos_Extension_Accessm#m IZend_Gdata_Photos_CommentEntrym!l EZend_Gdata_Photos_AlbumQuerym k CZend_Gdata_Photos_AlbumFeedm!j EZend_Gdata_Photos_AlbumEntrymi 3Zend_Gdata_MimeFilemh ?Zend_Gdata_MimeBodyStringmg AZend_Gdata_MediaMimeStreammf -Zend_Gdata_Mediame 7Zend_Gdata_Media_Feedm*d WZend_Gdata_Media_Extension_MediaTitlem.c _Zend_Gdata_Media_Extension_MediaThumbnailm)b UZend_Gdata_Media_Extension_MediaTextm0a cZend_Gdata_Media_Extension_MediaRestrictionm+` YZend_Gdata_Media_Extension_MediaRatingm+_ YZend_Gdata_Media_Extension_MediaPlayerm-^ ]Zend_Gdata_Media_Extension_MediaKeywordsm)] UZend_Gdata_Media_Extension_MediaHashm*\ WZend_Gdata_Media_Extension_MediaGroupm0[ cZend_Gdata_Media_Extension_MediaDescriptionm+Z YZend_Gdata_Media_Extension_MediaCreditm.Y _Zend_Gdata_Media_Extension_MediaCopyrightm,X [Zend_Gdata_Media_Extension_MediaContentm-W ]Zend_Gdata_Media_Extension_MediaCategorymV 9Zend_Gdata_Media_EntrymU AZend_Gdata_Kind_EventEntrymT 7Zend_Gdata_HttpClientm*S WZend_Gdata_HttpAdapterStreamingSocketm)R UZend_Gdata_HttpAdapterStreamingProxymQ /Zend_Gdata_HealthmP ;Zend_Gdata_Health_Querym&O OZend_Gdata_Health_ProfileListFeedm'N QZend_Gdata_Health_ProfileListEntrym"M GZend_Gdata_Health_ProfileFeedm#L IZend_Gdata_Health_ProfileEntrym$K KZend_Gdata_Health_Extension_CcrmJ )Zend_Gdata_GeomI 3Zend_Gdata_Geo_Feedm$H KZend_Gdata_Geo_Extension_GmlPosm&G OZend_Gdata_Geo_Extension_GmlPointm)F UZend_Gdata_Geo_Extension_GeoRssWheremE 5Zend_Gdata_Geo_EntrymD -Zend_Gdata_Gbasem"C GZend_Gdata_Gbase_SnippetQuerym!B EZend_Gdata_Gbase_SnippetFeedm"A GZend_Gdata_Gbase_SnippetEntrym@ 9Zend_Gdata_Gbase_Querym? AZend_Gdata_Gbase_ItemQuerym> ?Zend_Gdata_Gbase_ItemFeedm= AZend_Gdata_Gbase_ItemEntrym< 7Zend_Gdata_Gbase_Feedm-; ]Zend_Gdata_Gbase_Extension_BaseAttributem: 9Zend_Gdata_Gbase_Entrym9 -Zend_Gdata_Gappsm8 AZend_Gdata_Gapps_UserQuerym7 ?Zend_Gdata_Gapps_UserFeedm6 AZend_Gdata_Gapps_UserEntrym&5 OZend_Gdata_Gapps_ServiceExceptionm4 9Zend_Gdata_Gapps_Querym#3 IZend_Gdata_Gapps_NicknameQuerym"2 GZend_Gdata_Gapps_NicknameFeedm#1 IZend_Gdata_Gapps_NicknameEntrym%0 MZend_Gdata_Gapps_Extension_Quotam(/ SZend_Gdata_Gapps_Extension_Nicknamem$. KZend_Gdata_Gapps_Extension_Namem%- MZend_Gdata_Gapps_Extension_Loginm), UZend_Gdata_Gapps_Extension_EmailListm+ 9Zend_Gdata_Gapps_Errorm-* ]Zend_Gdata_Gapps_EmailListRecipientQuerym,) [Zend_Gdata_Gapps_EmailListRecipientFeedm-( ]Zend_Gdata_Gapps_EmailListRecipientEntrym$' KZend_Gdata_Gapps_EmailListQuerym#& IZend_Gdata_Gapps_EmailListFeedm$% KZend_Gdata_Gapps_EmailListEntrym$ +Zend_Gdata_Feedm# 5Zend_Gdata_Extensionm" =Zend_Gdata_Extension_Whom! AZend_Gdata_Extension_Wherem  ?Zend_Gdata_Extension_Whenm$ KZend_Gdata_Extension_Visibilitym& OZend_Gdata_Extension_Transparencym" GZend_Gdata_Extension_Reminderm- ]Zend_Gdata_Extension_RecurrenceExceptionm$ KZend_Gdata_Extension_Recurrencem  CZend_Gdata_Extension_Ratingm' QZend_Gdata_Extension_OriginalEventm0 cZend_Gdata_Extension_OpenSearchTotalResultsm. _Zend_Gdata_Extension_OpenSearchStartIndexm   Y  |E_6Z0{X4V'



f
=
				U	5	mFk<U'o>Y)k:S(sE                     !Q EZend_Gdata_YouTube_InboxFeedm"P GZend_Gdata_YouTube_InboxEntrym)O UZend_Gdata_YouTube_Extension_VideoIdm*N WZend_Gdata_YouTube_Extension_Usernamem*M WZend_Gdata_YouTube_Extension_Uploadedm'L QZend_Gdata_YouTube_Extension_Tokenm(K SZend_Gdata_YouTube_Extension_Statusm,J [Zend_Gdata_YouTube_Extension_Statisticsm'I QZend_Gdata_YouTube_Extension_Statem(H SZend_Gdata_YouTube_Extension_Schoolm-G ]Zend_Gdata_YouTube_Extension_ReleaseDatem.F _Zend_Gdata_YouTube_Extension_Relationshipm*E WZend_Gdata_YouTube_Extension_Recordedm&D OZend_Gdata_YouTube_Extension_Racym-C ]Zend_Gdata_YouTube_Extension_QueryStringm)B UZend_Gdata_YouTube_Extension_Privatem*A WZend_Gdata_YouTube_Extension_Positionm/@ aZend_Gdata_YouTube_Extension_PlaylistTitlem,? [Zend_Gdata_YouTube_Extension_PlaylistIdm,> [Zend_Gdata_YouTube_Extension_Occupationm)= UZend_Gdata_YouTube_Extension_NoEmbedm'< QZend_Gdata_YouTube_Extension_Musicm(; SZend_Gdata_YouTube_Extension_Moviesm-: ]Zend_Gdata_YouTube_Extension_MediaRatingm,9 [Zend_Gdata_YouTube_Extension_MediaGroupm-8 ]Zend_Gdata_YouTube_Extension_MediaCreditm.7 _Zend_Gdata_YouTube_Extension_MediaContentm*6 WZend_Gdata_YouTube_Extension_Locationm&5 OZend_Gdata_YouTube_Extension_Linkm*4 WZend_Gdata_YouTube_Extension_LastNamem*3 WZend_Gdata_YouTube_Extension_Hometownm)2 UZend_Gdata_YouTube_Extension_Hobbiesm(1 SZend_Gdata_YouTube_Extension_Genderm+0 YZend_Gdata_YouTube_Extension_FirstNamem*/ WZend_Gdata_YouTube_Extension_Durationm-. ]Zend_Gdata_YouTube_Extension_Descriptionm+- YZend_Gdata_YouTube_Extension_CountHintm), UZend_Gdata_YouTube_Extension_Controlm)+ UZend_Gdata_YouTube_Extension_Companym'* QZend_Gdata_YouTube_Extension_Booksm%) MZend_Gdata_YouTube_Extension_Agem)( UZend_Gdata_YouTube_Extension_AboutMem#' IZend_Gdata_YouTube_ContactFeedm$& KZend_Gdata_YouTube_ContactEntrym#% IZend_Gdata_YouTube_CommentFeedm$$ KZend_Gdata_YouTube_CommentEntrym$# KZend_Gdata_YouTube_ActivityFeedm%" MZend_Gdata_YouTube_ActivityEntrym! ;Zend_Gdata_Spreadsheetsm*  WZend_Gdata_Spreadsheets_WorksheetFeedm+ YZend_Gdata_Spreadsheets_WorksheetEntrym, [Zend_Gdata_Spreadsheets_SpreadsheetFeedm- ]Zend_Gdata_Spreadsheets_SpreadsheetEntrym& OZend_Gdata_Spreadsheets_ListQuerym% MZend_Gdata_Spreadsheets_ListFeedm& OZend_Gdata_Spreadsheets_ListEntrym/ aZend_Gdata_Spreadsheets_Extension_RowCountm- ]Zend_Gdata_Spreadsheets_Extension_Customm/ aZend_Gdata_Spreadsheets_Extension_ColCountm+ YZend_Gdata_Spreadsheets_Extension_Cellm* WZend_Gdata_Spreadsheets_DocumentQuerym& OZend_Gdata_Spreadsheets_CellQuerym% MZend_Gdata_Spreadsheets_CellFeedm& OZend_Gdata_Spreadsheets_CellEntrym -Zend_Gdata_Querym /Zend_Gdata_Photosm  CZend_Gdata_Photos_UserQuerym AZend_Gdata_Photos_UserFeedm  CZend_Gdata_Photos_UserEntrym AZend_Gdata_Photos_TagEntrym! EZend_Gdata_Photos_PhotoQuerym 
 CZend_Gdata_Photos_PhotoFeedm!	 EZend_Gdata_Photos_PhotoEntrym& OZend_Gdata_Photos_Extension_Widthm' QZend_Gdata_Photos_Extension_Weightm( SZend_Gdata_Photos_Extension_Versionm% MZend_Gdata_Photos_Extension_Userm* WZend_Gdata_Photos_Extension_Timestampm* WZend_Gdata_Photos_Extension_Thumbnailm% MZend_Gdata_Photos_Extension_Sizem) UZend_Gdata_Photos_Extension_Rotationm+  YZend_Gdata_Photos_Extension_QuotaLimitm- ]Zend_Gdata_Photos_Extension_QuotaCurrentm)~ UZend_Gdata_Photos_Extension_Positionm(} SZend_Gdata_Photos_Extension_PhotoIdm3| iZend_Gdata_Photos_Extension_NumPhotosRemainingm*{ WZend_Gdata_Photos_Extension_NumPhotosm)z UZend_Gdata_Photos_Extension_Nicknamem%y MZend_Gdata_Photos_Extension_Namem   m  S&{V0b< nFO




j
F
$				u	Q	&CS=#	uO.xDpR'{X7
jH)vWF*                > /Zend_Mail_Messagem= 9Zend_Mail_Message_Filem< 3Zend_Mail_Exceptionm; Zend_Logm: 9Zend_Log_Writer_Streamm9 5Zend_Log_Writer_Nullm8 5Zend_Log_Writer_Mockm7 5Zend_Log_Writer_Mailm6 ;Zend_Log_Writer_Firebugm5 1Zend_Log_Writer_Dbm4 =Zend_Log_Writer_Abstractm3 9Zend_Log_Formatter_Xmlm2 ?Zend_Log_Formatter_Simplem1 AZend_Log_Formatter_Firebugm0 =Zend_Log_Filter_Suppressm/ =Zend_Log_Filter_Prioritym. ;Zend_Log_Filter_Messagem- 1Zend_Log_Exceptionm, #Zend_Localem+ -Zend_Locale_Mathm* =Zend_Locale_Math_PhpMathm) AZend_Locale_Math_Exceptionm( 1Zend_Locale_Formatm' 7Zend_Locale_Exceptionm& -Zend_Locale_Datam!% EZend_Locale_Data_Translationm$ #Zend_Loaderm# =Zend_Loader_PluginLoaderm'" QZend_Loader_PluginLoader_Exceptionm! 7Zend_Loader_Exceptionm  9Zend_Loader_Autoloaderm$ KZend_Loader_Autoloader_Resourcem Zend_Ldapm 3Zend_Ldap_Exceptionm #Zend_Layoutm 7Zend_Layout_Exceptionm) UZend_Layout_Controller_Plugin_Layoutm0 cZend_Layout_Controller_Action_Helper_Layoutm Zend_Jsonm -Zend_Json_Serverm 5Zend_Json_Server_Smdm! EZend_Json_Server_Smd_Servicem ?Zend_Json_Server_Responsem# IZend_Json_Server_Response_Httpm =Zend_Json_Server_Requestm" GZend_Json_Server_Request_Httpm AZend_Json_Server_Exceptionm 9Zend_Json_Server_Errorm 9Zend_Json_Server_Cachem )Zend_Json_Exprm 3Zend_Json_Exceptionm /Zend_Json_Encoderm
 /Zend_Json_Decoderm	 'Zend_InfoCardm- ]Zend_InfoCard_Xml_SecurityTokenReferencem AZend_InfoCard_Xml_Securitym) UZend_InfoCard_Xml_Security_Transformm4 kZend_InfoCard_Xml_Security_Transform_XmlExcC14Nm3 iZend_InfoCard_Xml_Security_Transform_Exceptionm< {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignaturem) UZend_InfoCard_Xml_Security_Exceptionm ?Zend_InfoCard_Xml_KeyInfom&  OZend_InfoCard_Xml_KeyInfo_XmlDSigm& OZend_InfoCard_Xml_KeyInfo_Defaultm'~ QZend_InfoCard_Xml_KeyInfo_Abstractm } CZend_InfoCard_Xml_Exceptionm#| IZend_InfoCard_Xml_EncryptedKeym${ KZend_InfoCard_Xml_EncryptedDatam+z YZend_InfoCard_Xml_EncryptedData_XmlEncm-y ]Zend_InfoCard_Xml_EncryptedData_Abstractmx ?Zend_InfoCard_Xml_Elementm w CZend_InfoCard_Xml_Assertionm%v MZend_InfoCard_Xml_Assertion_Samlmu ;Zend_InfoCard_Exceptionm%t MZend_InfoCard_Exception_Abstractms 5Zend_InfoCard_Claimsmr 5Zend_InfoCard_Cipherm5q mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcm5p mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcm4o kZend_InfoCard_Cipher_Symmetric_Adapter_Abstractm)n UZend_InfoCard_Cipher_Pki_Adapter_Rsam.m _Zend_InfoCard_Cipher_Pki_Adapter_Abstractm#l IZend_InfoCard_Cipher_Exceptionm$k KZend_InfoCard_Adapter_Exceptionm"j GZend_InfoCard_Adapter_Defaultmi 1Zend_Http_Responsemh 3Zend_Http_Exceptionmg 3Zend_Http_CookieJarmf -Zend_Http_Cookieme -Zend_Http_Clientmd AZend_Http_Client_Exceptionm"c GZend_Http_Client_Adapter_Testm$b KZend_Http_Client_Adapter_Socketm#a IZend_Http_Client_Adapter_Proxym'` QZend_Http_Client_Adapter_Exceptionm"_ GZend_Http_Client_Adapter_Curlm^ !Zend_Gdatam] 1Zend_Gdata_YouTubem"\ GZend_Gdata_YouTube_VideoQuerym![ EZend_Gdata_YouTube_VideoFeedm"Z GZend_Gdata_YouTube_VideoEntrym(Y SZend_Gdata_YouTube_UserProfileEntrym(X SZend_Gdata_YouTube_SubscriptionFeedm)W UZend_Gdata_YouTube_SubscriptionEntrym)V UZend_Gdata_YouTube_PlaylistVideoFeedm*U WZend_Gdata_YouTube_PlaylistVideoEntrym(T SZend_Gdata_YouTube_PlaylistListFeedm)S UZend_Gdata_YouTube_PlaylistListEntrym"R GZend_Gdata_YouTube_MediaEntrym   v  dD~Z1k@&eC(lO3




{
Y
=

					s	W	0	_A#sa?|W:b@#mI(t]3uY>'f? '4 QZend_Pdf_Element_Reference_Contextm3 ;Zend_Pdf_Element_Objectm#2 IZend_Pdf_Element_Object_Streamm1 =Zend_Pdf_Element_Numericm0 7Zend_Pdf_Element_Nullm/ 7Zend_Pdf_Element_Namem . CZend_Pdf_Element_Dictionarym- =Zend_Pdf_Element_Booleanm, 9Zend_Pdf_Element_Arraym+ )Zend_Pdf_Colorm* 1Zend_Pdf_Color_Rgbm) 3Zend_Pdf_Color_Htmlm( =Zend_Pdf_Color_GrayScalem' 3Zend_Pdf_Color_Cmykm& 'Zend_Pdf_Cmapm% AZend_Pdf_Cmap_TrimmedTablem!$ EZend_Pdf_Cmap_SegmentToDeltam# AZend_Pdf_Cmap_ByteEncodingm&" OZend_Pdf_Cmap_ByteEncoding_Staticm! )Zend_Paginatorm*  WZend_Paginator_ScrollingStyle_Slidingm* WZend_Paginator_ScrollingStyle_Jumpingm* WZend_Paginator_ScrollingStyle_Elasticm& OZend_Paginator_ScrollingStyle_Allm =Zend_Paginator_Exceptionm  CZend_Paginator_Adapter_Nullm$ KZend_Paginator_Adapter_Iteratorm) UZend_Paginator_Adapter_DbTableSelectm$ KZend_Paginator_Adapter_DbSelectm! EZend_Paginator_Adapter_Arraym #Zend_OpenIdm 5Zend_OpenId_Providerm ?Zend_OpenId_Provider_Userm& OZend_OpenId_Provider_User_Sessionm! EZend_OpenId_Provider_Storagem& OZend_OpenId_Provider_Storage_Filem 7Zend_OpenId_Extensionm AZend_OpenId_Extension_Sregm 7Zend_OpenId_Exceptionm 5Zend_OpenId_Consumerm! EZend_OpenId_Consumer_Storagem& OZend_OpenId_Consumer_Storage_Filem
 +Zend_Navigationm	 5Zend_Navigation_Pagem =Zend_Navigation_Page_Urim =Zend_Navigation_Page_Mvcm ?Zend_Navigation_Exceptionm ?Zend_Navigation_Containerm Zend_Mimem )Zend_Mime_Partm /Zend_Mime_Messagem 3Zend_Mime_Exceptionm  -Zend_Mime_Decodem #Zend_Memorym~ /Zend_Memory_Valuem} 3Zend_Memory_Managerm| 7Zend_Memory_Exceptionm{ 7Zend_Memory_Containerm"z GZend_Memory_Container_Movablem!y EZend_Memory_Container_Lockedm!x EZend_Memory_AccessControllermw 3Zend_Measure_Weightmv 3Zend_Measure_Volumem%u MZend_Measure_Viscosity_Kinematicm#t IZend_Measure_Viscosity_Dynamicms 3Zend_Measure_Torquemr /Zend_Measure_Timemq =Zend_Measure_Temperaturemp 1Zend_Measure_Speedmo 7Zend_Measure_Pressuremn 1Zend_Measure_Powermm 3Zend_Measure_Numberml 9Zend_Measure_Lightnessmk 3Zend_Measure_Lengthmj ?Zend_Measure_Illuminationmi 9Zend_Measure_Frequencymh 1Zend_Measure_Forcemg =Zend_Measure_Flow_Volumemf 9Zend_Measure_Flow_Moleme 9Zend_Measure_Flow_Massmd 9Zend_Measure_Exceptionmc 3Zend_Measure_Energymb 5Zend_Measure_Densityma 5Zend_Measure_Currentm ` CZend_Measure_Cooking_Weightm _ CZend_Measure_Cooking_Volumem^ =Zend_Measure_Capacitancem] 3Zend_Measure_Binarym\ /Zend_Measure_Aream[ 1Zend_Measure_AnglemZ ?Zend_Measure_AccelerationmY 7Zend_Measure_AbstractmX Zend_MailmW =Zend_Mail_Transport_Smtpm!V EZend_Mail_Transport_Sendmailm"U GZend_Mail_Transport_Exceptionm!T EZend_Mail_Transport_AbstractmS /Zend_Mail_Storagem'R QZend_Mail_Storage_Writable_MaildirmQ 9Zend_Mail_Storage_Pop3mP 9Zend_Mail_Storage_MboxmO ?Zend_Mail_Storage_MaildirmN 9Zend_Mail_Storage_ImapmM =Zend_Mail_Storage_Folderm"L GZend_Mail_Storage_Folder_Mboxm%K MZend_Mail_Storage_Folder_Maildirm J CZend_Mail_Storage_ExceptionmI AZend_Mail_Storage_AbstractmH ;Zend_Mail_Protocol_Smtpm'G QZend_Mail_Protocol_Smtp_Auth_Plainm'F QZend_Mail_Protocol_Smtp_Auth_Loginm)E UZend_Mail_Protocol_Smtp_Auth_Crammd5mD ;Zend_Mail_Protocol_Pop3mC ;Zend_Mail_Protocol_Imapm!B EZend_Mail_Protocol_Exceptionm A CZend_Mail_Protocol_Abstractm@ )Zend_Mail_Partm? 3Zend_Mail_Part_Filem   b  mM4vU/sS2yZB(zD


c
%			j	*|AvQ2}cE.sH }R&^?y`D!g                   8 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNummI Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitivem5 mZend_Search_Lucene_Analysis_Analyzer_Common_TextmF Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitivem 7Zend_Search_Exceptionm -Zend_Rest_Serverm AZend_Rest_Server_Exceptionm 3Zend_Rest_Exceptionm -Zend_Rest_Clientm ;Zend_Rest_Client_Resultm& OZend_Rest_Client_Result_Exceptionm AZend_Rest_Client_Exceptionm
 'Zend_Registrym	 =Zend_Reflection_Propertym ?Zend_Reflection_Parameterm 9Zend_Reflection_Methodm =Zend_Reflection_Functionm 5Zend_Reflection_Filem ?Zend_Reflection_Extensionm ?Zend_Reflection_Exceptionm =Zend_Reflection_Docblockm! EZend_Reflection_Docblock_Tagm(  SZend_Reflection_Docblock_Tag_Returnm' QZend_Reflection_Docblock_Tag_Paramm~ 7Zend_Reflection_Classm} -Zend_ProgressBarm| AZend_ProgressBar_Exceptionm{ =Zend_ProgressBar_Adapterm$z KZend_ProgressBar_Adapter_JsPushm$y KZend_ProgressBar_Adapter_JsPullm'x QZend_ProgressBar_Adapter_Exceptionm%w MZend_ProgressBar_Adapter_Consolemv Zend_Pdfm!u EZend_Pdf_UpdateInfoContainermt -Zend_Pdf_Trailerms ;Zend_Pdf_Trailer_Keepermr AZend_Pdf_Trailer_Generatormq )Zend_Pdf_Stylemp 7Zend_Pdf_StringParsermo /Zend_Pdf_Resourcem#n IZend_Pdf_Resource_ImageFactorymm ;Zend_Pdf_Resource_Imagem!l EZend_Pdf_Resource_Image_Tiffm k CZend_Pdf_Resource_Image_Pngm!j EZend_Pdf_Resource_Image_Jpegmi 9Zend_Pdf_Resource_Fontm!h EZend_Pdf_Resource_Font_Type0m"g GZend_Pdf_Resource_Font_Simplem+f YZend_Pdf_Resource_Font_Simple_Standardm8e sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsm6d oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanm7c qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicm;b yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicm5a mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldm2` gZend_Pdf_Resource_Font_Simple_Standard_Symbolm<_ {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliquemA^ Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliquem9] uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldm5\ mZend_Pdf_Resource_Font_Simple_Standard_Helveticam:[ wZend_Pdf_Resource_Font_Simple_Standard_CourierObliquem>Z Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliquem7Y qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldm3X iZend_Pdf_Resource_Font_Simple_Standard_Courierm)W UZend_Pdf_Resource_Font_Simple_Parsedm2V gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypem*U WZend_Pdf_Resource_Font_FontDescriptorm%T MZend_Pdf_Resource_Font_Extractedm#S IZend_Pdf_Resource_Font_CidFontm,R [Zend_Pdf_Resource_Font_CidFont_TrueTypemQ /Zend_Pdf_PhpArraymP +Zend_Pdf_ParsermO 9Zend_Pdf_Parser_StreammN 'Zend_Pdf_PagemM )Zend_Pdf_ImagemL 'Zend_Pdf_Fontm K CZend_Pdf_Filter_Compressionm$J KZend_Pdf_Filter_Compression_Lzwm&I OZend_Pdf_Filter_Compression_FlatemH =Zend_Pdf_Filter_AsciiHexmG ;Zend_Pdf_Filter_Ascii85m"F GZend_Pdf_FileParserDataSourcem)E UZend_Pdf_FileParserDataSource_Stringm'D QZend_Pdf_FileParserDataSource_FilemC 3Zend_Pdf_FileParsermB ?Zend_Pdf_FileParser_Imagem"A GZend_Pdf_FileParser_Image_Pngm@ =Zend_Pdf_FileParser_Fontm&? OZend_Pdf_FileParser_Font_OpenTypem/> aZend_Pdf_FileParser_Font_OpenType_TrueTypem= 1Zend_Pdf_Exceptionm< ;Zend_Pdf_ElementFactorym"; GZend_Pdf_ElementFactory_Proxym: -Zend_Pdf_Elementm9 ;Zend_Pdf_Element_Stringm#8 IZend_Pdf_Element_String_Binarym7 ;Zend_Pdf_Element_Streamm6 AZend_Pdf_Element_Referencem%5 MZend_Pdf_Element_Reference_Tablem   R  }0i/|L#wN*nB


}
A
				f	?	NZ+wAY#l>	pCR)b:           h /Zend_Server_Cachemg 5Zend_Server_Abstractmf 1Zend_Search_Lucenem0e cZend_Search_Lucene_TermStreamsPriorityQueuem$d KZend_Search_Lucene_Storage_Filem+c YZend_Search_Lucene_Storage_File_Memorym/b aZend_Search_Lucene_Storage_File_Filesystemm)a UZend_Search_Lucene_Storage_Directorym4` kZend_Search_Lucene_Storage_Directory_Filesystemm%_ MZend_Search_Lucene_Search_Weightm*^ WZend_Search_Lucene_Search_Weight_Termm,] [Zend_Search_Lucene_Search_Weight_Phrasem/\ aZend_Search_Lucene_Search_Weight_MultiTermm+[ YZend_Search_Lucene_Search_Weight_Emptym-Z ]Zend_Search_Lucene_Search_Weight_Booleanm)Y UZend_Search_Lucene_Search_Similaritym1X eZend_Search_Lucene_Search_Similarity_Defaultm)W UZend_Search_Lucene_Search_QueryTokenm3V iZend_Search_Lucene_Search_QueryParserExceptionm1U eZend_Search_Lucene_Search_QueryParserContextm*T WZend_Search_Lucene_Search_QueryParserm)S UZend_Search_Lucene_Search_QueryLexerm'R QZend_Search_Lucene_Search_QueryHitm)Q UZend_Search_Lucene_Search_QueryEntrym.P _Zend_Search_Lucene_Search_QueryEntry_Termm2O gZend_Search_Lucene_Search_QueryEntry_Subquerym0N cZend_Search_Lucene_Search_QueryEntry_Phrasem$M KZend_Search_Lucene_Search_Querym-L ]Zend_Search_Lucene_Search_Query_Wildcardm)K UZend_Search_Lucene_Search_Query_Termm*J WZend_Search_Lucene_Search_Query_Rangem2I gZend_Search_Lucene_Search_Query_Preprocessingm7H qZend_Search_Lucene_Search_Query_Preprocessing_Termm9G uZend_Search_Lucene_Search_Query_Preprocessing_Phrasem8F sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzym+E YZend_Search_Lucene_Search_Query_Phrasem.D _Zend_Search_Lucene_Search_Query_MultiTermm2C gZend_Search_Lucene_Search_Query_Insignificantm*B WZend_Search_Lucene_Search_Query_Fuzzym*A WZend_Search_Lucene_Search_Query_Emptym,@ [Zend_Search_Lucene_Search_Query_Booleanm2? gZend_Search_Lucene_Search_Highlighter_Defaultm:> wZend_Search_Lucene_Search_BooleanExpressionRecognizerm= =Zend_Search_Lucene_Proxym%< MZend_Search_Lucene_PriorityQueuem/; aZend_Search_Lucene_Interface_MultiSearcherm#: IZend_Search_Lucene_LockManagerm$9 KZend_Search_Lucene_Index_Writerm08 cZend_Search_Lucene_Index_TermsPriorityQueuem&7 OZend_Search_Lucene_Index_TermInfom"6 GZend_Search_Lucene_Index_Termm+5 YZend_Search_Lucene_Index_SegmentWriterm84 sZend_Search_Lucene_Index_SegmentWriter_StreamWriterm:3 wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterm+2 YZend_Search_Lucene_Index_SegmentMergerm)1 UZend_Search_Lucene_Index_SegmentInfom'0 QZend_Search_Lucene_Index_FieldInfom(/ SZend_Search_Lucene_Index_DocsFilterm.. _Zend_Search_Lucene_Index_DictionaryLoaderm!- EZend_Search_Lucene_FSMActionm, 9Zend_Search_Lucene_FSMm+ =Zend_Search_Lucene_Fieldm!* EZend_Search_Lucene_Exceptionm ) CZend_Search_Lucene_Documentm%( MZend_Search_Lucene_Document_Xlsxm%' MZend_Search_Lucene_Document_Pptxm(& SZend_Search_Lucene_Document_OpenXmlm%% MZend_Search_Lucene_Document_Htmlm*$ WZend_Search_Lucene_Document_Exceptionm%# MZend_Search_Lucene_Document_Docxm," [Zend_Search_Lucene_Analysis_TokenFilterm6! oZend_Search_Lucene_Analysis_TokenFilter_StopWordsm7  qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsm: wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8m6 oZend_Search_Lucene_Analysis_TokenFilter_LowerCasem& OZend_Search_Lucene_Analysis_Tokenm) UZend_Search_Lucene_Analysis_Analyzerm0 cZend_Search_Lucene_Analysis_Analyzer_Commonm8 sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NummI Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitivem5 mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8mF Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitivem   d  yT/
b>gBpF~U&



q
G
%
 				i	J		j@!{S&Y1	b? X=zPvGY+        #L IZend_Service_Technorati_Resultm*K WZend_Service_Technorati_KeyInfoResultm*J WZend_Service_Technorati_GetInfoResultm&I OZend_Service_Technorati_Exceptionm1H eZend_Service_Technorati_DailyCountsResultSetm.G _Zend_Service_Technorati_DailyCountsResultm,F [Zend_Service_Technorati_CosmosResultSetm)E UZend_Service_Technorati_CosmosResultm+D YZend_Service_Technorati_BlogInfoResultm#C IZend_Service_Technorati_AuthormB ;Zend_Service_StrikeIronm(A SZend_Service_StrikeIron_ZipCodeInfom2@ gZend_Service_StrikeIron_USAddressVerificationm-? ]Zend_Service_StrikeIron_SalesUseTaxBasicm&> OZend_Service_StrikeIron_Exceptionm&= OZend_Service_StrikeIron_Decoratorm!< EZend_Service_StrikeIron_Basem; ;Zend_Service_SlideSharem&: OZend_Service_SlideShare_SlideShowm&9 OZend_Service_SlideShare_Exceptionm8 1Zend_Service_Simpym$7 KZend_Service_Simpy_WatchlistSetm*6 WZend_Service_Simpy_WatchlistFilterSetm'5 QZend_Service_Simpy_WatchlistFilterm!4 EZend_Service_Simpy_Watchlistm3 ?Zend_Service_Simpy_TagSetm2 9Zend_Service_Simpy_Tagm1 AZend_Service_Simpy_NoteSetm0 ;Zend_Service_Simpy_Notem/ AZend_Service_Simpy_LinkSetm!. EZend_Service_Simpy_LinkQuerym- ;Zend_Service_Simpy_Linkm, 9Zend_Service_ReCaptcham$+ KZend_Service_ReCaptcha_Responsem$* KZend_Service_ReCaptcha_MailHidem.) _Zend_Service_ReCaptcha_MailHide_Exceptionm%( MZend_Service_ReCaptcha_Exceptionm' 7Zend_Service_Nirvanixm#& IZend_Service_Nirvanix_Responsem)% UZend_Service_Nirvanix_Namespace_Imfsm)$ UZend_Service_Nirvanix_Namespace_Basem$# KZend_Service_Nirvanix_Exceptionm" 3Zend_Service_Flickrm"! GZend_Service_Flickr_ResultSetm  AZend_Service_Flickr_Resultm ?Zend_Service_Flickr_Imagem 9Zend_Service_Exceptionm 9Zend_Service_Deliciousm& OZend_Service_Delicious_SimplePostm$ KZend_Service_Delicious_PostListm  CZend_Service_Delicious_Postm% MZend_Service_Delicious_Exceptionm  CZend_Service_Audioscrobblerm 3Zend_Service_Amazonm' QZend_Service_Amazon_SimilarProductm 9Zend_Service_Amazon_S3m" GZend_Service_Amazon_S3_Streamm% MZend_Service_Amazon_S3_Exceptionm" GZend_Service_Amazon_ResultSetm ?Zend_Service_Amazon_Querym! EZend_Service_Amazon_OfferSetm ?Zend_Service_Amazon_Offerm& OZend_Service_Amazon_ListmaniaListm =Zend_Service_Amazon_Itemm ?Zend_Service_Amazon_Imagem" GZend_Service_Amazon_Exceptionm(
 SZend_Service_Amazon_EditorialReviewm	 ;Zend_Service_Amazon_Ec2m+ YZend_Service_Amazon_Ec2_Securitygroupsm% MZend_Service_Amazon_Ec2_Responsem# IZend_Service_Amazon_Ec2_Regionm$ KZend_Service_Amazon_Ec2_Keypairm% MZend_Service_Amazon_Ec2_Instancem" GZend_Service_Amazon_Ec2_Imagem& OZend_Service_Amazon_Ec2_Exceptionm& OZend_Service_Amazon_Ec2_Elasticipm   CZend_Service_Amazon_Ec2_Ebsm. _Zend_Service_Amazon_Ec2_Availabilityzonesm%~ MZend_Service_Amazon_Ec2_Abstractm'} QZend_Service_Amazon_CustomerReviewm$| KZend_Service_Amazon_Accessoriesm!{ EZend_Service_Amazon_Abstractmz 5Zend_Service_Akismetmy 7Zend_Service_Abstractmx 9Zend_Server_Reflectionm'w QZend_Server_Reflection_ReturnValuem%v MZend_Server_Reflection_Prototypem%u MZend_Server_Reflection_Parameterm t CZend_Server_Reflection_Nodem"s GZend_Server_Reflection_Methodm$r KZend_Server_Reflection_Functionm-q ]Zend_Server_Reflection_Function_Abstractm%p MZend_Server_Reflection_Exceptionm!o EZend_Server_Reflection_Classm!n EZend_Server_Method_Prototypem!m EZend_Server_Method_Parameterm"l GZend_Server_Method_Definitionm k CZend_Server_Method_Callbackmj 7Zend_Server_Exceptionmi 9Zend_Server_Definitionm   d  yO"|\5V' ]0sK0




X
+
					k	L	3	RX-v\.pT1iM5V(X|@         '0 QZend_Tool_Framework_Client_Requestm9/ uZend_Tool_Framework_Client_Interactive_InputResponsem8. sZend_Tool_Framework_Client_Interactive_InputRequestm8- sZend_Tool_Framework_Client_Interactive_InputHandlerm), UZend_Tool_Framework_Client_Exceptionm'+ QZend_Tool_Framework_Client_ConsolemD* 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizerm0) cZend_Tool_Framework_Client_Console_Manifestm2( gZend_Tool_Framework_Client_Console_HelpSystemm6' oZend_Tool_Framework_Client_Console_ArgumentParserm(& SZend_Tool_Framework_Client_Abstractm*% WZend_Tool_Framework_Action_Repositorym)$ UZend_Tool_Framework_Action_Exceptionm$# KZend_Tool_Framework_Action_Basem" 'Zend_TimeSyncm! 1Zend_TimeSync_Sntpm  9Zend_TimeSync_Protocolm /Zend_TimeSync_Ntpm ;Zend_TimeSync_Exceptionm +Zend_Text_Tablem 3Zend_Text_Table_Rowm ?Zend_Text_Table_Exceptionm& OZend_Text_Table_Decorator_Unicodem$ KZend_Text_Table_Decorator_Asciim 9Zend_Text_Table_Columnm 3Zend_Text_MultiBytem -Zend_Text_Figletm AZend_Text_Figlet_Exceptionm 3Zend_Text_Exceptionm) UZend_Test_PHPUnit_ControllerTestCasem0 cZend_Test_PHPUnit_Constraint_ResponseHeaderm* WZend_Test_PHPUnit_Constraint_Redirectm+ YZend_Test_PHPUnit_Constraint_Exceptionm* WZend_Test_PHPUnit_Constraint_DomQuerym /Zend_Tag_ItemListm 'Zend_Tag_Itemm 1Zend_Tag_Exceptionm )Zend_Tag_Cloudm
 =Zend_Tag_Cloud_Exceptionm!	 EZend_Tag_Cloud_Decorator_Tagm% MZend_Tag_Cloud_Decorator_HtmlTagm' QZend_Tag_Cloud_Decorator_HtmlCloudm' QZend_Tag_Cloud_Decorator_Exceptionm# IZend_Tag_Cloud_Decorator_Cloudm )Zend_Soap_Wsdlm/ aZend_Soap_Wsdl_Strategy_DefaultComplexTypem& OZend_Soap_Wsdl_Strategy_Compositem0 cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequencem/  aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplexm$ KZend_Soap_Wsdl_Strategy_AnyTypem%~ MZend_Soap_Wsdl_Strategy_Abstractm} =Zend_Soap_Wsdl_Exceptionm| -Zend_Soap_Serverm{ AZend_Soap_Server_Exceptionmz -Zend_Soap_Clientmy 9Zend_Soap_Client_Localmx AZend_Soap_Client_Exceptionmw ;Zend_Soap_Client_DotNetmv ;Zend_Soap_Client_Commonmu 9Zend_Soap_AutoDiscoverm%t MZend_Soap_AutoDiscover_Exceptionms %Zend_Sessionm)r UZend_Session_Validator_HttpUserAgentm$q KZend_Session_Validator_Abstractm'p QZend_Session_SaveHandler_Exceptionm%o MZend_Session_SaveHandler_DbTablemn 9Zend_Session_Namespacemm 9Zend_Session_Exceptionml 7Zend_Session_Abstractmk 1Zend_Service_Yahoom$j KZend_Service_Yahoo_WebResultSetm!i EZend_Service_Yahoo_WebResultm&h OZend_Service_Yahoo_VideoResultSetm#g IZend_Service_Yahoo_VideoResultm!f EZend_Service_Yahoo_ResultSetme ?Zend_Service_Yahoo_Resultm)d UZend_Service_Yahoo_PageDataResultSetm&c OZend_Service_Yahoo_PageDataResultm%b MZend_Service_Yahoo_NewsResultSetm"a GZend_Service_Yahoo_NewsResultm&` OZend_Service_Yahoo_LocalResultSetm#_ IZend_Service_Yahoo_LocalResultm+^ YZend_Service_Yahoo_InlinkDataResultSetm(] SZend_Service_Yahoo_InlinkDataResultm&\ OZend_Service_Yahoo_ImageResultSetm#[ IZend_Service_Yahoo_ImageResultmZ =Zend_Service_Yahoo_ImagemY 5Zend_Service_Twitterm X CZend_Service_Twitter_Searchm#W IZend_Service_Twitter_ExceptionmV ;Zend_Service_Technoratim#U IZend_Service_Technorati_Weblogm"T GZend_Service_Technorati_Utilsm*S WZend_Service_Technorati_TagsResultSetm'R QZend_Service_Technorati_TagsResultm)Q UZend_Service_Technorati_TagResultSetm&P OZend_Service_Technorati_TagResultm,O [Zend_Service_Technorati_SearchResultSetm)N UZend_Service_Technorati_SearchResultm&M OZend_Service_Technorati_ResultSetm   I  f:X- yId8o9


i
-				I	xBk:p:m8Y$l5r.xC                                            7y qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFilem@x Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectorym1w eZend_Tool_Project_Context_Zf_TestLibraryFilem6v oZend_Tool_Project_Context_Zf_TestLibraryDirectorym:u wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFilem:t wZend_Tool_Project_Context_Zf_TestApplicationDirectorym@s Zend_Tool_Project_Context_Zf_TestApplicationControllerFilemEr Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectorym>q Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFilem4p kZend_Tool_Project_Context_Zf_TemporaryDirectorym3o iZend_Tool_Project_Context_Zf_SessionsDirectorym8n sZend_Tool_Project_Context_Zf_SearchIndexesDirectorym<m {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectorym8l sZend_Tool_Project_Context_Zf_PublicScriptsDirectorym1k eZend_Tool_Project_Context_Zf_PublicIndexFilem7j qZend_Tool_Project_Context_Zf_PublicImagesDirectorym1i eZend_Tool_Project_Context_Zf_PublicDirectorym5h mZend_Tool_Project_Context_Zf_ProjectProviderFilem2g gZend_Tool_Project_Context_Zf_ModulesDirectorym1f eZend_Tool_Project_Context_Zf_ModuleDirectorym1e eZend_Tool_Project_Context_Zf_ModelsDirectorym+d YZend_Tool_Project_Context_Zf_ModelFilem/c aZend_Tool_Project_Context_Zf_LogsDirectorym2b gZend_Tool_Project_Context_Zf_LocalesDirectorym2a gZend_Tool_Project_Context_Zf_LibraryDirectorym2` gZend_Tool_Project_Context_Zf_LayoutsDirectorym._ _Zend_Tool_Project_Context_Zf_HtaccessFilem0^ cZend_Tool_Project_Context_Zf_FormsDirectorym*] WZend_Tool_Project_Context_Zf_FormFilem-\ ]Zend_Tool_Project_Context_Zf_DbTableFilem2[ gZend_Tool_Project_Context_Zf_DbTableDirectorym/Z aZend_Tool_Project_Context_Zf_DataDirectorym6Y oZend_Tool_Project_Context_Zf_ControllersDirectorym0X cZend_Tool_Project_Context_Zf_ControllerFilem2W gZend_Tool_Project_Context_Zf_ConfigsDirectorym,V [Zend_Tool_Project_Context_Zf_ConfigFilem0U cZend_Tool_Project_Context_Zf_CacheDirectorym/T aZend_Tool_Project_Context_Zf_BootstrapFilem6S oZend_Tool_Project_Context_Zf_ApplicationDirectorym7R qZend_Tool_Project_Context_Zf_ApplicationConfigFilem/Q aZend_Tool_Project_Context_Zf_ApisDirectorym.P _Zend_Tool_Project_Context_Zf_ActionMethodm@O Zend_Tool_Project_Context_System_ProjectProvidersDirectorym8N sZend_Tool_Project_Context_System_ProjectProfileFilem6M oZend_Tool_Project_Context_System_ProjectDirectorym)L UZend_Tool_Project_Context_Repositorym.K _Zend_Tool_Project_Context_Filesystem_Filem3J iZend_Tool_Project_Context_Filesystem_Directorym2I gZend_Tool_Project_Context_Filesystem_Abstractm(H SZend_Tool_Project_Context_Exceptionm0G cZend_Tool_Framework_System_Provider_Versionm0F cZend_Tool_Framework_System_Provider_Phpinfom1E eZend_Tool_Framework_System_Provider_Manifestm(D SZend_Tool_Framework_System_Manifestm-C ]Zend_Tool_Framework_System_Action_Deletem-B ]Zend_Tool_Framework_System_Action_Createm!A EZend_Tool_Framework_Registrym+@ YZend_Tool_Framework_Registry_Exceptionm+? YZend_Tool_Framework_Provider_Signaturem,> [Zend_Tool_Framework_Provider_Repositorym+= YZend_Tool_Framework_Provider_Exceptionm*< WZend_Tool_Framework_Provider_Abstractm&; OZend_Tool_Framework_Metadata_Toolm): UZend_Tool_Framework_Metadata_Dynamicm'9 QZend_Tool_Framework_Metadata_Basicm,8 [Zend_Tool_Framework_Manifest_Repositorym+7 YZend_Tool_Framework_Manifest_Exceptionm16 eZend_Tool_Framework_Loader_IncludePathLoadermJ5 Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIteratorm(4 SZend_Tool_Framework_Loader_Abstractm"3 GZend_Tool_Framework_Exceptionm(2 SZend_Tool_Framework_Client_ResponsemD1 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separatorm   g  Qo;zA cAh<



`
8
				~	\	9	uZD3wY=" rR1rM-zU5vW<qH" pT2                              ` 9Zend_View_Helper_Cyclem_ ;Zend_View_Helper_Actionm^ ?Zend_View_Helper_Abstractm] 3Zend_View_Exceptionm\ 1Zend_View_Abstractm[ %Zend_VersionmZ 'Zend_ValidatemY AZend_Validate_StringLengthm#X IZend_Validate_Sitemap_PrioritymW ?Zend_Validate_Sitemap_Locm"V GZend_Validate_Sitemap_Lastmodm%U MZend_Validate_Sitemap_ChangefreqmT 3Zend_Validate_RegexmS 9Zend_Validate_NotEmptymR 9Zend_Validate_LessThanmQ -Zend_Validate_IpmP /Zend_Validate_IntmO 7Zend_Validate_InArraymN ;Zend_Validate_IdenticalmM 1Zend_Validate_IbanmL 9Zend_Validate_HostnamemK /Zend_Validate_HexmJ ?Zend_Validate_GreaterThanmI 3Zend_Validate_Floatm!H EZend_Validate_File_WordCountmG ?Zend_Validate_File_UploadmF ;Zend_Validate_File_SizemE ;Zend_Validate_File_Sha1m!D EZend_Validate_File_NotExistsm C CZend_Validate_File_MimeTypemB 9Zend_Validate_File_Md5mA AZend_Validate_File_IsImagem$@ KZend_Validate_File_IsCompressedm!? EZend_Validate_File_ImageSizem> ;Zend_Validate_File_Hashm!= EZend_Validate_File_FilesSizem!< EZend_Validate_File_Extensionm; ?Zend_Validate_File_Existsm': QZend_Validate_File_ExcludeMimeTypem(9 SZend_Validate_File_ExcludeExtensionm8 =Zend_Validate_File_Crc32m7 =Zend_Validate_File_Countm6 ;Zend_Validate_Exceptionm5 AZend_Validate_EmailAddressm4 5Zend_Validate_Digitsm"3 GZend_Validate_Db_RecordExistsm$2 KZend_Validate_Db_NoRecordExistsm1 ?Zend_Validate_Db_Abstractm0 1Zend_Validate_Datem/ 3Zend_Validate_Ccnumm. 7Zend_Validate_Betweenm- 7Zend_Validate_Barcodem, AZend_Validate_Barcode_UpcAm + CZend_Validate_Barcode_Ean13m* 3Zend_Validate_Alpham) 3Zend_Validate_Alnumm( 9Zend_Validate_Abstractm' Zend_Urim& 'Zend_Uri_Httpm% 1Zend_Uri_Exceptionm$ )Zend_Translatem# =Zend_Translate_Exceptionm" 9Zend_Translate_Adapterm!! EZend_Translate_Adapter_XmlTmm!  EZend_Translate_Adapter_Xliffm AZend_Translate_Adapter_Tmxm AZend_Translate_Adapter_Tbxm ?Zend_Translate_Adapter_Qtm AZend_Translate_Adapter_Inim# IZend_Translate_Adapter_Gettextm AZend_Translate_Adapter_Csvm! EZend_Translate_Adapter_Arraym$ KZend_Tool_Project_Provider_Viewm$ KZend_Tool_Project_Provider_Testm/ aZend_Tool_Project_Provider_ProjectProviderm' QZend_Tool_Project_Provider_Projectm' QZend_Tool_Project_Provider_Profilem& OZend_Tool_Project_Provider_Modulem% MZend_Tool_Project_Provider_Modelm( SZend_Tool_Project_Provider_Manifestm$ KZend_Tool_Project_Provider_Formm) UZend_Tool_Project_Provider_Exceptionm* WZend_Tool_Project_Provider_Controllerm& OZend_Tool_Project_Provider_Actionm( SZend_Tool_Project_Provider_Abstractm ?Zend_Tool_Project_Profilem'
 QZend_Tool_Project_Profile_Resourcem9	 uZend_Tool_Project_Profile_Resource_SearchConstraintsm1 eZend_Tool_Project_Profile_Resource_Containerm= }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilterm5 mZend_Tool_Project_Profile_Iterator_ContextFilterm- ]Zend_Tool_Project_Profile_FileParser_Xmlm( SZend_Tool_Project_Profile_Exceptionm  CZend_Tool_Project_Exceptionm< {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectorym0 cZend_Tool_Project_Context_Zf_ViewsDirectorym6  oZend_Tool_Project_Context_Zf_ViewScriptsDirectorym0 cZend_Tool_Project_Context_Zf_ViewScriptFilem6~ oZend_Tool_Project_Context_Zf_ViewHelpersDirectorym6} oZend_Tool_Project_Context_Zf_ViewFiltersDirectorymA| Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectorym2{ gZend_Tool_Project_Context_Zf_UploadsDirectorym0z cZend_Tool_Project_Context_Zf_TestsDirectorym   k  zV0~[0~Z8d?gI)



s
G
#					O	uG"yg=oJ rW9`;zU2kJ0pM)
                  K 1Zend_Amf_ConstantsnJ 9Zend_Amf_Auth_Abstractn I CZend_Amf_Adobe_IntrospectornH AZend_Amf_Adobe_DbInspectornG 3Zend_Amf_Adobe_AuthnF Zend_AclnE 'Zend_Acl_RolenD 9Zend_Acl_Role_Registryn%C MZend_Acl_Role_Registry_ExceptionnB /Zend_Acl_ResourcenA 1Zend_Acl_Exceptionn@ /Zend_XmlRpc_Valuem? =Zend_XmlRpc_Value_Structm> =Zend_XmlRpc_Value_Stringm= =Zend_XmlRpc_Value_Scalarm< 7Zend_XmlRpc_Value_Nilm; ?Zend_XmlRpc_Value_Integerm : CZend_XmlRpc_Value_Exceptionm9 =Zend_XmlRpc_Value_Doublem8 AZend_XmlRpc_Value_DateTimem!7 EZend_XmlRpc_Value_Collectionm6 ?Zend_XmlRpc_Value_Booleanm5 =Zend_XmlRpc_Value_Base64m4 ;Zend_XmlRpc_Value_Arraym3 1Zend_XmlRpc_Serverm2 ?Zend_XmlRpc_Server_Systemm1 =Zend_XmlRpc_Server_Faultm!0 EZend_XmlRpc_Server_Exceptionm/ =Zend_XmlRpc_Server_Cachem. 5Zend_XmlRpc_Responsem- ?Zend_XmlRpc_Response_Httpm, 3Zend_XmlRpc_Requestm+ ?Zend_XmlRpc_Request_Stdinm* =Zend_XmlRpc_Request_Httpm) /Zend_XmlRpc_Faultm( 7Zend_XmlRpc_Exceptionm' 1Zend_XmlRpc_Clientm#& IZend_XmlRpc_Client_ServerProxym+% YZend_XmlRpc_Client_ServerIntrospectionm+$ YZend_XmlRpc_Client_IntrospectExceptionm%# MZend_XmlRpc_Client_HttpExceptionm&" OZend_XmlRpc_Client_FaultExceptionm!! EZend_XmlRpc_Client_Exceptionm&  OZend_Wildfire_Protocol_JsonStreamm! EZend_Wildfire_Plugin_FirePhpm. _Zend_Wildfire_Plugin_FirePhp_TableMessagem) UZend_Wildfire_Plugin_FirePhp_Messagem ;Zend_Wildfire_Exceptionm& OZend_Wildfire_Channel_HttpHeadersm Zend_Viewm -Zend_View_Streamm 5Zend_View_Helper_Urlm AZend_View_Helper_Translatem AZend_View_Helper_ServerUrlm) UZend_View_Helper_RenderToPlaceholderm! EZend_View_Helper_Placeholderm* WZend_View_Helper_Placeholder_Registrym4 kZend_View_Helper_Placeholder_Registry_Exceptionm+ YZend_View_Helper_Placeholder_Containerm6 oZend_View_Helper_Placeholder_Container_Standalonem5 mZend_View_Helper_Placeholder_Container_Exceptionm4 kZend_View_Helper_Placeholder_Container_Abstractm! EZend_View_Helper_PartialLoopm =Zend_View_Helper_Partialm' QZend_View_Helper_Partial_Exceptionm'
 QZend_View_Helper_PaginationControlm 	 CZend_View_Helper_Navigationm( SZend_View_Helper_Navigation_Sitemapm% MZend_View_Helper_Navigation_Menum& OZend_View_Helper_Navigation_Linksm/ aZend_View_Helper_Navigation_HelperAbstractm, [Zend_View_Helper_Navigation_Breadcrumbsm ;Zend_View_Helper_Layoutm 7Zend_View_Helper_Jsonm" GZend_View_Helper_InlineScriptm#  IZend_View_Helper_HtmlQuicktimem ?Zend_View_Helper_HtmlPagem ~ CZend_View_Helper_HtmlObjectm} ?Zend_View_Helper_HtmlListm| AZend_View_Helper_HtmlFlashm!{ EZend_View_Helper_HtmlElementmz AZend_View_Helper_HeadTitlemy AZend_View_Helper_HeadStylem x CZend_View_Helper_HeadScriptmw ?Zend_View_Helper_HeadMetamv ?Zend_View_Helper_HeadLinkm"u GZend_View_Helper_FormTextareamt ?Zend_View_Helper_FormTextm s CZend_View_Helper_FormSubmitm r CZend_View_Helper_FormSelectmq AZend_View_Helper_FormResetmp AZend_View_Helper_FormRadiom"o GZend_View_Helper_FormPasswordmn ?Zend_View_Helper_FormNotem'm QZend_View_Helper_FormMultiCheckboxml AZend_View_Helper_FormLabelmk AZend_View_Helper_FormImagem j CZend_View_Helper_FormHiddenmi ?Zend_View_Helper_FormFilem h CZend_View_Helper_FormErrorsm!g EZend_View_Helper_FormElementm"f GZend_View_Helper_FormCheckboxm e CZend_View_Helper_FormButtonmd 7Zend_View_Helper_Formmc ?Zend_View_Helper_Fieldsetmb =Zend_View_Helper_Doctypem!a EZend_View_Helper_DeclareVarsm   Y  n4K#qGtS{S*


}
?				e	,V(j8 nL"vW(sP$ h:a0e+         -U ]Zend_InfoCard_Cipher_Symmetric_Interfacen7T qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interfacen7S qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interfacen+R YZend_InfoCard_Cipher_Pki_Rsa_Interfacen'Q QZend_InfoCard_Cipher_Pki_Interfacen$P KZend_InfoCard_Adapter_Interfacen'O QZend_Http_Client_Adapter_InterfacenN AZend_Gdata_App_MediaSourcen.M _Zend_Form_Decorator_Marker_File_Interfacen"L GZend_Form_Decorator_InterfacenK 7Zend_Filter_Interfacen"J GZend_Filter_Encrypt_Interfacen I CZend_Feed_Builder_Interfacen H CZend_Db_Statement_Interfacen)G UZend_Crypt_Math_BigInteger_Interfacen+F YZend_Controller_Router_Route_Interfacen%E MZend_Controller_Router_Interfacen)D UZend_Controller_Dispatcher_Interfacen%C MZend_Controller_Action_InterfacenB 5Zend_Captcha_Adaptern!A EZend_Cache_Backend_Interfacen)@ UZend_Cache_Backend_ExtendedInterfacen ? CZend_Auth_Storage_Interfacen > CZend_Auth_Adapter_Interfacen.= _Zend_Auth_Adapter_Http_Resolver_Interfacen'< QZend_Application_Resource_Resourcen4; kZend_Application_Bootstrap_ResourceBootstrappern,: [Zend_Application_Bootstrap_Bootstrappern9 ;Zend_Acl_Role_Interfacen 8 CZend_Acl_Resource_Interfacen7 ?Zend_Acl_Assert_Interfacen#6 IZend_Wildfire_Plugin_Interfacem$5 KZend_Wildfire_Channel_Interfacem4 3Zend_View_Interfacem'3 QZend_View_Helper_Navigation_Helperm2 AZend_View_Helper_Interfacem1 ;Zend_Validate_Interfacem30 iZend_Tool_Project_Profile_FileParser_Interfacem:/ wZend_Tool_Project_Context_System_TopLevelRestrictablem5. mZend_Tool_Project_Context_System_NotOverwritablem/- aZend_Tool_Project_Context_System_Interfacem(, SZend_Tool_Project_Context_Interfacem++ YZend_Tool_Framework_Registry_Interfacem2* gZend_Tool_Framework_Registry_EnabledInterfacem-) ]Zend_Tool_Framework_Provider_Pretendablem+( YZend_Tool_Framework_Provider_Interfacem.' _Zend_Tool_Framework_Provider_Interactablem;& yZend_Tool_Framework_Provider_DocblockManifestInterfacem+% YZend_Tool_Framework_Metadata_Interfacem6$ oZend_Tool_Framework_Manifest_ProviderManifestablem6# oZend_Tool_Framework_Manifest_MetadataManifestablem+" YZend_Tool_Framework_Manifest_Interfacem+! YZend_Tool_Framework_Manifest_Indexablem4  kZend_Tool_Framework_Manifest_ActionManifestablemD 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interfacem; yZend_Tool_Framework_Client_Interactive_OutputInterfacem: wZend_Tool_Framework_Client_Interactive_InputInterfacem) UZend_Tool_Framework_Action_Interfacem( SZend_Text_Table_Decorator_Interfacem /Zend_Tag_Taggablem& OZend_Soap_Wsdl_Strategy_Interfacem% MZend_Session_Validator_Interfacem' QZend_Session_SaveHandler_Interfacem 7Zend_Server_Interfacem4 kZend_Search_Lucene_Search_Highlighter_Interfacem! EZend_Search_Lucene_Interfacem3 iZend_Search_Lucene_Index_TermsStream_Interfacem ?Zend_Pdf_Filter_Interfacem& OZend_Pdf_ElementFactory_Interfacem, [Zend_Paginator_ScrollingStyle_Interfacem% MZend_Paginator_Adapter_Interfacem$ KZend_Memory_Container_Interfacem) UZend_Mail_Storage_Writable_Interfacem' QZend_Mail_Storage_Folder_Interfacem =Zend_Mail_Part_Interfacem 
 CZend_Mail_Message_Interfacem!	 EZend_Log_Formatter_Interfacem ?Zend_Log_Filter_Interfacem' QZend_Loader_PluginLoader_Interfacem% MZend_Loader_Autoloader_Interfacem3 iZend_InfoCard_Xml_Security_Transform_Interfacem( SZend_InfoCard_Xml_KeyInfo_Interfacem( SZend_InfoCard_Xml_Element_Interfacem* WZend_InfoCard_Xml_Assertion_Interfacem- ]Zend_InfoCard_Cipher_Symmetric_Interfacem7  qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interfacem7 qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interfacem+~ YZend_InfoCard_Cipher_Pki_Rsa_Interfacem'} QZend_InfoCard_Cipher_Pki_Interfacem   h  lE!Z8lI({Jk>	



d
?
				e	8	_F$a>}[I*
~\4	gE$tU9tP+f>                           3 CZend_CodeGenerator_Php_Filen%2 MZend_CodeGenerator_Php_Exceptionn$1 KZend_CodeGenerator_Php_Docblockn(0 SZend_CodeGenerator_Php_Docblock_Tagn// aZend_CodeGenerator_Php_Docblock_Tag_Returnn.. _Zend_CodeGenerator_Php_Docblock_Tag_Paramn0- cZend_CodeGenerator_Php_Docblock_Tag_Licensen!, EZend_CodeGenerator_Php_Classn + CZend_CodeGenerator_Php_Bodyn$* KZend_CodeGenerator_Php_Abstractn!) EZend_CodeGenerator_Exceptionn ( CZend_CodeGenerator_Abstractn' /Zend_Captcha_Wordn& 9Zend_Captcha_ReCaptchan% 1Zend_Captcha_Imagen$ 3Zend_Captcha_Figletn# 9Zend_Captcha_Exceptionn" /Zend_Captcha_Dumbn! /Zend_Captcha_Basen  !Zend_Cachen =Zend_Cache_Frontend_Pagen AZend_Cache_Frontend_Outputn! EZend_Cache_Frontend_Functionn =Zend_Cache_Frontend_Filen ?Zend_Cache_Frontend_Classn 5Zend_Cache_Exceptionn +Zend_Cache_Coren 1Zend_Cache_Backendn" GZend_Cache_Backend_ZendServern( SZend_Cache_Backend_ZendServer_ShMemn' QZend_Cache_Backend_ZendServer_Diskn$ KZend_Cache_Backend_ZendPlatformn ?Zend_Cache_Backend_Xcachen! EZend_Cache_Backend_TwoLevelsn ;Zend_Cache_Backend_Testn ?Zend_Cache_Backend_Sqliten! EZend_Cache_Backend_Memcachedn ;Zend_Cache_Backend_Filen 9Zend_Cache_Backend_Apcn Zend_Authn ?Zend_Auth_Storage_Sessionn$
 KZend_Auth_Storage_NonPersistentn 	 CZend_Auth_Storage_Exceptionn -Zend_Auth_Resultn 3Zend_Auth_Exceptionn =Zend_Auth_Adapter_OpenIdn 9Zend_Auth_Adapter_Ldapn AZend_Auth_Adapter_InfoCardn 9Zend_Auth_Adapter_Httpn) UZend_Auth_Adapter_Http_Resolver_Filen. _Zend_Auth_Adapter_Http_Resolver_Exceptionn   CZend_Auth_Adapter_Exceptionn =Zend_Auth_Adapter_Digestn~ ?Zend_Auth_Adapter_DbTablen} -Zend_Applicationn#| IZend_Application_Resource_Viewn({ SZend_Application_Resource_Translaten&z OZend_Application_Resource_Sessionn%y MZend_Application_Resource_Routern/x aZend_Application_Resource_ResourceAbstractn)w UZend_Application_Resource_Navigationn&v OZend_Application_Resource_Modulesn%u MZend_Application_Resource_Localen%t MZend_Application_Resource_Layoutn.s _Zend_Application_Resource_Frontcontrollern(r SZend_Application_Resource_Exceptionn!q EZend_Application_Resource_Dbn&p OZend_Application_Module_Bootstrapn'o QZend_Application_Module_Autoloadernn AZend_Application_Exceptionn)m UZend_Application_Bootstrap_Exceptionn1l eZend_Application_Bootstrap_BootstrapAbstractn)k UZend_Application_Bootstrap_Bootstrapnj ?Zend_Amf_Value_TraitsInfon-i ]Zend_Amf_Value_Messaging_RemotingMessagen*h WZend_Amf_Value_Messaging_ErrorMessagen,g [Zend_Amf_Value_Messaging_CommandMessagen*f WZend_Amf_Value_Messaging_AsyncMessagen-e ]Zend_Amf_Value_Messaging_ArrayCollectionn0d cZend_Amf_Value_Messaging_AcknowledgeMessagen-c ]Zend_Amf_Value_Messaging_AbstractMessagen!b EZend_Amf_Value_MessageHeaderna AZend_Amf_Value_MessageBodyn` =Zend_Amf_Value_ByteArrayn_ AZend_Amf_Util_BinaryStreamn^ +Zend_Amf_Servern] ?Zend_Amf_Server_Exceptionn\ /Zend_Amf_Responsen[ 9Zend_Amf_Response_HttpnZ -Zend_Amf_RequestnY 7Zend_Amf_Request_HttpnX ?Zend_Amf_Parse_TypeLoadernW ?Zend_Amf_Parse_Serializern#V IZend_Amf_Parse_Resource_Streamn(U SZend_Amf_Parse_Resource_MysqlResultn)T UZend_Amf_Parse_Resource_MysqliResultn S CZend_Amf_Parse_OutputStreamnR AZend_Amf_Parse_InputStreamn Q CZend_Amf_Parse_Deserializern#P IZend_Amf_Parse_Amf3_Serializern%O MZend_Amf_Parse_Amf3_Deserializern#N IZend_Amf_Parse_Amf0_Serializern%M MZend_Amf_Parse_Amf0_DeserializernL 1Zend_Amf_Exceptionn   g  {R*zbN(Pi4	{A



q
O
1
					c	9	lGwP"rF!~T' ^C,^8jE!yW4              AZend_Db_Profiler_Exceptionn %Zend_Db_Exprn /Zend_Db_Exceptionn AZend_Db_Adapter_Pdo_Sqliten ?Zend_Db_Adapter_Pdo_Pgsqln ;Zend_Db_Adapter_Pdo_Ocin ?Zend_Db_Adapter_Pdo_Mysqln ?Zend_Db_Adapter_Pdo_Mssqln ;Zend_Db_Adapter_Pdo_Ibmn  CZend_Db_Adapter_Pdo_Ibm_Idsn  CZend_Db_Adapter_Pdo_Ibm_Db2n! EZend_Db_Adapter_Pdo_Abstractn 9Zend_Db_Adapter_Oraclen% MZend_Db_Adapter_Oracle_Exceptionn 9Zend_Db_Adapter_Mysqlin% MZend_Db_Adapter_Mysqli_Exceptionn
 ?Zend_Db_Adapter_Exceptionn	 3Zend_Db_Adapter_Db2n" GZend_Db_Adapter_Db2_Exceptionn =Zend_Db_Adapter_Abstractn Zend_Daten 3Zend_Date_Exceptionn 5Zend_Date_DateObjectn -Zend_Date_Citiesn 'Zend_Currencyn ;Zend_Currency_Exceptionn  !Zend_Cryptn )Zend_Crypt_Rsan~ 1Zend_Crypt_Rsa_Keyn} ?Zend_Crypt_Rsa_Key_Publicn| AZend_Crypt_Rsa_Key_Privaten{ +Zend_Crypt_Mathnz ?Zend_Crypt_Math_Exceptionny AZend_Crypt_Math_BigIntegern#x IZend_Crypt_Math_BigInteger_Gmpn)w UZend_Crypt_Math_BigInteger_Exceptionn&v OZend_Crypt_Math_BigInteger_Bcmathnu +Zend_Crypt_Hmacnt ?Zend_Crypt_Hmac_Exceptionns 5Zend_Crypt_Exceptionnr =Zend_Crypt_DiffieHellmann'q QZend_Crypt_DiffieHellman_Exceptionn!p EZend_Controller_Router_Routen(o SZend_Controller_Router_Route_Staticn'n QZend_Controller_Router_Route_Regexn(m SZend_Controller_Router_Route_Modulen*l WZend_Controller_Router_Route_Hostnamen'k QZend_Controller_Router_Route_Chainn*j WZend_Controller_Router_Route_Abstractn#i IZend_Controller_Router_Rewriten%h MZend_Controller_Router_Exceptionn$g KZend_Controller_Router_Abstractn*f WZend_Controller_Response_HttpTestCasen"e GZend_Controller_Response_Httpn'd QZend_Controller_Response_Exceptionn!c EZend_Controller_Response_Clin&b OZend_Controller_Response_Abstractn#a IZend_Controller_Request_Simplen)` UZend_Controller_Request_HttpTestCasen!_ EZend_Controller_Request_Httpn&^ OZend_Controller_Request_Exceptionn&] OZend_Controller_Request_Apache404n%\ MZend_Controller_Request_Abstractn([ SZend_Controller_Plugin_ErrorHandlern"Z GZend_Controller_Plugin_Brokern'Y QZend_Controller_Plugin_ActionStackn$X KZend_Controller_Plugin_AbstractnW 7Zend_Controller_FrontnV ?Zend_Controller_Exceptionn(U SZend_Controller_Dispatcher_Standardn)T UZend_Controller_Dispatcher_Exceptionn(S SZend_Controller_Dispatcher_AbstractnR 9Zend_Controller_Actionn(Q SZend_Controller_Action_HelperBrokern6P oZend_Controller_Action_HelperBroker_PriorityStackn/O aZend_Controller_Action_Helper_ViewRenderern&N OZend_Controller_Action_Helper_Urln-M ]Zend_Controller_Action_Helper_Redirectorn'L QZend_Controller_Action_Helper_Jsonn1K eZend_Controller_Action_Helper_FlashMessengern0J cZend_Controller_Action_Helper_ContextSwitchn<I {Zend_Controller_Action_Helper_AutoCompleteScriptaculousn3H iZend_Controller_Action_Helper_AutoCompleteDojon8G sZend_Controller_Action_Helper_AutoComplete_Abstractn.F _Zend_Controller_Action_Helper_AjaxContextn.E _Zend_Controller_Action_Helper_ActionStackn+D YZend_Controller_Action_Helper_Abstractn%C MZend_Controller_Action_ExceptionnB 3Zend_Console_Getoptn"A GZend_Console_Getopt_Exceptionn@ #Zend_Confign? +Zend_Config_Xmln> 1Zend_Config_Writern= 9Zend_Config_Writer_Xmln< 9Zend_Config_Writer_Inin; =Zend_Config_Writer_Arrayn: +Zend_Config_Inin9 7Zend_Config_Exceptionn$8 KZend_CodeGenerator_Php_Propertyn%7 MZend_CodeGenerator_Php_Parametern"6 GZend_CodeGenerator_Php_Methodn,5 [Zend_CodeGenerator_Php_Member_Containern+4 YZend_CodeGenerator_Php_Member_Abstractn   c  oG)mK)kQ+}jS7vF



_
;
				k	F	j=c;kT3\5e8rCfAjD                             ,} [Zend_Dojo_View_Helper_ValidationTextBoxn&| OZend_Dojo_View_Helper_TimeTextBoxn"{ GZend_Dojo_View_Helper_TextBoxn#z IZend_Dojo_View_Helper_Textarean'y QZend_Dojo_View_Helper_TabContainern'x QZend_Dojo_View_Helper_SubmitButtonn)w UZend_Dojo_View_Helper_StackContainern)v UZend_Dojo_View_Helper_SplitContainern!u EZend_Dojo_View_Helper_Slidern)t UZend_Dojo_View_Helper_SimpleTextarean&s OZend_Dojo_View_Helper_RadioButtonn*r WZend_Dojo_View_Helper_PasswordTextBoxn(q SZend_Dojo_View_Helper_NumberTextBoxn(p SZend_Dojo_View_Helper_NumberSpinnern+o YZend_Dojo_View_Helper_HorizontalSlidernn AZend_Dojo_View_Helper_Formn*m WZend_Dojo_View_Helper_FilteringSelectn!l EZend_Dojo_View_Helper_Editornk AZend_Dojo_View_Helper_Dojon)j UZend_Dojo_View_Helper_Dojo_Containern)i UZend_Dojo_View_Helper_DijitContainern h CZend_Dojo_View_Helper_Dijitn&g OZend_Dojo_View_Helper_DateTextBoxn&f OZend_Dojo_View_Helper_CustomDijitn*e WZend_Dojo_View_Helper_CurrencyTextBoxn&d OZend_Dojo_View_Helper_ContentPanen#c IZend_Dojo_View_Helper_ComboBoxn#b IZend_Dojo_View_Helper_CheckBoxn!a EZend_Dojo_View_Helper_Buttonn*` WZend_Dojo_View_Helper_BorderContainern(_ SZend_Dojo_View_Helper_AccordionPanen-^ ]Zend_Dojo_View_Helper_AccordionContainern] =Zend_Dojo_View_Exceptionn\ )Zend_Dojo_Formn[ 9Zend_Dojo_Form_SubFormn*Z WZend_Dojo_Form_Element_VerticalSlidern-Y ]Zend_Dojo_Form_Element_ValidationTextBoxn'X QZend_Dojo_Form_Element_TimeTextBoxn#W IZend_Dojo_Form_Element_TextBoxn$V KZend_Dojo_Form_Element_Textarean(U SZend_Dojo_Form_Element_SubmitButtonn"T GZend_Dojo_Form_Element_Slidern*S WZend_Dojo_Form_Element_SimpleTextarean'R QZend_Dojo_Form_Element_RadioButtonn+Q YZend_Dojo_Form_Element_PasswordTextBoxn)P UZend_Dojo_Form_Element_NumberTextBoxn)O UZend_Dojo_Form_Element_NumberSpinnern,N [Zend_Dojo_Form_Element_HorizontalSlidern+M YZend_Dojo_Form_Element_FilteringSelectn"L GZend_Dojo_Form_Element_Editorn&K OZend_Dojo_Form_Element_DijitMultin!J EZend_Dojo_Form_Element_Dijitn'I QZend_Dojo_Form_Element_DateTextBoxn+H YZend_Dojo_Form_Element_CurrencyTextBoxn$G KZend_Dojo_Form_Element_ComboBoxn$F KZend_Dojo_Form_Element_CheckBoxn"E GZend_Dojo_Form_Element_Buttonn D CZend_Dojo_Form_DisplayGroupn*C WZend_Dojo_Form_Decorator_TabContainern,B [Zend_Dojo_Form_Decorator_StackContainern,A [Zend_Dojo_Form_Decorator_SplitContainern'@ QZend_Dojo_Form_Decorator_DijitFormn*? WZend_Dojo_Form_Decorator_DijitElementn,> [Zend_Dojo_Form_Decorator_DijitContainern)= UZend_Dojo_Form_Decorator_ContentPanen-< ]Zend_Dojo_Form_Decorator_BorderContainern+; YZend_Dojo_Form_Decorator_AccordionPanen0: cZend_Dojo_Form_Decorator_AccordionContainern9 3Zend_Dojo_Exceptionn8 )Zend_Dojo_Datan7 !Zend_Debugn6 Zend_Dbn5 'Zend_Db_Tablen4 5Zend_Db_Table_Selectn#3 IZend_Db_Table_Select_Exceptionn2 5Zend_Db_Table_Rowsetn#1 IZend_Db_Table_Rowset_Exceptionn"0 GZend_Db_Table_Rowset_Abstractn/ /Zend_Db_Table_Rown . CZend_Db_Table_Row_Exceptionn- AZend_Db_Table_Row_Abstractn, ;Zend_Db_Table_Exceptionn+ 9Zend_Db_Table_Abstractn* /Zend_Db_Statementn) 7Zend_Db_Statement_Pdon( ?Zend_Db_Statement_Pdo_Ocin' ?Zend_Db_Statement_Pdo_Ibmn& =Zend_Db_Statement_Oraclen'% QZend_Db_Statement_Oracle_Exceptionn$ =Zend_Db_Statement_Mysqlin'# QZend_Db_Statement_Mysqli_Exceptionn " CZend_Db_Statement_Exceptionn! 7Zend_Db_Statement_Db2n$  KZend_Db_Statement_Db2_Exceptionn )Zend_Db_Selectn =Zend_Db_Select_Exceptionn -Zend_Db_Profilern 9Zend_Db_Profiler_Queryn =Zend_Db_Profiler_Firebugn   r  gP9z`F%|T/oW4qQ.




i
I
,

					`	2	[-}N:{S0
zS/tM.fE%tT3z`N)                *o WZend_Gdata_App_BadMethodCallExceptionn!n EZend_Gdata_App_AuthExceptionnm Zend_Formnl /Zend_Form_SubFormnk 3Zend_Form_Exceptionnj /Zend_Form_Elementni ;Zend_Form_Element_Xhtmlnh AZend_Form_Element_Textareang 9Zend_Form_Element_Textnf =Zend_Form_Element_Submitne =Zend_Form_Element_Selectnd ;Zend_Form_Element_Resetnc ;Zend_Form_Element_Radionb AZend_Form_Element_Passwordn"a GZend_Form_Element_Multiselectn$` KZend_Form_Element_MultiCheckboxn_ ;Zend_Form_Element_Multin^ ;Zend_Form_Element_Imagen] =Zend_Form_Element_Hiddenn\ 9Zend_Form_Element_Hashn[ 9Zend_Form_Element_Filen Z CZend_Form_Element_ExceptionnY AZend_Form_Element_CheckboxnX ?Zend_Form_Element_CaptchanW =Zend_Form_Element_ButtonnV 9Zend_Form_DisplayGroupn#U IZend_Form_Decorator_ViewScriptn#T IZend_Form_Decorator_ViewHelpern S CZend_Form_Decorator_Tooltipn(R SZend_Form_Decorator_PrepareElementsnQ ?Zend_Form_Decorator_LabelnP ?Zend_Form_Decorator_Imagen O CZend_Form_Decorator_HtmlTagn#N IZend_Form_Decorator_FormErrorsn%M MZend_Form_Decorator_FormElementsnL =Zend_Form_Decorator_FormnK =Zend_Form_Decorator_Filen!J EZend_Form_Decorator_Fieldsetn"I GZend_Form_Decorator_ExceptionnH AZend_Form_Decorator_Errorsn$G KZend_Form_Decorator_DtDdWrappern$F KZend_Form_Decorator_Descriptionn E CZend_Form_Decorator_Captchan%D MZend_Form_Decorator_Captcha_Wordn!C EZend_Form_Decorator_Callbackn!B EZend_Form_Decorator_AbstractnA #Zend_Filtern+@ YZend_Filter_Word_UnderscoreToSeparatorn&? OZend_Filter_Word_UnderscoreToDashn+> YZend_Filter_Word_UnderscoreToCamelCasen*= WZend_Filter_Word_SeparatorToSeparatorn%< MZend_Filter_Word_SeparatorToDashn*; WZend_Filter_Word_SeparatorToCamelCasen(: SZend_Filter_Word_Separator_Abstractn&9 OZend_Filter_Word_DashToUnderscoren%8 MZend_Filter_Word_DashToSeparatorn%7 MZend_Filter_Word_DashToCamelCasen+6 YZend_Filter_Word_CamelCaseToUnderscoren*5 WZend_Filter_Word_CamelCaseToSeparatorn%4 MZend_Filter_Word_CamelCaseToDashn3 7Zend_Filter_StripTagsn2 ?Zend_Filter_StripNewlinesn1 9Zend_Filter_StringTrimn0 ?Zend_Filter_StringToUppern/ ?Zend_Filter_StringToLowern. 5Zend_Filter_RealPathn- ;Zend_Filter_PregReplacen&, OZend_Filter_NormalizedToLocalizedn&+ OZend_Filter_LocalizedToNormalizedn* +Zend_Filter_Intn) /Zend_Filter_Inputn( 7Zend_Filter_Inflectorn' =Zend_Filter_HtmlEntitiesn& AZend_Filter_File_UpperCasen% ;Zend_Filter_File_Renamen$ AZend_Filter_File_LowerCasen# =Zend_Filter_File_Encryptn" =Zend_Filter_File_Decryptn! 7Zend_Filter_Exceptionn  3Zend_Filter_Encryptn  CZend_Filter_Encrypt_Openssln AZend_Filter_Encrypt_Mcryptn +Zend_Filter_Dirn 1Zend_Filter_Digitsn 3Zend_Filter_Decryptn 5Zend_Filter_Callbackn 5Zend_Filter_BaseNamen /Zend_Filter_Alphan /Zend_Filter_Alnumn 1Zend_File_Transfern! EZend_File_Transfer_Exceptionn$ KZend_File_Transfer_Adapter_Httpn( SZend_File_Transfer_Adapter_Abstractn Zend_Feedn 'Zend_Feed_Rssn 3Zend_Feed_Exceptionn 3Zend_Feed_Entry_Rssn 5Zend_Feed_Entry_Atomn =Zend_Feed_Entry_Abstractn /Zend_Feed_Elementn /Zend_Feed_Buildern
 =Zend_Feed_Builder_Headern$	 KZend_Feed_Builder_Header_Itunesn  CZend_Feed_Builder_Exceptionn ;Zend_Feed_Builder_Entryn )Zend_Feed_Atomn 1Zend_Feed_Abstractn )Zend_Exceptionn )Zend_Dom_Queryn 7Zend_Dom_Query_Resultn =Zend_Dom_Query_Css2Xpathn  1Zend_Dom_Exceptionn Zend_Dojon)~ UZend_Dojo_View_Helper_VerticalSlidern   `  pO'~W/jD}U+gF*



c
-
					n	E	\0wR.	|Jh+dE_+f7Y.                 *O WZend_Gdata_Exif_Extension_FocalLengthn$N KZend_Gdata_Exif_Extension_Flashn'M QZend_Gdata_Exif_Extension_Exposuren'L QZend_Gdata_Exif_Extension_DistancenK 7Zend_Gdata_Exif_EntrynJ -Zend_Gdata_EntrynI 7Zend_Gdata_DublinCoren*H WZend_Gdata_DublinCore_Extension_Titlen,G [Zend_Gdata_DublinCore_Extension_Subjectn+F YZend_Gdata_DublinCore_Extension_Rightsn.E _Zend_Gdata_DublinCore_Extension_Publishern-D ]Zend_Gdata_DublinCore_Extension_Languagen/C aZend_Gdata_DublinCore_Extension_Identifiern+B YZend_Gdata_DublinCore_Extension_Formatn0A cZend_Gdata_DublinCore_Extension_Descriptionn)@ UZend_Gdata_DublinCore_Extension_Daten,? [Zend_Gdata_DublinCore_Extension_Creatorn> +Zend_Gdata_Docsn= 7Zend_Gdata_Docs_Queryn%< MZend_Gdata_Docs_DocumentListFeedn&; OZend_Gdata_Docs_DocumentListEntryn: 9Zend_Gdata_ClientLoginn9 3Zend_Gdata_Calendarn!8 EZend_Gdata_Calendar_ListFeedn"7 GZend_Gdata_Calendar_ListEntryn-6 ]Zend_Gdata_Calendar_Extension_WebContentn+5 YZend_Gdata_Calendar_Extension_Timezonen94 uZend_Gdata_Calendar_Extension_SendEventNotificationsn+3 YZend_Gdata_Calendar_Extension_Selectedn+2 YZend_Gdata_Calendar_Extension_QuickAddn'1 QZend_Gdata_Calendar_Extension_Linkn)0 UZend_Gdata_Calendar_Extension_Hiddenn(/ SZend_Gdata_Calendar_Extension_Colorn.. _Zend_Gdata_Calendar_Extension_AccessLeveln#- IZend_Gdata_Calendar_EventQueryn", GZend_Gdata_Calendar_EventFeedn#+ IZend_Gdata_Calendar_EventEntryn* -Zend_Gdata_Booksn!) EZend_Gdata_Books_VolumeQueryn ( CZend_Gdata_Books_VolumeFeedn!' EZend_Gdata_Books_VolumeEntryn+& YZend_Gdata_Books_Extension_Viewabilityn-% ]Zend_Gdata_Books_Extension_ThumbnailLinkn&$ OZend_Gdata_Books_Extension_Reviewn+# YZend_Gdata_Books_Extension_PreviewLinkn(" SZend_Gdata_Books_Extension_InfoLinkn-! ]Zend_Gdata_Books_Extension_Embeddabilityn)  UZend_Gdata_Books_Extension_BooksLinkn- ]Zend_Gdata_Books_Extension_BooksCategoryn. _Zend_Gdata_Books_Extension_AnnotationLinkn$ KZend_Gdata_Books_CollectionFeedn% MZend_Gdata_Books_CollectionEntryn 1Zend_Gdata_AuthSubn )Zend_Gdata_Appn$ KZend_Gdata_App_VersionExceptionn 3Zend_Gdata_App_Utiln# IZend_Gdata_App_MediaFileSourcen ?Zend_Gdata_App_MediaEntryn2 gZend_Gdata_App_LoggingHttpClientAdapterSocketn AZend_Gdata_App_IOExceptionn, [Zend_Gdata_App_InvalidArgumentExceptionn! EZend_Gdata_App_HttpExceptionn$ KZend_Gdata_App_FeedSourceParentn# IZend_Gdata_App_FeedEntryParentn 3Zend_Gdata_App_Feedn =Zend_Gdata_App_Extensionn! EZend_Gdata_App_Extension_Urin% MZend_Gdata_App_Extension_Updatedn# IZend_Gdata_App_Extension_Titlen"
 GZend_Gdata_App_Extension_Textn%	 MZend_Gdata_App_Extension_Summaryn& OZend_Gdata_App_Extension_Subtitlen$ KZend_Gdata_App_Extension_Sourcen$ KZend_Gdata_App_Extension_Rightsn' QZend_Gdata_App_Extension_Publishedn$ KZend_Gdata_App_Extension_Personn" GZend_Gdata_App_Extension_Namen" GZend_Gdata_App_Extension_Logon" GZend_Gdata_App_Extension_Linkn   CZend_Gdata_App_Extension_Idn" GZend_Gdata_App_Extension_Iconn'~ QZend_Gdata_App_Extension_Generatorn#} IZend_Gdata_App_Extension_Emailn%| MZend_Gdata_App_Extension_Elementn${ KZend_Gdata_App_Extension_Editedn#z IZend_Gdata_App_Extension_Draftn%y MZend_Gdata_App_Extension_Controln)x UZend_Gdata_App_Extension_Contributorn%w MZend_Gdata_App_Extension_Contentn&v OZend_Gdata_App_Extension_Categoryn$u KZend_Gdata_App_Extension_Authornt =Zend_Gdata_App_Exceptionns 5Zend_Gdata_App_Entryn,r [Zend_Gdata_App_CaptchaRequiredExceptionn#q IZend_Gdata_App_BaseMediaSourcenp 3Zend_Gdata_App_Basen   c  [3Z4\*N(pS;



c
2
				i	@	`>qO,f9e?U7b3sDT6            2 ?Zend_Gdata_MimeBodyStringn1 AZend_Gdata_MediaMimeStreamn0 -Zend_Gdata_Median/ 7Zend_Gdata_Media_Feedn*. WZend_Gdata_Media_Extension_MediaTitlen.- _Zend_Gdata_Media_Extension_MediaThumbnailn), UZend_Gdata_Media_Extension_MediaTextn0+ cZend_Gdata_Media_Extension_MediaRestrictionn+* YZend_Gdata_Media_Extension_MediaRatingn+) YZend_Gdata_Media_Extension_MediaPlayern-( ]Zend_Gdata_Media_Extension_MediaKeywordsn)' UZend_Gdata_Media_Extension_MediaHashn*& WZend_Gdata_Media_Extension_MediaGroupn0% cZend_Gdata_Media_Extension_MediaDescriptionn+$ YZend_Gdata_Media_Extension_MediaCreditn.# _Zend_Gdata_Media_Extension_MediaCopyrightn," [Zend_Gdata_Media_Extension_MediaContentn-! ]Zend_Gdata_Media_Extension_MediaCategoryn  9Zend_Gdata_Media_Entryn AZend_Gdata_Kind_EventEntryn 7Zend_Gdata_HttpClientn* WZend_Gdata_HttpAdapterStreamingSocketn) UZend_Gdata_HttpAdapterStreamingProxyn /Zend_Gdata_Healthn ;Zend_Gdata_Health_Queryn& OZend_Gdata_Health_ProfileListFeedn' QZend_Gdata_Health_ProfileListEntryn" GZend_Gdata_Health_ProfileFeedn# IZend_Gdata_Health_ProfileEntryn$ KZend_Gdata_Health_Extension_Ccrn )Zend_Gdata_Geon 3Zend_Gdata_Geo_Feedn$ KZend_Gdata_Geo_Extension_GmlPosn& OZend_Gdata_Geo_Extension_GmlPointn) UZend_Gdata_Geo_Extension_GeoRssWheren 5Zend_Gdata_Geo_Entryn -Zend_Gdata_Gbasen" GZend_Gdata_Gbase_SnippetQueryn! EZend_Gdata_Gbase_SnippetFeedn" GZend_Gdata_Gbase_SnippetEntryn
 9Zend_Gdata_Gbase_Queryn	 AZend_Gdata_Gbase_ItemQueryn ?Zend_Gdata_Gbase_ItemFeedn AZend_Gdata_Gbase_ItemEntryn 7Zend_Gdata_Gbase_Feedn- ]Zend_Gdata_Gbase_Extension_BaseAttributen 9Zend_Gdata_Gbase_Entryn -Zend_Gdata_Gappsn AZend_Gdata_Gapps_UserQueryn ?Zend_Gdata_Gapps_UserFeedn  AZend_Gdata_Gapps_UserEntryn& OZend_Gdata_Gapps_ServiceExceptionn~ 9Zend_Gdata_Gapps_Queryn#} IZend_Gdata_Gapps_NicknameQueryn"| GZend_Gdata_Gapps_NicknameFeedn#{ IZend_Gdata_Gapps_NicknameEntryn%z MZend_Gdata_Gapps_Extension_Quotan(y SZend_Gdata_Gapps_Extension_Nicknamen$x KZend_Gdata_Gapps_Extension_Namen%w MZend_Gdata_Gapps_Extension_Loginn)v UZend_Gdata_Gapps_Extension_EmailListnu 9Zend_Gdata_Gapps_Errorn-t ]Zend_Gdata_Gapps_EmailListRecipientQueryn,s [Zend_Gdata_Gapps_EmailListRecipientFeedn-r ]Zend_Gdata_Gapps_EmailListRecipientEntryn$q KZend_Gdata_Gapps_EmailListQueryn#p IZend_Gdata_Gapps_EmailListFeedn$o KZend_Gdata_Gapps_EmailListEntrynn +Zend_Gdata_Feednm 5Zend_Gdata_Extensionnl =Zend_Gdata_Extension_Whonk AZend_Gdata_Extension_Wherenj ?Zend_Gdata_Extension_Whenn$i KZend_Gdata_Extension_Visibilityn&h OZend_Gdata_Extension_Transparencyn"g GZend_Gdata_Extension_Remindern-f ]Zend_Gdata_Extension_RecurrenceExceptionn$e KZend_Gdata_Extension_Recurrencen d CZend_Gdata_Extension_Ratingn'c QZend_Gdata_Extension_OriginalEventn0b cZend_Gdata_Extension_OpenSearchTotalResultsn.a _Zend_Gdata_Extension_OpenSearchStartIndexn0` cZend_Gdata_Extension_OpenSearchItemsPerPagen"_ GZend_Gdata_Extension_FeedLinkn*^ WZend_Gdata_Extension_ExtendedPropertyn%] MZend_Gdata_Extension_EventStatusn#\ IZend_Gdata_Extension_EntryLinkn"[ GZend_Gdata_Extension_Commentsn&Z OZend_Gdata_Extension_AttendeeTypen(Y SZend_Gdata_Extension_AttendeeStatusnX +Zend_Gdata_ExifnW 5Zend_Gdata_Exif_Feedn#V IZend_Gdata_Exif_Extension_Timen#U IZend_Gdata_Exif_Extension_Tagsn$T KZend_Gdata_Exif_Extension_Modeln#S IZend_Gdata_Exif_Extension_Maken"R GZend_Gdata_Exif_Extension_Ison,Q [Zend_Gdata_Exif_Extension_ImageUniqueIdn$P KZend_Gdata_Exif_Extension_FStopn   Z  vO$rAV- oB^0



a
=
					p	W	-	}Ji8b:oFa3}O%d3O       ) UZend_Gdata_YouTube_Extension_Privaten* WZend_Gdata_YouTube_Extension_Positionn/
 aZend_Gdata_YouTube_Extension_PlaylistTitlen,	 [Zend_Gdata_YouTube_Extension_PlaylistIdn, [Zend_Gdata_YouTube_Extension_Occupationn) UZend_Gdata_YouTube_Extension_NoEmbedn' QZend_Gdata_YouTube_Extension_Musicn( SZend_Gdata_YouTube_Extension_Moviesn- ]Zend_Gdata_YouTube_Extension_MediaRatingn, [Zend_Gdata_YouTube_Extension_MediaGroupn- ]Zend_Gdata_YouTube_Extension_MediaCreditn. _Zend_Gdata_YouTube_Extension_MediaContentn*  WZend_Gdata_YouTube_Extension_Locationn& OZend_Gdata_YouTube_Extension_Linkn*~ WZend_Gdata_YouTube_Extension_LastNamen*} WZend_Gdata_YouTube_Extension_Hometownn)| UZend_Gdata_YouTube_Extension_Hobbiesn({ SZend_Gdata_YouTube_Extension_Gendern+z YZend_Gdata_YouTube_Extension_FirstNamen*y WZend_Gdata_YouTube_Extension_Durationn-x ]Zend_Gdata_YouTube_Extension_Descriptionn+w YZend_Gdata_YouTube_Extension_CountHintn)v UZend_Gdata_YouTube_Extension_Controln)u UZend_Gdata_YouTube_Extension_Companyn't QZend_Gdata_YouTube_Extension_Booksn%s MZend_Gdata_YouTube_Extension_Agen)r UZend_Gdata_YouTube_Extension_AboutMen#q IZend_Gdata_YouTube_ContactFeedn$p KZend_Gdata_YouTube_ContactEntryn#o IZend_Gdata_YouTube_CommentFeedn$n KZend_Gdata_YouTube_CommentEntryn$m KZend_Gdata_YouTube_ActivityFeedn%l MZend_Gdata_YouTube_ActivityEntrynk ;Zend_Gdata_Spreadsheetsn*j WZend_Gdata_Spreadsheets_WorksheetFeedn+i YZend_Gdata_Spreadsheets_WorksheetEntryn,h [Zend_Gdata_Spreadsheets_SpreadsheetFeedn-g ]Zend_Gdata_Spreadsheets_SpreadsheetEntryn&f OZend_Gdata_Spreadsheets_ListQueryn%e MZend_Gdata_Spreadsheets_ListFeedn&d OZend_Gdata_Spreadsheets_ListEntryn/c aZend_Gdata_Spreadsheets_Extension_RowCountn-b ]Zend_Gdata_Spreadsheets_Extension_Customn/a aZend_Gdata_Spreadsheets_Extension_ColCountn+` YZend_Gdata_Spreadsheets_Extension_Celln*_ WZend_Gdata_Spreadsheets_DocumentQueryn&^ OZend_Gdata_Spreadsheets_CellQueryn%] MZend_Gdata_Spreadsheets_CellFeedn&\ OZend_Gdata_Spreadsheets_CellEntryn[ -Zend_Gdata_QuerynZ /Zend_Gdata_Photosn Y CZend_Gdata_Photos_UserQuerynX AZend_Gdata_Photos_UserFeedn W CZend_Gdata_Photos_UserEntrynV AZend_Gdata_Photos_TagEntryn!U EZend_Gdata_Photos_PhotoQueryn T CZend_Gdata_Photos_PhotoFeedn!S EZend_Gdata_Photos_PhotoEntryn&R OZend_Gdata_Photos_Extension_Widthn'Q QZend_Gdata_Photos_Extension_Weightn(P SZend_Gdata_Photos_Extension_Versionn%O MZend_Gdata_Photos_Extension_Usern*N WZend_Gdata_Photos_Extension_Timestampn*M WZend_Gdata_Photos_Extension_Thumbnailn%L MZend_Gdata_Photos_Extension_Sizen)K UZend_Gdata_Photos_Extension_Rotationn+J YZend_Gdata_Photos_Extension_QuotaLimitn-I ]Zend_Gdata_Photos_Extension_QuotaCurrentn)H UZend_Gdata_Photos_Extension_Positionn(G SZend_Gdata_Photos_Extension_PhotoIdn3F iZend_Gdata_Photos_Extension_NumPhotosRemainingn*E WZend_Gdata_Photos_Extension_NumPhotosn)D UZend_Gdata_Photos_Extension_Nicknamen%C MZend_Gdata_Photos_Extension_Namen2B gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumn)A UZend_Gdata_Photos_Extension_Locationn#@ IZend_Gdata_Photos_Extension_Idn'? QZend_Gdata_Photos_Extension_Heightn2> gZend_Gdata_Photos_Extension_CommentingEnabledn-= ]Zend_Gdata_Photos_Extension_CommentCountn'< QZend_Gdata_Photos_Extension_Clientn); UZend_Gdata_Photos_Extension_Checksumn*: WZend_Gdata_Photos_Extension_BytesUsedn(9 SZend_Gdata_Photos_Extension_AlbumIdn'8 QZend_Gdata_Photos_Extension_Accessn#7 IZend_Gdata_Photos_CommentEntryn!6 EZend_Gdata_Photos_AlbumQueryn 5 CZend_Gdata_Photos_AlbumFeedn!4 EZend_Gdata_Photos_AlbumEntryn3 3Zend_Gdata_MimeFilen   f  wEa6b<[/wd>



{
b
I
-
					O	"x[>U&^4n6	kO8iG"y[G+hT/           r 1Zend_Locale_Formatnq 7Zend_Locale_Exceptionnp -Zend_Locale_Datan!o EZend_Locale_Data_Translationnn #Zend_Loadernm =Zend_Loader_PluginLoadern'l QZend_Loader_PluginLoader_Exceptionnk 7Zend_Loader_Exceptionnj 9Zend_Loader_Autoloadern$i KZend_Loader_Autoloader_Resourcenh Zend_Ldapng 3Zend_Ldap_Exceptionnf #Zend_Layoutne 7Zend_Layout_Exceptionn)d UZend_Layout_Controller_Plugin_Layoutn0c cZend_Layout_Controller_Action_Helper_Layoutnb Zend_Jsonna -Zend_Json_Servern` 5Zend_Json_Server_Smdn!_ EZend_Json_Server_Smd_Servicen^ ?Zend_Json_Server_Responsen#] IZend_Json_Server_Response_Httpn\ =Zend_Json_Server_Requestn"[ GZend_Json_Server_Request_HttpnZ AZend_Json_Server_ExceptionnY 9Zend_Json_Server_ErrornX 9Zend_Json_Server_CachenW )Zend_Json_ExprnV 3Zend_Json_ExceptionnU /Zend_Json_EncodernT /Zend_Json_DecodernS 'Zend_InfoCardn-R ]Zend_InfoCard_Xml_SecurityTokenReferencenQ AZend_InfoCard_Xml_Securityn)P UZend_InfoCard_Xml_Security_Transformn4O kZend_InfoCard_Xml_Security_Transform_XmlExcC14Nn3N iZend_InfoCard_Xml_Security_Transform_Exceptionn<M {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignaturen)L UZend_InfoCard_Xml_Security_ExceptionnK ?Zend_InfoCard_Xml_KeyInfon&J OZend_InfoCard_Xml_KeyInfo_XmlDSign&I OZend_InfoCard_Xml_KeyInfo_Defaultn'H QZend_InfoCard_Xml_KeyInfo_Abstractn G CZend_InfoCard_Xml_Exceptionn#F IZend_InfoCard_Xml_EncryptedKeyn$E KZend_InfoCard_Xml_EncryptedDatan+D YZend_InfoCard_Xml_EncryptedData_XmlEncn-C ]Zend_InfoCard_Xml_EncryptedData_AbstractnB ?Zend_InfoCard_Xml_Elementn A CZend_InfoCard_Xml_Assertionn%@ MZend_InfoCard_Xml_Assertion_Samln? ;Zend_InfoCard_Exceptionn%> MZend_InfoCard_Exception_Abstractn= 5Zend_InfoCard_Claimsn< 5Zend_InfoCard_Ciphern5; mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcn5: mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcn49 kZend_InfoCard_Cipher_Symmetric_Adapter_Abstractn)8 UZend_InfoCard_Cipher_Pki_Adapter_Rsan.7 _Zend_InfoCard_Cipher_Pki_Adapter_Abstractn#6 IZend_InfoCard_Cipher_Exceptionn$5 KZend_InfoCard_Adapter_Exceptionn"4 GZend_InfoCard_Adapter_Defaultn3 1Zend_Http_Responsen2 3Zend_Http_Exceptionn1 3Zend_Http_CookieJarn0 -Zend_Http_Cookien/ -Zend_Http_Clientn. AZend_Http_Client_Exceptionn"- GZend_Http_Client_Adapter_Testn$, KZend_Http_Client_Adapter_Socketn#+ IZend_Http_Client_Adapter_Proxyn'* QZend_Http_Client_Adapter_Exceptionn") GZend_Http_Client_Adapter_Curln( !Zend_Gdatan' 1Zend_Gdata_YouTuben"& GZend_Gdata_YouTube_VideoQueryn!% EZend_Gdata_YouTube_VideoFeedn"$ GZend_Gdata_YouTube_VideoEntryn(# SZend_Gdata_YouTube_UserProfileEntryn(" SZend_Gdata_YouTube_SubscriptionFeedn)! UZend_Gdata_YouTube_SubscriptionEntryn)  UZend_Gdata_YouTube_PlaylistVideoFeedn* WZend_Gdata_YouTube_PlaylistVideoEntryn( SZend_Gdata_YouTube_PlaylistListFeedn) UZend_Gdata_YouTube_PlaylistListEntryn" GZend_Gdata_YouTube_MediaEntryn! EZend_Gdata_YouTube_InboxFeedn" GZend_Gdata_YouTube_InboxEntryn) UZend_Gdata_YouTube_Extension_VideoIdn* WZend_Gdata_YouTube_Extension_Usernamen* WZend_Gdata_YouTube_Extension_Uploadedn' QZend_Gdata_YouTube_Extension_Tokenn( SZend_Gdata_YouTube_Extension_Statusn, [Zend_Gdata_YouTube_Extension_Statisticsn' QZend_Gdata_YouTube_Extension_Staten( SZend_Gdata_YouTube_Extension_Schooln- ]Zend_Gdata_YouTube_Extension_ReleaseDaten. _Zend_Gdata_YouTube_Extension_Relationshipn* WZend_Gdata_YouTube_Extension_Recordedn& OZend_Gdata_YouTube_Extension_Racyn- ]Zend_Gdata_YouTube_Extension_QueryStringn   w tT3rR5vZCb7`A 



w
Q
,
						h	G	#kL+x]?$}aE }cO6 rQ4oQ'`8tF                                  *i WZend_Paginator_ScrollingStyle_Jumpingn*h WZend_Paginator_ScrollingStyle_Elasticn&g OZend_Paginator_ScrollingStyle_Allnf =Zend_Paginator_Exceptionn e CZend_Paginator_Adapter_Nulln$d KZend_Paginator_Adapter_Iteratorn)c UZend_Paginator_Adapter_DbTableSelectn$b KZend_Paginator_Adapter_DbSelectn!a EZend_Paginator_Adapter_Arrayn` #Zend_OpenIdn_ 5Zend_OpenId_Providern^ ?Zend_OpenId_Provider_Usern&] OZend_OpenId_Provider_User_Sessionn!\ EZend_OpenId_Provider_Storagen&[ OZend_OpenId_Provider_Storage_FilenZ 7Zend_OpenId_ExtensionnY AZend_OpenId_Extension_SregnX 7Zend_OpenId_ExceptionnW 5Zend_OpenId_Consumern!V EZend_OpenId_Consumer_Storagen&U OZend_OpenId_Consumer_Storage_FilenT +Zend_NavigationnS 5Zend_Navigation_PagenR =Zend_Navigation_Page_UrinQ =Zend_Navigation_Page_MvcnP ?Zend_Navigation_ExceptionnO ?Zend_Navigation_ContainernN Zend_MimenM )Zend_Mime_PartnL /Zend_Mime_MessagenK 3Zend_Mime_ExceptionnJ -Zend_Mime_DecodenI #Zend_MemorynH /Zend_Memory_ValuenG 3Zend_Memory_ManagernF 7Zend_Memory_ExceptionnE 7Zend_Memory_Containern"D GZend_Memory_Container_Movablen!C EZend_Memory_Container_Lockedn!B EZend_Memory_AccessControllernA 3Zend_Measure_Weightn@ 3Zend_Measure_Volumen%? MZend_Measure_Viscosity_Kinematicn#> IZend_Measure_Viscosity_Dynamicn= 3Zend_Measure_Torquen< /Zend_Measure_Timen; =Zend_Measure_Temperaturen: 1Zend_Measure_Speedn9 7Zend_Measure_Pressuren8 1Zend_Measure_Powern7 3Zend_Measure_Numbern6 9Zend_Measure_Lightnessn5 3Zend_Measure_Lengthn4 ?Zend_Measure_Illuminationn3 9Zend_Measure_Frequencyn2 1Zend_Measure_Forcen1 =Zend_Measure_Flow_Volumen0 9Zend_Measure_Flow_Molen/ 9Zend_Measure_Flow_Massn. 9Zend_Measure_Exceptionn- 3Zend_Measure_Energyn, 5Zend_Measure_Densityn+ 5Zend_Measure_Currentn * CZend_Measure_Cooking_Weightn ) CZend_Measure_Cooking_Volumen( =Zend_Measure_Capacitancen' 3Zend_Measure_Binaryn& /Zend_Measure_Arean% 1Zend_Measure_Anglen$ ?Zend_Measure_Accelerationn# 7Zend_Measure_Abstractn" Zend_Mailn! =Zend_Mail_Transport_Smtpn!  EZend_Mail_Transport_Sendmailn" GZend_Mail_Transport_Exceptionn! EZend_Mail_Transport_Abstractn /Zend_Mail_Storagen' QZend_Mail_Storage_Writable_Maildirn 9Zend_Mail_Storage_Pop3n 9Zend_Mail_Storage_Mboxn ?Zend_Mail_Storage_Maildirn 9Zend_Mail_Storage_Imapn =Zend_Mail_Storage_Foldern" GZend_Mail_Storage_Folder_Mboxn% MZend_Mail_Storage_Folder_Maildirn  CZend_Mail_Storage_Exceptionn AZend_Mail_Storage_Abstractn ;Zend_Mail_Protocol_Smtpn' QZend_Mail_Protocol_Smtp_Auth_Plainn' QZend_Mail_Protocol_Smtp_Auth_Loginn) UZend_Mail_Protocol_Smtp_Auth_Crammd5n ;Zend_Mail_Protocol_Pop3n ;Zend_Mail_Protocol_Imapn! EZend_Mail_Protocol_Exceptionn  CZend_Mail_Protocol_Abstractn
 )Zend_Mail_Partn	 3Zend_Mail_Part_Filen /Zend_Mail_Messagen 9Zend_Mail_Message_Filen 3Zend_Mail_Exceptionn Zend_Logn 9Zend_Log_Writer_Streamn 5Zend_Log_Writer_Nulln 5Zend_Log_Writer_Mockn 5Zend_Log_Writer_Mailn  ;Zend_Log_Writer_Firebugn 1Zend_Log_Writer_Dbn~ =Zend_Log_Writer_Abstractn} 9Zend_Log_Formatter_Xmln| ?Zend_Log_Formatter_Simplen{ AZend_Log_Formatter_Firebugnz =Zend_Log_Filter_Suppressny =Zend_Log_Filter_Prioritynx ;Zend_Log_Filter_Messagenw 1Zend_Log_Exceptionnv #Zend_Localenu -Zend_Locale_Mathnt =Zend_Locale_Math_PhpMathns AZend_Locale_Math_Exceptionn   e  nI&fE!}R)`@%_C




Z
2
						z	J	#i2w>|FY_;]=$rJ)xS2                             N ?Zend_Reflection_ExtensionnM ?Zend_Reflection_ExceptionnL =Zend_Reflection_Docblockn!K EZend_Reflection_Docblock_Tagn(J SZend_Reflection_Docblock_Tag_Returnn'I QZend_Reflection_Docblock_Tag_ParamnH 7Zend_Reflection_ClassnG -Zend_ProgressBarnF AZend_ProgressBar_ExceptionnE =Zend_ProgressBar_Adaptern$D KZend_ProgressBar_Adapter_JsPushn$C KZend_ProgressBar_Adapter_JsPulln'B QZend_ProgressBar_Adapter_Exceptionn%A MZend_ProgressBar_Adapter_Consolen@ Zend_Pdfn!? EZend_Pdf_UpdateInfoContainern> -Zend_Pdf_Trailern= ;Zend_Pdf_Trailer_Keepern< AZend_Pdf_Trailer_Generatorn; )Zend_Pdf_Stylen: 7Zend_Pdf_StringParsern9 /Zend_Pdf_Resourcen#8 IZend_Pdf_Resource_ImageFactoryn7 ;Zend_Pdf_Resource_Imagen!6 EZend_Pdf_Resource_Image_Tiffn 5 CZend_Pdf_Resource_Image_Pngn!4 EZend_Pdf_Resource_Image_Jpegn3 9Zend_Pdf_Resource_Fontn!2 EZend_Pdf_Resource_Font_Type0n"1 GZend_Pdf_Resource_Font_Simplen+0 YZend_Pdf_Resource_Font_Simple_Standardn8/ sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsn6. oZend_Pdf_Resource_Font_Simple_Standard_TimesRomann7- qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicn;, yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicn5+ mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldn2* gZend_Pdf_Resource_Font_Simple_Standard_Symboln<) {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliquenA( Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliquen9' uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldn5& mZend_Pdf_Resource_Font_Simple_Standard_Helvetican:% wZend_Pdf_Resource_Font_Simple_Standard_CourierObliquen>$ Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliquen7# qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldn3" iZend_Pdf_Resource_Font_Simple_Standard_Couriern)! UZend_Pdf_Resource_Font_Simple_Parsedn2  gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypen* WZend_Pdf_Resource_Font_FontDescriptorn% MZend_Pdf_Resource_Font_Extractedn# IZend_Pdf_Resource_Font_CidFontn, [Zend_Pdf_Resource_Font_CidFont_TrueTypen /Zend_Pdf_PhpArrayn +Zend_Pdf_Parsern 9Zend_Pdf_Parser_Streamn 'Zend_Pdf_Pagen )Zend_Pdf_Imagen 'Zend_Pdf_Fontn  CZend_Pdf_Filter_Compressionn$ KZend_Pdf_Filter_Compression_Lzwn& OZend_Pdf_Filter_Compression_Flaten =Zend_Pdf_Filter_AsciiHexn ;Zend_Pdf_Filter_Ascii85n" GZend_Pdf_FileParserDataSourcen) UZend_Pdf_FileParserDataSource_Stringn' QZend_Pdf_FileParserDataSource_Filen 3Zend_Pdf_FileParsern ?Zend_Pdf_FileParser_Imagen" GZend_Pdf_FileParser_Image_Pngn
 =Zend_Pdf_FileParser_Fontn&	 OZend_Pdf_FileParser_Font_OpenTypen/ aZend_Pdf_FileParser_Font_OpenType_TrueTypen 1Zend_Pdf_Exceptionn ;Zend_Pdf_ElementFactoryn" GZend_Pdf_ElementFactory_Proxyn -Zend_Pdf_Elementn ;Zend_Pdf_Element_Stringn# IZend_Pdf_Element_String_Binaryn ;Zend_Pdf_Element_Streamn  AZend_Pdf_Element_Referencen% MZend_Pdf_Element_Reference_Tablen'~ QZend_Pdf_Element_Reference_Contextn} ;Zend_Pdf_Element_Objectn#| IZend_Pdf_Element_Object_Streamn{ =Zend_Pdf_Element_Numericnz 7Zend_Pdf_Element_Nullny 7Zend_Pdf_Element_Namen x CZend_Pdf_Element_Dictionarynw =Zend_Pdf_Element_Booleannv 9Zend_Pdf_Element_Arraynu )Zend_Pdf_Colornt 1Zend_Pdf_Color_Rgbns 3Zend_Pdf_Color_Htmlnr =Zend_Pdf_Color_GrayScalenq 3Zend_Pdf_Color_Cmyknp 'Zend_Pdf_Cmapno AZend_Pdf_Cmap_TrimmedTablen!n EZend_Pdf_Cmap_SegmentToDeltanm AZend_Pdf_Cmap_ByteEncodingn&l OZend_Pdf_Cmap_ByteEncoding_Staticnk )Zend_Paginatorn*j WZend_Paginator_ScrollingStyle_Slidingn   T  `J'lN~Br6q3



e
7
				l	G	&	Y,T.N%`2m1U(e3K    1" eZend_Search_Lucene_Search_Similarity_Defaultn)! UZend_Search_Lucene_Search_QueryTokenn3  iZend_Search_Lucene_Search_QueryParserExceptionn1 eZend_Search_Lucene_Search_QueryParserContextn* WZend_Search_Lucene_Search_QueryParsern) UZend_Search_Lucene_Search_QueryLexern' QZend_Search_Lucene_Search_QueryHitn) UZend_Search_Lucene_Search_QueryEntryn. _Zend_Search_Lucene_Search_QueryEntry_Termn2 gZend_Search_Lucene_Search_QueryEntry_Subqueryn0 cZend_Search_Lucene_Search_QueryEntry_Phrasen$ KZend_Search_Lucene_Search_Queryn- ]Zend_Search_Lucene_Search_Query_Wildcardn) UZend_Search_Lucene_Search_Query_Termn* WZend_Search_Lucene_Search_Query_Rangen2 gZend_Search_Lucene_Search_Query_Preprocessingn7 qZend_Search_Lucene_Search_Query_Preprocessing_Termn9 uZend_Search_Lucene_Search_Query_Preprocessing_Phrasen8 sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzyn+ YZend_Search_Lucene_Search_Query_Phrasen. _Zend_Search_Lucene_Search_Query_MultiTermn2 gZend_Search_Lucene_Search_Query_Insignificantn* WZend_Search_Lucene_Search_Query_Fuzzyn* WZend_Search_Lucene_Search_Query_Emptyn,
 [Zend_Search_Lucene_Search_Query_Booleann2	 gZend_Search_Lucene_Search_Highlighter_Defaultn: wZend_Search_Lucene_Search_BooleanExpressionRecognizern =Zend_Search_Lucene_Proxyn% MZend_Search_Lucene_PriorityQueuen/ aZend_Search_Lucene_Interface_MultiSearchern# IZend_Search_Lucene_LockManagern$ KZend_Search_Lucene_Index_Writern0 cZend_Search_Lucene_Index_TermsPriorityQueuen& OZend_Search_Lucene_Index_TermInfon"  GZend_Search_Lucene_Index_Termn+ YZend_Search_Lucene_Index_SegmentWritern8~ sZend_Search_Lucene_Index_SegmentWriter_StreamWritern:} wZend_Search_Lucene_Index_SegmentWriter_DocumentWritern+| YZend_Search_Lucene_Index_SegmentMergern){ UZend_Search_Lucene_Index_SegmentInfon'z QZend_Search_Lucene_Index_FieldInfon(y SZend_Search_Lucene_Index_DocsFiltern.x _Zend_Search_Lucene_Index_DictionaryLoadern!w EZend_Search_Lucene_FSMActionnv 9Zend_Search_Lucene_FSMnu =Zend_Search_Lucene_Fieldn!t EZend_Search_Lucene_Exceptionn s CZend_Search_Lucene_Documentn%r MZend_Search_Lucene_Document_Xlsxn%q MZend_Search_Lucene_Document_Pptxn(p SZend_Search_Lucene_Document_OpenXmln%o MZend_Search_Lucene_Document_Htmln*n WZend_Search_Lucene_Document_Exceptionn%m MZend_Search_Lucene_Document_Docxn,l [Zend_Search_Lucene_Analysis_TokenFiltern6k oZend_Search_Lucene_Analysis_TokenFilter_StopWordsn7j qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsn:i wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8n6h oZend_Search_Lucene_Analysis_TokenFilter_LowerCasen&g OZend_Search_Lucene_Analysis_Tokenn)f UZend_Search_Lucene_Analysis_Analyzern0e cZend_Search_Lucene_Analysis_Analyzer_Commonn8d sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumnIc Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitiven5b mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8nFa Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitiven8` sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumnI_ Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitiven5^ mZend_Search_Lucene_Analysis_Analyzer_Common_TextnF] Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiven\ 7Zend_Search_Exceptionn[ -Zend_Rest_ServernZ AZend_Rest_Server_ExceptionnY 3Zend_Rest_ExceptionnX -Zend_Rest_ClientnW ;Zend_Rest_Client_Resultn&V OZend_Rest_Client_Result_ExceptionnU AZend_Rest_Client_ExceptionnT 'Zend_RegistrynS =Zend_Reflection_PropertynR ?Zend_Reflection_ParameternQ 9Zend_Reflection_MethodnP =Zend_Reflection_FunctionnO 5Zend_Reflection_Filen   d  s@T!{^D%sN%Y0




^
3

				`	:	jJiD"cG#eF$j=uM.dBW-                         ! EZend_Service_StrikeIron_Basen ;Zend_Service_SlideSharen& OZend_Service_SlideShare_SlideShown& OZend_Service_SlideShare_Exceptionn 1Zend_Service_Simpyn$ KZend_Service_Simpy_WatchlistSetn*  WZend_Service_Simpy_WatchlistFilterSetn' QZend_Service_Simpy_WatchlistFiltern!~ EZend_Service_Simpy_Watchlistn} ?Zend_Service_Simpy_TagSetn| 9Zend_Service_Simpy_Tagn{ AZend_Service_Simpy_NoteSetnz ;Zend_Service_Simpy_Noteny AZend_Service_Simpy_LinkSetn!x EZend_Service_Simpy_LinkQuerynw ;Zend_Service_Simpy_Linknv 9Zend_Service_ReCaptchan$u KZend_Service_ReCaptcha_Responsen$t KZend_Service_ReCaptcha_MailHiden.s _Zend_Service_ReCaptcha_MailHide_Exceptionn%r MZend_Service_ReCaptcha_Exceptionnq 7Zend_Service_Nirvanixn#p IZend_Service_Nirvanix_Responsen)o UZend_Service_Nirvanix_Namespace_Imfsn)n UZend_Service_Nirvanix_Namespace_Basen$m KZend_Service_Nirvanix_Exceptionnl 3Zend_Service_Flickrn"k GZend_Service_Flickr_ResultSetnj AZend_Service_Flickr_Resultni ?Zend_Service_Flickr_Imagenh 9Zend_Service_Exceptionng 9Zend_Service_Deliciousn&f OZend_Service_Delicious_SimplePostn$e KZend_Service_Delicious_PostListn d CZend_Service_Delicious_Postn%c MZend_Service_Delicious_Exceptionn b CZend_Service_Audioscrobblerna 3Zend_Service_Amazonn'` QZend_Service_Amazon_SimilarProductn_ 9Zend_Service_Amazon_S3n"^ GZend_Service_Amazon_S3_Streamn%] MZend_Service_Amazon_S3_Exceptionn"\ GZend_Service_Amazon_ResultSetn[ ?Zend_Service_Amazon_Queryn!Z EZend_Service_Amazon_OfferSetnY ?Zend_Service_Amazon_Offern&X OZend_Service_Amazon_ListmaniaListnW =Zend_Service_Amazon_ItemnV ?Zend_Service_Amazon_Imagen"U GZend_Service_Amazon_Exceptionn(T SZend_Service_Amazon_EditorialReviewnS ;Zend_Service_Amazon_Ec2n+R YZend_Service_Amazon_Ec2_Securitygroupsn%Q MZend_Service_Amazon_Ec2_Responsen#P IZend_Service_Amazon_Ec2_Regionn$O KZend_Service_Amazon_Ec2_Keypairn%N MZend_Service_Amazon_Ec2_Instancen"M GZend_Service_Amazon_Ec2_Imagen&L OZend_Service_Amazon_Ec2_Exceptionn&K OZend_Service_Amazon_Ec2_Elasticipn J CZend_Service_Amazon_Ec2_Ebsn.I _Zend_Service_Amazon_Ec2_Availabilityzonesn%H MZend_Service_Amazon_Ec2_Abstractn'G QZend_Service_Amazon_CustomerReviewn$F KZend_Service_Amazon_Accessoriesn!E EZend_Service_Amazon_AbstractnD 5Zend_Service_AkismetnC 7Zend_Service_AbstractnB 9Zend_Server_Reflectionn'A QZend_Server_Reflection_ReturnValuen%@ MZend_Server_Reflection_Prototypen%? MZend_Server_Reflection_Parametern > CZend_Server_Reflection_Noden"= GZend_Server_Reflection_Methodn$< KZend_Server_Reflection_Functionn-; ]Zend_Server_Reflection_Function_Abstractn%: MZend_Server_Reflection_Exceptionn!9 EZend_Server_Reflection_Classn!8 EZend_Server_Method_Prototypen!7 EZend_Server_Method_Parametern"6 GZend_Server_Method_Definitionn 5 CZend_Server_Method_Callbackn4 7Zend_Server_Exceptionn3 9Zend_Server_Definitionn2 /Zend_Server_Cachen1 5Zend_Server_Abstractn0 1Zend_Search_Lucenen0/ cZend_Search_Lucene_TermStreamsPriorityQueuen$. KZend_Search_Lucene_Storage_Filen+- YZend_Search_Lucene_Storage_File_Memoryn/, aZend_Search_Lucene_Storage_File_Filesystemn)+ UZend_Search_Lucene_Storage_Directoryn4* kZend_Search_Lucene_Storage_Directory_Filesystemn%) MZend_Search_Lucene_Search_Weightn*( WZend_Search_Lucene_Search_Weight_Termn,' [Zend_Search_Lucene_Search_Weight_Phrasen/& aZend_Search_Lucene_Search_Weight_MultiTermn+% YZend_Search_Lucene_Search_Weight_Emptyn-$ ]Zend_Search_Lucene_Search_Weight_Booleann)# UZend_Search_Lucene_Search_Similarityn   f  {EvFY2T)gC&



Y
2
				b	@	}bD%]H ~eB)P&_6`1cJ.gG-           l 'Zend_TimeSyncnk 1Zend_TimeSync_Sntpnj 9Zend_TimeSync_Protocolni /Zend_TimeSync_Ntpnh ;Zend_TimeSync_Exceptionng +Zend_Text_Tablenf 3Zend_Text_Table_Rowne ?Zend_Text_Table_Exceptionn&d OZend_Text_Table_Decorator_Unicoden$c KZend_Text_Table_Decorator_Asciinb 9Zend_Text_Table_Columnna 3Zend_Text_MultiByten` -Zend_Text_Figletn_ AZend_Text_Figlet_Exceptionn^ 3Zend_Text_Exceptionn)] UZend_Test_PHPUnit_ControllerTestCasen0\ cZend_Test_PHPUnit_Constraint_ResponseHeadern*[ WZend_Test_PHPUnit_Constraint_Redirectn+Z YZend_Test_PHPUnit_Constraint_Exceptionn*Y WZend_Test_PHPUnit_Constraint_DomQuerynX /Zend_Tag_ItemListnW 'Zend_Tag_ItemnV 1Zend_Tag_ExceptionnU )Zend_Tag_CloudnT =Zend_Tag_Cloud_Exceptionn!S EZend_Tag_Cloud_Decorator_Tagn%R MZend_Tag_Cloud_Decorator_HtmlTagn'Q QZend_Tag_Cloud_Decorator_HtmlCloudn'P QZend_Tag_Cloud_Decorator_Exceptionn#O IZend_Tag_Cloud_Decorator_CloudnN )Zend_Soap_Wsdln/M aZend_Soap_Wsdl_Strategy_DefaultComplexTypen&L OZend_Soap_Wsdl_Strategy_Compositen0K cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequencen/J aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplexn$I KZend_Soap_Wsdl_Strategy_AnyTypen%H MZend_Soap_Wsdl_Strategy_AbstractnG =Zend_Soap_Wsdl_ExceptionnF -Zend_Soap_ServernE AZend_Soap_Server_ExceptionnD -Zend_Soap_ClientnC 9Zend_Soap_Client_LocalnB AZend_Soap_Client_ExceptionnA ;Zend_Soap_Client_DotNetn@ ;Zend_Soap_Client_Commonn? 9Zend_Soap_AutoDiscovern%> MZend_Soap_AutoDiscover_Exceptionn= %Zend_Sessionn)< UZend_Session_Validator_HttpUserAgentn$; KZend_Session_Validator_Abstractn': QZend_Session_SaveHandler_Exceptionn%9 MZend_Session_SaveHandler_DbTablen8 9Zend_Session_Namespacen7 9Zend_Session_Exceptionn6 7Zend_Session_Abstractn5 1Zend_Service_Yahoon$4 KZend_Service_Yahoo_WebResultSetn!3 EZend_Service_Yahoo_WebResultn&2 OZend_Service_Yahoo_VideoResultSetn#1 IZend_Service_Yahoo_VideoResultn!0 EZend_Service_Yahoo_ResultSetn/ ?Zend_Service_Yahoo_Resultn). UZend_Service_Yahoo_PageDataResultSetn&- OZend_Service_Yahoo_PageDataResultn%, MZend_Service_Yahoo_NewsResultSetn"+ GZend_Service_Yahoo_NewsResultn&* OZend_Service_Yahoo_LocalResultSetn#) IZend_Service_Yahoo_LocalResultn+( YZend_Service_Yahoo_InlinkDataResultSetn(' SZend_Service_Yahoo_InlinkDataResultn&& OZend_Service_Yahoo_ImageResultSetn#% IZend_Service_Yahoo_ImageResultn$ =Zend_Service_Yahoo_Imagen# 5Zend_Service_Twittern " CZend_Service_Twitter_Searchn#! IZend_Service_Twitter_Exceptionn  ;Zend_Service_Technoratin# IZend_Service_Technorati_Weblogn" GZend_Service_Technorati_Utilsn* WZend_Service_Technorati_TagsResultSetn' QZend_Service_Technorati_TagsResultn) UZend_Service_Technorati_TagResultSetn& OZend_Service_Technorati_TagResultn, [Zend_Service_Technorati_SearchResultSetn) UZend_Service_Technorati_SearchResultn& OZend_Service_Technorati_ResultSetn# IZend_Service_Technorati_Resultn* WZend_Service_Technorati_KeyInfoResultn* WZend_Service_Technorati_GetInfoResultn& OZend_Service_Technorati_Exceptionn1 eZend_Service_Technorati_DailyCountsResultSetn. _Zend_Service_Technorati_DailyCountsResultn, [Zend_Service_Technorati_CosmosResultSetn) UZend_Service_Technorati_CosmosResultn+ YZend_Service_Technorati_BlogInfoResultn# IZend_Service_Technorati_Authorn ;Zend_Service_StrikeIronn( SZend_Service_StrikeIron_ZipCodeInfon2
 gZend_Service_StrikeIron_USAddressVerificationn-	 ]Zend_Service_StrikeIron_SalesUseTaxBasicn& OZend_Service_StrikeIron_Exceptionn& OZend_Service_StrikeIron_Decoratorn   K  }Qe:X-gZ-


v
G
				e	0f/Zv<	o;g9g1e/Q                                                        <7 {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectoryn86 sZend_Tool_Project_Context_Zf_PublicScriptsDirectoryn15 eZend_Tool_Project_Context_Zf_PublicIndexFilen74 qZend_Tool_Project_Context_Zf_PublicImagesDirectoryn13 eZend_Tool_Project_Context_Zf_PublicDirectoryn52 mZend_Tool_Project_Context_Zf_ProjectProviderFilen21 gZend_Tool_Project_Context_Zf_ModulesDirectoryn10 eZend_Tool_Project_Context_Zf_ModuleDirectoryn1/ eZend_Tool_Project_Context_Zf_ModelsDirectoryn+. YZend_Tool_Project_Context_Zf_ModelFilen/- aZend_Tool_Project_Context_Zf_LogsDirectoryn2, gZend_Tool_Project_Context_Zf_LocalesDirectoryn2+ gZend_Tool_Project_Context_Zf_LibraryDirectoryn2* gZend_Tool_Project_Context_Zf_LayoutsDirectoryn.) _Zend_Tool_Project_Context_Zf_HtaccessFilen0( cZend_Tool_Project_Context_Zf_FormsDirectoryn*' WZend_Tool_Project_Context_Zf_FormFilen-& ]Zend_Tool_Project_Context_Zf_DbTableFilen2% gZend_Tool_Project_Context_Zf_DbTableDirectoryn/$ aZend_Tool_Project_Context_Zf_DataDirectoryn6# oZend_Tool_Project_Context_Zf_ControllersDirectoryn0" cZend_Tool_Project_Context_Zf_ControllerFilen2! gZend_Tool_Project_Context_Zf_ConfigsDirectoryn,  [Zend_Tool_Project_Context_Zf_ConfigFilen0 cZend_Tool_Project_Context_Zf_CacheDirectoryn/ aZend_Tool_Project_Context_Zf_BootstrapFilen6 oZend_Tool_Project_Context_Zf_ApplicationDirectoryn7 qZend_Tool_Project_Context_Zf_ApplicationConfigFilen/ aZend_Tool_Project_Context_Zf_ApisDirectoryn. _Zend_Tool_Project_Context_Zf_ActionMethodn@ Zend_Tool_Project_Context_System_ProjectProvidersDirectoryn8 sZend_Tool_Project_Context_System_ProjectProfileFilen6 oZend_Tool_Project_Context_System_ProjectDirectoryn) UZend_Tool_Project_Context_Repositoryn. _Zend_Tool_Project_Context_Filesystem_Filen3 iZend_Tool_Project_Context_Filesystem_Directoryn2 gZend_Tool_Project_Context_Filesystem_Abstractn( SZend_Tool_Project_Context_Exceptionn0 cZend_Tool_Framework_System_Provider_Versionn0 cZend_Tool_Framework_System_Provider_Phpinfon1 eZend_Tool_Framework_System_Provider_Manifestn( SZend_Tool_Framework_System_Manifestn- ]Zend_Tool_Framework_System_Action_Deleten- ]Zend_Tool_Framework_System_Action_Createn! EZend_Tool_Framework_Registryn+
 YZend_Tool_Framework_Registry_Exceptionn+	 YZend_Tool_Framework_Provider_Signaturen, [Zend_Tool_Framework_Provider_Repositoryn+ YZend_Tool_Framework_Provider_Exceptionn* WZend_Tool_Framework_Provider_Abstractn& OZend_Tool_Framework_Metadata_Tooln) UZend_Tool_Framework_Metadata_Dynamicn' QZend_Tool_Framework_Metadata_Basicn, [Zend_Tool_Framework_Manifest_Repositoryn+ YZend_Tool_Framework_Manifest_Exceptionn1  eZend_Tool_Framework_Loader_IncludePathLoadernJ Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIteratorn(~ SZend_Tool_Framework_Loader_Abstractn"} GZend_Tool_Framework_Exceptionn(| SZend_Tool_Framework_Client_ResponsenD{ 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separatorn'z QZend_Tool_Framework_Client_Requestn9y uZend_Tool_Framework_Client_Interactive_InputResponsen8x sZend_Tool_Framework_Client_Interactive_InputRequestn8w sZend_Tool_Framework_Client_Interactive_InputHandlern)v UZend_Tool_Framework_Client_Exceptionn'u QZend_Tool_Framework_Client_ConsolenDt 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizern0s cZend_Tool_Framework_Client_Console_Manifestn2r gZend_Tool_Framework_Client_Console_HelpSystemn6q oZend_Tool_Framework_Client_Console_ArgumentParsern(p SZend_Tool_Framework_Client_Abstractn*o WZend_Tool_Framework_Action_Repositoryn)n UZend_Tool_Framework_Action_Exceptionn$m KZend_Tool_Framework_Action_Basen   \  UH
Wm3W



]
				]	1	X/|T,xU2v`O0uY>nM, iI$qQ1                 3Zend_Validate_Floatn! EZend_Validate_File_WordCountn ?Zend_Validate_File_Uploadn ;Zend_Validate_File_Sizen ;Zend_Validate_File_Sha1n! EZend_Validate_File_NotExistsn  CZend_Validate_File_MimeTypen 9Zend_Validate_File_Md5n AZend_Validate_File_IsImagen$
 KZend_Validate_File_IsCompressedn!	 EZend_Validate_File_ImageSizen ;Zend_Validate_File_Hashn! EZend_Validate_File_FilesSizen! EZend_Validate_File_Extensionn ?Zend_Validate_File_Existsn' QZend_Validate_File_ExcludeMimeTypen( SZend_Validate_File_ExcludeExtensionn =Zend_Validate_File_Crc32n =Zend_Validate_File_Countn  ;Zend_Validate_Exceptionn AZend_Validate_EmailAddressn~ 5Zend_Validate_Digitsn"} GZend_Validate_Db_RecordExistsn$| KZend_Validate_Db_NoRecordExistsn{ ?Zend_Validate_Db_Abstractnz 1Zend_Validate_Dateny 3Zend_Validate_Ccnumnx 7Zend_Validate_Betweennw 7Zend_Validate_Barcodenv AZend_Validate_Barcode_UpcAn u CZend_Validate_Barcode_Ean13nt 3Zend_Validate_Alphans 3Zend_Validate_Alnumnr 9Zend_Validate_Abstractnq Zend_Urinp 'Zend_Uri_Httpno 1Zend_Uri_Exceptionnn )Zend_Translatenm =Zend_Translate_Exceptionnl 9Zend_Translate_Adaptern!k EZend_Translate_Adapter_XmlTmn!j EZend_Translate_Adapter_Xliffni AZend_Translate_Adapter_Tmxnh AZend_Translate_Adapter_Tbxng ?Zend_Translate_Adapter_Qtnf AZend_Translate_Adapter_Inin#e IZend_Translate_Adapter_Gettextnd AZend_Translate_Adapter_Csvn!c EZend_Translate_Adapter_Arrayn$b KZend_Tool_Project_Provider_Viewn$a KZend_Tool_Project_Provider_Testn/` aZend_Tool_Project_Provider_ProjectProvidern'_ QZend_Tool_Project_Provider_Projectn'^ QZend_Tool_Project_Provider_Profilen&] OZend_Tool_Project_Provider_Modulen%\ MZend_Tool_Project_Provider_Modeln([ SZend_Tool_Project_Provider_Manifestn$Z KZend_Tool_Project_Provider_Formn)Y UZend_Tool_Project_Provider_Exceptionn*X WZend_Tool_Project_Provider_Controllern&W OZend_Tool_Project_Provider_Actionn(V SZend_Tool_Project_Provider_AbstractnU ?Zend_Tool_Project_Profilen'T QZend_Tool_Project_Profile_Resourcen9S uZend_Tool_Project_Profile_Resource_SearchConstraintsn1R eZend_Tool_Project_Profile_Resource_Containern=Q }Zend_Tool_Project_Profile_Iterator_EnabledResourceFiltern5P mZend_Tool_Project_Profile_Iterator_ContextFiltern-O ]Zend_Tool_Project_Profile_FileParser_Xmln(N SZend_Tool_Project_Profile_Exceptionn M CZend_Tool_Project_Exceptionn<L {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectoryn0K cZend_Tool_Project_Context_Zf_ViewsDirectoryn6J oZend_Tool_Project_Context_Zf_ViewScriptsDirectoryn0I cZend_Tool_Project_Context_Zf_ViewScriptFilen6H oZend_Tool_Project_Context_Zf_ViewHelpersDirectoryn6G oZend_Tool_Project_Context_Zf_ViewFiltersDirectorynAF Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectoryn2E gZend_Tool_Project_Context_Zf_UploadsDirectoryn0D cZend_Tool_Project_Context_Zf_TestsDirectoryn7C qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFilen@B Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectoryn1A eZend_Tool_Project_Context_Zf_TestLibraryFilen6@ oZend_Tool_Project_Context_Zf_TestLibraryDirectoryn:? wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFilen:> wZend_Tool_Project_Context_Zf_TestApplicationDirectoryn@= Zend_Tool_Project_Context_Zf_TestApplicationControllerFilenE< Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectoryn>; Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFilen4: kZend_Tool_Project_Context_Zf_TemporaryDirectoryn39 iZend_Tool_Project_Context_Zf_SessionsDirectoryn88 sZend_Tool_Project_Context_Zf_SearchIndexesDirectoryn   k  jL2pN'`AqL(qO)



y
S
1
					]	;	j:d9Wc6~^1a8	z`?|[9                                 ~ ;Zend_XmlRpc_Value_Arrayn} 1Zend_XmlRpc_Servern| ?Zend_XmlRpc_Server_Systemn{ =Zend_XmlRpc_Server_Faultn!z EZend_XmlRpc_Server_Exceptionny =Zend_XmlRpc_Server_Cachenx 5Zend_XmlRpc_Responsenw ?Zend_XmlRpc_Response_Httpnv 3Zend_XmlRpc_Requestnu ?Zend_XmlRpc_Request_Stdinnt =Zend_XmlRpc_Request_Httpns /Zend_XmlRpc_Faultnr 7Zend_XmlRpc_Exceptionnq 1Zend_XmlRpc_Clientn#p IZend_XmlRpc_Client_ServerProxyn+o YZend_XmlRpc_Client_ServerIntrospectionn+n YZend_XmlRpc_Client_IntrospectExceptionn%m MZend_XmlRpc_Client_HttpExceptionn&l OZend_XmlRpc_Client_FaultExceptionn!k EZend_XmlRpc_Client_Exceptionn&j OZend_Wildfire_Protocol_JsonStreamn!i EZend_Wildfire_Plugin_FirePhpn.h _Zend_Wildfire_Plugin_FirePhp_TableMessagen)g UZend_Wildfire_Plugin_FirePhp_Messagenf ;Zend_Wildfire_Exceptionn&e OZend_Wildfire_Channel_HttpHeadersnd Zend_Viewnc -Zend_View_Streamnb 5Zend_View_Helper_Urlna AZend_View_Helper_Translaten` AZend_View_Helper_ServerUrln)_ UZend_View_Helper_RenderToPlaceholdern!^ EZend_View_Helper_Placeholdern*] WZend_View_Helper_Placeholder_Registryn4\ kZend_View_Helper_Placeholder_Registry_Exceptionn+[ YZend_View_Helper_Placeholder_Containern6Z oZend_View_Helper_Placeholder_Container_Standalonen5Y mZend_View_Helper_Placeholder_Container_Exceptionn4X kZend_View_Helper_Placeholder_Container_Abstractn!W EZend_View_Helper_PartialLoopnV =Zend_View_Helper_Partialn'U QZend_View_Helper_Partial_Exceptionn'T QZend_View_Helper_PaginationControln S CZend_View_Helper_Navigationn(R SZend_View_Helper_Navigation_Sitemapn%Q MZend_View_Helper_Navigation_Menun&P OZend_View_Helper_Navigation_Linksn/O aZend_View_Helper_Navigation_HelperAbstractn,N [Zend_View_Helper_Navigation_BreadcrumbsnM ;Zend_View_Helper_LayoutnL 7Zend_View_Helper_Jsonn"K GZend_View_Helper_InlineScriptn#J IZend_View_Helper_HtmlQuicktimenI ?Zend_View_Helper_HtmlPagen H CZend_View_Helper_HtmlObjectnG ?Zend_View_Helper_HtmlListnF AZend_View_Helper_HtmlFlashn!E EZend_View_Helper_HtmlElementnD AZend_View_Helper_HeadTitlenC AZend_View_Helper_HeadStylen B CZend_View_Helper_HeadScriptnA ?Zend_View_Helper_HeadMetan@ ?Zend_View_Helper_HeadLinkn"? GZend_View_Helper_FormTextarean> ?Zend_View_Helper_FormTextn = CZend_View_Helper_FormSubmitn < CZend_View_Helper_FormSelectn; AZend_View_Helper_FormResetn: AZend_View_Helper_FormRadion"9 GZend_View_Helper_FormPasswordn8 ?Zend_View_Helper_FormNoten'7 QZend_View_Helper_FormMultiCheckboxn6 AZend_View_Helper_FormLabeln5 AZend_View_Helper_FormImagen 4 CZend_View_Helper_FormHiddenn3 ?Zend_View_Helper_FormFilen 2 CZend_View_Helper_FormErrorsn!1 EZend_View_Helper_FormElementn"0 GZend_View_Helper_FormCheckboxn / CZend_View_Helper_FormButtonn. 7Zend_View_Helper_Formn- ?Zend_View_Helper_Fieldsetn, =Zend_View_Helper_Doctypen!+ EZend_View_Helper_DeclareVarsn* 9Zend_View_Helper_Cyclen) ;Zend_View_Helper_Actionn( ?Zend_View_Helper_Abstractn' 3Zend_View_Exceptionn& 1Zend_View_Abstractn% %Zend_Versionn$ 'Zend_Validaten# AZend_Validate_StringLengthn#" IZend_Validate_Sitemap_Priorityn! ?Zend_Validate_Sitemap_Locn"  GZend_Validate_Sitemap_Lastmodn% MZend_Validate_Sitemap_Changefreqn 3Zend_Validate_Regexn 9Zend_Validate_NotEmptyn 9Zend_Validate_LessThann -Zend_Validate_Ipn /Zend_Validate_Intn 7Zend_Validate_InArrayn ;Zend_Validate_Identicaln 1Zend_Validate_Ibann 9Zend_Validate_Hostnamen /Zend_Validate_Hexn ?Zend_Validate_GreaterThann   k  uT0sX>lM2wS0jH*




{
Z
7
			|	N	p;qEj7xV5pQ0{\<f;wV1                i =Zend_Cache_Frontend_Pageoh AZend_Cache_Frontend_Outputo!g EZend_Cache_Frontend_Functionof =Zend_Cache_Frontend_Fileoe ?Zend_Cache_Frontend_Classod 5Zend_Cache_Exceptionoc +Zend_Cache_Coreob 1Zend_Cache_Backendo"a GZend_Cache_Backend_ZendServero(` SZend_Cache_Backend_ZendServer_ShMemo'_ QZend_Cache_Backend_ZendServer_Disko$^ KZend_Cache_Backend_ZendPlatformo] ?Zend_Cache_Backend_Xcacheo!\ EZend_Cache_Backend_TwoLevelso[ ;Zend_Cache_Backend_TestoZ ?Zend_Cache_Backend_Sqliteo!Y EZend_Cache_Backend_MemcachedoX ;Zend_Cache_Backend_FileoW 9Zend_Cache_Backend_ApcoV Zend_AuthoU ?Zend_Auth_Storage_Sessiono$T KZend_Auth_Storage_NonPersistento S CZend_Auth_Storage_ExceptionoR -Zend_Auth_ResultoQ 3Zend_Auth_ExceptionoP =Zend_Auth_Adapter_OpenIdoO 9Zend_Auth_Adapter_LdapoN AZend_Auth_Adapter_InfoCardoM 9Zend_Auth_Adapter_Httpo)L UZend_Auth_Adapter_Http_Resolver_Fileo.K _Zend_Auth_Adapter_Http_Resolver_Exceptiono J CZend_Auth_Adapter_ExceptionoI =Zend_Auth_Adapter_DigestoH ?Zend_Auth_Adapter_DbTableoG -Zend_Applicationo#F IZend_Application_Resource_Viewo(E SZend_Application_Resource_Translateo&D OZend_Application_Resource_Sessiono%C MZend_Application_Resource_Routero/B aZend_Application_Resource_ResourceAbstracto)A UZend_Application_Resource_Navigationo&@ OZend_Application_Resource_Moduleso%? MZend_Application_Resource_Localeo%> MZend_Application_Resource_Layouto.= _Zend_Application_Resource_Frontcontrollero(< SZend_Application_Resource_Exceptiono!; EZend_Application_Resource_Dbo&: OZend_Application_Module_Bootstrapo'9 QZend_Application_Module_Autoloadero8 AZend_Application_Exceptiono)7 UZend_Application_Bootstrap_Exceptiono16 eZend_Application_Bootstrap_BootstrapAbstracto)5 UZend_Application_Bootstrap_Bootstrapo4 ?Zend_Amf_Value_TraitsInfoo-3 ]Zend_Amf_Value_Messaging_RemotingMessageo*2 WZend_Amf_Value_Messaging_ErrorMessageo,1 [Zend_Amf_Value_Messaging_CommandMessageo*0 WZend_Amf_Value_Messaging_AsyncMessageo-/ ]Zend_Amf_Value_Messaging_ArrayCollectiono0. cZend_Amf_Value_Messaging_AcknowledgeMessageo-- ]Zend_Amf_Value_Messaging_AbstractMessageo!, EZend_Amf_Value_MessageHeadero+ AZend_Amf_Value_MessageBodyo* =Zend_Amf_Value_ByteArrayo) AZend_Amf_Util_BinaryStreamo( +Zend_Amf_Servero' ?Zend_Amf_Server_Exceptiono& /Zend_Amf_Responseo% 9Zend_Amf_Response_Httpo$ -Zend_Amf_Requesto# 7Zend_Amf_Request_Httpo" ?Zend_Amf_Parse_TypeLoadero! ?Zend_Amf_Parse_Serializero#  IZend_Amf_Parse_Resource_Streamo( SZend_Amf_Parse_Resource_MysqlResulto) UZend_Amf_Parse_Resource_MysqliResulto  CZend_Amf_Parse_OutputStreamo AZend_Amf_Parse_InputStreamo  CZend_Amf_Parse_Deserializero# IZend_Amf_Parse_Amf3_Serializero% MZend_Amf_Parse_Amf3_Deserializero# IZend_Amf_Parse_Amf0_Serializero% MZend_Amf_Parse_Amf0_Deserializero 1Zend_Amf_Exceptiono 1Zend_Amf_Constantso 9Zend_Amf_Auth_Abstracto  CZend_Amf_Adobe_Introspectoro AZend_Amf_Adobe_DbInspectoro 3Zend_Amf_Adobe_Autho Zend_Aclo 'Zend_Acl_Roleo 9Zend_Acl_Role_Registryo% MZend_Acl_Role_Registry_Exceptiono /Zend_Acl_Resourceo 1Zend_Acl_Exceptiono
 /Zend_XmlRpc_Valuen	 =Zend_XmlRpc_Value_Structn =Zend_XmlRpc_Value_Stringn =Zend_XmlRpc_Value_Scalarn 7Zend_XmlRpc_Value_Niln ?Zend_XmlRpc_Value_Integern  CZend_XmlRpc_Value_Exceptionn =Zend_XmlRpc_Value_Doublen AZend_XmlRpc_Value_DateTimen! EZend_XmlRpc_Value_Collectionn  ?Zend_XmlRpc_Value_Booleann =Zend_XmlRpc_Value_Base64n   Y  }GmCpOwO&y;



a
(				R	$f4jHrS$oL d6
],
a'e:                                   %. MZend_Loader_Autoloader_Interfaceo3- iZend_InfoCard_Xml_Security_Transform_Interfaceo(, SZend_InfoCard_Xml_KeyInfo_Interfaceo(+ SZend_InfoCard_Xml_Element_Interfaceo** WZend_InfoCard_Xml_Assertion_Interfaceo-) ]Zend_InfoCard_Cipher_Symmetric_Interfaceo7( qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interfaceo7' qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interfaceo+& YZend_InfoCard_Cipher_Pki_Rsa_Interfaceo'% QZend_InfoCard_Cipher_Pki_Interfaceo$$ KZend_InfoCard_Adapter_Interfaceo'# QZend_Http_Client_Adapter_Interfaceo" AZend_Gdata_App_MediaSourceo.! _Zend_Form_Decorator_Marker_File_Interfaceo"  GZend_Form_Decorator_Interfaceo 7Zend_Filter_Interfaceo" GZend_Filter_Encrypt_Interfaceo  CZend_Feed_Builder_Interfaceo  CZend_Db_Statement_Interfaceo) UZend_Crypt_Math_BigInteger_Interfaceo+ YZend_Controller_Router_Route_Interfaceo% MZend_Controller_Router_Interfaceo) UZend_Controller_Dispatcher_Interfaceo% MZend_Controller_Action_Interfaceo 5Zend_Captcha_Adaptero! EZend_Cache_Backend_Interfaceo) UZend_Cache_Backend_ExtendedInterfaceo  CZend_Auth_Storage_Interfaceo  CZend_Auth_Adapter_Interfaceo. _Zend_Auth_Adapter_Http_Resolver_Interfaceo' QZend_Application_Resource_Resourceo4 kZend_Application_Bootstrap_ResourceBootstrappero, [Zend_Application_Bootstrap_Bootstrappero ;Zend_Acl_Role_Interfaceo  CZend_Acl_Resource_Interfaceo ?Zend_Acl_Assert_Interfaceo#
 IZend_Wildfire_Plugin_Interfacen$	 KZend_Wildfire_Channel_Interfacen 3Zend_View_Interfacen' QZend_View_Helper_Navigation_Helpern AZend_View_Helper_Interfacen ;Zend_Validate_Interfacen3 iZend_Tool_Project_Profile_FileParser_Interfacen: wZend_Tool_Project_Context_System_TopLevelRestrictablen5 mZend_Tool_Project_Context_System_NotOverwritablen/ aZend_Tool_Project_Context_System_Interfacen(  SZend_Tool_Project_Context_Interfacen+ YZend_Tool_Framework_Registry_Interfacen2~ gZend_Tool_Framework_Registry_EnabledInterfacen-} ]Zend_Tool_Framework_Provider_Pretendablen+| YZend_Tool_Framework_Provider_Interfacen.{ _Zend_Tool_Framework_Provider_Interactablen;z yZend_Tool_Framework_Provider_DocblockManifestInterfacen+y YZend_Tool_Framework_Metadata_Interfacen6x oZend_Tool_Framework_Manifest_ProviderManifestablen6w oZend_Tool_Framework_Manifest_MetadataManifestablen+v YZend_Tool_Framework_Manifest_Interfacen+u YZend_Tool_Framework_Manifest_Indexablen4t kZend_Tool_Framework_Manifest_ActionManifestablenDs 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interfacen;r yZend_Tool_Framework_Client_Interactive_OutputInterfacen:q wZend_Tool_Framework_Client_Interactive_InputInterfacen)p UZend_Tool_Framework_Action_Interfacen(o SZend_Text_Table_Decorator_Interfacenn /Zend_Tag_Taggablen&m OZend_Soap_Wsdl_Strategy_Interfacen%l MZend_Session_Validator_Interfacen'k QZend_Session_SaveHandler_Interfacenj 7Zend_Server_Interfacen4i kZend_Search_Lucene_Search_Highlighter_Interfacen!h EZend_Search_Lucene_Interfacen3g iZend_Search_Lucene_Index_TermsStream_Interfacenf ?Zend_Pdf_Filter_Interfacen&e OZend_Pdf_ElementFactory_Interfacen,d [Zend_Paginator_ScrollingStyle_Interfacen%c MZend_Paginator_Adapter_Interfacen$b KZend_Memory_Container_Interfacen)a UZend_Mail_Storage_Writable_Interfacen'` QZend_Mail_Storage_Folder_Interfacen_ =Zend_Mail_Part_Interfacen ^ CZend_Mail_Message_Interfacen!] EZend_Log_Formatter_Interfacen\ ?Zend_Log_Filter_Interfacen'[ QZend_Loader_PluginLoader_Interfacen%Z MZend_Loader_Autoloader_Interfacen3Y iZend_InfoCard_Xml_Security_Transform_Interfacen(X SZend_InfoCard_Xml_KeyInfo_Interfacen(W SZend_InfoCard_Xml_Element_Interfacen*V WZend_InfoCard_Xml_Assertion_Interfacen   e  ~cD*p<
Z6`B*	^B



J
			j	?	wK, g?oE }R,X-|W,]6ybO/                   N 5Zend_Date_DateObjectoM -Zend_Date_CitiesoL 'Zend_CurrencyoK ;Zend_Currency_ExceptionoJ !Zend_CryptoI )Zend_Crypt_RsaoH 1Zend_Crypt_Rsa_KeyoG ?Zend_Crypt_Rsa_Key_PublicoF AZend_Crypt_Rsa_Key_PrivateoE +Zend_Crypt_MathoD ?Zend_Crypt_Math_ExceptionoC AZend_Crypt_Math_BigIntegero#B IZend_Crypt_Math_BigInteger_Gmpo)A UZend_Crypt_Math_BigInteger_Exceptiono&@ OZend_Crypt_Math_BigInteger_Bcmatho? +Zend_Crypt_Hmaco> ?Zend_Crypt_Hmac_Exceptiono= 5Zend_Crypt_Exceptiono< =Zend_Crypt_DiffieHellmano'; QZend_Crypt_DiffieHellman_Exceptiono!: EZend_Controller_Router_Routeo(9 SZend_Controller_Router_Route_Statico'8 QZend_Controller_Router_Route_Regexo(7 SZend_Controller_Router_Route_Moduleo*6 WZend_Controller_Router_Route_Hostnameo'5 QZend_Controller_Router_Route_Chaino*4 WZend_Controller_Router_Route_Abstracto#3 IZend_Controller_Router_Rewriteo%2 MZend_Controller_Router_Exceptiono$1 KZend_Controller_Router_Abstracto*0 WZend_Controller_Response_HttpTestCaseo"/ GZend_Controller_Response_Httpo'. QZend_Controller_Response_Exceptiono!- EZend_Controller_Response_Clio&, OZend_Controller_Response_Abstracto#+ IZend_Controller_Request_Simpleo)* UZend_Controller_Request_HttpTestCaseo!) EZend_Controller_Request_Httpo&( OZend_Controller_Request_Exceptiono&' OZend_Controller_Request_Apache404o%& MZend_Controller_Request_Abstracto(% SZend_Controller_Plugin_ErrorHandlero"$ GZend_Controller_Plugin_Brokero'# QZend_Controller_Plugin_ActionStacko$" KZend_Controller_Plugin_Abstracto! 7Zend_Controller_Fronto  ?Zend_Controller_Exceptiono( SZend_Controller_Dispatcher_Standardo) UZend_Controller_Dispatcher_Exceptiono( SZend_Controller_Dispatcher_Abstracto 9Zend_Controller_Actiono( SZend_Controller_Action_HelperBrokero6 oZend_Controller_Action_HelperBroker_PriorityStacko/ aZend_Controller_Action_Helper_ViewRenderero& OZend_Controller_Action_Helper_Urlo- ]Zend_Controller_Action_Helper_Redirectoro' QZend_Controller_Action_Helper_Jsono1 eZend_Controller_Action_Helper_FlashMessengero0 cZend_Controller_Action_Helper_ContextSwitcho< {Zend_Controller_Action_Helper_AutoCompleteScriptaculouso3 iZend_Controller_Action_Helper_AutoCompleteDojoo8 sZend_Controller_Action_Helper_AutoComplete_Abstracto. _Zend_Controller_Action_Helper_AjaxContexto. _Zend_Controller_Action_Helper_ActionStacko+ YZend_Controller_Action_Helper_Abstracto% MZend_Controller_Action_Exceptiono 3Zend_Console_Getopto" GZend_Console_Getopt_Exceptiono
 #Zend_Configo	 +Zend_Config_Xmlo 1Zend_Config_Writero 9Zend_Config_Writer_Xmlo 9Zend_Config_Writer_Inio =Zend_Config_Writer_Arrayo +Zend_Config_Inio 7Zend_Config_Exceptiono$ KZend_CodeGenerator_Php_Propertyo% MZend_CodeGenerator_Php_Parametero"  GZend_CodeGenerator_Php_Methodo, [Zend_CodeGenerator_Php_Member_Containero+~ YZend_CodeGenerator_Php_Member_Abstracto } CZend_CodeGenerator_Php_Fileo%| MZend_CodeGenerator_Php_Exceptiono${ KZend_CodeGenerator_Php_Docblocko(z SZend_CodeGenerator_Php_Docblock_Tago/y aZend_CodeGenerator_Php_Docblock_Tag_Returno.x _Zend_CodeGenerator_Php_Docblock_Tag_Paramo0w cZend_CodeGenerator_Php_Docblock_Tag_Licenseo!v EZend_CodeGenerator_Php_Classo u CZend_CodeGenerator_Php_Bodyo$t KZend_CodeGenerator_Php_Abstracto!s EZend_CodeGenerator_Exceptiono r CZend_CodeGenerator_Abstractoq /Zend_Captcha_Wordop 9Zend_Captcha_ReCaptchaoo 1Zend_Captcha_Imageon 3Zend_Captcha_Figletom 9Zend_Captcha_Exceptionol /Zend_Captcha_Dumbok /Zend_Captcha_Baseoj !Zend_Cacheo   h  oM$tP0mX5|^:^@&




`
9
							l	8		{M"pJ"{Q+rCpIh7j@m@                                 !6 EZend_Dojo_View_Helper_Editoro5 AZend_Dojo_View_Helper_Dojoo)4 UZend_Dojo_View_Helper_Dojo_Containero)3 UZend_Dojo_View_Helper_DijitContainero 2 CZend_Dojo_View_Helper_Dijito&1 OZend_Dojo_View_Helper_DateTextBoxo&0 OZend_Dojo_View_Helper_CustomDijito*/ WZend_Dojo_View_Helper_CurrencyTextBoxo&. OZend_Dojo_View_Helper_ContentPaneo#- IZend_Dojo_View_Helper_ComboBoxo#, IZend_Dojo_View_Helper_CheckBoxo!+ EZend_Dojo_View_Helper_Buttono** WZend_Dojo_View_Helper_BorderContainero() SZend_Dojo_View_Helper_AccordionPaneo-( ]Zend_Dojo_View_Helper_AccordionContainero' =Zend_Dojo_View_Exceptiono& )Zend_Dojo_Formo% 9Zend_Dojo_Form_SubFormo*$ WZend_Dojo_Form_Element_VerticalSlidero-# ]Zend_Dojo_Form_Element_ValidationTextBoxo'" QZend_Dojo_Form_Element_TimeTextBoxo#! IZend_Dojo_Form_Element_TextBoxo$  KZend_Dojo_Form_Element_Textareao( SZend_Dojo_Form_Element_SubmitButtono" GZend_Dojo_Form_Element_Slidero* WZend_Dojo_Form_Element_SimpleTextareao' QZend_Dojo_Form_Element_RadioButtono+ YZend_Dojo_Form_Element_PasswordTextBoxo) UZend_Dojo_Form_Element_NumberTextBoxo) UZend_Dojo_Form_Element_NumberSpinnero, [Zend_Dojo_Form_Element_HorizontalSlidero+ YZend_Dojo_Form_Element_FilteringSelecto" GZend_Dojo_Form_Element_Editoro& OZend_Dojo_Form_Element_DijitMultio! EZend_Dojo_Form_Element_Dijito' QZend_Dojo_Form_Element_DateTextBoxo+ YZend_Dojo_Form_Element_CurrencyTextBoxo$ KZend_Dojo_Form_Element_ComboBoxo$ KZend_Dojo_Form_Element_CheckBoxo" GZend_Dojo_Form_Element_Buttono  CZend_Dojo_Form_DisplayGroupo* WZend_Dojo_Form_Decorator_TabContainero, [Zend_Dojo_Form_Decorator_StackContainero, [Zend_Dojo_Form_Decorator_SplitContainero'
 QZend_Dojo_Form_Decorator_DijitFormo*	 WZend_Dojo_Form_Decorator_DijitElemento, [Zend_Dojo_Form_Decorator_DijitContainero) UZend_Dojo_Form_Decorator_ContentPaneo- ]Zend_Dojo_Form_Decorator_BorderContainero+ YZend_Dojo_Form_Decorator_AccordionPaneo0 cZend_Dojo_Form_Decorator_AccordionContainero 3Zend_Dojo_Exceptiono )Zend_Dojo_Datao !Zend_Debugo  Zend_Dbo 'Zend_Db_Tableo~ 5Zend_Db_Table_Selecto#} IZend_Db_Table_Select_Exceptiono| 5Zend_Db_Table_Rowseto#{ IZend_Db_Table_Rowset_Exceptiono"z GZend_Db_Table_Rowset_Abstractoy /Zend_Db_Table_Rowo x CZend_Db_Table_Row_Exceptionow AZend_Db_Table_Row_Abstractov ;Zend_Db_Table_Exceptionou 9Zend_Db_Table_Abstractot /Zend_Db_Statementos 7Zend_Db_Statement_Pdoor ?Zend_Db_Statement_Pdo_Ocioq ?Zend_Db_Statement_Pdo_Ibmop =Zend_Db_Statement_Oracleo'o QZend_Db_Statement_Oracle_Exceptionon =Zend_Db_Statement_Mysqlio'm QZend_Db_Statement_Mysqli_Exceptiono l CZend_Db_Statement_Exceptionok 7Zend_Db_Statement_Db2o$j KZend_Db_Statement_Db2_Exceptionoi )Zend_Db_Selectoh =Zend_Db_Select_Exceptionog -Zend_Db_Profilerof 9Zend_Db_Profiler_Queryoe =Zend_Db_Profiler_Firebugod AZend_Db_Profiler_Exceptionoc %Zend_Db_Exprob /Zend_Db_Exceptionoa AZend_Db_Adapter_Pdo_Sqliteo` ?Zend_Db_Adapter_Pdo_Pgsqlo_ ;Zend_Db_Adapter_Pdo_Ocio^ ?Zend_Db_Adapter_Pdo_Mysqlo] ?Zend_Db_Adapter_Pdo_Mssqlo\ ;Zend_Db_Adapter_Pdo_Ibmo [ CZend_Db_Adapter_Pdo_Ibm_Idso Z CZend_Db_Adapter_Pdo_Ibm_Db2o!Y EZend_Db_Adapter_Pdo_AbstractoX 9Zend_Db_Adapter_Oracleo%W MZend_Db_Adapter_Oracle_ExceptionoV 9Zend_Db_Adapter_Mysqlio%U MZend_Db_Adapter_Mysqli_ExceptionoT ?Zend_Db_Adapter_ExceptionoS 3Zend_Db_Adapter_Db2o"R GZend_Db_Adapter_Db2_ExceptionoQ =Zend_Db_Adapter_AbstractoP Zend_DateoO 3Zend_Date_Exceptiono   m  T(~Q$W'w`E.mL/




{
V
;
!
					~	[	7	xU4pS1Y*T+ua<zW1zV4tU4              # AZend_Form_Element_Checkboxo" ?Zend_Form_Element_Captchao! =Zend_Form_Element_Buttono  9Zend_Form_DisplayGroupo# IZend_Form_Decorator_ViewScripto# IZend_Form_Decorator_ViewHelpero  CZend_Form_Decorator_Tooltipo( SZend_Form_Decorator_PrepareElementso ?Zend_Form_Decorator_Labelo ?Zend_Form_Decorator_Imageo  CZend_Form_Decorator_HtmlTago# IZend_Form_Decorator_FormErrorso% MZend_Form_Decorator_FormElementso =Zend_Form_Decorator_Formo =Zend_Form_Decorator_Fileo! EZend_Form_Decorator_Fieldseto" GZend_Form_Decorator_Exceptiono AZend_Form_Decorator_Errorso$ KZend_Form_Decorator_DtDdWrappero$ KZend_Form_Decorator_Descriptiono  CZend_Form_Decorator_Captchao% MZend_Form_Decorator_Captcha_Wordo! EZend_Form_Decorator_Callbacko! EZend_Form_Decorator_Abstracto #Zend_Filtero+
 YZend_Filter_Word_UnderscoreToSeparatoro&	 OZend_Filter_Word_UnderscoreToDasho+ YZend_Filter_Word_UnderscoreToCamelCaseo* WZend_Filter_Word_SeparatorToSeparatoro% MZend_Filter_Word_SeparatorToDasho* WZend_Filter_Word_SeparatorToCamelCaseo( SZend_Filter_Word_Separator_Abstracto& OZend_Filter_Word_DashToUnderscoreo% MZend_Filter_Word_DashToSeparatoro% MZend_Filter_Word_DashToCamelCaseo+  YZend_Filter_Word_CamelCaseToUnderscoreo* WZend_Filter_Word_CamelCaseToSeparatoro%~ MZend_Filter_Word_CamelCaseToDasho} 7Zend_Filter_StripTagso| ?Zend_Filter_StripNewlineso{ 9Zend_Filter_StringTrimoz ?Zend_Filter_StringToUpperoy ?Zend_Filter_StringToLowerox 5Zend_Filter_RealPathow ;Zend_Filter_PregReplaceo&v OZend_Filter_NormalizedToLocalizedo&u OZend_Filter_LocalizedToNormalizedot +Zend_Filter_Intos /Zend_Filter_Inputor 7Zend_Filter_Inflectoroq =Zend_Filter_HtmlEntitiesop AZend_Filter_File_UpperCaseoo ;Zend_Filter_File_Renameon AZend_Filter_File_LowerCaseom =Zend_Filter_File_Encryptol =Zend_Filter_File_Decryptok 7Zend_Filter_Exceptionoj 3Zend_Filter_Encrypto i CZend_Filter_Encrypt_Openssloh AZend_Filter_Encrypt_Mcryptog +Zend_Filter_Dirof 1Zend_Filter_Digitsoe 3Zend_Filter_Decryptod 5Zend_Filter_Callbackoc 5Zend_Filter_BaseNameob /Zend_Filter_Alphaoa /Zend_Filter_Alnumo` 1Zend_File_Transfero!_ EZend_File_Transfer_Exceptiono$^ KZend_File_Transfer_Adapter_Httpo(] SZend_File_Transfer_Adapter_Abstracto\ Zend_Feedo[ 'Zend_Feed_RssoZ 3Zend_Feed_ExceptionoY 3Zend_Feed_Entry_RssoX 5Zend_Feed_Entry_AtomoW =Zend_Feed_Entry_AbstractoV /Zend_Feed_ElementoU /Zend_Feed_BuilderoT =Zend_Feed_Builder_Headero$S KZend_Feed_Builder_Header_Ituneso R CZend_Feed_Builder_ExceptionoQ ;Zend_Feed_Builder_EntryoP )Zend_Feed_AtomoO 1Zend_Feed_AbstractoN )Zend_ExceptionoM )Zend_Dom_QueryoL 7Zend_Dom_Query_ResultoK =Zend_Dom_Query_Css2XpathoJ 1Zend_Dom_ExceptionoI Zend_Dojoo)H UZend_Dojo_View_Helper_VerticalSlidero,G [Zend_Dojo_View_Helper_ValidationTextBoxo&F OZend_Dojo_View_Helper_TimeTextBoxo"E GZend_Dojo_View_Helper_TextBoxo#D IZend_Dojo_View_Helper_Textareao'C QZend_Dojo_View_Helper_TabContainero'B QZend_Dojo_View_Helper_SubmitButtono)A UZend_Dojo_View_Helper_StackContainero)@ UZend_Dojo_View_Helper_SplitContainero!? EZend_Dojo_View_Helper_Slidero)> UZend_Dojo_View_Helper_SimpleTextareao&= OZend_Dojo_View_Helper_RadioButtono*< WZend_Dojo_View_Helper_PasswordTextBoxo(; SZend_Dojo_View_Helper_NumberTextBoxo(: SZend_Dojo_View_Helper_NumberSpinnero+9 YZend_Dojo_View_Helper_HorizontalSlidero8 AZend_Dojo_View_Helper_Formo*7 WZend_Dojo_View_Helper_FilteringSelecto   e  }]=kJ+a3Z0b9



w
Q
+
				^	5	y]6`>xPc4
a<#}Q$^/xN%                               +Zend_Gdata_Docso 7Zend_Gdata_Docs_Queryo% MZend_Gdata_Docs_DocumentListFeedo& OZend_Gdata_Docs_DocumentListEntryo 9Zend_Gdata_ClientLogino 3Zend_Gdata_Calendaro! EZend_Gdata_Calendar_ListFeedo" GZend_Gdata_Calendar_ListEntryo-  ]Zend_Gdata_Calendar_Extension_WebContento+ YZend_Gdata_Calendar_Extension_Timezoneo9~ uZend_Gdata_Calendar_Extension_SendEventNotificationso+} YZend_Gdata_Calendar_Extension_Selectedo+| YZend_Gdata_Calendar_Extension_QuickAddo'{ QZend_Gdata_Calendar_Extension_Linko)z UZend_Gdata_Calendar_Extension_Hiddeno(y SZend_Gdata_Calendar_Extension_Coloro.x _Zend_Gdata_Calendar_Extension_AccessLevelo#w IZend_Gdata_Calendar_EventQueryo"v GZend_Gdata_Calendar_EventFeedo#u IZend_Gdata_Calendar_EventEntryot -Zend_Gdata_Bookso!s EZend_Gdata_Books_VolumeQueryo r CZend_Gdata_Books_VolumeFeedo!q EZend_Gdata_Books_VolumeEntryo+p YZend_Gdata_Books_Extension_Viewabilityo-o ]Zend_Gdata_Books_Extension_ThumbnailLinko&n OZend_Gdata_Books_Extension_Reviewo+m YZend_Gdata_Books_Extension_PreviewLinko(l SZend_Gdata_Books_Extension_InfoLinko-k ]Zend_Gdata_Books_Extension_Embeddabilityo)j UZend_Gdata_Books_Extension_BooksLinko-i ]Zend_Gdata_Books_Extension_BooksCategoryo.h _Zend_Gdata_Books_Extension_AnnotationLinko$g KZend_Gdata_Books_CollectionFeedo%f MZend_Gdata_Books_CollectionEntryoe 1Zend_Gdata_AuthSubod )Zend_Gdata_Appo$c KZend_Gdata_App_VersionExceptionob 3Zend_Gdata_App_Utilo#a IZend_Gdata_App_MediaFileSourceo` ?Zend_Gdata_App_MediaEntryo2_ gZend_Gdata_App_LoggingHttpClientAdapterSocketo^ AZend_Gdata_App_IOExceptiono,] [Zend_Gdata_App_InvalidArgumentExceptiono!\ EZend_Gdata_App_HttpExceptiono$[ KZend_Gdata_App_FeedSourceParento#Z IZend_Gdata_App_FeedEntryParentoY 3Zend_Gdata_App_FeedoX =Zend_Gdata_App_Extensiono!W EZend_Gdata_App_Extension_Urio%V MZend_Gdata_App_Extension_Updatedo#U IZend_Gdata_App_Extension_Titleo"T GZend_Gdata_App_Extension_Texto%S MZend_Gdata_App_Extension_Summaryo&R OZend_Gdata_App_Extension_Subtitleo$Q KZend_Gdata_App_Extension_Sourceo$P KZend_Gdata_App_Extension_Rightso'O QZend_Gdata_App_Extension_Publishedo$N KZend_Gdata_App_Extension_Persono"M GZend_Gdata_App_Extension_Nameo"L GZend_Gdata_App_Extension_Logoo"K GZend_Gdata_App_Extension_Linko J CZend_Gdata_App_Extension_Ido"I GZend_Gdata_App_Extension_Icono'H QZend_Gdata_App_Extension_Generatoro#G IZend_Gdata_App_Extension_Emailo%F MZend_Gdata_App_Extension_Elemento$E KZend_Gdata_App_Extension_Editedo#D IZend_Gdata_App_Extension_Drafto%C MZend_Gdata_App_Extension_Controlo)B UZend_Gdata_App_Extension_Contributoro%A MZend_Gdata_App_Extension_Contento&@ OZend_Gdata_App_Extension_Categoryo$? KZend_Gdata_App_Extension_Authoro> =Zend_Gdata_App_Exceptiono= 5Zend_Gdata_App_Entryo,< [Zend_Gdata_App_CaptchaRequiredExceptiono#; IZend_Gdata_App_BaseMediaSourceo: 3Zend_Gdata_App_Baseo*9 WZend_Gdata_App_BadMethodCallExceptiono!8 EZend_Gdata_App_AuthExceptiono7 Zend_Formo6 /Zend_Form_SubFormo5 3Zend_Form_Exceptiono4 /Zend_Form_Elemento3 ;Zend_Form_Element_Xhtmlo2 AZend_Form_Element_Textareao1 9Zend_Form_Element_Texto0 =Zend_Form_Element_Submito/ =Zend_Form_Element_Selecto. ;Zend_Form_Element_Reseto- ;Zend_Form_Element_Radioo, AZend_Form_Element_Passwordo"+ GZend_Form_Element_Multiselecto$* KZend_Form_Element_MultiCheckboxo) ;Zend_Form_Element_Multio( ;Zend_Form_Element_Imageo' =Zend_Form_Element_Hiddeno& 9Zend_Form_Element_Hasho% 9Zend_Form_Element_Fileo $ CZend_Form_Element_Exceptiono   c  o@{KrJwO(vP) 


x
F
				j	D	oW/N/\5|Z7kH)U+[0qS0                   -k ]Zend_Gdata_Media_Extension_MediaCategoryoj 9Zend_Gdata_Media_Entryoi AZend_Gdata_Kind_EventEntryoh 7Zend_Gdata_HttpCliento*g WZend_Gdata_HttpAdapterStreamingSocketo)f UZend_Gdata_HttpAdapterStreamingProxyoe /Zend_Gdata_Healthod ;Zend_Gdata_Health_Queryo&c OZend_Gdata_Health_ProfileListFeedo'b QZend_Gdata_Health_ProfileListEntryo"a GZend_Gdata_Health_ProfileFeedo#` IZend_Gdata_Health_ProfileEntryo$_ KZend_Gdata_Health_Extension_Ccro^ )Zend_Gdata_Geoo] 3Zend_Gdata_Geo_Feedo$\ KZend_Gdata_Geo_Extension_GmlPoso&[ OZend_Gdata_Geo_Extension_GmlPointo)Z UZend_Gdata_Geo_Extension_GeoRssWhereoY 5Zend_Gdata_Geo_EntryoX -Zend_Gdata_Gbaseo"W GZend_Gdata_Gbase_SnippetQueryo!V EZend_Gdata_Gbase_SnippetFeedo"U GZend_Gdata_Gbase_SnippetEntryoT 9Zend_Gdata_Gbase_QueryoS AZend_Gdata_Gbase_ItemQueryoR ?Zend_Gdata_Gbase_ItemFeedoQ AZend_Gdata_Gbase_ItemEntryoP 7Zend_Gdata_Gbase_Feedo-O ]Zend_Gdata_Gbase_Extension_BaseAttributeoN 9Zend_Gdata_Gbase_EntryoM -Zend_Gdata_GappsoL AZend_Gdata_Gapps_UserQueryoK ?Zend_Gdata_Gapps_UserFeedoJ AZend_Gdata_Gapps_UserEntryo&I OZend_Gdata_Gapps_ServiceExceptionoH 9Zend_Gdata_Gapps_Queryo#G IZend_Gdata_Gapps_NicknameQueryo"F GZend_Gdata_Gapps_NicknameFeedo#E IZend_Gdata_Gapps_NicknameEntryo%D MZend_Gdata_Gapps_Extension_Quotao(C SZend_Gdata_Gapps_Extension_Nicknameo$B KZend_Gdata_Gapps_Extension_Nameo%A MZend_Gdata_Gapps_Extension_Logino)@ UZend_Gdata_Gapps_Extension_EmailListo? 9Zend_Gdata_Gapps_Erroro-> ]Zend_Gdata_Gapps_EmailListRecipientQueryo,= [Zend_Gdata_Gapps_EmailListRecipientFeedo-< ]Zend_Gdata_Gapps_EmailListRecipientEntryo$; KZend_Gdata_Gapps_EmailListQueryo#: IZend_Gdata_Gapps_EmailListFeedo$9 KZend_Gdata_Gapps_EmailListEntryo8 +Zend_Gdata_Feedo7 5Zend_Gdata_Extensiono6 =Zend_Gdata_Extension_Whoo5 AZend_Gdata_Extension_Whereo4 ?Zend_Gdata_Extension_Wheno$3 KZend_Gdata_Extension_Visibilityo&2 OZend_Gdata_Extension_Transparencyo"1 GZend_Gdata_Extension_Remindero-0 ]Zend_Gdata_Extension_RecurrenceExceptiono$/ KZend_Gdata_Extension_Recurrenceo . CZend_Gdata_Extension_Ratingo'- QZend_Gdata_Extension_OriginalEvento0, cZend_Gdata_Extension_OpenSearchTotalResultso.+ _Zend_Gdata_Extension_OpenSearchStartIndexo0* cZend_Gdata_Extension_OpenSearchItemsPerPageo") GZend_Gdata_Extension_FeedLinko*( WZend_Gdata_Extension_ExtendedPropertyo%' MZend_Gdata_Extension_EventStatuso#& IZend_Gdata_Extension_EntryLinko"% GZend_Gdata_Extension_Commentso&$ OZend_Gdata_Extension_AttendeeTypeo(# SZend_Gdata_Extension_AttendeeStatuso" +Zend_Gdata_Exifo! 5Zend_Gdata_Exif_Feedo#  IZend_Gdata_Exif_Extension_Timeo# IZend_Gdata_Exif_Extension_Tagso$ KZend_Gdata_Exif_Extension_Modelo# IZend_Gdata_Exif_Extension_Makeo" GZend_Gdata_Exif_Extension_Isoo, [Zend_Gdata_Exif_Extension_ImageUniqueIdo$ KZend_Gdata_Exif_Extension_FStopo* WZend_Gdata_Exif_Extension_FocalLengtho$ KZend_Gdata_Exif_Extension_Flasho' QZend_Gdata_Exif_Extension_Exposureo' QZend_Gdata_Exif_Extension_Distanceo 7Zend_Gdata_Exif_Entryo -Zend_Gdata_Entryo 7Zend_Gdata_DublinCoreo* WZend_Gdata_DublinCore_Extension_Titleo, [Zend_Gdata_DublinCore_Extension_Subjecto+ YZend_Gdata_DublinCore_Extension_Rightso. _Zend_Gdata_DublinCore_Extension_Publishero- ]Zend_Gdata_DublinCore_Extension_Languageo/ aZend_Gdata_DublinCore_Extension_Identifiero+ YZend_Gdata_DublinCore_Extension_Formato0 cZend_Gdata_DublinCore_Extension_Descriptiono)
 UZend_Gdata_DublinCore_Extension_Dateo,	 [Zend_Gdata_DublinCore_Extension_Creatoro   [  o;QrY6c8U



j
A
				V	%rDuQ,	kA^-}LvN&Z/uG   )F UZend_Gdata_YouTube_Extension_Hobbieso(E SZend_Gdata_YouTube_Extension_Gendero+D YZend_Gdata_YouTube_Extension_FirstNameo*C WZend_Gdata_YouTube_Extension_Durationo-B ]Zend_Gdata_YouTube_Extension_Descriptiono+A YZend_Gdata_YouTube_Extension_CountHinto)@ UZend_Gdata_YouTube_Extension_Controlo)? UZend_Gdata_YouTube_Extension_Companyo'> QZend_Gdata_YouTube_Extension_Bookso%= MZend_Gdata_YouTube_Extension_Ageo)< UZend_Gdata_YouTube_Extension_AboutMeo#; IZend_Gdata_YouTube_ContactFeedo$: KZend_Gdata_YouTube_ContactEntryo#9 IZend_Gdata_YouTube_CommentFeedo$8 KZend_Gdata_YouTube_CommentEntryo$7 KZend_Gdata_YouTube_ActivityFeedo%6 MZend_Gdata_YouTube_ActivityEntryo5 ;Zend_Gdata_Spreadsheetso*4 WZend_Gdata_Spreadsheets_WorksheetFeedo+3 YZend_Gdata_Spreadsheets_WorksheetEntryo,2 [Zend_Gdata_Spreadsheets_SpreadsheetFeedo-1 ]Zend_Gdata_Spreadsheets_SpreadsheetEntryo&0 OZend_Gdata_Spreadsheets_ListQueryo%/ MZend_Gdata_Spreadsheets_ListFeedo&. OZend_Gdata_Spreadsheets_ListEntryo/- aZend_Gdata_Spreadsheets_Extension_RowCounto-, ]Zend_Gdata_Spreadsheets_Extension_Customo/+ aZend_Gdata_Spreadsheets_Extension_ColCounto+* YZend_Gdata_Spreadsheets_Extension_Cello*) WZend_Gdata_Spreadsheets_DocumentQueryo&( OZend_Gdata_Spreadsheets_CellQueryo%' MZend_Gdata_Spreadsheets_CellFeedo&& OZend_Gdata_Spreadsheets_CellEntryo% -Zend_Gdata_Queryo$ /Zend_Gdata_Photoso # CZend_Gdata_Photos_UserQueryo" AZend_Gdata_Photos_UserFeedo ! CZend_Gdata_Photos_UserEntryo  AZend_Gdata_Photos_TagEntryo! EZend_Gdata_Photos_PhotoQueryo  CZend_Gdata_Photos_PhotoFeedo! EZend_Gdata_Photos_PhotoEntryo& OZend_Gdata_Photos_Extension_Widtho' QZend_Gdata_Photos_Extension_Weighto( SZend_Gdata_Photos_Extension_Versiono% MZend_Gdata_Photos_Extension_Usero* WZend_Gdata_Photos_Extension_Timestampo* WZend_Gdata_Photos_Extension_Thumbnailo% MZend_Gdata_Photos_Extension_Sizeo) UZend_Gdata_Photos_Extension_Rotationo+ YZend_Gdata_Photos_Extension_QuotaLimito- ]Zend_Gdata_Photos_Extension_QuotaCurrento) UZend_Gdata_Photos_Extension_Positiono( SZend_Gdata_Photos_Extension_PhotoIdo3 iZend_Gdata_Photos_Extension_NumPhotosRemainingo* WZend_Gdata_Photos_Extension_NumPhotoso) UZend_Gdata_Photos_Extension_Nicknameo% MZend_Gdata_Photos_Extension_Nameo2 gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumo) UZend_Gdata_Photos_Extension_Locationo#
 IZend_Gdata_Photos_Extension_Ido'	 QZend_Gdata_Photos_Extension_Heighto2 gZend_Gdata_Photos_Extension_CommentingEnabledo- ]Zend_Gdata_Photos_Extension_CommentCounto' QZend_Gdata_Photos_Extension_Cliento) UZend_Gdata_Photos_Extension_Checksumo* WZend_Gdata_Photos_Extension_BytesUsedo( SZend_Gdata_Photos_Extension_AlbumIdo' QZend_Gdata_Photos_Extension_Accesso# IZend_Gdata_Photos_CommentEntryo!  EZend_Gdata_Photos_AlbumQueryo  CZend_Gdata_Photos_AlbumFeedo!~ EZend_Gdata_Photos_AlbumEntryo} 3Zend_Gdata_MimeFileo| ?Zend_Gdata_MimeBodyStringo{ AZend_Gdata_MediaMimeStreamoz -Zend_Gdata_Mediaoy 7Zend_Gdata_Media_Feedo*x WZend_Gdata_Media_Extension_MediaTitleo.w _Zend_Gdata_Media_Extension_MediaThumbnailo)v UZend_Gdata_Media_Extension_MediaTexto0u cZend_Gdata_Media_Extension_MediaRestrictiono+t YZend_Gdata_Media_Extension_MediaRatingo+s YZend_Gdata_Media_Extension_MediaPlayero-r ]Zend_Gdata_Media_Extension_MediaKeywordso)q UZend_Gdata_Media_Extension_MediaHasho*p WZend_Gdata_Media_Extension_MediaGroupo0o cZend_Gdata_Media_Extension_MediaDescriptiono+n YZend_Gdata_Media_Extension_MediaCredito.m _Zend_Gdata_Media_Extension_MediaCopyrighto,l [Zend_Gdata_Media_Extension_MediaContento   _  zL\1qC[*wL



x
R
%				q	E	zT)x_C'e8 qT+k<tJ(LeN/   "% GZend_Json_Server_Request_Httpo$ AZend_Json_Server_Exceptiono# 9Zend_Json_Server_Erroro" 9Zend_Json_Server_Cacheo! )Zend_Json_Expro  3Zend_Json_Exceptiono /Zend_Json_Encodero /Zend_Json_Decodero 'Zend_InfoCardo- ]Zend_InfoCard_Xml_SecurityTokenReferenceo AZend_InfoCard_Xml_Securityo) UZend_InfoCard_Xml_Security_Transformo4 kZend_InfoCard_Xml_Security_Transform_XmlExcC14No3 iZend_InfoCard_Xml_Security_Transform_Exceptiono< {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignatureo) UZend_InfoCard_Xml_Security_Exceptiono ?Zend_InfoCard_Xml_KeyInfoo& OZend_InfoCard_Xml_KeyInfo_XmlDSigo& OZend_InfoCard_Xml_KeyInfo_Defaulto' QZend_InfoCard_Xml_KeyInfo_Abstracto  CZend_InfoCard_Xml_Exceptiono# IZend_InfoCard_Xml_EncryptedKeyo$ KZend_InfoCard_Xml_EncryptedDatao+ YZend_InfoCard_Xml_EncryptedData_XmlEnco- ]Zend_InfoCard_Xml_EncryptedData_Abstracto ?Zend_InfoCard_Xml_Elemento  CZend_InfoCard_Xml_Assertiono%
 MZend_InfoCard_Xml_Assertion_Samlo	 ;Zend_InfoCard_Exceptiono% MZend_InfoCard_Exception_Abstracto 5Zend_InfoCard_Claimso 5Zend_InfoCard_Ciphero5 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbco5 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbco4 kZend_InfoCard_Cipher_Symmetric_Adapter_Abstracto) UZend_InfoCard_Cipher_Pki_Adapter_Rsao. _Zend_InfoCard_Cipher_Pki_Adapter_Abstracto#  IZend_InfoCard_Cipher_Exceptiono$ KZend_InfoCard_Adapter_Exceptiono"~ GZend_InfoCard_Adapter_Defaulto} 1Zend_Http_Responseo| 3Zend_Http_Exceptiono{ 3Zend_Http_CookieJaroz -Zend_Http_Cookieoy -Zend_Http_Clientox AZend_Http_Client_Exceptiono"w GZend_Http_Client_Adapter_Testo$v KZend_Http_Client_Adapter_Socketo#u IZend_Http_Client_Adapter_Proxyo't QZend_Http_Client_Adapter_Exceptiono"s GZend_Http_Client_Adapter_Curlor !Zend_Gdataoq 1Zend_Gdata_YouTubeo"p GZend_Gdata_YouTube_VideoQueryo!o EZend_Gdata_YouTube_VideoFeedo"n GZend_Gdata_YouTube_VideoEntryo(m SZend_Gdata_YouTube_UserProfileEntryo(l SZend_Gdata_YouTube_SubscriptionFeedo)k UZend_Gdata_YouTube_SubscriptionEntryo)j UZend_Gdata_YouTube_PlaylistVideoFeedo*i WZend_Gdata_YouTube_PlaylistVideoEntryo(h SZend_Gdata_YouTube_PlaylistListFeedo)g UZend_Gdata_YouTube_PlaylistListEntryo"f GZend_Gdata_YouTube_MediaEntryo!e EZend_Gdata_YouTube_InboxFeedo"d GZend_Gdata_YouTube_InboxEntryo)c UZend_Gdata_YouTube_Extension_VideoIdo*b WZend_Gdata_YouTube_Extension_Usernameo*a WZend_Gdata_YouTube_Extension_Uploadedo'` QZend_Gdata_YouTube_Extension_Tokeno(_ SZend_Gdata_YouTube_Extension_Statuso,^ [Zend_Gdata_YouTube_Extension_Statisticso'] QZend_Gdata_YouTube_Extension_Stateo(\ SZend_Gdata_YouTube_Extension_Schoolo-[ ]Zend_Gdata_YouTube_Extension_ReleaseDateo.Z _Zend_Gdata_YouTube_Extension_Relationshipo*Y WZend_Gdata_YouTube_Extension_Recordedo&X OZend_Gdata_YouTube_Extension_Racyo-W ]Zend_Gdata_YouTube_Extension_QueryStringo)V UZend_Gdata_YouTube_Extension_Privateo*U WZend_Gdata_YouTube_Extension_Positiono/T aZend_Gdata_YouTube_Extension_PlaylistTitleo,S [Zend_Gdata_YouTube_Extension_PlaylistIdo,R [Zend_Gdata_YouTube_Extension_Occupationo)Q UZend_Gdata_YouTube_Extension_NoEmbedo'P QZend_Gdata_YouTube_Extension_Musico(O SZend_Gdata_YouTube_Extension_Movieso-N ]Zend_Gdata_YouTube_Extension_MediaRatingo,M [Zend_Gdata_YouTube_Extension_MediaGroupo-L ]Zend_Gdata_YouTube_Extension_MediaCredito.K _Zend_Gdata_YouTube_Extension_MediaContento*J WZend_Gdata_YouTube_Extension_Locationo&I OZend_Gdata_YouTube_Extension_Linko*H WZend_Gdata_YouTube_Extension_LastNameo*G WZend_Gdata_YouTube_Extension_Hometowno   z qT;)zh@!~eG,	_>~aD'





o
K
&
				c	C	 mK,}X7%sO+xW<kP/qL'{bF,}`H                                  & OZend_OpenId_Consumer_Storage_Fileo +Zend_Navigationo 5Zend_Navigation_Pageo =Zend_Navigation_Page_Urio =Zend_Navigation_Page_Mvco ?Zend_Navigation_Exceptiono ?Zend_Navigation_Containero Zend_Mimeo )Zend_Mime_Parto /Zend_Mime_Messageo 3Zend_Mime_Exceptiono -Zend_Mime_Decodeo #Zend_Memoryo /Zend_Memory_Valueo 3Zend_Memory_Managero 7Zend_Memory_Exceptiono 7Zend_Memory_Containero" GZend_Memory_Container_Movableo! EZend_Memory_Container_Lockedo! EZend_Memory_AccessControllero 3Zend_Measure_Weighto
 3Zend_Measure_Volumeo%	 MZend_Measure_Viscosity_Kinematico# IZend_Measure_Viscosity_Dynamico 3Zend_Measure_Torqueo /Zend_Measure_Timeo =Zend_Measure_Temperatureo 1Zend_Measure_Speedo 7Zend_Measure_Pressureo 1Zend_Measure_Powero 3Zend_Measure_Numbero  9Zend_Measure_Lightnesso 3Zend_Measure_Lengtho~ ?Zend_Measure_Illuminationo} 9Zend_Measure_Frequencyo| 1Zend_Measure_Forceo{ =Zend_Measure_Flow_Volumeoz 9Zend_Measure_Flow_Moleoy 9Zend_Measure_Flow_Massox 9Zend_Measure_Exceptionow 3Zend_Measure_Energyov 5Zend_Measure_Densityou 5Zend_Measure_Currento t CZend_Measure_Cooking_Weighto s CZend_Measure_Cooking_Volumeor =Zend_Measure_Capacitanceoq 3Zend_Measure_Binaryop /Zend_Measure_Areaoo 1Zend_Measure_Angleon ?Zend_Measure_Accelerationom 7Zend_Measure_Abstractol Zend_Mailok =Zend_Mail_Transport_Smtpo!j EZend_Mail_Transport_Sendmailo"i GZend_Mail_Transport_Exceptiono!h EZend_Mail_Transport_Abstractog /Zend_Mail_Storageo'f QZend_Mail_Storage_Writable_Maildiroe 9Zend_Mail_Storage_Pop3od 9Zend_Mail_Storage_Mboxoc ?Zend_Mail_Storage_Maildirob 9Zend_Mail_Storage_Imapoa =Zend_Mail_Storage_Foldero"` GZend_Mail_Storage_Folder_Mboxo%_ MZend_Mail_Storage_Folder_Maildiro ^ CZend_Mail_Storage_Exceptiono] AZend_Mail_Storage_Abstracto\ ;Zend_Mail_Protocol_Smtpo'[ QZend_Mail_Protocol_Smtp_Auth_Plaino'Z QZend_Mail_Protocol_Smtp_Auth_Logino)Y UZend_Mail_Protocol_Smtp_Auth_Crammd5oX ;Zend_Mail_Protocol_Pop3oW ;Zend_Mail_Protocol_Imapo!V EZend_Mail_Protocol_Exceptiono U CZend_Mail_Protocol_AbstractoT )Zend_Mail_PartoS 3Zend_Mail_Part_FileoR /Zend_Mail_MessageoQ 9Zend_Mail_Message_FileoP 3Zend_Mail_ExceptionoO Zend_LogoN 9Zend_Log_Writer_StreamoM 5Zend_Log_Writer_NulloL 5Zend_Log_Writer_MockoK 5Zend_Log_Writer_MailoJ ;Zend_Log_Writer_FirebugoI 1Zend_Log_Writer_DboH =Zend_Log_Writer_AbstractoG 9Zend_Log_Formatter_XmloF ?Zend_Log_Formatter_SimpleoE AZend_Log_Formatter_FirebugoD =Zend_Log_Filter_SuppressoC =Zend_Log_Filter_PriorityoB ;Zend_Log_Filter_MessageoA 1Zend_Log_Exceptiono@ #Zend_Localeo? -Zend_Locale_Matho> =Zend_Locale_Math_PhpMatho= AZend_Locale_Math_Exceptiono< 1Zend_Locale_Formato; 7Zend_Locale_Exceptiono: -Zend_Locale_Datao!9 EZend_Locale_Data_Translationo8 #Zend_Loadero7 =Zend_Loader_PluginLoadero'6 QZend_Loader_PluginLoader_Exceptiono5 7Zend_Loader_Exceptiono4 9Zend_Loader_Autoloadero$3 KZend_Loader_Autoloader_Resourceo2 Zend_Ldapo1 3Zend_Ldap_Exceptiono0 #Zend_Layouto/ 7Zend_Layout_Exceptiono). UZend_Layout_Controller_Plugin_Layouto0- cZend_Layout_Controller_Action_Helper_Layouto, Zend_Jsono+ -Zend_Json_Servero* 5Zend_Json_Server_Smdo!) EZend_Json_Server_Smd_Serviceo( ?Zend_Json_Server_Responseo#' IZend_Json_Server_Response_Httpo& =Zend_Json_Server_Requesto   d  }_5nFT&oL6kG)



x
O
,
					f	K	i>X4pI Xd'l3Ca<              /Zend_Pdf_Resourceo# IZend_Pdf_Resource_ImageFactoryo ;Zend_Pdf_Resource_Imageo!  EZend_Pdf_Resource_Image_Tiffo  CZend_Pdf_Resource_Image_Pngo!~ EZend_Pdf_Resource_Image_Jpego} 9Zend_Pdf_Resource_Fonto!| EZend_Pdf_Resource_Font_Type0o"{ GZend_Pdf_Resource_Font_Simpleo+z YZend_Pdf_Resource_Font_Simple_Standardo8y sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatso6x oZend_Pdf_Resource_Font_Simple_Standard_TimesRomano7w qZend_Pdf_Resource_Font_Simple_Standard_TimesItalico;v yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalico5u mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldo2t gZend_Pdf_Resource_Font_Simple_Standard_Symbolo<s {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueoAr Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliqueo9q uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldo5p mZend_Pdf_Resource_Font_Simple_Standard_Helveticao:o wZend_Pdf_Resource_Font_Simple_Standard_CourierObliqueo>n Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliqueo7m qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldo3l iZend_Pdf_Resource_Font_Simple_Standard_Couriero)k UZend_Pdf_Resource_Font_Simple_Parsedo2j gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypeo*i WZend_Pdf_Resource_Font_FontDescriptoro%h MZend_Pdf_Resource_Font_Extractedo#g IZend_Pdf_Resource_Font_CidFonto,f [Zend_Pdf_Resource_Font_CidFont_TrueTypeoe /Zend_Pdf_PhpArrayod +Zend_Pdf_Parseroc 9Zend_Pdf_Parser_Streamob 'Zend_Pdf_Pageoa )Zend_Pdf_Imageo` 'Zend_Pdf_Fonto _ CZend_Pdf_Filter_Compressiono$^ KZend_Pdf_Filter_Compression_Lzwo&] OZend_Pdf_Filter_Compression_Flateo\ =Zend_Pdf_Filter_AsciiHexo[ ;Zend_Pdf_Filter_Ascii85o"Z GZend_Pdf_FileParserDataSourceo)Y UZend_Pdf_FileParserDataSource_Stringo'X QZend_Pdf_FileParserDataSource_FileoW 3Zend_Pdf_FileParseroV ?Zend_Pdf_FileParser_Imageo"U GZend_Pdf_FileParser_Image_PngoT =Zend_Pdf_FileParser_Fonto&S OZend_Pdf_FileParser_Font_OpenTypeo/R aZend_Pdf_FileParser_Font_OpenType_TrueTypeoQ 1Zend_Pdf_ExceptionoP ;Zend_Pdf_ElementFactoryo"O GZend_Pdf_ElementFactory_ProxyoN -Zend_Pdf_ElementoM ;Zend_Pdf_Element_Stringo#L IZend_Pdf_Element_String_BinaryoK ;Zend_Pdf_Element_StreamoJ AZend_Pdf_Element_Referenceo%I MZend_Pdf_Element_Reference_Tableo'H QZend_Pdf_Element_Reference_ContextoG ;Zend_Pdf_Element_Objecto#F IZend_Pdf_Element_Object_StreamoE =Zend_Pdf_Element_NumericoD 7Zend_Pdf_Element_NulloC 7Zend_Pdf_Element_Nameo B CZend_Pdf_Element_DictionaryoA =Zend_Pdf_Element_Booleano@ 9Zend_Pdf_Element_Arrayo? )Zend_Pdf_Coloro> 1Zend_Pdf_Color_Rgbo= 3Zend_Pdf_Color_Htmlo< =Zend_Pdf_Color_GrayScaleo; 3Zend_Pdf_Color_Cmyko: 'Zend_Pdf_Cmapo9 AZend_Pdf_Cmap_TrimmedTableo!8 EZend_Pdf_Cmap_SegmentToDeltao7 AZend_Pdf_Cmap_ByteEncodingo&6 OZend_Pdf_Cmap_ByteEncoding_Statico5 )Zend_Paginatoro*4 WZend_Paginator_ScrollingStyle_Slidingo*3 WZend_Paginator_ScrollingStyle_Jumpingo*2 WZend_Paginator_ScrollingStyle_Elastico&1 OZend_Paginator_ScrollingStyle_Allo0 =Zend_Paginator_Exceptiono / CZend_Paginator_Adapter_Nullo$. KZend_Paginator_Adapter_Iteratoro)- UZend_Paginator_Adapter_DbTableSelecto$, KZend_Paginator_Adapter_DbSelecto!+ EZend_Paginator_Adapter_Arrayo* #Zend_OpenIdo) 5Zend_OpenId_Providero( ?Zend_OpenId_Provider_Usero&' OZend_OpenId_Provider_User_Sessiono!& EZend_OpenId_Provider_Storageo&% OZend_OpenId_Provider_Storage_Fileo$ 7Zend_OpenId_Extensiono# AZend_OpenId_Extension_Srego" 7Zend_OpenId_Exceptiono! 5Zend_OpenId_Consumero!  EZend_OpenId_Consumer_Storageo   Z  oJ9tQ8}[9`6=

{
1			o	;	l1pG_@e6g=	^=k=j-  2] gZend_Search_Lucene_Search_Query_Preprocessingo7\ qZend_Search_Lucene_Search_Query_Preprocessing_Termo9[ uZend_Search_Lucene_Search_Query_Preprocessing_Phraseo8Z sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzyo+Y YZend_Search_Lucene_Search_Query_Phraseo.X _Zend_Search_Lucene_Search_Query_MultiTermo2W gZend_Search_Lucene_Search_Query_Insignificanto*V WZend_Search_Lucene_Search_Query_Fuzzyo*U WZend_Search_Lucene_Search_Query_Emptyo,T [Zend_Search_Lucene_Search_Query_Booleano2S gZend_Search_Lucene_Search_Highlighter_Defaulto:R wZend_Search_Lucene_Search_BooleanExpressionRecognizeroQ =Zend_Search_Lucene_Proxyo%P MZend_Search_Lucene_PriorityQueueo/O aZend_Search_Lucene_Interface_MultiSearchero#N IZend_Search_Lucene_LockManagero$M KZend_Search_Lucene_Index_Writero0L cZend_Search_Lucene_Index_TermsPriorityQueueo&K OZend_Search_Lucene_Index_TermInfoo"J GZend_Search_Lucene_Index_Termo+I YZend_Search_Lucene_Index_SegmentWritero8H sZend_Search_Lucene_Index_SegmentWriter_StreamWritero:G wZend_Search_Lucene_Index_SegmentWriter_DocumentWritero+F YZend_Search_Lucene_Index_SegmentMergero)E UZend_Search_Lucene_Index_SegmentInfoo'D QZend_Search_Lucene_Index_FieldInfoo(C SZend_Search_Lucene_Index_DocsFiltero.B _Zend_Search_Lucene_Index_DictionaryLoadero!A EZend_Search_Lucene_FSMActiono@ 9Zend_Search_Lucene_FSMo? =Zend_Search_Lucene_Fieldo!> EZend_Search_Lucene_Exceptiono = CZend_Search_Lucene_Documento%< MZend_Search_Lucene_Document_Xlsxo%; MZend_Search_Lucene_Document_Pptxo(: SZend_Search_Lucene_Document_OpenXmlo%9 MZend_Search_Lucene_Document_Htmlo*8 WZend_Search_Lucene_Document_Exceptiono%7 MZend_Search_Lucene_Document_Docxo,6 [Zend_Search_Lucene_Analysis_TokenFiltero65 oZend_Search_Lucene_Analysis_TokenFilter_StopWordso74 qZend_Search_Lucene_Analysis_TokenFilter_ShortWordso:3 wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8o62 oZend_Search_Lucene_Analysis_TokenFilter_LowerCaseo&1 OZend_Search_Lucene_Analysis_Tokeno)0 UZend_Search_Lucene_Analysis_Analyzero0/ cZend_Search_Lucene_Analysis_Analyzer_Commono8. sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumoI- Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitiveo5, mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8oF+ Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitiveo8* sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumoI) Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitiveo5( mZend_Search_Lucene_Analysis_Analyzer_Common_TextoF' Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiveo& 7Zend_Search_Exceptiono% -Zend_Rest_Servero$ AZend_Rest_Server_Exceptiono# 3Zend_Rest_Exceptiono" -Zend_Rest_Cliento! ;Zend_Rest_Client_Resulto&  OZend_Rest_Client_Result_Exceptiono AZend_Rest_Client_Exceptiono 'Zend_Registryo =Zend_Reflection_Propertyo ?Zend_Reflection_Parametero 9Zend_Reflection_Methodo =Zend_Reflection_Functiono 5Zend_Reflection_Fileo ?Zend_Reflection_Extensiono ?Zend_Reflection_Exceptiono =Zend_Reflection_Docblocko! EZend_Reflection_Docblock_Tago( SZend_Reflection_Docblock_Tag_Returno' QZend_Reflection_Docblock_Tag_Paramo 7Zend_Reflection_Classo -Zend_ProgressBaro AZend_ProgressBar_Exceptiono =Zend_ProgressBar_Adaptero$ KZend_ProgressBar_Adapter_JsPusho$ KZend_ProgressBar_Adapter_JsPullo' QZend_ProgressBar_Adapter_Exceptiono% MZend_ProgressBar_Adapter_Consoleo
 Zend_Pdfo!	 EZend_Pdf_UpdateInfoContainero -Zend_Pdf_Trailero ;Zend_Pdf_Trailer_Keepero AZend_Pdf_Trailer_Generatoro )Zend_Pdf_Styleo 7Zend_Pdf_StringParsero   _  tLX+d/o?P!




s
T
6
				}	T	#_4b9d>c:wV,
tN/wO%|`8                         )< UZend_Service_Nirvanix_Namespace_Imfso); UZend_Service_Nirvanix_Namespace_Baseo$: KZend_Service_Nirvanix_Exceptiono9 3Zend_Service_Flickro"8 GZend_Service_Flickr_ResultSeto7 AZend_Service_Flickr_Resulto6 ?Zend_Service_Flickr_Imageo5 9Zend_Service_Exceptiono4 9Zend_Service_Deliciouso&3 OZend_Service_Delicious_SimplePosto$2 KZend_Service_Delicious_PostListo 1 CZend_Service_Delicious_Posto%0 MZend_Service_Delicious_Exceptiono / CZend_Service_Audioscrobblero. 3Zend_Service_Amazono'- QZend_Service_Amazon_SimilarProducto, 9Zend_Service_Amazon_S3o"+ GZend_Service_Amazon_S3_Streamo%* MZend_Service_Amazon_S3_Exceptiono") GZend_Service_Amazon_ResultSeto( ?Zend_Service_Amazon_Queryo!' EZend_Service_Amazon_OfferSeto& ?Zend_Service_Amazon_Offero&% OZend_Service_Amazon_ListmaniaListo$ =Zend_Service_Amazon_Itemo# ?Zend_Service_Amazon_Imageo"" GZend_Service_Amazon_Exceptiono(! SZend_Service_Amazon_EditorialReviewo  ;Zend_Service_Amazon_Ec2o+ YZend_Service_Amazon_Ec2_Securitygroupso% MZend_Service_Amazon_Ec2_Responseo# IZend_Service_Amazon_Ec2_Regiono$ KZend_Service_Amazon_Ec2_Keypairo% MZend_Service_Amazon_Ec2_Instanceo- ]Zend_Service_Amazon_Ec2_Instance_Windowso. _Zend_Service_Amazon_Ec2_Instance_Reservedo" GZend_Service_Amazon_Ec2_Imageo& OZend_Service_Amazon_Ec2_Exceptiono& OZend_Service_Amazon_Ec2_Elasticipo  CZend_Service_Amazon_Ec2_Ebso' QZend_Service_Amazon_Ec2_CloudWatcho. _Zend_Service_Amazon_Ec2_Availabilityzoneso% MZend_Service_Amazon_Ec2_Abstracto' QZend_Service_Amazon_CustomerReviewo$ KZend_Service_Amazon_Accessorieso! EZend_Service_Amazon_Abstracto 5Zend_Service_Akismeto 7Zend_Service_Abstracto 9Zend_Server_Reflectiono' QZend_Server_Reflection_ReturnValueo%
 MZend_Server_Reflection_Prototypeo%	 MZend_Server_Reflection_Parametero  CZend_Server_Reflection_Nodeo" GZend_Server_Reflection_Methodo$ KZend_Server_Reflection_Functiono- ]Zend_Server_Reflection_Function_Abstracto% MZend_Server_Reflection_Exceptiono! EZend_Server_Reflection_Classo! EZend_Server_Method_Prototypeo! EZend_Server_Method_Parametero"  GZend_Server_Method_Definitiono  CZend_Server_Method_Callbacko~ 7Zend_Server_Exceptiono} 9Zend_Server_Definitiono| /Zend_Server_Cacheo{ 5Zend_Server_Abstractoz 1Zend_Search_Luceneo0y cZend_Search_Lucene_TermStreamsPriorityQueueo$x KZend_Search_Lucene_Storage_Fileo+w YZend_Search_Lucene_Storage_File_Memoryo/v aZend_Search_Lucene_Storage_File_Filesystemo)u UZend_Search_Lucene_Storage_Directoryo4t kZend_Search_Lucene_Storage_Directory_Filesystemo%s MZend_Search_Lucene_Search_Weighto*r WZend_Search_Lucene_Search_Weight_Termo,q [Zend_Search_Lucene_Search_Weight_Phraseo/p aZend_Search_Lucene_Search_Weight_MultiTermo+o YZend_Search_Lucene_Search_Weight_Emptyo-n ]Zend_Search_Lucene_Search_Weight_Booleano)m UZend_Search_Lucene_Search_Similarityo1l eZend_Search_Lucene_Search_Similarity_Defaulto)k UZend_Search_Lucene_Search_QueryTokeno3j iZend_Search_Lucene_Search_QueryParserExceptiono1i eZend_Search_Lucene_Search_QueryParserContexto*h WZend_Search_Lucene_Search_QueryParsero)g UZend_Search_Lucene_Search_QueryLexero'f QZend_Search_Lucene_Search_QueryHito)e UZend_Search_Lucene_Search_QueryEntryo.d _Zend_Search_Lucene_Search_QueryEntry_Termo2c gZend_Search_Lucene_Search_QueryEntry_Subqueryo0b cZend_Search_Lucene_Search_QueryEntry_Phraseo$a KZend_Search_Lucene_Search_Queryo-` ]Zend_Search_Lucene_Search_Query_Wildcardo)_ UZend_Search_Lucene_Search_Query_Termo*^ WZend_Search_Lucene_Search_Query_Rangeo   c  `8iF'_DW&}N!



`
2
				V	,Y9_3d:uP(]5kH)b/`5
                    % MZend_Tag_Cloud_Decorator_HtmlTago' QZend_Tag_Cloud_Decorator_HtmlCloudo' QZend_Tag_Cloud_Decorator_Exceptiono# IZend_Tag_Cloud_Decorator_Cloudo )Zend_Soap_Wsdlo/ aZend_Soap_Wsdl_Strategy_DefaultComplexTypeo& OZend_Soap_Wsdl_Strategy_Compositeo0 cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequenceo/ aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplexo$ KZend_Soap_Wsdl_Strategy_AnyTypeo% MZend_Soap_Wsdl_Strategy_Abstracto =Zend_Soap_Wsdl_Exceptiono -Zend_Soap_Servero AZend_Soap_Server_Exceptiono -Zend_Soap_Cliento 9Zend_Soap_Client_Localo AZend_Soap_Client_Exceptiono ;Zend_Soap_Client_DotNeto ;Zend_Soap_Client_Commono 9Zend_Soap_AutoDiscovero% MZend_Soap_AutoDiscover_Exceptiono
 %Zend_Sessiono)	 UZend_Session_Validator_HttpUserAgento$ KZend_Session_Validator_Abstracto' QZend_Session_SaveHandler_Exceptiono% MZend_Session_SaveHandler_DbTableo 9Zend_Session_Namespaceo 9Zend_Session_Exceptiono 7Zend_Session_Abstracto 1Zend_Service_Yahooo$ KZend_Service_Yahoo_WebResultSeto!  EZend_Service_Yahoo_WebResulto& OZend_Service_Yahoo_VideoResultSeto#~ IZend_Service_Yahoo_VideoResulto!} EZend_Service_Yahoo_ResultSeto| ?Zend_Service_Yahoo_Resulto){ UZend_Service_Yahoo_PageDataResultSeto&z OZend_Service_Yahoo_PageDataResulto%y MZend_Service_Yahoo_NewsResultSeto"x GZend_Service_Yahoo_NewsResulto&w OZend_Service_Yahoo_LocalResultSeto#v IZend_Service_Yahoo_LocalResulto+u YZend_Service_Yahoo_InlinkDataResultSeto(t SZend_Service_Yahoo_InlinkDataResulto&s OZend_Service_Yahoo_ImageResultSeto#r IZend_Service_Yahoo_ImageResultoq =Zend_Service_Yahoo_Imageop 5Zend_Service_Twittero o CZend_Service_Twitter_Searcho#n IZend_Service_Twitter_Exceptionom ;Zend_Service_Technoratio#l IZend_Service_Technorati_Weblogo"k GZend_Service_Technorati_Utilso*j WZend_Service_Technorati_TagsResultSeto'i QZend_Service_Technorati_TagsResulto)h UZend_Service_Technorati_TagResultSeto&g OZend_Service_Technorati_TagResulto,f [Zend_Service_Technorati_SearchResultSeto)e UZend_Service_Technorati_SearchResulto&d OZend_Service_Technorati_ResultSeto#c IZend_Service_Technorati_Resulto*b WZend_Service_Technorati_KeyInfoResulto*a WZend_Service_Technorati_GetInfoResulto&` OZend_Service_Technorati_Exceptiono1_ eZend_Service_Technorati_DailyCountsResultSeto.^ _Zend_Service_Technorati_DailyCountsResulto,] [Zend_Service_Technorati_CosmosResultSeto)\ UZend_Service_Technorati_CosmosResulto+[ YZend_Service_Technorati_BlogInfoResulto#Z IZend_Service_Technorati_AuthoroY ;Zend_Service_StrikeIrono(X SZend_Service_StrikeIron_ZipCodeInfoo2W gZend_Service_StrikeIron_USAddressVerificationo-V ]Zend_Service_StrikeIron_SalesUseTaxBasico&U OZend_Service_StrikeIron_Exceptiono&T OZend_Service_StrikeIron_Decoratoro!S EZend_Service_StrikeIron_BaseoR ;Zend_Service_SlideShareo&Q OZend_Service_SlideShare_SlideShowo&P OZend_Service_SlideShare_ExceptionoO 1Zend_Service_Simpyo$N KZend_Service_Simpy_WatchlistSeto*M WZend_Service_Simpy_WatchlistFilterSeto'L QZend_Service_Simpy_WatchlistFiltero!K EZend_Service_Simpy_WatchlistoJ ?Zend_Service_Simpy_TagSetoI 9Zend_Service_Simpy_TagoH AZend_Service_Simpy_NoteSetoG ;Zend_Service_Simpy_NoteoF AZend_Service_Simpy_LinkSeto!E EZend_Service_Simpy_LinkQueryoD ;Zend_Service_Simpy_LinkoC 9Zend_Service_ReCaptchao$B KZend_Service_ReCaptcha_Responseo$A KZend_Service_ReCaptcha_MailHideo.@ _Zend_Service_ReCaptcha_MailHide_Exceptiono%? MZend_Service_ReCaptcha_Exceptiono> 7Zend_Service_Nirvanixo#= IZend_Service_Nirvanix_Responseo   U  rX*lP-eI1R$T


x
<				`	:	\,|Mi8oCw=X|Lu?                                               *t WZend_Tool_Project_Context_Zf_FormFileo-s ]Zend_Tool_Project_Context_Zf_DbTableFileo2r gZend_Tool_Project_Context_Zf_DbTableDirectoryo/q aZend_Tool_Project_Context_Zf_DataDirectoryo6p oZend_Tool_Project_Context_Zf_ControllersDirectoryo0o cZend_Tool_Project_Context_Zf_ControllerFileo2n gZend_Tool_Project_Context_Zf_ConfigsDirectoryo,m [Zend_Tool_Project_Context_Zf_ConfigFileo0l cZend_Tool_Project_Context_Zf_CacheDirectoryo/k aZend_Tool_Project_Context_Zf_BootstrapFileo6j oZend_Tool_Project_Context_Zf_ApplicationDirectoryo7i qZend_Tool_Project_Context_Zf_ApplicationConfigFileo/h aZend_Tool_Project_Context_Zf_ApisDirectoryo.g _Zend_Tool_Project_Context_Zf_ActionMethodo@f Zend_Tool_Project_Context_System_ProjectProvidersDirectoryo8e sZend_Tool_Project_Context_System_ProjectProfileFileo6d oZend_Tool_Project_Context_System_ProjectDirectoryo)c UZend_Tool_Project_Context_Repositoryo.b _Zend_Tool_Project_Context_Filesystem_Fileo3a iZend_Tool_Project_Context_Filesystem_Directoryo2` gZend_Tool_Project_Context_Filesystem_Abstracto(_ SZend_Tool_Project_Context_Exceptiono0^ cZend_Tool_Framework_System_Provider_Versiono0] cZend_Tool_Framework_System_Provider_Phpinfoo1\ eZend_Tool_Framework_System_Provider_Manifesto([ SZend_Tool_Framework_System_Manifesto-Z ]Zend_Tool_Framework_System_Action_Deleteo-Y ]Zend_Tool_Framework_System_Action_Createo!X EZend_Tool_Framework_Registryo+W YZend_Tool_Framework_Registry_Exceptiono+V YZend_Tool_Framework_Provider_Signatureo,U [Zend_Tool_Framework_Provider_Repositoryo+T YZend_Tool_Framework_Provider_Exceptiono*S WZend_Tool_Framework_Provider_Abstracto&R OZend_Tool_Framework_Metadata_Toolo)Q UZend_Tool_Framework_Metadata_Dynamico'P QZend_Tool_Framework_Metadata_Basico,O [Zend_Tool_Framework_Manifest_Repositoryo+N YZend_Tool_Framework_Manifest_Exceptiono1M eZend_Tool_Framework_Loader_IncludePathLoaderoJL Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIteratoro(K SZend_Tool_Framework_Loader_Abstracto"J GZend_Tool_Framework_Exceptiono(I SZend_Tool_Framework_Client_ResponseoDH 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separatoro'G QZend_Tool_Framework_Client_Requesto9F uZend_Tool_Framework_Client_Interactive_InputResponseo8E sZend_Tool_Framework_Client_Interactive_InputRequesto8D sZend_Tool_Framework_Client_Interactive_InputHandlero)C UZend_Tool_Framework_Client_Exceptiono'B QZend_Tool_Framework_Client_ConsoleoDA 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizero0@ cZend_Tool_Framework_Client_Console_Manifesto2? gZend_Tool_Framework_Client_Console_HelpSystemo6> oZend_Tool_Framework_Client_Console_ArgumentParsero(= SZend_Tool_Framework_Client_Abstracto*< WZend_Tool_Framework_Action_Repositoryo); UZend_Tool_Framework_Action_Exceptiono$: KZend_Tool_Framework_Action_Baseo9 'Zend_TimeSynco8 1Zend_TimeSync_Sntpo7 9Zend_TimeSync_Protocolo6 /Zend_TimeSync_Ntpo5 ;Zend_TimeSync_Exceptiono4 +Zend_Text_Tableo3 3Zend_Text_Table_Rowo2 ?Zend_Text_Table_Exceptiono&1 OZend_Text_Table_Decorator_Unicodeo$0 KZend_Text_Table_Decorator_Asciio/ 9Zend_Text_Table_Columno. 3Zend_Text_MultiByteo- -Zend_Text_Figleto, AZend_Text_Figlet_Exceptiono+ 3Zend_Text_Exceptiono)* UZend_Test_PHPUnit_ControllerTestCaseo0) cZend_Test_PHPUnit_Constraint_ResponseHeadero*( WZend_Test_PHPUnit_Constraint_Redirecto+' YZend_Test_PHPUnit_Constraint_Exceptiono*& WZend_Test_PHPUnit_Constraint_DomQueryo% /Zend_Tag_ItemListo$ 'Zend_Tag_Itemo# 1Zend_Tag_Exceptiono" )Zend_Tag_Cloudo! =Zend_Tag_Cloud_Exceptiono!  EZend_Tag_Cloud_Decorator_Tago   T  d.a,M`)f"


l
7				N		a'c2FuH vKY6eD-pM/           H ?Zend_Validate_Db_AbstractoG 1Zend_Validate_DateoF 3Zend_Validate_CcnumoE 7Zend_Validate_BetweenoD 7Zend_Validate_BarcodeoC AZend_Validate_Barcode_UpcAo B CZend_Validate_Barcode_Ean13oA 3Zend_Validate_Alphao@ 3Zend_Validate_Alnumo? 9Zend_Validate_Abstracto> Zend_Urio= 'Zend_Uri_Httpo< 1Zend_Uri_Exceptiono; )Zend_Translateo: =Zend_Translate_Exceptiono9 9Zend_Translate_Adaptero!8 EZend_Translate_Adapter_XmlTmo!7 EZend_Translate_Adapter_Xliffo6 AZend_Translate_Adapter_Tmxo5 AZend_Translate_Adapter_Tbxo4 ?Zend_Translate_Adapter_Qto3 AZend_Translate_Adapter_Inio#2 IZend_Translate_Adapter_Gettexto1 AZend_Translate_Adapter_Csvo!0 EZend_Translate_Adapter_Arrayo$/ KZend_Tool_Project_Provider_Viewo$. KZend_Tool_Project_Provider_Testo/- aZend_Tool_Project_Provider_ProjectProvidero', QZend_Tool_Project_Provider_Projecto'+ QZend_Tool_Project_Provider_Profileo&* OZend_Tool_Project_Provider_Moduleo%) MZend_Tool_Project_Provider_Modelo(( SZend_Tool_Project_Provider_Manifesto$' KZend_Tool_Project_Provider_Formo)& UZend_Tool_Project_Provider_Exceptiono*% WZend_Tool_Project_Provider_Controllero&$ OZend_Tool_Project_Provider_Actiono(# SZend_Tool_Project_Provider_Abstracto" ?Zend_Tool_Project_Profileo'! QZend_Tool_Project_Profile_Resourceo9  uZend_Tool_Project_Profile_Resource_SearchConstraintso1 eZend_Tool_Project_Profile_Resource_Containero= }Zend_Tool_Project_Profile_Iterator_EnabledResourceFiltero5 mZend_Tool_Project_Profile_Iterator_ContextFiltero- ]Zend_Tool_Project_Profile_FileParser_Xmlo( SZend_Tool_Project_Profile_Exceptiono  CZend_Tool_Project_Exceptiono< {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectoryo0 cZend_Tool_Project_Context_Zf_ViewsDirectoryo6 oZend_Tool_Project_Context_Zf_ViewScriptsDirectoryo0 cZend_Tool_Project_Context_Zf_ViewScriptFileo6 oZend_Tool_Project_Context_Zf_ViewHelpersDirectoryo6 oZend_Tool_Project_Context_Zf_ViewFiltersDirectoryoA Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectoryo2 gZend_Tool_Project_Context_Zf_UploadsDirectoryo0 cZend_Tool_Project_Context_Zf_TestsDirectoryo7 qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFileo@ Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectoryo1 eZend_Tool_Project_Context_Zf_TestLibraryFileo6 oZend_Tool_Project_Context_Zf_TestLibraryDirectoryo: wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFileo: wZend_Tool_Project_Context_Zf_TestApplicationDirectoryo@
 Zend_Tool_Project_Context_Zf_TestApplicationControllerFileoE	 Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectoryo> Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFileo4 kZend_Tool_Project_Context_Zf_TemporaryDirectoryo3 iZend_Tool_Project_Context_Zf_SessionsDirectoryo8 sZend_Tool_Project_Context_Zf_SearchIndexesDirectoryo< {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectoryo8 sZend_Tool_Project_Context_Zf_PublicScriptsDirectoryo1 eZend_Tool_Project_Context_Zf_PublicIndexFileo7 qZend_Tool_Project_Context_Zf_PublicImagesDirectoryo1  eZend_Tool_Project_Context_Zf_PublicDirectoryo5 mZend_Tool_Project_Context_Zf_ProjectProviderFileo2~ gZend_Tool_Project_Context_Zf_ModulesDirectoryo1} eZend_Tool_Project_Context_Zf_ModuleDirectoryo1| eZend_Tool_Project_Context_Zf_ModelsDirectoryo+{ YZend_Tool_Project_Context_Zf_ModelFileo/z aZend_Tool_Project_Context_Zf_LogsDirectoryo2y gZend_Tool_Project_Context_Zf_LocalesDirectoryo2x gZend_Tool_Project_Context_Zf_LibraryDirectoryo2w gZend_Tool_Project_Context_Zf_LayoutsDirectoryo.v _Zend_Tool_Project_Context_Zf_HtaccessFileo0u cZend_Tool_Project_Context_Zf_FormsDirectoryo   l  rR1rM-zU5vW<qH" 




p
T
2
					m	I	#qN#qM+zW2Z<f:zB	h:lZ0    )4 UZend_Wildfire_Plugin_FirePhp_Messageo3 ;Zend_Wildfire_Exceptiono&2 OZend_Wildfire_Channel_HttpHeaderso1 Zend_Viewo0 -Zend_View_Streamo/ 5Zend_View_Helper_Urlo. AZend_View_Helper_Translateo- AZend_View_Helper_ServerUrlo), UZend_View_Helper_RenderToPlaceholdero!+ EZend_View_Helper_Placeholdero** WZend_View_Helper_Placeholder_Registryo4) kZend_View_Helper_Placeholder_Registry_Exceptiono+( YZend_View_Helper_Placeholder_Containero6' oZend_View_Helper_Placeholder_Container_Standaloneo5& mZend_View_Helper_Placeholder_Container_Exceptiono4% kZend_View_Helper_Placeholder_Container_Abstracto!$ EZend_View_Helper_PartialLoopo# =Zend_View_Helper_Partialo'" QZend_View_Helper_Partial_Exceptiono'! QZend_View_Helper_PaginationControlo   CZend_View_Helper_Navigationo( SZend_View_Helper_Navigation_Sitemapo% MZend_View_Helper_Navigation_Menuo& OZend_View_Helper_Navigation_Linkso/ aZend_View_Helper_Navigation_HelperAbstracto, [Zend_View_Helper_Navigation_Breadcrumbso ;Zend_View_Helper_Layouto 7Zend_View_Helper_Jsono" GZend_View_Helper_InlineScripto# IZend_View_Helper_HtmlQuicktimeo ?Zend_View_Helper_HtmlPageo  CZend_View_Helper_HtmlObjecto ?Zend_View_Helper_HtmlListo AZend_View_Helper_HtmlFlasho! EZend_View_Helper_HtmlElemento AZend_View_Helper_HeadTitleo AZend_View_Helper_HeadStyleo  CZend_View_Helper_HeadScripto ?Zend_View_Helper_HeadMetao ?Zend_View_Helper_HeadLinko" GZend_View_Helper_FormTextareao ?Zend_View_Helper_FormTexto 
 CZend_View_Helper_FormSubmito 	 CZend_View_Helper_FormSelecto AZend_View_Helper_FormReseto AZend_View_Helper_FormRadioo" GZend_View_Helper_FormPasswordo ?Zend_View_Helper_FormNoteo' QZend_View_Helper_FormMultiCheckboxo AZend_View_Helper_FormLabelo AZend_View_Helper_FormImageo  CZend_View_Helper_FormHiddeno  ?Zend_View_Helper_FormFileo  CZend_View_Helper_FormErrorso!~ EZend_View_Helper_FormElemento"} GZend_View_Helper_FormCheckboxo | CZend_View_Helper_FormButtono{ 7Zend_View_Helper_Formoz ?Zend_View_Helper_Fieldsetoy =Zend_View_Helper_Doctypeo!x EZend_View_Helper_DeclareVarsow 9Zend_View_Helper_Cycleov ;Zend_View_Helper_Actionou ?Zend_View_Helper_Abstractot 3Zend_View_Exceptionos 1Zend_View_Abstractor %Zend_Versionoq 'Zend_Validateop AZend_Validate_StringLengtho#o IZend_Validate_Sitemap_Priorityon ?Zend_Validate_Sitemap_Loco"m GZend_Validate_Sitemap_Lastmodo%l MZend_Validate_Sitemap_Changefreqok 3Zend_Validate_Regexoj 9Zend_Validate_NotEmptyoi 9Zend_Validate_LessThanoh -Zend_Validate_Ipog /Zend_Validate_Intof 7Zend_Validate_InArrayoe ;Zend_Validate_Identicalod 1Zend_Validate_Ibanoc 9Zend_Validate_Hostnameob /Zend_Validate_Hexoa ?Zend_Validate_GreaterThano` 3Zend_Validate_Floato!_ EZend_Validate_File_WordCounto^ ?Zend_Validate_File_Uploado] ;Zend_Validate_File_Sizeo\ ;Zend_Validate_File_Sha1o![ EZend_Validate_File_NotExistso Z CZend_Validate_File_MimeTypeoY 9Zend_Validate_File_Md5oX AZend_Validate_File_IsImageo$W KZend_Validate_File_IsCompressedo!V EZend_Validate_File_ImageSizeoU ;Zend_Validate_File_Hasho!T EZend_Validate_File_FilesSizeo!S EZend_Validate_File_ExtensionoR ?Zend_Validate_File_Existso'Q QZend_Validate_File_ExcludeMimeTypeo(P SZend_Validate_File_ExcludeExtensionoO =Zend_Validate_File_Crc32oN =Zend_Validate_File_CountoM ;Zend_Validate_ExceptionoL AZend_Validate_EmailAddressoK 5Zend_Validate_Digitso"J GZend_Validate_Db_RecordExistso$I KZend_Validate_Db_NoRecordExistso   j  Z0gI/pK*eB!{Z@%





]
9
					k	D	 Y7kH'zIj=c>d7^E#`=        3Zend_Auth_Exceptionp =Zend_Auth_Adapter_OpenIdp 9Zend_Auth_Adapter_Ldapp AZend_Auth_Adapter_InfoCardp 9Zend_Auth_Adapter_Httpp) UZend_Auth_Adapter_Http_Resolver_Filep. _Zend_Auth_Adapter_Http_Resolver_Exceptionp  CZend_Auth_Adapter_Exceptionp =Zend_Auth_Adapter_Digestp ?Zend_Auth_Adapter_DbTablep -Zend_Applicationp# IZend_Application_Resource_Viewp( SZend_Application_Resource_Translatep& OZend_Application_Resource_Sessionp% MZend_Application_Resource_Routerp/ aZend_Application_Resource_ResourceAbstractp) UZend_Application_Resource_Navigationp& OZend_Application_Resource_Modulesp% MZend_Application_Resource_Localep% MZend_Application_Resource_Layoutp.
 _Zend_Application_Resource_Frontcontrollerp(	 SZend_Application_Resource_Exceptionp! EZend_Application_Resource_Dbp& OZend_Application_Module_Bootstrapp' QZend_Application_Module_Autoloaderp AZend_Application_Exceptionp) UZend_Application_Bootstrap_Exceptionp1 eZend_Application_Bootstrap_BootstrapAbstractp) UZend_Application_Bootstrap_Bootstrapp ?Zend_Amf_Value_TraitsInfop-  ]Zend_Amf_Value_Messaging_RemotingMessagep* WZend_Amf_Value_Messaging_ErrorMessagep,~ [Zend_Amf_Value_Messaging_CommandMessagep*} WZend_Amf_Value_Messaging_AsyncMessagep-| ]Zend_Amf_Value_Messaging_ArrayCollectionp0{ cZend_Amf_Value_Messaging_AcknowledgeMessagep-z ]Zend_Amf_Value_Messaging_AbstractMessagep!y EZend_Amf_Value_MessageHeaderpx AZend_Amf_Value_MessageBodypw =Zend_Amf_Value_ByteArraypv AZend_Amf_Util_BinaryStreampu +Zend_Amf_Serverpt ?Zend_Amf_Server_Exceptionps /Zend_Amf_Responsepr 9Zend_Amf_Response_Httppq -Zend_Amf_Requestpp 7Zend_Amf_Request_Httppo ?Zend_Amf_Parse_TypeLoaderpn ?Zend_Amf_Parse_Serializerp#m IZend_Amf_Parse_Resource_Streamp(l SZend_Amf_Parse_Resource_MysqlResultp)k UZend_Amf_Parse_Resource_MysqliResultp j CZend_Amf_Parse_OutputStreampi AZend_Amf_Parse_InputStreamp h CZend_Amf_Parse_Deserializerp#g IZend_Amf_Parse_Amf3_Serializerp%f MZend_Amf_Parse_Amf3_Deserializerp#e IZend_Amf_Parse_Amf0_Serializerp%d MZend_Amf_Parse_Amf0_Deserializerpc 1Zend_Amf_Exceptionpb 1Zend_Amf_Constantspa 9Zend_Amf_Auth_Abstractp ` CZend_Amf_Adobe_Introspectorp_ AZend_Amf_Adobe_DbInspectorp^ 3Zend_Amf_Adobe_Authp] Zend_Aclp\ 'Zend_Acl_Rolep[ 9Zend_Acl_Role_Registryp%Z MZend_Acl_Role_Registry_ExceptionpY /Zend_Acl_ResourcepX 1Zend_Acl_ExceptionpW /Zend_XmlRpc_ValueoV =Zend_XmlRpc_Value_StructoU =Zend_XmlRpc_Value_StringoT =Zend_XmlRpc_Value_ScalaroS 7Zend_XmlRpc_Value_NiloR ?Zend_XmlRpc_Value_Integero Q CZend_XmlRpc_Value_ExceptionoP =Zend_XmlRpc_Value_DoubleoO AZend_XmlRpc_Value_DateTimeo!N EZend_XmlRpc_Value_CollectionoM ?Zend_XmlRpc_Value_BooleanoL =Zend_XmlRpc_Value_Base64oK ;Zend_XmlRpc_Value_ArrayoJ 1Zend_XmlRpc_ServeroI ?Zend_XmlRpc_Server_SystemoH =Zend_XmlRpc_Server_Faulto!G EZend_XmlRpc_Server_ExceptionoF =Zend_XmlRpc_Server_CacheoE 5Zend_XmlRpc_ResponseoD ?Zend_XmlRpc_Response_HttpoC 3Zend_XmlRpc_RequestoB ?Zend_XmlRpc_Request_StdinoA =Zend_XmlRpc_Request_Httpo@ /Zend_XmlRpc_Faulto? 7Zend_XmlRpc_Exceptiono> 1Zend_XmlRpc_Cliento#= IZend_XmlRpc_Client_ServerProxyo+< YZend_XmlRpc_Client_ServerIntrospectiono+; YZend_XmlRpc_Client_IntrospectExceptiono%: MZend_XmlRpc_Client_HttpExceptiono&9 OZend_XmlRpc_Client_FaultExceptiono!8 EZend_XmlRpc_Client_Exceptiono&7 OZend_Wildfire_Protocol_JsonStreamo!6 EZend_Wildfire_Plugin_FirePhpo.5 _Zend_Wildfire_Plugin_FirePhp_TableMessageo   Y  nN$zQ0X0ZpB	


d
3
			r	G	jK)vS4sP-mE~X3tM#Q$i4                                % MZend_Loader_Autoloader_Interfacep0 cZend_Ldap_Node_Schema_ObjectClass_Interfacep2 gZend_Ldap_Node_Schema_AttributeType_Interfacep, [Zend_Ldap_Collection_Iterator_Interfacep3 iZend_InfoCard_Xml_Security_Transform_Interfacep( SZend_InfoCard_Xml_KeyInfo_Interfacep( SZend_InfoCard_Xml_Element_Interfacep*  WZend_InfoCard_Xml_Assertion_Interfacep- ]Zend_InfoCard_Cipher_Symmetric_Interfacep7~ qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interfacep7} qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interfacep+| YZend_InfoCard_Cipher_Pki_Rsa_Interfacep'{ QZend_InfoCard_Cipher_Pki_Interfacep$z KZend_InfoCard_Adapter_Interfacep'y QZend_Http_Client_Adapter_Interfacepx AZend_Gdata_App_MediaSourcep.w _Zend_Form_Decorator_Marker_File_Interfacep"v GZend_Form_Decorator_Interfacepu 7Zend_Filter_Interfacep"t GZend_Filter_Encrypt_Interfacep#s IZend_Feed_Reader_FeedInterfacep$r KZend_Feed_Reader_EntryInterfacep q CZend_Feed_Builder_Interfacep p CZend_Db_Statement_Interfacep)o UZend_Crypt_Math_BigInteger_Interfacep+n YZend_Controller_Router_Route_Interfacep%m MZend_Controller_Router_Interfacep)l UZend_Controller_Dispatcher_Interfacep%k MZend_Controller_Action_Interfacepj 5Zend_Captcha_Adapterp!i EZend_Cache_Backend_Interfacep)h UZend_Cache_Backend_ExtendedInterfacep g CZend_Auth_Storage_Interfacep f CZend_Auth_Adapter_Interfacep.e _Zend_Auth_Adapter_Http_Resolver_Interfacep'd QZend_Application_Resource_Resourcep4c kZend_Application_Bootstrap_ResourceBootstrapperp,b [Zend_Application_Bootstrap_Bootstrapperpa ;Zend_Acl_Role_Interfacep ` CZend_Acl_Resource_Interfacep_ ?Zend_Acl_Assert_Interfacep#^ IZend_Wildfire_Plugin_Interfaceo$] KZend_Wildfire_Channel_Interfaceo\ 3Zend_View_Interfaceo'[ QZend_View_Helper_Navigation_HelperoZ AZend_View_Helper_InterfaceoY ;Zend_Validate_Interfaceo3X iZend_Tool_Project_Profile_FileParser_Interfaceo:W wZend_Tool_Project_Context_System_TopLevelRestrictableo5V mZend_Tool_Project_Context_System_NotOverwritableo/U aZend_Tool_Project_Context_System_Interfaceo(T SZend_Tool_Project_Context_Interfaceo+S YZend_Tool_Framework_Registry_Interfaceo2R gZend_Tool_Framework_Registry_EnabledInterfaceo-Q ]Zend_Tool_Framework_Provider_Pretendableo+P YZend_Tool_Framework_Provider_Interfaceo.O _Zend_Tool_Framework_Provider_Interactableo;N yZend_Tool_Framework_Provider_DocblockManifestInterfaceo+M YZend_Tool_Framework_Metadata_Interfaceo6L oZend_Tool_Framework_Manifest_ProviderManifestableo6K oZend_Tool_Framework_Manifest_MetadataManifestableo+J YZend_Tool_Framework_Manifest_Interfaceo+I YZend_Tool_Framework_Manifest_Indexableo4H kZend_Tool_Framework_Manifest_ActionManifestableoDG 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interfaceo;F yZend_Tool_Framework_Client_Interactive_OutputInterfaceo:E wZend_Tool_Framework_Client_Interactive_InputInterfaceo)D UZend_Tool_Framework_Action_Interfaceo(C SZend_Text_Table_Decorator_InterfaceoB /Zend_Tag_Taggableo&A OZend_Soap_Wsdl_Strategy_Interfaceo%@ MZend_Session_Validator_Interfaceo'? QZend_Session_SaveHandler_Interfaceo> 7Zend_Server_Interfaceo4= kZend_Search_Lucene_Search_Highlighter_Interfaceo!< EZend_Search_Lucene_Interfaceo3; iZend_Search_Lucene_Index_TermsStream_Interfaceo: ?Zend_Pdf_Filter_Interfaceo&9 OZend_Pdf_ElementFactory_Interfaceo,8 [Zend_Paginator_ScrollingStyle_Interfaceo%7 MZend_Paginator_Adapter_Interfaceo$6 KZend_Memory_Container_Interfaceo)5 UZend_Mail_Storage_Writable_Interfaceo'4 QZend_Mail_Storage_Folder_Interfaceo3 =Zend_Mail_Part_Interfaceo 2 CZend_Mail_Message_Interfaceo!1 EZend_Log_Formatter_Interfaceo0 ?Zend_Log_Filter_Interfaceo'/ QZend_Loader_PluginLoader_Interfaceo   e  ygH(zR'cBsW<nI



\
3
				a	,	oT<(\*wCUwK)f<mFxP'  * WZend_Controller_Router_Route_Abstractp# IZend_Controller_Router_Rewritep% MZend_Controller_Router_Exceptionp$  KZend_Controller_Router_Abstractp* WZend_Controller_Response_HttpTestCasep"~ GZend_Controller_Response_Httpp'} QZend_Controller_Response_Exceptionp!| EZend_Controller_Response_Clip&{ OZend_Controller_Response_Abstractp#z IZend_Controller_Request_Simplep)y UZend_Controller_Request_HttpTestCasep!x EZend_Controller_Request_Httpp&w OZend_Controller_Request_Exceptionp&v OZend_Controller_Request_Apache404p%u MZend_Controller_Request_Abstractp&t OZend_Controller_Plugin_PutHandlerp(s SZend_Controller_Plugin_ErrorHandlerp"r GZend_Controller_Plugin_Brokerp'q QZend_Controller_Plugin_ActionStackp$p KZend_Controller_Plugin_Abstractpo 7Zend_Controller_Frontpn ?Zend_Controller_Exceptionp(m SZend_Controller_Dispatcher_Standardp)l UZend_Controller_Dispatcher_Exceptionp(k SZend_Controller_Dispatcher_Abstractpj 9Zend_Controller_Actionp(i SZend_Controller_Action_HelperBrokerp6h oZend_Controller_Action_HelperBroker_PriorityStackp/g aZend_Controller_Action_Helper_ViewRendererp&f OZend_Controller_Action_Helper_Urlp-e ]Zend_Controller_Action_Helper_Redirectorp'd QZend_Controller_Action_Helper_Jsonp1c eZend_Controller_Action_Helper_FlashMessengerp0b cZend_Controller_Action_Helper_ContextSwitchp<a {Zend_Controller_Action_Helper_AutoCompleteScriptaculousp3` iZend_Controller_Action_Helper_AutoCompleteDojop8_ sZend_Controller_Action_Helper_AutoComplete_Abstractp.^ _Zend_Controller_Action_Helper_AjaxContextp.] _Zend_Controller_Action_Helper_ActionStackp+\ YZend_Controller_Action_Helper_Abstractp%[ MZend_Controller_Action_ExceptionpZ 3Zend_Console_Getoptp"Y GZend_Console_Getopt_ExceptionpX #Zend_ConfigpW +Zend_Config_XmlpV 1Zend_Config_WriterpU 9Zend_Config_Writer_XmlpT 9Zend_Config_Writer_InipS =Zend_Config_Writer_ArraypR +Zend_Config_InipQ 7Zend_Config_Exceptionp$P KZend_CodeGenerator_Php_Propertyp1O eZend_CodeGenerator_Php_Property_DefaultValuep%N MZend_CodeGenerator_Php_Parameterp"M GZend_CodeGenerator_Php_Methodp,L [Zend_CodeGenerator_Php_Member_Containerp+K YZend_CodeGenerator_Php_Member_Abstractp J CZend_CodeGenerator_Php_Filep%I MZend_CodeGenerator_Php_Exceptionp$H KZend_CodeGenerator_Php_Docblockp(G SZend_CodeGenerator_Php_Docblock_Tagp/F aZend_CodeGenerator_Php_Docblock_Tag_Returnp.E _Zend_CodeGenerator_Php_Docblock_Tag_Paramp0D cZend_CodeGenerator_Php_Docblock_Tag_Licensep!C EZend_CodeGenerator_Php_Classp B CZend_CodeGenerator_Php_Bodyp$A KZend_CodeGenerator_Php_Abstractp!@ EZend_CodeGenerator_Exceptionp ? CZend_CodeGenerator_Abstractp> /Zend_Captcha_Wordp= 9Zend_Captcha_ReCaptchap< 1Zend_Captcha_Imagep; 3Zend_Captcha_Figletp: 9Zend_Captcha_Exceptionp9 /Zend_Captcha_Dumbp8 /Zend_Captcha_Basep7 !Zend_Cachep6 =Zend_Cache_Frontend_Pagep5 AZend_Cache_Frontend_Outputp!4 EZend_Cache_Frontend_Functionp3 =Zend_Cache_Frontend_Filep2 ?Zend_Cache_Frontend_Classp1 5Zend_Cache_Exceptionp0 +Zend_Cache_Corep/ 1Zend_Cache_Backendp". GZend_Cache_Backend_ZendServerp(- SZend_Cache_Backend_ZendServer_ShMemp', QZend_Cache_Backend_ZendServer_Diskp$+ KZend_Cache_Backend_ZendPlatformp* ?Zend_Cache_Backend_Xcachep!) EZend_Cache_Backend_TwoLevelsp( ;Zend_Cache_Backend_Testp' ?Zend_Cache_Backend_Sqlitep!& EZend_Cache_Backend_Memcachedp% ;Zend_Cache_Backend_Filep$ 9Zend_Cache_Backend_Apcp# Zend_Authp" ?Zend_Auth_Storage_Sessionp$! KZend_Auth_Storage_NonPersistentp   CZend_Auth_Storage_Exceptionp -Zend_Auth_Resultp   m  {P$t\2^<!
o]<gH#




w
W
5
					x	W	8	}R1X7v\6uXA%d4{M)Y4
X+                           +p YZend_Dojo_Form_Element_PasswordTextBoxp)o UZend_Dojo_Form_Element_NumberTextBoxp)n UZend_Dojo_Form_Element_NumberSpinnerp,m [Zend_Dojo_Form_Element_HorizontalSliderp+l YZend_Dojo_Form_Element_FilteringSelectp"k GZend_Dojo_Form_Element_Editorp&j OZend_Dojo_Form_Element_DijitMultip!i EZend_Dojo_Form_Element_Dijitp'h QZend_Dojo_Form_Element_DateTextBoxp+g YZend_Dojo_Form_Element_CurrencyTextBoxp$f KZend_Dojo_Form_Element_ComboBoxp$e KZend_Dojo_Form_Element_CheckBoxp"d GZend_Dojo_Form_Element_Buttonp c CZend_Dojo_Form_DisplayGroupp*b WZend_Dojo_Form_Decorator_TabContainerp,a [Zend_Dojo_Form_Decorator_StackContainerp,` [Zend_Dojo_Form_Decorator_SplitContainerp'_ QZend_Dojo_Form_Decorator_DijitFormp*^ WZend_Dojo_Form_Decorator_DijitElementp,] [Zend_Dojo_Form_Decorator_DijitContainerp)\ UZend_Dojo_Form_Decorator_ContentPanep-[ ]Zend_Dojo_Form_Decorator_BorderContainerp+Z YZend_Dojo_Form_Decorator_AccordionPanep0Y cZend_Dojo_Form_Decorator_AccordionContainerpX 3Zend_Dojo_ExceptionpW )Zend_Dojo_DatapV 5Zend_Dojo_BuildLayerpU !Zend_DebugpT Zend_DbpS 'Zend_Db_TablepR 5Zend_Db_Table_Selectp#Q IZend_Db_Table_Select_ExceptionpP 5Zend_Db_Table_Rowsetp#O IZend_Db_Table_Rowset_Exceptionp"N GZend_Db_Table_Rowset_AbstractpM /Zend_Db_Table_Rowp L CZend_Db_Table_Row_ExceptionpK AZend_Db_Table_Row_AbstractpJ ;Zend_Db_Table_ExceptionpI =Zend_Db_Table_DefinitionpH 9Zend_Db_Table_AbstractpG /Zend_Db_StatementpF =Zend_Db_Statement_Sqlsrvp'E QZend_Db_Statement_Sqlsrv_ExceptionpD 7Zend_Db_Statement_PdopC ?Zend_Db_Statement_Pdo_OcipB ?Zend_Db_Statement_Pdo_IbmpA =Zend_Db_Statement_Oraclep'@ QZend_Db_Statement_Oracle_Exceptionp? =Zend_Db_Statement_Mysqlip'> QZend_Db_Statement_Mysqli_Exceptionp = CZend_Db_Statement_Exceptionp< 7Zend_Db_Statement_Db2p$; KZend_Db_Statement_Db2_Exceptionp: )Zend_Db_Selectp9 =Zend_Db_Select_Exceptionp8 -Zend_Db_Profilerp7 9Zend_Db_Profiler_Queryp6 =Zend_Db_Profiler_Firebugp5 AZend_Db_Profiler_Exceptionp4 %Zend_Db_Exprp3 /Zend_Db_Exceptionp2 9Zend_Db_Adapter_Sqlsrvp%1 MZend_Db_Adapter_Sqlsrv_Exceptionp0 AZend_Db_Adapter_Pdo_Sqlitep/ ?Zend_Db_Adapter_Pdo_Pgsqlp. ;Zend_Db_Adapter_Pdo_Ocip- ?Zend_Db_Adapter_Pdo_Mysqlp, ?Zend_Db_Adapter_Pdo_Mssqlp+ ;Zend_Db_Adapter_Pdo_Ibmp * CZend_Db_Adapter_Pdo_Ibm_Idsp ) CZend_Db_Adapter_Pdo_Ibm_Db2p!( EZend_Db_Adapter_Pdo_Abstractp' 9Zend_Db_Adapter_Oraclep%& MZend_Db_Adapter_Oracle_Exceptionp% 9Zend_Db_Adapter_Mysqlip%$ MZend_Db_Adapter_Mysqli_Exceptionp# ?Zend_Db_Adapter_Exceptionp" 3Zend_Db_Adapter_Db2p"! GZend_Db_Adapter_Db2_Exceptionp  =Zend_Db_Adapter_Abstractp Zend_Datep 3Zend_Date_Exceptionp 5Zend_Date_DateObjectp -Zend_Date_Citiesp 'Zend_Currencyp ;Zend_Currency_Exceptionp !Zend_Cryptp )Zend_Crypt_Rsap 1Zend_Crypt_Rsa_Keyp ?Zend_Crypt_Rsa_Key_Publicp AZend_Crypt_Rsa_Key_Privatep +Zend_Crypt_Mathp ?Zend_Crypt_Math_Exceptionp AZend_Crypt_Math_BigIntegerp# IZend_Crypt_Math_BigInteger_Gmpp) UZend_Crypt_Math_BigInteger_Exceptionp& OZend_Crypt_Math_BigInteger_Bcmathp +Zend_Crypt_Hmacp ?Zend_Crypt_Hmac_Exceptionp 5Zend_Crypt_Exceptionp =Zend_Crypt_DiffieHellmanp'
 QZend_Crypt_DiffieHellman_Exceptionp!	 EZend_Controller_Router_Routep( SZend_Controller_Router_Route_Staticp' QZend_Controller_Router_Route_Regexp( SZend_Controller_Router_Route_Modulep* WZend_Controller_Router_Route_Hostnamep' QZend_Controller_Router_Route_Chainp   e  U-|]F%uN'{W*d5	



X
3
				\	6	aC,wV<"e>yAyHN+	vN)iQ.
                             U 3Zend_Filter_Encryptp T CZend_Filter_Encrypt_OpensslpS AZend_Filter_Encrypt_McryptpR +Zend_Filter_DirpQ 1Zend_Filter_DigitspP 3Zend_Filter_DecryptpO 5Zend_Filter_CallbackpN 5Zend_Filter_BaseNamepM /Zend_Filter_AlphapL /Zend_Filter_AlnumpK 1Zend_File_Transferp!J EZend_File_Transfer_Exceptionp$I KZend_File_Transfer_Adapter_Httpp(H SZend_File_Transfer_Adapter_AbstractpG Zend_FeedpF 'Zend_Feed_RsspE -Zend_Feed_Readerp"D GZend_Feed_Reader_FeedAbstractpC ?Zend_Feed_Reader_Feed_RsspB AZend_Feed_Reader_Feed_Atomp3A iZend_Feed_Reader_Extension_WellFormedWeb_Entryp,@ [Zend_Feed_Reader_Extension_Thread_Entryp0? cZend_Feed_Reader_Extension_Syndication_Feedp+> YZend_Feed_Reader_Extension_Slash_Entryp,= [Zend_Feed_Reader_Extension_Podcast_Feedp-< ]Zend_Feed_Reader_Extension_Podcast_Entryp,; [Zend_Feed_Reader_Extension_FeedAbstractp-: ]Zend_Feed_Reader_Extension_EntryAbstractp/9 aZend_Feed_Reader_Extension_DublinCore_Feedp08 cZend_Feed_Reader_Extension_DublinCore_Entryp47 kZend_Feed_Reader_Extension_CreativeCommons_Feedp56 mZend_Feed_Reader_Extension_CreativeCommons_Entryp-5 ]Zend_Feed_Reader_Extension_Content_Entryp)4 UZend_Feed_Reader_Extension_Atom_Feedp*3 WZend_Feed_Reader_Extension_Atom_Entryp#2 IZend_Feed_Reader_EntryAbstractp1 AZend_Feed_Reader_Entry_Rssp 0 CZend_Feed_Reader_Entry_Atomp/ 3Zend_Feed_Exceptionp. 3Zend_Feed_Entry_Rssp- 5Zend_Feed_Entry_Atomp, =Zend_Feed_Entry_Abstractp+ /Zend_Feed_Elementp* /Zend_Feed_Builderp) =Zend_Feed_Builder_Headerp$( KZend_Feed_Builder_Header_Itunesp ' CZend_Feed_Builder_Exceptionp& ;Zend_Feed_Builder_Entryp% )Zend_Feed_Atomp$ 1Zend_Feed_Abstractp# )Zend_Exceptionp" )Zend_Dom_Queryp! 7Zend_Dom_Query_Resultp  =Zend_Dom_Query_Css2Xpathp 1Zend_Dom_Exceptionp Zend_Dojop) UZend_Dojo_View_Helper_VerticalSliderp, [Zend_Dojo_View_Helper_ValidationTextBoxp& OZend_Dojo_View_Helper_TimeTextBoxp" GZend_Dojo_View_Helper_TextBoxp# IZend_Dojo_View_Helper_Textareap' QZend_Dojo_View_Helper_TabContainerp' QZend_Dojo_View_Helper_SubmitButtonp) UZend_Dojo_View_Helper_StackContainerp) UZend_Dojo_View_Helper_SplitContainerp! EZend_Dojo_View_Helper_Sliderp) UZend_Dojo_View_Helper_SimpleTextareap& OZend_Dojo_View_Helper_RadioButtonp* WZend_Dojo_View_Helper_PasswordTextBoxp( SZend_Dojo_View_Helper_NumberTextBoxp( SZend_Dojo_View_Helper_NumberSpinnerp+ YZend_Dojo_View_Helper_HorizontalSliderp AZend_Dojo_View_Helper_Formp* WZend_Dojo_View_Helper_FilteringSelectp! EZend_Dojo_View_Helper_Editorp
 AZend_Dojo_View_Helper_Dojop)	 UZend_Dojo_View_Helper_Dojo_Containerp) UZend_Dojo_View_Helper_DijitContainerp  CZend_Dojo_View_Helper_Dijitp& OZend_Dojo_View_Helper_DateTextBoxp& OZend_Dojo_View_Helper_CustomDijitp* WZend_Dojo_View_Helper_CurrencyTextBoxp& OZend_Dojo_View_Helper_ContentPanep# IZend_Dojo_View_Helper_ComboBoxp# IZend_Dojo_View_Helper_CheckBoxp!  EZend_Dojo_View_Helper_Buttonp* WZend_Dojo_View_Helper_BorderContainerp(~ SZend_Dojo_View_Helper_AccordionPanep-} ]Zend_Dojo_View_Helper_AccordionContainerp| =Zend_Dojo_View_Exceptionp{ )Zend_Dojo_Formpz 9Zend_Dojo_Form_SubFormp*y WZend_Dojo_Form_Element_VerticalSliderp-x ]Zend_Dojo_Form_Element_ValidationTextBoxp'w QZend_Dojo_Form_Element_TimeTextBoxp#v IZend_Dojo_Form_Element_TextBoxp$u KZend_Dojo_Form_Element_Textareap(t SZend_Dojo_Form_Element_SubmitButtonp"s GZend_Dojo_Form_Element_Sliderp*r WZend_Dojo_Form_Element_SimpleTextareap'q QZend_Dojo_Form_Element_RadioButtonp   j  }]:uU8l>g9ZF!




_
<
					_	;	Y:rQ1`?lZ5wV.^6qK%\2	        "? GZend_Gdata_App_Extension_Textp%> MZend_Gdata_App_Extension_Summaryp&= OZend_Gdata_App_Extension_Subtitlep$< KZend_Gdata_App_Extension_Sourcep$; KZend_Gdata_App_Extension_Rightsp': QZend_Gdata_App_Extension_Publishedp$9 KZend_Gdata_App_Extension_Personp"8 GZend_Gdata_App_Extension_Namep"7 GZend_Gdata_App_Extension_Logop"6 GZend_Gdata_App_Extension_Linkp 5 CZend_Gdata_App_Extension_Idp"4 GZend_Gdata_App_Extension_Iconp'3 QZend_Gdata_App_Extension_Generatorp#2 IZend_Gdata_App_Extension_Emailp%1 MZend_Gdata_App_Extension_Elementp$0 KZend_Gdata_App_Extension_Editedp#/ IZend_Gdata_App_Extension_Draftp%. MZend_Gdata_App_Extension_Controlp)- UZend_Gdata_App_Extension_Contributorp%, MZend_Gdata_App_Extension_Contentp&+ OZend_Gdata_App_Extension_Categoryp$* KZend_Gdata_App_Extension_Authorp) =Zend_Gdata_App_Exceptionp( 5Zend_Gdata_App_Entryp,' [Zend_Gdata_App_CaptchaRequiredExceptionp#& IZend_Gdata_App_BaseMediaSourcep% 3Zend_Gdata_App_Basep*$ WZend_Gdata_App_BadMethodCallExceptionp!# EZend_Gdata_App_AuthExceptionp" Zend_Formp! /Zend_Form_SubFormp  3Zend_Form_Exceptionp /Zend_Form_Elementp ;Zend_Form_Element_Xhtmlp AZend_Form_Element_Textareap 9Zend_Form_Element_Textp =Zend_Form_Element_Submitp =Zend_Form_Element_Selectp ;Zend_Form_Element_Resetp ;Zend_Form_Element_Radiop AZend_Form_Element_Passwordp" GZend_Form_Element_Multiselectp$ KZend_Form_Element_MultiCheckboxp ;Zend_Form_Element_Multip ;Zend_Form_Element_Imagep =Zend_Form_Element_Hiddenp 9Zend_Form_Element_Hashp 9Zend_Form_Element_Filep  CZend_Form_Element_Exceptionp AZend_Form_Element_Checkboxp ?Zend_Form_Element_Captchap =Zend_Form_Element_Buttonp 9Zend_Form_DisplayGroupp#
 IZend_Form_Decorator_ViewScriptp#	 IZend_Form_Decorator_ViewHelperp  CZend_Form_Decorator_Tooltipp( SZend_Form_Decorator_PrepareElementsp ?Zend_Form_Decorator_Labelp ?Zend_Form_Decorator_Imagep  CZend_Form_Decorator_HtmlTagp# IZend_Form_Decorator_FormErrorsp% MZend_Form_Decorator_FormElementsp =Zend_Form_Decorator_Formp  =Zend_Form_Decorator_Filep! EZend_Form_Decorator_Fieldsetp"~ GZend_Form_Decorator_Exceptionp} AZend_Form_Decorator_Errorsp$| KZend_Form_Decorator_DtDdWrapperp${ KZend_Form_Decorator_Descriptionp z CZend_Form_Decorator_Captchap%y MZend_Form_Decorator_Captcha_Wordp!x EZend_Form_Decorator_Callbackp!w EZend_Form_Decorator_Abstractpv #Zend_Filterp+u YZend_Filter_Word_UnderscoreToSeparatorp&t OZend_Filter_Word_UnderscoreToDashp+s YZend_Filter_Word_UnderscoreToCamelCasep*r WZend_Filter_Word_SeparatorToSeparatorp%q MZend_Filter_Word_SeparatorToDashp*p WZend_Filter_Word_SeparatorToCamelCasep(o SZend_Filter_Word_Separator_Abstractp&n OZend_Filter_Word_DashToUnderscorep%m MZend_Filter_Word_DashToSeparatorp%l MZend_Filter_Word_DashToCamelCasep+k YZend_Filter_Word_CamelCaseToUnderscorep*j WZend_Filter_Word_CamelCaseToSeparatorp%i MZend_Filter_Word_CamelCaseToDashph 7Zend_Filter_StripTagspg ?Zend_Filter_StripNewlinespf 9Zend_Filter_StringTrimpe ?Zend_Filter_StringToUpperpd ?Zend_Filter_StringToLowerpc 5Zend_Filter_RealPathpb ;Zend_Filter_PregReplacep&a OZend_Filter_NormalizedToLocalizedp&` OZend_Filter_LocalizedToNormalizedp_ +Zend_Filter_Intp^ /Zend_Filter_Inputp] 7Zend_Filter_Inflectorp\ =Zend_Filter_HtmlEntitiesp[ AZend_Filter_File_UpperCasepZ ;Zend_Filter_File_RenamepY AZend_Filter_File_LowerCasepX =Zend_Filter_File_EncryptpW =Zend_Filter_File_DecryptpV 7Zend_Filter_Exceptionp   _  jN'Q/iAT%vR-



n
B
				O	 i?O [+}R*~W/V0	X&{J$              $ KZend_Gdata_Extension_Visibilityp& OZend_Gdata_Extension_Transparencyp" GZend_Gdata_Extension_Reminderp- ]Zend_Gdata_Extension_RecurrenceExceptionp$ KZend_Gdata_Extension_Recurrencep  CZend_Gdata_Extension_Ratingp' QZend_Gdata_Extension_OriginalEventp0 cZend_Gdata_Extension_OpenSearchTotalResultsp. _Zend_Gdata_Extension_OpenSearchStartIndexp0 cZend_Gdata_Extension_OpenSearchItemsPerPagep" GZend_Gdata_Extension_FeedLinkp* WZend_Gdata_Extension_ExtendedPropertyp% MZend_Gdata_Extension_EventStatusp# IZend_Gdata_Extension_EntryLinkp" GZend_Gdata_Extension_Commentsp& OZend_Gdata_Extension_AttendeeTypep( SZend_Gdata_Extension_AttendeeStatusp +Zend_Gdata_Exifp 5Zend_Gdata_Exif_Feedp# IZend_Gdata_Exif_Extension_Timep#
 IZend_Gdata_Exif_Extension_Tagsp$	 KZend_Gdata_Exif_Extension_Modelp# IZend_Gdata_Exif_Extension_Makep" GZend_Gdata_Exif_Extension_Isop, [Zend_Gdata_Exif_Extension_ImageUniqueIdp$ KZend_Gdata_Exif_Extension_FStopp* WZend_Gdata_Exif_Extension_FocalLengthp$ KZend_Gdata_Exif_Extension_Flashp' QZend_Gdata_Exif_Extension_Exposurep' QZend_Gdata_Exif_Extension_Distancep  7Zend_Gdata_Exif_Entryp -Zend_Gdata_Entryp~ 7Zend_Gdata_DublinCorep*} WZend_Gdata_DublinCore_Extension_Titlep,| [Zend_Gdata_DublinCore_Extension_Subjectp+{ YZend_Gdata_DublinCore_Extension_Rightsp.z _Zend_Gdata_DublinCore_Extension_Publisherp-y ]Zend_Gdata_DublinCore_Extension_Languagep/x aZend_Gdata_DublinCore_Extension_Identifierp+w YZend_Gdata_DublinCore_Extension_Formatp0v cZend_Gdata_DublinCore_Extension_Descriptionp)u UZend_Gdata_DublinCore_Extension_Datep,t [Zend_Gdata_DublinCore_Extension_Creatorps +Zend_Gdata_Docspr 7Zend_Gdata_Docs_Queryp%q MZend_Gdata_Docs_DocumentListFeedp&p OZend_Gdata_Docs_DocumentListEntrypo 9Zend_Gdata_ClientLoginpn 3Zend_Gdata_Calendarp!m EZend_Gdata_Calendar_ListFeedp"l GZend_Gdata_Calendar_ListEntryp-k ]Zend_Gdata_Calendar_Extension_WebContentp+j YZend_Gdata_Calendar_Extension_Timezonep9i uZend_Gdata_Calendar_Extension_SendEventNotificationsp+h YZend_Gdata_Calendar_Extension_Selectedp+g YZend_Gdata_Calendar_Extension_QuickAddp'f QZend_Gdata_Calendar_Extension_Linkp)e UZend_Gdata_Calendar_Extension_Hiddenp(d SZend_Gdata_Calendar_Extension_Colorp.c _Zend_Gdata_Calendar_Extension_AccessLevelp#b IZend_Gdata_Calendar_EventQueryp"a GZend_Gdata_Calendar_EventFeedp#` IZend_Gdata_Calendar_EventEntryp_ -Zend_Gdata_Booksp!^ EZend_Gdata_Books_VolumeQueryp ] CZend_Gdata_Books_VolumeFeedp!\ EZend_Gdata_Books_VolumeEntryp+[ YZend_Gdata_Books_Extension_Viewabilityp-Z ]Zend_Gdata_Books_Extension_ThumbnailLinkp&Y OZend_Gdata_Books_Extension_Reviewp+X YZend_Gdata_Books_Extension_PreviewLinkp(W SZend_Gdata_Books_Extension_InfoLinkp-V ]Zend_Gdata_Books_Extension_Embeddabilityp)U UZend_Gdata_Books_Extension_BooksLinkp-T ]Zend_Gdata_Books_Extension_BooksCategoryp.S _Zend_Gdata_Books_Extension_AnnotationLinkp$R KZend_Gdata_Books_CollectionFeedp%Q MZend_Gdata_Books_CollectionEntrypP 1Zend_Gdata_AuthSubpO )Zend_Gdata_Appp$N KZend_Gdata_App_VersionExceptionpM 3Zend_Gdata_App_Utilp#L IZend_Gdata_App_MediaFileSourcepK ?Zend_Gdata_App_MediaEntryp2J gZend_Gdata_App_LoggingHttpClientAdapterSocketpI AZend_Gdata_App_IOExceptionp,H [Zend_Gdata_App_InvalidArgumentExceptionp!G EZend_Gdata_App_HttpExceptionp$F KZend_Gdata_App_FeedSourceParentp#E IZend_Gdata_App_FeedEntryParentpD 3Zend_Gdata_App_FeedpC =Zend_Gdata_App_Extensionp!B EZend_Gdata_App_Extension_Urip%A MZend_Gdata_App_Extension_Updatedp#@ IZend_Gdata_App_Extension_Titlep   a  }e=\=jChE,yV7




c
9
					i	>	a>])n?~`G$xQ&tCX/qD                           + YZend_Gdata_Photos_Extension_QuotaLimitp-~ ]Zend_Gdata_Photos_Extension_QuotaCurrentp)} UZend_Gdata_Photos_Extension_Positionp(| SZend_Gdata_Photos_Extension_PhotoIdp3{ iZend_Gdata_Photos_Extension_NumPhotosRemainingp*z WZend_Gdata_Photos_Extension_NumPhotosp)y UZend_Gdata_Photos_Extension_Nicknamep%x MZend_Gdata_Photos_Extension_Namep2w gZend_Gdata_Photos_Extension_MaxPhotosPerAlbump)v UZend_Gdata_Photos_Extension_Locationp#u IZend_Gdata_Photos_Extension_Idp't QZend_Gdata_Photos_Extension_Heightp2s gZend_Gdata_Photos_Extension_CommentingEnabledp-r ]Zend_Gdata_Photos_Extension_CommentCountp'q QZend_Gdata_Photos_Extension_Clientp)p UZend_Gdata_Photos_Extension_Checksump*o WZend_Gdata_Photos_Extension_BytesUsedp(n SZend_Gdata_Photos_Extension_AlbumIdp'm QZend_Gdata_Photos_Extension_Accessp#l IZend_Gdata_Photos_CommentEntryp!k EZend_Gdata_Photos_AlbumQueryp j CZend_Gdata_Photos_AlbumFeedp!i EZend_Gdata_Photos_AlbumEntryph 3Zend_Gdata_MimeFilepg ?Zend_Gdata_MimeBodyStringpf AZend_Gdata_MediaMimeStreampe -Zend_Gdata_Mediapd 7Zend_Gdata_Media_Feedp*c WZend_Gdata_Media_Extension_MediaTitlep.b _Zend_Gdata_Media_Extension_MediaThumbnailp)a UZend_Gdata_Media_Extension_MediaTextp0` cZend_Gdata_Media_Extension_MediaRestrictionp+_ YZend_Gdata_Media_Extension_MediaRatingp+^ YZend_Gdata_Media_Extension_MediaPlayerp-] ]Zend_Gdata_Media_Extension_MediaKeywordsp)\ UZend_Gdata_Media_Extension_MediaHashp*[ WZend_Gdata_Media_Extension_MediaGroupp0Z cZend_Gdata_Media_Extension_MediaDescriptionp+Y YZend_Gdata_Media_Extension_MediaCreditp.X _Zend_Gdata_Media_Extension_MediaCopyrightp,W [Zend_Gdata_Media_Extension_MediaContentp-V ]Zend_Gdata_Media_Extension_MediaCategorypU 9Zend_Gdata_Media_EntrypT AZend_Gdata_Kind_EventEntrypS 7Zend_Gdata_HttpClientp*R WZend_Gdata_HttpAdapterStreamingSocketp)Q UZend_Gdata_HttpAdapterStreamingProxypP /Zend_Gdata_HealthpO ;Zend_Gdata_Health_Queryp&N OZend_Gdata_Health_ProfileListFeedp'M QZend_Gdata_Health_ProfileListEntryp"L GZend_Gdata_Health_ProfileFeedp#K IZend_Gdata_Health_ProfileEntryp$J KZend_Gdata_Health_Extension_CcrpI )Zend_Gdata_GeopH 3Zend_Gdata_Geo_Feedp$G KZend_Gdata_Geo_Extension_GmlPosp&F OZend_Gdata_Geo_Extension_GmlPointp)E UZend_Gdata_Geo_Extension_GeoRssWherepD 5Zend_Gdata_Geo_EntrypC -Zend_Gdata_Gbasep"B GZend_Gdata_Gbase_SnippetQueryp!A EZend_Gdata_Gbase_SnippetFeedp"@ GZend_Gdata_Gbase_SnippetEntryp? 9Zend_Gdata_Gbase_Queryp> AZend_Gdata_Gbase_ItemQueryp= ?Zend_Gdata_Gbase_ItemFeedp< AZend_Gdata_Gbase_ItemEntryp; 7Zend_Gdata_Gbase_Feedp-: ]Zend_Gdata_Gbase_Extension_BaseAttributep9 9Zend_Gdata_Gbase_Entryp8 -Zend_Gdata_Gappsp7 AZend_Gdata_Gapps_UserQueryp6 ?Zend_Gdata_Gapps_UserFeedp5 AZend_Gdata_Gapps_UserEntryp&4 OZend_Gdata_Gapps_ServiceExceptionp3 9Zend_Gdata_Gapps_Queryp#2 IZend_Gdata_Gapps_NicknameQueryp"1 GZend_Gdata_Gapps_NicknameFeedp#0 IZend_Gdata_Gapps_NicknameEntryp%/ MZend_Gdata_Gapps_Extension_Quotap(. SZend_Gdata_Gapps_Extension_Nicknamep$- KZend_Gdata_Gapps_Extension_Namep%, MZend_Gdata_Gapps_Extension_Loginp)+ UZend_Gdata_Gapps_Extension_EmailListp* 9Zend_Gdata_Gapps_Errorp-) ]Zend_Gdata_Gapps_EmailListRecipientQueryp,( [Zend_Gdata_Gapps_EmailListRecipientFeedp-' ]Zend_Gdata_Gapps_EmailListRecipientEntryp$& KZend_Gdata_Gapps_EmailListQueryp#% IZend_Gdata_Gapps_EmailListFeedp$$ KZend_Gdata_Gapps_EmailListEntryp# +Zend_Gdata_Feedp" 5Zend_Gdata_Extensionp! =Zend_Gdata_Extension_Whop  AZend_Gdata_Extension_Wherep ?Zend_Gdata_Extension_Whenp   Z  |N%[6uK"h7V&




X
0
					d	9	Q"mCQ%m:V$l@fAg:  "Y GZend_Gdata_YouTube_VideoEntryp(X SZend_Gdata_YouTube_UserProfileEntryp(W SZend_Gdata_YouTube_SubscriptionFeedp)V UZend_Gdata_YouTube_SubscriptionEntryp)U UZend_Gdata_YouTube_PlaylistVideoFeedp*T WZend_Gdata_YouTube_PlaylistVideoEntryp(S SZend_Gdata_YouTube_PlaylistListFeedp)R UZend_Gdata_YouTube_PlaylistListEntryp"Q GZend_Gdata_YouTube_MediaEntryp!P EZend_Gdata_YouTube_InboxFeedp"O GZend_Gdata_YouTube_InboxEntryp)N UZend_Gdata_YouTube_Extension_VideoIdp*M WZend_Gdata_YouTube_Extension_Usernamep*L WZend_Gdata_YouTube_Extension_Uploadedp'K QZend_Gdata_YouTube_Extension_Tokenp(J SZend_Gdata_YouTube_Extension_Statusp,I [Zend_Gdata_YouTube_Extension_Statisticsp'H QZend_Gdata_YouTube_Extension_Statep(G SZend_Gdata_YouTube_Extension_Schoolp-F ]Zend_Gdata_YouTube_Extension_ReleaseDatep.E _Zend_Gdata_YouTube_Extension_Relationshipp*D WZend_Gdata_YouTube_Extension_Recordedp&C OZend_Gdata_YouTube_Extension_Racyp-B ]Zend_Gdata_YouTube_Extension_QueryStringp)A UZend_Gdata_YouTube_Extension_Privatep*@ WZend_Gdata_YouTube_Extension_Positionp/? aZend_Gdata_YouTube_Extension_PlaylistTitlep,> [Zend_Gdata_YouTube_Extension_PlaylistIdp,= [Zend_Gdata_YouTube_Extension_Occupationp)< UZend_Gdata_YouTube_Extension_NoEmbedp'; QZend_Gdata_YouTube_Extension_Musicp(: SZend_Gdata_YouTube_Extension_Moviesp-9 ]Zend_Gdata_YouTube_Extension_MediaRatingp,8 [Zend_Gdata_YouTube_Extension_MediaGroupp-7 ]Zend_Gdata_YouTube_Extension_MediaCreditp.6 _Zend_Gdata_YouTube_Extension_MediaContentp*5 WZend_Gdata_YouTube_Extension_Locationp&4 OZend_Gdata_YouTube_Extension_Linkp*3 WZend_Gdata_YouTube_Extension_LastNamep*2 WZend_Gdata_YouTube_Extension_Hometownp)1 UZend_Gdata_YouTube_Extension_Hobbiesp(0 SZend_Gdata_YouTube_Extension_Genderp+/ YZend_Gdata_YouTube_Extension_FirstNamep*. WZend_Gdata_YouTube_Extension_Durationp-- ]Zend_Gdata_YouTube_Extension_Descriptionp+, YZend_Gdata_YouTube_Extension_CountHintp)+ UZend_Gdata_YouTube_Extension_Controlp)* UZend_Gdata_YouTube_Extension_Companyp') QZend_Gdata_YouTube_Extension_Booksp%( MZend_Gdata_YouTube_Extension_Agep)' UZend_Gdata_YouTube_Extension_AboutMep#& IZend_Gdata_YouTube_ContactFeedp$% KZend_Gdata_YouTube_ContactEntryp#$ IZend_Gdata_YouTube_CommentFeedp$# KZend_Gdata_YouTube_CommentEntryp$" KZend_Gdata_YouTube_ActivityFeedp%! MZend_Gdata_YouTube_ActivityEntryp  ;Zend_Gdata_Spreadsheetsp* WZend_Gdata_Spreadsheets_WorksheetFeedp+ YZend_Gdata_Spreadsheets_WorksheetEntryp, [Zend_Gdata_Spreadsheets_SpreadsheetFeedp- ]Zend_Gdata_Spreadsheets_SpreadsheetEntryp& OZend_Gdata_Spreadsheets_ListQueryp% MZend_Gdata_Spreadsheets_ListFeedp& OZend_Gdata_Spreadsheets_ListEntryp/ aZend_Gdata_Spreadsheets_Extension_RowCountp- ]Zend_Gdata_Spreadsheets_Extension_Customp/ aZend_Gdata_Spreadsheets_Extension_ColCountp+ YZend_Gdata_Spreadsheets_Extension_Cellp* WZend_Gdata_Spreadsheets_DocumentQueryp& OZend_Gdata_Spreadsheets_CellQueryp% MZend_Gdata_Spreadsheets_CellFeedp& OZend_Gdata_Spreadsheets_CellEntryp -Zend_Gdata_Queryp /Zend_Gdata_Photosp  CZend_Gdata_Photos_UserQueryp AZend_Gdata_Photos_UserFeedp  CZend_Gdata_Photos_UserEntryp AZend_Gdata_Photos_TagEntryp!
 EZend_Gdata_Photos_PhotoQueryp 	 CZend_Gdata_Photos_PhotoFeedp! EZend_Gdata_Photos_PhotoEntryp& OZend_Gdata_Photos_Extension_Widthp' QZend_Gdata_Photos_Extension_Weightp( SZend_Gdata_Photos_Extension_Versionp% MZend_Gdata_Photos_Extension_Userp* WZend_Gdata_Photos_Extension_Timestampp* WZend_Gdata_Photos_Extension_Thumbnailp% MZend_Gdata_Photos_Extension_Sizep)  UZend_Gdata_Photos_Extension_Rotationp   j  a6lP4rE~a8xI!




W
5
			Y	,		r[<jE(~jN wT3d<zL~K$xM,                        !C EZend_Locale_Data_TranslationpB #Zend_LoaderpA =Zend_Loader_PluginLoaderp'@ QZend_Loader_PluginLoader_Exceptionp? 7Zend_Loader_Exceptionp> 9Zend_Loader_Autoloaderp$= KZend_Loader_Autoloader_Resourcep< Zend_Ldapp; )Zend_Ldap_Nodep: 7Zend_Ldap_Node_Schemap#9 IZend_Ldap_Node_Schema_OpenLdapp/8 aZend_Ldap_Node_Schema_ObjectClass_OpenLdapp67 oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectoryp6 AZend_Ldap_Node_Schema_Itemp15 eZend_Ldap_Node_Schema_AttributeType_OpenLdapp84 sZend_Ldap_Node_Schema_AttributeType_ActiveDirectoryp*3 WZend_Ldap_Node_Schema_ActiveDirectoryp2 9Zend_Ldap_Node_RootDsep$1 KZend_Ldap_Node_RootDse_OpenLdapp&0 OZend_Ldap_Node_RootDse_eDirectoryp+/ YZend_Ldap_Node_RootDse_ActiveDirectoryp. ?Zend_Ldap_Node_Collectionp$- KZend_Ldap_Node_ChildrenIteratorp, ;Zend_Ldap_Node_Abstractp+ 9Zend_Ldap_Ldif_Encoderp* -Zend_Ldap_Filterp) ;Zend_Ldap_Filter_Stringp( 3Zend_Ldap_Filter_Orp' 5Zend_Ldap_Filter_Notp& 7Zend_Ldap_Filter_Maskp% =Zend_Ldap_Filter_Logicalp$ AZend_Ldap_Filter_Exceptionp# 5Zend_Ldap_Filter_Andp" ?Zend_Ldap_Filter_Abstractp! 3Zend_Ldap_Exceptionp  %Zend_Ldap_Dnp 3Zend_Ldap_Converterp 5Zend_Ldap_Collectionp* WZend_Ldap_Collection_Iterator_Defaultp 3Zend_Ldap_Attributep #Zend_Layoutp 7Zend_Layout_Exceptionp) UZend_Layout_Controller_Plugin_Layoutp0 cZend_Layout_Controller_Action_Helper_Layoutp Zend_Jsonp -Zend_Json_Serverp 5Zend_Json_Server_Smdp! EZend_Json_Server_Smd_Servicep ?Zend_Json_Server_Responsep# IZend_Json_Server_Response_Httpp =Zend_Json_Server_Requestp" GZend_Json_Server_Request_Httpp AZend_Json_Server_Exceptionp 9Zend_Json_Server_Errorp 9Zend_Json_Server_Cachep )Zend_Json_Exprp 3Zend_Json_Exceptionp
 /Zend_Json_Encoderp	 /Zend_Json_Decoderp 'Zend_InfoCardp- ]Zend_InfoCard_Xml_SecurityTokenReferencep AZend_InfoCard_Xml_Securityp) UZend_InfoCard_Xml_Security_Transformp4 kZend_InfoCard_Xml_Security_Transform_XmlExcC14Np3 iZend_InfoCard_Xml_Security_Transform_Exceptionp< {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignaturep) UZend_InfoCard_Xml_Security_Exceptionp  ?Zend_InfoCard_Xml_KeyInfop& OZend_InfoCard_Xml_KeyInfo_XmlDSigp&~ OZend_InfoCard_Xml_KeyInfo_Defaultp'} QZend_InfoCard_Xml_KeyInfo_Abstractp | CZend_InfoCard_Xml_Exceptionp#{ IZend_InfoCard_Xml_EncryptedKeyp$z KZend_InfoCard_Xml_EncryptedDatap+y YZend_InfoCard_Xml_EncryptedData_XmlEncp-x ]Zend_InfoCard_Xml_EncryptedData_Abstractpw ?Zend_InfoCard_Xml_Elementp v CZend_InfoCard_Xml_Assertionp%u MZend_InfoCard_Xml_Assertion_Samlpt ;Zend_InfoCard_Exceptionp%s MZend_InfoCard_Exception_Abstractpr 5Zend_InfoCard_Claimspq 5Zend_InfoCard_Cipherp5p mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcp5o mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcp4n kZend_InfoCard_Cipher_Symmetric_Adapter_Abstractp)m UZend_InfoCard_Cipher_Pki_Adapter_Rsap.l _Zend_InfoCard_Cipher_Pki_Adapter_Abstractp#k IZend_InfoCard_Cipher_Exceptionp$j KZend_InfoCard_Adapter_Exceptionp"i GZend_InfoCard_Adapter_Defaultph 1Zend_Http_Responsepg 3Zend_Http_Exceptionpf 3Zend_Http_CookieJarpe -Zend_Http_Cookiepd -Zend_Http_Clientpc AZend_Http_Client_Exceptionp"b GZend_Http_Client_Adapter_Testp$a KZend_Http_Client_Adapter_Socketp#` IZend_Http_Client_Adapter_Proxyp'_ QZend_Http_Client_Adapter_Exceptionp"^ GZend_Http_Client_Adapter_Curlp] !Zend_Gdatap\ 1Zend_Gdata_YouTubep"[ GZend_Gdata_YouTube_VideoQueryp!Z EZend_Gdata_YouTube_VideoFeedp   y jQ="{\;  kZ>iI_6




p
E
+
					j	H	-	qT8^B#x\5dF(xfD"\?!gE(rN-         &< OZend_Paginator_ScrollingStyle_Allp; =Zend_Paginator_Exceptionp : CZend_Paginator_Adapter_Nullp$9 KZend_Paginator_Adapter_Iteratorp)8 UZend_Paginator_Adapter_DbTableSelectp$7 KZend_Paginator_Adapter_DbSelectp!6 EZend_Paginator_Adapter_Arrayp5 #Zend_OpenIdp4 5Zend_OpenId_Providerp3 ?Zend_OpenId_Provider_Userp&2 OZend_OpenId_Provider_User_Sessionp!1 EZend_OpenId_Provider_Storagep&0 OZend_OpenId_Provider_Storage_Filep/ 7Zend_OpenId_Extensionp. AZend_OpenId_Extension_Sregp- 7Zend_OpenId_Exceptionp, 5Zend_OpenId_Consumerp!+ EZend_OpenId_Consumer_Storagep&* OZend_OpenId_Consumer_Storage_Filep) +Zend_Navigationp( 5Zend_Navigation_Pagep' =Zend_Navigation_Page_Urip& =Zend_Navigation_Page_Mvcp% ?Zend_Navigation_Exceptionp$ ?Zend_Navigation_Containerp# Zend_Mimep" )Zend_Mime_Partp! /Zend_Mime_Messagep  3Zend_Mime_Exceptionp -Zend_Mime_Decodep #Zend_Memoryp /Zend_Memory_Valuep 3Zend_Memory_Managerp 7Zend_Memory_Exceptionp 7Zend_Memory_Containerp" GZend_Memory_Container_Movablep! EZend_Memory_Container_Lockedp! EZend_Memory_AccessControllerp 3Zend_Measure_Weightp 3Zend_Measure_Volumep% MZend_Measure_Viscosity_Kinematicp# IZend_Measure_Viscosity_Dynamicp 3Zend_Measure_Torquep /Zend_Measure_Timep =Zend_Measure_Temperaturep 1Zend_Measure_Speedp 7Zend_Measure_Pressurep 1Zend_Measure_Powerp 3Zend_Measure_Numberp 9Zend_Measure_Lightnessp
 3Zend_Measure_Lengthp	 ?Zend_Measure_Illuminationp 9Zend_Measure_Frequencyp 1Zend_Measure_Forcep =Zend_Measure_Flow_Volumep 9Zend_Measure_Flow_Molep 9Zend_Measure_Flow_Massp 9Zend_Measure_Exceptionp 3Zend_Measure_Energyp 5Zend_Measure_Densityp  5Zend_Measure_Currentp  CZend_Measure_Cooking_Weightp ~ CZend_Measure_Cooking_Volumep} =Zend_Measure_Capacitancep| 3Zend_Measure_Binaryp{ /Zend_Measure_Areapz 1Zend_Measure_Anglepy ?Zend_Measure_Accelerationpx 7Zend_Measure_Abstractpw Zend_Mailpv =Zend_Mail_Transport_Smtpp!u EZend_Mail_Transport_Sendmailp"t GZend_Mail_Transport_Exceptionp!s EZend_Mail_Transport_Abstractpr /Zend_Mail_Storagep'q QZend_Mail_Storage_Writable_Maildirpp 9Zend_Mail_Storage_Pop3po 9Zend_Mail_Storage_Mboxpn ?Zend_Mail_Storage_Maildirpm 9Zend_Mail_Storage_Imappl =Zend_Mail_Storage_Folderp"k GZend_Mail_Storage_Folder_Mboxp%j MZend_Mail_Storage_Folder_Maildirp i CZend_Mail_Storage_Exceptionph AZend_Mail_Storage_Abstractpg ;Zend_Mail_Protocol_Smtpp'f QZend_Mail_Protocol_Smtp_Auth_Plainp'e QZend_Mail_Protocol_Smtp_Auth_Loginp)d UZend_Mail_Protocol_Smtp_Auth_Crammd5pc ;Zend_Mail_Protocol_Pop3pb ;Zend_Mail_Protocol_Imapp!a EZend_Mail_Protocol_Exceptionp ` CZend_Mail_Protocol_Abstractp_ )Zend_Mail_Partp^ 3Zend_Mail_Part_Filep] /Zend_Mail_Messagep\ 9Zend_Mail_Message_Filep[ 3Zend_Mail_ExceptionpZ Zend_LogpY 9Zend_Log_Writer_SyslogpX 9Zend_Log_Writer_StreampW 5Zend_Log_Writer_NullpV 5Zend_Log_Writer_MockpU 5Zend_Log_Writer_MailpT ;Zend_Log_Writer_FirebugpS 1Zend_Log_Writer_DbpR =Zend_Log_Writer_AbstractpQ 9Zend_Log_Formatter_XmlpP ?Zend_Log_Formatter_SimplepO AZend_Log_Formatter_FirebugpN =Zend_Log_Filter_SuppresspM =Zend_Log_Filter_PrioritypL ;Zend_Log_Filter_MessagepK 1Zend_Log_ExceptionpJ #Zend_LocalepI -Zend_Locale_MathpH =Zend_Locale_Math_PhpMathpG AZend_Locale_Math_ExceptionpF 1Zend_Locale_FormatpE 7Zend_Locale_ExceptionpD -Zend_Locale_Datap   i v_BaC%|]?~b8z^C,



K
					_	B	#	Z:|\Cd> bAcC*\5{D	P                                                         9% uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldp5$ mZend_Pdf_Resource_Font_Simple_Standard_Helveticap:# wZend_Pdf_Resource_Font_Simple_Standard_CourierObliquep>" Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliquep7! qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldp3  iZend_Pdf_Resource_Font_Simple_Standard_Courierp) UZend_Pdf_Resource_Font_Simple_Parsedp2 gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypep* WZend_Pdf_Resource_Font_FontDescriptorp% MZend_Pdf_Resource_Font_Extractedp# IZend_Pdf_Resource_Font_CidFontp, [Zend_Pdf_Resource_Font_CidFont_TrueTypep3 iZend_Pdf_RecursivelyIteratableObjectsContainerp /Zend_Pdf_PhpArrayp +Zend_Pdf_Parserp 9Zend_Pdf_Parser_Streamp 'Zend_Pdf_Pagep -Zend_Pdf_Outlinep ;Zend_Pdf_Outline_Loadedp =Zend_Pdf_Outline_Createdp /Zend_Pdf_NameTreep )Zend_Pdf_Imagep 'Zend_Pdf_Fontp  CZend_Pdf_Filter_Compressionp$ KZend_Pdf_Filter_Compression_Lzwp& OZend_Pdf_Filter_Compression_Flatep =Zend_Pdf_Filter_AsciiHexp
 ;Zend_Pdf_Filter_Ascii85p"	 GZend_Pdf_FileParserDataSourcep) UZend_Pdf_FileParserDataSource_Stringp' QZend_Pdf_FileParserDataSource_Filep 3Zend_Pdf_FileParserp ?Zend_Pdf_FileParser_Imagep" GZend_Pdf_FileParser_Image_Pngp =Zend_Pdf_FileParser_Fontp& OZend_Pdf_FileParser_Font_OpenTypep/ aZend_Pdf_FileParser_Font_OpenType_TrueTypep  1Zend_Pdf_Exceptionp ;Zend_Pdf_ElementFactoryp"~ GZend_Pdf_ElementFactory_Proxyp} -Zend_Pdf_Elementp| ;Zend_Pdf_Element_Stringp#{ IZend_Pdf_Element_String_Binarypz ;Zend_Pdf_Element_Streampy AZend_Pdf_Element_Referencep%x MZend_Pdf_Element_Reference_Tablep'w QZend_Pdf_Element_Reference_Contextpv ;Zend_Pdf_Element_Objectp#u IZend_Pdf_Element_Object_Streampt =Zend_Pdf_Element_Numericps 7Zend_Pdf_Element_Nullpr 7Zend_Pdf_Element_Namep q CZend_Pdf_Element_Dictionarypp =Zend_Pdf_Element_Booleanpo 9Zend_Pdf_Element_Arraypn 5Zend_Pdf_Destinationpm ?Zend_Pdf_Destination_Zoomp!l EZend_Pdf_Destination_Unknownpk AZend_Pdf_Destination_Namedp'j QZend_Pdf_Destination_FitVerticallyp&i OZend_Pdf_Destination_FitRectanglep)h UZend_Pdf_Destination_FitHorizontallyp2g gZend_Pdf_Destination_FitBoundingBoxVerticallyp4f kZend_Pdf_Destination_FitBoundingBoxHorizontallyp(e SZend_Pdf_Destination_FitBoundingBoxpd =Zend_Pdf_Destination_Fitp"c GZend_Pdf_Destination_Explicitpb )Zend_Pdf_Colorpa 1Zend_Pdf_Color_Rgbp` 3Zend_Pdf_Color_Htmlp_ =Zend_Pdf_Color_GrayScalep^ 3Zend_Pdf_Color_Cmykp] 'Zend_Pdf_Cmapp\ AZend_Pdf_Cmap_TrimmedTablep![ EZend_Pdf_Cmap_SegmentToDeltapZ AZend_Pdf_Cmap_ByteEncodingp&Y OZend_Pdf_Cmap_ByteEncoding_StaticpX 3Zend_Pdf_AnnotationpW =Zend_Pdf_Annotation_TextpV =Zend_Pdf_Annotation_Linkp'U QZend_Pdf_Annotation_FileAttachmentpT +Zend_Pdf_ActionpS 3Zend_Pdf_Action_URIpR ;Zend_Pdf_Action_UnknownpQ 7Zend_Pdf_Action_TranspP 9Zend_Pdf_Action_ThreadpO AZend_Pdf_Action_SubmitFormpN 7Zend_Pdf_Action_Soundp M CZend_Pdf_Action_SetOCGStatepL ?Zend_Pdf_Action_ResetFormpK ?Zend_Pdf_Action_RenditionpJ 7Zend_Pdf_Action_NamedpI 7Zend_Pdf_Action_MoviepH 9Zend_Pdf_Action_LaunchpG AZend_Pdf_Action_JavaScriptpF AZend_Pdf_Action_ImportDatapE 5Zend_Pdf_Action_HidepD 7Zend_Pdf_Action_GoToRpC 7Zend_Pdf_Action_GoToEpB AZend_Pdf_Action_GoTo3DViewpA 5Zend_Pdf_Action_GoTop@ )Zend_Paginatorp*? WZend_Paginator_ScrollingStyle_Slidingp*> WZend_Paginator_ScrollingStyle_Jumpingp*= WZend_Paginator_ScrollingStyle_Elasticp   _  {EX^:gD$Y1




d
>
					n	J	#	mBoN/iP3["OY,Oe9                                  % MZend_Search_Lucene_Document_Xlsxp% MZend_Search_Lucene_Document_Pptxp( SZend_Search_Lucene_Document_OpenXmlp% MZend_Search_Lucene_Document_Htmlp*  WZend_Search_Lucene_Document_Exceptionp% MZend_Search_Lucene_Document_Docxp,~ [Zend_Search_Lucene_Analysis_TokenFilterp6} oZend_Search_Lucene_Analysis_TokenFilter_StopWordsp7| qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsp:{ wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8p6z oZend_Search_Lucene_Analysis_TokenFilter_LowerCasep&y OZend_Search_Lucene_Analysis_Tokenp)x UZend_Search_Lucene_Analysis_Analyzerp0w cZend_Search_Lucene_Analysis_Analyzer_Commonp8v sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumpIu Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitivep5t mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8pFs Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitivep8r sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumpIq Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitivep5p mZend_Search_Lucene_Analysis_Analyzer_Common_TextpFo Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitivepn 7Zend_Search_Exceptionpm -Zend_Rest_Serverpl AZend_Rest_Server_Exceptionpk +Zend_Rest_Routepj 3Zend_Rest_Exceptionpi 5Zend_Rest_Controllerph -Zend_Rest_Clientpg ;Zend_Rest_Client_Resultp&f OZend_Rest_Client_Result_Exceptionpe AZend_Rest_Client_Exceptionpd 'Zend_Registrypc =Zend_Reflection_Propertypb ?Zend_Reflection_Parameterpa 9Zend_Reflection_Methodp` =Zend_Reflection_Functionp_ 5Zend_Reflection_Filep^ ?Zend_Reflection_Extensionp] ?Zend_Reflection_Exceptionp\ =Zend_Reflection_Docblockp![ EZend_Reflection_Docblock_Tagp(Z SZend_Reflection_Docblock_Tag_Returnp'Y QZend_Reflection_Docblock_Tag_ParampX 7Zend_Reflection_ClasspW !Zend_QueuepV 9Zend_Queue_Stomp_FramepU ;Zend_Queue_Stomp_Clientp'T QZend_Queue_Stomp_Client_ConnectionpS 1Zend_Queue_Messagep#R IZend_Queue_Message_PlatformJobp Q CZend_Queue_Message_IteratorpP 5Zend_Queue_Exceptionp(O SZend_Queue_Adapter_PlatformJobQueuepN ;Zend_Queue_Adapter_Nullp!M EZend_Queue_Adapter_MemcacheqpL 7Zend_Queue_Adapter_Dbp K CZend_Queue_Adapter_Db_Queuep"J GZend_Queue_Adapter_Db_MessagepI =Zend_Queue_Adapter_Arrayp'H QZend_Queue_Adapter_AdapterAbstractp G CZend_Queue_Adapter_ActivemqpF -Zend_ProgressBarpE AZend_ProgressBar_ExceptionpD =Zend_ProgressBar_Adapterp$C KZend_ProgressBar_Adapter_JsPushp$B KZend_ProgressBar_Adapter_JsPullp'A QZend_ProgressBar_Adapter_Exceptionp%@ MZend_ProgressBar_Adapter_Consolep? Zend_Pdfp!> EZend_Pdf_UpdateInfoContainerp= -Zend_Pdf_Trailerp< ;Zend_Pdf_Trailer_Keeperp; AZend_Pdf_Trailer_Generatorp: +Zend_Pdf_Targetp9 )Zend_Pdf_Stylep8 7Zend_Pdf_StringParserp7 /Zend_Pdf_Resourcep#6 IZend_Pdf_Resource_ImageFactoryp5 ;Zend_Pdf_Resource_Imagep!4 EZend_Pdf_Resource_Image_Tiffp 3 CZend_Pdf_Resource_Image_Pngp!2 EZend_Pdf_Resource_Image_Jpegp1 9Zend_Pdf_Resource_Fontp!0 EZend_Pdf_Resource_Font_Type0p"/ GZend_Pdf_Resource_Font_Simplep+. YZend_Pdf_Resource_Font_Simple_Standardp8- sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsp6, oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanp7+ qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicp;* yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicp5) mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldp2( gZend_Pdf_Resource_Font_Simple_Standard_Symbolp<' {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliquepA& Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliquep   X  wR m/t@t6 t>


d
)				g	?	vKW"b2vCfG)pG{R'U,                         '\ QZend_Service_Amazon_Ec2_CloudWatchp.[ _Zend_Service_Amazon_Ec2_Availabilityzonesp%Z MZend_Service_Amazon_Ec2_Abstractp'Y QZend_Service_Amazon_CustomerReviewp$X KZend_Service_Amazon_Accessoriesp!W EZend_Service_Amazon_AbstractpV 5Zend_Service_AkismetpU 7Zend_Service_AbstractpT 9Zend_Server_Reflectionp'S QZend_Server_Reflection_ReturnValuep%R MZend_Server_Reflection_Prototypep%Q MZend_Server_Reflection_Parameterp P CZend_Server_Reflection_Nodep"O GZend_Server_Reflection_Methodp$N KZend_Server_Reflection_Functionp-M ]Zend_Server_Reflection_Function_Abstractp%L MZend_Server_Reflection_Exceptionp!K EZend_Server_Reflection_Classp!J EZend_Server_Method_Prototypep!I EZend_Server_Method_Parameterp"H GZend_Server_Method_Definitionp G CZend_Server_Method_CallbackpF 7Zend_Server_ExceptionpE 9Zend_Server_DefinitionpD /Zend_Server_CachepC 5Zend_Server_AbstractpB 1Zend_Search_Lucenep0A cZend_Search_Lucene_TermStreamsPriorityQueuep$@ KZend_Search_Lucene_Storage_Filep+? YZend_Search_Lucene_Storage_File_Memoryp/> aZend_Search_Lucene_Storage_File_Filesystemp)= UZend_Search_Lucene_Storage_Directoryp4< kZend_Search_Lucene_Storage_Directory_Filesystemp%; MZend_Search_Lucene_Search_Weightp*: WZend_Search_Lucene_Search_Weight_Termp,9 [Zend_Search_Lucene_Search_Weight_Phrasep/8 aZend_Search_Lucene_Search_Weight_MultiTermp+7 YZend_Search_Lucene_Search_Weight_Emptyp-6 ]Zend_Search_Lucene_Search_Weight_Booleanp)5 UZend_Search_Lucene_Search_Similarityp14 eZend_Search_Lucene_Search_Similarity_Defaultp)3 UZend_Search_Lucene_Search_QueryTokenp32 iZend_Search_Lucene_Search_QueryParserExceptionp11 eZend_Search_Lucene_Search_QueryParserContextp*0 WZend_Search_Lucene_Search_QueryParserp)/ UZend_Search_Lucene_Search_QueryLexerp'. QZend_Search_Lucene_Search_QueryHitp)- UZend_Search_Lucene_Search_QueryEntryp., _Zend_Search_Lucene_Search_QueryEntry_Termp2+ gZend_Search_Lucene_Search_QueryEntry_Subqueryp0* cZend_Search_Lucene_Search_QueryEntry_Phrasep$) KZend_Search_Lucene_Search_Queryp-( ]Zend_Search_Lucene_Search_Query_Wildcardp)' UZend_Search_Lucene_Search_Query_Termp*& WZend_Search_Lucene_Search_Query_Rangep2% gZend_Search_Lucene_Search_Query_Preprocessingp7$ qZend_Search_Lucene_Search_Query_Preprocessing_Termp9# uZend_Search_Lucene_Search_Query_Preprocessing_Phrasep8" sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzyp+! YZend_Search_Lucene_Search_Query_Phrasep.  _Zend_Search_Lucene_Search_Query_MultiTermp2 gZend_Search_Lucene_Search_Query_Insignificantp* WZend_Search_Lucene_Search_Query_Fuzzyp* WZend_Search_Lucene_Search_Query_Emptyp, [Zend_Search_Lucene_Search_Query_Booleanp2 gZend_Search_Lucene_Search_Highlighter_Defaultp: wZend_Search_Lucene_Search_BooleanExpressionRecognizerp =Zend_Search_Lucene_Proxyp% MZend_Search_Lucene_PriorityQueuep/ aZend_Search_Lucene_Interface_MultiSearcherp# IZend_Search_Lucene_LockManagerp$ KZend_Search_Lucene_Index_Writerp0 cZend_Search_Lucene_Index_TermsPriorityQueuep& OZend_Search_Lucene_Index_TermInfop" GZend_Search_Lucene_Index_Termp+ YZend_Search_Lucene_Index_SegmentWriterp8 sZend_Search_Lucene_Index_SegmentWriter_StreamWriterp: wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterp+ YZend_Search_Lucene_Index_SegmentMergerp) UZend_Search_Lucene_Index_SegmentInfop' QZend_Search_Lucene_Index_FieldInfop( SZend_Search_Lucene_Index_DocsFilterp.
 _Zend_Search_Lucene_Index_DictionaryLoaderp!	 EZend_Search_Lucene_FSMActionp 9Zend_Search_Lucene_FSMp =Zend_Search_Lucene_Fieldp! EZend_Search_Lucene_Exceptionp  CZend_Search_Lucene_Documentp   b  b0^/zP.	rS(uQ)




|
V
:
				s	J	dA!m?c9|\5wBk>^8hA                                (> SZend_Service_Yahoo_InlinkDataResultp&= OZend_Service_Yahoo_ImageResultSetp#< IZend_Service_Yahoo_ImageResultp; =Zend_Service_Yahoo_Imagep: 5Zend_Service_Twitterp 9 CZend_Service_Twitter_Searchp#8 IZend_Service_Twitter_Exceptionp7 ;Zend_Service_Technoratip#6 IZend_Service_Technorati_Weblogp"5 GZend_Service_Technorati_Utilsp*4 WZend_Service_Technorati_TagsResultSetp'3 QZend_Service_Technorati_TagsResultp)2 UZend_Service_Technorati_TagResultSetp&1 OZend_Service_Technorati_TagResultp,0 [Zend_Service_Technorati_SearchResultSetp)/ UZend_Service_Technorati_SearchResultp&. OZend_Service_Technorati_ResultSetp#- IZend_Service_Technorati_Resultp*, WZend_Service_Technorati_KeyInfoResultp*+ WZend_Service_Technorati_GetInfoResultp&* OZend_Service_Technorati_Exceptionp1) eZend_Service_Technorati_DailyCountsResultSetp.( _Zend_Service_Technorati_DailyCountsResultp,' [Zend_Service_Technorati_CosmosResultSetp)& UZend_Service_Technorati_CosmosResultp+% YZend_Service_Technorati_BlogInfoResultp#$ IZend_Service_Technorati_Authorp# ;Zend_Service_StrikeIronp(" SZend_Service_StrikeIron_ZipCodeInfop2! gZend_Service_StrikeIron_USAddressVerificationp-  ]Zend_Service_StrikeIron_SalesUseTaxBasicp& OZend_Service_StrikeIron_Exceptionp& OZend_Service_StrikeIron_Decoratorp! EZend_Service_StrikeIron_Basep ;Zend_Service_SlideSharep& OZend_Service_SlideShare_SlideShowp& OZend_Service_SlideShare_Exceptionp 1Zend_Service_Simpyp$ KZend_Service_Simpy_WatchlistSetp* WZend_Service_Simpy_WatchlistFilterSetp' QZend_Service_Simpy_WatchlistFilterp! EZend_Service_Simpy_Watchlistp ?Zend_Service_Simpy_TagSetp 9Zend_Service_Simpy_Tagp AZend_Service_Simpy_NoteSetp ;Zend_Service_Simpy_Notep AZend_Service_Simpy_LinkSetp! EZend_Service_Simpy_LinkQueryp ;Zend_Service_Simpy_Linkp 9Zend_Service_ReCaptchap$ KZend_Service_ReCaptcha_Responsep$ KZend_Service_ReCaptcha_MailHidep.
 _Zend_Service_ReCaptcha_MailHide_Exceptionp%	 MZend_Service_ReCaptcha_Exceptionp 7Zend_Service_Nirvanixp# IZend_Service_Nirvanix_Responsep) UZend_Service_Nirvanix_Namespace_Imfsp) UZend_Service_Nirvanix_Namespace_Basep$ KZend_Service_Nirvanix_Exceptionp 3Zend_Service_Flickrp" GZend_Service_Flickr_ResultSetp AZend_Service_Flickr_Resultp  ?Zend_Service_Flickr_Imagep 9Zend_Service_Exceptionp~ 9Zend_Service_Deliciousp&} OZend_Service_Delicious_SimplePostp$| KZend_Service_Delicious_PostListp { CZend_Service_Delicious_Postp%z MZend_Service_Delicious_Exceptionp y CZend_Service_Audioscrobblerpx 3Zend_Service_Amazonpw ;Zend_Service_Amazon_Sqsp&v OZend_Service_Amazon_Sqs_Exceptionp'u QZend_Service_Amazon_SimilarProductpt 9Zend_Service_Amazon_S3p"s GZend_Service_Amazon_S3_Streamp%r MZend_Service_Amazon_S3_Exceptionp"q GZend_Service_Amazon_ResultSetpp ?Zend_Service_Amazon_Queryp!o EZend_Service_Amazon_OfferSetpn ?Zend_Service_Amazon_Offerp&m OZend_Service_Amazon_ListmaniaListpl =Zend_Service_Amazon_Itempk ?Zend_Service_Amazon_Imagep"j GZend_Service_Amazon_Exceptionp(i SZend_Service_Amazon_EditorialReviewph ;Zend_Service_Amazon_Ec2p+g YZend_Service_Amazon_Ec2_Securitygroupsp%f MZend_Service_Amazon_Ec2_Responsep#e IZend_Service_Amazon_Ec2_Regionp$d KZend_Service_Amazon_Ec2_Keypairp%c MZend_Service_Amazon_Ec2_Instancep-b ]Zend_Service_Amazon_Ec2_Instance_Windowsp.a _Zend_Service_Amazon_Ec2_Instance_Reservedp"` GZend_Service_Amazon_Ec2_Imagep&_ OZend_Service_Amazon_Ec2_Exceptionp&^ OZend_Service_Amazon_Ec2_Elasticipp ] CZend_Service_Amazon_Ec2_Ebsp   b  Z1lB~U*xX8W/



k
T
-
				h	Q	6	 	oA_2uGrO6kS3tFLp4                                            9  uZend_Tool_Framework_Client_Interactive_InputResponsep8 sZend_Tool_Framework_Client_Interactive_InputRequestp8 sZend_Tool_Framework_Client_Interactive_InputHandlerp) UZend_Tool_Framework_Client_Exceptionp' QZend_Tool_Framework_Client_ConsolepD 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizerp0 cZend_Tool_Framework_Client_Console_Manifestp2 gZend_Tool_Framework_Client_Console_HelpSystemp6 oZend_Tool_Framework_Client_Console_ArgumentParserp& OZend_Tool_Framework_Client_Configp( SZend_Tool_Framework_Client_Abstractp* WZend_Tool_Framework_Action_Repositoryp) UZend_Tool_Framework_Action_Exceptionp$ KZend_Tool_Framework_Action_Basep 'Zend_TimeSyncp 1Zend_TimeSync_Sntpp 9Zend_TimeSync_Protocolp /Zend_TimeSync_Ntpp ;Zend_TimeSync_Exceptionp +Zend_Text_Tablep 3Zend_Text_Table_Rowp ?Zend_Text_Table_Exceptionp&
 OZend_Text_Table_Decorator_Unicodep$	 KZend_Text_Table_Decorator_Asciip 9Zend_Text_Table_Columnp 3Zend_Text_MultiBytep -Zend_Text_Figletp AZend_Text_Figlet_Exceptionp 3Zend_Text_Exceptionp& OZend_Test_PHPUnit_Db_SimpleTesterp, [Zend_Test_PHPUnit_Db_Operation_Truncatep* WZend_Test_PHPUnit_Db_Operation_Insertp-  ]Zend_Test_PHPUnit_Db_Operation_DeleteAllp* WZend_Test_PHPUnit_Db_Metadata_Genericp#~ IZend_Test_PHPUnit_Db_Exceptionp,} [Zend_Test_PHPUnit_Db_DataSet_QueryTablep.| _Zend_Test_PHPUnit_Db_DataSet_QueryDataSetp0{ cZend_Test_PHPUnit_Db_DataSet_DbTableDataSetp)z UZend_Test_PHPUnit_Db_DataSet_DbTablep*y WZend_Test_PHPUnit_Db_DataSet_DbRowsetp$x KZend_Test_PHPUnit_Db_Connectionp'w QZend_Test_PHPUnit_DatabaseTestCasep)v UZend_Test_PHPUnit_ControllerTestCasep0u cZend_Test_PHPUnit_Constraint_ResponseHeaderp*t WZend_Test_PHPUnit_Constraint_Redirectp+s YZend_Test_PHPUnit_Constraint_Exceptionp*r WZend_Test_PHPUnit_Constraint_DomQuerypq 7Zend_Test_DbStatementpp 3Zend_Test_DbAdapterpo /Zend_Tag_ItemListpn 'Zend_Tag_Itempm 1Zend_Tag_Exceptionpl )Zend_Tag_Cloudpk =Zend_Tag_Cloud_Exceptionp!j EZend_Tag_Cloud_Decorator_Tagp%i MZend_Tag_Cloud_Decorator_HtmlTagp'h QZend_Tag_Cloud_Decorator_HtmlCloudp'g QZend_Tag_Cloud_Decorator_Exceptionp#f IZend_Tag_Cloud_Decorator_Cloudpe )Zend_Soap_Wsdlp/d aZend_Soap_Wsdl_Strategy_DefaultComplexTypep&c OZend_Soap_Wsdl_Strategy_Compositep0b cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequencep/a aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplexp$` KZend_Soap_Wsdl_Strategy_AnyTypep%_ MZend_Soap_Wsdl_Strategy_Abstractp^ =Zend_Soap_Wsdl_Exceptionp] -Zend_Soap_Serverp\ AZend_Soap_Server_Exceptionp[ -Zend_Soap_ClientpZ 9Zend_Soap_Client_LocalpY AZend_Soap_Client_ExceptionpX ;Zend_Soap_Client_DotNetpW ;Zend_Soap_Client_CommonpV 9Zend_Soap_AutoDiscoverp%U MZend_Soap_AutoDiscover_ExceptionpT %Zend_Sessionp)S UZend_Session_Validator_HttpUserAgentp$R KZend_Session_Validator_Abstractp'Q QZend_Session_SaveHandler_Exceptionp%P MZend_Session_SaveHandler_DbTablepO 9Zend_Session_NamespacepN 9Zend_Session_ExceptionpM 7Zend_Session_AbstractpL 1Zend_Service_Yahoop$K KZend_Service_Yahoo_WebResultSetp!J EZend_Service_Yahoo_WebResultp&I OZend_Service_Yahoo_VideoResultSetp#H IZend_Service_Yahoo_VideoResultp!G EZend_Service_Yahoo_ResultSetpF ?Zend_Service_Yahoo_Resultp)E UZend_Service_Yahoo_PageDataResultSetp&D OZend_Service_Yahoo_PageDataResultp%C MZend_Service_Yahoo_NewsResultSetp"B GZend_Service_Yahoo_NewsResultp&A OZend_Service_Yahoo_LocalResultSetp#@ IZend_Service_Yahoo_LocalResultp+? YZend_Service_Yahoo_InlinkDataResultSetp   J  a,a,uK`;
xD


i
=
			q	7RvFo9t>p;b'v:@                                    :j wZend_Tool_Project_Context_Zf_TestApplicationDirectoryp@i Zend_Tool_Project_Context_Zf_TestApplicationControllerFilepEh Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectoryp>g Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFilep4f kZend_Tool_Project_Context_Zf_TemporaryDirectoryp3e iZend_Tool_Project_Context_Zf_SessionsDirectoryp8d sZend_Tool_Project_Context_Zf_SearchIndexesDirectoryp<c {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectoryp8b sZend_Tool_Project_Context_Zf_PublicScriptsDirectoryp1a eZend_Tool_Project_Context_Zf_PublicIndexFilep7` qZend_Tool_Project_Context_Zf_PublicImagesDirectoryp1_ eZend_Tool_Project_Context_Zf_PublicDirectoryp5^ mZend_Tool_Project_Context_Zf_ProjectProviderFilep2] gZend_Tool_Project_Context_Zf_ModulesDirectoryp1\ eZend_Tool_Project_Context_Zf_ModuleDirectoryp1[ eZend_Tool_Project_Context_Zf_ModelsDirectoryp+Z YZend_Tool_Project_Context_Zf_ModelFilep/Y aZend_Tool_Project_Context_Zf_LogsDirectoryp2X gZend_Tool_Project_Context_Zf_LocalesDirectoryp2W gZend_Tool_Project_Context_Zf_LibraryDirectoryp2V gZend_Tool_Project_Context_Zf_LayoutsDirectoryp.U _Zend_Tool_Project_Context_Zf_HtaccessFilep0T cZend_Tool_Project_Context_Zf_FormsDirectoryp*S WZend_Tool_Project_Context_Zf_FormFilep-R ]Zend_Tool_Project_Context_Zf_DbTableFilep2Q gZend_Tool_Project_Context_Zf_DbTableDirectoryp/P aZend_Tool_Project_Context_Zf_DataDirectoryp6O oZend_Tool_Project_Context_Zf_ControllersDirectoryp0N cZend_Tool_Project_Context_Zf_ControllerFilep2M gZend_Tool_Project_Context_Zf_ConfigsDirectoryp,L [Zend_Tool_Project_Context_Zf_ConfigFilep0K cZend_Tool_Project_Context_Zf_CacheDirectoryp/J aZend_Tool_Project_Context_Zf_BootstrapFilep6I oZend_Tool_Project_Context_Zf_ApplicationDirectoryp7H qZend_Tool_Project_Context_Zf_ApplicationConfigFilep/G aZend_Tool_Project_Context_Zf_ApisDirectoryp.F _Zend_Tool_Project_Context_Zf_ActionMethodp@E Zend_Tool_Project_Context_System_ProjectProvidersDirectoryp8D sZend_Tool_Project_Context_System_ProjectProfileFilep6C oZend_Tool_Project_Context_System_ProjectDirectoryp)B UZend_Tool_Project_Context_Repositoryp.A _Zend_Tool_Project_Context_Filesystem_Filep3@ iZend_Tool_Project_Context_Filesystem_Directoryp2? gZend_Tool_Project_Context_Filesystem_Abstractp(> SZend_Tool_Project_Context_Exceptionp-= ]Zend_Tool_Project_Context_Content_Enginep3< iZend_Tool_Project_Context_Content_Engine_Phtmlp;; yZend_Tool_Project_Context_Content_Engine_CodeGeneratorp0: cZend_Tool_Framework_System_Provider_Versionp09 cZend_Tool_Framework_System_Provider_Phpinfop18 eZend_Tool_Framework_System_Provider_Manifestp(7 SZend_Tool_Framework_System_Manifestp-6 ]Zend_Tool_Framework_System_Action_Deletep-5 ]Zend_Tool_Framework_System_Action_Createp!4 EZend_Tool_Framework_Registryp+3 YZend_Tool_Framework_Registry_Exceptionp+2 YZend_Tool_Framework_Provider_Signaturep,1 [Zend_Tool_Framework_Provider_Repositoryp+0 YZend_Tool_Framework_Provider_Exceptionp*/ WZend_Tool_Framework_Provider_Abstractp&. OZend_Tool_Framework_Metadata_Toolp)- UZend_Tool_Framework_Metadata_Dynamicp', QZend_Tool_Framework_Metadata_Basicp,+ [Zend_Tool_Framework_Manifest_Repositoryp+* YZend_Tool_Framework_Manifest_Exceptionp1) eZend_Tool_Framework_Loader_IncludePathLoaderpJ( Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIteratorp(' SZend_Tool_Framework_Loader_Abstractp"& GZend_Tool_Framework_Exceptionp'% QZend_Tool_Framework_Client_Storagep1$ eZend_Tool_Framework_Client_Storage_Directoryp(# SZend_Tool_Framework_Client_ResponsepD" 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separatorp'! QZend_Tool_Framework_Client_Requestp   c  Sj%}CNb7



d
<
				g	4	uR0`B+nK-hK(oM(sT0hF,bC'            "M GZend_Validate_Sitemap_Lastmodp%L MZend_Validate_Sitemap_ChangefreqpK 3Zend_Validate_RegexpJ 9Zend_Validate_NotEmptypI 9Zend_Validate_LessThanpH -Zend_Validate_IppG /Zend_Validate_IntpF 7Zend_Validate_InArraypE ;Zend_Validate_IdenticalpD 1Zend_Validate_IbanpC 9Zend_Validate_HostnamepB /Zend_Validate_HexpA ?Zend_Validate_GreaterThanp@ 3Zend_Validate_Floatp!? EZend_Validate_File_WordCountp> ?Zend_Validate_File_Uploadp= ;Zend_Validate_File_Sizep< ;Zend_Validate_File_Sha1p!; EZend_Validate_File_NotExistsp : CZend_Validate_File_MimeTypep9 9Zend_Validate_File_Md5p8 AZend_Validate_File_IsImagep$7 KZend_Validate_File_IsCompressedp!6 EZend_Validate_File_ImageSizep5 ;Zend_Validate_File_Hashp!4 EZend_Validate_File_FilesSizep!3 EZend_Validate_File_Extensionp2 ?Zend_Validate_File_Existsp'1 QZend_Validate_File_ExcludeMimeTypep(0 SZend_Validate_File_ExcludeExtensionp/ =Zend_Validate_File_Crc32p. =Zend_Validate_File_Countp- ;Zend_Validate_Exceptionp, AZend_Validate_EmailAddressp+ 5Zend_Validate_Digitsp"* GZend_Validate_Db_RecordExistsp$) KZend_Validate_Db_NoRecordExistsp( ?Zend_Validate_Db_Abstractp' 1Zend_Validate_Datep& 3Zend_Validate_Ccnump% 7Zend_Validate_Betweenp$ 7Zend_Validate_Barcodep# AZend_Validate_Barcode_UpcAp " CZend_Validate_Barcode_Ean13p! 3Zend_Validate_Alphap  3Zend_Validate_Alnump 9Zend_Validate_Abstractp Zend_Urip 'Zend_Uri_Httpp 1Zend_Uri_Exceptionp )Zend_Translatep 7Zend_Translate_Pluralp =Zend_Translate_Exceptionp 9Zend_Translate_Adapterp! EZend_Translate_Adapter_XmlTmp! EZend_Translate_Adapter_Xliffp AZend_Translate_Adapter_Tmxp AZend_Translate_Adapter_Tbxp ?Zend_Translate_Adapter_Qtp AZend_Translate_Adapter_Inip# IZend_Translate_Adapter_Gettextp AZend_Translate_Adapter_Csvp! EZend_Translate_Adapter_Arrayp$ KZend_Tool_Project_Provider_Viewp$ KZend_Tool_Project_Provider_Testp/ aZend_Tool_Project_Provider_ProjectProviderp' QZend_Tool_Project_Provider_Projectp'
 QZend_Tool_Project_Provider_Profilep&	 OZend_Tool_Project_Provider_Modulep% MZend_Tool_Project_Provider_Modelp( SZend_Tool_Project_Provider_Manifestp$ KZend_Tool_Project_Provider_Formp) UZend_Tool_Project_Provider_Exceptionp* WZend_Tool_Project_Provider_Controllerp& OZend_Tool_Project_Provider_Actionp( SZend_Tool_Project_Provider_Abstractp ?Zend_Tool_Project_Profilep'  QZend_Tool_Project_Profile_Resourcep9 uZend_Tool_Project_Profile_Resource_SearchConstraintsp1~ eZend_Tool_Project_Profile_Resource_Containerp=} }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilterp5| mZend_Tool_Project_Profile_Iterator_ContextFilterp-{ ]Zend_Tool_Project_Profile_FileParser_Xmlp(z SZend_Tool_Project_Profile_Exceptionp y CZend_Tool_Project_Exceptionp<x {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectoryp0w cZend_Tool_Project_Context_Zf_ViewsDirectoryp6v oZend_Tool_Project_Context_Zf_ViewScriptsDirectoryp0u cZend_Tool_Project_Context_Zf_ViewScriptFilep6t oZend_Tool_Project_Context_Zf_ViewHelpersDirectoryp6s oZend_Tool_Project_Context_Zf_ViewFiltersDirectorypAr Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectoryp2q gZend_Tool_Project_Context_Zf_UploadsDirectoryp0p cZend_Tool_Project_Context_Zf_TestsDirectoryp7o qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFilep@n Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectoryp1m eZend_Tool_Project_Context_Zf_TestLibraryFilep6l oZend_Tool_Project_Context_Zf_TestLibraryDirectoryp:k wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFilep   k  ~iN2jH*uQ.uR.
~Z7




d
=
				v	L	#}\7]%_B)nIxI"pN1mL*{]<    8 /Zend_XmlRpc_Valuep7 =Zend_XmlRpc_Value_Structp6 =Zend_XmlRpc_Value_Stringp5 =Zend_XmlRpc_Value_Scalarp4 7Zend_XmlRpc_Value_Nilp3 ?Zend_XmlRpc_Value_Integerp 2 CZend_XmlRpc_Value_Exceptionp1 =Zend_XmlRpc_Value_Doublep0 AZend_XmlRpc_Value_DateTimep!/ EZend_XmlRpc_Value_Collectionp. ?Zend_XmlRpc_Value_Booleanp- =Zend_XmlRpc_Value_Base64p, ;Zend_XmlRpc_Value_Arrayp+ 1Zend_XmlRpc_Serverp* ?Zend_XmlRpc_Server_Systemp) =Zend_XmlRpc_Server_Faultp!( EZend_XmlRpc_Server_Exceptionp' =Zend_XmlRpc_Server_Cachep& 5Zend_XmlRpc_Responsep% ?Zend_XmlRpc_Response_Httpp$ 3Zend_XmlRpc_Requestp# ?Zend_XmlRpc_Request_Stdinp" =Zend_XmlRpc_Request_Httpp! /Zend_XmlRpc_Faultp  7Zend_XmlRpc_Exceptionp 1Zend_XmlRpc_Clientp# IZend_XmlRpc_Client_ServerProxyp+ YZend_XmlRpc_Client_ServerIntrospectionp+ YZend_XmlRpc_Client_IntrospectExceptionp% MZend_XmlRpc_Client_HttpExceptionp& OZend_XmlRpc_Client_FaultExceptionp! EZend_XmlRpc_Client_Exceptionp& OZend_Wildfire_Protocol_JsonStreamp! EZend_Wildfire_Plugin_FirePhpp. _Zend_Wildfire_Plugin_FirePhp_TableMessagep) UZend_Wildfire_Plugin_FirePhp_Messagep ;Zend_Wildfire_Exceptionp& OZend_Wildfire_Channel_HttpHeadersp Zend_Viewp -Zend_View_Streamp 5Zend_View_Helper_Urlp AZend_View_Helper_Translatep AZend_View_Helper_ServerUrlp) UZend_View_Helper_RenderToPlaceholderp! EZend_View_Helper_Placeholderp* WZend_View_Helper_Placeholder_Registryp4
 kZend_View_Helper_Placeholder_Registry_Exceptionp+	 YZend_View_Helper_Placeholder_Containerp6 oZend_View_Helper_Placeholder_Container_Standalonep5 mZend_View_Helper_Placeholder_Container_Exceptionp4 kZend_View_Helper_Placeholder_Container_Abstractp! EZend_View_Helper_PartialLoopp =Zend_View_Helper_Partialp' QZend_View_Helper_Partial_Exceptionp' QZend_View_Helper_PaginationControlp  CZend_View_Helper_Navigationp(  SZend_View_Helper_Navigation_Sitemapp% MZend_View_Helper_Navigation_Menup&~ OZend_View_Helper_Navigation_Linksp/} aZend_View_Helper_Navigation_HelperAbstractp,| [Zend_View_Helper_Navigation_Breadcrumbsp{ ;Zend_View_Helper_Layoutpz 7Zend_View_Helper_Jsonp"y GZend_View_Helper_InlineScriptp#x IZend_View_Helper_HtmlQuicktimepw ?Zend_View_Helper_HtmlPagep v CZend_View_Helper_HtmlObjectpu ?Zend_View_Helper_HtmlListpt AZend_View_Helper_HtmlFlashp!s EZend_View_Helper_HtmlElementpr AZend_View_Helper_HeadTitlepq AZend_View_Helper_HeadStylep p CZend_View_Helper_HeadScriptpo ?Zend_View_Helper_HeadMetapn ?Zend_View_Helper_HeadLinkp"m GZend_View_Helper_FormTextareapl ?Zend_View_Helper_FormTextp k CZend_View_Helper_FormSubmitp j CZend_View_Helper_FormSelectpi AZend_View_Helper_FormResetph AZend_View_Helper_FormRadiop"g GZend_View_Helper_FormPasswordpf ?Zend_View_Helper_FormNotep'e QZend_View_Helper_FormMultiCheckboxpd AZend_View_Helper_FormLabelpc AZend_View_Helper_FormImagep b CZend_View_Helper_FormHiddenpa ?Zend_View_Helper_FormFilep ` CZend_View_Helper_FormErrorsp!_ EZend_View_Helper_FormElementp"^ GZend_View_Helper_FormCheckboxp ] CZend_View_Helper_FormButtonp\ 7Zend_View_Helper_Formp[ ?Zend_View_Helper_FieldsetpZ =Zend_View_Helper_Doctypep!Y EZend_View_Helper_DeclareVarspX 9Zend_View_Helper_CyclepW =Zend_View_Helper_BaseUrlpV ;Zend_View_Helper_ActionpU ?Zend_View_Helper_AbstractpT 3Zend_View_ExceptionpS 1Zend_View_AbstractpR %Zend_VersionpQ 'Zend_ValidatepP AZend_Validate_StringLengthp#O IZend_Validate_Sitemap_PrioritypN ?Zend_Validate_Sitemap_Locp   Y  nN$zQ0uQi>P



I
			s	E	Ui?$tEmAW+qT/a3b7                             3` iZend_InfoCard_Xml_Security_Transform_Interfaceq(_ SZend_InfoCard_Xml_KeyInfo_Interfaceq(^ SZend_InfoCard_Xml_Element_Interfaceq*] WZend_InfoCard_Xml_Assertion_Interfaceq-\ ]Zend_InfoCard_Cipher_Symmetric_Interfaceq7[ qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interfaceq7Z qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interfaceq+Y YZend_InfoCard_Cipher_Pki_Rsa_Interfaceq'X QZend_InfoCard_Cipher_Pki_Interfaceq$W KZend_InfoCard_Adapter_Interfaceq'V QZend_Http_Client_Adapter_InterfaceqU AZend_Gdata_App_MediaSourceq.T _Zend_Form_Decorator_Marker_File_Interfaceq"S GZend_Form_Decorator_InterfaceqR 7Zend_Filter_Interfaceq"Q GZend_Filter_Encrypt_Interfaceq$P KZend_Feed_Reader_Feed_Interfaceq%O MZend_Feed_Reader_Entry_Interfaceq N CZend_Feed_Builder_Interfaceq M CZend_Db_Statement_Interfaceq)L UZend_Crypt_Math_BigInteger_Interfaceq+K YZend_Controller_Router_Route_Interfaceq%J MZend_Controller_Router_Interfaceq)I UZend_Controller_Dispatcher_Interfaceq%H MZend_Controller_Action_InterfaceqG 5Zend_Captcha_Adapterq!F EZend_Cache_Backend_Interfaceq)E UZend_Cache_Backend_ExtendedInterfaceq D CZend_Auth_Storage_Interfaceq C CZend_Auth_Adapter_Interfaceq.B _Zend_Auth_Adapter_Http_Resolver_Interfaceq'A QZend_Application_Resource_Resourceq4@ kZend_Application_Bootstrap_ResourceBootstrapperq,? [Zend_Application_Bootstrap_Bootstrapperq> ;Zend_Acl_Role_Interfaceq = CZend_Acl_Resource_Interfaceq< ?Zend_Acl_Assert_Interfaceq#; IZend_Wildfire_Plugin_Interfacep$: KZend_Wildfire_Channel_Interfacep9 3Zend_View_Interfacep'8 QZend_View_Helper_Navigation_Helperp7 AZend_View_Helper_Interfacep6 ;Zend_Validate_Interfacep35 iZend_Tool_Project_Profile_FileParser_Interfacep:4 wZend_Tool_Project_Context_System_TopLevelRestrictablep53 mZend_Tool_Project_Context_System_NotOverwritablep/2 aZend_Tool_Project_Context_System_Interfacep(1 SZend_Tool_Project_Context_Interfacep+0 YZend_Tool_Framework_Registry_Interfacep2/ gZend_Tool_Framework_Registry_EnabledInterfacep-. ]Zend_Tool_Framework_Provider_Pretendablep+- YZend_Tool_Framework_Provider_Interfacep., _Zend_Tool_Framework_Provider_Interactablep;+ yZend_Tool_Framework_Provider_DocblockManifestInterfacep+* YZend_Tool_Framework_Metadata_Interfacep6) oZend_Tool_Framework_Manifest_ProviderManifestablep6( oZend_Tool_Framework_Manifest_MetadataManifestablep+' YZend_Tool_Framework_Manifest_Interfacep+& YZend_Tool_Framework_Manifest_Indexablep4% kZend_Tool_Framework_Manifest_ActionManifestablep8$ sZend_Tool_Framework_Client_Storage_AdapterInterfacepD# 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interfacep;" yZend_Tool_Framework_Client_Interactive_OutputInterfacep:! wZend_Tool_Framework_Client_Interactive_InputInterfacep)  UZend_Tool_Framework_Action_Interfacep( SZend_Text_Table_Decorator_Interfacep /Zend_Tag_Taggablep& OZend_Soap_Wsdl_Strategy_Interfacep% MZend_Session_Validator_Interfacep' QZend_Session_SaveHandler_Interfacep 7Zend_Server_Interfacep4 kZend_Search_Lucene_Search_Highlighter_Interfacep! EZend_Search_Lucene_Interfacep3 iZend_Search_Lucene_Index_TermsStream_Interfacep$ KZend_Queue_Stomp_FrameInterfacep0 cZend_Queue_Stomp_Client_ConnectionInterfacep( SZend_Queue_Adapter_AdapterInterfacep ?Zend_Pdf_Filter_Interfacep& OZend_Pdf_ElementFactory_Interfacep, [Zend_Paginator_ScrollingStyle_Interfacep% MZend_Paginator_Adapter_Interfacep$ KZend_Memory_Container_Interfacep) UZend_Mail_Storage_Writable_Interfacep' QZend_Mail_Storage_Folder_Interfacep =Zend_Mail_Part_Interfacep  CZend_Mail_Message_Interfacep!
 EZend_Log_Formatter_Interfacep	 ?Zend_Log_Filter_Interfacep' QZend_Loader_PluginLoader_Interfacep   l  m\@{T+l@eC+n:	


}
L
*				x	M	#wN$qEl? d<b=v[C&zgM3[3           !$ EZend_CodeGenerator_Php_Classq # CZend_CodeGenerator_Php_Bodyq$" KZend_CodeGenerator_Php_Abstractq!! EZend_CodeGenerator_Exceptionq   CZend_CodeGenerator_Abstractq /Zend_Captcha_Wordq 9Zend_Captcha_ReCaptchaq 1Zend_Captcha_Imageq 3Zend_Captcha_Figletq 9Zend_Captcha_Exceptionq /Zend_Captcha_Dumbq /Zend_Captcha_Baseq !Zend_Cacheq =Zend_Cache_Frontend_Pageq AZend_Cache_Frontend_Outputq! EZend_Cache_Frontend_Functionq =Zend_Cache_Frontend_Fileq ?Zend_Cache_Frontend_Classq 5Zend_Cache_Exceptionq +Zend_Cache_Coreq 1Zend_Cache_Backendq" GZend_Cache_Backend_ZendServerq( SZend_Cache_Backend_ZendServer_ShMemq' QZend_Cache_Backend_ZendServer_Diskq$ KZend_Cache_Backend_ZendPlatformq ?Zend_Cache_Backend_Xcacheq!
 EZend_Cache_Backend_TwoLevelsq	 ;Zend_Cache_Backend_Testq ?Zend_Cache_Backend_Sqliteq! EZend_Cache_Backend_Memcachedq ;Zend_Cache_Backend_Fileq 9Zend_Cache_Backend_Apcq Zend_Authq ?Zend_Auth_Storage_Sessionq$ KZend_Auth_Storage_NonPersistentq  CZend_Auth_Storage_Exceptionq  -Zend_Auth_Resultq 3Zend_Auth_Exceptionq~ =Zend_Auth_Adapter_OpenIdq} 9Zend_Auth_Adapter_Ldapq| AZend_Auth_Adapter_InfoCardq{ 9Zend_Auth_Adapter_Httpq)z UZend_Auth_Adapter_Http_Resolver_Fileq.y _Zend_Auth_Adapter_Http_Resolver_Exceptionq x CZend_Auth_Adapter_Exceptionqw =Zend_Auth_Adapter_Digestqv ?Zend_Auth_Adapter_DbTablequ -Zend_Applicationq#t IZend_Application_Resource_Viewq(s SZend_Application_Resource_Translateq&r OZend_Application_Resource_Sessionq%q MZend_Application_Resource_Routerq/p aZend_Application_Resource_ResourceAbstractq)o UZend_Application_Resource_Navigationq&n OZend_Application_Resource_Modulesq%m MZend_Application_Resource_Localeq%l MZend_Application_Resource_Layoutq.k _Zend_Application_Resource_Frontcontrollerq(j SZend_Application_Resource_Exceptionq!i EZend_Application_Resource_Dbq&h OZend_Application_Module_Bootstrapq'g QZend_Application_Module_Autoloaderqf AZend_Application_Exceptionq)e UZend_Application_Bootstrap_Exceptionq1d eZend_Application_Bootstrap_BootstrapAbstractq)c UZend_Application_Bootstrap_Bootstrapqb ?Zend_Amf_Value_TraitsInfoq-a ]Zend_Amf_Value_Messaging_RemotingMessageq*` WZend_Amf_Value_Messaging_ErrorMessageq,_ [Zend_Amf_Value_Messaging_CommandMessageq*^ WZend_Amf_Value_Messaging_AsyncMessageq-] ]Zend_Amf_Value_Messaging_ArrayCollectionq0\ cZend_Amf_Value_Messaging_AcknowledgeMessageq-[ ]Zend_Amf_Value_Messaging_AbstractMessageq!Z EZend_Amf_Value_MessageHeaderqY AZend_Amf_Value_MessageBodyqX =Zend_Amf_Value_ByteArrayqW AZend_Amf_Util_BinaryStreamqV +Zend_Amf_ServerqU ?Zend_Amf_Server_ExceptionqT /Zend_Amf_ResponseqS 9Zend_Amf_Response_HttpqR -Zend_Amf_RequestqQ 7Zend_Amf_Request_HttpqP ?Zend_Amf_Parse_TypeLoaderqO ?Zend_Amf_Parse_Serializerq#N IZend_Amf_Parse_Resource_Streamq(M SZend_Amf_Parse_Resource_MysqlResultq)L UZend_Amf_Parse_Resource_MysqliResultq K CZend_Amf_Parse_OutputStreamqJ AZend_Amf_Parse_InputStreamq I CZend_Amf_Parse_Deserializerq#H IZend_Amf_Parse_Amf3_Serializerq%G MZend_Amf_Parse_Amf3_Deserializerq#F IZend_Amf_Parse_Amf0_Serializerq%E MZend_Amf_Parse_Amf0_DeserializerqD 1Zend_Amf_ExceptionqC 1Zend_Amf_ConstantsqB 9Zend_Amf_Auth_Abstractq A CZend_Amf_Adobe_Introspectorq@ AZend_Amf_Adobe_DbInspectorq? 3Zend_Amf_Adobe_Authq> Zend_Aclq= 'Zend_Acl_Roleq< 9Zend_Acl_Role_Registryq%; MZend_Acl_Role_Registry_Exceptionq: /Zend_Acl_Resourceq9 1Zend_Acl_Exceptionq   d  g;gAdE&tEn.



i
?
				[	.	oIvQ$]/^0]<gD"
`J1a8    9Zend_Db_Adapter_Oracleq% MZend_Db_Adapter_Oracle_Exceptionq 9Zend_Db_Adapter_Mysqliq% MZend_Db_Adapter_Mysqli_Exceptionq ?Zend_Db_Adapter_Exceptionq 3Zend_Db_Adapter_Db2q" GZend_Db_Adapter_Db2_Exceptionq =Zend_Db_Adapter_Abstractq  Zend_Dateq 3Zend_Date_Exceptionq~ 5Zend_Date_DateObjectq} -Zend_Date_Citiesq| 'Zend_Currencyq{ ;Zend_Currency_Exceptionqz !Zend_Cryptqy )Zend_Crypt_Rsaqx 1Zend_Crypt_Rsa_Keyqw ?Zend_Crypt_Rsa_Key_Publicqv AZend_Crypt_Rsa_Key_Privatequ +Zend_Crypt_Mathqt ?Zend_Crypt_Math_Exceptionqs AZend_Crypt_Math_BigIntegerq#r IZend_Crypt_Math_BigInteger_Gmpq)q UZend_Crypt_Math_BigInteger_Exceptionq&p OZend_Crypt_Math_BigInteger_Bcmathqo +Zend_Crypt_Hmacqn ?Zend_Crypt_Hmac_Exceptionqm 5Zend_Crypt_Exceptionql =Zend_Crypt_DiffieHellmanq'k QZend_Crypt_DiffieHellman_Exceptionq!j EZend_Controller_Router_Routeq(i SZend_Controller_Router_Route_Staticq'h QZend_Controller_Router_Route_Regexq(g SZend_Controller_Router_Route_Moduleq*f WZend_Controller_Router_Route_Hostnameq'e QZend_Controller_Router_Route_Chainq*d WZend_Controller_Router_Route_Abstractq#c IZend_Controller_Router_Rewriteq%b MZend_Controller_Router_Exceptionq$a KZend_Controller_Router_Abstractq*` WZend_Controller_Response_HttpTestCaseq"_ GZend_Controller_Response_Httpq'^ QZend_Controller_Response_Exceptionq!] EZend_Controller_Response_Cliq&\ OZend_Controller_Response_Abstractq#[ IZend_Controller_Request_Simpleq)Z UZend_Controller_Request_HttpTestCaseq!Y EZend_Controller_Request_Httpq&X OZend_Controller_Request_Exceptionq&W OZend_Controller_Request_Apache404q%V MZend_Controller_Request_Abstractq&U OZend_Controller_Plugin_PutHandlerq(T SZend_Controller_Plugin_ErrorHandlerq"S GZend_Controller_Plugin_Brokerq'R QZend_Controller_Plugin_ActionStackq$Q KZend_Controller_Plugin_AbstractqP 7Zend_Controller_FrontqO ?Zend_Controller_Exceptionq(N SZend_Controller_Dispatcher_Standardq)M UZend_Controller_Dispatcher_Exceptionq(L SZend_Controller_Dispatcher_AbstractqK 9Zend_Controller_Actionq(J SZend_Controller_Action_HelperBrokerq6I oZend_Controller_Action_HelperBroker_PriorityStackq/H aZend_Controller_Action_Helper_ViewRendererq&G OZend_Controller_Action_Helper_Urlq-F ]Zend_Controller_Action_Helper_Redirectorq'E QZend_Controller_Action_Helper_Jsonq1D eZend_Controller_Action_Helper_FlashMessengerq0C cZend_Controller_Action_Helper_ContextSwitchq<B {Zend_Controller_Action_Helper_AutoCompleteScriptaculousq3A iZend_Controller_Action_Helper_AutoCompleteDojoq8@ sZend_Controller_Action_Helper_AutoComplete_Abstractq.? _Zend_Controller_Action_Helper_AjaxContextq.> _Zend_Controller_Action_Helper_ActionStackq+= YZend_Controller_Action_Helper_Abstractq%< MZend_Controller_Action_Exceptionq; 3Zend_Console_Getoptq": GZend_Console_Getopt_Exceptionq9 #Zend_Configq8 +Zend_Config_Xmlq7 1Zend_Config_Writerq6 9Zend_Config_Writer_Xmlq5 9Zend_Config_Writer_Iniq4 =Zend_Config_Writer_Arrayq3 +Zend_Config_Iniq2 7Zend_Config_Exceptionq$1 KZend_CodeGenerator_Php_Propertyq10 eZend_CodeGenerator_Php_Property_DefaultValueq%/ MZend_CodeGenerator_Php_Parameterq". GZend_CodeGenerator_Php_Methodq,- [Zend_CodeGenerator_Php_Member_Containerq+, YZend_CodeGenerator_Php_Member_Abstractq + CZend_CodeGenerator_Php_Fileq%* MZend_CodeGenerator_Php_Exceptionq$) KZend_CodeGenerator_Php_Docblockq(( SZend_CodeGenerator_Php_Docblock_Tagq/' aZend_CodeGenerator_Php_Docblock_Tag_Returnq.& _Zend_CodeGenerator_Php_Docblock_Tag_Paramq0% cZend_CodeGenerator_Php_Docblock_Tag_Licenseq   f  sQ/xW8}R1iJ)	[>






q
=
				R	'uO'V0wHuN#m<oErE"}Q%                                    *n WZend_Dojo_View_Helper_PasswordTextBoxq(m SZend_Dojo_View_Helper_NumberTextBoxq(l SZend_Dojo_View_Helper_NumberSpinnerq+k YZend_Dojo_View_Helper_HorizontalSliderqj AZend_Dojo_View_Helper_Formq*i WZend_Dojo_View_Helper_FilteringSelectq!h EZend_Dojo_View_Helper_Editorqg AZend_Dojo_View_Helper_Dojoq)f UZend_Dojo_View_Helper_Dojo_Containerq)e UZend_Dojo_View_Helper_DijitContainerq d CZend_Dojo_View_Helper_Dijitq&c OZend_Dojo_View_Helper_DateTextBoxq&b OZend_Dojo_View_Helper_CustomDijitq*a WZend_Dojo_View_Helper_CurrencyTextBoxq&` OZend_Dojo_View_Helper_ContentPaneq#_ IZend_Dojo_View_Helper_ComboBoxq#^ IZend_Dojo_View_Helper_CheckBoxq!] EZend_Dojo_View_Helper_Buttonq*\ WZend_Dojo_View_Helper_BorderContainerq([ SZend_Dojo_View_Helper_AccordionPaneq-Z ]Zend_Dojo_View_Helper_AccordionContainerqY =Zend_Dojo_View_ExceptionqX )Zend_Dojo_FormqW 9Zend_Dojo_Form_SubFormq*V WZend_Dojo_Form_Element_VerticalSliderq-U ]Zend_Dojo_Form_Element_ValidationTextBoxq'T QZend_Dojo_Form_Element_TimeTextBoxq#S IZend_Dojo_Form_Element_TextBoxq$R KZend_Dojo_Form_Element_Textareaq(Q SZend_Dojo_Form_Element_SubmitButtonq"P GZend_Dojo_Form_Element_Sliderq*O WZend_Dojo_Form_Element_SimpleTextareaq'N QZend_Dojo_Form_Element_RadioButtonq+M YZend_Dojo_Form_Element_PasswordTextBoxq)L UZend_Dojo_Form_Element_NumberTextBoxq)K UZend_Dojo_Form_Element_NumberSpinnerq,J [Zend_Dojo_Form_Element_HorizontalSliderq+I YZend_Dojo_Form_Element_FilteringSelectq"H GZend_Dojo_Form_Element_Editorq&G OZend_Dojo_Form_Element_DijitMultiq!F EZend_Dojo_Form_Element_Dijitq'E QZend_Dojo_Form_Element_DateTextBoxq+D YZend_Dojo_Form_Element_CurrencyTextBoxq$C KZend_Dojo_Form_Element_ComboBoxq$B KZend_Dojo_Form_Element_CheckBoxq"A GZend_Dojo_Form_Element_Buttonq @ CZend_Dojo_Form_DisplayGroupq*? WZend_Dojo_Form_Decorator_TabContainerq,> [Zend_Dojo_Form_Decorator_StackContainerq,= [Zend_Dojo_Form_Decorator_SplitContainerq'< QZend_Dojo_Form_Decorator_DijitFormq*; WZend_Dojo_Form_Decorator_DijitElementq,: [Zend_Dojo_Form_Decorator_DijitContainerq)9 UZend_Dojo_Form_Decorator_ContentPaneq-8 ]Zend_Dojo_Form_Decorator_BorderContainerq+7 YZend_Dojo_Form_Decorator_AccordionPaneq06 cZend_Dojo_Form_Decorator_AccordionContainerq5 3Zend_Dojo_Exceptionq4 )Zend_Dojo_Dataq3 5Zend_Dojo_BuildLayerq2 !Zend_Debugq1 Zend_Dbq0 'Zend_Db_Tableq/ 5Zend_Db_Table_Selectq#. IZend_Db_Table_Select_Exceptionq- 5Zend_Db_Table_Rowsetq#, IZend_Db_Table_Rowset_Exceptionq"+ GZend_Db_Table_Rowset_Abstractq* /Zend_Db_Table_Rowq ) CZend_Db_Table_Row_Exceptionq( AZend_Db_Table_Row_Abstractq' ;Zend_Db_Table_Exceptionq& =Zend_Db_Table_Definitionq% 9Zend_Db_Table_Abstractq$ /Zend_Db_Statementq# 7Zend_Db_Statement_Pdoq" ?Zend_Db_Statement_Pdo_Ociq! ?Zend_Db_Statement_Pdo_Ibmq  =Zend_Db_Statement_Oracleq' QZend_Db_Statement_Oracle_Exceptionq =Zend_Db_Statement_Mysqliq' QZend_Db_Statement_Mysqli_Exceptionq  CZend_Db_Statement_Exceptionq 7Zend_Db_Statement_Db2q$ KZend_Db_Statement_Db2_Exceptionq )Zend_Db_Selectq =Zend_Db_Select_Exceptionq -Zend_Db_Profilerq 9Zend_Db_Profiler_Queryq =Zend_Db_Profiler_Firebugq AZend_Db_Profiler_Exceptionq %Zend_Db_Exprq /Zend_Db_Exceptionq AZend_Db_Adapter_Pdo_Sqliteq ?Zend_Db_Adapter_Pdo_Pgsqlq ;Zend_Db_Adapter_Pdo_Ociq ?Zend_Db_Adapter_Pdo_Mysqlq ?Zend_Db_Adapter_Pdo_Mssqlq ;Zend_Db_Adapter_Pdo_Ibmq  CZend_Db_Adapter_Pdo_Ibm_Idsq 
 CZend_Db_Adapter_Pdo_Ibm_Db2q!	 EZend_Db_Adapter_Pdo_Abstractq   i  W*]- }fK4sR5[.



X
%				c	4	 vK)oT: tP4nM/lJ(	rCmDzU0           W CZend_Form_Decorator_Captchaq%V MZend_Form_Decorator_Captcha_Wordq!U EZend_Form_Decorator_Callbackq!T EZend_Form_Decorator_AbstractqS #Zend_Filterq+R YZend_Filter_Word_UnderscoreToSeparatorq&Q OZend_Filter_Word_UnderscoreToDashq+P YZend_Filter_Word_UnderscoreToCamelCaseq*O WZend_Filter_Word_SeparatorToSeparatorq%N MZend_Filter_Word_SeparatorToDashq*M WZend_Filter_Word_SeparatorToCamelCaseq(L SZend_Filter_Word_Separator_Abstractq&K OZend_Filter_Word_DashToUnderscoreq%J MZend_Filter_Word_DashToSeparatorq%I MZend_Filter_Word_DashToCamelCaseq+H YZend_Filter_Word_CamelCaseToUnderscoreq*G WZend_Filter_Word_CamelCaseToSeparatorq%F MZend_Filter_Word_CamelCaseToDashqE 7Zend_Filter_StripTagsqD ?Zend_Filter_StripNewlinesqC 9Zend_Filter_StringTrimqB ?Zend_Filter_StringToUpperqA ?Zend_Filter_StringToLowerq@ 5Zend_Filter_RealPathq? ;Zend_Filter_PregReplaceq&> OZend_Filter_NormalizedToLocalizedq&= OZend_Filter_LocalizedToNormalizedq< +Zend_Filter_Intq; /Zend_Filter_Inputq: 7Zend_Filter_Inflectorq9 =Zend_Filter_HtmlEntitiesq8 AZend_Filter_File_UpperCaseq7 ;Zend_Filter_File_Renameq6 AZend_Filter_File_LowerCaseq5 =Zend_Filter_File_Encryptq4 =Zend_Filter_File_Decryptq3 7Zend_Filter_Exceptionq2 3Zend_Filter_Encryptq 1 CZend_Filter_Encrypt_Opensslq0 AZend_Filter_Encrypt_Mcryptq/ +Zend_Filter_Dirq. 1Zend_Filter_Digitsq- 3Zend_Filter_Decryptq, 5Zend_Filter_Callbackq+ 5Zend_Filter_BaseNameq* /Zend_Filter_Alphaq) /Zend_Filter_Alnumq( 1Zend_File_Transferq!' EZend_File_Transfer_Exceptionq$& KZend_File_Transfer_Adapter_Httpq(% SZend_File_Transfer_Adapter_Abstractq$ Zend_Feedq# 'Zend_Feed_Rssq" -Zend_Feed_Readerq! ?Zend_Feed_Reader_Feed_Rssq'  QZend_Feed_Reader_Feed_FeedAbstractq AZend_Feed_Reader_Feed_Atomq3 iZend_Feed_Reader_Extension_WellFormedWeb_Entryq, [Zend_Feed_Reader_Extension_Thread_Entryq0 cZend_Feed_Reader_Extension_Syndication_Feedq+ YZend_Feed_Reader_Extension_Slash_Entryq, [Zend_Feed_Reader_Extension_Podcast_Feedq- ]Zend_Feed_Reader_Extension_Podcast_Entryq, [Zend_Feed_Reader_Extension_FeedAbstractq- ]Zend_Feed_Reader_Extension_EntryAbstractq/ aZend_Feed_Reader_Extension_DublinCore_Feedq0 cZend_Feed_Reader_Extension_DublinCore_Entryq4 kZend_Feed_Reader_Extension_CreativeCommons_Feedq5 mZend_Feed_Reader_Extension_CreativeCommons_Entryq- ]Zend_Feed_Reader_Extension_Content_Entryq) UZend_Feed_Reader_Extension_Atom_Feedq* WZend_Feed_Reader_Extension_Atom_Entryq AZend_Feed_Reader_Entry_Rssq) UZend_Feed_Reader_Entry_EntryAbstractq  CZend_Feed_Reader_Entry_Atomq 3Zend_Feed_Exceptionq 3Zend_Feed_Entry_Rssq
 5Zend_Feed_Entry_Atomq	 =Zend_Feed_Entry_Abstractq /Zend_Feed_Elementq /Zend_Feed_Builderq =Zend_Feed_Builder_Headerq$ KZend_Feed_Builder_Header_Itunesq  CZend_Feed_Builder_Exceptionq ;Zend_Feed_Builder_Entryq )Zend_Feed_Atomq 1Zend_Feed_Abstractq  )Zend_Exceptionq )Zend_Dom_Queryq~ 7Zend_Dom_Query_Resultq} =Zend_Dom_Query_Css2Xpathq| 1Zend_Dom_Exceptionq{ Zend_Dojoq)z UZend_Dojo_View_Helper_VerticalSliderq,y [Zend_Dojo_View_Helper_ValidationTextBoxq&x OZend_Dojo_View_Helper_TimeTextBoxq"w GZend_Dojo_View_Helper_TextBoxq#v IZend_Dojo_View_Helper_Textareaq'u QZend_Dojo_View_Helper_TabContainerq't QZend_Dojo_View_Helper_SubmitButtonq)s UZend_Dojo_View_Helper_StackContainerq)r UZend_Dojo_View_Helper_SplitContainerq!q EZend_Dojo_View_Helper_Sliderq)p UZend_Dojo_View_Helper_SimpleTextareaq&o OZend_Dojo_View_Helper_RadioButtonq   g  gB! jHjH%b:oP-





X
<
					U	,^7vP(Z4[3c< uCY/aH!                                      "> GZend_Gdata_Calendar_EventFeedq#= IZend_Gdata_Calendar_EventEntryq< -Zend_Gdata_Booksq!; EZend_Gdata_Books_VolumeQueryq : CZend_Gdata_Books_VolumeFeedq!9 EZend_Gdata_Books_VolumeEntryq+8 YZend_Gdata_Books_Extension_Viewabilityq-7 ]Zend_Gdata_Books_Extension_ThumbnailLinkq&6 OZend_Gdata_Books_Extension_Reviewq+5 YZend_Gdata_Books_Extension_PreviewLinkq(4 SZend_Gdata_Books_Extension_InfoLinkq-3 ]Zend_Gdata_Books_Extension_Embeddabilityq)2 UZend_Gdata_Books_Extension_BooksLinkq-1 ]Zend_Gdata_Books_Extension_BooksCategoryq.0 _Zend_Gdata_Books_Extension_AnnotationLinkq$/ KZend_Gdata_Books_CollectionFeedq%. MZend_Gdata_Books_CollectionEntryq- 1Zend_Gdata_AuthSubq, )Zend_Gdata_Appq$+ KZend_Gdata_App_VersionExceptionq* 3Zend_Gdata_App_Utilq#) IZend_Gdata_App_MediaFileSourceq( ?Zend_Gdata_App_MediaEntryq2' gZend_Gdata_App_LoggingHttpClientAdapterSocketq& AZend_Gdata_App_IOExceptionq,% [Zend_Gdata_App_InvalidArgumentExceptionq!$ EZend_Gdata_App_HttpExceptionq$# KZend_Gdata_App_FeedSourceParentq#" IZend_Gdata_App_FeedEntryParentq! 3Zend_Gdata_App_Feedq  =Zend_Gdata_App_Extensionq! EZend_Gdata_App_Extension_Uriq% MZend_Gdata_App_Extension_Updatedq# IZend_Gdata_App_Extension_Titleq" GZend_Gdata_App_Extension_Textq% MZend_Gdata_App_Extension_Summaryq& OZend_Gdata_App_Extension_Subtitleq$ KZend_Gdata_App_Extension_Sourceq$ KZend_Gdata_App_Extension_Rightsq' QZend_Gdata_App_Extension_Publishedq$ KZend_Gdata_App_Extension_Personq" GZend_Gdata_App_Extension_Nameq" GZend_Gdata_App_Extension_Logoq" GZend_Gdata_App_Extension_Linkq  CZend_Gdata_App_Extension_Idq" GZend_Gdata_App_Extension_Iconq' QZend_Gdata_App_Extension_Generatorq# IZend_Gdata_App_Extension_Emailq% MZend_Gdata_App_Extension_Elementq$ KZend_Gdata_App_Extension_Editedq# IZend_Gdata_App_Extension_Draftq% MZend_Gdata_App_Extension_Controlq)
 UZend_Gdata_App_Extension_Contributorq%	 MZend_Gdata_App_Extension_Contentq& OZend_Gdata_App_Extension_Categoryq$ KZend_Gdata_App_Extension_Authorq =Zend_Gdata_App_Exceptionq 5Zend_Gdata_App_Entryq, [Zend_Gdata_App_CaptchaRequiredExceptionq# IZend_Gdata_App_BaseMediaSourceq 3Zend_Gdata_App_Baseq* WZend_Gdata_App_BadMethodCallExceptionq!  EZend_Gdata_App_AuthExceptionq Zend_Formq~ /Zend_Form_SubFormq} 3Zend_Form_Exceptionq| /Zend_Form_Elementq{ ;Zend_Form_Element_Xhtmlqz AZend_Form_Element_Textareaqy 9Zend_Form_Element_Textqx =Zend_Form_Element_Submitqw =Zend_Form_Element_Selectqv ;Zend_Form_Element_Resetqu ;Zend_Form_Element_Radioqt AZend_Form_Element_Passwordq"s GZend_Form_Element_Multiselectq$r KZend_Form_Element_MultiCheckboxqq ;Zend_Form_Element_Multiqp ;Zend_Form_Element_Imageqo =Zend_Form_Element_Hiddenqn 9Zend_Form_Element_Hashqm 9Zend_Form_Element_Fileq l CZend_Form_Element_Exceptionqk AZend_Form_Element_Checkboxqj ?Zend_Form_Element_Captchaqi =Zend_Form_Element_Buttonqh 9Zend_Form_DisplayGroupq#g IZend_Form_Decorator_ViewScriptq#f IZend_Form_Decorator_ViewHelperq e CZend_Form_Decorator_Tooltipq(d SZend_Form_Decorator_PrepareElementsqc ?Zend_Form_Decorator_Labelqb ?Zend_Form_Decorator_Imageq a CZend_Form_Decorator_HtmlTagq#` IZend_Form_Decorator_FormErrorsq%_ MZend_Form_Decorator_FormElementsq^ =Zend_Form_Decorator_Formq] =Zend_Form_Decorator_Fileq!\ EZend_Form_Decorator_Fieldsetq"[ GZend_Form_Decorator_ExceptionqZ AZend_Form_Decorator_Errorsq$Y KZend_Form_Decorator_DtDdWrapperq$X KZend_Form_Decorator_Descriptionq   a  {N#Y(xO1Y&d6




c
5
				h	A	iB_+ ]3pH!gHuN(sP7aB         " GZend_Gdata_Gbase_SnippetQueryq! EZend_Gdata_Gbase_SnippetFeedq" GZend_Gdata_Gbase_SnippetEntryq 9Zend_Gdata_Gbase_Queryq AZend_Gdata_Gbase_ItemQueryq ?Zend_Gdata_Gbase_ItemFeedq AZend_Gdata_Gbase_ItemEntryq 7Zend_Gdata_Gbase_Feedq- ]Zend_Gdata_Gbase_Extension_BaseAttributeq 9Zend_Gdata_Gbase_Entryq -Zend_Gdata_Gappsq AZend_Gdata_Gapps_UserQueryq ?Zend_Gdata_Gapps_UserFeedq AZend_Gdata_Gapps_UserEntryq& OZend_Gdata_Gapps_ServiceExceptionq 9Zend_Gdata_Gapps_Queryq# IZend_Gdata_Gapps_NicknameQueryq" GZend_Gdata_Gapps_NicknameFeedq# IZend_Gdata_Gapps_NicknameEntryq% MZend_Gdata_Gapps_Extension_Quotaq( SZend_Gdata_Gapps_Extension_Nicknameq$
 KZend_Gdata_Gapps_Extension_Nameq%	 MZend_Gdata_Gapps_Extension_Loginq) UZend_Gdata_Gapps_Extension_EmailListq 9Zend_Gdata_Gapps_Errorq- ]Zend_Gdata_Gapps_EmailListRecipientQueryq, [Zend_Gdata_Gapps_EmailListRecipientFeedq- ]Zend_Gdata_Gapps_EmailListRecipientEntryq$ KZend_Gdata_Gapps_EmailListQueryq# IZend_Gdata_Gapps_EmailListFeedq$ KZend_Gdata_Gapps_EmailListEntryq  +Zend_Gdata_Feedq 5Zend_Gdata_Extensionq~ =Zend_Gdata_Extension_Whoq} AZend_Gdata_Extension_Whereq| ?Zend_Gdata_Extension_Whenq${ KZend_Gdata_Extension_Visibilityq&z OZend_Gdata_Extension_Transparencyq"y GZend_Gdata_Extension_Reminderq-x ]Zend_Gdata_Extension_RecurrenceExceptionq$w KZend_Gdata_Extension_Recurrenceq v CZend_Gdata_Extension_Ratingq'u QZend_Gdata_Extension_OriginalEventq0t cZend_Gdata_Extension_OpenSearchTotalResultsq.s _Zend_Gdata_Extension_OpenSearchStartIndexq0r cZend_Gdata_Extension_OpenSearchItemsPerPageq"q GZend_Gdata_Extension_FeedLinkq*p WZend_Gdata_Extension_ExtendedPropertyq%o MZend_Gdata_Extension_EventStatusq#n IZend_Gdata_Extension_EntryLinkq"m GZend_Gdata_Extension_Commentsq&l OZend_Gdata_Extension_AttendeeTypeq(k SZend_Gdata_Extension_AttendeeStatusqj +Zend_Gdata_Exifqi 5Zend_Gdata_Exif_Feedq#h IZend_Gdata_Exif_Extension_Timeq#g IZend_Gdata_Exif_Extension_Tagsq$f KZend_Gdata_Exif_Extension_Modelq#e IZend_Gdata_Exif_Extension_Makeq"d GZend_Gdata_Exif_Extension_Isoq,c [Zend_Gdata_Exif_Extension_ImageUniqueIdq$b KZend_Gdata_Exif_Extension_FStopq*a WZend_Gdata_Exif_Extension_FocalLengthq$` KZend_Gdata_Exif_Extension_Flashq'_ QZend_Gdata_Exif_Extension_Exposureq'^ QZend_Gdata_Exif_Extension_Distanceq] 7Zend_Gdata_Exif_Entryq\ -Zend_Gdata_Entryq[ 7Zend_Gdata_DublinCoreq*Z WZend_Gdata_DublinCore_Extension_Titleq,Y [Zend_Gdata_DublinCore_Extension_Subjectq+X YZend_Gdata_DublinCore_Extension_Rightsq.W _Zend_Gdata_DublinCore_Extension_Publisherq-V ]Zend_Gdata_DublinCore_Extension_Languageq/U aZend_Gdata_DublinCore_Extension_Identifierq+T YZend_Gdata_DublinCore_Extension_Formatq0S cZend_Gdata_DublinCore_Extension_Descriptionq)R UZend_Gdata_DublinCore_Extension_Dateq,Q [Zend_Gdata_DublinCore_Extension_CreatorqP +Zend_Gdata_DocsqO 7Zend_Gdata_Docs_Queryq%N MZend_Gdata_Docs_DocumentListFeedq&M OZend_Gdata_Docs_DocumentListEntryqL 9Zend_Gdata_ClientLoginqK 3Zend_Gdata_Calendarq!J EZend_Gdata_Calendar_ListFeedq"I GZend_Gdata_Calendar_ListEntryq-H ]Zend_Gdata_Calendar_Extension_WebContentq+G YZend_Gdata_Calendar_Extension_Timezoneq9F uZend_Gdata_Calendar_Extension_SendEventNotificationsq+E YZend_Gdata_Calendar_Extension_Selectedq+D YZend_Gdata_Calendar_Extension_QuickAddq'C QZend_Gdata_Calendar_Extension_Linkq)B UZend_Gdata_Calendar_Extension_Hiddenq(A SZend_Gdata_Calendar_Extension_Colorq.@ _Zend_Gdata_Calendar_Extension_AccessLevelq#? IZend_Gdata_Calendar_EventQueryq   ^  sK/xN.xY(c5yE




^
<
 					`	4	}Gi<~MlCyT1i@U"tD     } ;Zend_Gdata_Spreadsheetsq*| WZend_Gdata_Spreadsheets_WorksheetFeedq+{ YZend_Gdata_Spreadsheets_WorksheetEntryq,z [Zend_Gdata_Spreadsheets_SpreadsheetFeedq-y ]Zend_Gdata_Spreadsheets_SpreadsheetEntryq&x OZend_Gdata_Spreadsheets_ListQueryq%w MZend_Gdata_Spreadsheets_ListFeedq&v OZend_Gdata_Spreadsheets_ListEntryq/u aZend_Gdata_Spreadsheets_Extension_RowCountq-t ]Zend_Gdata_Spreadsheets_Extension_Customq/s aZend_Gdata_Spreadsheets_Extension_ColCountq+r YZend_Gdata_Spreadsheets_Extension_Cellq*q WZend_Gdata_Spreadsheets_DocumentQueryq&p OZend_Gdata_Spreadsheets_CellQueryq%o MZend_Gdata_Spreadsheets_CellFeedq&n OZend_Gdata_Spreadsheets_CellEntryqm -Zend_Gdata_Queryql /Zend_Gdata_Photosq k CZend_Gdata_Photos_UserQueryqj AZend_Gdata_Photos_UserFeedq i CZend_Gdata_Photos_UserEntryqh AZend_Gdata_Photos_TagEntryq!g EZend_Gdata_Photos_PhotoQueryq f CZend_Gdata_Photos_PhotoFeedq!e EZend_Gdata_Photos_PhotoEntryq&d OZend_Gdata_Photos_Extension_Widthq'c QZend_Gdata_Photos_Extension_Weightq(b SZend_Gdata_Photos_Extension_Versionq%a MZend_Gdata_Photos_Extension_Userq*` WZend_Gdata_Photos_Extension_Timestampq*_ WZend_Gdata_Photos_Extension_Thumbnailq%^ MZend_Gdata_Photos_Extension_Sizeq)] UZend_Gdata_Photos_Extension_Rotationq+\ YZend_Gdata_Photos_Extension_QuotaLimitq-[ ]Zend_Gdata_Photos_Extension_QuotaCurrentq)Z UZend_Gdata_Photos_Extension_Positionq(Y SZend_Gdata_Photos_Extension_PhotoIdq3X iZend_Gdata_Photos_Extension_NumPhotosRemainingq*W WZend_Gdata_Photos_Extension_NumPhotosq)V UZend_Gdata_Photos_Extension_Nicknameq%U MZend_Gdata_Photos_Extension_Nameq2T gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumq)S UZend_Gdata_Photos_Extension_Locationq#R IZend_Gdata_Photos_Extension_Idq'Q QZend_Gdata_Photos_Extension_Heightq2P gZend_Gdata_Photos_Extension_CommentingEnabledq-O ]Zend_Gdata_Photos_Extension_CommentCountq'N QZend_Gdata_Photos_Extension_Clientq)M UZend_Gdata_Photos_Extension_Checksumq*L WZend_Gdata_Photos_Extension_BytesUsedq(K SZend_Gdata_Photos_Extension_AlbumIdq'J QZend_Gdata_Photos_Extension_Accessq#I IZend_Gdata_Photos_CommentEntryq!H EZend_Gdata_Photos_AlbumQueryq G CZend_Gdata_Photos_AlbumFeedq!F EZend_Gdata_Photos_AlbumEntryqE 3Zend_Gdata_MimeFileqD ?Zend_Gdata_MimeBodyStringqC AZend_Gdata_MediaMimeStreamqB -Zend_Gdata_MediaqA 7Zend_Gdata_Media_Feedq*@ WZend_Gdata_Media_Extension_MediaTitleq.? _Zend_Gdata_Media_Extension_MediaThumbnailq)> UZend_Gdata_Media_Extension_MediaTextq0= cZend_Gdata_Media_Extension_MediaRestrictionq+< YZend_Gdata_Media_Extension_MediaRatingq+; YZend_Gdata_Media_Extension_MediaPlayerq-: ]Zend_Gdata_Media_Extension_MediaKeywordsq)9 UZend_Gdata_Media_Extension_MediaHashq*8 WZend_Gdata_Media_Extension_MediaGroupq07 cZend_Gdata_Media_Extension_MediaDescriptionq+6 YZend_Gdata_Media_Extension_MediaCreditq.5 _Zend_Gdata_Media_Extension_MediaCopyrightq,4 [Zend_Gdata_Media_Extension_MediaContentq-3 ]Zend_Gdata_Media_Extension_MediaCategoryq2 9Zend_Gdata_Media_Entryq1 AZend_Gdata_Kind_EventEntryq0 7Zend_Gdata_HttpClientq*/ WZend_Gdata_HttpAdapterStreamingSocketq). UZend_Gdata_HttpAdapterStreamingProxyq- /Zend_Gdata_Healthq, ;Zend_Gdata_Health_Queryq&+ OZend_Gdata_Health_ProfileListFeedq'* QZend_Gdata_Health_ProfileListEntryq") GZend_Gdata_Health_ProfileFeedq#( IZend_Gdata_Health_ProfileEntryq$' KZend_Gdata_Health_Extension_Ccrq& )Zend_Gdata_Geoq% 3Zend_Gdata_Geo_Feedq$$ KZend_Gdata_Geo_Extension_GmlPosq&# OZend_Gdata_Geo_Extension_GmlPointq)" UZend_Gdata_Geo_Extension_GeoRssWhereq! 5Zend_Gdata_Geo_Entryq  -Zend_Gdata_Gbaseq   \  `8c6yM l:	|Q$



c
6
			{	J	l>rEe9tI"cG,X tK+\4                                           Y CZend_InfoCard_Xml_Exceptionq#X IZend_InfoCard_Xml_EncryptedKeyq$W KZend_InfoCard_Xml_EncryptedDataq+V YZend_InfoCard_Xml_EncryptedData_XmlEncq-U ]Zend_InfoCard_Xml_EncryptedData_AbstractqT ?Zend_InfoCard_Xml_Elementq S CZend_InfoCard_Xml_Assertionq%R MZend_InfoCard_Xml_Assertion_SamlqQ ;Zend_InfoCard_Exceptionq%P MZend_InfoCard_Exception_AbstractqO 5Zend_InfoCard_ClaimsqN 5Zend_InfoCard_Cipherq5M mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcq5L mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcq4K kZend_InfoCard_Cipher_Symmetric_Adapter_Abstractq)J UZend_InfoCard_Cipher_Pki_Adapter_Rsaq.I _Zend_InfoCard_Cipher_Pki_Adapter_Abstractq#H IZend_InfoCard_Cipher_Exceptionq$G KZend_InfoCard_Adapter_Exceptionq"F GZend_InfoCard_Adapter_DefaultqE 1Zend_Http_ResponseqD 3Zend_Http_ExceptionqC 3Zend_Http_CookieJarqB -Zend_Http_CookieqA -Zend_Http_Clientq@ AZend_Http_Client_Exceptionq"? GZend_Http_Client_Adapter_Testq$> KZend_Http_Client_Adapter_Socketq#= IZend_Http_Client_Adapter_Proxyq'< QZend_Http_Client_Adapter_Exceptionq"; GZend_Http_Client_Adapter_Curlq: !Zend_Gdataq9 1Zend_Gdata_YouTubeq"8 GZend_Gdata_YouTube_VideoQueryq!7 EZend_Gdata_YouTube_VideoFeedq"6 GZend_Gdata_YouTube_VideoEntryq(5 SZend_Gdata_YouTube_UserProfileEntryq(4 SZend_Gdata_YouTube_SubscriptionFeedq)3 UZend_Gdata_YouTube_SubscriptionEntryq)2 UZend_Gdata_YouTube_PlaylistVideoFeedq*1 WZend_Gdata_YouTube_PlaylistVideoEntryq(0 SZend_Gdata_YouTube_PlaylistListFeedq)/ UZend_Gdata_YouTube_PlaylistListEntryq". GZend_Gdata_YouTube_MediaEntryq!- EZend_Gdata_YouTube_InboxFeedq", GZend_Gdata_YouTube_InboxEntryq)+ UZend_Gdata_YouTube_Extension_VideoIdq** WZend_Gdata_YouTube_Extension_Usernameq*) WZend_Gdata_YouTube_Extension_Uploadedq'( QZend_Gdata_YouTube_Extension_Tokenq(' SZend_Gdata_YouTube_Extension_Statusq,& [Zend_Gdata_YouTube_Extension_Statisticsq'% QZend_Gdata_YouTube_Extension_Stateq($ SZend_Gdata_YouTube_Extension_Schoolq-# ]Zend_Gdata_YouTube_Extension_ReleaseDateq." _Zend_Gdata_YouTube_Extension_Relationshipq*! WZend_Gdata_YouTube_Extension_Recordedq&  OZend_Gdata_YouTube_Extension_Racyq- ]Zend_Gdata_YouTube_Extension_QueryStringq) UZend_Gdata_YouTube_Extension_Privateq* WZend_Gdata_YouTube_Extension_Positionq/ aZend_Gdata_YouTube_Extension_PlaylistTitleq, [Zend_Gdata_YouTube_Extension_PlaylistIdq, [Zend_Gdata_YouTube_Extension_Occupationq) UZend_Gdata_YouTube_Extension_NoEmbedq' QZend_Gdata_YouTube_Extension_Musicq( SZend_Gdata_YouTube_Extension_Moviesq- ]Zend_Gdata_YouTube_Extension_MediaRatingq, [Zend_Gdata_YouTube_Extension_MediaGroupq- ]Zend_Gdata_YouTube_Extension_MediaCreditq. _Zend_Gdata_YouTube_Extension_MediaContentq* WZend_Gdata_YouTube_Extension_Locationq& OZend_Gdata_YouTube_Extension_Linkq* WZend_Gdata_YouTube_Extension_LastNameq* WZend_Gdata_YouTube_Extension_Hometownq) UZend_Gdata_YouTube_Extension_Hobbiesq( SZend_Gdata_YouTube_Extension_Genderq+ YZend_Gdata_YouTube_Extension_FirstNameq* WZend_Gdata_YouTube_Extension_Durationq-
 ]Zend_Gdata_YouTube_Extension_Descriptionq+	 YZend_Gdata_YouTube_Extension_CountHintq) UZend_Gdata_YouTube_Extension_Controlq) UZend_Gdata_YouTube_Extension_Companyq' QZend_Gdata_YouTube_Extension_Booksq% MZend_Gdata_YouTube_Extension_Ageq) UZend_Gdata_YouTube_Extension_AboutMeq# IZend_Gdata_YouTube_ContactFeedq$ KZend_Gdata_YouTube_ContactEntryq# IZend_Gdata_YouTube_CommentFeedq$  KZend_Gdata_YouTube_CommentEntryq$ KZend_Gdata_YouTube_ActivityFeedq%~ MZend_Gdata_YouTube_ActivityEntryq   q  _2V3fG$oR9'xJ-




~
]
?
"
					f	D	v:uN0wVBnZ?yX= w[<"f9|S-    J 9Zend_Mail_Storage_ImapqI =Zend_Mail_Storage_Folderq"H GZend_Mail_Storage_Folder_Mboxq%G MZend_Mail_Storage_Folder_Maildirq F CZend_Mail_Storage_ExceptionqE AZend_Mail_Storage_AbstractqD ;Zend_Mail_Protocol_Smtpq'C QZend_Mail_Protocol_Smtp_Auth_Plainq'B QZend_Mail_Protocol_Smtp_Auth_Loginq)A UZend_Mail_Protocol_Smtp_Auth_Crammd5q@ ;Zend_Mail_Protocol_Pop3q? ;Zend_Mail_Protocol_Imapq!> EZend_Mail_Protocol_Exceptionq = CZend_Mail_Protocol_Abstractq< )Zend_Mail_Partq; 3Zend_Mail_Part_Fileq: /Zend_Mail_Messageq9 9Zend_Mail_Message_Fileq8 3Zend_Mail_Exceptionq7 Zend_Logq6 9Zend_Log_Writer_Syslogq5 9Zend_Log_Writer_Streamq4 5Zend_Log_Writer_Nullq3 5Zend_Log_Writer_Mockq2 5Zend_Log_Writer_Mailq1 ;Zend_Log_Writer_Firebugq0 1Zend_Log_Writer_Dbq/ =Zend_Log_Writer_Abstractq. 9Zend_Log_Formatter_Xmlq- ?Zend_Log_Formatter_Simpleq, AZend_Log_Formatter_Firebugq+ =Zend_Log_Filter_Suppressq* =Zend_Log_Filter_Priorityq) ;Zend_Log_Filter_Messageq( 1Zend_Log_Exceptionq' #Zend_Localeq& -Zend_Locale_Mathq% =Zend_Locale_Math_PhpMathq$ AZend_Locale_Math_Exceptionq# 1Zend_Locale_Formatq" 7Zend_Locale_Exceptionq! -Zend_Locale_Dataq!  EZend_Locale_Data_Translationq #Zend_Loaderq =Zend_Loader_PluginLoaderq' QZend_Loader_PluginLoader_Exceptionq 7Zend_Loader_Exceptionq 9Zend_Loader_Autoloaderq$ KZend_Loader_Autoloader_Resourceq Zend_Ldapq )Zend_Ldap_Nodeq 7Zend_Ldap_Node_Schemaq# IZend_Ldap_Node_Schema_OpenLdapq/ aZend_Ldap_Node_Schema_ObjectClass_OpenLdapq6 oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectoryq AZend_Ldap_Node_Schema_Itemq1 eZend_Ldap_Node_Schema_AttributeType_OpenLdapq8 sZend_Ldap_Node_Schema_AttributeType_ActiveDirectoryq* WZend_Ldap_Node_Schema_ActiveDirectoryq 9Zend_Ldap_Node_RootDseq$ KZend_Ldap_Node_RootDse_OpenLdapq& OZend_Ldap_Node_RootDse_eDirectoryq+ YZend_Ldap_Node_RootDse_ActiveDirectoryq ?Zend_Ldap_Node_Collectionq$
 KZend_Ldap_Node_ChildrenIteratorq	 ;Zend_Ldap_Node_Abstractq 9Zend_Ldap_Ldif_Encoderq -Zend_Ldap_Filterq ;Zend_Ldap_Filter_Stringq 3Zend_Ldap_Filter_Orq 5Zend_Ldap_Filter_Notq 7Zend_Ldap_Filter_Maskq =Zend_Ldap_Filter_Logicalq AZend_Ldap_Filter_Exceptionq  5Zend_Ldap_Filter_Andq ?Zend_Ldap_Filter_Abstractq~ 3Zend_Ldap_Exceptionq} %Zend_Ldap_Dnq| 3Zend_Ldap_Converterq{ 5Zend_Ldap_Collectionq*z WZend_Ldap_Collection_Iterator_Defaultqy 3Zend_Ldap_Attributeqx #Zend_Layoutqw 7Zend_Layout_Exceptionq)v UZend_Layout_Controller_Plugin_Layoutq0u cZend_Layout_Controller_Action_Helper_Layoutqt Zend_Jsonqs -Zend_Json_Serverqr 5Zend_Json_Server_Smdq!q EZend_Json_Server_Smd_Serviceqp ?Zend_Json_Server_Responseq#o IZend_Json_Server_Response_Httpqn =Zend_Json_Server_Requestq"m GZend_Json_Server_Request_Httpql AZend_Json_Server_Exceptionqk 9Zend_Json_Server_Errorqj 9Zend_Json_Server_Cacheqi )Zend_Json_Exprqh 3Zend_Json_Exceptionqg /Zend_Json_Encoderqf /Zend_Json_Decoderqe 'Zend_InfoCardq-d ]Zend_InfoCard_Xml_SecurityTokenReferenceqc AZend_InfoCard_Xml_Securityq)b UZend_InfoCard_Xml_Security_Transformq4a kZend_InfoCard_Xml_Security_Transform_XmlExcC14Nq3` iZend_InfoCard_Xml_Security_Transform_Exceptionq<_ {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignatureq)^ UZend_InfoCard_Xml_Security_Exceptionq] ?Zend_InfoCard_Xml_KeyInfoq&\ OZend_InfoCard_Xml_KeyInfo_XmlDSigq&[ OZend_InfoCard_Xml_KeyInfo_Defaultq'Z QZend_InfoCard_Xml_KeyInfo_Abstractq   v  u[6x]C'hI*rS7e< 



v
X
<
"
						t	R	1	oQ.uXD~]3uR4vX6rR6sW6c-             )@ UZend_Pdf_Destination_FitHorizontallyq2? gZend_Pdf_Destination_FitBoundingBoxVerticallyq4> kZend_Pdf_Destination_FitBoundingBoxHorizontallyq(= SZend_Pdf_Destination_FitBoundingBoxq< =Zend_Pdf_Destination_Fitq; )Zend_Pdf_Colorq: 1Zend_Pdf_Color_Rgbq9 3Zend_Pdf_Color_Htmlq8 =Zend_Pdf_Color_GrayScaleq7 3Zend_Pdf_Color_Cmykq6 'Zend_Pdf_Cmapq5 AZend_Pdf_Cmap_TrimmedTableq!4 EZend_Pdf_Cmap_SegmentToDeltaq3 AZend_Pdf_Cmap_ByteEncodingq&2 OZend_Pdf_Cmap_ByteEncoding_Staticq1 +Zend_Pdf_Actionq0 3Zend_Pdf_Action_URIq/ ;Zend_Pdf_Action_Unknownq. 7Zend_Pdf_Action_Transq- 9Zend_Pdf_Action_Threadq, AZend_Pdf_Action_SubmitFormq+ 7Zend_Pdf_Action_Soundq * CZend_Pdf_Action_SetOCGStateq) ?Zend_Pdf_Action_ResetFormq( ?Zend_Pdf_Action_Renditionq' 7Zend_Pdf_Action_Namedq& 7Zend_Pdf_Action_Movieq% 9Zend_Pdf_Action_Launchq$ AZend_Pdf_Action_JavaScriptq# AZend_Pdf_Action_ImportDataq" 5Zend_Pdf_Action_Hideq! 7Zend_Pdf_Action_GoToRq  7Zend_Pdf_Action_GoToEq AZend_Pdf_Action_GoTo3DViewq 5Zend_Pdf_Action_GoToq )Zend_Paginatorq* WZend_Paginator_ScrollingStyle_Slidingq* WZend_Paginator_ScrollingStyle_Jumpingq* WZend_Paginator_ScrollingStyle_Elasticq& OZend_Paginator_ScrollingStyle_Allq =Zend_Paginator_Exceptionq  CZend_Paginator_Adapter_Nullq$ KZend_Paginator_Adapter_Iteratorq) UZend_Paginator_Adapter_DbTableSelectq$ KZend_Paginator_Adapter_DbSelectq! EZend_Paginator_Adapter_Arrayq #Zend_OpenIdq 5Zend_OpenId_Providerq ?Zend_OpenId_Provider_Userq& OZend_OpenId_Provider_User_Sessionq! EZend_OpenId_Provider_Storageq& OZend_OpenId_Provider_Storage_Fileq 7Zend_OpenId_Extensionq AZend_OpenId_Extension_Sregq
 7Zend_OpenId_Exceptionq	 5Zend_OpenId_Consumerq! EZend_OpenId_Consumer_Storageq& OZend_OpenId_Consumer_Storage_Fileq +Zend_Navigationq 5Zend_Navigation_Pageq =Zend_Navigation_Page_Uriq =Zend_Navigation_Page_Mvcq ?Zend_Navigation_Exceptionq ?Zend_Navigation_Containerq  Zend_Mimeq )Zend_Mime_Partq~ /Zend_Mime_Messageq} 3Zend_Mime_Exceptionq| -Zend_Mime_Decodeq{ #Zend_Memoryqz /Zend_Memory_Valueqy 3Zend_Memory_Managerqx 7Zend_Memory_Exceptionqw 7Zend_Memory_Containerq"v GZend_Memory_Container_Movableq!u EZend_Memory_Container_Lockedq!t EZend_Memory_AccessControllerqs 3Zend_Measure_Weightqr 3Zend_Measure_Volumeq%q MZend_Measure_Viscosity_Kinematicq#p IZend_Measure_Viscosity_Dynamicqo 3Zend_Measure_Torqueqn /Zend_Measure_Timeqm =Zend_Measure_Temperatureql 1Zend_Measure_Speedqk 7Zend_Measure_Pressureqj 1Zend_Measure_Powerqi 3Zend_Measure_Numberqh 9Zend_Measure_Lightnessqg 3Zend_Measure_Lengthqf ?Zend_Measure_Illuminationqe 9Zend_Measure_Frequencyqd 1Zend_Measure_Forceqc =Zend_Measure_Flow_Volumeqb 9Zend_Measure_Flow_Moleqa 9Zend_Measure_Flow_Massq` 9Zend_Measure_Exceptionq_ 3Zend_Measure_Energyq^ 5Zend_Measure_Densityq] 5Zend_Measure_Currentq \ CZend_Measure_Cooking_Weightq [ CZend_Measure_Cooking_VolumeqZ =Zend_Measure_CapacitanceqY 3Zend_Measure_BinaryqX /Zend_Measure_AreaqW 1Zend_Measure_AngleqV ?Zend_Measure_AccelerationqU 7Zend_Measure_AbstractqT Zend_MailqS =Zend_Mail_Transport_Smtpq!R EZend_Mail_Transport_Sendmailq"Q GZend_Mail_Transport_Exceptionq!P EZend_Mail_Transport_AbstractqO /Zend_Mail_Storageq'N QZend_Mail_Storage_Writable_MaildirqM 9Zend_Mail_Storage_Pop3qL 9Zend_Mail_Storage_MboxqK ?Zend_Mail_Storage_Maildirq   d  dG(_?aH"iC!gF





n
V
<
				X	+w9 ~>UeF!wYB\4`?uQ6                            $ ;Zend_Queue_Stomp_Clientq'# QZend_Queue_Stomp_Client_Connectionq" 1Zend_Queue_Messageq ! CZend_Queue_Message_Iteratorq  5Zend_Queue_Exceptionq ;Zend_Queue_Adapter_Nullq! EZend_Queue_Adapter_Memcacheqq 7Zend_Queue_Adapter_Dbq  CZend_Queue_Adapter_Db_Queueq" GZend_Queue_Adapter_Db_Messageq =Zend_Queue_Adapter_Arrayq  CZend_Queue_Adapter_Apachemqq' QZend_Queue_Adapter_AdapterAbstractq -Zend_ProgressBarq AZend_ProgressBar_Exceptionq =Zend_ProgressBar_Adapterq$ KZend_ProgressBar_Adapter_JsPushq$ KZend_ProgressBar_Adapter_JsPullq' QZend_ProgressBar_Adapter_Exceptionq% MZend_ProgressBar_Adapter_Consoleq Zend_Pdfq! EZend_Pdf_UpdateInfoContainerq -Zend_Pdf_Trailerq ;Zend_Pdf_Trailer_Keeperq AZend_Pdf_Trailer_Generatorq )Zend_Pdf_Styleq
 7Zend_Pdf_StringParserq	 /Zend_Pdf_Resourceq# IZend_Pdf_Resource_ImageFactoryq ;Zend_Pdf_Resource_Imageq! EZend_Pdf_Resource_Image_Tiffq  CZend_Pdf_Resource_Image_Pngq! EZend_Pdf_Resource_Image_Jpegq 9Zend_Pdf_Resource_Fontq! EZend_Pdf_Resource_Font_Type0q" GZend_Pdf_Resource_Font_Simpleq+  YZend_Pdf_Resource_Font_Simple_Standardq8 sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsq6~ oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanq7} qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicq;| yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicq5{ mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldq2z gZend_Pdf_Resource_Font_Simple_Standard_Symbolq<y {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueqAx Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliqueq9w uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldq5v mZend_Pdf_Resource_Font_Simple_Standard_Helveticaq:u wZend_Pdf_Resource_Font_Simple_Standard_CourierObliqueq>t Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliqueq7s qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldq3r iZend_Pdf_Resource_Font_Simple_Standard_Courierq)q UZend_Pdf_Resource_Font_Simple_Parsedq2p gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypeq*o WZend_Pdf_Resource_Font_FontDescriptorq%n MZend_Pdf_Resource_Font_Extractedq#m IZend_Pdf_Resource_Font_CidFontq,l [Zend_Pdf_Resource_Font_CidFont_TrueTypeqk /Zend_Pdf_PhpArrayqj +Zend_Pdf_Parserqi 9Zend_Pdf_Parser_Streamqh 'Zend_Pdf_Pageqg )Zend_Pdf_Imageqf 'Zend_Pdf_Fontq e CZend_Pdf_Filter_Compressionq$d KZend_Pdf_Filter_Compression_Lzwq&c OZend_Pdf_Filter_Compression_Flateqb =Zend_Pdf_Filter_AsciiHexqa ;Zend_Pdf_Filter_Ascii85q"` GZend_Pdf_FileParserDataSourceq)_ UZend_Pdf_FileParserDataSource_Stringq'^ QZend_Pdf_FileParserDataSource_Fileq] 3Zend_Pdf_FileParserq\ ?Zend_Pdf_FileParser_Imageq"[ GZend_Pdf_FileParser_Image_PngqZ =Zend_Pdf_FileParser_Fontq&Y OZend_Pdf_FileParser_Font_OpenTypeq/X aZend_Pdf_FileParser_Font_OpenType_TrueTypeqW 1Zend_Pdf_ExceptionqV ;Zend_Pdf_ElementFactoryq"U GZend_Pdf_ElementFactory_ProxyqT -Zend_Pdf_ElementqS ;Zend_Pdf_Element_Stringq#R IZend_Pdf_Element_String_BinaryqQ ;Zend_Pdf_Element_StreamqP AZend_Pdf_Element_Referenceq%O MZend_Pdf_Element_Reference_Tableq'N QZend_Pdf_Element_Reference_ContextqM ;Zend_Pdf_Element_Objectq#L IZend_Pdf_Element_Object_StreamqK =Zend_Pdf_Element_NumericqJ 7Zend_Pdf_Element_NullqI 7Zend_Pdf_Element_Nameq H CZend_Pdf_Element_DictionaryqG =Zend_Pdf_Element_BooleanqF 9Zend_Pdf_Element_ArrayqE 5Zend_Pdf_DestinationqD ?Zend_Pdf_Destination_Zoomq!C EZend_Pdf_Destination_Unknownq'B QZend_Pdf_Destination_FitVerticallyq&A OZend_Pdf_Destination_FitRectangleq   W  Y4rP/vZBeY


o
E
			X	(|S*|JYjB`*h6Si5                         .{ _Zend_Search_Lucene_Search_QueryEntry_Termq2z gZend_Search_Lucene_Search_QueryEntry_Subqueryq0y cZend_Search_Lucene_Search_QueryEntry_Phraseq$x KZend_Search_Lucene_Search_Queryq-w ]Zend_Search_Lucene_Search_Query_Wildcardq)v UZend_Search_Lucene_Search_Query_Termq*u WZend_Search_Lucene_Search_Query_Rangeq2t gZend_Search_Lucene_Search_Query_Preprocessingq7s qZend_Search_Lucene_Search_Query_Preprocessing_Termq9r uZend_Search_Lucene_Search_Query_Preprocessing_Phraseq8q sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzyq+p YZend_Search_Lucene_Search_Query_Phraseq.o _Zend_Search_Lucene_Search_Query_MultiTermq2n gZend_Search_Lucene_Search_Query_Insignificantq*m WZend_Search_Lucene_Search_Query_Fuzzyq*l WZend_Search_Lucene_Search_Query_Emptyq,k [Zend_Search_Lucene_Search_Query_Booleanq2j gZend_Search_Lucene_Search_Highlighter_Defaultq:i wZend_Search_Lucene_Search_BooleanExpressionRecognizerqh =Zend_Search_Lucene_Proxyq%g MZend_Search_Lucene_PriorityQueueq/f aZend_Search_Lucene_Interface_MultiSearcherq#e IZend_Search_Lucene_LockManagerq$d KZend_Search_Lucene_Index_Writerq0c cZend_Search_Lucene_Index_TermsPriorityQueueq&b OZend_Search_Lucene_Index_TermInfoq"a GZend_Search_Lucene_Index_Termq+` YZend_Search_Lucene_Index_SegmentWriterq8_ sZend_Search_Lucene_Index_SegmentWriter_StreamWriterq:^ wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterq+] YZend_Search_Lucene_Index_SegmentMergerq)\ UZend_Search_Lucene_Index_SegmentInfoq'[ QZend_Search_Lucene_Index_FieldInfoq(Z SZend_Search_Lucene_Index_DocsFilterq.Y _Zend_Search_Lucene_Index_DictionaryLoaderq!X EZend_Search_Lucene_FSMActionqW 9Zend_Search_Lucene_FSMqV =Zend_Search_Lucene_Fieldq!U EZend_Search_Lucene_Exceptionq T CZend_Search_Lucene_Documentq%S MZend_Search_Lucene_Document_Xlsxq%R MZend_Search_Lucene_Document_Pptxq(Q SZend_Search_Lucene_Document_OpenXmlq%P MZend_Search_Lucene_Document_Htmlq*O WZend_Search_Lucene_Document_Exceptionq%N MZend_Search_Lucene_Document_Docxq,M [Zend_Search_Lucene_Analysis_TokenFilterq6L oZend_Search_Lucene_Analysis_TokenFilter_StopWordsq7K qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsq:J wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8q6I oZend_Search_Lucene_Analysis_TokenFilter_LowerCaseq&H OZend_Search_Lucene_Analysis_Tokenq)G UZend_Search_Lucene_Analysis_Analyzerq0F cZend_Search_Lucene_Analysis_Analyzer_Commonq8E sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumqID Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitiveq5C mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8qFB Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitiveq8A sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumqI@ Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitiveq5? mZend_Search_Lucene_Analysis_Analyzer_Common_TextqF> Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiveq= 7Zend_Search_Exceptionq< -Zend_Rest_Serverq; AZend_Rest_Server_Exceptionq: +Zend_Rest_Routeq9 3Zend_Rest_Exceptionq8 5Zend_Rest_Controllerq7 -Zend_Rest_Clientq6 ;Zend_Rest_Client_Resultq&5 OZend_Rest_Client_Result_Exceptionq4 AZend_Rest_Client_Exceptionq3 'Zend_Registryq2 =Zend_Reflection_Propertyq1 ?Zend_Reflection_Parameterq0 9Zend_Reflection_Methodq/ =Zend_Reflection_Functionq. 5Zend_Reflection_Fileq- ?Zend_Reflection_Extensionq, ?Zend_Reflection_Exceptionq+ =Zend_Reflection_Docblockq!* EZend_Reflection_Docblock_Tagq() SZend_Reflection_Docblock_Tag_Returnq'( QZend_Reflection_Docblock_Tag_Paramq' 7Zend_Reflection_Classq& !Zend_Queueq% 9Zend_Queue_Stomp_Frameq   a  {MR!a8 qIb<



s
K
%
				e	G	*	W,\+[;|Z5T*
}U+f>vD             \ 9Zend_Service_ReCaptchaq$[ KZend_Service_ReCaptcha_Responseq$Z KZend_Service_ReCaptcha_MailHideq.Y _Zend_Service_ReCaptcha_MailHide_Exceptionq%X MZend_Service_ReCaptcha_ExceptionqW 7Zend_Service_Nirvanixq#V IZend_Service_Nirvanix_Responseq)U UZend_Service_Nirvanix_Namespace_Imfsq)T UZend_Service_Nirvanix_Namespace_Baseq$S KZend_Service_Nirvanix_ExceptionqR 3Zend_Service_Flickrq"Q GZend_Service_Flickr_ResultSetqP AZend_Service_Flickr_ResultqO ?Zend_Service_Flickr_ImageqN 9Zend_Service_ExceptionqM 9Zend_Service_Deliciousq&L OZend_Service_Delicious_SimplePostq$K KZend_Service_Delicious_PostListq J CZend_Service_Delicious_Postq%I MZend_Service_Delicious_Exceptionq H CZend_Service_AudioscrobblerqG 3Zend_Service_AmazonqF ;Zend_Service_Amazon_Sqsq&E OZend_Service_Amazon_Sqs_Exceptionq'D QZend_Service_Amazon_SimilarProductqC 9Zend_Service_Amazon_S3q"B GZend_Service_Amazon_S3_Streamq%A MZend_Service_Amazon_S3_Exceptionq"@ GZend_Service_Amazon_ResultSetq? ?Zend_Service_Amazon_Queryq!> EZend_Service_Amazon_OfferSetq= ?Zend_Service_Amazon_Offerq&< OZend_Service_Amazon_ListmaniaListq; =Zend_Service_Amazon_Itemq: ?Zend_Service_Amazon_Imageq"9 GZend_Service_Amazon_Exceptionq(8 SZend_Service_Amazon_EditorialReviewq7 ;Zend_Service_Amazon_Ec2q+6 YZend_Service_Amazon_Ec2_Securitygroupsq%5 MZend_Service_Amazon_Ec2_Responseq#4 IZend_Service_Amazon_Ec2_Regionq$3 KZend_Service_Amazon_Ec2_Keypairq%2 MZend_Service_Amazon_Ec2_Instanceq-1 ]Zend_Service_Amazon_Ec2_Instance_Windowsq.0 _Zend_Service_Amazon_Ec2_Instance_Reservedq"/ GZend_Service_Amazon_Ec2_Imageq&. OZend_Service_Amazon_Ec2_Exceptionq&- OZend_Service_Amazon_Ec2_Elasticipq , CZend_Service_Amazon_Ec2_Ebsq'+ QZend_Service_Amazon_Ec2_CloudWatchq.* _Zend_Service_Amazon_Ec2_Availabilityzonesq%) MZend_Service_Amazon_Ec2_Abstractq'( QZend_Service_Amazon_CustomerReviewq$' KZend_Service_Amazon_Accessoriesq!& EZend_Service_Amazon_Abstractq% 5Zend_Service_Akismetq$ 7Zend_Service_Abstractq# 9Zend_Server_Reflectionq'" QZend_Server_Reflection_ReturnValueq%! MZend_Server_Reflection_Prototypeq%  MZend_Server_Reflection_Parameterq  CZend_Server_Reflection_Nodeq" GZend_Server_Reflection_Methodq$ KZend_Server_Reflection_Functionq- ]Zend_Server_Reflection_Function_Abstractq% MZend_Server_Reflection_Exceptionq! EZend_Server_Reflection_Classq! EZend_Server_Method_Prototypeq! EZend_Server_Method_Parameterq" GZend_Server_Method_Definitionq  CZend_Server_Method_Callbackq 7Zend_Server_Exceptionq 9Zend_Server_Definitionq /Zend_Server_Cacheq 5Zend_Server_Abstractq 1Zend_Search_Luceneq0 cZend_Search_Lucene_TermStreamsPriorityQueueq$ KZend_Search_Lucene_Storage_Fileq+ YZend_Search_Lucene_Storage_File_Memoryq/ aZend_Search_Lucene_Storage_File_Filesystemq) UZend_Search_Lucene_Storage_Directoryq4 kZend_Search_Lucene_Storage_Directory_Filesystemq%
 MZend_Search_Lucene_Search_Weightq*	 WZend_Search_Lucene_Search_Weight_Termq, [Zend_Search_Lucene_Search_Weight_Phraseq/ aZend_Search_Lucene_Search_Weight_MultiTermq+ YZend_Search_Lucene_Search_Weight_Emptyq- ]Zend_Search_Lucene_Search_Weight_Booleanq) UZend_Search_Lucene_Search_Similarityq1 eZend_Search_Lucene_Search_Similarity_Defaultq) UZend_Search_Lucene_Search_QueryTokenq3 iZend_Search_Lucene_Search_QueryParserExceptionq1  eZend_Search_Lucene_Search_QueryParserContextq* WZend_Search_Lucene_Search_QueryParserq)~ UZend_Search_Lucene_Search_QueryLexerq'} QZend_Search_Lucene_Search_QueryHitq)| UZend_Search_Lucene_Search_QueryEntryq   d  xU6nS)f5]0 oA



e
;
				h	H	!nBsI_7lDzW8q>
oDxbH                            +@ YZend_Test_PHPUnit_Constraint_Exceptionq*? WZend_Test_PHPUnit_Constraint_DomQueryq> /Zend_Tag_ItemListq= 'Zend_Tag_Itemq< 1Zend_Tag_Exceptionq; )Zend_Tag_Cloudq: =Zend_Tag_Cloud_Exceptionq!9 EZend_Tag_Cloud_Decorator_Tagq%8 MZend_Tag_Cloud_Decorator_HtmlTagq'7 QZend_Tag_Cloud_Decorator_HtmlCloudq'6 QZend_Tag_Cloud_Decorator_Exceptionq#5 IZend_Tag_Cloud_Decorator_Cloudq4 )Zend_Soap_Wsdlq/3 aZend_Soap_Wsdl_Strategy_DefaultComplexTypeq&2 OZend_Soap_Wsdl_Strategy_Compositeq01 cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequenceq/0 aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplexq$/ KZend_Soap_Wsdl_Strategy_AnyTypeq%. MZend_Soap_Wsdl_Strategy_Abstractq- =Zend_Soap_Wsdl_Exceptionq, -Zend_Soap_Serverq+ AZend_Soap_Server_Exceptionq* -Zend_Soap_Clientq) 9Zend_Soap_Client_Localq( AZend_Soap_Client_Exceptionq' ;Zend_Soap_Client_DotNetq& ;Zend_Soap_Client_Commonq% 9Zend_Soap_AutoDiscoverq%$ MZend_Soap_AutoDiscover_Exceptionq# %Zend_Sessionq)" UZend_Session_Validator_HttpUserAgentq$! KZend_Session_Validator_Abstractq'  QZend_Session_SaveHandler_Exceptionq% MZend_Session_SaveHandler_DbTableq 9Zend_Session_Namespaceq 9Zend_Session_Exceptionq 7Zend_Session_Abstractq 1Zend_Service_Yahooq$ KZend_Service_Yahoo_WebResultSetq! EZend_Service_Yahoo_WebResultq& OZend_Service_Yahoo_VideoResultSetq# IZend_Service_Yahoo_VideoResultq! EZend_Service_Yahoo_ResultSetq ?Zend_Service_Yahoo_Resultq) UZend_Service_Yahoo_PageDataResultSetq& OZend_Service_Yahoo_PageDataResultq% MZend_Service_Yahoo_NewsResultSetq" GZend_Service_Yahoo_NewsResultq& OZend_Service_Yahoo_LocalResultSetq# IZend_Service_Yahoo_LocalResultq+ YZend_Service_Yahoo_InlinkDataResultSetq( SZend_Service_Yahoo_InlinkDataResultq& OZend_Service_Yahoo_ImageResultSetq# IZend_Service_Yahoo_ImageResultq
 =Zend_Service_Yahoo_Imageq	 5Zend_Service_Twitterq  CZend_Service_Twitter_Searchq# IZend_Service_Twitter_Exceptionq ;Zend_Service_Technoratiq# IZend_Service_Technorati_Weblogq" GZend_Service_Technorati_Utilsq* WZend_Service_Technorati_TagsResultSetq' QZend_Service_Technorati_TagsResultq) UZend_Service_Technorati_TagResultSetq&  OZend_Service_Technorati_TagResultq, [Zend_Service_Technorati_SearchResultSetq)~ UZend_Service_Technorati_SearchResultq&} OZend_Service_Technorati_ResultSetq#| IZend_Service_Technorati_Resultq*{ WZend_Service_Technorati_KeyInfoResultq*z WZend_Service_Technorati_GetInfoResultq&y OZend_Service_Technorati_Exceptionq1x eZend_Service_Technorati_DailyCountsResultSetq.w _Zend_Service_Technorati_DailyCountsResultq,v [Zend_Service_Technorati_CosmosResultSetq)u UZend_Service_Technorati_CosmosResultq+t YZend_Service_Technorati_BlogInfoResultq#s IZend_Service_Technorati_Authorqr ;Zend_Service_StrikeIronq(q SZend_Service_StrikeIron_ZipCodeInfoq2p gZend_Service_StrikeIron_USAddressVerificationq-o ]Zend_Service_StrikeIron_SalesUseTaxBasicq&n OZend_Service_StrikeIron_Exceptionq&m OZend_Service_StrikeIron_Decoratorq!l EZend_Service_StrikeIron_Baseqk ;Zend_Service_SlideShareq&j OZend_Service_SlideShare_SlideShowq&i OZend_Service_SlideShare_Exceptionqh 1Zend_Service_Simpyq$g KZend_Service_Simpy_WatchlistSetq*f WZend_Service_Simpy_WatchlistFilterSetq'e QZend_Service_Simpy_WatchlistFilterq!d EZend_Service_Simpy_Watchlistqc ?Zend_Service_Simpy_TagSetqb 9Zend_Service_Simpy_Tagqa AZend_Service_Simpy_NoteSetq` ;Zend_Service_Simpy_Noteq_ AZend_Service_Simpy_LinkSetq!^ EZend_Service_Simpy_LinkQueryq] ;Zend_Service_Simpy_Linkq   S  qU2jN6W)c/S


g
;
				;	|O%i:RQ|8^+]#['                   2 gZend_Tool_Project_Context_Zf_LayoutsDirectoryq. _Zend_Tool_Project_Context_Zf_HtaccessFileq0 cZend_Tool_Project_Context_Zf_FormsDirectoryq* WZend_Tool_Project_Context_Zf_FormFileq- ]Zend_Tool_Project_Context_Zf_DbTableFileq2 gZend_Tool_Project_Context_Zf_DbTableDirectoryq/ aZend_Tool_Project_Context_Zf_DataDirectoryq6 oZend_Tool_Project_Context_Zf_ControllersDirectoryq0 cZend_Tool_Project_Context_Zf_ControllerFileq2
 gZend_Tool_Project_Context_Zf_ConfigsDirectoryq,	 [Zend_Tool_Project_Context_Zf_ConfigFileq0 cZend_Tool_Project_Context_Zf_CacheDirectoryq/ aZend_Tool_Project_Context_Zf_BootstrapFileq6 oZend_Tool_Project_Context_Zf_ApplicationDirectoryq7 qZend_Tool_Project_Context_Zf_ApplicationConfigFileq/ aZend_Tool_Project_Context_Zf_ApisDirectoryq. _Zend_Tool_Project_Context_Zf_ActionMethodq@ Zend_Tool_Project_Context_System_ProjectProvidersDirectoryq8 sZend_Tool_Project_Context_System_ProjectProfileFileq6  oZend_Tool_Project_Context_System_ProjectDirectoryq) UZend_Tool_Project_Context_Repositoryq.~ _Zend_Tool_Project_Context_Filesystem_Fileq3} iZend_Tool_Project_Context_Filesystem_Directoryq2| gZend_Tool_Project_Context_Filesystem_Abstractq({ SZend_Tool_Project_Context_Exceptionq0z cZend_Tool_Framework_System_Provider_Versionq0y cZend_Tool_Framework_System_Provider_Phpinfoq1x eZend_Tool_Framework_System_Provider_Manifestq(w SZend_Tool_Framework_System_Manifestq-v ]Zend_Tool_Framework_System_Action_Deleteq-u ]Zend_Tool_Framework_System_Action_Createq!t EZend_Tool_Framework_Registryq+s YZend_Tool_Framework_Registry_Exceptionq+r YZend_Tool_Framework_Provider_Signatureq,q [Zend_Tool_Framework_Provider_Repositoryq+p YZend_Tool_Framework_Provider_Exceptionq*o WZend_Tool_Framework_Provider_Abstractq&n OZend_Tool_Framework_Metadata_Toolq)m UZend_Tool_Framework_Metadata_Dynamicq'l QZend_Tool_Framework_Metadata_Basicq,k [Zend_Tool_Framework_Manifest_Repositoryq+j YZend_Tool_Framework_Manifest_Exceptionq1i eZend_Tool_Framework_Loader_IncludePathLoaderqJh Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIteratorq(g SZend_Tool_Framework_Loader_Abstractq"f GZend_Tool_Framework_Exceptionq'e QZend_Tool_Framework_Client_Storageq1d eZend_Tool_Framework_Client_Storage_Directoryq(c SZend_Tool_Framework_Client_ResponseqDb 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separatorq'a QZend_Tool_Framework_Client_Requestq9` uZend_Tool_Framework_Client_Interactive_InputResponseq8_ sZend_Tool_Framework_Client_Interactive_InputRequestq8^ sZend_Tool_Framework_Client_Interactive_InputHandlerq)] UZend_Tool_Framework_Client_Exceptionq'\ QZend_Tool_Framework_Client_ConsoleqD[ 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizerq0Z cZend_Tool_Framework_Client_Console_Manifestq2Y gZend_Tool_Framework_Client_Console_HelpSystemq6X oZend_Tool_Framework_Client_Console_ArgumentParserq&W OZend_Tool_Framework_Client_Configq(V SZend_Tool_Framework_Client_Abstractq*U WZend_Tool_Framework_Action_Repositoryq)T UZend_Tool_Framework_Action_Exceptionq$S KZend_Tool_Framework_Action_BaseqR 'Zend_TimeSyncqQ 1Zend_TimeSync_SntpqP 9Zend_TimeSync_ProtocolqO /Zend_TimeSync_NtpqN ;Zend_TimeSync_ExceptionqM +Zend_Text_TableqL 3Zend_Text_Table_RowqK ?Zend_Text_Table_Exceptionq&J OZend_Text_Table_Decorator_Unicodeq$I KZend_Text_Table_Decorator_AsciiqH 9Zend_Text_Table_ColumnqG 3Zend_Text_MultiByteqF -Zend_Text_FigletqE AZend_Text_Figlet_ExceptionqD 3Zend_Text_Exceptionq)C UZend_Test_PHPUnit_ControllerTestCaseq0B cZend_Test_PHPUnit_Constraint_ResponseHeaderq*A WZend_Test_PHPUnit_Constraint_Redirectq   U  a2Y$x8KB


T
 			k	1O+Ti?g=d?jE hL0vT,                      h AZend_Validate_EmailAddressqg 5Zend_Validate_Digitsq"f GZend_Validate_Db_RecordExistsq$e KZend_Validate_Db_NoRecordExistsqd ?Zend_Validate_Db_Abstractqc 1Zend_Validate_Dateqb 3Zend_Validate_Ccnumqa 7Zend_Validate_Betweenq` 7Zend_Validate_Barcodeq_ AZend_Validate_Barcode_UpcAq ^ CZend_Validate_Barcode_Ean13q] 3Zend_Validate_Alphaq\ 3Zend_Validate_Alnumq[ 9Zend_Validate_AbstractqZ Zend_UriqY 'Zend_Uri_HttpqX 1Zend_Uri_ExceptionqW )Zend_TranslateqV =Zend_Translate_ExceptionqU 9Zend_Translate_Adapterq!T EZend_Translate_Adapter_XmlTmq!S EZend_Translate_Adapter_XliffqR AZend_Translate_Adapter_TmxqQ AZend_Translate_Adapter_TbxqP ?Zend_Translate_Adapter_QtqO AZend_Translate_Adapter_Iniq#N IZend_Translate_Adapter_GettextqM AZend_Translate_Adapter_Csvq!L EZend_Translate_Adapter_Arrayq$K KZend_Tool_Project_Provider_Viewq$J KZend_Tool_Project_Provider_Testq/I aZend_Tool_Project_Provider_ProjectProviderq'H QZend_Tool_Project_Provider_Projectq'G QZend_Tool_Project_Provider_Profileq&F OZend_Tool_Project_Provider_Moduleq%E MZend_Tool_Project_Provider_Modelq(D SZend_Tool_Project_Provider_Manifestq$C KZend_Tool_Project_Provider_Formq)B UZend_Tool_Project_Provider_Exceptionq*A WZend_Tool_Project_Provider_Controllerq&@ OZend_Tool_Project_Provider_Actionq(? SZend_Tool_Project_Provider_Abstractq> ?Zend_Tool_Project_Profileq'= QZend_Tool_Project_Profile_Resourceq9< uZend_Tool_Project_Profile_Resource_SearchConstraintsq1; eZend_Tool_Project_Profile_Resource_Containerq=: }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilterq59 mZend_Tool_Project_Profile_Iterator_ContextFilterq-8 ]Zend_Tool_Project_Profile_FileParser_Xmlq(7 SZend_Tool_Project_Profile_Exceptionq 6 CZend_Tool_Project_Exceptionq<5 {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectoryq04 cZend_Tool_Project_Context_Zf_ViewsDirectoryq63 oZend_Tool_Project_Context_Zf_ViewScriptsDirectoryq02 cZend_Tool_Project_Context_Zf_ViewScriptFileq61 oZend_Tool_Project_Context_Zf_ViewHelpersDirectoryq60 oZend_Tool_Project_Context_Zf_ViewFiltersDirectoryqA/ Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectoryq2. gZend_Tool_Project_Context_Zf_UploadsDirectoryq0- cZend_Tool_Project_Context_Zf_TestsDirectoryq7, qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFileq@+ Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectoryq1* eZend_Tool_Project_Context_Zf_TestLibraryFileq6) oZend_Tool_Project_Context_Zf_TestLibraryDirectoryq:( wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFileq:' wZend_Tool_Project_Context_Zf_TestApplicationDirectoryq@& Zend_Tool_Project_Context_Zf_TestApplicationControllerFileqE% Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectoryq>$ Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFileq4# kZend_Tool_Project_Context_Zf_TemporaryDirectoryq3" iZend_Tool_Project_Context_Zf_SessionsDirectoryq8! sZend_Tool_Project_Context_Zf_SearchIndexesDirectoryq<  {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectoryq8 sZend_Tool_Project_Context_Zf_PublicScriptsDirectoryq1 eZend_Tool_Project_Context_Zf_PublicIndexFileq7 qZend_Tool_Project_Context_Zf_PublicImagesDirectoryq1 eZend_Tool_Project_Context_Zf_PublicDirectoryq5 mZend_Tool_Project_Context_Zf_ProjectProviderFileq2 gZend_Tool_Project_Context_Zf_ModulesDirectoryq1 eZend_Tool_Project_Context_Zf_ModuleDirectoryq1 eZend_Tool_Project_Context_Zf_ModelsDirectoryq+ YZend_Tool_Project_Context_Zf_ModelFileq/ aZend_Tool_Project_Context_Zf_LogsDirectoryq2 gZend_Tool_Project_Context_Zf_LocalesDirectoryq2 gZend_Tool_Project_Context_Zf_LibraryDirectoryq   k  rG% nK,\@rY:gD.





`
;
					k	G	%	nH%rP.
|Z6Y&X-v<U2}P                            !S EZend_Wildfire_Plugin_FirePhpq.R _Zend_Wildfire_Plugin_FirePhp_TableMessageq)Q UZend_Wildfire_Plugin_FirePhp_MessageqP ;Zend_Wildfire_Exceptionq&O OZend_Wildfire_Channel_HttpHeadersqN Zend_ViewqM -Zend_View_StreamqL 5Zend_View_Helper_UrlqK AZend_View_Helper_TranslateqJ AZend_View_Helper_ServerUrlq)I UZend_View_Helper_RenderToPlaceholderq!H EZend_View_Helper_Placeholderq*G WZend_View_Helper_Placeholder_Registryq4F kZend_View_Helper_Placeholder_Registry_Exceptionq+E YZend_View_Helper_Placeholder_Containerq6D oZend_View_Helper_Placeholder_Container_Standaloneq5C mZend_View_Helper_Placeholder_Container_Exceptionq4B kZend_View_Helper_Placeholder_Container_Abstractq!A EZend_View_Helper_PartialLoopq@ =Zend_View_Helper_Partialq'? QZend_View_Helper_Partial_Exceptionq'> QZend_View_Helper_PaginationControlq = CZend_View_Helper_Navigationq(< SZend_View_Helper_Navigation_Sitemapq%; MZend_View_Helper_Navigation_Menuq&: OZend_View_Helper_Navigation_Linksq/9 aZend_View_Helper_Navigation_HelperAbstractq,8 [Zend_View_Helper_Navigation_Breadcrumbsq7 ;Zend_View_Helper_Layoutq6 7Zend_View_Helper_Jsonq"5 GZend_View_Helper_InlineScriptq#4 IZend_View_Helper_HtmlQuicktimeq3 ?Zend_View_Helper_HtmlPageq 2 CZend_View_Helper_HtmlObjectq1 ?Zend_View_Helper_HtmlListq0 AZend_View_Helper_HtmlFlashq!/ EZend_View_Helper_HtmlElementq. AZend_View_Helper_HeadTitleq- AZend_View_Helper_HeadStyleq , CZend_View_Helper_HeadScriptq+ ?Zend_View_Helper_HeadMetaq* ?Zend_View_Helper_HeadLinkq") GZend_View_Helper_FormTextareaq( ?Zend_View_Helper_FormTextq ' CZend_View_Helper_FormSubmitq & CZend_View_Helper_FormSelectq% AZend_View_Helper_FormResetq$ AZend_View_Helper_FormRadioq"# GZend_View_Helper_FormPasswordq" ?Zend_View_Helper_FormNoteq'! QZend_View_Helper_FormMultiCheckboxq  AZend_View_Helper_FormLabelq AZend_View_Helper_FormImageq  CZend_View_Helper_FormHiddenq ?Zend_View_Helper_FormFileq  CZend_View_Helper_FormErrorsq! EZend_View_Helper_FormElementq" GZend_View_Helper_FormCheckboxq  CZend_View_Helper_FormButtonq 7Zend_View_Helper_Formq ?Zend_View_Helper_Fieldsetq =Zend_View_Helper_Doctypeq! EZend_View_Helper_DeclareVarsq 9Zend_View_Helper_Cycleq =Zend_View_Helper_BaseUrlq ;Zend_View_Helper_Actionq ?Zend_View_Helper_Abstractq 3Zend_View_Exceptionq 1Zend_View_Abstractq %Zend_Versionq 'Zend_Validateq AZend_Validate_StringLengthq# IZend_Validate_Sitemap_Priorityq
 ?Zend_Validate_Sitemap_Locq"	 GZend_Validate_Sitemap_Lastmodq% MZend_Validate_Sitemap_Changefreqq 3Zend_Validate_Regexq 9Zend_Validate_NotEmptyq 9Zend_Validate_LessThanq -Zend_Validate_Ipq /Zend_Validate_Intq 7Zend_Validate_InArrayq ;Zend_Validate_Identicalq  1Zend_Validate_Ibanq 9Zend_Validate_Hostnameq~ /Zend_Validate_Hexq} ?Zend_Validate_GreaterThanq| 3Zend_Validate_Floatq!{ EZend_Validate_File_WordCountqz ?Zend_Validate_File_Uploadqy ;Zend_Validate_File_Sizeqx ;Zend_Validate_File_Sha1q!w EZend_Validate_File_NotExistsq v CZend_Validate_File_MimeTypequ 9Zend_Validate_File_Md5qt AZend_Validate_File_IsImageq$s KZend_Validate_File_IsCompressedq!r EZend_Validate_File_ImageSizeqq ;Zend_Validate_File_Hashq!p EZend_Validate_File_FilesSizeq!o EZend_Validate_File_Extensionqn ?Zend_Validate_File_Existsq'm QZend_Validate_File_ExcludeMimeTypeq(l SZend_Validate_File_ExcludeExtensionqk =Zend_Validate_File_Crc32qj =Zend_Validate_File_Countqi ;Zend_Validate_Exceptionq   j  ^/ eC'_D$xT2|b9




q
V
;
				w	T	0	lN5~[6rB_2i7[2zY5uT8                                 = CZend_Auth_Storage_Exceptionr< -Zend_Auth_Resultr; 3Zend_Auth_Exceptionr: =Zend_Auth_Adapter_OpenIdr9 9Zend_Auth_Adapter_Ldapr8 AZend_Auth_Adapter_InfoCardr7 9Zend_Auth_Adapter_Httpr)6 UZend_Auth_Adapter_Http_Resolver_Filer.5 _Zend_Auth_Adapter_Http_Resolver_Exceptionr 4 CZend_Auth_Adapter_Exceptionr3 =Zend_Auth_Adapter_Digestr2 ?Zend_Auth_Adapter_DbTabler1 -Zend_Applicationr#0 IZend_Application_Resource_Viewr(/ SZend_Application_Resource_Translater&. OZend_Application_Resource_Sessionr%- MZend_Application_Resource_Routerr/, aZend_Application_Resource_ResourceAbstractr)+ UZend_Application_Resource_Navigationr&* OZend_Application_Resource_Modulesr%) MZend_Application_Resource_Localer%( MZend_Application_Resource_Layoutr.' _Zend_Application_Resource_Frontcontrollerr(& SZend_Application_Resource_Exceptionr!% EZend_Application_Resource_Dbr&$ OZend_Application_Module_Bootstrapr'# QZend_Application_Module_Autoloaderr" AZend_Application_Exceptionr)! UZend_Application_Bootstrap_Exceptionr1  eZend_Application_Bootstrap_BootstrapAbstractr) UZend_Application_Bootstrap_Bootstrapr ?Zend_Amf_Value_TraitsInfor- ]Zend_Amf_Value_Messaging_RemotingMessager* WZend_Amf_Value_Messaging_ErrorMessager, [Zend_Amf_Value_Messaging_CommandMessager* WZend_Amf_Value_Messaging_AsyncMessager- ]Zend_Amf_Value_Messaging_ArrayCollectionr0 cZend_Amf_Value_Messaging_AcknowledgeMessager- ]Zend_Amf_Value_Messaging_AbstractMessager! EZend_Amf_Value_MessageHeaderr AZend_Amf_Value_MessageBodyr =Zend_Amf_Value_ByteArrayr AZend_Amf_Util_BinaryStreamr +Zend_Amf_Serverr ?Zend_Amf_Server_Exceptionr /Zend_Amf_Responser 9Zend_Amf_Response_Httpr -Zend_Amf_Requestr 7Zend_Amf_Request_Httpr ?Zend_Amf_Parse_TypeLoaderr ?Zend_Amf_Parse_Serializerr#
 IZend_Amf_Parse_Resource_Streamr(	 SZend_Amf_Parse_Resource_MysqlResultr) UZend_Amf_Parse_Resource_MysqliResultr  CZend_Amf_Parse_OutputStreamr AZend_Amf_Parse_InputStreamr  CZend_Amf_Parse_Deserializerr# IZend_Amf_Parse_Amf3_Serializerr% MZend_Amf_Parse_Amf3_Deserializerr# IZend_Amf_Parse_Amf0_Serializerr% MZend_Amf_Parse_Amf0_Deserializerr  1Zend_Amf_Exceptionr 1Zend_Amf_Constantsr~ 9Zend_Amf_Auth_Abstractr } CZend_Amf_Adobe_Introspectorr| AZend_Amf_Adobe_DbInspectorr{ 3Zend_Amf_Adobe_Authrz Zend_Aclry 'Zend_Acl_Rolerx 9Zend_Acl_Role_Registryr%w MZend_Acl_Role_Registry_Exceptionrv /Zend_Acl_Resourceru 1Zend_Acl_Exceptionrt /Zend_XmlRpc_Valueqs =Zend_XmlRpc_Value_Structqr =Zend_XmlRpc_Value_Stringqq =Zend_XmlRpc_Value_Scalarqp 7Zend_XmlRpc_Value_Nilqo ?Zend_XmlRpc_Value_Integerq n CZend_XmlRpc_Value_Exceptionqm =Zend_XmlRpc_Value_Doubleql AZend_XmlRpc_Value_DateTimeq!k EZend_XmlRpc_Value_Collectionqj ?Zend_XmlRpc_Value_Booleanqi =Zend_XmlRpc_Value_Base64qh ;Zend_XmlRpc_Value_Arrayqg 1Zend_XmlRpc_Serverqf ?Zend_XmlRpc_Server_Systemqe =Zend_XmlRpc_Server_Faultq!d EZend_XmlRpc_Server_Exceptionqc =Zend_XmlRpc_Server_Cacheqb 5Zend_XmlRpc_Responseqa ?Zend_XmlRpc_Response_Httpq` 3Zend_XmlRpc_Requestq_ ?Zend_XmlRpc_Request_Stdinq^ =Zend_XmlRpc_Request_Httpq] /Zend_XmlRpc_Faultq\ 7Zend_XmlRpc_Exceptionq[ 1Zend_XmlRpc_Clientq#Z IZend_XmlRpc_Client_ServerProxyq+Y YZend_XmlRpc_Client_ServerIntrospectionq+X YZend_XmlRpc_Client_IntrospectExceptionq%W MZend_XmlRpc_Client_HttpExceptionq&V OZend_XmlRpc_Client_FaultExceptionq!U EZend_XmlRpc_Client_Exceptionq&T OZend_Wildfire_Protocol_JsonStreamq   Y  iAe9qF[>S


V
				Q	#V!^!e>O%^BlI&rAv<                         -9 ]Zend_InfoCard_Cipher_Symmetric_Interfacer78 qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interfacer77 qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interfacer+6 YZend_InfoCard_Cipher_Pki_Rsa_Interfacer'5 QZend_InfoCard_Cipher_Pki_Interfacer$4 KZend_InfoCard_Adapter_Interfacer'3 QZend_Http_Client_Adapter_Interfacer2 AZend_Gdata_App_MediaSourcer.1 _Zend_Form_Decorator_Marker_File_Interfacer"0 GZend_Form_Decorator_Interfacer/ 7Zend_Filter_Interfacer". GZend_Filter_Encrypt_Interfacer#- IZend_Feed_Reader_FeedInterfacer$, KZend_Feed_Reader_EntryInterfacer + CZend_Feed_Builder_Interfacer * CZend_Db_Statement_Interfacer)) UZend_Crypt_Math_BigInteger_Interfacer+( YZend_Controller_Router_Route_Interfacer%' MZend_Controller_Router_Interfacer)& UZend_Controller_Dispatcher_Interfacer%% MZend_Controller_Action_Interfacer$ 5Zend_Captcha_Adapterr!# EZend_Cache_Backend_Interfacer)" UZend_Cache_Backend_ExtendedInterfacer ! CZend_Auth_Storage_Interfacer   CZend_Auth_Adapter_Interfacer. _Zend_Auth_Adapter_Http_Resolver_Interfacer' QZend_Application_Resource_Resourcer4 kZend_Application_Bootstrap_ResourceBootstrapperr, [Zend_Application_Bootstrap_Bootstrapperr ;Zend_Acl_Role_Interfacer  CZend_Acl_Resource_Interfacer ?Zend_Acl_Assert_Interfacer# IZend_Wildfire_Plugin_Interfaceq$ KZend_Wildfire_Channel_Interfaceq 3Zend_View_Interfaceq' QZend_View_Helper_Navigation_Helperq AZend_View_Helper_Interfaceq ;Zend_Validate_Interfaceq3 iZend_Tool_Project_Profile_FileParser_Interfaceq: wZend_Tool_Project_Context_System_TopLevelRestrictableq5 mZend_Tool_Project_Context_System_NotOverwritableq/ aZend_Tool_Project_Context_System_Interfaceq( SZend_Tool_Project_Context_Interfaceq+ YZend_Tool_Framework_Registry_Interfaceq2 gZend_Tool_Framework_Registry_EnabledInterfaceq- ]Zend_Tool_Framework_Provider_Pretendableq+
 YZend_Tool_Framework_Provider_Interfaceq.	 _Zend_Tool_Framework_Provider_Interactableq; yZend_Tool_Framework_Provider_DocblockManifestInterfaceq+ YZend_Tool_Framework_Metadata_Interfaceq6 oZend_Tool_Framework_Manifest_ProviderManifestableq6 oZend_Tool_Framework_Manifest_MetadataManifestableq+ YZend_Tool_Framework_Manifest_Interfaceq+ YZend_Tool_Framework_Manifest_Indexableq4 kZend_Tool_Framework_Manifest_ActionManifestableq8 sZend_Tool_Framework_Client_Storage_AdapterInterfaceqD  	Zend_Tool_Framework_Client_Response_ContentDecorator_Interfaceq; yZend_Tool_Framework_Client_Interactive_OutputInterfaceq:~ wZend_Tool_Framework_Client_Interactive_InputInterfaceq)} UZend_Tool_Framework_Action_Interfaceq(| SZend_Text_Table_Decorator_Interfaceq{ /Zend_Tag_Taggableq&z OZend_Soap_Wsdl_Strategy_Interfaceq%y MZend_Session_Validator_Interfaceq'x QZend_Session_SaveHandler_Interfaceqw 7Zend_Server_Interfaceq4v kZend_Search_Lucene_Search_Highlighter_Interfaceq!u EZend_Search_Lucene_Interfaceq3t iZend_Search_Lucene_Index_TermsStream_Interfaceq$s KZend_Queue_Stomp_FrameInterfaceq0r cZend_Queue_Stomp_Client_ConnectionInterfaceq(q SZend_Queue_Adapter_AdapterInterfaceqp ?Zend_Pdf_Filter_Interfaceq&o OZend_Pdf_ElementFactory_Interfaceq,n [Zend_Paginator_ScrollingStyle_Interfaceq%m MZend_Paginator_Adapter_Interfaceq$l KZend_Memory_Container_Interfaceq)k UZend_Mail_Storage_Writable_Interfaceq'j QZend_Mail_Storage_Folder_Interfaceqi =Zend_Mail_Part_Interfaceq h CZend_Mail_Message_Interfaceq!g EZend_Log_Formatter_Interfaceqf ?Zend_Log_Filter_Interfaceq'e QZend_Loader_PluginLoader_Interfaceq%d MZend_Loader_Autoloader_Interfaceq0c cZend_Ldap_Node_Schema_ObjectClass_Interfaceq2b gZend_Ldap_Node_Schema_AttributeType_Interfaceq,a [Zend_Ldap_Collection_Iterator_Interfaceq   d  e@d8Z7yZ@R 



p
L
				i	A	#	ye?#g+K X,fH yP&Y4	d=                     '! QZend_Controller_Router_Route_Chainr*  WZend_Controller_Router_Route_Abstractr# IZend_Controller_Router_Rewriter% MZend_Controller_Router_Exceptionr$ KZend_Controller_Router_Abstractr* WZend_Controller_Response_HttpTestCaser" GZend_Controller_Response_Httpr' QZend_Controller_Response_Exceptionr! EZend_Controller_Response_Clir& OZend_Controller_Response_Abstractr# IZend_Controller_Request_Simpler) UZend_Controller_Request_HttpTestCaser! EZend_Controller_Request_Httpr& OZend_Controller_Request_Exceptionr& OZend_Controller_Request_Apache404r% MZend_Controller_Request_Abstractr& OZend_Controller_Plugin_PutHandlerr( SZend_Controller_Plugin_ErrorHandlerr" GZend_Controller_Plugin_Brokerr' QZend_Controller_Plugin_ActionStackr$ KZend_Controller_Plugin_Abstractr 7Zend_Controller_Frontr ?Zend_Controller_Exceptionr(
 SZend_Controller_Dispatcher_Standardr)	 UZend_Controller_Dispatcher_Exceptionr( SZend_Controller_Dispatcher_Abstractr 9Zend_Controller_Actionr( SZend_Controller_Action_HelperBrokerr6 oZend_Controller_Action_HelperBroker_PriorityStackr/ aZend_Controller_Action_Helper_ViewRendererr& OZend_Controller_Action_Helper_Urlr- ]Zend_Controller_Action_Helper_Redirectorr' QZend_Controller_Action_Helper_Jsonr1  eZend_Controller_Action_Helper_FlashMessengerr0 cZend_Controller_Action_Helper_ContextSwitchr<~ {Zend_Controller_Action_Helper_AutoCompleteScriptaculousr3} iZend_Controller_Action_Helper_AutoCompleteDojor8| sZend_Controller_Action_Helper_AutoComplete_Abstractr.{ _Zend_Controller_Action_Helper_AjaxContextr.z _Zend_Controller_Action_Helper_ActionStackr+y YZend_Controller_Action_Helper_Abstractr%x MZend_Controller_Action_Exceptionrw 3Zend_Console_Getoptr"v GZend_Console_Getopt_Exceptionru #Zend_Configrt +Zend_Config_Xmlrs 1Zend_Config_Writerrr 9Zend_Config_Writer_Xmlrq 9Zend_Config_Writer_Inirp =Zend_Config_Writer_Arrayro +Zend_Config_Inirn 7Zend_Config_Exceptionr$m KZend_CodeGenerator_Php_Propertyr1l eZend_CodeGenerator_Php_Property_DefaultValuer%k MZend_CodeGenerator_Php_Parameterr"j GZend_CodeGenerator_Php_Methodr,i [Zend_CodeGenerator_Php_Member_Containerr+h YZend_CodeGenerator_Php_Member_Abstractr g CZend_CodeGenerator_Php_Filer%f MZend_CodeGenerator_Php_Exceptionr$e KZend_CodeGenerator_Php_Docblockr(d SZend_CodeGenerator_Php_Docblock_Tagr/c aZend_CodeGenerator_Php_Docblock_Tag_Returnr.b _Zend_CodeGenerator_Php_Docblock_Tag_Paramr0a cZend_CodeGenerator_Php_Docblock_Tag_Licenser!` EZend_CodeGenerator_Php_Classr _ CZend_CodeGenerator_Php_Bodyr$^ KZend_CodeGenerator_Php_Abstractr!] EZend_CodeGenerator_Exceptionr \ CZend_CodeGenerator_Abstractr[ /Zend_Captcha_WordrZ 9Zend_Captcha_ReCaptcharY 1Zend_Captcha_ImagerX 3Zend_Captcha_FigletrW 9Zend_Captcha_ExceptionrV /Zend_Captcha_DumbrU /Zend_Captcha_BaserT !Zend_CacherS =Zend_Cache_Frontend_PagerR AZend_Cache_Frontend_Outputr!Q EZend_Cache_Frontend_FunctionrP =Zend_Cache_Frontend_FilerO ?Zend_Cache_Frontend_ClassrN 5Zend_Cache_ExceptionrM +Zend_Cache_CorerL 1Zend_Cache_Backendr"K GZend_Cache_Backend_ZendServerr(J SZend_Cache_Backend_ZendServer_ShMemr'I QZend_Cache_Backend_ZendServer_Diskr$H KZend_Cache_Backend_ZendPlatformrG ?Zend_Cache_Backend_Xcacher!F EZend_Cache_Backend_TwoLevelsrE ;Zend_Cache_Backend_TestrD ?Zend_Cache_Backend_Sqliter!C EZend_Cache_Backend_MemcachedrB ;Zend_Cache_Backend_FilerA 9Zend_Cache_Backend_Apcr@ Zend_Authr? ?Zend_Auth_Storage_Sessionr$> KZend_Auth_Storage_NonPersistentr   m  {O*]0	gL5"gA%sN*




`
=
#
					q	Z	2	yX6|Y5mWG4 P#j:rCtDb<       $ KZend_Dojo_Form_Element_Textarear( SZend_Dojo_Form_Element_SubmitButtonr" GZend_Dojo_Form_Element_Sliderr* WZend_Dojo_Form_Element_SimpleTextarear'
 QZend_Dojo_Form_Element_RadioButtonr+	 YZend_Dojo_Form_Element_PasswordTextBoxr) UZend_Dojo_Form_Element_NumberTextBoxr) UZend_Dojo_Form_Element_NumberSpinnerr, [Zend_Dojo_Form_Element_HorizontalSliderr+ YZend_Dojo_Form_Element_FilteringSelectr" GZend_Dojo_Form_Element_Editorr& OZend_Dojo_Form_Element_DijitMultir! EZend_Dojo_Form_Element_Dijitr' QZend_Dojo_Form_Element_DateTextBoxr+  YZend_Dojo_Form_Element_CurrencyTextBoxr$ KZend_Dojo_Form_Element_ComboBoxr$~ KZend_Dojo_Form_Element_CheckBoxr"} GZend_Dojo_Form_Element_Buttonr | CZend_Dojo_Form_DisplayGroupr*{ WZend_Dojo_Form_Decorator_TabContainerr,z [Zend_Dojo_Form_Decorator_StackContainerr,y [Zend_Dojo_Form_Decorator_SplitContainerr'x QZend_Dojo_Form_Decorator_DijitFormr*w WZend_Dojo_Form_Decorator_DijitElementr,v [Zend_Dojo_Form_Decorator_DijitContainerr)u UZend_Dojo_Form_Decorator_ContentPaner-t ]Zend_Dojo_Form_Decorator_BorderContainerr+s YZend_Dojo_Form_Decorator_AccordionPaner0r cZend_Dojo_Form_Decorator_AccordionContainerrq 3Zend_Dojo_Exceptionrp )Zend_Dojo_Dataro 5Zend_Dojo_BuildLayerrn !Zend_Debugrm Zend_Dbrl 'Zend_Db_Tablerk 5Zend_Db_Table_Selectr#j IZend_Db_Table_Select_Exceptionri 5Zend_Db_Table_Rowsetr#h IZend_Db_Table_Rowset_Exceptionr"g GZend_Db_Table_Rowset_Abstractrf /Zend_Db_Table_Rowr e CZend_Db_Table_Row_Exceptionrd AZend_Db_Table_Row_Abstractrc ;Zend_Db_Table_Exceptionrb =Zend_Db_Table_Definitionra 9Zend_Db_Table_Abstractr` /Zend_Db_Statementr_ 7Zend_Db_Statement_Pdor^ ?Zend_Db_Statement_Pdo_Ocir] ?Zend_Db_Statement_Pdo_Ibmr\ =Zend_Db_Statement_Oracler'[ QZend_Db_Statement_Oracle_ExceptionrZ =Zend_Db_Statement_Mysqlir'Y QZend_Db_Statement_Mysqli_Exceptionr X CZend_Db_Statement_ExceptionrW 7Zend_Db_Statement_Db2r$V KZend_Db_Statement_Db2_ExceptionrU )Zend_Db_SelectrT =Zend_Db_Select_ExceptionrS -Zend_Db_ProfilerrR 9Zend_Db_Profiler_QueryrQ =Zend_Db_Profiler_FirebugrP AZend_Db_Profiler_ExceptionrO %Zend_Db_ExprrN /Zend_Db_ExceptionrM AZend_Db_Adapter_Pdo_SqliterL ?Zend_Db_Adapter_Pdo_PgsqlrK ;Zend_Db_Adapter_Pdo_OcirJ ?Zend_Db_Adapter_Pdo_MysqlrI ?Zend_Db_Adapter_Pdo_MssqlrH ;Zend_Db_Adapter_Pdo_Ibmr G CZend_Db_Adapter_Pdo_Ibm_Idsr F CZend_Db_Adapter_Pdo_Ibm_Db2r!E EZend_Db_Adapter_Pdo_AbstractrD 9Zend_Db_Adapter_Oracler%C MZend_Db_Adapter_Oracle_ExceptionrB 9Zend_Db_Adapter_Mysqlir%A MZend_Db_Adapter_Mysqli_Exceptionr@ ?Zend_Db_Adapter_Exceptionr? 3Zend_Db_Adapter_Db2r"> GZend_Db_Adapter_Db2_Exceptionr= =Zend_Db_Adapter_Abstractr< Zend_Dater; 3Zend_Date_Exceptionr: 5Zend_Date_DateObjectr9 -Zend_Date_Citiesr8 'Zend_Currencyr7 ;Zend_Currency_Exceptionr6 !Zend_Cryptr5 )Zend_Crypt_Rsar4 1Zend_Crypt_Rsa_Keyr3 ?Zend_Crypt_Rsa_Key_Publicr2 AZend_Crypt_Rsa_Key_Privater1 +Zend_Crypt_Mathr0 ?Zend_Crypt_Math_Exceptionr/ AZend_Crypt_Math_BigIntegerr#. IZend_Crypt_Math_BigInteger_Gmpr)- UZend_Crypt_Math_BigInteger_Exceptionr&, OZend_Crypt_Math_BigInteger_Bcmathr+ +Zend_Crypt_Hmacr* ?Zend_Crypt_Hmac_Exceptionr) 5Zend_Crypt_Exceptionr( =Zend_Crypt_DiffieHellmanr'' QZend_Crypt_DiffieHellman_Exceptionr!& EZend_Controller_Router_Router(% SZend_Controller_Router_Route_Staticr'$ QZend_Controller_Router_Route_Regexr(# SZend_Controller_Router_Route_Moduler*" WZend_Controller_Router_Route_Hostnamer   g  }O0mH!xN*Z7X+



V
/
					p	U	4	rJ)[8L|LX!uI!sW<$a>      u =Zend_Filter_HtmlEntitiesrt AZend_Filter_File_UpperCasers ;Zend_Filter_File_Renamerr AZend_Filter_File_LowerCaserq =Zend_Filter_File_Encryptrp =Zend_Filter_File_Decryptro 7Zend_Filter_Exceptionrn 3Zend_Filter_Encryptr m CZend_Filter_Encrypt_Opensslrl AZend_Filter_Encrypt_Mcryptrk +Zend_Filter_Dirrj 1Zend_Filter_Digitsri 3Zend_Filter_Decryptrh 5Zend_Filter_Callbackrg 5Zend_Filter_BaseNamerf /Zend_Filter_Alphare /Zend_Filter_Alnumrd 1Zend_File_Transferr!c EZend_File_Transfer_Exceptionr$b KZend_File_Transfer_Adapter_Httpr(a SZend_File_Transfer_Adapter_Abstractr` Zend_Feedr_ 'Zend_Feed_Rssr^ -Zend_Feed_Readerr"] GZend_Feed_Reader_FeedAbstractr\ ?Zend_Feed_Reader_Feed_Rssr[ AZend_Feed_Reader_Feed_Atomr3Z iZend_Feed_Reader_Extension_WellFormedWeb_Entryr,Y [Zend_Feed_Reader_Extension_Thread_Entryr0X cZend_Feed_Reader_Extension_Syndication_Feedr+W YZend_Feed_Reader_Extension_Slash_Entryr,V [Zend_Feed_Reader_Extension_Podcast_Feedr-U ]Zend_Feed_Reader_Extension_Podcast_Entryr,T [Zend_Feed_Reader_Extension_FeedAbstractr-S ]Zend_Feed_Reader_Extension_EntryAbstractr/R aZend_Feed_Reader_Extension_DublinCore_Feedr0Q cZend_Feed_Reader_Extension_DublinCore_Entryr4P kZend_Feed_Reader_Extension_CreativeCommons_Feedr5O mZend_Feed_Reader_Extension_CreativeCommons_Entryr-N ]Zend_Feed_Reader_Extension_Content_Entryr)M UZend_Feed_Reader_Extension_Atom_Feedr*L WZend_Feed_Reader_Extension_Atom_Entryr#K IZend_Feed_Reader_EntryAbstractrJ AZend_Feed_Reader_Entry_Rssr I CZend_Feed_Reader_Entry_AtomrH 3Zend_Feed_ExceptionrG 3Zend_Feed_Entry_RssrF 5Zend_Feed_Entry_AtomrE =Zend_Feed_Entry_AbstractrD /Zend_Feed_ElementrC /Zend_Feed_BuilderrB =Zend_Feed_Builder_Headerr$A KZend_Feed_Builder_Header_Itunesr @ CZend_Feed_Builder_Exceptionr? ;Zend_Feed_Builder_Entryr> )Zend_Feed_Atomr= 1Zend_Feed_Abstractr< )Zend_Exceptionr; )Zend_Dom_Queryr: 7Zend_Dom_Query_Resultr9 =Zend_Dom_Query_Css2Xpathr8 1Zend_Dom_Exceptionr7 Zend_Dojor)6 UZend_Dojo_View_Helper_VerticalSliderr,5 [Zend_Dojo_View_Helper_ValidationTextBoxr&4 OZend_Dojo_View_Helper_TimeTextBoxr"3 GZend_Dojo_View_Helper_TextBoxr#2 IZend_Dojo_View_Helper_Textarear'1 QZend_Dojo_View_Helper_TabContainerr'0 QZend_Dojo_View_Helper_SubmitButtonr)/ UZend_Dojo_View_Helper_StackContainerr). UZend_Dojo_View_Helper_SplitContainerr!- EZend_Dojo_View_Helper_Sliderr), UZend_Dojo_View_Helper_SimpleTextarear&+ OZend_Dojo_View_Helper_RadioButtonr** WZend_Dojo_View_Helper_PasswordTextBoxr() SZend_Dojo_View_Helper_NumberTextBoxr(( SZend_Dojo_View_Helper_NumberSpinnerr+' YZend_Dojo_View_Helper_HorizontalSliderr& AZend_Dojo_View_Helper_Formr*% WZend_Dojo_View_Helper_FilteringSelectr!$ EZend_Dojo_View_Helper_Editorr# AZend_Dojo_View_Helper_Dojor)" UZend_Dojo_View_Helper_Dojo_Containerr)! UZend_Dojo_View_Helper_DijitContainerr   CZend_Dojo_View_Helper_Dijitr& OZend_Dojo_View_Helper_DateTextBoxr& OZend_Dojo_View_Helper_CustomDijitr* WZend_Dojo_View_Helper_CurrencyTextBoxr& OZend_Dojo_View_Helper_ContentPaner# IZend_Dojo_View_Helper_ComboBoxr# IZend_Dojo_View_Helper_CheckBoxr! EZend_Dojo_View_Helper_Buttonr* WZend_Dojo_View_Helper_BorderContainerr( SZend_Dojo_View_Helper_AccordionPaner- ]Zend_Dojo_View_Helper_AccordionContainerr =Zend_Dojo_View_Exceptionr )Zend_Dojo_Formr 9Zend_Dojo_Form_SubFormr* WZend_Dojo_Form_Element_VerticalSliderr- ]Zend_Dojo_Form_Element_ValidationTextBoxr' QZend_Dojo_Form_Element_TimeTextBoxr# IZend_Dojo_Form_Element_TextBoxr   i  \<|S%zN pA-nF#




m
F
"
 				g	@	!	 xY8gG&mSA{^=lE|X2kCzU4                        #^ IZend_Gdata_App_FeedEntryParentr] 3Zend_Gdata_App_Feedr\ =Zend_Gdata_App_Extensionr![ EZend_Gdata_App_Extension_Urir%Z MZend_Gdata_App_Extension_Updatedr#Y IZend_Gdata_App_Extension_Titler"X GZend_Gdata_App_Extension_Textr%W MZend_Gdata_App_Extension_Summaryr&V OZend_Gdata_App_Extension_Subtitler$U KZend_Gdata_App_Extension_Sourcer$T KZend_Gdata_App_Extension_Rightsr'S QZend_Gdata_App_Extension_Publishedr$R KZend_Gdata_App_Extension_Personr"Q GZend_Gdata_App_Extension_Namer"P GZend_Gdata_App_Extension_Logor"O GZend_Gdata_App_Extension_Linkr N CZend_Gdata_App_Extension_Idr"M GZend_Gdata_App_Extension_Iconr'L QZend_Gdata_App_Extension_Generatorr#K IZend_Gdata_App_Extension_Emailr%J MZend_Gdata_App_Extension_Elementr$I KZend_Gdata_App_Extension_Editedr#H IZend_Gdata_App_Extension_Draftr%G MZend_Gdata_App_Extension_Controlr)F UZend_Gdata_App_Extension_Contributorr%E MZend_Gdata_App_Extension_Contentr&D OZend_Gdata_App_Extension_Categoryr$C KZend_Gdata_App_Extension_AuthorrB =Zend_Gdata_App_ExceptionrA 5Zend_Gdata_App_Entryr,@ [Zend_Gdata_App_CaptchaRequiredExceptionr#? IZend_Gdata_App_BaseMediaSourcer> 3Zend_Gdata_App_Baser*= WZend_Gdata_App_BadMethodCallExceptionr!< EZend_Gdata_App_AuthExceptionr; Zend_Formr: /Zend_Form_SubFormr9 3Zend_Form_Exceptionr8 /Zend_Form_Elementr7 ;Zend_Form_Element_Xhtmlr6 AZend_Form_Element_Textarear5 9Zend_Form_Element_Textr4 =Zend_Form_Element_Submitr3 =Zend_Form_Element_Selectr2 ;Zend_Form_Element_Resetr1 ;Zend_Form_Element_Radior0 AZend_Form_Element_Passwordr"/ GZend_Form_Element_Multiselectr$. KZend_Form_Element_MultiCheckboxr- ;Zend_Form_Element_Multir, ;Zend_Form_Element_Imager+ =Zend_Form_Element_Hiddenr* 9Zend_Form_Element_Hashr) 9Zend_Form_Element_Filer ( CZend_Form_Element_Exceptionr' AZend_Form_Element_Checkboxr& ?Zend_Form_Element_Captchar% =Zend_Form_Element_Buttonr$ 9Zend_Form_DisplayGroupr## IZend_Form_Decorator_ViewScriptr#" IZend_Form_Decorator_ViewHelperr ! CZend_Form_Decorator_Tooltipr(  SZend_Form_Decorator_PrepareElementsr ?Zend_Form_Decorator_Labelr ?Zend_Form_Decorator_Imager  CZend_Form_Decorator_HtmlTagr# IZend_Form_Decorator_FormErrorsr% MZend_Form_Decorator_FormElementsr =Zend_Form_Decorator_Formr =Zend_Form_Decorator_Filer! EZend_Form_Decorator_Fieldsetr" GZend_Form_Decorator_Exceptionr AZend_Form_Decorator_Errorsr$ KZend_Form_Decorator_DtDdWrapperr$ KZend_Form_Decorator_Descriptionr  CZend_Form_Decorator_Captchar% MZend_Form_Decorator_Captcha_Wordr! EZend_Form_Decorator_Callbackr! EZend_Form_Decorator_Abstractr #Zend_Filterr+ YZend_Filter_Word_UnderscoreToSeparatorr& OZend_Filter_Word_UnderscoreToDashr+ YZend_Filter_Word_UnderscoreToCamelCaser* WZend_Filter_Word_SeparatorToSeparatorr%
 MZend_Filter_Word_SeparatorToDashr*	 WZend_Filter_Word_SeparatorToCamelCaser( SZend_Filter_Word_Separator_Abstractr& OZend_Filter_Word_DashToUnderscorer% MZend_Filter_Word_DashToSeparatorr% MZend_Filter_Word_DashToCamelCaser+ YZend_Filter_Word_CamelCaseToUnderscorer* WZend_Filter_Word_CamelCaseToSeparatorr% MZend_Filter_Word_CamelCaseToDashr 7Zend_Filter_StripTagsr  ?Zend_Filter_StripNewlinesr 9Zend_Filter_StringTrimr~ ?Zend_Filter_StringToUpperr} ?Zend_Filter_StringToLowerr| 5Zend_Filter_RealPathr{ ;Zend_Filter_PregReplacer&z OZend_Filter_NormalizedToLocalizedr&y OZend_Filter_LocalizedToNormalizedrx +Zend_Filter_Intrw /Zend_Filter_Inputrv 7Zend_Filter_Inflectorr   _  `*kBY-tO+yG



e
(				}	a	B	\(c4V+}W0Y/	e1|T#fE(                                   $= KZend_Gdata_Gapps_EmailListEntryr< +Zend_Gdata_Feedr; 5Zend_Gdata_Extensionr: =Zend_Gdata_Extension_Whor9 AZend_Gdata_Extension_Wherer8 ?Zend_Gdata_Extension_Whenr$7 KZend_Gdata_Extension_Visibilityr&6 OZend_Gdata_Extension_Transparencyr"5 GZend_Gdata_Extension_Reminderr-4 ]Zend_Gdata_Extension_RecurrenceExceptionr$3 KZend_Gdata_Extension_Recurrencer 2 CZend_Gdata_Extension_Ratingr'1 QZend_Gdata_Extension_OriginalEventr00 cZend_Gdata_Extension_OpenSearchTotalResultsr./ _Zend_Gdata_Extension_OpenSearchStartIndexr0. cZend_Gdata_Extension_OpenSearchItemsPerPager"- GZend_Gdata_Extension_FeedLinkr*, WZend_Gdata_Extension_ExtendedPropertyr%+ MZend_Gdata_Extension_EventStatusr#* IZend_Gdata_Extension_EntryLinkr") GZend_Gdata_Extension_Commentsr&( OZend_Gdata_Extension_AttendeeTyper(' SZend_Gdata_Extension_AttendeeStatusr& +Zend_Gdata_Exifr% 5Zend_Gdata_Exif_Feedr#$ IZend_Gdata_Exif_Extension_Timer## IZend_Gdata_Exif_Extension_Tagsr$" KZend_Gdata_Exif_Extension_Modelr#! IZend_Gdata_Exif_Extension_Maker"  GZend_Gdata_Exif_Extension_Isor, [Zend_Gdata_Exif_Extension_ImageUniqueIdr$ KZend_Gdata_Exif_Extension_FStopr* WZend_Gdata_Exif_Extension_FocalLengthr$ KZend_Gdata_Exif_Extension_Flashr' QZend_Gdata_Exif_Extension_Exposurer' QZend_Gdata_Exif_Extension_Distancer 7Zend_Gdata_Exif_Entryr -Zend_Gdata_Entryr 7Zend_Gdata_DublinCorer* WZend_Gdata_DublinCore_Extension_Titler, [Zend_Gdata_DublinCore_Extension_Subjectr+ YZend_Gdata_DublinCore_Extension_Rightsr. _Zend_Gdata_DublinCore_Extension_Publisherr- ]Zend_Gdata_DublinCore_Extension_Languager/ aZend_Gdata_DublinCore_Extension_Identifierr+ YZend_Gdata_DublinCore_Extension_Formatr0 cZend_Gdata_DublinCore_Extension_Descriptionr) UZend_Gdata_DublinCore_Extension_Dater, [Zend_Gdata_DublinCore_Extension_Creatorr +Zend_Gdata_Docsr 7Zend_Gdata_Docs_Queryr%
 MZend_Gdata_Docs_DocumentListFeedr&	 OZend_Gdata_Docs_DocumentListEntryr 9Zend_Gdata_ClientLoginr 3Zend_Gdata_Calendarr! EZend_Gdata_Calendar_ListFeedr" GZend_Gdata_Calendar_ListEntryr- ]Zend_Gdata_Calendar_Extension_WebContentr+ YZend_Gdata_Calendar_Extension_Timezoner9 uZend_Gdata_Calendar_Extension_SendEventNotificationsr+ YZend_Gdata_Calendar_Extension_Selectedr+  YZend_Gdata_Calendar_Extension_QuickAddr' QZend_Gdata_Calendar_Extension_Linkr)~ UZend_Gdata_Calendar_Extension_Hiddenr(} SZend_Gdata_Calendar_Extension_Colorr.| _Zend_Gdata_Calendar_Extension_AccessLevelr#{ IZend_Gdata_Calendar_EventQueryr"z GZend_Gdata_Calendar_EventFeedr#y IZend_Gdata_Calendar_EventEntryrx -Zend_Gdata_Booksr!w EZend_Gdata_Books_VolumeQueryr v CZend_Gdata_Books_VolumeFeedr!u EZend_Gdata_Books_VolumeEntryr+t YZend_Gdata_Books_Extension_Viewabilityr-s ]Zend_Gdata_Books_Extension_ThumbnailLinkr&r OZend_Gdata_Books_Extension_Reviewr+q YZend_Gdata_Books_Extension_PreviewLinkr(p SZend_Gdata_Books_Extension_InfoLinkr-o ]Zend_Gdata_Books_Extension_Embeddabilityr)n UZend_Gdata_Books_Extension_BooksLinkr-m ]Zend_Gdata_Books_Extension_BooksCategoryr.l _Zend_Gdata_Books_Extension_AnnotationLinkr$k KZend_Gdata_Books_CollectionFeedr%j MZend_Gdata_Books_CollectionEntryri 1Zend_Gdata_AuthSubrh )Zend_Gdata_Appr$g KZend_Gdata_App_VersionExceptionrf 3Zend_Gdata_App_Utilr#e IZend_Gdata_App_MediaFileSourcerd ?Zend_Gdata_App_MediaEntryr2c gZend_Gdata_App_LoggingHttpClientAdapterSocketrb AZend_Gdata_App_IOExceptionr,a [Zend_Gdata_App_InvalidArgumentExceptionr!` EZend_Gdata_App_HttpExceptionr$_ KZend_Gdata_App_FeedSourceParentr   `  P V-pM+^<pS&




y
R
,
				p	B	$	O `1oA#
`;b7~Q`4zQ#      % MZend_Gdata_Photos_Extension_Userr* WZend_Gdata_Photos_Extension_Timestampr* WZend_Gdata_Photos_Extension_Thumbnailr% MZend_Gdata_Photos_Extension_Sizer) UZend_Gdata_Photos_Extension_Rotationr+ YZend_Gdata_Photos_Extension_QuotaLimitr- ]Zend_Gdata_Photos_Extension_QuotaCurrentr) UZend_Gdata_Photos_Extension_Positionr( SZend_Gdata_Photos_Extension_PhotoIdr3 iZend_Gdata_Photos_Extension_NumPhotosRemainingr* WZend_Gdata_Photos_Extension_NumPhotosr) UZend_Gdata_Photos_Extension_Nicknamer% MZend_Gdata_Photos_Extension_Namer2 gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumr) UZend_Gdata_Photos_Extension_Locationr# IZend_Gdata_Photos_Extension_Idr' QZend_Gdata_Photos_Extension_Heightr2 gZend_Gdata_Photos_Extension_CommentingEnabledr- ]Zend_Gdata_Photos_Extension_CommentCountr'
 QZend_Gdata_Photos_Extension_Clientr)	 UZend_Gdata_Photos_Extension_Checksumr* WZend_Gdata_Photos_Extension_BytesUsedr( SZend_Gdata_Photos_Extension_AlbumIdr' QZend_Gdata_Photos_Extension_Accessr# IZend_Gdata_Photos_CommentEntryr! EZend_Gdata_Photos_AlbumQueryr  CZend_Gdata_Photos_AlbumFeedr! EZend_Gdata_Photos_AlbumEntryr 3Zend_Gdata_MimeFiler  ?Zend_Gdata_MimeBodyStringr AZend_Gdata_MediaMimeStreamr~ -Zend_Gdata_Mediar} 7Zend_Gdata_Media_Feedr*| WZend_Gdata_Media_Extension_MediaTitler.{ _Zend_Gdata_Media_Extension_MediaThumbnailr)z UZend_Gdata_Media_Extension_MediaTextr0y cZend_Gdata_Media_Extension_MediaRestrictionr+x YZend_Gdata_Media_Extension_MediaRatingr+w YZend_Gdata_Media_Extension_MediaPlayerr-v ]Zend_Gdata_Media_Extension_MediaKeywordsr)u UZend_Gdata_Media_Extension_MediaHashr*t WZend_Gdata_Media_Extension_MediaGroupr0s cZend_Gdata_Media_Extension_MediaDescriptionr+r YZend_Gdata_Media_Extension_MediaCreditr.q _Zend_Gdata_Media_Extension_MediaCopyrightr,p [Zend_Gdata_Media_Extension_MediaContentr-o ]Zend_Gdata_Media_Extension_MediaCategoryrn 9Zend_Gdata_Media_Entryrm AZend_Gdata_Kind_EventEntryrl 7Zend_Gdata_HttpClientr*k WZend_Gdata_HttpAdapterStreamingSocketr)j UZend_Gdata_HttpAdapterStreamingProxyri /Zend_Gdata_Healthrh ;Zend_Gdata_Health_Queryr&g OZend_Gdata_Health_ProfileListFeedr'f QZend_Gdata_Health_ProfileListEntryr"e GZend_Gdata_Health_ProfileFeedr#d IZend_Gdata_Health_ProfileEntryr$c KZend_Gdata_Health_Extension_Ccrrb )Zend_Gdata_Geora 3Zend_Gdata_Geo_Feedr$` KZend_Gdata_Geo_Extension_GmlPosr&_ OZend_Gdata_Geo_Extension_GmlPointr)^ UZend_Gdata_Geo_Extension_GeoRssWherer] 5Zend_Gdata_Geo_Entryr\ -Zend_Gdata_Gbaser"[ GZend_Gdata_Gbase_SnippetQueryr!Z EZend_Gdata_Gbase_SnippetFeedr"Y GZend_Gdata_Gbase_SnippetEntryrX 9Zend_Gdata_Gbase_QueryrW AZend_Gdata_Gbase_ItemQueryrV ?Zend_Gdata_Gbase_ItemFeedrU AZend_Gdata_Gbase_ItemEntryrT 7Zend_Gdata_Gbase_Feedr-S ]Zend_Gdata_Gbase_Extension_BaseAttributerR 9Zend_Gdata_Gbase_EntryrQ -Zend_Gdata_GappsrP AZend_Gdata_Gapps_UserQueryrO ?Zend_Gdata_Gapps_UserFeedrN AZend_Gdata_Gapps_UserEntryr&M OZend_Gdata_Gapps_ServiceExceptionrL 9Zend_Gdata_Gapps_Queryr#K IZend_Gdata_Gapps_NicknameQueryr"J GZend_Gdata_Gapps_NicknameFeedr#I IZend_Gdata_Gapps_NicknameEntryr%H MZend_Gdata_Gapps_Extension_Quotar(G SZend_Gdata_Gapps_Extension_Nicknamer$F KZend_Gdata_Gapps_Extension_Namer%E MZend_Gdata_Gapps_Extension_Loginr)D UZend_Gdata_Gapps_Extension_EmailListrC 9Zend_Gdata_Gapps_Errorr-B ]Zend_Gdata_Gapps_EmailListRecipientQueryr,A [Zend_Gdata_Gapps_EmailListRecipientFeedr-@ ]Zend_Gdata_Gapps_EmailListRecipientEntryr$? KZend_Gdata_Gapps_EmailListQueryr#> IZend_Gdata_Gapps_EmailListFeedr   [  Z6iP&vCb1[3



h
?
				Z	,vH], xH_1wGgAoBrL1                 'x QZend_Http_Client_Adapter_Exceptionr"w GZend_Http_Client_Adapter_Curlrv !Zend_Gdataru 1Zend_Gdata_YouTuber"t GZend_Gdata_YouTube_VideoQueryr!s EZend_Gdata_YouTube_VideoFeedr"r GZend_Gdata_YouTube_VideoEntryr(q SZend_Gdata_YouTube_UserProfileEntryr(p SZend_Gdata_YouTube_SubscriptionFeedr)o UZend_Gdata_YouTube_SubscriptionEntryr)n UZend_Gdata_YouTube_PlaylistVideoFeedr*m WZend_Gdata_YouTube_PlaylistVideoEntryr(l SZend_Gdata_YouTube_PlaylistListFeedr)k UZend_Gdata_YouTube_PlaylistListEntryr"j GZend_Gdata_YouTube_MediaEntryr!i EZend_Gdata_YouTube_InboxFeedr"h GZend_Gdata_YouTube_InboxEntryr)g UZend_Gdata_YouTube_Extension_VideoIdr*f WZend_Gdata_YouTube_Extension_Usernamer*e WZend_Gdata_YouTube_Extension_Uploadedr'd QZend_Gdata_YouTube_Extension_Tokenr(c SZend_Gdata_YouTube_Extension_Statusr,b [Zend_Gdata_YouTube_Extension_Statisticsr'a QZend_Gdata_YouTube_Extension_Stater(` SZend_Gdata_YouTube_Extension_Schoolr-_ ]Zend_Gdata_YouTube_Extension_ReleaseDater.^ _Zend_Gdata_YouTube_Extension_Relationshipr*] WZend_Gdata_YouTube_Extension_Recordedr&\ OZend_Gdata_YouTube_Extension_Racyr-[ ]Zend_Gdata_YouTube_Extension_QueryStringr)Z UZend_Gdata_YouTube_Extension_Privater*Y WZend_Gdata_YouTube_Extension_Positionr/X aZend_Gdata_YouTube_Extension_PlaylistTitler,W [Zend_Gdata_YouTube_Extension_PlaylistIdr,V [Zend_Gdata_YouTube_Extension_Occupationr)U UZend_Gdata_YouTube_Extension_NoEmbedr'T QZend_Gdata_YouTube_Extension_Musicr(S SZend_Gdata_YouTube_Extension_Moviesr-R ]Zend_Gdata_YouTube_Extension_MediaRatingr,Q [Zend_Gdata_YouTube_Extension_MediaGroupr-P ]Zend_Gdata_YouTube_Extension_MediaCreditr.O _Zend_Gdata_YouTube_Extension_MediaContentr*N WZend_Gdata_YouTube_Extension_Locationr&M OZend_Gdata_YouTube_Extension_Linkr*L WZend_Gdata_YouTube_Extension_LastNamer*K WZend_Gdata_YouTube_Extension_Hometownr)J UZend_Gdata_YouTube_Extension_Hobbiesr(I SZend_Gdata_YouTube_Extension_Genderr+H YZend_Gdata_YouTube_Extension_FirstNamer*G WZend_Gdata_YouTube_Extension_Durationr-F ]Zend_Gdata_YouTube_Extension_Descriptionr+E YZend_Gdata_YouTube_Extension_CountHintr)D UZend_Gdata_YouTube_Extension_Controlr)C UZend_Gdata_YouTube_Extension_Companyr'B QZend_Gdata_YouTube_Extension_Booksr%A MZend_Gdata_YouTube_Extension_Ager)@ UZend_Gdata_YouTube_Extension_AboutMer#? IZend_Gdata_YouTube_ContactFeedr$> KZend_Gdata_YouTube_ContactEntryr#= IZend_Gdata_YouTube_CommentFeedr$< KZend_Gdata_YouTube_CommentEntryr$; KZend_Gdata_YouTube_ActivityFeedr%: MZend_Gdata_YouTube_ActivityEntryr9 ;Zend_Gdata_Spreadsheetsr*8 WZend_Gdata_Spreadsheets_WorksheetFeedr+7 YZend_Gdata_Spreadsheets_WorksheetEntryr,6 [Zend_Gdata_Spreadsheets_SpreadsheetFeedr-5 ]Zend_Gdata_Spreadsheets_SpreadsheetEntryr&4 OZend_Gdata_Spreadsheets_ListQueryr%3 MZend_Gdata_Spreadsheets_ListFeedr&2 OZend_Gdata_Spreadsheets_ListEntryr/1 aZend_Gdata_Spreadsheets_Extension_RowCountr-0 ]Zend_Gdata_Spreadsheets_Extension_Customr// aZend_Gdata_Spreadsheets_Extension_ColCountr+. YZend_Gdata_Spreadsheets_Extension_Cellr*- WZend_Gdata_Spreadsheets_DocumentQueryr&, OZend_Gdata_Spreadsheets_CellQueryr%+ MZend_Gdata_Spreadsheets_CellFeedr&* OZend_Gdata_Spreadsheets_CellEntryr) -Zend_Gdata_Queryr( /Zend_Gdata_Photosr ' CZend_Gdata_Photos_UserQueryr& AZend_Gdata_Photos_UserFeedr % CZend_Gdata_Photos_UserEntryr$ AZend_Gdata_Photos_TagEntryr!# EZend_Gdata_Photos_PhotoQueryr " CZend_Gdata_Photos_PhotoFeedr!! EZend_Gdata_Photos_PhotoEntryr&  OZend_Gdata_Photos_Extension_Widthr' QZend_Gdata_Photos_Extension_Weightr( SZend_Gdata_Photos_Extension_Versionr   k  hO6n<eH+sBuK!



[
#					r	X	<	%	}V4fH4^AmN.cDH`BkH'                             c #Zend_Localerb -Zend_Locale_Mathra =Zend_Locale_Math_PhpMathr` AZend_Locale_Math_Exceptionr_ 1Zend_Locale_Formatr^ 7Zend_Locale_Exceptionr] -Zend_Locale_Datar!\ EZend_Locale_Data_Translationr[ #Zend_LoaderrZ =Zend_Loader_PluginLoaderr'Y QZend_Loader_PluginLoader_ExceptionrX 7Zend_Loader_ExceptionrW 9Zend_Loader_Autoloaderr$V KZend_Loader_Autoloader_ResourcerU Zend_LdaprT )Zend_Ldap_NoderS 7Zend_Ldap_Node_Schemar#R IZend_Ldap_Node_Schema_OpenLdapr/Q aZend_Ldap_Node_Schema_ObjectClass_OpenLdapr6P oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectoryrO AZend_Ldap_Node_Schema_Itemr1N eZend_Ldap_Node_Schema_AttributeType_OpenLdapr8M sZend_Ldap_Node_Schema_AttributeType_ActiveDirectoryr*L WZend_Ldap_Node_Schema_ActiveDirectoryrK 9Zend_Ldap_Node_RootDser$J KZend_Ldap_Node_RootDse_OpenLdapr&I OZend_Ldap_Node_RootDse_eDirectoryr+H YZend_Ldap_Node_RootDse_ActiveDirectoryrG ?Zend_Ldap_Node_Collectionr$F KZend_Ldap_Node_ChildrenIteratorrE ;Zend_Ldap_Node_AbstractrD 9Zend_Ldap_Ldif_EncoderrC -Zend_Ldap_FilterrB ;Zend_Ldap_Filter_StringrA 3Zend_Ldap_Filter_Orr@ 5Zend_Ldap_Filter_Notr? 7Zend_Ldap_Filter_Maskr> =Zend_Ldap_Filter_Logicalr= AZend_Ldap_Filter_Exceptionr< 5Zend_Ldap_Filter_Andr; ?Zend_Ldap_Filter_Abstractr: 3Zend_Ldap_Exceptionr9 %Zend_Ldap_Dnr8 3Zend_Ldap_Converterr7 5Zend_Ldap_Collectionr*6 WZend_Ldap_Collection_Iterator_Defaultr5 3Zend_Ldap_Attributer4 #Zend_Layoutr3 7Zend_Layout_Exceptionr)2 UZend_Layout_Controller_Plugin_Layoutr01 cZend_Layout_Controller_Action_Helper_Layoutr0 Zend_Jsonr/ -Zend_Json_Serverr. 5Zend_Json_Server_Smdr!- EZend_Json_Server_Smd_Servicer, ?Zend_Json_Server_Responser#+ IZend_Json_Server_Response_Httpr* =Zend_Json_Server_Requestr") GZend_Json_Server_Request_Httpr( AZend_Json_Server_Exceptionr' 9Zend_Json_Server_Errorr& 9Zend_Json_Server_Cacher% )Zend_Json_Exprr$ 3Zend_Json_Exceptionr# /Zend_Json_Encoderr" /Zend_Json_Decoderr! 'Zend_InfoCardr-  ]Zend_InfoCard_Xml_SecurityTokenReferencer AZend_InfoCard_Xml_Securityr) UZend_InfoCard_Xml_Security_Transformr4 kZend_InfoCard_Xml_Security_Transform_XmlExcC14Nr3 iZend_InfoCard_Xml_Security_Transform_Exceptionr< {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignaturer) UZend_InfoCard_Xml_Security_Exceptionr ?Zend_InfoCard_Xml_KeyInfor& OZend_InfoCard_Xml_KeyInfo_XmlDSigr& OZend_InfoCard_Xml_KeyInfo_Defaultr' QZend_InfoCard_Xml_KeyInfo_Abstractr  CZend_InfoCard_Xml_Exceptionr# IZend_InfoCard_Xml_EncryptedKeyr$ KZend_InfoCard_Xml_EncryptedDatar+ YZend_InfoCard_Xml_EncryptedData_XmlEncr- ]Zend_InfoCard_Xml_EncryptedData_Abstractr ?Zend_InfoCard_Xml_Elementr  CZend_InfoCard_Xml_Assertionr% MZend_InfoCard_Xml_Assertion_Samlr ;Zend_InfoCard_Exceptionr% MZend_InfoCard_Exception_Abstractr 5Zend_InfoCard_Claimsr
 5Zend_InfoCard_Cipherr5	 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcr5 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcr4 kZend_InfoCard_Cipher_Symmetric_Adapter_Abstractr) UZend_InfoCard_Cipher_Pki_Adapter_Rsar. _Zend_InfoCard_Cipher_Pki_Adapter_Abstractr# IZend_InfoCard_Cipher_Exceptionr$ KZend_InfoCard_Adapter_Exceptionr" GZend_InfoCard_Adapter_Defaultr 1Zend_Http_Responser  3Zend_Http_Exceptionr 3Zend_Http_CookieJarr~ -Zend_Http_Cookier} -Zend_Http_Clientr| AZend_Http_Client_Exceptionr"{ GZend_Http_Client_Adapter_Testr$z KZend_Http_Client_Adapter_Socketr#y IZend_Http_Client_Adapter_Proxyr   w `>lM.qL,iF"qR3



~
]
K
-
					u	Q	4	}bC!vU;rM'	lR;)nDyT*]5j<%                  Z 5Zend_Pdf_Action_GoTorY )Zend_Paginatorr*X WZend_Paginator_ScrollingStyle_Slidingr*W WZend_Paginator_ScrollingStyle_Jumpingr*V WZend_Paginator_ScrollingStyle_Elasticr&U OZend_Paginator_ScrollingStyle_AllrT =Zend_Paginator_Exceptionr S CZend_Paginator_Adapter_Nullr$R KZend_Paginator_Adapter_Iteratorr)Q UZend_Paginator_Adapter_DbTableSelectr$P KZend_Paginator_Adapter_DbSelectr!O EZend_Paginator_Adapter_ArrayrN #Zend_OpenIdrM 5Zend_OpenId_ProviderrL ?Zend_OpenId_Provider_Userr&K OZend_OpenId_Provider_User_Sessionr!J EZend_OpenId_Provider_Storager&I OZend_OpenId_Provider_Storage_FilerH 7Zend_OpenId_ExtensionrG AZend_OpenId_Extension_SregrF 7Zend_OpenId_ExceptionrE 5Zend_OpenId_Consumerr!D EZend_OpenId_Consumer_Storager&C OZend_OpenId_Consumer_Storage_FilerB +Zend_NavigationrA 5Zend_Navigation_Pager@ =Zend_Navigation_Page_Urir? =Zend_Navigation_Page_Mvcr> ?Zend_Navigation_Exceptionr= ?Zend_Navigation_Containerr< Zend_Mimer; )Zend_Mime_Partr: /Zend_Mime_Messager9 3Zend_Mime_Exceptionr8 -Zend_Mime_Decoder7 #Zend_Memoryr6 /Zend_Memory_Valuer5 3Zend_Memory_Managerr4 7Zend_Memory_Exceptionr3 7Zend_Memory_Containerr"2 GZend_Memory_Container_Movabler!1 EZend_Memory_Container_Lockedr!0 EZend_Memory_AccessControllerr/ 3Zend_Measure_Weightr. 3Zend_Measure_Volumer%- MZend_Measure_Viscosity_Kinematicr#, IZend_Measure_Viscosity_Dynamicr+ 3Zend_Measure_Torquer* /Zend_Measure_Timer) =Zend_Measure_Temperaturer( 1Zend_Measure_Speedr' 7Zend_Measure_Pressurer& 1Zend_Measure_Powerr% 3Zend_Measure_Numberr$ 9Zend_Measure_Lightnessr# 3Zend_Measure_Lengthr" ?Zend_Measure_Illuminationr! 9Zend_Measure_Frequencyr  1Zend_Measure_Forcer =Zend_Measure_Flow_Volumer 9Zend_Measure_Flow_Moler 9Zend_Measure_Flow_Massr 9Zend_Measure_Exceptionr 3Zend_Measure_Energyr 5Zend_Measure_Densityr 5Zend_Measure_Currentr  CZend_Measure_Cooking_Weightr  CZend_Measure_Cooking_Volumer =Zend_Measure_Capacitancer 3Zend_Measure_Binaryr /Zend_Measure_Arear 1Zend_Measure_Angler ?Zend_Measure_Accelerationr 7Zend_Measure_Abstractr Zend_Mailr =Zend_Mail_Transport_Smtpr! EZend_Mail_Transport_Sendmailr" GZend_Mail_Transport_Exceptionr! EZend_Mail_Transport_Abstractr /Zend_Mail_Storager'
 QZend_Mail_Storage_Writable_Maildirr	 9Zend_Mail_Storage_Pop3r 9Zend_Mail_Storage_Mboxr ?Zend_Mail_Storage_Maildirr 9Zend_Mail_Storage_Imapr =Zend_Mail_Storage_Folderr" GZend_Mail_Storage_Folder_Mboxr% MZend_Mail_Storage_Folder_Maildirr  CZend_Mail_Storage_Exceptionr AZend_Mail_Storage_Abstractr  ;Zend_Mail_Protocol_Smtpr' QZend_Mail_Protocol_Smtp_Auth_Plainr'~ QZend_Mail_Protocol_Smtp_Auth_Loginr)} UZend_Mail_Protocol_Smtp_Auth_Crammd5r| ;Zend_Mail_Protocol_Pop3r{ ;Zend_Mail_Protocol_Imapr!z EZend_Mail_Protocol_Exceptionr y CZend_Mail_Protocol_Abstractrx )Zend_Mail_Partrw 3Zend_Mail_Part_Filerv /Zend_Mail_Messageru 9Zend_Mail_Message_Filert 3Zend_Mail_Exceptionrs Zend_Logrr 9Zend_Log_Writer_Syslogrq 9Zend_Log_Writer_Streamrp 5Zend_Log_Writer_Nullro 5Zend_Log_Writer_Mockrn 5Zend_Log_Writer_Mailrm ;Zend_Log_Writer_Firebugrl 1Zend_Log_Writer_Dbrk =Zend_Log_Writer_Abstractrj 9Zend_Log_Formatter_Xmlri ?Zend_Log_Formatter_Simplerh AZend_Log_Formatter_Firebugrg =Zend_Log_Filter_Suppressrf =Zend_Log_Filter_Priorityre ;Zend_Log_Filter_Messagerd 1Zend_Log_Exceptionr   e  a>{]:\7sR&a6




n
P
2
				v	S	3	r?e8[E.|dJf9GLc)                            8? sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsr6> oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanr7= qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicr;< yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicr5; mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldr2: gZend_Pdf_Resource_Font_Simple_Standard_Symbolr<9 {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliquerA8 Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliquer97 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldr56 mZend_Pdf_Resource_Font_Simple_Standard_Helveticar:5 wZend_Pdf_Resource_Font_Simple_Standard_CourierObliquer>4 Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliquer73 qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldr32 iZend_Pdf_Resource_Font_Simple_Standard_Courierr)1 UZend_Pdf_Resource_Font_Simple_Parsedr20 gZend_Pdf_Resource_Font_Simple_Parsed_TrueTyper*/ WZend_Pdf_Resource_Font_FontDescriptorr%. MZend_Pdf_Resource_Font_Extractedr#- IZend_Pdf_Resource_Font_CidFontr,, [Zend_Pdf_Resource_Font_CidFont_TrueTyper+ /Zend_Pdf_PhpArrayr* +Zend_Pdf_Parserr) 9Zend_Pdf_Parser_Streamr( 'Zend_Pdf_Pager' -Zend_Pdf_Outliner& ;Zend_Pdf_Outline_Loadedr% =Zend_Pdf_Outline_Createdr$ AZend_Pdf_Outline_Containerr# )Zend_Pdf_Imager" 'Zend_Pdf_Fontr ! CZend_Pdf_Filter_Compressionr$  KZend_Pdf_Filter_Compression_Lzwr& OZend_Pdf_Filter_Compression_Flater =Zend_Pdf_Filter_AsciiHexr ;Zend_Pdf_Filter_Ascii85r" GZend_Pdf_FileParserDataSourcer) UZend_Pdf_FileParserDataSource_Stringr' QZend_Pdf_FileParserDataSource_Filer 3Zend_Pdf_FileParserr ?Zend_Pdf_FileParser_Imager" GZend_Pdf_FileParser_Image_Pngr =Zend_Pdf_FileParser_Fontr& OZend_Pdf_FileParser_Font_OpenTyper/ aZend_Pdf_FileParser_Font_OpenType_TrueTyper 1Zend_Pdf_Exceptionr ;Zend_Pdf_ElementFactoryr" GZend_Pdf_ElementFactory_Proxyr -Zend_Pdf_Elementr ;Zend_Pdf_Element_Stringr# IZend_Pdf_Element_String_Binaryr ;Zend_Pdf_Element_Streamr AZend_Pdf_Element_Referencer% MZend_Pdf_Element_Reference_Tabler'
 QZend_Pdf_Element_Reference_Contextr	 ;Zend_Pdf_Element_Objectr# IZend_Pdf_Element_Object_Streamr =Zend_Pdf_Element_Numericr 7Zend_Pdf_Element_Nullr 7Zend_Pdf_Element_Namer  CZend_Pdf_Element_Dictionaryr =Zend_Pdf_Element_Booleanr 9Zend_Pdf_Element_Arrayr 5Zend_Pdf_Destinationr  ?Zend_Pdf_Destination_Zoomr! EZend_Pdf_Destination_Unknownr'~ QZend_Pdf_Destination_FitVerticallyr&} OZend_Pdf_Destination_FitRectangler)| UZend_Pdf_Destination_FitHorizontallyr2{ gZend_Pdf_Destination_FitBoundingBoxVerticallyr4z kZend_Pdf_Destination_FitBoundingBoxHorizontallyr(y SZend_Pdf_Destination_FitBoundingBoxrx =Zend_Pdf_Destination_Fitrw )Zend_Pdf_Colorrv 1Zend_Pdf_Color_Rgbru 3Zend_Pdf_Color_Htmlrt =Zend_Pdf_Color_GrayScalers 3Zend_Pdf_Color_Cmykrr 'Zend_Pdf_Cmaprq AZend_Pdf_Cmap_TrimmedTabler!p EZend_Pdf_Cmap_SegmentToDeltaro AZend_Pdf_Cmap_ByteEncodingr&n OZend_Pdf_Cmap_ByteEncoding_Staticrm +Zend_Pdf_Actionrl 3Zend_Pdf_Action_URIrk ;Zend_Pdf_Action_Unknownrj 7Zend_Pdf_Action_Transri 9Zend_Pdf_Action_Threadrh AZend_Pdf_Action_SubmitFormrg 7Zend_Pdf_Action_Soundr f CZend_Pdf_Action_SetOCGStatere ?Zend_Pdf_Action_ResetFormrd ?Zend_Pdf_Action_Renditionrc 7Zend_Pdf_Action_Namedrb 7Zend_Pdf_Action_Moviera 9Zend_Pdf_Action_Launchr` AZend_Pdf_Action_JavaScriptr_ AZend_Pdf_Action_ImportDatar^ 5Zend_Pdf_Action_Hider] 7Zend_Pdf_Action_GoToRr\ 7Zend_Pdf_Action_GoToEr[ AZend_Pdf_Action_GoTo3DViewr   b  gBzcK(e=iH"~Z?




y
M
(
					f	D	#	jN6YM c9LpGp>M                       +! YZend_Search_Lucene_Index_SegmentWriterr8  sZend_Search_Lucene_Index_SegmentWriter_StreamWriterr: wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterr+ YZend_Search_Lucene_Index_SegmentMergerr) UZend_Search_Lucene_Index_SegmentInfor' QZend_Search_Lucene_Index_FieldInfor( SZend_Search_Lucene_Index_DocsFilterr. _Zend_Search_Lucene_Index_DictionaryLoaderr! EZend_Search_Lucene_FSMActionr 9Zend_Search_Lucene_FSMr =Zend_Search_Lucene_Fieldr! EZend_Search_Lucene_Exceptionr  CZend_Search_Lucene_Documentr% MZend_Search_Lucene_Document_Xlsxr% MZend_Search_Lucene_Document_Pptxr( SZend_Search_Lucene_Document_OpenXmlr% MZend_Search_Lucene_Document_Htmlr* WZend_Search_Lucene_Document_Exceptionr% MZend_Search_Lucene_Document_Docxr, [Zend_Search_Lucene_Analysis_TokenFilterr6 oZend_Search_Lucene_Analysis_TokenFilter_StopWordsr7 qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsr: wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8r6
 oZend_Search_Lucene_Analysis_TokenFilter_LowerCaser&	 OZend_Search_Lucene_Analysis_Tokenr) UZend_Search_Lucene_Analysis_Analyzerr0 cZend_Search_Lucene_Analysis_Analyzer_Commonr8 sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumrI Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitiver5 mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8rF Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitiver8 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumrI Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitiver5  mZend_Search_Lucene_Analysis_Analyzer_Common_TextrF Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiver~ 7Zend_Search_Exceptionr} -Zend_Rest_Serverr| AZend_Rest_Server_Exceptionr{ +Zend_Rest_Routerz 3Zend_Rest_Exceptionry 5Zend_Rest_Controllerrx -Zend_Rest_Clientrw ;Zend_Rest_Client_Resultr&v OZend_Rest_Client_Result_Exceptionru AZend_Rest_Client_Exceptionrt 'Zend_Registryrs =Zend_Reflection_Propertyrr ?Zend_Reflection_Parameterrq 9Zend_Reflection_Methodrp =Zend_Reflection_Functionro 5Zend_Reflection_Filern ?Zend_Reflection_Extensionrm ?Zend_Reflection_Exceptionrl =Zend_Reflection_Docblockr!k EZend_Reflection_Docblock_Tagr(j SZend_Reflection_Docblock_Tag_Returnr'i QZend_Reflection_Docblock_Tag_Paramrh 7Zend_Reflection_Classrg !Zend_Queuerf 9Zend_Queue_Stomp_Framere ;Zend_Queue_Stomp_Clientr'd QZend_Queue_Stomp_Client_Connectionrc 1Zend_Queue_Messager b CZend_Queue_Message_Iteratorra 5Zend_Queue_Exceptionr` ;Zend_Queue_Adapter_Nullr!_ EZend_Queue_Adapter_Memcacheqr^ 7Zend_Queue_Adapter_Dbr ] CZend_Queue_Adapter_Db_Queuer"\ GZend_Queue_Adapter_Db_Messager[ =Zend_Queue_Adapter_Arrayr Z CZend_Queue_Adapter_Apachemqr'Y QZend_Queue_Adapter_AdapterAbstractrX -Zend_ProgressBarrW AZend_ProgressBar_ExceptionrV =Zend_ProgressBar_Adapterr$U KZend_ProgressBar_Adapter_JsPushr$T KZend_ProgressBar_Adapter_JsPullr'S QZend_ProgressBar_Adapter_Exceptionr%R MZend_ProgressBar_Adapter_ConsolerQ Zend_Pdfr!P EZend_Pdf_UpdateInfoContainerrO -Zend_Pdf_TrailerrN ;Zend_Pdf_Trailer_KeeperrM AZend_Pdf_Trailer_GeneratorrL +Zend_Pdf_TargetrK )Zend_Pdf_StylerJ 7Zend_Pdf_StringParserrI /Zend_Pdf_Resourcer#H IZend_Pdf_Resource_ImageFactoryrG ;Zend_Pdf_Resource_Imager!F EZend_Pdf_Resource_Image_Tiffr E CZend_Pdf_Resource_Image_Pngr!D EZend_Pdf_Resource_Image_JpegrC 9Zend_Pdf_Resource_Fontr!B EZend_Pdf_Resource_Font_Type0r"A GZend_Pdf_Resource_Font_Simpler+@ YZend_Pdf_Resource_Font_Simple_Standardr   Y  |T-r<zHe/{G



Z
,				^	1	 n@P(eAR*cD&	h6m;
i:                "z GZend_Service_Amazon_Exceptionr(y SZend_Service_Amazon_EditorialReviewrx ;Zend_Service_Amazon_Ec2r+w YZend_Service_Amazon_Ec2_Securitygroupsr%v MZend_Service_Amazon_Ec2_Responser#u IZend_Service_Amazon_Ec2_Regionr$t KZend_Service_Amazon_Ec2_Keypairr%s MZend_Service_Amazon_Ec2_Instancer-r ]Zend_Service_Amazon_Ec2_Instance_Windowsr.q _Zend_Service_Amazon_Ec2_Instance_Reservedr"p GZend_Service_Amazon_Ec2_Imager&o OZend_Service_Amazon_Ec2_Exceptionr&n OZend_Service_Amazon_Ec2_Elasticipr m CZend_Service_Amazon_Ec2_Ebsr'l QZend_Service_Amazon_Ec2_CloudWatchr.k _Zend_Service_Amazon_Ec2_Availabilityzonesr%j MZend_Service_Amazon_Ec2_Abstractr'i QZend_Service_Amazon_CustomerReviewr$h KZend_Service_Amazon_Accessoriesr!g EZend_Service_Amazon_Abstractrf 5Zend_Service_Akismetre 7Zend_Service_Abstractrd 9Zend_Server_Reflectionr'c QZend_Server_Reflection_ReturnValuer%b MZend_Server_Reflection_Prototyper%a MZend_Server_Reflection_Parameterr ` CZend_Server_Reflection_Noder"_ GZend_Server_Reflection_Methodr$^ KZend_Server_Reflection_Functionr-] ]Zend_Server_Reflection_Function_Abstractr%\ MZend_Server_Reflection_Exceptionr![ EZend_Server_Reflection_Classr!Z EZend_Server_Method_Prototyper!Y EZend_Server_Method_Parameterr"X GZend_Server_Method_Definitionr W CZend_Server_Method_CallbackrV 7Zend_Server_ExceptionrU 9Zend_Server_DefinitionrT /Zend_Server_CacherS 5Zend_Server_AbstractrR 1Zend_Search_Lucener0Q cZend_Search_Lucene_TermStreamsPriorityQueuer$P KZend_Search_Lucene_Storage_Filer+O YZend_Search_Lucene_Storage_File_Memoryr/N aZend_Search_Lucene_Storage_File_Filesystemr)M UZend_Search_Lucene_Storage_Directoryr4L kZend_Search_Lucene_Storage_Directory_Filesystemr%K MZend_Search_Lucene_Search_Weightr*J WZend_Search_Lucene_Search_Weight_Termr,I [Zend_Search_Lucene_Search_Weight_Phraser/H aZend_Search_Lucene_Search_Weight_MultiTermr+G YZend_Search_Lucene_Search_Weight_Emptyr-F ]Zend_Search_Lucene_Search_Weight_Booleanr)E UZend_Search_Lucene_Search_Similarityr1D eZend_Search_Lucene_Search_Similarity_Defaultr)C UZend_Search_Lucene_Search_QueryTokenr3B iZend_Search_Lucene_Search_QueryParserExceptionr1A eZend_Search_Lucene_Search_QueryParserContextr*@ WZend_Search_Lucene_Search_QueryParserr)? UZend_Search_Lucene_Search_QueryLexerr'> QZend_Search_Lucene_Search_QueryHitr)= UZend_Search_Lucene_Search_QueryEntryr.< _Zend_Search_Lucene_Search_QueryEntry_Termr2; gZend_Search_Lucene_Search_QueryEntry_Subqueryr0: cZend_Search_Lucene_Search_QueryEntry_Phraser$9 KZend_Search_Lucene_Search_Queryr-8 ]Zend_Search_Lucene_Search_Query_Wildcardr)7 UZend_Search_Lucene_Search_Query_Termr*6 WZend_Search_Lucene_Search_Query_Ranger25 gZend_Search_Lucene_Search_Query_Preprocessingr74 qZend_Search_Lucene_Search_Query_Preprocessing_Termr93 uZend_Search_Lucene_Search_Query_Preprocessing_Phraser82 sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzyr+1 YZend_Search_Lucene_Search_Query_Phraser.0 _Zend_Search_Lucene_Search_Query_MultiTermr2/ gZend_Search_Lucene_Search_Query_Insignificantr*. WZend_Search_Lucene_Search_Query_Fuzzyr*- WZend_Search_Lucene_Search_Query_Emptyr,, [Zend_Search_Lucene_Search_Query_Booleanr2+ gZend_Search_Lucene_Search_Highlighter_Defaultr:* wZend_Search_Lucene_Search_BooleanExpressionRecognizerr) =Zend_Search_Lucene_Proxyr%( MZend_Search_Lucene_PriorityQueuer/' aZend_Search_Lucene_Interface_MultiSearcherr#& IZend_Search_Lucene_LockManagerr$% KZend_Search_Lucene_Index_Writerr0$ cZend_Search_Lucene_Index_TermsPriorityQueuer&# OZend_Search_Lucene_Index_TermInfor"" GZend_Search_Lucene_Index_Termr   c  qL*kA!lB#}U([3




d
A
"
 				Z	?	|R!xI[-Q'{T4Z._5pK#                             ] 7Zend_Session_Abstractr\ 1Zend_Service_Yahoor$[ KZend_Service_Yahoo_WebResultSetr!Z EZend_Service_Yahoo_WebResultr&Y OZend_Service_Yahoo_VideoResultSetr#X IZend_Service_Yahoo_VideoResultr!W EZend_Service_Yahoo_ResultSetrV ?Zend_Service_Yahoo_Resultr)U UZend_Service_Yahoo_PageDataResultSetr&T OZend_Service_Yahoo_PageDataResultr%S MZend_Service_Yahoo_NewsResultSetr"R GZend_Service_Yahoo_NewsResultr&Q OZend_Service_Yahoo_LocalResultSetr#P IZend_Service_Yahoo_LocalResultr+O YZend_Service_Yahoo_InlinkDataResultSetr(N SZend_Service_Yahoo_InlinkDataResultr&M OZend_Service_Yahoo_ImageResultSetr#L IZend_Service_Yahoo_ImageResultrK =Zend_Service_Yahoo_ImagerJ 5Zend_Service_Twitterr I CZend_Service_Twitter_Searchr#H IZend_Service_Twitter_ExceptionrG ;Zend_Service_Technoratir#F IZend_Service_Technorati_Weblogr"E GZend_Service_Technorati_Utilsr*D WZend_Service_Technorati_TagsResultSetr'C QZend_Service_Technorati_TagsResultr)B UZend_Service_Technorati_TagResultSetr&A OZend_Service_Technorati_TagResultr,@ [Zend_Service_Technorati_SearchResultSetr)? UZend_Service_Technorati_SearchResultr&> OZend_Service_Technorati_ResultSetr#= IZend_Service_Technorati_Resultr*< WZend_Service_Technorati_KeyInfoResultr*; WZend_Service_Technorati_GetInfoResultr&: OZend_Service_Technorati_Exceptionr19 eZend_Service_Technorati_DailyCountsResultSetr.8 _Zend_Service_Technorati_DailyCountsResultr,7 [Zend_Service_Technorati_CosmosResultSetr)6 UZend_Service_Technorati_CosmosResultr+5 YZend_Service_Technorati_BlogInfoResultr#4 IZend_Service_Technorati_Authorr3 ;Zend_Service_StrikeIronr(2 SZend_Service_StrikeIron_ZipCodeInfor21 gZend_Service_StrikeIron_USAddressVerificationr-0 ]Zend_Service_StrikeIron_SalesUseTaxBasicr&/ OZend_Service_StrikeIron_Exceptionr&. OZend_Service_StrikeIron_Decoratorr!- EZend_Service_StrikeIron_Baser, ;Zend_Service_SlideSharer&+ OZend_Service_SlideShare_SlideShowr&* OZend_Service_SlideShare_Exceptionr) 1Zend_Service_Simpyr$( KZend_Service_Simpy_WatchlistSetr*' WZend_Service_Simpy_WatchlistFilterSetr'& QZend_Service_Simpy_WatchlistFilterr!% EZend_Service_Simpy_Watchlistr$ ?Zend_Service_Simpy_TagSetr# 9Zend_Service_Simpy_Tagr" AZend_Service_Simpy_NoteSetr! ;Zend_Service_Simpy_Noter  AZend_Service_Simpy_LinkSetr! EZend_Service_Simpy_LinkQueryr ;Zend_Service_Simpy_Linkr 9Zend_Service_ReCaptchar$ KZend_Service_ReCaptcha_Responser$ KZend_Service_ReCaptcha_MailHider. _Zend_Service_ReCaptcha_MailHide_Exceptionr% MZend_Service_ReCaptcha_Exceptionr 7Zend_Service_Nirvanixr# IZend_Service_Nirvanix_Responser) UZend_Service_Nirvanix_Namespace_Imfsr) UZend_Service_Nirvanix_Namespace_Baser$ KZend_Service_Nirvanix_Exceptionr 3Zend_Service_Flickrr" GZend_Service_Flickr_ResultSetr AZend_Service_Flickr_Resultr ?Zend_Service_Flickr_Imager 9Zend_Service_Exceptionr 9Zend_Service_Deliciousr& OZend_Service_Delicious_SimplePostr$ KZend_Service_Delicious_PostListr  CZend_Service_Delicious_Postr%
 MZend_Service_Delicious_Exceptionr 	 CZend_Service_Audioscrobblerr 3Zend_Service_Amazonr ;Zend_Service_Amazon_Sqsr& OZend_Service_Amazon_Sqs_Exceptionr' QZend_Service_Amazon_SimilarProductr 9Zend_Service_Amazon_S3r" GZend_Service_Amazon_S3_Streamr% MZend_Service_Amazon_S3_Exceptionr" GZend_Service_Amazon_ResultSetr  ?Zend_Service_Amazon_Queryr! EZend_Service_Amazon_OfferSetr~ ?Zend_Service_Amazon_Offerr&} OZend_Service_Amazon_ListmaniaListr| =Zend_Service_Amazon_Itemr{ ?Zend_Service_Amazon_Imager   _  nF|Y:!s@qFzdJ.



Q
$				v	B	Z,z^?w]>#^4Hx;g<g8                        '< QZend_Tool_Framework_Metadata_Basicr,; [Zend_Tool_Framework_Manifest_Repositoryr+: YZend_Tool_Framework_Manifest_Exceptionr19 eZend_Tool_Framework_Loader_IncludePathLoaderrJ8 Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIteratorr(7 SZend_Tool_Framework_Loader_Abstractr"6 GZend_Tool_Framework_Exceptionr'5 QZend_Tool_Framework_Client_Storager14 eZend_Tool_Framework_Client_Storage_Directoryr(3 SZend_Tool_Framework_Client_ResponserD2 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separatorr'1 QZend_Tool_Framework_Client_Requestr90 uZend_Tool_Framework_Client_Interactive_InputResponser8/ sZend_Tool_Framework_Client_Interactive_InputRequestr8. sZend_Tool_Framework_Client_Interactive_InputHandlerr)- UZend_Tool_Framework_Client_Exceptionr', QZend_Tool_Framework_Client_ConsolerD+ 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizerr0* cZend_Tool_Framework_Client_Console_Manifestr2) gZend_Tool_Framework_Client_Console_HelpSystemr6( oZend_Tool_Framework_Client_Console_ArgumentParserr&' OZend_Tool_Framework_Client_Configr(& SZend_Tool_Framework_Client_Abstractr*% WZend_Tool_Framework_Action_Repositoryr)$ UZend_Tool_Framework_Action_Exceptionr$# KZend_Tool_Framework_Action_Baser" 'Zend_TimeSyncr! 1Zend_TimeSync_Sntpr  9Zend_TimeSync_Protocolr /Zend_TimeSync_Ntpr ;Zend_TimeSync_Exceptionr +Zend_Text_Tabler 3Zend_Text_Table_Rowr ?Zend_Text_Table_Exceptionr& OZend_Text_Table_Decorator_Unicoder$ KZend_Text_Table_Decorator_Asciir 9Zend_Text_Table_Columnr 3Zend_Text_MultiByter -Zend_Text_Figletr AZend_Text_Figlet_Exceptionr 3Zend_Text_Exceptionr& OZend_Test_PHPUnit_Db_SimpleTesterr, [Zend_Test_PHPUnit_Db_Operation_Truncater* WZend_Test_PHPUnit_Db_Operation_Insertr- ]Zend_Test_PHPUnit_Db_Operation_DeleteAllr* WZend_Test_PHPUnit_Db_Metadata_Genericr# IZend_Test_PHPUnit_Db_Exceptionr, [Zend_Test_PHPUnit_Db_DataSet_QueryTabler. _Zend_Test_PHPUnit_Db_DataSet_QueryDataSetr0 cZend_Test_PHPUnit_Db_DataSet_DbTableDataSetr)
 UZend_Test_PHPUnit_Db_DataSet_DbTabler*	 WZend_Test_PHPUnit_Db_DataSet_DbRowsetr$ KZend_Test_PHPUnit_Db_Connectionr' QZend_Test_PHPUnit_DatabaseTestCaser) UZend_Test_PHPUnit_ControllerTestCaser0 cZend_Test_PHPUnit_Constraint_ResponseHeaderr* WZend_Test_PHPUnit_Constraint_Redirectr+ YZend_Test_PHPUnit_Constraint_Exceptionr* WZend_Test_PHPUnit_Constraint_DomQueryr 7Zend_Test_DbStatementr  3Zend_Test_DbAdapterr /Zend_Tag_ItemListr~ 'Zend_Tag_Itemr} 1Zend_Tag_Exceptionr| )Zend_Tag_Cloudr{ =Zend_Tag_Cloud_Exceptionr!z EZend_Tag_Cloud_Decorator_Tagr%y MZend_Tag_Cloud_Decorator_HtmlTagr'x QZend_Tag_Cloud_Decorator_HtmlCloudr'w QZend_Tag_Cloud_Decorator_Exceptionr#v IZend_Tag_Cloud_Decorator_Cloudru )Zend_Soap_Wsdlr/t aZend_Soap_Wsdl_Strategy_DefaultComplexTyper&s OZend_Soap_Wsdl_Strategy_Compositer0r cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequencer/q aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplexr$p KZend_Soap_Wsdl_Strategy_AnyTyper%o MZend_Soap_Wsdl_Strategy_Abstractrn =Zend_Soap_Wsdl_Exceptionrm -Zend_Soap_Serverrl AZend_Soap_Server_Exceptionrk -Zend_Soap_Clientrj 9Zend_Soap_Client_Localri AZend_Soap_Client_Exceptionrh ;Zend_Soap_Client_DotNetrg ;Zend_Soap_Client_Commonrf 9Zend_Soap_AutoDiscoverr%e MZend_Soap_AutoDiscover_Exceptionrd %Zend_Sessionr)c UZend_Session_Validator_HttpUserAgentr$b KZend_Session_Validator_Abstractr'a QZend_Session_SaveHandler_Exceptionr%` MZend_Session_SaveHandler_DbTabler_ 9Zend_Session_Namespacer^ 9Zend_Session_Exceptionr   H  {Lh7n/e.Y


u
;
			n	:	 f8f0d.Pa)Zo+A                                                      6 oZend_Tool_Project_Context_Zf_ViewHelpersDirectoryr6 oZend_Tool_Project_Context_Zf_ViewFiltersDirectoryrA Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectoryr2 gZend_Tool_Project_Context_Zf_UploadsDirectoryr0  cZend_Tool_Project_Context_Zf_TestsDirectoryr7 qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFiler@~ Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectoryr1} eZend_Tool_Project_Context_Zf_TestLibraryFiler6| oZend_Tool_Project_Context_Zf_TestLibraryDirectoryr:{ wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFiler:z wZend_Tool_Project_Context_Zf_TestApplicationDirectoryr@y Zend_Tool_Project_Context_Zf_TestApplicationControllerFilerEx Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectoryr>w Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFiler4v kZend_Tool_Project_Context_Zf_TemporaryDirectoryr3u iZend_Tool_Project_Context_Zf_SessionsDirectoryr8t sZend_Tool_Project_Context_Zf_SearchIndexesDirectoryr<s {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectoryr8r sZend_Tool_Project_Context_Zf_PublicScriptsDirectoryr1q eZend_Tool_Project_Context_Zf_PublicIndexFiler7p qZend_Tool_Project_Context_Zf_PublicImagesDirectoryr1o eZend_Tool_Project_Context_Zf_PublicDirectoryr5n mZend_Tool_Project_Context_Zf_ProjectProviderFiler2m gZend_Tool_Project_Context_Zf_ModulesDirectoryr1l eZend_Tool_Project_Context_Zf_ModuleDirectoryr1k eZend_Tool_Project_Context_Zf_ModelsDirectoryr+j YZend_Tool_Project_Context_Zf_ModelFiler/i aZend_Tool_Project_Context_Zf_LogsDirectoryr2h gZend_Tool_Project_Context_Zf_LocalesDirectoryr2g gZend_Tool_Project_Context_Zf_LibraryDirectoryr2f gZend_Tool_Project_Context_Zf_LayoutsDirectoryr.e _Zend_Tool_Project_Context_Zf_HtaccessFiler0d cZend_Tool_Project_Context_Zf_FormsDirectoryr*c WZend_Tool_Project_Context_Zf_FormFiler-b ]Zend_Tool_Project_Context_Zf_DbTableFiler2a gZend_Tool_Project_Context_Zf_DbTableDirectoryr/` aZend_Tool_Project_Context_Zf_DataDirectoryr6_ oZend_Tool_Project_Context_Zf_ControllersDirectoryr0^ cZend_Tool_Project_Context_Zf_ControllerFiler2] gZend_Tool_Project_Context_Zf_ConfigsDirectoryr,\ [Zend_Tool_Project_Context_Zf_ConfigFiler0[ cZend_Tool_Project_Context_Zf_CacheDirectoryr/Z aZend_Tool_Project_Context_Zf_BootstrapFiler6Y oZend_Tool_Project_Context_Zf_ApplicationDirectoryr7X qZend_Tool_Project_Context_Zf_ApplicationConfigFiler/W aZend_Tool_Project_Context_Zf_ApisDirectoryr.V _Zend_Tool_Project_Context_Zf_ActionMethodr@U Zend_Tool_Project_Context_System_ProjectProvidersDirectoryr8T sZend_Tool_Project_Context_System_ProjectProfileFiler6S oZend_Tool_Project_Context_System_ProjectDirectoryr)R UZend_Tool_Project_Context_Repositoryr.Q _Zend_Tool_Project_Context_Filesystem_Filer3P iZend_Tool_Project_Context_Filesystem_Directoryr2O gZend_Tool_Project_Context_Filesystem_Abstractr(N SZend_Tool_Project_Context_Exceptionr-M ]Zend_Tool_Project_Context_Content_Enginer3L iZend_Tool_Project_Context_Content_Engine_Phtmlr;K yZend_Tool_Project_Context_Content_Engine_CodeGeneratorr0J cZend_Tool_Framework_System_Provider_Versionr0I cZend_Tool_Framework_System_Provider_Phpinfor1H eZend_Tool_Framework_System_Provider_Manifestr(G SZend_Tool_Framework_System_Manifestr-F ]Zend_Tool_Framework_System_Action_Deleter-E ]Zend_Tool_Framework_System_Action_Creater!D EZend_Tool_Framework_Registryr+C YZend_Tool_Framework_Registry_Exceptionr+B YZend_Tool_Framework_Provider_Signaturer,A [Zend_Tool_Framework_Provider_Repositoryr+@ YZend_Tool_Framework_Provider_Exceptionr*? WZend_Tool_Framework_Provider_Abstractr&> OZend_Tool_Framework_Metadata_Toolr)= UZend_Tool_Framework_Metadata_Dynamicr   k  ^d#d8_6[3




\
9
					z	_	I	8	|^B'wW6wR2Z:{\A!vM'uY7oQ-     !o EZend_View_Helper_FormElementr"n GZend_View_Helper_FormCheckboxr m CZend_View_Helper_FormButtonrl 7Zend_View_Helper_Formrk ?Zend_View_Helper_Fieldsetrj =Zend_View_Helper_Doctyper!i EZend_View_Helper_DeclareVarsrh 9Zend_View_Helper_Cyclerg =Zend_View_Helper_BaseUrlrf ;Zend_View_Helper_Actionre ?Zend_View_Helper_Abstractrd 3Zend_View_Exceptionrc 1Zend_View_Abstractrb %Zend_Versionra 'Zend_Validater` AZend_Validate_StringLengthr#_ IZend_Validate_Sitemap_Priorityr^ ?Zend_Validate_Sitemap_Locr"] GZend_Validate_Sitemap_Lastmodr%\ MZend_Validate_Sitemap_Changefreqr[ 3Zend_Validate_RegexrZ 9Zend_Validate_NotEmptyrY 9Zend_Validate_LessThanrX -Zend_Validate_IprW /Zend_Validate_IntrV 7Zend_Validate_InArrayrU ;Zend_Validate_IdenticalrT 1Zend_Validate_IbanrS 9Zend_Validate_HostnamerR /Zend_Validate_HexrQ ?Zend_Validate_GreaterThanrP 3Zend_Validate_Floatr!O EZend_Validate_File_WordCountrN ?Zend_Validate_File_UploadrM ;Zend_Validate_File_SizerL ;Zend_Validate_File_Sha1r!K EZend_Validate_File_NotExistsr J CZend_Validate_File_MimeTyperI 9Zend_Validate_File_Md5rH AZend_Validate_File_IsImager$G KZend_Validate_File_IsCompressedr!F EZend_Validate_File_ImageSizerE ;Zend_Validate_File_Hashr!D EZend_Validate_File_FilesSizer!C EZend_Validate_File_ExtensionrB ?Zend_Validate_File_Existsr'A QZend_Validate_File_ExcludeMimeTyper(@ SZend_Validate_File_ExcludeExtensionr? =Zend_Validate_File_Crc32r> =Zend_Validate_File_Countr= ;Zend_Validate_Exceptionr< AZend_Validate_EmailAddressr; 5Zend_Validate_Digitsr": GZend_Validate_Db_RecordExistsr$9 KZend_Validate_Db_NoRecordExistsr8 ?Zend_Validate_Db_Abstractr7 1Zend_Validate_Dater6 3Zend_Validate_Ccnumr5 7Zend_Validate_Betweenr4 7Zend_Validate_Barcoder3 AZend_Validate_Barcode_UpcAr 2 CZend_Validate_Barcode_Ean13r1 3Zend_Validate_Alphar0 3Zend_Validate_Alnumr/ 9Zend_Validate_Abstractr. Zend_Urir- 'Zend_Uri_Httpr, 1Zend_Uri_Exceptionr+ )Zend_Translater* 7Zend_Translate_Pluralr) =Zend_Translate_Exceptionr( 9Zend_Translate_Adapterr!' EZend_Translate_Adapter_XmlTmr!& EZend_Translate_Adapter_Xliffr% AZend_Translate_Adapter_Tmxr$ AZend_Translate_Adapter_Tbxr# ?Zend_Translate_Adapter_Qtr" AZend_Translate_Adapter_Inir#! IZend_Translate_Adapter_Gettextr  AZend_Translate_Adapter_Csvr! EZend_Translate_Adapter_Arrayr$ KZend_Tool_Project_Provider_Viewr$ KZend_Tool_Project_Provider_Testr/ aZend_Tool_Project_Provider_ProjectProviderr' QZend_Tool_Project_Provider_Projectr' QZend_Tool_Project_Provider_Profiler& OZend_Tool_Project_Provider_Moduler% MZend_Tool_Project_Provider_Modelr( SZend_Tool_Project_Provider_Manifestr$ KZend_Tool_Project_Provider_Formr) UZend_Tool_Project_Provider_Exceptionr* WZend_Tool_Project_Provider_Controllerr& OZend_Tool_Project_Provider_Actionr( SZend_Tool_Project_Provider_Abstractr ?Zend_Tool_Project_Profiler' QZend_Tool_Project_Profile_Resourcer9 uZend_Tool_Project_Profile_Resource_SearchConstraintsr1 eZend_Tool_Project_Profile_Resource_Containerr= }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilterr5 mZend_Tool_Project_Profile_Iterator_ContextFilterr- ]Zend_Tool_Project_Profile_FileParser_Xmlr(
 SZend_Tool_Project_Profile_Exceptionr 	 CZend_Tool_Project_Exceptionr< {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectoryr0 cZend_Tool_Project_Context_Zf_ViewsDirectoryr6 oZend_Tool_Project_Context_Zf_ViewScriptsDirectoryr0 cZend_Tool_Project_Context_Zf_ViewScriptFiler   k  sP%sO-|Y4\>h<



|
D
			j	<	n\2d?gL.vU0oJ'`?%
eByP)     Z AZend_Amf_Parse_InputStreams Y CZend_Amf_Parse_Deserializers#X IZend_Amf_Parse_Amf3_Serializers%W MZend_Amf_Parse_Amf3_Deserializers#V IZend_Amf_Parse_Amf0_Serializers%U MZend_Amf_Parse_Amf0_DeserializersT 1Zend_Amf_ExceptionsS 1Zend_Amf_ConstantssR 9Zend_Amf_Auth_Abstracts Q CZend_Amf_Adobe_IntrospectorsP AZend_Amf_Adobe_DbInspectorsO 3Zend_Amf_Adobe_AuthsN Zend_AclsM 'Zend_Acl_RolesL 9Zend_Acl_Role_Registrys%K MZend_Acl_Role_Registry_ExceptionsJ /Zend_Acl_ResourcesI 1Zend_Acl_ExceptionsH /Zend_XmlRpc_ValuerG =Zend_XmlRpc_Value_StructrF =Zend_XmlRpc_Value_StringrE =Zend_XmlRpc_Value_ScalarrD 7Zend_XmlRpc_Value_NilrC ?Zend_XmlRpc_Value_Integerr B CZend_XmlRpc_Value_ExceptionrA =Zend_XmlRpc_Value_Doubler@ AZend_XmlRpc_Value_DateTimer!? EZend_XmlRpc_Value_Collectionr> ?Zend_XmlRpc_Value_Booleanr= =Zend_XmlRpc_Value_Base64r< ;Zend_XmlRpc_Value_Arrayr; 1Zend_XmlRpc_Serverr: ?Zend_XmlRpc_Server_Systemr9 =Zend_XmlRpc_Server_Faultr!8 EZend_XmlRpc_Server_Exceptionr7 =Zend_XmlRpc_Server_Cacher6 5Zend_XmlRpc_Responser5 ?Zend_XmlRpc_Response_Httpr4 3Zend_XmlRpc_Requestr3 ?Zend_XmlRpc_Request_Stdinr2 =Zend_XmlRpc_Request_Httpr1 /Zend_XmlRpc_Faultr0 7Zend_XmlRpc_Exceptionr/ 1Zend_XmlRpc_Clientr#. IZend_XmlRpc_Client_ServerProxyr+- YZend_XmlRpc_Client_ServerIntrospectionr+, YZend_XmlRpc_Client_IntrospectExceptionr%+ MZend_XmlRpc_Client_HttpExceptionr&* OZend_XmlRpc_Client_FaultExceptionr!) EZend_XmlRpc_Client_Exceptionr&( OZend_Wildfire_Protocol_JsonStreamr!' EZend_Wildfire_Plugin_FirePhpr.& _Zend_Wildfire_Plugin_FirePhp_TableMessager)% UZend_Wildfire_Plugin_FirePhp_Messager$ ;Zend_Wildfire_Exceptionr&# OZend_Wildfire_Channel_HttpHeadersr" Zend_Viewr! -Zend_View_Streamr  5Zend_View_Helper_Urlr AZend_View_Helper_Translater AZend_View_Helper_ServerUrlr) UZend_View_Helper_RenderToPlaceholderr! EZend_View_Helper_Placeholderr* WZend_View_Helper_Placeholder_Registryr4 kZend_View_Helper_Placeholder_Registry_Exceptionr+ YZend_View_Helper_Placeholder_Containerr6 oZend_View_Helper_Placeholder_Container_Standaloner5 mZend_View_Helper_Placeholder_Container_Exceptionr4 kZend_View_Helper_Placeholder_Container_Abstractr! EZend_View_Helper_PartialLoopr =Zend_View_Helper_Partialr' QZend_View_Helper_Partial_Exceptionr' QZend_View_Helper_PaginationControlr  CZend_View_Helper_Navigationr( SZend_View_Helper_Navigation_Sitemapr% MZend_View_Helper_Navigation_Menur& OZend_View_Helper_Navigation_Linksr/ aZend_View_Helper_Navigation_HelperAbstractr, [Zend_View_Helper_Navigation_Breadcrumbsr ;Zend_View_Helper_Layoutr
 7Zend_View_Helper_Jsonr"	 GZend_View_Helper_InlineScriptr# IZend_View_Helper_HtmlQuicktimer ?Zend_View_Helper_HtmlPager  CZend_View_Helper_HtmlObjectr ?Zend_View_Helper_HtmlListr AZend_View_Helper_HtmlFlashr! EZend_View_Helper_HtmlElementr AZend_View_Helper_HeadTitler AZend_View_Helper_HeadStyler   CZend_View_Helper_HeadScriptr ?Zend_View_Helper_HeadMetar~ ?Zend_View_Helper_HeadLinkr"} GZend_View_Helper_FormTextarear| ?Zend_View_Helper_FormTextr { CZend_View_Helper_FormSubmitr z CZend_View_Helper_FormSelectry AZend_View_Helper_FormResetrx AZend_View_Helper_FormRadior"w GZend_View_Helper_FormPasswordrv ?Zend_View_Helper_FormNoter'u QZend_View_Helper_FormMultiCheckboxrt AZend_View_Helper_FormLabelrs AZend_View_Helper_FormImager r CZend_View_Helper_FormHiddenrq ?Zend_View_Helper_FormFiler p CZend_View_Helper_FormErrorsr   Z  }G^=Y1Z3[3




]
			f	8	
j,h:h2_>l;a5mF f<   + YZend_InfoCard_Cipher_Pki_Rsa_Interfaces' QZend_InfoCard_Cipher_Pki_Interfaces$ KZend_InfoCard_Adapter_Interfaces' QZend_Http_Client_Adapter_Interfaces AZend_Gdata_App_MediaSources. _Zend_Form_Decorator_Marker_File_Interfaces" GZend_Form_Decorator_Interfaces 7Zend_Filter_Interfaces" GZend_Filter_Encrypt_Interfaces#
 IZend_Feed_Reader_FeedInterfaces$	 KZend_Feed_Reader_EntryInterfaces  CZend_Feed_Builder_Interfaces  CZend_Db_Statement_Interfaces) UZend_Crypt_Math_BigInteger_Interfaces+ YZend_Controller_Router_Route_Interfaces% MZend_Controller_Router_Interfaces) UZend_Controller_Dispatcher_Interfaces% MZend_Controller_Action_Interfaces 5Zend_Captcha_Adapters!  EZend_Cache_Backend_Interfaces) UZend_Cache_Backend_ExtendedInterfaces ~ CZend_Auth_Storage_Interfaces } CZend_Auth_Adapter_Interfaces.| _Zend_Auth_Adapter_Http_Resolver_Interfaces'{ QZend_Application_Resource_Resources4z kZend_Application_Bootstrap_ResourceBootstrappers,y [Zend_Application_Bootstrap_Bootstrappersx ;Zend_Acl_Role_Interfaces w CZend_Acl_Resource_Interfacesv ?Zend_Acl_Assert_Interfaces#u IZend_Wildfire_Plugin_Interfacer$t KZend_Wildfire_Channel_Interfacers 3Zend_View_Interfacer'r QZend_View_Helper_Navigation_Helperrq AZend_View_Helper_Interfacerp ;Zend_Validate_Interfacer3o iZend_Tool_Project_Profile_FileParser_Interfacer:n wZend_Tool_Project_Context_System_TopLevelRestrictabler5m mZend_Tool_Project_Context_System_NotOverwritabler/l aZend_Tool_Project_Context_System_Interfacer(k SZend_Tool_Project_Context_Interfacer+j YZend_Tool_Framework_Registry_Interfacer2i gZend_Tool_Framework_Registry_EnabledInterfacer-h ]Zend_Tool_Framework_Provider_Pretendabler+g YZend_Tool_Framework_Provider_Interfacer.f _Zend_Tool_Framework_Provider_Interactabler;e yZend_Tool_Framework_Provider_DocblockManifestInterfacer+d YZend_Tool_Framework_Metadata_Interfacer6c oZend_Tool_Framework_Manifest_ProviderManifestabler6b oZend_Tool_Framework_Manifest_MetadataManifestabler+a YZend_Tool_Framework_Manifest_Interfacer+` YZend_Tool_Framework_Manifest_Indexabler4_ kZend_Tool_Framework_Manifest_ActionManifestabler8^ sZend_Tool_Framework_Client_Storage_AdapterInterfacerD] 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interfacer;\ yZend_Tool_Framework_Client_Interactive_OutputInterfacer:[ wZend_Tool_Framework_Client_Interactive_InputInterfacer)Z UZend_Tool_Framework_Action_Interfacer(Y SZend_Text_Table_Decorator_InterfacerX /Zend_Tag_Taggabler&W OZend_Soap_Wsdl_Strategy_Interfacer%V MZend_Session_Validator_Interfacer'U QZend_Session_SaveHandler_InterfacerT 7Zend_Server_Interfacer4S kZend_Search_Lucene_Search_Highlighter_Interfacer!R EZend_Search_Lucene_Interfacer3Q iZend_Search_Lucene_Index_TermsStream_Interfacer$P KZend_Queue_Stomp_FrameInterfacer0O cZend_Queue_Stomp_Client_ConnectionInterfacer(N SZend_Queue_Adapter_AdapterInterfacerM ?Zend_Pdf_Filter_Interfacer&L OZend_Pdf_ElementFactory_Interfacer,K [Zend_Paginator_ScrollingStyle_Interfacer%J MZend_Paginator_Adapter_Interfacer$I KZend_Memory_Container_Interfacer)H UZend_Mail_Storage_Writable_Interfacer'G QZend_Mail_Storage_Folder_InterfacerF =Zend_Mail_Part_Interfacer E CZend_Mail_Message_Interfacer!D EZend_Log_Formatter_InterfacerC ?Zend_Log_Filter_Interfacer'B QZend_Loader_PluginLoader_Interfacer%A MZend_Loader_Autoloader_Interfacer0@ cZend_Ldap_Node_Schema_ObjectClass_Interfacer2? gZend_Ldap_Node_Schema_AttributeType_Interfacer,> [Zend_Ldap_Collection_Iterator_Interfacer3= iZend_InfoCard_Xml_Security_Transform_Interfacer(< SZend_InfoCard_Xml_KeyInfo_Interfacer(; SZend_InfoCard_Xml_Element_Interfacer*: WZend_InfoCard_Xml_Assertion_Interfacer   g  \:nK*}Lm@fA



g
:
				a	H	&	c@! ]K,^6iG&vW; vR-h@nE                   $A KZend_CodeGenerator_Php_Propertys1@ eZend_CodeGenerator_Php_Property_DefaultValues%? MZend_CodeGenerator_Php_Parameters"> GZend_CodeGenerator_Php_Methods,= [Zend_CodeGenerator_Php_Member_Containers+< YZend_CodeGenerator_Php_Member_Abstracts ; CZend_CodeGenerator_Php_Files%: MZend_CodeGenerator_Php_Exceptions$9 KZend_CodeGenerator_Php_Docblocks(8 SZend_CodeGenerator_Php_Docblock_Tags/7 aZend_CodeGenerator_Php_Docblock_Tag_Returns.6 _Zend_CodeGenerator_Php_Docblock_Tag_Params05 cZend_CodeGenerator_Php_Docblock_Tag_Licenses!4 EZend_CodeGenerator_Php_Classs 3 CZend_CodeGenerator_Php_Bodys$2 KZend_CodeGenerator_Php_Abstracts!1 EZend_CodeGenerator_Exceptions 0 CZend_CodeGenerator_Abstracts/ /Zend_Captcha_Words. 9Zend_Captcha_ReCaptchas- 1Zend_Captcha_Images, 3Zend_Captcha_Figlets+ 9Zend_Captcha_Exceptions* /Zend_Captcha_Dumbs) /Zend_Captcha_Bases( !Zend_Caches' =Zend_Cache_Frontend_Pages& AZend_Cache_Frontend_Outputs!% EZend_Cache_Frontend_Functions$ =Zend_Cache_Frontend_Files# ?Zend_Cache_Frontend_Classs" 5Zend_Cache_Exceptions! +Zend_Cache_Cores  1Zend_Cache_Backends" GZend_Cache_Backend_ZendServers( SZend_Cache_Backend_ZendServer_ShMems' QZend_Cache_Backend_ZendServer_Disks$ KZend_Cache_Backend_ZendPlatforms ?Zend_Cache_Backend_Xcaches! EZend_Cache_Backend_TwoLevelss ;Zend_Cache_Backend_Tests ?Zend_Cache_Backend_Sqlites! EZend_Cache_Backend_Memcacheds ;Zend_Cache_Backend_Files 9Zend_Cache_Backend_Apcs Zend_Auths ?Zend_Auth_Storage_Sessions$ KZend_Auth_Storage_NonPersistents  CZend_Auth_Storage_Exceptions -Zend_Auth_Results 3Zend_Auth_Exceptions =Zend_Auth_Adapter_OpenIds 9Zend_Auth_Adapter_Ldaps AZend_Auth_Adapter_InfoCards 9Zend_Auth_Adapter_Https)
 UZend_Auth_Adapter_Http_Resolver_Files.	 _Zend_Auth_Adapter_Http_Resolver_Exceptions  CZend_Auth_Adapter_Exceptions =Zend_Auth_Adapter_Digests ?Zend_Auth_Adapter_DbTables -Zend_Applications# IZend_Application_Resource_Views( SZend_Application_Resource_Translates& OZend_Application_Resource_Sessions% MZend_Application_Resource_Routers/  aZend_Application_Resource_ResourceAbstracts) UZend_Application_Resource_Navigations&~ OZend_Application_Resource_Moduless%} MZend_Application_Resource_Locales%| MZend_Application_Resource_Layouts.{ _Zend_Application_Resource_Frontcontrollers(z SZend_Application_Resource_Exceptions!y EZend_Application_Resource_Dbs&x OZend_Application_Module_Bootstraps'w QZend_Application_Module_Autoloadersv AZend_Application_Exceptions)u UZend_Application_Bootstrap_Exceptions1t eZend_Application_Bootstrap_BootstrapAbstracts)s UZend_Application_Bootstrap_Bootstrapsr ?Zend_Amf_Value_TraitsInfos-q ]Zend_Amf_Value_Messaging_RemotingMessages*p WZend_Amf_Value_Messaging_ErrorMessages,o [Zend_Amf_Value_Messaging_CommandMessages*n WZend_Amf_Value_Messaging_AsyncMessages-m ]Zend_Amf_Value_Messaging_ArrayCollections0l cZend_Amf_Value_Messaging_AcknowledgeMessages-k ]Zend_Amf_Value_Messaging_AbstractMessages!j EZend_Amf_Value_MessageHeadersi AZend_Amf_Value_MessageBodysh =Zend_Amf_Value_ByteArraysg AZend_Amf_Util_BinaryStreamsf +Zend_Amf_Serverse ?Zend_Amf_Server_Exceptionsd /Zend_Amf_Responsesc 9Zend_Amf_Response_Httpsb -Zend_Amf_Requestsa 7Zend_Amf_Request_Https` ?Zend_Amf_Parse_TypeLoaders_ ?Zend_Amf_Parse_Serializers#^ IZend_Amf_Parse_Resource_Streams(] SZend_Amf_Parse_Resource_MysqlResults)\ UZend_Amf_Parse_Resource_MysqliResults [ CZend_Amf_Parse_OutputStreams   h  kP8$X&s?
QsG%



b
8
				i	B	tL#uIdB* gO,
vY=+
}^5gE%~iF%                      ) -Zend_Db_Profilers( 9Zend_Db_Profiler_Querys' =Zend_Db_Profiler_Firebugs& AZend_Db_Profiler_Exceptions% %Zend_Db_Exprs$ /Zend_Db_Exceptions# 9Zend_Db_Adapter_Sqlsrvs%" MZend_Db_Adapter_Sqlsrv_Exceptions! AZend_Db_Adapter_Pdo_Sqlites  ?Zend_Db_Adapter_Pdo_Pgsqls ;Zend_Db_Adapter_Pdo_Ocis ?Zend_Db_Adapter_Pdo_Mysqls ?Zend_Db_Adapter_Pdo_Mssqls ;Zend_Db_Adapter_Pdo_Ibms  CZend_Db_Adapter_Pdo_Ibm_Idss  CZend_Db_Adapter_Pdo_Ibm_Db2s! EZend_Db_Adapter_Pdo_Abstracts 9Zend_Db_Adapter_Oracles% MZend_Db_Adapter_Oracle_Exceptions 9Zend_Db_Adapter_Mysqlis% MZend_Db_Adapter_Mysqli_Exceptions ?Zend_Db_Adapter_Exceptions 3Zend_Db_Adapter_Db2s" GZend_Db_Adapter_Db2_Exceptions =Zend_Db_Adapter_Abstracts Zend_Dates 3Zend_Date_Exceptions 5Zend_Date_DateObjects -Zend_Date_Citiess 'Zend_Currencys ;Zend_Currency_Exceptions
 !Zend_Crypts	 )Zend_Crypt_Rsas 1Zend_Crypt_Rsa_Keys ?Zend_Crypt_Rsa_Key_Publics AZend_Crypt_Rsa_Key_Privates +Zend_Crypt_Maths ?Zend_Crypt_Math_Exceptions AZend_Crypt_Math_BigIntegers# IZend_Crypt_Math_BigInteger_Gmps) UZend_Crypt_Math_BigInteger_Exceptions&  OZend_Crypt_Math_BigInteger_Bcmaths +Zend_Crypt_Hmacs~ ?Zend_Crypt_Hmac_Exceptions} 5Zend_Crypt_Exceptions| =Zend_Crypt_DiffieHellmans'{ QZend_Crypt_DiffieHellman_Exceptions!z EZend_Controller_Router_Routes(y SZend_Controller_Router_Route_Statics'x QZend_Controller_Router_Route_Regexs(w SZend_Controller_Router_Route_Modules*v WZend_Controller_Router_Route_Hostnames'u QZend_Controller_Router_Route_Chains*t WZend_Controller_Router_Route_Abstracts#s IZend_Controller_Router_Rewrites%r MZend_Controller_Router_Exceptions$q KZend_Controller_Router_Abstracts*p WZend_Controller_Response_HttpTestCases"o GZend_Controller_Response_Https'n QZend_Controller_Response_Exceptions!m EZend_Controller_Response_Clis&l OZend_Controller_Response_Abstracts#k IZend_Controller_Request_Simples)j UZend_Controller_Request_HttpTestCases!i EZend_Controller_Request_Https&h OZend_Controller_Request_Exceptions&g OZend_Controller_Request_Apache404s%f MZend_Controller_Request_Abstracts&e OZend_Controller_Plugin_PutHandlers(d SZend_Controller_Plugin_ErrorHandlers"c GZend_Controller_Plugin_Brokers'b QZend_Controller_Plugin_ActionStacks$a KZend_Controller_Plugin_Abstracts` 7Zend_Controller_Fronts_ ?Zend_Controller_Exceptions(^ SZend_Controller_Dispatcher_Standards)] UZend_Controller_Dispatcher_Exceptions(\ SZend_Controller_Dispatcher_Abstracts[ 9Zend_Controller_Actions(Z SZend_Controller_Action_HelperBrokers6Y oZend_Controller_Action_HelperBroker_PriorityStacks/X aZend_Controller_Action_Helper_ViewRenderers&W OZend_Controller_Action_Helper_Urls-V ]Zend_Controller_Action_Helper_Redirectors'U QZend_Controller_Action_Helper_Jsons1T eZend_Controller_Action_Helper_FlashMessengers0S cZend_Controller_Action_Helper_ContextSwitchs<R {Zend_Controller_Action_Helper_AutoCompleteScriptaculouss3Q iZend_Controller_Action_Helper_AutoCompleteDojos8P sZend_Controller_Action_Helper_AutoComplete_Abstracts.O _Zend_Controller_Action_Helper_AjaxContexts.N _Zend_Controller_Action_Helper_ActionStacks+M YZend_Controller_Action_Helper_Abstracts%L MZend_Controller_Action_ExceptionsK 3Zend_Console_Getopts"J GZend_Console_Getopt_ExceptionsI #Zend_ConfigsH +Zend_Config_XmlsG 1Zend_Config_WritersF 9Zend_Config_Writer_XmlsE 9Zend_Config_Writer_InisD =Zend_Config_Writer_ArraysC +Zend_Config_InisB 7Zend_Config_Exceptions   c  ^3d9{W=yiV9"rE



\
.

				e	:	f9^2
Y:#wR+X4dAb5`9                            & OZend_Dojo_View_Helper_TimeTextBoxs" GZend_Dojo_View_Helper_TextBoxs#
 IZend_Dojo_View_Helper_Textareas'	 QZend_Dojo_View_Helper_TabContainers' QZend_Dojo_View_Helper_SubmitButtons) UZend_Dojo_View_Helper_StackContainers) UZend_Dojo_View_Helper_SplitContainers! EZend_Dojo_View_Helper_Sliders) UZend_Dojo_View_Helper_SimpleTextareas& OZend_Dojo_View_Helper_RadioButtons* WZend_Dojo_View_Helper_PasswordTextBoxs( SZend_Dojo_View_Helper_NumberTextBoxs(  SZend_Dojo_View_Helper_NumberSpinners+ YZend_Dojo_View_Helper_HorizontalSliders~ AZend_Dojo_View_Helper_Forms*} WZend_Dojo_View_Helper_FilteringSelects!| EZend_Dojo_View_Helper_Editors{ AZend_Dojo_View_Helper_Dojos)z UZend_Dojo_View_Helper_Dojo_Containers)y UZend_Dojo_View_Helper_DijitContainers x CZend_Dojo_View_Helper_Dijits&w OZend_Dojo_View_Helper_DateTextBoxs&v OZend_Dojo_View_Helper_CustomDijits*u WZend_Dojo_View_Helper_CurrencyTextBoxs&t OZend_Dojo_View_Helper_ContentPanes#s IZend_Dojo_View_Helper_ComboBoxs#r IZend_Dojo_View_Helper_CheckBoxs!q EZend_Dojo_View_Helper_Buttons*p WZend_Dojo_View_Helper_BorderContainers(o SZend_Dojo_View_Helper_AccordionPanes-n ]Zend_Dojo_View_Helper_AccordionContainersm =Zend_Dojo_View_Exceptionsl )Zend_Dojo_Formsk 9Zend_Dojo_Form_SubForms*j WZend_Dojo_Form_Element_VerticalSliders-i ]Zend_Dojo_Form_Element_ValidationTextBoxs'h QZend_Dojo_Form_Element_TimeTextBoxs#g IZend_Dojo_Form_Element_TextBoxs$f KZend_Dojo_Form_Element_Textareas(e SZend_Dojo_Form_Element_SubmitButtons"d GZend_Dojo_Form_Element_Sliders*c WZend_Dojo_Form_Element_SimpleTextareas'b QZend_Dojo_Form_Element_RadioButtons+a YZend_Dojo_Form_Element_PasswordTextBoxs)` UZend_Dojo_Form_Element_NumberTextBoxs)_ UZend_Dojo_Form_Element_NumberSpinners,^ [Zend_Dojo_Form_Element_HorizontalSliders+] YZend_Dojo_Form_Element_FilteringSelects"\ GZend_Dojo_Form_Element_Editors&[ OZend_Dojo_Form_Element_DijitMultis!Z EZend_Dojo_Form_Element_Dijits'Y QZend_Dojo_Form_Element_DateTextBoxs+X YZend_Dojo_Form_Element_CurrencyTextBoxs$W KZend_Dojo_Form_Element_ComboBoxs$V KZend_Dojo_Form_Element_CheckBoxs"U GZend_Dojo_Form_Element_Buttons T CZend_Dojo_Form_DisplayGroups*S WZend_Dojo_Form_Decorator_TabContainers,R [Zend_Dojo_Form_Decorator_StackContainers,Q [Zend_Dojo_Form_Decorator_SplitContainers'P QZend_Dojo_Form_Decorator_DijitForms*O WZend_Dojo_Form_Decorator_DijitElements,N [Zend_Dojo_Form_Decorator_DijitContainers)M UZend_Dojo_Form_Decorator_ContentPanes-L ]Zend_Dojo_Form_Decorator_BorderContainers+K YZend_Dojo_Form_Decorator_AccordionPanes0J cZend_Dojo_Form_Decorator_AccordionContainersI 3Zend_Dojo_ExceptionsH )Zend_Dojo_DatasG 5Zend_Dojo_BuildLayersF !Zend_DebugsE Zend_DbsD 'Zend_Db_TablesC 5Zend_Db_Table_Selects#B IZend_Db_Table_Select_ExceptionsA 5Zend_Db_Table_Rowsets#@ IZend_Db_Table_Rowset_Exceptions"? GZend_Db_Table_Rowset_Abstracts> /Zend_Db_Table_Rows = CZend_Db_Table_Row_Exceptions< AZend_Db_Table_Row_Abstracts; ;Zend_Db_Table_Exceptions: =Zend_Db_Table_Definitions9 9Zend_Db_Table_Abstracts8 /Zend_Db_Statements7 =Zend_Db_Statement_Sqlsrvs'6 QZend_Db_Statement_Sqlsrv_Exceptions5 7Zend_Db_Statement_Pdos4 ?Zend_Db_Statement_Pdo_Ocis3 ?Zend_Db_Statement_Pdo_Ibms2 =Zend_Db_Statement_Oracles'1 QZend_Db_Statement_Oracle_Exceptions0 =Zend_Db_Statement_Mysqlis'/ QZend_Db_Statement_Mysqli_Exceptions . CZend_Db_Statement_Exceptions- 7Zend_Db_Statement_Db2s$, KZend_Db_Statement_Db2_Exceptions+ )Zend_Db_Selects* =Zend_Db_Select_Exceptions   j  vU7 	kJ0|Y2m5m<


y
B
						j	B		x]E"_?W7wN uIk<(iAhA                                v ?Zend_Form_Decorator_Images u CZend_Form_Decorator_HtmlTags#t IZend_Form_Decorator_FormErrorss%s MZend_Form_Decorator_FormElementssr =Zend_Form_Decorator_Formsq =Zend_Form_Decorator_Files!p EZend_Form_Decorator_Fieldsets"o GZend_Form_Decorator_Exceptionsn AZend_Form_Decorator_Errorss$m KZend_Form_Decorator_DtDdWrappers$l KZend_Form_Decorator_Descriptions k CZend_Form_Decorator_Captchas%j MZend_Form_Decorator_Captcha_Words!i EZend_Form_Decorator_Callbacks!h EZend_Form_Decorator_Abstractsg #Zend_Filters+f YZend_Filter_Word_UnderscoreToSeparators&e OZend_Filter_Word_UnderscoreToDashs+d YZend_Filter_Word_UnderscoreToCamelCases*c WZend_Filter_Word_SeparatorToSeparators%b MZend_Filter_Word_SeparatorToDashs*a WZend_Filter_Word_SeparatorToCamelCases(` SZend_Filter_Word_Separator_Abstracts&_ OZend_Filter_Word_DashToUnderscores%^ MZend_Filter_Word_DashToSeparators%] MZend_Filter_Word_DashToCamelCases+\ YZend_Filter_Word_CamelCaseToUnderscores*[ WZend_Filter_Word_CamelCaseToSeparators%Z MZend_Filter_Word_CamelCaseToDashsY 7Zend_Filter_StripTagssX ?Zend_Filter_StripNewlinessW 9Zend_Filter_StringTrimsV ?Zend_Filter_StringToUppersU ?Zend_Filter_StringToLowersT 5Zend_Filter_RealPathsS ;Zend_Filter_PregReplaces&R OZend_Filter_NormalizedToLocalizeds&Q OZend_Filter_LocalizedToNormalizedsP +Zend_Filter_IntsO /Zend_Filter_InputsN 7Zend_Filter_InflectorsM =Zend_Filter_HtmlEntitiessL AZend_Filter_File_UpperCasesK ;Zend_Filter_File_RenamesJ AZend_Filter_File_LowerCasesI =Zend_Filter_File_EncryptsH =Zend_Filter_File_DecryptsG 7Zend_Filter_ExceptionsF 3Zend_Filter_Encrypts E CZend_Filter_Encrypt_OpensslsD AZend_Filter_Encrypt_McryptsC +Zend_Filter_DirsB 1Zend_Filter_DigitssA 3Zend_Filter_Decrypts@ 5Zend_Filter_Callbacks? 5Zend_Filter_BaseNames> /Zend_Filter_Alphas= /Zend_Filter_Alnums< 1Zend_File_Transfers!; EZend_File_Transfer_Exceptions$: KZend_File_Transfer_Adapter_Https(9 SZend_File_Transfer_Adapter_Abstracts8 Zend_Feeds7 'Zend_Feed_Rsss6 -Zend_Feed_Readers"5 GZend_Feed_Reader_FeedAbstracts4 ?Zend_Feed_Reader_Feed_Rsss3 AZend_Feed_Reader_Feed_Atoms32 iZend_Feed_Reader_Extension_WellFormedWeb_Entrys,1 [Zend_Feed_Reader_Extension_Thread_Entrys00 cZend_Feed_Reader_Extension_Syndication_Feeds+/ YZend_Feed_Reader_Extension_Slash_Entrys,. [Zend_Feed_Reader_Extension_Podcast_Feeds-- ]Zend_Feed_Reader_Extension_Podcast_Entrys,, [Zend_Feed_Reader_Extension_FeedAbstracts-+ ]Zend_Feed_Reader_Extension_EntryAbstracts/* aZend_Feed_Reader_Extension_DublinCore_Feeds0) cZend_Feed_Reader_Extension_DublinCore_Entrys4( kZend_Feed_Reader_Extension_CreativeCommons_Feeds5' mZend_Feed_Reader_Extension_CreativeCommons_Entrys-& ]Zend_Feed_Reader_Extension_Content_Entrys)% UZend_Feed_Reader_Extension_Atom_Feeds*$ WZend_Feed_Reader_Extension_Atom_Entrys## IZend_Feed_Reader_EntryAbstracts" AZend_Feed_Reader_Entry_Rsss ! CZend_Feed_Reader_Entry_Atoms  3Zend_Feed_Exceptions 3Zend_Feed_Entry_Rsss 5Zend_Feed_Entry_Atoms =Zend_Feed_Entry_Abstracts /Zend_Feed_Elements /Zend_Feed_Builders =Zend_Feed_Builder_Headers$ KZend_Feed_Builder_Header_Ituness  CZend_Feed_Builder_Exceptions ;Zend_Feed_Builder_Entrys )Zend_Feed_Atoms 1Zend_Feed_Abstracts )Zend_Exceptions )Zend_Dom_Querys 7Zend_Dom_Query_Results =Zend_Dom_Query_Css2Xpaths 1Zend_Dom_Exceptions Zend_Dojos) UZend_Dojo_View_Helper_VerticalSliders, [Zend_Dojo_View_Helper_ValidationTextBoxs   e  g@! xY8gG&mSA{^=



l
E
				|	X	2	kCzU4tQw\3{Je@j8V                         +[ YZend_Gdata_Calendar_Extension_Timezones9Z uZend_Gdata_Calendar_Extension_SendEventNotificationss+Y YZend_Gdata_Calendar_Extension_Selecteds+X YZend_Gdata_Calendar_Extension_QuickAdds'W QZend_Gdata_Calendar_Extension_Links)V UZend_Gdata_Calendar_Extension_Hiddens(U SZend_Gdata_Calendar_Extension_Colors.T _Zend_Gdata_Calendar_Extension_AccessLevels#S IZend_Gdata_Calendar_EventQuerys"R GZend_Gdata_Calendar_EventFeeds#Q IZend_Gdata_Calendar_EventEntrysP -Zend_Gdata_Bookss!O EZend_Gdata_Books_VolumeQuerys N CZend_Gdata_Books_VolumeFeeds!M EZend_Gdata_Books_VolumeEntrys+L YZend_Gdata_Books_Extension_Viewabilitys-K ]Zend_Gdata_Books_Extension_ThumbnailLinks&J OZend_Gdata_Books_Extension_Reviews+I YZend_Gdata_Books_Extension_PreviewLinks(H SZend_Gdata_Books_Extension_InfoLinks-G ]Zend_Gdata_Books_Extension_Embeddabilitys)F UZend_Gdata_Books_Extension_BooksLinks-E ]Zend_Gdata_Books_Extension_BooksCategorys.D _Zend_Gdata_Books_Extension_AnnotationLinks$C KZend_Gdata_Books_CollectionFeeds%B MZend_Gdata_Books_CollectionEntrysA 1Zend_Gdata_AuthSubs@ )Zend_Gdata_Apps$? KZend_Gdata_App_VersionExceptions> 3Zend_Gdata_App_Utils#= IZend_Gdata_App_MediaFileSources< ?Zend_Gdata_App_MediaEntrys2; gZend_Gdata_App_LoggingHttpClientAdapterSockets: AZend_Gdata_App_IOExceptions,9 [Zend_Gdata_App_InvalidArgumentExceptions!8 EZend_Gdata_App_HttpExceptions$7 KZend_Gdata_App_FeedSourceParents#6 IZend_Gdata_App_FeedEntryParents5 3Zend_Gdata_App_Feeds4 =Zend_Gdata_App_Extensions!3 EZend_Gdata_App_Extension_Uris%2 MZend_Gdata_App_Extension_Updateds#1 IZend_Gdata_App_Extension_Titles"0 GZend_Gdata_App_Extension_Texts%/ MZend_Gdata_App_Extension_Summarys&. OZend_Gdata_App_Extension_Subtitles$- KZend_Gdata_App_Extension_Sources$, KZend_Gdata_App_Extension_Rightss'+ QZend_Gdata_App_Extension_Publisheds$* KZend_Gdata_App_Extension_Persons") GZend_Gdata_App_Extension_Names"( GZend_Gdata_App_Extension_Logos"' GZend_Gdata_App_Extension_Links & CZend_Gdata_App_Extension_Ids"% GZend_Gdata_App_Extension_Icons'$ QZend_Gdata_App_Extension_Generators## IZend_Gdata_App_Extension_Emails%" MZend_Gdata_App_Extension_Elements$! KZend_Gdata_App_Extension_Editeds#  IZend_Gdata_App_Extension_Drafts% MZend_Gdata_App_Extension_Controls) UZend_Gdata_App_Extension_Contributors% MZend_Gdata_App_Extension_Contents& OZend_Gdata_App_Extension_Categorys$ KZend_Gdata_App_Extension_Authors =Zend_Gdata_App_Exceptions 5Zend_Gdata_App_Entrys, [Zend_Gdata_App_CaptchaRequiredExceptions# IZend_Gdata_App_BaseMediaSources 3Zend_Gdata_App_Bases* WZend_Gdata_App_BadMethodCallExceptions! EZend_Gdata_App_AuthExceptions Zend_Forms /Zend_Form_SubForms 3Zend_Form_Exceptions /Zend_Form_Elements ;Zend_Form_Element_Xhtmls AZend_Form_Element_Textareas 9Zend_Form_Element_Texts =Zend_Form_Element_Submits =Zend_Form_Element_Selects
 ;Zend_Form_Element_Resets	 ;Zend_Form_Element_Radios AZend_Form_Element_Passwords" GZend_Form_Element_Multiselects$ KZend_Form_Element_MultiCheckboxs ;Zend_Form_Element_Multis ;Zend_Form_Element_Images =Zend_Form_Element_Hiddens 9Zend_Form_Element_Hashs 9Zend_Form_Element_Files   CZend_Form_Element_Exceptions AZend_Form_Element_Checkboxs~ ?Zend_Form_Element_Captchas} =Zend_Form_Element_Buttons| 9Zend_Form_DisplayGroups#{ IZend_Form_Decorator_ViewScripts#z IZend_Form_Decorator_ViewHelpers y CZend_Form_Decorator_Tooltips(x SZend_Form_Decorator_PrepareElementssw ?Zend_Form_Decorator_Labels   c  hIc/ j;]2
^7




`
6
				l	8	[*mL/o?qE_<pM+x_BhA                                   '> QZend_Gdata_Health_ProfileListEntrys"= GZend_Gdata_Health_ProfileFeeds#< IZend_Gdata_Health_ProfileEntrys$; KZend_Gdata_Health_Extension_Ccrs: )Zend_Gdata_Geos9 3Zend_Gdata_Geo_Feeds$8 KZend_Gdata_Geo_Extension_GmlPoss&7 OZend_Gdata_Geo_Extension_GmlPoints)6 UZend_Gdata_Geo_Extension_GeoRssWheres5 5Zend_Gdata_Geo_Entrys4 -Zend_Gdata_Gbases"3 GZend_Gdata_Gbase_SnippetQuerys!2 EZend_Gdata_Gbase_SnippetFeeds"1 GZend_Gdata_Gbase_SnippetEntrys0 9Zend_Gdata_Gbase_Querys/ AZend_Gdata_Gbase_ItemQuerys. ?Zend_Gdata_Gbase_ItemFeeds- AZend_Gdata_Gbase_ItemEntrys, 7Zend_Gdata_Gbase_Feeds-+ ]Zend_Gdata_Gbase_Extension_BaseAttributes* 9Zend_Gdata_Gbase_Entrys) -Zend_Gdata_Gappss( AZend_Gdata_Gapps_UserQuerys' ?Zend_Gdata_Gapps_UserFeeds& AZend_Gdata_Gapps_UserEntrys&% OZend_Gdata_Gapps_ServiceExceptions$ 9Zend_Gdata_Gapps_Querys## IZend_Gdata_Gapps_NicknameQuerys"" GZend_Gdata_Gapps_NicknameFeeds#! IZend_Gdata_Gapps_NicknameEntrys%  MZend_Gdata_Gapps_Extension_Quotas( SZend_Gdata_Gapps_Extension_Nicknames$ KZend_Gdata_Gapps_Extension_Names% MZend_Gdata_Gapps_Extension_Logins) UZend_Gdata_Gapps_Extension_EmailLists 9Zend_Gdata_Gapps_Errors- ]Zend_Gdata_Gapps_EmailListRecipientQuerys, [Zend_Gdata_Gapps_EmailListRecipientFeeds- ]Zend_Gdata_Gapps_EmailListRecipientEntrys$ KZend_Gdata_Gapps_EmailListQuerys# IZend_Gdata_Gapps_EmailListFeeds$ KZend_Gdata_Gapps_EmailListEntrys +Zend_Gdata_Feeds 5Zend_Gdata_Extensions =Zend_Gdata_Extension_Whos AZend_Gdata_Extension_Wheres ?Zend_Gdata_Extension_Whens$ KZend_Gdata_Extension_Visibilitys& OZend_Gdata_Extension_Transparencys" GZend_Gdata_Extension_Reminders- ]Zend_Gdata_Extension_RecurrenceExceptions$ KZend_Gdata_Extension_Recurrences 
 CZend_Gdata_Extension_Ratings'	 QZend_Gdata_Extension_OriginalEvents0 cZend_Gdata_Extension_OpenSearchTotalResultss. _Zend_Gdata_Extension_OpenSearchStartIndexs0 cZend_Gdata_Extension_OpenSearchItemsPerPages" GZend_Gdata_Extension_FeedLinks* WZend_Gdata_Extension_ExtendedPropertys% MZend_Gdata_Extension_EventStatuss# IZend_Gdata_Extension_EntryLinks" GZend_Gdata_Extension_Commentss&  OZend_Gdata_Extension_AttendeeTypes( SZend_Gdata_Extension_AttendeeStatuss~ +Zend_Gdata_Exifs} 5Zend_Gdata_Exif_Feeds#| IZend_Gdata_Exif_Extension_Times#{ IZend_Gdata_Exif_Extension_Tagss$z KZend_Gdata_Exif_Extension_Models#y IZend_Gdata_Exif_Extension_Makes"x GZend_Gdata_Exif_Extension_Isos,w [Zend_Gdata_Exif_Extension_ImageUniqueIds$v KZend_Gdata_Exif_Extension_FStops*u WZend_Gdata_Exif_Extension_FocalLengths$t KZend_Gdata_Exif_Extension_Flashs's QZend_Gdata_Exif_Extension_Exposures'r QZend_Gdata_Exif_Extension_Distancesq 7Zend_Gdata_Exif_Entrysp -Zend_Gdata_Entryso 7Zend_Gdata_DublinCores*n WZend_Gdata_DublinCore_Extension_Titles,m [Zend_Gdata_DublinCore_Extension_Subjects+l YZend_Gdata_DublinCore_Extension_Rightss.k _Zend_Gdata_DublinCore_Extension_Publishers-j ]Zend_Gdata_DublinCore_Extension_Languages/i aZend_Gdata_DublinCore_Extension_Identifiers+h YZend_Gdata_DublinCore_Extension_Formats0g cZend_Gdata_DublinCore_Extension_Descriptions)f UZend_Gdata_DublinCore_Extension_Dates,e [Zend_Gdata_DublinCore_Extension_Creatorsd +Zend_Gdata_Docssc 7Zend_Gdata_Docs_Querys%b MZend_Gdata_Docs_DocumentListFeeds&a OZend_Gdata_Docs_DocumentListEntrys` 9Zend_Gdata_ClientLogins_ 3Zend_Gdata_Calendars!^ EZend_Gdata_Calendar_ListFeeds"] GZend_Gdata_Calendar_ListEntrys-\ ]Zend_Gdata_Calendar_Extension_WebContents   \  oA# N_0n@"	_:



a
6
			}	P	_3yP"tJ%rN4pAW-oO&`3
                                ' QZend_Gdata_YouTube_Extension_Bookss% MZend_Gdata_YouTube_Extension_Ages) UZend_Gdata_YouTube_Extension_AboutMes# IZend_Gdata_YouTube_ContactFeeds$ KZend_Gdata_YouTube_ContactEntrys# IZend_Gdata_YouTube_CommentFeeds$ KZend_Gdata_YouTube_CommentEntrys$ KZend_Gdata_YouTube_ActivityFeeds% MZend_Gdata_YouTube_ActivityEntrys ;Zend_Gdata_Spreadsheetss* WZend_Gdata_Spreadsheets_WorksheetFeeds+ YZend_Gdata_Spreadsheets_WorksheetEntrys, [Zend_Gdata_Spreadsheets_SpreadsheetFeeds- ]Zend_Gdata_Spreadsheets_SpreadsheetEntrys& OZend_Gdata_Spreadsheets_ListQuerys% MZend_Gdata_Spreadsheets_ListFeeds&
 OZend_Gdata_Spreadsheets_ListEntrys/	 aZend_Gdata_Spreadsheets_Extension_RowCounts- ]Zend_Gdata_Spreadsheets_Extension_Customs/ aZend_Gdata_Spreadsheets_Extension_ColCounts+ YZend_Gdata_Spreadsheets_Extension_Cells* WZend_Gdata_Spreadsheets_DocumentQuerys& OZend_Gdata_Spreadsheets_CellQuerys% MZend_Gdata_Spreadsheets_CellFeeds& OZend_Gdata_Spreadsheets_CellEntrys -Zend_Gdata_Querys  /Zend_Gdata_Photoss  CZend_Gdata_Photos_UserQuerys~ AZend_Gdata_Photos_UserFeeds } CZend_Gdata_Photos_UserEntrys| AZend_Gdata_Photos_TagEntrys!{ EZend_Gdata_Photos_PhotoQuerys z CZend_Gdata_Photos_PhotoFeeds!y EZend_Gdata_Photos_PhotoEntrys&x OZend_Gdata_Photos_Extension_Widths'w QZend_Gdata_Photos_Extension_Weights(v SZend_Gdata_Photos_Extension_Versions%u MZend_Gdata_Photos_Extension_Users*t WZend_Gdata_Photos_Extension_Timestamps*s WZend_Gdata_Photos_Extension_Thumbnails%r MZend_Gdata_Photos_Extension_Sizes)q UZend_Gdata_Photos_Extension_Rotations+p YZend_Gdata_Photos_Extension_QuotaLimits-o ]Zend_Gdata_Photos_Extension_QuotaCurrents)n UZend_Gdata_Photos_Extension_Positions(m SZend_Gdata_Photos_Extension_PhotoIds3l iZend_Gdata_Photos_Extension_NumPhotosRemainings*k WZend_Gdata_Photos_Extension_NumPhotoss)j UZend_Gdata_Photos_Extension_Nicknames%i MZend_Gdata_Photos_Extension_Names2h gZend_Gdata_Photos_Extension_MaxPhotosPerAlbums)g UZend_Gdata_Photos_Extension_Locations#f IZend_Gdata_Photos_Extension_Ids'e QZend_Gdata_Photos_Extension_Heights2d gZend_Gdata_Photos_Extension_CommentingEnableds-c ]Zend_Gdata_Photos_Extension_CommentCounts'b QZend_Gdata_Photos_Extension_Clients)a UZend_Gdata_Photos_Extension_Checksums*` WZend_Gdata_Photos_Extension_BytesUseds(_ SZend_Gdata_Photos_Extension_AlbumIds'^ QZend_Gdata_Photos_Extension_Accesss#] IZend_Gdata_Photos_CommentEntrys!\ EZend_Gdata_Photos_AlbumQuerys [ CZend_Gdata_Photos_AlbumFeeds!Z EZend_Gdata_Photos_AlbumEntrysY 3Zend_Gdata_MimeFilesX ?Zend_Gdata_MimeBodyStringsW AZend_Gdata_MediaMimeStreamsV -Zend_Gdata_MediasU 7Zend_Gdata_Media_Feeds*T WZend_Gdata_Media_Extension_MediaTitles.S _Zend_Gdata_Media_Extension_MediaThumbnails)R UZend_Gdata_Media_Extension_MediaTexts0Q cZend_Gdata_Media_Extension_MediaRestrictions+P YZend_Gdata_Media_Extension_MediaRatings+O YZend_Gdata_Media_Extension_MediaPlayers-N ]Zend_Gdata_Media_Extension_MediaKeywordss)M UZend_Gdata_Media_Extension_MediaHashs*L WZend_Gdata_Media_Extension_MediaGroups0K cZend_Gdata_Media_Extension_MediaDescriptions+J YZend_Gdata_Media_Extension_MediaCredits.I _Zend_Gdata_Media_Extension_MediaCopyrights,H [Zend_Gdata_Media_Extension_MediaContents-G ]Zend_Gdata_Media_Extension_MediaCategorysF 9Zend_Gdata_Media_EntrysE AZend_Gdata_Kind_EventEntrysD 7Zend_Gdata_HttpClients*C WZend_Gdata_HttpAdapterStreamingSockets)B UZend_Gdata_HttpAdapterStreamingProxysA /Zend_Gdata_Healths@ ;Zend_Gdata_Health_Querys&? OZend_Gdata_Health_ProfileListFeeds   [  wFb4
yId4uK



c
3
				S	-	[.^8
jD!vN'WrN,}Y.K                               4u kZend_InfoCard_Xml_Security_Transform_XmlExcC14Ns3t iZend_InfoCard_Xml_Security_Transform_Exceptions<s {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignatures)r UZend_InfoCard_Xml_Security_Exceptionsq ?Zend_InfoCard_Xml_KeyInfos&p OZend_InfoCard_Xml_KeyInfo_XmlDSigs&o OZend_InfoCard_Xml_KeyInfo_Defaults'n QZend_InfoCard_Xml_KeyInfo_Abstracts m CZend_InfoCard_Xml_Exceptions#l IZend_InfoCard_Xml_EncryptedKeys$k KZend_InfoCard_Xml_EncryptedDatas+j YZend_InfoCard_Xml_EncryptedData_XmlEncs-i ]Zend_InfoCard_Xml_EncryptedData_Abstractsh ?Zend_InfoCard_Xml_Elements g CZend_InfoCard_Xml_Assertions%f MZend_InfoCard_Xml_Assertion_Samlse ;Zend_InfoCard_Exceptions%d MZend_InfoCard_Exception_Abstractsc 5Zend_InfoCard_Claimssb 5Zend_InfoCard_Ciphers5a mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcs5` mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcs4_ kZend_InfoCard_Cipher_Symmetric_Adapter_Abstracts)^ UZend_InfoCard_Cipher_Pki_Adapter_Rsas.] _Zend_InfoCard_Cipher_Pki_Adapter_Abstracts#\ IZend_InfoCard_Cipher_Exceptions$[ KZend_InfoCard_Adapter_Exceptions"Z GZend_InfoCard_Adapter_DefaultsY 1Zend_Http_ResponsesX 3Zend_Http_ExceptionsW 3Zend_Http_CookieJarsV -Zend_Http_CookiesU -Zend_Http_ClientsT AZend_Http_Client_Exceptions"S GZend_Http_Client_Adapter_Tests$R KZend_Http_Client_Adapter_Sockets#Q IZend_Http_Client_Adapter_Proxys'P QZend_Http_Client_Adapter_Exceptions"O GZend_Http_Client_Adapter_CurlsN !Zend_GdatasM 1Zend_Gdata_YouTubes"L GZend_Gdata_YouTube_VideoQuerys!K EZend_Gdata_YouTube_VideoFeeds"J GZend_Gdata_YouTube_VideoEntrys(I SZend_Gdata_YouTube_UserProfileEntrys(H SZend_Gdata_YouTube_SubscriptionFeeds)G UZend_Gdata_YouTube_SubscriptionEntrys)F UZend_Gdata_YouTube_PlaylistVideoFeeds*E WZend_Gdata_YouTube_PlaylistVideoEntrys(D SZend_Gdata_YouTube_PlaylistListFeeds)C UZend_Gdata_YouTube_PlaylistListEntrys"B GZend_Gdata_YouTube_MediaEntrys!A EZend_Gdata_YouTube_InboxFeeds"@ GZend_Gdata_YouTube_InboxEntrys)? UZend_Gdata_YouTube_Extension_VideoIds*> WZend_Gdata_YouTube_Extension_Usernames*= WZend_Gdata_YouTube_Extension_Uploadeds'< QZend_Gdata_YouTube_Extension_Tokens(; SZend_Gdata_YouTube_Extension_Statuss,: [Zend_Gdata_YouTube_Extension_Statisticss'9 QZend_Gdata_YouTube_Extension_States(8 SZend_Gdata_YouTube_Extension_Schools-7 ]Zend_Gdata_YouTube_Extension_ReleaseDates.6 _Zend_Gdata_YouTube_Extension_Relationships*5 WZend_Gdata_YouTube_Extension_Recordeds&4 OZend_Gdata_YouTube_Extension_Racys-3 ]Zend_Gdata_YouTube_Extension_QueryStrings)2 UZend_Gdata_YouTube_Extension_Privates*1 WZend_Gdata_YouTube_Extension_Positions/0 aZend_Gdata_YouTube_Extension_PlaylistTitles,/ [Zend_Gdata_YouTube_Extension_PlaylistIds,. [Zend_Gdata_YouTube_Extension_Occupations)- UZend_Gdata_YouTube_Extension_NoEmbeds', QZend_Gdata_YouTube_Extension_Musics(+ SZend_Gdata_YouTube_Extension_Moviess-* ]Zend_Gdata_YouTube_Extension_MediaRatings,) [Zend_Gdata_YouTube_Extension_MediaGroups-( ]Zend_Gdata_YouTube_Extension_MediaCredits.' _Zend_Gdata_YouTube_Extension_MediaContents*& WZend_Gdata_YouTube_Extension_Locations&% OZend_Gdata_YouTube_Extension_Links*$ WZend_Gdata_YouTube_Extension_LastNames*# WZend_Gdata_YouTube_Extension_Hometowns)" UZend_Gdata_YouTube_Extension_Hobbiess(! SZend_Gdata_YouTube_Extension_Genders+  YZend_Gdata_YouTube_Extension_FirstNames* WZend_Gdata_YouTube_Extension_Durations- ]Zend_Gdata_YouTube_Extension_Descriptions+ YZend_Gdata_YouTube_Extension_CountHints) UZend_Gdata_YouTube_Extension_Controls) UZend_Gdata_YouTube_Extension_Companys   t iO5{Z3pC%y];cJ+



h
@
!				_	%\=cH%{Z7}`C$lH#`@jH)
zU4"                    i 7Zend_Measure_Abstractsh Zend_Mailsg =Zend_Mail_Transport_Smtps!f EZend_Mail_Transport_Sendmails"e GZend_Mail_Transport_Exceptions!d EZend_Mail_Transport_Abstractsc /Zend_Mail_Storages'b QZend_Mail_Storage_Writable_Maildirsa 9Zend_Mail_Storage_Pop3s` 9Zend_Mail_Storage_Mboxs_ ?Zend_Mail_Storage_Maildirs^ 9Zend_Mail_Storage_Imaps] =Zend_Mail_Storage_Folders"\ GZend_Mail_Storage_Folder_Mboxs%[ MZend_Mail_Storage_Folder_Maildirs Z CZend_Mail_Storage_ExceptionsY AZend_Mail_Storage_AbstractsX ;Zend_Mail_Protocol_Smtps'W QZend_Mail_Protocol_Smtp_Auth_Plains'V QZend_Mail_Protocol_Smtp_Auth_Logins)U UZend_Mail_Protocol_Smtp_Auth_Crammd5sT ;Zend_Mail_Protocol_Pop3sS ;Zend_Mail_Protocol_Imaps!R EZend_Mail_Protocol_Exceptions Q CZend_Mail_Protocol_AbstractsP )Zend_Mail_PartsO 3Zend_Mail_Part_FilesN /Zend_Mail_MessagesM 9Zend_Mail_Message_FilesL 3Zend_Mail_ExceptionsK Zend_LogsJ 9Zend_Log_Writer_SyslogsI 9Zend_Log_Writer_StreamsH 5Zend_Log_Writer_NullsG 5Zend_Log_Writer_MocksF 5Zend_Log_Writer_MailsE ;Zend_Log_Writer_FirebugsD 1Zend_Log_Writer_DbsC =Zend_Log_Writer_AbstractsB 9Zend_Log_Formatter_XmlsA ?Zend_Log_Formatter_Simples@ AZend_Log_Formatter_Firebugs? =Zend_Log_Filter_Suppresss> =Zend_Log_Filter_Prioritys= ;Zend_Log_Filter_Messages< 1Zend_Log_Exceptions; #Zend_Locales: -Zend_Locale_Maths9 =Zend_Locale_Math_PhpMaths8 AZend_Locale_Math_Exceptions7 1Zend_Locale_Formats6 7Zend_Locale_Exceptions5 -Zend_Locale_Datas!4 EZend_Locale_Data_Translations3 #Zend_Loaders2 =Zend_Loader_PluginLoaders'1 QZend_Loader_PluginLoader_Exceptions0 7Zend_Loader_Exceptions/ 9Zend_Loader_Autoloaders$. KZend_Loader_Autoloader_Resources- Zend_Ldaps, )Zend_Ldap_Nodes+ 7Zend_Ldap_Node_Schemas#* IZend_Ldap_Node_Schema_OpenLdaps/) aZend_Ldap_Node_Schema_ObjectClass_OpenLdaps6( oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectorys' AZend_Ldap_Node_Schema_Items1& eZend_Ldap_Node_Schema_AttributeType_OpenLdaps8% sZend_Ldap_Node_Schema_AttributeType_ActiveDirectorys*$ WZend_Ldap_Node_Schema_ActiveDirectorys# 9Zend_Ldap_Node_RootDses$" KZend_Ldap_Node_RootDse_OpenLdaps&! OZend_Ldap_Node_RootDse_eDirectorys+  YZend_Ldap_Node_RootDse_ActiveDirectorys ?Zend_Ldap_Node_Collections$ KZend_Ldap_Node_ChildrenIterators ;Zend_Ldap_Node_Abstracts 9Zend_Ldap_Ldif_Encoders -Zend_Ldap_Filters ;Zend_Ldap_Filter_Strings 3Zend_Ldap_Filter_Ors 5Zend_Ldap_Filter_Nots 7Zend_Ldap_Filter_Masks =Zend_Ldap_Filter_Logicals AZend_Ldap_Filter_Exceptions 5Zend_Ldap_Filter_Ands ?Zend_Ldap_Filter_Abstracts 3Zend_Ldap_Exceptions %Zend_Ldap_Dns 3Zend_Ldap_Converters 5Zend_Ldap_Collections* WZend_Ldap_Collection_Iterator_Defaults 3Zend_Ldap_Attributes #Zend_Layouts 7Zend_Layout_Exceptions)
 UZend_Layout_Controller_Plugin_Layouts0	 cZend_Layout_Controller_Action_Helper_Layouts Zend_Jsons -Zend_Json_Servers 5Zend_Json_Server_Smds! EZend_Json_Server_Smd_Services ?Zend_Json_Server_Responses# IZend_Json_Server_Response_Https =Zend_Json_Server_Requests" GZend_Json_Server_Request_Https  AZend_Json_Server_Exceptions 9Zend_Json_Server_Errors~ 9Zend_Json_Server_Caches} )Zend_Json_Exprs| 3Zend_Json_Exceptions{ /Zend_Json_Encodersz /Zend_Json_Decodersy 'Zend_InfoCards-x ]Zend_InfoCard_Xml_SecurityTokenReferencesw AZend_InfoCard_Xml_Securitys)v UZend_InfoCard_Xml_Security_Transforms   u  lH$qP5dI(jE t[?%




v
Y
A
					v	L	']0k=|_<zV8Y8fP4~Rb?       ^ ?Zend_Pdf_Destination_Zooms!] EZend_Pdf_Destination_Unknowns\ AZend_Pdf_Destination_Nameds'[ QZend_Pdf_Destination_FitVerticallys&Z OZend_Pdf_Destination_FitRectangles)Y UZend_Pdf_Destination_FitHorizontallys2X gZend_Pdf_Destination_FitBoundingBoxVerticallys4W kZend_Pdf_Destination_FitBoundingBoxHorizontallys(V SZend_Pdf_Destination_FitBoundingBoxsU =Zend_Pdf_Destination_Fits"T GZend_Pdf_Destination_ExplicitsS )Zend_Pdf_ColorsR 1Zend_Pdf_Color_RgbsQ 3Zend_Pdf_Color_HtmlsP =Zend_Pdf_Color_GrayScalesO 3Zend_Pdf_Color_CmyksN 'Zend_Pdf_CmapsM AZend_Pdf_Cmap_TrimmedTables!L EZend_Pdf_Cmap_SegmentToDeltasK AZend_Pdf_Cmap_ByteEncodings&J OZend_Pdf_Cmap_ByteEncoding_StaticsI 3Zend_Pdf_AnnotationsH =Zend_Pdf_Annotation_TextsG =Zend_Pdf_Annotation_Links'F QZend_Pdf_Annotation_FileAttachmentsE +Zend_Pdf_ActionsD 3Zend_Pdf_Action_URIsC ;Zend_Pdf_Action_UnknownsB 7Zend_Pdf_Action_TranssA 9Zend_Pdf_Action_Threads@ AZend_Pdf_Action_SubmitForms? 7Zend_Pdf_Action_Sounds > CZend_Pdf_Action_SetOCGStates= ?Zend_Pdf_Action_ResetForms< ?Zend_Pdf_Action_Renditions; 7Zend_Pdf_Action_Nameds: 7Zend_Pdf_Action_Movies9 9Zend_Pdf_Action_Launchs8 AZend_Pdf_Action_JavaScripts7 AZend_Pdf_Action_ImportDatas6 5Zend_Pdf_Action_Hides5 7Zend_Pdf_Action_GoToRs4 7Zend_Pdf_Action_GoToEs3 AZend_Pdf_Action_GoTo3DViews2 5Zend_Pdf_Action_GoTos1 )Zend_Paginators*0 WZend_Paginator_ScrollingStyle_Slidings*/ WZend_Paginator_ScrollingStyle_Jumpings*. WZend_Paginator_ScrollingStyle_Elastics&- OZend_Paginator_ScrollingStyle_Alls, =Zend_Paginator_Exceptions + CZend_Paginator_Adapter_Nulls$* KZend_Paginator_Adapter_Iterators)) UZend_Paginator_Adapter_DbTableSelects$( KZend_Paginator_Adapter_DbSelects!' EZend_Paginator_Adapter_Arrays& #Zend_OpenIds% 5Zend_OpenId_Providers$ ?Zend_OpenId_Provider_Users&# OZend_OpenId_Provider_User_Sessions!" EZend_OpenId_Provider_Storages&! OZend_OpenId_Provider_Storage_Files  7Zend_OpenId_Extensions AZend_OpenId_Extension_Sregs 7Zend_OpenId_Exceptions 5Zend_OpenId_Consumers! EZend_OpenId_Consumer_Storages& OZend_OpenId_Consumer_Storage_Files +Zend_Navigations 5Zend_Navigation_Pages =Zend_Navigation_Page_Uris =Zend_Navigation_Page_Mvcs ?Zend_Navigation_Exceptions ?Zend_Navigation_Containers Zend_Mimes )Zend_Mime_Parts /Zend_Mime_Messages 3Zend_Mime_Exceptions -Zend_Mime_Decodes #Zend_Memorys /Zend_Memory_Values 3Zend_Memory_Managers 7Zend_Memory_Exceptions 7Zend_Memory_Containers"
 GZend_Memory_Container_Movables!	 EZend_Memory_Container_Lockeds! EZend_Memory_AccessControllers 3Zend_Measure_Weights 3Zend_Measure_Volumes% MZend_Measure_Viscosity_Kinematics# IZend_Measure_Viscosity_Dynamics 3Zend_Measure_Torques /Zend_Measure_Times =Zend_Measure_Temperatures  1Zend_Measure_Speeds 7Zend_Measure_Pressures~ 1Zend_Measure_Powers} 3Zend_Measure_Numbers| 9Zend_Measure_Lightnesss{ 3Zend_Measure_Lengthsz ?Zend_Measure_Illuminationsy 9Zend_Measure_Frequencysx 1Zend_Measure_Forcesw =Zend_Measure_Flow_Volumesv 9Zend_Measure_Flow_Molesu 9Zend_Measure_Flow_Massst 9Zend_Measure_Exceptionss 3Zend_Measure_Energysr 5Zend_Measure_Densitysq 5Zend_Measure_Currents p CZend_Measure_Cooking_Weights o CZend_Measure_Cooking_Volumesn =Zend_Measure_Capacitancesm 3Zend_Measure_Binarysl /Zend_Measure_Areask 1Zend_Measure_Anglesj ?Zend_Measure_Accelerations   e  aC"dDP&vI#lV?%




~
d
-					I	h*o/F{V7hJ3`5d9k?"       #C IZend_Queue_Message_PlatformJobs B CZend_Queue_Message_IteratorsA 5Zend_Queue_Exceptions(@ SZend_Queue_Adapter_PlatformJobQueues? ;Zend_Queue_Adapter_Nulls!> EZend_Queue_Adapter_Memcacheqs= 7Zend_Queue_Adapter_Dbs < CZend_Queue_Adapter_Db_Queues"; GZend_Queue_Adapter_Db_Messages: =Zend_Queue_Adapter_Arrays'9 QZend_Queue_Adapter_AdapterAbstracts 8 CZend_Queue_Adapter_Activemqs7 -Zend_ProgressBars6 AZend_ProgressBar_Exceptions5 =Zend_ProgressBar_Adapters$4 KZend_ProgressBar_Adapter_JsPushs$3 KZend_ProgressBar_Adapter_JsPulls'2 QZend_ProgressBar_Adapter_Exceptions%1 MZend_ProgressBar_Adapter_Consoles0 Zend_Pdfs!/ EZend_Pdf_UpdateInfoContainers. -Zend_Pdf_Trailers- ;Zend_Pdf_Trailer_Keepers, AZend_Pdf_Trailer_Generators+ +Zend_Pdf_Targets* )Zend_Pdf_Styles) 7Zend_Pdf_StringParsers( /Zend_Pdf_Resources#' IZend_Pdf_Resource_ImageFactorys& ;Zend_Pdf_Resource_Images!% EZend_Pdf_Resource_Image_Tiffs $ CZend_Pdf_Resource_Image_Pngs!# EZend_Pdf_Resource_Image_Jpegs" 9Zend_Pdf_Resource_Fonts!! EZend_Pdf_Resource_Font_Type0s"  GZend_Pdf_Resource_Font_Simples+ YZend_Pdf_Resource_Font_Simple_Standards8 sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatss6 oZend_Pdf_Resource_Font_Simple_Standard_TimesRomans7 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalics; yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalics5 mZend_Pdf_Resource_Font_Simple_Standard_TimesBolds2 gZend_Pdf_Resource_Font_Simple_Standard_Symbols< {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliquesA Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliques9 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBolds5 mZend_Pdf_Resource_Font_Simple_Standard_Helveticas: wZend_Pdf_Resource_Font_Simple_Standard_CourierObliques> Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliques7 qZend_Pdf_Resource_Font_Simple_Standard_CourierBolds3 iZend_Pdf_Resource_Font_Simple_Standard_Couriers) UZend_Pdf_Resource_Font_Simple_Parseds2 gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypes* WZend_Pdf_Resource_Font_FontDescriptors% MZend_Pdf_Resource_Font_Extracteds# IZend_Pdf_Resource_Font_CidFonts, [Zend_Pdf_Resource_Font_CidFont_TrueTypes3
 iZend_Pdf_RecursivelyIteratableObjectsContainers	 /Zend_Pdf_PhpArrays +Zend_Pdf_Parsers 9Zend_Pdf_Parser_Streams 'Zend_Pdf_Pages -Zend_Pdf_Outlines ;Zend_Pdf_Outline_Loadeds =Zend_Pdf_Outline_Createds /Zend_Pdf_NameTrees )Zend_Pdf_Images  'Zend_Pdf_Fonts  CZend_Pdf_Filter_Compressions$~ KZend_Pdf_Filter_Compression_Lzws&} OZend_Pdf_Filter_Compression_Flates| =Zend_Pdf_Filter_AsciiHexs{ ;Zend_Pdf_Filter_Ascii85s"z GZend_Pdf_FileParserDataSources)y UZend_Pdf_FileParserDataSource_Strings'x QZend_Pdf_FileParserDataSource_Filesw 3Zend_Pdf_FileParsersv ?Zend_Pdf_FileParser_Images"u GZend_Pdf_FileParser_Image_Pngst =Zend_Pdf_FileParser_Fonts&s OZend_Pdf_FileParser_Font_OpenTypes/r aZend_Pdf_FileParser_Font_OpenType_TrueTypesq 1Zend_Pdf_Exceptionsp ;Zend_Pdf_ElementFactorys"o GZend_Pdf_ElementFactory_Proxysn -Zend_Pdf_Elementsm ;Zend_Pdf_Element_Strings#l IZend_Pdf_Element_String_Binarysk ;Zend_Pdf_Element_Streamsj AZend_Pdf_Element_References%i MZend_Pdf_Element_Reference_Tables'h QZend_Pdf_Element_Reference_Contextsg ;Zend_Pdf_Element_Objects#f IZend_Pdf_Element_Object_Streamse =Zend_Pdf_Element_Numericsd 7Zend_Pdf_Element_Nullsc 7Zend_Pdf_Element_Names b CZend_Pdf_Element_Dictionarysa =Zend_Pdf_Element_Booleans` 9Zend_Pdf_Element_Arrays_ 5Zend_Pdf_Destinations   X  {hJiL+fF-8v,


j
6
				g	,kB{Z;`1b8Y8f8e(\+                        0 cZend_Search_Lucene_Search_QueryEntry_Phrases$ KZend_Search_Lucene_Search_Querys- ]Zend_Search_Lucene_Search_Query_Wildcards) UZend_Search_Lucene_Search_Query_Terms* WZend_Search_Lucene_Search_Query_Ranges2 gZend_Search_Lucene_Search_Query_Preprocessings7 qZend_Search_Lucene_Search_Query_Preprocessing_Terms9 uZend_Search_Lucene_Search_Query_Preprocessing_Phrases8 sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzys+ YZend_Search_Lucene_Search_Query_Phrases. _Zend_Search_Lucene_Search_Query_MultiTerms2 gZend_Search_Lucene_Search_Query_Insignificants* WZend_Search_Lucene_Search_Query_Fuzzys* WZend_Search_Lucene_Search_Query_Emptys, [Zend_Search_Lucene_Search_Query_Booleans2 gZend_Search_Lucene_Search_Highlighter_Defaults: wZend_Search_Lucene_Search_BooleanExpressionRecognizers
 =Zend_Search_Lucene_Proxys%	 MZend_Search_Lucene_PriorityQueues/ aZend_Search_Lucene_Interface_MultiSearchers# IZend_Search_Lucene_LockManagers$ KZend_Search_Lucene_Index_Writers0 cZend_Search_Lucene_Index_TermsPriorityQueues& OZend_Search_Lucene_Index_TermInfos" GZend_Search_Lucene_Index_Terms+ YZend_Search_Lucene_Index_SegmentWriters8 sZend_Search_Lucene_Index_SegmentWriter_StreamWriters:  wZend_Search_Lucene_Index_SegmentWriter_DocumentWriters+ YZend_Search_Lucene_Index_SegmentMergers)~ UZend_Search_Lucene_Index_SegmentInfos'} QZend_Search_Lucene_Index_FieldInfos(| SZend_Search_Lucene_Index_DocsFilters.{ _Zend_Search_Lucene_Index_DictionaryLoaders!z EZend_Search_Lucene_FSMActionsy 9Zend_Search_Lucene_FSMsx =Zend_Search_Lucene_Fields!w EZend_Search_Lucene_Exceptions v CZend_Search_Lucene_Documents%u MZend_Search_Lucene_Document_Xlsxs%t MZend_Search_Lucene_Document_Pptxs(s SZend_Search_Lucene_Document_OpenXmls%r MZend_Search_Lucene_Document_Htmls*q WZend_Search_Lucene_Document_Exceptions%p MZend_Search_Lucene_Document_Docxs,o [Zend_Search_Lucene_Analysis_TokenFilters6n oZend_Search_Lucene_Analysis_TokenFilter_StopWordss7m qZend_Search_Lucene_Analysis_TokenFilter_ShortWordss:l wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8s6k oZend_Search_Lucene_Analysis_TokenFilter_LowerCases&j OZend_Search_Lucene_Analysis_Tokens)i UZend_Search_Lucene_Analysis_Analyzers0h cZend_Search_Lucene_Analysis_Analyzer_Commons8g sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumsIf Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitives5e mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8sFd Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitives8c sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumsIb Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitives5a mZend_Search_Lucene_Analysis_Analyzer_Common_TextsF` Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitives_ 7Zend_Search_Exceptions^ -Zend_Rest_Servers] AZend_Rest_Server_Exceptions\ +Zend_Rest_Routes[ 3Zend_Rest_ExceptionsZ 5Zend_Rest_ControllersY -Zend_Rest_ClientsX ;Zend_Rest_Client_Results&W OZend_Rest_Client_Result_ExceptionsV AZend_Rest_Client_ExceptionsU 'Zend_RegistrysT =Zend_Reflection_PropertysS ?Zend_Reflection_ParametersR 9Zend_Reflection_MethodsQ =Zend_Reflection_FunctionsP 5Zend_Reflection_FilesO ?Zend_Reflection_ExtensionsN ?Zend_Reflection_ExceptionsM =Zend_Reflection_Docblocks!L EZend_Reflection_Docblock_Tags(K SZend_Reflection_Docblock_Tag_Returns'J QZend_Reflection_Docblock_Tag_ParamsI 7Zend_Reflection_ClasssH !Zend_QueuesG 9Zend_Queue_Stomp_FramesF ;Zend_Queue_Stomp_Clients'E QZend_Queue_Stomp_Client_ConnectionsD 1Zend_Queue_Messages   `  k@yLW'k8	u[<




e
<
				p	G	uJ!vL&rK"_>\6b9c@|U7                     .{ _Zend_Service_ReCaptcha_MailHide_Exceptions%z MZend_Service_ReCaptcha_Exceptionsy 7Zend_Service_Nirvanixs#x IZend_Service_Nirvanix_Responses)w UZend_Service_Nirvanix_Namespace_Imfss)v UZend_Service_Nirvanix_Namespace_Bases$u KZend_Service_Nirvanix_Exceptionst 3Zend_Service_Flickrs"s GZend_Service_Flickr_ResultSetsr AZend_Service_Flickr_Resultsq ?Zend_Service_Flickr_Imagesp 9Zend_Service_Exceptionso 9Zend_Service_Deliciouss&n OZend_Service_Delicious_SimplePosts$m KZend_Service_Delicious_PostLists l CZend_Service_Delicious_Posts%k MZend_Service_Delicious_Exceptions j CZend_Service_Audioscrobblersi 3Zend_Service_Amazonsh ;Zend_Service_Amazon_Sqss&g OZend_Service_Amazon_Sqs_Exceptions'f QZend_Service_Amazon_SimilarProductse 9Zend_Service_Amazon_S3s"d GZend_Service_Amazon_S3_Streams%c MZend_Service_Amazon_S3_Exceptions"b GZend_Service_Amazon_ResultSetsa ?Zend_Service_Amazon_Querys!` EZend_Service_Amazon_OfferSets_ ?Zend_Service_Amazon_Offers&^ OZend_Service_Amazon_ListmaniaLists] =Zend_Service_Amazon_Items\ ?Zend_Service_Amazon_Images"[ GZend_Service_Amazon_Exceptions(Z SZend_Service_Amazon_EditorialReviewsY ;Zend_Service_Amazon_Ec2s+X YZend_Service_Amazon_Ec2_Securitygroupss%W MZend_Service_Amazon_Ec2_Responses#V IZend_Service_Amazon_Ec2_Regions$U KZend_Service_Amazon_Ec2_Keypairs%T MZend_Service_Amazon_Ec2_Instances-S ]Zend_Service_Amazon_Ec2_Instance_Windowss.R _Zend_Service_Amazon_Ec2_Instance_Reserveds"Q GZend_Service_Amazon_Ec2_Images&P OZend_Service_Amazon_Ec2_Exceptions&O OZend_Service_Amazon_Ec2_Elasticips N CZend_Service_Amazon_Ec2_Ebss'M QZend_Service_Amazon_Ec2_CloudWatchs.L _Zend_Service_Amazon_Ec2_Availabilityzoness%K MZend_Service_Amazon_Ec2_Abstracts'J QZend_Service_Amazon_CustomerReviews$I KZend_Service_Amazon_Accessoriess!H EZend_Service_Amazon_AbstractsG 5Zend_Service_AkismetsF 7Zend_Service_AbstractsE 9Zend_Server_Reflections'D QZend_Server_Reflection_ReturnValues%C MZend_Server_Reflection_Prototypes%B MZend_Server_Reflection_Parameters A CZend_Server_Reflection_Nodes"@ GZend_Server_Reflection_Methods$? KZend_Server_Reflection_Functions-> ]Zend_Server_Reflection_Function_Abstracts%= MZend_Server_Reflection_Exceptions!< EZend_Server_Reflection_Classs!; EZend_Server_Method_Prototypes!: EZend_Server_Method_Parameters"9 GZend_Server_Method_Definitions 8 CZend_Server_Method_Callbacks7 7Zend_Server_Exceptions6 9Zend_Server_Definitions5 /Zend_Server_Caches4 5Zend_Server_Abstracts3 1Zend_Search_Lucenes02 cZend_Search_Lucene_TermStreamsPriorityQueues$1 KZend_Search_Lucene_Storage_Files+0 YZend_Search_Lucene_Storage_File_Memorys// aZend_Search_Lucene_Storage_File_Filesystems). UZend_Search_Lucene_Storage_Directorys4- kZend_Search_Lucene_Storage_Directory_Filesystems%, MZend_Search_Lucene_Search_Weights*+ WZend_Search_Lucene_Search_Weight_Terms,* [Zend_Search_Lucene_Search_Weight_Phrases/) aZend_Search_Lucene_Search_Weight_MultiTerms+( YZend_Search_Lucene_Search_Weight_Emptys-' ]Zend_Search_Lucene_Search_Weight_Booleans)& UZend_Search_Lucene_Search_Similaritys1% eZend_Search_Lucene_Search_Similarity_Defaults)$ UZend_Search_Lucene_Search_QueryTokens3# iZend_Search_Lucene_Search_QueryParserExceptions1" eZend_Search_Lucene_Search_QueryParserContexts*! WZend_Search_Lucene_Search_QueryParsers)  UZend_Search_Lucene_Search_QueryLexers' QZend_Search_Lucene_Search_QueryHits) UZend_Search_Lucene_Search_QueryEntrys. _Zend_Search_Lucene_Search_QueryEntry_Terms2 gZend_Search_Lucene_Search_QueryEntry_Subquerys   e  qL)	U'pK!dD_* 


}
S
&				t	F	 qP)}S-f?pQ(jK+tS*q>' \;$	         ` /Zend_Tag_ItemLists_ 'Zend_Tag_Items^ 1Zend_Tag_Exceptions] )Zend_Tag_Clouds\ =Zend_Tag_Cloud_Exceptions![ EZend_Tag_Cloud_Decorator_Tags%Z MZend_Tag_Cloud_Decorator_HtmlTags'Y QZend_Tag_Cloud_Decorator_HtmlClouds'X QZend_Tag_Cloud_Decorator_Exceptions#W IZend_Tag_Cloud_Decorator_CloudsV )Zend_Soap_Wsdls/U aZend_Soap_Wsdl_Strategy_DefaultComplexTypes&T OZend_Soap_Wsdl_Strategy_Composites0S cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequences/R aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplexs$Q KZend_Soap_Wsdl_Strategy_AnyTypes%P MZend_Soap_Wsdl_Strategy_AbstractsO =Zend_Soap_Wsdl_ExceptionsN -Zend_Soap_ServersM AZend_Soap_Server_ExceptionsL -Zend_Soap_ClientsK 9Zend_Soap_Client_LocalsJ AZend_Soap_Client_ExceptionsI ;Zend_Soap_Client_DotNetsH ;Zend_Soap_Client_CommonsG 9Zend_Soap_AutoDiscovers%F MZend_Soap_AutoDiscover_ExceptionsE %Zend_Sessions)D UZend_Session_Validator_HttpUserAgents$C KZend_Session_Validator_Abstracts'B QZend_Session_SaveHandler_Exceptions%A MZend_Session_SaveHandler_DbTables@ 9Zend_Session_Namespaces? 9Zend_Session_Exceptions> 7Zend_Session_Abstracts= 1Zend_Service_Yahoos$< KZend_Service_Yahoo_WebResultSets!; EZend_Service_Yahoo_WebResults&: OZend_Service_Yahoo_VideoResultSets#9 IZend_Service_Yahoo_VideoResults!8 EZend_Service_Yahoo_ResultSets7 ?Zend_Service_Yahoo_Results)6 UZend_Service_Yahoo_PageDataResultSets&5 OZend_Service_Yahoo_PageDataResults%4 MZend_Service_Yahoo_NewsResultSets"3 GZend_Service_Yahoo_NewsResults&2 OZend_Service_Yahoo_LocalResultSets#1 IZend_Service_Yahoo_LocalResults+0 YZend_Service_Yahoo_InlinkDataResultSets(/ SZend_Service_Yahoo_InlinkDataResults&. OZend_Service_Yahoo_ImageResultSets#- IZend_Service_Yahoo_ImageResults, =Zend_Service_Yahoo_Images+ 5Zend_Service_Twitters * CZend_Service_Twitter_Searchs#) IZend_Service_Twitter_Exceptions( ;Zend_Service_Technoratis#' IZend_Service_Technorati_Weblogs"& GZend_Service_Technorati_Utilss*% WZend_Service_Technorati_TagsResultSets'$ QZend_Service_Technorati_TagsResults)# UZend_Service_Technorati_TagResultSets&" OZend_Service_Technorati_TagResults,! [Zend_Service_Technorati_SearchResultSets)  UZend_Service_Technorati_SearchResults& OZend_Service_Technorati_ResultSets# IZend_Service_Technorati_Results* WZend_Service_Technorati_KeyInfoResults* WZend_Service_Technorati_GetInfoResults& OZend_Service_Technorati_Exceptions1 eZend_Service_Technorati_DailyCountsResultSets. _Zend_Service_Technorati_DailyCountsResults, [Zend_Service_Technorati_CosmosResultSets) UZend_Service_Technorati_CosmosResults+ YZend_Service_Technorati_BlogInfoResults# IZend_Service_Technorati_Authors ;Zend_Service_StrikeIrons( SZend_Service_StrikeIron_ZipCodeInfos2 gZend_Service_StrikeIron_USAddressVerifications- ]Zend_Service_StrikeIron_SalesUseTaxBasics& OZend_Service_StrikeIron_Exceptions& OZend_Service_StrikeIron_Decorators! EZend_Service_StrikeIron_Bases ;Zend_Service_SlideShares& OZend_Service_SlideShare_SlideShows& OZend_Service_SlideShare_Exceptions
 1Zend_Service_Simpys$	 KZend_Service_Simpy_WatchlistSets* WZend_Service_Simpy_WatchlistFilterSets' QZend_Service_Simpy_WatchlistFilters! EZend_Service_Simpy_Watchlists ?Zend_Service_Simpy_TagSets 9Zend_Service_Simpy_Tags AZend_Service_Simpy_NoteSets ;Zend_Service_Simpy_Notes AZend_Service_Simpy_LinkSets!  EZend_Service_Simpy_LinkQuerys ;Zend_Service_Simpy_Links~ 9Zend_Service_ReCaptchas$} KZend_Service_ReCaptcha_Responses$| KZend_Service_ReCaptcha_MailHides   U  i;Y,oAlI0eM-




n
@
			z	Fj.~RRf<Q,i5Z.b(                                                           85 sZend_Tool_Project_Context_System_ProjectProfileFiles64 oZend_Tool_Project_Context_System_ProjectDirectorys)3 UZend_Tool_Project_Context_Repositorys.2 _Zend_Tool_Project_Context_Filesystem_Files31 iZend_Tool_Project_Context_Filesystem_Directorys20 gZend_Tool_Project_Context_Filesystem_Abstracts(/ SZend_Tool_Project_Context_Exceptions-. ]Zend_Tool_Project_Context_Content_Engines3- iZend_Tool_Project_Context_Content_Engine_Phtmls;, yZend_Tool_Project_Context_Content_Engine_CodeGenerators0+ cZend_Tool_Framework_System_Provider_Versions0* cZend_Tool_Framework_System_Provider_Phpinfos1) eZend_Tool_Framework_System_Provider_Manifests(( SZend_Tool_Framework_System_Manifests-' ]Zend_Tool_Framework_System_Action_Deletes-& ]Zend_Tool_Framework_System_Action_Creates!% EZend_Tool_Framework_Registrys+$ YZend_Tool_Framework_Registry_Exceptions+# YZend_Tool_Framework_Provider_Signatures," [Zend_Tool_Framework_Provider_Repositorys+! YZend_Tool_Framework_Provider_Exceptions*  WZend_Tool_Framework_Provider_Abstracts& OZend_Tool_Framework_Metadata_Tools) UZend_Tool_Framework_Metadata_Dynamics' QZend_Tool_Framework_Metadata_Basics, [Zend_Tool_Framework_Manifest_Repositorys+ YZend_Tool_Framework_Manifest_Exceptions1 eZend_Tool_Framework_Loader_IncludePathLoadersJ Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterators( SZend_Tool_Framework_Loader_Abstracts" GZend_Tool_Framework_Exceptions' QZend_Tool_Framework_Client_Storages1 eZend_Tool_Framework_Client_Storage_Directorys( SZend_Tool_Framework_Client_ResponsesD 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separators' QZend_Tool_Framework_Client_Requests9 uZend_Tool_Framework_Client_Interactive_InputResponses8 sZend_Tool_Framework_Client_Interactive_InputRequests8 sZend_Tool_Framework_Client_Interactive_InputHandlers) UZend_Tool_Framework_Client_Exceptions' QZend_Tool_Framework_Client_ConsolesD 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizers0 cZend_Tool_Framework_Client_Console_Manifests2
 gZend_Tool_Framework_Client_Console_HelpSystems6	 oZend_Tool_Framework_Client_Console_ArgumentParsers& OZend_Tool_Framework_Client_Configs( SZend_Tool_Framework_Client_Abstracts* WZend_Tool_Framework_Action_Repositorys) UZend_Tool_Framework_Action_Exceptions$ KZend_Tool_Framework_Action_Bases 'Zend_TimeSyncs 1Zend_TimeSync_Sntps 9Zend_TimeSync_Protocols  /Zend_TimeSync_Ntps ;Zend_TimeSync_Exceptions~ +Zend_Text_Tables} 3Zend_Text_Table_Rows| ?Zend_Text_Table_Exceptions&{ OZend_Text_Table_Decorator_Unicodes$z KZend_Text_Table_Decorator_Asciisy 9Zend_Text_Table_Columnsx 3Zend_Text_MultiBytesw -Zend_Text_Figletsv AZend_Text_Figlet_Exceptionsu 3Zend_Text_Exceptions&t OZend_Test_PHPUnit_Db_SimpleTesters,s [Zend_Test_PHPUnit_Db_Operation_Truncates*r WZend_Test_PHPUnit_Db_Operation_Inserts-q ]Zend_Test_PHPUnit_Db_Operation_DeleteAlls*p WZend_Test_PHPUnit_Db_Metadata_Generics#o IZend_Test_PHPUnit_Db_Exceptions,n [Zend_Test_PHPUnit_Db_DataSet_QueryTables.m _Zend_Test_PHPUnit_Db_DataSet_QueryDataSets0l cZend_Test_PHPUnit_Db_DataSet_DbTableDataSets)k UZend_Test_PHPUnit_Db_DataSet_DbTables*j WZend_Test_PHPUnit_Db_DataSet_DbRowsets$i KZend_Test_PHPUnit_Db_Connections'h QZend_Test_PHPUnit_DatabaseTestCases)g UZend_Test_PHPUnit_ControllerTestCases0f cZend_Test_PHPUnit_Constraint_ResponseHeaders*e WZend_Test_PHPUnit_Constraint_Redirects+d YZend_Test_PHPUnit_Constraint_Exceptions*c WZend_Test_PHPUnit_Constraint_DomQuerysb 7Zend_Test_DbStatementsa 3Zend_Test_DbAdapters   J  W{Kt>yCu@


g
,			{	?	EKc-t@nBb%T'U*              $ KZend_Tool_Project_Provider_Views$~ KZend_Tool_Project_Provider_Tests/} aZend_Tool_Project_Provider_ProjectProviders'| QZend_Tool_Project_Provider_Projects'{ QZend_Tool_Project_Provider_Profiles&z OZend_Tool_Project_Provider_Modules%y MZend_Tool_Project_Provider_Models(x SZend_Tool_Project_Provider_Manifests$w KZend_Tool_Project_Provider_Forms)v UZend_Tool_Project_Provider_Exceptions*u WZend_Tool_Project_Provider_Controllers&t OZend_Tool_Project_Provider_Actions(s SZend_Tool_Project_Provider_Abstractsr ?Zend_Tool_Project_Profiles'q QZend_Tool_Project_Profile_Resources9p uZend_Tool_Project_Profile_Resource_SearchConstraintss1o eZend_Tool_Project_Profile_Resource_Containers=n }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilters5m mZend_Tool_Project_Profile_Iterator_ContextFilters-l ]Zend_Tool_Project_Profile_FileParser_Xmls(k SZend_Tool_Project_Profile_Exceptions j CZend_Tool_Project_Exceptions<i {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectorys0h cZend_Tool_Project_Context_Zf_ViewsDirectorys6g oZend_Tool_Project_Context_Zf_ViewScriptsDirectorys0f cZend_Tool_Project_Context_Zf_ViewScriptFiles6e oZend_Tool_Project_Context_Zf_ViewHelpersDirectorys6d oZend_Tool_Project_Context_Zf_ViewFiltersDirectorysAc Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectorys2b gZend_Tool_Project_Context_Zf_UploadsDirectorys0a cZend_Tool_Project_Context_Zf_TestsDirectorys7` qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFiles@_ Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectorys1^ eZend_Tool_Project_Context_Zf_TestLibraryFiles6] oZend_Tool_Project_Context_Zf_TestLibraryDirectorys:\ wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFiles:[ wZend_Tool_Project_Context_Zf_TestApplicationDirectorys@Z Zend_Tool_Project_Context_Zf_TestApplicationControllerFilesEY Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectorys>X Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFiles4W kZend_Tool_Project_Context_Zf_TemporaryDirectorys3V iZend_Tool_Project_Context_Zf_SessionsDirectorys8U sZend_Tool_Project_Context_Zf_SearchIndexesDirectorys<T {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectorys8S sZend_Tool_Project_Context_Zf_PublicScriptsDirectorys1R eZend_Tool_Project_Context_Zf_PublicIndexFiles7Q qZend_Tool_Project_Context_Zf_PublicImagesDirectorys1P eZend_Tool_Project_Context_Zf_PublicDirectorys5O mZend_Tool_Project_Context_Zf_ProjectProviderFiles2N gZend_Tool_Project_Context_Zf_ModulesDirectorys1M eZend_Tool_Project_Context_Zf_ModuleDirectorys1L eZend_Tool_Project_Context_Zf_ModelsDirectorys+K YZend_Tool_Project_Context_Zf_ModelFiles/J aZend_Tool_Project_Context_Zf_LogsDirectorys2I gZend_Tool_Project_Context_Zf_LocalesDirectorys2H gZend_Tool_Project_Context_Zf_LibraryDirectorys2G gZend_Tool_Project_Context_Zf_LayoutsDirectorys.F _Zend_Tool_Project_Context_Zf_HtaccessFiles0E cZend_Tool_Project_Context_Zf_FormsDirectorys*D WZend_Tool_Project_Context_Zf_FormFiles-C ]Zend_Tool_Project_Context_Zf_DbTableFiles2B gZend_Tool_Project_Context_Zf_DbTableDirectorys/A aZend_Tool_Project_Context_Zf_DataDirectorys6@ oZend_Tool_Project_Context_Zf_ControllersDirectorys0? cZend_Tool_Project_Context_Zf_ControllerFiles2> gZend_Tool_Project_Context_Zf_ConfigsDirectorys,= [Zend_Tool_Project_Context_Zf_ConfigFiles0< cZend_Tool_Project_Context_Zf_CacheDirectorys/; aZend_Tool_Project_Context_Zf_BootstrapFiles6: oZend_Tool_Project_Context_Zf_ApplicationDirectorys79 qZend_Tool_Project_Context_Zf_ApplicationConfigFiles/8 aZend_Tool_Project_Context_Zf_ApisDirectorys.7 _Zend_Tool_Project_Context_Zf_ActionMethods@6 Zend_Tool_Project_Context_System_ProjectProvidersDirectorys   q nL)|^G,gI+gD$iD




p
L
'
					b	H	)	~_Cr]B&^<iE"iF"rN+zX1j@                                             %p MZend_View_Helper_Navigation_Menus&o OZend_View_Helper_Navigation_Linkss/n aZend_View_Helper_Navigation_HelperAbstracts,m [Zend_View_Helper_Navigation_Breadcrumbssl ;Zend_View_Helper_Layoutsk 7Zend_View_Helper_Jsons"j GZend_View_Helper_InlineScripts#i IZend_View_Helper_HtmlQuicktimesh ?Zend_View_Helper_HtmlPages g CZend_View_Helper_HtmlObjectsf ?Zend_View_Helper_HtmlListse AZend_View_Helper_HtmlFlashs!d EZend_View_Helper_HtmlElementsc AZend_View_Helper_HeadTitlesb AZend_View_Helper_HeadStyles a CZend_View_Helper_HeadScripts` ?Zend_View_Helper_HeadMetas_ ?Zend_View_Helper_HeadLinks"^ GZend_View_Helper_FormTextareas] ?Zend_View_Helper_FormTexts \ CZend_View_Helper_FormSubmits [ CZend_View_Helper_FormSelectsZ AZend_View_Helper_FormResetsY AZend_View_Helper_FormRadios"X GZend_View_Helper_FormPasswordsW ?Zend_View_Helper_FormNotes'V QZend_View_Helper_FormMultiCheckboxsU AZend_View_Helper_FormLabelsT AZend_View_Helper_FormImages S CZend_View_Helper_FormHiddensR ?Zend_View_Helper_FormFiles Q CZend_View_Helper_FormErrorss!P EZend_View_Helper_FormElements"O GZend_View_Helper_FormCheckboxs N CZend_View_Helper_FormButtonsM 7Zend_View_Helper_FormsL ?Zend_View_Helper_FieldsetsK =Zend_View_Helper_Doctypes!J EZend_View_Helper_DeclareVarssI 9Zend_View_Helper_CyclesH =Zend_View_Helper_BaseUrlsG ;Zend_View_Helper_ActionsF ?Zend_View_Helper_AbstractsE 3Zend_View_ExceptionsD 1Zend_View_AbstractsC %Zend_VersionsB 'Zend_ValidatesA AZend_Validate_StringLengths#@ IZend_Validate_Sitemap_Prioritys? ?Zend_Validate_Sitemap_Locs"> GZend_Validate_Sitemap_Lastmods%= MZend_Validate_Sitemap_Changefreqs< 3Zend_Validate_Regexs; 9Zend_Validate_NotEmptys: 9Zend_Validate_LessThans9 -Zend_Validate_Ips8 /Zend_Validate_Ints7 7Zend_Validate_InArrays6 ;Zend_Validate_Identicals5 1Zend_Validate_Ibans4 9Zend_Validate_Hostnames3 /Zend_Validate_Hexs2 ?Zend_Validate_GreaterThans1 3Zend_Validate_Floats!0 EZend_Validate_File_WordCounts/ ?Zend_Validate_File_Uploads. ;Zend_Validate_File_Sizes- ;Zend_Validate_File_Sha1s!, EZend_Validate_File_NotExistss + CZend_Validate_File_MimeTypes* 9Zend_Validate_File_Md5s) AZend_Validate_File_IsImages$( KZend_Validate_File_IsCompresseds!' EZend_Validate_File_ImageSizes& ;Zend_Validate_File_Hashs!% EZend_Validate_File_FilesSizes!$ EZend_Validate_File_Extensions# ?Zend_Validate_File_Existss'" QZend_Validate_File_ExcludeMimeTypes(! SZend_Validate_File_ExcludeExtensions  =Zend_Validate_File_Crc32s =Zend_Validate_File_Counts ;Zend_Validate_Exceptions AZend_Validate_EmailAddresss 5Zend_Validate_Digitss" GZend_Validate_Db_RecordExistss$ KZend_Validate_Db_NoRecordExistss ?Zend_Validate_Db_Abstracts 1Zend_Validate_Dates 3Zend_Validate_Ccnums 7Zend_Validate_Betweens 7Zend_Validate_Barcodes AZend_Validate_Barcode_UpcAs  CZend_Validate_Barcode_Ean13s 3Zend_Validate_Alphas 3Zend_Validate_Alnums 9Zend_Validate_Abstracts Zend_Uris 'Zend_Uri_Https 1Zend_Uri_Exceptions )Zend_Translates 7Zend_Translate_Plurals
 =Zend_Translate_Exceptions	 9Zend_Translate_Adapters! EZend_Translate_Adapter_XmlTms! EZend_Translate_Adapter_Xliffs AZend_Translate_Adapter_Tmxs AZend_Translate_Adapter_Tbxs ?Zend_Translate_Adapter_Qts AZend_Translate_Adapter_Inis# IZend_Translate_Adapter_Gettexts AZend_Translate_Adapter_Csvs!  EZend_Translate_Adapter_Arrays   i  Z9i:_<}K&U&





i
M
+
					j	J	)	zX:_@*|a8zV)t[<" \+h:	X5
       &Y OZend_Application_Module_Bootstrapt'X QZend_Application_Module_AutoloadertW AZend_Application_Exceptiont)V UZend_Application_Bootstrap_Exceptiont1U eZend_Application_Bootstrap_BootstrapAbstractt)T UZend_Application_Bootstrap_BootstraptS ?Zend_Amf_Value_TraitsInfot-R ]Zend_Amf_Value_Messaging_RemotingMessaget*Q WZend_Amf_Value_Messaging_ErrorMessaget,P [Zend_Amf_Value_Messaging_CommandMessaget*O WZend_Amf_Value_Messaging_AsyncMessaget-N ]Zend_Amf_Value_Messaging_ArrayCollectiont0M cZend_Amf_Value_Messaging_AcknowledgeMessaget-L ]Zend_Amf_Value_Messaging_AbstractMessaget!K EZend_Amf_Value_MessageHeadertJ AZend_Amf_Value_MessageBodytI =Zend_Amf_Value_ByteArraytH AZend_Amf_Util_BinaryStreamtG +Zend_Amf_ServertF ?Zend_Amf_Server_ExceptiontE /Zend_Amf_ResponsetD 9Zend_Amf_Response_HttptC -Zend_Amf_RequesttB 7Zend_Amf_Request_HttptA ?Zend_Amf_Parse_TypeLoadert@ ?Zend_Amf_Parse_Serializert#? IZend_Amf_Parse_Resource_Streamt(> SZend_Amf_Parse_Resource_MysqlResultt)= UZend_Amf_Parse_Resource_MysqliResultt < CZend_Amf_Parse_OutputStreamt; AZend_Amf_Parse_InputStreamt : CZend_Amf_Parse_Deserializert#9 IZend_Amf_Parse_Amf3_Serializert%8 MZend_Amf_Parse_Amf3_Deserializert#7 IZend_Amf_Parse_Amf0_Serializert%6 MZend_Amf_Parse_Amf0_Deserializert5 1Zend_Amf_Exceptiont4 1Zend_Amf_Constantst3 9Zend_Amf_Auth_Abstractt 2 CZend_Amf_Adobe_Introspectort1 AZend_Amf_Adobe_DbInspectort0 3Zend_Amf_Adobe_Autht/ Zend_Aclt. 'Zend_Acl_Rolet- 9Zend_Acl_Role_Registryt%, MZend_Acl_Role_Registry_Exceptiont+ /Zend_Acl_Resourcet* 1Zend_Acl_Exceptiont) /Zend_XmlRpc_Values( =Zend_XmlRpc_Value_Structs' =Zend_XmlRpc_Value_Strings& =Zend_XmlRpc_Value_Scalars% 7Zend_XmlRpc_Value_Nils$ ?Zend_XmlRpc_Value_Integers # CZend_XmlRpc_Value_Exceptions" =Zend_XmlRpc_Value_Doubles! AZend_XmlRpc_Value_DateTimes!  EZend_XmlRpc_Value_Collections ?Zend_XmlRpc_Value_Booleans =Zend_XmlRpc_Value_Base64s ;Zend_XmlRpc_Value_Arrays 1Zend_XmlRpc_Servers ?Zend_XmlRpc_Server_Systems =Zend_XmlRpc_Server_Faults! EZend_XmlRpc_Server_Exceptions =Zend_XmlRpc_Server_Caches 5Zend_XmlRpc_Responses ?Zend_XmlRpc_Response_Https 3Zend_XmlRpc_Requests ?Zend_XmlRpc_Request_Stdins =Zend_XmlRpc_Request_Https /Zend_XmlRpc_Faults 7Zend_XmlRpc_Exceptions 1Zend_XmlRpc_Clients# IZend_XmlRpc_Client_ServerProxys+ YZend_XmlRpc_Client_ServerIntrospections+ YZend_XmlRpc_Client_IntrospectExceptions% MZend_XmlRpc_Client_HttpExceptions& OZend_XmlRpc_Client_FaultExceptions!
 EZend_XmlRpc_Client_Exceptions&	 OZend_Wildfire_Protocol_JsonStreams! EZend_Wildfire_Plugin_FirePhps. _Zend_Wildfire_Plugin_FirePhp_TableMessages) UZend_Wildfire_Plugin_FirePhp_Messages ;Zend_Wildfire_Exceptions& OZend_Wildfire_Channel_HttpHeaderss Zend_Views -Zend_View_Streams 5Zend_View_Helper_Urls  AZend_View_Helper_Translates AZend_View_Helper_ServerUrls)~ UZend_View_Helper_RenderToPlaceholders!} EZend_View_Helper_Placeholders*| WZend_View_Helper_Placeholder_Registrys4{ kZend_View_Helper_Placeholder_Registry_Exceptions+z YZend_View_Helper_Placeholder_Containers6y oZend_View_Helper_Placeholder_Container_Standalones5x mZend_View_Helper_Placeholder_Container_Exceptions4w kZend_View_Helper_Placeholder_Container_Abstracts!v EZend_View_Helper_PartialLoopsu =Zend_View_Helper_Partials't QZend_View_Helper_Partial_Exceptions's QZend_View_Helper_PaginationControls r CZend_View_Helper_Navigations(q SZend_View_Helper_Navigation_Sitemaps   Y  \/t?uR2^5Y5




f
M
"			{	4f-W)k9oM#wX)tQ%i;|W:          l AZend_Gdata_App_MediaSourcet.k _Zend_Form_Decorator_Marker_File_Interfacet"j GZend_Form_Decorator_Interfaceti 7Zend_Filter_Interfacet"h GZend_Filter_Encrypt_Interfacet#g IZend_Feed_Reader_FeedInterfacet$f KZend_Feed_Reader_EntryInterfacet e CZend_Feed_Builder_Interfacet d CZend_Db_Statement_Interfacet)c UZend_Crypt_Math_BigInteger_Interfacet+b YZend_Controller_Router_Route_Interfacet%a MZend_Controller_Router_Interfacet)` UZend_Controller_Dispatcher_Interfacet%_ MZend_Controller_Action_Interfacet^ 5Zend_Captcha_Adaptert!] EZend_Cache_Backend_Interfacet)\ UZend_Cache_Backend_ExtendedInterfacet [ CZend_Auth_Storage_Interfacet Z CZend_Auth_Adapter_Interfacet.Y _Zend_Auth_Adapter_Http_Resolver_Interfacet'X QZend_Application_Resource_Resourcet4W kZend_Application_Bootstrap_ResourceBootstrappert,V [Zend_Application_Bootstrap_BootstrappertU ;Zend_Acl_Role_Interfacet T CZend_Acl_Resource_InterfacetS ?Zend_Acl_Assert_Interfacet#R IZend_Wildfire_Plugin_Interfaces$Q KZend_Wildfire_Channel_InterfacesP 3Zend_View_Interfaces'O QZend_View_Helper_Navigation_HelpersN AZend_View_Helper_InterfacesM ;Zend_Validate_Interfaces3L iZend_Tool_Project_Profile_FileParser_Interfaces:K wZend_Tool_Project_Context_System_TopLevelRestrictables5J mZend_Tool_Project_Context_System_NotOverwritables/I aZend_Tool_Project_Context_System_Interfaces(H SZend_Tool_Project_Context_Interfaces+G YZend_Tool_Framework_Registry_Interfaces2F gZend_Tool_Framework_Registry_EnabledInterfaces-E ]Zend_Tool_Framework_Provider_Pretendables+D YZend_Tool_Framework_Provider_Interfaces.C _Zend_Tool_Framework_Provider_Interactables;B yZend_Tool_Framework_Provider_DocblockManifestInterfaces+A YZend_Tool_Framework_Metadata_Interfaces6@ oZend_Tool_Framework_Manifest_ProviderManifestables6? oZend_Tool_Framework_Manifest_MetadataManifestables+> YZend_Tool_Framework_Manifest_Interfaces+= YZend_Tool_Framework_Manifest_Indexables4< kZend_Tool_Framework_Manifest_ActionManifestables8; sZend_Tool_Framework_Client_Storage_AdapterInterfacesD: 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interfaces;9 yZend_Tool_Framework_Client_Interactive_OutputInterfaces:8 wZend_Tool_Framework_Client_Interactive_InputInterfaces)7 UZend_Tool_Framework_Action_Interfaces(6 SZend_Text_Table_Decorator_Interfaces5 /Zend_Tag_Taggables&4 OZend_Soap_Wsdl_Strategy_Interfaces%3 MZend_Session_Validator_Interfaces'2 QZend_Session_SaveHandler_Interfaces1 7Zend_Server_Interfaces40 kZend_Search_Lucene_Search_Highlighter_Interfaces!/ EZend_Search_Lucene_Interfaces3. iZend_Search_Lucene_Index_TermsStream_Interfaces$- KZend_Queue_Stomp_FrameInterfaces0, cZend_Queue_Stomp_Client_ConnectionInterfaces(+ SZend_Queue_Adapter_AdapterInterfaces* ?Zend_Pdf_Filter_Interfaces&) OZend_Pdf_ElementFactory_Interfaces,( [Zend_Paginator_ScrollingStyle_Interfaces%' MZend_Paginator_Adapter_Interfaces$& KZend_Memory_Container_Interfaces)% UZend_Mail_Storage_Writable_Interfaces'$ QZend_Mail_Storage_Folder_Interfaces# =Zend_Mail_Part_Interfaces " CZend_Mail_Message_Interfaces!! EZend_Log_Formatter_Interfaces  ?Zend_Log_Filter_Interfaces' QZend_Loader_PluginLoader_Interfaces% MZend_Loader_Autoloader_Interfaces0 cZend_Ldap_Node_Schema_ObjectClass_Interfaces2 gZend_Ldap_Node_Schema_AttributeType_Interfaces, [Zend_Ldap_Collection_Iterator_Interfaces3 iZend_InfoCard_Xml_Security_Transform_Interfaces( SZend_InfoCard_Xml_KeyInfo_Interfaces( SZend_InfoCard_Xml_Element_Interfaces* WZend_InfoCard_Xml_Assertion_Interfaces- ]Zend_InfoCard_Cipher_Symmetric_Interfaces7 qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interfaces7 qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interfaces   e  }T+xN"{I~eA_?



y
S
8
 
				x	W	D	*	]8a.^.dL+d;l5a0mN"                                    )> UZend_Controller_Dispatcher_Exceptiont(= SZend_Controller_Dispatcher_Abstractt< 9Zend_Controller_Actiont(; SZend_Controller_Action_HelperBrokert6: oZend_Controller_Action_HelperBroker_PriorityStackt/9 aZend_Controller_Action_Helper_ViewRenderert&8 OZend_Controller_Action_Helper_Urlt-7 ]Zend_Controller_Action_Helper_Redirectort'6 QZend_Controller_Action_Helper_Jsont15 eZend_Controller_Action_Helper_FlashMessengert04 cZend_Controller_Action_Helper_ContextSwitcht<3 {Zend_Controller_Action_Helper_AutoCompleteScriptaculoust32 iZend_Controller_Action_Helper_AutoCompleteDojot81 sZend_Controller_Action_Helper_AutoComplete_Abstractt.0 _Zend_Controller_Action_Helper_AjaxContextt./ _Zend_Controller_Action_Helper_ActionStackt+. YZend_Controller_Action_Helper_Abstractt%- MZend_Controller_Action_Exceptiont, 3Zend_Console_Getoptt"+ GZend_Console_Getopt_Exceptiont* #Zend_Configt) +Zend_Config_Xmlt( 1Zend_Config_Writert' 9Zend_Config_Writer_Xmlt& 9Zend_Config_Writer_Init% =Zend_Config_Writer_Arrayt$ +Zend_Config_Init# 7Zend_Config_Exceptiont$" KZend_CodeGenerator_Php_Propertyt1! eZend_CodeGenerator_Php_Property_DefaultValuet%  MZend_CodeGenerator_Php_Parametert" GZend_CodeGenerator_Php_Methodt, [Zend_CodeGenerator_Php_Member_Containert+ YZend_CodeGenerator_Php_Member_Abstractt  CZend_CodeGenerator_Php_Filet% MZend_CodeGenerator_Php_Exceptiont$ KZend_CodeGenerator_Php_Docblockt( SZend_CodeGenerator_Php_Docblock_Tagt/ aZend_CodeGenerator_Php_Docblock_Tag_Returnt. _Zend_CodeGenerator_Php_Docblock_Tag_Paramt0 cZend_CodeGenerator_Php_Docblock_Tag_Licenset! EZend_CodeGenerator_Php_Classt  CZend_CodeGenerator_Php_Bodyt$ KZend_CodeGenerator_Php_Abstractt! EZend_CodeGenerator_Exceptiont  CZend_CodeGenerator_Abstractt /Zend_Captcha_Wordt 9Zend_Captcha_ReCaptchat 1Zend_Captcha_Imaget 3Zend_Captcha_Figlett 9Zend_Captcha_Exceptiont /Zend_Captcha_Dumbt
 /Zend_Captcha_Baset	 !Zend_Cachet =Zend_Cache_Frontend_Paget AZend_Cache_Frontend_Outputt! EZend_Cache_Frontend_Functiont =Zend_Cache_Frontend_Filet ?Zend_Cache_Frontend_Classt 5Zend_Cache_Exceptiont +Zend_Cache_Coret 1Zend_Cache_Backendt"  GZend_Cache_Backend_ZendServert( SZend_Cache_Backend_ZendServer_ShMemt'~ QZend_Cache_Backend_ZendServer_Diskt$} KZend_Cache_Backend_ZendPlatformt| ?Zend_Cache_Backend_Xcachet!{ EZend_Cache_Backend_TwoLevelstz ;Zend_Cache_Backend_Testty ?Zend_Cache_Backend_Sqlitet!x EZend_Cache_Backend_Memcachedtw ;Zend_Cache_Backend_Filetv 9Zend_Cache_Backend_Apctu Zend_Authtt ?Zend_Auth_Storage_Sessiont$s KZend_Auth_Storage_NonPersistentt r CZend_Auth_Storage_Exceptiontq -Zend_Auth_Resulttp 3Zend_Auth_Exceptionto =Zend_Auth_Adapter_OpenIdtn 9Zend_Auth_Adapter_Ldaptm AZend_Auth_Adapter_InfoCardtl 9Zend_Auth_Adapter_Httpt)k UZend_Auth_Adapter_Http_Resolver_Filet.j _Zend_Auth_Adapter_Http_Resolver_Exceptiont i CZend_Auth_Adapter_Exceptionth =Zend_Auth_Adapter_Digesttg ?Zend_Auth_Adapter_DbTabletf -Zend_Applicationt#e IZend_Application_Resource_Viewt(d SZend_Application_Resource_Translatet&c OZend_Application_Resource_Sessiont%b MZend_Application_Resource_Routert/a aZend_Application_Resource_ResourceAbstractt)` UZend_Application_Resource_Navigationt&_ OZend_Application_Resource_Modulest%^ MZend_Application_Resource_Localet%] MZend_Application_Resource_Layoutt.\ _Zend_Application_Resource_Frontcontrollert([ SZend_Application_Resource_Exceptiont!Z EZend_Application_Resource_Dbt   o  lArH#U/[0Z/




`
9
					|	e	R	2		qU3
~Z6mD%zYBa@xY8jM&	L       -- ]Zend_Dojo_Form_Decorator_BorderContainert+, YZend_Dojo_Form_Decorator_AccordionPanet0+ cZend_Dojo_Form_Decorator_AccordionContainert* 3Zend_Dojo_Exceptiont) )Zend_Dojo_Datat( 5Zend_Dojo_BuildLayert' !Zend_Debugt& Zend_Dbt% 'Zend_Db_Tablet$ 5Zend_Db_Table_Selectt## IZend_Db_Table_Select_Exceptiont" 5Zend_Db_Table_Rowsett#! IZend_Db_Table_Rowset_Exceptiont"  GZend_Db_Table_Rowset_Abstractt /Zend_Db_Table_Rowt  CZend_Db_Table_Row_Exceptiont AZend_Db_Table_Row_Abstractt ;Zend_Db_Table_Exceptiont =Zend_Db_Table_Definitiont 9Zend_Db_Table_Abstractt /Zend_Db_Statementt =Zend_Db_Statement_Sqlsrvt' QZend_Db_Statement_Sqlsrv_Exceptiont 7Zend_Db_Statement_Pdot ?Zend_Db_Statement_Pdo_Ocit ?Zend_Db_Statement_Pdo_Ibmt =Zend_Db_Statement_Oraclet' QZend_Db_Statement_Oracle_Exceptiont =Zend_Db_Statement_Mysqlit' QZend_Db_Statement_Mysqli_Exceptiont  CZend_Db_Statement_Exceptiont 7Zend_Db_Statement_Db2t$ KZend_Db_Statement_Db2_Exceptiont )Zend_Db_Selectt =Zend_Db_Select_Exceptiont
 -Zend_Db_Profilert	 9Zend_Db_Profiler_Queryt =Zend_Db_Profiler_Firebugt AZend_Db_Profiler_Exceptiont %Zend_Db_Exprt /Zend_Db_Exceptiont 9Zend_Db_Adapter_Sqlsrvt% MZend_Db_Adapter_Sqlsrv_Exceptiont AZend_Db_Adapter_Pdo_Sqlitet ?Zend_Db_Adapter_Pdo_Pgsqlt  ;Zend_Db_Adapter_Pdo_Ocit ?Zend_Db_Adapter_Pdo_Mysqlt~ ?Zend_Db_Adapter_Pdo_Mssqlt} ;Zend_Db_Adapter_Pdo_Ibmt | CZend_Db_Adapter_Pdo_Ibm_Idst { CZend_Db_Adapter_Pdo_Ibm_Db2t!z EZend_Db_Adapter_Pdo_Abstractty 9Zend_Db_Adapter_Oraclet%x MZend_Db_Adapter_Oracle_Exceptiontw 9Zend_Db_Adapter_Mysqlit%v MZend_Db_Adapter_Mysqli_Exceptiontu ?Zend_Db_Adapter_Exceptiontt 3Zend_Db_Adapter_Db2t"s GZend_Db_Adapter_Db2_Exceptiontr =Zend_Db_Adapter_Abstracttq Zend_Datetp 3Zend_Date_Exceptionto 5Zend_Date_DateObjecttn -Zend_Date_Citiestm 'Zend_Currencytl ;Zend_Currency_Exceptiontk !Zend_Crypttj )Zend_Crypt_Rsati 1Zend_Crypt_Rsa_Keyth ?Zend_Crypt_Rsa_Key_Publictg AZend_Crypt_Rsa_Key_Privatetf +Zend_Crypt_Mathte ?Zend_Crypt_Math_Exceptiontd AZend_Crypt_Math_BigIntegert#c IZend_Crypt_Math_BigInteger_Gmpt)b UZend_Crypt_Math_BigInteger_Exceptiont&a OZend_Crypt_Math_BigInteger_Bcmatht` +Zend_Crypt_Hmact_ ?Zend_Crypt_Hmac_Exceptiont^ 5Zend_Crypt_Exceptiont] =Zend_Crypt_DiffieHellmant'\ QZend_Crypt_DiffieHellman_Exceptiont![ EZend_Controller_Router_Routet(Z SZend_Controller_Router_Route_Statict'Y QZend_Controller_Router_Route_Regext(X SZend_Controller_Router_Route_Modulet*W WZend_Controller_Router_Route_Hostnamet'V QZend_Controller_Router_Route_Chaint*U WZend_Controller_Router_Route_Abstractt#T IZend_Controller_Router_Rewritet%S MZend_Controller_Router_Exceptiont$R KZend_Controller_Router_Abstractt*Q WZend_Controller_Response_HttpTestCaset"P GZend_Controller_Response_Httpt'O QZend_Controller_Response_Exceptiont!N EZend_Controller_Response_Clit&M OZend_Controller_Response_Abstractt#L IZend_Controller_Request_Simplet)K UZend_Controller_Request_HttpTestCaset!J EZend_Controller_Request_Httpt&I OZend_Controller_Request_Exceptiont&H OZend_Controller_Request_Apache404t%G MZend_Controller_Request_Abstractt&F OZend_Controller_Plugin_PutHandlert(E SZend_Controller_Plugin_ErrorHandlert"D GZend_Controller_Plugin_Brokert'C QZend_Controller_Plugin_ActionStackt$B KZend_Controller_Plugin_AbstracttA 7Zend_Controller_Frontt@ ?Zend_Controller_Exceptiont(? SZend_Controller_Dispatcher_Standardt   `  uJrJ"yS$k@qF




_
3
				h	:	hE tHqDwGeN.
lO3{NxE                             , [Zend_Feed_Reader_Extension_FeedAbstractt- ]Zend_Feed_Reader_Extension_EntryAbstractt/ aZend_Feed_Reader_Extension_DublinCore_Feedt0
 cZend_Feed_Reader_Extension_DublinCore_Entryt4	 kZend_Feed_Reader_Extension_CreativeCommons_Feedt5 mZend_Feed_Reader_Extension_CreativeCommons_Entryt- ]Zend_Feed_Reader_Extension_Content_Entryt) UZend_Feed_Reader_Extension_Atom_Feedt* WZend_Feed_Reader_Extension_Atom_Entryt# IZend_Feed_Reader_EntryAbstractt AZend_Feed_Reader_Entry_Rsst  CZend_Feed_Reader_Entry_Atomt 3Zend_Feed_Exceptiont  3Zend_Feed_Entry_Rsst 5Zend_Feed_Entry_Atomt~ =Zend_Feed_Entry_Abstractt} /Zend_Feed_Elementt| /Zend_Feed_Buildert{ =Zend_Feed_Builder_Headert$z KZend_Feed_Builder_Header_Itunest y CZend_Feed_Builder_Exceptiontx ;Zend_Feed_Builder_Entrytw )Zend_Feed_Atomtv 1Zend_Feed_Abstracttu )Zend_Exceptiontt )Zend_Dom_Queryts 7Zend_Dom_Query_Resulttr =Zend_Dom_Query_Css2Xpathtq 1Zend_Dom_Exceptiontp Zend_Dojot)o UZend_Dojo_View_Helper_VerticalSlidert,n [Zend_Dojo_View_Helper_ValidationTextBoxt&m OZend_Dojo_View_Helper_TimeTextBoxt"l GZend_Dojo_View_Helper_TextBoxt#k IZend_Dojo_View_Helper_Textareat'j QZend_Dojo_View_Helper_TabContainert'i QZend_Dojo_View_Helper_SubmitButtont)h UZend_Dojo_View_Helper_StackContainert)g UZend_Dojo_View_Helper_SplitContainert!f EZend_Dojo_View_Helper_Slidert)e UZend_Dojo_View_Helper_SimpleTextareat&d OZend_Dojo_View_Helper_RadioButtont*c WZend_Dojo_View_Helper_PasswordTextBoxt(b SZend_Dojo_View_Helper_NumberTextBoxt(a SZend_Dojo_View_Helper_NumberSpinnert+` YZend_Dojo_View_Helper_HorizontalSlidert_ AZend_Dojo_View_Helper_Formt*^ WZend_Dojo_View_Helper_FilteringSelectt!] EZend_Dojo_View_Helper_Editort\ AZend_Dojo_View_Helper_Dojot)[ UZend_Dojo_View_Helper_Dojo_Containert)Z UZend_Dojo_View_Helper_DijitContainert Y CZend_Dojo_View_Helper_Dijitt&X OZend_Dojo_View_Helper_DateTextBoxt&W OZend_Dojo_View_Helper_CustomDijitt*V WZend_Dojo_View_Helper_CurrencyTextBoxt&U OZend_Dojo_View_Helper_ContentPanet#T IZend_Dojo_View_Helper_ComboBoxt#S IZend_Dojo_View_Helper_CheckBoxt!R EZend_Dojo_View_Helper_Buttont*Q WZend_Dojo_View_Helper_BorderContainert(P SZend_Dojo_View_Helper_AccordionPanet-O ]Zend_Dojo_View_Helper_AccordionContainertN =Zend_Dojo_View_ExceptiontM )Zend_Dojo_FormtL 9Zend_Dojo_Form_SubFormt*K WZend_Dojo_Form_Element_VerticalSlidert-J ]Zend_Dojo_Form_Element_ValidationTextBoxt'I QZend_Dojo_Form_Element_TimeTextBoxt#H IZend_Dojo_Form_Element_TextBoxt$G KZend_Dojo_Form_Element_Textareat(F SZend_Dojo_Form_Element_SubmitButtont"E GZend_Dojo_Form_Element_Slidert*D WZend_Dojo_Form_Element_SimpleTextareat'C QZend_Dojo_Form_Element_RadioButtont+B YZend_Dojo_Form_Element_PasswordTextBoxt)A UZend_Dojo_Form_Element_NumberTextBoxt)@ UZend_Dojo_Form_Element_NumberSpinnert,? [Zend_Dojo_Form_Element_HorizontalSlidert+> YZend_Dojo_Form_Element_FilteringSelectt"= GZend_Dojo_Form_Element_Editort&< OZend_Dojo_Form_Element_DijitMultit!; EZend_Dojo_Form_Element_Dijitt': QZend_Dojo_Form_Element_DateTextBoxt+9 YZend_Dojo_Form_Element_CurrencyTextBoxt$8 KZend_Dojo_Form_Element_ComboBoxt$7 KZend_Dojo_Form_Element_CheckBoxt"6 GZend_Dojo_Form_Element_Buttont 5 CZend_Dojo_Form_DisplayGroupt*4 WZend_Dojo_Form_Decorator_TabContainert,3 [Zend_Dojo_Form_Decorator_StackContainert,2 [Zend_Dojo_Form_Decorator_SplitContainert'1 QZend_Dojo_Form_Decorator_DijitFormt*0 WZend_Dojo_Form_Decorator_DijitElementt,/ [Zend_Dojo_Form_Decorator_DijitContainert). UZend_Dojo_Form_Decorator_ContentPanet   m  p<jQ;){aD'uW6pV>




i
J
(

				[	2	W(qH$fE$l@lI%^8tQ1|`9	           z 5Zend_Gdata_App_Entryt,y [Zend_Gdata_App_CaptchaRequiredExceptiont#x IZend_Gdata_App_BaseMediaSourcetw 3Zend_Gdata_App_Baset*v WZend_Gdata_App_BadMethodCallExceptiont!u EZend_Gdata_App_AuthExceptiontt Zend_Formts /Zend_Form_SubFormtr 3Zend_Form_Exceptiontq /Zend_Form_Elementtp ;Zend_Form_Element_Xhtmlto AZend_Form_Element_Textareatn 9Zend_Form_Element_Texttm =Zend_Form_Element_Submittl =Zend_Form_Element_Selecttk ;Zend_Form_Element_Resettj ;Zend_Form_Element_Radioti AZend_Form_Element_Passwordt"h GZend_Form_Element_Multiselectt$g KZend_Form_Element_MultiCheckboxtf ;Zend_Form_Element_Multite ;Zend_Form_Element_Imagetd =Zend_Form_Element_Hiddentc 9Zend_Form_Element_Hashtb 9Zend_Form_Element_Filet a CZend_Form_Element_Exceptiont` AZend_Form_Element_Checkboxt_ ?Zend_Form_Element_Captchat^ =Zend_Form_Element_Buttont] 9Zend_Form_DisplayGroupt#\ IZend_Form_Decorator_ViewScriptt#[ IZend_Form_Decorator_ViewHelpert Z CZend_Form_Decorator_Tooltipt(Y SZend_Form_Decorator_PrepareElementstX ?Zend_Form_Decorator_LabeltW ?Zend_Form_Decorator_Imaget V CZend_Form_Decorator_HtmlTagt#U IZend_Form_Decorator_FormErrorst%T MZend_Form_Decorator_FormElementstS =Zend_Form_Decorator_FormtR =Zend_Form_Decorator_Filet!Q EZend_Form_Decorator_Fieldsett"P GZend_Form_Decorator_ExceptiontO AZend_Form_Decorator_Errorst$N KZend_Form_Decorator_DtDdWrappert$M KZend_Form_Decorator_Descriptiont L CZend_Form_Decorator_Captchat%K MZend_Form_Decorator_Captcha_Wordt!J EZend_Form_Decorator_Callbackt!I EZend_Form_Decorator_AbstracttH #Zend_Filtert+G YZend_Filter_Word_UnderscoreToSeparatort&F OZend_Filter_Word_UnderscoreToDasht+E YZend_Filter_Word_UnderscoreToCamelCaset*D WZend_Filter_Word_SeparatorToSeparatort%C MZend_Filter_Word_SeparatorToDasht*B WZend_Filter_Word_SeparatorToCamelCaset(A SZend_Filter_Word_Separator_Abstractt&@ OZend_Filter_Word_DashToUnderscoret%? MZend_Filter_Word_DashToSeparatort%> MZend_Filter_Word_DashToCamelCaset+= YZend_Filter_Word_CamelCaseToUnderscoret*< WZend_Filter_Word_CamelCaseToSeparatort%; MZend_Filter_Word_CamelCaseToDasht: 7Zend_Filter_StripTagst9 ?Zend_Filter_StripNewlinest8 9Zend_Filter_StringTrimt7 ?Zend_Filter_StringToUppert6 ?Zend_Filter_StringToLowert5 5Zend_Filter_RealPatht4 ;Zend_Filter_PregReplacet&3 OZend_Filter_NormalizedToLocalizedt&2 OZend_Filter_LocalizedToNormalizedt1 +Zend_Filter_Intt0 /Zend_Filter_Inputt/ 7Zend_Filter_Inflectort. =Zend_Filter_HtmlEntitiest- AZend_Filter_File_UpperCaset, ;Zend_Filter_File_Renamet+ AZend_Filter_File_LowerCaset* =Zend_Filter_File_Encryptt) =Zend_Filter_File_Decryptt( 7Zend_Filter_Exceptiont' 3Zend_Filter_Encryptt & CZend_Filter_Encrypt_Opensslt% AZend_Filter_Encrypt_Mcryptt$ +Zend_Filter_Dirt# 1Zend_Filter_Digitst" 3Zend_Filter_Decryptt! 5Zend_Filter_Callbackt  5Zend_Filter_BaseNamet /Zend_Filter_Alphat /Zend_Filter_Alnumt 1Zend_File_Transfert! EZend_File_Transfer_Exceptiont$ KZend_File_Transfer_Adapter_Httpt( SZend_File_Transfer_Adapter_Abstractt Zend_Feedt 'Zend_Feed_Rsst -Zend_Feed_Readert" GZend_Feed_Reader_FeedAbstractt ?Zend_Feed_Reader_Feed_Rsst AZend_Feed_Reader_Feed_Atomt3 iZend_Feed_Reader_Extension_WellFormedWeb_Entryt, [Zend_Feed_Reader_Extension_Thread_Entryt0 cZend_Feed_Reader_Extension_Syndication_Feedt+ YZend_Feed_Reader_Extension_Slash_Entryt, [Zend_Feed_Reader_Extension_Podcast_Feedt- ]Zend_Feed_Reader_Extension_Podcast_Entryt   _  d7oD`5lEkF



t
X
0
				{	J	g6Y3V'[5dLY(iK2h@                                     "Y GZend_Gdata_Exif_Extension_Isot,X [Zend_Gdata_Exif_Extension_ImageUniqueIdt$W KZend_Gdata_Exif_Extension_FStopt*V WZend_Gdata_Exif_Extension_FocalLengtht$U KZend_Gdata_Exif_Extension_Flasht'T QZend_Gdata_Exif_Extension_Exposuret'S QZend_Gdata_Exif_Extension_DistancetR 7Zend_Gdata_Exif_EntrytQ -Zend_Gdata_EntrytP 7Zend_Gdata_DublinCoret*O WZend_Gdata_DublinCore_Extension_Titlet,N [Zend_Gdata_DublinCore_Extension_Subjectt+M YZend_Gdata_DublinCore_Extension_Rightst.L _Zend_Gdata_DublinCore_Extension_Publishert-K ]Zend_Gdata_DublinCore_Extension_Languaget/J aZend_Gdata_DublinCore_Extension_Identifiert+I YZend_Gdata_DublinCore_Extension_Formatt0H cZend_Gdata_DublinCore_Extension_Descriptiont)G UZend_Gdata_DublinCore_Extension_Datet,F [Zend_Gdata_DublinCore_Extension_CreatortE +Zend_Gdata_DocstD 7Zend_Gdata_Docs_Queryt%C MZend_Gdata_Docs_DocumentListFeedt&B OZend_Gdata_Docs_DocumentListEntrytA 9Zend_Gdata_ClientLogint@ 3Zend_Gdata_Calendart!? EZend_Gdata_Calendar_ListFeedt"> GZend_Gdata_Calendar_ListEntryt-= ]Zend_Gdata_Calendar_Extension_WebContentt+< YZend_Gdata_Calendar_Extension_Timezonet9; uZend_Gdata_Calendar_Extension_SendEventNotificationst+: YZend_Gdata_Calendar_Extension_Selectedt+9 YZend_Gdata_Calendar_Extension_QuickAddt'8 QZend_Gdata_Calendar_Extension_Linkt)7 UZend_Gdata_Calendar_Extension_Hiddent(6 SZend_Gdata_Calendar_Extension_Colort.5 _Zend_Gdata_Calendar_Extension_AccessLevelt#4 IZend_Gdata_Calendar_EventQueryt"3 GZend_Gdata_Calendar_EventFeedt#2 IZend_Gdata_Calendar_EventEntryt1 -Zend_Gdata_Bookst!0 EZend_Gdata_Books_VolumeQueryt / CZend_Gdata_Books_VolumeFeedt!. EZend_Gdata_Books_VolumeEntryt+- YZend_Gdata_Books_Extension_Viewabilityt-, ]Zend_Gdata_Books_Extension_ThumbnailLinkt&+ OZend_Gdata_Books_Extension_Reviewt+* YZend_Gdata_Books_Extension_PreviewLinkt() SZend_Gdata_Books_Extension_InfoLinkt-( ]Zend_Gdata_Books_Extension_Embeddabilityt)' UZend_Gdata_Books_Extension_BooksLinkt-& ]Zend_Gdata_Books_Extension_BooksCategoryt.% _Zend_Gdata_Books_Extension_AnnotationLinkt$$ KZend_Gdata_Books_CollectionFeedt%# MZend_Gdata_Books_CollectionEntryt" 1Zend_Gdata_AuthSubt! )Zend_Gdata_Appt$  KZend_Gdata_App_VersionExceptiont 3Zend_Gdata_App_Utilt# IZend_Gdata_App_MediaFileSourcet ?Zend_Gdata_App_MediaEntryt2 gZend_Gdata_App_LoggingHttpClientAdapterSockett AZend_Gdata_App_IOExceptiont, [Zend_Gdata_App_InvalidArgumentExceptiont! EZend_Gdata_App_HttpExceptiont$ KZend_Gdata_App_FeedSourceParentt# IZend_Gdata_App_FeedEntryParentt 3Zend_Gdata_App_Feedt =Zend_Gdata_App_Extensiont! EZend_Gdata_App_Extension_Urit% MZend_Gdata_App_Extension_Updatedt# IZend_Gdata_App_Extension_Titlet" GZend_Gdata_App_Extension_Textt% MZend_Gdata_App_Extension_Summaryt& OZend_Gdata_App_Extension_Subtitlet$ KZend_Gdata_App_Extension_Sourcet$ KZend_Gdata_App_Extension_Rightst' QZend_Gdata_App_Extension_Publishedt$ KZend_Gdata_App_Extension_Persont"
 GZend_Gdata_App_Extension_Namet"	 GZend_Gdata_App_Extension_Logot" GZend_Gdata_App_Extension_Linkt  CZend_Gdata_App_Extension_Idt" GZend_Gdata_App_Extension_Icont' QZend_Gdata_App_Extension_Generatort# IZend_Gdata_App_Extension_Emailt% MZend_Gdata_App_Extension_Elementt$ KZend_Gdata_App_Extension_Editedt# IZend_Gdata_App_Extension_Draftt%  MZend_Gdata_App_Extension_Controlt) UZend_Gdata_App_Extension_Contributort%~ MZend_Gdata_App_Extension_Contentt&} OZend_Gdata_App_Extension_Categoryt$| KZend_Gdata_App_Extension_Authort{ =Zend_Gdata_App_Exceptiont   c  cF.b4tI%|T2jB



d
;
				q	J	+	a0e@eI2
hH.sB}O"_2 xV:                                     < CZend_Gdata_Photos_AlbumFeedt!; EZend_Gdata_Photos_AlbumEntryt: 3Zend_Gdata_MimeFilet9 ?Zend_Gdata_MimeBodyStringt8 AZend_Gdata_MediaMimeStreamt7 -Zend_Gdata_Mediat6 7Zend_Gdata_Media_Feedt*5 WZend_Gdata_Media_Extension_MediaTitlet.4 _Zend_Gdata_Media_Extension_MediaThumbnailt)3 UZend_Gdata_Media_Extension_MediaTextt02 cZend_Gdata_Media_Extension_MediaRestrictiont+1 YZend_Gdata_Media_Extension_MediaRatingt+0 YZend_Gdata_Media_Extension_MediaPlayert-/ ]Zend_Gdata_Media_Extension_MediaKeywordst). UZend_Gdata_Media_Extension_MediaHasht*- WZend_Gdata_Media_Extension_MediaGroupt0, cZend_Gdata_Media_Extension_MediaDescriptiont++ YZend_Gdata_Media_Extension_MediaCreditt.* _Zend_Gdata_Media_Extension_MediaCopyrightt,) [Zend_Gdata_Media_Extension_MediaContentt-( ]Zend_Gdata_Media_Extension_MediaCategoryt' 9Zend_Gdata_Media_Entryt& AZend_Gdata_Kind_EventEntryt% 7Zend_Gdata_HttpClientt*$ WZend_Gdata_HttpAdapterStreamingSockett)# UZend_Gdata_HttpAdapterStreamingProxyt" /Zend_Gdata_Healtht! ;Zend_Gdata_Health_Queryt&  OZend_Gdata_Health_ProfileListFeedt' QZend_Gdata_Health_ProfileListEntryt" GZend_Gdata_Health_ProfileFeedt# IZend_Gdata_Health_ProfileEntryt$ KZend_Gdata_Health_Extension_Ccrt )Zend_Gdata_Geot 3Zend_Gdata_Geo_Feedt$ KZend_Gdata_Geo_Extension_GmlPost& OZend_Gdata_Geo_Extension_GmlPointt) UZend_Gdata_Geo_Extension_GeoRssWheret 5Zend_Gdata_Geo_Entryt -Zend_Gdata_Gbaset" GZend_Gdata_Gbase_SnippetQueryt! EZend_Gdata_Gbase_SnippetFeedt" GZend_Gdata_Gbase_SnippetEntryt 9Zend_Gdata_Gbase_Queryt AZend_Gdata_Gbase_ItemQueryt ?Zend_Gdata_Gbase_ItemFeedt AZend_Gdata_Gbase_ItemEntryt 7Zend_Gdata_Gbase_Feedt- ]Zend_Gdata_Gbase_Extension_BaseAttributet 9Zend_Gdata_Gbase_Entryt
 -Zend_Gdata_Gappst	 AZend_Gdata_Gapps_UserQueryt ?Zend_Gdata_Gapps_UserFeedt AZend_Gdata_Gapps_UserEntryt& OZend_Gdata_Gapps_ServiceExceptiont 9Zend_Gdata_Gapps_Queryt# IZend_Gdata_Gapps_NicknameQueryt" GZend_Gdata_Gapps_NicknameFeedt# IZend_Gdata_Gapps_NicknameEntryt% MZend_Gdata_Gapps_Extension_Quotat(  SZend_Gdata_Gapps_Extension_Nicknamet$ KZend_Gdata_Gapps_Extension_Namet%~ MZend_Gdata_Gapps_Extension_Logint)} UZend_Gdata_Gapps_Extension_EmailListt| 9Zend_Gdata_Gapps_Errort-{ ]Zend_Gdata_Gapps_EmailListRecipientQueryt,z [Zend_Gdata_Gapps_EmailListRecipientFeedt-y ]Zend_Gdata_Gapps_EmailListRecipientEntryt$x KZend_Gdata_Gapps_EmailListQueryt#w IZend_Gdata_Gapps_EmailListFeedt$v KZend_Gdata_Gapps_EmailListEntrytu +Zend_Gdata_Feedtt 5Zend_Gdata_Extensionts =Zend_Gdata_Extension_Whotr AZend_Gdata_Extension_Wheretq ?Zend_Gdata_Extension_Whent$p KZend_Gdata_Extension_Visibilityt&o OZend_Gdata_Extension_Transparencyt"n GZend_Gdata_Extension_Remindert-m ]Zend_Gdata_Extension_RecurrenceExceptiont$l KZend_Gdata_Extension_Recurrencet k CZend_Gdata_Extension_Ratingt'j QZend_Gdata_Extension_OriginalEventt0i cZend_Gdata_Extension_OpenSearchTotalResultst.h _Zend_Gdata_Extension_OpenSearchStartIndext0g cZend_Gdata_Extension_OpenSearchItemsPerPaget"f GZend_Gdata_Extension_FeedLinkt*e WZend_Gdata_Extension_ExtendedPropertyt%d MZend_Gdata_Extension_EventStatust#c IZend_Gdata_Extension_EntryLinkt"b GZend_Gdata_Extension_Commentst&a OZend_Gdata_Extension_AttendeeTypet(` SZend_Gdata_Extension_AttendeeStatust_ +Zend_Gdata_Exift^ 5Zend_Gdata_Exif_Feedt#] IZend_Gdata_Exif_Extension_Timet#\ IZend_Gdata_Exif_Extension_Tagst$[ KZend_Gdata_Exif_Extension_Modelt#Z IZend_Gdata_Exif_Extension_Maket   Y  ]/pEe7 vGl@



}
Z
6
					i	?	~K!m>wP(S&i=\*lAS&                   & OZend_Gdata_YouTube_Extension_Racyt- ]Zend_Gdata_YouTube_Extension_QueryStringt) UZend_Gdata_YouTube_Extension_Privatet* WZend_Gdata_YouTube_Extension_Positiont/ aZend_Gdata_YouTube_Extension_PlaylistTitlet, [Zend_Gdata_YouTube_Extension_PlaylistIdt, [Zend_Gdata_YouTube_Extension_Occupationt) UZend_Gdata_YouTube_Extension_NoEmbedt' QZend_Gdata_YouTube_Extension_Musict( SZend_Gdata_YouTube_Extension_Moviest- ]Zend_Gdata_YouTube_Extension_MediaRatingt,
 [Zend_Gdata_YouTube_Extension_MediaGroupt-	 ]Zend_Gdata_YouTube_Extension_MediaCreditt. _Zend_Gdata_YouTube_Extension_MediaContentt* WZend_Gdata_YouTube_Extension_Locationt& OZend_Gdata_YouTube_Extension_Linkt* WZend_Gdata_YouTube_Extension_LastNamet* WZend_Gdata_YouTube_Extension_Hometownt) UZend_Gdata_YouTube_Extension_Hobbiest( SZend_Gdata_YouTube_Extension_Gendert+ YZend_Gdata_YouTube_Extension_FirstNamet*  WZend_Gdata_YouTube_Extension_Durationt- ]Zend_Gdata_YouTube_Extension_Descriptiont+~ YZend_Gdata_YouTube_Extension_CountHintt)} UZend_Gdata_YouTube_Extension_Controlt)| UZend_Gdata_YouTube_Extension_Companyt'{ QZend_Gdata_YouTube_Extension_Bookst%z MZend_Gdata_YouTube_Extension_Aget)y UZend_Gdata_YouTube_Extension_AboutMet#x IZend_Gdata_YouTube_ContactFeedt$w KZend_Gdata_YouTube_ContactEntryt#v IZend_Gdata_YouTube_CommentFeedt$u KZend_Gdata_YouTube_CommentEntryt$t KZend_Gdata_YouTube_ActivityFeedt%s MZend_Gdata_YouTube_ActivityEntrytr ;Zend_Gdata_Spreadsheetst*q WZend_Gdata_Spreadsheets_WorksheetFeedt+p YZend_Gdata_Spreadsheets_WorksheetEntryt,o [Zend_Gdata_Spreadsheets_SpreadsheetFeedt-n ]Zend_Gdata_Spreadsheets_SpreadsheetEntryt&m OZend_Gdata_Spreadsheets_ListQueryt%l MZend_Gdata_Spreadsheets_ListFeedt&k OZend_Gdata_Spreadsheets_ListEntryt/j aZend_Gdata_Spreadsheets_Extension_RowCountt-i ]Zend_Gdata_Spreadsheets_Extension_Customt/h aZend_Gdata_Spreadsheets_Extension_ColCountt+g YZend_Gdata_Spreadsheets_Extension_Cellt*f WZend_Gdata_Spreadsheets_DocumentQueryt&e OZend_Gdata_Spreadsheets_CellQueryt%d MZend_Gdata_Spreadsheets_CellFeedt&c OZend_Gdata_Spreadsheets_CellEntrytb -Zend_Gdata_Queryta /Zend_Gdata_Photost ` CZend_Gdata_Photos_UserQueryt_ AZend_Gdata_Photos_UserFeedt ^ CZend_Gdata_Photos_UserEntryt] AZend_Gdata_Photos_TagEntryt!\ EZend_Gdata_Photos_PhotoQueryt [ CZend_Gdata_Photos_PhotoFeedt!Z EZend_Gdata_Photos_PhotoEntryt&Y OZend_Gdata_Photos_Extension_Widtht'X QZend_Gdata_Photos_Extension_Weightt(W SZend_Gdata_Photos_Extension_Versiont%V MZend_Gdata_Photos_Extension_Usert*U WZend_Gdata_Photos_Extension_Timestampt*T WZend_Gdata_Photos_Extension_Thumbnailt%S MZend_Gdata_Photos_Extension_Sizet)R UZend_Gdata_Photos_Extension_Rotationt+Q YZend_Gdata_Photos_Extension_QuotaLimitt-P ]Zend_Gdata_Photos_Extension_QuotaCurrentt)O UZend_Gdata_Photos_Extension_Positiont(N SZend_Gdata_Photos_Extension_PhotoIdt3M iZend_Gdata_Photos_Extension_NumPhotosRemainingt*L WZend_Gdata_Photos_Extension_NumPhotost)K UZend_Gdata_Photos_Extension_Nicknamet%J MZend_Gdata_Photos_Extension_Namet2I gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumt)H UZend_Gdata_Photos_Extension_Locationt#G IZend_Gdata_Photos_Extension_Idt'F QZend_Gdata_Photos_Extension_Heightt2E gZend_Gdata_Photos_Extension_CommentingEnabledt-D ]Zend_Gdata_Photos_Extension_CommentCountt'C QZend_Gdata_Photos_Extension_Clientt)B UZend_Gdata_Photos_Extension_Checksumt*A WZend_Gdata_Photos_Extension_BytesUsedt(@ SZend_Gdata_Photos_Extension_AlbumIdt'? QZend_Gdata_Photos_Extension_Accesst#> IZend_Gdata_Photos_CommentEntryt!= EZend_Gdata_Photos_AlbumQueryt   g  oCc5j>^8nG





l
Q
+
			}	E	pP'Y2m@ dAtU2}`G5X;
kM0       | -Zend_Ldap_Filtert{ ;Zend_Ldap_Filter_Stringtz 3Zend_Ldap_Filter_Orty 5Zend_Ldap_Filter_Nottx 7Zend_Ldap_Filter_Masktw =Zend_Ldap_Filter_Logicaltv AZend_Ldap_Filter_Exceptiontu 5Zend_Ldap_Filter_Andtt ?Zend_Ldap_Filter_Abstractts 3Zend_Ldap_Exceptiontr %Zend_Ldap_Dntq 3Zend_Ldap_Convertertp 5Zend_Ldap_Collectiont*o WZend_Ldap_Collection_Iterator_Defaulttn 3Zend_Ldap_Attributetm #Zend_Layouttl 7Zend_Layout_Exceptiont)k UZend_Layout_Controller_Plugin_Layoutt0j cZend_Layout_Controller_Action_Helper_Layoutti Zend_Jsonth -Zend_Json_Servertg 5Zend_Json_Server_Smdt!f EZend_Json_Server_Smd_Servicete ?Zend_Json_Server_Responset#d IZend_Json_Server_Response_Httptc =Zend_Json_Server_Requestt"b GZend_Json_Server_Request_Httpta AZend_Json_Server_Exceptiont` 9Zend_Json_Server_Errort_ 9Zend_Json_Server_Cachet^ )Zend_Json_Exprt] 3Zend_Json_Exceptiont\ /Zend_Json_Encodert[ /Zend_Json_DecodertZ 'Zend_InfoCardt-Y ]Zend_InfoCard_Xml_SecurityTokenReferencetX AZend_InfoCard_Xml_Securityt)W UZend_InfoCard_Xml_Security_Transformt4V kZend_InfoCard_Xml_Security_Transform_XmlExcC14Nt3U iZend_InfoCard_Xml_Security_Transform_Exceptiont<T {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignaturet)S UZend_InfoCard_Xml_Security_ExceptiontR ?Zend_InfoCard_Xml_KeyInfot&Q OZend_InfoCard_Xml_KeyInfo_XmlDSigt&P OZend_InfoCard_Xml_KeyInfo_Defaultt'O QZend_InfoCard_Xml_KeyInfo_Abstractt N CZend_InfoCard_Xml_Exceptiont#M IZend_InfoCard_Xml_EncryptedKeyt$L KZend_InfoCard_Xml_EncryptedDatat+K YZend_InfoCard_Xml_EncryptedData_XmlEnct-J ]Zend_InfoCard_Xml_EncryptedData_AbstracttI ?Zend_InfoCard_Xml_Elementt H CZend_InfoCard_Xml_Assertiont%G MZend_InfoCard_Xml_Assertion_SamltF ;Zend_InfoCard_Exceptiont%E MZend_InfoCard_Exception_AbstracttD 5Zend_InfoCard_ClaimstC 5Zend_InfoCard_Ciphert5B mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbct5A mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbct4@ kZend_InfoCard_Cipher_Symmetric_Adapter_Abstractt)? UZend_InfoCard_Cipher_Pki_Adapter_Rsat.> _Zend_InfoCard_Cipher_Pki_Adapter_Abstractt#= IZend_InfoCard_Cipher_Exceptiont$< KZend_InfoCard_Adapter_Exceptiont"; GZend_InfoCard_Adapter_Defaultt: 1Zend_Http_Responset9 3Zend_Http_Exceptiont8 3Zend_Http_CookieJart7 -Zend_Http_Cookiet6 -Zend_Http_Clientt5 AZend_Http_Client_Exceptiont"4 GZend_Http_Client_Adapter_Testt$3 KZend_Http_Client_Adapter_Sockett#2 IZend_Http_Client_Adapter_Proxyt'1 QZend_Http_Client_Adapter_Exceptiont"0 GZend_Http_Client_Adapter_Curlt/ !Zend_Gdatat. 1Zend_Gdata_YouTubet"- GZend_Gdata_YouTube_VideoQueryt!, EZend_Gdata_YouTube_VideoFeedt"+ GZend_Gdata_YouTube_VideoEntryt(* SZend_Gdata_YouTube_UserProfileEntryt() SZend_Gdata_YouTube_SubscriptionFeedt)( UZend_Gdata_YouTube_SubscriptionEntryt)' UZend_Gdata_YouTube_PlaylistVideoFeedt*& WZend_Gdata_YouTube_PlaylistVideoEntryt(% SZend_Gdata_YouTube_PlaylistListFeedt)$ UZend_Gdata_YouTube_PlaylistListEntryt"# GZend_Gdata_YouTube_MediaEntryt!" EZend_Gdata_YouTube_InboxFeedt"! GZend_Gdata_YouTube_InboxEntryt)  UZend_Gdata_YouTube_Extension_VideoIdt* WZend_Gdata_YouTube_Extension_Usernamet* WZend_Gdata_YouTube_Extension_Uploadedt' QZend_Gdata_YouTube_Extension_Tokent( SZend_Gdata_YouTube_Extension_Statust, [Zend_Gdata_YouTube_Extension_Statisticst' QZend_Gdata_YouTube_Extension_Statet( SZend_Gdata_YouTube_Extension_Schoolt- ]Zend_Gdata_YouTube_Extension_ReleaseDatet. _Zend_Gdata_YouTube_Extension_Relationshipt* WZend_Gdata_YouTube_Extension_Recordedt   v  wHm8cL:uP7rR1




p
P
3
						o	U	9	"lA`? {V0}cG&iJ+
sW<\@$x\B.      r 3Zend_Mime_Exceptiontq -Zend_Mime_Decodetp #Zend_Memoryto /Zend_Memory_Valuetn 3Zend_Memory_Managertm 7Zend_Memory_Exceptiontl 7Zend_Memory_Containert"k GZend_Memory_Container_Movablet!j EZend_Memory_Container_Lockedt!i EZend_Memory_AccessControllerth 3Zend_Measure_Weighttg 3Zend_Measure_Volumet%f MZend_Measure_Viscosity_Kinematict#e IZend_Measure_Viscosity_Dynamictd 3Zend_Measure_Torquetc /Zend_Measure_Timetb =Zend_Measure_Temperatureta 1Zend_Measure_Speedt` 7Zend_Measure_Pressuret_ 1Zend_Measure_Powert^ 3Zend_Measure_Numbert] 9Zend_Measure_Lightnesst\ 3Zend_Measure_Lengtht[ ?Zend_Measure_IlluminationtZ 9Zend_Measure_FrequencytY 1Zend_Measure_ForcetX =Zend_Measure_Flow_VolumetW 9Zend_Measure_Flow_MoletV 9Zend_Measure_Flow_MasstU 9Zend_Measure_ExceptiontT 3Zend_Measure_EnergytS 5Zend_Measure_DensitytR 5Zend_Measure_Currentt Q CZend_Measure_Cooking_Weightt P CZend_Measure_Cooking_VolumetO =Zend_Measure_CapacitancetN 3Zend_Measure_BinarytM /Zend_Measure_AreatL 1Zend_Measure_AngletK ?Zend_Measure_AccelerationtJ 7Zend_Measure_AbstracttI Zend_MailtH =Zend_Mail_Transport_Smtpt!G EZend_Mail_Transport_Sendmailt"F GZend_Mail_Transport_Exceptiont!E EZend_Mail_Transport_AbstracttD /Zend_Mail_Storaget'C QZend_Mail_Storage_Writable_MaildirtB 9Zend_Mail_Storage_Pop3tA 9Zend_Mail_Storage_Mboxt@ ?Zend_Mail_Storage_Maildirt? 9Zend_Mail_Storage_Imapt> =Zend_Mail_Storage_Foldert"= GZend_Mail_Storage_Folder_Mboxt%< MZend_Mail_Storage_Folder_Maildirt ; CZend_Mail_Storage_Exceptiont: AZend_Mail_Storage_Abstractt9 ;Zend_Mail_Protocol_Smtpt'8 QZend_Mail_Protocol_Smtp_Auth_Plaint'7 QZend_Mail_Protocol_Smtp_Auth_Logint)6 UZend_Mail_Protocol_Smtp_Auth_Crammd5t5 ;Zend_Mail_Protocol_Pop3t4 ;Zend_Mail_Protocol_Imapt!3 EZend_Mail_Protocol_Exceptiont 2 CZend_Mail_Protocol_Abstractt1 )Zend_Mail_Partt0 3Zend_Mail_Part_Filet/ /Zend_Mail_Messaget. 9Zend_Mail_Message_Filet- 3Zend_Mail_Exceptiont, Zend_Logt+ 9Zend_Log_Writer_Syslogt* 9Zend_Log_Writer_Streamt) 5Zend_Log_Writer_Nullt( 5Zend_Log_Writer_Mockt' 5Zend_Log_Writer_Mailt& ;Zend_Log_Writer_Firebugt% 1Zend_Log_Writer_Dbt$ =Zend_Log_Writer_Abstractt# 9Zend_Log_Formatter_Xmlt" ?Zend_Log_Formatter_Simplet! AZend_Log_Formatter_Firebugt  =Zend_Log_Filter_Suppresst =Zend_Log_Filter_Priorityt ;Zend_Log_Filter_Messaget 1Zend_Log_Exceptiont #Zend_Localet -Zend_Locale_Matht =Zend_Locale_Math_PhpMatht AZend_Locale_Math_Exceptiont 1Zend_Locale_Formatt 7Zend_Locale_Exceptiont -Zend_Locale_Datat! EZend_Locale_Data_Translationt #Zend_Loadert =Zend_Loader_PluginLoadert' QZend_Loader_PluginLoader_Exceptiont 7Zend_Loader_Exceptiont 9Zend_Loader_Autoloadert$ KZend_Loader_Autoloader_Resourcet Zend_Ldapt )Zend_Ldap_Nodet 7Zend_Ldap_Node_Schemat# IZend_Ldap_Node_Schema_OpenLdapt/
 aZend_Ldap_Node_Schema_ObjectClass_OpenLdapt6	 oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectoryt AZend_Ldap_Node_Schema_Itemt1 eZend_Ldap_Node_Schema_AttributeType_OpenLdapt8 sZend_Ldap_Node_Schema_AttributeType_ActiveDirectoryt* WZend_Ldap_Node_Schema_ActiveDirectoryt 9Zend_Ldap_Node_RootDset$ KZend_Ldap_Node_RootDse_OpenLdapt& OZend_Ldap_Node_RootDse_eDirectoryt+ YZend_Ldap_Node_RootDse_ActiveDirectoryt  ?Zend_Ldap_Node_Collectiont$ KZend_Ldap_Node_ChildrenIteratort~ ;Zend_Ldap_Node_Abstractt} 9Zend_Ldap_Ldif_Encodert   p  yX7xU7kFZ,y[= 





]
;
					y	]	E	oJ'`?xN# }\8i@wW<	vZ/qI%                 b )Zend_Pdf_Imageta 'Zend_Pdf_Fontt ` CZend_Pdf_Filter_Compressiont$_ KZend_Pdf_Filter_Compression_Lzwt&^ OZend_Pdf_Filter_Compression_Flatet] =Zend_Pdf_Filter_AsciiHext\ ;Zend_Pdf_Filter_Ascii85t"[ GZend_Pdf_FileParserDataSourcet)Z UZend_Pdf_FileParserDataSource_Stringt'Y QZend_Pdf_FileParserDataSource_FiletX 3Zend_Pdf_FileParsertW ?Zend_Pdf_FileParser_Imaget"V GZend_Pdf_FileParser_Image_PngtU =Zend_Pdf_FileParser_Fontt&T OZend_Pdf_FileParser_Font_OpenTypet/S aZend_Pdf_FileParser_Font_OpenType_TrueTypetR 1Zend_Pdf_ExceptiontQ ;Zend_Pdf_ElementFactoryt"P GZend_Pdf_ElementFactory_ProxytO -Zend_Pdf_ElementtN ;Zend_Pdf_Element_Stringt#M IZend_Pdf_Element_String_BinarytL ;Zend_Pdf_Element_StreamtK AZend_Pdf_Element_Referencet%J MZend_Pdf_Element_Reference_Tablet'I QZend_Pdf_Element_Reference_ContexttH ;Zend_Pdf_Element_Objectt#G IZend_Pdf_Element_Object_StreamtF =Zend_Pdf_Element_NumerictE 7Zend_Pdf_Element_NulltD 7Zend_Pdf_Element_Namet C CZend_Pdf_Element_DictionarytB =Zend_Pdf_Element_BooleantA 9Zend_Pdf_Element_Arrayt@ 5Zend_Pdf_Destinationt? ?Zend_Pdf_Destination_Zoomt!> EZend_Pdf_Destination_Unknownt= AZend_Pdf_Destination_Namedt'< QZend_Pdf_Destination_FitVerticallyt&; OZend_Pdf_Destination_FitRectanglet): UZend_Pdf_Destination_FitHorizontallyt29 gZend_Pdf_Destination_FitBoundingBoxVerticallyt48 kZend_Pdf_Destination_FitBoundingBoxHorizontallyt(7 SZend_Pdf_Destination_FitBoundingBoxt6 =Zend_Pdf_Destination_Fitt"5 GZend_Pdf_Destination_Explicitt4 )Zend_Pdf_Colort3 1Zend_Pdf_Color_Rgbt2 3Zend_Pdf_Color_Htmlt1 =Zend_Pdf_Color_GrayScalet0 3Zend_Pdf_Color_Cmykt/ 'Zend_Pdf_Cmapt. AZend_Pdf_Cmap_TrimmedTablet!- EZend_Pdf_Cmap_SegmentToDeltat, AZend_Pdf_Cmap_ByteEncodingt&+ OZend_Pdf_Cmap_ByteEncoding_Statict* 3Zend_Pdf_Annotationt) =Zend_Pdf_Annotation_Textt( =Zend_Pdf_Annotation_Linkt'' QZend_Pdf_Annotation_FileAttachmentt& +Zend_Pdf_Actiont% 3Zend_Pdf_Action_URIt$ ;Zend_Pdf_Action_Unknownt# 7Zend_Pdf_Action_Transt" 9Zend_Pdf_Action_Threadt! AZend_Pdf_Action_SubmitFormt  7Zend_Pdf_Action_Soundt  CZend_Pdf_Action_SetOCGStatet ?Zend_Pdf_Action_ResetFormt ?Zend_Pdf_Action_Renditiont 7Zend_Pdf_Action_Namedt 7Zend_Pdf_Action_Moviet 9Zend_Pdf_Action_Launcht AZend_Pdf_Action_JavaScriptt AZend_Pdf_Action_ImportDatat 5Zend_Pdf_Action_Hidet 7Zend_Pdf_Action_GoToRt 7Zend_Pdf_Action_GoToEt AZend_Pdf_Action_GoTo3DViewt 5Zend_Pdf_Action_GoTot )Zend_Paginatort* WZend_Paginator_ScrollingStyle_Slidingt* WZend_Paginator_ScrollingStyle_Jumpingt* WZend_Paginator_ScrollingStyle_Elastict& OZend_Paginator_ScrollingStyle_Allt =Zend_Paginator_Exceptiont  CZend_Paginator_Adapter_Nullt$ KZend_Paginator_Adapter_Iteratort)
 UZend_Paginator_Adapter_DbTableSelectt$	 KZend_Paginator_Adapter_DbSelectt! EZend_Paginator_Adapter_Arrayt #Zend_OpenIdt 5Zend_OpenId_Providert ?Zend_OpenId_Provider_Usert& OZend_OpenId_Provider_User_Sessiont! EZend_OpenId_Provider_Storaget& OZend_OpenId_Provider_Storage_Filet 7Zend_OpenId_Extensiont  AZend_OpenId_Extension_Sregt 7Zend_OpenId_Exceptiont~ 5Zend_OpenId_Consumert!} EZend_OpenId_Consumer_Storaget&| OZend_OpenId_Consumer_Storage_Filet{ +Zend_Navigationtz 5Zend_Navigation_Pagety =Zend_Navigation_Page_Uritx =Zend_Navigation_Page_Mvctw ?Zend_Navigation_Exceptiontv ?Zend_Navigation_Containertu Zend_Mimett )Zend_Mime_Partts /Zend_Mime_Messaget   a  v^'yCb$i){@


u
P
1
				|	b	D	-	Z/^3e9kL9~\:a7qS	G                                                    FC Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitivet8B sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumtIA Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitivet5@ mZend_Search_Lucene_Analysis_Analyzer_Common_TexttF? Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitivet> 7Zend_Search_Exceptiont= -Zend_Rest_Servert< AZend_Rest_Server_Exceptiont; +Zend_Rest_Routet: 3Zend_Rest_Exceptiont9 5Zend_Rest_Controllert8 -Zend_Rest_Clientt7 ;Zend_Rest_Client_Resultt&6 OZend_Rest_Client_Result_Exceptiont5 AZend_Rest_Client_Exceptiont4 'Zend_Registryt3 =Zend_Reflection_Propertyt2 ?Zend_Reflection_Parametert1 9Zend_Reflection_Methodt0 =Zend_Reflection_Functiont/ 5Zend_Reflection_Filet. ?Zend_Reflection_Extensiont- ?Zend_Reflection_Exceptiont, =Zend_Reflection_Docblockt!+ EZend_Reflection_Docblock_Tagt(* SZend_Reflection_Docblock_Tag_Returnt') QZend_Reflection_Docblock_Tag_Paramt( 7Zend_Reflection_Classt' !Zend_Queuet& 9Zend_Queue_Stomp_Framet% ;Zend_Queue_Stomp_Clientt'$ QZend_Queue_Stomp_Client_Connectiont# 1Zend_Queue_Messaget#" IZend_Queue_Message_PlatformJobt ! CZend_Queue_Message_Iteratort  5Zend_Queue_Exceptiont( SZend_Queue_Adapter_PlatformJobQueuet ;Zend_Queue_Adapter_Nullt! EZend_Queue_Adapter_Memcacheqt 7Zend_Queue_Adapter_Dbt  CZend_Queue_Adapter_Db_Queuet" GZend_Queue_Adapter_Db_Messaget =Zend_Queue_Adapter_Arrayt' QZend_Queue_Adapter_AdapterAbstractt  CZend_Queue_Adapter_Activemqt -Zend_ProgressBart AZend_ProgressBar_Exceptiont =Zend_ProgressBar_Adaptert$ KZend_ProgressBar_Adapter_JsPusht$ KZend_ProgressBar_Adapter_JsPullt' QZend_ProgressBar_Adapter_Exceptiont% MZend_ProgressBar_Adapter_Consolet Zend_Pdft! EZend_Pdf_UpdateInfoContainert -Zend_Pdf_Trailert ;Zend_Pdf_Trailer_Keepert AZend_Pdf_Trailer_Generatort
 +Zend_Pdf_Targett	 )Zend_Pdf_Stylet 7Zend_Pdf_StringParsert /Zend_Pdf_Resourcet# IZend_Pdf_Resource_ImageFactoryt ;Zend_Pdf_Resource_Imaget! EZend_Pdf_Resource_Image_Tifft  CZend_Pdf_Resource_Image_Pngt! EZend_Pdf_Resource_Image_Jpegt 9Zend_Pdf_Resource_Fontt!  EZend_Pdf_Resource_Font_Type0t" GZend_Pdf_Resource_Font_Simplet+~ YZend_Pdf_Resource_Font_Simple_Standardt8} sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatst6| oZend_Pdf_Resource_Font_Simple_Standard_TimesRomant7{ qZend_Pdf_Resource_Font_Simple_Standard_TimesItalict;z yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalict5y mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldt2x gZend_Pdf_Resource_Font_Simple_Standard_Symbolt<w {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliquetAv Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliquet9u uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldt5t mZend_Pdf_Resource_Font_Simple_Standard_Helveticat:s wZend_Pdf_Resource_Font_Simple_Standard_CourierObliquet>r Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliquet7q qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldt3p iZend_Pdf_Resource_Font_Simple_Standard_Couriert)o UZend_Pdf_Resource_Font_Simple_Parsedt2n gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypet*m WZend_Pdf_Resource_Font_FontDescriptort%l MZend_Pdf_Resource_Font_Extractedt#k IZend_Pdf_Resource_Font_CidFontt,j [Zend_Pdf_Resource_Font_CidFont_TrueTypet3i iZend_Pdf_RecursivelyIteratableObjectsContainerth +Zend_Pdf_Parsertg 'Zend_Pdf_Pagetf -Zend_Pdf_Outlinete ;Zend_Pdf_Outline_Loadedtd =Zend_Pdf_Outline_Createdtc /Zend_Pdf_NameTreet   S  z>
y; m?tO.a4


\
6
				V	-	h:u9]0m;S\-s;P5                       7Zend_Server_Exceptiont 9Zend_Server_Definitiont /Zend_Server_Cachet 5Zend_Server_Abstractt 1Zend_Search_Lucenet0 cZend_Search_Lucene_TermStreamsPriorityQueuet$ KZend_Search_Lucene_Storage_Filet+ YZend_Search_Lucene_Storage_File_Memoryt/ aZend_Search_Lucene_Storage_File_Filesystemt) UZend_Search_Lucene_Storage_Directoryt4 kZend_Search_Lucene_Storage_Directory_Filesystemt% MZend_Search_Lucene_Search_Weightt*
 WZend_Search_Lucene_Search_Weight_Termt,	 [Zend_Search_Lucene_Search_Weight_Phraset/ aZend_Search_Lucene_Search_Weight_MultiTermt+ YZend_Search_Lucene_Search_Weight_Emptyt- ]Zend_Search_Lucene_Search_Weight_Booleant) UZend_Search_Lucene_Search_Similarityt1 eZend_Search_Lucene_Search_Similarity_Defaultt) UZend_Search_Lucene_Search_QueryTokent3 iZend_Search_Lucene_Search_QueryParserExceptiont1 eZend_Search_Lucene_Search_QueryParserContextt*  WZend_Search_Lucene_Search_QueryParsert) UZend_Search_Lucene_Search_QueryLexert'~ QZend_Search_Lucene_Search_QueryHitt)} UZend_Search_Lucene_Search_QueryEntryt.| _Zend_Search_Lucene_Search_QueryEntry_Termt2{ gZend_Search_Lucene_Search_QueryEntry_Subqueryt0z cZend_Search_Lucene_Search_QueryEntry_Phraset$y KZend_Search_Lucene_Search_Queryt-x ]Zend_Search_Lucene_Search_Query_Wildcardt)w UZend_Search_Lucene_Search_Query_Termt*v WZend_Search_Lucene_Search_Query_Ranget2u gZend_Search_Lucene_Search_Query_Preprocessingt7t qZend_Search_Lucene_Search_Query_Preprocessing_Termt9s uZend_Search_Lucene_Search_Query_Preprocessing_Phraset8r sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzyt+q YZend_Search_Lucene_Search_Query_Phraset.p _Zend_Search_Lucene_Search_Query_MultiTermt2o gZend_Search_Lucene_Search_Query_Insignificantt*n WZend_Search_Lucene_Search_Query_Fuzzyt*m WZend_Search_Lucene_Search_Query_Emptyt,l [Zend_Search_Lucene_Search_Query_Booleant2k gZend_Search_Lucene_Search_Highlighter_Defaultt:j wZend_Search_Lucene_Search_BooleanExpressionRecognizerti =Zend_Search_Lucene_Proxyt%h MZend_Search_Lucene_PriorityQueuet/g aZend_Search_Lucene_Interface_MultiSearchert#f IZend_Search_Lucene_LockManagert$e KZend_Search_Lucene_Index_Writert0d cZend_Search_Lucene_Index_TermsPriorityQueuet&c OZend_Search_Lucene_Index_TermInfot"b GZend_Search_Lucene_Index_Termt+a YZend_Search_Lucene_Index_SegmentWritert8` sZend_Search_Lucene_Index_SegmentWriter_StreamWritert:_ wZend_Search_Lucene_Index_SegmentWriter_DocumentWritert+^ YZend_Search_Lucene_Index_SegmentMergert)] UZend_Search_Lucene_Index_SegmentInfot'\ QZend_Search_Lucene_Index_FieldInfot([ SZend_Search_Lucene_Index_DocsFiltert.Z _Zend_Search_Lucene_Index_DictionaryLoadert!Y EZend_Search_Lucene_FSMActiontX 9Zend_Search_Lucene_FSMtW =Zend_Search_Lucene_Fieldt!V EZend_Search_Lucene_Exceptiont U CZend_Search_Lucene_Documentt%T MZend_Search_Lucene_Document_Xlsxt%S MZend_Search_Lucene_Document_Pptxt(R SZend_Search_Lucene_Document_OpenXmlt%Q MZend_Search_Lucene_Document_Htmlt*P WZend_Search_Lucene_Document_Exceptiont%O MZend_Search_Lucene_Document_Docxt,N [Zend_Search_Lucene_Analysis_TokenFiltert6M oZend_Search_Lucene_Analysis_TokenFilter_StopWordst7L qZend_Search_Lucene_Analysis_TokenFilter_ShortWordst:K wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8t6J oZend_Search_Lucene_Analysis_TokenFilter_LowerCaset&I OZend_Search_Lucene_Analysis_Tokent)H UZend_Search_Lucene_Analysis_Analyzert0G cZend_Search_Lucene_Analysis_Analyzer_Commont8F sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumtIE Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitivet5D mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8t   c  lG{R)W,X.|T-



c
A
 					g	>	hDgE"^7nO/
c>xN.	N"O                           1y eZend_Service_Technorati_DailyCountsResultSett.x _Zend_Service_Technorati_DailyCountsResultt,w [Zend_Service_Technorati_CosmosResultSett)v UZend_Service_Technorati_CosmosResultt+u YZend_Service_Technorati_BlogInfoResultt#t IZend_Service_Technorati_Authorts ;Zend_Service_StrikeIront(r SZend_Service_StrikeIron_ZipCodeInfot2q gZend_Service_StrikeIron_USAddressVerificationt-p ]Zend_Service_StrikeIron_SalesUseTaxBasict&o OZend_Service_StrikeIron_Exceptiont&n OZend_Service_StrikeIron_Decoratort!m EZend_Service_StrikeIron_Basetl ;Zend_Service_SlideSharet&k OZend_Service_SlideShare_SlideShowt&j OZend_Service_SlideShare_Exceptionti 1Zend_Service_Simpyt$h KZend_Service_Simpy_WatchlistSett*g WZend_Service_Simpy_WatchlistFilterSett'f QZend_Service_Simpy_WatchlistFiltert!e EZend_Service_Simpy_Watchlisttd ?Zend_Service_Simpy_TagSettc 9Zend_Service_Simpy_Tagtb AZend_Service_Simpy_NoteSetta ;Zend_Service_Simpy_Notet` AZend_Service_Simpy_LinkSett!_ EZend_Service_Simpy_LinkQueryt^ ;Zend_Service_Simpy_Linkt] 9Zend_Service_ReCaptchat$\ KZend_Service_ReCaptcha_Responset$[ KZend_Service_ReCaptcha_MailHidet.Z _Zend_Service_ReCaptcha_MailHide_Exceptiont%Y MZend_Service_ReCaptcha_ExceptiontX 7Zend_Service_Nirvanixt#W IZend_Service_Nirvanix_Responset)V UZend_Service_Nirvanix_Namespace_Imfst)U UZend_Service_Nirvanix_Namespace_Baset$T KZend_Service_Nirvanix_ExceptiontS 3Zend_Service_Flickrt"R GZend_Service_Flickr_ResultSettQ AZend_Service_Flickr_ResulttP ?Zend_Service_Flickr_ImagetO 9Zend_Service_ExceptiontN 9Zend_Service_Delicioust&M OZend_Service_Delicious_SimplePostt$L KZend_Service_Delicious_PostListt K CZend_Service_Delicious_Postt%J MZend_Service_Delicious_Exceptiont I CZend_Service_AudioscrobblertH 3Zend_Service_AmazontG ;Zend_Service_Amazon_Sqst&F OZend_Service_Amazon_Sqs_Exceptiont'E QZend_Service_Amazon_SimilarProducttD 9Zend_Service_Amazon_S3t"C GZend_Service_Amazon_S3_Streamt%B MZend_Service_Amazon_S3_Exceptiont"A GZend_Service_Amazon_ResultSett@ ?Zend_Service_Amazon_Queryt!? EZend_Service_Amazon_OfferSett> ?Zend_Service_Amazon_Offert&= OZend_Service_Amazon_ListmaniaListt< =Zend_Service_Amazon_Itemt; ?Zend_Service_Amazon_Imaget": GZend_Service_Amazon_Exceptiont(9 SZend_Service_Amazon_EditorialReviewt8 ;Zend_Service_Amazon_Ec2t+7 YZend_Service_Amazon_Ec2_Securitygroupst%6 MZend_Service_Amazon_Ec2_Responset#5 IZend_Service_Amazon_Ec2_Regiont$4 KZend_Service_Amazon_Ec2_Keypairt%3 MZend_Service_Amazon_Ec2_Instancet-2 ]Zend_Service_Amazon_Ec2_Instance_Windowst.1 _Zend_Service_Amazon_Ec2_Instance_Reservedt"0 GZend_Service_Amazon_Ec2_Imaget&/ OZend_Service_Amazon_Ec2_Exceptiont&. OZend_Service_Amazon_Ec2_Elasticipt - CZend_Service_Amazon_Ec2_Ebst', QZend_Service_Amazon_Ec2_CloudWatcht.+ _Zend_Service_Amazon_Ec2_Availabilityzonest%* MZend_Service_Amazon_Ec2_Abstractt') QZend_Service_Amazon_CustomerReviewt$( KZend_Service_Amazon_Accessoriest!' EZend_Service_Amazon_Abstractt& 5Zend_Service_Akismett% 7Zend_Service_Abstractt$ 9Zend_Server_Reflectiont'# QZend_Server_Reflection_ReturnValuet%" MZend_Server_Reflection_Prototypet%! MZend_Server_Reflection_Parametert   CZend_Server_Reflection_Nodet" GZend_Server_Reflection_Methodt$ KZend_Server_Reflection_Functiont- ]Zend_Server_Reflection_Function_Abstractt% MZend_Server_Reflection_Exceptiont! EZend_Server_Reflection_Classt! EZend_Server_Method_Prototypet! EZend_Server_Method_Parametert" GZend_Server_Method_Definitiont  CZend_Server_Method_Callbackt   e  zS)uJdG&zS)a<




e
F
'				~	i	@	!	cJ) qGW2uG^6uEa7|R0            ^ ;Zend_TimeSync_Exceptiont] +Zend_Text_Tablet\ 3Zend_Text_Table_Rowt[ ?Zend_Text_Table_Exceptiont&Z OZend_Text_Table_Decorator_Unicodet$Y KZend_Text_Table_Decorator_AsciitX 9Zend_Text_Table_ColumntW 3Zend_Text_MultiBytetV -Zend_Text_FiglettU AZend_Text_Figlet_ExceptiontT 3Zend_Text_Exceptiont&S OZend_Test_PHPUnit_Db_SimpleTestert,R [Zend_Test_PHPUnit_Db_Operation_Truncatet*Q WZend_Test_PHPUnit_Db_Operation_Insertt-P ]Zend_Test_PHPUnit_Db_Operation_DeleteAllt*O WZend_Test_PHPUnit_Db_Metadata_Generict#N IZend_Test_PHPUnit_Db_Exceptiont,M [Zend_Test_PHPUnit_Db_DataSet_QueryTablet.L _Zend_Test_PHPUnit_Db_DataSet_QueryDataSett0K cZend_Test_PHPUnit_Db_DataSet_DbTableDataSett)J UZend_Test_PHPUnit_Db_DataSet_DbTablet*I WZend_Test_PHPUnit_Db_DataSet_DbRowsett$H KZend_Test_PHPUnit_Db_Connectiont'G QZend_Test_PHPUnit_DatabaseTestCaset)F UZend_Test_PHPUnit_ControllerTestCaset0E cZend_Test_PHPUnit_Constraint_ResponseHeadert*D WZend_Test_PHPUnit_Constraint_Redirectt+C YZend_Test_PHPUnit_Constraint_Exceptiont*B WZend_Test_PHPUnit_Constraint_DomQuerytA 7Zend_Test_DbStatementt@ 3Zend_Test_DbAdaptert? /Zend_Tag_ItemListt> 'Zend_Tag_Itemt= 1Zend_Tag_Exceptiont< )Zend_Tag_Cloudt; =Zend_Tag_Cloud_Exceptiont!: EZend_Tag_Cloud_Decorator_Tagt%9 MZend_Tag_Cloud_Decorator_HtmlTagt'8 QZend_Tag_Cloud_Decorator_HtmlCloudt'7 QZend_Tag_Cloud_Decorator_Exceptiont#6 IZend_Tag_Cloud_Decorator_Cloudt5 )Zend_Soap_Wsdlt/4 aZend_Soap_Wsdl_Strategy_DefaultComplexTypet&3 OZend_Soap_Wsdl_Strategy_Compositet02 cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequencet/1 aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplext$0 KZend_Soap_Wsdl_Strategy_AnyTypet%/ MZend_Soap_Wsdl_Strategy_Abstractt. =Zend_Soap_Wsdl_Exceptiont- -Zend_Soap_Servert, AZend_Soap_Server_Exceptiont+ -Zend_Soap_Clientt* 9Zend_Soap_Client_Localt) AZend_Soap_Client_Exceptiont( ;Zend_Soap_Client_DotNett' ;Zend_Soap_Client_Commont& 9Zend_Soap_AutoDiscovert%% MZend_Soap_AutoDiscover_Exceptiont$ %Zend_Sessiont)# UZend_Session_Validator_HttpUserAgentt$" KZend_Session_Validator_Abstractt'! QZend_Session_SaveHandler_Exceptiont%  MZend_Session_SaveHandler_DbTablet 9Zend_Session_Namespacet 9Zend_Session_Exceptiont 7Zend_Session_Abstractt 1Zend_Service_Yahoot$ KZend_Service_Yahoo_WebResultSett! EZend_Service_Yahoo_WebResultt& OZend_Service_Yahoo_VideoResultSett# IZend_Service_Yahoo_VideoResultt! EZend_Service_Yahoo_ResultSett ?Zend_Service_Yahoo_Resultt) UZend_Service_Yahoo_PageDataResultSett& OZend_Service_Yahoo_PageDataResultt% MZend_Service_Yahoo_NewsResultSett" GZend_Service_Yahoo_NewsResultt& OZend_Service_Yahoo_LocalResultSett# IZend_Service_Yahoo_LocalResultt+ YZend_Service_Yahoo_InlinkDataResultSett( SZend_Service_Yahoo_InlinkDataResultt& OZend_Service_Yahoo_ImageResultSett# IZend_Service_Yahoo_ImageResultt =Zend_Service_Yahoo_Imaget
 5Zend_Service_Twittert 	 CZend_Service_Twitter_Searcht# IZend_Service_Twitter_Exceptiont ;Zend_Service_Technoratit# IZend_Service_Technorati_Weblogt" GZend_Service_Technorati_Utilst* WZend_Service_Technorati_TagsResultSett' QZend_Service_Technorati_TagsResultt) UZend_Service_Technorati_TagResultSett& OZend_Service_Technorati_TagResultt,  [Zend_Service_Technorati_SearchResultSett) UZend_Service_Technorati_SearchResultt&~ OZend_Service_Technorati_ResultSett#} IZend_Service_Technorati_Resultt*| WZend_Service_Technorati_KeyInfoResultt*{ WZend_Service_Technorati_GetInfoResultt&z OZend_Service_Technorati_Exceptiont   N  nAMy=Q%s%



f
9
				S	$q<^-b5{In:
f3j8c4                                        1, eZend_Tool_Project_Context_Zf_ModuleDirectoryt1+ eZend_Tool_Project_Context_Zf_ModelsDirectoryt+* YZend_Tool_Project_Context_Zf_ModelFilet/) aZend_Tool_Project_Context_Zf_LogsDirectoryt2( gZend_Tool_Project_Context_Zf_LocalesDirectoryt2' gZend_Tool_Project_Context_Zf_LibraryDirectoryt2& gZend_Tool_Project_Context_Zf_LayoutsDirectoryt.% _Zend_Tool_Project_Context_Zf_HtaccessFilet0$ cZend_Tool_Project_Context_Zf_FormsDirectoryt*# WZend_Tool_Project_Context_Zf_FormFilet-" ]Zend_Tool_Project_Context_Zf_DbTableFilet2! gZend_Tool_Project_Context_Zf_DbTableDirectoryt/  aZend_Tool_Project_Context_Zf_DataDirectoryt6 oZend_Tool_Project_Context_Zf_ControllersDirectoryt0 cZend_Tool_Project_Context_Zf_ControllerFilet2 gZend_Tool_Project_Context_Zf_ConfigsDirectoryt, [Zend_Tool_Project_Context_Zf_ConfigFilet0 cZend_Tool_Project_Context_Zf_CacheDirectoryt/ aZend_Tool_Project_Context_Zf_BootstrapFilet6 oZend_Tool_Project_Context_Zf_ApplicationDirectoryt7 qZend_Tool_Project_Context_Zf_ApplicationConfigFilet/ aZend_Tool_Project_Context_Zf_ApisDirectoryt. _Zend_Tool_Project_Context_Zf_ActionMethodt@ Zend_Tool_Project_Context_System_ProjectProvidersDirectoryt8 sZend_Tool_Project_Context_System_ProjectProfileFilet6 oZend_Tool_Project_Context_System_ProjectDirectoryt) UZend_Tool_Project_Context_Repositoryt. _Zend_Tool_Project_Context_Filesystem_Filet3 iZend_Tool_Project_Context_Filesystem_Directoryt2 gZend_Tool_Project_Context_Filesystem_Abstractt( SZend_Tool_Project_Context_Exceptiont- ]Zend_Tool_Project_Context_Content_Enginet3 iZend_Tool_Project_Context_Content_Engine_Phtmlt; yZend_Tool_Project_Context_Content_Engine_CodeGeneratort0
 cZend_Tool_Framework_System_Provider_Versiont0	 cZend_Tool_Framework_System_Provider_Phpinfot1 eZend_Tool_Framework_System_Provider_Manifestt( SZend_Tool_Framework_System_Manifestt- ]Zend_Tool_Framework_System_Action_Deletet- ]Zend_Tool_Framework_System_Action_Createt! EZend_Tool_Framework_Registryt+ YZend_Tool_Framework_Registry_Exceptiont+ YZend_Tool_Framework_Provider_Signaturet, [Zend_Tool_Framework_Provider_Repositoryt+  YZend_Tool_Framework_Provider_Exceptiont* WZend_Tool_Framework_Provider_Abstractt&~ OZend_Tool_Framework_Metadata_Toolt)} UZend_Tool_Framework_Metadata_Dynamict'| QZend_Tool_Framework_Metadata_Basict,{ [Zend_Tool_Framework_Manifest_Repositoryt+z YZend_Tool_Framework_Manifest_Exceptiont1y eZend_Tool_Framework_Loader_IncludePathLoadertJx Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIteratort(w SZend_Tool_Framework_Loader_Abstractt"v GZend_Tool_Framework_Exceptiont'u QZend_Tool_Framework_Client_Storaget1t eZend_Tool_Framework_Client_Storage_Directoryt(s SZend_Tool_Framework_Client_ResponsetDr 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separatort'q QZend_Tool_Framework_Client_Requestt9p uZend_Tool_Framework_Client_Interactive_InputResponset8o sZend_Tool_Framework_Client_Interactive_InputRequestt8n sZend_Tool_Framework_Client_Interactive_InputHandlert)m UZend_Tool_Framework_Client_Exceptiont'l QZend_Tool_Framework_Client_ConsoletDk 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizert0j cZend_Tool_Framework_Client_Console_Manifestt2i gZend_Tool_Framework_Client_Console_HelpSystemt6h oZend_Tool_Framework_Client_Console_ArgumentParsert&g OZend_Tool_Framework_Client_Configt(f SZend_Tool_Framework_Client_Abstractt*e WZend_Tool_Framework_Action_Repositoryt)d UZend_Tool_Framework_Action_Exceptiont$c KZend_Tool_Framework_Action_Basetb 'Zend_TimeSyncta 1Zend_TimeSync_Sntpt` 9Zend_TimeSync_Protocolt_ /Zend_TimeSync_Ntpt   X  \!p4:z@X"


i
5				c	7	WwIuJwT-
}X9fJ&nF ~R'     ! EZend_Validate_File_FilesSizet! EZend_Validate_File_Extensiont ?Zend_Validate_File_Existst' QZend_Validate_File_ExcludeMimeTypet(  SZend_Validate_File_ExcludeExtensiont =Zend_Validate_File_Crc32t~ =Zend_Validate_File_Countt} ;Zend_Validate_Exceptiont| AZend_Validate_EmailAddresst{ 5Zend_Validate_Digitst"z GZend_Validate_Db_RecordExistst$y KZend_Validate_Db_NoRecordExiststx ?Zend_Validate_Db_Abstracttw 1Zend_Validate_Datetv 3Zend_Validate_Ccnumtu 7Zend_Validate_Betweentt 7Zend_Validate_Barcodets AZend_Validate_Barcode_UpcAt r CZend_Validate_Barcode_Ean13tq 3Zend_Validate_Alphatp 3Zend_Validate_Alnumto 9Zend_Validate_Abstracttn Zend_Uritm 'Zend_Uri_Httptl 1Zend_Uri_Exceptiontk )Zend_Translatetj 7Zend_Translate_Pluralti =Zend_Translate_Exceptionth 9Zend_Translate_Adaptert!g EZend_Translate_Adapter_XmlTmt!f EZend_Translate_Adapter_Xliffte AZend_Translate_Adapter_Tmxtd AZend_Translate_Adapter_Tbxtc ?Zend_Translate_Adapter_Qttb AZend_Translate_Adapter_Init#a IZend_Translate_Adapter_Gettextt` AZend_Translate_Adapter_Csvt!_ EZend_Translate_Adapter_Arrayt$^ KZend_Tool_Project_Provider_Viewt$] KZend_Tool_Project_Provider_Testt/\ aZend_Tool_Project_Provider_ProjectProvidert'[ QZend_Tool_Project_Provider_Projectt'Z QZend_Tool_Project_Provider_Profilet&Y OZend_Tool_Project_Provider_Modulet%X MZend_Tool_Project_Provider_Modelt(W SZend_Tool_Project_Provider_Manifestt$V KZend_Tool_Project_Provider_Formt)U UZend_Tool_Project_Provider_Exceptiont*T WZend_Tool_Project_Provider_Controllert&S OZend_Tool_Project_Provider_Actiont(R SZend_Tool_Project_Provider_AbstracttQ ?Zend_Tool_Project_Profilet'P QZend_Tool_Project_Profile_Resourcet9O uZend_Tool_Project_Profile_Resource_SearchConstraintst1N eZend_Tool_Project_Profile_Resource_Containert=M }Zend_Tool_Project_Profile_Iterator_EnabledResourceFiltert5L mZend_Tool_Project_Profile_Iterator_ContextFiltert-K ]Zend_Tool_Project_Profile_FileParser_Xmlt(J SZend_Tool_Project_Profile_Exceptiont I CZend_Tool_Project_Exceptiont<H {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectoryt0G cZend_Tool_Project_Context_Zf_ViewsDirectoryt6F oZend_Tool_Project_Context_Zf_ViewScriptsDirectoryt0E cZend_Tool_Project_Context_Zf_ViewScriptFilet6D oZend_Tool_Project_Context_Zf_ViewHelpersDirectoryt6C oZend_Tool_Project_Context_Zf_ViewFiltersDirectorytAB Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectoryt2A gZend_Tool_Project_Context_Zf_UploadsDirectoryt0@ cZend_Tool_Project_Context_Zf_TestsDirectoryt7? qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFilet@> Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectoryt1= eZend_Tool_Project_Context_Zf_TestLibraryFilet6< oZend_Tool_Project_Context_Zf_TestLibraryDirectoryt:; wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFilet:: wZend_Tool_Project_Context_Zf_TestApplicationDirectoryt@9 Zend_Tool_Project_Context_Zf_TestApplicationControllerFiletE8 Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectoryt>7 Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFilet46 kZend_Tool_Project_Context_Zf_TemporaryDirectoryt35 iZend_Tool_Project_Context_Zf_SessionsDirectoryt84 sZend_Tool_Project_Context_Zf_SearchIndexesDirectoryt<3 {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectoryt82 sZend_Tool_Project_Context_Zf_PublicScriptsDirectoryt11 eZend_Tool_Project_Context_Zf_PublicIndexFilet70 qZend_Tool_Project_Context_Zf_PublicImagesDirectoryt1/ eZend_Tool_Project_Context_Zf_PublicDirectoryt5. mZend_Tool_Project_Context_Zf_ProjectProviderFilet2- gZend_Tool_Project_Context_Zf_ModulesDirectoryt   j  pQ-eC)
~_@$iS>#`?




l
J
&
				m	J	'	uS/[9~K!}R1a2zW4uC|M                            #n IZend_XmlRpc_Client_ServerProxyt+m YZend_XmlRpc_Client_ServerIntrospectiont+l YZend_XmlRpc_Client_IntrospectExceptiont%k MZend_XmlRpc_Client_HttpExceptiont&j OZend_XmlRpc_Client_FaultExceptiont!i EZend_XmlRpc_Client_Exceptiont&h OZend_Wildfire_Protocol_JsonStreamt!g EZend_Wildfire_Plugin_FirePhpt.f _Zend_Wildfire_Plugin_FirePhp_TableMessaget)e UZend_Wildfire_Plugin_FirePhp_Messagetd ;Zend_Wildfire_Exceptiont&c OZend_Wildfire_Channel_HttpHeaderstb Zend_Viewta -Zend_View_Streamt` 5Zend_View_Helper_Urlt_ AZend_View_Helper_Translatet^ AZend_View_Helper_ServerUrlt)] UZend_View_Helper_RenderToPlaceholdert!\ EZend_View_Helper_Placeholdert*[ WZend_View_Helper_Placeholder_Registryt4Z kZend_View_Helper_Placeholder_Registry_Exceptiont+Y YZend_View_Helper_Placeholder_Containert6X oZend_View_Helper_Placeholder_Container_Standalonet5W mZend_View_Helper_Placeholder_Container_Exceptiont4V kZend_View_Helper_Placeholder_Container_Abstractt!U EZend_View_Helper_PartialLooptT =Zend_View_Helper_Partialt'S QZend_View_Helper_Partial_Exceptiont'R QZend_View_Helper_PaginationControlt Q CZend_View_Helper_Navigationt(P SZend_View_Helper_Navigation_Sitemapt%O MZend_View_Helper_Navigation_Menut&N OZend_View_Helper_Navigation_Linkst/M aZend_View_Helper_Navigation_HelperAbstractt,L [Zend_View_Helper_Navigation_BreadcrumbstK ;Zend_View_Helper_LayouttJ 7Zend_View_Helper_Jsont"I GZend_View_Helper_InlineScriptt#H IZend_View_Helper_HtmlQuicktimetG ?Zend_View_Helper_HtmlPaget F CZend_View_Helper_HtmlObjecttE ?Zend_View_Helper_HtmlListtD AZend_View_Helper_HtmlFlasht!C EZend_View_Helper_HtmlElementtB AZend_View_Helper_HeadTitletA AZend_View_Helper_HeadStylet @ CZend_View_Helper_HeadScriptt? ?Zend_View_Helper_HeadMetat> ?Zend_View_Helper_HeadLinkt"= GZend_View_Helper_FormTextareat< ?Zend_View_Helper_FormTextt ; CZend_View_Helper_FormSubmitt : CZend_View_Helper_FormSelectt9 AZend_View_Helper_FormResett8 AZend_View_Helper_FormRadiot"7 GZend_View_Helper_FormPasswordt6 ?Zend_View_Helper_FormNotet'5 QZend_View_Helper_FormMultiCheckboxt4 AZend_View_Helper_FormLabelt3 AZend_View_Helper_FormImaget 2 CZend_View_Helper_FormHiddent1 ?Zend_View_Helper_FormFilet 0 CZend_View_Helper_FormErrorst!/ EZend_View_Helper_FormElementt". GZend_View_Helper_FormCheckboxt - CZend_View_Helper_FormButtont, 7Zend_View_Helper_Formt+ ?Zend_View_Helper_Fieldsett* =Zend_View_Helper_Doctypet!) EZend_View_Helper_DeclareVarst( 9Zend_View_Helper_Cyclet' =Zend_View_Helper_BaseUrlt& ;Zend_View_Helper_Actiont% ?Zend_View_Helper_Abstractt$ 3Zend_View_Exceptiont# 1Zend_View_Abstractt" %Zend_Versiont! 'Zend_Validatet  AZend_Validate_StringLengtht# IZend_Validate_Sitemap_Priorityt ?Zend_Validate_Sitemap_Loct" GZend_Validate_Sitemap_Lastmodt% MZend_Validate_Sitemap_Changefreqt 3Zend_Validate_Regext 9Zend_Validate_NotEmptyt 9Zend_Validate_LessThant -Zend_Validate_Ipt /Zend_Validate_Intt 7Zend_Validate_InArrayt ;Zend_Validate_Identicalt 1Zend_Validate_Ibant 9Zend_Validate_Hostnamet /Zend_Validate_Hext ?Zend_Validate_GreaterThant 3Zend_Validate_Floatt! EZend_Validate_File_WordCountt ?Zend_Validate_File_Uploadt ;Zend_Validate_File_Sizet ;Zend_Validate_File_Sha1t! EZend_Validate_File_NotExistst 
 CZend_Validate_File_MimeTypet	 9Zend_Validate_File_Md5t AZend_Validate_File_IsImaget$ KZend_Validate_File_IsCompressedt! EZend_Validate_File_ImageSizet ;Zend_Validate_File_Hasht   l  jN,kK*{Y;`A+}b9



{
W
*					u	\	=	#	],i;
Y6^5Y/\*{_F"b@                             !Z EZend_Cache_Backend_TwoLevelsuY ;Zend_Cache_Backend_TestuX ?Zend_Cache_Backend_Sqliteu!W EZend_Cache_Backend_MemcacheduV ;Zend_Cache_Backend_FileuU 9Zend_Cache_Backend_ApcuT Zend_AuthuS ?Zend_Auth_Storage_Sessionu$R KZend_Auth_Storage_NonPersistentu Q CZend_Auth_Storage_ExceptionuP -Zend_Auth_ResultuO 3Zend_Auth_ExceptionuN =Zend_Auth_Adapter_OpenIduM 9Zend_Auth_Adapter_LdapuL AZend_Auth_Adapter_InfoCarduK 9Zend_Auth_Adapter_Httpu)J UZend_Auth_Adapter_Http_Resolver_Fileu.I _Zend_Auth_Adapter_Http_Resolver_Exceptionu H CZend_Auth_Adapter_ExceptionuG =Zend_Auth_Adapter_DigestuF ?Zend_Auth_Adapter_DbTableuE -Zend_Applicationu#D IZend_Application_Resource_Viewu(C SZend_Application_Resource_Translateu&B OZend_Application_Resource_Sessionu%A MZend_Application_Resource_Routeru/@ aZend_Application_Resource_ResourceAbstractu)? UZend_Application_Resource_Navigationu&> OZend_Application_Resource_Modulesu%= MZend_Application_Resource_Localeu%< MZend_Application_Resource_Layoutu.; _Zend_Application_Resource_Frontcontrolleru(: SZend_Application_Resource_Exceptionu!9 EZend_Application_Resource_Dbu&8 OZend_Application_Module_Bootstrapu'7 QZend_Application_Module_Autoloaderu6 AZend_Application_Exceptionu)5 UZend_Application_Bootstrap_Exceptionu14 eZend_Application_Bootstrap_BootstrapAbstractu)3 UZend_Application_Bootstrap_Bootstrapu2 ?Zend_Amf_Value_TraitsInfou-1 ]Zend_Amf_Value_Messaging_RemotingMessageu*0 WZend_Amf_Value_Messaging_ErrorMessageu,/ [Zend_Amf_Value_Messaging_CommandMessageu*. WZend_Amf_Value_Messaging_AsyncMessageu-- ]Zend_Amf_Value_Messaging_ArrayCollectionu0, cZend_Amf_Value_Messaging_AcknowledgeMessageu-+ ]Zend_Amf_Value_Messaging_AbstractMessageu!* EZend_Amf_Value_MessageHeaderu) AZend_Amf_Value_MessageBodyu( =Zend_Amf_Value_ByteArrayu' AZend_Amf_Util_BinaryStreamu& +Zend_Amf_Serveru% ?Zend_Amf_Server_Exceptionu$ /Zend_Amf_Responseu# 9Zend_Amf_Response_Httpu" -Zend_Amf_Requestu! 7Zend_Amf_Request_Httpu  ?Zend_Amf_Parse_TypeLoaderu ?Zend_Amf_Parse_Serializeru# IZend_Amf_Parse_Resource_Streamu( SZend_Amf_Parse_Resource_MysqlResultu) UZend_Amf_Parse_Resource_MysqliResultu  CZend_Amf_Parse_OutputStreamu AZend_Amf_Parse_InputStreamu  CZend_Amf_Parse_Deserializeru# IZend_Amf_Parse_Amf3_Serializeru% MZend_Amf_Parse_Amf3_Deserializeru# IZend_Amf_Parse_Amf0_Serializeru% MZend_Amf_Parse_Amf0_Deserializeru 1Zend_Amf_Exceptionu 1Zend_Amf_Constantsu 9Zend_Amf_Auth_Abstractu  CZend_Amf_Adobe_Introspectoru AZend_Amf_Adobe_DbInspectoru 3Zend_Amf_Adobe_Authu Zend_Aclu 'Zend_Acl_Roleu 9Zend_Acl_Role_Registryu% MZend_Acl_Role_Registry_Exceptionu
 /Zend_Acl_Resourceu	 1Zend_Acl_Exceptionu /Zend_XmlRpc_Valuet =Zend_XmlRpc_Value_Structt =Zend_XmlRpc_Value_Stringt =Zend_XmlRpc_Value_Scalart 7Zend_XmlRpc_Value_Nilt ?Zend_XmlRpc_Value_Integert  CZend_XmlRpc_Value_Exceptiont =Zend_XmlRpc_Value_Doublet  AZend_XmlRpc_Value_DateTimet! EZend_XmlRpc_Value_Collectiont~ ?Zend_XmlRpc_Value_Booleant} =Zend_XmlRpc_Value_Base64t| ;Zend_XmlRpc_Value_Arrayt{ 1Zend_XmlRpc_Servertz ?Zend_XmlRpc_Server_Systemty =Zend_XmlRpc_Server_Faultt!x EZend_XmlRpc_Server_Exceptiontw =Zend_XmlRpc_Server_Cachetv 5Zend_XmlRpc_Responsetu ?Zend_XmlRpc_Response_Httptt 3Zend_XmlRpc_Requestts ?Zend_XmlRpc_Request_Stdintr =Zend_XmlRpc_Request_Httptq /Zend_XmlRpc_Faulttp 7Zend_XmlRpc_Exceptionto 1Zend_XmlRpc_Clientt   X  W[0c;_3k@



U
8
				y	M	PKPXz_8I|X<fC                              #D IZend_Feed_Reader_FeedInterfaceu$C KZend_Feed_Reader_EntryInterfaceu B CZend_Feed_Builder_Interfaceu A CZend_Db_Statement_Interfaceu)@ UZend_Crypt_Math_BigInteger_Interfaceu+? YZend_Controller_Router_Route_Interfaceu%> MZend_Controller_Router_Interfaceu)= UZend_Controller_Dispatcher_Interfaceu%< MZend_Controller_Action_Interfaceu; 5Zend_Captcha_Adapteru!: EZend_Cache_Backend_Interfaceu)9 UZend_Cache_Backend_ExtendedInterfaceu 8 CZend_Auth_Storage_Interfaceu 7 CZend_Auth_Adapter_Interfaceu.6 _Zend_Auth_Adapter_Http_Resolver_Interfaceu'5 QZend_Application_Resource_Resourceu44 kZend_Application_Bootstrap_ResourceBootstrapperu,3 [Zend_Application_Bootstrap_Bootstrapperu2 ;Zend_Acl_Role_Interfaceu 1 CZend_Acl_Resource_Interfaceu0 ?Zend_Acl_Assert_Interfaceu#/ IZend_Wildfire_Plugin_Interfacet$. KZend_Wildfire_Channel_Interfacet- 3Zend_View_Interfacet', QZend_View_Helper_Navigation_Helpert+ AZend_View_Helper_Interfacet* ;Zend_Validate_Interfacet3) iZend_Tool_Project_Profile_FileParser_Interfacet:( wZend_Tool_Project_Context_System_TopLevelRestrictablet5' mZend_Tool_Project_Context_System_NotOverwritablet/& aZend_Tool_Project_Context_System_Interfacet(% SZend_Tool_Project_Context_Interfacet+$ YZend_Tool_Framework_Registry_Interfacet2# gZend_Tool_Framework_Registry_EnabledInterfacet-" ]Zend_Tool_Framework_Provider_Pretendablet+! YZend_Tool_Framework_Provider_Interfacet.  _Zend_Tool_Framework_Provider_Interactablet; yZend_Tool_Framework_Provider_DocblockManifestInterfacet+ YZend_Tool_Framework_Metadata_Interfacet6 oZend_Tool_Framework_Manifest_ProviderManifestablet6 oZend_Tool_Framework_Manifest_MetadataManifestablet+ YZend_Tool_Framework_Manifest_Interfacet+ YZend_Tool_Framework_Manifest_Indexablet4 kZend_Tool_Framework_Manifest_ActionManifestablet8 sZend_Tool_Framework_Client_Storage_AdapterInterfacetD 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interfacet; yZend_Tool_Framework_Client_Interactive_OutputInterfacet: wZend_Tool_Framework_Client_Interactive_InputInterfacet) UZend_Tool_Framework_Action_Interfacet( SZend_Text_Table_Decorator_Interfacet /Zend_Tag_Taggablet& OZend_Soap_Wsdl_Strategy_Interfacet% MZend_Session_Validator_Interfacet' QZend_Session_SaveHandler_Interfacet 7Zend_Server_Interfacet4 kZend_Search_Lucene_Search_Highlighter_Interfacet! EZend_Search_Lucene_Interfacet3 iZend_Search_Lucene_Index_TermsStream_Interfacet$
 KZend_Queue_Stomp_FrameInterfacet0	 cZend_Queue_Stomp_Client_ConnectionInterfacet( SZend_Queue_Adapter_AdapterInterfacet ?Zend_Pdf_Filter_Interfacet& OZend_Pdf_ElementFactory_Interfacet, [Zend_Paginator_ScrollingStyle_Interfacet% MZend_Paginator_Adapter_Interfacet$ KZend_Memory_Container_Interfacet) UZend_Mail_Storage_Writable_Interfacet' QZend_Mail_Storage_Folder_Interfacet  =Zend_Mail_Part_Interfacet  CZend_Mail_Message_Interfacet!~ EZend_Log_Formatter_Interfacet} ?Zend_Log_Filter_Interfacet'| QZend_Loader_PluginLoader_Interfacet%{ MZend_Loader_Autoloader_Interfacet0z cZend_Ldap_Node_Schema_ObjectClass_Interfacet2y gZend_Ldap_Node_Schema_AttributeType_Interfacet,x [Zend_Ldap_Collection_Iterator_Interfacet3w iZend_InfoCard_Xml_Security_Transform_Interfacet(v SZend_InfoCard_Xml_KeyInfo_Interfacet(u SZend_InfoCard_Xml_Element_Interfacet*t WZend_InfoCard_Xml_Assertion_Interfacet-s ]Zend_InfoCard_Cipher_Symmetric_Interfacet7r qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interfacet7q qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interfacet+p YZend_InfoCard_Cipher_Pki_Rsa_Interfacet'o QZend_InfoCard_Cipher_Pki_Interfacet$n KZend_InfoCard_Adapter_Interfacet'm QZend_Http_Client_Adapter_Interfacet   b  _9^=*gCyGsD



h
J
2
						f	J	!RrGS4oGwM#[0
d6Z5
                              < =Zend_Crypt_DiffieHellmanu'; QZend_Crypt_DiffieHellman_Exceptionu!: EZend_Controller_Router_Routeu(9 SZend_Controller_Router_Route_Staticu'8 QZend_Controller_Router_Route_Regexu(7 SZend_Controller_Router_Route_Moduleu*6 WZend_Controller_Router_Route_Hostnameu'5 QZend_Controller_Router_Route_Chainu*4 WZend_Controller_Router_Route_Abstractu#3 IZend_Controller_Router_Rewriteu%2 MZend_Controller_Router_Exceptionu$1 KZend_Controller_Router_Abstractu*0 WZend_Controller_Response_HttpTestCaseu"/ GZend_Controller_Response_Httpu'. QZend_Controller_Response_Exceptionu!- EZend_Controller_Response_Cliu&, OZend_Controller_Response_Abstractu#+ IZend_Controller_Request_Simpleu)* UZend_Controller_Request_HttpTestCaseu!) EZend_Controller_Request_Httpu&( OZend_Controller_Request_Exceptionu&' OZend_Controller_Request_Apache404u%& MZend_Controller_Request_Abstractu&% OZend_Controller_Plugin_PutHandleru($ SZend_Controller_Plugin_ErrorHandleru"# GZend_Controller_Plugin_Brokeru'" QZend_Controller_Plugin_ActionStacku$! KZend_Controller_Plugin_Abstractu  7Zend_Controller_Frontu ?Zend_Controller_Exceptionu( SZend_Controller_Dispatcher_Standardu) UZend_Controller_Dispatcher_Exceptionu( SZend_Controller_Dispatcher_Abstractu 9Zend_Controller_Actionu( SZend_Controller_Action_HelperBrokeru6 oZend_Controller_Action_HelperBroker_PriorityStacku/ aZend_Controller_Action_Helper_ViewRendereru& OZend_Controller_Action_Helper_Urlu- ]Zend_Controller_Action_Helper_Redirectoru' QZend_Controller_Action_Helper_Jsonu1 eZend_Controller_Action_Helper_FlashMessengeru0 cZend_Controller_Action_Helper_ContextSwitchu< {Zend_Controller_Action_Helper_AutoCompleteScriptaculousu3 iZend_Controller_Action_Helper_AutoCompleteDojou8 sZend_Controller_Action_Helper_AutoComplete_Abstractu. _Zend_Controller_Action_Helper_AjaxContextu. _Zend_Controller_Action_Helper_ActionStacku+ YZend_Controller_Action_Helper_Abstractu% MZend_Controller_Action_Exceptionu 3Zend_Console_Getoptu"
 GZend_Console_Getopt_Exceptionu	 #Zend_Configu +Zend_Config_Xmlu 1Zend_Config_Writeru 9Zend_Config_Writer_Xmlu 9Zend_Config_Writer_Iniu =Zend_Config_Writer_Arrayu +Zend_Config_Iniu 7Zend_Config_Exceptionu$ KZend_CodeGenerator_Php_Propertyu1  eZend_CodeGenerator_Php_Property_DefaultValueu% MZend_CodeGenerator_Php_Parameteru"~ GZend_CodeGenerator_Php_Methodu,} [Zend_CodeGenerator_Php_Member_Containeru+| YZend_CodeGenerator_Php_Member_Abstractu { CZend_CodeGenerator_Php_Fileu%z MZend_CodeGenerator_Php_Exceptionu$y KZend_CodeGenerator_Php_Docblocku(x SZend_CodeGenerator_Php_Docblock_Tagu/w aZend_CodeGenerator_Php_Docblock_Tag_Returnu.v _Zend_CodeGenerator_Php_Docblock_Tag_Paramu0u cZend_CodeGenerator_Php_Docblock_Tag_Licenseu!t EZend_CodeGenerator_Php_Classu s CZend_CodeGenerator_Php_Bodyu$r KZend_CodeGenerator_Php_Abstractu!q EZend_CodeGenerator_Exceptionu p CZend_CodeGenerator_Abstractuo /Zend_Captcha_Wordun 9Zend_Captcha_ReCaptchaum 1Zend_Captcha_Imageul 3Zend_Captcha_Figletuk 9Zend_Captcha_Exceptionuj /Zend_Captcha_Dumbui /Zend_Captcha_Baseuh !Zend_Cacheug =Zend_Cache_Frontend_Pageuf AZend_Cache_Frontend_Outputu!e EZend_Cache_Frontend_Functionud =Zend_Cache_Frontend_Fileuc ?Zend_Cache_Frontend_Classub 5Zend_Cache_Exceptionua +Zend_Cache_Coreu` 1Zend_Cache_Backendu"_ GZend_Cache_Backend_ZendServeru(^ SZend_Cache_Backend_ZendServer_ShMemu'] QZend_Cache_Backend_ZendServer_Disku$\ KZend_Cache_Backend_ZendPlatformu[ ?Zend_Cache_Backend_Xcacheu   m  R+nWD$cG%pL(_6





l
K
4
				~	S	2	jK*
\?r>S(vP( W1xIvO$                  -) ]Zend_Dojo_Form_Element_ValidationTextBoxu'( QZend_Dojo_Form_Element_TimeTextBoxu#' IZend_Dojo_Form_Element_TextBoxu$& KZend_Dojo_Form_Element_Textareau(% SZend_Dojo_Form_Element_SubmitButtonu"$ GZend_Dojo_Form_Element_Slideru*# WZend_Dojo_Form_Element_SimpleTextareau'" QZend_Dojo_Form_Element_RadioButtonu+! YZend_Dojo_Form_Element_PasswordTextBoxu)  UZend_Dojo_Form_Element_NumberTextBoxu) UZend_Dojo_Form_Element_NumberSpinneru, [Zend_Dojo_Form_Element_HorizontalSlideru+ YZend_Dojo_Form_Element_FilteringSelectu" GZend_Dojo_Form_Element_Editoru& OZend_Dojo_Form_Element_DijitMultiu! EZend_Dojo_Form_Element_Dijitu' QZend_Dojo_Form_Element_DateTextBoxu+ YZend_Dojo_Form_Element_CurrencyTextBoxu$ KZend_Dojo_Form_Element_ComboBoxu$ KZend_Dojo_Form_Element_CheckBoxu" GZend_Dojo_Form_Element_Buttonu  CZend_Dojo_Form_DisplayGroupu* WZend_Dojo_Form_Decorator_TabContaineru, [Zend_Dojo_Form_Decorator_StackContaineru, [Zend_Dojo_Form_Decorator_SplitContaineru' QZend_Dojo_Form_Decorator_DijitFormu* WZend_Dojo_Form_Decorator_DijitElementu, [Zend_Dojo_Form_Decorator_DijitContaineru) UZend_Dojo_Form_Decorator_ContentPaneu- ]Zend_Dojo_Form_Decorator_BorderContaineru+ YZend_Dojo_Form_Decorator_AccordionPaneu0
 cZend_Dojo_Form_Decorator_AccordionContaineru	 3Zend_Dojo_Exceptionu )Zend_Dojo_Datau 5Zend_Dojo_BuildLayeru !Zend_Debugu Zend_Dbu 'Zend_Db_Tableu 5Zend_Db_Table_Selectu# IZend_Db_Table_Select_Exceptionu 5Zend_Db_Table_Rowsetu#  IZend_Db_Table_Rowset_Exceptionu" GZend_Db_Table_Rowset_Abstractu~ /Zend_Db_Table_Rowu } CZend_Db_Table_Row_Exceptionu| AZend_Db_Table_Row_Abstractu{ ;Zend_Db_Table_Exceptionuz =Zend_Db_Table_Definitionuy 9Zend_Db_Table_Abstractux /Zend_Db_Statementuw =Zend_Db_Statement_Sqlsrvu'v QZend_Db_Statement_Sqlsrv_Exceptionuu 7Zend_Db_Statement_Pdout ?Zend_Db_Statement_Pdo_Ocius ?Zend_Db_Statement_Pdo_Ibmur =Zend_Db_Statement_Oracleu'q QZend_Db_Statement_Oracle_Exceptionup =Zend_Db_Statement_Mysqliu'o QZend_Db_Statement_Mysqli_Exceptionu n CZend_Db_Statement_Exceptionum 7Zend_Db_Statement_Db2u$l KZend_Db_Statement_Db2_Exceptionuk )Zend_Db_Selectuj =Zend_Db_Select_Exceptionui -Zend_Db_Profileruh 9Zend_Db_Profiler_Queryug =Zend_Db_Profiler_Firebuguf AZend_Db_Profiler_Exceptionue %Zend_Db_Exprud /Zend_Db_Exceptionuc 9Zend_Db_Adapter_Sqlsrvu%b MZend_Db_Adapter_Sqlsrv_Exceptionua AZend_Db_Adapter_Pdo_Sqliteu` ?Zend_Db_Adapter_Pdo_Pgsqlu_ ;Zend_Db_Adapter_Pdo_Ociu^ ?Zend_Db_Adapter_Pdo_Mysqlu] ?Zend_Db_Adapter_Pdo_Mssqlu\ ;Zend_Db_Adapter_Pdo_Ibmu [ CZend_Db_Adapter_Pdo_Ibm_Idsu Z CZend_Db_Adapter_Pdo_Ibm_Db2u!Y EZend_Db_Adapter_Pdo_AbstractuX 9Zend_Db_Adapter_Oracleu%W MZend_Db_Adapter_Oracle_ExceptionuV 9Zend_Db_Adapter_Mysqliu%U MZend_Db_Adapter_Mysqli_ExceptionuT ?Zend_Db_Adapter_ExceptionuS 3Zend_Db_Adapter_Db2u"R GZend_Db_Adapter_Db2_ExceptionuQ =Zend_Db_Adapter_AbstractuP Zend_DateuO 3Zend_Date_ExceptionuN 5Zend_Date_DateObjectuM -Zend_Date_CitiesuL 'Zend_CurrencyuK ;Zend_Currency_ExceptionuJ !Zend_CryptuI )Zend_Crypt_RsauH 1Zend_Crypt_Rsa_KeyuG ?Zend_Crypt_Rsa_Key_PublicuF AZend_Crypt_Rsa_Key_PrivateuE +Zend_Crypt_MathuD ?Zend_Crypt_Math_ExceptionuC AZend_Crypt_Math_BigIntegeru#B IZend_Crypt_Math_BigInteger_Gmpu)A UZend_Crypt_Math_BigInteger_Exceptionu&@ OZend_Crypt_Math_BigInteger_Bcmathu? +Zend_Crypt_Hmacu> ?Zend_Crypt_Hmac_Exceptionu= 5Zend_Crypt_Exceptionu   h  {J}S%S0_3\/



b
2
						k	P	9	xW:f9c0n?_9 
dJ0`D&~]?%            & OZend_Filter_LocalizedToNormalizedu +Zend_Filter_Intu /Zend_Filter_Inputu 7Zend_Filter_Inflectoru =Zend_Filter_HtmlEntitiesu AZend_Filter_File_UpperCaseu ;Zend_Filter_File_Renameu
 AZend_Filter_File_LowerCaseu	 =Zend_Filter_File_Encryptu =Zend_Filter_File_Decryptu 7Zend_Filter_Exceptionu 3Zend_Filter_Encryptu  CZend_Filter_Encrypt_Opensslu AZend_Filter_Encrypt_Mcryptu +Zend_Filter_Diru 1Zend_Filter_Digitsu 3Zend_Filter_Decryptu  5Zend_Filter_Callbacku 5Zend_Filter_BaseNameu~ /Zend_Filter_Alphau} /Zend_Filter_Alnumu| 1Zend_File_Transferu!{ EZend_File_Transfer_Exceptionu$z KZend_File_Transfer_Adapter_Httpu(y SZend_File_Transfer_Adapter_Abstractux Zend_Feeduw 'Zend_Feed_Rssuv -Zend_Feed_Readeru"u GZend_Feed_Reader_FeedAbstractut ?Zend_Feed_Reader_Feed_Rssus AZend_Feed_Reader_Feed_Atomu3r iZend_Feed_Reader_Extension_WellFormedWeb_Entryu,q [Zend_Feed_Reader_Extension_Thread_Entryu0p cZend_Feed_Reader_Extension_Syndication_Feedu+o YZend_Feed_Reader_Extension_Slash_Entryu,n [Zend_Feed_Reader_Extension_Podcast_Feedu-m ]Zend_Feed_Reader_Extension_Podcast_Entryu,l [Zend_Feed_Reader_Extension_FeedAbstractu-k ]Zend_Feed_Reader_Extension_EntryAbstractu/j aZend_Feed_Reader_Extension_DublinCore_Feedu0i cZend_Feed_Reader_Extension_DublinCore_Entryu4h kZend_Feed_Reader_Extension_CreativeCommons_Feedu5g mZend_Feed_Reader_Extension_CreativeCommons_Entryu-f ]Zend_Feed_Reader_Extension_Content_Entryu)e UZend_Feed_Reader_Extension_Atom_Feedu*d WZend_Feed_Reader_Extension_Atom_Entryu#c IZend_Feed_Reader_EntryAbstractub AZend_Feed_Reader_Entry_Rssu a CZend_Feed_Reader_Entry_Atomu` 3Zend_Feed_Exceptionu_ 3Zend_Feed_Entry_Rssu^ 5Zend_Feed_Entry_Atomu] =Zend_Feed_Entry_Abstractu\ /Zend_Feed_Elementu[ /Zend_Feed_BuilderuZ =Zend_Feed_Builder_Headeru$Y KZend_Feed_Builder_Header_Itunesu X CZend_Feed_Builder_ExceptionuW ;Zend_Feed_Builder_EntryuV )Zend_Feed_AtomuU 1Zend_Feed_AbstractuT )Zend_ExceptionuS )Zend_Dom_QueryuR 7Zend_Dom_Query_ResultuQ =Zend_Dom_Query_Css2XpathuP 1Zend_Dom_ExceptionuO Zend_Dojou)N UZend_Dojo_View_Helper_VerticalSlideru,M [Zend_Dojo_View_Helper_ValidationTextBoxu&L OZend_Dojo_View_Helper_TimeTextBoxu"K GZend_Dojo_View_Helper_TextBoxu#J IZend_Dojo_View_Helper_Textareau'I QZend_Dojo_View_Helper_TabContaineru'H QZend_Dojo_View_Helper_SubmitButtonu)G UZend_Dojo_View_Helper_StackContaineru)F UZend_Dojo_View_Helper_SplitContaineru!E EZend_Dojo_View_Helper_Slideru)D UZend_Dojo_View_Helper_SimpleTextareau&C OZend_Dojo_View_Helper_RadioButtonu*B WZend_Dojo_View_Helper_PasswordTextBoxu(A SZend_Dojo_View_Helper_NumberTextBoxu(@ SZend_Dojo_View_Helper_NumberSpinneru+? YZend_Dojo_View_Helper_HorizontalSlideru> AZend_Dojo_View_Helper_Formu*= WZend_Dojo_View_Helper_FilteringSelectu!< EZend_Dojo_View_Helper_Editoru; AZend_Dojo_View_Helper_Dojou): UZend_Dojo_View_Helper_Dojo_Containeru)9 UZend_Dojo_View_Helper_DijitContaineru 8 CZend_Dojo_View_Helper_Dijitu&7 OZend_Dojo_View_Helper_DateTextBoxu&6 OZend_Dojo_View_Helper_CustomDijitu*5 WZend_Dojo_View_Helper_CurrencyTextBoxu&4 OZend_Dojo_View_Helper_ContentPaneu#3 IZend_Dojo_View_Helper_ComboBoxu#2 IZend_Dojo_View_Helper_CheckBoxu!1 EZend_Dojo_View_Helper_Buttonu*0 WZend_Dojo_View_Helper_BorderContaineru(/ SZend_Dojo_View_Helper_AccordionPaneu-. ]Zend_Dojo_View_Helper_AccordionContaineru- =Zend_Dojo_View_Exceptionu, )Zend_Dojo_Formu+ 9Zend_Dojo_Form_SubFormu** WZend_Dojo_Form_Element_VerticalSlideru   h  wU6pGqC]4wR1



z
X
,
				z	X	5	rJ$`=hL%e<nG`8jDkC                       ,y [Zend_Gdata_App_InvalidArgumentExceptionu!x EZend_Gdata_App_HttpExceptionu$w KZend_Gdata_App_FeedSourceParentu#v IZend_Gdata_App_FeedEntryParentuu 3Zend_Gdata_App_Feedut =Zend_Gdata_App_Extensionu!s EZend_Gdata_App_Extension_Uriu%r MZend_Gdata_App_Extension_Updatedu#q IZend_Gdata_App_Extension_Titleu"p GZend_Gdata_App_Extension_Textu%o MZend_Gdata_App_Extension_Summaryu&n OZend_Gdata_App_Extension_Subtitleu$m KZend_Gdata_App_Extension_Sourceu$l KZend_Gdata_App_Extension_Rightsu'k QZend_Gdata_App_Extension_Publishedu$j KZend_Gdata_App_Extension_Personu"i GZend_Gdata_App_Extension_Nameu"h GZend_Gdata_App_Extension_Logou"g GZend_Gdata_App_Extension_Linku f CZend_Gdata_App_Extension_Idu"e GZend_Gdata_App_Extension_Iconu'd QZend_Gdata_App_Extension_Generatoru#c IZend_Gdata_App_Extension_Emailu%b MZend_Gdata_App_Extension_Elementu$a KZend_Gdata_App_Extension_Editedu#` IZend_Gdata_App_Extension_Draftu%_ MZend_Gdata_App_Extension_Controlu)^ UZend_Gdata_App_Extension_Contributoru%] MZend_Gdata_App_Extension_Contentu&\ OZend_Gdata_App_Extension_Categoryu$[ KZend_Gdata_App_Extension_AuthoruZ =Zend_Gdata_App_ExceptionuY 5Zend_Gdata_App_Entryu,X [Zend_Gdata_App_CaptchaRequiredExceptionu#W IZend_Gdata_App_BaseMediaSourceuV 3Zend_Gdata_App_Baseu*U WZend_Gdata_App_BadMethodCallExceptionu!T EZend_Gdata_App_AuthExceptionuS Zend_FormuR /Zend_Form_SubFormuQ 3Zend_Form_ExceptionuP /Zend_Form_ElementuO ;Zend_Form_Element_XhtmluN AZend_Form_Element_TextareauM 9Zend_Form_Element_TextuL =Zend_Form_Element_SubmituK =Zend_Form_Element_SelectuJ ;Zend_Form_Element_ResetuI ;Zend_Form_Element_RadiouH AZend_Form_Element_Passwordu"G GZend_Form_Element_Multiselectu$F KZend_Form_Element_MultiCheckboxuE ;Zend_Form_Element_MultiuD ;Zend_Form_Element_ImageuC =Zend_Form_Element_HiddenuB 9Zend_Form_Element_HashuA 9Zend_Form_Element_Fileu @ CZend_Form_Element_Exceptionu? AZend_Form_Element_Checkboxu> ?Zend_Form_Element_Captchau= =Zend_Form_Element_Buttonu< 9Zend_Form_DisplayGroupu#; IZend_Form_Decorator_ViewScriptu#: IZend_Form_Decorator_ViewHelperu 9 CZend_Form_Decorator_Tooltipu(8 SZend_Form_Decorator_PrepareElementsu7 ?Zend_Form_Decorator_Labelu6 ?Zend_Form_Decorator_Imageu 5 CZend_Form_Decorator_HtmlTagu#4 IZend_Form_Decorator_FormErrorsu%3 MZend_Form_Decorator_FormElementsu2 =Zend_Form_Decorator_Formu1 =Zend_Form_Decorator_Fileu!0 EZend_Form_Decorator_Fieldsetu"/ GZend_Form_Decorator_Exceptionu. AZend_Form_Decorator_Errorsu$- KZend_Form_Decorator_DtDdWrapperu$, KZend_Form_Decorator_Descriptionu + CZend_Form_Decorator_Captchau%* MZend_Form_Decorator_Captcha_Wordu!) EZend_Form_Decorator_Callbacku!( EZend_Form_Decorator_Abstractu' #Zend_Filteru+& YZend_Filter_Word_UnderscoreToSeparatoru&% OZend_Filter_Word_UnderscoreToDashu+$ YZend_Filter_Word_UnderscoreToCamelCaseu*# WZend_Filter_Word_SeparatorToSeparatoru%" MZend_Filter_Word_SeparatorToDashu*! WZend_Filter_Word_SeparatorToCamelCaseu(  SZend_Filter_Word_Separator_Abstractu& OZend_Filter_Word_DashToUnderscoreu% MZend_Filter_Word_DashToSeparatoru% MZend_Filter_Word_DashToCamelCaseu+ YZend_Filter_Word_CamelCaseToUnderscoreu* WZend_Filter_Word_CamelCaseToSeparatoru% MZend_Filter_Word_CamelCaseToDashu 7Zend_Filter_StripTagsu ?Zend_Filter_StripNewlinesu 9Zend_Filter_StringTrimu ?Zend_Filter_StringToUpperu ?Zend_Filter_StringToLoweru 5Zend_Filter_RealPathu ;Zend_Filter_PregReplaceu& OZend_Filter_NormalizedToLocalizedu   _  ^Be4{Q jCk@


v
E
					l	N	6	vCS5R*^7_6|HzP(e>                                -X ]Zend_Gdata_Gapps_EmailListRecipientEntryu$W KZend_Gdata_Gapps_EmailListQueryu#V IZend_Gdata_Gapps_EmailListFeedu$U KZend_Gdata_Gapps_EmailListEntryuT +Zend_Gdata_FeeduS 5Zend_Gdata_ExtensionuR =Zend_Gdata_Extension_WhouQ AZend_Gdata_Extension_WhereuP ?Zend_Gdata_Extension_Whenu$O KZend_Gdata_Extension_Visibilityu&N OZend_Gdata_Extension_Transparencyu"M GZend_Gdata_Extension_Reminderu-L ]Zend_Gdata_Extension_RecurrenceExceptionu$K KZend_Gdata_Extension_Recurrenceu J CZend_Gdata_Extension_Ratingu'I QZend_Gdata_Extension_OriginalEventu0H cZend_Gdata_Extension_OpenSearchTotalResultsu.G _Zend_Gdata_Extension_OpenSearchStartIndexu0F cZend_Gdata_Extension_OpenSearchItemsPerPageu"E GZend_Gdata_Extension_FeedLinku*D WZend_Gdata_Extension_ExtendedPropertyu%C MZend_Gdata_Extension_EventStatusu#B IZend_Gdata_Extension_EntryLinku"A GZend_Gdata_Extension_Commentsu&@ OZend_Gdata_Extension_AttendeeTypeu(? SZend_Gdata_Extension_AttendeeStatusu> +Zend_Gdata_Exifu= 5Zend_Gdata_Exif_Feedu#< IZend_Gdata_Exif_Extension_Timeu#; IZend_Gdata_Exif_Extension_Tagsu$: KZend_Gdata_Exif_Extension_Modelu#9 IZend_Gdata_Exif_Extension_Makeu"8 GZend_Gdata_Exif_Extension_Isou,7 [Zend_Gdata_Exif_Extension_ImageUniqueIdu$6 KZend_Gdata_Exif_Extension_FStopu*5 WZend_Gdata_Exif_Extension_FocalLengthu$4 KZend_Gdata_Exif_Extension_Flashu'3 QZend_Gdata_Exif_Extension_Exposureu'2 QZend_Gdata_Exif_Extension_Distanceu1 7Zend_Gdata_Exif_Entryu0 -Zend_Gdata_Entryu/ 7Zend_Gdata_DublinCoreu*. WZend_Gdata_DublinCore_Extension_Titleu,- [Zend_Gdata_DublinCore_Extension_Subjectu+, YZend_Gdata_DublinCore_Extension_Rightsu.+ _Zend_Gdata_DublinCore_Extension_Publisheru-* ]Zend_Gdata_DublinCore_Extension_Languageu/) aZend_Gdata_DublinCore_Extension_Identifieru+( YZend_Gdata_DublinCore_Extension_Formatu0' cZend_Gdata_DublinCore_Extension_Descriptionu)& UZend_Gdata_DublinCore_Extension_Dateu,% [Zend_Gdata_DublinCore_Extension_Creatoru$ +Zend_Gdata_Docsu# 7Zend_Gdata_Docs_Queryu%" MZend_Gdata_Docs_DocumentListFeedu&! OZend_Gdata_Docs_DocumentListEntryu  9Zend_Gdata_ClientLoginu 3Zend_Gdata_Calendaru! EZend_Gdata_Calendar_ListFeedu" GZend_Gdata_Calendar_ListEntryu- ]Zend_Gdata_Calendar_Extension_WebContentu+ YZend_Gdata_Calendar_Extension_Timezoneu9 uZend_Gdata_Calendar_Extension_SendEventNotificationsu+ YZend_Gdata_Calendar_Extension_Selectedu+ YZend_Gdata_Calendar_Extension_QuickAddu' QZend_Gdata_Calendar_Extension_Linku) UZend_Gdata_Calendar_Extension_Hiddenu( SZend_Gdata_Calendar_Extension_Coloru. _Zend_Gdata_Calendar_Extension_AccessLevelu# IZend_Gdata_Calendar_EventQueryu" GZend_Gdata_Calendar_EventFeedu# IZend_Gdata_Calendar_EventEntryu -Zend_Gdata_Booksu! EZend_Gdata_Books_VolumeQueryu  CZend_Gdata_Books_VolumeFeedu! EZend_Gdata_Books_VolumeEntryu+ YZend_Gdata_Books_Extension_Viewabilityu- ]Zend_Gdata_Books_Extension_ThumbnailLinku&
 OZend_Gdata_Books_Extension_Reviewu+	 YZend_Gdata_Books_Extension_PreviewLinku( SZend_Gdata_Books_Extension_InfoLinku- ]Zend_Gdata_Books_Extension_Embeddabilityu) UZend_Gdata_Books_Extension_BooksLinku- ]Zend_Gdata_Books_Extension_BooksCategoryu. _Zend_Gdata_Books_Extension_AnnotationLinku$ KZend_Gdata_Books_CollectionFeedu% MZend_Gdata_Books_CollectionEntryu 1Zend_Gdata_AuthSubu  )Zend_Gdata_Appu$ KZend_Gdata_App_VersionExceptionu~ 3Zend_Gdata_App_Utilu#} IZend_Gdata_App_MediaFileSourceu| ?Zend_Gdata_App_MediaEntryu2{ gZend_Gdata_App_LoggingHttpClientAdapterSocketuz AZend_Gdata_App_IOExceptionu   `  S*`9oPzT/	|T8!




W
7
					b	1	l>N!gE)i=P%rEV'uL      &8 OZend_Gdata_Photos_Extension_Widthu'7 QZend_Gdata_Photos_Extension_Weightu(6 SZend_Gdata_Photos_Extension_Versionu%5 MZend_Gdata_Photos_Extension_Useru*4 WZend_Gdata_Photos_Extension_Timestampu*3 WZend_Gdata_Photos_Extension_Thumbnailu%2 MZend_Gdata_Photos_Extension_Sizeu)1 UZend_Gdata_Photos_Extension_Rotationu+0 YZend_Gdata_Photos_Extension_QuotaLimitu-/ ]Zend_Gdata_Photos_Extension_QuotaCurrentu). UZend_Gdata_Photos_Extension_Positionu(- SZend_Gdata_Photos_Extension_PhotoIdu3, iZend_Gdata_Photos_Extension_NumPhotosRemainingu*+ WZend_Gdata_Photos_Extension_NumPhotosu)* UZend_Gdata_Photos_Extension_Nicknameu%) MZend_Gdata_Photos_Extension_Nameu2( gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumu)' UZend_Gdata_Photos_Extension_Locationu#& IZend_Gdata_Photos_Extension_Idu'% QZend_Gdata_Photos_Extension_Heightu2$ gZend_Gdata_Photos_Extension_CommentingEnabledu-# ]Zend_Gdata_Photos_Extension_CommentCountu'" QZend_Gdata_Photos_Extension_Clientu)! UZend_Gdata_Photos_Extension_Checksumu*  WZend_Gdata_Photos_Extension_BytesUsedu( SZend_Gdata_Photos_Extension_AlbumIdu' QZend_Gdata_Photos_Extension_Accessu# IZend_Gdata_Photos_CommentEntryu! EZend_Gdata_Photos_AlbumQueryu  CZend_Gdata_Photos_AlbumFeedu! EZend_Gdata_Photos_AlbumEntryu 3Zend_Gdata_MimeFileu ?Zend_Gdata_MimeBodyStringu AZend_Gdata_MediaMimeStreamu -Zend_Gdata_Mediau 7Zend_Gdata_Media_Feedu* WZend_Gdata_Media_Extension_MediaTitleu. _Zend_Gdata_Media_Extension_MediaThumbnailu) UZend_Gdata_Media_Extension_MediaTextu0 cZend_Gdata_Media_Extension_MediaRestrictionu+ YZend_Gdata_Media_Extension_MediaRatingu+ YZend_Gdata_Media_Extension_MediaPlayeru- ]Zend_Gdata_Media_Extension_MediaKeywordsu) UZend_Gdata_Media_Extension_MediaHashu* WZend_Gdata_Media_Extension_MediaGroupu0 cZend_Gdata_Media_Extension_MediaDescriptionu+
 YZend_Gdata_Media_Extension_MediaCreditu.	 _Zend_Gdata_Media_Extension_MediaCopyrightu, [Zend_Gdata_Media_Extension_MediaContentu- ]Zend_Gdata_Media_Extension_MediaCategoryu 9Zend_Gdata_Media_Entryu AZend_Gdata_Kind_EventEntryu 7Zend_Gdata_HttpClientu* WZend_Gdata_HttpAdapterStreamingSocketu) UZend_Gdata_HttpAdapterStreamingProxyu /Zend_Gdata_Healthu  ;Zend_Gdata_Health_Queryu& OZend_Gdata_Health_ProfileListFeedu'~ QZend_Gdata_Health_ProfileListEntryu"} GZend_Gdata_Health_ProfileFeedu#| IZend_Gdata_Health_ProfileEntryu${ KZend_Gdata_Health_Extension_Ccruz )Zend_Gdata_Geouy 3Zend_Gdata_Geo_Feedu$x KZend_Gdata_Geo_Extension_GmlPosu&w OZend_Gdata_Geo_Extension_GmlPointu)v UZend_Gdata_Geo_Extension_GeoRssWhereuu 5Zend_Gdata_Geo_Entryut -Zend_Gdata_Gbaseu"s GZend_Gdata_Gbase_SnippetQueryu!r EZend_Gdata_Gbase_SnippetFeedu"q GZend_Gdata_Gbase_SnippetEntryup 9Zend_Gdata_Gbase_Queryuo AZend_Gdata_Gbase_ItemQueryun ?Zend_Gdata_Gbase_ItemFeedum AZend_Gdata_Gbase_ItemEntryul 7Zend_Gdata_Gbase_Feedu-k ]Zend_Gdata_Gbase_Extension_BaseAttributeuj 9Zend_Gdata_Gbase_Entryui -Zend_Gdata_Gappsuh AZend_Gdata_Gapps_UserQueryug ?Zend_Gdata_Gapps_UserFeeduf AZend_Gdata_Gapps_UserEntryu&e OZend_Gdata_Gapps_ServiceExceptionud 9Zend_Gdata_Gapps_Queryu#c IZend_Gdata_Gapps_NicknameQueryu"b GZend_Gdata_Gapps_NicknameFeedu#a IZend_Gdata_Gapps_NicknameEntryu%` MZend_Gdata_Gapps_Extension_Quotau(_ SZend_Gdata_Gapps_Extension_Nicknameu$^ KZend_Gdata_Gapps_Extension_Nameu%] MZend_Gdata_Gapps_Extension_Loginu)\ UZend_Gdata_Gapps_Extension_EmailListu[ 9Zend_Gdata_Gapps_Erroru-Z ]Zend_Gdata_Gapps_EmailListRecipientQueryu,Y [Zend_Gdata_Gapps_EmailListRecipientFeedu   [  oK(~T&`6S%e=



h
;
			~	R	%q?V)h;
O#qCwJj>yN'                             " GZend_Http_Client_Adapter_Testu$ KZend_Http_Client_Adapter_Socketu# IZend_Http_Client_Adapter_Proxyu' QZend_Http_Client_Adapter_Exceptionu" GZend_Http_Client_Adapter_Curlu !Zend_Gdatau 1Zend_Gdata_YouTubeu" GZend_Gdata_YouTube_VideoQueryu! EZend_Gdata_YouTube_VideoFeedu"
 GZend_Gdata_YouTube_VideoEntryu(	 SZend_Gdata_YouTube_UserProfileEntryu( SZend_Gdata_YouTube_SubscriptionFeedu) UZend_Gdata_YouTube_SubscriptionEntryu) UZend_Gdata_YouTube_PlaylistVideoFeedu* WZend_Gdata_YouTube_PlaylistVideoEntryu( SZend_Gdata_YouTube_PlaylistListFeedu) UZend_Gdata_YouTube_PlaylistListEntryu" GZend_Gdata_YouTube_MediaEntryu! EZend_Gdata_YouTube_InboxFeedu"  GZend_Gdata_YouTube_InboxEntryu) UZend_Gdata_YouTube_Extension_VideoIdu*~ WZend_Gdata_YouTube_Extension_Usernameu*} WZend_Gdata_YouTube_Extension_Uploadedu'| QZend_Gdata_YouTube_Extension_Tokenu({ SZend_Gdata_YouTube_Extension_Statusu,z [Zend_Gdata_YouTube_Extension_Statisticsu'y QZend_Gdata_YouTube_Extension_Stateu(x SZend_Gdata_YouTube_Extension_Schoolu-w ]Zend_Gdata_YouTube_Extension_ReleaseDateu.v _Zend_Gdata_YouTube_Extension_Relationshipu*u WZend_Gdata_YouTube_Extension_Recordedu&t OZend_Gdata_YouTube_Extension_Racyu-s ]Zend_Gdata_YouTube_Extension_QueryStringu)r UZend_Gdata_YouTube_Extension_Privateu*q WZend_Gdata_YouTube_Extension_Positionu/p aZend_Gdata_YouTube_Extension_PlaylistTitleu,o [Zend_Gdata_YouTube_Extension_PlaylistIdu,n [Zend_Gdata_YouTube_Extension_Occupationu)m UZend_Gdata_YouTube_Extension_NoEmbedu'l QZend_Gdata_YouTube_Extension_Musicu(k SZend_Gdata_YouTube_Extension_Moviesu-j ]Zend_Gdata_YouTube_Extension_MediaRatingu,i [Zend_Gdata_YouTube_Extension_MediaGroupu-h ]Zend_Gdata_YouTube_Extension_MediaCreditu.g _Zend_Gdata_YouTube_Extension_MediaContentu*f WZend_Gdata_YouTube_Extension_Locationu&e OZend_Gdata_YouTube_Extension_Linku*d WZend_Gdata_YouTube_Extension_LastNameu*c WZend_Gdata_YouTube_Extension_Hometownu)b UZend_Gdata_YouTube_Extension_Hobbiesu(a SZend_Gdata_YouTube_Extension_Genderu+` YZend_Gdata_YouTube_Extension_FirstNameu*_ WZend_Gdata_YouTube_Extension_Durationu-^ ]Zend_Gdata_YouTube_Extension_Descriptionu+] YZend_Gdata_YouTube_Extension_CountHintu)\ UZend_Gdata_YouTube_Extension_Controlu)[ UZend_Gdata_YouTube_Extension_Companyu'Z QZend_Gdata_YouTube_Extension_Booksu%Y MZend_Gdata_YouTube_Extension_Ageu)X UZend_Gdata_YouTube_Extension_AboutMeu#W IZend_Gdata_YouTube_ContactFeedu$V KZend_Gdata_YouTube_ContactEntryu#U IZend_Gdata_YouTube_CommentFeedu$T KZend_Gdata_YouTube_CommentEntryu$S KZend_Gdata_YouTube_ActivityFeedu%R MZend_Gdata_YouTube_ActivityEntryuQ ;Zend_Gdata_Spreadsheetsu*P WZend_Gdata_Spreadsheets_WorksheetFeedu+O YZend_Gdata_Spreadsheets_WorksheetEntryu,N [Zend_Gdata_Spreadsheets_SpreadsheetFeedu-M ]Zend_Gdata_Spreadsheets_SpreadsheetEntryu&L OZend_Gdata_Spreadsheets_ListQueryu%K MZend_Gdata_Spreadsheets_ListFeedu&J OZend_Gdata_Spreadsheets_ListEntryu/I aZend_Gdata_Spreadsheets_Extension_RowCountu-H ]Zend_Gdata_Spreadsheets_Extension_Customu/G aZend_Gdata_Spreadsheets_Extension_ColCountu+F YZend_Gdata_Spreadsheets_Extension_Cellu*E WZend_Gdata_Spreadsheets_DocumentQueryu&D OZend_Gdata_Spreadsheets_CellQueryu%C MZend_Gdata_Spreadsheets_CellFeedu&B OZend_Gdata_Spreadsheets_CellEntryuA -Zend_Gdata_Queryu@ /Zend_Gdata_Photosu ? CZend_Gdata_Photos_UserQueryu> AZend_Gdata_Photos_UserFeedu = CZend_Gdata_Photos_UserEntryu< AZend_Gdata_Photos_TagEntryu!; EZend_Gdata_Photos_PhotoQueryu : CZend_Gdata_Photos_PhotoFeedu!9 EZend_Gdata_Photos_PhotoEntryu   l  sX2
LwW.
`9tG


k
H

					{	\	9	gN<_B&rT7{Y* OcE.kW2oT4                    =Zend_Log_Filter_Suppressu~ =Zend_Log_Filter_Priorityu} ;Zend_Log_Filter_Messageu| 1Zend_Log_Exceptionu{ #Zend_Localeuz -Zend_Locale_Mathuy =Zend_Locale_Math_PhpMathux AZend_Locale_Math_Exceptionuw 1Zend_Locale_Formatuv 7Zend_Locale_Exceptionuu -Zend_Locale_Datau!t EZend_Locale_Data_Translationus #Zend_Loaderur =Zend_Loader_PluginLoaderu'q QZend_Loader_PluginLoader_Exceptionup 7Zend_Loader_Exceptionuo 9Zend_Loader_Autoloaderu$n KZend_Loader_Autoloader_Resourceum Zend_Ldapul )Zend_Ldap_Nodeuk 7Zend_Ldap_Node_Schemau#j IZend_Ldap_Node_Schema_OpenLdapu/i aZend_Ldap_Node_Schema_ObjectClass_OpenLdapu6h oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectoryug AZend_Ldap_Node_Schema_Itemu1f eZend_Ldap_Node_Schema_AttributeType_OpenLdapu8e sZend_Ldap_Node_Schema_AttributeType_ActiveDirectoryu*d WZend_Ldap_Node_Schema_ActiveDirectoryuc 9Zend_Ldap_Node_RootDseu$b KZend_Ldap_Node_RootDse_OpenLdapu&a OZend_Ldap_Node_RootDse_eDirectoryu+` YZend_Ldap_Node_RootDse_ActiveDirectoryu_ ?Zend_Ldap_Node_Collectionu$^ KZend_Ldap_Node_ChildrenIteratoru] ;Zend_Ldap_Node_Abstractu\ 9Zend_Ldap_Ldif_Encoderu[ -Zend_Ldap_FilteruZ ;Zend_Ldap_Filter_StringuY 3Zend_Ldap_Filter_OruX 5Zend_Ldap_Filter_NotuW 7Zend_Ldap_Filter_MaskuV =Zend_Ldap_Filter_LogicaluU AZend_Ldap_Filter_ExceptionuT 5Zend_Ldap_Filter_AnduS ?Zend_Ldap_Filter_AbstractuR 3Zend_Ldap_ExceptionuQ %Zend_Ldap_DnuP 3Zend_Ldap_ConverteruO 5Zend_Ldap_Collectionu*N WZend_Ldap_Collection_Iterator_DefaultuM 3Zend_Ldap_AttributeuL #Zend_LayoutuK 7Zend_Layout_Exceptionu)J UZend_Layout_Controller_Plugin_Layoutu0I cZend_Layout_Controller_Action_Helper_LayoutuH Zend_JsonuG -Zend_Json_ServeruF 5Zend_Json_Server_Smdu!E EZend_Json_Server_Smd_ServiceuD ?Zend_Json_Server_Responseu#C IZend_Json_Server_Response_HttpuB =Zend_Json_Server_Requestu"A GZend_Json_Server_Request_Httpu@ AZend_Json_Server_Exceptionu? 9Zend_Json_Server_Erroru> 9Zend_Json_Server_Cacheu= )Zend_Json_Expru< 3Zend_Json_Exceptionu; /Zend_Json_Encoderu: /Zend_Json_Decoderu9 'Zend_InfoCardu-8 ]Zend_InfoCard_Xml_SecurityTokenReferenceu7 AZend_InfoCard_Xml_Securityu)6 UZend_InfoCard_Xml_Security_Transformu45 kZend_InfoCard_Xml_Security_Transform_XmlExcC14Nu34 iZend_InfoCard_Xml_Security_Transform_Exceptionu<3 {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignatureu)2 UZend_InfoCard_Xml_Security_Exceptionu1 ?Zend_InfoCard_Xml_KeyInfou&0 OZend_InfoCard_Xml_KeyInfo_XmlDSigu&/ OZend_InfoCard_Xml_KeyInfo_Defaultu'. QZend_InfoCard_Xml_KeyInfo_Abstractu - CZend_InfoCard_Xml_Exceptionu#, IZend_InfoCard_Xml_EncryptedKeyu$+ KZend_InfoCard_Xml_EncryptedDatau+* YZend_InfoCard_Xml_EncryptedData_XmlEncu-) ]Zend_InfoCard_Xml_EncryptedData_Abstractu( ?Zend_InfoCard_Xml_Elementu ' CZend_InfoCard_Xml_Assertionu%& MZend_InfoCard_Xml_Assertion_Samlu% ;Zend_InfoCard_Exceptionu%$ MZend_InfoCard_Exception_Abstractu# 5Zend_InfoCard_Claimsu" 5Zend_InfoCard_Cipheru5! mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcu5  mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcu4 kZend_InfoCard_Cipher_Symmetric_Adapter_Abstractu) UZend_InfoCard_Cipher_Pki_Adapter_Rsau. _Zend_InfoCard_Cipher_Pki_Adapter_Abstractu# IZend_InfoCard_Cipher_Exceptionu$ KZend_InfoCard_Adapter_Exceptionu" GZend_InfoCard_Adapter_Defaultu 1Zend_Http_Responseu 3Zend_Http_Exceptionu 3Zend_Http_CookieJaru -Zend_Http_Cookieu -Zend_Http_Clientu AZend_Http_Client_Exceptionu   w	 {`@#~_E)\1vP/kF 





m
S
7
					x	Y	:	cG,uL0hL2bA a> hT/mCbD&	                   v 5Zend_Pdf_Action_Hideuu 7Zend_Pdf_Action_GoToRut 7Zend_Pdf_Action_GoToEus AZend_Pdf_Action_GoTo3DViewur 5Zend_Pdf_Action_GoTouq )Zend_Paginatoru*p WZend_Paginator_ScrollingStyle_Slidingu*o WZend_Paginator_ScrollingStyle_Jumpingu*n WZend_Paginator_ScrollingStyle_Elasticu&m OZend_Paginator_ScrollingStyle_Allul =Zend_Paginator_Exceptionu k CZend_Paginator_Adapter_Nullu$j KZend_Paginator_Adapter_Iteratoru)i UZend_Paginator_Adapter_DbTableSelectu$h KZend_Paginator_Adapter_DbSelectu!g EZend_Paginator_Adapter_Arrayuf #Zend_OpenIdue 5Zend_OpenId_Providerud ?Zend_OpenId_Provider_Useru&c OZend_OpenId_Provider_User_Sessionu!b EZend_OpenId_Provider_Storageu&a OZend_OpenId_Provider_Storage_Fileu` 7Zend_OpenId_Extensionu_ AZend_OpenId_Extension_Sregu^ 7Zend_OpenId_Exceptionu] 5Zend_OpenId_Consumeru!\ EZend_OpenId_Consumer_Storageu&[ OZend_OpenId_Consumer_Storage_FileuZ +Zend_NavigationuY 5Zend_Navigation_PageuX =Zend_Navigation_Page_UriuW =Zend_Navigation_Page_MvcuV ?Zend_Navigation_ExceptionuU ?Zend_Navigation_ContaineruT Zend_MimeuS )Zend_Mime_PartuR /Zend_Mime_MessageuQ 3Zend_Mime_ExceptionuP -Zend_Mime_DecodeuO #Zend_MemoryuN /Zend_Memory_ValueuM 3Zend_Memory_ManageruL 7Zend_Memory_ExceptionuK 7Zend_Memory_Containeru"J GZend_Memory_Container_Movableu!I EZend_Memory_Container_Lockedu!H EZend_Memory_AccessControlleruG 3Zend_Measure_WeightuF 3Zend_Measure_Volumeu%E MZend_Measure_Viscosity_Kinematicu#D IZend_Measure_Viscosity_DynamicuC 3Zend_Measure_TorqueuB /Zend_Measure_TimeuA =Zend_Measure_Temperatureu@ 1Zend_Measure_Speedu? 7Zend_Measure_Pressureu> 1Zend_Measure_Poweru= 3Zend_Measure_Numberu< 9Zend_Measure_Lightnessu; 3Zend_Measure_Lengthu: ?Zend_Measure_Illuminationu9 9Zend_Measure_Frequencyu8 1Zend_Measure_Forceu7 =Zend_Measure_Flow_Volumeu6 9Zend_Measure_Flow_Moleu5 9Zend_Measure_Flow_Massu4 9Zend_Measure_Exceptionu3 3Zend_Measure_Energyu2 5Zend_Measure_Densityu1 5Zend_Measure_Currentu 0 CZend_Measure_Cooking_Weightu / CZend_Measure_Cooking_Volumeu. =Zend_Measure_Capacitanceu- 3Zend_Measure_Binaryu, /Zend_Measure_Areau+ 1Zend_Measure_Angleu* ?Zend_Measure_Accelerationu) 7Zend_Measure_Abstractu( Zend_Mailu' =Zend_Mail_Transport_Smtpu!& EZend_Mail_Transport_Sendmailu"% GZend_Mail_Transport_Exceptionu!$ EZend_Mail_Transport_Abstractu# /Zend_Mail_Storageu'" QZend_Mail_Storage_Writable_Maildiru! 9Zend_Mail_Storage_Pop3u  9Zend_Mail_Storage_Mboxu ?Zend_Mail_Storage_Maildiru 9Zend_Mail_Storage_Imapu =Zend_Mail_Storage_Folderu" GZend_Mail_Storage_Folder_Mboxu% MZend_Mail_Storage_Folder_Maildiru  CZend_Mail_Storage_Exceptionu AZend_Mail_Storage_Abstractu ;Zend_Mail_Protocol_Smtpu' QZend_Mail_Protocol_Smtp_Auth_Plainu' QZend_Mail_Protocol_Smtp_Auth_Loginu) UZend_Mail_Protocol_Smtp_Auth_Crammd5u ;Zend_Mail_Protocol_Pop3u ;Zend_Mail_Protocol_Imapu! EZend_Mail_Protocol_Exceptionu  CZend_Mail_Protocol_Abstractu )Zend_Mail_Partu 3Zend_Mail_Part_Fileu /Zend_Mail_Messageu 9Zend_Mail_Message_Fileu 3Zend_Mail_Exceptionu Zend_Logu
 9Zend_Log_Writer_Syslogu	 9Zend_Log_Writer_Streamu 5Zend_Log_Writer_Nullu 5Zend_Log_Writer_Mocku 5Zend_Log_Writer_Mailu ;Zend_Log_Writer_Firebugu 1Zend_Log_Writer_Dbu =Zend_Log_Writer_Abstractu 9Zend_Log_Formatter_Xmlu ?Zend_Log_Formatter_Simpleu  AZend_Log_Formatter_Firebugu   e  }_=yY=%rO*}f@X.



|
]
<
					t	I	 }W7xV:{Q)}dN6Q|:AS             6[ oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanu7Z qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicu;Y yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicu5X mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldu2W gZend_Pdf_Resource_Font_Simple_Standard_Symbolu<V {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueuAU Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliqueu9T uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldu5S mZend_Pdf_Resource_Font_Simple_Standard_Helveticau:R wZend_Pdf_Resource_Font_Simple_Standard_CourierObliqueu>Q Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliqueu7P qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldu3O iZend_Pdf_Resource_Font_Simple_Standard_Courieru)N UZend_Pdf_Resource_Font_Simple_Parsedu2M gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypeu*L WZend_Pdf_Resource_Font_FontDescriptoru%K MZend_Pdf_Resource_Font_Extractedu#J IZend_Pdf_Resource_Font_CidFontu,I [Zend_Pdf_Resource_Font_CidFont_TrueTypeu3H iZend_Pdf_RecursivelyIteratableObjectsContaineruG +Zend_Pdf_ParseruF 'Zend_Pdf_PageuE -Zend_Pdf_OutlineuD ;Zend_Pdf_Outline_LoadeduC =Zend_Pdf_Outline_CreateduB /Zend_Pdf_NameTreeuA )Zend_Pdf_Imageu@ 'Zend_Pdf_Fontu ? CZend_Pdf_Filter_Compressionu$> KZend_Pdf_Filter_Compression_Lzwu&= OZend_Pdf_Filter_Compression_Flateu< =Zend_Pdf_Filter_AsciiHexu; ;Zend_Pdf_Filter_Ascii85u": GZend_Pdf_FileParserDataSourceu)9 UZend_Pdf_FileParserDataSource_Stringu'8 QZend_Pdf_FileParserDataSource_Fileu7 3Zend_Pdf_FileParseru6 ?Zend_Pdf_FileParser_Imageu"5 GZend_Pdf_FileParser_Image_Pngu4 =Zend_Pdf_FileParser_Fontu&3 OZend_Pdf_FileParser_Font_OpenTypeu/2 aZend_Pdf_FileParser_Font_OpenType_TrueTypeu1 1Zend_Pdf_Exceptionu0 ;Zend_Pdf_ElementFactoryu"/ GZend_Pdf_ElementFactory_Proxyu. -Zend_Pdf_Elementu- ;Zend_Pdf_Element_Stringu#, IZend_Pdf_Element_String_Binaryu+ ;Zend_Pdf_Element_Streamu* AZend_Pdf_Element_Referenceu%) MZend_Pdf_Element_Reference_Tableu'( QZend_Pdf_Element_Reference_Contextu' ;Zend_Pdf_Element_Objectu#& IZend_Pdf_Element_Object_Streamu% =Zend_Pdf_Element_Numericu$ 7Zend_Pdf_Element_Nullu# 7Zend_Pdf_Element_Nameu " CZend_Pdf_Element_Dictionaryu! =Zend_Pdf_Element_Booleanu  9Zend_Pdf_Element_Arrayu 5Zend_Pdf_Destinationu ?Zend_Pdf_Destination_Zoomu! EZend_Pdf_Destination_Unknownu AZend_Pdf_Destination_Namedu' QZend_Pdf_Destination_FitVerticallyu& OZend_Pdf_Destination_FitRectangleu) UZend_Pdf_Destination_FitHorizontallyu2 gZend_Pdf_Destination_FitBoundingBoxVerticallyu4 kZend_Pdf_Destination_FitBoundingBoxHorizontallyu( SZend_Pdf_Destination_FitBoundingBoxu =Zend_Pdf_Destination_Fitu" GZend_Pdf_Destination_Explicitu )Zend_Pdf_Coloru 1Zend_Pdf_Color_Rgbu 3Zend_Pdf_Color_Htmlu =Zend_Pdf_Color_GrayScaleu 3Zend_Pdf_Color_Cmyku 'Zend_Pdf_Cmapu AZend_Pdf_Cmap_TrimmedTableu! EZend_Pdf_Cmap_SegmentToDeltau AZend_Pdf_Cmap_ByteEncodingu&
 OZend_Pdf_Cmap_ByteEncoding_Staticu	 3Zend_Pdf_Annotationu =Zend_Pdf_Annotation_Textu =Zend_Pdf_Annotation_Linku' QZend_Pdf_Annotation_FileAttachmentu +Zend_Pdf_Actionu 3Zend_Pdf_Action_URIu ;Zend_Pdf_Action_Unknownu 7Zend_Pdf_Action_Transu 9Zend_Pdf_Action_Threadu  AZend_Pdf_Action_SubmitFormu 7Zend_Pdf_Action_Soundu ~ CZend_Pdf_Action_SetOCGStateu} ?Zend_Pdf_Action_ResetFormu| ?Zend_Pdf_Action_Renditionu{ 7Zend_Pdf_Action_Nameduz 7Zend_Pdf_Action_Movieuy 9Zend_Pdf_Action_Launchux AZend_Pdf_Action_JavaScriptuw AZend_Pdf_Action_ImportDatau   b  oJ+v\>'}T)|X-_3




e
F
3
				x	V	4	~[1kM}Aq5p2d6kF%X+                                                 += YZend_Search_Lucene_Index_SegmentMergeru)< UZend_Search_Lucene_Index_SegmentInfou'; QZend_Search_Lucene_Index_FieldInfou(: SZend_Search_Lucene_Index_DocsFilteru.9 _Zend_Search_Lucene_Index_DictionaryLoaderu!8 EZend_Search_Lucene_FSMActionu7 9Zend_Search_Lucene_FSMu6 =Zend_Search_Lucene_Fieldu!5 EZend_Search_Lucene_Exceptionu 4 CZend_Search_Lucene_Documentu%3 MZend_Search_Lucene_Document_Xlsxu%2 MZend_Search_Lucene_Document_Pptxu(1 SZend_Search_Lucene_Document_OpenXmlu%0 MZend_Search_Lucene_Document_Htmlu*/ WZend_Search_Lucene_Document_Exceptionu%. MZend_Search_Lucene_Document_Docxu,- [Zend_Search_Lucene_Analysis_TokenFilteru6, oZend_Search_Lucene_Analysis_TokenFilter_StopWordsu7+ qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsu:* wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8u6) oZend_Search_Lucene_Analysis_TokenFilter_LowerCaseu&( OZend_Search_Lucene_Analysis_Tokenu)' UZend_Search_Lucene_Analysis_Analyzeru0& cZend_Search_Lucene_Analysis_Analyzer_Commonu8% sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumuI$ Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitiveu5# mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8uF" Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitiveu8! sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumuI  Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitiveu5 mZend_Search_Lucene_Analysis_Analyzer_Common_TextuF Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitiveu 7Zend_Search_Exceptionu -Zend_Rest_Serveru AZend_Rest_Server_Exceptionu +Zend_Rest_Routeu 3Zend_Rest_Exceptionu 5Zend_Rest_Controlleru -Zend_Rest_Clientu ;Zend_Rest_Client_Resultu& OZend_Rest_Client_Result_Exceptionu AZend_Rest_Client_Exceptionu 'Zend_Registryu =Zend_Reflection_Propertyu ?Zend_Reflection_Parameteru 9Zend_Reflection_Methodu =Zend_Reflection_Functionu 5Zend_Reflection_Fileu ?Zend_Reflection_Extensionu ?Zend_Reflection_Exceptionu =Zend_Reflection_Docblocku!
 EZend_Reflection_Docblock_Tagu(	 SZend_Reflection_Docblock_Tag_Returnu' QZend_Reflection_Docblock_Tag_Paramu 7Zend_Reflection_Classu !Zend_Queueu 9Zend_Queue_Stomp_Frameu ;Zend_Queue_Stomp_Clientu' QZend_Queue_Stomp_Client_Connectionu 1Zend_Queue_Messageu# IZend_Queue_Message_PlatformJobu   CZend_Queue_Message_Iteratoru 5Zend_Queue_Exceptionu(~ SZend_Queue_Adapter_PlatformJobQueueu} ;Zend_Queue_Adapter_Nullu!| EZend_Queue_Adapter_Memcachequ{ 7Zend_Queue_Adapter_Dbu z CZend_Queue_Adapter_Db_Queueu"y GZend_Queue_Adapter_Db_Messageux =Zend_Queue_Adapter_Arrayu'w QZend_Queue_Adapter_AdapterAbstractu v CZend_Queue_Adapter_Activemquu -Zend_ProgressBarut AZend_ProgressBar_Exceptionus =Zend_ProgressBar_Adapteru$r KZend_ProgressBar_Adapter_JsPushu$q KZend_ProgressBar_Adapter_JsPullu'p QZend_ProgressBar_Adapter_Exceptionu%o MZend_ProgressBar_Adapter_Consoleun Zend_Pdfu!m EZend_Pdf_UpdateInfoContainerul -Zend_Pdf_Traileruk ;Zend_Pdf_Trailer_Keeperuj AZend_Pdf_Trailer_Generatorui +Zend_Pdf_Targetuh )Zend_Pdf_Styleug 7Zend_Pdf_StringParseruf /Zend_Pdf_Resourceu#e IZend_Pdf_Resource_ImageFactoryud ;Zend_Pdf_Resource_Imageu!c EZend_Pdf_Resource_Image_Tiffu b CZend_Pdf_Resource_Image_Pngu!a EZend_Pdf_Resource_Image_Jpegu` 9Zend_Pdf_Resource_Fontu!_ EZend_Pdf_Resource_Font_Type0u"^ GZend_Pdf_Resource_Font_Simpleu+] YZend_Pdf_Resource_Font_Simple_Standardu8\ sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsu   X  W1Q(c5p4X+



h
6
					N	W(n6	K0rM([7}`;b>a8          % MZend_Service_Amazon_Ec2_Responseu# IZend_Service_Amazon_Ec2_Regionu$ KZend_Service_Amazon_Ec2_Keypairu% MZend_Service_Amazon_Ec2_Instanceu- ]Zend_Service_Amazon_Ec2_Instance_Windowsu. _Zend_Service_Amazon_Ec2_Instance_Reservedu" GZend_Service_Amazon_Ec2_Imageu& OZend_Service_Amazon_Ec2_Exceptionu& OZend_Service_Amazon_Ec2_Elasticipu  CZend_Service_Amazon_Ec2_Ebsu' QZend_Service_Amazon_Ec2_CloudWatchu.
 _Zend_Service_Amazon_Ec2_Availabilityzonesu%	 MZend_Service_Amazon_Ec2_Abstractu' QZend_Service_Amazon_CustomerReviewu$ KZend_Service_Amazon_Accessoriesu! EZend_Service_Amazon_Abstractu 5Zend_Service_Akismetu 7Zend_Service_Abstractu 9Zend_Server_Reflectionu' QZend_Server_Reflection_ReturnValueu% MZend_Server_Reflection_Prototypeu%  MZend_Server_Reflection_Parameteru  CZend_Server_Reflection_Nodeu"~ GZend_Server_Reflection_Methodu$} KZend_Server_Reflection_Functionu-| ]Zend_Server_Reflection_Function_Abstractu%{ MZend_Server_Reflection_Exceptionu!z EZend_Server_Reflection_Classu!y EZend_Server_Method_Prototypeu!x EZend_Server_Method_Parameteru"w GZend_Server_Method_Definitionu v CZend_Server_Method_Callbackuu 7Zend_Server_Exceptionut 9Zend_Server_Definitionus /Zend_Server_Cacheur 5Zend_Server_Abstractuq 1Zend_Search_Luceneu0p cZend_Search_Lucene_TermStreamsPriorityQueueu$o KZend_Search_Lucene_Storage_Fileu+n YZend_Search_Lucene_Storage_File_Memoryu/m aZend_Search_Lucene_Storage_File_Filesystemu)l UZend_Search_Lucene_Storage_Directoryu4k kZend_Search_Lucene_Storage_Directory_Filesystemu%j MZend_Search_Lucene_Search_Weightu*i WZend_Search_Lucene_Search_Weight_Termu,h [Zend_Search_Lucene_Search_Weight_Phraseu/g aZend_Search_Lucene_Search_Weight_MultiTermu+f YZend_Search_Lucene_Search_Weight_Emptyu-e ]Zend_Search_Lucene_Search_Weight_Booleanu)d UZend_Search_Lucene_Search_Similarityu1c eZend_Search_Lucene_Search_Similarity_Defaultu)b UZend_Search_Lucene_Search_QueryTokenu3a iZend_Search_Lucene_Search_QueryParserExceptionu1` eZend_Search_Lucene_Search_QueryParserContextu*_ WZend_Search_Lucene_Search_QueryParseru)^ UZend_Search_Lucene_Search_QueryLexeru'] QZend_Search_Lucene_Search_QueryHitu)\ UZend_Search_Lucene_Search_QueryEntryu.[ _Zend_Search_Lucene_Search_QueryEntry_Termu2Z gZend_Search_Lucene_Search_QueryEntry_Subqueryu0Y cZend_Search_Lucene_Search_QueryEntry_Phraseu$X KZend_Search_Lucene_Search_Queryu-W ]Zend_Search_Lucene_Search_Query_Wildcardu)V UZend_Search_Lucene_Search_Query_Termu*U WZend_Search_Lucene_Search_Query_Rangeu2T gZend_Search_Lucene_Search_Query_Preprocessingu7S qZend_Search_Lucene_Search_Query_Preprocessing_Termu9R uZend_Search_Lucene_Search_Query_Preprocessing_Phraseu8Q sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzyu+P YZend_Search_Lucene_Search_Query_Phraseu.O _Zend_Search_Lucene_Search_Query_MultiTermu2N gZend_Search_Lucene_Search_Query_Insignificantu*M WZend_Search_Lucene_Search_Query_Fuzzyu*L WZend_Search_Lucene_Search_Query_Emptyu,K [Zend_Search_Lucene_Search_Query_Booleanu2J gZend_Search_Lucene_Search_Highlighter_Defaultu:I wZend_Search_Lucene_Search_BooleanExpressionRecognizeruH =Zend_Search_Lucene_Proxyu%G MZend_Search_Lucene_PriorityQueueu/F aZend_Search_Lucene_Interface_MultiSearcheru#E IZend_Search_Lucene_LockManageru$D KZend_Search_Lucene_Index_Writeru0C cZend_Search_Lucene_Index_TermsPriorityQueueu&B OZend_Search_Lucene_Index_TermInfou"A GZend_Search_Lucene_Index_Termu+@ YZend_Search_Lucene_Index_SegmentWriteru8? sZend_Search_Lucene_Index_SegmentWriter_StreamWriteru:> wZend_Search_Lucene_Index_SegmentWriter_DocumentWriteru   c  _=c:d@cAZ3



j
K
+
					_	:	tJ*J{K^7Y. lH+
^7gE    &x OZend_Service_Yahoo_VideoResultSetu#w IZend_Service_Yahoo_VideoResultu!v EZend_Service_Yahoo_ResultSetuu ?Zend_Service_Yahoo_Resultu)t UZend_Service_Yahoo_PageDataResultSetu&s OZend_Service_Yahoo_PageDataResultu%r MZend_Service_Yahoo_NewsResultSetu"q GZend_Service_Yahoo_NewsResultu&p OZend_Service_Yahoo_LocalResultSetu#o IZend_Service_Yahoo_LocalResultu+n YZend_Service_Yahoo_InlinkDataResultSetu(m SZend_Service_Yahoo_InlinkDataResultu&l OZend_Service_Yahoo_ImageResultSetu#k IZend_Service_Yahoo_ImageResultuj =Zend_Service_Yahoo_Imageui 5Zend_Service_Twitteru h CZend_Service_Twitter_Searchu#g IZend_Service_Twitter_Exceptionuf ;Zend_Service_Technoratiu#e IZend_Service_Technorati_Weblogu"d GZend_Service_Technorati_Utilsu*c WZend_Service_Technorati_TagsResultSetu'b QZend_Service_Technorati_TagsResultu)a UZend_Service_Technorati_TagResultSetu&` OZend_Service_Technorati_TagResultu,_ [Zend_Service_Technorati_SearchResultSetu)^ UZend_Service_Technorati_SearchResultu&] OZend_Service_Technorati_ResultSetu#\ IZend_Service_Technorati_Resultu*[ WZend_Service_Technorati_KeyInfoResultu*Z WZend_Service_Technorati_GetInfoResultu&Y OZend_Service_Technorati_Exceptionu1X eZend_Service_Technorati_DailyCountsResultSetu.W _Zend_Service_Technorati_DailyCountsResultu,V [Zend_Service_Technorati_CosmosResultSetu)U UZend_Service_Technorati_CosmosResultu+T YZend_Service_Technorati_BlogInfoResultu#S IZend_Service_Technorati_AuthoruR ;Zend_Service_StrikeIronu(Q SZend_Service_StrikeIron_ZipCodeInfou2P gZend_Service_StrikeIron_USAddressVerificationu-O ]Zend_Service_StrikeIron_SalesUseTaxBasicu&N OZend_Service_StrikeIron_Exceptionu&M OZend_Service_StrikeIron_Decoratoru!L EZend_Service_StrikeIron_BaseuK ;Zend_Service_SlideShareu&J OZend_Service_SlideShare_SlideShowu&I OZend_Service_SlideShare_ExceptionuH 1Zend_Service_Simpyu$G KZend_Service_Simpy_WatchlistSetu*F WZend_Service_Simpy_WatchlistFilterSetu'E QZend_Service_Simpy_WatchlistFilteru!D EZend_Service_Simpy_WatchlistuC ?Zend_Service_Simpy_TagSetuB 9Zend_Service_Simpy_TaguA AZend_Service_Simpy_NoteSetu@ ;Zend_Service_Simpy_Noteu? AZend_Service_Simpy_LinkSetu!> EZend_Service_Simpy_LinkQueryu= ;Zend_Service_Simpy_Linku< 9Zend_Service_ReCaptchau$; KZend_Service_ReCaptcha_Responseu$: KZend_Service_ReCaptcha_MailHideu.9 _Zend_Service_ReCaptcha_MailHide_Exceptionu%8 MZend_Service_ReCaptcha_Exceptionu7 7Zend_Service_Nirvanixu#6 IZend_Service_Nirvanix_Responseu)5 UZend_Service_Nirvanix_Namespace_Imfsu)4 UZend_Service_Nirvanix_Namespace_Baseu$3 KZend_Service_Nirvanix_Exceptionu2 3Zend_Service_Flickru"1 GZend_Service_Flickr_ResultSetu0 AZend_Service_Flickr_Resultu/ ?Zend_Service_Flickr_Imageu. 9Zend_Service_Exceptionu- 9Zend_Service_Deliciousu&, OZend_Service_Delicious_SimplePostu$+ KZend_Service_Delicious_PostListu * CZend_Service_Delicious_Postu%) MZend_Service_Delicious_Exceptionu ( CZend_Service_Audioscrobbleru' 3Zend_Service_Amazonu& ;Zend_Service_Amazon_Sqsu&% OZend_Service_Amazon_Sqs_Exceptionu'$ QZend_Service_Amazon_SimilarProductu# 9Zend_Service_Amazon_S3u"" GZend_Service_Amazon_S3_Streamu%! MZend_Service_Amazon_S3_Exceptionu"  GZend_Service_Amazon_ResultSetu ?Zend_Service_Amazon_Queryu! EZend_Service_Amazon_OfferSetu ?Zend_Service_Amazon_Offeru& OZend_Service_Amazon_ListmaniaListu =Zend_Service_Amazon_Itemu ?Zend_Service_Amazon_Imageu" GZend_Service_Amazon_Exceptionu( SZend_Service_Amazon_EditorialReviewu ;Zend_Service_Amazon_Ec2u+ YZend_Service_Amazon_Ec2_Securitygroupsu   `  z[<~U6x_>\)lG&





\
-				s	K	Z3vL0gE)_2t>
j.Bd                          1X eZend_Tool_Framework_Loader_IncludePathLoaderuJW Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIteratoru(V SZend_Tool_Framework_Loader_Abstractu"U GZend_Tool_Framework_Exceptionu'T QZend_Tool_Framework_Client_Storageu1S eZend_Tool_Framework_Client_Storage_Directoryu(R SZend_Tool_Framework_Client_ResponseuDQ 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separatoru'P QZend_Tool_Framework_Client_Requestu9O uZend_Tool_Framework_Client_Interactive_InputResponseu8N sZend_Tool_Framework_Client_Interactive_InputRequestu8M sZend_Tool_Framework_Client_Interactive_InputHandleru)L UZend_Tool_Framework_Client_Exceptionu'K QZend_Tool_Framework_Client_ConsoleuDJ 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizeru0I cZend_Tool_Framework_Client_Console_Manifestu2H gZend_Tool_Framework_Client_Console_HelpSystemu6G oZend_Tool_Framework_Client_Console_ArgumentParseru&F OZend_Tool_Framework_Client_Configu(E SZend_Tool_Framework_Client_Abstractu*D WZend_Tool_Framework_Action_Repositoryu)C UZend_Tool_Framework_Action_Exceptionu$B KZend_Tool_Framework_Action_BaseuA 'Zend_TimeSyncu@ 1Zend_TimeSync_Sntpu? 9Zend_TimeSync_Protocolu> /Zend_TimeSync_Ntpu= ;Zend_TimeSync_Exceptionu< +Zend_Text_Tableu; 3Zend_Text_Table_Rowu: ?Zend_Text_Table_Exceptionu&9 OZend_Text_Table_Decorator_Unicodeu$8 KZend_Text_Table_Decorator_Asciiu7 9Zend_Text_Table_Columnu6 3Zend_Text_MultiByteu5 -Zend_Text_Figletu4 AZend_Text_Figlet_Exceptionu3 3Zend_Text_Exceptionu&2 OZend_Test_PHPUnit_Db_SimpleTesteru,1 [Zend_Test_PHPUnit_Db_Operation_Truncateu*0 WZend_Test_PHPUnit_Db_Operation_Insertu-/ ]Zend_Test_PHPUnit_Db_Operation_DeleteAllu*. WZend_Test_PHPUnit_Db_Metadata_Genericu#- IZend_Test_PHPUnit_Db_Exceptionu,, [Zend_Test_PHPUnit_Db_DataSet_QueryTableu.+ _Zend_Test_PHPUnit_Db_DataSet_QueryDataSetu0* cZend_Test_PHPUnit_Db_DataSet_DbTableDataSetu)) UZend_Test_PHPUnit_Db_DataSet_DbTableu*( WZend_Test_PHPUnit_Db_DataSet_DbRowsetu$' KZend_Test_PHPUnit_Db_Connectionu'& QZend_Test_PHPUnit_DatabaseTestCaseu)% UZend_Test_PHPUnit_ControllerTestCaseu0$ cZend_Test_PHPUnit_Constraint_ResponseHeaderu*# WZend_Test_PHPUnit_Constraint_Redirectu+" YZend_Test_PHPUnit_Constraint_Exceptionu*! WZend_Test_PHPUnit_Constraint_DomQueryu  7Zend_Test_DbStatementu 3Zend_Test_DbAdapteru /Zend_Tag_ItemListu 'Zend_Tag_Itemu 1Zend_Tag_Exceptionu )Zend_Tag_Cloudu =Zend_Tag_Cloud_Exceptionu! EZend_Tag_Cloud_Decorator_Tagu% MZend_Tag_Cloud_Decorator_HtmlTagu' QZend_Tag_Cloud_Decorator_HtmlCloudu' QZend_Tag_Cloud_Decorator_Exceptionu# IZend_Tag_Cloud_Decorator_Cloudu )Zend_Soap_Wsdlu/ aZend_Soap_Wsdl_Strategy_DefaultComplexTypeu& OZend_Soap_Wsdl_Strategy_Compositeu0 cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequenceu/ aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplexu$ KZend_Soap_Wsdl_Strategy_AnyTypeu% MZend_Soap_Wsdl_Strategy_Abstractu =Zend_Soap_Wsdl_Exceptionu -Zend_Soap_Serveru AZend_Soap_Server_Exceptionu
 -Zend_Soap_Clientu	 9Zend_Soap_Client_Localu AZend_Soap_Client_Exceptionu ;Zend_Soap_Client_DotNetu ;Zend_Soap_Client_Commonu 9Zend_Soap_AutoDiscoveru% MZend_Soap_AutoDiscover_Exceptionu %Zend_Sessionu) UZend_Session_Validator_HttpUserAgentu$ KZend_Session_Validator_Abstractu'  QZend_Session_SaveHandler_Exceptionu% MZend_Session_SaveHandler_DbTableu~ 9Zend_Session_Namespaceu} 9Zend_Session_Exceptionu| 7Zend_Session_Abstractu{ 1Zend_Service_Yahoou$z KZend_Service_Yahoo_WebResultSetu!y EZend_Service_Yahoo_WebResultu   I  vIc4Ln=rE


Y
&			~	J	vCzHsDk6J]Tf2                               A! Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectoryu2  gZend_Tool_Project_Context_Zf_UploadsDirectoryu0 cZend_Tool_Project_Context_Zf_TestsDirectoryu7 qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFileu@ Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectoryu1 eZend_Tool_Project_Context_Zf_TestLibraryFileu6 oZend_Tool_Project_Context_Zf_TestLibraryDirectoryu: wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFileu: wZend_Tool_Project_Context_Zf_TestApplicationDirectoryu@ Zend_Tool_Project_Context_Zf_TestApplicationControllerFileuE Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectoryu> Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFileu4 kZend_Tool_Project_Context_Zf_TemporaryDirectoryu3 iZend_Tool_Project_Context_Zf_SessionsDirectoryu8 sZend_Tool_Project_Context_Zf_SearchIndexesDirectoryu< {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectoryu8 sZend_Tool_Project_Context_Zf_PublicScriptsDirectoryu1 eZend_Tool_Project_Context_Zf_PublicIndexFileu7 qZend_Tool_Project_Context_Zf_PublicImagesDirectoryu1 eZend_Tool_Project_Context_Zf_PublicDirectoryu5 mZend_Tool_Project_Context_Zf_ProjectProviderFileu2 gZend_Tool_Project_Context_Zf_ModulesDirectoryu1 eZend_Tool_Project_Context_Zf_ModuleDirectoryu1
 eZend_Tool_Project_Context_Zf_ModelsDirectoryu+	 YZend_Tool_Project_Context_Zf_ModelFileu/ aZend_Tool_Project_Context_Zf_LogsDirectoryu2 gZend_Tool_Project_Context_Zf_LocalesDirectoryu2 gZend_Tool_Project_Context_Zf_LibraryDirectoryu2 gZend_Tool_Project_Context_Zf_LayoutsDirectoryu. _Zend_Tool_Project_Context_Zf_HtaccessFileu0 cZend_Tool_Project_Context_Zf_FormsDirectoryu* WZend_Tool_Project_Context_Zf_FormFileu- ]Zend_Tool_Project_Context_Zf_DbTableFileu2  gZend_Tool_Project_Context_Zf_DbTableDirectoryu/ aZend_Tool_Project_Context_Zf_DataDirectoryu6~ oZend_Tool_Project_Context_Zf_ControllersDirectoryu0} cZend_Tool_Project_Context_Zf_ControllerFileu2| gZend_Tool_Project_Context_Zf_ConfigsDirectoryu,{ [Zend_Tool_Project_Context_Zf_ConfigFileu0z cZend_Tool_Project_Context_Zf_CacheDirectoryu/y aZend_Tool_Project_Context_Zf_BootstrapFileu6x oZend_Tool_Project_Context_Zf_ApplicationDirectoryu7w qZend_Tool_Project_Context_Zf_ApplicationConfigFileu/v aZend_Tool_Project_Context_Zf_ApisDirectoryu.u _Zend_Tool_Project_Context_Zf_ActionMethodu@t Zend_Tool_Project_Context_System_ProjectProvidersDirectoryu8s sZend_Tool_Project_Context_System_ProjectProfileFileu6r oZend_Tool_Project_Context_System_ProjectDirectoryu)q UZend_Tool_Project_Context_Repositoryu.p _Zend_Tool_Project_Context_Filesystem_Fileu3o iZend_Tool_Project_Context_Filesystem_Directoryu2n gZend_Tool_Project_Context_Filesystem_Abstractu(m SZend_Tool_Project_Context_Exceptionu-l ]Zend_Tool_Project_Context_Content_Engineu3k iZend_Tool_Project_Context_Content_Engine_Phtmlu;j yZend_Tool_Project_Context_Content_Engine_CodeGeneratoru0i cZend_Tool_Framework_System_Provider_Versionu0h cZend_Tool_Framework_System_Provider_Phpinfou1g eZend_Tool_Framework_System_Provider_Manifestu(f SZend_Tool_Framework_System_Manifestu-e ]Zend_Tool_Framework_System_Action_Deleteu-d ]Zend_Tool_Framework_System_Action_Createu!c EZend_Tool_Framework_Registryu+b YZend_Tool_Framework_Registry_Exceptionu+a YZend_Tool_Framework_Provider_Signatureu,` [Zend_Tool_Framework_Provider_Repositoryu+_ YZend_Tool_Framework_Provider_Exceptionu*^ WZend_Tool_Framework_Provider_Abstractu&] OZend_Tool_Framework_Metadata_Toolu)\ UZend_Tool_Framework_Metadata_Dynamicu'[ QZend_Tool_Framework_Metadata_Basicu,Z [Zend_Tool_Framework_Manifest_Repositoryu+Y YZend_Tool_Framework_Manifest_Exceptionu   j  XZ)z=l?mB



w
P
-
				{	\	;		mI&iC&uJ(qN/_C!u\=jG1c>    7Zend_View_Helper_Formu
 ?Zend_View_Helper_Fieldsetu	 =Zend_View_Helper_Doctypeu! EZend_View_Helper_DeclareVarsu 9Zend_View_Helper_Cycleu =Zend_View_Helper_BaseUrlu ;Zend_View_Helper_Actionu ?Zend_View_Helper_Abstractu 3Zend_View_Exceptionu 1Zend_View_Abstractu %Zend_Versionu  'Zend_Validateu AZend_Validate_StringLengthu#~ IZend_Validate_Sitemap_Priorityu} ?Zend_Validate_Sitemap_Locu"| GZend_Validate_Sitemap_Lastmodu%{ MZend_Validate_Sitemap_Changefrequz 3Zend_Validate_Regexuy 9Zend_Validate_NotEmptyux 9Zend_Validate_LessThanuw -Zend_Validate_Ipuv /Zend_Validate_Intuu 7Zend_Validate_InArrayut ;Zend_Validate_Identicalus 1Zend_Validate_Ibanur 9Zend_Validate_Hostnameuq /Zend_Validate_Hexup ?Zend_Validate_GreaterThanuo 3Zend_Validate_Floatu!n EZend_Validate_File_WordCountum ?Zend_Validate_File_Uploadul ;Zend_Validate_File_Sizeuk ;Zend_Validate_File_Sha1u!j EZend_Validate_File_NotExistsu i CZend_Validate_File_MimeTypeuh 9Zend_Validate_File_Md5ug AZend_Validate_File_IsImageu$f KZend_Validate_File_IsCompressedu!e EZend_Validate_File_ImageSizeud ;Zend_Validate_File_Hashu!c EZend_Validate_File_FilesSizeu!b EZend_Validate_File_Extensionua ?Zend_Validate_File_Existsu'` QZend_Validate_File_ExcludeMimeTypeu(_ SZend_Validate_File_ExcludeExtensionu^ =Zend_Validate_File_Crc32u] =Zend_Validate_File_Countu\ ;Zend_Validate_Exceptionu[ AZend_Validate_EmailAddressuZ 5Zend_Validate_Digitsu"Y GZend_Validate_Db_RecordExistsu$X KZend_Validate_Db_NoRecordExistsuW ?Zend_Validate_Db_AbstractuV 1Zend_Validate_DateuU 3Zend_Validate_CcnumuT 7Zend_Validate_BetweenuS 7Zend_Validate_BarcodeuR AZend_Validate_Barcode_UpcAu Q CZend_Validate_Barcode_Ean13uP 3Zend_Validate_AlphauO 3Zend_Validate_AlnumuN 9Zend_Validate_AbstractuM Zend_UriuL 'Zend_Uri_HttpuK 1Zend_Uri_ExceptionuJ )Zend_TranslateuI 7Zend_Translate_PluraluH =Zend_Translate_ExceptionuG 9Zend_Translate_Adapteru!F EZend_Translate_Adapter_XmlTmu!E EZend_Translate_Adapter_XliffuD AZend_Translate_Adapter_TmxuC AZend_Translate_Adapter_TbxuB ?Zend_Translate_Adapter_QtuA AZend_Translate_Adapter_Iniu#@ IZend_Translate_Adapter_Gettextu? AZend_Translate_Adapter_Csvu!> EZend_Translate_Adapter_Arrayu$= KZend_Tool_Project_Provider_Viewu$< KZend_Tool_Project_Provider_Testu/; aZend_Tool_Project_Provider_ProjectProvideru': QZend_Tool_Project_Provider_Projectu'9 QZend_Tool_Project_Provider_Profileu&8 OZend_Tool_Project_Provider_Moduleu%7 MZend_Tool_Project_Provider_Modelu(6 SZend_Tool_Project_Provider_Manifestu$5 KZend_Tool_Project_Provider_Formu)4 UZend_Tool_Project_Provider_Exceptionu*3 WZend_Tool_Project_Provider_Controlleru&2 OZend_Tool_Project_Provider_Actionu(1 SZend_Tool_Project_Provider_Abstractu0 ?Zend_Tool_Project_Profileu'/ QZend_Tool_Project_Profile_Resourceu9. uZend_Tool_Project_Profile_Resource_SearchConstraintsu1- eZend_Tool_Project_Profile_Resource_Containeru=, }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilteru5+ mZend_Tool_Project_Profile_Iterator_ContextFilteru-* ]Zend_Tool_Project_Profile_FileParser_Xmlu() SZend_Tool_Project_Profile_Exceptionu ( CZend_Tool_Project_Exceptionu<' {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectoryu0& cZend_Tool_Project_Context_Zf_ViewsDirectoryu6% oZend_Tool_Project_Context_Zf_ViewScriptsDirectoryu0$ cZend_Tool_Project_Context_Zf_ViewScriptFileu6# oZend_Tool_Project_Context_Zf_ViewHelpersDirectoryu6" oZend_Tool_Project_Context_Zf_ViewFiltersDirectoryu   k  mK'nK(vT0\:L"



~
S
2
			b	3{X5vD}NbF$~cC" sQ3X9#uZ1
    %v MZend_Amf_Parse_Amf3_Deserializerv#u IZend_Amf_Parse_Amf0_Serializerv%t MZend_Amf_Parse_Amf0_Deserializervs 1Zend_Amf_Exceptionvr 1Zend_Amf_Constantsvq 9Zend_Amf_Auth_Abstractv p CZend_Amf_Adobe_Introspectorvo AZend_Amf_Adobe_DbInspectorvn 3Zend_Amf_Adobe_Authvm Zend_Aclvl 'Zend_Acl_Rolevk 9Zend_Acl_Role_Registryv%j MZend_Acl_Role_Registry_Exceptionvi /Zend_Acl_Resourcevh 1Zend_Acl_Exceptionvg /Zend_XmlRpc_Valueuf =Zend_XmlRpc_Value_Structue =Zend_XmlRpc_Value_Stringud =Zend_XmlRpc_Value_Scalaruc 7Zend_XmlRpc_Value_Nilub ?Zend_XmlRpc_Value_Integeru a CZend_XmlRpc_Value_Exceptionu` =Zend_XmlRpc_Value_Doubleu_ AZend_XmlRpc_Value_DateTimeu!^ EZend_XmlRpc_Value_Collectionu] ?Zend_XmlRpc_Value_Booleanu\ =Zend_XmlRpc_Value_Base64u[ ;Zend_XmlRpc_Value_ArrayuZ 1Zend_XmlRpc_ServeruY ?Zend_XmlRpc_Server_SystemuX =Zend_XmlRpc_Server_Faultu!W EZend_XmlRpc_Server_ExceptionuV =Zend_XmlRpc_Server_CacheuU 5Zend_XmlRpc_ResponseuT ?Zend_XmlRpc_Response_HttpuS 3Zend_XmlRpc_RequestuR ?Zend_XmlRpc_Request_StdinuQ =Zend_XmlRpc_Request_HttpuP /Zend_XmlRpc_FaultuO 7Zend_XmlRpc_ExceptionuN 1Zend_XmlRpc_Clientu#M IZend_XmlRpc_Client_ServerProxyu+L YZend_XmlRpc_Client_ServerIntrospectionu+K YZend_XmlRpc_Client_IntrospectExceptionu%J MZend_XmlRpc_Client_HttpExceptionu&I OZend_XmlRpc_Client_FaultExceptionu!H EZend_XmlRpc_Client_Exceptionu&G OZend_Wildfire_Protocol_JsonStreamu!F EZend_Wildfire_Plugin_FirePhpu.E _Zend_Wildfire_Plugin_FirePhp_TableMessageu)D UZend_Wildfire_Plugin_FirePhp_MessageuC ;Zend_Wildfire_Exceptionu&B OZend_Wildfire_Channel_HttpHeadersuA Zend_Viewu@ -Zend_View_Streamu? 5Zend_View_Helper_Urlu> AZend_View_Helper_Translateu= AZend_View_Helper_ServerUrlu)< UZend_View_Helper_RenderToPlaceholderu!; EZend_View_Helper_Placeholderu*: WZend_View_Helper_Placeholder_Registryu49 kZend_View_Helper_Placeholder_Registry_Exceptionu+8 YZend_View_Helper_Placeholder_Containeru67 oZend_View_Helper_Placeholder_Container_Standaloneu56 mZend_View_Helper_Placeholder_Container_Exceptionu45 kZend_View_Helper_Placeholder_Container_Abstractu!4 EZend_View_Helper_PartialLoopu3 =Zend_View_Helper_Partialu'2 QZend_View_Helper_Partial_Exceptionu'1 QZend_View_Helper_PaginationControlu 0 CZend_View_Helper_Navigationu(/ SZend_View_Helper_Navigation_Sitemapu%. MZend_View_Helper_Navigation_Menuu&- OZend_View_Helper_Navigation_Linksu/, aZend_View_Helper_Navigation_HelperAbstractu,+ [Zend_View_Helper_Navigation_Breadcrumbsu* ;Zend_View_Helper_Layoutu) 7Zend_View_Helper_Jsonu"( GZend_View_Helper_InlineScriptu#' IZend_View_Helper_HtmlQuicktimeu& ?Zend_View_Helper_HtmlPageu % CZend_View_Helper_HtmlObjectu$ ?Zend_View_Helper_HtmlListu# AZend_View_Helper_HtmlFlashu!" EZend_View_Helper_HtmlElementu! AZend_View_Helper_HeadTitleu  AZend_View_Helper_HeadStyleu  CZend_View_Helper_HeadScriptu ?Zend_View_Helper_HeadMetau ?Zend_View_Helper_HeadLinku" GZend_View_Helper_FormTextareau ?Zend_View_Helper_FormTextu  CZend_View_Helper_FormSubmitu  CZend_View_Helper_FormSelectu AZend_View_Helper_FormResetu AZend_View_Helper_FormRadiou" GZend_View_Helper_FormPasswordu ?Zend_View_Helper_FormNoteu' QZend_View_Helper_FormMultiCheckboxu AZend_View_Helper_FormLabelu AZend_View_Helper_FormImageu  CZend_View_Helper_FormHiddenu ?Zend_View_Helper_FormFileu  CZend_View_Helper_FormErrorsu! EZend_View_Helper_FormElementu" GZend_View_Helper_FormCheckboxu  CZend_View_Helper_FormButtonu   X  hFc)v@W6yR*



_
,
			t	W	-	l/o8
j<o:w:~W1h>w[3                                        % MZend_Controller_Router_Interfacev) UZend_Controller_Dispatcher_Interfacev% MZend_Controller_Action_Interfacev 5Zend_Captcha_Adapterv! EZend_Cache_Backend_Interfacev) UZend_Cache_Backend_ExtendedInterfacev  CZend_Auth_Storage_Interfacev  CZend_Auth_Adapter_Interfacev. _Zend_Auth_Adapter_Http_Resolver_Interfacev' QZend_Application_Resource_Resourcev4 kZend_Application_Bootstrap_ResourceBootstrapperv, [Zend_Application_Bootstrap_Bootstrapperv ;Zend_Acl_Role_Interfacev  CZend_Acl_Resource_Interfacev ?Zend_Acl_Assert_Interfacev# IZend_Wildfire_Plugin_Interfaceu$ KZend_Wildfire_Channel_Interfaceu 3Zend_View_Interfaceu'
 QZend_View_Helper_Navigation_Helperu	 AZend_View_Helper_Interfaceu ;Zend_Validate_Interfaceu3 iZend_Tool_Project_Profile_FileParser_Interfaceu: wZend_Tool_Project_Context_System_TopLevelRestrictableu5 mZend_Tool_Project_Context_System_NotOverwritableu/ aZend_Tool_Project_Context_System_Interfaceu( SZend_Tool_Project_Context_Interfaceu+ YZend_Tool_Framework_Registry_Interfaceu2 gZend_Tool_Framework_Registry_EnabledInterfaceu-  ]Zend_Tool_Framework_Provider_Pretendableu+ YZend_Tool_Framework_Provider_Interfaceu.~ _Zend_Tool_Framework_Provider_Interactableu;} yZend_Tool_Framework_Provider_DocblockManifestInterfaceu+| YZend_Tool_Framework_Metadata_Interfaceu6{ oZend_Tool_Framework_Manifest_ProviderManifestableu6z oZend_Tool_Framework_Manifest_MetadataManifestableu+y YZend_Tool_Framework_Manifest_Interfaceu+x YZend_Tool_Framework_Manifest_Indexableu4w kZend_Tool_Framework_Manifest_ActionManifestableu8v sZend_Tool_Framework_Client_Storage_AdapterInterfaceuDu 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interfaceu;t yZend_Tool_Framework_Client_Interactive_OutputInterfaceu:s wZend_Tool_Framework_Client_Interactive_InputInterfaceu)r UZend_Tool_Framework_Action_Interfaceu(q SZend_Text_Table_Decorator_Interfaceup /Zend_Tag_Taggableu&o OZend_Soap_Wsdl_Strategy_Interfaceu%n MZend_Session_Validator_Interfaceu'm QZend_Session_SaveHandler_Interfaceul 7Zend_Server_Interfaceu4k kZend_Search_Lucene_Search_Highlighter_Interfaceu!j EZend_Search_Lucene_Interfaceu3i iZend_Search_Lucene_Index_TermsStream_Interfaceu$h KZend_Queue_Stomp_FrameInterfaceu0g cZend_Queue_Stomp_Client_ConnectionInterfaceu(f SZend_Queue_Adapter_AdapterInterfaceue ?Zend_Pdf_Filter_Interfaceu&d OZend_Pdf_ElementFactory_Interfaceu,c [Zend_Paginator_ScrollingStyle_Interfaceu$b KZend_Paginator_AdapterAggregateu%a MZend_Paginator_Adapter_Interfaceu$` KZend_Memory_Container_Interfaceu)_ UZend_Mail_Storage_Writable_Interfaceu'^ QZend_Mail_Storage_Folder_Interfaceu] =Zend_Mail_Part_Interfaceu \ CZend_Mail_Message_Interfaceu![ EZend_Log_Formatter_InterfaceuZ ?Zend_Log_Filter_Interfaceu'Y QZend_Loader_PluginLoader_Interfaceu%X MZend_Loader_Autoloader_Interfaceu0W cZend_Ldap_Node_Schema_ObjectClass_Interfaceu2V gZend_Ldap_Node_Schema_AttributeType_Interfaceu,U [Zend_Ldap_Collection_Iterator_Interfaceu3T iZend_InfoCard_Xml_Security_Transform_Interfaceu(S SZend_InfoCard_Xml_KeyInfo_Interfaceu(R SZend_InfoCard_Xml_Element_Interfaceu*Q WZend_InfoCard_Xml_Assertion_Interfaceu-P ]Zend_InfoCard_Cipher_Symmetric_Interfaceu7O qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interfaceu7N qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interfaceu+M YZend_InfoCard_Cipher_Pki_Rsa_Interfaceu'L QZend_InfoCard_Cipher_Pki_Interfaceu$K KZend_InfoCard_Adapter_Interfaceu'J QZend_Http_Client_Adapter_InterfaceuI AZend_Gdata_App_MediaSourceu.H _Zend_Form_Decorator_Marker_File_Interfaceu"G GZend_Form_Decorator_InterfaceuF 7Zend_Filter_Interfaceu"E GZend_Filter_Encrypt_Interfaceu   g  nAsT: tCR!pM"



u
L
#				p	F	sAv]9yW7qK0pO<"yU0Y&V&                                           "] GZend_CodeGenerator_Php_Methodv,\ [Zend_CodeGenerator_Php_Member_Containerv+[ YZend_CodeGenerator_Php_Member_Abstractv Z CZend_CodeGenerator_Php_Filev%Y MZend_CodeGenerator_Php_Exceptionv$X KZend_CodeGenerator_Php_Docblockv(W SZend_CodeGenerator_Php_Docblock_Tagv/V aZend_CodeGenerator_Php_Docblock_Tag_Returnv.U _Zend_CodeGenerator_Php_Docblock_Tag_Paramv0T cZend_CodeGenerator_Php_Docblock_Tag_Licensev!S EZend_CodeGenerator_Php_Classv R CZend_CodeGenerator_Php_Bodyv$Q KZend_CodeGenerator_Php_Abstractv!P EZend_CodeGenerator_Exceptionv O CZend_CodeGenerator_AbstractvN /Zend_Captcha_WordvM 9Zend_Captcha_ReCaptchavL 1Zend_Captcha_ImagevK 3Zend_Captcha_FigletvJ 9Zend_Captcha_ExceptionvI /Zend_Captcha_DumbvH /Zend_Captcha_BasevG !Zend_CachevF =Zend_Cache_Frontend_PagevE AZend_Cache_Frontend_Outputv!D EZend_Cache_Frontend_FunctionvC =Zend_Cache_Frontend_FilevB ?Zend_Cache_Frontend_ClassvA 5Zend_Cache_Exceptionv@ +Zend_Cache_Corev? 1Zend_Cache_Backendv"> GZend_Cache_Backend_ZendServerv(= SZend_Cache_Backend_ZendServer_ShMemv'< QZend_Cache_Backend_ZendServer_Diskv$; KZend_Cache_Backend_ZendPlatformv: ?Zend_Cache_Backend_Xcachev!9 EZend_Cache_Backend_TwoLevelsv8 ;Zend_Cache_Backend_Testv7 ?Zend_Cache_Backend_Sqlitev!6 EZend_Cache_Backend_Memcachedv5 ;Zend_Cache_Backend_Filev4 9Zend_Cache_Backend_Apcv3 Zend_Authv2 ?Zend_Auth_Storage_Sessionv$1 KZend_Auth_Storage_NonPersistentv 0 CZend_Auth_Storage_Exceptionv/ -Zend_Auth_Resultv. 3Zend_Auth_Exceptionv- =Zend_Auth_Adapter_OpenIdv, 9Zend_Auth_Adapter_Ldapv+ AZend_Auth_Adapter_InfoCardv* 9Zend_Auth_Adapter_Httpv)) UZend_Auth_Adapter_Http_Resolver_Filev.( _Zend_Auth_Adapter_Http_Resolver_Exceptionv ' CZend_Auth_Adapter_Exceptionv& =Zend_Auth_Adapter_Digestv% ?Zend_Auth_Adapter_DbTablev$ -Zend_Applicationv## IZend_Application_Resource_Viewv(" SZend_Application_Resource_Translatev&! OZend_Application_Resource_Sessionv%  MZend_Application_Resource_Routerv/ aZend_Application_Resource_ResourceAbstractv) UZend_Application_Resource_Navigationv& OZend_Application_Resource_Modulesv% MZend_Application_Resource_Localev% MZend_Application_Resource_Layoutv. _Zend_Application_Resource_Frontcontrollerv( SZend_Application_Resource_Exceptionv! EZend_Application_Resource_Dbv& OZend_Application_Module_Bootstrapv' QZend_Application_Module_Autoloaderv AZend_Application_Exceptionv) UZend_Application_Bootstrap_Exceptionv1 eZend_Application_Bootstrap_BootstrapAbstractv) UZend_Application_Bootstrap_Bootstrapv ?Zend_Amf_Value_TraitsInfov- ]Zend_Amf_Value_Messaging_RemotingMessagev* WZend_Amf_Value_Messaging_ErrorMessagev, [Zend_Amf_Value_Messaging_CommandMessagev* WZend_Amf_Value_Messaging_AsyncMessagev- ]Zend_Amf_Value_Messaging_ArrayCollectionv0 cZend_Amf_Value_Messaging_AcknowledgeMessagev-
 ]Zend_Amf_Value_Messaging_AbstractMessagev!	 EZend_Amf_Value_MessageHeaderv AZend_Amf_Value_MessageBodyv =Zend_Amf_Value_ByteArrayv AZend_Amf_Util_BinaryStreamv +Zend_Amf_Serverv ?Zend_Amf_Server_Exceptionv /Zend_Amf_Responsev 9Zend_Amf_Response_Httpv -Zend_Amf_Requestv  7Zend_Amf_Request_Httpv ?Zend_Amf_Parse_TypeLoaderv~ ?Zend_Amf_Parse_Serializerv#} IZend_Amf_Parse_Resource_Streamv(| SZend_Amf_Parse_Resource_MysqlResultv){ UZend_Amf_Parse_Resource_MysqliResultv z CZend_Amf_Parse_OutputStreamvy AZend_Amf_Parse_InputStreamv x CZend_Amf_Parse_Deserializerv#w IZend_Amf_Parse_Amf3_Serializerv   f  lD&|hB&j.N#[/



i
K
#				|	S	)\7g@b6nDpN3	oN(yZ5iG$          C 9Zend_Db_Adapter_Sqlsrvv%B MZend_Db_Adapter_Sqlsrv_ExceptionvA AZend_Db_Adapter_Pdo_Sqlitev@ ?Zend_Db_Adapter_Pdo_Pgsqlv? ;Zend_Db_Adapter_Pdo_Ociv> ?Zend_Db_Adapter_Pdo_Mysqlv= ?Zend_Db_Adapter_Pdo_Mssqlv< ;Zend_Db_Adapter_Pdo_Ibmv ; CZend_Db_Adapter_Pdo_Ibm_Idsv : CZend_Db_Adapter_Pdo_Ibm_Db2v!9 EZend_Db_Adapter_Pdo_Abstractv8 9Zend_Db_Adapter_Oraclev%7 MZend_Db_Adapter_Oracle_Exceptionv6 9Zend_Db_Adapter_Mysqliv%5 MZend_Db_Adapter_Mysqli_Exceptionv4 ?Zend_Db_Adapter_Exceptionv3 3Zend_Db_Adapter_Db2v"2 GZend_Db_Adapter_Db2_Exceptionv1 =Zend_Db_Adapter_Abstractv0 Zend_Datev/ 3Zend_Date_Exceptionv. 5Zend_Date_DateObjectv- -Zend_Date_Citiesv, 'Zend_Currencyv+ ;Zend_Currency_Exceptionv* !Zend_Cryptv) )Zend_Crypt_Rsav( 1Zend_Crypt_Rsa_Keyv' ?Zend_Crypt_Rsa_Key_Publicv& AZend_Crypt_Rsa_Key_Privatev% +Zend_Crypt_Mathv$ ?Zend_Crypt_Math_Exceptionv# AZend_Crypt_Math_BigIntegerv#" IZend_Crypt_Math_BigInteger_Gmpv)! UZend_Crypt_Math_BigInteger_Exceptionv&  OZend_Crypt_Math_BigInteger_Bcmathv +Zend_Crypt_Hmacv ?Zend_Crypt_Hmac_Exceptionv 5Zend_Crypt_Exceptionv =Zend_Crypt_DiffieHellmanv' QZend_Crypt_DiffieHellman_Exceptionv! EZend_Controller_Router_Routev( SZend_Controller_Router_Route_Staticv' QZend_Controller_Router_Route_Regexv( SZend_Controller_Router_Route_Modulev* WZend_Controller_Router_Route_Hostnamev' QZend_Controller_Router_Route_Chainv* WZend_Controller_Router_Route_Abstractv# IZend_Controller_Router_Rewritev% MZend_Controller_Router_Exceptionv$ KZend_Controller_Router_Abstractv* WZend_Controller_Response_HttpTestCasev" GZend_Controller_Response_Httpv' QZend_Controller_Response_Exceptionv! EZend_Controller_Response_Cliv& OZend_Controller_Response_Abstractv# IZend_Controller_Request_Simplev)
 UZend_Controller_Request_HttpTestCasev!	 EZend_Controller_Request_Httpv& OZend_Controller_Request_Exceptionv& OZend_Controller_Request_Apache404v% MZend_Controller_Request_Abstractv& OZend_Controller_Plugin_PutHandlerv( SZend_Controller_Plugin_ErrorHandlerv" GZend_Controller_Plugin_Brokerv' QZend_Controller_Plugin_ActionStackv$ KZend_Controller_Plugin_Abstractv  7Zend_Controller_Frontv ?Zend_Controller_Exceptionv(~ SZend_Controller_Dispatcher_Standardv)} UZend_Controller_Dispatcher_Exceptionv(| SZend_Controller_Dispatcher_Abstractv{ 9Zend_Controller_Actionv(z SZend_Controller_Action_HelperBrokerv6y oZend_Controller_Action_HelperBroker_PriorityStackv/x aZend_Controller_Action_Helper_ViewRendererv&w OZend_Controller_Action_Helper_Urlv-v ]Zend_Controller_Action_Helper_Redirectorv'u QZend_Controller_Action_Helper_Jsonv1t eZend_Controller_Action_Helper_FlashMessengerv0s cZend_Controller_Action_Helper_ContextSwitchv<r {Zend_Controller_Action_Helper_AutoCompleteScriptaculousv3q iZend_Controller_Action_Helper_AutoCompleteDojov8p sZend_Controller_Action_Helper_AutoComplete_Abstractv.o _Zend_Controller_Action_Helper_AjaxContextv.n _Zend_Controller_Action_Helper_ActionStackv+m YZend_Controller_Action_Helper_Abstractv%l MZend_Controller_Action_Exceptionvk 3Zend_Console_Getoptv"j GZend_Console_Getopt_Exceptionvi #Zend_Configvh +Zend_Config_Xmlvg 1Zend_Config_Writervf 9Zend_Config_Writer_Xmlve 9Zend_Config_Writer_Inivd =Zend_Config_Writer_Arrayvc +Zend_Config_Inivb 7Zend_Config_Exceptionv$a KZend_CodeGenerator_Php_Propertyv1` eZend_CodeGenerator_Php_Property_DefaultValuev%_ MZend_CodeGenerator_Php_Parameterv2^ gZend_CodeGenerator_Php_Parameter_DefaultValuev   e  nU4g<mS4lE(w['



j
<
				_	9	j@a2_8xW&Y/\/g;e8               '( QZend_Dojo_View_Helper_SubmitButtonv)' UZend_Dojo_View_Helper_StackContainerv)& UZend_Dojo_View_Helper_SplitContainerv!% EZend_Dojo_View_Helper_Sliderv)$ UZend_Dojo_View_Helper_SimpleTextareav&# OZend_Dojo_View_Helper_RadioButtonv*" WZend_Dojo_View_Helper_PasswordTextBoxv(! SZend_Dojo_View_Helper_NumberTextBoxv(  SZend_Dojo_View_Helper_NumberSpinnerv+ YZend_Dojo_View_Helper_HorizontalSliderv AZend_Dojo_View_Helper_Formv* WZend_Dojo_View_Helper_FilteringSelectv! EZend_Dojo_View_Helper_Editorv AZend_Dojo_View_Helper_Dojov) UZend_Dojo_View_Helper_Dojo_Containerv) UZend_Dojo_View_Helper_DijitContainerv  CZend_Dojo_View_Helper_Dijitv& OZend_Dojo_View_Helper_DateTextBoxv& OZend_Dojo_View_Helper_CustomDijitv* WZend_Dojo_View_Helper_CurrencyTextBoxv& OZend_Dojo_View_Helper_ContentPanev# IZend_Dojo_View_Helper_ComboBoxv# IZend_Dojo_View_Helper_CheckBoxv! EZend_Dojo_View_Helper_Buttonv* WZend_Dojo_View_Helper_BorderContainerv( SZend_Dojo_View_Helper_AccordionPanev- ]Zend_Dojo_View_Helper_AccordionContainerv =Zend_Dojo_View_Exceptionv )Zend_Dojo_Formv 9Zend_Dojo_Form_SubFormv*
 WZend_Dojo_Form_Element_VerticalSliderv-	 ]Zend_Dojo_Form_Element_ValidationTextBoxv' QZend_Dojo_Form_Element_TimeTextBoxv# IZend_Dojo_Form_Element_TextBoxv$ KZend_Dojo_Form_Element_Textareav( SZend_Dojo_Form_Element_SubmitButtonv" GZend_Dojo_Form_Element_Sliderv* WZend_Dojo_Form_Element_SimpleTextareav' QZend_Dojo_Form_Element_RadioButtonv+ YZend_Dojo_Form_Element_PasswordTextBoxv)  UZend_Dojo_Form_Element_NumberTextBoxv) UZend_Dojo_Form_Element_NumberSpinnerv,~ [Zend_Dojo_Form_Element_HorizontalSliderv+} YZend_Dojo_Form_Element_FilteringSelectv"| GZend_Dojo_Form_Element_Editorv&{ OZend_Dojo_Form_Element_DijitMultiv!z EZend_Dojo_Form_Element_Dijitv'y QZend_Dojo_Form_Element_DateTextBoxv+x YZend_Dojo_Form_Element_CurrencyTextBoxv$w KZend_Dojo_Form_Element_ComboBoxv$v KZend_Dojo_Form_Element_CheckBoxv"u GZend_Dojo_Form_Element_Buttonv t CZend_Dojo_Form_DisplayGroupv*s WZend_Dojo_Form_Decorator_TabContainerv,r [Zend_Dojo_Form_Decorator_StackContainerv,q [Zend_Dojo_Form_Decorator_SplitContainerv'p QZend_Dojo_Form_Decorator_DijitFormv*o WZend_Dojo_Form_Decorator_DijitElementv,n [Zend_Dojo_Form_Decorator_DijitContainerv)m UZend_Dojo_Form_Decorator_ContentPanev-l ]Zend_Dojo_Form_Decorator_BorderContainerv+k YZend_Dojo_Form_Decorator_AccordionPanev0j cZend_Dojo_Form_Decorator_AccordionContainervi 3Zend_Dojo_Exceptionvh )Zend_Dojo_Datavg 5Zend_Dojo_BuildLayervf !Zend_Debugve Zend_Dbvd 'Zend_Db_Tablevc 5Zend_Db_Table_Selectv#b IZend_Db_Table_Select_Exceptionva 5Zend_Db_Table_Rowsetv#` IZend_Db_Table_Rowset_Exceptionv"_ GZend_Db_Table_Rowset_Abstractv^ /Zend_Db_Table_Rowv ] CZend_Db_Table_Row_Exceptionv\ AZend_Db_Table_Row_Abstractv[ ;Zend_Db_Table_ExceptionvZ =Zend_Db_Table_DefinitionvY 9Zend_Db_Table_AbstractvX /Zend_Db_StatementvW =Zend_Db_Statement_Sqlsrvv'V QZend_Db_Statement_Sqlsrv_ExceptionvU 7Zend_Db_Statement_PdovT ?Zend_Db_Statement_Pdo_OcivS ?Zend_Db_Statement_Pdo_IbmvR =Zend_Db_Statement_Oraclev'Q QZend_Db_Statement_Oracle_ExceptionvP =Zend_Db_Statement_Mysqliv'O QZend_Db_Statement_Mysqli_Exceptionv N CZend_Db_Statement_ExceptionvM 7Zend_Db_Statement_Db2v$L KZend_Db_Statement_Db2_ExceptionvK )Zend_Db_SelectvJ =Zend_Db_Select_ExceptionvI -Zend_Db_ProfilervH 9Zend_Db_Profiler_QueryvG =Zend_Db_Profiler_FirebugvF AZend_Db_Profiler_ExceptionvE %Zend_Db_ExprvD /Zend_Db_Exceptionv   j  ^.~gL5tS6b5_,



j
;
			}	[	5		{`F,\@"zY;!	xV4~O&yP"a<|V1                     =Zend_Form_Decorator_Formv =Zend_Form_Decorator_Filev! EZend_Form_Decorator_Fieldsetv" GZend_Form_Decorator_Exceptionv AZend_Form_Decorator_Errorsv$ KZend_Form_Decorator_DtDdWrapperv$ KZend_Form_Decorator_Descriptionv  CZend_Form_Decorator_Captchav%
 MZend_Form_Decorator_Captcha_Wordv!	 EZend_Form_Decorator_Callbackv! EZend_Form_Decorator_Abstractv #Zend_Filterv+ YZend_Filter_Word_UnderscoreToSeparatorv& OZend_Filter_Word_UnderscoreToDashv+ YZend_Filter_Word_UnderscoreToCamelCasev* WZend_Filter_Word_SeparatorToSeparatorv% MZend_Filter_Word_SeparatorToDashv* WZend_Filter_Word_SeparatorToCamelCasev(  SZend_Filter_Word_Separator_Abstractv& OZend_Filter_Word_DashToUnderscorev%~ MZend_Filter_Word_DashToSeparatorv%} MZend_Filter_Word_DashToCamelCasev+| YZend_Filter_Word_CamelCaseToUnderscorev*{ WZend_Filter_Word_CamelCaseToSeparatorv%z MZend_Filter_Word_CamelCaseToDashvy 7Zend_Filter_StripTagsvx ?Zend_Filter_StripNewlinesvw 9Zend_Filter_StringTrimvv ?Zend_Filter_StringToUppervu ?Zend_Filter_StringToLowervt 5Zend_Filter_RealPathvs ;Zend_Filter_PregReplacev&r OZend_Filter_NormalizedToLocalizedv&q OZend_Filter_LocalizedToNormalizedvp +Zend_Filter_Intvo /Zend_Filter_Inputvn 7Zend_Filter_Inflectorvm =Zend_Filter_HtmlEntitiesvl AZend_Filter_File_UpperCasevk ;Zend_Filter_File_Renamevj AZend_Filter_File_LowerCasevi =Zend_Filter_File_Encryptvh =Zend_Filter_File_Decryptvg 7Zend_Filter_Exceptionvf 3Zend_Filter_Encryptv e CZend_Filter_Encrypt_Opensslvd AZend_Filter_Encrypt_Mcryptvc +Zend_Filter_Dirvb 1Zend_Filter_Digitsva 3Zend_Filter_Decryptv` 5Zend_Filter_Callbackv_ 5Zend_Filter_BaseNamev^ /Zend_Filter_Alphav] /Zend_Filter_Alnumv\ 1Zend_File_Transferv![ EZend_File_Transfer_Exceptionv$Z KZend_File_Transfer_Adapter_Httpv(Y SZend_File_Transfer_Adapter_AbstractvX Zend_FeedvW 'Zend_Feed_RssvV -Zend_Feed_Readerv"U GZend_Feed_Reader_FeedAbstractvT ?Zend_Feed_Reader_Feed_RssvS AZend_Feed_Reader_Feed_Atomv3R iZend_Feed_Reader_Extension_WellFormedWeb_Entryv,Q [Zend_Feed_Reader_Extension_Thread_Entryv0P cZend_Feed_Reader_Extension_Syndication_Feedv+O YZend_Feed_Reader_Extension_Slash_Entryv,N [Zend_Feed_Reader_Extension_Podcast_Feedv-M ]Zend_Feed_Reader_Extension_Podcast_Entryv,L [Zend_Feed_Reader_Extension_FeedAbstractv-K ]Zend_Feed_Reader_Extension_EntryAbstractv/J aZend_Feed_Reader_Extension_DublinCore_Feedv0I cZend_Feed_Reader_Extension_DublinCore_Entryv4H kZend_Feed_Reader_Extension_CreativeCommons_Feedv5G mZend_Feed_Reader_Extension_CreativeCommons_Entryv-F ]Zend_Feed_Reader_Extension_Content_Entryv)E UZend_Feed_Reader_Extension_Atom_Feedv*D WZend_Feed_Reader_Extension_Atom_Entryv#C IZend_Feed_Reader_EntryAbstractvB AZend_Feed_Reader_Entry_Rssv A CZend_Feed_Reader_Entry_Atomv@ 3Zend_Feed_Exceptionv? 3Zend_Feed_Entry_Rssv> 5Zend_Feed_Entry_Atomv= =Zend_Feed_Entry_Abstractv< /Zend_Feed_Elementv; /Zend_Feed_Builderv: =Zend_Feed_Builder_Headerv$9 KZend_Feed_Builder_Header_Itunesv 8 CZend_Feed_Builder_Exceptionv7 ;Zend_Feed_Builder_Entryv6 )Zend_Feed_Atomv5 1Zend_Feed_Abstractv4 )Zend_Exceptionv3 )Zend_Dom_Queryv2 7Zend_Dom_Query_Resultv1 =Zend_Dom_Query_Css2Xpathv0 1Zend_Dom_Exceptionv/ Zend_Dojov). UZend_Dojo_View_Helper_VerticalSliderv,- [Zend_Dojo_View_Helper_ValidationTextBoxv&, OZend_Dojo_View_Helper_TimeTextBoxv"+ GZend_Dojo_View_Helper_TextBoxv#* IZend_Dojo_View_Helper_Textareav') QZend_Dojo_View_Helper_TabContainerv   f  jHjH%b:oP-X<




U
,					^	7	vP(Z4[3c< uCY/aH!vI                            +x YZend_Gdata_Calendar_Extension_QuickAddv'w QZend_Gdata_Calendar_Extension_Linkv)v UZend_Gdata_Calendar_Extension_Hiddenv(u SZend_Gdata_Calendar_Extension_Colorv.t _Zend_Gdata_Calendar_Extension_AccessLevelv#s IZend_Gdata_Calendar_EventQueryv"r GZend_Gdata_Calendar_EventFeedv#q IZend_Gdata_Calendar_EventEntryvp -Zend_Gdata_Booksv!o EZend_Gdata_Books_VolumeQueryv n CZend_Gdata_Books_VolumeFeedv!m EZend_Gdata_Books_VolumeEntryv+l YZend_Gdata_Books_Extension_Viewabilityv-k ]Zend_Gdata_Books_Extension_ThumbnailLinkv&j OZend_Gdata_Books_Extension_Reviewv+i YZend_Gdata_Books_Extension_PreviewLinkv(h SZend_Gdata_Books_Extension_InfoLinkv-g ]Zend_Gdata_Books_Extension_Embeddabilityv)f UZend_Gdata_Books_Extension_BooksLinkv-e ]Zend_Gdata_Books_Extension_BooksCategoryv.d _Zend_Gdata_Books_Extension_AnnotationLinkv$c KZend_Gdata_Books_CollectionFeedv%b MZend_Gdata_Books_CollectionEntryva 1Zend_Gdata_AuthSubv` )Zend_Gdata_Appv$_ KZend_Gdata_App_VersionExceptionv^ 3Zend_Gdata_App_Utilv#] IZend_Gdata_App_MediaFileSourcev\ ?Zend_Gdata_App_MediaEntryv2[ gZend_Gdata_App_LoggingHttpClientAdapterSocketvZ AZend_Gdata_App_IOExceptionv,Y [Zend_Gdata_App_InvalidArgumentExceptionv!X EZend_Gdata_App_HttpExceptionv$W KZend_Gdata_App_FeedSourceParentv#V IZend_Gdata_App_FeedEntryParentvU 3Zend_Gdata_App_FeedvT =Zend_Gdata_App_Extensionv!S EZend_Gdata_App_Extension_Uriv%R MZend_Gdata_App_Extension_Updatedv#Q IZend_Gdata_App_Extension_Titlev"P GZend_Gdata_App_Extension_Textv%O MZend_Gdata_App_Extension_Summaryv&N OZend_Gdata_App_Extension_Subtitlev$M KZend_Gdata_App_Extension_Sourcev$L KZend_Gdata_App_Extension_Rightsv'K QZend_Gdata_App_Extension_Publishedv$J KZend_Gdata_App_Extension_Personv"I GZend_Gdata_App_Extension_Namev"H GZend_Gdata_App_Extension_Logov"G GZend_Gdata_App_Extension_Linkv F CZend_Gdata_App_Extension_Idv"E GZend_Gdata_App_Extension_Iconv'D QZend_Gdata_App_Extension_Generatorv#C IZend_Gdata_App_Extension_Emailv%B MZend_Gdata_App_Extension_Elementv$A KZend_Gdata_App_Extension_Editedv#@ IZend_Gdata_App_Extension_Draftv%? MZend_Gdata_App_Extension_Controlv)> UZend_Gdata_App_Extension_Contributorv%= MZend_Gdata_App_Extension_Contentv&< OZend_Gdata_App_Extension_Categoryv$; KZend_Gdata_App_Extension_Authorv: =Zend_Gdata_App_Exceptionv9 5Zend_Gdata_App_Entryv,8 [Zend_Gdata_App_CaptchaRequiredExceptionv#7 IZend_Gdata_App_BaseMediaSourcev6 3Zend_Gdata_App_Basev*5 WZend_Gdata_App_BadMethodCallExceptionv!4 EZend_Gdata_App_AuthExceptionv3 Zend_Formv2 /Zend_Form_SubFormv1 3Zend_Form_Exceptionv0 /Zend_Form_Elementv/ ;Zend_Form_Element_Xhtmlv. AZend_Form_Element_Textareav- 9Zend_Form_Element_Textv, =Zend_Form_Element_Submitv+ =Zend_Form_Element_Selectv* ;Zend_Form_Element_Resetv) ;Zend_Form_Element_Radiov( AZend_Form_Element_Passwordv"' GZend_Form_Element_Multiselectv$& KZend_Form_Element_MultiCheckboxv% ;Zend_Form_Element_Multiv$ ;Zend_Form_Element_Imagev# =Zend_Form_Element_Hiddenv" 9Zend_Form_Element_Hashv! 9Zend_Form_Element_Filev   CZend_Form_Element_Exceptionv AZend_Form_Element_Checkboxv ?Zend_Form_Element_Captchav =Zend_Form_Element_Buttonv 9Zend_Form_DisplayGroupv# IZend_Form_Decorator_ViewScriptv# IZend_Form_Decorator_ViewHelperv  CZend_Form_Decorator_Tooltipv( SZend_Form_Decorator_PrepareElementsv ?Zend_Form_Decorator_Labelv ?Zend_Form_Decorator_Imagev  CZend_Form_Decorator_HtmlTagv# IZend_Form_Decorator_FormErrorsv% MZend_Form_Decorator_FormElementsv   b  e4[=%e2pB$oA



t
M
&
					u	N	%k7i?|T-sT'Z4\C$mN(zP(                                          Z )Zend_Gdata_GeovY 3Zend_Gdata_Geo_Feedv$X KZend_Gdata_Geo_Extension_GmlPosv&W OZend_Gdata_Geo_Extension_GmlPointv)V UZend_Gdata_Geo_Extension_GeoRssWherevU 5Zend_Gdata_Geo_EntryvT -Zend_Gdata_Gbasev"S GZend_Gdata_Gbase_SnippetQueryv!R EZend_Gdata_Gbase_SnippetFeedv"Q GZend_Gdata_Gbase_SnippetEntryvP 9Zend_Gdata_Gbase_QueryvO AZend_Gdata_Gbase_ItemQueryvN ?Zend_Gdata_Gbase_ItemFeedvM AZend_Gdata_Gbase_ItemEntryvL 7Zend_Gdata_Gbase_Feedv-K ]Zend_Gdata_Gbase_Extension_BaseAttributevJ 9Zend_Gdata_Gbase_EntryvI -Zend_Gdata_GappsvH AZend_Gdata_Gapps_UserQueryvG ?Zend_Gdata_Gapps_UserFeedvF AZend_Gdata_Gapps_UserEntryv&E OZend_Gdata_Gapps_ServiceExceptionvD 9Zend_Gdata_Gapps_Queryv#C IZend_Gdata_Gapps_NicknameQueryv"B GZend_Gdata_Gapps_NicknameFeedv#A IZend_Gdata_Gapps_NicknameEntryv%@ MZend_Gdata_Gapps_Extension_Quotav(? SZend_Gdata_Gapps_Extension_Nicknamev$> KZend_Gdata_Gapps_Extension_Namev%= MZend_Gdata_Gapps_Extension_Loginv)< UZend_Gdata_Gapps_Extension_EmailListv; 9Zend_Gdata_Gapps_Errorv-: ]Zend_Gdata_Gapps_EmailListRecipientQueryv,9 [Zend_Gdata_Gapps_EmailListRecipientFeedv-8 ]Zend_Gdata_Gapps_EmailListRecipientEntryv$7 KZend_Gdata_Gapps_EmailListQueryv#6 IZend_Gdata_Gapps_EmailListFeedv$5 KZend_Gdata_Gapps_EmailListEntryv4 +Zend_Gdata_Feedv3 5Zend_Gdata_Extensionv2 =Zend_Gdata_Extension_Whov1 AZend_Gdata_Extension_Wherev0 ?Zend_Gdata_Extension_Whenv$/ KZend_Gdata_Extension_Visibilityv&. OZend_Gdata_Extension_Transparencyv"- GZend_Gdata_Extension_Reminderv-, ]Zend_Gdata_Extension_RecurrenceExceptionv$+ KZend_Gdata_Extension_Recurrencev * CZend_Gdata_Extension_Ratingv') QZend_Gdata_Extension_OriginalEventv0( cZend_Gdata_Extension_OpenSearchTotalResultsv.' _Zend_Gdata_Extension_OpenSearchStartIndexv0& cZend_Gdata_Extension_OpenSearchItemsPerPagev"% GZend_Gdata_Extension_FeedLinkv*$ WZend_Gdata_Extension_ExtendedPropertyv%# MZend_Gdata_Extension_EventStatusv#" IZend_Gdata_Extension_EntryLinkv"! GZend_Gdata_Extension_Commentsv&  OZend_Gdata_Extension_AttendeeTypev( SZend_Gdata_Extension_AttendeeStatusv +Zend_Gdata_Exifv 5Zend_Gdata_Exif_Feedv# IZend_Gdata_Exif_Extension_Timev# IZend_Gdata_Exif_Extension_Tagsv$ KZend_Gdata_Exif_Extension_Modelv# IZend_Gdata_Exif_Extension_Makev" GZend_Gdata_Exif_Extension_Isov, [Zend_Gdata_Exif_Extension_ImageUniqueIdv$ KZend_Gdata_Exif_Extension_FStopv* WZend_Gdata_Exif_Extension_FocalLengthv$ KZend_Gdata_Exif_Extension_Flashv' QZend_Gdata_Exif_Extension_Exposurev' QZend_Gdata_Exif_Extension_Distancev 7Zend_Gdata_Exif_Entryv -Zend_Gdata_Entryv 7Zend_Gdata_DublinCorev* WZend_Gdata_DublinCore_Extension_Titlev, [Zend_Gdata_DublinCore_Extension_Subjectv+ YZend_Gdata_DublinCore_Extension_Rightsv. _Zend_Gdata_DublinCore_Extension_Publisherv-
 ]Zend_Gdata_DublinCore_Extension_Languagev/	 aZend_Gdata_DublinCore_Extension_Identifierv+ YZend_Gdata_DublinCore_Extension_Formatv0 cZend_Gdata_DublinCore_Extension_Descriptionv) UZend_Gdata_DublinCore_Extension_Datev, [Zend_Gdata_DublinCore_Extension_Creatorv +Zend_Gdata_Docsv 7Zend_Gdata_Docs_Queryv% MZend_Gdata_Docs_DocumentListFeedv& OZend_Gdata_Docs_DocumentListEntryv  9Zend_Gdata_ClientLoginv 3Zend_Gdata_Calendarv!~ EZend_Gdata_Calendar_ListFeedv"} GZend_Gdata_Calendar_ListEntryv-| ]Zend_Gdata_Calendar_Extension_WebContentv+{ YZend_Gdata_Calendar_Extension_Timezonev9z uZend_Gdata_Calendar_Extension_SendEventNotificationsv+y YZend_Gdata_Calendar_Extension_Selectedv   \  `6`AKa- iF$



s
H
				e	/	zQ$f5T+a<{Q(n=
\,^6                                        $6 KZend_Gdata_YouTube_ContactEntryv#5 IZend_Gdata_YouTube_CommentFeedv$4 KZend_Gdata_YouTube_CommentEntryv$3 KZend_Gdata_YouTube_ActivityFeedv%2 MZend_Gdata_YouTube_ActivityEntryv1 ;Zend_Gdata_Spreadsheetsv*0 WZend_Gdata_Spreadsheets_WorksheetFeedv+/ YZend_Gdata_Spreadsheets_WorksheetEntryv,. [Zend_Gdata_Spreadsheets_SpreadsheetFeedv-- ]Zend_Gdata_Spreadsheets_SpreadsheetEntryv&, OZend_Gdata_Spreadsheets_ListQueryv%+ MZend_Gdata_Spreadsheets_ListFeedv&* OZend_Gdata_Spreadsheets_ListEntryv/) aZend_Gdata_Spreadsheets_Extension_RowCountv-( ]Zend_Gdata_Spreadsheets_Extension_Customv/' aZend_Gdata_Spreadsheets_Extension_ColCountv+& YZend_Gdata_Spreadsheets_Extension_Cellv*% WZend_Gdata_Spreadsheets_DocumentQueryv&$ OZend_Gdata_Spreadsheets_CellQueryv%# MZend_Gdata_Spreadsheets_CellFeedv&" OZend_Gdata_Spreadsheets_CellEntryv! -Zend_Gdata_Queryv  /Zend_Gdata_Photosv  CZend_Gdata_Photos_UserQueryv AZend_Gdata_Photos_UserFeedv  CZend_Gdata_Photos_UserEntryv AZend_Gdata_Photos_TagEntryv! EZend_Gdata_Photos_PhotoQueryv  CZend_Gdata_Photos_PhotoFeedv! EZend_Gdata_Photos_PhotoEntryv& OZend_Gdata_Photos_Extension_Widthv' QZend_Gdata_Photos_Extension_Weightv( SZend_Gdata_Photos_Extension_Versionv% MZend_Gdata_Photos_Extension_Userv* WZend_Gdata_Photos_Extension_Timestampv* WZend_Gdata_Photos_Extension_Thumbnailv% MZend_Gdata_Photos_Extension_Sizev) UZend_Gdata_Photos_Extension_Rotationv+ YZend_Gdata_Photos_Extension_QuotaLimitv- ]Zend_Gdata_Photos_Extension_QuotaCurrentv) UZend_Gdata_Photos_Extension_Positionv( SZend_Gdata_Photos_Extension_PhotoIdv3 iZend_Gdata_Photos_Extension_NumPhotosRemainingv* WZend_Gdata_Photos_Extension_NumPhotosv)
 UZend_Gdata_Photos_Extension_Nicknamev%	 MZend_Gdata_Photos_Extension_Namev2 gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumv) UZend_Gdata_Photos_Extension_Locationv# IZend_Gdata_Photos_Extension_Idv' QZend_Gdata_Photos_Extension_Heightv2 gZend_Gdata_Photos_Extension_CommentingEnabledv- ]Zend_Gdata_Photos_Extension_CommentCountv' QZend_Gdata_Photos_Extension_Clientv) UZend_Gdata_Photos_Extension_Checksumv*  WZend_Gdata_Photos_Extension_BytesUsedv( SZend_Gdata_Photos_Extension_AlbumIdv'~ QZend_Gdata_Photos_Extension_Accessv#} IZend_Gdata_Photos_CommentEntryv!| EZend_Gdata_Photos_AlbumQueryv { CZend_Gdata_Photos_AlbumFeedv!z EZend_Gdata_Photos_AlbumEntryvy 3Zend_Gdata_MimeFilevx ?Zend_Gdata_MimeBodyStringvw AZend_Gdata_MediaMimeStreamvv -Zend_Gdata_Mediavu 7Zend_Gdata_Media_Feedv*t WZend_Gdata_Media_Extension_MediaTitlev.s _Zend_Gdata_Media_Extension_MediaThumbnailv)r UZend_Gdata_Media_Extension_MediaTextv0q cZend_Gdata_Media_Extension_MediaRestrictionv+p YZend_Gdata_Media_Extension_MediaRatingv+o YZend_Gdata_Media_Extension_MediaPlayerv-n ]Zend_Gdata_Media_Extension_MediaKeywordsv)m UZend_Gdata_Media_Extension_MediaHashv*l WZend_Gdata_Media_Extension_MediaGroupv0k cZend_Gdata_Media_Extension_MediaDescriptionv+j YZend_Gdata_Media_Extension_MediaCreditv.i _Zend_Gdata_Media_Extension_MediaCopyrightv,h [Zend_Gdata_Media_Extension_MediaContentv-g ]Zend_Gdata_Media_Extension_MediaCategoryvf 9Zend_Gdata_Media_Entryve AZend_Gdata_Kind_EventEntryvd 7Zend_Gdata_HttpClientv*c WZend_Gdata_HttpAdapterStreamingSocketv)b UZend_Gdata_HttpAdapterStreamingProxyva /Zend_Gdata_Healthv` ;Zend_Gdata_Health_Queryv&_ OZend_Gdata_Health_ProfileListFeedv'^ QZend_Gdata_Health_ProfileListEntryv"] GZend_Gdata_Health_ProfileFeedv#\ IZend_Gdata_Health_ProfileEntryv$[ KZend_Gdata_Health_Extension_Ccrv   \  X+pAb4pDY+



u
C
				_	4	`:Y-ub<y`G+M vY<S$\2                                    ) UZend_InfoCard_Xml_Security_Exceptionv ?Zend_InfoCard_Xml_KeyInfov& OZend_InfoCard_Xml_KeyInfo_XmlDSigv& OZend_InfoCard_Xml_KeyInfo_Defaultv' QZend_InfoCard_Xml_KeyInfo_Abstractv  CZend_InfoCard_Xml_Exceptionv# IZend_InfoCard_Xml_EncryptedKeyv$ KZend_InfoCard_Xml_EncryptedDatav+
 YZend_InfoCard_Xml_EncryptedData_XmlEncv-	 ]Zend_InfoCard_Xml_EncryptedData_Abstractv ?Zend_InfoCard_Xml_Elementv  CZend_InfoCard_Xml_Assertionv% MZend_InfoCard_Xml_Assertion_Samlv ;Zend_InfoCard_Exceptionv% MZend_InfoCard_Exception_Abstractv 5Zend_InfoCard_Claimsv 5Zend_InfoCard_Cipherv5 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcv5  mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcv4 kZend_InfoCard_Cipher_Symmetric_Adapter_Abstractv)~ UZend_InfoCard_Cipher_Pki_Adapter_Rsav.} _Zend_InfoCard_Cipher_Pki_Adapter_Abstractv#| IZend_InfoCard_Cipher_Exceptionv${ KZend_InfoCard_Adapter_Exceptionv"z GZend_InfoCard_Adapter_Defaultvy 1Zend_Http_Responsevx 3Zend_Http_Exceptionvw 3Zend_Http_CookieJarvv -Zend_Http_Cookievu -Zend_Http_Clientvt AZend_Http_Client_Exceptionv"s GZend_Http_Client_Adapter_Testv$r KZend_Http_Client_Adapter_Socketv#q IZend_Http_Client_Adapter_Proxyv'p QZend_Http_Client_Adapter_Exceptionv"o GZend_Http_Client_Adapter_Curlvn !Zend_Gdatavm 1Zend_Gdata_YouTubev"l GZend_Gdata_YouTube_VideoQueryv!k EZend_Gdata_YouTube_VideoFeedv"j GZend_Gdata_YouTube_VideoEntryv(i SZend_Gdata_YouTube_UserProfileEntryv(h SZend_Gdata_YouTube_SubscriptionFeedv)g UZend_Gdata_YouTube_SubscriptionEntryv)f UZend_Gdata_YouTube_PlaylistVideoFeedv*e WZend_Gdata_YouTube_PlaylistVideoEntryv(d SZend_Gdata_YouTube_PlaylistListFeedv)c UZend_Gdata_YouTube_PlaylistListEntryv"b GZend_Gdata_YouTube_MediaEntryv!a EZend_Gdata_YouTube_InboxFeedv"` GZend_Gdata_YouTube_InboxEntryv)_ UZend_Gdata_YouTube_Extension_VideoIdv*^ WZend_Gdata_YouTube_Extension_Usernamev*] WZend_Gdata_YouTube_Extension_Uploadedv'\ QZend_Gdata_YouTube_Extension_Tokenv([ SZend_Gdata_YouTube_Extension_Statusv,Z [Zend_Gdata_YouTube_Extension_Statisticsv'Y QZend_Gdata_YouTube_Extension_Statev(X SZend_Gdata_YouTube_Extension_Schoolv-W ]Zend_Gdata_YouTube_Extension_ReleaseDatev.V _Zend_Gdata_YouTube_Extension_Relationshipv*U WZend_Gdata_YouTube_Extension_Recordedv&T OZend_Gdata_YouTube_Extension_Racyv-S ]Zend_Gdata_YouTube_Extension_QueryStringv)R UZend_Gdata_YouTube_Extension_Privatev*Q WZend_Gdata_YouTube_Extension_Positionv/P aZend_Gdata_YouTube_Extension_PlaylistTitlev,O [Zend_Gdata_YouTube_Extension_PlaylistIdv,N [Zend_Gdata_YouTube_Extension_Occupationv)M UZend_Gdata_YouTube_Extension_NoEmbedv'L QZend_Gdata_YouTube_Extension_Musicv(K SZend_Gdata_YouTube_Extension_Moviesv-J ]Zend_Gdata_YouTube_Extension_MediaRatingv,I [Zend_Gdata_YouTube_Extension_MediaGroupv-H ]Zend_Gdata_YouTube_Extension_MediaCreditv.G _Zend_Gdata_YouTube_Extension_MediaContentv*F WZend_Gdata_YouTube_Extension_Locationv&E OZend_Gdata_YouTube_Extension_Linkv*D WZend_Gdata_YouTube_Extension_LastNamev*C WZend_Gdata_YouTube_Extension_Hometownv)B UZend_Gdata_YouTube_Extension_Hobbiesv(A SZend_Gdata_YouTube_Extension_Genderv+@ YZend_Gdata_YouTube_Extension_FirstNamev*? WZend_Gdata_YouTube_Extension_Durationv-> ]Zend_Gdata_YouTube_Extension_Descriptionv+= YZend_Gdata_YouTube_Extension_CountHintv)< UZend_Gdata_YouTube_Extension_Controlv); UZend_Gdata_YouTube_Extension_Companyv': QZend_Gdata_YouTube_Extension_Booksv%9 MZend_Gdata_YouTube_Extension_Agev)8 UZend_Gdata_YouTube_Extension_AboutMev#7 IZend_Gdata_YouTube_ContactFeedv   r  Q$jS4b= vbFoL+




|
\
4
				r	D	vCpE$vU<(fG&uVE)
tT4nJ!z[0      ! EZend_Mail_Transport_Abstractv /Zend_Mail_Storagev' QZend_Mail_Storage_Writable_Maildirv 9Zend_Mail_Storage_Pop3v  9Zend_Mail_Storage_Mboxv ?Zend_Mail_Storage_Maildirv~ 9Zend_Mail_Storage_Imapv} =Zend_Mail_Storage_Folderv"| GZend_Mail_Storage_Folder_Mboxv%{ MZend_Mail_Storage_Folder_Maildirv z CZend_Mail_Storage_Exceptionvy AZend_Mail_Storage_Abstractvx ;Zend_Mail_Protocol_Smtpv'w QZend_Mail_Protocol_Smtp_Auth_Plainv'v QZend_Mail_Protocol_Smtp_Auth_Loginv)u UZend_Mail_Protocol_Smtp_Auth_Crammd5vt ;Zend_Mail_Protocol_Pop3vs ;Zend_Mail_Protocol_Imapv!r EZend_Mail_Protocol_Exceptionv q CZend_Mail_Protocol_Abstractvp )Zend_Mail_Partvo 3Zend_Mail_Part_Filevn /Zend_Mail_Messagevm 9Zend_Mail_Message_Filevl 3Zend_Mail_Exceptionvk Zend_Logvj 9Zend_Log_Writer_Syslogvi 9Zend_Log_Writer_Streamvh 5Zend_Log_Writer_Nullvg 5Zend_Log_Writer_Mockvf 5Zend_Log_Writer_Mailve ;Zend_Log_Writer_Firebugvd 1Zend_Log_Writer_Dbvc =Zend_Log_Writer_Abstractvb 9Zend_Log_Formatter_Xmlva ?Zend_Log_Formatter_Simplev` AZend_Log_Formatter_Firebugv_ =Zend_Log_Filter_Suppressv^ =Zend_Log_Filter_Priorityv] ;Zend_Log_Filter_Messagev\ 1Zend_Log_Exceptionv[ #Zend_LocalevZ -Zend_Locale_MathvY =Zend_Locale_Math_PhpMathvX AZend_Locale_Math_ExceptionvW 1Zend_Locale_FormatvV 7Zend_Locale_ExceptionvU -Zend_Locale_Datav!T EZend_Locale_Data_TranslationvS #Zend_LoadervR =Zend_Loader_PluginLoaderv'Q QZend_Loader_PluginLoader_ExceptionvP 7Zend_Loader_ExceptionvO 9Zend_Loader_Autoloaderv$N KZend_Loader_Autoloader_ResourcevM Zend_LdapvL )Zend_Ldap_NodevK 7Zend_Ldap_Node_Schemav#J IZend_Ldap_Node_Schema_OpenLdapv/I aZend_Ldap_Node_Schema_ObjectClass_OpenLdapv6H oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectoryvG AZend_Ldap_Node_Schema_Itemv1F eZend_Ldap_Node_Schema_AttributeType_OpenLdapv8E sZend_Ldap_Node_Schema_AttributeType_ActiveDirectoryv*D WZend_Ldap_Node_Schema_ActiveDirectoryvC 9Zend_Ldap_Node_RootDsev$B KZend_Ldap_Node_RootDse_OpenLdapv&A OZend_Ldap_Node_RootDse_eDirectoryv+@ YZend_Ldap_Node_RootDse_ActiveDirectoryv? ?Zend_Ldap_Node_Collectionv$> KZend_Ldap_Node_ChildrenIteratorv= ;Zend_Ldap_Node_Abstractv< 9Zend_Ldap_Ldif_Encoderv; -Zend_Ldap_Filterv: ;Zend_Ldap_Filter_Stringv9 3Zend_Ldap_Filter_Orv8 5Zend_Ldap_Filter_Notv7 7Zend_Ldap_Filter_Maskv6 =Zend_Ldap_Filter_Logicalv5 AZend_Ldap_Filter_Exceptionv4 5Zend_Ldap_Filter_Andv3 ?Zend_Ldap_Filter_Abstractv2 3Zend_Ldap_Exceptionv1 %Zend_Ldap_Dnv0 3Zend_Ldap_Converterv/ 5Zend_Ldap_Collectionv*. WZend_Ldap_Collection_Iterator_Defaultv- 3Zend_Ldap_Attributev, #Zend_Layoutv+ 7Zend_Layout_Exceptionv)* UZend_Layout_Controller_Plugin_Layoutv0) cZend_Layout_Controller_Action_Helper_Layoutv( Zend_Jsonv' -Zend_Json_Serverv& 5Zend_Json_Server_Smdv!% EZend_Json_Server_Smd_Servicev$ ?Zend_Json_Server_Responsev## IZend_Json_Server_Response_Httpv" =Zend_Json_Server_Requestv"! GZend_Json_Server_Request_Httpv  AZend_Json_Server_Exceptionv 9Zend_Json_Server_Errorv 9Zend_Json_Server_Cachev )Zend_Json_Exprv 3Zend_Json_Exceptionv /Zend_Json_Encoderv /Zend_Json_Decoderv 'Zend_InfoCardv- ]Zend_InfoCard_Xml_SecurityTokenReferencev AZend_InfoCard_Xml_Securityv) UZend_InfoCard_Xml_Security_Transformv4 kZend_InfoCard_Xml_Security_Transform_XmlExcC14Nv3 iZend_InfoCard_Xml_Security_Transform_Exceptionv< {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignaturev   u dB'kN2zX<rV/^@"





r
`
>
					{	V	9	a?"lH's\?}^@" yZ< {_5w[@)~H                                         )y UZend_Pdf_Destination_FitHorizontallyv2x gZend_Pdf_Destination_FitBoundingBoxVerticallyv4w kZend_Pdf_Destination_FitBoundingBoxHorizontallyv(v SZend_Pdf_Destination_FitBoundingBoxvu =Zend_Pdf_Destination_Fitv"t GZend_Pdf_Destination_Explicitvs )Zend_Pdf_Colorvr 1Zend_Pdf_Color_Rgbvq 3Zend_Pdf_Color_Htmlvp =Zend_Pdf_Color_GrayScalevo 3Zend_Pdf_Color_Cmykvn 'Zend_Pdf_Cmapvm AZend_Pdf_Cmap_TrimmedTablev!l EZend_Pdf_Cmap_SegmentToDeltavk AZend_Pdf_Cmap_ByteEncodingv&j OZend_Pdf_Cmap_ByteEncoding_Staticvi 3Zend_Pdf_Annotationvh =Zend_Pdf_Annotation_Textvg =Zend_Pdf_Annotation_Linkv'f QZend_Pdf_Annotation_FileAttachmentve +Zend_Pdf_Actionvd 3Zend_Pdf_Action_URIvc ;Zend_Pdf_Action_Unknownvb 7Zend_Pdf_Action_Transva 9Zend_Pdf_Action_Threadv` AZend_Pdf_Action_SubmitFormv_ 7Zend_Pdf_Action_Soundv ^ CZend_Pdf_Action_SetOCGStatev] ?Zend_Pdf_Action_ResetFormv\ ?Zend_Pdf_Action_Renditionv[ 7Zend_Pdf_Action_NamedvZ 7Zend_Pdf_Action_MovievY 9Zend_Pdf_Action_LaunchvX AZend_Pdf_Action_JavaScriptvW AZend_Pdf_Action_ImportDatavV 5Zend_Pdf_Action_HidevU 7Zend_Pdf_Action_GoToRvT 7Zend_Pdf_Action_GoToEvS AZend_Pdf_Action_GoTo3DViewvR 5Zend_Pdf_Action_GoTovQ )Zend_Paginatorv*P WZend_Paginator_ScrollingStyle_Slidingv*O WZend_Paginator_ScrollingStyle_Jumpingv*N WZend_Paginator_ScrollingStyle_Elasticv&M OZend_Paginator_ScrollingStyle_AllvL =Zend_Paginator_Exceptionv K CZend_Paginator_Adapter_Nullv$J KZend_Paginator_Adapter_Iteratorv)I UZend_Paginator_Adapter_DbTableSelectv$H KZend_Paginator_Adapter_DbSelectv!G EZend_Paginator_Adapter_ArrayvF #Zend_OpenIdvE 5Zend_OpenId_ProvidervD ?Zend_OpenId_Provider_Userv&C OZend_OpenId_Provider_User_Sessionv!B EZend_OpenId_Provider_Storagev&A OZend_OpenId_Provider_Storage_Filev@ 7Zend_OpenId_Extensionv? AZend_OpenId_Extension_Sregv> 7Zend_OpenId_Exceptionv= 5Zend_OpenId_Consumerv!< EZend_OpenId_Consumer_Storagev&; OZend_OpenId_Consumer_Storage_Filev: +Zend_Navigationv9 5Zend_Navigation_Pagev8 =Zend_Navigation_Page_Uriv7 =Zend_Navigation_Page_Mvcv6 ?Zend_Navigation_Exceptionv5 ?Zend_Navigation_Containerv4 Zend_Mimev3 )Zend_Mime_Partv2 /Zend_Mime_Messagev1 3Zend_Mime_Exceptionv0 -Zend_Mime_Decodev/ #Zend_Memoryv. /Zend_Memory_Valuev- 3Zend_Memory_Managerv, 7Zend_Memory_Exceptionv+ 7Zend_Memory_Containerv"* GZend_Memory_Container_Movablev!) EZend_Memory_Container_Lockedv!( EZend_Memory_AccessControllerv' 3Zend_Measure_Weightv& 3Zend_Measure_Volumev%% MZend_Measure_Viscosity_Kinematicv#$ IZend_Measure_Viscosity_Dynamicv# 3Zend_Measure_Torquev" /Zend_Measure_Timev! =Zend_Measure_Temperaturev  1Zend_Measure_Speedv 7Zend_Measure_Pressurev 1Zend_Measure_Powerv 3Zend_Measure_Numberv 9Zend_Measure_Lightnessv 3Zend_Measure_Lengthv ?Zend_Measure_Illuminationv 9Zend_Measure_Frequencyv 1Zend_Measure_Forcev =Zend_Measure_Flow_Volumev 9Zend_Measure_Flow_Molev 9Zend_Measure_Flow_Massv 9Zend_Measure_Exceptionv 3Zend_Measure_Energyv 5Zend_Measure_Densityv 5Zend_Measure_Currentv  CZend_Measure_Cooking_Weightv  CZend_Measure_Cooking_Volumev =Zend_Measure_Capacitancev 3Zend_Measure_Binaryv /Zend_Measure_Areav 1Zend_Measure_Anglev
 ?Zend_Measure_Accelerationv	 7Zend_Measure_Abstractv Zend_Mailv =Zend_Mail_Transport_Smtpv! EZend_Mail_Transport_Sendmailv" GZend_Mail_Transport_Exceptionv   d  cA$c<^>%gF dD#





f
E
%
				w	P	'_$k.s:JhC#rR9_>lH*                      ] ;Zend_Queue_Adapter_Nullv!\ EZend_Queue_Adapter_Memcacheqv[ 7Zend_Queue_Adapter_Dbv Z CZend_Queue_Adapter_Db_Queuev"Y GZend_Queue_Adapter_Db_MessagevX =Zend_Queue_Adapter_Arrayv'W QZend_Queue_Adapter_AdapterAbstractv V CZend_Queue_Adapter_ActivemqvU -Zend_ProgressBarvT AZend_ProgressBar_ExceptionvS =Zend_ProgressBar_Adapterv$R KZend_ProgressBar_Adapter_JsPushv$Q KZend_ProgressBar_Adapter_JsPullv'P QZend_ProgressBar_Adapter_Exceptionv%O MZend_ProgressBar_Adapter_ConsolevN Zend_Pdfv!M EZend_Pdf_UpdateInfoContainervL -Zend_Pdf_TrailervK ;Zend_Pdf_Trailer_KeepervJ AZend_Pdf_Trailer_GeneratorvI +Zend_Pdf_TargetvH )Zend_Pdf_StylevG 7Zend_Pdf_StringParservF /Zend_Pdf_Resourcev#E IZend_Pdf_Resource_ImageFactoryvD ;Zend_Pdf_Resource_Imagev!C EZend_Pdf_Resource_Image_Tiffv B CZend_Pdf_Resource_Image_Pngv!A EZend_Pdf_Resource_Image_Jpegv@ 9Zend_Pdf_Resource_Fontv!? EZend_Pdf_Resource_Font_Type0v"> GZend_Pdf_Resource_Font_Simplev+= YZend_Pdf_Resource_Font_Simple_Standardv8< sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsv6; oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanv7: qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicv;9 yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicv58 mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldv27 gZend_Pdf_Resource_Font_Simple_Standard_Symbolv<6 {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliquevA5 Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliquev94 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldv53 mZend_Pdf_Resource_Font_Simple_Standard_Helveticav:2 wZend_Pdf_Resource_Font_Simple_Standard_CourierObliquev>1 Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliquev70 qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldv3/ iZend_Pdf_Resource_Font_Simple_Standard_Courierv). UZend_Pdf_Resource_Font_Simple_Parsedv2- gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypev*, WZend_Pdf_Resource_Font_FontDescriptorv%+ MZend_Pdf_Resource_Font_Extractedv#* IZend_Pdf_Resource_Font_CidFontv,) [Zend_Pdf_Resource_Font_CidFont_TrueTypev3( iZend_Pdf_RecursivelyIteratableObjectsContainerv' +Zend_Pdf_Parserv& 'Zend_Pdf_Pagev% -Zend_Pdf_Outlinev$ ;Zend_Pdf_Outline_Loadedv# =Zend_Pdf_Outline_Createdv" /Zend_Pdf_NameTreev! )Zend_Pdf_Imagev  'Zend_Pdf_Fontv  CZend_Pdf_Filter_Compressionv$ KZend_Pdf_Filter_Compression_Lzwv& OZend_Pdf_Filter_Compression_Flatev =Zend_Pdf_Filter_AsciiHexv ;Zend_Pdf_Filter_Ascii85v" GZend_Pdf_FileParserDataSourcev) UZend_Pdf_FileParserDataSource_Stringv' QZend_Pdf_FileParserDataSource_Filev 3Zend_Pdf_FileParserv ?Zend_Pdf_FileParser_Imagev" GZend_Pdf_FileParser_Image_Pngv =Zend_Pdf_FileParser_Fontv& OZend_Pdf_FileParser_Font_OpenTypev/ aZend_Pdf_FileParser_Font_OpenType_TrueTypev 1Zend_Pdf_Exceptionv ;Zend_Pdf_ElementFactoryv" GZend_Pdf_ElementFactory_Proxyv -Zend_Pdf_Elementv ;Zend_Pdf_Element_Stringv# IZend_Pdf_Element_String_Binaryv ;Zend_Pdf_Element_Streamv
 AZend_Pdf_Element_Referencev%	 MZend_Pdf_Element_Reference_Tablev' QZend_Pdf_Element_Reference_Contextv ;Zend_Pdf_Element_Objectv# IZend_Pdf_Element_Object_Streamv =Zend_Pdf_Element_Numericv 7Zend_Pdf_Element_Nullv 7Zend_Pdf_Element_Namev  CZend_Pdf_Element_Dictionaryv =Zend_Pdf_Element_Booleanv  9Zend_Pdf_Element_Arrayv 5Zend_Pdf_Destinationv~ ?Zend_Pdf_Destination_Zoomv!} EZend_Pdf_Destination_Unknownv| AZend_Pdf_Destination_Namedv'{ QZend_Pdf_Destination_FitVerticallyv&z OZend_Pdf_Destination_FitRectanglev   Y  lQ&_:xV5|`H%k


_
			u	K	^.Y0P$_#pH!f0 n<Y#                )6 UZend_Search_Lucene_Search_Query_Termv*5 WZend_Search_Lucene_Search_Query_Rangev24 gZend_Search_Lucene_Search_Query_Preprocessingv73 qZend_Search_Lucene_Search_Query_Preprocessing_Termv92 uZend_Search_Lucene_Search_Query_Preprocessing_Phrasev81 sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzyv+0 YZend_Search_Lucene_Search_Query_Phrasev./ _Zend_Search_Lucene_Search_Query_MultiTermv2. gZend_Search_Lucene_Search_Query_Insignificantv*- WZend_Search_Lucene_Search_Query_Fuzzyv*, WZend_Search_Lucene_Search_Query_Emptyv,+ [Zend_Search_Lucene_Search_Query_Booleanv2* gZend_Search_Lucene_Search_Highlighter_Defaultv:) wZend_Search_Lucene_Search_BooleanExpressionRecognizerv( =Zend_Search_Lucene_Proxyv%' MZend_Search_Lucene_PriorityQueuev/& aZend_Search_Lucene_Interface_MultiSearcherv#% IZend_Search_Lucene_LockManagerv$$ KZend_Search_Lucene_Index_Writerv0# cZend_Search_Lucene_Index_TermsPriorityQueuev&" OZend_Search_Lucene_Index_TermInfov"! GZend_Search_Lucene_Index_Termv+  YZend_Search_Lucene_Index_SegmentWriterv8 sZend_Search_Lucene_Index_SegmentWriter_StreamWriterv: wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterv+ YZend_Search_Lucene_Index_SegmentMergerv) UZend_Search_Lucene_Index_SegmentInfov' QZend_Search_Lucene_Index_FieldInfov( SZend_Search_Lucene_Index_DocsFilterv. _Zend_Search_Lucene_Index_DictionaryLoaderv! EZend_Search_Lucene_FSMActionv 9Zend_Search_Lucene_FSMv =Zend_Search_Lucene_Fieldv! EZend_Search_Lucene_Exceptionv  CZend_Search_Lucene_Documentv% MZend_Search_Lucene_Document_Xlsxv% MZend_Search_Lucene_Document_Pptxv( SZend_Search_Lucene_Document_OpenXmlv% MZend_Search_Lucene_Document_Htmlv* WZend_Search_Lucene_Document_Exceptionv% MZend_Search_Lucene_Document_Docxv, [Zend_Search_Lucene_Analysis_TokenFilterv6 oZend_Search_Lucene_Analysis_TokenFilter_StopWordsv7 qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsv:
 wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8v6	 oZend_Search_Lucene_Analysis_TokenFilter_LowerCasev& OZend_Search_Lucene_Analysis_Tokenv) UZend_Search_Lucene_Analysis_Analyzerv0 cZend_Search_Lucene_Analysis_Analyzer_Commonv8 sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumvI Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitivev5 mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8vF Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitivev8 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumvI  Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitivev5 mZend_Search_Lucene_Analysis_Analyzer_Common_TextvF~ Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitivev} 7Zend_Search_Exceptionv| -Zend_Rest_Serverv{ AZend_Rest_Server_Exceptionvz +Zend_Rest_Routevy 3Zend_Rest_Exceptionvx 5Zend_Rest_Controllervw -Zend_Rest_Clientvv ;Zend_Rest_Client_Resultv&u OZend_Rest_Client_Result_Exceptionvt AZend_Rest_Client_Exceptionvs 'Zend_Registryvr =Zend_Reflection_Propertyvq ?Zend_Reflection_Parametervp 9Zend_Reflection_Methodvo =Zend_Reflection_Functionvn 5Zend_Reflection_Filevm ?Zend_Reflection_Extensionvl ?Zend_Reflection_Exceptionvk =Zend_Reflection_Docblockv!j EZend_Reflection_Docblock_Tagv(i SZend_Reflection_Docblock_Tag_Returnv'h QZend_Reflection_Docblock_Tag_Paramvg 7Zend_Reflection_Classvf !Zend_Queueve 9Zend_Queue_Stomp_Framevd ;Zend_Queue_Stomp_Clientv'c QZend_Queue_Stomp_Client_Connectionvb 1Zend_Queue_Messagev#a IZend_Queue_Message_PlatformJobv ` CZend_Queue_Message_Iteratorv_ 5Zend_Queue_Exceptionv(^ SZend_Queue_Adapter_PlatformJobQueuev   `  s=X#],lC|T 




m
G
"				~	V	0	pR5b7g6fFe@_5`6qI  # IZend_Service_Nirvanix_Responsev) UZend_Service_Nirvanix_Namespace_Imfsv) UZend_Service_Nirvanix_Namespace_Basev$ KZend_Service_Nirvanix_Exceptionv 3Zend_Service_Flickrv" GZend_Service_Flickr_ResultSetv AZend_Service_Flickr_Resultv ?Zend_Service_Flickr_Imagev 9Zend_Service_Exceptionv 9Zend_Service_Deliciousv& OZend_Service_Delicious_SimplePostv$ KZend_Service_Delicious_PostListv 
 CZend_Service_Delicious_Postv%	 MZend_Service_Delicious_Exceptionv  CZend_Service_Audioscrobblerv 3Zend_Service_Amazonv ;Zend_Service_Amazon_Sqsv& OZend_Service_Amazon_Sqs_Exceptionv' QZend_Service_Amazon_SimilarProductv 9Zend_Service_Amazon_S3v" GZend_Service_Amazon_S3_Streamv% MZend_Service_Amazon_S3_Exceptionv"  GZend_Service_Amazon_ResultSetv ?Zend_Service_Amazon_Queryv!~ EZend_Service_Amazon_OfferSetv} ?Zend_Service_Amazon_Offerv&| OZend_Service_Amazon_ListmaniaListv{ =Zend_Service_Amazon_Itemvz ?Zend_Service_Amazon_Imagev"y GZend_Service_Amazon_Exceptionv(x SZend_Service_Amazon_EditorialReviewvw ;Zend_Service_Amazon_Ec2v+v YZend_Service_Amazon_Ec2_Securitygroupsv%u MZend_Service_Amazon_Ec2_Responsev#t IZend_Service_Amazon_Ec2_Regionv$s KZend_Service_Amazon_Ec2_Keypairv%r MZend_Service_Amazon_Ec2_Instancev-q ]Zend_Service_Amazon_Ec2_Instance_Windowsv.p _Zend_Service_Amazon_Ec2_Instance_Reservedv"o GZend_Service_Amazon_Ec2_Imagev&n OZend_Service_Amazon_Ec2_Exceptionv&m OZend_Service_Amazon_Ec2_Elasticipv l CZend_Service_Amazon_Ec2_Ebsv'k QZend_Service_Amazon_Ec2_CloudWatchv.j _Zend_Service_Amazon_Ec2_Availabilityzonesv%i MZend_Service_Amazon_Ec2_Abstractv'h QZend_Service_Amazon_CustomerReviewv$g KZend_Service_Amazon_Accessoriesv!f EZend_Service_Amazon_Abstractve 5Zend_Service_Akismetvd 7Zend_Service_Abstractvc 9Zend_Server_Reflectionv'b QZend_Server_Reflection_ReturnValuev%a MZend_Server_Reflection_Prototypev%` MZend_Server_Reflection_Parameterv _ CZend_Server_Reflection_Nodev"^ GZend_Server_Reflection_Methodv$] KZend_Server_Reflection_Functionv-\ ]Zend_Server_Reflection_Function_Abstractv%[ MZend_Server_Reflection_Exceptionv!Z EZend_Server_Reflection_Classv!Y EZend_Server_Method_Prototypev!X EZend_Server_Method_Parameterv"W GZend_Server_Method_Definitionv V CZend_Server_Method_CallbackvU 7Zend_Server_ExceptionvT 9Zend_Server_DefinitionvS /Zend_Server_CachevR 5Zend_Server_AbstractvQ 1Zend_Search_Lucenev0P cZend_Search_Lucene_TermStreamsPriorityQueuev$O KZend_Search_Lucene_Storage_Filev+N YZend_Search_Lucene_Storage_File_Memoryv/M aZend_Search_Lucene_Storage_File_Filesystemv)L UZend_Search_Lucene_Storage_Directoryv4K kZend_Search_Lucene_Storage_Directory_Filesystemv%J MZend_Search_Lucene_Search_Weightv*I WZend_Search_Lucene_Search_Weight_Termv,H [Zend_Search_Lucene_Search_Weight_Phrasev/G aZend_Search_Lucene_Search_Weight_MultiTermv+F YZend_Search_Lucene_Search_Weight_Emptyv-E ]Zend_Search_Lucene_Search_Weight_Booleanv)D UZend_Search_Lucene_Search_Similarityv1C eZend_Search_Lucene_Search_Similarity_Defaultv)B UZend_Search_Lucene_Search_QueryTokenv3A iZend_Search_Lucene_Search_QueryParserExceptionv1@ eZend_Search_Lucene_Search_QueryParserContextv*? WZend_Search_Lucene_Search_QueryParserv)> UZend_Search_Lucene_Search_QueryLexerv'= QZend_Search_Lucene_Search_QueryHitv)< UZend_Search_Lucene_Search_QueryEntryv.; _Zend_Search_Lucene_Search_QueryEntry_Termv2: gZend_Search_Lucene_Search_QueryEntry_Subqueryv09 cZend_Search_Lucene_Search_QueryEntry_Phrasev$8 KZend_Search_Lucene_Search_Queryv-7 ]Zend_Search_Lucene_Search_Query_Wildcardv   c  _7mN,kA~MuH



Y
+
			}	S	&`9Z+a4wO4\/oP7V"\1                      !y EZend_Tag_Cloud_Decorator_Tagv%x MZend_Tag_Cloud_Decorator_HtmlTagv'w QZend_Tag_Cloud_Decorator_HtmlCloudv'v QZend_Tag_Cloud_Decorator_Exceptionv#u IZend_Tag_Cloud_Decorator_Cloudvt )Zend_Soap_Wsdlv/s aZend_Soap_Wsdl_Strategy_DefaultComplexTypev&r OZend_Soap_Wsdl_Strategy_Compositev0q cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequencev/p aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplexv$o KZend_Soap_Wsdl_Strategy_AnyTypev%n MZend_Soap_Wsdl_Strategy_Abstractvm =Zend_Soap_Wsdl_Exceptionvl -Zend_Soap_Servervk AZend_Soap_Server_Exceptionvj -Zend_Soap_Clientvi 9Zend_Soap_Client_Localvh AZend_Soap_Client_Exceptionvg ;Zend_Soap_Client_DotNetvf ;Zend_Soap_Client_Commonve 9Zend_Soap_AutoDiscoverv%d MZend_Soap_AutoDiscover_Exceptionvc %Zend_Sessionv)b UZend_Session_Validator_HttpUserAgentv$a KZend_Session_Validator_Abstractv'` QZend_Session_SaveHandler_Exceptionv%_ MZend_Session_SaveHandler_DbTablev^ 9Zend_Session_Namespacev] 9Zend_Session_Exceptionv\ 7Zend_Session_Abstractv[ 1Zend_Service_Yahoov$Z KZend_Service_Yahoo_WebResultSetv!Y EZend_Service_Yahoo_WebResultv&X OZend_Service_Yahoo_VideoResultSetv#W IZend_Service_Yahoo_VideoResultv!V EZend_Service_Yahoo_ResultSetvU ?Zend_Service_Yahoo_Resultv)T UZend_Service_Yahoo_PageDataResultSetv&S OZend_Service_Yahoo_PageDataResultv%R MZend_Service_Yahoo_NewsResultSetv"Q GZend_Service_Yahoo_NewsResultv&P OZend_Service_Yahoo_LocalResultSetv#O IZend_Service_Yahoo_LocalResultv+N YZend_Service_Yahoo_InlinkDataResultSetv(M SZend_Service_Yahoo_InlinkDataResultv&L OZend_Service_Yahoo_ImageResultSetv#K IZend_Service_Yahoo_ImageResultvJ =Zend_Service_Yahoo_ImagevI 5Zend_Service_Twitterv H CZend_Service_Twitter_Searchv#G IZend_Service_Twitter_ExceptionvF ;Zend_Service_Technorativ#E IZend_Service_Technorati_Weblogv"D GZend_Service_Technorati_Utilsv*C WZend_Service_Technorati_TagsResultSetv'B QZend_Service_Technorati_TagsResultv)A UZend_Service_Technorati_TagResultSetv&@ OZend_Service_Technorati_TagResultv,? [Zend_Service_Technorati_SearchResultSetv)> UZend_Service_Technorati_SearchResultv&= OZend_Service_Technorati_ResultSetv#< IZend_Service_Technorati_Resultv*; WZend_Service_Technorati_KeyInfoResultv*: WZend_Service_Technorati_GetInfoResultv&9 OZend_Service_Technorati_Exceptionv18 eZend_Service_Technorati_DailyCountsResultSetv.7 _Zend_Service_Technorati_DailyCountsResultv,6 [Zend_Service_Technorati_CosmosResultSetv)5 UZend_Service_Technorati_CosmosResultv+4 YZend_Service_Technorati_BlogInfoResultv#3 IZend_Service_Technorati_Authorv2 ;Zend_Service_StrikeIronv(1 SZend_Service_StrikeIron_ZipCodeInfov20 gZend_Service_StrikeIron_USAddressVerificationv-/ ]Zend_Service_StrikeIron_SalesUseTaxBasicv&. OZend_Service_StrikeIron_Exceptionv&- OZend_Service_StrikeIron_Decoratorv!, EZend_Service_StrikeIron_Basev+ ;Zend_Service_SlideSharev&* OZend_Service_SlideShare_SlideShowv&) OZend_Service_SlideShare_Exceptionv( 1Zend_Service_Simpyv$' KZend_Service_Simpy_WatchlistSetv*& WZend_Service_Simpy_WatchlistFilterSetv'% QZend_Service_Simpy_WatchlistFilterv!$ EZend_Service_Simpy_Watchlistv# ?Zend_Service_Simpy_TagSetv" 9Zend_Service_Simpy_Tagv! AZend_Service_Simpy_NoteSetv  ;Zend_Service_Simpy_Notev AZend_Service_Simpy_LinkSetv! EZend_Service_Simpy_LinkQueryv ;Zend_Service_Simpy_Linkv 9Zend_Service_ReCaptchav$ KZend_Service_ReCaptcha_Responsev$ KZend_Service_ReCaptcha_MailHidev. _Zend_Service_ReCaptcha_MailHide_Exceptionv% MZend_Service_ReCaptcha_Exceptionv 7Zend_Service_Nirvanixv   X  }aCW,uC_/rJ 





q
V
@
				g	-{P#nCoIk;\,xG~?u>                                        )Q UZend_Tool_Project_Context_Repositoryv.P _Zend_Tool_Project_Context_Filesystem_Filev3O iZend_Tool_Project_Context_Filesystem_Directoryv2N gZend_Tool_Project_Context_Filesystem_Abstractv(M SZend_Tool_Project_Context_Exceptionv-L ]Zend_Tool_Project_Context_Content_Enginev3K iZend_Tool_Project_Context_Content_Engine_Phtmlv;J yZend_Tool_Project_Context_Content_Engine_CodeGeneratorv0I cZend_Tool_Framework_System_Provider_Versionv0H cZend_Tool_Framework_System_Provider_Phpinfov1G eZend_Tool_Framework_System_Provider_Manifestv(F SZend_Tool_Framework_System_Manifestv-E ]Zend_Tool_Framework_System_Action_Deletev-D ]Zend_Tool_Framework_System_Action_Createv!C EZend_Tool_Framework_Registryv+B YZend_Tool_Framework_Registry_Exceptionv+A YZend_Tool_Framework_Provider_Signaturev,@ [Zend_Tool_Framework_Provider_Repositoryv+? YZend_Tool_Framework_Provider_Exceptionv*> WZend_Tool_Framework_Provider_Abstractv&= OZend_Tool_Framework_Metadata_Toolv)< UZend_Tool_Framework_Metadata_Dynamicv'; QZend_Tool_Framework_Metadata_Basicv,: [Zend_Tool_Framework_Manifest_Repositoryv+9 YZend_Tool_Framework_Manifest_Exceptionv18 eZend_Tool_Framework_Loader_IncludePathLoadervJ7 Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIteratorv(6 SZend_Tool_Framework_Loader_Abstractv"5 GZend_Tool_Framework_Exceptionv'4 QZend_Tool_Framework_Client_Storagev13 eZend_Tool_Framework_Client_Storage_Directoryv(2 SZend_Tool_Framework_Client_ResponsevD1 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separatorv'0 QZend_Tool_Framework_Client_Requestv9/ uZend_Tool_Framework_Client_Interactive_InputResponsev8. sZend_Tool_Framework_Client_Interactive_InputRequestv8- sZend_Tool_Framework_Client_Interactive_InputHandlerv), UZend_Tool_Framework_Client_Exceptionv'+ QZend_Tool_Framework_Client_ConsolevD* 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizerv0) cZend_Tool_Framework_Client_Console_Manifestv2( gZend_Tool_Framework_Client_Console_HelpSystemv6' oZend_Tool_Framework_Client_Console_ArgumentParserv&& OZend_Tool_Framework_Client_Configv(% SZend_Tool_Framework_Client_Abstractv*$ WZend_Tool_Framework_Action_Repositoryv)# UZend_Tool_Framework_Action_Exceptionv$" KZend_Tool_Framework_Action_Basev! 'Zend_TimeSyncv  1Zend_TimeSync_Sntpv 9Zend_TimeSync_Protocolv /Zend_TimeSync_Ntpv ;Zend_TimeSync_Exceptionv +Zend_Text_Tablev 3Zend_Text_Table_Rowv ?Zend_Text_Table_Exceptionv& OZend_Text_Table_Decorator_Unicodev$ KZend_Text_Table_Decorator_Asciiv 9Zend_Text_Table_Columnv 3Zend_Text_MultiBytev -Zend_Text_Figletv AZend_Text_Figlet_Exceptionv 3Zend_Text_Exceptionv& OZend_Test_PHPUnit_Db_SimpleTesterv, [Zend_Test_PHPUnit_Db_Operation_Truncatev* WZend_Test_PHPUnit_Db_Operation_Insertv- ]Zend_Test_PHPUnit_Db_Operation_DeleteAllv* WZend_Test_PHPUnit_Db_Metadata_Genericv# IZend_Test_PHPUnit_Db_Exceptionv, [Zend_Test_PHPUnit_Db_DataSet_QueryTablev. _Zend_Test_PHPUnit_Db_DataSet_QueryDataSetv0
 cZend_Test_PHPUnit_Db_DataSet_DbTableDataSetv)	 UZend_Test_PHPUnit_Db_DataSet_DbTablev* WZend_Test_PHPUnit_Db_DataSet_DbRowsetv$ KZend_Test_PHPUnit_Db_Connectionv' QZend_Test_PHPUnit_DatabaseTestCasev) UZend_Test_PHPUnit_ControllerTestCasev0 cZend_Test_PHPUnit_Constraint_ResponseHeaderv* WZend_Test_PHPUnit_Constraint_Redirectv+ YZend_Test_PHPUnit_Constraint_Exceptionv* WZend_Test_PHPUnit_Constraint_DomQueryv  7Zend_Test_DbStatementv 3Zend_Test_DbAdapterv~ /Zend_Tag_ItemListv} 'Zend_Tag_Itemv| 1Zend_Tag_Exceptionv{ )Zend_Tag_Cloudvz =Zend_Tag_Cloud_Exceptionv   I  Fl9k1i5a.



_
&				E	ZM\!r8\b!b6]4
                            ' QZend_Tool_Project_Provider_Projectv' QZend_Tool_Project_Provider_Profilev& OZend_Tool_Project_Provider_Modulev% MZend_Tool_Project_Provider_Modelv( SZend_Tool_Project_Provider_Manifestv$ KZend_Tool_Project_Provider_Formv) UZend_Tool_Project_Provider_Exceptionv* WZend_Tool_Project_Provider_Controllerv& OZend_Tool_Project_Provider_Actionv( SZend_Tool_Project_Provider_Abstractv ?Zend_Tool_Project_Profilev' QZend_Tool_Project_Profile_Resourcev9 uZend_Tool_Project_Profile_Resource_SearchConstraintsv1 eZend_Tool_Project_Profile_Resource_Containerv= }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilterv5 mZend_Tool_Project_Profile_Iterator_ContextFilterv-
 ]Zend_Tool_Project_Profile_FileParser_Xmlv(	 SZend_Tool_Project_Profile_Exceptionv  CZend_Tool_Project_Exceptionv< {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectoryv0 cZend_Tool_Project_Context_Zf_ViewsDirectoryv6 oZend_Tool_Project_Context_Zf_ViewScriptsDirectoryv0 cZend_Tool_Project_Context_Zf_ViewScriptFilev6 oZend_Tool_Project_Context_Zf_ViewHelpersDirectoryv6 oZend_Tool_Project_Context_Zf_ViewFiltersDirectoryvA Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectoryv2  gZend_Tool_Project_Context_Zf_UploadsDirectoryv0 cZend_Tool_Project_Context_Zf_TestsDirectoryv7~ qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFilev@} Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectoryv1| eZend_Tool_Project_Context_Zf_TestLibraryFilev6{ oZend_Tool_Project_Context_Zf_TestLibraryDirectoryv:z wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFilev:y wZend_Tool_Project_Context_Zf_TestApplicationDirectoryv@x Zend_Tool_Project_Context_Zf_TestApplicationControllerFilevEw Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectoryv>v Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFilev4u kZend_Tool_Project_Context_Zf_TemporaryDirectoryv3t iZend_Tool_Project_Context_Zf_SessionsDirectoryv8s sZend_Tool_Project_Context_Zf_SearchIndexesDirectoryv<r {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectoryv8q sZend_Tool_Project_Context_Zf_PublicScriptsDirectoryv1p eZend_Tool_Project_Context_Zf_PublicIndexFilev7o qZend_Tool_Project_Context_Zf_PublicImagesDirectoryv1n eZend_Tool_Project_Context_Zf_PublicDirectoryv5m mZend_Tool_Project_Context_Zf_ProjectProviderFilev2l gZend_Tool_Project_Context_Zf_ModulesDirectoryv1k eZend_Tool_Project_Context_Zf_ModuleDirectoryv1j eZend_Tool_Project_Context_Zf_ModelsDirectoryv+i YZend_Tool_Project_Context_Zf_ModelFilev/h aZend_Tool_Project_Context_Zf_LogsDirectoryv2g gZend_Tool_Project_Context_Zf_LocalesDirectoryv2f gZend_Tool_Project_Context_Zf_LibraryDirectoryv2e gZend_Tool_Project_Context_Zf_LayoutsDirectoryv.d _Zend_Tool_Project_Context_Zf_HtaccessFilev0c cZend_Tool_Project_Context_Zf_FormsDirectoryv*b WZend_Tool_Project_Context_Zf_FormFilev-a ]Zend_Tool_Project_Context_Zf_DbTableFilev2` gZend_Tool_Project_Context_Zf_DbTableDirectoryv/_ aZend_Tool_Project_Context_Zf_DataDirectoryv6^ oZend_Tool_Project_Context_Zf_ControllersDirectoryv0] cZend_Tool_Project_Context_Zf_ControllerFilev2\ gZend_Tool_Project_Context_Zf_ConfigsDirectoryv,[ [Zend_Tool_Project_Context_Zf_ConfigFilev0Z cZend_Tool_Project_Context_Zf_CacheDirectoryv/Y aZend_Tool_Project_Context_Zf_BootstrapFilev6X oZend_Tool_Project_Context_Zf_ApplicationDirectoryv7W qZend_Tool_Project_Context_Zf_ApplicationConfigFilev/V aZend_Tool_Project_Context_Zf_ApisDirectoryv.U _Zend_Tool_Project_Context_Zf_ActionMethodv@T Zend_Tool_Project_Context_System_ProjectProvidersDirectoryv8S sZend_Tool_Project_Context_System_ProjectProfileFilev6R oZend_Tool_Project_Context_System_ProjectDirectoryv   q }X5^9cG+qO'_3



|
W
/
					d	B		kM3qO(a@!wQ,|Q/	{Y3`=jJ                                                , [Zend_View_Helper_Navigation_Breadcrumbsv
 ;Zend_View_Helper_Layoutv	 7Zend_View_Helper_Jsonv" GZend_View_Helper_InlineScriptv# IZend_View_Helper_HtmlQuicktimev ?Zend_View_Helper_HtmlPagev  CZend_View_Helper_HtmlObjectv ?Zend_View_Helper_HtmlListv AZend_View_Helper_HtmlFlashv! EZend_View_Helper_HtmlElementv AZend_View_Helper_HeadTitlev  AZend_View_Helper_HeadStylev  CZend_View_Helper_HeadScriptv~ ?Zend_View_Helper_HeadMetav} ?Zend_View_Helper_HeadLinkv"| GZend_View_Helper_FormTextareav{ ?Zend_View_Helper_FormTextv z CZend_View_Helper_FormSubmitv y CZend_View_Helper_FormSelectvx AZend_View_Helper_FormResetvw AZend_View_Helper_FormRadiov"v GZend_View_Helper_FormPasswordvu ?Zend_View_Helper_FormNotev't QZend_View_Helper_FormMultiCheckboxvs AZend_View_Helper_FormLabelvr AZend_View_Helper_FormImagev q CZend_View_Helper_FormHiddenvp ?Zend_View_Helper_FormFilev o CZend_View_Helper_FormErrorsv!n EZend_View_Helper_FormElementv"m GZend_View_Helper_FormCheckboxv l CZend_View_Helper_FormButtonvk 7Zend_View_Helper_Formvj ?Zend_View_Helper_Fieldsetvi =Zend_View_Helper_Doctypev!h EZend_View_Helper_DeclareVarsvg 9Zend_View_Helper_Cyclevf =Zend_View_Helper_BaseUrlve ;Zend_View_Helper_Actionvd ?Zend_View_Helper_Abstractvc 3Zend_View_Exceptionvb 1Zend_View_Abstractva %Zend_Versionv` 'Zend_Validatev_ AZend_Validate_StringLengthv#^ IZend_Validate_Sitemap_Priorityv] ?Zend_Validate_Sitemap_Locv"\ GZend_Validate_Sitemap_Lastmodv%[ MZend_Validate_Sitemap_ChangefreqvZ 3Zend_Validate_RegexvY 9Zend_Validate_NotEmptyvX 9Zend_Validate_LessThanvW -Zend_Validate_IpvV /Zend_Validate_IntvU 7Zend_Validate_InArrayvT ;Zend_Validate_IdenticalvS 1Zend_Validate_IbanvR 9Zend_Validate_HostnamevQ /Zend_Validate_HexvP ?Zend_Validate_GreaterThanvO 3Zend_Validate_Floatv!N EZend_Validate_File_WordCountvM ?Zend_Validate_File_UploadvL ;Zend_Validate_File_SizevK ;Zend_Validate_File_Sha1v!J EZend_Validate_File_NotExistsv I CZend_Validate_File_MimeTypevH 9Zend_Validate_File_Md5vG AZend_Validate_File_IsImagev$F KZend_Validate_File_IsCompressedv!E EZend_Validate_File_ImageSizevD ;Zend_Validate_File_Hashv!C EZend_Validate_File_FilesSizev!B EZend_Validate_File_ExtensionvA ?Zend_Validate_File_Existsv'@ QZend_Validate_File_ExcludeMimeTypev(? SZend_Validate_File_ExcludeExtensionv> =Zend_Validate_File_Crc32v= =Zend_Validate_File_Countv< ;Zend_Validate_Exceptionv; AZend_Validate_EmailAddressv: 5Zend_Validate_Digitsv"9 GZend_Validate_Db_RecordExistsv$8 KZend_Validate_Db_NoRecordExistsv7 ?Zend_Validate_Db_Abstractv6 1Zend_Validate_Datev5 3Zend_Validate_Ccnumv4 7Zend_Validate_Betweenv3 7Zend_Validate_Barcodev2 AZend_Validate_Barcode_UpcAv 1 CZend_Validate_Barcode_Ean13v0 3Zend_Validate_Alphav/ 3Zend_Validate_Alnumv. 9Zend_Validate_Abstractv- Zend_Uriv, 'Zend_Uri_Httpv+ 1Zend_Uri_Exceptionv* )Zend_Translatev) 7Zend_Translate_Pluralv( =Zend_Translate_Exceptionv' 9Zend_Translate_Adapterv!& EZend_Translate_Adapter_XmlTmv!% EZend_Translate_Adapter_Xliffv$ AZend_Translate_Adapter_Tmxv# AZend_Translate_Adapter_Tbxv" ?Zend_Translate_Adapter_Qtv! AZend_Translate_Adapter_Iniv#  IZend_Translate_Adapter_Gettextv AZend_Translate_Adapter_Csvv! EZend_Translate_Adapter_Arrayv$ KZend_Tool_Project_Provider_Viewv$ KZend_Tool_Project_Provider_Testv/ aZend_Tool_Project_Provider_ProjectProviderv   h  zN*V|N)nD$vQ'



y
^
@
&
					g	B	!\9rQ7wT0b;wP.zb?q@a4                                        1s eZend_Application_Bootstrap_BootstrapAbstractw)r UZend_Application_Bootstrap_Bootstrapwq ?Zend_Amf_Value_TraitsInfow-p ]Zend_Amf_Value_Messaging_RemotingMessagew*o WZend_Amf_Value_Messaging_ErrorMessagew,n [Zend_Amf_Value_Messaging_CommandMessagew*m WZend_Amf_Value_Messaging_AsyncMessagew-l ]Zend_Amf_Value_Messaging_ArrayCollectionw0k cZend_Amf_Value_Messaging_AcknowledgeMessagew-j ]Zend_Amf_Value_Messaging_AbstractMessagew!i EZend_Amf_Value_MessageHeaderwh AZend_Amf_Value_MessageBodywg =Zend_Amf_Value_ByteArraywf AZend_Amf_Util_BinaryStreamwe +Zend_Amf_Serverwd ?Zend_Amf_Server_Exceptionwc /Zend_Amf_Responsewb 9Zend_Amf_Response_Httpwa -Zend_Amf_Requestw` 7Zend_Amf_Request_Httpw_ ?Zend_Amf_Parse_TypeLoaderw^ ?Zend_Amf_Parse_Serializerw#] IZend_Amf_Parse_Resource_Streamw(\ SZend_Amf_Parse_Resource_MysqlResultw)[ UZend_Amf_Parse_Resource_MysqliResultw Z CZend_Amf_Parse_OutputStreamwY AZend_Amf_Parse_InputStreamw X CZend_Amf_Parse_Deserializerw#W IZend_Amf_Parse_Amf3_Serializerw%V MZend_Amf_Parse_Amf3_Deserializerw#U IZend_Amf_Parse_Amf0_Serializerw%T MZend_Amf_Parse_Amf0_DeserializerwS 1Zend_Amf_ExceptionwR 1Zend_Amf_ConstantswQ 9Zend_Amf_Auth_Abstractw P CZend_Amf_Adobe_IntrospectorwO AZend_Amf_Adobe_DbInspectorwN 3Zend_Amf_Adobe_AuthwM Zend_AclwL 'Zend_Acl_RolewK 9Zend_Acl_Role_Registryw%J MZend_Acl_Role_Registry_ExceptionwI /Zend_Acl_ResourcewH 1Zend_Acl_ExceptionwG /Zend_XmlRpc_ValuevF =Zend_XmlRpc_Value_StructvE =Zend_XmlRpc_Value_StringvD =Zend_XmlRpc_Value_ScalarvC 7Zend_XmlRpc_Value_NilvB ?Zend_XmlRpc_Value_Integerv A CZend_XmlRpc_Value_Exceptionv@ =Zend_XmlRpc_Value_Doublev? AZend_XmlRpc_Value_DateTimev!> EZend_XmlRpc_Value_Collectionv= ?Zend_XmlRpc_Value_Booleanv< =Zend_XmlRpc_Value_Base64v; ;Zend_XmlRpc_Value_Arrayv: 1Zend_XmlRpc_Serverv9 ?Zend_XmlRpc_Server_Systemv8 =Zend_XmlRpc_Server_Faultv!7 EZend_XmlRpc_Server_Exceptionv6 =Zend_XmlRpc_Server_Cachev5 5Zend_XmlRpc_Responsev4 ?Zend_XmlRpc_Response_Httpv3 3Zend_XmlRpc_Requestv2 ?Zend_XmlRpc_Request_Stdinv1 =Zend_XmlRpc_Request_Httpv0 /Zend_XmlRpc_Faultv/ 7Zend_XmlRpc_Exceptionv. 1Zend_XmlRpc_Clientv#- IZend_XmlRpc_Client_ServerProxyv+, YZend_XmlRpc_Client_ServerIntrospectionv++ YZend_XmlRpc_Client_IntrospectExceptionv%* MZend_XmlRpc_Client_HttpExceptionv&) OZend_XmlRpc_Client_FaultExceptionv!( EZend_XmlRpc_Client_Exceptionv&' OZend_Wildfire_Protocol_JsonStreamv!& EZend_Wildfire_Plugin_FirePhpv.% _Zend_Wildfire_Plugin_FirePhp_TableMessagev)$ UZend_Wildfire_Plugin_FirePhp_Messagev# ;Zend_Wildfire_Exceptionv&" OZend_Wildfire_Channel_HttpHeadersv! Zend_Viewv  -Zend_View_Streamv 5Zend_View_Helper_Urlv AZend_View_Helper_Translatev AZend_View_Helper_ServerUrlv) UZend_View_Helper_RenderToPlaceholderv! EZend_View_Helper_Placeholderv* WZend_View_Helper_Placeholder_Registryv4 kZend_View_Helper_Placeholder_Registry_Exceptionv+ YZend_View_Helper_Placeholder_Containerv6 oZend_View_Helper_Placeholder_Container_Standalonev5 mZend_View_Helper_Placeholder_Container_Exceptionv4 kZend_View_Helper_Placeholder_Container_Abstractv! EZend_View_Helper_PartialLoopv =Zend_View_Helper_Partialv' QZend_View_Helper_Partial_Exceptionv' QZend_View_Helper_PaginationControlv  CZend_View_Helper_Navigationv( SZend_View_Helper_Navigation_Sitemapv% MZend_View_Helper_Navigation_Menuv& OZend_View_Helper_Navigation_Linksv/ aZend_View_Helper_Navigation_HelperAbstractv   X  `9{Y/v<S$jI%



e
=
				r	?	j@BK}OMMjD# {Q                                      t CZend_Auth_Storage_Interfacew s CZend_Auth_Adapter_Interfacew.r _Zend_Auth_Adapter_Http_Resolver_Interfacew'q QZend_Application_Resource_Resourcew4p kZend_Application_Bootstrap_ResourceBootstrapperw,o [Zend_Application_Bootstrap_Bootstrapperwn ;Zend_Acl_Role_Interfacew m CZend_Acl_Resource_Interfacewl ?Zend_Acl_Assert_Interfacew#k IZend_Wildfire_Plugin_Interfacev$j KZend_Wildfire_Channel_Interfacevi 3Zend_View_Interfacev'h QZend_View_Helper_Navigation_Helpervg AZend_View_Helper_Interfacevf ;Zend_Validate_Interfacev3e iZend_Tool_Project_Profile_FileParser_Interfacev:d wZend_Tool_Project_Context_System_TopLevelRestrictablev5c mZend_Tool_Project_Context_System_NotOverwritablev/b aZend_Tool_Project_Context_System_Interfacev(a SZend_Tool_Project_Context_Interfacev+` YZend_Tool_Framework_Registry_Interfacev2_ gZend_Tool_Framework_Registry_EnabledInterfacev-^ ]Zend_Tool_Framework_Provider_Pretendablev+] YZend_Tool_Framework_Provider_Interfacev.\ _Zend_Tool_Framework_Provider_Interactablev;[ yZend_Tool_Framework_Provider_DocblockManifestInterfacev+Z YZend_Tool_Framework_Metadata_Interfacev6Y oZend_Tool_Framework_Manifest_ProviderManifestablev6X oZend_Tool_Framework_Manifest_MetadataManifestablev+W YZend_Tool_Framework_Manifest_Interfacev+V YZend_Tool_Framework_Manifest_Indexablev4U kZend_Tool_Framework_Manifest_ActionManifestablev8T sZend_Tool_Framework_Client_Storage_AdapterInterfacevDS 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interfacev;R yZend_Tool_Framework_Client_Interactive_OutputInterfacev:Q wZend_Tool_Framework_Client_Interactive_InputInterfacev)P UZend_Tool_Framework_Action_Interfacev(O SZend_Text_Table_Decorator_InterfacevN /Zend_Tag_Taggablev&M OZend_Soap_Wsdl_Strategy_Interfacev%L MZend_Session_Validator_Interfacev'K QZend_Session_SaveHandler_InterfacevJ 7Zend_Server_Interfacev4I kZend_Search_Lucene_Search_Highlighter_Interfacev!H EZend_Search_Lucene_Interfacev3G iZend_Search_Lucene_Index_TermsStream_Interfacev$F KZend_Queue_Stomp_FrameInterfacev0E cZend_Queue_Stomp_Client_ConnectionInterfacev(D SZend_Queue_Adapter_AdapterInterfacevC ?Zend_Pdf_Filter_Interfacev&B OZend_Pdf_ElementFactory_Interfacev,A [Zend_Paginator_ScrollingStyle_Interfacev$@ KZend_Paginator_AdapterAggregatev%? MZend_Paginator_Adapter_Interfacev$> KZend_Memory_Container_Interfacev)= UZend_Mail_Storage_Writable_Interfacev'< QZend_Mail_Storage_Folder_Interfacev; =Zend_Mail_Part_Interfacev : CZend_Mail_Message_Interfacev!9 EZend_Log_Formatter_Interfacev8 ?Zend_Log_Filter_Interfacev'7 QZend_Loader_PluginLoader_Interfacev%6 MZend_Loader_Autoloader_Interfacev05 cZend_Ldap_Node_Schema_ObjectClass_Interfacev24 gZend_Ldap_Node_Schema_AttributeType_Interfacev,3 [Zend_Ldap_Collection_Iterator_Interfacev32 iZend_InfoCard_Xml_Security_Transform_Interfacev(1 SZend_InfoCard_Xml_KeyInfo_Interfacev(0 SZend_InfoCard_Xml_Element_Interfacev*/ WZend_InfoCard_Xml_Assertion_Interfacev-. ]Zend_InfoCard_Cipher_Symmetric_Interfacev7- qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interfacev7, qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interfacev++ YZend_InfoCard_Cipher_Pki_Rsa_Interfacev'* QZend_InfoCard_Cipher_Pki_Interfacev$) KZend_InfoCard_Adapter_Interfacev'( QZend_Http_Client_Adapter_Interfacev' AZend_Gdata_App_MediaSourcev.& _Zend_Form_Decorator_Marker_File_Interfacev"% GZend_Form_Decorator_Interfacev$ 7Zend_Filter_Interfacev"# GZend_Filter_Encrypt_Interfacev#" IZend_Feed_Reader_FeedInterfacev$! KZend_Feed_Reader_EntryInterfacev   CZend_Feed_Builder_Interfacev  CZend_Db_Statement_Interfacev) UZend_Crypt_Math_BigInteger_Interfacev+ YZend_Controller_Router_Route_Interfacev   e  [6
\/}V=wX5tR@!



u
S
+
 				{	^	<	kL0kG"]5c-qP1`1ZU+                                       /X aZend_Controller_Action_Helper_ViewRendererw&W OZend_Controller_Action_Helper_Urlw-V ]Zend_Controller_Action_Helper_Redirectorw'U QZend_Controller_Action_Helper_Jsonw1T eZend_Controller_Action_Helper_FlashMessengerw0S cZend_Controller_Action_Helper_ContextSwitchw<R {Zend_Controller_Action_Helper_AutoCompleteScriptaculousw3Q iZend_Controller_Action_Helper_AutoCompleteDojow8P sZend_Controller_Action_Helper_AutoComplete_Abstractw.O _Zend_Controller_Action_Helper_AjaxContextw.N _Zend_Controller_Action_Helper_ActionStackw+M YZend_Controller_Action_Helper_Abstractw%L MZend_Controller_Action_ExceptionwK 3Zend_Console_Getoptw"J GZend_Console_Getopt_ExceptionwI #Zend_ConfigwH +Zend_Config_XmlwG 1Zend_Config_WriterwF 9Zend_Config_Writer_XmlwE 9Zend_Config_Writer_IniwD =Zend_Config_Writer_ArraywC +Zend_Config_IniwB 7Zend_Config_Exceptionw$A KZend_CodeGenerator_Php_Propertyw1@ eZend_CodeGenerator_Php_Property_DefaultValuew%? MZend_CodeGenerator_Php_Parameterw2> gZend_CodeGenerator_Php_Parameter_DefaultValuew"= GZend_CodeGenerator_Php_Methodw,< [Zend_CodeGenerator_Php_Member_Containerw+; YZend_CodeGenerator_Php_Member_Abstractw : CZend_CodeGenerator_Php_Filew%9 MZend_CodeGenerator_Php_Exceptionw$8 KZend_CodeGenerator_Php_Docblockw(7 SZend_CodeGenerator_Php_Docblock_Tagw/6 aZend_CodeGenerator_Php_Docblock_Tag_Returnw.5 _Zend_CodeGenerator_Php_Docblock_Tag_Paramw04 cZend_CodeGenerator_Php_Docblock_Tag_Licensew!3 EZend_CodeGenerator_Php_Classw 2 CZend_CodeGenerator_Php_Bodyw$1 KZend_CodeGenerator_Php_Abstractw!0 EZend_CodeGenerator_Exceptionw / CZend_CodeGenerator_Abstractw. /Zend_Captcha_Wordw- 9Zend_Captcha_ReCaptchaw, 1Zend_Captcha_Imagew+ 3Zend_Captcha_Figletw* 9Zend_Captcha_Exceptionw) /Zend_Captcha_Dumbw( /Zend_Captcha_Basew' !Zend_Cachew& =Zend_Cache_Frontend_Pagew% AZend_Cache_Frontend_Outputw!$ EZend_Cache_Frontend_Functionw# =Zend_Cache_Frontend_Filew" ?Zend_Cache_Frontend_Classw! 5Zend_Cache_Exceptionw  +Zend_Cache_Corew 1Zend_Cache_Backendw" GZend_Cache_Backend_ZendServerw( SZend_Cache_Backend_ZendServer_ShMemw' QZend_Cache_Backend_ZendServer_Diskw$ KZend_Cache_Backend_ZendPlatformw ?Zend_Cache_Backend_Xcachew! EZend_Cache_Backend_TwoLevelsw ;Zend_Cache_Backend_Testw ?Zend_Cache_Backend_Sqlitew! EZend_Cache_Backend_Memcachedw ;Zend_Cache_Backend_Filew 9Zend_Cache_Backend_Apcw Zend_Authw ?Zend_Auth_Storage_Sessionw$ KZend_Auth_Storage_NonPersistentw  CZend_Auth_Storage_Exceptionw -Zend_Auth_Resultw 3Zend_Auth_Exceptionw =Zend_Auth_Adapter_OpenIdw 9Zend_Auth_Adapter_Ldapw AZend_Auth_Adapter_InfoCardw
 9Zend_Auth_Adapter_Httpw)	 UZend_Auth_Adapter_Http_Resolver_Filew. _Zend_Auth_Adapter_Http_Resolver_Exceptionw  CZend_Auth_Adapter_Exceptionw =Zend_Auth_Adapter_Digestw ?Zend_Auth_Adapter_DbTablew -Zend_Applicationw# IZend_Application_Resource_Vieww( SZend_Application_Resource_Translatew& OZend_Application_Resource_Sessionw%  MZend_Application_Resource_Routerw/ aZend_Application_Resource_ResourceAbstractw)~ UZend_Application_Resource_Navigationw&} OZend_Application_Resource_Modulesw%| MZend_Application_Resource_Localew%{ MZend_Application_Resource_Layoutw.z _Zend_Application_Resource_Frontcontrollerw(y SZend_Application_Resource_Exceptionw!x EZend_Application_Resource_Dbw&w OZend_Application_Module_Bootstrapw'v QZend_Application_Module_Autoloaderwu AZend_Application_Exceptionw)t UZend_Application_Bootstrap_Exceptionw   n  {O"c=jEwQ#}R$



|
Q
0
					[	8	tT>%wU,|X8fG-{d<b@ {Z:oH+               F !Zend_DebugwE Zend_DbwD 'Zend_Db_TablewC 5Zend_Db_Table_Selectw#B IZend_Db_Table_Select_ExceptionwA 5Zend_Db_Table_Rowsetw#@ IZend_Db_Table_Rowset_Exceptionw"? GZend_Db_Table_Rowset_Abstractw> /Zend_Db_Table_Roww = CZend_Db_Table_Row_Exceptionw< AZend_Db_Table_Row_Abstractw; ;Zend_Db_Table_Exceptionw: =Zend_Db_Table_Definitionw9 9Zend_Db_Table_Abstractw8 /Zend_Db_Statementw7 =Zend_Db_Statement_Sqlsrvw'6 QZend_Db_Statement_Sqlsrv_Exceptionw5 7Zend_Db_Statement_Pdow4 ?Zend_Db_Statement_Pdo_Ociw3 ?Zend_Db_Statement_Pdo_Ibmw2 =Zend_Db_Statement_Oraclew'1 QZend_Db_Statement_Oracle_Exceptionw0 =Zend_Db_Statement_Mysqliw'/ QZend_Db_Statement_Mysqli_Exceptionw . CZend_Db_Statement_Exceptionw- 7Zend_Db_Statement_Db2w$, KZend_Db_Statement_Db2_Exceptionw+ )Zend_Db_Selectw* =Zend_Db_Select_Exceptionw) -Zend_Db_Profilerw( 9Zend_Db_Profiler_Queryw' =Zend_Db_Profiler_Firebugw& AZend_Db_Profiler_Exceptionw% %Zend_Db_Exprw$ /Zend_Db_Exceptionw# 9Zend_Db_Adapter_Sqlsrvw%" MZend_Db_Adapter_Sqlsrv_Exceptionw! AZend_Db_Adapter_Pdo_Sqlitew  ?Zend_Db_Adapter_Pdo_Pgsqlw ;Zend_Db_Adapter_Pdo_Ociw ?Zend_Db_Adapter_Pdo_Mysqlw ?Zend_Db_Adapter_Pdo_Mssqlw ;Zend_Db_Adapter_Pdo_Ibmw  CZend_Db_Adapter_Pdo_Ibm_Idsw  CZend_Db_Adapter_Pdo_Ibm_Db2w! EZend_Db_Adapter_Pdo_Abstractw 9Zend_Db_Adapter_Oraclew% MZend_Db_Adapter_Oracle_Exceptionw 9Zend_Db_Adapter_Mysqliw% MZend_Db_Adapter_Mysqli_Exceptionw ?Zend_Db_Adapter_Exceptionw 3Zend_Db_Adapter_Db2w" GZend_Db_Adapter_Db2_Exceptionw =Zend_Db_Adapter_Abstractw Zend_Datew 3Zend_Date_Exceptionw 5Zend_Date_DateObjectw -Zend_Date_Citiesw 'Zend_Currencyw ;Zend_Currency_Exceptionw
 !Zend_Cryptw	 )Zend_Crypt_Rsaw 1Zend_Crypt_Rsa_Keyw ?Zend_Crypt_Rsa_Key_Publicw AZend_Crypt_Rsa_Key_Privatew +Zend_Crypt_Mathw ?Zend_Crypt_Math_Exceptionw AZend_Crypt_Math_BigIntegerw# IZend_Crypt_Math_BigInteger_Gmpw) UZend_Crypt_Math_BigInteger_Exceptionw&  OZend_Crypt_Math_BigInteger_Bcmathw +Zend_Crypt_Hmacw~ ?Zend_Crypt_Hmac_Exceptionw} 5Zend_Crypt_Exceptionw| =Zend_Crypt_DiffieHellmanw'{ QZend_Crypt_DiffieHellman_Exceptionw!z EZend_Controller_Router_Routew(y SZend_Controller_Router_Route_Staticw'x QZend_Controller_Router_Route_Regexw(w SZend_Controller_Router_Route_Modulew*v WZend_Controller_Router_Route_Hostnamew'u QZend_Controller_Router_Route_Chainw*t WZend_Controller_Router_Route_Abstractw#s IZend_Controller_Router_Rewritew%r MZend_Controller_Router_Exceptionw$q KZend_Controller_Router_Abstractw*p WZend_Controller_Response_HttpTestCasew"o GZend_Controller_Response_Httpw'n QZend_Controller_Response_Exceptionw!m EZend_Controller_Response_Cliw&l OZend_Controller_Response_Abstractw#k IZend_Controller_Request_Simplew)j UZend_Controller_Request_HttpTestCasew!i EZend_Controller_Request_Httpw&h OZend_Controller_Request_Exceptionw&g OZend_Controller_Request_Apache404w%f MZend_Controller_Request_Abstractw&e OZend_Controller_Plugin_PutHandlerw(d SZend_Controller_Plugin_ErrorHandlerw"c GZend_Controller_Plugin_Brokerw'b QZend_Controller_Plugin_ActionStackw$a KZend_Controller_Plugin_Abstractw` 7Zend_Controller_Frontw_ ?Zend_Controller_Exceptionw(^ SZend_Controller_Dispatcher_Standardw)] UZend_Controller_Dispatcher_Exceptionw(\ SZend_Controller_Dispatcher_Abstractw[ 9Zend_Controller_Actionw(Z SZend_Controller_Action_HelperBrokerw6Y oZend_Controller_Action_HelperBroker_PriorityStackw   a  |Mf6f>o@\.



b
1
				{	O	!V,a<d6`5
c6$	jJ&kO3j9                                                       5' mZend_Feed_Reader_Extension_CreativeCommons_Entryw-& ]Zend_Feed_Reader_Extension_Content_Entryw)% UZend_Feed_Reader_Extension_Atom_Feedw*$ WZend_Feed_Reader_Extension_Atom_Entryw## IZend_Feed_Reader_EntryAbstractw" AZend_Feed_Reader_Entry_Rssw ! CZend_Feed_Reader_Entry_Atomw  3Zend_Feed_Exceptionw 3Zend_Feed_Entry_Rssw 5Zend_Feed_Entry_Atomw =Zend_Feed_Entry_Abstractw /Zend_Feed_Elementw /Zend_Feed_Builderw =Zend_Feed_Builder_Headerw$ KZend_Feed_Builder_Header_Itunesw  CZend_Feed_Builder_Exceptionw ;Zend_Feed_Builder_Entryw )Zend_Feed_Atomw 1Zend_Feed_Abstractw )Zend_Exceptionw )Zend_Dom_Queryw 7Zend_Dom_Query_Resultw =Zend_Dom_Query_Css2Xpathw 1Zend_Dom_Exceptionw Zend_Dojow) UZend_Dojo_View_Helper_VerticalSliderw, [Zend_Dojo_View_Helper_ValidationTextBoxw& OZend_Dojo_View_Helper_TimeTextBoxw" GZend_Dojo_View_Helper_TextBoxw#
 IZend_Dojo_View_Helper_Textareaw'	 QZend_Dojo_View_Helper_TabContainerw' QZend_Dojo_View_Helper_SubmitButtonw) UZend_Dojo_View_Helper_StackContainerw) UZend_Dojo_View_Helper_SplitContainerw! EZend_Dojo_View_Helper_Sliderw) UZend_Dojo_View_Helper_SimpleTextareaw& OZend_Dojo_View_Helper_RadioButtonw* WZend_Dojo_View_Helper_PasswordTextBoxw( SZend_Dojo_View_Helper_NumberTextBoxw(  SZend_Dojo_View_Helper_NumberSpinnerw+ YZend_Dojo_View_Helper_HorizontalSliderw~ AZend_Dojo_View_Helper_Formw*} WZend_Dojo_View_Helper_FilteringSelectw!| EZend_Dojo_View_Helper_Editorw{ AZend_Dojo_View_Helper_Dojow)z UZend_Dojo_View_Helper_Dojo_Containerw)y UZend_Dojo_View_Helper_DijitContainerw x CZend_Dojo_View_Helper_Dijitw&w OZend_Dojo_View_Helper_DateTextBoxw&v OZend_Dojo_View_Helper_CustomDijitw*u WZend_Dojo_View_Helper_CurrencyTextBoxw&t OZend_Dojo_View_Helper_ContentPanew#s IZend_Dojo_View_Helper_ComboBoxw#r IZend_Dojo_View_Helper_CheckBoxw!q EZend_Dojo_View_Helper_Buttonw*p WZend_Dojo_View_Helper_BorderContainerw(o SZend_Dojo_View_Helper_AccordionPanew-n ]Zend_Dojo_View_Helper_AccordionContainerwm =Zend_Dojo_View_Exceptionwl )Zend_Dojo_Formwk 9Zend_Dojo_Form_SubFormw*j WZend_Dojo_Form_Element_VerticalSliderw-i ]Zend_Dojo_Form_Element_ValidationTextBoxw'h QZend_Dojo_Form_Element_TimeTextBoxw#g IZend_Dojo_Form_Element_TextBoxw$f KZend_Dojo_Form_Element_Textareaw(e SZend_Dojo_Form_Element_SubmitButtonw"d GZend_Dojo_Form_Element_Sliderw*c WZend_Dojo_Form_Element_SimpleTextareaw'b QZend_Dojo_Form_Element_RadioButtonw+a YZend_Dojo_Form_Element_PasswordTextBoxw)` UZend_Dojo_Form_Element_NumberTextBoxw)_ UZend_Dojo_Form_Element_NumberSpinnerw,^ [Zend_Dojo_Form_Element_HorizontalSliderw+] YZend_Dojo_Form_Element_FilteringSelectw"\ GZend_Dojo_Form_Element_Editorw&[ OZend_Dojo_Form_Element_DijitMultiw!Z EZend_Dojo_Form_Element_Dijitw'Y QZend_Dojo_Form_Element_DateTextBoxw+X YZend_Dojo_Form_Element_CurrencyTextBoxw$W KZend_Dojo_Form_Element_ComboBoxw$V KZend_Dojo_Form_Element_CheckBoxw"U GZend_Dojo_Form_Element_Buttonw T CZend_Dojo_Form_DisplayGroupw*S WZend_Dojo_Form_Decorator_TabContainerw,R [Zend_Dojo_Form_Decorator_StackContainerw,Q [Zend_Dojo_Form_Decorator_SplitContainerw'P QZend_Dojo_Form_Decorator_DijitFormw*O WZend_Dojo_Form_Decorator_DijitElementw,N [Zend_Dojo_Form_Decorator_DijitContainerw)M UZend_Dojo_Form_Decorator_ContentPanew-L ]Zend_Dojo_Form_Decorator_BorderContainerw+K YZend_Dojo_Form_Decorator_AccordionPanew0J cZend_Dojo_Form_Decorator_AccordionContainerwI 3Zend_Dojo_ExceptionwH )Zend_Dojo_DatawG 5Zend_Dojo_BuildLayerw   k  a0 p<jQ;){aD'uW6




p
V
>
					i	J	(	
[2W(qH$fE$l@lI%^8tQ1      /Zend_Form_SubFormw 3Zend_Form_Exceptionw /Zend_Form_Elementw ;Zend_Form_Element_Xhtmlw AZend_Form_Element_Textareaw 9Zend_Form_Element_Textw =Zend_Form_Element_Submitw =Zend_Form_Element_Selectw
 ;Zend_Form_Element_Resetw	 ;Zend_Form_Element_Radiow AZend_Form_Element_Passwordw" GZend_Form_Element_Multiselectw$ KZend_Form_Element_MultiCheckboxw ;Zend_Form_Element_Multiw ;Zend_Form_Element_Imagew =Zend_Form_Element_Hiddenw 9Zend_Form_Element_Hashw 9Zend_Form_Element_Filew   CZend_Form_Element_Exceptionw AZend_Form_Element_Checkboxw~ ?Zend_Form_Element_Captchaw} =Zend_Form_Element_Buttonw| 9Zend_Form_DisplayGroupw#{ IZend_Form_Decorator_ViewScriptw#z IZend_Form_Decorator_ViewHelperw y CZend_Form_Decorator_Tooltipw(x SZend_Form_Decorator_PrepareElementsww ?Zend_Form_Decorator_Labelwv ?Zend_Form_Decorator_Imagew u CZend_Form_Decorator_HtmlTagw#t IZend_Form_Decorator_FormErrorsw%s MZend_Form_Decorator_FormElementswr =Zend_Form_Decorator_Formwq =Zend_Form_Decorator_Filew!p EZend_Form_Decorator_Fieldsetw"o GZend_Form_Decorator_Exceptionwn AZend_Form_Decorator_Errorsw$m KZend_Form_Decorator_DtDdWrapperw$l KZend_Form_Decorator_Descriptionw k CZend_Form_Decorator_Captchaw%j MZend_Form_Decorator_Captcha_Wordw!i EZend_Form_Decorator_Callbackw!h EZend_Form_Decorator_Abstractwg #Zend_Filterw+f YZend_Filter_Word_UnderscoreToSeparatorw&e OZend_Filter_Word_UnderscoreToDashw+d YZend_Filter_Word_UnderscoreToCamelCasew*c WZend_Filter_Word_SeparatorToSeparatorw%b MZend_Filter_Word_SeparatorToDashw*a WZend_Filter_Word_SeparatorToCamelCasew(` SZend_Filter_Word_Separator_Abstractw&_ OZend_Filter_Word_DashToUnderscorew%^ MZend_Filter_Word_DashToSeparatorw%] MZend_Filter_Word_DashToCamelCasew+\ YZend_Filter_Word_CamelCaseToUnderscorew*[ WZend_Filter_Word_CamelCaseToSeparatorw%Z MZend_Filter_Word_CamelCaseToDashwY 7Zend_Filter_StripTagswX ?Zend_Filter_StripNewlineswW 9Zend_Filter_StringTrimwV ?Zend_Filter_StringToUpperwU ?Zend_Filter_StringToLowerwT 5Zend_Filter_RealPathwS ;Zend_Filter_PregReplacew&R OZend_Filter_NormalizedToLocalizedw&Q OZend_Filter_LocalizedToNormalizedwP +Zend_Filter_IntwO /Zend_Filter_InputwN 7Zend_Filter_InflectorwM =Zend_Filter_HtmlEntitieswL AZend_Filter_File_UpperCasewK ;Zend_Filter_File_RenamewJ AZend_Filter_File_LowerCasewI =Zend_Filter_File_EncryptwH =Zend_Filter_File_DecryptwG 7Zend_Filter_ExceptionwF 3Zend_Filter_Encryptw E CZend_Filter_Encrypt_OpensslwD AZend_Filter_Encrypt_McryptwC +Zend_Filter_DirwB 1Zend_Filter_DigitswA 3Zend_Filter_Decryptw@ 5Zend_Filter_Callbackw? 5Zend_Filter_BaseNamew> /Zend_Filter_Alphaw= /Zend_Filter_Alnumw< 1Zend_File_Transferw!; EZend_File_Transfer_Exceptionw$: KZend_File_Transfer_Adapter_Httpw(9 SZend_File_Transfer_Adapter_Abstractw8 Zend_Feedw7 'Zend_Feed_Rssw6 -Zend_Feed_Readerw"5 GZend_Feed_Reader_FeedAbstractw4 ?Zend_Feed_Reader_Feed_Rssw3 AZend_Feed_Reader_Feed_Atomw32 iZend_Feed_Reader_Extension_WellFormedWeb_Entryw,1 [Zend_Feed_Reader_Extension_Thread_Entryw00 cZend_Feed_Reader_Extension_Syndication_Feedw+/ YZend_Feed_Reader_Extension_Slash_Entryw,. [Zend_Feed_Reader_Extension_Podcast_Feedw-- ]Zend_Feed_Reader_Extension_Podcast_Entryw,, [Zend_Feed_Reader_Extension_FeedAbstractw-+ ]Zend_Feed_Reader_Extension_EntryAbstractw/* aZend_Feed_Reader_Extension_DublinCore_Feedw0) cZend_Feed_Reader_Extension_DublinCore_Entryw4( kZend_Feed_Reader_Extension_CreativeCommons_Feedw   `  X(oBzO)k@wP'



v
Q
!					c	;	$		U(rAd>a2f@oW'd3tV=                                             'r QZend_Gdata_Exif_Extension_Distancewq 7Zend_Gdata_Exif_Entrywp -Zend_Gdata_Entrywo 7Zend_Gdata_DublinCorew*n WZend_Gdata_DublinCore_Extension_Titlew,m [Zend_Gdata_DublinCore_Extension_Subjectw+l YZend_Gdata_DublinCore_Extension_Rightsw.k _Zend_Gdata_DublinCore_Extension_Publisherw-j ]Zend_Gdata_DublinCore_Extension_Languagew/i aZend_Gdata_DublinCore_Extension_Identifierw+h YZend_Gdata_DublinCore_Extension_Formatw0g cZend_Gdata_DublinCore_Extension_Descriptionw)f UZend_Gdata_DublinCore_Extension_Datew,e [Zend_Gdata_DublinCore_Extension_Creatorwd +Zend_Gdata_Docswc 7Zend_Gdata_Docs_Queryw%b MZend_Gdata_Docs_DocumentListFeedw&a OZend_Gdata_Docs_DocumentListEntryw` 9Zend_Gdata_ClientLoginw_ 3Zend_Gdata_Calendarw!^ EZend_Gdata_Calendar_ListFeedw"] GZend_Gdata_Calendar_ListEntryw-\ ]Zend_Gdata_Calendar_Extension_WebContentw+[ YZend_Gdata_Calendar_Extension_Timezonew9Z uZend_Gdata_Calendar_Extension_SendEventNotificationsw+Y YZend_Gdata_Calendar_Extension_Selectedw+X YZend_Gdata_Calendar_Extension_QuickAddw'W QZend_Gdata_Calendar_Extension_Linkw)V UZend_Gdata_Calendar_Extension_Hiddenw(U SZend_Gdata_Calendar_Extension_Colorw.T _Zend_Gdata_Calendar_Extension_AccessLevelw#S IZend_Gdata_Calendar_EventQueryw"R GZend_Gdata_Calendar_EventFeedw#Q IZend_Gdata_Calendar_EventEntrywP -Zend_Gdata_Booksw!O EZend_Gdata_Books_VolumeQueryw N CZend_Gdata_Books_VolumeFeedw!M EZend_Gdata_Books_VolumeEntryw+L YZend_Gdata_Books_Extension_Viewabilityw-K ]Zend_Gdata_Books_Extension_ThumbnailLinkw&J OZend_Gdata_Books_Extension_Revieww+I YZend_Gdata_Books_Extension_PreviewLinkw(H SZend_Gdata_Books_Extension_InfoLinkw-G ]Zend_Gdata_Books_Extension_Embeddabilityw)F UZend_Gdata_Books_Extension_BooksLinkw-E ]Zend_Gdata_Books_Extension_BooksCategoryw.D _Zend_Gdata_Books_Extension_AnnotationLinkw$C KZend_Gdata_Books_CollectionFeedw%B MZend_Gdata_Books_CollectionEntrywA 1Zend_Gdata_AuthSubw@ )Zend_Gdata_Appw$? KZend_Gdata_App_VersionExceptionw> 3Zend_Gdata_App_Utilw#= IZend_Gdata_App_MediaFileSourcew< ?Zend_Gdata_App_MediaEntryw2; gZend_Gdata_App_LoggingHttpClientAdapterSocketw: AZend_Gdata_App_IOExceptionw,9 [Zend_Gdata_App_InvalidArgumentExceptionw!8 EZend_Gdata_App_HttpExceptionw$7 KZend_Gdata_App_FeedSourceParentw#6 IZend_Gdata_App_FeedEntryParentw5 3Zend_Gdata_App_Feedw4 =Zend_Gdata_App_Extensionw!3 EZend_Gdata_App_Extension_Uriw%2 MZend_Gdata_App_Extension_Updatedw#1 IZend_Gdata_App_Extension_Titlew"0 GZend_Gdata_App_Extension_Textw%/ MZend_Gdata_App_Extension_Summaryw&. OZend_Gdata_App_Extension_Subtitlew$- KZend_Gdata_App_Extension_Sourcew$, KZend_Gdata_App_Extension_Rightsw'+ QZend_Gdata_App_Extension_Publishedw$* KZend_Gdata_App_Extension_Personw") GZend_Gdata_App_Extension_Namew"( GZend_Gdata_App_Extension_Logow"' GZend_Gdata_App_Extension_Linkw & CZend_Gdata_App_Extension_Idw"% GZend_Gdata_App_Extension_Iconw'$ QZend_Gdata_App_Extension_Generatorw## IZend_Gdata_App_Extension_Emailw%" MZend_Gdata_App_Extension_Elementw$! KZend_Gdata_App_Extension_Editedw#  IZend_Gdata_App_Extension_Draftw% MZend_Gdata_App_Extension_Controlw) UZend_Gdata_App_Extension_Contributorw% MZend_Gdata_App_Extension_Contentw& OZend_Gdata_App_Extension_Categoryw$ KZend_Gdata_App_Extension_Authorw =Zend_Gdata_App_Exceptionw 5Zend_Gdata_App_Entryw, [Zend_Gdata_App_CaptchaRequiredExceptionw# IZend_Gdata_App_BaseMediaSourcew 3Zend_Gdata_App_Basew* WZend_Gdata_App_BadMethodCallExceptionw! EZend_Gdata_App_AuthExceptionw Zend_Formw   b  W'dG/c5uJ&}U3




k
C
				e	<	rK,b1fAfJ3iI/tC~P#`3        *T WZend_Gdata_Media_Extension_MediaTitlew.S _Zend_Gdata_Media_Extension_MediaThumbnailw)R UZend_Gdata_Media_Extension_MediaTextw0Q cZend_Gdata_Media_Extension_MediaRestrictionw+P YZend_Gdata_Media_Extension_MediaRatingw+O YZend_Gdata_Media_Extension_MediaPlayerw-N ]Zend_Gdata_Media_Extension_MediaKeywordsw)M UZend_Gdata_Media_Extension_MediaHashw*L WZend_Gdata_Media_Extension_MediaGroupw0K cZend_Gdata_Media_Extension_MediaDescriptionw+J YZend_Gdata_Media_Extension_MediaCreditw.I _Zend_Gdata_Media_Extension_MediaCopyrightw,H [Zend_Gdata_Media_Extension_MediaContentw-G ]Zend_Gdata_Media_Extension_MediaCategorywF 9Zend_Gdata_Media_EntrywE AZend_Gdata_Kind_EventEntrywD 7Zend_Gdata_HttpClientw*C WZend_Gdata_HttpAdapterStreamingSocketw)B UZend_Gdata_HttpAdapterStreamingProxywA /Zend_Gdata_Healthw@ ;Zend_Gdata_Health_Queryw&? OZend_Gdata_Health_ProfileListFeedw'> QZend_Gdata_Health_ProfileListEntryw"= GZend_Gdata_Health_ProfileFeedw#< IZend_Gdata_Health_ProfileEntryw$; KZend_Gdata_Health_Extension_Ccrw: )Zend_Gdata_Geow9 3Zend_Gdata_Geo_Feedw$8 KZend_Gdata_Geo_Extension_GmlPosw&7 OZend_Gdata_Geo_Extension_GmlPointw)6 UZend_Gdata_Geo_Extension_GeoRssWherew5 5Zend_Gdata_Geo_Entryw4 -Zend_Gdata_Gbasew"3 GZend_Gdata_Gbase_SnippetQueryw!2 EZend_Gdata_Gbase_SnippetFeedw"1 GZend_Gdata_Gbase_SnippetEntryw0 9Zend_Gdata_Gbase_Queryw/ AZend_Gdata_Gbase_ItemQueryw. ?Zend_Gdata_Gbase_ItemFeedw- AZend_Gdata_Gbase_ItemEntryw, 7Zend_Gdata_Gbase_Feedw-+ ]Zend_Gdata_Gbase_Extension_BaseAttributew* 9Zend_Gdata_Gbase_Entryw) -Zend_Gdata_Gappsw( AZend_Gdata_Gapps_UserQueryw' ?Zend_Gdata_Gapps_UserFeedw& AZend_Gdata_Gapps_UserEntryw&% OZend_Gdata_Gapps_ServiceExceptionw$ 9Zend_Gdata_Gapps_Queryw## IZend_Gdata_Gapps_NicknameQueryw"" GZend_Gdata_Gapps_NicknameFeedw#! IZend_Gdata_Gapps_NicknameEntryw%  MZend_Gdata_Gapps_Extension_Quotaw( SZend_Gdata_Gapps_Extension_Nicknamew$ KZend_Gdata_Gapps_Extension_Namew% MZend_Gdata_Gapps_Extension_Loginw) UZend_Gdata_Gapps_Extension_EmailListw 9Zend_Gdata_Gapps_Errorw- ]Zend_Gdata_Gapps_EmailListRecipientQueryw, [Zend_Gdata_Gapps_EmailListRecipientFeedw- ]Zend_Gdata_Gapps_EmailListRecipientEntryw$ KZend_Gdata_Gapps_EmailListQueryw# IZend_Gdata_Gapps_EmailListFeedw$ KZend_Gdata_Gapps_EmailListEntryw +Zend_Gdata_Feedw 5Zend_Gdata_Extensionw =Zend_Gdata_Extension_Whow AZend_Gdata_Extension_Wherew ?Zend_Gdata_Extension_Whenw$ KZend_Gdata_Extension_Visibilityw& OZend_Gdata_Extension_Transparencyw" GZend_Gdata_Extension_Reminderw- ]Zend_Gdata_Extension_RecurrenceExceptionw$ KZend_Gdata_Extension_Recurrencew 
 CZend_Gdata_Extension_Ratingw'	 QZend_Gdata_Extension_OriginalEventw0 cZend_Gdata_Extension_OpenSearchTotalResultsw. _Zend_Gdata_Extension_OpenSearchStartIndexw0 cZend_Gdata_Extension_OpenSearchItemsPerPagew" GZend_Gdata_Extension_FeedLinkw* WZend_Gdata_Extension_ExtendedPropertyw% MZend_Gdata_Extension_EventStatusw# IZend_Gdata_Extension_EntryLinkw" GZend_Gdata_Extension_Commentsw&  OZend_Gdata_Extension_AttendeeTypew( SZend_Gdata_Extension_AttendeeStatusw~ +Zend_Gdata_Exifw} 5Zend_Gdata_Exif_Feedw#| IZend_Gdata_Exif_Extension_Timew#{ IZend_Gdata_Exif_Extension_Tagsw$z KZend_Gdata_Exif_Extension_Modelw#y IZend_Gdata_Exif_Extension_Makew"x GZend_Gdata_Exif_Extension_Isow,w [Zend_Gdata_Exif_Extension_ImageUniqueIdw$v KZend_Gdata_Exif_Extension_FStopw*u WZend_Gdata_Exif_Extension_FocalLengthw$t KZend_Gdata_Exif_Extension_Flashw's QZend_Gdata_Exif_Extension_Exposurew   [  hC|N!d=Vf9



_
4

				y	U	2	^0j@]/oG rE\/{I`3                      ,/ [Zend_Gdata_YouTube_Extension_PlaylistIdw,. [Zend_Gdata_YouTube_Extension_Occupationw)- UZend_Gdata_YouTube_Extension_NoEmbedw', QZend_Gdata_YouTube_Extension_Musicw(+ SZend_Gdata_YouTube_Extension_Moviesw-* ]Zend_Gdata_YouTube_Extension_MediaRatingw,) [Zend_Gdata_YouTube_Extension_MediaGroupw-( ]Zend_Gdata_YouTube_Extension_MediaCreditw.' _Zend_Gdata_YouTube_Extension_MediaContentw*& WZend_Gdata_YouTube_Extension_Locationw&% OZend_Gdata_YouTube_Extension_Linkw*$ WZend_Gdata_YouTube_Extension_LastNamew*# WZend_Gdata_YouTube_Extension_Hometownw)" UZend_Gdata_YouTube_Extension_Hobbiesw(! SZend_Gdata_YouTube_Extension_Genderw+  YZend_Gdata_YouTube_Extension_FirstNamew* WZend_Gdata_YouTube_Extension_Durationw- ]Zend_Gdata_YouTube_Extension_Descriptionw+ YZend_Gdata_YouTube_Extension_CountHintw) UZend_Gdata_YouTube_Extension_Controlw) UZend_Gdata_YouTube_Extension_Companyw' QZend_Gdata_YouTube_Extension_Booksw% MZend_Gdata_YouTube_Extension_Agew) UZend_Gdata_YouTube_Extension_AboutMew# IZend_Gdata_YouTube_ContactFeedw$ KZend_Gdata_YouTube_ContactEntryw# IZend_Gdata_YouTube_CommentFeedw$ KZend_Gdata_YouTube_CommentEntryw$ KZend_Gdata_YouTube_ActivityFeedw% MZend_Gdata_YouTube_ActivityEntryw ;Zend_Gdata_Spreadsheetsw* WZend_Gdata_Spreadsheets_WorksheetFeedw+ YZend_Gdata_Spreadsheets_WorksheetEntryw, [Zend_Gdata_Spreadsheets_SpreadsheetFeedw- ]Zend_Gdata_Spreadsheets_SpreadsheetEntryw& OZend_Gdata_Spreadsheets_ListQueryw% MZend_Gdata_Spreadsheets_ListFeedw&
 OZend_Gdata_Spreadsheets_ListEntryw/	 aZend_Gdata_Spreadsheets_Extension_RowCountw- ]Zend_Gdata_Spreadsheets_Extension_Customw/ aZend_Gdata_Spreadsheets_Extension_ColCountw+ YZend_Gdata_Spreadsheets_Extension_Cellw* WZend_Gdata_Spreadsheets_DocumentQueryw& OZend_Gdata_Spreadsheets_CellQueryw% MZend_Gdata_Spreadsheets_CellFeedw& OZend_Gdata_Spreadsheets_CellEntryw -Zend_Gdata_Queryw  /Zend_Gdata_Photosw  CZend_Gdata_Photos_UserQueryw~ AZend_Gdata_Photos_UserFeedw } CZend_Gdata_Photos_UserEntryw| AZend_Gdata_Photos_TagEntryw!{ EZend_Gdata_Photos_PhotoQueryw z CZend_Gdata_Photos_PhotoFeedw!y EZend_Gdata_Photos_PhotoEntryw&x OZend_Gdata_Photos_Extension_Widthw'w QZend_Gdata_Photos_Extension_Weightw(v SZend_Gdata_Photos_Extension_Versionw%u MZend_Gdata_Photos_Extension_Userw*t WZend_Gdata_Photos_Extension_Timestampw*s WZend_Gdata_Photos_Extension_Thumbnailw%r MZend_Gdata_Photos_Extension_Sizew)q UZend_Gdata_Photos_Extension_Rotationw+p YZend_Gdata_Photos_Extension_QuotaLimitw-o ]Zend_Gdata_Photos_Extension_QuotaCurrentw)n UZend_Gdata_Photos_Extension_Positionw(m SZend_Gdata_Photos_Extension_PhotoIdw3l iZend_Gdata_Photos_Extension_NumPhotosRemainingw*k WZend_Gdata_Photos_Extension_NumPhotosw)j UZend_Gdata_Photos_Extension_Nicknamew%i MZend_Gdata_Photos_Extension_Namew2h gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumw)g UZend_Gdata_Photos_Extension_Locationw#f IZend_Gdata_Photos_Extension_Idw'e QZend_Gdata_Photos_Extension_Heightw2d gZend_Gdata_Photos_Extension_CommentingEnabledw-c ]Zend_Gdata_Photos_Extension_CommentCountw'b QZend_Gdata_Photos_Extension_Clientw)a UZend_Gdata_Photos_Extension_Checksumw*` WZend_Gdata_Photos_Extension_BytesUsedw(_ SZend_Gdata_Photos_Extension_AlbumIdw'^ QZend_Gdata_Photos_Extension_Accessw#] IZend_Gdata_Photos_CommentEntryw!\ EZend_Gdata_Photos_AlbumQueryw [ CZend_Gdata_Photos_AlbumFeedw!Z EZend_Gdata_Photos_AlbumEntrywY 3Zend_Gdata_MimeFilewX ?Zend_Gdata_MimeBodyStringwW AZend_Gdata_MediaMimeStreamwV -Zend_Gdata_MediawU 7Zend_Gdata_Media_Feedw   d  rAZ/zLU'uO*




^
6
						h	B	\#g>pI%W{X'lI#w^LoR6!                     ?Zend_Ldap_Filter_Abstractw 3Zend_Ldap_Exceptionw %Zend_Ldap_Dnw 3Zend_Ldap_Converterw 5Zend_Ldap_Collectionw* WZend_Ldap_Collection_Iterator_Defaultw 3Zend_Ldap_Attributew #Zend_Layoutw 7Zend_Layout_Exceptionw)
 UZend_Layout_Controller_Plugin_Layoutw0	 cZend_Layout_Controller_Action_Helper_Layoutw Zend_Jsonw -Zend_Json_Serverw 5Zend_Json_Server_Smdw! EZend_Json_Server_Smd_Servicew ?Zend_Json_Server_Responsew# IZend_Json_Server_Response_Httpw =Zend_Json_Server_Requestw" GZend_Json_Server_Request_Httpw  AZend_Json_Server_Exceptionw 9Zend_Json_Server_Errorw~ 9Zend_Json_Server_Cachew} )Zend_Json_Exprw| 3Zend_Json_Exceptionw{ /Zend_Json_Encoderwz /Zend_Json_Decoderwy 'Zend_InfoCardw-x ]Zend_InfoCard_Xml_SecurityTokenReferenceww AZend_InfoCard_Xml_Securityw)v UZend_InfoCard_Xml_Security_Transformw4u kZend_InfoCard_Xml_Security_Transform_XmlExcC14Nw3t iZend_InfoCard_Xml_Security_Transform_Exceptionw<s {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignaturew)r UZend_InfoCard_Xml_Security_Exceptionwq ?Zend_InfoCard_Xml_KeyInfow&p OZend_InfoCard_Xml_KeyInfo_XmlDSigw&o OZend_InfoCard_Xml_KeyInfo_Defaultw'n QZend_InfoCard_Xml_KeyInfo_Abstractw m CZend_InfoCard_Xml_Exceptionw#l IZend_InfoCard_Xml_EncryptedKeyw$k KZend_InfoCard_Xml_EncryptedDataw+j YZend_InfoCard_Xml_EncryptedData_XmlEncw-i ]Zend_InfoCard_Xml_EncryptedData_Abstractwh ?Zend_InfoCard_Xml_Elementw g CZend_InfoCard_Xml_Assertionw%f MZend_InfoCard_Xml_Assertion_Samlwe ;Zend_InfoCard_Exceptionw%d MZend_InfoCard_Exception_Abstractwc 5Zend_InfoCard_Claimswb 5Zend_InfoCard_Cipherw5a mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcw5` mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcw4_ kZend_InfoCard_Cipher_Symmetric_Adapter_Abstractw)^ UZend_InfoCard_Cipher_Pki_Adapter_Rsaw.] _Zend_InfoCard_Cipher_Pki_Adapter_Abstractw#\ IZend_InfoCard_Cipher_Exceptionw$[ KZend_InfoCard_Adapter_Exceptionw"Z GZend_InfoCard_Adapter_DefaultwY 1Zend_Http_ResponsewX 3Zend_Http_ExceptionwW 3Zend_Http_CookieJarwV -Zend_Http_CookiewU -Zend_Http_ClientwT AZend_Http_Client_Exceptionw"S GZend_Http_Client_Adapter_Testw$R KZend_Http_Client_Adapter_Socketw#Q IZend_Http_Client_Adapter_Proxyw'P QZend_Http_Client_Adapter_Exceptionw"O GZend_Http_Client_Adapter_CurlwN !Zend_GdatawM 1Zend_Gdata_YouTubew"L GZend_Gdata_YouTube_VideoQueryw!K EZend_Gdata_YouTube_VideoFeedw"J GZend_Gdata_YouTube_VideoEntryw(I SZend_Gdata_YouTube_UserProfileEntryw(H SZend_Gdata_YouTube_SubscriptionFeedw)G UZend_Gdata_YouTube_SubscriptionEntryw)F UZend_Gdata_YouTube_PlaylistVideoFeedw*E WZend_Gdata_YouTube_PlaylistVideoEntryw(D SZend_Gdata_YouTube_PlaylistListFeedw)C UZend_Gdata_YouTube_PlaylistListEntryw"B GZend_Gdata_YouTube_MediaEntryw!A EZend_Gdata_YouTube_InboxFeedw"@ GZend_Gdata_YouTube_InboxEntryw)? UZend_Gdata_YouTube_Extension_VideoIdw*> WZend_Gdata_YouTube_Extension_Usernamew*= WZend_Gdata_YouTube_Extension_Uploadedw'< QZend_Gdata_YouTube_Extension_Tokenw(; SZend_Gdata_YouTube_Extension_Statusw,: [Zend_Gdata_YouTube_Extension_Statisticsw'9 QZend_Gdata_YouTube_Extension_Statew(8 SZend_Gdata_YouTube_Extension_Schoolw-7 ]Zend_Gdata_YouTube_Extension_ReleaseDatew.6 _Zend_Gdata_YouTube_Extension_Relationshipw*5 WZend_Gdata_YouTube_Extension_Recordedw&4 OZend_Gdata_YouTube_Extension_Racyw-3 ]Zend_Gdata_YouTube_Extension_QueryStringw)2 UZend_Gdata_YouTube_Extension_Privatew*1 WZend_Gdata_YouTube_Extension_Positionw/0 aZend_Gdata_YouTube_Extension_PlaylistTitlew   u dH(W-|G$r[I!_F(





a
@
						_	B	%	~dH1{P%oN/e?rV5xY:fK-kO3                            ! EZend_Memory_AccessControllerw 3Zend_Measure_Weightw 3Zend_Measure_Volumew% MZend_Measure_Viscosity_Kinematicw# IZend_Measure_Viscosity_Dynamicw 3Zend_Measure_Torquew /Zend_Measure_Timew =Zend_Measure_Temperaturew  1Zend_Measure_Speedw 7Zend_Measure_Pressurew~ 1Zend_Measure_Powerw} 3Zend_Measure_Numberw| 9Zend_Measure_Lightnessw{ 3Zend_Measure_Lengthwz ?Zend_Measure_Illuminationwy 9Zend_Measure_Frequencywx 1Zend_Measure_Forceww =Zend_Measure_Flow_Volumewv 9Zend_Measure_Flow_Molewu 9Zend_Measure_Flow_Masswt 9Zend_Measure_Exceptionws 3Zend_Measure_Energywr 5Zend_Measure_Densitywq 5Zend_Measure_Currentw p CZend_Measure_Cooking_Weightw o CZend_Measure_Cooking_Volumewn =Zend_Measure_Capacitancewm 3Zend_Measure_Binarywl /Zend_Measure_Areawk 1Zend_Measure_Anglewj ?Zend_Measure_Accelerationwi 7Zend_Measure_Abstractwh Zend_Mailwg =Zend_Mail_Transport_Smtpw!f EZend_Mail_Transport_Sendmailw"e GZend_Mail_Transport_Exceptionw!d EZend_Mail_Transport_Abstractwc /Zend_Mail_Storagew'b QZend_Mail_Storage_Writable_Maildirwa 9Zend_Mail_Storage_Pop3w` 9Zend_Mail_Storage_Mboxw_ ?Zend_Mail_Storage_Maildirw^ 9Zend_Mail_Storage_Imapw] =Zend_Mail_Storage_Folderw"\ GZend_Mail_Storage_Folder_Mboxw%[ MZend_Mail_Storage_Folder_Maildirw Z CZend_Mail_Storage_ExceptionwY AZend_Mail_Storage_AbstractwX ;Zend_Mail_Protocol_Smtpw'W QZend_Mail_Protocol_Smtp_Auth_Plainw'V QZend_Mail_Protocol_Smtp_Auth_Loginw)U UZend_Mail_Protocol_Smtp_Auth_Crammd5wT ;Zend_Mail_Protocol_Pop3wS ;Zend_Mail_Protocol_Imapw!R EZend_Mail_Protocol_Exceptionw Q CZend_Mail_Protocol_AbstractwP )Zend_Mail_PartwO 3Zend_Mail_Part_FilewN /Zend_Mail_MessagewM 9Zend_Mail_Message_FilewL 3Zend_Mail_ExceptionwK Zend_LogwJ 9Zend_Log_Writer_SyslogwI 9Zend_Log_Writer_StreamwH 5Zend_Log_Writer_NullwG 5Zend_Log_Writer_MockwF 5Zend_Log_Writer_MailwE ;Zend_Log_Writer_FirebugwD 1Zend_Log_Writer_DbwC =Zend_Log_Writer_AbstractwB 9Zend_Log_Formatter_XmlwA ?Zend_Log_Formatter_Simplew@ AZend_Log_Formatter_Firebugw? =Zend_Log_Filter_Suppressw> =Zend_Log_Filter_Priorityw= ;Zend_Log_Filter_Messagew< 1Zend_Log_Exceptionw; #Zend_Localew: -Zend_Locale_Mathw9 =Zend_Locale_Math_PhpMathw8 AZend_Locale_Math_Exceptionw7 1Zend_Locale_Formatw6 7Zend_Locale_Exceptionw5 -Zend_Locale_Dataw!4 EZend_Locale_Data_Translationw3 #Zend_Loaderw2 =Zend_Loader_PluginLoaderw'1 QZend_Loader_PluginLoader_Exceptionw0 7Zend_Loader_Exceptionw/ 9Zend_Loader_Autoloaderw$. KZend_Loader_Autoloader_Resourcew- Zend_Ldapw, )Zend_Ldap_Nodew+ 7Zend_Ldap_Node_Schemaw#* IZend_Ldap_Node_Schema_OpenLdapw/) aZend_Ldap_Node_Schema_ObjectClass_OpenLdapw6( oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectoryw' AZend_Ldap_Node_Schema_Itemw1& eZend_Ldap_Node_Schema_AttributeType_OpenLdapw8% sZend_Ldap_Node_Schema_AttributeType_ActiveDirectoryw*$ WZend_Ldap_Node_Schema_ActiveDirectoryw# 9Zend_Ldap_Node_RootDsew$" KZend_Ldap_Node_RootDse_OpenLdapw&! OZend_Ldap_Node_RootDse_eDirectoryw+  YZend_Ldap_Node_RootDse_ActiveDirectoryw ?Zend_Ldap_Node_Collectionw$ KZend_Ldap_Node_ChildrenIteratorw ;Zend_Ldap_Node_Abstractw 9Zend_Ldap_Ldif_Encoderw -Zend_Ldap_Filterw ;Zend_Ldap_Filter_Stringw 3Zend_Ldap_Filter_Orw 5Zend_Ldap_Filter_Notw 7Zend_Ldap_Filter_Maskw =Zend_Ldap_Filter_Logicalw AZend_Ldap_Filter_Exceptionw 5Zend_Ldap_Filter_Andw   q  y]C/sR1rO1ye@~T&




s
U
7
					y	W	5	sW?iD!Z9rHwV2c:qQ6pT)                   )y UZend_Pdf_FileParserDataSource_Stringw'x QZend_Pdf_FileParserDataSource_Fileww 3Zend_Pdf_FileParserwv ?Zend_Pdf_FileParser_Imagew"u GZend_Pdf_FileParser_Image_Pngwt =Zend_Pdf_FileParser_Fontw&s OZend_Pdf_FileParser_Font_OpenTypew/r aZend_Pdf_FileParser_Font_OpenType_TrueTypewq 1Zend_Pdf_Exceptionwp ;Zend_Pdf_ElementFactoryw"o GZend_Pdf_ElementFactory_Proxywn -Zend_Pdf_Elementwm ;Zend_Pdf_Element_Stringw#l IZend_Pdf_Element_String_Binarywk ;Zend_Pdf_Element_Streamwj AZend_Pdf_Element_Referencew%i MZend_Pdf_Element_Reference_Tablew'h QZend_Pdf_Element_Reference_Contextwg ;Zend_Pdf_Element_Objectw#f IZend_Pdf_Element_Object_Streamwe =Zend_Pdf_Element_Numericwd 7Zend_Pdf_Element_Nullwc 7Zend_Pdf_Element_Namew b CZend_Pdf_Element_Dictionarywa =Zend_Pdf_Element_Booleanw` 9Zend_Pdf_Element_Arrayw_ 5Zend_Pdf_Destinationw^ ?Zend_Pdf_Destination_Zoomw!] EZend_Pdf_Destination_Unknownw\ AZend_Pdf_Destination_Namedw'[ QZend_Pdf_Destination_FitVerticallyw&Z OZend_Pdf_Destination_FitRectanglew)Y UZend_Pdf_Destination_FitHorizontallyw2X gZend_Pdf_Destination_FitBoundingBoxVerticallyw4W kZend_Pdf_Destination_FitBoundingBoxHorizontallyw(V SZend_Pdf_Destination_FitBoundingBoxwU =Zend_Pdf_Destination_Fitw"T GZend_Pdf_Destination_ExplicitwS )Zend_Pdf_ColorwR 1Zend_Pdf_Color_RgbwQ 3Zend_Pdf_Color_HtmlwP =Zend_Pdf_Color_GrayScalewO 3Zend_Pdf_Color_CmykwN 'Zend_Pdf_CmapwM AZend_Pdf_Cmap_TrimmedTablew!L EZend_Pdf_Cmap_SegmentToDeltawK AZend_Pdf_Cmap_ByteEncodingw&J OZend_Pdf_Cmap_ByteEncoding_StaticwI 3Zend_Pdf_AnnotationwH =Zend_Pdf_Annotation_TextwG =Zend_Pdf_Annotation_Linkw'F QZend_Pdf_Annotation_FileAttachmentwE +Zend_Pdf_ActionwD 3Zend_Pdf_Action_URIwC ;Zend_Pdf_Action_UnknownwB 7Zend_Pdf_Action_TranswA 9Zend_Pdf_Action_Threadw@ AZend_Pdf_Action_SubmitFormw? 7Zend_Pdf_Action_Soundw > CZend_Pdf_Action_SetOCGStatew= ?Zend_Pdf_Action_ResetFormw< ?Zend_Pdf_Action_Renditionw; 7Zend_Pdf_Action_Namedw: 7Zend_Pdf_Action_Moview9 9Zend_Pdf_Action_Launchw8 AZend_Pdf_Action_JavaScriptw7 AZend_Pdf_Action_ImportDataw6 5Zend_Pdf_Action_Hidew5 7Zend_Pdf_Action_GoToRw4 7Zend_Pdf_Action_GoToEw3 AZend_Pdf_Action_GoTo3DVieww2 5Zend_Pdf_Action_GoTow1 )Zend_Paginatorw*0 WZend_Paginator_ScrollingStyle_Slidingw*/ WZend_Paginator_ScrollingStyle_Jumpingw*. WZend_Paginator_ScrollingStyle_Elasticw&- OZend_Paginator_ScrollingStyle_Allw, =Zend_Paginator_Exceptionw + CZend_Paginator_Adapter_Nullw$* KZend_Paginator_Adapter_Iteratorw)) UZend_Paginator_Adapter_DbTableSelectw$( KZend_Paginator_Adapter_DbSelectw!' EZend_Paginator_Adapter_Arrayw& #Zend_OpenIdw% 5Zend_OpenId_Providerw$ ?Zend_OpenId_Provider_Userw&# OZend_OpenId_Provider_User_Sessionw!" EZend_OpenId_Provider_Storagew&! OZend_OpenId_Provider_Storage_Filew  7Zend_OpenId_Extensionw AZend_OpenId_Extension_Sregw 7Zend_OpenId_Exceptionw 5Zend_OpenId_Consumerw! EZend_OpenId_Consumer_Storagew& OZend_OpenId_Consumer_Storage_Filew +Zend_Navigationw 5Zend_Navigation_Pagew =Zend_Navigation_Page_Uriw =Zend_Navigation_Page_Mvcw ?Zend_Navigation_Exceptionw ?Zend_Navigation_Containerw Zend_Mimew )Zend_Mime_Partw /Zend_Mime_Messagew 3Zend_Mime_Exceptionw -Zend_Mime_Decodew #Zend_Memoryw /Zend_Memory_Valuew 3Zend_Memory_Managerw 7Zend_Memory_Exceptionw 7Zend_Memory_Containerw"
 GZend_Memory_Container_Movablew!	 EZend_Memory_Container_Lockedw   e  oG#lTo9X_


q
6				k	F	'	rX:#yP%xT){[/aB/tR0zW-gI                                              F^ Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitivew] 7Zend_Search_Exceptionw\ -Zend_Rest_Serverw[ AZend_Rest_Server_ExceptionwZ +Zend_Rest_RoutewY 3Zend_Rest_ExceptionwX 5Zend_Rest_ControllerwW -Zend_Rest_ClientwV ;Zend_Rest_Client_Resultw&U OZend_Rest_Client_Result_ExceptionwT AZend_Rest_Client_ExceptionwS 'Zend_RegistrywR =Zend_Reflection_PropertywQ ?Zend_Reflection_ParameterwP 9Zend_Reflection_MethodwO =Zend_Reflection_FunctionwN 5Zend_Reflection_FilewM ?Zend_Reflection_ExtensionwL ?Zend_Reflection_ExceptionwK =Zend_Reflection_Docblockw!J EZend_Reflection_Docblock_Tagw(I SZend_Reflection_Docblock_Tag_Returnw'H QZend_Reflection_Docblock_Tag_ParamwG 7Zend_Reflection_ClasswF !Zend_QueuewE 9Zend_Queue_Stomp_FramewD ;Zend_Queue_Stomp_Clientw'C QZend_Queue_Stomp_Client_ConnectionwB 1Zend_Queue_Messagew#A IZend_Queue_Message_PlatformJobw @ CZend_Queue_Message_Iteratorw? 5Zend_Queue_Exceptionw(> SZend_Queue_Adapter_PlatformJobQueuew= ;Zend_Queue_Adapter_Nullw!< EZend_Queue_Adapter_Memcacheqw; 7Zend_Queue_Adapter_Dbw : CZend_Queue_Adapter_Db_Queuew"9 GZend_Queue_Adapter_Db_Messagew8 =Zend_Queue_Adapter_Arrayw'7 QZend_Queue_Adapter_AdapterAbstractw 6 CZend_Queue_Adapter_Activemqw5 -Zend_ProgressBarw4 AZend_ProgressBar_Exceptionw3 =Zend_ProgressBar_Adapterw$2 KZend_ProgressBar_Adapter_JsPushw$1 KZend_ProgressBar_Adapter_JsPullw'0 QZend_ProgressBar_Adapter_Exceptionw%/ MZend_ProgressBar_Adapter_Consolew. Zend_Pdfw!- EZend_Pdf_UpdateInfoContainerw, -Zend_Pdf_Trailerw+ ;Zend_Pdf_Trailer_Keeperw* AZend_Pdf_Trailer_Generatorw) +Zend_Pdf_Targetw( )Zend_Pdf_Stylew' 7Zend_Pdf_StringParserw& /Zend_Pdf_Resourcew#% IZend_Pdf_Resource_ImageFactoryw$ ;Zend_Pdf_Resource_Imagew!# EZend_Pdf_Resource_Image_Tiffw " CZend_Pdf_Resource_Image_Pngw!! EZend_Pdf_Resource_Image_Jpegw  9Zend_Pdf_Resource_Fontw! EZend_Pdf_Resource_Font_Type0w" GZend_Pdf_Resource_Font_Simplew+ YZend_Pdf_Resource_Font_Simple_Standardw8 sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsw6 oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanw7 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicw; yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicw5 mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldw2 gZend_Pdf_Resource_Font_Simple_Standard_Symbolw< {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliquewA Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliquew9 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldw5 mZend_Pdf_Resource_Font_Simple_Standard_Helveticaw: wZend_Pdf_Resource_Font_Simple_Standard_CourierObliquew> Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliquew7 qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldw3 iZend_Pdf_Resource_Font_Simple_Standard_Courierw) UZend_Pdf_Resource_Font_Simple_Parsedw2 gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypew* WZend_Pdf_Resource_Font_FontDescriptorw% MZend_Pdf_Resource_Font_Extractedw#
 IZend_Pdf_Resource_Font_CidFontw,	 [Zend_Pdf_Resource_Font_CidFont_TrueTypew3 iZend_Pdf_RecursivelyIteratableObjectsContainerw +Zend_Pdf_Parserw 'Zend_Pdf_Pagew -Zend_Pdf_Outlinew ;Zend_Pdf_Outline_Loadedw =Zend_Pdf_Outline_Createdw /Zend_Pdf_NameTreew )Zend_Pdf_Imagew  'Zend_Pdf_Fontw  CZend_Pdf_Filter_Compressionw$~ KZend_Pdf_Filter_Compression_Lzww&} OZend_Pdf_Filter_Compression_Flatew| =Zend_Pdf_Filter_AsciiHexw{ ;Zend_Pdf_Filter_Ascii85w"z GZend_Pdf_FileParserDataSourcew   O  z>n2m/a3
hC"



U
(				P	*	 }J! \. i-Q$a/|GP!g/                                          /- aZend_Search_Lucene_Storage_File_Filesystemw), UZend_Search_Lucene_Storage_Directoryw4+ kZend_Search_Lucene_Storage_Directory_Filesystemw%* MZend_Search_Lucene_Search_Weightw*) WZend_Search_Lucene_Search_Weight_Termw,( [Zend_Search_Lucene_Search_Weight_Phrasew/' aZend_Search_Lucene_Search_Weight_MultiTermw+& YZend_Search_Lucene_Search_Weight_Emptyw-% ]Zend_Search_Lucene_Search_Weight_Booleanw)$ UZend_Search_Lucene_Search_Similarityw1# eZend_Search_Lucene_Search_Similarity_Defaultw)" UZend_Search_Lucene_Search_QueryTokenw3! iZend_Search_Lucene_Search_QueryParserExceptionw1  eZend_Search_Lucene_Search_QueryParserContextw* WZend_Search_Lucene_Search_QueryParserw) UZend_Search_Lucene_Search_QueryLexerw' QZend_Search_Lucene_Search_QueryHitw) UZend_Search_Lucene_Search_QueryEntryw. _Zend_Search_Lucene_Search_QueryEntry_Termw2 gZend_Search_Lucene_Search_QueryEntry_Subqueryw0 cZend_Search_Lucene_Search_QueryEntry_Phrasew$ KZend_Search_Lucene_Search_Queryw- ]Zend_Search_Lucene_Search_Query_Wildcardw) UZend_Search_Lucene_Search_Query_Termw* WZend_Search_Lucene_Search_Query_Rangew2 gZend_Search_Lucene_Search_Query_Preprocessingw7 qZend_Search_Lucene_Search_Query_Preprocessing_Termw9 uZend_Search_Lucene_Search_Query_Preprocessing_Phrasew8 sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzyw+ YZend_Search_Lucene_Search_Query_Phrasew. _Zend_Search_Lucene_Search_Query_MultiTermw2 gZend_Search_Lucene_Search_Query_Insignificantw* WZend_Search_Lucene_Search_Query_Fuzzyw* WZend_Search_Lucene_Search_Query_Emptyw, [Zend_Search_Lucene_Search_Query_Booleanw2
 gZend_Search_Lucene_Search_Highlighter_Defaultw:	 wZend_Search_Lucene_Search_BooleanExpressionRecognizerw =Zend_Search_Lucene_Proxyw% MZend_Search_Lucene_PriorityQueuew/ aZend_Search_Lucene_Interface_MultiSearcherw# IZend_Search_Lucene_LockManagerw$ KZend_Search_Lucene_Index_Writerw0 cZend_Search_Lucene_Index_TermsPriorityQueuew& OZend_Search_Lucene_Index_TermInfow" GZend_Search_Lucene_Index_Termw+  YZend_Search_Lucene_Index_SegmentWriterw8 sZend_Search_Lucene_Index_SegmentWriter_StreamWriterw:~ wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterw+} YZend_Search_Lucene_Index_SegmentMergerw)| UZend_Search_Lucene_Index_SegmentInfow'{ QZend_Search_Lucene_Index_FieldInfow(z SZend_Search_Lucene_Index_DocsFilterw.y _Zend_Search_Lucene_Index_DictionaryLoaderw!x EZend_Search_Lucene_FSMActionww 9Zend_Search_Lucene_FSMwv =Zend_Search_Lucene_Fieldw!u EZend_Search_Lucene_Exceptionw t CZend_Search_Lucene_Documentw%s MZend_Search_Lucene_Document_Xlsxw%r MZend_Search_Lucene_Document_Pptxw(q SZend_Search_Lucene_Document_OpenXmlw%p MZend_Search_Lucene_Document_Htmlw*o WZend_Search_Lucene_Document_Exceptionw%n MZend_Search_Lucene_Document_Docxw,m [Zend_Search_Lucene_Analysis_TokenFilterw6l oZend_Search_Lucene_Analysis_TokenFilter_StopWordsw7k qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsw:j wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8w6i oZend_Search_Lucene_Analysis_TokenFilter_LowerCasew&h OZend_Search_Lucene_Analysis_Tokenw)g UZend_Search_Lucene_Analysis_Analyzerw0f cZend_Search_Lucene_Analysis_Analyzer_Commonw8e sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumwId Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitivew5c mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8wFb Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitivew8a sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumwI` Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitivew5_ mZend_Search_Lucene_Analysis_Analyzer_Common_Textw   e  uZ=#wR-a8e=h>



b
:
				o	I	'	sM$jN*lM+qD|T5kI$^4j4                        ;Zend_Service_StrikeIronw( SZend_Service_StrikeIron_ZipCodeInfow2 gZend_Service_StrikeIron_USAddressVerificationw- ]Zend_Service_StrikeIron_SalesUseTaxBasicw& OZend_Service_StrikeIron_Exceptionw& OZend_Service_StrikeIron_Decoratorw! EZend_Service_StrikeIron_Basew ;Zend_Service_SlideSharew&
 OZend_Service_SlideShare_SlideShoww&	 OZend_Service_SlideShare_Exceptionw 1Zend_Service_Simpyw$ KZend_Service_Simpy_WatchlistSetw* WZend_Service_Simpy_WatchlistFilterSetw' QZend_Service_Simpy_WatchlistFilterw! EZend_Service_Simpy_Watchlistw ?Zend_Service_Simpy_TagSetw 9Zend_Service_Simpy_Tagw AZend_Service_Simpy_NoteSetw  ;Zend_Service_Simpy_Notew AZend_Service_Simpy_LinkSetw!~ EZend_Service_Simpy_LinkQueryw} ;Zend_Service_Simpy_Linkw| 9Zend_Service_ReCaptchaw${ KZend_Service_ReCaptcha_Responsew$z KZend_Service_ReCaptcha_MailHidew.y _Zend_Service_ReCaptcha_MailHide_Exceptionw%x MZend_Service_ReCaptcha_Exceptionww 7Zend_Service_Nirvanixw#v IZend_Service_Nirvanix_Responsew)u UZend_Service_Nirvanix_Namespace_Imfsw)t UZend_Service_Nirvanix_Namespace_Basew$s KZend_Service_Nirvanix_Exceptionwr 3Zend_Service_Flickrw"q GZend_Service_Flickr_ResultSetwp AZend_Service_Flickr_Resultwo ?Zend_Service_Flickr_Imagewn 9Zend_Service_Exceptionwm 9Zend_Service_Deliciousw&l OZend_Service_Delicious_SimplePostw$k KZend_Service_Delicious_PostListw j CZend_Service_Delicious_Postw%i MZend_Service_Delicious_Exceptionw h CZend_Service_Audioscrobblerwg 3Zend_Service_Amazonwf ;Zend_Service_Amazon_Sqsw&e OZend_Service_Amazon_Sqs_Exceptionw'd QZend_Service_Amazon_SimilarProductwc 9Zend_Service_Amazon_S3w"b GZend_Service_Amazon_S3_Streamw%a MZend_Service_Amazon_S3_Exceptionw"` GZend_Service_Amazon_ResultSetw_ ?Zend_Service_Amazon_Queryw!^ EZend_Service_Amazon_OfferSetw] ?Zend_Service_Amazon_Offerw&\ OZend_Service_Amazon_ListmaniaListw[ =Zend_Service_Amazon_ItemwZ ?Zend_Service_Amazon_Imagew"Y GZend_Service_Amazon_Exceptionw(X SZend_Service_Amazon_EditorialReviewwW ;Zend_Service_Amazon_Ec2w+V YZend_Service_Amazon_Ec2_Securitygroupsw%U MZend_Service_Amazon_Ec2_Responsew#T IZend_Service_Amazon_Ec2_Regionw$S KZend_Service_Amazon_Ec2_Keypairw%R MZend_Service_Amazon_Ec2_Instancew-Q ]Zend_Service_Amazon_Ec2_Instance_Windowsw.P _Zend_Service_Amazon_Ec2_Instance_Reservedw"O GZend_Service_Amazon_Ec2_Imagew&N OZend_Service_Amazon_Ec2_Exceptionw&M OZend_Service_Amazon_Ec2_Elasticipw L CZend_Service_Amazon_Ec2_Ebsw'K QZend_Service_Amazon_Ec2_CloudWatchw.J _Zend_Service_Amazon_Ec2_Availabilityzonesw%I MZend_Service_Amazon_Ec2_Abstractw'H QZend_Service_Amazon_CustomerRevieww$G KZend_Service_Amazon_Accessoriesw!F EZend_Service_Amazon_AbstractwE 5Zend_Service_AkismetwD 7Zend_Service_AbstractwC 9Zend_Server_Reflectionw'B QZend_Server_Reflection_ReturnValuew%A MZend_Server_Reflection_Prototypew%@ MZend_Server_Reflection_Parameterw ? CZend_Server_Reflection_Nodew"> GZend_Server_Reflection_Methodw$= KZend_Server_Reflection_Functionw-< ]Zend_Server_Reflection_Function_Abstractw%; MZend_Server_Reflection_Exceptionw!: EZend_Server_Reflection_Classw!9 EZend_Server_Method_Prototypew!8 EZend_Server_Method_Parameterw"7 GZend_Server_Method_Definitionw 6 CZend_Server_Method_Callbackw5 7Zend_Server_Exceptionw4 9Zend_Server_Definitionw3 /Zend_Server_Cachew2 5Zend_Server_Abstractw1 1Zend_Search_Lucenew00 cZend_Search_Lucene_TermStreamsPriorityQueuew$/ KZend_Search_Lucene_Storage_Filew+. YZend_Search_Lucene_Storage_File_Memoryw   b  }M`9[0nJ-`9



i
G
"					i	K	,	dO&lI0W-f=y[-oD[+wG                   t AZend_Text_Figlet_Exceptionws 3Zend_Text_Exceptionw&r OZend_Test_PHPUnit_Db_SimpleTesterw,q [Zend_Test_PHPUnit_Db_Operation_Truncatew*p WZend_Test_PHPUnit_Db_Operation_Insertw-o ]Zend_Test_PHPUnit_Db_Operation_DeleteAllw*n WZend_Test_PHPUnit_Db_Metadata_Genericw#m IZend_Test_PHPUnit_Db_Exceptionw,l [Zend_Test_PHPUnit_Db_DataSet_QueryTablew.k _Zend_Test_PHPUnit_Db_DataSet_QueryDataSetw0j cZend_Test_PHPUnit_Db_DataSet_DbTableDataSetw)i UZend_Test_PHPUnit_Db_DataSet_DbTablew*h WZend_Test_PHPUnit_Db_DataSet_DbRowsetw$g KZend_Test_PHPUnit_Db_Connectionw'f QZend_Test_PHPUnit_DatabaseTestCasew)e UZend_Test_PHPUnit_ControllerTestCasew0d cZend_Test_PHPUnit_Constraint_ResponseHeaderw*c WZend_Test_PHPUnit_Constraint_Redirectw+b YZend_Test_PHPUnit_Constraint_Exceptionw*a WZend_Test_PHPUnit_Constraint_DomQueryw` 7Zend_Test_DbStatementw_ 3Zend_Test_DbAdapterw^ /Zend_Tag_ItemListw] 'Zend_Tag_Itemw\ 1Zend_Tag_Exceptionw[ )Zend_Tag_CloudwZ =Zend_Tag_Cloud_Exceptionw!Y EZend_Tag_Cloud_Decorator_Tagw%X MZend_Tag_Cloud_Decorator_HtmlTagw'W QZend_Tag_Cloud_Decorator_HtmlCloudw'V QZend_Tag_Cloud_Decorator_Exceptionw#U IZend_Tag_Cloud_Decorator_CloudwT )Zend_Soap_Wsdlw/S aZend_Soap_Wsdl_Strategy_DefaultComplexTypew&R OZend_Soap_Wsdl_Strategy_Compositew0Q cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequencew/P aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplexw$O KZend_Soap_Wsdl_Strategy_AnyTypew%N MZend_Soap_Wsdl_Strategy_AbstractwM =Zend_Soap_Wsdl_ExceptionwL -Zend_Soap_ServerwK AZend_Soap_Server_ExceptionwJ -Zend_Soap_ClientwI 9Zend_Soap_Client_LocalwH AZend_Soap_Client_ExceptionwG ;Zend_Soap_Client_DotNetwF ;Zend_Soap_Client_CommonwE 9Zend_Soap_AutoDiscoverw%D MZend_Soap_AutoDiscover_ExceptionwC %Zend_Sessionw)B UZend_Session_Validator_HttpUserAgentw$A KZend_Session_Validator_Abstractw'@ QZend_Session_SaveHandler_Exceptionw%? MZend_Session_SaveHandler_DbTablew> 9Zend_Session_Namespacew= 9Zend_Session_Exceptionw< 7Zend_Session_Abstractw; 1Zend_Service_Yahoow$: KZend_Service_Yahoo_WebResultSetw!9 EZend_Service_Yahoo_WebResultw&8 OZend_Service_Yahoo_VideoResultSetw#7 IZend_Service_Yahoo_VideoResultw!6 EZend_Service_Yahoo_ResultSetw5 ?Zend_Service_Yahoo_Resultw)4 UZend_Service_Yahoo_PageDataResultSetw&3 OZend_Service_Yahoo_PageDataResultw%2 MZend_Service_Yahoo_NewsResultSetw"1 GZend_Service_Yahoo_NewsResultw&0 OZend_Service_Yahoo_LocalResultSetw#/ IZend_Service_Yahoo_LocalResultw+. YZend_Service_Yahoo_InlinkDataResultSetw(- SZend_Service_Yahoo_InlinkDataResultw&, OZend_Service_Yahoo_ImageResultSetw#+ IZend_Service_Yahoo_ImageResultw* =Zend_Service_Yahoo_Imagew) 5Zend_Service_Twitterw ( CZend_Service_Twitter_Searchw#' IZend_Service_Twitter_Exceptionw& ;Zend_Service_Technoratiw#% IZend_Service_Technorati_Weblogw"$ GZend_Service_Technorati_Utilsw*# WZend_Service_Technorati_TagsResultSetw'" QZend_Service_Technorati_TagsResultw)! UZend_Service_Technorati_TagResultSetw&  OZend_Service_Technorati_TagResultw, [Zend_Service_Technorati_SearchResultSetw) UZend_Service_Technorati_SearchResultw& OZend_Service_Technorati_ResultSetw# IZend_Service_Technorati_Resultw* WZend_Service_Technorati_KeyInfoResultw* WZend_Service_Technorati_GetInfoResultw& OZend_Service_Technorati_Exceptionw1 eZend_Service_Technorati_DailyCountsResultSetw. _Zend_Service_Technorati_DailyCountsResultw, [Zend_Service_Technorati_CosmosResultSetw) UZend_Service_Technorati_CosmosResultw+ YZend_Service_Technorati_BlogInfoResultw# IZend_Service_Technorati_Authorw   R  Z8zR%g1]!}5	



W
				u	J	f7U yBxF_-RJN      2F gZend_Tool_Project_Context_Zf_LibraryDirectoryw2E gZend_Tool_Project_Context_Zf_LayoutsDirectoryw.D _Zend_Tool_Project_Context_Zf_HtaccessFilew0C cZend_Tool_Project_Context_Zf_FormsDirectoryw*B WZend_Tool_Project_Context_Zf_FormFilew-A ]Zend_Tool_Project_Context_Zf_DbTableFilew2@ gZend_Tool_Project_Context_Zf_DbTableDirectoryw/? aZend_Tool_Project_Context_Zf_DataDirectoryw6> oZend_Tool_Project_Context_Zf_ControllersDirectoryw0= cZend_Tool_Project_Context_Zf_ControllerFilew2< gZend_Tool_Project_Context_Zf_ConfigsDirectoryw,; [Zend_Tool_Project_Context_Zf_ConfigFilew0: cZend_Tool_Project_Context_Zf_CacheDirectoryw/9 aZend_Tool_Project_Context_Zf_BootstrapFilew68 oZend_Tool_Project_Context_Zf_ApplicationDirectoryw77 qZend_Tool_Project_Context_Zf_ApplicationConfigFilew/6 aZend_Tool_Project_Context_Zf_ApisDirectoryw.5 _Zend_Tool_Project_Context_Zf_ActionMethodw@4 Zend_Tool_Project_Context_System_ProjectProvidersDirectoryw83 sZend_Tool_Project_Context_System_ProjectProfileFilew62 oZend_Tool_Project_Context_System_ProjectDirectoryw)1 UZend_Tool_Project_Context_Repositoryw.0 _Zend_Tool_Project_Context_Filesystem_Filew3/ iZend_Tool_Project_Context_Filesystem_Directoryw2. gZend_Tool_Project_Context_Filesystem_Abstractw(- SZend_Tool_Project_Context_Exceptionw-, ]Zend_Tool_Project_Context_Content_Enginew3+ iZend_Tool_Project_Context_Content_Engine_Phtmlw;* yZend_Tool_Project_Context_Content_Engine_CodeGeneratorw0) cZend_Tool_Framework_System_Provider_Versionw0( cZend_Tool_Framework_System_Provider_Phpinfow1' eZend_Tool_Framework_System_Provider_Manifestw(& SZend_Tool_Framework_System_Manifestw-% ]Zend_Tool_Framework_System_Action_Deletew-$ ]Zend_Tool_Framework_System_Action_Createw!# EZend_Tool_Framework_Registryw+" YZend_Tool_Framework_Registry_Exceptionw+! YZend_Tool_Framework_Provider_Signaturew,  [Zend_Tool_Framework_Provider_Repositoryw+ YZend_Tool_Framework_Provider_Exceptionw* WZend_Tool_Framework_Provider_Abstractw& OZend_Tool_Framework_Metadata_Toolw) UZend_Tool_Framework_Metadata_Dynamicw' QZend_Tool_Framework_Metadata_Basicw, [Zend_Tool_Framework_Manifest_Repositoryw+ YZend_Tool_Framework_Manifest_Exceptionw1 eZend_Tool_Framework_Loader_IncludePathLoaderwJ Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIteratorw( SZend_Tool_Framework_Loader_Abstractw" GZend_Tool_Framework_Exceptionw' QZend_Tool_Framework_Client_Storagew1 eZend_Tool_Framework_Client_Storage_Directoryw( SZend_Tool_Framework_Client_ResponsewD 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separatorw' QZend_Tool_Framework_Client_Requestw9 uZend_Tool_Framework_Client_Interactive_InputResponsew8 sZend_Tool_Framework_Client_Interactive_InputRequestw8 sZend_Tool_Framework_Client_Interactive_InputHandlerw) UZend_Tool_Framework_Client_Exceptionw' QZend_Tool_Framework_Client_ConsolewD
 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizerw0	 cZend_Tool_Framework_Client_Console_Manifestw2 gZend_Tool_Framework_Client_Console_HelpSystemw6 oZend_Tool_Framework_Client_Console_ArgumentParserw& OZend_Tool_Framework_Client_Configw( SZend_Tool_Framework_Client_Abstractw* WZend_Tool_Framework_Action_Repositoryw) UZend_Tool_Framework_Action_Exceptionw$ KZend_Tool_Framework_Action_Basew 'Zend_TimeSyncw  1Zend_TimeSync_Sntpw 9Zend_TimeSync_Protocolw~ /Zend_TimeSync_Ntpw} ;Zend_TimeSync_Exceptionw| +Zend_Text_Tablew{ 3Zend_Text_Table_Rowwz ?Zend_Text_Table_Exceptionw&y OZend_Text_Table_Decorator_Unicodew$x KZend_Text_Table_Decorator_Asciiww 9Zend_Text_Table_Columnwv 3Zend_Text_MultiBytewu -Zend_Text_Figletw   V  h3Zn28x>	


V
 			g	3a5UuGsHuR+{V7dH$lD             ;Zend_Validate_Exceptionw AZend_Validate_EmailAddressw 5Zend_Validate_Digitsw" GZend_Validate_Db_RecordExistsw$ KZend_Validate_Db_NoRecordExistsw ?Zend_Validate_Db_Abstractw 1Zend_Validate_Datew 3Zend_Validate_Ccnumw 7Zend_Validate_Betweenw 7Zend_Validate_Barcodew AZend_Validate_Barcode_UpcAw  CZend_Validate_Barcode_Ean13w 3Zend_Validate_Alphaw 3Zend_Validate_Alnumw 9Zend_Validate_Abstractw Zend_Uriw 'Zend_Uri_Httpw 1Zend_Uri_Exceptionw
 )Zend_Translatew	 7Zend_Translate_Pluralw =Zend_Translate_Exceptionw 9Zend_Translate_Adapterw! EZend_Translate_Adapter_XmlTmw! EZend_Translate_Adapter_Xliffw AZend_Translate_Adapter_Tmxw AZend_Translate_Adapter_Tbxw ?Zend_Translate_Adapter_Qtw AZend_Translate_Adapter_Iniw#  IZend_Translate_Adapter_Gettextw AZend_Translate_Adapter_Csvw!~ EZend_Translate_Adapter_Arrayw$} KZend_Tool_Project_Provider_Vieww$| KZend_Tool_Project_Provider_Testw/{ aZend_Tool_Project_Provider_ProjectProviderw'z QZend_Tool_Project_Provider_Projectw'y QZend_Tool_Project_Provider_Profilew&x OZend_Tool_Project_Provider_Modulew%w MZend_Tool_Project_Provider_Modelw(v SZend_Tool_Project_Provider_Manifestw$u KZend_Tool_Project_Provider_Formw)t UZend_Tool_Project_Provider_Exceptionw*s WZend_Tool_Project_Provider_Controllerw&r OZend_Tool_Project_Provider_Actionw(q SZend_Tool_Project_Provider_Abstractwp ?Zend_Tool_Project_Profilew'o QZend_Tool_Project_Profile_Resourcew9n uZend_Tool_Project_Profile_Resource_SearchConstraintsw1m eZend_Tool_Project_Profile_Resource_Containerw=l }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilterw5k mZend_Tool_Project_Profile_Iterator_ContextFilterw-j ]Zend_Tool_Project_Profile_FileParser_Xmlw(i SZend_Tool_Project_Profile_Exceptionw h CZend_Tool_Project_Exceptionw<g {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectoryw0f cZend_Tool_Project_Context_Zf_ViewsDirectoryw6e oZend_Tool_Project_Context_Zf_ViewScriptsDirectoryw0d cZend_Tool_Project_Context_Zf_ViewScriptFilew6c oZend_Tool_Project_Context_Zf_ViewHelpersDirectoryw6b oZend_Tool_Project_Context_Zf_ViewFiltersDirectorywAa Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectoryw2` gZend_Tool_Project_Context_Zf_UploadsDirectoryw0_ cZend_Tool_Project_Context_Zf_TestsDirectoryw7^ qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFilew@] Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectoryw1\ eZend_Tool_Project_Context_Zf_TestLibraryFilew6[ oZend_Tool_Project_Context_Zf_TestLibraryDirectoryw:Z wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFilew:Y wZend_Tool_Project_Context_Zf_TestApplicationDirectoryw@X Zend_Tool_Project_Context_Zf_TestApplicationControllerFilewEW Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectoryw>V Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFilew4U kZend_Tool_Project_Context_Zf_TemporaryDirectoryw3T iZend_Tool_Project_Context_Zf_SessionsDirectoryw8S sZend_Tool_Project_Context_Zf_SearchIndexesDirectoryw<R {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectoryw8Q sZend_Tool_Project_Context_Zf_PublicScriptsDirectoryw1P eZend_Tool_Project_Context_Zf_PublicIndexFilew7O qZend_Tool_Project_Context_Zf_PublicImagesDirectoryw1N eZend_Tool_Project_Context_Zf_PublicDirectoryw5M mZend_Tool_Project_Context_Zf_ProjectProviderFilew2L gZend_Tool_Project_Context_Zf_ModulesDirectoryw1K eZend_Tool_Project_Context_Zf_ModuleDirectoryw1J eZend_Tool_Project_Context_Zf_ModelsDirectoryw+I YZend_Tool_Project_Context_Zf_ModelFilew/H aZend_Tool_Project_Context_Zf_LogsDirectoryw2G gZend_Tool_Project_Context_Zf_LocalesDirectoryw   k  gE kL(|`>$yZ;dN9




[
:
					g	E	!hE"pN*zV4yFxM,\-uR/p>                  & OZend_Wildfire_Protocol_JsonStreamw! EZend_Wildfire_Plugin_FirePhpw. _Zend_Wildfire_Plugin_FirePhp_TableMessagew) UZend_Wildfire_Plugin_FirePhp_Messagew ;Zend_Wildfire_Exceptionw& OZend_Wildfire_Channel_HttpHeadersw Zend_Vieww  -Zend_View_Streamw 5Zend_View_Helper_Urlw~ AZend_View_Helper_Translatew} AZend_View_Helper_ServerUrlw)| UZend_View_Helper_RenderToPlaceholderw!{ EZend_View_Helper_Placeholderw*z WZend_View_Helper_Placeholder_Registryw4y kZend_View_Helper_Placeholder_Registry_Exceptionw+x YZend_View_Helper_Placeholder_Containerw6w oZend_View_Helper_Placeholder_Container_Standalonew5v mZend_View_Helper_Placeholder_Container_Exceptionw4u kZend_View_Helper_Placeholder_Container_Abstractw!t EZend_View_Helper_PartialLoopws =Zend_View_Helper_Partialw'r QZend_View_Helper_Partial_Exceptionw'q QZend_View_Helper_PaginationControlw p CZend_View_Helper_Navigationw(o SZend_View_Helper_Navigation_Sitemapw%n MZend_View_Helper_Navigation_Menuw&m OZend_View_Helper_Navigation_Linksw/l aZend_View_Helper_Navigation_HelperAbstractw,k [Zend_View_Helper_Navigation_Breadcrumbswj ;Zend_View_Helper_Layoutwi 7Zend_View_Helper_Jsonw"h GZend_View_Helper_InlineScriptw#g IZend_View_Helper_HtmlQuicktimewf ?Zend_View_Helper_HtmlPagew e CZend_View_Helper_HtmlObjectwd ?Zend_View_Helper_HtmlListwc AZend_View_Helper_HtmlFlashw!b EZend_View_Helper_HtmlElementwa AZend_View_Helper_HeadTitlew` AZend_View_Helper_HeadStylew _ CZend_View_Helper_HeadScriptw^ ?Zend_View_Helper_HeadMetaw] ?Zend_View_Helper_HeadLinkw"\ GZend_View_Helper_FormTextareaw[ ?Zend_View_Helper_FormTextw Z CZend_View_Helper_FormSubmitw Y CZend_View_Helper_FormSelectwX AZend_View_Helper_FormResetwW AZend_View_Helper_FormRadiow"V GZend_View_Helper_FormPasswordwU ?Zend_View_Helper_FormNotew'T QZend_View_Helper_FormMultiCheckboxwS AZend_View_Helper_FormLabelwR AZend_View_Helper_FormImagew Q CZend_View_Helper_FormHiddenwP ?Zend_View_Helper_FormFilew O CZend_View_Helper_FormErrorsw!N EZend_View_Helper_FormElementw"M GZend_View_Helper_FormCheckboxw L CZend_View_Helper_FormButtonwK 7Zend_View_Helper_FormwJ ?Zend_View_Helper_FieldsetwI =Zend_View_Helper_Doctypew!H EZend_View_Helper_DeclareVarswG 9Zend_View_Helper_CyclewF =Zend_View_Helper_BaseUrlwE ;Zend_View_Helper_ActionwD ?Zend_View_Helper_AbstractwC 3Zend_View_ExceptionwB 1Zend_View_AbstractwA %Zend_Versionw@ 'Zend_Validatew? AZend_Validate_StringLengthw#> IZend_Validate_Sitemap_Priorityw= ?Zend_Validate_Sitemap_Locw"< GZend_Validate_Sitemap_Lastmodw%; MZend_Validate_Sitemap_Changefreqw: 3Zend_Validate_Regexw9 9Zend_Validate_NotEmptyw8 9Zend_Validate_LessThanw7 -Zend_Validate_Ipw6 /Zend_Validate_Intw5 7Zend_Validate_InArrayw4 ;Zend_Validate_Identicalw3 1Zend_Validate_Ibanw2 9Zend_Validate_Hostnamew1 /Zend_Validate_Hexw0 ?Zend_Validate_GreaterThanw/ 3Zend_Validate_Floatw!. EZend_Validate_File_WordCountw- ?Zend_Validate_File_Uploadw, ;Zend_Validate_File_Sizew+ ;Zend_Validate_File_Sha1w!* EZend_Validate_File_NotExistsw ) CZend_Validate_File_MimeTypew( 9Zend_Validate_File_Md5w' AZend_Validate_File_IsImagew$& KZend_Validate_File_IsCompressedw!% EZend_Validate_File_ImageSizew$ ;Zend_Validate_File_Hashw!# EZend_Validate_File_FilesSizew!" EZend_Validate_File_Extensionw! ?Zend_Validate_File_Existsw'  QZend_Validate_File_ExcludeMimeTypew( SZend_Validate_File_ExcludeExtensionw =Zend_Validate_File_Crc32w =Zend_Validate_File_Countw   j  Y*mQ/nN-~\>cD.




e
<
				~	Z	-	x_@&`/l>\9a8\2_- ~bI%                                  $q KZend_Auth_Storage_NonPersistentx p CZend_Auth_Storage_Exceptionxo -Zend_Auth_Resultxn 3Zend_Auth_Exceptionxm =Zend_Auth_Adapter_OpenIdxl 9Zend_Auth_Adapter_Ldapxk AZend_Auth_Adapter_InfoCardxj 9Zend_Auth_Adapter_Httpx)i UZend_Auth_Adapter_Http_Resolver_Filex.h _Zend_Auth_Adapter_Http_Resolver_Exceptionx g CZend_Auth_Adapter_Exceptionxf =Zend_Auth_Adapter_Digestxe ?Zend_Auth_Adapter_DbTablexd -Zend_Applicationx#c IZend_Application_Resource_Viewx(b SZend_Application_Resource_Translatex&a OZend_Application_Resource_Sessionx%` MZend_Application_Resource_Routerx/_ aZend_Application_Resource_ResourceAbstractx)^ UZend_Application_Resource_Navigationx&] OZend_Application_Resource_Modulesx%\ MZend_Application_Resource_Localex%[ MZend_Application_Resource_Layoutx.Z _Zend_Application_Resource_Frontcontrollerx(Y SZend_Application_Resource_Exceptionx!X EZend_Application_Resource_Dbx&W OZend_Application_Module_Bootstrapx'V QZend_Application_Module_AutoloaderxU AZend_Application_Exceptionx)T UZend_Application_Bootstrap_Exceptionx1S eZend_Application_Bootstrap_BootstrapAbstractx)R UZend_Application_Bootstrap_BootstrapxQ ?Zend_Amf_Value_TraitsInfox-P ]Zend_Amf_Value_Messaging_RemotingMessagex*O WZend_Amf_Value_Messaging_ErrorMessagex,N [Zend_Amf_Value_Messaging_CommandMessagex*M WZend_Amf_Value_Messaging_AsyncMessagex-L ]Zend_Amf_Value_Messaging_ArrayCollectionx0K cZend_Amf_Value_Messaging_AcknowledgeMessagex-J ]Zend_Amf_Value_Messaging_AbstractMessagex!I EZend_Amf_Value_MessageHeaderxH AZend_Amf_Value_MessageBodyxG =Zend_Amf_Value_ByteArrayxF AZend_Amf_Util_BinaryStreamxE +Zend_Amf_ServerxD ?Zend_Amf_Server_ExceptionxC /Zend_Amf_ResponsexB 9Zend_Amf_Response_HttpxA -Zend_Amf_Requestx@ 7Zend_Amf_Request_Httpx? ?Zend_Amf_Parse_TypeLoaderx> ?Zend_Amf_Parse_Serializerx#= IZend_Amf_Parse_Resource_Streamx(< SZend_Amf_Parse_Resource_MysqlResultx); UZend_Amf_Parse_Resource_MysqliResultx : CZend_Amf_Parse_OutputStreamx9 AZend_Amf_Parse_InputStreamx 8 CZend_Amf_Parse_Deserializerx#7 IZend_Amf_Parse_Amf3_Serializerx%6 MZend_Amf_Parse_Amf3_Deserializerx#5 IZend_Amf_Parse_Amf0_Serializerx%4 MZend_Amf_Parse_Amf0_Deserializerx3 1Zend_Amf_Exceptionx2 1Zend_Amf_Constantsx1 9Zend_Amf_Auth_Abstractx 0 CZend_Amf_Adobe_Introspectorx/ AZend_Amf_Adobe_DbInspectorx. 3Zend_Amf_Adobe_Authx- Zend_Aclx, 'Zend_Acl_Rolex+ 9Zend_Acl_Role_Registryx%* MZend_Acl_Role_Registry_Exceptionx) /Zend_Acl_Resourcex( 1Zend_Acl_Exceptionx' /Zend_XmlRpc_Valuew& =Zend_XmlRpc_Value_Structw% =Zend_XmlRpc_Value_Stringw$ =Zend_XmlRpc_Value_Scalarw# 7Zend_XmlRpc_Value_Nilw" ?Zend_XmlRpc_Value_Integerw ! CZend_XmlRpc_Value_Exceptionw  =Zend_XmlRpc_Value_Doublew AZend_XmlRpc_Value_DateTimew! EZend_XmlRpc_Value_Collectionw ?Zend_XmlRpc_Value_Booleanw =Zend_XmlRpc_Value_Base64w ;Zend_XmlRpc_Value_Arrayw 1Zend_XmlRpc_Serverw ?Zend_XmlRpc_Server_Systemw =Zend_XmlRpc_Server_Faultw! EZend_XmlRpc_Server_Exceptionw =Zend_XmlRpc_Server_Cachew 5Zend_XmlRpc_Responsew ?Zend_XmlRpc_Response_Httpw 3Zend_XmlRpc_Requestw ?Zend_XmlRpc_Request_Stdinw =Zend_XmlRpc_Request_Httpw /Zend_XmlRpc_Faultw 7Zend_XmlRpc_Exceptionw 1Zend_XmlRpc_Clientw# IZend_XmlRpc_Client_ServerProxyw+ YZend_XmlRpc_Client_ServerIntrospectionw+ YZend_XmlRpc_Client_IntrospectExceptionw%
 MZend_XmlRpc_Client_HttpExceptionw&	 OZend_XmlRpc_Client_FaultExceptionw! EZend_XmlRpc_Client_Exceptionw   Y  l@xQ+qG T$k<



a
=
				}	U	.W0X0Zc5g)e7e/\;                  ,M [Zend_Application_Bootstrap_BootstrapperxL ;Zend_Acl_Role_Interfacex K CZend_Acl_Resource_InterfacexJ ?Zend_Acl_Assert_Interfacex#I IZend_Wildfire_Plugin_Interfacew$H KZend_Wildfire_Channel_InterfacewG 3Zend_View_Interfacew'F QZend_View_Helper_Navigation_HelperwE AZend_View_Helper_InterfacewD ;Zend_Validate_Interfacew3C iZend_Tool_Project_Profile_FileParser_Interfacew:B wZend_Tool_Project_Context_System_TopLevelRestrictablew5A mZend_Tool_Project_Context_System_NotOverwritablew/@ aZend_Tool_Project_Context_System_Interfacew(? SZend_Tool_Project_Context_Interfacew+> YZend_Tool_Framework_Registry_Interfacew2= gZend_Tool_Framework_Registry_EnabledInterfacew-< ]Zend_Tool_Framework_Provider_Pretendablew+; YZend_Tool_Framework_Provider_Interfacew.: _Zend_Tool_Framework_Provider_Interactablew;9 yZend_Tool_Framework_Provider_DocblockManifestInterfacew+8 YZend_Tool_Framework_Metadata_Interfacew67 oZend_Tool_Framework_Manifest_ProviderManifestablew66 oZend_Tool_Framework_Manifest_MetadataManifestablew+5 YZend_Tool_Framework_Manifest_Interfacew+4 YZend_Tool_Framework_Manifest_Indexablew43 kZend_Tool_Framework_Manifest_ActionManifestablew82 sZend_Tool_Framework_Client_Storage_AdapterInterfacewD1 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interfacew;0 yZend_Tool_Framework_Client_Interactive_OutputInterfacew:/ wZend_Tool_Framework_Client_Interactive_InputInterfacew). UZend_Tool_Framework_Action_Interfacew(- SZend_Text_Table_Decorator_Interfacew, /Zend_Tag_Taggablew&+ OZend_Soap_Wsdl_Strategy_Interfacew%* MZend_Session_Validator_Interfacew') QZend_Session_SaveHandler_Interfacew( 7Zend_Server_Interfacew4' kZend_Search_Lucene_Search_Highlighter_Interfacew!& EZend_Search_Lucene_Interfacew3% iZend_Search_Lucene_Index_TermsStream_Interfacew$$ KZend_Queue_Stomp_FrameInterfacew0# cZend_Queue_Stomp_Client_ConnectionInterfacew(" SZend_Queue_Adapter_AdapterInterfacew! ?Zend_Pdf_Filter_Interfacew&  OZend_Pdf_ElementFactory_Interfacew, [Zend_Paginator_ScrollingStyle_Interfacew$ KZend_Paginator_AdapterAggregatew% MZend_Paginator_Adapter_Interfacew$ KZend_Memory_Container_Interfacew) UZend_Mail_Storage_Writable_Interfacew' QZend_Mail_Storage_Folder_Interfacew =Zend_Mail_Part_Interfacew  CZend_Mail_Message_Interfacew! EZend_Log_Formatter_Interfacew ?Zend_Log_Filter_Interfacew' QZend_Loader_PluginLoader_Interfacew% MZend_Loader_Autoloader_Interfacew0 cZend_Ldap_Node_Schema_ObjectClass_Interfacew2 gZend_Ldap_Node_Schema_AttributeType_Interfacew, [Zend_Ldap_Collection_Iterator_Interfacew3 iZend_InfoCard_Xml_Security_Transform_Interfacew( SZend_InfoCard_Xml_KeyInfo_Interfacew( SZend_InfoCard_Xml_Element_Interfacew* WZend_InfoCard_Xml_Assertion_Interfacew- ]Zend_InfoCard_Cipher_Symmetric_Interfacew7 qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interfacew7
 qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interfacew+	 YZend_InfoCard_Cipher_Pki_Rsa_Interfacew' QZend_InfoCard_Cipher_Pki_Interfacew$ KZend_InfoCard_Adapter_Interfacew' QZend_Http_Client_Adapter_Interfacew AZend_Gdata_App_MediaSourcew. _Zend_Form_Decorator_Marker_File_Interfacew" GZend_Form_Decorator_Interfacew 7Zend_Filter_Interfacew" GZend_Filter_Encrypt_Interfacew#  IZend_Feed_Reader_FeedInterfacew$ KZend_Feed_Reader_EntryInterfacew ~ CZend_Feed_Builder_Interfacew } CZend_Db_Statement_Interfacew)| UZend_Crypt_Math_BigInteger_Interfacew+{ YZend_Controller_Router_Route_Interfacew%z MZend_Controller_Router_Interfacew)y UZend_Controller_Dispatcher_Interfacew%x MZend_Controller_Action_Interfaceww 5Zend_Captcha_Adapterw!v EZend_Cache_Backend_Interfacew)u UZend_Cache_Backend_ExtendedInterfacew   d  hF&`:_>+hDzH



t
E
				[	3	kW1Yr=JzX:kBuK&V/       'U QZend_Controller_Router_Route_Chainx*T WZend_Controller_Router_Route_Abstractx#S IZend_Controller_Router_Rewritex%R MZend_Controller_Router_Exceptionx$Q KZend_Controller_Router_Abstractx*P WZend_Controller_Response_HttpTestCasex"O GZend_Controller_Response_Httpx'N QZend_Controller_Response_Exceptionx!M EZend_Controller_Response_Clix&L OZend_Controller_Response_Abstractx#K IZend_Controller_Request_Simplex)J UZend_Controller_Request_HttpTestCasex!I EZend_Controller_Request_Httpx&H OZend_Controller_Request_Exceptionx&G OZend_Controller_Request_Apache404x%F MZend_Controller_Request_Abstractx&E OZend_Controller_Plugin_PutHandlerx(D SZend_Controller_Plugin_ErrorHandlerx"C GZend_Controller_Plugin_Brokerx'B QZend_Controller_Plugin_ActionStackx$A KZend_Controller_Plugin_Abstractx@ 7Zend_Controller_Frontx? ?Zend_Controller_Exceptionx(> SZend_Controller_Dispatcher_Standardx)= UZend_Controller_Dispatcher_Exceptionx(< SZend_Controller_Dispatcher_Abstractx; 9Zend_Controller_Actionx(: SZend_Controller_Action_HelperBrokerx69 oZend_Controller_Action_HelperBroker_PriorityStackx/8 aZend_Controller_Action_Helper_ViewRendererx&7 OZend_Controller_Action_Helper_Urlx-6 ]Zend_Controller_Action_Helper_Redirectorx'5 QZend_Controller_Action_Helper_Jsonx14 eZend_Controller_Action_Helper_FlashMessengerx03 cZend_Controller_Action_Helper_ContextSwitchx<2 {Zend_Controller_Action_Helper_AutoCompleteScriptaculousx31 iZend_Controller_Action_Helper_AutoCompleteDojox80 sZend_Controller_Action_Helper_AutoComplete_Abstractx./ _Zend_Controller_Action_Helper_AjaxContextx.. _Zend_Controller_Action_Helper_ActionStackx+- YZend_Controller_Action_Helper_Abstractx%, MZend_Controller_Action_Exceptionx+ 3Zend_Console_Getoptx"* GZend_Console_Getopt_Exceptionx) #Zend_Configx( +Zend_Config_Xmlx' 1Zend_Config_Writerx& 9Zend_Config_Writer_Xmlx% 9Zend_Config_Writer_Inix$ =Zend_Config_Writer_Arrayx# +Zend_Config_Inix" 7Zend_Config_Exceptionx$! KZend_CodeGenerator_Php_Propertyx1  eZend_CodeGenerator_Php_Property_DefaultValuex% MZend_CodeGenerator_Php_Parameterx2 gZend_CodeGenerator_Php_Parameter_DefaultValuex" GZend_CodeGenerator_Php_Methodx, [Zend_CodeGenerator_Php_Member_Containerx+ YZend_CodeGenerator_Php_Member_Abstractx  CZend_CodeGenerator_Php_Filex% MZend_CodeGenerator_Php_Exceptionx$ KZend_CodeGenerator_Php_Docblockx( SZend_CodeGenerator_Php_Docblock_Tagx/ aZend_CodeGenerator_Php_Docblock_Tag_Returnx. _Zend_CodeGenerator_Php_Docblock_Tag_Paramx0 cZend_CodeGenerator_Php_Docblock_Tag_Licensex! EZend_CodeGenerator_Php_Classx  CZend_CodeGenerator_Php_Bodyx$ KZend_CodeGenerator_Php_Abstractx! EZend_CodeGenerator_Exceptionx  CZend_CodeGenerator_Abstractx /Zend_Captcha_Wordx 9Zend_Captcha_ReCaptchax 1Zend_Captcha_Imagex 3Zend_Captcha_Figletx
 9Zend_Captcha_Exceptionx	 /Zend_Captcha_Dumbx /Zend_Captcha_Basex !Zend_Cachex =Zend_Cache_Frontend_Pagex AZend_Cache_Frontend_Outputx! EZend_Cache_Frontend_Functionx =Zend_Cache_Frontend_Filex ?Zend_Cache_Frontend_Classx 5Zend_Cache_Exceptionx  +Zend_Cache_Corex 1Zend_Cache_Backendx"~ GZend_Cache_Backend_ZendServerx(} SZend_Cache_Backend_ZendServer_ShMemx'| QZend_Cache_Backend_ZendServer_Diskx${ KZend_Cache_Backend_ZendPlatformxz ?Zend_Cache_Backend_Xcachex!y EZend_Cache_Backend_TwoLevelsxx ;Zend_Cache_Backend_Testxw ?Zend_Cache_Backend_Sqlitex!v EZend_Cache_Backend_Memcachedxu ;Zend_Cache_Backend_Filext 9Zend_Cache_Backend_Apcxs Zend_Authxr ?Zend_Auth_Storage_Sessionx   m  {O*]0	gL5"gA%sN*




`
=
						c	J	)	}\1bH)a:lP_1xT._5V'                           'B QZend_Dojo_Form_Element_RadioButtonx+A YZend_Dojo_Form_Element_PasswordTextBoxx)@ UZend_Dojo_Form_Element_NumberTextBoxx)? UZend_Dojo_Form_Element_NumberSpinnerx,> [Zend_Dojo_Form_Element_HorizontalSliderx+= YZend_Dojo_Form_Element_FilteringSelectx"< GZend_Dojo_Form_Element_Editorx&; OZend_Dojo_Form_Element_DijitMultix!: EZend_Dojo_Form_Element_Dijitx'9 QZend_Dojo_Form_Element_DateTextBoxx+8 YZend_Dojo_Form_Element_CurrencyTextBoxx$7 KZend_Dojo_Form_Element_ComboBoxx$6 KZend_Dojo_Form_Element_CheckBoxx"5 GZend_Dojo_Form_Element_Buttonx 4 CZend_Dojo_Form_DisplayGroupx*3 WZend_Dojo_Form_Decorator_TabContainerx,2 [Zend_Dojo_Form_Decorator_StackContainerx,1 [Zend_Dojo_Form_Decorator_SplitContainerx'0 QZend_Dojo_Form_Decorator_DijitFormx*/ WZend_Dojo_Form_Decorator_DijitElementx,. [Zend_Dojo_Form_Decorator_DijitContainerx)- UZend_Dojo_Form_Decorator_ContentPanex-, ]Zend_Dojo_Form_Decorator_BorderContainerx++ YZend_Dojo_Form_Decorator_AccordionPanex0* cZend_Dojo_Form_Decorator_AccordionContainerx) 3Zend_Dojo_Exceptionx( )Zend_Dojo_Datax' 5Zend_Dojo_BuildLayerx& !Zend_Debugx% Zend_Dbx$ 'Zend_Db_Tablex# 5Zend_Db_Table_Selectx#" IZend_Db_Table_Select_Exceptionx! 5Zend_Db_Table_Rowsetx#  IZend_Db_Table_Rowset_Exceptionx" GZend_Db_Table_Rowset_Abstractx /Zend_Db_Table_Rowx  CZend_Db_Table_Row_Exceptionx AZend_Db_Table_Row_Abstractx ;Zend_Db_Table_Exceptionx =Zend_Db_Table_Definitionx 9Zend_Db_Table_Abstractx /Zend_Db_Statementx =Zend_Db_Statement_Sqlsrvx' QZend_Db_Statement_Sqlsrv_Exceptionx 7Zend_Db_Statement_Pdox ?Zend_Db_Statement_Pdo_Ocix ?Zend_Db_Statement_Pdo_Ibmx =Zend_Db_Statement_Oraclex' QZend_Db_Statement_Oracle_Exceptionx =Zend_Db_Statement_Mysqlix' QZend_Db_Statement_Mysqli_Exceptionx  CZend_Db_Statement_Exceptionx 7Zend_Db_Statement_Db2x$ KZend_Db_Statement_Db2_Exceptionx )Zend_Db_Selectx
 =Zend_Db_Select_Exceptionx	 -Zend_Db_Profilerx 9Zend_Db_Profiler_Queryx =Zend_Db_Profiler_Firebugx AZend_Db_Profiler_Exceptionx %Zend_Db_Exprx /Zend_Db_Exceptionx 9Zend_Db_Adapter_Sqlsrvx% MZend_Db_Adapter_Sqlsrv_Exceptionx AZend_Db_Adapter_Pdo_Sqlitex  ?Zend_Db_Adapter_Pdo_Pgsqlx ;Zend_Db_Adapter_Pdo_Ocix~ ?Zend_Db_Adapter_Pdo_Mysqlx} ?Zend_Db_Adapter_Pdo_Mssqlx| ;Zend_Db_Adapter_Pdo_Ibmx { CZend_Db_Adapter_Pdo_Ibm_Idsx z CZend_Db_Adapter_Pdo_Ibm_Db2x!y EZend_Db_Adapter_Pdo_Abstractxx 9Zend_Db_Adapter_Oraclex%w MZend_Db_Adapter_Oracle_Exceptionxv 9Zend_Db_Adapter_Mysqlix%u MZend_Db_Adapter_Mysqli_Exceptionxt ?Zend_Db_Adapter_Exceptionxs 3Zend_Db_Adapter_Db2x"r GZend_Db_Adapter_Db2_Exceptionxq =Zend_Db_Adapter_Abstractxp Zend_Datexo 3Zend_Date_Exceptionxn 5Zend_Date_DateObjectxm -Zend_Date_Citiesxl 'Zend_Currencyxk ;Zend_Currency_Exceptionxj !Zend_Cryptxi )Zend_Crypt_Rsaxh 1Zend_Crypt_Rsa_Keyxg ?Zend_Crypt_Rsa_Key_Publicxf AZend_Crypt_Rsa_Key_Privatexe +Zend_Crypt_Mathxd ?Zend_Crypt_Math_Exceptionxc AZend_Crypt_Math_BigIntegerx#b IZend_Crypt_Math_BigInteger_Gmpx)a UZend_Crypt_Math_BigInteger_Exceptionx&` OZend_Crypt_Math_BigInteger_Bcmathx_ +Zend_Crypt_Hmacx^ ?Zend_Crypt_Hmac_Exceptionx] 5Zend_Crypt_Exceptionx\ =Zend_Crypt_DiffieHellmanx'[ QZend_Crypt_DiffieHellman_Exceptionx!Z EZend_Controller_Router_Routex(Y SZend_Controller_Router_Route_Staticx'X QZend_Controller_Router_Route_Regexx(W SZend_Controller_Router_Route_Modulex*V WZend_Controller_Router_Route_Hostnamex   f  X1qPyR(U(`4



^
1
				a	7	nW@%gM,i;l8sCyV4yT9|Y5        ( =Zend_Filter_File_Decryptx' 7Zend_Filter_Exceptionx& 3Zend_Filter_Encryptx % CZend_Filter_Encrypt_Opensslx$ AZend_Filter_Encrypt_Mcryptx# +Zend_Filter_Dirx" 1Zend_Filter_Digitsx! 3Zend_Filter_Decryptx  5Zend_Filter_Callbackx 5Zend_Filter_BaseNamex /Zend_Filter_Alphax /Zend_Filter_Alnumx 1Zend_File_Transferx! EZend_File_Transfer_Exceptionx$ KZend_File_Transfer_Adapter_Httpx( SZend_File_Transfer_Adapter_Abstractx Zend_Feedx 'Zend_Feed_Rssx -Zend_Feed_Readerx" GZend_Feed_Reader_FeedAbstractx ?Zend_Feed_Reader_Feed_Rssx AZend_Feed_Reader_Feed_Atomx3 iZend_Feed_Reader_Extension_WellFormedWeb_Entryx, [Zend_Feed_Reader_Extension_Thread_Entryx0 cZend_Feed_Reader_Extension_Syndication_Feedx+ YZend_Feed_Reader_Extension_Slash_Entryx, [Zend_Feed_Reader_Extension_Podcast_Feedx- ]Zend_Feed_Reader_Extension_Podcast_Entryx, [Zend_Feed_Reader_Extension_FeedAbstractx- ]Zend_Feed_Reader_Extension_EntryAbstractx/
 aZend_Feed_Reader_Extension_DublinCore_Feedx0	 cZend_Feed_Reader_Extension_DublinCore_Entryx4 kZend_Feed_Reader_Extension_CreativeCommons_Feedx5 mZend_Feed_Reader_Extension_CreativeCommons_Entryx- ]Zend_Feed_Reader_Extension_Content_Entryx) UZend_Feed_Reader_Extension_Atom_Feedx* WZend_Feed_Reader_Extension_Atom_Entryx# IZend_Feed_Reader_EntryAbstractx AZend_Feed_Reader_Entry_Rssx  CZend_Feed_Reader_Entry_Atomx  3Zend_Feed_Exceptionx 3Zend_Feed_Entry_Rssx~ 5Zend_Feed_Entry_Atomx} =Zend_Feed_Entry_Abstractx| /Zend_Feed_Elementx{ /Zend_Feed_Builderxz =Zend_Feed_Builder_Headerx$y KZend_Feed_Builder_Header_Itunesx x CZend_Feed_Builder_Exceptionxw ;Zend_Feed_Builder_Entryxv )Zend_Feed_Atomxu 1Zend_Feed_Abstractxt )Zend_Exceptionxs )Zend_Dom_Queryxr 7Zend_Dom_Query_Resultxq =Zend_Dom_Query_Css2Xpathxp 1Zend_Dom_Exceptionxo Zend_Dojox)n UZend_Dojo_View_Helper_VerticalSliderx,m [Zend_Dojo_View_Helper_ValidationTextBoxx&l OZend_Dojo_View_Helper_TimeTextBoxx"k GZend_Dojo_View_Helper_TextBoxx#j IZend_Dojo_View_Helper_Textareax'i QZend_Dojo_View_Helper_TabContainerx'h QZend_Dojo_View_Helper_SubmitButtonx)g UZend_Dojo_View_Helper_StackContainerx)f UZend_Dojo_View_Helper_SplitContainerx!e EZend_Dojo_View_Helper_Sliderx)d UZend_Dojo_View_Helper_SimpleTextareax&c OZend_Dojo_View_Helper_RadioButtonx*b WZend_Dojo_View_Helper_PasswordTextBoxx(a SZend_Dojo_View_Helper_NumberTextBoxx(` SZend_Dojo_View_Helper_NumberSpinnerx+_ YZend_Dojo_View_Helper_HorizontalSliderx^ AZend_Dojo_View_Helper_Formx*] WZend_Dojo_View_Helper_FilteringSelectx!\ EZend_Dojo_View_Helper_Editorx[ AZend_Dojo_View_Helper_Dojox)Z UZend_Dojo_View_Helper_Dojo_Containerx)Y UZend_Dojo_View_Helper_DijitContainerx X CZend_Dojo_View_Helper_Dijitx&W OZend_Dojo_View_Helper_DateTextBoxx&V OZend_Dojo_View_Helper_CustomDijitx*U WZend_Dojo_View_Helper_CurrencyTextBoxx&T OZend_Dojo_View_Helper_ContentPanex#S IZend_Dojo_View_Helper_ComboBoxx#R IZend_Dojo_View_Helper_CheckBoxx!Q EZend_Dojo_View_Helper_Buttonx*P WZend_Dojo_View_Helper_BorderContainerx(O SZend_Dojo_View_Helper_AccordionPanex-N ]Zend_Dojo_View_Helper_AccordionContainerxM =Zend_Dojo_View_ExceptionxL )Zend_Dojo_FormxK 9Zend_Dojo_Form_SubFormx*J WZend_Dojo_Form_Element_VerticalSliderx-I ]Zend_Dojo_Form_Element_ValidationTextBoxx'H QZend_Dojo_Form_Element_TimeTextBoxx#G IZend_Dojo_Form_Element_TextBoxx$F KZend_Dojo_Form_Element_Textareax(E SZend_Dojo_Form_Element_SubmitButtonx"D GZend_Dojo_Form_Element_Sliderx*C WZend_Dojo_Form_Element_SimpleTextareax   i  yX: wU3}N%xO!`;



{
U
0
				z	X	6	
yX6pP(~]>tF*mCuL%d>qH"                                  # IZend_Gdata_App_Extension_Titlex" GZend_Gdata_App_Extension_Textx% MZend_Gdata_App_Extension_Summaryx& OZend_Gdata_App_Extension_Subtitlex$ KZend_Gdata_App_Extension_Sourcex$ KZend_Gdata_App_Extension_Rightsx' QZend_Gdata_App_Extension_Publishedx$
 KZend_Gdata_App_Extension_Personx"	 GZend_Gdata_App_Extension_Namex" GZend_Gdata_App_Extension_Logox" GZend_Gdata_App_Extension_Linkx  CZend_Gdata_App_Extension_Idx" GZend_Gdata_App_Extension_Iconx' QZend_Gdata_App_Extension_Generatorx# IZend_Gdata_App_Extension_Emailx% MZend_Gdata_App_Extension_Elementx$ KZend_Gdata_App_Extension_Editedx#  IZend_Gdata_App_Extension_Draftx% MZend_Gdata_App_Extension_Controlx)~ UZend_Gdata_App_Extension_Contributorx%} MZend_Gdata_App_Extension_Contentx&| OZend_Gdata_App_Extension_Categoryx${ KZend_Gdata_App_Extension_Authorxz =Zend_Gdata_App_Exceptionxy 5Zend_Gdata_App_Entryx,x [Zend_Gdata_App_CaptchaRequiredExceptionx#w IZend_Gdata_App_BaseMediaSourcexv 3Zend_Gdata_App_Basex*u WZend_Gdata_App_BadMethodCallExceptionx!t EZend_Gdata_App_AuthExceptionxs Zend_Formxr /Zend_Form_SubFormxq 3Zend_Form_Exceptionxp /Zend_Form_Elementxo ;Zend_Form_Element_Xhtmlxn AZend_Form_Element_Textareaxm 9Zend_Form_Element_Textxl =Zend_Form_Element_Submitxk =Zend_Form_Element_Selectxj ;Zend_Form_Element_Resetxi ;Zend_Form_Element_Radioxh AZend_Form_Element_Passwordx"g GZend_Form_Element_Multiselectx$f KZend_Form_Element_MultiCheckboxxe ;Zend_Form_Element_Multixd ;Zend_Form_Element_Imagexc =Zend_Form_Element_Hiddenxb 9Zend_Form_Element_Hashxa 9Zend_Form_Element_Filex ` CZend_Form_Element_Exceptionx_ AZend_Form_Element_Checkboxx^ ?Zend_Form_Element_Captchax] =Zend_Form_Element_Buttonx\ 9Zend_Form_DisplayGroupx#[ IZend_Form_Decorator_ViewScriptx#Z IZend_Form_Decorator_ViewHelperx Y CZend_Form_Decorator_Tooltipx(X SZend_Form_Decorator_PrepareElementsxW ?Zend_Form_Decorator_LabelxV ?Zend_Form_Decorator_Imagex U CZend_Form_Decorator_HtmlTagx#T IZend_Form_Decorator_FormErrorsx%S MZend_Form_Decorator_FormElementsxR =Zend_Form_Decorator_FormxQ =Zend_Form_Decorator_Filex!P EZend_Form_Decorator_Fieldsetx"O GZend_Form_Decorator_ExceptionxN AZend_Form_Decorator_Errorsx$M KZend_Form_Decorator_DtDdWrapperx$L KZend_Form_Decorator_Descriptionx K CZend_Form_Decorator_Captchax%J MZend_Form_Decorator_Captcha_Wordx!I EZend_Form_Decorator_Callbackx!H EZend_Form_Decorator_AbstractxG #Zend_Filterx+F YZend_Filter_Word_UnderscoreToSeparatorx&E OZend_Filter_Word_UnderscoreToDashx+D YZend_Filter_Word_UnderscoreToCamelCasex*C WZend_Filter_Word_SeparatorToSeparatorx%B MZend_Filter_Word_SeparatorToDashx*A WZend_Filter_Word_SeparatorToCamelCasex(@ SZend_Filter_Word_Separator_Abstractx&? OZend_Filter_Word_DashToUnderscorex%> MZend_Filter_Word_DashToSeparatorx%= MZend_Filter_Word_DashToCamelCasex+< YZend_Filter_Word_CamelCaseToUnderscorex*; WZend_Filter_Word_CamelCaseToSeparatorx%: MZend_Filter_Word_CamelCaseToDashx9 7Zend_Filter_StripTagsx8 ?Zend_Filter_StripNewlinesx7 9Zend_Filter_StringTrimx6 ?Zend_Filter_StringToUpperx5 ?Zend_Filter_StringToLowerx4 5Zend_Filter_RealPathx3 ;Zend_Filter_PregReplacex&2 OZend_Filter_NormalizedToLocalizedx&1 OZend_Filter_LocalizedToNormalizedx0 +Zend_Filter_Intx/ /Zend_Filter_Inputx. 7Zend_Filter_Inflectorx- =Zend_Filter_HtmlEntitiesx, AZend_Filter_File_UpperCasex+ ;Zend_Filter_File_Renamex* AZend_Filter_File_LowerCasex) =Zend_Filter_File_Encryptx   _  uN&xV/h6{L"yT;



i
<
			v	G	f=vGR$yQ#~V/}W0MqK!                   p ?Zend_Gdata_Extension_Whenx$o KZend_Gdata_Extension_Visibilityx&n OZend_Gdata_Extension_Transparencyx"m GZend_Gdata_Extension_Reminderx-l ]Zend_Gdata_Extension_RecurrenceExceptionx$k KZend_Gdata_Extension_Recurrencex j CZend_Gdata_Extension_Ratingx'i QZend_Gdata_Extension_OriginalEventx0h cZend_Gdata_Extension_OpenSearchTotalResultsx.g _Zend_Gdata_Extension_OpenSearchStartIndexx0f cZend_Gdata_Extension_OpenSearchItemsPerPagex"e GZend_Gdata_Extension_FeedLinkx*d WZend_Gdata_Extension_ExtendedPropertyx%c MZend_Gdata_Extension_EventStatusx#b IZend_Gdata_Extension_EntryLinkx"a GZend_Gdata_Extension_Commentsx&` OZend_Gdata_Extension_AttendeeTypex(_ SZend_Gdata_Extension_AttendeeStatusx^ +Zend_Gdata_Exifx] 5Zend_Gdata_Exif_Feedx#\ IZend_Gdata_Exif_Extension_Timex#[ IZend_Gdata_Exif_Extension_Tagsx$Z KZend_Gdata_Exif_Extension_Modelx#Y IZend_Gdata_Exif_Extension_Makex"X GZend_Gdata_Exif_Extension_Isox,W [Zend_Gdata_Exif_Extension_ImageUniqueIdx$V KZend_Gdata_Exif_Extension_FStopx*U WZend_Gdata_Exif_Extension_FocalLengthx$T KZend_Gdata_Exif_Extension_Flashx'S QZend_Gdata_Exif_Extension_Exposurex'R QZend_Gdata_Exif_Extension_DistancexQ 7Zend_Gdata_Exif_EntryxP -Zend_Gdata_EntryxO 7Zend_Gdata_DublinCorex*N WZend_Gdata_DublinCore_Extension_Titlex,M [Zend_Gdata_DublinCore_Extension_Subjectx+L YZend_Gdata_DublinCore_Extension_Rightsx.K _Zend_Gdata_DublinCore_Extension_Publisherx-J ]Zend_Gdata_DublinCore_Extension_Languagex/I aZend_Gdata_DublinCore_Extension_Identifierx+H YZend_Gdata_DublinCore_Extension_Formatx0G cZend_Gdata_DublinCore_Extension_Descriptionx)F UZend_Gdata_DublinCore_Extension_Datex,E [Zend_Gdata_DublinCore_Extension_CreatorxD +Zend_Gdata_DocsxC 7Zend_Gdata_Docs_Queryx%B MZend_Gdata_Docs_DocumentListFeedx&A OZend_Gdata_Docs_DocumentListEntryx@ 9Zend_Gdata_ClientLoginx? 3Zend_Gdata_Calendarx!> EZend_Gdata_Calendar_ListFeedx"= GZend_Gdata_Calendar_ListEntryx-< ]Zend_Gdata_Calendar_Extension_WebContentx+; YZend_Gdata_Calendar_Extension_Timezonex9: uZend_Gdata_Calendar_Extension_SendEventNotificationsx+9 YZend_Gdata_Calendar_Extension_Selectedx+8 YZend_Gdata_Calendar_Extension_QuickAddx'7 QZend_Gdata_Calendar_Extension_Linkx)6 UZend_Gdata_Calendar_Extension_Hiddenx(5 SZend_Gdata_Calendar_Extension_Colorx.4 _Zend_Gdata_Calendar_Extension_AccessLevelx#3 IZend_Gdata_Calendar_EventQueryx"2 GZend_Gdata_Calendar_EventFeedx#1 IZend_Gdata_Calendar_EventEntryx0 -Zend_Gdata_Booksx!/ EZend_Gdata_Books_VolumeQueryx . CZend_Gdata_Books_VolumeFeedx!- EZend_Gdata_Books_VolumeEntryx+, YZend_Gdata_Books_Extension_Viewabilityx-+ ]Zend_Gdata_Books_Extension_ThumbnailLinkx&* OZend_Gdata_Books_Extension_Reviewx+) YZend_Gdata_Books_Extension_PreviewLinkx(( SZend_Gdata_Books_Extension_InfoLinkx-' ]Zend_Gdata_Books_Extension_Embeddabilityx)& UZend_Gdata_Books_Extension_BooksLinkx-% ]Zend_Gdata_Books_Extension_BooksCategoryx.$ _Zend_Gdata_Books_Extension_AnnotationLinkx$# KZend_Gdata_Books_CollectionFeedx%" MZend_Gdata_Books_CollectionEntryx! 1Zend_Gdata_AuthSubx  )Zend_Gdata_Appx$ KZend_Gdata_App_VersionExceptionx 3Zend_Gdata_App_Utilx# IZend_Gdata_App_MediaFileSourcex ?Zend_Gdata_App_MediaEntryx2 gZend_Gdata_App_LoggingHttpClientAdapterSocketx AZend_Gdata_App_IOExceptionx, [Zend_Gdata_App_InvalidArgumentExceptionx! EZend_Gdata_App_HttpExceptionx$ KZend_Gdata_App_FeedSourceParentx# IZend_Gdata_App_FeedEntryParentx 3Zend_Gdata_App_Feedx =Zend_Gdata_App_Extensionx! EZend_Gdata_App_Extension_Urix% MZend_Gdata_App_Extension_Updatedx   a  _8~_2	e?gN/xY3




[
3

 				`	6	`AKa- iF$sHe/zQ$f5                )Q UZend_Gdata_Photos_Extension_Rotationx+P YZend_Gdata_Photos_Extension_QuotaLimitx-O ]Zend_Gdata_Photos_Extension_QuotaCurrentx)N UZend_Gdata_Photos_Extension_Positionx(M SZend_Gdata_Photos_Extension_PhotoIdx3L iZend_Gdata_Photos_Extension_NumPhotosRemainingx*K WZend_Gdata_Photos_Extension_NumPhotosx)J UZend_Gdata_Photos_Extension_Nicknamex%I MZend_Gdata_Photos_Extension_Namex2H gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumx)G UZend_Gdata_Photos_Extension_Locationx#F IZend_Gdata_Photos_Extension_Idx'E QZend_Gdata_Photos_Extension_Heightx2D gZend_Gdata_Photos_Extension_CommentingEnabledx-C ]Zend_Gdata_Photos_Extension_CommentCountx'B QZend_Gdata_Photos_Extension_Clientx)A UZend_Gdata_Photos_Extension_Checksumx*@ WZend_Gdata_Photos_Extension_BytesUsedx(? SZend_Gdata_Photos_Extension_AlbumIdx'> QZend_Gdata_Photos_Extension_Accessx#= IZend_Gdata_Photos_CommentEntryx!< EZend_Gdata_Photos_AlbumQueryx ; CZend_Gdata_Photos_AlbumFeedx!: EZend_Gdata_Photos_AlbumEntryx9 3Zend_Gdata_MimeFilex8 ?Zend_Gdata_MimeBodyStringx7 AZend_Gdata_MediaMimeStreamx6 -Zend_Gdata_Mediax5 7Zend_Gdata_Media_Feedx*4 WZend_Gdata_Media_Extension_MediaTitlex.3 _Zend_Gdata_Media_Extension_MediaThumbnailx)2 UZend_Gdata_Media_Extension_MediaTextx01 cZend_Gdata_Media_Extension_MediaRestrictionx+0 YZend_Gdata_Media_Extension_MediaRatingx+/ YZend_Gdata_Media_Extension_MediaPlayerx-. ]Zend_Gdata_Media_Extension_MediaKeywordsx)- UZend_Gdata_Media_Extension_MediaHashx*, WZend_Gdata_Media_Extension_MediaGroupx0+ cZend_Gdata_Media_Extension_MediaDescriptionx+* YZend_Gdata_Media_Extension_MediaCreditx.) _Zend_Gdata_Media_Extension_MediaCopyrightx,( [Zend_Gdata_Media_Extension_MediaContentx-' ]Zend_Gdata_Media_Extension_MediaCategoryx& 9Zend_Gdata_Media_Entryx% AZend_Gdata_Kind_EventEntryx$ 7Zend_Gdata_HttpClientx*# WZend_Gdata_HttpAdapterStreamingSocketx)" UZend_Gdata_HttpAdapterStreamingProxyx! /Zend_Gdata_Healthx  ;Zend_Gdata_Health_Queryx& OZend_Gdata_Health_ProfileListFeedx' QZend_Gdata_Health_ProfileListEntryx" GZend_Gdata_Health_ProfileFeedx# IZend_Gdata_Health_ProfileEntryx$ KZend_Gdata_Health_Extension_Ccrx )Zend_Gdata_Geox 3Zend_Gdata_Geo_Feedx$ KZend_Gdata_Geo_Extension_GmlPosx& OZend_Gdata_Geo_Extension_GmlPointx) UZend_Gdata_Geo_Extension_GeoRssWherex 5Zend_Gdata_Geo_Entryx -Zend_Gdata_Gbasex" GZend_Gdata_Gbase_SnippetQueryx! EZend_Gdata_Gbase_SnippetFeedx" GZend_Gdata_Gbase_SnippetEntryx 9Zend_Gdata_Gbase_Queryx AZend_Gdata_Gbase_ItemQueryx ?Zend_Gdata_Gbase_ItemFeedx AZend_Gdata_Gbase_ItemEntryx 7Zend_Gdata_Gbase_Feedx- ]Zend_Gdata_Gbase_Extension_BaseAttributex
 9Zend_Gdata_Gbase_Entryx	 -Zend_Gdata_Gappsx AZend_Gdata_Gapps_UserQueryx ?Zend_Gdata_Gapps_UserFeedx AZend_Gdata_Gapps_UserEntryx& OZend_Gdata_Gapps_ServiceExceptionx 9Zend_Gdata_Gapps_Queryx# IZend_Gdata_Gapps_NicknameQueryx" GZend_Gdata_Gapps_NicknameFeedx# IZend_Gdata_Gapps_NicknameEntryx%  MZend_Gdata_Gapps_Extension_Quotax( SZend_Gdata_Gapps_Extension_Nicknamex$~ KZend_Gdata_Gapps_Extension_Namex%} MZend_Gdata_Gapps_Extension_Loginx)| UZend_Gdata_Gapps_Extension_EmailListx{ 9Zend_Gdata_Gapps_Errorx-z ]Zend_Gdata_Gapps_EmailListRecipientQueryx,y [Zend_Gdata_Gapps_EmailListRecipientFeedx-x ]Zend_Gdata_Gapps_EmailListRecipientEntryx$w KZend_Gdata_Gapps_EmailListQueryx#v IZend_Gdata_Gapps_EmailListFeedx$u KZend_Gdata_Gapps_EmailListEntryxt +Zend_Gdata_Feedxs 5Zend_Gdata_Extensionxr =Zend_Gdata_Extension_Whoxq AZend_Gdata_Extension_Wherex   Z  {R&c@xO%d1S$




]
6
				f	9	~O#pB~R'g9Q mBnHg;          !+ EZend_Gdata_YouTube_VideoFeedx"* GZend_Gdata_YouTube_VideoEntryx() SZend_Gdata_YouTube_UserProfileEntryx(( SZend_Gdata_YouTube_SubscriptionFeedx)' UZend_Gdata_YouTube_SubscriptionEntryx)& UZend_Gdata_YouTube_PlaylistVideoFeedx*% WZend_Gdata_YouTube_PlaylistVideoEntryx($ SZend_Gdata_YouTube_PlaylistListFeedx)# UZend_Gdata_YouTube_PlaylistListEntryx"" GZend_Gdata_YouTube_MediaEntryx!! EZend_Gdata_YouTube_InboxFeedx"  GZend_Gdata_YouTube_InboxEntryx) UZend_Gdata_YouTube_Extension_VideoIdx* WZend_Gdata_YouTube_Extension_Usernamex* WZend_Gdata_YouTube_Extension_Uploadedx' QZend_Gdata_YouTube_Extension_Tokenx( SZend_Gdata_YouTube_Extension_Statusx, [Zend_Gdata_YouTube_Extension_Statisticsx' QZend_Gdata_YouTube_Extension_Statex( SZend_Gdata_YouTube_Extension_Schoolx- ]Zend_Gdata_YouTube_Extension_ReleaseDatex. _Zend_Gdata_YouTube_Extension_Relationshipx* WZend_Gdata_YouTube_Extension_Recordedx& OZend_Gdata_YouTube_Extension_Racyx- ]Zend_Gdata_YouTube_Extension_QueryStringx) UZend_Gdata_YouTube_Extension_Privatex* WZend_Gdata_YouTube_Extension_Positionx/ aZend_Gdata_YouTube_Extension_PlaylistTitlex, [Zend_Gdata_YouTube_Extension_PlaylistIdx, [Zend_Gdata_YouTube_Extension_Occupationx) UZend_Gdata_YouTube_Extension_NoEmbedx' QZend_Gdata_YouTube_Extension_Musicx( SZend_Gdata_YouTube_Extension_Moviesx-
 ]Zend_Gdata_YouTube_Extension_MediaRatingx,	 [Zend_Gdata_YouTube_Extension_MediaGroupx- ]Zend_Gdata_YouTube_Extension_MediaCreditx. _Zend_Gdata_YouTube_Extension_MediaContentx* WZend_Gdata_YouTube_Extension_Locationx& OZend_Gdata_YouTube_Extension_Linkx* WZend_Gdata_YouTube_Extension_LastNamex* WZend_Gdata_YouTube_Extension_Hometownx) UZend_Gdata_YouTube_Extension_Hobbiesx( SZend_Gdata_YouTube_Extension_Genderx+  YZend_Gdata_YouTube_Extension_FirstNamex* WZend_Gdata_YouTube_Extension_Durationx-~ ]Zend_Gdata_YouTube_Extension_Descriptionx+} YZend_Gdata_YouTube_Extension_CountHintx)| UZend_Gdata_YouTube_Extension_Controlx){ UZend_Gdata_YouTube_Extension_Companyx'z QZend_Gdata_YouTube_Extension_Booksx%y MZend_Gdata_YouTube_Extension_Agex)x UZend_Gdata_YouTube_Extension_AboutMex#w IZend_Gdata_YouTube_ContactFeedx$v KZend_Gdata_YouTube_ContactEntryx#u IZend_Gdata_YouTube_CommentFeedx$t KZend_Gdata_YouTube_CommentEntryx$s KZend_Gdata_YouTube_ActivityFeedx%r MZend_Gdata_YouTube_ActivityEntryxq ;Zend_Gdata_Spreadsheetsx*p WZend_Gdata_Spreadsheets_WorksheetFeedx+o YZend_Gdata_Spreadsheets_WorksheetEntryx,n [Zend_Gdata_Spreadsheets_SpreadsheetFeedx-m ]Zend_Gdata_Spreadsheets_SpreadsheetEntryx&l OZend_Gdata_Spreadsheets_ListQueryx%k MZend_Gdata_Spreadsheets_ListFeedx&j OZend_Gdata_Spreadsheets_ListEntryx/i aZend_Gdata_Spreadsheets_Extension_RowCountx-h ]Zend_Gdata_Spreadsheets_Extension_Customx/g aZend_Gdata_Spreadsheets_Extension_ColCountx+f YZend_Gdata_Spreadsheets_Extension_Cellx*e WZend_Gdata_Spreadsheets_DocumentQueryx&d OZend_Gdata_Spreadsheets_CellQueryx%c MZend_Gdata_Spreadsheets_CellFeedx&b OZend_Gdata_Spreadsheets_CellEntryxa -Zend_Gdata_Queryx` /Zend_Gdata_Photosx _ CZend_Gdata_Photos_UserQueryx^ AZend_Gdata_Photos_UserFeedx ] CZend_Gdata_Photos_UserEntryx\ AZend_Gdata_Photos_TagEntryx![ EZend_Gdata_Photos_PhotoQueryx Z CZend_Gdata_Photos_PhotoFeedx!Y EZend_Gdata_Photos_PhotoEntryx&X OZend_Gdata_Photos_Extension_Widthx'W QZend_Gdata_Photos_Extension_Weightx(V SZend_Gdata_Photos_Extension_Versionx%U MZend_Gdata_Photos_Extension_Userx*T WZend_Gdata_Photos_Extension_Timestampx*S WZend_Gdata_Photos_Extension_Thumbnailx%R MZend_Gdata_Photos_Extension_Sizex   k  [4uY>j2]=nF



|
Z
-			~	Q	.aBjM4"sE(yX:a?q5 pI+rQ=      7Zend_Locale_Exceptionx -Zend_Locale_Datax! EZend_Locale_Data_Translationx #Zend_Loaderx =Zend_Loader_PluginLoaderx' QZend_Loader_PluginLoader_Exceptionx 7Zend_Loader_Exceptionx 9Zend_Loader_Autoloaderx$ KZend_Loader_Autoloader_Resourcex Zend_Ldapx )Zend_Ldap_Nodex 7Zend_Ldap_Node_Schemax#
 IZend_Ldap_Node_Schema_OpenLdapx/	 aZend_Ldap_Node_Schema_ObjectClass_OpenLdapx6 oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectoryx AZend_Ldap_Node_Schema_Itemx1 eZend_Ldap_Node_Schema_AttributeType_OpenLdapx8 sZend_Ldap_Node_Schema_AttributeType_ActiveDirectoryx* WZend_Ldap_Node_Schema_ActiveDirectoryx 9Zend_Ldap_Node_RootDsex$ KZend_Ldap_Node_RootDse_OpenLdapx& OZend_Ldap_Node_RootDse_eDirectoryx+  YZend_Ldap_Node_RootDse_ActiveDirectoryx ?Zend_Ldap_Node_Collectionx$~ KZend_Ldap_Node_ChildrenIteratorx} ;Zend_Ldap_Node_Abstractx| 9Zend_Ldap_Ldif_Encoderx{ -Zend_Ldap_Filterxz ;Zend_Ldap_Filter_Stringxy 3Zend_Ldap_Filter_Orxx 5Zend_Ldap_Filter_Notxw 7Zend_Ldap_Filter_Maskxv =Zend_Ldap_Filter_Logicalxu AZend_Ldap_Filter_Exceptionxt 5Zend_Ldap_Filter_Andxs ?Zend_Ldap_Filter_Abstractxr 3Zend_Ldap_Exceptionxq %Zend_Ldap_Dnxp 3Zend_Ldap_Converterxo 5Zend_Ldap_Collectionx*n WZend_Ldap_Collection_Iterator_Defaultxm 3Zend_Ldap_Attributexl #Zend_Layoutxk 7Zend_Layout_Exceptionx)j UZend_Layout_Controller_Plugin_Layoutx0i cZend_Layout_Controller_Action_Helper_Layoutxh Zend_Jsonxg -Zend_Json_Serverxf 5Zend_Json_Server_Smdx!e EZend_Json_Server_Smd_Servicexd ?Zend_Json_Server_Responsex#c IZend_Json_Server_Response_Httpxb =Zend_Json_Server_Requestx"a GZend_Json_Server_Request_Httpx` AZend_Json_Server_Exceptionx_ 9Zend_Json_Server_Errorx^ 9Zend_Json_Server_Cachex] )Zend_Json_Exprx\ 3Zend_Json_Exceptionx[ /Zend_Json_EncoderxZ /Zend_Json_DecoderxY 'Zend_InfoCardx-X ]Zend_InfoCard_Xml_SecurityTokenReferencexW AZend_InfoCard_Xml_Securityx)V UZend_InfoCard_Xml_Security_Transformx4U kZend_InfoCard_Xml_Security_Transform_XmlExcC14Nx3T iZend_InfoCard_Xml_Security_Transform_Exceptionx<S {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignaturex)R UZend_InfoCard_Xml_Security_ExceptionxQ ?Zend_InfoCard_Xml_KeyInfox&P OZend_InfoCard_Xml_KeyInfo_XmlDSigx&O OZend_InfoCard_Xml_KeyInfo_Defaultx'N QZend_InfoCard_Xml_KeyInfo_Abstractx M CZend_InfoCard_Xml_Exceptionx#L IZend_InfoCard_Xml_EncryptedKeyx$K KZend_InfoCard_Xml_EncryptedDatax+J YZend_InfoCard_Xml_EncryptedData_XmlEncx-I ]Zend_InfoCard_Xml_EncryptedData_AbstractxH ?Zend_InfoCard_Xml_Elementx G CZend_InfoCard_Xml_Assertionx%F MZend_InfoCard_Xml_Assertion_SamlxE ;Zend_InfoCard_Exceptionx%D MZend_InfoCard_Exception_AbstractxC 5Zend_InfoCard_ClaimsxB 5Zend_InfoCard_Cipherx5A mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcx5@ mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcx4? kZend_InfoCard_Cipher_Symmetric_Adapter_Abstractx)> UZend_InfoCard_Cipher_Pki_Adapter_Rsax.= _Zend_InfoCard_Cipher_Pki_Adapter_Abstractx#< IZend_InfoCard_Cipher_Exceptionx$; KZend_InfoCard_Adapter_Exceptionx": GZend_InfoCard_Adapter_Defaultx9 1Zend_Http_Responsex8 3Zend_Http_Exceptionx7 3Zend_Http_CookieJarx6 -Zend_Http_Cookiex5 -Zend_Http_Clientx4 AZend_Http_Client_Exceptionx"3 GZend_Http_Client_Adapter_Testx$2 KZend_Http_Client_Adapter_Socketx#1 IZend_Http_Client_Adapter_Proxyx'0 QZend_Http_Client_Adapter_Exceptionx"/ GZend_Http_Client_Adapter_Curlx. !Zend_Gdatax- 1Zend_Gdata_YouTubex", GZend_Gdata_YouTube_VideoQueryx   x tY9rW7uV< 	S(mG&



|
b
=
						d	J	.	oP1yZ>#lC'}_C){Y8vX5|_K&d:                    * WZend_Paginator_ScrollingStyle_Elasticx& OZend_Paginator_ScrollingStyle_Allx =Zend_Paginator_Exceptionx  CZend_Paginator_Adapter_Nullx$
 KZend_Paginator_Adapter_Iteratorx)	 UZend_Paginator_Adapter_DbTableSelectx$ KZend_Paginator_Adapter_DbSelectx! EZend_Paginator_Adapter_Arrayx #Zend_OpenIdx 5Zend_OpenId_Providerx ?Zend_OpenId_Provider_Userx& OZend_OpenId_Provider_User_Sessionx! EZend_OpenId_Provider_Storagex& OZend_OpenId_Provider_Storage_Filex  7Zend_OpenId_Extensionx AZend_OpenId_Extension_Sregx~ 7Zend_OpenId_Exceptionx} 5Zend_OpenId_Consumerx!| EZend_OpenId_Consumer_Storagex&{ OZend_OpenId_Consumer_Storage_Filexz +Zend_Navigationxy 5Zend_Navigation_Pagexx =Zend_Navigation_Page_Urixw =Zend_Navigation_Page_Mvcxv ?Zend_Navigation_Exceptionxu ?Zend_Navigation_Containerxt Zend_Mimexs )Zend_Mime_Partxr /Zend_Mime_Messagexq 3Zend_Mime_Exceptionxp -Zend_Mime_Decodexo #Zend_Memoryxn /Zend_Memory_Valuexm 3Zend_Memory_Managerxl 7Zend_Memory_Exceptionxk 7Zend_Memory_Containerx"j GZend_Memory_Container_Movablex!i EZend_Memory_Container_Lockedx!h EZend_Memory_AccessControllerxg 3Zend_Measure_Weightxf 3Zend_Measure_Volumex%e MZend_Measure_Viscosity_Kinematicx#d IZend_Measure_Viscosity_Dynamicxc 3Zend_Measure_Torquexb /Zend_Measure_Timexa =Zend_Measure_Temperaturex` 1Zend_Measure_Speedx_ 7Zend_Measure_Pressurex^ 1Zend_Measure_Powerx] 3Zend_Measure_Numberx\ 9Zend_Measure_Lightnessx[ 3Zend_Measure_LengthxZ ?Zend_Measure_IlluminationxY 9Zend_Measure_FrequencyxX 1Zend_Measure_ForcexW =Zend_Measure_Flow_VolumexV 9Zend_Measure_Flow_MolexU 9Zend_Measure_Flow_MassxT 9Zend_Measure_ExceptionxS 3Zend_Measure_EnergyxR 5Zend_Measure_DensityxQ 5Zend_Measure_Currentx P CZend_Measure_Cooking_Weightx O CZend_Measure_Cooking_VolumexN =Zend_Measure_CapacitancexM 3Zend_Measure_BinaryxL /Zend_Measure_AreaxK 1Zend_Measure_AnglexJ ?Zend_Measure_AccelerationxI 7Zend_Measure_AbstractxH Zend_MailxG =Zend_Mail_Transport_Smtpx!F EZend_Mail_Transport_Sendmailx"E GZend_Mail_Transport_Exceptionx!D EZend_Mail_Transport_AbstractxC /Zend_Mail_Storagex'B QZend_Mail_Storage_Writable_MaildirxA 9Zend_Mail_Storage_Pop3x@ 9Zend_Mail_Storage_Mboxx? ?Zend_Mail_Storage_Maildirx> 9Zend_Mail_Storage_Imapx= =Zend_Mail_Storage_Folderx"< GZend_Mail_Storage_Folder_Mboxx%; MZend_Mail_Storage_Folder_Maildirx : CZend_Mail_Storage_Exceptionx9 AZend_Mail_Storage_Abstractx8 ;Zend_Mail_Protocol_Smtpx'7 QZend_Mail_Protocol_Smtp_Auth_Plainx'6 QZend_Mail_Protocol_Smtp_Auth_Loginx)5 UZend_Mail_Protocol_Smtp_Auth_Crammd5x4 ;Zend_Mail_Protocol_Pop3x3 ;Zend_Mail_Protocol_Imapx!2 EZend_Mail_Protocol_Exceptionx 1 CZend_Mail_Protocol_Abstractx0 )Zend_Mail_Partx/ 3Zend_Mail_Part_Filex. /Zend_Mail_Messagex- 9Zend_Mail_Message_Filex, 3Zend_Mail_Exceptionx+ Zend_Logx* 9Zend_Log_Writer_Syslogx) 9Zend_Log_Writer_Streamx( 5Zend_Log_Writer_Nullx' 5Zend_Log_Writer_Mockx& 5Zend_Log_Writer_Mailx% ;Zend_Log_Writer_Firebugx$ 1Zend_Log_Writer_Dbx# =Zend_Log_Writer_Abstractx" 9Zend_Log_Formatter_Xmlx! ?Zend_Log_Formatter_Simplex  AZend_Log_Formatter_Firebugx =Zend_Log_Filter_Suppressx =Zend_Log_Filter_Priorityx ;Zend_Log_Filter_Messagex 1Zend_Log_Exceptionx #Zend_Localex -Zend_Locale_Mathx =Zend_Locale_Math_PhpMathx AZend_Locale_Math_Exceptionx 1Zend_Locale_Formatx   h  pM/qS1mM1fCqZ4


y
L
"					p	Q	0	h=qK+lJ.oEqXB*sEp.z5                              <v {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliquexAu Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliquex9t uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldx5s mZend_Pdf_Resource_Font_Simple_Standard_Helveticax:r wZend_Pdf_Resource_Font_Simple_Standard_CourierObliquex>q Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliquex7p qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldx3o iZend_Pdf_Resource_Font_Simple_Standard_Courierx)n UZend_Pdf_Resource_Font_Simple_Parsedx2m gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypex*l WZend_Pdf_Resource_Font_FontDescriptorx%k MZend_Pdf_Resource_Font_Extractedx#j IZend_Pdf_Resource_Font_CidFontx,i [Zend_Pdf_Resource_Font_CidFont_TrueTypex3h iZend_Pdf_RecursivelyIteratableObjectsContainerxg +Zend_Pdf_Parserxf 'Zend_Pdf_Pagexe -Zend_Pdf_Outlinexd ;Zend_Pdf_Outline_Loadedxc =Zend_Pdf_Outline_Createdxb /Zend_Pdf_NameTreexa )Zend_Pdf_Imagex` 'Zend_Pdf_Fontx _ CZend_Pdf_Filter_Compressionx$^ KZend_Pdf_Filter_Compression_Lzwx&] OZend_Pdf_Filter_Compression_Flatex\ =Zend_Pdf_Filter_AsciiHexx[ ;Zend_Pdf_Filter_Ascii85x"Z GZend_Pdf_FileParserDataSourcex)Y UZend_Pdf_FileParserDataSource_Stringx'X QZend_Pdf_FileParserDataSource_FilexW 3Zend_Pdf_FileParserxV ?Zend_Pdf_FileParser_Imagex"U GZend_Pdf_FileParser_Image_PngxT =Zend_Pdf_FileParser_Fontx&S OZend_Pdf_FileParser_Font_OpenTypex/R aZend_Pdf_FileParser_Font_OpenType_TrueTypexQ 1Zend_Pdf_ExceptionxP ;Zend_Pdf_ElementFactoryx"O GZend_Pdf_ElementFactory_ProxyxN -Zend_Pdf_ElementxM ;Zend_Pdf_Element_Stringx#L IZend_Pdf_Element_String_BinaryxK ;Zend_Pdf_Element_StreamxJ AZend_Pdf_Element_Referencex%I MZend_Pdf_Element_Reference_Tablex'H QZend_Pdf_Element_Reference_ContextxG ;Zend_Pdf_Element_Objectx#F IZend_Pdf_Element_Object_StreamxE =Zend_Pdf_Element_NumericxD 7Zend_Pdf_Element_NullxC 7Zend_Pdf_Element_Namex B CZend_Pdf_Element_DictionaryxA =Zend_Pdf_Element_Booleanx@ 9Zend_Pdf_Element_Arrayx? 5Zend_Pdf_Destinationx> ?Zend_Pdf_Destination_Zoomx!= EZend_Pdf_Destination_Unknownx< AZend_Pdf_Destination_Namedx'; QZend_Pdf_Destination_FitVerticallyx&: OZend_Pdf_Destination_FitRectanglex)9 UZend_Pdf_Destination_FitHorizontallyx28 gZend_Pdf_Destination_FitBoundingBoxVerticallyx47 kZend_Pdf_Destination_FitBoundingBoxHorizontallyx(6 SZend_Pdf_Destination_FitBoundingBoxx5 =Zend_Pdf_Destination_Fitx"4 GZend_Pdf_Destination_Explicitx3 )Zend_Pdf_Colorx2 1Zend_Pdf_Color_Rgbx1 3Zend_Pdf_Color_Htmlx0 =Zend_Pdf_Color_GrayScalex/ 3Zend_Pdf_Color_Cmykx. 'Zend_Pdf_Cmapx- AZend_Pdf_Cmap_TrimmedTablex!, EZend_Pdf_Cmap_SegmentToDeltax+ AZend_Pdf_Cmap_ByteEncodingx&* OZend_Pdf_Cmap_ByteEncoding_Staticx) 3Zend_Pdf_Annotationx( =Zend_Pdf_Annotation_Textx' =Zend_Pdf_Annotation_Linkx'& QZend_Pdf_Annotation_FileAttachmentx% +Zend_Pdf_Actionx$ 3Zend_Pdf_Action_URIx# ;Zend_Pdf_Action_Unknownx" 7Zend_Pdf_Action_Transx! 9Zend_Pdf_Action_Threadx  AZend_Pdf_Action_SubmitFormx 7Zend_Pdf_Action_Soundx  CZend_Pdf_Action_SetOCGStatex ?Zend_Pdf_Action_ResetFormx ?Zend_Pdf_Action_Renditionx 7Zend_Pdf_Action_Namedx 7Zend_Pdf_Action_Moviex 9Zend_Pdf_Action_Launchx AZend_Pdf_Action_JavaScriptx AZend_Pdf_Action_ImportDatax 5Zend_Pdf_Action_Hidex 7Zend_Pdf_Action_GoToRx 7Zend_Pdf_Action_GoToEx AZend_Pdf_Action_GoTo3DViewx 5Zend_Pdf_Action_GoTox )Zend_Paginatorx* WZend_Paginator_ScrollingStyle_Slidingx* WZend_Paginator_ScrollingStyle_Jumpingx   a  RrL'zS9kZ1rY5





\
<
					b	B	#	vU3q[8aH*ZNMjAlH#                          W 9Zend_Search_Lucene_FSMxV =Zend_Search_Lucene_Fieldx!U EZend_Search_Lucene_Exceptionx T CZend_Search_Lucene_Documentx%S MZend_Search_Lucene_Document_Xlsxx%R MZend_Search_Lucene_Document_Pptxx(Q SZend_Search_Lucene_Document_OpenXmlx%P MZend_Search_Lucene_Document_Htmlx*O WZend_Search_Lucene_Document_Exceptionx%N MZend_Search_Lucene_Document_Docxx,M [Zend_Search_Lucene_Analysis_TokenFilterx6L oZend_Search_Lucene_Analysis_TokenFilter_StopWordsx7K qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsx:J wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8x6I oZend_Search_Lucene_Analysis_TokenFilter_LowerCasex&H OZend_Search_Lucene_Analysis_Tokenx)G UZend_Search_Lucene_Analysis_Analyzerx0F cZend_Search_Lucene_Analysis_Analyzer_Commonx8E sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumxID Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitivex5C mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8xFB Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitivex8A sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumxI@ Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitivex5? mZend_Search_Lucene_Analysis_Analyzer_Common_TextxF> Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitivex= 7Zend_Search_Exceptionx< -Zend_Rest_Serverx; AZend_Rest_Server_Exceptionx: +Zend_Rest_Routex9 3Zend_Rest_Exceptionx8 5Zend_Rest_Controllerx7 -Zend_Rest_Clientx6 ;Zend_Rest_Client_Resultx&5 OZend_Rest_Client_Result_Exceptionx4 AZend_Rest_Client_Exceptionx3 'Zend_Registryx2 =Zend_Reflection_Propertyx1 ?Zend_Reflection_Parameterx0 9Zend_Reflection_Methodx/ =Zend_Reflection_Functionx. 5Zend_Reflection_Filex- ?Zend_Reflection_Extensionx, ?Zend_Reflection_Exceptionx+ =Zend_Reflection_Docblockx!* EZend_Reflection_Docblock_Tagx() SZend_Reflection_Docblock_Tag_Returnx'( QZend_Reflection_Docblock_Tag_Paramx' 7Zend_Reflection_Classx& !Zend_Queuex% 9Zend_Queue_Stomp_Framex$ ;Zend_Queue_Stomp_Clientx'# QZend_Queue_Stomp_Client_Connectionx" 1Zend_Queue_Messagex#! IZend_Queue_Message_PlatformJobx   CZend_Queue_Message_Iteratorx 5Zend_Queue_Exceptionx( SZend_Queue_Adapter_PlatformJobQueuex ;Zend_Queue_Adapter_Nullx! EZend_Queue_Adapter_Memcacheqx 7Zend_Queue_Adapter_Dbx  CZend_Queue_Adapter_Db_Queuex" GZend_Queue_Adapter_Db_Messagex =Zend_Queue_Adapter_Arrayx' QZend_Queue_Adapter_AdapterAbstractx  CZend_Queue_Adapter_Activemqx -Zend_ProgressBarx AZend_ProgressBar_Exceptionx =Zend_ProgressBar_Adapterx$ KZend_ProgressBar_Adapter_JsPushx$ KZend_ProgressBar_Adapter_JsPullx' QZend_ProgressBar_Adapter_Exceptionx% MZend_ProgressBar_Adapter_Consolex Zend_Pdfx! EZend_Pdf_UpdateInfoContainerx -Zend_Pdf_Trailerx ;Zend_Pdf_Trailer_Keeperx
 AZend_Pdf_Trailer_Generatorx	 +Zend_Pdf_Targetx )Zend_Pdf_Stylex 7Zend_Pdf_StringParserx /Zend_Pdf_Resourcex# IZend_Pdf_Resource_ImageFactoryx ;Zend_Pdf_Resource_Imagex! EZend_Pdf_Resource_Image_Tiffx  CZend_Pdf_Resource_Image_Pngx! EZend_Pdf_Resource_Image_Jpegx  9Zend_Pdf_Resource_Fontx! EZend_Pdf_Resource_Font_Type0x"~ GZend_Pdf_Resource_Font_Simplex+} YZend_Pdf_Resource_Font_Simple_Standardx8| sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsx6{ oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanx7z qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicx;y yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicx5x mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldx2w gZend_Pdf_Resource_Font_Simple_Standard_Symbolx   X  }R%|M'zGY+f*


|
N
!				^	,yD~Md,uA&	hCwQ-sV1	X4
    "/ GZend_Service_Amazon_Ec2_Imagex&. OZend_Service_Amazon_Ec2_Exceptionx&- OZend_Service_Amazon_Ec2_Elasticipx , CZend_Service_Amazon_Ec2_Ebsx'+ QZend_Service_Amazon_Ec2_CloudWatchx.* _Zend_Service_Amazon_Ec2_Availabilityzonesx%) MZend_Service_Amazon_Ec2_Abstractx'( QZend_Service_Amazon_CustomerReviewx$' KZend_Service_Amazon_Accessoriesx!& EZend_Service_Amazon_Abstractx% 5Zend_Service_Akismetx$ 7Zend_Service_Abstractx# 9Zend_Server_Reflectionx'" QZend_Server_Reflection_ReturnValuex%! MZend_Server_Reflection_Prototypex%  MZend_Server_Reflection_Parameterx  CZend_Server_Reflection_Nodex" GZend_Server_Reflection_Methodx$ KZend_Server_Reflection_Functionx- ]Zend_Server_Reflection_Function_Abstractx% MZend_Server_Reflection_Exceptionx! EZend_Server_Reflection_Classx! EZend_Server_Method_Prototypex! EZend_Server_Method_Parameterx" GZend_Server_Method_Definitionx  CZend_Server_Method_Callbackx 7Zend_Server_Exceptionx 9Zend_Server_Definitionx /Zend_Server_Cachex 5Zend_Server_Abstractx 1Zend_Search_Lucenex0 cZend_Search_Lucene_TermStreamsPriorityQueuex$ KZend_Search_Lucene_Storage_Filex+ YZend_Search_Lucene_Storage_File_Memoryx/ aZend_Search_Lucene_Storage_File_Filesystemx) UZend_Search_Lucene_Storage_Directoryx4 kZend_Search_Lucene_Storage_Directory_Filesystemx%
 MZend_Search_Lucene_Search_Weightx*	 WZend_Search_Lucene_Search_Weight_Termx, [Zend_Search_Lucene_Search_Weight_Phrasex/ aZend_Search_Lucene_Search_Weight_MultiTermx+ YZend_Search_Lucene_Search_Weight_Emptyx- ]Zend_Search_Lucene_Search_Weight_Booleanx) UZend_Search_Lucene_Search_Similarityx1 eZend_Search_Lucene_Search_Similarity_Defaultx) UZend_Search_Lucene_Search_QueryTokenx3 iZend_Search_Lucene_Search_QueryParserExceptionx1  eZend_Search_Lucene_Search_QueryParserContextx* WZend_Search_Lucene_Search_QueryParserx)~ UZend_Search_Lucene_Search_QueryLexerx'} QZend_Search_Lucene_Search_QueryHitx)| UZend_Search_Lucene_Search_QueryEntryx.{ _Zend_Search_Lucene_Search_QueryEntry_Termx2z gZend_Search_Lucene_Search_QueryEntry_Subqueryx0y cZend_Search_Lucene_Search_QueryEntry_Phrasex$x KZend_Search_Lucene_Search_Queryx-w ]Zend_Search_Lucene_Search_Query_Wildcardx)v UZend_Search_Lucene_Search_Query_Termx*u WZend_Search_Lucene_Search_Query_Rangex2t gZend_Search_Lucene_Search_Query_Preprocessingx7s qZend_Search_Lucene_Search_Query_Preprocessing_Termx9r uZend_Search_Lucene_Search_Query_Preprocessing_Phrasex8q sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzyx+p YZend_Search_Lucene_Search_Query_Phrasex.o _Zend_Search_Lucene_Search_Query_MultiTermx2n gZend_Search_Lucene_Search_Query_Insignificantx*m WZend_Search_Lucene_Search_Query_Fuzzyx*l WZend_Search_Lucene_Search_Query_Emptyx,k [Zend_Search_Lucene_Search_Query_Booleanx2j gZend_Search_Lucene_Search_Highlighter_Defaultx:i wZend_Search_Lucene_Search_BooleanExpressionRecognizerxh =Zend_Search_Lucene_Proxyx%g MZend_Search_Lucene_PriorityQueuex/f aZend_Search_Lucene_Interface_MultiSearcherx#e IZend_Search_Lucene_LockManagerx$d KZend_Search_Lucene_Index_Writerx0c cZend_Search_Lucene_Index_TermsPriorityQueuex&b OZend_Search_Lucene_Index_TermInfox"a GZend_Search_Lucene_Index_Termx+` YZend_Search_Lucene_Index_SegmentWriterx8_ sZend_Search_Lucene_Index_SegmentWriter_StreamWriterx:^ wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterx+] YZend_Search_Lucene_Index_SegmentMergerx)\ UZend_Search_Lucene_Index_SegmentInfox'[ QZend_Search_Lucene_Index_FieldInfox(Z SZend_Search_Lucene_Index_DocsFilterx.Y _Zend_Search_Lucene_Index_DictionaryLoaderx!X EZend_Search_Lucene_FSMActionx   b  tL%[9_6|`<~_=




V
/
				f	G	'	}[6pF&|FwGZ3	U*hD'Z3	                        " GZend_Service_Yahoo_NewsResultx& OZend_Service_Yahoo_LocalResultSetx# IZend_Service_Yahoo_LocalResultx+ YZend_Service_Yahoo_InlinkDataResultSetx( SZend_Service_Yahoo_InlinkDataResultx& OZend_Service_Yahoo_ImageResultSetx# IZend_Service_Yahoo_ImageResultx
 =Zend_Service_Yahoo_Imagex	 5Zend_Service_Twitterx  CZend_Service_Twitter_Searchx# IZend_Service_Twitter_Exceptionx ;Zend_Service_Technoratix# IZend_Service_Technorati_Weblogx" GZend_Service_Technorati_Utilsx* WZend_Service_Technorati_TagsResultSetx' QZend_Service_Technorati_TagsResultx) UZend_Service_Technorati_TagResultSetx&  OZend_Service_Technorati_TagResultx, [Zend_Service_Technorati_SearchResultSetx)~ UZend_Service_Technorati_SearchResultx&} OZend_Service_Technorati_ResultSetx#| IZend_Service_Technorati_Resultx*{ WZend_Service_Technorati_KeyInfoResultx*z WZend_Service_Technorati_GetInfoResultx&y OZend_Service_Technorati_Exceptionx1x eZend_Service_Technorati_DailyCountsResultSetx.w _Zend_Service_Technorati_DailyCountsResultx,v [Zend_Service_Technorati_CosmosResultSetx)u UZend_Service_Technorati_CosmosResultx+t YZend_Service_Technorati_BlogInfoResultx#s IZend_Service_Technorati_Authorxr ;Zend_Service_StrikeIronx(q SZend_Service_StrikeIron_ZipCodeInfox2p gZend_Service_StrikeIron_USAddressVerificationx-o ]Zend_Service_StrikeIron_SalesUseTaxBasicx&n OZend_Service_StrikeIron_Exceptionx&m OZend_Service_StrikeIron_Decoratorx!l EZend_Service_StrikeIron_Basexk ;Zend_Service_SlideSharex&j OZend_Service_SlideShare_SlideShowx&i OZend_Service_SlideShare_Exceptionxh 1Zend_Service_Simpyx$g KZend_Service_Simpy_WatchlistSetx*f WZend_Service_Simpy_WatchlistFilterSetx'e QZend_Service_Simpy_WatchlistFilterx!d EZend_Service_Simpy_Watchlistxc ?Zend_Service_Simpy_TagSetxb 9Zend_Service_Simpy_Tagxa AZend_Service_Simpy_NoteSetx` ;Zend_Service_Simpy_Notex_ AZend_Service_Simpy_LinkSetx!^ EZend_Service_Simpy_LinkQueryx] ;Zend_Service_Simpy_Linkx\ 9Zend_Service_ReCaptchax$[ KZend_Service_ReCaptcha_Responsex$Z KZend_Service_ReCaptcha_MailHidex.Y _Zend_Service_ReCaptcha_MailHide_Exceptionx%X MZend_Service_ReCaptcha_ExceptionxW 7Zend_Service_Nirvanixx#V IZend_Service_Nirvanix_Responsex)U UZend_Service_Nirvanix_Namespace_Imfsx)T UZend_Service_Nirvanix_Namespace_Basex$S KZend_Service_Nirvanix_ExceptionxR 3Zend_Service_Flickrx"Q GZend_Service_Flickr_ResultSetxP AZend_Service_Flickr_ResultxO ?Zend_Service_Flickr_ImagexN 9Zend_Service_ExceptionxM 9Zend_Service_Deliciousx&L OZend_Service_Delicious_SimplePostx$K KZend_Service_Delicious_PostListx J CZend_Service_Delicious_Postx%I MZend_Service_Delicious_Exceptionx H CZend_Service_AudioscrobblerxG 3Zend_Service_AmazonxF ;Zend_Service_Amazon_Sqsx&E OZend_Service_Amazon_Sqs_Exceptionx'D QZend_Service_Amazon_SimilarProductxC 9Zend_Service_Amazon_S3x"B GZend_Service_Amazon_S3_Streamx%A MZend_Service_Amazon_S3_Exceptionx"@ GZend_Service_Amazon_ResultSetx? ?Zend_Service_Amazon_Queryx!> EZend_Service_Amazon_OfferSetx= ?Zend_Service_Amazon_Offerx&< OZend_Service_Amazon_ListmaniaListx; =Zend_Service_Amazon_Itemx: ?Zend_Service_Amazon_Imagex"9 GZend_Service_Amazon_Exceptionx(8 SZend_Service_Amazon_EditorialReviewx7 ;Zend_Service_Amazon_Ec2x+6 YZend_Service_Amazon_Ec2_Securitygroupsx%5 MZend_Service_Amazon_Ec2_Responsex#4 IZend_Service_Amazon_Ec2_Regionx$3 KZend_Service_Amazon_Ec2_Keypairx%2 MZend_Service_Amazon_Ec2_Instancex-1 ]Zend_Service_Amazon_Ec2_Instance_Windowsx.0 _Zend_Service_Amazon_Ec2_Instance_Reservedx   a  ^9bC${f=`G&nD



}
T
/
						r	D	[3rB^4yO-oG\&Rr*                                                     (r SZend_Tool_Framework_Client_ResponsexDq 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separatorx'p QZend_Tool_Framework_Client_Requestx9o uZend_Tool_Framework_Client_Interactive_InputResponsex8n sZend_Tool_Framework_Client_Interactive_InputRequestx8m sZend_Tool_Framework_Client_Interactive_InputHandlerx)l UZend_Tool_Framework_Client_Exceptionx'k QZend_Tool_Framework_Client_ConsolexDj 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizerx0i cZend_Tool_Framework_Client_Console_Manifestx2h gZend_Tool_Framework_Client_Console_HelpSystemx6g oZend_Tool_Framework_Client_Console_ArgumentParserx&f OZend_Tool_Framework_Client_Configx(e SZend_Tool_Framework_Client_Abstractx*d WZend_Tool_Framework_Action_Repositoryx)c UZend_Tool_Framework_Action_Exceptionx$b KZend_Tool_Framework_Action_Basexa 'Zend_TimeSyncx` 1Zend_TimeSync_Sntpx_ 9Zend_TimeSync_Protocolx^ /Zend_TimeSync_Ntpx] ;Zend_TimeSync_Exceptionx\ +Zend_Text_Tablex[ 3Zend_Text_Table_RowxZ ?Zend_Text_Table_Exceptionx&Y OZend_Text_Table_Decorator_Unicodex$X KZend_Text_Table_Decorator_AsciixW 9Zend_Text_Table_ColumnxV 3Zend_Text_MultiBytexU -Zend_Text_FigletxT AZend_Text_Figlet_ExceptionxS 3Zend_Text_Exceptionx&R OZend_Test_PHPUnit_Db_SimpleTesterx,Q [Zend_Test_PHPUnit_Db_Operation_Truncatex*P WZend_Test_PHPUnit_Db_Operation_Insertx-O ]Zend_Test_PHPUnit_Db_Operation_DeleteAllx*N WZend_Test_PHPUnit_Db_Metadata_Genericx#M IZend_Test_PHPUnit_Db_Exceptionx,L [Zend_Test_PHPUnit_Db_DataSet_QueryTablex.K _Zend_Test_PHPUnit_Db_DataSet_QueryDataSetx0J cZend_Test_PHPUnit_Db_DataSet_DbTableDataSetx)I UZend_Test_PHPUnit_Db_DataSet_DbTablex*H WZend_Test_PHPUnit_Db_DataSet_DbRowsetx$G KZend_Test_PHPUnit_Db_Connectionx'F QZend_Test_PHPUnit_DatabaseTestCasex)E UZend_Test_PHPUnit_ControllerTestCasex0D cZend_Test_PHPUnit_Constraint_ResponseHeaderx*C WZend_Test_PHPUnit_Constraint_Redirectx+B YZend_Test_PHPUnit_Constraint_Exceptionx*A WZend_Test_PHPUnit_Constraint_DomQueryx@ 7Zend_Test_DbStatementx? 3Zend_Test_DbAdapterx> /Zend_Tag_ItemListx= 'Zend_Tag_Itemx< 1Zend_Tag_Exceptionx; )Zend_Tag_Cloudx: =Zend_Tag_Cloud_Exceptionx!9 EZend_Tag_Cloud_Decorator_Tagx%8 MZend_Tag_Cloud_Decorator_HtmlTagx'7 QZend_Tag_Cloud_Decorator_HtmlCloudx'6 QZend_Tag_Cloud_Decorator_Exceptionx#5 IZend_Tag_Cloud_Decorator_Cloudx4 )Zend_Soap_Wsdlx/3 aZend_Soap_Wsdl_Strategy_DefaultComplexTypex&2 OZend_Soap_Wsdl_Strategy_Compositex01 cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequencex/0 aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplexx$/ KZend_Soap_Wsdl_Strategy_AnyTypex%. MZend_Soap_Wsdl_Strategy_Abstractx- =Zend_Soap_Wsdl_Exceptionx, -Zend_Soap_Serverx+ AZend_Soap_Server_Exceptionx* -Zend_Soap_Clientx) 9Zend_Soap_Client_Localx( AZend_Soap_Client_Exceptionx' ;Zend_Soap_Client_DotNetx& ;Zend_Soap_Client_Commonx% 9Zend_Soap_AutoDiscoverx%$ MZend_Soap_AutoDiscover_Exceptionx# %Zend_Sessionx)" UZend_Session_Validator_HttpUserAgentx$! KZend_Session_Validator_Abstractx'  QZend_Session_SaveHandler_Exceptionx% MZend_Session_SaveHandler_DbTablex 9Zend_Session_Namespacex 9Zend_Session_Exceptionx 7Zend_Session_Abstractx 1Zend_Service_Yahoox$ KZend_Service_Yahoo_WebResultSetx! EZend_Service_Yahoo_WebResultx& OZend_Service_Yahoo_VideoResultSetx# IZend_Service_Yahoo_VideoResultx! EZend_Service_Yahoo_ResultSetx ?Zend_Service_Yahoo_Resultx) UZend_Service_Yahoo_PageDataResultSetx& OZend_Service_Yahoo_PageDataResultx% MZend_Service_Yahoo_NewsResultSetx   J  zN lA].xLp9


o
=
			V	$|I{AyEq>o6Uj(]                      1< eZend_Tool_Project_Context_Zf_TestLibraryFilex6; oZend_Tool_Project_Context_Zf_TestLibraryDirectoryx:: wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFilex:9 wZend_Tool_Project_Context_Zf_TestApplicationDirectoryx@8 Zend_Tool_Project_Context_Zf_TestApplicationControllerFilexE7 Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectoryx>6 Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFilex45 kZend_Tool_Project_Context_Zf_TemporaryDirectoryx34 iZend_Tool_Project_Context_Zf_SessionsDirectoryx83 sZend_Tool_Project_Context_Zf_SearchIndexesDirectoryx<2 {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectoryx81 sZend_Tool_Project_Context_Zf_PublicScriptsDirectoryx10 eZend_Tool_Project_Context_Zf_PublicIndexFilex7/ qZend_Tool_Project_Context_Zf_PublicImagesDirectoryx1. eZend_Tool_Project_Context_Zf_PublicDirectoryx5- mZend_Tool_Project_Context_Zf_ProjectProviderFilex2, gZend_Tool_Project_Context_Zf_ModulesDirectoryx1+ eZend_Tool_Project_Context_Zf_ModuleDirectoryx1* eZend_Tool_Project_Context_Zf_ModelsDirectoryx+) YZend_Tool_Project_Context_Zf_ModelFilex/( aZend_Tool_Project_Context_Zf_LogsDirectoryx2' gZend_Tool_Project_Context_Zf_LocalesDirectoryx2& gZend_Tool_Project_Context_Zf_LibraryDirectoryx2% gZend_Tool_Project_Context_Zf_LayoutsDirectoryx.$ _Zend_Tool_Project_Context_Zf_HtaccessFilex0# cZend_Tool_Project_Context_Zf_FormsDirectoryx*" WZend_Tool_Project_Context_Zf_FormFilex-! ]Zend_Tool_Project_Context_Zf_DbTableFilex2  gZend_Tool_Project_Context_Zf_DbTableDirectoryx/ aZend_Tool_Project_Context_Zf_DataDirectoryx6 oZend_Tool_Project_Context_Zf_ControllersDirectoryx0 cZend_Tool_Project_Context_Zf_ControllerFilex2 gZend_Tool_Project_Context_Zf_ConfigsDirectoryx, [Zend_Tool_Project_Context_Zf_ConfigFilex0 cZend_Tool_Project_Context_Zf_CacheDirectoryx/ aZend_Tool_Project_Context_Zf_BootstrapFilex6 oZend_Tool_Project_Context_Zf_ApplicationDirectoryx7 qZend_Tool_Project_Context_Zf_ApplicationConfigFilex/ aZend_Tool_Project_Context_Zf_ApisDirectoryx. _Zend_Tool_Project_Context_Zf_ActionMethodx@ Zend_Tool_Project_Context_System_ProjectProvidersDirectoryx8 sZend_Tool_Project_Context_System_ProjectProfileFilex6 oZend_Tool_Project_Context_System_ProjectDirectoryx) UZend_Tool_Project_Context_Repositoryx. _Zend_Tool_Project_Context_Filesystem_Filex3 iZend_Tool_Project_Context_Filesystem_Directoryx2 gZend_Tool_Project_Context_Filesystem_Abstractx( SZend_Tool_Project_Context_Exceptionx- ]Zend_Tool_Project_Context_Content_Enginex3 iZend_Tool_Project_Context_Content_Engine_Phtmlx;
 yZend_Tool_Project_Context_Content_Engine_CodeGeneratorx0	 cZend_Tool_Framework_System_Provider_Versionx0 cZend_Tool_Framework_System_Provider_Phpinfox1 eZend_Tool_Framework_System_Provider_Manifestx( SZend_Tool_Framework_System_Manifestx- ]Zend_Tool_Framework_System_Action_Deletex- ]Zend_Tool_Framework_System_Action_Createx! EZend_Tool_Framework_Registryx+ YZend_Tool_Framework_Registry_Exceptionx+ YZend_Tool_Framework_Provider_Signaturex,  [Zend_Tool_Framework_Provider_Repositoryx+ YZend_Tool_Framework_Provider_Exceptionx*~ WZend_Tool_Framework_Provider_Abstractx&} OZend_Tool_Framework_Metadata_Toolx)| UZend_Tool_Framework_Metadata_Dynamicx'{ QZend_Tool_Framework_Metadata_Basicx,z [Zend_Tool_Framework_Manifest_Repositoryx+y YZend_Tool_Framework_Manifest_Exceptionx1x eZend_Tool_Framework_Loader_IncludePathLoaderxJw Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIteratorx(v SZend_Tool_Framework_Loader_Abstractx"u GZend_Tool_Framework_Exceptionx't QZend_Tool_Framework_Client_Storagex1s eZend_Tool_Framework_Client_Storage_Directoryx   e  M^*|X,Ll>



j
?
				l	I	"rM.w[?c;sGkC xV1aG.c<                             ! %Zend_Versionx  'Zend_Validatex AZend_Validate_StringLengthx# IZend_Validate_Sitemap_Priorityx ?Zend_Validate_Sitemap_Locx" GZend_Validate_Sitemap_Lastmodx% MZend_Validate_Sitemap_Changefreqx 3Zend_Validate_Regexx 9Zend_Validate_NotEmptyx 9Zend_Validate_LessThanx -Zend_Validate_Ipx /Zend_Validate_Intx 7Zend_Validate_InArrayx ;Zend_Validate_Identicalx 1Zend_Validate_Ibanx 9Zend_Validate_Hostnamex /Zend_Validate_Hexx ?Zend_Validate_GreaterThanx 3Zend_Validate_Floatx! EZend_Validate_File_WordCountx ?Zend_Validate_File_Uploadx ;Zend_Validate_File_Sizex ;Zend_Validate_File_Sha1x!
 EZend_Validate_File_NotExistsx 	 CZend_Validate_File_MimeTypex 9Zend_Validate_File_Md5x AZend_Validate_File_IsImagex$ KZend_Validate_File_IsCompressedx! EZend_Validate_File_ImageSizex ;Zend_Validate_File_Hashx! EZend_Validate_File_FilesSizex! EZend_Validate_File_Extensionx ?Zend_Validate_File_Existsx'  QZend_Validate_File_ExcludeMimeTypex( SZend_Validate_File_ExcludeExtensionx~ =Zend_Validate_File_Crc32x} =Zend_Validate_File_Countx| ;Zend_Validate_Exceptionx{ AZend_Validate_EmailAddressxz 5Zend_Validate_Digitsx"y GZend_Validate_Db_RecordExistsx$x KZend_Validate_Db_NoRecordExistsxw ?Zend_Validate_Db_Abstractxv 1Zend_Validate_Datexu 3Zend_Validate_Ccnumxt 7Zend_Validate_Betweenxs 7Zend_Validate_Barcodexr AZend_Validate_Barcode_UpcAx q CZend_Validate_Barcode_Ean13xp 3Zend_Validate_Alphaxo 3Zend_Validate_Alnumxn 9Zend_Validate_Abstractxm Zend_Urixl 'Zend_Uri_Httpxk 1Zend_Uri_Exceptionxj )Zend_Translatexi 7Zend_Translate_Pluralxh =Zend_Translate_Exceptionxg 9Zend_Translate_Adapterx!f EZend_Translate_Adapter_XmlTmx!e EZend_Translate_Adapter_Xliffxd AZend_Translate_Adapter_Tmxxc AZend_Translate_Adapter_Tbxxb ?Zend_Translate_Adapter_Qtxa AZend_Translate_Adapter_Inix#` IZend_Translate_Adapter_Gettextx_ AZend_Translate_Adapter_Csvx!^ EZend_Translate_Adapter_Arrayx$] KZend_Tool_Project_Provider_Viewx$\ KZend_Tool_Project_Provider_Testx/[ aZend_Tool_Project_Provider_ProjectProviderx'Z QZend_Tool_Project_Provider_Projectx'Y QZend_Tool_Project_Provider_Profilex&X OZend_Tool_Project_Provider_Modulex%W MZend_Tool_Project_Provider_Modelx(V SZend_Tool_Project_Provider_Manifestx$U KZend_Tool_Project_Provider_Formx)T UZend_Tool_Project_Provider_Exceptionx*S WZend_Tool_Project_Provider_Controllerx&R OZend_Tool_Project_Provider_Actionx(Q SZend_Tool_Project_Provider_AbstractxP ?Zend_Tool_Project_Profilex'O QZend_Tool_Project_Profile_Resourcex9N uZend_Tool_Project_Profile_Resource_SearchConstraintsx1M eZend_Tool_Project_Profile_Resource_Containerx=L }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilterx5K mZend_Tool_Project_Profile_Iterator_ContextFilterx-J ]Zend_Tool_Project_Profile_FileParser_Xmlx(I SZend_Tool_Project_Profile_Exceptionx H CZend_Tool_Project_Exceptionx<G {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectoryx0F cZend_Tool_Project_Context_Zf_ViewsDirectoryx6E oZend_Tool_Project_Context_Zf_ViewScriptsDirectoryx0D cZend_Tool_Project_Context_Zf_ViewScriptFilex6C oZend_Tool_Project_Context_Zf_ViewHelpersDirectoryx6B oZend_Tool_Project_Context_Zf_ViewFiltersDirectoryxAA Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectoryx2@ gZend_Tool_Project_Context_Zf_UploadsDirectoryx0? cZend_Tool_Project_Context_Zf_TestsDirectoryx7> qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFilex@= Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectoryx   j  fG"wR.wU/Y7cA




p
@
				j	?	]#i<d7g>fE#a?$wT3lR7                         % MZend_Acl_Role_Registry_Exceptiony
 /Zend_Acl_Resourcey	 1Zend_Acl_Exceptiony /Zend_XmlRpc_Valuex =Zend_XmlRpc_Value_Structx =Zend_XmlRpc_Value_Stringx =Zend_XmlRpc_Value_Scalarx 7Zend_XmlRpc_Value_Nilx ?Zend_XmlRpc_Value_Integerx  CZend_XmlRpc_Value_Exceptionx =Zend_XmlRpc_Value_Doublex  AZend_XmlRpc_Value_DateTimex! EZend_XmlRpc_Value_Collectionx~ ?Zend_XmlRpc_Value_Booleanx!} EZend_XmlRpc_Value_BigIntegerx| =Zend_XmlRpc_Value_Base64x{ ;Zend_XmlRpc_Value_Arrayxz 1Zend_XmlRpc_Serverxy ?Zend_XmlRpc_Server_Systemxx =Zend_XmlRpc_Server_Faultx!w EZend_XmlRpc_Server_Exceptionxv =Zend_XmlRpc_Server_Cachexu 5Zend_XmlRpc_Responsext ?Zend_XmlRpc_Response_Httpxs 3Zend_XmlRpc_Requestxr ?Zend_XmlRpc_Request_Stdinxq =Zend_XmlRpc_Request_Httpxp /Zend_XmlRpc_Faultxo 7Zend_XmlRpc_Exceptionxn 1Zend_XmlRpc_Clientx#m IZend_XmlRpc_Client_ServerProxyx+l YZend_XmlRpc_Client_ServerIntrospectionx+k YZend_XmlRpc_Client_IntrospectExceptionx%j MZend_XmlRpc_Client_HttpExceptionx&i OZend_XmlRpc_Client_FaultExceptionx!h EZend_XmlRpc_Client_Exceptionx&g OZend_Wildfire_Protocol_JsonStreamx!f EZend_Wildfire_Plugin_FirePhpx.e _Zend_Wildfire_Plugin_FirePhp_TableMessagex)d UZend_Wildfire_Plugin_FirePhp_Messagexc ;Zend_Wildfire_Exceptionx&b OZend_Wildfire_Channel_HttpHeadersxa Zend_Viewx` -Zend_View_Streamx_ 5Zend_View_Helper_Urlx^ AZend_View_Helper_Translatex] AZend_View_Helper_ServerUrlx)\ UZend_View_Helper_RenderToPlaceholderx![ EZend_View_Helper_Placeholderx*Z WZend_View_Helper_Placeholder_Registryx4Y kZend_View_Helper_Placeholder_Registry_Exceptionx+X YZend_View_Helper_Placeholder_Containerx6W oZend_View_Helper_Placeholder_Container_Standalonex5V mZend_View_Helper_Placeholder_Container_Exceptionx4U kZend_View_Helper_Placeholder_Container_Abstractx!T EZend_View_Helper_PartialLoopxS =Zend_View_Helper_Partialx'R QZend_View_Helper_Partial_Exceptionx'Q QZend_View_Helper_PaginationControlx P CZend_View_Helper_Navigationx(O SZend_View_Helper_Navigation_Sitemapx%N MZend_View_Helper_Navigation_Menux&M OZend_View_Helper_Navigation_Linksx/L aZend_View_Helper_Navigation_HelperAbstractx,K [Zend_View_Helper_Navigation_BreadcrumbsxJ ;Zend_View_Helper_LayoutxI 7Zend_View_Helper_Jsonx"H GZend_View_Helper_InlineScriptx#G IZend_View_Helper_HtmlQuicktimexF ?Zend_View_Helper_HtmlPagex E CZend_View_Helper_HtmlObjectxD ?Zend_View_Helper_HtmlListxC AZend_View_Helper_HtmlFlashx!B EZend_View_Helper_HtmlElementxA AZend_View_Helper_HeadTitlex@ AZend_View_Helper_HeadStylex ? CZend_View_Helper_HeadScriptx> ?Zend_View_Helper_HeadMetax= ?Zend_View_Helper_HeadLinkx"< GZend_View_Helper_FormTextareax; ?Zend_View_Helper_FormTextx : CZend_View_Helper_FormSubmitx 9 CZend_View_Helper_FormSelectx8 AZend_View_Helper_FormResetx7 AZend_View_Helper_FormRadiox"6 GZend_View_Helper_FormPasswordx5 ?Zend_View_Helper_FormNotex'4 QZend_View_Helper_FormMultiCheckboxx3 AZend_View_Helper_FormLabelx2 AZend_View_Helper_FormImagex 1 CZend_View_Helper_FormHiddenx0 ?Zend_View_Helper_FormFilex / CZend_View_Helper_FormErrorsx!. EZend_View_Helper_FormElementx"- GZend_View_Helper_FormCheckboxx , CZend_View_Helper_FormButtonx+ 7Zend_View_Helper_Formx* ?Zend_View_Helper_Fieldsetx) =Zend_View_Helper_Doctypex!( EZend_View_Helper_DeclareVarsx' 9Zend_View_Helper_Cyclex& =Zend_View_Helper_BaseUrlx% ;Zend_View_Helper_Actionx$ ?Zend_View_Helper_Abstractx# 3Zend_View_Exceptionx" 1Zend_View_Abstractx   X  nK(h@yS.oH|L



d
/					e	B	"}V'X"X/D]/Q _4W8                           % 3Zend_View_Interfacex'$ QZend_View_Helper_Navigation_Helperx# AZend_View_Helper_Interfacex" ;Zend_Validate_Interfacex3! iZend_Tool_Project_Profile_FileParser_Interfacex:  wZend_Tool_Project_Context_System_TopLevelRestrictablex5 mZend_Tool_Project_Context_System_NotOverwritablex/ aZend_Tool_Project_Context_System_Interfacex( SZend_Tool_Project_Context_Interfacex+ YZend_Tool_Framework_Registry_Interfacex2 gZend_Tool_Framework_Registry_EnabledInterfacex- ]Zend_Tool_Framework_Provider_Pretendablex+ YZend_Tool_Framework_Provider_Interfacex. _Zend_Tool_Framework_Provider_Interactablex; yZend_Tool_Framework_Provider_DocblockManifestInterfacex+ YZend_Tool_Framework_Metadata_Interfacex6 oZend_Tool_Framework_Manifest_ProviderManifestablex6 oZend_Tool_Framework_Manifest_MetadataManifestablex+ YZend_Tool_Framework_Manifest_Interfacex+ YZend_Tool_Framework_Manifest_Indexablex4 kZend_Tool_Framework_Manifest_ActionManifestablex8 sZend_Tool_Framework_Client_Storage_AdapterInterfacexD 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interfacex; yZend_Tool_Framework_Client_Interactive_OutputInterfacex: wZend_Tool_Framework_Client_Interactive_InputInterfacex) UZend_Tool_Framework_Action_Interfacex( SZend_Text_Table_Decorator_Interfacex
 /Zend_Tag_Taggablex&	 OZend_Soap_Wsdl_Strategy_Interfacex% MZend_Session_Validator_Interfacex' QZend_Session_SaveHandler_Interfacex 7Zend_Server_Interfacex4 kZend_Search_Lucene_Search_Highlighter_Interfacex! EZend_Search_Lucene_Interfacex3 iZend_Search_Lucene_Index_TermsStream_Interfacex$ KZend_Queue_Stomp_FrameInterfacex0 cZend_Queue_Stomp_Client_ConnectionInterfacex(  SZend_Queue_Adapter_AdapterInterfacex ?Zend_Pdf_Filter_Interfacex&~ OZend_Pdf_ElementFactory_Interfacex,} [Zend_Paginator_ScrollingStyle_Interfacex$| KZend_Paginator_AdapterAggregatex%{ MZend_Paginator_Adapter_Interfacex$z KZend_Memory_Container_Interfacex)y UZend_Mail_Storage_Writable_Interfacex'x QZend_Mail_Storage_Folder_Interfacexw =Zend_Mail_Part_Interfacex v CZend_Mail_Message_Interfacex!u EZend_Log_Formatter_Interfacext ?Zend_Log_Filter_Interfacex's QZend_Loader_PluginLoader_Interfacex%r MZend_Loader_Autoloader_Interfacex0q cZend_Ldap_Node_Schema_ObjectClass_Interfacex2p gZend_Ldap_Node_Schema_AttributeType_Interfacex,o [Zend_Ldap_Collection_Iterator_Interfacex3n iZend_InfoCard_Xml_Security_Transform_Interfacex(m SZend_InfoCard_Xml_KeyInfo_Interfacex(l SZend_InfoCard_Xml_Element_Interfacex*k WZend_InfoCard_Xml_Assertion_Interfacex-j ]Zend_InfoCard_Cipher_Symmetric_Interfacex7i qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interfacex7h qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interfacex+g YZend_InfoCard_Cipher_Pki_Rsa_Interfacex'f QZend_InfoCard_Cipher_Pki_Interfacex$e KZend_InfoCard_Adapter_Interfacex'd QZend_Http_Client_Adapter_Interfacexc AZend_Gdata_App_MediaSourcex.b _Zend_Form_Decorator_Marker_File_Interfacex"a GZend_Form_Decorator_Interfacex` 7Zend_Filter_Interfacex"_ GZend_Filter_Encrypt_Interfacex#^ IZend_Feed_Reader_FeedInterfacex$] KZend_Feed_Reader_EntryInterfacex \ CZend_Feed_Builder_Interfacex [ CZend_Db_Statement_Interfacex)Z UZend_Crypt_Math_BigInteger_Interfacex+Y YZend_Controller_Router_Route_Interfacex%X MZend_Controller_Router_Interfacex)W UZend_Controller_Dispatcher_Interfacex%V MZend_Controller_Action_InterfacexU 5Zend_Captcha_Adapterx!T EZend_Cache_Backend_Interfacex)S UZend_Cache_Backend_ExtendedInterfacex R CZend_Auth_Storage_Interfacex Q CZend_Auth_Adapter_Interfacex.P _Zend_Auth_Adapter_Http_Resolver_Interfacex'O QZend_Application_Resource_Resourcex4N kZend_Application_Bootstrap_ResourceBootstrapperx   X  oP!lIa3tO2i?


m
@
				P	cCwHyCyP7e~PrAU#                                                    5} mZend_Tool_Project_Context_System_NotOverwritabley/| aZend_Tool_Project_Context_System_Interfacey({ SZend_Tool_Project_Context_Interfacey+z YZend_Tool_Framework_Registry_Interfacey2y gZend_Tool_Framework_Registry_EnabledInterfacey-x ]Zend_Tool_Framework_Provider_Pretendabley+w YZend_Tool_Framework_Provider_Interfacey.v _Zend_Tool_Framework_Provider_Interactabley;u yZend_Tool_Framework_Provider_DocblockManifestInterfacey+t YZend_Tool_Framework_Metadata_Interfacey6s oZend_Tool_Framework_Manifest_ProviderManifestabley6r oZend_Tool_Framework_Manifest_MetadataManifestabley+q YZend_Tool_Framework_Manifest_Interfacey+p YZend_Tool_Framework_Manifest_Indexabley4o kZend_Tool_Framework_Manifest_ActionManifestabley8n sZend_Tool_Framework_Client_Storage_AdapterInterfaceyDm 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interfacey;l yZend_Tool_Framework_Client_Interactive_OutputInterfacey:k wZend_Tool_Framework_Client_Interactive_InputInterfacey)j UZend_Tool_Framework_Action_Interfacey(i SZend_Text_Table_Decorator_Interfaceyh /Zend_Tag_Taggabley&g OZend_Soap_Wsdl_Strategy_Interfacey%f MZend_Session_Validator_Interfacey'e QZend_Session_SaveHandler_Interfaceyd 7Zend_Server_Interfacey4c kZend_Search_Lucene_Search_Highlighter_Interfacey!b EZend_Search_Lucene_Interfacey3a iZend_Search_Lucene_Index_TermsStream_Interfacey$` KZend_Queue_Stomp_FrameInterfacey0_ cZend_Queue_Stomp_Client_ConnectionInterfacey(^ SZend_Queue_Adapter_AdapterInterfacey] ?Zend_Pdf_Filter_Interfacey&\ OZend_Pdf_ElementFactory_Interfacey,[ [Zend_Paginator_ScrollingStyle_Interfacey$Z KZend_Paginator_AdapterAggregatey%Y MZend_Paginator_Adapter_Interfacey$X KZend_Memory_Container_Interfacey)W UZend_Mail_Storage_Writable_Interfacey'V QZend_Mail_Storage_Folder_InterfaceyU =Zend_Mail_Part_Interfacey T CZend_Mail_Message_Interfacey!S EZend_Log_Formatter_InterfaceyR ?Zend_Log_Filter_Interfacey'Q QZend_Loader_PluginLoader_Interfacey%P MZend_Loader_Autoloader_Interfacey0O cZend_Ldap_Node_Schema_ObjectClass_Interfacey2N gZend_Ldap_Node_Schema_AttributeType_Interfacey,M [Zend_Ldap_Collection_Iterator_Interfacey3L iZend_InfoCard_Xml_Security_Transform_Interfacey(K SZend_InfoCard_Xml_KeyInfo_Interfacey(J SZend_InfoCard_Xml_Element_Interfacey*I WZend_InfoCard_Xml_Assertion_Interfacey-H ]Zend_InfoCard_Cipher_Symmetric_Interfacey7G qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interfacey7F qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interfacey+E YZend_InfoCard_Cipher_Pki_Rsa_Interfacey'D QZend_InfoCard_Cipher_Pki_Interfacey$C KZend_InfoCard_Adapter_Interfacey'B QZend_Http_Client_Adapter_InterfaceyA AZend_Gdata_App_MediaSourcey.@ _Zend_Form_Decorator_Marker_File_Interfacey"? GZend_Form_Decorator_Interfacey> 7Zend_Filter_Interfacey"= GZend_Filter_Encrypt_Interfacey#< IZend_Feed_Reader_FeedInterfacey$; KZend_Feed_Reader_EntryInterfacey : CZend_Feed_Builder_Interfacey 9 CZend_Db_Statement_Interfacey)8 UZend_Crypt_Math_BigInteger_Interfacey+7 YZend_Controller_Router_Route_Interfacey%6 MZend_Controller_Router_Interfacey)5 UZend_Controller_Dispatcher_Interfacey%4 MZend_Controller_Action_Interfacey3 5Zend_Captcha_Adaptery!2 EZend_Cache_Backend_Interfacey)1 UZend_Cache_Backend_ExtendedInterfacey 0 CZend_Auth_Storage_Interfacey / CZend_Auth_Adapter_Interfacey.. _Zend_Auth_Adapter_Http_Resolver_Interfacey'- QZend_Application_Resource_Resourcey4, kZend_Application_Bootstrap_ResourceBootstrappery,+ [Zend_Application_Bootstrap_Bootstrappery* ;Zend_Acl_Role_Interfacey ) CZend_Acl_Resource_Interfacey( ?Zend_Acl_Assert_Interfacey#' IZend_Wildfire_Plugin_Interfacex$& KZend_Wildfire_Channel_Interfacex   k  {W8b>wU3fE"g9	



[
&					\	0U"|cA ~[<xfG'yQ&bArV;mH     .v _Zend_CodeGenerator_Php_Docblock_Tag_Paramy0u cZend_CodeGenerator_Php_Docblock_Tag_Licensey!t EZend_CodeGenerator_Php_Classy s CZend_CodeGenerator_Php_Bodyy$r KZend_CodeGenerator_Php_Abstracty!q EZend_CodeGenerator_Exceptiony p CZend_CodeGenerator_Abstractyo /Zend_Captcha_Wordyn 9Zend_Captcha_ReCaptchaym 1Zend_Captcha_Imageyl 3Zend_Captcha_Figletyk 9Zend_Captcha_Exceptionyj /Zend_Captcha_Dumbyi /Zend_Captcha_Baseyh !Zend_Cacheyg =Zend_Cache_Frontend_Pageyf AZend_Cache_Frontend_Outputy!e EZend_Cache_Frontend_Functionyd =Zend_Cache_Frontend_Fileyc ?Zend_Cache_Frontend_Classyb 5Zend_Cache_Exceptionya +Zend_Cache_Corey` 1Zend_Cache_Backendy"_ GZend_Cache_Backend_ZendServery(^ SZend_Cache_Backend_ZendServer_ShMemy'] QZend_Cache_Backend_ZendServer_Disky$\ KZend_Cache_Backend_ZendPlatformy[ ?Zend_Cache_Backend_Xcachey!Z EZend_Cache_Backend_TwoLevelsyY ;Zend_Cache_Backend_TestyX ?Zend_Cache_Backend_Sqlitey!W EZend_Cache_Backend_MemcachedyV ;Zend_Cache_Backend_FileyU 9Zend_Cache_Backend_ApcyT Zend_AuthyS ?Zend_Auth_Storage_Sessiony$R KZend_Auth_Storage_NonPersistenty Q CZend_Auth_Storage_ExceptionyP -Zend_Auth_ResultyO 3Zend_Auth_ExceptionyN =Zend_Auth_Adapter_OpenIdyM 9Zend_Auth_Adapter_LdapyL AZend_Auth_Adapter_InfoCardyK 9Zend_Auth_Adapter_Httpy)J UZend_Auth_Adapter_Http_Resolver_Filey.I _Zend_Auth_Adapter_Http_Resolver_Exceptiony H CZend_Auth_Adapter_ExceptionyG =Zend_Auth_Adapter_DigestyF ?Zend_Auth_Adapter_DbTableyE -Zend_Applicationy#D IZend_Application_Resource_Viewy(C SZend_Application_Resource_Translatey&B OZend_Application_Resource_Sessiony%A MZend_Application_Resource_Routery/@ aZend_Application_Resource_ResourceAbstracty)? UZend_Application_Resource_Navigationy&> OZend_Application_Resource_Modulesy%= MZend_Application_Resource_Localey%< MZend_Application_Resource_Layouty.; _Zend_Application_Resource_Frontcontrollery(: SZend_Application_Resource_Exceptiony!9 EZend_Application_Resource_Dby&8 OZend_Application_Module_Bootstrapy'7 QZend_Application_Module_Autoloadery6 AZend_Application_Exceptiony)5 UZend_Application_Bootstrap_Exceptiony14 eZend_Application_Bootstrap_BootstrapAbstracty)3 UZend_Application_Bootstrap_Bootstrapy2 ?Zend_Amf_Value_TraitsInfoy-1 ]Zend_Amf_Value_Messaging_RemotingMessagey*0 WZend_Amf_Value_Messaging_ErrorMessagey,/ [Zend_Amf_Value_Messaging_CommandMessagey*. WZend_Amf_Value_Messaging_AsyncMessagey-- ]Zend_Amf_Value_Messaging_ArrayCollectiony0, cZend_Amf_Value_Messaging_AcknowledgeMessagey-+ ]Zend_Amf_Value_Messaging_AbstractMessagey!* EZend_Amf_Value_MessageHeadery) AZend_Amf_Value_MessageBodyy( =Zend_Amf_Value_ByteArrayy' AZend_Amf_Util_BinaryStreamy& +Zend_Amf_Servery% ?Zend_Amf_Server_Exceptiony$ /Zend_Amf_Responsey# 9Zend_Amf_Response_Httpy" -Zend_Amf_Requesty! 7Zend_Amf_Request_Httpy  ?Zend_Amf_Parse_TypeLoadery ?Zend_Amf_Parse_Serializery# IZend_Amf_Parse_Resource_Streamy( SZend_Amf_Parse_Resource_MysqlResulty) UZend_Amf_Parse_Resource_MysqliResulty  CZend_Amf_Parse_OutputStreamy AZend_Amf_Parse_InputStreamy  CZend_Amf_Parse_Deserializery# IZend_Amf_Parse_Amf3_Serializery% MZend_Amf_Parse_Amf3_Deserializery# IZend_Amf_Parse_Amf0_Serializery% MZend_Amf_Parse_Amf0_Deserializery 1Zend_Amf_Exceptiony 1Zend_Amf_Constantsy 9Zend_Amf_Auth_Abstracty  CZend_Amf_Adobe_Introspectory AZend_Amf_Adobe_DbInspectory 3Zend_Amf_Adobe_Authy Zend_Acly 'Zend_Acl_Roley 9Zend_Acl_Role_Registryy   d  yP,qHuV;#uC^*



o
<
				^	2	yM#T-_7`4	lO-tR:zaD(hI              !Z EZend_Db_Adapter_Pdo_AbstractyY 9Zend_Db_Adapter_Oracley%X MZend_Db_Adapter_Oracle_ExceptionyW 9Zend_Db_Adapter_Mysqliy%V MZend_Db_Adapter_Mysqli_ExceptionyU ?Zend_Db_Adapter_ExceptionyT 3Zend_Db_Adapter_Db2y"S GZend_Db_Adapter_Db2_ExceptionyR =Zend_Db_Adapter_AbstractyQ Zend_DateyP 3Zend_Date_ExceptionyO 5Zend_Date_DateObjectyN -Zend_Date_CitiesyM 'Zend_CurrencyyL ;Zend_Currency_ExceptionyK !Zend_CryptyJ )Zend_Crypt_RsayI 1Zend_Crypt_Rsa_KeyyH ?Zend_Crypt_Rsa_Key_PublicyG AZend_Crypt_Rsa_Key_PrivateyF +Zend_Crypt_MathyE ?Zend_Crypt_Math_ExceptionyD AZend_Crypt_Math_BigIntegery#C IZend_Crypt_Math_BigInteger_Gmpy)B UZend_Crypt_Math_BigInteger_Exceptiony&A OZend_Crypt_Math_BigInteger_Bcmathy@ +Zend_Crypt_Hmacy? ?Zend_Crypt_Hmac_Exceptiony> 5Zend_Crypt_Exceptiony= =Zend_Crypt_DiffieHellmany'< QZend_Crypt_DiffieHellman_Exceptiony!; EZend_Controller_Router_Routey(: SZend_Controller_Router_Route_Staticy'9 QZend_Controller_Router_Route_Regexy(8 SZend_Controller_Router_Route_Moduley*7 WZend_Controller_Router_Route_Hostnamey'6 QZend_Controller_Router_Route_Chainy*5 WZend_Controller_Router_Route_Abstracty#4 IZend_Controller_Router_Rewritey%3 MZend_Controller_Router_Exceptiony$2 KZend_Controller_Router_Abstracty*1 WZend_Controller_Response_HttpTestCasey"0 GZend_Controller_Response_Httpy'/ QZend_Controller_Response_Exceptiony!. EZend_Controller_Response_Cliy&- OZend_Controller_Response_Abstracty#, IZend_Controller_Request_Simpley)+ UZend_Controller_Request_HttpTestCasey!* EZend_Controller_Request_Httpy&) OZend_Controller_Request_Exceptiony&( OZend_Controller_Request_Apache404y%' MZend_Controller_Request_Abstracty&& OZend_Controller_Plugin_PutHandlery(% SZend_Controller_Plugin_ErrorHandlery"$ GZend_Controller_Plugin_Brokery'# QZend_Controller_Plugin_ActionStacky$" KZend_Controller_Plugin_Abstracty! 7Zend_Controller_Fronty  ?Zend_Controller_Exceptiony( SZend_Controller_Dispatcher_Standardy) UZend_Controller_Dispatcher_Exceptiony( SZend_Controller_Dispatcher_Abstracty 9Zend_Controller_Actiony( SZend_Controller_Action_HelperBrokery6 oZend_Controller_Action_HelperBroker_PriorityStacky/ aZend_Controller_Action_Helper_ViewRenderery& OZend_Controller_Action_Helper_Urly- ]Zend_Controller_Action_Helper_Redirectory' QZend_Controller_Action_Helper_Jsony1 eZend_Controller_Action_Helper_FlashMessengery0 cZend_Controller_Action_Helper_ContextSwitchy< {Zend_Controller_Action_Helper_AutoCompleteScriptaculousy3 iZend_Controller_Action_Helper_AutoCompleteDojoy8 sZend_Controller_Action_Helper_AutoComplete_Abstracty. _Zend_Controller_Action_Helper_AjaxContexty. _Zend_Controller_Action_Helper_ActionStacky+ YZend_Controller_Action_Helper_Abstracty% MZend_Controller_Action_Exceptiony 3Zend_Console_Getopty" GZend_Console_Getopt_Exceptiony
 #Zend_Configy	 +Zend_Config_Xmly 1Zend_Config_Writery 9Zend_Config_Writer_Xmly 9Zend_Config_Writer_Iniy =Zend_Config_Writer_Arrayy +Zend_Config_Iniy 7Zend_Config_Exceptiony$ KZend_CodeGenerator_Php_Propertyy1 eZend_CodeGenerator_Php_Property_DefaultValuey%  MZend_CodeGenerator_Php_Parametery2 gZend_CodeGenerator_Php_Parameter_DefaultValuey"~ GZend_CodeGenerator_Php_Methody,} [Zend_CodeGenerator_Php_Member_Containery+| YZend_CodeGenerator_Php_Member_Abstracty { CZend_CodeGenerator_Php_Filey%z MZend_CodeGenerator_Php_Exceptiony$y KZend_CodeGenerator_Php_Docblocky(x SZend_CodeGenerator_Php_Docblock_Tagy/w aZend_CodeGenerator_Php_Docblock_Tag_Returny   g  vT4xU4~Z/~`5wS9




u
e
R
5

			n	A	X*a6b5Z.U6sN' ~T0`=             (A SZend_Dojo_View_Helper_NumberSpinnery+@ YZend_Dojo_View_Helper_HorizontalSlidery? AZend_Dojo_View_Helper_Formy*> WZend_Dojo_View_Helper_FilteringSelecty!= EZend_Dojo_View_Helper_Editory< AZend_Dojo_View_Helper_Dojoy); UZend_Dojo_View_Helper_Dojo_Containery): UZend_Dojo_View_Helper_DijitContainery 9 CZend_Dojo_View_Helper_Dijity&8 OZend_Dojo_View_Helper_DateTextBoxy&7 OZend_Dojo_View_Helper_CustomDijity*6 WZend_Dojo_View_Helper_CurrencyTextBoxy&5 OZend_Dojo_View_Helper_ContentPaney#4 IZend_Dojo_View_Helper_ComboBoxy#3 IZend_Dojo_View_Helper_CheckBoxy!2 EZend_Dojo_View_Helper_Buttony*1 WZend_Dojo_View_Helper_BorderContainery(0 SZend_Dojo_View_Helper_AccordionPaney-/ ]Zend_Dojo_View_Helper_AccordionContainery. =Zend_Dojo_View_Exceptiony- )Zend_Dojo_Formy, 9Zend_Dojo_Form_SubFormy*+ WZend_Dojo_Form_Element_VerticalSlidery-* ]Zend_Dojo_Form_Element_ValidationTextBoxy') QZend_Dojo_Form_Element_TimeTextBoxy#( IZend_Dojo_Form_Element_TextBoxy$' KZend_Dojo_Form_Element_Textareay(& SZend_Dojo_Form_Element_SubmitButtony"% GZend_Dojo_Form_Element_Slidery*$ WZend_Dojo_Form_Element_SimpleTextareay'# QZend_Dojo_Form_Element_RadioButtony+" YZend_Dojo_Form_Element_PasswordTextBoxy)! UZend_Dojo_Form_Element_NumberTextBoxy)  UZend_Dojo_Form_Element_NumberSpinnery, [Zend_Dojo_Form_Element_HorizontalSlidery+ YZend_Dojo_Form_Element_FilteringSelecty" GZend_Dojo_Form_Element_Editory& OZend_Dojo_Form_Element_DijitMultiy! EZend_Dojo_Form_Element_Dijity' QZend_Dojo_Form_Element_DateTextBoxy+ YZend_Dojo_Form_Element_CurrencyTextBoxy$ KZend_Dojo_Form_Element_ComboBoxy$ KZend_Dojo_Form_Element_CheckBoxy" GZend_Dojo_Form_Element_Buttony  CZend_Dojo_Form_DisplayGroupy* WZend_Dojo_Form_Decorator_TabContainery, [Zend_Dojo_Form_Decorator_StackContainery, [Zend_Dojo_Form_Decorator_SplitContainery' QZend_Dojo_Form_Decorator_DijitFormy* WZend_Dojo_Form_Decorator_DijitElementy, [Zend_Dojo_Form_Decorator_DijitContainery) UZend_Dojo_Form_Decorator_ContentPaney- ]Zend_Dojo_Form_Decorator_BorderContainery+ YZend_Dojo_Form_Decorator_AccordionPaney0 cZend_Dojo_Form_Decorator_AccordionContainery
 3Zend_Dojo_Exceptiony	 )Zend_Dojo_Datay 5Zend_Dojo_BuildLayery !Zend_Debugy Zend_Dby 'Zend_Db_Tabley 5Zend_Db_Table_Selecty# IZend_Db_Table_Select_Exceptiony 5Zend_Db_Table_Rowsety# IZend_Db_Table_Rowset_Exceptiony"  GZend_Db_Table_Rowset_Abstracty /Zend_Db_Table_Rowy ~ CZend_Db_Table_Row_Exceptiony} AZend_Db_Table_Row_Abstracty| ;Zend_Db_Table_Exceptiony{ =Zend_Db_Table_Definitionyz 9Zend_Db_Table_Abstractyy /Zend_Db_Statementyx =Zend_Db_Statement_Sqlsrvy'w QZend_Db_Statement_Sqlsrv_Exceptionyv 7Zend_Db_Statement_Pdoyu ?Zend_Db_Statement_Pdo_Ociyt ?Zend_Db_Statement_Pdo_Ibmys =Zend_Db_Statement_Oracley'r QZend_Db_Statement_Oracle_Exceptionyq =Zend_Db_Statement_Mysqliy'p QZend_Db_Statement_Mysqli_Exceptiony o CZend_Db_Statement_Exceptionyn 7Zend_Db_Statement_Db2y$m KZend_Db_Statement_Db2_Exceptionyl )Zend_Db_Selectyk =Zend_Db_Select_Exceptionyj -Zend_Db_Profileryi 9Zend_Db_Profiler_Queryyh =Zend_Db_Profiler_Firebugyg AZend_Db_Profiler_Exceptionyf %Zend_Db_Exprye /Zend_Db_Exceptionyd 9Zend_Db_Adapter_Sqlsrvy%c MZend_Db_Adapter_Sqlsrv_Exceptionyb AZend_Db_Adapter_Pdo_Sqliteya ?Zend_Db_Adapter_Pdo_Pgsqly` ;Zend_Db_Adapter_Pdo_Ociy_ ?Zend_Db_Adapter_Pdo_Mysqly^ ?Zend_Db_Adapter_Pdo_Mssqly] ;Zend_Db_Adapter_Pdo_Ibmy \ CZend_Db_Adapter_Pdo_Ibm_Idsy [ CZend_Db_Adapter_Pdo_Ibm_Db2y   i  |O*zS-yX:#nM3\5


p
8
			p	?	|E" mE {`H%bBZ:zQ#xLn?+        !* EZend_Form_Decorator_Callbacky!) EZend_Form_Decorator_Abstracty( #Zend_Filtery+' YZend_Filter_Word_UnderscoreToSeparatory&& OZend_Filter_Word_UnderscoreToDashy+% YZend_Filter_Word_UnderscoreToCamelCasey*$ WZend_Filter_Word_SeparatorToSeparatory%# MZend_Filter_Word_SeparatorToDashy*" WZend_Filter_Word_SeparatorToCamelCasey(! SZend_Filter_Word_Separator_Abstracty&  OZend_Filter_Word_DashToUnderscorey% MZend_Filter_Word_DashToSeparatory% MZend_Filter_Word_DashToCamelCasey+ YZend_Filter_Word_CamelCaseToUnderscorey* WZend_Filter_Word_CamelCaseToSeparatory% MZend_Filter_Word_CamelCaseToDashy 7Zend_Filter_StripTagsy ?Zend_Filter_StripNewlinesy 9Zend_Filter_StringTrimy ?Zend_Filter_StringToUppery ?Zend_Filter_StringToLowery 5Zend_Filter_RealPathy ;Zend_Filter_PregReplacey& OZend_Filter_NormalizedToLocalizedy& OZend_Filter_LocalizedToNormalizedy +Zend_Filter_Inty /Zend_Filter_Inputy 7Zend_Filter_Inflectory =Zend_Filter_HtmlEntitiesy AZend_Filter_File_UpperCasey ;Zend_Filter_File_Renamey AZend_Filter_File_LowerCasey
 =Zend_Filter_File_Encrypty	 =Zend_Filter_File_Decrypty 7Zend_Filter_Exceptiony 3Zend_Filter_Encrypty  CZend_Filter_Encrypt_Openssly AZend_Filter_Encrypt_Mcrypty +Zend_Filter_Diry 1Zend_Filter_Digitsy 3Zend_Filter_Decrypty 5Zend_Filter_Callbacky  5Zend_Filter_BaseNamey /Zend_Filter_Alphay~ /Zend_Filter_Alnumy} 1Zend_File_Transfery!| EZend_File_Transfer_Exceptiony${ KZend_File_Transfer_Adapter_Httpy(z SZend_File_Transfer_Adapter_Abstractyy Zend_Feedyx 'Zend_Feed_Rssyw -Zend_Feed_Readery"v GZend_Feed_Reader_FeedAbstractyu ?Zend_Feed_Reader_Feed_Rssyt AZend_Feed_Reader_Feed_Atomy3s iZend_Feed_Reader_Extension_WellFormedWeb_Entryy,r [Zend_Feed_Reader_Extension_Thread_Entryy0q cZend_Feed_Reader_Extension_Syndication_Feedy+p YZend_Feed_Reader_Extension_Slash_Entryy,o [Zend_Feed_Reader_Extension_Podcast_Feedy-n ]Zend_Feed_Reader_Extension_Podcast_Entryy,m [Zend_Feed_Reader_Extension_FeedAbstracty-l ]Zend_Feed_Reader_Extension_EntryAbstracty/k aZend_Feed_Reader_Extension_DublinCore_Feedy0j cZend_Feed_Reader_Extension_DublinCore_Entryy4i kZend_Feed_Reader_Extension_CreativeCommons_Feedy5h mZend_Feed_Reader_Extension_CreativeCommons_Entryy-g ]Zend_Feed_Reader_Extension_Content_Entryy)f UZend_Feed_Reader_Extension_Atom_Feedy*e WZend_Feed_Reader_Extension_Atom_Entryy#d IZend_Feed_Reader_EntryAbstractyc AZend_Feed_Reader_Entry_Rssy b CZend_Feed_Reader_Entry_Atomya 3Zend_Feed_Exceptiony` 3Zend_Feed_Entry_Rssy_ 5Zend_Feed_Entry_Atomy^ =Zend_Feed_Entry_Abstracty] /Zend_Feed_Elementy\ /Zend_Feed_Buildery[ =Zend_Feed_Builder_Headery$Z KZend_Feed_Builder_Header_Itunesy Y CZend_Feed_Builder_ExceptionyX ;Zend_Feed_Builder_EntryyW )Zend_Feed_AtomyV 1Zend_Feed_AbstractyU )Zend_ExceptionyT )Zend_Dom_QueryyS 7Zend_Dom_Query_ResultyR =Zend_Dom_Query_Css2XpathyQ 1Zend_Dom_ExceptionyP Zend_Dojoy)O UZend_Dojo_View_Helper_VerticalSlidery,N [Zend_Dojo_View_Helper_ValidationTextBoxy&M OZend_Dojo_View_Helper_TimeTextBoxy"L GZend_Dojo_View_Helper_TextBoxy#K IZend_Dojo_View_Helper_Textareay'J QZend_Dojo_View_Helper_TabContainery'I QZend_Dojo_View_Helper_SubmitButtony)H UZend_Dojo_View_Helper_StackContainery)G UZend_Dojo_View_Helper_SplitContainery!F EZend_Dojo_View_Helper_Slidery)E UZend_Dojo_View_Helper_SimpleTextareay&D OZend_Dojo_View_Helper_RadioButtony*C WZend_Dojo_View_Helper_PasswordTextBoxy(B SZend_Dojo_View_Helper_NumberTextBoxy   g  c@c?]>vU5dC"




p
^
9
				{	Z	2	b:uO)`6rQ5n8yP(g;]9                                       -Zend_Gdata_Booksy! EZend_Gdata_Books_VolumeQueryy  CZend_Gdata_Books_VolumeFeedy! EZend_Gdata_Books_VolumeEntryy+ YZend_Gdata_Books_Extension_Viewabilityy- ]Zend_Gdata_Books_Extension_ThumbnailLinky& OZend_Gdata_Books_Extension_Reviewy+
 YZend_Gdata_Books_Extension_PreviewLinky(	 SZend_Gdata_Books_Extension_InfoLinky- ]Zend_Gdata_Books_Extension_Embeddabilityy) UZend_Gdata_Books_Extension_BooksLinky- ]Zend_Gdata_Books_Extension_BooksCategoryy. _Zend_Gdata_Books_Extension_AnnotationLinky$ KZend_Gdata_Books_CollectionFeedy% MZend_Gdata_Books_CollectionEntryy 1Zend_Gdata_AuthSuby )Zend_Gdata_Appy$  KZend_Gdata_App_VersionExceptiony 3Zend_Gdata_App_Utily#~ IZend_Gdata_App_MediaFileSourcey} ?Zend_Gdata_App_MediaEntryy2| gZend_Gdata_App_LoggingHttpClientAdapterSockety{ AZend_Gdata_App_IOExceptiony,z [Zend_Gdata_App_InvalidArgumentExceptiony!y EZend_Gdata_App_HttpExceptiony$x KZend_Gdata_App_FeedSourceParenty#w IZend_Gdata_App_FeedEntryParentyv 3Zend_Gdata_App_Feedyu =Zend_Gdata_App_Extensiony!t EZend_Gdata_App_Extension_Uriy%s MZend_Gdata_App_Extension_Updatedy#r IZend_Gdata_App_Extension_Titley"q GZend_Gdata_App_Extension_Texty%p MZend_Gdata_App_Extension_Summaryy&o OZend_Gdata_App_Extension_Subtitley$n KZend_Gdata_App_Extension_Sourcey$m KZend_Gdata_App_Extension_Rightsy'l QZend_Gdata_App_Extension_Publishedy$k KZend_Gdata_App_Extension_Persony"j GZend_Gdata_App_Extension_Namey"i GZend_Gdata_App_Extension_Logoy"h GZend_Gdata_App_Extension_Linky g CZend_Gdata_App_Extension_Idy"f GZend_Gdata_App_Extension_Icony'e QZend_Gdata_App_Extension_Generatory#d IZend_Gdata_App_Extension_Emaily%c MZend_Gdata_App_Extension_Elementy$b KZend_Gdata_App_Extension_Editedy#a IZend_Gdata_App_Extension_Drafty%` MZend_Gdata_App_Extension_Controly)_ UZend_Gdata_App_Extension_Contributory%^ MZend_Gdata_App_Extension_Contenty&] OZend_Gdata_App_Extension_Categoryy$\ KZend_Gdata_App_Extension_Authory[ =Zend_Gdata_App_ExceptionyZ 5Zend_Gdata_App_Entryy,Y [Zend_Gdata_App_CaptchaRequiredExceptiony#X IZend_Gdata_App_BaseMediaSourceyW 3Zend_Gdata_App_Basey*V WZend_Gdata_App_BadMethodCallExceptiony!U EZend_Gdata_App_AuthExceptionyT Zend_FormyS /Zend_Form_SubFormyR 3Zend_Form_ExceptionyQ /Zend_Form_ElementyP ;Zend_Form_Element_XhtmlyO AZend_Form_Element_TextareayN 9Zend_Form_Element_TextyM =Zend_Form_Element_SubmityL =Zend_Form_Element_SelectyK ;Zend_Form_Element_ResetyJ ;Zend_Form_Element_RadioyI AZend_Form_Element_Passwordy"H GZend_Form_Element_Multiselecty$G KZend_Form_Element_MultiCheckboxyF ;Zend_Form_Element_MultiyE ;Zend_Form_Element_ImageyD =Zend_Form_Element_HiddenyC 9Zend_Form_Element_HashyB 9Zend_Form_Element_Filey A CZend_Form_Element_Exceptiony@ AZend_Form_Element_Checkboxy? ?Zend_Form_Element_Captchay> =Zend_Form_Element_Buttony= 9Zend_Form_DisplayGroupy#< IZend_Form_Decorator_ViewScripty#; IZend_Form_Decorator_ViewHelpery : CZend_Form_Decorator_Tooltipy(9 SZend_Form_Decorator_PrepareElementsy8 ?Zend_Form_Decorator_Labely7 ?Zend_Form_Decorator_Imagey 6 CZend_Form_Decorator_HtmlTagy#5 IZend_Form_Decorator_FormErrorsy%4 MZend_Form_Decorator_FormElementsy3 =Zend_Form_Decorator_Formy2 =Zend_Form_Decorator_Filey!1 EZend_Form_Decorator_Fieldsety"0 GZend_Form_Decorator_Exceptiony/ AZend_Form_Decorator_Errorsy$. KZend_Form_Decorator_DtDdWrappery$- KZend_Form_Decorator_Descriptiony , CZend_Form_Decorator_Captchay%+ MZend_Form_Decorator_Captcha_Wordy   a  Z.x;tU+o;vG




i
>
				j	C	lBxDg6yX;#{K}Q(kH&|Y7       "r GZend_Gdata_Gbase_SnippetEntryyq 9Zend_Gdata_Gbase_Queryyp AZend_Gdata_Gbase_ItemQueryyo ?Zend_Gdata_Gbase_ItemFeedyn AZend_Gdata_Gbase_ItemEntryym 7Zend_Gdata_Gbase_Feedy-l ]Zend_Gdata_Gbase_Extension_BaseAttributeyk 9Zend_Gdata_Gbase_Entryyj -Zend_Gdata_Gappsyi AZend_Gdata_Gapps_UserQueryyh ?Zend_Gdata_Gapps_UserFeedyg AZend_Gdata_Gapps_UserEntryy&f OZend_Gdata_Gapps_ServiceExceptionye 9Zend_Gdata_Gapps_Queryy#d IZend_Gdata_Gapps_NicknameQueryy"c GZend_Gdata_Gapps_NicknameFeedy#b IZend_Gdata_Gapps_NicknameEntryy%a MZend_Gdata_Gapps_Extension_Quotay(` SZend_Gdata_Gapps_Extension_Nicknamey$_ KZend_Gdata_Gapps_Extension_Namey%^ MZend_Gdata_Gapps_Extension_Loginy)] UZend_Gdata_Gapps_Extension_EmailListy\ 9Zend_Gdata_Gapps_Errory-[ ]Zend_Gdata_Gapps_EmailListRecipientQueryy,Z [Zend_Gdata_Gapps_EmailListRecipientFeedy-Y ]Zend_Gdata_Gapps_EmailListRecipientEntryy$X KZend_Gdata_Gapps_EmailListQueryy#W IZend_Gdata_Gapps_EmailListFeedy$V KZend_Gdata_Gapps_EmailListEntryyU +Zend_Gdata_FeedyT 5Zend_Gdata_ExtensionyS =Zend_Gdata_Extension_WhoyR AZend_Gdata_Extension_WhereyQ ?Zend_Gdata_Extension_Wheny$P KZend_Gdata_Extension_Visibilityy&O OZend_Gdata_Extension_Transparencyy"N GZend_Gdata_Extension_Remindery-M ]Zend_Gdata_Extension_RecurrenceExceptiony$L KZend_Gdata_Extension_Recurrencey K CZend_Gdata_Extension_Ratingy'J QZend_Gdata_Extension_OriginalEventy0I cZend_Gdata_Extension_OpenSearchTotalResultsy.H _Zend_Gdata_Extension_OpenSearchStartIndexy0G cZend_Gdata_Extension_OpenSearchItemsPerPagey"F GZend_Gdata_Extension_FeedLinky*E WZend_Gdata_Extension_ExtendedPropertyy%D MZend_Gdata_Extension_EventStatusy#C IZend_Gdata_Extension_EntryLinky"B GZend_Gdata_Extension_Commentsy&A OZend_Gdata_Extension_AttendeeTypey(@ SZend_Gdata_Extension_AttendeeStatusy? +Zend_Gdata_Exify> 5Zend_Gdata_Exif_Feedy#= IZend_Gdata_Exif_Extension_Timey#< IZend_Gdata_Exif_Extension_Tagsy$; KZend_Gdata_Exif_Extension_Modely#: IZend_Gdata_Exif_Extension_Makey"9 GZend_Gdata_Exif_Extension_Isoy,8 [Zend_Gdata_Exif_Extension_ImageUniqueIdy$7 KZend_Gdata_Exif_Extension_FStopy*6 WZend_Gdata_Exif_Extension_FocalLengthy$5 KZend_Gdata_Exif_Extension_Flashy'4 QZend_Gdata_Exif_Extension_Exposurey'3 QZend_Gdata_Exif_Extension_Distancey2 7Zend_Gdata_Exif_Entryy1 -Zend_Gdata_Entryy0 7Zend_Gdata_DublinCorey*/ WZend_Gdata_DublinCore_Extension_Titley,. [Zend_Gdata_DublinCore_Extension_Subjecty+- YZend_Gdata_DublinCore_Extension_Rightsy., _Zend_Gdata_DublinCore_Extension_Publishery-+ ]Zend_Gdata_DublinCore_Extension_Languagey/* aZend_Gdata_DublinCore_Extension_Identifiery+) YZend_Gdata_DublinCore_Extension_Formaty0( cZend_Gdata_DublinCore_Extension_Descriptiony)' UZend_Gdata_DublinCore_Extension_Datey,& [Zend_Gdata_DublinCore_Extension_Creatory% +Zend_Gdata_Docsy$ 7Zend_Gdata_Docs_Queryy%# MZend_Gdata_Docs_DocumentListFeedy&" OZend_Gdata_Docs_DocumentListEntryy! 9Zend_Gdata_ClientLoginy  3Zend_Gdata_Calendary! EZend_Gdata_Calendar_ListFeedy" GZend_Gdata_Calendar_ListEntryy- ]Zend_Gdata_Calendar_Extension_WebContenty+ YZend_Gdata_Calendar_Extension_Timezoney9 uZend_Gdata_Calendar_Extension_SendEventNotificationsy+ YZend_Gdata_Calendar_Extension_Selectedy+ YZend_Gdata_Calendar_Extension_QuickAddy' QZend_Gdata_Calendar_Extension_Linky) UZend_Gdata_Calendar_Extension_Hiddeny( SZend_Gdata_Calendar_Extension_Colory. _Zend_Gdata_Calendar_Extension_AccessLevely# IZend_Gdata_Calendar_EventQueryy" GZend_Gdata_Calendar_EventFeedy# IZend_Gdata_Calendar_EventEntryy   ^  R( ~X-nP-{L].



m
O
6
					g	@	c2}G`3}O!wR.	{aHn;
Z)        +P YZend_Gdata_Spreadsheets_WorksheetEntryy,O [Zend_Gdata_Spreadsheets_SpreadsheetFeedy-N ]Zend_Gdata_Spreadsheets_SpreadsheetEntryy&M OZend_Gdata_Spreadsheets_ListQueryy%L MZend_Gdata_Spreadsheets_ListFeedy&K OZend_Gdata_Spreadsheets_ListEntryy/J aZend_Gdata_Spreadsheets_Extension_RowCounty-I ]Zend_Gdata_Spreadsheets_Extension_Customy/H aZend_Gdata_Spreadsheets_Extension_ColCounty+G YZend_Gdata_Spreadsheets_Extension_Celly*F WZend_Gdata_Spreadsheets_DocumentQueryy&E OZend_Gdata_Spreadsheets_CellQueryy%D MZend_Gdata_Spreadsheets_CellFeedy&C OZend_Gdata_Spreadsheets_CellEntryyB -Zend_Gdata_QueryyA /Zend_Gdata_Photosy @ CZend_Gdata_Photos_UserQueryy? AZend_Gdata_Photos_UserFeedy > CZend_Gdata_Photos_UserEntryy= AZend_Gdata_Photos_TagEntryy!< EZend_Gdata_Photos_PhotoQueryy ; CZend_Gdata_Photos_PhotoFeedy!: EZend_Gdata_Photos_PhotoEntryy&9 OZend_Gdata_Photos_Extension_Widthy'8 QZend_Gdata_Photos_Extension_Weighty(7 SZend_Gdata_Photos_Extension_Versiony%6 MZend_Gdata_Photos_Extension_Usery*5 WZend_Gdata_Photos_Extension_Timestampy*4 WZend_Gdata_Photos_Extension_Thumbnaily%3 MZend_Gdata_Photos_Extension_Sizey)2 UZend_Gdata_Photos_Extension_Rotationy+1 YZend_Gdata_Photos_Extension_QuotaLimity-0 ]Zend_Gdata_Photos_Extension_QuotaCurrenty)/ UZend_Gdata_Photos_Extension_Positiony(. SZend_Gdata_Photos_Extension_PhotoIdy3- iZend_Gdata_Photos_Extension_NumPhotosRemainingy*, WZend_Gdata_Photos_Extension_NumPhotosy)+ UZend_Gdata_Photos_Extension_Nicknamey%* MZend_Gdata_Photos_Extension_Namey2) gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumy)( UZend_Gdata_Photos_Extension_Locationy#' IZend_Gdata_Photos_Extension_Idy'& QZend_Gdata_Photos_Extension_Heighty2% gZend_Gdata_Photos_Extension_CommentingEnabledy-$ ]Zend_Gdata_Photos_Extension_CommentCounty'# QZend_Gdata_Photos_Extension_Clienty)" UZend_Gdata_Photos_Extension_Checksumy*! WZend_Gdata_Photos_Extension_BytesUsedy(  SZend_Gdata_Photos_Extension_AlbumIdy' QZend_Gdata_Photos_Extension_Accessy# IZend_Gdata_Photos_CommentEntryy! EZend_Gdata_Photos_AlbumQueryy  CZend_Gdata_Photos_AlbumFeedy! EZend_Gdata_Photos_AlbumEntryy 3Zend_Gdata_MimeFiley ?Zend_Gdata_MimeBodyStringy AZend_Gdata_MediaMimeStreamy -Zend_Gdata_Mediay 7Zend_Gdata_Media_Feedy* WZend_Gdata_Media_Extension_MediaTitley. _Zend_Gdata_Media_Extension_MediaThumbnaily) UZend_Gdata_Media_Extension_MediaTexty0 cZend_Gdata_Media_Extension_MediaRestrictiony+ YZend_Gdata_Media_Extension_MediaRatingy+ YZend_Gdata_Media_Extension_MediaPlayery- ]Zend_Gdata_Media_Extension_MediaKeywordsy) UZend_Gdata_Media_Extension_MediaHashy* WZend_Gdata_Media_Extension_MediaGroupy0 cZend_Gdata_Media_Extension_MediaDescriptiony+ YZend_Gdata_Media_Extension_MediaCredity.
 _Zend_Gdata_Media_Extension_MediaCopyrighty,	 [Zend_Gdata_Media_Extension_MediaContenty- ]Zend_Gdata_Media_Extension_MediaCategoryy 9Zend_Gdata_Media_Entryy AZend_Gdata_Kind_EventEntryy 7Zend_Gdata_HttpClienty* WZend_Gdata_HttpAdapterStreamingSockety) UZend_Gdata_HttpAdapterStreamingProxyy /Zend_Gdata_Healthy ;Zend_Gdata_Health_Queryy&  OZend_Gdata_Health_ProfileListFeedy' QZend_Gdata_Health_ProfileListEntryy"~ GZend_Gdata_Health_ProfileFeedy#} IZend_Gdata_Health_ProfileEntryy$| KZend_Gdata_Health_Extension_Ccry{ )Zend_Gdata_Geoyz 3Zend_Gdata_Geo_Feedy$y KZend_Gdata_Geo_Extension_GmlPosy&x OZend_Gdata_Geo_Extension_GmlPointy)w UZend_Gdata_Geo_Extension_GeoRssWhereyv 5Zend_Gdata_Geo_Entryyu -Zend_Gdata_Gbasey"t GZend_Gdata_Gbase_SnippetQueryy!s EZend_Gdata_Gbase_SnippetFeedy   \  a9mBZ+vLZ.


v
C
				_	-uIoJ$pCz_L&cJ1i7
`C&n=                                       $, KZend_InfoCard_Xml_EncryptedDatay++ YZend_InfoCard_Xml_EncryptedData_XmlEncy-* ]Zend_InfoCard_Xml_EncryptedData_Abstracty) ?Zend_InfoCard_Xml_Elementy ( CZend_InfoCard_Xml_Assertiony%' MZend_InfoCard_Xml_Assertion_Samly& ;Zend_InfoCard_Exceptiony%% MZend_InfoCard_Exception_Abstracty$ 5Zend_InfoCard_Claimsy# 5Zend_InfoCard_Ciphery5" mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcy5! mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcy4  kZend_InfoCard_Cipher_Symmetric_Adapter_Abstracty) UZend_InfoCard_Cipher_Pki_Adapter_Rsay. _Zend_InfoCard_Cipher_Pki_Adapter_Abstracty# IZend_InfoCard_Cipher_Exceptiony$ KZend_InfoCard_Adapter_Exceptiony" GZend_InfoCard_Adapter_Defaulty 1Zend_Http_Responsey 3Zend_Http_Exceptiony 3Zend_Http_CookieJary -Zend_Http_Cookiey -Zend_Http_Clienty AZend_Http_Client_Exceptiony" GZend_Http_Client_Adapter_Testy$ KZend_Http_Client_Adapter_Sockety# IZend_Http_Client_Adapter_Proxyy' QZend_Http_Client_Adapter_Exceptiony" GZend_Http_Client_Adapter_Curly !Zend_Gdatay 1Zend_Gdata_YouTubey" GZend_Gdata_YouTube_VideoQueryy! EZend_Gdata_YouTube_VideoFeedy" GZend_Gdata_YouTube_VideoEntryy(
 SZend_Gdata_YouTube_UserProfileEntryy(	 SZend_Gdata_YouTube_SubscriptionFeedy) UZend_Gdata_YouTube_SubscriptionEntryy) UZend_Gdata_YouTube_PlaylistVideoFeedy* WZend_Gdata_YouTube_PlaylistVideoEntryy( SZend_Gdata_YouTube_PlaylistListFeedy) UZend_Gdata_YouTube_PlaylistListEntryy" GZend_Gdata_YouTube_MediaEntryy! EZend_Gdata_YouTube_InboxFeedy" GZend_Gdata_YouTube_InboxEntryy)  UZend_Gdata_YouTube_Extension_VideoIdy* WZend_Gdata_YouTube_Extension_Usernamey*~ WZend_Gdata_YouTube_Extension_Uploadedy'} QZend_Gdata_YouTube_Extension_Tokeny(| SZend_Gdata_YouTube_Extension_Statusy,{ [Zend_Gdata_YouTube_Extension_Statisticsy'z QZend_Gdata_YouTube_Extension_Statey(y SZend_Gdata_YouTube_Extension_Schooly-x ]Zend_Gdata_YouTube_Extension_ReleaseDatey.w _Zend_Gdata_YouTube_Extension_Relationshipy*v WZend_Gdata_YouTube_Extension_Recordedy&u OZend_Gdata_YouTube_Extension_Racyy-t ]Zend_Gdata_YouTube_Extension_QueryStringy)s UZend_Gdata_YouTube_Extension_Privatey*r WZend_Gdata_YouTube_Extension_Positiony/q aZend_Gdata_YouTube_Extension_PlaylistTitley,p [Zend_Gdata_YouTube_Extension_PlaylistIdy,o [Zend_Gdata_YouTube_Extension_Occupationy)n UZend_Gdata_YouTube_Extension_NoEmbedy'm QZend_Gdata_YouTube_Extension_Musicy(l SZend_Gdata_YouTube_Extension_Moviesy-k ]Zend_Gdata_YouTube_Extension_MediaRatingy,j [Zend_Gdata_YouTube_Extension_MediaGroupy-i ]Zend_Gdata_YouTube_Extension_MediaCredity.h _Zend_Gdata_YouTube_Extension_MediaContenty*g WZend_Gdata_YouTube_Extension_Locationy&f OZend_Gdata_YouTube_Extension_Linky*e WZend_Gdata_YouTube_Extension_LastNamey*d WZend_Gdata_YouTube_Extension_Hometowny)c UZend_Gdata_YouTube_Extension_Hobbiesy(b SZend_Gdata_YouTube_Extension_Gendery+a YZend_Gdata_YouTube_Extension_FirstNamey*` WZend_Gdata_YouTube_Extension_Durationy-_ ]Zend_Gdata_YouTube_Extension_Descriptiony+^ YZend_Gdata_YouTube_Extension_CountHinty)] UZend_Gdata_YouTube_Extension_Controly)\ UZend_Gdata_YouTube_Extension_Companyy'[ QZend_Gdata_YouTube_Extension_Booksy%Z MZend_Gdata_YouTube_Extension_Agey)Y UZend_Gdata_YouTube_Extension_AboutMey#X IZend_Gdata_YouTube_ContactFeedy$W KZend_Gdata_YouTube_ContactEntryy#V IZend_Gdata_YouTube_CommentFeedy$U KZend_Gdata_YouTube_CommentEntryy$T KZend_Gdata_YouTube_ActivityFeedy%S MZend_Gdata_YouTube_ActivityEntryyR ;Zend_Gdata_Spreadsheetsy*Q WZend_Gdata_Spreadsheets_WorksheetFeedy   p `6p8mQ:kI${]I-





s
V
3
						c	C	xY+]*uW,]<#oM.{\=,[;xU1                                % MZend_Mail_Storage_Folder_Maildiry  CZend_Mail_Storage_Exceptiony AZend_Mail_Storage_Abstracty ;Zend_Mail_Protocol_Smtpy' QZend_Mail_Protocol_Smtp_Auth_Plainy' QZend_Mail_Protocol_Smtp_Auth_Loginy) UZend_Mail_Protocol_Smtp_Auth_Crammd5y ;Zend_Mail_Protocol_Pop3y ;Zend_Mail_Protocol_Imapy! EZend_Mail_Protocol_Exceptiony  CZend_Mail_Protocol_Abstracty )Zend_Mail_Party 3Zend_Mail_Part_Filey /Zend_Mail_Messagey 9Zend_Mail_Message_Filey 3Zend_Mail_Exceptiony Zend_Logy 9Zend_Log_Writer_Syslogy
 9Zend_Log_Writer_Streamy	 5Zend_Log_Writer_Nully 5Zend_Log_Writer_Mocky 5Zend_Log_Writer_Maily ;Zend_Log_Writer_Firebugy 1Zend_Log_Writer_Dby =Zend_Log_Writer_Abstracty 9Zend_Log_Formatter_Xmly ?Zend_Log_Formatter_Simpley AZend_Log_Formatter_Firebugy  =Zend_Log_Filter_Suppressy =Zend_Log_Filter_Priorityy~ ;Zend_Log_Filter_Messagey} 1Zend_Log_Exceptiony| #Zend_Localey{ -Zend_Locale_Mathyz =Zend_Locale_Math_PhpMathyy AZend_Locale_Math_Exceptionyx 1Zend_Locale_Formatyw 7Zend_Locale_Exceptionyv -Zend_Locale_Datay!u EZend_Locale_Data_Translationyt #Zend_Loaderys =Zend_Loader_PluginLoadery'r QZend_Loader_PluginLoader_Exceptionyq 7Zend_Loader_Exceptionyp 9Zend_Loader_Autoloadery$o KZend_Loader_Autoloader_Resourceyn Zend_Ldapym )Zend_Ldap_Nodeyl 7Zend_Ldap_Node_Schemay#k IZend_Ldap_Node_Schema_OpenLdapy/j aZend_Ldap_Node_Schema_ObjectClass_OpenLdapy6i oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectoryyh AZend_Ldap_Node_Schema_Itemy1g eZend_Ldap_Node_Schema_AttributeType_OpenLdapy8f sZend_Ldap_Node_Schema_AttributeType_ActiveDirectoryy*e WZend_Ldap_Node_Schema_ActiveDirectoryyd 9Zend_Ldap_Node_RootDsey$c KZend_Ldap_Node_RootDse_OpenLdapy&b OZend_Ldap_Node_RootDse_eDirectoryy+a YZend_Ldap_Node_RootDse_ActiveDirectoryy` ?Zend_Ldap_Node_Collectiony$_ KZend_Ldap_Node_ChildrenIteratory^ ;Zend_Ldap_Node_Abstracty] 9Zend_Ldap_Ldif_Encodery\ -Zend_Ldap_Filtery[ ;Zend_Ldap_Filter_StringyZ 3Zend_Ldap_Filter_OryY 5Zend_Ldap_Filter_NotyX 7Zend_Ldap_Filter_MaskyW =Zend_Ldap_Filter_LogicalyV AZend_Ldap_Filter_ExceptionyU 5Zend_Ldap_Filter_AndyT ?Zend_Ldap_Filter_AbstractyS 3Zend_Ldap_ExceptionyR %Zend_Ldap_DnyQ 3Zend_Ldap_ConverteryP 5Zend_Ldap_Collectiony*O WZend_Ldap_Collection_Iterator_DefaultyN 3Zend_Ldap_AttributeyM #Zend_LayoutyL 7Zend_Layout_Exceptiony)K UZend_Layout_Controller_Plugin_Layouty0J cZend_Layout_Controller_Action_Helper_LayoutyI Zend_JsonyH -Zend_Json_ServeryG 5Zend_Json_Server_Smdy!F EZend_Json_Server_Smd_ServiceyE ?Zend_Json_Server_Responsey#D IZend_Json_Server_Response_HttpyC =Zend_Json_Server_Requesty"B GZend_Json_Server_Request_HttpyA AZend_Json_Server_Exceptiony@ 9Zend_Json_Server_Errory? 9Zend_Json_Server_Cachey> )Zend_Json_Expry= 3Zend_Json_Exceptiony< /Zend_Json_Encodery; /Zend_Json_Decodery: 'Zend_InfoCardy-9 ]Zend_InfoCard_Xml_SecurityTokenReferencey8 AZend_InfoCard_Xml_Securityy)7 UZend_InfoCard_Xml_Security_Transformy46 kZend_InfoCard_Xml_Security_Transform_XmlExcC14Ny35 iZend_InfoCard_Xml_Security_Transform_Exceptiony<4 {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignaturey)3 UZend_InfoCard_Xml_Security_Exceptiony2 ?Zend_InfoCard_Xml_KeyInfoy&1 OZend_InfoCard_Xml_KeyInfo_XmlDSigy&0 OZend_InfoCard_Xml_KeyInfo_Defaulty'/ QZend_InfoCard_Xml_KeyInfo_Abstracty . CZend_InfoCard_Xml_Exceptiony#- IZend_InfoCard_Xml_EncryptedKeyy   x  xY:dR4|X;iJ(}\B&




y
T
.
						s	Y	B	0	uK&	[1d<qC,pM.lI*lK/hG+   )Zend_Pdf_Colory 1Zend_Pdf_Color_Rgby 3Zend_Pdf_Color_Htmly =Zend_Pdf_Color_GrayScaley 3Zend_Pdf_Color_Cmyky 'Zend_Pdf_Cmapy AZend_Pdf_Cmap_TrimmedTabley! EZend_Pdf_Cmap_SegmentToDeltay AZend_Pdf_Cmap_ByteEncodingy& OZend_Pdf_Cmap_ByteEncoding_Staticy
 3Zend_Pdf_Annotationy	 =Zend_Pdf_Annotation_Texty =Zend_Pdf_Annotation_Linky' QZend_Pdf_Annotation_FileAttachmenty +Zend_Pdf_Actiony 3Zend_Pdf_Action_URIy ;Zend_Pdf_Action_Unknowny 7Zend_Pdf_Action_Transy 9Zend_Pdf_Action_Thready AZend_Pdf_Action_SubmitFormy  7Zend_Pdf_Action_Soundy  CZend_Pdf_Action_SetOCGStatey~ ?Zend_Pdf_Action_ResetFormy} ?Zend_Pdf_Action_Renditiony| 7Zend_Pdf_Action_Namedy{ 7Zend_Pdf_Action_Movieyz 9Zend_Pdf_Action_Launchyy AZend_Pdf_Action_JavaScriptyx AZend_Pdf_Action_ImportDatayw 5Zend_Pdf_Action_Hideyv 7Zend_Pdf_Action_GoToRyu 7Zend_Pdf_Action_GoToEyt AZend_Pdf_Action_GoTo3DViewys 5Zend_Pdf_Action_GoToyr )Zend_Paginatory*q WZend_Paginator_ScrollingStyle_Slidingy*p WZend_Paginator_ScrollingStyle_Jumpingy*o WZend_Paginator_ScrollingStyle_Elasticy&n OZend_Paginator_ScrollingStyle_Allym =Zend_Paginator_Exceptiony l CZend_Paginator_Adapter_Nully$k KZend_Paginator_Adapter_Iteratory)j UZend_Paginator_Adapter_DbTableSelecty$i KZend_Paginator_Adapter_DbSelecty!h EZend_Paginator_Adapter_Arrayyg #Zend_OpenIdyf 5Zend_OpenId_Providerye ?Zend_OpenId_Provider_Usery&d OZend_OpenId_Provider_User_Sessiony!c EZend_OpenId_Provider_Storagey&b OZend_OpenId_Provider_Storage_Fileya 7Zend_OpenId_Extensiony` AZend_OpenId_Extension_Sregy_ 7Zend_OpenId_Exceptiony^ 5Zend_OpenId_Consumery!] EZend_OpenId_Consumer_Storagey&\ OZend_OpenId_Consumer_Storage_Filey[ +Zend_NavigationyZ 5Zend_Navigation_PageyY =Zend_Navigation_Page_UriyX =Zend_Navigation_Page_MvcyW ?Zend_Navigation_ExceptionyV ?Zend_Navigation_ContaineryU Zend_MimeyT )Zend_Mime_PartyS /Zend_Mime_MessageyR 3Zend_Mime_ExceptionyQ -Zend_Mime_DecodeyP #Zend_MemoryyO /Zend_Memory_ValueyN 3Zend_Memory_ManageryM 7Zend_Memory_ExceptionyL 7Zend_Memory_Containery"K GZend_Memory_Container_Movabley!J EZend_Memory_Container_Lockedy!I EZend_Memory_AccessControlleryH 3Zend_Measure_WeightyG 3Zend_Measure_Volumey%F MZend_Measure_Viscosity_Kinematicy#E IZend_Measure_Viscosity_DynamicyD 3Zend_Measure_TorqueyC /Zend_Measure_TimeyB =Zend_Measure_TemperatureyA 1Zend_Measure_Speedy@ 7Zend_Measure_Pressurey? 1Zend_Measure_Powery> 3Zend_Measure_Numbery= 9Zend_Measure_Lightnessy< 3Zend_Measure_Lengthy; ?Zend_Measure_Illuminationy: 9Zend_Measure_Frequencyy9 1Zend_Measure_Forcey8 =Zend_Measure_Flow_Volumey7 9Zend_Measure_Flow_Moley6 9Zend_Measure_Flow_Massy5 9Zend_Measure_Exceptiony4 3Zend_Measure_Energyy3 5Zend_Measure_Densityy2 5Zend_Measure_Currenty 1 CZend_Measure_Cooking_Weighty 0 CZend_Measure_Cooking_Volumey/ =Zend_Measure_Capacitancey. 3Zend_Measure_Binaryy- /Zend_Measure_Areay, 1Zend_Measure_Angley+ ?Zend_Measure_Accelerationy* 7Zend_Measure_Abstracty) Zend_Maily( =Zend_Mail_Transport_Smtpy!' EZend_Mail_Transport_Sendmaily"& GZend_Mail_Transport_Exceptiony!% EZend_Mail_Transport_Abstracty$ /Zend_Mail_Storagey'# QZend_Mail_Storage_Writable_Maildiry" 9Zend_Mail_Storage_Pop3y! 9Zend_Mail_Storage_Mboxy  ?Zend_Mail_Storage_Maildiry 9Zend_Mail_Storage_Imapy =Zend_Mail_Storage_Foldery" GZend_Mail_Storage_Folder_Mboxy   c  UzU3vU.wP0Y8



|
V
6
					r	X	7	iBQ] e,x<~Z5dD+yQ0     w CZend_Queue_Adapter_Activemqyv -Zend_ProgressBaryu AZend_ProgressBar_Exceptionyt =Zend_ProgressBar_Adaptery$s KZend_ProgressBar_Adapter_JsPushy$r KZend_ProgressBar_Adapter_JsPully'q QZend_ProgressBar_Adapter_Exceptiony%p MZend_ProgressBar_Adapter_Consoleyo Zend_Pdfy!n EZend_Pdf_UpdateInfoContainerym -Zend_Pdf_Traileryl ;Zend_Pdf_Trailer_Keeperyk AZend_Pdf_Trailer_Generatoryj +Zend_Pdf_Targetyi )Zend_Pdf_Styleyh 7Zend_Pdf_StringParseryg /Zend_Pdf_Resourcey#f IZend_Pdf_Resource_ImageFactoryye ;Zend_Pdf_Resource_Imagey!d EZend_Pdf_Resource_Image_Tiffy c CZend_Pdf_Resource_Image_Pngy!b EZend_Pdf_Resource_Image_Jpegya 9Zend_Pdf_Resource_Fonty!` EZend_Pdf_Resource_Font_Type0y"_ GZend_Pdf_Resource_Font_Simpley+^ YZend_Pdf_Resource_Font_Simple_Standardy8] sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsy6\ oZend_Pdf_Resource_Font_Simple_Standard_TimesRomany7[ qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicy;Z yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicy5Y mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldy2X gZend_Pdf_Resource_Font_Simple_Standard_Symboly<W {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliqueyAV Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliquey9U uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldy5T mZend_Pdf_Resource_Font_Simple_Standard_Helveticay:S wZend_Pdf_Resource_Font_Simple_Standard_CourierObliquey>R Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliquey7Q qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldy3P iZend_Pdf_Resource_Font_Simple_Standard_Couriery)O UZend_Pdf_Resource_Font_Simple_Parsedy2N gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypey*M WZend_Pdf_Resource_Font_FontDescriptory%L MZend_Pdf_Resource_Font_Extractedy#K IZend_Pdf_Resource_Font_CidFonty,J [Zend_Pdf_Resource_Font_CidFont_TrueTypey3I iZend_Pdf_RecursivelyIteratableObjectsContaineryH +Zend_Pdf_ParseryG 'Zend_Pdf_PageyF -Zend_Pdf_OutlineyE ;Zend_Pdf_Outline_LoadedyD =Zend_Pdf_Outline_CreatedyC /Zend_Pdf_NameTreeyB )Zend_Pdf_ImageyA 'Zend_Pdf_Fonty @ CZend_Pdf_Filter_Compressiony$? KZend_Pdf_Filter_Compression_Lzwy&> OZend_Pdf_Filter_Compression_Flatey= =Zend_Pdf_Filter_AsciiHexy< ;Zend_Pdf_Filter_Ascii85y"; GZend_Pdf_FileParserDataSourcey): UZend_Pdf_FileParserDataSource_Stringy'9 QZend_Pdf_FileParserDataSource_Filey8 3Zend_Pdf_FileParsery7 ?Zend_Pdf_FileParser_Imagey"6 GZend_Pdf_FileParser_Image_Pngy5 =Zend_Pdf_FileParser_Fonty&4 OZend_Pdf_FileParser_Font_OpenTypey/3 aZend_Pdf_FileParser_Font_OpenType_TrueTypey2 1Zend_Pdf_Exceptiony1 ;Zend_Pdf_ElementFactoryy"0 GZend_Pdf_ElementFactory_Proxyy/ -Zend_Pdf_Elementy. ;Zend_Pdf_Element_Stringy#- IZend_Pdf_Element_String_Binaryy, ;Zend_Pdf_Element_Streamy+ AZend_Pdf_Element_Referencey%* MZend_Pdf_Element_Reference_Tabley') QZend_Pdf_Element_Reference_Contexty( ;Zend_Pdf_Element_Objecty#' IZend_Pdf_Element_Object_Streamy& =Zend_Pdf_Element_Numericy% 7Zend_Pdf_Element_Nully$ 7Zend_Pdf_Element_Namey # CZend_Pdf_Element_Dictionaryy" =Zend_Pdf_Element_Booleany! 9Zend_Pdf_Element_Arrayy  5Zend_Pdf_Destinationy ?Zend_Pdf_Destination_Zoomy! EZend_Pdf_Destination_Unknowny AZend_Pdf_Destination_Namedy' QZend_Pdf_Destination_FitVerticallyy& OZend_Pdf_Destination_FitRectangley) UZend_Pdf_Destination_FitHorizontallyy2 gZend_Pdf_Destination_FitBoundingBoxVerticallyy4 kZend_Pdf_Destination_FitBoundingBoxHorizontallyy( SZend_Pdf_Destination_FitBoundingBoxy =Zend_Pdf_Destination_Fity" GZend_Pdf_Destination_Explicity   [  jL'sX-fA ]<&gO,


r
%			f	|Re5`7W+ f*wO(m7uC                           8R sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzyy+Q YZend_Search_Lucene_Search_Query_Phrasey.P _Zend_Search_Lucene_Search_Query_MultiTermy2O gZend_Search_Lucene_Search_Query_Insignificanty*N WZend_Search_Lucene_Search_Query_Fuzzyy*M WZend_Search_Lucene_Search_Query_Emptyy,L [Zend_Search_Lucene_Search_Query_Booleany2K gZend_Search_Lucene_Search_Highlighter_Defaulty:J wZend_Search_Lucene_Search_BooleanExpressionRecognizeryI =Zend_Search_Lucene_Proxyy%H MZend_Search_Lucene_PriorityQueuey/G aZend_Search_Lucene_Interface_MultiSearchery#F IZend_Search_Lucene_LockManagery$E KZend_Search_Lucene_Index_Writery0D cZend_Search_Lucene_Index_TermsPriorityQueuey&C OZend_Search_Lucene_Index_TermInfoy"B GZend_Search_Lucene_Index_Termy+A YZend_Search_Lucene_Index_SegmentWritery8@ sZend_Search_Lucene_Index_SegmentWriter_StreamWritery:? wZend_Search_Lucene_Index_SegmentWriter_DocumentWritery+> YZend_Search_Lucene_Index_SegmentMergery)= UZend_Search_Lucene_Index_SegmentInfoy'< QZend_Search_Lucene_Index_FieldInfoy(; SZend_Search_Lucene_Index_DocsFiltery.: _Zend_Search_Lucene_Index_DictionaryLoadery!9 EZend_Search_Lucene_FSMActiony8 9Zend_Search_Lucene_FSMy7 =Zend_Search_Lucene_Fieldy!6 EZend_Search_Lucene_Exceptiony 5 CZend_Search_Lucene_Documenty%4 MZend_Search_Lucene_Document_Xlsxy%3 MZend_Search_Lucene_Document_Pptxy(2 SZend_Search_Lucene_Document_OpenXmly%1 MZend_Search_Lucene_Document_Htmly*0 WZend_Search_Lucene_Document_Exceptiony%/ MZend_Search_Lucene_Document_Docxy,. [Zend_Search_Lucene_Analysis_TokenFiltery6- oZend_Search_Lucene_Analysis_TokenFilter_StopWordsy7, qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsy:+ wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8y6* oZend_Search_Lucene_Analysis_TokenFilter_LowerCasey&) OZend_Search_Lucene_Analysis_Tokeny)( UZend_Search_Lucene_Analysis_Analyzery0' cZend_Search_Lucene_Analysis_Analyzer_Commony8& sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumyI% Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitivey5$ mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8yF# Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitivey8" sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumyI! Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitivey5  mZend_Search_Lucene_Analysis_Analyzer_Common_TextyF Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitivey 7Zend_Search_Exceptiony -Zend_Rest_Servery AZend_Rest_Server_Exceptiony +Zend_Rest_Routey 3Zend_Rest_Exceptiony 5Zend_Rest_Controllery -Zend_Rest_Clienty ;Zend_Rest_Client_Resulty& OZend_Rest_Client_Result_Exceptiony AZend_Rest_Client_Exceptiony 'Zend_Registryy =Zend_Reflection_Propertyy ?Zend_Reflection_Parametery 9Zend_Reflection_Methody =Zend_Reflection_Functiony 5Zend_Reflection_Filey ?Zend_Reflection_Extensiony ?Zend_Reflection_Exceptiony =Zend_Reflection_Docblocky! EZend_Reflection_Docblock_Tagy(
 SZend_Reflection_Docblock_Tag_Returny'	 QZend_Reflection_Docblock_Tag_Paramy 7Zend_Reflection_Classy !Zend_Queuey 9Zend_Queue_Stomp_Framey ;Zend_Queue_Stomp_Clienty' QZend_Queue_Stomp_Client_Connectiony 1Zend_Queue_Messagey# IZend_Queue_Message_PlatformJoby  CZend_Queue_Message_Iteratory  5Zend_Queue_Exceptiony( SZend_Queue_Adapter_PlatformJobQueuey~ ;Zend_Queue_Adapter_Nully!} EZend_Queue_Adapter_Memcacheqy| 7Zend_Queue_Adapter_Dby { CZend_Queue_Adapter_Db_Queuey"z GZend_Queue_Adapter_Db_Messageyy =Zend_Queue_Adapter_Arrayy'x QZend_Queue_Adapter_AdapterAbstracty   ^  R$j4}OT#c:


s
K
						d	>	uM'gI,Y.
^-]=~\7V,W-           0 ?Zend_Service_Flickr_Imagey/ 9Zend_Service_Exceptiony. 9Zend_Service_Deliciousy&- OZend_Service_Delicious_SimplePosty$, KZend_Service_Delicious_PostListy + CZend_Service_Delicious_Posty%* MZend_Service_Delicious_Exceptiony ) CZend_Service_Audioscrobblery( 3Zend_Service_Amazony' ;Zend_Service_Amazon_Sqsy&& OZend_Service_Amazon_Sqs_Exceptiony'% QZend_Service_Amazon_SimilarProducty$ 9Zend_Service_Amazon_S3y"# GZend_Service_Amazon_S3_Streamy%" MZend_Service_Amazon_S3_Exceptiony"! GZend_Service_Amazon_ResultSety  ?Zend_Service_Amazon_Queryy! EZend_Service_Amazon_OfferSety ?Zend_Service_Amazon_Offery& OZend_Service_Amazon_ListmaniaListy =Zend_Service_Amazon_Itemy ?Zend_Service_Amazon_Imagey" GZend_Service_Amazon_Exceptiony( SZend_Service_Amazon_EditorialReviewy ;Zend_Service_Amazon_Ec2y+ YZend_Service_Amazon_Ec2_Securitygroupsy% MZend_Service_Amazon_Ec2_Responsey# IZend_Service_Amazon_Ec2_Regiony$ KZend_Service_Amazon_Ec2_Keypairy% MZend_Service_Amazon_Ec2_Instancey- ]Zend_Service_Amazon_Ec2_Instance_Windowsy. _Zend_Service_Amazon_Ec2_Instance_Reservedy" GZend_Service_Amazon_Ec2_Imagey& OZend_Service_Amazon_Ec2_Exceptiony& OZend_Service_Amazon_Ec2_Elasticipy  CZend_Service_Amazon_Ec2_Ebsy' QZend_Service_Amazon_Ec2_CloudWatchy. _Zend_Service_Amazon_Ec2_Availabilityzonesy%
 MZend_Service_Amazon_Ec2_Abstracty'	 QZend_Service_Amazon_CustomerReviewy$ KZend_Service_Amazon_Accessoriesy! EZend_Service_Amazon_Abstracty 5Zend_Service_Akismety 7Zend_Service_Abstracty 9Zend_Server_Reflectiony' QZend_Server_Reflection_ReturnValuey% MZend_Server_Reflection_Prototypey% MZend_Server_Reflection_Parametery   CZend_Server_Reflection_Nodey" GZend_Server_Reflection_Methody$~ KZend_Server_Reflection_Functiony-} ]Zend_Server_Reflection_Function_Abstracty%| MZend_Server_Reflection_Exceptiony!{ EZend_Server_Reflection_Classy!z EZend_Server_Method_Prototypey!y EZend_Server_Method_Parametery"x GZend_Server_Method_Definitiony w CZend_Server_Method_Callbackyv 7Zend_Server_Exceptionyu 9Zend_Server_Definitionyt /Zend_Server_Cacheys 5Zend_Server_Abstractyr 1Zend_Search_Luceney0q cZend_Search_Lucene_TermStreamsPriorityQueuey$p KZend_Search_Lucene_Storage_Filey+o YZend_Search_Lucene_Storage_File_Memoryy/n aZend_Search_Lucene_Storage_File_Filesystemy)m UZend_Search_Lucene_Storage_Directoryy4l kZend_Search_Lucene_Storage_Directory_Filesystemy%k MZend_Search_Lucene_Search_Weighty*j WZend_Search_Lucene_Search_Weight_Termy,i [Zend_Search_Lucene_Search_Weight_Phrasey/h aZend_Search_Lucene_Search_Weight_MultiTermy+g YZend_Search_Lucene_Search_Weight_Emptyy-f ]Zend_Search_Lucene_Search_Weight_Booleany)e UZend_Search_Lucene_Search_Similarityy1d eZend_Search_Lucene_Search_Similarity_Defaulty)c UZend_Search_Lucene_Search_QueryTokeny3b iZend_Search_Lucene_Search_QueryParserExceptiony1a eZend_Search_Lucene_Search_QueryParserContexty*` WZend_Search_Lucene_Search_QueryParsery)_ UZend_Search_Lucene_Search_QueryLexery'^ QZend_Search_Lucene_Search_QueryHity)] UZend_Search_Lucene_Search_QueryEntryy.\ _Zend_Search_Lucene_Search_QueryEntry_Termy2[ gZend_Search_Lucene_Search_QueryEntry_Subqueryy0Z cZend_Search_Lucene_Search_QueryEntry_Phrasey$Y KZend_Search_Lucene_Search_Queryy-X ]Zend_Search_Lucene_Search_Query_Wildcardy)W UZend_Search_Lucene_Search_Query_Termy*V WZend_Search_Lucene_Search_Query_Rangey2U gZend_Search_Lucene_Search_Query_Preprocessingy7T qZend_Search_Lucene_Search_Query_Preprocessing_Termy9S uZend_Search_Lucene_Search_Query_Preprocessing_Phrasey   c  sFyQ)
_@x]3	p?	



g
:

			y	K	oErR+xL}S&iA&vN!aB){H                             & OZend_Soap_Wsdl_Strategy_Compositey0 cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequencey/ aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplexy$ KZend_Soap_Wsdl_Strategy_AnyTypey% MZend_Soap_Wsdl_Strategy_Abstracty =Zend_Soap_Wsdl_Exceptiony -Zend_Soap_Servery AZend_Soap_Server_Exceptiony -Zend_Soap_Clienty
 9Zend_Soap_Client_Localy	 AZend_Soap_Client_Exceptiony ;Zend_Soap_Client_DotNety ;Zend_Soap_Client_Commony 9Zend_Soap_AutoDiscovery% MZend_Soap_AutoDiscover_Exceptiony %Zend_Sessiony) UZend_Session_Validator_HttpUserAgenty$ KZend_Session_Validator_Abstracty' QZend_Session_SaveHandler_Exceptiony%  MZend_Session_SaveHandler_DbTabley 9Zend_Session_Namespacey~ 9Zend_Session_Exceptiony} 7Zend_Session_Abstracty| 1Zend_Service_Yahooy${ KZend_Service_Yahoo_WebResultSety!z EZend_Service_Yahoo_WebResulty&y OZend_Service_Yahoo_VideoResultSety#x IZend_Service_Yahoo_VideoResulty!w EZend_Service_Yahoo_ResultSetyv ?Zend_Service_Yahoo_Resulty)u UZend_Service_Yahoo_PageDataResultSety&t OZend_Service_Yahoo_PageDataResulty%s MZend_Service_Yahoo_NewsResultSety"r GZend_Service_Yahoo_NewsResulty&q OZend_Service_Yahoo_LocalResultSety#p IZend_Service_Yahoo_LocalResulty+o YZend_Service_Yahoo_InlinkDataResultSety(n SZend_Service_Yahoo_InlinkDataResulty&m OZend_Service_Yahoo_ImageResultSety#l IZend_Service_Yahoo_ImageResultyk =Zend_Service_Yahoo_Imageyj 5Zend_Service_Twittery i CZend_Service_Twitter_Searchy#h IZend_Service_Twitter_Exceptionyg ;Zend_Service_Technoratiy#f IZend_Service_Technorati_Weblogy"e GZend_Service_Technorati_Utilsy*d WZend_Service_Technorati_TagsResultSety'c QZend_Service_Technorati_TagsResulty)b UZend_Service_Technorati_TagResultSety&a OZend_Service_Technorati_TagResulty,` [Zend_Service_Technorati_SearchResultSety)_ UZend_Service_Technorati_SearchResulty&^ OZend_Service_Technorati_ResultSety#] IZend_Service_Technorati_Resulty*\ WZend_Service_Technorati_KeyInfoResulty*[ WZend_Service_Technorati_GetInfoResulty&Z OZend_Service_Technorati_Exceptiony1Y eZend_Service_Technorati_DailyCountsResultSety.X _Zend_Service_Technorati_DailyCountsResulty,W [Zend_Service_Technorati_CosmosResultSety)V UZend_Service_Technorati_CosmosResulty+U YZend_Service_Technorati_BlogInfoResulty#T IZend_Service_Technorati_AuthoryS ;Zend_Service_StrikeIrony(R SZend_Service_StrikeIron_ZipCodeInfoy2Q gZend_Service_StrikeIron_USAddressVerificationy-P ]Zend_Service_StrikeIron_SalesUseTaxBasicy&O OZend_Service_StrikeIron_Exceptiony&N OZend_Service_StrikeIron_Decoratory!M EZend_Service_StrikeIron_BaseyL ;Zend_Service_SlideSharey&K OZend_Service_SlideShare_SlideShowy&J OZend_Service_SlideShare_ExceptionyI 1Zend_Service_Simpyy$H KZend_Service_Simpy_WatchlistSety*G WZend_Service_Simpy_WatchlistFilterSety'F QZend_Service_Simpy_WatchlistFiltery!E EZend_Service_Simpy_WatchlistyD ?Zend_Service_Simpy_TagSetyC 9Zend_Service_Simpy_TagyB AZend_Service_Simpy_NoteSetyA ;Zend_Service_Simpy_Notey@ AZend_Service_Simpy_LinkSety!? EZend_Service_Simpy_LinkQueryy> ;Zend_Service_Simpy_Linky= 9Zend_Service_ReCaptchay$< KZend_Service_ReCaptcha_Responsey$; KZend_Service_ReCaptcha_MailHidey.: _Zend_Service_ReCaptcha_MailHide_Exceptiony%9 MZend_Service_ReCaptcha_Exceptiony8 7Zend_Service_Nirvanixy#7 IZend_Service_Nirvanix_Responsey)6 UZend_Service_Nirvanix_Namespace_Imfsy)5 UZend_Service_Nirvanix_Namespace_Basey$4 KZend_Service_Nirvanix_Exceptiony3 3Zend_Service_Flickry"2 GZend_Service_Flickr_ResultSety1 AZend_Service_Flickr_Resulty   Z  d9hL. oB`.xJ




|
]
5
					{	\	A	+	|Rf;Y.Z4V&vGc2i*        -m ]Zend_Tool_Project_Context_Content_Enginey3l iZend_Tool_Project_Context_Content_Engine_Phtmly;k yZend_Tool_Project_Context_Content_Engine_CodeGeneratory0j cZend_Tool_Framework_System_Provider_Versiony0i cZend_Tool_Framework_System_Provider_Phpinfoy1h eZend_Tool_Framework_System_Provider_Manifesty(g SZend_Tool_Framework_System_Manifesty-f ]Zend_Tool_Framework_System_Action_Deletey-e ]Zend_Tool_Framework_System_Action_Createy!d EZend_Tool_Framework_Registryy+c YZend_Tool_Framework_Registry_Exceptiony+b YZend_Tool_Framework_Provider_Signaturey,a [Zend_Tool_Framework_Provider_Repositoryy+` YZend_Tool_Framework_Provider_Exceptiony*_ WZend_Tool_Framework_Provider_Abstracty&^ OZend_Tool_Framework_Metadata_Tooly)] UZend_Tool_Framework_Metadata_Dynamicy'\ QZend_Tool_Framework_Metadata_Basicy,[ [Zend_Tool_Framework_Manifest_Repositoryy+Z YZend_Tool_Framework_Manifest_Exceptiony1Y eZend_Tool_Framework_Loader_IncludePathLoaderyJX Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIteratory(W SZend_Tool_Framework_Loader_Abstracty"V GZend_Tool_Framework_Exceptiony'U QZend_Tool_Framework_Client_Storagey1T eZend_Tool_Framework_Client_Storage_Directoryy(S SZend_Tool_Framework_Client_ResponseyDR 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separatory'Q QZend_Tool_Framework_Client_Requesty9P uZend_Tool_Framework_Client_Interactive_InputResponsey8O sZend_Tool_Framework_Client_Interactive_InputRequesty8N sZend_Tool_Framework_Client_Interactive_InputHandlery)M UZend_Tool_Framework_Client_Exceptiony'L QZend_Tool_Framework_Client_ConsoleyDK 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizery0J cZend_Tool_Framework_Client_Console_Manifesty2I gZend_Tool_Framework_Client_Console_HelpSystemy6H oZend_Tool_Framework_Client_Console_ArgumentParsery&G OZend_Tool_Framework_Client_Configy(F SZend_Tool_Framework_Client_Abstracty*E WZend_Tool_Framework_Action_Repositoryy)D UZend_Tool_Framework_Action_Exceptiony$C KZend_Tool_Framework_Action_BaseyB 'Zend_TimeSyncyA 1Zend_TimeSync_Sntpy@ 9Zend_TimeSync_Protocoly? /Zend_TimeSync_Ntpy> ;Zend_TimeSync_Exceptiony= +Zend_Text_Tabley< 3Zend_Text_Table_Rowy; ?Zend_Text_Table_Exceptiony&: OZend_Text_Table_Decorator_Unicodey$9 KZend_Text_Table_Decorator_Asciiy8 9Zend_Text_Table_Columny7 3Zend_Text_MultiBytey6 -Zend_Text_Figlety5 AZend_Text_Figlet_Exceptiony4 3Zend_Text_Exceptiony&3 OZend_Test_PHPUnit_Db_SimpleTestery,2 [Zend_Test_PHPUnit_Db_Operation_Truncatey*1 WZend_Test_PHPUnit_Db_Operation_Inserty-0 ]Zend_Test_PHPUnit_Db_Operation_DeleteAlly*/ WZend_Test_PHPUnit_Db_Metadata_Genericy#. IZend_Test_PHPUnit_Db_Exceptiony,- [Zend_Test_PHPUnit_Db_DataSet_QueryTabley., _Zend_Test_PHPUnit_Db_DataSet_QueryDataSety0+ cZend_Test_PHPUnit_Db_DataSet_DbTableDataSety)* UZend_Test_PHPUnit_Db_DataSet_DbTabley*) WZend_Test_PHPUnit_Db_DataSet_DbRowsety$( KZend_Test_PHPUnit_Db_Connectiony'' QZend_Test_PHPUnit_DatabaseTestCasey)& UZend_Test_PHPUnit_ControllerTestCasey0% cZend_Test_PHPUnit_Constraint_ResponseHeadery*$ WZend_Test_PHPUnit_Constraint_Redirecty+# YZend_Test_PHPUnit_Constraint_Exceptiony*" WZend_Test_PHPUnit_Constraint_DomQueryy! 7Zend_Test_DbStatementy  3Zend_Test_DbAdaptery /Zend_Tag_ItemListy 'Zend_Tag_Itemy 1Zend_Tag_Exceptiony )Zend_Tag_Cloudy =Zend_Tag_Cloud_Exceptiony! EZend_Tag_Cloud_Decorator_Tagy% MZend_Tag_Cloud_Decorator_HtmlTagy' QZend_Tag_Cloud_Decorator_HtmlCloudy' QZend_Tag_Cloud_Decorator_Exceptiony# IZend_Tag_Cloud_Decorator_Cloudy )Zend_Soap_Wsdly/ aZend_Soap_Wsdl_Strategy_DefaultComplexTypey   H  g5NtAs9q=


i
6
			g	.Mb Ud)z@d$ j)j>                                   )5 UZend_Tool_Project_Provider_Exceptiony*4 WZend_Tool_Project_Provider_Controllery&3 OZend_Tool_Project_Provider_Actiony(2 SZend_Tool_Project_Provider_Abstracty1 ?Zend_Tool_Project_Profiley'0 QZend_Tool_Project_Profile_Resourcey9/ uZend_Tool_Project_Profile_Resource_SearchConstraintsy1. eZend_Tool_Project_Profile_Resource_Containery=- }Zend_Tool_Project_Profile_Iterator_EnabledResourceFiltery5, mZend_Tool_Project_Profile_Iterator_ContextFiltery-+ ]Zend_Tool_Project_Profile_FileParser_Xmly(* SZend_Tool_Project_Profile_Exceptiony ) CZend_Tool_Project_Exceptiony<( {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectoryy0' cZend_Tool_Project_Context_Zf_ViewsDirectoryy6& oZend_Tool_Project_Context_Zf_ViewScriptsDirectoryy0% cZend_Tool_Project_Context_Zf_ViewScriptFiley6$ oZend_Tool_Project_Context_Zf_ViewHelpersDirectoryy6# oZend_Tool_Project_Context_Zf_ViewFiltersDirectoryyA" Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectoryy2! gZend_Tool_Project_Context_Zf_UploadsDirectoryy0  cZend_Tool_Project_Context_Zf_TestsDirectoryy7 qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFiley@ Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectoryy1 eZend_Tool_Project_Context_Zf_TestLibraryFiley6 oZend_Tool_Project_Context_Zf_TestLibraryDirectoryy: wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFiley: wZend_Tool_Project_Context_Zf_TestApplicationDirectoryy@ Zend_Tool_Project_Context_Zf_TestApplicationControllerFileyE Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectoryy> Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFiley4 kZend_Tool_Project_Context_Zf_TemporaryDirectoryy3 iZend_Tool_Project_Context_Zf_SessionsDirectoryy8 sZend_Tool_Project_Context_Zf_SearchIndexesDirectoryy< {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectoryy8 sZend_Tool_Project_Context_Zf_PublicScriptsDirectoryy1 eZend_Tool_Project_Context_Zf_PublicIndexFiley7 qZend_Tool_Project_Context_Zf_PublicImagesDirectoryy1 eZend_Tool_Project_Context_Zf_PublicDirectoryy5 mZend_Tool_Project_Context_Zf_ProjectProviderFiley2 gZend_Tool_Project_Context_Zf_ModulesDirectoryy1 eZend_Tool_Project_Context_Zf_ModuleDirectoryy1 eZend_Tool_Project_Context_Zf_ModelsDirectoryy+
 YZend_Tool_Project_Context_Zf_ModelFiley/	 aZend_Tool_Project_Context_Zf_LogsDirectoryy2 gZend_Tool_Project_Context_Zf_LocalesDirectoryy2 gZend_Tool_Project_Context_Zf_LibraryDirectoryy2 gZend_Tool_Project_Context_Zf_LayoutsDirectoryy. _Zend_Tool_Project_Context_Zf_HtaccessFiley0 cZend_Tool_Project_Context_Zf_FormsDirectoryy* WZend_Tool_Project_Context_Zf_FormFiley- ]Zend_Tool_Project_Context_Zf_DbTableFiley2 gZend_Tool_Project_Context_Zf_DbTableDirectoryy/  aZend_Tool_Project_Context_Zf_DataDirectoryy6 oZend_Tool_Project_Context_Zf_ControllersDirectoryy0~ cZend_Tool_Project_Context_Zf_ControllerFiley2} gZend_Tool_Project_Context_Zf_ConfigsDirectoryy,| [Zend_Tool_Project_Context_Zf_ConfigFiley0{ cZend_Tool_Project_Context_Zf_CacheDirectoryy/z aZend_Tool_Project_Context_Zf_BootstrapFiley6y oZend_Tool_Project_Context_Zf_ApplicationDirectoryy7x qZend_Tool_Project_Context_Zf_ApplicationConfigFiley/w aZend_Tool_Project_Context_Zf_ApisDirectoryy.v _Zend_Tool_Project_Context_Zf_ActionMethody@u Zend_Tool_Project_Context_System_ProjectProvidersDirectoryy8t sZend_Tool_Project_Context_System_ProjectProfileFiley6s oZend_Tool_Project_Context_System_ProjectDirectoryy)r UZend_Tool_Project_Context_Repositoryy.q _Zend_Tool_Project_Context_Filesystem_Filey3p iZend_Tool_Project_Context_Filesystem_Directoryy2o gZend_Tool_Project_Context_Filesystem_Abstracty(n SZend_Tool_Project_Context_Exceptiony   q  Y.[8a<fJ.
tR*




b
6
					Z	2	gE nP6tR+dC$zT/T2~\6c@                  & CZend_View_Helper_HtmlObjecty% ?Zend_View_Helper_HtmlListy$ AZend_View_Helper_HtmlFlashy!# EZend_View_Helper_HtmlElementy" AZend_View_Helper_HeadTitley! AZend_View_Helper_HeadStyley   CZend_View_Helper_HeadScripty ?Zend_View_Helper_HeadMetay ?Zend_View_Helper_HeadLinky" GZend_View_Helper_FormTextareay ?Zend_View_Helper_FormTexty  CZend_View_Helper_FormSubmity  CZend_View_Helper_FormSelecty AZend_View_Helper_FormResety AZend_View_Helper_FormRadioy" GZend_View_Helper_FormPasswordy ?Zend_View_Helper_FormNotey' QZend_View_Helper_FormMultiCheckboxy AZend_View_Helper_FormLabely AZend_View_Helper_FormImagey  CZend_View_Helper_FormHiddeny ?Zend_View_Helper_FormFiley  CZend_View_Helper_FormErrorsy! EZend_View_Helper_FormElementy" GZend_View_Helper_FormCheckboxy  CZend_View_Helper_FormButtony 7Zend_View_Helper_Formy ?Zend_View_Helper_Fieldsety
 =Zend_View_Helper_Doctypey!	 EZend_View_Helper_DeclareVarsy 9Zend_View_Helper_Cycley =Zend_View_Helper_BaseUrly ;Zend_View_Helper_Actiony ?Zend_View_Helper_Abstracty 3Zend_View_Exceptiony 1Zend_View_Abstracty %Zend_Versiony 'Zend_Validatey  AZend_Validate_StringLengthy# IZend_Validate_Sitemap_Priorityy~ ?Zend_Validate_Sitemap_Locy"} GZend_Validate_Sitemap_Lastmody%| MZend_Validate_Sitemap_Changefreqy{ 3Zend_Validate_Regexyz 9Zend_Validate_NotEmptyyy 9Zend_Validate_LessThanyx -Zend_Validate_Ipyw /Zend_Validate_Intyv 7Zend_Validate_InArrayyu ;Zend_Validate_Identicalyt 1Zend_Validate_Ibanys 9Zend_Validate_Hostnameyr /Zend_Validate_Hexyq ?Zend_Validate_GreaterThanyp 3Zend_Validate_Floaty!o EZend_Validate_File_WordCountyn ?Zend_Validate_File_Uploadym ;Zend_Validate_File_Sizeyl ;Zend_Validate_File_Sha1y!k EZend_Validate_File_NotExistsy j CZend_Validate_File_MimeTypeyi 9Zend_Validate_File_Md5yh AZend_Validate_File_IsImagey$g KZend_Validate_File_IsCompressedy!f EZend_Validate_File_ImageSizeye ;Zend_Validate_File_Hashy!d EZend_Validate_File_FilesSizey!c EZend_Validate_File_Extensionyb ?Zend_Validate_File_Existsy'a QZend_Validate_File_ExcludeMimeTypey(` SZend_Validate_File_ExcludeExtensiony_ =Zend_Validate_File_Crc32y^ =Zend_Validate_File_County] ;Zend_Validate_Exceptiony\ AZend_Validate_EmailAddressy[ 5Zend_Validate_Digitsy"Z GZend_Validate_Db_RecordExistsy$Y KZend_Validate_Db_NoRecordExistsyX ?Zend_Validate_Db_AbstractyW 1Zend_Validate_DateyV 3Zend_Validate_CcnumyU 7Zend_Validate_BetweenyT 7Zend_Validate_BarcodeyS AZend_Validate_Barcode_UpcAy R CZend_Validate_Barcode_Ean13yQ 3Zend_Validate_AlphayP 3Zend_Validate_AlnumyO 9Zend_Validate_AbstractyN Zend_UriyM 'Zend_Uri_HttpyL 1Zend_Uri_ExceptionyK )Zend_TranslateyJ 7Zend_Translate_PluralyI =Zend_Translate_ExceptionyH 9Zend_Translate_Adaptery!G EZend_Translate_Adapter_XmlTmy!F EZend_Translate_Adapter_XliffyE AZend_Translate_Adapter_TmxyD AZend_Translate_Adapter_TbxyC ?Zend_Translate_Adapter_QtyB AZend_Translate_Adapter_Iniy#A IZend_Translate_Adapter_Gettexty@ AZend_Translate_Adapter_Csvy!? EZend_Translate_Adapter_Arrayy$> KZend_Tool_Project_Provider_Viewy$= KZend_Tool_Project_Provider_Testy/< aZend_Tool_Project_Provider_ProjectProvidery'; QZend_Tool_Project_Provider_Projecty': QZend_Tool_Project_Provider_Profiley&9 OZend_Tool_Project_Provider_Moduley%8 MZend_Tool_Project_Provider_Modely(7 SZend_Tool_Project_Provider_Manifesty$6 KZend_Tool_Project_Provider_Formy   j  sS#qM"y@qLgG



t
J
!					c	I	(	eD"Z7pO5 uR.`9uN,
x`=o>     , [Zend_Amf_Value_Messaging_CommandMessagez* WZend_Amf_Value_Messaging_AsyncMessagez- ]Zend_Amf_Value_Messaging_ArrayCollectionz0 cZend_Amf_Value_Messaging_AcknowledgeMessagez- ]Zend_Amf_Value_Messaging_AbstractMessagez! EZend_Amf_Value_MessageHeaderz
 AZend_Amf_Value_MessageBodyz	 =Zend_Amf_Value_ByteArrayz AZend_Amf_Util_BinaryStreamz +Zend_Amf_Serverz ?Zend_Amf_Server_Exceptionz /Zend_Amf_Responsez 9Zend_Amf_Response_Httpz -Zend_Amf_Requestz 7Zend_Amf_Request_Httpz ?Zend_Amf_Parse_TypeLoaderz  ?Zend_Amf_Parse_Serializerz# IZend_Amf_Parse_Resource_Streamz(~ SZend_Amf_Parse_Resource_MysqlResultz)} UZend_Amf_Parse_Resource_MysqliResultz | CZend_Amf_Parse_OutputStreamz{ AZend_Amf_Parse_InputStreamz z CZend_Amf_Parse_Deserializerz#y IZend_Amf_Parse_Amf3_Serializerz%x MZend_Amf_Parse_Amf3_Deserializerz#w IZend_Amf_Parse_Amf0_Serializerz%v MZend_Amf_Parse_Amf0_Deserializerzu 1Zend_Amf_Exceptionzt 1Zend_Amf_Constantszs 9Zend_Amf_Auth_Abstractz r CZend_Amf_Adobe_Introspectorzq AZend_Amf_Adobe_DbInspectorzp 3Zend_Amf_Adobe_Authzo Zend_Aclzn 'Zend_Acl_Rolezm 9Zend_Acl_Role_Registryz%l MZend_Acl_Role_Registry_Exceptionzk /Zend_Acl_Resourcezj 1Zend_Acl_Exceptionzi /Zend_XmlRpc_Valueyh =Zend_XmlRpc_Value_Structyg =Zend_XmlRpc_Value_Stringyf =Zend_XmlRpc_Value_Scalarye 7Zend_XmlRpc_Value_Nilyd ?Zend_XmlRpc_Value_Integery c CZend_XmlRpc_Value_Exceptionyb =Zend_XmlRpc_Value_Doubleya AZend_XmlRpc_Value_DateTimey!` EZend_XmlRpc_Value_Collectiony_ ?Zend_XmlRpc_Value_Booleany!^ EZend_XmlRpc_Value_BigIntegery] =Zend_XmlRpc_Value_Base64y\ ;Zend_XmlRpc_Value_Arrayy[ 1Zend_XmlRpc_ServeryZ ?Zend_XmlRpc_Server_SystemyY =Zend_XmlRpc_Server_Faulty!X EZend_XmlRpc_Server_ExceptionyW =Zend_XmlRpc_Server_CacheyV 5Zend_XmlRpc_ResponseyU ?Zend_XmlRpc_Response_HttpyT 3Zend_XmlRpc_RequestyS ?Zend_XmlRpc_Request_StdinyR =Zend_XmlRpc_Request_HttpyQ /Zend_XmlRpc_FaultyP 7Zend_XmlRpc_ExceptionyO 1Zend_XmlRpc_Clienty#N IZend_XmlRpc_Client_ServerProxyy+M YZend_XmlRpc_Client_ServerIntrospectiony+L YZend_XmlRpc_Client_IntrospectExceptiony%K MZend_XmlRpc_Client_HttpExceptiony&J OZend_XmlRpc_Client_FaultExceptiony!I EZend_XmlRpc_Client_Exceptiony&H OZend_Wildfire_Protocol_JsonStreamy!G EZend_Wildfire_Plugin_FirePhpy.F _Zend_Wildfire_Plugin_FirePhp_TableMessagey)E UZend_Wildfire_Plugin_FirePhp_MessageyD ;Zend_Wildfire_Exceptiony&C OZend_Wildfire_Channel_HttpHeadersyB Zend_ViewyA -Zend_View_Streamy@ 5Zend_View_Helper_Urly? AZend_View_Helper_Translatey> AZend_View_Helper_ServerUrly)= UZend_View_Helper_RenderToPlaceholdery!< EZend_View_Helper_Placeholdery*; WZend_View_Helper_Placeholder_Registryy4: kZend_View_Helper_Placeholder_Registry_Exceptiony+9 YZend_View_Helper_Placeholder_Containery68 oZend_View_Helper_Placeholder_Container_Standaloney57 mZend_View_Helper_Placeholder_Container_Exceptiony46 kZend_View_Helper_Placeholder_Container_Abstracty!5 EZend_View_Helper_PartialLoopy4 =Zend_View_Helper_Partialy'3 QZend_View_Helper_Partial_Exceptiony'2 QZend_View_Helper_PaginationControly 1 CZend_View_Helper_Navigationy(0 SZend_View_Helper_Navigation_Sitemapy%/ MZend_View_Helper_Navigation_Menuy&. OZend_View_Helper_Navigation_Linksy/- aZend_View_Helper_Navigation_HelperAbstracty,, [Zend_View_Helper_Navigation_Breadcrumbsy+ ;Zend_View_Helper_Layouty* 7Zend_View_Helper_Jsony") GZend_View_Helper_InlineScripty#( IZend_View_Helper_HtmlQuicktimey' ?Zend_View_Helper_HtmlPagey   Y  nL"vW(sP$ h:{V9



p
F
			t	G	W$jJ ~O&J&W>l%WyH                                                 -V ]Zend_Tool_Framework_Provider_Pretendablez+U YZend_Tool_Framework_Provider_Interfacez.T _Zend_Tool_Framework_Provider_Interactablez;S yZend_Tool_Framework_Provider_DocblockManifestInterfacez+R YZend_Tool_Framework_Metadata_Interfacez6Q oZend_Tool_Framework_Manifest_ProviderManifestablez6P oZend_Tool_Framework_Manifest_MetadataManifestablez+O YZend_Tool_Framework_Manifest_Interfacez+N YZend_Tool_Framework_Manifest_Indexablez4M kZend_Tool_Framework_Manifest_ActionManifestablez8L sZend_Tool_Framework_Client_Storage_AdapterInterfacezDK 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interfacez;J yZend_Tool_Framework_Client_Interactive_OutputInterfacez:I wZend_Tool_Framework_Client_Interactive_InputInterfacez)H UZend_Tool_Framework_Action_Interfacez(G SZend_Text_Table_Decorator_InterfacezF /Zend_Tag_Taggablez&E OZend_Soap_Wsdl_Strategy_Interfacez%D MZend_Session_Validator_Interfacez'C QZend_Session_SaveHandler_InterfacezB 7Zend_Server_Interfacez4A kZend_Search_Lucene_Search_Highlighter_Interfacez!@ EZend_Search_Lucene_Interfacez3? iZend_Search_Lucene_Index_TermsStream_Interfacez$> KZend_Queue_Stomp_FrameInterfacez0= cZend_Queue_Stomp_Client_ConnectionInterfacez(< SZend_Queue_Adapter_AdapterInterfacez; ?Zend_Pdf_Filter_Interfacez&: OZend_Pdf_ElementFactory_Interfacez,9 [Zend_Paginator_ScrollingStyle_Interfacez$8 KZend_Paginator_AdapterAggregatez%7 MZend_Paginator_Adapter_Interfacez$6 KZend_Memory_Container_Interfacez)5 UZend_Mail_Storage_Writable_Interfacez'4 QZend_Mail_Storage_Folder_Interfacez3 =Zend_Mail_Part_Interfacez 2 CZend_Mail_Message_Interfacez!1 EZend_Log_Formatter_Interfacez0 ?Zend_Log_Filter_Interfacez'/ QZend_Loader_PluginLoader_Interfacez%. MZend_Loader_Autoloader_Interfacez0- cZend_Ldap_Node_Schema_ObjectClass_Interfacez2, gZend_Ldap_Node_Schema_AttributeType_Interfacez,+ [Zend_Ldap_Collection_Iterator_Interfacez3* iZend_InfoCard_Xml_Security_Transform_Interfacez() SZend_InfoCard_Xml_KeyInfo_Interfacez(( SZend_InfoCard_Xml_Element_Interfacez*' WZend_InfoCard_Xml_Assertion_Interfacez-& ]Zend_InfoCard_Cipher_Symmetric_Interfacez7% qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interfacez7$ qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interfacez+# YZend_InfoCard_Cipher_Pki_Rsa_Interfacez'" QZend_InfoCard_Cipher_Pki_Interfacez$! KZend_InfoCard_Adapter_Interfacez'  QZend_Http_Client_Adapter_Interfacez AZend_Gdata_App_MediaSourcez. _Zend_Form_Decorator_Marker_File_Interfacez" GZend_Form_Decorator_Interfacez 7Zend_Filter_Interfacez" GZend_Filter_Encrypt_Interfacez# IZend_Feed_Reader_FeedInterfacez$ KZend_Feed_Reader_EntryInterfacez  CZend_Feed_Builder_Interfacez  CZend_Db_Statement_Interfacez) UZend_Crypt_Math_BigInteger_Interfacez+ YZend_Controller_Router_Route_Interfacez% MZend_Controller_Router_Interfacez) UZend_Controller_Dispatcher_Interfacez% MZend_Controller_Action_Interfacez 5Zend_Captcha_Adapterz! EZend_Cache_Backend_Interfacez) UZend_Cache_Backend_ExtendedInterfacez  CZend_Auth_Storage_Interfacez  CZend_Auth_Adapter_Interfacez. _Zend_Auth_Adapter_Http_Resolver_Interfacez' QZend_Application_Resource_Resourcez4
 kZend_Application_Bootstrap_ResourceBootstrapperz,	 [Zend_Application_Bootstrap_Bootstrapperz ;Zend_Acl_Role_Interfacez  CZend_Acl_Resource_Interfacez ?Zend_Acl_Assert_Interfacez# IZend_Wildfire_Plugin_Interfacey$ KZend_Wildfire_Channel_Interfacey 3Zend_View_Interfacey' QZend_View_Helper_Navigation_Helpery AZend_View_Helper_Interfacey  ;Zend_Validate_Interfacey3 iZend_Tool_Project_Profile_FileParser_Interfacey:~ wZend_Tool_Project_Context_System_TopLevelRestrictabley   e RxS'yLsZ8uR3




o
]
>
					p	H	{Y8iM2d?zR)J!mN/}Nw7                                                 0u cZend_Controller_Action_Helper_ContextSwitchz<t {Zend_Controller_Action_Helper_AutoCompleteScriptaculousz3s iZend_Controller_Action_Helper_AutoCompleteDojoz8r sZend_Controller_Action_Helper_AutoComplete_Abstractz.q _Zend_Controller_Action_Helper_AjaxContextz.p _Zend_Controller_Action_Helper_ActionStackz+o YZend_Controller_Action_Helper_Abstractz%n MZend_Controller_Action_Exceptionzm 3Zend_Console_Getoptz"l GZend_Console_Getopt_Exceptionzk #Zend_Configzj +Zend_Config_Xmlzi 1Zend_Config_Writerzh 9Zend_Config_Writer_Xmlzg 9Zend_Config_Writer_Inizf =Zend_Config_Writer_Arrayze +Zend_Config_Inizd 7Zend_Config_Exceptionz$c KZend_CodeGenerator_Php_Propertyz1b eZend_CodeGenerator_Php_Property_DefaultValuez%a MZend_CodeGenerator_Php_Parameterz2` gZend_CodeGenerator_Php_Parameter_DefaultValuez"_ GZend_CodeGenerator_Php_Methodz,^ [Zend_CodeGenerator_Php_Member_Containerz+] YZend_CodeGenerator_Php_Member_Abstractz \ CZend_CodeGenerator_Php_Filez%[ MZend_CodeGenerator_Php_Exceptionz$Z KZend_CodeGenerator_Php_Docblockz(Y SZend_CodeGenerator_Php_Docblock_Tagz/X aZend_CodeGenerator_Php_Docblock_Tag_Returnz.W _Zend_CodeGenerator_Php_Docblock_Tag_Paramz0V cZend_CodeGenerator_Php_Docblock_Tag_Licensez!U EZend_CodeGenerator_Php_Classz T CZend_CodeGenerator_Php_Bodyz$S KZend_CodeGenerator_Php_Abstractz!R EZend_CodeGenerator_Exceptionz Q CZend_CodeGenerator_AbstractzP /Zend_Captcha_WordzO 9Zend_Captcha_ReCaptchazN 1Zend_Captcha_ImagezM 3Zend_Captcha_FigletzL 9Zend_Captcha_ExceptionzK /Zend_Captcha_DumbzJ /Zend_Captcha_BasezI !Zend_CachezH =Zend_Cache_Frontend_PagezG AZend_Cache_Frontend_Outputz!F EZend_Cache_Frontend_FunctionzE =Zend_Cache_Frontend_FilezD ?Zend_Cache_Frontend_ClasszC 5Zend_Cache_ExceptionzB +Zend_Cache_CorezA 1Zend_Cache_Backendz"@ GZend_Cache_Backend_ZendServerz(? SZend_Cache_Backend_ZendServer_ShMemz'> QZend_Cache_Backend_ZendServer_Diskz$= KZend_Cache_Backend_ZendPlatformz< ?Zend_Cache_Backend_Xcachez!; EZend_Cache_Backend_TwoLevelsz: ;Zend_Cache_Backend_Testz9 ?Zend_Cache_Backend_Sqlitez!8 EZend_Cache_Backend_Memcachedz7 ;Zend_Cache_Backend_Filez6 9Zend_Cache_Backend_Apcz5 Zend_Authz4 ?Zend_Auth_Storage_Sessionz$3 KZend_Auth_Storage_NonPersistentz 2 CZend_Auth_Storage_Exceptionz1 -Zend_Auth_Resultz0 3Zend_Auth_Exceptionz/ =Zend_Auth_Adapter_OpenIdz. 9Zend_Auth_Adapter_Ldapz- AZend_Auth_Adapter_InfoCardz, 9Zend_Auth_Adapter_Httpz)+ UZend_Auth_Adapter_Http_Resolver_Filez.* _Zend_Auth_Adapter_Http_Resolver_Exceptionz ) CZend_Auth_Adapter_Exceptionz( =Zend_Auth_Adapter_Digestz' ?Zend_Auth_Adapter_DbTablez& -Zend_Applicationz#% IZend_Application_Resource_Viewz($ SZend_Application_Resource_Translatez&# OZend_Application_Resource_Sessionz%" MZend_Application_Resource_Routerz/! aZend_Application_Resource_ResourceAbstractz)  UZend_Application_Resource_Navigationz& OZend_Application_Resource_Modulesz% MZend_Application_Resource_Localez% MZend_Application_Resource_Layoutz. _Zend_Application_Resource_Frontcontrollerz( SZend_Application_Resource_Exceptionz! EZend_Application_Resource_Dbz& OZend_Application_Module_Bootstrapz' QZend_Application_Module_Autoloaderz AZend_Application_Exceptionz) UZend_Application_Bootstrap_Exceptionz1 eZend_Application_Bootstrap_BootstrapAbstractz) UZend_Application_Bootstrap_Bootstrapz ?Zend_Amf_Value_TraitsInfoz- ]Zend_Amf_Value_Messaging_RemotingMessagez* WZend_Amf_Value_Messaging_ErrorMessagez   k  oEa4uO#|W*c5



d
6

				c	B	%	mJ(fP7g>jJ(xY?*vN0tR0lL)              ` /Zend_Db_Table_Rowz _ CZend_Db_Table_Row_Exceptionz^ AZend_Db_Table_Row_Abstractz] ;Zend_Db_Table_Exceptionz\ =Zend_Db_Table_Definitionz[ 9Zend_Db_Table_AbstractzZ /Zend_Db_StatementzY =Zend_Db_Statement_Sqlsrvz'X QZend_Db_Statement_Sqlsrv_ExceptionzW 7Zend_Db_Statement_PdozV ?Zend_Db_Statement_Pdo_OcizU ?Zend_Db_Statement_Pdo_IbmzT =Zend_Db_Statement_Oraclez'S QZend_Db_Statement_Oracle_ExceptionzR =Zend_Db_Statement_Mysqliz'Q QZend_Db_Statement_Mysqli_Exceptionz P CZend_Db_Statement_ExceptionzO 7Zend_Db_Statement_Db2z$N KZend_Db_Statement_Db2_ExceptionzM )Zend_Db_SelectzL =Zend_Db_Select_ExceptionzK -Zend_Db_ProfilerzJ 9Zend_Db_Profiler_QueryzI =Zend_Db_Profiler_FirebugzH AZend_Db_Profiler_ExceptionzG %Zend_Db_ExprzF /Zend_Db_ExceptionzE 9Zend_Db_Adapter_Sqlsrvz%D MZend_Db_Adapter_Sqlsrv_ExceptionzC AZend_Db_Adapter_Pdo_SqlitezB ?Zend_Db_Adapter_Pdo_PgsqlzA ;Zend_Db_Adapter_Pdo_Ociz@ ?Zend_Db_Adapter_Pdo_Mysqlz? ?Zend_Db_Adapter_Pdo_Mssqlz> ;Zend_Db_Adapter_Pdo_Ibmz = CZend_Db_Adapter_Pdo_Ibm_Idsz < CZend_Db_Adapter_Pdo_Ibm_Db2z!; EZend_Db_Adapter_Pdo_Abstractz: 9Zend_Db_Adapter_Oraclez%9 MZend_Db_Adapter_Oracle_Exceptionz8 9Zend_Db_Adapter_Mysqliz%7 MZend_Db_Adapter_Mysqli_Exceptionz6 ?Zend_Db_Adapter_Exceptionz5 3Zend_Db_Adapter_Db2z"4 GZend_Db_Adapter_Db2_Exceptionz3 =Zend_Db_Adapter_Abstractz2 Zend_Datez1 3Zend_Date_Exceptionz0 5Zend_Date_DateObjectz/ -Zend_Date_Citiesz. 'Zend_Currencyz- ;Zend_Currency_Exceptionz, !Zend_Cryptz+ )Zend_Crypt_Rsaz* 1Zend_Crypt_Rsa_Keyz) ?Zend_Crypt_Rsa_Key_Publicz( AZend_Crypt_Rsa_Key_Privatez' +Zend_Crypt_Mathz& ?Zend_Crypt_Math_Exceptionz% AZend_Crypt_Math_BigIntegerz#$ IZend_Crypt_Math_BigInteger_Gmpz)# UZend_Crypt_Math_BigInteger_Exceptionz&" OZend_Crypt_Math_BigInteger_Bcmathz! +Zend_Crypt_Hmacz  ?Zend_Crypt_Hmac_Exceptionz 5Zend_Crypt_Exceptionz =Zend_Crypt_DiffieHellmanz' QZend_Crypt_DiffieHellman_Exceptionz! EZend_Controller_Router_Routez( SZend_Controller_Router_Route_Staticz' QZend_Controller_Router_Route_Regexz( SZend_Controller_Router_Route_Modulez* WZend_Controller_Router_Route_Hostnamez' QZend_Controller_Router_Route_Chainz* WZend_Controller_Router_Route_Abstractz# IZend_Controller_Router_Rewritez% MZend_Controller_Router_Exceptionz$ KZend_Controller_Router_Abstractz* WZend_Controller_Response_HttpTestCasez" GZend_Controller_Response_Httpz' QZend_Controller_Response_Exceptionz! EZend_Controller_Response_Cliz& OZend_Controller_Response_Abstractz# IZend_Controller_Request_Simplez) UZend_Controller_Request_HttpTestCasez! EZend_Controller_Request_Httpz&
 OZend_Controller_Request_Exceptionz&	 OZend_Controller_Request_Apache404z% MZend_Controller_Request_Abstractz& OZend_Controller_Plugin_PutHandlerz( SZend_Controller_Plugin_ErrorHandlerz" GZend_Controller_Plugin_Brokerz' QZend_Controller_Plugin_ActionStackz$ KZend_Controller_Plugin_Abstractz 7Zend_Controller_Frontz ?Zend_Controller_Exceptionz(  SZend_Controller_Dispatcher_Standardz) UZend_Controller_Dispatcher_Exceptionz(~ SZend_Controller_Dispatcher_Abstractz} 9Zend_Controller_Actionz(| SZend_Controller_Action_HelperBrokerz6{ oZend_Controller_Action_HelperBroker_PriorityStackz/z aZend_Controller_Action_Helper_ViewRendererz&y OZend_Controller_Action_Helper_Urlz-x ]Zend_Controller_Action_Helper_Redirectorz'w QZend_Controller_Action_Helper_Jsonz1v eZend_Controller_Action_Helper_FlashMessengerz   e  oR<,f5OW(Y)



u
G
!				{	J	h:oEzU'}O%yN#|O="c?hL(             #E IZend_Feed_Reader_EntryAbstractzD AZend_Feed_Reader_Entry_Rssz C CZend_Feed_Reader_Entry_AtomzB 3Zend_Feed_ExceptionzA 3Zend_Feed_Entry_Rssz@ 5Zend_Feed_Entry_Atomz? =Zend_Feed_Entry_Abstractz> /Zend_Feed_Elementz= /Zend_Feed_Builderz< =Zend_Feed_Builder_Headerz$; KZend_Feed_Builder_Header_Itunesz : CZend_Feed_Builder_Exceptionz9 ;Zend_Feed_Builder_Entryz8 )Zend_Feed_Atomz7 1Zend_Feed_Abstractz6 )Zend_Exceptionz5 )Zend_Dom_Queryz4 7Zend_Dom_Query_Resultz3 =Zend_Dom_Query_Css2Xpathz2 1Zend_Dom_Exceptionz1 Zend_Dojoz)0 UZend_Dojo_View_Helper_VerticalSliderz,/ [Zend_Dojo_View_Helper_ValidationTextBoxz&. OZend_Dojo_View_Helper_TimeTextBoxz"- GZend_Dojo_View_Helper_TextBoxz#, IZend_Dojo_View_Helper_Textareaz'+ QZend_Dojo_View_Helper_TabContainerz'* QZend_Dojo_View_Helper_SubmitButtonz)) UZend_Dojo_View_Helper_StackContainerz)( UZend_Dojo_View_Helper_SplitContainerz!' EZend_Dojo_View_Helper_Sliderz)& UZend_Dojo_View_Helper_SimpleTextareaz&% OZend_Dojo_View_Helper_RadioButtonz*$ WZend_Dojo_View_Helper_PasswordTextBoxz(# SZend_Dojo_View_Helper_NumberTextBoxz(" SZend_Dojo_View_Helper_NumberSpinnerz+! YZend_Dojo_View_Helper_HorizontalSliderz  AZend_Dojo_View_Helper_Formz* WZend_Dojo_View_Helper_FilteringSelectz! EZend_Dojo_View_Helper_Editorz AZend_Dojo_View_Helper_Dojoz) UZend_Dojo_View_Helper_Dojo_Containerz) UZend_Dojo_View_Helper_DijitContainerz  CZend_Dojo_View_Helper_Dijitz& OZend_Dojo_View_Helper_DateTextBoxz& OZend_Dojo_View_Helper_CustomDijitz* WZend_Dojo_View_Helper_CurrencyTextBoxz& OZend_Dojo_View_Helper_ContentPanez# IZend_Dojo_View_Helper_ComboBoxz# IZend_Dojo_View_Helper_CheckBoxz! EZend_Dojo_View_Helper_Buttonz* WZend_Dojo_View_Helper_BorderContainerz( SZend_Dojo_View_Helper_AccordionPanez- ]Zend_Dojo_View_Helper_AccordionContainerz =Zend_Dojo_View_Exceptionz )Zend_Dojo_Formz 9Zend_Dojo_Form_SubFormz* WZend_Dojo_Form_Element_VerticalSliderz- ]Zend_Dojo_Form_Element_ValidationTextBoxz'
 QZend_Dojo_Form_Element_TimeTextBoxz#	 IZend_Dojo_Form_Element_TextBoxz$ KZend_Dojo_Form_Element_Textareaz( SZend_Dojo_Form_Element_SubmitButtonz" GZend_Dojo_Form_Element_Sliderz* WZend_Dojo_Form_Element_SimpleTextareaz' QZend_Dojo_Form_Element_RadioButtonz+ YZend_Dojo_Form_Element_PasswordTextBoxz) UZend_Dojo_Form_Element_NumberTextBoxz) UZend_Dojo_Form_Element_NumberSpinnerz,  [Zend_Dojo_Form_Element_HorizontalSliderz+ YZend_Dojo_Form_Element_FilteringSelectz"~ GZend_Dojo_Form_Element_Editorz&} OZend_Dojo_Form_Element_DijitMultiz!| EZend_Dojo_Form_Element_Dijitz'{ QZend_Dojo_Form_Element_DateTextBoxz+z YZend_Dojo_Form_Element_CurrencyTextBoxz$y KZend_Dojo_Form_Element_ComboBoxz$x KZend_Dojo_Form_Element_CheckBoxz"w GZend_Dojo_Form_Element_Buttonz v CZend_Dojo_Form_DisplayGroupz*u WZend_Dojo_Form_Decorator_TabContainerz,t [Zend_Dojo_Form_Decorator_StackContainerz,s [Zend_Dojo_Form_Decorator_SplitContainerz'r QZend_Dojo_Form_Decorator_DijitFormz*q WZend_Dojo_Form_Decorator_DijitElementz,p [Zend_Dojo_Form_Decorator_DijitContainerz)o UZend_Dojo_Form_Decorator_ContentPanez-n ]Zend_Dojo_Form_Decorator_BorderContainerz+m YZend_Dojo_Form_Decorator_AccordionPanez0l cZend_Dojo_Form_Decorator_AccordionContainerzk 3Zend_Dojo_Exceptionzj )Zend_Dojo_Datazi 5Zend_Dojo_BuildLayerzh !Zend_Debugzg Zend_Dbzf 'Zend_Db_Tableze 5Zend_Db_Table_Selectz#d IZend_Db_Table_Select_Exceptionzc 5Zend_Db_Table_Rowsetz#b IZend_Db_Table_Rowset_Exceptionz"a GZend_Db_Table_Rowset_Abstractz   h  t;k;
wGkUC{^A%





q
P
/
					p	X	.	dB$uL"qBb>_>Z6c? xR/                        - ;Zend_Form_Element_Resetz, ;Zend_Form_Element_Radioz+ AZend_Form_Element_Passwordz"* GZend_Form_Element_Multiselectz$) KZend_Form_Element_MultiCheckboxz( ;Zend_Form_Element_Multiz' ;Zend_Form_Element_Imagez& =Zend_Form_Element_Hiddenz% 9Zend_Form_Element_Hashz$ 9Zend_Form_Element_Filez # CZend_Form_Element_Exceptionz" AZend_Form_Element_Checkboxz! ?Zend_Form_Element_Captchaz  =Zend_Form_Element_Buttonz 9Zend_Form_DisplayGroupz# IZend_Form_Decorator_ViewScriptz# IZend_Form_Decorator_ViewHelperz  CZend_Form_Decorator_Tooltipz( SZend_Form_Decorator_PrepareElementsz ?Zend_Form_Decorator_Labelz ?Zend_Form_Decorator_Imagez  CZend_Form_Decorator_HtmlTagz# IZend_Form_Decorator_FormErrorsz% MZend_Form_Decorator_FormElementsz =Zend_Form_Decorator_Formz =Zend_Form_Decorator_Filez! EZend_Form_Decorator_Fieldsetz" GZend_Form_Decorator_Exceptionz AZend_Form_Decorator_Errorsz$ KZend_Form_Decorator_DtDdWrapperz$ KZend_Form_Decorator_Descriptionz  CZend_Form_Decorator_Captchaz% MZend_Form_Decorator_Captcha_Wordz! EZend_Form_Decorator_Callbackz! EZend_Form_Decorator_Abstractz
 #Zend_Filterz+	 YZend_Filter_Word_UnderscoreToSeparatorz& OZend_Filter_Word_UnderscoreToDashz+ YZend_Filter_Word_UnderscoreToCamelCasez* WZend_Filter_Word_SeparatorToSeparatorz% MZend_Filter_Word_SeparatorToDashz* WZend_Filter_Word_SeparatorToCamelCasez( SZend_Filter_Word_Separator_Abstractz& OZend_Filter_Word_DashToUnderscorez% MZend_Filter_Word_DashToSeparatorz%  MZend_Filter_Word_DashToCamelCasez+ YZend_Filter_Word_CamelCaseToUnderscorez*~ WZend_Filter_Word_CamelCaseToSeparatorz%} MZend_Filter_Word_CamelCaseToDashz| 7Zend_Filter_StripTagsz{ ?Zend_Filter_StripNewlineszz 9Zend_Filter_StringTrimzy ?Zend_Filter_StringToUpperzx ?Zend_Filter_StringToLowerzw 5Zend_Filter_RealPathzv ;Zend_Filter_PregReplacez&u OZend_Filter_NormalizedToLocalizedz&t OZend_Filter_LocalizedToNormalizedzs +Zend_Filter_Intzr /Zend_Filter_Inputzq 7Zend_Filter_Inflectorzp =Zend_Filter_HtmlEntitieszo AZend_Filter_File_UpperCasezn ;Zend_Filter_File_Renamezm AZend_Filter_File_LowerCasezl =Zend_Filter_File_Encryptzk =Zend_Filter_File_Decryptzj 7Zend_Filter_Exceptionzi 3Zend_Filter_Encryptz h CZend_Filter_Encrypt_Opensslzg AZend_Filter_Encrypt_Mcryptzf +Zend_Filter_Dirze 1Zend_Filter_Digitszd 3Zend_Filter_Decryptzc 5Zend_Filter_Callbackzb 5Zend_Filter_BaseNameza /Zend_Filter_Alphaz` /Zend_Filter_Alnumz_ 1Zend_File_Transferz!^ EZend_File_Transfer_Exceptionz$] KZend_File_Transfer_Adapter_Httpz(\ SZend_File_Transfer_Adapter_Abstractz[ Zend_FeedzZ 'Zend_Feed_RsszY -Zend_Feed_ReaderzX =Zend_Feed_Reader_FeedSetz"W GZend_Feed_Reader_FeedAbstractzV ?Zend_Feed_Reader_Feed_RsszU AZend_Feed_Reader_Feed_Atomz3T iZend_Feed_Reader_Extension_WellFormedWeb_Entryz,S [Zend_Feed_Reader_Extension_Thread_Entryz0R cZend_Feed_Reader_Extension_Syndication_Feedz+Q YZend_Feed_Reader_Extension_Slash_Entryz,P [Zend_Feed_Reader_Extension_Podcast_Feedz-O ]Zend_Feed_Reader_Extension_Podcast_Entryz,N [Zend_Feed_Reader_Extension_FeedAbstractz-M ]Zend_Feed_Reader_Extension_EntryAbstractz/L aZend_Feed_Reader_Extension_DublinCore_Feedz0K cZend_Feed_Reader_Extension_DublinCore_Entryz4J kZend_Feed_Reader_Extension_CreativeCommons_Feedz5I mZend_Feed_Reader_Extension_CreativeCommons_Entryz-H ]Zend_Feed_Reader_Extension_Content_Entryz)G UZend_Feed_Reader_Extension_Atom_Feedz*F WZend_Feed_Reader_Extension_Atom_Entryz   b  |\B&d4{N%[5wL$




\
3
					]	-	
oG0a4~MpJ#m>rL'{c3p?                   + YZend_Gdata_DublinCore_Extension_Rightsz. _Zend_Gdata_DublinCore_Extension_Publisherz- ]Zend_Gdata_DublinCore_Extension_Languagez/ aZend_Gdata_DublinCore_Extension_Identifierz+ YZend_Gdata_DublinCore_Extension_Formatz0
 cZend_Gdata_DublinCore_Extension_Descriptionz)	 UZend_Gdata_DublinCore_Extension_Datez, [Zend_Gdata_DublinCore_Extension_Creatorz +Zend_Gdata_Docsz 7Zend_Gdata_Docs_Queryz% MZend_Gdata_Docs_DocumentListFeedz& OZend_Gdata_Docs_DocumentListEntryz 9Zend_Gdata_ClientLoginz 3Zend_Gdata_Calendarz! EZend_Gdata_Calendar_ListFeedz"  GZend_Gdata_Calendar_ListEntryz- ]Zend_Gdata_Calendar_Extension_WebContentz+~ YZend_Gdata_Calendar_Extension_Timezonez9} uZend_Gdata_Calendar_Extension_SendEventNotificationsz+| YZend_Gdata_Calendar_Extension_Selectedz+{ YZend_Gdata_Calendar_Extension_QuickAddz'z QZend_Gdata_Calendar_Extension_Linkz)y UZend_Gdata_Calendar_Extension_Hiddenz(x SZend_Gdata_Calendar_Extension_Colorz.w _Zend_Gdata_Calendar_Extension_AccessLevelz#v IZend_Gdata_Calendar_EventQueryz"u GZend_Gdata_Calendar_EventFeedz#t IZend_Gdata_Calendar_EventEntryzs -Zend_Gdata_Booksz!r EZend_Gdata_Books_VolumeQueryz q CZend_Gdata_Books_VolumeFeedz!p EZend_Gdata_Books_VolumeEntryz+o YZend_Gdata_Books_Extension_Viewabilityz-n ]Zend_Gdata_Books_Extension_ThumbnailLinkz&m OZend_Gdata_Books_Extension_Reviewz+l YZend_Gdata_Books_Extension_PreviewLinkz(k SZend_Gdata_Books_Extension_InfoLinkz-j ]Zend_Gdata_Books_Extension_Embeddabilityz)i UZend_Gdata_Books_Extension_BooksLinkz-h ]Zend_Gdata_Books_Extension_BooksCategoryz.g _Zend_Gdata_Books_Extension_AnnotationLinkz$f KZend_Gdata_Books_CollectionFeedz%e MZend_Gdata_Books_CollectionEntryzd 1Zend_Gdata_AuthSubzc )Zend_Gdata_Appz$b KZend_Gdata_App_VersionExceptionza 3Zend_Gdata_App_Utilz#` IZend_Gdata_App_MediaFileSourcez_ ?Zend_Gdata_App_MediaEntryz2^ gZend_Gdata_App_LoggingHttpClientAdapterSocketz] AZend_Gdata_App_IOExceptionz,\ [Zend_Gdata_App_InvalidArgumentExceptionz![ EZend_Gdata_App_HttpExceptionz$Z KZend_Gdata_App_FeedSourceParentz#Y IZend_Gdata_App_FeedEntryParentzX 3Zend_Gdata_App_FeedzW =Zend_Gdata_App_Extensionz!V EZend_Gdata_App_Extension_Uriz%U MZend_Gdata_App_Extension_Updatedz#T IZend_Gdata_App_Extension_Titlez"S GZend_Gdata_App_Extension_Textz%R MZend_Gdata_App_Extension_Summaryz&Q OZend_Gdata_App_Extension_Subtitlez$P KZend_Gdata_App_Extension_Sourcez$O KZend_Gdata_App_Extension_Rightsz'N QZend_Gdata_App_Extension_Publishedz$M KZend_Gdata_App_Extension_Personz"L GZend_Gdata_App_Extension_Namez"K GZend_Gdata_App_Extension_Logoz"J GZend_Gdata_App_Extension_Linkz I CZend_Gdata_App_Extension_Idz"H GZend_Gdata_App_Extension_Iconz'G QZend_Gdata_App_Extension_Generatorz#F IZend_Gdata_App_Extension_Emailz%E MZend_Gdata_App_Extension_Elementz$D KZend_Gdata_App_Extension_Editedz#C IZend_Gdata_App_Extension_Draftz%B MZend_Gdata_App_Extension_Controlz)A UZend_Gdata_App_Extension_Contributorz%@ MZend_Gdata_App_Extension_Contentz&? OZend_Gdata_App_Extension_Categoryz$> KZend_Gdata_App_Extension_Authorz= =Zend_Gdata_App_Exceptionz< 5Zend_Gdata_App_Entryz,; [Zend_Gdata_App_CaptchaRequiredExceptionz#: IZend_Gdata_App_BaseMediaSourcez9 3Zend_Gdata_App_Basez*8 WZend_Gdata_App_BadMethodCallExceptionz!7 EZend_Gdata_App_AuthExceptionz6 Zend_Formz5 /Zend_Form_SubFormz4 3Zend_Form_Exceptionz3 /Zend_Form_Elementz2 ;Zend_Form_Element_Xhtmlz1 AZend_Form_Element_Textareaz0 9Zend_Form_Element_Textz/ =Zend_Form_Element_Submitz. =Zend_Form_Element_Selectz   c  kM"yI#iQ%W1lH 



w
U
2
					e	4	^6
mN$S5c=$lU-kQ$e5rE                        +r YZend_Gdata_Media_Extension_MediaPlayerz-q ]Zend_Gdata_Media_Extension_MediaKeywordsz)p UZend_Gdata_Media_Extension_MediaHashz*o WZend_Gdata_Media_Extension_MediaGroupz0n cZend_Gdata_Media_Extension_MediaDescriptionz+m YZend_Gdata_Media_Extension_MediaCreditz.l _Zend_Gdata_Media_Extension_MediaCopyrightz,k [Zend_Gdata_Media_Extension_MediaContentz-j ]Zend_Gdata_Media_Extension_MediaCategoryzi 9Zend_Gdata_Media_Entryzh AZend_Gdata_Kind_EventEntryzg 7Zend_Gdata_HttpClientz*f WZend_Gdata_HttpAdapterStreamingSocketz)e UZend_Gdata_HttpAdapterStreamingProxyzd /Zend_Gdata_Healthzc ;Zend_Gdata_Health_Queryz&b OZend_Gdata_Health_ProfileListFeedz'a QZend_Gdata_Health_ProfileListEntryz"` GZend_Gdata_Health_ProfileFeedz#_ IZend_Gdata_Health_ProfileEntryz$^ KZend_Gdata_Health_Extension_Ccrz] )Zend_Gdata_Geoz\ 3Zend_Gdata_Geo_Feedz$[ KZend_Gdata_Geo_Extension_GmlPosz&Z OZend_Gdata_Geo_Extension_GmlPointz)Y UZend_Gdata_Geo_Extension_GeoRssWherezX 5Zend_Gdata_Geo_EntryzW -Zend_Gdata_Gbasez"V GZend_Gdata_Gbase_SnippetQueryz!U EZend_Gdata_Gbase_SnippetFeedz"T GZend_Gdata_Gbase_SnippetEntryzS 9Zend_Gdata_Gbase_QueryzR AZend_Gdata_Gbase_ItemQueryzQ ?Zend_Gdata_Gbase_ItemFeedzP AZend_Gdata_Gbase_ItemEntryzO 7Zend_Gdata_Gbase_Feedz-N ]Zend_Gdata_Gbase_Extension_BaseAttributezM 9Zend_Gdata_Gbase_EntryzL -Zend_Gdata_GappszK AZend_Gdata_Gapps_UserQueryzJ ?Zend_Gdata_Gapps_UserFeedzI AZend_Gdata_Gapps_UserEntryz&H OZend_Gdata_Gapps_ServiceExceptionzG 9Zend_Gdata_Gapps_Queryz#F IZend_Gdata_Gapps_NicknameQueryz"E GZend_Gdata_Gapps_NicknameFeedz#D IZend_Gdata_Gapps_NicknameEntryz%C MZend_Gdata_Gapps_Extension_Quotaz(B SZend_Gdata_Gapps_Extension_Nicknamez$A KZend_Gdata_Gapps_Extension_Namez%@ MZend_Gdata_Gapps_Extension_Loginz)? UZend_Gdata_Gapps_Extension_EmailListz> 9Zend_Gdata_Gapps_Errorz-= ]Zend_Gdata_Gapps_EmailListRecipientQueryz,< [Zend_Gdata_Gapps_EmailListRecipientFeedz-; ]Zend_Gdata_Gapps_EmailListRecipientEntryz$: KZend_Gdata_Gapps_EmailListQueryz#9 IZend_Gdata_Gapps_EmailListFeedz$8 KZend_Gdata_Gapps_EmailListEntryz7 +Zend_Gdata_Feedz6 5Zend_Gdata_Extensionz5 =Zend_Gdata_Extension_Whoz4 AZend_Gdata_Extension_Wherez3 ?Zend_Gdata_Extension_Whenz$2 KZend_Gdata_Extension_Visibilityz&1 OZend_Gdata_Extension_Transparencyz"0 GZend_Gdata_Extension_Reminderz-/ ]Zend_Gdata_Extension_RecurrenceExceptionz$. KZend_Gdata_Extension_Recurrencez - CZend_Gdata_Extension_Ratingz', QZend_Gdata_Extension_OriginalEventz0+ cZend_Gdata_Extension_OpenSearchTotalResultsz.* _Zend_Gdata_Extension_OpenSearchStartIndexz0) cZend_Gdata_Extension_OpenSearchItemsPerPagez"( GZend_Gdata_Extension_FeedLinkz*' WZend_Gdata_Extension_ExtendedPropertyz%& MZend_Gdata_Extension_EventStatusz#% IZend_Gdata_Extension_EntryLinkz"$ GZend_Gdata_Extension_Commentsz&# OZend_Gdata_Extension_AttendeeTypez(" SZend_Gdata_Extension_AttendeeStatusz! +Zend_Gdata_Exifz  5Zend_Gdata_Exif_Feedz# IZend_Gdata_Exif_Extension_Timez# IZend_Gdata_Exif_Extension_Tagsz$ KZend_Gdata_Exif_Extension_Modelz# IZend_Gdata_Exif_Extension_Makez" GZend_Gdata_Exif_Extension_Isoz, [Zend_Gdata_Exif_Extension_ImageUniqueIdz$ KZend_Gdata_Exif_Extension_FStopz* WZend_Gdata_Exif_Extension_FocalLengthz$ KZend_Gdata_Exif_Extension_Flashz' QZend_Gdata_Exif_Extension_Exposurez' QZend_Gdata_Exif_Extension_Distancez 7Zend_Gdata_Exif_Entryz -Zend_Gdata_Entryz 7Zend_Gdata_DublinCorez* WZend_Gdata_DublinCore_Extension_Titlez, [Zend_Gdata_DublinCore_Extension_Subjectz   [  p>xS/
^1tM f/


v
I
 				o	D	eBn@zP'm?W0U&l?Y(           -M ]Zend_Gdata_YouTube_Extension_MediaRatingz,L [Zend_Gdata_YouTube_Extension_MediaGroupz-K ]Zend_Gdata_YouTube_Extension_MediaCreditz.J _Zend_Gdata_YouTube_Extension_MediaContentz*I WZend_Gdata_YouTube_Extension_Locationz&H OZend_Gdata_YouTube_Extension_Linkz*G WZend_Gdata_YouTube_Extension_LastNamez*F WZend_Gdata_YouTube_Extension_Hometownz)E UZend_Gdata_YouTube_Extension_Hobbiesz(D SZend_Gdata_YouTube_Extension_Genderz+C YZend_Gdata_YouTube_Extension_FirstNamez*B WZend_Gdata_YouTube_Extension_Durationz-A ]Zend_Gdata_YouTube_Extension_Descriptionz+@ YZend_Gdata_YouTube_Extension_CountHintz)? UZend_Gdata_YouTube_Extension_Controlz)> UZend_Gdata_YouTube_Extension_Companyz'= QZend_Gdata_YouTube_Extension_Booksz%< MZend_Gdata_YouTube_Extension_Agez); UZend_Gdata_YouTube_Extension_AboutMez#: IZend_Gdata_YouTube_ContactFeedz$9 KZend_Gdata_YouTube_ContactEntryz#8 IZend_Gdata_YouTube_CommentFeedz$7 KZend_Gdata_YouTube_CommentEntryz$6 KZend_Gdata_YouTube_ActivityFeedz%5 MZend_Gdata_YouTube_ActivityEntryz4 ;Zend_Gdata_Spreadsheetsz*3 WZend_Gdata_Spreadsheets_WorksheetFeedz+2 YZend_Gdata_Spreadsheets_WorksheetEntryz,1 [Zend_Gdata_Spreadsheets_SpreadsheetFeedz-0 ]Zend_Gdata_Spreadsheets_SpreadsheetEntryz&/ OZend_Gdata_Spreadsheets_ListQueryz%. MZend_Gdata_Spreadsheets_ListFeedz&- OZend_Gdata_Spreadsheets_ListEntryz/, aZend_Gdata_Spreadsheets_Extension_RowCountz-+ ]Zend_Gdata_Spreadsheets_Extension_Customz/* aZend_Gdata_Spreadsheets_Extension_ColCountz+) YZend_Gdata_Spreadsheets_Extension_Cellz*( WZend_Gdata_Spreadsheets_DocumentQueryz&' OZend_Gdata_Spreadsheets_CellQueryz%& MZend_Gdata_Spreadsheets_CellFeedz&% OZend_Gdata_Spreadsheets_CellEntryz$ -Zend_Gdata_Queryz# /Zend_Gdata_Photosz " CZend_Gdata_Photos_UserQueryz! AZend_Gdata_Photos_UserFeedz   CZend_Gdata_Photos_UserEntryz AZend_Gdata_Photos_TagEntryz! EZend_Gdata_Photos_PhotoQueryz  CZend_Gdata_Photos_PhotoFeedz! EZend_Gdata_Photos_PhotoEntryz& OZend_Gdata_Photos_Extension_Widthz' QZend_Gdata_Photos_Extension_Weightz( SZend_Gdata_Photos_Extension_Versionz% MZend_Gdata_Photos_Extension_Userz* WZend_Gdata_Photos_Extension_Timestampz* WZend_Gdata_Photos_Extension_Thumbnailz% MZend_Gdata_Photos_Extension_Sizez) UZend_Gdata_Photos_Extension_Rotationz+ YZend_Gdata_Photos_Extension_QuotaLimitz- ]Zend_Gdata_Photos_Extension_QuotaCurrentz) UZend_Gdata_Photos_Extension_Positionz( SZend_Gdata_Photos_Extension_PhotoIdz3 iZend_Gdata_Photos_Extension_NumPhotosRemainingz* WZend_Gdata_Photos_Extension_NumPhotosz) UZend_Gdata_Photos_Extension_Nicknamez% MZend_Gdata_Photos_Extension_Namez2 gZend_Gdata_Photos_Extension_MaxPhotosPerAlbumz)
 UZend_Gdata_Photos_Extension_Locationz#	 IZend_Gdata_Photos_Extension_Idz' QZend_Gdata_Photos_Extension_Heightz2 gZend_Gdata_Photos_Extension_CommentingEnabledz- ]Zend_Gdata_Photos_Extension_CommentCountz' QZend_Gdata_Photos_Extension_Clientz) UZend_Gdata_Photos_Extension_Checksumz* WZend_Gdata_Photos_Extension_BytesUsedz( SZend_Gdata_Photos_Extension_AlbumIdz' QZend_Gdata_Photos_Extension_Accessz#  IZend_Gdata_Photos_CommentEntryz! EZend_Gdata_Photos_AlbumQueryz ~ CZend_Gdata_Photos_AlbumFeedz!} EZend_Gdata_Photos_AlbumEntryz| 3Zend_Gdata_MimeFilez{ ?Zend_Gdata_MimeBodyStringzz AZend_Gdata_MediaMimeStreamzy -Zend_Gdata_Mediazx 7Zend_Gdata_Media_Feedz*w WZend_Gdata_Media_Extension_MediaTitlez.v _Zend_Gdata_Media_Extension_MediaThumbnailz)u UZend_Gdata_Media_Extension_MediaTextz0t cZend_Gdata_Media_Extension_MediaRestrictionz+s YZend_Gdata_Media_Extension_MediaRatingz   b  |L]3vKh;qC



k
F
 
				z	R	,		^6x?Z6eAs3tC-e?zh4           / #Zend_Layoutz. 7Zend_Layout_Exceptionz)- UZend_Layout_Controller_Plugin_Layoutz0, cZend_Layout_Controller_Action_Helper_Layoutz+ Zend_Jsonz* -Zend_Json_Serverz) 5Zend_Json_Server_Smdz!( EZend_Json_Server_Smd_Servicez' ?Zend_Json_Server_Responsez#& IZend_Json_Server_Response_Httpz% =Zend_Json_Server_Requestz"$ GZend_Json_Server_Request_Httpz# AZend_Json_Server_Exceptionz" 9Zend_Json_Server_Errorz! 9Zend_Json_Server_Cachez  )Zend_Json_Exprz 3Zend_Json_Exceptionz /Zend_Json_Encoderz /Zend_Json_Decoderz 'Zend_InfoCardz- ]Zend_InfoCard_Xml_SecurityTokenReferencez AZend_InfoCard_Xml_Securityz) UZend_InfoCard_Xml_Security_Transformz4 kZend_InfoCard_Xml_Security_Transform_XmlExcC14Nz3 iZend_InfoCard_Xml_Security_Transform_Exceptionz< {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignaturez) UZend_InfoCard_Xml_Security_Exceptionz ?Zend_InfoCard_Xml_KeyInfoz& OZend_InfoCard_Xml_KeyInfo_XmlDSigz& OZend_InfoCard_Xml_KeyInfo_Defaultz' QZend_InfoCard_Xml_KeyInfo_Abstractz  CZend_InfoCard_Xml_Exceptionz# IZend_InfoCard_Xml_EncryptedKeyz$ KZend_InfoCard_Xml_EncryptedDataz+ YZend_InfoCard_Xml_EncryptedData_XmlEncz- ]Zend_InfoCard_Xml_EncryptedData_Abstractz ?Zend_InfoCard_Xml_Elementz 
 CZend_InfoCard_Xml_Assertionz%	 MZend_InfoCard_Xml_Assertion_Samlz ;Zend_InfoCard_Exceptionz% MZend_InfoCard_Exception_Abstractz 5Zend_InfoCard_Claimsz 5Zend_InfoCard_Cipherz5 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbcz5 mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbcz4 kZend_InfoCard_Cipher_Symmetric_Adapter_Abstractz) UZend_InfoCard_Cipher_Pki_Adapter_Rsaz.  _Zend_InfoCard_Cipher_Pki_Adapter_Abstractz# IZend_InfoCard_Cipher_Exceptionz$~ KZend_InfoCard_Adapter_Exceptionz"} GZend_InfoCard_Adapter_Defaultz| 1Zend_Http_Responsez{ 3Zend_Http_Exceptionzz 3Zend_Http_CookieJarzy -Zend_Http_Cookiezx -Zend_Http_Clientzw AZend_Http_Client_Exceptionz"v GZend_Http_Client_Adapter_Testz$u KZend_Http_Client_Adapter_Socketz#t IZend_Http_Client_Adapter_Proxyz's QZend_Http_Client_Adapter_Exceptionz"r GZend_Http_Client_Adapter_Curlzq !Zend_Gdatazp 1Zend_Gdata_YouTubez"o GZend_Gdata_YouTube_VideoQueryz!n EZend_Gdata_YouTube_VideoFeedz"m GZend_Gdata_YouTube_VideoEntryz(l SZend_Gdata_YouTube_UserProfileEntryz(k SZend_Gdata_YouTube_SubscriptionFeedz)j UZend_Gdata_YouTube_SubscriptionEntryz)i UZend_Gdata_YouTube_PlaylistVideoFeedz*h WZend_Gdata_YouTube_PlaylistVideoEntryz(g SZend_Gdata_YouTube_PlaylistListFeedz)f UZend_Gdata_YouTube_PlaylistListEntryz"e GZend_Gdata_YouTube_MediaEntryz!d EZend_Gdata_YouTube_InboxFeedz"c GZend_Gdata_YouTube_InboxEntryz)b UZend_Gdata_YouTube_Extension_VideoIdz*a WZend_Gdata_YouTube_Extension_Usernamez*` WZend_Gdata_YouTube_Extension_Uploadedz'_ QZend_Gdata_YouTube_Extension_Tokenz(^ SZend_Gdata_YouTube_Extension_Statusz,] [Zend_Gdata_YouTube_Extension_Statisticsz'\ QZend_Gdata_YouTube_Extension_Statez([ SZend_Gdata_YouTube_Extension_Schoolz-Z ]Zend_Gdata_YouTube_Extension_ReleaseDatez.Y _Zend_Gdata_YouTube_Extension_Relationshipz*X WZend_Gdata_YouTube_Extension_Recordedz&W OZend_Gdata_YouTube_Extension_Racyz-V ]Zend_Gdata_YouTube_Extension_QueryStringz)U UZend_Gdata_YouTube_Extension_Privatez*T WZend_Gdata_YouTube_Extension_Positionz/S aZend_Gdata_YouTube_Extension_PlaylistTitlez,R [Zend_Gdata_YouTube_Extension_PlaylistIdz,Q [Zend_Gdata_YouTube_Extension_Occupationz)P UZend_Gdata_YouTube_Extension_NoEmbedz'O QZend_Gdata_YouTube_Extension_Musicz(N SZend_Gdata_YouTube_Extension_Moviesz   v }hL*rR9W/qNsK,




p
R
7
						j	I	&	lO2r[7zO/xY7iD#_;dC(	uW<             % /Zend_Measure_Timez$ =Zend_Measure_Temperaturez# 1Zend_Measure_Speedz" 7Zend_Measure_Pressurez! 1Zend_Measure_Powerz  3Zend_Measure_Numberz 9Zend_Measure_Lightnessz 3Zend_Measure_Lengthz ?Zend_Measure_Illuminationz 9Zend_Measure_Frequencyz 1Zend_Measure_Forcez =Zend_Measure_Flow_Volumez 9Zend_Measure_Flow_Molez 9Zend_Measure_Flow_Massz 9Zend_Measure_Exceptionz 3Zend_Measure_Energyz 5Zend_Measure_Densityz 5Zend_Measure_Currentz  CZend_Measure_Cooking_Weightz  CZend_Measure_Cooking_Volumez =Zend_Measure_Capacitancez 3Zend_Measure_Binaryz /Zend_Measure_Areaz 1Zend_Measure_Anglez ?Zend_Measure_Accelerationz 7Zend_Measure_Abstractz Zend_Mailz
 =Zend_Mail_Transport_Smtpz!	 EZend_Mail_Transport_Sendmailz" GZend_Mail_Transport_Exceptionz! EZend_Mail_Transport_Abstractz /Zend_Mail_Storagez' QZend_Mail_Storage_Writable_Maildirz 9Zend_Mail_Storage_Pop3z 9Zend_Mail_Storage_Mboxz ?Zend_Mail_Storage_Maildirz 9Zend_Mail_Storage_Imapz  =Zend_Mail_Storage_Folderz" GZend_Mail_Storage_Folder_Mboxz%~ MZend_Mail_Storage_Folder_Maildirz } CZend_Mail_Storage_Exceptionz| AZend_Mail_Storage_Abstractz{ ;Zend_Mail_Protocol_Smtpz'z QZend_Mail_Protocol_Smtp_Auth_Plainz'y QZend_Mail_Protocol_Smtp_Auth_Loginz)x UZend_Mail_Protocol_Smtp_Auth_Crammd5zw ;Zend_Mail_Protocol_Pop3zv ;Zend_Mail_Protocol_Imapz!u EZend_Mail_Protocol_Exceptionz t CZend_Mail_Protocol_Abstractzs )Zend_Mail_Partzr 3Zend_Mail_Part_Filezq /Zend_Mail_Messagezp 9Zend_Mail_Message_Filezo 3Zend_Mail_Exceptionzn Zend_Logzm 9Zend_Log_Writer_Syslogzl 9Zend_Log_Writer_Streamzk 5Zend_Log_Writer_Nullzj 5Zend_Log_Writer_Mockzi 5Zend_Log_Writer_Mailzh ;Zend_Log_Writer_Firebugzg 1Zend_Log_Writer_Dbzf =Zend_Log_Writer_Abstractze 9Zend_Log_Formatter_Xmlzd ?Zend_Log_Formatter_Simplezc AZend_Log_Formatter_Firebugzb =Zend_Log_Filter_Suppressza =Zend_Log_Filter_Priorityz` ;Zend_Log_Filter_Messagez_ 1Zend_Log_Exceptionz^ #Zend_Localez] -Zend_Locale_Mathz\ =Zend_Locale_Math_PhpMathz[ AZend_Locale_Math_ExceptionzZ 1Zend_Locale_FormatzY 7Zend_Locale_ExceptionzX -Zend_Locale_Dataz!W EZend_Locale_Data_TranslationzV #Zend_LoaderzU =Zend_Loader_PluginLoaderz'T QZend_Loader_PluginLoader_ExceptionzS 7Zend_Loader_ExceptionzR 9Zend_Loader_Autoloaderz$Q KZend_Loader_Autoloader_ResourcezP Zend_LdapzO )Zend_Ldap_NodezN 7Zend_Ldap_Node_Schemaz#M IZend_Ldap_Node_Schema_OpenLdapz/L aZend_Ldap_Node_Schema_ObjectClass_OpenLdapz6K oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectoryzJ AZend_Ldap_Node_Schema_Itemz1I eZend_Ldap_Node_Schema_AttributeType_OpenLdapz8H sZend_Ldap_Node_Schema_AttributeType_ActiveDirectoryz*G WZend_Ldap_Node_Schema_ActiveDirectoryzF 9Zend_Ldap_Node_RootDsez$E KZend_Ldap_Node_RootDse_OpenLdapz&D OZend_Ldap_Node_RootDse_eDirectoryz+C YZend_Ldap_Node_RootDse_ActiveDirectoryzB ?Zend_Ldap_Node_Collectionz$A KZend_Ldap_Node_ChildrenIteratorz@ ;Zend_Ldap_Node_Abstractz? 9Zend_Ldap_Ldif_Encoderz> -Zend_Ldap_Filterz= ;Zend_Ldap_Filter_Stringz< 3Zend_Ldap_Filter_Orz; 5Zend_Ldap_Filter_Notz: 7Zend_Ldap_Filter_Maskz9 =Zend_Ldap_Filter_Logicalz8 AZend_Ldap_Filter_Exceptionz7 5Zend_Ldap_Filter_Andz6 ?Zend_Ldap_Filter_Abstractz5 3Zend_Ldap_Exceptionz4 %Zend_Ldap_Dnz3 3Zend_Ldap_Converterz2 5Zend_Ldap_Collectionz*1 WZend_Ldap_Collection_Iterator_Defaultz0 3Zend_Ldap_Attributez   r  x\7zfM1 hK3	h>wO"




]
/
					n	Q	.	lH*vK*	{XB&pDT1iK-qN.m:     =Zend_Pdf_FileParser_Fontz& OZend_Pdf_FileParser_Font_OpenTypez/ aZend_Pdf_FileParser_Font_OpenType_TrueTypez 1Zend_Pdf_Exceptionz ;Zend_Pdf_ElementFactoryz" GZend_Pdf_ElementFactory_Proxyz -Zend_Pdf_Elementz ;Zend_Pdf_Element_Stringz# IZend_Pdf_Element_String_Binaryz ;Zend_Pdf_Element_Streamz AZend_Pdf_Element_Referencez% MZend_Pdf_Element_Reference_Tablez' QZend_Pdf_Element_Reference_Contextz
 ;Zend_Pdf_Element_Objectz#	 IZend_Pdf_Element_Object_Streamz =Zend_Pdf_Element_Numericz 7Zend_Pdf_Element_Nullz 7Zend_Pdf_Element_Namez  CZend_Pdf_Element_Dictionaryz =Zend_Pdf_Element_Booleanz 9Zend_Pdf_Element_Arrayz 5Zend_Pdf_Destinationz ?Zend_Pdf_Destination_Zoomz!  EZend_Pdf_Destination_Unknownz AZend_Pdf_Destination_Namedz'~ QZend_Pdf_Destination_FitVerticallyz&} OZend_Pdf_Destination_FitRectanglez)| UZend_Pdf_Destination_FitHorizontallyz2{ gZend_Pdf_Destination_FitBoundingBoxVerticallyz4z kZend_Pdf_Destination_FitBoundingBoxHorizontallyz(y SZend_Pdf_Destination_FitBoundingBoxzx =Zend_Pdf_Destination_Fitz"w GZend_Pdf_Destination_Explicitzv )Zend_Pdf_Colorzu 1Zend_Pdf_Color_Rgbzt 3Zend_Pdf_Color_Htmlzs =Zend_Pdf_Color_GrayScalezr 3Zend_Pdf_Color_Cmykzq 'Zend_Pdf_Cmapzp AZend_Pdf_Cmap_TrimmedTablez!o EZend_Pdf_Cmap_SegmentToDeltazn AZend_Pdf_Cmap_ByteEncodingz&m OZend_Pdf_Cmap_ByteEncoding_Staticzl 3Zend_Pdf_Annotationzk =Zend_Pdf_Annotation_Textzj =Zend_Pdf_Annotation_Linkz'i QZend_Pdf_Annotation_FileAttachmentzh +Zend_Pdf_Actionzg 3Zend_Pdf_Action_URIzf ;Zend_Pdf_Action_Unknownze 7Zend_Pdf_Action_Transzd 9Zend_Pdf_Action_Threadzc AZend_Pdf_Action_SubmitFormzb 7Zend_Pdf_Action_Soundz a CZend_Pdf_Action_SetOCGStatez` ?Zend_Pdf_Action_ResetFormz_ ?Zend_Pdf_Action_Renditionz^ 7Zend_Pdf_Action_Namedz] 7Zend_Pdf_Action_Moviez\ 9Zend_Pdf_Action_Launchz[ AZend_Pdf_Action_JavaScriptzZ AZend_Pdf_Action_ImportDatazY 5Zend_Pdf_Action_HidezX 7Zend_Pdf_Action_GoToRzW 7Zend_Pdf_Action_GoToEzV AZend_Pdf_Action_GoTo3DViewzU 5Zend_Pdf_Action_GoTozT )Zend_Paginatorz*S WZend_Paginator_ScrollingStyle_Slidingz*R WZend_Paginator_ScrollingStyle_Jumpingz*Q WZend_Paginator_ScrollingStyle_Elasticz&P OZend_Paginator_ScrollingStyle_AllzO =Zend_Paginator_Exceptionz N CZend_Paginator_Adapter_Nullz$M KZend_Paginator_Adapter_Iteratorz)L UZend_Paginator_Adapter_DbTableSelectz$K KZend_Paginator_Adapter_DbSelectz!J EZend_Paginator_Adapter_ArrayzI #Zend_OpenIdzH 5Zend_OpenId_ProviderzG ?Zend_OpenId_Provider_Userz&F OZend_OpenId_Provider_User_Sessionz!E EZend_OpenId_Provider_Storagez&D OZend_OpenId_Provider_Storage_FilezC 7Zend_OpenId_ExtensionzB AZend_OpenId_Extension_SregzA 7Zend_OpenId_Exceptionz@ 5Zend_OpenId_Consumerz!? EZend_OpenId_Consumer_Storagez&> OZend_OpenId_Consumer_Storage_Filez= +Zend_Navigationz< 5Zend_Navigation_Pagez; =Zend_Navigation_Page_Uriz: =Zend_Navigation_Page_Mvcz9 ?Zend_Navigation_Exceptionz8 ?Zend_Navigation_Containerz7 Zend_Mimez6 )Zend_Mime_Partz5 /Zend_Mime_Messagez4 3Zend_Mime_Exceptionz3 -Zend_Mime_Decodez2 #Zend_Memoryz1 /Zend_Memory_Valuez0 3Zend_Memory_Managerz/ 7Zend_Memory_Exceptionz. 7Zend_Memory_Containerz"- GZend_Memory_Container_Movablez!, EZend_Memory_Container_Lockedz!+ EZend_Memory_AccessControllerz* 3Zend_Measure_Weightz) 3Zend_Measure_Volumez%( MZend_Measure_Viscosity_Kinematicz#' IZend_Measure_Viscosity_Dynamicz& 3Zend_Measure_Torquez   f  qDgQ: a1
}P^%


c
-			z	@	kF"~gO,iAmL&sV2sU*tW6qQ8                     } +Zend_Rest_Routez| 3Zend_Rest_Exceptionz{ 5Zend_Rest_Controllerzz -Zend_Rest_Clientzy ;Zend_Rest_Client_Resultz&x OZend_Rest_Client_Result_Exceptionzw AZend_Rest_Client_Exceptionzv 'Zend_Registryzu =Zend_Reflection_Propertyzt ?Zend_Reflection_Parameterzs 9Zend_Reflection_Methodzr =Zend_Reflection_Functionzq 5Zend_Reflection_Filezp ?Zend_Reflection_Extensionzo ?Zend_Reflection_Exceptionzn =Zend_Reflection_Docblockz!m EZend_Reflection_Docblock_Tagz(l SZend_Reflection_Docblock_Tag_Returnz'k QZend_Reflection_Docblock_Tag_Paramzj 7Zend_Reflection_Classzi !Zend_Queuezh 9Zend_Queue_Stomp_Framezg ;Zend_Queue_Stomp_Clientz'f QZend_Queue_Stomp_Client_Connectionze 1Zend_Queue_Messagez#d IZend_Queue_Message_PlatformJobz c CZend_Queue_Message_Iteratorzb 5Zend_Queue_Exceptionz(a SZend_Queue_Adapter_PlatformJobQueuez` ;Zend_Queue_Adapter_Nullz!_ EZend_Queue_Adapter_Memcacheqz^ 7Zend_Queue_Adapter_Dbz ] CZend_Queue_Adapter_Db_Queuez"\ GZend_Queue_Adapter_Db_Messagez[ =Zend_Queue_Adapter_Arrayz'Z QZend_Queue_Adapter_AdapterAbstractz Y CZend_Queue_Adapter_ActivemqzX -Zend_ProgressBarzW AZend_ProgressBar_ExceptionzV =Zend_ProgressBar_Adapterz$U KZend_ProgressBar_Adapter_JsPushz$T KZend_ProgressBar_Adapter_JsPullz'S QZend_ProgressBar_Adapter_Exceptionz%R MZend_ProgressBar_Adapter_ConsolezQ Zend_Pdfz!P EZend_Pdf_UpdateInfoContainerzO -Zend_Pdf_TrailerzN ;Zend_Pdf_Trailer_KeeperzM AZend_Pdf_Trailer_GeneratorzL +Zend_Pdf_TargetzK )Zend_Pdf_StylezJ 7Zend_Pdf_StringParserzI /Zend_Pdf_Resourcez#H IZend_Pdf_Resource_ImageFactoryzG ;Zend_Pdf_Resource_Imagez!F EZend_Pdf_Resource_Image_Tiffz E CZend_Pdf_Resource_Image_Pngz!D EZend_Pdf_Resource_Image_JpegzC 9Zend_Pdf_Resource_Fontz!B EZend_Pdf_Resource_Font_Type0z"A GZend_Pdf_Resource_Font_Simplez+@ YZend_Pdf_Resource_Font_Simple_Standardz8? sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbatsz6> oZend_Pdf_Resource_Font_Simple_Standard_TimesRomanz7= qZend_Pdf_Resource_Font_Simple_Standard_TimesItalicz;< yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalicz5; mZend_Pdf_Resource_Font_Simple_Standard_TimesBoldz2: gZend_Pdf_Resource_Font_Simple_Standard_Symbolz<9 {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaObliquezA8 Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldObliquez97 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldz56 mZend_Pdf_Resource_Font_Simple_Standard_Helveticaz:5 wZend_Pdf_Resource_Font_Simple_Standard_CourierObliquez>4 Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldObliquez73 qZend_Pdf_Resource_Font_Simple_Standard_CourierBoldz32 iZend_Pdf_Resource_Font_Simple_Standard_Courierz)1 UZend_Pdf_Resource_Font_Simple_Parsedz20 gZend_Pdf_Resource_Font_Simple_Parsed_TrueTypez*/ WZend_Pdf_Resource_Font_FontDescriptorz%. MZend_Pdf_Resource_Font_Extractedz#- IZend_Pdf_Resource_Font_CidFontz,, [Zend_Pdf_Resource_Font_CidFont_TrueTypez3+ iZend_Pdf_RecursivelyIteratableObjectsContainerz* +Zend_Pdf_Parserz) 'Zend_Pdf_Pagez( -Zend_Pdf_Outlinez' ;Zend_Pdf_Outline_Loadedz& =Zend_Pdf_Outline_Createdz% /Zend_Pdf_NameTreez$ )Zend_Pdf_Imagez# 'Zend_Pdf_Fontz " CZend_Pdf_Filter_Compressionz$! KZend_Pdf_Filter_Compression_Lzwz&  OZend_Pdf_Filter_Compression_Flatez =Zend_Pdf_Filter_AsciiHexz ;Zend_Pdf_Filter_Ascii85z" GZend_Pdf_FileParserDataSourcez) UZend_Pdf_FileParserDataSource_Stringz' QZend_Pdf_FileParserDataSource_Filez 3Zend_Pdf_FileParserz ?Zend_Pdf_FileParser_Imagez" GZend_Pdf_FileParser_Image_Pngz   P  \#PZ-Pf:



~
_
:
				U	\( }\\&LO'^3l?
}J                             %M MZend_Search_Lucene_Search_Weightz*L WZend_Search_Lucene_Search_Weight_Termz,K [Zend_Search_Lucene_Search_Weight_Phrasez/J aZend_Search_Lucene_Search_Weight_MultiTermz+I YZend_Search_Lucene_Search_Weight_Emptyz-H ]Zend_Search_Lucene_Search_Weight_Booleanz)G UZend_Search_Lucene_Search_Similarityz1F eZend_Search_Lucene_Search_Similarity_Defaultz)E UZend_Search_Lucene_Search_QueryTokenz3D iZend_Search_Lucene_Search_QueryParserExceptionz1C eZend_Search_Lucene_Search_QueryParserContextz*B WZend_Search_Lucene_Search_QueryParserz)A UZend_Search_Lucene_Search_QueryLexerz'@ QZend_Search_Lucene_Search_QueryHitz)? UZend_Search_Lucene_Search_QueryEntryz.> _Zend_Search_Lucene_Search_QueryEntry_Termz2= gZend_Search_Lucene_Search_QueryEntry_Subqueryz0< cZend_Search_Lucene_Search_QueryEntry_Phrasez$; KZend_Search_Lucene_Search_Queryz-: ]Zend_Search_Lucene_Search_Query_Wildcardz)9 UZend_Search_Lucene_Search_Query_Termz*8 WZend_Search_Lucene_Search_Query_Rangez27 gZend_Search_Lucene_Search_Query_Preprocessingz76 qZend_Search_Lucene_Search_Query_Preprocessing_Termz95 uZend_Search_Lucene_Search_Query_Preprocessing_Phrasez84 sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzyz+3 YZend_Search_Lucene_Search_Query_Phrasez.2 _Zend_Search_Lucene_Search_Query_MultiTermz21 gZend_Search_Lucene_Search_Query_Insignificantz*0 WZend_Search_Lucene_Search_Query_Fuzzyz*/ WZend_Search_Lucene_Search_Query_Emptyz,. [Zend_Search_Lucene_Search_Query_Booleanz2- gZend_Search_Lucene_Search_Highlighter_Defaultz:, wZend_Search_Lucene_Search_BooleanExpressionRecognizerz+ =Zend_Search_Lucene_Proxyz%* MZend_Search_Lucene_PriorityQueuez/) aZend_Search_Lucene_Interface_MultiSearcherz#( IZend_Search_Lucene_LockManagerz$' KZend_Search_Lucene_Index_Writerz0& cZend_Search_Lucene_Index_TermsPriorityQueuez&% OZend_Search_Lucene_Index_TermInfoz"$ GZend_Search_Lucene_Index_Termz+# YZend_Search_Lucene_Index_SegmentWriterz8" sZend_Search_Lucene_Index_SegmentWriter_StreamWriterz:! wZend_Search_Lucene_Index_SegmentWriter_DocumentWriterz+  YZend_Search_Lucene_Index_SegmentMergerz) UZend_Search_Lucene_Index_SegmentInfoz' QZend_Search_Lucene_Index_FieldInfoz( SZend_Search_Lucene_Index_DocsFilterz. _Zend_Search_Lucene_Index_DictionaryLoaderz! EZend_Search_Lucene_FSMActionz 9Zend_Search_Lucene_FSMz =Zend_Search_Lucene_Fieldz! EZend_Search_Lucene_Exceptionz  CZend_Search_Lucene_Documentz% MZend_Search_Lucene_Document_Xlsxz% MZend_Search_Lucene_Document_Pptxz( SZend_Search_Lucene_Document_OpenXmlz% MZend_Search_Lucene_Document_Htmlz* WZend_Search_Lucene_Document_Exceptionz% MZend_Search_Lucene_Document_Docxz, [Zend_Search_Lucene_Analysis_TokenFilterz6 oZend_Search_Lucene_Analysis_TokenFilter_StopWordsz7 qZend_Search_Lucene_Analysis_TokenFilter_ShortWordsz: wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8z6 oZend_Search_Lucene_Analysis_TokenFilter_LowerCasez& OZend_Search_Lucene_Analysis_Tokenz)
 UZend_Search_Lucene_Analysis_Analyzerz0	 cZend_Search_Lucene_Analysis_Analyzer_Commonz8 sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8NumzI Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitivez5 mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8zF Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitivez8 sZend_Search_Lucene_Analysis_Analyzer_Common_TextNumzI Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitivez5 mZend_Search_Lucene_Analysis_Analyzer_Common_TextzF Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitivez  7Zend_Search_Exceptionz -Zend_Rest_Serverz~ AZend_Rest_Server_Exceptionz   e  h9lN*l;wL-zQ



|
V
$				{	R	#	nD"fGiEpJ.g>}X5a3|W- -2 ]Zend_Service_StrikeIron_SalesUseTaxBasicz&1 OZend_Service_StrikeIron_Exceptionz&0 OZend_Service_StrikeIron_Decoratorz!/ EZend_Service_StrikeIron_Basez. ;Zend_Service_SlideSharez&- OZend_Service_SlideShare_SlideShowz&, OZend_Service_SlideShare_Exceptionz+ 1Zend_Service_Simpyz$* KZend_Service_Simpy_WatchlistSetz*) WZend_Service_Simpy_WatchlistFilterSetz'( QZend_Service_Simpy_WatchlistFilterz!' EZend_Service_Simpy_Watchlistz& ?Zend_Service_Simpy_TagSetz% 9Zend_Service_Simpy_Tagz$ AZend_Service_Simpy_NoteSetz# ;Zend_Service_Simpy_Notez" AZend_Service_Simpy_LinkSetz!! EZend_Service_Simpy_LinkQueryz  ;Zend_Service_Simpy_Linkz 9Zend_Service_ReCaptchaz$ KZend_Service_ReCaptcha_Responsez$ KZend_Service_ReCaptcha_MailHidez. _Zend_Service_ReCaptcha_MailHide_Exceptionz% MZend_Service_ReCaptcha_Exceptionz 7Zend_Service_Nirvanixz# IZend_Service_Nirvanix_Responsez) UZend_Service_Nirvanix_Namespace_Imfsz) UZend_Service_Nirvanix_Namespace_Basez$ KZend_Service_Nirvanix_Exceptionz 3Zend_Service_Flickrz" GZend_Service_Flickr_ResultSetz AZend_Service_Flickr_Resultz ?Zend_Service_Flickr_Imagez 9Zend_Service_Exceptionz 9Zend_Service_Deliciousz& OZend_Service_Delicious_SimplePostz$ KZend_Service_Delicious_PostListz  CZend_Service_Delicious_Postz% MZend_Service_Delicious_Exceptionz  CZend_Service_Audioscrobblerz
 3Zend_Service_Amazonz	 ;Zend_Service_Amazon_Sqsz& OZend_Service_Amazon_Sqs_Exceptionz' QZend_Service_Amazon_SimilarProductz 9Zend_Service_Amazon_S3z" GZend_Service_Amazon_S3_Streamz% MZend_Service_Amazon_S3_Exceptionz" GZend_Service_Amazon_ResultSetz ?Zend_Service_Amazon_Queryz! EZend_Service_Amazon_OfferSetz  ?Zend_Service_Amazon_Offerz& OZend_Service_Amazon_ListmaniaListz~ =Zend_Service_Amazon_Itemz} ?Zend_Service_Amazon_Imagez"| GZend_Service_Amazon_Exceptionz({ SZend_Service_Amazon_EditorialReviewzz ;Zend_Service_Amazon_Ec2z+y YZend_Service_Amazon_Ec2_Securitygroupsz%x MZend_Service_Amazon_Ec2_Responsez#w IZend_Service_Amazon_Ec2_Regionz$v KZend_Service_Amazon_Ec2_Keypairz%u MZend_Service_Amazon_Ec2_Instancez-t ]Zend_Service_Amazon_Ec2_Instance_Windowsz.s _Zend_Service_Amazon_Ec2_Instance_Reservedz"r GZend_Service_Amazon_Ec2_Imagez&q OZend_Service_Amazon_Ec2_Exceptionz&p OZend_Service_Amazon_Ec2_Elasticipz o CZend_Service_Amazon_Ec2_Ebsz'n QZend_Service_Amazon_Ec2_CloudWatchz.m _Zend_Service_Amazon_Ec2_Availabilityzonesz%l MZend_Service_Amazon_Ec2_Abstractz'k QZend_Service_Amazon_CustomerReviewz$j KZend_Service_Amazon_Accessoriesz!i EZend_Service_Amazon_Abstractzh 5Zend_Service_Akismetzg 7Zend_Service_Abstractzf 9Zend_Server_Reflectionz'e QZend_Server_Reflection_ReturnValuez%d MZend_Server_Reflection_Prototypez%c MZend_Server_Reflection_Parameterz b CZend_Server_Reflection_Nodez"a GZend_Server_Reflection_Methodz$` KZend_Server_Reflection_Functionz-_ ]Zend_Server_Reflection_Function_Abstractz%^ MZend_Server_Reflection_Exceptionz!] EZend_Server_Reflection_Classz!\ EZend_Server_Method_Prototypez![ EZend_Server_Method_Parameterz"Z GZend_Server_Method_Definitionz Y CZend_Server_Method_CallbackzX 7Zend_Server_ExceptionzW 9Zend_Server_DefinitionzV /Zend_Server_CachezU 5Zend_Server_AbstractzT 1Zend_Search_Lucenez0S cZend_Search_Lucene_TermStreamsPriorityQueuez$R KZend_Search_Lucene_Storage_Filez+Q YZend_Search_Lucene_Storage_File_Memoryz/P aZend_Search_Lucene_Storage_File_Filesystemz)O UZend_Search_Lucene_Storage_Directoryz4N kZend_Search_Lucene_Storage_Directory_Filesystemz   a  ~W(d:`0Z3c9



g
>
				y	O	*	b7eE"d<	xa:u^C-|Nl?T#                                            * WZend_Test_PHPUnit_Db_Operation_Insertz- ]Zend_Test_PHPUnit_Db_Operation_DeleteAllz* WZend_Test_PHPUnit_Db_Metadata_Genericz# IZend_Test_PHPUnit_Db_Exceptionz, [Zend_Test_PHPUnit_Db_DataSet_QueryTablez. _Zend_Test_PHPUnit_Db_DataSet_QueryDataSetz0 cZend_Test_PHPUnit_Db_DataSet_DbTableDataSetz) UZend_Test_PHPUnit_Db_DataSet_DbTablez* WZend_Test_PHPUnit_Db_DataSet_DbRowsetz$
 KZend_Test_PHPUnit_Db_Connectionz'	 QZend_Test_PHPUnit_DatabaseTestCasez) UZend_Test_PHPUnit_ControllerTestCasez0 cZend_Test_PHPUnit_Constraint_ResponseHeaderz* WZend_Test_PHPUnit_Constraint_Redirectz+ YZend_Test_PHPUnit_Constraint_Exceptionz* WZend_Test_PHPUnit_Constraint_DomQueryz 7Zend_Test_DbStatementz 3Zend_Test_DbAdapterz /Zend_Tag_ItemListz  'Zend_Tag_Itemz 1Zend_Tag_Exceptionz~ )Zend_Tag_Cloudz} =Zend_Tag_Cloud_Exceptionz!| EZend_Tag_Cloud_Decorator_Tagz%{ MZend_Tag_Cloud_Decorator_HtmlTagz'z QZend_Tag_Cloud_Decorator_HtmlCloudz'y QZend_Tag_Cloud_Decorator_Exceptionz#x IZend_Tag_Cloud_Decorator_Cloudzw )Zend_Soap_Wsdlz/v aZend_Soap_Wsdl_Strategy_DefaultComplexTypez&u OZend_Soap_Wsdl_Strategy_Compositez0t cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequencez/s aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplexz$r KZend_Soap_Wsdl_Strategy_AnyTypez%q MZend_Soap_Wsdl_Strategy_Abstractzp =Zend_Soap_Wsdl_Exceptionzo -Zend_Soap_Serverzn AZend_Soap_Server_Exceptionzm -Zend_Soap_Clientzl 9Zend_Soap_Client_Localzk AZend_Soap_Client_Exceptionzj ;Zend_Soap_Client_DotNetzi ;Zend_Soap_Client_Commonzh 9Zend_Soap_AutoDiscoverz%g MZend_Soap_AutoDiscover_Exceptionzf %Zend_Sessionz)e UZend_Session_Validator_HttpUserAgentz$d KZend_Session_Validator_Abstractz'c QZend_Session_SaveHandler_Exceptionz%b MZend_Session_SaveHandler_DbTableza 9Zend_Session_Namespacez` 9Zend_Session_Exceptionz_ 7Zend_Session_Abstractz^ 1Zend_Service_Yahooz$] KZend_Service_Yahoo_WebResultSetz!\ EZend_Service_Yahoo_WebResultz&[ OZend_Service_Yahoo_VideoResultSetz#Z IZend_Service_Yahoo_VideoResultz!Y EZend_Service_Yahoo_ResultSetzX ?Zend_Service_Yahoo_Resultz)W UZend_Service_Yahoo_PageDataResultSetz&V OZend_Service_Yahoo_PageDataResultz%U MZend_Service_Yahoo_NewsResultSetz"T GZend_Service_Yahoo_NewsResultz&S OZend_Service_Yahoo_LocalResultSetz#R IZend_Service_Yahoo_LocalResultz+Q YZend_Service_Yahoo_InlinkDataResultSetz(P SZend_Service_Yahoo_InlinkDataResultz&O OZend_Service_Yahoo_ImageResultSetz#N IZend_Service_Yahoo_ImageResultzM =Zend_Service_Yahoo_ImagezL 5Zend_Service_Twitterz K CZend_Service_Twitter_Searchz#J IZend_Service_Twitter_ExceptionzI ;Zend_Service_Technoratiz#H IZend_Service_Technorati_Weblogz"G GZend_Service_Technorati_Utilsz*F WZend_Service_Technorati_TagsResultSetz'E QZend_Service_Technorati_TagsResultz)D UZend_Service_Technorati_TagResultSetz&C OZend_Service_Technorati_TagResultz,B [Zend_Service_Technorati_SearchResultSetz)A UZend_Service_Technorati_SearchResultz&@ OZend_Service_Technorati_ResultSetz#? IZend_Service_Technorati_Resultz*> WZend_Service_Technorati_KeyInfoResultz*= WZend_Service_Technorati_GetInfoResultz&< OZend_Service_Technorati_Exceptionz1; eZend_Service_Technorati_DailyCountsResultSetz.: _Zend_Service_Technorati_DailyCountsResultz,9 [Zend_Service_Technorati_CosmosResultSetz)8 UZend_Service_Technorati_CosmosResultz+7 YZend_Service_Technorati_BlogInfoResultz#6 IZend_Service_Technorati_Authorz5 ;Zend_Service_StrikeIronz(4 SZend_Service_StrikeIron_ZipCodeInfoz23 gZend_Service_StrikeIron_USAddressVerificationz   S  gN2kK1^2dL


p
;
			p	;	Z,oJSxLF
a&U~H         0f cZend_Tool_Project_Context_Zf_FormsDirectoryz*e WZend_Tool_Project_Context_Zf_FormFilez-d ]Zend_Tool_Project_Context_Zf_DbTableFilez2c gZend_Tool_Project_Context_Zf_DbTableDirectoryz/b aZend_Tool_Project_Context_Zf_DataDirectoryz6a oZend_Tool_Project_Context_Zf_ControllersDirectoryz0` cZend_Tool_Project_Context_Zf_ControllerFilez2_ gZend_Tool_Project_Context_Zf_ConfigsDirectoryz,^ [Zend_Tool_Project_Context_Zf_ConfigFilez0] cZend_Tool_Project_Context_Zf_CacheDirectoryz/\ aZend_Tool_Project_Context_Zf_BootstrapFilez6[ oZend_Tool_Project_Context_Zf_ApplicationDirectoryz7Z qZend_Tool_Project_Context_Zf_ApplicationConfigFilez/Y aZend_Tool_Project_Context_Zf_ApisDirectoryz.X _Zend_Tool_Project_Context_Zf_ActionMethodz@W Zend_Tool_Project_Context_System_ProjectProvidersDirectoryz8V sZend_Tool_Project_Context_System_ProjectProfileFilez6U oZend_Tool_Project_Context_System_ProjectDirectoryz)T UZend_Tool_Project_Context_Repositoryz.S _Zend_Tool_Project_Context_Filesystem_Filez3R iZend_Tool_Project_Context_Filesystem_Directoryz2Q gZend_Tool_Project_Context_Filesystem_Abstractz(P SZend_Tool_Project_Context_Exceptionz-O ]Zend_Tool_Project_Context_Content_Enginez3N iZend_Tool_Project_Context_Content_Engine_Phtmlz;M yZend_Tool_Project_Context_Content_Engine_CodeGeneratorz0L cZend_Tool_Framework_System_Provider_Versionz0K cZend_Tool_Framework_System_Provider_Phpinfoz1J eZend_Tool_Framework_System_Provider_Manifestz(I SZend_Tool_Framework_System_Manifestz-H ]Zend_Tool_Framework_System_Action_Deletez-G ]Zend_Tool_Framework_System_Action_Createz!F EZend_Tool_Framework_Registryz+E YZend_Tool_Framework_Registry_Exceptionz+D YZend_Tool_Framework_Provider_Signaturez,C [Zend_Tool_Framework_Provider_Repositoryz+B YZend_Tool_Framework_Provider_Exceptionz*A WZend_Tool_Framework_Provider_Abstractz&@ OZend_Tool_Framework_Metadata_Toolz)? UZend_Tool_Framework_Metadata_Dynamicz'> QZend_Tool_Framework_Metadata_Basicz,= [Zend_Tool_Framework_Manifest_Repositoryz+< YZend_Tool_Framework_Manifest_Exceptionz1; eZend_Tool_Framework_Loader_IncludePathLoaderzJ: Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIteratorz(9 SZend_Tool_Framework_Loader_Abstractz"8 GZend_Tool_Framework_Exceptionz'7 QZend_Tool_Framework_Client_Storagez16 eZend_Tool_Framework_Client_Storage_Directoryz(5 SZend_Tool_Framework_Client_ResponsezD4 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separatorz'3 QZend_Tool_Framework_Client_Requestz92 uZend_Tool_Framework_Client_Interactive_InputResponsez81 sZend_Tool_Framework_Client_Interactive_InputRequestz80 sZend_Tool_Framework_Client_Interactive_InputHandlerz)/ UZend_Tool_Framework_Client_Exceptionz'. QZend_Tool_Framework_Client_ConsolezD- 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizerz0, cZend_Tool_Framework_Client_Console_Manifestz2+ gZend_Tool_Framework_Client_Console_HelpSystemz6* oZend_Tool_Framework_Client_Console_ArgumentParserz&) OZend_Tool_Framework_Client_Configz(( SZend_Tool_Framework_Client_Abstractz*' WZend_Tool_Framework_Action_Repositoryz)& UZend_Tool_Framework_Action_Exceptionz$% KZend_Tool_Framework_Action_Basez$ 'Zend_TimeSyncz# 1Zend_TimeSync_Sntpz" 9Zend_TimeSync_Protocolz! /Zend_TimeSync_Ntpz  ;Zend_TimeSync_Exceptionz +Zend_Text_Tablez 3Zend_Text_Table_Rowz ?Zend_Text_Table_Exceptionz& OZend_Text_Table_Decorator_Unicodez$ KZend_Text_Table_Decorator_Asciiz 9Zend_Text_Table_Columnz 3Zend_Text_MultiBytez -Zend_Text_Figletz AZend_Text_Figlet_Exceptionz 3Zend_Text_Exceptionz& OZend_Test_PHPUnit_Db_SimpleTesterz, [Zend_Test_PHPUnit_Db_Operation_Truncatez   T  b,`*L]%V


k
'				=	['f-zO-|T(L$jH%xZC(cE'                                : ?Zend_Validate_Db_Abstractz9 1Zend_Validate_Datez8 3Zend_Validate_Ccnumz7 7Zend_Validate_Betweenz6 7Zend_Validate_Barcodez5 AZend_Validate_Barcode_UpcAz 4 CZend_Validate_Barcode_Ean13z3 3Zend_Validate_Alphaz2 3Zend_Validate_Alnumz1 9Zend_Validate_Abstractz0 Zend_Uriz/ 'Zend_Uri_Httpz. 1Zend_Uri_Exceptionz- )Zend_Translatez, 7Zend_Translate_Pluralz+ =Zend_Translate_Exceptionz* 9Zend_Translate_Adapterz!) EZend_Translate_Adapter_XmlTmz!( EZend_Translate_Adapter_Xliffz' AZend_Translate_Adapter_Tmxz& AZend_Translate_Adapter_Tbxz% ?Zend_Translate_Adapter_Qtz$ AZend_Translate_Adapter_Iniz## IZend_Translate_Adapter_Gettextz" AZend_Translate_Adapter_Csvz!! EZend_Translate_Adapter_Arrayz$  KZend_Tool_Project_Provider_Viewz$ KZend_Tool_Project_Provider_Testz/ aZend_Tool_Project_Provider_ProjectProviderz' QZend_Tool_Project_Provider_Projectz' QZend_Tool_Project_Provider_Profilez& OZend_Tool_Project_Provider_Modulez% MZend_Tool_Project_Provider_Modelz( SZend_Tool_Project_Provider_Manifestz$ KZend_Tool_Project_Provider_Formz) UZend_Tool_Project_Provider_Exceptionz* WZend_Tool_Project_Provider_Controllerz& OZend_Tool_Project_Provider_Actionz( SZend_Tool_Project_Provider_Abstractz ?Zend_Tool_Project_Profilez' QZend_Tool_Project_Profile_Resourcez9 uZend_Tool_Project_Profile_Resource_SearchConstraintsz1 eZend_Tool_Project_Profile_Resource_Containerz= }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilterz5 mZend_Tool_Project_Profile_Iterator_ContextFilterz- ]Zend_Tool_Project_Profile_FileParser_Xmlz( SZend_Tool_Project_Profile_Exceptionz  CZend_Tool_Project_Exceptionz<
 {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectoryz0	 cZend_Tool_Project_Context_Zf_ViewsDirectoryz6 oZend_Tool_Project_Context_Zf_ViewScriptsDirectoryz0 cZend_Tool_Project_Context_Zf_ViewScriptFilez6 oZend_Tool_Project_Context_Zf_ViewHelpersDirectoryz6 oZend_Tool_Project_Context_Zf_ViewFiltersDirectoryzA Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectoryz2 gZend_Tool_Project_Context_Zf_UploadsDirectoryz0 cZend_Tool_Project_Context_Zf_TestsDirectoryz7 qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFilez@  Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectoryz1 eZend_Tool_Project_Context_Zf_TestLibraryFilez6~ oZend_Tool_Project_Context_Zf_TestLibraryDirectoryz:} wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFilez:| wZend_Tool_Project_Context_Zf_TestApplicationDirectoryz@{ Zend_Tool_Project_Context_Zf_TestApplicationControllerFilezEz Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectoryz>y Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFilez4x kZend_Tool_Project_Context_Zf_TemporaryDirectoryz3w iZend_Tool_Project_Context_Zf_SessionsDirectoryz8v sZend_Tool_Project_Context_Zf_SearchIndexesDirectoryz<u {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectoryz8t sZend_Tool_Project_Context_Zf_PublicScriptsDirectoryz1s eZend_Tool_Project_Context_Zf_PublicIndexFilez7r qZend_Tool_Project_Context_Zf_PublicImagesDirectoryz1q eZend_Tool_Project_Context_Zf_PublicDirectoryz5p mZend_Tool_Project_Context_Zf_ProjectProviderFilez2o gZend_Tool_Project_Context_Zf_ModulesDirectoryz1n eZend_Tool_Project_Context_Zf_ModuleDirectoryz1m eZend_Tool_Project_Context_Zf_ModelsDirectoryz+l YZend_Tool_Project_Context_Zf_ModelFilez/k aZend_Tool_Project_Context_Zf_LogsDirectoryz2j gZend_Tool_Project_Context_Zf_LocalesDirectoryz2i gZend_Tool_Project_Context_Zf_LibraryDirectoryz2h gZend_Tool_Project_Context_Zf_LayoutsDirectoryz.g _Zend_Tool_Project_Context_Zf_HtaccessFilez   l  rR1rM-zU5vW<qH" 




p
T
2
					j	L	(	sP-tP,
|Y6_9nE~Y!GdK9                & ;Zend_Wildfire_Exceptionz&% OZend_Wildfire_Channel_HttpHeadersz$ Zend_Viewz# -Zend_View_Streamz" 5Zend_View_Helper_Urlz! AZend_View_Helper_Translatez  AZend_View_Helper_ServerUrlz) UZend_View_Helper_RenderToPlaceholderz! EZend_View_Helper_Placeholderz* WZend_View_Helper_Placeholder_Registryz4 kZend_View_Helper_Placeholder_Registry_Exceptionz+ YZend_View_Helper_Placeholder_Containerz6 oZend_View_Helper_Placeholder_Container_Standalonez5 mZend_View_Helper_Placeholder_Container_Exceptionz4 kZend_View_Helper_Placeholder_Container_Abstractz! EZend_View_Helper_PartialLoopz =Zend_View_Helper_Partialz' QZend_View_Helper_Partial_Exceptionz' QZend_View_Helper_PaginationControlz  CZend_View_Helper_Navigationz( SZend_View_Helper_Navigation_Sitemapz% MZend_View_Helper_Navigation_Menuz& OZend_View_Helper_Navigation_Linksz/ aZend_View_Helper_Navigation_HelperAbstractz, [Zend_View_Helper_Navigation_Breadcrumbsz ;Zend_View_Helper_Layoutz 7Zend_View_Helper_Jsonz" GZend_View_Helper_InlineScriptz#
 IZend_View_Helper_HtmlQuicktimez	 ?Zend_View_Helper_HtmlPagez  CZend_View_Helper_HtmlObjectz ?Zend_View_Helper_HtmlListz AZend_View_Helper_HtmlFlashz! EZend_View_Helper_HtmlElementz AZend_View_Helper_HeadTitlez AZend_View_Helper_HeadStylez  CZend_View_Helper_HeadScriptz ?Zend_View_Helper_HeadMetaz  ?Zend_View_Helper_HeadLinkz" GZend_View_Helper_FormTextareaz~ ?Zend_View_Helper_FormTextz } CZend_View_Helper_FormSubmitz | CZend_View_Helper_FormSelectz{ AZend_View_Helper_FormResetzz AZend_View_Helper_FormRadioz"y GZend_View_Helper_FormPasswordzx ?Zend_View_Helper_FormNotez'w QZend_View_Helper_FormMultiCheckboxzv AZend_View_Helper_FormLabelzu AZend_View_Helper_FormImagez t CZend_View_Helper_FormHiddenzs ?Zend_View_Helper_FormFilez r CZend_View_Helper_FormErrorsz!q EZend_View_Helper_FormElementz"p GZend_View_Helper_FormCheckboxz o CZend_View_Helper_FormButtonzn 7Zend_View_Helper_Formzm ?Zend_View_Helper_Fieldsetzl =Zend_View_Helper_Doctypez!k EZend_View_Helper_DeclareVarszj 9Zend_View_Helper_Cyclezi =Zend_View_Helper_BaseUrlzh ;Zend_View_Helper_Actionzg ?Zend_View_Helper_Abstractzf 3Zend_View_Exceptionze 1Zend_View_Abstractzd %Zend_Versionzc 'Zend_Validatezb AZend_Validate_StringLengthz#a IZend_Validate_Sitemap_Priorityz` ?Zend_Validate_Sitemap_Locz"_ GZend_Validate_Sitemap_Lastmodz%^ MZend_Validate_Sitemap_Changefreqz] 3Zend_Validate_Regexz\ 9Zend_Validate_NotEmptyz[ 9Zend_Validate_LessThanzZ -Zend_Validate_IpzY /Zend_Validate_IntzX 7Zend_Validate_InArrayzW ;Zend_Validate_IdenticalzV 1Zend_Validate_IbanzU 9Zend_Validate_HostnamezT /Zend_Validate_HexzS ?Zend_Validate_GreaterThanzR 3Zend_Validate_Floatz!Q EZend_Validate_File_WordCountzP ?Zend_Validate_File_UploadzO ;Zend_Validate_File_SizezN ;Zend_Validate_File_Sha1z!M EZend_Validate_File_NotExistsz L CZend_Validate_File_MimeTypezK 9Zend_Validate_File_Md5zJ AZend_Validate_File_IsImagez$I KZend_Validate_File_IsCompressedz!H EZend_Validate_File_ImageSizezG ;Zend_Validate_File_Hashz!F EZend_Validate_File_FilesSizez!E EZend_Validate_File_ExtensionzD ?Zend_Validate_File_Existsz'C QZend_Validate_File_ExcludeMimeTypez(B SZend_Validate_File_ExcludeExtensionzA =Zend_Validate_File_Crc32z@ =Zend_Validate_File_Countz? ;Zend_Validate_Exceptionz> AZend_Validate_EmailAddressz= 5Zend_Validate_Digitsz"< GZend_Validate_Db_RecordExistsz$; KZend_Validate_Db_NoRecordExistsz   i  |R-|U:dCZ8kJ)




q
[
J
.
					i	B	Z.mS1\(k:f;e<_3Z-                   AZend_Auth_Adapter_InfoCard{ 9Zend_Auth_Adapter_Http{) UZend_Auth_Adapter_Http_Resolver_File{. _Zend_Auth_Adapter_Http_Resolver_Exception{  CZend_Auth_Adapter_Exception{
 =Zend_Auth_Adapter_Digest{	 ?Zend_Auth_Adapter_DbTable{ -Zend_Application{# IZend_Application_Resource_View{( SZend_Application_Resource_Translate{& OZend_Application_Resource_Session{% MZend_Application_Resource_Router{/ aZend_Application_Resource_ResourceAbstract{) UZend_Application_Resource_Navigation{& OZend_Application_Resource_Modules{%  MZend_Application_Resource_Locale{% MZend_Application_Resource_Layout{.~ _Zend_Application_Resource_Frontcontroller{(} SZend_Application_Resource_Exception{!| EZend_Application_Resource_Db{&{ OZend_Application_Module_Bootstrap{'z QZend_Application_Module_Autoloader{y AZend_Application_Exception{)x UZend_Application_Bootstrap_Exception{1w eZend_Application_Bootstrap_BootstrapAbstract{)v UZend_Application_Bootstrap_Bootstrap{u ?Zend_Amf_Value_TraitsInfo{-t ]Zend_Amf_Value_Messaging_RemotingMessage{*s WZend_Amf_Value_Messaging_ErrorMessage{,r [Zend_Amf_Value_Messaging_CommandMessage{*q WZend_Amf_Value_Messaging_AsyncMessage{-p ]Zend_Amf_Value_Messaging_ArrayCollection{0o cZend_Amf_Value_Messaging_AcknowledgeMessage{-n ]Zend_Amf_Value_Messaging_AbstractMessage{!m EZend_Amf_Value_MessageHeader{l AZend_Amf_Value_MessageBody{k =Zend_Amf_Value_ByteArray{j AZend_Amf_Util_BinaryStream{i +Zend_Amf_Server{h ?Zend_Amf_Server_Exception{g /Zend_Amf_Response{f 9Zend_Amf_Response_Http{e -Zend_Amf_Request{d 7Zend_Amf_Request_Http{c ?Zend_Amf_Parse_TypeLoader{b ?Zend_Amf_Parse_Serializer{#a IZend_Amf_Parse_Resource_Stream{(` SZend_Amf_Parse_Resource_MysqlResult{)_ UZend_Amf_Parse_Resource_MysqliResult{ ^ CZend_Amf_Parse_OutputStream{] AZend_Amf_Parse_InputStream{ \ CZend_Amf_Parse_Deserializer{#[ IZend_Amf_Parse_Amf3_Serializer{%Z MZend_Amf_Parse_Amf3_Deserializer{#Y IZend_Amf_Parse_Amf0_Serializer{%X MZend_Amf_Parse_Amf0_Deserializer{W 1Zend_Amf_Exception{V 1Zend_Amf_Constants{U 9Zend_Amf_Auth_Abstract{ T CZend_Amf_Adobe_Introspector{S AZend_Amf_Adobe_DbInspector{R 3Zend_Amf_Adobe_Auth{Q Zend_Acl{P 'Zend_Acl_Role{O 9Zend_Acl_Role_Registry{%N MZend_Acl_Role_Registry_Exception{M /Zend_Acl_Resource{L 1Zend_Acl_Exception{K /Zend_XmlRpc_ValuezJ =Zend_XmlRpc_Value_StructzI =Zend_XmlRpc_Value_StringzH =Zend_XmlRpc_Value_ScalarzG 7Zend_XmlRpc_Value_NilzF ?Zend_XmlRpc_Value_Integerz E CZend_XmlRpc_Value_ExceptionzD =Zend_XmlRpc_Value_DoublezC AZend_XmlRpc_Value_DateTimez!B EZend_XmlRpc_Value_CollectionzA ?Zend_XmlRpc_Value_Booleanz!@ EZend_XmlRpc_Value_BigIntegerz? =Zend_XmlRpc_Value_Base64z> ;Zend_XmlRpc_Value_Arrayz= 1Zend_XmlRpc_Serverz< ?Zend_XmlRpc_Server_Systemz; =Zend_XmlRpc_Server_Faultz!: EZend_XmlRpc_Server_Exceptionz9 =Zend_XmlRpc_Server_Cachez8 5Zend_XmlRpc_Responsez7 ?Zend_XmlRpc_Response_Httpz6 3Zend_XmlRpc_Requestz5 ?Zend_XmlRpc_Request_Stdinz4 =Zend_XmlRpc_Request_Httpz3 /Zend_XmlRpc_Faultz2 7Zend_XmlRpc_Exceptionz1 1Zend_XmlRpc_Clientz#0 IZend_XmlRpc_Client_ServerProxyz+/ YZend_XmlRpc_Client_ServerIntrospectionz+. YZend_XmlRpc_Client_IntrospectExceptionz%- MZend_XmlRpc_Client_HttpExceptionz&, OZend_XmlRpc_Client_FaultExceptionz!+ EZend_XmlRpc_Client_Exceptionz&* OZend_Wildfire_Protocol_JsonStreamz!) EZend_Wildfire_Plugin_FirePhpz.( _Zend_Wildfire_Plugin_FirePhp_TableMessagez)' UZend_Wildfire_Plugin_FirePhp_Messagez   Z  r@vT*~_0{X,pB




^
A
				x	Q	'U(m8nK+_0a+a8Mf8            60 oZend_Tool_Framework_Manifest_ProviderManifestable{6/ oZend_Tool_Framework_Manifest_MetadataManifestable{+. YZend_Tool_Framework_Manifest_Interface{+- YZend_Tool_Framework_Manifest_Indexable{4, kZend_Tool_Framework_Manifest_ActionManifestable{8+ sZend_Tool_Framework_Client_Storage_AdapterInterface{D* 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface{;) yZend_Tool_Framework_Client_Interactive_OutputInterface{:( wZend_Tool_Framework_Client_Interactive_InputInterface{)' UZend_Tool_Framework_Action_Interface{(& SZend_Text_Table_Decorator_Interface{% /Zend_Tag_Taggable{&$ OZend_Soap_Wsdl_Strategy_Interface{%# MZend_Session_Validator_Interface{'" QZend_Session_SaveHandler_Interface{! 7Zend_Server_Interface{4  kZend_Search_Lucene_Search_Highlighter_Interface{! EZend_Search_Lucene_Interface{3 iZend_Search_Lucene_Index_TermsStream_Interface{$ KZend_Queue_Stomp_FrameInterface{0 cZend_Queue_Stomp_Client_ConnectionInterface{( SZend_Queue_Adapter_AdapterInterface{ ?Zend_Pdf_Filter_Interface{& OZend_Pdf_ElementFactory_Interface{, [Zend_Paginator_ScrollingStyle_Interface{$ KZend_Paginator_AdapterAggregate{% MZend_Paginator_Adapter_Interface{$ KZend_Memory_Container_Interface{) UZend_Mail_Storage_Writable_Interface{' QZend_Mail_Storage_Folder_Interface{ =Zend_Mail_Part_Interface{  CZend_Mail_Message_Interface{! EZend_Log_Formatter_Interface{ ?Zend_Log_Filter_Interface{' QZend_Loader_PluginLoader_Interface{% MZend_Loader_Autoloader_Interface{0 cZend_Ldap_Node_Schema_ObjectClass_Interface{2 gZend_Ldap_Node_Schema_AttributeType_Interface{,
 [Zend_Ldap_Collection_Iterator_Interface{3	 iZend_InfoCard_Xml_Security_Transform_Interface{( SZend_InfoCard_Xml_KeyInfo_Interface{( SZend_InfoCard_Xml_Element_Interface{* WZend_InfoCard_Xml_Assertion_Interface{- ]Zend_InfoCard_Cipher_Symmetric_Interface{7 qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface{7 qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interface{+ YZend_InfoCard_Cipher_Pki_Rsa_Interface{' QZend_InfoCard_Cipher_Pki_Interface{$  KZend_InfoCard_Adapter_Interface{$ KZend_Http_Client_Adapter_Stream{'~ QZend_Http_Client_Adapter_Interface{} AZend_Gdata_App_MediaSource{.| _Zend_Form_Decorator_Marker_File_Interface{"{ GZend_Form_Decorator_Interface{z 7Zend_Filter_Interface{"y GZend_Filter_Encrypt_Interface{#x IZend_Feed_Reader_FeedInterface{$w KZend_Feed_Reader_EntryInterface{ v CZend_Feed_Builder_Interface{ u CZend_Db_Statement_Interface{)t UZend_Crypt_Math_BigInteger_Interface{+s YZend_Controller_Router_Route_Interface{%r MZend_Controller_Router_Interface{)q UZend_Controller_Dispatcher_Interface{%p MZend_Controller_Action_Interface{o 5Zend_Captcha_Adapter{!n EZend_Cache_Backend_Interface{)m UZend_Cache_Backend_ExtendedInterface{ l CZend_Auth_Storage_Interface{ k CZend_Auth_Adapter_Interface{.j _Zend_Auth_Adapter_Http_Resolver_Interface{'i QZend_Application_Resource_Resource{4h kZend_Application_Bootstrap_ResourceBootstrapper{,g [Zend_Application_Bootstrap_Bootstrapper{f ;Zend_Acl_Role_Interface{ e CZend_Acl_Resource_Interface{d ?Zend_Acl_Assert_Interface{#c IZend_Wildfire_Plugin_Interfacez$b KZend_Wildfire_Channel_Interfaceza 3Zend_View_Interfacez'` QZend_View_Helper_Navigation_Helperz_ AZend_View_Helper_Interfacez^ ;Zend_Validate_Interfacez3] iZend_Tool_Project_Profile_FileParser_Interfacez:\ wZend_Tool_Project_Context_System_TopLevelRestrictablez5[ mZend_Tool_Project_Context_System_NotOverwritablez/Z aZend_Tool_Project_Context_System_Interfacez(Y SZend_Tool_Project_Context_Interfacez+X YZend_Tool_Framework_Registry_Interfacez2W gZend_Tool_Framework_Registry_EnabledInterfacez   e  g?e@y^F)}jP6^6



T
(
 				T	.rT<pT+\%|Q ]>yQ& W-e:                     *t WZend_Controller_Response_HttpTestCase{"s GZend_Controller_Response_Http{'r QZend_Controller_Response_Exception{!q EZend_Controller_Response_Cli{&p OZend_Controller_Response_Abstract{#o IZend_Controller_Request_Simple{)n UZend_Controller_Request_HttpTestCase{!m EZend_Controller_Request_Http{&l OZend_Controller_Request_Exception{&k OZend_Controller_Request_Apache404{%j MZend_Controller_Request_Abstract{&i OZend_Controller_Plugin_PutHandler{(h SZend_Controller_Plugin_ErrorHandler{"g GZend_Controller_Plugin_Broker{'f QZend_Controller_Plugin_ActionStack{$e KZend_Controller_Plugin_Abstract{d 7Zend_Controller_Front{c ?Zend_Controller_Exception{(b SZend_Controller_Dispatcher_Standard{)a UZend_Controller_Dispatcher_Exception{(` SZend_Controller_Dispatcher_Abstract{_ 9Zend_Controller_Action{(^ SZend_Controller_Action_HelperBroker{6] oZend_Controller_Action_HelperBroker_PriorityStack{/\ aZend_Controller_Action_Helper_ViewRenderer{&[ OZend_Controller_Action_Helper_Url{-Z ]Zend_Controller_Action_Helper_Redirector{'Y QZend_Controller_Action_Helper_Json{1X eZend_Controller_Action_Helper_FlashMessenger{0W cZend_Controller_Action_Helper_ContextSwitch{<V {Zend_Controller_Action_Helper_AutoCompleteScriptaculous{3U iZend_Controller_Action_Helper_AutoCompleteDojo{8T sZend_Controller_Action_Helper_AutoComplete_Abstract{.S _Zend_Controller_Action_Helper_AjaxContext{.R _Zend_Controller_Action_Helper_ActionStack{+Q YZend_Controller_Action_Helper_Abstract{%P MZend_Controller_Action_Exception{O 3Zend_Console_Getopt{"N GZend_Console_Getopt_Exception{M #Zend_Config{L +Zend_Config_Xml{K 1Zend_Config_Writer{J 9Zend_Config_Writer_Xml{I 9Zend_Config_Writer_Ini{H =Zend_Config_Writer_Array{G +Zend_Config_Ini{F 7Zend_Config_Exception{$E KZend_CodeGenerator_Php_Property{1D eZend_CodeGenerator_Php_Property_DefaultValue{%C MZend_CodeGenerator_Php_Parameter{2B gZend_CodeGenerator_Php_Parameter_DefaultValue{"A GZend_CodeGenerator_Php_Method{,@ [Zend_CodeGenerator_Php_Member_Container{+? YZend_CodeGenerator_Php_Member_Abstract{ > CZend_CodeGenerator_Php_File{%= MZend_CodeGenerator_Php_Exception{$< KZend_CodeGenerator_Php_Docblock{(; SZend_CodeGenerator_Php_Docblock_Tag{/: aZend_CodeGenerator_Php_Docblock_Tag_Return{.9 _Zend_CodeGenerator_Php_Docblock_Tag_Param{08 cZend_CodeGenerator_Php_Docblock_Tag_License{!7 EZend_CodeGenerator_Php_Class{ 6 CZend_CodeGenerator_Php_Body{$5 KZend_CodeGenerator_Php_Abstract{!4 EZend_CodeGenerator_Exception{ 3 CZend_CodeGenerator_Abstract{2 /Zend_Captcha_Word{1 9Zend_Captcha_ReCaptcha{0 1Zend_Captcha_Image{/ 3Zend_Captcha_Figlet{. 9Zend_Captcha_Exception{- /Zend_Captcha_Dumb{, /Zend_Captcha_Base{+ !Zend_Cache{* =Zend_Cache_Frontend_Page{) AZend_Cache_Frontend_Output{!( EZend_Cache_Frontend_Function{' =Zend_Cache_Frontend_File{& ?Zend_Cache_Frontend_Class{% 5Zend_Cache_Exception{$ +Zend_Cache_Core{# 1Zend_Cache_Backend{"" GZend_Cache_Backend_ZendServer{(! SZend_Cache_Backend_ZendServer_ShMem{'  QZend_Cache_Backend_ZendServer_Disk{$ KZend_Cache_Backend_ZendPlatform{ ?Zend_Cache_Backend_Xcache{! EZend_Cache_Backend_TwoLevels{ ;Zend_Cache_Backend_Test{ ?Zend_Cache_Backend_Sqlite{! EZend_Cache_Backend_Memcached{ ;Zend_Cache_Backend_File{ 9Zend_Cache_Backend_Apc{ Zend_Auth{ ?Zend_Auth_Storage_Session{$ KZend_Auth_Storage_NonPersistent{  CZend_Auth_Storage_Exception{ -Zend_Auth_Result{ 3Zend_Auth_Exception{ =Zend_Auth_Adapter_OpenId{ 9Zend_Auth_Adapter_Ldap{   m Z/~Y._8{dQ1pT2	



}
Y
5
					l	C	$	
yXA`?wX7iL%K`5]5d>                                             +a YZend_Dojo_Form_Element_FilteringSelect{"` GZend_Dojo_Form_Element_Editor{&_ OZend_Dojo_Form_Element_DijitMulti{!^ EZend_Dojo_Form_Element_Dijit{'] QZend_Dojo_Form_Element_DateTextBox{+\ YZend_Dojo_Form_Element_CurrencyTextBox{$[ KZend_Dojo_Form_Element_ComboBox{$Z KZend_Dojo_Form_Element_CheckBox{"Y GZend_Dojo_Form_Element_Button{ X CZend_Dojo_Form_DisplayGroup{*W WZend_Dojo_Form_Decorator_TabContainer{,V [Zend_Dojo_Form_Decorator_StackContainer{,U [Zend_Dojo_Form_Decorator_SplitContainer{'T QZend_Dojo_Form_Decorator_DijitForm{*S WZend_Dojo_Form_Decorator_DijitElement{,R [Zend_Dojo_Form_Decorator_DijitContainer{)Q UZend_Dojo_Form_Decorator_ContentPane{-P ]Zend_Dojo_Form_Decorator_BorderContainer{+O YZend_Dojo_Form_Decorator_AccordionPane{0N cZend_Dojo_Form_Decorator_AccordionContainer{M 3Zend_Dojo_Exception{L )Zend_Dojo_Data{K 5Zend_Dojo_BuildLayer{J !Zend_Debug{I Zend_Db{H 'Zend_Db_Table{G 5Zend_Db_Table_Select{#F IZend_Db_Table_Select_Exception{E 5Zend_Db_Table_Rowset{#D IZend_Db_Table_Rowset_Exception{"C GZend_Db_Table_Rowset_Abstract{B /Zend_Db_Table_Row{ A CZend_Db_Table_Row_Exception{@ AZend_Db_Table_Row_Abstract{? ;Zend_Db_Table_Exception{> =Zend_Db_Table_Definition{= 9Zend_Db_Table_Abstract{< /Zend_Db_Statement{; =Zend_Db_Statement_Sqlsrv{': QZend_Db_Statement_Sqlsrv_Exception{9 7Zend_Db_Statement_Pdo{8 ?Zend_Db_Statement_Pdo_Oci{7 ?Zend_Db_Statement_Pdo_Ibm{6 =Zend_Db_Statement_Oracle{'5 QZend_Db_Statement_Oracle_Exception{4 =Zend_Db_Statement_Mysqli{'3 QZend_Db_Statement_Mysqli_Exception{ 2 CZend_Db_Statement_Exception{1 7Zend_Db_Statement_Db2{$0 KZend_Db_Statement_Db2_Exception{/ )Zend_Db_Select{. =Zend_Db_Select_Exception{- -Zend_Db_Profiler{, 9Zend_Db_Profiler_Query{+ =Zend_Db_Profiler_Firebug{* AZend_Db_Profiler_Exception{) %Zend_Db_Expr{( /Zend_Db_Exception{' 9Zend_Db_Adapter_Sqlsrv{%& MZend_Db_Adapter_Sqlsrv_Exception{% AZend_Db_Adapter_Pdo_Sqlite{$ ?Zend_Db_Adapter_Pdo_Pgsql{# ;Zend_Db_Adapter_Pdo_Oci{" ?Zend_Db_Adapter_Pdo_Mysql{! ?Zend_Db_Adapter_Pdo_Mssql{  ;Zend_Db_Adapter_Pdo_Ibm{  CZend_Db_Adapter_Pdo_Ibm_Ids{  CZend_Db_Adapter_Pdo_Ibm_Db2{! EZend_Db_Adapter_Pdo_Abstract{ 9Zend_Db_Adapter_Oracle{% MZend_Db_Adapter_Oracle_Exception{ 9Zend_Db_Adapter_Mysqli{% MZend_Db_Adapter_Mysqli_Exception{ ?Zend_Db_Adapter_Exception{ 3Zend_Db_Adapter_Db2{" GZend_Db_Adapter_Db2_Exception{ =Zend_Db_Adapter_Abstract{ Zend_Date{ 3Zend_Date_Exception{ 5Zend_Date_DateObject{ -Zend_Date_Cities{ 'Zend_Currency{ ;Zend_Currency_Exception{ !Zend_Crypt{ )Zend_Crypt_Rsa{ 1Zend_Crypt_Rsa_Key{ ?Zend_Crypt_Rsa_Key_Public{
 AZend_Crypt_Rsa_Key_Private{	 +Zend_Crypt_Math{ ?Zend_Crypt_Math_Exception{ AZend_Crypt_Math_BigInteger{# IZend_Crypt_Math_BigInteger_Gmp{) UZend_Crypt_Math_BigInteger_Exception{& OZend_Crypt_Math_BigInteger_Bcmath{ +Zend_Crypt_Hmac{ ?Zend_Crypt_Hmac_Exception{ 5Zend_Crypt_Exception{  =Zend_Crypt_DiffieHellman{' QZend_Crypt_DiffieHellman_Exception{!~ EZend_Controller_Router_Route{(} SZend_Controller_Router_Route_Static{'| QZend_Controller_Router_Route_Regex{({ SZend_Controller_Router_Route_Module{*z WZend_Controller_Router_Route_Hostname{'y QZend_Controller_Router_Route_Chain{*x WZend_Controller_Router_Route_Abstract{#w IZend_Controller_Router_Rewrite{%v MZend_Controller_Router_Exception{$u KZend_Controller_Router_Abstract{   c  vGtM"l;nDqD!



|
P
$				z	M	 }S#s\A*
iH+W*T!_0rP*	tO4                       D 5Zend_Filter_BaseName{C /Zend_Filter_Alpha{B /Zend_Filter_Alnum{A 1Zend_File_Transfer{!@ EZend_File_Transfer_Exception{$? KZend_File_Transfer_Adapter_Http{(> SZend_File_Transfer_Adapter_Abstract{= Zend_Feed{< 'Zend_Feed_Rss{; -Zend_Feed_Reader{: =Zend_Feed_Reader_FeedSet{"9 GZend_Feed_Reader_FeedAbstract{8 ?Zend_Feed_Reader_Feed_Rss{7 AZend_Feed_Reader_Feed_Atom{36 iZend_Feed_Reader_Extension_WellFormedWeb_Entry{,5 [Zend_Feed_Reader_Extension_Thread_Entry{04 cZend_Feed_Reader_Extension_Syndication_Feed{+3 YZend_Feed_Reader_Extension_Slash_Entry{,2 [Zend_Feed_Reader_Extension_Podcast_Feed{-1 ]Zend_Feed_Reader_Extension_Podcast_Entry{,0 [Zend_Feed_Reader_Extension_FeedAbstract{-/ ]Zend_Feed_Reader_Extension_EntryAbstract{/. aZend_Feed_Reader_Extension_DublinCore_Feed{0- cZend_Feed_Reader_Extension_DublinCore_Entry{4, kZend_Feed_Reader_Extension_CreativeCommons_Feed{5+ mZend_Feed_Reader_Extension_CreativeCommons_Entry{-* ]Zend_Feed_Reader_Extension_Content_Entry{)) UZend_Feed_Reader_Extension_Atom_Feed{*( WZend_Feed_Reader_Extension_Atom_Entry{#' IZend_Feed_Reader_EntryAbstract{& AZend_Feed_Reader_Entry_Rss{ % CZend_Feed_Reader_Entry_Atom{$ 3Zend_Feed_Exception{# 3Zend_Feed_Entry_Rss{" 5Zend_Feed_Entry_Atom{! =Zend_Feed_Entry_Abstract{  /Zend_Feed_Element{ /Zend_Feed_Builder{ =Zend_Feed_Builder_Header{$ KZend_Feed_Builder_Header_Itunes{  CZend_Feed_Builder_Exception{ ;Zend_Feed_Builder_Entry{ )Zend_Feed_Atom{ 1Zend_Feed_Abstract{ )Zend_Exception{ )Zend_Dom_Query{ 7Zend_Dom_Query_Result{ =Zend_Dom_Query_Css2Xpath{ 1Zend_Dom_Exception{ Zend_Dojo{) UZend_Dojo_View_Helper_VerticalSlider{, [Zend_Dojo_View_Helper_ValidationTextBox{& OZend_Dojo_View_Helper_TimeTextBox{" GZend_Dojo_View_Helper_TextBox{# IZend_Dojo_View_Helper_Textarea{' QZend_Dojo_View_Helper_TabContainer{' QZend_Dojo_View_Helper_SubmitButton{) UZend_Dojo_View_Helper_StackContainer{)
 UZend_Dojo_View_Helper_SplitContainer{!	 EZend_Dojo_View_Helper_Slider{) UZend_Dojo_View_Helper_SimpleTextarea{& OZend_Dojo_View_Helper_RadioButton{* WZend_Dojo_View_Helper_PasswordTextBox{( SZend_Dojo_View_Helper_NumberTextBox{( SZend_Dojo_View_Helper_NumberSpinner{+ YZend_Dojo_View_Helper_HorizontalSlider{ AZend_Dojo_View_Helper_Form{* WZend_Dojo_View_Helper_FilteringSelect{!  EZend_Dojo_View_Helper_Editor{ AZend_Dojo_View_Helper_Dojo{)~ UZend_Dojo_View_Helper_Dojo_Container{)} UZend_Dojo_View_Helper_DijitContainer{ | CZend_Dojo_View_Helper_Dijit{&{ OZend_Dojo_View_Helper_DateTextBox{&z OZend_Dojo_View_Helper_CustomDijit{*y WZend_Dojo_View_Helper_CurrencyTextBox{&x OZend_Dojo_View_Helper_ContentPane{#w IZend_Dojo_View_Helper_ComboBox{#v IZend_Dojo_View_Helper_CheckBox{!u EZend_Dojo_View_Helper_Button{*t WZend_Dojo_View_Helper_BorderContainer{(s SZend_Dojo_View_Helper_AccordionPane{-r ]Zend_Dojo_View_Helper_AccordionContainer{q =Zend_Dojo_View_Exception{p )Zend_Dojo_Form{o 9Zend_Dojo_Form_SubForm{*n WZend_Dojo_Form_Element_VerticalSlider{-m ]Zend_Dojo_Form_Element_ValidationTextBox{'l QZend_Dojo_Form_Element_TimeTextBox{#k IZend_Dojo_Form_Element_TextBox{$j KZend_Dojo_Form_Element_Textarea{(i SZend_Dojo_Form_Element_SubmitButton{"h GZend_Dojo_Form_Element_Slider{*g WZend_Dojo_Form_Element_SimpleTextarea{'f QZend_Dojo_Form_Element_RadioButton{+e YZend_Dojo_Form_Element_PasswordTextBox{)d UZend_Dojo_Form_Element_NumberTextBox{)c UZend_Dojo_Form_Element_NumberSpinner{,b [Zend_Dojo_Form_Element_HorizontalSlider{   k qM1kJ,iG%o@jA



w
R
-
				m	G	"	lJ(kJ(bBpO0f8_5g>|V0                                          $/ KZend_Gdata_App_Extension_Person{". GZend_Gdata_App_Extension_Name{"- GZend_Gdata_App_Extension_Logo{", GZend_Gdata_App_Extension_Link{ + CZend_Gdata_App_Extension_Id{"* GZend_Gdata_App_Extension_Icon{') QZend_Gdata_App_Extension_Generator{#( IZend_Gdata_App_Extension_Email{%' MZend_Gdata_App_Extension_Element{$& KZend_Gdata_App_Extension_Edited{#% IZend_Gdata_App_Extension_Draft{%$ MZend_Gdata_App_Extension_Control{)# UZend_Gdata_App_Extension_Contributor{%" MZend_Gdata_App_Extension_Content{&! OZend_Gdata_App_Extension_Category{$  KZend_Gdata_App_Extension_Author{ =Zend_Gdata_App_Exception{ 5Zend_Gdata_App_Entry{, [Zend_Gdata_App_CaptchaRequiredException{# IZend_Gdata_App_BaseMediaSource{ 3Zend_Gdata_App_Base{* WZend_Gdata_App_BadMethodCallException{! EZend_Gdata_App_AuthException{ Zend_Form{ /Zend_Form_SubForm{ 3Zend_Form_Exception{ /Zend_Form_Element{ ;Zend_Form_Element_Xhtml{ AZend_Form_Element_Textarea{ 9Zend_Form_Element_Text{ =Zend_Form_Element_Submit{ =Zend_Form_Element_Select{ ;Zend_Form_Element_Reset{ ;Zend_Form_Element_Radio{ AZend_Form_Element_Password{" GZend_Form_Element_Multiselect{$ KZend_Form_Element_MultiCheckbox{
 ;Zend_Form_Element_Multi{	 ;Zend_Form_Element_Image{ =Zend_Form_Element_Hidden{ 9Zend_Form_Element_Hash{ 9Zend_Form_Element_File{  CZend_Form_Element_Exception{ AZend_Form_Element_Checkbox{ ?Zend_Form_Element_Captcha{ =Zend_Form_Element_Button{ 9Zend_Form_DisplayGroup{#  IZend_Form_Decorator_ViewScript{# IZend_Form_Decorator_ViewHelper{ ~ CZend_Form_Decorator_Tooltip{(} SZend_Form_Decorator_PrepareElements{| ?Zend_Form_Decorator_Label{{ ?Zend_Form_Decorator_Image{ z CZend_Form_Decorator_HtmlTag{#y IZend_Form_Decorator_FormErrors{%x MZend_Form_Decorator_FormElements{w =Zend_Form_Decorator_Form{v =Zend_Form_Decorator_File{!u EZend_Form_Decorator_Fieldset{"t GZend_Form_Decorator_Exception{s AZend_Form_Decorator_Errors{$r KZend_Form_Decorator_DtDdWrapper{$q KZend_Form_Decorator_Description{ p CZend_Form_Decorator_Captcha{%o MZend_Form_Decorator_Captcha_Word{!n EZend_Form_Decorator_Callback{!m EZend_Form_Decorator_Abstract{l #Zend_Filter{+k YZend_Filter_Word_UnderscoreToSeparator{&j OZend_Filter_Word_UnderscoreToDash{+i YZend_Filter_Word_UnderscoreToCamelCase{*h WZend_Filter_Word_SeparatorToSeparator{%g MZend_Filter_Word_SeparatorToDash{*f WZend_Filter_Word_SeparatorToCamelCase{(e SZend_Filter_Word_Separator_Abstract{&d OZend_Filter_Word_DashToUnderscore{%c MZend_Filter_Word_DashToSeparator{%b MZend_Filter_Word_DashToCamelCase{+a YZend_Filter_Word_CamelCaseToUnderscore{*` WZend_Filter_Word_CamelCaseToSeparator{%_ MZend_Filter_Word_CamelCaseToDash{^ 7Zend_Filter_StripTags{] ?Zend_Filter_StripNewlines{\ 9Zend_Filter_StringTrim{[ ?Zend_Filter_StringToUpper{Z ?Zend_Filter_StringToLower{Y 5Zend_Filter_RealPath{X ;Zend_Filter_PregReplace{&W OZend_Filter_NormalizedToLocalized{&V OZend_Filter_LocalizedToNormalized{U +Zend_Filter_Int{T /Zend_Filter_Input{S 7Zend_Filter_Inflector{R =Zend_Filter_HtmlEntities{Q AZend_Filter_File_UpperCase{P ;Zend_Filter_File_Rename{O AZend_Filter_File_LowerCase{N =Zend_Filter_File_Encrypt{M =Zend_Filter_File_Decrypt{L 7Zend_Filter_Exception{K 3Zend_Filter_Encrypt{ J CZend_Filter_Encrypt_Openssl{I AZend_Filter_Encrypt_Mcrypt{H +Zend_Filter_Dir{G 1Zend_Filter_Digits{F 3Zend_Filter_Decrypt{E 5Zend_Filter_Callback{   _  [2vZ3];uM`1



^
9
 				z	N	![,uK"[,g7	^6c;b<d2               ' QZend_Gdata_Extension_OriginalEvent{0 cZend_Gdata_Extension_OpenSearchTotalResults{. _Zend_Gdata_Extension_OpenSearchStartIndex{0 cZend_Gdata_Extension_OpenSearchItemsPerPage{"
 GZend_Gdata_Extension_FeedLink{*	 WZend_Gdata_Extension_ExtendedProperty{% MZend_Gdata_Extension_EventStatus{# IZend_Gdata_Extension_EntryLink{" GZend_Gdata_Extension_Comments{& OZend_Gdata_Extension_AttendeeType{( SZend_Gdata_Extension_AttendeeStatus{ +Zend_Gdata_Exif{ 5Zend_Gdata_Exif_Feed{# IZend_Gdata_Exif_Extension_Time{#  IZend_Gdata_Exif_Extension_Tags{$ KZend_Gdata_Exif_Extension_Model{#~ IZend_Gdata_Exif_Extension_Make{"} GZend_Gdata_Exif_Extension_Iso{,| [Zend_Gdata_Exif_Extension_ImageUniqueId{${ KZend_Gdata_Exif_Extension_FStop{*z WZend_Gdata_Exif_Extension_FocalLength{$y KZend_Gdata_Exif_Extension_Flash{'x QZend_Gdata_Exif_Extension_Exposure{'w QZend_Gdata_Exif_Extension_Distance{v 7Zend_Gdata_Exif_Entry{u -Zend_Gdata_Entry{t 7Zend_Gdata_DublinCore{*s WZend_Gdata_DublinCore_Extension_Title{,r [Zend_Gdata_DublinCore_Extension_Subject{+q YZend_Gdata_DublinCore_Extension_Rights{.p _Zend_Gdata_DublinCore_Extension_Publisher{-o ]Zend_Gdata_DublinCore_Extension_Language{/n aZend_Gdata_DublinCore_Extension_Identifier{+m YZend_Gdata_DublinCore_Extension_Format{0l cZend_Gdata_DublinCore_Extension_Description{)k UZend_Gdata_DublinCore_Extension_Date{,j [Zend_Gdata_DublinCore_Extension_Creator{i +Zend_Gdata_Docs{h 7Zend_Gdata_Docs_Query{%g MZend_Gdata_Docs_DocumentListFeed{&f OZend_Gdata_Docs_DocumentListEntry{e 9Zend_Gdata_ClientLogin{d 3Zend_Gdata_Calendar{!c EZend_Gdata_Calendar_ListFeed{"b GZend_Gdata_Calendar_ListEntry{-a ]Zend_Gdata_Calendar_Extension_WebContent{+` YZend_Gdata_Calendar_Extension_Timezone{9_ uZend_Gdata_Calendar_Extension_SendEventNotifications{+^ YZend_Gdata_Calendar_Extension_Selected{+] YZend_Gdata_Calendar_Extension_QuickAdd{'\ QZend_Gdata_Calendar_Extension_Link{)[ UZend_Gdata_Calendar_Extension_Hidden{(Z SZend_Gdata_Calendar_Extension_Color{.Y _Zend_Gdata_Calendar_Extension_AccessLevel{#X IZend_Gdata_Calendar_EventQuery{"W GZend_Gdata_Calendar_EventFeed{#V IZend_Gdata_Calendar_EventEntry{U -Zend_Gdata_Books{!T EZend_Gdata_Books_VolumeQuery{ S CZend_Gdata_Books_VolumeFeed{!R EZend_Gdata_Books_VolumeEntry{+Q YZend_Gdata_Books_Extension_Viewability{-P ]Zend_Gdata_Books_Extension_ThumbnailLink{&O OZend_Gdata_Books_Extension_Review{+N YZend_Gdata_Books_Extension_PreviewLink{(M SZend_Gdata_Books_Extension_InfoLink{-L ]Zend_Gdata_Books_Extension_Embeddability{)K UZend_Gdata_Books_Extension_BooksLink{-J ]Zend_Gdata_Books_Extension_BooksCategory{.I _Zend_Gdata_Books_Extension_AnnotationLink{$H KZend_Gdata_Books_CollectionFeed{%G MZend_Gdata_Books_CollectionEntry{F 1Zend_Gdata_AuthSub{E )Zend_Gdata_App{$D KZend_Gdata_App_VersionException{C 3Zend_Gdata_App_Util{#B IZend_Gdata_App_MediaFileSource{A ?Zend_Gdata_App_MediaEntry{2@ gZend_Gdata_App_LoggingHttpClientAdapterSocket{? AZend_Gdata_App_IOException{,> [Zend_Gdata_App_InvalidArgumentException{!= EZend_Gdata_App_HttpException{$< KZend_Gdata_App_FeedSourceParent{#; IZend_Gdata_App_FeedEntryParent{: 3Zend_Gdata_App_Feed{9 =Zend_Gdata_App_Extension{!8 EZend_Gdata_App_Extension_Uri{%7 MZend_Gdata_App_Extension_Updated{#6 IZend_Gdata_App_Extension_Title{"5 GZend_Gdata_App_Extension_Text{%4 MZend_Gdata_App_Extension_Summary{&3 OZend_Gdata_App_Extension_Subtitle{$2 KZend_Gdata_App_Extension_Source{$1 KZend_Gdata_App_Extension_Rights{'0 QZend_Gdata_App_Extension_Published{   b  ]3pH!gHuN(sP7




a
B
					n	D		 tIlI*h4yJkR/\1Nc:                    *p WZend_Gdata_Photos_Extension_NumPhotos{)o UZend_Gdata_Photos_Extension_Nickname{%n MZend_Gdata_Photos_Extension_Name{2m gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum{)l UZend_Gdata_Photos_Extension_Location{#k IZend_Gdata_Photos_Extension_Id{'j QZend_Gdata_Photos_Extension_Height{2i gZend_Gdata_Photos_Extension_CommentingEnabled{-h ]Zend_Gdata_Photos_Extension_CommentCount{'g QZend_Gdata_Photos_Extension_Client{)f UZend_Gdata_Photos_Extension_Checksum{*e WZend_Gdata_Photos_Extension_BytesUsed{(d SZend_Gdata_Photos_Extension_AlbumId{'c QZend_Gdata_Photos_Extension_Access{#b IZend_Gdata_Photos_CommentEntry{!a EZend_Gdata_Photos_AlbumQuery{ ` CZend_Gdata_Photos_AlbumFeed{!_ EZend_Gdata_Photos_AlbumEntry{^ 3Zend_Gdata_MimeFile{] ?Zend_Gdata_MimeBodyString{\ AZend_Gdata_MediaMimeStream{[ -Zend_Gdata_Media{Z 7Zend_Gdata_Media_Feed{*Y WZend_Gdata_Media_Extension_MediaTitle{.X _Zend_Gdata_Media_Extension_MediaThumbnail{)W UZend_Gdata_Media_Extension_MediaText{0V cZend_Gdata_Media_Extension_MediaRestriction{+U YZend_Gdata_Media_Extension_MediaRating{+T YZend_Gdata_Media_Extension_MediaPlayer{-S ]Zend_Gdata_Media_Extension_MediaKeywords{)R UZend_Gdata_Media_Extension_MediaHash{*Q WZend_Gdata_Media_Extension_MediaGroup{0P cZend_Gdata_Media_Extension_MediaDescription{+O YZend_Gdata_Media_Extension_MediaCredit{.N _Zend_Gdata_Media_Extension_MediaCopyright{,M [Zend_Gdata_Media_Extension_MediaContent{-L ]Zend_Gdata_Media_Extension_MediaCategory{K 9Zend_Gdata_Media_Entry{J AZend_Gdata_Kind_EventEntry{I 7Zend_Gdata_HttpClient{*H WZend_Gdata_HttpAdapterStreamingSocket{)G UZend_Gdata_HttpAdapterStreamingProxy{F /Zend_Gdata_Health{E ;Zend_Gdata_Health_Query{&D OZend_Gdata_Health_ProfileListFeed{'C QZend_Gdata_Health_ProfileListEntry{"B GZend_Gdata_Health_ProfileFeed{#A IZend_Gdata_Health_ProfileEntry{$@ KZend_Gdata_Health_Extension_Ccr{? )Zend_Gdata_Geo{> 3Zend_Gdata_Geo_Feed{$= KZend_Gdata_Geo_Extension_GmlPos{&< OZend_Gdata_Geo_Extension_GmlPoint{); UZend_Gdata_Geo_Extension_GeoRssWhere{: 5Zend_Gdata_Geo_Entry{9 -Zend_Gdata_Gbase{"8 GZend_Gdata_Gbase_SnippetQuery{!7 EZend_Gdata_Gbase_SnippetFeed{"6 GZend_Gdata_Gbase_SnippetEntry{5 9Zend_Gdata_Gbase_Query{4 AZend_Gdata_Gbase_ItemQuery{3 ?Zend_Gdata_Gbase_ItemFeed{2 AZend_Gdata_Gbase_ItemEntry{1 7Zend_Gdata_Gbase_Feed{-0 ]Zend_Gdata_Gbase_Extension_BaseAttribute{/ 9Zend_Gdata_Gbase_Entry{. -Zend_Gdata_Gapps{- AZend_Gdata_Gapps_UserQuery{, ?Zend_Gdata_Gapps_UserFeed{+ AZend_Gdata_Gapps_UserEntry{&* OZend_Gdata_Gapps_ServiceException{) 9Zend_Gdata_Gapps_Query{#( IZend_Gdata_Gapps_NicknameQuery{"' GZend_Gdata_Gapps_NicknameFeed{#& IZend_Gdata_Gapps_NicknameEntry{%% MZend_Gdata_Gapps_Extension_Quota{($ SZend_Gdata_Gapps_Extension_Nickname{$# KZend_Gdata_Gapps_Extension_Name{%" MZend_Gdata_Gapps_Extension_Login{)! UZend_Gdata_Gapps_Extension_EmailList{  9Zend_Gdata_Gapps_Error{- ]Zend_Gdata_Gapps_EmailListRecipientQuery{, [Zend_Gdata_Gapps_EmailListRecipientFeed{- ]Zend_Gdata_Gapps_EmailListRecipientEntry{$ KZend_Gdata_Gapps_EmailListQuery{# IZend_Gdata_Gapps_EmailListFeed{$ KZend_Gdata_Gapps_EmailListEntry{ +Zend_Gdata_Feed{ 5Zend_Gdata_Extension{ =Zend_Gdata_Extension_Who{ AZend_Gdata_Extension_Where{ ?Zend_Gdata_Extension_When{$ KZend_Gdata_Extension_Visibility{& OZend_Gdata_Extension_Transparency{" GZend_Gdata_Extension_Reminder{- ]Zend_Gdata_Extension_RecurrenceException{$ KZend_Gdata_Extension_Recurrence{  CZend_Gdata_Extension_Rating{   Y  p?^5	kF#[2xG



f
6
				h	@	tIa2}S%a5
}Jf4|P%vQ+                          (I SZend_Gdata_YouTube_PlaylistListFeed{)H UZend_Gdata_YouTube_PlaylistListEntry{"G GZend_Gdata_YouTube_MediaEntry{!F EZend_Gdata_YouTube_InboxFeed{"E GZend_Gdata_YouTube_InboxEntry{)D UZend_Gdata_YouTube_Extension_VideoId{*C WZend_Gdata_YouTube_Extension_Username{*B WZend_Gdata_YouTube_Extension_Uploaded{'A QZend_Gdata_YouTube_Extension_Token{(@ SZend_Gdata_YouTube_Extension_Status{,? [Zend_Gdata_YouTube_Extension_Statistics{'> QZend_Gdata_YouTube_Extension_State{(= SZend_Gdata_YouTube_Extension_School{-< ]Zend_Gdata_YouTube_Extension_ReleaseDate{.; _Zend_Gdata_YouTube_Extension_Relationship{*: WZend_Gdata_YouTube_Extension_Recorded{&9 OZend_Gdata_YouTube_Extension_Racy{-8 ]Zend_Gdata_YouTube_Extension_QueryString{)7 UZend_Gdata_YouTube_Extension_Private{*6 WZend_Gdata_YouTube_Extension_Position{/5 aZend_Gdata_YouTube_Extension_PlaylistTitle{,4 [Zend_Gdata_YouTube_Extension_PlaylistId{,3 [Zend_Gdata_YouTube_Extension_Occupation{)2 UZend_Gdata_YouTube_Extension_NoEmbed{'1 QZend_Gdata_YouTube_Extension_Music{(0 SZend_Gdata_YouTube_Extension_Movies{-/ ]Zend_Gdata_YouTube_Extension_MediaRating{,. [Zend_Gdata_YouTube_Extension_MediaGroup{-- ]Zend_Gdata_YouTube_Extension_MediaCredit{., _Zend_Gdata_YouTube_Extension_MediaContent{*+ WZend_Gdata_YouTube_Extension_Location{&* OZend_Gdata_YouTube_Extension_Link{*) WZend_Gdata_YouTube_Extension_LastName{*( WZend_Gdata_YouTube_Extension_Hometown{)' UZend_Gdata_YouTube_Extension_Hobbies{(& SZend_Gdata_YouTube_Extension_Gender{+% YZend_Gdata_YouTube_Extension_FirstName{*$ WZend_Gdata_YouTube_Extension_Duration{-# ]Zend_Gdata_YouTube_Extension_Description{+" YZend_Gdata_YouTube_Extension_CountHint{)! UZend_Gdata_YouTube_Extension_Control{)  UZend_Gdata_YouTube_Extension_Company{' QZend_Gdata_YouTube_Extension_Books{% MZend_Gdata_YouTube_Extension_Age{) UZend_Gdata_YouTube_Extension_AboutMe{# IZend_Gdata_YouTube_ContactFeed{$ KZend_Gdata_YouTube_ContactEntry{# IZend_Gdata_YouTube_CommentFeed{$ KZend_Gdata_YouTube_CommentEntry{$ KZend_Gdata_YouTube_ActivityFeed{% MZend_Gdata_YouTube_ActivityEntry{ ;Zend_Gdata_Spreadsheets{* WZend_Gdata_Spreadsheets_WorksheetFeed{+ YZend_Gdata_Spreadsheets_WorksheetEntry{, [Zend_Gdata_Spreadsheets_SpreadsheetFeed{- ]Zend_Gdata_Spreadsheets_SpreadsheetEntry{& OZend_Gdata_Spreadsheets_ListQuery{% MZend_Gdata_Spreadsheets_ListFeed{& OZend_Gdata_Spreadsheets_ListEntry{/ aZend_Gdata_Spreadsheets_Extension_RowCount{- ]Zend_Gdata_Spreadsheets_Extension_Custom{/ aZend_Gdata_Spreadsheets_Extension_ColCount{+ YZend_Gdata_Spreadsheets_Extension_Cell{*
 WZend_Gdata_Spreadsheets_DocumentQuery{&	 OZend_Gdata_Spreadsheets_CellQuery{% MZend_Gdata_Spreadsheets_CellFeed{& OZend_Gdata_Spreadsheets_CellEntry{ -Zend_Gdata_Query{ /Zend_Gdata_Photos{  CZend_Gdata_Photos_UserQuery{ AZend_Gdata_Photos_UserFeed{  CZend_Gdata_Photos_UserEntry{ AZend_Gdata_Photos_TagEntry{!  EZend_Gdata_Photos_PhotoQuery{  CZend_Gdata_Photos_PhotoFeed{!~ EZend_Gdata_Photos_PhotoEntry{&} OZend_Gdata_Photos_Extension_Width{'| QZend_Gdata_Photos_Extension_Weight{({ SZend_Gdata_Photos_Extension_Version{%z MZend_Gdata_Photos_Extension_User{*y WZend_Gdata_Photos_Extension_Timestamp{*x WZend_Gdata_Photos_Extension_Thumbnail{%w MZend_Gdata_Photos_Extension_Size{)v UZend_Gdata_Photos_Extension_Rotation{+u YZend_Gdata_Photos_Extension_QuotaLimit{-t ]Zend_Gdata_Photos_Extension_QuotaCurrent{)s UZend_Gdata_Photos_Extension_Position{(r SZend_Gdata_Photos_Extension_PhotoId{3q iZend_Gdata_Photos_Extension_NumPhotosRemaining{   h  xL [0	fJ.|JsV9




P
!					Y	/	i1fJ3dB tVB&lO,{\<qR$V#        1 7Zend_Ldap_Node_Schema{#0 IZend_Ldap_Node_Schema_OpenLdap{// aZend_Ldap_Node_Schema_ObjectClass_OpenLdap{6. oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectory{- AZend_Ldap_Node_Schema_Item{1, eZend_Ldap_Node_Schema_AttributeType_OpenLdap{8+ sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory{** WZend_Ldap_Node_Schema_ActiveDirectory{) 9Zend_Ldap_Node_RootDse{$( KZend_Ldap_Node_RootDse_OpenLdap{&' OZend_Ldap_Node_RootDse_eDirectory{+& YZend_Ldap_Node_RootDse_ActiveDirectory{% ?Zend_Ldap_Node_Collection{$$ KZend_Ldap_Node_ChildrenIterator{# ;Zend_Ldap_Node_Abstract{" 9Zend_Ldap_Ldif_Encoder{! -Zend_Ldap_Filter{  ;Zend_Ldap_Filter_String{ 3Zend_Ldap_Filter_Or{ 5Zend_Ldap_Filter_Not{ 7Zend_Ldap_Filter_Mask{ =Zend_Ldap_Filter_Logical{ AZend_Ldap_Filter_Exception{ 5Zend_Ldap_Filter_And{ ?Zend_Ldap_Filter_Abstract{ 3Zend_Ldap_Exception{ %Zend_Ldap_Dn{ 3Zend_Ldap_Converter{ 5Zend_Ldap_Collection{* WZend_Ldap_Collection_Iterator_Default{ 3Zend_Ldap_Attribute{ #Zend_Layout{ 7Zend_Layout_Exception{) UZend_Layout_Controller_Plugin_Layout{0 cZend_Layout_Controller_Action_Helper_Layout{ Zend_Json{ -Zend_Json_Server{ 5Zend_Json_Server_Smd{! EZend_Json_Server_Smd_Service{
 ?Zend_Json_Server_Response{#	 IZend_Json_Server_Response_Http{ =Zend_Json_Server_Request{" GZend_Json_Server_Request_Http{ AZend_Json_Server_Exception{ 9Zend_Json_Server_Error{ 9Zend_Json_Server_Cache{ )Zend_Json_Expr{ 3Zend_Json_Exception{ /Zend_Json_Encoder{  /Zend_Json_Decoder{ 'Zend_InfoCard{-~ ]Zend_InfoCard_Xml_SecurityTokenReference{} AZend_InfoCard_Xml_Security{)| UZend_InfoCard_Xml_Security_Transform{4{ kZend_InfoCard_Xml_Security_Transform_XmlExcC14N{3z iZend_InfoCard_Xml_Security_Transform_Exception{<y {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignature{)x UZend_InfoCard_Xml_Security_Exception{w ?Zend_InfoCard_Xml_KeyInfo{&v OZend_InfoCard_Xml_KeyInfo_XmlDSig{&u OZend_InfoCard_Xml_KeyInfo_Default{'t QZend_InfoCard_Xml_KeyInfo_Abstract{ s CZend_InfoCard_Xml_Exception{#r IZend_InfoCard_Xml_EncryptedKey{$q KZend_InfoCard_Xml_EncryptedData{+p YZend_InfoCard_Xml_EncryptedData_XmlEnc{-o ]Zend_InfoCard_Xml_EncryptedData_Abstract{n ?Zend_InfoCard_Xml_Element{ m CZend_InfoCard_Xml_Assertion{%l MZend_InfoCard_Xml_Assertion_Saml{k ;Zend_InfoCard_Exception{%j MZend_InfoCard_Exception_Abstract{i 5Zend_InfoCard_Claims{h 5Zend_InfoCard_Cipher{5g mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc{5f mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc{4e kZend_InfoCard_Cipher_Symmetric_Adapter_Abstract{)d UZend_InfoCard_Cipher_Pki_Adapter_Rsa{.c _Zend_InfoCard_Cipher_Pki_Adapter_Abstract{#b IZend_InfoCard_Cipher_Exception{$a KZend_InfoCard_Adapter_Exception{"` GZend_InfoCard_Adapter_Default{_ 1Zend_Http_Response{^ ?Zend_Http_Response_Stream{] 3Zend_Http_Exception{\ 3Zend_Http_CookieJar{[ -Zend_Http_Cookie{Z -Zend_Http_Client{Y AZend_Http_Client_Exception{"X GZend_Http_Client_Adapter_Test{$W KZend_Http_Client_Adapter_Socket{#V IZend_Http_Client_Adapter_Proxy{'U QZend_Http_Client_Adapter_Exception{"T GZend_Http_Client_Adapter_Curl{S !Zend_Gdata{R 1Zend_Gdata_YouTube{"Q GZend_Gdata_YouTube_VideoQuery{!P EZend_Gdata_YouTube_VideoFeed{"O GZend_Gdata_YouTube_VideoEntry{(N SZend_Gdata_YouTube_UserProfileEntry{(M SZend_Gdata_YouTube_SubscriptionFeed{)L UZend_Gdata_YouTube_SubscriptionEntry{)K UZend_Gdata_YouTube_PlaylistVideoFeed{*J WZend_Gdata_YouTube_PlaylistVideoEntry{   { rG&xW>*hI(wXG+vV6	



p
L
#					|	]	2	uW5 {^A%mK/eI"wQ3|eS1nI,~T2   , #Zend_OpenId{+ 5Zend_OpenId_Provider{* ?Zend_OpenId_Provider_User{&) OZend_OpenId_Provider_User_Session{!( EZend_OpenId_Provider_Storage{&' OZend_OpenId_Provider_Storage_File{& 7Zend_OpenId_Extension{% AZend_OpenId_Extension_Sreg{$ 7Zend_OpenId_Exception{# 5Zend_OpenId_Consumer{!" EZend_OpenId_Consumer_Storage{&! OZend_OpenId_Consumer_Storage_File{  +Zend_Navigation{ 5Zend_Navigation_Page{ =Zend_Navigation_Page_Uri{ =Zend_Navigation_Page_Mvc{ ?Zend_Navigation_Exception{ ?Zend_Navigation_Container{ Zend_Mime{ )Zend_Mime_Part{ /Zend_Mime_Message{ 3Zend_Mime_Exception{ -Zend_Mime_Decode{ #Zend_Memory{ /Zend_Memory_Value{ 3Zend_Memory_Manager{ 7Zend_Memory_Exception{ 7Zend_Memory_Container{" GZend_Memory_Container_Movable{! EZend_Memory_Container_Locked{! EZend_Memory_AccessController{ 3Zend_Measure_Weight{ 3Zend_Measure_Volume{% MZend_Measure_Viscosity_Kinematic{#
 IZend_Measure_Viscosity_Dynamic{	 3Zend_Measure_Torque{ /Zend_Measure_Time{ =Zend_Measure_Temperature{ 1Zend_Measure_Speed{ 7Zend_Measure_Pressure{ 1Zend_Measure_Power{ 3Zend_Measure_Number{ 9Zend_Measure_Lightness{ 3Zend_Measure_Length{  ?Zend_Measure_Illumination{ 9Zend_Measure_Frequency{~ 1Zend_Measure_Force{} =Zend_Measure_Flow_Volume{| 9Zend_Measure_Flow_Mole{{ 9Zend_Measure_Flow_Mass{z 9Zend_Measure_Exception{y 3Zend_Measure_Energy{x 5Zend_Measure_Density{w 5Zend_Measure_Current{ v CZend_Measure_Cooking_Weight{ u CZend_Measure_Cooking_Volume{t =Zend_Measure_Capacitance{s 3Zend_Measure_Binary{r /Zend_Measure_Area{q 1Zend_Measure_Angle{p ?Zend_Measure_Acceleration{o 7Zend_Measure_Abstract{n Zend_Mail{m =Zend_Mail_Transport_Smtp{!l EZend_Mail_Transport_Sendmail{"k GZend_Mail_Transport_Exception{!j EZend_Mail_Transport_Abstract{i /Zend_Mail_Storage{'h QZend_Mail_Storage_Writable_Maildir{g 9Zend_Mail_Storage_Pop3{f 9Zend_Mail_Storage_Mbox{e ?Zend_Mail_Storage_Maildir{d 9Zend_Mail_Storage_Imap{c =Zend_Mail_Storage_Folder{"b GZend_Mail_Storage_Folder_Mbox{%a MZend_Mail_Storage_Folder_Maildir{ ` CZend_Mail_Storage_Exception{_ AZend_Mail_Storage_Abstract{^ ;Zend_Mail_Protocol_Smtp{'] QZend_Mail_Protocol_Smtp_Auth_Plain{'\ QZend_Mail_Protocol_Smtp_Auth_Login{)[ UZend_Mail_Protocol_Smtp_Auth_Crammd5{Z ;Zend_Mail_Protocol_Pop3{Y ;Zend_Mail_Protocol_Imap{!X EZend_Mail_Protocol_Exception{ W CZend_Mail_Protocol_Abstract{V )Zend_Mail_Part{U 3Zend_Mail_Part_File{T /Zend_Mail_Message{S 9Zend_Mail_Message_File{R 3Zend_Mail_Exception{Q Zend_Log{P 9Zend_Log_Writer_Syslog{O 9Zend_Log_Writer_Stream{N 5Zend_Log_Writer_Null{M 5Zend_Log_Writer_Mock{L 5Zend_Log_Writer_Mail{K ;Zend_Log_Writer_Firebug{J 1Zend_Log_Writer_Db{I =Zend_Log_Writer_Abstract{H 9Zend_Log_Formatter_Xml{G ?Zend_Log_Formatter_Simple{F AZend_Log_Formatter_Firebug{E =Zend_Log_Filter_Suppress{D =Zend_Log_Filter_Priority{C ;Zend_Log_Filter_Message{B 1Zend_Log_Exception{A #Zend_Locale{@ -Zend_Locale_Math{? =Zend_Locale_Math_PhpMath{> AZend_Locale_Math_Exception{= 1Zend_Locale_Format{< 7Zend_Locale_Exception{; -Zend_Locale_Data{!: EZend_Locale_Data_Translation{9 #Zend_Loader{8 =Zend_Loader_PluginLoader{'7 QZend_Loader_PluginLoader_Exception{6 7Zend_Loader_Exception{5 9Zend_Loader_Autoloader{$4 KZend_Loader_Autoloader_Resource{3 Zend_Ldap{2 )Zend_Ldap_Node{   l  ^:e4 a>{]:~]:




h
R
6
						T	dAy[=^>}J pCfD.u>Z-                       3 iZend_Pdf_Resource_Font_Simple_Standard_Courier{) UZend_Pdf_Resource_Font_Simple_Parsed{2 gZend_Pdf_Resource_Font_Simple_Parsed_TrueType{* WZend_Pdf_Resource_Font_FontDescriptor{% MZend_Pdf_Resource_Font_Extracted{# IZend_Pdf_Resource_Font_CidFont{, [Zend_Pdf_Resource_Font_CidFont_TrueType{3 iZend_Pdf_RecursivelyIteratableObjectsContainer{ +Zend_Pdf_Parser{ 'Zend_Pdf_Page{ -Zend_Pdf_Outline{ ;Zend_Pdf_Outline_Loaded{ =Zend_Pdf_Outline_Created{ /Zend_Pdf_NameTree{
 )Zend_Pdf_Image{	 'Zend_Pdf_Font{ ?Zend_Pdf_Filter_RunLength{  CZend_Pdf_Filter_Compression{$ KZend_Pdf_Filter_Compression_Lzw{& OZend_Pdf_Filter_Compression_Flate{ =Zend_Pdf_Filter_AsciiHex{ ;Zend_Pdf_Filter_Ascii85{" GZend_Pdf_FileParserDataSource{) UZend_Pdf_FileParserDataSource_String{'  QZend_Pdf_FileParserDataSource_File{ 3Zend_Pdf_FileParser{~ ?Zend_Pdf_FileParser_Image{"} GZend_Pdf_FileParser_Image_Png{| =Zend_Pdf_FileParser_Font{&{ OZend_Pdf_FileParser_Font_OpenType{/z aZend_Pdf_FileParser_Font_OpenType_TrueType{y 1Zend_Pdf_Exception{x ;Zend_Pdf_ElementFactory{"w GZend_Pdf_ElementFactory_Proxy{v -Zend_Pdf_Element{u ;Zend_Pdf_Element_String{#t IZend_Pdf_Element_String_Binary{s ;Zend_Pdf_Element_Stream{r AZend_Pdf_Element_Reference{%q MZend_Pdf_Element_Reference_Table{'p QZend_Pdf_Element_Reference_Context{o ;Zend_Pdf_Element_Object{#n IZend_Pdf_Element_Object_Stream{m =Zend_Pdf_Element_Numeric{l 7Zend_Pdf_Element_Null{k 7Zend_Pdf_Element_Name{ j CZend_Pdf_Element_Dictionary{i =Zend_Pdf_Element_Boolean{h 9Zend_Pdf_Element_Array{g 5Zend_Pdf_Destination{f ?Zend_Pdf_Destination_Zoom{!e EZend_Pdf_Destination_Unknown{d AZend_Pdf_Destination_Named{'c QZend_Pdf_Destination_FitVertically{&b OZend_Pdf_Destination_FitRectangle{)a UZend_Pdf_Destination_FitHorizontally{2` gZend_Pdf_Destination_FitBoundingBoxVertically{4_ kZend_Pdf_Destination_FitBoundingBoxHorizontally{(^ SZend_Pdf_Destination_FitBoundingBox{] =Zend_Pdf_Destination_Fit{"\ GZend_Pdf_Destination_Explicit{[ )Zend_Pdf_Color{Z 1Zend_Pdf_Color_Rgb{Y 3Zend_Pdf_Color_Html{X =Zend_Pdf_Color_GrayScale{W 3Zend_Pdf_Color_Cmyk{V 'Zend_Pdf_Cmap{U AZend_Pdf_Cmap_TrimmedTable{!T EZend_Pdf_Cmap_SegmentToDelta{S AZend_Pdf_Cmap_ByteEncoding{&R OZend_Pdf_Cmap_ByteEncoding_Static{Q 3Zend_Pdf_Annotation{P =Zend_Pdf_Annotation_Text{O AZend_Pdf_Annotation_Markup{N =Zend_Pdf_Annotation_Link{'M QZend_Pdf_Annotation_FileAttachment{L +Zend_Pdf_Action{K 3Zend_Pdf_Action_URI{J ;Zend_Pdf_Action_Unknown{I 7Zend_Pdf_Action_Trans{H 9Zend_Pdf_Action_Thread{G AZend_Pdf_Action_SubmitForm{F 7Zend_Pdf_Action_Sound{ E CZend_Pdf_Action_SetOCGState{D ?Zend_Pdf_Action_ResetForm{C ?Zend_Pdf_Action_Rendition{B 7Zend_Pdf_Action_Named{A 7Zend_Pdf_Action_Movie{@ 9Zend_Pdf_Action_Launch{? AZend_Pdf_Action_JavaScript{> AZend_Pdf_Action_ImportData{= 5Zend_Pdf_Action_Hide{< 7Zend_Pdf_Action_GoToR{; 7Zend_Pdf_Action_GoToE{: AZend_Pdf_Action_GoTo3DView{9 5Zend_Pdf_Action_GoTo{8 )Zend_Paginator{-7 ]Zend_Paginator_SerializableLimitIterator{*6 WZend_Paginator_ScrollingStyle_Sliding{*5 WZend_Paginator_ScrollingStyle_Jumping{*4 WZend_Paginator_ScrollingStyle_Elastic{&3 OZend_Paginator_ScrollingStyle_All{2 =Zend_Paginator_Exception{ 1 CZend_Paginator_Adapter_Null{$0 KZend_Paginator_Adapter_Iterator{)/ UZend_Paginator_Adapter_DbTableSelect{$. KZend_Paginator_Adapter_DbSelect{!- EZend_Paginator_Adapter_Array{   ]  EJa'qR-	eN6




{
P
(
 					T	3	Z=mZ<}[>X8t*h\(Y                                   6u oZend_Search_Lucene_Analysis_TokenFilter_StopWords{7t qZend_Search_Lucene_Analysis_TokenFilter_ShortWords{:s wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8{6r oZend_Search_Lucene_Analysis_TokenFilter_LowerCase{&q OZend_Search_Lucene_Analysis_Token{)p UZend_Search_Lucene_Analysis_Analyzer{0o cZend_Search_Lucene_Analysis_Analyzer_Common{8n sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num{Im Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive{5l mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8{Fk Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive{8j sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum{Ii Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive{5h mZend_Search_Lucene_Analysis_Analyzer_Common_Text{Fg Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive{f 7Zend_Search_Exception{e -Zend_Rest_Server{d AZend_Rest_Server_Exception{c +Zend_Rest_Route{b 3Zend_Rest_Exception{a 5Zend_Rest_Controller{` -Zend_Rest_Client{_ ;Zend_Rest_Client_Result{&^ OZend_Rest_Client_Result_Exception{] AZend_Rest_Client_Exception{\ 'Zend_Registry{[ =Zend_Reflection_Property{Z ?Zend_Reflection_Parameter{Y 9Zend_Reflection_Method{X =Zend_Reflection_Function{W 5Zend_Reflection_File{V ?Zend_Reflection_Extension{U ?Zend_Reflection_Exception{T =Zend_Reflection_Docblock{!S EZend_Reflection_Docblock_Tag{(R SZend_Reflection_Docblock_Tag_Return{'Q QZend_Reflection_Docblock_Tag_Param{P 7Zend_Reflection_Class{O !Zend_Queue{N 9Zend_Queue_Stomp_Frame{M ;Zend_Queue_Stomp_Client{'L QZend_Queue_Stomp_Client_Connection{K 1Zend_Queue_Message{#J IZend_Queue_Message_PlatformJob{ I CZend_Queue_Message_Iterator{H 5Zend_Queue_Exception{(G SZend_Queue_Adapter_PlatformJobQueue{F ;Zend_Queue_Adapter_Null{!E EZend_Queue_Adapter_Memcacheq{D 7Zend_Queue_Adapter_Db{ C CZend_Queue_Adapter_Db_Queue{"B GZend_Queue_Adapter_Db_Message{A =Zend_Queue_Adapter_Array{'@ QZend_Queue_Adapter_AdapterAbstract{ ? CZend_Queue_Adapter_Activemq{> -Zend_ProgressBar{= AZend_ProgressBar_Exception{< =Zend_ProgressBar_Adapter{$; KZend_ProgressBar_Adapter_JsPush{$: KZend_ProgressBar_Adapter_JsPull{'9 QZend_ProgressBar_Adapter_Exception{%8 MZend_ProgressBar_Adapter_Console{7 Zend_Pdf{!6 EZend_Pdf_UpdateInfoContainer{5 -Zend_Pdf_Trailer{4 ;Zend_Pdf_Trailer_Keeper{3 AZend_Pdf_Trailer_Generator{2 +Zend_Pdf_Target{1 )Zend_Pdf_Style{0 7Zend_Pdf_StringParser{/ /Zend_Pdf_Resource{#. IZend_Pdf_Resource_ImageFactory{- ;Zend_Pdf_Resource_Image{!, EZend_Pdf_Resource_Image_Tiff{ + CZend_Pdf_Resource_Image_Png{!* EZend_Pdf_Resource_Image_Jpeg{) 9Zend_Pdf_Resource_Font{!( EZend_Pdf_Resource_Font_Type0{"' GZend_Pdf_Resource_Font_Simple{+& YZend_Pdf_Resource_Font_Simple_Standard{8% sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats{6$ oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman{7# qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic{;" yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic{5! mZend_Pdf_Resource_Font_Simple_Standard_TimesBold{2  gZend_Pdf_Resource_Font_Simple_Standard_Symbol{< {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaOblique{A Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique{9 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold{5 mZend_Pdf_Resource_Font_Simple_Standard_Helvetica{: wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique{> Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique{7 qZend_Pdf_Resource_Font_Simple_Standard_CourierBold{   X  yP$hI$n?pFgF


t
F
			s	6j9uHV)g4uHoR8gBvM$       M 7Zend_Service_Abstract{L 9Zend_Server_Reflection{'K QZend_Server_Reflection_ReturnValue{%J MZend_Server_Reflection_Prototype{%I MZend_Server_Reflection_Parameter{ H CZend_Server_Reflection_Node{"G GZend_Server_Reflection_Method{$F KZend_Server_Reflection_Function{-E ]Zend_Server_Reflection_Function_Abstract{%D MZend_Server_Reflection_Exception{!C EZend_Server_Reflection_Class{!B EZend_Server_Method_Prototype{!A EZend_Server_Method_Parameter{"@ GZend_Server_Method_Definition{ ? CZend_Server_Method_Callback{> 7Zend_Server_Exception{= 9Zend_Server_Definition{< /Zend_Server_Cache{; 5Zend_Server_Abstract{: 1Zend_Search_Lucene{09 cZend_Search_Lucene_TermStreamsPriorityQueue{$8 KZend_Search_Lucene_Storage_File{+7 YZend_Search_Lucene_Storage_File_Memory{/6 aZend_Search_Lucene_Storage_File_Filesystem{)5 UZend_Search_Lucene_Storage_Directory{44 kZend_Search_Lucene_Storage_Directory_Filesystem{%3 MZend_Search_Lucene_Search_Weight{*2 WZend_Search_Lucene_Search_Weight_Term{,1 [Zend_Search_Lucene_Search_Weight_Phrase{/0 aZend_Search_Lucene_Search_Weight_MultiTerm{+/ YZend_Search_Lucene_Search_Weight_Empty{-. ]Zend_Search_Lucene_Search_Weight_Boolean{)- UZend_Search_Lucene_Search_Similarity{1, eZend_Search_Lucene_Search_Similarity_Default{)+ UZend_Search_Lucene_Search_QueryToken{3* iZend_Search_Lucene_Search_QueryParserException{1) eZend_Search_Lucene_Search_QueryParserContext{*( WZend_Search_Lucene_Search_QueryParser{)' UZend_Search_Lucene_Search_QueryLexer{'& QZend_Search_Lucene_Search_QueryHit{)% UZend_Search_Lucene_Search_QueryEntry{.$ _Zend_Search_Lucene_Search_QueryEntry_Term{2# gZend_Search_Lucene_Search_QueryEntry_Subquery{0" cZend_Search_Lucene_Search_QueryEntry_Phrase{$! KZend_Search_Lucene_Search_Query{-  ]Zend_Search_Lucene_Search_Query_Wildcard{) UZend_Search_Lucene_Search_Query_Term{* WZend_Search_Lucene_Search_Query_Range{2 gZend_Search_Lucene_Search_Query_Preprocessing{7 qZend_Search_Lucene_Search_Query_Preprocessing_Term{9 uZend_Search_Lucene_Search_Query_Preprocessing_Phrase{8 sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy{+ YZend_Search_Lucene_Search_Query_Phrase{. _Zend_Search_Lucene_Search_Query_MultiTerm{2 gZend_Search_Lucene_Search_Query_Insignificant{* WZend_Search_Lucene_Search_Query_Fuzzy{* WZend_Search_Lucene_Search_Query_Empty{, [Zend_Search_Lucene_Search_Query_Boolean{2 gZend_Search_Lucene_Search_Highlighter_Default{: wZend_Search_Lucene_Search_BooleanExpressionRecognizer{ =Zend_Search_Lucene_Proxy{% MZend_Search_Lucene_PriorityQueue{/ aZend_Search_Lucene_Interface_MultiSearcher{# IZend_Search_Lucene_LockManager{$ KZend_Search_Lucene_Index_Writer{0 cZend_Search_Lucene_Index_TermsPriorityQueue{& OZend_Search_Lucene_Index_TermInfo{"
 GZend_Search_Lucene_Index_Term{+	 YZend_Search_Lucene_Index_SegmentWriter{8 sZend_Search_Lucene_Index_SegmentWriter_StreamWriter{: wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter{+ YZend_Search_Lucene_Index_SegmentMerger{) UZend_Search_Lucene_Index_SegmentInfo{' QZend_Search_Lucene_Index_FieldInfo{( SZend_Search_Lucene_Index_DocsFilter{. _Zend_Search_Lucene_Index_DictionaryLoader{! EZend_Search_Lucene_FSMAction{  9Zend_Search_Lucene_FSM{ =Zend_Search_Lucene_Field{!~ EZend_Search_Lucene_Exception{ } CZend_Search_Lucene_Document{%| MZend_Search_Lucene_Document_Xlsx{%{ MZend_Search_Lucene_Document_Pptx{(z SZend_Search_Lucene_Document_OpenXml{%y MZend_Search_Lucene_Document_Html{*x WZend_Search_Lucene_Document_Exception{%w MZend_Search_Lucene_Document_Docx{,v [Zend_Search_Lucene_Analysis_TokenFilter{   b  kBmGlC_5}W8




Z
6
					a	;	vX/nI&}R$mHaA\'zP#qC            / ;Zend_Service_Technorati{#. IZend_Service_Technorati_Weblog{"- GZend_Service_Technorati_Utils{*, WZend_Service_Technorati_TagsResultSet{'+ QZend_Service_Technorati_TagsResult{)* UZend_Service_Technorati_TagResultSet{&) OZend_Service_Technorati_TagResult{,( [Zend_Service_Technorati_SearchResultSet{)' UZend_Service_Technorati_SearchResult{&& OZend_Service_Technorati_ResultSet{#% IZend_Service_Technorati_Result{*$ WZend_Service_Technorati_KeyInfoResult{*# WZend_Service_Technorati_GetInfoResult{&" OZend_Service_Technorati_Exception{1! eZend_Service_Technorati_DailyCountsResultSet{.  _Zend_Service_Technorati_DailyCountsResult{, [Zend_Service_Technorati_CosmosResultSet{) UZend_Service_Technorati_CosmosResult{+ YZend_Service_Technorati_BlogInfoResult{# IZend_Service_Technorati_Author{ ;Zend_Service_StrikeIron{( SZend_Service_StrikeIron_ZipCodeInfo{2 gZend_Service_StrikeIron_USAddressVerification{- ]Zend_Service_StrikeIron_SalesUseTaxBasic{& OZend_Service_StrikeIron_Exception{& OZend_Service_StrikeIron_Decorator{! EZend_Service_StrikeIron_Base{ ;Zend_Service_SlideShare{& OZend_Service_SlideShare_SlideShow{& OZend_Service_SlideShare_Exception{ 1Zend_Service_Simpy{$ KZend_Service_Simpy_WatchlistSet{* WZend_Service_Simpy_WatchlistFilterSet{' QZend_Service_Simpy_WatchlistFilter{! EZend_Service_Simpy_Watchlist{ ?Zend_Service_Simpy_TagSet{ 9Zend_Service_Simpy_Tag{
 AZend_Service_Simpy_NoteSet{	 ;Zend_Service_Simpy_Note{ AZend_Service_Simpy_LinkSet{! EZend_Service_Simpy_LinkQuery{ ;Zend_Service_Simpy_Link{ 9Zend_Service_ReCaptcha{$ KZend_Service_ReCaptcha_Response{$ KZend_Service_ReCaptcha_MailHide{. _Zend_Service_ReCaptcha_MailHide_Exception{% MZend_Service_ReCaptcha_Exception{  7Zend_Service_Nirvanix{# IZend_Service_Nirvanix_Response{)~ UZend_Service_Nirvanix_Namespace_Imfs{)} UZend_Service_Nirvanix_Namespace_Base{$| KZend_Service_Nirvanix_Exception{{ 3Zend_Service_Flickr{"z GZend_Service_Flickr_ResultSet{y AZend_Service_Flickr_Result{x ?Zend_Service_Flickr_Image{w 9Zend_Service_Exception{v 9Zend_Service_Delicious{&u OZend_Service_Delicious_SimplePost{$t KZend_Service_Delicious_PostList{ s CZend_Service_Delicious_Post{%r MZend_Service_Delicious_Exception{ q CZend_Service_Audioscrobbler{p 3Zend_Service_Amazon{o ;Zend_Service_Amazon_Sqs{&n OZend_Service_Amazon_Sqs_Exception{'m QZend_Service_Amazon_SimilarProduct{l 9Zend_Service_Amazon_S3{"k GZend_Service_Amazon_S3_Stream{%j MZend_Service_Amazon_S3_Exception{"i GZend_Service_Amazon_ResultSet{h ?Zend_Service_Amazon_Query{!g EZend_Service_Amazon_OfferSet{f ?Zend_Service_Amazon_Offer{&e OZend_Service_Amazon_ListmaniaList{d =Zend_Service_Amazon_Item{c ?Zend_Service_Amazon_Image{"b GZend_Service_Amazon_Exception{(a SZend_Service_Amazon_EditorialReview{` ;Zend_Service_Amazon_Ec2{+_ YZend_Service_Amazon_Ec2_Securitygroups{%^ MZend_Service_Amazon_Ec2_Response{#] IZend_Service_Amazon_Ec2_Region{$\ KZend_Service_Amazon_Ec2_Keypair{%[ MZend_Service_Amazon_Ec2_Instance{-Z ]Zend_Service_Amazon_Ec2_Instance_Windows{.Y _Zend_Service_Amazon_Ec2_Instance_Reserved{"X GZend_Service_Amazon_Ec2_Image{&W OZend_Service_Amazon_Ec2_Exception{&V OZend_Service_Amazon_Ec2_Elasticip{ U CZend_Service_Amazon_Ec2_Ebs{'T QZend_Service_Amazon_Ec2_CloudWatch{.S _Zend_Service_Amazon_Ec2_Availabilityzones{%R MZend_Service_Amazon_Ec2_Abstract{'Q QZend_Service_Amazon_CustomerReview{$P KZend_Service_Amazon_Accessories{!O EZend_Service_Amazon_Abstract{N 5Zend_Service_Akismet{   e  wP&zT+f<xO$rR2




z
Q
)				e	N	'bK0 i;Y,oAlI0eM-n@zF   ' QZend_Tool_Framework_Client_Console{D 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizer{0 cZend_Tool_Framework_Client_Console_Manifest{2 gZend_Tool_Framework_Client_Console_HelpSystem{6 oZend_Tool_Framework_Client_Console_ArgumentParser{& OZend_Tool_Framework_Client_Config{( SZend_Tool_Framework_Client_Abstract{* WZend_Tool_Framework_Action_Repository{) UZend_Tool_Framework_Action_Exception{$ KZend_Tool_Framework_Action_Base{
 'Zend_TimeSync{	 1Zend_TimeSync_Sntp{ 9Zend_TimeSync_Protocol{ /Zend_TimeSync_Ntp{ ;Zend_TimeSync_Exception{ +Zend_Text_Table{ 3Zend_Text_Table_Row{ ?Zend_Text_Table_Exception{& OZend_Text_Table_Decorator_Unicode{$ KZend_Text_Table_Decorator_Ascii{  9Zend_Text_Table_Column{ 3Zend_Text_MultiByte{~ -Zend_Text_Figlet{} AZend_Text_Figlet_Exception{| 3Zend_Text_Exception{&{ OZend_Test_PHPUnit_Db_SimpleTester{,z [Zend_Test_PHPUnit_Db_Operation_Truncate{*y WZend_Test_PHPUnit_Db_Operation_Insert{-x ]Zend_Test_PHPUnit_Db_Operation_DeleteAll{*w WZend_Test_PHPUnit_Db_Metadata_Generic{#v IZend_Test_PHPUnit_Db_Exception{,u [Zend_Test_PHPUnit_Db_DataSet_QueryTable{.t _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet{0s cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet{)r UZend_Test_PHPUnit_Db_DataSet_DbTable{*q WZend_Test_PHPUnit_Db_DataSet_DbRowset{$p KZend_Test_PHPUnit_Db_Connection{'o QZend_Test_PHPUnit_DatabaseTestCase{)n UZend_Test_PHPUnit_ControllerTestCase{0m cZend_Test_PHPUnit_Constraint_ResponseHeader{*l WZend_Test_PHPUnit_Constraint_Redirect{+k YZend_Test_PHPUnit_Constraint_Exception{*j WZend_Test_PHPUnit_Constraint_DomQuery{i 7Zend_Test_DbStatement{h 3Zend_Test_DbAdapter{g /Zend_Tag_ItemList{f 'Zend_Tag_Item{e 1Zend_Tag_Exception{d )Zend_Tag_Cloud{c =Zend_Tag_Cloud_Exception{!b EZend_Tag_Cloud_Decorator_Tag{%a MZend_Tag_Cloud_Decorator_HtmlTag{'` QZend_Tag_Cloud_Decorator_HtmlCloud{'_ QZend_Tag_Cloud_Decorator_Exception{#^ IZend_Tag_Cloud_Decorator_Cloud{] )Zend_Soap_Wsdl{/\ aZend_Soap_Wsdl_Strategy_DefaultComplexType{&[ OZend_Soap_Wsdl_Strategy_Composite{0Z cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence{/Y aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex{$X KZend_Soap_Wsdl_Strategy_AnyType{%W MZend_Soap_Wsdl_Strategy_Abstract{V =Zend_Soap_Wsdl_Exception{U -Zend_Soap_Server{T AZend_Soap_Server_Exception{S -Zend_Soap_Client{R 9Zend_Soap_Client_Local{Q AZend_Soap_Client_Exception{P ;Zend_Soap_Client_DotNet{O ;Zend_Soap_Client_Common{N 9Zend_Soap_AutoDiscover{%M MZend_Soap_AutoDiscover_Exception{L %Zend_Session{)K UZend_Session_Validator_HttpUserAgent{$J KZend_Session_Validator_Abstract{'I QZend_Session_SaveHandler_Exception{%H MZend_Session_SaveHandler_DbTable{G 9Zend_Session_Namespace{F 9Zend_Session_Exception{E 7Zend_Session_Abstract{D 1Zend_Service_Yahoo{$C KZend_Service_Yahoo_WebResultSet{!B EZend_Service_Yahoo_WebResult{&A OZend_Service_Yahoo_VideoResultSet{#@ IZend_Service_Yahoo_VideoResult{!? EZend_Service_Yahoo_ResultSet{> ?Zend_Service_Yahoo_Result{)= UZend_Service_Yahoo_PageDataResultSet{&< OZend_Service_Yahoo_PageDataResult{%; MZend_Service_Yahoo_NewsResultSet{": GZend_Service_Yahoo_NewsResult{&9 OZend_Service_Yahoo_LocalResultSet{#8 IZend_Service_Yahoo_LocalResult{+7 YZend_Service_Yahoo_InlinkDataResultSet{(6 SZend_Service_Yahoo_InlinkDataResult{&5 OZend_Service_Yahoo_ImageResultSet{#4 IZend_Service_Yahoo_ImageResult{3 =Zend_Service_Yahoo_Image{2 5Zend_Service_Twitter{ 1 CZend_Service_Twitter_Search{#0 IZend_Service_Twitter_Exception{   K  [JJi;~Y(



b
.				[	%Up5d.W&\&Y$EX!           >_ Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile{4^ kZend_Tool_Project_Context_Zf_TemporaryDirectory{3] iZend_Tool_Project_Context_Zf_SessionsDirectory{8\ sZend_Tool_Project_Context_Zf_SearchIndexesDirectory{<[ {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory{8Z sZend_Tool_Project_Context_Zf_PublicScriptsDirectory{1Y eZend_Tool_Project_Context_Zf_PublicIndexFile{7X qZend_Tool_Project_Context_Zf_PublicImagesDirectory{1W eZend_Tool_Project_Context_Zf_PublicDirectory{5V mZend_Tool_Project_Context_Zf_ProjectProviderFile{2U gZend_Tool_Project_Context_Zf_ModulesDirectory{1T eZend_Tool_Project_Context_Zf_ModuleDirectory{1S eZend_Tool_Project_Context_Zf_ModelsDirectory{+R YZend_Tool_Project_Context_Zf_ModelFile{/Q aZend_Tool_Project_Context_Zf_LogsDirectory{2P gZend_Tool_Project_Context_Zf_LocalesDirectory{2O gZend_Tool_Project_Context_Zf_LibraryDirectory{2N gZend_Tool_Project_Context_Zf_LayoutsDirectory{.M _Zend_Tool_Project_Context_Zf_HtaccessFile{0L cZend_Tool_Project_Context_Zf_FormsDirectory{*K WZend_Tool_Project_Context_Zf_FormFile{-J ]Zend_Tool_Project_Context_Zf_DbTableFile{2I gZend_Tool_Project_Context_Zf_DbTableDirectory{/H aZend_Tool_Project_Context_Zf_DataDirectory{6G oZend_Tool_Project_Context_Zf_ControllersDirectory{0F cZend_Tool_Project_Context_Zf_ControllerFile{2E gZend_Tool_Project_Context_Zf_ConfigsDirectory{,D [Zend_Tool_Project_Context_Zf_ConfigFile{0C cZend_Tool_Project_Context_Zf_CacheDirectory{/B aZend_Tool_Project_Context_Zf_BootstrapFile{6A oZend_Tool_Project_Context_Zf_ApplicationDirectory{7@ qZend_Tool_Project_Context_Zf_ApplicationConfigFile{/? aZend_Tool_Project_Context_Zf_ApisDirectory{.> _Zend_Tool_Project_Context_Zf_ActionMethod{@= Zend_Tool_Project_Context_System_ProjectProvidersDirectory{8< sZend_Tool_Project_Context_System_ProjectProfileFile{6; oZend_Tool_Project_Context_System_ProjectDirectory{): UZend_Tool_Project_Context_Repository{.9 _Zend_Tool_Project_Context_Filesystem_File{38 iZend_Tool_Project_Context_Filesystem_Directory{27 gZend_Tool_Project_Context_Filesystem_Abstract{(6 SZend_Tool_Project_Context_Exception{-5 ]Zend_Tool_Project_Context_Content_Engine{34 iZend_Tool_Project_Context_Content_Engine_Phtml{;3 yZend_Tool_Project_Context_Content_Engine_CodeGenerator{02 cZend_Tool_Framework_System_Provider_Version{01 cZend_Tool_Framework_System_Provider_Phpinfo{10 eZend_Tool_Framework_System_Provider_Manifest{(/ SZend_Tool_Framework_System_Manifest{-. ]Zend_Tool_Framework_System_Action_Delete{-- ]Zend_Tool_Framework_System_Action_Create{!, EZend_Tool_Framework_Registry{++ YZend_Tool_Framework_Registry_Exception{+* YZend_Tool_Framework_Provider_Signature{,) [Zend_Tool_Framework_Provider_Repository{+( YZend_Tool_Framework_Provider_Exception{*' WZend_Tool_Framework_Provider_Abstract{&& OZend_Tool_Framework_Metadata_Tool{)% UZend_Tool_Framework_Metadata_Dynamic{'$ QZend_Tool_Framework_Metadata_Basic{,# [Zend_Tool_Framework_Manifest_Repository{+" YZend_Tool_Framework_Manifest_Exception{1! eZend_Tool_Framework_Loader_IncludePathLoader{J  Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator{( SZend_Tool_Framework_Loader_Abstract{" GZend_Tool_Framework_Exception{' QZend_Tool_Framework_Client_Storage{1 eZend_Tool_Framework_Client_Storage_Directory{( SZend_Tool_Framework_Client_Response{D 	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator{' QZend_Tool_Framework_Client_Request{9 uZend_Tool_Framework_Client_Interactive_InputResponse{8 sZend_Tool_Framework_Client_Interactive_InputRequest{8 sZend_Tool_Framework_Client_Interactive_InputHandler{) UZend_Tool_Framework_Client_Exception{   `  s5D	Z xDJ	


l
J
				q	E	iAeBw`E/bD(]=]8e@  {aB'         ? /Zend_Validate_Int{> 7Zend_Validate_InArray{= ;Zend_Validate_Identical{< 1Zend_Validate_Iban{; 9Zend_Validate_Hostname{: /Zend_Validate_Hex{9 ?Zend_Validate_GreaterThan{8 3Zend_Validate_Float{!7 EZend_Validate_File_WordCount{6 ?Zend_Validate_File_Upload{5 ;Zend_Validate_File_Size{4 ;Zend_Validate_File_Sha1{!3 EZend_Validate_File_NotExists{ 2 CZend_Validate_File_MimeType{1 9Zend_Validate_File_Md5{0 AZend_Validate_File_IsImage{$/ KZend_Validate_File_IsCompressed{!. EZend_Validate_File_ImageSize{- ;Zend_Validate_File_Hash{!, EZend_Validate_File_FilesSize{!+ EZend_Validate_File_Extension{* ?Zend_Validate_File_Exists{') QZend_Validate_File_ExcludeMimeType{(( SZend_Validate_File_ExcludeExtension{' =Zend_Validate_File_Crc32{& =Zend_Validate_File_Count{% ;Zend_Validate_Exception{$ AZend_Validate_EmailAddress{# 5Zend_Validate_Digits{"" GZend_Validate_Db_RecordExists{$! KZend_Validate_Db_NoRecordExists{  ?Zend_Validate_Db_Abstract{ 1Zend_Validate_Date{ 3Zend_Validate_Ccnum{ 7Zend_Validate_Between{ 7Zend_Validate_Barcode{ AZend_Validate_Barcode_UpcA{  CZend_Validate_Barcode_Ean13{ 3Zend_Validate_Alpha{ 3Zend_Validate_Alnum{ 9Zend_Validate_Abstract{ Zend_Uri{ 'Zend_Uri_Http{ 1Zend_Uri_Exception{ )Zend_Translate{ 7Zend_Translate_Plural{ =Zend_Translate_Exception{ 9Zend_Translate_Adapter{! EZend_Translate_Adapter_XmlTm{! EZend_Translate_Adapter_Xliff{ AZend_Translate_Adapter_Tmx{ AZend_Translate_Adapter_Tbx{ ?Zend_Translate_Adapter_Qt{
 AZend_Translate_Adapter_Ini{#	 IZend_Translate_Adapter_Gettext{ AZend_Translate_Adapter_Csv{! EZend_Translate_Adapter_Array{$ KZend_Tool_Project_Provider_View{$ KZend_Tool_Project_Provider_Test{/ aZend_Tool_Project_Provider_ProjectProvider{' QZend_Tool_Project_Provider_Project{' QZend_Tool_Project_Provider_Profile{& OZend_Tool_Project_Provider_Module{%  MZend_Tool_Project_Provider_Model{( SZend_Tool_Project_Provider_Manifest{$~ KZend_Tool_Project_Provider_Form{)} UZend_Tool_Project_Provider_Exception{*| WZend_Tool_Project_Provider_Controller{&{ OZend_Tool_Project_Provider_Action{(z SZend_Tool_Project_Provider_Abstract{y ?Zend_Tool_Project_Profile{'x QZend_Tool_Project_Profile_Resource{9w uZend_Tool_Project_Profile_Resource_SearchConstraints{1v eZend_Tool_Project_Profile_Resource_Container{=u }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter{5t mZend_Tool_Project_Profile_Iterator_ContextFilter{-s ]Zend_Tool_Project_Profile_FileParser_Xml{(r SZend_Tool_Project_Profile_Exception{ q CZend_Tool_Project_Exception{<p {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory{0o cZend_Tool_Project_Context_Zf_ViewsDirectory{6n oZend_Tool_Project_Context_Zf_ViewScriptsDirectory{0m cZend_Tool_Project_Context_Zf_ViewScriptFile{6l oZend_Tool_Project_Context_Zf_ViewHelpersDirectory{6k oZend_Tool_Project_Context_Zf_ViewFiltersDirectory{Aj Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory{2i gZend_Tool_Project_Context_Zf_UploadsDirectory{0h cZend_Tool_Project_Context_Zf_TestsDirectory{7g qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile{@f Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory{1e eZend_Tool_Project_Context_Zf_TestLibraryFile{6d oZend_Tool_Project_Context_Zf_TestLibraryDirectory{:c wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFile{:b wZend_Tool_Project_Context_Zf_TestApplicationDirectory{@a Zend_Tool_Project_Context_Zf_TestApplicationControllerFile{E` Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory{   j  d>pN.hDlIlH& 



u
R
-

				{	U	7	a5u=c5gU+]8`E'oN)eC                                ) AZend_XmlRpc_Value_DateTime{!( EZend_XmlRpc_Value_Collection{' ?Zend_XmlRpc_Value_Boolean{!& EZend_XmlRpc_Value_BigInteger{% =Zend_XmlRpc_Value_Base64{$ ;Zend_XmlRpc_Value_Array{# 1Zend_XmlRpc_Server{" ?Zend_XmlRpc_Server_System{! =Zend_XmlRpc_Server_Fault{!  EZend_XmlRpc_Server_Exception{ =Zend_XmlRpc_Server_Cache{ 5Zend_XmlRpc_Response{ ?Zend_XmlRpc_Response_Http{ 3Zend_XmlRpc_Request{ ?Zend_XmlRpc_Request_Stdin{ =Zend_XmlRpc_Request_Http{ /Zend_XmlRpc_Fault{ 7Zend_XmlRpc_Exception{ 1Zend_XmlRpc_Client{# IZend_XmlRpc_Client_ServerProxy{+ YZend_XmlRpc_Client_ServerIntrospection{+ YZend_XmlRpc_Client_IntrospectException{% MZend_XmlRpc_Client_HttpException{& OZend_XmlRpc_Client_FaultException{! EZend_XmlRpc_Client_Exception{& OZend_Wildfire_Protocol_JsonStream{! EZend_Wildfire_Plugin_FirePhp{. _Zend_Wildfire_Plugin_FirePhp_TableMessage{) UZend_Wildfire_Plugin_FirePhp_Message{ ;Zend_Wildfire_Exception{& OZend_Wildfire_Channel_HttpHeaders{
 Zend_View{	 -Zend_View_Stream{ 5Zend_View_Helper_Url{ AZend_View_Helper_Translate{ AZend_View_Helper_ServerUrl{) UZend_View_Helper_RenderToPlaceholder{! EZend_View_Helper_Placeholder{* WZend_View_Helper_Placeholder_Registry{4 kZend_View_Helper_Placeholder_Registry_Exception{+ YZend_View_Helper_Placeholder_Container{6  oZend_View_Helper_Placeholder_Container_Standalone{5 mZend_View_Helper_Placeholder_Container_Exception{4~ kZend_View_Helper_Placeholder_Container_Abstract{!} EZend_View_Helper_PartialLoop{| =Zend_View_Helper_Partial{'{ QZend_View_Helper_Partial_Exception{'z QZend_View_Helper_PaginationControl{ y CZend_View_Helper_Navigation{(x SZend_View_Helper_Navigation_Sitemap{%w MZend_View_Helper_Navigation_Menu{&v OZend_View_Helper_Navigation_Links{/u aZend_View_Helper_Navigation_HelperAbstract{,t [Zend_View_Helper_Navigation_Breadcrumbs{s ;Zend_View_Helper_Layout{r 7Zend_View_Helper_Json{"q GZend_View_Helper_InlineScript{#p IZend_View_Helper_HtmlQuicktime{o ?Zend_View_Helper_HtmlPage{ n CZend_View_Helper_HtmlObject{m ?Zend_View_Helper_HtmlList{l AZend_View_Helper_HtmlFlash{!k EZend_View_Helper_HtmlElement{j AZend_View_Helper_HeadTitle{i AZend_View_Helper_HeadStyle{ h CZend_View_Helper_HeadScript{g ?Zend_View_Helper_HeadMeta{f ?Zend_View_Helper_HeadLink{"e GZend_View_Helper_FormTextarea{d ?Zend_View_Helper_FormText{ c CZend_View_Helper_FormSubmit{ b CZend_View_Helper_FormSelect{a AZend_View_Helper_FormReset{` AZend_View_Helper_FormRadio{"_ GZend_View_Helper_FormPassword{^ ?Zend_View_Helper_FormNote{'] QZend_View_Helper_FormMultiCheckbox{\ AZend_View_Helper_FormLabel{[ AZend_View_Helper_FormImage{ Z CZend_View_Helper_FormHidden{Y ?Zend_View_Helper_FormFile{ X CZend_View_Helper_FormErrors{!W EZend_View_Helper_FormElement{"V GZend_View_Helper_FormCheckbox{ U CZend_View_Helper_FormButton{T 7Zend_View_Helper_Form{S ?Zend_View_Helper_Fieldset{R =Zend_View_Helper_Doctype{!Q EZend_View_Helper_DeclareVars{P 9Zend_View_Helper_Cycle{O =Zend_View_Helper_BaseUrl{N ;Zend_View_Helper_Action{M ?Zend_View_Helper_Abstract{L 3Zend_View_Exception{K 1Zend_View_Abstract{J %Zend_Version{I 'Zend_Validate{H AZend_Validate_StringLength{#G IZend_Validate_Sitemap_Priority{F ?Zend_Validate_Sitemap_Loc{"E GZend_Validate_Sitemap_Lastmod{%D MZend_Validate_Sitemap_Changefreq{C 3Zend_Validate_Regex{B 9Zend_Validate_NotEmpty{A 9Zend_Validate_LessThan{@ -Zend_Validate_Ip{   l  {Z9kZ>yR)j>}cA)



l
8
			{	J	(vK!uL"oCj=b:`;tYA$xeK1                        3Zend_Captcha_Figlet| 9Zend_Captcha_Exception| /Zend_Captcha_Dumb| /Zend_Captcha_Base| !Zend_Cache| =Zend_Cache_Frontend_Page| AZend_Cache_Frontend_Output|! EZend_Cache_Frontend_Function| =Zend_Cache_Frontend_File| ?Zend_Cache_Frontend_Class| 5Zend_Cache_Exception|
 +Zend_Cache_Core|	 1Zend_Cache_Backend|" GZend_Cache_Backend_ZendServer|( SZend_Cache_Backend_ZendServer_ShMem|' QZend_Cache_Backend_ZendServer_Disk|$ KZend_Cache_Backend_ZendPlatform| ?Zend_Cache_Backend_Xcache|! EZend_Cache_Backend_TwoLevels| ;Zend_Cache_Backend_Test| ?Zend_Cache_Backend_Sqlite|!  EZend_Cache_Backend_Memcached| ;Zend_Cache_Backend_File|~ 9Zend_Cache_Backend_Apc|} Zend_Auth|| ?Zend_Auth_Storage_Session|${ KZend_Auth_Storage_NonPersistent| z CZend_Auth_Storage_Exception|y -Zend_Auth_Result|x 3Zend_Auth_Exception|w =Zend_Auth_Adapter_OpenId|v 9Zend_Auth_Adapter_Ldap|u AZend_Auth_Adapter_InfoCard|t 9Zend_Auth_Adapter_Http|)s UZend_Auth_Adapter_Http_Resolver_File|.r _Zend_Auth_Adapter_Http_Resolver_Exception| q CZend_Auth_Adapter_Exception|p =Zend_Auth_Adapter_Digest|o ?Zend_Auth_Adapter_DbTable|n -Zend_Application|#m IZend_Application_Resource_View|(l SZend_Application_Resource_Translate|&k OZend_Application_Resource_Session|%j MZend_Application_Resource_Router|/i aZend_Application_Resource_ResourceAbstract|)h UZend_Application_Resource_Navigation|&g OZend_Application_Resource_Modules|%f MZend_Application_Resource_Locale|%e MZend_Application_Resource_Layout|.d _Zend_Application_Resource_Frontcontroller|(c SZend_Application_Resource_Exception|!b EZend_Application_Resource_Db|&a OZend_Application_Module_Bootstrap|'` QZend_Application_Module_Autoloader|_ AZend_Application_Exception|)^ UZend_Application_Bootstrap_Exception|1] eZend_Application_Bootstrap_BootstrapAbstract|)\ UZend_Application_Bootstrap_Bootstrap|[ ?Zend_Amf_Value_TraitsInfo|-Z ]Zend_Amf_Value_Messaging_RemotingMessage|*Y WZend_Amf_Value_Messaging_ErrorMessage|,X [Zend_Amf_Value_Messaging_CommandMessage|*W WZend_Amf_Value_Messaging_AsyncMessage|-V ]Zend_Amf_Value_Messaging_ArrayCollection|0U cZend_Amf_Value_Messaging_AcknowledgeMessage|-T ]Zend_Amf_Value_Messaging_AbstractMessage|!S EZend_Amf_Value_MessageHeader|R AZend_Amf_Value_MessageBody|Q =Zend_Amf_Value_ByteArray|P AZend_Amf_Util_BinaryStream|O +Zend_Amf_Server|N ?Zend_Amf_Server_Exception|M /Zend_Amf_Response|L 9Zend_Amf_Response_Http|K -Zend_Amf_Request|J 7Zend_Amf_Request_Http|I ?Zend_Amf_Parse_TypeLoader|H ?Zend_Amf_Parse_Serializer|#G IZend_Amf_Parse_Resource_Stream|(F SZend_Amf_Parse_Resource_MysqlResult|)E UZend_Amf_Parse_Resource_MysqliResult| D CZend_Amf_Parse_OutputStream|C AZend_Amf_Parse_InputStream| B CZend_Amf_Parse_Deserializer|#A IZend_Amf_Parse_Amf3_Serializer|%@ MZend_Amf_Parse_Amf3_Deserializer|#? IZend_Amf_Parse_Amf0_Serializer|%> MZend_Amf_Parse_Amf0_Deserializer|= 1Zend_Amf_Exception|< 1Zend_Amf_Constants|; 9Zend_Amf_Auth_Abstract| : CZend_Amf_Adobe_Introspector|9 AZend_Amf_Adobe_DbInspector|8 3Zend_Amf_Adobe_Auth|7 Zend_Acl|6 'Zend_Acl_Role|5 9Zend_Acl_Role_Registry|%4 MZend_Acl_Role_Registry_Exception|3 /Zend_Acl_Resource|2 1Zend_Acl_Exception|1 /Zend_XmlRpc_Value{0 =Zend_XmlRpc_Value_Struct{/ =Zend_XmlRpc_Value_String{. =Zend_XmlRpc_Value_Scalar{- 7Zend_XmlRpc_Value_Nil{, ?Zend_XmlRpc_Value_Integer{ + CZend_XmlRpc_Value_Exception{* =Zend_XmlRpc_Value_Double{   Z  c5wE{Y/d5]1



u
G
					c	F	!}V,Z-r=
sP0d5f0f=$R                     8
 sZend_Tool_Framework_Client_Storage_AdapterInterface|D	 	Zend_Tool_Framework_Client_Response_ContentDecorator_Interface|; yZend_Tool_Framework_Client_Interactive_OutputInterface|: wZend_Tool_Framework_Client_Interactive_InputInterface|) UZend_Tool_Framework_Action_Interface|( SZend_Text_Table_Decorator_Interface| /Zend_Tag_Taggable|& OZend_Soap_Wsdl_Strategy_Interface|% MZend_Session_Validator_Interface|' QZend_Session_SaveHandler_Interface|  7Zend_Server_Interface|4 kZend_Search_Lucene_Search_Highlighter_Interface|!~ EZend_Search_Lucene_Interface|3} iZend_Search_Lucene_Index_TermsStream_Interface|$| KZend_Queue_Stomp_FrameInterface|0{ cZend_Queue_Stomp_Client_ConnectionInterface|(z SZend_Queue_Adapter_AdapterInterface|y ?Zend_Pdf_Filter_Interface|&x OZend_Pdf_ElementFactory_Interface|,w [Zend_Paginator_ScrollingStyle_Interface|$v KZend_Paginator_AdapterAggregate|%u MZend_Paginator_Adapter_Interface|$t KZend_Memory_Container_Interface|)s UZend_Mail_Storage_Writable_Interface|'r QZend_Mail_Storage_Folder_Interface|q =Zend_Mail_Part_Interface| p CZend_Mail_Message_Interface|!o EZend_Log_Formatter_Interface|n ?Zend_Log_Filter_Interface|'m QZend_Loader_PluginLoader_Interface|%l MZend_Loader_Autoloader_Interface|0k cZend_Ldap_Node_Schema_ObjectClass_Interface|2j gZend_Ldap_Node_Schema_AttributeType_Interface|,i [Zend_Ldap_Collection_Iterator_Interface|3h iZend_InfoCard_Xml_Security_Transform_Interface|(g SZend_InfoCard_Xml_KeyInfo_Interface|(f SZend_InfoCard_Xml_Element_Interface|*e WZend_InfoCard_Xml_Assertion_Interface|-d ]Zend_InfoCard_Cipher_Symmetric_Interface|7c qZend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface|7b qZend_InfoCard_Cipher_Symmetric_Aes128cbc_Interface|+a YZend_InfoCard_Cipher_Pki_Rsa_Interface|'` QZend_InfoCard_Cipher_Pki_Interface|$_ KZend_InfoCard_Adapter_Interface|$^ KZend_Http_Client_Adapter_Stream|'] QZend_Http_Client_Adapter_Interface|\ AZend_Gdata_App_MediaSource|.[ _Zend_Form_Decorator_Marker_File_Interface|"Z GZend_Form_Decorator_Interface|Y 7Zend_Filter_Interface|"X GZend_Filter_Encrypt_Interface|#W IZend_Feed_Reader_FeedInterface|$V KZend_Feed_Reader_EntryInterface| U CZend_Feed_Builder_Interface| T CZend_Db_Statement_Interface|)S UZend_Crypt_Math_BigInteger_Interface|+R YZend_Controller_Router_Route_Interface|%Q MZend_Controller_Router_Interface|)P UZend_Controller_Dispatcher_Interface|%O MZend_Controller_Action_Interface|N 5Zend_Captcha_Adapter|!M EZend_Cache_Backend_Interface|)L UZend_Cache_Backend_ExtendedInterface| K CZend_Auth_Storage_Interface| J CZend_Auth_Adapter_Interface|.I _Zend_Auth_Adapter_Http_Resolver_Interface|'H QZend_Application_Resource_Resource|4G kZend_Application_Bootstrap_ResourceBootstrapper|,F [Zend_Application_Bootstrap_Bootstrapper|E ;Zend_Acl_Role_Interface| D CZend_Acl_Resource_Interface|C ?Zend_Acl_Assert_Interface|#B IZend_Wildfire_Plugin_Interface{$A KZend_Wildfire_Channel_Interface{@ 3Zend_View_Interface{'? QZend_View_Helper_Navigation_Helper{> AZend_View_Helper_Interface{= ;Zend_Validate_Interface{3< iZend_Tool_Project_Profile_FileParser_Interface{:; wZend_Tool_Project_Context_System_TopLevelRestrictable{5: mZend_Tool_Project_Context_System_NotOverwritable{/9 aZend_Tool_Project_Context_System_Interface{(8 SZend_Tool_Project_Context_Interface{+7 YZend_Tool_Framework_Registry_Interface{26 gZend_Tool_Framework_Registry_EnabledInterface{-5 ]Zend_Tool_Framework_Provider_Pretendable{+4 YZend_Tool_Framework_Provider_Interface{.3 _Zend_Tool_Framework_Provider_Interactable{;2 yZend_Tool_Framework_Provider_DocblockManifestInterface{+1 YZend_Tool_Framework_Metadata_Interface{   c  c;Y-Y3wYA uY0


a
*				V	%bC~V+\2j?sEiDwJ# fO<    x 5Zend_Date_DateObject|w -Zend_Date_Cities|v 'Zend_Currency|u ;Zend_Currency_Exception|t !Zend_Crypt|s )Zend_Crypt_Rsa|r 1Zend_Crypt_Rsa_Key|q ?Zend_Crypt_Rsa_Key_Public|p AZend_Crypt_Rsa_Key_Private|o +Zend_Crypt_Math|n ?Zend_Crypt_Math_Exception|m AZend_Crypt_Math_BigInteger|#l IZend_Crypt_Math_BigInteger_Gmp|)k UZend_Crypt_Math_BigInteger_Exception|&j OZend_Crypt_Math_BigInteger_Bcmath|i +Zend_Crypt_Hmac|h ?Zend_Crypt_Hmac_Exception|g 5Zend_Crypt_Exception|f =Zend_Crypt_DiffieHellman|'e QZend_Crypt_DiffieHellman_Exception|!d EZend_Controller_Router_Route|(c SZend_Controller_Router_Route_Static|'b QZend_Controller_Router_Route_Regex|(a SZend_Controller_Router_Route_Module|*` WZend_Controller_Router_Route_Hostname|'_ QZend_Controller_Router_Route_Chain|*^ WZend_Controller_Router_Route_Abstract|#] IZend_Controller_Router_Rewrite|%\ MZend_Controller_Router_Exception|$[ KZend_Controller_Router_Abstract|*Z WZend_Controller_Response_HttpTestCase|"Y GZend_Controller_Response_Http|'X QZend_Controller_Response_Exception|!W EZend_Controller_Response_Cli|&V OZend_Controller_Response_Abstract|#U IZend_Controller_Request_Simple|)T UZend_Controller_Request_HttpTestCase|!S EZend_Controller_Request_Http|&R OZend_Controller_Request_Exception|&Q OZend_Controller_Request_Apache404|%P MZend_Controller_Request_Abstract|&O OZend_Controller_Plugin_PutHandler|(N SZend_Controller_Plugin_ErrorHandler|"M GZend_Controller_Plugin_Broker|'L QZend_Controller_Plugin_ActionStack|$K KZend_Controller_Plugin_Abstract|J 7Zend_Controller_Front|I ?Zend_Controller_Exception|(H SZend_Controller_Dispatcher_Standard|)G UZend_Controller_Dispatcher_Exception|(F SZend_Controller_Dispatcher_Abstract|E 9Zend_Controller_Action|(D SZend_Controller_Action_HelperBroker|6C oZend_Controller_Action_HelperBroker_PriorityStack|/B aZend_Controller_Action_Helper_ViewRenderer|&A OZend_Controller_Action_Helper_Url|-@ ]Zend_Controller_Action_Helper_Redirector|'? QZend_Controller_Action_Helper_Json|1> eZend_Controller_Action_Helper_FlashMessenger|0= cZend_Controller_Action_Helper_ContextSwitch|<< {Zend_Controller_Action_Helper_AutoCompleteScriptaculous|3; iZend_Controller_Action_Helper_AutoCompleteDojo|8: sZend_Controller_Action_Helper_AutoComplete_Abstract|.9 _Zend_Controller_Action_Helper_AjaxContext|.8 _Zend_Controller_Action_Helper_ActionStack|+7 YZend_Controller_Action_Helper_Abstract|%6 MZend_Controller_Action_Exception|5 3Zend_Console_Getopt|"4 GZend_Console_Getopt_Exception|3 #Zend_Config|2 +Zend_Config_Xml|1 1Zend_Config_Writer|0 9Zend_Config_Writer_Xml|/ 9Zend_Config_Writer_Ini|. =Zend_Config_Writer_Array|- +Zend_Config_Ini|, 7Zend_Config_Exception|$+ KZend_CodeGenerator_Php_Property|1* eZend_CodeGenerator_Php_Property_DefaultValue|%) MZend_CodeGenerator_Php_Parameter|2( gZend_CodeGenerator_Php_Parameter_DefaultValue|"' GZend_CodeGenerator_Php_Method|,& [Zend_CodeGenerator_Php_Member_Container|+% YZend_CodeGenerator_Php_Member_Abstract| $ CZend_CodeGenerator_Php_File|%# MZend_CodeGenerator_Php_Exception|$" KZend_CodeGenerator_Php_Docblock|(! SZend_CodeGenerator_Php_Docblock_Tag|/  aZend_CodeGenerator_Php_Docblock_Tag_Return|. _Zend_CodeGenerator_Php_Docblock_Tag_Param|0 cZend_CodeGenerator_Php_Docblock_Tag_License|! EZend_CodeGenerator_Php_Class|  CZend_CodeGenerator_Php_Body|$ KZend_CodeGenerator_Php_Abstract|! EZend_CodeGenerator_Exception|  CZend_CodeGenerator_Abstract| /Zend_Captcha_Word| 9Zend_Captcha_ReCaptcha| 1Zend_Captcha_Image|   i  oM$tP0^?%s\4{Z8




s
R
2
					g	@	#	f7{P xP(Y*qFwLe9n@                   &a OZend_Dojo_View_Helper_DateTextBox|&` OZend_Dojo_View_Helper_CustomDijit|*_ WZend_Dojo_View_Helper_CurrencyTextBox|&^ OZend_Dojo_View_Helper_ContentPane|#] IZend_Dojo_View_Helper_ComboBox|#\ IZend_Dojo_View_Helper_CheckBox|![ EZend_Dojo_View_Helper_Button|*Z WZend_Dojo_View_Helper_BorderContainer|(Y SZend_Dojo_View_Helper_AccordionPane|-X ]Zend_Dojo_View_Helper_AccordionContainer|W =Zend_Dojo_View_Exception|V )Zend_Dojo_Form|U 9Zend_Dojo_Form_SubForm|*T WZend_Dojo_Form_Element_VerticalSlider|-S ]Zend_Dojo_Form_Element_ValidationTextBox|'R QZend_Dojo_Form_Element_TimeTextBox|#Q IZend_Dojo_Form_Element_TextBox|$P KZend_Dojo_Form_Element_Textarea|(O SZend_Dojo_Form_Element_SubmitButton|"N GZend_Dojo_Form_Element_Slider|*M WZend_Dojo_Form_Element_SimpleTextarea|'L QZend_Dojo_Form_Element_RadioButton|+K YZend_Dojo_Form_Element_PasswordTextBox|)J UZend_Dojo_Form_Element_NumberTextBox|)I UZend_Dojo_Form_Element_NumberSpinner|,H [Zend_Dojo_Form_Element_HorizontalSlider|+G YZend_Dojo_Form_Element_FilteringSelect|"F GZend_Dojo_Form_Element_Editor|&E OZend_Dojo_Form_Element_DijitMulti|!D EZend_Dojo_Form_Element_Dijit|'C QZend_Dojo_Form_Element_DateTextBox|+B YZend_Dojo_Form_Element_CurrencyTextBox|$A KZend_Dojo_Form_Element_ComboBox|$@ KZend_Dojo_Form_Element_CheckBox|"? GZend_Dojo_Form_Element_Button| > CZend_Dojo_Form_DisplayGroup|*= WZend_Dojo_Form_Decorator_TabContainer|,< [Zend_Dojo_Form_Decorator_StackContainer|,; [Zend_Dojo_Form_Decorator_SplitContainer|': QZend_Dojo_Form_Decorator_DijitForm|*9 WZend_Dojo_Form_Decorator_DijitElement|,8 [Zend_Dojo_Form_Decorator_DijitContainer|)7 UZend_Dojo_Form_Decorator_ContentPane|-6 ]Zend_Dojo_Form_Decorator_BorderContainer|+5 YZend_Dojo_Form_Decorator_AccordionPane|04 cZend_Dojo_Form_Decorator_AccordionContainer|3 3Zend_Dojo_Exception|2 )Zend_Dojo_Data|1 5Zend_Dojo_BuildLayer|0 !Zend_Debug|/ Zend_Db|. 'Zend_Db_Table|- 5Zend_Db_Table_Select|#, IZend_Db_Table_Select_Exception|+ 5Zend_Db_Table_Rowset|#* IZend_Db_Table_Rowset_Exception|") GZend_Db_Table_Rowset_Abstract|( /Zend_Db_Table_Row| ' CZend_Db_Table_Row_Exception|& AZend_Db_Table_Row_Abstract|% ;Zend_Db_Table_Exception|$ =Zend_Db_Table_Definition|# 9Zend_Db_Table_Abstract|" /Zend_Db_Statement|! =Zend_Db_Statement_Sqlsrv|'  QZend_Db_Statement_Sqlsrv_Exception| 7Zend_Db_Statement_Pdo| ?Zend_Db_Statement_Pdo_Oci| ?Zend_Db_Statement_Pdo_Ibm| =Zend_Db_Statement_Oracle|' QZend_Db_Statement_Oracle_Exception| =Zend_Db_Statement_Mysqli|' QZend_Db_Statement_Mysqli_Exception|  CZend_Db_Statement_Exception| 7Zend_Db_Statement_Db2|$ KZend_Db_Statement_Db2_Exception| )Zend_Db_Select| =Zend_Db_Select_Exception| -Zend_Db_Profiler| 9Zend_Db_Profiler_Query| =Zend_Db_Profiler_Firebug| AZend_Db_Profiler_Exception| %Zend_Db_Expr| /Zend_Db_Exception| 9Zend_Db_Adapter_Sqlsrv|% MZend_Db_Adapter_Sqlsrv_Exception| AZend_Db_Adapter_Pdo_Sqlite|
 ?Zend_Db_Adapter_Pdo_Pgsql|	 ;Zend_Db_Adapter_Pdo_Oci| ?Zend_Db_Adapter_Pdo_Mysql| ?Zend_Db_Adapter_Pdo_Mssql| ;Zend_Db_Adapter_Pdo_Ibm|  CZend_Db_Adapter_Pdo_Ibm_Ids|  CZend_Db_Adapter_Pdo_Ibm_Db2|! EZend_Db_Adapter_Pdo_Abstract| 9Zend_Db_Adapter_Oracle|% MZend_Db_Adapter_Oracle_Exception|  9Zend_Db_Adapter_Mysqli|% MZend_Db_Adapter_Mysqli_Exception|~ ?Zend_Db_Adapter_Exception|} 3Zend_Db_Adapter_Db2|"| GZend_Db_Adapter_Db2_Exception|{ =Zend_Db_Adapter_Abstract|z Zend_Date|y 3Zend_Date_Exception|   i  _:b4
^3a4"hH$





i
M
1
				h	7_.n:
hG.rX>!nR4kM3hF'a8            &J OZend_Filter_Word_DashToUnderscore|%I MZend_Filter_Word_DashToSeparator|%H MZend_Filter_Word_DashToCamelCase|+G YZend_Filter_Word_CamelCaseToUnderscore|*F WZend_Filter_Word_CamelCaseToSeparator|%E MZend_Filter_Word_CamelCaseToDash|D 7Zend_Filter_StripTags|C ?Zend_Filter_StripNewlines|B 9Zend_Filter_StringTrim|A ?Zend_Filter_StringToUpper|@ ?Zend_Filter_StringToLower|? 5Zend_Filter_RealPath|> ;Zend_Filter_PregReplace|&= OZend_Filter_NormalizedToLocalized|&< OZend_Filter_LocalizedToNormalized|; +Zend_Filter_Int|: /Zend_Filter_Input|9 7Zend_Filter_Inflector|8 =Zend_Filter_HtmlEntities|7 AZend_Filter_File_UpperCase|6 ;Zend_Filter_File_Rename|5 AZend_Filter_File_LowerCase|4 =Zend_Filter_File_Encrypt|3 =Zend_Filter_File_Decrypt|2 7Zend_Filter_Exception|1 3Zend_Filter_Encrypt| 0 CZend_Filter_Encrypt_Openssl|/ AZend_Filter_Encrypt_Mcrypt|. +Zend_Filter_Dir|- 1Zend_Filter_Digits|, 3Zend_Filter_Decrypt|+ 5Zend_Filter_Callback|* 5Zend_Filter_BaseName|) /Zend_Filter_Alpha|( /Zend_Filter_Alnum|' 1Zend_File_Transfer|!& EZend_File_Transfer_Exception|$% KZend_File_Transfer_Adapter_Http|($ SZend_File_Transfer_Adapter_Abstract|# Zend_Feed|" 'Zend_Feed_Rss|! -Zend_Feed_Reader|  =Zend_Feed_Reader_FeedSet|" GZend_Feed_Reader_FeedAbstract| ?Zend_Feed_Reader_Feed_Rss| AZend_Feed_Reader_Feed_Atom|3 iZend_Feed_Reader_Extension_WellFormedWeb_Entry|, [Zend_Feed_Reader_Extension_Thread_Entry|0 cZend_Feed_Reader_Extension_Syndication_Feed|+ YZend_Feed_Reader_Extension_Slash_Entry|, [Zend_Feed_Reader_Extension_Podcast_Feed|- ]Zend_Feed_Reader_Extension_Podcast_Entry|, [Zend_Feed_Reader_Extension_FeedAbstract|- ]Zend_Feed_Reader_Extension_EntryAbstract|/ aZend_Feed_Reader_Extension_DublinCore_Feed|0 cZend_Feed_Reader_Extension_DublinCore_Entry|4 kZend_Feed_Reader_Extension_CreativeCommons_Feed|5 mZend_Feed_Reader_Extension_CreativeCommons_Entry|- ]Zend_Feed_Reader_Extension_Content_Entry|) UZend_Feed_Reader_Extension_Atom_Feed|* WZend_Feed_Reader_Extension_Atom_Entry|# IZend_Feed_Reader_EntryAbstract| AZend_Feed_Reader_Entry_Rss|  CZend_Feed_Reader_Entry_Atom|
 3Zend_Feed_Exception|	 3Zend_Feed_Entry_Rss| 5Zend_Feed_Entry_Atom| =Zend_Feed_Entry_Abstract| /Zend_Feed_Element| /Zend_Feed_Builder| =Zend_Feed_Builder_Header|$ KZend_Feed_Builder_Header_Itunes|  CZend_Feed_Builder_Exception| ;Zend_Feed_Builder_Entry|  )Zend_Feed_Atom| 1Zend_Feed_Abstract|~ )Zend_Exception|} )Zend_Dom_Query|| 7Zend_Dom_Query_Result|{ =Zend_Dom_Query_Css2Xpath|z 1Zend_Dom_Exception|y Zend_Dojo|)x UZend_Dojo_View_Helper_VerticalSlider|,w [Zend_Dojo_View_Helper_ValidationTextBox|&v OZend_Dojo_View_Helper_TimeTextBox|"u GZend_Dojo_View_Helper_TextBox|#t IZend_Dojo_View_Helper_Textarea|'s QZend_Dojo_View_Helper_TabContainer|'r QZend_Dojo_View_Helper_SubmitButton|)q UZend_Dojo_View_Helper_StackContainer|)p UZend_Dojo_View_Helper_SplitContainer|!o EZend_Dojo_View_Helper_Slider|)n UZend_Dojo_View_Helper_SimpleTextarea|&m OZend_Dojo_View_Helper_RadioButton|*l WZend_Dojo_View_Helper_PasswordTextBox|(k SZend_Dojo_View_Helper_NumberTextBox|(j SZend_Dojo_View_Helper_NumberSpinner|+i YZend_Dojo_View_Helper_HorizontalSlider|h AZend_Dojo_View_Helper_Form|*g WZend_Dojo_View_Helper_FilteringSelect|!f EZend_Dojo_View_Helper_Editor|e AZend_Dojo_View_Helper_Dojo|)d UZend_Dojo_View_Helper_Dojo_Container|)c UZend_Dojo_View_Helper_DijitContainer| b CZend_Dojo_View_Helper_Dijit|   g }O i@^=d8dA




~
V
0
					l	I	)	tX1qHzS(lDvP) wO*X<_.                                           )1 UZend_Gdata_Books_Extension_BooksLink|-0 ]Zend_Gdata_Books_Extension_BooksCategory|./ _Zend_Gdata_Books_Extension_AnnotationLink|$. KZend_Gdata_Books_CollectionFeed|%- MZend_Gdata_Books_CollectionEntry|, 1Zend_Gdata_AuthSub|+ )Zend_Gdata_App|$* KZend_Gdata_App_VersionException|) 3Zend_Gdata_App_Util|#( IZend_Gdata_App_MediaFileSource|' ?Zend_Gdata_App_MediaEntry|2& gZend_Gdata_App_LoggingHttpClientAdapterSocket|% AZend_Gdata_App_IOException|,$ [Zend_Gdata_App_InvalidArgumentException|!# EZend_Gdata_App_HttpException|$" KZend_Gdata_App_FeedSourceParent|#! IZend_Gdata_App_FeedEntryParent|  3Zend_Gdata_App_Feed| =Zend_Gdata_App_Extension|! EZend_Gdata_App_Extension_Uri|% MZend_Gdata_App_Extension_Updated|# IZend_Gdata_App_Extension_Title|" GZend_Gdata_App_Extension_Text|% MZend_Gdata_App_Extension_Summary|& OZend_Gdata_App_Extension_Subtitle|$ KZend_Gdata_App_Extension_Source|$ KZend_Gdata_App_Extension_Rights|' QZend_Gdata_App_Extension_Published|$ KZend_Gdata_App_Extension_Person|" GZend_Gdata_App_Extension_Name|" GZend_Gdata_App_Extension_Logo|" GZend_Gdata_App_Extension_Link|  CZend_Gdata_App_Extension_Id|" GZend_Gdata_App_Extension_Icon|' QZend_Gdata_App_Extension_Generator|# IZend_Gdata_App_Extension_Email|% MZend_Gdata_App_Extension_Element|$ KZend_Gdata_App_Extension_Edited|# IZend_Gdata_App_Extension_Draft|%
 MZend_Gdata_App_Extension_Control|)	 UZend_Gdata_App_Extension_Contributor|% MZend_Gdata_App_Extension_Content|& OZend_Gdata_App_Extension_Category|$ KZend_Gdata_App_Extension_Author| =Zend_Gdata_App_Exception| 5Zend_Gdata_App_Entry|, [Zend_Gdata_App_CaptchaRequiredException|# IZend_Gdata_App_BaseMediaSource| 3Zend_Gdata_App_Base|*  WZend_Gdata_App_BadMethodCallException|! EZend_Gdata_App_AuthException|~ Zend_Form|} /Zend_Form_SubForm|| 3Zend_Form_Exception|{ /Zend_Form_Element|z ;Zend_Form_Element_Xhtml|y AZend_Form_Element_Textarea|x 9Zend_Form_Element_Text|w =Zend_Form_Element_Submit|v =Zend_Form_Element_Select|u ;Zend_Form_Element_Reset|t ;Zend_Form_Element_Radio|s AZend_Form_Element_Password|"r GZend_Form_Element_Multiselect|$q KZend_Form_Element_MultiCheckbox|p ;Zend_Form_Element_Multi|o ;Zend_Form_Element_Image|n =Zend_Form_Element_Hidden|m 9Zend_Form_Element_Hash|l 9Zend_Form_Element_File| k CZend_Form_Element_Exception|j AZend_Form_Element_Checkbox|i ?Zend_Form_Element_Captcha|h =Zend_Form_Element_Button|g 9Zend_Form_DisplayGroup|#f IZend_Form_Decorator_ViewScript|#e IZend_Form_Decorator_ViewHelper| d CZend_Form_Decorator_Tooltip|(c SZend_Form_Decorator_PrepareElements|b ?Zend_Form_Decorator_Label|a ?Zend_Form_Decorator_Image| ` CZend_Form_Decorator_HtmlTag|#_ IZend_Form_Decorator_FormErrors|%^ MZend_Form_Decorator_FormElements|] =Zend_Form_Decorator_Form|\ =Zend_Form_Decorator_File|![ EZend_Form_Decorator_Fieldset|"Z GZend_Form_Decorator_Exception|Y AZend_Form_Decorator_Errors|$X KZend_Form_Decorator_DtDdWrapper|$W KZend_Form_Decorator_Description| V CZend_Form_Decorator_Captcha|%U MZend_Form_Decorator_Captcha_Word|!T EZend_Form_Decorator_Callback|!S EZend_Form_Decorator_Abstract|R #Zend_Filter|+Q YZend_Filter_Word_UnderscoreToSeparator|&P OZend_Filter_Word_UnderscoreToDash|+O YZend_Filter_Word_UnderscoreToCamelCase|*N WZend_Filter_Word_SeparatorToSeparator|%M MZend_Filter_Word_SeparatorToDash|*L WZend_Filter_Word_SeparatorToCamelCase|(K SZend_Filter_Word_Separator_Abstract|   _  tJ|c<d9
o>eG/



o
<
			z	L	.	yK#~W0X/uAsI!^7}^1d>          & OZend_Gdata_Gapps_ServiceException| 9Zend_Gdata_Gapps_Query|# IZend_Gdata_Gapps_NicknameQuery|" GZend_Gdata_Gapps_NicknameFeed|# IZend_Gdata_Gapps_NicknameEntry|% MZend_Gdata_Gapps_Extension_Quota|(
 SZend_Gdata_Gapps_Extension_Nickname|$	 KZend_Gdata_Gapps_Extension_Name|% MZend_Gdata_Gapps_Extension_Login|) UZend_Gdata_Gapps_Extension_EmailList| 9Zend_Gdata_Gapps_Error|- ]Zend_Gdata_Gapps_EmailListRecipientQuery|, [Zend_Gdata_Gapps_EmailListRecipientFeed|- ]Zend_Gdata_Gapps_EmailListRecipientEntry|$ KZend_Gdata_Gapps_EmailListQuery|# IZend_Gdata_Gapps_EmailListFeed|$  KZend_Gdata_Gapps_EmailListEntry| +Zend_Gdata_Feed|~ 5Zend_Gdata_Extension|} =Zend_Gdata_Extension_Who|| AZend_Gdata_Extension_Where|{ ?Zend_Gdata_Extension_When|$z KZend_Gdata_Extension_Visibility|&y OZend_Gdata_Extension_Transparency|"x GZend_Gdata_Extension_Reminder|-w ]Zend_Gdata_Extension_RecurrenceException|$v KZend_Gdata_Extension_Recurrence| u CZend_Gdata_Extension_Rating|'t QZend_Gdata_Extension_OriginalEvent|0s cZend_Gdata_Extension_OpenSearchTotalResults|.r _Zend_Gdata_Extension_OpenSearchStartIndex|0q cZend_Gdata_Extension_OpenSearchItemsPerPage|"p GZend_Gdata_Extension_FeedLink|*o WZend_Gdata_Extension_ExtendedProperty|%n MZend_Gdata_Extension_EventStatus|#m IZend_Gdata_Extension_EntryLink|"l GZend_Gdata_Extension_Comments|&k OZend_Gdata_Extension_AttendeeType|(j SZend_Gdata_Extension_AttendeeStatus|i +Zend_Gdata_Exif|h 5Zend_Gdata_Exif_Feed|#g IZend_Gdata_Exif_Extension_Time|#f IZend_Gdata_Exif_Extension_Tags|$e KZend_Gdata_Exif_Extension_Model|#d IZend_Gdata_Exif_Extension_Make|"c GZend_Gdata_Exif_Extension_Iso|,b [Zend_Gdata_Exif_Extension_ImageUniqueId|$a KZend_Gdata_Exif_Extension_FStop|*` WZend_Gdata_Exif_Extension_FocalLength|$_ KZend_Gdata_Exif_Extension_Flash|'^ QZend_Gdata_Exif_Extension_Exposure|'] QZend_Gdata_Exif_Extension_Distance|\ 7Zend_Gdata_Exif_Entry|[ -Zend_Gdata_Entry|Z 7Zend_Gdata_DublinCore|*Y WZend_Gdata_DublinCore_Extension_Title|,X [Zend_Gdata_DublinCore_Extension_Subject|+W YZend_Gdata_DublinCore_Extension_Rights|.V _Zend_Gdata_DublinCore_Extension_Publisher|-U ]Zend_Gdata_DublinCore_Extension_Language|/T aZend_Gdata_DublinCore_Extension_Identifier|+S YZend_Gdata_DublinCore_Extension_Format|0R cZend_Gdata_DublinCore_Extension_Description|)Q UZend_Gdata_DublinCore_Extension_Date|,P [Zend_Gdata_DublinCore_Extension_Creator|O +Zend_Gdata_Docs|N 7Zend_Gdata_Docs_Query|%M MZend_Gdata_Docs_DocumentListFeed|&L OZend_Gdata_Docs_DocumentListEntry|K 9Zend_Gdata_ClientLogin|J 3Zend_Gdata_Calendar|!I EZend_Gdata_Calendar_ListFeed|"H GZend_Gdata_Calendar_ListEntry|-G ]Zend_Gdata_Calendar_Extension_WebContent|+F YZend_Gdata_Calendar_Extension_Timezone|9E uZend_Gdata_Calendar_Extension_SendEventNotifications|+D YZend_Gdata_Calendar_Extension_Selected|+C YZend_Gdata_Calendar_Extension_QuickAdd|'B QZend_Gdata_Calendar_Extension_Link|)A UZend_Gdata_Calendar_Extension_Hidden|(@ SZend_Gdata_Calendar_Extension_Color|.? _Zend_Gdata_Calendar_Extension_AccessLevel|#> IZend_Gdata_Calendar_EventQuery|"= GZend_Gdata_Calendar_EventFeed|#< IZend_Gdata_Calendar_EventEntry|; -Zend_Gdata_Books|!: EZend_Gdata_Books_VolumeQuery| 9 CZend_Gdata_Books_VolumeFeed|!8 EZend_Gdata_Books_VolumeEntry|+7 YZend_Gdata_Books_Extension_Viewability|-6 ]Zend_Gdata_Books_Extension_ThumbnailLink|&5 OZend_Gdata_Books_Extension_Review|+4 YZend_Gdata_Books_Extension_PreviewLink|(3 SZend_Gdata_Books_Extension_InfoLink|-2 ]Zend_Gdata_Books_Extension_Embeddability|   a  `/d? dH1	gG- rA


|
N
!				^	1wU9yM`5U'f7
\0mJ&Y/         +q YZend_Gdata_Spreadsheets_Extension_Cell|*p WZend_Gdata_Spreadsheets_DocumentQuery|&o OZend_Gdata_Spreadsheets_CellQuery|%n MZend_Gdata_Spreadsheets_CellFeed|&m OZend_Gdata_Spreadsheets_CellEntry|l -Zend_Gdata_Query|k /Zend_Gdata_Photos| j CZend_Gdata_Photos_UserQuery|i AZend_Gdata_Photos_UserFeed| h CZend_Gdata_Photos_UserEntry|g AZend_Gdata_Photos_TagEntry|!f EZend_Gdata_Photos_PhotoQuery| e CZend_Gdata_Photos_PhotoFeed|!d EZend_Gdata_Photos_PhotoEntry|&c OZend_Gdata_Photos_Extension_Width|'b QZend_Gdata_Photos_Extension_Weight|(a SZend_Gdata_Photos_Extension_Version|%` MZend_Gdata_Photos_Extension_User|*_ WZend_Gdata_Photos_Extension_Timestamp|*^ WZend_Gdata_Photos_Extension_Thumbnail|%] MZend_Gdata_Photos_Extension_Size|)\ UZend_Gdata_Photos_Extension_Rotation|+[ YZend_Gdata_Photos_Extension_QuotaLimit|-Z ]Zend_Gdata_Photos_Extension_QuotaCurrent|)Y UZend_Gdata_Photos_Extension_Position|(X SZend_Gdata_Photos_Extension_PhotoId|3W iZend_Gdata_Photos_Extension_NumPhotosRemaining|*V WZend_Gdata_Photos_Extension_NumPhotos|)U UZend_Gdata_Photos_Extension_Nickname|%T MZend_Gdata_Photos_Extension_Name|2S gZend_Gdata_Photos_Extension_MaxPhotosPerAlbum|)R UZend_Gdata_Photos_Extension_Location|#Q IZend_Gdata_Photos_Extension_Id|'P QZend_Gdata_Photos_Extension_Height|2O gZend_Gdata_Photos_Extension_CommentingEnabled|-N ]Zend_Gdata_Photos_Extension_CommentCount|'M QZend_Gdata_Photos_Extension_Client|)L UZend_Gdata_Photos_Extension_Checksum|*K WZend_Gdata_Photos_Extension_BytesUsed|(J SZend_Gdata_Photos_Extension_AlbumId|'I QZend_Gdata_Photos_Extension_Access|#H IZend_Gdata_Photos_CommentEntry|!G EZend_Gdata_Photos_AlbumQuery| F CZend_Gdata_Photos_AlbumFeed|!E EZend_Gdata_Photos_AlbumEntry|D 3Zend_Gdata_MimeFile|C ?Zend_Gdata_MimeBodyString|B AZend_Gdata_MediaMimeStream|A -Zend_Gdata_Media|@ 7Zend_Gdata_Media_Feed|*? WZend_Gdata_Media_Extension_MediaTitle|.> _Zend_Gdata_Media_Extension_MediaThumbnail|)= UZend_Gdata_Media_Extension_MediaText|0< cZend_Gdata_Media_Extension_MediaRestriction|+; YZend_Gdata_Media_Extension_MediaRating|+: YZend_Gdata_Media_Extension_MediaPlayer|-9 ]Zend_Gdata_Media_Extension_MediaKeywords|)8 UZend_Gdata_Media_Extension_MediaHash|*7 WZend_Gdata_Media_Extension_MediaGroup|06 cZend_Gdata_Media_Extension_MediaDescription|+5 YZend_Gdata_Media_Extension_MediaCredit|.4 _Zend_Gdata_Media_Extension_MediaCopyright|,3 [Zend_Gdata_Media_Extension_MediaContent|-2 ]Zend_Gdata_Media_Extension_MediaCategory|1 9Zend_Gdata_Media_Entry|0 AZend_Gdata_Kind_EventEntry|/ 7Zend_Gdata_HttpClient|*. WZend_Gdata_HttpAdapterStreamingSocket|)- UZend_Gdata_HttpAdapterStreamingProxy|, /Zend_Gdata_Health|+ ;Zend_Gdata_Health_Query|&* OZend_Gdata_Health_ProfileListFeed|') QZend_Gdata_Health_ProfileListEntry|"( GZend_Gdata_Health_ProfileFeed|#' IZend_Gdata_Health_ProfileEntry|$& KZend_Gdata_Health_Extension_Ccr|% )Zend_Gdata_Geo|$ 3Zend_Gdata_Geo_Feed|$# KZend_Gdata_Geo_Extension_GmlPos|&" OZend_Gdata_Geo_Extension_GmlPoint|)! UZend_Gdata_Geo_Extension_GeoRssWhere|  5Zend_Gdata_Geo_Entry| -Zend_Gdata_Gbase|" GZend_Gdata_Gbase_SnippetQuery|! EZend_Gdata_Gbase_SnippetFeed|" GZend_Gdata_Gbase_SnippetEntry| 9Zend_Gdata_Gbase_Query| AZend_Gdata_Gbase_ItemQuery| ?Zend_Gdata_Gbase_ItemFeed| AZend_Gdata_Gbase_ItemEntry| 7Zend_Gdata_Gbase_Feed|- ]Zend_Gdata_Gbase_Extension_BaseAttribute| 9Zend_Gdata_Gbase_Entry| -Zend_Gdata_Gapps| AZend_Gdata_Gapps_UserQuery| ?Zend_Gdata_Gapps_UserFeed| AZend_Gdata_Gapps_UserEntry|   [  i?\.nFqD[. 


z
H
				_	2	qDX,zLS'sG!W0qU3qD                      5L mZend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc|4K kZend_InfoCard_Cipher_Symmetric_Adapter_Abstract|)J UZend_InfoCard_Cipher_Pki_Adapter_Rsa|.I _Zend_InfoCard_Cipher_Pki_Adapter_Abstract|#H IZend_InfoCard_Cipher_Exception|$G KZend_InfoCard_Adapter_Exception|"F GZend_InfoCard_Adapter_Default|E 1Zend_Http_Response|D ?Zend_Http_Response_Stream|C 3Zend_Http_Exception|B 3Zend_Http_CookieJar|A -Zend_Http_Cookie|@ -Zend_Http_Client|? AZend_Http_Client_Exception|"> GZend_Http_Client_Adapter_Test|$= KZend_Http_Client_Adapter_Socket|#< IZend_Http_Client_Adapter_Proxy|'; QZend_Http_Client_Adapter_Exception|": GZend_Http_Client_Adapter_Curl|9 !Zend_Gdata|8 1Zend_Gdata_YouTube|"7 GZend_Gdata_YouTube_VideoQuery|!6 EZend_Gdata_YouTube_VideoFeed|"5 GZend_Gdata_YouTube_VideoEntry|(4 SZend_Gdata_YouTube_UserProfileEntry|(3 SZend_Gdata_YouTube_SubscriptionFeed|)2 UZend_Gdata_YouTube_SubscriptionEntry|)1 UZend_Gdata_YouTube_PlaylistVideoFeed|*0 WZend_Gdata_YouTube_PlaylistVideoEntry|(/ SZend_Gdata_YouTube_PlaylistListFeed|). UZend_Gdata_YouTube_PlaylistListEntry|"- GZend_Gdata_YouTube_MediaEntry|!, EZend_Gdata_YouTube_InboxFeed|"+ GZend_Gdata_YouTube_InboxEntry|)* UZend_Gdata_YouTube_Extension_VideoId|*) WZend_Gdata_YouTube_Extension_Username|*( WZend_Gdata_YouTube_Extension_Uploaded|'' QZend_Gdata_YouTube_Extension_Token|(& SZend_Gdata_YouTube_Extension_Status|,% [Zend_Gdata_YouTube_Extension_Statistics|'$ QZend_Gdata_YouTube_Extension_State|(# SZend_Gdata_YouTube_Extension_School|-" ]Zend_Gdata_YouTube_Extension_ReleaseDate|.! _Zend_Gdata_YouTube_Extension_Relationship|*  WZend_Gdata_YouTube_Extension_Recorded|& OZend_Gdata_YouTube_Extension_Racy|- ]Zend_Gdata_YouTube_Extension_QueryString|) UZend_Gdata_YouTube_Extension_Private|* WZend_Gdata_YouTube_Extension_Position|/ aZend_Gdata_YouTube_Extension_PlaylistTitle|, [Zend_Gdata_YouTube_Extension_PlaylistId|, [Zend_Gdata_YouTube_Extension_Occupation|) UZend_Gdata_YouTube_Extension_NoEmbed|' QZend_Gdata_YouTube_Extension_Music|( SZend_Gdata_YouTube_Extension_Movies|- ]Zend_Gdata_YouTube_Extension_MediaRating|, [Zend_Gdata_YouTube_Extension_MediaGroup|- ]Zend_Gdata_YouTube_Extension_MediaCredit|. _Zend_Gdata_YouTube_Extension_MediaContent|* WZend_Gdata_YouTube_Extension_Location|& OZend_Gdata_YouTube_Extension_Link|* WZend_Gdata_YouTube_Extension_LastName|* WZend_Gdata_YouTube_Extension_Hometown|) UZend_Gdata_YouTube_Extension_Hobbies|( SZend_Gdata_YouTube_Extension_Gender|+ YZend_Gdata_YouTube_Extension_FirstName|*
 WZend_Gdata_YouTube_Extension_Duration|-	 ]Zend_Gdata_YouTube_Extension_Description|+ YZend_Gdata_YouTube_Extension_CountHint|) UZend_Gdata_YouTube_Extension_Control|) UZend_Gdata_YouTube_Extension_Company|' QZend_Gdata_YouTube_Extension_Books|% MZend_Gdata_YouTube_Extension_Age|) UZend_Gdata_YouTube_Extension_AboutMe|# IZend_Gdata_YouTube_ContactFeed|$ KZend_Gdata_YouTube_ContactEntry|#  IZend_Gdata_YouTube_CommentFeed|$ KZend_Gdata_YouTube_CommentEntry|$~ KZend_Gdata_YouTube_ActivityFeed|%} MZend_Gdata_YouTube_ActivityEntry|| ;Zend_Gdata_Spreadsheets|*{ WZend_Gdata_Spreadsheets_WorksheetFeed|+z YZend_Gdata_Spreadsheets_WorksheetEntry|,y [Zend_Gdata_Spreadsheets_SpreadsheetFeed|-x ]Zend_Gdata_Spreadsheets_SpreadsheetEntry|&w OZend_Gdata_Spreadsheets_ListQuery|%v MZend_Gdata_Spreadsheets_ListFeed|&u OZend_Gdata_Spreadsheets_ListEntry|/t aZend_Gdata_Spreadsheets_Extension_RowCount|-s ]Zend_Gdata_Spreadsheets_Extension_Custom|/r aZend_Gdata_Spreadsheets_Extension_ColCount|   p  dDuM&a4X5hI& 



q
T
;
)					z	L	/	_A$hFx<wP2	yXDp\A! {Z?y]>$          < )Zend_Mail_Part|; 3Zend_Mail_Part_File|: /Zend_Mail_Message|9 9Zend_Mail_Message_File|8 3Zend_Mail_Exception|7 Zend_Log|6 9Zend_Log_Writer_Syslog|5 9Zend_Log_Writer_Stream|4 5Zend_Log_Writer_Null|3 5Zend_Log_Writer_Mock|2 5Zend_Log_Writer_Mail|1 ;Zend_Log_Writer_Firebug|0 1Zend_Log_Writer_Db|/ =Zend_Log_Writer_Abstract|. 9Zend_Log_Formatter_Xml|- ?Zend_Log_Formatter_Simple|, AZend_Log_Formatter_Firebug|+ =Zend_Log_Filter_Suppress|* =Zend_Log_Filter_Priority|) ;Zend_Log_Filter_Message|( 1Zend_Log_Exception|' #Zend_Locale|& -Zend_Locale_Math|% =Zend_Locale_Math_PhpMath|$ AZend_Locale_Math_Exception|# 1Zend_Locale_Format|" 7Zend_Locale_Exception|! -Zend_Locale_Data|!  EZend_Locale_Data_Translation| #Zend_Loader| =Zend_Loader_PluginLoader|' QZend_Loader_PluginLoader_Exception| 7Zend_Loader_Exception| 9Zend_Loader_Autoloader|$ KZend_Loader_Autoloader_Resource| Zend_Ldap| )Zend_Ldap_Node| 7Zend_Ldap_Node_Schema|# IZend_Ldap_Node_Schema_OpenLdap|/ aZend_Ldap_Node_Schema_ObjectClass_OpenLdap|6 oZend_Ldap_Node_Schema_ObjectClass_ActiveDirectory| AZend_Ldap_Node_Schema_Item|1 eZend_Ldap_Node_Schema_AttributeType_OpenLdap|8 sZend_Ldap_Node_Schema_AttributeType_ActiveDirectory|* WZend_Ldap_Node_Schema_ActiveDirectory| 9Zend_Ldap_Node_RootDse|$ KZend_Ldap_Node_RootDse_OpenLdap|& OZend_Ldap_Node_RootDse_eDirectory|+ YZend_Ldap_Node_RootDse_ActiveDirectory| ?Zend_Ldap_Node_Collection|$
 KZend_Ldap_Node_ChildrenIterator|	 ;Zend_Ldap_Node_Abstract| 9Zend_Ldap_Ldif_Encoder| -Zend_Ldap_Filter| ;Zend_Ldap_Filter_String| 3Zend_Ldap_Filter_Or| 5Zend_Ldap_Filter_Not| 7Zend_Ldap_Filter_Mask| =Zend_Ldap_Filter_Logical| AZend_Ldap_Filter_Exception|  5Zend_Ldap_Filter_And| ?Zend_Ldap_Filter_Abstract|~ 3Zend_Ldap_Exception|} %Zend_Ldap_Dn|| 3Zend_Ldap_Converter|{ 5Zend_Ldap_Collection|*z WZend_Ldap_Collection_Iterator_Default|y 3Zend_Ldap_Attribute|x #Zend_Layout|w 7Zend_Layout_Exception|)v UZend_Layout_Controller_Plugin_Layout|0u cZend_Layout_Controller_Action_Helper_Layout|t Zend_Json|s -Zend_Json_Server|r 5Zend_Json_Server_Smd|!q EZend_Json_Server_Smd_Service|p ?Zend_Json_Server_Response|#o IZend_Json_Server_Response_Http|n =Zend_Json_Server_Request|"m GZend_Json_Server_Request_Http|l AZend_Json_Server_Exception|k 9Zend_Json_Server_Error|j 9Zend_Json_Server_Cache|i )Zend_Json_Expr|h 3Zend_Json_Exception|g /Zend_Json_Encoder|f /Zend_Json_Decoder|e 'Zend_InfoCard|-d ]Zend_InfoCard_Xml_SecurityTokenReference|c AZend_InfoCard_Xml_Security|)b UZend_InfoCard_Xml_Security_Transform|4a kZend_InfoCard_Xml_Security_Transform_XmlExcC14N|3` iZend_InfoCard_Xml_Security_Transform_Exception|<_ {Zend_InfoCard_Xml_Security_Transform_EnvelopedSignature|)^ UZend_InfoCard_Xml_Security_Exception|] ?Zend_InfoCard_Xml_KeyInfo|&\ OZend_InfoCard_Xml_KeyInfo_XmlDSig|&[ OZend_InfoCard_Xml_KeyInfo_Default|'Z QZend_InfoCard_Xml_KeyInfo_Abstract| Y CZend_InfoCard_Xml_Exception|#X IZend_InfoCard_Xml_EncryptedKey|$W KZend_InfoCard_Xml_EncryptedData|+V YZend_InfoCard_Xml_EncryptedData_XmlEnc|-U ]Zend_InfoCard_Xml_EncryptedData_Abstract|T ?Zend_InfoCard_Xml_Element| S CZend_InfoCard_Xml_Assertion|%R MZend_InfoCard_Xml_Assertion_Saml|Q ;Zend_InfoCard_Exception|%P MZend_InfoCard_Exception_Abstract|O 5Zend_InfoCard_Claims|N 5Zend_InfoCard_Cipher|5M mZend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc|   u wJd>sY4v[A%fG(	




p
Q
5
						c	:		tV: rP/mO,sVB|[1v_BaC%|]?                 1 3Zend_Pdf_Action_URI|0 ;Zend_Pdf_Action_Unknown|/ 7Zend_Pdf_Action_Trans|. 9Zend_Pdf_Action_Thread|- AZend_Pdf_Action_SubmitForm|, 7Zend_Pdf_Action_Sound| + CZend_Pdf_Action_SetOCGState|* ?Zend_Pdf_Action_ResetForm|) ?Zend_Pdf_Action_Rendition|( 7Zend_Pdf_Action_Named|' 7Zend_Pdf_Action_Movie|& 9Zend_Pdf_Action_Launch|% AZend_Pdf_Action_JavaScript|$ AZend_Pdf_Action_ImportData|# 5Zend_Pdf_Action_Hide|" 7Zend_Pdf_Action_GoToR|! 7Zend_Pdf_Action_GoToE|  AZend_Pdf_Action_GoTo3DView| 5Zend_Pdf_Action_GoTo| )Zend_Paginator|- ]Zend_Paginator_SerializableLimitIterator|* WZend_Paginator_ScrollingStyle_Sliding|* WZend_Paginator_ScrollingStyle_Jumping|* WZend_Paginator_ScrollingStyle_Elastic|& OZend_Paginator_ScrollingStyle_All| =Zend_Paginator_Exception|  CZend_Paginator_Adapter_Null|$ KZend_Paginator_Adapter_Iterator|) UZend_Paginator_Adapter_DbTableSelect|$ KZend_Paginator_Adapter_DbSelect|! EZend_Paginator_Adapter_Array| #Zend_OpenId| 5Zend_OpenId_Provider| ?Zend_OpenId_Provider_User|& OZend_OpenId_Provider_User_Session|! EZend_OpenId_Provider_Storage|& OZend_OpenId_Provider_Storage_File| 7Zend_OpenId_Extension| AZend_OpenId_Extension_Sreg|
 7Zend_OpenId_Exception|	 5Zend_OpenId_Consumer|! EZend_OpenId_Consumer_Storage|& OZend_OpenId_Consumer_Storage_File| +Zend_Navigation| 5Zend_Navigation_Page| =Zend_Navigation_Page_Uri| =Zend_Navigation_Page_Mvc| ?Zend_Navigation_Exception| ?Zend_Navigation_Container|  Zend_Mime| )Zend_Mime_Part|~ /Zend_Mime_Message|} 3Zend_Mime_Exception|| -Zend_Mime_Decode|{ #Zend_Memory|z /Zend_Memory_Value|y 3Zend_Memory_Manager|x 7Zend_Memory_Exception|w 7Zend_Memory_Container|"v GZend_Memory_Container_Movable|!u EZend_Memory_Container_Locked|!t EZend_Memory_AccessController|s 3Zend_Measure_Weight|r 3Zend_Measure_Volume|%q MZend_Measure_Viscosity_Kinematic|#p IZend_Measure_Viscosity_Dynamic|o 3Zend_Measure_Torque|n /Zend_Measure_Time|m =Zend_Measure_Temperature|l 1Zend_Measure_Speed|k 7Zend_Measure_Pressure|j 1Zend_Measure_Power|i 3Zend_Measure_Number|h 9Zend_Measure_Lightness|g 3Zend_Measure_Length|f ?Zend_Measure_Illumination|e 9Zend_Measure_Frequency|d 1Zend_Measure_Force|c =Zend_Measure_Flow_Volume|b 9Zend_Measure_Flow_Mole|a 9Zend_Measure_Flow_Mass|` 9Zend_Measure_Exception|_ 3Zend_Measure_Energy|^ 5Zend_Measure_Density|] 5Zend_Measure_Current| \ CZend_Measure_Cooking_Weight| [ CZend_Measure_Cooking_Volume|Z =Zend_Measure_Capacitance|Y 3Zend_Measure_Binary|X /Zend_Measure_Area|W 1Zend_Measure_Angle|V ?Zend_Measure_Acceleration|U 7Zend_Measure_Abstract|T Zend_Mail|S =Zend_Mail_Transport_Smtp|!R EZend_Mail_Transport_Sendmail|"Q GZend_Mail_Transport_Exception|!P EZend_Mail_Transport_Abstract|O /Zend_Mail_Storage|'N QZend_Mail_Storage_Writable_Maildir|M 9Zend_Mail_Storage_Pop3|L 9Zend_Mail_Storage_Mbox|K ?Zend_Mail_Storage_Maildir|J 9Zend_Mail_Storage_Imap|I =Zend_Mail_Storage_Folder|"H GZend_Mail_Storage_Folder_Mbox|%G MZend_Mail_Storage_Folder_Maildir| F CZend_Mail_Storage_Exception|E AZend_Mail_Storage_Abstract|D ;Zend_Mail_Protocol_Smtp|'C QZend_Mail_Protocol_Smtp_Auth_Plain|'B QZend_Mail_Protocol_Smtp_Auth_Login|)A UZend_Mail_Protocol_Smtp_Auth_Crammd5|@ ;Zend_Mail_Protocol_Pop3|? ;Zend_Mail_Protocol_Imap|!> EZend_Mail_Protocol_Exception| = CZend_Mail_Protocol_Abstract|   c  yX<uT8[%[9|[4



}
V
6
					_	>	\<mV<}M&l5zAI\ b>      # IZend_Pdf_Resource_ImageFactory| ;Zend_Pdf_Resource_Image|! EZend_Pdf_Resource_Image_Tiff|  CZend_Pdf_Resource_Image_Png|! EZend_Pdf_Resource_Image_Jpeg| 9Zend_Pdf_Resource_Font|! EZend_Pdf_Resource_Font_Type0|" GZend_Pdf_Resource_Font_Simple|+ YZend_Pdf_Resource_Font_Simple_Standard|8 sZend_Pdf_Resource_Font_Simple_Standard_ZapfDingbats|6
 oZend_Pdf_Resource_Font_Simple_Standard_TimesRoman|7	 qZend_Pdf_Resource_Font_Simple_Standard_TimesItalic|; yZend_Pdf_Resource_Font_Simple_Standard_TimesBoldItalic|5 mZend_Pdf_Resource_Font_Simple_Standard_TimesBold|2 gZend_Pdf_Resource_Font_Simple_Standard_Symbol|< {Zend_Pdf_Resource_Font_Simple_Standard_HelveticaOblique|A Zend_Pdf_Resource_Font_Simple_Standard_HelveticaBoldOblique|9 uZend_Pdf_Resource_Font_Simple_Standard_HelveticaBold|5 mZend_Pdf_Resource_Font_Simple_Standard_Helvetica|: wZend_Pdf_Resource_Font_Simple_Standard_CourierOblique|>  Zend_Pdf_Resource_Font_Simple_Standard_CourierBoldOblique|7 qZend_Pdf_Resource_Font_Simple_Standard_CourierBold|3~ iZend_Pdf_Resource_Font_Simple_Standard_Courier|)} UZend_Pdf_Resource_Font_Simple_Parsed|2| gZend_Pdf_Resource_Font_Simple_Parsed_TrueType|*{ WZend_Pdf_Resource_Font_FontDescriptor|%z MZend_Pdf_Resource_Font_Extracted|#y IZend_Pdf_Resource_Font_CidFont|,x [Zend_Pdf_Resource_Font_CidFont_TrueType|3w iZend_Pdf_RecursivelyIteratableObjectsContainer|v +Zend_Pdf_Parser|u 'Zend_Pdf_Page|t -Zend_Pdf_Outline|s ;Zend_Pdf_Outline_Loaded|r =Zend_Pdf_Outline_Created|q /Zend_Pdf_NameTree|p )Zend_Pdf_Image|o 'Zend_Pdf_Font|n ?Zend_Pdf_Filter_RunLength| m CZend_Pdf_Filter_Compression|$l KZend_Pdf_Filter_Compression_Lzw|&k OZend_Pdf_Filter_Compression_Flate|j =Zend_Pdf_Filter_AsciiHex|i ;Zend_Pdf_Filter_Ascii85|"h GZend_Pdf_FileParserDataSource|)g UZend_Pdf_FileParserDataSource_String|'f QZend_Pdf_FileParserDataSource_File|e 3Zend_Pdf_FileParser|d ?Zend_Pdf_FileParser_Image|"c GZend_Pdf_FileParser_Image_Png|b =Zend_Pdf_FileParser_Font|&a OZend_Pdf_FileParser_Font_OpenType|/` aZend_Pdf_FileParser_Font_OpenType_TrueType|_ 1Zend_Pdf_Exception|^ ;Zend_Pdf_ElementFactory|"] GZend_Pdf_ElementFactory_Proxy|\ -Zend_Pdf_Element|[ ;Zend_Pdf_Element_String|#Z IZend_Pdf_Element_String_Binary|Y ;Zend_Pdf_Element_Stream|X AZend_Pdf_Element_Reference|%W MZend_Pdf_Element_Reference_Table|'V QZend_Pdf_Element_Reference_Context|U ;Zend_Pdf_Element_Object|#T IZend_Pdf_Element_Object_Stream|S =Zend_Pdf_Element_Numeric|R 7Zend_Pdf_Element_Null|Q 7Zend_Pdf_Element_Name| P CZend_Pdf_Element_Dictionary|O =Zend_Pdf_Element_Boolean|N 9Zend_Pdf_Element_Array|M 5Zend_Pdf_Destination|L ?Zend_Pdf_Destination_Zoom|!K EZend_Pdf_Destination_Unknown|J AZend_Pdf_Destination_Named|'I QZend_Pdf_Destination_FitVertically|&H OZend_Pdf_Destination_FitRectangle|)G UZend_Pdf_Destination_FitHorizontally|2F gZend_Pdf_Destination_FitBoundingBoxVertically|4E kZend_Pdf_Destination_FitBoundingBoxHorizontally|(D SZend_Pdf_Destination_FitBoundingBox|C =Zend_Pdf_Destination_Fit|"B GZend_Pdf_Destination_Explicit|A )Zend_Pdf_Color|@ 1Zend_Pdf_Color_Rgb|? 3Zend_Pdf_Color_Html|> =Zend_Pdf_Color_GrayScale|= 3Zend_Pdf_Color_Cmyk|< 'Zend_Pdf_Cmap|; AZend_Pdf_Cmap_TrimmedTable|!: EZend_Pdf_Cmap_SegmentToDelta|9 AZend_Pdf_Cmap_ByteEncoding|&8 OZend_Pdf_Cmap_ByteEncoding_Static|7 3Zend_Pdf_Annotation|6 =Zend_Pdf_Annotation_Text|5 AZend_Pdf_Annotation_Markup|4 =Zend_Pdf_Annotation_Link|'3 QZend_Pdf_Annotation_FileAttachment|2 +Zend_Pdf_Action|   a  vV=cBpL.	|U:tH#




a
?

					e	I	1	TH^4GkBk9HY1
              /u aZend_Search_Lucene_Interface_MultiSearcher|#t IZend_Search_Lucene_LockManager|$s KZend_Search_Lucene_Index_Writer|0r cZend_Search_Lucene_Index_TermsPriorityQueue|&q OZend_Search_Lucene_Index_TermInfo|"p GZend_Search_Lucene_Index_Term|+o YZend_Search_Lucene_Index_SegmentWriter|8n sZend_Search_Lucene_Index_SegmentWriter_StreamWriter|:m wZend_Search_Lucene_Index_SegmentWriter_DocumentWriter|+l YZend_Search_Lucene_Index_SegmentMerger|)k UZend_Search_Lucene_Index_SegmentInfo|'j QZend_Search_Lucene_Index_FieldInfo|(i SZend_Search_Lucene_Index_DocsFilter|.h _Zend_Search_Lucene_Index_DictionaryLoader|!g EZend_Search_Lucene_FSMAction|f 9Zend_Search_Lucene_FSM|e =Zend_Search_Lucene_Field|!d EZend_Search_Lucene_Exception| c CZend_Search_Lucene_Document|%b MZend_Search_Lucene_Document_Xlsx|%a MZend_Search_Lucene_Document_Pptx|(` SZend_Search_Lucene_Document_OpenXml|%_ MZend_Search_Lucene_Document_Html|*^ WZend_Search_Lucene_Document_Exception|%] MZend_Search_Lucene_Document_Docx|,\ [Zend_Search_Lucene_Analysis_TokenFilter|6[ oZend_Search_Lucene_Analysis_TokenFilter_StopWords|7Z qZend_Search_Lucene_Analysis_TokenFilter_ShortWords|:Y wZend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8|6X oZend_Search_Lucene_Analysis_TokenFilter_LowerCase|&W OZend_Search_Lucene_Analysis_Token|)V UZend_Search_Lucene_Analysis_Analyzer|0U cZend_Search_Lucene_Analysis_Analyzer_Common|8T sZend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num|IS Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive|5R mZend_Search_Lucene_Analysis_Analyzer_Common_Utf8|FQ Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive|8P sZend_Search_Lucene_Analysis_Analyzer_Common_TextNum|IO Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive|5N mZend_Search_Lucene_Analysis_Analyzer_Common_Text|FM Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive|L 7Zend_Search_Exception|K -Zend_Rest_Server|J AZend_Rest_Server_Exception|I +Zend_Rest_Route|H 3Zend_Rest_Exception|G 5Zend_Rest_Controller|F -Zend_Rest_Client|E ;Zend_Rest_Client_Result|&D OZend_Rest_Client_Result_Exception|C AZend_Rest_Client_Exception|B 'Zend_Registry|A =Zend_Reflection_Property|@ ?Zend_Reflection_Parameter|? 9Zend_Reflection_Method|> =Zend_Reflection_Function|= 5Zend_Reflection_File|< ?Zend_Reflection_Extension|; ?Zend_Reflection_Exception|: =Zend_Reflection_Docblock|!9 EZend_Reflection_Docblock_Tag|(8 SZend_Reflection_Docblock_Tag_Return|'7 QZend_Reflection_Docblock_Tag_Param|6 7Zend_Reflection_Class|5 !Zend_Queue|4 9Zend_Queue_Stomp_Frame|3 ;Zend_Queue_Stomp_Client|'2 QZend_Queue_Stomp_Client_Connection|1 1Zend_Queue_Message|#0 IZend_Queue_Message_PlatformJob| / CZend_Queue_Message_Iterator|. 5Zend_Queue_Exception|(- SZend_Queue_Adapter_PlatformJobQueue|, ;Zend_Queue_Adapter_Null|!+ EZend_Queue_Adapter_Memcacheq|* 7Zend_Queue_Adapter_Db| ) CZend_Queue_Adapter_Db_Queue|"( GZend_Queue_Adapter_Db_Message|' =Zend_Queue_Adapter_Array|'& QZend_Queue_Adapter_AdapterAbstract| % CZend_Queue_Adapter_Activemq|$ -Zend_ProgressBar|# AZend_ProgressBar_Exception|" =Zend_ProgressBar_Adapter|$! KZend_ProgressBar_Adapter_JsPush|$  KZend_ProgressBar_Adapter_JsPull|' QZend_ProgressBar_Adapter_Exception|% MZend_ProgressBar_Adapter_Console| Zend_Pdf|! EZend_Pdf_UpdateInfoContainer| -Zend_Pdf_Trailer| ;Zend_Pdf_Trailer_Keeper| AZend_Pdf_Trailer_Generator| +Zend_Pdf_Target| )Zend_Pdf_Style| 7Zend_Pdf_StringParser| /Zend_Pdf_Resource|   Z  xBNk5M`2



d
7
			t	F	V.kG!X0
iJ,n<sAo@ a?                        "O GZend_Service_Amazon_ResultSet|N ?Zend_Service_Amazon_Query|!M EZend_Service_Amazon_OfferSet|L ?Zend_Service_Amazon_Offer|&K OZend_Service_Amazon_ListmaniaList|J =Zend_Service_Amazon_Item|I ?Zend_Service_Amazon_Image|"H GZend_Service_Amazon_Exception|(G SZend_Service_Amazon_EditorialReview|F ;Zend_Service_Amazon_Ec2|+E YZend_Service_Amazon_Ec2_Securitygroups|%D MZend_Service_Amazon_Ec2_Response|#C IZend_Service_Amazon_Ec2_Region|$B KZend_Service_Amazon_Ec2_Keypair|%A MZend_Service_Amazon_Ec2_Instance|-@ ]Zend_Service_Amazon_Ec2_Instance_Windows|.? _Zend_Service_Amazon_Ec2_Instance_Reserved|"> GZend_Service_Amazon_Ec2_Image|&= OZend_Service_Amazon_Ec2_Exception|&< OZend_Service_Amazon_Ec2_Elasticip| ; CZend_Service_Amazon_Ec2_Ebs|': QZend_Service_Amazon_Ec2_CloudWatch|.9 _Zend_Service_Amazon_Ec2_Availabilityzones|%8 MZend_Service_Amazon_Ec2_Abstract|'7 QZend_Service_Amazon_CustomerReview|$6 KZend_Service_Amazon_Accessories|!5 EZend_Service_Amazon_Abstract|4 5Zend_Service_Akismet|3 7Zend_Service_Abstract|2 9Zend_Server_Reflection|'1 QZend_Server_Reflection_ReturnValue|%0 MZend_Server_Reflection_Prototype|%/ MZend_Server_Reflection_Parameter| . CZend_Server_Reflection_Node|"- GZend_Server_Reflection_Method|$, KZend_Server_Reflection_Function|-+ ]Zend_Server_Reflection_Function_Abstract|%* MZend_Server_Reflection_Exception|!) EZend_Server_Reflection_Class|!( EZend_Server_Method_Prototype|!' EZend_Server_Method_Parameter|"& GZend_Server_Method_Definition| % CZend_Server_Method_Callback|$ 7Zend_Server_Exception|# 9Zend_Server_Definition|" /Zend_Server_Cache|! 5Zend_Server_Abstract|  1Zend_Search_Lucene|0 cZend_Search_Lucene_TermStreamsPriorityQueue|$ KZend_Search_Lucene_Storage_File|+ YZend_Search_Lucene_Storage_File_Memory|/ aZend_Search_Lucene_Storage_File_Filesystem|) UZend_Search_Lucene_Storage_Directory|4 kZend_Search_Lucene_Storage_Directory_Filesystem|% MZend_Search_Lucene_Search_Weight|* WZend_Search_Lucene_Search_Weight_Term|, [Zend_Search_Lucene_Search_Weight_Phrase|/ aZend_Search_Lucene_Search_Weight_MultiTerm|+ YZend_Search_Lucene_Search_Weight_Empty|- ]Zend_Search_Lucene_Search_Weight_Boolean|) UZend_Search_Lucene_Search_Similarity|1 eZend_Search_Lucene_Search_Similarity_Default|) UZend_Search_Lucene_Search_QueryToken|3 iZend_Search_Lucene_Search_QueryParserException|1 eZend_Search_Lucene_Search_QueryParserContext|* WZend_Search_Lucene_Search_QueryParser|) UZend_Search_Lucene_Search_QueryLexer|' QZend_Search_Lucene_Search_QueryHit|) UZend_Search_Lucene_Search_QueryEntry|.
 _Zend_Search_Lucene_Search_QueryEntry_Term|2	 gZend_Search_Lucene_Search_QueryEntry_Subquery|0 cZend_Search_Lucene_Search_QueryEntry_Phrase|$ KZend_Search_Lucene_Search_Query|- ]Zend_Search_Lucene_Search_Query_Wildcard|) UZend_Search_Lucene_Search_Query_Term|* WZend_Search_Lucene_Search_Query_Range|2 gZend_Search_Lucene_Search_Query_Preprocessing|7 qZend_Search_Lucene_Search_Query_Preprocessing_Term|9 uZend_Search_Lucene_Search_Query_Preprocessing_Phrase|8  sZend_Search_Lucene_Search_Query_Preprocessing_Fuzzy|+ YZend_Search_Lucene_Search_Query_Phrase|.~ _Zend_Search_Lucene_Search_Query_MultiTerm|2} gZend_Search_Lucene_Search_Query_Insignificant|*| WZend_Search_Lucene_Search_Query_Fuzzy|*{ WZend_Search_Lucene_Search_Query_Empty|,z [Zend_Search_Lucene_Search_Query_Boolean|2y gZend_Search_Lucene_Search_Highlighter_Default|:x wZend_Search_Lucene_Search_BooleanExpressionRecognizer|w =Zend_Search_Lucene_Proxy|%v MZend_Search_Lucene_PriorityQueue|   c  g=h> yQ$W/`=



~
V
;
				x	N	tEW)}M#wP0	V*[1lGT,                              2 %Zend_Session|)1 UZend_Session_Validator_HttpUserAgent|$0 KZend_Session_Validator_Abstract|'/ QZend_Session_SaveHandler_Exception|%. MZend_Session_SaveHandler_DbTable|- 9Zend_Session_Namespace|, 9Zend_Session_Exception|+ 7Zend_Session_Abstract|* 1Zend_Service_Yahoo|$) KZend_Service_Yahoo_WebResultSet|!( EZend_Service_Yahoo_WebResult|&' OZend_Service_Yahoo_VideoResultSet|#& IZend_Service_Yahoo_VideoResult|!% EZend_Service_Yahoo_ResultSet|$ ?Zend_Service_Yahoo_Result|)# UZend_Service_Yahoo_PageDataResultSet|&" OZend_Service_Yahoo_PageDataResult|%! MZend_Service_Yahoo_NewsResultSet|"  GZend_Service_Yahoo_NewsResult|& OZend_Service_Yahoo_LocalResultSet|# IZend_Service_Yahoo_LocalResult|+ YZend_Service_Yahoo_InlinkDataResultSet|( SZend_Service_Yahoo_InlinkDataResult|& OZend_Service_Yahoo_ImageResultSet|# IZend_Service_Yahoo_ImageResult| =Zend_Service_Yahoo_Image| 5Zend_Service_Twitter|  CZend_Service_Twitter_Search|# IZend_Service_Twitter_Exception| ;Zend_Service_Technorati|# IZend_Service_Technorati_Weblog|" GZend_Service_Technorati_Utils|* WZend_Service_Technorati_TagsResultSet|' QZend_Service_Technorati_TagsResult|) UZend_Service_Technorati_TagResultSet|& OZend_Service_Technorati_TagResult|, [Zend_Service_Technorati_SearchResultSet|) UZend_Service_Technorati_SearchResult|& OZend_Service_Technorati_ResultSet|# IZend_Service_Technorati_Result|*
 WZend_Service_Technorati_KeyInfoResult|*	 WZend_Service_Technorati_GetInfoResult|& OZend_Service_Technorati_Exception|1 eZend_Service_Technorati_DailyCountsResultSet|. _Zend_Service_Technorati_DailyCountsResult|, [Zend_Service_Technorati_CosmosResultSet|) UZend_Service_Technorati_CosmosResult|+ YZend_Service_Technorati_BlogInfoResult|# IZend_Service_Technorati_Author| ;Zend_Service_StrikeIron|(  SZend_Service_StrikeIron_ZipCodeInfo|2 gZend_Service_StrikeIron_USAddressVerification|-~ ]Zend_Service_StrikeIron_SalesUseTaxBasic|&} OZend_Service_StrikeIron_Exception|&| OZend_Service_StrikeIron_Decorator|!{ EZend_Service_StrikeIron_Base|z ;Zend_Service_SlideShare|&y OZend_Service_SlideShare_SlideShow|&x OZend_Service_SlideShare_Exception|w 1Zend_Service_Simpy|$v KZend_Service_Simpy_WatchlistSet|*u WZend_Service_Simpy_WatchlistFilterSet|'t QZend_Service_Simpy_WatchlistFilter|!s EZend_Service_Simpy_Watchlist|r ?Zend_Service_Simpy_TagSet|q 9Zend_Service_Simpy_Tag|p AZend_Service_Simpy_NoteSet|o ;Zend_Service_Simpy_Note|n AZend_Service_Simpy_LinkSet|!m EZend_Service_Simpy_LinkQuery|l ;Zend_Service_Simpy_Link|k 9Zend_Service_ReCaptcha|$j KZend_Service_ReCaptcha_Response|$i KZend_Service_ReCaptcha_MailHide|.h _Zend_Service_ReCaptcha_MailHide_Exception|%g MZend_Service_ReCaptcha_Exception|f 7Zend_Service_Nirvanix|#e IZend_Service_Nirvanix_Response|)d UZend_Service_Nirvanix_Namespace_Imfs|)c UZend_Service_Nirvanix_Namespace_Base|$b KZend_Service_Nirvanix_Exception|a 3Zend_Service_Flickr|"` GZend_Service_Flickr_ResultSet|_ AZend_Service_Flickr_Result|^ ?Zend_Service_Flickr_Image|] 9Zend_Service_Exception|\ 9Zend_Service_Delicious|&[ OZend_Service_Delicious_SimplePost|$Z KZend_Service_Delicious_PostList| Y CZend_Service_Delicious_Post|%X MZend_Service_Delicious_Exception| W CZend_Service_Audioscrobbler|V 3Zend_Service_Amazon|U ;Zend_Service_Amazon_Sqs|&T OZend_Service_Amazon_Sqs_Exception|'S QZend_Service_Amazon_SimilarProduct|R 9Zend_Service_Amazon_S3|"Q GZend_Service_Amazon_S3_Stream|%P MZend_Service_Amazon_S3_Exception|   ^  xU6o<mBv`F*M 



r
>
				V	(vZ;sY:	Z0Dt7c8c4T%    + YZend_Tool_Framework_Provider_Signature|, [Zend_Tool_Framework_Provider_Repository|+ YZend_Tool_Framework_Provider_Exception|* WZend_Tool_Framework_Provider_Abstract|& OZend_Tool_Framework_Metadata_Tool|) UZend_Tool_Framework_Metadata_Dynamic|'
 QZend_Tool_Framework_Metadata_Basic|,	 [Zend_Tool_Framework_Manifest_Repository|+ YZend_Tool_Framework_Manifest_Exception|1 eZend_Tool_Framework_Loader_IncludePathLoader|J Zend_Tool_Framework_Loader_IncludePathLoader_RecursiveFilterIterator|( SZend_Tool_Framework_Loader_Abstract|" GZend_Tool_Framework_Exception|' QZend_Tool_Framework_Client_Storage|1 eZend_Tool_Framework_Client_Storage_Directory|( SZend_Tool_Framework_Client_Response|D  	Zend_Tool_Framework_Client_Response_ContentDecorator_Separator|' QZend_Tool_Framework_Client_Request|9~ uZend_Tool_Framework_Client_Interactive_InputResponse|8} sZend_Tool_Framework_Client_Interactive_InputRequest|8| sZend_Tool_Framework_Client_Interactive_InputHandler|){ UZend_Tool_Framework_Client_Exception|'z QZend_Tool_Framework_Client_Console|Dy 	Zend_Tool_Framework_Client_Console_ResponseDecorator_Colorizer|0x cZend_Tool_Framework_Client_Console_Manifest|2w gZend_Tool_Framework_Client_Console_HelpSystem|6v oZend_Tool_Framework_Client_Console_ArgumentParser|&u OZend_Tool_Framework_Client_Config|(t SZend_Tool_Framework_Client_Abstract|*s WZend_Tool_Framework_Action_Repository|)r UZend_Tool_Framework_Action_Exception|$q KZend_Tool_Framework_Action_Base|p 'Zend_TimeSync|o 1Zend_TimeSync_Sntp|n 9Zend_TimeSync_Protocol|m /Zend_TimeSync_Ntp|l ;Zend_TimeSync_Exception|k +Zend_Text_Table|j 3Zend_Text_Table_Row|i ?Zend_Text_Table_Exception|&h OZend_Text_Table_Decorator_Unicode|$g KZend_Text_Table_Decorator_Ascii|f 9Zend_Text_Table_Column|e 3Zend_Text_MultiByte|d -Zend_Text_Figlet|c AZend_Text_Figlet_Exception|b 3Zend_Text_Exception|&a OZend_Test_PHPUnit_Db_SimpleTester|,` [Zend_Test_PHPUnit_Db_Operation_Truncate|*_ WZend_Test_PHPUnit_Db_Operation_Insert|-^ ]Zend_Test_PHPUnit_Db_Operation_DeleteAll|*] WZend_Test_PHPUnit_Db_Metadata_Generic|#\ IZend_Test_PHPUnit_Db_Exception|,[ [Zend_Test_PHPUnit_Db_DataSet_QueryTable|.Z _Zend_Test_PHPUnit_Db_DataSet_QueryDataSet|0Y cZend_Test_PHPUnit_Db_DataSet_DbTableDataSet|)X UZend_Test_PHPUnit_Db_DataSet_DbTable|*W WZend_Test_PHPUnit_Db_DataSet_DbRowset|$V KZend_Test_PHPUnit_Db_Connection|'U QZend_Test_PHPUnit_DatabaseTestCase|)T UZend_Test_PHPUnit_ControllerTestCase|0S cZend_Test_PHPUnit_Constraint_ResponseHeader|*R WZend_Test_PHPUnit_Constraint_Redirect|+Q YZend_Test_PHPUnit_Constraint_Exception|*P WZend_Test_PHPUnit_Constraint_DomQuery|O 7Zend_Test_DbStatement|N 3Zend_Test_DbAdapter|M /Zend_Tag_ItemList|L 'Zend_Tag_Item|K 1Zend_Tag_Exception|J )Zend_Tag_Cloud|I =Zend_Tag_Cloud_Exception|!H EZend_Tag_Cloud_Decorator_Tag|%G MZend_Tag_Cloud_Decorator_HtmlTag|'F QZend_Tag_Cloud_Decorator_HtmlCloud|'E QZend_Tag_Cloud_Decorator_Exception|#D IZend_Tag_Cloud_Decorator_Cloud|C )Zend_Soap_Wsdl|/B aZend_Soap_Wsdl_Strategy_DefaultComplexType|&A OZend_Soap_Wsdl_Strategy_Composite|0@ cZend_Soap_Wsdl_Strategy_ArrayOfTypeSequence|/? aZend_Soap_Wsdl_Strategy_ArrayOfTypeComplex|$> KZend_Soap_Wsdl_Strategy_AnyType|%= MZend_Soap_Wsdl_Strategy_Abstract|< =Zend_Soap_Wsdl_Exception|; -Zend_Soap_Server|: AZend_Soap_Server_Exception|9 -Zend_Soap_Client|8 9Zend_Soap_Client_Local|7 AZend_Soap_Client_Exception|6 ;Zend_Soap_Client_DotNet|5 ;Zend_Soap_Client_Common|4 9Zend_Soap_AutoDiscover|%3 MZend_Soap_AutoDiscover_Exception|   H  {JBxAl(N



M
			y	K	yCwAc't<m/>Tr>                         (X SZend_Tool_Project_Profile_Exception| W CZend_Tool_Project_Exception|<V {Zend_Tool_Project_Context_Zf_ZfStandardLibraryDirectory|0U cZend_Tool_Project_Context_Zf_ViewsDirectory|6T oZend_Tool_Project_Context_Zf_ViewScriptsDirectory|0S cZend_Tool_Project_Context_Zf_ViewScriptFile|6R oZend_Tool_Project_Context_Zf_ViewHelpersDirectory|6Q oZend_Tool_Project_Context_Zf_ViewFiltersDirectory|AP Zend_Tool_Project_Context_Zf_ViewControllerScriptsDirectory|2O gZend_Tool_Project_Context_Zf_UploadsDirectory|0N cZend_Tool_Project_Context_Zf_TestsDirectory|7M qZend_Tool_Project_Context_Zf_TestPHPUnitConfigFile|@L Zend_Tool_Project_Context_Zf_TestLibraryNamespaceDirectory|1K eZend_Tool_Project_Context_Zf_TestLibraryFile|6J oZend_Tool_Project_Context_Zf_TestLibraryDirectory|:I wZend_Tool_Project_Context_Zf_TestLibraryBootstrapFile|:H wZend_Tool_Project_Context_Zf_TestApplicationDirectory|@G Zend_Tool_Project_Context_Zf_TestApplicationControllerFile|EF Zend_Tool_Project_Context_Zf_TestApplicationControllerDirectory|>E Zend_Tool_Project_Context_Zf_TestApplicationBootstrapFile|4D kZend_Tool_Project_Context_Zf_TemporaryDirectory|3C iZend_Tool_Project_Context_Zf_SessionsDirectory|8B sZend_Tool_Project_Context_Zf_SearchIndexesDirectory|<A {Zend_Tool_Project_Context_Zf_PublicStylesheetsDirectory|8@ sZend_Tool_Project_Context_Zf_PublicScriptsDirectory|1? eZend_Tool_Project_Context_Zf_PublicIndexFile|7> qZend_Tool_Project_Context_Zf_PublicImagesDirectory|1= eZend_Tool_Project_Context_Zf_PublicDirectory|5< mZend_Tool_Project_Context_Zf_ProjectProviderFile|2; gZend_Tool_Project_Context_Zf_ModulesDirectory|1: eZend_Tool_Project_Context_Zf_ModuleDirectory|19 eZend_Tool_Project_Context_Zf_ModelsDirectory|+8 YZend_Tool_Project_Context_Zf_ModelFile|/7 aZend_Tool_Project_Context_Zf_LogsDirectory|26 gZend_Tool_Project_Context_Zf_LocalesDirectory|25 gZend_Tool_Project_Context_Zf_LibraryDirectory|24 gZend_Tool_Project_Context_Zf_LayoutsDirectory|.3 _Zend_Tool_Project_Context_Zf_HtaccessFile|02 cZend_Tool_Project_Context_Zf_FormsDirectory|*1 WZend_Tool_Project_Context_Zf_FormFile|-0 ]Zend_Tool_Project_Context_Zf_DbTableFile|2/ gZend_Tool_Project_Context_Zf_DbTableDirectory|/. aZend_Tool_Project_Context_Zf_DataDirectory|6- oZend_Tool_Project_Context_Zf_ControllersDirectory|0, cZend_Tool_Project_Context_Zf_ControllerFile|2+ gZend_Tool_Project_Context_Zf_ConfigsDirectory|,* [Zend_Tool_Project_Context_Zf_ConfigFile|0) cZend_Tool_Project_Context_Zf_CacheDirectory|/( aZend_Tool_Project_Context_Zf_BootstrapFile|6' oZend_Tool_Project_Context_Zf_ApplicationDirectory|7& qZend_Tool_Project_Context_Zf_ApplicationConfigFile|/% aZend_Tool_Project_Context_Zf_ApisDirectory|.$ _Zend_Tool_Project_Context_Zf_ActionMethod|@# Zend_Tool_Project_Context_System_ProjectProvidersDirectory|8" sZend_Tool_Project_Context_System_ProjectProfileFile|6! oZend_Tool_Project_Context_System_ProjectDirectory|)  UZend_Tool_Project_Context_Repository|. _Zend_Tool_Project_Context_Filesystem_File|3 iZend_Tool_Project_Context_Filesystem_Directory|2 gZend_Tool_Project_Context_Filesystem_Abstract|( SZend_Tool_Project_Context_Exception|- ]Zend_Tool_Project_Context_Content_Engine|3 iZend_Tool_Project_Context_Content_Engine_Phtml|; yZend_Tool_Project_Context_Content_Engine_CodeGenerator|0 cZend_Tool_Framework_System_Provider_Version|0 cZend_Tool_Framework_System_Provider_Phpinfo|1 eZend_Tool_Framework_System_Provider_Manifest|( SZend_Tool_Framework_System_Manifest|- ]Zend_Tool_Framework_System_Action_Delete|- ]Zend_Tool_Framework_System_Action_Create|! EZend_Tool_Framework_Registry|+ YZend_Tool_Framework_Registry_Exception|   m  U j@h>e@kF!




{
j
K
/
					t	Y	7	hGd?lL*sS5Y7iI(	_9d9                "E GZend_View_Helper_FormPassword|D ?Zend_View_Helper_FormNote|'C QZend_View_Helper_FormMultiCheckbox|B AZend_View_Helper_FormLabel|A AZend_View_Helper_FormImage| @ CZend_View_Helper_FormHidden|? ?Zend_View_Helper_FormFile| > CZend_View_Helper_FormErrors|!= EZend_View_Helper_FormElement|"< GZend_View_Helper_FormCheckbox| ; CZend_View_Helper_FormButton|: 7Zend_View_Helper_Form|9 ?Zend_View_Helper_Fieldset|8 =Zend_View_Helper_Doctype|!7 EZend_View_Helper_DeclareVars|6 9Zend_View_Helper_Cycle|5 =Zend_View_Helper_BaseUrl|4 ;Zend_View_Helper_Action|3 ?Zend_View_Helper_Abstract|2 3Zend_View_Exception|1 1Zend_View_Abstract|0 %Zend_Version|/ 'Zend_Validate|. AZend_Validate_StringLength|#- IZend_Validate_Sitemap_Priority|, ?Zend_Validate_Sitemap_Loc|"+ GZend_Validate_Sitemap_Lastmod|%* MZend_Validate_Sitemap_Changefreq|) 3Zend_Validate_Regex|( 9Zend_Validate_NotEmpty|' 9Zend_Validate_LessThan|& -Zend_Validate_Ip|% /Zend_Validate_Int|$ 7Zend_Validate_InArray|# ;Zend_Validate_Identical|" 1Zend_Validate_Iban|! 9Zend_Validate_Hostname|  /Zend_Validate_Hex| ?Zend_Validate_GreaterThan| 3Zend_Validate_Float|! EZend_Validate_File_WordCount| ?Zend_Validate_File_Upload| ;Zend_Validate_File_Size| ;Zend_Validate_File_Sha1|! EZend_Validate_File_NotExists|  CZend_Validate_File_MimeType| 9Zend_Validate_File_Md5| AZend_Validate_File_IsImage|$ KZend_Validate_File_IsCompressed|! EZend_Validate_File_ImageSize| ;Zend_Validate_File_Hash|! EZend_Validate_File_FilesSize|! EZend_Validate_File_Extension| ?Zend_Validate_File_Exists|' QZend_Validate_File_ExcludeMimeType|( SZend_Validate_File_ExcludeExtension| =Zend_Validate_File_Crc32| =Zend_Validate_File_Count| ;Zend_Validate_Exception|
 AZend_Validate_EmailAddress|	 5Zend_Validate_Digits|" GZend_Validate_Db_RecordExists|$ KZend_Validate_Db_NoRecordExists| ?Zend_Validate_Db_Abstract| 1Zend_Validate_Date| 3Zend_Validate_Ccnum| 7Zend_Validate_Between| 7Zend_Validate_Barcode| AZend_Validate_Barcode_UpcA|   CZend_Validate_Barcode_Ean13| 3Zend_Validate_Alpha|~ 3Zend_Validate_Alnum|} 9Zend_Validate_Abstract|| Zend_Uri|{ 'Zend_Uri_Http|z 1Zend_Uri_Exception|y )Zend_Translate|x 7Zend_Translate_Plural|w =Zend_Translate_Exception|v 9Zend_Translate_Adapter|!u EZend_Translate_Adapter_XmlTm|!t EZend_Translate_Adapter_Xliff|s AZend_Translate_Adapter_Tmx|r AZend_Translate_Adapter_Tbx|q ?Zend_Translate_Adapter_Qt|p AZend_Translate_Adapter_Ini|#o IZend_Translate_Adapter_Gettext|n AZend_Translate_Adapter_Csv|!m EZend_Translate_Adapter_Array|$l KZend_Tool_Project_Provider_View|$k KZend_Tool_Project_Provider_Test|/j aZend_Tool_Project_Provider_ProjectProvider|'i QZend_Tool_Project_Provider_Project|'h QZend_Tool_Project_Provider_Profile|&g OZend_Tool_Project_Provider_Module|%f MZend_Tool_Project_Provider_Model|(e SZend_Tool_Project_Provider_Manifest|$d KZend_Tool_Project_Provider_Form|)c UZend_Tool_Project_Provider_Exception|*b WZend_Tool_Project_Provider_Controller|&a OZend_Tool_Project_Provider_Action|(` SZend_Tool_Project_Provider_Abstract|_ ?Zend_Tool_Project_Profile|'^ QZend_Tool_Project_Profile_Resource|9] uZend_Tool_Project_Profile_Resource_SearchConstraints|1\ eZend_Tool_Project_Profile_Resource_Container|=[ }Zend_Tool_Project_Profile_Iterator_EnabledResourceFilter|5Z mZend_Tool_Project_Profile_Iterator_ContextFilter|-Y ]Zend_Tool_Project_Profile_FileParser_Xml|   _  rP*|W4aA_;g.



_
:
						U	5	b8oQ7xS2mH%^=#n8z2m&                                             0$ cZend_Service_DeveloperGarden_ConferenceCallC# Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatusC" Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail<! {Zend_Service_DeveloperGarden_ConferenceCall_Participant:  wZend_Service_DeveloperGarden_ConferenceCall_ExceptionD 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceScheduleB Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetailC Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount- ]Zend_Service_DeveloperGarden_Client_Soap2 gZend_Service_DeveloperGarden_Client_Exception7 qZend_Service_DeveloperGarden_Client_ClientAbstract1 eZend_Service_DeveloperGarden_BaseUserServiceA Zend_Service_DeveloperGarden_BaseUserService_AccountBalance /Zend_XmlRpc_Value| =Zend_XmlRpc_Value_Struct| =Zend_XmlRpc_Value_String| =Zend_XmlRpc_Value_Scalar| 7Zend_XmlRpc_Value_Nil| ?Zend_XmlRpc_Value_Integer|  CZend_XmlRpc_Value_Exception| =Zend_XmlRpc_Value_Double| AZend_XmlRpc_Value_DateTime|! EZend_XmlRpc_Value_Collection| ?Zend_XmlRpc_Value_Boolean|! EZend_XmlRpc_Value_BigInteger| =Zend_XmlRpc_Value_Base64|
 ;Zend_XmlRpc_Value_Array|	 1Zend_XmlRpc_Server| ?Zend_XmlRpc_Server_System| =Zend_XmlRpc_Server_Fault|! EZend_XmlRpc_Server_Exception| =Zend_XmlRpc_Server_Cache| 5Zend_XmlRpc_Response| ?Zend_XmlRpc_Response_Http| 3Zend_XmlRpc_Request| ?Zend_XmlRpc_Request_Stdin|  =Zend_XmlRpc_Request_Http| /Zend_XmlRpc_Fault|~ 7Zend_XmlRpc_Exception|} 1Zend_XmlRpc_Client|#| IZend_XmlRpc_Client_ServerProxy|+{ YZend_XmlRpc_Client_ServerIntrospection|+z YZend_XmlRpc_Client_IntrospectException|%y MZend_XmlRpc_Client_HttpException|&x OZend_XmlRpc_Client_FaultException|!w EZend_XmlRpc_Client_Exception|&v OZend_Wildfire_Protocol_JsonStream|!u EZend_Wildfire_Plugin_FirePhp|.t _Zend_Wildfire_Plugin_FirePhp_TableMessage|)s UZend_Wildfire_Plugin_FirePhp_Message|r ;Zend_Wildfire_Exception|&q OZend_Wildfire_Channel_HttpHeaders|p Zend_View|o -Zend_View_Stream|n 5Zend_View_Helper_Url|m AZend_View_Helper_Translate|l AZend_View_Helper_ServerUrl|)k UZend_View_Helper_RenderToPlaceholder|!j EZend_View_Helper_Placeholder|*i WZend_View_Helper_Placeholder_Registry|4h kZend_View_Helper_Placeholder_Registry_Exception|+g YZend_View_Helper_Placeholder_Container|6f oZend_View_Helper_Placeholder_Container_Standalone|5e mZend_View_Helper_Placeholder_Container_Exception|4d kZend_View_Helper_Placeholder_Container_Abstract|!c EZend_View_Helper_PartialLoop|b =Zend_View_Helper_Partial|'a QZend_View_Helper_Partial_Exception|'` QZend_View_Helper_PaginationControl| _ CZend_View_Helper_Navigation|(^ SZend_View_Helper_Navigation_Sitemap|%] MZend_View_Helper_Navigation_Menu|&\ OZend_View_Helper_Navigation_Links|/[ aZend_View_Helper_Navigation_HelperAbstract|,Z [Zend_View_Helper_Navigation_Breadcrumbs|Y ;Zend_View_Helper_Layout|X 7Zend_View_Helper_Json|"W GZend_View_Helper_InlineScript|#V IZend_View_Helper_HtmlQuicktime|U ?Zend_View_Helper_HtmlPage| T CZend_View_Helper_HtmlObject|S ?Zend_View_Helper_HtmlList|R AZend_View_Helper_HtmlFlash|!Q EZend_View_Helper_HtmlElement|P AZend_View_Helper_HeadTitle|O AZend_View_Helper_HeadStyle| N CZend_View_Helper_HeadScript|M ?Zend_View_Helper_HeadMeta|L ?Zend_View_Helper_HeadLink|"K GZend_View_Helper_FormTextarea|J ?Zend_View_Helper_FormText| I CZend_View_Helper_FormSubmit| H CZend_View_Helper_FormSelect|G AZend_View_Helper_FormReset|F AZend_View_Helper_FormRadio|   
 m4^0 r@vT*v*

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    I% Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Interface
I$ Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Interface	I# Zend_Service_DeveloperGarden_Response_SecurityTokenServer_InterfaceI" Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Interface#! IZend_Wildfire_Plugin_Interface|$  KZend_Wildfire_Channel_Interface| 3Zend_View_Interface|' QZend_View_Helper_Navigation_Helper| AZend_View_Helper_Interface| ;Zend_Validate_Interface|3 iZend_Tool_Project_Profile_FileParser_Interface|: wZend_Tool_Project_Context_System_TopLevelRestrictable|5 mZend_Tool_Project_Context_System_NotOverwritable|/ aZend_Tool_Project_Context_System_Interface|( SZend_Tool_Project_Context_Interface|+ YZend_Tool_Framework_Registry_Interface|2 gZend_Tool_Framework_Registry_EnabledInterface|- ]Zend_Tool_Framework_Provider_Pretendable|+ YZend_Tool_Framework_Provider_Interface|. _Zend_Tool_Framework_Provider_Interactable|; yZend_Tool_Framework_Provider_DocblockManifestInterface|+ YZend_Tool_Framework_Metadata_Interface|6 oZend_Tool_Framework_Manifest_ProviderManifestable|6 oZend_Tool_Framework_Manifest_MetadataManifestable|+ YZend_Tool_Framework_Manifest_Interface|+ YZend_Tool_Framework_Manifest_Indexable|4 kZend_Tool_Framework_Manifest_ActionManifestable|   3 q g7;4-!

b
			]	C0}Fs1^;h3  q   cW GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseWV /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponseUU +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponseST 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse3S iZend_Service_DeveloperGarden_Response_BaseTypeJR Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstractCQ Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCallGP Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced=O }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallAN Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatusAM Zend_Service_DeveloperGarden_Request_SmsValidation_ValidateNL Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeywordCK Zend_Service_DeveloperGarden_Request_SmsValidation_InvalidateLJ Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbersBI Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract9H uZend_Service_DeveloperGarden_Request_SendSms_SendSMS>G Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS9F uZend_Service_DeveloperGarden_Request_RequestAbstractIE Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequestED Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest3C iZend_Service_DeveloperGarden_Request_ExceptionRB %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequestYA 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequestd@ IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequestQ? #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequestR> %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequestY= 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequestd< IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequestQ; #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequestO: Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequestU9 +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequestU8 +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequestV7 -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequesta6 CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequestZ5 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequestT4 )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequestR3 %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequestY2 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequestQ1 #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequestQ0 #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequesta/ CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequestN. Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformationL- Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalanceJ, Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool-+ ]Zend_Service_DeveloperGarden_LocalSearch>* Zend_Service_DeveloperGarden_LocalSearch_SearchParameters7) qZend_Service_DeveloperGarden_LocalSearch_Exception,( [Zend_Service_DeveloperGarden_IpLocation6' oZend_Service_DeveloperGarden_IpLocation_IpAddress+& YZend_Service_DeveloperGarden_Exception,% [Zend_Service_DeveloperGarden_Credential   -  GD's[


%		i	TG'xW@a3                                     U +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponseQ #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponseI Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception; yZend_Service_DeveloperGarden_Response_ResponseAbstractO  Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseTypeK Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseA~ Zend_Service_DeveloperGarden_Response_IpLocation_RegionTypeK} Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseTypeG| Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseL{ Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationTypeIz Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType>y Zend_Service_DeveloperGarden_Response_IpLocation_CityType4x kZend_Service_DeveloperGarden_Response_ExceptionTw )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse[v 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponsefu MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponseSt 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponseTs )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse[r 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponsefq MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponseSp 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponseUo +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseTypeQn #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse[m 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseTypeWl /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse[k 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseTypeWj /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse\i 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseTypeXh 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponsegg OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseTypecf GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse`e AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType\d 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseZc 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseTypeVb -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseXa 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseTypeT` )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse__ ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType[^ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseW] /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseTypeS\ 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseQ[ #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstractSZ 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponseJY Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseTypegX OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseType   A  m&$8Km4


~
O
"				a	3	W- Z:OI=	p@D=           QE #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequestQD #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequestaC CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequestNB Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformationLA Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalanceJ@ Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool-? ]Zend_Service_DeveloperGarden_LocalSearch>> Zend_Service_DeveloperGarden_LocalSearch_SearchParameters7= qZend_Service_DeveloperGarden_LocalSearch_Exception,< [Zend_Service_DeveloperGarden_IpLocation6; oZend_Service_DeveloperGarden_IpLocation_IpAddress+: YZend_Service_DeveloperGarden_Exception,9 [Zend_Service_DeveloperGarden_Credential08 cZend_Service_DeveloperGarden_ConferenceCallC7 Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatusC6 Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail<5 {Zend_Service_DeveloperGarden_ConferenceCall_Participant:4 wZend_Service_DeveloperGarden_ConferenceCall_ExceptionD3 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceScheduleB2 Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetailC1 Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount-0 ]Zend_Service_DeveloperGarden_Client_Soap2/ gZend_Service_DeveloperGarden_Client_Exception7. qZend_Service_DeveloperGarden_Client_ClientAbstract1- eZend_Service_DeveloperGarden_BaseUserServiceA, Zend_Service_DeveloperGarden_BaseUserService_AccountBalance+ ;Zend_Service_Technorati#* IZend_Service_Technorati_Weblog") GZend_Service_Technorati_Utils*( WZend_Service_Technorati_TagsResultSet'' QZend_Service_Technorati_TagsResult)& UZend_Service_Technorati_TagResultSet&% OZend_Service_Technorati_TagResult,$ [Zend_Service_Technorati_SearchResultSet)# UZend_Service_Technorati_SearchResult&" OZend_Service_Technorati_ResultSet#! IZend_Service_Technorati_Result*  WZend_Service_Technorati_KeyInfoResult* WZend_Service_Technorati_GetInfoResult& OZend_Service_Technorati_Exception1 eZend_Service_Technorati_DailyCountsResultSet. _Zend_Service_Technorati_DailyCountsResult, [Zend_Service_Technorati_CosmosResultSet) UZend_Service_Technorati_CosmosResult+ YZend_Service_Technorati_BlogInfoResult# IZend_Service_Technorati_Author+ YZend_Service_DeveloperGarden_VoiceCall/ aZend_Service_DeveloperGarden_SmsValidation) UZend_Service_DeveloperGarden_SendSms5 mZend_Service_DeveloperGarden_SecurityTokenServer; yZend_Service_DeveloperGarden_SecurityTokenServer_CacheK Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstractL Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponseP !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponseG Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponseJ Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponseK Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2ResponseL Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponseI Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumberW
 /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponseJ	 Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponseU +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponseC Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponseC Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstractH Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponse   /  M2&~c

I			s	&j$;p%YN|.+q                                                                                 Tt )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse_s ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType[r 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseWq /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseTypeSp 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseQo #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstractSn 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponseJm Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseTypegl OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseTypeck GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseWj /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponseUi +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponseSh 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse3g iZend_Service_DeveloperGarden_Response_BaseTypeJf Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstractCe Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCallGd Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced=c }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallAb Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatusAa Zend_Service_DeveloperGarden_Request_SmsValidation_ValidateN` Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeywordC_ Zend_Service_DeveloperGarden_Request_SmsValidation_InvalidateL^ Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbersB] Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract9\ uZend_Service_DeveloperGarden_Request_SendSms_SendSMS>[ Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS9Z uZend_Service_DeveloperGarden_Request_RequestAbstractIY Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequestEX Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest3W iZend_Service_DeveloperGarden_Request_ExceptionRV %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequestYU 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequestdT IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequestQS #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequestRR %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequestYQ 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequestdP IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequestQO #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequestON Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequestUM +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequestUL +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequestVK -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequestaJ CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequestZI 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequestTH )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequestRG %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequestYF 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequest   .  J(V?&

x
!		X	 ?Pq&Cdj#5=                                                              J" Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponseK! Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2ResponseL  Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponseI Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumberW /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponseJ Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponseU +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponseC Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponseC Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstractH Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponseU +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponseQ #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponseI Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception; yZend_Service_DeveloperGarden_Response_ResponseAbstractO Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseTypeK Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseA Zend_Service_DeveloperGarden_Response_IpLocation_RegionTypeK Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseTypeG Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseL Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationTypeI Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType> Zend_Service_DeveloperGarden_Response_IpLocation_CityType4 kZend_Service_DeveloperGarden_Response_ExceptionT )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse[
 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponsef	 MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponseS 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponseT )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponsef MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponseS 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponseU +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseTypeQ #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseTypeW  /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseTypeW~ /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse\} 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseTypeX| 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseg{ OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseTypecz GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse`y AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType\x 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseZw 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseTypeVv -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseXu 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseType   ?  aJe8wImC



p
P
			e	4_!SVZ
SL@(                                                                          Ua +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequest	U` +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequest	V_ -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequest	a^ CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequest	Z] 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequest	T\ )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequest	R[ %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequest	YZ 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequest	QY #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequest	QX #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequest	aW CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequest	NV Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformation	LU Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalance	JT Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool	-S ]Zend_Service_DeveloperGarden_LocalSearch	>R Zend_Service_DeveloperGarden_LocalSearch_SearchParameters	7Q qZend_Service_DeveloperGarden_LocalSearch_Exception	,P [Zend_Service_DeveloperGarden_IpLocation	6O oZend_Service_DeveloperGarden_IpLocation_IpAddress	+N YZend_Service_DeveloperGarden_Exception	,M [Zend_Service_DeveloperGarden_Credential	0L cZend_Service_DeveloperGarden_ConferenceCall	CK Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatus	CJ Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail	<I {Zend_Service_DeveloperGarden_ConferenceCall_Participant	:H wZend_Service_DeveloperGarden_ConferenceCall_Exception	DG 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceSchedule	BF Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail	CE Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount	-D ]Zend_Service_DeveloperGarden_Client_Soap	2C gZend_Service_DeveloperGarden_Client_Exception	7B qZend_Service_DeveloperGarden_Client_ClientAbstract	1A eZend_Service_DeveloperGarden_BaseUserService	A@ Zend_Service_DeveloperGarden_BaseUserService_AccountBalance	? ;Zend_Service_Technorati#> IZend_Service_Technorati_Weblog"= GZend_Service_Technorati_Utils*< WZend_Service_Technorati_TagsResultSet'; QZend_Service_Technorati_TagsResult): UZend_Service_Technorati_TagResultSet&9 OZend_Service_Technorati_TagResult,8 [Zend_Service_Technorati_SearchResultSet)7 UZend_Service_Technorati_SearchResult&6 OZend_Service_Technorati_ResultSet#5 IZend_Service_Technorati_Result*4 WZend_Service_Technorati_KeyInfoResult*3 WZend_Service_Technorati_GetInfoResult&2 OZend_Service_Technorati_Exception11 eZend_Service_Technorati_DailyCountsResultSet.0 _Zend_Service_Technorati_DailyCountsResult,/ [Zend_Service_Technorati_CosmosResultSet). UZend_Service_Technorati_CosmosResult+- YZend_Service_Technorati_BlogInfoResult#, IZend_Service_Technorati_Author++ YZend_Service_DeveloperGarden_VoiceCall/* aZend_Service_DeveloperGarden_SmsValidation)) UZend_Service_DeveloperGarden_SendSms5( mZend_Service_DeveloperGarden_SecurityTokenServer;' yZend_Service_DeveloperGarden_SecurityTokenServer_CacheK& Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstractL% Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponseP$ !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponseG# Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponse   /  X=#M D


g
			Jj3(V\K4|Q                                      X 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponse	g OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseType	c GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse	` AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType	\ 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponse	Z 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseType	V
 -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponse	X	 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseType	T )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse	_ ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType	[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponse	W /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType	S 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponse	Q #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstract	S 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponse	J Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType	g  OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseType	c GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponse	W~ /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse	U} +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponse	S| 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse	3{ iZend_Service_DeveloperGarden_Response_BaseType	Jz Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstract	Cy Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCall	Gx Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced	=w }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCall	Av Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatus	Au Zend_Service_DeveloperGarden_Request_SmsValidation_Validate	Nt Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeyword	Cs Zend_Service_DeveloperGarden_Request_SmsValidation_Invalidate	Lr Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbers	Bq Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract	9p uZend_Service_DeveloperGarden_Request_SendSms_SendSMS	>o Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS	9n uZend_Service_DeveloperGarden_Request_RequestAbstract	Im Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequest	El Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest	3k iZend_Service_DeveloperGarden_Request_Exception	Rj %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequest	Yi 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequest	dh IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequest	Qg #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequest	Rf %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequest	Ye 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequest	dd IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequest	Qc #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequest	Ob Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequest	   4 | E,~'^E


V
		w	,Ijp);C[h)a:   |            .D _Zend_Service_Technorati_DailyCountsResult	,C [Zend_Service_Technorati_CosmosResultSet	)B UZend_Service_Technorati_CosmosResult	+A YZend_Service_Technorati_BlogInfoResult	#@ IZend_Service_Technorati_Author	+? YZend_Service_DeveloperGarden_VoiceCall	/> aZend_Service_DeveloperGarden_SmsValidation	)= UZend_Service_DeveloperGarden_SendSms	5< mZend_Service_DeveloperGarden_SecurityTokenServer	;; yZend_Service_DeveloperGarden_SecurityTokenServer_Cache	K: Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstract	L9 Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponse	P8 !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponse	G7 Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponse	J6 Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponse	K5 Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2Response	L4 Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponse	I3 Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumber	W2 /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponse	J1 Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponse	U0 +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponse	C/ Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponse	C. Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstract	H- Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponse	U, +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponse	Q+ #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponse	I* Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception	;) yZend_Service_DeveloperGarden_Response_ResponseAbstract	O( Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseType	K' Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponse	A& Zend_Service_DeveloperGarden_Response_IpLocation_RegionType	K% Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseType	G$ Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponse	L# Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationType	I" Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType	>! Zend_Service_DeveloperGarden_Response_IpLocation_CityType	4  kZend_Service_DeveloperGarden_Response_Exception	T )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse	[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponse	f MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponse	S 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponse	T )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse	[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponse	f MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponse	S 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponse	U +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType	Q #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse	[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseType	W /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse	[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseType	W /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse	\ 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseType	   ;  sEm@z5 ^K

}
I
				E	4}(v jRQ6y                   3 iZend_Service_DeveloperGarden_Request_Exception
R~ %Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateParticipantRequest
Y} 3Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateRequest
d| IZend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceTemplateParticipantRequest
Q{ #Zend_Service_DeveloperGarden_Request_ConferenceCall_UpdateConferenceRequest
Rz %Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveParticipantRequest
Yy 3Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateRequest
dx IZend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceTemplateParticipantRequest
Qw #Zend_Service_DeveloperGarden_Request_ConferenceCall_RemoveConferenceRequest
Ov Zend_Service_DeveloperGarden_Request_ConferenceCall_NewParticipantRequest
Uu +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetRunningConferenceRequest
Ut +Zend_Service_DeveloperGarden_Request_ConferenceCall_GetParticipantStatusRequest
Vs -Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateRequest
ar CZend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateParticipantRequest
Zq 5Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceTemplateListRequest
Tp )Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceStatusRequest
Ro %Zend_Service_DeveloperGarden_Request_ConferenceCall_GetConferenceListRequest
Yn 3Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceTemplateRequest
Qm #Zend_Service_DeveloperGarden_Request_ConferenceCall_CreateConferenceRequest
Ql #Zend_Service_DeveloperGarden_Request_ConferenceCall_CommitConferenceRequest
ak CZend_Service_DeveloperGarden_Request_ConferenceCall_AddConferenceTemplateParticipantRequest
Nj Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformation
Li Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalance
Jh Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool
-g ]Zend_Service_DeveloperGarden_LocalSearch
>f Zend_Service_DeveloperGarden_LocalSearch_SearchParameters
7e qZend_Service_DeveloperGarden_LocalSearch_Exception
,d [Zend_Service_DeveloperGarden_IpLocation
6c oZend_Service_DeveloperGarden_IpLocation_IpAddress
+b YZend_Service_DeveloperGarden_Exception
,a [Zend_Service_DeveloperGarden_Credential
0` cZend_Service_DeveloperGarden_ConferenceCall
C_ Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatus
C^ Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail
<] {Zend_Service_DeveloperGarden_ConferenceCall_Participant
:\ wZend_Service_DeveloperGarden_ConferenceCall_Exception
D[ 	Zend_Service_DeveloperGarden_ConferenceCall_ConferenceSchedule
BZ Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail
CY Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount
-X ]Zend_Service_DeveloperGarden_Client_Soap
2W gZend_Service_DeveloperGarden_Client_Exception
7V qZend_Service_DeveloperGarden_Client_ClientAbstract
1U eZend_Service_DeveloperGarden_BaseUserService
AT Zend_Service_DeveloperGarden_BaseUserService_AccountBalance
S ;Zend_Service_Technorati	#R IZend_Service_Technorati_Weblog	"Q GZend_Service_Technorati_Utils	*P WZend_Service_Technorati_TagsResultSet	'O QZend_Service_Technorati_TagsResult	)N UZend_Service_Technorati_TagResultSet	&M OZend_Service_Technorati_TagResult	,L [Zend_Service_Technorati_SearchResultSet	)K UZend_Service_Technorati_SearchResult	&J OZend_Service_Technorati_ResultSet	#I IZend_Service_Technorati_Result	*H WZend_Service_Technorati_KeyInfoResult	*G WZend_Service_Technorati_GetInfoResult	&F OZend_Service_Technorati_Exception	1E eZend_Service_Technorati_DailyCountsResultSet	   .  j-h:i"F


+		r	oRD"P9 r                                                                              f- MZend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateParticipantResponse
S, 'Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceResponse
U+ +Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType
Q* #Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponse
[) 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseType
W( /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponse
[' 7Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseType
W& /Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponse
\% 9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseType
X$ 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponse
g# OZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseType
c" GZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponse
`! AZend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType
\  9Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponse
Z 5Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseType
V -Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponse
X 1Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseType
T )Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponse
_ ?Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType
[ 7Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponse
W /Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType
S 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponse
Q #Zend_Service_DeveloperGarden_Response_ConferenceCall_ConferenceCallAbstract
S 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CommitConferenceResponse
J Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType
g OZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseType
c GZend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponse
W /Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse
U +Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponse
S 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse
3 iZend_Service_DeveloperGarden_Response_BaseType
J Zend_Service_DeveloperGarden_Request_VoiceButler_VoiceButlerAbstract
C Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCall
G Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced
= }Zend_Service_DeveloperGarden_Request_VoiceButler_NewCall
A
 Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatus
A	 Zend_Service_DeveloperGarden_Request_SmsValidation_Validate
N Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeyword
C Zend_Service_DeveloperGarden_Request_SmsValidation_Invalidate
L Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbers
B Zend_Service_DeveloperGarden_Request_SendSms_SendSmsAbstract
9 uZend_Service_DeveloperGarden_Request_SendSms_SendSMS
> Zend_Service_DeveloperGarden_Request_SendSms_SendFlashSMS
9 uZend_Service_DeveloperGarden_Request_RequestAbstract
I Zend_Service_DeveloperGarden_Request_LocalSearch_LocalSearchRequest
E  Zend_Service_DeveloperGarden_Request_IpLocation_LocateIPRequest
   :9 I)W
o 9


X			l	%~#7Jl3}N!`2V,Y9                                                                                                                                                                                             g ;Zend_Service_Technorati
#f IZend_Service_Technorati_Weblog
"e GZend_Service_Technorati_Utils
*d WZend_Service_Technorati_TagsResultSet
'c QZend_Service_Technorati_TagsResult
)b UZend_Service_Technorati_TagResultSet
&a OZend_Service_Technorati_TagResult
,` [Zend_Service_Technorati_SearchResultSet
)_ UZend_Service_Technorati_SearchResult
&^ OZend_Service_Technorati_ResultSet
#] IZend_Service_Technorati_Result
*\ WZend_Service_Technorati_KeyInfoResult
*[ WZend_Service_Technorati_GetInfoResult
&Z OZend_Service_Technorati_Exception
1Y eZend_Service_Technorati_DailyCountsResultSet
.X _Zend_Service_Technorati_DailyCountsResult
,W [Zend_Service_Technorati_CosmosResultSet
)V UZend_Service_Technorati_CosmosResult
+U YZend_Service_Technorati_BlogInfoResult
#T IZend_Service_Technorati_Author
+S YZend_Service_DeveloperGarden_VoiceCall
/R aZend_Service_DeveloperGarden_SmsValidation
)Q UZend_Service_DeveloperGarden_SendSms
5P mZend_Service_DeveloperGarden_SecurityTokenServer
;O yZend_Service_DeveloperGarden_SecurityTokenServer_Cache
KN Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstract
LM Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponse
PL !Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponse
GK Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponse
JJ Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponse
KI Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2Response
LH Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponse
IG Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumber
WF /Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponse
JE Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponse
UD +Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponse
CC Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponse
CB Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstract
HA Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponse
U@ +Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponse
Q? #Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponse
I> Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception
;= yZend_Service_DeveloperGarden_Response_ResponseAbstract
O< Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponseType
K; Zend_Service_DeveloperGarden_Response_LocalSearch_LocalSearchResponse
A: Zend_Service_DeveloperGarden_Response_IpLocation_RegionType
K9 Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseType
G8 Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponse
L7 Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationType
I6 Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType
>5 Zend_Service_DeveloperGarden_Response_IpLocation_CityType
44 kZend_Service_DeveloperGarden_Response_Exception
T3 )Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateParticipantResponse
[2 7Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateResponse
f1 MZend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceTemplateParticipantResponse
S0 'Zend_Service_DeveloperGarden_Response_ConferenceCall_UpdateConferenceResponse
T/ )Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveParticipantResponse
[. 7Zend_Service_DeveloperGarden_Response_ConferenceCall_RemoveConferenceTemplateResponse
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          classes[] = '';

interfaces[] = ;

traits[] = ;

namespaces[] = '\Illuminate';
namespaces[] = '\App';classes[] = '\CI_Benchmark';
classes[] = '\CI_CodeIgniter';
classes[] = '\CI_Common';
classes[] = '\CI_Config';
classes[] = '\CI_Controller';
classes[] = '\CI_Exceptions';
classes[] = '\CI_Hooks';
classes[] = '\CI_Input';
classes[] = '\CI_Lang';
classes[] = '\CI_Loader';
classes[] = '\CI_Log';
classes[] = '\CI_Model';
classes[] = '\CI_Output';
classes[] = '\CI_Router';
classes[] = '\CI_Security';
classes[] = '\CI_URI';
classes[] = '\CI_Utf8';

interfaces[] = ;

traits[] = ;

namespaces[] = '';constants[] = 'TYPO3_MODE'

classes[] = 'GeneralUtility';

interfaces[] = ;

traits[] = ;

namespaces[] = '\typo3';
classes[] = '\WP_Admin_Bar';
classes[] = '\WP_Ajax_Response';
classes[] = '\WP_Automatic_Updater';
classes[] = '\WP_Comment_Query';
classes[] = '\WP_Comments_List_Table';
classes[] = '\WP_Customize_Background_Image_Control';
classes[] = '\WP_Customize_Color_Control';
classes[] = '\WP_Customize_Control';
classes[] = '\WP_Customize_Cropped_Image_Control';
classes[] = '\WP_Customize_Filter_Setting';
classes[] = '\WP_Customize_Header_Image_Control';
classes[] = '\WP_Customize_Image_Control';
classes[] = '\WP_Customize_Media_Control';
classes[] = '\WP_Customize_Nav_Menu_Auto_Add_Control';
classes[] = '\WP_Customize_Nav_Menu_Control';
classes[] = '\WP_Customize_Nav_Menu_Item_Control';
classes[] = '\WP_Customize_Nav_Menu_Item_Setting';
classes[] = '\WP_Customize_Nav_Menu_Location_Control';
classes[] = '\WP_Customize_Nav_Menu_Name_Control';
classes[] = '\WP_Customize_Nav_Menu_Section';
classes[] = '\WP_Customize_Nav_Menu_Setting';
classes[] = '\WP_Customize_Nav_Menus_Panel';
classes[] = '\WP_Customize_New_Menu_Control';
classes[] = '\WP_Customize_New_Menu_Section';
classes[] = '\WP_Customize_Panel';
classes[] = '\WP_Customize_Section';
classes[] = '\WP_Customize_Setting';
classes[] = '\WP_Customize_Sidebar_Section';
classes[] = '\WP_Customize_Site_Icon_Control';
classes[] = '\WP_Customize_Theme_Control';
classes[] = '\WP_Customize_Themes_Section';
classes[] = '\WP_Customize_Upload_Control';
classes[] = '\WP_Date_Query';
classes[] = '\WP_Dependencies';
classes[] = '\WP_Embed';
classes[] = '\WP_Error';
classes[] = '\WP_Feed_Cache';
classes[] = '\WP_Feed_Cache_Transient';
classes[] = '\WP_Filesystem_Base';
classes[] = '\WP_Filesystem_Direct';
classes[] = '\WP_Filesystem_FTPext';
classes[] = '\WP_Filesystem_ftpsockets';
classes[] = '\WP_Filesystem_SSH2';
classes[] = '\WP_Http';
classes[] = '\WP_Http_Cookie';
classes[] = '\WP_Http_Curl';
classes[] = '\WP_Http_Encoding';
classes[] = '\WP_HTTP_Fsockopen';
classes[] = '\WP_HTTP_IXR_Client';
classes[] = '\WP_HTTP_Proxy';
classes[] = '\WP_HTTP_Response';
classes[] = '\WP_Http_Streams';
classes[] = '\WP_Image_Editor_GD';
classes[] = '\WP_Image_Editor_Imagick';
classes[] = '\WP_Importer';
classes[] = '\WP_Links_List_Table';
classes[] = '\WP_List_Table';
classes[] = '\WP_Locale';
classes[] = '\WP_MatchesMapRegex';
classes[] = '\WP_Media_List_Table';
classes[] = '\WP_Meta_Query';
classes[] = '\WP_MS_Sites_List_Table';
classes[] = '\WP_MS_Themes_List_Table';
classes[] = '\WP_MS_Users_List_Table';
classes[] = '\WP_Network';
classes[] = '\WP_Object_Cache';
classes[] = '\WP_oEmbed';
classes[] = '\WP_Plugin_Install_List_Table';
classes[] = '\WP_Plugins_List_Table';
classes[] = '\WP_Post_Comments_List_Table';
classes[] = '\WP_Posts_List_Table';
classes[] = '\WP_Press_This';
classes[] = '\WP_Query';
classes[] = '\WP_REST_Request';
classes[] = '\WP_REST_Response';
classes[] = '\WP_REST_Server';
classes[] = '\WP_Rewrite';
classes[] = '\WP_Role';
classes[] = '\WP_Roles';
classes[] = '\WP_Scripts';
classes[] = '\WP_SimplePie_File';
classes[] = '\WP_SimplePie_Sanitize_KSES';
classes[] = '\WP_Site_Icon';
classes[] = '\WP_Styles';
classes[] = '\WP_Tax_Query';
classes[] = '\WP_Terms_List_Table';
classes[] = '\WP_Text_Diff_Renderer_inline';
classes[] = '\WP_Text_Diff_Renderer_Table';
classes[] = '\WP_Theme_Install_List_Table';
classes[] = '\WP_Themes_List_Table';
classes[] = '\WP_Upgrader';
classes[] = '\WP_Upgrader_Skin';
classes[] = '\WP_User';
classes[] = '\WP_User_Meta_Session_Tokens';
classes[] = '\WP_User_Query';
classes[] = '\WP_User_Search';
classes[] = '\WP_Users_List_Table';
classes[] = '\WP_Widget';
classes[] = '\WP_Widget_Archives';
classes[] = '\WP_Widget_Area_Customize_Control';
classes[] = '\WP_Widget_Calendar';
classes[] = '\WP_Widget_Categories';
classes[] = '\WP_Widget_Factory';
classes[] = '\WP_Widget_Form_Customize_Control';
classes[] = '\WP_Widget_Links';
classes[] = '\WP_Widget_Meta';
classes[] = '\WP_Widget_Pages';
classes[] = '\WP_Widget_Recent_Comments';
classes[] = '\WP_Widget_Recent_Posts';
classes[] = '\WP_Widget_RSS';
classes[] = '\WP_Widget_Search';
classes[] = '\WP_Widget_Tag_Cloud';
classes[] = '\WP_Widget_Text';

interfaces[] = ;

traits[] = ;

namespaces[] = '';classes[] = 
classes[] = 
classes[] = 

interfaces[] = ;

traits[] = ;

namespaces[] = '\yii';
namespaces[] = '\yiibase';
namespaces[] = '\cccomponent';classes[] = 

interfaces[] = ;

traits[] = ;

namespaces[] = '\Drupal';
classes[] = 

interfaces[] = ;

traits[] = ;

namespaces[] = '\phalcon';
classes[] = 'CallbackFilterIterator';
classes[] = 'JAccess';
classes[] = 'JAccessExceptionNotallowed';
classes[] = 'JAccessRule';
classes[] = 'JAccessRules';
classes[] = 'JAccessWrapperAccess';
classes[] = 'JAdapter';
classes[] = 'JAdapterInstance';
classes[] = 'JApplication';
classes[] = 'JApplicationAdministrator';
classes[] = 'JApplicationBase';
classes[] = 'JApplicationCli';
classes[] = 'JApplicationCms';
classes[] = 'JApplicationDaemon';
classes[] = 'JApplicationHelper';
classes[] = 'JApplicationSite';
classes[] = 'JApplicationWeb';
classes[] = 'JApplicationWebRouter';
classes[] = 'JApplicationWebRouterBase';
classes[] = 'JApplicationWebRouterRest';
classes[] = 'JArchive';
classes[] = 'JArchiveBzip2';
classes[] = 'JArchiveExtractable';
classes[] = 'JArchiveGzip';
classes[] = 'JArchiveTar';
classes[] = 'JArchiveWrapperArchive';
classes[] = 'JArchiveZip';
classes[] = 'JArrayHelper';
classes[] = 'JAssociationExtensionHelper';
classes[] = 'JAssociationExtensionInterface';
classes[] = 'JAuthentication';
classes[] = 'JAuthenticationHelper';
classes[] = 'JAuthenticationResponse';
classes[] = 'JBrowser';
classes[] = 'JBuffer';
classes[] = 'JButton';
classes[] = 'JCache';
classes[] = 'JCacheController';
classes[] = 'JCacheControllerCallback';
classes[] = 'JCacheControllerOutput';
classes[] = 'JCacheControllerPage';
classes[] = 'JCacheControllerView';
classes[] = 'JCacheException';
classes[] = 'JCacheExceptionConnecting';
classes[] = 'JCacheExceptionUnsupported';
classes[] = 'JCacheStorage';
classes[] = 'JCacheStorageApc';
classes[] = 'JCacheStorageApcu';
classes[] = 'JCacheStorageCachelite';
classes[] = 'JCacheStorageFile';
classes[] = 'JCacheStorageHelper';
classes[] = 'JCacheStorageMemcache';
classes[] = 'JCacheStorageMemcached';
classes[] = 'JCacheStorageRedis';
classes[] = 'JCacheStorageWincache';
classes[] = 'JCacheStorageXcache';
classes[] = 'JCaptcha';
classes[] = 'JCategories';
classes[] = 'JCategoryNode';
classes[] = 'JClassLoader';
classes[] = 'JCli';
classes[] = 'JClientFtp';
classes[] = 'JClientHelper';
classes[] = 'JClientLdap';
classes[] = 'JClientWrapperHelper';
classes[] = 'JComponentExceptionMissing';
classes[] = 'JComponentHelper';
classes[] = 'JComponentRecord';
classes[] = 'JComponentRouterBase';
classes[] = 'JComponentRouterInterface';
classes[] = 'JComponentRouterLegacy';
classes[] = 'JComponentRouterRulesInterface';
classes[] = 'JComponentRouterRulesMenu';
classes[] = 'JComponentRouterRulesNomenu';
classes[] = 'JComponentRouterRulesStandard';
classes[] = 'JComponentRouterView';
classes[] = 'JComponentRouterViewconfiguration';
classes[] = 'JController';
classes[] = 'JControllerAdmin';
classes[] = 'JControllerBase';
classes[] = 'JControllerForm';
classes[] = 'JControllerLegacy';
classes[] = 'JCrypt';
classes[] = 'JCryptCipher';
classes[] = 'JCryptCipher3Des';
classes[] = 'JCryptCipherBlowfish';
classes[] = 'JCryptCipherCrypto';
classes[] = 'JCryptCipherMcrypt';
classes[] = 'JCryptCipherRijndael256';
classes[] = 'JCryptCipherSimple';
classes[] = 'JCryptKey';
classes[] = 'JCryptPassword';
classes[] = 'JCryptPasswordSimple';
classes[] = 'JDaemon';
classes[] = 'JDatabase';
classes[] = 'JDatabaseDriver';
classes[] = 'JDatabaseDriverMysql';
classes[] = 'JDatabaseDriverMysqli';
classes[] = 'JDatabaseDriverOracle';
classes[] = 'JDatabaseDriverPdo';
classes[] = 'JDatabaseDriverPdomysql';
classes[] = 'JDatabaseDriverPostgresql';
classes[] = 'JDatabaseDriverSqlazure';
classes[] = 'JDatabaseDriverSqlite';
classes[] = 'JDatabaseDriverSqlsrv';
classes[] = 'JDatabaseException';
classes[] = 'JDatabaseExceptionConnecting';
classes[] = 'JDatabaseExceptionExecuting';
classes[] = 'JDatabaseExceptionUnsupported';
classes[] = 'JDatabaseExporter';
classes[] = 'JDatabaseExporterMysql';
classes[] = 'JDatabaseExporterMysqli';
classes[] = 'JDatabaseExporterPdomysql';
classes[] = 'JDatabaseExporterPostgresql';
classes[] = 'JDatabaseFactory';
classes[] = 'JDatabaseImporter';
classes[] = 'JDatabaseImporterMysql';
classes[] = 'JDatabaseImporterMysqli';
classes[] = 'JDatabaseImporterPdomysql';
classes[] = 'JDatabaseImporterPostgresql';
classes[] = 'JDatabaseInterface';
classes[] = 'JDatabaseIterator';
classes[] = 'JDatabaseIteratorMysql';
classes[] = 'JDatabaseIteratorMysqli';
classes[] = 'JDatabaseIteratorOracle';
classes[] = 'JDatabaseIteratorPdo';
classes[] = 'JDatabaseIteratorPdomysql';
classes[] = 'JDatabaseIteratorPostgresql';
classes[] = 'JDatabaseIteratorSqlazure';
classes[] = 'JDatabaseIteratorSqlite';
classes[] = 'JDatabaseIteratorSqlsrv';
classes[] = 'JDatabaseMysql';
classes[] = 'JDatabaseMysqli';
classes[] = 'JDatabaseQuery';
classes[] = 'JDatabaseQueryElement';
classes[] = 'JDatabaseQueryLimitable';
classes[] = 'JDatabaseQueryMysql';
classes[] = 'JDatabaseQueryMysqli';
classes[] = 'JDatabaseQueryOracle';
classes[] = 'JDatabaseQueryPdo';
classes[] = 'JDatabaseQueryPdomysql';
classes[] = 'JDatabaseQueryPostgresql';
classes[] = 'JDatabaseQueryPreparable';
classes[] = 'JDatabaseQuerySqlazure';
classes[] = 'JDatabaseQuerySqlite';
classes[] = 'JDatabaseQuerySqlsrv';
classes[] = 'JDatabaseSqlazure';
classes[] = 'JDatabaseSqlsrv';
classes[] = 'JDate';
classes[] = 'JDispatcher';
classes[] = 'JDocument';
classes[] = 'JDocumentError';
classes[] = 'JDocumentFeed';
classes[] = 'JDocumentHtml';
classes[] = 'JDocumentImage';
classes[] = 'JDocumentJson';
classes[] = 'JDocumentOpensearch';
classes[] = 'JDocumentRaw';
classes[] = 'JDocumentRenderer';
classes[] = 'JDocumentRendererAtom';
classes[] = 'JDocumentRendererComponent';
classes[] = 'JDocumentRendererFeedAtom';
classes[] = 'JDocumentRendererFeedRss';
classes[] = 'JDocumentRendererHead';
classes[] = 'JDocumentRendererHtmlComponent';
classes[] = 'JDocumentRendererHtmlHead';
classes[] = 'JDocumentRendererHtmlMessage';
classes[] = 'JDocumentRendererHtmlModule';
classes[] = 'JDocumentRendererHtmlModules';
classes[] = 'JDocumentRendererMessage';
classes[] = 'JDocumentRendererModule';
classes[] = 'JDocumentRendererModules';
classes[] = 'JDocumentRendererRSS';
classes[] = 'JDocumentXml';
classes[] = 'JEditor';
classes[] = 'JError';
classes[] = 'JErrorPage';
classes[] = 'JEvent';
classes[] = 'JEventDispatcher';
classes[] = 'JException';
classes[] = 'JExtension';
classes[] = 'JFacebook';
classes[] = 'JFacebookAlbum';
classes[] = 'JFacebookCheckin';
classes[] = 'JFacebookComment';
classes[] = 'JFacebookEvent';
classes[] = 'JFacebookGroup';
classes[] = 'JFacebookLink';
classes[] = 'JFacebookNote';
classes[] = 'JFacebookOAuth';
classes[] = 'JFacebookObject';
classes[] = 'JFacebookPhoto';
classes[] = 'JFacebookPost';
classes[] = 'JFacebookStatus';
classes[] = 'JFacebookUser';
classes[] = 'JFacebookVideo';
classes[] = 'JFactory';
classes[] = 'JFeed';
classes[] = 'JFeedEnclosure';
classes[] = 'JFeedEntry';
classes[] = 'JFeedFactory';
classes[] = 'JFeedImage';
classes[] = 'JFeedItem';
classes[] = 'JFeedLink';
classes[] = 'JFeedParser';
classes[] = 'JFeedParserAtom';
classes[] = 'JFeedParserNamespace';
classes[] = 'JFeedParserRss';
classes[] = 'JFeedParserRssItunes';
classes[] = 'JFeedParserRssMedia';
classes[] = 'JFeedPerson';
classes[] = 'JFile';
classes[] = 'JFilesystemHelper';
classes[] = 'JFilesystemPatcher';
classes[] = 'JFilesystemWrapperFile';
classes[] = 'JFilesystemWrapperFolder';
classes[] = 'JFilesystemWrapperPath';
classes[] = 'JFilterInput';
classes[] = 'JFilterOutput';
classes[] = 'JFilterOutput';
classes[] = 'JFilterWrapperOutput';
classes[] = 'JFolder';
classes[] = 'JForm';
classes[] = 'JFormField';
classes[] = 'JFormFieldAccessLevel';
classes[] = 'JFormFieldAliastag';
classes[] = 'JFormFieldAuthor';
classes[] = 'JFormFieldCacheHandler';
classes[] = 'JFormFieldCalendar';
classes[] = 'JFormFieldCaptcha';
classes[] = 'JFormFieldCategory';
classes[] = 'JFormFieldCheckbox';
classes[] = 'JFormFieldCheckboxes';
classes[] = 'JFormFieldChromeStyle';
classes[] = 'JFormFieldColor';
classes[] = 'JFormFieldCombo';
classes[] = 'JFormFieldComponentlayout';
classes[] = 'JFormFieldComponents';
classes[] = 'JFormFieldContenthistory';
classes[] = 'JFormFieldContentlanguage';
classes[] = 'JFormFieldContenttype';
classes[] = 'JFormFieldDatabaseConnection';
classes[] = 'JFormFieldEditor';
classes[] = 'JFormFieldEMail';
classes[] = 'JFormFieldFile';
classes[] = 'JFormFieldFileList';
classes[] = 'JFormFieldFolderList';
classes[] = 'JFormFieldFrontend_Language';
classes[] = 'JFormFieldGroupedList';
classes[] = 'JFormFieldHeadertag';
classes[] = 'JFormFieldHelpsite';
classes[] = 'JFormFieldHidden';
classes[] = 'JFormFieldImageList';
classes[] = 'JFormFieldInteger';
classes[] = 'JFormFieldLanguage';
classes[] = 'JFormFieldLastvisitDateRange';
classes[] = 'JFormFieldLimitbox';
classes[] = 'JFormFieldList';
classes[] = 'JFormFieldMedia';
classes[] = 'JFormFieldMenu';
classes[] = 'JFormFieldMenuitem';
classes[] = 'JFormFieldMeter';
classes[] = 'JFormFieldModulelayout';
classes[] = 'JFormFieldModuleOrder';
classes[] = 'JFormFieldModulePosition';
classes[] = 'JFormFieldModuletag';
classes[] = 'JFormFieldNote';
classes[] = 'JFormFieldNumber';
classes[] = 'JFormFieldOrdering';
classes[] = 'JFormFieldPassword';
classes[] = 'JFormFieldPlugin_Status';
classes[] = 'JFormFieldPlugins';
classes[] = 'JFormFieldPredefinedList';
classes[] = 'JFormFieldRadio';
classes[] = 'JFormFieldRange';
classes[] = 'JFormFieldRegistrationDateRange';
classes[] = 'JFormFieldRepeatable';
classes[] = 'JFormFieldRules';
classes[] = 'JFormFieldSessionHandler';
classes[] = 'JFormFieldSpacer';
classes[] = 'JFormFieldSQL';
classes[] = 'JFormFieldStatus';
classes[] = 'JFormFieldSubform';
classes[] = 'JFormFieldTag';
classes[] = 'JFormFieldTel';
classes[] = 'JFormFieldTemplatestyle';
classes[] = 'JFormFieldText';
classes[] = 'JFormFieldTextarea';
classes[] = 'JFormFieldTimezone';
classes[] = 'JFormFieldUrl';
classes[] = 'JFormFieldUser';
classes[] = 'JFormFieldUserActive';
classes[] = 'JFormFieldUsergroup';
classes[] = 'JFormFieldUserGroupList';
classes[] = 'JFormFieldUserState';
classes[] = 'JFormHelper';
classes[] = 'JFormRule';
classes[] = 'JFormRuleBoolean';
classes[] = 'JFormRuleCalendar';
classes[] = 'JFormRuleCaptcha';
classes[] = 'JFormRuleColor';
classes[] = 'JFormRuleEmail';
classes[] = 'JFormRuleEquals';
classes[] = 'JFormRuleNotequals';
classes[] = 'JFormRuleNumber';
classes[] = 'JFormRuleOptions';
classes[] = 'JFormRulePassword';
classes[] = 'JFormRuleRules';
classes[] = 'JFormRuleTel';
classes[] = 'JFormRuleUrl';
classes[] = 'JFormRuleUsername';
classes[] = 'JFormWrapperHelper';
classes[] = 'JFTP';
classes[] = 'JGithub';
classes[] = 'JGithubAccount';
classes[] = 'JGithubCommits';
classes[] = 'JGithubForks';
classes[] = 'JGithubHooks';
classes[] = 'JGithubHttp';
classes[] = 'JGithubMeta';
classes[] = 'JGithubMilestones';
classes[] = 'JGithubObject';
classes[] = 'JGithubPackage';
classes[] = 'JGithubPackageActivity';
classes[] = 'JGithubPackageActivityEvents';
classes[] = 'JGithubPackageActivityNotifications';
classes[] = 'JGithubPackageActivityStarring';
classes[] = 'JGithubPackageActivityWatching';
classes[] = 'JGithubPackageAuthorization';
classes[] = 'JGithubPackageData';
classes[] = 'JGithubPackageDataBlobs';
classes[] = 'JGithubPackageDataCommits';
classes[] = 'JGithubPackageDataRefs';
classes[] = 'JGithubPackageDataTags';
classes[] = 'JGithubPackageDataTrees';
classes[] = 'JGithubPackageGists';
classes[] = 'JGithubPackageGistsComments';
classes[] = 'JGithubPackageGitignore';
classes[] = 'JGithubPackageIssues';
classes[] = 'JGithubPackageIssuesAssignees';
classes[] = 'JGithubPackageIssuesComments';
classes[] = 'JGithubPackageIssuesEvents';
classes[] = 'JGithubPackageIssuesLabels';
classes[] = 'JGithubPackageIssuesMilestones';
classes[] = 'JGithubPackageMarkdown';
classes[] = 'JGithubPackageOrgs';
classes[] = 'JGithubPackageOrgsMembers';
classes[] = 'JGithubPackageOrgsTeams';
classes[] = 'JGithubPackagePulls';
classes[] = 'JGithubPackagePullsComments';
classes[] = 'JGithubPackageRepositories';
classes[] = 'JGithubPackageRepositoriesCollaborators';
classes[] = 'JGithubPackageRepositoriesComments';
classes[] = 'JGithubPackageRepositoriesCommits';
classes[] = 'JGithubPackageRepositoriesContents';
classes[] = 'JGithubPackageRepositoriesDownloads';
classes[] = 'JGithubPackageRepositoriesForks';
classes[] = 'JGithubPackageRepositoriesHooks';
classes[] = 'JGithubPackageRepositoriesKeys';
classes[] = 'JGithubPackageRepositoriesMerging';
classes[] = 'JGithubPackageRepositoriesStatistics';
classes[] = 'JGithubPackageRepositoriesStatuses';
classes[] = 'JGithubPackageSearch';
classes[] = 'JGithubPackageUsers';
classes[] = 'JGithubPackageUsersEmails';
classes[] = 'JGithubPackageUsersFollowers';
classes[] = 'JGithubPackageUsersKeys';
classes[] = 'JGithubRefs';
classes[] = 'JGithubStatuses';
classes[] = 'JGoogle';
classes[] = 'JGoogleAuth';
classes[] = 'JGoogleAuthOauth2';
classes[] = 'JGoogleData';
classes[] = 'JGoogleDataAdsense';
classes[] = 'JGoogleDataCalendar';
classes[] = 'JGoogleDataPicasa';
classes[] = 'JGoogleDataPicasaAlbum';
classes[] = 'JGoogleDataPicasaPhoto';
classes[] = 'JGoogleDataPlus';
classes[] = 'JGoogleDataPlusActivities';
classes[] = 'JGoogleDataPlusComments';
classes[] = 'JGoogleDataPlusPeople';
classes[] = 'JGoogleEmbed';
classes[] = 'JGoogleEmbedAnalytics';
classes[] = 'JGoogleEmbedMaps';
classes[] = 'JGrid';
classes[] = 'JHelp';
classes[] = 'JHelper';
classes[] = 'JHelperContent';
classes[] = 'JHelperContenthistory';
classes[] = 'JHelperMedia';
classes[] = 'JHelperRoute';
classes[] = 'JHelperTags';
classes[] = 'JHelperUsergroups';
classes[] = 'JHtml';
classes[] = 'JHtmlAccess';
classes[] = 'JHtmlActionsDropdown';
classes[] = 'JHtmlBatch';
classes[] = 'JHtmlBehavior';
classes[] = 'JHtmlBootstrap';
classes[] = 'JHtmlCategory';
classes[] = 'JHtmlContent';
classes[] = 'JHtmlContentLanguage';
classes[] = 'JHtmlDate';
classes[] = 'JHtmlDebug';
classes[] = 'JHtmlDropdown';
classes[] = 'JHtmlEmail';
classes[] = 'JHtmlForm';
classes[] = 'JHtmlFormbehavior';
classes[] = 'JHtmlGrid';
classes[] = 'JHtmlIcons';
classes[] = 'JHtmlJGrid';
classes[] = 'JHtmlJquery';
classes[] = 'JHtmlLinks';
classes[] = 'JHtmlList';
classes[] = 'JHtmlMenu';
classes[] = 'JHtmlNumber';
classes[] = 'JHtmlRules';
classes[] = 'JHtmlSearchtools';
classes[] = 'JHtmlSelect';
classes[] = 'JHtmlSidebar';
classes[] = 'JHtmlSliders';
classes[] = 'JHtmlSortablelist';
classes[] = 'JHtmlString';
classes[] = 'JHtmlTabs';
classes[] = 'JHtmlTag';
classes[] = 'JHtmlTel';
classes[] = 'JHtmlUser';
classes[] = 'JHttp';
classes[] = 'JHttpFactory';
classes[] = 'JHttpResponse';
classes[] = 'JHttpTransport';
classes[] = 'JHttpTransportCurl';
classes[] = 'JHttpTransportSocket';
classes[] = 'JHttpTransportStream';
classes[] = 'JHttpWrapperFactory';
classes[] = 'JImage';
classes[] = 'JImageFilter';
classes[] = 'JImageFilterBackgroundfill';
classes[] = 'JImageFilterBrightness';
classes[] = 'JImageFilterContrast';
classes[] = 'JImageFilterEdgedetect';
classes[] = 'JImageFilterEmboss';
classes[] = 'JImageFilterGrayscale';
classes[] = 'JImageFilterNegate';
classes[] = 'JImageFilterSketchy';
classes[] = 'JImageFilterSmooth';
classes[] = 'JInput';
classes[] = 'JInputCli';
classes[] = 'JInputCookie';
classes[] = 'JInputFiles';
classes[] = 'JInputJSON';
classes[] = 'JInstaller';
classes[] = 'JInstallerAdapter';
classes[] = 'JInstallerAdapterComponent';
classes[] = 'JInstallerAdapterFile';
classes[] = 'JInstallerAdapterLanguage';
classes[] = 'JInstallerAdapterLibrary';
classes[] = 'JInstallerAdapterModule';
classes[] = 'JInstallerAdapterPackage';
classes[] = 'JInstallerAdapterPlugin';
classes[] = 'JInstallerAdapterTemplate';
classes[] = 'JInstallerComponent';
classes[] = 'JInstallerExtension';
classes[] = 'JInstallerFile';
classes[] = 'JInstallerHelper';
classes[] = 'JInstallerLanguage';
classes[] = 'JInstallerLibrary';
classes[] = 'JInstallerManifest';
classes[] = 'JInstallerManifestLibrary';
classes[] = 'JInstallerManifestPackage';
classes[] = 'JInstallerModule';
classes[] = 'JInstallerPackage';
classes[] = 'JInstallerPlugin';
classes[] = 'JInstallerScript';
classes[] = 'JInstallerTemplate';
classes[] = 'JKeychain';
classes[] = 'JLanguage';
classes[] = 'JLanguageAssociations';
classes[] = 'JLanguageHelper';
classes[] = 'JLanguageMultilang';
classes[] = 'JLanguageStemmer';
classes[] = 'JLanguageStemmerPorteren';
classes[] = 'JLanguageTransliterate';
classes[] = 'JLanguageWrapperHelper';
classes[] = 'JLanguageWrapperText';
classes[] = 'JLanguageWrapperTransliterate';
classes[] = 'JLayout';
classes[] = 'JLayoutBase';
classes[] = 'JLayoutFile';
classes[] = 'JLayoutHelper';
classes[] = 'JLDAP';
classes[] = 'JLess';
classes[] = 'JLessFormatterJoomla';
classes[] = 'JLibraryHelper';
classes[] = 'JLinkedin';
classes[] = 'JLinkedinCommunications';
classes[] = 'JLinkedinCompanies';
classes[] = 'JLinkedinGroups';
classes[] = 'JLinkedinJobs';
classes[] = 'JLinkedinOauth';
classes[] = 'JLinkedinObject';
classes[] = 'JLinkedinPeople';
classes[] = 'JLinkedinStream';
classes[] = 'JLoader';
classes[] = 'JLog';
classes[] = 'JLogEntry';
classes[] = 'JLogger';
classes[] = 'JLogLogger';
classes[] = 'JLogLoggerCallback';
classes[] = 'JLogLoggerDatabase';
classes[] = 'JLogLoggerEcho';
classes[] = 'JLogLoggerFormattedtext';
classes[] = 'JLogLoggerMessagequeue';
classes[] = 'JLogLoggerSyslog';
classes[] = 'JLogLoggerW3c';
classes[] = 'JMail';
classes[] = 'JMailHelper';
classes[] = 'JMailWrapperHelper';
classes[] = 'JMediawiki';
classes[] = 'JMediawikiCategories';
classes[] = 'JMediawikiHttp';
classes[] = 'JMediawikiImages';
classes[] = 'JMediawikiLinks';
classes[] = 'JMediawikiObject';
classes[] = 'JMediawikiPages';
classes[] = 'JMediawikiSearch';
classes[] = 'JMediawikiSites';
classes[] = 'JMediawikiUsers';
classes[] = 'JMenu';
classes[] = 'JMenuAdministrator';
classes[] = 'JMenuItem';
classes[] = 'JMenuSite';
classes[] = 'JMicrodata';
classes[] = 'JModel';
classes[] = 'JModelAdmin';
classes[] = 'JModelBase';
classes[] = 'JModelDatabase';
classes[] = 'JModelForm';
classes[] = 'JModelItem';
classes[] = 'JModelLegacy';
classes[] = 'JModelList';
classes[] = 'JModuleHelper';
classes[] = 'JNode';
classes[] = 'JOAuth1Client';
classes[] = 'JOAuth2Client';
classes[] = 'JObject';
classes[] = 'JObservable';
classes[] = 'JObservableInterface';
classes[] = 'JObserver';
classes[] = 'JObserverInterface';
classes[] = 'JObserverMapper';
classes[] = 'JObserverUpdater';
classes[] = 'JObserverUpdaterInterface';
classes[] = 'JObserverWrapperMapper';
classes[] = 'JOpenSearchImage';
classes[] = 'JOpenSearchUrl';
classes[] = 'JOpenstreetmap';
classes[] = 'JOpenstreetmapChangesets';
classes[] = 'JOpenstreetmapElements';
classes[] = 'JOpenstreetmapGps';
classes[] = 'JOpenstreetmapInfo';
classes[] = 'JOpenstreetmapOauth';
classes[] = 'JOpenstreetmapObject';
classes[] = 'JOpenstreetmapUser';
classes[] = 'JPagination';
classes[] = 'JPaginationObject';
classes[] = 'JPath';
classes[] = 'JPathway';
classes[] = 'JPathwaySite';
classes[] = 'JPlatform';
classes[] = 'JPlugin';
classes[] = 'JPluginHelper';
classes[] = 'JProfiler';
classes[] = 'JRequest';
classes[] = 'JResponse';
classes[] = 'JResponseJson';
classes[] = 'JRoute';
classes[] = 'JRouter';
classes[] = 'JRouterAdministrator';
classes[] = 'JRouterSite';
classes[] = 'JRouteWrapperRoute';
classes[] = 'JRule';
classes[] = 'JRules';
classes[] = 'JSchemaChangeitem';
classes[] = 'JSchemaChangeitemMysql';
classes[] = 'JSchemaChangeitemPostgresql';
classes[] = 'JSchemaChangeitemSqlsrv';
classes[] = 'JSchemaChangeset';
classes[] = 'JSearchHelper';
classes[] = 'JSession';
classes[] = 'JSessionExceptionUnsupported';
classes[] = 'JSessionHandlerInterface';
classes[] = 'JSessionHandlerJoomla';
classes[] = 'JSessionHandlerNative';
classes[] = 'JSessionStorage';
classes[] = 'JSessionStorageApc';
classes[] = 'JSessionStorageDatabase';
classes[] = 'JSessionStorageMemcache';
classes[] = 'JSessionStorageMemcached';
classes[] = 'JSessionStorageNone';
classes[] = 'JSessionStorageWincache';
classes[] = 'JSessionStorageXcache';
classes[] = 'JSimplecrypt';
classes[] = 'JSimplepieFactory';
classes[] = 'JsonSerializable';
classes[] = 'JStream';
classes[] = 'JStreamString';
classes[] = 'JString';
classes[] = 'JStringController';
classes[] = 'JStringPunycode';
classes[] = 'JStringWrapperNormalise';
classes[] = 'JStringWrapperPunycode';
classes[] = 'JTable';
classes[] = 'JTableAsset';
classes[] = 'JTableCategory';
classes[] = 'JTableContent';
classes[] = 'JTableContenthistory';
classes[] = 'JTableContenttype';
classes[] = 'JTableCorecontent';
classes[] = 'JTableExtension';
classes[] = 'JTableInterface';
classes[] = 'JTableLanguage';
classes[] = 'JTableMenu';
classes[] = 'JTableMenuType';
classes[] = 'JTableModule';
classes[] = 'JTableNested';
classes[] = 'JTableObserver';
classes[] = 'JTableObserverContenthistory';
classes[] = 'JTableObserverTags';
classes[] = 'JTableSession';
classes[] = 'JTableUcm';
classes[] = 'JTableUpdate';
classes[] = 'JTableUpdatesite';
classes[] = 'JTableUser';
classes[] = 'JTableUsergroup';
classes[] = 'JTableViewlevel';
classes[] = 'JText';
classes[] = 'JToolbar';
classes[] = 'JToolbarButton';
classes[] = 'JToolbarButtonConfirm';
classes[] = 'JToolbarButtonCustom';
classes[] = 'JToolbarButtonHelp';
classes[] = 'JToolbarButtonLink';
classes[] = 'JToolbarButtonPopup';
classes[] = 'JToolbarButtonSeparator';
classes[] = 'JToolbarButtonSlider';
classes[] = 'JToolbarButtonStandard';
classes[] = 'JTree';
classes[] = 'JTwitter';
classes[] = 'JTwitterBlock';
classes[] = 'JTwitterDirectmessages';
classes[] = 'JTwitterFavorites';
classes[] = 'JTwitterFriends';
classes[] = 'JTwitterHelp';
classes[] = 'JTwitterLists';
classes[] = 'JTwitterOAuth';
classes[] = 'JTwitterObject';
classes[] = 'JTwitterPlaces';
classes[] = 'JTwitterProfile';
classes[] = 'JTwittersearch';
classes[] = 'JTwitterStatuses';
classes[] = 'JTwitterTrends';
classes[] = 'JTwitterUsers';
classes[] = 'JUcm';
classes[] = 'JUcmBase';
classes[] = 'JUcmContent';
classes[] = 'JUcmType';
classes[] = 'JUpdate';
classes[] = 'JUpdateAdapter';
classes[] = 'JUpdater';
classes[] = 'JUpdaterCollection';
classes[] = 'JUpdaterExtension';
classes[] = 'JUri';
classes[] = 'JUser';
classes[] = 'JUserHelper';
classes[] = 'JUserWrapperHelper';
classes[] = 'JUtility';
classes[] = 'JVersion';
classes[] = 'JView';
classes[] = 'JViewBase';
classes[] = 'JViewCategories';
classes[] = 'JViewCategory';
classes[] = 'JViewCategoryfeed';
classes[] = 'JViewHtml';
classes[] = 'JViewLegacy';
classes[] = 'JWeb';
classes[] = 'JWebClient';
classes[] = 'JXMLElement';
classes[] = 'LogException';

interfaces[] = ;

traits[] = ;

namespaces[] = '\Joomla';
classes[] = 

interfaces[] = ;

traits[] = ;

namespaces[] = '\Fuel';
classes[] = 

interfaces[] = ;

traits[] = ;

namespaces[] = '\ez';
constants[] = ''

classes[] = 'GeneralUtility';

interfaces[] = ;

traits[] = ;

namespaces[] = '\concrete';
classes[] = 

interfaces[] = ;

traits[] = ;

namespaces[] = '\Symfony';
namespaces[] = '\Sensio';
;phpunit
classes[] = "\phpunit_framework_assert";
classes[] = "\phpunit_framework_testcase";
classes[] = "\phpunit\framework\testcase";
classes[] = "\phpunit\framework\testsuite";

;atoum
classes[] = "\atoum\test";

;simpletest
classes[] = "\unittestcase";

;drupal
classes[] = '\drupal\tests\unittestcase';

;nette tester
; no classes

;symfony
classes[] = "\symfony\bundle\frameworkbundle\test\webtestcase";
classes[] = "\symfony\bundle\frameworkbundle\test\kerneltestcase";

;luya
classes[] = "\luya\testsuite\cases\basetestsuite";
classes[] = "\luya\testsuite\cases\cmsblockgrouptestcase";
classes[] = "\luya\testsuite\cases\cmsblocktestcase";
classes[] = "\luya\testsuite\cases\consoleapplicationtestcase";
classes[] = "\luya\testsuite\cases\ngresttestcase";
classes[] = "\luya\testsuite\cases\servertestcase";
classes[] = "\luya\testsuite\cases\webapplicationtestcase";// 5.3
functions[] = call_user_method 
functions[] = call_user_method_array 
functions[] = define_syslog_variables 
functions[] = ereg 
functions[] = ereg_replace  
functions[] = eregi 
functions[] = eregi_replace 
functions[] = set_magic_quotes_runtime 
functions[] = session_register 
functions[] = session_unregister  
functions[] = session_is_registered 
functions[] = set_socket_blocking 
functions[] = split 
functions[] = spliti 
functions[] = sql_regcase 
functions[] = mysql_db_query 
functions[] = mysql_escape_string 

// 5.4
functions[] = mcrypt_generic_end
functions[] = mysql_list_dbs

// 5.5
functions[] = mcrypt_cbc
functions[] = mcrypt_cfb
functions[] = mcrypt_ecb
functions[] = mcrypt_ofb

// 5.6

// 7.0
functions[] = 'magic_quotes_runtime';
functions[] = 'set_magic_quotes_runtime';
functions[] = 'call_user_method';
functions[] = 'call_user_method_array';
functions[] = 'set_socket_blocking';
functions[] = 'ereg';
functions[] = 'ereg_replace';
functions[] = 'eregi';
functions[] = 'eregi_replace';
functions[] = 'split';
functions[] = 'spliti';
functions[] = 'sql_regcase';
functions[] = 'datefmt_set_timezone_id';

// 7.1

// 7.2

// 7.3

// 7.4

// 8.0
functions[] = 'image2wbmp';
functions[] = 'png2wbmp',;
functions[] = 'jpeg2wbmp';
functions[] = 'ldap_sort';
functions[] = 'fgetss';
functions[] = 'each';
functions[] = 'create_function';
functions[] = 'mbregex_encoding';
functions[] = 'mbereg';
functions[] = 'mberegi';
functions[] = 'mbereg_replace';
functions[] = 'mberegi_replace';
functions[] = 'mbsplit';
functions[] = 'mbereg_match';
functions[] = 'mbereg_search';
functions[] = 'mbereg_search_pos';
functions[] = 'mbereg_search_regs';
functions[] = 'mbereg_search_init';
functions[] = 'mbereg_search_getregs';
functions[] = 'mbereg_search_getpos';
functions[] = 'mbereg_search_setpos';




// Also may be needed
//classes[] = 
//constants[] = 
//interfaces[] = functions[] = 'zend_monitor_pass_error';
functions[] = 'zend_monitor_custom_event';
functions[] = 'zend_monitor_custom_event_ex';
functions[] = 'zend_monitor_set_aggregation_hint';
functions[] = 'zend_monitor_event_reporting';

constants[] = 'ZEND_MONITOR_ET_JQ_DAEMON_HIGH_CONCURRENCY_LEVEL';
constants[] = 'ZEND_MONITOR_ET_JQ_JOB_EXEC_DELAY';
constants[] = 'ZEND_MONITOR_ET_JQ_JOB_EXEC_ERROR';
constants[] = 'ZEND_MONITOR_ET_JQ_JOB_LOGICAL_FAILURE';
constants[] = 'ZEND_MONITOR_ET_TRACER_FILE_WRITE_FAIL';
constants[] = 'ZEND_MONITOR_ETBM_ALL';
constants[] = 'ZEND_MONITOR_ETBM_CUSTOM';
constants[] = 'ZEND_MONITOR_ETBM_ET_TRACER_FILE_WRITE_FAIL';
constants[] = 'ZEND_MONITOR_ETBM_FUNC_ERR';
constants[] = 'ZEND_MONITOR_ETBM_FUNC_SLOW_EXEC';
constants[] = 'ZEND_MONITOR_ETBM_JAVA_EXP';
constants[] = 'ZEND_MONITOR_ETBM_JQ_JOB_EXEC_DELAY';
constants[] = 'ZEND_MONITOR_ETBM_JQ_JOB_EXEC_ERROR';
constants[] = 'ZEND_MONITOR_ETBM_JQ_JOB_LOGICAL_FAILURE';
constants[] = 'ZEND_MONITOR_ETBM_NONE';
constants[] = 'ZEND_MONITOR_ETBM_REQ_LARGE_MEM_USAGE';
constants[] = 'ZEND_MONITOR_ETBM_REQ_LARGE_OUT_SIZE';
constants[] = 'ZEND_MONITOR_ETBM_REQ_REL_LARGE_MEM_USAGE';
constants[] = 'ZEND_MONITOR_ETBM_REQ_REL_SLOW_EXEC';
constants[] = 'ZEND_MONITOR_ETBM_REQ_SLOW_EXEC';
constants[] = 'ZEND_MONITOR_ETBM_ZEND_ERR';
constants[] = 'ZEND_MONITOR_EVENT_SEVERITY_ERROR';
constants[] = 'ZEND_MONITOR_EVENT_SEVERITY_INFO';
constants[] = 'ZEND_MONITOR_EVENT_SEVERITY_WARNING';

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = 

constants[] = 

classes[] = weakref
classes[] = weakmap

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] =   wasm_read_binary
functions[] =   wasm_new_runtime
functions[] =   wasm_runtime_add_function
functions[] =   wasm_new_instance
functions[] =   wasm_get_function_signature
functions[] =   wasm_invoke_arguments_builder
functions[] =   wasm_invoke_arguments_builder_add_i32
functions[] =   wasm_invoke_arguments_builder_add_i64
functions[] =   wasm_invoke_arguments_builder_add_f32
functions[] =   wasm_invoke_arguments_builder_add_f64
functions[] =   wasm_invoke_function

constants[] = 'WASM_SIGNATURE_TYPE_I32';
constants[] = 'WASM_SIGNATURE_TYPE_I64';
constants[] = 'WASM_SIGNATURE_TYPE_F32';
constants[] = 'WASM_SIGNATURE_TYPE_F64';
constants[] = 'WASM_SIGNATURE_TYPE_VOID';


classes[] = 'Wasm\Instance'

interfaces[] = 

traits[] = 

namespaces[] = 'Wasm'

directives[] = 
classes[] = stdClass
classes[] = Exception
classes[] = ErrorException
classes[] = Error
classes[] = ParseError
classes[] = TypeError
classes[] = ArgumentCountError
classes[] = ArithmeticError
classes[] = DivisionByZeroError
classes[] = Closure
classes[] = Generator
classes[] = ClosedGeneratorException
classes[] = DateTime
classes[] = DateTimeImmutable
classes[] = DateTimeZone
classes[] = DateInterval
classes[] = DatePeriod
classes[] = LogicException
classes[] = BadFunctionCallException
classes[] = BadMethodCallException
classes[] = DomainException
classes[] = InvalidArgumentException
classes[] = LengthException
classes[] = OutOfRangeException
classes[] = RuntimeException
classes[] = OutOfBoundsException
classes[] = OverflowException
classes[] = RangeException
classes[] = UnderflowException
classes[] = UnexpectedValueException
classes[] = RecursiveIteratorIterator
classes[] = IteratorIterator
classes[] = FilterIterator
classes[] = RecursiveFilterIterator
classes[] = CallbackFilterIterator
classes[] = RecursiveCallbackFilterIterator
classes[] = ParentIterator
classes[] = LimitIterator
classes[] = CachingIterator
classes[] = RecursiveCachingIterator
classes[] = NoRewindIterator
classes[] = AppendIterator
classes[] = InfiniteIterator
classes[] = RegexIterator
classes[] = RecursiveRegexIterator
classes[] = EmptyIterator
classes[] = RecursiveTreeIterator
classes[] = ArrayObject
classes[] = ArrayIterator
classes[] = RecursiveArrayIterator
classes[] = SplFileInfo
classes[] = DirectoryIterator
classes[] = FilesystemIterator
classes[] = RecursiveDirectoryIterator
classes[] = GlobIterator
classes[] = SplFileObject
classes[] = SplTempFileObject
classes[] = SplDoublyLinkedList
classes[] = SplQueue
classes[] = SplStack
classes[] = SplHeap
classes[] = SplMinHeap
classes[] = SplMaxHeap
classes[] = SplPriorityQueue
classes[] = SplFixedArray
classes[] = SplObjectStorageclasses[] = '__consrtuct';
classes[] = '__constructor';
classes[] = '__construtc';
classes[] = '__consturct';
classes[] = '__contsruct';
classes[] = '__cosntruct';
classes[] = '__desctructor';
classes[] = '_call';
classes[] = '_callstatic';
classes[] = '_consrtuct';
classes[] = '_construct';
classes[] = '_debuginfo';
classes[] = '_desctruct';
classes[] = '_destruct';
classes[] = '_get';
classes[] = '_invoke';
classes[] = '_set';
classes[] = '_sleep';
classes[] = '_wakeup';
classes[] = 'call';
classes[] = 'callstatic';
classes[] = 'clone';
classes[] = 'construct';
classes[] = 'consturct';
classes[] = 'debuginfo';
classes[] = 'destruct';
classes[] = 'invoke';
classes[] = 'isset';
classes[] = 'set_state';
classes[] = 'sleep';
classes[] = 'tostring';
classes[] = 'unset';
classes[] = 'wakeup';

variables[] = '$tihs';
variables[] = '$_PSOT';
variables[] = '$_COOKIES';
variables[] = '$_COOKI';
variables[] = '$_KOOKIE';
variables[] = '$_FILE';
variables[] = '$_SESION';
variables[] = '$_SESIONS';
variables[] = '$_SESSIONS';

functioncalls[] = 'arary';
functioncalls[] = 'sprtinf';

constants[] = 'E_ERORR';
constants[] = 'ENT_QUOTE';
constants[] = 'ENT_QOUTES';
constants[] = 'ENT_QUTOES';
constants[] = 'PHP_VESRION';
constants[] = 'DIRECOTRY_SEPARATOR';
constants[] = 'DIRECTROY_SEPARATOR';
constants[] = 'PHP_ELO';
constants[] = 'PHP_OEL';
constants[] = '__FILES__';
functions[] = 

constants[] = 

classes[] = 'Decimal\Decimal';

interfaces[] = 

traits[] = 

namespaces[] = 'Decimal';

directives[] = 



{
"file":  {"path":true },
"http":  {"path":true },
"ftp":   {"path":true },
"php":   {"path":false },
"zlib":  {"path":true },
"data":  {"path":false },
"glob":  {"path":false },
"phar":  {"path":true },
"ssh2":  {"path":false },
"rar":   {"path":true },
"ogg":   {"path":true },
"expect":{"path":false }
}incoming[] = '$_POST';
incoming[] = '$_GET';
incoming[] = '$_ENV';
incoming[] = '$_REQUEST';
incoming[] = '$_FILES';
incoming[] = '$_COOKIE';
incoming[] = '$PHP_SELF';
incoming[] = '$_SERVER';
incoming[] = '$HTTP_RAW_POST_DATA';
functions[] = ftp_alloc
functions[] = ftp_cdup
functions[] = ftp_chdir
functions[] = ftp_chmod
functions[] = ftp_close
functions[] = ftp_connect
functions[] = ftp_delete
functions[] = ftp_exec
functions[] = ftp_fget
functions[] = ftp_fput
functions[] = ftp_get_option
functions[] = ftp_get
functions[] = ftp_login
functions[] = ftp_mdtm
functions[] = ftp_mkdir
functions[] = ftp_nb_continue
functions[] = ftp_nb_fget
functions[] = ftp_nb_fput
functions[] = ftp_nb_get
functions[] = ftp_nb_put
functions[] = ftp_nlist
functions[] = ftp_pasv
functions[] = ftp_put
functions[] = ftp_pwd
functions[] = ftp_quit
functions[] = ftp_raw
functions[] = ftp_rawlist
functions[] = ftp_rename
functions[] = ftp_rmdir
functions[] = ftp_set_option
functions[] = ftp_site
functions[] = ftp_size
functions[] = ftp_ssl_connect
functions[] = ftp_systype

classes[] = 

constants[] = 'FTP_ASCII';
constants[] = 'FTP_TEXT';
constants[] = 'FTP_BINARY';
constants[] = 'FTP_IMAGE';
constants[] = 'FTP_AUTORESUME';
constants[] = 'FTP_TIMEOUT_SEC';
constants[] = 'FTP_AUTOSEEK';
constants[] = 'FTP_FAILED';
constants[] = 'FTP_FINISHED';
constants[] = 'FTP_MOREDATA';

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = finfo_buffer
functions[] = finfo_close
functions[] = finfo_file
functions[] = finfo_open
functions[] = finfo_set_flags
functions[] = mime_content_type

constants[] = 'FILEINFO_NONE';
constants[] = 'FILEINFO_SYMLINK';
constants[] = 'FILEINFO_MIME';
constants[] = 'FILEINFO_MIME_TYPE';
constants[] = 'FILEINFO_MIME_ENCODING';
constants[] = 'FILEINFO_DEVICES';
constants[] = 'FILEINFO_CONTINUE';
constants[] = 'FILEINFO_PRESERVE_ATIME';
constants[] = 'FILEINFO_RAW';

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

constants[] = 'SOAP_1_1';
constants[] = 'SOAP_1_2';
constants[] = 'SOAP_PERSISTENCE_SESSION';
constants[] = 'SOAP_PERSISTENCE_REQUEST';
constants[] = 'SOAP_FUNCTIONS_ALL';
constants[] = 'SOAP_ENCODED';
constants[] = 'SOAP_LITERAL';
constants[] = 'SOAP_RPC';
constants[] = 'SOAP_DOCUMENT';
constants[] = 'SOAP_ACTOR_NEXT';
constants[] = 'SOAP_ACTOR_NONE';
constants[] = 'SOAP_ACTOR_UNLIMATERECEIVER';
constants[] = 'SOAP_COMPRESSION_ACCEPT';
constants[] = 'SOAP_COMPRESSION_GZIP';
constants[] = 'SOAP_COMPRESSION_DEFLATE';
constants[] = 'SOAP_AUTHENTICATION_BASIC';
constants[] = 'SOAP_AUTHENTICATION_DIGEST';
constants[] = 'UNKNOWN_TYPE';
constants[] = 'XSD_STRING';
constants[] = 'XSD_BOOLEAN';
constants[] = 'XSD_DECIMAL';
constants[] = 'XSD_FLOAT';
constants[] = 'XSD_DOUBLE';
constants[] = 'XSD_DURATION';
constants[] = 'XSD_DATETIME';
constants[] = 'XSD_TIME';
constants[] = 'XSD_DATE';
constants[] = 'XSD_GYEARMONTH';
constants[] = 'XSD_GYEAR';
constants[] = 'XSD_GMONTHDAY';
constants[] = 'XSD_GDAY';
constants[] = 'XSD_GMONTH';
constants[] = 'XSD_HEXBINARY';
constants[] = 'XSD_BASE64BINARY';
constants[] = 'XSD_ANYURI';
constants[] = 'XSD_QNAME';
constants[] = 'XSD_NOTATION';
constants[] = 'XSD_NORMALIZEDSTRING';
constants[] = 'XSD_TOKEN';
constants[] = 'XSD_LANGUAGE';
constants[] = 'XSD_NMTOKEN';
constants[] = 'XSD_NAME';
constants[] = 'XSD_NCNAME';
constants[] = 'XSD_ID';
constants[] = 'XSD_IDREF';
constants[] = 'XSD_IDREFS';
constants[] = 'XSD_ENTITY';
constants[] = 'XSD_ENTITIES';
constants[] = 'XSD_INTEGER';
constants[] = 'XSD_NONPOSITIVEINTEGER';
constants[] = 'XSD_NEGATIVEINTEGER';
constants[] = 'XSD_LONG';
constants[] = 'XSD_INT';
constants[] = 'XSD_SHORT';
constants[] = 'XSD_BYTE';
constants[] = 'XSD_NONNEGATIVEINTEGER';
constants[] = 'XSD_UNSIGNEDLONG';
constants[] = 'XSD_UNSIGNEDINT';
constants[] = 'XSD_UNSIGNEDSHORT';
constants[] = 'XSD_UNSIGNEDBYTE';
constants[] = 'XSD_POSITIVEINTEGER';
constants[] = 'XSD_NMTOKENS';
constants[] = 'XSD_ANYTYPE';
constants[] = 'XSD_ANYXML';
constants[] = 'APACHE_MAP';
constants[] = 'SOAP_ENC_OBJECT';
constants[] = 'SOAP_ENC_ARRAY';
constants[] = 'XSD_1999_TIMEINSTANT';
constants[] = 'XSD_NAMESPACE';
constants[] = 'XSD_1999_NAMESPACE';
constants[] = 'SOAP_SINGLE_ELEMENT_ARRAYS';
constants[] = 'SOAP_WAIT_ONE_WAY_CALLS';
constants[] = 'SOAP_USE_XSI_ARRAY_TYPE';
constants[] = 'WSDL_CACHE_NONE';
constants[] = 'WSDL_CACHE_DISK';
constants[] = 'WSDL_CACHE_MEMORY';
constants[] = 'WSDL_CACHE_BOTH';

functions[] = use_soap_error_handler
functions[] = is_soap_fault

classes[] = SoapClient
classes[] = SoapVar
classes[] = SoapServer
classes[] = SoapFault
classes[] = SoapParam
classes[] = SoapHeader

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = 'array_search'
functions[] = 'collator_compare'
functions[] = 'collator_get_sort_key'
functions[] = 'current'
functions[] = 'fgetc'
functions[] = 'file_get_contents'
functions[] = 'file_put_contents'
functions[] = 'fread'
functions[] = 'iconv_strpos'
functions[] = 'iconv_strrpos'
functions[] = 'imagecolorallocate'
functions[] = 'imagecolorallocatealpha'
functions[] = 'mb_strlen'
functions[] = 'next'
functions[] = 'pcntl_getpriority'
functions[] = 'preg_match'
functions[] = 'prev'
functions[] = 'readdir'
functions[] = 'stripos'
functions[] = 'strpos'
functions[] = 'strripos'
functions[] = 'strrpos'
functions[] = 'strtok'
functions[] = 'curl_exec'

;./eventbuffer.search.html:return Boolean <strong><code>FALSE</code></strong>, but may also return a non_Boolean value which
;./eventbuffer.searcheol.html:return Boolean <strong><code>FALSE</code></strong>, but may also return a non-Boolean value which
;./pdo.exec.html:return Boolean <strong><code>FALSE</code></strong>, but may also return a non-Boolean value which
;./splfileobject.fgetc.html:return Boolean <strong><code>FALSE</code></strong>, but may also return a non-Boolean value which
SQLite format 3   @   	q                                                            	q .4  
/ 	
	/	f                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               4	;tableversionsversions
CREATE TABLE "versions" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "component_id" integer,
	 "version" text,
	CONSTRAINT "components" FOREIGN KEY ("component_id") REFERENCES "components" ("id") ON DELETE CASCADE,
	CONSTRAINT "versions" UNIQUE (component_id ASC, version ASC)
)/
C indexsqlite_autoindex_versions_1versionsq=tabletraitstraits	CREATE TABLE "traits" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "namespace_id" integer,
	 "traitname" text,
	CONSTRAINT "namespaces" FOREIGN KEY ("namespace_id") REFERENCES "namespaces" ("id") ON DELETE CASCADE
)A!!MtablenamespacesnamespacesCREATE TABLE "namespaces" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "version_id" integer NOT NULL,
	 "namespace" text,
	CONSTRAINT "components" FOREIGN KEY ("version_id") REFERENCES "versions" ("id") ON DELETE CASCADE,
	CONSTRAINT "namespaces" UNIQUE (version_id ASC, namespace ASC)
)3G! indexsqlite_autoindex_namespaces_1namespaces       !!MtableinterfacesinterfacesCREATE TABLE "interfaces" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "namespace_id" integer,
	 "interfacename" text,
	CONSTRAINT "namespaces" FOREIGN KEY ("namespace_id") REFERENCES "namespaces" ("id") ON DELETE CASCADE
)}ItablefunctionsfunctionsCREATE TABLE "functions" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "namespace_id" integer,
	 "functionname" text,
	CONSTRAINT "namespaces" FOREIGN KEY ("namespace_id") REFERENCES "namespaces" ("id") ON DELETE CASCADE
)$!!tablecomponentscomponentsCREATE TABLE "components" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "vendor" text,
	 "component" text,
	 "last_check" integer
)P++Ytablesqlite_sequencesqlite_sequenceCREATE TABLE sqlite_sequence(name,seq)t?tableclassesclassesCREATE TABLE "classes" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "namespace_id" integer,
	 "classname" text,
	CONSTRAINT "namespaces" FOREIGN KEY ("namespace_id") REFERENCES "namespaces" ("id") ON DELETE CASCADE
)  n   |vpjd^XRLF@:4.("
ztnhb\VPJD>82,& ~xrlf`ZTNHB<60*$|ung`YRKD=6/(!yrkd]VOHA:3,%	


















}
v
o
h
a
Z
S
L
E
>
7
0
)
"



																				z	s	l	e	^	W	P	I	B	;	4	-	&				
	~wpib[TMF?81*# {tmf_XQJC<5.' xqjc\UNG@92+$|une_AtLeast  C Phake_CallRecorder_Verifier  C Phake_CallRecorder_Recorder  C Phake_CallRecorder_Position% M Phake_CallRecorder_OrderVerifier 
 C Phake_CallRecorder_CallInfo'	 Q Phake_CallRecorder_CallExpectation ; Phake_CallRecorder_Call ; Phake_Annotation_Reader% M Phake_Annotation_MockInitializer 'UnaryNodeTest NodeTest %NameNodeTest Obj +GetAttrNodeTest  -FunctionNodeTest -ConstantNodeTest~ 3ConditionalNodeTest} )BinaryNodeTest| 'ArrayNodeTest{ /ArgumentsNodeTestz -A  Y  L           (  V    F  {    6  p  ,  "  (  %    y           }  t  k  s  k  V  \  N  4  ~  }  |  {  z  y~  x^  wR  v[  u_  t_  sY  rW  qN  pF  oO  nG  m2  l7  k)  j  ip  hj  gb  fe  eg  d[  cs  b  a  `  _|  ^U  ]G  \'  [  Zo  YY  X_  W
  V/  Uh  T!  S!  R"  Q4  PC  O)  ND  MT  L9  KR  Jc  I?  H  G  FZ  E0  DL  CT  B  A
  @{  ?b  >7  =  <W  ;4  :	  9o  8?  7  6  5  4V  3)  2|  1R  0   /	  .A  -m  ,  +A  *f  )  (}  'L  &h  %"  $X  #|  "h  !J   7  :  `    K    	  k  r      6  5  d    X    A  {      <  
@  	H  s  g  b  X  Y  7    ~   u   |      -   ;   S   K   @   I   0      }   g   j   m   p   F   K   l   	   )   S   {   ,   b      4   Y      k   _   ^   [   ߁D   ށ&   ݁   ܁y   ہZ   ځ7   ف^   ؁`   ׁD   ցN   ՁO   ԁw   Ӂl   ҁ~   с{   Ё'   ρ)   ΁:   ́Q   ́^   ˁp   ʁ{   ɁY   ȁP   ǁ;   Ɓ:   Ł=   āg   ÁD   V   }   $      ]   M   R   Z   f         (   1   #   .   +   3   ;   G   l   |         
      <   Z   G   *   %   (                      ^   O   C   =   '               |   w   z   t   s   R   6   )               	      d   2      y   x   k   b   Q   ~5   }O   |r   {   z|   yg   xD   w   vz   uS   t.   s   r   q   p   o   n   m,   l7   k.   j   il   hI   gF   f   eN   d   c\   bA   aJ   `l   _Z   ^G   ]Y   \a   [Q   Z3   Y)   X   W   V   U   T%   S"   R   Q~   Pg   O7   N   Md   LB   Ky   J0   Ib   HU   Gl   F   Ek   Dd   C@   B   Aj   @<   ?   >   =   <k   ;!   :Y   9   8@   7x   60   5U   4p   3   2'   1B   0l   /   .	   -V   ,R   +a   *q   )i   (F   '$   &   %~   $   #   "   !r    N   ,      ~   i   `   M   8   8   ?   @   `   M   P   I   +   (   M   [   v                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    traitsclasses !interfaces=!namespaces7versions"!components      sP-
hM7gK3]?'





k
S
:
 					}	f	U	>	#	jG&oR1{Y8jB! lH(lR2pO3pT7  ~ yiisoftyii2V (	} myclabsdeep-copyV '| #codeceptionspecifyV '{ #codeceptionverifyV '	z #symfonydom-crawlerV &y %symfonycss-selectorV &x #symfonybrowser-kitV &w %psrhttp-messageV &v !guzzlehttppsr7V &u !guzzlehttppromisesV &t !guzzlehttpguzzleV &s facebookwebdriverV &r ##codeceptioncodeceptionV &q 'php-diphpdoc-readerV $p php-diinvokerV #o php-diphp-diV #n !mnapolifront-yamlV #m phinepathV #l phineobserverV #k phineexceptionV #j phinepharV #i +erusevparsedown-extraV #h phpspecphp-diffV #jg phpspecphpspecV #]f ##znframeworkznframeworkV #,e %hamcresthamcrest-phpV "d mockerymockeryV "c 'zendframeworkzend-dbV ")b '3zendframeworkzend-authenticationV "a 'zendframeworkzend-domV "g"` '%zendframeworkzend-consoleV "e_ 'zendframeworkzend-testV "/(^ '1zendframeworkzend-modulemanagerV "] 'zendframeworkzend-logV !'\ 9zfcampuszf-content-negotiationV !a[ 'zendframeworkzend-viewV ![Z )zfcampuszf-api-problemV !'&Y '-zendframeworkzend-inputfilterV !	X 'zendframeworkzend-formV !W 'zendframeworkzend-mvcV  $V ')zendframeworkzend-validatorV  U 'zendframeworkzend-uriV  !T '#zendframeworkzend-loaderV  "S '%zendframeworkzend-escaperV  R 'zendframeworkzend-httpV   Q '!zendframeworkzend-cryptV  "P /bshafferoauth2-server-phpV  O mikey179vfsStreamV  N mikey179vfsstreamV  M guzzleguzzleV  L 'satooshiphp-coverallsV  !K +squizlabsphp_codesnifferV  J )zetacomponentsdocumentV  I )zetacomponentsbaseV  !H '#zendframeworkzend-stdlibV  )G '3zendframeworkzend-servicemanagerV  |%F '+zendframeworkzend-serializerV  zE 'zendframeworkzend-mathV  xD 'zendframeworkzend-jsonV  uC 'zendframeworkzend-i18nV  q!B '#zendframeworkzend-filterV  n'A '/zendframeworkzend-eventmanagerV  i!@ '#zendframeworkzend-configV  g ? '!zendframeworkzend-cacheV  d> twigtwigV  `= symfonyvalidatorV  [< #symfonytranslationV  W; symfonystopwatchV  T: seldjsonlintV  ;9 psrlogV  88 pimplepimpleV  67 phpoptionphpoptionV  4 6 '!phpdocumentorreflectionV  15 'phpdocumentorgraphvizV  *4 'phpdocumentorfilesetV  (#3 ''phpcollectionphpcollectionV  &2 !nikicphp-parserV  $1 monologmonologV  "0 khergeversionV   !/ '#justinrainbowjson-schemaV  . !jmsserializerV  - !jmsparser-libV  , jmsmetadataV  + !#herrera-iophar-updateV  * !herrera-iojsonV  ) erusevparsedownV  ( doctrinelexerV  ' #doctrineannotationsV  +& //container-interopcontainer-interopV  &% =cilexconsole-service-providerV  
$ cilexcilexV  	## ''phpdocumentorphpdocumentorV " pdependpdependV ! phpmdphpmdV   symfonyprocessV  symfonyfinderV  !symfonyfilesystemV $ 5symfonydependency-injectionV  symfonyconsoleV  symfonyconfigV |( Apiecestagehand-componentfactoryV u) Cpiecestagehand-alterationmonitorV r" 5piecestagehand-testrunnerV h symfonyyamlV c sebastianversionV a %sebastianglobal-stateV ^ #sebastianenvironmentV Z$ 5phpunitphpunit-mock-objectsV T  -phpunitphp-token-streamV O phpunitphp-timerV M! /phpunitphp-text-templateV K! /phpunitphp-file-iteratorV H! /phpunitphp-code-coverageV F phpspecprophecyV D) '3phpdocumentorreflection-docblockV B %doctrineinstantiatorV A
 phpunitphpunitV 9#	 /sebastianrecursion-contextV 8 sebastianexporterV 6 sebastiandiffV 4 !sebastiancomparatorV 2 phakephakeV -# 3symfonyexpression-languageV '  -symfonyevent-dispatcherV # 'piecestagehan  k  n  s    ~    ~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 w7    }wqke_YSMGA;5/)#{uoic]WQKE?93-'!	ysmga[UOIC=7       ,w [gPHPUnit_Framework_MockObject_Verifiable&v OgPHPUnit_Framework_MockObject_Stub8u sgPHPUnit_Framework_MockObject_Stub_MatcherCollection,t [gPHPUnit_Framework_MockObject_MockObject4s kgPHPUnit_Framework_MockObject_Matcher_Invocation+r YgPHPUnit_Framework_MockObject_Invokable,q [gPHPUnit_Framework_MockObject_Invocation+p YgPHPUnit_Framework_MockObject_Exception.o _gPHPUnit_Framework_MockObject_Builder_Stub9n ugPHPUnit_Framework_MockObject_Builder_ParametersMatch3m igPHPUnit_Framework_MockObject_Builder_Namespace9l ugPHPUnit_Framework_MockObject_Builder_MethodNameMatch/k agPHPUnit_Framework_MockObject_Builder_Match2j ggPHPUnit_Framework_MockObject_Builder_Identity#i IdPHPUnit_Runner_TestSuiteLoader#h IdPHPUnit_Framework_TestListenerg 9dPHPUnit_Framework_Test"f GdPHPUnit_Framework_SkippedTest%e MdPHPUnit_Framework_SelfDescribing d CdPHPUnit_Framework_RiskyTest%c MdPHPUnit_Framework_IncompleteTestb /dPHPUnit_Exceptiona _i` _b_ _a^ _iTemplate] _foo\ YFoo[ YBorZ ;YPHP_CodeCoverage_DriverY /WRevealerInterfaceX =WProphecySubjectInterfaceW /WProphecyInterfaceV -VPromiseInterfaceU 3UPredictionInterfaceT /TProphecyExceptionS 3SPredictionExceptionR RExceptionQ -QDoublerExceptionP 3NReflectionInterfaceO +LDoubleInterfaceN 3MClassPatchInterfaceM )HTokenInterfaceL 7-InstantiatorInterfaceK 1,ExceptionInterface#J I)PHPUnit_Runner_TestSuiteLoader#I I)PHPUnit_Framework_TestListenerH 9)PHPUnit_Framework_Test"G G)PHPUnit_Framework_SkippedTest%F M)PHPUnit_Framework_SelfDescribing E C)PHPUnit_Framework_RiskyTest%D M)PHPUnit_Framework_IncompleteTestC /)PHPUnit_ExceptionB (ExceptionA =&LongestCommonSubsequence#@ I"PhakeTest_TraversableInterface? ?"PhakeTest_StaticInterface> ?"PhakeTest_MockedInterface#= I"PhakeTest_ConstructorInterface#< I"Phake_Stubber_IAnswerContainer ; C"Phake_Stubber_IAnswerBinder: 7"Phake_Stubber_IAnswer"9 G"Phake_Matchers_IMethodMatcher-8 ]"Phake_Matchers_IChainableArgumentMatcher$7 K"Phake_Matchers_IArgumentMatcher6 #"Phake_IMock5 5"Phake_Client_IClient>4 "Phake_ClassGenerator_InvocationHandler_IInvocationHandler!3 E"Phake_ClassGenerator_ILoader%2 M"Phake_CallRecorder_IVerifierMode31 i"Phake_CallRecorder_IVerificationFailureHandler#0 I PhakeTest_TraversableInterface/ ? PhakeTest_StaticInterface. ? PhakeTest_MockedInterface#- I PhakeTest_ConstructorInterface#, I Phake_Stubber_IAnswerContainer + C Phake_Stubber_IAnswerBinder* 7 Phake_Stubber_IAnswer") G Phake_Matchers_IMethodMatcher-( ] Phake_Matchers_IChainableArgumentMatcher$' K Phake_Matchers_IArgumentMatcher& # Phake_IMock% 5 Phake_Client_IClient>$  Phake_ClassGenerator_InvocationHandler_IInvocationHandler!# E Phake_ClassGenerator_ILoader%" M Phake_CallRecorder_IVerifierMode3! i Phake_CallRecorder_IVerificationFailureHandler  5ParserCacheInterface( SExpressionFunctionProviderInterface 5ParserCacheInterface( SExpressionFunctionProviderInterface =EventSubscriberInterface =  8  =  ;  &      !  )      }  f  Y  P  J  F  C  <  3  >  d  
Y  	`  \  >    G  5  -  +  ,   1  /  2  #      u  j  f  j  s  p  P  R  N  V  8  >  B  D  4  8    g  i  o  h  u  p  o  j  i  e  ߷^  ޶a  ݵ^  ܴ>  ۳'  ڲ)  ٱ
  ذ  ׮u  ֭X  լc  ԫn  Ӫi  ҩ_  ѨV  Ч]  Ϧ\  Υd  ͤj  ̤  ˣ	  ʢ  ɡ  Ƞ  ǟ  ƞ  ŝ  Ĝ  Ú~  ~  `  v  z  t     .  *  /                             	  
  	  w      }wqke_YSMGA;5/)#{uoic]WQKE?93-'!	ysmga[UOIC=71+%gehand\TestRunner\CLI\TestRunnerApplication\Command4p iStagehand\TestRunner\CLI\TestRunnerApplicationo =Stagehand\TestRunner\CLI"n EwSymfony\Component\Yaml\Tests&m MwSymfony\Component\Yaml\Exceptionl 9wSymfony\Component\Yamlk /lSebastianBergmann/j _fSebastianBergmann\GlobalState\TestFixture#i GfSebastianBergmann\GlobalState#h GRSebastianBergmann\Environmentg global	f Fooe My\Spaced globalc Foo\Bazb 'Foo\BarScopeda #Other\Space` Foo\Bar_ global^ |global] vglobal\ pglobal[ 8bar\baz	Z 8FooY 8globalX '$Prophecy\UtilW /$Prophecy\ProphecyV -$Prophecy\PromiseU 3$Prophecy\Prediction!T C$Prophecy\Exception\Prophecy#S G$Prophecy\Exception\PredictionR 1$Prophecy\Exception Q A$Prophecy\Exception\DoublerP ;$Prophecy\Exception\Call%O K$Prophecy\Doubler\Generator\Node N A$Prophecy\Doubler\Generator!M C$Prophecy\Doubler\ClassPatchL -$Prophecy\DoublerK 3$Prophecy\ComparatorJ '$Prophecy\CallI $ProphecyH ;$Prophecy\Argument\TokenG /$Prophecy\ArgumentF 1$spec\Prophecy\UtilE 9$spec\Prophecy\ProphecyD 7$spec\Prophecy\PromiseC =$spec\Prophecy\Prediction&B M$spec\Prophecy\Exception\Prophecy(A Q$spec\Prophecy\Exception\Prediction%@ K$spec\Prophecy\Exception\Doubler"? E$spec\Prophecy\Exception\Call*> U$spec\Prophecy\Doubler\Generator\Node%= K$spec\Prophecy\Doubler\Generator< 7$spec\Prophecy\Doubler&; M$spec\Prophecy\Doubler\ClassPatch: =$spec\Prophecy\Comparator9 1$spec\Prophecy\Call8 '$spec\Prophecy"7 E$spec\Prophecy\Argument\Token6 9$spec\Prophecy\Argument5 =phpDocumentor\Reflection,4 YphpDocumentor\Reflection\DocBlock\Type+3 WphpDocumentor\Reflection\DocBlock\Tag'2 OphpDocumentor\Reflection\DocBlock(1 QDoctrineTest\InstantiatorTestAsset#0 GDoctrineTest\InstantiatorTest-/ [DoctrineTest\InstantiatorTest\Exception*. UDoctrineTest\InstantiatorPerformance- 7Doctrine\Instantiator%, KDoctrine\Instantiator\Exception	+ Foo* My\Space) global(( Q{SebastianBergmann\RecursionContext ' ArSebastianBergmann\Exporter & AlSebastianBergmann\Diff\LCS% 9lSebastianBergmann\Diff"$ EdSebastianBergmann\Comparator# -PhakeTest" -global! ;PhakeTest  ;global5 k Symfony\Component\ExpressionLanguage\Tests\Node9 s Symfony\Component\ExpressionLanguage\Tests\Fixtures0 a Symfony\Component\ExpressionLanguage\Tests6 m Symfony\Component\ExpressionLanguage\ParserCache/ _ Symfony\Component\ExpressionLanguage\Node* U Symfony\Component\ExpressionLanguage5 k Symfony\Component\ExpressionLanguage\Tests\Node9 s Symfony\Component\ExpressionLanguage\Tests\Fixtures0 a Symfony\Component\ExpressionLanguage\Tests6 m Symfony\Component\ExpressionLanguage\ParserCache/ _ Symfony\Component\ExpressionLanguage\Nod    5  e         *  4  C  F  ^  o  x      C  h  y    1  O  W  x    9  R  g    $  7  =  P  k  z      0  `    $  -  9  D  Q  k  w  q  ~s  }	  |%  {E  zK  yi  x  wG  vU  uY  t	  s=  ru  q1  pb  o  nG  mx  l&  k[  j  iE  h|  g,  fX  e  dG  cY  bl  aq  `x  _
  ^  ]  \,  [I  Z  Y0  X\  W  V@  UL  TJ  SO  RW  Qd  P\  Oj  N{  M  L4  K3  J7  ID  HF  GR  FM  EW  D\  C  BE  A|  @"  ?\  >  =5  <i  ;"  :F  9  8.  7f  6  5#  4[  3
  2  1$  0\  /  ."  -  ,#  +)  */  )8  (;  'H  &L  %r  $  #1  "F  !q      o9 d4u\8 ^0`0



g
1			~	E	qAtIo-GT#OzO+W0  2#sdXG  ' EasyCSV\Tests  'I WCartalyst\Sentry\Groups\Kohana!  ! <Symfony\CS%  "? Illuminate\Database\Query  -U 5Behat\Testwork\Environment\Exception#8  %E Behat\Testwork\Specification%  .W Behat\Behat\Definition\Pattern\Policy#\  / WordPlate\Console/  !?Aws\Tests\Swf\Integrationa  ;Aws\StorageGateway\Enum  &IAws\Tests\SimpleDb\IntegrationD  $EAws\S3\Model\MultipartUpload  ;[Aws\S3\Exception\ParserV  1}Doctrine\ORM\Query%4  $E|jSymfony\Component\Yaml\Tests  ;s|jSymfony\Component\Security\Core\Authorization\Voter/  G	|jSymfony\Component\HttpFoundation\Tests\Session\Storage\Handler
  0]|jSymfony\Component\DomCrawler\Tests\Field
  N|jSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FormLoginBundle
<  ,U|jSymfony\Bridge\Propel1\Security\User	  ,U|]Symfony\Component\Translation\DumperP  2a|]Symfony\Component\Routing\Tests\Annotation  *Q|]Symfony\Component\Form\Tests\Guess  %G|]Symfony\Component\CssSelectorn  -W|]Symfony\Bundle\SecurityBundle\Command  C|]Symfony\Bridge\Doctrine\Tests\DependencyInjection\Compiler  /[|NSymfony\Component\Translation\Catalogue  /[|NSymfony\Component\Security\Core\Encoder]  1_|NSymfony\Component\Intl\Data\Bundle\Writer  =w|NSymfony\Component\Form\Tests\Extension\Validator\Type  8m|NSymfony\Component\ExpressionLanguage\ParserCache}  =w|NSymfony\Component\Config\Tests\Fixtures\Configuration*  V'|NSymfony\Bundle\SecurityBundle\Tests\DependencyInjection\Fixtures\UserProvider  &I|NSymfony\Bridge\Twig\Tests\Node  8m|,Symfony\Component\Validator\Tests\Mapping\Loader(  $E|,Symfony\Component\HttpKernel(  -W{Symfony\Component\VarDumper\Exception h  0]{Symfony\Component\Security\Http\Firewall   +S{Symfony\Component\Process\Exception  7k{Symfony\Component\HttpKernel\DataCollector\Util  2a{Symfony\Component\Form\Extension\Csrf\Type:  1_{Symfony\Component\CssSelector\Tests\XPath  &I{Symfony\Bundle\TwigBundle\Node  4e{Symfony\Bundle\FrameworkBundle\Tests\Console=  %G{Symfony\Bridge\Doctrine\Tests  5gqSymfony\Component\Security\Core\Tests\Encoder	  JoSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionLoadedBundlem  1_oSymfony\Component\HttpKernel\CacheClearer'  7koqSymfony\Component\HttpFoundation\File\Exception<  .YlSymfony\Component\HttpKernel\Exception  7iClassPreloader\Parser  -ijIlluminate\Cache  )iVIlluminate\Log  +SgSymfony\Component\Routing\Exception$#  9oeSymfony\Component\Intl\Tests\Globals\Verification!  7kedSymfony\Component\Form\Extension\HttpFoundation  4ePSymfony\Component\CssSelector\Parser\Handler  -MGuzzleHttp\Event  )OLCodeception\PHPUnit\ResultPrinter  #C>spec\PhpSpec\Formatter\Html6   =>PhpSpec\Console\Prompter  /6Hamcrest\Internalq  &I6<Zend\Db\Sql\Platform\Mysql\DdlV  'K"ZF\ContentNegotiation\Validator  #Zend\Loader  ;Guzzle\Common\Exception"  %Guzzle\Batch  3Zend\ServiceManager  3c#Symfony\Component\Validator\Mapping\Factory  /[Symfony\Component\Translation\Catalogue	  .YJMS\Serializer\Tests\Serializer\Naming  +SphpDocumentor\Transformer\BehaviourQ  !?ephpDocumentor\Transformer  (M`phpDocumentor\Plugin\Twig\Writer  )
PDepend\DbusUI   )OoSymfony\Component\Finder\Iterator	A  4eZSymfony\Component\DependencyInjection\Dumper*  1_Symfony\Component\Console\Tests\Formatter  ,USymfony\Component\Console\Descriptor   /]Stagehand\TestRunner\DependencyInjectionz  '  "? Herrera\Annotations\Tests      HpZ@#x`H,uZL:-q_>(






k
V
?
*
								~	m	Y	L	7	#	nW@)vbF7( pZL>0$	~cR8(yaH6{`G$	ukaWMC9/%	|o           
. TBar
- TFoo, TA+ TB* TC) TZ( TD' CTrait& BTrait% ATrait$ 3ContainerAwareTrait# 3ContainerAwareTrait" T! T  T T T T T T %CCrawlerTrait +CAssertionsTrait -CApplicationTrait /BValidatesRequests )BDispatchesJobs 5FDatabaseTransactions 1FDatabaseMigrations  A4ValidatesWhenResolvedTrait -)SerializesModels 1)InteractsWithQueue ;'UrlWindowPresenterTrait3 g'BootstrapThreeNextPreviousButtonRendererTrait '%ResponseTrait #SoftDeletes -ConfirmableTrait ?AppNamespaceDetectorTrait
 Queueable	 -
CanResetPassword +Authenticatable %CrawlerTrait +AssertionsTrait -ApplicationTrait /ValidatesRequests )DispatchesJobs 5DatabaseTransactions 1DatabaseMigrations  PHPMock 1(VarDumperTestTrait~ Macroable} 3CapsuleManagerTrait| Reader{ Readerz STFooBar
y STBar
x LTFoow KCTraitv KBTraitu KATraitt 9ClassLoaderTest_TraitAs 
lTFooBar
r 
lTBar
q 
eTFoop 
dCTraito 
dBTraitn 
dATraitm )	MacroableTraitl 3	CapsuleManagerTraitk 'ResponseTraitj +AssertionsTraiti -ApplicationTraith /SoftDeletingTraitg -ConfirmableTraitf UserTraite +RemindableTraitd USpecifyc RSpecifyb 53StreamDecoratorTraita %3MessageTrait` )TestGuyActions_ )TestGuyActions^ )TestGuyActions] 'WebGuyActions\ +CoverGuyActions[ 'CliGuyActionsZ )SkipGuyActionsY 1ScenarioGuyActionsX +PowerGuyActionsW +OtherGuyActionsV +OrderGuyActionsU /MessageGuyActionsT /MathTesterActionsS )DumbGuyActionsR )CodeGuyActionsQ ?AbsolutelyOtherGuyActionsP !NamespacesO AssertsN 'ScenarioPrintM %DependenciesL 'ConfigurationK ActorJ %StaticEventsI ClassnameH =PhpSuperGlobalsConverterG FriendF CommentE StyleD !FileSystemC ConfigB )TestGuyActionsA )TestGuyActions@ )TestGuyActions? 'WebGuyActions> +CoverGuyActions= 'CliGuyActions< )SkipGuyActions; 1ScenarioGuyActions: +PowerGuyActions9 +OtherGuyActions8 +OrderGuyActions7 /MessageGuyActions6 /MathTesterActions5 )DumbGuyActions4 )CodeGuyActions3 ?AbsolutelyOtherGuyActions2 !Namespaces1 Asserts0 'ScenarioPrint/ %Dependencies. 'Configuration- Actor, %StaticEvents+ Classname* =PhpSuperGlobalsConverter) Friend( Comment' Style& !FileSystem% Config$ 3AnotherExampleTrait# %ExampleTrait" 3AnotherExampleTrait! %ExampleTrait  ?wMockeryPHPUnitIntegration ?aMockeryPHPUnitIntegration /7AdapterAwareTrait /AdapterAwareTrait 5	TranslatorAwareTrait -LoggerAwareTrait -LoggerAwareTrait +LabelAwareTrait 7FormFactoryAwareTrait =ServiceLocatorAwareTrait! CMutableCreationOptionsTrait 7nInputFilterAwareTrait +hLabelAwareTrait 7hFormFactoryAwareTrait 1zHydratorAwareTrait )yNullGuardTrait +yEmptyGuardTrait" EyArrayOrTraversableGuardTrait )yAllGuardsTrait =rServiceLocatorAwareTrait! CrMutableCreationOptionsTrait 5]TranslatorAwareTrait
 )PProvidesEvents	 9PListenerAggregateTrait 9PEventManagerAwareTrait #LoggerTrait -LoggerAwareTrait T 3 ContainerAwareTr  GN  Fd  Ej  DK  CD  B\  A?  @  ?  >^  =.   h9   ~wpib[TMF?81*# {tmf_XQJC<5.' xqjc\UNG@9
p
c
R
D
6
)


										y	k	^	Q	D	7	*			vhZL>0"sfYL?,wjWD3%	vcP?1$
xfSB5$
xdP<+~m`SF9,             j !dev-master
i 1.0.0
h 1.0.1
g 1.1.0
f 1.1.1
e 1.1.2
d 1.2.0c 1.2.x-devb !dev-masterE %dev-hhvm-fix!D Edev-user-original-parametersC 'dev-issue/142
B 1.0.3
A 1.0.4
@ 1.0.5
? 1.0.6
> 1.0.7
= 1.0.8< 1.0.x-dev; %2.0.0-alpha1: %2.0.0-alpha29 %2.0.0-alpha38 %2.0.0-alpha47 #2.0.0-beta16 #2.0.0-beta25 #2.0.0-beta34 #2.0.0-beta43 #2.0.0-beta52 2.0.0-rc11 V2.0.0
0 2.0.1
/ 2.0.2. 2.0.x-dev
- 2.1.0, 2.1.x-dev+ #3.0.0.x-dev* !dev-mastero #2.4.0-BETA1n #2.4.0-BETA2m 2.4.0-RC1
l 2.4.0
k 2.4.1
j 2.4.2
i 2.4.3
h 2.4.4
g 2.4.5
f 2.4.6
e 2.4.7
d 2.4.8
c 2.4.9b 2.4.10a 2.4.x-dev` #2.5.0-BETA1_ #2.5.0-BETA2^ 2.5.0-RC1
] 2.5.0
\ 2.5.1
[ 2.5.2
Z 2.5.3
Y 2.5.4
X 2.5.5
W 2.5.6
V 2.5.7
U 2.5.8
T 2.5.9S 2.5.10R 2.5.11Q 2.5.12P 2.5.x-devO #2.6.0-BETA1N #2.6.0-BETA2
M 2.6.0
L 2.6.1
K 2.6.2
J 2.6.3
I 2.6.4
H 2.6.5
G 2.6.6
F 2.6.7
E 2.6.8
D 2.6.9C 2.6.10B 2.6.11A 2.6.x-dev@ #2.7.0-BETA1? #2.7.0-BETA2
> 2.7.0
= 2.7.1
< 2.7.2
; 2.7.3
: 2.7.49 2.7.x-dev8 2.8.x-dev7 3.0.x-dev6 !dev-master
5 2.0.4
4 2.0.5
3 2.0.6
2 2.0.7
1 2.0.90 2.0.10/ 2.0.12. 2.0.13- 2.0.14, 2.0.15+ 2.0.16* 2.0.17) 2.0.18( 2.0.19' 2.0.20& 2.0.21% 2.0.22$ 2.0.23# 2.0.24" 2.0.25! 2.0.x-dev
  2.1.0
 2.1.1
 2.1.2
 2.1.3
 2.1.4
 2.1.5
 2.1.6
 2.1.7
 2.1.8
 2.1.9 2.1.10 2.1.11 2.1.12 2.1.13 2.1.x-dev
 2.2.0
 2.2.1
 2.2.2
 2.2.3
 2.2.4
 2.2.5
 2.2.6

 2.2.7
	 2.2.8
 2.2.9 2.2.10 2.2.11 2.2.x-dev
 2.3.0
 2.3.1
 2.3.2
 2.3.3
  2.3.4
 2.3.5
~ 2.3.6
} 2.3.7
| 2.3.8
{ 2.3.9z 2.3.10y 2.3.11x 2.3.12w 2.3.13v 2.3.14u 2.3.15t 2.3.16s 2.3.17r 2.3.18q 2.3.19p 2.3.20o 2.3.21n 2.3.22m 2.3.23l 2.3.24k 2.3.25j 2.3.26i 2.3.27h 2.3.28g 2.3.29f 2.3.30e 2.3.31d 2.3.32c 2.3.x-devb #2.4.0-BETA1a #2.4.0-BETA2` 2.4.0-RC1
_ 2.4.0
^ 2.4.1
] 2.4.2
\ 2.4.3
[ 2.4.4
Z 2.4.5
Y 2.4.6
X 2.4.7
W 2.4.8
V 2.4.9U 2.4.10T 2.4.x-devS #2.5.0-BETA1R #2.5.0-BETA2Q 2.5.0-RC1
P 2.5.0
O 2.5.1
N 2.  \  6  o  D  j  s     >  8      V  9    I  F  ^  	    L    ~  *    j  /  F  ?    :    (  J  >  E    n    t  ]  i  q    4  e    G  8  r  "  ~>  }Q  |D  {/  zl  y^  x?  w  v^  u\  t_  s(  r;  q=  p	  o(  nw  m:  lu  k~  jr  i  h  gS  fN  e$  d^  c{  bV  aF  `  _.  ^N  ]  \H  [  ZN  Yo  X.  W`  V&  UY  T  S  R  Q  P\  O$  N
  M  L  Kx  J\  Ij   f   q_N<+n]L;)q^H5"p]J6#
|hE2






s
[
H
5
"
								s	_	L	9	$	yeK8!

p
^
N
B
5
)


										y	l	_	R	F	:	.	"		
}nbVJ>2&tfXH:&
|iVE8*~m`RD6)}oaRC6)}pcUG9+n\J=0#              1.0.6?1.0.5@1.0.4A1.0.3B!dev-master 3.1.x-dev}3.0.x-dev 3.0.23.0.1}#3.0.0-BETA1O3.0.0}2.8.x-dev 2.8.2	2.8.1}#2.8.0-BETA1O2.8.0~ 2.7.x-dev 2.7.9	2.7.8~2.7.7O2.7.6G2.7.52.7.4 2.7.3 2.7.2 2.7.1 #2.7.0-BETA2 #2.7.0-BETA1 2.7.0 2.6.x-dev 2.6.9 2.6.8 2.6.7 2.6.6 2.6.5 2.6.4 2.6.3 2.6.2 2.6.13	2.6.12O2.6.11 2.6.10 2.6.1 #2.6.0-BETA2 #2.6.0-BETA1 2.6.0 2.5.x-dev 2.5.9 2.5.8 2.5.7 2.5.6 2.5.5 2.5.4 2.5.3 2.5.2 2.5.12 2.5.11 2.5.10 2.5.1 2.5.0-RC1 #2.5.0-BETA2 #2.5.0-BETA1 2.5.0 2.4.x-dev 2.4.9 2.4.8 2.4.7 2.4.6 2.4.5 2.4.4 2.4.3 2.4.2 2.4.10 2.4.1 2.4.0-RC1 #2.4.0-BETA2 #2.4.0-BETA1 2.4.0 !dev-master)3.1.x-dev[3.0.x-dev*3.0.23.0.1[#3.0.0-BETA13.0.0[2.8.x-dev+2.8.2L2.8.1[#2.8.0-BETA12.8.0[2.7.x-dev,2.7.9Q2.7.8[2.7.71=2.7.6T82.7.5E  0.5.0Z  v1.0.0%  c4.0.1϶  /Jdev-release/2.3.10  !Adev-master  -1.0.1h  )2.0.x-dev  !4.0.1w  %1.4.0-beta.2  0.10.0  4.0.12.1[  #0.8.0.x-dev  !dev-master|  
!dev-master6  	2.2.25  2.0.3  1.2.7-  2.2.2Q  6.0.043Oa  q1.0.0  e1.4.3  V4.1.15X  N2.1.0A   J2.1.3  62.6.7X  42.0.20Sm  /2.1.679  +2.0.87  '2.2.74  #2.4.0rc52   2.0.3/  2.1.4(l  2.3.0%  	0.0.3  !2.0.0-rc.3*  !1.14.12.10  5.0.x-dev  0.10.8  0.11.1  !dev-fix-22z  2.2.6  2.8.0-RC1   3.1.0@  3.7.4  n1.0.1  7Zdev-1159-import-quiet  M2.3.17  #=dev-developS  62.3.0  !11.15.08.17  #2.0.1  1.1 	  0.3.2   3.4.0 ļ  # dev-develop r   2.5.0    5.0.25 A   4.0.9    5.1.8 D   4.1.19 z   5.0.33 f   4.0.x-dev P   1.0.7 h   0.9.5 Z   3.1.3    4.1.22    1.0.1 @   3.0.0 0   2.8.16`   2.5.2   1.3-beta4st   2.5.12o   2.1.9o   1.1.8j   5.0.15iE   2.0.12h  # 2.4.0-BETA1f  # 2.6.0-BETA2f  (K dev-feature/update-dependenciesx  z2.4.1Q7  y2.0.10P  t3.4.1M  o3.0.5I  b2.2.44  ^2.2.2,  Y2.2.0rc2  U2.2.0rc1  Q2.1.1  I1.4alpha2O  E2.3.9[  A2.4.0rc4f  =2.7.4  <2.3.11  !3dev-masterZ  #2.7.1f   2.1.13L  2.4.9  2.8.0Q  2.3.19~  1.0.5m  V)
dev-feature/default-tear-down-that-unsets-all-attributes-of-a-test-case-object  1.0.7>   [ zgK?)dJ2gC7!|hP7x^N7






j
Q
E
.
!
 								r	_	M	>	3	#	t\H3u\C7 wdQ?0%}fN:%Y:`=\5[                                   = } Phake_ClassGenerator_InvocationHandler_FrozenObjectCheck5 m Phake_ClassGenerator_InvocationHandler_Composite8 s Phake_ClassGenerator_InvocationHandler_CallRecorder$ K Phake_ClassGenerator_FileLoader$ K Phake_ClassGenerator_EvalLoader& O Phake_CallRecorder_VerifierResult* W Phake_CallRecorder_VerifierMode_Times+ Y Phake_CallRecorder_VerifierMode_Result+ Y Phake_CallRecorder_VerifierMode_AtMost, [ Phake_CallRecorder_VerifierMode_AtLeast  C Phake_CallRecorder_Verifier  C Phake_CallRecorder_Recorder  C Phake_CallRecorder_Position% M Phake_CallRecorder_OrderVerifier 
 C Phake_CallRecorder_CallInfo'	 Q Phake_CallRecorder_CallExpectation ; Phake_CallRecorder_Call ; Phake_Annotation_Reader% M Phake_Annotation_MockInitializer 'UnaryNodeTest NodeTest %NameNodeTest Obj +GetAttrNodeTest  -FunctionNodeTest -ConstantNodeTest~ 3ConditionalNodeTest} )BinaryNodeTest| 'ArrayNodeTest{ /ArgumentsNodeTestz -AbstractNodeTesty %TestProviderx !ParserTestw 5ParsedExpressionTestv LexerTestu )ExpressionTestt 9ExpressionLanguageTests -ArrayParserCacher UnaryNode	q Nodep NameNodeo #GetAttrNoden %FunctionNodem %ConstantNodel +ConditionalNodek !BinaryNodej ArrayNodei 'ArgumentsNodeh #TokenStream
g Tokenf #SyntaxErrore ASerializedParsedExpressiond Parserc -ParsedExpression
b Lexera 1ExpressionLanguage` 1ExpressionFunction_ !Expression^ Compiler] 'UnaryNodeTest\ NodeTest[ %NameNodeTestZ ObjY +GetAttrNodeTestX -FunctionNodeTestW -ConstantNodeTestV 3ConditionalNodeTestU )BinaryNodeTestT 'ArrayNodeTestS /ArgumentsNodeTestR -AbstractNodeTestQ %TestProviderP !ParserTestO 5ParsedExpressionTestN LexerTestM )ExpressionTestL 9ExpressionLanguageTestK -ArrayParserCacheJ UnaryNode	I NodeH NameNodeG #GetAttrNodeF %FunctionNodeE %ConstantNodeD +ConditionalNodeC !BinaryNodeB ArrayNodeA 'ArgumentsNode@ #TokenStream
? Token> #SyntaxError= ASerializedParsedExpression< Parser; -ParsedExpression
: Lexer9 1ExpressionLanguage8 1ExpressionFunction7 !Expression6 Compiler5 /SubscriberService4 ?RegisterListenersPassTest3 +EventSubscriber!2 ETraceableEventDispatcherTest!1 EImmutableEventDispatcherTest0 -GenericEventTest/ EventTest. 3EventDispatcherTest- /SubscriberService, Service&+ OContainerAwareEventDispatcherTest-* ]TestEventSubscriberWithMultipleListeners&) OTestEventSubscriberWithPriorities( 3TestEventSubscriber' 1TestWithDispatcher& /TestEventListener% 'CallableClass $ CAbstractEventDispatcherTest# 7RegisterListenersPass" +WrappedListener! =TraceableEventDispatcher  =ImmutableEventDispatcher %GenericEvent +EventDispatcher
 Event" GContainerAwareEventDispatcher$ KRegistrationStateMachineBuilder -StateMachineTest ;StateMachineBuilderTest 'TransitionLog 9StateNotFoundException$ KStateMachineNotStartedException 1StateMachineEvents /StateMachineEvent 3StateMachineBuilder( SStateMachineAlreadyStartedException) UStateMachineAlreadyShutdownException %StateMachine AActionNotCallableException StateTest -InitialStateTest )FinalStateTest +StateCollection

 State	 7InvalidEventException %InitialState !FinalState 3
TransitionEventTest +
TransitionEvent 
ExitEvent +
EventCollection !
EntryEvent 
DoEvent   ^  aE)_:qM|N}R0




U
+
				b	U	)	b;~WQ'lCf>pUi>wQ'      +v Y Phake_Stubber_Answers_LambdaAnswerTest.u _ Phake_Stubber_Answers_ExceptionAnswerTest't Q Phake_Stubber_AnswerCollectionTest#s I Phake_Stubber_AnswerBinderTestr A Phake_String_ConverterTest&q O Phake_Proxies_VisibilityProxyTest$p K Phake_Proxies_VerifierProxyTest#o I Phake_Proxies_StubberProxyTest,n [ Phake_Proxies_StaticVisibilityProxyTest(m S Phake_Proxies_CallVerifierProxyTest'l Q Phake_Proxies_CallStubberProxyTest,k [ Phake_Proxies_AnswerCollectionProxyTest(j S Phake_Proxies_AnswerBinderProxyTest/i a Phake_PHPUnit_VerifierResultConstraintTest3h i Phake_PHPUnit_VerifierResultConstraintV3d6Testg 3 Phake_Mock_InfoTest f C Phake_Mock_InfoRegistryTeste 9 Phake_Mock_FreezerTest-d ] Phake_Matchers_SingleArgumentMatcherTest'c Q Phake_Matchers_ReferenceSetterTest0b c Phake_Matchers_PHPUnitConstraintAdapterTest%a M Phake_Matchers_MethodMatcherTest.` _ Phake_Matchers_IgnoreRemainingMatcherTest._ _ Phake_Matchers_HamcrestMatcherAdapterTest^ A Phake_Matchers_FactoryTest%] M Phake_Matchers_EqualsMatcherTest.\ _ Phake_Matchers_ChainedArgumentMatcherTest&[ O Phake_Matchers_ArgumentCaptorTest%Z M Phake_Matchers_AnyParametersTest8Y s Phake_Matchers_AbstractChainableArgumentMatcherTestX - Phake_FacadeTestW = Phake_Client_PHPUnitTestV = Phake_Client_DefaultTest'U Q Phake_ClassGenerator_MockClassTest:T w Phake_ClassGenerator_InvocationHandler_StubCallerTestBS  Phake_ClassGenerator_InvocationHandler_MagicCallRecorderTestBR  Phake_ClassGenerator_InvocationHandler_FrozenObjectCheckTest<Q { Phake_ClassGenerator_InvocationHandler_CallRecorderTest$P K Phake_CallRecorder_VerifierTest.O _ Phake_CallRecorder_VerifierMode_TimesTest/N a Phake_CallRecorder_VerifierMode_AtMostTest0M c Phake_CallRecorder_VerifierMode_AtLeastTest$L K Phake_CallRecorder_RecorderTest$K K Phake_CallRecorder_PositionTest)J U Phake_CallRecorder_OrderVerifierTest I C Phake_CallRecorder_CallTest$H K Phake_CallRecorder_CallInfoTest+G Y Phake_CallRecorder_CallExpectationTest F C Phake_Annotation_ReaderTest)E U Phake_Annotation_MockInitializerTest
D  PhakeC = Phake_Stubber_StubMapper*B W Phake_Stubber_SelfBindingAnswerBinder'A Q Phake_Stubber_Answers_StaticAnswer)@ U Phake_Stubber_Answers_ParentDelegate#? I Phake_Stubber_Answers_NoAnswer'> Q Phake_Stubber_Answers_LambdaAnswer*= W Phake_Stubber_Answers_ExceptionAnswer#< I Phake_Stubber_AnswerCollection; A Phake_Stubber_AnswerBinder: 9 Phake_String_Converter"9 G Phake_Proxies_VisibilityProxy 8 C Phake_Proxies_VerifierProxy7 A Phake_Proxies_StubberProxy(6 S Phake_Proxies_StaticVisibilityProxy$5 K Phake_Proxies_CallVerifierProxy#4 I Phake_Proxies_CallStubberProxy(3 S Phake_Proxies_AnswerCollectionProxy$2 K Phake_Proxies_AnswerBinderProxy/1 a Phake_PHPUnit_VerifierResultConstraintV3d6+0 Y Phake_PHPUnit_VerifierResultConstraint/ ; Phake_Mock_InfoRegistry. + Phake_Mock_Info- 1 Phake_Mock_Freezer), U Phake_Matchers_SingleArgumentMatcher#+ I Phake_Matchers_ReferenceSetter,* [ Phake_Matchers_PHPUnitConstraintAdapter!) E Phake_Matchers_MethodMatcher*( W Phake_Matchers_IgnoreRemainingMatcher*' W Phake_Matchers_HamcrestMatcherAdapter& 9 Phake_Matchers_Factory!% E Phake_Matchers_EqualsMatcher*$ W Phake_Matchers_ChainedArgumentMatcher"# G Phake_Matchers_ArgumentCaptor!" E Phake_Matchers_AnyParameters4! k Phake_Matchers_AbstractChainableArgumentMatcher  % Phake_Facade* W Phake_Exception_VerificationException+ Y Phake_Exception_MethodMatcherException 5 Phake_Client_PHPUnit 5 Phake_Client_Default# I Phake_ClassGenerator_MockClass6 o Phake_ClassGenerator_InvocationHandler_StubCaller= } Phake_ClassGenerator_InvocationHandler_MagicCallRecorder   e  qM6#wG*mJsbM/e=



w
I
				j	2yS7uQ,c?n@oD"tGtTGT-  0[ c"Phake_CallRecorder_VerifierMode_AtLeastTest$Z K"Phake_CallRecorder_RecorderTest$Y K"Phake_CallRecorder_PositionTest)X U"Phake_CallRecorder_OrderVerifierTest W C"Phake_CallRecorder_CallTest$V K"Phake_CallRecorder_CallInfoTest+U Y"Phake_CallRecorder_CallExpectationTest T C"Phake_Annotation_ReaderTest)S U"Phake_Annotation_MockInitializerTest
R "PhakeQ ="Phake_Stubber_StubMapper*P W"Phake_Stubber_SelfBindingAnswerBinder'O Q"Phake_Stubber_Answers_StaticAnswer)N U"Phake_Stubber_Answers_ParentDelegate#M I"Phake_Stubber_Answers_NoAnswer'L Q"Phake_Stubber_Answers_LambdaAnswer*K W"Phake_Stubber_Answers_ExceptionAnswer#J I"Phake_Stubber_AnswerCollectionI A"Phake_Stubber_AnswerBinderH 9"Phake_String_Converter"G G"Phake_Proxies_VisibilityProxy F C"Phake_Proxies_VerifierProxyE A"Phake_Proxies_StubberProxy(D S"Phake_Proxies_StaticVisibilityProxy$C K"Phake_Proxies_CallVerifierProxy#B I"Phake_Proxies_CallStubberProxy(A S"Phake_Proxies_AnswerCollectionProxy$@ K"Phake_Proxies_AnswerBinderProxy/? a"Phake_PHPUnit_VerifierResultConstraintV3d6+> Y"Phake_PHPUnit_VerifierResultConstraint= ;"Phake_Mock_InfoRegistry< +"Phake_Mock_Info; 1"Phake_Mock_Freezer): U"Phake_Matchers_SingleArgumentMatcher#9 I"Phake_Matchers_ReferenceSetter,8 ["Phake_Matchers_PHPUnitConstraintAdapter!7 E"Phake_Matchers_MethodMatcher*6 W"Phake_Matchers_IgnoreRemainingMatcher*5 W"Phake_Matchers_HamcrestMatcherAdapter4 9"Phake_Matchers_Factory!3 E"Phake_Matchers_EqualsMatcher*2 W"Phake_Matchers_ChainedArgumentMatcher"1 G"Phake_Matchers_ArgumentCaptor!0 E"Phake_Matchers_AnyParameters4/ k"Phake_Matchers_AbstractChainableArgumentMatcher. %"Phake_Facade*- W"Phake_Exception_VerificationException+, Y"Phake_Exception_MethodMatcherException+ 5"Phake_Client_PHPUnit* 5"Phake_Client_Default#) I"Phake_ClassGenerator_MockClass6( o"Phake_ClassGenerator_InvocationHandler_StubCaller=' }"Phake_ClassGenerator_InvocationHandler_MagicCallRecorder=& }"Phake_ClassGenerator_InvocationHandler_FrozenObjectCheck5% m"Phake_ClassGenerator_InvocationHandler_Composite8$ s"Phake_ClassGenerator_InvocationHandler_CallRecorder$# K"Phake_ClassGenerator_FileLoader$" K"Phake_ClassGenerator_EvalLoader&! O"Phake_CallRecorder_VerifierResult*  W"Phake_CallRecorder_VerifierMode_Times+ Y"Phake_CallRecorder_VerifierMode_Result+ Y"Phake_CallRecorder_VerifierMode_AtMost, ["Phake_CallRecorder_VerifierMode_AtLeast  C"Phake_CallRecorder_Verifier  C"Phake_CallRecorder_Recorder  C"Phake_CallRecorder_Position% M"Phake_CallRecorder_OrderVerifier  C"Phake_CallRecorder_CallInfo' Q"Phake_CallRecorder_CallExpectation ;"Phake_CallRecorder_Call ;"Phake_Annotation_Reader% M"Phake_Annotation_MockInitializer +!NamespacedClass 9!AnotherNamespacedClass ' PhakeTestUtil  PhakeTest 7 PhakeTest_WakeupClass = PhakeTest_ToStringMethod 7 PhakeTest_StaticClass  C PhakeTest_SerializableClass+ Y PhakeTest_ReturnByReferenceMethodClass)
 U PhakeTest_PDOStatementExtendingClass 	 C PhakeTest_PDOExtendingClass* W PhakeTest_MockedFinalConstructedClass% M PhakeTest_MockedConstructedClass 7 PhakeTest_MockedClass 5 PhakeTest_MagicClass, [ PhakeTest_ImplementConstructorInterface 7 PhakeTest_FinalMethod- ] PhakeTest_ExtendedMockedConstructedClass ? PhakeTest_DestructorClass  A PhakeTest_CallableTypehint # PhakeTest_B4~ k PhakeTest_AbstractImplementConstructorInterface} ; PhakeTest_AbstractClass| # PhakeTest_A{ + PhakeClientTest!z E Phake_Stubber_StubMapperTest.y _ Phake_Stubber_SelfBindingAnswerBinderTest+x Y Phake_Stubber_Answers_StaticAnswerTest-w ] Phake_Stubber_Answers_ParentDelegateTest   r  v7pF&b1	]* t>



]
.
				p	F	X4
^.T1wZI4rWH,w^K=,mM0sgYG5   M C&TimeEfficientImplementation"L G&MemoryEfficientImplementationK !%ParserTestJ !%DifferTestI %Parser	H %LineG %Differ	F %Diff
E %ChunkD 1$TypeComparatorTest#C I$SplObjectStorageComparatorTestB 5$ScalarComparatorTestA 9$ResourceComparatorTest@ 5$ObjectComparatorTest? 7$NumericComparatorTest> =$MockObjectComparatorTest= #$FactoryTest< ;$ExceptionComparatorTest; 5$DoubleComparatorTest: 7$DOMNodeComparatorTest9 9$DateTimeComparatorTest8 3$ArrayComparatorTest7 3$TestClassComparator6 $TestClass5 $Struct4 #$SampleClass3 /$ClassWithToString	2 $Book1 $Author0 )$TypeComparator/ A$SplObjectStorageComparator. -$ScalarComparator- 1$ResourceComparator, -$ObjectComparator+ /$NumericComparator* 5$MockObjectComparator) $Factory( 3$ExceptionComparator' -$DoubleComparator& /$DOMNodeComparator% 1$DateTimeComparator$ /$ComparisonFailure# !$Comparator" +$ArrayComparator! +#NamespacedClass  9#AnotherNamespacedClass '"PhakeTestUtil "PhakeTest 7"PhakeTest_WakeupClass ="PhakeTest_ToStringMethod 7"PhakeTest_StaticClass  C"PhakeTest_SerializableClass+ Y"PhakeTest_ReturnByReferenceMethodClass) U"PhakeTest_PDOStatementExtendingClass  C"PhakeTest_PDOExtendingClass* W"PhakeTest_MockedFinalConstructedClass% M"PhakeTest_MockedConstructedClass 7"PhakeTest_MockedClass 5"PhakeTest_MagicClass, ["PhakeTest_ImplementConstructorInterface 7"PhakeTest_FinalMethod- ]"PhakeTest_ExtendedMockedConstructedClass ?"PhakeTest_DestructorClass A"PhakeTest_CallableTypehint #"PhakeTest_B4 k"PhakeTest_AbstractImplementConstructorInterface ;"PhakeTest_AbstractClass
 #"PhakeTest_A	 +"PhakeClientTest! E"Phake_Stubber_StubMapperTest. _"Phake_Stubber_SelfBindingAnswerBinderTest+ Y"Phake_Stubber_Answers_StaticAnswerTest- ]"Phake_Stubber_Answers_ParentDelegateTest+ Y"Phake_Stubber_Answers_LambdaAnswerTest. _"Phake_Stubber_Answers_ExceptionAnswerTest' Q"Phake_Stubber_AnswerCollectionTest# I"Phake_Stubber_AnswerBinderTest  A"Phake_String_ConverterTest& O"Phake_Proxies_VisibilityProxyTest$~ K"Phake_Proxies_VerifierProxyTest#} I"Phake_Proxies_StubberProxyTest,| ["Phake_Proxies_StaticVisibilityProxyTest({ S"Phake_Proxies_CallVerifierProxyTest'z Q"Phake_Proxies_CallStubberProxyTest,y ["Phake_Proxies_AnswerCollectionProxyTest(x S"Phake_Proxies_AnswerBinderProxyTest/w a"Phake_PHPUnit_VerifierResultConstraintTest3v i"Phake_PHPUnit_VerifierResultConstraintV3d6Testu 3"Phake_Mock_InfoTest t C"Phake_Mock_InfoRegistryTests 9"Phake_Mock_FreezerTest-r ]"Phake_Matchers_SingleArgumentMatcherTest'q Q"Phake_Matchers_ReferenceSetterTest0p c"Phake_Matchers_PHPUnitConstraintAdapterTest%o M"Phake_Matchers_MethodMatcherTest.n _"Phake_Matchers_IgnoreRemainingMatcherTest.m _"Phake_Matchers_HamcrestMatcherAdapterTestl A"Phake_Matchers_FactoryTest%k M"Phake_Matchers_EqualsMatcherTest.j _"Phake_Matchers_ChainedArgumentMatcherTest&i O"Phake_Matchers_ArgumentCaptorTest%h M"Phake_Matchers_AnyParametersTest8g s"Phake_Matchers_AbstractChainableArgumentMatcherTestf -"Phake_FacadeTeste ="Phake_Client_PHPUnitTestd ="Phake_Client_DefaultTest'c Q"Phake_ClassGenerator_MockClassTest:b w"Phake_ClassGenerator_InvocationHandler_StubCallerTestBa "Phake_ClassGenerator_InvocationHandler_MagicCallRecorderTestB` "Phake_ClassGenerator_InvocationHandler_FrozenObjectCheckTest<_ {"Phake_ClassGenerator_InvocationHandler_CallRecorderTest$^ K"Phake_CallRecorder_VerifierTest.] _"Phake_CallRecorder_VerifierMode_TimesTest/\ a"Phake_CallRecorder_VerifierMode_AtMostTest   [  sJ#c5T&Y/_0 


y
M
				k	@u>V${S/vLW2
`>iH#W5               ( 9)PHPUnit_TextUI_Command' 9)PHPUnit_Runner_Version+& Y)PHPUnit_Runner_StandardTestSuiteLoader% A)PHPUnit_Runner_Filter_Test.$ _)PHPUnit_Runner_Filter_GroupFilterIterator(# S)PHPUnit_Runner_Filter_Group_Include(" S)PHPUnit_Runner_Filter_Group_Exclude"! G)PHPUnit_Runner_Filter_Factory  =)PHPUnit_Runner_Exception" G)PHPUnit_Runner_BaseTestRunner ?)PHPUnit_Framework_Warning6 o)PHPUnit_Framework_UnintentionallyCoveredCodeError  C)PHPUnit_Framework_TestSuite- ])PHPUnit_Framework_TestSuite_DataProvider! E)PHPUnit_Framework_TestResult" G)PHPUnit_Framework_TestFailure A)PHPUnit_Framework_TestCase% M)PHPUnit_Framework_SyntheticError, [)PHPUnit_Framework_SkippedTestSuiteError' Q)PHPUnit_Framework_SkippedTestError& O)PHPUnit_Framework_SkippedTestCase% M)PHPUnit_Framework_RiskyTestError" G)PHPUnit_Framework_OutputError3 i)PHPUnit_Framework_InvalidCoversTargetException/ a)PHPUnit_Framework_InvalidCoversTargetError* W)PHPUnit_Framework_IncompleteTestError) U)PHPUnit_Framework_IncompleteTestCase1 e)PHPUnit_Framework_ExpectationFailedException' Q)PHPUnit_Framework_ExceptionWrapper  C)PHPUnit_Framework_Exception
 ;)PHPUnit_Framework_Error$	 K)PHPUnit_Framework_Error_Warning# I)PHPUnit_Framework_Error_Notice' Q)PHPUnit_Framework_Error_Deprecated! E)PHPUnit_Framework_Constraint% M)PHPUnit_Framework_Constraint_Xor9 u)PHPUnit_Framework_Constraint_TraversableContainsOnly5 m)PHPUnit_Framework_Constraint_TraversableContains2 g)PHPUnit_Framework_Constraint_StringStartsWith/ a)PHPUnit_Framework_Constraint_StringMatches0  c)PHPUnit_Framework_Constraint_StringEndsWith0 c)PHPUnit_Framework_Constraint_StringContains*~ W)PHPUnit_Framework_Constraint_SameSize+} Y)PHPUnit_Framework_Constraint_PCREMatch$| K)PHPUnit_Framework_Constraint_Or4{ k)PHPUnit_Framework_Constraint_ObjectHasAttribute%z M)PHPUnit_Framework_Constraint_Not*y W)PHPUnit_Framework_Constraint_LessThan-x ])PHPUnit_Framework_Constraint_JsonMatchesCw )PHPUnit_Framework_Constraint_JsonMatches_ErrorMessageProvider(v S)PHPUnit_Framework_Constraint_IsType(u S)PHPUnit_Framework_Constraint_IsTrue(t S)PHPUnit_Framework_Constraint_IsNull(s S)PHPUnit_Framework_Constraint_IsJson.r _)PHPUnit_Framework_Constraint_IsInstanceOf-q ])PHPUnit_Framework_Constraint_IsIdentical)p U)PHPUnit_Framework_Constraint_IsFalse)o U)PHPUnit_Framework_Constraint_IsEqual)n U)PHPUnit_Framework_Constraint_IsEmpty,m [)PHPUnit_Framework_Constraint_IsAnything-l ])PHPUnit_Framework_Constraint_GreaterThan,k [)PHPUnit_Framework_Constraint_FileExists8j s)PHPUnit_Framework_Constraint_ExceptionMessageRegExp2i g)PHPUnit_Framework_Constraint_ExceptionMessage/h a)PHPUnit_Framework_Constraint_ExceptionCode+g Y)PHPUnit_Framework_Constraint_Exception'f Q)PHPUnit_Framework_Constraint_Count+e Y)PHPUnit_Framework_Constraint_Composite9d u)PHPUnit_Framework_Constraint_ClassHasStaticAttribute3c i)PHPUnit_Framework_Constraint_ClassHasAttribute*b W)PHPUnit_Framework_Constraint_Callback+a Y)PHPUnit_Framework_Constraint_Attribute-` ])PHPUnit_Framework_Constraint_ArraySubset-_ ])PHPUnit_Framework_Constraint_ArrayHasKey%^ M)PHPUnit_Framework_Constraint_And,] [)PHPUnit_Framework_CodeCoverageException'\ Q)PHPUnit_Framework_BaseTestListener+[ Y)PHPUnit_Framework_AssertionFailedErrorZ =)PHPUnit_Framework_Assert&Y O)PHPUnit_Extensions_TicketListener%X M)PHPUnit_Extensions_TestDecorator$W K)PHPUnit_Extensions_RepeatedTest%V M)PHPUnit_Extensions_PhptTestSuite$U K)PHPUnit_Extensions_PhptTestCase&T O)PHPUnit_Extensions_GroupTestSuiteS #(ContextTestR =(InvalidArgumentExceptionQ (ContextP %'ExporterTestO 'Exporter$N K&TimeEfficientImplementationTest     {Z;aE%X)yeW;(mD




e
Q
0
				x	S	$	
|aD* `A)d:p\H/ d<Y6zgQ9teJ4                   + %)TestIterator* ))TestIncomplete) 3)TemplateMethodsTest( )Success' )Struct& )StackTest% )Singleton$ #)SampleClass# /)SampleArrayAccess" -)RequirementsTest"! G)RequirementsClassDocBlockTest)  U)RequirementsClassBeforeClassHookTest -)OverrideTestCase ))OutputTestCase #)OneTestCase +)NotVoidTestCase /)NotPublicTestCase #)NothingTest" G)NotExistingCoveredElementTest #)NoTestCases +)NoTestCaseClass )NonStatic /)NoArgTestCaseTest  C)NamespaceCoveragePublicTest# I)NamespaceCoverageProtectedTest! E)NamespaceCoveragePrivateTest# I)NamespaceCoverageNotPublicTest& O)NamespaceCoverageNotProtectedTest$ K)NamespaceCoverageNotPrivateTest  C)NamespaceCoverageMethodTest% M)NamespaceCoverageCoversClassTest+ Y)NamespaceCoverageCoversClassPublicTest A)NamespaceCoverageClassTest'
 Q)NamespaceCoverageClassExtendedTest	 3)MultiDependencyTest !)MockRunner ')IsolationTest )IniTest /)InheritedTestCase %)InheritanceB %)InheritanceA ))IncompleteTest )FatalTest  #)FailureTest )Failure~ ')ExceptionTest} 1)ExceptionStackTest| +)ExceptionInTest{ ;)ExceptionInTearDownTestz 5)ExceptionInSetUpTest'y Q)ExceptionInAssertPreConditionsTest(x S)ExceptionInAssertPostConditionsTestw /)EmptyTestCaseTestv ))DummyExceptionu ))DoubleTestCaset 3)DependencyTestSuites 7)DependencySuccessTestr 7)DependencyFailureTestq -)DataProviderTestp ;)DataProviderSkippedTesto A)DataProviderIncompleteTestn 9)DataProviderFilterTestm 7)DataProviderDebugTestl ')CustomPrinterk %)CoveredClassj 1)CoveredParentClass'i Q)CoverageTwoDefaultClassAnnotationsh 1)CoveragePublicTestg 7)CoverageProtectedTestf 3)CoveragePrivateTeste 7)CoverageNotPublicTestd =)CoverageNotProtectedTestc 9)CoverageNotPrivateTestb 3)CoverageNothingTesta -)CoverageNoneTest` 1)CoverageMethodTest,_ [)CoverageMethodParenthesesWhitespaceTest"^ G)CoverageMethodParenthesesTest(] S)CoverageMethodOneLineAnnotationTest\ 5)CoverageFunctionTest.[ _)CoverageFunctionParenthesesWhitespaceTest$Z K)CoverageFunctionParenthesesTestY /)CoverageClassTestX ?)CoverageClassExtendedTestW %)ConcreteTest&V O)ConcreteWithMyCustomExtensionTestU /)ClassWithToString$T K)ClassWithScalarTypeDeclarations!S E)ClassWithNonPublicAttributes'R Q)ParentClassWithProtectedAttributes%Q M)ParentClassWithPrivateAttributes&P O)ChangeCurrentWorkingDirectoryTestO !)Calculator	N )Book!M E)BeforeClassAndAfterClassTestL 1)BeforeAndAfterTestK 9)BaseTestListenerSample'J Q)BankAccountWithCustomExtensionTestI +)BankAccountTestH #)BankAccountG 5)BankAccountExceptionF )AuthorE %)AbstractTestD -)PHPUnit_Util_XMLC /)PHPUnit_Util_Type#B I)PHPUnit_Util_TestSuiteIterator'A Q)PHPUnit_Util_TestDox_ResultPrinter,@ [)PHPUnit_Util_TestDox_ResultPrinter_Text,? [)PHPUnit_Util_TestDox_ResultPrinter_HTML(> S)PHPUnit_Util_TestDox_NamePrettifier= /)PHPUnit_Util_Test< 3)PHPUnit_Util_String; 1)PHPUnit_Util_Regex: 5)PHPUnit_Util_Printer9 -)PHPUnit_Util_PHP8 =)PHPUnit_Util_PHP_Windows7 =)PHPUnit_Util_PHP_Default6 5)PHPUnit_Util_Log_TAP5 9)PHPUnit_Util_Log_JUnit4 7)PHPUnit_Util_Log_JSON'3 Q)PHPUnit_Util_InvalidArgumentHelper2 =)PHPUnit_Util_GlobalState1 3)PHPUnit_Util_Getopt0 3)PHPUnit_Util_Filter/ ;)PHPUnit_Util_Filesystem. ;)PHPUnit_Util_Fileloader- ?)PHPUnit_Util_ErrorHandler, A)PHPUnit_Util_Configuration+ 9)PHPUnit_Util_Blacklist* ?)PHPUnit_TextUI_TestRunner!) E)PHPUnit_TextUI_ResultPrinter   M ugD,	x7lJ5!t_J5 p[G.







o
[
G
&
						o	Q	7	#	cK1zb6oZH9(vhVA(q^L6$dD+}aA!pM          I C;DisableConstructorPatchSpecH #:FactorySpecG 7:ClosureComparatorSpecF 9CallSpecE )9CallCenterSpecD #8ProphetSpecC %8ArgumentSpecB '7TypeTokenSpecA ;7StringContainsTokenSpec@ =7ObjectStateTokenFixtureB? =7ObjectStateTokenFixtureA> 57ObjectStateTokenSpec= 37LogicalNotTokenSpec< 37LogicalAndTokenSpec; ;7IdenticalValueTokenSpec: ;7ExactValueTokenFixtureB9 ;7ExactValueTokenFixtureA8 37ExactValueTokenSpec7 /7CallbackTokenSpec6 =7ArrayEveryEntryTokenSpec5 37ArrayEntryTokenSpec4 37ArrayCountTokenSpec3 /7AnyValueTokenSpec2 17AnyValuesTokenSpec1 76ArgumentsWildcardSpec0 %5DocBlockTest/ 5DocBlock. )4CollectionTest- !4Collection, )3VersionTagTest+ !3VarTagTest* #3UsesTagTest) '3ThrowsTagTest( '3SourceTagTest' %3SinceTagTest& !3SeeTagTest% '3ReturnTagTest$ %3ParamTagTest# '3MethodTagTest" #3LinkTagTest! )3ExampleTagTest  /3DeprecatedTagTest '3CoversTagTest !3VersionTag 3VarTag 3UsesTag 3ThrowsTag 3SourceTag 3SinceTag 3SeeTag 3ReturnTag -3PropertyWriteTag #3PropertyTag +3PropertyReadTag 3ParamTag 3MethodTag 3LinkTag !3ExampleTag '3DeprecatedTag 3CoversTag 3AuthorTag 2TagTest +2DescriptionTest
 2Tag	 !2Serializer 2Location #2Description 2Context )1XMLReaderAsset 11WakeUpNoticesAsset) U1UnserializeExceptionArrayObjectAsset -1UnCloneableAsset ;1SimpleSerializableAsset!  E1SerializableArrayObjectAsset 11PharExceptionAsset~ 1PharAsset} 31FinalExceptionAsset| )1ExceptionAsset{ -1ArrayObjectAssetz 11AbstractClassAssety -0InstantiatorTest!x E/UnexpectedValueExceptionTest!w E/InvalidArgumentExceptionTest!v E.InstantiatorPerformanceEventu %-Instantiatort =,UnexpectedValueExceptions =,InvalidArgumentExceptionr %+CoveredClassq 1+CoveredParentClassp 9*ExceptionNamespaceTesto %)Util_XMLTestn ')Util_TestTest$m K)Util_TestDox_NamePrettifierTestl ))Util_RegexTestk 5)Util_GlobalStateTestj +)Util_GetoptTesti 9)Util_ConfigurationTesth ?)Runner_BaseTestRunnerTestg %)Issue797Testf %)Issue765Teste %)NewExceptiond #)Issue74Testc %)Issue581Testb %)Issue503Testa %)Issue498Test` %)Issue445Test_ %)Issue433Test^ %)Issue322Test] =)Issue244ExceptionIntCode\ /)Issue244Exception[ %)Issue244TestZ ')Issue1570TestY ')Issue1472TestX ')Issue1471TestW ')Issue1468TestV ')Issue1437TestU ')Issue1374TestT ')Issue1351TestS 7)ChildProcessClass1351R ')Issue1348TestQ ')Issue1337TestP ')Issue1335TestO ')Issue1330TestN ')Issue1265TestM ')Issue1216TestL ')Issue1149TestK )TwoTestJ #)ParentSuiteI )OneTestH !)ChildSuiteG 5)Foo_Bar_Issue684TestF %)Issue578TestE )Issue523D %)Issue523TestC ')Issue1021TestB A)Framework_TestListenerTest"A G)Framework_TestImplementorTest@ ?)Framework_TestFailureTest? 9)Framework_TestCaseTest> 3)Framework_SuiteTest= =)Framework_ConstraintTest)< U)Framework_Constraint_JsonMatchesTest>; )Framework_Constraint_JsonMatches_ErrorMessageProviderTest: 5)ExceptionMessageTest9 A)ExceptionMessageRegExpTest8 )CountTest#7 I)Framework_BaseTestListenerTest6 5)Framework_AssertTest 5 C)Extensions_RepeatedTestTest4 -)PhpTestCaseProxy 3 C)Extensions_PhptTestCaseTest2 )WasRun1 =)ThrowNoExceptionTestCase0 9)ThrowExceptionTestCase/ %)TestWithTest. )TestError- #)TestSkipped, ')TestIterator2   ( d9mV=%tY3fC%~eM,





n
U
?
*
							k	S	8	'		wX>*s`L;)
z[9bC)lVF4"uS4S!yL(                  !P EYPHP_CodeCoverage_Report_Node*O WYPHP_CodeCoverage_Report_Node_Iterator&N OYPHP_CodeCoverage_Report_Node_File+M YYPHP_CodeCoverage_Report_Node_Directory!L EYPHP_CodeCoverage_Report_HTML*K WYPHP_CodeCoverage_Report_HTML_Renderer/J aYPHP_CodeCoverage_Report_HTML_Renderer_File4I kYPHP_CodeCoverage_Report_HTML_Renderer_Directory4H kYPHP_CodeCoverage_Report_HTML_Renderer_Dashboard$G KYPHP_CodeCoverage_Report_Factory#F IYPHP_CodeCoverage_Report_Crap4j#E IYPHP_CodeCoverage_Report_CloverD ;YPHP_CodeCoverage_FilterC AYPHP_CodeCoverage_Exception:B wYPHP_CodeCoverage_Exception_UnintentionallyCoveredCode#A IYPHP_CodeCoverage_Driver_Xdebug#@ IYPHP_CodeCoverage_Driver_PHPDBG!? EYPHP_CodeCoverage_Driver_HHVM> !XStringUtil= !XExportUtil< WRevealer; )WObjectProphecy: )WMethodProphecy9 %VThrowPromise8 'VReturnPromise7 7VReturnArgumentPromise6 +VCallbackPromise5 /UNoCallsPrediction4 3UCallTimesPrediction3 )UCallPrediction2 1UCallbackPrediction1 ;TObjectProphecyException0 ;TMethodProphecyException/ =SUnexpectedCallsException". GSUnexpectedCallsCountException- -SNoCallsException, ?SFailedPredictionException+ 1SAggregateException* =RInvalidArgumentException) AQReturnByReferenceException( ;QMethodNotFoundException' AQInterfaceNotFoundException& +QDoubleException% 9QClassNotFoundException$ 5QClassMirrorException# 7QClassCreatorException" ;PUnexpectedCallException! !OMethodNode  OClassNode %OArgumentNode #NClassMirror %NClassCreator 1NClassCodeGenerator -MTraversablePatch -MSplFileInfoPatch$ KMReflectionClassNewInstancePatch 5MProphecySubjectPatch )MMagicCallPatch %MKeywordPatch 1MHhvmExceptionPatch ;MDisableConstructorPatch 'LNameGenerator !LLazyDouble LDoubler 'LCachedDoubler KFactory /KClosureComparator !JCallCenter	 JCall IProphet
 IArgument	 HTypeToken 3HStringContainsToken -HObjectStateToken +HLogicalNotToken +HLogicalAndToken 3HIdenticalValueToken +HExactValueToken 'HCallbackToken 5HArrayEveryEntryToken  +HArrayEntryToken +HArrayCountToken~ 'HAnyValueToken} )HAnyValuesToken| /GArgumentsWildcard{ )FStringUtilSpecz %ERevealerSpecy AEObjectProphecySpecFixtureBx AEObjectProphecySpecFixtureAw 1EObjectProphecySpecv 1EMethodProphecySpecu 5EClassWithFinalMethodt ?DRequiredArgumentExceptions -DThrowPromiseSpecr /DReturnPromiseSpecq ?DReturnArgumentPromiseSpecp 'DClassCallbacko 3DCallbackPromiseSpecn 7CNoCallsPredictionSpecm ;CCallTimesPredictionSpecl 1CCallPredictionSpeck 9CCallbackPredictionSpec j CBObjectProphecyExceptionSpec i CBMethodProphecyExceptionSpec!h EAUnexpectedCallsExceptionSpec&g OAUnexpectedCallsCountExceptionSpecf 5ANoCallsExceptionSpece 9AAggregateExceptionSpec d C@MethodNotFoundExceptionSpec#c I@InterfaceNotFoundExceptionSpecb 3@DoubleExceptionSpeca A@ClassNotFoundExceptionSpec` =@ClassMirrorExceptionSpec_ ?@ClassCreatorExceptionSpec ^ C?UnexpectedCallExceptionSpec] )>MethodNodeSpec\ '>ClassNodeSpec[ ->ArgumentNodeSpecZ /=OptionalDepsClassY +=ClassMirrorSpecX -=ClassCreatorSpecW 9=ClassCodeGeneratorSpecV /<NameGeneratorSpecU )<LazyDoubleSpecT 5<WithFinalConstructorS #<DoublerSpecR 5;TraversablePatchSpecQ 5;SplFileInfoPatchSpec(P S;ReflectionClassNewInstancePatchSpecO =;ProphecySubjectPatchSpecN 1;MagicalApiExtendedM !;MagicalApiL 1;MagicCallPatchSpecK -;KeywordPatchSpecJ 9;HhvmExceptionPatchSpec   } [,U,wdM,tO x]@&





T
,
					o	I	&	g<wZE0
y_E*eF)|eL'mT6xcH/lN/                       M )_PHP_Token_ECHOL ;_PHP_Token_DOUBLE_QUOTESK 9_PHP_Token_DOUBLE_COLONJ 7_PHP_Token_DOUBLE_CASTI 9_PHP_Token_DOUBLE_ARROWH '_PHP_Token_DOT'G Q_PHP_Token_DOLLAR_OPEN_CURLY_BRACESF -_PHP_Token_DOLLARE 7_PHP_Token_DOC_COMMENTD %_PHP_Token_DOC /_PHP_Token_DNUMBERB 3_PHP_Token_DIV_EQUALA '_PHP_Token_DIV@ /_PHP_Token_DEFAULT? /_PHP_Token_DECLARE> '_PHP_Token_DEC= 5_PHP_Token_CURLY_OPEN< 1_PHP_Token_CONTINUE'; Q_PHP_Token_CONSTANT_ENCAPSED_STRING: +_PHP_Token_CONST9 9_PHP_Token_CONCAT_EQUAL8 /_PHP_Token_COMMENT7 +_PHP_Token_COMMA6 +_PHP_Token_COLON5 3_PHP_Token_CLOSE_TAG4 9_PHP_Token_CLOSE_SQUARE3 7_PHP_Token_CLOSE_CURLY2 ;_PHP_Token_CLOSE_BRACKET1 +_PHP_Token_CLONE"0 G_PHP_Token_CLASS_NAME_CONSTANT/ /_PHP_Token_CLASS_C. +_PHP_Token_CLASS- 3_PHP_Token_CHARACTER, +_PHP_Token_CATCH+ )_PHP_Token_CASE* +_PHP_Token_CARET) +_PHP_Token_BREAK( 3_PHP_Token_BOOL_CAST' 5_PHP_Token_BOOLEAN_OR& 7_PHP_Token_BOOLEAN_AND% ;_PHP_Token_BAD_CHARACTER$ 1_PHP_Token_BACKTICK# %_PHP_Token_AT" %_PHP_Token_AS! 5_PHP_Token_ARRAY_CAST  +_PHP_Token_ARRAY 3_PHP_Token_AND_EQUAL 3_PHP_Token_AMPERSAND 1_PHP_Token_ABSTRACT 3_PHP_Token_INTERFACE 1_PHP_Token_FUNCTION 1_PHP_Token_Includes$ K_PHP_TokenWithScopeAndVisibility 1_PHP_TokenWithScope _PHP_Token -_PHP_Token_Stream$ K_PHP_Token_Stream_CachingFactory '^PHP_TimerTest ^PHP_Timer ']Text_Template '\File_Iterator 7\File_Iterator_Factory 5\File_Iterator_Facade 7[source_with_namespace %ZCoveredClass 1ZCoveredParentClass ?YPHP_CodeCoverage_TestCase
 5YPHP_CodeCoverageTest	 ?YPHP_CodeCoverage_UtilTest( SYPHP_CodeCoverage_Report_FactoryTest' QYPHP_CodeCoverage_Report_CloverTest  CYPHP_CodeCoverage_FilterTest YBar YFoo4 kYCoveredClassWithAnonymousFunctionInStaticMethod" GYNotExistingCoveredElementTest  CYNamespaceCoveragePublicTest#  IYNamespaceCoverageProtectedTest! EYNamespaceCoveragePrivateTest#~ IYNamespaceCoverageNotPublicTest&} OYNamespaceCoverageNotProtectedTest$| KYNamespaceCoverageNotPrivateTest { CYNamespaceCoverageMethodTest%z MYNamespaceCoverageCoversClassTest+y YYNamespaceCoverageCoversClassPublicTestx AYNamespaceCoverageClassTest'w QYNamespaceCoverageClassExtendedTestv %YCoveredClassu 1YCoveredParentClass't QYCoverageTwoDefaultClassAnnotationss 1YCoveragePublicTestr 7YCoverageProtectedTestq 3YCoveragePrivateTestp 7YCoverageNotPublicTesto =YCoverageNotProtectedTestn 9YCoverageNotPrivateTestm 3YCoverageNothingTestl -YCoverageNoneTestk 1YCoverageMethodTest,j [YCoverageMethodParenthesesWhitespaceTest"i GYCoverageMethodParenthesesTest(h SYCoverageMethodOneLineAnnotationTestg 5YCoverageFunctionTest.f _YCoverageFunctionParenthesesWhitespaceTest$e KYCoverageFunctionParenthesesTestd /YCoverageClassTestc ?YCoverageClassExtendedTestb +YBankAccountTesta #YBankAccount` -YPHP_CodeCoverage_ 7YPHP_CodeCoverage_Util0^ cYPHP_CodeCoverage_Util_InvalidArgumentHelper ] CYPHP_CodeCoverage_Report_XML'\ QYPHP_CodeCoverage_Report_XML_Totals&[ OYPHP_CodeCoverage_Report_XML_Tests(Z SYPHP_CodeCoverage_Report_XML_Project%Y MYPHP_CodeCoverage_Report_XML_Node%X MYPHP_CodeCoverage_Report_XML_File*W WYPHP_CodeCoverage_Report_XML_File_Unit,V [YPHP_CodeCoverage_Report_XML_File_Report,U [YPHP_CodeCoverage_Report_XML_File_Method.T _YPHP_CodeCoverage_Report_XML_File_Coverage*S WYPHP_CodeCoverage_Report_XML_Directory!R EYPHP_CodeCoverage_Report_Text Q CYPHP_CodeCoverage_Report_PHP   2 v^B+t[E. w^@#y[9yeK4





}
\
>
"
					n	X	B	&	mU:&rR:#iM2dM4iR;iP9#qS8{lZN=2    ` _Foo_ _TestClass	^ _Test] !_implements\ _extends[ _publicZ _4Y k_class_with_method_that_declares_anonymous_classX 1_PHP_Token_XHP_TEXTW 5_PHP_Token_XHP_TAG_LTV 5_PHP_Token_XHP_TAG_GTU 9_PHP_Token_XHP_REQUIREDT 3_PHP_Token_XHP_LABELS 9_PHP_Token_XHP_CHILDREN!R E_PHP_Token_XHP_CATEGORY_LABELQ 9_PHP_Token_XHP_CATEGORYP ;_PHP_Token_XHP_ATTRIBUTEO +_PHP_Token_WHEREN 7_PHP_Token_TYPELIST_LTM 7_PHP_Token_TYPELIST_GTL )_PHP_Token_TYPEK +_PHP_Token_SHAPEJ /_PHP_Token_ONUMBERI 3_PHP_Token_LAMBDA_OPH 3_PHP_Token_LAMBDA_CPG 9_PHP_Token_LAMBDA_ARROWF )_PHP_Token_JOINE %_PHP_Token_IND -_PHP_Token_EQUALSC )_PHP_Token_ENUM#B I_PHP_Token_COMPILER_HALT_OFFSETA +_PHP_Token_AWAIT@ +_PHP_Token_ASYNC? 5_PHP_Token_YIELD_FROM> 3_PHP_Token_SPACESHIP= 1_PHP_Token_COALESCE< 3_PHP_Token_POW_EQUAL; '_PHP_Token_POW: 1_PHP_Token_ELLIPSIS9 +_PHP_Token_YIELD8 /_PHP_Token_FINALLY7 /_PHP_Token_TRAIT_C6 +_PHP_Token_TRAIT5 3_PHP_Token_INSTEADOF4 1_PHP_Token_CALLABLE3 9_PHP_Token_NS_SEPARATOR2 )_PHP_Token_NS_C1 3_PHP_Token_NAMESPACE0 )_PHP_Token_GOTO/ '_PHP_Token_DIR. ;_PHP_Token_HALT_COMPILER- 3_PHP_Token_XOR_EQUAL, 5_PHP_Token_WHITESPACE+ +_PHP_Token_WHILE* 1_PHP_Token_VARIABLE) '_PHP_Token_VAR( '_PHP_Token_USE' 5_PHP_Token_UNSET_CAST& +_PHP_Token_UNSET% '_PHP_Token_TRY$ +_PHP_Token_TILDE# +_PHP_Token_THROW" -_PHP_Token_SWITCH! =_PHP_Token_STRING_VARNAME  7_PHP_Token_STRING_CAST -_PHP_Token_STRING -_PHP_Token_STATIC ;_PHP_Token_START_HEREDOC 1_PHP_Token_SR_EQUAL %_PHP_Token_SR 1_PHP_Token_SL_EQUAL %_PHP_Token_SL 3_PHP_Token_SEMICOLON -_PHP_Token_RETURN 9_PHP_Token_REQUIRE_ONCE /_PHP_Token_REQUIRE ;_PHP_Token_QUESTION_MARK -_PHP_Token_PUBLIC 3_PHP_Token_PROTECTED /_PHP_Token_PRIVATE +_PHP_Token_PRINT 5_PHP_Token_PLUS_EQUAL )_PHP_Token_PLUS )_PHP_Token_PIPE /_PHP_Token_PERCENT# I_PHP_Token_PAAMAYIM_NEKUDOTAYIM
 1_PHP_Token_OR_EQUAL!	 E_PHP_Token_OPEN_TAG_WITH_ECHO 1_PHP_Token_OPEN_TAG 7_PHP_Token_OPEN_SQUARE 5_PHP_Token_OPEN_CURLY 9_PHP_Token_OPEN_BRACKET ?_PHP_Token_OBJECT_OPERATOR 7_PHP_Token_OBJECT_CAST 5_PHP_Token_NUM_STRING '_PHP_Token_NEW  3_PHP_Token_MUL_EQUAL )_PHP_Token_MULT~ 3_PHP_Token_MOD_EQUAL} 7_PHP_Token_MINUS_EQUAL| +_PHP_Token_MINUS{ 1_PHP_Token_METHOD_Cz %_PHP_Token_LTy 7_PHP_Token_LOGICAL_XORx 5_PHP_Token_LOGICAL_ORw 7_PHP_Token_LOGICAL_ANDv /_PHP_Token_LNUMBERu )_PHP_Token_LISTt )_PHP_Token_LINE"s G_PHP_Token_IS_SMALLER_OR_EQUALr A_PHP_Token_IS_NOT_IDENTICALq 9_PHP_Token_IS_NOT_EQUALp 9_PHP_Token_IS_IDENTICAL"o G_PHP_Token_IS_GREATER_OR_EQUALn 1_PHP_Token_IS_EQUALm +_PHP_Token_ISSETl 1_PHP_Token_INT_CASTk 5_PHP_Token_INSTANCEOFj 7_PHP_Token_INLINE_HTMLi 9_PHP_Token_INCLUDE_ONCEh /_PHP_Token_INCLUDEg '_PHP_Token_INCf 5_PHP_Token_IMPLEMENTSe %_PHP_Token_IFd %_PHP_Token_GTc -_PHP_Token_GLOBALb -_PHP_Token_FUNC_Ca /_PHP_Token_FOREACH` '_PHP_Token_FOR_ +_PHP_Token_FINAL^ )_PHP_Token_FILE] /_PHP_Token_EXTENDS\ )_PHP_Token_EXIT[ A_PHP_Token_EXCLAMATION_MARKZ )_PHP_Token_EVALY +_PHP_Token_EQUALX 7_PHP_Token_END_HEREDOCW 1_PHP_Token_ENDWHILEV 3_PHP_Token_ENDSWITCHU +_PHP_Token_ENDIFT 5_PHP_Token_ENDFOREACHS -_PHP_Token_ENDFORR 5_PHP_Token_ENDDECLARE&Q O_PHP_Token_ENCAPSED_AND_WHITESPACEP +_PHP_Token_EMPTYO -_PHP_Token_ELSEIFN )_PHP_Token_ELSE   `  rS4f>xNi<rD


s
C
				`	/	=Z,g2rH"[/uM$\8fF!     (@ SdPHPUnit_Runner_Filter_Group_Include(? SdPHPUnit_Runner_Filter_Group_Exclude"> GdPHPUnit_Runner_Filter_Factory= =dPHPUnit_Runner_Exception"< GdPHPUnit_Runner_BaseTestRunner; ?dPHPUnit_Framework_Warning6: odPHPUnit_Framework_UnintentionallyCoveredCodeError 9 CdPHPUnit_Framework_TestSuite-8 ]dPHPUnit_Framework_TestSuite_DataProvider!7 EdPHPUnit_Framework_TestResult"6 GdPHPUnit_Framework_TestFailure5 AdPHPUnit_Framework_TestCase%4 MdPHPUnit_Framework_SyntheticError,3 [dPHPUnit_Framework_SkippedTestSuiteError'2 QdPHPUnit_Framework_SkippedTestError&1 OdPHPUnit_Framework_SkippedTestCase%0 MdPHPUnit_Framework_RiskyTestError"/ GdPHPUnit_Framework_OutputError3. idPHPUnit_Framework_InvalidCoversTargetException/- adPHPUnit_Framework_InvalidCoversTargetError*, WdPHPUnit_Framework_IncompleteTestError)+ UdPHPUnit_Framework_IncompleteTestCase1* edPHPUnit_Framework_ExpectationFailedException') QdPHPUnit_Framework_ExceptionWrapper ( CdPHPUnit_Framework_Exception' ;dPHPUnit_Framework_Error$& KdPHPUnit_Framework_Error_Warning#% IdPHPUnit_Framework_Error_Notice'$ QdPHPUnit_Framework_Error_Deprecated!# EdPHPUnit_Framework_Constraint%" MdPHPUnit_Framework_Constraint_Xor9! udPHPUnit_Framework_Constraint_TraversableContainsOnly5  mdPHPUnit_Framework_Constraint_TraversableContains2 gdPHPUnit_Framework_Constraint_StringStartsWith/ adPHPUnit_Framework_Constraint_StringMatches0 cdPHPUnit_Framework_Constraint_StringEndsWith0 cdPHPUnit_Framework_Constraint_StringContains* WdPHPUnit_Framework_Constraint_SameSize+ YdPHPUnit_Framework_Constraint_PCREMatch$ KdPHPUnit_Framework_Constraint_Or4 kdPHPUnit_Framework_Constraint_ObjectHasAttribute% MdPHPUnit_Framework_Constraint_Not* WdPHPUnit_Framework_Constraint_LessThan- ]dPHPUnit_Framework_Constraint_JsonMatchesC dPHPUnit_Framework_Constraint_JsonMatches_ErrorMessageProvider( SdPHPUnit_Framework_Constraint_IsType( SdPHPUnit_Framework_Constraint_IsTrue( SdPHPUnit_Framework_Constraint_IsNull( SdPHPUnit_Framework_Constraint_IsJson. _dPHPUnit_Framework_Constraint_IsInstanceOf- ]dPHPUnit_Framework_Constraint_IsIdentical) UdPHPUnit_Framework_Constraint_IsFalse) UdPHPUnit_Framework_Constraint_IsEqual) UdPHPUnit_Framework_Constraint_IsEmpty,
 [dPHPUnit_Framework_Constraint_IsAnything-	 ]dPHPUnit_Framework_Constraint_GreaterThan, [dPHPUnit_Framework_Constraint_FileExists8 sdPHPUnit_Framework_Constraint_ExceptionMessageRegExp2 gdPHPUnit_Framework_Constraint_ExceptionMessage/ adPHPUnit_Framework_Constraint_ExceptionCode+ YdPHPUnit_Framework_Constraint_Exception' QdPHPUnit_Framework_Constraint_Count+ YdPHPUnit_Framework_Constraint_Composite9 udPHPUnit_Framework_Constraint_ClassHasStaticAttribute3  idPHPUnit_Framework_Constraint_ClassHasAttribute* WdPHPUnit_Framework_Constraint_Callback+~ YdPHPUnit_Framework_Constraint_Attribute-} ]dPHPUnit_Framework_Constraint_ArraySubset-| ]dPHPUnit_Framework_Constraint_ArrayHasKey%{ MdPHPUnit_Framework_Constraint_And,z [dPHPUnit_Framework_CodeCoverageException'y QdPHPUnit_Framework_BaseTestListener+x YdPHPUnit_Framework_AssertionFailedErrorw =dPHPUnit_Framework_Assert&v OdPHPUnit_Extensions_TicketListener%u MdPHPUnit_Extensions_TestDecorator$t KdPHPUnit_Extensions_RepeatedTest%s MdPHPUnit_Extensions_PhptTestSuite$r KdPHPUnit_Extensions_PhptTestCase&q OdPHPUnit_Extensions_GroupTestSuitep )cTestClassInBazo bTestClassn aExtenderm )`TestClassInBarl `TestClassk `Bazj '_PHP_TokenTesti ;_PHP_Token_NamespaceTesth ;_PHP_Token_InterfaceTestg 7_PHP_Token_IncludeTestf 9_PHP_Token_FunctionTeste 7_PHP_Token_ClosureTestd 3_PHP_Token_ClassTestc _ab _ca _A    aC~_D)	hH0l=~kT*





_
5
					s	Z	3	gM5mC) lO2}aB+rcN<!\5y`O8% |P+             ? -dRequirementsTest"> GdRequirementsClassDocBlockTest)= UdRequirementsClassBeforeClassHookTest< -dOverrideTestCase; )dOutputTestCase: #dOneTestCase9 +dNotVoidTestCase8 /dNotPublicTestCase7 #dNothingTest"6 GdNotExistingCoveredElementTest5 #dNoTestCases4 +dNoTestCaseClass3 dNonStatic2 /dNoArgTestCaseTest 1 CdNamespaceCoveragePublicTest#0 IdNamespaceCoverageProtectedTest!/ EdNamespaceCoveragePrivateTest#. IdNamespaceCoverageNotPublicTest&- OdNamespaceCoverageNotProtectedTest$, KdNamespaceCoverageNotPrivateTest + CdNamespaceCoverageMethodTest%* MdNamespaceCoverageCoversClassTest+) YdNamespaceCoverageCoversClassPublicTest( AdNamespaceCoverageClassTest'' QdNamespaceCoverageClassExtendedTest& 3dMultiDependencyTest% !dMockRunner$ 'dIsolationTest# dIniTest" /dInheritedTestCase! %dInheritanceB  %dInheritanceA )dIncompleteTest dFatalTest #dFailureTest dFailure 'dExceptionTest 1dExceptionStackTest +dExceptionInTest ;dExceptionInTearDownTest 5dExceptionInSetUpTest' QdExceptionInAssertPreConditionsTest( SdExceptionInAssertPostConditionsTest /dEmptyTestCaseTest )dDummyException )dDoubleTestCase 3dDependencyTestSuite 7dDependencySuccessTest 7dDependencyFailureTest -dDataProviderTest ;dDataProviderSkippedTest AdDataProviderIncompleteTest 9dDataProviderFilterTest
 7dDataProviderDebugTest	 'dCustomPrinter %dCoveredClass 1dCoveredParentClass' QdCoverageTwoDefaultClassAnnotations 1dCoveragePublicTest 7dCoverageProtectedTest 3dCoveragePrivateTest 7dCoverageNotPublicTest =dCoverageNotProtectedTest  9dCoverageNotPrivateTest 3dCoverageNothingTest~ -dCoverageNoneTest} 1dCoverageMethodTest,| [dCoverageMethodParenthesesWhitespaceTest"{ GdCoverageMethodParenthesesTest(z SdCoverageMethodOneLineAnnotationTesty 5dCoverageFunctionTest.x _dCoverageFunctionParenthesesWhitespaceTest$w KdCoverageFunctionParenthesesTestv /dCoverageClassTestu ?dCoverageClassExtendedTestt %dConcreteTest&s OdConcreteWithMyCustomExtensionTestr /dClassWithToString$q KdClassWithScalarTypeDeclarations!p EdClassWithNonPublicAttributes'o QdParentClassWithProtectedAttributes%n MdParentClassWithPrivateAttributes&m OdChangeCurrentWorkingDirectoryTestl !dCalculator	k dBook!j EdBeforeClassAndAfterClassTesti 1dBeforeAndAfterTesth 9dBaseTestListenerSample'g QdBankAccountWithCustomExtensionTestf +dBankAccountTeste #dBankAccountd 5dBankAccountExceptionc dAuthorb %dAbstractTesta -dPHPUnit_Util_XML` /dPHPUnit_Util_Type#_ IdPHPUnit_Util_TestSuiteIterator'^ QdPHPUnit_Util_TestDox_ResultPrinter,] [dPHPUnit_Util_TestDox_ResultPrinter_Text,\ [dPHPUnit_Util_TestDox_ResultPrinter_HTML([ SdPHPUnit_Util_TestDox_NamePrettifierZ /dPHPUnit_Util_TestY 3dPHPUnit_Util_StringX 1dPHPUnit_Util_RegexW 5dPHPUnit_Util_PrinterV -dPHPUnit_Util_PHPU =dPHPUnit_Util_PHP_WindowsT =dPHPUnit_Util_PHP_DefaultS 5dPHPUnit_Util_Log_TAPR 9dPHPUnit_Util_Log_JUnitQ 7dPHPUnit_Util_Log_JSON'P QdPHPUnit_Util_InvalidArgumentHelperO =dPHPUnit_Util_GlobalStateN 3dPHPUnit_Util_GetoptM 3dPHPUnit_Util_FilterL ;dPHPUnit_Util_FilesystemK ;dPHPUnit_Util_FileloaderJ ?dPHPUnit_Util_ErrorHandlerI AdPHPUnit_Util_ConfigurationH 9dPHPUnit_Util_BlacklistG ?dPHPUnit_TextUI_TestRunner!F EdPHPUnit_TextUI_ResultPrinterE 9dPHPUnit_TextUI_CommandD 9dPHPUnit_Runner_Version+C YdPHPUnit_Runner_StandardTestSuiteLoaderB AdPHPUnit_Runner_Filter_Test.A _dPHPUnit_Runner_Filter_GroupFilterIterator   y zdP;(|Y=[; qaM1p[>)






~
^
J
6
"
							v	X	A	%	s6b,>Eb"Y)M0%s]L1             '8 QgFramework_MockObject_GeneratorTest7 3gStaticMockTestClass6 gSomeClass5 )gSingletonClass4 5gPartialMockTestClass3 gMockable2 ?gMethodCallbackByReference1 )gMethodCallback0 gFoo/ 7gClassWithStaticMethod$. KgClassThatImplementsSerializable- gBar, 7gAbstractMockTestClass5+ mgPHPUnit_Framework_MockObject_Stub_ReturnValueMap1* egPHPUnit_Framework_MockObject_Stub_ReturnSelf5) mgPHPUnit_Framework_MockObject_Stub_ReturnCallback5( mgPHPUnit_Framework_MockObject_Stub_ReturnArgument-' ]gPHPUnit_Framework_MockObject_Stub_Return0& cgPHPUnit_Framework_MockObject_Stub_Exception7% qgPHPUnit_Framework_MockObject_Stub_ConsecutiveCalls-$ ]gPHPUnit_Framework_MockObject_MockBuilder)# UgPHPUnit_Framework_MockObject_Matcher=" }gPHPUnit_Framework_MockObject_Matcher_StatelessInvocation4! kgPHPUnit_Framework_MockObject_Matcher_Parameters4  kgPHPUnit_Framework_MockObject_Matcher_MethodName9 ugPHPUnit_Framework_MockObject_Matcher_InvokedRecorder6 ogPHPUnit_Framework_MockObject_Matcher_InvokedCount< {gPHPUnit_Framework_MockObject_Matcher_InvokedAtMostCount< {gPHPUnit_Framework_MockObject_Matcher_InvokedAtLeastOnce= }gPHPUnit_Framework_MockObject_Matcher_InvokedAtLeastCount8 sgPHPUnit_Framework_MockObject_Matcher_InvokedAtIndex@ gPHPUnit_Framework_MockObject_Matcher_ConsecutiveParameters7 qgPHPUnit_Framework_MockObject_Matcher_AnyParameters9 ugPHPUnit_Framework_MockObject_Matcher_AnyInvokedCount2 ggPHPUnit_Framework_MockObject_InvocationMocker3 igPHPUnit_Framework_MockObject_Invocation_Static3 igPHPUnit_Framework_MockObject_Invocation_Object+ YgPHPUnit_Framework_MockObject_Generator2 ggPHPUnit_Framework_MockObject_RuntimeException8 sgPHPUnit_Framework_MockObject_BadMethodCallException: wgPHPUnit_Framework_MockObject_Builder_InvocationMocker %fCoveredClass 1fCoveredParentClass 9eExceptionNamespaceTest %dUtil_XMLTest 'dUtil_TestTest$
 KdUtil_TestDox_NamePrettifierTest	 )dUtil_RegexTest 5dUtil_GlobalStateTest +dUtil_GetoptTest 9dUtil_ConfigurationTest ?dRunner_BaseTestRunnerTest %dIssue797Test %dIssue765Test %dNewException #dIssue74Test  %dIssue581Test %dIssue503Test~ %dIssue498Test} %dIssue445Test| %dIssue433Test{ %dIssue322Testz =dIssue244ExceptionIntCodey /dIssue244Exceptionx %dIssue244Testw 'dIssue1570Testv 'dIssue1472Testu 'dIssue1471Testt 'dIssue1468Tests 'dIssue1437Testr 'dIssue1374Testq 'dIssue1351Testp 7dChildProcessClass1351o 'dIssue1348Testn 'dIssue1337Testm 'dIssue1335Testl 'dIssue1330Testk 'dIssue1265Testj 'dIssue1216Testi 'dIssue1149Testh dTwoTestg #dParentSuitef dOneTeste !dChildSuited 5dFoo_Bar_Issue684Testc %dIssue578Testb dIssue523a %dIssue523Test` 'dIssue1021Test_ AdFramework_TestListenerTest"^ GdFramework_TestImplementorTest] ?dFramework_TestFailureTest\ 9dFramework_TestCaseTest[ 3dFramework_SuiteTestZ =dFramework_ConstraintTest)Y UdFramework_Constraint_JsonMatchesTest>X dFramework_Constraint_JsonMatches_ErrorMessageProviderTestW 5dExceptionMessageTestV AdExceptionMessageRegExpTestU dCountTest#T IdFramework_BaseTestListenerTestS 5dFramework_AssertTest R CdExtensions_RepeatedTestTestQ -dPhpTestCaseProxy P CdExtensions_PhptTestCaseTestO dWasRunN =dThrowNoExceptionTestCaseM 9dThrowExceptionTestCaseL %dTestWithTestK dTestErrorJ #dTestSkippedI 'dTestIterator2H %dTestIteratorG )dTestIncompleteF 3dTemplateMethodsTestE dSuccessD dStructC dStackTestB dSingletonA #dSampleClass@ /dSampleArrayAccess   0 {=oZ=%w_MD2yfP/ sYK1 





w
b
F
*
						m	W	D	+	p\E5q[0~NQ{7T$<a0                                          .8 ] PHPUnitMultipleClassesWithNamespace1Test-7 [ PHPUnitMultipleClassesWithNamespaceTest46 i Stagehand_TestRunner_PHPUnitWithAnyPatternTest74 o Stagehand_TestRunner_PHPUnitTest2_PHPUnitPassTest73 o Stagehand_TestRunner_PHPUnitTest1_PHPUnitPassTestH2  Stagehand_TestRunner_PHPUnitSpecialCharactersInFailureMessageTest=1 { Stagehand_TestRunner_PHPUnitSkippedWithDataProviderTest-0 [ Stagehand_TestRunner_PHPUnitSkippedTest*/ U Stagehand_TestRunner_PHPUnitPassTest-. [ Stagehand_TestRunner_PHPUnitNoTestsTest6- m Stagehand_TestRunner_PHPUnitMultipleFailuresTest6, m Stagehand_TestRunner_PHPUnitMultipleClasses2Test6+ m Stagehand_TestRunner_PHPUnitMultipleClasses1Test5* k Stagehand_TestRunner_PHPUnitMultipleClassesTestA)  Stagehand_TestRunner_PHPUnitIncompleteWithDataProviderTest0( a Stagehand_TestRunner_PHPUnitIncompleteTest,' Y Stagehand_TestRunner_PHPUnitGroupsTest-& [ Stagehand_TestRunner_PHPUnitFailureTestA%  Stagehand_TestRunner_PHPUnitFailureInAnonymousFunctionTest4$ i Stagehand_TestRunner_PHPUnitFailureAndPassTest.# ] Stagehand_TestRunner_PHPUnitExtendedTest/" _ Stagehand_TestRunner_PHPUnitExceptionTest+! W Stagehand_TestRunner_PHPUnitErrorTest2  e Stagehand_TestRunner_PHPUnitErrorAndPassTest- [ Stagehand_TestRunner_PHPUnitDependsTest2 e Stagehand_TestRunner_PHPUnitDataProviderTest, Y Stagehand_TestRunner_PHPUnitCommonTest! C NonExistingDataProviderTest ) TestRunnerTest ! TestRunner( SPHPUnitCommandLineOptionBuilderTest )FatalErrorTest 9CommandLineBuilderTest$ KPHPUnitCommandLineOptionBuilder !FatalError 5ContinuousTestRunner 1CommandLineBuilder 5AlterationMonitoring 3~PHPUnitPreparerTest ~Preparer +~PHPUnitPreparer %}NotifierTest }Notifier %}Notification 3|XMLStreamWriterTest
 +|XMLStreamWriter	 '|UTF8Converter 3|TestsuiteDOMElement 5|StreamJUnitXMLWriter /|NullUTF8Converter /|DOMJUnitXMLWriter #{Transformer ){Transformation 1{PHPUnitTransformer 1{GeneralTransformer   CzPHPUnitConfigurationFactory -yPHPUnitExtension~ -yGeneralExtension"} GyFrameworkUnavailableException| yExtension{ 5xPHPUnitConfigurationz 5xGeneralConfigurationy 'xConfiguration,x [wReplaceDefinitionByPluginDefinitionPassw wCompilerv -vPluginRepositoryu vPlugint 'vPHPUnitPlugins 5uTestTargetRepositoryr #uEnvironmentq uBootstrapp 1uApplicationContexto tScriptn 1sCollectingTypeTestm -sPHPUnitCollectorl sCollectork 7sCollectingTypeFactoryj )sCollectingTypei !rTestRunnerh rCommandg qTestCasef 1qPHPUnitCommandTeste 'qPluginCommandd ?qPHPUnitPassthroughCommandc )qPHPUnitCommandb #qListCommanda #qHelpCommand` )qCompileCommand_ /qCommandRepository^ qCommand] #pApplication\ oTerminal[ nYamlTestZ nBY !nParserTestX 1nParseExceptionTestW !nInlineTestV nAU !nDumperTestT -mRuntimeExceptionS )mParseExceptionR 'mDumpException	Q lYamlP lUnescaperO lParserN lInlineM lEscaperL lDumperK kVersionJ 9jBlacklistedImplementorI -jBlacklistedClassH 7jBlacklistedChildClassG 'iBlacklistTestF iSnapshotE -iRuntimeExceptionD iRestorerC iBlacklistB #hRuntimeTestA #hConsoleTest@ hRuntime? hConsole> ?gFramework_ProxyObjectTest= =gFramework_MockObjectTest;< ygFramework_MockObject_Matcher_ConsecutiveParametersTest/; agFramework_MockObject_Invocation_StaticTest/: agFramework_MockObject_Invocation_ObjectTest9 ?gFramework_MockBuilderTest   Q |dL6iO>	zkS< \=,lH4







q
U
=
*
						r	]	I	2	rV8&O/w_I1rR3aB"{hQ<eR; 	nQ                               M 5 OutputFormatterStyleL + OutputFormatterK 7 ConsoleTerminateEventJ 7 ConsoleExceptionEventI % ConsoleEventH 3 ConsoleCommandEventG ' XmlDescriptorF ) TextDescriptorE 1 MarkdownDescriptorD ) JsonDescriptorC ! DescriptorB 9 ApplicationDescriptionA # ListCommand@ # HelpCommand?  Command>  Shell= ' ConsoleEvents< # Application;  XmlUtils: - FileResourceTest9 7 DirectoryResourceTest8 % XmlUtilsTest7 ) ProjectLoader16 ! LoaderTest5 1 LoaderResolverTest4 ) TestFileLoader3 ) FileLoaderTest2 5 DelegatingLoaderTest1 5 ExampleConfiguration!0 C FileLoaderLoadExceptionTest/ ; YamlReferenceDumperTest. 9 XmlReferenceDumperTest- 9 VariableNodeDefinition, # NodeBuilder+ / BarNodeDefinition* + TreeBuilderTest) ? NumericNodeDefinitionTest( 1 SomeNodeDefinition' + NodeBuilderTest& + ExprBuilderTest% 9 EnumNodeDefinitionTest$ ; ArrayNodeDefinitionTest# ) ScalarNodeTest" ; PrototypedArrayNodeTest! / NormalizationTest   MergeTest + IntegerNodeTest ' FloatNodeTest - FinalizationTest % EnumNodeTest + BooleanNodeTest ' ArrayNodeTest + FileLocatorTest + ConfigCacheTest 9 ConfigCacheFactoryTest % FileResource / DirectoryResource ) LoaderResolver  Loader ! FileLoader - DelegatingLoader ; FileLoaderLoadException0 a FileLoaderImportCircularReferenceException / UnsetKeyException 5 InvalidTypeException  A InvalidDefinitionException# G InvalidConfigurationException!
 C ForbiddenOverwriteException	  Exception 7 DuplicateKeyException 3 YamlReferenceDumper 1 XmlReferenceDumper 9 VariableNodeDefinition / ValidationBuilder # TreeBuilder 5 ScalarNodeDefinition 7 NumericNodeDefinition  5 NormalizationBuilder ) NodeDefinition~ # NodeBuilder} % MergeBuilder| 7 IntegerNodeDefinition{ 3 FloatNodeDefinitionz # ExprBuildery 1 EnumNodeDefinitionx 7 BooleanNodeDefinitionw 3 ArrayNodeDefinitionv % VariableNodeu ! ScalarNodet + ReferenceDumpers 3 PrototypedArrayNoder  Processorq # NumericNodep # IntegerNodeo  FloatNoden  EnumNodem # BooleanNodel  BaseNodek  ArrayNodej # FileLocatori 1 ConfigCacheFactoryh # ConfigCache!g C UnfreezableContainerBuilderf - ComponentFactory"e E ComponentAwareFactoryFactoryd 7 ComponentAwareFactoryc  Compilerb 3 ResourceChangeEventa / AlterationMonitor` 5 TestComponentFactory_  TestCase^ 9 TestApplicationContext#] G PHPUnitComponentAwareTestCase\ 9 ComponentAwareTestCase[ 9 StreamingPHPUnitRunner Z A PHPUnitJUnitXMLWritingTestY 9 JUnitXMLStreamRecorderX 7 CompatibilityTestCaseW 3 OutputBufferingTestV ) FileSystemTestU + TestTargetsTestT  StringS + OutputBufferingR  OSQ # LegacyProxyP ! FileSystemO - FileStreamWriterN % FailureTraceM ) ErrorReportingL  Coloring!K C PHPUnitGroupFilterTestSuiteJ  TestCaseI / PHPUnitRunnerTestH 7 CompatibilityTestCaseG 5 PHPUnitCollectorTestF  RunnerE ' PHPUnitRunnerD ! TestRunnerC  TestDoxB  Stream!A C DetailedProgressPrinterTest@ ) TestDoxPrinter? ' ResultPrinter> + ProgressPrinter= + JUnitXMLPrinter< ; DetailedProgressPrinter; - PHPUnitTraitTest: / PHPUnitOutputTest.9 ] PHPUnitMultipleClassesWithNamespace2Test   A {lZA+ m[H:$jS6%r^F.r^J6"





p
Q
6

					v	`	A	 	v_E)v]D&rO=+i4 }jD#sJ#wdE&iA                   %` K ScopeCrossingInjectionException_ - RuntimeException ^ A ParameterNotFoundException)] S ParameterCircularReferenceException\ 5 OutOfBoundsException[ ) LogicExceptionZ = InvalidArgumentExceptionY 9 InactiveScopeExceptionX 9 BadMethodCallExceptionW ! YamlDumperV  XmlDumperU  PhpDumperT ) GraphvizDumperS  DumperR ? ServiceReferenceGraphNodeQ ? ServiceReferenceGraphEdgeP 7 ServiceReferenceGraph$O I ResolveReferencesToAliasesPass&N M ResolveParameterPlaceHoldersPass"M E ResolveInvalidReferencesPass$L I ResolveDefinitionTemplatesPass(K Q ReplaceAliasByActualDefinitionPassJ % RepeatedPass!I C RemoveUnusedDefinitionsPassH = RemovePrivateAliasesPass#G G RemoveAbstractDefinitionsPassF ! PassConfig%E K MergeExtensionConfigurationPassD - LoggingFormatter"C E InlineServiceDefinitionsPassB 5 DecoratorServicePassA  Compiler @ A CheckReferenceValidityPass2? e CheckExceptionOnInvalidReferenceBehaviorPass!> C CheckDefinitionValidityPass!= C CheckCircularReferencesPass< 5 AutoAliasServicePass"; E AnalyzeServiceReferencesPass:  Variable9 - SimpleXMLElement8  Scope7  Reference6  Parameter 5 A ExpressionLanguageProvider4 1 ExpressionLanguage3 3 DefinitionDecorator2 ! Definition1 - ContainerBuilder0 ) ContainerAware/  Container.  Alias- / CommandTesterTest, 7 ApplicationTesterTest+ - SymfonyStyleTest* - StreamOutputTest) ! TestOutput( ! OutputTest' ) NullOutputTest& / ConsoleOutputTest% / ConsoleLoggerTest$ + StringInputTest#  InputTest" + InputOptionTest! 3 InputDefinitionTest  / InputArgumentTest ) ArrayInputTest ' ArgvInputTest  TableTest ) TableStyleTest 1 QuestionHelperTest + ProgressBarTest / ProcessHelperTest 7 LegacyTableHelperTest = LegacyProgressHelperTest 9 LegacyDialogHelperTest ' HelperSetTest 3 FormatterHelperTest  TableCell 3 OutputFormatterTest = OutputFormatterStyleTest# G OutputFormatterStyleStackTest # DummyOutput 1 DescriptorCommand2 1 DescriptorCommand1 9 DescriptorApplication2 9 DescriptorApplication1
 # TestCommand	 = FooSubnamespaced2Command = FooSubnamespaced1Command ! FooCommand ' FoobarCommand # Foo5Command # Foo4Command # Foo3Command # Foo2Command # Foo1Command  ' BarBucCommand / XmlDescriptorTest~ 1 TextDescriptorTest} + ObjectsProvider| 9 MarkdownDescriptorTest{ 1 JsonDescriptorTestz 9 AbstractDescriptorTesty + ListCommandTestx + HelpCommandTestw # CommandTest%v K CustomDefaultCommandApplicationu / CustomApplicationt + ApplicationTests ' CommandTesterr / ApplicationTesterq % SymfonyStylep # OutputStyleo  Questionn 5 ConfirmationQuestionm ) ChoiceQuestionl % StreamOutputk  Outputj ! NullOutputi ' ConsoleOutputh ) BufferedOutputg ' ConsoleLoggerf # StringInpute # InputOptiond + InputDefinitionc ' InputArgumentb  Inputa ! ArrayInput`  ArgvInput_ ! TableStyle^ ) TableSeparator] # TableHelper\  TableCell[  TableZ 7 SymfonyQuestionHelperY ) QuestionHelperX ) ProgressHelperW # ProgressBarV ' ProcessHelperU - InputAwareHelperT  HelperSetS  HelperR + FormatterHelperQ % DialogHelperP - DescriptorHelperO 5 DebugFormatterHelperN ? OutputFormatterStyleStack   . {[H2	mL0qJ) a2iX?)	




{
e
O
4

							k	K	+		eJ+qYA%c=}\5fC#
ucN7"yN(udK.                    i 5 MockFileListIteratorh - IteratorTestCaseg  Iteratorf 1 FilterIteratorTeste / InnerTypeIterator d A FileTypeFilterIteratorTestc 7 FilePathsIteratorTestb / InnerNameIterator a A FilenameFilterIteratorTest#` G FilecontentFilterIteratorTest(_ Q ExcludeDirectoryFilterIteratorTest"^ E DepthRangeFilterIteratorTest!] C DateRangeFilterIteratorTest\ = CustomFilterIteratorTest[  GlobTestZ ! FinderTestY 1 UnsupportedAdapterX % NamedAdapterW ) FailingAdapterV % DummyAdapterU  RegexTestT  GlobTestS ) ExpressionTestR 5 NumberComparatorTestQ 1 DateComparatorTestP ) ComparatorTestO  ShellN  CommandM - SortableIteratorL ; SizeRangeFilterIterator K A RecursiveDirectoryIteratorJ 1 PathFilterIterator I A MultiplePcreFilterIteratorH ) FilterIteratorG 9 FileTypeFilterIteratorF / FilePathsIteratorE 9 FilenameFilterIteratorD ? FilecontentFilterIterator$C I ExcludeDirectoryFilterIteratorB = DepthRangeFilterIteratorA ; DateRangeFilterIterator@ 5 CustomFilterIterator? # SplFileInfo
>  Glob=  Finder<  Regex
;  Glob: ! Expression"9 E ShellCommandFailureException#8 G OperationNotPermitedException7 ; AdapterFailureException6 7 AccessDeniedException5 - NumberComparator4 ) DateComparator3 ! Comparator2 ! PhpAdapter1 ) GnuFindAdapter0 ) BsdFindAdapter/ 3 AbstractFindAdapter. + AbstractAdapter- + LockHandlerTest, 1 FilesystemTestCase+ ) FilesystemTest* ' ExceptionTest) # LockHandler( ! Filesystem' # IOException& 7 FileNotFoundException% - ParameterBagTest$ 9 FrozenParameterBagTest# 1 YamlFileLoaderTest" / XmlFileLoaderTest! / PhpFileLoaderTest  / IniFileLoaderTest / ClosureLoaderTest ) NullDumperTest! C RealServiceInstantiatorTest  Container  FooClass ; ProjectServiceContainer ; ProjectWithXsdExtension - ProjectExtension % BarUserClass  BazClass  BarClass ; ProjectServiceContainer ' ExtensionTest ) YamlDumperTest ' XmlDumperTest ' PhpDumperTest 1 GraphvizDumperTest ' ReferenceTest ' ParameterTest 5 LegacyDefinitionTest  A LegacyContainerBuilderTest
 ) DefinitionTest	 ; DefinitionDecoratorTest ) CrossCheckTest ; ProjectServiceContainer ' ContainerTest - ProjectContainer  FooClass 5 ContainerBuilderTest( Q ResolveReferencesToAliasesPassTest* U ResolveParameterPlaceHoldersPassTest&  M ResolveInvalidReferencesPassTest( Q ResolveDefinitionTemplatesPassTest,~ Y ReplaceAliasByActualDefinitionPassTest%} K RemoveUnusedDefinitionsPassTest)| S MergeExtensionConfigurationPassTest0{ a LegacyResolveParameterPlaceHoldersPassTestz + IntegrationTest&y M InlineServiceDefinitionsPassTestx = DecoratorServicePassTest$w I CheckReferenceValidityPassTest6v m CheckExceptionOnInvalidReferenceBehaviorPassTest%u K CheckDefinitionValidityPassTest%t K CheckCircularReferencesPassTests 3 ServiceClassMariaDbr / ServiceClassMysqlq 3 ServiceClassDefaultp = AutoAliasServicePassTest&o M AnalyzeServiceReferencesPassTestn % ParameterBagm 1 FrozenParameterBagl ) YamlFileLoaderk ' XmlFileLoaderj ' PhpFileLoaderi ' IniFileLoaderh ! FileLoaderg ' ClosureLoaderf ! NullDumpere ; RealServiceInstantiatord  Extensionc = ServiceNotFoundException'b O ServiceCircularReferenceException%a K ScopeWideningInjectionException   ? {^7qP7vZD+t[7{mUF






l
S
@
,


							|	^	A	$	kP4s\F4!pN"o`J.y`@(jO6 mV=%{W?             ~ + AbstractASTType!} C AbstractASTClassOrInterface| 3 AbstractASTCallable{ 3 AbstractASTArtifact	z  Xmly  Pyramidx 9 ReportGeneratorFactoryw 5 NoLogOutputException	v  Xmlu  Chartt + StrategyFactorys - PropertyStrategyr ) MethodStrategyq 3 InheritanceStrategyp ; NPathComplexityAnalyzero + NodeLocAnalyzern / NodeCountAnalyzer"m E MaintainabilityIndexAnalyzerl 3 InheritanceAnalyzerk / HierarchyAnalyzerj - HalsteadAnalyzeri 1 DependencyAnalyzer"h E CyclomaticComplexityAnalyzerg / CrapIndexAnalyzerf - CouplingAnalyzere - CohesionAnalyzerd - CodeRankAnalyzerc 1 ClassLevelAnalyzerb - AnalyzerIteratora + AnalyzerFactory` ; AbstractCachingAnalyzer_ - AbstractAnalyzer^  Iterator] + ExtensionFilter\ / ExcludePathFilter[ + CompositeFilterZ - PdependExtensionY - ExtensionManagerX  ExtensionW ' ConfigurationV 3 ProcessListenerPassU ' ResultPrinterT  EngineS # ApplicationR 3 CacheVersionUpdaterQ % StreamWriterP 1 CommandLineOptionsO  CommandN ' ShortVariableM + ShortMethodNameL % LongVariable)K S ConstructorWithNameAsEnclosingClassJ ? ConstantNamingConventionsI 5 BooleanGetMethodNameH 3 WeightedMethodCountG ) TooManyMethodsF ' TooManyFieldsE - NumberOfChildrenD + NpathComplexityC / LongParameterListB ! LongMethodA  LongClass@ ' GotoStatement? ) ExitExpression> ) EvalExpression= 1 DepthOfInheritance< 9 CouplingBetweenObjects; % Superglobals: 7 CamelCaseVariableName9 7 CamelCasePropertyName8 9 CamelCaseParameterName7 3 CamelCaseMethodName6 1 CamelCaseClassName5 % StaticAccess4 ) ElseExpression3 3 BooleanArgumentFlag2 3 UnusedPrivateMethod1 1 UnusedPrivateField0 3 UnusedLocalVariable/ 7 UnusedFormalParameter. 5 ExcessivePublicCount- 5 CyclomaticComplexity, 7 AbstractLocalVariable+ # XMLRenderer* % TextRenderer) % HTMLRenderer(  TraitNode' ! MethodNode& ' InterfaceNode% % FunctionNode$  ClassNode#  ASTNode" # Annotations! ! Annotation  - AbstractTypeNode % AbstractNode 5 AbstractCallableNode ' RuleViolation = RuleSetNotFoundException ) RuleSetFactory  RuleSet  A RuleClassNotFoundException$ I RuleClassFileNotFoundException  Report + ProcessingError  PHPMD ' ParserFactory  Parser ) AbstractWriter % AbstractRule - AbstractRenderer % AbstractNode / SimpleProcessTest  A SigchildEnabledProcessTest! C SigchildDisabledProcessTest - ProcessUtilsTest"
 E ProcessInSigchildEnvironment 	 A ProcessFailedExceptionTest 1 ProcessBuilderTest ) PhpProcessTest ; PhpExecutableFinderTest 5 ExecutableFinderTest - NonStringifiable ' Stringifiable 3 AbstractProcessTest % WindowsPipes   UnixPipes ' AbstractPipes~ % ProcessUtils} ) ProcessBuilder|  Process{ ! PhpProcessz 3 PhpExecutableFindery - ExecutableFinderx - RuntimeExceptionw = ProcessTimedOutExceptionv 9 ProcessFailedExceptionu ) LogicExceptiont = InvalidArgumentExceptions # CommandTestr 5 SortableIteratorTestq / InnerSizeIterator!p C SizeRangeFilterIteratorTest$o I RecursiveDirectoryIteratorTestn 5 RealIteratorTestCasem 9 PathFilterIteratorTest$l I TestMultiplePcreFilterIterator$k I MultiplePcreFilterIteratorTestj + MockSplFileInfo   , jJ*X3dF*	eI0wdI- 





t
]
@
%
						x	X	9	z];qX9z_E4t\L7qW6w^:kJ<,mO>,     IdBuilder FileUtil 7ConfigurationInstance 'Configuration
 / MemoryCacheDriver	 + FileCacheDriver ? FileCacheGarbageCollector 1 FileCacheDirectory % CacheFactory  Runner ' ResultPrinter  Command  Token = UnexpectedTokenException  ; TokenStreamEndException ! TokenStack~ ) TokenException} # SymbolTable| + ParserException{ 7 MissingValueExceptionz 7 InvalidStateExceptiony 5 PHPTokenizerInternal!x C PHPTokenizerHelperVersion52w - PHPParserGenericv ! PHPBuilderu / AbstractPHPParsert 5 GlobalBuilderContexts 1 AbstractASTVisitorr = AbstractASTVisitListenerq 7 PackageArtifactFilterp 1 NullArtifactFiltero = CollectionArtifactFiltern / ASTYieldStatementm / ASTWhileStatementl 3 ASTVariableVariablek 7 ASTVariableDeclaratorj # ASTVariablei  ASTValueh / ASTUnsetStatementg 1 ASTUnaryExpressionf + ASTTypeCallablee % ASTTypeArrayd  ASTTypec + ASTTryStatementb 5 ASTTraitUseStatementa / ASTTraitReference&` M ASTTraitMethodCollisionException"_ E ASTTraitAdaptationPrecedence^ ; ASTTraitAdaptationAlias] 1 ASTTraitAdaptation\  ASTTrait[ / ASTThrowStatementZ 1 ASTSwitchStatementY ) ASTSwitchLabelX = ASTStringIndexExpressionW  ASTString"V E ASTStaticVariableDeclarationU 1 ASTStaticReferenceT % ASTStatementS ; ASTShiftRightExpressionR 9 ASTShiftLeftExpressionQ - ASTSelfReferenceP / ASTScopeStatementO  ASTScopeN ' ASTScalarTypeM 1 ASTReturnStatementL 5 ASTRequireExpressionK 1 ASTPropertyPostfixJ # ASTPropertyI ? ASTPreIncrementExpressionH ? ASTPreDecrementExpressionG 5 ASTPostfixExpressionF 1 ASTParentReferenceE % ASTParameterD  ASTNodeC % ASTNamespaceB - ASTMethodPostfixA  ASTMethod@ 9 ASTMemberPrimaryPrefix? ; ASTLogicalXorExpression> 9 ASTLogicalOrExpression= ; ASTLogicalAndExpression< ! ASTLiteral; / ASTListExpression: / ASTLabelStatement9 1 ASTIssetExpression8 ' ASTInvocation7 % ASTInterface6 ; ASTInstanceOfExpression5 1 ASTIndexExpression4 5 ASTIncludeExpression3 ) ASTIfStatement2 ' ASTIdentifier1 ! ASTHeredoc0 - ASTGotoStatement/ 1 ASTGlobalStatement. 1 ASTFunctionPostfix- # ASTFunction, % ASTForUpdate+ + ASTForStatement* 3 ASTFormalParameters) 1 ASTFormalParameter( ! ASTForInit' 3 ASTForeachStatement& 3 ASTFinallyStatement% 3 ASTFieldDeclaration$ ' ASTExpression# / ASTExitExpression" / ASTEvalExpression! 1 ASTElseIfStatement  - ASTEchoStatement 3 ASTDoWhileStatement 3 ASTDeclareStatement 5 ASTContinueStatement 1 ASTConstantPostfix 7 ASTConstantDefinition 7 ASTConstantDeclarator # ASTConstant = ASTConditionalExpression 3 ASTCompoundVariable 7 ASTCompoundExpression) S ASTCompilationUnitNotFoundException 1 ASTCompilationUnit ! ASTComment ! ASTClosure 1 ASTCloneExpression / ASTClassReference* U ASTClassOrInterfaceReferenceIterator" E ASTClassOrInterfaceReference6 m ASTClassOrInterfaceRecursiveInheritanceException 1 ASTClassFqnPostfix  ASTClass
 / ASTCatchStatement	 / ASTCastExpression / ASTBreakStatement 9 ASTBooleanOrExpression ; ASTBooleanAndExpression ; ASTAssignmentExpression + ASTArtifactList ; ASTArrayIndexExpression + ASTArrayElement  ASTArray  % ASTArguments ; ASTAllocationExpression   [ wbI4yiR1r\I7"gL0tVA"






l
S
=
&

					r	\	L	1	zdQ@1#n_O@({dI-pXB*|bG/gP6	vVG$ u[                       , /$ExampleDescriptor+ 5$DeprecatedDescriptor* -$AuthorDescriptor) #Settings( /"StripOnVisibility' '"StripInternal& #"StripIgnore% "Filter$ %"ClassFactory # A!MissingDependencyException"  Finder! ;ProjectDescriptorMapper  -VersionAssembler %VarAssembler 'UsesAssembler ;TypeCollectionAssembler +ThrowsAssembler )SinceAssembler %SeeAssembler +ReturnAssembler /PropertyAssembler )ParamAssembler +MethodAssembler 'LinkAssembler 3GenericTagAssembler -ExampleAssembler 3DeprecatedAssembler +AuthorAssembler )TraitAssembler /PropertyAssembler +MethodAssembler 1InterfaceAssembler /FunctionAssembler 'FileAssembler
 /ConstantAssembler	 )ClassAssembler /AssemblerAbstract /ArgumentAssembler -AssemblerFactory /AssemblerAbstract +TraitDescriptor 'TagDescriptor +ServiceProvider 1PropertyDescriptor  =ProjectDescriptorBuilder /ProjectDescriptor~ +ProjectAnalyzer} /PackageDescriptor| 3NamespaceDescriptor{ -MethodDescriptorz 3InterfaceDescriptory 1FunctionDescriptorx )FileDescriptorw 1DescriptorAbstractv 1ConstantDescriptoru !Collectiont +ClassDescriptors 1ArgumentDescriptorr Outputq ArgvInputp Replaceo +ServiceProvidern Mergerm Loggingl Loader!k CResolveInlineLinkAndSeeTagsj 1PackageTreeBuilderi 5NamespaceTreeBuilderh ;MarkerFromTagsExtractorg 3ExampleTagsEnricherf 5ElementsIndexBuildere Debugd Linkerc Compilerb !RunCommanda 'UpdateCommand` %LoggerHelper_ 3ConfigurationHelper^ Command] 'Configuration\ Bootstrap[ #Application"Z EJmsSerializerServiceProviderY %StreamWriterX 1CommandLineOptionsW CommandV 'ShortVariableU +ShortMethodNameT %LongVariable)S SConstructorWithNameAsEnclosingClassR ?ConstantNamingConventionsQ 5BooleanGetMethodNameP 3
WeightedMethodCountO )
TooManyMethodsN '
TooManyFieldsM -
NumberOfChildrenL +
NpathComplexityK /
LongParameterListJ !
LongMethodI 
LongClassH '
GotoStatementG )
ExitExpressionF )
EvalExpressionE 1
DepthOfInheritanceD 9
CouplingBetweenObjectsC %	SuperglobalsB 7	CamelCaseVariableNameA 7	CamelCasePropertyName@ 9	CamelCaseParameterName? 3	CamelCaseMethodName> 1	CamelCaseClassName= %StaticAccess< )ElseExpression; 3BooleanArgumentFlag: 3UnusedPrivateMethod9 1UnusedPrivateField8 3UnusedLocalVariable7 7UnusedFormalParameter6 5ExcessivePublicCount5 5CyclomaticComplexity4 7AbstractLocalVariable3 #XMLRenderer2 %TextRenderer1 %HTMLRenderer0 TraitNode/ !MethodNode. 'InterfaceNode- %FunctionNode, ClassNode+ ASTNode* #Annotations) !Annotation( -AbstractTypeNode' %AbstractNode& 5AbstractCallableNode% 'RuleViolation$ =RuleSetNotFoundException# )RuleSetFactory" RuleSet ! ARuleClassNotFoundException$  IRuleClassFileNotFoundException Report +ProcessingError PHPMD 'ParserFactory Parser )AbstractWriter %AbstractRule -AbstractRenderer %AbstractNode Factory %CloverReport #Workarounds Utf8Util
 Type MathUtil	 Log %ImageConvert   Q nV=&sY@"|o`H3wV,mJ




o
I
&					z	]	?	%	{gUE6#uZB(lZK3jWH(o\J;-{nZI8&l[E3
kQ     N /WPreXslWriterEventM /WPreTransformEventL 9WPreTransformationEventK 1WPostTransformEventJ ;WPostTransformationEventI #VTransformerH )VTransformationG VTemplateF +VServiceProviderE VExceptionD 'VConfigurationC UTemplateB +TTransformations A ATExternalClassDocumentation@ #SListCommand? -RTransformCommand> !QCollection= /QBehaviourAbstract
< PTwig; +OServiceProvider: OExtension9 NTemplate8 MTwigTest7 #MFactoryTest
6 MTwig5 MFactory4 +LApplicationTest3 +LServiceProvider2 %KDiscoverTest1 KDiscover0 KCreator	/ JDoc. IToHtml- IDocument, HToctree+ HImage* HFigure) HCodeBlock( !GModuleTest' GFileTest& 'GBaseEntryTest% GModule$ GHeading
# GFile" GBaseEntry! 3FTableOfContentsTest  +FTableOfContents FGlossary FAssets ;EFormatNotFoundException DFormat !DCollection  ACConverterNotFoundException BFactory !BDefinition AFactory 'ABaseConverter %@ToPdfCommand )@ToLatexCommand '@ToHtmlCommand 1@BaseConvertCommand +?ServiceProvider ?Plugin ?Parameter ?>LegacyNamespaceFilterTest +=ServiceProvider 7=LegacyNamespaceFilter <Graph
 +;ServiceProvider	 :Extension )9TraitConverter %9TagConverter /9PropertyConverter +9MethodConverter 19InterfaceConverter /9DocBlockConverter /9ConstantConverter /9ArgumentConverter	  8Xsl	 8Xml~ !8Statistics} !8Sourcecode| !8Pathfinder{ 8FileIoz !8Checkstyley 7VarTagx 7UsesTagw 7ReturnTagv #7PropertyTagu 7ParamTagt 7MethodTags !7LicenseTagr #7InternalTagq 7IgnoreTagp 7CoversTago 7AuthorTagn +6ServiceProviderm 6Exceptionl /5ValidatorAbstractk 75ValidationValueObjectj 54AreAllArgumentsValidi 33HasSummaryValidatorh !3HasSummary*g U2IsReturnTypeNotAnIdeDefaultValidator!f C2IsReturnTypeNotAnIdeDefault)e S2IsParamTypeNotAnIdeDefaultValidator d A2IsParamTypeNotAnIdeDefault#c G2IsArgumentInDocBlockValidatorb 52IsArgumentInDocBlocka ?2DoesParamsExistsValidator` -2DoesParamsExists-_ [2DoesArgumentTypehintMatchParamValidator$^ I2DoesArgumentTypehintMatchParam)] S2DoesArgumentNameMatchParamValidator \ A2DoesArgumentNameMatchParam#[ G2AreAllArgumentsValidValidatorZ 52AreAllArgumentsValid"Y E1HasSingleSubpackageValidatorX 31HasSingleSubpackageW ?1HasSinglePackageValidatorV -1HasSinglePackage'U O1HasPackageWithSubpackageValidatorT =1HasPackageWithSubpackage$S I0MissingNameForPartialExceptionR +/ServiceProviderQ /PartialP !/CollectionO +.ParserPopulator N A-MissingDependencyExceptionM 9-FilesNotFoundExceptionL %,PreFileEventK ++ServiceProviderJ +Parser
I +FileH +ExceptionG '+ConfigurationF *FilesE %)ParseCommandD (LogEventC '(EventAbstractB !(DispatcherA !(DebugEvent@ 'Error? 7&UnknownTypeDescriptor> -&StringDescriptor= /&IntegerDescriptor< +&FloatDescriptor; 5&CollectionDescriptor: /&BooleanDescriptor9 7%TypedVariableAbstract8 '%TypedAbstract7 /$VersionDescriptor6 '$VarDescriptor5 )$UsesDescriptor4 -$ThrowsDescriptor3 +$SinceDescriptor2 '$SeeDescriptor1 -$ReturnDescriptor0 1$PropertyDescriptor/ +$ParamDescriptor. -$MethodDescriptor- )$LinkDescriptor   T ykZC6kP,	o\H7'|`H4 xVD1$






s
b
P
8
"
							v	`	J	=	'	{lXB-hS:*|Y="|jXE2wX2iV4{l]E6%iT    r %XmlAttributeq +VirtualPropertyp Versiono Until
n Typem Sincel )SerializedNamek ReadOnlyj %PreSerializei 'PostSerializeh +PostDeserializeg MaxDepthf Inlinee +HandlerCallbackd Groupsc Exposeb +ExclusionPolicya Exclude` 'Discriminator_ !AccessType^ 'AccessorOrder] Accessor\ =YamlSerializationVisitor[ ;XmlSerializationVisitorZ ?XmlDeserializationVisitorY !TypeParserX /SerializerBuilderW !SerializerV 5SerializationContextU =JsonSerializationVisitor T AJsonDeserializationVisitorS )GraphNavigator!R CGenericSerializationVisitor#Q GGenericDeserializationVisitorP 9DeserializationContextO ContextN +AbstractVisitorM 1AbstractParserTestL /AbstractLexerTestK 5SyntaxErrorExceptionJ #SimpleLexerI )AbstractParserH 'AbstractLexerG !TestParentF !TestObjectE SubClassBD SubClassAC BaseClassB DA C@ B? ~A> +}FileLocatorTest= +}DriverChainTest< 9}AbstractFileDriverTest; 5|PropertyMetadataTest: 1|MethodMetadataTest9 3|MetadataFactoryTest 8 A|MergeableClassMetadataTest7 /|ClassMetadataTest6 '{FileCacheTest5 ={DoctrineCacheAdapterTest4 /zLazyLoadingDriver3 #zFileLocator2 #zDriverChain1 1zAbstractFileDriver0 yVersion/ -yPropertyMetadata. %yNullMetadata- )yMethodMetadata, +yMetadataFactory+ 9yMergeableClassMetadata* 'yClassMetadata) 9yClassHierarchyMetadata( xFileCache' 5xDoctrineCacheAdapter& !wUpdateTest% %wManifestTest$ 'vExceptionTest# #uManagerTest" uUpdate! uManifest  uManager )tLogicException =tInvalidArgumentException 'tFileException tException sJsonTest /rJsonExceptionTest 'rExceptionTest
 qJson 'pJsonException 'pFileException pException 'oParsedownTest )oCommonMarkTest oParsedown 'nAbstractLexer #mTokenParser 9mSimpleAnnotationReader mPhpParser 'mIndexedReader +mFileCacheReader mDocParser
 mDocLexer	 %mCachedReader 1mAnnotationRegistry -mAnnotationReader 3mAnnotationException !mAnnotation lTarget lRequired -lIgnoreAnnotation
 lEnum  !lAttributes lAttribute~ ?iContainerAwareApplication} 9iConsoleServiceProvider | AiBaseConsoleServiceProvider{ 9hConsoleServiceProvider"z EgValidatorServiceProviderTesty ?gConfigServiceProviderTestx #fCommandTestw #fCommandMockv +eApplicationTestu 3eServiceProviderMockt =dValidatorServiceProviders 9dMonologServiceProviderr ;dDoctrineServiceProviderq 7dConfigServiceProviderp %cGreetCommando +cDemoInfoCommandn cCommandm bCompilerl #bApplicationk !^Translatorj +^ServiceProvideri '^Configurationh 1]RequirementMissingg )\WriterAbstractf !\Collectione %[PathResolverd [Parameterc [Factoryb ![Collection!a CZQualifiedNameToUrlConverter` 1ZPropertyDescriptor_ /ZPackageDescriptor^ 3ZNamespaceDescriptor] -ZMethodDescriptor\ 1ZFunctionDescriptor[ )ZFileDescriptorZ 1ZConstantDescriptorY +ZClassDescriptorX )YStandardRouter
W YRuleV )YRouterAbstractU YRendererT YQueueS %YForFileProxyR )YExternalRouterQ 'XUnknownWriter P AXMissingDependencyExceptionO ?WWriterInitializationEvent   . rbQ3~jN4}[A" }iP8qN5






_
6

					x	h	Y	F	/	zV9$sZE7a4uRD5rZN@0! ~`;kW8vZC.   %MockListener )MockSubscriber 3EventDispatcherTest 7YamlSerializationTest  5XmlSerializationTest )TypeParserTest~ 5LinkAddingSubscriber} 7JsonSerializationTest| /SerializableClass{ 1GraphNavigatorTestz 9DateIntervalFormatTesty #ContextTestx 7BaseSerializationTestw )YamlDriverTestv 'XmlDriverTestu 'PhpDriverTestt ;DoctrinePHPCRDriverTests 1DoctrineDriverTestr )BaseDriverTestq 5AnnotationDriverTest"p EPropertyMetadataPublicMethodo 7PropertyMetadataOrdern /ClassMetadataTestm #TestSubject!l CPropelCollectionHandlerTestk Commentj BlogPosti Authorh Commentg BlogPostf Authore Vehicled Moped	c Carb +VersionedObject
a Tree` 5SimpleSubClassObject_ /SimpleObjectProxy^ %SimpleObject] /SimpleClassObject\ Publisher[ PriceZ )PersonLocationY -PersonCollectionX PersonW Order V AObjectWithXmlRootNamespaceU ;ObjectWithXmlNamespaces T AObjectWithXmlKeyValuePairs$S IObjectWithVirtualXmlProperties.R ]ObjectWithVirtualPropertiesAndExcludeAll!Q CObjectWithVirtualProperties*P UObjectWithVersionedVirtualPropertiesO 9ObjectWithNullProperty"N EObjectWithLifecycleCallbacksM 3ObjectWithEmptyHash
L NodeK ?NamedDateTimeArraysObject	J LogI 9InvalidUsageOfXmlValueH 3InvalidGroupsObjectG InputF %InlineParentE -InlineChildEmptyD #InlineChild"C EInitializedObjectConstructor$B IInitializedBlogPostConstructorA 3IndexedCommentsList@ ;IndexedCommentsBlogPost? %GroupsObject> %GetSetObject= 5DateTimeArraysObject!< CCustomDeserializationObject; 1CurrencyAwarePrice: 1CurrencyAwareOrder9 Comment8 ;CircularReferenceParent7 9CircularReferenceChild6 BlogPost5 9AuthorReadOnlyPerClass4 )AuthorReadOnly3 !AuthorList2 Author1 Article0 /AllExcludedObject/ 3AccessorOrderParent. 3AccessorOrderMethod- 1AccessorOrderChild#, GDisjunctExclusionStrategyTest+ Writer* 3SerializerExtension&) MSerializedNameAnnotationStrategy%( KIdenticalPropertyNamingStrategy' ;CamelCaseNamingStrategy& 3CacheNamingStrategy% !YamlDriver$ XmlDriver# PhpDriver" 1DoctrineTypeDriver! ;DoctrinePHPCRTypeDriver  -AnnotationDriver  AAbstractDoctrineTypeDriver ;VirtualPropertyMetadata 9StaticPropertyMetadata -PropertyMetadata 'ClassMetadata ;PropelCollectionHandler 5PhpCollectionHandler 3LazyHandlerRegistry +HandlerRegistry -FormErrorHandler #DateHandler  AConstraintViolationHandler 9ArrayCollectionHandler =VersionExclusionStrategy ;GroupsExclusionStrategy ?DisjunctExclusionStrategy 9DepthExclusionStrategy /XmlErrorException ?ValidationFailedException  AUnsupportedFormatException -RuntimeException
 )LogicException	 =InvalidArgumentException  ASymfonyValidatorSubscriber ;DoctrineProxySubscriber /PreSerializeEvent 3PreDeserializeEvent #ObjectEvent 3LazyEventDispatcher Events +EventDispatcher  Event" EUnserializeObjectConstructor~ ?DoctrineObjectConstructor} 5DefaultDriverFactory| 7CallbackDriverFactory{ XmlValuez XmlRooty %XmlNamespacex XmlMapw XmlListv -XmlKeyValuePairsu !XmlElementt 'XmlCollections +XmlAttributeMap   : kK.pT3xfL?'mX@/yW> 






h
I
1
						x	`	G	7	#	hN4nV<|lP2}eC%zbE-q\B, eR:%iS:     -SyslogUdpHandler 'SyslogHandler 1SwiftMailerHandler 'StreamHandler 'SocketHandler %SlackHandler +SamplingHandler 3RotatingFileHandler )RollbarHandler %RedisHandler %RavenHandler +PushoverHandler !PsrHandler /PHPConsoleHandler #NullHandler +NewRelicHandler 3NativeMailerHandler
 )MongoDBHandler	 ?MissingExtensionException +MandrillHandler #MailHandler 'LogglyHandler /LogEntriesHandler %IFTTTHandler )HipChatHandler %GroupHandler #GelfHandler  +FlowdockHandler -FleepHookHandler~ )FirePHPHandler} 7FingersCrossedHandler| 'FilterHandler{ +ErrorLogHandlerz 5ElasticSearchHandlery +DynamoDbHandlerx 9DoctrineCouchDBHandlerw #CubeHandlerv )CouchDBHandleru -ChromePHPHandlert 'BufferHandlers 7BrowserConsoleHandlerr #AmqpHandlerq 7AbstractSyslogHandlerp ?AbstractProcessingHandlero +AbstractHandlern 7WildfireFormatterTestm 3ScalarFormatterTestl 'TestStreamFook #TestBarNormj #TestFooNormi ;NormalizerFormatterTesth 5MongoDBFormatterTestg 7LogstashFormatterTestf 3LogglyFormatterTeste TestBard TestFooc /LineFormatterTestb /JsonFormatterTesta =GelfMessageFormatterTest` 7FlowdockFormatterTest_ 7ElasticaFormatterTest^ 9ChromePHPFormatterTest] /WildfireFormatter\ +ScalarFormatter[ 3NormalizerFormatterZ -MongoDBFormatterY /LogstashFormatterX +LogglyFormatterW 'LineFormatterV 'JsonFormatterU 'HtmlFormatterT 5GelfMessageFormatterS /FlowdockFormatterR /ElasticaFormatterQ 1ChromePHPFormatterP TestCaseO %RegistryTestN -PsrLogCompatTestM !LoggerTestL -ErrorHandlerTestK RegistryJ LoggerI %ErrorHandlerH #VersionTestG VersionF -UriRetrieverTestE +UriResolverTestD 3PredefinedArrayTestC 3FileGetContentsTestB +RefResolverTestA !Draft4Test@ !Draft3Test? /BaseDraftTestCase&> MWrongMessagesFailingTestCaseTest= +UniqueItemsTest< 9UnionWithNullValueTest; )UnionTypesTest: TypeTest9 +TupleTypingTest8 7SelfDefinedSchemaTest7 #RequireTest6 5RequiredPropertyTest5 %ReadOnlyTest4 #PatternTest3 7PatternPropertiesTest2 -OfPropertiesTest1 ?NumberAndIntegerTypesTest0 NotTest/ 9MinLengthMaxLengthTest%. KMinLengthMaxLengthMultiByteTest- 5MinItemsMaxItemsTest, 1MinimumMaximumTest+ !FormatTest* #ExtendsTest) EnumTest( +DivisibleByTest' %DisallowTest& -DependenciesTest% )BasicTypesTest$ %BaseTestCase# !ArraysTest" =AdditionalPropertiesTest! %UriRetriever  #UriResolver +PredefinedArray +FileGetContents
 Curl /AbstractRetriever Validator #RefResolver 5UriResolverException ?ResourceNotFoundException 7JsonDecodingException ?InvalidSourceUriException% KInvalidSchemaMediaTypeException =InvalidArgumentException 3UndefinedConstraint )TypeConstraint -StringConstraint -SchemaConstraint -ObjectConstraint -NumberConstraint -FormatConstraint )EnumConstraint !Constraint
 5CollectionConstraint	 ;SerializerExtensionTest 7SerializerBuilderTest) SIdenticalPropertyNamingStrategyTest$ ISymfonyValidatorSubscriberTest! CDoctrineProxySubscriberTest   { oW5fJ0iH/}a5~^B)





q
M
0

					r	Q	9		gB!hH%{Z<"
vL&}T.mAyR+kC                             % KPHPParser_Node_Expr_Cast_String% KPHPParser_Node_Expr_Cast_Object" EPHPParser_Node_Expr_Cast_Int% KPHPParser_Node_Expr_Cast_Double# GPHPParser_Node_Expr_Cast_Bool$ IPHPParser_Node_Expr_Cast_Array# GPHPParser_Node_Expr_BooleanOr$ IPHPParser_Node_Expr_BooleanNot$ IPHPParser_Node_Expr_BooleanAnd$ IPHPParser_Node_Expr_BitwiseXor# GPHPParser_Node_Expr_BitwiseOr$ IPHPParser_Node_Expr_BitwiseNot$
 IPHPParser_Node_Expr_BitwiseAnd*	 UPHPParser_Node_Expr_AssignShiftRight) SPHPParser_Node_Expr_AssignShiftLeft# GPHPParser_Node_Expr_AssignRef$ IPHPParser_Node_Expr_AssignPlus# GPHPParser_Node_Expr_AssignMul# GPHPParser_Node_Expr_AssignMod% KPHPParser_Node_Expr_AssignMinus# GPHPParser_Node_Expr_AssignDiv& MPHPParser_Node_Expr_AssignConcat*  UPHPParser_Node_Expr_AssignBitwiseXor) SPHPParser_Node_Expr_AssignBitwiseOr*~ UPHPParser_Node_Expr_AssignBitwiseAnd } APHPParser_Node_Expr_Assign#| GPHPParser_Node_Expr_ArrayItem'{ OPHPParser_Node_Expr_ArrayDimFetchz ?PHPParser_Node_Expr_Arrayy 5PHPParser_Node_Constx 1PHPParser_Node_Argw +PHPParser_Lexerv ?PHPParser_Lexer_Emulativeu +PHPParser_Errort /PHPParser_Comments 7PHPParser_Comment_Docr =PHPParser_BuilderFactoryq ?PHPParser_BuilderAbstract p APHPParser_Builder_Propertyo ;PHPParser_Builder_Paramn =PHPParser_Builder_Method!m CPHPParser_Builder_Interface l APHPParser_Builder_Functionk ;PHPParser_Builder_Classj 5PHPParser_Autoloaderi Testerh -WebProcessorTestg -UidProcessorTestf -TagProcessorTest e APsrLogMessageProcessorTestd 9ProcessIdProcessorTestc =MemoryUsageProcessorTest"b EMemoryPeakUsageProcessorTest a AIntrospectionProcessorTest` -GitProcessorTest_ %WebProcessor^ %UidProcessor] %TagProcessor\ 9PsrLogMessageProcessor[ 1ProcessIdProcessorZ 5MemoryUsageProcessorY +MemoryProcessorX =MemoryPeakUsageProcessorW 9IntrospectionProcessorV %GitProcessorU UdpSocket"T EErrorLevelActivationStrategy$S IChannelLevelActivationStrategy
R UtilQ 9ZendMonitorHandlerTestP 5ExceptionTestHandler!O CWhatFailureGroupHandlerTestN 'UdpSocketTestM +TestHandlerTestL 5SyslogUdpHandlerTestK /SyslogHandlerTestJ 9SwiftMailerHandlerTestI /StreamHandlerTestH /SocketHandlerTestG -SlackHandlerTestF 3SamplingHandlerTestE ;RotatingFileHandlerTestD -RedisHandlerTestC -RavenHandlerTestB 3PushoverHandlerTestA )PsrHandlerTest@ 7PHPConsoleHandlerTest? +NullHandlerTest> 3StubNewRelicHandler)= SStubNewRelicHandlerWithoutExtension< 3NewRelicHandlerTest; ;NativeMailerHandlerTest: Mongo9 1MongoDBHandlerTest8 +MockRavenClient7 +MailHandlerTest6 7LogEntriesHandlerTest5 1HipChatHandlerTest4 -GroupHandlerTest3 =GelfMockMessagePublisher2 +GelfHandlerTest1 7GelfHandlerLegacyTest0 3FlowdockHandlerTest/ 5FleepHookHandlerTest. 1TestFirePHPHandler- 1FirePHPHandlerTest, ?FingersCrossedHandlerTest+ /FilterHandlerTest* 3ErrorLogHandlerTest) =ElasticSearchHandlerTest( 3DynamoDbHandlerTest ' ADoctrineCouchDBHandlerTest& 1CouchDBHandlerTest% 5TestChromePHPHandler$ 5ChromePHPHandlerTest# /BufferHandlerTest" ?BrowserConsoleHandlerTest! +AmqpHandlerTest#  GAbstractProcessingHandlerTest 3AbstractHandlerTest 1ZendMonitorHandler ;WhatFailureGroupHandler #TestHandler   h jFqG&kG iB  rQ-	



w
Q
+
				^	:	_:d<vQ(
\4^=mD%k>kF                                                         2~ ePHPParser_Node_Stmt_TraitUseAdaptation_Alias"} EPHPParser_Node_Stmt_TraitUse| ?PHPParser_Node_Stmt_Trait{ ?PHPParser_Node_Stmt_Throw z APHPParser_Node_Stmt_Switch#y GPHPParser_Node_Stmt_StaticVar x APHPParser_Node_Stmt_Static w APHPParser_Node_Stmt_Return*v UPHPParser_Node_Stmt_PropertyProperty"u EPHPParser_Node_Stmt_Property#t GPHPParser_Node_Stmt_Namespaces ?PHPParser_Node_Stmt_Label#r GPHPParser_Node_Stmt_Interface$q IPHPParser_Node_Stmt_InlineHTMLp 9PHPParser_Node_Stmt_If&o MPHPParser_Node_Stmt_HaltCompilern =PHPParser_Node_Stmt_Goto m APHPParser_Node_Stmt_Global"l EPHPParser_Node_Stmt_Function!k CPHPParser_Node_Stmt_Foreachj ;PHPParser_Node_Stmt_For i APHPParser_Node_Stmt_ElseIfh =PHPParser_Node_Stmt_Elseg =PHPParser_Node_Stmt_Echof 9PHPParser_Node_Stmt_Do(e QPHPParser_Node_Stmt_DeclareDeclare!d CPHPParser_Node_Stmt_Declare"c EPHPParser_Node_Stmt_Continueb ?PHPParser_Node_Stmt_Const%a KPHPParser_Node_Stmt_ClassMethod$` IPHPParser_Node_Stmt_ClassConst_ ?PHPParser_Node_Stmt_Class^ ?PHPParser_Node_Stmt_Catch] =PHPParser_Node_Stmt_Case\ ?PHPParser_Node_Stmt_Break[ 7PHPParser_Node_Scalar&Z MPHPParser_Node_Scalar_TraitConst"Y EPHPParser_Node_Scalar_String#X GPHPParser_Node_Scalar_NSConst'W OPHPParser_Node_Scalar_MethodConst#V GPHPParser_Node_Scalar_LNumber%U KPHPParser_Node_Scalar_LineConst%T KPHPParser_Node_Scalar_FuncConst%S KPHPParser_Node_Scalar_FileConst$R IPHPParser_Node_Scalar_Encapsed#Q GPHPParser_Node_Scalar_DNumber$P IPHPParser_Node_Scalar_DirConst&O MPHPParser_Node_Scalar_ClassConstN 5PHPParser_Node_ParamM 3PHPParser_Node_Name"L EPHPParser_Node_Name_Relative(K QPHPParser_Node_Name_FullyQualifiedJ 3PHPParser_Node_ExprI ?PHPParser_Node_Expr_Yield"H EPHPParser_Node_Expr_Variable#G GPHPParser_Node_Expr_UnaryPlus$F IPHPParser_Node_Expr_UnaryMinus!E CPHPParser_Node_Expr_Ternary-D [PHPParser_Node_Expr_StaticPropertyFetch$C IPHPParser_Node_Expr_StaticCall(B QPHPParser_Node_Expr_SmallerOrEqual!A CPHPParser_Node_Expr_Smaller$@ IPHPParser_Node_Expr_ShiftRight#? GPHPParser_Node_Expr_ShiftLeft#> GPHPParser_Node_Expr_ShellExec'= OPHPParser_Node_Expr_PropertyFetch< ?PHPParser_Node_Expr_Print ; APHPParser_Node_Expr_PreInc : APHPParser_Node_Expr_PreDec!9 CPHPParser_Node_Expr_PostInc!8 CPHPParser_Node_Expr_PostDec7 =PHPParser_Node_Expr_Plus&6 MPHPParser_Node_Expr_NotIdentical"5 EPHPParser_Node_Expr_NotEqual4 ;PHPParser_Node_Expr_New3 ;PHPParser_Node_Expr_Mul2 ;PHPParser_Node_Expr_Mod1 ?PHPParser_Node_Expr_Minus$0 IPHPParser_Node_Expr_MethodCall$/ IPHPParser_Node_Expr_LogicalXor#. GPHPParser_Node_Expr_LogicalOr$- IPHPParser_Node_Expr_LogicalAnd, =PHPParser_Node_Expr_List+ ?PHPParser_Node_Expr_Isset$* IPHPParser_Node_Expr_Instanceof!) CPHPParser_Node_Expr_Include#( GPHPParser_Node_Expr_Identical(' QPHPParser_Node_Expr_GreaterOrEqual!& CPHPParser_Node_Expr_Greater"% EPHPParser_Node_Expr_FuncCall$ =PHPParser_Node_Expr_Exit# =PHPParser_Node_Expr_Eval'" OPHPParser_Node_Expr_ErrorSuppress! ?PHPParser_Node_Expr_Equal  ?PHPParser_Node_Expr_Empty ;PHPParser_Node_Expr_Div$ IPHPParser_Node_Expr_ConstFetch  APHPParser_Node_Expr_Concat$ IPHPParser_Node_Expr_ClosureUse! CPHPParser_Node_Expr_Closure ?PHPParser_Node_Expr_Clone) SPHPParser_Node_Expr_ClassConstFetch =PHPParser_Node_Expr_Cast$ IPHPParser_Node_Expr_Cast_Unset    rP0sH"	sX7d:sG%



r
C
				q	G	pWK:#ziWJ8*rbF1dI%{hM2 }cB'zcI3hL6             +MethodAssembler 'LinkAssembler 3GenericTagAssembler  -ExampleAssembler 3DeprecatedAssembler~ +AuthorAssembler} )TraitAssembler| /PropertyAssembler{ +MethodAssemblerz 1InterfaceAssemblery /FunctionAssemblerx 'FileAssemblerw /ConstantAssemblerv )ClassAssembleru /AssemblerAbstractt /ArgumentAssemblers -AssemblerFactoryr /AssemblerAbstractq +TraitDescriptorp 'TagDescriptoro +ServiceProvidern 1PropertyDescriptorm =ProjectDescriptorBuilderl /ProjectDescriptork +ProjectAnalyzerj /PackageDescriptori 3NamespaceDescriptorh -MethodDescriptorg 3InterfaceDescriptorf 1FunctionDescriptore )FileDescriptord 1DescriptorAbstractc 1ConstantDescriptorb !Collectiona +ClassDescriptor` 1ArgumentDescriptor_ Output^ ArgvInput] Replace\ +ServiceProvider[ MergerZ LoggingY Loader!X CResolveInlineLinkAndSeeTagsW 1PackageTreeBuilderV 5NamespaceTreeBuilderU ;MarkerFromTagsExtractorT 3ExampleTagsEnricherS 5ElementsIndexBuilderR DebugQ LinkerP CompilerO !RunCommandN 'UpdateCommandM %LoggerHelperL 3ConfigurationHelperK CommandJ 'ConfigurationI BootstrapH #Application"G EJmsSerializerServiceProviderF NodeTestE EdgeTestD 'AttributeTestC GraphTest
B NodeA Graph@ Exception
? Edge> Attribute= FileTest< )CollectionTest
; File: !Collection9 1IgnorePatternsTest8 )IgnorePatterns7 1SortedSequenceTest6 %SequenceTest5 MapTest4 )SortedSequence3 Sequence	2 Map1 -AbstractSequence0 #AbstractMap/ 1AbstractCollection*. UPHPParser_Tests_Unserializer_XMLTest"- EPHPParser_Tests_TemplateTest(, QPHPParser_Tests_TemplateLoaderTest(+ QPHPParser_Tests_Serializer_XMLTest'* OPHPParser_Tests_PrettyPrinterTest ) APHPParser_Tests_ParserTest2( ePHPParser_Tests_NodeVisitor_NameResolverTest'' OPHPParser_Tests_NodeTraverserTest$& IPHPParser_Tests_NodeDumperTest&% MPHPParser_Tests_NodeAbstractTest,$ YPHPParser_Tests_Node_Stmt_PropertyTest)# SPHPParser_Tests_Node_Stmt_ClassTest/" _PHPParser_Tests_Node_Stmt_ClassMethodTest,! YPHPParser_Tests_Node_Scalar_StringTest#  GPHPParser_Tests_Node_NameTest ?PHPParser_Tests_LexerTest) SPHPParser_Tests_Lexer_EmulativeTest ?PHPParser_Tests_ErrorTest! CPHPParser_Tests_CommentTest& MPHPParser_Tests_CodeTestAbstract( QPHPParser_Tests_BuilderFactoryTest* UPHPParser_Tests_Builder_PropertyTest' OPHPParser_Tests_Builder_ParamTest( QPHPParser_Tests_Builder_MethodTest+ WPHPParser_Tests_Builder_InterfaceTest* UPHPParser_Tests_Builder_FunctionTest' OPHPParser_Tests_Builder_ClassTest  APHPParser_Unserializer_XML =PHPParser_TemplateLoader 1PHPParser_Template =PHPParser_Serializer_XML% KPHPParser_PrettyPrinterAbstract" EPHPParser_PrettyPrinter_Zend% KPHPParser_PrettyPrinter_Default -PHPParser_Parser# GPHPParser_NodeVisitorAbstract(
 QPHPParser_NodeVisitor_NameResolver	 ;PHPParser_NodeTraverser 5PHPParser_NodeDumper 9PHPParser_NodeAbstract 3PHPParser_Node_Stmt ?PHPParser_Node_Stmt_While  APHPParser_Node_Stmt_UseUse ;PHPParser_Node_Stmt_Use ?PHPParser_Node_Stmt_Unset" EPHPParser_Node_Stmt_TryCatch,  YPHPParser_Node_Stmt_TraitUseAdaptation7 oPHPParser_Node_Stmt_TraitUseAdaptation_Precedence   N sS=(oUD+xbJ1gM4pcT<'





k
J
 
					a	>	c=nQ3o[I9*iN6`N?'^K<tcP>/! obN    $ #FactoryTest
# Twig" Factory! +ApplicationTest  +ServiceProvider %DiscoverTest Discover Creator	 Doc ToHtml Document Toctree Image Figure CodeBlock !ModuleTest FileTest 'BaseEntryTest Module Heading
 File BaseEntry 3TableOfContentsTest +TableOfContents Glossary Assets
 ;FormatNotFoundException	 Format !Collection  AConverterNotFoundException Factory !Definition Factory 'BaseConverter %ToPdfCommand )ToLatexCommand  'ToHtmlCommand 1BaseConvertCommand~ +ServiceProvider} Plugin| Parameter{ ?LegacyNamespaceFilterTestz +ServiceProvidery 7LegacyNamespaceFilterx Graphw +ServiceProviderv Extensionu )TraitConvertert %TagConverters /PropertyConverterr +MethodConverterq 1InterfaceConverterp /DocBlockConvertero /ConstantConvertern /ArgumentConverter	m Xsl	l Xmlk !Statisticsj !Sourcecodei !Pathfinderh FileIog !Checkstylef VarTage UsesTagd ReturnTagc #PropertyTagb ParamTaga MethodTag` !LicenseTag_ #InternalTag^ IgnoreTag] CoversTag\ AuthorTag[ +ServiceProviderZ ExceptionY /ValidatorAbstractX 7ValidationValueObjectW 5AreAllArgumentsValidV 3HasSummaryValidatorU !HasSummary*T UIsReturnTypeNotAnIdeDefaultValidator!S CIsReturnTypeNotAnIdeDefault)R SIsParamTypeNotAnIdeDefaultValidator Q AIsParamTypeNotAnIdeDefault#P GIsArgumentInDocBlockValidatorO 5IsArgumentInDocBlockN ?DoesParamsExistsValidatorM -DoesParamsExists-L [DoesArgumentTypehintMatchParamValidator$K IDoesArgumentTypehintMatchParam)J SDoesArgumentNameMatchParamValidator I ADoesArgumentNameMatchParam#H GAreAllArgumentsValidValidatorG 5AreAllArgumentsValid"F EHasSingleSubpackageValidatorE 3HasSingleSubpackageD ?HasSinglePackageValidatorC -HasSinglePackage'B OHasPackageWithSubpackageValidatorA =HasPackageWithSubpackage$@ IMissingNameForPartialException? +ServiceProvider> Partial= !Collection< +ParserPopulator ; AMissingDependencyException: 9FilesNotFoundException9 %PreFileEvent8 +ServiceProvider7 Parser
6 File5 Exception4 'Configuration3 Files2 %ParseCommand1 LogEvent0 'EventAbstract/ !Dispatcher. !DebugEvent- Error, 7UnknownTypeDescriptor+ -StringDescriptor* /IntegerDescriptor) +FloatDescriptor( 5CollectionDescriptor' /BooleanDescriptor& 7TypedVariableAbstract% 'TypedAbstract$ /VersionDescriptor# 'VarDescriptor" )UsesDescriptor! -ThrowsDescriptor  +SinceDescriptor 'SeeDescriptor -ReturnDescriptor 1PropertyDescriptor +ParamDescriptor -MethodDescriptor )LinkDescriptor /ExampleDescriptor 5DeprecatedDescriptor -AuthorDescriptor Settings /StripOnVisibility 'StripInternal #StripIgnore Filter %ClassFactory  AMissingDependencyException Finder ;ProjectDescriptorMapper -VersionAssembler %VarAssembler 'UsesAssembler
 ;TypeCollectionAssembler	 +ThrowsAssembler )SinceAssembler %SeeAssembler +ReturnAssembler /PropertyAssembler )ParamAssembler   b zaM*eJ+pbQ:-|bG# ~fS=&






r
W
@
.
							j	P	8	sdWD-	~iVF/pYI7 oO4#	hR;&tV?+vaI2wb                      F %)IntervalTestE 9)IdentityTranslatorTest!D C)DataCollectorTranslatorTest"C E(TranslationDataCollectorTestB 1'MergeOperationTestA /'DiffOperationTest@ 7'AbstractOperationTest? )&YamlFileLoader> +&XliffFileLoader= %&QtFileLoader< %&PoFileLoader; '&PhpFileLoader: %&MoFileLoader9 )&JsonFileLoader8 '&IniFileLoader7 -&IcuResFileLoader6 -&IcuDatFileLoader5 '&CsvFileLoader4 #&ArrayLoader3 )%ChainExtractor2 7%AbstractFileExtractor1 ?$NotFoundResourceException0 =$InvalidResourceException/ )#YamlFileDumper. +#XliffFileDumper- %#QtFileDumper, %#PoFileDumper+ '#PhpFileDumper* %#MoFileDumper) )#JsonFileDumper( '#IniFileDumper' -#IcuResFileDumper& !#FileDumper% '#CsvFileDumper$ !"Translator# 1"PluralizationRules" +"MessageSelector! -"MessageCatalogue  /"LoggingTranslator "Interval 1"IdentityTranslator ;"DataCollectorTranslator =!TranslationDataCollector ) MergeOperation ' DiffOperation / AbstractOperation 'StopwatchTest 1StopwatchEventTest +StopwatchPeriod )StopwatchEvent Stopwatch Section )JsonParserTest Undefined -ParsingException Lexer !JsonParser DummyTest 3LoggerInterfaceTest !NullLogger
 LogLevel	 =InvalidArgumentException )AbstractLogger Service !PimpleTest %NonInvokable Invokable Pimple !Repository SomeTest  'PhpOptionRepo +TraditionalRepo~ +PerformanceTest} !OptionTest| NoneTest{ )LazyOptionTestz !EnsureTest
y Somex Option
w Nonev !LazyOptionu /ArgumentReflectort )UnreadableFiles )UnparsableFile!r CPostDocBlockExtractionEventq 9ExportDocBlockTagEventp /PropertyReflectoro +MethodReflectorn /ConstantReflectorm /PrettyPrinterTestl 1ClassReflectorTestk /BaseReflectorTestj 'NodeStmtMock2i %NodeStmtMockh %NodeExprMockg 1ClassReflectorMockf /BaseReflectorMocke Traverserd )TraitReflectorc 1ReflectionAbstractb 'PrettyPrintera Lexer` 1InterfaceReflector_ -IncludeReflector^ /FunctionReflector] 'FileReflector\ Exception[ /ConstantReflectorZ )ClassReflectorY 'BaseReflectorX !TranslatorW +ServiceProviderV 'ConfigurationU 1RequirementMissingT )WriterAbstractS !CollectionR %
PathResolverQ 
ParameterP 
FactoryO !
Collection!N C	QualifiedNameToUrlConverterM 1	PropertyDescriptorL /	PackageDescriptorK 3	NamespaceDescriptorJ -	MethodDescriptorI 1	FunctionDescriptorH )	FileDescriptorG 1	ConstantDescriptorF +	ClassDescriptorE )StandardRouter
D RuleC )RouterAbstractB RendererA Queue@ %ForFileProxy? )ExternalRouter> 'UnknownWriter = AMissingDependencyException< ?WriterInitializationEvent; /PreXslWriterEvent: /PreTransformEvent9 9PreTransformationEvent8 1PostTransformEvent7 ;PostTransformationEvent6 #Transformer5 )Transformation4 Template3 +ServiceProvider2 Exception1 'Configuration0 Template/ +Transformations . AExternalClassDocumentation- #ListCommand, -TransformCommand+ ! Collection* / BehaviourAbstract
) Twig( +ServiceProvider' Extension& Template% TwigTest   X nXA-v\C*jP7kH,fB6!






{
h
L
:
,

							s	e	N	>	%		 mI,t`S=-xiQ@(xeI2kZM7&}lS3gG.sX          i 11ValidatorException"h E1UnsupportedMetadataExceptiong ;1UnexpectedTypeExceptionf -1RuntimeExceptione 51OutOfBoundsExceptiond ;1NoSuchMetadataExceptionc ;1MissingOptionsExceptionb -1MappingExceptiona ;1InvalidOptionsException` =1InvalidArgumentException_ =1GroupDefinitionException#^ G1ConstraintDefinitionException] 91BadMethodCallException#\ G0LegacyExecutionContextFactory[ 90LegacyExecutionContextZ ;0ExecutionContextFactoryY -0ExecutionContextX /RequiredW /OptionalV .ValidU '.UuidValidator
T .UuidS %.UrlValidator	R .UrlQ '.TypeValidator
P .TypeO '.TrueValidator
N .TrueM .TraverseL '.TimeValidator
K .TimeJ .RequiredI ).RegexValidatorH .RegexG ).RangeValidatorF .RangeE .OptionalD '.NullValidator
C .NullB -.NotNullValidatorA .NotNull@ ;.NotIdenticalToValidator? ).NotIdenticalTo> 3.NotEqualToValidator= !.NotEqualTo< /.NotBlankValidator; .NotBlank: '.LuhnValidator
9 .Luhn8 +.LocaleValidator7 .Locale6 /.LessThanValidator5 =.LessThanOrEqualValidator4 +.LessThanOrEqual3 .LessThan2 +.LengthValidator1 .Length0 /.LanguageValidator/ .Language. +.IsTrueValidator- .IsTrue, '.IssnValidator
+ .Issn* +.IsNullValidator) .IsNull( -.IsFalseValidator' .IsFalse& '.IsbnValidator
% .Isbn$ #.IpValidator# .Ip" ).ImageValidator! .Image  5.IdenticalToValidator #.IdenticalTo '.IbanValidator
 .Iban 7.GroupSequenceProvider '.GroupSequence 5.GreaterThanValidator! C.GreaterThanOrEqualValidator 1.GreaterThanOrEqual #.GreaterThan '.FileValidator
 .File ).FalseValidator .False 3.ExpressionValidator !.Expression .Existence -.EqualToValidator .EqualTo ).EmailValidator .Email '.DateValidator
 /.DateTimeValidator	 .DateTime
 .Date /.CurrencyValidator .Currency ).CountValidator -.CountryValidator .Country .Count .Composite  3.CollectionValidator !.Collection~ +.ChoiceValidator} .Choice| 3.CardSchemeValidator{ !.CardSchemez /.CallbackValidatory .Callbackx ).BlankValidatorw .Blankv %.AllValidator	u .All!t C.AbstractComparisonValidators 1.AbstractComparisonr --ValidatorBuilderq -Validatorp /-ValidationVisitoro !-Validationn --ExecutionContextm /-DefaultTranslatorl ;-ConstraintViolationListk 3-ConstraintViolation j A-ConstraintValidatorFactoryi 3-ConstraintValidatorh !-Constraintg /,TranslationWriterf 1+YamlFileLoaderTeste 3+XliffFileLoaderTestd -+QtFileLoaderTestc -+PoFileLoaderTestb /+PhpFileLoaderTesta -+MoFileLoaderTest` /+LocalizedTestCase_ 1+JsonFileLoaderTest^ /+IniFileLoaderTest] 5+IcuResFileLoaderTest\ 5+IcuDatFileLoaderTest[ /+CsvFileLoaderTestZ 1*YamlFileDumperTestY 3*XliffFileDumperTestX -*QtFileDumperTestW -*PoFileDumperTestV /*PhpFileDumperTestU -*MoFileDumperTestT 1*JsonFileDumperTestS /*IniFileDumperTestR 5*IcuResFileDumperTestQ 1*ConcreteFileDumperP )*FileDumperTestO /*CsvFileDumperTestN #)StringClassM ))TranslatorTestL ')StaleResourceK 3)TranslatorCacheTestJ 9)PluralizationRulesTestI 3)MessageSelectorTestH 5)MessageCatalogueTestG 7)LoggingTranslatorTest     zbK4fS?+kCsS7 eO2




}
b
E
%
					s	Y	?		~bD(qM0oX4{cO2
y_<"vdA'~cF!wX;         q 1=StaticLoaderEntityp 5=AbstractStaticLoadero 9=StaticMethodLoaderTestn +=LoaderChainTestm +=FilesLoaderTestl 5=AnnotationLoaderTest k A=AbstractStaticMethodLoaderj !<TestLoader$i I<LazyLoadingMetadataFactoryTest"h E<BlackHoleMetadataFactoryTestg 5;PropertyMetadataTestf 1;TestMemberMetadatae 1;MemberMetadataTestd 3;TestElementMetadatac ?;LegacyElementMetadataTestb 1;GetterMetadataTesta /;ClassMetadataTest` 1:LegacyApcCacheTest_ /:DoctrineCacheTest ^ A9StubGlobalExecutionContext] 9Reference\ 19PropertyConstraint [ A9InvalidConstraintValidatorZ /9InvalidConstraint!Y C9GroupSequenceProviderEntityX #9FilesLoaderW 39FakeMetadataFactoryV /9FakeClassMetadata U A9FailingConstraintValidatorT /9FailingConstraintS %9EntityParentR 9EntityQ /9CustomArrayObjectP 9Countable"O E9ConstraintWithValueAsDefaultN 39ConstraintWithValueM #9ConstraintCL #9ConstraintBK 59ConstraintAValidatorJ #9ConstraintAI +9ClassConstraintH '9CallbackClassG 58ValidatorBuilderTestF 38LegacyValidatorTest$E I8ExecutionContextTest_TestClass D A8LegacyExecutionContextTestC ;8ConstraintViolationTest!B C8ConstraintViolationListTestA )8ConstraintTest@ 7RegexTest? 6ValidTest> /6UuidValidatorTest= -6UrlValidatorTest< /6TypeValidatorTest; /6TimeValidatorTest: 16RegexValidatorTest9 16RangeValidatorTest8 56NotNullValidatorTest!7 C6NotIdenticalToValidatorTest6 ;6NotEqualToValidatorTest5 76NotBlankValidatorTest4 /6LuhnValidatorTest3 36LocaleValidatorTest2 76LessThanValidatorTest"1 E6LessThanOrEqualValidatorTest0 36LengthValidatorTest/ 76LanguageValidatorTest. 36IsTrueValidatorTest- /6IssnValidatorTest, 36IsNullValidatorTest+ 56IsFalseValidatorTest* /6IsbnValidatorTest) +6IpValidatorTest( 16ImageValidatorTest' =6IdenticalToValidatorTest& /6IbanValidatorTest% /6GroupSequenceTest$ =6GreaterThanValidatorTest%# K6GreaterThanOrEqualValidatorTest" /6FileValidatorTest! 76FileValidatorPathTest  ;6FileValidatorObjectTest 6FileTest ;6ExpressionValidatorTest 56EqualToValidatorTest 16EmailValidatorTest /6DateValidatorTest 76DateTimeValidatorTest 76CurrencyValidatorTest 16CountValidatorTest! C6CountValidatorCountableTest ;6CountValidatorArrayTest 56CountryValidatorTest '6CompositeTest /6ConcreteComposite ;6CollectionValidatorTest. ]6CollectionValidatorCustomArrayObjectTest" E6CollectionValidatorArrayTest( Q6CollectionValidatorArrayObjectTest )6CollectionTest 36ChoiceValidatorTest ;6CardSchemeValidatorTest 76CallbackValidatorTest"
 E6CallbackValidatorTest_Object!	 C6CallbackValidatorTest_Class 16BlankValidatorTest -6AllValidatorTest 6AllTest" E6ConstraintViolationAssertion% K6AbstractConstraintValidatorTest) S6AbstractComparisonValidatorTestCase 56ComparisonTest_Class +5YamlFilesLoader  )5YamlFileLoader )5XmlFilesLoader~ '5XmlFileLoader} 15StaticMethodLoader| #5LoaderChain{ #5FilesLoaderz !5FileLoadery -5AnnotationLoaderx )5AbstractLoader w A4LazyLoadingMetadataFactoryv =4BlackHoleMetadataFactoryu '3DoctrineCachet 3ApcCaches /2TraversalStrategyr -2PropertyMetadataq )2MemberMetadatap )2GetterMetadatao +2GenericMetadatan +2ElementMetadatam 52ClassMetadataFactoryl '2ClassMetadatak /2CascadingStrategyj =2BlackholeMetadataFactory   p tW9~Y>qX>#	_? ~cJ6






c
H
4
						z	W	/	S( |PuM%}S$a;pH&Y2sL%                           a ACTwig_Node_Expression_Unary$` ICTwig_Node_Expression_Unary_Pos$_ ICTwig_Node_Expression_Unary_Not$^ ICTwig_Node_Expression_Unary_Neg] ?CTwig_Node_Expression_Test&\ MCTwig_Node_Expression_Test_Sameas#[ GCTwig_Node_Expression_Test_Odd$Z ICTwig_Node_Expression_Test_Null$Y ICTwig_Node_Expression_Test_Even+X WCTwig_Node_Expression_Test_Divisibleby'W OCTwig_Node_Expression_Test_Defined(V QCTwig_Node_Expression_Test_Constant#U GCTwig_Node_Expression_TempName!T CCTwig_Node_Expression_ParentS ?CTwig_Node_Expression_Name%R KCTwig_Node_Expression_MethodCall"Q ECTwig_Node_Expression_GetAttr#P GCTwig_Node_Expression_Function!O CCTwig_Node_Expression_Filter)N SCTwig_Node_Expression_Filter_Default-M [CTwig_Node_Expression_ExtensionReference#L GCTwig_Node_Expression_Constant&K MCTwig_Node_Expression_ConditionalJ ?CTwig_Node_Expression_Call)I SCTwig_Node_Expression_BlockReference!H CCTwig_Node_Expression_Binary%G KCTwig_Node_Expression_Binary_Sub,F YCTwig_Node_Expression_Binary_StartsWith'E OCTwig_Node_Expression_Binary_Range'D OCTwig_Node_Expression_Binary_Power$C ICTwig_Node_Expression_Binary_Or'B OCTwig_Node_Expression_Binary_NotIn*A UCTwig_Node_Expression_Binary_NotEqual%@ KCTwig_Node_Expression_Binary_Mul%? KCTwig_Node_Expression_Binary_Mod)> SCTwig_Node_Expression_Binary_Matches+= WCTwig_Node_Expression_Binary_LessEqual&< MCTwig_Node_Expression_Binary_Less$; ICTwig_Node_Expression_Binary_In.: ]CTwig_Node_Expression_Binary_GreaterEqual)9 SCTwig_Node_Expression_Binary_Greater*8 UCTwig_Node_Expression_Binary_FloorDiv'7 OCTwig_Node_Expression_Binary_Equal*6 UCTwig_Node_Expression_Binary_EndsWith%5 KCTwig_Node_Expression_Binary_Div(4 QCTwig_Node_Expression_Binary_Concat,3 YCTwig_Node_Expression_Binary_BitwiseXor+2 WCTwig_Node_Expression_Binary_BitwiseOr,1 YCTwig_Node_Expression_Binary_BitwiseAnd%0 KCTwig_Node_Expression_Binary_And%/ KCTwig_Node_Expression_Binary_Add%. KCTwig_Node_Expression_AssignName - ACTwig_Node_Expression_Array, +CTwig_Node_Embed+ %CTwig_Node_Do* ;CTwig_Node_CheckSecurity) )CTwig_Node_Body( =CTwig_Node_BlockReference' +CTwig_Node_Block& 5CTwig_Node_AutoEscape% #CTwig_Markup$ 1CTwig_Loader_String# 9CTwig_Loader_Filesystem" /CTwig_Loader_Chain! /CTwig_Loader_Array  !CTwig_Lexer 'CTwig_Function 1CTwig_Function_Node 5CTwig_Function_Method 9CTwig_Function_Function #CTwig_Filter -CTwig_Filter_Node 1CTwig_Filter_Method 5CTwig_Filter_Function( QCTwig_FileExtensionEscapingStrategy )CTwig_Extension! CCTwig_Extension_StringLoader 9CTwig_Extension_Staging 9CTwig_Extension_Sandbox ;CTwig_Extension_Profiler =CTwig_Extension_Optimizer 9CTwig_Extension_Escaper 5CTwig_Extension_Debug 3CTwig_Extension_Core 7CTwig_ExpressionParser !CTwig_Error /CTwig_Error_Syntax
 1CTwig_Error_Runtime	 /CTwig_Error_Loader -CTwig_Environment 'CTwig_Compiler +CTwig_Cache_Null 7CTwig_Cache_Filesystem 5CTwig_BaseNodeVisitor +CTwig_Autoloader& MBLegacyConstraintViolationBuilder  ABConstraintViolationBuilder  1ARecursiveValidator" EARecursiveContextualValidator~ +ALegacyValidator} %@PropertyPath$| I?RecursiveValidator2Dot5ApiTest"{ E?LegacyValidatorLegacyApiTest!z C?LegacyValidator2Dot5ApiTesty 7?AbstractValidatorTestx 7?AbstractLegacyApiTestw 5?Abstract2Dot5ApiTestv ->PropertyPathTestu 1=YamlFileLoaderTestt /=XmlFileLoaderTests ==BaseStaticLoaderDocumentr 5=StaticLoaderDocument   p	 mS;"
lZ?yW5yFoY>






a
E
&
					o	O	.	xY@a2~X/tK+rK$Y'W%d<	                                 0R aCTwig_Tests_Node_Expression_ConditionalTest%Q KCTwig_Tests_Node_Expression_Call)P SCTwig_Tests_Node_Expression_CallTest/O _CTwig_Tests_Node_Expression_Binary_SubTest.N ]CTwig_Tests_Node_Expression_Binary_OrTest/M _CTwig_Tests_Node_Expression_Binary_MulTest/L _CTwig_Tests_Node_Expression_Binary_ModTest4K iCTwig_Tests_Node_Expression_Binary_FloorDivTest/J _CTwig_Tests_Node_Expression_Binary_DivTest2I eCTwig_Tests_Node_Expression_Binary_ConcatTest/H _CTwig_Tests_Node_Expression_Binary_AndTest/G _CTwig_Tests_Node_Expression_Binary_AddTest/F _CTwig_Tests_Node_Expression_AssignNameTest*E UCTwig_Tests_Node_Expression_ArrayTestD 9CTwig_Tests_Node_DoTestC ?CTwig_Tests_Node_BlockTest(B QCTwig_Tests_Node_BlockReferenceTest$A ICTwig_Tests_Node_AutoEscapeTest$@ ICTwig_Tests_NativeExtensionTest&? MCTwig_Tests_Loader_FilesystemTest!> CCTwig_Tests_Loader_ChainTest(= QCTwig_Test_Loader_TemplateReference!< CCTwig_Tests_Loader_ArrayTest; 5CTwig_Tests_LexerTest: ;CLegacyTwigTestExtension&9 MCTwig_Tests_LegacyIntegrationTest8 /CTwigTestExtension6 #CTwigTestFoo 5 ACTwig_Tests_IntegrationTest24 eCTwig_Tests_FileExtensionEscapingStrategyTest 3 ACTwig_Tests_FileCachingTest2 CFooObject&1 MCTwig_Tests_Extension_SandboxTest#0 GCTwig_Tests_Extension_CoreTest%/ KCTwig_Tests_ExpressionParserTest. 9CTwig_Test_EscapingTest- =CTwig_Tests_ErrorTest_Foo, 5CTwig_Tests_ErrorTest,+ YCTwig_Tests_EnvironmentTest_NodeVisitor,* YCTwig_Tests_EnvironmentTest_TokenParser*) UCTwig_Tests_EnvironmentTest_Extension ( ACTwig_Tests_EnvironmentTest' ;CTwig_Tests_CompilerTest& ?CTwig_Tests_AutoloaderTest#% GCTwig_Util_TemplateDirIterator$$ ICTwig_Util_DeprecationCollector# -CTwig_TokenStream" 9CTwig_TokenParserBroker! -CTwig_TokenParser  5CTwig_TokenParser_Use  ACTwig_TokenParser_Spaceless 5CTwig_TokenParser_Set =CTwig_TokenParser_Sandbox 9CTwig_TokenParser_Macro =CTwig_TokenParser_Include ;CTwig_TokenParser_Import 3CTwig_TokenParser_If 7CTwig_TokenParser_From 5CTwig_TokenParser_For 9CTwig_TokenParser_Flush ;CTwig_TokenParser_Filter =CTwig_TokenParser_Extends 9CTwig_TokenParser_Embed 3CTwig_TokenParser_Do 9CTwig_TokenParser_Block! CCTwig_TokenParser_AutoEscape !CTwig_Token CTwig_Test 9CTwig_Test_NodeTestCase )CTwig_Test_Node -CTwig_Test_Method#
 GCTwig_Test_IntegrationTestCase	 1CTwig_Test_Function 'CTwig_Template +CTwig_SimpleTest 3CTwig_SimpleFunction /CTwig_SimpleFilter! CCTwig_Sandbox_SecurityPolicy- [CTwig_Sandbox_SecurityNotAllowedTagError2 eCTwig_Sandbox_SecurityNotAllowedFunctionError0 aCTwig_Sandbox_SecurityNotAllowedFilterError   ACTwig_Sandbox_SecurityError 7CTwig_Profiler_Profile(~ QCTwig_Profiler_NodeVisitor_Profiler%} KCTwig_Profiler_Node_LeaveProfile%| KCTwig_Profiler_Node_EnterProfile{ ?CTwig_Profiler_Dumper_Textz ?CTwig_Profiler_Dumper_Html$y ICTwig_Profiler_Dumper_Blackfirex #CTwig_Parserw =CTwig_NodeVisitor_Sandbox#v GCTwig_NodeVisitor_SafeAnalysis u ACTwig_NodeVisitor_Optimizert =CTwig_NodeVisitor_Escapers 1CTwig_NodeTraverserr CTwig_Nodeq )CTwig_Node_Textp 3CTwig_Node_Spacelesso /CTwig_Node_SetTempn 'CTwig_Node_Setm =CTwig_Node_SandboxedPrintl /CTwig_Node_Sandboxk +CTwig_Node_Printj -CTwig_Node_Modulei +CTwig_Node_Macroh /CTwig_Node_Includeg -CTwig_Node_Importf %CTwig_Node_Ife /CTwig_Node_ForLoopd 'CTwig_Node_Forc +CTwig_Node_Flushb 5CTwig_Node_Expression    rC[*
_=Z<)X0



p
L
				c	<	dM*ycN;'jR7  z`H7%~gH:%|fI4&iS@"qcUB6  
V NJsonU )NJavaProperties	T NIniS !MTranslatorR MTokenQ MQueueP MFilterO MConstantN -LRuntimeExceptionM =LInvalidArgumentExceptionL 3KWriterPluginManagerK 3KReaderPluginManagerJ KFactoryI KConfigH 7KAbstractConfigFactoryG !JSerializerF 'JPluginOptionsE -JOptimizeByFactorD +JIgnoreUserAbortC -JExceptionHandlerB 5JClearExpiredByFactorA )JAbstractPlugin@ IPostEvent? 'IPluginManager> )IExceptionEvent= IEvent< %ICapabilities; 5IAdapterPluginManager: 'HZendServerShm9 )HZendServerDisk8 'HXCacheOptions7 HXCache6 +HWinCacheOptions5 HWinCache4 )HSessionOptions3 HSession2 5HRedisResourceManager1 %HRedisOptions0 HRedis/ 9HMongoDbResourceManager. )HMongoDbOptions- HMongoDb, 'HMemoryOptions+ HMemory* ;HMemcacheResourceManager) +HMemcacheOptions( =HMemcachedResourceManager' -HMemcachedOptions& HMemcached% HMemcache$ +HKeyListIterator# /HFilesystemOptions" 1HFilesystemIterator! !HFilesystem  !HDbaOptions #HDbaIterator	 HDba HBlackHole !HApcOptions #HApcIterator	 HApc )HAdapterOptions 1HAbstractZendServer +HAbstractAdapter 3GStorageCacheFactory( QGStorageCacheAbstractServiceFactory )FStorageFactory 5FPatternPluginManager )FPatternFactory )EPatternOptions #EOutputCache #EObjectCache !EClassCache %ECaptureCache 'ECallbackCache +EAbstractPattern$
 IDUnsupportedMethodCallException	 =DUnexpectedValueException -DRuntimeException 3DOutOfSpaceException 3DMissingKeyException  ADMissingDependencyException )DLogicException =DInvalidArgumentException! CDExtensionNotLoadedException 9DBadMethodCallException   ACTwig_Tests_TokenStreamTest =CCExtDisablingNodeVisitor-~ [CTwig_TemplateMagicMethodExceptionObject$} ICTwig_TemplateMagicMethodObject&| MCTwig_TemplateMethodAndPropObject{ ?CTwig_TemplateMethodObject:z uCTwig_TemplatePropertyObjectDefinedWithUndefinedValue/y _CTwig_TemplatePropertyObjectAndArrayAccess,x YCTwig_TemplatePropertyObjectAndIterator!w CCTwig_TemplatePropertyObject3v gCTwig_TemplateMagicPropertyObjectWithException&u MCTwig_TemplateMagicPropertyObject$t ICTwig_TemplateArrayAccessObjects /CTwig_TemplateTestr ;CTwig_Tests_TemplateTest%q KCTwig_Tests_Profiler_ProfileTest)p SCTwig_Tests_Profiler_Dumper_TextTest)o SCTwig_Tests_Profiler_Dumper_HtmlTest.n ]CTwig_Tests_Profiler_Dumper_BlackfireTest-m [CTwig_Tests_Profiler_Dumper_AbstractTestl +CTestTokenParserk !CTestParserj 7CTwig_Tests_ParserTest*i UCTwig_Tests_NodeVisitor_OptimizerTesth =CTwig_Tests_Node_TextTest#g GCTwig_Tests_Node_SpacelessTestf ;CTwig_Tests_Node_SetTest!e CCTwig_Tests_Node_SandboxTest(d QCTwig_Tests_Node_SandboxedPrintTestc ?CTwig_Tests_Node_PrintTest b ACTwig_Tests_Node_ModuleTesta ?CTwig_Tests_Node_MacroTest!` CCTwig_Tests_Node_IncludeTest _ ACTwig_Tests_Node_ImportTest^ 9CTwig_Tests_Node_IfTest] ;CTwig_Tests_Node_ForTest.\ ]CTwig_Tests_Node_Expression_Unary_PosTest.[ ]CTwig_Tests_Node_Expression_Unary_NotTest.Z ]CTwig_Tests_Node_Expression_Unary_NegTest)Y SCTwig_Tests_Node_Expression_TestTest+X WCTwig_Tests_Node_Expression_ParentTest)W SCTwig_Tests_Node_Expression_NameTest,V YCTwig_Tests_Node_Expression_GetAttrTest-U [CTwig_Tests_Node_Expression_FunctionTest+T WCTwig_Tests_Node_Expression_FilterTest-S [CTwig_Tests_Node_Expression_ConstantTest    k]H4nW:#oXE5&
raL6 eYNB6'





o
V
F
6
$

 						i	Q	8		rN*	r]I.xk\N@/!rcQ9$vhYK;*~ocF3zgO8'                 	 #oWddxOptions
 oWddx 3oPythonPickleOptions %oPythonPickle %oPhpSerialize oPhpCode oMsgPack #oJsonOptions
 oJson  oIgBinary )oAdapterOptions~ +oAbstractAdapter} !nHashTiming
| mRand{ -lRuntimeExceptionz =lInvalidArgumentExceptiony +lDomainExceptionx -kRuntimeExceptionw =kInvalidArgumentExceptionv ;kDivisionByZeroExceptionu !jBigIntegert 5jAdapterPluginManager	s iGmpr iBcmathq hService
p gHttp
o fHttpn -eRuntimeExceptionm =eInvalidArgumentExceptionl 'eHttpExceptionk )eErrorException	j dSmdi dServerh dResponseg dRequestf dErrore dClientd dCachec -cRuntimeExceptionb 1cRecursionExceptiona =cInvalidArgumentException` 9cBadMethodCallException
_ bJson
^ bExpr] bEncoder\ bDecoder[ %aHelperConfigZ +`TranslatePluralY `TranslateX `PluralW %`NumberFormatV !`DateFormatU )`CurrencyFormatT =`AbstractTranslatorHelperS _PostCodeR #_PhoneNumberQ _IsIntP _IsFloat	O _IntN _FloatM _DateTimeL _AlphaK _AlnumJ ^Symbol
I ^RuleH ^ParserG =]TranslatorServiceFactoryF !]TranslatorE !]TextDomainD 3]LoaderPluginManagerC )\PhpMemoryArrayB \PhpArray	A \Ini@ \Gettext? 1\AbstractFileLoader> #[NumberParse= %[NumberFormat< [Alpha; [Alnum: )[AbstractLocale9 -ZRuntimeException8 )ZRangeException7 )ZParseException6 5ZOutOfBoundsException5 =ZInvalidArgumentException!4 CZExtensionNotLoadedException!3 CYSeparatorToSeparatorFactory2 9XUnderscoreToStudlyCase1 7XUnderscoreToSeparator0 -XUnderscoreToDash/ 7XUnderscoreToCamelCase. 5XSeparatorToSeparator- +XSeparatorToDash, 5XSeparatorToCamelCase+ -XDashToUnderscore* +XDashToSeparator) +XDashToCamelCase( 7XCamelCaseToUnderscore' 5XCamelCaseToSeparator& +XCamelCaseToDash% /XAbstractSeparator$ WUpperCase# %WRenameUpload" WRename! WLowerCase  WEncrypt WDecrypt -VRuntimeException =VInvalidArgumentException! CVExtensionNotLoadedException +VDomainException 9VBadMethodCallException UOpenssl #UBlockCipher	 TZip	 TTar TSnappy	 TRar	 TLzf TGz	 TBz2" ETAbstractCompressionAlgorithm SWhitelist %SUriNormalize )SUpperCaseWords SToNull SToInt
 SStripTags	 'SStripNewlines !SStringTrim 'SStringToUpper 'SStringToLower %SStaticFilter SRealPath #SPregReplace
 SNull #SMonthSelect	  SInt SInflector~ %SHtmlEntities} 3SFilterPluginManager| #SFilterChain{ SEncrypt	z SDiry SDigitsx SDecryptw !SDecompressv )SDateTimeSelectu /SDateTimeFormattert !SDateSelects /SDataUnitFormatterr SCompressq SCallbackp SBooleano SBlacklistn SBaseNamem +SAbstractUnicodel )SAbstractFilterk 5SAbstractDateDropdownj )RFilterIteratori =QInvalidCallbackExceptionh =QInvalidArgumentExceptiong +QDomainExceptionf 1PStaticEventManagere 1PSharedEventManagerd 1PResponseCollectionc 1PGlobalEventManagerb #PFilterChaina %PEventManager` PEvent_ ?PAbstractListenerAggregate
^ OYaml	] OXml\ OPhpArray
[ OJson	Z OIniY )OAbstractWriter
X NYaml	W NXml    rTE.lK'hP<)}m\C2!bA*





y
[
D
1

							m	M	,	sR:" |^PC2#}mLtMg<pN)kP<!gE    $ IezcBaseFileRemoveRecursiveTest ?ezcBaseFileIsAbsoluteTest" EezcBaseFileFindRecursiveTest" EezcBaseFileCopyRecursiveTest* UezcBaseFileCalculateRelativePathTest  AezcBaseFeaturesWindowsTest ;ezcBaseFeaturesUnixTest 1extTranslationTest
 #ezcBaseTest	 1ezcBaseOptionsTest +ezcBaseInitTest  AezcBaseRepositoryDirectory 9ezcBaseFileFindContext 'ezcBaseStruct )ezcBaseOptions 9ezcBaseAutoloadOptions +ezcBaseMetaData" EezcBaseMetaDataTarballReader  ?ezcBaseMetaDataPearReader #ezcBaseInit~ #ezcBaseFile} +ezcBaseFeatures| =ezcBaseWhateverException{ 7ezcBaseValueException"z EezcBaseSettingValueException%y KezcBaseSettingNotFoundException(x QezcBasePropertyPermissionException&w MezcBasePropertyNotFoundException(v QezcBaseInvalidParentClassException.u ]ezcBaseInitInvalidCallbackClassException,t YezcBaseInitCallbackConfiguredException/s _ezcBaseFunctionalityNotSupportedException$r IezcBaseFilePermissionException"q EezcBaseFileNotFoundExceptionp 9ezcBaseFileIoExceptiono 5ezcBaseFileException'n OezcBaseExtensionNotFoundExceptionm -ezcBaseException1l cezcBaseDoubleClassRepositoryPrefixExceptionk =ezcBaseAutoloadExceptionj ezcBase"i EcustomSingletonConfigurationh +customSingletong -myProgressFinderf %erYourClass2e %erYourClass1d !erMyClass2c !erMyClass1b Nativea MbString
` Intl_ Iconv^ 7AbstractStringWrapper] =InvalidArgumentException\ 'StrategyChain[ 5SerializableStrategyZ +ExplodeStrategyY +DefaultStrategyX ?DateTimeFormatterStrategyW +ClosureStrategyV +BooleanStrategyU =~UnderscoreNamingStrategyT /~MapNamingStrategyS 9~IdentityNamingStrategyR ;~CompositeNamingStrategyQ 9~ArrayMapNamingStrategyP ?}HydratingIteratorIteratorO 9}HydratingArrayIteratorN =|OptionalParametersFilterM ;|NumberOfParameterFilterL /|MethodMatchFilterK |IsFilterJ |HasFilterI |GetFilterH +|FilterCompositeG -{HydratorListenerF %{HydrateEventE %{ExtractEventD /{AggregateHydratorC !zReflectionB )zObjectPropertyA 7zHydratorPluginManager@ ?zDelegatingHydratorFactory? 1zDelegatingHydrator> %zClassMethods= /zArraySerializable< -zAbstractHydrator; !yGuardUtils: -xRuntimeException9 )xLogicException8 =xInvalidCallbackException7 =xInvalidArgumentException!6 CxExtensionNotLoadedException5 +xDomainException4 9xBadMethodCallException3 +wMergeReplaceKey2 )wMergeRemoveKey1 #vStringUtils0 vSplStack/ vSplQueue. -vSplPriorityQueue- vResponse, vRequest+ 'vPriorityQueue* %vPriorityList) !vParameters( vMessage
' vGlob& %vErrorHandler% vDateTime$ +vCallbackHandler# !vArrayUtils" !vArrayStack! #vArrayObject  +vAbstractOptions ?uLazyServiceFactoryFactory 1uLazyServiceFactory =tServiceNotFoundException  AtServiceNotCreatedException" EtServiceLocatorUsageException -tRuntimeException! CtInvalidServiceNameException =tInvalidArgumentException  AtCircularReferenceException& MtCircularDependencyFoundException 5sDiServiceInitializer -sDiServiceFactory 9sDiInstanceManagerProxy =sDiAbstractServiceFactory )rServiceManager rConfig 7rAbstractPluginManager -qRuntimeException =qInvalidArgumentException! CqExtensionNotLoadedException !pSerializer
 5pAdapterPluginManager   Z  iZB)\+a,`0 rE



c
8
			y	I	pL%S'wN rMQV5S$l?                         0l aezcDocumentDocbookToRstInternalLinkHandler5k kezcDocumentDocbookToRstInlineMediaObjectHandler*j UezcDocumentDocbookToRstIgnoreHandler(i QezcDocumentDocbookToRstHeadHandler(h QezcDocumentDocbookToRstBaseHandler,g YezcDocumentDocbookToRstFootnoteHandler0f aezcDocumentDocbookToRstExternalLinkHandler,e YezcDocumentDocbookToRstEmphasisHandler+d WezcDocumentDocbookToRstCommentHandler,c YezcDocumentDocbookToRstCitationHandler.b ]ezcDocumentDocbookToRstBlockquoteHandler-a [ezcDocumentDocbookToRstBeginPageHandler!` CezcDocumentOdtTextProcessor_ =ezcDocumentOdtPcssStyler*^ UezcDocumentOdtStylePropertyGenerator.] ]ezcDocumentOdtStyleTextPropertyGenerator2\ eezcDocumentOdtStyleTableRowPropertyGenerator3[ gezcDocumentOdtStyleTableCellPropertyGenerator/Z _ezcDocumentOdtStyleTablePropertyGenerator3Y gezcDocumentOdtStyleParagraphPropertyGenerator.X ]ezcDocumentOdtStyleListPropertyGenerator2W eezcDocumentOdtPcssParagraphStylePreprocessor-V [ezcDocumentOdtPcssListStylePreprocessor-U [ezcDocumentOdtPcssFontStylePreprocessor"T EezcDocumentOdtStyleGenerator&S MezcDocumentOdtTextStyleGenerator*R UezcDocumentOdtTableRowStyleGenerator+Q WezcDocumentOdtTableCellStyleGenerator'P OezcDocumentOdtTableStyleGenerator+O WezcDocumentOdtParagraphStyleGenerator&N MezcDocumentOdtListStyleGenerator&M MezcDocumentOdtPcssConverterTools(L QezcDocumentOdtPcssConverterManager/K _ezcDocumentOdtPcssTextDecorationConverter'J OezcDocumentOdtPcssMarginConverter)I SezcDocumentOdtPcssFontSizeConverter)H SezcDocumentOdtPcssFontNameConverter%G KezcDocumentOdtPcssFontConverter(F QezcDocumentOdtDefaultPcssConverter&E MezcDocumentOdtPcssColorConverter'D OezcDocumentOdtPcssBorderConverter$C IezcDocumentOdtStyleInformation!B CezcDocumentOdtMetaGenerator A AezcDocumentOdtImageLocator)@ SezcDocumentDocbookToOdtUlinkHandler)? SezcDocumentDocbookToOdtTableHandler+> WezcDocumentDocbookToOdtSectionHandler-= [ezcDocumentDocbookToOdtParagraphHandler-< [ezcDocumentDocbookToOdtPageBreakHandler/; _ezcDocumentDocbookToOdtMediaObjectHandler+: WezcDocumentDocbookToOdtMappingHandler19 cezcDocumentDocbookToOdtLiteralLayoutHandler(8 QezcDocumentDocbookToOdtListHandler(7 QezcDocumentDocbookToOdtLinkHandler*6 UezcDocumentDocbookToOdtInlineHandler*5 UezcDocumentDocbookToOdtIgnoreHandler(4 QezcDocumentDocbookToOdtBaseHandler,3 YezcDocumentDocbookToOdtFootnoteHandler+2 WezcDocumentDocbookToOdtCommentHandler*1 UezcDocumentDocbookToOdtAnchorHandler+0 WezcDocumentDocbookToEzXmlTitleHandler// _ezcDocumentDocbookToEzXmlTableCellHandler+. WezcDocumentDocbookToEzXmlTableHandler-- [ezcDocumentDocbookToEzXmlSectionHandler-, [ezcDocumentDocbookToEzXmlRecurseHandler/+ _ezcDocumentDocbookToEzXmlParagraphHandler1* cezcDocumentDocbookToEzXmlOrderedListHandler-) [ezcDocumentDocbookToEzXmlMappingHandler3( gezcDocumentDocbookToEzXmlLiteralLayoutHandler2' eezcDocumentDocbookToEzXmlItemizedListHandler2& eezcDocumentDocbookToEzXmlInternalLinkHandler,% YezcDocumentDocbookToEzXmlIgnoreHandler.$ ]ezcDocumentDocbookToEzXmlFootnoteHandler2# eezcDocumentDocbookToEzXmlExternalLinkHandler." ]ezcDocumentDocbookToEzXmlEmphasisHandler-! [ezcDocumentDocbookToEzXmlCommentHandler,  YezcDocumentDocbookToEzXmlAnchorHandler )myLinkProvider ;myAddressElementHandler 1myAddressDirective 3trBasetestLongClass -trBasetestClass2 +trBasetestClass Object 1ezcBaseTestOptions /ezcBaseStructTest ;ezcBaseMetaDataPearTest ab /testBaseInitClass 5testBaseInitCallback   V  k9{DP$U&Z+



o
@
			q	E	S W,W&p@T) kCY/}]8                 %B KezcDocumentBBCodeNoMarkupPlugin"A EezcDocumentBBCodeImagePlugin%@ KezcDocumentBBCodeEmphasisPlugin"? EezcDocumentBBCodeEmailPlugin> ;ezcDocumentBBCodePlugin= ;ezcDocumentBBCodeParser< ?ezcDocumentBBCodeTextNode%; KezcDocumentBBCodeClosingTagNode: =ezcDocumentBBCodeTagNode$9 IezcDocumentBBCodeParagraphNode'8 OezcDocumentBBCodeLiteralBlockNode#7 GezcDocumentBBCodeListItemNode"6 EezcDocumentBBCodeListEndNode5 ?ezcDocumentBBCodeListNode(4 QezcDocumentBBCodeInlineLiteralNode)3 SezcDocumentBBCodeEnumeratedListNode#2 GezcDocumentBBCodeDocumentNode%1 KezcDocumentBBCodeBulletListNode%0 KezcDocumentBBCodeBlockLevelNode/ 7ezcDocumentBBCodeNode. =ezcDocumentXsltConverter+- WezcDocumentDocbookToHtmlXsltConverter&, MezcDocumentElementVisitorHandler(+ QezcDocumentElementVisitorConverter(* QezcDocumentEzXmlToDocbookConverter.) ]ezcDocumentEzXmlToDocbookTableRowHandler/( _ezcDocumentEzXmlToDocbookTableCellHandler+' WezcDocumentEzXmlToDocbookTableHandler-& [ezcDocumentEzXmlToDocbookMappingHandler-% [ezcDocumentEzXmlToDocbookLiteralHandler*$ UezcDocumentEzXmlToDocbookListHandler*# UezcDocumentEzXmlToDocbookLinkHandler*" UezcDocumentEzXmlToDocbookLineHandler,! YezcDocumentEzXmlToDocbookHeaderHandler.  ]ezcDocumentEzXmlToDocbookEmphasisHandler, YezcDocumentEzXmlToDocbookAnchorHandler' OezcDocumentDocbookToWikiConverter& MezcDocumentDocbookToRstConverter& MezcDocumentDocbookToOdtConverter' OezcDocumentDocbookToHtmlConverter( QezcDocumentDocbookToEzXmlConverter. ]ezcDocumentDocbookToHtmlTableCellHandler5 kezcDocumentDocbookToHtmlSpecialParagraphHandler, YezcDocumentDocbookToHtmlSectionHandler. ]ezcDocumentDocbookToHtmlParagraphHandler0 aezcDocumentDocbookToHtmlMediaObjectHandler, YezcDocumentDocbookToHtmlMappingHandler2 eezcDocumentDocbookToHtmlLiteralLayoutHandler1 cezcDocumentDocbookToHtmlInternalLinkHandler+ WezcDocumentDocbookToHtmlIgnoreHandler) SezcDocumentDocbookToHtmlHeadHandler) SezcDocumentDocbookToHtmlBaseHandler- [ezcDocumentDocbookToHtmlFootnoteHandler1 cezcDocumentDocbookToHtmlExternalLinkHandler- [ezcDocumentDocbookToHtmlEmphasisHandler8 qezcDocumentDocbookToHtmlDefinitionListEntryHandler,
 YezcDocumentDocbookToHtmlCommentHandler/	 _ezcDocumentDocbookToHtmlBlockquoteHandler+ WezcDocumentDocbookToHtmlAnchorHandler* UezcDocumentDocbookToWikiTableHandler, YezcDocumentDocbookToWikiSectionHandler, YezcDocumentDocbookToWikiRecurseHandler. ]ezcDocumentDocbookToWikiParagraphHandler0 aezcDocumentDocbookToWikiOrderedListHandler0 aezcDocumentDocbookToWikiMediaObjectHandler2 eezcDocumentDocbookToWikiLiteralLayoutHandler,  YezcDocumentDocbookToWikiLiteralHandler1 cezcDocumentDocbookToWikiItemizedListHandler1~ cezcDocumentDocbookToWikiInternalLinkHandler6} mezcDocumentDocbookToWikiInlineMediaObjectHandler+| WezcDocumentDocbookToWikiIgnoreHandler){ SezcDocumentDocbookToWikiBaseHandler1z cezcDocumentDocbookToWikiExternalLinkHandler-y [ezcDocumentDocbookToWikiEmphasisHandler.x ]ezcDocumentDocbookToWikiBeginPageHandler0w aezcDocumentDocbookToRstVariableListHandler)v SezcDocumentDocbookToRstTableHandler4u iezcDocumentDocbookToRstSpecialParagraphHandler+t WezcDocumentDocbookToRstSectionHandler+s WezcDocumentDocbookToRstRecurseHandler-r [ezcDocumentDocbookToRstParagraphHandler/q _ezcDocumentDocbookToRstOrderedListHandler/p _ezcDocumentDocbookToRstMediaObjectHandler1o cezcDocumentDocbookToRstLiteralLayoutHandler+n WezcDocumentDocbookToRstLiteralHandler0m aezcDocumentDocbookToRstItemizedListHandler   e  hAxQ(	a)_Bj@



r
W
3
					]	2	kE!cL#c?nN)a4sP,oH'qD                                      !' CezcDocumentRstParagraphNode&& MezcDocumentRstNamedReferenceNode*% UezcDocumentRstMarkupSubstitutionNode,$ YezcDocumentRstMarkupStrongEmphasisNode-# [ezcDocumentRstMarkupInterpretedTextNode+" WezcDocumentRstMarkupInlineLiteralNode&! MezcDocumentRstMarkupEmphasisNode  =ezcDocumentRstMarkupNode$ IezcDocumentRstLiteralBlockNode ?ezcDocumentRstLiteralNode) SezcDocumentRstExternalReferenceNode% KezcDocumentRstAnonymousLinkNode 9ezcDocumentRstLinkNode% KezcDocumentRstLineBlockLineNode! CezcDocumentRstLineBlockNode  AezcDocumentRstFootnoteNode! CezcDocumentRstFieldListNode* UezcDocumentRstEnumeratedListListNode& MezcDocumentRstEnumeratedListNode  AezcDocumentRstDocumentNode! CezcDocumentRstDirectiveNode* UezcDocumentRstDefinitionListListNode& MezcDocumentRstDefinitionListNode ?ezcDocumentRstCommentNode& MezcDocumentRstBulletListListNode" EezcDocumentRstBulletListNode, YezcDocumentRstBlockquoteAnnotationNode" EezcDocumentRstBlockquoteNode ;ezcDocumentRstBlockNode*
 UezcDocumentRstAnonymousReferenceNode	 1ezcDocumentRstNode 3ezcDocumentRstStack ;ezcDocumentRstDirective$ IezcDocumentRstWarningDirective# GezcDocumentRstNoticeDirective! CezcDocumentRstNoteDirective$ IezcDocumentRstIncludeDirective" EezcDocumentRstImageDirective# GezcDocumentRstFigureDirective#  GezcDocumentRstDangerDirective% KezcDocumentRstContentsDirective&~ MezcDocumentRstAttentionDirective} )ezcDocumentPdf| ;ezcDocumentPdfTokenizer${ IezcDocumentPdfLiteralTokenizer$z IezcDocumentPdfDefaultTokenizer.y ]ezcDocumentPdfTableColumnWidthCalculatorx 9ezcDocumentPdfRenderer!w CezcDocumentPdfTitleRenderer#v GezcDocumentPdfTextBoxRenderer%u KezcDocumentPdfTextBlockRenderer!t CezcDocumentPdfTableRenderer+s WezcDocumentPdfWrappingTextBoxRenderer'r OezcDocumentPdfMediaObjectRenderer q AezcDocumentPdfMainRenderer(p QezcDocumentPdfLiteralBlockRenderer$o IezcDocumentPdfListItemRenderer n AezcDocumentPdfListRenderer&m MezcDocumentPdfBlockquoteRenderer!l CezcDocumentPdfBlockRendererk 1ezcDocumentPdfPart!j CezcDocumentPdfHeaderPdfPart!i CezcDocumentPdfFooterPdfParth 1ezcDocumentPdfPage"g EezcDocumentListItemGenerator'f OezcDocumentRomanListItemGenerator*e UezcDocumentNumberedListItemGenerator$d IezcDocumentNoListItemGenerator(c QezcDocumentBulletListItemGenerator'b OezcDocumentAlphaListItemGenerator'a OezcDocumentAlnumListItemGenerator` 3ezcDocumentPdfImage#_ GezcDocumentPdfPhpImageHandler ^ AezcDocumentPdfImageHandler] =ezcDocumentPdfHyphenator%\ KezcDocumentPdfDefaultHyphenator[ 5ezcDocumentPdfDriver3Z gezcDocumentPdfTransactionalDriverWrapperState.Y ]ezcDocumentPdfTransactionalDriverWrapperX ?ezcDocumentPdfTcpdfDriverW ;ezcDocumentPdfSvgDriverV =ezcDocumentPdfHaruDriver5U kezcDocumentPdfDefaultTableColumnWidthCalculatorT ?ezcDocumentPdfBoundingBoxS /ezcDocumentBBCodeR =ezcDocumentBBCodeVisitor%Q KezcDocumentBBCodeDocbookVisitor P AezcDocumentBBCodeTokenizerO 9ezcDocumentBBCodeToken&N MezcDocumentBBCodeWhitespaceToken$M IezcDocumentBBCodeTextLineToken#L GezcDocumentBBCodeTagOpenToken$K IezcDocumentBBCodeTagCloseToken(J QezcDocumentBBCodeSpecialCharsToken#I GezcDocumentBBCodeNewLineToken(H QezcDocumentBBCodeLiteralBlockToken$G IezcDocumentBBCodeListItemToken%F KezcDocumentBBCodeLineBreakToken%E KezcDocumentBBCodeEndOfFileToken D AezcDocumentBBCodeUrlPlugin"C EezcDocumentBBCodeQuotePlugin   h  sO+[>zM.eN,f@



w
O
+
				t	M	$fF#gB kFnL.[7e;kC\6              % KezcDocumentWikiLiteralLineToken& MezcDocumentWikiLiteralBlockToken# GezcDocumentWikiLinkStartToken! CezcDocumentWikiLinkEndToken$ IezcDocumentWikiLineMarkupToken#
 GezcDocumentWikiLineBreakToken 	 AezcDocumentWikiItalicToken& MezcDocumentWikiInternalLinkToken' OezcDocumentWikiInterWikiLinkToken% KezcDocumentWikiInlineQuoteToken& MezcDocumentWikiInlineMarkupToken' OezcDocumentWikiInlineLiteralToken. ]ezcDocumentWikiParagraphIndentationToken$ IezcDocumentWikiImageStartToken" EezcDocumentWikiImageEndToken'  OezcDocumentWikiFootnoteStartToken% KezcDocumentWikiFootnoteEndToken&~ MezcDocumentWikiExternalLinkToken)} SezcDocumentWikiEscapeCharacterToken,| YezcDocumentWikiEnumeratedListItemToken#{ GezcDocumentWikiEndOfFileToken!z CezcDocumentWikiDeletedToken,y YezcDocumentWikiDefinitionListItemToken-x [ezcDocumentWikiConfluenceLinkStartToken(w QezcDocumentWikiBulletListItemTokenv =ezcDocumentWikiBoldToken%u KezcDocumentWikiBlockMarkupTokent 7ezcDocumentWikiPlugins ?ezcDocumentWikiCodePluginr 7ezcDocumentWikiParser"q EezcDocumentWikiUnderlineNodep =ezcDocumentWikiTitleNodeo ;ezcDocumentWikiTextNode!n CezcDocumentWikiTableRowNode-m [ezcDocumentWikiTableHeaderSeparatorNode"l EezcDocumentWikiTableCellNodek =ezcDocumentWikiTableNode$j IezcDocumentWikiSuperscriptNode"i EezcDocumentWikiSubscriptNode"h EezcDocumentWikiSeparatorNode g AezcDocumentWikiSectionNodef ?ezcDocumentWikiPluginNode"e EezcDocumentWikiParagraphNode"d EezcDocumentWikiPageBreakNode"c EezcDocumentWikiMonospaceNode'b OezcDocumentWikiMatchingInlineNode%a KezcDocumentWikiLiteralBlockNode` ;ezcDocumentWikiListNode _ AezcDocumentWikiLinkEndNode^ ;ezcDocumentWikiLinkNode"] EezcDocumentWikiLineBreakNode"\ EezcDocumentWikiLineLevelNode[ ?ezcDocumentWikiItalicNode'Z OezcDocumentWikiInvisibleBreakNode%Y KezcDocumentWikiInternalLinkNode&X MezcDocumentWikiInterWikiLinkNode$W IezcDocumentWikiInlineQuoteNode&V MezcDocumentWikiInlineLiteralNodeU ?ezcDocumentWikiInlineNode!T CezcDocumentWikiImageEndNodeS =ezcDocumentWikiImageNode$R IezcDocumentWikiFootnoteEndNode!Q CezcDocumentWikiFootnoteNode%P KezcDocumentWikiExternalLinkNode+O WezcDocumentWikiEnumeratedListItemNode'N OezcDocumentWikiEnumeratedListNode!M CezcDocumentWikiDocumentNode L AezcDocumentWikiDeletedNode'K OezcDocumentWikiBulletListItemNode#J GezcDocumentWikiBulletListNodeI ;ezcDocumentWikiBoldNode#H GezcDocumentWikiBlockquoteNode#G GezcDocumentWikiBlockLevelNodeF 3ezcDocumentWikiNodeE ;ezcDocumentDokuwikiWikiD 7ezcDocumentCreoleWikiC ?ezcDocumentConfluenceWikiB )ezcDocumentRstA 7ezcDocumentRstVisitor$@ IezcDocumentRstXhtmlBodyVisitor ? AezcDocumentRstXhtmlVisitor"> EezcDocumentRstDocbookVisitor= ;ezcDocumentRstTokenizer< 3ezcDocumentRstToken; 9ezcDocumentRstTextRole*: UezcDocumentRstTitleReferenceTextRole'9 OezcDocumentRstSuperscriptTextRole%8 KezcDocumentRstSubscriptTextRole"7 EezcDocumentRstStrongTextRole#6 GezcDocumentRstLiteralTextRole$5 IezcDocumentRstEmphasisTextRole4 5ezcDocumentRstParser"3 EezcDocumentRstTransitionNode2 ;ezcDocumentRstTitleNode 1 AezcDocumentRstTextLineNode0 =ezcDocumentRstTargetNode / AezcDocumentRstTableRowNode!. CezcDocumentRstTableHeadNode!- CezcDocumentRstTableCellNode!, CezcDocumentRstTableBodyNode+ ;ezcDocumentRstTableNode$* IezcDocumentRstSubstitutionNode) ?ezcDocumentRstSectionNode!( CezcDocumentRstReferenceNode   a  b?]5|_4sT<!j>



m
E
				{	M	sH#zc@U'wJa2nU:vK$W          &p MezcDocumentRstTokenizerException o AezcDocumentParserException6n mezcDocumentOdtFormattingPropertiesExistException(m QezcDocumentMissingVisitorException3l gezcDocumentRstMissingTextRoleHandlerException2k eezcDocumentWikiMissingPluginHandlerException4j iezcDocumentRstMissingDirectiveHandlerException$i IezcDocumentInvalidOdtException(h QezcDocumentInvalidDocbookExceptiong 5ezcDocumentException&f MezcDocumentErroneousXmlException$e IezcDocumentConversionException,d YezcDocumentPropertyContainerDomElement%c KezcDocumentLocateableDomElementb 1ezcDocumentXmlBasea -ezcDocumentXhtml!` CezcDocumentXhtmlXpathFilter"_ EezcDocumentXhtmlTablesFilter$^ IezcDocumentXhtmlMetadataFilter#] GezcDocumentXhtmlElementFilter+\ WezcDocumentXhtmlTextToParagraphFilter,[ YezcDocumentXhtmlTableCellElementFilter(Z QezcDocumentXhtmlTableElementFilter)Y SezcDocumentXhtmlStrongElementFilter3X gezcDocumentXhtmlSpecialParagraphElementFilter,W YezcDocumentXhtmlParagraphElementFilter*V UezcDocumentXhtmlElementMappingFilter*U UezcDocumentXhtmlLiteralElementFilter'T OezcDocumentXhtmlLinkElementFilter,S YezcDocumentXhtmlLineBlockElementFilter(R QezcDocumentXhtmlImageElementFilter)Q SezcDocumentXhtmlHeaderElementFilter+P WezcDocumentXhtmlFootnoteElementFilter-O [ezcDocumentXhtmlEnumeratedElementFilter1N cezcDocumentXhtmlDefinitionListElementFilter-M [ezcDocumentXhtmlBlockquoteElementFilter'L OezcDocumentXhtmlElementBaseFilter*K UezcDocumentXhtmlContentLocatorFilter J AezcDocumentXhtmlBaseFilterI )ezcDocumentOdtH 3ezcDocumentOdtStyleG ?ezcDocumentOdtStyleParser#F GezcDocumentOdtStyleInferencer"E EezcDocumentOdtStyleExtractorD ;ezcDocumentOdtListStyle"C EezcDocumentOdtListLevelStyle(B QezcDocumentOdtListLevelStyleNumber(A QezcDocumentOdtListLevelStyleBullet0@ aezcDocumentOdtFormattingPropertyCollection(? QezcDocumentOdtFormattingProperties> ?ezcDocumentOdtStyleFilter,= YezcDocumentOdtListLevelStyleFilterRule+< WezcDocumentOdtEmphasisStyleFilterRule; ?ezcDocumentOdtImageFilter!: CezcDocumentOdtElementFilter+9 WezcDocumentOdtElementWhitespaceFilter&8 MezcDocumentOdtElementTableFilter*7 UezcDocumentOdtElementParagraphFilter%6 KezcDocumentOdtElementListFilter%5 KezcDocumentOdtElementLinkFilter&4 MezcDocumentOdtElementImageFilter*3 UezcDocumentOdtElementHtmlTableFilter'2 OezcDocumentOdtElementHeaderFilter&1 MezcDocumentOdtElementFrameFilter)0 SezcDocumentOdtElementFootnoteFilter%/ KezcDocumentOdtElementBaseFilter. =ezcDocumentOdtBaseFilter- -ezcDocumentEzXml', OezcDocumentEzXmlDummyLinkProvider(+ QezcDocumentEzXmlDummyLinkConverter* 1ezcDocumentDocbook) +ezcDocumentWiki( 9ezcDocumentWikiVisitor#' GezcDocumentWikiDocbookVisitor& =ezcDocumentWikiTokenizer'% OezcDocumentWikiMediawikiTokenizer&$ MezcDocumentWikiDokuwikiTokenizer$# IezcDocumentWikiCreoleTokenizer(" QezcDocumentWikiConfluenceTokenizer! 5ezcDocumentWikiToken$  IezcDocumentWikiWhitespaceToken# GezcDocumentWikiUnderlineToken ?ezcDocumentWikiTitleToken" EezcDocumentWikiTextLineToken" EezcDocumentWikiTableRowToken% KezcDocumentWikiTableHeaderToken% KezcDocumentWikiSuperscriptToken# GezcDocumentWikiSubscriptToken  AezcDocumentWikiStrikeToken& MezcDocumentWikiSpecialCharsToken# GezcDocumentWikiSeparatorToken ?ezcDocumentWikiQuoteToken  AezcDocumentWikiPluginToken# GezcDocumentWikiPageBreakToken! CezcDocumentWikiNewLineToken# GezcDocumentWikiMonospaceToken+ WezcDocumentWikiMediawikiEmphasisToken   e  o[5o:
wO4tP2`9




Z
3
				m	D	f9Z,uQ-yY4`=b6c4[3                             "U EezcTestDocumentPdfMockDriverT ;ezcDocumentXmlBaseTests%S KezcDocumentXhtmlValidationTests"R EezcDocumentXhtmlOptionsTests"Q EezcDocumentXhtmlDocbookTests(P QezcDocumentWikiDocbookVisitorTestsO 5ezcDocumentWikiTests N AezcDocumentWikiParserTests!M CezcDocumentWikiOptionsTests,L YezcDocumentWikiMediawikiTokenizerTests+K WezcDocumentWikiDokuwikiTokenizerTests)J SezcDocumentWikiCreoleTokenizerTests-I [ezcDocumentWikiConfluenceTokenizerTestsH =ezcDocumentDocumentTests%G KezcDocumentRstXhtmlVisitorTests)F SezcDocumentRstXhtmlBodyVisitorTests'E OezcDocumentRstDocbookVisitorTests#D GezcDocumentRstValidationTests"C EezcDocumentRstTokenizerTestsB =ezcDocumentRstStackTestsA ?ezcDocumentRstParserTests @ AezcDocumentRstOptionsTests ? AezcDocumentPdfOptionsTests&> MezcDocumentPdfFooterOptionsTests$= IezcDocumentOptionsXmlBaseTests< ;ezcDocumentOptionsTests ; AezcDocumentOptionsOdtTests : AezcDocumentOdtDocbookTests9 7ezcDocumentEzXmlTests"8 EezcDocumentEzXmlOptionsTests7 ;ezcDocumentDocbookTests$6 IezcDocumentDocbookOptionsTests5 ?ezcDocumentConverterTests"4 EezcConverterXsltOptionsTests"3 EezcConverterWikiOptionsTests2 =ezcConverterOptionsTests!1 CezcConverterRstOptionsTests!0 CezcConverterOdtOptionsTests*/ UezcConverterEzXmlDocbookOptionsTests*. UezcConverterDocbookEzXmlOptionsTests,- YezcDocumentConverterDocbookToWikiTests+, WezcDocumentConverterDocbookToRstTests++ WezcDocumentConverterDocbookToOdtTests0* aezcDocumentConverterDocbookToHtmlXsltTests,) YezcDocumentConverterDocbookToHtmlTests-( [ezcDocumentConverterDocbookToEzXmlTests%' KezcDocumentBBCodeTokenizerTests"& EezcDocumentBBCodeParserTests*% UezcDocumentBBCodeDocbookVisitorTests $ AezcDocumentValidationError"# EezcDocumentListBulletGuesser$" IezcDocumentPcssStyleInferencer! ?ezcDocumentPcssStyleValue%  KezcDocumentPcssStyleStringValue" EezcDocumentPcssStyleSrcValue& MezcDocumentPcssStyleMeasureValue) SezcDocumentPcssStyleMeasureBoxValue# GezcDocumentPcssStyleListValue# GezcDocumentPcssStyleLineValue& MezcDocumentPcssStyleLineBoxValue" EezcDocumentPcssStyleIntValue$ IezcDocumentPcssStyleColorValue' OezcDocumentPcssStyleColorBoxValue" EezcDocumentPcssStyleBoxValue% KezcDocumentPcssStyleBorderValue( QezcDocumentPcssStyleBorderBoxValue 7ezcDocumentPcssParser 9ezcDocumentPcssMeasure$ IezcDocumentPcssLayoutDirective =ezcDocumentPcssDirective) SezcDocumentPcssDeclarationDirective% KezcDocumentHtmlConverterOptions 7ezcDocumentXmlOptions ;ezcDocumentXhtmlOptions 9ezcDocumentWikiOptions
 7ezcDocumentRstOptions!	 CezcDocumentPdfFooterOptions 7ezcDocumentPdfOptions =ezcDocumentParserOptions 7ezcDocumentOdtOptions ;ezcDocumentEzXmlOptions ?ezcDocumentDocbookOptions =ezcDocumentBBCodeOptions 1ezcDocumentOptions% KezcDocumentXsltConverterOptions/  _ezcDocumentEzXmlToDocbookConverterOptions. ]ezcDocumentDocbookToWikiConverterOptions-~ [ezcDocumentDocbookToRstConverterOptions-} [ezcDocumentDocbookToOdtConverterOptions2| eezcDocumentDocbookToHtmlXsltConverterOptions.{ ]ezcDocumentDocbookToHtmlConverterOptions/z _ezcDocumentDocbookToEzXmlConverterOptions!y CezcDocumentConverterOptionsx /ezcDocumentParser"w EezcDocumentEzXmlLinkProvider#v GezcDocumentEzXmlLinkConverteru #ezcDocumentt 5ezcDocumentConverter's OezcDocumentWikiTokenizerExceptionr ?ezcDocumentVisitException%q KezcDocumentInvalidFontException   [  i?d<Y9yR&mG"



}
U
(				{	M	%pK"bF!{P.^9xS-[7 Xk%                                            90 sGeneric_Sniffs_CodeAnalysis_JumbledIncrementerSniffC/ Generic_Sniffs_CodeAnalysis_ForLoopWithTestFunctionCallSniff?. Generic_Sniffs_CodeAnalysis_ForLoopShouldBeWhileLoopSniff5- kGeneric_Sniffs_CodeAnalysis_EmptyStatementSniff4, iGeneric_Sniffs_Classes_DuplicateClassNameSniff9+ sGeneric_Sniffs_Arrays_DisallowShortArraySyntaxSniff8* qGeneric_Sniffs_Arrays_DisallowLongArraySyntaxSniff5) kPHP_CodeSniffer_Standards_AbstractVariableSniff2( ePHP_CodeSniffer_Standards_AbstractScopeSniff4' iPHP_CodeSniffer_Standards_AbstractPatternSniff!& CPHP_CodeSniffer_Reports_Xml,% YPHP_CodeSniffer_Reports_VersionControl&$ MPHP_CodeSniffer_Reports_Svnblame%# KPHP_CodeSniffer_Reports_Summary$" IPHP_CodeSniffer_Reports_Source(! QPHP_CodeSniffer_Reports_Notifysend#  GPHP_CodeSniffer_Reports_Junit" EPHP_CodeSniffer_Reports_Json" EPHP_CodeSniffer_Reports_Info% KPHP_CodeSniffer_Reports_Hgblame& MPHP_CodeSniffer_Reports_Gitblame" EPHP_CodeSniffer_Reports_Full# GPHP_CodeSniffer_Reports_Emacs" EPHP_CodeSniffer_Reports_Diff! CPHP_CodeSniffer_Reports_Csv( QPHP_CodeSniffer_Reports_Checkstyle! CPHP_CodeSniffer_Reports_Cbf ?PHP_CodeSniffer_Reporting 7PHP_CodeSniffer_Fixer 5PHP_CodeSniffer_File ?PHP_CodeSniffer_Exception( QPHP_CodeSniffer_DocGenerators_Text, YPHP_CodeSniffer_DocGenerators_Markdown( QPHP_CodeSniffer_DocGenerators_HTML- [PHP_CodeSniffer_DocGenerators_Generator 3PHP_CodeSniffer_CLI" EezcDocumentPdfTokenizerTests 3ezcDocumentPdfTests3
 gezcDocumentPdfTableColumnWidthCalculatorTests-	 [ezcDocumentPdfVariableListRendererTests( QezcDocumentPdfTextBoxRendererTests, YezcDocumentPdfTextBoxRendererBaseTests& MezcDocumentPdfTableRendererTests" EezcDocumentPdfRenderRtlTests* UezcDocumentPdfParagraphRendererTests, YezcDocumentPdfMediaObjectRendererTests% KezcDocumentPdfMainRendererTests. ]ezcDocumentPdfLiterallayoutRendererTests%  KezcDocumentPdfListRendererTests+ WezcDocumentPdfRendererFooterPartTests+~ WezcDocumentPdfBlockquoteRendererTests0} aezcDocumentPdfRendererTextDecorationsTests| ;ezcDocumentPdfPageTests){ SezcDocumentPdfLiteralTokenizerTests*z UezcDocumentPdfListItemGeneratorTests%y KezcDocumentPdfImageHandlerTests#x GezcDocumentPdfHyphenatorTests3w gezcDocumentPdfTransactionalDriverWrapperTestsv ?ezcDocumentPdfDriverTests$u IezcDocumentPdfDriverTcpdfTests"t EezcDocumentPdfDriverSvgTests#s GezcDocumentPdfDriverHaruTestsr 9ezcDocumentPdfTestCase%q KezcDocumentPcssValueParserTests(p QezcDocumentPcssStyleInferenceTests o AezcDocumentPcssParserTests!n CezcDocumentPcssMeasureTests)m SezcDocumentPcssMatchLocationIdTests$l IezcDocumentPcssLocationIdTestsk 9ezcDocumentParserTests j AezcDocumentOptionsTestCase2i eezcDocumentOdtStyleTextPropertyGeneratorTest%h KezcDocumentOdtTextProcessorTestg =ezcDocumentOdtTestStylerf ;ezcDocumentOdtStyleTest#e GezcDocumentOdtStyleParserTest&d MezcDocumentOdtStyleExtractorTest&c MezcDocumentOdtPcssConvertersTest.b ]ezcDocumentOdtStylePropertyGeneratorTest7a oezcDocumentOdtStyleParagraphPropertyGeneratorTest%` KezcDocumentOdtMetaGeneratorTest&_ MezcDocumentOdtListLevelStyleTest4^ iezcDocumentOdtFormattingPropertyCollectionTest,] YezcDocumentOdtFormattingPropertiesTest&\ MezcDocumentListBulletGuesserTest [ AezcDocumentTestDummyPlugin'Z OezcDocumentTestParagraphDirective(Y QezcDocumentTestDummyXhtmlDirectiveX =ezcDocumentTestDummyRole#W GezcDocumentTestDummyDirective"V EezcTestDocumentPdfHyphenator   H  |;o)vEU#y7



I
			N		IMh,xE	d1c3W'^.                                                  /x _PEAR_Sniffs_Commenting_InlineCommentSniff1w cPEAR_Sniffs_Commenting_FunctionCommentSniff-v [PEAR_Sniffs_Commenting_FileCommentSniff.u ]PEAR_Sniffs_Commenting_ClassCommentSniff/t _PEAR_Sniffs_Classes_ClassDeclarationSniff.s ]MySource_Sniffs_Strings_JoinStringsSniff2r eMySource_Sniffs_PHP_ReturnFunctionValueSniff-q [MySource_Sniffs_PHP_GetRequestDataSniff0p aMySource_Sniffs_PHP_EvalObjectFactorySniff1o cMySource_Sniffs_PHP_AjaxNullComparisonSniff4n iMySource_Sniffs_Objects_DisallowNewWidgetSniff;m wMySource_Sniffs_Objects_CreateWidgetTypeCallbackSniff-l [MySource_Sniffs_Objects_AssignThisSniff/k _MySource_Sniffs_Debug_FirebugConsoleSniff*j UMySource_Sniffs_Debug_DebugCodeSniff4i iMySource_Sniffs_CSS_BrowserSpecificStylesSniff5h kMySource_Sniffs_Commenting_FunctionCommentSniff0g aMySource_Sniffs_Channels_UnusedSystemSniff1f cMySource_Sniffs_Channels_IncludeSystemSniff4e iMySource_Sniffs_Channels_IncludeOwnSystemSniff7d oMySource_Sniffs_Channels_DisallowSelfActionsSniff9c sPHP_CodeSniffer_Standards_IncorrectPatternException0b aGeneric_Sniffs_WhiteSpace_ScopeIndentSniff6a mGeneric_Sniffs_WhiteSpace_DisallowTabIndentSniff8` qGeneric_Sniffs_WhiteSpace_DisallowSpaceIndentSniff=_ {Generic_Sniffs_VersionControl_SubversionPropertiesSniff9^ sGeneric_Sniffs_Strings_UnnecessaryStringConcatSniff/] _Generic_Sniffs_PHP_UpperCaseConstantSniff$\ IGeneric_Sniffs_PHP_SyntaxSniff'[ OGeneric_Sniffs_PHP_SAPIUsageSniff.Z ]Generic_Sniffs_PHP_NoSilencedErrorsSniff.Y ]Generic_Sniffs_PHP_LowerCaseKeywordSniff/X _Generic_Sniffs_PHP_LowerCaseConstantSniff0W aGeneric_Sniffs_PHP_ForbiddenFunctionsSniff2V eGeneric_Sniffs_PHP_DisallowShortOpenTagSniff1U cGeneric_Sniffs_PHP_DeprecatedFunctionsSniff+T WGeneric_Sniffs_PHP_ClosingPHPTagSniff:S uGeneric_Sniffs_PHP_CharacterBeforePHPOpeningTagSniffBR Generic_Sniffs_NamingConventions_UpperCaseConstantNameSniff;Q wGeneric_Sniffs_NamingConventions_ConstructorNameSniffBP Generic_Sniffs_NamingConventions_CamelCapsFunctionNameSniff.O ]Generic_Sniffs_Metrics_NestingLevelSniff6N mGeneric_Sniffs_Metrics_CyclomaticComplexitySniffIM Generic_Sniffs_Functions_OpeningFunctionBraceKernighanRitchieSniffBL Generic_Sniffs_Functions_OpeningFunctionBraceBsdAllmanSniff?K Generic_Sniffs_Functions_FunctionCallArgumentSpacingSniff;J wGeneric_Sniffs_Functions_CallTimePassByReferenceSniff3I gGeneric_Sniffs_Formatting_SpaceAfterCastSniff5H kGeneric_Sniffs_Formatting_NoSpaceAfterCastSniff?G Generic_Sniffs_Formatting_MultipleStatementAlignmentSniff?F Generic_Sniffs_Formatting_DisallowMultipleStatementsSniff/E _Generic_Sniffs_Files_OneTraitPerFileSniff3D gGeneric_Sniffs_Files_OneInterfacePerFileSniff/C _Generic_Sniffs_Files_OneClassPerFileSniff2B eGeneric_Sniffs_Files_LowercasedFilenameSniff*A UGeneric_Sniffs_Files_LineLengthSniff+@ WGeneric_Sniffs_Files_LineEndingsSniff*? UGeneric_Sniffs_Files_InlineHTMLSniff0> aGeneric_Sniffs_Files_EndFileNoNewlineSniff.= ]Generic_Sniffs_Files_EndFileNewlineSniff-< [Generic_Sniffs_Files_ByteOrderMarkSniff&; MGeneric_Sniffs_Debug_JSHintSniff': OGeneric_Sniffs_Debug_CSSLintSniff-9 [Generic_Sniffs_Debug_ClosureLinterSniffC8 Generic_Sniffs_ControlStructures_InlineControlStructureSniff)7 SGeneric_Sniffs_Commenting_TodoSniff*6 UGeneric_Sniffs_Commenting_FixmeSniff/5 _Generic_Sniffs_Commenting_DocCommentSniff>4 }Generic_Sniffs_CodeAnalysis_UselessOverridingMethodSniff>3 }Generic_Sniffs_CodeAnalysis_UnusedFunctionParameterSniff?2 Generic_Sniffs_CodeAnalysis_UnnecessaryFinalModifierSniff?1 Generic_Sniffs_CodeAnalysis_UnconditionalIfStatementSniff   H  Y!|BY)e0rH


w
D
			z	F	tBb-|BNPn? _,rG!                                                )@ SSquiz_Sniffs_CSS_ShorthandSizeSniff,? YSquiz_Sniffs_CSS_SemicolonSpacingSniff#> GSquiz_Sniffs_CSS_OpacitySniff(= QSquiz_Sniffs_CSS_NamedColoursSniff(< QSquiz_Sniffs_CSS_MissingColonSniff4; iSquiz_Sniffs_CSS_LowercaseStyleDefinitionSniff': OSquiz_Sniffs_CSS_IndentationSniff+9 WSquiz_Sniffs_CSS_ForbiddenStylesSniff08 aSquiz_Sniffs_CSS_EmptyStyleDefinitionSniff07 aSquiz_Sniffs_CSS_EmptyClassDefinitionSniff46 iSquiz_Sniffs_CSS_DuplicateStyleDefinitionSniff45 iSquiz_Sniffs_CSS_DuplicateClassDefinitionSniff<4 ySquiz_Sniffs_CSS_DisallowMultipleStyleDefinitionsSniff,3 YSquiz_Sniffs_CSS_ColourDefinitionSniff(2 QSquiz_Sniffs_CSS_ColonSpacingSniff<1 ySquiz_Sniffs_CSS_ClassDefinitionOpeningBraceSpaceSniff60 mSquiz_Sniffs_CSS_ClassDefinitionNameSpacingSniff</ ySquiz_Sniffs_CSS_ClassDefinitionClosingBraceSpaceSniff;. wSquiz_Sniffs_ControlStructures_SwitchDeclarationSniff>- }Squiz_Sniffs_ControlStructures_LowercaseDeclarationSniff=, {Squiz_Sniffs_ControlStructures_InlineIfDeclarationSniff<+ ySquiz_Sniffs_ControlStructures_ForLoopDeclarationSniffA* Squiz_Sniffs_ControlStructures_ForEachLoopDeclarationSniff;) wSquiz_Sniffs_ControlStructures_ElseIfDeclarationSniff:( uSquiz_Sniffs_ControlStructures_ControlSignatureSniff2' eSquiz_Sniffs_Commenting_VariableCommentSniff7& oSquiz_Sniffs_Commenting_PostStatementCommentSniff>% }Squiz_Sniffs_Commenting_LongConditionClosingCommentSniff0$ aSquiz_Sniffs_Commenting_InlineCommentSniff:# uSquiz_Sniffs_Commenting_FunctionCommentThrowTagSniff2" eSquiz_Sniffs_Commenting_FunctionCommentSniff.! ]Squiz_Sniffs_Commenting_FileCommentSniff4  iSquiz_Sniffs_Commenting_EmptyCatchCommentSniff6 mSquiz_Sniffs_Commenting_DocCommentAlignmentSniff< ySquiz_Sniffs_Commenting_ClosingDeclarationCommentSniff/ _Squiz_Sniffs_Commenting_ClassCommentSniff/ _Squiz_Sniffs_Commenting_BlockCommentSniff. ]Squiz_Sniffs_Classes_ValidClassNameSniff3 gSquiz_Sniffs_Classes_SelfMemberReferenceSniff6 mSquiz_Sniffs_Classes_LowercaseClassKeywordsSniff1 cSquiz_Sniffs_Classes_DuplicatePropertySniff- [Squiz_Sniffs_Classes_ClassFileNameSniff0 aSquiz_Sniffs_Classes_ClassDeclarationSniff/ _Squiz_Sniffs_Arrays_ArrayDeclarationSniff2 eSquiz_Sniffs_Arrays_ArrayBracketSpacingSniff0 aPSR2_Sniffs_Namespaces_UseDeclarationSniff6 mPSR2_Sniffs_Namespaces_NamespaceDeclarationSniff0 aPSR2_Sniffs_Methods_MethodDeclarationSniff4 iPSR2_Sniffs_Methods_FunctionCallSignatureSniff+ WPSR2_Sniffs_Files_EndFileNewlineSniff' OPSR2_Sniffs_Files_ClosingTagSniff: uPSR2_Sniffs_ControlStructures_SwitchDeclarationSniff: uPSR2_Sniffs_ControlStructures_ElseIfDeclarationSniffA PSR2_Sniffs_ControlStructures_ControlStructureSpacingSniff2
 ePSR2_Sniffs_Classes_PropertyDeclarationSniff/	 _PSR2_Sniffs_Classes_ClassDeclarationSniff2 ePSR1_Sniffs_Methods_CamelCapsMethodNameSniff( QPSR1_Sniffs_Files_SideEffectsSniff/ _PSR1_Sniffs_Classes_ClassDeclarationSniff- [PEAR_Sniffs_WhiteSpace_ScopeIndentSniff3 gPEAR_Sniffs_WhiteSpace_ScopeClosingBraceSniff6 mPEAR_Sniffs_WhiteSpace_ObjectOperatorIndentSniff: uPEAR_Sniffs_NamingConventions_ValidVariableNameSniff: uPEAR_Sniffs_NamingConventions_ValidFunctionNameSniff7  oPEAR_Sniffs_NamingConventions_ValidClassNameSniff2 ePEAR_Sniffs_Functions_ValidDefaultValueSniff4~ iPEAR_Sniffs_Functions_FunctionDeclarationSniff6} mPEAR_Sniffs_Functions_FunctionCallSignatureSniff5| kPEAR_Sniffs_Formatting_MultiLineAssignmentSniff*{ UPEAR_Sniffs_Files_IncludingFileSniff;z wPEAR_Sniffs_ControlStructures_MultiLineConditionSniff9y sPEAR_Sniffs_ControlStructures_ControlSignatureSniff   P  |GV[y=b3



Z
0
				]	)n7f'u9Y"xL"mF'i>pL'             & MPHP_CodeSniffer_Reports_Gitblame" EPHP_CodeSniffer_Reports_Full# GPHP_CodeSniffer_Reports_Emacs" EPHP_CodeSniffer_Reports_Diff! CPHP_CodeSniffer_Reports_Csv( QPHP_CodeSniffer_Reports_Checkstyle!
 CPHP_CodeSniffer_Reports_Cbf	 ?PHP_CodeSniffer_Reporting 7PHP_CodeSniffer_Fixer 5PHP_CodeSniffer_File ?PHP_CodeSniffer_Exception( QPHP_CodeSniffer_DocGenerators_Text, YPHP_CodeSniffer_DocGenerators_Markdown( QPHP_CodeSniffer_DocGenerators_HTML- [PHP_CodeSniffer_DocGenerators_Generator 3PHP_CodeSniffer_CLI  +PHP_CodeSniffer 9PHP_CodeSniffer_Tokens$~ IPHP_CodeSniffer_Tokenizers_PHP#} GPHP_CodeSniffer_Tokenizers_JS$| IPHP_CodeSniffer_Tokenizers_CSS({ QPHP_CodeSniffer_Tokenizers_Comment:z uZend_Sniffs_NamingConventions_ValidVariableNameSniff'y OZend_Sniffs_Files_ClosingTagSniff)x SZend_Sniffs_Debug_CodeAnalyzerSniff8w qSquiz_Sniffs_WhiteSpace_SuperfluousWhitespaceSniff3v gSquiz_Sniffs_WhiteSpace_SemicolonSpacingSniff6u mSquiz_Sniffs_WhiteSpace_ScopeKeywordSpacingSniff4t iSquiz_Sniffs_WhiteSpace_ScopeClosingBraceSniff7s oSquiz_Sniffs_WhiteSpace_PropertyLabelSpacingSniff2r eSquiz_Sniffs_WhiteSpace_OperatorSpacingSniff8q qSquiz_Sniffs_WhiteSpace_ObjectOperatorSpacingSniff3p gSquiz_Sniffs_WhiteSpace_MemberVarSpacingSniff9o sSquiz_Sniffs_WhiteSpace_LogicalOperatorSpacingSniff;n wSquiz_Sniffs_WhiteSpace_LanguageConstructSpacingSniff2m eSquiz_Sniffs_WhiteSpace_FunctionSpacingSniff<l ySquiz_Sniffs_WhiteSpace_FunctionOpeningBraceSpaceSniff<k ySquiz_Sniffs_WhiteSpace_FunctionClosingBraceSpaceSniff:j uSquiz_Sniffs_WhiteSpace_ControlStructureSpacingSniff.i ]Squiz_Sniffs_WhiteSpace_CastSpacingSniff-h [Squiz_Sniffs_Strings_EchoedStringsSniff0g aSquiz_Sniffs_Strings_DoubleQuoteUsageSniff4f iSquiz_Sniffs_Strings_ConcatenationSpacingSniff-e [Squiz_Sniffs_Scope_StaticThisUsageSniff)d SSquiz_Sniffs_Scope_MethodScopeSniff,c YSquiz_Sniffs_Scope_MemberVarScopeSniff-b [Squiz_Sniffs_PHP_NonExecutableCodeSniff1a cSquiz_Sniffs_PHP_LowercasePHPFunctionsSniff*` USquiz_Sniffs_PHP_InnerFunctionsSniff#_ GSquiz_Sniffs_PHP_HeredocSniff)^ SSquiz_Sniffs_PHP_GlobalKeywordSniff.] ]Squiz_Sniffs_PHP_ForbiddenFunctionsSniff \ ASquiz_Sniffs_PHP_EvalSniff'[ OSquiz_Sniffs_PHP_EmbeddedPhpSniff0Z aSquiz_Sniffs_PHP_DiscouragedFunctionsSniff8Y qSquiz_Sniffs_PHP_DisallowSizeFunctionsInLoopsSniff.X ]Squiz_Sniffs_PHP_DisallowObEndFlushSniff7W oSquiz_Sniffs_PHP_DisallowMultipleAssignmentsSniff,V YSquiz_Sniffs_PHP_DisallowInlineIfSniff8U qSquiz_Sniffs_PHP_DisallowComparisonAssignmentSniff4T iSquiz_Sniffs_PHP_DisallowBooleanStatementSniff,S YSquiz_Sniffs_PHP_CommentedOutCodeSniff7R oSquiz_Sniffs_Operators_ValidLogicalOperatorsSniff9Q sSquiz_Sniffs_Operators_IncrementDecrementUsageSniff9P sSquiz_Sniffs_Operators_ComparisonOperatorUsageSniff1O cSquiz_Sniffs_Objects_ObjectMemberCommaSniff3N gSquiz_Sniffs_Objects_ObjectInstantiationSniff9M sSquiz_Sniffs_Objects_DisallowObjectStringIndexSniff;L wSquiz_Sniffs_NamingConventions_ValidVariableNameSniff;K wSquiz_Sniffs_NamingConventions_ValidFunctionNameSniff>J }Squiz_Sniffs_Functions_MultiLineFunctionDeclarationSniff;I wSquiz_Sniffs_Functions_LowercaseFunctionKeywordsSniff0H aSquiz_Sniffs_Functions_GlobalFunctionSniff;G wSquiz_Sniffs_Functions_FunctionDuplicateArgumentSniff5F kSquiz_Sniffs_Functions_FunctionDeclarationSniffEE 	Squiz_Sniffs_Functions_FunctionDeclarationArgumentSpacingSniff2D eSquiz_Sniffs_Formatting_OperatorBracketSniff+C WSquiz_Sniffs_Files_FileExtensionSniff$B ISquiz_Sniffs_Debug_JSLintSniff,A YSquiz_Sniffs_Debug_JavaScriptLintSniff   I  h=r;W `$_



M
				i	6		yG[#m(r-m?q@Pi-                                    4Y iMySource_Sniffs_Channels_IncludeOwnSystemSniff7X oMySource_Sniffs_Channels_DisallowSelfActionsSniff9W sPHP_CodeSniffer_Standards_IncorrectPatternException0V aGeneric_Sniffs_WhiteSpace_ScopeIndentSniff6U mGeneric_Sniffs_WhiteSpace_DisallowTabIndentSniff8T qGeneric_Sniffs_WhiteSpace_DisallowSpaceIndentSniff=S {Generic_Sniffs_VersionControl_SubversionPropertiesSniff9R sGeneric_Sniffs_Strings_UnnecessaryStringConcatSniff/Q _Generic_Sniffs_PHP_UpperCaseConstantSniff$P IGeneric_Sniffs_PHP_SyntaxSniff'O OGeneric_Sniffs_PHP_SAPIUsageSniff.N ]Generic_Sniffs_PHP_NoSilencedErrorsSniff.M ]Generic_Sniffs_PHP_LowerCaseKeywordSniff/L _Generic_Sniffs_PHP_LowerCaseConstantSniff0K aGeneric_Sniffs_PHP_ForbiddenFunctionsSniff2J eGeneric_Sniffs_PHP_DisallowShortOpenTagSniff1I cGeneric_Sniffs_PHP_DeprecatedFunctionsSniff+H WGeneric_Sniffs_PHP_ClosingPHPTagSniff:G uGeneric_Sniffs_PHP_CharacterBeforePHPOpeningTagSniffBF Generic_Sniffs_NamingConventions_UpperCaseConstantNameSniff;E wGeneric_Sniffs_NamingConventions_ConstructorNameSniffBD Generic_Sniffs_NamingConventions_CamelCapsFunctionNameSniff.C ]Generic_Sniffs_Metrics_NestingLevelSniff6B mGeneric_Sniffs_Metrics_CyclomaticComplexitySniffIA Generic_Sniffs_Functions_OpeningFunctionBraceKernighanRitchieSniffB@ Generic_Sniffs_Functions_OpeningFunctionBraceBsdAllmanSniff?? Generic_Sniffs_Functions_FunctionCallArgumentSpacingSniff;> wGeneric_Sniffs_Functions_CallTimePassByReferenceSniff3= gGeneric_Sniffs_Formatting_SpaceAfterCastSniff5< kGeneric_Sniffs_Formatting_NoSpaceAfterCastSniff?; Generic_Sniffs_Formatting_MultipleStatementAlignmentSniff?: Generic_Sniffs_Formatting_DisallowMultipleStatementsSniff/9 _Generic_Sniffs_Files_OneTraitPerFileSniff38 gGeneric_Sniffs_Files_OneInterfacePerFileSniff/7 _Generic_Sniffs_Files_OneClassPerFileSniff26 eGeneric_Sniffs_Files_LowercasedFilenameSniff*5 UGeneric_Sniffs_Files_LineLengthSniff+4 WGeneric_Sniffs_Files_LineEndingsSniff*3 UGeneric_Sniffs_Files_InlineHTMLSniff02 aGeneric_Sniffs_Files_EndFileNoNewlineSniff.1 ]Generic_Sniffs_Files_EndFileNewlineSniff-0 [Generic_Sniffs_Files_ByteOrderMarkSniff&/ MGeneric_Sniffs_Debug_JSHintSniff'. OGeneric_Sniffs_Debug_CSSLintSniff-- [Generic_Sniffs_Debug_ClosureLinterSniffC, Generic_Sniffs_ControlStructures_InlineControlStructureSniff)+ SGeneric_Sniffs_Commenting_TodoSniff** UGeneric_Sniffs_Commenting_FixmeSniff/) _Generic_Sniffs_Commenting_DocCommentSniff>( }Generic_Sniffs_CodeAnalysis_UselessOverridingMethodSniff>' }Generic_Sniffs_CodeAnalysis_UnusedFunctionParameterSniff?& Generic_Sniffs_CodeAnalysis_UnnecessaryFinalModifierSniff?% Generic_Sniffs_CodeAnalysis_UnconditionalIfStatementSniff9$ sGeneric_Sniffs_CodeAnalysis_JumbledIncrementerSniffC# Generic_Sniffs_CodeAnalysis_ForLoopWithTestFunctionCallSniff?" Generic_Sniffs_CodeAnalysis_ForLoopShouldBeWhileLoopSniff5! kGeneric_Sniffs_CodeAnalysis_EmptyStatementSniff4  iGeneric_Sniffs_Classes_DuplicateClassNameSniff9 sGeneric_Sniffs_Arrays_DisallowShortArraySyntaxSniff8 qGeneric_Sniffs_Arrays_DisallowLongArraySyntaxSniff5 kPHP_CodeSniffer_Standards_AbstractVariableSniff2 ePHP_CodeSniffer_Standards_AbstractScopeSniff4 iPHP_CodeSniffer_Standards_AbstractPatternSniff! CPHP_CodeSniffer_Reports_Xml, YPHP_CodeSniffer_Reports_VersionControl& MPHP_CodeSniffer_Reports_Svnblame% KPHP_CodeSniffer_Reports_Summary$ IPHP_CodeSniffer_Reports_Source( QPHP_CodeSniffer_Reports_Notifysend# GPHP_CodeSniffer_Reports_Junit" EPHP_CodeSniffer_Reports_Json" EPHP_CodeSniffer_Reports_Info% KPHP_CodeSniffer_Reports_Hgblame   H  a*]&Z)b0Q


r
5				Y	'`xJt?v=r3] r= ~?                                        >! }Squiz_Sniffs_ControlStructures_LowercaseDeclarationSniff=  {Squiz_Sniffs_ControlStructures_InlineIfDeclarationSniff< ySquiz_Sniffs_ControlStructures_ForLoopDeclarationSniffA Squiz_Sniffs_ControlStructures_ForEachLoopDeclarationSniff; wSquiz_Sniffs_ControlStructures_ElseIfDeclarationSniff: uSquiz_Sniffs_ControlStructures_ControlSignatureSniff2 eSquiz_Sniffs_Commenting_VariableCommentSniff7 oSquiz_Sniffs_Commenting_PostStatementCommentSniff> }Squiz_Sniffs_Commenting_LongConditionClosingCommentSniff0 aSquiz_Sniffs_Commenting_InlineCommentSniff: uSquiz_Sniffs_Commenting_FunctionCommentThrowTagSniff2 eSquiz_Sniffs_Commenting_FunctionCommentSniff. ]Squiz_Sniffs_Commenting_FileCommentSniff4 iSquiz_Sniffs_Commenting_EmptyCatchCommentSniff6 mSquiz_Sniffs_Commenting_DocCommentAlignmentSniff< ySquiz_Sniffs_Commenting_ClosingDeclarationCommentSniff/ _Squiz_Sniffs_Commenting_ClassCommentSniff/ _Squiz_Sniffs_Commenting_BlockCommentSniff. ]Squiz_Sniffs_Classes_ValidClassNameSniff3 gSquiz_Sniffs_Classes_SelfMemberReferenceSniff6 mSquiz_Sniffs_Classes_LowercaseClassKeywordsSniff1 cSquiz_Sniffs_Classes_DuplicatePropertySniff- [Squiz_Sniffs_Classes_ClassFileNameSniff0
 aSquiz_Sniffs_Classes_ClassDeclarationSniff/	 _Squiz_Sniffs_Arrays_ArrayDeclarationSniff2 eSquiz_Sniffs_Arrays_ArrayBracketSpacingSniff0 aPSR2_Sniffs_Namespaces_UseDeclarationSniff6 mPSR2_Sniffs_Namespaces_NamespaceDeclarationSniff0 aPSR2_Sniffs_Methods_MethodDeclarationSniff4 iPSR2_Sniffs_Methods_FunctionCallSignatureSniff+ WPSR2_Sniffs_Files_EndFileNewlineSniff' OPSR2_Sniffs_Files_ClosingTagSniff: uPSR2_Sniffs_ControlStructures_SwitchDeclarationSniff:  uPSR2_Sniffs_ControlStructures_ElseIfDeclarationSniffA PSR2_Sniffs_ControlStructures_ControlStructureSpacingSniff2~ ePSR2_Sniffs_Classes_PropertyDeclarationSniff/} _PSR2_Sniffs_Classes_ClassDeclarationSniff2| ePSR1_Sniffs_Methods_CamelCapsMethodNameSniff({ QPSR1_Sniffs_Files_SideEffectsSniff/z _PSR1_Sniffs_Classes_ClassDeclarationSniff-y [PEAR_Sniffs_WhiteSpace_ScopeIndentSniff3x gPEAR_Sniffs_WhiteSpace_ScopeClosingBraceSniff6w mPEAR_Sniffs_WhiteSpace_ObjectOperatorIndentSniff:v uPEAR_Sniffs_NamingConventions_ValidVariableNameSniff:u uPEAR_Sniffs_NamingConventions_ValidFunctionNameSniff7t oPEAR_Sniffs_NamingConventions_ValidClassNameSniff2s ePEAR_Sniffs_Functions_ValidDefaultValueSniff4r iPEAR_Sniffs_Functions_FunctionDeclarationSniff6q mPEAR_Sniffs_Functions_FunctionCallSignatureSniff5p kPEAR_Sniffs_Formatting_MultiLineAssignmentSniff*o UPEAR_Sniffs_Files_IncludingFileSniff;n wPEAR_Sniffs_ControlStructures_MultiLineConditionSniff9m sPEAR_Sniffs_ControlStructures_ControlSignatureSniff/l _PEAR_Sniffs_Commenting_InlineCommentSniff1k cPEAR_Sniffs_Commenting_FunctionCommentSniff-j [PEAR_Sniffs_Commenting_FileCommentSniff.i ]PEAR_Sniffs_Commenting_ClassCommentSniff/h _PEAR_Sniffs_Classes_ClassDeclarationSniff.g ]MySource_Sniffs_Strings_JoinStringsSniff2f eMySource_Sniffs_PHP_ReturnFunctionValueSniff-e [MySource_Sniffs_PHP_GetRequestDataSniff0d aMySource_Sniffs_PHP_EvalObjectFactorySniff1c cMySource_Sniffs_PHP_AjaxNullComparisonSniff4b iMySource_Sniffs_Objects_DisallowNewWidgetSniff;a wMySource_Sniffs_Objects_CreateWidgetTypeCallbackSniff-` [MySource_Sniffs_Objects_AssignThisSniff/_ _MySource_Sniffs_Debug_FirebugConsoleSniff*^ UMySource_Sniffs_Debug_DebugCodeSniff4] iMySource_Sniffs_CSS_BrowserSpecificStylesSniff5\ kMySource_Sniffs_Commenting_FunctionCommentSniff0[ aMySource_Sniffs_Channels_UnusedSystemSniff1Z cMySource_Sniffs_Channels_IncludeSystemSniff   J  Jr;pFd8	7



P
			W	!u;k1 hEa1o<_ q; Z!                      8k qSquiz_Sniffs_WhiteSpace_SuperfluousWhitespaceSniff3j gSquiz_Sniffs_WhiteSpace_SemicolonSpacingSniff6i mSquiz_Sniffs_WhiteSpace_ScopeKeywordSpacingSniff4h iSquiz_Sniffs_WhiteSpace_ScopeClosingBraceSniff7g oSquiz_Sniffs_WhiteSpace_PropertyLabelSpacingSniff2f eSquiz_Sniffs_WhiteSpace_OperatorSpacingSniff8e qSquiz_Sniffs_WhiteSpace_ObjectOperatorSpacingSniff3d gSquiz_Sniffs_WhiteSpace_MemberVarSpacingSniff9c sSquiz_Sniffs_WhiteSpace_LogicalOperatorSpacingSniff;b wSquiz_Sniffs_WhiteSpace_LanguageConstructSpacingSniff2a eSquiz_Sniffs_WhiteSpace_FunctionSpacingSniff<` ySquiz_Sniffs_WhiteSpace_FunctionOpeningBraceSpaceSniff<_ ySquiz_Sniffs_WhiteSpace_FunctionClosingBraceSpaceSniff:^ uSquiz_Sniffs_WhiteSpace_ControlStructureSpacingSniff.] ]Squiz_Sniffs_WhiteSpace_CastSpacingSniff-\ [Squiz_Sniffs_Strings_EchoedStringsSniff0[ aSquiz_Sniffs_Strings_DoubleQuoteUsageSniff4Z iSquiz_Sniffs_Strings_ConcatenationSpacingSniff-Y [Squiz_Sniffs_Scope_StaticThisUsageSniff)X SSquiz_Sniffs_Scope_MethodScopeSniff,W YSquiz_Sniffs_Scope_MemberVarScopeSniff-V [Squiz_Sniffs_PHP_NonExecutableCodeSniff1U cSquiz_Sniffs_PHP_LowercasePHPFunctionsSniff*T USquiz_Sniffs_PHP_InnerFunctionsSniff#S GSquiz_Sniffs_PHP_HeredocSniff)R SSquiz_Sniffs_PHP_GlobalKeywordSniff.Q ]Squiz_Sniffs_PHP_ForbiddenFunctionsSniff P ASquiz_Sniffs_PHP_EvalSniff'O OSquiz_Sniffs_PHP_EmbeddedPhpSniff0N aSquiz_Sniffs_PHP_DiscouragedFunctionsSniff8M qSquiz_Sniffs_PHP_DisallowSizeFunctionsInLoopsSniff.L ]Squiz_Sniffs_PHP_DisallowObEndFlushSniff7K oSquiz_Sniffs_PHP_DisallowMultipleAssignmentsSniff,J YSquiz_Sniffs_PHP_DisallowInlineIfSniff8I qSquiz_Sniffs_PHP_DisallowComparisonAssignmentSniff4H iSquiz_Sniffs_PHP_DisallowBooleanStatementSniff,G YSquiz_Sniffs_PHP_CommentedOutCodeSniff7F oSquiz_Sniffs_Operators_ValidLogicalOperatorsSniff9E sSquiz_Sniffs_Operators_IncrementDecrementUsageSniff9D sSquiz_Sniffs_Operators_ComparisonOperatorUsageSniff1C cSquiz_Sniffs_Objects_ObjectMemberCommaSniff3B gSquiz_Sniffs_Objects_ObjectInstantiationSniff9A sSquiz_Sniffs_Objects_DisallowObjectStringIndexSniff;@ wSquiz_Sniffs_NamingConventions_ValidVariableNameSniff;? wSquiz_Sniffs_NamingConventions_ValidFunctionNameSniff>> }Squiz_Sniffs_Functions_MultiLineFunctionDeclarationSniff;= wSquiz_Sniffs_Functions_LowercaseFunctionKeywordsSniff0< aSquiz_Sniffs_Functions_GlobalFunctionSniff;; wSquiz_Sniffs_Functions_FunctionDuplicateArgumentSniff5: kSquiz_Sniffs_Functions_FunctionDeclarationSniffE9 	Squiz_Sniffs_Functions_FunctionDeclarationArgumentSpacingSniff28 eSquiz_Sniffs_Formatting_OperatorBracketSniff+7 WSquiz_Sniffs_Files_FileExtensionSniff$6 ISquiz_Sniffs_Debug_JSLintSniff,5 YSquiz_Sniffs_Debug_JavaScriptLintSniff)4 SSquiz_Sniffs_CSS_ShorthandSizeSniff,3 YSquiz_Sniffs_CSS_SemicolonSpacingSniff#2 GSquiz_Sniffs_CSS_OpacitySniff(1 QSquiz_Sniffs_CSS_NamedColoursSniff(0 QSquiz_Sniffs_CSS_MissingColonSniff4/ iSquiz_Sniffs_CSS_LowercaseStyleDefinitionSniff'. OSquiz_Sniffs_CSS_IndentationSniff+- WSquiz_Sniffs_CSS_ForbiddenStylesSniff0, aSquiz_Sniffs_CSS_EmptyStyleDefinitionSniff0+ aSquiz_Sniffs_CSS_EmptyClassDefinitionSniff4* iSquiz_Sniffs_CSS_DuplicateStyleDefinitionSniff4) iSquiz_Sniffs_CSS_DuplicateClassDefinitionSniff<( ySquiz_Sniffs_CSS_DisallowMultipleStyleDefinitionsSniff,' YSquiz_Sniffs_CSS_ColourDefinitionSniff(& QSquiz_Sniffs_CSS_ColonSpacingSniff<% ySquiz_Sniffs_CSS_ClassDefinitionOpeningBraceSpaceSniff6$ mSquiz_Sniffs_CSS_ClassDefinitionNameSpacingSniff<# ySquiz_Sniffs_CSS_ClassDefinitionClosingBraceSpaceSniff;" wSquiz_Sniffs_ControlStructures_SwitchDeclarationSniff   A mBkVI8~_<&ydP9*xaK5$





{
_
B
%
						n	Q	5	tdE)nQ?+oR-rZ;,z^H6mU;"}_H0
aA            ;ConstantBackoffStrategy ;CallbackBackoffStrategy  'BackoffPlugin 'BackoffLogger&~ MAbstractErrorCodeBackoffStrategy} ;AbstractBackoffStrategy| #AsyncPlugin{ UrlParserz #UriTemplatey +PeclUriTemplatex )ParserRegistryw 7PeclHttpMessageParserv 'MessageParseru 7AbstractMessageParsert %CookieParsers 'Zf2LogAdapterr 'Zf1LogAdapterq 'PsrLogAdapterp /MonologLogAdaptero -MessageFormattern /ClosureLogAdapterm +ArrayLogAdapterl 1AbstractLogAdapterk 3MethodProxyIteratorj #MapIteratori )FilterIteratorh +ChunkedIteratorg )AppendIteratorf 5PreComputedInflectore 1MemoizingInflectord Inflectorc 'PhpAggregatorb 3DuplicateAggregatora +CommaAggregator
` Link_ 'HeaderFactory^ -HeaderCollection] %CacheControl\ Response[ )RequestFactoryZ RequestY PostFileX HeaderW 9EntityEnclosingRequestV +AbstractMessageU ?TooManyRedirectsException"T EServerErrorResponseExceptionS -RequestExceptionR 9MultiTransferExceptionQ 'CurlException#P GCouldNotRewindStreamException"O EClientErrorResponseExceptionN 5BadResponseExceptionM +RequestMediatorL #CurlVersionK )CurlMultiProxyJ CurlMultiI !CurlHandle	H UrlG %StaticClientF )RedirectPluginE 3ReadLimitEntityBodyD #QueryStringC MimetypesB 5IoEmittingEntityBodyA !EntityBody@ Client? /CachingEntityBody!> CAbstractEntityBodyDecorator= =UnexpectedValueException< -RuntimeException; =InvalidArgumentException: 3ExceptionCollection9 9BadMethodCallException8 Version7 Event6 !Collection5 7AbstractHasDispatcher4 +Zf2CacheAdapter3 +Zf1CacheAdapter2 -NullCacheAdapter1 5DoctrineCacheAdapter0 3ClosureCacheAdapter/ 3CacheAdapterFactory. 5AbstractCacheAdapter- 9BatchTransferException, )NotifyingBatch+ %HistoryBatch* 'FlushingBatch) ;ExceptionBufferingBatch( -BatchSizeDivisor' 5BatchRequestTransfer& 5BatchCommandTransfer% 5BatchClosureTransfer$ 3BatchClosureDivisor# %BatchBuilder" Batch! 9AbstractBatchDecorator  1GuzzleSubSplitTask ?GuzzlePearPharPackageTask -ComposerLintTask TestFile TestFile 'AbstractClass 'SystemCommand )GitCommandTest !GitCommand /ConsoleLoggerTest 'ConsoleLogger PathTest
 Path !RemoteTest GitTest !CommitTest Remote	 Git Commit )SourceFileTest #MetricsTest %JsonFileTest
 !SourceFile	 Metrics JsonFile Coveralls -ConfiguratorTest /ConfigurationTest 9CoverallsConfiguration %Configurator 'Configuration  ACoverallsV1JobsCommandTest  9CoverallsV1JobsCommand 5GitInfoCollectorTest$~ ICloverXmlCoverageCollectorTest} 9CiEnvVarsCollectorTest| -GitInfoCollector { ACloverXmlCoverageCollectorz 1CiEnvVarsCollectory JobsTest
x Jobsw %CoverallsApiv +ApplicationTestu #Applicationt +PHP_CodeSniffers 9PHP_CodeSniffer_Tokens$r IPHP_CodeSniffer_Tokenizers_PHP#q GPHP_CodeSniffer_Tokenizers_JS$p IPHP_CodeSniffer_Tokenizers_CSS(o QPHP_CodeSniffer_Tokenizers_Comment:n uZend_Sniffs_NamingConventions_ValidVariableNameSniff'm OZend_Sniffs_Files_ClosingTagSniff)l SZend_Sniffs_Debug_CodeAnalyzerSniff   < cB.|cT?(yY>+lK*uS4 







a
M
7
#
							m	R	1	hG+kF&yX;)~^B%oG)rZ:+oL0nQ<                           %ResponseTest 5HeaderComparisonTest LinkTest /HeaderFactoryTest #RequestTest
 9HttpRequestFactoryTest	 %PostFileTest !HeaderTest -HeaderComparison  AEntityEnclosingRequestTest 3AbstractMessageTest  AMultiTransferExceptionTest 'ExceptionTest /CurlExceptionTest 3RequestMediatorTest  +CurlVersionTest 'CurlMultiTest~ 1CurlMultiProxyTest} )CurlHandleTest| UrlTest{ Serverz ;ReadLimitEntityBodyTesty +QueryStringTestx /PhpAggregatorTestw ;DuplicateAggregatorTestv 3CommaAggregatorTestu 'MimetypesTestt =IoEmittingEntityBodyTests )EntityBodyTestr !ClientTestq 7CachingEntityBodyTest%p KAbstractEntityBodyDecoratorTesto )GuzzleTestCasen ;ExceptionCollectionTest m ABatchTransferExceptionTestl #VersionTestk EventTestj )CollectionTesti 9AbstractHasAdapterTesth 5NullCacheAdapterTestg 3Zf2CacheAdapterTestf ;ClosureCacheAdapterTeste -CacheAdapterTestd ;CacheAdapterFactoryTestc 1NotifyingBatchTestb -HistoryBatchTesta /FlushingBatchTest!` CExceptionBufferingBatchTest_ BatchTest^ 5BatchSizeDivisorTest] =BatchRequestTransferTest\ =BatchCommandTransferTest[ =BatchClosureTransferTestZ ;BatchClosureDivisorTestY -BatchBuilderTest X AAbstractBatchDecoratorTestW StreamV ;PhpStreamRequestFactory"U EResourceIteratorClassFactory"T EResourceIteratorApplyBatchedS -ResourceIteratorR Model Q AMapResourceIteratorFactory&P MCompositeResourceIteratorFactory%O KAbstractResourceIteratorFactoryN 3ValidationExceptionM =ServiceNotFoundExceptionL ;ServiceBuilderExceptionK 9ResponseClassException)J SInconsistentClientTransferException!I CDescriptionBuilderExceptionH =CommandTransferExceptionG -CommandExceptionF =ServiceDescriptionLoaderE 1ServiceDescriptionD +SchemaValidatorC +SchemaFormatterB ParameterA Operation@ -VisitorFlyweight? !XmlVisitor> /StatusCodeVisitor= 3ReasonPhraseVisitor< #JsonVisitor; 'HeaderVisitor: #BodyVisitor9 ;AbstractResponseVisitor8 !XmlVisitor7 3ResponseBodyVisitor6 %QueryVisitor5 +PostFileVisitor4 -PostFieldVisitor3 #JsonVisitor2 'HeaderVisitor1 #BodyVisitor0 9AbstractRequestVisitor/ ?ServiceDescriptionFactory. !MapFactory- 5ConcreteClassFactory, -CompositeFactory+ %AliasFactory* ;OperationResponseParser) -OperationCommand( 7DefaultResponseParser' =DefaultRequestSerializer& =CreateResponseClassEvent% )ClosureCommand$ +AbstractCommand# 5ServiceBuilderLoader" )ServiceBuilder! Client  3CachingConfigLoader 5AbstractConfigLoader #OauthPlugin !MockPlugin 1Md5ValidatorPlugin ;CommandContentMd5Plugin LogPlugin 'HistoryPlugin 9ErrorResponseException 3ErrorResponsePlugin )CurlAuthPlugin 9InvalidCookieException 'FileCookieJar )ArrayCookieJar %CookiePlugin Cookie -SkipRevalidation -DenyRevalidation 3DefaultRevalidation ;DefaultCanCacheStrategy 3DefaultCacheStorage ;DefaultCacheKeyProvider
 =CallbackCanCacheStrategy	 #CachePlugin =TruncatedBackoffStrategy! CReasonPhraseBackoffStrategy 7LinearBackoffStrategy 3HttpBackoffStrategy  AExponentialBackoffStrategy 3CurlBackoffStrategy    v[?${aE+lJ/kG#rM5




r
W
=
$
						c	L	4	mY4~aD  }dD-	jT>"mM5! }kB%tQ8}hI/ -ConfiguratorTest /ConfigurationTest 9CoverallsConfiguration %Configurator 'Configuration  ACoverallsV1JobsCommandTest 9CoverallsV1JobsCommand 5GitInfoCollectorTest$ ICloverXmlCoverageCollectorTest 9CiEnvVarsCollectorTest -GitInfoCollector  ACloverXmlCoverageCollector
 1CiEnvVarsCollector	 JobsTest
 Jobs %CoverallsApi +ApplicationTest #Application !StreamTest! CPhpStreamRequestFactoryTest 5ResourceIteratorTest& MResourceIteratorClassFactoryTest  ModelTest$ IMapResourceIteratorFactoryTest*~ UCompositeResourceIteratorFactoryTest} 3MockCommandIterator| !MockClient	{ Subz %OtherCommandy #MockCommandx +IterableCommandw ;ValidationExceptionTest-v [InconsistentClientTransferExceptionTest"u ECommandTransferExceptionTestt 9ServiceDescriptionTest"s EServiceDescriptionLoaderTestr 3SchemaValidatorTestq 3SchemaFormatterTestp 'ParameterTesto 'OperationTestn )XmlVisitorTestm 7StatusCodeVisitorTestl ;ReasonPhraseVisitorTestk +JsonVisitorTestj /HeaderVisitorTesti +BodyVisitorTest!h CAbstractResponseVisitorTestg )XmlVisitorTestf ;ResponseBodyVisitorTeste -QueryVisitorTestd 3PostFileVisitorTestc 5PostFieldVisitorTestb +JsonVisitorTesta /HeaderVisitorTest` +BodyVisitorTest_ ;AbstractVisitorTestCase!^ COperationResponseParserTest] 5OperationCommandTest\ 5VisitorFlyweightTest#[ GServiceDescriptionFactoryTestZ )MapFactoryTestY =ConcreteClassFactoryTestX 5CompositeFactoryTestW -AliasFactoryTestV ?DefaultResponseParserTest"U EDefaultRequestSerializerTestT #CommandTestS 1ClosureCommandTestR 3AbstractCommandTestQ =ServiceBuilderLoaderTestP !ClientTestO ;CachingConfigLoaderTestN 1ServiceBuilderTestM =AbstractConfigLoaderTestL +OauthPluginTestK )MockPluginTestJ 9Md5ValidatorPluginTest!I CCommandContentMd5PluginTestH 'LogPluginTestG /HistoryPluginTestF ;ErrorResponsePluginTestE 1CurlAuthPluginTestD !CookieTestC -CookiePluginTestB /FileCookieJarTestA 1ArrayCookieJarTest@ 5SkipRevalidationTest? 5DenyRevalidationTest> ;DefaultRevalidationTest!= CDefaultCanCacheStrategyTest< ;DefaultCacheStorageTest"; ECallbackCanCacheStrategyTest: +CachePluginTest"9 ETruncatedBackoffStrategyTest%8 KReasonPhraseBackoffStrategyTest7 ?LinearBackoffStrategyTest6 ;HttpBackoffStrategyTest$5 IExponentialBackoffStrategyTest4 ;CurlBackoffStrategyTest!3 CConstantBackoffStrategyTest!2 CCallbackBackoffStrategyTest1 /BackoffPluginTest0 /BackoffLoggerTest!/ CAbstractBackoffStrategyTest. +AsyncPluginTest- +UriTemplateTest, 3PeclUriTemplateTest+ ;AbstractUriTemplateTest* 1ParserRegistryTest) ?PeclHttpMessageParserTest( /MessageParserTest' 7MessageParserProvider& -CookieParserTest% 5CookieParserProvider$ #MockSubject# %MockObserver" MockMulti! 'ExceptionMock  /ErrorResponseMock 3CustomResponseModel /Zf2LogAdapterTest /PsrLogAdapterTest 5MessageFormatterTest 7ClosureLogAdapterTest 3ArrayLogAdapterTest ;MethodProxyIteratorTest +MapIteratorTest 1FilterIteratorTest 3ChunkedIteratorTest 1AppendIteratorTest =PreComputedInflectorTest 9MemoizingInflectorTest 'InflectorTest -StaticClientTest 1RedirectPluginTest   g zk_P=-veT; pU:$uVA3! za@" 







q
_
L
:

					|	p	X	H	.		nU9q]M8 {iUD-kXC(wcE.zhL1v\B0g                   < 3UserCredentialsTest; -RefreshTokenTest: 'JwtBearerTest9 %ImplicitTest8 7ClientCredentialsTest7 7AuthorizationCodeTest6 +UserCredentials5 %RefreshToken4 JwtBearer3 /ClientCredentials2 /AuthorizationCode1 JwtTest0 +FirebaseJwtTest	/ Jwt. #FirebaseJwt- 3TokenControllerTest, 9ResourceControllerTest+ ;AuthorizeControllerTest* +TokenController) 1ResourceController( 3AuthorizeController' HttpBasic& !ServerTest% ScopeTest$ %ResponseTest# #RequestTest" %AutoloadTest! Server  Scope Response Request !Autoloader )UserClaimsTest 7AuthorizationCodeTest #TestRequest !BearerTest	 Mac Bearer 3UserCredentialsTest ScopeTest -RefreshTokenTest 'PublicKeyTest PdoTest 'JwtBearerTest 1JwtAccessTokenTest %DynamoDBTest !ClientTest 7ClientCredentialsTest 7AuthorizationCodeTest +AccessTokenTest
 #NullStorage	 Bootstrap BaseTest Redis	 Pdo Mongo Memory )JwtAccessToken DynamoDB #CouchbaseDB  Cassandra 1JwtAccessTokenTest~ +AccessTokenTest} )JwtAccessToken| /AuthorizationCode{ #AccessTokenz -IdTokenTokenTesty #IdTokenTestx +CodeIdTokenTestw %IdTokenTokenv IdTokenu #CodeIdTokent /AuthorizationCodes 7
AuthorizationCodeTestr /
AuthorizationCodeq 9	UserInfoControllerTestp ;	AuthorizeControllerTesto 1	UserInfoControllern 3	AuthorizeControllerm 3UserCredentialsTestl -RefreshTokenTestk 'JwtBearerTestj %ImplicitTesti 7ClientCredentialsTesth 7AuthorizationCodeTestg +UserCredentialsf %RefreshTokene JwtBearerd /ClientCredentialsc /AuthorizationCodeb JwtTesta +FirebaseJwtTest	` Jwt_ #FirebaseJwt^ 3TokenControllerTest] 9ResourceControllerTest\ ;AuthorizeControllerTest[ +TokenControllerZ 1ResourceControllerY 3AuthorizeControllerX HttpBasicW !ServerTestV ScopeTestU %ResponseTestT #RequestTestS %AutoloadTestR ServerQ ScopeP ResponseO RequestN !AutoloaderM ?vfsStreamStructureVisitorL 7vfsStreamPrintVisitorK =vfsStreamAbstractVisitorJ -vfsStreamWrapperI 'vfsStreamFileH 1vfsStreamExceptionG 1vfsStreamDirectory F AvfsStreamContainerIteratorE )vfsStreamBlockD =vfsStreamAbstractContentC vfsStreamB QuotaA %DotDirectory@ 9StringBasedFileContent? 3SeekableFileContent> -LargeFileContent= ? vfsStreamStructureVisitor< 7 vfsStreamPrintVisitor; = vfsStreamAbstractVisitor: -vfsStreamWrapper9 'vfsStreamFile8 1vfsStreamException7 1vfsStreamDirectory 6 AvfsStreamContainerIterator5 )vfsStreamBlock4 =vfsStreamAbstractContent3 vfsStream2 Quota1 %DotDirectory0 9StringBasedFileContent/ 3SeekableFileContent. -LargeFileContent- TestFile, TestFile+ 'AbstractClass* 'SystemCommand) )GitCommandTest( !GitCommand' /ConsoleLoggerTest& 'ConsoleLogger% PathTest
$ Path# !RemoteTest" GitTest! !CommitTest  Remote	 Git Commit )SourceFileTest #MetricsTest %JsonFileTest !SourceFile Metrics JsonFile Coveralls   k pR8$u]B0nP2
l]Q>*fM,






y
c
W
D
0

						k	Y	K	7	$		
iZH9*	sa@'zeU@0 {bI(qXI3}bJ2{naRB5}k       j ;KeepAlivei /;IfUnmodifiedSinceh ;IfRangeg #;IfNoneMatchf +;IfModifiedSincee ;IfMatch
d ;Hostc #;HeaderValueb 1;GenericMultiHeadera ';GenericHeader
` ;From_ ;Expires^ ;Expect
] ;Etag
\ ;Date[ ;CookieZ #;ContentTypeY ;;ContentTransferEncodingX 7;ContentSecurityPolicyW %;ContentRangeV !;ContentMD5U +;ContentLocationT ';ContentLengthS +;ContentLanguageR +;ContentEncodingQ 1;ContentDispositionP !;ConnectionO %;CacheControlN ';AuthorizationM 1;AuthenticationInfoL ;Allow	K ;AgeJ %;AcceptRangesI );AcceptLanguageH );AcceptEncodingG ';AcceptCharsetF ;AcceptE -;AbstractLocationD %;AbstractDateC );AbstractAcceptB -:RuntimeExceptionA 3:OutOfRangeException@ =:InvalidArgumentException? -9RuntimeException> 39OutOfRangeException= =9InvalidArgumentException< -8TimeoutException; -8RuntimeException: 38OutOfRangeException9 =8InvalidArgumentException8 ;8InitializationException
7 7Test6 7Socket5 7Proxy
4 7Curl3 6Response2 6Request1 6Headers0 %6HeaderLoader/ 6Cookies. %6ClientStatic- 6Client, +6AbstractMessage+ 5Pkcs7* 5NoPadding) 54PaddingPluginManager( 4Mcrypt' -3RuntimeException& =3InvalidArgumentException% -2RuntimeException$ =2InvalidArgumentException# 1PublicKey" !1PrivateKey! #1AbstractKey  !0RsaOptions	 0Rsa '0DiffieHellman -/RuntimeException =/InvalidArgumentException .BcryptSha .Bcrypt .Apache -Scrypt -SaltedS2k -Pbkdf2 -,RuntimeException =,InvalidArgumentException -+RuntimeException =+InvalidArgumentException *Utils 9*SymmetricPluginManager
 *Hmac
 *Hash !*FileCipher #*BlockCipher )Pkcs7
 )NoPadding	 5(PaddingPluginManager (Mcrypt -'RuntimeException ='InvalidArgumentException -&RuntimeException =&InvalidArgumentException %PublicKey !%PrivateKey #%AbstractKey  !$RsaOptions	 $Rsa~ '$DiffieHellman} -#RuntimeException| =#InvalidArgumentException{ "BcryptShaz "Bcrypty "Apachex !Scryptw !SaltedS2kv !Pbkdf2u - RuntimeExceptiont = InvalidArgumentExceptions -RuntimeExceptionr =InvalidArgumentExceptionq Utilsp 9SymmetricPluginManager
o Hmac
n Hashm !FileCipherl #BlockCipherk )UserClaimsTestj 7AuthorizationCodeTesti #TestRequesth !BearerTest	g Macf Bearere 3UserCredentialsTestd ScopeTestc -RefreshTokenTestb 'PublicKeyTesta PdoTest` 'JwtBearerTest_ 1JwtAccessTokenTest^ %DynamoDBTest] !ClientTest\ 7ClientCredentialsTest[ 7AuthorizationCodeTestZ +AccessTokenTestY #NullStorageX BootstrapW BaseTestV Redis	U PdoT MongoS MemoryR )JwtAccessTokenQ DynamoDBP #CouchbaseDBO CassandraN 1JwtAccessTokenTestM +AccessTokenTestL )JwtAccessTokenK /AuthorizationCodeJ #AccessTokenI -IdTokenTokenTestH #IdTokenTestG +CodeIdTokenTestF %IdTokenTokenE IdTokenD #CodeIdTokenC /AuthorizationCodeB 7AuthorizationCodeTestA /AuthorizationCode@ 9UserInfoControllerTest? ;AuthorizeControllerTest> 1UserInfoController= 3AuthorizeController   r seUE2#z[> zjYJ: naSD7kR1






{
d
O
C
5

						{	c	P	;	~cOB2rX=/xl\D%sZD4#rZ9dD7*tcT?/r     PRegex PNotEmpty PLessThan %PIsInstanceOf
 PIsbn PIp PInArray PIdentical
 PIban PHostname	 PHex #PGreaterThan PExplode %PEmailAddress PDigits PDateStep
 PDate
 PCsrf !PCreditCard
 PCallback	 PBitwise PBetween PBarcode /PAbstractValidator !OUriFactory	 OUri OMailto
 OHttp
 OFile  ;NInvalidUriPartException 3NInvalidUriException~ =NInvalidArgumentException} /MSecurityException| -MRuntimeException{ 7MPluginLoaderException'z OMMissingResourceNamespaceExceptiony 5MInvalidPathExceptionx =MInvalidArgumentExceptionw +MDomainExceptionv 9MBadMethodCallExceptionu 1LStandardAutoloadert /LPluginClassLoaders -LModuleAutoloaderr 1LClassMapAutoloaderq /LAutoloaderFactoryp KStreamo JResponsen JRequestm 'JRemoteAddressl -IRuntimeExceptionk =IInvalidArgumentExceptionj +IDomainExceptioni 9HLanguageFieldValueParth 9HEncodingFieldValuePartg 7HCharsetFieldValuePartf 5HAcceptFieldValueParte 9HAbstractFieldValuePartd +GWWWAuthenticatec GWarning	b GVia
a GVary` GUserAgent_ GUpgrade^ -GTransferEncoding] GTrailer\ GTE[ GSetCookieZ GServerY !GRetryAfterX GRefreshW GRefererV GRangeU 1GProxyAuthorizationT /GProxyAuthenticateS GPragmaR GOriginQ #GMaxForwardsP GLocationO %GLastModifiedN GKeepAliveM /GIfUnmodifiedSinceL GIfRangeK #GIfNoneMatchJ +GIfModifiedSinceI GIfMatch
H GHostG #GHeaderValueF 1GGenericMultiHeaderE 'GGenericHeader
D GFromC GExpiresB GExpect
A GEtag
@ GDate? GCookie> #GContentType= ;GContentTransferEncoding< 7GContentSecurityPolicy; %GContentRange: !GContentMD59 +GContentLocation8 'GContentLength7 +GContentLanguage6 +GContentEncoding5 1GContentDisposition4 !GConnection3 %GCacheControl2 'GAuthorization1 1GAuthenticationInfo0 GAllow	/ GAge. %GAcceptRanges- )GAcceptLanguage, )GAcceptEncoding+ 'GAcceptCharset* GAccept) -GAbstractLocation( %GAbstractDate' )GAbstractAccept& -FRuntimeException% 3FOutOfRangeException$ =FInvalidArgumentException# -ERuntimeException" 3EOutOfRangeException! =EInvalidArgumentException  -DTimeoutException -DRuntimeException 3DOutOfRangeException =DInvalidArgumentException ;DInitializationException
 CTest CSocket CProxy
 CCurl BResponse BRequest BHeaders %BHeaderLoader BCookies %BClientStatic BClient +BAbstractMessage -ARuntimeException =AInvalidArgumentException @Escaper ?Stream >Response
 >Request	 '>RemoteAddress -=RuntimeException ==InvalidArgumentException +=DomainException 9<LanguageFieldValuePart 9<EncodingFieldValuePart 7<CharsetFieldValuePart 5<AcceptFieldValuePart 9<AbstractFieldValuePart  +;WWWAuthenticate ;Warning	~ ;Via
} ;Vary| ;UserAgent{ ;Upgradez -;TransferEncodingy ;Trailerx ;TEw ;SetCookiev ;Serveru !;RetryAftert ;Refreshs ;Refererr ;Rangeq 1;ProxyAuthorizationp /;ProxyAuthenticateo ;Pragman ;Originm #;MaxForwardsl ;Locationk %;LastModified   a s[K;,~qbSD2lW8gXF4' s`PD3





j
H
-
					}	]	A	*			hP/jL1bI;*sbM:pP)vZ=pN+wa                   @ 'bRouterFactory? ?bRoutePluginManagerFactory> +bResponseFactory= )bRequestFactory#< GbPaginatorPluginManagerFactory; 5bModuleManagerFactory: ;bLogWriterManagerFactory 9 AbLogProcessorManagerFactory8 ?bInputFilterManagerFactory#7 GbInjectTemplateListenerFactory6 9bHydratorManagerFactory5 9bHttpViewManagerFactory4 ?bHttpMethodListenerFactory3 ?bFormElementManagerFactory"2 EbFormAnnotationBuilderFactory1 5bFilterManagerFactory0 3bEventManagerFactory+/ WbDiStrictAbstractServiceFactoryFactory$. IbDiStrictAbstractServiceFactory!- CbDiServiceInitializerFactory, bDiFactory%+ KbDiAbstractServiceFactoryFactory$* IbControllerPluginManagerFactory) ;bControllerLoaderFactory( ?bConsoleViewManagerFactory' 7bConsoleAdapterFactory& 'bConfigFactory% 1bApplicationFactory"$ EbAbstractPluginManagerFactory# -aSimpleRouteStack" 1aRoutePluginManager! !aRouteMatch  %aPriorityList `Wildcard )`TreeRouteStack# G`TranslatorAwareTreeRouteStack `Segment `Scheme !`RouteMatch `Regex `Query
 `Part `Method `Literal `Hostname `Chain -_RuntimeException =_InvalidArgumentException -^SimpleRouteStack ^Simple !^RouteMatch ^Catchall  A]SimpleStreamResponseSender /]SendResponseEvent"
 E]PhpEnvironmentResponseSender	 1]HttpResponseSender 7]ConsoleResponseSender 9]AbstractResponseSender !\Translator +\DummyTranslator -[RuntimeException ;[MissingLocatorException 9[InvalidPluginException  A[InvalidControllerException  =[InvalidArgumentException +[DomainException~ 9[BadMethodCallException} +ZIdentityFactory| )ZForwardFactory	{ YUrlz YRedirecty +YPostRedirectGetx YParamsw YLayoutv YIdentityu YForwardt )YFlashMessengers 3YFilePostRedirectGetr ;YCreateHttpNotFoundModel q AYCreateConsoleNotFoundModel!p CYAcceptableViewModelSelectoro )YAbstractPluginn 'XPluginManagerm /XControllerManagerl ?XAbstractRestfulControllerk 1XAbstractControllerj ?XAbstractConsoleControlleri =XAbstractActionControllerh 5WSendResponseListenerg 'WRouteListenerf WMvcEvente 3WModuleRouteListenerd 1WHttpMethodListenerc -WDispatchListenerb #WApplicationa UPriority	` ULoc_ ULastmod^ !UChangefreq] TWordCount\ !TUploadFile[ TUpload
Z TSize
Y TSha1X TNotExistsW TMimeType	V TMd5U TIsImageT %TIsCompressedS TImageSize
R THashQ TFilesSizeP TExtensionO TExistsN +TExcludeMimeTypeM -TExcludeExtensionL TCrc32K TCountJ -SRuntimeException#I GSInvalidMagicMimeFileExceptionH =SInvalidArgumentException!G CSExtensionNotLoadedExceptionF 9SBadMethodCallExceptionE %RRecordExistsD )RNoRecordExistsC !RAbstractDb
B QUpce
A QUpca
@ QSscc? QRoyalmail> QPostnet= QPlanet< QLeitcode; QItf14
: QIssn9 +QIntelligentmail8 QIdentcode7 QGtin146 QGtin135 QGtin12
4 QEan8
3 QEan5
2 QEan21 QEan180 QEan14/ QEan13. QEan12- QCode93ext, QCode93+ QCode39ext* QCode39) /QCode25interleaved( QCode25' QCode128& QCodabar% +QAbstractAdapter$ 9PValidatorPluginManager# )PValidatorChain	" PUri! PTimezone  %PStringLength
 PStep +PStaticValidator   U oN.kD{]I)jV9lU=







t
g
X
H
7
*

 									q	[	D	6	)		zm\OC6&w_;ybP?(zhVD2 lYI8#dE0yX7
vU     d =qAbstractActionControllerc 5pSendResponseListenerb 'pRouteListenera pMvcEvent` 3pModuleRouteListener_ 1pHttpMethodListener^ -pDispatchListener] #pApplication\ -oRuntimeException[ =oInvalidArgumentExceptionZ =nInputFilterPluginManager'Y OnInputFilterAbstractServiceFactoryX #nInputFilterW nInputV nFileInputU nFactoryT 7nCollectionInputFilterS +nBaseInputFilterR !nArrayInputQ %mHelperConfigP 9lFormFileUploadProgressO ;lFormFileSessionProgressN 3lFormFileApcProgressM kReCaptchaL kImageK kFiglet
J kDumbI %kAbstractWordH jFormWeekG jFormUrlF jFormTimeE %jFormTextareaD jFormTextC jFormTelB !jFormSubmitA !jFormSelect@ !jFormSearch? jFormRow> jFormReset= jFormRange< jFormRadio; %jFormPassword: !jFormNumber9 /jFormMultiCheckbox8 +jFormMonthSelect7 jFormMonth6 jFormLabel5 jFormInput4 jFormImage3 !jFormHidden2 jFormFile1 jFormEmail0 /jFormElementErrors/ #jFormElement. 1jFormDateTimeSelect- /jFormDateTimeLocal, %jFormDateTime+ )jFormDateSelect* jFormDate) jFormColor( )jFormCollection' %jFormCheckbox& #jFormCaptcha% !jFormButton
$ jForm# )jAbstractHelper" =iUnexpectedValueException! ;iInvalidElementException  =iInvalidArgumentException! CiExtensionNotLoadedException +iDomainException 9iBadMethodCallException! ChInputFilterProviderFieldset 1hFormElementManager  AhFormAbstractServiceFactory
 hForm hFieldset hFactory hElement
 gWeek	 gUrl
 gTime gTextarea
 gText gSubmit gSelect gRange gRadio gPassword gNumber
 'gMultiCheckbox	 #gMonthSelect gMonth gImage gHidden
 gFile gEmail )gDateTimeSelect 'gDateTimeLocal gDateTime  !gDateSelect
 gDate
~ gCsrf} gColor| !gCollection{ gCheckboxz gCaptchay gButtonx fValidatorw +fValidationGroup
v fTypeu fRequiredt fOptionss fObject
r fNameq fInstancep #fInputFiltero fInputn fHydratorm ;fFormAnnotationsListenerl fFlagsk fFilterj fExcludei %fErrorMessage h AfElementAnnotationsListenerg +fContinueIfEmptyf )fComposedObjecte !fAttributesd /fAnnotationBuilderc !fAllowEmptyb =fAbstractStringAnnotation%a KfAbstractArrayOrStringAnnotation` ;fAbstractArrayAnnotation!_ CfAbstractAnnotationsListener^ 5eSendResponseListener] #dViewManager\ 7dRouteNotFoundStrategy[ ;dInjectViewModelListenerZ 9dInjectTemplateListener$Y IdInjectRoutematchParamsListenerX /dExceptionStrategyW =dDefaultRenderingStrategyV ;dCreateViewModelListenerU #cViewManagerT 7cRouteNotFoundStrategyS ;cInjectViewModelListener&R McInjectNamedConsoleParamsListenerQ /cExceptionStrategyP =cDefaultRenderingStrategyO ;cCreateViewModelListener"N EbViewTemplatePathStackFactory$M IbViewTemplateMapResolverFactoryL 3bViewResolverFactory(K QbViewPrefixPathStackResolverFactoryJ 1bViewManagerFactoryI ;bViewJsonStrategyFactoryH =bViewHelperManagerFactoryG ;bViewFeedStrategyFactoryF ;bValidatorManagerFactoryE =bTranslatorServiceFactory$D IbTranslatorPluginManagerFactoryC 5bServiceManagerConfigB 9bServiceListenerFactory+A WbSerializerAdapterPluginManagerFactory    qZ6iXL5cJ2 eTA2xeVF 	





w
\
F
(
					a	:	jK,^G/fE%~b;rT@ aM0vM*	cH& k Modulej ?LazyServiceFactoryFactoryi 1LazyServiceFactoryh =ServiceNotFoundException g AServiceNotCreatedException"f EServiceLocatorUsageExceptione -RuntimeException!d CInvalidServiceNameExceptionc =InvalidArgumentException b ACircularReferenceException&a MCircularDependencyFoundException` 5DiServiceInitializer_ -DiServiceFactory^ 9DiInstanceManagerProxy] =DiAbstractServiceFactory\ )ServiceManager[ ConfigZ 7AbstractPluginManagerY 5~SendResponseListenerX #}ViewManagerW 7}RouteNotFoundStrategyV ;}InjectViewModelListenerU 9}InjectTemplateListener$T I}InjectRoutematchParamsListenerS /}ExceptionStrategyR =}DefaultRenderingStrategyQ ;}CreateViewModelListenerP #|ViewManagerO 7|RouteNotFoundStrategyN ;|InjectViewModelListener&M M|InjectNamedConsoleParamsListenerL /|ExceptionStrategyK =|DefaultRenderingStrategyJ ;|CreateViewModelListener"I E{ViewTemplatePathStackFactory$H I{ViewTemplateMapResolverFactoryG 3{ViewResolverFactory(F Q{ViewPrefixPathStackResolverFactoryE 1{ViewManagerFactoryD ;{ViewJsonStrategyFactoryC ={ViewHelperManagerFactoryB ;{ViewFeedStrategyFactoryA ;{ValidatorManagerFactory@ ={TranslatorServiceFactory$? I{TranslatorPluginManagerFactory> 5{ServiceManagerConfig= 9{ServiceListenerFactory+< W{SerializerAdapterPluginManagerFactory; '{RouterFactory: ?{RoutePluginManagerFactory9 +{ResponseFactory8 ){RequestFactory#7 G{PaginatorPluginManagerFactory6 5{ModuleManagerFactory5 ;{LogWriterManagerFactory 4 A{LogProcessorManagerFactory3 ?{InputFilterManagerFactory#2 G{InjectTemplateListenerFactory1 9{HydratorManagerFactory0 9{HttpViewManagerFactory/ ?{HttpMethodListenerFactory. ?{FormElementManagerFactory"- E{FormAnnotationBuilderFactory, 5{FilterManagerFactory+ 3{EventManagerFactory+* W{DiStrictAbstractServiceFactoryFactory$) I{DiStrictAbstractServiceFactory!( C{DiServiceInitializerFactory' {DiFactory%& K{DiAbstractServiceFactoryFactory$% I{ControllerPluginManagerFactory$ ;{ControllerLoaderFactory# ?{ConsoleViewManagerFactory" 7{ConsoleAdapterFactory! '{ConfigFactory  1{ApplicationFactory" E{AbstractPluginManagerFactory -zSimpleRouteStack 1zRoutePluginManager !zRouteMatch %zPriorityList yWildcard )yTreeRouteStack# GyTranslatorAwareTreeRouteStack ySegment yScheme !yRouteMatch yRegex yQuery
 yPart yMethod yLiteral yHostname yChain -xRuntimeException =xInvalidArgumentException -wSimpleRouteStack
 wSimple	 !wRouteMatch wCatchall  AvSimpleStreamResponseSender /vSendResponseEvent" EvPhpEnvironmentResponseSender 1vHttpResponseSender 7vConsoleResponseSender 9vAbstractResponseSender !uTranslator  +uDummyTranslator -tRuntimeException~ ;tMissingLocatorException} 9tInvalidPluginException | AtInvalidControllerException{ =tInvalidArgumentExceptionz +tDomainExceptiony 9tBadMethodCallExceptionx +sIdentityFactoryw )sForwardFactory	v rUrlu rRedirectt +rPostRedirectGets rParamsr rLayoutq rIdentityp rForwardo )rFlashMessengern 3rFilePostRedirectGetm ;rCreateHttpNotFoundModel l ArCreateConsoleNotFoundModel!k CrAcceptableViewModelSelectorj )rAbstractPlugini 'qPluginManagerh /qControllerManagerg ?qAbstractRestfulControllerf 1qAbstractControllere ?qAbstractConsoleController   D wU3lQ6 wX9! tcUA1ucQ?.








u
e
Q
=
$
								{	e	U	A	'	viWB0|[?%iG%{T<!fG(sT5%z]4~gD                AUploadFileValidatorFactory )RequestFactory  ?RenameUploadFilterFactory& MContentTypeFilterListenerFactory&~ MContentNegotiationOptionsFactory} 7AcceptListenerFactory!| CAcceptFilterListenerFactory&{ MInvalidMultipartContentExceptionz 5InvalidJsonException#y GInvalidContentStreamExceptionx #RouteParamsw !RouteParamv #QueryParamsu !QueryParamt !BodyParamss BodyParamr ViewModelq Requestp 9ParameterDataContainero 9MultipartContentParsern JsonModelm 3ContentTypeListenerl ?ContentTypeFilterListenerk ?ContentNegotiationOptionsj )AcceptListeneri 5AcceptFilterListenerh Moduleg 9ApiProblemStrategyTestf 9ApiProblemRendererTest(e QSendApiProblemResponseListenerTestd ;RenderErrorListenerTestc 9ApiProblemListenerTestb )ApiProblemTesta 9ApiProblemResponseTest` 1ApiProblemStrategy_ 1ApiProblemRenderer^ +ApiProblemModel$] ISendApiProblemResponseListener\ 3RenderErrorListener[ 1ApiProblemListener+Z WSendApiProblemResponseListenerFactory Y ARenderErrorListenerFactoryX ?ApiProblemStrategyFactoryW ?ApiProblemRendererFactoryV ?ApiProblemListenerFactoryU =InvalidArgumentExceptionT +DomainExceptionS 1ApiProblemResponseR !ApiProblemQ ModuleP 3PhpRendererStrategyO %JsonStrategyN %FeedStrategyM /TemplatePathStackL 3TemplateMapResolverK =RelativeFallbackResolverJ ;PrefixPathStackResolverI /AggregateResolverH #PhpRendererG %JsonRendererF %FeedRendererE +ConsoleRendererD ViewModelC JsonModelB FeedModelA %ConsoleModel@ ViewEvent
? View> Variables= Stream< 3HelperPluginManager; +IdentityFactory: 7FlashMessengerFactory9 Registry8 Container7 1AbstractStandalone6 /AbstractContainer5 #AclListener4 Sitemap3 'PluginManager
2 Menu1 Links0 #Breadcrumbs/ )AbstractHelper. )AbstractHelper- ViewModel	, Url+ ServerUrl* 3RenderToPlaceholder) -RenderChildModel( #Placeholder' #PartialLoop& Partial% /PaginationControl$ !Navigation# Layout
" Json! %InlineScript  Identity HtmlTag 'HtmlQuicktime HtmlPage !HtmlObject HtmlList HtmlFlash HeadTitle HeadStyle !HeadScript HeadMeta HeadLink Gravatar )FlashMessenger EscapeUrl EscapeJs )EscapeHtmlAttr !EscapeHtml EscapeCss Doctype #DeclareVars Cycle
 BasePath	 3AbstractHtmlElement )AbstractHelper =UnexpectedValueException -RuntimeException 9InvalidHelperException =InvalidArgumentException +DomainException 9BadMethodCallException 9ApiProblemStrategyTest  9ApiProblemRendererTest( QSendApiProblemResponseListenerTest~ ;RenderErrorListenerTest} 9ApiProblemListenerTest| )ApiProblemTest{ 9ApiProblemResponseTestz 1ApiProblemStrategyy 1ApiProblemRendererx +ApiProblemModel$w ISendApiProblemResponseListenerv 3RenderErrorListeneru 1ApiProblemListener+t WSendApiProblemResponseListenerFactory s ARenderErrorListenerFactoryr ?ApiProblemStrategyFactoryq ?ApiProblemRendererFactoryp ?ApiProblemListenerFactoryo =InvalidArgumentExceptionn +DomainExceptionm 1ApiProblemResponsel !ApiProblem   j ~X2qD&^B0q]7];$





Y
3
					r	E	'	kCuE]&`-Z*r@Ia2                                        +l WPHPUnit_Framework_Constraint_SameSize,k YPHPUnit_Framework_Constraint_PCREMatch%j KPHPUnit_Framework_Constraint_Or5i kPHPUnit_Framework_Constraint_ObjectHasAttribute&h MPHPUnit_Framework_Constraint_Not+g WPHPUnit_Framework_Constraint_LessThan.f ]PHPUnit_Framework_Constraint_JsonMatchesDe PHPUnit_Framework_Constraint_JsonMatches_ErrorMessageProvider)d SPHPUnit_Framework_Constraint_IsType)c SPHPUnit_Framework_Constraint_IsTrue)b SPHPUnit_Framework_Constraint_IsNull)a SPHPUnit_Framework_Constraint_IsJson/` _PHPUnit_Framework_Constraint_IsInstanceOf._ ]PHPUnit_Framework_Constraint_IsIdentical*^ UPHPUnit_Framework_Constraint_IsFalse*] UPHPUnit_Framework_Constraint_IsEqual*\ UPHPUnit_Framework_Constraint_IsEmpty-[ [PHPUnit_Framework_Constraint_IsAnything.Z ]PHPUnit_Framework_Constraint_GreaterThan-Y [PHPUnit_Framework_Constraint_FileExists9X sPHPUnit_Framework_Constraint_ExceptionMessageRegExp3W gPHPUnit_Framework_Constraint_ExceptionMessage0V aPHPUnit_Framework_Constraint_ExceptionCode,U YPHPUnit_Framework_Constraint_Exception(T QPHPUnit_Framework_Constraint_Count,S YPHPUnit_Framework_Constraint_Composite:R uPHPUnit_Framework_Constraint_ClassHasStaticAttribute4Q iPHPUnit_Framework_Constraint_ClassHasAttribute+P WPHPUnit_Framework_Constraint_Callback,O YPHPUnit_Framework_Constraint_Attribute.N ]PHPUnit_Framework_Constraint_ArraySubset.M ]PHPUnit_Framework_Constraint_ArrayHasKey&L MPHPUnit_Framework_Constraint_And-K [PHPUnit_Framework_CodeCoverageException(J QPHPUnit_Framework_BaseTestListener,I YPHPUnit_Framework_AssertionFailedErrorH =PHPUnit_Framework_Assert'G OPHPUnit_Extensions_TicketListener&F MPHPUnit_Extensions_TestDecorator%E KPHPUnit_Extensions_RepeatedTest&D MPHPUnit_Extensions_PhptTestSuite%C KPHPUnit_Extensions_PhptTestCase'B OPHPUnit_Extensions_GroupTestSuiteA )UploadFileTest@ 'ModelWithJson? #EventTarget> 7ContentTypeController*= UContentTypeFilterListenerFactoryTest*< UContentNegotiationOptionsFactoryTest; ?AcceptListenerFactoryTest%: KAcceptFilterListenerFactoryTest9 #RequestTest8 'JsonModelTest7 ;ContentTypeListenerTest#6 GContentTypeFilterListenerTest#5 GContentNegotiationOptionsTest4 1AcceptListenerTest3 !UploadFile2 -RenameUploadTest1 %RenameUpload#0 GRenameUploadFilterFactoryTest / AUploadFileValidatorFactory. )RequestFactory- ?RenameUploadFilterFactory&, MContentTypeFilterListenerFactory&+ MContentNegotiationOptionsFactory* 7AcceptListenerFactory!) CAcceptFilterListenerFactory&( MInvalidMultipartContentException' 5InvalidJsonException#& GInvalidContentStreamException% #RouteParams$ !RouteParam# #QueryParams" !QueryParam! !BodyParams  BodyParam ViewModel Request 9ParameterDataContainer 9MultipartContentParser JsonModel 3ContentTypeListener ?ContentTypeFilterListener ?ContentNegotiationOptions )AcceptListener 5AcceptFilterListener Module )UploadFileTest 'ModelWithJson #EventTarget 7ContentTypeController* UContentTypeFilterListenerFactoryTest* UContentNegotiationOptionsFactoryTest ?AcceptListenerFactoryTest% KAcceptFilterListenerFactoryTest #RequestTest 'JsonModelTest
 ;ContentTypeListenerTest#	 GContentTypeFilterListenerTest# GContentNegotiationOptionsTest 1AcceptListenerTest !UploadFile -RenameUploadTest %RenameUpload# GRenameUploadFilterFactoryTest   i  e/k@M b9hB



l
F
%				u	R	#	\:vX9mS'u[B-pK>+`FqT(cB$                 U 7CoverageProtectedTestT 3CoveragePrivateTestS 7CoverageNotPublicTestR =CoverageNotProtectedTestQ 9CoverageNotPrivateTestP 3CoverageNothingTestO -CoverageNoneTestN 1CoverageMethodTest-M [CoverageMethodParenthesesWhitespaceTest#L GCoverageMethodParenthesesTest)K SCoverageMethodOneLineAnnotationTestJ 5CoverageFunctionTest/I _CoverageFunctionParenthesesWhitespaceTest%H KCoverageFunctionParenthesesTestG /CoverageClassTestF ?CoverageClassExtendedTestE %ConcreteTest'D OConcreteWithMyCustomExtensionTestC /ClassWithToString%B KClassWithScalarTypeDeclarations"A EClassWithNonPublicAttributes(@ QParentClassWithProtectedAttributes&? MParentClassWithPrivateAttributes'> OChangeCurrentWorkingDirectoryTest= !Calculator
< Book"; EBeforeClassAndAfterClassTest: 1BeforeAndAfterTest9 9BaseTestListenerSample(8 QBankAccountWithCustomExtensionTest7 +BankAccountTest6 #BankAccount5 5BankAccountException4 Author3 %AbstractTest2 -PHPUnit_Util_XML1 /PHPUnit_Util_Type$0 IPHPUnit_Util_TestSuiteIterator(/ QPHPUnit_Util_TestDox_ResultPrinter-. [PHPUnit_Util_TestDox_ResultPrinter_Text-- [PHPUnit_Util_TestDox_ResultPrinter_HTML), SPHPUnit_Util_TestDox_NamePrettifier+ /PHPUnit_Util_Test* 3PHPUnit_Util_String) 1PHPUnit_Util_Regex( 5PHPUnit_Util_Printer' -PHPUnit_Util_PHP& =PHPUnit_Util_PHP_Windows% =PHPUnit_Util_PHP_Default$ 5PHPUnit_Util_Log_TAP# 9PHPUnit_Util_Log_JUnit" 7PHPUnit_Util_Log_JSON(! QPHPUnit_Util_InvalidArgumentHelper  =PHPUnit_Util_GlobalState 3PHPUnit_Util_Getopt 3PHPUnit_Util_Filter ;PHPUnit_Util_Filesystem ;PHPUnit_Util_Fileloader ?PHPUnit_Util_ErrorHandler  APHPUnit_Util_Configuration 9PHPUnit_Util_Blacklist ?PHPUnit_TextUI_TestRunner" EPHPUnit_TextUI_ResultPrinter 9PHPUnit_TextUI_Command 9PHPUnit_Runner_Version, YPHPUnit_Runner_StandardTestSuiteLoader  APHPUnit_Runner_Filter_Test/ _PHPUnit_Runner_Filter_GroupFilterIterator) SPHPUnit_Runner_Filter_Group_Include) SPHPUnit_Runner_Filter_Group_Exclude# GPHPUnit_Runner_Filter_Factory =PHPUnit_Runner_Exception# GPHPUnit_Runner_BaseTestRunner ?PHPUnit_Framework_Warning7 oPHPUnit_Framework_UnintentionallyCoveredCodeError!
 CPHPUnit_Framework_TestSuite.	 ]PHPUnit_Framework_TestSuite_DataProvider" EPHPUnit_Framework_TestResult# GPHPUnit_Framework_TestFailure  APHPUnit_Framework_TestCase& MPHPUnit_Framework_SyntheticError- [PHPUnit_Framework_SkippedTestSuiteError( QPHPUnit_Framework_SkippedTestError' OPHPUnit_Framework_SkippedTestCase& MPHPUnit_Framework_RiskyTestError#  GPHPUnit_Framework_OutputError4 iPHPUnit_Framework_InvalidCoversTargetException0~ aPHPUnit_Framework_InvalidCoversTargetError+} WPHPUnit_Framework_IncompleteTestError*| UPHPUnit_Framework_IncompleteTestCase2{ ePHPUnit_Framework_ExpectationFailedException(z QPHPUnit_Framework_ExceptionWrapper!y CPHPUnit_Framework_Exceptionx ;PHPUnit_Framework_Error%w KPHPUnit_Framework_Error_Warning$v IPHPUnit_Framework_Error_Notice(u QPHPUnit_Framework_Error_Deprecated"t EPHPUnit_Framework_Constraint&s MPHPUnit_Framework_Constraint_Xor:r uPHPUnit_Framework_Constraint_TraversableContainsOnly6q mPHPUnit_Framework_Constraint_TraversableContains3p gPHPUnit_Framework_Constraint_StringStartsWith0o aPHPUnit_Framework_Constraint_StringMatches1n cPHPUnit_Framework_Constraint_StringEndsWith1m cPHPUnit_Framework_Constraint_StringContains   ( tV7lU;t^N:(xM*\5





m
G
3

					j	Q	7	#	n\G(zSAqU6z]J:& |^H2t_J5 bJ-tX(      -b [PHP_CodeSniffer_DocGenerators_Generatora 3PHP_CodeSniffer_CLI` %CoveredClass_ 1CoveredParentClass^ 9ExceptionNamespaceTest] %Util_XMLTest\ 'Util_TestTest%[ KUtil_TestDox_NamePrettifierTestZ )Util_RegexTestY 5Util_GlobalStateTestX +Util_GetoptTestW 9Util_ConfigurationTestV ?Runner_BaseTestRunnerTestU %Issue797TestT %Issue765TestS %NewExceptionR #Issue74TestQ %Issue581TestP %Issue503TestO %Issue498TestN %Issue445TestM %Issue433TestL %Issue322TestK =Issue244ExceptionIntCodeJ /Issue244ExceptionI %Issue244TestH 'Issue1570TestG 'Issue1472TestF 'Issue1471TestE 'Issue1468TestD 'Issue1437TestC 'Issue1374TestB 'Issue1351TestA 7ChildProcessClass1351@ 'Issue1348Test? 'Issue1337Test> 'Issue1335Test= 'Issue1330Test< 'Issue1265Test; 'Issue1216Test: 'Issue1149Test9 TwoTest8 #ParentSuite7 OneTest6 !ChildSuite5 5Foo_Bar_Issue684Test4 %Issue578Test3 Issue5232 %Issue523Test1 'Issue1021Test 0 AFramework_TestListenerTest#/ GFramework_TestImplementorTest. ?Framework_TestFailureTest- 9Framework_TestCaseTest, 3Framework_SuiteTest+ =Framework_ConstraintTest** UFramework_Constraint_JsonMatchesTest?) Framework_Constraint_JsonMatches_ErrorMessageProviderTest( 5ExceptionMessageTest ' AExceptionMessageRegExpTest& CountTest$% IFramework_BaseTestListenerTest$ 5Framework_AssertTest!# CExtensions_RepeatedTestTest" -PhpTestCaseProxy!! CExtensions_PhptTestCaseTest  WasRun =ThrowNoExceptionTestCase 9ThrowExceptionTestCase %TestWithTest TestError #TestSkipped 'TestIterator2 %TestIterator )TestIncomplete 3TemplateMethodsTest Success Struct StackTest Singleton #SampleClass /SampleArrayAccess -RequirementsTest# GRequirementsClassDocBlockTest* URequirementsClassBeforeClassHookTest -OverrideTestCase )OutputTestCase #OneTestCase
 +NotVoidTestCase	 /NotPublicTestCase #NothingTest# GNotExistingCoveredElementTest #NoTestCases +NoTestCaseClass NonStatic /NoArgTestCaseTest! CNamespaceCoveragePublicTest$ INamespaceCoverageProtectedTest"  ENamespaceCoveragePrivateTest$ INamespaceCoverageNotPublicTest'~ ONamespaceCoverageNotProtectedTest%} KNamespaceCoverageNotPrivateTest!| CNamespaceCoverageMethodTest&{ MNamespaceCoverageCoversClassTest,z YNamespaceCoverageCoversClassPublicTest y ANamespaceCoverageClassTest(x QNamespaceCoverageClassExtendedTestw 3MultiDependencyTestv !MockRunneru 'IsolationTestt IniTests /InheritedTestCaser %InheritanceBq %InheritanceAp )IncompleteTesto FatalTestn #FailureTestm Failurel 'ExceptionTestk 1ExceptionStackTestj +ExceptionInTesti ;ExceptionInTearDownTesth 5ExceptionInSetUpTest(g QExceptionInAssertPreConditionsTest)f SExceptionInAssertPostConditionsTeste /EmptyTestCaseTestd )DummyExceptionc )DoubleTestCaseb 3DependencyTestSuitea 7DependencySuccessTest` 7DependencyFailureTest_ -DataProviderTest^ ;DataProviderSkippedTest ] ADataProviderIncompleteTest\ 9DataProviderFilterTest[ 7DataProviderDebugTestZ 'CustomPrinterY %CoveredClassX 1CoveredParentClass(W QCoverageTwoDefaultClassAnnotationsV 1CoveragePublicTest   N  {Y<d>~X-b+G


P
			O	=Y&i7K]b]/a0             $0 IGeneric_Sniffs_PHP_SyntaxSniff'/ OGeneric_Sniffs_PHP_SAPIUsageSniff.. ]Generic_Sniffs_PHP_NoSilencedErrorsSniff.- ]Generic_Sniffs_PHP_LowerCaseKeywordSniff/, _Generic_Sniffs_PHP_LowerCaseConstantSniff0+ aGeneric_Sniffs_PHP_ForbiddenFunctionsSniff2* eGeneric_Sniffs_PHP_DisallowShortOpenTagSniff1) cGeneric_Sniffs_PHP_DeprecatedFunctionsSniff+( WGeneric_Sniffs_PHP_ClosingPHPTagSniff:' uGeneric_Sniffs_PHP_CharacterBeforePHPOpeningTagSniffB& Generic_Sniffs_NamingConventions_UpperCaseConstantNameSniff;% wGeneric_Sniffs_NamingConventions_ConstructorNameSniffB$ Generic_Sniffs_NamingConventions_CamelCapsFunctionNameSniff.# ]Generic_Sniffs_Metrics_NestingLevelSniff6" mGeneric_Sniffs_Metrics_CyclomaticComplexitySniffI! Generic_Sniffs_Functions_OpeningFunctionBraceKernighanRitchieSniffB  Generic_Sniffs_Functions_OpeningFunctionBraceBsdAllmanSniff? Generic_Sniffs_Functions_FunctionCallArgumentSpacingSniff; wGeneric_Sniffs_Functions_CallTimePassByReferenceSniff3 gGeneric_Sniffs_Formatting_SpaceAfterCastSniff5 kGeneric_Sniffs_Formatting_NoSpaceAfterCastSniff? Generic_Sniffs_Formatting_MultipleStatementAlignmentSniff? Generic_Sniffs_Formatting_DisallowMultipleStatementsSniff/ _Generic_Sniffs_Files_OneTraitPerFileSniff3 gGeneric_Sniffs_Files_OneInterfacePerFileSniff/ _Generic_Sniffs_Files_OneClassPerFileSniff2 eGeneric_Sniffs_Files_LowercasedFilenameSniff* UGeneric_Sniffs_Files_LineLengthSniff+ WGeneric_Sniffs_Files_LineEndingsSniff* UGeneric_Sniffs_Files_InlineHTMLSniff0 aGeneric_Sniffs_Files_EndFileNoNewlineSniff. ]Generic_Sniffs_Files_EndFileNewlineSniff- [Generic_Sniffs_Files_ByteOrderMarkSniff& MGeneric_Sniffs_Debug_JSHintSniff' OGeneric_Sniffs_Debug_CSSLintSniff- [Generic_Sniffs_Debug_ClosureLinterSniffC Generic_Sniffs_ControlStructures_InlineControlStructureSniff) SGeneric_Sniffs_Commenting_TodoSniff*
 UGeneric_Sniffs_Commenting_FixmeSniff/	 _Generic_Sniffs_Commenting_DocCommentSniff> }Generic_Sniffs_CodeAnalysis_UselessOverridingMethodSniff> }Generic_Sniffs_CodeAnalysis_UnusedFunctionParameterSniff? Generic_Sniffs_CodeAnalysis_UnnecessaryFinalModifierSniff? Generic_Sniffs_CodeAnalysis_UnconditionalIfStatementSniff9 sGeneric_Sniffs_CodeAnalysis_JumbledIncrementerSniffC Generic_Sniffs_CodeAnalysis_ForLoopWithTestFunctionCallSniff? Generic_Sniffs_CodeAnalysis_ForLoopShouldBeWhileLoopSniff5 kGeneric_Sniffs_CodeAnalysis_EmptyStatementSniff4  iGeneric_Sniffs_Classes_DuplicateClassNameSniff9 sGeneric_Sniffs_Arrays_DisallowShortArraySyntaxSniff8~ qGeneric_Sniffs_Arrays_DisallowLongArraySyntaxSniff5} kPHP_CodeSniffer_Standards_AbstractVariableSniff2| ePHP_CodeSniffer_Standards_AbstractScopeSniff4{ iPHP_CodeSniffer_Standards_AbstractPatternSniff!z CPHP_CodeSniffer_Reports_Xml,y YPHP_CodeSniffer_Reports_VersionControl&x MPHP_CodeSniffer_Reports_Svnblame%w KPHP_CodeSniffer_Reports_Summary$v IPHP_CodeSniffer_Reports_Source(u QPHP_CodeSniffer_Reports_Notifysend#t GPHP_CodeSniffer_Reports_Junit"s EPHP_CodeSniffer_Reports_Json"r EPHP_CodeSniffer_Reports_Info%q KPHP_CodeSniffer_Reports_Hgblame&p MPHP_CodeSniffer_Reports_Gitblame"o EPHP_CodeSniffer_Reports_Full#n GPHP_CodeSniffer_Reports_Emacs"m EPHP_CodeSniffer_Reports_Diff!l CPHP_CodeSniffer_Reports_Csv(k QPHP_CodeSniffer_Reports_Checkstyle!j CPHP_CodeSniffer_Reports_Cbfi ?PHP_CodeSniffer_Reportingh 7PHP_CodeSniffer_Fixerg 5PHP_CodeSniffer_Filef ?PHP_CodeSniffer_Exception(e QPHP_CodeSniffer_DocGenerators_Text,d YPHP_CodeSniffer_DocGenerators_Markdown(c QPHP_CodeSniffer_DocGenerators_HTML   I  Ro5_([$X'



`
.				O	p3W%^vHr=t;p1[                  >y }Squiz_Sniffs_Commenting_LongConditionClosingCommentSniff0x aSquiz_Sniffs_Commenting_InlineCommentSniff:w uSquiz_Sniffs_Commenting_FunctionCommentThrowTagSniff2v eSquiz_Sniffs_Commenting_FunctionCommentSniff.u ]Squiz_Sniffs_Commenting_FileCommentSniff4t iSquiz_Sniffs_Commenting_EmptyCatchCommentSniff6s mSquiz_Sniffs_Commenting_DocCommentAlignmentSniff<r ySquiz_Sniffs_Commenting_ClosingDeclarationCommentSniff/q _Squiz_Sniffs_Commenting_ClassCommentSniff/p _Squiz_Sniffs_Commenting_BlockCommentSniff.o ]Squiz_Sniffs_Classes_ValidClassNameSniff3n gSquiz_Sniffs_Classes_SelfMemberReferenceSniff6m mSquiz_Sniffs_Classes_LowercaseClassKeywordsSniff1l cSquiz_Sniffs_Classes_DuplicatePropertySniff-k [Squiz_Sniffs_Classes_ClassFileNameSniff0j aSquiz_Sniffs_Classes_ClassDeclarationSniff/i _Squiz_Sniffs_Arrays_ArrayDeclarationSniff2h eSquiz_Sniffs_Arrays_ArrayBracketSpacingSniff0g aPSR2_Sniffs_Namespaces_UseDeclarationSniff6f mPSR2_Sniffs_Namespaces_NamespaceDeclarationSniff0e aPSR2_Sniffs_Methods_MethodDeclarationSniff4d iPSR2_Sniffs_Methods_FunctionCallSignatureSniff+c WPSR2_Sniffs_Files_EndFileNewlineSniff'b OPSR2_Sniffs_Files_ClosingTagSniff:a uPSR2_Sniffs_ControlStructures_SwitchDeclarationSniff:` uPSR2_Sniffs_ControlStructures_ElseIfDeclarationSniffA_ PSR2_Sniffs_ControlStructures_ControlStructureSpacingSniff2^ ePSR2_Sniffs_Classes_PropertyDeclarationSniff/] _PSR2_Sniffs_Classes_ClassDeclarationSniff2\ ePSR1_Sniffs_Methods_CamelCapsMethodNameSniff([ QPSR1_Sniffs_Files_SideEffectsSniff/Z _PSR1_Sniffs_Classes_ClassDeclarationSniff-Y [PEAR_Sniffs_WhiteSpace_ScopeIndentSniff3X gPEAR_Sniffs_WhiteSpace_ScopeClosingBraceSniff6W mPEAR_Sniffs_WhiteSpace_ObjectOperatorIndentSniff:V uPEAR_Sniffs_NamingConventions_ValidVariableNameSniff:U uPEAR_Sniffs_NamingConventions_ValidFunctionNameSniff7T oPEAR_Sniffs_NamingConventions_ValidClassNameSniff2S ePEAR_Sniffs_Functions_ValidDefaultValueSniff4R iPEAR_Sniffs_Functions_FunctionDeclarationSniff6Q mPEAR_Sniffs_Functions_FunctionCallSignatureSniff5P kPEAR_Sniffs_Formatting_MultiLineAssignmentSniff*O UPEAR_Sniffs_Files_IncludingFileSniff;N wPEAR_Sniffs_ControlStructures_MultiLineConditionSniff9M sPEAR_Sniffs_ControlStructures_ControlSignatureSniff/L _PEAR_Sniffs_Commenting_InlineCommentSniff1K cPEAR_Sniffs_Commenting_FunctionCommentSniff-J [PEAR_Sniffs_Commenting_FileCommentSniff.I ]PEAR_Sniffs_Commenting_ClassCommentSniff/H _PEAR_Sniffs_Classes_ClassDeclarationSniff.G ]MySource_Sniffs_Strings_JoinStringsSniff2F eMySource_Sniffs_PHP_ReturnFunctionValueSniff-E [MySource_Sniffs_PHP_GetRequestDataSniff0D aMySource_Sniffs_PHP_EvalObjectFactorySniff1C cMySource_Sniffs_PHP_AjaxNullComparisonSniff4B iMySource_Sniffs_Objects_DisallowNewWidgetSniff;A wMySource_Sniffs_Objects_CreateWidgetTypeCallbackSniff-@ [MySource_Sniffs_Objects_AssignThisSniff/? _MySource_Sniffs_Debug_FirebugConsoleSniff*> UMySource_Sniffs_Debug_DebugCodeSniff4= iMySource_Sniffs_CSS_BrowserSpecificStylesSniff5< kMySource_Sniffs_Commenting_FunctionCommentSniff0; aMySource_Sniffs_Channels_UnusedSystemSniff1: cMySource_Sniffs_Channels_IncludeSystemSniff49 iMySource_Sniffs_Channels_IncludeOwnSystemSniff78 oMySource_Sniffs_Channels_DisallowSelfActionsSniff97 sPHP_CodeSniffer_Standards_IncorrectPatternException06 aGeneric_Sniffs_WhiteSpace_ScopeIndentSniff65 mGeneric_Sniffs_WhiteSpace_DisallowTabIndentSniff84 qGeneric_Sniffs_WhiteSpace_DisallowSpaceIndentSniff=3 {Generic_Sniffs_VersionControl_SubversionPropertiesSniff92 sGeneric_Sniffs_Strings_UnnecessaryStringConcatSniff/1 _Generic_Sniffs_PHP_UpperCaseConstantSniff   I  TS\MX!



v
J
				I	b!i3M}CzW&sCNq2                                       ;B wSquiz_Sniffs_WhiteSpace_LanguageConstructSpacingSniff2A eSquiz_Sniffs_WhiteSpace_FunctionSpacingSniff<@ ySquiz_Sniffs_WhiteSpace_FunctionOpeningBraceSpaceSniff<? ySquiz_Sniffs_WhiteSpace_FunctionClosingBraceSpaceSniff:> uSquiz_Sniffs_WhiteSpace_ControlStructureSpacingSniff.= ]Squiz_Sniffs_WhiteSpace_CastSpacingSniff-< [Squiz_Sniffs_Strings_EchoedStringsSniff0; aSquiz_Sniffs_Strings_DoubleQuoteUsageSniff4: iSquiz_Sniffs_Strings_ConcatenationSpacingSniff-9 [Squiz_Sniffs_Scope_StaticThisUsageSniff)8 SSquiz_Sniffs_Scope_MethodScopeSniff,7 YSquiz_Sniffs_Scope_MemberVarScopeSniff-6 [Squiz_Sniffs_PHP_NonExecutableCodeSniff15 cSquiz_Sniffs_PHP_LowercasePHPFunctionsSniff*4 USquiz_Sniffs_PHP_InnerFunctionsSniff#3 GSquiz_Sniffs_PHP_HeredocSniff)2 SSquiz_Sniffs_PHP_GlobalKeywordSniff.1 ]Squiz_Sniffs_PHP_ForbiddenFunctionsSniff 0 ASquiz_Sniffs_PHP_EvalSniff'/ OSquiz_Sniffs_PHP_EmbeddedPhpSniff0. aSquiz_Sniffs_PHP_DiscouragedFunctionsSniff8- qSquiz_Sniffs_PHP_DisallowSizeFunctionsInLoopsSniff., ]Squiz_Sniffs_PHP_DisallowObEndFlushSniff7+ oSquiz_Sniffs_PHP_DisallowMultipleAssignmentsSniff,* YSquiz_Sniffs_PHP_DisallowInlineIfSniff8) qSquiz_Sniffs_PHP_DisallowComparisonAssignmentSniff4( iSquiz_Sniffs_PHP_DisallowBooleanStatementSniff,' YSquiz_Sniffs_PHP_CommentedOutCodeSniff7& oSquiz_Sniffs_Operators_ValidLogicalOperatorsSniff9% sSquiz_Sniffs_Operators_IncrementDecrementUsageSniff9$ sSquiz_Sniffs_Operators_ComparisonOperatorUsageSniff1# cSquiz_Sniffs_Objects_ObjectMemberCommaSniff3" gSquiz_Sniffs_Objects_ObjectInstantiationSniff9! sSquiz_Sniffs_Objects_DisallowObjectStringIndexSniff;  wSquiz_Sniffs_NamingConventions_ValidVariableNameSniff; wSquiz_Sniffs_NamingConventions_ValidFunctionNameSniff> }Squiz_Sniffs_Functions_MultiLineFunctionDeclarationSniff; wSquiz_Sniffs_Functions_LowercaseFunctionKeywordsSniff0 aSquiz_Sniffs_Functions_GlobalFunctionSniff; wSquiz_Sniffs_Functions_FunctionDuplicateArgumentSniff5 kSquiz_Sniffs_Functions_FunctionDeclarationSniffE 	Squiz_Sniffs_Functions_FunctionDeclarationArgumentSpacingSniff2 eSquiz_Sniffs_Formatting_OperatorBracketSniff+ WSquiz_Sniffs_Files_FileExtensionSniff$ ISquiz_Sniffs_Debug_JSLintSniff, YSquiz_Sniffs_Debug_JavaScriptLintSniff) SSquiz_Sniffs_CSS_ShorthandSizeSniff, YSquiz_Sniffs_CSS_SemicolonSpacingSniff# GSquiz_Sniffs_CSS_OpacitySniff( QSquiz_Sniffs_CSS_NamedColoursSniff( QSquiz_Sniffs_CSS_MissingColonSniff4 iSquiz_Sniffs_CSS_LowercaseStyleDefinitionSniff' OSquiz_Sniffs_CSS_IndentationSniff+ WSquiz_Sniffs_CSS_ForbiddenStylesSniff0 aSquiz_Sniffs_CSS_EmptyStyleDefinitionSniff0 aSquiz_Sniffs_CSS_EmptyClassDefinitionSniff4
 iSquiz_Sniffs_CSS_DuplicateStyleDefinitionSniff4	 iSquiz_Sniffs_CSS_DuplicateClassDefinitionSniff< ySquiz_Sniffs_CSS_DisallowMultipleStyleDefinitionsSniff, YSquiz_Sniffs_CSS_ColourDefinitionSniff( QSquiz_Sniffs_CSS_ColonSpacingSniff< ySquiz_Sniffs_CSS_ClassDefinitionOpeningBraceSpaceSniff6 mSquiz_Sniffs_CSS_ClassDefinitionNameSpacingSniff< ySquiz_Sniffs_CSS_ClassDefinitionClosingBraceSpaceSniff; wSquiz_Sniffs_ControlStructures_SwitchDeclarationSniff> }Squiz_Sniffs_ControlStructures_LowercaseDeclarationSniff=  {Squiz_Sniffs_ControlStructures_InlineIfDeclarationSniff< ySquiz_Sniffs_ControlStructures_ForLoopDeclarationSniffA~ Squiz_Sniffs_ControlStructures_ForEachLoopDeclarationSniff;} wSquiz_Sniffs_ControlStructures_ElseIfDeclarationSniff:| uSquiz_Sniffs_ControlStructures_ControlSignatureSniff2{ eSquiz_Sniffs_Commenting_VariableCommentSniff7z oSquiz_Sniffs_Commenting_PostStatementCommentSniff   N St>pE|m]A%yl`S<0#




l
Y
?
,
							x	g	Y	E	4	'		}obUB1tfXI:-zV7ubN9"p^M:(tbR?,	r`D$mN  d 9BadMethodCallExceptionc 1StandardAutoloaderb /PluginClassLoadera -ModuleAutoloader` 1ClassMapAutoloader_ /AutoloaderFactory^ %HelperConfig] 9FormFileUploadProgress\ ;FormFileSessionProgress[ 3FormFileApcProgressZ ReCaptchaY ImageX Figlet
W DumbV %AbstractWordU FormWeekT FormUrlS FormTimeR %FormTextareaQ FormTextP FormTelO !FormSubmitN !FormSelectM !FormSearchL FormRowK FormResetJ FormRangeI FormRadioH %FormPasswordG !FormNumberF /FormMultiCheckboxE +FormMonthSelectD FormMonthC FormLabelB FormInputA FormImage@ !FormHidden? FormFile> FormEmail= /FormElementErrors< #FormElement; 1FormDateTimeSelect: /FormDateTimeLocal9 %FormDateTime8 )FormDateSelect7 FormDate6 FormColor5 )FormCollection4 %FormCheckbox3 #FormCaptcha2 !FormButton
1 Form0 )AbstractHelper/ =UnexpectedValueException. ;InvalidElementException- =InvalidArgumentException!, CExtensionNotLoadedException+ +DomainException* 9BadMethodCallException!) CInputFilterProviderFieldset( 1FormElementManager ' AFormAbstractServiceFactory
& Form% Fieldset$ Factory# Element
" Week	! Url
  Time Textarea
 Text Submit Select Range Radio Password Number 'MultiCheckbox #MonthSelect Month Image Hidden
 File Email )DateTimeSelect 'DateTimeLocal DateTime !DateSelect
 Date
 Csrf
 Color	 !Collection Checkbox Captcha Button Validator +ValidationGroup
 Type Required Options  Object
 Name~ Instance} #InputFilter| Input{ Hydratorz ;FormAnnotationsListenery Flagsx Filterw Excludev %ErrorMessage u AElementAnnotationsListenert +ContinueIfEmptys )ComposedObjectr !Attributesq /AnnotationBuilderp !AllowEmptyo =AbstractStringAnnotation%n KAbstractArrayOrStringAnnotationm ;AbstractArrayAnnotation!l CAbstractAnnotationsListener
k Yaml	j Xmli PhpArray
h Json	g Inif )AbstractWriter
e Yaml	d Xml
c Jsonb )JavaProperties	a Ini` !Translator_ Token^ Queue] Filter\ Constant[ -RuntimeExceptionZ =InvalidArgumentExceptionY 3WriterPluginManagerX 3ReaderPluginManagerW FactoryV ConfigU 7AbstractConfigFactoryT +PHP_CodeSnifferS 9PHP_CodeSniffer_Tokens$R IPHP_CodeSniffer_Tokenizers_PHP#Q GPHP_CodeSniffer_Tokenizers_JS$P IPHP_CodeSniffer_Tokenizers_CSS(O QPHP_CodeSniffer_Tokenizers_Comment:N uZend_Sniffs_NamingConventions_ValidVariableNameSniff'M OZend_Sniffs_Files_ClosingTagSniff)L SZend_Sniffs_Debug_CodeAnalyzerSniff8K qSquiz_Sniffs_WhiteSpace_SuperfluousWhitespaceSniff3J gSquiz_Sniffs_WhiteSpace_SemicolonSpacingSniff6I mSquiz_Sniffs_WhiteSpace_ScopeKeywordSpacingSniff4H iSquiz_Sniffs_WhiteSpace_ScopeClosingBraceSniff7G oSquiz_Sniffs_WhiteSpace_PropertyLabelSpacingSniff2F eSquiz_Sniffs_WhiteSpace_OperatorSpacingSniff8E qSquiz_Sniffs_WhiteSpace_ObjectOperatorSpacingSniff3D gSquiz_Sniffs_WhiteSpace_MemberVarSpacingSniff9C sSquiz_Sniffs_WhiteSpace_LogicalOperatorSpacingSniff   a bI/r`U@'sWE.reXH;."{j\M6$








[
>

							r	g	K	4	$	kU4rZ6}dP:kW?bI5tXK7\5 ra            Xterm256
 Utf8Heavy
	 Utf8 DECSG 'AsciiExtended Ascii )WindowsAnsicon Windows Virtual Posix +AbstractAdapter  %ModuleLoader$ IAbstractHttpControllerTestCase ~ AAbstractControllerTestCase'} OAbstractConsoleControllerTestCase| -RuntimeException{ =InvalidArgumentException!z CExtensionNotLoadedExceptiony !Serializerx 5AdapterPluginManagerw #WddxOptions
v Wddxu 3PythonPickleOptionst %PythonPickles %PhpSerializer PhpCodeq MsgPackp #JsonOptions
o Jsonn IgBinarym )AdapterOptionsl +AbstractAdapterk 'ModuleManagerj #ModuleEventi -RuntimeExceptionh =InvalidArgumentExceptiong +ServiceListenerf 3OnBootstrapListenere 9ModuleResolverListenerd 5ModuleLoaderListener%c KModuleDependencyCheckerListener!b CLocatorRegistrationListenera +ListenerOptions` #InitTrigger_ =DefaultListenerAggregate^ )ConfigListener] 1AutoloaderListener\ -AbstractListener[ -RuntimeException&Z MMissingDependencyModuleExceptionY =InvalidArgumentExceptionX 'ModuleManagerW #ModuleEventV -RuntimeExceptionU =InvalidArgumentExceptionT +ServiceListenerS 3OnBootstrapListenerR 9ModuleResolverListenerQ 5ModuleLoaderListener%P KModuleDependencyCheckerListener!O CLocatorRegistrationListenerN +ListenerOptionsM #InitTriggerL =DefaultListenerAggregateK )ConfigListenerJ 1AutoloaderListenerI -AbstractListenerH -RuntimeException&G MMissingDependencyModuleExceptionF =InvalidArgumentExceptionE 'FirePhpBridgeD +ChromePhpBridgeC #ZendMonitorB SyslogA Stream	@ Psr
? Null
> Noop= MongoDB
< Mock
; Mail: 9FormatterPluginManager9 FirePhp8 )FingersCrossed7 3FilterPluginManager6 Db5 ChromePhp4 )AbstractWriter3 RequestId2 #ReferenceId1 )PsrPlaceholder0 Backtrace/ 3WriterPluginManager. -PsrLoggerAdapter- 9ProcessorPluginManager, 5LoggerServiceFactory"+ ELoggerAbstractServiceFactory* Logger	) Xml( Simple' FirePhp& -ExceptionHandler% %ErrorHandler$ Db# ChromePhp
" Base! Validator  Timestamp )SuppressFilter Sample Regex Priority
 Mock -RuntimeException =InvalidArgumentException 'FirePhpBridge +ChromePhpBridge #ZendMonitor Syslog Stream	 Psr
 Null
 Noop MongoDB
 Mock
 Mail 9FormatterPluginManager FirePhp )FingersCrossed
 3FilterPluginManager	 Db ChromePhp )AbstractWriter RequestId #ReferenceId )PsrPlaceholder Backtrace 3WriterPluginManager -PsrLoggerAdapter  9ProcessorPluginManager 5LoggerServiceFactory"~ ELoggerAbstractServiceFactory} Logger	| Xml{ Simplez FirePhpy -ExceptionHandlerx %ErrorHandlerw Dbv ChromePhp
u Baset Validators Timestampr )SuppressFilterq Samplep Regexo Priority
n Mockm -RuntimeExceptionl =InvalidArgumentExceptionk /SecurityExceptionj -RuntimeExceptioni 7PluginLoaderException'h OMissingResourceNamespaceExceptiong 5InvalidPathExceptionf =InvalidArgumentExceptione +DomainException   v gPC2"wfX9 n^OB5 iH1{ZL6&







x
U
4
						s	Z	<	-	cB%gWK:#yhZN>0r]M'	~o]J;,gTF7%fH/v                      7 Profiler6 SqlServer5 Sqlite4 Sql923 !Postgresql2 Oracle1 Mysql0 IbmDb2/ -AbstractPlatform. =UnexpectedValueException- -RuntimeException, 7InvalidQueryException*+ UInvalidConnectionParametersException* =InvalidArgumentException) )ErrorException( )ErrorException' Statement& Sqlsrv% Result$ !Connection# Statement" Result! Pgsql  !Connection -SqliteRowCounter -OracleRowCounter Statement Result	 Pdo !Connection Statement Result
 Oci8 !Connection Statement Result Mysqli !Connection Statement Result IbmDb2 !Connection +AbstractFeature 1AbstractConnection 1StatementContainer
 1ParameterContainer	 7AdapterServiceFactory# GAdapterAbstractServiceFactory Adapter %HelperConfig +TranslatePlural Translate Plural %NumberFormat !DateFormat  )CurrencyFormat =AbstractTranslatorHelper~ PostCode} #PhoneNumber| IsInt{ IsFloat	z Inty Floatx DateTimew Alphav Alnumu 
Symbol
t 
Rules 
Parserr =	TranslatorServiceFactoryq !	Translatorp !	TextDomaino 3	LoaderPluginManagern )PhpMemoryArraym PhpArray	l Inik Gettextj 1AbstractFileLoaderi #NumberParseh %NumberFormatg Alphaf Alnume )AbstractLocaled -RuntimeExceptionc )RangeExceptionb )ParseExceptiona 5OutOfBoundsException` =InvalidArgumentException!_ CExtensionNotLoadedException^ )Authentication] Session\ 'NonPersistent[ ChainZ =UnexpectedValueExceptionY -RuntimeExceptionX =InvalidArgumentExceptionW ResultV 7AuthenticationServiceU -RuntimeExceptionT =InvalidArgumentExceptionS % FileResolverR ) ApacheResolverQ =UnexpectedValueExceptionP -RuntimeExceptionO =InvalidArgumentExceptionN -RuntimeExceptionM =InvalidArgumentException L ACredentialTreatmentAdapterK 5CallbackCheckAdapterJ +AbstractAdapter
I Ldap
H HttpG DigestF DbTableE CallbackD +AbstractAdapterC )AuthenticationB SessionA 'NonPersistent@ Chain? =UnexpectedValueException> -RuntimeException= =InvalidArgumentException< Result; 7AuthenticationService: -RuntimeException9 =InvalidArgumentException8 %FileResolver7 )ApacheResolver6 =UnexpectedValueException5 -RuntimeException4 =InvalidArgumentException3 -RuntimeException2 =InvalidArgumentException 1 ACredentialTreatmentAdapter0 5CallbackCheckAdapter/ +AbstractAdapter
. Ldap
- Http, Digest+ DbTable* Callback) +AbstractAdapter( %ModuleLoader$' IAbstractHttpControllerTestCase & AAbstractControllerTestCase'% OAbstractConsoleControllerTestCase$ -RuntimeException# 9BadMethodCallException" Query! NodeList  Query NodeList DOMXPath Document Css2Xpath 3DefaultRouteMatcher Select Password Number
 Line Confirm Checkbox
 Char )AbstractPrompt -RuntimeException =InvalidArgumentException 9BadMethodCallException Response Request Getopt Console   | }aL0{dJ0zaI6znVG9& tdWH;*








t
a
N
<
&
							q	T	F	.		qdTF6%zeR5bG,s`SD2~k\M;$gN?1"~]L0|                    g 'HMysqlMetadataf )HAbstractSourcee !GViewObjectd 'GTriggerObjectc #GTableObjectb -GConstraintObjecta 3GConstraintKeyObject` %GColumnObject_ 3GAbstractTableObject^ FMetadata] =EUnexpectedValueException\ -ERuntimeException[ =EInvalidArgumentExceptionZ )EErrorExceptionY DProfilerX CSqlServerW CSqliteV CSql92U !CPostgresqlT COracleS CMysqlR CIbmDb2Q -CAbstractPlatformP =BUnexpectedValueExceptionO -BRuntimeExceptionN 7BInvalidQueryException*M UBInvalidConnectionParametersExceptionL =BInvalidArgumentExceptionK )BErrorExceptionJ )AErrorExceptionI @StatementH @SqlsrvG @ResultF !@ConnectionE ?StatementD ?ResultC ?PgsqlB !?ConnectionA ->SqliteRowCounter@ ->OracleRowCounter? =Statement> =Result	= =Pdo< !=Connection; <Statement: <Result
9 <Oci88 !<Connection7 ;Statement6 ;Result5 ;Mysqli4 !;Connection3 :Statement2 :Result1 :IbmDb20 !:Connection/ +9AbstractFeature. 18AbstractConnection- 17StatementContainer, 17ParameterContainer+ 77AdapterServiceFactory#* G7AdapterAbstractServiceFactory) 7Adapter( /6TableGatewayEvent' +5SequenceFeature& /5RowGatewayFeature% +5MetadataFeature$ 15MasterSlaveFeature# 55GlobalAdapterFeature" !5FeatureSet! %5EventFeature  +5AbstractFeature -4RuntimeException =4InvalidArgumentException %3TableGateway 53AbstractTableGateway %2PredicateSet 2Predicate 2Operator 2NotLike 2NotIn 2Literal
 2Like 2IsNull 2IsNotNull 2In !2Expression 2Between 1SqlServer +1SelectDecorator 50CreateTableDecorator +/SelectDecorator /Oracle
 +.SelectDecorator	 .Mysql 5-CreateTableDecorator 3-AlterTableDecorator +,SelectDecorator ,IbmDb2 +Platform -+AbstractPlatform -*RuntimeException =*InvalidArgumentException  )Index ')AbstractIndex~ (UniqueKey} !(PrimaryKey| !(ForeignKey{ (Checkz 1(AbstractConstrainty 'Varcharx 'Varbinaryw 'Timestamp
v 'Time
u 'Textt 'Integers 'Floatingr 'Floatq 'Decimalp 'Datetime
o 'Daten 'Column
m 'Charl 'Boolean
k 'Blobj 'Binaryi !'BigIntegerh ;'AbstractTimestampColumng ;'AbstractPrecisionColumnf 5'AbstractLengthColumne &DropTabled #&CreateTablec !&AlterTableb %Wherea %Update` +%TableIdentifier	_ %Sql^ %Select] %Literal\ %Insert[ %HavingZ !%ExpressionY %DeleteX %CombineW #%AbstractSqlV 7%AbstractPreparableSqlU 1%AbstractExpressionT !$FeatureSetS +$AbstractFeatureR -#RuntimeExceptionQ =#InvalidArgumentExceptionP !"RowGatewayO 1"AbstractRowGatewayN -!RuntimeExceptionM =!InvalidArgumentExceptionL  ResultSetK 1 HydratingResultSetJ / AbstractResultSetI /SqlServerMetadataH )SqliteMetadataG 1PostgresqlMetadataF )OracleMetadataE 'MysqlMetadataD )AbstractSourceC !ViewObjectB 'TriggerObjectA #TableObject@ -ConstraintObject? 3ConstraintKeyObject> %ColumnObject= 3AbstractTableObject< Metadata; =UnexpectedValueException: -RuntimeException9 =InvalidArgumentException8 )ErrorException   ? hV5nP<,
yeS6}m_N>1$ ykJ1






r
Z
=
%

									x	f	Q	4	mU;#	nX9u]I5u[?kG/g>Z8x`?         ~ =`MockeryTest_SubjectCall1} +`ExpectationTest| -`DemeterChainTest1{ c`MockeryTest_ClassThatImplementsSerializable4z i`MockeryTest_ClassThatDescendsFromInternalClass9y s`MockeryTest_MethodWithRequiredParamWithDefaultValuex ?`MockeryTest_PartialStatic$w I`MockeryTest_Lowercase_ToStringv 5`EmptyConstructorTest%u K`MockeryTest_OldStyleConstructor$t I`MockeryTest_ImplementsIterator-s [`MockeryTest_ImplementsIteratorAggregater =`MockeryTest_WithToString&q M`MockeryTest_MockCallableTypeHint#p G`MockeryTest_TestInheritedType'o O`MockeryTest_PartialAbstractClass2%n K`MockeryTest_PartialNormalClass2&m M`MockeryTest_PartialAbstractClass$l I`MockeryTest_PartialNormalClassk +`MockeryTestRef1!j C`MockeryTest_MethodParamRef2 i A`MockeryTest_MethodParamRefh ;`MockeryTest_ReturnByRefg +`MockeryTestBar1f `Gatewaye `SoCool2d e`MockeryTest_AbstractWithAbstractPublicMethod"c E`MockeryTest_ExistingPropertyb 3`MockeryTest_Wakeup1a /`MockeryTest_Call2` /`MockeryTest_Call1#_ G`MockeryTest_ClassConstructor2"^ E`MockeryTest_ClassConstructor)] S`MockeryTest_WithProtectedAndPrivate,\ Y`MockeryTest_AbstractWithAbstractMethod[ #`MockeryFoo4Z #`MockeryFoo3Y +`MockeryTestFoo2X )`MockeryTestFooW ;`MockeryTest_UnsetMethodV ;`MockeryTest_IssetMethodU 5`MockeryTestIsset_FooT 5`MockeryTestIsset_Bar0S a`MockeryTest_ClassMultipleConstructorParamsR 9`MockeryTest_CallStaticQ '`ContainerTest P A`MockeryTest_NameOfAbstract%O K`MockeryTest_NameOfExistingClassN /`Mockery_AdhocTestM `MockeryL %`StarshipTestK `StarshipJ /_TableGatewayEventI +^SequenceFeatureH /^RowGatewayFeatureG +^MetadataFeatureF 1^MasterSlaveFeatureE 5^GlobalAdapterFeatureD !^FeatureSetC %^EventFeatureB +^AbstractFeatureA -]RuntimeException@ =]InvalidArgumentException? %\TableGateway> 5\AbstractTableGateway= %[PredicateSet< [Predicate; [Operator: [NotLike9 [NotIn8 [Literal
7 [Like6 [IsNull5 [IsNotNull4 [In3 ![Expression2 [Between1 ZSqlServer0 +ZSelectDecorator/ 5YCreateTableDecorator. +XSelectDecorator- XOracle, +WSelectDecorator+ WMysql* 5VCreateTableDecorator) 3VAlterTableDecorator( +USelectDecorator' UIbmDb2& TPlatform% -TAbstractPlatform$ -SRuntimeException# =SInvalidArgumentException" RIndex! 'RAbstractIndex  QUniqueKey !QPrimaryKey !QForeignKey QCheck 1QAbstractConstraint PVarchar PVarbinary PTimestamp
 PTime
 PText PInteger PFloating PFloat PDecimal PDatetime
 PDate PColumn
 PChar PBoolean
 PBlob PBinary !PBigInteger
 ;PAbstractTimestampColumn	 ;PAbstractPrecisionColumn 5PAbstractLengthColumn ODropTable #OCreateTable !OAlterTable NWhere NUpdate +NTableIdentifier	 NSql  NSelect NLiteral~ NInsert} NHaving| !NExpression{ NDeletez NCombiney #NAbstractSqlx 7NAbstractPreparableSqlw 1NAbstractExpressionv !MFeatureSetu +MAbstractFeaturet -LRuntimeExceptions =LInvalidArgumentExceptionr !KRowGatewayq 1KAbstractRowGatewayp -JRuntimeExceptiono =JInvalidArgumentExceptionn IResultSetm 1IHydratingResultSetl /IAbstractResultSetk /HSqlServerMetadataj )HSqliteMetadatai 1HPostgresqlMetadatah )HOracleMetadata   ; z_G't^I.gO:|oSB0fXF(






m
L
5
#							\	A	(		 K1teT<-!{_? cA1w\C3ydI!cL4 t\O;                #nUnknownType
 nUtil +nTypeSafeMatcher ?nTypeSafeDiagnosingMatcher /nStringDescription +nNullDescription
 nMatchers	 'nMatcherAssert )nFeatureMatcher /nDiagnosingMatcher #nBaseMatcher +nBaseDescription )nAssertionError 3mIsArrayWithSizeTest #mIsArrayTest 7mIsArrayContainingTest'  OmIsArrayContainingKeyValuePairTest =mIsArrayContainingKeyTest"~ EmIsArrayContainingInOrderTest%} KmIsArrayContainingInAnyOrderTest| 1mSeriesMatchingOnce{ %mMatchingOncez +mIsArrayWithSize#y GmIsArrayContainingKeyValuePairx 5mIsArrayContainingKeyw =mIsArrayContainingInOrder!v CmIsArrayContainingInAnyOrderu /mIsArrayContainingt mIsArrays -lStaticMethodFiler 1lGlobalFunctionFileq -lFactoryParameterp 'lFactoryMethodo -lFactoryGeneratorn #lFactoryFilem %lFactoryClassl #lFactoryCallk 9kEvenement_EventEmitterj 'kGeneratorTesti jSpyTesth ?jTestWithVariadicArguments"g EjMockingVariadicArgumentsTestf =jTestWithProtectedMethods!e CjMockingProtectedMethodsTest'd OjHasUnknownClassAsTypeHintOnMethod&c MjMockClassWithUnknownTypeHintTestb 9jTestWithNonFinalWakeupa ;jSubclassWithFinalWakeup` 3jTestWithFinalWakeup"_ EjMockClassWithFinalWakeupTest^ /iInterfacePassTest] 5iInstanceMockPassTest\ 5iCallTypeHintPassTest
[ hTypeZ hSubsetY hNotAnyOf	X hNotW hMustBeV +hMatcherAbstractU hHasValueT hHasKeyS hDucktypeR hContainsQ hClosureP hAnyOf	O hAnyN /gRequireLoaderTestM )gLoaderTestCaseL )gEvalLoaderTestK 'gRequireLoaderJ !gEvalLoaderI /fClassNamePassTest9H sfRemoveUnserializeForInternalSerializableClassesPass*G UfRemoveBuiltinMethodsThatAreFinalPassF 5fMethodDefinitionPassE 'fInterfacePassD -fInstanceMockPassC fClassPassB 'fClassNamePassA -fCallTypeHintPass@ 1eClassWithMagicCall"? EeMockConfigurationBuilderTest> 5eClassWithFinalMethod= #eTestSubject< eTestFinal; 7eMockConfigurationTest: 5eUndefinedTargetClass!9 CeStringManipulationGenerator8 eParameter7 )eMockDefinition6 =eMockConfigurationBuilder5 /eMockConfiguration4 eMethod3 1eDefinedTargetClass2 -eCachingGenerator1 -dRuntimeException$0 IdNoMatchingExpectationException/ 7dInvalidOrderException. 7dInvalidCountException- cException, cExact+ 9cCountValidatorAbstract* cAtMost) cAtLeast-( [bMockeryTest_ClassThatExtendsArrayObject' 9bDefinedTargetClassTest& ;bVerificationExpectation% 5bVerificationDirector$ bUndefined# bRecorder" 3bReceivedMethodCalls
! bMock  !bMethodCall bLoader %bInstantiator 3bExpectationDirector #bExpectation bException bContainer 'bConfiguration 5bCompositeExpectation %aTestListener +aMockeryTestCase! C`ClassWithPublicStaticGetter# G`ClassWithPublicStaticProperty =`ClassWithGetterWithParam +`ClassWithGetter" E`WithFormatterExpectationTest 9`MockeryTestSubjectUser 1`MockeryTestSubject %`RecorderTest '`NamedMockTest -`ClassWithMethods 3`ClassWithNoToString
 /`ClassWithToString-	 [`ExampleClassForTestingNonExistentMethod -`Mockery_MockTest 1`Mockery_LoaderTest ;`HamcrestExpectationTest +`MockeryTest_Foo 1`Mockery_UseDemeter 5`Mockery_Demeterowski ;`Mockery_Duck_Nonswimmer %`Mockery_Duck  !`MyService2 =`MockeryTest_InterMethod1   Z rV8'wcUA6#fTB$uZF.z^L1





z
W
9
"
						u	N	,	o^K:){fQ@+z[(kW(}a<iQ*`?|Z                                              " ?vMockeryTest_PartialStatic$! IvMockeryTest_Lowercase_ToString  5vEmptyConstructorTest% KvMockeryTest_OldStyleConstructor$ IvMockeryTest_ImplementsIterator- [vMockeryTest_ImplementsIteratorAggregate =vMockeryTest_WithToString& MvMockeryTest_MockCallableTypeHint# GvMockeryTest_TestInheritedType' OvMockeryTest_PartialAbstractClass2% KvMockeryTest_PartialNormalClass2& MvMockeryTest_PartialAbstractClass$ IvMockeryTest_PartialNormalClass +vMockeryTestRef1! CvMockeryTest_MethodParamRef2  AvMockeryTest_MethodParamRef ;vMockeryTest_ReturnByRef +vMockeryTestBar1 vGateway vSoCool2 evMockeryTest_AbstractWithAbstractPublicMethod" EvMockeryTest_ExistingProperty 3vMockeryTest_Wakeup1 /vMockeryTest_Call2
 /vMockeryTest_Call1#	 GvMockeryTest_ClassConstructor2" EvMockeryTest_ClassConstructor) SvMockeryTest_WithProtectedAndPrivate, YvMockeryTest_AbstractWithAbstractMethod #vMockeryFoo4 #vMockeryFoo3 +vMockeryTestFoo2 )vMockeryTestFoo ;vMockeryTest_UnsetMethod  ;vMockeryTest_IssetMethod 5vMockeryTestIsset_Foo~ 5vMockeryTestIsset_Bar0} avMockeryTest_ClassMultipleConstructorParams| 9vMockeryTest_CallStatic{ 'vContainerTest z AvMockeryTest_NameOfAbstract%y KvMockeryTest_NameOfExistingClassx /vMockery_AdhocTestw vMockeryv %vStarshipTestu vStarshipt %uHasXPathTests uHasXPathr %tIsStringTestq %tIsScalarTestp )tIsResourceTesto %tIsObjectTestn 'tIsNumericTestm 'tIsIntegerTestl %tIsDoubleTestk )tIsCallableTestj 'tIsBooleanTesti #tIsArrayTesth tIsStringg tIsScalarf !tIsResourcee tIsObjectd tIsNumericc tIsIntegerb tIsDoublea !tIsCallable` tIsBoolean_ tIsArray^ 5sStringStartsWithTest] 1sStringEndsWithTest\ 1sStringContainsTest[ ?sStringContainsInOrderTest$Z IsStringContainsIgnoringCaseTestY 1sMatchesPatternTest#X GsIsEqualIgnoringWhiteSpaceTestW ;sIsEqualIgnoringCaseTestV /sIsEmptyStringTestU -sSubstringMatcherT -sStringStartsWithS )sStringEndsWithR 7sStringContainsInOrder Q AsStringContainsIgnoringCaseP )sStringContainsO )sMatchesPatternN ?sIsEqualIgnoringWhiteSpaceM 3sIsEqualIgnoringCaseL 'sIsEmptyStringK 9rOrderingComparisonTestJ 'rIsCloseToTestI 1rOrderingComparisonH rIsCloseToG 3qSelfDescribingValueF pSetTestE )pSampleSubClassD +pSampleBaseClassC %pIsTypeOfTestB pIsTestA !pIsSameTest@ !pIsNullTest? pIsNotTest> -pIsInstanceOfTest= +pIsIdenticalTest< #pIsEqualTest; 1pDummyToStringClass : ApIsCollectionContainingTest9 )pIsAnythingTest8 +pHasToStringTest7 pBothForms6 pJavaForm5 pPhpForm4 pEveryTest3 +pDescribedAsTest2 7pCombinableMatcherTest1 pAnyOfTest0 pAllOfTest/ 3pShortcutCombination	. pSet- pIsTypeOf, pIsSame+ pIsNull* pIsNot) %pIsInstanceOf( #pIsIdentical' pIsEqual& 9pIsCollectionContaining% !pIsAnything$ pIs# #pHasToString" pEvery! #pDescribedAs  /pCombinableMatcher pAnyOf pAllOf ?oIsTraversableWithSizeTest 9oIsEmptyTraversableTest 7oIsTraversableWithSize 1oIsEmptyTraversable nUtilTest 7nStringDescriptionTest 3nSampleSelfDescriber /nMatcherAssertTest 1nFeatureMatcherTest 'nResultMatcher nThingy +nBaseMatcherTest 3nAbstractMatcherTest   C Y@(fN.{eP5nVA$vZI7





m
_
M
/
						t	S	<	*	cH/R8%{l[C4(fF'jH8"`7b9zC                                                     4% iPHPUnit_Framework_Constraint_ClassHasAttribute+$ WPHPUnit_Framework_Constraint_Callback,# YPHPUnit_Framework_Constraint_Attribute." ]PHPUnit_Framework_Constraint_ArraySubset.! ]PHPUnit_Framework_Constraint_ArrayHasKey&  MPHPUnit_Framework_Constraint_And- [PHPUnit_Framework_CodeCoverageException( QPHPUnit_Framework_BaseTestListener, YPHPUnit_Framework_AssertionFailedError =PHPUnit_Framework_Assert' OPHPUnit_Extensions_TicketListener& MPHPUnit_Extensions_TestDecorator% KPHPUnit_Extensions_RepeatedTest& MPHPUnit_Extensions_PhptTestSuite% KPHPUnit_Extensions_PhptTestCase' OPHPUnit_Extensions_GroupTestSuite 9Evenement_EventEmitter 'GeneratorTest SpyTest ?TestWithVariadicArguments" EMockingVariadicArgumentsTest =TestWithProtectedMethods! CMockingProtectedMethodsTest' OHasUnknownClassAsTypeHintOnMethod& MMockClassWithUnknownTypeHintTest 9TestWithNonFinalWakeup ;SubclassWithFinalWakeup
 3TestWithFinalWakeup"	 EMockClassWithFinalWakeupTest /InterfacePassTest 5InstanceMockPassTest 5CallTypeHintPassTest
 ~Type ~Subset ~NotAnyOf	 ~Not ~MustBe  +~MatcherAbstract ~HasValue~ ~HasKey} ~Ducktype| ~Contains{ ~Closurez ~AnyOf	y ~Anyx /}RequireLoaderTestw )}LoaderTestCasev )}EvalLoaderTestu '}RequireLoadert !}EvalLoaders /|ClassNamePassTest9r s|RemoveUnserializeForInternalSerializableClassesPass*q U|RemoveBuiltinMethodsThatAreFinalPassp 5|MethodDefinitionPasso '|InterfacePassn -|InstanceMockPassm |ClassPassl '|ClassNamePassk -|CallTypeHintPassj 1{ClassWithMagicCall"i E{MockConfigurationBuilderTesth 5{ClassWithFinalMethodg #{TestSubjectf {TestFinale 7{MockConfigurationTestd 5{UndefinedTargetClass!c C{StringManipulationGeneratorb {Parametera ){MockDefinition` ={MockConfigurationBuilder_ /{MockConfiguration^ {Method] 1{DefinedTargetClass\ -{CachingGenerator[ -zRuntimeException$Z IzNoMatchingExpectationExceptionY 7zInvalidOrderExceptionX 7zInvalidCountExceptionW yExceptionV yExactU 9yCountValidatorAbstractT yAtMostS yAtLeast-R [xMockeryTest_ClassThatExtendsArrayObjectQ 9xDefinedTargetClassTestP ;xVerificationExpectationO 5xVerificationDirectorN xUndefinedM xRecorderL 3xReceivedMethodCalls
K xMockJ !xMethodCallI xLoaderH %xInstantiatorG 3xExpectationDirectorF #xExpectationE xExceptionD xContainerC 'xConfigurationB 5xCompositeExpectationA %wTestListener@ +wMockeryTestCase!? CvClassWithPublicStaticGetter#> GvClassWithPublicStaticProperty= =vClassWithGetterWithParam< +vClassWithGetter"; EvWithFormatterExpectationTest: 9vMockeryTestSubjectUser9 1vMockeryTestSubject8 %vRecorderTest7 'vNamedMockTest6 -vClassWithMethods5 3vClassWithNoToString4 /vClassWithToString-3 [vExampleClassForTestingNonExistentMethod2 -vMockery_MockTest1 1vMockery_LoaderTest0 ;vHamcrestExpectationTest/ +vMockeryTest_Foo. 1vMockery_UseDemeter- 5vMockery_Demeterowski, ;vMockery_Duck_Nonswimmer+ %vMockery_Duck* !vMyService2) =vMockeryTest_InterMethod1( =vMockeryTest_SubjectCall1' +vExpectationTest& -vDemeterChainTest1% cvMockeryTest_ClassThatImplementsSerializable4$ ivMockeryTest_ClassThatDescendsFromInternalClass9# svMockeryTest_MethodWithRequiredParamWithDefaultValue   \  i:e4}Lj#c;


v
C
			n	I	`+f@iF lJ$S0|]:T6gK1                      - [PHPUnit_Util_TestDox_ResultPrinter_HTML)  SPHPUnit_Util_TestDox_NamePrettifier /PHPUnit_Util_Test~ 3PHPUnit_Util_String} 1PHPUnit_Util_Regex| 5PHPUnit_Util_Printer{ -PHPUnit_Util_PHPz =PHPUnit_Util_PHP_Windowsy =PHPUnit_Util_PHP_Defaultx 5PHPUnit_Util_Log_TAPw 9PHPUnit_Util_Log_JUnitv 7PHPUnit_Util_Log_JSON(u QPHPUnit_Util_InvalidArgumentHelpert =PHPUnit_Util_GlobalStates 3PHPUnit_Util_Getoptr 3PHPUnit_Util_Filterq ;PHPUnit_Util_Filesystemp ;PHPUnit_Util_Fileloadero ?PHPUnit_Util_ErrorHandler n APHPUnit_Util_Configurationm 9PHPUnit_Util_Blacklistl ?PHPUnit_TextUI_TestRunner"k EPHPUnit_TextUI_ResultPrinterj 9PHPUnit_TextUI_Commandi 9PHPUnit_Runner_Version,h YPHPUnit_Runner_StandardTestSuiteLoader g APHPUnit_Runner_Filter_Test/f _PHPUnit_Runner_Filter_GroupFilterIterator)e SPHPUnit_Runner_Filter_Group_Include)d SPHPUnit_Runner_Filter_Group_Exclude#c GPHPUnit_Runner_Filter_Factoryb =PHPUnit_Runner_Exception#a GPHPUnit_Runner_BaseTestRunner` ?PHPUnit_Framework_Warning7_ oPHPUnit_Framework_UnintentionallyCoveredCodeError!^ CPHPUnit_Framework_TestSuite.] ]PHPUnit_Framework_TestSuite_DataProvider"\ EPHPUnit_Framework_TestResult#[ GPHPUnit_Framework_TestFailure Z APHPUnit_Framework_TestCase&Y MPHPUnit_Framework_SyntheticError-X [PHPUnit_Framework_SkippedTestSuiteError(W QPHPUnit_Framework_SkippedTestError'V OPHPUnit_Framework_SkippedTestCase&U MPHPUnit_Framework_RiskyTestError#T GPHPUnit_Framework_OutputError4S iPHPUnit_Framework_InvalidCoversTargetException0R aPHPUnit_Framework_InvalidCoversTargetError+Q WPHPUnit_Framework_IncompleteTestError*P UPHPUnit_Framework_IncompleteTestCase2O ePHPUnit_Framework_ExpectationFailedException(N QPHPUnit_Framework_ExceptionWrapper!M CPHPUnit_Framework_ExceptionL ;PHPUnit_Framework_Error%K KPHPUnit_Framework_Error_Warning$J IPHPUnit_Framework_Error_Notice(I QPHPUnit_Framework_Error_Deprecated"H EPHPUnit_Framework_Constraint&G MPHPUnit_Framework_Constraint_Xor:F uPHPUnit_Framework_Constraint_TraversableContainsOnly6E mPHPUnit_Framework_Constraint_TraversableContains3D gPHPUnit_Framework_Constraint_StringStartsWith0C aPHPUnit_Framework_Constraint_StringMatches1B cPHPUnit_Framework_Constraint_StringEndsWith1A cPHPUnit_Framework_Constraint_StringContains+@ WPHPUnit_Framework_Constraint_SameSize,? YPHPUnit_Framework_Constraint_PCREMatch%> KPHPUnit_Framework_Constraint_Or5= kPHPUnit_Framework_Constraint_ObjectHasAttribute&< MPHPUnit_Framework_Constraint_Not+; WPHPUnit_Framework_Constraint_LessThan.: ]PHPUnit_Framework_Constraint_JsonMatchesD9 PHPUnit_Framework_Constraint_JsonMatches_ErrorMessageProvider)8 SPHPUnit_Framework_Constraint_IsType)7 SPHPUnit_Framework_Constraint_IsTrue)6 SPHPUnit_Framework_Constraint_IsNull)5 SPHPUnit_Framework_Constraint_IsJson/4 _PHPUnit_Framework_Constraint_IsInstanceOf.3 ]PHPUnit_Framework_Constraint_IsIdentical*2 UPHPUnit_Framework_Constraint_IsFalse*1 UPHPUnit_Framework_Constraint_IsEqual*0 UPHPUnit_Framework_Constraint_IsEmpty-/ [PHPUnit_Framework_Constraint_IsAnything.. ]PHPUnit_Framework_Constraint_GreaterThan-- [PHPUnit_Framework_Constraint_FileExists9, sPHPUnit_Framework_Constraint_ExceptionMessageRegExp3+ gPHPUnit_Framework_Constraint_ExceptionMessage0* aPHPUnit_Framework_Constraint_ExceptionCode,) YPHPUnit_Framework_Constraint_Exception(( QPHPUnit_Framework_Constraint_Count,' YPHPUnit_Framework_Constraint_Composite:& uPHPUnit_Framework_Constraint_ClassHasStaticAttribute   ) ~dK6'
yTG4
iO%z]1lK-




}
g
I
*
					v	_	H	.	gQA-k@yO(t`:&]D*uaO:mF4dH)                                  9Framework_TestCaseTest  3Framework_SuiteTest =Framework_ConstraintTest*~ UFramework_Constraint_JsonMatchesTest?} Framework_Constraint_JsonMatches_ErrorMessageProviderTest| 5ExceptionMessageTest { AExceptionMessageRegExpTestz CountTest$y IFramework_BaseTestListenerTestx 5Framework_AssertTest!w CExtensions_RepeatedTestTestv -PhpTestCaseProxy!u CExtensions_PhptTestCaseTestt WasRuns =ThrowNoExceptionTestCaser 9ThrowExceptionTestCaseq %TestWithTestp TestErroro #TestSkippedn 'TestIterator2m %TestIteratorl )TestIncompletek 3TemplateMethodsTestj Successi Structh StackTestg Singletonf #SampleClasse /SampleArrayAccessd -RequirementsTest#c GRequirementsClassDocBlockTest*b URequirementsClassBeforeClassHookTesta -OverrideTestCase` )OutputTestCase_ #OneTestCase^ +NotVoidTestCase] /NotPublicTestCase\ #NothingTest#[ GNotExistingCoveredElementTestZ #NoTestCasesY +NoTestCaseClassX NonStaticW /NoArgTestCaseTest!V CNamespaceCoveragePublicTest$U INamespaceCoverageProtectedTest"T ENamespaceCoveragePrivateTest$S INamespaceCoverageNotPublicTest'R ONamespaceCoverageNotProtectedTest%Q KNamespaceCoverageNotPrivateTest!P CNamespaceCoverageMethodTest&O MNamespaceCoverageCoversClassTest,N YNamespaceCoverageCoversClassPublicTest M ANamespaceCoverageClassTest(L QNamespaceCoverageClassExtendedTestK 3MultiDependencyTestJ !MockRunnerI 'IsolationTestH IniTestG /InheritedTestCaseF %InheritanceBE %InheritanceAD )IncompleteTestC FatalTestB #FailureTestA Failure@ 'ExceptionTest? 1ExceptionStackTest> +ExceptionInTest= ;ExceptionInTearDownTest< 5ExceptionInSetUpTest(; QExceptionInAssertPreConditionsTest): SExceptionInAssertPostConditionsTest9 /EmptyTestCaseTest8 )DummyException7 )DoubleTestCase6 3DependencyTestSuite5 7DependencySuccessTest4 7DependencyFailureTest3 -DataProviderTest2 ;DataProviderSkippedTest 1 ADataProviderIncompleteTest0 9DataProviderFilterTest/ 7DataProviderDebugTest. 'CustomPrinter- %CoveredClass, 1CoveredParentClass(+ QCoverageTwoDefaultClassAnnotations* 1CoveragePublicTest) 7CoverageProtectedTest( 3CoveragePrivateTest' 7CoverageNotPublicTest& =CoverageNotProtectedTest% 9CoverageNotPrivateTest$ 3CoverageNothingTest# -CoverageNoneTest" 1CoverageMethodTest-! [CoverageMethodParenthesesWhitespaceTest#  GCoverageMethodParenthesesTest) SCoverageMethodOneLineAnnotationTest 5CoverageFunctionTest/ _CoverageFunctionParenthesesWhitespaceTest% KCoverageFunctionParenthesesTest /CoverageClassTest ?CoverageClassExtendedTest %ConcreteTest' OConcreteWithMyCustomExtensionTest /ClassWithToString% KClassWithScalarTypeDeclarations" EClassWithNonPublicAttributes( QParentClassWithProtectedAttributes& MParentClassWithPrivateAttributes' OChangeCurrentWorkingDirectoryTest !Calculator
 Book" EBeforeClassAndAfterClassTest 1BeforeAndAfterTest 9BaseTestListenerSample( QBankAccountWithCustomExtensionTest +BankAccountTest
 #BankAccount	 5BankAccountException Author %AbstractTest -PHPUnit_Util_XML /PHPUnit_Util_Type$ IPHPUnit_Util_TestSuiteIterator( QPHPUnit_Util_TestDox_ResultPrinter- [PHPUnit_Util_TestDox_ResultPrinter_Text   . jYD'r\F(y_>)mK,nS>#	





n
Q
>
*
					w	Z	8	`<~bI,|fCx]>%z]?"vcJ2 y`7dL.               7SpecificationNodeSpec +ExampleNodeSpec ?StopOnFailureListenerSpec
 ;StatisticsCollectorSpec	 /RerunListenerSpec* UNamedConstructorNotFoundListenerSpec$ IMethodReturnedNullListenerSpec  AMethodNotFoundListenerSpec& MCollaboratorNotFoundListenerSpec -DoubleOfStdClass /DoubleOfInterface, YCollaboratorMethodNotFoundListenerSpec ?ClassNotFoundListenerSpec  3TaggedPresenterSpec 'WithMagicCall~ 3WithStaticMagicCall} +WithMagicInvoke| -WithStaticMethod{ !WithMethodz 3StringPresenterSpecy -StringEngineSpecx -ObjectEngineSpecw !DifferSpecv +ArrayEngineSpecu %TemplateSpect 7ReportPendingItemSpecs 5ReportPassedItemSpecr 7ReportItemFactorySpecq 5ReportFailedItemSpecp IOSpeco /HtmlPresenterSpecn -TapFormatterSpecm 7ProgressFormatterSpecl 'ExceptionStubk 1JUnitFormatterSpecj /HtmlFormatterSpeci -DotFormatterSpech 9TestableBasicFormatterg 1BasicFormatterSpec#f GPropertyNotFoundExceptionSpec+e WNamedConstructorNotFoundExceptionSpec#d GMethodNotVisibleExceptionSpec!c CMethodNotFoundExceptionSpec*b UInterfaceNotImplementedExceptionSpec a AClassNotFoundExceptionSpec` 'ExceptionSpec_ 5ExceptionFactorySpec ^ AStopOnFailureExceptionSpec] 7NotEqualExceptionSpec\ )SuiteEventSpec[ 9SpecificationEventSpecZ 3MethodCallEventSpecY 5ExpectationEventSpecX -ExampleEventSpecW 3ResultConverterSpecV IOSpecU +ApplicationSpecT /OptionsConfigSpecS ;TokenizedCodeWriterSpecR 5TemplateRendererSpecQ 5GeneratorManagerSpec P ASpecificationGeneratorSpec!O CReturnConstantGeneratorSpec#N GNamedConstructorGeneratorSpecM 3MethodGeneratorSpecL 1ClassGeneratorSpecK 9ObjectWithPublicMethodJ ;ObjectWithPrivateMethodI 1ObjectWithNoMethodH =ObjectWithPublicPropertyG ?ObjectWithPrivatePropertyF 5ObjectWithNoProperty#E GVisibilityAccessInspectorSpecD 3ObjectWithMagicCallC 1ObjectWithMagicSetB 1ObjectWithMagicGet#A GMagicAwareAccessInspectorSpec@ %QuestionTest? #FactoryTest> !DialogTest= 5ValidJUnitXmlMatcher< 9FileHasContentsMatcher; /FileExistsMatcher: =ApplicationOutputMatcher9 ReRunner8 Prompter7 9IsolatedProcessContext6 /FilesystemContext5 1ApplicationContext4 %CoveredClass3 1CoveredParentClass2 9ExceptionNamespaceTest1 %Util_XMLTest0 'Util_TestTest%/ KUtil_TestDox_NamePrettifierTest. )Util_RegexTest- 5Util_GlobalStateTest, +Util_GetoptTest+ 9Util_ConfigurationTest* ?Runner_BaseTestRunnerTest) %Issue797Test( %Issue765Test' %NewException& #Issue74Test% %Issue581Test$ %Issue503Test# %Issue498Test" %Issue445Test! %Issue433Test  %Issue322Test =Issue244ExceptionIntCode /Issue244Exception %Issue244Test 'Issue1570Test 'Issue1472Test 'Issue1471Test 'Issue1468Test 'Issue1437Test 'Issue1374Test 'Issue1351Test 7ChildProcessClass1351 'Issue1348Test 'Issue1337Test 'Issue1335Test 'Issue1330Test 'Issue1265Test 'Issue1216Test 'Issue1149Test TwoTest #ParentSuite OneTest
 !ChildSuite	 5Foo_Bar_Issue684Test %Issue578Test Issue523 %Issue523Test 'Issue1021Test  AFramework_TestListenerTest# GFramework_TestImplementorTest ?Framework_TestFailureTest   4 cG&
uV=%sS9lS=%|[E3





~
g
J
&
					q	Q	2		 jR?0 kR9]1`>nU@*lR9w]?nR4                   7StopOnFailureListener 3StatisticsCollector 'RerunListener& MNamedConstructorNotFoundListener  AMethodReturnedNullListener 9MethodNotFoundListener" ECollaboratorNotFoundListener( QCollaboratorMethodNotFoundListener 7ClassNotFoundListener /BootstrapListener +TaggedPresenter +StringPresenter %StringEngine %ObjectEngine Differ #ArrayEngine
 Template	 /ReportSkippedItem /ReportPendingItem -ReportPassedItem /ReportItemFactory -ReportFailedItem IO# GInvalidExampleResultException 'HtmlPresenter %TapFormatter  /ProgressFormatter +PrettyFormatter~ )JUnitFormatter} 'HtmlFormatter| %DotFormatter{ -ConsoleFormatterz )BasicFormattery /ReflectionFactoryx -SubjectExceptionw =MatcherNotFoundExceptionv 7CollaboratorExceptionu ?ResourceCreationException"t ENamedMethodNotFoundExceptions ?PropertyNotFoundException'r ONamedConstructorNotFoundExceptionq ?MethodNotVisibleExceptionp ;MethodNotFoundExceptiono ?MethodInvocationException&n MInterfaceNotImplementedExceptionm /FractureException)l SFactoryDoesNotReturnObjectException#k GCollaboratorNotFoundExceptionj 9ClassNotFoundExceptioni -ExceptionFactoryh Exceptiong 9StopOnFailureExceptionf /SkippingExceptione -PendingExceptiond /NotEqualExceptionc -MatcherExceptionb -FailureExceptiona -ExampleException` )ErrorException_ !SuiteEvent^ 1SpecificationEvent] +MethodCallEvent\ -ExpectationEvent[ %ExampleEventZ QuestionY FactoryX DialogW !RunCommandV +DescribeCommandU +ResultConverterT IOS FormatterR 1ContainerAssemblerQ #ApplicationP 'OptionsConfigO 3TokenizedCodeWriterN -TemplateRendererM -GeneratorManagerL 9SpecificationGeneratorK ;ReturnConstantGeneratorJ 1PromptingGenerator!I CPrivateConstructorGeneratorH ?NamedConstructorGeneratorG =MethodSignatureGeneratorF +MethodGeneratorE 1InterfaceGenerator!D CExistingConstructorTemplateC 5CreateObjectTemplateB )ClassGeneratorA ?VisibilityAccessInspector@ ?MagicAwareAccessInspector? !Everything> #SubjectSpec= %PositiveSpec< %NegativeSpec; ;DispatcherDecoratorSpec: Decorator9 'DecoratorSpec8 =ConstructorDecoratorSpec7 /WrappedObjectSpec6 9ExpectationFactorySpec5 %ExampleClass4 !CallerSpec3 'ExampleObject2 1MethodAnalyserSpec1 )WithProperties0 +WithConstructor/ 'NoConstructor. -InstantiatorSpec- ;ExampleObjectUsingTrait, 7ClassFileAnalyserSpec+ 5ServiceContainerSpec* 9MatchersMaintainerSpec) +SuiteRunnerSpec( ;SpecificationRunnerSpec' 1MatcherManagerSpec& /ExampleRunnerSpec% ;CollaboratorManagerSpec$ /PcntlReRunnerSpec# 5PassthruRerunnerSpec" 5OptionalReRunnerSpec! 7CompositeReRunnerSpec  9SuitePrerequisitesSpec =JsonExecutionContextSpec +TypeMatcherSpec -ThrowMatcherSpec 9StringStartMatcherSpec 9StringRegexMatcherSpec 5StringEndMatcherSpec 9ObjectStateMatcherSpec 3IdentityMatcherSpec 7ComparisonMatcherSpec 3CallbackMatcherSpec =ArrayKeyValueMatcherSpec 3ArrayKeyMatcherSpec 7ArrayCountMatcherSpec ;ArrayContainMatcherSpec 3ResourceManagerSpec -PSR0ResourceSpec +PSR0LocatorSpec SuiteSpec   ? lP6qX="mS:!tT<{gWE5&





x
g
Q
@
*
					g	D	'	iJ-yS6~b<iZ>%uXBzT9eV9nR?                         ) !WithMethod( 3StringPresenterSpec' -StringEngineSpec& -ObjectEngineSpec% !DifferSpec$ +ArrayEngineSpec# %TemplateSpec" 7ReportPendingItemSpec! 5ReportPassedItemSpec  7ReportItemFactorySpec 5ReportFailedItemSpec IOSpec /HtmlPresenterSpec -TapFormatterSpec 7ProgressFormatterSpec 'ExceptionStub 1JUnitFormatterSpec /HtmlFormatterSpec -DotFormatterSpec 9TestableBasicFormatter 1BasicFormatterSpec# GPropertyNotFoundExceptionSpec+ WNamedConstructorNotFoundExceptionSpec# GMethodNotVisibleExceptionSpec! CMethodNotFoundExceptionSpec* UInterfaceNotImplementedExceptionSpec  AClassNotFoundExceptionSpec 'ExceptionSpec 5ExceptionFactorySpec  AStopOnFailureExceptionSpec 7NotEqualExceptionSpec
 )SuiteEventSpec	 9SpecificationEventSpec 3MethodCallEventSpec 5ExpectationEventSpec -ExampleEventSpec 3ResultConverterSpec IOSpec +ApplicationSpec /OptionsConfigSpec ;TokenizedCodeWriterSpec  5TemplateRendererSpec 5GeneratorManagerSpec ~ ASpecificationGeneratorSpec!} CReturnConstantGeneratorSpec#| GNamedConstructorGeneratorSpec{ 3MethodGeneratorSpecz 1ClassGeneratorSpecy 9ObjectWithPublicMethodx ;ObjectWithPrivateMethodw 1ObjectWithNoMethodv =ObjectWithPublicPropertyu ?ObjectWithPrivatePropertyt 5ObjectWithNoProperty#s GVisibilityAccessInspectorSpecr 3ObjectWithMagicCallq 1ObjectWithMagicSetp 1ObjectWithMagicGet#o GMagicAwareAccessInspectorSpecn %QuestionTestm #FactoryTestl !DialogTestk 5ValidJUnitXmlMatcherj 9FileHasContentsMatcheri /FileExistsMatcherh =ApplicationOutputMatcherg ReRunnerf Promptere 9IsolatedProcessContextd /FilesystemContextc 1ApplicationContext
b Diffa 5Diff_SequenceMatcher ` ADiff_Renderer_Text_Unified _ ADiff_Renderer_Text_Context#^ GDiff_Renderer_Html_SideBySide] ?Diff_Renderer_Html_Inline\ =Diff_Renderer_Html_Array[ 9Diff_Renderer_AbstractZ +UnwrapDecoratorY 'PositiveThrowX PositiveW 'NegativeThrowV NegativeU !DuringCallT 3DispatcherDecoratorS DecoratorR 5ConstructorDecoratorQ 'WrappedObjectP 9SubjectWithArrayAccessO 1ExpectationFactoryN CallerM WrapperL UnwrapperK SubjectJ #DelayedCallI %CollaboratorH )MethodAnalyserG %InstantiatorF !FilesystemE /ClassFileAnalyserD /SubjectMaintainerC 1MatchersMaintainerB 7LetAndLetgoMaintainerA +ErrorMaintainer@ ;CollaboratorsMaintainer? #SuiteRunner> 3SpecificationRunner= )MatcherManager< 'ExampleRunner; 3CollaboratorManager: 7PhpExecutableReRunner9 'PcntlReRunner8 -PassthruReRunner7 -OptionalReRunner6 /CompositeReRunner5 1SuitePrerequisites!4 CPrerequisiteFailedException3 5JsonExecutionContext2 -ServiceContainer1 )ObjectBehavior0 #TypeMatcher/ %ThrowMatcher. 1StringStartMatcher- 1StringRegexMatcher, -StringEndMatcher+ 'ScalarMatcher* 1ObjectStateMatcher) +IdentityMatcher( /ComparisonMatcher' +CallbackMatcher& %BasicMatcher% 5ArrayKeyValueMatcher$ +ArrayKeyMatcher# /ArrayCountMatcher" 3ArrayContainMatcher! +ResourceManager  %PSR0Resource #PSR0Locator Suite )ResourceLoader /SpecificationNode #ExampleNode   7 _0]C#lL.|_@!uX>




u
W
7

							a	G	&	kI2{W<jXM5
yfO6mN(wU+	jP9 [P7                           3 -ReportFailedItem2 IO#1 GInvalidExampleResultException0 'HtmlPresenter/ %TapFormatter. /ProgressFormatter- +PrettyFormatter, )JUnitFormatter+ 'HtmlFormatter* %DotFormatter) -ConsoleFormatter( )BasicFormatter' /ReflectionFactory& - SubjectException% = MatcherNotFoundException$ 7 CollaboratorException# ?ResourceCreationException"" ENamedMethodNotFoundException! ?PropertyNotFoundException'  ONamedConstructorNotFoundException ?MethodNotVisibleException ;MethodNotFoundException ?MethodInvocationException& MInterfaceNotImplementedException /FractureException) SFactoryDoesNotReturnObjectException# GCollaboratorNotFoundException 9ClassNotFoundException -ExceptionFactory Exception 9StopOnFailureException /SkippingException -PendingException /NotEqualException -MatcherException -FailureException -ExampleException )ErrorException !SuiteEvent 1SpecificationEvent +MethodCallEvent
 -ExpectationEvent	 %ExampleEvent Question Factory Dialog !RunCommand +DescribeCommand +ResultConverter IO Formatter  1ContainerAssembler #Application~ 'OptionsConfig} 3TokenizedCodeWriter| -TemplateRenderer{ -GeneratorManagerz 9SpecificationGeneratory ;ReturnConstantGeneratorx 1PromptingGenerator!w CPrivateConstructorGeneratorv ?NamedConstructorGeneratoru =MethodSignatureGeneratort +MethodGenerators 1InterfaceGenerator!r CExistingConstructorTemplateq 5CreateObjectTemplatep )ClassGeneratoro ?VisibilityAccessInspectorn ?MagicAwareAccessInspectorm !Everythingl #SubjectSpeck %PositiveSpecj %NegativeSpeci ;DispatcherDecoratorSpech Decoratorg 'DecoratorSpecf =ConstructorDecoratorSpece /WrappedObjectSpecd 9ExpectationFactorySpecc %ExampleClassb !CallerSpeca 'ExampleObject` 1MethodAnalyserSpec_ )WithProperties^ +WithConstructor] 'NoConstructor\ -InstantiatorSpec[ ;ExampleObjectUsingTraitZ 7ClassFileAnalyserSpecY 5ServiceContainerSpecX 9MatchersMaintainerSpecW +SuiteRunnerSpecV ;SpecificationRunnerSpecU 1MatcherManagerSpecT /ExampleRunnerSpecS ;CollaboratorManagerSpecR /PcntlReRunnerSpecQ 5PassthruRerunnerSpecP 5OptionalReRunnerSpecO 7CompositeReRunnerSpecN 9SuitePrerequisitesSpecM =JsonExecutionContextSpecL +TypeMatcherSpecK -ThrowMatcherSpecJ 9StringStartMatcherSpecI 9StringRegexMatcherSpecH 5StringEndMatcherSpecG 9ObjectStateMatcherSpecF 3IdentityMatcherSpecE 7ComparisonMatcherSpecD 3CallbackMatcherSpecC =ArrayKeyValueMatcherSpecB 3ArrayKeyMatcherSpecA 7ArrayCountMatcherSpec@ ;ArrayContainMatcherSpec? 3ResourceManagerSpec> -PSR0ResourceSpec= +PSR0LocatorSpec< SuiteSpec; 7SpecificationNodeSpec: +ExampleNodeSpec9 ?StopOnFailureListenerSpec8 ;StatisticsCollectorSpec7 /RerunListenerSpec*6 UNamedConstructorNotFoundListenerSpec$5 IMethodReturnedNullListenerSpec 4 AMethodNotFoundListenerSpec&3 MCollaboratorNotFoundListenerSpec2 -DoubleOfStdClass1 /DoubleOfInterface,0 YCollaboratorMethodNotFoundListenerSpec/ ?ClassNotFoundListenerSpec. 3TaggedPresenterSpec- 'WithMagicCall, 3WithStaticMagicCall+ +WithMagicInvoke* -WithStaticMethod   Y teP;#dAuaL4jO9 tP5





l
P
<

						o	X	C	/		oS@/~jK8!lT7xbN7 q[C/m\H3}eF+mY                     Q #)Foo4CommandP #)Foo3CommandO #)Foo2CommandN #)Foo1CommandM ')BarBucCommandL /(XmlDescriptorTestK 1(TextDescriptorTestJ +(ObjectsProviderI 9(MarkdownDescriptorTestH 1(JsonDescriptorTestG 9(AbstractDescriptorTestF +'ListCommandTestE +'HelpCommandTestD #'CommandTest%C K&CustomDefaultCommandApplicationB /&CustomApplicationA +&ApplicationTest@ '%CommandTester? /%ApplicationTester> %$SymfonyStyle= #$OutputStyle< #Question; 5#ConfirmationQuestion: )#ChoiceQuestion9 %"StreamOutput8 "Output7 !"NullOutput6 '"ConsoleOutput5 )"BufferedOutput4 '!ConsoleLogger3 # StringInput2 # InputOption1 + InputDefinition0 ' InputArgument/  Input. ! ArrayInput-  ArgvInput, !TableStyle+ )TableSeparator* #TableHelper) TableCell( Table' 7SymfonyQuestionHelper& )QuestionHelper% )ProgressHelper$ #ProgressBar# 'ProcessHelper" -InputAwareHelper! HelperSet  Helper +FormatterHelper %DialogHelper -DescriptorHelper 5DebugFormatterHelper ?OutputFormatterStyleStack 5OutputFormatterStyle +OutputFormatter 7ConsoleTerminateEvent 7ConsoleExceptionEvent %ConsoleEvent 3ConsoleCommandEvent 'XmlDescriptor )TextDescriptor 1MarkdownDescriptor )JsonDescriptor !Descriptor 9ApplicationDescription #ListCommand #HelpCommand Command Shell
 'ConsoleEvents	 #Application +UnwrapDecorator 'PositiveThrow Positive 'NegativeThrow Negative !DuringCall 3DispatcherDecorator Decorator  5ConstructorDecorator 'WrappedObject~ 9SubjectWithArrayAccess} 1ExpectationFactory| Caller{ Wrapperz Unwrappery Subjectx #DelayedCallw %Collaboratorv )MethodAnalyseru %Instantiatort !Filesystems /ClassFileAnalyserr /SubjectMaintainerq 1MatchersMaintainerp 7LetAndLetgoMaintainero +ErrorMaintainern ;CollaboratorsMaintainerm #SuiteRunnerl 3SpecificationRunnerk )MatcherManagerj 'ExampleRunneri 3CollaboratorManagerh 7PhpExecutableReRunnerg 'PcntlReRunnerf -PassthruReRunnere -OptionalReRunnerd /CompositeReRunnerc 1SuitePrerequisites!b CPrerequisiteFailedExceptiona 5JsonExecutionContext` -ServiceContainer_ )ObjectBehavior^ #TypeMatcher] %ThrowMatcher\ 1StringStartMatcher[ 1StringRegexMatcherZ -StringEndMatcherY 'ScalarMatcherX 1ObjectStateMatcherW +IdentityMatcherV /ComparisonMatcherU +CallbackMatcherT %BasicMatcherS 5ArrayKeyValueMatcherR +ArrayKeyMatcherQ /ArrayCountMatcherP 3ArrayContainMatcherO +
ResourceManagerN %	PSR0ResourceM #	PSR0LocatorL SuiteK )ResourceLoaderJ /SpecificationNodeI #ExampleNodeH 7StopOnFailureListenerG 3StatisticsCollectorF 'RerunListener&E MNamedConstructorNotFoundListener D AMethodReturnedNullListenerC 9MethodNotFoundListener"B ECollaboratorNotFoundListener(A QCollaboratorMethodNotFoundListener@ 7ClassNotFoundListener? /BootstrapListener> +TaggedPresenter= +StringPresenter< %StringEngine; %ObjectEngine: Differ9 #ArrayEngine8 Template7 /ReportSkippedItem6 /ReportPendingItem5 -ReportPassedItem4 /ReportItemFactory   = mN/pT>|jT=#zgT;"{dI1






y
[
;
								u	U	4	|Y>u^M;&vQ& hM<#d=wV=$|`J1za=                     !a CESigchildDisabledProcessTest` -EProcessUtilsTest"_ EEProcessInSigchildEnvironment ^ AEProcessFailedExceptionTest] 1EProcessBuilderTest\ )EPhpProcessTest[ ;EPhpExecutableFinderTestZ 5EExecutableFinderTestY -ENonStringifiableX 'EStringifiableW 3EAbstractProcessTestV %DWindowsPipesU DUnixPipesT 'DAbstractPipesS %CProcessUtilsR )CProcessBuilderQ CProcessP !CPhpProcessO 3CPhpExecutableFinderN -CExecutableFinderM -BRuntimeExceptionL =BProcessTimedOutExceptionK 9BProcessFailedExceptionJ )BLogicExceptionI =BInvalidArgumentExceptionH #ACommandTestG 5@SortableIteratorTestF /@InnerSizeIterator!E C@SizeRangeFilterIteratorTest$D I@RecursiveDirectoryIteratorTestC 5@RealIteratorTestCaseB 9@PathFilterIteratorTest$A I@TestMultiplePcreFilterIterator$@ I@MultiplePcreFilterIteratorTest? +@MockSplFileInfo> 5@MockFileListIterator= -@IteratorTestCase< @Iterator; 1@FilterIteratorTest: /@InnerTypeIterator 9 A@FileTypeFilterIteratorTest8 7@FilePathsIteratorTest7 /@InnerNameIterator 6 A@FilenameFilterIteratorTest#5 G@FilecontentFilterIteratorTest(4 Q@ExcludeDirectoryFilterIteratorTest"3 E@DepthRangeFilterIteratorTest!2 C@DateRangeFilterIteratorTest1 =@CustomFilterIteratorTest0 ?GlobTest/ !?FinderTest. 1>UnsupportedAdapter- %>NamedAdapter, )>FailingAdapter+ %>DummyAdapter* =RegexTest) =GlobTest( )=ExpressionTest' 5<NumberComparatorTest& 1<DateComparatorTest% )<ComparatorTest$ ;Shell# ;Command" -:SortableIterator! ;:SizeRangeFilterIterator   A:RecursiveDirectoryIterator 1:PathFilterIterator  A:MultiplePcreFilterIterator ):FilterIterator 9:FileTypeFilterIterator /:FilePathsIterator 9:FilenameFilterIterator ?:FilecontentFilterIterator$ I:ExcludeDirectoryFilterIterator =:DepthRangeFilterIterator ;:DateRangeFilterIterator 5:CustomFilterIterator #9SplFileInfo
 9Glob 9Finder 8Regex
 8Glob !8Expression" E7ShellCommandFailureException# G7OperationNotPermitedException ;7AdapterFailureException 77AccessDeniedException
 -6NumberComparator	 )6DateComparator !6Comparator !5PhpAdapter )5GnuFindAdapter )5BsdFindAdapter 35AbstractFindAdapter +5AbstractAdapter +4LockHandlerTest 14FilesystemTestCase  )4FilesystemTest '4ExceptionTest~ #3LockHandler} !3Filesystem| #2IOException{ 72FileNotFoundExceptionz /1CommandTesterTesty 71ApplicationTesterTestx -0SymfonyStyleTestw -/StreamOutputTestv !/TestOutputu !/OutputTestt )/NullOutputTests //ConsoleOutputTestr /.ConsoleLoggerTestq +-StringInputTestp -InputTesto +-InputOptionTestn 3-InputDefinitionTestm /-InputArgumentTestl )-ArrayInputTestk '-ArgvInputTestj ,TableTesti ),TableStyleTesth 1,QuestionHelperTestg +,ProgressBarTestf /,ProcessHelperTeste 7,LegacyTableHelperTestd =,LegacyProgressHelperTestc 9,LegacyDialogHelperTestb ',HelperSetTesta 3,FormatterHelperTest` +TableCell_ 3+OutputFormatterTest^ =+OutputFormatterStyleTest#] G+OutputFormatterStyleStackTest\ #*DummyOutput[ 1*DescriptorCommand2Z 1*DescriptorCommand1Y 9*DescriptorApplication2X 9*DescriptorApplication1W #)TestCommandV =)FooSubnamespaced2CommandU =)FooSubnamespaced1CommandT !)FooCommandS ')FoobarCommandR #)Foo5Command   x tgQ:!sU='rU6|Q4 lR8





}
]
H
0
				f	8		_2W+]3	b@qK&g=rP)mS>%                   Y /ITwig_Node_IncludeX -ITwig_Node_ImportW %ITwig_Node_IfV /ITwig_Node_ForLoopU 'ITwig_Node_ForT +ITwig_Node_FlushS 5ITwig_Node_Expression R AITwig_Node_Expression_Unary$Q IITwig_Node_Expression_Unary_Pos$P IITwig_Node_Expression_Unary_Not$O IITwig_Node_Expression_Unary_NegN ?ITwig_Node_Expression_Test&M MITwig_Node_Expression_Test_Sameas#L GITwig_Node_Expression_Test_Odd$K IITwig_Node_Expression_Test_Null$J IITwig_Node_Expression_Test_Even+I WITwig_Node_Expression_Test_Divisibleby'H OITwig_Node_Expression_Test_Defined(G QITwig_Node_Expression_Test_Constant#F GITwig_Node_Expression_TempName!E CITwig_Node_Expression_ParentD ?ITwig_Node_Expression_Name%C KITwig_Node_Expression_MethodCall"B EITwig_Node_Expression_GetAttr#A GITwig_Node_Expression_Function!@ CITwig_Node_Expression_Filter)? SITwig_Node_Expression_Filter_Default-> [ITwig_Node_Expression_ExtensionReference#= GITwig_Node_Expression_Constant&< MITwig_Node_Expression_Conditional; ?ITwig_Node_Expression_Call): SITwig_Node_Expression_BlockReference!9 CITwig_Node_Expression_Binary%8 KITwig_Node_Expression_Binary_Sub,7 YITwig_Node_Expression_Binary_StartsWith'6 OITwig_Node_Expression_Binary_Range'5 OITwig_Node_Expression_Binary_Power$4 IITwig_Node_Expression_Binary_Or'3 OITwig_Node_Expression_Binary_NotIn*2 UITwig_Node_Expression_Binary_NotEqual%1 KITwig_Node_Expression_Binary_Mul%0 KITwig_Node_Expression_Binary_Mod)/ SITwig_Node_Expression_Binary_Matches+. WITwig_Node_Expression_Binary_LessEqual&- MITwig_Node_Expression_Binary_Less$, IITwig_Node_Expression_Binary_In.+ ]ITwig_Node_Expression_Binary_GreaterEqual)* SITwig_Node_Expression_Binary_Greater*) UITwig_Node_Expression_Binary_FloorDiv'( OITwig_Node_Expression_Binary_Equal*' UITwig_Node_Expression_Binary_EndsWith%& KITwig_Node_Expression_Binary_Div(% QITwig_Node_Expression_Binary_Concat,$ YITwig_Node_Expression_Binary_BitwiseXor+# WITwig_Node_Expression_Binary_BitwiseOr," YITwig_Node_Expression_Binary_BitwiseAnd%! KITwig_Node_Expression_Binary_And%  KITwig_Node_Expression_Binary_Add% KITwig_Node_Expression_AssignName  AITwig_Node_Expression_Array +ITwig_Node_Embed %ITwig_Node_Do ;ITwig_Node_CheckSecurity )ITwig_Node_Body =ITwig_Node_BlockReference +ITwig_Node_Block 5ITwig_Node_AutoEscape #ITwig_Markup 1ITwig_Loader_String 9ITwig_Loader_Filesystem /ITwig_Loader_Chain /ITwig_Loader_Array !ITwig_Lexer 'ITwig_Function 1ITwig_Function_Node 5ITwig_Function_Method 9ITwig_Function_Function #ITwig_Filter -ITwig_Filter_Node
 1ITwig_Filter_Method	 5ITwig_Filter_Function( QITwig_FileExtensionEscapingStrategy )ITwig_Extension! CITwig_Extension_StringLoader 9ITwig_Extension_Staging 9ITwig_Extension_Sandbox ;ITwig_Extension_Profiler =ITwig_Extension_Optimizer 9ITwig_Extension_Escaper  5ITwig_Extension_Debug 3ITwig_Extension_Core~ 7ITwig_ExpressionParser} !ITwig_Error| /ITwig_Error_Syntax{ 1ITwig_Error_Runtimez /ITwig_Error_Loadery -ITwig_Environmentx 'ITwig_Compilerw +ITwig_Cache_Nullv 7ITwig_Cache_Filesystemu 5ITwig_BaseNodeVisitort +ITwig_Autoloaders HYamlTestr HBq !HParserTestp 1HParseExceptionTesto !HInlineTestn HAm !HDumperTestl -GRuntimeExceptionk )GParseExceptionj 'GDumpException
i FYamlh FUnescaperg FParserf FInlinee FEscaperd FDumperc /ESimpleProcessTest b AESigchildEnabledProcessTest   m  |fL0aM&gI&jP4vdQ-




s
V
8
					~	[	>	%	~^;rS+rO;!lHe8m;o=X(                        ,G YITwig_Tests_Node_Expression_GetAttrTest-F [ITwig_Tests_Node_Expression_FunctionTest+E WITwig_Tests_Node_Expression_FilterTest-D [ITwig_Tests_Node_Expression_ConstantTest0C aITwig_Tests_Node_Expression_ConditionalTest%B KITwig_Tests_Node_Expression_Call)A SITwig_Tests_Node_Expression_CallTest/@ _ITwig_Tests_Node_Expression_Binary_SubTest.? ]ITwig_Tests_Node_Expression_Binary_OrTest/> _ITwig_Tests_Node_Expression_Binary_MulTest/= _ITwig_Tests_Node_Expression_Binary_ModTest4< iITwig_Tests_Node_Expression_Binary_FloorDivTest/; _ITwig_Tests_Node_Expression_Binary_DivTest2: eITwig_Tests_Node_Expression_Binary_ConcatTest/9 _ITwig_Tests_Node_Expression_Binary_AndTest/8 _ITwig_Tests_Node_Expression_Binary_AddTest/7 _ITwig_Tests_Node_Expression_AssignNameTest*6 UITwig_Tests_Node_Expression_ArrayTest5 9ITwig_Tests_Node_DoTest4 ?ITwig_Tests_Node_BlockTest(3 QITwig_Tests_Node_BlockReferenceTest$2 IITwig_Tests_Node_AutoEscapeTest$1 IITwig_Tests_NativeExtensionTest&0 MITwig_Tests_Loader_FilesystemTest!/ CITwig_Tests_Loader_ChainTest(. QITwig_Test_Loader_TemplateReference!- CITwig_Tests_Loader_ArrayTest, 5ITwig_Tests_LexerTest+ ;ILegacyTwigTestExtension&* MITwig_Tests_LegacyIntegrationTest) /ITwigTestExtension' #ITwigTestFoo & AITwig_Tests_IntegrationTest2% eITwig_Tests_FileExtensionEscapingStrategyTest $ AITwig_Tests_FileCachingTest# IFooObject&" MITwig_Tests_Extension_SandboxTest#! GITwig_Tests_Extension_CoreTest%  KITwig_Tests_ExpressionParserTest 9ITwig_Test_EscapingTest =ITwig_Tests_ErrorTest_Foo 5ITwig_Tests_ErrorTest, YITwig_Tests_EnvironmentTest_NodeVisitor, YITwig_Tests_EnvironmentTest_TokenParser* UITwig_Tests_EnvironmentTest_Extension  AITwig_Tests_EnvironmentTest ;ITwig_Tests_CompilerTest ?ITwig_Tests_AutoloaderTest# GITwig_Util_TemplateDirIterator$ IITwig_Util_DeprecationCollector -ITwig_TokenStream 9ITwig_TokenParserBroker -ITwig_TokenParser 5ITwig_TokenParser_Use  AITwig_TokenParser_Spaceless 5ITwig_TokenParser_Set =ITwig_TokenParser_Sandbox 9ITwig_TokenParser_Macro =ITwig_TokenParser_Include ;ITwig_TokenParser_Import
 3ITwig_TokenParser_If	 7ITwig_TokenParser_From 5ITwig_TokenParser_For 9ITwig_TokenParser_Flush ;ITwig_TokenParser_Filter =ITwig_TokenParser_Extends 9ITwig_TokenParser_Embed 3ITwig_TokenParser_Do 9ITwig_TokenParser_Block! CITwig_TokenParser_AutoEscape  !ITwig_Token ITwig_Test~ 9ITwig_Test_NodeTestCase} )ITwig_Test_Node| -ITwig_Test_Method#{ GITwig_Test_IntegrationTestCasez 1ITwig_Test_Functiony 'ITwig_Templatex +ITwig_SimpleTestw 3ITwig_SimpleFunctionv /ITwig_SimpleFilter!u CITwig_Sandbox_SecurityPolicy-t [ITwig_Sandbox_SecurityNotAllowedTagError2s eITwig_Sandbox_SecurityNotAllowedFunctionError0r aITwig_Sandbox_SecurityNotAllowedFilterError q AITwig_Sandbox_SecurityErrorp 7ITwig_Profiler_Profile(o QITwig_Profiler_NodeVisitor_Profiler%n KITwig_Profiler_Node_LeaveProfile%m KITwig_Profiler_Node_EnterProfilel ?ITwig_Profiler_Dumper_Textk ?ITwig_Profiler_Dumper_Html$j IITwig_Profiler_Dumper_Blackfirei #ITwig_Parserh =ITwig_NodeVisitor_Sandbox#g GITwig_NodeVisitor_SafeAnalysis f AITwig_NodeVisitor_Optimizere =ITwig_NodeVisitor_Escaperd 1ITwig_NodeTraverserc ITwig_Nodeb )ITwig_Node_Texta 3ITwig_Node_Spaceless` /ITwig_Node_SetTemp_ 'ITwig_Node_Set^ =ITwig_Node_SandboxedPrint] /ITwig_Node_Sandbox\ +ITwig_Node_Print[ -ITwig_Node_ModuleZ +ITwig_Node_Macro   = zIa?eDmAc-	


k
I
 					s	\	F	/		}bSD6r`I3# pS@-nU?&s`P4oR</l]N@"|jS=               Z 'oBuildIteratorY )oBuildDirectoryX oAddStringW oAddFileV %oAddDirectoryU nArgumentsT +nAbstractSubjectS mExtractR lSHA512Q lSHA256
P lSHA1O lOpenSSL	N lMD5M 7lAbstractHashAlgorithmL kEntryK jWriterJ jReaderI 1iSignatureExceptionH 'iFileExceptionG -iBuilderExceptionF -iArchiveException
E hStubD hSignatureC hExtractB hBuilderA hArchive@ gPathTest
? fPath> 'ePathException= 5dSubjectExceptionTest< 3dReasonExceptionTest; ;dCollectionExceptionTest: #cSubjectTest9 )cCollectionTest8 3cArrayCollectionTest7 bObserver6 -aSubjectException5 +aReasonException4 3aCollectionException3 `Subject2 !`Collection1 +`ArrayCollection0 '_ExceptionTest/ ^Exception. #]SetStubTest- /]BuildIteratorTest, 1]BuildDirectoryTest+ ']AddStringTest* #]AddFileTest) -]AddDirectoryTest( '\ArgumentsTest' -[AbstractTestCase& 3[AbstractSubjectTest% #ZExtractTest$ !YSHA512Test# !YSHA256Test" YSHA1Test! #YOpenSSLTest  YMD5Test ?YAbstractHashAlgorithmTest XEntryTest !WWriterTest !WReaderTest 5VBuilderExceptionTest 5VArchiveExceptionTest UStubTest 'USignatureTest #UExtractTest #UBuilderTest #UArchiveTest TSubject TObserver TAlgorithm SSetStub 'SBuildIterator )SBuildDirectory SAddString SAddFile %SAddDirectory RArguments
 +RAbstractSubject	 QExtract PSHA512 PSHA256
 PSHA1 POpenSSL	 PMD5 7PAbstractHashAlgorithm OEntry NWriter  NReader 1MSignatureException~ 'MFileException} -MBuilderException| -MArchiveException
{ LStubz LSignaturey LExtractx LBuilderw LArchivev 1KParsedownExtraTestu )KParsedownExtrat 'JParsedownTests )JCommonMarkTestr JParsedown q AITwig_Tests_TokenStreamTestp =ICExtDisablingNodeVisitor-o [ITwig_TemplateMagicMethodExceptionObject$n IITwig_TemplateMagicMethodObject&m MITwig_TemplateMethodAndPropObjectl ?ITwig_TemplateMethodObject:k uITwig_TemplatePropertyObjectDefinedWithUndefinedValue/j _ITwig_TemplatePropertyObjectAndArrayAccess,i YITwig_TemplatePropertyObjectAndIterator!h CITwig_TemplatePropertyObject3g gITwig_TemplateMagicPropertyObjectWithException&f MITwig_TemplateMagicPropertyObject$e IITwig_TemplateArrayAccessObjectd /ITwig_TemplateTestc ;ITwig_Tests_TemplateTest%b KITwig_Tests_Profiler_ProfileTest)a SITwig_Tests_Profiler_Dumper_TextTest)` SITwig_Tests_Profiler_Dumper_HtmlTest._ ]ITwig_Tests_Profiler_Dumper_BlackfireTest-^ [ITwig_Tests_Profiler_Dumper_AbstractTest] +ITestTokenParser\ !ITestParser[ 7ITwig_Tests_ParserTest*Z UITwig_Tests_NodeVisitor_OptimizerTestY =ITwig_Tests_Node_TextTest#X GITwig_Tests_Node_SpacelessTestW ;ITwig_Tests_Node_SetTest!V CITwig_Tests_Node_SandboxTest(U QITwig_Tests_Node_SandboxedPrintTestT ?ITwig_Tests_Node_PrintTest S AITwig_Tests_Node_ModuleTestR ?ITwig_Tests_Node_MacroTest!Q CITwig_Tests_Node_IncludeTest P AITwig_Tests_Node_ImportTestO 9ITwig_Tests_Node_IfTestN ;ITwig_Tests_Node_ForTest.M ]ITwig_Tests_Node_Expression_Unary_PosTest.L ]ITwig_Tests_Node_Expression_Unary_NotTest.K ]ITwig_Tests_Node_Expression_Unary_NegTest)J SITwig_Tests_Node_Expression_TestTest+I WITwig_Tests_Node_Expression_ParentTest)H SITwig_Tests_Node_Expression_NameTest   0 kZ= ~kW;"gO5$qcK3kR:




m
N
/
					f	G	(	
nV='zbK7~nM0wdR9+zc=#`=y]6
v\F0    l 'ArrayResolverk 'AliasResolverj /PropertyInjectioni +MethodInjectionh 7ValueDefinitionHelperg 9StringDefinitionHelperf 9ObjectDefinitionHelpere ;FactoryDefinitionHelper)d SEnvironmentVariableDefinitionHelper$c IArrayDefinitionExtensionHelperb 3DefinitionExceptiona 3AnnotationException` 7ValueDefinitionDumper_ 9StringDefinitionDumper^ 9ObjectDefinitionDumper] ;FactoryDefinitionDumper)\ SEnvironmentVariableDefinitionDumper [ ADefinitionDumperDispatcherZ ?DecoratorDefinitionDumperY 7ArrayDefinitionDumperX 7AliasDefinitionDumperW +ValueDefinitionV -StringDefinitionU -ObjectDefinitionT 1InstanceDefinitionS /FactoryDefinition#R GEnvironmentVariableDefinitionQ )EntryReferenceP 3DecoratorDefinitionO =ArrayDefinitionExtensionN +ArrayDefinitionM +AliasDefinitionL ScopeK /NotFoundExceptionJ 3DependencyExceptionI DebugH -ContainerBuilderG ContainerF !ArrayCacheE !InjectableD InjectC 1CallableReflectionB ?TypeHintContainerResolver$A IParameterNameContainerResolver@ 'ResolverChain? 5NumericArrayResolver> 5DefaultValueResolver= =AssociativeArrayResolver< Invoker"; ENotEnoughParametersException: 5NotCallableException9 3InvocationException8 ?CallableReflectionFactory7 %ProxyFactory!6 CDefinitionParameterResolver5 #SourceChain4 )DefinitionFile3 +DefinitionArray2 9CachedDefinitionSource1 !Autowiring0 -AnnotationReader/ 'ValueResolver. )StringResolver- 1ResolverDispatcher, /ParameterResolver+ 'ObjectCreator* -InstanceInjector) +FactoryResolver!( CEnvironmentVariableResolver' /DecoratorResolver& 'ArrayResolver% 'AliasResolver$ /PropertyInjection# +MethodInjection" 7ValueDefinitionHelper! 9StringDefinitionHelper  9ObjectDefinitionHelper ;FactoryDefinitionHelper) SEnvironmentVariableDefinitionHelper$ IArrayDefinitionExtensionHelper 3DefinitionException 3AnnotationException 7ValueDefinitionDumper 9StringDefinitionDumper 9ObjectDefinitionDumper ;FactoryDefinitionDumper) SEnvironmentVariableDefinitionDumper  ADefinitionDumperDispatcher ?DecoratorDefinitionDumper 7ArrayDefinitionDumper 7AliasDefinitionDumper +ValueDefinition -StringDefinition -ObjectDefinition 1InstanceDefinition /FactoryDefinition# GEnvironmentVariableDefinition )EntryReference
 3DecoratorDefinition	 =ArrayDefinitionExtension +ArrayDefinition +AliasDefinition Scope /NotFoundException 3DependencyException Debug -ContainerBuilder Container  !ArrayCache !Injectable~ Inject} }Parser| }Document{ /|SymfonyYAMLParserz +{ParsedownParsery -zCommonMarkParserx #ySetStubTestw /yBuildIteratorTestv 1yBuildDirectoryTestu 'yAddStringTestt #yAddFileTests -yAddDirectoryTestr 'xArgumentsTestq -wAbstractTestCasep 3wAbstractSubjectTesto #vExtractTestn !uSHA512Testm !uSHA256Testl uSHA1Testk #uOpenSSLTestj uMD5Testi ?uAbstractHashAlgorithmTesth tEntryTestg !sWriterTestf !sReaderTeste 5rBuilderExceptionTestd 5rArchiveExceptionTestc qStubTestb 'qSignatureTesta #qExtractTest` #qBuilderTest_ #qArchiveTest^ pSubject] pObserver\ pAlgorithm[ oSetStub   ^  {aF/ gR0~U-_/uG


y
J
			u	D	\*z3sKS~Y.p;vP'yV0                       .J ]PHPUnit_Framework_TestSuite_DataProvider"I EPHPUnit_Framework_TestResult#H GPHPUnit_Framework_TestFailure G APHPUnit_Framework_TestCase&F MPHPUnit_Framework_SyntheticError-E [PHPUnit_Framework_SkippedTestSuiteError(D QPHPUnit_Framework_SkippedTestError'C OPHPUnit_Framework_SkippedTestCase&B MPHPUnit_Framework_RiskyTestError#A GPHPUnit_Framework_OutputError4@ iPHPUnit_Framework_InvalidCoversTargetException0? aPHPUnit_Framework_InvalidCoversTargetError+> WPHPUnit_Framework_IncompleteTestError*= UPHPUnit_Framework_IncompleteTestCase2< ePHPUnit_Framework_ExpectationFailedException(; QPHPUnit_Framework_ExceptionWrapper!: CPHPUnit_Framework_Exception9 ;PHPUnit_Framework_Error%8 KPHPUnit_Framework_Error_Warning$7 IPHPUnit_Framework_Error_Notice(6 QPHPUnit_Framework_Error_Deprecated"5 EPHPUnit_Framework_Constraint&4 MPHPUnit_Framework_Constraint_Xor:3 uPHPUnit_Framework_Constraint_TraversableContainsOnly62 mPHPUnit_Framework_Constraint_TraversableContains31 gPHPUnit_Framework_Constraint_StringStartsWith00 aPHPUnit_Framework_Constraint_StringMatches1/ cPHPUnit_Framework_Constraint_StringEndsWith1. cPHPUnit_Framework_Constraint_StringContains+- WPHPUnit_Framework_Constraint_SameSize,, YPHPUnit_Framework_Constraint_PCREMatch%+ KPHPUnit_Framework_Constraint_Or5* kPHPUnit_Framework_Constraint_ObjectHasAttribute&) MPHPUnit_Framework_Constraint_Not+( WPHPUnit_Framework_Constraint_LessThan.' ]PHPUnit_Framework_Constraint_JsonMatchesD& PHPUnit_Framework_Constraint_JsonMatches_ErrorMessageProvider)% SPHPUnit_Framework_Constraint_IsType)$ SPHPUnit_Framework_Constraint_IsTrue)# SPHPUnit_Framework_Constraint_IsNull)" SPHPUnit_Framework_Constraint_IsJson/! _PHPUnit_Framework_Constraint_IsInstanceOf.  ]PHPUnit_Framework_Constraint_IsIdentical* UPHPUnit_Framework_Constraint_IsFalse* UPHPUnit_Framework_Constraint_IsEqual* UPHPUnit_Framework_Constraint_IsEmpty- [PHPUnit_Framework_Constraint_IsAnything. ]PHPUnit_Framework_Constraint_GreaterThan- [PHPUnit_Framework_Constraint_FileExists9 sPHPUnit_Framework_Constraint_ExceptionMessageRegExp3 gPHPUnit_Framework_Constraint_ExceptionMessage0 aPHPUnit_Framework_Constraint_ExceptionCode, YPHPUnit_Framework_Constraint_Exception( QPHPUnit_Framework_Constraint_Count, YPHPUnit_Framework_Constraint_Composite: uPHPUnit_Framework_Constraint_ClassHasStaticAttribute4 iPHPUnit_Framework_Constraint_ClassHasAttribute+ WPHPUnit_Framework_Constraint_Callback, YPHPUnit_Framework_Constraint_Attribute. ]PHPUnit_Framework_Constraint_ArraySubset. ]PHPUnit_Framework_Constraint_ArrayHasKey& MPHPUnit_Framework_Constraint_And- [PHPUnit_Framework_CodeCoverageException( QPHPUnit_Framework_BaseTestListener,
 YPHPUnit_Framework_AssertionFailedError	 =PHPUnit_Framework_Assert' OPHPUnit_Extensions_TicketListener& MPHPUnit_Extensions_TestDecorator% KPHPUnit_Extensions_RepeatedTest& MPHPUnit_Extensions_PhptTestSuite% KPHPUnit_Extensions_PhptTestCase' OPHPUnit_Extensions_GroupTestSuite 1UseStatementParser #TokenParser  %PhpDocReader 3AnnotationException~ ?CallableReflectionFactory} %ProxyFactory!| CDefinitionParameterResolver{ #SourceChainz )DefinitionFiley +DefinitionArrayx 9CachedDefinitionSourcew !Autowiringv -AnnotationReaderu 'ValueResolvert )StringResolvers 1ResolverDispatcherr /ParameterResolverq 'ObjectCreatorp -InstanceInjectoro +FactoryResolver!n CEnvironmentVariableResolverm /DecoratorResolver   w Z9f7pN.lM0g;



o
V
A
2

					_	R	?	tZ0h<wV8rT5jS9r\L8&vK(Z3                        "A ENamespaceCoveragePrivateTest$@ INamespaceCoverageNotPublicTest'? ONamespaceCoverageNotProtectedTest%> KNamespaceCoverageNotPrivateTest!= CNamespaceCoverageMethodTest&< MNamespaceCoverageCoversClassTest,; YNamespaceCoverageCoversClassPublicTest : ANamespaceCoverageClassTest(9 QNamespaceCoverageClassExtendedTest8 3MultiDependencyTest7 !MockRunner6 'IsolationTest5 IniTest4 /InheritedTestCase3 %InheritanceB2 %InheritanceA1 )IncompleteTest0 FatalTest/ #FailureTest. Failure- 'ExceptionTest, 1ExceptionStackTest+ +ExceptionInTest* ;ExceptionInTearDownTest) 5ExceptionInSetUpTest(( QExceptionInAssertPreConditionsTest)' SExceptionInAssertPostConditionsTest& /EmptyTestCaseTest% )DummyException$ )DoubleTestCase# 3DependencyTestSuite" 7DependencySuccessTest! 7DependencyFailureTest  -DataProviderTest ;DataProviderSkippedTest  ADataProviderIncompleteTest 9DataProviderFilterTest 7DataProviderDebugTest 'CustomPrinter %CoveredClass 1CoveredParentClass( QCoverageTwoDefaultClassAnnotations 1CoveragePublicTest 7CoverageProtectedTest 3CoveragePrivateTest 7CoverageNotPublicTest =CoverageNotProtectedTest 9CoverageNotPrivateTest 3CoverageNothingTest -CoverageNoneTest 1CoverageMethodTest- [CoverageMethodParenthesesWhitespaceTest# GCoverageMethodParenthesesTest) SCoverageMethodOneLineAnnotationTest 5CoverageFunctionTest/
 _CoverageFunctionParenthesesWhitespaceTest%	 KCoverageFunctionParenthesesTest /CoverageClassTest ?CoverageClassExtendedTest %ConcreteTest' OConcreteWithMyCustomExtensionTest /ClassWithToString% KClassWithScalarTypeDeclarations" EClassWithNonPublicAttributes( QParentClassWithProtectedAttributes&  MParentClassWithPrivateAttributes' OChangeCurrentWorkingDirectoryTest~ !Calculator
} Book"| EBeforeClassAndAfterClassTest{ 1BeforeAndAfterTestz 9BaseTestListenerSample(y QBankAccountWithCustomExtensionTestx +BankAccountTestw #BankAccountv 5BankAccountExceptionu Authort %AbstractTests -PHPUnit_Util_XMLr /PHPUnit_Util_Type$q IPHPUnit_Util_TestSuiteIterator(p QPHPUnit_Util_TestDox_ResultPrinter-o [PHPUnit_Util_TestDox_ResultPrinter_Text-n [PHPUnit_Util_TestDox_ResultPrinter_HTML)m SPHPUnit_Util_TestDox_NamePrettifierl /PHPUnit_Util_Testk 3PHPUnit_Util_Stringj 1PHPUnit_Util_Regexi 5PHPUnit_Util_Printerh -PHPUnit_Util_PHPg =PHPUnit_Util_PHP_Windowsf =PHPUnit_Util_PHP_Defaulte 5PHPUnit_Util_Log_TAPd 9PHPUnit_Util_Log_JUnitc 7PHPUnit_Util_Log_JSON(b QPHPUnit_Util_InvalidArgumentHelpera =PHPUnit_Util_GlobalState` 3PHPUnit_Util_Getopt_ 3PHPUnit_Util_Filter^ ;PHPUnit_Util_Filesystem] ;PHPUnit_Util_Fileloader\ ?PHPUnit_Util_ErrorHandler [ APHPUnit_Util_ConfigurationZ 9PHPUnit_Util_BlacklistY ?PHPUnit_TextUI_TestRunner"X EPHPUnit_TextUI_ResultPrinterW 9PHPUnit_TextUI_CommandV 9PHPUnit_Runner_Version,U YPHPUnit_Runner_StandardTestSuiteLoader T APHPUnit_Runner_Filter_Test/S _PHPUnit_Runner_Filter_GroupFilterIterator)R SPHPUnit_Runner_Filter_Group_Include)Q SPHPUnit_Runner_Filter_Group_Exclude#P GPHPUnit_Runner_Filter_FactoryO =PHPUnit_Runner_Exception#N GPHPUnit_Runner_BaseTestRunnerM ?PHPUnit_Framework_Warning7L oPHPUnit_Framework_UnintentionallyCoveredCodeError!K CPHPUnit_Framework_TestSuite   E q]7#	ZA'r^L7jC1aE&





j
M
:
*

							l	N	8	"	dO:%qR:ydL+oT;u^?*ygU=#p_N9$xhXE       \ !MathTester[ DumbGuyZ CodeGuyY 1AbsolutelyOtherGuyX 5VerbosityLevelOutputW +MyReportPrinterV 1MyGroupHighlighterU !DummyClass
T glue
S dataR #unsetCookieQ %contentType2P %contentType1O registerN httpAuthM searchL articles
K formJ 1facebookControllerI 'cookiesHeaderH cookiesG loginF =redirect_header_intervalE 'redirect_selfD /redirect_intervalC +redirect_paramsB redirect3A redirect2@ /redirect_relative? redirect4> redirect
= info< index; 3WildcardIncludeCest: 1RunEnvironmentCest9 RunCest8 OrderCest7 %IncludedCest6 9GeneratePageObjectCest5 )ExtensionsCest4 'BootstrapCest3 3PHPUnit_Util_Filter2 RoboFile1 +WebDriverWindow0 /WebDriverTimeouts/ +WebDriverSelect. 'WebDriverKeys - AWebDriverExpectedCondition, -RemoteWebElement+ 1WebDriverDimension* #WebDriverBy) )WebDriverAlert( ;WebDriverCapabilityType' /LocalFileDetector& -WebDriverActions% 9WebDriverCurlException$ 9NoSuchElementException# =InvalidSelectorException" +RemoteWebDriver! %CoveredClass  1CoveredParentClass 9ExceptionNamespaceTest %Util_XMLTest 'Util_TestTest% KUtil_TestDox_NamePrettifierTest )Util_RegexTest 5Util_GlobalStateTest +Util_GetoptTest 9Util_ConfigurationTest ?Runner_BaseTestRunnerTest %Issue797Test %Issue765Test %NewException #Issue74Test %Issue581Test %Issue503Test %Issue498Test %Issue445Test %Issue433Test %Issue322Test =Issue244ExceptionIntCode /Issue244Exception
 %Issue244Test	 'Issue1570Test 'Issue1472Test 'Issue1471Test 'Issue1468Test 'Issue1437Test 'Issue1374Test 'Issue1351Test 7ChildProcessClass1351 'Issue1348Test  'Issue1337Test 'Issue1335Test~ 'Issue1330Test} 'Issue1265Test| 'Issue1216Test{ 'Issue1149Testz TwoTesty #ParentSuitex OneTestw !ChildSuitev 5Foo_Bar_Issue684Testu %Issue578Testt Issue523s %Issue523Testr 'Issue1021Test q AFramework_TestListenerTest#p GFramework_TestImplementorTesto ?Framework_TestFailureTestn 9Framework_TestCaseTestm 3Framework_SuiteTestl =Framework_ConstraintTest*k UFramework_Constraint_JsonMatchesTest?j Framework_Constraint_JsonMatches_ErrorMessageProviderTesti 5ExceptionMessageTest h AExceptionMessageRegExpTestg CountTest$f IFramework_BaseTestListenerTeste 5Framework_AssertTest!d CExtensions_RepeatedTestTestc -PhpTestCaseProxy!b CExtensions_PhptTestCaseTesta WasRun` =ThrowNoExceptionTestCase_ 9ThrowExceptionTestCase^ %TestWithTest] TestError\ #TestSkipped[ 'TestIterator2Z %TestIteratorY )TestIncompleteX 3TemplateMethodsTestW SuccessV StructU StackTestT SingletonS #SampleClassR /SampleArrayAccessQ -RequirementsTest#P GRequirementsClassDocBlockTest*O URequirementsClassBeforeClassHookTestN -OverrideTestCaseM )OutputTestCaseL #OneTestCaseK +NotVoidTestCaseJ /NotPublicTestCaseI #NothingTest#H GNotExistingCoveredElementTestG #NoTestCasesF +NoTestCaseClassE NonStaticD /NoArgTestCaseTest!C CNamespaceCoveragePublicTest$B INamespaceCoverageProtectedTest   v n]L8qZH2
oQB1"{\@#x_?






|
m
X
A
1

							o	[	E	2		yeT/ ~o^Q<+z_G-tfRB-mU="pX;,vjZK7#v             DiTest !TestLoader Suite
 Parser	 +ModuleContainer %InnerBrowser %GroupManager Friend Framework Di #Deprecation #MessageTest Output  Message	 ZF2	~ ZF1
} Yii2
| Yii1{ Universalz Symfony2y 5PhalconMemorySessionx Phalconw Lumenv Laravel5u Laravel4t Guzzle6s Guzzler 5TestRuntimeExceptionq +RemoteExceptionp 9ModuleRequireExceptiono +ModuleExceptionn ;ModuleConflictExceptionm 7ModuleConfigExceptionl ?MalformedLocatorExceptionk 1InjectionExceptionj 1ExtensionExceptioni +ElementNotFoundh +ContentNotFoundg 3ConnectionExceptionf 9ConfigurationException e AConditionalAssertionFailedd TestEventc !SuiteEventb StepEventa -PrintResultEvent` FailEvent_ %RemoteServer^ Printer] #LocalServer\ Local[ !FilterTestZ +SuiteSubscriberY FilterX /DummyCodeCoverageW !SelfUpdate	V RunU %GenerateTestT 'GenerateSuiteS 1GenerateStepObjectR /GenerateScenariosQ +GeneratePhpUnitP 1GeneratePageObjectO )GenerateHelperN 'GenerateGroupM 3GenerateEnvironmentL %GenerateCestK %GenerateCeptJ ConsoleI CleanH BuildG BootstrapF TestCaseE %SuiteManager
D StepC ScenarioB ModuleA #GroupObject@ Extension? Events> 'Configuration= Codecept< Actor; %SimpleOutput: RunFailed9 Recorder8 Logger"7 EmyClassWithPrivateProperties6 StubTest5 #LocatorTest4 %AutoloadTest3 )AnnotationTest2 )TestLoaderTest1 %TestCaseTest0 TestTest/ CestTest. CeptTest- -SuiteManagerTest, %ExecutorTest+ !ParserTest* 'WebDriverTest) #TestsForWeb( -TestsForBrowsers' SoapTest& SFTPTest% %SequenceTest$ 1JsonSerializedItem# RestTest" )PhpBrowserTest! 1PhpBrowserRestTest  #MongoDbTest FTPTest )FrameworksTest %FacebookTest DbTest DbhTest +Beanstalkd_Test #AssertsTest AMQPTest !SqliteTest %PostgresTest MysqlTest -ModuleConfigTest  AWebDriverConstraintNotTest ;WebDriverConstraintTest -TestedWebElement =CrawlerNotConstraintTest 7CrawlerConstraintTest /ConfigurationTest -GenerateTestTest /GenerateSuiteTest 9GenerateStepObjectTest
 5GenerateScenarioTest	 3GeneratePhpunitTest 9GeneratePageObjectTest /GenerateGroupTest ;GenerateEnvironmentTest -GenerateCestTest -GenerateCeptTest BuildTest /BaseCommandRunner c3Test  WebGuy CoverGuy~ CliGuy} 7SimpleWithNoClassCest| !SampleTest{ !SimpleCestz 5SimpleAdminGroupCesty #UserServicex UserModelw !UnitTesterv 9DummyOverloadableClassu #PassingTestt #FailingTests 'ExceptionTestr ErrorTestq )SomeErrorClassp #DependsTesto /DataProvidersTestn 'MageGuildCestm #ReorderCestl !FailedCestk 'DependentCestj CodeTesti +CanCantFailCesth 5BeforeAfterClassTestg #MessageCestf MathTeste MathCestd #AnotherTestc #AnotherCestb SkipGuya #ScenarioGuy` PowerGuy_ OtherGuy^ OrderGuy] !MessageGuy    nT:!xeN@1tgWK@4"l^PC2$wcO;(






v
d
O
>
(

										d	S	@	3	&	zm`M<.
vjWB,^I&p`M>.zgT&
oW6z_F#            N 3PHPUnit_Util_FilterM RoboFileL +WebDriverWindowK /WebDriverTimeoutsJ +WebDriverSelectI 'WebDriverKeys H AWebDriverExpectedConditionG -RemoteWebElementF 1WebDriverDimensionE #WebDriverByD )WebDriverAlertC ;WebDriverCapabilityTypeB /LocalFileDetectorA -WebDriverActions@ 9WebDriverCurlException? 9NoSuchElementException> =InvalidSelectorException= +RemoteWebDriver< -RootWatcherSteps; -YetAnotherHelper: 'AnotherHelper9 %NeededHelper8 #AnotherCest'7 OSkippedWithPrivateConstructorCest6 3SkippedAbstractCest+5 WLoadedTestWithDependencyInjectionCest4 !SimpleTest3 !SimpleTest2 BasicTest1 !UnitTester
0 Acme/ !UnitTester. Toast- BasicTest, !UnitTester
+ Ewok* 3EmulateModuleHelper) !TestHelper( TestGuy' Hobbit& !TestHelper% TestGuy$ Musician# !TestHelper" TestGuy! BillEvans  %AnotherClass  AIncorrectDependenciesClass  AIncorrectDependenciesClass %AnotherClass  AIncorrectDependenciesClass %AnotherClass  AIncorrectDependenciesClass %CanCantSteps %Trigonometry !Subtractor !CalcHelper Adder Scenario )GeneratorSteps UriTest %MockAutoload 'JsonArrayTest %XmlStructure !XmlBuilder	 Xml	 Uri Template
 )ConsecutiveMap	 'StubMarshaler
 Stub
 Soap Maybe Locator JsonArray Fixtures !FileSystem Debug  Autoload !Annotation
~ Test
} Cest
| Cept{ Modulez 3GracefulTerminationy FailFastx %ErrorHandlerw Consolev Bootstrapu +BeforeAfterTestt #AutoRebuild
s Skip
r Metaq !Incompletep Executoro 5ConditionalAssertionn Conditionm Commentl Assertionk Actionj Groupi Extensionh UIg Report
f HTMLe JUnitd Runnerc 'ResultPrinterb Listenera %WebDriverNot` WebDriver
_ Page^ !CrawlerNot] Crawler\ WebHelper[ 1UniversalFrameworkZ !TestHelperY 3EmulateModuleHelperX #CoverHelperW CliHelperV !SkipHelperU #PowerHelperT #OtherHelperS #OrderHelperR 'MessageHelperQ !DumbHelperP !CodeHelper	O ZF2	N ZF1
M Yii2
L Yii1K XMLRPCJ WebDriverI Symfony2
H SOAPG SilexF Sequence
E RESTD RedisC QueueB !PhpBrowserA Phalcon2@ Phalcon1? MongoDb> Memcache= Lumen< Laravel5; Laravel4	: FTP9 !Filesystem8 Facebook7 Doctrine2	6 Dbh5 Db	4 Cli3 Asserts
2 AMQP
1 Test0 !StepObject/ PhpUnit. !PageObject- Helper, Group
+ Cest
* Cept) Actor( Actions' SqlSrv& 'SqliteGeneral% Sqlite$ Redis# )RedisException" !PostgreSql! Oracle	  Oci MySql MsSql MongoDb
 Iron Facebook Db Beanstalk AmazonSQS %PartedModule -DependencyModule /ConflictedModule3 /ConflictedModule2 -ConflictedModule %HelperModule !StubModule 3ModuleContainerTest 3DescriptiveTestCase -GroupManagerTest    }bF8+aSC-xkX=%t`P<(oY?+






l
O
<
)
								o	O	5	qS2r^F6'ydSB)v_H3m^L8)}aK4hYA.                             TestEvent~ !SuiteEvent} StepEvent| -PrintResultEvent{ FailEventz %RemoteServery Printerx #LocalServerw Localv !FilterTestu +SuiteSubscribert Filters /DummyCodeCoverager !SelfUpdate	q Runp %GenerateTesto 'GenerateSuiten 1GenerateStepObjectm /GenerateScenariosl +GeneratePhpUnitk 1GeneratePageObjectj )GenerateHelperi 'GenerateGrouph 3GenerateEnvironmentg %GenerateCestf %GenerateCepte Consoled Cleanc Buildb Bootstrapa TestCase` %SuiteManager
_ Step^ Scenario] Module\ #GroupObject[ ExtensionZ EventsY 'ConfigurationX CodeceptW ActorV %SimpleOutputU RunFailedT RecorderS Logger"R EmyClassWithPrivatePropertiesQ StubTestP #LocatorTestO %AutoloadTestN )AnnotationTestM )TestLoaderTestL %TestCaseTestK TestTestJ CestTestI CeptTestH -SuiteManagerTestG %ExecutorTestF !ParserTestE 'WebDriverTestD #TestsForWebC -TestsForBrowsersB SoapTestA SFTPTest@ %SequenceTest? 1JsonSerializedItem> RestTest= )PhpBrowserTest< 1PhpBrowserRestTest; #MongoDbTest: FTPTest9 )FrameworksTest8 %FacebookTest7 DbTest6 DbhTest5 +Beanstalkd_Test4 #AssertsTest3 AMQPTest2 !SqliteTest1 %PostgresTest0 MysqlTest/ -ModuleConfigTest . AWebDriverConstraintNotTest- ;WebDriverConstraintTest, -TestedWebElement+ =CrawlerNotConstraintTest* 7CrawlerConstraintTest) /ConfigurationTest( -GenerateTestTest' /GenerateSuiteTest& 9GenerateStepObjectTest% 5GenerateScenarioTest$ 3GeneratePhpunitTest# 9GeneratePageObjectTest" /GenerateGroupTest! ;GenerateEnvironmentTest  -GenerateCestTest -GenerateCeptTest BuildTest /BaseCommandRunner c3Test WebGuy CoverGuy CliGuy 7SimpleWithNoClassCest !SampleTest !SimpleCest 5SimpleAdminGroupCest #UserService UserModel !UnitTester 9DummyOverloadableClass #PassingTest #FailingTest 'ExceptionTest ErrorTest )SomeErrorClass #DependsTest
 /DataProvidersTest	 'MageGuildCest #ReorderCest !FailedCest 'DependentCest CodeTest +CanCantFailCest 5BeforeAfterClassTest #MessageCest MathTest  MathCest #AnotherTest~ #AnotherCest} SkipGuy| #ScenarioGuy{ PowerGuyz OtherGuyy OrderGuyx !MessageGuyw !MathTesterv DumbGuyu CodeGuyt 1AbsolutelyOtherGuys 5VerbosityLevelOutputr +MyReportPrinterq 1MyGroupHighlighterp !DummyClass
o glue
n datam #unsetCookiel %contentType2k %contentType1j registeri httpAuthh searchg articles
f forme 1facebookControllerd 'cookiesHeaderc cookiesb logina =redirect_header_interval` 'redirect_self_ /redirect_interval^ +redirect_params] redirect3\ redirect2[ /redirect_relativeZ redirect4Y redirect
X infoW indexV 3WildcardIncludeCestU 1RunEnvironmentCestT RunCestS OrderCestR %IncludedCestQ 9GeneratePageObjectCestP )ExtensionsCestO 'BootstrapCest    rW<paQ@/!lXM;,vZG2wjZL>2#









q
b
O
?
,


									{	m	\	L	;	*			vj^K8"~cQA.!}o`N>,n]A2%xkU>-!|iVA,	vaO?,       
F EwokE 3EmulateModuleHelperD !TestHelperC TestGuyB HobbitA !TestHelper@ TestGuy? Musician> !TestHelper= TestGuy< BillEvans; % AnotherClass : A IncorrectDependenciesClass 9 AIncorrectDependenciesClass8 %AnotherClass 7 AIncorrectDependenciesClass6 %AnotherClass 5 AIncorrectDependenciesClass4 %CanCantSteps3 %Trigonometry2 !Subtractor1 !CalcHelper0 Adder/ Scenario. )GeneratorSteps- UriTest, %MockAutoload+ 'JsonArrayTest* %XmlStructure) !XmlBuilder	( Xml	' Uri& Template% )ConsecutiveMap$ 'StubMarshaler
# Stub
" Soap! Maybe  Locator JsonArray Fixtures !FileSystem Debug Autoload !Annotation
 Test
 Cest
 Cept Module 3GracefulTermination FailFast %ErrorHandler Console Bootstrap +BeforeAfterTest #AutoRebuild
 Skip
 Meta !Incomplete Executor
 5ConditionalAssertion	 Condition Comment Assertion Action Group Extension UI Report
 HTML  JUnit Runner~ 'ResultPrinter} Listener| %WebDriverNot{ WebDriver
z Pagey !CrawlerNotx Crawlerw WebHelperv 1UniversalFrameworku !TestHelpert 3EmulateModuleHelpers #CoverHelperr CliHelperq !SkipHelperp #PowerHelpero #OtherHelpern #OrderHelperm 'MessageHelperl !DumbHelperk !CodeHelper	j ZF2	i ZF1
h Yii2
g Yii1f XMLRPCe WebDriverd Symfony2
c SOAPb Silexa Sequence
` REST_ Redis^ Queue] !PhpBrowser\ Phalcon2[ Phalcon1Z MongoDbY MemcacheX LumenW Laravel5V Laravel4	U FTPT !FilesystemS FacebookR Doctrine2	Q DbhP Db	O CliN Asserts
M AMQP
L TestK !StepObjectJ PhpUnitI !PageObjectH HelperG Group
F Cest
E CeptD ActorC ActionsB SqlSrvA 'SqliteGeneral@ Sqlite? Redis> )RedisException= !PostgreSql< Oracle	; Oci: MySql9 MsSql8 MongoDb
7 Iron6 Facebook5 Db4 Beanstalk3 AmazonSQS2 %PartedModule1 -DependencyModule0 /ConflictedModule3/ /ConflictedModule2. -ConflictedModule- %HelperModule, !StubModule+ 3ModuleContainerTest* 3DescriptiveTestCase) -GroupManagerTest( DiTest' !TestLoader& Suite% Parser$ +ModuleContainer# %InnerBrowser" %GroupManager! Friend  Framework Di #Deprecation #MessageTest Output Message	 ZF2	 ZF1
 Yii2
 Yii1 Universal Symfony2 5PhalconMemorySession Phalcon Lumen Laravel5 Laravel4 Guzzle6 Guzzle 5TestRuntimeException +RemoteException 9ModuleRequireException
 +ModuleException	 ;ModuleConflictException 7ModuleConfigException ?MalformedLocatorException 1InjectionException 1ExtensionException +ElementNotFound +ContentNotFound 3ConnectionException 9ConfigurationException   AConditionalAssertionFailed   # ub4}hL6e@tT:z]?"



}
X
2
					d	I	,	uX5tT3tV-nX<"tX;pR;'hQ9lK#                     %I K)WebDriverClickAndHoldActionTestH =)WebDriverClickActionTest&G M)WebDriverButtonReleaseActionTestF /(WebDriverTestCaseE )(FileUploadTestD (BaseTestC +(WebDriverWindowB '(WebDriverWaitA /(WebDriverUpAction@ /(WebDriverTimeouts? +(WebDriverSelect> )(WebDriverPoint= /(WebDriverPlatform< -(WebDriverOptions; 3(WebDriverNavigation: '(WebDriverKeys 9 A(WebDriverExpectedCondition8 3(WebDriverDispatcher7 1(WebDriverDimension6 #(WebDriverBy5 )(WebDriverAlert4 7'EventFiringWebElement$3 I'EventFiringWebDriverNavigation2 5'EventFiringWebDriver1 '&DriverService0 7&DriverCommandExecutor/ /%WebDriverResponse. -%WebDriverCommand- ;%WebDriverCapabilityType, 5%WebDriverBrowserType+ 3%UselessFileDetector* -%RemoteWebElement) +%RemoteWebDriver( /%RemoteTouchScreen' 3%RemoteTargetLocator& #%RemoteMouse% )%RemoteKeyboard$ 3%RemoteExecuteMethod# /%LocalFileDetector" 3%HttpCommandExecutor! '%DriverCommand  3%DesiredCapabilities !$URLChecker 7#WebDriverTouchActions =#WebDriverCompositeAction -#WebDriverActions 5"WebDriverTouchAction 1"WebDriverTapAction& M"WebDriverScrollFromElementAction 7"WebDriverScrollAction 3"WebDriverMoveAction ="WebDriverLongPressAction% K"WebDriverFlickFromElementAction 5"WebDriverFlickAction 3"WebDriverDownAction ="WebDriverDoubleTapAction =!WebDriverSingleKeyAction ;!WebDriverSendKeysAction! C!WebDriverMoveToOffsetAction =!WebDriverMouseMoveAction 5!WebDriverMouseAction 5!WebDriverKeyUpAction  A!WebDriverKeysRelatedAction
 9!WebDriverKeyDownAction 	 A!WebDriverDoubleClickAction 5!WebDriverCoordinates! C!WebDriverContextClickAction! C!WebDriverClickAndHoldAction 5!WebDriverClickAction" E!WebDriverButtonReleaseAction ) FirefoxProfile ' FirefoxDriver 5XPathLookupException  1WebDriverException 9WebDriverCurlException#~ GUnsupportedOperationException$} IUnrecognizedExceptionException| 9UnknownServerException{ ;UnknownCommandException z AUnexpectedTagNameException#y GUnexpectedJavascriptException"x EUnexpectedAlertOpenException w AUnableToSetCookieExceptionv -TimeOutException$u IStaleElementReferenceException t ASessionNotCreatedExceptions 9ScriptTimeoutExceptionr 5NullPointerExceptionq 7NoSuchWindowExceptionp 5NoSuchFrameExceptiono 9NoSuchElementExceptionn 7NoSuchDriverExceptionm ;NoSuchDocumentExceptionl ?NoSuchCollectionExceptionk =NoStringWrapperExceptionj ;NoStringLengthExceptioni /NoStringExceptionh ;NoScriptResultExceptiong 7NoCollectionExceptionf 5NoAlertOpenException$e IMoveTargetOutOfBoundsExceptiond =InvalidSelectorException"c EInvalidElementStateException!b CInvalidCoordinatesException"a EInvalidCookieDomainException` ?IndexOutOfBoundsException_ =IMENotAvailableException(^ QIMEEngineActivationFailedException] /ExpectedException \ AElementNotVisibleException#[ GElementNotSelectableExceptionZ 'ChromeOptionsY 3ChromeDriverServiceX %ChromeDriverW -RootWatcherStepsV -YetAnotherHelperU 'AnotherHelperT %NeededHelperS #AnotherCest'R OSkippedWithPrivateConstructorCestQ 3SkippedAbstractCest+P WLoadedTestWithDependencyInjectionCestO !SimpleTestN !SimpleTestM BasicTestL !
UnitTester
K 
AcmeJ !	UnitTesterI 	ToastH BasicTestG !UnitTester   _ mL'}_D-{cJ1s_Q; aI3





|
f
Q
<
&
							}	m	\	M	7	+	kP8scG8)kWB.}`L7&zdJ;,
mU<"u\D(r_                 l !CReaderTestk !CParserTestj 7BWhitespaceHandlerTesti /BStringHandlerTesth /BNumberHandlerTestg 7BIdentifierHandlerTestf +BHashHandlerTeste 1BCommentHandlerTestd 3BAbstractHandlerTestc +ASpecificityTestb -ASelectorNodeTesta )APseudoNodeTest` -ANegationNodeTest_ %AHashNodeTest^ -AFunctionNodeTest] +AElementNodeTest\ =ACombinedSelectorNodeTest[ 'AClassNodeTestZ /AAttributeNodeTestY -AAbstractNodeTestX +@CssSelectorTestW /?TokenizerPatternsV /?TokenizerEscapingU ?TokenizerT !>HashParserS />EmptyStringParserR '>ElementParserQ #>ClassParserP #=TokenStreamO =TokenN =ReaderM =ParserL /<WhitespaceHandlerK '<StringHandlerJ '<NumberHandlerI /<IdentifierHandlerH #<HashHandlerG )<CommentHandlerF #;SpecificityE %;SelectorNodeD !;PseudoNodeC %;NegationNodeB ;HashNodeA %;FunctionNode@ #;ElementNode? 5;CombinedSelectorNode> ;ClassNode= ';AttributeNode< %;AbstractNode; 5:SyntaxErrorException: ):ParseException9 9:InternalErrorException8 =:ExpressionErrorException7 #9CssSelector6 %8ResponseTest5 #8RequestTest4 #8HistoryTest3 !8CookieTest2 '8CookieJarTest1 !8ClientTest0 !8TestClient/ +8SpecialResponse. 7Response- 7Request, 7History+ 7CookieJar* 7Cookie) 7Client( 35MultipartStreamTest' 4UriTest& /4StreamWrapperTest% !4StreamTest$ 4BadStream# =4StreamDecoratorTraitTest	" 4Str! %4ResponseTest  #4RequestTest )4PumpStreamTest -4NoSeekStreamTest +4LimitStreamTest 14LazyOpenStreamTest /4InflateStreamtest '4FunctionsTest %4FnStreamTest 14DroppingStreamTest /4CachingStreamTest -4BufferStreamTest #4HasToString -4AppendStreamTest	 3Uri '3StreamWrapper 3Stream 3Response 3Request !3PumpStream %3NoSeekStream +3MultipartStream #3LimitStream
 )3LazyOpenStream	 '3InflateStream 3FnStream )3DroppingStream '3CachingStream %3BufferStream %3AppendStream '2TaskQueueTest 51FulfilledPromiseTest 0Thennable  90RejectionExceptionTest 0Thing2~ 0Thing1} 30RejectedPromiseTest| #0PromiseTest{ 10NotPromiseInstancez '0FunctionsTesty +0EachPromiseTestx 90AggregateExceptionTestw /TaskQueuev 1/RejectionExceptionu +/RejectedPromiset /Promises -/FulfilledPromiser #/EachPromiseq 7/CancellationExceptionp 1/AggregateExceptiono '.StreamHandlern .Proxym #.MockHandlerl !.EasyHandlek -.CurlMultiHandlerj #.CurlHandleri #.CurlFactoryh /-TransferExceptiong ?-TooManyRedirectsExceptionf +-ServerExceptione '-SeekExceptiond --RequestExceptionc --ConnectExceptionb +-ClientExceptiona 5-BadResponseException` ,SetCookie_ -,SessionCookieJar^ ',FileCookieJar] ,CookieJar\ #+UriTemplate[ '+TransferStatsZ ++RetryMiddlewareY )+RequestOptionsX 1+RedirectMiddlewareW 7+PrepareBodyMiddleware
V +PoolU !+MiddlewareT -+MessageFormatterS %+HandlerStackR +Client!Q C)WebDriverSendKeysActionTest&P M)WebDriverMouseToOffsetActionTest"O E)WebDriverMouseMoveActionTestN =)WebDriverKeyUpActionTest M A)WebDriverKeyDownActionTest$L I)WebDriverDoubleClickActionTestK =)WebDriverCoordinatesTest%J K)WebDriverContextClickActionTest   a jP-xkQD,gQ7rcM<)q^H2






q
U
@
*

						s	X	4	%		w\A*rQ6rXB(w[E-jU<qX;!
w^G1za                          -sStringDescriptor /sIntegerDescriptor
 +sFloatDescriptor	 5sCollectionDescriptor /sBooleanDescriptor 7rTypedVariableAbstract 'rTypedAbstract /qVersionDescriptor 'qVarDescriptor )qUsesDescriptor -qThrowsDescriptor +qSinceDescriptor  'qSeeDescriptor -qReturnDescriptor~ 1qPropertyDescriptor} +qParamDescriptor| -qMethodDescriptor{ )qLinkDescriptorz /qExampleDescriptory 5qDeprecatedDescriptorx -qAuthorDescriptorw pSettingsv /oStripOnVisibilityu 'oStripInternalt #oStripIgnores oFilterr %oClassFactory q AnMissingDependencyExceptionp mFindero ;lProjectDescriptorMappern -kVersionAssemblerm %kVarAssemblerl 'kUsesAssemblerk ;kTypeCollectionAssemblerj +kThrowsAssembleri )kSinceAssemblerh %kSeeAssemblerg +kReturnAssemblerf /kPropertyAssemblere )kParamAssemblerd +kMethodAssemblerc 'kLinkAssemblerb 3kGenericTagAssemblera -kExampleAssembler` 3kDeprecatedAssembler_ +kAuthorAssembler^ )jTraitAssembler] /jPropertyAssembler\ +jMethodAssembler[ 1jInterfaceAssemblerZ /jFunctionAssemblerY 'jFileAssemblerX /jConstantAssemblerW )jClassAssemblerV /jAssemblerAbstractU /jArgumentAssemblerT -iAssemblerFactoryS /iAssemblerAbstractR +hTraitDescriptorQ 'hTagDescriptorP +hServiceProviderO 1hPropertyDescriptorN =hProjectDescriptorBuilderM /hProjectDescriptorL +hProjectAnalyzerK /hPackageDescriptorJ 3hNamespaceDescriptorI -hMethodDescriptorH 3hInterfaceDescriptorG 1hFunctionDescriptorF )hFileDescriptorE 1hDescriptorAbstractD 1hConstantDescriptorC !hCollectionB +hClassDescriptorA 1hArgumentDescriptor@ gOutput? fArgvInput> eReplace= +dServiceProvider< dMerger; dLogging: dLoader!9 CcResolveInlineLinkAndSeeTags8 1cPackageTreeBuilder7 5cNamespaceTreeBuilder6 ;cMarkerFromTagsExtractor5 3cExampleTagsEnricher4 5cElementsIndexBuilder3 cDebug2 bLinker1 aCompiler0 !`RunCommand/ '_UpdateCommand. %^LoggerHelper- 3^ConfigurationHelper, ]Command+ '\Configuration* \Bootstrap) #\Application"( E[JmsSerializerServiceProvider' 3ZPropertyTypeMatcher& 3ZPropertyNameMatcher% +ZPropertyMatcher$ 'YSetNullFilter# 'YReplaceFilter" !YKeepFilter#! GXDoctrineEmptyCollectionFilter  =XDoctrineCollectionFilter )WCloneException VDeepCopy 'TConfigBuilder TConfig STestOne #SSpecifyTest !SConfigTest SRobofile 'QConfigBuilder QConfig PTestOne #PSpecifyTest !PConfigTest PRobofile !OVerifyTest NVerify !MVerifyTest LVerify 7KTextareaFormFieldTest 1KInputFormFieldTest /KFormFieldTestCase
 'KFormFieldTest	 /KFileFormFieldTest 3KChoiceFormFieldTest JLinkTest JFormTest #JCrawlerTest /ITextareaFormField )IInputFormField IFormField 'IFileFormField  +IChoiceFormField
 HLink~ /HFormFieldRegistry
} HForm| HCrawler{ GXPathExprz !GTranslatory 5FPseudoClassExtensionx 'FNodeExtensionw 'FHtmlExtensionv /FFunctionExtensionu 5FCombinationExtension t AFAttributeMatchingExtensions /FAbstractExtensionr )ETranslatorTestq )DHashParserTestp 7DEmptyStringParserTesto /DElementParserTestn +DClassParserTestm +CTokenStreamTest   a rdN</ v^7pS-
nL/	iV:







q
^
L
;
'

									i	O	5		fN,p]M*ueV@/
{cK;.	{gD,dE+|kTG0|a                     . 1PropertyDescriptor- /PackageDescriptor, 3NamespaceDescriptor+ -MethodDescriptor* 1FunctionDescriptor) )FileDescriptor( 1ConstantDescriptor' +ClassDescriptor& )StandardRouter
% Rule$ )RouterAbstract# Renderer" Queue! %ForFileProxy  )ExternalRouter 'UnknownWriter  AMissingDependencyException ?WriterInitializationEvent /PreXslWriterEvent /PreTransformEvent 9PreTransformationEvent 1PostTransformEvent ;PostTransformationEvent #Transformer )Transformation Template +ServiceProvider Exception 'Configuration Template +Transformations  AExternalClassDocumentation #ListCommand -TransformCommand !Collection /BehaviourAbstract

 Twig	 +ServiceProvider Extension Template TwigTest #FactoryTest
 Twig Factory +ApplicationTest +ServiceProvider  %DiscoverTest Discover~ Creator	} Doc| ToHtml{ Documentz Toctreey Imagex Figurew CodeBlockv !ModuleTestu FileTestt 'BaseEntryTests Moduler Heading
q Filep BaseEntryo 3TableOfContentsTestn +TableOfContentsm Glossaryl Assetsk ;FormatNotFoundExceptionj Formati !Collection h AConverterNotFoundExceptiong Factoryf !Definitione Factoryd 'BaseConverterc %ToPdfCommandb )ToLatexCommanda 'ToHtmlCommand` 1BaseConvertCommand_ +ServiceProvider^ Plugin] Parameter\ ?LegacyNamespaceFilterTest[ +ServiceProviderZ 7LegacyNamespaceFilterY GraphX +ServiceProviderW ExtensionV )TraitConverterU %TagConverterT /PropertyConverterS +MethodConverterR 1InterfaceConverterQ /DocBlockConverterP /ConstantConverterO /ArgumentConverter	N Xsl	M XmlL !StatisticsK !SourcecodeJ !PathfinderI FileIoH !CheckstyleG VarTagF UsesTagE ReturnTagD #PropertyTagC ParamTagB MethodTagA !LicenseTag@ #InternalTag? IgnoreTag> CoversTag= AuthorTag< +ServiceProvider; Exception: /ValidatorAbstract9 7ValidationValueObject8 5AreAllArgumentsValid7 3HasSummaryValidator6 !HasSummary*5 UIsReturnTypeNotAnIdeDefaultValidator!4 CIsReturnTypeNotAnIdeDefault)3 SIsParamTypeNotAnIdeDefaultValidator 2 AIsParamTypeNotAnIdeDefault#1 GIsArgumentInDocBlockValidator0 5IsArgumentInDocBlock/ ?DoesParamsExistsValidator. -DoesParamsExists-- [DoesArgumentTypehintMatchParamValidator$, IDoesArgumentTypehintMatchParam)+ SDoesArgumentNameMatchParamValidator * ADoesArgumentNameMatchParam#) GAreAllArgumentsValidValidator( 5AreAllArgumentsValid"' E~HasSingleSubpackageValidator& 3~HasSingleSubpackage% ?~HasSinglePackageValidator$ -~HasSinglePackage'# O~HasPackageWithSubpackageValidator" =~HasPackageWithSubpackage$! I}MissingNameForPartialException  +|ServiceProvider |Partial !|Collection +{ParserPopulator  AzMissingDependencyException 9zFilesNotFoundException %yPreFileEvent +xServiceProvider xParser
 xFile xException 'xConfiguration wFiles %vParseCommand uLogEvent 'uEventAbstract !uDispatcher !uDebugEvent tError 7sUnknownTypeDescriptor   ( hM7zW>nO5lBudN4!








n
[
J
6

						j	O	5	"	kL-	vbC&t`C+
[3T,|K$yQ$P(                %7 KTwig_Node_Expression_Binary_Sub,6 YTwig_Node_Expression_Binary_StartsWith'5 OTwig_Node_Expression_Binary_Range'4 OTwig_Node_Expression_Binary_Power$3 ITwig_Node_Expression_Binary_Or'2 OTwig_Node_Expression_Binary_NotIn*1 UTwig_Node_Expression_Binary_NotEqual%0 KTwig_Node_Expression_Binary_Mul%/ KTwig_Node_Expression_Binary_Mod). STwig_Node_Expression_Binary_Matches+- WTwig_Node_Expression_Binary_LessEqual&, MTwig_Node_Expression_Binary_Less$+ ITwig_Node_Expression_Binary_In.* ]Twig_Node_Expression_Binary_GreaterEqual)) STwig_Node_Expression_Binary_Greater*( UTwig_Node_Expression_Binary_FloorDiv'' OTwig_Node_Expression_Binary_Equal*& UTwig_Node_Expression_Binary_EndsWith%% KTwig_Node_Expression_Binary_Div($ QTwig_Node_Expression_Binary_Concat,# YTwig_Node_Expression_Binary_BitwiseXor+" WTwig_Node_Expression_Binary_BitwiseOr,! YTwig_Node_Expression_Binary_BitwiseAnd%  KTwig_Node_Expression_Binary_And% KTwig_Node_Expression_Binary_Add% KTwig_Node_Expression_AssignName  ATwig_Node_Expression_Array +Twig_Node_Embed %Twig_Node_Do ;Twig_Node_CheckSecurity )Twig_Node_Body =Twig_Node_BlockReference +Twig_Node_Block 5Twig_Node_AutoEscape #Twig_Markup 1Twig_Loader_String 9Twig_Loader_Filesystem /Twig_Loader_Chain /Twig_Loader_Array !Twig_Lexer 'Twig_Function 1Twig_Function_Node 5Twig_Function_Method 9Twig_Function_Function #Twig_Filter
 -Twig_Filter_Node	 1Twig_Filter_Method 5Twig_Filter_Function( QTwig_FileExtensionEscapingStrategy )Twig_Extension! CTwig_Extension_StringLoader 9Twig_Extension_Staging 9Twig_Extension_Sandbox ;Twig_Extension_Profiler =Twig_Extension_Optimizer  9Twig_Extension_Escaper 5Twig_Extension_Debug~ 3Twig_Extension_Core} 7Twig_ExpressionParser| !Twig_Error{ /Twig_Error_Syntaxz 1Twig_Error_Runtimey /Twig_Error_Loaderx -Twig_Environmentw 'Twig_Compilerv +Twig_Cache_Nullu 7Twig_Cache_Filesystemt 5Twig_BaseNodeVisitors +Twig_Autoloaderr +ProjectTestCaseq #TestFileBisp TestFileo !Coverage90n !Coverage80m !Coverage70l #Coverage100k !Coverage10j Coverage0i TestFileh 'AbstractClassg 'SystemCommandf )GitCommandTeste !GitCommandd /ConsoleLoggerTestc 'ConsoleLoggerb PathTest
a Path` 1JobsRepositoryTest_ )JobsRepository^ !RemoteTest] GitTest\ !CommitTest[ Remote	Z GitY Commit+X WRequirementsNotSatisfiedExceptionTest'W ORequirementsNotSatisfiedExceptionV )SourceFileTestU #MetricsTestT %JsonFileTestS !SourceFileR MetricsQ JsonFileP CoverallsO VersionN /CoverallsV1BundleM -ConfiguratorTestL /ConfigurationTestK 9CoverallsConfigurationJ %ConfiguratorI 'Configuration H ACoverallsV1JobsCommandTestG 9CoverallsV1JobsCommandF 5GitInfoCollectorTest$E ICloverXmlCoverageCollectorTestD 9CiEnvVarsCollectorTestC -GitInfoCollector B ACloverXmlCoverageCollectorA 1CiEnvVarsCollector@ JobsTest
? Jobs> %CoverallsApi= +CoverallsBundle< +ApplicationTest; #Application9 !Translator8 +ServiceProvider7 'Configuration6 1RequirementMissing5 )WriterAbstract4 !Collection3 %PathResolver2 Parameter1 Factory0 !Collection!/ CQualifiedNameToUrlConverter   t  e?tL*]6wP)sYA(





r
`
E
$
					]	;	Lu_DgK,uU4~_Fg8	^5# zQ1 !, CTwig_Tests_Loader_ArrayTest+ 5Twig_Tests_LexerTest* ;LegacyTwigTestExtension&) MTwig_Tests_LegacyIntegrationTest( /TwigTestExtension& #TwigTestFoo % ATwig_Tests_IntegrationTest2$ eTwig_Tests_FileExtensionEscapingStrategyTest # ATwig_Tests_FileCachingTest" FooObject&! MTwig_Tests_Extension_SandboxTest#  GTwig_Tests_Extension_CoreTest% KTwig_Tests_ExpressionParserTest 9Twig_Test_EscapingTest =Twig_Tests_ErrorTest_Foo 5Twig_Tests_ErrorTest, YTwig_Tests_EnvironmentTest_NodeVisitor, YTwig_Tests_EnvironmentTest_TokenParser* UTwig_Tests_EnvironmentTest_Extension  ATwig_Tests_EnvironmentTest ;Twig_Tests_CompilerTest ?Twig_Tests_AutoloaderTest# GTwig_Util_TemplateDirIterator$ ITwig_Util_DeprecationCollector -Twig_TokenStream 9Twig_TokenParserBroker -Twig_TokenParser 5Twig_TokenParser_Use  ATwig_TokenParser_Spaceless 5Twig_TokenParser_Set =Twig_TokenParser_Sandbox 9Twig_TokenParser_Macro =Twig_TokenParser_Include
 ;Twig_TokenParser_Import	 3Twig_TokenParser_If 7Twig_TokenParser_From 5Twig_TokenParser_For 9Twig_TokenParser_Flush ;Twig_TokenParser_Filter =Twig_TokenParser_Extends 9Twig_TokenParser_Embed 3Twig_TokenParser_Do 9Twig_TokenParser_Block!  CTwig_TokenParser_AutoEscape !Twig_Token~ Twig_Test} 9Twig_Test_NodeTestCase| )Twig_Test_Node{ -Twig_Test_Method#z GTwig_Test_IntegrationTestCasey 1Twig_Test_Functionx 'Twig_Templatew +Twig_SimpleTestv 3Twig_SimpleFunctionu /Twig_SimpleFilter!t CTwig_Sandbox_SecurityPolicy-s [Twig_Sandbox_SecurityNotAllowedTagError2r eTwig_Sandbox_SecurityNotAllowedFunctionError0q aTwig_Sandbox_SecurityNotAllowedFilterError p ATwig_Sandbox_SecurityErroro 7Twig_Profiler_Profile(n QTwig_Profiler_NodeVisitor_Profiler%m KTwig_Profiler_Node_LeaveProfile%l KTwig_Profiler_Node_EnterProfilek ?Twig_Profiler_Dumper_Textj ?Twig_Profiler_Dumper_Html$i ITwig_Profiler_Dumper_Blackfireh #Twig_Parserg =Twig_NodeVisitor_Sandbox#f GTwig_NodeVisitor_SafeAnalysis e ATwig_NodeVisitor_Optimizerd =Twig_NodeVisitor_Escaperc 1Twig_NodeTraverserb Twig_Nodea )Twig_Node_Text` 3Twig_Node_Spaceless_ /Twig_Node_SetTemp^ 'Twig_Node_Set] =Twig_Node_SandboxedPrint\ /Twig_Node_Sandbox[ +Twig_Node_PrintZ -Twig_Node_ModuleY +Twig_Node_MacroX /Twig_Node_IncludeW -Twig_Node_ImportV %Twig_Node_IfU /Twig_Node_ForLoopT 'Twig_Node_ForS +Twig_Node_FlushR 5Twig_Node_Expression Q ATwig_Node_Expression_Unary$P ITwig_Node_Expression_Unary_Pos$O ITwig_Node_Expression_Unary_Not$N ITwig_Node_Expression_Unary_NegM ?Twig_Node_Expression_Test&L MTwig_Node_Expression_Test_Sameas#K GTwig_Node_Expression_Test_Odd$J ITwig_Node_Expression_Test_Null$I ITwig_Node_Expression_Test_Even+H WTwig_Node_Expression_Test_Divisibleby'G OTwig_Node_Expression_Test_Defined(F QTwig_Node_Expression_Test_Constant#E GTwig_Node_Expression_TempName!D CTwig_Node_Expression_ParentC ?Twig_Node_Expression_Name%B KTwig_Node_Expression_MethodCall"A ETwig_Node_Expression_GetAttr#@ GTwig_Node_Expression_Function!? CTwig_Node_Expression_Filter)> STwig_Node_Expression_Filter_Default-= [Twig_Node_Expression_ExtensionReference#< GTwig_Node_Expression_Constant&; MTwig_Node_Expression_Conditional: ?Twig_Node_Expression_Call)9 STwig_Node_Expression_BlockReference!8 CTwig_Node_Expression_Binary   _  a:o=m;	zRb6


z
I
)

				~	\	1	y[H0 wO/k<
[+
tM&b9rN.jC             ! CTwig_Tests_Grammar_BodyTest" ETwig_Tests_Grammar_ArrayTest&
 MTwig_Tests_Grammar_ArgumentsTest$	 ITwig_Tests_Extension_ArrayTest' OTwig_Extensions_TokenParser_Trans' OTwig_Extensions_TokenParser_Debug' OTwig_Extensions_SimpleTokenParser  ATwig_Extensions_Node_Trans  ATwig_Extensions_Node_Debug ;Twig_Extensions_Grammar! CTwig_Extensions_Grammar_Tag$ ITwig_Extensions_Grammar_Switch&  MTwig_Extensions_Grammar_Optional$ ITwig_Extensions_Grammar_Number"~ ETwig_Extensions_Grammar_Hash(} QTwig_Extensions_Grammar_Expression&| MTwig_Extensions_Grammar_Constant%{ KTwig_Extensions_Grammar_Boolean"z ETwig_Extensions_Grammar_Body#y GTwig_Extensions_Grammar_Array'x OTwig_Extensions_Grammar_Arguments$w ITwig_Extensions_Extension_Text$v ITwig_Extensions_Extension_Intl$u ITwig_Extensions_Extension_I18n%t KTwig_Extensions_Extension_Debug%s KTwig_Extensions_Extension_Array r ATwig_Extensions_Autoloader p ATwig_Tests_TokenStreamTesto =CExtDisablingNodeVisitor-n [Twig_TemplateMagicMethodExceptionObject$m ITwig_TemplateMagicMethodObject&l MTwig_TemplateMethodAndPropObjectk ?Twig_TemplateMethodObject:j uTwig_TemplatePropertyObjectDefinedWithUndefinedValue/i _Twig_TemplatePropertyObjectAndArrayAccess,h YTwig_TemplatePropertyObjectAndIterator!g CTwig_TemplatePropertyObject3f gTwig_TemplateMagicPropertyObjectWithException&e MTwig_TemplateMagicPropertyObject$d ITwig_TemplateArrayAccessObjectc /Twig_TemplateTestb ;Twig_Tests_TemplateTest%a KTwig_Tests_Profiler_ProfileTest)` STwig_Tests_Profiler_Dumper_TextTest)_ STwig_Tests_Profiler_Dumper_HtmlTest.^ ]Twig_Tests_Profiler_Dumper_BlackfireTest-] [Twig_Tests_Profiler_Dumper_AbstractTest\ +TestTokenParser[ !TestParserZ 7Twig_Tests_ParserTest*Y UTwig_Tests_NodeVisitor_OptimizerTestX =Twig_Tests_Node_TextTest#W GTwig_Tests_Node_SpacelessTestV ;Twig_Tests_Node_SetTest!U CTwig_Tests_Node_SandboxTest(T QTwig_Tests_Node_SandboxedPrintTestS ?Twig_Tests_Node_PrintTest R ATwig_Tests_Node_ModuleTestQ ?Twig_Tests_Node_MacroTest!P CTwig_Tests_Node_IncludeTest O ATwig_Tests_Node_ImportTestN 9Twig_Tests_Node_IfTestM ;Twig_Tests_Node_ForTest.L ]Twig_Tests_Node_Expression_Unary_PosTest.K ]Twig_Tests_Node_Expression_Unary_NotTest.J ]Twig_Tests_Node_Expression_Unary_NegTest)I STwig_Tests_Node_Expression_TestTest+H WTwig_Tests_Node_Expression_ParentTest)G STwig_Tests_Node_Expression_NameTest,F YTwig_Tests_Node_Expression_GetAttrTest-E [Twig_Tests_Node_Expression_FunctionTest+D WTwig_Tests_Node_Expression_FilterTest-C [Twig_Tests_Node_Expression_ConstantTest0B aTwig_Tests_Node_Expression_ConditionalTest%A KTwig_Tests_Node_Expression_Call)@ STwig_Tests_Node_Expression_CallTest/? _Twig_Tests_Node_Expression_Binary_SubTest.> ]Twig_Tests_Node_Expression_Binary_OrTest/= _Twig_Tests_Node_Expression_Binary_MulTest/< _Twig_Tests_Node_Expression_Binary_ModTest4; iTwig_Tests_Node_Expression_Binary_FloorDivTest/: _Twig_Tests_Node_Expression_Binary_DivTest29 eTwig_Tests_Node_Expression_Binary_ConcatTest/8 _Twig_Tests_Node_Expression_Binary_AndTest/7 _Twig_Tests_Node_Expression_Binary_AddTest/6 _Twig_Tests_Node_Expression_AssignNameTest*5 UTwig_Tests_Node_Expression_ArrayTest4 9Twig_Tests_Node_DoTest3 ?Twig_Tests_Node_BlockTest(2 QTwig_Tests_Node_BlockReferenceTest$1 ITwig_Tests_Node_AutoEscapeTest$0 ITwig_Tests_NativeExtensionTest&/ MTwig_Tests_Loader_FilesystemTest!. CTwig_Tests_Loader_ChainTest(- QTwig_Test_Loader_TemplateReference   | a9{X0iC}V-|R(




e
>
				{	g	E	#		vWB$|jWC(qQ5 zY9!
rT3~^K4~^;f9                    " EDateTimeToRfc3339Transformer* UDateTimeToLocalizedStringTransformer  ADateTimeToArrayTransformer 5DataTransformerChain =ChoiceToValueTransformer% KChoiceToBooleanArrayTransformer  AChoicesToValuesTransformer& MChoicesToBooleanArrayTransformer   ABooleanToStringTransformer ;BaseDateTimeTransformer~ ;ArrayToPartsTransformer} +RadioListMapper| 1PropertyPathMapper{ 1CheckboxListMapperz 'CoreExtensiony -SimpleChoiceListx -ObjectChoiceListw )LazyChoiceListv !ChoiceListu ;UnexpectedTypeException#t GTransformationFailedExceptions 3StringCastExceptionr -RuntimeExceptionq 5OutOfBoundsExceptionp )LogicException#o GInvalidConfigurationExceptionn =InvalidArgumentExceptionm 7ErrorMappingExceptionl 9BadMethodCallExceptionk ?AlreadySubmittedExceptionj 7AlreadyBoundExceptioni !FormEventsh !ChoiceViewg !ChoiceViewf )ChoiceListViewe +ChoiceGroupViewd ;PropertyAccessDecoratorc =DefaultChoiceListFactoryb ;CachingFactoryDecoratora ;LegacyChoiceListAdapter` )LazyChoiceList_ 1ArrayKeyChoiceList^ +ArrayChoiceList] 3SubmitButtonBuilder\ %SubmitButton[ 3ReversedTransformerZ ;ResolvedFormTypeFactoryY -ResolvedFormTypeX 1PreloadedExtensionW 5NativeRequestHandlerV FormViewU 5FormTypeGuesserChainT FormsS %FormRendererR %FormRegistryQ 1FormFactoryBuilderP #FormFactoryO !FormEventsN FormEventM /FormErrorIteratorL FormErrorK /FormConfigBuilderJ #FormBuilder
I FormH 3CallbackTransformerG 'ButtonBuilderF ButtonE 7AbstractTypeExtensionD %AbstractTypeC 9AbstractRendererEngineB /AbstractExtensionA 'ExtractorTest@ %UrlGenerator? !Filesystem> Extractor&= MTwig_Tests_SimpleTokenParserTest< /SimpleTokenParser; ?Twig_Tests_Node_TransTest: ?Twig_Tests_Node_DebugTest9 #grammarTest 8 ATwig_Tests_Grammar_TagTest%7 KTwig_Tests_Grammar_OptionalTest#6 GTwig_Tests_Grammar_NumberTest'5 OTwig_Tests_Grammar_ExpressionTest%4 KTwig_Tests_Grammar_ConstantTest$3 ITwig_Tests_Grammar_BooleanTest!2 CTwig_Tests_Grammar_BodyTest"1 ETwig_Tests_Grammar_ArrayTest&0 MTwig_Tests_Grammar_ArgumentsTest$/ ITwig_Tests_Extension_ArrayTest'. OTwig_Extensions_TokenParser_Trans'- OTwig_Extensions_TokenParser_Debug', OTwig_Extensions_SimpleTokenParser + ATwig_Extensions_Node_Trans * ATwig_Extensions_Node_Debug) ;Twig_Extensions_Grammar!( CTwig_Extensions_Grammar_Tag$' ITwig_Extensions_Grammar_Switch&& MTwig_Extensions_Grammar_Optional$% ITwig_Extensions_Grammar_Number"$ ETwig_Extensions_Grammar_Hash(# QTwig_Extensions_Grammar_Expression&" MTwig_Extensions_Grammar_Constant%! KTwig_Extensions_Grammar_Boolean"  ETwig_Extensions_Grammar_Body# GTwig_Extensions_Grammar_Array' OTwig_Extensions_Grammar_Arguments$ ITwig_Extensions_Extension_Text$ ITwig_Extensions_Extension_Intl$ ITwig_Extensions_Extension_I18n% KTwig_Extensions_Extension_Debug% KTwig_Extensions_Extension_Array  ATwig_Extensions_Autoloader& MTwig_Tests_SimpleTokenParserTest /SimpleTokenParser ?Twig_Tests_Node_TransTest ?Twig_Tests_Node_DebugTest #grammarTest  ATwig_Tests_Grammar_TagTest% KTwig_Tests_Grammar_OptionalTest# GTwig_Tests_Grammar_NumberTest' OTwig_Tests_Grammar_ExpressionTest% KTwig_Tests_Grammar_ConstantTest$ ITwig_Tests_Grammar_BooleanTest   9 _4eJ5$n\K:'vdQ>)tX9





U
2
					h	G	:	$		{fK.fF&}b?aI)	xU>\.
lO+`9                                   $ IChoicesToValuesTransformerTest$ IBooleanToStringTransformerTest! CBaseDateTimeTransformerTest! CArrayToPartsTransformerTest 9PropertyPathMapperTest
 ?LazyChoiceListInvalidImpl	 1LazyChoiceListImpl! CSimpleNumericChoiceListTest 5SimpleChoiceListTest 5ObjectChoiceListTest- [ObjectChoiceListTest_EntityWithToString 1LazyChoiceListTest )ChoiceListTest 9AbstractChoiceListTest! CPropertyAccessDecoratorTest+  WDefaultChoiceListFactoryTest_Castable" EDefaultChoiceListFactoryTest!~ CCachingFactoryDecoratorTest!} CLegacyChoiceListAdapterTest| 1LazyChoiceListTest{ 9ArrayKeyChoiceListTestz 3ArrayChoiceListTesty 9AbstractChoiceListTestx )SimpleFormTest w ASimpleFormTest_Traversablev =SimpleFormTest_Countableu 5ResolvedFormTypeTestt =NativeRequestHandlerTests -FormRendererTestr -FormRegistryTestq ;FormPerformanceTestCasep ;FormIntegrationTestCaseo +FormFactoryTestn 9FormFactoryBuilderTestm )FormConfigTestl +FormBuilderTestk -CompoundFormTest!j CCompoundFormPerformanceTesti ;CallbackTransformerTesth !ButtonTestg ;AbstractTableLayoutTest f AAbstractRequestHandlerTeste 1AbstractLayoutTestd -AbstractFormTestc /ConcreteExtensionb 7AbstractExtensionTesta 7AbstractDivLayoutTest"` EAbstractBootstrap3LayoutTest_ %TypeTestCase^ ;FormPerformanceTestCase] ;FormIntegrationTestCase\ ;DeprecationErrorHandler[ !ValueGuessZ TypeGuessY GuessX 7ViolationPathIteratorW 'ViolationPathV +ViolationMapperU %RelativePathT #MappingRuleS 5ValidatorTypeGuesserR 1ValidatorExtensionQ %ServerParams"P ESubmitTypeValidatorExtension$O IRepeatedTypeValidatorExtension N AFormTypeValidatorExtensionM 9BaseValidatorExtensionL 1ValidationListenerK 'FormValidator
J FormI =TemplatingRendererEngineH 3TemplatingExtension%G KFormTypeHttpFoundationExtension"F EHttpFoundationRequestHandlerE ;HttpFoundationExtensionD 3BindRequestListener"C EDependencyInjectionExtension B ADataCollectorTypeExtension+A WResolvedTypeFactoryDataCollectorProxy$@ IResolvedTypeDataCollectorProxy? 7DataCollectorListener> /FormDataExtractor= /FormDataCollector< 9DataCollectorExtension; 7FormTypeCsrfExtension: 9CsrfValidationListener9 3SessionCsrfProvider8 3DefaultCsrfProvider7 ;CsrfTokenManagerAdapter6 3CsrfProviderAdapter5 'CsrfExtension4 UrlType3 %TimezoneType2 TimeType1 TextType0 %TextareaType/ !SubmitType. !SearchType- ResetType, %RepeatedType+ RadioType* #PercentType) %PasswordType( !NumberType' MoneyType& !LocaleType% %LanguageType$ #IntegerType# !HiddenType" FormType! FileType  EmailType DateType %DateTimeType %CurrencyType #CountryType )CollectionType !ChoiceType %CheckboxType !ButtonType %BirthdayType BaseType %TrimListener 1ResizeFormListener ;MergeCollectionListener 9FixUrlProtocolListener 7FixRadioInputListener =FixCheckboxInputListener" EValueToDuplicatesTransformer) SPercentToLocalizedStringTransformer( QNumberToLocalizedStringTransformer' OMoneyToLocalizedStringTransformer) SIntegerToLocalizedStringTransformer$
 IDateTimeToTimestampTransformer!	 CDateTimeToStringTransformer    zI o@sJt[9"kV>%






j
U
A
					a	C	}X>nU6s`F(oYG5	|kU8lN6oT9{dL0           3Hour1201Transformer 3Hour1200Transformer +FullTransformer )DayTransformer 5DayOfYearTransformer 5DayOfWeekTransformer
 +AmPmTransformer	 !RingBuffer 5RecursiveArrayAccess 'LocaleScanner# GArrayAccessibleResourceBundle 1ScriptDataProvider 1RegionDataProvider 1LocaleDataProvider 5LanguageDataProvider 5CurrencyDataProvider  3ScriptDataGenerator 3RegionDataGenerator~ 3LocaleDataGenerator} 7LanguageDataGenerator| +GeneratorConfig{ 7CurrencyDataGeneratorz 7AbstractDataGeneratory -
TextBundleWriterx +
PhpBundleWriterw -
JsonBundleWriterv +	PhpBundleReaderu -	JsonBundleReadert -	IntlBundleReaders /	BundleEntryReaderr 5	BufferedBundleReaderq 'GenrbCompilerp Collatoro =VirtualFormAwareIteratorn %ServerParamsm 9OrderedHashMapIteratorl )OrderedHashMapk =InheritDataAwareIteratorj FormUtili 1OrderedHashMapTesth GuessTestg TestGuessf 'TestExtensione 3FooTypeBazExtensiond 3FooTypeBarExtensionc FooType"b EFooSubTypeWithParentInstancea !FooSubType` 3FixedFilterListener_ 5FixedDataTransformer^ 7CustomOptionsResolver] /CustomArrayObject\ !AuthorType[ AuthorZ 1AlternatingRowTypeY )AbstractAuthorX /ViolationPathTestW 3ViolationMapperTest(V Q ValidatorTypeGuesserTest_TestClassU = ValidatorTypeGuesserTestT 9 ValidatorExtensionTestS -ServerParamsTestR %TypeTestCase&Q MSubmitTypeValidatorExtensionTest$P IFormTypeValidatorExtensionTest O ABaseValidatorExtensionTestN 9ValidationListenerTest&M MLegacyFormValidatorLegacyApiTestL /FormValidatorTest"K EFormValidatorPerformanceTest&J MHttpFoundationRequestHandlerTest#I GLegacyBindRequestListenerTest$H IDataCollectorTypeExtensionTestG 7FormDataExtractorTest/F _FormDataExtractorTest_SimpleValueExporterE 7FormDataCollectorTest D ADataCollectorExtensionTestC ?FormTypeCsrfExtensionTest)B SFormTypeCsrfExtensionTest_ChildType A ACsrfValidationListenerTest#@ GLegacySessionCsrfProviderTest#? GLegacyDefaultCsrfProviderTest> #UrlTypeTest= %TypeTestCase< -TimezoneTypeTest; %TimeTypeTest: )SubmitTypeTest9 -RepeatedTypeTest8 -PasswordTypeTest7 )NumberTypeTest6 'MoneyTypeTest5 )LocaleTypeTest4 -LanguageTypeTest3 +IntegerTypeTest2 %FormTypeTest%1 KFormTest_AuthorWithoutRefSetter0 %FileTypeTest/ %DateTypeTest. -DateTimeTypeTest- -CurrencyTypeTest, +CountryTypeTest+ 1CollectionTypeTest* )ChoiceTypeTest) ?ChoiceTypePerformanceTest( -CheckboxTypeTest' )ButtonTypeTest& -BirthdayTypeTest% %BaseTypeTest$ -TrimListenerTest# 9ResizeFormListenerTest!" CMergeCollectionListenerTest2! eMergeCollectionListenerCustomArrayObjectTest&  MMergeCollectionListenerArrayTest, YMergeCollectionListenerArrayObjectTest  AFixUrlProtocolListenerTest ?FixRadioInputListenerTest& MValueToDuplicatesTransformerTest- [PercentToLocalizedStringTransformerTest, YNumberToLocalizedStringTransformerTest+ WMoneyToLocalizedStringTransformerTest- [IntegerToLocalizedStringTransformerTest( QDateTimeToTimestampTransformerTest% KDateTimeToStringTransformerTest& MDateTimeToRfc3339TransformerTest. ]DateTimeToLocalizedStringTransformerTest$ IDateTimeToArrayTransformerTest -DateTimeTestCase =DataTransformerChainTest" EChoiceToValueTransformerTest    }bH, xE`L?0!	w_B-kN%



f
A
						\	>	 	 kO3mM-wV>eN5 dI/kGvBaA(          ).StringUtilTest -.PropertyPathTest ;.PropertyPathBuilderTest0 a.PropertyAccessorTraversableArrayObjectTest 5.PropertyAccessorTest3 g.PropertyAccessorNonTraversableArrayObjectTest$
 I.PropertyAccessorCollectionTest1	 c.PropertyAccessorCollectionTest_CarStructure1 c.PropertyAccessorCollectionTest_CompositeCar9 s.PropertyAccessorCollectionTest_CarNoAdderAndRemover3 g.PropertyAccessorCollectionTest_CarOnlyRemover1 c.PropertyAccessorCollectionTest_CarOnlyAdder( Q.PropertyAccessorCollectionTest_Car! C.PropertyAccessorBuilderTest ?.PropertyAccessorArrayTest% K.PropertyAccessorArrayObjectTest%  K.PropertyAccessorArrayAccessTest 9-TraversableArrayObject~ --Ticket5775Object} /-TestClassSetValue| /-TestClassMagicGet{ 1-TestClassMagicCallz 3-TestClassIsWritabley -TestClassx ?-NonTraversableArrayObjectw !,StringUtilv 5,PropertyPathIteratoru 3,PropertyPathBuildert %,PropertyPaths ;,PropertyAccessorBuilderr -,PropertyAccessorq ),PropertyAccessp ;+UnexpectedTypeExceptiono -+RuntimeExceptionn 5+OutOfBoundsExceptionm ;+NoSuchPropertyExceptionl 5+NoSuchIndexException"k E+InvalidPropertyPathExceptionj =+InvalidArgumentExceptioni ++AccessExceptionh =*OptionsResolver2Dot6Testg /*LegacyOptionsTestf ?*LegacyOptionsResolverTeste +)OptionsResolverd ?(UndefinedOptionsExceptionc ?(OptionDefinitionExceptionb 7(NoSuchOptionExceptiona ;(MissingOptionsException` ;(InvalidOptionsException_ =(InvalidArgumentException^ +(AccessException] 'Version\ ''SvnRepository[ 'SvnCommitZ )'IntlTestHelperY !'IcuVersionX #&VersionTestW )&IcuVersionTestV 3%NumberFormatterTestU 3$NumberFormatterTest!T C$AbstractNumberFormatterTestS !#LocaleTestR !"LocaleTestQ 1"AbstractLocaleTestP +!IntlGlobalsTestO + IntlGlobalsTestN ; AbstractIntlGlobalsTestM 7IntlDateFormatterTestL 7IntlDateFormatterTest#K GAbstractIntlDateFormatterTestJ )RingBufferTestI /LocaleScannerTest H AJsonScriptDataProviderTest G AJsonRegionDataProviderTest F AJsonLocaleDataProviderTest"E EJsonLanguageDataProviderTest"D EJsonCurrencyDataProviderTest$C IAbstractScriptDataProviderTest$B IAbstractRegionDataProviderTest$A IAbstractLocaleDataProviderTest&@ MAbstractLanguageDataProviderTest? =AbstractDataProviderTest&> MAbstractCurrencyDataProviderTest= 5TextBundleWriterTest< 3PhpBundleWriterTest; 5JsonBundleWriterTest: 3PhpBundleReaderTest9 5JsonBundleReaderTest8 5IntlBundleReaderTest7 7BundleEntryReaderTest6 %CollatorTest5 %CollatorTest4 5AbstractCollatorTest3 +NumberFormatter2 Locale1 /IntlDateFormatter0 Collator/ %RegionBundle. %LocaleBundle- )LanguageBundle, )CurrencyBundle+ +NumberFormatter* Locale) Locale
( Intl' #IntlGlobals& ;UnexpectedTypeException% -RuntimeException%$ KResourceBundleNotFoundException# 5OutOfBoundsException" ;NotImplementedException! =MissingResourceException#  GMethodNotImplementedException0 aMethodArgumentValueNotImplementedException+ WMethodArgumentNotImplementedException =InvalidArgumentException 9BadMethodCallException /IntlDateFormatter +YearTransformer #Transformer 3TimeZoneTransformer /SecondTransformer 1QuarterTransformer -MonthTransformer /MinuteTransformer +HourTransformer 3Hour2401Transformer 3Hour2400Transformer   ? zX6
cA$wdH/jP=+iP+	




t
Y
<
					p	Y	E	2			zZ>#	sXG/_@(lG#r]G"mS<$vS+e?                                     # GSTwig_Extensions_Grammar_Array' OSTwig_Extensions_Grammar_Arguments$ ISTwig_Extensions_Extension_Text$ ISTwig_Extensions_Extension_Intl$ ISTwig_Extensions_Extension_I18n$ ISTwig_Extensions_Extension_Date% KSTwig_Extensions_Extension_Array  ASTwig_Extensions_Autoloader 'RTwigExtractor -QTransTokenParser# GQTransDefaultDomainTokenParser 9QTransChoiceTokenParser 5QStopwatchTokenParser 5QFormThemeTokenParser +QDumpTokenParser
 )PTwigEngineTest	 /OTwigExtractorTest =NFormThemeTokenParserTest -MTwigNodeProvider  AMTranslationNodeVisitorTest- [MTranslationDefaultDomainNodeVisitorTest MScopeTest 'LTransNodeTest" ELSearchAndRenderBlockNodeTest 'LFormThemeTest  %LDumpNodeTest )KStubTranslator~ 5KStubFilesystemLoader} =JTranslationExtensionTest| 9JStopwatchExtensionTest{ 5JRoutingExtensionTestz ;JHttpKernelExtensionTest!y CJHttpFoundationExtensionTest"x EJFormExtensionTableLayoutTest w AJFormExtensionDivLayoutTest'v OJFormExtensionBootstrap3LayoutTestu ;JExpressionExtensionTestt /JDumpExtensionTests /JCodeExtensionTestr 1JAssetExtensionTestq +ILintCommandTestp 9HTranslationNodeVisitor)o SHTranslationDefaultDomainNodeVisitorn HScopem GTransNodel 9GTransDefaultDomainNodek 'GStopwatchNodej =GSearchAndRenderBlockNodei +GRenderBlockNodeh 'GFormThemeNodeg +GFormEnctypeNodef GDumpNodee 1FTwigRendererEngined %FTwigRendererc 'EYamlExtensionb 5ETranslationExtensiona 1EStopwatchExtension` /ESecurityExtension_ -ERoutingExtension^ /EProfilerExtension] 1ELogoutUrlExtension\ 3EHttpKernelExtension[ ;EHttpFoundationExtensionZ 'EFormExtensionY 3EExpressionExtensionX 'EDumpExtensionW 'ECodeExtensionV )EAssetExtensionU /DTwigDataCollectorT #CLintCommandS %CDebugCommandR !BTwigEngineQ #BAppVariableP )AUrlMatcherTestO ;ATraceableUrlMatcherTest N AARedirectableUrlMatcherTest M AALegacyApacheUrlMatcherTestL 5@PhpMatcherDumperTest#K G@LegacyApacheMatcherDumperTest J A@DumperPrefixCollectionTestI 5@DumperCollectionTestH 1?YamlFileLoaderTestG /?XmlFileLoaderTestF /?PhpFileLoaderTestE /?ClosureLoaderTestD =?AnnotationFileLoaderTest#C G?AnnotationDirectoryLoaderTestB ??AnnotationClassLoaderTest"A E?AbstractAnnotationLoaderTest@ ->UrlGeneratorTest? 9=PhpGeneratorDumperTest> '<VariadicClass= /;ProjectUrlMatcher< 9:RedirectableUrlMatcher; 3:CustomXmlFileLoader: 9FooClass9 9BarClass8 '9AbstractClass7 8RouteTest6 !8RouterTest5 /8RouteCompilerTest4 38RouteCollectionTest3 18RequestContextTest2 /8CompiledRouteTest1 7RouteTest0 -6PhpMatcherDumper/ '6MatcherDumper. #6DumperRoute- 96DumperPrefixCollection, -6DumperCollection+ 36ApacheMatcherDumper* !5UrlMatcher) 35TraceableUrlMatcher( 95RedirectableUrlMatcher' -5ApacheUrlMatcher& )4YamlFileLoader% '4XmlFileLoader$ '4PhpFileLoader# '4ClosureLoader" 54AnnotationFileLoader! ?4AnnotationDirectoryLoader  74AnnotationClassLoader %3UrlGenerator 12PhpGeneratorDumper +2GeneratorDumper 91RouteNotFoundException ?1ResourceNotFoundException) S1MissingMandatoryParametersException ?1MethodNotAllowedException ?1InvalidParameterException 0Router '0RouteCompiler +0RouteCollection 0Route )0RequestContext '0CompiledRoute /Route   S _:\2lG#\9%p\@#





b
K
+

							h	U	<	)	mZG3# dL,mQ7%dM8 tdM>)ucJ9)fT<!~eS                                 . nEncrypter- -nDecryptException, -mSqlServerGrammar+ 'mSQLiteGrammar* +mPostgresGrammar) %mMySqlGrammar( mGrammar' %lMySqlBuilder& lBuilder% lBlueprint$ 1kSqlServerProcessor# +kSQLiteProcessor" kProcessor! /kPostgresProcessor  )kMySqlProcessor -jSqlServerGrammar 'jSQLiteGrammar +jPostgresGrammar %jMySqlGrammar jGrammar !iJoinClause !iExpression iBuilder hMigrator -hMigrationCreator hMigration! ChDatabaseMigrationRepository gRelation gPivot #gMorphToMany gMorphTo !gMorphPivot )gMorphOneOrMany gMorphOne gMorphMany %gHasOneOrMany
 gHasOne	 )gHasManyThrough gHasMany 'gBelongsToMany gBelongsTo 9fModelNotFoundException fModel ;fMassAssignmentException !fCollection fBuilder  #eSeedCommand +dRollbackCommand~ %dResetCommand} )dRefreshCommand| 1dMigrateMakeCommand{ )dMigrateCommandz )dInstallCommandy #dBaseCommandx 1cSqlServerConnectorw +cSQLiteConnectorv /cPostgresConnectoru )cMySqlConnectort cConnectors /cConnectionFactoryr 3bSqlServerConnectionq -bSQLiteConnectionp 3bSeedServiceProvidero bSeedern )bQueryExceptionm 1bPostgresConnectionl +bMySqlConnectionk =bMigrationServiceProviderj bGrammari ;bDatabaseServiceProviderh +bDatabaseManagerg 1bConnectionResolverf !bConnectione aManagerd `Queuec `Guardb 7`CookieServiceProvidera `CookieJar` _Container _ A_BindingResolutionException^ ^Command] #^Application\ !]Repository[ !]FileLoader$Z I]FileEnvironmentVariablesLoaderY 5]EnvironmentVariablesX %\ClearCommandW #[XCacheStoreV '[WinCacheStoreU [TagSetT #[TaggedCacheS '[TaggableStoreR ![RepositoryQ -[RedisTaggedCacheP ![RedisStoreO )[MemcachedStoreN 1[MemcachedConnectorM [FileStoreL '[DatabaseStoreK 5[CacheServiceProviderJ %[CacheManagerI ![ArrayStoreH ![ApcWrapperG [ApcStoreF ;ZReminderServiceProviderE )ZPasswordBroker D AZDatabaseReminderRepositoryC 7YRemindersTableCommand B AYRemindersControllerCommandA 7YClearRemindersCommand@ XGuard? #XGenericUser> 5XEloquentUserProvider= 5XDatabaseUserProvider< 3XAuthServiceProvider; #XAuthManager: 'WExtractorTest9 %VUrlGenerator8 !UFilesystem7 TExtractor&6 MSTwig_Tests_SimpleTokenParserTest5 /SSimpleTokenParser4 ?STwig_Tests_Node_TransTest3 #SgrammarTest 2 ASTwig_Tests_Grammar_TagTest%1 KSTwig_Tests_Grammar_OptionalTest#0 GSTwig_Tests_Grammar_NumberTest'/ OSTwig_Tests_Grammar_ExpressionTest%. KSTwig_Tests_Grammar_ConstantTest$- ISTwig_Tests_Grammar_BooleanTest!, CSTwig_Tests_Grammar_BodyTest"+ ESTwig_Tests_Grammar_ArrayTest&* MSTwig_Tests_Grammar_ArgumentsTest#) GSTwig_Tests_Extension_TextTest#( GSTwig_Tests_Extension_DateTest$' ISTwig_Tests_Extension_ArrayTest'& OSTwig_Extensions_TokenParser_Trans'% OSTwig_Extensions_SimpleTokenParser $ ASTwig_Extensions_Node_Trans# ;STwig_Extensions_Grammar!" CSTwig_Extensions_Grammar_Tag$! ISTwig_Extensions_Grammar_Switch&  MSTwig_Extensions_Grammar_Optional$ ISTwig_Extensions_Grammar_Number" ESTwig_Extensions_Grammar_Hash( QSTwig_Extensions_Grammar_Expression& MSTwig_Extensions_Grammar_Constant% KSTwig_Extensions_Grammar_Boolean" ESTwig_Extensions_Grammar_Body   ^ zjS:"oW; lO; zhM.{[:






x
d
H
5
 
								f	R	0		n[J8)oS=#zn]N>-}jM1waI1yZL-jRF:*yk^            
S LangR Input
Q HTML
P Hash
O Form
N FileM FacadeL EventK DBJ CryptI CookieH ConfigG CacheF Blade
E AuthD Artisan	C App	B StrA +ServiceProvider@ 3SerializableClosure? !Pluralizer> 9NamespacedItemResolver= !MessageBag< Manager; Fluent: !Collection9 #ClassLoader8 3SessionTableCommand7 9TokenMismatchException6 Store5 9SessionServiceProvider4 )SessionManager3 !Middleware2 1FileSessionHandler1 5CookieSessionHandler0 ;CommandsServiceProvider/ =CacheBasedSessionHandler. %UriValidator- +SchemeValidator, +MethodValidator+ 'HostValidator* 3ControllerGenerator) %UrlGenerator( 9RoutingServiceProvider' Router& +RouteCollection% Route$ !Redirector# ?ControllerServiceProvider" 3ControllerInspector! 5ControllerDispatcher  !Controller 7MakeControllerCommand 'SecLibGateway 7RemoteServiceProvider 'RemoteManager +MultiConnection !Connection 5RedisServiceProvider Database SyncJob SqsJob RedisJob	 Job IronJob 'BeanstalkdJob 9IlluminateQueueClosure ?DatabaseFailedJobProvider #WorkCommand -SubscribeCommand %RetryCommand /ListFailedCommand 'ListenCommand
 3ForgetFailedCommand	 1FlushFailedCommand 1FailedTableCommand '~SyncConnector %~SqsConnector )~RedisConnector '~IronConnector 3~BeanstalkdConnector }Manager |Worker  |SyncQueue |SqsQueue~ !|RedisQueue} 5|QueueServiceProvider| %|QueueManager{ |Queuez |Listenery |IronQueue x A|FailConsoleServiceProviderw +|BeanstalkdQueuev {Presenteru {Paginatort ?{PaginationServiceProviders #{Environmentr 1{BootstrapPresenterq zMessagep 3zMailServiceProvidero zMailern yWriterm 1yLogServiceProviderl xResponsek xRequestj -xRedirectResponsei %xJsonResponseh !xFrameGuardg 3wHtmlServiceProviderf #wHtmlBuildere #wFormBuilderd 3vHashServiceProviderc %vBcryptHasherb uTestCasea uClient` 7tTinkerServiceProvider_ 7tServerServiceProvider^ =tRouteListServiceProvider] =tPublisherServiceProvider\ ;tOptimizeServiceProvider [ AtMaintenanceServiceProvider!Z CtKeyGeneratorServiceProvider#Y GtConsoleSupportServiceProviderX ;tComposerServiceProvider#W GtCommandCreatorServiceProviderV 9tArtisanServiceProviderU 1sViewPublishCommandT sUpCommandS 'sTinkerCommandR #sTailCommandQ %sServeCommandP 'sRoutesCommandO +sOptimizeCommandN 7sMigratePublishCommandM 1sKeyGenerateCommandL 1sEnvironmentCommandK #sDownCommandJ 5sConfigPublishCommandI 1sCommandMakeCommandH 5sClearCompiledCommandG )sChangesCommandF +sAutoloadCommandE 3sAssetPublishCommandD 'rViewPublisherC 1rProviderRepositoryB 1rMigrationPublisherA 3rEnvironmentDetector@ +rConfigPublisher? rComposer> )rAssetPublisher= rArtisan< #rApplication; #rAliasLoader: ?qFilesystemServiceProvider9 !qFilesystem8 7qFileNotFoundException7 +pWhoopsDisplayer6 -pSymfonyDisplayer5 )pPlainDisplayer4 pHandler3 =pExceptionServiceProvider2 !oSubscriber1 5oEventServiceProvider0 !oDispatcher/ ?nEncryptionServiceProvider   l vhYI=1vdN=& }mVF%mWI/pbJ8






{
[
=

 							n	V	@	$	sR>"gD-|aJ7vO<)taF.hO3xaF/~l                      z BelongsToy 9ModelNotFoundExceptionx Modelw ;MassAssignmentExceptionv !Collectionu Buildert #SeedCommands +RollbackCommandr %ResetCommandq )RefreshCommandp 1MigrateMakeCommando )MigrateCommandn )InstallCommandm #BaseCommandl 1SqlServerConnectork +SQLiteConnectorj /PostgresConnectori )MySqlConnectorh Connectorg /ConnectionFactoryf 3SqlServerConnectione -SQLiteConnectiond 3SeedServiceProviderc Seederb )QueryExceptiona 1PostgresConnection` +MySqlConnection_ =MigrationServiceProvider^ Grammar] ;DatabaseServiceProvider\ +DatabaseManager[ 1ConnectionResolverZ !ConnectionY ManagerX QueueW GuardV 7CookieServiceProviderU CookieJarT Container S ABindingResolutionExceptionR CommandQ #ApplicationP !RepositoryO !FileLoader$N IFileEnvironmentVariablesLoaderM 5EnvironmentVariablesL %ClearCommandK #XCacheStoreJ 'WinCacheStoreI TagSetH #TaggedCacheG 'TaggableStoreF !RepositoryE -RedisTaggedCacheD !RedisStoreC )MemcachedStoreB 1MemcachedConnectorA FileStore@ 'DatabaseStore? 5CacheServiceProvider> %CacheManager= !ArrayStore< !ApcWrapper; ApcStore: ;ReminderServiceProvider9 )PasswordBroker 8 ADatabaseReminderRepository7 7RemindersTableCommand 6 ARemindersControllerCommand5 7ClearRemindersCommand4 Guard3 #GenericUser2 5EloquentUserProvider1 5DatabaseUserProvider0 3AuthServiceProvider/ #AuthManager. =MagicConstantVisitorTest- =ClosureFinderVisitorTest, ;SerializableClosureTest+ /ClosureParserTest* 3ClosureLocationTest) 5MagicConstantVisitor( 5ClosureFinderVisitor' 3SerializableClosure& 'ClosureParser% +ClosureLocation$ TestCase# RunTest	" Run! Module  7RouteNotFoundStrategy /ExceptionStrategy 7WhoopsServiceProvider 7WhoopsServiceProvider 9XmlResponseHandlerTest 7PrettyPageHandlerTest ;JsonResponseHandlerTest 1XmlResponseHandler /PrettyPageHandler 3JsonResponseHandler Handler +CallbackHandler 'InspectorTest FrameTest 3FrameCollectionTest Inspector +FrameCollection Frame )ErrorException Exception 'ShallowParser )ReadlineClient
 +ExportInspector	 !EvalWorker 'DumpInspector Config -ColoredInspector /CLIOptionsHandler Boris 'NodeTraverser #FileVisitor !DirVisitor  3AbstractNodeVisitor /PreCompileCommand~ Config} ClassNode| #ClassLoader{ ClassListz #Applicationy =WorkbenchServiceProviderx Starterw )PackageCreatorv Packageu 5WorkbenchMakeCommandt 3ViewServiceProvider
s Viewr )FileViewFinderq #Environmentp PhpEngineo )EngineResolvern Enginem )CompilerEnginel Compilerk 'BladeCompilerj Validatori ?ValidationServiceProviderh Factoryg =DatabasePresenceVerifierf !Translator e ATranslationServiceProviderd !FileLoader
c Viewb Validator	a URL	` SSH_ Session^ Schema] Route\ Response[ RequestZ RedisY RedirectX QueueW PasswordV Paginator
U Mail	T Log   \ |eRB. yiT<&u`P;#wdC3p`I8 





m
P
5

						m	Y	C	1	gD$qUA-vZJ/wiT7$nS8iSC7&zdF3q\               %UrlGenerator 9RoutingServiceProvider Router +RouteCollection Route !Redirector ?ControllerServiceProvider 3ControllerInspector 5ControllerDispatcher !Controller 7MakeControllerCommand 'SecLibGateway 7RemoteServiceProvider 'RemoteManager +MultiConnection !Connection 5RedisServiceProvider Database SyncJob
 SqsJob	 RedisJob	 Job IronJob 'BeanstalkdJob 9IlluminateQueueClosure ?DatabaseFailedJobProvider #WorkCommand -SubscribeCommand %RetryCommand  /ListFailedCommand 'ListenCommand~ 3ForgetFailedCommand} 1FlushFailedCommand| 1FailedTableCommand{ 'SyncConnectorz %SqsConnectory )RedisConnectorx 'IronConnectorw 3BeanstalkdConnectorv Manageru Workert SyncQueues SqsQueuer !RedisQueueq 5QueueServiceProviderp %QueueManagero Queuen Listenerm IronQueue l AFailConsoleServiceProviderk +BeanstalkdQueuej Presenteri Paginatorh ?PaginationServiceProviderg #Environmentf 1BootstrapPresentere Messaged 3MailServiceProviderc Mailerb Writera 1LogServiceProvider` Response_ Request^ -RedirectResponse] %JsonResponse\ !FrameGuard[ 3HtmlServiceProviderZ #HtmlBuilderY #FormBuilderX 3HashServiceProviderW %BcryptHasherV TestCaseU ClientT 7TinkerServiceProviderS 7ServerServiceProviderR =RouteListServiceProviderQ =PublisherServiceProviderP ;OptimizeServiceProvider O AMaintenanceServiceProvider!N CKeyGeneratorServiceProvider#M GConsoleSupportServiceProviderL ;ComposerServiceProvider#K GCommandCreatorServiceProviderJ 9ArtisanServiceProviderI 1ViewPublishCommandH UpCommandG 'TinkerCommandF #TailCommandE %ServeCommandD 'RoutesCommandC +OptimizeCommandB 7MigratePublishCommandA 1KeyGenerateCommand@ 1EnvironmentCommand? #DownCommand> 5ConfigPublishCommand= 1CommandMakeCommand< 5ClearCompiledCommand; )ChangesCommand: +AutoloadCommand9 3AssetPublishCommand8 'ViewPublisher7 1ProviderRepository6 1MigrationPublisher5 3EnvironmentDetector4 +ConfigPublisher3 Composer2 )AssetPublisher1 Artisan0 #Application/ #AliasLoader. ?FilesystemServiceProvider- !Filesystem, 7FileNotFoundException+ +WhoopsDisplayer* -SymfonyDisplayer) )PlainDisplayer( Handler' =ExceptionServiceProvider& !Subscriber% 5EventServiceProvider$ !Dispatcher# ?EncryptionServiceProvider" Encrypter! -DecryptException  -SqlServerGrammar 'SQLiteGrammar +PostgresGrammar %MySqlGrammar Grammar %MySqlBuilder Builder Blueprint 1SqlServerProcessor +SQLiteProcessor Processor /PostgresProcessor )MySqlProcessor -SqlServerGrammar 'SQLiteGrammar +PostgresGrammar %MySqlGrammar Grammar !JoinClause !Expression Builder Migrator
 -MigrationCreator	 Migration! CDatabaseMigrationRepository Relation Pivot #MorphToMany MorphTo !MorphPivot )MorphOneOrMany MorphOne  MorphMany %HasOneOrMany~ HasOne} )HasManyThrough| HasMany{ 'BelongsToMany   Y hH+~jWH8%|n_PB7) pbRA3$scA/







e
H
8
!
							x	[	;	 	zU@,ubVB5&ucK5#	rP7tP6gAa9sY   D /Unit_Net_SSH1TestC ;Unit_Net_SFTPStreamTest#B GUnit_Math_BigInteger_TestCase'A OUnit_Math_BigInteger_InternalTest.@ ]Unit_Math_BigInteger_InternalOpenSSLTest"? EUnit_Math_BigInteger_GMPTest%> KUnit_Math_BigInteger_BCMathTest= =Unit_File_X509_SPKACTest< 9Unit_File_X509_CSRTest; 1Unit_File_ASN1Test : AUnit_Crypt_RSA_LoadKeyTest9 7Unit_Crypt_RandomTest8 =Unit_Crypt_Hash_TestCase 7 AUnit_Crypt_Hash_SHA512Test#6 GUnit_Crypt_Hash_SHA512_96Test 5 AUnit_Crypt_Hash_SHA256Test#4 GUnit_Crypt_Hash_SHA256_96Test3 ;Unit_Crypt_Hash_MD5Test2 ;Unit_Crypt_AES_TestCase1 ?Unit_Crypt_AES_McryptTest!0 CUnit_Crypt_AES_InternalTest/ /PhpseclibTestCase!. CPhpseclibFunctionalTestCase- ;Functional_Net_SSH2Test", EFunctional_Net_SSH2AgentTest&+ MFunctional_Net_SFTPUserStoryTest&* MFunctional_Net_SFTPLargeFileTest)) SFunctional_Net_SCPSSH2UserStoryTest( -System_SSH_Agent' ?System_SSH_Agent_Identity& Net_SSH2% Net_SSH1$ Net_SFTP# +Net_SFTP_Stream" Net_SCP! +Math_BigInteger  File_X509 File_ASN1 /File_ASN1_Element File_ANSI 'Crypt_Twofish +Crypt_TripleDES Crypt_RSA )Crypt_Rijndael Crypt_RC4 Crypt_RC2 !Crypt_Hash Crypt_DES )Crypt_Blowfish !Crypt_Base Crypt_AES %MyArrayStore Bootup
 Utf8 #TurkishUtf8	 Xml !Normalizer Mbstring

 Intl	 Iconv !Normalizer +TestingAidsTest #TestFixture SubTest #StringsTest MyCarbon )StartEndOfTest #SettersTest  %RelativeTest" ENowAndOtherStaticHelpersTest~ IsTest} IssetTest| %InstanceTest{ #GettersTestz -FluidSettersTesty DiffTestx 9DayOfWeekModifiersTestw !CreateTestv 1CreateFromTimeTestu ;CreateFromTimestampTestt 5CreateFromFormatTests 1CreateFromDateTestr CopyTestq 'ConstructTestp )ComparisonTesto AddTestn Carbonm =WorkbenchServiceProviderl Starterk )PackageCreatorj Packagei 5WorkbenchMakeCommandh 3ViewServiceProvider
g Viewf )FileViewFindere #Environmentd PhpEnginec )EngineResolverb Enginea )CompilerEngine` Compiler_ 'BladeCompiler^ Validator] ?ValidationServiceProvider\ Factory[ =DatabasePresenceVerifierZ !Translator Y ATranslationServiceProviderX !FileLoader
W ViewV Validator	U URL	T SSHS SessionR SchemaQ RouteP ResponseO RequestN RedisM RedirectL QueueK PasswordJ Paginator
I Mail	H Log
G LangF Input
E HTML
D Hash
C Form
B FileA Facade@ Event? DB> Crypt= Cookie< Config; Cache: Blade
9 Auth8 Artisan	7 App	6 Str5 +ServiceProvider4 3SerializableClosure3 !Pluralizer2 9NamespacedItemResolver1 !MessageBag0 Manager/ Fluent. !Collection- #ClassLoader, 3SessionTableCommand+ 9TokenMismatchException* Store) 9SessionServiceProvider( )SessionManager' !Middleware& 1FileSessionHandler% 5CookieSessionHandler$ ;CommandsServiceProvider# =CacheBasedSessionHandler" %UriValidator! +SchemeValidator  +MethodValidator 'HostValidator 3ControllerGenerator   e rO*mU?(tY="nL+o[F2





y
f
S
C
0

 							n	[	D	+		 qX= wdQ<oYG4$zWD,	~hQ5"t^K<%yaO?.e                       g /StringGetMultiplef %StringGetBite StringGetd /StringDecrementByc +StringDecrementb #StringBitOpa )StringBitCount` %StringAppend_ 'SetUnionStore^ SetUnion] SetScan\ SetRemove[ +SetRandomMemberZ SetPopY SetMoveX !SetMembersW #SetIsMemberV 5SetIntersectionStoreU +SetIntersectionT 1SetDifferenceStoreS 'SetDifferenceR )SetCardinalityQ SetAddP !ServerTimeO 'ServerSlowlogN 'ServerSlaveOfM )ServerShutdownL %ServerScriptK !ServerSaveJ %ServerObjectI 'ServerMonitorH )ServerLastSaveG )ServerInfoV26xF !ServerInfoE 3ServerFlushDatabaseD )ServerFlushAllC 'ServerEvalSHAB !ServerEvalA 1ServerDatabaseSize@ %ServerConfig? 'ServerCommand> %ServerClient= 5ServerBackgroundSave < AServerBackgroundRewriteAOF; +ScriptedCommand: !RawCommand 9 APubSubUnsubscribeByPattern8 /PubSubUnsubscribe7 =PubSubSubscribeByPattern6 +PubSubSubscribe5 'PubSubPublish4 'PrefixHelpers3 /PrefixableCommand2 ListTrim1 ListSet0 !ListRemove/ ListRange. 'ListPushTailX- %ListPushTail, 'ListPushHeadX+ %ListPushHead!* CListPopLastPushHeadBlocking) 3ListPopLastPushHead( 3ListPopLastBlocking' #ListPopLast& 5ListPopFirstBlocking% %ListPopFirst$ !ListLength# !ListInsert" ListIndex! KeyType  'KeyTimeToLive KeySort KeyScan !KeyRestore /KeyRenamePreserve KeyRename KeyRandom 5KeyPreciseTimeToLive 1KeyPreciseExpireAt -KeyPreciseExpire !KeyPersist KeyMove #KeyKeysV12x KeyKeys #KeyExpireAt KeyExpire KeyExists KeyDump KeyDelete -HyperLogLogMerge -HyperLogLogCount )HyperLogLogAdd
 !HashValues	 +HashSetPreserve +HashSetMultiple HashSet HashScan !HashLength HashKeys 5HashIncrementByFloat +HashIncrementBy +HashGetMultiple  !HashGetAll HashGet~ !HashExists} !HashDelete| -ConnectionSelect{ )ConnectionQuitz )ConnectionPingy )ConnectionEchox )ConnectionAuthw +AbstractCommandv -SortedSetKeyTestu !SetKeyTestt #ListKeyTests %KeyspaceTestr #HashKeyTestq %SortedSetKeyp SetKeyo ListKeyn Keyspacem HashKeyl 3CursorBasedIterator"k ERedisClusterHashStrategyTest#j GPredisClusterHashStrategyTesti =RedisClusterHashStrategyh ?PredisClusterHashStrategyg 1CRC16HashGeneratorf 1KetamaPureRingTeste %HashRingTestd 9EmptyRingExceptionTestc ?PredisDistributorTestCaseb )KetamaPureRinga HashRing` 1EmptyRingException_ 3ServerExceptionTest^ 1ResponseQueuedTest] /ResponseErrorTest\ 3PredisExceptionTest[ #HelpersTest Z ACommunicationExceptionTestY !ClientTestX 3ClientExceptionTestW +ServerExceptionV )ResponseQueuedU 'ResponseErrorT +PredisExceptionS 7NotSupportedExceptionR HelpersQ 9CommunicationExceptionP +ClientExceptionO ClientN !AutoloaderM 9RedisCommandConstraintL )PredisTestCase"K EArrayHasSameValuesConstraint J ASimpleDebuggableConnectionI ;IncrementExistingKeysByH 1HashMultipleGetAllG )EventsListenerF ?NaiveDistributionStrategyE /Unit_Net_SSH2Test   J dR=%s[B'w`G6#xgU> lU>"





t
X
D
-
							j	V	>	*	lUA-a9nZE'mV:mV;kP6}aI2}bJ                        | +StringBitOpTest{ 1StringBitCountTestz -StringAppendTesty %SetUnionTestx /SetUnionStoreTestw #SetScanTestv 'SetRemoveTestu 3SetRandomMemberTestt !SetPopTests #SetMoveTestr )SetMembersTestq +SetIsMemberTestp 3SetIntersectionTesto =SetIntersectionStoreTestn /SetDifferenceTestm 9SetDifferenceStoreTestl 1SetCardinalityTestk !SetAddTestj )ServerTimeTesti /ServerSlowlogTesth /ServerSlaveOfTestg 1ServerShutdownTestf -ServerScriptTeste )ServerSaveTestd -ServerObjectTestc /ServerMonitorTestb 1ServerLastSaveTesta 1ServerInfoV26xTest` )ServerInfoTest_ ;ServerFlushDatabaseTest^ 1ServerFlushAllTest] )ServerEvalTest\ /ServerEvalSHATest[ 9ServerDatabaseSizeTestZ -ServerConfigTestY /ServerCommandTestX -ServerClientTestW =ServerBackgroundSaveTest$V IServerBackgroundRewriteAOFTestU 3ScriptedCommandTestT )RawCommandTestS 7PubSubUnsubscribeTest$R IPubSubUnsubscribeByPatternTestQ 3PubSubSubscribeTest"P EPubSubSubscribeByPatternTestO /PubSubPublishTestN /PrefixHelpersTestM 7PrefixableCommandTestL %ListTrimTestK #ListSetTestJ )ListRemoveTestI 'ListRangeTestH /ListPushTailXTestG -ListPushTailTestF /ListPushHeadXTestE -ListPushHeadTestD +ListPopLastTestC ;ListPopLastPushHeadTest%B KListPopLastPushHeadBlockingTestA ;ListPopLastBlockingTest@ -ListPopFirstTest? =ListPopFirstBlockingTest> )ListLengthTest= )ListInsertTest< 'ListIndexTest; #KeyTypeTest: /KeyTimeToLiveTest9 #KeySortTest8 #KeyScanTest7 )KeyRestoreTest6 'KeyRenameTest5 7KeyRenamePreserveTest4 'KeyRandomTest3 =KeyPreciseTimeToLiveTest2 5KeyPreciseExpireTest1 9KeyPreciseExpireAtTest0 )KeyPersistTest/ #KeyMoveTest. +KeyKeysV12xTest- #KeyKeysTest, 'KeyExpireTest+ +KeyExpireAtTest* 'KeyExistsTest) #KeyDumpTest( 'KeyDeleteTest' 5HyperLogLogMergeTest& 5HyperLogLogCountTest% 1HyperLogLogAddTest$ )HashValuesTest# #HashSetTest" 3HashSetPreserveTest! 3HashSetMultipleTest  %HashScanTest )HashLengthTest %HashKeysTest 3HashIncrementByTest =HashIncrementByFloatTest #HashGetTest 3HashGetMultipleTest )HashGetAllTest )HashExistsTest )HashDeleteTest 5ConnectionSelectTest 1ConnectionQuitTest 1ConnectionPingTest 1ConnectionEchoTest 1ConnectionAuthTest #CommandTest 7PredisCommandTestCase )ZSetUnionStore ZSetScore ZSetScan +ZSetReverseRank ;ZSetReverseRangeByScore
 -ZSetReverseRange	 9ZSetRemoveRangeByScore 7ZSetRemoveRangeByRank 5ZSetRemoveRangeByLex !ZSetRemove ZSetRank -ZSetRangeByScore )ZSetRangeByLex ZSetRange %ZSetLexCount  7ZSetIntersectionStore +ZSetIncrementBy~ ZSetCount} +ZSetCardinality| ZSetAdd{ -TransactionWatchz 1TransactionUnwatchy -TransactionMultix +TransactionExecw 1TransactionDiscardv %StringSubstru %StringStrlent )StringSetRanges /StringSetPreserver ?StringSetMultiplePreserveq /StringSetMultiplep +StringSetExpireo %StringSetBitn StringSetm 9StringPreciseSetExpirel 9StringIncrementByFloatk /StringIncrementByj +StringIncrementi %StringGetSeth )StringGetRange   ( t[E"jL.sT7#bL7y]H2





m
Q
7
						y	`	?	vP6 fC,jP; xZA#	hJ.kS9uY=pO(                $ IResponseMultiBulkStreamHandler =ResponseMultiBulkHandler 9ResponseIntegerHandler 5ResponseErrorHandler  3ResponseBulkHandler 9ComposableTextProtocol~ 7ProtocolExceptionTest} /ProtocolException| 7ServerVersionNextTest{ 3ServerVersion30Testz 3ServerVersion28Testy 3ServerVersion26Testx 3ServerVersion24Testw 3ServerVersion22Testv 3ServerVersion20Testu 3ServerVersion12Testt /ServerProfileTests 7PredisProfileTestCaser /ServerVersionNextq +ServerVersion30p +ServerVersion28o +ServerVersion26n +ServerVersion24m +ServerVersion22l +ServerVersion20k +ServerVersion12j 'ServerProfilei 5StandardExecutorTesth 3PipelineContextTestg 7MultiExecExecutorTestf 5ResponseIteratorStube ?FireAndForgetExecutorTestd -StandardExecutorc %SafeExecutorb 3SafeClusterExecutora +PipelineContext` /MultiExecExecutor_ 7FireAndForgetExecutor^ -CustomOptionTest] 7ClientReplicationTest\ /ClientProfileTest[ -ClientPrefixTestZ /ClientOptionsTestY 5ClientExceptionsTest!X CClientConnectionFactoryTestW /ClientClusterTestV 1AbstractOptionTestU %CustomOptionT /ClientReplicationS 'ClientProfileR %ClientPrefixQ 'ClientOptionsP -ClientExceptionsO ;ClientConnectionFactoryN 'ClientClusterM )AbstractOptionL 1MonitorContextTestK )MonitorContext J AMultiBulkResponseTupleTest!I CMultiBulkResponseSimpleTestH 9MultiBulkResponseTupleG ;MultiBulkResponseSimpleF /MultiBulkResponseE 5WebdisConnectionTestD 5StreamConnectionTestC -RedisClusterTestB /PredisClusterTest#A GPhpiredisStreamConnectionTest@ ;PhpiredisConnectionTest ? AMasterSlaveReplicationTest> =ConnectionParametersTest= 7ConnectionFactoryTest< ;ConnectionExceptionTest$; IComposableStreamConnectionTest: =PredisConnectionTestCase9 -WebdisConnection8 -StreamConnection7 %RedisCluster6 'PredisCluster5 ?PhpiredisStreamConnection4 3PhpiredisConnection3 9MasterSlaveReplication2 5ConnectionParameters1 /ConnectionFactory0 3ConnectionException / AComposableStreamConnection. 1AbstractConnection- 1ProcessorChainTest, 9KeyPrefixProcessorTest+ )ProcessorChain* 1KeyPrefixProcessor) 1ZSetUnionStoreTest( 'ZSetScoreTest' %ZSetScanTest& 3ZSetReverseRankTest% 5ZSetReverseRangeTest!$ CZSetReverseRangeByScoreTest# )ZSetRemoveTest " AZSetRemoveRangeByScoreTest! ?ZSetRemoveRangeByRankTest  =ZSetRemoveRangeByLexTest %ZSetRankTest 'ZSetRangeTest 5ZSetRangeByScoreTest 1ZSetRangeByLexTest -ZSetLexCountTest ?ZSetIntersectionStoreTest 3ZSetIncrementByTest 'ZSetCountTest 3ZSetCardinalityTest #ZSetAddTest 5TransactionWatchTest 9TransactionUnwatchTest 5TransactionMultiTest 3TransactionExecTest 9TransactionDiscardTest -StringSubstrTest -StringStrlenTest 'StringSetTest 1StringSetRangeTest 7StringSetPreserveTest 7StringSetMultipleTest#
 GStringSetMultiplePreserveTest	 3StringSetExpireTest -StringSetBitTest  AStringPreciseSetExpireTest 3StringIncrementTest 7StringIncrementByTest  AStringIncrementByFloatTest 'StringGetTest -StringGetSetTest 1StringGetRangeTest  7StringGetMultipleTest -StringGetBitTest~ 3StringDecrementTest} 7StringDecrementByTest   n qQ0y`A#nL3vfH6uM



O
					m	I	)	h=[7}aG1m:^-Z+qP,X5                                       'r OSwift_Plugins_Loggers_ArrayLogger q ASwift_Plugins_LoggerPlugin%p KSwift_Plugins_ImpersonatePlugin#o GSwift_Plugins_DecoratorPlugin*n USwift_Plugins_BandwidthMonitorPlugin#m GSwift_Plugins_AntiFloodPluginl 3Swift_NullTransportk )Swift_MimePart!j CSwift_Mime_SimpleMimeEntityi =Swift_Mime_SimpleMessage h ASwift_Mime_SimpleHeaderSet$g ISwift_Mime_SimpleHeaderFactoryf 3Swift_Mime_MimePart+e WSwift_Mime_Headers_UnstructuredHeader#d GSwift_Mime_Headers_PathHeader,c YSwift_Mime_Headers_ParameterizedHeader'b OSwift_Mime_Headers_OpenDKIMHeader&a MSwift_Mime_Headers_MailboxHeader-` [Swift_Mime_Headers_IdentificationHeader#_ GSwift_Mime_Headers_DateHeader'^ OSwift_Mime_Headers_AbstractHeader.] ]Swift_Mime_HeaderEncoder_QpHeaderEncoder2\ eSwift_Mime_HeaderEncoder_Base64HeaderEncoder[ 1Swift_Mime_GrammarZ ;Swift_Mime_EmbeddedFile1Y cSwift_Mime_ContentEncoder_RawContentEncoder5X kSwift_Mime_ContentEncoder_QpContentEncoderProxy0W aSwift_Mime_ContentEncoder_QpContentEncoder3V gSwift_Mime_ContentEncoder_PlainContentEncoder6U mSwift_Mime_ContentEncoder_NativeQpContentEncoder4T iSwift_Mime_ContentEncoder_Base64ContentEncoderS 7Swift_Mime_AttachmentR 'Swift_MessageQ /Swift_MemorySpoolP 3Swift_MailTransportO %Swift_Mailer)N SSwift_Mailer_ArrayRecipientIterator!M CSwift_LoadBalancedTransport.L ]Swift_KeyCache_SimpleKeyCacheInputStream!K CSwift_KeyCache_NullKeyCache!J CSwift_KeyCache_DiskKeyCache"I ESwift_KeyCache_ArrayKeyCacheH /Swift_IoExceptionG #Swift_ImageF +Swift_FileSpoolE ;Swift_FailoverTransport*D USwift_Events_TransportExceptionEvent'C OSwift_Events_TransportChangeEvent(B QSwift_Events_SimpleEventDispatcherA 9Swift_Events_SendEvent @ ASwift_Events_ResponseEvent? =Swift_Events_EventObject> ?Swift_Events_CommandEvent= )Swift_Encoding"< ESwift_Encoder_Rfc2231Encoder; ;Swift_Encoder_QpEncoder!: CSwift_Encoder_Base64Encoder9 1Swift_EmbeddedFile8 ?Swift_DependencyException7 ?Swift_DependencyContainer6 ;Swift_ConfigurableSpool-5 [Swift_CharacterStream_NgCharacterStream04 aSwift_CharacterStream_ArrayCharacterStream?3 Swift_CharacterReaderFactory_SimpleCharacterReaderFactory&2 MSwift_CharacterReader_Utf8Reader)1 SSwift_CharacterReader_UsAsciiReader30 gSwift_CharacterReader_GenericFixedWidthReader./ ]Swift_ByteStream_TemporaryFileByteStream%. KSwift_ByteStream_FileByteStream&- MSwift_ByteStream_ArrayByteStream4, iSwift_ByteStream_AbstractFilterableInputStream+ -Swift_Attachment* Append) 5SilexApplicationTest( 3TerminableKernelSpy' KernelSpy& 7StackedHttpKernelTest% AppendB$ AppendA# Append" 5TerminableHttpKernel! #BuilderTest  /StackedHttpKernel Builder 5MultiExecContextTest# GAbortedMultiExecExceptionTest -MultiExecContext ?AbortedMultiExecException )SessionHandler ;ReplicationStrategyTest 3ReplicationStrategy /PubSubContextTest 1DispatcherLoopTest 'PubSubContext )DispatcherLoop 7AbstractPubSubContext 9TextResponseReaderTest -TextProtocolTest ?TextCommandSerializerTest ?ResponseStatusHandlerTest( QResponseMultiBulkStreamHandlerTest" EResponseMultiBulkHandlerTest  AResponseIntegerHandlerTest =ResponseErrorHandlerTest
 ;ResponseBulkHandlerTest 	 AComposableTextProtocolTest 1TextResponseReader %TextProtocol 7TextCommandSerializer 7ResponseStatusHandler   ]  a9{V6pSb*Q' 



\
2
					v	O	o=R.t/|R#v;qX?&|dF,
dF%	                           *O USwift_ByteStream_ArrayByteStreamTestN 3SwiftMailerTestCaseM =SwiftMailerSmokeTestCaseL 7Swift_StreamCollector(K QSwift_Smoke_InternationalSmokeTest-J [Swift_Smoke_HtmlWithAttachmentSmokeTest I ASwift_Smoke_BasicSmokeTest%H KSwift_Smoke_AttachmentSmokeTestG ?IdenticalBinaryConstraintF /MimeEntityFixtureE 7EsmtpTransportFixtureD +Swift_Bug76TestC +Swift_Bug71TestB -Swift_Bug534TestA +Swift_Bug51Test@ -Swift_Bug518Test? +Swift_Bug38Test> +Swift_Bug35Test= +Swift_Bug34Test< -Swift_Bug274Test; -Swift_Bug206Test: -Swift_Bug118Test9 -Swift_Bug111Test:8 uSwift_Transport_StreamBuffer_TlsSocketAcceptanceTest:7 uSwift_Transport_StreamBuffer_SslSocketAcceptanceTest46 iSwift_Transport_StreamBuffer_SocketTimeoutTest85 qSwift_Transport_StreamBuffer_ProcessAcceptanceTest<4 ySwift_Transport_StreamBuffer_BasicSocketAcceptanceTestF3 Swift_Transport_StreamBuffer_AbstractStreamBufferAcceptanceTest"2 ESwift_MimePartAcceptanceTest,1 YSwift_Mime_SimpleMessageAcceptanceTest'0 OSwift_Mime_MimePartAcceptanceTestA/ Swift_Mime_HeaderEncoder_Base64HeaderEncoderAcceptanceTest+. WSwift_Mime_EmbeddedFileAcceptanceTest>- }Swift_Mime_ContentEncoder_QpContentEncoderAcceptanceTestB, Swift_Mime_ContentEncoder_PlainContentEncoderAcceptanceTestE+ 	Swift_Mime_ContentEncoder_NativeQpContentEncoderAcceptanceTestC* Swift_Mime_ContentEncoder_Base64ContentEncoderAcceptanceTest)) SSwift_Mime_AttachmentAcceptanceTest!( CSwift_MessageAcceptanceTest/' _Swift_KeyCache_DiskKeyCacheAcceptanceTest0& aSwift_KeyCache_ArrayKeyCacheAcceptanceTest"% ESwift_EncodingAcceptanceTest0$ aSwift_Encoder_Rfc2231EncoderAcceptanceTest+# WSwift_Encoder_QpEncoderAcceptanceTest/" _Swift_Encoder_Base64EncoderAcceptanceTest&! MSwift_EmbeddedFileAcceptanceTest-  [Swift_DependencyContainerAcceptanceTestN Swift_CharacterReaderFactory_SimpleCharacterReaderFactoryAcceptanceTest3 gSwift_ByteStream_FileByteStreamAcceptanceTest$ ISwift_AttachmentAcceptanceTest Swift )Swift_Validate =Swift_TransportException" ESwift_Transport_StreamBuffer$ ISwift_Transport_SpoolTransport' OSwift_Transport_SimpleMailInvoker' OSwift_Transport_SendmailTransport# GSwift_Transport_NullTransport# GSwift_Transport_MailTransport+ WSwift_Transport_LoadBalancedTransport' OSwift_Transport_FailoverTransport$ ISwift_Transport_EsmtpTransport' OSwift_Transport_Esmtp_AuthHandler5 kSwift_Transport_Esmtp_Auth_XOAuth2Authenticator3 gSwift_Transport_Esmtp_Auth_PlainAuthenticator2 eSwift_Transport_Esmtp_Auth_NTLMAuthenticator3 gSwift_Transport_Esmtp_Auth_LoginAuthenticator5 kSwift_Transport_Esmtp_Auth_CramMd5Authenticator+
 WSwift_Transport_AbstractSmtpTransport	 5Swift_SwiftException8 qSwift_StreamFilters_StringReplacementFilterFactory1 cSwift_StreamFilters_StringReplacementFilter4 iSwift_StreamFilters_ByteArrayReplacementFilter 5Swift_SpoolTransport 3Swift_SmtpTransport ?Swift_Signers_SMimeSigner" ESwift_Signers_OpenDKIMSigner# GSwift_Signers_DomainKeySigner  =Swift_Signers_DKIMSigner 3Swift_SignedMessage~ ;Swift_SendmailTransport"} ESwift_RfcComplianceException| /Swift_Preferences#{ GSwift_Plugins_ThrottlerPlugin*z USwift_Plugins_Reporters_HtmlReporter)y SSwift_Plugins_Reporters_HitReporter"x ESwift_Plugins_ReporterPlugin%w KSwift_Plugins_RedirectingPlugin'v OSwift_Plugins_PopBeforeSmtpPlugin%u KSwift_Plugins_Pop_Pop3Exception!t CSwift_Plugins_MessageLogger&s MSwift_Plugins_Loggers_EchoLogger   f  i2& e@h?
}[ R



_
5
				l	D	j=Y/
A	o5X-uL=.p\G3s\F*       5 7ConsoleTerminateEvent4 7ConsoleExceptionEvent3 %ConsoleEvent2 3ConsoleCommandEvent1 'XmlDescriptor0 )TextDescriptor/ 1MarkdownDescriptor. )JsonDescriptor- !Descriptor, 9ApplicationDescription+ #ListCommand* #HelpCommand) Command( Shell' 'ConsoleEvents& #Application% % ResponseTest$ # RequestTest# # HistoryTest" ! CookieTest! ' CookieJarTest  ! ClientTest ! TestClient + SpecialResponse Response Request History CookieJar Cookie Client& MSwift_Transport_StreamBufferTest+ WSwift_Transport_SendmailTransportTest' OSwift_Transport_MailTransportTest/ _Swift_Transport_LoadBalancedTransportTest+ WSwift_Transport_FailoverTransportTest( QSwift_Transport_EsmtpTransportTest9 sSwift_Transport_EsmtpTransport_ExtensionSupportTest+ WSwift_Transport_Esmtp_AuthHandlerTest7 oSwift_Transport_Esmtp_Auth_PlainAuthenticatorTest6 mSwift_Transport_Esmtp_Auth_NTLMAuthenticatorTest7 oSwift_Transport_Esmtp_Auth_LoginAuthenticatorTest9 sSwift_Transport_Esmtp_Auth_CramMd5AuthenticatorTest& MSwift_Transport_AbstractSmtpTest2
 eSwift_Transport_AbstractSmtpEventSupportTest5	 kSwift_StreamFilters_StringReplacementFilterTest< ySwift_StreamFilters_StringReplacementFilterFactoryTest8 qSwift_StreamFilters_ByteArrayReplacementFilterTest# GSwift_Signers_SMimeSignerTest& MSwift_Signers_OpenDKIMSignerTest" ESwift_Signers_DKIMSignerTest' OSwift_Plugins_ThrottlerPluginTest. ]Swift_Plugins_Reporters_HtmlReporterTest- [Swift_Plugins_Reporters_HitReporterTest&  MSwift_Plugins_ReporterPluginTest) SSwift_Plugins_RedirectingPluginTest+~ WSwift_Plugins_PopBeforeSmtpPluginTest*} USwift_Plugins_Loggers_EchoLoggerTest+| WSwift_Plugins_Loggers_ArrayLoggerTest${ ISwift_Plugins_LoggerPluginTest'z OSwift_Plugins_DecoratorPluginTest.y ]Swift_Plugins_BandwidthMonitorPluginTest'x OSwift_Plugins_AntiFloodPluginTest%w KSwift_Mime_SimpleMimeEntityTest"v ESwift_Mime_SimpleMessageTest$u ISwift_Mime_SimpleHeaderSetTest(t QSwift_Mime_SimpleHeaderFactoryTests ;Swift_Mime_MimePartTest/r _Swift_Mime_Headers_UnstructuredHeaderTest'q OSwift_Mime_Headers_PathHeaderTest0p aSwift_Mime_Headers_ParameterizedHeaderTest*o USwift_Mime_Headers_MailboxHeaderTest1n cSwift_Mime_Headers_IdentificationHeaderTest'm OSwift_Mime_Headers_DateHeaderTest2l eSwift_Mime_HeaderEncoder_QpHeaderEncoderTest6k mSwift_Mime_HeaderEncoder_Base64HeaderEncoderTest!j CSwift_Mime_EmbeddedFileTest4i iSwift_Mime_ContentEncoder_QpContentEncoderTest7h oSwift_Mime_ContentEncoder_PlainContentEncoderTest8g qSwift_Mime_ContentEncoder_Base64ContentEncoderTestf ?Swift_Mime_AttachmentTest'e OSwift_Mime_AbstractMimeEntityTestd /Swift_MessageTestc -Swift_MailerTest-b [Swift_Mailer_ArrayRecipientIteratorTest2a eSwift_KeyCache_SimpleKeyCacheInputStreamTest&` MSwift_KeyCache_ArrayKeyCacheTest._ ]Swift_Events_TransportExceptionEventTest+^ WSwift_Events_TransportChangeEventTest,] YSwift_Events_SimpleEventDispatcherTest \ ASwift_Events_SendEventTest$[ ISwift_Events_ResponseEventTest"Z ESwift_Events_EventObjectTest#Y GSwift_Events_CommandEventTest&X MSwift_Encoder_Rfc2231EncoderTest!W CSwift_Encoder_QpEncoderTest%V KSwift_Encoder_Base64EncoderTest#U GSwift_DependencyContainerTest	T One4S iSwift_CharacterStream_ArrayCharacterStreamTest*R USwift_CharacterReader_Utf8ReaderTest-Q [Swift_CharacterReader_UsAsciiReaderTest7P oSwift_CharacterReader_GenericFixedWidthReaderTest   W {cTB)u^H5&kL1s_K5"tS7





r
V
>
,
							l	X	7		vaP;(teVH4 
fL6nR7qY?!
iS6#hL3tW                       Q 5&ExceptionHandlerTestP -&ErrorHandlerTestO #&ClassLoaderN 5&DebugClassLoaderTest(M Q%UndefinedFunctionFatalErrorHandler$L I%ClassNotFoundFatalErrorHandler K A$UndefinedFunctionExceptionJ -$FlattenExceptionI 3$FatalErrorExceptionH )$DummyExceptionG 7$ContextErrorExceptionF 9$ClassNotFoundExceptionE -#ExceptionHandlerD %#ErrorHandlerC -#DebugClassLoaderB #DebugA "XPathExpr@ !"Translator? 5!PseudoClassExtension> '!NodeExtension= '!HtmlExtension< /!FunctionExtension; 5!CombinationExtension : A!AttributeMatchingExtension9 /!AbstractExtension8 ) TranslatorTest7 )HashParserTest6 7EmptyStringParserTest5 /ElementParserTest4 +ClassParserTest3 +TokenStreamTest2 !ReaderTest1 !ParserTest0 7WhitespaceHandlerTest/ /StringHandlerTest. /NumberHandlerTest- 7IdentifierHandlerTest, +HashHandlerTest+ 1CommentHandlerTest* 3AbstractHandlerTest) +SpecificityTest( -SelectorNodeTest' )PseudoNodeTest& -NegationNodeTest% %HashNodeTest$ -FunctionNodeTest# +ElementNodeTest" =CombinedSelectorNodeTest! 'ClassNodeTest  /AttributeNodeTest -AbstractNodeTest +CssSelectorTest /TokenizerPatterns /TokenizerEscaping Tokenizer !HashParser /EmptyStringParser 'ElementParser #ClassParser #TokenStream Token Reader Parser /WhitespaceHandler 'StringHandler 'NumberHandler /IdentifierHandler #HashHandler )CommentHandler #Specificity %SelectorNode
 !PseudoNode	 %NegationNode HashNode %FunctionNode #ElementNode 5CombinedSelectorNode ClassNode 'AttributeNode %AbstractNode 5SyntaxErrorException  )ParseException 9InternalErrorException~ =ExpressionErrorException} #CssSelector| /CommandTesterTest{ 7ApplicationTesterTestz -StreamOutputTesty !TestOutputx !OutputTestw )NullOutputTestv /ConsoleOutputTestu +StringInputTestt InputTests +InputOptionTestr 3InputDefinitionTestq /InputArgumentTestp )ArrayInputTesto 'ArgvInputTestn +TableHelperTestm 1ProgressHelperTestl 'HelperSetTestk 3FormatterHelperTestj -DialogHelperTesti 3OutputFormatterTesth =OutputFormatterStyleTest#g GOutputFormatterStyleStackTestf 1DescriptorCommand2e 1DescriptorCommand1d 9DescriptorApplication2c 9DescriptorApplication1b #TestCommanda !FooCommand` 'FoobarCommand_ #Foo5Command^ #Foo4Command] #Foo3Command\ #Foo2Command[ #Foo1CommandZ 'BarBucCommandY /XmlDescriptorTestX 1TextDescriptorTestW +ObjectsProviderV 9MarkdownDescriptorTestU 1JsonDescriptorTestT 9AbstractDescriptorTestS +ListCommandTestR +HelpCommandTestQ #CommandTestP /
CustomApplicationO +
ApplicationTestN '	CommandTesterM /	ApplicationTesterL %StreamOutputK OutputJ !NullOutputI 'ConsoleOutputH )BufferedOutputG #StringInputF #InputOptionE +InputDefinitionD 'InputArgumentC InputB !ArrayInputA ArgvInput@ #TableHelper? )ProgressHelper> -InputAwareHelper= HelperSet< Helper; +FormatterHelper: %DialogHelper9 -DescriptorHelper8 ?OutputFormatterStyleStack7 5OutputFormatterStyle6 +OutputFormatter   7 l3 hTC2{_H1wR?2$oM.




}
]
D
4
&
							q	\	A	.	sP6ya:rU@'jQA*mM5(nY:cH.}gS7             b 3ESessionHandlerProxya #ENativeProxy` 'EAbstractProxy_ ;DPhpBridgeSessionStorage^ 5DNativeSessionStorage] 9DMockFileSessionStorage\ ;DMockArraySessionStorage[ #DMetadataBagZ =CWriteCheckSessionHandlerY /CPdoSessionHandlerX 1CNullSessionHandlerW 5CNativeSessionHandlerV =CNativeFileSessionHandlerU 7CMongoDbSessionHandlerT 9CMemcacheSessionHandlerS ;CMemcachedSessionHandlerR BSessionQ AFlashBagP 1AAutoExpireFlashBagO 9@NamespacedAttributeBagN %@AttributeBagM ?FakeFileL +>MimeTypeGuesserK =>MimeTypeExtensionGuesserJ ;>FileinfoMimeTypeGuesserI ?>FileBinaryMimeTypeGuesserH ->ExtensionGuesserG %=UploadedFile
F =FileE +<UploadExceptionD ;<UnexpectedTypeExceptionC 7<FileNotFoundExceptionB '<FileExceptionA 7<AccessDeniedException@ -;StreamedResponse? ;ServerBag> /;ResponseHeaderBag= ;Response< %;RequestStack; );RequestMatcher: ;Request9 -;RedirectResponse8 %;ParameterBag7 %;JsonResponse6 ;IpUtils5 ;HeaderBag4 ;FileBag3 =;ExpressionRequestMatcher2 ;Cookie1 1;BinaryFileResponse0 ';ApacheRequest/ -;AcceptHeaderItem. %;AcceptHeader- 5:SortableIteratorTest, /:InnerSizeIterator!+ C:SizeRangeFilterIteratorTest$* I:RecursiveDirectoryIteratorTest) 5:RealIteratorTestCase( 9:PathFilterIteratorTest$' I:TestMultiplePcreFilterIterator$& I:MultiplePcreFilterIteratorTest% +:MockSplFileInfo$ 5:MockFileListIterator# -:IteratorTestCase" :Iterator! 1:FilterIteratorTest  /:InnerTypeIterator  A:FileTypeFilterIteratorTest 7:FilePathsIteratorTest /:InnerNameIterator  A:FilenameFilterIteratorTest# G:FilecontentFilterIteratorTest( Q:ExcludeDirectoryFilterIteratorTest" E:DepthRangeFilterIteratorTest! C:DateRangeFilterIteratorTest =:CustomFilterIteratorTest !9FinderTest 18UnsupportedAdapter %8NamedAdapter )8FailingAdapter %8DummyAdapter 7RegexTest 7GlobTest )7ExpressionTest 56NumberComparatorTest 16DateComparatorTest )6ComparatorTest 5Shell
 5Command	 -4SortableIterator ;4SizeRangeFilterIterator  A4RecursiveDirectoryIterator 14PathFilterIterator  A4MultiplePcreFilterIterator )4FilterIterator 94FileTypeFilterIterator /4FilePathsIterator 94FilenameFilterIterator  ?4FilecontentFilterIterator$ I4ExcludeDirectoryFilterIterator~ =4DepthRangeFilterIterator} ;4DateRangeFilterIterator| 54CustomFilterIterator{ #3SplFileInfo
z 3Globy 3Finderx 2Regex
w 2Globv !2Expression"u E1ShellCommandFailureException#t G1OperationNotPermitedExceptions ;1AdapterFailureExceptionr 71AccessDeniedExceptionq -0NumberComparatorp )0DateComparatoro !0Comparatorn !/PhpAdapterm )/GnuFindAdapterl )/BsdFindAdapterk 3/AbstractFindAdapterj +/AbstractAdapteri 7.TextareaFormFieldTesth 1.InputFormFieldTestg /.FormFieldTestCasef '.FormFieldTeste /.FileFormFieldTestd 3.ChoiceFormFieldTestc -LinkTestb -FormTesta #-CrawlerTest` /,TextareaFormField_ ),InputFormField^ ,FormField] ',FileFormField\ +,ChoiceFormField
[ +LinkZ /+FormFieldRegistry
Y +FormX +CrawlerW '*RequiredTwice6V m)Symfony_Component_Debug_Tests_Fixtures_PEARClass,U Y(UndefinedFunctionFatalErrorHandlerTest(T Q(ClassNotFoundFatalErrorHandlerTestS 5'FlattenExceptionTestR 5&MockExceptionHandler   2 ~YE/hU7"	~eB#lK,iE/





s
V
G
4
%
						s	]	B	#	mT3~`D)t`F-xV6iF( g=!	{i[H$p`O2                        k 5`RedisProfilerStoragej `Profileri `Profileh 1`PdoProfilerStorageg 5`MysqlProfilerStoragef 9`MongoDbProfilerStoragee ;`MemcacheProfilerStoraged =`MemcachedProfilerStoragec 3`FileProfilerStorage!b C`BaseMemcacheProfilerStoragea !_NullLogger` ^Store_ ^HttpCache^ =^EsiResponseCacheStrategy	] ^Esi\ =]RoutableFragmentRenderer[ 9]InlineFragmentRendererZ =]HIncludeFragmentRendererY +]FragmentHandlerX 3]EsiFragmentRenderer'W O\UnsupportedMediaTypeHttpExceptionV ?\UnauthorizedHttpException"U E\TooManyRequestsHttpException%T K\ServiceUnavailableHttpException'S O\PreconditionRequiredHttpException%R K\PreconditionFailedHttpExceptionQ 7\NotFoundHttpException P A\NotAcceptableHttpException#O G\MethodNotAllowedHttpException!N C\LengthRequiredHttpExceptionM '\HttpExceptionL /\GoneHttpExceptionK -\FlattenExceptionJ 3\FatalErrorExceptionI 7\ConflictHttpExceptionH ;\BadRequestHttpExceptionG ?\AccessDeniedHttpExceptionF 3[TestSessionListenerE =[StreamedResponseListenerD +[SessionListenerC )[RouterListenerB -[ResponseListenerA -[ProfilerListener@ )[LocaleListener? -[FragmentListener> /[ExceptionListener= #[EsiListener< 5[ErrorsLoggerListener; /ZPostResponseEvent: #ZKernelEvent"9 EZGetResponseForExceptionEvent)8 SZGetResponseForControllerResultEvent7 -ZGetResponseEvent6 1ZFinishRequestEvent5 3ZFilterResponseEvent4 7ZFilterControllerEvent3 7YRegisterListenersPass%2 KYMergeExtensionConfigurationPass1 YExtension0 =YContainerAwareHttpKernel/ 7YConfigurableExtension. 7YAddClassesToCachePass- =XTraceableEventDispatcher, -XExceptionHandler+ %XErrorHandler* 'WValueExporter) /VTimeDataCollector( 3VRouterDataCollector' 5VRequestDataCollector& 3VMemoryDataCollector% 3VLoggerDataCollector$ 9VExceptionDataCollector# 1VEventDataCollector" 'VDataCollector! 3VConfigDataCollector!  CUTraceableControllerResolver 1UControllerResolver 3UControllerReference #TFileLocator SUriSigner %SKernelEvents SKernel !SHttpKernel SClient 5RCacheWarmerAggregate #RCacheWarmer /QChainCacheClearer PBundle ;NSessionHandlerProxyTest +NNativeProxyTest /NAbstractProxyTest* UNConcreteSessionHandlerInterfaceProxy 'NConcreteProxy! CMPhpBridgeSessionStorageTest =MNativeSessionStorageTest  AMMockFileSessionStorageTest! CMMockArraySessionStorageTest
 +MMetadataBagTest"	 ELWriteCheckSessionHandlerTest 7LPdoSessionHandlerTest 9LNullSessionHandlerTest =LNativeSessionHandlerTest" ELNativeFileSessionHandlerTest ?LMongoDbSessionHandlerTest  ALMemcacheSessionHandlerTest! CLMemcachedSessionHandlerTest #KSessionTest  %JFlashBagTest 9JAutoExpireFlashBagTest ~ AINamespacedAttributeBagTest} -IAttributeBagTest| %HMimeTypeTest{ -GUploadedFileTestz GFileTesty 5FStreamedResponseTestx 'FServerBagTestw -FResponseTestCasev -FStringableObjectu %FResponseTestt 7FResponseHeaderBagTests !FNewRequestr 3FRequestContentProxyq #FRequestTestp -FRequestStackTesto 1FRequestMatcherTestn 5FRedirectResponseTestm -FParameterBagTestl -FJsonResponseTestk #FIpUtilsTestj 'FHeaderBagTesti #FFileBagTest"h EFExpressionRequestMatcherTestg !FCookieTestf 9FBinaryFileResponseTeste /FApacheRequestTestd -FAcceptHeaderTestc 5FAcceptHeaderItemTest   3 x`M6#}gD$c7y\A$o\I'





p
T
/

 						}	f	G	#	fC.vW6hR9iE"`>kI, lP7rXE3                 x RouteTestw !RouterTestv /RouteCompilerTestu 3RouteCollectionTestt 1RequestContextTests /CompiledRouteTestr RouteTestq -PhpMatcherDumperp 'MatcherDumpero #DumperRouten 9DumperPrefixCollectionm -DumperCollectionl 3ApacheMatcherDumperk !UrlMatcherj 3TraceableUrlMatcheri 9RedirectableUrlMatcherh -ApacheUrlMatcherg )~YamlFileLoaderf '~XmlFileLoadere '~PhpFileLoaderd '~ClosureLoaderc 5~AnnotationFileLoaderb ?~AnnotationDirectoryLoadera 7~AnnotationClassLoader` %}UrlGenerator_ 1|PhpGeneratorDumper^ +|GeneratorDumper] 9{RouteNotFoundException\ ?{ResourceNotFoundException)[ S{MissingMandatoryParametersExceptionZ ?{MethodNotAllowedExceptionY ?{InvalidParameterExceptionX zRouterW 'zRouteCompilerV +zRouteCollectionU zRouteT )zRequestContextS 'zCompiledRouteR yRouteQ /xSimpleProcessTest P AxSigchildEnabledProcessTest!O CxSigchildDisabledProcessTestN -xProcessUtilsTest"M ExProcessInSigchildEnvironment L AxProcessFailedExceptionTestK 1xProcessBuilderTestJ )xPhpProcessTestI ;xPhpExecutableFinderTestH 5xExecutableFinderTestG -xNonStringifiableF 'xStringifiableE 3xAbstractProcessTestD %wProcessUtilsC %wProcessPipesB )wProcessBuilderA wProcess@ !wPhpProcess? 3wPhpExecutableFinder> -wExecutableFinder= -vRuntimeException< =vProcessTimedOutException; 9vProcessFailedException: )vLogicException9 =vInvalidArgumentException8 uRedisMock7 %uMemcacheMock6 'uMemcachedMock5 ?tSqliteProfilerStorageTest4 =tRedisProfilerStorageTest3 %tProfilerTest 2 AtMongoDbProfilerStorageTest-1 [tMongoDbProfilerStorageTestDataCollector!0 CtDummyMongoDbProfilerStorage!/ CtMemcacheProfilerStorageTest". EtMemcachedProfilerStorageTest- ;tFileProfilerStorageTest!, CtAbstractProfilerStorageTest+ 9sTestMultipleHttpKernel* )sTestHttpKernel) sStoreTest( /sHttpCacheTestCase' 'sHttpCacheTest& sEsiTest	% rFoo"$ ErRoutableFragmentRendererTest	# rBar " ArInlineFragmentRendererTest"! ErHIncludeFragmentRendererTest  3rFragmentHandlerTest ;rEsiFragmentRendererTest 3qTestEventDispatcher !qTestClient 'qKernelForTest 7qKernelForOverrideName %qFooBarBundle 9pExtensionPresentBundle ?oExtensionPresentExtension !nFooCommand !nBarCommand 7mExtensionLoadedBundle =lExtensionLoadedExtension 7kExtensionAbsentBundle ;jTestSessionListenerTest 1jRouterListenerTest 5jResponseListenerTest 5jProfilerListenerTest 1jLocaleListenerTest 5jFragmentListenerTest# GjTestKernelThatThrowsException !jTestKernel
 !jTestLogger	 7jExceptionListenerTest +jEsiListenerTest /iSubscriberService ?iRegisterListenersPassTest) SiMergeExtensionConfigurationPassTest" EiContainerAwareHttpKernelTest +hEventSubscriber" EhTraceableEventDispatcherTest 7gTimeDataCollectorTest  =gRequestDataCollectorTest ;gMemoryDataCollectorTest~ ;gLoggerDataCollectorTest } AgExceptionDataCollectorTest| 'gKernelForTest{ ;gConfigDataCollectorTestz 9fControllerResolverTesty +eFileLocatorTestx 'dUriSignerTestw )dTestHttpKernelv dLoggeru !dKernelTestt !dControllers )dHttpKernelTestr !dClientTestq +cTestCacheWarmerp +cCacheWarmerTesto =cCacheWarmerAggregateTestn 7bChainCacheClearerTestm !aBundleTestl 7`SqliteProfilerStorage    sT;y_D'mP*d?eH0





{
]
F
!
					e	F	kQ%rY5oGnL0	nO0jYCqSB+{nZG2                    y #StringUtilsx %SecureRandomw !ClassUtilsv #UserChecker
u Usert 5InMemoryUserProviders /ChainUserProviderr ?UserPasswordValidatorTestq !TestObjectp +StringUtilsTesto -SecureRandomTestn !TestObjectm )ClassUtilsTestl UserTestk 7ChainUserProviderTestj 3SecurityContextTesti 1SwitchUserRoleTesth RoleTestg /RoleHierarchyTest"f EPlaintextPasswordEncoderTeste ?Pbkdf2PasswordEncoderTest&d MMessageDigestPasswordEncoderTestc 'SomeChildUserb SomeUsera 1EncoderFactoryTest` ?BCryptPasswordEncoderTest_ ;BasePasswordEncoderTest^ +PasswordEncoder] 'RoleVoterTest\ 9RoleHierarchyVoterTest[ 3ExpressionVoterTestZ 9AuthenticatedVoterTestY 9ExpressionLanguageTestX ?AccessDecisionManagerTestW ?UsernamePasswordTokenTestV ?PreAuthenticatedTokenTestU 1AnonymousTokenTestT /AbstractTokenTestS 'ConcreteTokenR TestUserQ 3PersistentTokenTestP ?InMemoryTokenProviderTest$O IUserAuthenticationProviderTest*N URememberMeAuthenticationProviderTest0M aPreAuthenticatedAuthenticationProviderTest#L GDaoAuthenticationProviderTest)K SAnonymousAuthenticationProviderTest%J KAuthenticationTrustResolverTest'I OAuthenticationProviderManagerTestH )SwitchUserRoleG 'RoleHierarchy
F RoleE ?UsernameNotFoundExceptionD =UnsupportedUserExceptionC 9TokenNotFoundException!B CSessionUnavailableExceptionA -RuntimeException@ ?ProviderNotFoundException? 7NonceExpiredException> +LogoutException= +LockedException< ?InvalidCsrfTokenException; =InvalidArgumentException): SInsufficientAuthenticationException9 /DisabledException!8 CCredentialsExpiredException7 5CookieTheftException6 ;BadCredentialsException$5 IAuthenticationServiceException4 ;AuthenticationException03 aAuthenticationCredentialsNotFoundException2 9AccountStatusException1 ;AccountExpiredException0 7AccessDeniedException / AAuthenticationFailureEvent. 3AuthenticationEvent- =PlaintextPasswordEncoder, 7Pbkdf2PasswordEncoder"+ EMessageDigestPasswordEncoder* )EncoderFactory) 7BCryptPasswordEncoder( 3BasePasswordEncoder' RoleVoter& 1RoleHierarchyVoter% +ExpressionVoter$ 1AuthenticatedVoter# 1ExpressionLanguage" 7AccessDecisionManager! +SecurityContext  5AuthenticationEvents 7UsernamePasswordToken +RememberMeToken 7PreAuthenticatedToken )AnonymousToken 'AbstractToken +PersistentToken 7InMemoryTokenProvider  AUserAuthenticationProvider" ESimpleAuthenticationProvider& MRememberMeAuthenticationProvider, YPreAuthenticatedAuthenticationProvider ?DaoAuthenticationProvider% KAnonymousAuthenticationProvider! CAuthenticationTrustResolver# GAuthenticationProviderManager 5PhpMatcherDumperTest  ADumperPrefixCollectionTest 5DumperCollectionTest ;ApacheMatcherDumperTest )UrlMatcherTest ;TraceableUrlMatcherTest 
 ARedirectableUrlMatcherTest	 5ApacheUrlMatcherTest 1YamlFileLoaderTest /XmlFileLoaderTest /PhpFileLoaderTest /ClosureLoaderTest =AnnotationFileLoaderTest# GAnnotationDirectoryLoaderTest ?AnnotationClassLoaderTest" EAbstractAnnotationLoaderTest  -UrlGeneratorTest 9PhpGeneratorDumperTest~ /ProjectUrlMatcher} 9RedirectableUrlMatcher| 3CustomXmlFileLoader{ FooClassz BarClassy 'AbstractClass   < p]D.rP9kR<%iN4}aF'





z
]
@
&
						p	U	;	"	
gQ:%oT='~^D&fM3uP*~`8mQ4s\<       ;ReminderServiceProvider )PasswordBroker  ADatabaseReminderRepository 7RemindersTableCommand  ARemindersControllerCommand 7ClearRemindersCommand
 Guard	 #GenericUser 5EloquentUserProvider 5DatabaseUserProvider 3AuthServiceProvider #AuthManager ImageTest 5ImageServiceProvider Image Image!  COpacityOutOfBoundsException ?InvalidImageTypeException#~ GInvalidImageResourceException%} KInvalidImageDataStringException| 7ImageQualityException{ ?ImageNotWritableExceptionz 9ImageNotFoundExceptiony 3ImageColorException!x CImageCacheNotFoundException(w QExifFunctionsNotAvailableException#v GDimensionOutOfBoundsException"u EContrastOutOfBoundsException$t IBrightnessOutOfBoundsExceptions )TemplateHelper
r Miscq 7WhoopsServiceProviderp 7WhoopsServiceProvidero 1XmlResponseHandlern 3SoapResponseHandlerm /PrettyPageHandlerl -PlainTextHandlerk 3JsonResponseHandlerj Handleri +CallbackHandlerh Inspectorg +FrameCollectionf Framee Formatterd )ErrorException	c Runb Modulea 7RouteNotFoundStrategy` /ExceptionStrategy_ ;WardrobeServiceProvider^ -DbUserRepository] -DbPostRepository
\ User	[ Tag
Z PostY BaseModelX )WardrobeFacadeW WardrobeV )UserControllerU 'TagControllerT )PostControllerS 1DropzoneControllerR 'RssControllerQ )PostControllerP )PageControllerO +LoginControllerN )HomeControllerM )BaseControllerL +AdminControllerK #UserCommandJ %ThemeCommandI )MigrateCommandH 'ConfigCommandG -AddRememberTokenF 3AddUniqueToPostSlugE -AddIdToTagsTableD )AddUserToPosts"C ECreatePasswordRemindersTableB -CreateUsersTableA +CreateTagsTable@ -CreatePostsTable? /TranslationWriter> 1YamlFileLoaderTest= 3XliffFileLoaderTest< -QtFileLoaderTest; -PoFileLoaderTest: /PhpFileLoaderTest9 -MoFileLoaderTest8 /LocalizedTestCase7 1JsonFileLoaderTest6 /IniFileLoaderTest5 5IcuResFileLoaderTest4 5IcuDatFileLoaderTest3 /CsvFileLoaderTest2 String1 )TranslatorTest0 9PluralizationRulesTest/ 3MessageSelectorTest. 5MessageCatalogueTest- %IntervalTest, 9IdentityTranslatorTest+ 1YamlFileDumperTest* 3XliffFileDumperTest) -QtFileDumperTest( -PoFileDumperTest' /PhpFileDumperTest& -MoFileDumperTest% 1JsonFileDumperTest$ /IniFileDumperTest# 5IcuResFileDumperTest" /CsvFileDumperTest! 1MergeOperationTest  /DiffOperationTest 7AbstractOperationTest )YamlFileLoader +XliffFileLoader %QtFileLoader %PoFileLoader 'PhpFileLoader %MoFileLoader )JsonFileLoader 'IniFileLoader -IcuResFileLoader -IcuDatFileLoader 'CsvFileLoader #ArrayLoader !Translator 1PluralizationRules +MessageSelector -MessageCatalogue Interval 1IdentityTranslator )ChainExtractor ?NotFoundResourceException
 =InvalidResourceException	 )YamlFileDumper +XliffFileDumper %QtFileDumper %PoFileDumper 'PhpFileDumper %MoFileDumper )JsonFileDumper 'IniFileDumper -IcuResFileDumper  !FileDumper 'CsvFileDumper~ )MergeOperation} 'DiffOperation| /AbstractOperation{ 7UserPasswordValidatorz %UserPassword   Q oT=+oZ=gYK;(qZK/jV?(






r
d
E
+

							~	k	[	G	9	(	mU?&yiT<&tSC,pYH0}`E(}iSA&wT4eQ     2 #FormBuilder1 3HashServiceProvider0 %BcryptHasher/ TestCase. Client- 7TinkerServiceProvider, 7ServerServiceProvider+ =RouteListServiceProvider* =PublisherServiceProvider) ;OptimizeServiceProvider ( AMaintenanceServiceProvider!' CKeyGeneratorServiceProvider#& GConsoleSupportServiceProvider% ;ComposerServiceProvider#$ GCommandCreatorServiceProvider# 9ArtisanServiceProvider" 1ViewPublishCommand! UpCommand  'TinkerCommand #TailCommand %ServeCommand 'RoutesCommand +OptimizeCommand 7MigratePublishCommand 1KeyGenerateCommand 1EnvironmentCommand #DownCommand 5ConfigPublishCommand 1CommandMakeCommand 5ClearCompiledCommand )ChangesCommand +AutoloadCommand 3AssetPublishCommand 'ViewPublisher 1ProviderRepository 1MigrationPublisher 3EnvironmentDetector +ConfigPublisher Composer )AssetPublisher
 Artisan	 #Application #AliasLoader ?FilesystemServiceProvider !Filesystem 7FileNotFoundException +WhoopsDisplayer -SymfonyDisplayer )PlainDisplayer Handler  =ExceptionServiceProvider 5EventServiceProvider~ !Dispatcher} 3InvalidKeyException| ?EncryptionServiceProvider{ Encrypterz -DecryptExceptiony -SqlServerGrammarx 'SQLiteGrammarw +PostgresGrammarv %MySqlGrammaru Grammart %MySqlBuilders Builderr Blueprintq 1SqlServerProcessorp +SQLiteProcessoro Processorn /PostgresProcessorm )MySqlProcessorl -SqlServerGrammark 'SQLiteGrammarj +PostgresGrammari %MySqlGrammarh Grammarg !JoinClausef !Expressione Builderd Migratorc -MigrationCreatorb Migration!a CDatabaseMigrationRepository` Relation_ Pivot^ #MorphToMany] MorphTo\ !MorphPivot[ )MorphOneOrManyZ MorphOneY MorphManyX %HasOneOrManyW HasOneV )HasManyThroughU HasManyT 'BelongsToManyS BelongsToR /SoftDeletingScopeQ 9ModelNotFoundExceptionP ModelO ;MassAssignmentExceptionN !CollectionM BuilderL #SeedCommandK +RollbackCommandJ %ResetCommandI )RefreshCommandH 1MigrateMakeCommandG )MigrateCommandF )InstallCommandE #BaseCommandD 1SqlServerConnectorC +SQLiteConnectorB /PostgresConnectorA )MySqlConnector@ Connector? /ConnectionFactory> 3SqlServerConnection= -SQLiteConnection< 3SeedServiceProvider; Seeder: )QueryException9 1PostgresConnection8 +MySqlConnection7 =MigrationServiceProvider6 Grammar5 ;DatabaseServiceProvider4 +DatabaseManager3 1ConnectionResolver2 !Connection1 Manager0 Queue/ Guard. 7CookieServiceProvider- CookieJar, Container + ABindingResolutionException* Command) #Application( !Repository' !FileLoader$& IFileEnvironmentVariablesLoader% 5EnvironmentVariables$ %ClearCommand# /CacheTableCommand" #XCacheStore! 'WinCacheStore  TagSet #TaggedCache 'TaggableStore !Repository -RedisTaggedCache !RedisStore NullStore )MemcachedStore 1MemcachedConnector FileStore 'DatabaseStore 5CacheServiceProvider %CacheManager !ArrayStore !ApcWrapper ApcStore   q nSD5	tbP8|m]A+gP;"{kZ=*





z
^
<
)

						v	^	I	'	`Q1uX?2xj\N@1#q`SF3%pYG/qYH&ydVE5#q     d !		TestClientc +		SpecialResponseb 	Responsea 	Request` 	History_ 	CookieJar^ 	Cookie] 	Client\ 5	WindowsStreamWrapper[ 	CompilerZ 	BootupY 	BestFit
X 	Utf8W #	TurkishUtf8	V 	XmlU !	NormalizerT 	Mbstring
S 	IntlR 	IconvQ !	NormalizerP '	MarkdownExtraO 9	_MarkdownExtra_TmpImplN 	MarkdownM =	 WorkbenchServiceProviderL 	 StarterK )	 PackageCreatorJ 	 PackageI 5WorkbenchMakeCommandH 3ViewServiceProvider
G ViewF )FileViewFinderE FactoryD PhpEngineC )EngineResolverB EngineA )CompilerEngine@ Compiler? 'BladeCompiler> Validator= ?ValidationServiceProvider< Factory; =DatabasePresenceVerifier: !Translator 9 ATranslationServiceProvider8 !FileLoader
7 View6 Validator	5 URL	4 SSH3 Session2 Schema1 Route0 Response/ Request. Redis- Redirect, Queue+ Password* Paginator
) Mail	( Log
' Lang& Input
% HTML
$ Hash
# Form
" File! Facade  Event DB Crypt Cookie Config Cache Blade
 Auth Artisan	 App %ViewErrorBag	 Str +ServiceProvider 3SerializableClosure !Pluralizer 9NamespacedItemResolver !MessageBag Manager Fluent !Collection #ClassLoader	 Arr
 3SessionTableCommand	 9TokenMismatchException Store 9SessionServiceProvider )SessionManager !Middleware 1FileSessionHandler 9DatabaseSessionHandler 5CookieSessionHandler ;CommandsServiceProvider  =CacheBasedSessionHandler %UriValidator~ +SchemeValidator} +MethodValidator| 'HostValidator{ 3ControllerGeneratorz %UrlGeneratory 9RoutingServiceProviderx Routerw +RouteCollectionv Routeu !Redirectort ?ControllerServiceProviders 3ControllerInspectorr 5ControllerDispatcherq !Controllerp 7MakeControllerCommando 'SecLibGatewayn 7RemoteServiceProviderm 'RemoteManagerl +MultiConnectionk !Connectionj 5RedisServiceProvideri Databaseh SyncJobg SqsJobf RedisJob	e Jobd IronJobc 'BeanstalkdJobb 9IlluminateQueueClosurea ?DatabaseFailedJobProvider` #WorkCommand_ -SubscribeCommand^ %RetryCommand] )RestartCommand\ /ListFailedCommand[ 'ListenCommandZ 3ForgetFailedCommandY 1FlushFailedCommandX 1FailedTableCommandW 'SyncConnectorV %SqsConnectorU )RedisConnectorT 'IronConnectorS 3BeanstalkdConnectorR ManagerQ WorkerP SyncQueueO SqsQueueN !RedisQueueM 5QueueServiceProviderL %QueueManagerK QueueJ ListenerI IronQueue H AFailConsoleServiceProviderG +BeanstalkdQueueF PresenterE PaginatorD ?PaginationServiceProviderC FactoryB 1BootstrapPresenterA /MandrillTransport@ -MailgunTransport? %LogTransport> Message= 3MailServiceProvider< Mailer; Writer: 1LogServiceProvider9 Response8 Request7 -RedirectResponse6 %JsonResponse5 !FrameGuard4 3HtmlServiceProvider3 #HtmlBuilder   ? lUF5 tWA"y`P=#{gXA(~fH6




y
`
@
$
						s	^	I	4			pT8#iG(y`M4jU3jTB,w\L<-t[A&rX?  +	(SpecificityTest~ -	(SelectorNodeTest} )	(PseudoNodeTest| -	(NegationNodeTest{ %	(HashNodeTestz -	(FunctionNodeTesty +	(ElementNodeTestx =	(CombinedSelectorNodeTestw '	(ClassNodeTestv /	(AttributeNodeTestu -	(AbstractNodeTestt +	'CssSelectorTests /	&TokenizerPatternsr /	&TokenizerEscapingq 	&Tokenizerp !	%HashParsero /	%EmptyStringParsern '	%ElementParserm #	%ClassParserl #	$TokenStreamk 	$Tokenj 	$Readeri 	$Parserh /	#WhitespaceHandlerg '	#StringHandlerf '	#NumberHandlere /	#IdentifierHandlerd #	#HashHandlerc )	#CommentHandlerb #	"Specificitya %	"SelectorNode` !	"PseudoNode_ %	"NegationNode^ 	"HashNode] %	"FunctionNode\ #	"ElementNode[ 5	"CombinedSelectorNodeZ 	"ClassNodeY '	"AttributeNodeX %	"AbstractNodeW 5	!SyntaxErrorExceptionV )	!ParseExceptionU 9	!InternalErrorExceptionT =	!ExpressionErrorExceptionS #	 CssSelectorR /	CommandTesterTestQ 7	ApplicationTesterTestP -	StreamOutputTestO !	TestOutputN !	OutputTestM )	NullOutputTestL /	ConsoleOutputTestK /	ConsoleLoggerTestJ +	StringInputTestI 	InputTestH +	InputOptionTestG 3	InputDefinitionTestF /	InputArgumentTestE )	ArrayInputTestD '	ArgvInputTestC 	TableTestB 1	QuestionHelperTestA +	ProgressBarTest@ 7	LegacyTableHelperTest? =	LegacyProgressHelperTest> 9	LegacyDialogHelperTest= '	HelperSetTest< 3	FormatterHelperTest; 3	OutputFormatterTest: =	OutputFormatterStyleTest#9 G	OutputFormatterStyleStackTest8 #	DummyOutput7 1	DescriptorCommand26 1	DescriptorCommand15 9	DescriptorApplication24 9	DescriptorApplication13 #	TestCommand2 =	FooSubnamespaced2Command1 =	FooSubnamespaced1Command0 !	FooCommand/ '	FoobarCommand. #	Foo5Command- #	Foo4Command, #	Foo3Command+ #	Foo2Command* #	Foo1Command) '	BarBucCommand( /	XmlDescriptorTest' 1	TextDescriptorTest& +	ObjectsProvider% 9	MarkdownDescriptorTest$ 1	JsonDescriptorTest# 9	AbstractDescriptorTest" +	ListCommandTest! +	HelpCommandTest  #	CommandTest% K	CustomDefaultCommandApplication /	CustomApplication +	ApplicationTest '	CommandTester /	ApplicationTester 	Question 5	ConfirmationQuestion )	ChoiceQuestion %	StreamOutput 	Output !	NullOutput '	ConsoleOutput )	BufferedOutput '	ConsoleLogger #	StringInput #	InputOption +	InputDefinition '	InputArgument 	Input !	ArrayInput 	ArgvInput
 !	TableStyle	 )	TableSeparator #	TableHelper 	Table )	QuestionHelper )	ProgressHelper #	ProgressBar -	InputAwareHelper 	HelperSet 	Helper  +	FormatterHelper %	DialogHelper~ -	DescriptorHelper} ?	OutputFormatterStyleStack| 5	OutputFormatterStyle{ +	OutputFormatterz 7	ConsoleTerminateEventy 7	ConsoleExceptionEventx %	ConsoleEventw 3	ConsoleCommandEventv '	XmlDescriptoru )	TextDescriptort 1	MarkdownDescriptors )	JsonDescriptorr !	Descriptorq 9	ApplicationDescriptionp #	ListCommando #	HelpCommandn 	Commandm 	
Shelll '	
ConsoleEventsk #	
Applicationj %		ResponseTesti #		RequestTesth #		HistoryTestg !		CookieTestf '		CookieJarTeste !		ClientTest    tY:&v[7|bL0jF$oQ<"



l
>
(
						y	^	P	7	 	iR7nV<~n`K-dD,|mU9~jH#kL(f>  	 9	GPathFilterIteratorTest$ I	GTestMultiplePcreFilterIterator$ I	GMultiplePcreFilterIteratorTest +	GMockSplFileInfo 5	GMockFileListIterator -	GIteratorTestCase 	GIterator 1	GFilterIteratorTest /	GInnerTypeIterator   A	GFileTypeFilterIteratorTest 7	GFilePathsIteratorTest~ /	GInnerNameIterator } A	GFilenameFilterIteratorTest#| G	GFilecontentFilterIteratorTest({ Q	GExcludeDirectoryFilterIteratorTest"z E	GDepthRangeFilterIteratorTest!y C	GDateRangeFilterIteratorTestx =	GCustomFilterIteratorTestw !	FFinderTestv 1	EUnsupportedAdapteru %	ENamedAdaptert )	EFailingAdapters %	EDummyAdapterr 	DRegexTestq 	DGlobTestp )	DExpressionTesto 5	CNumberComparatorTestn 1	CDateComparatorTestm )	CComparatorTestl 	BShellk 	BCommandj -	ASortableIteratori ;	ASizeRangeFilterIterator h A	ARecursiveDirectoryIteratorg 1	APathFilterIterator f A	AMultiplePcreFilterIteratore )	AFilterIteratord 9	AFileTypeFilterIteratorc /	AFilePathsIteratorb 9	AFilenameFilterIteratora ?	AFilecontentFilterIterator$` I	AExcludeDirectoryFilterIterator_ =	ADepthRangeFilterIterator^ ;	ADateRangeFilterIterator] 5	ACustomFilterIterator\ #	@SplFileInfo
[ 	@GlobZ 	@FinderY 	?Regex
X 	?GlobW !	?Expression"V E	>ShellCommandFailureException#U G	>OperationNotPermitedExceptionT ;	>AdapterFailureExceptionS 7	>AccessDeniedExceptionR -	=NumberComparatorQ )	=DateComparatorP !	=ComparatorO !	<PhpAdapterN )	<GnuFindAdapterM )	<BsdFindAdapterL 3	<AbstractFindAdapterK +	<AbstractAdapterJ 7	;TextareaFormFieldTestI 1	;InputFormFieldTestH /	;FormFieldTestCaseG '	;FormFieldTestF /	;FileFormFieldTestE 3	;ChoiceFormFieldTestD 	:LinkTestC 	:FormTestB #	:CrawlerTestA /	9TextareaFormField@ )	9InputFormField? 	9FormField> '	9FileFormField= +	9ChoiceFormField
< 	8Link; /	8FormFieldRegistry
: 	8Form9 	8Crawler68 m	7Symfony_Component_Debug_Tests_Fixtures_PEARClass7 '	6RequiredTwice6 	6NotPSR05 -	6PSR4CaseMismatch4 !	6NotPSR0bis3 %	6CaseMismatch*2 U	5UndefinedMethodFatalErrorHandlerTest,1 Y	5UndefinedFunctionFatalErrorHandlerTest(0 Q	5ClassNotFoundFatalErrorHandlerTest/ 5	4FlattenExceptionTest. 5	3MockExceptionHandler- 5	3ExceptionHandlerTest, -	3ErrorHandlerTest+ #	3ClassLoader* 5	3DebugClassLoaderTest&) M	2UndefinedMethodFatalErrorHandler(( Q	2UndefinedFunctionFatalErrorHandler$' I	2ClassNotFoundFatalErrorHandler& -	1FlattenException% 3	1FatalErrorException$ =	0UndefinedMethodException # A	0UndefinedFunctionException" 5	0OutOfMemoryException! -	0FlattenException  3	0FatalErrorException )	0DummyException 7	0ContextErrorException 9	0ClassNotFoundException -	/ExceptionHandler 1	/ErrorHandlerCanary %	/ErrorHandler -	/DebugClassLoader 	/Debug 	.XPathExpr !	.Translator 5	-PseudoClassExtension '	-NodeExtension '	-HtmlExtension /	-FunctionExtension 5	-CombinationExtension  A	-AttributeMatchingExtension /	-AbstractExtension )	,TranslatorTest )	+HashParserTest 7	+EmptyStringParserTest /	+ElementParserTest
 +	+ClassParserTest	 +	*TokenStreamTest !	*ReaderTest !	*ParserTest 7	)WhitespaceHandlerTest /	)StringHandlerTest /	)NumberHandlerTest 7	)IdentifierHandlerTest +	)HashHandlerTest 1	)CommentHandlerTest  3	)AbstractHandlerTest   ? z\F,|fL;#}^=$ gQ1pR6





d
M
8
						n	Y	B	-	pS? 
}cM3{X2mI'hX=(
y\@qS6tR?                                  	eExtension =	eContainerAwareHttpKernel 7	eConfigurableExtension 7	eAddClassesToCachePass =	dTraceableEventDispatcher -	dExceptionHandler %	dErrorHandler '	cValueExporter /	bTimeDataCollector 3	bRouterDataCollector
 5	bRequestDataCollector	 3	bMemoryDataCollector 3	bLoggerDataCollector 9	bExceptionDataCollector 1	bEventDataCollector '	bDataCollector 3	bConfigDataCollector! C	aTraceableControllerResolver 1	aControllerResolver 3	aControllerReference  #	`FileLocator 7	`EnvParametersResource~ 	_UriSigner} %	_KernelEvents| 	_Kernel{ !	_HttpKernelz 	_Clienty 5	^CacheWarmerAggregatex #	^CacheWarmerw /	]ChainCacheClearerv 	\Bundleu ;	ZSessionHandlerProxyTestt +	ZNativeProxyTests /	ZAbstractProxyTest*r U	ZConcreteSessionHandlerInterfaceProxyq '	ZConcreteProxy!p C	YPhpBridgeSessionStorageTesto =	YNativeSessionStorageTest n A	YMockFileSessionStorageTest!m C	YMockArraySessionStorageTestl +	YMetadataBagTest"k E	XWriteCheckSessionHandlerTestj 7	XPdoSessionHandlerTesti 9	XNullSessionHandlerTesth =	XNativeSessionHandlerTest"g E	XNativeFileSessionHandlerTestf ?	XMongoDbSessionHandlerTest e A	XMemcacheSessionHandlerTest!d C	XMemcachedSessionHandlerTestc #	WSessionTestb %	VFlashBagTesta 9	VAutoExpireFlashBagTest ` A	UNamespacedAttributeBagTest_ -	UAttributeBagTest^ %	TMimeTypeTest] -	SUploadedFileTest\ 	SFileTest[ 	SFakeFileZ 5	RStreamedResponseTestY '	RServerBagTestX -	RResponseTestCaseW -	RStringableObjectV %	RResponseTestU 7	RResponseHeaderBagTestT !	RNewRequestS 3	RRequestContentProxyR #	RRequestTestQ -	RRequestStackTestP 1	RRequestMatcherTestO 5	RRedirectResponseTestN -	RParameterBagTestM 9	RJsonSerializableObjectL -	RJsonResponseTestK #	RIpUtilsTestJ '	RHeaderBagTestI #	RFileBagTest"H E	RExpressionRequestMatcherTestG !	RCookieTestF 9	RBinaryFileResponseTestE /	RApacheRequestTestD -	RAcceptHeaderTestC 5	RAcceptHeaderItemTestB 3	QSessionHandlerProxyA #	QNativeProxy@ '	QAbstractProxy? ;	PPhpBridgeSessionStorage> 5	PNativeSessionStorage= 9	PMockFileSessionStorage< ;	PMockArraySessionStorage; #	PMetadataBag: =	OWriteCheckSessionHandler9 /	OPdoSessionHandler8 1	ONullSessionHandler7 5	ONativeSessionHandler6 =	ONativeFileSessionHandler5 7	OMongoDbSessionHandler4 9	OMemcacheSessionHandler3 ;	OMemcachedSessionHandler2 	NSession1 	MFlashBag0 1	MAutoExpireFlashBag/ 9	LNamespacedAttributeBag. %	LAttributeBag- +	KMimeTypeGuesser, =	KMimeTypeExtensionGuesser+ ;	KFileinfoMimeTypeGuesser* ?	KFileBinaryMimeTypeGuesser) -	KExtensionGuesser( %	JUploadedFile
' 	JFile& +	IUploadException% ;	IUnexpectedTypeException$ 7	IFileNotFoundException# '	IFileException" 7	IAccessDeniedException! -	HStreamedResponse  	HServerBag /	HResponseHeaderBag 	HResponse %	HRequestStack )	HRequestMatcher 	HRequest -	HRedirectResponse %	HParameterBag %	HJsonResponse 	HIpUtils 	HHeaderBag 	HFileBag =	HExpressionRequestMatcher 	HCookie 1	HBinaryFileResponse '	HApacheRequest -	HAcceptHeaderItem %	HAcceptHeader 5	GSortableIteratorTest /	GInnerSizeIterator! C	GSizeRangeFilterIteratorTest$ I	GRecursiveDirectoryIteratorTest
 5	GRealIteratorTestCase    |`FcN3]@_;yV,




g
Z
8
%

				}	]	?	#		 nU<(mM,nH"nG)uS4 }iL+s\A.e@     - [	MongoDbProfilerStorageTestDataCollector! C	DummyMongoDbProfilerStorage! C	MemcacheProfilerStorageTest" E	MemcachedProfilerStorageTest ;	FileProfilerStorageTest! C	AbstractProfilerStorageTest 9	TestMultipleHttpKernel )	TestHttpKernel 	StoreTest /	HttpCacheTestCase '	HttpCacheTest
 	EsiTest		 	~Foo" E	~RoutableFragmentRendererTest	 	~Bar  A	~InlineFragmentRendererTest" E	~HIncludeFragmentRendererTest 3	~FragmentHandlerTest ;	~EsiFragmentRendererTest 3	}TestEventDispatcher !	}TestClient  '	}KernelForTest 7	}KernelForOverrideName~ %	}FooBarBundle} 9	|ExtensionPresentBundle| ?	{ExtensionPresentExtension{ !	zFooCommandz !	zBarCommandy 7	yExtensionLoadedBundlex =	xExtensionLoadedExtensionw 7	wExtensionAbsentBundlev ;	vTestSessionListenerTestu 1	vRouterListenerTestt 5	vResponseListenerTests 5	vProfilerListenerTestr 1	vLocaleListenerTestq 5	vFragmentListenerTest#p G	vTestKernelThatThrowsExceptiono !	vTestKerneln !	vTestLoggerm 7	vExceptionListenerTestl +	vEsiListenerTest#k G	vAddRequestFormatsListenerTest)j S	uMergeExtensionConfigurationPassTest"i E	uContainerAwareHttpKernelTest"h E	tTraceableEventDispatcherTestg 7	sTimeDataCollectorTestf =	sRequestDataCollectorTeste ;	sMemoryDataCollectorTestd ;	sLoggerDataCollectorTest c A	sExceptionDataCollectorTestb '	sKernelForTesta ;	sConfigDataCollectorTest` 9	rControllerResolverTest_ +	qFileLocatorTest^ ?	qEnvParametersResourceTest] '	pUriSignerTest\ )	pTestHttpKernel[ 	pLoggerZ !	pKernelTestY !	pControllerX )	pHttpKernelTestW !	pClientTestV +	oTestCacheWarmerU +	oCacheWarmerTestT =	oCacheWarmerAggregateTestS 7	nChainCacheClearerTestR !	mBundleTestQ 7	lSqliteProfilerStorageP 5	lRedisProfilerStorageO 	lProfilerN 	lProfileM 1	lPdoProfilerStorageL 5	lMysqlProfilerStorageK 9	lMongoDbProfilerStorageJ ;	lMemcacheProfilerStorageI =	lMemcachedProfilerStorageH 3	lFileProfilerStorage!G C	lBaseMemcacheProfilerStorageF !	kNullLoggerE 	jStoreD 	jHttpCacheC =	jEsiResponseCacheStrategy	B 	jEsiA =	iRoutableFragmentRenderer@ 9	iInlineFragmentRenderer? =	iHIncludeFragmentRenderer> +	iFragmentHandler= 3	iEsiFragmentRenderer'< O	hUnsupportedMediaTypeHttpException&; M	hUnprocessableEntityHttpException: ?	hUnauthorizedHttpException"9 E	hTooManyRequestsHttpException%8 K	hServiceUnavailableHttpException'7 O	hPreconditionRequiredHttpException%6 K	hPreconditionFailedHttpException5 7	hNotFoundHttpException 4 A	hNotAcceptableHttpException#3 G	hMethodNotAllowedHttpException!2 C	hLengthRequiredHttpException1 '	hHttpException0 /	hGoneHttpException/ 7	hConflictHttpException. ;	hBadRequestHttpException- ?	hAccessDeniedHttpException, 3	gTestSessionListener+ =	gStreamedResponseListener* +	gSessionListener) 3	gSaveSessionListener( )	gRouterListener' -	gResponseListener& -	gProfilerListener% )	gLocaleListener$ -	gFragmentListener# /	gExceptionListener" #	gEsiListener! 5	gErrorsLoggerListener  7	gDebugHandlersListener ?	gAddRequestFormatsListener /	fPostResponseEvent #	fKernelEvent" E	fGetResponseForExceptionEvent) S	fGetResponseForControllerResultEvent -	fGetResponseEvent 1	fFinishRequestEvent 3	fFilterResponseEvent 7	fFilterControllerEvent 7	eRegisterListenersPass% K	eMergeExtensionConfigurationPass   1 jTAt`O7!~fJ& s\D5_?&





}
f
O
7
						u	`	I	/		o]K.pI'xQ3f=vW>'bF*hI'
R1                                    ;	AuthenticationException0 a	AuthenticationCredentialsNotFoundException 9	AccountStatusException ;	AccountExpiredException 7	AccessDeniedException  A	AuthenticationFailureEvent 3	AuthenticationEvent =	PlaintextPasswordEncoder 7	Pbkdf2PasswordEncoder" E	MessageDigestPasswordEncoder )	EncoderFactory 7	BCryptPasswordEncoder 3	BasePasswordEncoder 	RoleVoter
 1	RoleHierarchyVoter	 +	ExpressionVoter 1	AuthenticatedVoter 1	ExpressionLanguage 7	AccessDecisionManager +	SecurityContext 5	AuthenticationEvents 7	UsernamePasswordToken +	RememberMeToken 7	PreAuthenticatedToken  )	AnonymousToken '	AbstractToken~ +	PersistentToken} 7	InMemoryTokenProvider | A	UserAuthenticationProvider"{ E	SimpleAuthenticationProvider&z M	RememberMeAuthenticationProvider,y Y	PreAuthenticatedAuthenticationProviderx ?	DaoAuthenticationProvider%w K	AnonymousAuthenticationProvider!v C	AuthenticationTrustResolver#u G	AuthenticationProviderManagert )	UrlMatcherTests ;	TraceableUrlMatcherTest r A	RedirectableUrlMatcherTest q A	LegacyApacheUrlMatcherTestp 5	PhpMatcherDumperTest#o G	LegacyApacheMatcherDumperTest n A	DumperPrefixCollectionTestm 5	DumperCollectionTestl 1	YamlFileLoaderTestk /	XmlFileLoaderTestj /	PhpFileLoaderTesti /	ClosureLoaderTesth =	AnnotationFileLoaderTest#g G	AnnotationDirectoryLoaderTestf ?	AnnotationClassLoaderTest"e E	AbstractAnnotationLoaderTestd -	UrlGeneratorTestc 9	PhpGeneratorDumperTestb /	ProjectUrlMatchera 9	RedirectableUrlMatcher` 3	CustomXmlFileLoader_ 	FooClass^ 	BarClass] '	AbstractClass\ 	RouteTest[ !	RouterTestZ /	RouteCompilerTestY 3	RouteCollectionTestX 1	RequestContextTestW /	CompiledRouteTestV 	RouteTestU -	PhpMatcherDumperT '	MatcherDumperS #	DumperRouteR 9	DumperPrefixCollectionQ -	DumperCollectionP 3	ApacheMatcherDumperO !	UrlMatcherN 3	TraceableUrlMatcherM 9	RedirectableUrlMatcherL -	ApacheUrlMatcherK )	YamlFileLoaderJ '	XmlFileLoaderI '	PhpFileLoaderH '	ClosureLoaderG 5	AnnotationFileLoaderF ?	AnnotationDirectoryLoaderE 7	AnnotationClassLoaderD %	UrlGeneratorC 1	PhpGeneratorDumperB +	GeneratorDumperA 9	RouteNotFoundException@ ?	ResourceNotFoundException)? S	MissingMandatoryParametersException> ?	MethodNotAllowedException= ?	InvalidParameterException< 	Router; '	RouteCompiler: +	RouteCollection9 	Route8 )	RequestContext7 '	CompiledRoute6 	Route5 /	SimpleProcessTest 4 A	SigchildEnabledProcessTest!3 C	SigchildDisabledProcessTest2 -	ProcessUtilsTest"1 E	ProcessInSigchildEnvironment 0 A	ProcessFailedExceptionTest/ 1	ProcessBuilderTest. )	PhpProcessTest- ;	PhpExecutableFinderTest, 5	ExecutableFinderTest+ -	NonStringifiable* '	Stringifiable) 3	AbstractProcessTest( %	ProcessUtils' %	ProcessPipes& )	ProcessBuilder% 	Process$ !	PhpProcess# 3	PhpExecutableFinder" -	ExecutableFinder! -	RuntimeException  =	ProcessTimedOutException 9	ProcessFailedException )	LogicException =	InvalidArgumentException 	RedisMock %	MemcacheMock '	MemcachedMock ?	SqliteProfilerStorageTest =	RedisProfilerStorageTest %	ProfilerTest  A	MongoDbProfilerStorageTest   ' tY,
sY4g>`= ]:





l
I
-

				{	`	N	2	}cJ6}oZF0qW@(|YA%jP9!x]A&hN4jRB'                  /	CsvFileLoaderTest 	String )	TranslatorTest 9	PluralizationRulesTest 3	MessageSelectorTest 5	MessageCatalogueTest %	IntervalTest 9	IdentityTranslatorTest 1	YamlFileDumperTest 3	XliffFileDumperTest -	QtFileDumperTest -	PoFileDumperTest /	PhpFileDumperTest -	MoFileDumperTest 1	JsonFileDumperTest /	IniFileDumperTest 5	IcuResFileDumperTest 1	ConcreteFileDumper )	FileDumperTest /	CsvFileDumperTest 1	MergeOperationTest
 /	DiffOperationTest	 7	AbstractOperationTest )	YamlFileLoader +	XliffFileLoader %	QtFileLoader %	PoFileLoader '	PhpFileLoader %	MoFileLoader )	JsonFileLoader '	IniFileLoader  -	IcuResFileLoader -	IcuDatFileLoader~ '	CsvFileLoader} #	ArrayLoader| !	Translator{ 1	PluralizationRulesz +	MessageSelectory -	MessageCataloguex 	Intervalw 1	IdentityTranslatorv )	ChainExtractoru ?	NotFoundResourceExceptiont =	InvalidResourceExceptions )	YamlFileDumperr +	XliffFileDumperq %	QtFileDumperp %	PoFileDumpero '	PhpFileDumpern %	MoFileDumperm )	JsonFileDumperl '	IniFileDumperk -	IcuResFileDumperj !	FileDumperi '	CsvFileDumperh )	MergeOperationg '	DiffOperationf /	AbstractOperatione 7	UserPasswordValidatord %	UserPasswordc #	StringUtilsb %	SecureRandoma !	ClassUtils` #	UserChecker
_ 	User^ 5	InMemoryUserProvider] /	ChainUserProvider\ ?	UserPasswordValidatorTest([ Q	LegacyUserPasswordValidatorApiTest-Z [	LegacyUserPasswordValidator2Dot4ApiTestY !	TestObjectX +	StringUtilsTestW -	SecureRandomTestV !	TestObjectU )	ClassUtilsTestT 	UserTestS +	UserCheckerTestR =	InMemoryUserProviderTestQ 7	ChainUserProviderTestP 3	SecurityContextTestO 1	SwitchUserRoleTestN 	RoleTestM /	RoleHierarchyTest"L E	PlaintextPasswordEncoderTestK ?	Pbkdf2PasswordEncoderTest&J M	MessageDigestPasswordEncoderTestI %	EncAwareUserH '	SomeChildUserG 	SomeUserF 1	EncoderFactoryTestE ?	BCryptPasswordEncoderTestD ;	BasePasswordEncoderTestC +	PasswordEncoderB '	RoleVoterTestA 9	RoleHierarchyVoterTest@ 3	ExpressionVoterTest? 9	AuthenticatedVoterTest> 9	ExpressionLanguageTest= ?	AccessDecisionManagerTest< ?	UsernamePasswordTokenTest; 3	RememberMeTokenTest: ?	PreAuthenticatedTokenTest9 1	AnonymousTokenTest8 /	AbstractTokenTest7 '	ConcreteToken6 	TestUser5 3	PersistentTokenTest4 ?	InMemoryTokenProviderTest$3 I	UserAuthenticationProviderTest*2 U	RememberMeAuthenticationProviderTest01 a	PreAuthenticatedAuthenticationProviderTest#0 G	DaoAuthenticationProviderTest)/ S	AnonymousAuthenticationProviderTest%. K	AuthenticationTrustResolverTest'- O	AuthenticationProviderManagerTest, )	SwitchUserRole+ '	RoleHierarchy
* 	Role) ?	UsernameNotFoundException( =	UnsupportedUserException' 9	TokenNotFoundException!& C	SessionUnavailableException% -	RuntimeException$ ?	ProviderNotFoundException# 7	NonceExpiredException" +	LogoutException! +	LockedException  ?	InvalidCsrfTokenException =	InvalidArgumentException) S	InsufficientAuthenticationException /	DisabledException! C	CredentialsExpiredException 5	CookieTheftException ;	BadCredentialsException$ I	AuthenticationServiceException   2 rX=#	taS<$
pL3jP1z^<




p
N
						h	C	(	rR5 u[>'oN>0qX:#	pN.e?zV<*yeJ2                      ) )	TemplateFinder( /	RouterCacheWarmer' !	TwigEngine& '	TwigExtractor% -	TransTokenParser#$ G	TransDefaultDomainTokenParser# 9	TransChoiceTokenParser" 5	FormThemeTokenParser! /	TwigExtractorTest  	TestCase -	TwigNodeProvider  A	TranslationNodeVisitorTest- [	TranslationDefaultDomainNodeVisitorTest 	ScopeTest =	FormThemeTokenParserTest" E	SearchAndRenderBlockNodeTest '	FormThemeTest =	TranslationExtensionTest" E	FormExtensionTableLayoutTest  A	FormExtensionDivLayoutTest )	StubTranslator 5	StubFilesystemLoader 9	TranslationNodeVisitor) S	TranslationDefaultDomainNodeVisitor 	Scope 	TransNode 9	TransDefaultDomainNode =	SearchAndRenderBlockNode '	FormThemeNode 1	TwigRendererEngine %	TwigRenderer
 '	YamlExtension	 5	TranslationExtension /	SecurityExtension -	RoutingExtension '	FormExtension 5	MessageDataCollector +	Propel1TestCase 7	PropelTypeGuesserTest #	DummyObject& M	CollectionToArrayTransformerTest  3	ModelChoiceListTest /	ReadOnlyItemQuery~ %	ReadOnlyItem} 	ItemQuery
| 	Item{ 	Columnz ;	PropelDataCollectorTesty 1	PropelUserProviderx %	PropelLoggerw 	ModelTypev /	PropelTypeGuesseru +	PropelExtension"t E	CollectionToArrayTransformers +	ModelChoiceListr '	PropelFactoryq 3	PropelDataCollectorp -	WebProcessorTesto %	WebProcessorn 	Loggerm )	FirePHPHandlerl %	DebugHandlerk -	ChromePhpHandlerj 3	DoctrineInitializeri 7	UniqueEntityValidatorh %	UniqueEntityg 3	UniqueValidatorTestf 9	EntityUserProviderTeste )	DbalLoggerTestd )	EntityTypeTestc ?	EntityTypePerformanceTest b A	DoctrineOrmTypeGuesserTesta 5	EntityChoiceListTest` ;	SingleStringIdentEntity_ /	SingleIdentEntity!^ C	NoToStringSingleIdentEntity] +	ItemGroupEntity\ /	DoubleIdentEntity[ 7	ContainerAwareFixture Z A	CompositeStringIdentEntityY 5	CompositeIdentEntityX /	AssociationEntity2W e	RegisterEventListenersAndSubscribersPassTestV =	ContainerAwareLoaderTestU ?	DoctrineDataCollectorTestT 3	DoctrineOrmTestCaseS !	MyListener$R I	ContainerAwareEventManagerTestQ 1	EntityUserProviderP !	DbalLoggerO 9	DbalSessionHandlerTestN =	DbalSessionHandlerSchemaM 1	DbalSessionHandlerL !	EntityTypeK %	DoctrineType%J K	MergeDoctrineCollectionListenerI 9	DoctrineOrmTypeGuesserH 5	DoctrineOrmExtension"G E	CollectionToArrayTransformerF 7	ORMQueryBuilderLoaderE -	EntityChoiceListD '	EntityFactory.C ]	RegisterEventListenersAndSubscribersPassB 9	DoctrineValidationPassA ?	AbstractDoctrineExtension@ 5	ContainerAwareLoader? 7	DoctrineDataCollector> +	ManagerRegistry = A	ContainerAwareEventManager< -	ProxyCacheWarmer; 	YamlTest: 	B9 !	ParserTest8 1	ParseExceptionTest7 !	InlineTest6 	A5 !	DumperTest4 -	RuntimeException3 )	ParseException2 '	DumpException
1 	Yaml0 	Unescaper/ 	Parser. 	Inline- 	Escaper, 	Dumper+ /	TranslationWriter* 1	YamlFileLoaderTest) 3	XliffFileLoaderTest( -	QtFileLoaderTest' -	PoFileLoaderTest& /	PhpFileLoaderTest% -	MoFileLoaderTest$ /	LocalizedTestCase# 1	JsonFileLoaderTest" /	IniFileLoaderTest! 5	IcuResFileLoaderTest  5	IcuDatFileLoaderTest   % hL(	uS>/hK.oY4sZ=*






n
[
;

							g	M	4		hN%
mI5lQ>#{gC.|dG0]G,hO5 nV=%   6 )
3SecurityHelper5 +
3LogoutUrlHelper4 )
2SecurityBundle3 #
1FirewallMap2 +
1FirewallContext1 /
0AclSchemaListener0 +
/InMemoryFactory/ #
.X509Factory. /
.RememberMeFactory- /
.HttpDigestFactory, -
.HttpBasicFactory+ -
.FormLoginFactory* +
.AbstractFactory) /
-SecurityExtension( /
-MainConfiguration' 7
,AddSecurityVotersPass& 7
+SecurityDataCollector% )
*InitAclCommand $ A
)ConstraintValidatorFactory# !
(Translator" /
(TranslationLoader! %
(PhpExtractor$  I
'ConstraintValidatorFactoryTest )
&TranslatorTest -
&PhpExtractorTest %
%TemplateTest 7
%TemplateReferenceTest 9
%TemplateNameParserTest  A
%TemplateFilenameParserTest '
%PhpEngineTest 3
$TemplateLocatorTest )
#StubTranslator 9
#StubTemplateNameParser /
"SessionHelperTest /
"RequestHelperTest ?
"FormHelperTableLayoutTest ;
"FormHelperDivLayoutTest )
"CodeHelperTest #
!RoutingTest  A
!RedirectableUrlMatcherTest !
 TestBundle /
SessionController #
WebTestCase #
SessionTest
 
AppKernel	 +
SensioFooBundle /
DefaultController 1
SensioCmsFooBundle /
DefaultController 
FooBundle /
DefaultController /
DefaultController /
DefaultController +
FabpotFooBundle  /
DefaultController !
BaseBundle~ ;
TestSessionListenerTest} 
TestCase| )
HttpKernelTest{ !
TestBundle z A
YamlFrameworkExtensionTesty ?
XmlFrameworkExtensionTestx ?
PhpFrameworkExtensionTestw 9
FrameworkExtensionTestv /
ConfigurationTestu 1
TranslatorPassTestt /
SubscriberService%s K
RegisterKernelListenersPassTestr -
ProfilerPassTestq 9
AddCacheWarmerPassTestp 9
RedirectControllerTesto 9
InternalControllerTestn =
ControllerNameParserTestm +
ApplicationTestl 1
TemplateFinderTestk #
WebTestCasej +

TemplateLocatori -

FilesystemLoaderh -
	TranslatorHelperg '
	SessionHelperf %
	RouterHelpere '
	RequestHelperd !
	FormHelperc !
	CodeHelperb '
	ActionsHelpera /
TemplateReference` 1
TemplateNameParser_ 9
TemplateFilenameParser^ 
PhpEngine] +
GlobalVariables\ -
DelegatingEngine[ 
DebuggerZ #
PathPackageY )
PackageFactoryX 
RouterW 9
RedirectableUrlMatcherV -
DelegatingLoaderU 
HttpCacheT 3
TestSessionListenerS +
SessionListenerR 1
FrameworkExtensionQ '
ConfigurationP )
TranslatorPassO =
TranslationExtractorPassN 7
TranslationDumperPassM )
TemplatingPassL 3
RoutingResolverPass!K C
RegisterKernelListenersPassJ %
ProfilerPassI 
FormPass#H G
ContainerBuilderDebugDumpPassG 7
CompilerDebugDumpPass"F E
AddValidatorInitializersPass!E C
AddConstraintValidatorsPassD 1
AddCacheWarmerPassC 3
AddCacheClearerPassB 3
RouterDataCollector!A C
 TraceableControllerResolver@ 1
 TemplateController? 1
 RedirectController> 1
 InternalController= 1
 ControllerResolver< 5
 ControllerNameParser; !
 Controller: 	Shell9 #	Application8 =	TranslationUpdateCommand7 -	ServerRunCommand6 1	RouterMatchCommand5 1	RouterDebugCommand4 ?	RouterApacheDumperCommand3 7	ContainerDebugCommand2 7	ContainerAwareCommand 1 A	ConfigDumpReferenceCommand0 1	CacheWarmupCommand/ /	CacheClearCommand. 5	AssetsInstallCommand- !	HttpKernel, +	FrameworkBundle+ 	Client* =	TemplatePathsCacheWarmer   L _B/	t_F)~b@+qXA'xdG+





f
D

								n	Z	F	/		nS9}dE'tU3x^=nXA*rYG1lQD7* {mbWL            R 
gAQ 
fBP 
fA
O 
eCFooN 
eAM 
dEL 
dDK 
dBJ 
dA	I 
cFoo	H 
cBar	G 
bFoo	F 
bBar	E 
aFoo	D 
aBaz	C 
aBarB 
aFooBar	A 
`Foo	@ 
`Bar	? 
_Foo	> 
_Bar= /
^ProjectUrlMatcher< +
^NumberFormatter; 
^Locale: /
^IntlDateFormatter9 
^Collator8 ;
^ProjectServiceContainer7 
^Container6 ;
^ProjectWithXsdExtension5 -
^ProjectExtension4 %
^BarUserClass3 
^BazClass2 +
^BarClassFactory1 
^BarClass0 
^FooClass/ #
^TestCommand. !
^FooCommand- #
^Foo4Command, #
^Foo3Command+ #
^Foo2Command* #
^Foo1Command) '
^Pearlike2_Foo( '
^Pearlike2_Baz' '
^Pearlike2_Bar& %
^Pearlike_Foo% %
^Pearlike_Baz$ %
^Pearlike_Bar	# 
^Foo" -
^Pearlike2_FooBar! +
^Pearlike_FooBar  ;
^PrefixCollision_C_B_Foo ;
^PrefixCollision_C_B_Bar ;
^PrefixCollision_A_B_Foo ;
^PrefixCollision_A_B_Bar -
^Apc_Pearlike_Foo -
^Apc_Pearlike_Baz -
^Apc_Pearlike_Bar 3
^Apc_Pearlike_FooBar  A
^ApcPrefixCollision_A_B_Foo  A
^ApcPrefixCollision_A_B_Bar =
^ApcPrefixCollision_A_Foo =
^ApcPrefixCollision_A_Bar 7
^PrefixCollision_C_Foo 7
^PrefixCollision_C_Bar 7
^PrefixCollision_A_Foo 7
^PrefixCollision_A_Bar	 
]Foo	 
]Bar	 
\Foo	 
\Bar =
[UniversalClassLoaderTest 5
[DebugClassLoaderTest
 7
[ClassMapGeneratorTest	 +
[ClassLoaderTest ?
[ClassCollectionLoaderTest! C
[ApcUniversalClassLoaderTest /
ZXcacheClassLoader 5
ZUniversalClassLoader )
ZMapClassLoader ?
ZDebugUniversalClassLoader -
ZDebugClassLoader /
ZClassMapGenerator  #
ZClassLoader 7
ZClassCollectionLoader~ ;
ZApcUniversalClassLoader} )
ZApcClassLoader| %
YResponseTest{ #
YRequestTestz #
YHistoryTesty !
YCookieTestx '
YCookieJarTestw !
YClientTestv !
YTestClientu 
XResponset 
XRequests 
XHistoryr 
XCookieJarq 
XCookiep 
XCliento /
WWebProfilerBundlen 
VTestCasem 3
UTemplateManagerTest!l C
TWebDebugToolbarListenerTestk =
SWebProfilerExtensionTestj /
SConfigurationTesti ;
RExceptionControllerTesth +
QTemplateManagerg ;
PWebDebugToolbarListenerf 5
OWebProfilerExtensione '
OConfigurationd -
NRouterControllerc 1
NProfilerControllerb 3
NExceptionControllera !
MTwigEngine` !
MTwigBundle_ /
LRenderTokenParser^ 
KTestCase] 5
JFilesystemLoaderTest\ /
ITwigExtensionTest[ ;
HExceptionControllerTestZ !
GRenderNodeY -
FFilesystemLoaderX '
ECodeExtensionW +
EAssetsExtensionV -
EActionsExtensionU '
DTwigExtensionT '
DConfigurationS 3
CTwigEnvironmentPassR 7
CExceptionListenerPassQ +
BTimedTwigEngineP 3
AExceptionControllerO #
@LintCommandN =
?TemplateCacheCacheWarmerM 1
>LogoutUrlExtension!L C
=LocalizedFormFailureHandlerK +
<FormLoginBundleJ 1
;FormLoginExtensionI +
:LoginControllerH 3
:LocalizedControllerG /
9UserLoginFormTypeF 3
8CsrfFormLoginBundleE +
7LoginControllerD #
6WebTestCaseC )
6SwitchUserTest$B I
6SecurityRoutingIntegrationTestA ?
6LocalizedRoutesAsPathTest@ '
6FormLoginTest? /
6CsrfFormLoginTest"> E
6AuthenticationCommencingTest= 
6AppKernel< 3
5AbstractFactoryTest; ?
4YamlSecurityExtensionTest: =
4XmlSecurityExtensionTest9 7
4SecurityExtensionTest8 =
4PhpSecurityExtensionTest7 /
4ConfigurationTest   O qdWJ<'lO0kP0pU! ybI3




}
]
D
+
						o	S	?	'	vX5}hS<(pI'sV=*}bM>+|fTD0 eO;#xiO     s -
SimpleXMLElementr 
Scopeq 
Referencep 
Parametero 3
DefinitionDecoratorn !
Definitionm -
ContainerBuilderl )
ContainerAwarek 
Containerj 
Aliasi )
PseudoNodeTesth !
OrNodeTestg %
HashNodeTestf -
FunctionNodeTeste +
ElementNodeTestd =
CombinedSelectorNodeTestc '
ClassNodeTestb )
AttribNodeTesta '
XPathExprTest` '
TokenizerTest_ +
CssSelectorTest^ !
PseudoNode] 
OrNode\ 
HashNode[ %
FunctionNodeZ #
ElementNodeY 5
CombinedSelectorNodeX 
ClassNodeW !
AttribNodeV )
ParseExceptionU #
XPathExprOrT 
XPathExprS #
TokenStreamR 
TokenizerQ 
TokenP #
CssSelectorO /
CommandTesterTestN 7
ApplicationTesterTestM -
StreamOutputTestL !
TestOutputK !
OutputTestJ )
NullOutputTestI /
ConsoleOutputTestH +
StringInputTestG 
InputTestF +
InputOptionTestE 3
InputDefinitionTestD /
InputArgumentTestC )
ArrayInputTestB '
ArgvInputTestA '
HelperSetTest@ 3
FormatterHelperTest? -
DialogHelperTest> 1
FormatterStyleTest= =
OutputFormatterStyleTest#< G
OutputFormatterStyleStackTest; +
ListCommandTest: +
HelpCommandTest9 #
CommandTest8 +
ApplicationTest7 '
CommandTester6 /
ApplicationTester5 %
~StreamOutput4 
~Output3 !
~NullOutput2 '
~ConsoleOutput1 #
}StringInput0 #
}InputOption/ +
}InputDefinition. '
}InputArgument- 
}Input, !
}ArrayInput+ 
}ArgvInput* 
|HelperSet) 
|Helper( +
|FormatterHelper' %
|DialogHelper& ?
{OutputFormatterStyleStack% 5
{OutputFormatterStyle$ +
{OutputFormatter# #
zListCommand" #
zHelpCommand! 
zCommand  
yShell #
yApplication -
xFileResourceTest 7
xDirectoryResourceTest )
wProjectLoader1 !
wLoaderTest 1
wLoaderResolverTest 5
wDelegatingLoaderTest +
vFileLocatorTest 9
uVariableNodeDefinition #
uNodeBuilder /
uBarNodeDefinition +
uTreeBuilderTest 1
uSomeNodeDefinition +
uNodeBuilderTest +
uExprBuilderTest 9
uEnumNodeDefinitionTest ;
uArrayNodeDefinitionTest )
tScalarNodeTest ;
tPrototypedArrayNodeTest '
tProcessorTest )
tNormalizerTest
 
tMergeTest	 -
tFinalizationTest %
tEnumNodeTest +
tBooleanNodeTest '
tArrayNodeTest %
sFileResource /
sDirectoryResource )
rLoaderResolver 
rLoader !
rFileLoader  -
rDelegatingLoader ;
qFileLoaderLoadException0~ a
qFileLoaderImportCircularReferenceException} /
pUnsetKeyException| 5
pInvalidTypeException { A
pInvalidDefinitionException#z G
pInvalidConfigurationException!y C
pForbiddenOverwriteExceptionx 
pExceptionw 7
pDuplicateKeyExceptionv 9
oVariableNodeDefinitionu /
oValidationBuildert #
oTreeBuilders 5
oScalarNodeDefinitionr 5
oNormalizationBuilderq )
oNodeDefinitionp #
oNodeBuildero %
oMergeBuildern #
oExprBuilderm 1
oEnumNodeDefinitionl 7
oBooleanNodeDefinitionk 3
oArrayNodeDefinitionj %
nVariableNodei !
nScalarNodeh 3
nPrototypedArrayNodeg 
nProcessorf 
nEnumNodee #
nBooleanNoded 
nBaseNodec 
nArrayNodeb #
mFileLocatora #
mConfigCache
` 
lCBar	_ 
kFoo	^ 
kBaz	] 
kBar\ 
kFooBar	[ 
jFoo	Z 
jBaz	Y 
jBarX 
jFooBarW !
iSomeParentV 
iSomeClassU 
hBT 
hAS 
gB   ! ~H$nL'mE&~^>{R)






l
T
8
"				l	D		|R&mV?#kP4oW<'}^7(cL1dO;#kI!                       $t I
ExcludeDirectoryFilterIterators =
DepthRangeFilterIteratorr ;
DateRangeFilterIteratorq 5
CustomFilterIteratorp #
SplFileInfo
o 
Globn 
Finderm -
NumberComparatorl )
DateComparatork !
Comparatorj )
FilesystemTesti !
Filesystemh #
IOException"g E
ImmutableEventDispatcherTestf -
GenericEventTeste 
EventTest.d ]
TestEventSubscriberWithMultipleListeners'c O
TestEventSubscriberWithPrioritiesb 3
TestEventSubscribera /
TestEventListener` '
CallableClass_ 3
EventDispatcherTest^ /
SubscriberService] 
Service'\ O
ContainerAwareEventDispatcherTest[ =
ImmutableEventDispatcherZ %
GenericEventY +
EventDispatcherX 
Event#W G
ContainerAwareEventDispatcherV 7
TextareaFormFieldTestU 1
InputFormFieldTestT /
FormFieldTestCaseS '
FormFieldTestR /
FileFormFieldTestQ 3
ChoiceFormFieldTestP 
LinkTestO 
FormTestN #
CrawlerTestM /
TextareaFormFieldL )
InputFormFieldK 
FormFieldJ '
FileFormFieldI +
ChoiceFormField
H 
LinkG /
FormFieldRegistry
F 
FormE 
CrawlerD -
ParameterBagTestC 9
FrozenParameterBagTestB 1
YamlFileLoaderTestA /
XmlFileLoaderTest@ /
PhpFileLoaderTest? /
IniFileLoaderTest> /
ClosureLoaderTest= ;
ProjectServiceContainer< )
YamlDumperTest; '
XmlDumperTest: '
PhpDumperTest9 1
GraphvizDumperTest8 '
ReferenceTest7 '
ParameterTest6 )
DefinitionTest5 ;
DefinitionDecoratorTest4 )
CrossCheckTest3 ;
ProjectServiceContainer2 '
ContainerTest1 
FooClass0 5
ContainerBuilderTest(/ Q
ResolveReferencesToAliasesPassTest&. M
ResolveInvalidReferencesPassTest(- Q
ResolveDefinitionTemplatesPassTest,, Y
ReplaceAliasByActualDefinitionPassTest%+ K
RemoveUnusedDefinitionsPassTest* +
IntegrationTest&) M
InlineServiceDefinitionsPassTest$( I
CheckReferenceValidityPassTest6' m
CheckExceptionOnInvalidReferenceBehaviorPassTest%& K
CheckDefinitionValidityPassTest%% K
CheckCircularReferencesPassTest&$ M
AnalyzeServiceReferencesPassTest# %
ParameterBag" 1
FrozenParameterBag! )
YamlFileLoader  '
XmlFileLoader '
PhpFileLoader '
IniFileLoader !
FileLoader '
ClosureLoader =
ServiceNotFoundException' O
ServiceCircularReferenceException% K
ScopeWideningInjectionException% K
ScopeCrossingInjectionException -
RuntimeException  A
ParameterNotFoundException) S
ParameterCircularReferenceException 5
OutOfBoundsException )
LogicException =
InvalidArgumentException 9
InactiveScopeException 9
BadMethodCallException !
YamlDumper 
XmlDumper 
PhpDumper )
GraphvizDumper 
Dumper
 ?
ServiceReferenceGraphNode	 ?
ServiceReferenceGraphEdge 7
ServiceReferenceGraph$ I
ResolveReferencesToAliasesPass& M
ResolveParameterPlaceHoldersPass" E
ResolveInvalidReferencesPass$ I
ResolveDefinitionTemplatesPass( Q
ReplaceAliasByActualDefinitionPass %
RepeatedPass! C
RemoveUnusedDefinitionsPass  =
RemovePrivateAliasesPass# G
RemoveAbstractDefinitionsPass~ !
PassConfig%} K
MergeExtensionConfigurationPass| -
LoggingFormatter"{ E
InlineServiceDefinitionsPassz 
Compiler y A
CheckReferenceValidityPass2x e
CheckExceptionOnInvalidReferenceBehaviorPass!w C
CheckDefinitionValidityPass!v C
CheckCircularReferencesPass"u E
AnalyzeServiceReferencesPasst 
Variable   1 a=hCoT0}_7iL1#






r
\
M
/

					|	c	D	)	
cH!~jR8[7|V1	X2~hR>&v`L9%m\H1                             z '
CsrfExtensiony !
ChoiceViewx 
UrlTypew %
TimezoneTypev 
TimeTypeu 
TextTypet %
TextareaTypes !
SearchTyper %
RepeatedTypeq 
RadioTypep #
PercentTypeo %
PasswordTypen !
NumberTypem 
MoneyTypel !
LocaleTypek %
LanguageTypej #
IntegerTypei !
HiddenTypeh 
FormTypeg 
FileTypef 
FieldTypee 
EmailTyped 
DateTypec %
DateTimeTypeb #
CountryTypea )
CollectionType` !
ChoiceType_ %
CheckboxType^ %
BirthdayType] %
TrimListener\ 1
ResizeFormListener[ ;
MergeCollectionListenerZ 9
FixUrlProtocolListenerY 7
FixRadioInputListenerX =
FixCheckboxInputListener"W E
ValueToDuplicatesTransformer)V S
PercentToLocalizedStringTransformer(U Q
NumberToLocalizedStringTransformer'T O
MoneyToLocalizedStringTransformer)S S
IntegerToLocalizedStringTransformer$R I
DateTimeToTimestampTransformer!Q C
DateTimeToStringTransformer"P E
DateTimeToRfc3339Transformer*O U
DateTimeToLocalizedStringTransformer N A
DateTimeToArrayTransformerM 5
DataTransformerChainL =
ChoiceToValueTransformer%K K
ChoiceToBooleanArrayTransformer J A
ChoicesToValuesTransformer&I M
ChoicesToBooleanArrayTransformer H A
BooleanToStringTransformerG ;
BaseDateTimeTransformerF ;
ArrayToPartsTransformerE 1
PropertyPathMapperD '
CoreExtensionC -
SimpleChoiceListB -
ObjectChoiceListA )
LazyChoiceList@ !
ChoiceList? ;
UnexpectedTypeException> 3
TypeLoaderException= ;
TypeDefinitionException#< G
TransformationFailedException; 3
StringCastException#: G
PropertyAccessDeniedException9 /
NotValidException8 ;
NotInitializedException"7 E
InvalidPropertyPathException6 =
InvalidPropertyException#5 G
InvalidConfigurationException4 '
FormException3 7
ErrorMappingException2 /
CreationException1 7
AlreadyBoundException0 +
FilterDataEvent/ 
DataEvent. -
FormRegistryTest- 3
ReversedTransformer, ;
ResolvedFormTypeFactory+ -
ResolvedFormType* 1
PreloadedExtension) 
FormView( 5
FormTypeGuesserChain' 
Forms& %
FormRenderer% %
FormRegistry$ 1
FormFactoryBuilder# #
FormFactory" !
FormEvents! 
FormEvent  
FormError /
FormConfigBuilder #
FormBuilder
 
Form /
CallbackValidator 3
CallbackTransformer 7
AbstractTypeExtension %
AbstractType 9
AbstractRendererEngine /
AbstractExtension 5
SortableIteratorTest /
InnerSizeIterator! C
SizeRangeFilterIteratorTest$ I
RecursiveDirectoryIteratorTest 5
RealIteratorTestCase$ I
TestMultiplePcreFilterIterator$ I
MultiplePcreFilterIteratorTest -
IteratorTestCase 
Iterator 1
FilterIteratorTest /
InnerTypeIterator  A
FileTypeFilterIteratorTest
 /
InnerNameIterator 	 A
FilenameFilterIteratorTest 5
MockFileListIterator +
MockSplFileInfo# G
FilecontentFilterIteratorTest( Q
ExcludeDirectoryFilterIteratorTest" E
DepthRangeFilterIteratorTest! C
DateRangeFilterIteratorTest =
CustomFilterIteratorTest 
GlobTest  !
FinderTest 5
NumberComparatorTest~ 1
DateComparatorTest} )
ComparatorTest| -
SortableIterator{ ;
SizeRangeFilterIterator z A
RecursiveDirectoryIterator y A
MultiplePcreFilterIteratorx )
FilterIteratorw 9
FileTypeFilterIteratorv 9
FilenameFilterIteratoru ?
FilecontentFilterIterator   } aD#zV.dUB.~Y?&uS/




i
K
-
				r	P	6	],W4[;!}gQ(}cI3[8fJ:&hK9"             w 
TestGuessv '
TestExtensionu 
Magiciant 3
FooTypeBazExtensions 3
FooTypeBarExtensionr 
FooType"q E
FooSubTypeWithParentInstancep !
FooSubTypeo 3
FixedFilterListenern 5
FixedDataTransformerm /
CustomArrayObjectl !
AuthorTypek 
Authorj 1
AlternatingRowTypei /
ViolationPathTesth 3
ViolationMapperTestg %
TypeTestCase$f I
FormTypeValidatorExtensionTeste 9
ValidationListenerTestd /
FormValidatorTestc ;
BindRequestListenerTestb ?
FormTypeCsrfExtensionTest)a S
FormTypeCsrfExtensionTest_ChildType ` A
CsrfValidationListenerTest_ ;
SessionCsrfProviderTest^ ;
DefaultCsrfProviderTest] #
UrlTypeTest\ %
TypeTestCase[ -
TimezoneTypeTestZ %
TimeTypeTestY -
RepeatedTypeTestX -
PasswordTypeTestW )
NumberTypeTestV '
MoneyTypeTestU /
LocalizedTestCaseT )
LocaleTypeTestS -
LanguageTypeTestR +
IntegerTypeTestQ %
FormTypeTest%P K
FormTest_AuthorWithoutRefSetterO %
FileTypeTestN %
DateTypeTestM -
DateTimeTypeTestL +
CountryTypeTestK 1
CollectionTypeTestJ )
ChoiceTypeTestI ?
ChoiceTypePerformanceTestH -
CheckboxTypeTestG -
TrimListenerTestF 9
ResizeFormListenerTest!E C
MergeCollectionListenerTest2D e
MergeCollectionListenerCustomArrayObjectTest&C M
MergeCollectionListenerArrayTest,B Y
MergeCollectionListenerArrayObjectTest A A
FixUrlProtocolListenerTest@ ?
FixRadioInputListenerTest&? M
ValueToDuplicatesTransformerTest-> [
PercentToLocalizedStringTransformerTest,= Y
NumberToLocalizedStringTransformerTest+< W
MoneyToLocalizedStringTransformerTest; /
LocalizedTestCase-: [
IntegerToLocalizedStringTransformerTest(9 Q
DateTimeToTimestampTransformerTest%8 K
DateTimeToStringTransformerTest&7 M
DateTimeToRfc3339TransformerTest.6 ]
DateTimeToLocalizedStringTransformerTest$5 I
DateTimeToArrayTransformerTest4 -
DateTimeTestCase3 =
DataTransformerChainTest"2 E
ChoiceToValueTransformerTest$1 I
ChoicesToValuesTransformerTest$0 I
BooleanToStringTransformerTest!/ C
ArrayToPartsTransformerTest. 9
PropertyPathMapperTest- 5
SimpleChoiceListTest, 5
ObjectChoiceListTest-+ [
ObjectChoiceListTest_EntityWithToString$* I
LazyChoiceListTest_InvalidImpl) ;
LazyChoiceListTest_Impl( 1
LazyChoiceListTest' )
ChoiceListTest& )
SimpleFormTest % A
SimpleFormTest_Traversable$ =
SimpleFormTest_Countable# 5
ResolvedFormTypeTest" ;
FormPerformanceTestCase! ;
FormIntegrationTestCase  +
FormFactoryTest 9
FormFactoryBuilderTest )
FormConfigTest +
FormBuilderTest -
CompoundFormTest! C
CompoundFormPerformanceTest ;
AbstractTableLayoutTest 1
AbstractLayoutTest -
AbstractFormTest /
ConcreteExtension 7
AbstractExtensionTest 7
AbstractDivLayoutTest !
ValueGuess 
TypeGuess 
Guess 7
ViolationPathIterator '
ViolationPath +
ViolationMapper %
RelativePath #
MappingRule 5
ValidatorTypeGuesser 1
ValidatorExtension
 %
ServerParams$	 I
RepeatedTypeValidatorExtension  A
FormTypeValidatorExtension 1
ValidationListener '
FormValidator
 
Form =
TemplatingRendererEngine 3
TemplatingExtension% K
FormTypeHttpFoundationExtension ;
HttpFoundationExtension  3
BindRequestListener" E
DependencyInjectionExtension~ 7
FormTypeCsrfExtension} 9
CsrfValidationListener| 3
SessionCsrfProvider{ 3
DefaultCsrfProvider   + rJLU;)~kU?%lM,




o
V
@
 
						_	A	%	
jM2	oR3hN.pN.tF+o_I4nP3|]>+                         | 
Extension{ 7
ConfigurableExtensionz 7
AddClassesToCachePassy )
StopwatchEventx 
Sectionw 
Stopwatchv -
ExceptionHandleru %
ErrorHandler,t Y
ContainerAwareTraceableEventDispatchers /
TimeDataCollectorr 3
RouterDataCollectorq 5
RequestDataCollectorp 3
MemoryDataCollectoro 3
LoggerDataCollectorn 9
ExceptionDataCollectorm 1
EventDataCollectorl '
DataCollectork 3
ConfigDataCollectorj 1
ControllerResolveri #
FileLocatorh %
KernelEventsg 
Kernelf !
HttpKernele 
Clientd 5
CacheWarmerAggregatec #
CacheWarmerb /
ChainCacheClearera 
Bundle` ;
SessionHandlerProxyTest_ +
NativeProxyTest^ /
AbstractProxyTest*] U
ConcreteSessionHandlerInterfaceProxy\ '
ConcreteProxy[ =
NativeSessionStorageTest Z A
MockFileSessionStorageTest!Y C
MockArraySessionStorageTestX +
MetadataBagTestW 7
PdoSessionHandlerTestV 9
NullSessionStorageTestU =
NativeSessionHandlerTest"T E
NativeFileSessionHandlerTestS ?
MongoDbSessionHandlerTest R A
MemcacheSessionHandlerTest"Q E
MemcacheddSessionHandlerTestP #
SessionTestO %
FlashBagTestN 9
AutoExpireFlashBagTestM -
AttributeBagTestL -
UploadedFileTestK %
MimeTypeTestJ 
FileTestI 5
StreamedResponseTest H A
NamespacedAttributeBagTestG '
ServerBagTestF -
StringableObjectE %
ResponseTestD 7
ResponseHeaderBagTestC 3
RequestContentProxyB #
RequestTestA 1
RequestMatcherTest@ 5
RedirectResponseTest? -
ParameterBagTest> -
JsonResponseTest= '
HeaderBagTest< #
FileBagTest; !
CookieTest: /
ApacheRequestTest9 3
SessionHandlerProxy8 #
NativeProxy7 '
AbstractProxy6 5
NativeSessionStorage5 9
MockFileSessionStorage4 ;
MockArraySessionStorage3 #
MetadataBag2 /
PdoSessionHandler1 1
NullSessionHandler0 5
NativeSessionHandler/ =
NativeFileSessionHandler. 7
MongoDbSessionHandler- 9
MemcacheSessionHandler, ;
MemcachedSessionHandler+ 
Session* 
FlashBag) 1
AutoExpireFlashBag( 9
NamespacedAttributeBag' %
AttributeBag& +
MimeTypeGuesser% =
MimeTypeExtensionGuesser$ ;
FileinfoMimeTypeGuesser# ?
FileBinaryMimeTypeGuesser" -
ExtensionGuesser! %
UploadedFile
  
File +
UploadException ;
UnexpectedTypeException 7
FileNotFoundException '
FileException 7
AccessDeniedException -
StreamedResponse 
ServerBag /
ResponseHeaderBag 
Response )
RequestMatcher 
Request -
RedirectResponse %
ParameterBag %
JsonResponse 
HeaderBag 
FileBag 
Cookie '
ApacheRequest =
VirtualFormAwareIterator 5
PropertyPathIterator 3
PropertyPathBuilder
 %
PropertyPath	 
FormUtil -
PropertyPathTest' O
PropertyPathCustomArrayObjectTest  A
PropertyPathCollectionTest- [
PropertyPathCollectionTest_CarStructure- [
PropertyPathCollectionTest_CompositeCarB 
PropertyPathCollectionTest_CarNoAdderAndRemoverWithProperty5 k
PropertyPathCollectionTest_CarNoAdderAndRemover/ _
PropertyPathCollectionTest_CarOnlyRemover-  [
PropertyPathCollectionTest_CarOnlyAdder' O
PropertyPathCollectionTest_Engine2~ e
PropertyPathCollectionTest_CarCustomSingular$} I
PropertyPathCollectionTest_Car| ;
PropertyPathBuilderTest{ 7
PropertyPathArrayTest!z C
PropertyPathArrayObjectTesty %
FormUtilTestx 
GuessTest   - T.jH%l]I$jYG)
oO"







i
I
%
				q	W	9		cE)tT>iI$b>(t@{bE(iL7fC-                          %StubIntlTest ?StubIntlDateFormatterTest  -StubCollatorTest TestCase~ !LocaleTest} 3
StubNumberFormatter| !
StubLocale{ 7
StubIntlDateFormatterz 
StubIntly %
StubCollatorx +	YearTransformerw #	Transformerv 3	TimeZoneTransformeru /	SecondTransformert 1	QuarterTransformers -	MonthTransformerr /	MinuteTransformerq +	HourTransformerp 3	Hour2401Transformero 3	Hour2400Transformern 3	Hour1201Transformerm 3	Hour1200Transformerl +	FullTransformerk )	DayTransformerj 5	DayOfYearTransformeri 5	DayOfWeekTransformerh +	AmPmTransformerg Localef ;NotImplementedException#e GMethodNotImplementedException0d aMethodArgumentValueNotImplementedException+c WMethodArgumentNotImplementedExceptionb RedisMocka %MemcacheMock` 'MemcachedMock_ ?SqliteProfilerStorageTest^ =RedisProfilerStorageTest] %ProfilerTest \ AMongoDbProfilerStorageTest-[ [MongoDbProfilerStorageTestDataCollector!Z CDummyMongoDbProfilerStorage!Y CMemcacheProfilerStorageTest"X EMemcachedProfilerStorageTestW ;FileProfilerStorageTest!V CAbstractProfilerStorageTestU 9TestMultipleHttpKernelT )TestHttpKernelS StoreTestR /HttpCacheTestCaseQ 'HttpCacheTestP EsiTestO 3TestEventDispatcherN !TestClientM 'KernelForTestL 7KernelForOverrideNameK %FooBarBundleJ 9ExtensionPresentBundleI ?ExtensionPresentExtensionH ! FooCommandG 7
ExtensionLoadedBundleF =
ExtensionLoadedExtensionE 7
ExtensionAbsentBundleD 5
FlattenExceptionTestC 1
RouterListenerTestB 5
ResponseListenerTestA 1
LocaleListenerTest#@ G
TestKernelThatThrowsException? !
TestKernel> !
TestLogger= 7
ExceptionListenerTest< +
EsiListenerTest; '
StopwatchTest: 1
StopwatchEventTest9 5
ExceptionHandlerTest8 -
ErrorHandlerTest7 1
StaticClassFixture06 a
ContainerAwareTraceableEventDispatcherTest5 =
RequestDataCollectorTest4 ;
MemoryDataCollectorTest3 ;
LoggerDataCollectorTest 2 A
ExceptionDataCollectorTest1 9
EventDataCollectorTest0 '
KernelForTest/ ;
ConfigDataCollectorTest. +
FileLocatorTest- )
TestHttpKernel, 
Logger+ !
KernelTest* !
Controller) )
HttpKernelTest)( S
MergeExtensionConfigurationPassTest' 9
ControllerResolverTest& !
ClientTest% +
TestCacheWarmer$ +
CacheWarmerTest# =
CacheWarmerAggregateTest" 7
ChainCacheClearerTest! !
BundleTest  7
SqliteProfilerStorage 5
RedisProfilerStorage 
Profiler 
Profile 1
PdoProfilerStorage 5
MysqlProfilerStorage 9
MongoDbProfilerStorage ;
MemcacheProfilerStorage =
MemcachedProfilerStorage 3
FileProfilerStorage! C
BaseMemcacheProfilerStorage !
NullLogger 
Store 
HttpCache =
EsiResponseCacheStrategy	 
Esi 7
NotFoundHttpException# G
MethodNotAllowedHttpException '
HttpException -
FlattenException ?
AccessDeniedHttpException =
StreamedResponseListener
 )
RouterListener	 -
ResponseListener -
ProfilerListener )
LocaleListener /
ExceptionListener #
EsiListener /
PostResponseEvent #
KernelEvent" E
GetResponseForExceptionEvent) S
GetResponseForControllerResultEvent  -
GetResponseEvent 3
FilterResponseEvent~ 7
FilterControllerEvent%} K
MergeExtensionConfigurationPass   1 bQ8pX;wS8)e8hJ3





e
N
4
!
						u	U	5	nS8bM1!eA#p]7\7mN5xY=!tP1                                72AccessDeniedException  A1AuthenticationFailureEvent 31AuthenticationEvent =0PlaintextPasswordEncoder" E0MessageDigestPasswordEncoder )0EncoderFactory 30BasePasswordEncoder  /RoleVoter 1/RoleHierarchyVoter~ 1/AuthenticatedVoter} 7.AccessDecisionManager| +-SecurityContext{ 5-AuthenticationEventsz 7,UsernamePasswordTokeny +,RememberMeTokenx 7,PreAuthenticatedTokenw ),AnonymousTokenv ',AbstractTokenu ++PersistentTokent 7+InMemoryTokenProvider s A*UserAuthenticationProvider&r M*RememberMeAuthenticationProvider,q Y*PreAuthenticatedAuthenticationProviderp ?*DaoAuthenticationProvider%o K*AnonymousAuthenticationProvider!n C)AuthenticationTrustResolver#m G)AuthenticationProviderManagerl (FieldVotek (AclVoterj #'MaskBuilderi 1'BasicPermissionMaph 7&SidNotLoadedExceptiong =&NotAllAclsFoundExceptionf 3&NoAceFoundException"e E&InvalidDomainObjectExceptiond &Exception%c K&ConcurrentModificationExceptionb 5&AclNotFoundExceptiona ?&AclAlreadyExistsException` 5%UserSecurityIdentity'_ O%SecurityIdentityRetrievalStrategy^ 5%RoleSecurityIdentity ] A%PermissionGrantingStrategy%\ K%ObjectIdentityRetrievalStrategy[ )%ObjectIdentityZ !%FieldEntryY %EntryX -%DoctrineAclCacheW #%AuditLoggerV 1%AclCollectionCache	U %AclT $SchemaS 1$MutableAclProviderR #$AclProviderQ 5#PhpMatcherDumperTestP ;#ApacheMatcherDumperTestO )"UrlMatcherTestN ;"TraceableUrlMatcherTest M A"RedirectableUrlMatcherTestL 5"ApacheUrlMatcherTestK 1!YamlFileLoaderTestJ /!XmlFileLoaderTestI /!PhpFileLoaderTestH /!ClosureLoaderTestG =!AnnotationFileLoaderTest#F G!AnnotationDirectoryLoaderTestE ?!AnnotationClassLoaderTest"D E!AbstractAnnotationLoaderTestC - UrlGeneratorTestB 9PhpGeneratorDumperTestA 9RedirectableUrlMatcher@ 3CustomXmlFileLoader? FooClass> 'AbstractClass= RouteTest< /RouteCompilerTest; 3RouteCollectionTest: /CompiledRouteTest9 RouteTest8 -PhpMatcherDumper7 'MatcherDumper6 3ApacheMatcherDumper5 !UrlMatcher4 3TraceableUrlMatcher3 9RedirectableUrlMatcher2 -ApacheUrlMatcher1 )YamlFileLoader0 'XmlFileLoader/ 'PhpFileLoader. 'ClosureLoader- 5AnnotationFileLoader, ?AnnotationDirectoryLoader+ 7AnnotationClassLoader* %UrlGenerator) 1PhpGeneratorDumper( +GeneratorDumper' 9RouteNotFoundException& ?ResourceNotFoundException)% SMissingMandatoryParametersException$ ?MethodNotAllowedException# ?InvalidParameterException" Router! 'RouteCompiler  +RouteCollection Route )RequestContext 'CompiledRoute Route /SimpleProcessTest  ASigchildEnabledProcessTest! CSigchildDisabledProcessTest" EProcessInSigchildEnvironment  AProcessFailedExceptionTest 1ProcessBuilderTest )PhpProcessTest ;PhpExecutableFinderTest 3AbstractProcessTest )ProcessBuilder Process !PhpProcess 3PhpExecutableFinder -ExecutableFinder -RuntimeException 9ProcessFailedException #OptionsTest
 3OptionsResolverTest	 +OptionsResolver Options ?OptionDefinitionException ;MissingOptionsException ;InvalidOptionsException ;StubNumberFormatterTest )StubLocaleTest   { jB!sZA"ugP8nYF._8 



m
H
/
						q	=	]CqS;xI1h?a>!uR2|R,lZB.                             !QTestObject !PTestObject  )PClassUtilsTest OUserTest~ =OInMemoryUserProviderTest} 7OChainUserProviderTest| +OUserCheckerTest{ 3NSecurityContextTestz 1MSwitchUserRoleTesty MRoleTestx /MRoleHierarchyTest"w ELPlaintextPasswordEncoderTest&v MLMessageDigestPasswordEncoderTestu 'LSomeChildUsert LSomeUsers 1LEncoderFactoryTestr ;LBasePasswordEncoderTestq +LPasswordEncoderp 'KRoleVoterTesto 9KRoleHierarchyVoterTestn 9KAuthenticatedVoterTestm ?JAccessDecisionManagerTestl ?IUsernamePasswordTokenTestk 3IRememberMeTokenTestj ?IPreAuthenticatedTokenTesti 1IAnonymousTokenTesth /IAbstractTokenTestg ITestUserf 3HPersistentTokenTeste ?HInMemoryTokenProviderTest$d IGUserAuthenticationProviderTest*c UGRememberMeAuthenticationProviderTest0b aGPreAuthenticatedAuthenticationProviderTest#a GGDaoAuthenticationProviderTest)` SGAnonymousAuthenticationProviderTest%_ KFAuthenticationTrustResolverTest'^ OFAuthenticationProviderManagerTest] %EAclVoterTest\ +DMaskBuilderTest[ 9CBasicPermissionMapTestZ -BTestDomainObjectY AEntryTestX =@UserSecurityIdentityTestW )@CustomUserImpl+V W@SecurityIdentityRetrievalStrategyTestU =@RoleSecurityIdentityTest$T I@PermissionGrantingStrategyTestS -@TestDomainObjectR 1@ObjectIdentityTestQ %@DomainObject)P S@ObjectIdentityRetrievalStrategyTestO )@FieldEntryTestN 5@DoctrineAclCacheTestM +@AuditLoggerTestL @AclTestK 9?MutableAclProviderTestJ +?AclProviderTestI =?AclProviderBenchmarkTest#H G>SessionAuthenticationStrategy"G E=TokenBasedRememberMeServicesF -=ResponseListener,E Y=PersistentTokenBasedRememberMeServices D A=AbstractRememberMeServicesC 5<SessionLogoutHandler!B C<DefaultLogoutSuccessHandler!A C<CookieClearingLogoutHandler @ A;X509AuthenticationListener0? a;UsernamePasswordFormAuthenticationListener> 1;SwitchUserListener= 1;RememberMeListener< );LogoutListener; /;ExceptionListener: !;DigestData"9 E;DigestAuthenticationListener8 +;ContextListener7 +;ChannelListener!6 C;BasicAuthenticationListener%5 K;AnonymousAuthenticationListener4 );AccessListener&3 M;AbstractPreAuthenticatedListener$2 I;AbstractAuthenticationListener1 +:SwitchUserEvent0 7:InteractiveLoginEvent#/ G9RetryAuthenticationEntryPoint". E9FormAuthenticationEntryPoint$- I9DigestAuthenticationEntryPoint#, G9BasicAuthenticationEntryPoint)+ S8DefaultAuthenticationSuccessHandler)* S8DefaultAuthenticationFailureHandler) )7SecurityEvents( 7HttpUtils' #7FirewallMap& 7Firewall% 7AccessMap$ 76UserPasswordValidator# %6UserPassword" !5ClassUtils! #4UserChecker
  4User 54InMemoryUserProvider /4ChainUserProvider )3SwitchUserRole '3RoleHierarchy
 3Role ?2UsernameNotFoundException =2UnsupportedUserException 92TokenNotFoundException! C2SessionUnavailableException ?2ProviderNotFoundException 72NonceExpiredException +2LogoutException +2LockedException ?2InvalidCsrfTokenException) S2InsufficientAuthenticationException /2DisabledException! C2CredentialsExpiredException 52CookieTheftException ;2BadCredentialsException$ I2AuthenticationServiceException ;2AuthenticationException0
 a2AuthenticationCredentialsNotFoundException	 92AccountStatusException ;2AccountExpiredException   - T8tT;%g='~fL*fW1




v
g
V
A
-

 						t	_	J	0	 	t`A(wWC#kP9%jR6$
{aJ4dJ/nQ1	|bG-          -oPoFileLoaderTest /oPhpFileLoaderTest -oMoFileLoaderTest /oLocalizedTestCase /oIniFileLoaderTest 5oIcuResFileLoaderTest
 5oIcuDatFileLoaderTest	 /oCsvFileLoaderTest nString )nTranslatorTest 9nPluralizationRulesTest 3nMessageSelectorTest 5nMessageCatalogueTest %nIntervalTest 9nIdentityTranslatorTest 1mYamlFileDumperTest  3mXliffFileDumperTest -mQtFileDumperTest~ -mPoFileDumperTest} /mPhpFileDumperTest| -mMoFileDumperTest{ /mIniFileDumperTestz 5mIcuResFileDumperTesty /mCsvFileDumperTestx )lYamlFileLoaderw +lXliffFileLoaderv 5lQtTranslationsLoaderu %lPoFileLoadert 'lPhpFileLoaders %lMoFileLoaderr 'lIniFileLoaderq -lIcuResFileLoaderp -lIcuDatFileLoadero 'lCsvFileLoadern #lArrayLoaderm !kTranslatorl 1kPluralizationRulesk +kMessageSelectorj -kMessageCataloguei kIntervalh 1kIdentityTranslatorg )jChainExtractorf )iYamlFileDumpere +iXliffFileDumperd %iQtFileDumperc %iPoFileDumperb 'iPhpFileDumpera %iMoFileDumper` 'iIniFileDumper_ -iIcuResFileDumper^ !iFileDumper] 'iCsvFileDumper\ /hStringStorageTest[ #hTestStorageZ #hStorageTestY +hFileStorageTestX 9gTemplateNameParserTestW 7gProjectTemplateLoaderV 7gProjectTemplateEngineU 'gPhpEngineTestT 9fProjectTemplateLoader4S !fLoaderTestR 9fProjectTemplateLoader2Q 5fFilesystemLoaderTestP 9fProjectTemplateLoader1O +fChainLoaderTestN =fProjectTemplateLoaderVarM 7fProjectTemplateLoaderL +fCacheLoaderTestK +eSlotsHelperTestJ 7eProjectTemplateHelperI !eHelperTestH 5eCoreAssetsHelperTestG -eAssetsHelperTestF %dSimpleHelperE ;dProjectTemplateDebuggerD 'cStringStorageC cStorageB #cFileStorageA bLoader@ -bFilesystemLoader? #bChainLoader> #bCacheLoader= #aSlotsHelper< aHelper; -aCoreAssetsHelper: %aAssetsHelper9 /`TemplateReference8 1`TemplateNameParser7 `PhpEngine6 -`DelegatingEngine5 !_UrlPackage4 #_PathPackage3 _Package2 ^Model1 )^SerializerTest0 3]GetConstructorDummy/ #]GetSetDummy . A]GetSetMethodNormalizerTest- 5]CustomNormalizerTest, -\TraversableDummy+ #\ScalarDummy"* E\NormalizableTraversableDummy) \Dummy( 3\DenormalizableDummy' )[XmlEncoderTest& !ZSerializer% ?YSerializerAwareNormalizer$ 9YGetSetMethodNormalizer# -YCustomNormalizer" 5XUnsupportedException! =XUnexpectedValueException  -XRuntimeException )XLogicException =XInvalidArgumentException !WXmlEncoder 9WSerializerAwareEncoder #WJsonEncoder !WJsonEncode !WJsonDecode %WChainEncoder %WChainDecoder& MVTokenBasedRememberMeServicesTest0 aVPersistentTokenBasedRememberMeServicesTest$ IVAbstractRememberMeServicesTest =USessionLogoutHandlerTest% KUCookieClearingLogoutHandlerTest 'THttpUtilsTest %TFirewallTest +TFirewallMapTest 9SRememberMeListenerTest 1SLogoutListenerTest )SDigestDataTest 3SContextListenerTest
 3SChannelListenerTest%	 KSBasicAuthenticationListenerTest) SSAnonymousAuthenticationListenerTest 1SAccessListenerTest' ORRetryAuthenticationEntryPointTest& MRFormAuthenticationEntryPointTest( QRDigestAuthenticationEntryPointTest' ORBasicAuthenticationEntryPointTest   F vY5gM3&bSB(pbK4wgNA.






}
l
R
D
-

								p	c	M	>	,	uT8~lT:&oU9nH-lG+y^B)
{[A"{`F                ' -xUrlValidatorTest& /xTypeValidatorTest% /xTrueValidatorTest$ /xTimeValidatorTest# 1xRegexValidatorTest" 1xRangeValidatorTest! /xNullValidatorTest  5xNotNullValidatorTest 7xNotBlankValidatorTest -xMinValidatorTest 9xMinLengthValidatorTest -xMaxValidatorTest 9xMaxLengthValidatorTest /xLocalizedTestCase 3xLocaleValidatorTest 3xLengthValidatorTest 7xLanguageValidatorTest +xIpValidatorTest 1xImageValidatorTest /xFileValidatorTest 7xFileValidatorPathTest ;xFileValidatorObjectTest 1xFalseValidatorTest 1xEmailValidatorTest /xDateValidatorTest 7xDateTimeValidatorTest 1xCountValidatorTest! CxCountValidatorCountableTest+ WxCountValidatorCountableTest_Countable
 ;xCountValidatorArrayTest	 5xCountryValidatorTest ;xCollectionValidatorTest. ]xCollectionValidatorCustomArrayObjectTest /xCustomArrayObject" ExCollectionValidatorArrayTest( QxCollectionValidatorArrayObjectTest )xCollectionTest 3xChoiceValidatorTest 7xCallbackValidatorTest"  ExCallbackValidatorTest_Object! CxCallbackValidatorTest_Class~ 1xBlankValidatorTest} -xAllValidatorTest| xAllTest{ +wYamlFilesLoaderz )wYamlFileLoadery )wXmlFilesLoaderx 'wXmlFileLoaderw 1wStaticMethodLoaderv #wLoaderChainu #wFilesLoadert !wFileLoaders -wAnnotationLoaderr )wAbstractLoaderq vApcCachep -uPropertyMetadatao )uMemberMetadatan )uGetterMetadatam +uElementMetadatal 5uClassMetadataFactoryk 'uClassMetadataj =uBlackholeMetadataFactoryi 1tValidatorExceptionh ;tUnexpectedTypeExceptiong ;tMissingOptionsExceptionf -tMappingExceptione ;tInvalidOptionsExceptiond =tGroupDefinitionException#c GtConstraintDefinitionExceptionb sRequireda sOptional` rValid_ %rUrlValidator	^ rUrl] 'rTypeValidator
\ rType[ 'rTrueValidator
Z rTrueY 'rTimeValidator
X rTimeW )rRegexValidatorV rRegexU )rRangeValidatorT rRangeS 'rNullValidator
R rNullQ -rNotNullValidatorP rNotNullO /rNotBlankValidatorN rNotBlankM %rMinValidatorL 1rMinLengthValidatorK rMinLength	J rMinI %rMaxValidatorH 1rMaxLengthValidatorG rMaxLength	F rMaxE +rLocaleValidatorD rLocaleC +rLengthValidatorB rLengthA /rLanguageValidator@ rLanguage? #rIpValidator> rIp= )rImageValidator< rImage; 7rGroupSequenceProvider: 'rGroupSequence9 'rFileValidator
8 rFile7 )rFalseValidator6 rFalse5 )rEmailValidator4 rEmail3 'rDateValidator2 /rDateTimeValidator1 rDateTime
0 rDate/ )rCountValidator. -rCountryValidator- rCountry, rCount+ 3rCollectionValidator* !rCollection) +rChoiceValidator( rChoice' /rCallbackValidator& rCallback% )rBlankValidator$ rBlank# %rAllValidator	" rAll! -qValidatorFactory  -qValidatorContext -qValidatorBuilder qValidator !qValidation #qGraphWalker 9qGlobalExecutionContext -qExecutionContext ;qConstraintViolationList 3qConstraintViolation  AqConstraintValidatorFactory 3qConstraintValidator !qConstraint /pTranslationWriter 1oYamlFileLoaderTest 3oXliffFileLoaderTest =oQtTranslationsLoaderTest   ; dC%w^I+ze@%kN1oO3






{
h
Z
C
+

								v	^	K	2		taJ5wZ?#	vaJ/{YE(kU6aG+wU4hT;       = +ProxyDefinition< !Autoloader; 5AbstractProxyFactory: 1SymfonyFileLocator9 +StaticPHPDriver8 PHPDriver7 1MappingDriverChain6 !FileDriver5 1DefaultFileLocator4 -AnnotationDriver3 ;StaticReflectionService2 =RuntimeReflectionService1 -MappingException"0 EAbstractClassMetadataFactory/ 1PreUpdateEventArgs. -OnClearEventArgs- -ManagerEventArgs , ALoadClassMetadataEventArgs+ 1LifecycleEventArgs* -PersistentObject) 9ObjectManagerDecorator( ;AbstractManagerRegistry' Version& Lexer% %EventManager$ EventArgs# +CommonException" #ClassLoader! 3LazyArrayCollection  7ExpressionBuilderTest %CriteriaTest )CollectionTest !TestObject" EClosureExpressionVisitorTest 3ArrayCollectionTest  AAbstractLazyCollectionTest Value /ExpressionVisitor 3CompositeExpression !Comparison =ClosureExpressionVisitor /ExpressionBuilder Criteria +ArrayCollection 9AbstractLazyCollection -DoctrineTestCase /ZendDataCacheTest +XcacheCacheTest /WincacheCacheTest 'VoidCacheTest #SQLite3Test
 'RiakCacheTest	 )RedisCacheTest +PredisCacheTest 'SetStateClass -NotSetStateClass -PhpFileCacheTest -MongoDBCacheTest 1MemcachedCacheTest /MemcacheCacheTest 3FilesystemCacheTest  'FileCacheTest 1CouchbaseCacheTest~ )ChainCacheTest} CacheTest| /BaseFileCacheTest{ )ArrayCacheTestz %ApcCacheTesty 'ZendDataCachex #XcacheCachew 'WinCacheCachev VoidCacheu Versiont %SQLite3Caches RiakCacher !RedisCacheq #PredisCachep %PhpFileCacheo %MongoDBCachen )MemcachedCachem 'MemcacheCachel +FilesystemCachek FileCachej )CouchbaseCachei !ChainCacheh 'CacheProviderg !ArrayCachef ApcCachee YamlTestd Bc !ParserTestb !InlineTesta A` !DumperTest_ )ParseException^ 'DumpException
] ~Yaml\ ~Unescaper[ ~ParserZ ~InlineY ~EscaperX ~DumperW 1}YamlFileLoaderTestV /}XmlFileLoaderTestU =}BaseStaticLoaderDocumentT 5}StaticLoaderDocumentS 1}StaticLoaderEntityR 9}StaticMethodLoaderTestQ +}LoaderChainTestP +}FilesLoaderTestO 5}AnnotationLoaderTestN 5|PropertyMetadataTestM 1|TestMemberMetadataL 1|MemberMetadataTestK 1|GetterMetadataTestJ 3|TestElementMetadataI 3|ElementMetadataTestH /|ClassMetadataTestG !|TestLoaderF =|ClassMetadataFactoryTestE %{ApcCacheTestD zReferenceC 1zPropertyConstraint B AzInvalidConstraintValidatorA /zInvalidConstraint!@ CzGroupSequenceProviderEntity? #zFilesLoader> =zFakeClassMetadataFactory = AzFailingConstraintValidator< /zFailingConstraint; %zEntityParent: zEntity9 #zConstraintC8 #zConstraintB7 5zConstraintAValidator6 #zConstraintA5 +zClassConstraint4 'yValidatorTest3 5yValidatorFactoryTest2 5yValidatorContextTest1 5yValidatorBuilderTest0 +yGraphWalkerTest / AyGlobalExecutionContextTest. 5yExecutionContextTest- ;yConstraintViolationTest!, CyConstraintViolationListTest+ ;yConstraintValidatorTest'* OyConstraintValidatorTest_Validator) )yConstraintTest( xValidTest   # pG(pP0 vY5bI.qZ4




e
G
+
						m	S	2	 	aA"lYG/u[AR;!u_K/dAmR9s[C#               C 9EntityUserProviderTestB )DbalLoggerTestA )EntityTypeTest@ ?EntityTypePerformanceTest ? ADoctrineOrmTypeGuesserTest> 5EntityChoiceListTest= ;SingleStringIdentEntity< /SingleIdentEntity!; CNoToStringSingleIdentEntity: +ItemGroupEntity9 /DoubleIdentEntity8 7ContainerAwareFixture 7 ACompositeStringIdentEntity6 5CompositeIdentEntity5 /AssociationEntity24 eRegisterEventListenersAndSubscribersPassTest3 =ContainerAwareLoaderTest2 ?DoctrineDataCollectorTest1 3DoctrineOrmTestCase0 !MyListener$/ IContainerAwareEventManagerTest. 1EntityUserProvider- !DbalLogger, 9DbalSessionHandlerTest+ =DbalSessionHandlerSchema* 1DbalSessionHandler) !EntityType( %DoctrineType%' KMergeDoctrineCollectionListener& 9DoctrineOrmTypeGuesser% 5DoctrineOrmExtension"$ ECollectionToArrayTransformer# 7ORMQueryBuilderLoader" -EntityChoiceList! 'EntityFactory.  ]RegisterEventListenersAndSubscribersPass 9DoctrineValidationPass ?AbstractDoctrineExtension 5ContainerAwareLoader 7DoctrineDataCollector +ManagerRegistry  AContainerAwareEventManager -ProxyCacheWarmer -DoctrineTestCase 'InflectorTest Inflector -DoctrineTestCase #ChildObject stdClass #ChildObject stdClass DebugTest #ChildObject )ClassUtilsTest NoParent UseParent  AStaticReflectionParserTest
 3SameNamespaceParent2	 eRuntimePublicReflectionPropertyTestProxyMock) SRuntimePublicReflectionPropertyTest NoParent 7FullyClassifiedParent 9ExampleAnnotationClass 7DeeperNamespaceParent 7VariadicTypeHintClass 3StaticPropertyClass !SleepClass  +SerializedClass 7ProxyMagicMethodsTest~ )ProxyLogicTest} EvalBase| ;ProxyClassGeneratorTest{ -MagicWakeupClassz +MagicSleepClassy 'MagicSetClassx +MagicIssetClassw 'MagicGetClassv 1MagicGetByRefClassu +MagicCloneClass%t KLazyLoadableObjectClassMetadatas 1LazyLoadableObjectr 5InvalidTypeHintClassq 7CallableTypeHintClassp )AutoloaderTesto =AbstractProxyFactoryTestn 9SymfonyFileLocatorTest!m CStaticReflectionServiceTestl !TestEntityk 3StaticPHPDriverTest"j ERuntimeReflectionServiceTesti 'PHPDriverTesth )TestFileDriverg )FileDriverTestf 9DefaultFileLocatorTeste #ChildEntityd !RootEntityc =TestClassMetadataFactoryb =ClassMetadataFactoryTesta /DriverChainEntity` +DriverChainTest_ 9SimpleAnnotationDriver^ 5AnnotationDriverTest] Entity\ TestClass[ 1TestObjectMetadataZ !TestObjectY 5PersistentObjectTest X AObjectManagerDecoratorTest W ANullObjectManagerDecoratorV 3TestManagerRegistryU #TestManagerT 3ManagerRegistryTestS 3TestEventSubscriberR -EventManagerTestQ +ClassLoaderTestP )ExternalLoaderO ClassEN ClassDM 9ClassLoaderTest_ClassCL 9ClassLoaderTest_ClassBK 9ClassLoaderTest_ClassAJ InflectorI DebugH !ClassUtilsG =StaticReflectionPropertyF 9StaticReflectionParserE 9StaticReflectionMethodD 7StaticReflectionClass%C KRuntimePublicReflectionPropertyB %Psr0FindFileA =UnexpectedValueException@ 5OutOfBoundsException? =InvalidArgumentException> )ProxyGenerator   . waI9#	}bO9}S>~gQ5mO7




l
Y
(
						X	>	'	cH,oU3mH+aO9oS:
gN;xaG-hH.              O -ProfilerPassTestN 9AddCacheWarmerPassTestM 9RedirectControllerTestL 9InternalControllerTestK =ControllerNameParserTestJ +ApplicationTestI 1TemplateFinderTestH #WebTestCaseG +TemplateLocatorF -FilesystemLoaderE -TranslatorHelperD 'SessionHelperC %RouterHelperB 'RequestHelperA !FormHelper@ !CodeHelper? 'ActionsHelper> /TemplateReference= 1TemplateNameParser< 9TemplateFilenameParser; PhpEngine: +GlobalVariables9 -DelegatingEngine8 Debugger7 #PathPackage6 )PackageFactory5 Router4 9RedirectableUrlMatcher3 -DelegatingLoader2 HttpCache1 3TestSessionListener0 +SessionListener/ 1FrameworkExtension. 'Configuration- )TranslatorPass, =TranslationExtractorPass+ 7TranslationDumperPass* )TemplatingPass) 3RoutingResolverPass!( CRegisterKernelListenersPass' %ProfilerPass& FormPass#% GContainerBuilderDebugDumpPass$ 7CompilerDebugDumpPass"# EAddValidatorInitializersPass!" CAddConstraintValidatorsPass! 1AddCacheWarmerPass  3AddCacheClearerPass 3RouterDataCollector! CTraceableControllerResolver 1TemplateController 1RedirectController 1InternalController 1ControllerResolver 5ControllerNameParser !Controller Shell #Application =TranslationUpdateCommand -ServerRunCommand 1RouterMatchCommand 1RouterDebugCommand ?RouterApacheDumperCommand 7ContainerDebugCommand 7ContainerAwareCommand  AConfigDumpReferenceCommand 1CacheWarmupCommand /CacheClearCommand 5AssetsInstallCommand
 !HttpKernel	 +FrameworkBundle Client =TemplatePathsCacheWarmer )TemplateFinder /RouterCacheWarmer !TwigEngine 'TwigExtractor -TransTokenParser# GTransDefaultDomainTokenParser  9TransChoiceTokenParser 5FormThemeTokenParser~ /TwigExtractorTest} TestCase| -TwigNodeProvider { ATranslationNodeVisitorTest-z [TranslationDefaultDomainNodeVisitorTesty ScopeTestx =FormThemeTokenParserTest"w ESearchAndRenderBlockNodeTestv 'FormThemeTestu =TranslationExtensionTest"t EFormExtensionTableLayoutTest s AFormExtensionDivLayoutTestr )StubTranslatorq 5StubFilesystemLoaderp 9TranslationNodeVisitor)o STranslationDefaultDomainNodeVisitorn Scopem TransNodel 9TransDefaultDomainNodek =SearchAndRenderBlockNodej 'FormThemeNodei 1TwigRendererEngineh %TwigRendererg 'YamlExtensionf 5TranslationExtensione /SecurityExtensiond -RoutingExtensionc 'FormExtensionb 5MessageDataCollectora +Propel1TestCase` 7PropelTypeGuesserTest_ #DummyObject&^ MCollectionToArrayTransformerTest] 3ModelChoiceListTest\ /ReadOnlyItemQuery[ %ReadOnlyItemZ ItemQuery
Y ItemX ColumnW ;PropelDataCollectorTestV 1PropelUserProviderU %PropelLoggerT ModelTypeS /PropelTypeGuesserR +PropelExtension"Q ECollectionToArrayTransformerP +ModelChoiceListO 'PropelFactoryN 3PropelDataCollectorM -WebProcessorTestL %WebProcessorK LoggerJ )FirePHPHandlerI %DebugHandlerH -ChromePhpHandlerG 3DoctrineInitializerF 7UniqueEntityValidatorE %UniqueEntityD 3UniqueValidatorTest   * eBmT9r]H-iN.iO7





o
P
5

						i	N	5	 	{Y6cK6 zU9ybH/~cO;yX=yhWE1yZE*    ^ /AClassMapGenerator] #AClassLoader\ 7AClassCollectionLoader[ ;AApcUniversalClassLoaderZ )AApcClassLoaderY %@ResponseTestX #@RequestTestW #@HistoryTestV !@CookieTestU '@CookieJarTestT !@ClientTestS !@TestClientR ?ResponseQ ?RequestP ?HistoryO ?CookieJarN ?CookieM ?ClientL />WebProfilerBundleK =TestCaseJ 3<TemplateManagerTest!I C;WebDebugToolbarListenerTestH =:WebProfilerExtensionTestG /:ConfigurationTestF ;9ExceptionControllerTestE +8TemplateManagerD ;7WebDebugToolbarListenerC 56WebProfilerExtensionB '6ConfigurationA -5RouterController@ 15ProfilerController? 35ExceptionController> !4TwigEngine= !4TwigBundle< /3RenderTokenParser; 2TestCase: 51FilesystemLoaderTest9 /0TwigExtensionTest8 ;/ExceptionControllerTest7 !.RenderNode6 --FilesystemLoader5 ',CodeExtension4 +,AssetsExtension3 -,ActionsExtension2 '+TwigExtension1 '+Configuration0 3*TwigEnvironmentPass/ 7*ExceptionListenerPass. +)TimedTwigEngine- 3(ExceptionController, #'LintCommand+ =&TemplateCacheCacheWarmer* 1%LogoutUrlExtension!) C$LocalizedFormFailureHandler( +#FormLoginBundle' 1"FormLoginExtension& +!LoginController% 3!LocalizedController$ / UserLoginFormType# 3CsrfFormLoginBundle" +LoginController! #WebTestCase  )SwitchUserTest$ ISecurityRoutingIntegrationTest ?LocalizedRoutesAsPathTest 'FormLoginTest /CsrfFormLoginTest" EAuthenticationCommencingTest AppKernel 3AbstractFactoryTest ?YamlSecurityExtensionTest =XmlSecurityExtensionTest 7SecurityExtensionTest =PhpSecurityExtensionTest /ConfigurationTest )SecurityHelper +LogoutUrlHelper )SecurityBundle #FirewallMap +FirewallContext /AclSchemaListener +InMemoryFactory #X509Factory /RememberMeFactory
 /HttpDigestFactory	 -HttpBasicFactory -FormLoginFactory +AbstractFactory /SecurityExtension /MainConfiguration 7AddSecurityVotersPass 7SecurityDataCollector )InitAclCommand  AConstraintValidatorFactory  !Translator /TranslationLoader~ %PhpExtractor$} IConstraintValidatorFactoryTest| )TranslatorTest{ -PhpExtractorTestz %TemplateTesty 7TemplateReferenceTestx 9TemplateNameParserTest w ATemplateFilenameParserTestv 'PhpEngineTestu 3TemplateLocatorTestt )
StubTranslators 9
StubTemplateNameParserr /	SessionHelperTestq /	RequestHelperTestp ?	FormHelperTableLayoutTesto ;	FormHelperDivLayoutTestn )	CodeHelperTestm #RoutingTest l ARedirectableUrlMatcherTestk !TestBundlej /SessionControlleri #WebTestCaseh #SessionTestg AppKernelf +SensioFooBundlee /DefaultControllerd 1SensioCmsFooBundlec /DefaultControllerb  FooBundlea /DefaultController` /DefaultController_ /DefaultController^ +FabpotFooBundle] /DefaultController\ !BaseBundle[ ;TestSessionListenerTestZ TestCaseY )HttpKernelTestX !TestBundle W AYamlFrameworkExtensionTestV ?XmlFrameworkExtensionTestU ?PhpFrameworkExtensionTestT 9FrameworkExtensionTestS /ConfigurationTestR 1TranslatorPassTestQ /SubscriberService%P KRegisterKernelListenersPassTest   Q rM*~_@!vY?%nTG1lXC1





o
]
B
2
											y	l	_	T	I	>	3	(			zj]PC5 {eH)ydI)
iNr[B,vV=$hL8 oQ  5bOutputFormatterStyle +bOutputFormatter  #aListCommand #aHelpCommand~ aCommand} `Shell| #`Application{ -_FileResourceTestz 7_DirectoryResourceTesty )^ProjectLoader1x !^LoaderTestw 1^LoaderResolverTestv 5^DelegatingLoaderTestu +]FileLocatorTestt 9\VariableNodeDefinitions #\NodeBuilderr /\BarNodeDefinitionq +\TreeBuilderTestp 1\SomeNodeDefinitiono +\NodeBuilderTestn +\ExprBuilderTestm 9\EnumNodeDefinitionTestl ;\ArrayNodeDefinitionTestk )[ScalarNodeTestj ;[PrototypedArrayNodeTesti '[ProcessorTesth )[NormalizerTestg [MergeTestf -[FinalizationTeste %[EnumNodeTestd +[BooleanNodeTestc '[ArrayNodeTestb %ZFileResourcea /ZDirectoryResource` )YLoaderResolver_ YLoader^ !YFileLoader] -YDelegatingLoader\ ;XFileLoaderLoadException0[ aXFileLoaderImportCircularReferenceExceptionZ /WUnsetKeyExceptionY 5WInvalidTypeException X AWInvalidDefinitionException#W GWInvalidConfigurationException!V CWForbiddenOverwriteExceptionU WExceptionT 7WDuplicateKeyExceptionS 9VVariableNodeDefinitionR /VValidationBuilderQ #VTreeBuilderP 5VScalarNodeDefinitionO 5VNormalizationBuilderN )VNodeDefinitionM #VNodeBuilderL %VMergeBuilderK #VExprBuilderJ 1VEnumNodeDefinitionI 7VBooleanNodeDefinitionH 3VArrayNodeDefinitionG %UVariableNodeF !UScalarNodeE 3UPrototypedArrayNodeD UProcessorC UEnumNodeB #UBooleanNodeA UBaseNode@ UArrayNode? #TFileLocator> #TConfigCache
= SCBar	< RFoo	; RBaz	: RBar9 RFooBar	8 QFoo	7 QBaz	6 QBar5 QFooBar4 !PSomeParent3 PSomeClass2 OB1 OA0 NB/ NA. MB- MA
, LCFoo+ LA* KE) KD( KB' KA	& JFoo	% JBar	$ IFoo	# IBar	" HFoo	! HBaz	  HBar HFooBar	 GFoo	 GBar	 FFoo	 FBar /EProjectUrlMatcher +ENumberFormatter ELocale /EIntlDateFormatter ECollator ;EProjectServiceContainer EContainer ;EProjectWithXsdExtension -EProjectExtension %EBarUserClass EBazClass +EBarClassFactory EBarClass EFooClass #ETestCommand !EFooCommand
 #EFoo4Command	 #EFoo3Command #EFoo2Command #EFoo1Command 'EPearlike2_Foo 'EPearlike2_Baz 'EPearlike2_Bar %EPearlike_Foo %EPearlike_Baz %EPearlike_Bar	  EFoo -EPearlike2_FooBar~ +EPearlike_FooBar} ;EPrefixCollision_C_B_Foo| ;EPrefixCollision_C_B_Bar{ ;EPrefixCollision_A_B_Fooz ;EPrefixCollision_A_B_Bary -EApc_Pearlike_Foox -EApc_Pearlike_Bazw -EApc_Pearlike_Barv 3EApc_Pearlike_FooBar u AEApcPrefixCollision_A_B_Foo t AEApcPrefixCollision_A_B_Bars =EApcPrefixCollision_A_Foor =EApcPrefixCollision_A_Barq 7EPrefixCollision_C_Foop 7EPrefixCollision_C_Baro 7EPrefixCollision_A_Foon 7EPrefixCollision_A_Bar	m DFoo	l DBar	k CFoo	j CBari =BUniversalClassLoaderTesth 5BDebugClassLoaderTestg 7BClassMapGeneratorTestf +BClassLoaderTeste ?BClassCollectionLoaderTest!d CBApcUniversalClassLoaderTestc /AXcacheClassLoaderb 5AUniversalClassLoadera )AMapClassLoader` ?ADebugUniversalClassLoader_ -ADebugClassLoader    xdU>%x_J1|eN6r^D%
~jW9$






y
b
@
'
							w	c	F	3	 	u?	eCd<uU5rI zcK/c;sI ( QyResolveReferencesToAliasesPassTest& MyResolveInvalidReferencesPassTest(
 QyResolveDefinitionTemplatesPassTest,	 YyReplaceAliasByActualDefinitionPassTest% KyRemoveUnusedDefinitionsPassTest +yIntegrationTest& MyInlineServiceDefinitionsPassTest$ IyCheckReferenceValidityPassTest6 myCheckExceptionOnInvalidReferenceBehaviorPassTest% KyCheckDefinitionValidityPassTest% KyCheckCircularReferencesPassTest& MyAnalyzeServiceReferencesPassTest  %xParameterBag 1xFrozenParameterBag~ )wYamlFileLoader} 'wXmlFileLoader| 'wPhpFileLoader{ 'wIniFileLoaderz !wFileLoadery 'wClosureLoaderx =vServiceNotFoundException'w OvServiceCircularReferenceException%v KvScopeWideningInjectionException%u KvScopeCrossingInjectionExceptiont -vRuntimeException s AvParameterNotFoundException)r SvParameterCircularReferenceExceptionq 5vOutOfBoundsExceptionp )vLogicExceptiono =vInvalidArgumentExceptionn 9vInactiveScopeExceptionm 9vBadMethodCallExceptionl !uYamlDumperk uXmlDumperj uPhpDumperi )uGraphvizDumperh uDumperg ?tServiceReferenceGraphNodef ?tServiceReferenceGraphEdgee 7tServiceReferenceGraph$d ItResolveReferencesToAliasesPass&c MtResolveParameterPlaceHoldersPass"b EtResolveInvalidReferencesPass$a ItResolveDefinitionTemplatesPass(` QtReplaceAliasByActualDefinitionPass_ %tRepeatedPass!^ CtRemoveUnusedDefinitionsPass] =tRemovePrivateAliasesPass#\ GtRemoveAbstractDefinitionsPass[ !tPassConfig%Z KtMergeExtensionConfigurationPassY -tLoggingFormatter"X EtInlineServiceDefinitionsPassW tCompiler V AtCheckReferenceValidityPass2U etCheckExceptionOnInvalidReferenceBehaviorPass!T CtCheckDefinitionValidityPass!S CtCheckCircularReferencesPass"R EtAnalyzeServiceReferencesPassQ sVariableP -sSimpleXMLElementO sScopeN sReferenceM sParameterL 3sDefinitionDecoratorK !sDefinitionJ -sContainerBuilderI )sContainerAwareH sContainerG sAliasF )rPseudoNodeTestE !rOrNodeTestD %rHashNodeTestC -rFunctionNodeTestB +rElementNodeTestA =rCombinedSelectorNodeTest@ 'rClassNodeTest? )rAttribNodeTest> 'qXPathExprTest= 'qTokenizerTest< +qCssSelectorTest; !pPseudoNode: pOrNode9 pHashNode8 %pFunctionNode7 #pElementNode6 5pCombinedSelectorNode5 pClassNode4 !pAttribNode3 )oParseException2 #nXPathExprOr1 nXPathExpr0 #nTokenStream/ nTokenizer. nToken- #nCssSelector, /mCommandTesterTest+ 7mApplicationTesterTest* -lStreamOutputTest) !lTestOutput( !lOutputTest' )lNullOutputTest& /lConsoleOutputTest% +kStringInputTest$ kInputTest# +kInputOptionTest" 3kInputDefinitionTest! /kInputArgumentTest  )kArrayInputTest 'kArgvInputTest 'jHelperSetTest 3jFormatterHelperTest -jDialogHelperTest 1iFormatterStyleTest =iOutputFormatterStyleTest# GiOutputFormatterStyleStackTest +hListCommandTest +hHelpCommandTest #hCommandTest +gApplicationTest 'fCommandTester /fApplicationTester %eStreamOutput eOutput !eNullOutput 'eConsoleOutput #dStringInput #dInputOption +dInputDefinition 'dInputArgument
 dInput	 !dArrayInput dArgvInput cHelperSet cHelper +cFormatterHelper %cDialogHelper ?bOutputFormatterStyleStack   C _G0{`E*s\I1sW8uZ=&



~
d
>
)
								f	E	#\8c>jO+xZ2dG,	mWH*w^?$^C                                        /NotValidException ;NotInitializedException" EInvalidPropertyPathException =InvalidPropertyException# GInvalidConfigurationException 'FormException 7ErrorMappingException /CreationException 7AlreadyBoundException +FilterDataEvent DataEvent -FormRegistryTest
 3ReversedTransformer	 ;ResolvedFormTypeFactory -ResolvedFormType 1PreloadedExtension FormView 5FormTypeGuesserChain Forms %FormRenderer %FormRegistry 1FormFactoryBuilder  #FormFactory !FormEvents~ FormEvent} FormError| /FormConfigBuilder{ #FormBuilder
z Formy /CallbackValidatorx 3CallbackTransformerw 7AbstractTypeExtensionv %AbstractTypeu 9AbstractRendererEnginet /AbstractExtensions 5SortableIteratorTestr /InnerSizeIterator!q CSizeRangeFilterIteratorTest$p IRecursiveDirectoryIteratorTesto 5RealIteratorTestCase$n ITestMultiplePcreFilterIterator$m IMultiplePcreFilterIteratorTestl -IteratorTestCasek Iteratorj 1FilterIteratorTesti /InnerTypeIterator h AFileTypeFilterIteratorTestg /InnerNameIterator f AFilenameFilterIteratorTeste 5MockFileListIteratord +MockSplFileInfo#c GFilecontentFilterIteratorTest(b QExcludeDirectoryFilterIteratorTest"a EDepthRangeFilterIteratorTest!` CDateRangeFilterIteratorTest_ =CustomFilterIteratorTest^ GlobTest] !FinderTest\ 5NumberComparatorTest[ 1DateComparatorTestZ )ComparatorTestY -SortableIteratorX ;SizeRangeFilterIterator W ARecursiveDirectoryIterator V AMultiplePcreFilterIteratorU )FilterIteratorT 9FileTypeFilterIteratorS 9FilenameFilterIteratorR ?FilecontentFilterIterator$Q IExcludeDirectoryFilterIteratorP =DepthRangeFilterIteratorO ;DateRangeFilterIteratorN 5CustomFilterIteratorM #SplFileInfo
L GlobK FinderJ -NumberComparatorI )DateComparatorH !ComparatorG )FilesystemTestF !FilesystemE #IOException"D EImmutableEventDispatcherTestC -GenericEventTestB EventTest.A ]TestEventSubscriberWithMultipleListeners'@ OTestEventSubscriberWithPriorities? 3TestEventSubscriber> /TestEventListener= 'CallableClass< 3EventDispatcherTest; /SubscriberService: Service'9 OContainerAwareEventDispatcherTest8 =ImmutableEventDispatcher7 %GenericEvent6 +EventDispatcher5 Event#4 GContainerAwareEventDispatcher3 7TextareaFormFieldTest2 1InputFormFieldTest1 /FormFieldTestCase0 'FormFieldTest/ /FileFormFieldTest. 3ChoiceFormFieldTest- LinkTest, FormTest+ #CrawlerTest* /TextareaFormField) )InputFormField( FormField' 'FileFormField& +ChoiceFormField
% Link$ /FormFieldRegistry
# Form" Crawler! -~ParameterBagTest  9~FrozenParameterBagTest 1}YamlFileLoaderTest /}XmlFileLoaderTest /}PhpFileLoaderTest /}IniFileLoaderTest /}ClosureLoaderTest ;|ProjectServiceContainer ){YamlDumperTest '{XmlDumperTest '{PhpDumperTest 1{GraphvizDumperTest 'zReferenceTest 'zParameterTest )zDefinitionTest ;zDefinitionDecoratorTest )zCrossCheckTest ;zProjectServiceContainer 'zContainerTest zFooClass 5zContainerBuilderTest    tW6"
a=b4i=hL6 







{
i
W
C
.

							u	_	M	;	%		 pJ-c?lM>+gB(|^< R4[9rF           - [IntegerToLocalizedStringTransformerTest( QDateTimeToTimestampTransformerTest% KDateTimeToStringTransformerTest& MDateTimeToRfc3339TransformerTest. ]DateTimeToLocalizedStringTransformerTest$ IDateTimeToArrayTransformerTest -DateTimeTestCase =DataTransformerChainTest" EChoiceToValueTransformerTest$ IChoicesToValuesTransformerTest$ IBooleanToStringTransformerTest! CArrayToPartsTransformerTest 9PropertyPathMapperTest
 5SimpleChoiceListTest	 5ObjectChoiceListTest- [ObjectChoiceListTest_EntityWithToString$ ILazyChoiceListTest_InvalidImpl ;LazyChoiceListTest_Impl 1LazyChoiceListTest )ChoiceListTest )SimpleFormTest  ASimpleFormTest_Traversable =SimpleFormTest_Countable  5ResolvedFormTypeTest ;FormPerformanceTestCase~ ;FormIntegrationTestCase} +FormFactoryTest| 9FormFactoryBuilderTest{ )FormConfigTestz +FormBuilderTesty -CompoundFormTest!x CCompoundFormPerformanceTestw ;AbstractTableLayoutTestv 1AbstractLayoutTestu -AbstractFormTestt /ConcreteExtensions 7AbstractExtensionTestr 7AbstractDivLayoutTestq !ValueGuessp TypeGuesso Guessn 7ViolationPathIteratorm 'ViolationPathl +ViolationMapperk %RelativePathj #MappingRulei 5ValidatorTypeGuesserh 1ValidatorExtensiong %ServerParams$f IRepeatedTypeValidatorExtension e AFormTypeValidatorExtensiond 1ValidationListenerc 'FormValidator
b Forma =TemplatingRendererEngine` 3TemplatingExtension%_ KFormTypeHttpFoundationExtension^ ;HttpFoundationExtension] 3BindRequestListener"\ EDependencyInjectionExtension[ 7FormTypeCsrfExtensionZ 9CsrfValidationListenerY 3SessionCsrfProviderX 3DefaultCsrfProviderW 'CsrfExtensionV !ChoiceViewU UrlTypeT %TimezoneTypeS TimeTypeR TextTypeQ %TextareaTypeP !SearchTypeO %RepeatedTypeN RadioTypeM #PercentTypeL %PasswordTypeK !NumberTypeJ MoneyTypeI !LocaleTypeH %LanguageTypeG #IntegerTypeF !HiddenTypeE FormTypeD FileTypeC FieldTypeB EmailTypeA DateType@ %DateTimeType? #CountryType> )CollectionType= !ChoiceType< %CheckboxType; %BirthdayType: %TrimListener9 1ResizeFormListener8 ;MergeCollectionListener7 9FixUrlProtocolListener6 7FixRadioInputListener5 =FixCheckboxInputListener"4 EValueToDuplicatesTransformer)3 SPercentToLocalizedStringTransformer(2 QNumberToLocalizedStringTransformer'1 OMoneyToLocalizedStringTransformer)0 SIntegerToLocalizedStringTransformer$/ IDateTimeToTimestampTransformer!. CDateTimeToStringTransformer"- EDateTimeToRfc3339Transformer*, UDateTimeToLocalizedStringTransformer + ADateTimeToArrayTransformer* 5DataTransformerChain) =ChoiceToValueTransformer%( KChoiceToBooleanArrayTransformer ' AChoicesToValuesTransformer&& MChoicesToBooleanArrayTransformer % ABooleanToStringTransformer$ ;BaseDateTimeTransformer# ;ArrayToPartsTransformer" 1PropertyPathMapper! 'CoreExtension  -SimpleChoiceList -ObjectChoiceList )LazyChoiceList !ChoiceList ;UnexpectedTypeException 3TypeLoaderException ;TypeDefinitionException# GTransformationFailedException 3StringCastException# GPropertyAccessDeniedException    U+T/kQ;%iQ7\/




r
U
:

						j	Y	<		vU-h/c8raN8"fO0tR9#dB$ybM0              /ApacheRequestTest 3SessionHandlerProxy #NativeProxy 'AbstractProxy 5NativeSessionStorage 9MockFileSessionStorage ;MockArraySessionStorage #MetadataBag /PdoSessionHandler 1NullSessionHandler 5NativeSessionHandler =NativeFileSessionHandler 7MongoDbSessionHandler
 9MemcacheSessionHandler	 ;MemcachedSessionHandler Session FlashBag 1AutoExpireFlashBag 9NamespacedAttributeBag %AttributeBag +MimeTypeGuesser =MimeTypeExtensionGuesser ;FileinfoMimeTypeGuesser  ?FileBinaryMimeTypeGuesser -ExtensionGuesser~ %UploadedFile
} File| +UploadException{ ;UnexpectedTypeExceptionz 7FileNotFoundExceptiony 'FileExceptionx 7AccessDeniedExceptionw -StreamedResponsev ServerBagu /ResponseHeaderBagt Responses )RequestMatcherr Requestq -RedirectResponsep %ParameterBago %JsonResponsen HeaderBagm FileBagl Cookiek 'ApacheRequestj =VirtualFormAwareIteratori 5PropertyPathIteratorh 3PropertyPathBuilderg %PropertyPathf FormUtile -PropertyPathTest'd OPropertyPathCustomArrayObjectTest c APropertyPathCollectionTest-b [PropertyPathCollectionTest_CarStructure-a [PropertyPathCollectionTest_CompositeCarB` PropertyPathCollectionTest_CarNoAdderAndRemoverWithProperty5_ kPropertyPathCollectionTest_CarNoAdderAndRemover/^ _PropertyPathCollectionTest_CarOnlyRemover-] [PropertyPathCollectionTest_CarOnlyAdder'\ OPropertyPathCollectionTest_Engine2[ ePropertyPathCollectionTest_CarCustomSingular$Z IPropertyPathCollectionTest_CarY ;PropertyPathBuilderTestX 7PropertyPathArrayTest!W CPropertyPathArrayObjectTestV %FormUtilTestU GuessTestT TestGuessS 'TestExtensionR MagicianQ 3FooTypeBazExtensionP 3FooTypeBarExtensionO FooType"N EFooSubTypeWithParentInstanceM !FooSubTypeL 3FixedFilterListenerK 5FixedDataTransformerJ /CustomArrayObjectI !AuthorTypeH AuthorG 1AlternatingRowTypeF /ViolationPathTestE 3ViolationMapperTestD %TypeTestCase$C IFormTypeValidatorExtensionTestB 9ValidationListenerTestA /FormValidatorTest@ ;BindRequestListenerTest? ?FormTypeCsrfExtensionTest)> SFormTypeCsrfExtensionTest_ChildType = ACsrfValidationListenerTest< ;SessionCsrfProviderTest; ;DefaultCsrfProviderTest: #UrlTypeTest9 %TypeTestCase8 -TimezoneTypeTest7 %TimeTypeTest6 -RepeatedTypeTest5 -PasswordTypeTest4 )NumberTypeTest3 'MoneyTypeTest2 /LocalizedTestCase1 )LocaleTypeTest0 -LanguageTypeTest/ +IntegerTypeTest. %FormTypeTest%- KFormTest_AuthorWithoutRefSetter, %FileTypeTest+ %DateTypeTest* -DateTimeTypeTest) +CountryTypeTest( 1CollectionTypeTest' )ChoiceTypeTest& ?ChoiceTypePerformanceTest% -CheckboxTypeTest$ -TrimListenerTest# 9ResizeFormListenerTest!" CMergeCollectionListenerTest2! eMergeCollectionListenerCustomArrayObjectTest&  MMergeCollectionListenerArrayTest, YMergeCollectionListenerArrayObjectTest  AFixUrlProtocolListenerTest ?FixRadioInputListenerTest& MValueToDuplicatesTransformerTest- [PercentToLocalizedStringTransformerTest, YNumberToLocalizedStringTransformerTest+ WMoneyToLocalizedStringTransformerTest /LocalizedTestCase   " nR= xfP6d>{YBaQ=-




v
Y
<

					s	b	J	+	zM'{cAxeVB cR@"|hHybBjP2x\>"          1RouterListenerTest 5ResponseListenerTest 1LocaleListenerTest# GTestKernelThatThrowsException !TestKernel !TestLogger 7ExceptionListenerTest +EsiListenerTest 'StopwatchTest 1StopwatchEventTest 5ExceptionHandlerTest -ErrorHandlerTest 1StaticClassFixture0 aContainerAwareTraceableEventDispatcherTest =RequestDataCollectorTest ;MemoryDataCollectorTest ;LoggerDataCollectorTest  AExceptionDataCollectorTest 9EventDataCollectorTest 'KernelForTest ;ConfigDataCollectorTest +FileLocatorTest
 )TestHttpKernel	 Logger !KernelTest !Controller )HttpKernelTest) SMergeExtensionConfigurationPassTest 9ControllerResolverTest !ClientTest +TestCacheWarmer +CacheWarmerTest  =CacheWarmerAggregateTest 7ChainCacheClearerTest~ !BundleTest} 7SqliteProfilerStorage| 5RedisProfilerStorage{ Profilerz Profiley 1PdoProfilerStoragex 5MysqlProfilerStoragew 9MongoDbProfilerStoragev ;MemcacheProfilerStorageu =MemcachedProfilerStoraget 3FileProfilerStorage!s CBaseMemcacheProfilerStorager !NullLoggerq Storep HttpCacheo =EsiResponseCacheStrategy	n Esim 7NotFoundHttpException#l GMethodNotAllowedHttpExceptionk 'HttpExceptionj -FlattenExceptioni ?AccessDeniedHttpExceptionh =StreamedResponseListenerg )RouterListenerf -ResponseListenere -ProfilerListenerd )LocaleListenerc /ExceptionListenerb #EsiListenera /PostResponseEvent` #KernelEvent"_ EGetResponseForExceptionEvent)^ SGetResponseForControllerResultEvent] -GetResponseEvent\ 3FilterResponseEvent[ 7FilterControllerEvent%Z KMergeExtensionConfigurationPassY ExtensionX 7ConfigurableExtensionW 7AddClassesToCachePassV )StopwatchEventU SectionT StopwatchS -ExceptionHandlerR %ErrorHandler,Q YContainerAwareTraceableEventDispatcherP /TimeDataCollectorO 3RouterDataCollectorN 5RequestDataCollectorM 3MemoryDataCollectorL 3LoggerDataCollectorK 9ExceptionDataCollectorJ 1EventDataCollectorI 'DataCollectorH 3ConfigDataCollectorG 1ControllerResolverF #FileLocatorE %KernelEventsD KernelC !HttpKernelB ClientA 5CacheWarmerAggregate@ #CacheWarmer? /ChainCacheClearer> Bundle= ;SessionHandlerProxyTest< +NativeProxyTest; /AbstractProxyTest*: UConcreteSessionHandlerInterfaceProxy9 'ConcreteProxy8 =NativeSessionStorageTest 7 AMockFileSessionStorageTest!6 CMockArraySessionStorageTest5 +MetadataBagTest4 7PdoSessionHandlerTest3 9NullSessionStorageTest2 =NativeSessionHandlerTest"1 ENativeFileSessionHandlerTest0 ?MongoDbSessionHandlerTest / AMemcacheSessionHandlerTest". EMemcacheddSessionHandlerTest- #SessionTest, %FlashBagTest+ 9AutoExpireFlashBagTest* -AttributeBagTest) -UploadedFileTest( %MimeTypeTest' FileTest& 5StreamedResponseTest % ANamespacedAttributeBagTest$ 'ServerBagTest# -StringableObject" %ResponseTest! 7ResponseHeaderBagTest  3RequestContentProxy #RequestTest 1RequestMatcherTest 5RedirectResponseTest -ParameterBagTest -JsonResponseTest 'HeaderBagTest #FileBagTest !CookieTest     nK+kX@ j9zKjR9





w
[
@
#
						}	i	W	=		fU<
t\?{W<-i<lN7 	iR8%
yY9rW<         ( 1YamlFileLoaderTest' /XmlFileLoaderTest& /PhpFileLoaderTest% /ClosureLoaderTest$ =AnnotationFileLoaderTest## GAnnotationDirectoryLoaderTest" ?AnnotationClassLoaderTest"! EAbstractAnnotationLoaderTest  -UrlGeneratorTest 9PhpGeneratorDumperTest 9RedirectableUrlMatcher 3CustomXmlFileLoader FooClass 'AbstractClass RouteTest /RouteCompilerTest 3RouteCollectionTest /CompiledRouteTest RouteTest -PhpMatcherDumper 'MatcherDumper 3ApacheMatcherDumper ! UrlMatcher 3 TraceableUrlMatcher 9 RedirectableUrlMatcher - ApacheUrlMatcher )YamlFileLoader 'XmlFileLoader 'PhpFileLoader 'ClosureLoader
 5AnnotationFileLoader	 ?AnnotationDirectoryLoader 7AnnotationClassLoader %UrlGenerator 1PhpGeneratorDumper +GeneratorDumper 9RouteNotFoundException ?ResourceNotFoundException) SMissingMandatoryParametersException ?MethodNotAllowedException  ?InvalidParameterException Router~ 'RouteCompiler} +RouteCollection| Route{ )RequestContextz 'CompiledRoutey Routex /SimpleProcessTest w ASigchildEnabledProcessTest!v CSigchildDisabledProcessTest"u EProcessInSigchildEnvironment t AProcessFailedExceptionTests 1ProcessBuilderTestr )PhpProcessTestq ;PhpExecutableFinderTestp 3AbstractProcessTesto )ProcessBuildern Processm !PhpProcessl 3PhpExecutableFinderk -ExecutableFinderj -RuntimeExceptioni 9ProcessFailedExceptionh #OptionsTestg 3OptionsResolverTestf +OptionsResolvere Optionsd ?OptionDefinitionExceptionc ;MissingOptionsExceptionb ;InvalidOptionsExceptiona ;StubNumberFormatterTest` )StubLocaleTest_ %StubIntlTest^ ?StubIntlDateFormatterTest] -StubCollatorTest\ TestCase[ !LocaleTestZ 3StubNumberFormatterY !StubLocaleX 7StubIntlDateFormatterW StubIntlV %StubCollatorU +YearTransformerT #TransformerS 3TimeZoneTransformerR /SecondTransformerQ 1QuarterTransformerP -MonthTransformerO /MinuteTransformerN +HourTransformerM 3Hour2401TransformerL 3Hour2400TransformerK 3Hour1201TransformerJ 3Hour1200TransformerI +FullTransformerH )DayTransformerG 5DayOfYearTransformerF 5DayOfWeekTransformerE +AmPmTransformerD LocaleC ;NotImplementedException#B GMethodNotImplementedException0A aMethodArgumentValueNotImplementedException+@ WMethodArgumentNotImplementedException? RedisMock> %MemcacheMock= 'MemcachedMock< ?SqliteProfilerStorageTest; =RedisProfilerStorageTest: %ProfilerTest 9 AMongoDbProfilerStorageTest-8 [MongoDbProfilerStorageTestDataCollector!7 CDummyMongoDbProfilerStorage!6 CMemcacheProfilerStorageTest"5 EMemcachedProfilerStorageTest4 ;FileProfilerStorageTest!3 CAbstractProfilerStorageTest2 9TestMultipleHttpKernel1 )TestHttpKernel0 StoreTest/ /HttpCacheTestCase. 'HttpCacheTest- EsiTest, 3TestEventDispatcher+ !TestClient* 'KernelForTest) 7KernelForOverrideName( %FooBarBundle' 9ExtensionPresentBundle& ?ExtensionPresentExtension% !FooCommand$ 7ExtensionLoadedBundle# =ExtensionLoadedExtension" 7ExtensionAbsentBundle! 5FlattenExceptionTest   } dF1rI%}TAzg@uQ2




u
\
=
!
					u	X	4	W6oV7|eM2n[CtM.]D+R.	rX2         #% G%SessionAuthenticationStrategy"$ E$TokenBasedRememberMeServices# -$ResponseListener," Y$PersistentTokenBasedRememberMeServices ! A$AbstractRememberMeServices  5#SessionLogoutHandler! C#DefaultLogoutSuccessHandler! C#CookieClearingLogoutHandler  A"X509AuthenticationListener0 a"UsernamePasswordFormAuthenticationListener 1"SwitchUserListener 1"RememberMeListener )"LogoutListener /"ExceptionListener !"DigestData" E"DigestAuthenticationListener +"ContextListener +"ChannelListener! C"BasicAuthenticationListener% K"AnonymousAuthenticationListener )"AccessListener& M"AbstractPreAuthenticatedListener$ I"AbstractAuthenticationListener +!SwitchUserEvent 7!InteractiveLoginEvent# G RetryAuthenticationEntryPoint" E FormAuthenticationEntryPoint$
 I DigestAuthenticationEntryPoint#	 G BasicAuthenticationEntryPoint) SDefaultAuthenticationSuccessHandler) SDefaultAuthenticationFailureHandler )SecurityEvents HttpUtils #FirewallMap Firewall AccessMap 7UserPasswordValidator  %UserPassword !ClassUtils~ #UserChecker
} User| 5InMemoryUserProvider{ /ChainUserProviderz )SwitchUserRoley 'RoleHierarchy
x Rolew ?UsernameNotFoundExceptionv =UnsupportedUserExceptionu 9TokenNotFoundException!t CSessionUnavailableExceptions ?ProviderNotFoundExceptionr 7NonceExpiredExceptionq +LogoutExceptionp +LockedExceptiono ?InvalidCsrfTokenException)n SInsufficientAuthenticationExceptionm /DisabledException!l CCredentialsExpiredExceptionk 5CookieTheftExceptionj ;BadCredentialsException$i IAuthenticationServiceExceptionh ;AuthenticationException0g aAuthenticationCredentialsNotFoundExceptionf 9AccountStatusExceptione ;AccountExpiredExceptiond 7AccessDeniedException c AAuthenticationFailureEventb 3AuthenticationEventa =PlaintextPasswordEncoder"` EMessageDigestPasswordEncoder_ )EncoderFactory^ 3BasePasswordEncoder] RoleVoter\ 1RoleHierarchyVoter[ 1AuthenticatedVoterZ 7AccessDecisionManagerY +SecurityContextX 5AuthenticationEventsW 7UsernamePasswordTokenV +RememberMeTokenU 7PreAuthenticatedTokenT )AnonymousTokenS 'AbstractTokenR +PersistentTokenQ 7InMemoryTokenProvider P AUserAuthenticationProvider&O MRememberMeAuthenticationProvider,N YPreAuthenticatedAuthenticationProviderM ?DaoAuthenticationProvider%L KAnonymousAuthenticationProvider!K CAuthenticationTrustResolver#J GAuthenticationProviderManagerI FieldVoteH AclVoterG #MaskBuilderF 1BasicPermissionMapE 7SidNotLoadedExceptionD =NotAllAclsFoundExceptionC 3NoAceFoundException"B EInvalidDomainObjectExceptionA Exception%@ KConcurrentModificationException? 5AclNotFoundException> ?AclAlreadyExistsException= 5UserSecurityIdentity'< OSecurityIdentityRetrievalStrategy; 5RoleSecurityIdentity : APermissionGrantingStrategy%9 KObjectIdentityRetrievalStrategy8 )ObjectIdentity7 !FieldEntry6 Entry5 -DoctrineAclCache4 #AuditLogger3 1AclCollectionCache	2 Acl1 Schema0 1MutableAclProvider/ #AclProvider. 5
PhpMatcherDumperTest- ;
ApacheMatcherDumperTest, )	UrlMatcherTest+ ;	TraceableUrlMatcherTest * A	RedirectableUrlMatcherTest) 5	ApacheUrlMatcherTest    {]ES;rIkH+\<





\
6

						v	d	L	8	$x\/x_I2	aK5!pN0{U@&zeQ7$nTD/eL3  * 7MProjectTemplateLoader) +MCacheLoaderTest( +LSlotsHelperTest' 7LProjectTemplateHelper& !LHelperTest% 5LCoreAssetsHelperTest$ -LAssetsHelperTest# %KSimpleHelper" ;KProjectTemplateDebugger! 'JStringStorage  JStorage #JFileStorage ILoader -IFilesystemLoader #IChainLoader #ICacheLoader #HSlotsHelper HHelper -HCoreAssetsHelper %HAssetsHelper /GTemplateReference 1GTemplateNameParser GPhpEngine -GDelegatingEngine !FUrlPackage #FPathPackage FPackage EModel )ESerializerTest 3DGetConstructorDummy #DGetSetDummy  ADGetSetMethodNormalizerTest
 5DCustomNormalizerTest	 -CTraversableDummy #CScalarDummy" ECNormalizableTraversableDummy CDummy 3CDenormalizableDummy )BXmlEncoderTest !ASerializer ?@SerializerAwareNormalizer 9@GetSetMethodNormalizer  -@CustomNormalizer 5?UnsupportedException~ =?UnexpectedValueException} -?RuntimeException| )?LogicException{ =?InvalidArgumentExceptionz !>XmlEncodery 9>SerializerAwareEncoderx #>JsonEncoderw !>JsonEncodev !>JsonDecodeu %>ChainEncodert %>ChainDecoder&s M=TokenBasedRememberMeServicesTest0r a=PersistentTokenBasedRememberMeServicesTest$q I=AbstractRememberMeServicesTestp =<SessionLogoutHandlerTest%o K<CookieClearingLogoutHandlerTestn ';HttpUtilsTestm %;FirewallTestl +;FirewallMapTestk 9:RememberMeListenerTestj 1:LogoutListenerTesti ):DigestDataTesth 3:ContextListenerTestg 3:ChannelListenerTest%f K:BasicAuthenticationListenerTest)e S:AnonymousAuthenticationListenerTestd 1:AccessListenerTest'c O9RetryAuthenticationEntryPointTest&b M9FormAuthenticationEntryPointTest(a Q9DigestAuthenticationEntryPointTest'` O9BasicAuthenticationEntryPointTest_ !8TestObject^ !7TestObject] )7ClassUtilsTest\ 6UserTest[ =6InMemoryUserProviderTestZ 76ChainUserProviderTestY +6UserCheckerTestX 35SecurityContextTestW 14SwitchUserRoleTestV 4RoleTestU /4RoleHierarchyTest"T E3PlaintextPasswordEncoderTest&S M3MessageDigestPasswordEncoderTestR '3SomeChildUserQ 3SomeUserP 13EncoderFactoryTestO ;3BasePasswordEncoderTestN +3PasswordEncoderM '2RoleVoterTestL 92RoleHierarchyVoterTestK 92AuthenticatedVoterTestJ ?1AccessDecisionManagerTestI ?0UsernamePasswordTokenTestH 30RememberMeTokenTestG ?0PreAuthenticatedTokenTestF 10AnonymousTokenTestE /0AbstractTokenTestD 0TestUserC 3/PersistentTokenTestB ?/InMemoryTokenProviderTest$A I.UserAuthenticationProviderTest*@ U.RememberMeAuthenticationProviderTest0? a.PreAuthenticatedAuthenticationProviderTest#> G.DaoAuthenticationProviderTest)= S.AnonymousAuthenticationProviderTest%< K-AuthenticationTrustResolverTest'; O-AuthenticationProviderManagerTest: %,AclVoterTest9 ++MaskBuilderTest8 9*BasicPermissionMapTest7 -)TestDomainObject6 (EntryTest5 ='UserSecurityIdentityTest4 )'CustomUserImpl+3 W'SecurityIdentityRetrievalStrategyTest2 ='RoleSecurityIdentityTest$1 I'PermissionGrantingStrategyTest0 -'TestDomainObject/ 1'ObjectIdentityTest. %'DomainObject)- S'ObjectIdentityRetrievalStrategyTest, )'FieldEntryTest+ 5'DoctrineAclCacheTest* +'AuditLoggerTest) 'AclTest( 9&MutableAclProviderTest' +&AclProviderTest& =&AclProviderBenchmarkTest   S gS3{`I5zbF4qZD-tZ?%




~
a
A
)
						r	W	=	rU4pcM>&eM?-qRC+
~kO9,j[C4{iW0uS                 G =\BlackholeMetadataFactoryF 1[ValidatorExceptionE ;[UnexpectedTypeExceptionD ;[MissingOptionsExceptionC -[MappingExceptionB ;[InvalidOptionsExceptionA =[GroupDefinitionException#@ G[ConstraintDefinitionException? ZRequired> ZOptional= YValid< %YUrlValidator	; YUrl: 'YTypeValidator
9 YType8 'YTrueValidator
7 YTrue6 'YTimeValidator
5 YTime4 )YRegexValidator3 YRegex2 )YRangeValidator1 YRange0 'YNullValidator
/ YNull. -YNotNullValidator- YNotNull, /YNotBlankValidator+ YNotBlank* %YMinValidator) 1YMinLengthValidator( YMinLength	' YMin& %YMaxValidator% 1YMaxLengthValidator$ YMaxLength	# YMax" +YLocaleValidator! YLocale  +YLengthValidator YLength /YLanguageValidator YLanguage #YIpValidator YIp )YImageValidator YImage 7YGroupSequenceProvider 'YGroupSequence 'YFileValidator
 YFile )YFalseValidator YFalse )YEmailValidator YEmail 'YDateValidator /YDateTimeValidator YDateTime
 YDate )YCountValidator -YCountryValidator
 YCountry	 YCount 3YCollectionValidator !YCollection +YChoiceValidator YChoice /YCallbackValidator YCallback )YBlankValidator YBlank  %YAllValidator	 YAll~ -XValidatorFactory} -XValidatorContext| -XValidatorBuilder{ XValidatorz !XValidationy #XGraphWalkerx 9XGlobalExecutionContextw -XExecutionContextv ;XConstraintViolationListu 3XConstraintViolation t AXConstraintValidatorFactorys 3XConstraintValidatorr !XConstraintq /WTranslationWriterp 1VYamlFileLoaderTesto 3VXliffFileLoaderTestn =VQtTranslationsLoaderTestm -VPoFileLoaderTestl /VPhpFileLoaderTestk -VMoFileLoaderTestj /VLocalizedTestCasei /VIniFileLoaderTesth 5VIcuResFileLoaderTestg 5VIcuDatFileLoaderTestf /VCsvFileLoaderTeste UStringd )UTranslatorTestc 9UPluralizationRulesTestb 3UMessageSelectorTesta 5UMessageCatalogueTest` %UIntervalTest_ 9UIdentityTranslatorTest^ 1TYamlFileDumperTest] 3TXliffFileDumperTest\ -TQtFileDumperTest[ -TPoFileDumperTestZ /TPhpFileDumperTestY -TMoFileDumperTestX /TIniFileDumperTestW 5TIcuResFileDumperTestV /TCsvFileDumperTestU )SYamlFileLoaderT +SXliffFileLoaderS 5SQtTranslationsLoaderR %SPoFileLoaderQ 'SPhpFileLoaderP %SMoFileLoaderO 'SIniFileLoaderN -SIcuResFileLoaderM -SIcuDatFileLoaderL 'SCsvFileLoaderK #SArrayLoaderJ !RTranslatorI 1RPluralizationRulesH +RMessageSelectorG -RMessageCatalogueF RIntervalE 1RIdentityTranslatorD )QChainExtractorC )PYamlFileDumperB +PXliffFileDumperA %PQtFileDumper@ %PPoFileDumper? 'PPhpFileDumper> %PMoFileDumper= 'PIniFileDumper< -PIcuResFileDumper; !PFileDumper: 'PCsvFileDumper9 /OStringStorageTest8 #OTestStorage7 #OStorageTest6 +OFileStorageTest5 9NTemplateNameParserTest4 7NProjectTemplateLoader3 7NProjectTemplateEngine2 'NPhpEngineTest1 9MProjectTemplateLoader40 !MLoaderTest/ 9MProjectTemplateLoader2. 5MFilesystemLoaderTest- 9MProjectTemplateLoader1, +MChainLoaderTest+ =MProjectTemplateLoaderVar   ; hV>$jY?#X2V1cH,





e
E
+
						e	J	0		sU1y[F1!pU1~aE)cE#s[G<(	~fL8-xjS;             Z )pParseExceptionY 'pDumpException
X oYamlW oUnescaperV oParserU oInlineT oEscaperS oDumperR nYamlTestQ nBP !nParserTestO 1nParseExceptionTestN !nInlineTestM nAL !nDumperTestK -mRuntimeExceptionJ )mParseExceptionI 'mDumpException
H lYamlG lUnescaperF lParserE lInlineD lEscaperC lDumperB gYamlTestA gB@ !gParserTest? !gInlineTest> gA= !gDumperTest< )fParseException; 'fDumpException
: eYaml9 eUnescaper8 eParser7 eInline6 eEscaper5 eDumper4 1dYamlFileLoaderTest3 /dXmlFileLoaderTest2 =dBaseStaticLoaderDocument1 5dStaticLoaderDocument0 1dStaticLoaderEntity/ 9dStaticMethodLoaderTest. +dLoaderChainTest- +dFilesLoaderTest, 5dAnnotationLoaderTest+ 5cPropertyMetadataTest* 1cTestMemberMetadata) 1cMemberMetadataTest( 1cGetterMetadataTest' 3cTestElementMetadata& 3cElementMetadataTest% /cClassMetadataTest$ !cTestLoader# =cClassMetadataFactoryTest" %bApcCacheTest! aReference  1aPropertyConstraint  AaInvalidConstraintValidator /aInvalidConstraint! CaGroupSequenceProviderEntity #aFilesLoader =aFakeClassMetadataFactory  AaFailingConstraintValidator /aFailingConstraint %aEntityParent aEntity #aConstraintC #aConstraintB 5aConstraintAValidator #aConstraintA +aClassConstraint '`ValidatorTest 5`ValidatorFactoryTest 5`ValidatorContextTest 5`ValidatorBuilderTest +`GraphWalkerTest  A`GlobalExecutionContextTest 5`ExecutionContextTest
 ;`ConstraintViolationTest!	 C`ConstraintViolationListTest ;`ConstraintValidatorTest' O`ConstraintValidatorTest_Validator )`ConstraintTest _ValidTest -_UrlValidatorTest /_TypeValidatorTest /_TrueValidatorTest /_TimeValidatorTest  1_RegexValidatorTest 1_RangeValidatorTest~ /_NullValidatorTest} 5_NotNullValidatorTest| 7_NotBlankValidatorTest{ -_MinValidatorTestz 9_MinLengthValidatorTesty -_MaxValidatorTestx 9_MaxLengthValidatorTestw /_LocalizedTestCasev 3_LocaleValidatorTestu 3_LengthValidatorTestt 7_LanguageValidatorTests +_IpValidatorTestr 1_ImageValidatorTestq /_FileValidatorTestp 7_FileValidatorPathTesto ;_FileValidatorObjectTestn 1_FalseValidatorTestm 1_EmailValidatorTestl /_DateValidatorTestk 7_DateTimeValidatorTestj 1_CountValidatorTest!i C_CountValidatorCountableTest+h W_CountValidatorCountableTest_Countableg ;_CountValidatorArrayTestf 5_CountryValidatorTeste ;_CollectionValidatorTest.d ]_CollectionValidatorCustomArrayObjectTestc /_CustomArrayObject"b E_CollectionValidatorArrayTest(a Q_CollectionValidatorArrayObjectTest` )_CollectionTest_ 3_ChoiceValidatorTest^ 7_CallbackValidatorTest"] E_CallbackValidatorTest_Object!\ C_CallbackValidatorTest_Class[ 1_BlankValidatorTestZ -_AllValidatorTestY _AllTestX +^YamlFilesLoaderW )^YamlFileLoaderV )^XmlFilesLoaderU '^XmlFileLoaderT 1^StaticMethodLoaderS #^LoaderChainR #^FilesLoaderQ !^FileLoaderP -^AnnotationLoaderO )^AbstractLoaderN ]ApcCacheM -\PropertyMetadataL )\MemberMetadataK )\GetterMetadataJ +\ElementMetadataI 5\ClassMetadataFactoryH '\ClassMetadata   b  xfDmM2"`8N'}S,



e
<
				d	>	oGOp6nAe@rS&kA{T(               #< GrSmarty_Internal_Resource_Eval$; IrSmarty_Internal_ParseTree_Text(: QrSmarty_Internal_ParseTree_Template#9 GrSmarty_Internal_ParseTree_Tag)8 SrSmarty_Internal_ParseTree_DqContent"7 ErSmarty_Internal_ParseTree_Dq$6 IrSmarty_Internal_ParseTree_Code5 ?rSmarty_Internal_ParseTree$4 IrSmarty_Internal_Nocache_Insert&3 MrSmarty_Internal_Get_Include_Path+2 WrSmarty_Internal_Function_Call_Handler$1 IrSmarty_Internal_Filter_Handler60 mrSmarty_Internal_Extension_DefaultTemplateHandler&/ MrSmarty_Internal_Extension_Config). SrSmarty_Internal_Extension_CodeFrame- 7rSmarty_Internal_Debug, 5rSmarty_Internal_Data&+ MrSmarty_Internal_Configfileparser* -rTPC_yyStackEntry) #rTPC_yyToken%( KrSmarty_Internal_Configfilelexer*' UrSmarty_Internal_Config_File_Compiler!& CrSmarty_Internal_CompileBase(% QrSmarty_Internal_Compile_Whileclose#$ GrSmarty_Internal_Compile_While,# YrSmarty_Internal_Compile_Setfilterclose'" OrSmarty_Internal_Compile_Setfilter*! UrSmarty_Internal_Compile_Sectionclose)  SrSmarty_Internal_Compile_Sectionelse% KrSmarty_Internal_Compile_Section$ IrSmarty_Internal_Compile_Rdelim6 mrSmarty_Internal_Compile_Private_Special_Variable9 srSmarty_Internal_Compile_Private_Registered_Function6 mrSmarty_Internal_Compile_Private_Registered_Block6 mrSmarty_Internal_Compile_Private_Print_Expression) SrSmarty_Internal_Compile_Private_Php5 krSmarty_Internal_Compile_Private_Object_Function; wrSmarty_Internal_Compile_Private_Object_Block_Function. ]rSmarty_Internal_Compile_Private_Modifier5 krSmarty_Internal_Compile_Private_Function_Plugin2 erSmarty_Internal_Compile_Private_Block_Plugin* UrSmarty_Internal_Compile_Nocacheclose% KrSmarty_Internal_Compile_Nocache$ IrSmarty_Internal_Compile_Ldelim$ IrSmarty_Internal_Compile_Insert) SrSmarty_Internal_Compile_Include_Php% KrSmarty_Internal_Compile_Include% KrSmarty_Internal_Compile_Ifclose$ IrSmarty_Internal_Compile_Elseif" ErSmarty_Internal_Compile_Else 
 ArSmarty_Internal_Compile_If+	 WrSmarty_Internal_Compile_Functionclose& MrSmarty_Internal_Compile_Function* UrSmarty_Internal_Compile_Foreachclose) SrSmarty_Internal_Compile_Foreachelse% KrSmarty_Internal_Compile_Foreach& MrSmarty_Internal_Compile_Forclose% KrSmarty_Internal_Compile_Forelse! CrSmarty_Internal_Compile_For% KrSmarty_Internal_Compile_Extends"  ErSmarty_Internal_Compile_Eval# GrSmarty_Internal_Compile_Debug&~ MrSmarty_Internal_Compile_Continue)} SrSmarty_Internal_Compile_Config_Load*| UrSmarty_Internal_Compile_CaptureClose%{ KrSmarty_Internal_Compile_Capture"z ErSmarty_Internal_Compile_Call#y GrSmarty_Internal_Compile_Break6x mrSmarty_Internal_Compile_Private_Child_Blockclose1w crSmarty_Internal_Compile_Private_Child_Block(v QrSmarty_Internal_Compile_Blockclose#u GrSmarty_Internal_Compile_Block$t IrSmarty_Internal_Compile_Assign$s IrSmarty_Internal_Compile_Append(r QrSmarty_Internal_CacheResource_Fileq #rSmarty_Data(p QrSmarty_CacheResource_KeyValueStore!o CrSmarty_CacheResource_Customn 5rSmarty_CacheResourcem rSmartyBCl rSmartyk /rSmarty_Autoloaderj 9rSmarty_Resource_Mysqlsi 7rSmarty_Resource_Mysql h ArSmarty_Resource_Extendsall#g GrSmarty_CacheResource_Pdo_Gzipf =rSmarty_CacheResource_Pdo e ArSmarty_CacheResource_Mysql#d GrSmarty_CacheResource_Memcachec =rSmarty_CacheResource_Apcb qYamlTesta qB` !qParserTest_ 1qParseExceptionTest^ !qInlineTest] qA\ !qDumperTest[ -pRuntimeException   a  \3
d=)~eE!b?&]6





x
S
'
				o	C	^0c>g=sJv@]0En>                                  ( QsSmarty_Internal_Compile_Whileclose# GsSmarty_Internal_Compile_While, YsSmarty_Internal_Compile_Setfilterclose' OsSmarty_Internal_Compile_Setfilter* UsSmarty_Internal_Compile_Sectionclose) SsSmarty_Internal_Compile_Sectionelse% KsSmarty_Internal_Compile_Section$ IsSmarty_Internal_Compile_Rdelim6 msSmarty_Internal_Compile_Private_Special_Variable9 ssSmarty_Internal_Compile_Private_Registered_Function6 msSmarty_Internal_Compile_Private_Registered_Block6 msSmarty_Internal_Compile_Private_Print_Expression) SsSmarty_Internal_Compile_Private_Php5 ksSmarty_Internal_Compile_Private_Object_Function; wsSmarty_Internal_Compile_Private_Object_Block_Function. ]sSmarty_Internal_Compile_Private_Modifier5 ksSmarty_Internal_Compile_Private_Function_Plugin2 esSmarty_Internal_Compile_Private_Block_Plugin* UsSmarty_Internal_Compile_Nocacheclose%
 KsSmarty_Internal_Compile_Nocache$	 IsSmarty_Internal_Compile_Ldelim$ IsSmarty_Internal_Compile_Insert) SsSmarty_Internal_Compile_Include_Php% KsSmarty_Internal_Compile_Include% KsSmarty_Internal_Compile_Ifclose$ IsSmarty_Internal_Compile_Elseif" EsSmarty_Internal_Compile_Else  AsSmarty_Internal_Compile_If+ WsSmarty_Internal_Compile_Functionclose&  MsSmarty_Internal_Compile_Function* UsSmarty_Internal_Compile_Foreachclose)~ SsSmarty_Internal_Compile_Foreachelse%} KsSmarty_Internal_Compile_Foreach&| MsSmarty_Internal_Compile_Forclose%{ KsSmarty_Internal_Compile_Forelse!z CsSmarty_Internal_Compile_For%y KsSmarty_Internal_Compile_Extends"x EsSmarty_Internal_Compile_Eval#w GsSmarty_Internal_Compile_Debug&v MsSmarty_Internal_Compile_Continue)u SsSmarty_Internal_Compile_Config_Load*t UsSmarty_Internal_Compile_CaptureClose%s KsSmarty_Internal_Compile_Capture"r EsSmarty_Internal_Compile_Call#q GsSmarty_Internal_Compile_Break6p msSmarty_Internal_Compile_Private_Child_Blockclose1o csSmarty_Internal_Compile_Private_Child_Block(n QsSmarty_Internal_Compile_Blockclose#m GsSmarty_Internal_Compile_Block$l IsSmarty_Internal_Compile_Assign$k IsSmarty_Internal_Compile_Append(j QsSmarty_Internal_CacheResource_Filei #sSmarty_Data(h QsSmarty_CacheResource_KeyValueStore!g CsSmarty_CacheResource_Customf 5sSmarty_CacheResourcee sSmartyBCd sSmartyc /sSmarty_Autoloaderb 9sSmarty_Resource_Mysqlsa 7sSmarty_Resource_Mysql ` AsSmarty_Resource_Extendsall#_ GsSmarty_CacheResource_Pdo_Gzip^ =sSmarty_CacheResource_Pdo ] AsSmarty_CacheResource_Mysql#\ GsSmarty_CacheResource_Memcache[ =sSmarty_CacheResource_ApcZ +rSmartyExceptionY ;rSmartyCompilerExceptionX +rSmarty_VariableW ?rSmarty_Undefined_VariableV 9rSmarty_Template_SourceU 9rSmarty_Template_ConfigT =rSmarty_Template_CompiledS 9rSmarty_Template_CachedR +rSmarty_Security Q ArSmarty_Resource_Uncompiled P ArSmarty_Resource_RecompiledO 9rSmarty_Resource_CustomN +rSmarty_Resource M ArSmarty_Internal_Write_FileL ;rSmarty_Internal_Utility!K CrSmarty_Internal_TestInstall$J IrSmarty_Internal_TemplateparserI +rTP_yyStackEntryH !rTP_yyToken#G GrSmarty_Internal_Templatelexer*F UrSmarty_Internal_TemplateCompilerBase"E ErSmarty_Internal_TemplateBaseD =rSmarty_Internal_Template,C YrSmarty_Internal_SmartyTemplateCompiler%B KrSmarty_Internal_Resource_String%A KrSmarty_Internal_Resource_Stream)@ SrSmarty_Internal_Resource_Registered"? ErSmarty_Internal_Resource_Php#> GrSmarty_Internal_Resource_File&= MrSmarty_Internal_Resource_Extends   m oU+]5iCtJ#~N,




\
7
					q	X	8	y`O4}]=^3{gM/_:f;qC#d-                                      !
 C}NoSuchDistributionException3	 g}NoSuchCloudFrontOriginAccessIdentityException 5}MissingBodyException' O}InvalidViewerCertificateException" E}InvalidResponseCodeException& M}InvalidRequiredProtocolException" E}InvalidRelativePathException 9}InvalidOriginException* U}InvalidOriginAccessIdentityException" E}InvalidLocationCodeException$  I}InvalidIfMatchVersionException- [}InvalidGeoRestrictionParameterException$~ I}InvalidForwardCookiesException} ?}InvalidErrorCodeException'| O}InvalidDefaultRootObjectException{ =}InvalidArgumentException%z K}InconsistentQuantitiesExceptiony 9}IllegalUpdateExceptionx }Exception&w M}DistributionNotDisabledException(v Q}DistributionAlreadyExistsException!u C}CNAMEAlreadyExistsException2t e}CloudFrontOriginAccessIdentityInUseException:s u}CloudFrontOriginAccessIdentityAlreadyExistsExceptionr 3}CloudFrontExceptionq 9}BatchTooLargeExceptionp 7}AccessDeniedExceptiono 5|ViewerProtocolPolicyn -|SSLSupportMethodm !|PriceClassl 5|OriginProtocolPolicyk |Methodj '|ItemSelectioni 1|GeoRestrictionTypeh 3{CloudFrontSignatureg -{CloudFrontClientf 9zLimitExceededException'e OzInsufficientCapabilitiesExceptiond ;zCloudFormationExceptionc 9zAlreadyExistsExceptionb #yStackStatusa )yResourceStatus` yOnFailure_ !yCapability^ 5xCloudFormationClient(] QwScalingActivityInProgressException\ 9wResourceInUseException[ 9wLimitExceededExceptionZ ?wInvalidNextTokenExceptionY 5wAutoScalingExceptionX 9wAlreadyExistsExceptionW ?vScalingActivityStatusCodeV )vLifecycleStateU /uAutoScalingClientT /tCompatibilityTestS tReleaseR +sSmartyExceptionQ ;sSmartyCompilerExceptionP +sSmarty_VariableO ?sSmarty_Undefined_VariableN 9sSmarty_Template_SourceM 9sSmarty_Template_ConfigL =sSmarty_Template_CompiledK 9sSmarty_Template_CachedJ +sSmarty_Security I AsSmarty_Resource_Uncompiled H AsSmarty_Resource_RecompiledG 9sSmarty_Resource_CustomF +sSmarty_Resource E AsSmarty_Internal_Write_FileD ;sSmarty_Internal_Utility!C CsSmarty_Internal_TestInstall$B IsSmarty_Internal_TemplateparserA +sTP_yyStackEntry@ !sTP_yyToken#? GsSmarty_Internal_Templatelexer*> UsSmarty_Internal_TemplateCompilerBase"= EsSmarty_Internal_TemplateBase< =sSmarty_Internal_Template,; YsSmarty_Internal_SmartyTemplateCompiler%: KsSmarty_Internal_Resource_String%9 KsSmarty_Internal_Resource_Stream)8 SsSmarty_Internal_Resource_Registered"7 EsSmarty_Internal_Resource_Php#6 GsSmarty_Internal_Resource_File&5 MsSmarty_Internal_Resource_Extends#4 GsSmarty_Internal_Resource_Eval$3 IsSmarty_Internal_ParseTree_Text(2 QsSmarty_Internal_ParseTree_Template#1 GsSmarty_Internal_ParseTree_Tag)0 SsSmarty_Internal_ParseTree_DqContent"/ EsSmarty_Internal_ParseTree_Dq$. IsSmarty_Internal_ParseTree_Code- ?sSmarty_Internal_ParseTree$, IsSmarty_Internal_Nocache_Insert&+ MsSmarty_Internal_Get_Include_Path+* WsSmarty_Internal_Function_Call_Handler$) IsSmarty_Internal_Filter_Handler6( msSmarty_Internal_Extension_DefaultTemplateHandler&' MsSmarty_Internal_Extension_Config)& SsSmarty_Internal_Extension_CodeFrame% 7sSmarty_Internal_Debug$ 5sSmarty_Internal_Data&# MsSmarty_Internal_Configfileparser" -sTPC_yyStackEntry! #sTPC_yyToken%  KsSmarty_Internal_Configfilelexer* UsSmarty_Internal_Config_File_Compiler! CsSmarty_Internal_CompileBase   y
 i4yIo?kT6qM3



q
Q
+
					i	D	$	}`>Z7~qcL4s^H$[D0 qO7rP5s[G2
                 !CloudWatch !CloudTrail #CloudSearch  !CloudFront )CloudFormation~ #AutoScaling} ;JsonRestExceptionParser| =JsonQueryExceptionParser{ ?DefaultXmlExceptionParser!z CAbstractJsonExceptionParsery =UnexpectedValueExceptionx /TransferExceptionw =ServiceResponseExceptionv -RuntimeException)u SRequiredExtensionNotLoadedExceptiont /OverflowExceptions 5OutOfBoundsExceptionr ?NamespaceExceptionFactoryq =MultipartUploadExceptionp )LogicExceptiono =InvalidArgumentException)n SInstanceProfileCredentialsExceptionm /ExceptionListenerl +DomainExceptionk 9BadMethodCallExceptionj UaString
i Time
h Sizeg Regionf !DateFormate 'ClientOptions+d WRefreshableInstanceProfileCredentialsc +NullCredentialsb #Credentialsa 5CacheableCredentials$` IAbstractRefreshableCredentials"_ EAbstractCredentialsDecorator ^ AXmlResponseLocationVisitor] %QueryCommand\ #JsonCommand[ +AwsQueryVisitorZ /UserAgentListenerY 1UploadBodyListenerX 9ThrottlingErrorCheckerW ?ExpiredCredentialsCheckerV 'DefaultClientU 'ClientBuilderT )AbstractClientS 'HostNameUtils
R Enum	Q AwsP 5CognitoSyncExceptionO /CognitoSyncClientN =CognitoIdentityExceptionM 7CognitoIdentityClientL ;CloudWatchLogsExceptionK 5CloudWatchLogsClientJ ?ResourceNotFoundException'I OMissingRequiredParameterExceptionH 9LimitExceededException$G IInvalidParameterValueException*F UInvalidParameterCombinationExceptionE ?InvalidNextTokenExceptionD 9InvalidFormatExceptionC =InternalServiceExceptionB 3CloudWatchException
A Unit@ Statistic? !StateValue> +HistoryItemType= 1ComparisonOperator< -CloudWatchClient; ?TrailNotProvidedException: 9TrailNotFoundException!9 CTrailAlreadyExistsException#8 GS3BucketDoesNotExistException,7 YMaximumNumberOfTrailsExceededException6 ?InvalidTrailNameException"5 EInvalidSnsTopicNameException4 =InvalidS3PrefixException"3 EInvalidS3BucketNameException2 9InternalErrorException)1 SInsufficientSnsTopicPolicyException)0 SInsufficientS3BucketPolicyException/ 3CloudTrailException. /LogRecordIterator- 'LogFileReader, +LogFileIterator+ -CloudTrailClient * ACloudSearchDomainException$) ICloudSearchDomainClientBuilder( ;CloudSearchDomainClient' ?ResourceNotFoundException& 9LimitExceededException% 5InvalidTypeException$ /InternalException# 5CloudSearchException" 'BaseException! 1SourceDataFunction  1SearchInstanceType #OptionState )IndexFieldType /~CloudSearchClient( Q}TrustedSignerDoesNotExistException$ I}TooManyTrustedSignersException, Y}TooManyStreamingDistributionsException1 c}TooManyStreamingDistributionCNAMEsException ;}TooManyOriginsException- [}TooManyInvalidationsInProgressException# G}TooManyDistributionsException( Q}TooManyDistributionCNAMEsException, Y}TooManyCookieNamesInWhiteListException6 m}TooManyCloudFrontOriginAccessIdentitiesException" E}TooManyCertificatesException$ I}TooManyCacheBehaviorsException/ _}StreamingDistributionNotDisabledException1 c}StreamingDistributionAlreadyExistsException! C}PreconditionFailedException* U}NoSuchStreamingDistributionException 7}NoSuchOriginException! C}NoSuchInvalidationException   E gL?.!s[N=0 mS4zeE-lX9




p
W
<
)

					k	R	;		
jZE7f4tO2xZC/wS;s_@%ybH,tYE                            !SourceType /ElastiCacheClient ?DescribeInstancesIterator %Ec2Exception -VpcAttributeName !VolumeType #VolumeState 3VolumeAttributeName 7VolumeAttachmentState 1VirtualizationType
 -SpotInstanceType	 'SnapshotState 7SnapshotAttributeName !RuleAction #RouteOrigin %ResourceType /PlacementStrategy 3PlacementGroupState %InstanceType /InstanceStateName  7InstanceAttributeName !ImageState~ )HypervisorType} /ExportEnvironment| !DomainType{ +DiskImageFormatz +ContainerFormaty Ec2Clientx 5CopySnapshotListenerw 5SessionHandlerConfigv )SessionHandler u APessimisticLockingStrategyt 3NullLockingStrategys 9LockingStrategyFactoryr ;AbstractLockingStrategyq ?WriteRequestBatchTransferp /WriteRequestBatcho 1UnprocessedRequestn !PutRequestm 'DeleteRequestl 5AbstractWriteRequest
k Itemj Attributei %ScanIteratorh %ItemIteratorg 3ValidationException!f CUnrecognizedClientException'e OUnprocessedWriteRequestsExceptiond 3ThrottlingException!c CServiceUnavailableExceptionb ?ResourceNotFoundExceptiona 9ResourceInUseException,` YProvisionedThroughputExceededException)_ SMissingAuthenticationTokenException^ 9LimitExceededException.] ]ItemCollectionSizeLimitExceededException"\ EInternalServerErrorException[ =InternalFailureException"Z EIncompleteSignatureExceptionY /DynamoDbException%X KConditionalCheckFailedExceptionW 7AccessDeniedException
V TypeU #TableStatusT SelectS 3ScalarAttributeTypeR #ReturnValue!Q CReturnItemCollectionMetricsP 9ReturnConsumedCapacityO )ProjectionTypeN KeyTypeM #IndexStatusL 1ComparisonOperatorK 'AttributeTypeJ +AttributeActionI )DynamoDbClientH /Crc32ErrorChecker"G EDirectConnectServerExceptionF 9DirectConnectException"E EDirectConnectClientExceptionD 7VirtualInterfaceStateC StepStateB /InterconnectStateA +ConnectionState@ 3DirectConnectClient? 7TaskNotFoundException> ?PipelineNotFoundException= =PipelineDeletedException< ;InvalidRequestException#; GInternalServiceErrorException: 7DataPipelineException9 !WorkStatus8 1DataPipelineClient7 3WaiterConfigFactory6 %WaiterConfig5 1WaiterClassFactory4 5ConfigResourceWaiter3 9CompositeWaiterFactory2 )CallableWaiter1 )AbstractWaiter0 9AbstractResourceWaiter/ #SignatureV4. -SignatureV3Https- #SignatureV2, /SignatureListener+ /AbstractSignature* 1AbstractUploadPart) -AbstractUploadId( 7AbstractUploadBuilder' 7AbstractTransferState& -AbstractTransfer % AAwsResourceIteratorFactory$ 3AwsResourceIterator# -ServiceAvailable" 9InstanceMetadataClient! TreeHash  HashUtils ChunkHash Facade	 Swf Support	 Sts )StorageGateway	 Sqs	 Sns	 Ses SimpleDb S3 Route53 Redshift	 Rds OpsWorks Kinesis %ImportExport	 Iam Glacier	 Emr /ElasticTranscoder
 5ElasticLoadBalancing	 -ElasticBeanstalk #ElastiCache	 Ec2 DynamoDb 'DirectConnect %DataPipeline   h  X%e3U#uDvH



a
0					p	U	8		xI U/pJ#lIjI*~[>+sYBZ9          | !StatusCode{ !ActionCodez Actiony ;InvalidRequestExceptionx ;InternalServerException"w EInternalServerErrorExceptionv %EmrExceptionu ?StepStateChangeReasonCodet StepStates 1StepExecutionStater !MarketTypeq 7JobFlowExecutionState#p GInstanceStateChangeReasonCodeo 'InstanceStaten -InstanceRoleTypem /InstanceGroupType(l QInstanceGroupStateChangeReasonCodek 1InstanceGroupState"j EClusterStateChangeReasonCodei %ClusterStateh +ActionOnFailureg EmrClientf 3ValidationExceptione ?ResourceNotFoundExceptiond 9ResourceInUseExceptionc 9LimitExceededExceptionb =InternalServiceException"a EIncompatibleVersionException ` AElasticTranscoderException_ 7AccessDeniedException^ ;ElasticTranscoderClient] =TooManyPoliciesException"\ ETooManyAccessPointsException[ ;SubnetNotFoundException!Z CPolicyTypeNotFoundExceptionY ;PolicyNotFoundException,X YLoadBalancerAttributeNotFoundExceptionW ?ListenerNotFoundExceptionV 9InvalidSubnetException#U GInvalidSecurityGroupExceptionT 9InvalidSchemeExceptionS =InvalidEndPointException*R UInvalidConfigurationRequestException#Q GElasticLoadBalancingException"P EDuplicatePolicyNameException O ADuplicateListenerException'N ODuplicateAccessPointNameException"M ECertificateNotFoundException"L EAccessPointNotFoundException K AElasticLoadBalancingClient"J ETooManyEnvironmentsException,I YTooManyConfigurationTemplatesExceptionH ;TooManyBucketsException)G STooManyApplicationVersionsException"F ETooManyApplicationsException#E GSourceBundleDeletionException%D KS3SubscriptionRequiredException+C WS3LocationNotInServiceRegionException"B EOperationInProgressException%A KInsufficientPrivilegesException@ ?ElasticBeanstalkException? 1ValidationSeverity> 'EventSeverity= /EnvironmentStatus< 3EnvironmentInfoType; /EnvironmentHealth": EConfigurationOptionValueType#9 GConfigurationDeploymentStatus8 9ElasticBeanstalkClient7 5SubnetInUseException16 cReservedCacheNodesOfferingNotFoundException-5 [ReservedCacheNodeQuotaExceededException(4 QReservedCacheNodeNotFoundException-3 [ReservedCacheNodeAlreadyExistsException'2 OReplicationGroupNotFoundException,1 YReplicationGroupAlreadyExistsException+0 WNodeQuotaForCustomerExceededException*/ UNodeQuotaForClusterExceededException%. KInvalidVPCNetworkStateException- 9InvalidSubnetException+, WInvalidReplicationGroupStateException$+ IInvalidParameterValueException** UInvalidParameterCombinationException-) [InvalidCacheSecurityGroupStateException.( ]InvalidCacheParameterGroupStateException'' OInvalidCacheClusterStateException/& _InsufficientCacheClusterCapacityException% 5ElastiCacheException.$ ]ClusterQuotaForCustomerExceededException'# OCacheSubnetQuotaExceededException," YCacheSubnetGroupQuotaExceededException'! OCacheSubnetGroupNotFoundException$  ICacheSubnetGroupInUseException, YCacheSubnetGroupAlreadyExistsException. ]CacheSecurityGroupQuotaExceededException) SCacheSecurityGroupNotFoundException. ]CacheSecurityGroupAlreadyExistsException/ _CacheParameterGroupQuotaExceededException* UCacheParameterGroupNotFoundException/ _CacheParameterGroupAlreadyExistsException# GCacheClusterNotFoundException( QCacheClusterAlreadyExistsException$ IAuthorizationNotFoundException) SAuthorizationAlreadyExistsException   p vU2t]K7_/eEdD%



{
\
5
					a	B		 nT4jK8kW*V+tEjBg6`4                                     #l GInvalidDBSubnetStateException(k QInvalidDBSubnetGroupStateException#j GInvalidDBSubnetGroupException%i KInvalidDBSnapshotStateException*h UInvalidDBSecurityGroupStateException+g WInvalidDBParameterGroupStateException%f KInvalidDBInstanceStateException-e [InsufficientDBInstanceCapacityException$d IInstanceQuotaExceededException-c [EventSubscriptionQuotaExceededException)b SDBUpgradeDependencyFailureException$a IDBSubnetQuotaExceededException)` SDBSubnetGroupQuotaExceededException$_ IDBSubnetGroupNotFoundException&^ MDBSubnetGroupNotAllowedException1] cDBSubnetGroupDoesNotCoverEnoughAZsException)\ SDBSubnetGroupAlreadyExistsException![ CDBSnapshotNotFoundException&Z MDBSnapshotAlreadyExistsException+Y WDBSecurityGroupQuotaExceededException*X UDBSecurityGroupNotSupportedException&W MDBSecurityGroupNotFoundException+V WDBSecurityGroupAlreadyExistsException,U YDBParameterGroupQuotaExceededException'T ODBParameterGroupNotFoundException,S YDBParameterGroupAlreadyExistsException!R CDBInstanceNotFoundException&Q MDBInstanceAlreadyExistsException)P SAuthorizationQuotaExceededException$O IAuthorizationNotFoundException)N SAuthorizationAlreadyExistsExceptionM !SourceTypeL #ApplyMethodK )OpsWorksClientJ 3ValidationExceptionI ?ResourceNotFoundExceptionH /OpsWorksExceptionG !SourceTypeF )RootDeviceTypeE +PermissionLevelD LayerTypeC 7DeploymentCommandNameB +AutoScalingTypeA %Architecture@ AppType? 'KinesisClient> ?ResourceNotFoundException= 9ResourceInUseException,< YProvisionedThroughputExceededException; 9LimitExceededException: -KinesisException9 =InvalidArgumentException8 =ExpiredIteratorException7 %StreamStatus6 /ShardIteratorType5 3JobManifestListener4 1ImportExportClient"3 EUnableToCancelJobIdException2 7NoSuchBucketException1 =MultipleRegionsException0 ?MissingParameterException#/ GMissingManifestFieldException. ;MissingCustomsException - AMalformedManifestException, ?InvalidParameterException#+ GInvalidManifestFieldException* 7InvalidJobIdException ) AInvalidFileSystemException( ;InvalidCustomsException' ;InvalidAddressException!& CInvalidAccessKeyIdException% 7ImportExportException$ 7ExpiredJobIdException# 9CanceledJobIdException" ?BucketPermissionException! JobType  IamClient& MPasswordPolicyViolationException 7NoSuchEntityException& MMalformedPolicyDocumentException# GMalformedCertificateException 9LimitExceededException =KeyPairMismatchException =InvalidUserTypeException 7InvalidInputException! CInvalidCertificateException( QInvalidAuthenticationCodeException %IamException, YEntityTemporarilyUnmodifiableException" EEntityAlreadyExistsException# GDuplicateCertificateException ;DeleteConflictException !StatusType 5AssignmentStatusType 3UploadPartGenerator /UploadPartContext !UploadPart UploadId
 'UploadBuilder	 'TransferState )SerialTransfer -ParallelTransfer -AbstractTransfer 7GlacierUploadListener 'GlacierClient! CServiceUnavailableException ?ResourceNotFoundException ;RequestTimeoutException$  IMissingParameterValueException 9LimitExceededException$~ IInvalidParameterValueException} -GlacierException   [  e<_IZ8U&Z-



^
)
			k	<	R%j6|Na0^3	\ArDb=                                      +G WSubscriptionCategoryNotFoundException'F OSubscriptionAlreadyExistException!E CSubnetAlreadyInUseExceptionD ;SourceNotFoundException"C ESNSTopicArnNotFoundException!B CSNSNoAuthorizationExceptionA =SNSInvalidTopicException#@ GSnapshotCopyDisabledException)? SSnapshotCopyAlreadyEnabledException*> USnapshotCopyAlreadyDisabledException= ;ResizeNotFoundException(< QReservedNodeQuotaExceededException+; WReservedNodeOfferingNotFoundException#: GReservedNodeNotFoundException(9 QReservedNodeAlreadyExistsException8 /RedshiftException)7 SNumberOfNodesQuotaExceededException36 gNumberOfNodesPerClusterLimitExceededException%5 KInvalidVPCNetworkStateException4 9InvalidSubnetException&3 MInvalidS3KeyPrefixFaultException'2 OInvalidS3BucketNameFaultException1 ;InvalidRestoreException+0 WInvalidHsmConfigurationStateException// _InvalidHsmClientCertificateStateException. ?InvalidElasticIpException(- QInvalidClusterSubnetStateException-, [InvalidClusterSubnetGroupStateException"+ EInvalidClusterStateException** UInvalidClusterSnapshotStateException/) _InvalidClusterSecurityGroupStateException0( aInvalidClusterParameterGroupStateException.' ]InsufficientS3BucketPolicyFaultException*& UInsufficientClusterCapacityException+% WIncompatibleOrderableOptionsException,$ YHsmConfigurationQuotaExceededException'# OHsmConfigurationNotFoundException," YHsmConfigurationAlreadyExistsException0! aHsmClientCertificateQuotaExceededException+  WHsmClientCertificateNotFoundException0 aHsmClientCertificateAlreadyExistsException- [EventSubscriptionQuotaExceededException# GCopyToRegionDisabledException) SClusterSubnetQuotaExceededException. ]ClusterSubnetGroupQuotaExceededException) SClusterSubnetGroupNotFoundException. ]ClusterSubnetGroupAlreadyExistsException+ WClusterSnapshotQuotaExceededException& MClusterSnapshotNotFoundException+ WClusterSnapshotAlreadyExistsException0 aClusterSecurityGroupQuotaExceededException+ WClusterSecurityGroupNotFoundException0 aClusterSecurityGroupAlreadyExistsException# GClusterQuotaExceededException1 cClusterParameterGroupQuotaExceededException, YClusterParameterGroupNotFoundException1 cClusterParameterGroupAlreadyExistsException =ClusterNotFoundException# GClusterAlreadyExistsException ;BucketNotFoundException) SAuthorizationQuotaExceededException$
 IAuthorizationNotFoundException)	 SAuthorizationAlreadyExistsException% KAccessToSnapshotDeniedException !SourceType RdsClient# GSubscriptionNotFoundException+ WSubscriptionCategoryNotFoundException' OSubscriptionAlreadyExistException! CSubnetAlreadyInUseException# GStorageQuotaExceededException  ;SourceNotFoundException" ESNSTopicArnNotFoundException!~ CSNSNoAuthorizationException} =SNSInvalidTopicException$| ISnapshotQuotaExceededException2{ eReservedDBInstancesOfferingNotFoundException.z ]ReservedDBInstanceQuotaExceededException)y SReservedDBInstanceNotFoundException.x ]ReservedDBInstanceAlreadyExistsExceptionw %RdsException.v ]ProvisionedIopsNotAvailableInAZException+u WPointInTimeRestoreNotEnabledException't OOptionGroupQuotaExceededException"s EOptionGroupNotFoundException'r OOptionGroupAlreadyExistsException%q KInvalidVPCNetworkStateExceptionp 9InvalidSubnetExceptiono ;InvalidRestoreException&n MInvalidOptionGroupStateException,m YInvalidEventSubscriptionStateException   t |T(|P%hD%{U0{dO8






|
a
N
?
+
							U	9	mE$\7]=jI'kN1hE"\4{W8                                        ; 9NoSuchVersionException: 7NoSuchUploadException 9 ANoSuchTagSetErrorException+8 WNoSuchLifecycleConfigurationException7 1NoSuchKeyException&6 MNoSuchCORSConfigurationException!5 CNoSuchBucketPolicyException4 7NoSuchBucketException$3 INoLoggingStatusForKeyException$2 IMissingSecurityHeaderException%1 KMissingSecurityElementException&0 MMissingRequestBodyErrorException#/ GMissingContentLengthException . AMissingAttachmentException- ?MethodNotAllowedException, ?MetadataTooLargeException0+ aMaxPostPreDataLengthExceededErrorException'* OMaxMessageLengthExceededException) 7MalformedXMLException#( GMalformedPOSTRequestException ' AMalformedACLErrorException& 3KeyTooLongException% 3InvalidURIException$ 7InvalidTokenException,# YInvalidTargetBucketForLoggingException" =InvalidTagErrorException"! EInvalidStorageClassException!  CInvalidSOAPRequestException =InvalidSecurityException ;InvalidRequestException 7InvalidRangeException$ IInvalidPolicyDocumentException 7InvalidPayerException ?InvalidPartOrderException 5InvalidPartException( QInvalidLocationConstraintException 9InvalidDigestException! CInvalidBucketStateException  AInvalidBucketNameException =InvalidArgumentException& MInvalidAddressingHeaderException! CInvalidAccessKeyIdException 9InternalErrorException! CInlineDataTooLargeException2 eIncorrectNumberOfFilesInPostRequestException ;IncompleteBodyException- [IllegalVersioningConfigurationException 7ExpiredTokenException ;EntityTooSmallException
 ;EntityTooLargeException$	 IDeleteMultipleObjectsException- [CrossLocationLoggingProhibitedException& MCredentialsNotSupportedException ;BucketNotEmptyException& MBucketAlreadyOwnedByYouException" EBucketAlreadyExistsException 1BadDigestException+ WAmbiguousGrantByEmailAddressException ;AccountProblemException  7AccessDeniedException %StorageClass~ Storage} Status| 5ServerSideEncryption{ Protocolz !Permissiony Payerx MFADeletew /MetadataDirectivev Groupu #GranteeTypet Events %EncodingTyper CannedAclq S3Commandp 'StreamWrappero )SseCpkListenern 5SocketTimeoutCheckerm 'S3SignatureV4l #S3Signaturek 'S3Md5Listenerj S3Clienti /ResumableDownloadh 3BucketStyleListenerg #AcpListenerf 5Route53DomainsCliente ;Route53DomainsExceptiond 'Route53Client!c CTooManyHostedZonesException"b ETooManyHealthChecksExceptiona -Route53Exception&` MPriorRequestNotCompleteException_ ?NoSuchHostedZoneException ^ ANoSuchHealthCheckException] 7NoSuchChangeException\ 7InvalidInputException [ AInvalidDomainNameException!Z CInvalidChangeBatchException"Y EIncompatibleVersionException!X CHostedZoneNotEmptyException&W MHostedZoneAlreadyExistsExceptionV ?HealthCheckInUseException'U OHealthCheckAlreadyExistsException(T QDelegationSetNotAvailableExceptionS StatusR ?ResourceRecordSetFailoverQ !RecordTypeP +HealthCheckTypeO ActionN )RedshiftClient M AUnsupportedOptionException(L QUnknownSnapshotCopyRegionException$K IUnauthorizedOperationException+J WSubscriptionSeverityNotFoundException#I GSubscriptionNotFoundException*H USubscriptionEventIdNotFoundException   x n=Z9gC|aDrSD3






i
L
.
							l	P	.		lB~R*w\/qC-tJ$fS< yQ0`@                          *3 UInvalidAuthorizationMessageException2 9InvalidActionException1 =InternalFailureException"0 EIncompleteSignatureException/ ?IDPRejectedClaimException$. IIDPCommunicationErrorException- 7ExpiredTokenException, 5StorageGatewayClient+ ;StorageGatewayException$* IInvalidGatewayRequestException") EInternalServerErrorException( !VolumeType' %VolumeStatus& #GatewayType% +GatewayTimezone$ %GatewayState# ErrorCode" 1DiskAllocationType! 'BandwidthType  SqsClient -QueueUrlListener 5Md5ValidatorListener %SqsException )QueueAttribute -MessageAttribute SnsClient -MessageValidator Message" ESnsMessageValidatorException& MInvalidMessageSignatureException0 aCertificateFromUnrecognizedSourceException0 aCannotGetPublicKeyFromCertificateException! CTopicLimitExceededException( QSubscriptionLimitExceededException %SnsException* UPlatformApplicationDisabledException /NotFoundException ?InvalidParameterException 9InternalErrorException ?EndpointDisabledException! CAuthorizationErrorException
 )SimpleDbClient)	 STooManyRequestedAttributesException /SimpleDbException ;RequestTimeoutException+ WNumberSubmittedItemsExceededException0 aNumberSubmittedAttributesExceededException+ WNumberItemAttributesExceededException$ INumberDomainsExceededException( QNumberDomainBytesExceededException- [NumberDomainAttributesExceededException  7NoSuchDomainException ?MissingParameterException%~ KInvalidQueryExpressionException$} IInvalidParameterValueException&| MInvalidNumberValueTestsException&{ MInvalidNumberPredicatesExceptionz ?InvalidNextTokenException y ADuplicateItemNameException$x IAttributeDoesNotExistExceptionw SesClientv %SesExceptionu =MessageRejectedExceptiont 1VerificationStatuss -NotificationTyper -MailboxSimulatorq %IdentityTypep /UploadSyncBuildero !UploadSyncn %KeyConverterm 3DownloadSyncBuilderl %DownloadSynck 5ChangedFilesIteratorj 3AbstractSyncBuilderi %AbstractSynch !UploadPartg UploadIdf 'UploadBuildere 'TransferStated )SerialTransferc -ParallelTransferb -AbstractTransfera !PostObject` Grantee_ Grant^ 7DeleteObjectsTransfer] 1DeleteObjectsBatch\ #ClearBucket[ !AcpBuilder	Z AcpY +OpendirIterator X AListObjectVersionsIteratorW 3ListObjectsIterator"V EListMultipartUploadsIteratorU 3ListBucketsIteratorT /S3ExceptionParser%S KUserKeyMustBeSpecifiedException.R ]UnresolvableGrantByEmailAddressException Q AUnexpectedContentExceptionP ;TooManyBucketsException#O GTokenRefreshRequiredException N ATemporaryRedirectExceptionM /SlowDownException$L ISignatureDoesNotMatchException!K CServiceUnavailableExceptionJ #S3Exception*I URequestTorrentOfBucketErrorException#H GRequestTimeTooSkewedExceptionG ;RequestTimeoutException+F WRequestIsNotMultiPartContentExceptionE /RedirectException!D CPreconditionFailedException C APermanentRedirectExceptionB ?OperationAbortedException)A SObjectNotInActiveTierErrorException-@ [ObjectAlreadyInActiveTierErrorException"? ENotSuchBucketPolicyException> 5NotSignedUpException= ;NotImplementedException)< SNoSuchWebsiteConfigurationException   x  \4
sS,tS-zgN2XB




w
T
2
					r	O	$	qR9lSB,bB#oM4sL&jS= pR/tV=      + 1AbstractWaiterTest * AAbstractResourceWaiterTest) +SignatureV4Test( 5SignatureV3HttpsTest' +SignatureV2Test& 7SignatureListenerTest% 7AbstractSignatureTest$ 9AbstractUploadPartTest# !UploadPart" 5AbstractUploadIdTest! UploadId  ?AbstractUploadBuilderTest 5AbstractTransferTest ?AbstractTransferStateTest ;AwsResourceIteratorTest$ IAwsResourceIteratorFactoryTest  ASignatureV2IntegrationTest +IntegrationTest  AInstanceMetadataClientTest %TreeHashTest 'HashUtilsTest 'ChunkHashTest !FacadeTest 7S3ExceptionParserTest! CJsonRestExceptionParserTest" EJsonQueryExceptionParserTest# GDefaultXmlExceptionParserTest" EServiceResponseExceptionTest# GNamespaceExceptionFactoryTest- [InstanceProfileCredentialsExceptionTest 7ExceptionListenerTest/ _RefreshableInstanceProfileCredentialsTest: uRefreshableInstanceProfileCredentialsIntegrationTest
 +CredentialsTest	 =CacheableCredentialsTest( QAbstractRefreshableCredentialsTest& MAbstractCredentialsDecoratorTest$ IXmlResponseLocationVisitorTest +JsonCommandTest 3AwsQueryVisitorTest 7UserAgentListenerTest 9UploadBodyListenerTest  AThrottlingErrorCheckerTest#  GExpiredCredentialsCheckerTest /DefaultClientTest~ /ClientBuilderTest} 1AbstractClientTest| /
HostNameUtilsTest{ 
EnumTestz %
ConcreteEnumy 
AwsTestx +	IntegrationTestw 7CognitoSyncClientTestv +IntegrationTestu ?CognitoIdentityClientTestt +IntegrationTests =CloudWatchLogsClientTestr +IntegrationTestq 5CloudWatchClientTestp +IntegrationTesto 7 LogRecordIteratorTestn / LogFileReaderTestm 3 LogFileIteratorTestl 5 CloudTrailClientTest!k CCloudSearchDomainClientTestj +IntegrationTesti 7CloudSearchClientTest'h OStreamingDistributionDeployedTestg ?InvalidationCompletedTestf =DistributionDeployedTeste 'IteratorsTestd =CloudFront_20130512_Testc ;CloudFrontSignatureTestb 5CloudFrontClientTest"a ECloudFormation_20100515_Test` =CloudFormationClientTest_ ?AutoScaling_20110101_Test^ 7AutoScalingClientTest] SwfClient.\ ]WorkflowExecutionAlreadyStartedException[ =UnknownResourceExceptionZ ;TypeDeprecatedException Y ATypeAlreadyExistsExceptionX %SwfException$W IOperationNotPermittedExceptionV 9LimitExceededExceptionU ?DomainDeprecatedException"T EDomainAlreadyExistsExceptionS ?DefaultUndefinedException"R EWorkflowExecutionTimeoutTypeQ 1RegistrationStatusP +ExecutionStatusO EventTypeN %DecisionTypeM ;DecisionTaskTimeoutTypeL #CloseStatusK #ChildPolicyJ ;ActivityTaskTimeoutTypeI 'SupportClientH -SupportException"G EInternalServerErrorExceptionF ;CaseIdNotFoundException(E QCaseCreationLimitExceededExceptionD StsClientC 3ThrottlingExceptionB %StsException!A CServiceUnavailableException@ ;RequestExpiredException#? GPackedPolicyTooLargeException> 9OptInRequiredException= ?MissingParameterException)< SMissingAuthenticationTokenException; 9MissingActionException#: GMalformedQueryStringException&9 MMalformedPolicyDocumentException$8 IInvalidQueryParameterException$7 IInvalidParameterValueException*6 UInvalidParameterCombinationException#5 GInvalidIdentityTokenException#4 GInvalidClientTokenIdException   ( ~]C#
fF&pYL:^E#uU< 





y
Z
A

					n	U	:	gL1sR4pY@'hG/mR;_>t_L.kI(                          . ;QDownloadSyncBuilderTest- =QChangedFilesIteratorTest, -QAbstractSyncTest+ ;QAbstractSyncBuilderTest* )PUploadPartTest) /PUploadBuilderTest( /PTransferStateTest' 1PSerialTransferTest& 5PParallelTransferTest% 5PAbstractTransferTest$ OGrantTest# #OGranteeTest" ?ODeleteObjectsTransferTest! 9ODeleteObjectsBatchTest  +OClearBucketTest OAcpTest )OAcpBuilderTest 3NOpendirIteratorTest$ INListObjectVersionsIteratorTest ;NListObjectsIteratorTest& MNListMultipartUploadsIteratorTest ;NListBucketsIteratorTest -MS3_20060301_Test /LStreamWrapperTest 'LIteratorsTest +LIntegrationTest( QKDeleteMultipleObjectsExceptionTest 'KS3CommandTest /JStreamWrapperTest 1JSseCpkListenerTest =JSocketTimeoutCheckerTest /JS3SignatureV4Test +JS3SignatureTest /JS3Md5ListenerTest %JS3ClientTest 7JResumableDownloadTest
 )JPostObjectTest	 ;JBucketStyleListenerTest +JAcpListenerTest =IRoute53DomainsClientTest +HIntegrationTest /GRoute53ClientTest 'FIteratorsTest 3FBasicOperationsTest 1ERedshiftClientTest +DIntegrationTest  +CDBAvailableTest 'BRdsClientTest~ +AIntegrationTest} =@OpsWorksClientClientTest| +?IntegrationTest{ />KinesisClientTestz 7=Kinesis_20131104_Testy 3<IntegrationTestCasex +;IntegrationTestw 5:ListJobsIteratorTestv ;:JobManifestListenerTestu 9:ImportExportClientTestt +9IntegrationTests '8IamClientTestr 17VaultNotExistsTestq +7VaultExistsTestp )6UploadPartTesto ;6UploadPartGeneratorTestn /6UploadContextTestm /6UploadBuilderTestl /6TransferStateTestk 16SerialTransferTestj 56ParallelTransferTest i A6SpecialUploadPartGeneratorh 56AbstractTransferTestg +5IntegrationTestf ?4GlacierUploadListenerTeste /4GlacierClientTestd +3IntegrationTestc '2EmrClientTestb +1IntegrationTest!a C0ElasticTranscoderClientTest` +/IntegrationTest$_ I.ElasticLoadBalancingClientTest^ +-IntegrationTest ] A,ElasticBeanstalkClientTest\ ++IntegrationTest[ 7*ElastiCacheClientTest#Z G)DescribeInstancesIteratorTestY %(IteratorTestX 3(BasicOperationsTestW !'WaiterTestV ''Ec2ClientTestU ='CopySnapshotListenerTestT 1&TableNotExistsTestS +&TableExistsTestR 9&AbstractWaiterTestCase$Q I%PessimisticLockingStrategyTestP ;%NullLockingStrategyTest O A%LockingStrategyFactoryTest!N C%AbstractLockingStrategyTestM 1$SessionHandlerTestL =$SessionHandlerConfigTestK +$IntegrationTestJ ;$AbstractSessionTestCase#I G#WriteRequestBatchTransferTestH 7#WriteRequestBatchTestG 9#UnprocessedRequestTestF )#PutRequestTestE /#DeleteRequestTestD =#AbstractWriteRequestTestC "ItemTest	B "FooA '"AttributeTest@ -!ScanIteratorTest? -!ItemIteratorTest> + PerformanceTest= 'IteratorsTest%< KWriteRequestBatch_20120810_Test%; KWriteRequestBatch_20111205_Test: 9DynamoDb_20120810_Test9 9DynamoDb_20111205_Test+8 WUnprocessedWriteRequestsExceptionTest7 1DynamoDbClientTest6 7Crc32ErrorCheckerTest5 +IntegrationTest4 ;DirectConnectClientTest3 +IntegrationTest2 9DataPipelineClientTest1 -WaiterConfigTest0 ;WaiterConfigFactoryTest/ 9WaiterClassFactoryTest. =ConfigResourceWaiterTest - ACompositeWaiterFactoryTest, 1CallableWaiterTest   u  {^D+|eC%kP7 ~`=t_?





i
Y
;
'
					U	qH&W1mB$V1{Al7kO3a9          # -rCloudTrailClient " AqCloudSearchDomainException$! IpCloudSearchDomainClientBuilder  ;pCloudSearchDomainClient ?oResourceNotFoundException 9oLimitExceededException 5oInvalidTypeException /oInternalException 5oCloudSearchException 'oBaseException 1nSourceDataFunction 1nSearchInstanceType #nOptionState )nIndexFieldType /mCloudSearchClient( QlTrustedSignerDoesNotExistException$ IlTooManyTrustedSignersException, YlTooManyStreamingDistributionsException1 clTooManyStreamingDistributionCNAMEsException ;lTooManyOriginsException- [lTooManyInvalidationsInProgressException# GlTooManyDistributionsException( QlTooManyDistributionCNAMEsException, YlTooManyCookieNamesInWhiteListException6 mlTooManyCloudFrontOriginAccessIdentitiesException"
 ElTooManyCertificatesException$	 IlTooManyCacheBehaviorsException/ _lStreamingDistributionNotDisabledException1 clStreamingDistributionAlreadyExistsException! ClPreconditionFailedException* UlNoSuchStreamingDistributionException 7lNoSuchOriginException! ClNoSuchInvalidationException! ClNoSuchDistributionException3 glNoSuchCloudFrontOriginAccessIdentityException  5lMissingBodyException' OlInvalidViewerCertificateException"~ ElInvalidResponseCodeException&} MlInvalidRequiredProtocolException"| ElInvalidRelativePathException{ 9lInvalidOriginException*z UlInvalidOriginAccessIdentityException"y ElInvalidLocationCodeException$x IlInvalidIfMatchVersionException-w [lInvalidGeoRestrictionParameterException$v IlInvalidForwardCookiesExceptionu ?lInvalidErrorCodeException't OlInvalidDefaultRootObjectExceptions =lInvalidArgumentException%r KlInconsistentQuantitiesExceptionq 9lIllegalUpdateExceptionp lException&o MlDistributionNotDisabledException(n QlDistributionAlreadyExistsException!m ClCNAMEAlreadyExistsException2l elCloudFrontOriginAccessIdentityInUseException:k ulCloudFrontOriginAccessIdentityAlreadyExistsExceptionj 3lCloudFrontExceptioni 9lBatchTooLargeExceptionh 7lAccessDeniedExceptiong 5kViewerProtocolPolicyf -kSSLSupportMethode !kPriceClassd 5kOriginProtocolPolicyc kMethodb 'kItemSelectiona 1kGeoRestrictionType` 3jCloudFrontSignature_ -jCloudFrontClient^ 9iLimitExceededException'] OiInsufficientCapabilitiesException\ ;iCloudFormationException[ 9iAlreadyExistsExceptionZ #hStackStatusY )hResourceStatusX hOnFailureW !hCapabilityV 5gCloudFormationClient(U QfScalingActivityInProgressExceptionT 9fResourceInUseExceptionS 9fLimitExceededExceptionR ?fInvalidNextTokenExceptionQ 5fAutoScalingExceptionP 9fAlreadyExistsExceptionO ?eScalingActivityStatusCodeN )eLifecycleStateM /dAutoScalingClientL /cCompatibilityTestK cReleaseJ 'bSwfClientTestI +aIntegrationTestH /`SupportClientTestG 7_Support_20121215_TestF '^StsClientTestE +]IntegrationTestD =\StorageGatewayClientTestC +[IntegrationTestB +ZIntegrationTestA 'YSqsClientTest@ 5YQueueUrlListenerTest? =YMd5ValidatorListenerTest> 'YSnsClientTest= 'XMockPhpStream< 5XMessageValidatorTest; #XMessageTest: +WIntegrationTest9 1VSimpleDbClientTest8 +UIntegrationTest7 'TSesClientTest6 +SIntegrationTest5 -RObjectExistsTest4 3RBucketNotExistsTest3 -RBucketExistsTest2 )QUploadSyncTest1 7QUploadSyncBuilderTest0 -QKeyConverterTest/ -QDownloadSyncTest   / k>]6kXJ-rR'iK>0




t
Y
@
+
					p	W	(	k>Y?vU@(v\>#qdWJ2%hD*kQ<|_C/           1 !WorkStatus0 1DataPipelineClient/ 3WaiterConfigFactory. %WaiterConfig- 1WaiterClassFactory, 5ConfigResourceWaiter+ 9CompositeWaiterFactory* )CallableWaiter) )AbstractWaiter( 9AbstractResourceWaiter' #SignatureV4& -SignatureV3Https% #SignatureV2$ /SignatureListener# /AbstractSignature" 1AbstractUploadPart! -AbstractUploadId  7AbstractUploadBuilder 7AbstractTransferState -AbstractTransfer  AAwsResourceIteratorFactory 3AwsResourceIterator -ServiceAvailable 9InstanceMetadataClient TreeHash HashUtils ChunkHash Facade	 Swf Support	 Sts )StorageGateway	 Sqs	 Sns	 Ses SimpleDb S3 Route53 Redshift	
 Rds	 OpsWorks Kinesis %ImportExport	 Iam Glacier	 Emr /ElasticTranscoder 5ElasticLoadBalancing -ElasticBeanstalk  #ElastiCache	 Ec2~ DynamoDb} 'DirectConnect| %DataPipeline{ !CloudWatchz !CloudTraily #CloudSearchx !CloudFrontw )CloudFormationv #AutoScalingu ;JsonRestExceptionParsert =JsonQueryExceptionParsers ?DefaultXmlExceptionParser!r CAbstractJsonExceptionParserq =UnexpectedValueExceptionp /TransferExceptiono =ServiceResponseExceptionn -RuntimeException)m SRequiredExtensionNotLoadedExceptionl /OverflowExceptionk 5OutOfBoundsExceptionj ?NamespaceExceptionFactoryi =MultipartUploadExceptionh )LogicExceptiong =InvalidArgumentException)f SInstanceProfileCredentialsExceptione /ExceptionListenerd +DomainExceptionc 9BadMethodCallExceptionb UaString
a Time
` Size_ Region^ !DateFormat] 'ClientOptions+\ WRefreshableInstanceProfileCredentials[ +NullCredentialsZ #CredentialsY 5CacheableCredentials$X IAbstractRefreshableCredentials"W EAbstractCredentialsDecorator V AXmlResponseLocationVisitorU %QueryCommandT #JsonCommandS +AwsQueryVisitorR /~UserAgentListenerQ 1~UploadBodyListenerP 9~ThrottlingErrorCheckerO ?~ExpiredCredentialsCheckerN '~DefaultClientM '~ClientBuilderL )~AbstractClientK '}HostNameUtils
J }Enum	I }AwsH 5|CognitoSyncExceptionG /{CognitoSyncClientF =zCognitoIdentityExceptionE 7yCognitoIdentityClientD ;xCloudWatchLogsExceptionC 5wCloudWatchLogsClientB ?vResourceNotFoundException'A OvMissingRequiredParameterException@ 9vLimitExceededException$? IvInvalidParameterValueException*> UvInvalidParameterCombinationException= ?vInvalidNextTokenException< 9vInvalidFormatException; =vInternalServiceException: 3vCloudWatchException
9 uUnit8 uStatistic7 !uStateValue6 +uHistoryItemType5 1uComparisonOperator4 -tCloudWatchClient3 ?sTrailNotProvidedException2 9sTrailNotFoundException!1 CsTrailAlreadyExistsException#0 GsS3BucketDoesNotExistException,/ YsMaximumNumberOfTrailsExceededException. ?sInvalidTrailNameException"- EsInvalidSnsTopicNameException, =sInvalidS3PrefixException"+ EsInvalidS3BucketNameException* 9sInternalErrorException)) SsInsufficientSnsTopicPolicyException)( SsInsufficientS3BucketPolicyException' 3sCloudTrailException& /rLogRecordIterator% 'rLogFileReader$ +rLogFileIterator   w wT5lF+iD/|V4_?




m
W
A
.
 
					}	\	<	{bN3iT@!
oU?lER mBb1c5                +( WNodeQuotaForCustomerExceededException*' UNodeQuotaForClusterExceededException%& KInvalidVPCNetworkStateException% 9InvalidSubnetException+$ WInvalidReplicationGroupStateException$# IInvalidParameterValueException*" UInvalidParameterCombinationException-! [InvalidCacheSecurityGroupStateException.  ]InvalidCacheParameterGroupStateException' OInvalidCacheClusterStateException/ _InsufficientCacheClusterCapacityException 5ElastiCacheException. ]ClusterQuotaForCustomerExceededException' OCacheSubnetQuotaExceededException, YCacheSubnetGroupQuotaExceededException' OCacheSubnetGroupNotFoundException$ ICacheSubnetGroupInUseException, YCacheSubnetGroupAlreadyExistsException. ]CacheSecurityGroupQuotaExceededException) SCacheSecurityGroupNotFoundException. ]CacheSecurityGroupAlreadyExistsException/ _CacheParameterGroupQuotaExceededException* UCacheParameterGroupNotFoundException/ _CacheParameterGroupAlreadyExistsException# GCacheClusterNotFoundException( QCacheClusterAlreadyExistsException$ IAuthorizationNotFoundException) SAuthorizationAlreadyExistsException !SourceType /ElastiCacheClient
 ?DescribeInstancesIterator	 %Ec2Exception -VpcAttributeName !VolumeType #VolumeState 3VolumeAttributeName 7VolumeAttachmentState 1VirtualizationType -SpotInstanceType 'SnapshotState  7SnapshotAttributeName !RuleAction~ #RouteOrigin} %ResourceType| /PlacementStrategy{ 3PlacementGroupStatez %InstanceTypey /InstanceStateNamex 7InstanceAttributeNamew !ImageStatev )HypervisorTypeu /ExportEnvironmentt !DomainTypes +DiskImageFormatr +ContainerFormatq Ec2Clientp 5CopySnapshotListenero 5SessionHandlerConfign )SessionHandler m APessimisticLockingStrategyl 3NullLockingStrategyk 9LockingStrategyFactoryj ;AbstractLockingStrategyi ?WriteRequestBatchTransferh /WriteRequestBatchg 1UnprocessedRequestf !PutRequeste 'DeleteRequestd 5AbstractWriteRequest
c Itemb Attributea %ScanIterator` %ItemIterator_ 3ValidationException!^ CUnrecognizedClientException'] OUnprocessedWriteRequestsException\ 3ThrottlingException![ CServiceUnavailableExceptionZ ?ResourceNotFoundExceptionY 9ResourceInUseException,X YProvisionedThroughputExceededException)W SMissingAuthenticationTokenExceptionV 9LimitExceededException.U ]ItemCollectionSizeLimitExceededException"T EInternalServerErrorExceptionS =InternalFailureException"R EIncompleteSignatureExceptionQ /DynamoDbException%P KConditionalCheckFailedExceptionO 7AccessDeniedException
N TypeM #TableStatusL SelectK 3ScalarAttributeTypeJ #ReturnValue!I CReturnItemCollectionMetricsH 9ReturnConsumedCapacityG )ProjectionTypeF KeyTypeE #IndexStatusD 1ComparisonOperatorC 'AttributeTypeB +AttributeActionA )DynamoDbClient@ /Crc32ErrorChecker"? EDirectConnectServerException> 9DirectConnectException"= EDirectConnectClientException< 7VirtualInterfaceState; StepState: /InterconnectState9 +ConnectionState8 3DirectConnectClient7 7TaskNotFoundException6 ?PipelineNotFoundException5 =PipelineDeletedException4 ;InvalidRequestException#3 GInternalServiceErrorException2 7DataPipelineException   s tH}W<_0l<{W1




s
S
0
 				s	Q	0	eB%uZ@)}gA e=jR;$sL&pN,r_N+                              9CanceledJobIdException ?BucketPermissionException JobType IamClient& MPasswordPolicyViolationException 7NoSuchEntityException& MMalformedPolicyDocumentException# GMalformedCertificateException 9LimitExceededException =KeyPairMismatchException =InvalidUserTypeException 7InvalidInputException! CInvalidCertificateException( QInvalidAuthenticationCodeException %IamException, YEntityTemporarilyUnmodifiableException" EEntityAlreadyExistsException#
 GDuplicateCertificateException	 ;DeleteConflictException !StatusType 5AssignmentStatusType 3UploadPartGenerator /UploadPartContext !UploadPart UploadId 'UploadBuilder 'TransferState  )SerialTransfer -ParallelTransfer~ -AbstractTransfer} 7GlacierUploadListener| 'GlacierClient!{ CServiceUnavailableExceptionz ?ResourceNotFoundExceptiony ;RequestTimeoutException$x IMissingParameterValueExceptionw 9LimitExceededException$v IInvalidParameterValueExceptionu -GlacierExceptiont !StatusCodes !ActionCoder Actionq ;InvalidRequestExceptionp ;InternalServerException"o EInternalServerErrorExceptionn %EmrExceptionm ?StepStateChangeReasonCodel StepStatek 1StepExecutionStatej !MarketTypei 7JobFlowExecutionState#h GInstanceStateChangeReasonCodeg 'InstanceStatef -InstanceRoleTypee /InstanceGroupType(d QInstanceGroupStateChangeReasonCodec 1InstanceGroupState"b EClusterStateChangeReasonCodea %ClusterState` +ActionOnFailure_ EmrClient^ 3ValidationException] ?ResourceNotFoundException\ 9ResourceInUseException[ 9LimitExceededExceptionZ =InternalServiceException"Y EIncompatibleVersionException X AElasticTranscoderExceptionW 7AccessDeniedExceptionV ;ElasticTranscoderClientU =TooManyPoliciesException"T ETooManyAccessPointsExceptionS ;SubnetNotFoundException!R CPolicyTypeNotFoundExceptionQ ;PolicyNotFoundException,P YLoadBalancerAttributeNotFoundExceptionO ?ListenerNotFoundExceptionN 9InvalidSubnetException#M GInvalidSecurityGroupExceptionL 9InvalidSchemeExceptionK =InvalidEndPointException*J UInvalidConfigurationRequestException#I GElasticLoadBalancingException"H EDuplicatePolicyNameException G ADuplicateListenerException'F ODuplicateAccessPointNameException"E ECertificateNotFoundException"D EAccessPointNotFoundException C AElasticLoadBalancingClient"B ETooManyEnvironmentsException,A YTooManyConfigurationTemplatesException@ ;TooManyBucketsException)? STooManyApplicationVersionsException"> ETooManyApplicationsException#= GSourceBundleDeletionException%< KS3SubscriptionRequiredException+; WS3LocationNotInServiceRegionException": EOperationInProgressException%9 KInsufficientPrivilegesException8 ?ElasticBeanstalkException7 1ValidationSeverity6 'EventSeverity5 /EnvironmentStatus4 3EnvironmentInfoType3 /EnvironmentHealth"2 EConfigurationOptionValueType#1 GConfigurationDeploymentStatus0 9ElasticBeanstalkClient/ 5SubnetInUseException1. cReservedCacheNodesOfferingNotFoundException-- [ReservedCacheNodeQuotaExceededException(, QReservedCacheNodeNotFoundException-+ [ReservedCacheNodeAlreadyExistsException'* OReplicationGroupNotFoundException,) YReplicationGroupAlreadyExistsException   h  |[7b?nL*}fU?&qT<'



g
B
				^	0	P&|K#lCoN.Z(K#nIxK#                               ) SAuthorizationQuotaExceededException$ IAuthorizationNotFoundException) SAuthorizationAlreadyExistsException%  KAccessToSnapshotDeniedException !SourceType~ RdsClient#} GSubscriptionNotFoundException+| WSubscriptionCategoryNotFoundException'{ OSubscriptionAlreadyExistException!z CSubnetAlreadyInUseException#y GStorageQuotaExceededExceptionx ;SourceNotFoundException"w ESNSTopicArnNotFoundException!v CSNSNoAuthorizationExceptionu =SNSInvalidTopicException$t ISnapshotQuotaExceededException2s eReservedDBInstancesOfferingNotFoundException.r ]ReservedDBInstanceQuotaExceededException)q SReservedDBInstanceNotFoundException.p ]ReservedDBInstanceAlreadyExistsExceptiono %RdsException.n ]ProvisionedIopsNotAvailableInAZException+m WPointInTimeRestoreNotEnabledException'l OOptionGroupQuotaExceededException"k EOptionGroupNotFoundException'j OOptionGroupAlreadyExistsException%i KInvalidVPCNetworkStateExceptionh 9InvalidSubnetExceptiong ;InvalidRestoreException&f MInvalidOptionGroupStateException,e YInvalidEventSubscriptionStateException#d GInvalidDBSubnetStateException(c QInvalidDBSubnetGroupStateException#b GInvalidDBSubnetGroupException%a KInvalidDBSnapshotStateException*` UInvalidDBSecurityGroupStateException+_ WInvalidDBParameterGroupStateException%^ KInvalidDBInstanceStateException-] [InsufficientDBInstanceCapacityException$\ IInstanceQuotaExceededException-[ [EventSubscriptionQuotaExceededException)Z SDBUpgradeDependencyFailureException$Y IDBSubnetQuotaExceededException)X SDBSubnetGroupQuotaExceededException$W IDBSubnetGroupNotFoundException&V MDBSubnetGroupNotAllowedException1U cDBSubnetGroupDoesNotCoverEnoughAZsException)T SDBSubnetGroupAlreadyExistsException!S CDBSnapshotNotFoundException&R MDBSnapshotAlreadyExistsException+Q WDBSecurityGroupQuotaExceededException*P UDBSecurityGroupNotSupportedException&O MDBSecurityGroupNotFoundException+N WDBSecurityGroupAlreadyExistsException,M YDBParameterGroupQuotaExceededException'L ODBParameterGroupNotFoundException,K YDBParameterGroupAlreadyExistsException!J CDBInstanceNotFoundException&I MDBInstanceAlreadyExistsException)H SAuthorizationQuotaExceededException$G IAuthorizationNotFoundException)F SAuthorizationAlreadyExistsExceptionE !SourceTypeD #ApplyMethodC )OpsWorksClientB 3ValidationExceptionA ?ResourceNotFoundException@ /OpsWorksException? !SourceType> )RootDeviceType= +PermissionLevel< LayerType; 7DeploymentCommandName: +AutoScalingType9 %Architecture8 AppType7 'KinesisClient6 ?ResourceNotFoundException5 9ResourceInUseException,4 YProvisionedThroughputExceededException3 9LimitExceededException2 -KinesisException1 =InvalidArgumentException0 =ExpiredIteratorException/ %StreamStatus. /ShardIteratorType- 3JobManifestListener, 1ImportExportClient"+ EUnableToCancelJobIdException* 7NoSuchBucketException) =MultipleRegionsException( ?MissingParameterException#' GMissingManifestFieldException& ;MissingCustomsException % AMalformedManifestException$ ?InvalidParameterException## GInvalidManifestFieldException" 7InvalidJobIdException ! AInvalidFileSystemException  ;InvalidCustomsException ;InvalidAddressException! CInvalidAccessKeyIdException 7ImportExportException 7ExpiredJobIdException   c  a1r>W%l=	~O!



Z
4
				R	1	\/fE|V5a2
yeB2iCuK1{^C1    f 5SocketTimeoutCheckere 'S3SignatureV4d #S3Signaturec 'S3Md5Listenerb S3Clienta /ResumableDownload` 3BucketStyleListener_ #AcpListener^ 5Route53DomainsClient] ;Route53DomainsException\ 'Route53Client![ CTooManyHostedZonesException"Z ETooManyHealthChecksExceptionY -Route53Exception&X MPriorRequestNotCompleteExceptionW ?NoSuchHostedZoneException V ANoSuchHealthCheckExceptionU 7NoSuchChangeExceptionT 7InvalidInputException S AInvalidDomainNameException!R CInvalidChangeBatchException"Q EIncompatibleVersionException!P CHostedZoneNotEmptyException&O MHostedZoneAlreadyExistsExceptionN ?HealthCheckInUseException'M OHealthCheckAlreadyExistsException(L QDelegationSetNotAvailableExceptionK StatusJ ?ResourceRecordSetFailoverI !RecordTypeH +HealthCheckTypeG ActionF )RedshiftClient E AUnsupportedOptionException(D QUnknownSnapshotCopyRegionException$C IUnauthorizedOperationException+B WSubscriptionSeverityNotFoundException#A GSubscriptionNotFoundException*@ USubscriptionEventIdNotFoundException+? WSubscriptionCategoryNotFoundException'> OSubscriptionAlreadyExistException!= CSubnetAlreadyInUseException< ;SourceNotFoundException"; ESNSTopicArnNotFoundException!: CSNSNoAuthorizationException9 =SNSInvalidTopicException#8 GSnapshotCopyDisabledException)7 SSnapshotCopyAlreadyEnabledException*6 USnapshotCopyAlreadyDisabledException5 ;ResizeNotFoundException(4 QReservedNodeQuotaExceededException+3 WReservedNodeOfferingNotFoundException#2 GReservedNodeNotFoundException(1 QReservedNodeAlreadyExistsException0 /RedshiftException)/ SNumberOfNodesQuotaExceededException3. gNumberOfNodesPerClusterLimitExceededException%- KInvalidVPCNetworkStateException, 9InvalidSubnetException&+ MInvalidS3KeyPrefixFaultException'* OInvalidS3BucketNameFaultException) ;InvalidRestoreException+( WInvalidHsmConfigurationStateException/' _InvalidHsmClientCertificateStateException& ?InvalidElasticIpException(% QInvalidClusterSubnetStateException-$ [InvalidClusterSubnetGroupStateException"# EInvalidClusterStateException*" UInvalidClusterSnapshotStateException/! _InvalidClusterSecurityGroupStateException0  aInvalidClusterParameterGroupStateException. ]InsufficientS3BucketPolicyFaultException* UInsufficientClusterCapacityException+ WIncompatibleOrderableOptionsException, YHsmConfigurationQuotaExceededException' OHsmConfigurationNotFoundException, YHsmConfigurationAlreadyExistsException0 aHsmClientCertificateQuotaExceededException+ WHsmClientCertificateNotFoundException0 aHsmClientCertificateAlreadyExistsException- [EventSubscriptionQuotaExceededException# GCopyToRegionDisabledException) SClusterSubnetQuotaExceededException. ]ClusterSubnetGroupQuotaExceededException) SClusterSubnetGroupNotFoundException. ]ClusterSubnetGroupAlreadyExistsException+ WClusterSnapshotQuotaExceededException& MClusterSnapshotNotFoundException+ WClusterSnapshotAlreadyExistsException0 aClusterSecurityGroupQuotaExceededException+ WClusterSecurityGroupNotFoundException0 aClusterSecurityGroupAlreadyExistsException#
 GClusterQuotaExceededException1	 cClusterParameterGroupQuotaExceededException, YClusterParameterGroupNotFoundException1 cClusterParameterGroupAlreadyExistsException =ClusterNotFoundException# GClusterAlreadyExistsException ;BucketNotFoundException   t qbG4%j;S+
xBhC#




o
P
/
				p	Q	4	N+jBa=l;X7eAz_BpQB1                   Z -AbstractTransferY !PostObjectX GranteeW GrantV 7DeleteObjectsTransferU 1DeleteObjectsBatchT #ClearBucketS !AcpBuilder	R AcpQ +OpendirIterator P AListObjectVersionsIteratorO 3ListObjectsIterator"N EListMultipartUploadsIteratorM 3ListBucketsIteratorL /S3ExceptionParser%K KUserKeyMustBeSpecifiedException.J ]UnresolvableGrantByEmailAddressException I AUnexpectedContentExceptionH ;TooManyBucketsException#G GTokenRefreshRequiredException F ATemporaryRedirectExceptionE /SlowDownException$D ISignatureDoesNotMatchException!C CServiceUnavailableExceptionB #S3Exception*A URequestTorrentOfBucketErrorException#@ GRequestTimeTooSkewedException? ;RequestTimeoutException+> WRequestIsNotMultiPartContentException= /RedirectException!< CPreconditionFailedException ; APermanentRedirectException: ?OperationAbortedException)9 SObjectNotInActiveTierErrorException-8 [ObjectAlreadyInActiveTierErrorException"7 ENotSuchBucketPolicyException6 5NotSignedUpException5 ;NotImplementedException)4 SNoSuchWebsiteConfigurationException3 9NoSuchVersionException2 7NoSuchUploadException 1 ANoSuchTagSetErrorException+0 WNoSuchLifecycleConfigurationException/ 1NoSuchKeyException&. MNoSuchCORSConfigurationException!- CNoSuchBucketPolicyException, 7NoSuchBucketException$+ INoLoggingStatusForKeyException$* IMissingSecurityHeaderException%) KMissingSecurityElementException&( MMissingRequestBodyErrorException#' GMissingContentLengthException & AMissingAttachmentException% ?MethodNotAllowedException$ ?MetadataTooLargeException0# aMaxPostPreDataLengthExceededErrorException'" OMaxMessageLengthExceededException! 7MalformedXMLException#  GMalformedPOSTRequestException  AMalformedACLErrorException 3KeyTooLongException 3InvalidURIException 7InvalidTokenException, YInvalidTargetBucketForLoggingException =InvalidTagErrorException" EInvalidStorageClassException! CInvalidSOAPRequestException =InvalidSecurityException ;InvalidRequestException 7InvalidRangeException$ IInvalidPolicyDocumentException 7InvalidPayerException ?InvalidPartOrderException 5InvalidPartException( QInvalidLocationConstraintException 9InvalidDigestException! CInvalidBucketStateException  AInvalidBucketNameException =InvalidArgumentException& MInvalidAddressingHeaderException!
 CInvalidAccessKeyIdException	 9InternalErrorException! CInlineDataTooLargeException2 eIncorrectNumberOfFilesInPostRequestException ;IncompleteBodyException- [IllegalVersioningConfigurationException 7ExpiredTokenException ;EntityTooSmallException ;EntityTooLargeException$ IDeleteMultipleObjectsException-  [CrossLocationLoggingProhibitedException& MCredentialsNotSupportedException~ ;BucketNotEmptyException&} MBucketAlreadyOwnedByYouException"| EBucketAlreadyExistsException{ 1BadDigestException+z WAmbiguousGrantByEmailAddressExceptiony ;AccountProblemExceptionx 7AccessDeniedExceptionw %StorageClassv Storageu Statust 5ServerSideEncryptions Protocolr !Permissionq Payerp MFADeleteo /MetadataDirectiven Groupm #GranteeTypel Eventk %EncodingTypej CannedAcli S3Commandh 'StreamWrapperg )SseCpkListener   x
 zdG)gK) g=yM%rW*




l
>
(				o	E		{aN7tL+}[;iA`9`: 	t[?eO+
                  R ;TypeDeprecatedException Q ATypeAlreadyExistsExceptionP %SwfException$O IOperationNotPermittedExceptionN 9LimitExceededExceptionM ?DomainDeprecatedException"L EDomainAlreadyExistsExceptionK ?DefaultUndefinedException"J EWorkflowExecutionTimeoutTypeI 1RegistrationStatusH +ExecutionStatusG EventTypeF %DecisionTypeE ;DecisionTaskTimeoutTypeD #CloseStatusC #ChildPolicyB ;ActivityTaskTimeoutTypeA 'SupportClient@ -SupportException"? EInternalServerErrorException> ;CaseIdNotFoundException(= QCaseCreationLimitExceededException< StsClient; 3ThrottlingException: %StsException!9 CServiceUnavailableException8 ;RequestExpiredException#7 GPackedPolicyTooLargeException6 9OptInRequiredException5 ?MissingParameterException)4 SMissingAuthenticationTokenException3 9MissingActionException#2 GMalformedQueryStringException&1 MMalformedPolicyDocumentException$0 IInvalidQueryParameterException$/ IInvalidParameterValueException*. UInvalidParameterCombinationException#- GInvalidIdentityTokenException#, GInvalidClientTokenIdException*+ UInvalidAuthorizationMessageException* 9InvalidActionException) =InternalFailureException"( EIncompleteSignatureException' ?IDPRejectedClaimException$& IIDPCommunicationErrorException% 7ExpiredTokenException$ 5StorageGatewayClient# ;StorageGatewayException$" IInvalidGatewayRequestException"! EInternalServerErrorException  !VolumeType %VolumeStatus #GatewayType +GatewayTimezone %GatewayState ErrorCode 1DiskAllocationType 'BandwidthType SqsClient -QueueUrlListener 5Md5ValidatorListener %SqsException )QueueAttribute -MessageAttribute SnsClient -MessageValidator Message" ESnsMessageValidatorException& MInvalidMessageSignatureException0 aCertificateFromUnrecognizedSourceException0 aCannotGetPublicKeyFromCertificateException! CTopicLimitExceededException(
 QSubscriptionLimitExceededException	 %SnsException* UPlatformApplicationDisabledException /NotFoundException ?InvalidParameterException 9InternalErrorException ?EndpointDisabledException! CAuthorizationErrorException )SimpleDbClient) STooManyRequestedAttributesException  /SimpleDbException ;RequestTimeoutException+~ WNumberSubmittedItemsExceededException0} aNumberSubmittedAttributesExceededException+| WNumberItemAttributesExceededException${ INumberDomainsExceededException(z QNumberDomainBytesExceededException-y [NumberDomainAttributesExceededExceptionx 7NoSuchDomainExceptionw ?MissingParameterException%v KInvalidQueryExpressionException$u IInvalidParameterValueException&t MInvalidNumberValueTestsException&s MInvalidNumberPredicatesExceptionr ?InvalidNextTokenException q ADuplicateItemNameException$p IAttributeDoesNotExistExceptiono SesClientn %SesExceptionm =MessageRejectedExceptionl 1VerificationStatusk -NotificationTypej -MailboxSimulatori %IdentityTypeh /UploadSyncBuilderg !UploadSyncf %KeyConvertere 3DownloadSyncBuilderd %DownloadSyncc 5ChangedFilesIteratorb 3AbstractSyncBuildera %AbstractSync` !UploadPart_ UploadId^ 'UploadBuilder] 'TransferState\ )SerialTransfer[ -ParallelTransfer   {  zW5uR'tU<oVE/eE&	



r
P
7				v	O	)	mV@sU2 wY@ ~]C#
fF&pYL:^E#uU<  M =CopySnapshotListenerTestL 1TableNotExistsTestK +TableExistsTestJ 9AbstractWaiterTestCase$I IPessimisticLockingStrategyTestH ;NullLockingStrategyTest G ALockingStrategyFactoryTest!F CAbstractLockingStrategyTestE 1SessionHandlerTestD =SessionHandlerConfigTestC +IntegrationTestB ;AbstractSessionTestCase#A GWriteRequestBatchTransferTest@ 7WriteRequestBatchTest? 9UnprocessedRequestTest> )PutRequestTest= /DeleteRequestTest< =AbstractWriteRequestTest; ItemTest	: Foo9 'AttributeTest8 -ScanIteratorTest7 -ItemIteratorTest6 +PerformanceTest5 'IteratorsTest%4 KWriteRequestBatch_20120810_Test%3 KWriteRequestBatch_20111205_Test2 9DynamoDb_20120810_Test1 9DynamoDb_20111205_Test+0 WUnprocessedWriteRequestsExceptionTest/ 1DynamoDbClientTest. 7Crc32ErrorCheckerTest- +
IntegrationTest, ;	DirectConnectClientTest+ +IntegrationTest* 9DataPipelineClientTest) -WaiterConfigTest( ;WaiterConfigFactoryTest' 9WaiterClassFactoryTest& =ConfigResourceWaiterTest % ACompositeWaiterFactoryTest$ 1CallableWaiterTest# 1AbstractWaiterTest " AAbstractResourceWaiterTest! +SignatureV4Test  5SignatureV3HttpsTest +SignatureV2Test 7SignatureListenerTest 7AbstractSignatureTest 9AbstractUploadPartTest !UploadPart 5AbstractUploadIdTest UploadId ?AbstractUploadBuilderTest 5AbstractTransferTest ?AbstractTransferStateTest ;AwsResourceIteratorTest$ IAwsResourceIteratorFactoryTest  ASignatureV2IntegrationTest +IntegrationTest  AInstanceMetadataClientTest % TreeHashTest ' HashUtilsTest ' ChunkHashTest !FacadeTest 7S3ExceptionParserTest! CJsonRestExceptionParserTest"
 EJsonQueryExceptionParserTest#	 GDefaultXmlExceptionParserTest" EServiceResponseExceptionTest# GNamespaceExceptionFactoryTest- [InstanceProfileCredentialsExceptionTest 7ExceptionListenerTest/ _RefreshableInstanceProfileCredentialsTest: uRefreshableInstanceProfileCredentialsIntegrationTest +CredentialsTest =CacheableCredentialsTest(  QAbstractRefreshableCredentialsTest& MAbstractCredentialsDecoratorTest$~ IXmlResponseLocationVisitorTest} +JsonCommandTest| 3AwsQueryVisitorTest{ 7UserAgentListenerTestz 9UploadBodyListenerTest y AThrottlingErrorCheckerTest#x GExpiredCredentialsCheckerTestw /DefaultClientTestv /ClientBuilderTestu 1AbstractClientTestt /HostNameUtilsTests EnumTestr %ConcreteEnumq AwsTestp +IntegrationTesto 7CognitoSyncClientTestn +IntegrationTestm ?CognitoIdentityClientTestl +IntegrationTestk =CloudWatchLogsClientTestj +IntegrationTesti 5CloudWatchClientTesth +IntegrationTestg 7LogRecordIteratorTestf /LogFileReaderTeste 3LogFileIteratorTestd 5CloudTrailClientTest!c CCloudSearchDomainClientTestb +IntegrationTesta 7CloudSearchClientTest'` OStreamingDistributionDeployedTest_ ?InvalidationCompletedTest^ =DistributionDeployedTest] 'IteratorsTest\ =CloudFront_20130512_Test[ ;CloudFrontSignatureTestZ 5CloudFrontClientTest"Y ECloudFormation_20100515_TestX =CloudFormationClientTestW ?AutoScaling_20110101_TestV 7AutoScalingClientTestU SwfClient.T ]WorkflowExecutionAlreadyStartedExceptionS =UnknownResourceException   ) {\CpW< iN3uT6 r[B)





j
I
1
						o	T	=	a@vaN0mK*nU>%	mO8zaJ(	p]I;-gQ9) ] VDrawer\ )UTransformation[ %UImagineAwareZ +TWebOptimizationY TThumbnailX TStrip
W TShow
V TSaveU TRotateT TResizeS TPasteR )TFlipVerticallyQ -TFlipHorizontally
P TFill
O TCrop
N TCopyM !TAutorotateL TApplyMaskK )SRelativeResizeJ %SOnPixelBasedI SGrayscaleH SCanvasG SBorderF -RRuntimeExceptionE 5ROutOfBoundsExceptionD 7RNotSupportedExceptionC =RInvalidArgumentExceptionB 'QSwfClientTestA +PIntegrationTest@ /OSupportClientTest? 7NSupport_20121215_Test> 'MStsClientTest= +LIntegrationTest< =KStorageGatewayClientTest; +JIntegrationTest: +IIntegrationTest9 'HSqsClientTest8 5HQueueUrlListenerTest7 =HMd5ValidatorListenerTest6 'HSnsClientTest5 'GMockPhpStream4 5GMessageValidatorTest3 #GMessageTest2 +FIntegrationTest1 1ESimpleDbClientTest0 +DIntegrationTest/ 'CSesClientTest. +BIntegrationTest- -AObjectExistsTest, 3ABucketNotExistsTest+ -ABucketExistsTest* )@UploadSyncTest) 7@UploadSyncBuilderTest( -@KeyConverterTest' -@DownloadSyncTest& ;@DownloadSyncBuilderTest% =@ChangedFilesIteratorTest$ -@AbstractSyncTest# ;@AbstractSyncBuilderTest" )?UploadPartTest! /?UploadBuilderTest  /?TransferStateTest 1?SerialTransferTest 5?ParallelTransferTest 5?AbstractTransferTest >GrantTest #>GranteeTest ?>DeleteObjectsTransferTest 9>DeleteObjectsBatchTest +>ClearBucketTest >AcpTest )>AcpBuilderTest 3=OpendirIteratorTest$ I=ListObjectVersionsIteratorTest ;=ListObjectsIteratorTest& M=ListMultipartUploadsIteratorTest ;=ListBucketsIteratorTest -<S3_20060301_Test /;StreamWrapperTest ';IteratorsTest +;IntegrationTest( Q:DeleteMultipleObjectsExceptionTest ':S3CommandTest
 /9StreamWrapperTest	 19SseCpkListenerTest =9SocketTimeoutCheckerTest /9S3SignatureV4Test +9S3SignatureTest /9S3Md5ListenerTest %9S3ClientTest 79ResumableDownloadTest )9PostObjectTest ;9BucketStyleListenerTest  +9AcpListenerTest =8Route53DomainsClientTest~ +7IntegrationTest} /6Route53ClientTest| '5IteratorsTest{ 35BasicOperationsTestz 14RedshiftClientTesty +3IntegrationTestx +2DBAvailableTestw '1RdsClientTestv +0IntegrationTestu =/OpsWorksClientClientTestt +.IntegrationTests /-KinesisClientTestr 7,Kinesis_20131104_Testq 3+IntegrationTestCasep +*IntegrationTesto 5)ListJobsIteratorTestn ;)JobManifestListenerTestm 9)ImportExportClientTestl +(IntegrationTestk ''IamClientTestj 1&VaultNotExistsTesti +&VaultExistsTesth )%UploadPartTestg ;%UploadPartGeneratorTestf /%UploadContextTeste /%UploadBuilderTestd /%TransferStateTestc 1%SerialTransferTestb 5%ParallelTransferTest a A%SpecialUploadPartGenerator` 5%AbstractTransferTest_ +$IntegrationTest^ ?#GlacierUploadListenerTest] /#GlacierClientTest\ +"IntegrationTest[ '!EmrClientTestZ + IntegrationTest!Y CElasticTranscoderClientTestX +IntegrationTest$W IElasticLoadBalancingClientTestV +IntegrationTest U AElasticBeanstalkClientTestT +IntegrationTestS 7ElastiCacheClientTest#R GDescribeInstancesIteratorTestQ %IteratorTestP 3BasicOperationsTestO !WaiterTestN 'Ec2ClientTest   { sbR<%rR3veWH7'hVD&
dC+






j
V
B
-

						y	d	L	8	"	bP7 oZF0xhXE/ueWI:'q`RC2"saQB"sfVF5'{    !BorderTest 3AbstractEffectsTest 1AbstractDrawerTest +ImagineTestCase %IsImageEqual Layers Imagine Image
 Font Effects Drawer
 Center		 RGB
 Gray
 CMYK	 RGB Grayscale #ColorParser
 CMYK #MetadataBag 1ExifMetadataReader  7DefaultMetadataReader 9AbstractMetadataReader~ ~Range} ~Bucket| }Vertical{ }Linearz !}Horizontaly |Profilex |Point	w |Boxv )|AbstractLayersu +|AbstractImaginet '|AbstractImages %|AbstractFontr {Layersq {Imaginep {Image
o {Fontn {Effectsm {Drawerl zLayersk zImaginej zImage
i zFonth zEffectsg zDrawerf )yTransformatione %yImagineAwared +xWebOptimizationc xThumbnailb xStrip
a xShow
` xSave_ xRotate^ xResize] xPaste\ )xFlipVertically[ -xFlipHorizontally
Z xFill
Y xCrop
X xCopyW !xAutorotateV xApplyMaskU )wRelativeResizeT %wOnPixelBasedS wGrayscaleR wCanvasQ wBorderP -vRuntimeExceptionO 5vOutOfBoundsExceptionN 7vNotSupportedExceptionM =vInvalidArgumentExceptionL #rIssue67TestK #rIssue59TestJ #rIssue17TestI %rIssue131TestH !qLayersTestG #qImagineTestF qImageTestE #qEffectsTestD !qDrawerTestC !pCenterTestB oRGBTestA oGrayTest@ oCMYKTest? /oAbstractColorTest> nRGBTest= 'nGrayscaleTest< +nColorParserTest; nCMYKTest: 3nAbstractPaletteTest9 9mMetadataReaderTestCase8 +mMetadataBagTest7 9mExifMetadataReaderTest6 ?mDefaultMetadataReaderTest5 lRangeTest4 !lBucketTest3 %kVerticalTest2 !kLinearTest1 )kHorizontalTest0 #jProfileTest/ jPointTest. jBoxTest- 1jAbstractLayersTest, 3jAbstractImagineTest+ /jAbstractImageTest* !iLayersTest) #iImagineTest( iImageTest' #iEffectsTest& !iDrawerTest% !hLayersTest$ #hImagineTest# hImageTest" #hEffectsTest! !hDrawerTest"  EgGdTransparentGifHandlingTest !fTestFilter 1fTransformationTest -fImagineAwareTest )fFilterTestCase ;fDummyImagineAwareFilter 3eWebOptimizationTest 'eThumbnailTest eStripTest eShowTest eSaveTest !eRotateTest !eResizeTest ePasteTest 1eFlipVerticallyTest 5eFlipHorizontallyTest eCropTest eCopyTest )eAutorotateTest 'dGrayscaleTest !dCanvasTest !dBorderTest
 3cAbstractEffectsTest	 1bAbstractDrawerTest +aImagineTestCase %`IsImageEqual _Layers _Imagine _Image
 _Font _Effects _Drawer  ^Center	 ]RGB
~ ]Gray
} ]CMYK	| \RGB{ \Grayscalez #\ColorParser
y \CMYKx #[MetadataBagw 1[ExifMetadataReaderv 7[DefaultMetadataReaderu 9[AbstractMetadataReadert ZRanges ZBucketr YVerticalq YLinearp !YHorizontalo XProfilen XPoint	m XBoxl )XAbstractLayersk +XAbstractImaginej 'XAbstractImagei %XAbstractFonth WLayersg WImaginef WImage
e WFontd WEffectsc WDrawerb VLayersa VImagine` VImage
_ VFont^ VEffects   ? {_L8$ fJ6oZF+wcP-udI7% 






p
[
F
.

							y	j	Y	K	>	.	}dO3wT8$
M|HoN([0rM(qV?                         $ 'Swift_Message# /Swift_MemorySpool" 3Swift_MailTransport! %Swift_Mailer)  SSwift_Mailer_ArrayRecipientIterator! CSwift_LoadBalancedTransport. ]Swift_KeyCache_SimpleKeyCacheInputStream! CSwift_KeyCache_NullKeyCache! CSwift_KeyCache_DiskKeyCache" ESwift_KeyCache_ArrayKeyCache /Swift_IoException #Swift_Image +Swift_FileSpool ;Swift_FailoverTransport* USwift_Events_TransportExceptionEvent' OSwift_Events_TransportChangeEvent( QSwift_Events_SimpleEventDispatcher 9Swift_Events_SendEvent  ASwift_Events_ResponseEvent =Swift_Events_EventObject ?Swift_Events_CommandEvent )Swift_Encoding" ESwift_Encoder_Rfc2231Encoder ;Swift_Encoder_QpEncoder! CSwift_Encoder_Base64Encoder 1Swift_EmbeddedFile
 ?Swift_DependencyException	 ?Swift_DependencyContainer ;Swift_ConfigurableSpool- [Swift_CharacterStream_NgCharacterStream0 aSwift_CharacterStream_ArrayCharacterStream? Swift_CharacterReaderFactory_SimpleCharacterReaderFactory& MSwift_CharacterReader_Utf8Reader) SSwift_CharacterReader_UsAsciiReader3 gSwift_CharacterReader_GenericFixedWidthReader. ]Swift_ByteStream_TemporaryFileByteStream%  KSwift_ByteStream_FileByteStream& MSwift_ByteStream_ArrayByteStream4~ iSwift_ByteStream_AbstractFilterableInputStream} -Swift_Attachment| !ReaderTest{ 1AnnotationsFixturez ?AnnotationSetterInjection"y EAnnotationConstructInjectionx String	w PHP
v Jsonu Integert Floats Dynamicr Concreteq !ParserTestp !FacadeTesto 1AnnotationsBagTestn #ParserRulesm +ParserExceptionl Parserk Facadej )AnnotationsBagi !ReaderTesth 1AnnotationsFixtureg ?AnnotationSetterInjection"f EAnnotationConstructInjectione String	d PHP
c Jsonb Integera Float` Dynamic_ Concrete^ !ParserTest] !FacadeTest\ 1AnnotationsBagTest[ #ParserRulesZ +ParserExceptionY ParserX FacadeW )AnnotationsBagV #Issue67TestU #Issue59TestT #Issue17TestS %Issue131TestR !LayersTestQ #ImagineTestP ImageTestO #EffectsTestN !DrawerTestM !CenterTestL RGBTestK GrayTestJ CMYKTestI /AbstractColorTestH RGBTestG 'GrayscaleTestF +ColorParserTestE CMYKTestD 3AbstractPaletteTestC 9MetadataReaderTestCaseB +MetadataBagTestA 9ExifMetadataReaderTest@ ?DefaultMetadataReaderTest? RangeTest> !BucketTest= %VerticalTest< !LinearTest; )HorizontalTest: #ProfileTest9 PointTest8 BoxTest7 1AbstractLayersTest6 3AbstractImagineTest5 /AbstractImageTest4 !LayersTest3 #ImagineTest2 ImageTest1 #EffectsTest0 !DrawerTest/ !LayersTest. #ImagineTest- ImageTest, #EffectsTest+ !DrawerTest"* EGdTransparentGifHandlingTest) !TestFilter( 1TransformationTest' -ImagineAwareTest& )FilterTestCase% ;DummyImagineAwareFilter$ 3WebOptimizationTest# 'ThumbnailTest" StripTest! ShowTest  SaveTest !RotateTest !ResizeTest PasteTest 1FlipVerticallyTest 5FlipHorizontallyTest CropTest CopyTest )AutorotateTest 'GrayscaleTest !CanvasTest   Y  o8uY#nDvN*Y2	



k
B
				m	F	+	~X5Q3^'pAuO-U$d>
>                                                            E} 	Swift_Mime_ContentEncoder_NativeQpContentEncoderAcceptanceTestC| Swift_Mime_ContentEncoder_Base64ContentEncoderAcceptanceTest){ SSwift_Mime_AttachmentAcceptanceTest!z CSwift_MessageAcceptanceTest/y _Swift_KeyCache_DiskKeyCacheAcceptanceTest0x aSwift_KeyCache_ArrayKeyCacheAcceptanceTest"w ESwift_EncodingAcceptanceTest0v aSwift_Encoder_Rfc2231EncoderAcceptanceTest+u WSwift_Encoder_QpEncoderAcceptanceTest/t _Swift_Encoder_Base64EncoderAcceptanceTest&s MSwift_EmbeddedFileAcceptanceTest-r [Swift_DependencyContainerAcceptanceTestNq Swift_CharacterReaderFactory_SimpleCharacterReaderFactoryAcceptanceTest3p gSwift_ByteStream_FileByteStreamAcceptanceTest$o ISwift_AttachmentAcceptanceTestn Swiftm )Swift_Validatel =Swift_TransportException"k ESwift_Transport_StreamBuffer$j ISwift_Transport_SpoolTransport'i OSwift_Transport_SimpleMailInvoker'h OSwift_Transport_SendmailTransport#g GSwift_Transport_NullTransport#f GSwift_Transport_MailTransport+e WSwift_Transport_LoadBalancedTransport'd OSwift_Transport_FailoverTransport$c ISwift_Transport_EsmtpTransport'b OSwift_Transport_Esmtp_AuthHandler5a kSwift_Transport_Esmtp_Auth_XOAuth2Authenticator3` gSwift_Transport_Esmtp_Auth_PlainAuthenticator2_ eSwift_Transport_Esmtp_Auth_NTLMAuthenticator3^ gSwift_Transport_Esmtp_Auth_LoginAuthenticator5] kSwift_Transport_Esmtp_Auth_CramMd5Authenticator+\ WSwift_Transport_AbstractSmtpTransport[ 5Swift_SwiftException8Z qSwift_StreamFilters_StringReplacementFilterFactory1Y cSwift_StreamFilters_StringReplacementFilter4X iSwift_StreamFilters_ByteArrayReplacementFilterW 5Swift_SpoolTransportV 3Swift_SmtpTransportU ?Swift_Signers_SMimeSigner"T ESwift_Signers_OpenDKIMSigner#S GSwift_Signers_DomainKeySignerR =Swift_Signers_DKIMSignerQ 3Swift_SignedMessageP ;Swift_SendmailTransport"O ESwift_RfcComplianceExceptionN /Swift_Preferences#M GSwift_Plugins_ThrottlerPlugin*L USwift_Plugins_Reporters_HtmlReporter)K SSwift_Plugins_Reporters_HitReporter"J ESwift_Plugins_ReporterPlugin%I KSwift_Plugins_RedirectingPlugin'H OSwift_Plugins_PopBeforeSmtpPlugin%G KSwift_Plugins_Pop_Pop3Exception!F CSwift_Plugins_MessageLogger&E MSwift_Plugins_Loggers_EchoLogger'D OSwift_Plugins_Loggers_ArrayLogger C ASwift_Plugins_LoggerPlugin%B KSwift_Plugins_ImpersonatePlugin#A GSwift_Plugins_DecoratorPlugin*@ USwift_Plugins_BandwidthMonitorPlugin#? GSwift_Plugins_AntiFloodPlugin> 3Swift_NullTransport= )Swift_MimePart!< CSwift_Mime_SimpleMimeEntity; =Swift_Mime_SimpleMessage : ASwift_Mime_SimpleHeaderSet$9 ISwift_Mime_SimpleHeaderFactory8 3Swift_Mime_MimePart+7 WSwift_Mime_Headers_UnstructuredHeader#6 GSwift_Mime_Headers_PathHeader,5 YSwift_Mime_Headers_ParameterizedHeader'4 OSwift_Mime_Headers_OpenDKIMHeader&3 MSwift_Mime_Headers_MailboxHeader-2 [Swift_Mime_Headers_IdentificationHeader#1 GSwift_Mime_Headers_DateHeader'0 OSwift_Mime_Headers_AbstractHeader./ ]Swift_Mime_HeaderEncoder_QpHeaderEncoder2. eSwift_Mime_HeaderEncoder_Base64HeaderEncoder- 1Swift_Mime_Grammar, ;Swift_Mime_EmbeddedFile1+ cSwift_Mime_ContentEncoder_RawContentEncoder5* kSwift_Mime_ContentEncoder_QpContentEncoderProxy0) aSwift_Mime_ContentEncoder_QpContentEncoder3( gSwift_Mime_ContentEncoder_PlainContentEncoder6' mSwift_Mime_ContentEncoder_NativeQpContentEncoder4& iSwift_Mime_ContentEncoder_Base64ContentEncoder% 7Swift_Mime_Attachment   Y  xI9G	oV=$a0



x
=
				r	I	$a1p?%`(h3sR&R'sFh>                                  8V qSwift_StreamFilters_ByteArrayReplacementFilterTest#U GSwift_Signers_SMimeSignerTest&T MSwift_Signers_OpenDKIMSignerTest"S ESwift_Signers_DKIMSignerTest'R OSwift_Plugins_ThrottlerPluginTest.Q ]Swift_Plugins_Reporters_HtmlReporterTest-P [Swift_Plugins_Reporters_HitReporterTest&O MSwift_Plugins_ReporterPluginTest)N SSwift_Plugins_RedirectingPluginTest+M WSwift_Plugins_PopBeforeSmtpPluginTest*L USwift_Plugins_Loggers_EchoLoggerTest+K WSwift_Plugins_Loggers_ArrayLoggerTest$J ISwift_Plugins_LoggerPluginTest'I OSwift_Plugins_DecoratorPluginTest.H ]Swift_Plugins_BandwidthMonitorPluginTest'G OSwift_Plugins_AntiFloodPluginTest%F KSwift_Mime_SimpleMimeEntityTest"E ESwift_Mime_SimpleMessageTest$D ISwift_Mime_SimpleHeaderSetTest(C QSwift_Mime_SimpleHeaderFactoryTestB ;Swift_Mime_MimePartTest/A _Swift_Mime_Headers_UnstructuredHeaderTest'@ OSwift_Mime_Headers_PathHeaderTest0? aSwift_Mime_Headers_ParameterizedHeaderTest*> USwift_Mime_Headers_MailboxHeaderTest1= cSwift_Mime_Headers_IdentificationHeaderTest'< OSwift_Mime_Headers_DateHeaderTest2; eSwift_Mime_HeaderEncoder_QpHeaderEncoderTest6: mSwift_Mime_HeaderEncoder_Base64HeaderEncoderTest!9 CSwift_Mime_EmbeddedFileTest48 iSwift_Mime_ContentEncoder_QpContentEncoderTest77 oSwift_Mime_ContentEncoder_PlainContentEncoderTest86 qSwift_Mime_ContentEncoder_Base64ContentEncoderTest5 ?Swift_Mime_AttachmentTest'4 OSwift_Mime_AbstractMimeEntityTest3 -Swift_MailerTest-2 [Swift_Mailer_ArrayRecipientIteratorTest21 eSwift_KeyCache_SimpleKeyCacheInputStreamTest&0 MSwift_KeyCache_ArrayKeyCacheTest./ ]Swift_Events_TransportExceptionEventTest+. WSwift_Events_TransportChangeEventTest,- YSwift_Events_SimpleEventDispatcherTest , ASwift_Events_SendEventTest$+ ISwift_Events_ResponseEventTest"* ESwift_Events_EventObjectTest#) GSwift_Events_CommandEventTest&( MSwift_Encoder_Rfc2231EncoderTest!' CSwift_Encoder_QpEncoderTest%& KSwift_Encoder_Base64EncoderTest#% GSwift_DependencyContainerTest	$ One4# iSwift_CharacterStream_ArrayCharacterStreamTest*" USwift_CharacterReader_Utf8ReaderTest-! [Swift_CharacterReader_UsAsciiReaderTest7  oSwift_CharacterReader_GenericFixedWidthReaderTest* USwift_ByteStream_ArrayByteStreamTest 3SwiftMailerTestCase =SwiftMailerSmokeTestCase 7Swift_StreamCollector( QSwift_Smoke_InternationalSmokeTest- [Swift_Smoke_HtmlWithAttachmentSmokeTest  ASwift_Smoke_BasicSmokeTest% KSwift_Smoke_AttachmentSmokeTest ?IdenticalBinaryConstraint /MimeEntityFixture 7EsmtpTransportFixture +Swift_Bug76Test +Swift_Bug71Test +Swift_Bug51Test +Swift_Bug38Test +Swift_Bug35Test +Swift_Bug34Test -Swift_Bug274Test -Swift_Bug206Test -Swift_Bug118Test -Swift_Bug111Test:
 uSwift_Transport_StreamBuffer_TlsSocketAcceptanceTest:	 uSwift_Transport_StreamBuffer_SslSocketAcceptanceTest4 iSwift_Transport_StreamBuffer_SocketTimeoutTest8 qSwift_Transport_StreamBuffer_ProcessAcceptanceTest< ySwift_Transport_StreamBuffer_BasicSocketAcceptanceTestF Swift_Transport_StreamBuffer_AbstractStreamBufferAcceptanceTest" ESwift_MimePartAcceptanceTest, YSwift_Mime_SimpleMessageAcceptanceTest' OSwift_Mime_MimePartAcceptanceTestA Swift_Mime_HeaderEncoder_Base64HeaderEncoderAcceptanceTest+  WSwift_Mime_EmbeddedFileAcceptanceTest> }Swift_Mime_ContentEncoder_QpContentEncoderAcceptanceTestB~ Swift_Mime_ContentEncoder_PlainContentEncoderAcceptanceTest   n  Q'u:s@fH&tS2



~
W
6
					g	;	qW="mQ:"dBoN0sR.W*sY>(mV>#                 D MandrillC 3Mandrill_WhitelistsB /Mandrill_WebhooksA )Mandrill_Users@ 'Mandrill_Urls? 1Mandrill_Templates> 'Mandrill_Tags= 5Mandrill_Subaccounts< -Mandrill_Senders; -Mandrill_Rejects: /Mandrill_Metadata9 /Mandrill_Messages8 %Mandrill_Ips7 /Mandrill_Internal6 -Mandrill_Inbound5 -Mandrill_Exports$4 IMandrill_Unknown_MetadataField"3 EMandrill_Metadata_FieldLimit'2 OMandrill_Invalid_CustomDNSPending 1 AMandrill_Invalid_CustomDNS)0 SMandrill_Invalid_DeleteNonEmptyPool(/ QMandrill_Invalid_DeleteDefaultPool'. OMandrill_Invalid_EmptyDefaultPool- 3Mandrill_Unknown_IP, ;Mandrill_PoorReputation+ ?Mandrill_NoSendingHistory* 7Mandrill_Unknown_Pool ) AMandrill_IP_ProvisionLimit( ;Mandrill_Unknown_Export#' GMandrill_Unknown_InboundRoute$& IMandrill_Unknown_InboundDomain% =Mandrill_Unknown_Webhook$ ?Mandrill_Invalid_Template%# KMandrill_Unknown_TrackingDomain" 5Mandrill_Unknown_Url! ;Mandrill_Unknown_Sender  ;Mandrill_Invalid_Reject ?Mandrill_Invalid_Tag_Name =Mandrill_Unknown_Message! CMandrill_ServiceUnavailable ?Mandrill_Unknown_Template! CMandrill_Unknown_Subaccount =Mandrill_PaymentRequired 5Mandrill_Invalid_Key =Mandrill_ValidationError 1Mandrill_HttpError )Mandrill_Error Mandrill 3Mandrill_Whitelists /Mandrill_Webhooks )Mandrill_Users 'Mandrill_Urls 1Mandrill_Templates 'Mandrill_Tags 5Mandrill_Subaccounts -Mandrill_Senders -Mandrill_Rejects /Mandrill_Metadata
 /Mandrill_Messages	 %Mandrill_Ips /Mandrill_Internal -Mandrill_Inbound -Mandrill_Exports$ IMandrill_Unknown_MetadataField" EMandrill_Metadata_FieldLimit' OMandrill_Invalid_CustomDNSPending  AMandrill_Invalid_CustomDNS) SMandrill_Invalid_DeleteNonEmptyPool(  QMandrill_Invalid_DeleteDefaultPool' OMandrill_Invalid_EmptyDefaultPool~ 3Mandrill_Unknown_IP} ;Mandrill_PoorReputation| ?Mandrill_NoSendingHistory{ 7Mandrill_Unknown_Pool z AMandrill_IP_ProvisionLimity ;Mandrill_Unknown_Export#x GMandrill_Unknown_InboundRoute$w IMandrill_Unknown_InboundDomainv =Mandrill_Unknown_Webhooku ?Mandrill_Invalid_Template%t KMandrill_Unknown_TrackingDomains 5Mandrill_Unknown_Urlr ;Mandrill_Unknown_Senderq ;Mandrill_Invalid_Rejectp ?Mandrill_Invalid_Tag_Nameo =Mandrill_Unknown_Message!n CMandrill_ServiceUnavailablem ?Mandrill_Unknown_Template!l CMandrill_Unknown_Subaccountk =Mandrill_PaymentRequiredj 5Mandrill_Invalid_Keyi =Mandrill_ValidationErrorh 1Mandrill_HttpErrorg )Mandrill_Error&f MSwift_Transport_StreamBufferTest+e WSwift_Transport_SendmailTransportTest'd OSwift_Transport_MailTransportTest/c _Swift_Transport_LoadBalancedTransportTest+b WSwift_Transport_FailoverTransportTest(a QSwift_Transport_EsmtpTransportTest9` sSwift_Transport_EsmtpTransport_ExtensionSupportTest+_ WSwift_Transport_Esmtp_AuthHandlerTest7^ oSwift_Transport_Esmtp_Auth_PlainAuthenticatorTest6] mSwift_Transport_Esmtp_Auth_NTLMAuthenticatorTest7\ oSwift_Transport_Esmtp_Auth_LoginAuthenticatorTest9[ sSwift_Transport_Esmtp_Auth_CramMd5AuthenticatorTest&Z MSwift_Transport_AbstractSmtpTest2Y eSwift_Transport_AbstractSmtpEventSupportTest5X kSwift_StreamFilters_StringReplacementFilterTest<W ySwift_StreamFilters_StringReplacementFilterFactoryTest   R {iM3uY@(lV;u`Q;#mU@+





t
Z
<
#

							~	p	U	@	"	wdV;r`E0ugTF+vbPB,~n[I6# r^L<,xN%~R    (g QPHPUnit_Framework_BaseTestListener,f YPHPUnit_Framework_AssertionFailedErrore =PHPUnit_Framework_Assert'd OPHPUnit_Extensions_TicketListener&c MPHPUnit_Extensions_TestDecorator%b KPHPUnit_Extensions_RepeatedTest&a MPHPUnit_Extensions_PhptTestSuite%` KPHPUnit_Extensions_PhptTestCase'_ OPHPUnit_Extensions_GroupTestSuite^ #AccessToken] Vkontakte\ Microsoft[ LinkedInZ InstagramY GoogleX GithubW FacebookV !EventbriteU -AbstractProviderT %RefreshTokenS PasswordR /ClientCredentialsQ /AuthorizationCodeP %IDPException
O UserN #AccessTokenM VkontakteL MicrosoftK LinkedInJ InstagramI GoogleH GithubG FacebookF !EventbriteE -AbstractProviderD %RefreshTokenC PasswordB /ClientCredentialsA /AuthorizationCode@ %IDPException
? User> XingTest= !TrelloTest< !ServerStub; !ServerTest: 9PlainTextSignatureTest9 7HmacSha1SignatureTest8 7ClientCredentialsTest7 Signature6 1PlainTextSignature5 /HmacSha1Signature
4 Xing3 Uservoice
2 User1 Twitter0 Tumblr/ Trello. Server- Magento, Bitbucket+ -TokenCredentials* 5TemporaryCredentials) 5CredentialsException( #Credentials' /ClientCredentials& XingTest% !TrelloTest$ !ServerStub# !ServerTest" 9PlainTextSignatureTest! 7HmacSha1SignatureTest  7ClientCredentialsTest Signature 1PlainTextSignature /HmacSha1Signature
 Xing Uservoice
 User Twitter Tumblr Trello Server Magento Bitbucket -TokenCredentials 5TemporaryCredentials 5CredentialsException #Credentials /ClientCredentials
 Test )ResultsPrinter %ErrorCatcher Error
 #DebugTracer	 ClassTest Assertion !Autoloader +MockRedisServer +TestRedisServer 5TestMethodsGenerator -TestMemoryObject =MethodsComparisonResults /CommandsListCheck  %SingleMemory SHMObject~ ShmMem} )ReadOnlyAccess| #MultiAccess{ !DummyMutexz #RedisServery #RedisObjectx )PhpRedisObjectw %MemoryObjectv )MemcacheObjectu +MemcachedObjectt 1MemcachedDecorators +KeyAutoUnlockerr +CouchbaseObjectq APCObject
p Testo )ResultsPrintern %ErrorCatcherm Errorl #DebugTracerk ClassTestj Assertioni !Autoloaderh +MockRedisServerg +TestRedisServerf 5TestMethodsGeneratore -TestMemoryObjectd =MethodsComparisonResultsc /CommandsListCheckb %SingleMemorya SHMObject` ShmMem_ )ReadOnlyAccess^ #MultiAccess] !DummyMutex\ #RedisServer[ #RedisObjectZ )PhpRedisObjectY %MemoryObjectX )MemcacheObjectW +MemcachedObjectV 1MemcachedDecoratorU +KeyAutoUnlockerT +CouchbaseObjectS APCObjectR 3SmtpapiTest_SmtpapiQ 1SmtpapiTest_HeaderP SmtpapiO HeaderN 7SendGridTest_SendGridM -SendGridTest_WebL 1SendGridTest_EmailK SendGridJ EmailI 7SendGridTest_SendGridH -SendGridTest_WebG 1SendGridTest_EmailF SendGridE Email   V  sAl<u8vH[.


X
.				m	8	^ |S2}Nf:	n<pIhH(xW6                                        = =PHPUnit_Util_GlobalState< 3PHPUnit_Util_Getopt; 3PHPUnit_Util_Filter: ;PHPUnit_Util_Filesystem9 ;PHPUnit_Util_Fileloader8 ?PHPUnit_Util_ErrorHandler 7 APHPUnit_Util_Configuration6 9PHPUnit_Util_Blacklist5 ?PHPUnit_TextUI_TestRunner"4 EPHPUnit_TextUI_ResultPrinter3 9PHPUnit_TextUI_Command2 9PHPUnit_Runner_Version,1 YPHPUnit_Runner_StandardTestSuiteLoader 0 APHPUnit_Runner_Filter_Test// _PHPUnit_Runner_Filter_GroupFilterIterator). SPHPUnit_Runner_Filter_Group_Include)- SPHPUnit_Runner_Filter_Group_Exclude#, GPHPUnit_Runner_Filter_Factory+ =PHPUnit_Runner_Exception#* GPHPUnit_Runner_BaseTestRunner) ?PHPUnit_Framework_Warning7( oPHPUnit_Framework_UnintentionallyCoveredCodeError!' CPHPUnit_Framework_TestSuite.& ]PHPUnit_Framework_TestSuite_DataProvider"% EPHPUnit_Framework_TestResult#$ GPHPUnit_Framework_TestFailure # APHPUnit_Framework_TestCase&" MPHPUnit_Framework_SyntheticError-! [PHPUnit_Framework_SkippedTestSuiteError(  QPHPUnit_Framework_SkippedTestError' OPHPUnit_Framework_SkippedTestCase& MPHPUnit_Framework_RiskyTestError# GPHPUnit_Framework_OutputError4 iPHPUnit_Framework_InvalidCoversTargetException0 aPHPUnit_Framework_InvalidCoversTargetError+ WPHPUnit_Framework_IncompleteTestError* UPHPUnit_Framework_IncompleteTestCase2 ePHPUnit_Framework_ExpectationFailedException( QPHPUnit_Framework_ExceptionWrapper! CPHPUnit_Framework_Exception ;PHPUnit_Framework_Error% KPHPUnit_Framework_Error_Warning$ IPHPUnit_Framework_Error_Notice( QPHPUnit_Framework_Error_Deprecated" EPHPUnit_Framework_Constraint& MPHPUnit_Framework_Constraint_Xor: uPHPUnit_Framework_Constraint_TraversableContainsOnly6 mPHPUnit_Framework_Constraint_TraversableContains3 gPHPUnit_Framework_Constraint_StringStartsWith0 aPHPUnit_Framework_Constraint_StringMatches1 cPHPUnit_Framework_Constraint_StringEndsWith1
 cPHPUnit_Framework_Constraint_StringContains+	 WPHPUnit_Framework_Constraint_SameSize, YPHPUnit_Framework_Constraint_PCREMatch% KPHPUnit_Framework_Constraint_Or5 kPHPUnit_Framework_Constraint_ObjectHasAttribute& MPHPUnit_Framework_Constraint_Not+ WPHPUnit_Framework_Constraint_LessThan. ]PHPUnit_Framework_Constraint_JsonMatchesD PHPUnit_Framework_Constraint_JsonMatches_ErrorMessageProvider) SPHPUnit_Framework_Constraint_IsType)  SPHPUnit_Framework_Constraint_IsTrue) SPHPUnit_Framework_Constraint_IsNull)~ SPHPUnit_Framework_Constraint_IsJson/} _PHPUnit_Framework_Constraint_IsInstanceOf.| ]PHPUnit_Framework_Constraint_IsIdentical*{ UPHPUnit_Framework_Constraint_IsFalse*z UPHPUnit_Framework_Constraint_IsEqual*y UPHPUnit_Framework_Constraint_IsEmpty-x [PHPUnit_Framework_Constraint_IsAnything.w ]PHPUnit_Framework_Constraint_GreaterThan-v [PHPUnit_Framework_Constraint_FileExists9u sPHPUnit_Framework_Constraint_ExceptionMessageRegExp3t gPHPUnit_Framework_Constraint_ExceptionMessage0s aPHPUnit_Framework_Constraint_ExceptionCode,r YPHPUnit_Framework_Constraint_Exception(q QPHPUnit_Framework_Constraint_Count,p YPHPUnit_Framework_Constraint_Composite:o uPHPUnit_Framework_Constraint_ClassHasStaticAttribute4n iPHPUnit_Framework_Constraint_ClassHasAttribute+m WPHPUnit_Framework_Constraint_Callback,l YPHPUnit_Framework_Constraint_Attribute.k ]PHPUnit_Framework_Constraint_ArraySubset.j ]PHPUnit_Framework_Constraint_ArrayHasKey&i MPHPUnit_Framework_Constraint_And-h [PHPUnit_Framework_CodeCoverageException   } wU3zIyiK6mBWA



\
5
					o	P	3	dD rZ?r[J5"
j>rG~eP)kD*~hQ<)                 : %TestWithTest9 TestError8 #TestSkipped7 'TestIterator26 %TestIterator5 )TestIncomplete4 3TemplateMethodsTest3 Success2 Struct1 StackTest0 Singleton/ #SampleClass. /SampleArrayAccess- -RequirementsTest#, GRequirementsClassDocBlockTest*+ URequirementsClassBeforeClassHookTest* -OverrideTestCase) )OutputTestCase( #OneTestCase' +NotVoidTestCase& /NotPublicTestCase% #NothingTest#$ GNotExistingCoveredElementTest# #NoTestCases" +NoTestCaseClass! NonStatic  /NoArgTestCaseTest! CNamespaceCoveragePublicTest$ INamespaceCoverageProtectedTest" ENamespaceCoveragePrivateTest$ INamespaceCoverageNotPublicTest' ONamespaceCoverageNotProtectedTest% KNamespaceCoverageNotPrivateTest! CNamespaceCoverageMethodTest& MNamespaceCoverageCoversClassTest, YNamespaceCoverageCoversClassPublicTest  ANamespaceCoverageClassTest( QNamespaceCoverageClassExtendedTest 3MultiDependencyTest !MockRunner 'IsolationTest IniTest /InheritedTestCase %InheritanceB %InheritanceA )IncompleteTest FatalTest #FailureTest
 Failure	 'ExceptionTest 1ExceptionStackTest +ExceptionInTest ;ExceptionInTearDownTest 5ExceptionInSetUpTest( QExceptionInAssertPreConditionsTest) SExceptionInAssertPostConditionsTest /EmptyTestCaseTest )DummyException  )DoubleTestCase 3DependencyTestSuite~ 7DependencySuccessTest} 7DependencyFailureTest| -DataProviderTest{ ;DataProviderSkippedTest z ADataProviderIncompleteTesty 9DataProviderFilterTestx 7DataProviderDebugTestw 'CustomPrinterv %CoveredClassu 1CoveredParentClass(t QCoverageTwoDefaultClassAnnotationss 1CoveragePublicTestr 7CoverageProtectedTestq 3CoveragePrivateTestp 7CoverageNotPublicTesto =CoverageNotProtectedTestn 9CoverageNotPrivateTestm 3CoverageNothingTestl -CoverageNoneTestk 1CoverageMethodTest-j [CoverageMethodParenthesesWhitespaceTest#i GCoverageMethodParenthesesTest)h SCoverageMethodOneLineAnnotationTestg 5CoverageFunctionTest/f _CoverageFunctionParenthesesWhitespaceTest%e KCoverageFunctionParenthesesTestd /CoverageClassTestc ?CoverageClassExtendedTestb %ConcreteTest'a OConcreteWithMyCustomExtensionTest` /ClassWithToString%_ KClassWithScalarTypeDeclarations"^ EClassWithNonPublicAttributes(] QParentClassWithProtectedAttributes&\ MParentClassWithPrivateAttributes'[ OChangeCurrentWorkingDirectoryTestZ !Calculator
Y Book"X EBeforeClassAndAfterClassTestW 1BeforeAndAfterTestV 9BaseTestListenerSample(U QBankAccountWithCustomExtensionTestT +BankAccountTestS #BankAccountR 5BankAccountExceptionQ AuthorP %AbstractTestO -PHPUnit_Util_XMLN /PHPUnit_Util_Type$M IPHPUnit_Util_TestSuiteIterator(L QPHPUnit_Util_TestDox_ResultPrinter-K [PHPUnit_Util_TestDox_ResultPrinter_Text-J [PHPUnit_Util_TestDox_ResultPrinter_HTML)I SPHPUnit_Util_TestDox_NamePrettifierH /PHPUnit_Util_TestG 3PHPUnit_Util_StringF 1PHPUnit_Util_RegexE 5PHPUnit_Util_PrinterD -PHPUnit_Util_PHPC =PHPUnit_Util_PHP_WindowsB =PHPUnit_Util_PHP_DefaultA 5PHPUnit_Util_Log_TAP@ 9PHPUnit_Util_Log_JUnit? 7PHPUnit_Util_Log_JSON(> QPHPUnit_Util_InvalidArgumentHelper    oJ,l>qZD2nW@)iR<!






{
f
P
:
$
					i	R	<		 rR@*zF(
m=pJpW/`>vSnP4                 ; +MockeryTest_Foo: 1Mockery_UseDemeter9 5Mockery_Demeterowski8 ;Mockery_Duck_Nonswimmer7 %Mockery_Duck6 !MyService25 =MockeryTest_InterMethod14 =MockeryTest_SubjectCall13 +ExpectationTest92 sMockeryTest_MethodWithRequiredParamWithDefaultValue1 ?MockeryTest_PartialStatic$0 IMockeryTest_Lowercase_ToString/ 5EmptyConstructorTest%. KMockeryTest_OldStyleConstructor$- IMockeryTest_ImplementsIterator-, [MockeryTest_ImplementsIteratorAggregate+ =MockeryTest_WithToString&* MMockeryTest_MockCallableTypeHint#) GMockeryTest_TestInheritedType'( OMockeryTest_PartialAbstractClass2%' KMockeryTest_PartialNormalClass2&& MMockeryTest_PartialAbstractClass$% IMockeryTest_PartialNormalClass$ +MockeryTestRef1!# CMockeryTest_MethodParamRef2 " AMockeryTest_MethodParamRef! ;MockeryTest_ReturnByRef  +MockeryTestBar1 Gateway SoCool2 eMockeryTest_AbstractWithAbstractPublicMethod" EMockeryTest_ExistingProperty 3MockeryTest_Wakeup1 /MockeryTest_Call2 /MockeryTest_Call1# GMockeryTest_ClassConstructor2" EMockeryTest_ClassConstructor) SMockeryTest_WithProtectedAndPrivate, YMockeryTest_AbstractWithAbstractMethod #MockeryFoo4 #MockeryFoo3 +MockeryTestFoo2 )MockeryTestFoo ;MockeryTest_UnsetMethod ;MockeryTest_IssetMethod 5MockeryTestIsset_Foo 5MockeryTestIsset_Bar0 aMockeryTest_ClassMultipleConstructorParams 9MockeryTest_CallStatic
 'ContainerTest 	 AMockeryTest_NameOfAbstract% KMockeryTest_NameOfExistingClass /Mockery_AdhocTest Mockery %StarshipTest Starship 9AlwaysIgnoreTestPolicy DummyTest %PHPUnit_Fake  -TestListenerTest 7NeverIgnoreTestPolicy~ %TestListener} %CoveredClass| 1CoveredParentClass{ 9ExceptionNamespaceTestz %Util_XMLTesty 'Util_TestTest%x KUtil_TestDox_NamePrettifierTestw )Util_RegexTestv 5Util_GlobalStateTestu +Util_GetoptTestt 9Util_ConfigurationTests ?Runner_BaseTestRunnerTestr %Issue797Testq %Issue765Testp %NewExceptiono #Issue74Testn %Issue581Testm %Issue503Testl %Issue498Testk %Issue445Testj %Issue433Testi %Issue322Testh =Issue244ExceptionIntCodeg /Issue244Exceptionf %Issue244Teste 'Issue1570Testd 'Issue1472Testc 'Issue1471Testb 'Issue1468Testa 'Issue1437Test` 'Issue1374Test_ 'Issue1351Test^ 7ChildProcessClass1351] 'Issue1348Test\ 'Issue1337Test[ 'Issue1335TestZ 'Issue1330TestY 'Issue1265TestX 'Issue1216TestW 'Issue1149TestV TwoTestU #ParentSuiteT OneTestS !ChildSuiteR 5Foo_Bar_Issue684TestQ %Issue578TestP Issue523O %Issue523TestN 'Issue1021Test M AFramework_TestListenerTest#L GFramework_TestImplementorTestK ?Framework_TestFailureTestJ 9Framework_TestCaseTestI 3Framework_SuiteTestH =Framework_ConstraintTest*G UFramework_Constraint_JsonMatchesTest?F Framework_Constraint_JsonMatches_ErrorMessageProviderTestE 5ExceptionMessageTest D AExceptionMessageRegExpTestC CountTest$B IFramework_BaseTestListenerTestA 5Framework_AssertTest!@ CExtensions_RepeatedTestTest? -PhpTestCaseProxy!> CExtensions_PhptTestCaseTest= WasRun< =ThrowNoExceptionTestCase; 9ThrowExceptionTestCase   9 x]@)dM:'qbO0nL4!yS7




v
[
G
0

 								r	Y	I	<	*		rQ1~^I/jN+wZB1v];oP4]C4"yaO9       P %PriorityListO WildcardN )TreeRouteStack#M GTranslatorAwareTreeRouteStackL SegmentK SchemeJ !RouteMatchI RegexH Query
G PartF MethodE LiteralD HostnameC ChainB -RuntimeExceptionA =InvalidArgumentException@ -SimpleRouteStack? Simple> !RouteMatch= Catchall < ASimpleStreamResponseSender; /SendResponseEvent": EPhpEnvironmentResponseSender9 1HttpResponseSender8 7ConsoleResponseSender7 9AbstractResponseSender6 !Translator5 +DummyTranslator4 -RuntimeException3 ;MissingLocatorException2 9InvalidPluginException 1 AInvalidControllerException0 =InvalidArgumentException/ +DomainException. 9BadMethodCallException- +IdentityFactory, )ForwardFactory	+ Url* Redirect) +PostRedirectGet( Params' Layout& Identity% Forward$ )FlashMessenger# 3FilePostRedirectGet" ;CreateHttpNotFoundModel ! ACreateConsoleNotFoundModel!  CAcceptableViewModelSelector )AbstractPlugin 'PluginManager /ControllerManager ?AbstractRestfulController 1AbstractController ?AbstractConsoleController =AbstractActionController 5SendResponseListener 'RouteListener MvcEvent 3ModuleRouteListener 1HttpMethodListener -DispatchListener #Application 9Evenement_EventEmitter 'GeneratorTest =TestWithProtectedMethods! CMockingProtectedMethodsTest' OHasUnknownClassAsTypeHintOnMethod& MMockClassWithUnknownTypeHintTest 9TestWithNonFinalWakeup
 ;SubclassWithFinalWakeup	 3TestWithFinalWakeup" EMockClassWithFinalWakeupTest /InterfacePassTest 5InstanceMockPassTest 5CallTypeHintPassTest
 Type Subset NotAnyOf	 Not  MustBe +MatcherAbstract~ HasValue} HasKey| Ducktype{ Containsz Closurey AnyOf	x Anyw /RequireLoaderTestv )LoaderTestCaseu )EvalLoaderTestt 'RequireLoaders !EvalLoaderr /ClassNamePassTest*q URemoveBuiltinMethodsThatAreFinalPassp 5MethodDefinitionPasso 'InterfacePassn -InstanceMockPassm ClassPassl 'ClassNamePassk -CallTypeHintPassj 1ClassWithMagicCall"i EMockConfigurationBuilderTesth 5ClassWithFinalMethodg #TestSubjectf TestFinale 7MockConfigurationTestd 5UndefinedTargetClass!c CStringManipulationGeneratorb Parametera )MockDefinition` =MockConfigurationBuilder_ /MockConfiguration^ Method] 1DefinedTargetClass\ -CachingGenerator[ -RuntimeException$Z INoMatchingExpectationExceptionY 7InvalidOrderExceptionX 7InvalidCountExceptionW ExceptionV ExactU 9CountValidatorAbstractT AtMostS AtLeastR UndefinedQ Recorder
P MockO LoaderN 3ExpectationDirectorM #ExpectationL ExceptionK ContainerJ 'ConfigurationI 5CompositeExpectationH %TestListenerG +ClassWithGetter"F EWithFormatterExpectationTestE 9MockeryTestSubjectUserD 1MockeryTestSubjectC %RecorderTestB 'NamedMockTestA 3ClassWithNoToString@ /ClassWithToString-? [ExampleClassForTestingNonExistentMethod> -Mockery_MockTest= 1Mockery_LoaderTest< ;HamcrestExpectationTest   " t]>qIsS3_G._=




p
S
+
				}	\	=	(	aB-xhYI4pWA(
lN2jS;(y]@#	u_B)pY>"        Y 1TYPO3FlowInstallerX /TYPO3CmsInstallerW 'TuskInstallerV +TheliaInstallerU /Symfony1InstallerT %SMFInstallerS 7SilverStripeInstallerR /ShopwareInstallerQ 1RoundcubeInstallerP +RedaxoInstallerO +PuppetInstallerN 3PrestashopInstallerM %PPIInstallerL )PiwikInstallerK -PimcoreInstallerJ )PhpBBInstallerI 'OxidInstallerH -OctoberInstallerG +MoodleInstallerF -MODXEvoInstallerE 3MODULEWorkInstallerD 3MicroweberInstallerC 1MediaWikiInstallerB 'MakoInstallerA -MagentoInstaller@ -LithiumInstaller? -LaravelInstaller> +KohanaInstaller= )KirbyInstaller< +JoomlaInstaller; Installer: )HuradInstaller9 'GravInstaller8 -FuelphpInstaller7 'FuelInstaller6 'ElggInstaller5 +DrupalInstaller4 /DolibarrInstaller3 /DokuWikiInstaller2 +CroogoInstaller1 )CraftInstaller0 1Concrete5Installer/ 5CodeIgniterInstaller . AClanCatsFrameworkInstaller- 'ChefInstaller, -CakePHPInstaller+ +BitrixInstaller* 'BaseInstaller) +AsgardInstaller( 5AnnotateCmsInstaller' +AimeosInstaller& %AglInstaller% +ApplicationTest$ Filter# Action" /LoadConfiguration! #Application  1WordPlateException -ExceptionHandler 'SaltsGenerate Command %ClearCommand #Application Widget Theme Server Plugin
 Page
 Menu
 Mail Login Footer Editor Dashboard /AbstractComponent 5SendResponseListener #ViewManager 7RouteNotFoundStrategy ;InjectViewModelListener
 9InjectTemplateListener$	 IInjectRoutematchParamsListener /ExceptionStrategy =DefaultRenderingStrategy ;CreateViewModelListener #ViewManager 7RouteNotFoundStrategy ;InjectViewModelListener& MInjectNamedConsoleParamsListener /ExceptionStrategy  =DefaultRenderingStrategy ;CreateViewModelListener"~ EViewTemplatePathStackFactory$} IViewTemplateMapResolverFactory| 3ViewResolverFactory({ QViewPrefixPathStackResolverFactoryz 1ViewManagerFactoryy ;ViewJsonStrategyFactoryx =ViewHelperManagerFactoryw ;ViewFeedStrategyFactoryv ;ValidatorManagerFactoryu =TranslatorServiceFactory$t ITranslatorPluginManagerFactorys 5ServiceManagerConfigr 9ServiceListenerFactory+q WSerializerAdapterPluginManagerFactoryp 'RouterFactoryo ?RoutePluginManagerFactoryn +ResponseFactorym )RequestFactory#l GPaginatorPluginManagerFactoryk 5ModuleManagerFactoryj ;LogWriterManagerFactory i ALogProcessorManagerFactoryh ?InputFilterManagerFactory#g GInjectTemplateListenerFactoryf 9HydratorManagerFactorye 9HttpViewManagerFactoryd ?HttpMethodListenerFactoryc ?FormElementManagerFactory"b EFormAnnotationBuilderFactorya 5FilterManagerFactory` 3EventManagerFactory+_ WDiStrictAbstractServiceFactoryFactory$^ IDiStrictAbstractServiceFactory!] CDiServiceInitializerFactory\ DiFactory%[ KDiAbstractServiceFactoryFactory$Z IControllerPluginManagerFactoryY ;ControllerLoaderFactoryX ?ConsoleViewManagerFactoryW 7ConsoleAdapterFactoryV 'ConfigFactoryU 1ApplicationFactory"T EAbstractPluginManagerFactoryS -SimpleRouteStackR 1RoutePluginManagerQ !RouteMatch   M eG(~lUD0sO6q]B'wcC/	








x
h
X
I
=
.


									z	i	W	H	8	'			u_C)	~`<eG2b4uaQ>-|hM5%	{gP2zj[M 
{ .Mailz .Loginy .Footerx .Editorw .Dashboardv /.AbstractComponentu -Dotenvt ,VarDumpers +DumbFoor '*VarClonerTestq )*HtmlDumperTestp '*CliDumperTesto 5)ReflectionCasterTestn ')PdoCasterTestm !)CasterTestl /(VarDumperTestCasek ;'ThrowingCasterExceptionj !&HtmlDumperi &CliDumperh )&AbstractDumperg %VarCloner
f %Stub
e %Datad %Cursorc )%AbstractClonerb /$XmlResourceCastera !$StubCaster` $SplCaster_ )$ResourceCaster^ -$ReflectionCaster] $PdoCaster\ #$MongoCaster[ +$ExceptionCasterZ $DOMCasterY )$DoctrineCasterX $CutStubW $ConstStubV $CasterU !$AmqpCasterT '#RequiredTwice6S m"Symfony_Component_Debug_Tests_Fixtures_PEARClassR !NotPSR0Q -!PSR4CaseMismatchP !!NotPSR0bisO +!DeprecatedClassN %!CaseMismatch*M U UndefinedMethodFatalErrorHandlerTest,L Y UndefinedFunctionFatalErrorHandlerTest(K Q ClassNotFoundFatalErrorHandlerTestJ 5FlattenExceptionTestI 5MockExceptionHandlerH 5ExceptionHandlerTestG -ErrorHandlerTestF #ClassLoaderE 5DebugClassLoaderTest&D MUndefinedMethodFatalErrorHandler(C QUndefinedFunctionFatalErrorHandler$B IClassNotFoundFatalErrorHandlerA -FlattenException@ 3FatalErrorException? =UndefinedMethodException > AUndefinedFunctionException= 5OutOfMemoryException< -FlattenException; 3FatalThrowableError: 3FatalErrorException9 )DummyException8 7ContextErrorException7 9ClassNotFoundException6 -ExceptionHandler5 1ErrorHandlerCanary4 %ErrorHandler3 -DebugClassLoader2 Debug1 3WordPressCorePlugin0 9WordPressCoreInstaller	/ CPT
. View- Validator	, URL+ Storage* Session) Schema( Route' Response& Request% Redis$ Redirect# Queue" Password
! Mail	  Log
 Lang Input
 Hash
 Gate
 File Facade Event DB Crypt Cookie Config Cache	 Bus Blade
 Auth Artisan	 App !HtmlDumper Dumper %ViewErrorBag	 Str
 +ServiceProvider	 !Pluralizer 9NamespacedItemResolver !MessageBag Manager !HtmlString Fluent !Collection #ClassLoader	 Arr  =AggregateServiceProvider ?FilesystemServiceProvider~ /FilesystemManager} /FilesystemAdapter| !Filesystem{ #ClassFinderz 3ValidationExceptiony 7UnauthorizedExceptionx ;EntityNotFoundExceptionw 7FileNotFoundExceptionv -EncryptExceptionu -DecryptExceptiont +ModelIdentifier s ABindingResolutionExceptionr =ContextualBindingBuilderq Container p ABindingResolutionExceptiono !Repositoryn +StringyTestCasem 7StaticStringyTestCasel )CreateTestCasek !CommonTestj Stringyi 'StaticStringyh TestCaseg 1PiwikInstallerTestf 5PimcoreInstallerTeste 5OctoberInstallerTestd 9MediaWikiInstallerTestc 'InstallerTestb /GravInstallerTesta 7DokuWikiInstallerTest` 5CakePHPInstallerTest_ 3AsgardInstallerTest^ +ZikulaInstaller] 'ZendInstaller\ 1WordPressInstaller[ -WolfCMSInstallerZ )WHMCSInstaller   t
 ziR8fM6v]B'kS: eL2





l
P
5

 					~	f	L	0		 tT6X|>\#Kv?f4x>
                          0p a9WordPress_Sniffs_WP_EnqueuedResourcesSniff6o m9WordPress_Sniffs_WhiteSpace_OperatorSpacingSniff>n }9WordPress_Sniffs_WhiteSpace_ControlStructureSpacingSniff;m w9WordPress_Sniffs_WhiteSpace_CastStructureSpacingSniff7l o9WordPress_Sniffs_VIP_ValidatedSanitizedInputSniff.k ]9WordPress_Sniffs_VIP_TimezoneChangeSniff5j k9WordPress_Sniffs_VIP_SuperGlobalInputUsageSniff+i W9WordPress_Sniffs_VIP_SlowDBQuerySniff4h i9WordPress_Sniffs_VIP_SessionVariableUsageSniff5g k9WordPress_Sniffs_VIP_SessionFunctionsUsageSniff3f g9WordPress_Sniffs_VIP_RestrictedVariablesSniff3e g9WordPress_Sniffs_VIP_RestrictedFunctionsSniff,d Y9WordPress_Sniffs_VIP_PostsPerPageSniff.c ]9WordPress_Sniffs_VIP_PluginMenuSlugSniff8b q9WordPress_Sniffs_VIP_FileSystemWritesDisallowSniff3a g9WordPress_Sniffs_VIP_DirectDatabaseQuerySniff,` Y9WordPress_Sniffs_VIP_CronIntervalSniff/_ _9WordPress_Sniffs_VIP_AdminBarRemovalSniff:^ u9WordPress_Sniffs_Variables_VariableRestrictionsSniff5] k9WordPress_Sniffs_Variables_GlobalVariablesSniff.\ ]9WordPress_Sniffs_PHP_YodaConditionsSniff1[ c9WordPress_Sniffs_PHP_StrictComparisonsSniff4Z i9WordPress_Sniffs_PHP_DiscouragedFunctionsSniff?Y 9WordPress_Sniffs_NamingConventions_ValidFunctionNameSniff:X u9WordPress_Sniffs_Functions_FunctionRestrictionsSniff*W U9WordPress_Sniffs_Files_FileNameSniff2V e9WordPress_Sniffs_CSRF_NonceVerificationSniff2U e9WordPress_Sniffs_Classes_ValidClassNameSniff>T }9WordPress_Sniffs_Arrays_ArrayKeySpacingRestrictionsSniff3S g9WordPress_Sniffs_Arrays_ArrayDeclarationSniff>R }9WordPress_Sniffs_Arrays_ArrayAssignmentRestrictionsSniffQ +9WordPress_SniffP 8TestCaseO 18PiwikInstallerTestN 58PimcoreInstallerTestM 58OctoberInstallerTestL 98MediaWikiInstallerTestK '8InstallerTestJ /8GravInstallerTestI 78DokuWikiInstallerTestH 58CakePHPInstallerTestG 38AsgardInstallerTestF +7ZikulaInstallerE '7ZendInstallerD 17WordPressInstallerC -7WolfCMSInstallerB )7WHMCSInstallerA 17TYPO3FlowInstaller@ /7TYPO3CmsInstaller? '7TuskInstaller> +7TheliaInstaller= /7Symfony1Installer< %7SMFInstaller; 77SilverStripeInstaller: /7ShopwareInstaller9 17RoundcubeInstaller8 +7RedaxoInstaller7 +7PuppetInstaller6 37PrestashopInstaller5 %7PPIInstaller4 )7PiwikInstaller3 -7PimcoreInstaller2 )7PhpBBInstaller1 '7OxidInstaller0 -7OctoberInstaller/ +7MoodleInstaller. -7MODXEvoInstaller- 37MODULEWorkInstaller, 37MicroweberInstaller+ 17MediaWikiInstaller* '7MakoInstaller) -7MagentoInstaller( -7LithiumInstaller' -7LaravelInstaller& +7KohanaInstaller% )7KirbyInstaller$ +7JoomlaInstaller# 7Installer" )7HuradInstaller! '7GravInstaller  -7FuelphpInstaller '7FuelInstaller '7ElggInstaller +7DrupalInstaller /7DolibarrInstaller /7DokuWikiInstaller +7CroogoInstaller )7CraftInstaller 17Concrete5Installer 57CodeIgniterInstaller  A7ClanCatsFrameworkInstaller '7ChefInstaller -7CakePHPInstaller +7BitrixInstaller '7BaseInstaller +7AsgardInstaller 57AnnotateCmsInstaller +7AimeosInstaller %7AglInstaller +6ApplicationTest 5Filter
 5Action	 /4LoadConfiguration #3Application 12WordPlateException -1ExceptionHandler '0SaltsGenerate 0Command %0ClearCommand #/Application .Widget  .Theme .Server~ .Plugin
} .Page
| .Menu   n  ]$o?Tr9\#


}
B
			K	waH*nR:!s[H/}`C)bI0y^B*jO8pVB0                ^ =Lexer] -=InvalidArguments\ !=HelpScreen[ =ArgumentZ !<Test_TableY -<Test_Table_AsciiX <testsCliW '<TestArgumentsV #<HttpConsoleU ;TestCaseT 1;PiwikInstallerTestS 5;PimcoreInstallerTestR 5;OctoberInstallerTestQ 9;MediaWikiInstallerTestP ';InstallerTestO /;GravInstallerTestN 7;DokuWikiInstallerTestM 5;CakePHPInstallerTestL 3;AsgardInstallerTestK +:ZikulaInstallerJ ':ZendInstallerI 1:WordPressInstallerH -:WolfCMSInstallerG ):WHMCSInstallerF 1:TYPO3FlowInstallerE /:TYPO3CmsInstallerD ':TuskInstallerC +:TheliaInstallerB /:Symfony1InstallerA %:SMFInstaller@ 7:SilverStripeInstaller? /:ShopwareInstaller> 1:RoundcubeInstaller= +:RedaxoInstaller< +:PuppetInstaller; 3:PrestashopInstaller: %:PPIInstaller9 ):PiwikInstaller8 -:PimcoreInstaller7 ):PhpBBInstaller6 ':OxidInstaller5 -:OctoberInstaller4 +:MoodleInstaller3 -:MODXEvoInstaller2 3:MODULEWorkInstaller1 3:MicroweberInstaller0 1:MediaWikiInstaller/ ':MakoInstaller. -:MagentoInstaller- -:LithiumInstaller, -:LaravelInstaller+ +:KohanaInstaller* ):KirbyInstaller) +:JoomlaInstaller( :Installer' ):HuradInstaller& ':GravInstaller% -:FuelphpInstaller$ ':FuelInstaller# ':ElggInstaller" +:DrupalInstaller! /:DolibarrInstaller  /:DokuWikiInstaller +:CroogoInstaller ):CraftInstaller 1:Concrete5Installer 5:CodeIgniterInstaller  A:ClanCatsFrameworkInstaller ':ChefInstaller -:CakePHPInstaller +:BitrixInstaller ':BaseInstaller +:AsgardInstaller 5:AnnotateCmsInstaller +:AimeosInstaller %:AglInstaller. ]9WordPress_Tests_XSS_EscapeOutputUnitTest, Y9WordPress_Tests_WP_PreparedSQLUnitTest2 e9WordPress_Tests_WP_EnqueuedResourcesUnitTest8 q9WordPress_Tests_WhiteSpace_OperatorSpacingUnitTestA 9WordPress_Tests_WhiteSpace_ControlStructureSpacingUnitTest= {9WordPress_Tests_WhiteSpace_CastStructureSpacingUnitTest9 s9WordPress_Tests_VIP_ValidatedSanitizedInputUnitTest0 a9WordPress_Tests_VIP_TimezoneChangeUnitTest7
 o9WordPress_Tests_VIP_SuperGlobalInputUsageUnitTest-	 [9WordPress_Tests_VIP_SlowDBQueryUnitTest6 m9WordPress_Tests_VIP_SessionVariableUsageUnitTest7 o9WordPress_Tests_VIP_SessionFunctionsUsageUnitTest5 k9WordPress_Tests_VIP_RestrictedVariablesUnitTest5 k9WordPress_Tests_VIP_RestrictedFunctionsUnitTest. ]9WordPress_Tests_VIP_PostsPerPageUnitTest0 a9WordPress_Tests_VIP_PluginMenuSlugUnitTest: u9WordPress_Tests_VIP_FileSystemWritesDisallowUnitTest5 k9WordPress_Tests_VIP_DirectDatabaseQueryUnitTest.  ]9WordPress_Tests_VIP_CronIntervalUnitTest1 c9WordPress_Tests_VIP_AdminBarRemovalUnitTest<~ y9WordPress_Tests_Variables_VariableRestrictionsUnitTest7} o9WordPress_Tests_Variables_GlobalVariablesUnitTest0| a9WordPress_Tests_PHP_YodaConditionsUnitTest3{ g9WordPress_Tests_PHP_StrictComparisonsUnitTest6z m9WordPress_Tests_PHP_DiscouragedFunctionsUnitTestBy 9WordPress_Tests_NamingConventions_ValidFunctionNameUnitTest,x Y9WordPress_Tests_Files_FileNameUnitTest4w i9WordPress_Tests_CSRF_NonceVerificationUnitTest4v i9WordPress_Tests_Classes_ValidClassNameUnitTestAu 9WordPress_Tests_Arrays_ArrayKeySpacingRestrictionsUnitTest5t k9WordPress_Tests_Arrays_ArrayDeclarationUnitTestAs 9WordPress_Tests_Arrays_ArrayAssignmentRestrictionsUnitTest,r Y9WordPress_Sniffs_XSS_EscapeOutputSniff*q U9WordPress_Sniffs_WP_PreparedSQLSniff   s  {m_NA2  sK){N"dE Y3






w
e
T
@
+

						v	^	L	1	vcU>*mJ)q5}F\^3tJs?   #Q GCMustache_Test_Functional_Beta$P ICMustache_Test_Functional_Alpha0O aCMustache_Test_Functional_ObjectSectionTest6N mCMustache_Test_Functional_NestedPartialIndentTest/M _CMustache_Test_Functional_MustacheSpecTest4L iCMustache_Test_Functional_MustacheInjectionTest.K ]CMustache_Test_Functional_InheritanceTest&J MCMustache_Test_Functional_Monster"I ECMustache_Test_Functional_Foo6H mCMustache_Test_Functional_HigherOrderSectionsTest+G WCMustache_Test_Functional_ExamplesTest,F YCMustache_Test_Functional_ClassWithCall'E OCMustache_Test_Functional_CallTest<D yCMustache_Test_FiveThree_Functional_StrictCallablesTest8C qCMustache_Test_FiveThree_Functional_ClassWithLambdaAB CMustache_Test_FiveThree_Functional_PartialLambdaIndentTest9A sCMustache_Test_FiveThree_Functional_MustacheSpecTest9@ sCMustache_Test_FiveThree_Functional_LambdaHelperTest,? YCMustache_Test_FiveThree_Functional_FooA> CMustache_Test_FiveThree_Functional_HigherOrderSectionsTest4= iCMustache_Test_FiveThree_Functional_FiltersTest3< gCMustache_Test_FiveThree_Functional_EngineTest:; uCMustache_Test_FiveThree_Functional_ClosureQuirksTest:: uCMustache_Test_Exception_UnknownTemplateExceptionTest89 qCMustache_Test_Exception_UnknownHelperExceptionTest88 qCMustache_Test_Exception_UnknownFilterExceptionTest17 cCMustache_Test_Exception_SyntaxExceptionTest6 %CMustacheStub5 =CMustache_Test_EngineTest 4 ACMustache_Test_AllTheThings#3 GCMustache_Test_TestArrayAccess2 ;CMustache_Test_TestDummy1 ?CMustache_Test_ContextTest 0 ACMustache_Test_CompilerTest-/ [CMustache_Test_Cache_FilesystemCacheTest. CCacheStub+- WCMustache_Test_Cache_AbstractCacheTest", ECMustache_Test_AutoloaderTest+ !CWhitespace* 'CUTF8Unescaped
) CUTF8( CUnescaped' CSimple& )CSectionsNested% CSections$ 'CSectionObject# )CSectionObjects" #CMagicObject! 3CSectionMagicObjects  9CSectionIteratorObjects /CRecursivePartials CPartials )CNestedPartials +CInvertedSection 7CInvertedDoubleSection -CImplicitIterator
 CI18n 1CGrandParentContext CFilters CEscaped 'CDoubleSection #CDotNotation !CDelimiters CComplex CComments %CChildContext CBlocks -CNonMustacheClass %CMustache_Foo %CMustache_Bar 1CMustache_Tokenizer
 /CMustache_Template	 +CMustache_Parser" ECMustache_Logger_StreamLogger$ ICMustache_Logger_AbstractLogger" ECMustache_Loader_StringLoader" ECMustache_Loader_InlineLoader& MCMustache_Loader_FilesystemLoader% KCMustache_Loader_CascadingLoader! CCMustache_Loader_ArrayLoader 7CMustache_LambdaHelper  ?CMustache_HelperCollection1 cCMustache_Exception_UnknownTemplateException/~ _CMustache_Exception_UnknownHelperException/} _CMustache_Exception_UnknownFilterException(| QCMustache_Exception_SyntaxException){ SCMustache_Exception_RuntimeException'z OCMustache_Exception_LogicException1y cCMustache_Exception_InvalidArgumentExceptionx +CMustache_Enginew -CMustache_Contextv /CMustache_Compileru =CMustache_Cache_NoopCache$t ICMustache_Cache_FilesystemCache"s ECMustache_Cache_AbstractCacher 3CMustache_Autoloader"q ECSymfonyClassCollectionLoaderp BRenderero BMarkdownn BAsciim ATabularl ARendererk AAscii	j @Bari ?Spinner
h ?Dots
g >Treef >Tablee >Streamsd >Shellc >Progressb >Notifya >Memoize` >Colors_ >Arguments   i  Z,i8vR-z_E,s@



q
H
					k	P	4		|eTC'bE0{U&zS/J_p+T%                  6: mDMustache_Test_Functional_HigherOrderSectionsTest+9 WDMustache_Test_Functional_ExamplesTest,8 YDMustache_Test_Functional_ClassWithCall'7 ODMustache_Test_Functional_CallTest<6 yDMustache_Test_FiveThree_Functional_StrictCallablesTest85 qDMustache_Test_FiveThree_Functional_ClassWithLambdaA4 DMustache_Test_FiveThree_Functional_PartialLambdaIndentTest93 sDMustache_Test_FiveThree_Functional_MustacheSpecTest92 sDMustache_Test_FiveThree_Functional_LambdaHelperTest,1 YDMustache_Test_FiveThree_Functional_FooA0 DMustache_Test_FiveThree_Functional_HigherOrderSectionsTest4/ iDMustache_Test_FiveThree_Functional_FiltersTest3. gDMustache_Test_FiveThree_Functional_EngineTest:- uDMustache_Test_FiveThree_Functional_ClosureQuirksTest:, uDMustache_Test_Exception_UnknownTemplateExceptionTest8+ qDMustache_Test_Exception_UnknownHelperExceptionTest8* qDMustache_Test_Exception_UnknownFilterExceptionTest1) cDMustache_Test_Exception_SyntaxExceptionTest( %DMustacheStub' =DMustache_Test_EngineTest & ADMustache_Test_AllTheThings#% GDMustache_Test_TestArrayAccess$ ;DMustache_Test_TestDummy# ?DMustache_Test_ContextTest " ADMustache_Test_CompilerTest-! [DMustache_Test_Cache_FilesystemCacheTest  DCacheStub+ WDMustache_Test_Cache_AbstractCacheTest" EDMustache_Test_AutoloaderTest !DWhitespace 'DUTF8Unescaped
 DUTF8 DUnescaped DSimple )DSectionsNested DSections 'DSectionObject )DSectionObjects #DMagicObject 3DSectionMagicObjects 9DSectionIteratorObjects /DRecursivePartials DPartials )DNestedPartials +DInvertedSection 7DInvertedDoubleSection -DImplicitIterator
 DI18n
 1DGrandParentContext	 DFilters DEscaped 'DDoubleSection #DDotNotation !DDelimiters DComplex DComments %DChildContext DBlocks  -DNonMustacheClass %DMustache_Foo~ %DMustache_Bar} 1DMustache_Tokenizer| /DMustache_Template{ +DMustache_Parser"z EDMustache_Logger_StreamLogger$y IDMustache_Logger_AbstractLogger"x EDMustache_Loader_StringLoader"w EDMustache_Loader_InlineLoader&v MDMustache_Loader_FilesystemLoader%u KDMustache_Loader_CascadingLoader!t CDMustache_Loader_ArrayLoaders 7DMustache_LambdaHelperr ?DMustache_HelperCollection1q cDMustache_Exception_UnknownTemplateException/p _DMustache_Exception_UnknownHelperException/o _DMustache_Exception_UnknownFilterException(n QDMustache_Exception_SyntaxException)m SDMustache_Exception_RuntimeException'l ODMustache_Exception_LogicException1k cDMustache_Exception_InvalidArgumentExceptionj +DMustache_Enginei -DMustache_Contexth /DMustache_Compilerg =DMustache_Cache_NoopCache$f IDMustache_Cache_FilesystemCache"e EDMustache_Cache_AbstractCached 3DMustache_Autoloader"c EDSymfonyClassCollectionLoader!b CCMustache_Test_TokenizerTest a ACMustache_Test_TemplateStub ` ACMustache_Test_TemplateTest _ ACMustache_Test_SpecTestCase^ =CMustache_Test_ParserTest+] WCMustache_Test_Logger_StreamLoggerTest%\ KCMustache_Test_Logger_TestLogger-[ [CMustache_Test_Logger_AbstractLoggerTest+Z WCMustache_Test_Loader_StringLoaderTest+Y WCMustache_Test_Loader_InlineLoaderTest/X _CMustache_Test_Loader_FilesystemLoaderTest.W ]CMustache_Test_Loader_CascadingLoaderTest*V UCMustache_Test_Loader_ArrayLoaderTest(U QCMustache_Test_HelperCollectionTest&T MCMustache_Test_FunctionalTestCase$S ICMustache_Test_Functional_Delta$R ICMustache_Test_Functional_Gamma   o  ~F}V.Pe6j]P8!






z
]
D
					f	A	c>`;]8w`J-
xDuU3vQ'
e@                 !) CHRequests_Exception_HTTP_405!( CHRequests_Exception_HTTP_404!' CHRequests_Exception_HTTP_403!& CHRequests_Exception_HTTP_402!% CHRequests_Exception_HTTP_401!$ CHRequests_Exception_HTTP_400# +HRequests_Cookie" 3HRequests_Cookie_Jar! 3HRequests_Auth_Basic&  MGRequestsTest_Transport_fsockopen! CGRequestsTest_Transport_cURL! CGRequestsTest_Transport_Base -GRequestsTest_SSL 5GRequestsTest_Session# GGRequestsTest_Response_Headers 7GRequestsTest_Requests -GRequestsTest_IRI =GRequestsTest_IDNAEncoder 9GRequestsTests_Encoding 5GRequestsTest_Cookies" EGRequestsTest_ChunkedDecoding %GRawTransport 'GMockTransport ;GRequestsTest_Auth_Basic GRequests' OGRequests_Utility_FilteredIterator0 aGRequests_Utility_CaseInsensitiveDictionary" EGRequests_Transport_fsockopen ;GRequests_Transport_cURL %GRequests_SSL -GRequests_Session
 /GRequests_Response	 ?GRequests_Response_Headers 3GRequests_Proxy_HTTP %GRequests_IRI 'GRequests_IPv6 5GRequests_IDNAEncoder )GRequests_Hooks 1GRequests_Exception ;GRequests_Exception_HTTP% KGRequests_Exception_HTTP_Unknown!  CGRequests_Exception_HTTP_511! CGRequests_Exception_HTTP_505!~ CGRequests_Exception_HTTP_504!} CGRequests_Exception_HTTP_503!| CGRequests_Exception_HTTP_502!{ CGRequests_Exception_HTTP_501!z CGRequests_Exception_HTTP_500!y CGRequests_Exception_HTTP_431!x CGRequests_Exception_HTTP_429!w CGRequests_Exception_HTTP_428!v CGRequests_Exception_HTTP_418!u CGRequests_Exception_HTTP_417!t CGRequests_Exception_HTTP_416!s CGRequests_Exception_HTTP_415!r CGRequests_Exception_HTTP_414!q CGRequests_Exception_HTTP_413!p CGRequests_Exception_HTTP_412!o CGRequests_Exception_HTTP_411!n CGRequests_Exception_HTTP_410!m CGRequests_Exception_HTTP_409!l CGRequests_Exception_HTTP_408!k CGRequests_Exception_HTTP_407!j CGRequests_Exception_HTTP_406!i CGRequests_Exception_HTTP_405!h CGRequests_Exception_HTTP_404!g CGRequests_Exception_HTTP_403!f CGRequests_Exception_HTTP_402!e CGRequests_Exception_HTTP_401!d CGRequests_Exception_HTTP_400c +GRequests_Cookieb 3GRequests_Cookie_Jara 3GRequests_Auth_Basic` !FValueClass_ 'FIndexKeyClass^ )FColumnKeyClass	] FBar	\ FFoo[ +FArrayColumnTestZ !EValueClassY 'EIndexKeyClassX )EColumnKeyClass	W EBar	V EFooU +EArrayColumnTest!T CDMustache_Test_TokenizerTest S ADMustache_Test_TemplateStub R ADMustache_Test_TemplateTest Q ADMustache_Test_SpecTestCaseP =DMustache_Test_ParserTest+O WDMustache_Test_Logger_StreamLoggerTest%N KDMustache_Test_Logger_TestLogger-M [DMustache_Test_Logger_AbstractLoggerTest+L WDMustache_Test_Loader_StringLoaderTest+K WDMustache_Test_Loader_InlineLoaderTest/J _DMustache_Test_Loader_FilesystemLoaderTest.I ]DMustache_Test_Loader_CascadingLoaderTest*H UDMustache_Test_Loader_ArrayLoaderTest(G QDMustache_Test_HelperCollectionTest&F MDMustache_Test_FunctionalTestCase$E IDMustache_Test_Functional_Delta$D IDMustache_Test_Functional_Gamma#C GDMustache_Test_Functional_Beta$B IDMustache_Test_Functional_Alpha0A aDMustache_Test_Functional_ObjectSectionTest6@ mDMustache_Test_Functional_NestedPartialIndentTest/? _DMustache_Test_Functional_MustacheSpecTest4> iDMustache_Test_Functional_MustacheInjectionTest.= ]DMustache_Test_Functional_InheritanceTest&< MDMustache_Test_Functional_Monster"; EDMustache_Test_Functional_Foo   ~ lG"iDfAcG/oY8




i
S
-
					m	O	5	s[G3t`RC3%dD)	lRA2u_C/]9xZAfK-    ' VOxymel& #UCommandTest% 5TSortableIteratorTest$ /TInnerSizeIterator!# CTSizeRangeFilterIteratorTest$" ITRecursiveDirectoryIteratorTest! 5TRealIteratorTestCase  9TPathFilterIteratorTest$ ITTestMultiplePcreFilterIterator$ ITMultiplePcreFilterIteratorTest +TMockSplFileInfo 5TMockFileListIterator -TIteratorTestCase TIterator 1TFilterIteratorTest /TInnerTypeIterator  ATFileTypeFilterIteratorTest 7TFilePathsIteratorTest /TInnerNameIterator  ATFilenameFilterIteratorTest# GTFilecontentFilterIteratorTest( QTExcludeDirectoryFilterIteratorTest" ETDepthRangeFilterIteratorTest! CTDateRangeFilterIteratorTest =TCustomFilterIteratorTest SGlobTest !SFinderTest 1RUnsupportedAdapter %RNamedAdapter
 )RFailingAdapter	 %RDummyAdapter QRegexTest QGlobTest )QExpressionTest 5PNumberComparatorTest 1PDateComparatorTest )PComparatorTest OShell OCommand  -NSortableIterator ;NSizeRangeFilterIterator ~ ANRecursiveDirectoryIterator} 1NPathFilterIterator | ANMultiplePcreFilterIterator{ )NFilterIteratorz 9NFileTypeFilterIteratory /NFilePathsIteratorx 9NFilenameFilterIteratorw ?NFilecontentFilterIterator$v INExcludeDirectoryFilterIteratoru =NDepthRangeFilterIteratort ;NDateRangeFilterIterators 5NCustomFilterIteratorr #MSplFileInfo
q MGlobp MFindero LRegex
n LGlobm !LExpression"l EKShellCommandFailureException#k GKOperationNotPermitedExceptionj ;KAdapterFailureExceptioni 7KAccessDeniedExceptionh -JNumberComparatorg )JDateComparatorf !JComparatore !IPhpAdapterd )IGnuFindAdapterc )IBsdFindAdapterb 3IAbstractFindAdaptera +IAbstractAdapter&` MHRequestsTest_Transport_fsockopen!_ CHRequestsTest_Transport_cURL!^ CHRequestsTest_Transport_Base] -HRequestsTest_SSL\ 5HRequestsTest_Session#[ GHRequestsTest_Response_HeadersZ 7HRequestsTest_RequestsY -HRequestsTest_IRIX =HRequestsTest_IDNAEncoderW 9HRequestsTests_EncodingV 5HRequestsTest_Cookies"U EHRequestsTest_ChunkedDecodingT %HRawTransportS 'HMockTransportR ;HRequestsTest_Auth_BasicQ HRequests'P OHRequests_Utility_FilteredIterator0O aHRequests_Utility_CaseInsensitiveDictionary"N EHRequests_Transport_fsockopenM ;HRequests_Transport_cURLL %HRequests_SSLK -HRequests_SessionJ /HRequests_ResponseI ?HRequests_Response_HeadersH 3HRequests_Proxy_HTTPG %HRequests_IRIF 'HRequests_IPv6E 5HRequests_IDNAEncoderD )HRequests_HooksC 1HRequests_ExceptionB ;HRequests_Exception_HTTP%A KHRequests_Exception_HTTP_Unknown!@ CHRequests_Exception_HTTP_511!? CHRequests_Exception_HTTP_505!> CHRequests_Exception_HTTP_504!= CHRequests_Exception_HTTP_503!< CHRequests_Exception_HTTP_502!; CHRequests_Exception_HTTP_501!: CHRequests_Exception_HTTP_500!9 CHRequests_Exception_HTTP_431!8 CHRequests_Exception_HTTP_429!7 CHRequests_Exception_HTTP_428!6 CHRequests_Exception_HTTP_418!5 CHRequests_Exception_HTTP_417!4 CHRequests_Exception_HTTP_416!3 CHRequests_Exception_HTTP_415!2 CHRequests_Exception_HTTP_414!1 CHRequests_Exception_HTTP_413!0 CHRequests_Exception_HTTP_412!/ CHRequests_Exception_HTTP_411!. CHRequests_Exception_HTTP_410!- CHRequests_Exception_HTTP_409!, CHRequests_Exception_HTTP_408!+ CHRequests_Exception_HTTP_407!* CHRequests_Exception_HTTP_406   T  Z/Y.~Q!f9W-



d
&				f	/m?R%~O%d/UsJ)xLN)                                                #{ GWPHPUnit_Runner_BaseTestRunnerz ?WPHPUnit_Framework_Warning!y CWPHPUnit_Framework_TestSuite.x ]WPHPUnit_Framework_TestSuite_DataProvider"w EWPHPUnit_Framework_TestResult#v GWPHPUnit_Framework_TestFailure u AWPHPUnit_Framework_TestCase&t MWPHPUnit_Framework_SyntheticError-s [WPHPUnit_Framework_SkippedTestSuiteError(r QWPHPUnit_Framework_SkippedTestError#q GWPHPUnit_Framework_OutputError+p WWPHPUnit_Framework_IncompleteTestError2o eWPHPUnit_Framework_ExpectationFailedException!n CWPHPUnit_Framework_Exceptionm ;WPHPUnit_Framework_Error%l KWPHPUnit_Framework_Error_Warning$k IWPHPUnit_Framework_Error_Notice(j QWPHPUnit_Framework_Error_Deprecated"i EWPHPUnit_Framework_Constraint&h MWPHPUnit_Framework_Constraint_Xor:g uWPHPUnit_Framework_Constraint_TraversableContainsOnly6f mWPHPUnit_Framework_Constraint_TraversableContains3e gWPHPUnit_Framework_Constraint_StringStartsWith0d aWPHPUnit_Framework_Constraint_StringMatches1c cWPHPUnit_Framework_Constraint_StringEndsWith1b cWPHPUnit_Framework_Constraint_StringContains+a WWPHPUnit_Framework_Constraint_SameSize,` YWPHPUnit_Framework_Constraint_PCREMatch%_ KWPHPUnit_Framework_Constraint_Or5^ kWPHPUnit_Framework_Constraint_ObjectHasAttribute&] MWPHPUnit_Framework_Constraint_Not+\ WWPHPUnit_Framework_Constraint_LessThan.[ ]WPHPUnit_Framework_Constraint_JsonMatchesDZ WPHPUnit_Framework_Constraint_JsonMatches_ErrorMessageProvider)Y SWPHPUnit_Framework_Constraint_IsType)X SWPHPUnit_Framework_Constraint_IsTrue)W SWPHPUnit_Framework_Constraint_IsNull)V SWPHPUnit_Framework_Constraint_IsJson/U _WPHPUnit_Framework_Constraint_IsInstanceOf.T ]WPHPUnit_Framework_Constraint_IsIdentical*S UWPHPUnit_Framework_Constraint_IsFalse*R UWPHPUnit_Framework_Constraint_IsEqual*Q UWPHPUnit_Framework_Constraint_IsEmpty-P [WPHPUnit_Framework_Constraint_IsAnything.O ]WPHPUnit_Framework_Constraint_GreaterThan-N [WPHPUnit_Framework_Constraint_FileExists3M gWPHPUnit_Framework_Constraint_ExceptionMessage0L aWPHPUnit_Framework_Constraint_ExceptionCode,K YWPHPUnit_Framework_Constraint_Exception(J QWPHPUnit_Framework_Constraint_Count,I YWPHPUnit_Framework_Constraint_Composite:H uWPHPUnit_Framework_Constraint_ClassHasStaticAttribute4G iWPHPUnit_Framework_Constraint_ClassHasAttribute+F WWPHPUnit_Framework_Constraint_Callback,E YWPHPUnit_Framework_Constraint_Attribute.D ]WPHPUnit_Framework_Constraint_ArrayHasKey&C MWPHPUnit_Framework_Constraint_And)B SWPHPUnit_Framework_ComparisonFailure)A SWPHPUnit_Framework_ComparatorFactory"@ EWPHPUnit_Framework_Comparator'? OWPHPUnit_Framework_Comparator_Type3> gWPHPUnit_Framework_Comparator_SplObjectStorage)= SWPHPUnit_Framework_Comparator_Scalar+< WWPHPUnit_Framework_Comparator_Resource); SWPHPUnit_Framework_Comparator_Object*: UWPHPUnit_Framework_Comparator_Numeric-9 [WPHPUnit_Framework_Comparator_MockObject,8 YWPHPUnit_Framework_Comparator_Exception)7 SWPHPUnit_Framework_Comparator_Double.6 ]WPHPUnit_Framework_Comparator_DOMDocument(5 QWPHPUnit_Framework_Comparator_Array,4 YWPHPUnit_Framework_AssertionFailedError3 =WPHPUnit_Framework_Assert'2 OWPHPUnit_Extensions_TicketListener&1 MWPHPUnit_Extensions_TestDecorator%0 KWPHPUnit_Extensions_RepeatedTest&/ MWPHPUnit_Extensions_PhptTestSuite%. KWPHPUnit_Extensions_PhptTestCase,- YWPHPUnit_Extensions_PhptTestCase_Logger', OWPHPUnit_Extensions_GroupTestSuite7+ oWPHPCS_Sniffs_Whitespace_ConcatenationSpacingSniff:* uWPHPCS_Sniffs_ControlStructures_ControlSignatureSniff) !VOxymelTest( +VOxymelException   $ jG+rQ0iK)j9iY;&




j
>
						d	G	/		mT/|_D1sL2qQ/bO\5ydS<&{eP:$                      ~ %WIssue765Test} %WNewException| #WIssue74Test{ %WIssue581Testz %WIssue503Testy %WIssue498Testx %WIssue445Testw %WIssue433Testv %WIssue322Testu =WIssue244ExceptionIntCodet /WIssue244Exceptions %WIssue244Testr 'WIssue1472Testq WTwoTestp #WParentSuiteo WOneTestn !WChildSuitem 5WFoo_Bar_Issue684Testl %WIssue578Testk WIssue523j %WIssue523Testi 'WIssue1021Test h AWFramework_TestListenerTest#g GWFramework_TestImplementorTestf ?WFramework_TestFailureTeste 9WFramework_TestCaseTestd 3WFramework_SuiteTestc =WFramework_ConstraintTest*b UWFramework_Constraint_JsonMatchesTest?a WFramework_Constraint_JsonMatches_ErrorMessageProviderTest` WCountTest_ =WFramework_ComparatorTest^ 3WTestClassComparator] WTestClass\ 5WFramework_AssertTest$[ IWFramework_Assert_FunctionsTest!Z CWExtensions_RepeatedTestTestY WWasRunX =WThrowNoExceptionTestCaseW 9WThrowExceptionTestCaseV 'WTestIterator2U %WTestIteratorT 3WTemplateMethodsTestS WSuccessR WStructQ WStackTestP WSingletonO #WSampleClassN /WSampleArrayAccessM -WRequirementsTest#L GWRequirementsClassDocBlockTestK -WOverrideTestCaseJ )WOutputTestCaseI #WOneTestCaseH +WNotVoidTestCaseG /WNotPublicTestCaseF #WNothingTestE #WNoTestCasesD +WNoTestCaseClassC WNonStaticB /WNoArgTestCaseTestA 3WMultiDependencyTest@ !WMockRunner? /WInheritedTestCase> )WIncompleteTest= WFatalTest< #WFailureTest; WFailure: 'WExceptionTest9 1WExceptionStackTest!8 CWExceptionStackTestException7 +WExceptionInTest6 ;WExceptionInTearDownTest5 5WExceptionInSetUpTest(4 QWExceptionInAssertPreConditionsTest)3 SWExceptionInAssertPostConditionsTest2 WError1 /WEmptyTestCaseTest0 )WDoubleTestCase/ 3WDependencyTestSuite. 7WDependencySuccessTest- 7WDependencyFailureTest, -WDataProviderTest+ %WConcreteTest'* OWConcreteWithMyCustomExtensionTest) /WClassWithToString"( EWClassWithNonPublicAttributes(' QWParentClassWithProtectedAttributes&& MWParentClassWithPrivateAttributes'% OWChangeCurrentWorkingDirectoryTest$ !WCalculator
# WBook(" QWBankAccountWithCustomExtensionTest! +WBankAccountTest  #WBankAccount 5WBankAccountException WAuthor %WAbstractTest -WPHPUnit_Util_XML /WPHPUnit_Util_Type$ IWPHPUnit_Util_TestSuiteIterator( QWPHPUnit_Util_TestDox_ResultPrinter- [WPHPUnit_Util_TestDox_ResultPrinter_Text- [WPHPUnit_Util_TestDox_ResultPrinter_HTML) SWPHPUnit_Util_TestDox_NamePrettifier /WPHPUnit_Util_Test 3WPHPUnit_Util_String 5WPHPUnit_Util_Printer -WPHPUnit_Util_PHP =WPHPUnit_Util_PHP_Windows =WPHPUnit_Util_PHP_Default 5WPHPUnit_Util_Log_TAP 9WPHPUnit_Util_Log_JUnit 7WPHPUnit_Util_Log_JSON( QWPHPUnit_Util_InvalidArgumentHelper =WPHPUnit_Util_GlobalState
 3WPHPUnit_Util_Getopt	 3WPHPUnit_Util_Filter ;WPHPUnit_Util_Filesystem ;WPHPUnit_Util_Fileloader ?WPHPUnit_Util_ErrorHandler /WPHPUnit_Util_Diff$ IWPHPUnit_Util_DeprecatedFeature+ WWPHPUnit_Util_DeprecatedFeature_Logger  AWPHPUnit_Util_Configuration 1WPHPUnit_Util_Class  ?WPHPUnit_TextUI_TestRunner" EWPHPUnit_TextUI_ResultPrinter~ 9WPHPUnit_TextUI_Command} 9WPHPUnit_Runner_Version,| YWPHPUnit_Runner_StandardTestSuiteLoader   n  eN7!`<X$tE^D/



|
^
1

					f	D	%	oCwL$QD7xU9#tZG+sX:rU8d@                              l 9\PHP_Token_IS_NOT_EQUALk 9\PHP_Token_IS_IDENTICAL j A\PHP_Token_IS_NOT_IDENTICALi 7\PHP_Token_BOOLEAN_ANDh 5\PHP_Token_BOOLEAN_ORg 5\PHP_Token_PLUS_EQUALf 7\PHP_Token_MINUS_EQUALe 3\PHP_Token_MUL_EQUALd 3\PHP_Token_DIV_EQUALc 9\PHP_Token_CONCAT_EQUALb 3\PHP_Token_MOD_EQUALa 3\PHP_Token_AND_EQUAL` 1\PHP_Token_OR_EQUAL_ 3\PHP_Token_XOR_EQUAL^ 1\PHP_Token_SL_EQUAL] 1\PHP_Token_SR_EQUAL\ +\PHP_Token_PRINT[ 7\PHP_Token_LOGICAL_ANDZ 7\PHP_Token_LOGICAL_XORY 5\PHP_Token_LOGICAL_ORX /\PHP_Token_INCLUDEW 9\PHP_Token_INCLUDE_ONCEV )\PHP_Token_EVALU /\PHP_Token_REQUIRET 9\PHP_Token_REQUIRE_ONCES 1\PHP_Token_Includes%R K\PHP_TokenWithScopeAndVisibilityQ 1\PHP_TokenWithScopeP \PHP_TokenO -\PHP_Token_Stream%N K\PHP_Token_Stream_CachingFactory7M o\PHPCS_Sniffs_Whitespace_ConcatenationSpacingSniff:L u\PHPCS_Sniffs_ControlStructures_ControlSignatureSniff	K [FooJ %ZCoveredClassI 1ZCoveredParentClassH ?YPHP_CodeCoverage_TestCaseG 5YPHP_CodeCoverageTestF ?YPHP_CodeCoverage_UtilTest)E SYPHP_CodeCoverage_Report_FactoryTest(D QYPHP_CodeCoverage_Report_CloverTest!C CYPHP_CodeCoverage_FilterTest	B YBar	A YFoo5@ kYCoveredClassWithAnonymousFunctionInStaticMethod#? GYNotExistingCoveredElementTest!> CYNamespaceCoveragePublicTest$= IYNamespaceCoverageProtectedTest"< EYNamespaceCoveragePrivateTest$; IYNamespaceCoverageNotPublicTest': OYNamespaceCoverageNotProtectedTest%9 KYNamespaceCoverageNotPrivateTest!8 CYNamespaceCoverageMethodTest&7 MYNamespaceCoverageCoversClassTest,6 YYNamespaceCoverageCoversClassPublicTest 5 AYNamespaceCoverageClassTest(4 QYNamespaceCoverageClassExtendedTest3 %YCoveredClass2 1YCoveredParentClass(1 QYCoverageTwoDefaultClassAnnotations0 1YCoveragePublicTest/ 7YCoverageProtectedTest. 3YCoveragePrivateTest- 7YCoverageNotPublicTest, =YCoverageNotProtectedTest+ 9YCoverageNotPrivateTest* 3YCoverageNothingTest) -YCoverageNoneTest( 1YCoverageMethodTest-' [YCoverageMethodParenthesesWhitespaceTest#& GYCoverageMethodParenthesesTest)% SYCoverageMethodOneLineAnnotationTest$ 5YCoverageFunctionTest/# _YCoverageFunctionParenthesesWhitespaceTest%" KYCoverageFunctionParenthesesTest! /YCoverageClassTest  ?YCoverageClassExtendedTest +YBankAccountTest #YBankAccount -YPHP_CodeCoverage =YPHP_CodeCoverage_Version 7YPHP_CodeCoverage_Util1 cYPHP_CodeCoverage_Util_InvalidArgumentHelper" EYPHP_CodeCoverage_Report_Text! CYPHP_CodeCoverage_Report_PHP" EYPHP_CodeCoverage_Report_Node+ WYPHP_CodeCoverage_Report_Node_Iterator' OYPHP_CodeCoverage_Report_Node_File, YYPHP_CodeCoverage_Report_Node_Directory" EYPHP_CodeCoverage_Report_HTML+ WYPHP_CodeCoverage_Report_HTML_Renderer0 aYPHP_CodeCoverage_Report_HTML_Renderer_File5 kYPHP_CodeCoverage_Report_HTML_Renderer_Directory5 kYPHP_CodeCoverage_Report_HTML_Renderer_Dashboard% KYPHP_CodeCoverage_Report_Factory$ IYPHP_CodeCoverage_Report_Clover ;YPHP_CodeCoverage_Filter  AYPHP_CodeCoverage_Exception$
 IYPHP_CodeCoverage_Driver_Xdebug7	 oYPHPCS_Sniffs_Whitespace_ConcatenationSpacingSniff: uYPHPCS_Sniffs_ControlStructures_ControlSignatureSniff 9XExceptionNamespaceTest %WUtil_XMLTest 'WUtil_TypeTest 'WUtil_TestTest% KWUtil_TestDox_NamePrettifierTest 'WUtil_DiffTest 9WUtil_ConfigurationTest  )WUtil_ClassTest ?WRunner_BaseTestRunnerTest   % jL.zcL3mS1oC+v[='





p
T
7

						k	T	:	 	iP7gD$oW<`4bB!qX?)nU4fSF;0%       w \av \cu \A	t \Foos \TestClassr 1\PHP_Token_BACKTICKq +\PHP_Token_TILDEp +\PHP_Token_CARETo -\PHP_Token_DOLLARn )\PHP_Token_PIPEm /\PHP_Token_PERCENTl 3\PHP_Token_AMPERSANDk %\PHP_Token_ATj ;\PHP_Token_DOUBLE_QUOTESi +\PHP_Token_COLON h A\PHP_Token_EXCLAMATION_MARKg ;\PHP_Token_QUESTION_MARKf '\PHP_Token_DIVe )\PHP_Token_MULTd +\PHP_Token_MINUSc )\PHP_Token_PLUSb %\PHP_Token_GTa %\PHP_Token_LT` +\PHP_Token_EQUAL_ +\PHP_Token_COMMA^ '\PHP_Token_DOT] 3\PHP_Token_SEMICOLON\ 7\PHP_Token_CLOSE_CURLY[ 5\PHP_Token_OPEN_CURLYZ 9\PHP_Token_CLOSE_SQUAREY 7\PHP_Token_OPEN_SQUAREX ;\PHP_Token_CLOSE_BRACKETW 9\PHP_Token_OPEN_BRACKETV 9\PHP_Token_DOUBLE_COLONU 9\PHP_Token_NS_SEPARATORT '\PHP_Token_DIRS )\PHP_Token_NS_CR 3\PHP_Token_NAMESPACE$Q I\PHP_Token_PAAMAYIM_NEKUDOTAYIMP 5\PHP_Token_CURLY_OPEN(O Q\PHP_Token_DOLLAR_OPEN_CURLY_BRACESN 7\PHP_Token_END_HEREDOCM ;\PHP_Token_START_HEREDOCL 5\PHP_Token_WHITESPACEK 3\PHP_Token_CLOSE_TAG"J E\PHP_Token_OPEN_TAG_WITH_ECHOI 1\PHP_Token_OPEN_TAGH 7\PHP_Token_DOC_COMMENTG /\PHP_Token_COMMENTF )\PHP_Token_FILEE )\PHP_Token_LINED -\PHP_Token_FUNC_CC 1\PHP_Token_METHOD_CB /\PHP_Token_TRAIT_CA /\PHP_Token_CLASS_C@ +\PHP_Token_ARRAY? )\PHP_Token_LIST> 9\PHP_Token_DOUBLE_ARROW= ?\PHP_Token_OBJECT_OPERATOR< 5\PHP_Token_IMPLEMENTS; /\PHP_Token_EXTENDS: +\PHP_Token_TRAIT#9 G\PHP_Token_CLASS_NAME_CONSTANT8 +\PHP_Token_CLASS7 3\PHP_Token_INTERFACE6 ;\PHP_Token_HALT_COMPILER5 +\PHP_Token_EMPTY4 +\PHP_Token_ISSET3 +\PHP_Token_UNSET2 '\PHP_Token_VAR1 -\PHP_Token_STATIC0 1\PHP_Token_ABSTRACT/ +\PHP_Token_FINAL. /\PHP_Token_PRIVATE- 3\PHP_Token_PROTECTED, -\PHP_Token_PUBLIC+ -\PHP_Token_GLOBAL* '\PHP_Token_USE) +\PHP_Token_THROW( /\PHP_Token_FINALLY' +\PHP_Token_CATCH& '\PHP_Token_TRY% +\PHP_Token_YIELD$ -\PHP_Token_RETURN# +\PHP_Token_CONST" 1\PHP_Token_FUNCTION! 3\PHP_Token_INSTEADOF  1\PHP_Token_CALLABLE )\PHP_Token_GOTO 1\PHP_Token_CONTINUE +\PHP_Token_BREAK /\PHP_Token_DEFAULT )\PHP_Token_CASE 3\PHP_Token_ENDSWITCH -\PHP_Token_SWITCH %\PHP_Token_AS 5\PHP_Token_ENDDECLARE /\PHP_Token_DECLARE 5\PHP_Token_ENDFOREACH /\PHP_Token_FOREACH -\PHP_Token_ENDFOR '\PHP_Token_FOR 1\PHP_Token_ENDWHILE +\PHP_Token_WHILE %\PHP_Token_DO )\PHP_Token_ECHO( Q\PHP_Token_CONSTANT_ENCAPSED_STRING' O\PHP_Token_ENCAPSED_AND_WHITESPACE ;\PHP_Token_BAD_CHARACTER
 3\PHP_Token_CHARACTER	 7\PHP_Token_INLINE_HTML 5\PHP_Token_NUM_STRING 1\PHP_Token_VARIABLE =\PHP_Token_STRING_VARNAME -\PHP_Token_STRING /\PHP_Token_DNUMBER /\PHP_Token_LNUMBER +\PHP_Token_ENDIF )\PHP_Token_ELSE  -\PHP_Token_ELSEIF %\PHP_Token_IF~ )\PHP_Token_EXIT} '\PHP_Token_NEW| +\PHP_Token_CLONE{ '\PHP_Token_INCz '\PHP_Token_DECy 1\PHP_Token_INT_CASTx 7\PHP_Token_DOUBLE_CASTw 7\PHP_Token_STRING_CASTv 5\PHP_Token_ARRAY_CASTu 7\PHP_Token_OBJECT_CASTt 3\PHP_Token_BOOL_CASTs 5\PHP_Token_UNSET_CASTr 5\PHP_Token_INSTANCEOFq %\PHP_Token_SLp %\PHP_Token_SR#o G\PHP_Token_IS_SMALLER_OR_EQUAL#n G\PHP_Token_IS_GREATER_OR_EQUALm 1\PHP_Token_IS_EQUAL   X  dC,y>g=b5yJ



h
;
				H	
~JQ#c6	b3	wHs9W.\0                               &O MaPHPUnit_Framework_SyntheticError-N [aPHPUnit_Framework_SkippedTestSuiteError(M QaPHPUnit_Framework_SkippedTestError#L GaPHPUnit_Framework_OutputError+K WaPHPUnit_Framework_IncompleteTestError2J eaPHPUnit_Framework_ExpectationFailedException!I CaPHPUnit_Framework_ExceptionH ;aPHPUnit_Framework_Error%G KaPHPUnit_Framework_Error_Warning$F IaPHPUnit_Framework_Error_Notice(E QaPHPUnit_Framework_Error_Deprecated"D EaPHPUnit_Framework_Constraint&C MaPHPUnit_Framework_Constraint_Xor:B uaPHPUnit_Framework_Constraint_TraversableContainsOnly6A maPHPUnit_Framework_Constraint_TraversableContains3@ gaPHPUnit_Framework_Constraint_StringStartsWith0? aaPHPUnit_Framework_Constraint_StringMatches1> caPHPUnit_Framework_Constraint_StringEndsWith1= caPHPUnit_Framework_Constraint_StringContains+< WaPHPUnit_Framework_Constraint_SameSize,; YaPHPUnit_Framework_Constraint_PCREMatch%: KaPHPUnit_Framework_Constraint_Or59 kaPHPUnit_Framework_Constraint_ObjectHasAttribute&8 MaPHPUnit_Framework_Constraint_Not+7 WaPHPUnit_Framework_Constraint_LessThan.6 ]aPHPUnit_Framework_Constraint_JsonMatchesD5 aPHPUnit_Framework_Constraint_JsonMatches_ErrorMessageProvider)4 SaPHPUnit_Framework_Constraint_IsType)3 SaPHPUnit_Framework_Constraint_IsTrue)2 SaPHPUnit_Framework_Constraint_IsNull)1 SaPHPUnit_Framework_Constraint_IsJson/0 _aPHPUnit_Framework_Constraint_IsInstanceOf./ ]aPHPUnit_Framework_Constraint_IsIdentical*. UaPHPUnit_Framework_Constraint_IsFalse*- UaPHPUnit_Framework_Constraint_IsEqual*, UaPHPUnit_Framework_Constraint_IsEmpty-+ [aPHPUnit_Framework_Constraint_IsAnything.* ]aPHPUnit_Framework_Constraint_GreaterThan-) [aPHPUnit_Framework_Constraint_FileExists3( gaPHPUnit_Framework_Constraint_ExceptionMessage0' aaPHPUnit_Framework_Constraint_ExceptionCode,& YaPHPUnit_Framework_Constraint_Exception(% QaPHPUnit_Framework_Constraint_Count,$ YaPHPUnit_Framework_Constraint_Composite:# uaPHPUnit_Framework_Constraint_ClassHasStaticAttribute4" iaPHPUnit_Framework_Constraint_ClassHasAttribute+! WaPHPUnit_Framework_Constraint_Callback,  YaPHPUnit_Framework_Constraint_Attribute. ]aPHPUnit_Framework_Constraint_ArrayHasKey& MaPHPUnit_Framework_Constraint_And) SaPHPUnit_Framework_ComparisonFailure) SaPHPUnit_Framework_ComparatorFactory" EaPHPUnit_Framework_Comparator' OaPHPUnit_Framework_Comparator_Type3 gaPHPUnit_Framework_Comparator_SplObjectStorage) SaPHPUnit_Framework_Comparator_Scalar+ WaPHPUnit_Framework_Comparator_Resource) SaPHPUnit_Framework_Comparator_Object* UaPHPUnit_Framework_Comparator_Numeric- [aPHPUnit_Framework_Comparator_MockObject, YaPHPUnit_Framework_Comparator_Exception) SaPHPUnit_Framework_Comparator_Double. ]aPHPUnit_Framework_Comparator_DOMDocument( QaPHPUnit_Framework_Comparator_Array, YaPHPUnit_Framework_AssertionFailedError =aPHPUnit_Framework_Assert' OaPHPUnit_Extensions_TicketListener& MaPHPUnit_Extensions_TestDecorator% KaPHPUnit_Extensions_RepeatedTest&
 MaPHPUnit_Extensions_PhptTestSuite%	 KaPHPUnit_Extensions_PhptTestCase, YaPHPUnit_Extensions_PhptTestCase_Logger' OaPHPUnit_Extensions_GroupTestSuite7 oaPHPCS_Sniffs_Whitespace_ConcatenationSpacingSniff: uaPHPCS_Sniffs_ControlStructures_ControlSignatureSniff )`TestClassInBaz _TestClass ^Extender )]TestClassInBar  ]TestClass	 ]Baz~ '\PHP_TokenTest} ;\PHP_Token_NamespaceTest| ;\PHP_Token_InterfaceTest{ 7\PHP_Token_IncludeTestz 9\PHP_Token_FunctionTesty 7\PHP_Token_ClosureTestx 3\PHP_Token_ClassTest    ]8~X5`?wW9X'




m
W
G
)
						X	,	qR5|[B~jM2{a: v_?rP=mJ#xgRA*              N %aIssue244TestM 'aIssue1472TestL aTwoTestK #aParentSuiteJ aOneTestI !aChildSuiteH 5aFoo_Bar_Issue684TestG %aIssue578TestF aIssue523E %aIssue523TestD 'aIssue1021Test C AaFramework_TestListenerTest#B GaFramework_TestImplementorTestA ?aFramework_TestFailureTest@ 9aFramework_TestCaseTest? 3aFramework_SuiteTest> =aFramework_ConstraintTest*= UaFramework_Constraint_JsonMatchesTest?< aFramework_Constraint_JsonMatches_ErrorMessageProviderTest; aCountTest: =aFramework_ComparatorTest9 3aTestClassComparator8 aTestClass7 5aFramework_AssertTest$6 IaFramework_Assert_FunctionsTest!5 CaExtensions_RepeatedTestTest4 aWasRun3 =aThrowNoExceptionTestCase2 9aThrowExceptionTestCase1 'aTestIterator20 %aTestIterator/ 3aTemplateMethodsTest. aSuccess- aStruct, aStackTest+ aSingleton* #aSampleClass) /aSampleArrayAccess( -aRequirementsTest#' GaRequirementsClassDocBlockTest& -aOverrideTestCase% )aOutputTestCase$ #aOneTestCase# +aNotVoidTestCase" /aNotPublicTestCase! #aNothingTest  #aNoTestCases +aNoTestCaseClass aNonStatic /aNoArgTestCaseTest 3aMultiDependencyTest !aMockRunner /aInheritedTestCase )aIncompleteTest aFatalTest #aFailureTest aFailure 'aExceptionTest 1aExceptionStackTest! CaExceptionStackTestException +aExceptionInTest ;aExceptionInTearDownTest 5aExceptionInSetUpTest( QaExceptionInAssertPreConditionsTest) SaExceptionInAssertPostConditionsTest aError /aEmptyTestCaseTest )aDoubleTestCase
 3aDependencyTestSuite	 7aDependencySuccessTest 7aDependencyFailureTest -aDataProviderTest %aConcreteTest' OaConcreteWithMyCustomExtensionTest /aClassWithToString" EaClassWithNonPublicAttributes( QaParentClassWithProtectedAttributes& MaParentClassWithPrivateAttributes'  OaChangeCurrentWorkingDirectoryTest !aCalculator
~ aBook(} QaBankAccountWithCustomExtensionTest| +aBankAccountTest{ #aBankAccountz 5aBankAccountExceptiony aAuthorx %aAbstractTestw -aPHPUnit_Util_XMLv /aPHPUnit_Util_Type$u IaPHPUnit_Util_TestSuiteIterator(t QaPHPUnit_Util_TestDox_ResultPrinter-s [aPHPUnit_Util_TestDox_ResultPrinter_Text-r [aPHPUnit_Util_TestDox_ResultPrinter_HTML)q SaPHPUnit_Util_TestDox_NamePrettifierp /aPHPUnit_Util_Testo 3aPHPUnit_Util_Stringn 5aPHPUnit_Util_Printerm -aPHPUnit_Util_PHPl =aPHPUnit_Util_PHP_Windowsk =aPHPUnit_Util_PHP_Defaultj 5aPHPUnit_Util_Log_TAPi 9aPHPUnit_Util_Log_JUnith 7aPHPUnit_Util_Log_JSON(g QaPHPUnit_Util_InvalidArgumentHelperf =aPHPUnit_Util_GlobalStatee 3aPHPUnit_Util_Getoptd 3aPHPUnit_Util_Filterc ;aPHPUnit_Util_Filesystemb ;aPHPUnit_Util_Fileloadera ?aPHPUnit_Util_ErrorHandler` /aPHPUnit_Util_Diff$_ IaPHPUnit_Util_DeprecatedFeature+^ WaPHPUnit_Util_DeprecatedFeature_Logger ] AaPHPUnit_Util_Configuration\ 1aPHPUnit_Util_Class[ ?aPHPUnit_TextUI_TestRunner"Z EaPHPUnit_TextUI_ResultPrinterY 9aPHPUnit_TextUI_CommandX 9aPHPUnit_Runner_Version,W YaPHPUnit_Runner_StandardTestSuiteLoader#V GaPHPUnit_Runner_BaseTestRunnerU ?aPHPUnit_Framework_Warning!T CaPHPUnit_Framework_TestSuite.S ]aPHPUnit_Framework_TestSuite_DataProvider"R EaPHPUnit_Framework_TestResult#Q GaPHPUnit_Framework_TestFailure P AaPHPUnit_Framework_TestCase   v  kU?*cL5Gp2x=



K
			z	H	dE-
~['|hR8#lU>$zbH9+ pN)eI(
{eO2 D !xSuiteEventC xStepEventB 'xScenarioEventA 3xOutlineExampleEvent@ %xOutlineEvent? %xFeatureEvent> /xBaseScenarioEvent= +xBackgroundEvent< wLoader; 'wConfiguration: 1vGherkinLoadersPass9 )vFormattersPass8 5vEventSubscribersPass7 ;vDefinitionProposalsPass6 1vContextLoadersPass5 ;vContextInitializersPass4 =vContextClassGuessersPass3 7vConsoleProcessorsPass2 )uBehatExtension"1 EtDefinitionProposalDispatcher 0 AtClosuredDefinitionProposal!/ CtAnnotatedDefinitionProposal. =sClosuredDefinitionLoader- /rDefinitionSnippet, 5rDefinitionDispatcher
+ qWhen* )qTransformation
) qThen( qGiven' !qDefinition& 3pLoggerDataCollector
% oWhen
$ oThen# oGiven" -nTranslatedLoader! )nClosuredLoader  +nAnnotatedLoader 9mPredefinedClassGuesser 'lContextReader /lContextDispatcher %lBehatContext %kRunProcessor kProcessor -kLocatorProcessor 'kInitProcessor 'kHelpProcessor -kGherkinProcessor +kFormatProcessor 9kContextReaderProcessor 1kAggregateProcessor +jInputDefinition +iOutputFormatter %hBehatCommand #hBaseCommand -gBehatApplication %fPharCompiler !eAnnotation dSupport
 dHooks	 )dFeatureContext 3dBaseFeaturesContext =cFramework_MockObjectTest0 acFramework_MockObject_Invocation_StaticTest0 acFramework_MockObject_Invocation_ObjectTest ?cFramework_MockBuilderTest( QcFramework_MockObject_GeneratorTest 3cStaticMockTestClass cSomeClass  5cPartialMockTestClass cMockable~ ?cMethodCallbackByReference} )cMethodCallback| 7cAbstractMockTestClass6{ mcPHPUnit_Framework_MockObject_Stub_ReturnValueMap2z ecPHPUnit_Framework_MockObject_Stub_ReturnSelf6y mcPHPUnit_Framework_MockObject_Stub_ReturnCallback6x mcPHPUnit_Framework_MockObject_Stub_ReturnArgument.w ]cPHPUnit_Framework_MockObject_Stub_Return1v ccPHPUnit_Framework_MockObject_Stub_Exception8u qcPHPUnit_Framework_MockObject_Stub_ConsecutiveCalls.t ]cPHPUnit_Framework_MockObject_MockBuilder*s UcPHPUnit_Framework_MockObject_Matcher>r }cPHPUnit_Framework_MockObject_Matcher_StatelessInvocation5q kcPHPUnit_Framework_MockObject_Matcher_Parameters5p kcPHPUnit_Framework_MockObject_Matcher_MethodName:o ucPHPUnit_Framework_MockObject_Matcher_InvokedRecorder7n ocPHPUnit_Framework_MockObject_Matcher_InvokedCount=m {cPHPUnit_Framework_MockObject_Matcher_InvokedAtLeastOnce9l scPHPUnit_Framework_MockObject_Matcher_InvokedAtIndex8k qcPHPUnit_Framework_MockObject_Matcher_AnyParameters:j ucPHPUnit_Framework_MockObject_Matcher_AnyInvokedCount3i gcPHPUnit_Framework_MockObject_InvocationMocker4h icPHPUnit_Framework_MockObject_Invocation_Static4g icPHPUnit_Framework_MockObject_Invocation_Object,f YcPHPUnit_Framework_MockObject_Generator;e wcPHPUnit_Framework_MockObject_Builder_InvocationMocker7d ocPHPCS_Sniffs_Whitespace_ConcatenationSpacingSniff:c ucPHPCS_Sniffs_ControlStructures_ControlSignatureSniffb 9bExceptionNamespaceTesta %aUtil_XMLTest` 'aUtil_TypeTest_ 'aUtil_TestTest%^ KaUtil_TestDox_NamePrettifierTest] 'aUtil_DiffTest\ 9aUtil_ConfigurationTest[ )aUtil_ClassTestZ ?aRunner_BaseTestRunnerTestY %aIssue765TestX %aNewExceptionW #aIssue74TestV %aIssue581TestU %aIssue503TestT %aIssue498TestS %aIssue445TestR %aIssue433TestQ %aIssue322TestP =aIssue244ExceptionIntCodeO /aIssue244Exception   D hL0yaH-~jS;'hN7 s]C.





w
`
I
/

						m	S	D	6	(	{Y4pT3pZ=&gK/x`G,}iR:&gM6qXD    ` !LineFilter_ +ParserException^ )LexerException] Exception\ 'GherkinDumper[ #MemoryCacheZ FileCacheY )TransliteratorX !StepTesterW )ScenarioTesterV 'OutlineTesterU 'FeatureTesterT -BackgroundTesterS 1ClosuredHookLoaderR )HookDispatcherQ SuiteHookP StepHookO %ScenarioHook
N HookM )FilterableHookL #FeatureHookK #BeforeSuiteJ !BeforeStepI )BeforeScenarioH 'BeforeFeatureG !AfterSuiteF AfterStepE 'AfterScenarioD %AfterFeatureC 1StorySyntaxPrinterB 1DefinitionsPrinterA 1FeatureSuiteLoader@ /SnippetsFormatter? /ProgressFormatter> +PrettyFormatter= )JUnitFormatter< 'HtmlFormatter; -FormatterManager: 3FormatterDispatcher9 =FailedScenariosFormatter8 -ConsoleFormatter7 -ExtensionManager6 Extension5 1UndefinedException4 1RedundantException3 -PendingException2 1FormatterException1 Exception0 )ErrorException/ /BehaviorException. 1AmbiguousException- !SuiteEvent, StepEvent+ 'ScenarioEvent* 3OutlineExampleEvent) %OutlineEvent( %FeatureEvent' /BaseScenarioEvent& +BackgroundEvent% Loader$ 'Configuration# 1GherkinLoadersPass" )FormattersPass! 5EventSubscribersPass  ;DefinitionProposalsPass 1ContextLoadersPass ;ContextInitializersPass =ContextClassGuessersPass 7ConsoleProcessorsPass )BehatExtension" EDefinitionProposalDispatcher  AClosuredDefinitionProposal! CAnnotatedDefinitionProposal =ClosuredDefinitionLoader /DefinitionSnippet 5DefinitionDispatcher
 When )Transformation
 Then Given !Definition 3LoggerDataCollector
 When
 Then Given -TranslatedLoader
 )ClosuredLoader	 +AnnotatedLoader 9PredefinedClassGuesser 'ContextReader /ContextDispatcher %BehatContext %RunProcessor Processor -LocatorProcessor 'InitProcessor  'HelpProcessor -GherkinProcessor~ +FormatProcessor} 9ContextReaderProcessor| 1AggregateProcessor{ +InputDefinitionz +OutputFormattery %BehatCommandx #BaseCommandw -BehatApplicationv %PharCompileru !Annotationt Supports Hooksr )FeatureContextq 3BaseFeaturesContextp )Transliteratoro !StepTestern )ScenarioTesterm 'OutlineTesterl 'FeatureTesterk -BackgroundTesterj 1ClosuredHookLoaderi )HookDispatcherh ~SuiteHookg ~StepHookf %~ScenarioHook
e ~Hookd )~FilterableHookc #~FeatureHookb #~BeforeSuitea !~BeforeStep` )~BeforeScenario_ '~BeforeFeature^ !~AfterSuite] ~AfterStep\ '~AfterScenario[ %~AfterFeatureZ 1}StorySyntaxPrinterY 1}DefinitionsPrinterX 1|FeatureSuiteLoaderW /{SnippetsFormatterV /{ProgressFormatterU +{PrettyFormatterT ){JUnitFormatterS '{HtmlFormatterR -{FormatterManagerQ 3{FormatterDispatcherP ={FailedScenariosFormatterO -{ConsoleFormatterN -zExtensionManagerM zExtensionL 1yUndefinedExceptionK 1yRedundantExceptionJ -yPendingExceptionI 1yFormatterExceptionH yExceptionG )yErrorExceptionF /yBehaviorExceptionE 1yAmbiguousException   ~+ paQ:}bJ4nXF3uX@'_F)






h
N
8
!
					`	<		]I(oR2}`@oM4{U9R9~Hc+                                       4^ iWordPress_Sniffs_PHP_DiscouragedFunctionsSniff?] WordPress_Sniffs_NamingConventions_ValidFunctionNameSniff:\ uWordPress_Sniffs_Functions_FunctionRestrictionsSniff*[ UWordPress_Sniffs_Files_FileNameSniff2Z eWordPress_Sniffs_CSRF_NonceVerificationSniff2Y eWordPress_Sniffs_Classes_ValidClassNameSniff>X }WordPress_Sniffs_Arrays_ArrayKeySpacingRestrictionsSniff3W gWordPress_Sniffs_Arrays_ArrayDeclarationSniff>V }WordPress_Sniffs_Arrays_ArrayAssignmentRestrictionsSniffU +WordPress_Sniff;T wYoast_Sniffs_ControlStructures_IfElseDeclarationSniff"S Exrstf_Composer52_ClassLoaderR GeneratorQ /AutoloadGenerator"P Exrstf_Composer52_ClassLoaderO GeneratorN /AutoloadGeneratorM 1Yoast_Google_Utils"L EYoast_Google_ServiceResourceK 5Yoast_Google_ServiceJ 1Yoast_Google_Model"I EYoast_Google_MediaFileUploadH ?Yoast_Google_BatchRequestG /Yoast_Google_WPIOF /Yoast_Google_RESTE +Yoast_Google_IOD =Yoast_Google_HttpRequestC 3Yoast_Google_CurlIOB =Yoast_Google_CacheParser#A GYoast_Google_ServiceException@ =Yoast_Google_IOException!? CYoast_Google_CacheException > AYoast_Google_AuthException= 9Yoast_Google_Exception< 3Yoast_Google_Client; 3URI_Template_Parser: 5Yoast_Google_WPCache9 1Yoast_Google_Cache8 7Yoast_Google_Verifier7 3Yoast_Google_Signer6 =Yoast_Google_PemVerifier5 9Yoast_Google_P12Signer4 3Yoast_Google_OAuth23 =Yoast_Google_LoginTicket2 7Yoast_Google_AuthNone1 /Yoast_Google_Auth'0 OYoast_Google_AssertionCredentials/ )Yoast_Api_Libs. -Yoast_Api_Google- ;Yoast_Api_Google_Client, !yoast_i18n + ATest_Yoast_License_Manager"* EYoast_License_Manager_Double) 5Yoast_Product_Double&( MYst_License_Manager_UnitTestCase' )Sample_Product& 'Sample_Plugin% 5Yoast_Update_Manager $ AYoast_Theme_Update_Manager!# CYoast_Theme_License_Manager" 'Yoast_Product!! CYoast_Plugin_Update_Manager"  EYoast_Plugin_License_Manager 7Yoast_License_Manager /Yoast_API_Request 'TableNodeTest %StepNodeTest -ScenarioNodeTest -PyStringNodeTest +OutlineNodeTest +FeatureNodeTest 5ExampleTableNodeTest 1BackgroundNodeTest 1YamlFileLoaderTest 7GherkinFileLoaderTest 3DirectoryLoaderTest +ArrayLoaderTest$ ISymfonyTranslationKeywordsTest %KeywordsTest 1KeywordsDumperTest 5CucumberKeywordsTest ;CachedArrayKeywordsTest 'TagFilterTest )RoleFilterTest
 +PathsFilterTest	 )NameFilterTest 3LineRangeFilterTest )LineFilterTest !FilterTest !ParserTest 5ParserExceptionsTest #GherkinTest /GherkinDumperTest +MemoryCacheTest  'FileCacheTest TableNode~ StepNode} %ScenarioNode| %PyStringNode{ #OutlineNodez #FeatureNodey -ExampleTableNodex +ExampleStepNodew 3ExamplePyStringNodev )BackgroundNodeu 5AbstractScenarioNodet %AbstractNodes )YamlFileLoaderr /GherkinFileLoaderq +DirectoryLoaderp #ArrayLoadero 1AbstractFileLoader n ASymfonyTranslationKeywordsm )KeywordsDumperl -CucumberKeywordsk 3CachedArrayKeywordsj 'ArrayKeywordsi Parserh Lexerg Gherkinf TagFiltere %SimpleFilterd !RoleFilterc #PathsFilterb !NameFiltera +LineRangeFilter   Y  `"L|Cq6{G


T
			n	4Np<
]#FNu]F7&nS5"}oM;!             7 ;IncrementExistingKeysBy6 )EventsListener 5 ASimpleDebuggableConnection4 -NaiveDistributor3 LoopTest2 =DoubleCheckedLockingTest
1 Loop0 5DoubleCheckedLocking/ 9TransactionalMutexTest. /SpinlockMutexTest- )RedisMutexTest, +PredisMutexTest+ /PHPRedisMutexTest* MutexTest) 5MutexConcurrencyTest( /MemcacheMutexTest' 'LockMutexTest& %CASMutexTest% 1TransactionalMutex$ 'SpinlockMutex# )SemaphoreMutex" !RedisMutex! #PredisMutex  'PHPRedisMutex NoMutex Mutex 'MemcacheMutex )MemcachedMutex LockMutex !FlockMutex CASMutex -TimeoutException )MutexException 5LockReleaseException 5LockAcquireException. ]WordPress_Tests_XSS_EscapeOutputUnitTest2 eWordPress_Tests_WP_EnqueuedResourcesUnitTest8 qWordPress_Tests_WhiteSpace_OperatorSpacingUnitTestA WordPress_Tests_WhiteSpace_ControlStructureSpacingUnitTest= {WordPress_Tests_WhiteSpace_CastStructureSpacingUnitTest9 sWordPress_Tests_VIP_ValidatedSanitizedInputUnitTest0 aWordPress_Tests_VIP_TimezoneChangeUnitTest7 oWordPress_Tests_VIP_SuperGlobalInputUsageUnitTest- [WordPress_Tests_VIP_SlowDBQueryUnitTest6 mWordPress_Tests_VIP_SessionVariableUsageUnitTest7
 oWordPress_Tests_VIP_SessionFunctionsUsageUnitTest5	 kWordPress_Tests_VIP_RestrictedVariablesUnitTest5 kWordPress_Tests_VIP_RestrictedFunctionsUnitTest. ]WordPress_Tests_VIP_PostsPerPageUnitTest0 aWordPress_Tests_VIP_PluginMenuSlugUnitTest: uWordPress_Tests_VIP_FileSystemWritesDisallowUnitTest5 kWordPress_Tests_VIP_DirectDatabaseQueryUnitTest. ]WordPress_Tests_VIP_CronIntervalUnitTest1 cWordPress_Tests_VIP_AdminBarRemovalUnitTest< yWordPress_Tests_Variables_VariableRestrictionsUnitTest7  oWordPress_Tests_Variables_GlobalVariablesUnitTest0 aWordPress_Tests_PHP_YodaConditionsUnitTest3~ gWordPress_Tests_PHP_StrictComparisonsUnitTest6} mWordPress_Tests_PHP_DiscouragedFunctionsUnitTestB| WordPress_Tests_NamingConventions_ValidFunctionNameUnitTest,{ YWordPress_Tests_Files_FileNameUnitTest4z iWordPress_Tests_CSRF_NonceVerificationUnitTest4y iWordPress_Tests_Classes_ValidClassNameUnitTestAx WordPress_Tests_Arrays_ArrayKeySpacingRestrictionsUnitTest5w kWordPress_Tests_Arrays_ArrayDeclarationUnitTestAv WordPress_Tests_Arrays_ArrayAssignmentRestrictionsUnitTest,u YWordPress_Sniffs_XSS_EscapeOutputSniff0t aWordPress_Sniffs_WP_EnqueuedResourcesSniff6s mWordPress_Sniffs_WhiteSpace_OperatorSpacingSniff>r }WordPress_Sniffs_WhiteSpace_ControlStructureSpacingSniff;q wWordPress_Sniffs_WhiteSpace_CastStructureSpacingSniff7p oWordPress_Sniffs_VIP_ValidatedSanitizedInputSniff.o ]WordPress_Sniffs_VIP_TimezoneChangeSniff5n kWordPress_Sniffs_VIP_SuperGlobalInputUsageSniff+m WWordPress_Sniffs_VIP_SlowDBQuerySniff4l iWordPress_Sniffs_VIP_SessionVariableUsageSniff5k kWordPress_Sniffs_VIP_SessionFunctionsUsageSniff3j gWordPress_Sniffs_VIP_RestrictedVariablesSniff3i gWordPress_Sniffs_VIP_RestrictedFunctionsSniff,h YWordPress_Sniffs_VIP_PostsPerPageSniff.g ]WordPress_Sniffs_VIP_PluginMenuSlugSniff8f qWordPress_Sniffs_VIP_FileSystemWritesDisallowSniff3e gWordPress_Sniffs_VIP_DirectDatabaseQuerySniff,d YWordPress_Sniffs_VIP_CronIntervalSniff/c _WordPress_Sniffs_VIP_AdminBarRemovalSniff:b uWordPress_Sniffs_Variables_VariableRestrictionsSniff5a kWordPress_Sniffs_Variables_GlobalVariablesSniff.` ]WordPress_Sniffs_PHP_YodaConditionsSniff1_ cWordPress_Sniffs_PHP_StrictComparisonsSniff   P hO6veU?.{gN5nV<"y_C%







s
_
K
5

					v	`	I	6	"	|XD-	xaI, yaJ3xdSC*kP='jWA(oV< {hP  Z )ZSetRangeByLexY ZSetRangeX %ZSetLexCountW 7ZSetIntersectionStoreV +ZSetIncrementByU ZSetCountT +ZSetCardinalityS ZSetAddR -TransactionWatchQ 1TransactionUnwatchP -TransactionMultiO +TransactionExecN 1TransactionDiscardM %StringSubstrL %StringStrlenK )StringSetRangeJ /StringSetPreserveI ?StringSetMultiplePreserveH /StringSetMultipleG +StringSetExpireF %StringSetBitE StringSetD 9StringPreciseSetExpireC 9StringIncrementByFloatB /StringIncrementByA +StringIncrement@ %StringGetSet? )StringGetRange> /StringGetMultiple= %StringGetBit< StringGet; /StringDecrementBy: +StringDecrement9 %StringBitPos8 #StringBitOp7 )StringBitCount6 %StringAppend5 'SetUnionStore4 SetUnion3 SetScan2 SetRemove1 +SetRandomMember0 SetPop/ SetMove. !SetMembers- #SetIsMember, 5SetIntersectionStore+ +SetIntersection* 1SetDifferenceStore) 'SetDifference( )SetCardinality' SetAdd& !ServerTime% 'ServerSlowlog$ 'ServerSlaveOf# )ServerShutdown" )ServerSentinel! %ServerScript  !ServerSave %ServerObject 'ServerMonitor )ServerLastSave )ServerInfoV26x !ServerInfo 3ServerFlushDatabase )ServerFlushAll 'ServerEvalSHA !ServerEval 1ServerDatabaseSize %ServerConfig 'ServerCommand %ServerClient 5ServerBackgroundSave  AServerBackgroundRewriteAOF 'ScriptCommand !RawCommand  APubSubUnsubscribeByPattern /PubSubUnsubscribe =PubSubSubscribeByPattern +PubSubSubscribe
 %PubSubPubsub	 'PubSubPublish ListTrim ListSet !ListRemove ListRange 'ListPushTailX %ListPushTail 'ListPushHeadX %ListPushHead!  CListPopLastPushHeadBlocking 3ListPopLastPushHead~ 3ListPopLastBlocking} #ListPopLast| 5ListPopFirstBlocking{ %ListPopFirstz !ListLengthy !ListInsertx ListIndexw KeyTypev 'KeyTimeToLiveu KeySortt KeyScans !KeyRestorer /KeyRenamePreserveq KeyRenamep KeyRandomo 5KeyPreciseTimeToLiven 1KeyPreciseExpireAtm -KeyPreciseExpirel !KeyPersistk KeyMovej !KeyMigratei KeyKeysh #KeyExpireAtg KeyExpiref KeyExistse KeyDumpd KeyDeletec -HyperLogLogMergeb -HyperLogLogCounta )HyperLogLogAdd` !HashValues_ -HashStringLength^ +HashSetPreserve] +HashSetMultiple\ HashSet[ HashScanZ !HashLengthY HashKeysX 5HashIncrementByFloatW +HashIncrementByV +HashGetMultipleU !HashGetAllT HashGetS !HashExistsR !HashDeleteQ -ConnectionSelectP )ConnectionQuitO )ConnectionPingN )ConnectionEchoM )ConnectionAuthL CommandK %SortedSetKeyJ SetKeyI ListKeyH KeyspaceG HashKeyF 3CursorBasedIteratorE CRC16D !KetamaRingC HashRingB 1EmptyRingExceptionA 'RedisStrategy@ )PredisStrategy? +ClusterStrategy> +PredisException= 7NotSupportedException< 9CommunicationException; +ClientException: Client9 !Autoloader8 1HashMultipleGetAll   W cI*	hG-xgS0zjL5#hO4





|
a
I
$

							x	]	E	4	oS?/vZH4%mU=#t`N=$~mZG2!nS?.qT7nW                 y 'PubSubPublishx ListTrimw ListSetv !ListRemoveu ListRanget 'ListPushTailXs %ListPushTailr 'ListPushHeadXq %ListPushHead!p CListPopLastPushHeadBlockingo 3ListPopLastPushHeadn 3ListPopLastBlockingm #ListPopLastl 5ListPopFirstBlockingk %ListPopFirstj !ListLengthi !ListInserth ListIndexg KeyTypef 'KeyTimeToLivee KeySortd KeyScanc !KeyRestoreb /KeyRenamePreservea KeyRename` KeyRandom_ 5KeyPreciseTimeToLive^ 1KeyPreciseExpireAt] -KeyPreciseExpire\ !KeyPersist[ KeyMoveZ !KeyMigrateY KeyKeysX #KeyExpireAtW KeyExpireV KeyExistsU KeyDumpT KeyDeleteS -HyperLogLogMergeR -HyperLogLogCountQ )HyperLogLogAddP !HashValuesO -HashStringLengthN +HashSetPreserveM +HashSetMultipleL HashSetK HashScanJ !HashLengthI HashKeysH 5HashIncrementByFloatG +HashIncrementByF +HashGetMultipleE !HashGetAllD HashGetC !HashExistsB !HashDeleteA -ConnectionSelect@ )ConnectionQuit? )ConnectionPing> )ConnectionEcho= )ConnectionAuth< Command; %SortedSetKey: SetKey9 ListKey8 Keyspace7 HashKey6 3CursorBasedIterator5 CRC164 !KetamaRing3 HashRing2 1EmptyRingException1 'RedisStrategy0 )PredisStrategy/ +ClusterStrategy. +PredisException- 7NotSupportedException, 9CommunicationException+ +ClientException* Client) !Autoloader( 1HashMultipleGetAll' ;IncrementExistingKeysBy& )EventsListener % ASimpleDebuggableConnection$ -NaiveDistributor# )MultiExecState" MultiExec! ?AbortedMultiExecException  Handler )MultiBulkTuple /MultiBulkIterator MultiBulk Status +ServerException Error 3ReplicationStrategy )DispatcherLoop Consumer -AbstractConsumer! CStreamableMultiBulkResponse )StatusResponse /MultiBulkResponse +IntegerResponse 'ErrorResponse %BulkResponse )ResponseReader /RequestSerializer /ProtocolProcessor  ACompositeProtocolProcessor /ProtocolException
 +RedisVersion300	 +RedisVersion280 +RedisVersion260 +RedisVersion240 +RedisVersion220 +RedisVersion200 'RedisUnstable %RedisProfile Factory Pipeline  'FireAndForget 5ConnectionErrorProof~ Atomic} Consumer| %RedisCluster{ 'PredisClusterz 9MasterSlaveReplicationy -WebdisConnectionx -StreamConnectionw ?PhpiredisStreamConnectionv ?PhpiredisSocketConnectionu !Parameterst Factorys 3ConnectionExceptionr ?CompositeStreamConnectionq 1AbstractConnectionp /ReplicationOptiono 'ProfileOptionn %PrefixOptionm Optionsl -ExceptionsOptionk ;ConnectionFactoryOptionj 'ClusterOptioni )ProcessorChainh 1KeyPrefixProcessorg )ZSetUnionStoref ZSetScoree ZSetScand +ZSetReverseRankc ;ZSetReverseRangeByScoreb 7ZSetReverseRangeByLexa -ZSetReverseRange` 9ZSetRemoveRangeByScore_ 7ZSetRemoveRangeByRank^ 5ZSetRemoveRangeByLex] !ZSetRemove\ ZSetRank[ -ZSetRangeByScore   N p\E!yaD0 ybK7'|k[B/hU?$





o
Y
@
%
						n	T	8		hN<(
qXF3nW< u[A!
zdM4x]B*r`H+yfN                   )MultiExecState MultiExec ?AbortedMultiExecException Handler )MultiBulkTuple /MultiBulkIterator MultiBulk Status +ServerException
 Error	 3ReplicationStrategy )DispatcherLoop Consumer -AbstractConsumer! CStreamableMultiBulkResponse )StatusResponse /MultiBulkResponse +IntegerResponse 'ErrorResponse  %BulkResponse )ResponseReader~ /RequestSerializer} /ProtocolProcessor | ACompositeProtocolProcessor{ /ProtocolExceptionz +RedisVersion300y +RedisVersion280x +RedisVersion260w +RedisVersion240v +RedisVersion220u +RedisVersion200t 'RedisUnstables %RedisProfiler Factoryq Pipelinep 'FireAndForgeto 5ConnectionErrorProofn Atomicm Consumerl %RedisClusterk 'PredisClusterj 9MasterSlaveReplicationi -WebdisConnectionh -StreamConnectiong ?PhpiredisStreamConnectionf ?PhpiredisSocketConnectione !Parametersd Factoryc 3ConnectionExceptionb ?CompositeStreamConnectiona 1AbstractConnection` /ReplicationOption_ 'ProfileOption^ %PrefixOption] Options\ -ExceptionsOption[ ;ConnectionFactoryOptionZ 'ClusterOptionY )ProcessorChainX 1KeyPrefixProcessorW )ZSetUnionStoreV ZSetScoreU ZSetScanT +ZSetReverseRankS ;ZSetReverseRangeByScoreR 7ZSetReverseRangeByLexQ -ZSetReverseRangeP 9ZSetRemoveRangeByScoreO 7ZSetRemoveRangeByRankN 5ZSetRemoveRangeByLexM !ZSetRemoveL ZSetRankK -ZSetRangeByScoreJ )ZSetRangeByLexI ZSetRangeH %ZSetLexCountG 7ZSetIntersectionStoreF +ZSetIncrementByE ZSetCountD +ZSetCardinalityC ZSetAddB -TransactionWatchA 1TransactionUnwatch@ -TransactionMulti? +TransactionExec> 1TransactionDiscard= %StringSubstr< %StringStrlen; )StringSetRange: /StringSetPreserve9 ?StringSetMultiplePreserve8 /StringSetMultiple7 +StringSetExpire6 %StringSetBit5 StringSet4 9StringPreciseSetExpire3 9StringIncrementByFloat2 /StringIncrementBy1 +StringIncrement0 %StringGetSet/ )StringGetRange. /StringGetMultiple- %StringGetBit, StringGet+ /StringDecrementBy* +StringDecrement) %StringBitPos( #StringBitOp' )StringBitCount& %StringAppend% 'SetUnionStore$ SetUnion# SetScan" SetRemove! +SetRandomMember  SetPop SetMove !SetMembers #SetIsMember 5SetIntersectionStore +SetIntersection 1SetDifferenceStore 'SetDifference )SetCardinality SetAdd !ServerTime 'ServerSlowlog 'ServerSlaveOf )ServerShutdown )ServerSentinel %ServerScript !ServerSave %ServerObject 'ServerMonitor )ServerLastSave )ServerInfoV26x !ServerInfo
 3ServerFlushDatabase	 )ServerFlushAll 'ServerEvalSHA !ServerEval 1ServerDatabaseSize %ServerConfig 'ServerCommand %ServerClient 5ServerBackgroundSave  AServerBackgroundRewriteAOF  'ScriptCommand !RawCommand ~ APubSubUnsubscribeByPattern} /PubSubUnsubscribe| =PubSubSubscribeByPattern{ +PubSubSubscribez %PubSubPubsub   9 qO7iF&qT/nK,qS-






j
P
7
								\	3	|hO1 {^<yWB3}bH0pZ<%t]H8!vU>/nR9           & +DatabaseManager% 1ConnectionResolver$ !Connection# Manager" )EncryptCookies ! AAddQueuedCookiesToResponse  7CookieServiceProvider CookieJar 1ScheduleRunCommand Schedule Event 'CallbackEvent ;ScheduleServiceProvider Parser #OutputStyle -GeneratorCommand Command #Application %ClearCommand /CacheTableCommand #XCacheStore 'WinCacheStore TagSet #TaggedCache 'TaggableStore !Repository -RedisTaggedCache !RedisStore
 #RateLimiter	 NullStore )MemcachedStore 1MemcachedConnector FileStore 'DatabaseStore 5CacheServiceProvider %CacheManager !ArrayStore !ApcWrapper  ApcStore -MarshalException~ !Dispatcher} 1BusServiceProvider| =BroadcastServiceProvider{ -BroadcastManagerz )BroadcastEventy -RedisBroadcasterx /PusherBroadcasterw )LogBroadcaster"v E
PasswordResetServiceProvideru )
PasswordBrokert ;
DatabaseTokenRepositorys ?	AuthenticateWithBasicAuthr 1ClearResetsCommandq Guardp #GenericUsero =GeneratorServiceProvidern 5EloquentUserProviderm 5DatabaseUserProviderl 3AuthServiceProviderk #AuthManager
j Gatei 3LumenTestController&h MLumenTestParameterizedMiddlewareg =LumenTestPlainMiddlewaref 3LumenTestMiddlewaree =LumenTestServiceProviderd -LumenTestServicec #ExampleTestb )TestControllera TestCase` %UrlGenerator_ !Controller^ Closure] 5 CacheServiceProvider\ +ResponseFactory[ !RedirectorZ +VerifyCsrfTokenY 5EventServiceProviderX ComposerW HandlerV KernelU %ServeCommandT #ApplicationS =MockDelegateFunctionTest%R KMockDelegateFunctionBuilderTest!Q CMockDelegateFunctionBuilderP /MockNamespaceTestO #ExampleTestN SpyTest	M SpyL !InvocationK MockTestJ 7MockDefiningOrderTestI ?MockCaseInsensitivityTestH +MockBuilderTestG -AbstractMockTestF ;SleepEnvironmentBuilderE RecorderD %MockRegistryC +MockEnvironmentB 5MockEnabledExceptionA #MockBuilder
@ Mock? 9ParameterBuilder56Test"> EParameterBuilderBefore56Test= 5ParameterBuilderTest< ?MockFunctionGeneratorTest; -ParameterBuilder: 7MockFunctionGenerator9 9MicrotimeConverterTest8 /IncrementableTest 7 AFixedMicrotimeFunctionTest6 7FixedDateFunctionTest5 ?AbstractSleepFunctionTest4 )UsleepFunction3 'SleepFunction2 1MicrotimeConverter1 1FixedValueFunction0 9FixedMicrotimeFunction/ /FixedDateFunction. 7AbstractSleepFunction!- CSleepEnvironmentBuilderTest, 3MockEnvironmentTest+ ;SleepEnvironmentBuilder* +MockEnvironment) #PHPMockTest( 3MockObjectProxyTest' -MockDisablerTest& +MockObjectProxy% %MockDisabler$ 9DefaultArgumentRemover# ?vfsStreamStructureVisitor" 7vfsStreamPrintVisitor! =vfsStreamAbstractVisitor  -vfsStreamWrapper 'vfsStreamFile 1vfsStreamException 1vfsStreamDirectory  AvfsStreamContainerIterator )vfsStreamBlock =vfsStreamAbstractContent vfsStream Quota %DotDirectory 9StringBasedFileContent 3SeekableFileContent -LargeFileContent   S w_O2eP8 veQ@(veM='jW=+






i
N
;
"
							u	[	D	1	uV7!vS@r[H6#iN7 oT<&raTB2!lT4%dS               D 4FactoryC =4DatabasePresenceVerifierB !3Translator A A3TranslationServiceProvider@ !3FileLoader? %2StartSession> 31SessionTableCommand= 90TokenMismatchException< 0Store; 90SessionServiceProvider: )0SessionManager9 10FileSessionHandler8 )0EncryptedStore7 90DatabaseSessionHandler6 50CookieSessionHandler5 ;0CommandsServiceProvider4 =0CacheBasedSessionHandler3 /SyncJob2 /SqsJob1 /RedisJob	0 /Job/ /IronJob. #/DatabaseJob- '/BeanstalkdJob, 9.IlluminateQueueClosure+ ?-DatabaseFailedJobProvider* #,WorkCommand) %,TableCommand( -,SubscribeCommand' %,RetryCommand& ),RestartCommand% /,ListFailedCommand$ ',ListenCommand# 3,ForgetFailedCommand" 1,FlushFailedCommand! 1,FailedTableCommand  '+SyncConnector %+SqsConnector )+RedisConnector '+NullConnector '+IronConnector /+DatabaseConnector 3+BeanstalkdConnector *Manager )Worker )SyncQueue )SqsQueue !)RedisQueue 5)QueueServiceProvider %)QueueManager )Queue )NullQueue )Listener )IronQueue ')DatabaseQueue 9)ConsoleServiceProvider /)CallQueuedHandler +)BeanstalkdQueue
 ;(PipelineServiceProvider	 (Pipeline	 (Hub 'UrlWindow# G'SimpleBootstrapThreePresenter 'Paginator ?'PaginationServiceProvider 5'LengthAwarePaginator ;'BootstrapThreePresenter /'AbstractPaginator  !&FrameGuard %Response~ %Request} -%RedirectResponse| %%JsonResponse{ 7$PostTooLargeExceptionz 7$HttpResponseExceptiony 3#HashServiceProviderx %#BcryptHasherw 5"EventServiceProviderv !"Dispatcheru /"CallQueuedHandlert +!McryptEncrypters ?!EncryptionServiceProviderr !Encrypterq '!BaseEncrypterp - SqlServerGrammaro ' SQLiteGrammarn + PostgresGrammarm % MySqlGrammarl  Grammark %MySqlBuilderj Builderi Blueprinth 1SqlServerProcessorg +SQLiteProcessorf Processore /PostgresProcessord )MySqlProcessorc -SqlServerGrammarb 'SQLiteGrammara +PostgresGrammar` %MySqlGrammar_ Grammar^ !JoinClause] !Expression\ Builder[ MigratorZ -MigrationCreatorY Migration!X CDatabaseMigrationRepositoryW RelationV PivotU #MorphToManyT MorphToS !MorphPivotR )MorphOneOrManyQ MorphOneP MorphManyO %HasOneOrManyN HasOneM )HasManyThroughL HasManyK 'BelongsToManyJ BelongsToI /SoftDeletingScopeH 3QueueEntityResolverG 9ModelNotFoundExceptionF ModelE ;MassAssignmentExceptionD )FactoryBuilderC FactoryB !CollectionA Builder@ /SeederMakeCommand? #SeedCommand> 'StatusCommand= +RollbackCommand< %ResetCommand; )RefreshCommand: 1MigrateMakeCommand9 )MigrateCommand8 )InstallCommand7 #BaseCommand6 1SqlServerConnector5 +SQLiteConnector4 /PostgresConnector3 )MySqlConnector2 Connector1 /ConnectionFactory0 3SqlServerConnection/ -SQLiteConnection. 3SeedServiceProvider- Seeder, )QueryException+ 1PostgresConnection* +MySqlConnection) =MigrationServiceProvider( Grammar' ;DatabaseServiceProvider   R yaN:)zhJ1lR0{bJ4 
sYA'






v
]
F
3
							l	O	4		{jWF0 gH1wV4dD%wV6v[;'lN2iR                            [ 'XServerBagTestZ -XResponseTestCaseY -XStringableObjectX %XResponseTestW 7XResponseHeaderBagTestV !XNewRequestU 3XRequestContentProxyT #XRequestTestS -XRequestStackTestR 1XRequestMatcherTestQ 5XRedirectResponseTestP -XParameterBagTestO 9XJsonSerializableObjectN -XJsonResponseTestM #XIpUtilsTestL 'XHeaderBagTestK #XFileBagTest"J EXExpressionRequestMatcherTestI !XCookieTestH 9XBinaryFileResponseTestG /XApacheRequestTestF -XAcceptHeaderTestE 5XAcceptHeaderItemTestD 3WSessionHandlerProxyC #WNativeProxyB 'WAbstractProxyA ;VPhpBridgeSessionStorage@ 5VNativeSessionStorage? 9VMockFileSessionStorage> ;VMockArraySessionStorage= #VMetadataBag< =UWriteCheckSessionHandler; /UPdoSessionHandler: 1UNullSessionHandler9 5UNativeSessionHandler8 =UNativeFileSessionHandler7 7UMongoDbSessionHandler6 9UMemcacheSessionHandler5 ;UMemcachedSessionHandler4 ;ULegacyPdoSessionHandler3 TSession2 SFlashBag1 1SAutoExpireFlashBag0 9RNamespacedAttributeBag/ %RAttributeBag. +QMimeTypeGuesser- =QMimeTypeExtensionGuesser, ;QFileinfoMimeTypeGuesser+ ?QFileBinaryMimeTypeGuesser* -QExtensionGuesser) %PUploadedFile
( PFile' +OUploadException& ;OUnexpectedTypeException% 7OFileNotFoundException$ 'OFileException# 7OAccessDeniedException" -NStreamedResponse! NServerBag  /NResponseHeaderBag NResponse %NRequestStack )NRequestMatcher NRequest -NRedirectResponse %NParameterBag %NJsonResponse NIpUtils NHeaderBag NFileBag =NExpressionRequestMatcher NCookie 1NBinaryFileResponse 'NApacheRequest -NAcceptHeaderItem %NAcceptHeader	 MStd 'LMarkBasedTest /LGroupPosBasedTest 3LGroupCountBasedTest )LDispatcherTest
 1LCharCountBasedTest	 1LRegexBasedAbstract LMarkBased 'LGroupPosBased +LGroupCountBased )LCharCountBased 1KRegexBasedAbstract KMarkBased 'KGroupPosBased +KGroupCountBased  )KCharCountBased )JRouteCollector~ JRoute} /JBadRouteException| )ICarbonInterval{ ICarbonz 'HYearFieldTesty )HMonthFieldTestx -HMinutesFieldTestw )HHoursFieldTestv -HFieldFactoryTestu 1HDayOfWeekFieldTestt 3HDayOfMonthFieldTests 1HCronExpressionTestr /HAbstractFieldTestq GYearFieldp !GMonthFieldo %GMinutesFieldn !GHoursFieldm %GFieldFactoryl )GDayOfWeekFieldk +GDayOfMonthFieldj )GCronExpressioni 'GAbstractFieldh 3ELumenTestController&g MELumenTestParameterizedMiddlewaref =ELumenTestPlainMiddlewaree 3ELumenTestMiddlewared =ELumenTestServiceProviderc -ELumenTestServiceb #EExampleTesta )DTestController` CTestCase_ %BUrlGenerator^ !BController] BClosure\ 5ACacheServiceProvider[ +@ResponseFactoryZ !@RedirectorY +?VerifyCsrfTokenX 5>EventServiceProviderW =ComposerV <HandlerU ;KernelT %:ServeCommandS #9ApplicationR 98ShareErrorsFromSessionQ 37ViewServiceProvider
P 7ViewO )7FileViewFinderN 7FactoryM !7ExpressionL 6PhpEngineK )6EngineResolverJ 6EngineI )6CompilerEngineH 5CompilerG '5BladeCompilerF 4ValidatorE ?4ValidationServiceProvider    tP0tN,xT2scH3gK&	




~
a
C
&
						d	B	/	iM3nX:%
oV4}bK&h?vY@}^QB.	kO>,^ 5rRedisProfilerStorage] rProfiler\ rProfile[ 1rPdoProfilerStorageZ 5rMysqlProfilerStorageY 9rMongoDbProfilerStorageX ;rMemcacheProfilerStorageW =rMemcachedProfilerStorageV 3rFileProfilerStorage!U CrBaseMemcacheProfilerStorageT !qNullLoggerS pStore	R pSsiQ 7pResponseCacheStrategyP pHttpCacheO =pEsiResponseCacheStrategy	N pEsiM 3oSsiFragmentRendererL =oRoutableFragmentRendererK 9oInlineFragmentRendererJ =oHIncludeFragmentRendererI +oFragmentHandlerH 3oEsiFragmentRenderer'G OoAbstractSurrogateFragmentRenderer'F OnUnsupportedMediaTypeHttpException&E MnUnprocessableEntityHttpExceptionD ?nUnauthorizedHttpException"C EnTooManyRequestsHttpException%B KnServiceUnavailableHttpException'A OnPreconditionRequiredHttpException%@ KnPreconditionFailedHttpException? 7nNotFoundHttpException > AnNotAcceptableHttpException#= GnMethodNotAllowedHttpException!< CnLengthRequiredHttpException; 'nHttpException: /nGoneHttpException9 7nConflictHttpException8 ;nBadRequestHttpException7 ?nAccessDeniedHttpException6 1mTranslatorListener5 3mTestSessionListener4 /mSurrogateListener3 =mStreamedResponseListener2 +mSessionListener1 3mSaveSessionListener0 )mRouterListener/ -mResponseListener. -mProfilerListener- )mLocaleListener, -mFragmentListener+ /mExceptionListener* #mEsiListener) 5mErrorsLoggerListener( %mDumpListener' 7mDebugHandlersListener& ?mAddRequestFormatsListener% /lPostResponseEvent$ #lKernelEvent"# ElGetResponseForExceptionEvent)" SlGetResponseForControllerResultEvent! -lGetResponseEvent  1lFinishRequestEvent 3lFilterResponseEvent 7lFilterControllerEvent 7kRegisterListenersPass% KkMergeExtensionConfigurationPass  AkLazyLoadingFragmentHandler 5kFragmentRendererPass kExtension =kContainerAwareHttpKernel 7kConfigurableExtension 7kAddClassesToCachePass =jTraceableEventDispatcher -jExceptionHandler %jErrorHandler 'iValueExporter /hTimeDataCollector 3hRouterDataCollector 5hRequestDataCollector 3hMemoryDataCollector 3hLoggerDataCollector 9hExceptionDataCollector 1hEventDataCollector
 /hDumpDataCollector	 'hDataCollector 3hConfigDataCollector! CgTraceableControllerResolver 1gControllerResolver 3gControllerReference #fFileLocator 7fEnvParametersResource eUriSigner %eKernelEvents  eKernel !eHttpKernel~ eClient} 5dCacheWarmerAggregate| #dCacheWarmer{ /cChainCacheClearerz bBundley ;`SessionHandlerProxyTestx +`NativeProxyTestw /`AbstractProxyTest*v U`ConcreteSessionHandlerInterfaceProxyu '`ConcreteProxy!t C_PhpBridgeSessionStorageTests =_NativeSessionStorageTest r A_MockFileSessionStorageTest!q C_MockArraySessionStorageTestp +_MetadataBagTest"o E^WriteCheckSessionHandlerTestn ^MockPdom 7^PdoSessionHandlerTestl 9^NullSessionHandlerTestk =^NativeSessionHandlerTest"j E^NativeFileSessionHandlerTesti ?^MongoDbSessionHandlerTest h A^MemcacheSessionHandlerTest!g C^MemcachedSessionHandlerTest!f C^LegacyPdoSessionHandlerTeste #]SessionTestd %\FlashBagTestc 9\AutoExpireFlashBagTest b A[NamespacedAttributeBagTesta -[AttributeBagTest` %ZMimeTypeTest_ -YUploadedFileTest^ YFileTest] YFakeFile\ 5XStreamedResponseTest   & sZF.kJ3mR,vO,|^B$




k
I
*
					z	d	E	.	uhB5$qP*uS0{X(|eM.xZ>cK%gF&                            _ 9AccountStatusException^ ;AccountExpiredException] 7AccessDeniedException \ AAuthenticationFailureEvent[ 3AuthenticationEventZ 3UserPasswordEncoderY =PlaintextPasswordEncoderX 7Pbkdf2PasswordEncoder"W EMessageDigestPasswordEncoderV )EncoderFactoryU 7BCryptPasswordEncoderT 3BasePasswordEncoderS RoleVoterR 1RoleHierarchyVoterQ +ExpressionVoterP 1AuthenticatedVoterO 'AbstractVoter N AExpressionLanguageProviderM 1ExpressionLanguageL 5AuthorizationCheckerK 7AccessDecisionManagerJ +SecurityContextI SecurityH 5AuthenticationEventsG %TokenStorageF 7UsernamePasswordTokenE +RememberMeTokenD 7PreAuthenticatedTokenC )AnonymousTokenB 'AbstractTokenA +PersistentToken@ 7InMemoryTokenProvider ? AUserAuthenticationProvider"> ESimpleAuthenticationProvider&= MRememberMeAuthenticationProvider,< YPreAuthenticatedAuthenticationProvider; ?DaoAuthenticationProvider%: KAnonymousAuthenticationProvider!9 CAuthenticationTrustResolver#8 GAuthenticationProviderManager7 RedisMock6 %MemcacheMock5 'MemcachedMock4 ?SqliteProfilerStorageTest3 =RedisProfilerStorageTest2 %ProfilerTest 1 AMongoDbProfilerStorageTest-0 [MongoDbProfilerStorageTestDataCollector!/ CDummyMongoDbProfilerStorage!. CMemcacheProfilerStorageTest"- EMemcachedProfilerStorageTest, ;FileProfilerStorageTest!+ CAbstractProfilerStorageTest* 9TestMultipleHttpKernel) )TestHttpKernel( StoreTest' SsiTest& /HttpCacheTestCase% 'HttpCacheTest$ EsiTest	# Foo"" ERoutableFragmentRendererTest	! Bar   AInlineFragmentRendererTest" EHIncludeFragmentRendererTest 3FragmentHandlerTest ;EsiFragmentRendererTest 3TestEventDispatcher !TestClient 'KernelForTest 7KernelForOverrideName %FooBarBundle 9ExtensionPresentBundle ?ExtensionPresentExtension !FooCommand !BarCommand ;ExtensionNotValidBundle  AExtensionNotValidExtension 7ExtensionLoadedBundle =ExtensionLoadedExtension 7~ExtensionAbsentBundle 9}TranslatorListenerTest ;}TestSessionListenerTest 7}SurrogateListenerTest 1}RouterListenerTest
 5}ResponseListenerTest	 5}ProfilerListenerTest 1}LocaleListenerTest 5}FragmentListenerTest# G}TestKernelThatThrowsException !}TestKernel !}TestLogger 7}ExceptionListenerTest !}MockDumper !}MockCloner  -}DumpListenerTest ?}DebugHandlersListenerTest#~ G}AddRequestFormatsListenerTest)} S|MergeExtensionConfigurationPassTest$| I|LazyLoadingFragmentHandlerTest{ +|RendererServicez =|FragmentRendererPassTest"y E|ContainerAwareHttpKernelTest"x E{TraceableEventDispatcherTestw /zValueExporterTestv 7yTimeDataCollectorTestu =yRequestDataCollectorTestt ;yMemoryDataCollectorTests ;yLoggerDataCollectorTest r AyExceptionDataCollectorTestq 7yDumpDataCollectorTestp 'yKernelForTesto ;yConfigDataCollectorTestn 9xControllerResolverTestm +wFileLocatorTestl ?wEnvParametersResourceTestk 'vUriSignerTestj )vTestHttpKerneli vLoggerh !vKernelTestg !vControllerf )vHttpKernelTeste !vClientTestd +uTestCacheWarmerc +uCacheWarmerTestb =uCacheWarmerAggregateTesta 7tChainCacheClearerTest` !sBundleTest_ 7rSqliteProfilerStorage   ' bDy`AzlU=a3kH+




i
L
,
						s	]	3	dR6kW.pZ;+eC2 sWB%jQ0{jZ>"|n[J:'       k Parameterj Methodi Helpersh ClassType
g Neonf Exceptione Entityd Encoderc Decoderb %PhpExtensiona +InjectExtension` 3ExtensionsExtension_ #DIExtension^ 1DecoratorExtension] 1ConstantsExtension\ Loader[ HelpersZ !PhpAdapterY #NeonAdapterX !IniAdapterW StatementV /ServiceDefinitionU 'PhpReflectionT HelpersS =ServiceCreationExceptionR ;MissingServiceExceptionQ +ContainerLoaderP -ContainerFactoryO -ContainerBuilderN ContainerM /CompilerExtensionL CompilerK )ContainerPanelJ %PhpExtensionI +InjectExtensionH 3ExtensionsExtensionG #DIExtensionF 1DecoratorExtensionE 1ConstantsExtensionD LoaderC HelpersB !PhpAdapterA #NeonAdapter@ !IniAdapter? Statement> /ServiceDefinition= 'PhpReflection< Helpers; =ServiceCreationException: ;MissingServiceException9 +ContainerLoader8 -ContainerFactory7 -ContainerBuilder6 Container5 /CompilerExtension4 Compiler3 )ContainerPanel2 Dotenv1 7UserPasswordValidator0 %UserPassword/ #StringUtils. %SecureRandom- !ClassUtils, #UserChecker
+ User* 5InMemoryUserProvider) /ChainUserProvider( ?UserPasswordValidatorTest%' KLegacyUserPasswordValidatorTest& !TestObject% +StringUtilsTest$ -SecureRandomTest# !TestObject" )ClassUtilsTest! UserTest  +UserCheckerTest =InMemoryUserProviderTest 7ChainUserProviderTest 1SwitchUserRoleTest RoleTest /RoleHierarchyTest ?LegacySecurityContextTest# GUsernameNotFoundExceptionTest ;UserPasswordEncoderTest" EPlaintextPasswordEncoderTest ?Pbkdf2PasswordEncoderTest& MMessageDigestPasswordEncoderTest %EncAwareUser 'SomeChildUser SomeUser 1EncoderFactoryTest ?BCryptPasswordEncoderTest ;BasePasswordEncoderTest +PasswordEncoder 'RoleVoterTest 9RoleHierarchyVoterTest 3ExpressionVoterTest
 9AuthenticatedVoterTest	 9ExpressionLanguageTest =AuthorizationCheckerTest ?AccessDecisionManagerTest -TokenStorageTest ?UsernamePasswordTokenTest 3RememberMeTokenTest ?PreAuthenticatedTokenTest 1AnonymousTokenTest /AbstractTokenTest  'ConcreteToken TestUser~ 3PersistentTokenTest} ?InMemoryTokenProviderTest$| IUserAuthenticationProviderTest*{ URememberMeAuthenticationProviderTest0z aPreAuthenticatedAuthenticationProviderTest#y GDaoAuthenticationProviderTest)x SAnonymousAuthenticationProviderTest%w KAuthenticationTrustResolverTest'v OAuthenticationProviderManagerTestu )SwitchUserRolet 'RoleHierarchy
s Roler ?UsernameNotFoundExceptionq =UnsupportedUserExceptionp 9TokenNotFoundException!o CSessionUnavailableExceptionn -RuntimeExceptionm ?ProviderNotFoundExceptionl 7NonceExpiredExceptionk +LogoutExceptionj +LockedExceptioni ?InvalidCsrfTokenExceptionh =InvalidArgumentException)g SInsufficientAuthenticationExceptionf /DisabledException!e CCredentialsExpiredExceptiond 5CookieTheftExceptionc ;BadCredentialsException$b IAuthenticationServiceExceptiona ;AuthenticationException0` aAuthenticationCredentialsNotFoundException   = zaN;+l^OA,	`C$kM=*r`P;)






u
Y
A
+

									u	]	A	*		dQ< p[PE:/f4c/{V5nBY4uX=              /Swift_MemorySpool~ 3Swift_MailTransport} %Swift_Mailer)| SSwift_Mailer_ArrayRecipientIterator!{ CSwift_LoadBalancedTransport.z ]Swift_KeyCache_SimpleKeyCacheInputStream!y CSwift_KeyCache_NullKeyCache!x CSwift_KeyCache_DiskKeyCache"w ESwift_KeyCache_ArrayKeyCachev /Swift_IoExceptionu #Swift_Imaget +Swift_FileSpools ;Swift_FailoverTransport*r USwift_Events_TransportExceptionEvent'q OSwift_Events_TransportChangeEvent(p QSwift_Events_SimpleEventDispatchero 9Swift_Events_SendEvent n ASwift_Events_ResponseEventm =Swift_Events_EventObjectl ?Swift_Events_CommandEventk )Swift_Encoding"j ESwift_Encoder_Rfc2231Encoderi ;Swift_Encoder_QpEncoder!h CSwift_Encoder_Base64Encoderg 1Swift_EmbeddedFilef ?Swift_DependencyExceptione ?Swift_DependencyContainerd ;Swift_ConfigurableSpool-c [Swift_CharacterStream_NgCharacterStream0b aSwift_CharacterStream_ArrayCharacterStream?a Swift_CharacterReaderFactory_SimpleCharacterReaderFactory&` MSwift_CharacterReader_Utf8Reader)_ SSwift_CharacterReader_UsAsciiReader3^ gSwift_CharacterReader_GenericFixedWidthReader.] ]Swift_ByteStream_TemporaryFileByteStream%\ KSwift_ByteStream_FileByteStream&[ MSwift_ByteStream_ArrayByteStream4Z iSwift_ByteStream_AbstractFilterableInputStreamY -Swift_AttachmentX MarkdownW MarkdownV CU CT CS CR #NeverLoadedQ LoggerP !TapPrinterO LoggerN %JUnitPrinterM )ConsolePrinterL 1ZendPhpInterpreterK #TestHandlerJ Runner	I JobH 1HhvmPhpInterpreterG #CommandLineF CliTesterE /TestCaseExceptionD TestCaseC HelpersB FileMockA #Environment@ Dumper? DomQuery> %DataProvider= +AssertException< Assert; 'HtmlGenerator: 1CloverXMLGenerator9 )AcceptIterator8 /AbstractGenerator7 PhpParser6 Collector5 C4 C3 C2 C1 #NeverLoaded0 Logger/ !TapPrinter. Logger- %JUnitPrinter, )ConsolePrinter+ 1ZendPhpInterpreter* #TestHandler) Runner	( Job' 1HhvmPhpInterpreter& #CommandLine% CliTester$ /TestCaseException# TestCase" Helpers! FileMock  #Environment Dumper DomQuery %DataProvider +AssertException Assert 'HtmlGenerator 1CloverXMLGenerator )AcceptIterator /AbstractGenerator PhpParser Collector Object 5StaticClassException =UnexpectedValueException 3OutOfRangeException =InvalidArgumentException  ADirectoryNotFoundException 7FileNotFoundException #IOException 7MemberAccessException 3DeprecatedException
 7NotSupportedException	 ;NotImplementedException 7InvalidStateException! CArgumentOutOfRangeException !Validators Strings Random Paginator #ObjectMixin
 Json  Image
 Html~ !FileSystem} 1AssertionException| +RegexpException{ 'JsonExceptionz ?UnknownImageFileExceptiony )ImageExceptionx DateTimew Callbackv Arraysu ArrayListt ArrayHashs +RecursiveFilterr Mapperq Filterp +CachingIteratoro Propertyn %PhpNamespacem !PhpLiterall PhpFile   Z  X!^BW-|_7pB



y
T
+
 				V	/	gAv:}GY*^8>M'n'                                   EY 	Swift_Mime_ContentEncoder_NativeQpContentEncoderAcceptanceTestCX Swift_Mime_ContentEncoder_Base64ContentEncoderAcceptanceTest)W SSwift_Mime_AttachmentAcceptanceTest!V CSwift_MessageAcceptanceTest/U _Swift_KeyCache_DiskKeyCacheAcceptanceTest0T aSwift_KeyCache_ArrayKeyCacheAcceptanceTest"S ESwift_EncodingAcceptanceTest0R aSwift_Encoder_Rfc2231EncoderAcceptanceTest+Q WSwift_Encoder_QpEncoderAcceptanceTest/P _Swift_Encoder_Base64EncoderAcceptanceTest&O MSwift_EmbeddedFileAcceptanceTest-N [Swift_DependencyContainerAcceptanceTestNM Swift_CharacterReaderFactory_SimpleCharacterReaderFactoryAcceptanceTest3L gSwift_ByteStream_FileByteStreamAcceptanceTest$K ISwift_AttachmentAcceptanceTestJ SwiftI )Swift_ValidateH =Swift_TransportException"G ESwift_Transport_StreamBuffer$F ISwift_Transport_SpoolTransport'E OSwift_Transport_SimpleMailInvoker'D OSwift_Transport_SendmailTransport#C GSwift_Transport_NullTransport#B GSwift_Transport_MailTransport+A WSwift_Transport_LoadBalancedTransport'@ OSwift_Transport_FailoverTransport$? ISwift_Transport_EsmtpTransport'> OSwift_Transport_Esmtp_AuthHandler5= kSwift_Transport_Esmtp_Auth_XOAuth2Authenticator3< gSwift_Transport_Esmtp_Auth_PlainAuthenticator2; eSwift_Transport_Esmtp_Auth_NTLMAuthenticator3: gSwift_Transport_Esmtp_Auth_LoginAuthenticator59 kSwift_Transport_Esmtp_Auth_CramMd5Authenticator+8 WSwift_Transport_AbstractSmtpTransport7 5Swift_SwiftException86 qSwift_StreamFilters_StringReplacementFilterFactory15 cSwift_StreamFilters_StringReplacementFilter44 iSwift_StreamFilters_ByteArrayReplacementFilter3 5Swift_SpoolTransport2 3Swift_SmtpTransport1 ?Swift_Signers_SMimeSigner"0 ESwift_Signers_OpenDKIMSigner#/ GSwift_Signers_DomainKeySigner. =Swift_Signers_DKIMSigner- 3Swift_SignedMessage, ;Swift_SendmailTransport"+ ESwift_RfcComplianceException* /Swift_Preferences#) GSwift_Plugins_ThrottlerPlugin*( USwift_Plugins_Reporters_HtmlReporter)' SSwift_Plugins_Reporters_HitReporter"& ESwift_Plugins_ReporterPlugin%% KSwift_Plugins_RedirectingPlugin'$ OSwift_Plugins_PopBeforeSmtpPlugin%# KSwift_Plugins_Pop_Pop3Exception!" CSwift_Plugins_MessageLogger&! MSwift_Plugins_Loggers_EchoLogger'  OSwift_Plugins_Loggers_ArrayLogger  ASwift_Plugins_LoggerPlugin% KSwift_Plugins_ImpersonatePlugin# GSwift_Plugins_DecoratorPlugin* USwift_Plugins_BandwidthMonitorPlugin# GSwift_Plugins_AntiFloodPlugin 3Swift_NullTransport )Swift_MimePart! CSwift_Mime_SimpleMimeEntity =Swift_Mime_SimpleMessage  ASwift_Mime_SimpleHeaderSet$ ISwift_Mime_SimpleHeaderFactory 3Swift_Mime_MimePart+ WSwift_Mime_Headers_UnstructuredHeader# GSwift_Mime_Headers_PathHeader, YSwift_Mime_Headers_ParameterizedHeader' OSwift_Mime_Headers_OpenDKIMHeader& MSwift_Mime_Headers_MailboxHeader- [Swift_Mime_Headers_IdentificationHeader# GSwift_Mime_Headers_DateHeader' OSwift_Mime_Headers_AbstractHeader. ]Swift_Mime_HeaderEncoder_QpHeaderEncoder2
 eSwift_Mime_HeaderEncoder_Base64HeaderEncoder	 1Swift_Mime_Grammar ;Swift_Mime_EmbeddedFile1 cSwift_Mime_ContentEncoder_RawContentEncoder5 kSwift_Mime_ContentEncoder_QpContentEncoderProxy0 aSwift_Mime_ContentEncoder_QpContentEncoder3 gSwift_Mime_ContentEncoder_PlainContentEncoder6 mSwift_Mime_ContentEncoder_NativeQpContentEncoder4 iSwift_Mime_ContentEncoder_Base64ContentEncoder 7Swift_Mime_Attachment  'Swift_Message   [  xI9G	oV<#	zQ-




r
D
				r	e	>	yQ-r<LzDW$`5S$j?            #4 GSwift_Signers_SMimeSignerTest&3 MSwift_Signers_OpenDKIMSignerTest"2 ESwift_Signers_DKIMSignerTest'1 OSwift_Plugins_ThrottlerPluginTest.0 ]Swift_Plugins_Reporters_HtmlReporterTest-/ [Swift_Plugins_Reporters_HitReporterTest&. MSwift_Plugins_ReporterPluginTest)- SSwift_Plugins_RedirectingPluginTest+, WSwift_Plugins_PopBeforeSmtpPluginTest*+ USwift_Plugins_Loggers_EchoLoggerTest+* WSwift_Plugins_Loggers_ArrayLoggerTest$) ISwift_Plugins_LoggerPluginTest'( OSwift_Plugins_DecoratorPluginTest.' ]Swift_Plugins_BandwidthMonitorPluginTest'& OSwift_Plugins_AntiFloodPluginTest%% KSwift_Mime_SimpleMimeEntityTest"$ ESwift_Mime_SimpleMessageTest$# ISwift_Mime_SimpleHeaderSetTest(" QSwift_Mime_SimpleHeaderFactoryTest! ;Swift_Mime_MimePartTest/  _Swift_Mime_Headers_UnstructuredHeaderTest' OSwift_Mime_Headers_PathHeaderTest0 aSwift_Mime_Headers_ParameterizedHeaderTest* USwift_Mime_Headers_MailboxHeaderTest1 cSwift_Mime_Headers_IdentificationHeaderTest' OSwift_Mime_Headers_DateHeaderTest2 eSwift_Mime_HeaderEncoder_QpHeaderEncoderTest6 mSwift_Mime_HeaderEncoder_Base64HeaderEncoderTest! CSwift_Mime_EmbeddedFileTest4 iSwift_Mime_ContentEncoder_QpContentEncoderTest7 oSwift_Mime_ContentEncoder_PlainContentEncoderTest8 qSwift_Mime_ContentEncoder_Base64ContentEncoderTest ?Swift_Mime_AttachmentTest' OSwift_Mime_AbstractMimeEntityTest /Swift_MessageTest -Swift_MailerTest- [Swift_Mailer_ArrayRecipientIteratorTest2 eSwift_KeyCache_SimpleKeyCacheInputStreamTest& MSwift_KeyCache_ArrayKeyCacheTest. ]Swift_Events_TransportExceptionEventTest+ WSwift_Events_TransportChangeEventTest, YSwift_Events_SimpleEventDispatcherTest 
 ASwift_Events_SendEventTest$	 ISwift_Events_ResponseEventTest" ESwift_Events_EventObjectTest# GSwift_Events_CommandEventTest& MSwift_Encoder_Rfc2231EncoderTest! CSwift_Encoder_QpEncoderTest% KSwift_Encoder_Base64EncoderTest# GSwift_DependencyContainerTest	 One4 iSwift_CharacterStream_ArrayCharacterStreamTest*  USwift_CharacterReader_Utf8ReaderTest- [Swift_CharacterReader_UsAsciiReaderTest7~ oSwift_CharacterReader_GenericFixedWidthReaderTest*} USwift_ByteStream_ArrayByteStreamTest| 3SwiftMailerTestCase{ =SwiftMailerSmokeTestCasez 7Swift_StreamCollector(y QSwift_Smoke_InternationalSmokeTest-x [Swift_Smoke_HtmlWithAttachmentSmokeTest w ASwift_Smoke_BasicSmokeTest%v KSwift_Smoke_AttachmentSmokeTestu ?IdenticalBinaryConstraintt /MimeEntityFixtures 7EsmtpTransportFixturer +Swift_Bug76Testq +Swift_Bug71Testp -Swift_Bug534Testo +Swift_Bug51Testn -Swift_Bug518Testm +Swift_Bug38Testl +Swift_Bug35Testk +Swift_Bug34Testj -Swift_Bug274Testi -Swift_Bug206Testh -Swift_Bug118Testg -Swift_Bug111Test:f uSwift_Transport_StreamBuffer_TlsSocketAcceptanceTest:e uSwift_Transport_StreamBuffer_SslSocketAcceptanceTest4d iSwift_Transport_StreamBuffer_SocketTimeoutTest8c qSwift_Transport_StreamBuffer_ProcessAcceptanceTest<b ySwift_Transport_StreamBuffer_BasicSocketAcceptanceTestFa Swift_Transport_StreamBuffer_AbstractStreamBufferAcceptanceTest"` ESwift_MimePartAcceptanceTest,_ YSwift_Mime_SimpleMessageAcceptanceTest'^ OSwift_Mime_MimePartAcceptanceTestA] Swift_Mime_HeaderEncoder_Base64HeaderEncoderAcceptanceTest+\ WSwift_Mime_EmbeddedFileAcceptanceTest>[ }Swift_Mime_ContentEncoder_QpContentEncoderAcceptanceTestBZ Swift_Mime_ContentEncoder_PlainContentEncoderAcceptanceTest   `  Ks9f7eF6)|bG*





x
a
J
7
 
							Z	'tCa#dHc)ZyH# w@V&         =ehough_finder_FinderTest2 eehough_finder_fakeadapter_UnsupportedAdapter, Yehough_finder_fakeadapter_NamedAdapter. ]ehough_finder_fakeadapter_FailingAdapter, Yehough_finder_fakeadapter_DummyAdapter( Qehough_finder_expression_RegexTest' Oehough_finder_expression_GlobTest- [ehough_finder_expression_ExpressionTest3 gehough_finder_comparator_NumberComparatorTest1 cehough_finder_comparator_DateComparatorTest-
 [ehough_finder_comparator_ComparatorTest	 ?ehough_finder_SplFileInfo ?ehough_finder_shell_Shell! Cehough_finder_shell_Command- [ehough_finder_iterator_SortableIterator4 iehough_finder_iterator_SizeRangeFilterIterator7 oehough_finder_iterator_RecursiveDirectoryIterator/ _ehough_finder_iterator_PathFilterIterator7 oehough_finder_iterator_MultiplePcreFilterIterator+ Wehough_finder_iterator_FilterIterator3  gehough_finder_iterator_FileTypeFilterIterator. ]ehough_finder_iterator_FilePathsIterator3~ gehough_finder_iterator_FilenameFilterIterator6} mehough_finder_iterator_FilecontentFilterIterator;| wehough_finder_iterator_ExcludeDirectoryFilterIterator5{ kehough_finder_iterator_DepthRangeFilterIterator4z iehough_finder_iterator_DateRangeFilterIterator1y cehough_finder_iterator_CustomFilterIteratorx 1ehough_finder_Glob!w Cehough_finder_FinderFactoryv 5ehough_finder_Finder$u Iehough_finder_expression_Regex#t Gehough_finder_expression_Glob)s Sehough_finder_expression_Expression:r uehough_finder_exception_ShellCommandFailureException;q wehough_finder_exception_OperationNotPermitedException5p kehough_finder_exception_AdapterFailureException3o gehough_finder_exception_AccessDeniedException/n _ehough_finder_comparator_NumberComparator-m [ehough_finder_comparator_DateComparator)l Sehough_finder_comparator_Comparator&k Mehough_finder_adapter_PhpAdapter*j Uehough_finder_adapter_GnuFindAdapter*i Uehough_finder_adapter_BsdFindAdapter/h _ehough_finder_adapter_AbstractFindAdapter+g Wehough_finder_adapter_AbstractAdapterf %MobileDetecte #VendorsTestd 'UserAgentTestc BasicTestb 'Mobile_Detecta %MobileDetect` #VendorsTest_ 'UserAgentTest^ BasicTest] 'Mobile_Detect\ 'MarkdownExtra[ 9_MarkdownExtra_TmpImplZ MarkdownY )TemplateHelper
X MiscW 7WhoopsServiceProviderV 7WhoopsServiceProviderU 1XmlResponseHandlerT 3SoapResponseHandlerS /PrettyPageHandlerR -PlainTextHandlerQ 3JsonResponseHandlerP HandlerO +CallbackHandlerN InspectorM +FrameCollectionL FrameK FormatterJ )ErrorException	I RunH ModuleG 7RouteNotFoundStrategyF /ExceptionStrategy&E MSwift_Transport_StreamBufferTest+D WSwift_Transport_SendmailTransportTest'C OSwift_Transport_MailTransportTest/B _Swift_Transport_LoadBalancedTransportTest+A WSwift_Transport_FailoverTransportTest(@ QSwift_Transport_EsmtpTransportTest9? sSwift_Transport_EsmtpTransport_ExtensionSupportTest+> WSwift_Transport_Esmtp_AuthHandlerTest7= oSwift_Transport_Esmtp_Auth_PlainAuthenticatorTest6< mSwift_Transport_Esmtp_Auth_NTLMAuthenticatorTest7; oSwift_Transport_Esmtp_Auth_LoginAuthenticatorTest9: sSwift_Transport_Esmtp_Auth_CramMd5AuthenticatorTest&9 MSwift_Transport_AbstractSmtpTest28 eSwift_Transport_AbstractSmtpEventSupportTest57 kSwift_StreamFilters_StringReplacementFilterTest<6 ySwift_StreamFilters_StringReplacementFilterFactoryTest85 qSwift_StreamFilters_ByteArrayReplacementFilterTest   N  NwA^)[&[ 



X
.
 			p	B	PmF Ri7 c(wT#[/gE                                             8b qehough_finder_iterator_DateRangeFilterIteratorTest5a kehough_finder_iterator_CustomFilterIteratorTest` =ehough_finder_FinderTest2_ eehough_finder_fakeadapter_UnsupportedAdapter,^ Yehough_finder_fakeadapter_NamedAdapter.] ]ehough_finder_fakeadapter_FailingAdapter,\ Yehough_finder_fakeadapter_DummyAdapter([ Qehough_finder_expression_RegexTest'Z Oehough_finder_expression_GlobTest-Y [ehough_finder_expression_ExpressionTest3X gehough_finder_comparator_NumberComparatorTest1W cehough_finder_comparator_DateComparatorTest-V [ehough_finder_comparator_ComparatorTestU ?ehough_finder_SplFileInfoT ?ehough_finder_shell_Shell!S Cehough_finder_shell_Command-R [ehough_finder_iterator_SortableIterator4Q iehough_finder_iterator_SizeRangeFilterIterator7P oehough_finder_iterator_RecursiveDirectoryIterator/O _ehough_finder_iterator_PathFilterIterator7N oehough_finder_iterator_MultiplePcreFilterIterator+M Wehough_finder_iterator_FilterIterator3L gehough_finder_iterator_FileTypeFilterIterator.K ]ehough_finder_iterator_FilePathsIterator3J gehough_finder_iterator_FilenameFilterIterator6I mehough_finder_iterator_FilecontentFilterIterator;H wehough_finder_iterator_ExcludeDirectoryFilterIterator5G kehough_finder_iterator_DepthRangeFilterIterator4F iehough_finder_iterator_DateRangeFilterIterator1E cehough_finder_iterator_CustomFilterIteratorD 1ehough_finder_Glob!C Cehough_finder_FinderFactoryB 5ehough_finder_Finder$A Iehough_finder_expression_Regex#@ Gehough_finder_expression_Glob)? Sehough_finder_expression_Expression:> uehough_finder_exception_ShellCommandFailureException;= wehough_finder_exception_OperationNotPermitedException5< kehough_finder_exception_AdapterFailureException3; gehough_finder_exception_AccessDeniedException/: _ehough_finder_comparator_NumberComparator-9 [ehough_finder_comparator_DateComparator)8 Sehough_finder_comparator_Comparator&7 Mehough_finder_adapter_PhpAdapter*6 Uehough_finder_adapter_GnuFindAdapter*5 Uehough_finder_adapter_BsdFindAdapter/4 _ehough_finder_adapter_AbstractFindAdapter+3 Wehough_finder_adapter_AbstractAdapter*2 Uehough_filesystem_FilesystemTestCase&1 Mehough_filesystem_FilesystemTest%0 Kehough_filesystem_ExceptionTestD/ ehough_filesystem_iterator_SkipDotsRecursiveDirectoryIterator". Eehough_filesystem_Filesystem-- [ehough_filesystem_exception_IOException7, oehough_filesystem_exception_FileNotFoundException1+ cehough_finder_iterator_SortableIteratorTest* /InnerSizeIterator8) qehough_finder_iterator_SizeRangeFilterIteratorTest;( wehough_finder_iterator_RecursiveDirectoryIteratorTest1' cehough_finder_iterator_RealIteratorTestCase3& gehough_finder_iterator_PathFilterIteratorTest$% ITestMultiplePcreFilterIterator;$ wehough_finder_iterator_MultiplePcreFilterIteratorTest,# Yehough_finder_iterator_MockSplFileInfo1" cehough_finder_iterator_MockFileListIterator-! [ehough_finder_iterator_IteratorTestCase%  Kehough_finder_iterator_Iterator/ _ehough_finder_iterator_FilterIteratorTest /InnerTypeIterator7 oehough_finder_iterator_FileTypeFilterIteratorTest2 eehough_finder_iterator_FilePathsIteratorTest /InnerNameIterator7 oehough_finder_iterator_FilenameFilterIteratorTest: uehough_finder_iterator_FilecontentFilterIteratorTest? ehough_finder_iterator_ExcludeDirectoryFilterIteratorTest9 sehough_finder_iterator_DepthRangeFilterIteratorTest8 qehough_finder_iterator_DateRangeFilterIteratorTest5 kehough_finder_iterator_CustomFilterIteratorTest   J  B{`-n/\ v:


u
L
			i	>	 ^^uT.g?~D\*e+N                                         %, Kehough_iconic_loader_FileLoader(+ Qehough_iconic_loader_ClosureLoader2* eehough_iconic_lazyproxy_phpdumper_NullDumperC) ehough_iconic_lazyproxy_instantiator_RealServiceInstantiator=( {ehough_iconic_lazyproxy_instantiator_IconicInstantiator'' Oehough_iconic_extension_Extension&& Mehough_iconic_ExpressionLanguage6% mehough_iconic_exception_ServiceNotFoundException?$ ehough_iconic_exception_ServiceCircularReferenceException=# {ehough_iconic_exception_ScopeWideningInjectionException=" {ehough_iconic_exception_ScopeCrossingInjectionException.! ]ehough_iconic_exception_RuntimeException8  qehough_iconic_exception_ParameterNotFoundExceptionB ehough_iconic_exception_ParameterCircularReferenceException2 eehough_iconic_exception_OutOfBoundsException, Yehough_iconic_exception_LogicException6 mehough_iconic_exception_InvalidArgumentException4 iehough_iconic_exception_InactiveScopeException4 iehough_iconic_exception_BadMethodCallException% Kehough_iconic_dumper_YamlDumper$ Iehough_iconic_dumper_XmlDumper$ Iehough_iconic_dumper_PhpDumper) Sehough_iconic_dumper_GraphvizDumper! Cehough_iconic_dumper_Dumper' Oehough_iconic_DefinitionDecorator =ehough_iconic_Definition$ Iehough_iconic_ContainerBuilder" Eehough_iconic_ContainerAware ;ehough_iconic_Container6 mehough_iconic_compiler_ServiceReferenceGraphNode6 mehough_iconic_compiler_ServiceReferenceGraphEdge2 eehough_iconic_compiler_ServiceReferenceGraph; wehough_iconic_compiler_ResolveReferencesToAliasesPass= {ehough_iconic_compiler_ResolveParameterPlaceHoldersPass9
 sehough_iconic_compiler_ResolveInvalidReferencesPass;	 wehough_iconic_compiler_ResolveDefinitionTemplatesPass? ehough_iconic_compiler_ReplaceAliasByActualDefinitionPass) Sehough_iconic_compiler_RepeatedPass8 qehough_iconic_compiler_RemoveUnusedDefinitionsPass5 kehough_iconic_compiler_RemovePrivateAliasesPass: uehough_iconic_compiler_RemoveAbstractDefinitionsPass' Oehough_iconic_compiler_PassConfig< yehough_iconic_compiler_MergeExtensionConfigurationPass- [ehough_iconic_compiler_LoggingFormatter9  sehough_iconic_compiler_InlineServiceDefinitionsPass1 cehough_iconic_compiler_DecoratorServicePass%~ Kehough_iconic_compiler_Compiler7} oehough_iconic_compiler_CheckReferenceValidityPassJ| ehough_iconic_compiler_CheckExceptionOnInvalidReferenceBehaviorPass8{ qehough_iconic_compiler_CheckDefinitionValidityPass8z qehough_iconic_compiler_CheckCircularReferencesPass9y sehough_iconic_compiler_AnalyzeServiceReferencesPassx 3ehough_iconic_Alias1w cehough_finder_iterator_SortableIteratorTestv /InnerSizeIterator8u qehough_finder_iterator_SizeRangeFilterIteratorTest;t wehough_finder_iterator_RecursiveDirectoryIteratorTest1s cehough_finder_iterator_RealIteratorTestCase3r gehough_finder_iterator_PathFilterIteratorTest$q ITestMultiplePcreFilterIterator;p wehough_finder_iterator_MultiplePcreFilterIteratorTest,o Yehough_finder_iterator_MockSplFileInfo1n cehough_finder_iterator_MockFileListIterator-m [ehough_finder_iterator_IteratorTestCase%l Kehough_finder_iterator_Iterator/k _ehough_finder_iterator_FilterIteratorTestj /InnerTypeIterator7i oehough_finder_iterator_FileTypeFilterIteratorTest2h eehough_finder_iterator_FilePathsIteratorTestg /InnerNameIterator7f oehough_finder_iterator_FilenameFilterIteratorTest:e uehough_finder_iterator_FilecontentFilterIteratorTest?d ehough_finder_iterator_ExcludeDirectoryFilterIteratorTest9c sehough_finder_iterator_DepthRangeFilterIteratorTest   O  |O.`@#n Jp7



L
			Y	vT)^&NYqF\3a*sM                                          { ?ehough_pulsar_ClassLoader)z Sehough_pulsar_ClassCollectionLoader+y Wehough_pulsar_ApcUniversalClassLoader"x Eehough_pulsar_ApcClassLoaderw 9ehough_iconic_Variable$v Iehough_iconic_SimpleXMLElementu 3ehough_iconic_Scopet ;ehough_iconic_Reference-s [ehough_iconic_parameterbag_ParameterBag3r gehough_iconic_parameterbag_FrozenParameterBagq ;ehough_iconic_Parameter)p Sehough_iconic_loader_YamlFileLoader(o Qehough_iconic_loader_XmlFileLoader(n Qehough_iconic_loader_PhpFileLoader(m Qehough_iconic_loader_IniFileLoader%l Kehough_iconic_loader_FileLoader(k Qehough_iconic_loader_ClosureLoader2j eehough_iconic_lazyproxy_phpdumper_NullDumperCi ehough_iconic_lazyproxy_instantiator_RealServiceInstantiator=h {ehough_iconic_lazyproxy_instantiator_IconicInstantiator'g Oehough_iconic_extension_Extension&f Mehough_iconic_ExpressionLanguage6e mehough_iconic_exception_ServiceNotFoundException?d ehough_iconic_exception_ServiceCircularReferenceException=c {ehough_iconic_exception_ScopeWideningInjectionException=b {ehough_iconic_exception_ScopeCrossingInjectionException.a ]ehough_iconic_exception_RuntimeException8` qehough_iconic_exception_ParameterNotFoundExceptionB_ ehough_iconic_exception_ParameterCircularReferenceException2^ eehough_iconic_exception_OutOfBoundsException,] Yehough_iconic_exception_LogicException6\ mehough_iconic_exception_InvalidArgumentException4[ iehough_iconic_exception_InactiveScopeException4Z iehough_iconic_exception_BadMethodCallException%Y Kehough_iconic_dumper_YamlDumper$X Iehough_iconic_dumper_XmlDumper$W Iehough_iconic_dumper_PhpDumper)V Sehough_iconic_dumper_GraphvizDumper!U Cehough_iconic_dumper_Dumper'T Oehough_iconic_DefinitionDecoratorS =ehough_iconic_Definition$R Iehough_iconic_ContainerBuilder"Q Eehough_iconic_ContainerAwareP ;ehough_iconic_Container6O mehough_iconic_compiler_ServiceReferenceGraphNode6N mehough_iconic_compiler_ServiceReferenceGraphEdge2M eehough_iconic_compiler_ServiceReferenceGraph;L wehough_iconic_compiler_ResolveReferencesToAliasesPass=K {ehough_iconic_compiler_ResolveParameterPlaceHoldersPass9J sehough_iconic_compiler_ResolveInvalidReferencesPass;I wehough_iconic_compiler_ResolveDefinitionTemplatesPass?H ehough_iconic_compiler_ReplaceAliasByActualDefinitionPass)G Sehough_iconic_compiler_RepeatedPass8F qehough_iconic_compiler_RemoveUnusedDefinitionsPass5E kehough_iconic_compiler_RemovePrivateAliasesPass:D uehough_iconic_compiler_RemoveAbstractDefinitionsPass'C Oehough_iconic_compiler_PassConfig<B yehough_iconic_compiler_MergeExtensionConfigurationPass-A [ehough_iconic_compiler_LoggingFormatter9@ sehough_iconic_compiler_InlineServiceDefinitionsPass1? cehough_iconic_compiler_DecoratorServicePass%> Kehough_iconic_compiler_Compiler7= oehough_iconic_compiler_CheckReferenceValidityPassJ< ehough_iconic_compiler_CheckExceptionOnInvalidReferenceBehaviorPass8; qehough_iconic_compiler_CheckDefinitionValidityPass8: qehough_iconic_compiler_CheckCircularReferencesPass99 sehough_iconic_compiler_AnalyzeServiceReferencesPass8 3ehough_iconic_Alias7 9ehough_iconic_Variable$6 Iehough_iconic_SimpleXMLElement5 3ehough_iconic_Scope4 ;ehough_iconic_Reference-3 [ehough_iconic_parameterbag_ParameterBag32 gehough_iconic_parameterbag_FrozenParameterBag1 ;ehough_iconic_Parameter)0 Sehough_iconic_loader_YamlFileLoader(/ Qehough_iconic_loader_XmlFileLoader(. Qehough_iconic_loader_PhpFileLoader(- Qehough_iconic_loader_IniFileLoader   X  S-e>[1fHqN3




T
				e	4	rFt\)uAzQgFLa-P                *S Uehough_templating_helper_SlotsHelper%R Kehough_templating_helper_Helper/Q _ehough_templating_helper_CoreAssetsHelper+P Wehough_templating_helper_AssetsHelper(O Qehough_templating_DelegatingEngine(N Qehough_templating_asset_UrlPackage)M Sehough_templating_asset_PathPackage%L Kehough_templating_asset_Package0K aehough_tickertape_ImmutableEventDispatcher$J Iehough_tickertape_GenericEvent'I Oehough_tickertape_EventDispatcherH ;ehough_tickertape_EventBG ehough_tickertape_dependencyinjection_RegisterListenersPass-F [ehough_tickertape_debug_WrappedListener6E mehough_tickertape_debug_TraceableEventDispatcher5D kehough_tickertape_ContainerAwareEventDispatcher0C aehough_tickertape_ImmutableEventDispatcher$B Iehough_tickertape_GenericEvent'A Oehough_tickertape_EventDispatcher@ ;ehough_tickertape_EventB? ehough_tickertape_dependencyinjection_RegisterListenersPass-> [ehough_tickertape_debug_WrappedListener6= mehough_tickertape_debug_TraceableEventDispatcher5< kehough_tickertape_ContainerAwareEventDispatcher%; Kehough_stash_test_UtilitiesTest.: ]ehough_stash_test_stub_PoolGetDriverStub'9 Oehough_stash_test_stub_LoggerStub28 eehough_stash_test_stub_DriverUnavailableStub07 aehough_stash_test_stub_DriverExceptionStub06 aehough_stash_test_stub_DriverCallCheckStub#5 Gehough_stash_test_SessionTest4 PoolTest)3 Sehough_stash_test_PoolNamespaceTest 2 Aehough_stash_test_ItemTest&1 Mehough_stash_test_ItemLoggerTest/0 _ehough_stash_test_exception_TestException/ )DriverListTest0. aehough_stash_test_driver_SqliteSqlite2Test3- gehough_stash_test_driver_SqlitePdoSqlite3Test3, gehough_stash_test_driver_SqlitePdoSqlite2Test,+ Yehough_stash_test_driver_SqliteAnyTest(* Qehough_stash_test_driver_RedisTest-) [ehough_stash_test_driver_RedisArrayTest+( Wehough_stash_test_driver_MemcacheTest,' Yehough_stash_test_driver_MemcachedTest.& ]ehough_stash_test_driver_MemcacheAnyTest-% [ehough_stash_test_driver_FileSystemTest,$ Yehough_stash_test_driver_EphemeralTest,# Yehough_stash_test_driver_CompositeTest," Yehough_stash_test_driver_BlackHoleTest&! Mehough_stash_test_driver_ApcTest1  cehough_stash_test_driver_AbstractDriverTest* Uehough_stash_test_CacheExceptionTest( Qehough_stash_test_AbstractPoolTest( Qehough_stash_test_AbstractItemTest 9ehough_stash_Utilities 5ehough_stash_Session /ehough_stash_Pool /ehough_stash_Item ?ehough_stash_Invalidation: uehough_stash_exception_WindowsPathMaxLengthException- [ehough_stash_exception_RuntimeException+ Wehough_stash_exception_LogicException5 kehough_stash_exception_InvalidArgumentException 5ehough_stash_Drivers ;ehough_stash_DriverList( Qehough_stash_driver_sub_SqlitePdo2' Oehough_stash_driver_sub_SqlitePdo$ Iehough_stash_driver_sub_Sqlite' Oehough_stash_driver_sub_Memcached& Mehough_stash_driver_sub_Memcache  Aehough_stash_driver_Sqlite ?ehough_stash_driver_Redis"
 Eehough_stash_driver_Memcache$	 Iehough_stash_driver_FileSystem# Gehough_stash_driver_Ephemeral# Gehough_stash_driver_Composite# Gehough_stash_driver_BlackHole ;ehough_stash_driver_Apc% Kehough_pulsar_XcacheClassLoader' Oehough_pulsar_WinCacheClassLoader( Qehough_pulsar_UniversalClassLoader# Gehough_pulsar_Psr4ClassLoader"  Eehough_pulsar_MapClassLoader- [ehough_pulsar_DebugUniversalClassLoader$~ Iehough_pulsar_DebugClassLoader'} Oehough_pulsar_ComposerClassLoader%| Kehough_pulsar_ClassMapGenerator   V  qH#j=mNk4f&


e
P
				b	6	}O!qFW`)
U5NaArE                             ") Epuzzle_adapter_StreamAdapter ( Apuzzle_adapter_MockAdapter(' Qpuzzle_adapter_FakeParallelAdapter)& Spuzzle_adapter_curl_RequestMediator&% Mpuzzle_adapter_curl_MultiAdapter%$ Kpuzzle_adapter_curl_CurlFactory%# Kpuzzle_adapter_curl_CurlAdapter&" Mpuzzle_adapter_curl_BatchContext%! Kpuzzle_AbstractListenerAttacher  9puzzle_AbstractHasData3 gehough_templating_test_TemplateNameParserTest1 cehough_templating_storage_StringStorageTest #TestStorage0 aehough_templating_test_storage_StorageTest4 iehough_templating_test_storage_FileStorageTest2 eehough_templating_test_ProjectTemplateLoader 7ProjectTemplateEngine< yehough_templating_test_ehough_templating_PhpEngineTest 9ProjectTemplateLoader4. ]ehough_templating_test_loader_LoaderTest 9ProjectTemplateLoader28 qehough_templating_test_loader_FilesystemLoaderTest 9ProjectTemplateLoader13 gehough_templating_test_loader_ChainLoaderTest =ProjectTemplateLoaderVar 7ProjectTemplateLoader3 gehough_templating_test_loader_CacheLoaderTest3 gehough_templating_test_helper_SlotsHelperTest0 aehough_templating_test_helper_SimpleHelper 7ProjectTemplateHelper. ]ehough_templating_test_helper_HelperTest7
 oehough_templating_test_asset_CoreAssetsHelperTest/	 _ehough_templating_helper_AssetsHelperTest, Yehough_templating_DelegatingEngineTest) Sehough_templating_TemplateReference* Uehough_templating_TemplateNameParser- [ehough_templating_storage_StringStorage' Oehough_templating_storage_Storage+ Wehough_templating_storage_FileStorage! Cehough_templating_PhpEngine% Kehough_templating_loader_Loader/  _ehough_templating_loader_FilesystemLoader* Uehough_templating_loader_ChainLoader*~ Uehough_templating_loader_CacheLoader*} Uehough_templating_helper_SlotsHelper%| Kehough_templating_helper_Helper/{ _ehough_templating_helper_CoreAssetsHelper+z Wehough_templating_helper_AssetsHelper(y Qehough_templating_DelegatingEngine(x Qehough_templating_asset_UrlPackage)w Sehough_templating_asset_PathPackage%v Kehough_templating_asset_Package3u gehough_templating_test_TemplateNameParserTest1t cehough_templating_storage_StringStorageTests #TestStorage0r aehough_templating_test_storage_StorageTest4q iehough_templating_test_storage_FileStorageTest2p eehough_templating_test_ProjectTemplateLoadero 7ProjectTemplateEngine<n yehough_templating_test_ehough_templating_PhpEngineTestm 9ProjectTemplateLoader4.l ]ehough_templating_test_loader_LoaderTestk 9ProjectTemplateLoader28j qehough_templating_test_loader_FilesystemLoaderTesti 9ProjectTemplateLoader13h gehough_templating_test_loader_ChainLoaderTestg =ProjectTemplateLoaderVarf 7ProjectTemplateLoader3e gehough_templating_test_loader_CacheLoaderTest3d gehough_templating_test_helper_SlotsHelperTest0c aehough_templating_test_helper_SimpleHelperb 7ProjectTemplateHelper.a ]ehough_templating_test_helper_HelperTest7` oehough_templating_test_asset_CoreAssetsHelperTest/_ _ehough_templating_helper_AssetsHelperTest,^ Yehough_templating_DelegatingEngineTest)] Sehough_templating_TemplateReference*\ Uehough_templating_TemplateNameParser-[ [ehough_templating_storage_StringStorage'Z Oehough_templating_storage_Storage+Y Wehough_templating_storage_FileStorage!X Cehough_templating_PhpEngine%W Kehough_templating_loader_Loader/V _ehough_templating_loader_FilesystemLoader*U Uehough_templating_loader_ChainLoader*T Uehough_templating_loader_CacheLoader   `  kP/
rF$ zO j@kK*




{
_
>
					n	J	.		 xFvIfBc/}O ~R%gD{R(                       #	 Gpuzzle_post_MultipartBodyTest ?puzzle_test_MimetypesTest& Mpuzzle_test_message_ResponseTest% Kpuzzle_test_message_RequestTest+ Wpuzzle_test_message_MessageParserTest +ExtendedFactory' Opuzzle_message_MessageFactoryTest- [puzzle_test_message_AbstractMessageTest! Cpuzzle_test_HasDeprecations  ?puzzle_test_FunctionsTest0 apuzzle_test_exception_RequestExceptionTest.~ ]puzzle_test_exception_ParseExceptionTest)} Spuzzle_test_event_RequestEventsTest'| Opuzzle_test_event_BeforeEventTest){ Spuzzle_test_event_CompleteEventTest(z Qpuzzle_test_event_HeadersEventTest&y Mpuzzle_test_event_ErrorEventTest7x opuzzle_test_event_TestEventSubscriberWithMultiple9w spuzzle_test_event_TestEventSubscriberWithPriorities+v Wpuzzle_test_event_TestEventSubscriber*u Upuzzle_test_event_TestWithDispatcher)t Spuzzle_test_event_TestEventListener%s Kpuzzle_test_event_CallableClass#r Gpuzzle_test_event_EmitterTest1q cpuzzle_test_event_AbstractTransferEventTest0p apuzzle_test_event_AbstractRequestEventTest)o Spuzzle_test_event_AbstractEventTest&n Mpuzzle_test_cookie_SetCookieTest,m Ypuzzle_test_cooki_SessionCookieJarTest*l Upuzzle_test_cookie_FileCookieJarTest&k Mpuzzle_test_cookie_CookieJarTest j Apuzzle_test_CollectionTesti /puzzle_ClientTest)h Spuzzle_test_adapter_TransactionTest1g cpuzzle_test_adapter_TransactionIteratorTest3f gpuzzle_test_adapter_StreamingProxyAdapterTest+e Wpuzzle_test_adapter_StreamAdapterTest)d Spuzzle_test_adapter_MockAdapterTest1c cpuzzle_test_adapter_FakeParallelAdapterTest2b epuzzle_test_adapter_curl_RequestMediatorTest/a _puzzle_test_adapter_curl_MultiAdapterTest.` ]puzzle_test_adapter_curl_CurlFactoryTest._ ]puzzle_test_adapter_curl_CurlAdapterTest/^ _puzzle_test_adapter_curl_BatchContextTest+] Wpuzzle_test_adapter_curl_AbstractCurl"\ EAbstractListenerAttacherTest[ -ObjectWithEventsZ !puzzle_UrlY 1puzzle_UriTemplate X Apuzzle_subscriber_RedirectW ?puzzle_subscriber_PrepareV 9puzzle_subscriber_Mock!U Cpuzzle_subscriber_HttpErrorT ?puzzle_subscriber_HistoryS =puzzle_subscriber_CookieR ?puzzle_subscriber_ChunkedQ ;puzzle_SplObjectStorageP 1puzzle_QueryParserO 9__puzzle_phpAggregatorN %puzzle_QueryM 5puzzle_post_PostFileL 5puzzle_post_PostBodyK ?puzzle_post_MultipartBodyJ -puzzle_MimetypesI ;puzzle_message_ResponseH 9puzzle_message_Request"G Epuzzle_message_MessageParser#F Gpuzzle_message_MessageFactory$E Ipuzzle_message_AbstractMessage(D Qpuzzle_exception_TransferException0C apuzzle_exception_TooManyRedirectsException&B Mpuzzle_exception_ServerException'A Opuzzle_exception_RequestException%@ Kpuzzle_exception_ParseException4? ipuzzle_exception_CouldNotRewindStreamException&> Mpuzzle_exception_ClientException+= Wpuzzle_exception_BadResponseException'< Opuzzle_exception_AdapterException ; Apuzzle_event_RequestEvents: ?puzzle_event_HeadersEvent9 ;puzzle_event_ErrorEvent8 5puzzle_event_Emitter 7 Apuzzle_event_CompleteEvent6 =puzzle_event_BeforeEvent(5 Qpuzzle_event_AbstractTransferEvent'4 Opuzzle_event_AbstractRequestEvent 3 Apuzzle_event_AbstractEvent2 ;puzzle_cookie_SetCookie$1 Ipuzzle_cookie_SessionCookieJar!0 Cpuzzle_cookie_FileCookieJar/ ;puzzle_cookie_CookieJar. /puzzle_Collection- 'puzzle_Client(, Qpuzzle_adapter_TransactionIterator + Apuzzle_adapter_Transaction** Upuzzle_adapter_StreamingProxyAdapter   c  nR*T'rI yS%]5



w
S
5
				s	I	_3}c@"nL)mS-g4m6k=M&    )l Spuzzle_test_event_TestEventListener%k Kpuzzle_test_event_CallableClass#j Gpuzzle_test_event_EmitterTest1i cpuzzle_test_event_AbstractTransferEventTest0h apuzzle_test_event_AbstractRequestEventTest)g Spuzzle_test_event_AbstractEventTest&f Mpuzzle_test_cookie_SetCookieTest,e Ypuzzle_test_cooki_SessionCookieJarTest*d Upuzzle_test_cookie_FileCookieJarTest&c Mpuzzle_test_cookie_CookieJarTest b Apuzzle_test_CollectionTesta /puzzle_ClientTest)` Spuzzle_test_adapter_TransactionTest1_ cpuzzle_test_adapter_TransactionIteratorTest3^ gpuzzle_test_adapter_StreamingProxyAdapterTest+] Wpuzzle_test_adapter_StreamAdapterTest)\ Spuzzle_test_adapter_MockAdapterTest1[ cpuzzle_test_adapter_FakeParallelAdapterTest2Z epuzzle_test_adapter_curl_RequestMediatorTest/Y _puzzle_test_adapter_curl_MultiAdapterTest.X ]puzzle_test_adapter_curl_CurlFactoryTest.W ]puzzle_test_adapter_curl_CurlAdapterTest/V _puzzle_test_adapter_curl_BatchContextTest+U Wpuzzle_test_adapter_curl_AbstractCurl"T EAbstractListenerAttacherTestS -ObjectWithEventsR !puzzle_UrlQ 1puzzle_UriTemplate P Apuzzle_subscriber_RedirectO ?puzzle_subscriber_PrepareN 9puzzle_subscriber_Mock!M Cpuzzle_subscriber_HttpErrorL ?puzzle_subscriber_HistoryK =puzzle_subscriber_CookieJ ?puzzle_subscriber_ChunkedI ;puzzle_SplObjectStorageH 1puzzle_QueryParserG 9__puzzle_phpAggregatorF %puzzle_QueryE 5puzzle_post_PostFileD 5puzzle_post_PostBodyC ?puzzle_post_MultipartBodyB -puzzle_MimetypesA ;puzzle_message_Response@ 9puzzle_message_Request"? Epuzzle_message_MessageParser#> Gpuzzle_message_MessageFactory$= Ipuzzle_message_AbstractMessage(< Qpuzzle_exception_TransferException0; apuzzle_exception_TooManyRedirectsException&: Mpuzzle_exception_ServerException'9 Opuzzle_exception_RequestException%8 Kpuzzle_exception_ParseException47 ipuzzle_exception_CouldNotRewindStreamException&6 Mpuzzle_exception_ClientException+5 Wpuzzle_exception_BadResponseException'4 Opuzzle_exception_AdapterException 3 Apuzzle_event_RequestEvents2 ?puzzle_event_HeadersEvent1 ;puzzle_event_ErrorEvent0 5puzzle_event_Emitter / Apuzzle_event_CompleteEvent. =puzzle_event_BeforeEvent(- Qpuzzle_event_AbstractTransferEvent', Opuzzle_event_AbstractRequestEvent + Apuzzle_event_AbstractEvent* ;puzzle_cookie_SetCookie$) Ipuzzle_cookie_SessionCookieJar!( Cpuzzle_cookie_FileCookieJar' ;puzzle_cookie_CookieJar& /puzzle_Collection% 'puzzle_Client($ Qpuzzle_adapter_TransactionIterator # Apuzzle_adapter_Transaction*" Upuzzle_adapter_StreamingProxyAdapter"! Epuzzle_adapter_StreamAdapter   Apuzzle_adapter_MockAdapter( Qpuzzle_adapter_FakeParallelAdapter) Spuzzle_adapter_curl_RequestMediator& Mpuzzle_adapter_curl_MultiAdapter% Kpuzzle_adapter_curl_CurlFactory% Kpuzzle_adapter_curl_CurlAdapter& Mpuzzle_adapter_curl_BatchContext% Kpuzzle_AbstractListenerAttacher 9puzzle_AbstractHasData 3puzzle_test_UrlTest! Cpuzzle_test_UriTemplateTest) Spuzzle_test_subscriber_RedirectTest( Qpuzzle_test_subscriber_PrepareTest% Kpuzzle_test_subscriber_MockTest* Upuzzle_test_subscriber_HttpErrorTest( Qpuzzle_test_subscriber_HistoryTest# Gpuzzle_test_cookie_CookieTest$ Ipuzzle_test_cookie_ChunkedTest 1puzzle_test_Server 7puzzle_test_QueryTest! Cpuzzle_test_QueryParserTest# Gpuzzle_test_post_PostFileTest#
 Gpuzzle_test_post_PostBodyTest   ]  f+}PqF-a:d8




c
F
					T	/		g/	vMc<rZ@,a,g r2^4                                (K Qehough_mockery_mockery_matcher_Any#J Gehough_mockery_mockery_Loader&I Mehough_mockery_mockery_Generator0H aehough_mockery_mockery_ExpectationDirector(G Qehough_mockery_mockery_Expectation&F Mehough_mockery_mockery_ExceptionFE ehough_mockery_mockery_exception_NoMatchingExpectationException<D yehough_mockery_mockery_exception_InvalidOrderException<C yehough_mockery_mockery_exception_InvalidCountException5B kehough_mockery_mockery_countvalidator_Exception1A cehough_mockery_mockery_countvalidator_ExactC@ ehough_mockery_mockery_countvalidator_CountValidatorAbstract2? eehough_mockery_mockery_countvalidator_AtMost3> gehough_mockery_mockery_countvalidator_AtLeast&= Mehough_mockery_mockery_Container*< Uehough_mockery_mockery_Configuration1; cehough_mockery_mockery_CompositeExpectation9: sehough_mockery_mockery_adapter_phpunit_TestListener9 /Automattic_Readme8 +PucReadmeParser7 Parsedown6 !PluginInfo5 %PluginUpdate4 3PluginUpdateChecker3 !PucFactory2 -PluginUpdate_2_21 )PluginInfo_2_20 ;PluginUpdateChecker_2_2/ 5PucGitHubChecker_2_2. /PucDebugBarPlugin- =PluginUpdateCheckerPanel"* Epuzzle_test_stream_UtilsTest$) Ipuzzle_test_stream_HasToString#( Gpuzzle_test_stream_StreamTest)' Spuzzle_test_stream_NoSeekStreamTest(& Qpuzzle_test_stream_LimitStreamTest+% Wpuzzle_test_stream_LazyOpenStreamTest*$ Upuzzle_test_stream_InflateStreamtest0# apuzzle_test_stream_GuzzleStreamWrapperTest%" Kpuzzle_test_stream_FnStreamTest4! ipuzzle_test_stream_exception_SeekExceptionTest*  Upuzzle_test_stream_CachingStreamTest) Spuzzle_test_stream_AppendStreamTest" Epuzzle_test_stream_BadStream4 ipuzzle_test_stream_AbstractStreamDecoratorTest 9puzzle_test_stream_Str 3puzzle_stream_Utils 5puzzle_stream_Stream  Apuzzle_stream_NoSeekStream ?puzzle_stream_LimitStream" Epuzzle_stream_LazyOpenStream! Cpuzzle_stream_InflateStream' Opuzzle_stream_GuzzleStreamWrapper 9puzzle_stream_FnStream+ Wpuzzle_stream_exception_SeekException! Cpuzzle_stream_CachingStream  Apuzzle_stream_AppendStream+ Wpuzzle_stream_AbstractStreamDecorator 3puzzle_test_UrlTest! Cpuzzle_test_UriTemplateTest) Spuzzle_test_subscriber_RedirectTest( Qpuzzle_test_subscriber_PrepareTest% Kpuzzle_test_subscriber_MockTest*
 Upuzzle_test_subscriber_HttpErrorTest(	 Qpuzzle_test_subscriber_HistoryTest# Gpuzzle_test_cookie_CookieTest$ Ipuzzle_test_cookie_ChunkedTest 1puzzle_test_Server 7puzzle_test_QueryTest! Cpuzzle_test_QueryParserTest# Gpuzzle_test_post_PostFileTest# Gpuzzle_test_post_PostBodyTest# Gpuzzle_post_MultipartBodyTest  ?puzzle_test_MimetypesTest& Mpuzzle_test_message_ResponseTest%~ Kpuzzle_test_message_RequestTest+} Wpuzzle_test_message_MessageParserTest| +ExtendedFactory'{ Opuzzle_message_MessageFactoryTest-z [puzzle_test_message_AbstractMessageTest!y Cpuzzle_test_HasDeprecationsx ?puzzle_test_FunctionsTest0w apuzzle_test_exception_RequestExceptionTest.v ]puzzle_test_exception_ParseExceptionTest)u Spuzzle_test_event_RequestEventsTest't Opuzzle_test_event_BeforeEventTest)s Spuzzle_test_event_CompleteEventTest(r Qpuzzle_test_event_HeadersEventTest&q Mpuzzle_test_event_ErrorEventTest7p opuzzle_test_event_TestEventSubscriberWithMultiple9o spuzzle_test_event_TestEventSubscriberWithPriorities+n Wpuzzle_test_event_TestEventSubscriber*m Upuzzle_test_event_TestWithDispatcher   {  q@yMrH(U7|L&





P
@
/
					k	A	zI!vT2sW='y^F-~aTG:-mI%xW6'w`I2% 	F Foo	E Bar	D Foo	C BarB 'Pearlike2_FooA 'Pearlike2_Baz@ 'Pearlike2_Bar? 7Pearlike_WithComments> %Pearlike_Foo= %Pearlike_Baz< %Pearlike_Bar	; Foo: -Pearlike2_FooBar9 +Pearlike_FooBar8 CTBar7 CTFoo6 ;PrefixCollision_C_B_Foo5 ;PrefixCollision_C_B_Bar4 ;PrefixCollision_A_B_Foo3 ;PrefixCollision_A_B_Bar2 -Apc_Pearlike_Foo1 -Apc_Pearlike_Baz0 -Apc_Pearlike_Bar/ 3Apc_Pearlike_FooBar . AApcPrefixCollision_A_B_Foo - AApcPrefixCollision_A_B_Bar, =ApcPrefixCollision_A_Foo+ =ApcPrefixCollision_A_Bar* 7PrefixCollision_C_Foo) 7PrefixCollision_C_Bar( 7PrefixCollision_A_Foo' 7PrefixCollision_A_Bar	& Foo	% Bar	$ Foo	# Bar" 3Psr4ClassLoaderTest! 7ClassMapGeneratorTest  +ClassLoaderTest ?ClassCollectionLoaderTest 1ApcClassLoaderTest /XcacheClassLoader 3WinCacheClassLoader +Psr4ClassLoader )MapClassLoader /ClassMapGenerator #ClassLoader 7ClassCollectionLoader )ApcClassLoader" EWithFormatterExpectationTest 9MockeryTestSubjectUser 1MockeryTestSubject %RecorderTest -Mockery_MockTest 1Mockery_LoaderTest ;HamcrestExpectationTest +MockeryTest_Foo 1Mockery_UseDemeter 5Mockery_Demeterowski ;Mockery_Duck_Nonswimmer
 %Mockery_Duck	 !MyService2 =MockeryTest_InterMethod1 =MockeryTest_SubjectCall1 +ExpectationTest ?MockeryTest_PartialStatic$ IMockeryTest_Lowercase_ToString 5EmptyConstructorTest% KMockeryTest_OldStyleConstructor$ IMockeryTest_ImplementsIterator-  [MockeryTest_ImplementsIteratorAggregate =MockeryTest_WithToString&~ MMockeryTest_MockCallableTypeHint#} GMockeryTest_TestInheritedType'| OMockeryTest_PartialAbstractClass2%{ KMockeryTest_PartialNormalClass2&z MMockeryTest_PartialAbstractClass$y IMockeryTest_PartialNormalClassx +MockeryTestRef1!w CMockeryTest_MethodParamRef2 v AMockeryTest_MethodParamRefu ;MockeryTest_ReturnByReft +MockeryTestBar1s Gatewayr SoCool2q eMockeryTest_AbstractWithAbstractPublicMethod"p EMockeryTest_ExistingPropertyo 3MockeryTest_Wakeup1n /MockeryTest_Call2m /MockeryTest_Call1#l GMockeryTest_ClassConstructor2"k EMockeryTest_ClassConstructor,j YMockeryTest_AbstractWithAbstractMethodi #MockeryFoo4h #MockeryFoo3g +MockeryTestFoo2f )MockeryTestFooe ;MockeryTest_UnsetMethodd ;MockeryTest_IssetMethodc 5MockeryTestIsset_Foob 5MockeryTestIsset_Bar0a aMockeryTest_ClassMultipleConstructorParams` 9MockeryTest_CallStatic_ 'ContainerTest ^ AMockeryTest_NameOfAbstract%] KMockeryTest_NameOfExistingClass\ /Mockery_AdhocTest[ 9ehough_mockery_Mockery&Z Mehough_mockery_mockery_Undefined%Y Kehough_mockery_mockery_Recorder!X Cehough_mockery_mockery_Mock)W Sehough_mockery_mockery_matcher_Type+V Wehough_mockery_mockery_matcher_Subset-U [ehough_mockery_mockery_matcher_NotAnyOf(T Qehough_mockery_mockery_matcher_Not+S Wehough_mockery_mockery_matcher_MustBe4R iehough_mockery_mockery_matcher_MatcherAbstract-Q [ehough_mockery_mockery_matcher_HasValue+P Wehough_mockery_mockery_matcher_HasKey-O [ehough_mockery_mockery_matcher_Ducktype-N [ehough_mockery_mockery_matcher_Contains,M Yehough_mockery_mockery_matcher_Closure*L Uehough_mockery_mockery_matcher_AnyOf   ^ ti^SH:/$tgZM?2w`M5w[<'oQ<&






w
`
I
.

							|	a	F	-	v\D*jK7#
lH*udK5}hS0
eN4%wbN7}^  p 7"AlignDoubleArrowFixero +!Symfony23Findern '!MagentoFinderm '!DefaultFinderl ' TagComparator	k  Tag
j  Linei  DocBlockh ! Annotationg /SelfUpdateCommandf 'ReadmeCommande !FixCommandd #Applicationc +Symfony23Configb 'MagentoConfiga Config` Utils_ ToolInfo^ 'StdinFileInfo] #LintManager\ ;FixerFileProcessedEvent[ FixerZ -FileCacheManagerY 'ErrorsManagerX 7ConfigurationResolver'W OAbstractLinesBeforeNamespaceFixerV 'AbstractFixer$U IAbstractAnnotationRemovalFixerT 1AbstractAlignFixer"S EValidatorServiceProviderTestR ?ConfigServiceProviderTestQ #CommandTestP #CommandMockO +ApplicationTestN 3ServiceProviderMockM =ValidatorServiceProviderL 9MonologServiceProviderK ;DoctrineServiceProviderJ 7ConfigServiceProviderI %GreetCommandH +DemoInfoCommandG CommandF CompilerE #ApplicationD XPathExprC !TranslatorB 5PseudoClassExtensionA 'NodeExtension@ 'HtmlExtension? /FunctionExtension> 5CombinationExtension = AAttributeMatchingExtension< /AbstractExtension; )TranslatorTest: )HashParserTest9 7EmptyStringParserTest8 /ElementParserTest7 +ClassParserTest6 +TokenStreamTest5 !ReaderTest4 !ParserTest3 7WhitespaceHandlerTest2 /StringHandlerTest1 /NumberHandlerTest0 7IdentifierHandlerTest/ +HashHandlerTest. 1CommentHandlerTest- 3AbstractHandlerTest, +SpecificityTest+ -SelectorNodeTest* )PseudoNodeTest) -NegationNodeTest( %HashNodeTest' -FunctionNodeTest& +ElementNodeTest% =CombinedSelectorNodeTest$ 'ClassNodeTest# /AttributeNodeTest" -AbstractNodeTest! +CssSelectorTest  /TokenizerPatterns /TokenizerEscaping Tokenizer !HashParser /EmptyStringParser 'ElementParser #ClassParser #TokenStream Token Reader Parser /
WhitespaceHandler '
StringHandler '
NumberHandler /
IdentifierHandler #
HashHandler )
CommentHandler #	Specificity %	SelectorNode !	PseudoNode %	NegationNode 	HashNode
 %	FunctionNode	 #	ElementNode 5	CombinedSelectorNode 	ClassNode '	AttributeNode %	AbstractNode 5SyntaxErrorException )ParseException 9InternalErrorException =ExpressionErrorException  #CssSelector 7TextareaFormFieldTest~ 1InputFormFieldTest} /FormFieldTestCase| 'FormFieldTest{ /FileFormFieldTestz 3ChoiceFormFieldTesty LinkTestx FormTestw #CrawlerTestv /TextareaFormFieldu )InputFormFieldt FormFields 'FileFormFieldr +ChoiceFormField
q Linkp /FormFieldRegistry
o Formn Crawler	m Fool 9Class_With_Underscores	k Fooj 9Class_With_Underscores	i  Foo
h CBar	g Foo	f Baz	e Bard FooBarc %WithComments	b Foo	a Baz	` Bar_ FooBar^ !SomeParent] SomeClass\ B[ AZ BY AX BW A
V CFooU AT GS FR EQ DP BO A	N Foo	M Bar	L Foo	K Bar	J Foo	I Baz	H BarG FooBar   } f2dJ,u^G2qP0|c?





e
L
"					k	M	2	b=aL1bF(wTA-`=W5qS1u^C(             m +/BracesFixerTestl /.ShortTagFixerTestk /.EncodingFixerTestj '-Psr0FixerTesti 5,StrictParamFixerTesth +,StrictFixerTestg 7,ShortEchoTagFixerTestf ?,ShortArraySyntaxFixerTeste 9,PhpUnitStrictFixerTestd ?,PhpUnitConstructFixerTestc =,PhpdocVarToTypeFixerTestb 5,PhpdocOrderFixerTesta =,Php4ConstructorFixerTest` 3,OrderedUseFixerTest*_ U,NoBlankLinesBeforeNamespaceFixerTest"^ E,NewlineAfterOpenTagFixerTest-] [,MultilineSpacesBeforeSemicolonFixerTest\ =,LongArraySyntaxFixerTest4[ i,LogicalNotOperatorsWithSuccessorSpaceFixerTest,Z Y,LogicalNotOperatorsWithSpacesFixerTestY 9,HeaderCommentFixerTestX 3,EregToPregFixerTestW ?,ConcatWithSpacesFixerTestV 5,AlignEqualsFixerTestU ?,AlignDoubleArrowFixerTestT 7+AbstractFixerTestBaseS /*DefaultFinderTestR )TagTestQ /)TagComparatorTestP )LineTestO %)DocBlockTestN ))AnnotationTestM !(ConfigTestL 'UtilsTestK !'ReadmeTestJ 'FixerTestI ?'ConfigurationResolverTestH /'AbstractFixerTestG 5&WhitespacyLinesFixerF )&UnusedUseFixerE ?&UnaryOperatorsSpacesFixerD 1&UnalignEqualsFixerC ;&UnalignDoubleArrowFixerB 5&TrimArraySpacesFixerA 1&TernarySpacesFixer@ =&StandardizeNotEqualFixer? +&SpacesCastFixer > A&SpacesBeforeSemicolonFixer= -&SingleQuoteFixer)< S&SingleBlankLineBeforeNamespaceFixer%; K&SingleArrayNoTrailingCommaFixer: /&SelfAccessorFixer9 #&ReturnFixer!8 C&RemoveLinesBetweenUsesFixer 7 A&RemoveLeadingSlashUseFixer6 /&PreIncrementFixer5 ?&PhpdocVarWithoutNameFixer4 5&PhpdocTypeToVarFixer3 +&PhpdocTrimFixer2 5&PhpdocToCommentFixer!1 C&PhpdocShortDescriptionFixer0 7&PhpdocSeparationFixer/ /&PhpdocScalarFixer. /&PhpdocParamsFixer- 5&PhpdocNoPackageFixer, =&PhpdocNoEmptyReturnFixer+ 3&PhpdocNoAccessFixer* 5&PhpdocInlineTagFixer) /&PhpdocIndentFixer( 5&OperatorsSpacesFixer' 3&ObjectOperatorFixer#& G&NoEmptyLinesAfterPhpdocsFixer(% Q&NoBlankLinesAfterClassOpeningFixer$ 1&NewWithBracesFixer'# O&NamespaceNoLeadingWhitespaceFixer&" M&MultilineArrayTrailingCommaFixer! +&ListCommasFixer  /&JoinFunctionFixer %&IncludeFixer 5&ExtraEmptyLinesFixer -&EmptyReturnFixer ;&DuplicateSemicolonFixer* U&DoubleArrowMultilineWhitespacesFixer =&ConcatWithoutSpacesFixer  A&BlanklineAfterOpenTagFixer +%VisibilityFixer 3%TrailingSpacesFixer! C%SingleLineAfterImportsFixer 1%PhpClosingTagFixer -%ParenthesisFixer -%MultipleUseFixer =%MethodArgumentSpaceFixer 9%LowercaseKeywordsFixer ;%LowercaseConstantsFixer '%LinefeedFixer ;%LineAfterNamespaceFixer -%IndentationFixer =%FunctionDeclarationFixer 9%FunctionCallSpaceFixer
 )%EofEndingFixer	 #%ElseifFixer #%BracesFixer '$ShortTagFixer '$EncodingFixer #Psr0Fixer -"StrictParamFixer #"StrictFixer /"ShortEchoTagFixer 7"ShortArraySyntaxFixer  1"PhpUnitStrictFixer 7"PhpUnitConstructFixer~ 5"PhpdocVarToTypeFixer} -"PhpdocOrderFixer| 5"Php4ConstructorFixer{ +"OrderedUseFixer&z M"NoBlankLinesBeforeNamespaceFixery ="NewlineAfterOpenTagFixer)x S"MultilineSpacesBeforeSemicolonFixerw 5"LongArraySyntaxFixer0v a"LogicalNotOperatorsWithSuccessorSpaceFixer(u Q"LogicalNotOperatorsWithSpacesFixert 1"HeaderCommentFixers +"EregToPregFixerr 7"ConcatWithSpacesFixerq -"AlignEqualsFixer   } c>#xX/qL.Y9	|Z9




g
E
(
				o	V	7	
vP0dV1
~`C&u\@wVA*	nZH:-w^BuK2                  j 5<Php4ConstructorFixeri +<OrderedUseFixer&h M<NoBlankLinesBeforeNamespaceFixerg =<NewlineAfterOpenTagFixer)f S<MultilineSpacesBeforeSemicolonFixere 5<LongArraySyntaxFixer0d a<LogicalNotOperatorsWithSuccessorSpaceFixer(c Q<LogicalNotOperatorsWithSpacesFixerb 1<HeaderCommentFixera +<EregToPregFixer` 7<ConcatWithSpacesFixer_ -<AlignEqualsFixer^ 7<AlignDoubleArrowFixer] +;Symfony23Finder\ ';MagentoFinder[ ';DefaultFinderZ ':TagComparator	Y :Tag
X :LineW :DocBlockV !:AnnotationU /9SelfUpdateCommandT '9ReadmeCommandS !9FixCommandR #8ApplicationQ +7Symfony23ConfigP '7MagentoConfigO 7ConfigN 6UtilsM 6ToolInfoL '6StdinFileInfoK #6LintManagerJ ;6FixerFileProcessedEventI 6FixerH -6FileCacheManagerG '6ErrorsManagerF 76ConfigurationResolver'E O6AbstractLinesBeforeNamespaceFixerD '6AbstractFixer$C I6AbstractAnnotationRemovalFixerB 16AbstractAlignFixerA +5DynamicVarBrace@ -5DynamicPropBrace? 95DollarCloseCurlyBraces> !5CurlyClose= '5ClassConstant< '5ArrayTypehint; %4Transformers: 4Tokens9 4Token8 34AbstractTransformer7 33DynamicVarBraceTest6 53DynamicPropBraceTest 5 A3DollarCloseCurlyBracesTest4 )3CurlyCloseTest3 /3ClassConstantTest2 /3ArrayTypehintTest1 -2TransformersTest0 2TokenTest/ !2TokensTest!. C2AbstractTransformerTestBase
- 1test, =0WhitespacyLinesFixerTest+ 10UnusedUseFixerTest#* G0UnaryOperatorsSpacesFixerTest) 90UnalignEqualsFixerTest!( C0UnalignDoubleArrowFixerTest' =0TrimArraySpacesFixerTest& 90TernarySpacesFixerTest"% E0StandardizeNotEqualFixerTest$ 30SpacesCastFixerTest$# I0SpacesBeforeSemicolonFixerTest" 50SingleQuoteFixerTest-! [0SingleBlankLineBeforeNamespaceFixerTest)  S0SingleArrayNoTrailingCommaFixerTest 70SelfAccessorFixerTest +0ReturnFixerTest% K0RemoveLinesBetweenUsesFixerTest$ I0RemoveLeadingSlashUseFixerTest 70PreIncrementFixerTest# G0PhpdocVarWithoutNameFixerTest =0PhpdocTypeToVarFixerTest 30PhpdocTrimFixerTest =0PhpdocToCommentFixerTest% K0PhpdocShortDescriptionFixerTest ?0PhpdocSeparationFixerTest 70PhpdocScalarFixerTest 70PhpdocParamsFixerTest =0PhpdocNoPackageFixerTest" E0PhpdocNoEmptyReturnFixerTest ;0PhpdocNoAccessFixerTest =0PhpdocInlineTagFixerTest 70PhpdocIndentFixerTest =0OperatorsSpacesFixerTest ;0ObjectOperatorFixerTest' O0NoEmptyLinesAfterPhpdocsFixerTest,
 Y0NoBlankLinesAfterClassOpeningFixerTest	 90NewWithBracesFixerTest+ W0NamespaceNoLeadingWhitespaceFixerTest* U0MultilineArrayTrailingCommaFixerTest 30ListCommasFixerTest 70JoinFunctionFixerTest -0IncludeFixerTest =0ExtraEmptyLinesFixerTest 50EmptyReturnFixerTest! C0DuplicateSemicolonFixerTest.  ]0DoubleArrowMultilineWhitespacesFixerTest" E0ConcatWithoutSpacesFixerTest$~ I0BlanklineAfterOpenTagFixerTest} 3/VisibilityFixerTest| ;/TrailingSpacesFixerTest%{ K/SingleLineAfterImportsFixerTestz 9/PhpClosingTagFixerTesty 5/ParenthesisFixerTestx 5/MultipleUseFixerTest"w E/MethodArgumentSpaceFixerTest v A/LowercaseKeywordsFixerTest!u C/LowercaseConstantsFixerTestt //LinefeedFixerTest!s C/LineAfterNamespaceFixerTestr 5/IndentationFixerTest"q E/FunctionDeclarationFixerTest p A/FunctionCallSpaceFixerTesto 1/EofEndingFixerTestn +/ElseifFixerTest   }# nS>$_E$vZ5jP2wK$




q
S
8
						a	F	"w]9 dL.tbG6{[+zL/gH/vR,_A#                                 g 5IParenthesisFixerTestf 5IMultipleUseFixerTest"e EIMethodArgumentSpaceFixerTest d AILowercaseKeywordsFixerTest!c CILowercaseConstantsFixerTestb /ILinefeedFixerTest!a CILineAfterNamespaceFixerTest` 5IIndentationFixerTest"_ EIFunctionDeclarationFixerTest ^ AIFunctionCallSpaceFixerTest] 1IEofEndingFixerTest\ +IElseifFixerTest[ +IBracesFixerTestZ /HShortTagFixerTestY /HEncodingFixerTestX 'GPsr0FixerTestW 5FStrictParamFixerTestV +FStrictFixerTestU 7FShortEchoTagFixerTestT ?FShortArraySyntaxFixerTestS 9FPhpUnitStrictFixerTestR ?FPhpUnitConstructFixerTestQ =FPhpdocVarToTypeFixerTestP 5FPhpdocOrderFixerTestO =FPhp4ConstructorFixerTestN 3FOrderedUseFixerTest*M UFNoBlankLinesBeforeNamespaceFixerTest"L EFNewlineAfterOpenTagFixerTest-K [FMultilineSpacesBeforeSemicolonFixerTestJ =FLongArraySyntaxFixerTest4I iFLogicalNotOperatorsWithSuccessorSpaceFixerTest,H YFLogicalNotOperatorsWithSpacesFixerTestG 9FHeaderCommentFixerTestF 3FEregToPregFixerTestE ?FConcatWithSpacesFixerTestD 5FAlignEqualsFixerTestC ?FAlignDoubleArrowFixerTestB 7EAbstractFixerTestBaseA /DDefaultFinderTest@ CTagTest? /CTagComparatorTest> CLineTest= %CDocBlockTest< )CAnnotationTest; !BConfigTest: AUtilsTest9 !AReadmeTest8 AFixerTest7 ?AConfigurationResolverTest6 /AAbstractFixerTest5 5@WhitespacyLinesFixer4 )@UnusedUseFixer3 ?@UnaryOperatorsSpacesFixer2 1@UnalignEqualsFixer1 ;@UnalignDoubleArrowFixer0 5@TrimArraySpacesFixer/ 1@TernarySpacesFixer. =@StandardizeNotEqualFixer- +@SpacesCastFixer , A@SpacesBeforeSemicolonFixer+ -@SingleQuoteFixer)* S@SingleBlankLineBeforeNamespaceFixer%) K@SingleArrayNoTrailingCommaFixer( /@SelfAccessorFixer' #@ReturnFixer!& C@RemoveLinesBetweenUsesFixer % A@RemoveLeadingSlashUseFixer$ /@PreIncrementFixer# ?@PhpdocVarWithoutNameFixer" 5@PhpdocTypeToVarFixer! +@PhpdocTrimFixer  5@PhpdocToCommentFixer! C@PhpdocShortDescriptionFixer 7@PhpdocSeparationFixer /@PhpdocScalarFixer /@PhpdocParamsFixer 5@PhpdocNoPackageFixer =@PhpdocNoEmptyReturnFixer 3@PhpdocNoAccessFixer 5@PhpdocInlineTagFixer /@PhpdocIndentFixer 5@OperatorsSpacesFixer 3@ObjectOperatorFixer# G@NoEmptyLinesAfterPhpdocsFixer( Q@NoBlankLinesAfterClassOpeningFixer 1@NewWithBracesFixer' O@NamespaceNoLeadingWhitespaceFixer& M@MultilineArrayTrailingCommaFixer +@ListCommasFixer /@JoinFunctionFixer %@IncludeFixer 5@ExtraEmptyLinesFixer -@EmptyReturnFixer
 ;@DuplicateSemicolonFixer*	 U@DoubleArrowMultilineWhitespacesFixer =@ConcatWithoutSpacesFixer  A@BlanklineAfterOpenTagFixer +?VisibilityFixer 3?TrailingSpacesFixer! C?SingleLineAfterImportsFixer 1?PhpClosingTagFixer -?ParenthesisFixer -?MultipleUseFixer  =?MethodArgumentSpaceFixer 9?LowercaseKeywordsFixer~ ;?LowercaseConstantsFixer} '?LinefeedFixer| ;?LineAfterNamespaceFixer{ -?IndentationFixerz =?FunctionDeclarationFixery 9?FunctionCallSpaceFixerx )?EofEndingFixerw #?ElseifFixerv #?BracesFixeru '>ShortTagFixert '>EncodingFixers =Psr0Fixerr -<StrictParamFixerq #<StrictFixerp /<ShortEchoTagFixero 7<ShortArraySyntaxFixern 1<PhpUnitStrictFixerm 7<PhpUnitConstructFixerl 5<PhpdocVarToTypeFixerk -<PhpdocOrderFixer   E yQ+z[>fE#yZ;gH 




a
C
					q	Q	*	x]B*ybK7j]H4$reTF7(yl^K9*	{jX?%z^N>.o[E                 } %aBcryptHasher| !aBaseHasher{ `Providerz `Groupy 7_NameRequiredExceptionx 9_GroupNotFoundExceptionw 5_GroupExistsExceptionv ^Provideru ^Groupt ]Sentrys \Sentryr [Sentryq ZSentryp YFacadeo 1YConnectionResolvern XSentrym %WNativeCookiel %WKohanaCookiek -WIlluminateCookiej 'WFuelPHPCookiei WCICookieh +VPhpThumbFactoryg VThumbBasef -VJpgImageRotatione +VGdReflectionLibd VPhpThumbc VGdThumb
b SViewa SValidator	` SURL	_ SSSH^ SSession] SSchema\ SRoute[ SResponseZ SRequestY SRedisX SRedirectW SQueueV SPasswordU SPaginator
T SMail	S SLog
R SLangQ SInput
P SHTML
O SHash
N SForm
M SFileL SFacadeK SEventJ SDBI SCryptH SCookieG SConfigF SCacheE SBlade
D SAuthC SArtisan	B SAppA %RViewErrorBag	@ RStr? +RServiceProvider> 3RSerializableClosure= !RPluralizer< 9RNamespacedItemResolver; !RMessageBag: RManager9 RFluent8 !RCollection7 #RClassLoader	6 RArr5 -QTestUrlGenerator4 !QTestDelete3 +PServiceProvider2 PFacade1 PException0 PCroppa/ +ODynamicVarBrace. -ODynamicPropBrace- 9ODollarCloseCurlyBraces, !OCurlyClose+ 'OClassConstant* 'OArrayTypehint) %NTransformers( NTokens' NToken& 3NAbstractTransformer% 3MDynamicVarBraceTest$ 5MDynamicPropBraceTest # AMDollarCloseCurlyBracesTest" )MCurlyCloseTest! /MClassConstantTest  /MArrayTypehintTest -LTransformersTest LTokenTest !LTokensTest! CLAbstractTransformerTestBase
 Ktest =JWhitespacyLinesFixerTest 1JUnusedUseFixerTest# GJUnaryOperatorsSpacesFixerTest 9JUnalignEqualsFixerTest! CJUnalignDoubleArrowFixerTest =JTrimArraySpacesFixerTest 9JTernarySpacesFixerTest" EJStandardizeNotEqualFixerTest 3JSpacesCastFixerTest$ IJSpacesBeforeSemicolonFixerTest 5JSingleQuoteFixerTest- [JSingleBlankLineBeforeNamespaceFixerTest) SJSingleArrayNoTrailingCommaFixerTest 7JSelfAccessorFixerTest +JReturnFixerTest% KJRemoveLinesBetweenUsesFixerTest$
 IJRemoveLeadingSlashUseFixerTest	 7JPreIncrementFixerTest# GJPhpdocVarWithoutNameFixerTest =JPhpdocTypeToVarFixerTest 3JPhpdocTrimFixerTest =JPhpdocToCommentFixerTest% KJPhpdocShortDescriptionFixerTest ?JPhpdocSeparationFixerTest 7JPhpdocScalarFixerTest 7JPhpdocParamsFixerTest  =JPhpdocNoPackageFixerTest" EJPhpdocNoEmptyReturnFixerTest~ ;JPhpdocNoAccessFixerTest} =JPhpdocInlineTagFixerTest| 7JPhpdocIndentFixerTest{ =JOperatorsSpacesFixerTestz ;JObjectOperatorFixerTest'y OJNoEmptyLinesAfterPhpdocsFixerTest,x YJNoBlankLinesAfterClassOpeningFixerTestw 9JNewWithBracesFixerTest+v WJNamespaceNoLeadingWhitespaceFixerTest*u UJMultilineArrayTrailingCommaFixerTestt 3JListCommasFixerTests 7JJoinFunctionFixerTestr -JIncludeFixerTestq =JExtraEmptyLinesFixerTestp 5JEmptyReturnFixerTest!o CJDuplicateSemicolonFixerTest.n ]JDoubleArrowMultilineWhitespacesFixerTest"m EJConcatWithoutSpacesFixerTest$l IJBlanklineAfterOpenTagFixerTestk 3IVisibilityFixerTestj ;ITrailingSpacesFixerTest%i KISingleLineAfterImportsFixerTesth 9IPhpClosingTagFixerTest   ; yaF/sS0	xj<}mT;#hF,





i
U
;

							k	[	K	;	+		|hR<&jXF)	[<_&u]C-~cG)
pX@|kR;                'GeneratorTest +ServiceProvider Manager Generator Facade
 Exception	 9ValidatorImageSizeTest =ValidatorImageAspectTest! CValidateServiceProviderTest# GImageValidatorServiceProvider )ImageValidator )Session_Driver 3WhirlpoolHasherTest -Sha256HasherTest !SentryTest  /NativeSessionTest -NativeHasherTest~ -NativeCookieTest} 7IlluminateSessionTest| 5IlluminateCookieTest{ 1FuelPHPSessionTestz /FuelPHPCookieTesty -EloquentUserTestx =EloquentUserProviderTestw 5EloquentThrottleTestv /EloquentGroupTestu ?EloquentGroupProviderTestt 'CISessionTests %CICookieTestr -BcryptHasherTestq )UserModelStub2p )UserModelStub1o +GroupModelStub2n +GroupModelStub1m Cookiel !CI_Sessionk CI_Input-j [MigrationCartalystSentryInstallThrottle5i kMigrationCartalystSentryInstallUsersGroupsPivot+h WMigrationCartalystSentryInstallGroups*g UMigrationCartalystSentryInstallUsers
f Usere Providerd 9~WrongPasswordExceptionc 3~UserExistsExceptionb ?~UserNotActivatedExceptiona 7~UserNotFoundException#` G~UserAlreadyActivatedException_ ?~PasswordRequiredException^ 9~LoginRequiredException
] }User\ }Provider[ |ThrottleZ |ProviderY 9{UserSuspendedExceptionX 3{UserBannedExceptionW zThrottleV zProviderU 'yNativeSessionT 'yKohanaSessionS /yIlluminateSessionR )yFuelPHPSessionQ yCISessionP 7xSentryServiceProviderO xSentryN +wWhirlpoolHasherM %wSha256HasherL %wNativeHasherK %wBcryptHasherJ !wBaseHasherI vProviderH vGroupG 7uNameRequiredExceptionF 9uGroupNotFoundExceptionE 5uGroupExistsExceptionD tProviderC tGroupB sSentryA rSentry@ qSentry? pSentry> oFacade= 1oConnectionResolver< nSentry; %mNativeCookie: %mKohanaCookie9 -mIlluminateCookie8 'mFuelPHPCookie7 mCICookie6 )lSession_Driver5 3kWhirlpoolHasherTest4 -kSha256HasherTest3 !kSentryTest2 /kNativeSessionTest1 -kNativeHasherTest0 -kNativeCookieTest/ 7kIlluminateSessionTest. 5kIlluminateCookieTest- 1kFuelPHPSessionTest, /kFuelPHPCookieTest+ -kEloquentUserTest* =kEloquentUserProviderTest) 5kEloquentThrottleTest( /kEloquentGroupTest' ?kEloquentGroupProviderTest& 'kCISessionTest% %kCICookieTest$ -kBcryptHasherTest# )jUserModelStub2" )jUserModelStub1! +jGroupModelStub2  +jGroupModelStub1 jCookie !jCI_Session jCI_Input- [jMigrationCartalystSentryInstallThrottle5 kjMigrationCartalystSentryInstallUsersGroupsPivot+ WjMigrationCartalystSentryInstallGroups* UjMigrationCartalystSentryInstallUsers
 iUser iProvider 9hWrongPasswordException 3hUserExistsException ?hUserNotActivatedException 7hUserNotFoundException# GhUserAlreadyActivatedException ?hPasswordRequiredException 9hLoginRequiredException
 gUser gProvider fThrottle fProvider 9eUserSuspendedException
 3eUserBannedException	 dThrottle dProvider 'cNativeSession 'cKohanaSession /cIlluminateSession )cFuelPHPSession cCISession 7bSentryServiceProvider bSentry  +aWhirlpoolHasher %aSha256Hasher~ %aNativeHasher   O iJ6n`C-dS;$zdL7w]8$





t
\
J
6
"
						}	i	O	;	$	\H4!wU4_B3! ybH/gK4
weP9|iV>"dO     0 #MockAdapter/ 3FakeParallelAdapter. +RequestMediator- %MultiAdapter, #CurlFactory+ #CurlAdapter* %BatchContext) /PropertyValueUtil( 'ComponentUtil' 1RecurrenceRuleTest& )RecurrenceRule% Organizer$ Attendees# +StringValueTest" )ArrayValueTest! #StringValue  -DateTimeProperty !ArrayValue %PropertyTest +PropertyBagTest -ParameterBagTest 'ComponentTest #PropertyBag Property %ParameterBag Component ;CalendarIntegrationTest %TimezoneRule Timezone Event Calendar Alarm /PropertyValueUtil 'ComponentUtil 1RecurrenceRuleTest )RecurrenceRule Organizer Attendees
 +StringValueTest	 )ArrayValueTest #StringValue -DateTimeProperty !ArrayValue %PropertyTest +PropertyBagTest -ParameterBagTest 'ComponentTest #PropertyBag  Property %ParameterBag~ Component} ;CalendarIntegrationTest| %TimezoneRule{ Timezonez Eventy Calendarx Alarmw 3SessionTableCommandv 9TokenMismatchExceptionu Storet 9SessionServiceProviders )SessionManagerr !Middlewareq 1FileSessionHandlerp 9DatabaseSessionHandlero 5CookieSessionHandlern ;CommandsServiceProviderm =CacheBasedSessionHandlerl 3InvalidKeyExceptionk ?EncryptionServiceProviderj Encrypteri -DecryptExceptionh Queueg Guardf 7CookieServiceProvidere CookieJard !Repositoryc !FileLoader$b IFileEnvironmentVariablesLoadera 5EnvironmentVariables` %ClearCommand_ /CacheTableCommand^ #XCacheStore] 'WinCacheStore\ TagSet[ #TaggedCacheZ 'TaggableStoreY !RepositoryX -RedisTaggedCacheW !RedisStoreV NullStoreU )MemcachedStoreT 1MemcachedConnectorS FileStoreR 'DatabaseStoreQ 5CacheServiceProviderP %CacheManagerO !ArrayStoreN !ApcWrapperM ApcStoreL )SubscriberTestK -NotificationTestJ 3NotificationBagTestI )SubscriberMockH 5NotificationsBagMockG #MessageTestF )CollectionTestE %NotificationD !Subscriber!C CNotificationServiceProviderB -NotificationsBagA %Notification@ Message? !Collection> )SubscriberTest= -NotificationTest< 3NotificationBagTest; )SubscriberMock: 5NotificationsBagMock9 #MessageTest8 )CollectionTest7 %Notification6 !Subscriber!5 CNotificationServiceProvider4 -NotificationsBag3 %Notification2 Message1 !Collection0 1CountryTranslation/ 'CountryStrict. )CountryGuarded- Country, 5ContinentTranslation+ Continent* Company) +CityTranslation
( City' /TranslatableTests& TestsBase% 9TestCoreModelExtension$ AddSeeds# %CreateTables" 3ViewServiceProvider
! View  )FileViewFinder Factory PhpEngine )EngineResolver Engine )CompilerEngine Compiler 'BladeCompiler ?FilesystemServiceProvider !Filesystem 7FileNotFoundException 5EventServiceProvider !Dispatcher Container  ABindingResolutionException #ManagerTest +IntegrationTest   = taR=(p[D3	zbH/}kTB0 iO2





l
T
=
$
							u	W	@	%	}`5dI0jO:$v`J3!tZ?)uaL9{`@#oZ=   I 3BackupProcedureSpecH #ManagerSpecG 1SftpFilesystemSpecF ;RackspaceFilesystemSpecE 3LocalFilesystemSpecD /FtpFilesystemSpecC 9FilesystemProviderSpecB 7DropboxFilesystemSpecA 3Awss3FilesystemSpec@ 9PostgresqlDatabaseSpec? /MysqlDatabaseSpec> 5DatabaseProviderSpec= !ConfigSpec< 1NullCompressorSpec; 1GzipCompressorSpec: 9CompressorProviderSpec9 +LimitStreamTest8 /SeekExceptionTest7 UtilsTest6 #HasToString5 !StreamTest4 BadStream3 =StreamDecoratorTraitTest	2 Str1 -NoSeekStreamTest0 1LazyOpenStreamTest/ /InflateStreamtest. ;GuzzleStreamWrapperTest- %FnStreamTest, /CachingStreamTest+ -AppendStreamTest* 'SeekException) Utils( Stream' %NoSeekStream& #LimitStream% )LazyOpenStream$ 'InflateStream# 3GuzzleStreamWrapper" FnStream! 'CachingStream  %AppendStream %RedirectTest MockTest #HistoryTest !CookieTest %PostFileTest %PostBodyTest /MultipartBodyTest #PrepareTest 'HttpErrorTest %ResponseTest #RequestTest /MessageParserTest +ExtendedFactory 1MessageFactoryTest 3AbstractMessageTest 7XmlParseExceptionTest 5RequestExceptionTest 1ParseExceptionTest /RequestEventsTest +BeforeEventTest /CompleteEventTest
 ?ListenerAttacherTraitTest	 -ObjectWithEvents -HeadersEventTest 3HasEmitterTraitTest 1AbstractHasEmitter )ErrorEventTest% KTestEventSubscriberWithMultiple' OTestEventSubscriberWithPriorities 3TestEventSubscriber 1TestWithDispatcher  /TestEventListener 'CallableClass~ #EmitterTest} ?AbstractTransferEventTest| =AbstractRequestEventTest{ /AbstractEventTestz 'SetCookieTesty 5SessionCookieJarTestx /FileCookieJarTestw 'CookieJarTestv UrlTestu +UriTemplateTestt Servers QueryTestr +QueryParserTestq 'MimetypesTestp +HasDeprecationso 'FunctionsTestn )CollectionTestm !ClientTestl ;TransactionIteratorTestk +TransactionTestj ?StreamingProxyAdapterTesti /StreamAdapterTesth +MockAdapterTestg ;FakeParallelAdapterTestf 3RequestMediatorTeste -MultiAdapterTestd +CurlFactoryTestc +CurlAdapterTestb -BatchContextTesta %AbstractCurl` Redirect_ Prepare
^ Mock] HttpError\ History[ CookieZ PostFileY PostBodyX 'MultipartBodyW ResponseV RequestU 'MessageParserT )MessageFactoryS +AbstractMessageR /XmlParseExceptionQ /TransferExceptionP ?TooManyRedirectsExceptionO +ServerExceptionN -RequestExceptionM )ParseException#L GCouldNotRewindStreamExceptionK +ClientExceptionJ 5BadResponseExceptionI -AdapterExceptionH 'RequestEventsG %HeadersEventF !ErrorEventE EmitterD 'CompleteEventC #BeforeEventB 7AbstractTransferEventA 5AbstractRequestEvent@ 'AbstractEvent? SetCookie> -SessionCookieJar= 'FileCookieJar< CookieJar	; Url: #UriTemplate9 #QueryParser8 Query7 Mimetypes6 !Collection5 Client4 3TransactionIterator3 #Transaction2 7StreamingProxyAdapter1 'StreamAdapter   w z`C+}`D|`<%lRA(qXD.




w
W
7
						y	X	-	uaG)
Y4`5k=|^'k6{KqA                                   $@ ITooManyTrustedSignersException,? YTooManyStreamingDistributionsException1> cTooManyStreamingDistributionCNAMEsException= ;TooManyOriginsException-< [TooManyInvalidationsInProgressException#; GTooManyDistributionsException(: QTooManyDistributionCNAMEsException,9 YTooManyCookieNamesInWhiteListException68 mTooManyCloudFrontOriginAccessIdentitiesException"7 ETooManyCertificatesException$6 ITooManyCacheBehaviorsException/5 _StreamingDistributionNotDisabledException14 cStreamingDistributionAlreadyExistsException!3 CPreconditionFailedException*2 UNoSuchStreamingDistributionException1 7NoSuchOriginException!0 CNoSuchInvalidationException!/ CNoSuchDistributionException3. gNoSuchCloudFrontOriginAccessIdentityException- 5MissingBodyException', OInvalidViewerCertificateException"+ EInvalidResponseCodeException&* MInvalidRequiredProtocolException") EInvalidRelativePathException( 9InvalidOriginException*' UInvalidOriginAccessIdentityException"& EInvalidLocationCodeException$% IInvalidIfMatchVersionException-$ [InvalidGeoRestrictionParameterException$# IInvalidForwardCookiesException" ?InvalidErrorCodeException'! OInvalidDefaultRootObjectException  =InvalidArgumentException% KInconsistentQuantitiesException 9IllegalUpdateException Exception& MDistributionNotDisabledException( QDistributionAlreadyExistsException! CCNAMEAlreadyExistsException2 eCloudFrontOriginAccessIdentityInUseException: uCloudFrontOriginAccessIdentityAlreadyExistsException 3CloudFrontException 9BatchTooLargeException 7AccessDeniedException 5ViewerProtocolPolicy -SSLSupportMethod !PriceClass 5OriginProtocolPolicy Method 'ItemSelection 1GeoRestrictionType 3CloudFrontSignature -CloudFrontClient 9LimitExceededException'
 OInsufficientCapabilitiesException	 ;CloudFormationException 9AlreadyExistsException #StackStatus )ResourceStatus OnFailure !Capability 5CloudFormationClient( QScalingActivityInProgressException 9ResourceInUseException  9LimitExceededException ?InvalidNextTokenException~ 5AutoScalingException} 9AlreadyExistsException| ?ScalingActivityStatusCode{ )LifecycleStatez /AutoScalingClienty %TransferFilex !DeleteFilew +RestoreDatabasev %DumpDatabaseu )DecompressFilet %CompressFiles )ShellProcessorr 1ShellProcessFailedq Sequencep -RestoreProcedureo Proceduren +BackupProcedurem Managerl -DbRestoreCommandk 'DbListCommandj +DbBackupCommandi #BaseCommand"h EBackupManagerServiceProviderg )SftpFilesystemf 3RackspaceFilesysteme +LocalFilesystemd 'FtpFilesystem c AFilesystemTypeNotSupportedb 1FilesystemProvidera /DropboxFilesystem` +Awss3Filesystem_ 1PostgresqlDatabase^ 'MysqlDatabase] =DatabaseTypeNotSupported\ -DatabaseProvider![ CConfigNotFoundForConnectionZ 1ConfigFileNotFoundY 3ConfigFieldNotFoundX ConfigW )NullCompressorV )GzipCompressor U ACompressorTypeNotSupportedT 1CompressorProviderS !CompressorR -TransferFileSpecQ )DeleteFileSpecP 3RestoreDatabaseSpecO -DumpDatabaseSpecN 1DecompressFileSpecM -CompressFileSpecL 1ShellProcessorSpecK %SequenceSpecJ 5RestoreProcedureSpec   ( nY=!
pO'T'vFhTA3




[
;
					w	]	@	$	~pY:"zaL6xI2 _=%z`>#vaI5 }_D7&xkSF5(          	K SwfJ Support	I StsH )StorageGateway	G Sqs	F Sns	E SesD SimpleDbC S3B Route53A Redshift	@ Rds? OpsWorks> Kinesis= %ImportExport	< Iam; Glacier	: Emr9 /ElasticTranscoder8 5ElasticLoadBalancing7 -ElasticBeanstalk6 #ElastiCache	5 Ec24 DynamoDb3 'DirectConnect2 %DataPipeline1 !CloudWatch0 !CloudTrail/ #CloudSearch. !CloudFront- )CloudFormation, #AutoScaling+ ;JsonRestExceptionParser* =JsonQueryExceptionParser) ?DefaultXmlExceptionParser!( CAbstractJsonExceptionParser' =UnexpectedValueException& /TransferException% =ServiceResponseException$ -RuntimeException)# SRequiredExtensionNotLoadedException" /OverflowException! 5OutOfBoundsException  ?NamespaceExceptionFactory =MultipartUploadException )LogicException =InvalidArgumentException) SInstanceProfileCredentialsException /ExceptionListener +DomainException 9BadMethodCallException UaString
 Time
 Size Region !DateFormat 'ClientOptions+ WRefreshableInstanceProfileCredentials +NullCredentials #Credentials 5CacheableCredentials$ IAbstractRefreshableCredentials" EAbstractCredentialsDecorator  AXmlResponseLocationVisitor %QueryCommand
 #JsonCommand	 +AwsQueryVisitor /UserAgentListener 1UploadBodyListener 9ThrottlingErrorChecker ?ExpiredCredentialsChecker 'DefaultClient 'ClientBuilder )AbstractClient 7RulesEndpointProvider  'HostNameUtils
 Enum	~ Aws} 5CognitoSyncException| /CognitoSyncClient{ =CognitoIdentityExceptionz 7CognitoIdentityClienty 7CodePipelineExceptionx 1CodePipelineClientw 3CodeDeployExceptionv -CodeDeployClientu 3CodeCommitExceptiont -CodeCommitClients ;CloudWatchLogsExceptionr 5CloudWatchLogsClientq ?ResourceNotFoundException'p OMissingRequiredParameterExceptiono 9LimitExceededException$n IInvalidParameterValueException*m UInvalidParameterCombinationExceptionl ?InvalidNextTokenExceptionk 9InvalidFormatExceptionj =InternalServiceExceptioni 3CloudWatchException
h Unitg Statisticf !StateValuee +HistoryItemTyped 1ComparisonOperatorc -CloudWatchClientb ?TrailNotProvidedExceptiona 9TrailNotFoundException!` CTrailAlreadyExistsException#_ GS3BucketDoesNotExistException,^ YMaximumNumberOfTrailsExceededException] ?InvalidTrailNameException"\ EInvalidSnsTopicNameException[ =InvalidS3PrefixException"Z EInvalidS3BucketNameExceptionY 9InternalErrorException)X SInsufficientSnsTopicPolicyException)W SInsufficientS3BucketPolicyExceptionV 3CloudTrailExceptionU /LogRecordIteratorT 'LogFileReaderS +LogFileIteratorR -CloudTrailClient Q ACloudSearchDomainException$P ICloudSearchDomainClientBuilderO ;CloudSearchDomainClientN ?ResourceNotFoundExceptionM 9LimitExceededExceptionL 5InvalidTypeExceptionK /InternalExceptionJ 5CloudSearchExceptionI 'BaseExceptionH 1SourceDataFunctionG 1SearchInstanceTypeF #OptionStateE )IndexFieldTypeD /CloudSearchClientC /CloudHsmExceptionB )CloudHsmClient(A QTrustedSignerDoesNotExistException    ~a=#ydJ5uX;b? f@ 





k
X
?
(
						t	W	G	2	$	yS!a<seG0 d@(
fR7mXD%sYC rJ      (S Q&CacheClusterAlreadyExistsException$R I&AuthorizationNotFoundException)Q S&AuthorizationAlreadyExistsExceptionP !%SourceTypeO /$ElastiCacheClientN %#EfsExceptionM "EfsClientL %!EcsExceptionK  EcsClientJ ?DescribeInstancesIteratorI %Ec2ExceptionH -VpcAttributeNameG !VolumeTypeF #VolumeStateE 3VolumeAttributeNameD 7VolumeAttachmentStateC 1VirtualizationTypeB -SpotInstanceTypeA 'SnapshotState@ 7SnapshotAttributeName? !RuleAction> #RouteOrigin= %ResourceType< /PlacementStrategy; 3PlacementGroupState: %InstanceType9 /InstanceStateName8 7InstanceAttributeName7 !ImageState6 )HypervisorType5 /ExportEnvironment4 !DomainType3 +DiskImageFormat2 +ContainerFormat1 Ec2Client0 5CopySnapshotListener/ =DynamoDbStreamsException. 7DynamoDbStreamsClient- 5SessionHandlerConfig, )SessionHandler + APessimisticLockingStrategy* 3NullLockingStrategy) 9LockingStrategyFactory( ;AbstractLockingStrategy' ?WriteRequestBatchTransfer& /WriteRequestBatch% 1UnprocessedRequest$ !PutRequest# 'DeleteRequest" 5AbstractWriteRequest
! Item  Attribute %ScanIterator %ItemIterator 3ValidationException! CUnrecognizedClientException' OUnprocessedWriteRequestsException 3ThrottlingException! CServiceUnavailableException ?ResourceNotFoundException 9ResourceInUseException, YProvisionedThroughputExceededException) SMissingAuthenticationTokenException 9LimitExceededException. ]ItemCollectionSizeLimitExceededException" EInternalServerErrorException =InternalFailureException" EIncompleteSignatureException /DynamoDbException% KConditionalCheckFailedException 7AccessDeniedException
 Type #TableStatus
 Select	 3ScalarAttributeType #ReturnValue! CReturnItemCollectionMetrics 9ReturnConsumedCapacity )ProjectionType KeyType #IndexStatus 1ComparisonOperator 'AttributeType  +AttributeAction Marshaler~ +DynamoDbCommand} )DynamoDbClient| /Crc32ErrorChecker{ ?DirectoryServiceExceptionz 9DirectoryServiceClient"y EDirectConnectServerExceptionx 9DirectConnectException"w EDirectConnectClientExceptionv 7VirtualInterfaceStateu StepStatet /InterconnectStates +ConnectionStater 3DirectConnectClientq 3DeviceFarmExceptionp -DeviceFarmCliento 7
TaskNotFoundExceptionn ?
PipelineNotFoundExceptionm =
PipelineDeletedExceptionl ;
InvalidRequestException#k G
InternalServiceErrorExceptionj 7
DataPipelineExceptioni !	WorkStatush 1DataPipelineClientg 9ConfigServiceExceptionf 3ConfigServiceCliente 3WaiterConfigFactoryd %WaiterConfigc 1WaiterClassFactoryb 5ConfigResourceWaitera 9CompositeWaiterFactory` )CallableWaiter_ )AbstractWaiter^ 9AbstractResourceWaiter] #SignatureV4\ -SignatureV3Https[ #SignatureV2Z /SignatureListenerY /AbstractSignatureX 1AbstractUploadPartW -AbstractUploadIdV 7AbstractUploadBuilderU 7AbstractTransferStateT -AbstractTransfer S AAwsResourceIteratorFactoryR 3AwsResourceIteratorQ -ServiceAvailableP 9 InstanceMetadataClientO TreeHashN HashUtilsM ChunkHashL Facade   h  xE\1S(o@ j?


|
^
>
						k	H	zT'f@vT4yT3a?}W;}iM:uaG                                        ; 92LimitExceededException$: I2InvalidParameterValueException9 -2GlacierException8 !1StatusCode7 !1ActionCode6 1Action5 ;0InvalidRequestException4 ;0InternalServerException"3 E0InternalServerErrorException2 %0EmrException1 ?/StepStateChangeReasonCode0 /StepState/ 1/StepExecutionState. !/MarketType- 7/JobFlowExecutionState#, G/InstanceStateChangeReasonCode+ '/InstanceState* -/InstanceRoleType) //InstanceGroupType(( Q/InstanceGroupStateChangeReasonCode' 1/InstanceGroupState"& E/ClusterStateChangeReasonCode% %/ClusterState$ +/ActionOnFailure# .EmrClient" 3-ValidationException! ?-ResourceNotFoundException  9-ResourceInUseException 9-LimitExceededException =-InternalServiceException" E-IncompatibleVersionException  A-ElasticTranscoderException 7-AccessDeniedException ;,ElasticTranscoderClient =+TooManyPoliciesException" E+TooManyAccessPointsException ;+SubnetNotFoundException! C+PolicyTypeNotFoundException ;+PolicyNotFoundException, Y+LoadBalancerAttributeNotFoundException ?+ListenerNotFoundException 9+InvalidSubnetException# G+InvalidSecurityGroupException 9+InvalidSchemeException =+InvalidEndPointException* U+InvalidConfigurationRequestException# G+ElasticLoadBalancingException" E+DuplicatePolicyNameException  A+DuplicateListenerException'
 O+DuplicateAccessPointNameException"	 E+CertificateNotFoundException" E+AccessPointNotFoundException  A*ElasticLoadBalancingClient" E)TooManyEnvironmentsException, Y)TooManyConfigurationTemplatesException ;)TooManyBucketsException) S)TooManyApplicationVersionsException" E)TooManyApplicationsException# G)SourceBundleDeletionException%  K)S3SubscriptionRequiredException+ W)S3LocationNotInServiceRegionException"~ E)OperationInProgressException%} K)InsufficientPrivilegesException| ?)ElasticBeanstalkException{ 1(ValidationSeverityz '(EventSeverityy /(EnvironmentStatusx 3(EnvironmentInfoTypew /(EnvironmentHealth"v E(ConfigurationOptionValueType#u G(ConfigurationDeploymentStatust 9'ElasticBeanstalkClients 5&SubnetInUseException1r c&ReservedCacheNodesOfferingNotFoundException-q [&ReservedCacheNodeQuotaExceededException(p Q&ReservedCacheNodeNotFoundException-o [&ReservedCacheNodeAlreadyExistsException'n O&ReplicationGroupNotFoundException,m Y&ReplicationGroupAlreadyExistsException+l W&NodeQuotaForCustomerExceededException*k U&NodeQuotaForClusterExceededException%j K&InvalidVPCNetworkStateExceptioni 9&InvalidSubnetException+h W&InvalidReplicationGroupStateException$g I&InvalidParameterValueException*f U&InvalidParameterCombinationException-e [&InvalidCacheSecurityGroupStateException.d ]&InvalidCacheParameterGroupStateException'c O&InvalidCacheClusterStateException/b _&InsufficientCacheClusterCapacityExceptiona 5&ElastiCacheException.` ]&ClusterQuotaForCustomerExceededException'_ O&CacheSubnetQuotaExceededException,^ Y&CacheSubnetGroupQuotaExceededException'] O&CacheSubnetGroupNotFoundException$\ I&CacheSubnetGroupInUseException,[ Y&CacheSubnetGroupAlreadyExistsException.Z ]&CacheSecurityGroupQuotaExceededException)Y S&CacheSecurityGroupNotFoundException.X ]&CacheSecurityGroupAlreadyExistsException/W _&CacheParameterGroupQuotaExceededException*V U&CacheParameterGroupNotFoundException/U _&CacheParameterGroupAlreadyExistsException#T G&CacheClusterNotFoundException   r oX9~aC/{O*V7hC"



t
P
/
				~	b	E	*	fF#sRA+]@(}S.tJq<h7X/                            #- GHInvalidDBSubnetGroupException%, KHInvalidDBSnapshotStateException*+ UHInvalidDBSecurityGroupStateException+* WHInvalidDBParameterGroupStateException%) KHInvalidDBInstanceStateException-( [HInsufficientDBInstanceCapacityException$' IHInstanceQuotaExceededException-& [HEventSubscriptionQuotaExceededException)% SHDBUpgradeDependencyFailureException$$ IHDBSubnetQuotaExceededException)# SHDBSubnetGroupQuotaExceededException$" IHDBSubnetGroupNotFoundException&! MHDBSubnetGroupNotAllowedException1  cHDBSubnetGroupDoesNotCoverEnoughAZsException) SHDBSubnetGroupAlreadyExistsException! CHDBSnapshotNotFoundException& MHDBSnapshotAlreadyExistsException+ WHDBSecurityGroupQuotaExceededException* UHDBSecurityGroupNotSupportedException& MHDBSecurityGroupNotFoundException+ WHDBSecurityGroupAlreadyExistsException, YHDBParameterGroupQuotaExceededException' OHDBParameterGroupNotFoundException, YHDBParameterGroupAlreadyExistsException! CHDBInstanceNotFoundException& MHDBInstanceAlreadyExistsException) SHAuthorizationQuotaExceededException$ IHAuthorizationNotFoundException) SHAuthorizationAlreadyExistsException !GSourceType #GApplyMethod )FOpsWorksClient 3EValidationException ?EResourceNotFoundException /EOpsWorksException
 !DSourceType	 )DRootDeviceType +DPermissionLevel DLayerType 7DDeploymentCommandName +DAutoScalingType %DArchitecture DAppType ;CPredictEndpointListener 7CMachineLearningClient  =BMachineLearningException %ALambdaClient~ +@LambdaException} ?KmsClient| %>KmsException{ '=KinesisClientz ?<ResourceNotFoundExceptiony 9<ResourceInUseException,x Y<ProvisionedThroughputExceededExceptionw 9<LimitExceededExceptionv -<KinesisExceptionu =<InvalidArgumentExceptiont =<ExpiredIteratorExceptions %;StreamStatusr /;ShardIteratorTypeq 3:JobManifestListenerp 1:ImportExportClient"o E9UnableToCancelJobIdExceptionn 79NoSuchBucketExceptionm =9MultipleRegionsExceptionl ?9MissingParameterException#k G9MissingManifestFieldExceptionj ;9MissingCustomsException i A9MalformedManifestExceptionh ?9InvalidParameterException#g G9InvalidManifestFieldExceptionf 79InvalidJobIdException e A9InvalidFileSystemExceptiond ;9InvalidCustomsExceptionc ;9InvalidAddressException!b C9InvalidAccessKeyIdExceptiona 79ImportExportException` 79ExpiredJobIdException_ 99CanceledJobIdException^ ?9BucketPermissionException] 8JobType\ 7IamClient&[ M6PasswordPolicyViolationExceptionZ 76NoSuchEntityException&Y M6MalformedPolicyDocumentException#X G6MalformedCertificateExceptionW 96LimitExceededExceptionV =6KeyPairMismatchExceptionU =6InvalidUserTypeExceptionT 76InvalidInputException!S C6InvalidCertificateException(R Q6InvalidAuthenticationCodeExceptionQ %6IamException,P Y6EntityTemporarilyUnmodifiableException"O E6EntityAlreadyExistsException#N G6DuplicateCertificateExceptionM ;6DeleteConflictExceptionL !5StatusTypeK 55AssignmentStatusTypeJ 34UploadPartGeneratorI /4UploadPartContextH !4UploadPartG 4UploadIdF '4UploadBuilderE '4TransferStateD )4SerialTransferC -4ParallelTransferB -4AbstractTransferA 73GlacierUploadListener@ '3GlacierClient!? C2ServiceUnavailableException> ?2ResourceNotFoundException= ;2RequestTimeoutException$< I2MissingParameterValueException   [  }S2m>e/yR-\/



p
;
			{	L	^1zFX)b4[,m6	l@{V0                                             ! CKSubnetAlreadyInUseException ;KSourceNotFoundException" EKSNSTopicArnNotFoundException! CKSNSNoAuthorizationException =KSNSInvalidTopicException# GKSnapshotCopyDisabledException) SKSnapshotCopyAlreadyEnabledException* UKSnapshotCopyAlreadyDisabledException  ;KResizeNotFoundException( QKReservedNodeQuotaExceededException+~ WKReservedNodeOfferingNotFoundException#} GKReservedNodeNotFoundException(| QKReservedNodeAlreadyExistsException{ /KRedshiftException)z SKNumberOfNodesQuotaExceededException3y gKNumberOfNodesPerClusterLimitExceededException%x KKInvalidVPCNetworkStateExceptionw 9KInvalidSubnetException&v MKInvalidS3KeyPrefixFaultException'u OKInvalidS3BucketNameFaultExceptiont ;KInvalidRestoreException+s WKInvalidHsmConfigurationStateException/r _KInvalidHsmClientCertificateStateExceptionq ?KInvalidElasticIpException(p QKInvalidClusterSubnetStateException-o [KInvalidClusterSubnetGroupStateException"n EKInvalidClusterStateException*m UKInvalidClusterSnapshotStateException/l _KInvalidClusterSecurityGroupStateException0k aKInvalidClusterParameterGroupStateException.j ]KInsufficientS3BucketPolicyFaultException*i UKInsufficientClusterCapacityException+h WKIncompatibleOrderableOptionsException,g YKHsmConfigurationQuotaExceededException'f OKHsmConfigurationNotFoundException,e YKHsmConfigurationAlreadyExistsException0d aKHsmClientCertificateQuotaExceededException+c WKHsmClientCertificateNotFoundException0b aKHsmClientCertificateAlreadyExistsException-a [KEventSubscriptionQuotaExceededException#` GKCopyToRegionDisabledException)_ SKClusterSubnetQuotaExceededException.^ ]KClusterSubnetGroupQuotaExceededException)] SKClusterSubnetGroupNotFoundException.\ ]KClusterSubnetGroupAlreadyExistsException+[ WKClusterSnapshotQuotaExceededException&Z MKClusterSnapshotNotFoundException+Y WKClusterSnapshotAlreadyExistsException0X aKClusterSecurityGroupQuotaExceededException+W WKClusterSecurityGroupNotFoundException0V aKClusterSecurityGroupAlreadyExistsException#U GKClusterQuotaExceededException1T cKClusterParameterGroupQuotaExceededException,S YKClusterParameterGroupNotFoundException1R cKClusterParameterGroupAlreadyExistsExceptionQ =KClusterNotFoundException#P GKClusterAlreadyExistsExceptionO ;KBucketNotFoundException)N SKAuthorizationQuotaExceededException$M IKAuthorizationNotFoundException)L SKAuthorizationAlreadyExistsException%K KKAccessToSnapshotDeniedExceptionJ !JSourceTypeI IRdsClient#H GHSubscriptionNotFoundException+G WHSubscriptionCategoryNotFoundException'F OHSubscriptionAlreadyExistException!E CHSubnetAlreadyInUseException#D GHStorageQuotaExceededExceptionC ;HSourceNotFoundException"B EHSNSTopicArnNotFoundException!A CHSNSNoAuthorizationException@ =HSNSInvalidTopicException$? IHSnapshotQuotaExceededException2> eHReservedDBInstancesOfferingNotFoundException.= ]HReservedDBInstanceQuotaExceededException)< SHReservedDBInstanceNotFoundException.; ]HReservedDBInstanceAlreadyExistsException: %HRdsException.9 ]HProvisionedIopsNotAvailableInAZException+8 WHPointInTimeRestoreNotEnabledException'7 OHOptionGroupQuotaExceededException"6 EHOptionGroupNotFoundException'5 OHOptionGroupAlreadyExistsException%4 KHInvalidVPCNetworkStateException3 9HInvalidSubnetException2 ;HInvalidRestoreException&1 MHInvalidOptionGroupStateException,0 YHInvalidEventSubscriptionStateException#/ GHInvalidDBSubnetStateException(. QHInvalidDBSubnetGroupStateException   t  xQ"iU2"~Y3e;!kN$	





~
g
T
A
+

							w	g	V	@	!	 eD`/nD"oL-~X6bCzS) lB&        +| WUNoSuchLifecycleConfigurationException{ 1UNoSuchKeyException&z MUNoSuchCORSConfigurationException!y CUNoSuchBucketPolicyExceptionx 7UNoSuchBucketException$w IUNoLoggingStatusForKeyException$v IUMissingSecurityHeaderException%u KUMissingSecurityElementException&t MUMissingRequestBodyErrorException#s GUMissingContentLengthException r AUMissingAttachmentExceptionq ?UMethodNotAllowedExceptionp ?UMetadataTooLargeException0o aUMaxPostPreDataLengthExceededErrorException'n OUMaxMessageLengthExceededExceptionm 7UMalformedXMLException#l GUMalformedPOSTRequestException k AUMalformedACLErrorExceptionj 3UKeyTooLongExceptioni 3UInvalidURIExceptionh 7UInvalidTokenException,g YUInvalidTargetBucketForLoggingExceptionf =UInvalidTagErrorException"e EUInvalidStorageClassException!d CUInvalidSOAPRequestExceptionc =UInvalidSecurityExceptionb ;UInvalidRequestExceptiona 7UInvalidRangeException$` IUInvalidPolicyDocumentException_ 7UInvalidPayerException^ ?UInvalidPartOrderException] 5UInvalidPartException(\ QUInvalidLocationConstraintException[ 9UInvalidDigestException!Z CUInvalidBucketStateException Y AUInvalidBucketNameExceptionX =UInvalidArgumentException&W MUInvalidAddressingHeaderException!V CUInvalidAccessKeyIdExceptionU 9UInternalErrorException!T CUInlineDataTooLargeException2S eUIncorrectNumberOfFilesInPostRequestExceptionR ;UIncompleteBodyException-Q [UIllegalVersioningConfigurationExceptionP 7UExpiredTokenExceptionO ;UEntityTooSmallExceptionN ;UEntityTooLargeException$M IUDeleteMultipleObjectsException-L [UCrossLocationLoggingProhibitedException&K MUCredentialsNotSupportedExceptionJ ;UBucketNotEmptyException&I MUBucketAlreadyOwnedByYouException"H EUBucketAlreadyExistsExceptionG 1UBadDigestException+F WUAmbiguousGrantByEmailAddressExceptionE ;UAccountProblemExceptionD 7UAccessDeniedExceptionC %TStorageClassB TStorageA TStatus@ 5TServerSideEncryption? TProtocol> !TPermission= TPayer< TMFADelete; /TMetadataDirective: TGroup9 #TGranteeType8 TEvent7 %TEncodingType6 TCannedAcl5 SS3Command4 'RStreamWrapper3 )RSseCpkListener2 5RSocketTimeoutChecker1 'RS3SignatureV40 #RS3Signature/ 'RS3Md5Listener. RS3Client- /RResumableDownload&, MRIncompleteMultipartUploadChecker+ 3RBucketStyleListener* #RAcpListener) 5QRoute53DomainsClient( ;PRoute53DomainsException' 'ORoute53Client!& CNTooManyHostedZonesException"% ENTooManyHealthChecksException$ -NRoute53Exception&# MNPriorRequestNotCompleteException" ?NNoSuchHostedZoneException ! ANNoSuchHealthCheckException  7NNoSuchChangeException 7NInvalidInputException  ANInvalidDomainNameException! CNInvalidChangeBatchException" ENIncompatibleVersionException! CNHostedZoneNotEmptyException& MNHostedZoneAlreadyExistsException ?NHealthCheckInUseException' ONHealthCheckAlreadyExistsException( QNDelegationSetNotAvailableException MStatus ?MResourceRecordSetFailover !MRecordType +MHealthCheckType MAction )LRedshiftClient  AKUnsupportedOptionException( QKUnknownSnapshotCopyRegionException$ IKUnauthorizedOperationException+ WKSubscriptionSeverityNotFoundException# GKSubscriptionNotFoundException* UKSubscriptionEventIdNotFoundException+
 WKSubscriptionCategoryNotFoundException'	 OKSubscriptionAlreadyExistException   y! uT6kF+qL$	yGfYE0






u
^
G
5
!
						s	X	B	(	[8pQ i:qQ.~JnV@"pWB,lD!                                       u ?lIDPRejectedClaimException$t IlIDPCommunicationErrorExceptions 7lExpiredTokenExceptionr 5kStorageGatewayClientq ;jStorageGatewayException$p IjInvalidGatewayRequestException"o EjInternalServerErrorExceptionn !iVolumeTypem %iVolumeStatusl #iGatewayTypek +iGatewayTimezonej %iGatewayStatei iErrorCodeh 1iDiskAllocationTypeg 'iBandwidthTypef hSsmCliente %gSsmExceptiond fSqsClientc -fQueueUrlListenerb 5fMd5ValidatorListenera %eSqsException` )dQueueAttribute_ -dMessageAttribute^ cSnsClient] -bMessageValidator\ bMessage"[ EaSnsMessageValidatorException&Z MaInvalidMessageSignatureException0Y aaCertificateFromUnrecognizedSourceException0X aaCannotGetPublicKeyFromCertificateException!W C`TopicLimitExceededException(V Q`SubscriptionLimitExceededExceptionU %`SnsException*T U`PlatformApplicationDisabledExceptionS /`NotFoundExceptionR ?`InvalidParameterExceptionQ 9`InternalErrorExceptionP ?`EndpointDisabledException!O C`AuthorizationErrorExceptionN )_SimpleDbClient)M S^TooManyRequestedAttributesExceptionL /^SimpleDbExceptionK ;^RequestTimeoutException+J W^NumberSubmittedItemsExceededException0I a^NumberSubmittedAttributesExceededException+H W^NumberItemAttributesExceededException$G I^NumberDomainsExceededException(F Q^NumberDomainBytesExceededException-E [^NumberDomainAttributesExceededExceptionD 7^NoSuchDomainExceptionC ?^MissingParameterException%B K^InvalidQueryExpressionException$A I^InvalidParameterValueException&@ M^InvalidNumberValueTestsException&? M^InvalidNumberPredicatesException> ?^InvalidNextTokenException = A^DuplicateItemNameException$< I^AttributeDoesNotExistException; ]SesClient: %\SesException9 =\MessageRejectedException8 1[VerificationStatus7 -[NotificationType6 -[MailboxSimulator5 %[IdentityType4 /ZUploadSyncBuilder3 !ZUploadSync2 %ZKeyConverter1 3ZDownloadSyncBuilder0 %ZDownloadSync/ 5ZChangedFilesIterator. 3ZAbstractSyncBuilder- %ZAbstractSync, !YUploadPart+ YUploadId* 'YUploadBuilder) 'YTransferState( )YSerialTransfer' -YParallelTransfer& -YAbstractTransfer% !XPostObject$ XGrantee# XGrant" 7XDeleteObjectsTransfer! 1XDeleteObjectsBatch  #XClearBucket !XAcpBuilder	 XAcp +WOpendirIterator  AWListObjectVersionsIterator 3WListObjectsIterator" EWListMultipartUploadsIterator 3WListBucketsIterator /VS3ExceptionParser% KUUserKeyMustBeSpecifiedException. ]UUnresolvableGrantByEmailAddressException  AUUnexpectedContentException ;UTooManyBucketsException# GUTokenRefreshRequiredException  AUTemporaryRedirectException /USlowDownException$ IUSignatureDoesNotMatchException! CUServiceUnavailableException #US3Exception* UURequestTorrentOfBucketErrorException# GURequestTimeTooSkewedException ;URequestTimeoutException+
 WURequestIsNotMultiPartContentException	 /URedirectException! CUPreconditionFailedException  AUPermanentRedirectException ?UOperationAbortedException) SUObjectNotInActiveTierErrorException- [UObjectAlreadyInActiveTierErrorException" EUNotSuchBucketPolicyException 5UNotSignedUpException ;UNotImplementedException)  SUNoSuchWebsiteConfigurationException 9UNoSuchVersionException~ 7UNoSuchUploadException} 7UNoSuchTagSetException   # jCtM- uP:
}fE0vS-





g
E

 					q	]	?	$	pO3{aD,~aE }a=&mSB)rYE/pbE&t[H5#         ~ ListWith} ListPaths| ListFiles{ +GetWithMetadataz EmptyDiry )AbstractPlugin
x Utilw 9RootViolationExceptionv 7NotSupportedExceptionu %MountManagert Handlers !Filesystemr 7FileNotFoundExceptionq 3FileExistsException
p Fileo Exceptionn Directorym Configl #SynologyFtpk #NullAdapterj Local
i Ftpd	h Ftpg 1AbstractFtpAdapterf +AbstractAdaptere %TransferFiled !DeleteFilec +RestoreDatabaseb %DumpDatabasea )DecompressFile` %CompressFile_ )ShellProcessor^ 1ShellProcessFailed] Sequence\ -RestoreProcedure[ ProcedureZ +BackupProcedureY ManagerX -DbRestoreCommandW 'DbListCommandV +DbBackupCommandU #BaseCommand"T EBackupManagerServiceProviderS )SftpFilesystemR 3RackspaceFilesystemQ +LocalFilesystemP 'FtpFilesystem O AFilesystemTypeNotSupportedN 1FilesystemProviderM /DropboxFilesystemL +Awss3FilesystemK 1PostgresqlDatabaseJ 'MysqlDatabaseI =DatabaseTypeNotSupportedH -DatabaseProvider!G CConfigNotFoundForConnectionF 1ConfigFileNotFoundE 3ConfigFieldNotFoundD ConfigC )NullCompressorB )GzipCompressor A ACompressorTypeNotSupported@ 1CompressorProvider? !Compressor> -~TransferFileSpec= )~DeleteFileSpec< 3}RestoreDatabaseSpec; -}DumpDatabaseSpec: 1|DecompressFileSpec9 -|CompressFileSpec8 1{ShellProcessorSpec7 %zSequenceSpec6 5zRestoreProcedureSpec5 3zBackupProcedureSpec4 #yManagerSpec3 1xSftpFilesystemSpec2 ;xRackspaceFilesystemSpec1 3xLocalFilesystemSpec0 /xFtpFilesystemSpec/ 9xFilesystemProviderSpec. 7xDropboxFilesystemSpec- 3xAwss3FilesystemSpec, 9wPostgresqlDatabaseSpec+ /wMysqlDatabaseSpec* 5wDatabaseProviderSpec) !vConfigSpec( 1uNullCompressorSpec' 1uGzipCompressorSpec& 9uCompressorProviderSpec% -tWorkSpacesClient$ 3sWorkSpacesException# rSwfClient." ]qWorkflowExecutionAlreadyStartedException! =qUnknownResourceException  ;qTypeDeprecatedException  AqTypeAlreadyExistsException %qSwfException$ IqOperationNotPermittedException 9qLimitExceededException ?qDomainDeprecatedException" EqDomainAlreadyExistsException ?qDefaultUndefinedException" EpWorkflowExecutionTimeoutType 1pRegistrationStatus +pExecutionStatus pEventType %pDecisionType ;pDecisionTaskTimeoutType #pCloseStatus #pChildPolicy ;pActivityTaskTimeoutType 'oSupportClient -nSupportException" EnInternalServerErrorException ;nCaseIdNotFoundException( QnCaseCreationLimitExceededException
 mStsClient	 3lThrottlingException %lStsException! ClServiceUnavailableException ;lRequestExpiredException# GlPackedPolicyTooLargeException 9lOptInRequiredException ?lMissingParameterException) SlMissingAuthenticationTokenException 9lMissingActionException#  GlMalformedQueryStringException& MlMalformedPolicyDocumentException$~ IlInvalidQueryParameterException$} IlInvalidParameterValueException*| UlInvalidParameterCombinationException#{ GlInvalidIdentityTokenException#z GlInvalidClientTokenIdException*y UlInvalidAuthorizationMessageExceptionx 9lInvalidActionExceptionw =lInternalFailureException"v ElIncompleteSignatureException   R qV6%}iSC3nF2cN? nZF0






s
_
H
3
#
						l	X	C	2	jQ0iL1qU='iV?.yjX3 {dJ2nU>$
cR                 Handler =ExceptionServiceProvider 5EventServiceProvider !Dispatcher 3InvalidKeyException ?EncryptionServiceProvider Encrypter -DecryptException -SqlServerGrammar 'SQLiteGrammar +PostgresGrammar %MySqlGrammar Grammar %MySqlBuilder Builder Blueprint 1SqlServerProcessor
 +SQLiteProcessor	 Processor /PostgresProcessor )MySqlProcessor -SqlServerGrammar 'SQLiteGrammar +PostgresGrammar %MySqlGrammar Grammar !JoinClause  !Expression Builder~ Migrator} -MigrationCreator| Migration!{ CDatabaseMigrationRepositoryz Relationy Pivotx #MorphToManyw MorphTov !MorphPivotu )MorphOneOrManyt MorphOnes MorphManyr %HasOneOrManyq HasOnep )HasManyThrougho HasManyn 'BelongsToManym BelongsTol /SoftDeletingScopek 9ModelNotFoundExceptionj Modeli ;MassAssignmentExceptionh !Collectiong Builderf #SeedCommande +RollbackCommandd %ResetCommandc )RefreshCommandb 1MigrateMakeCommanda )MigrateCommand` )InstallCommand_ #BaseCommand^ 1SqlServerConnector] +SQLiteConnector\ /PostgresConnector[ )MySqlConnectorZ ConnectorY /ConnectionFactoryX 3SqlServerConnectionW -SQLiteConnectionV 3SeedServiceProviderU SeederT )QueryExceptionS 1PostgresConnectionR +MySqlConnectionQ =MigrationServiceProviderP GrammarO ;DatabaseServiceProviderN +DatabaseManagerM 1ConnectionResolverL !ConnectionK ManagerJ QueueI GuardH 7CookieServiceProviderG CookieJarF Container E ABindingResolutionExceptionD CommandC #ApplicationB !RepositoryA !FileLoader$@ IFileEnvironmentVariablesLoader? 5EnvironmentVariables> %ClearCommand= /CacheTableCommand< #XCacheStore; 'WinCacheStore: TagSet9 #TaggedCache8 'TaggableStore7 !Repository6 -RedisTaggedCache5 !RedisStore4 NullStore3 )MemcachedStore2 1MemcachedConnector1 FileStore0 'DatabaseStore/ 5CacheServiceProvider. %CacheManager- !ArrayStore, !ApcWrapper+ ApcStore* ;ReminderServiceProvider) )PasswordBroker ( ADatabaseReminderRepository' 7RemindersTableCommand & ARemindersControllerCommand% 7ClearRemindersCommand$ Guard# #GenericUser" 5EloquentUserProvider! 5DatabaseUserProvider  3AuthServiceProvider #AuthManager =UtilitiesServiceProvider  APHPToJavaScriptTransformer /LaravelViewBinder !JavaScript$ IPHPToJavaScriptTransformerSpec =UtilitiesServiceProvider  APHPToJavaScriptTransformer /LaravelViewBinder !JavaScript$ IPHPToJavaScriptTransformerSpec !WriterTest !ReaderTest Writer Reader %AbstractBase !WriterTest !ReaderTest Writer Reader %AbstractBase
 #RollbarTest	 3RollbarNotifierTest Ratchetio +RollbarNotifier Rollbar 9RollbarServiceProvider /RollbarLogHandler 9RollbarServiceProvider /RollbarLogHandler MimeType  ;ContentListingFormatter ;PluginNotFoundException   B _J5$uX?'	cJ3{Z3fG7%






g
V
D
(

						s	b	?	,		 t`N;+iL5zcRE3# hI5kU8!xX<(n^M9qbRB  7 Cookie6 Config5 Cache4 Blade
3 Auth2 Artisan	1 App0 %ViewErrorBag	/ Str. +ServiceProvider- 3SerializableClosure, !Pluralizer+ 9NamespacedItemResolver* !MessageBag) Manager( Fluent' !Collection& #ClassLoader	% Arr$ 3SessionTableCommand# 9TokenMismatchException" Store! 9SessionServiceProvider  )SessionManager !Middleware 1FileSessionHandler 9DatabaseSessionHandler 5CookieSessionHandler ;CommandsServiceProvider =CacheBasedSessionHandler %UriValidator +SchemeValidator +MethodValidator 'HostValidator 3ControllerGenerator %UrlGenerator 9RoutingServiceProvider Router +RouteCollection Route !Redirector ?ControllerServiceProvider 3ControllerInspector 5ControllerDispatcher !Controller
 7MakeControllerCommand	 'SecLibGateway 7RemoteServiceProvider 'RemoteManager +MultiConnection !Connection 5RedisServiceProvider Database SyncJob SqsJob  RedisJob	 Job~ IronJob} 'BeanstalkdJob| 9IlluminateQueueClosure{ ?DatabaseFailedJobProviderz #WorkCommandy -SubscribeCommandx %RetryCommandw )RestartCommandv /ListFailedCommandu 'ListenCommandt 3ForgetFailedCommands 1FlushFailedCommandr 1FailedTableCommandq 'SyncConnectorp %SqsConnectoro )RedisConnectorn 'IronConnectorm 3BeanstalkdConnectorl Managerk Workerj SyncQueuei SqsQueueh !RedisQueueg 5QueueServiceProviderf %QueueManagere Queued Listenerc IronQueue b AFailConsoleServiceProvidera +BeanstalkdQueue` Presenter_ Paginator^ ?PaginationServiceProvider] Factory\ 1BootstrapPresenter[ /MandrillTransportZ -MailgunTransportY %LogTransportX MessageW 3MailServiceProviderV MailerU WriterT 1LogServiceProviderS ResponseR RequestQ -RedirectResponseP %JsonResponseO !FrameGuardN 3HtmlServiceProviderM #HtmlBuilderL #FormBuilderK 3HashServiceProviderJ %BcryptHasherI TestCaseH ClientG 7TinkerServiceProviderF 7ServerServiceProviderE =RouteListServiceProviderD =PublisherServiceProviderC ;OptimizeServiceProvider B AMaintenanceServiceProvider!A CKeyGeneratorServiceProvider#@ GConsoleSupportServiceProvider? ;ComposerServiceProvider#> GCommandCreatorServiceProvider= 9ArtisanServiceProvider< 1ViewPublishCommand; UpCommand: 'TinkerCommand9 #TailCommand8 %ServeCommand7 'RoutesCommand6 +OptimizeCommand5 7MigratePublishCommand4 1KeyGenerateCommand3 1EnvironmentCommand2 #DownCommand1 5ConfigPublishCommand0 1CommandMakeCommand/ 5ClearCompiledCommand. )ChangesCommand- +AutoloadCommand, 3AssetPublishCommand+ 'ViewPublisher* 1ProviderRepository) 1MigrationPublisher( 3EnvironmentDetector' +ConfigPublisher& Composer% )AssetPublisher$ Artisan# #Application" #AliasLoader! ?FilesystemServiceProvider  !Filesystem 7FileNotFoundException +WhoopsDisplayer -SymfonyDisplayer )PlainDisplayer   _ qdVC1"s_;'}mUB1tbJ)s]>/







p
H
6
 
						q	O	5		~nR9 r[='xV<%uY@'ybD'iJ3v\>#{_                   Y 1JavascriptRendererX /DebugBarExceptionW DebugBarV 'DataFormatterU +TracedStatementT 7TraceablePDOStatementS %TraceablePDOR %PDOCollectorQ /TimeDataCollectorP 5RequestDataCollectorO -PhpInfoCollectorN /MessagesCollectorM +MemoryCollectorL 7LocalizationCollectorK 3ExceptionsCollectorJ 'DataCollectorI +ConfigCollectorH 3AggregatedCollectorG 'TwigCollectorF 7TraceableTwigTemplateE =TraceableTwigEnvironmentD 1 SwiftMailCollectorC / SwiftLogCollectorB 'SlimCollectorA +PropelCollector@ -MonologCollector? /DoctrineCollector> 3CacheCacheCollector= 5StopwatchTokenParser< 'StopwatchNode; Stopwatch
: Dump9 Debug8 /FilesystemStorage#7 GCreatePhpdebugbarStorageTable6 Stack5 Debugbar4 /SymfonyHttpDriver3 +ServiceProvider2 +LaravelDebugbar1 1JavascriptRenderer0 Facade/ 'ValueExporter. 'ViewCollector- 7SymfonyRouteCollector, ;SymfonyRequestCollector+ -SessionCollector* )QueryCollector) 'LogsCollector( -LaravelCollector' =IlluminateRouteCollector& )FilesCollector% )EventCollector$ 'AuthCollector# 7OpenHandlerController" )BaseController! +AssetController  )PublishCommand %ClearCommand 5StopwatchTokenParser 'StopwatchNode Stopwatch
 Dump Debug /FilesystemStorage# GCreatePhpdebugbarStorageTable Stack Debugbar /SymfonyHttpDriver +ServiceProvider +LaravelDebugbar 1JavascriptRenderer Facade 'ValueExporter 'ViewCollector 7SymfonyRouteCollector ;SymfonyRequestCollector -SessionCollector )QueryCollector
 'LogsCollector	 -LaravelCollector =IlluminateRouteCollector )FilesCollector )EventCollector 'AuthCollector 7OpenHandlerController )BaseController +AssetController )PublishCommand  %ClearCommand Gravatar$~ ILaravelGravatarServiceProvider} Gravatar| Gravatar{ #SitemapTestz 9SitemapServiceProvidery Sitemapx Modelw #SitemapTestv 9SitemapServiceProvideru Sitemapt Models 7HoneypotValidatorTestr %HoneypotTestq /HoneypotValidatorp ;HoneypotServiceProvidero )HoneypotFacaden Honeypotm 7HoneypotValidatorTestl %HoneypotTestk /HoneypotValidatorj ;HoneypotServiceProvideri )HoneypotFacadeh Honeypotg =WorkbenchServiceProviderf Startere )PackageCreatord Packagec 5WorkbenchMakeCommandb 3ViewServiceProvider
a View` )FileViewFinder_ Factory^ PhpEngine] )EngineResolver\ Engine[ )CompilerEngineZ CompilerY 'BladeCompilerX ValidatorW ?ValidationServiceProviderV FactoryU =DatabasePresenceVerifierT !Translator S ATranslationServiceProviderR !FileLoader
Q ViewP Validator	O URL	N SSHM SessionL SchemaK RouteJ ResponseI RequestH RedisG RedirectF QueueE PasswordD Paginator
C Mail	B Log
A Lang@ Input
? HTML
> Hash
= Form
< File; Facade: Event9 DB8 Crypt    o[E'sP1oU:$iU@*wV2




t
R
2
							a	J	+	}gV;eG&zM' QA0lB{J"So[E$X 5Mockery_DemeterowskiW ;Mockery_Duck_NonswimmerV %Mockery_DuckU !MyService2T =MockeryTest_InterMethod1S =MockeryTest_SubjectCall1R +ExpectationTestQ -DemeterChainTest1P cMockeryTest_ClassThatImplementsSerializable4O iMockeryTest_ClassThatDescendsFromInternalClass9N sMockeryTest_MethodWithRequiredParamWithDefaultValueM ?MockeryTest_PartialStatic$L IMockeryTest_Lowercase_ToStringK 5EmptyConstructorTest%J KMockeryTest_OldStyleConstructor$I IMockeryTest_ImplementsIterator-H [MockeryTest_ImplementsIteratorAggregateG =MockeryTest_WithToString&F MMockeryTest_MockCallableTypeHint#E GMockeryTest_TestInheritedType'D OMockeryTest_PartialAbstractClass2%C KMockeryTest_PartialNormalClass2&B MMockeryTest_PartialAbstractClass$A IMockeryTest_PartialNormalClass@ +MockeryTestRef1!? CMockeryTest_MethodParamRef2 > AMockeryTest_MethodParamRef= ;MockeryTest_ReturnByRef< +MockeryTestBar1; Gateway: SoCool29 eMockeryTest_AbstractWithAbstractPublicMethod"8 EMockeryTest_ExistingProperty7 3MockeryTest_Wakeup16 /MockeryTest_Call25 /MockeryTest_Call1#4 GMockeryTest_ClassConstructor2"3 EMockeryTest_ClassConstructor)2 SMockeryTest_WithProtectedAndPrivate,1 YMockeryTest_AbstractWithAbstractMethod0 #MockeryFoo4/ #MockeryFoo3. +MockeryTestFoo2- )MockeryTestFoo, ;MockeryTest_UnsetMethod+ ;MockeryTest_IssetMethod* 5MockeryTestIsset_Foo) 5MockeryTestIsset_Bar0( aMockeryTest_ClassMultipleConstructorParams' 9MockeryTest_CallStatic& 'ContainerTest % AMockeryTest_NameOfAbstract%$ KMockeryTest_NameOfExistingClass# /Mockery_AdhocTest" Mockery! %StarshipTest  Starship )FeatureContext Table +RemoveFromTable %DroppedTable #CreateTable !AddToTable 3MigrationNameParser 7MigrationFieldsParser 'SchemaCreator 5InvalidMigrationName ?GeneratorsServiceProvider Generator !Filesystem %FileNotFound /FileAlreadyExists -TemplateCompiler 5ViewGeneratorCommand 9SeederGeneratorCommand =ScaffoldGeneratorCommand =ResourceGeneratorCommand ;PublishTemplatesCommand
 7PivotGeneratorCommand	 7ModelGeneratorCommand ?MigrationGeneratorCommand -GeneratorCommand  AControllerGeneratorCommand ;MigrationNameParserSpec ?MigrationFieldsParserSpec /SchemaCreatorSpec 'GeneratorSpec 5TemplateCompilerSpec  )FeatureContext Table~ +RemoveFromTable} %DroppedTable| #CreateTable{ !AddToTablez 3MigrationNameParsery 7MigrationFieldsParserx 'SchemaCreatorw 5InvalidMigrationNamev ?GeneratorsServiceProvideru Generatort !Filesystems %FileNotFoundr /FileAlreadyExistsq -TemplateCompilerp 5
ViewGeneratorCommando 9
SeederGeneratorCommandn =
ScaffoldGeneratorCommandm =
ResourceGeneratorCommandl ;
PublishTemplatesCommandk 7
PivotGeneratorCommandj 7
ModelGeneratorCommandi ?
MigrationGeneratorCommandh -
GeneratorCommand g A
ControllerGeneratorCommandf ;	MigrationNameParserSpece ?	MigrationFieldsParserSpecd /SchemaCreatorSpecc 'GeneratorSpecb 5TemplateCompilerSpeca %RedisStorage` !PdoStorage_ -MemcachedStorage^ #FileStorage] -StandardDebugBar\ 1RequestIdGenerator[ 'PhpHttpDriverZ #OpenHandler   8 tC(bI' wdQ<	wV6d<"





t
O
1
						p	Y	F	,	q]F.o_R@0"gGbQ:}bB$iB$fI"|aH8                            b 0IOSpeca +0ApplicationSpec` //OptionsConfigSpec_ ;.TokenizedCodeWriterSpec^ 5-TemplateRendererSpec] 5-GeneratorManagerSpec \ A,SpecificationGeneratorSpec![ C,ReturnConstantGeneratorSpec#Z G,NamedConstructorGeneratorSpecY 3,MethodGeneratorSpecX 1,ClassGeneratorSpecW 9+ObjectWithPublicMethodV ;+ObjectWithPrivateMethodU 1+ObjectWithNoMethodT =+ObjectWithPublicPropertyS ?+ObjectWithPrivatePropertyR 5+ObjectWithNoProperty#Q G+VisibilityAccessInspectorSpecP 3+ObjectWithMagicCallO 1+ObjectWithMagicSetN 1+ObjectWithMagicGet#M G+MagicAwareAccessInspectorSpecL %*QuestionTestK #*FactoryTestJ !*DialogTestI 5)ValidJUnitXmlMatcherH 9)FileHasContentsMatcherG /)FileExistsMatcherF =)ApplicationOutputMatcherE (ReRunnerD (PrompterC 9'IsolatedProcessContextB /'FilesystemContextA 1'ApplicationContext@ 9&Evenement_EventEmitter? '&GeneratorTest> %SpyTest= ?%TestWithVariadicArguments"< E%MockingVariadicArgumentsTest; =%TestWithProtectedMethods!: C%MockingProtectedMethodsTest'9 O%HasUnknownClassAsTypeHintOnMethod&8 M%MockClassWithUnknownTypeHintTest7 9%TestWithNonFinalWakeup6 ;%SubclassWithFinalWakeup5 3%TestWithFinalWakeup"4 E%MockClassWithFinalWakeupTest3 /$InterfacePassTest2 5$InstanceMockPassTest1 5$CallTypeHintPassTest
0 #Type/ #Subset. #NotAnyOf	- #Not, #MustBe+ +#MatcherAbstract* #HasValue) #HasKey( #Ducktype' #Contains& #Closure% #AnyOf	$ #Any# /"RequireLoaderTest" )"LoaderTestCase! )"EvalLoaderTest  '"RequireLoader !"EvalLoader /!ClassNamePassTest9 s!RemoveUnserializeForInternalSerializableClassesPass* U!RemoveBuiltinMethodsThatAreFinalPass 5!MethodDefinitionPass '!InterfacePass -!InstanceMockPass !ClassPass '!ClassNamePass -!CallTypeHintPass 1 ClassWithMagicCall" E MockConfigurationBuilderTest 5 ClassWithFinalMethod # TestSubject  TestFinal 7 MockConfigurationTest 5 UndefinedTargetClass! C StringManipulationGenerator  Parameter ) MockDefinition = MockConfigurationBuilder
 / MockConfiguration	  Method 1 DefinedTargetClass - CachingGenerator -RuntimeException$ INoMatchingExpectationException 7InvalidOrderException 7InvalidCountException Exception Exact  9CountValidatorAbstract AtMost~ AtLeast-} [MockeryTest_ClassThatExtendsArrayObject| 9DefinedTargetClassTest{ ;VerificationExpectationz 5VerificationDirectory Undefinedx Recorderw 3ReceivedMethodCalls
v Mocku !MethodCallt Loaders %Instantiatorr 3ExpectationDirectorq #Expectationp Exceptiono Containern 'Configurationm 5CompositeExpectationl %TestListenerk +MockeryTestCase!j CClassWithPublicStaticGetter#i GClassWithPublicStaticPropertyh =ClassWithGetterWithParamg +ClassWithGetter"f EWithFormatterExpectationTeste 9MockeryTestSubjectUserd 1MockeryTestSubjectc %RecorderTestb 'NamedMockTesta -ClassWithMethods` 3ClassWithNoToString_ /ClassWithToString-^ [ExampleClassForTestingNonExistentMethod] -Mockery_MockTest\ 1Mockery_LoaderTest[ ;HamcrestExpectationTestZ +MockeryTest_FooY 1Mockery_UseDemeter   % nV7g@y]F'hR9%pY<




f
>
					y	f	M	3	z[> kK,}\C#{cG0^H2	hL3lR8n^M;%                   g %QExampleEventf PQuestione PFactoryd PDialogc !ORunCommandb +ODescribeCommanda +NResultConverter` NIO_ NFormatter^ 1NContainerAssembler] #NApplication\ 'MOptionsConfig[ 3LTokenizedCodeWriterZ -KTemplateRendererY -KGeneratorManagerX 9JSpecificationGeneratorW ;JReturnConstantGeneratorV 1JPromptingGenerator!U CJPrivateConstructorGeneratorT ?JNamedConstructorGeneratorS =JMethodSignatureGeneratorR +JMethodGeneratorQ 1JInterfaceGenerator!P CJExistingConstructorTemplateO 5JCreateObjectTemplateN )JClassGeneratorM ?IVisibilityAccessInspectorL ?IMagicAwareAccessInspectorK !HEverythingJ #HSubjectSpecI %GPositiveSpecH %GNegativeSpecG ;GDispatcherDecoratorSpecF GDecoratorE 'GDecoratorSpecD =GConstructorDecoratorSpecC /FWrappedObjectSpecB 9FExpectationFactorySpecA %FExampleClass@ !FCallerSpec? 'EExampleObject> 1EMethodAnalyserSpec= )EWithProperties< +EWithConstructor; 'ENoConstructor: -EInstantiatorSpec9 ;EExampleObjectUsingTrait8 7EClassFileAnalyserSpec7 5DServiceContainerSpec6 9CMatchersMaintainerSpec5 +BSuiteRunnerSpec4 ;BSpecificationRunnerSpec3 1BMatcherManagerSpec2 /BExampleRunnerSpec1 ;BCollaboratorManagerSpec0 /APcntlReRunnerSpec/ 5APassthruRerunnerSpec. 5AOptionalReRunnerSpec- 7ACompositeReRunnerSpec, 9@SuitePrerequisitesSpec+ =?JsonExecutionContextSpec* +>TypeMatcherSpec) ->ThrowMatcherSpec( 9>StringStartMatcherSpec' 9>StringRegexMatcherSpec& 5>StringEndMatcherSpec% 9>ObjectStateMatcherSpec$ 3>IdentityMatcherSpec# 7>ComparisonMatcherSpec" 3>CallbackMatcherSpec! =>ArrayKeyValueMatcherSpec  3>ArrayKeyMatcherSpec 7>ArrayCountMatcherSpec ;>ArrayContainMatcherSpec 3=ResourceManagerSpec -<PSR0ResourceSpec +<PSR0LocatorSpec ;SuiteSpec 7:SpecificationNodeSpec +:ExampleNodeSpec ?9StopOnFailureListenerSpec ;9StatisticsCollectorSpec /9RerunListenerSpec* U9NamedConstructorNotFoundListenerSpec$ I9MethodReturnedNullListenerSpec  A9MethodNotFoundListenerSpec& M9CollaboratorNotFoundListenerSpec -9DoubleOfStdClass /9DoubleOfInterface, Y9CollaboratorMethodNotFoundListenerSpec ?9ClassNotFoundListenerSpec 38TaggedPresenterSpec '8WithMagicCall
 38WithStaticMagicCall	 +8WithMagicInvoke -8WithStaticMethod !8WithMethod 38StringPresenterSpec -7StringEngineSpec -7ObjectEngineSpec !7DifferSpec +7ArrayEngineSpec %6TemplateSpec  76ReportPendingItemSpec 56ReportPassedItemSpec~ 76ReportItemFactorySpec} 56ReportFailedItemSpec| 6IOSpec{ /6HtmlPresenterSpecz -5TapFormatterSpecy 75ProgressFormatterSpecx '5ExceptionStubw 15JUnitFormatterSpecv /5HtmlFormatterSpecu -5DotFormatterSpect 95TestableBasicFormatters 15BasicFormatterSpec#r G4PropertyNotFoundExceptionSpec+q W4NamedConstructorNotFoundExceptionSpec#p G4MethodNotVisibleExceptionSpec!o C4MethodNotFoundExceptionSpec*n U4InterfaceNotImplementedExceptionSpec m A4ClassNotFoundExceptionSpecl '3ExceptionSpeck 53ExceptionFactorySpec j A2StopOnFailureExceptionSpeci 72NotEqualExceptionSpech )1SuiteEventSpecg 91SpecificationEventSpecf 31MethodCallEventSpece 51ExpectationEventSpecd -1ExampleEventSpecc 30ResultConverterSpec   9 kQ7zS&zO,mU;%nbH-






z
a
H
-
				x	N	7	y`C(r[A%	iM2|_J)u]G2!|iL8&oa?Y9                         s 9qKint_Parsers_Timestamp#r GqKint_Parsers_SplObjectStorageq =qKint_Parsers_SplFileInfop 9qKint_Parsers_Microtimeo /qKint_Parsers_Jsonn 1qKint_Parsers_Colorm ?qKint_Parsers_ClassStaticsl ?qKint_Parsers_ClassMethodsk =qKint_Parsers_ArrayObject
j qKinti 5qKint_Decorators_Richh 7qKint_Decorators_Plaing ;qKint_Decorators_Concisef +lUnwrapDecoratore 'lPositiveThrowd lPositivec 'lNegativeThrowb lNegativea !lDuringCall` 3lDispatcherDecorator_ lDecorator^ 5lConstructorDecorator] 'kWrappedObject\ 9kSubjectWithArrayAccess[ 1kExpectationFactoryZ kCallerY jWrapperX jUnwrapperW jSubjectV #jDelayedCallU %jCollaboratorT )iMethodAnalyserS %iInstantiatorR !iFilesystemQ /iClassFileAnalyserP /hSubjectMaintainerO 1hMatchersMaintainerN 7hLetAndLetgoMaintainerM +hErrorMaintainerL ;hCollaboratorsMaintainerK #gSuiteRunnerJ 3gSpecificationRunnerI )gMatcherManagerH 'gExampleRunnerG 3gCollaboratorManagerF 7fPhpExecutableReRunnerE 'fPcntlReRunnerD -fPassthruReRunnerC -fOptionalReRunnerB /fCompositeReRunnerA 1eSuitePrerequisites!@ CePrerequisiteFailedException? 5dJsonExecutionContext> -cServiceContainer= )cObjectBehavior< #bTypeMatcher; %bThrowMatcher: 1bStringStartMatcher9 1bStringRegexMatcher8 -bStringEndMatcher7 'bScalarMatcher6 1bObjectStateMatcher5 +bIdentityMatcher4 /bComparisonMatcher3 +bCallbackMatcher2 %bBasicMatcher1 5bArrayKeyValueMatcher0 +bArrayKeyMatcher/ /bArrayCountMatcher. 3bArrayContainMatcher- +aResourceManager, %`PSR0Resource+ #`PSR0Locator* _Suite) )_ResourceLoader( /^SpecificationNode' #^ExampleNode& 7]StopOnFailureListener% 3]StatisticsCollector$ ']RerunListener&# M]NamedConstructorNotFoundListener " A]MethodReturnedNullListener! 9]MethodNotFoundListener"  E]CollaboratorNotFoundListener( Q]CollaboratorMethodNotFoundListener 7]ClassNotFoundListener /]BootstrapListener +\TaggedPresenter +\StringPresenter %[StringEngine %[ObjectEngine [Differ #[ArrayEngine ZTemplate /ZReportSkippedItem /ZReportPendingItem -ZReportPassedItem /ZReportItemFactory -ZReportFailedItem ZIO# GZInvalidExampleResultException 'ZHtmlPresenter %YTapFormatter /YProgressFormatter +YPrettyFormatter
 )YJUnitFormatter	 'YHtmlFormatter %YDotFormatter -YConsoleFormatter )YBasicFormatter /XReflectionFactory -WSubjectException =WMatcherNotFoundException 7WCollaboratorException ?VResourceCreationException"  EUNamedMethodNotFoundException ?TPropertyNotFoundException'~ OTNamedConstructorNotFoundException} ?TMethodNotVisibleException| ;TMethodNotFoundException{ ?TMethodInvocationException&z MTInterfaceNotImplementedExceptiony /TFractureException)x STFactoryDoesNotReturnObjectException#w GTCollaboratorNotFoundExceptionv 9TClassNotFoundExceptionu -SExceptionFactoryt SExceptions 9RStopOnFailureExceptionr /RSkippingExceptionq -RPendingExceptionp /RNotEqualExceptiono -RMatcherExceptionn -RFailureExceptionm -RExampleExceptionl )RErrorExceptionk !QSuiteEventj 1QSpecificationEventi +QMethodCallEventh -QExpectationEvent   U  d:j>O zNvE



X
&				l	?l3
vA^4pKX xGzUZ-                                       H ArPHPUnit_Runner_Filter_Test/G _rPHPUnit_Runner_Filter_GroupFilterIterator)F SrPHPUnit_Runner_Filter_Group_Include)E SrPHPUnit_Runner_Filter_Group_Exclude#D GrPHPUnit_Runner_Filter_FactoryC =rPHPUnit_Runner_Exception#B GrPHPUnit_Runner_BaseTestRunnerA ?rPHPUnit_Framework_Warning7@ orPHPUnit_Framework_UnintentionallyCoveredCodeError!? CrPHPUnit_Framework_TestSuite.> ]rPHPUnit_Framework_TestSuite_DataProvider"= ErPHPUnit_Framework_TestResult#< GrPHPUnit_Framework_TestFailure ; ArPHPUnit_Framework_TestCase&: MrPHPUnit_Framework_SyntheticError-9 [rPHPUnit_Framework_SkippedTestSuiteError(8 QrPHPUnit_Framework_SkippedTestError'7 OrPHPUnit_Framework_SkippedTestCase&6 MrPHPUnit_Framework_RiskyTestError#5 GrPHPUnit_Framework_OutputError44 irPHPUnit_Framework_InvalidCoversTargetException03 arPHPUnit_Framework_InvalidCoversTargetError+2 WrPHPUnit_Framework_IncompleteTestError*1 UrPHPUnit_Framework_IncompleteTestCase20 erPHPUnit_Framework_ExpectationFailedException(/ QrPHPUnit_Framework_ExceptionWrapper!. CrPHPUnit_Framework_Exception- ;rPHPUnit_Framework_Error%, KrPHPUnit_Framework_Error_Warning$+ IrPHPUnit_Framework_Error_Notice(* QrPHPUnit_Framework_Error_Deprecated") ErPHPUnit_Framework_Constraint&( MrPHPUnit_Framework_Constraint_Xor:' urPHPUnit_Framework_Constraint_TraversableContainsOnly6& mrPHPUnit_Framework_Constraint_TraversableContains3% grPHPUnit_Framework_Constraint_StringStartsWith0$ arPHPUnit_Framework_Constraint_StringMatches1# crPHPUnit_Framework_Constraint_StringEndsWith1" crPHPUnit_Framework_Constraint_StringContains+! WrPHPUnit_Framework_Constraint_SameSize,  YrPHPUnit_Framework_Constraint_PCREMatch% KrPHPUnit_Framework_Constraint_Or5 krPHPUnit_Framework_Constraint_ObjectHasAttribute& MrPHPUnit_Framework_Constraint_Not+ WrPHPUnit_Framework_Constraint_LessThan. ]rPHPUnit_Framework_Constraint_JsonMatchesD rPHPUnit_Framework_Constraint_JsonMatches_ErrorMessageProvider) SrPHPUnit_Framework_Constraint_IsType) SrPHPUnit_Framework_Constraint_IsTrue) SrPHPUnit_Framework_Constraint_IsNull) SrPHPUnit_Framework_Constraint_IsJson/ _rPHPUnit_Framework_Constraint_IsInstanceOf. ]rPHPUnit_Framework_Constraint_IsIdentical* UrPHPUnit_Framework_Constraint_IsFalse* UrPHPUnit_Framework_Constraint_IsEqual* UrPHPUnit_Framework_Constraint_IsEmpty- [rPHPUnit_Framework_Constraint_IsAnything. ]rPHPUnit_Framework_Constraint_GreaterThan- [rPHPUnit_Framework_Constraint_FileExists9 srPHPUnit_Framework_Constraint_ExceptionMessageRegExp3 grPHPUnit_Framework_Constraint_ExceptionMessage0 arPHPUnit_Framework_Constraint_ExceptionCode,
 YrPHPUnit_Framework_Constraint_Exception(	 QrPHPUnit_Framework_Constraint_Count, YrPHPUnit_Framework_Constraint_Composite: urPHPUnit_Framework_Constraint_ClassHasStaticAttribute4 irPHPUnit_Framework_Constraint_ClassHasAttribute+ WrPHPUnit_Framework_Constraint_Callback, YrPHPUnit_Framework_Constraint_Attribute. ]rPHPUnit_Framework_Constraint_ArraySubset. ]rPHPUnit_Framework_Constraint_ArrayHasKey& MrPHPUnit_Framework_Constraint_And-  [rPHPUnit_Framework_CodeCoverageException( QrPHPUnit_Framework_BaseTestListener,~ YrPHPUnit_Framework_AssertionFailedError} =rPHPUnit_Framework_Assert'| OrPHPUnit_Extensions_TicketListener&{ MrPHPUnit_Extensions_TestDecorator%z KrPHPUnit_Extensions_RepeatedTest&y MrPHPUnit_Extensions_PhptTestSuite%x KrPHPUnit_Extensions_PhptTestCase'w OrPHPUnit_Extensions_GroupTestSuitev !qkintParseru -qkintVariableDatat -qKint_Parsers_Xml   x jG'dBu[=!Z.x_3





Z
.
					`	E	wF*uV:bA'T(
wdL6 \,a;kV;"                     @ #rOneTestCase? +rNotVoidTestCase> /rNotPublicTestCase= #rNothingTest#< GrNotExistingCoveredElementTest; #rNoTestCases: +rNoTestCaseClass9 rNonStatic8 /rNoArgTestCaseTest!7 CrNamespaceCoveragePublicTest$6 IrNamespaceCoverageProtectedTest"5 ErNamespaceCoveragePrivateTest$4 IrNamespaceCoverageNotPublicTest'3 OrNamespaceCoverageNotProtectedTest%2 KrNamespaceCoverageNotPrivateTest!1 CrNamespaceCoverageMethodTest&0 MrNamespaceCoverageCoversClassTest,/ YrNamespaceCoverageCoversClassPublicTest . ArNamespaceCoverageClassTest(- QrNamespaceCoverageClassExtendedTest, 3rMultiDependencyTest+ !rMockRunner* 'rIsolationTest) rIniTest( /rInheritedTestCase' %rInheritanceB& %rInheritanceA% )rIncompleteTest$ rFatalTest# #rFailureTest" rFailure! 'rExceptionTest  1rExceptionStackTest +rExceptionInTest ;rExceptionInTearDownTest 5rExceptionInSetUpTest( QrExceptionInAssertPreConditionsTest) SrExceptionInAssertPostConditionsTest /rEmptyTestCaseTest )rDummyException )rDoubleTestCase 3rDependencyTestSuite 7rDependencySuccessTest 7rDependencyFailureTest -rDataProviderTest ;rDataProviderSkippedTest  ArDataProviderIncompleteTest 9rDataProviderFilterTest 7rDataProviderDebugTest 'rCustomPrinter %rCoveredClass 1rCoveredParentClass( QrCoverageTwoDefaultClassAnnotations 1rCoveragePublicTest
 7rCoverageProtectedTest	 3rCoveragePrivateTest 7rCoverageNotPublicTest =rCoverageNotProtectedTest 9rCoverageNotPrivateTest 3rCoverageNothingTest -rCoverageNoneTest 1rCoverageMethodTest- [rCoverageMethodParenthesesWhitespaceTest# GrCoverageMethodParenthesesTest)  SrCoverageMethodOneLineAnnotationTest 5rCoverageFunctionTest/~ _rCoverageFunctionParenthesesWhitespaceTest%} KrCoverageFunctionParenthesesTest| /rCoverageClassTest{ ?rCoverageClassExtendedTestz %rConcreteTest'y OrConcreteWithMyCustomExtensionTestx /rClassWithToString%w KrClassWithScalarTypeDeclarations"v ErClassWithNonPublicAttributes(u QrParentClassWithProtectedAttributes&t MrParentClassWithPrivateAttributes's OrChangeCurrentWorkingDirectoryTestr !rCalculator
q rBook"p ErBeforeClassAndAfterClassTesto 1rBeforeAndAfterTestn 9rBaseTestListenerSample(m QrBankAccountWithCustomExtensionTestl +rBankAccountTestk #rBankAccountj 5rBankAccountExceptioni rAuthorh %rAbstractTestg -rPHPUnit_Util_XMLf /rPHPUnit_Util_Type$e IrPHPUnit_Util_TestSuiteIterator(d QrPHPUnit_Util_TestDox_ResultPrinter-c [rPHPUnit_Util_TestDox_ResultPrinter_Text-b [rPHPUnit_Util_TestDox_ResultPrinter_HTML)a SrPHPUnit_Util_TestDox_NamePrettifier` /rPHPUnit_Util_Test_ 3rPHPUnit_Util_String^ 1rPHPUnit_Util_Regex] 5rPHPUnit_Util_Printer\ -rPHPUnit_Util_PHP[ =rPHPUnit_Util_PHP_WindowsZ =rPHPUnit_Util_PHP_DefaultY 5rPHPUnit_Util_Log_TAPX 9rPHPUnit_Util_Log_JUnitW 7rPHPUnit_Util_Log_JSON(V QrPHPUnit_Util_InvalidArgumentHelperU =rPHPUnit_Util_GlobalStateT 3rPHPUnit_Util_GetoptS 3rPHPUnit_Util_FilterR ;rPHPUnit_Util_FilesystemQ ;rPHPUnit_Util_FileloaderP ?rPHPUnit_Util_ErrorHandler O ArPHPUnit_Util_ConfigurationN 9rPHPUnit_Util_BlacklistM ?rPHPUnit_TextUI_TestRunner"L ErPHPUnit_TextUI_ResultPrinterK 9rPHPUnit_TextUI_CommandJ 9rPHPUnit_Runner_Version,I YrPHPUnit_Runner_StandardTestSuiteLoader   |  y_D/	q^H(tL9dG'zdF2!






q
Z
;
$
							i	G	1		lI)dH2r`5dBY'R"[\. *< U{PHPUnit_Framework_Constraint_IsFalse*; U{PHPUnit_Framework_Constraint_IsEqual*: U{PHPUnit_Framework_Constraint_IsEmpty-9 [{PHPUnit_Framework_Constraint_IsAnything.8 ]{PHPUnit_Framework_Constraint_GreaterThan-7 [{PHPUnit_Framework_Constraint_FileExists96 s{PHPUnit_Framework_Constraint_ExceptionMessageRegExp35 g{PHPUnit_Framework_Constraint_ExceptionMessage04 a{PHPUnit_Framework_Constraint_ExceptionCode,3 Y{PHPUnit_Framework_Constraint_Exception(2 Q{PHPUnit_Framework_Constraint_Count,1 Y{PHPUnit_Framework_Constraint_Composite:0 u{PHPUnit_Framework_Constraint_ClassHasStaticAttribute4/ i{PHPUnit_Framework_Constraint_ClassHasAttribute+. W{PHPUnit_Framework_Constraint_Callback,- Y{PHPUnit_Framework_Constraint_Attribute., ]{PHPUnit_Framework_Constraint_ArraySubset.+ ]{PHPUnit_Framework_Constraint_ArrayHasKey&* M{PHPUnit_Framework_Constraint_And-) [{PHPUnit_Framework_CodeCoverageException(( Q{PHPUnit_Framework_BaseTestListener,' Y{PHPUnit_Framework_AssertionFailedError& ={PHPUnit_Framework_Assert'% O{PHPUnit_Extensions_TicketListener&$ M{PHPUnit_Extensions_TestDecorator%# K{PHPUnit_Extensions_RepeatedTest&" M{PHPUnit_Extensions_PhptTestSuite%! K{PHPUnit_Extensions_PhptTestCase'  O{PHPUnit_Extensions_GroupTestSuite zTestFile !yGitCommand xJsonFile xCiInfo +wApplicationTest #wApplication 3vTestReporterCommand uVersion /uCoverageCollector uApiClient %tCoveredClass 1tCoveredParentClass 9sExceptionNamespaceTest %rUtil_XMLTest 'rUtil_TestTest% KrUtil_TestDox_NamePrettifierTest )rUtil_RegexTest 5rUtil_GlobalStateTest +rUtil_GetoptTest 9rUtil_ConfigurationTest ?rRunner_BaseTestRunnerTest
 %rIssue797Test	 %rIssue765Test %rNewException #rIssue74Test %rIssue581Test %rIssue503Test %rIssue498Test %rIssue445Test %rIssue433Test %rIssue322Test  =rIssue244ExceptionIntCode /rIssue244Exception~ %rIssue244Test} 'rIssue1570Test| 'rIssue1472Test{ 'rIssue1471Testz 'rIssue1468Testy 'rIssue1437Testx 'rIssue1374Testw 'rIssue1351Testv 7rChildProcessClass1351u 'rIssue1348Testt 'rIssue1337Tests 'rIssue1335Testr 'rIssue1330Testq 'rIssue1265Testp 'rIssue1216Testo 'rIssue1149Testn rTwoTestm #rParentSuitel rOneTestk !rChildSuitej 5rFoo_Bar_Issue684Testi %rIssue578Testh rIssue523g %rIssue523Testf 'rIssue1021Test e ArFramework_TestListenerTest#d GrFramework_TestImplementorTestc ?rFramework_TestFailureTestb 9rFramework_TestCaseTesta 3rFramework_SuiteTest` =rFramework_ConstraintTest*_ UrFramework_Constraint_JsonMatchesTest?^ rFramework_Constraint_JsonMatches_ErrorMessageProviderTest] 5rExceptionMessageTest \ ArExceptionMessageRegExpTest[ rCountTest$Z IrFramework_BaseTestListenerTestY 5rFramework_AssertTest!X CrExtensions_RepeatedTestTestW -rPhpTestCaseProxy!V CrExtensions_PhptTestCaseTestU rWasRunT =rThrowNoExceptionTestCaseS 9rThrowExceptionTestCaseR %rTestWithTestQ rTestErrorP #rTestSkippedO 'rTestIterator2N %rTestIteratorM )rTestIncompleteL 3rTemplateMethodsTestK rSuccessJ rStructI rStackTestH rSingletonG #rSampleClassF /rSampleArrayAccessE -rRequirementsTest#D GrRequirementsClassDocBlockTest*C UrRequirementsClassBeforeClassHookTestB -rOverrideTestCaseA )rOutputTestCase   a  nAm>S~Db9



c
4
 			w	L	 zT"xV/~N.^=uU7g:	iO9)uOA-               & M{ParentClassWithPrivateAttributes' O{ChangeCurrentWorkingDirectoryTest !{Calculator
 {Book" E{BeforeClassAndAfterClassTest 1{BeforeAndAfterTest 9{BaseTestListenerSample( Q{BankAccountWithCustomExtensionTest +{BankAccountTest #{BankAccount 5{BankAccountException {Author %{AbstractTest -{PHPUnit_Util_XML /{PHPUnit_Util_Type$ I{PHPUnit_Util_TestSuiteIterator( Q{PHPUnit_Util_TestDox_ResultPrinter- [{PHPUnit_Util_TestDox_ResultPrinter_Text- [{PHPUnit_Util_TestDox_ResultPrinter_HTML)
 S{PHPUnit_Util_TestDox_NamePrettifier	 /{PHPUnit_Util_Test 3{PHPUnit_Util_String 1{PHPUnit_Util_Regex 5{PHPUnit_Util_Printer -{PHPUnit_Util_PHP ={PHPUnit_Util_PHP_Windows ={PHPUnit_Util_PHP_Default 5{PHPUnit_Util_Log_TAP 9{PHPUnit_Util_Log_JUnit  7{PHPUnit_Util_Log_JSON( Q{PHPUnit_Util_InvalidArgumentHelper~ ={PHPUnit_Util_GlobalState} 3{PHPUnit_Util_Getopt| 3{PHPUnit_Util_Filter{ ;{PHPUnit_Util_Filesystemz ;{PHPUnit_Util_Fileloadery ?{PHPUnit_Util_ErrorHandler x A{PHPUnit_Util_Configurationw 9{PHPUnit_Util_Blacklistv ?{PHPUnit_TextUI_TestRunner"u E{PHPUnit_TextUI_ResultPrintert 9{PHPUnit_TextUI_Commands 9{PHPUnit_Runner_Version,r Y{PHPUnit_Runner_StandardTestSuiteLoader q A{PHPUnit_Runner_Filter_Test/p _{PHPUnit_Runner_Filter_GroupFilterIterator)o S{PHPUnit_Runner_Filter_Group_Include)n S{PHPUnit_Runner_Filter_Group_Exclude#m G{PHPUnit_Runner_Filter_Factoryl ={PHPUnit_Runner_Exception#k G{PHPUnit_Runner_BaseTestRunnerj ?{PHPUnit_Framework_Warning7i o{PHPUnit_Framework_UnintentionallyCoveredCodeError!h C{PHPUnit_Framework_TestSuite.g ]{PHPUnit_Framework_TestSuite_DataProvider"f E{PHPUnit_Framework_TestResult#e G{PHPUnit_Framework_TestFailure d A{PHPUnit_Framework_TestCase&c M{PHPUnit_Framework_SyntheticError-b [{PHPUnit_Framework_SkippedTestSuiteError(a Q{PHPUnit_Framework_SkippedTestError'` O{PHPUnit_Framework_SkippedTestCase&_ M{PHPUnit_Framework_RiskyTestError#^ G{PHPUnit_Framework_OutputError4] i{PHPUnit_Framework_InvalidCoversTargetException0\ a{PHPUnit_Framework_InvalidCoversTargetError+[ W{PHPUnit_Framework_IncompleteTestError*Z U{PHPUnit_Framework_IncompleteTestCase2Y e{PHPUnit_Framework_ExpectationFailedException(X Q{PHPUnit_Framework_ExceptionWrapper!W C{PHPUnit_Framework_ExceptionV ;{PHPUnit_Framework_Error%U K{PHPUnit_Framework_Error_Warning$T I{PHPUnit_Framework_Error_Notice(S Q{PHPUnit_Framework_Error_Deprecated"R E{PHPUnit_Framework_Constraint&Q M{PHPUnit_Framework_Constraint_Xor:P u{PHPUnit_Framework_Constraint_TraversableContainsOnly6O m{PHPUnit_Framework_Constraint_TraversableContains3N g{PHPUnit_Framework_Constraint_StringStartsWith0M a{PHPUnit_Framework_Constraint_StringMatches1L c{PHPUnit_Framework_Constraint_StringEndsWith1K c{PHPUnit_Framework_Constraint_StringContains+J W{PHPUnit_Framework_Constraint_SameSize,I Y{PHPUnit_Framework_Constraint_PCREMatch%H K{PHPUnit_Framework_Constraint_Or5G k{PHPUnit_Framework_Constraint_ObjectHasAttribute&F M{PHPUnit_Framework_Constraint_Not+E W{PHPUnit_Framework_Constraint_LessThan.D ]{PHPUnit_Framework_Constraint_JsonMatchesDC {PHPUnit_Framework_Constraint_JsonMatches_ErrorMessageProvider)B S{PHPUnit_Framework_Constraint_IsType)A S{PHPUnit_Framework_Constraint_IsTrue)@ S{PHPUnit_Framework_Constraint_IsNull)? S{PHPUnit_Framework_Constraint_IsJson/> _{PHPUnit_Framework_Constraint_IsInstanceOf.= ]{PHPUnit_Framework_Constraint_IsIdentical    j?)qDyW8kL,rZB'




v
Z
C
2


							o	R	&	Z/yfM8S,~fP9$jE'g9lU?-iR;$    '{Issue1348Test '{Issue1337Test '{Issue1335Test '{Issue1330Test '{Issue1265Test '{Issue1216Test '{Issue1149Test {TwoTest #{ParentSuite {OneTest !{ChildSuite 5{Foo_Bar_Issue684Test %{Issue578Test {Issue523 %{Issue523Test '{Issue1021Test  A{Framework_TestListenerTest# G{Framework_TestImplementorTest ?{Framework_TestFailureTest 9{Framework_TestCaseTest
 3{Framework_SuiteTest	 ={Framework_ConstraintTest* U{Framework_Constraint_JsonMatchesTest? {Framework_Constraint_JsonMatches_ErrorMessageProviderTest 5{ExceptionMessageTest  A{ExceptionMessageRegExpTest {CountTest$ I{Framework_BaseTestListenerTest 5{Framework_AssertTest! C{Extensions_RepeatedTestTest  -{PhpTestCaseProxy! C{Extensions_PhptTestCaseTest~ {WasRun} ={ThrowNoExceptionTestCase| 9{ThrowExceptionTestCase{ %{TestWithTestz {TestErrory #{TestSkippedx '{TestIterator2w %{TestIteratorv ){TestIncompleteu 3{TemplateMethodsTestt {Successs {Structr {StackTestq {Singletonp #{SampleClasso /{SampleArrayAccessn -{RequirementsTest#m G{RequirementsClassDocBlockTest*l U{RequirementsClassBeforeClassHookTestk -{OverrideTestCasej ){OutputTestCasei #{OneTestCaseh +{NotVoidTestCaseg /{NotPublicTestCasef #{NothingTest#e G{NotExistingCoveredElementTestd #{NoTestCasesc +{NoTestCaseClassb {NonStatica /{NoArgTestCaseTest!` C{NamespaceCoveragePublicTest$_ I{NamespaceCoverageProtectedTest"^ E{NamespaceCoveragePrivateTest$] I{NamespaceCoverageNotPublicTest'\ O{NamespaceCoverageNotProtectedTest%[ K{NamespaceCoverageNotPrivateTest!Z C{NamespaceCoverageMethodTest&Y M{NamespaceCoverageCoversClassTest,X Y{NamespaceCoverageCoversClassPublicTest W A{NamespaceCoverageClassTest(V Q{NamespaceCoverageClassExtendedTestU 3{MultiDependencyTestT !{MockRunnerS '{IsolationTestR {IniTestQ /{InheritedTestCaseP %{InheritanceBO %{InheritanceAN ){IncompleteTestM {FatalTestL #{FailureTestK {FailureJ '{ExceptionTestI 1{ExceptionStackTestH +{ExceptionInTestG ;{ExceptionInTearDownTestF 5{ExceptionInSetUpTest(E Q{ExceptionInAssertPreConditionsTest)D S{ExceptionInAssertPostConditionsTestC /{EmptyTestCaseTestB ){DummyExceptionA ){DoubleTestCase@ 3{DependencyTestSuite? 7{DependencySuccessTest> 7{DependencyFailureTest= -{DataProviderTest< ;{DataProviderSkippedTest ; A{DataProviderIncompleteTest: 9{DataProviderFilterTest9 7{DataProviderDebugTest8 '{CustomPrinter7 %{CoveredClass6 1{CoveredParentClass(5 Q{CoverageTwoDefaultClassAnnotations4 1{CoveragePublicTest3 7{CoverageProtectedTest2 3{CoveragePrivateTest1 7{CoverageNotPublicTest0 ={CoverageNotProtectedTest/ 9{CoverageNotPrivateTest. 3{CoverageNothingTest- -{CoverageNoneTest, 1{CoverageMethodTest-+ [{CoverageMethodParenthesesWhitespaceTest#* G{CoverageMethodParenthesesTest)) S{CoverageMethodOneLineAnnotationTest( 5{CoverageFunctionTest/' _{CoverageFunctionParenthesesWhitespaceTest%& K{CoverageFunctionParenthesesTest% /{CoverageClassTest$ ?{CoverageClassExtendedTest# %{ConcreteTest'" O{ConcreteWithMyCustomExtensionTest! /{ClassWithToString%  K{ClassWithScalarTypeDeclarations" E{ClassWithNonPublicAttributes( Q{ParentClassWithProtectedAttributes   ]  nW@*iT>(W@*
Kc0



[
/
				s	N	'	a5e-M
C |N!~T#`2O                  5{ k~Generic_Sniffs_Formatting_NoSpaceAfterCastSniff?z ~Generic_Sniffs_Formatting_MultipleStatementAlignmentSniff?y ~Generic_Sniffs_Formatting_DisallowMultipleStatementsSniff3x g~Generic_Sniffs_Files_OneInterfacePerFileSniff/w _~Generic_Sniffs_Files_OneClassPerFileSniff2v e~Generic_Sniffs_Files_LowercasedFilenameSniff*u U~Generic_Sniffs_Files_LineLengthSniff+t W~Generic_Sniffs_Files_LineEndingsSniff*s U~Generic_Sniffs_Files_InlineHTMLSniff0r a~Generic_Sniffs_Files_EndFileNoNewlineSniff.q ]~Generic_Sniffs_Files_EndFileNewlineSniff-p [~Generic_Sniffs_Files_ByteOrderMarkSniff&o M~Generic_Sniffs_Debug_JSHintSniff'n O~Generic_Sniffs_Debug_CSSLintSniff-m [~Generic_Sniffs_Debug_ClosureLinterSniffCl ~Generic_Sniffs_ControlStructures_InlineControlStructureSniff)k S~Generic_Sniffs_Commenting_TodoSniff*j U~Generic_Sniffs_Commenting_FixmeSniff>i }~Generic_Sniffs_CodeAnalysis_UselessOverridingMethodSniff>h }~Generic_Sniffs_CodeAnalysis_UnusedFunctionParameterSniff?g ~Generic_Sniffs_CodeAnalysis_UnnecessaryFinalModifierSniff?f ~Generic_Sniffs_CodeAnalysis_UnconditionalIfStatementSniff9e s~Generic_Sniffs_CodeAnalysis_JumbledIncrementerSniffCd ~Generic_Sniffs_CodeAnalysis_ForLoopWithTestFunctionCallSniff?c ~Generic_Sniffs_CodeAnalysis_ForLoopShouldBeWhileLoopSniff5b k~Generic_Sniffs_CodeAnalysis_EmptyStatementSniff4a i~Generic_Sniffs_Classes_DuplicateClassNameSniff5` k~PHP_CodeSniffer_Standards_AbstractVariableSniff2_ e~PHP_CodeSniffer_Standards_AbstractScopeSniff4^ i~PHP_CodeSniffer_Standards_AbstractPatternSniff!] C~PHP_CodeSniffer_Reports_Xml,\ Y~PHP_CodeSniffer_Reports_VersionControl&[ M~PHP_CodeSniffer_Reports_Svnblame%Z K~PHP_CodeSniffer_Reports_Summary$Y I~PHP_CodeSniffer_Reports_Source(X Q~PHP_CodeSniffer_Reports_Notifysend#W G~PHP_CodeSniffer_Reports_Junit"V E~PHP_CodeSniffer_Reports_Json%U K~PHP_CodeSniffer_Reports_Hgblame&T M~PHP_CodeSniffer_Reports_Gitblame"S E~PHP_CodeSniffer_Reports_Full#R G~PHP_CodeSniffer_Reports_Emacs!Q C~PHP_CodeSniffer_Reports_Csv(P Q~PHP_CodeSniffer_Reports_CheckstyleO ?~PHP_CodeSniffer_ReportingN 5~PHP_CodeSniffer_FileM ?~PHP_CodeSniffer_Exception(L Q~PHP_CodeSniffer_DocGenerators_Text(K Q~PHP_CodeSniffer_DocGenerators_HTML-J [~PHP_CodeSniffer_DocGenerators_Generator1I c~PHP_CodeSniffer_CommentParser_SingleElement3H g~PHP_CodeSniffer_CommentParser_ParserException4G i~PHP_CodeSniffer_CommentParser_ParameterElement/F _~PHP_CodeSniffer_CommentParser_PairElement7E o~PHP_CodeSniffer_CommentParser_MemberCommentParser9D s~PHP_CodeSniffer_CommentParser_FunctionCommentParser2C e~PHP_CodeSniffer_CommentParser_CommentElement6B m~PHP_CodeSniffer_CommentParser_ClassCommentParser2A e~PHP_CodeSniffer_CommentParser_AbstractParser6@ m~PHP_CodeSniffer_CommentParser_AbstractDocElement? 3~PHP_CodeSniffer_CLI> %}CoveredClass= 1}CoveredParentClass< 9|ExceptionNamespaceTest; %{Util_XMLTest: '{Util_TestTest%9 K{Util_TestDox_NamePrettifierTest8 ){Util_RegexTest7 5{Util_GlobalStateTest6 +{Util_GetoptTest5 9{Util_ConfigurationTest4 ?{Runner_BaseTestRunnerTest3 %{Issue797Test2 %{Issue765Test1 %{NewException0 #{Issue74Test/ %{Issue581Test. %{Issue503Test- %{Issue498Test, %{Issue445Test+ %{Issue433Test* %{Issue322Test) ={Issue244ExceptionIntCode( /{Issue244Exception' %{Issue244Test& '{Issue1570Test% '{Issue1472Test$ '{Issue1471Test# '{Issue1468Test" '{Issue1437Test! '{Issue1374Test  '{Issue1351Test 7{ChildProcessClass1351   F  GzH}?q>T


`
,			|	D	j<	a,_,a$~D]}J:                                            :A u~PSR2_Sniffs_ControlStructures_SwitchDeclarationSniff:@ u~PSR2_Sniffs_ControlStructures_ElseIfDeclarationSniffA? ~PSR2_Sniffs_ControlStructures_ControlStructureSpacingSniff2> e~PSR2_Sniffs_Classes_PropertyDeclarationSniff/= _~PSR2_Sniffs_Classes_ClassDeclarationSniff2< e~PSR1_Sniffs_Methods_CamelCapsMethodNameSniff(; Q~PSR1_Sniffs_Files_SideEffectsSniff/: _~PSR1_Sniffs_Classes_ClassDeclarationSniff-9 [~PEAR_Sniffs_WhiteSpace_ScopeIndentSniff38 g~PEAR_Sniffs_WhiteSpace_ScopeClosingBraceSniff67 m~PEAR_Sniffs_WhiteSpace_ObjectOperatorIndentSniff:6 u~PEAR_Sniffs_NamingConventions_ValidVariableNameSniff:5 u~PEAR_Sniffs_NamingConventions_ValidFunctionNameSniff74 o~PEAR_Sniffs_NamingConventions_ValidClassNameSniff23 e~PEAR_Sniffs_Functions_ValidDefaultValueSniff42 i~PEAR_Sniffs_Functions_FunctionDeclarationSniff61 m~PEAR_Sniffs_Functions_FunctionCallSignatureSniff50 k~PEAR_Sniffs_Formatting_MultiLineAssignmentSniff*/ U~PEAR_Sniffs_Files_IncludingFileSniff;. w~PEAR_Sniffs_ControlStructures_MultiLineConditionSniff9- s~PEAR_Sniffs_ControlStructures_ControlSignatureSniff/, _~PEAR_Sniffs_Commenting_InlineCommentSniff1+ c~PEAR_Sniffs_Commenting_FunctionCommentSniff-* [~PEAR_Sniffs_Commenting_FileCommentSniff.) ]~PEAR_Sniffs_Commenting_ClassCommentSniff/( _~PEAR_Sniffs_Classes_ClassDeclarationSniff.' ]~MySource_Sniffs_Strings_JoinStringsSniff2& e~MySource_Sniffs_PHP_ReturnFunctionValueSniff-% [~MySource_Sniffs_PHP_GetRequestDataSniff0$ a~MySource_Sniffs_PHP_EvalObjectFactorySniff1# c~MySource_Sniffs_PHP_AjaxNullComparisonSniff4" i~MySource_Sniffs_Objects_DisallowNewWidgetSniff;! w~MySource_Sniffs_Objects_CreateWidgetTypeCallbackSniff-  [~MySource_Sniffs_Objects_AssignThisSniff/ _~MySource_Sniffs_Debug_FirebugConsoleSniff* U~MySource_Sniffs_Debug_DebugCodeSniff4 i~MySource_Sniffs_CSS_BrowserSpecificStylesSniff5 k~MySource_Sniffs_Commenting_FunctionCommentSniff0 a~MySource_Sniffs_Channels_UnusedSystemSniff1 c~MySource_Sniffs_Channels_IncludeSystemSniff4 i~MySource_Sniffs_Channels_IncludeOwnSystemSniff7 o~MySource_Sniffs_Channels_DisallowSelfActionsSniff4 i~MySource_Sniffs_Channels_ChannelExceptionSniff9 s~PHP_CodeSniffer_Standards_IncorrectPatternException0 a~Generic_Sniffs_WhiteSpace_ScopeIndentSniff6 m~Generic_Sniffs_WhiteSpace_DisallowTabIndentSniff8 q~Generic_Sniffs_WhiteSpace_DisallowSpaceIndentSniff= {~Generic_Sniffs_VersionControl_SubversionPropertiesSniff9 s~Generic_Sniffs_Strings_UnnecessaryStringConcatSniff/ _~Generic_Sniffs_PHP_UpperCaseConstantSniff$ I~Generic_Sniffs_PHP_SyntaxSniff' O~Generic_Sniffs_PHP_SAPIUsageSniff. ]~Generic_Sniffs_PHP_NoSilencedErrorsSniff. ]~Generic_Sniffs_PHP_LowerCaseKeywordSniff/ _~Generic_Sniffs_PHP_LowerCaseConstantSniff0
 a~Generic_Sniffs_PHP_ForbiddenFunctionsSniff2	 e~Generic_Sniffs_PHP_DisallowShortOpenTagSniff1 c~Generic_Sniffs_PHP_DeprecatedFunctionsSniff+ W~Generic_Sniffs_PHP_ClosingPHPTagSniff: u~Generic_Sniffs_PHP_CharacterBeforePHPOpeningTagSniffB ~Generic_Sniffs_NamingConventions_UpperCaseConstantNameSniff; w~Generic_Sniffs_NamingConventions_ConstructorNameSniffB ~Generic_Sniffs_NamingConventions_CamelCapsFunctionNameSniff. ]~Generic_Sniffs_Metrics_NestingLevelSniff6 m~Generic_Sniffs_Metrics_CyclomaticComplexitySniffI  ~Generic_Sniffs_Functions_OpeningFunctionBraceKernighanRitchieSniffB ~Generic_Sniffs_Functions_OpeningFunctionBraceBsdAllmanSniff?~ ~Generic_Sniffs_Functions_FunctionCallArgumentSpacingSniff;} w~Generic_Sniffs_Functions_CallTimePassByReferenceSniff3| g~Generic_Sniffs_Formatting_SpaceAfterCastSniff   G  e+Z)Qt:\(


u
7			s	2q7[#T)rBXc$i*D        , Y~Squiz_Sniffs_PHP_CommentedOutCodeSniff7 o~Squiz_Sniffs_Operators_ValidLogicalOperatorsSniff9 s~Squiz_Sniffs_Operators_IncrementDecrementUsageSniff9 s~Squiz_Sniffs_Operators_ComparisonOperatorUsageSniff1 c~Squiz_Sniffs_Objects_ObjectMemberCommaSniff3 g~Squiz_Sniffs_Objects_ObjectInstantiationSniff9 s~Squiz_Sniffs_Objects_DisallowObjectStringIndexSniff; w~Squiz_Sniffs_NamingConventions_ValidVariableNameSniff;  w~Squiz_Sniffs_NamingConventions_ValidFunctionNameSniff6 m~Squiz_Sniffs_NamingConventions_ConstantCaseSniff>~ }~Squiz_Sniffs_Functions_MultiLineFunctionDeclarationSniff;} w~Squiz_Sniffs_Functions_LowercaseFunctionKeywordsSniff0| a~Squiz_Sniffs_Functions_GlobalFunctionSniff;{ w~Squiz_Sniffs_Functions_FunctionDuplicateArgumentSniff5z k~Squiz_Sniffs_Functions_FunctionDeclarationSniffEy 	~Squiz_Sniffs_Functions_FunctionDeclarationArgumentSpacingSniff2x e~Squiz_Sniffs_Formatting_OperatorBracketSniff+w W~Squiz_Sniffs_Files_FileExtensionSniff$v I~Squiz_Sniffs_Debug_JSLintSniff,u Y~Squiz_Sniffs_Debug_JavaScriptLintSniff)t S~Squiz_Sniffs_CSS_ShorthandSizeSniff,s Y~Squiz_Sniffs_CSS_SemicolonSpacingSniff#r G~Squiz_Sniffs_CSS_OpacitySniff(q Q~Squiz_Sniffs_CSS_NamedColoursSniff(p Q~Squiz_Sniffs_CSS_MissingColonSniff4o i~Squiz_Sniffs_CSS_LowercaseStyleDefinitionSniff'n O~Squiz_Sniffs_CSS_IndentationSniff+m W~Squiz_Sniffs_CSS_ForbiddenStylesSniff0l a~Squiz_Sniffs_CSS_EmptyStyleDefinitionSniff0k a~Squiz_Sniffs_CSS_EmptyClassDefinitionSniff4j i~Squiz_Sniffs_CSS_DuplicateStyleDefinitionSniff4i i~Squiz_Sniffs_CSS_DuplicateClassDefinitionSniff<h y~Squiz_Sniffs_CSS_DisallowMultipleStyleDefinitionsSniff,g Y~Squiz_Sniffs_CSS_ColourDefinitionSniff(f Q~Squiz_Sniffs_CSS_ColonSpacingSniff<e y~Squiz_Sniffs_CSS_ClassDefinitionOpeningBraceSpaceSniff6d m~Squiz_Sniffs_CSS_ClassDefinitionNameSpacingSniff<c y~Squiz_Sniffs_CSS_ClassDefinitionClosingBraceSpaceSniff;b w~Squiz_Sniffs_ControlStructures_SwitchDeclarationSniff>a }~Squiz_Sniffs_ControlStructures_LowercaseDeclarationSniff=` {~Squiz_Sniffs_ControlStructures_InlineIfDeclarationSniff<_ y~Squiz_Sniffs_ControlStructures_ForLoopDeclarationSniffA^ ~Squiz_Sniffs_ControlStructures_ForEachLoopDeclarationSniff;] w~Squiz_Sniffs_ControlStructures_ElseIfDeclarationSniff:\ u~Squiz_Sniffs_ControlStructures_ControlSignatureSniff2[ e~Squiz_Sniffs_Commenting_VariableCommentSniff7Z o~Squiz_Sniffs_Commenting_PostStatementCommentSniff>Y }~Squiz_Sniffs_Commenting_LongConditionClosingCommentSniff0X a~Squiz_Sniffs_Commenting_InlineCommentSniff:W u~Squiz_Sniffs_Commenting_FunctionCommentThrowTagSniff2V e~Squiz_Sniffs_Commenting_FunctionCommentSniff.U ]~Squiz_Sniffs_Commenting_FileCommentSniff4T i~Squiz_Sniffs_Commenting_EmptyCatchCommentSniff6S m~Squiz_Sniffs_Commenting_DocCommentAlignmentSniff<R y~Squiz_Sniffs_Commenting_ClosingDeclarationCommentSniff/Q _~Squiz_Sniffs_Commenting_ClassCommentSniff/P _~Squiz_Sniffs_Commenting_BlockCommentSniff3O g~Squiz_Sniffs_CodeAnalysis_EmptyStatementSniff.N ]~Squiz_Sniffs_Classes_ValidClassNameSniff3M g~Squiz_Sniffs_Classes_SelfMemberReferenceSniff6L m~Squiz_Sniffs_Classes_LowercaseClassKeywordsSniff1K c~Squiz_Sniffs_Classes_DuplicatePropertySniff-J [~Squiz_Sniffs_Classes_ClassFileNameSniff0I a~Squiz_Sniffs_Classes_ClassDeclarationSniff/H _~Squiz_Sniffs_Arrays_ArrayDeclarationSniff2G e~Squiz_Sniffs_Arrays_ArrayBracketSpacingSniff0F a~PSR2_Sniffs_Namespaces_UseDeclarationSniff6E m~PSR2_Sniffs_Namespaces_NamespaceDeclarationSniff0D a~PSR2_Sniffs_Methods_MethodDeclarationSniff4C i~PSR2_Sniffs_Methods_FunctionCallSignatureSniff+B W~PSR2_Sniffs_Files_EndFileNewlineSniff   P  \!T0|GP{;



I
			e	-S(sS:s= Z#eB$c9oFY          5X kGeneric_Sniffs_CodeAnalysis_EmptyStatementSniff4W iGeneric_Sniffs_Classes_DuplicateClassNameSniff5V kPHP_CodeSniffer_Standards_AbstractVariableSniff2U ePHP_CodeSniffer_Standards_AbstractScopeSniff4T iPHP_CodeSniffer_Standards_AbstractPatternSniff!S CPHP_CodeSniffer_Reports_Xml,R YPHP_CodeSniffer_Reports_VersionControl&Q MPHP_CodeSniffer_Reports_Svnblame%P KPHP_CodeSniffer_Reports_Summary$O IPHP_CodeSniffer_Reports_Source(N QPHP_CodeSniffer_Reports_Notifysend#M GPHP_CodeSniffer_Reports_Junit"L EPHP_CodeSniffer_Reports_Json%K KPHP_CodeSniffer_Reports_Hgblame&J MPHP_CodeSniffer_Reports_Gitblame"I EPHP_CodeSniffer_Reports_Full#H GPHP_CodeSniffer_Reports_Emacs!G CPHP_CodeSniffer_Reports_Csv(F QPHP_CodeSniffer_Reports_CheckstyleE ?PHP_CodeSniffer_ReportingD 5PHP_CodeSniffer_FileC ?PHP_CodeSniffer_Exception(B QPHP_CodeSniffer_DocGenerators_Text(A QPHP_CodeSniffer_DocGenerators_HTML-@ [PHP_CodeSniffer_DocGenerators_Generator1? cPHP_CodeSniffer_CommentParser_SingleElement3> gPHP_CodeSniffer_CommentParser_ParserException4= iPHP_CodeSniffer_CommentParser_ParameterElement/< _PHP_CodeSniffer_CommentParser_PairElement7; oPHP_CodeSniffer_CommentParser_MemberCommentParser9: sPHP_CodeSniffer_CommentParser_FunctionCommentParser29 ePHP_CodeSniffer_CommentParser_CommentElement68 mPHP_CodeSniffer_CommentParser_ClassCommentParser27 ePHP_CodeSniffer_CommentParser_AbstractParser66 mPHP_CodeSniffer_CommentParser_AbstractDocElement5 3PHP_CodeSniffer_CLI4 +~PHP_CodeSniffer3 9~PHP_CodeSniffer_Tokens$2 I~PHP_CodeSniffer_Tokenizers_PHP#1 G~PHP_CodeSniffer_Tokenizers_JS$0 I~PHP_CodeSniffer_Tokenizers_CSS:/ u~Zend_Sniffs_NamingConventions_ValidVariableNameSniff'. O~Zend_Sniffs_Files_ClosingTagSniff)- S~Zend_Sniffs_Debug_CodeAnalyzerSniff8, q~Squiz_Sniffs_WhiteSpace_SuperfluousWhitespaceSniff3+ g~Squiz_Sniffs_WhiteSpace_SemicolonSpacingSniff6* m~Squiz_Sniffs_WhiteSpace_ScopeKeywordSpacingSniff4) i~Squiz_Sniffs_WhiteSpace_ScopeClosingBraceSniff7( o~Squiz_Sniffs_WhiteSpace_PropertyLabelSpacingSniff2' e~Squiz_Sniffs_WhiteSpace_OperatorSpacingSniff8& q~Squiz_Sniffs_WhiteSpace_ObjectOperatorSpacingSniff3% g~Squiz_Sniffs_WhiteSpace_MemberVarSpacingSniff9$ s~Squiz_Sniffs_WhiteSpace_LogicalOperatorSpacingSniff;# w~Squiz_Sniffs_WhiteSpace_LanguageConstructSpacingSniff2" e~Squiz_Sniffs_WhiteSpace_FunctionSpacingSniff<! y~Squiz_Sniffs_WhiteSpace_FunctionOpeningBraceSpaceSniff<  y~Squiz_Sniffs_WhiteSpace_FunctionClosingBraceSpaceSniff: u~Squiz_Sniffs_WhiteSpace_ControlStructureSpacingSniff. ]~Squiz_Sniffs_WhiteSpace_CastSpacingSniff- [~Squiz_Sniffs_Strings_EchoedStringsSniff0 a~Squiz_Sniffs_Strings_DoubleQuoteUsageSniff4 i~Squiz_Sniffs_Strings_ConcatenationSpacingSniff- [~Squiz_Sniffs_Scope_StaticThisUsageSniff) S~Squiz_Sniffs_Scope_MethodScopeSniff, Y~Squiz_Sniffs_Scope_MemberVarScopeSniff- [~Squiz_Sniffs_PHP_NonExecutableCodeSniff1 c~Squiz_Sniffs_PHP_LowercasePHPFunctionsSniff* U~Squiz_Sniffs_PHP_InnerFunctionsSniff# G~Squiz_Sniffs_PHP_HeredocSniff) S~Squiz_Sniffs_PHP_GlobalKeywordSniff. ]~Squiz_Sniffs_PHP_ForbiddenFunctionsSniff  A~Squiz_Sniffs_PHP_EvalSniff' O~Squiz_Sniffs_PHP_EmbeddedPhpSniff0 a~Squiz_Sniffs_PHP_DiscouragedFunctionsSniff8 q~Squiz_Sniffs_PHP_DisallowSizeFunctionsInLoopsSniff. ]~Squiz_Sniffs_PHP_DisallowObEndFlushSniff7 o~Squiz_Sniffs_PHP_DisallowMultipleAssignmentsSniff, Y~Squiz_Sniffs_PHP_DisallowInlineIfSniff8
 q~Squiz_Sniffs_PHP_DisallowComparisonAssignmentSniff4	 i~Squiz_Sniffs_PHP_DisallowBooleanStatementSniff   F  v9q/\1pB|E


O
			:	 Ia+`5\ u=a(^~M                                / _PEAR_Sniffs_Classes_ClassDeclarationSniff. ]MySource_Sniffs_Strings_JoinStringsSniff2 eMySource_Sniffs_PHP_ReturnFunctionValueSniff- [MySource_Sniffs_PHP_GetRequestDataSniff0 aMySource_Sniffs_PHP_EvalObjectFactorySniff1 cMySource_Sniffs_PHP_AjaxNullComparisonSniff4 iMySource_Sniffs_Objects_DisallowNewWidgetSniff; wMySource_Sniffs_Objects_CreateWidgetTypeCallbackSniff- [MySource_Sniffs_Objects_AssignThisSniff/ _MySource_Sniffs_Debug_FirebugConsoleSniff* UMySource_Sniffs_Debug_DebugCodeSniff4 iMySource_Sniffs_CSS_BrowserSpecificStylesSniff5 kMySource_Sniffs_Commenting_FunctionCommentSniff0 aMySource_Sniffs_Channels_UnusedSystemSniff1 cMySource_Sniffs_Channels_IncludeSystemSniff4 iMySource_Sniffs_Channels_IncludeOwnSystemSniff7 oMySource_Sniffs_Channels_DisallowSelfActionsSniff4 iMySource_Sniffs_Channels_ChannelExceptionSniff9 sPHP_CodeSniffer_Standards_IncorrectPatternException0 aGeneric_Sniffs_WhiteSpace_ScopeIndentSniff6
 mGeneric_Sniffs_WhiteSpace_DisallowTabIndentSniff8	 qGeneric_Sniffs_WhiteSpace_DisallowSpaceIndentSniff= {Generic_Sniffs_VersionControl_SubversionPropertiesSniff9 sGeneric_Sniffs_Strings_UnnecessaryStringConcatSniff/ _Generic_Sniffs_PHP_UpperCaseConstantSniff$ IGeneric_Sniffs_PHP_SyntaxSniff' OGeneric_Sniffs_PHP_SAPIUsageSniff. ]Generic_Sniffs_PHP_NoSilencedErrorsSniff. ]Generic_Sniffs_PHP_LowerCaseKeywordSniff/ _Generic_Sniffs_PHP_LowerCaseConstantSniff0  aGeneric_Sniffs_PHP_ForbiddenFunctionsSniff2 eGeneric_Sniffs_PHP_DisallowShortOpenTagSniff1~ cGeneric_Sniffs_PHP_DeprecatedFunctionsSniff+} WGeneric_Sniffs_PHP_ClosingPHPTagSniff:| uGeneric_Sniffs_PHP_CharacterBeforePHPOpeningTagSniffB{ Generic_Sniffs_NamingConventions_UpperCaseConstantNameSniff;z wGeneric_Sniffs_NamingConventions_ConstructorNameSniffBy Generic_Sniffs_NamingConventions_CamelCapsFunctionNameSniff.x ]Generic_Sniffs_Metrics_NestingLevelSniff6w mGeneric_Sniffs_Metrics_CyclomaticComplexitySniffIv Generic_Sniffs_Functions_OpeningFunctionBraceKernighanRitchieSniffBu Generic_Sniffs_Functions_OpeningFunctionBraceBsdAllmanSniff?t Generic_Sniffs_Functions_FunctionCallArgumentSpacingSniff;s wGeneric_Sniffs_Functions_CallTimePassByReferenceSniff3r gGeneric_Sniffs_Formatting_SpaceAfterCastSniff5q kGeneric_Sniffs_Formatting_NoSpaceAfterCastSniff?p Generic_Sniffs_Formatting_MultipleStatementAlignmentSniff?o Generic_Sniffs_Formatting_DisallowMultipleStatementsSniff3n gGeneric_Sniffs_Files_OneInterfacePerFileSniff/m _Generic_Sniffs_Files_OneClassPerFileSniff2l eGeneric_Sniffs_Files_LowercasedFilenameSniff*k UGeneric_Sniffs_Files_LineLengthSniff+j WGeneric_Sniffs_Files_LineEndingsSniff*i UGeneric_Sniffs_Files_InlineHTMLSniff0h aGeneric_Sniffs_Files_EndFileNoNewlineSniff.g ]Generic_Sniffs_Files_EndFileNewlineSniff-f [Generic_Sniffs_Files_ByteOrderMarkSniff&e MGeneric_Sniffs_Debug_JSHintSniff'd OGeneric_Sniffs_Debug_CSSLintSniff-c [Generic_Sniffs_Debug_ClosureLinterSniffCb Generic_Sniffs_ControlStructures_InlineControlStructureSniff)a SGeneric_Sniffs_Commenting_TodoSniff*` UGeneric_Sniffs_Commenting_FixmeSniff>_ }Generic_Sniffs_CodeAnalysis_UselessOverridingMethodSniff>^ }Generic_Sniffs_CodeAnalysis_UnusedFunctionParameterSniff?] Generic_Sniffs_CodeAnalysis_UnnecessaryFinalModifierSniff?\ Generic_Sniffs_CodeAnalysis_UnconditionalIfStatementSniff9[ sGeneric_Sniffs_CodeAnalysis_JumbledIncrementerSniffCZ Generic_Sniffs_CodeAnalysis_ForLoopWithTestFunctionCallSniff?Y Generic_Sniffs_CodeAnalysis_ForLoopShouldBeWhileLoopSniff   F  h5Ro1QS


c
+				S	 LyFb,x=EC]-}I                                         'd OSquiz_Sniffs_CSS_IndentationSniff+c WSquiz_Sniffs_CSS_ForbiddenStylesSniff0b aSquiz_Sniffs_CSS_EmptyStyleDefinitionSniff0a aSquiz_Sniffs_CSS_EmptyClassDefinitionSniff4` iSquiz_Sniffs_CSS_DuplicateStyleDefinitionSniff4_ iSquiz_Sniffs_CSS_DuplicateClassDefinitionSniff<^ ySquiz_Sniffs_CSS_DisallowMultipleStyleDefinitionsSniff,] YSquiz_Sniffs_CSS_ColourDefinitionSniff(\ QSquiz_Sniffs_CSS_ColonSpacingSniff<[ ySquiz_Sniffs_CSS_ClassDefinitionOpeningBraceSpaceSniff6Z mSquiz_Sniffs_CSS_ClassDefinitionNameSpacingSniff<Y ySquiz_Sniffs_CSS_ClassDefinitionClosingBraceSpaceSniff;X wSquiz_Sniffs_ControlStructures_SwitchDeclarationSniff>W }Squiz_Sniffs_ControlStructures_LowercaseDeclarationSniff=V {Squiz_Sniffs_ControlStructures_InlineIfDeclarationSniff<U ySquiz_Sniffs_ControlStructures_ForLoopDeclarationSniffAT Squiz_Sniffs_ControlStructures_ForEachLoopDeclarationSniff;S wSquiz_Sniffs_ControlStructures_ElseIfDeclarationSniff:R uSquiz_Sniffs_ControlStructures_ControlSignatureSniff2Q eSquiz_Sniffs_Commenting_VariableCommentSniff7P oSquiz_Sniffs_Commenting_PostStatementCommentSniff>O }Squiz_Sniffs_Commenting_LongConditionClosingCommentSniff0N aSquiz_Sniffs_Commenting_InlineCommentSniff:M uSquiz_Sniffs_Commenting_FunctionCommentThrowTagSniff2L eSquiz_Sniffs_Commenting_FunctionCommentSniff.K ]Squiz_Sniffs_Commenting_FileCommentSniff4J iSquiz_Sniffs_Commenting_EmptyCatchCommentSniff6I mSquiz_Sniffs_Commenting_DocCommentAlignmentSniff<H ySquiz_Sniffs_Commenting_ClosingDeclarationCommentSniff/G _Squiz_Sniffs_Commenting_ClassCommentSniff/F _Squiz_Sniffs_Commenting_BlockCommentSniff3E gSquiz_Sniffs_CodeAnalysis_EmptyStatementSniff.D ]Squiz_Sniffs_Classes_ValidClassNameSniff3C gSquiz_Sniffs_Classes_SelfMemberReferenceSniff6B mSquiz_Sniffs_Classes_LowercaseClassKeywordsSniff1A cSquiz_Sniffs_Classes_DuplicatePropertySniff-@ [Squiz_Sniffs_Classes_ClassFileNameSniff0? aSquiz_Sniffs_Classes_ClassDeclarationSniff/> _Squiz_Sniffs_Arrays_ArrayDeclarationSniff2= eSquiz_Sniffs_Arrays_ArrayBracketSpacingSniff0< aPSR2_Sniffs_Namespaces_UseDeclarationSniff6; mPSR2_Sniffs_Namespaces_NamespaceDeclarationSniff0: aPSR2_Sniffs_Methods_MethodDeclarationSniff49 iPSR2_Sniffs_Methods_FunctionCallSignatureSniff+8 WPSR2_Sniffs_Files_EndFileNewlineSniff:7 uPSR2_Sniffs_ControlStructures_SwitchDeclarationSniff:6 uPSR2_Sniffs_ControlStructures_ElseIfDeclarationSniffA5 PSR2_Sniffs_ControlStructures_ControlStructureSpacingSniff24 ePSR2_Sniffs_Classes_PropertyDeclarationSniff/3 _PSR2_Sniffs_Classes_ClassDeclarationSniff22 ePSR1_Sniffs_Methods_CamelCapsMethodNameSniff(1 QPSR1_Sniffs_Files_SideEffectsSniff/0 _PSR1_Sniffs_Classes_ClassDeclarationSniff-/ [PEAR_Sniffs_WhiteSpace_ScopeIndentSniff3. gPEAR_Sniffs_WhiteSpace_ScopeClosingBraceSniff6- mPEAR_Sniffs_WhiteSpace_ObjectOperatorIndentSniff:, uPEAR_Sniffs_NamingConventions_ValidVariableNameSniff:+ uPEAR_Sniffs_NamingConventions_ValidFunctionNameSniff7* oPEAR_Sniffs_NamingConventions_ValidClassNameSniff2) ePEAR_Sniffs_Functions_ValidDefaultValueSniff4( iPEAR_Sniffs_Functions_FunctionDeclarationSniff6' mPEAR_Sniffs_Functions_FunctionCallSignatureSniff5& kPEAR_Sniffs_Formatting_MultiLineAssignmentSniff*% UPEAR_Sniffs_Files_IncludingFileSniff;$ wPEAR_Sniffs_ControlStructures_MultiLineConditionSniff9# sPEAR_Sniffs_ControlStructures_ControlSignatureSniff/" _PEAR_Sniffs_Commenting_InlineCommentSniff1! cPEAR_Sniffs_Commenting_FunctionCommentSniff-  [PEAR_Sniffs_Commenting_FileCommentSniff. ]PEAR_Sniffs_Commenting_ClassCommentSniff   Q  pIe/n:@X


s
;				b	&qDY,^,n8If/]5raL7                5 )TextDescriptor4 1MarkdownDescriptor3 )JsonDescriptor2 !Descriptor1 9ApplicationDescription0 #ListCommand/ #HelpCommand. Command- Shell, 'ConsoleEvents+ #Application* +PHP_CodeSniffer) 9PHP_CodeSniffer_Tokens$( IPHP_CodeSniffer_Tokenizers_PHP#' GPHP_CodeSniffer_Tokenizers_JS$& IPHP_CodeSniffer_Tokenizers_CSS:% uZend_Sniffs_NamingConventions_ValidVariableNameSniff'$ OZend_Sniffs_Files_ClosingTagSniff)# SZend_Sniffs_Debug_CodeAnalyzerSniff8" qSquiz_Sniffs_WhiteSpace_SuperfluousWhitespaceSniff3! gSquiz_Sniffs_WhiteSpace_SemicolonSpacingSniff6  mSquiz_Sniffs_WhiteSpace_ScopeKeywordSpacingSniff4 iSquiz_Sniffs_WhiteSpace_ScopeClosingBraceSniff7 oSquiz_Sniffs_WhiteSpace_PropertyLabelSpacingSniff2 eSquiz_Sniffs_WhiteSpace_OperatorSpacingSniff8 qSquiz_Sniffs_WhiteSpace_ObjectOperatorSpacingSniff3 gSquiz_Sniffs_WhiteSpace_MemberVarSpacingSniff9 sSquiz_Sniffs_WhiteSpace_LogicalOperatorSpacingSniff; wSquiz_Sniffs_WhiteSpace_LanguageConstructSpacingSniff2 eSquiz_Sniffs_WhiteSpace_FunctionSpacingSniff< ySquiz_Sniffs_WhiteSpace_FunctionOpeningBraceSpaceSniff< ySquiz_Sniffs_WhiteSpace_FunctionClosingBraceSpaceSniff: uSquiz_Sniffs_WhiteSpace_ControlStructureSpacingSniff. ]Squiz_Sniffs_WhiteSpace_CastSpacingSniff- [Squiz_Sniffs_Strings_EchoedStringsSniff0 aSquiz_Sniffs_Strings_DoubleQuoteUsageSniff4 iSquiz_Sniffs_Strings_ConcatenationSpacingSniff- [Squiz_Sniffs_Scope_StaticThisUsageSniff) SSquiz_Sniffs_Scope_MethodScopeSniff, YSquiz_Sniffs_Scope_MemberVarScopeSniff- [Squiz_Sniffs_PHP_NonExecutableCodeSniff1 cSquiz_Sniffs_PHP_LowercasePHPFunctionsSniff* USquiz_Sniffs_PHP_InnerFunctionsSniff#
 GSquiz_Sniffs_PHP_HeredocSniff)	 SSquiz_Sniffs_PHP_GlobalKeywordSniff. ]Squiz_Sniffs_PHP_ForbiddenFunctionsSniff  ASquiz_Sniffs_PHP_EvalSniff' OSquiz_Sniffs_PHP_EmbeddedPhpSniff0 aSquiz_Sniffs_PHP_DiscouragedFunctionsSniff8 qSquiz_Sniffs_PHP_DisallowSizeFunctionsInLoopsSniff. ]Squiz_Sniffs_PHP_DisallowObEndFlushSniff7 oSquiz_Sniffs_PHP_DisallowMultipleAssignmentsSniff, YSquiz_Sniffs_PHP_DisallowInlineIfSniff8  qSquiz_Sniffs_PHP_DisallowComparisonAssignmentSniff4 iSquiz_Sniffs_PHP_DisallowBooleanStatementSniff,~ YSquiz_Sniffs_PHP_CommentedOutCodeSniff7} oSquiz_Sniffs_Operators_ValidLogicalOperatorsSniff9| sSquiz_Sniffs_Operators_IncrementDecrementUsageSniff9{ sSquiz_Sniffs_Operators_ComparisonOperatorUsageSniff1z cSquiz_Sniffs_Objects_ObjectMemberCommaSniff3y gSquiz_Sniffs_Objects_ObjectInstantiationSniff9x sSquiz_Sniffs_Objects_DisallowObjectStringIndexSniff;w wSquiz_Sniffs_NamingConventions_ValidVariableNameSniff;v wSquiz_Sniffs_NamingConventions_ValidFunctionNameSniff6u mSquiz_Sniffs_NamingConventions_ConstantCaseSniff>t }Squiz_Sniffs_Functions_MultiLineFunctionDeclarationSniff;s wSquiz_Sniffs_Functions_LowercaseFunctionKeywordsSniff0r aSquiz_Sniffs_Functions_GlobalFunctionSniff;q wSquiz_Sniffs_Functions_FunctionDuplicateArgumentSniff5p kSquiz_Sniffs_Functions_FunctionDeclarationSniffEo 	Squiz_Sniffs_Functions_FunctionDeclarationArgumentSpacingSniff2n eSquiz_Sniffs_Formatting_OperatorBracketSniff+m WSquiz_Sniffs_Files_FileExtensionSniff$l ISquiz_Sniffs_Debug_JSLintSniff,k YSquiz_Sniffs_Debug_JavaScriptLintSniff)j SSquiz_Sniffs_CSS_ShorthandSizeSniff,i YSquiz_Sniffs_CSS_SemicolonSpacingSniff#h GSquiz_Sniffs_CSS_OpacitySniff(g QSquiz_Sniffs_CSS_NamedColoursSniff(f QSquiz_Sniffs_CSS_MissingColonSniff4e iSquiz_Sniffs_CSS_LowercaseStyleDefinitionSniff   * x_A zcN6ufO6!tVD/u\C#





k
V
A
,

 					s	S	7		pY9}fN3o[A'oFsBOQX*                                *6 UPHPUnit_Framework_Constraint_IsEqual*5 UPHPUnit_Framework_Constraint_IsEmpty-4 [PHPUnit_Framework_Constraint_IsAnything.3 ]PHPUnit_Framework_Constraint_GreaterThan-2 [PHPUnit_Framework_Constraint_FileExists31 gPHPUnit_Framework_Constraint_ExceptionMessage00 aPHPUnit_Framework_Constraint_ExceptionCode,/ YPHPUnit_Framework_Constraint_Exception(. QPHPUnit_Framework_Constraint_Count,- YPHPUnit_Framework_Constraint_Composite:, uPHPUnit_Framework_Constraint_ClassHasStaticAttribute4+ iPHPUnit_Framework_Constraint_ClassHasAttribute+* WPHPUnit_Framework_Constraint_Callback,) YPHPUnit_Framework_Constraint_Attribute.( ]PHPUnit_Framework_Constraint_ArrayHasKey&' MPHPUnit_Framework_Constraint_And-& [PHPUnit_Framework_CodeCoverageException(% QPHPUnit_Framework_BaseTestListener,$ YPHPUnit_Framework_AssertionFailedError# =PHPUnit_Framework_Assert'" OPHPUnit_Extensions_TicketListener&! MPHPUnit_Extensions_TestDecorator%  KPHPUnit_Extensions_RepeatedTest& MPHPUnit_Extensions_PhptTestSuite% KPHPUnit_Extensions_PhptTestCase' OPHPUnit_Extensions_GroupTestSuite /CommandTesterTest 7ApplicationTesterTest -SymfonyStyleTest -StreamOutputTest !TestOutput !OutputTest )NullOutputTest /ConsoleOutputTest /ConsoleLoggerTest +StringInputTest InputTest +InputOptionTest 3InputDefinitionTest /InputArgumentTest )ArrayInputTest 'ArgvInputTest TableTest )TableStyleTest
 1QuestionHelperTest	 +ProgressBarTest /ProcessHelperTest 7LegacyTableHelperTest =LegacyProgressHelperTest 9LegacyDialogHelperTest 'HelperSetTest 3FormatterHelperTest TableCell 3OutputFormatterTest  =OutputFormatterStyleTest# GOutputFormatterStyleStackTest~ #DummyOutput} 1DescriptorCommand2| 1DescriptorCommand1{ 9DescriptorApplication2z 9DescriptorApplication1y #TestCommandx =FooSubnamespaced2Commandw =FooSubnamespaced1Commandv !FooCommandu 'FoobarCommandt #Foo5Commands #Foo4Commandr #Foo3Commandq #Foo2Commandp #Foo1Commando 'BarBucCommandn /XmlDescriptorTestm 1TextDescriptorTestl +ObjectsProviderk 9MarkdownDescriptorTestj 1JsonDescriptorTesti 9AbstractDescriptorTesth +ListCommandTestg +HelpCommandTestf #CommandTest%e KCustomDefaultCommandApplicationd /CustomApplicationc +ApplicationTestb 'CommandTestera /ApplicationTester` %SymfonyStyle_ #OutputStyle^ Question] 5ConfirmationQuestion\ )ChoiceQuestion[ %StreamOutputZ OutputY !NullOutputX 'ConsoleOutputW )BufferedOutputV 'ConsoleLoggerU #StringInputT #InputOptionS +InputDefinitionR 'InputArgumentQ InputP !ArrayInputO ArgvInputN !TableStyleM )TableSeparatorL #TableHelperK TableCellJ TableI 7SymfonyQuestionHelperH )QuestionHelperG )ProgressHelperF #ProgressBarE 'ProcessHelperD -InputAwareHelperC HelperSetB HelperA +FormatterHelper@ %DialogHelper? -DescriptorHelper> 5DebugFormatterHelper= ?OutputFormatterStyleStack< 5OutputFormatterStyle; +OutputFormatter: 7ConsoleTerminateEvent9 7ConsoleExceptionEvent8 %ConsoleEvent7 3ConsoleCommandEvent6 'XmlDescriptor   a  m@q?T%P\4



`
,				w	F	yTY,e?sV9lJ0`/bM4Y/                    " EClassWithNonPublicAttributes( QParentClassWithProtectedAttributes& MParentClassWithPrivateAttributes' OChangeCurrentWorkingDirectoryTest !Calculator
 Book" EBeforeClassAndAfterClassTest 1BeforeAndAfterTest 9BaseTestListenerSample( QBankAccountWithCustomExtensionTest +BankAccountTest #BankAccount 5BankAccountException
 Author	 %AbstractTest -PHPUnit_Util_XML /PHPUnit_Util_Type$ IPHPUnit_Util_TestSuiteIterator( QPHPUnit_Util_TestDox_ResultPrinter- [PHPUnit_Util_TestDox_ResultPrinter_Text- [PHPUnit_Util_TestDox_ResultPrinter_HTML) SPHPUnit_Util_TestDox_NamePrettifier /PHPUnit_Util_Test  3PHPUnit_Util_String 1PHPUnit_Util_Regex~ 5PHPUnit_Util_Printer} -PHPUnit_Util_PHP| =PHPUnit_Util_PHP_Windows{ =PHPUnit_Util_PHP_Defaultz 5PHPUnit_Util_Log_TAPy 9PHPUnit_Util_Log_JUnitx 7PHPUnit_Util_Log_JSON(w QPHPUnit_Util_InvalidArgumentHelperv =PHPUnit_Util_GlobalStateu 3PHPUnit_Util_Getoptt 3PHPUnit_Util_Filters ;PHPUnit_Util_Filesystemr ;PHPUnit_Util_Fileloaderq ?PHPUnit_Util_ErrorHandler p APHPUnit_Util_Configurationo 9PHPUnit_Util_Blacklistn ?PHPUnit_TextUI_TestRunner"m EPHPUnit_TextUI_ResultPrinterl 9PHPUnit_TextUI_Commandk 9PHPUnit_Runner_Version,j YPHPUnit_Runner_StandardTestSuiteLoader i APHPUnit_Runner_Filter_Test/h _PHPUnit_Runner_Filter_GroupFilterIterator)g SPHPUnit_Runner_Filter_Group_Include)f SPHPUnit_Runner_Filter_Group_Exclude#e GPHPUnit_Runner_Filter_Factoryd =PHPUnit_Runner_Exception#c GPHPUnit_Runner_BaseTestRunnerb ?PHPUnit_Framework_Warning7a oPHPUnit_Framework_UnintentionallyCoveredCodeError!` CPHPUnit_Framework_TestSuite._ ]PHPUnit_Framework_TestSuite_DataProvider"^ EPHPUnit_Framework_TestResult#] GPHPUnit_Framework_TestFailure \ APHPUnit_Framework_TestCase&[ MPHPUnit_Framework_SyntheticError-Z [PHPUnit_Framework_SkippedTestSuiteError(Y QPHPUnit_Framework_SkippedTestError&X MPHPUnit_Framework_RiskyTestError#W GPHPUnit_Framework_OutputError4V iPHPUnit_Framework_InvalidCoversTargetException0U aPHPUnit_Framework_InvalidCoversTargetError+T WPHPUnit_Framework_IncompleteTestError2S ePHPUnit_Framework_ExpectationFailedException!R CPHPUnit_Framework_ExceptionQ ;PHPUnit_Framework_Error%P KPHPUnit_Framework_Error_Warning$O IPHPUnit_Framework_Error_Notice(N QPHPUnit_Framework_Error_Deprecated"M EPHPUnit_Framework_Constraint&L MPHPUnit_Framework_Constraint_Xor:K uPHPUnit_Framework_Constraint_TraversableContainsOnly6J mPHPUnit_Framework_Constraint_TraversableContains3I gPHPUnit_Framework_Constraint_StringStartsWith0H aPHPUnit_Framework_Constraint_StringMatches1G cPHPUnit_Framework_Constraint_StringEndsWith1F cPHPUnit_Framework_Constraint_StringContains+E WPHPUnit_Framework_Constraint_SameSize,D YPHPUnit_Framework_Constraint_PCREMatch%C KPHPUnit_Framework_Constraint_Or5B kPHPUnit_Framework_Constraint_ObjectHasAttribute&A MPHPUnit_Framework_Constraint_Not+@ WPHPUnit_Framework_Constraint_LessThan.? ]PHPUnit_Framework_Constraint_JsonMatchesD> PHPUnit_Framework_Constraint_JsonMatches_ErrorMessageProvider)= SPHPUnit_Framework_Constraint_IsType)< SPHPUnit_Framework_Constraint_IsTrue); SPHPUnit_Framework_Constraint_IsNull): SPHPUnit_Framework_Constraint_IsJson/9 _PHPUnit_Framework_Constraint_IsInstanceOf.8 ]PHPUnit_Framework_Constraint_IsIdentical*7 UPHPUnit_Framework_Constraint_IsFalse    f=
gK1w[/nQ9!_F!






q
V
E
1
				j	E	{V;(u]CnXA!qS`9}hW@)cM7!{[C          % KUtil_TestDox_NamePrettifierTest )Util_RegexTest 9Util_ConfigurationTest ?Runner_BaseTestRunnerTest %Issue765Test %NewException #Issue74Test %Issue581Test %Issue503Test %Issue498Test %Issue445Test %Issue433Test %Issue322Test =Issue244ExceptionIntCode /Issue244Exception %Issue244Test 'Issue1374Test
 'Issue1340Test	 'Issue1337Test 'Issue1335Test 'Issue1330Test 'Issue1265Test 'Issue1149Test TwoTest #ParentSuite OneTest !ChildSuite  5Foo_Bar_Issue684Test %Issue578Test~ Issue523} %Issue523Test| 'Issue1021Test { AFramework_TestListenerTest#z GFramework_TestImplementorTesty ?Framework_TestFailureTestx 9Framework_TestCaseTestw 3Framework_SuiteTestv =Framework_ConstraintTest*u UFramework_Constraint_JsonMatchesTest?t Framework_Constraint_JsonMatches_ErrorMessageProviderTests 5ExceptionMessageTestr CountTest$q IFramework_BaseTestListenerTestp 5Framework_AssertTest!o CExtensions_RepeatedTestTestn WasRunm =ThrowNoExceptionTestCasel 9ThrowExceptionTestCasek 'TestIterator2j %TestIteratori 3TemplateMethodsTesth Successg Structf StackTeste Singletond #SampleClassc /SampleArrayAccessb -RequirementsTest#a GRequirementsClassDocBlockTest` -OverrideTestCase_ )OutputTestCase^ #OneTestCase] +NotVoidTestCase\ /NotPublicTestCase[ #NothingTest#Z GNotExistingCoveredElementTestY #NoTestCasesX +NoTestCaseClassW NonStaticV /NoArgTestCaseTest!U CNamespaceCoveragePublicTest$T INamespaceCoverageProtectedTest"S ENamespaceCoveragePrivateTest$R INamespaceCoverageNotPublicTest'Q ONamespaceCoverageNotProtectedTest%P KNamespaceCoverageNotPrivateTest!O CNamespaceCoverageMethodTest&N MNamespaceCoverageCoversClassTest,M YNamespaceCoverageCoversClassPublicTest L ANamespaceCoverageClassTest(K QNamespaceCoverageClassExtendedTestJ 3MultiDependencyTestI !MockRunnerH IniTestG /InheritedTestCaseF %InheritanceBE %InheritanceAD )IncompleteTestC FatalTestB #FailureTestA Failure@ 'ExceptionTest? 1ExceptionStackTest!> CExceptionStackTestException= +ExceptionInTest< ;ExceptionInTearDownTest; 5ExceptionInSetUpTest(: QExceptionInAssertPreConditionsTest)9 SExceptionInAssertPostConditionsTest8 Error7 /EmptyTestCaseTest6 )DummyException5 )DoubleTestCase4 3DependencyTestSuite3 7DependencySuccessTest2 7DependencyFailureTest1 -DataProviderTest0 9DataProviderFilterTest/ 'CustomPrinter. %CoveredClass- 1CoveredParentClass(, QCoverageTwoDefaultClassAnnotations+ 1CoveragePublicTest* 7CoverageProtectedTest) 3CoveragePrivateTest( 7CoverageNotPublicTest' =CoverageNotProtectedTest& 9CoverageNotPrivateTest% 3CoverageNothingTest$ -CoverageNoneTest# 1CoverageMethodTest-" [CoverageMethodParenthesesWhitespaceTest#! GCoverageMethodParenthesesTest)  SCoverageMethodOneLineAnnotationTest 5CoverageFunctionTest/ _CoverageFunctionParenthesesWhitespaceTest% KCoverageFunctionParenthesesTest /CoverageClassTest ?CoverageClassExtendedTest %ConcreteTest' OConcreteWithMyCustomExtensionTest /ClassWithToString   W  C`6f:	}N|L


~
M
				^	1	b0uExAyM%Qh7jE
wJ                   r APHPUnit_Runner_Filter_Test/q _PHPUnit_Runner_Filter_GroupFilterIterator)p SPHPUnit_Runner_Filter_Group_Include)o SPHPUnit_Runner_Filter_Group_Exclude#n GPHPUnit_Runner_Filter_Factorym =PHPUnit_Runner_Exception#l GPHPUnit_Runner_BaseTestRunnerk ?PHPUnit_Framework_Warning7j oPHPUnit_Framework_UnintentionallyCoveredCodeError!i CPHPUnit_Framework_TestSuite.h ]PHPUnit_Framework_TestSuite_DataProvider"g EPHPUnit_Framework_TestResult#f GPHPUnit_Framework_TestFailure e APHPUnit_Framework_TestCase&d MPHPUnit_Framework_SyntheticError-c [PHPUnit_Framework_SkippedTestSuiteError(b QPHPUnit_Framework_SkippedTestError&a MPHPUnit_Framework_RiskyTestError#` GPHPUnit_Framework_OutputError4_ iPHPUnit_Framework_InvalidCoversTargetException0^ aPHPUnit_Framework_InvalidCoversTargetError+] WPHPUnit_Framework_IncompleteTestError2\ ePHPUnit_Framework_ExpectationFailedException![ CPHPUnit_Framework_ExceptionZ ;PHPUnit_Framework_Error%Y KPHPUnit_Framework_Error_Warning$X IPHPUnit_Framework_Error_Notice(W QPHPUnit_Framework_Error_Deprecated"V EPHPUnit_Framework_Constraint&U MPHPUnit_Framework_Constraint_Xor:T uPHPUnit_Framework_Constraint_TraversableContainsOnly6S mPHPUnit_Framework_Constraint_TraversableContains3R gPHPUnit_Framework_Constraint_StringStartsWith0Q aPHPUnit_Framework_Constraint_StringMatches1P cPHPUnit_Framework_Constraint_StringEndsWith1O cPHPUnit_Framework_Constraint_StringContains+N WPHPUnit_Framework_Constraint_SameSize,M YPHPUnit_Framework_Constraint_PCREMatch%L KPHPUnit_Framework_Constraint_Or5K kPHPUnit_Framework_Constraint_ObjectHasAttribute&J MPHPUnit_Framework_Constraint_Not+I WPHPUnit_Framework_Constraint_LessThan.H ]PHPUnit_Framework_Constraint_JsonMatchesDG PHPUnit_Framework_Constraint_JsonMatches_ErrorMessageProvider)F SPHPUnit_Framework_Constraint_IsType)E SPHPUnit_Framework_Constraint_IsTrue)D SPHPUnit_Framework_Constraint_IsNull)C SPHPUnit_Framework_Constraint_IsJson/B _PHPUnit_Framework_Constraint_IsInstanceOf.A ]PHPUnit_Framework_Constraint_IsIdentical*@ UPHPUnit_Framework_Constraint_IsFalse*? UPHPUnit_Framework_Constraint_IsEqual*> UPHPUnit_Framework_Constraint_IsEmpty-= [PHPUnit_Framework_Constraint_IsAnything.< ]PHPUnit_Framework_Constraint_GreaterThan-; [PHPUnit_Framework_Constraint_FileExists3: gPHPUnit_Framework_Constraint_ExceptionMessage09 aPHPUnit_Framework_Constraint_ExceptionCode,8 YPHPUnit_Framework_Constraint_Exception(7 QPHPUnit_Framework_Constraint_Count,6 YPHPUnit_Framework_Constraint_Composite:5 uPHPUnit_Framework_Constraint_ClassHasStaticAttribute44 iPHPUnit_Framework_Constraint_ClassHasAttribute+3 WPHPUnit_Framework_Constraint_Callback,2 YPHPUnit_Framework_Constraint_Attribute.1 ]PHPUnit_Framework_Constraint_ArrayHasKey&0 MPHPUnit_Framework_Constraint_And-/ [PHPUnit_Framework_CodeCoverageException(. QPHPUnit_Framework_BaseTestListener,- YPHPUnit_Framework_AssertionFailedError, =PHPUnit_Framework_Assert'+ OPHPUnit_Extensions_TicketListener&* MPHPUnit_Extensions_TestDecorator%) KPHPUnit_Extensions_RepeatedTest&( MPHPUnit_Extensions_PhptTestSuite%' KPHPUnit_Extensions_PhptTestCase'& OPHPUnit_Extensions_GroupTestSuite% 'File_Iterator$ 7File_Iterator_Factory# 5File_Iterator_Facade7" oPHPCS_Sniffs_Whitespace_ConcatenationSpacingSniff:! uPHPCS_Sniffs_ControlStructures_ControlSignatureSniff  %CoveredClass 1CoveredParentClass 9ExceptionNamespaceTest %Util_XMLTest 'Util_TestTest   y
 jG'dBu[=!Z.x_3





Z
.
					n	E	oS9c7vYA)gN)y^M9rM$^C0}eK$
                k -RequirementsTest#j GRequirementsClassDocBlockTesti -OverrideTestCaseh )OutputTestCaseg #OneTestCasef +NotVoidTestCasee /NotPublicTestCased #NothingTest#c GNotExistingCoveredElementTestb #NoTestCasesa +NoTestCaseClass` NonStatic_ /NoArgTestCaseTest!^ CNamespaceCoveragePublicTest$] INamespaceCoverageProtectedTest"\ ENamespaceCoveragePrivateTest$[ INamespaceCoverageNotPublicTest'Z ONamespaceCoverageNotProtectedTest%Y KNamespaceCoverageNotPrivateTest!X CNamespaceCoverageMethodTest&W MNamespaceCoverageCoversClassTest,V YNamespaceCoverageCoversClassPublicTest U ANamespaceCoverageClassTest(T QNamespaceCoverageClassExtendedTestS 3MultiDependencyTestR !MockRunnerQ IniTestP /InheritedTestCaseO %InheritanceBN %InheritanceAM )IncompleteTestL FatalTestK #FailureTestJ FailureI 'ExceptionTestH 1ExceptionStackTest!G CExceptionStackTestExceptionF +ExceptionInTestE ;ExceptionInTearDownTestD 5ExceptionInSetUpTest(C QExceptionInAssertPreConditionsTest)B SExceptionInAssertPostConditionsTestA Error@ /EmptyTestCaseTest? )DummyException> )DoubleTestCase= 3DependencyTestSuite< 7DependencySuccessTest; 7DependencyFailureTest: -DataProviderTest9 9DataProviderFilterTest8 'CustomPrinter7 %CoveredClass6 1CoveredParentClass(5 QCoverageTwoDefaultClassAnnotations4 1CoveragePublicTest3 7CoverageProtectedTest2 3CoveragePrivateTest1 7CoverageNotPublicTest0 =CoverageNotProtectedTest/ 9CoverageNotPrivateTest. 3CoverageNothingTest- -CoverageNoneTest, 1CoverageMethodTest-+ [CoverageMethodParenthesesWhitespaceTest#* GCoverageMethodParenthesesTest)) SCoverageMethodOneLineAnnotationTest( 5CoverageFunctionTest/' _CoverageFunctionParenthesesWhitespaceTest%& KCoverageFunctionParenthesesTest% /CoverageClassTest$ ?CoverageClassExtendedTest# %ConcreteTest'" OConcreteWithMyCustomExtensionTest! /ClassWithToString"  EClassWithNonPublicAttributes( QParentClassWithProtectedAttributes& MParentClassWithPrivateAttributes' OChangeCurrentWorkingDirectoryTest !Calculator
 Book" EBeforeClassAndAfterClassTest 1BeforeAndAfterTest 9BaseTestListenerSample( QBankAccountWithCustomExtensionTest +BankAccountTest #BankAccount 5BankAccountException Author %AbstractTest -PHPUnit_Util_XML /PHPUnit_Util_Type$ IPHPUnit_Util_TestSuiteIterator( QPHPUnit_Util_TestDox_ResultPrinter- [PHPUnit_Util_TestDox_ResultPrinter_Text- [PHPUnit_Util_TestDox_ResultPrinter_HTML) SPHPUnit_Util_TestDox_NamePrettifier
 /PHPUnit_Util_Test	 3PHPUnit_Util_String 1PHPUnit_Util_Regex 5PHPUnit_Util_Printer -PHPUnit_Util_PHP =PHPUnit_Util_PHP_Windows =PHPUnit_Util_PHP_Default 5PHPUnit_Util_Log_TAP 9PHPUnit_Util_Log_JUnit 7PHPUnit_Util_Log_JSON(  QPHPUnit_Util_InvalidArgumentHelper =PHPUnit_Util_GlobalState~ 3PHPUnit_Util_Getopt} 3PHPUnit_Util_Filter| ;PHPUnit_Util_Filesystem{ ;PHPUnit_Util_Fileloaderz ?PHPUnit_Util_ErrorHandler y APHPUnit_Util_Configurationx 9PHPUnit_Util_Blacklistw ?PHPUnit_TextUI_TestRunner"v EPHPUnit_TextUI_ResultPrinteru 9PHPUnit_TextUI_Commandt 9PHPUnit_Runner_Version,s YPHPUnit_Runner_StandardTestSuiteLoader   H lV?oQ^7{fU>'aK5	





y
Y
A

						m	T	G	8	"		zaJ1yfL7%qXG5&gE3 uXB+
{hQ/lQ@-}fH    	 5OpenSslExceptionTest 'ExceptionTest PhpTest JsonTest )JavascriptTest 'CompactorTest 'BaseCompactor /StubGeneratorTest 'SignatureTest  #ExtractTest Compactor~ BoxTest} /PublicKeyDelegate| PhpSecLib{ OpenSsl
z Hashy /AbstractPublicKeyx 5AbstractBufferedHashw =UnexpectedValueExceptionv 1SignatureExceptionu -OpenSslExceptiont =InvalidArgumentExceptions 'FileExceptionr Exception	q Php
p Jsono !Javascriptn Composerm Compactorl 'StubGeneratork Signaturej Extract	i Boxh !TokensTestg 'TokenizerTestf %SequenceTeste 3SyntaxExceptionTestd 'ExceptionTestc ToXmlTestb %ToStringTesta #ToArrayTest` 3AbstractConvertTest_ !TestTokens^ #TestConvert] Tokens\ Tokenizer[ SequenceZ =UnexpectedTokenExceptionY +SyntaxExceptionX 3OutOfRangeExceptionW )LogicExceptionV 3InvalidXmlExceptionU 7InvalidTokenExceptionT =InvalidArgumentExceptionS ExceptionR ToXmlQ ToStringP ToArrayO +AbstractConvertN 3MockPhpSecLibHelperM %MockCryptRSAL #ExtractTestK !CreateTestJ !VerifyTestI %ValidateTestH -TestConfigurableG !RemoveTestF InfoTestE #ExtractTestD -ConfigurableTestC BuildTestB AddTestA 3TestAbstractCommand@ 3AbstractCommandTest? 'TestCompactor> -InvalidCompactor= ;ConfigurationHelperTest< /ConfigurationTest; +ApplicationTest: 'FixedResponse9 +CommandTestCase8 +PhpSecLibHelper7 3ConfigurationHelper6 Extract5 Create4 Verify3 Validate2 Remove
1 Info0 Extract/ %Configurable. Build	- Add, +AbstractCommand+ 'Configuration* #Application) %CoveredClass( 1CoveredParentClass' 9ExceptionNamespaceTest& %Util_XMLTest% 'Util_TestTest%$ KUtil_TestDox_NamePrettifierTest# )Util_RegexTest" 9Util_ConfigurationTest! ?Runner_BaseTestRunnerTest  %Issue765Test %NewException #Issue74Test %Issue581Test %Issue503Test %Issue498Test %Issue445Test %Issue433Test %Issue322Test =Issue244ExceptionIntCode /Issue244Exception %Issue244Test 'Issue1374Test 'Issue1340Test 'Issue1337Test 'Issue1335Test 'Issue1330Test 'Issue1265Test 'Issue1149Test TwoTest #ParentSuite OneTest
 !ChildSuite	 5Foo_Bar_Issue684Test %Issue578Test Issue523 %Issue523Test 'Issue1021Test  AFramework_TestListenerTest# GFramework_TestImplementorTest ?Framework_TestFailureTest 9Framework_TestCaseTest  3Framework_SuiteTest =Framework_ConstraintTest*~ UFramework_Constraint_JsonMatchesTest?} Framework_Constraint_JsonMatches_ErrorMessageProviderTest| 5ExceptionMessageTest{ CountTest$z IFramework_BaseTestListenerTesty 5Framework_AssertTest!x CExtensions_RepeatedTestTestw WasRunv =ThrowNoExceptionTestCaseu 9ThrowExceptionTestCaset 'TestIterator2s %TestIteratorr 3TemplateMethodsTestq Successp Structo StackTestn Singletonm #SampleClassl /SampleArrayAccess   z- kX9&v`L;'qWB*XG7"xhVF6%





j
P
9
								l	V	B	.		qEqE Z4j@}DIDt-                                                 C Generic_Sniffs_ControlStructures_InlineControlStructureSniff) SGeneric_Sniffs_Commenting_TodoSniff* UGeneric_Sniffs_Commenting_FixmeSniff/  _Generic_Sniffs_Commenting_DocCommentSniff> }Generic_Sniffs_CodeAnalysis_UselessOverridingMethodSniff>~ }Generic_Sniffs_CodeAnalysis_UnusedFunctionParameterSniff?} Generic_Sniffs_CodeAnalysis_UnnecessaryFinalModifierSniff?| Generic_Sniffs_CodeAnalysis_UnconditionalIfStatementSniff9{ sGeneric_Sniffs_CodeAnalysis_JumbledIncrementerSniffCz Generic_Sniffs_CodeAnalysis_ForLoopWithTestFunctionCallSniff?y Generic_Sniffs_CodeAnalysis_ForLoopShouldBeWhileLoopSniff5x kGeneric_Sniffs_CodeAnalysis_EmptyStatementSniff4w iGeneric_Sniffs_Classes_DuplicateClassNameSniff5v kPHP_CodeSniffer_Standards_AbstractVariableSniff2u ePHP_CodeSniffer_Standards_AbstractScopeSniff4t iPHP_CodeSniffer_Standards_AbstractPatternSniff!s CPHP_CodeSniffer_Reports_Xml,r YPHP_CodeSniffer_Reports_VersionControl&q MPHP_CodeSniffer_Reports_Svnblame%p KPHP_CodeSniffer_Reports_Summary$o IPHP_CodeSniffer_Reports_Source(n QPHP_CodeSniffer_Reports_Notifysend#m GPHP_CodeSniffer_Reports_Junit"l EPHP_CodeSniffer_Reports_Json"k EPHP_CodeSniffer_Reports_Info%j KPHP_CodeSniffer_Reports_Hgblame&i MPHP_CodeSniffer_Reports_Gitblame"h EPHP_CodeSniffer_Reports_Full#g GPHP_CodeSniffer_Reports_Emacs"f EPHP_CodeSniffer_Reports_Diff!e CPHP_CodeSniffer_Reports_Csv(d QPHP_CodeSniffer_Reports_Checkstyle!c CPHP_CodeSniffer_Reports_Cbfb ?PHP_CodeSniffer_Reportinga 7PHP_CodeSniffer_Fixer` 5PHP_CodeSniffer_File_ ?PHP_CodeSniffer_Exception(^ QPHP_CodeSniffer_DocGenerators_Text(] QPHP_CodeSniffer_DocGenerators_HTML-\ [PHP_CodeSniffer_DocGenerators_Generator[ 3PHP_CodeSniffer_CLIZ #JShrinkTestY MinifierX 3MockPhpSecLibHelperW %MockCryptRSAV #ExtractTestU !CreateTestT !VerifyTestS %ValidateTestR -TestConfigurableQ !RemoveTestP InfoTestO #ExtractTestN -ConfigurableTestM BuildTestL AddTestK 3TestAbstractCommandJ 3AbstractCommandTestI 'TestCompactorH -InvalidCompactorG ;ConfigurationHelperTestF /ConfigurationTestE +ApplicationTestD 'FixedResponseC +CommandTestCaseB +PhpSecLibHelperA 3ConfigurationHelper@ Extract? Create> Verify= Validate< Remove
; Info: Extract9 %Configurable8 Build	7 Add6 +AbstractCommand5 'Configuration4 #Application3 !HelperTest2 #CommandTest1 Helper0 Command./ ]InvalidStringRepresentationExceptionTest . AInvalidNumberExceptionTest$- IInvalidIdentifierExceptionTest, #VersionTest+ 'ValidatorTest* !ParserTest) !DumperTest( )ComparatorTest' #BuilderTest& -VersionException*% UInvalidStringRepresentationException$ 9InvalidNumberException # AInvalidIdentifierException" Version! Validator  Parser Dumper !Comparator Builder !UpdateTest %ManifestTest 'ExceptionTest #ManagerTest Update Manifest Manager )LogicException =InvalidArgumentException 'FileException Exception 7PublicKeyDelegateTest PublicKey 'PhpSecLibTest #OpenSslTest HashTest %BufferedHash 7AbstractPublicKeyTest
 =AbstractBufferedHashTest   H  zIX"BPz@


C
			k	7	uM`&zBh:_*]*_"|B
   7K oPEAR_Sniffs_NamingConventions_ValidClassNameSniff2J ePEAR_Sniffs_Functions_ValidDefaultValueSniff4I iPEAR_Sniffs_Functions_FunctionDeclarationSniff6H mPEAR_Sniffs_Functions_FunctionCallSignatureSniff5G kPEAR_Sniffs_Formatting_MultiLineAssignmentSniff*F UPEAR_Sniffs_Files_IncludingFileSniff;E wPEAR_Sniffs_ControlStructures_MultiLineConditionSniff9D sPEAR_Sniffs_ControlStructures_ControlSignatureSniff/C _PEAR_Sniffs_Commenting_InlineCommentSniff1B cPEAR_Sniffs_Commenting_FunctionCommentSniff-A [PEAR_Sniffs_Commenting_FileCommentSniff.@ ]PEAR_Sniffs_Commenting_ClassCommentSniff/? _PEAR_Sniffs_Classes_ClassDeclarationSniff.> ]MySource_Sniffs_Strings_JoinStringsSniff2= eMySource_Sniffs_PHP_ReturnFunctionValueSniff-< [MySource_Sniffs_PHP_GetRequestDataSniff0; aMySource_Sniffs_PHP_EvalObjectFactorySniff1: cMySource_Sniffs_PHP_AjaxNullComparisonSniff49 iMySource_Sniffs_Objects_DisallowNewWidgetSniff;8 wMySource_Sniffs_Objects_CreateWidgetTypeCallbackSniff-7 [MySource_Sniffs_Objects_AssignThisSniff/6 _MySource_Sniffs_Debug_FirebugConsoleSniff*5 UMySource_Sniffs_Debug_DebugCodeSniff44 iMySource_Sniffs_CSS_BrowserSpecificStylesSniff53 kMySource_Sniffs_Commenting_FunctionCommentSniff02 aMySource_Sniffs_Channels_UnusedSystemSniff11 cMySource_Sniffs_Channels_IncludeSystemSniff40 iMySource_Sniffs_Channels_IncludeOwnSystemSniff7/ oMySource_Sniffs_Channels_DisallowSelfActionsSniff9. sPHP_CodeSniffer_Standards_IncorrectPatternException0- aGeneric_Sniffs_WhiteSpace_ScopeIndentSniff6, mGeneric_Sniffs_WhiteSpace_DisallowTabIndentSniff8+ qGeneric_Sniffs_WhiteSpace_DisallowSpaceIndentSniff=* {Generic_Sniffs_VersionControl_SubversionPropertiesSniff9) sGeneric_Sniffs_Strings_UnnecessaryStringConcatSniff/( _Generic_Sniffs_PHP_UpperCaseConstantSniff$' IGeneric_Sniffs_PHP_SyntaxSniff'& OGeneric_Sniffs_PHP_SAPIUsageSniff.% ]Generic_Sniffs_PHP_NoSilencedErrorsSniff.$ ]Generic_Sniffs_PHP_LowerCaseKeywordSniff/# _Generic_Sniffs_PHP_LowerCaseConstantSniff0" aGeneric_Sniffs_PHP_ForbiddenFunctionsSniff2! eGeneric_Sniffs_PHP_DisallowShortOpenTagSniff1  cGeneric_Sniffs_PHP_DeprecatedFunctionsSniff+ WGeneric_Sniffs_PHP_ClosingPHPTagSniff: uGeneric_Sniffs_PHP_CharacterBeforePHPOpeningTagSniffB Generic_Sniffs_NamingConventions_UpperCaseConstantNameSniff; wGeneric_Sniffs_NamingConventions_ConstructorNameSniffB Generic_Sniffs_NamingConventions_CamelCapsFunctionNameSniff. ]Generic_Sniffs_Metrics_NestingLevelSniff6 mGeneric_Sniffs_Metrics_CyclomaticComplexitySniffI Generic_Sniffs_Functions_OpeningFunctionBraceKernighanRitchieSniffB Generic_Sniffs_Functions_OpeningFunctionBraceBsdAllmanSniff? Generic_Sniffs_Functions_FunctionCallArgumentSpacingSniff; wGeneric_Sniffs_Functions_CallTimePassByReferenceSniff3 gGeneric_Sniffs_Formatting_SpaceAfterCastSniff5 kGeneric_Sniffs_Formatting_NoSpaceAfterCastSniff? Generic_Sniffs_Formatting_MultipleStatementAlignmentSniff? Generic_Sniffs_Formatting_DisallowMultipleStatementsSniff/ _Generic_Sniffs_Files_OneTraitPerFileSniff3 gGeneric_Sniffs_Files_OneInterfacePerFileSniff/ _Generic_Sniffs_Files_OneClassPerFileSniff2 eGeneric_Sniffs_Files_LowercasedFilenameSniff* UGeneric_Sniffs_Files_LineLengthSniff+ WGeneric_Sniffs_Files_LineEndingsSniff*
 UGeneric_Sniffs_Files_InlineHTMLSniff0	 aGeneric_Sniffs_Files_EndFileNoNewlineSniff. ]Generic_Sniffs_Files_EndFileNewlineSniff- [Generic_Sniffs_Files_ByteOrderMarkSniff& MGeneric_Sniffs_Debug_JSHintSniff' OGeneric_Sniffs_Debug_CSSLintSniff- [Generic_Sniffs_Debug_ClosureLinterSniff   G  JMa#N}L


t
A
			\	*@RJQ%}EKo?i0                                         0 aSquiz_Sniffs_Functions_GlobalFunctionSniff; wSquiz_Sniffs_Functions_FunctionDuplicateArgumentSniff5 kSquiz_Sniffs_Functions_FunctionDeclarationSniffE 	Squiz_Sniffs_Functions_FunctionDeclarationArgumentSpacingSniff2 eSquiz_Sniffs_Formatting_OperatorBracketSniff+ WSquiz_Sniffs_Files_FileExtensionSniff$ ISquiz_Sniffs_Debug_JSLintSniff, YSquiz_Sniffs_Debug_JavaScriptLintSniff)
 SSquiz_Sniffs_CSS_ShorthandSizeSniff,	 YSquiz_Sniffs_CSS_SemicolonSpacingSniff# GSquiz_Sniffs_CSS_OpacitySniff( QSquiz_Sniffs_CSS_NamedColoursSniff( QSquiz_Sniffs_CSS_MissingColonSniff4 iSquiz_Sniffs_CSS_LowercaseStyleDefinitionSniff' OSquiz_Sniffs_CSS_IndentationSniff+ WSquiz_Sniffs_CSS_ForbiddenStylesSniff0 aSquiz_Sniffs_CSS_EmptyStyleDefinitionSniff0 aSquiz_Sniffs_CSS_EmptyClassDefinitionSniff4  iSquiz_Sniffs_CSS_DuplicateStyleDefinitionSniff4 iSquiz_Sniffs_CSS_DuplicateClassDefinitionSniff<~ ySquiz_Sniffs_CSS_DisallowMultipleStyleDefinitionsSniff,} YSquiz_Sniffs_CSS_ColourDefinitionSniff(| QSquiz_Sniffs_CSS_ColonSpacingSniff<{ ySquiz_Sniffs_CSS_ClassDefinitionOpeningBraceSpaceSniff6z mSquiz_Sniffs_CSS_ClassDefinitionNameSpacingSniff<y ySquiz_Sniffs_CSS_ClassDefinitionClosingBraceSpaceSniff;x wSquiz_Sniffs_ControlStructures_SwitchDeclarationSniff>w }Squiz_Sniffs_ControlStructures_LowercaseDeclarationSniff=v {Squiz_Sniffs_ControlStructures_InlineIfDeclarationSniff<u ySquiz_Sniffs_ControlStructures_ForLoopDeclarationSniffAt Squiz_Sniffs_ControlStructures_ForEachLoopDeclarationSniff;s wSquiz_Sniffs_ControlStructures_ElseIfDeclarationSniff:r uSquiz_Sniffs_ControlStructures_ControlSignatureSniff2q eSquiz_Sniffs_Commenting_VariableCommentSniff7p oSquiz_Sniffs_Commenting_PostStatementCommentSniff>o }Squiz_Sniffs_Commenting_LongConditionClosingCommentSniff0n aSquiz_Sniffs_Commenting_InlineCommentSniff:m uSquiz_Sniffs_Commenting_FunctionCommentThrowTagSniff2l eSquiz_Sniffs_Commenting_FunctionCommentSniff.k ]Squiz_Sniffs_Commenting_FileCommentSniff4j iSquiz_Sniffs_Commenting_EmptyCatchCommentSniff6i mSquiz_Sniffs_Commenting_DocCommentAlignmentSniff<h ySquiz_Sniffs_Commenting_ClosingDeclarationCommentSniff/g _Squiz_Sniffs_Commenting_ClassCommentSniff/f _Squiz_Sniffs_Commenting_BlockCommentSniff.e ]Squiz_Sniffs_Classes_ValidClassNameSniff3d gSquiz_Sniffs_Classes_SelfMemberReferenceSniff6c mSquiz_Sniffs_Classes_LowercaseClassKeywordsSniff1b cSquiz_Sniffs_Classes_DuplicatePropertySniff-a [Squiz_Sniffs_Classes_ClassFileNameSniff0` aSquiz_Sniffs_Classes_ClassDeclarationSniff/_ _Squiz_Sniffs_Arrays_ArrayDeclarationSniff2^ eSquiz_Sniffs_Arrays_ArrayBracketSpacingSniff0] aPSR2_Sniffs_Namespaces_UseDeclarationSniff6\ mPSR2_Sniffs_Namespaces_NamespaceDeclarationSniff0[ aPSR2_Sniffs_Methods_MethodDeclarationSniff4Z iPSR2_Sniffs_Methods_FunctionCallSignatureSniff+Y WPSR2_Sniffs_Files_EndFileNewlineSniff:X uPSR2_Sniffs_ControlStructures_SwitchDeclarationSniff:W uPSR2_Sniffs_ControlStructures_ElseIfDeclarationSniffAV PSR2_Sniffs_ControlStructures_ControlStructureSpacingSniff2U ePSR2_Sniffs_Classes_PropertyDeclarationSniff/T _PSR2_Sniffs_Classes_ClassDeclarationSniff2S ePSR1_Sniffs_Methods_CamelCapsMethodNameSniff(R QPSR1_Sniffs_Files_SideEffectsSniff/Q _PSR1_Sniffs_Classes_ClassDeclarationSniff-P [PEAR_Sniffs_WhiteSpace_ScopeIndentSniff3O gPEAR_Sniffs_WhiteSpace_ScopeClosingBraceSniff6N mPEAR_Sniffs_WhiteSpace_ObjectOperatorIndentSniff:M uPEAR_Sniffs_NamingConventions_ValidVariableNameSniff:L uPEAR_Sniffs_NamingConventions_ValidFunctionNameSniff   N  ESi9Z(i7




O
				U	$t4Kf,a#`G8!zP%vLQ                     (` QPHPUnit_Framework_Constraint_Count,_ YPHPUnit_Framework_Constraint_Composite:^ uPHPUnit_Framework_Constraint_ClassHasStaticAttribute4] iPHPUnit_Framework_Constraint_ClassHasAttribute+\ WPHPUnit_Framework_Constraint_Callback,[ YPHPUnit_Framework_Constraint_Attribute.Z ]PHPUnit_Framework_Constraint_ArraySubset.Y ]PHPUnit_Framework_Constraint_ArrayHasKey&X MPHPUnit_Framework_Constraint_And-W [PHPUnit_Framework_CodeCoverageException(V QPHPUnit_Framework_BaseTestListener,U YPHPUnit_Framework_AssertionFailedErrorT =PHPUnit_Framework_Assert'S OPHPUnit_Extensions_TicketListener&R MPHPUnit_Extensions_TestDecorator%Q KPHPUnit_Extensions_RepeatedTest&P MPHPUnit_Extensions_PhptTestSuite%O KPHPUnit_Extensions_PhptTestCase'N OPHPUnit_Extensions_GroupTestSuiteM 'rIssue1340TestL rErrorK +PHP_CodeSnifferJ 9PHP_CodeSniffer_Tokens$I IPHP_CodeSniffer_Tokenizers_PHP#H GPHP_CodeSniffer_Tokenizers_JS$G IPHP_CodeSniffer_Tokenizers_CSS(F QPHP_CodeSniffer_Tokenizers_Comment:E uZend_Sniffs_NamingConventions_ValidVariableNameSniff'D OZend_Sniffs_Files_ClosingTagSniff)C SZend_Sniffs_Debug_CodeAnalyzerSniff8B qSquiz_Sniffs_WhiteSpace_SuperfluousWhitespaceSniff3A gSquiz_Sniffs_WhiteSpace_SemicolonSpacingSniff6@ mSquiz_Sniffs_WhiteSpace_ScopeKeywordSpacingSniff4? iSquiz_Sniffs_WhiteSpace_ScopeClosingBraceSniff7> oSquiz_Sniffs_WhiteSpace_PropertyLabelSpacingSniff2= eSquiz_Sniffs_WhiteSpace_OperatorSpacingSniff8< qSquiz_Sniffs_WhiteSpace_ObjectOperatorSpacingSniff3; gSquiz_Sniffs_WhiteSpace_MemberVarSpacingSniff9: sSquiz_Sniffs_WhiteSpace_LogicalOperatorSpacingSniff;9 wSquiz_Sniffs_WhiteSpace_LanguageConstructSpacingSniff28 eSquiz_Sniffs_WhiteSpace_FunctionSpacingSniff<7 ySquiz_Sniffs_WhiteSpace_FunctionOpeningBraceSpaceSniff<6 ySquiz_Sniffs_WhiteSpace_FunctionClosingBraceSpaceSniff:5 uSquiz_Sniffs_WhiteSpace_ControlStructureSpacingSniff.4 ]Squiz_Sniffs_WhiteSpace_CastSpacingSniff-3 [Squiz_Sniffs_Strings_EchoedStringsSniff02 aSquiz_Sniffs_Strings_DoubleQuoteUsageSniff41 iSquiz_Sniffs_Strings_ConcatenationSpacingSniff-0 [Squiz_Sniffs_Scope_StaticThisUsageSniff)/ SSquiz_Sniffs_Scope_MethodScopeSniff,. YSquiz_Sniffs_Scope_MemberVarScopeSniff-- [Squiz_Sniffs_PHP_NonExecutableCodeSniff1, cSquiz_Sniffs_PHP_LowercasePHPFunctionsSniff*+ USquiz_Sniffs_PHP_InnerFunctionsSniff#* GSquiz_Sniffs_PHP_HeredocSniff)) SSquiz_Sniffs_PHP_GlobalKeywordSniff.( ]Squiz_Sniffs_PHP_ForbiddenFunctionsSniff ' ASquiz_Sniffs_PHP_EvalSniff'& OSquiz_Sniffs_PHP_EmbeddedPhpSniff0% aSquiz_Sniffs_PHP_DiscouragedFunctionsSniff8$ qSquiz_Sniffs_PHP_DisallowSizeFunctionsInLoopsSniff.# ]Squiz_Sniffs_PHP_DisallowObEndFlushSniff7" oSquiz_Sniffs_PHP_DisallowMultipleAssignmentsSniff,! YSquiz_Sniffs_PHP_DisallowInlineIfSniff8  qSquiz_Sniffs_PHP_DisallowComparisonAssignmentSniff4 iSquiz_Sniffs_PHP_DisallowBooleanStatementSniff, YSquiz_Sniffs_PHP_CommentedOutCodeSniff7 oSquiz_Sniffs_Operators_ValidLogicalOperatorsSniff9 sSquiz_Sniffs_Operators_IncrementDecrementUsageSniff9 sSquiz_Sniffs_Operators_ComparisonOperatorUsageSniff1 cSquiz_Sniffs_Objects_ObjectMemberCommaSniff3 gSquiz_Sniffs_Objects_ObjectInstantiationSniff9 sSquiz_Sniffs_Objects_DisallowObjectStringIndexSniff; wSquiz_Sniffs_NamingConventions_ValidVariableNameSniff; wSquiz_Sniffs_NamingConventions_ValidFunctionNameSniff6 mSquiz_Sniffs_NamingConventions_ConstantCaseSniff> }Squiz_Sniffs_Functions_MultiLineFunctionDeclarationSniff; wSquiz_Sniffs_Functions_LowercaseFunctionKeywordsSniff   Z  e(f8
xKwH](



N
				l	C	"m>
V*^,`9X8hG&	_AqD                                       -: [PHPUnit_Util_TestDox_ResultPrinter_Text-9 [PHPUnit_Util_TestDox_ResultPrinter_HTML)8 SPHPUnit_Util_TestDox_NamePrettifier7 /PHPUnit_Util_Test6 3PHPUnit_Util_String5 1PHPUnit_Util_Regex4 5PHPUnit_Util_Printer3 -PHPUnit_Util_PHP2 =PHPUnit_Util_PHP_Windows1 =PHPUnit_Util_PHP_Default0 5PHPUnit_Util_Log_TAP/ 9PHPUnit_Util_Log_JUnit. 7PHPUnit_Util_Log_JSON(- QPHPUnit_Util_InvalidArgumentHelper, =PHPUnit_Util_GlobalState+ 3PHPUnit_Util_Getopt* 3PHPUnit_Util_Filter) ;PHPUnit_Util_Filesystem( ;PHPUnit_Util_Fileloader' ?PHPUnit_Util_ErrorHandler & APHPUnit_Util_Configuration% 9PHPUnit_Util_Blacklist$ ?PHPUnit_TextUI_TestRunner"# EPHPUnit_TextUI_ResultPrinter" 9PHPUnit_TextUI_Command! 9PHPUnit_Runner_Version,  YPHPUnit_Runner_StandardTestSuiteLoader  APHPUnit_Runner_Filter_Test/ _PHPUnit_Runner_Filter_GroupFilterIterator) SPHPUnit_Runner_Filter_Group_Include) SPHPUnit_Runner_Filter_Group_Exclude# GPHPUnit_Runner_Filter_Factory =PHPUnit_Runner_Exception# GPHPUnit_Runner_BaseTestRunner ?PHPUnit_Framework_Warning7 oPHPUnit_Framework_UnintentionallyCoveredCodeError! CPHPUnit_Framework_TestSuite. ]PHPUnit_Framework_TestSuite_DataProvider" EPHPUnit_Framework_TestResult# GPHPUnit_Framework_TestFailure  APHPUnit_Framework_TestCase& MPHPUnit_Framework_SyntheticError- [PHPUnit_Framework_SkippedTestSuiteError( QPHPUnit_Framework_SkippedTestError' OPHPUnit_Framework_SkippedTestCase& MPHPUnit_Framework_RiskyTestError# GPHPUnit_Framework_OutputError4 iPHPUnit_Framework_InvalidCoversTargetException0
 aPHPUnit_Framework_InvalidCoversTargetError+	 WPHPUnit_Framework_IncompleteTestError* UPHPUnit_Framework_IncompleteTestCase2 ePHPUnit_Framework_ExpectationFailedException( QPHPUnit_Framework_ExceptionWrapper! CPHPUnit_Framework_Exception ;PHPUnit_Framework_Error% KPHPUnit_Framework_Error_Warning$ IPHPUnit_Framework_Error_Notice( QPHPUnit_Framework_Error_Deprecated"  EPHPUnit_Framework_Constraint& MPHPUnit_Framework_Constraint_Xor:~ uPHPUnit_Framework_Constraint_TraversableContainsOnly6} mPHPUnit_Framework_Constraint_TraversableContains3| gPHPUnit_Framework_Constraint_StringStartsWith0{ aPHPUnit_Framework_Constraint_StringMatches1z cPHPUnit_Framework_Constraint_StringEndsWith1y cPHPUnit_Framework_Constraint_StringContains+x WPHPUnit_Framework_Constraint_SameSize,w YPHPUnit_Framework_Constraint_PCREMatch%v KPHPUnit_Framework_Constraint_Or5u kPHPUnit_Framework_Constraint_ObjectHasAttribute&t MPHPUnit_Framework_Constraint_Not+s WPHPUnit_Framework_Constraint_LessThan.r ]PHPUnit_Framework_Constraint_JsonMatchesDq PHPUnit_Framework_Constraint_JsonMatches_ErrorMessageProvider)p SPHPUnit_Framework_Constraint_IsType)o SPHPUnit_Framework_Constraint_IsTrue)n SPHPUnit_Framework_Constraint_IsNull)m SPHPUnit_Framework_Constraint_IsJson/l _PHPUnit_Framework_Constraint_IsInstanceOf.k ]PHPUnit_Framework_Constraint_IsIdentical*j UPHPUnit_Framework_Constraint_IsFalse*i UPHPUnit_Framework_Constraint_IsEqual*h UPHPUnit_Framework_Constraint_IsEmpty-g [PHPUnit_Framework_Constraint_IsAnything.f ]PHPUnit_Framework_Constraint_GreaterThan-e [PHPUnit_Framework_Constraint_FileExists9d sPHPUnit_Framework_Constraint_ExceptionMessageRegExp3c gPHPUnit_Framework_Constraint_ExceptionMessage0b aPHPUnit_Framework_Constraint_ExceptionCode,a YPHPUnit_Framework_Constraint_Exception   } waQ3wiU* hR/mFaD%	




u
U
1
						k	P	A	t]L7$l@tI!gR+mF,kK)wYf?  7 'Issue1021Test 6 AFramework_TestListenerTest#5 GFramework_TestImplementorTest4 ?Framework_TestFailureTest3 9Framework_TestCaseTest2 3Framework_SuiteTest1 =Framework_ConstraintTest*0 UFramework_Constraint_JsonMatchesTest?/ Framework_Constraint_JsonMatches_ErrorMessageProviderTest. 5ExceptionMessageTest - AExceptionMessageRegExpTest, CountTest$+ IFramework_BaseTestListenerTest* 5Framework_AssertTest!) CExtensions_RepeatedTestTest( WasRun' =ThrowNoExceptionTestCase& 9ThrowExceptionTestCase% 'TestIterator2$ %TestIterator# 3TemplateMethodsTest" Success! Struct  StackTest Singleton #SampleClass /SampleArrayAccess -RequirementsTest# GRequirementsClassDocBlockTest* URequirementsClassBeforeClassHookTest -OverrideTestCase )OutputTestCase #OneTestCase +NotVoidTestCase /NotPublicTestCase #NothingTest# GNotExistingCoveredElementTest #NoTestCases +NoTestCaseClass NonStatic /NoArgTestCaseTest! CNamespaceCoveragePublicTest$ INamespaceCoverageProtectedTest" ENamespaceCoveragePrivateTest$ INamespaceCoverageNotPublicTest'
 ONamespaceCoverageNotProtectedTest%	 KNamespaceCoverageNotPrivateTest! CNamespaceCoverageMethodTest& MNamespaceCoverageCoversClassTest, YNamespaceCoverageCoversClassPublicTest  ANamespaceCoverageClassTest( QNamespaceCoverageClassExtendedTest 3MultiDependencyTest !MockRunner 'IsolationTest  IniTest /InheritedTestCase~ %InheritanceB} %InheritanceA| )IncompleteTest{ FatalTestz #FailureTesty Failurex 'ExceptionTestw 1ExceptionStackTestv +ExceptionInTestu ;ExceptionInTearDownTestt 5ExceptionInSetUpTest(s QExceptionInAssertPreConditionsTest)r SExceptionInAssertPostConditionsTestq Errorp /EmptyTestCaseTesto )DummyExceptionn )DoubleTestCasem 3DependencyTestSuitel 7DependencySuccessTestk 7DependencyFailureTestj -DataProviderTesti ;DataProviderSkippedTest h ADataProviderIncompleteTestg 9DataProviderFilterTestf 7DataProviderDebugTeste 'CustomPrinterd %CoveredClassc 1CoveredParentClass(b QCoverageTwoDefaultClassAnnotationsa 1CoveragePublicTest` 7CoverageProtectedTest_ 3CoveragePrivateTest^ 7CoverageNotPublicTest] =CoverageNotProtectedTest\ 9CoverageNotPrivateTest[ 3CoverageNothingTestZ -CoverageNoneTestY 1CoverageMethodTest-X [CoverageMethodParenthesesWhitespaceTest#W GCoverageMethodParenthesesTest)V SCoverageMethodOneLineAnnotationTestU 5CoverageFunctionTest/T _CoverageFunctionParenthesesWhitespaceTest%S KCoverageFunctionParenthesesTestR /CoverageClassTestQ ?CoverageClassExtendedTestP %ConcreteTest'O OConcreteWithMyCustomExtensionTestN /ClassWithToString"M EClassWithNonPublicAttributes(L QParentClassWithProtectedAttributes&K MParentClassWithPrivateAttributes'J OChangeCurrentWorkingDirectoryTestI !Calculator
H Book"G EBeforeClassAndAfterClassTestF 1BeforeAndAfterTestE 9BaseTestListenerSample(D QBankAccountWithCustomExtensionTestC +BankAccountTestB #BankAccountA 5BankAccountException@ Author? %AbstractTest> -PHPUnit_Util_XML= /PHPUnit_Util_Type$< IPHPUnit_Util_TestSuiteIterator(; QPHPUnit_Util_TestDox_ResultPrinter   ? jYB+kT=&xbL6 
pR:vXA*




z
_
N
=
						x	c	L	2		nK3qU>){]?#mS:!kJ/v\J*iE|iO?                 J UploadI -NoFilesExceptionH FileError
G FileF DummyE TesterD -WebProcessorTestC -UidProcessorTestB 9ProcessIdProcessorTestA =MemoryUsageProcessorTest"@ EMemoryPeakUsageProcessorTest ? AIntrospectionProcessorTest> %WebProcessor= %UidProcessor< 9PsrLogMessageProcessor; 1ProcessIdProcessor: 5MemoryUsageProcessor9 +MemoryProcessor8 =MemoryPeakUsageProcessor7 9IntrospectionProcessor6 TestCase5 -PsrLogCompatTest4 !LoggerTest3 Logger"2 EErrorLevelActivationStrategy1 9ZendMonitorHandlerTest0 +TestHandlerTest/ /SyslogHandlerTest. /StreamHandlerTest- /SocketHandlerTest, ;RotatingFileHandlerTest+ -RedisHandlerTest* -RavenHandlerTest) 3PushoverHandlerTest( +NullHandlerTest' ;NativeMailerHandlerTest& Mongo% 1MongoDBHandlerTest$ +MockRavenClient# +MailHandlerTest" -GroupHandlerTest! 5MockMessagePublisher  +GelfHandlerTest 1TestFirePHPHandler 1FirePHPHandlerTest ?FingersCrossedHandlerTest  ADoctrineCouchDBHandlerTest 1CouchDBHandlerTest 5TestChromePHPHandler 5ChromePHPHandlerTest /BufferHandlerTest +AmqpHandlerTest -AmqpExchangeMock# GAbstractProcessingHandlerTest 3AbstractHandlerTest 1ZendMonitorHandler #TestHandler 'SyslogHandler 1SwiftMailerHandler 'StreamHandler 'SocketHandler 3RotatingFileHandler %RedisHandler %RavenHandler
 +PushoverHandler	 #NullHandler 3NativeMailerHandler )MongoDBHandler ?MissingExtensionException #MailHandler %GroupHandler #GelfHandler )FirePHPHandler 7FingersCrossedHandler  9DoctrineCouchDBHandler #CubeHandler~ )CouchDBHandler} -ChromePHPHandler| 'BufferHandler{ #AmqpHandlerz ?AbstractProcessingHandlery +AbstractHandlerx 7WildfireFormatterTestw #TestBarNormv #TestFooNormu ;NormalizerFormatterTestt 7LogstashFormatterTests TestBarr TestFooq /LineFormatterTestp /JsonFormatterTesto =GelfMessageFormatterTestn 9ChromePHPFormatterTestm /WildfireFormatterl 3NormalizerFormatterk /LogstashFormatterj 'LineFormatteri 'JsonFormatterh 5GelfMessageFormatterg 1ChromePHPFormatterf %CoveredClasse 1CoveredParentClassd 9ExceptionNamespaceTestc %Util_XMLTestb 'Util_TestTest%a KUtil_TestDox_NamePrettifierTest` )Util_RegexTest_ 5Util_GlobalStateTest^ 9Util_ConfigurationTest] ?Runner_BaseTestRunnerTest\ %Issue797Test[ %Issue765TestZ %NewExceptionY #Issue74TestX %Issue581TestW %Issue503TestV %Issue498TestU %Issue445TestT %Issue433TestS %Issue322TestR =Issue244ExceptionIntCodeQ /Issue244ExceptionP %Issue244TestO 'Issue1570TestN 'Issue1472TestM 'Issue1471TestL 'Issue1468TestK 'Issue1437TestJ 'Issue1374TestI 'Issue1351TestH 7ChildProcessClass1351G 'Issue1348TestF 'Issue1340TestE 'Issue1337TestD 'Issue1335TestC 'Issue1330TestB 'Issue1265TestA 'Issue1216Test@ 'Issue1149Test? TwoTest> #ParentSuite= OneTest< !ChildSuite; 5Foo_Bar_Issue684Test: %Issue578Test9 Issue5238 %Issue523Test   X wbL="uW; qZG,eP9!bRB-







p
[
F
9
*

 					~	_	J	3	"	}V>$iQ:) w]I1jQ@-eB)~U=!uW8mX                    h #PrepareTestg 'HttpErrorTestf %ResponseTeste #RequestTestd /MessageParserTestc +ExtendedFactoryb 1MessageFactoryTesta 1FutureResponseTest` 3AbstractMessageTest_ 7XmlParseExceptionTest^ 5RequestExceptionTest] 1ParseExceptionTest\ /RequestEventsTest[ /ProgressEventTestZ ?ListenerAttacherTraitTestY -ObjectWithEventsX 3HasEmitterTraitTestW 1AbstractHasEmitterV )ErrorEventTest%U KTestEventSubscriberWithMultiple'T OTestEventSubscriberWithPrioritiesS 3TestEventSubscriberR 1TestWithDispatcherQ /TestEventListenerP 'CallableClassO #EmitterTestN +BeforeEventTestM ?AbstractTransferEventTest L AAbstractRetryableEventTestK =AbstractRequestEventTestJ /AbstractEventTestI 'SetCookieTestH 5SessionCookieJarTestG /FileCookieJarTestF 'CookieJarTestE UtilsTestD UrlTestC +UriTemplateTestB +TransactionTestA Server@ )RingBridgeTest? )RequestFsmTest> QueryTest= +QueryParserTest< PoolTest; 'MimetypesTest: +IntegrationTest9 )CollectionTest8 !ClientTest7 -BatchResultsTest6 Redirect5 Prepare
4 Mock3 HttpError2 History1 Cookie0 PostFile/ PostBody. 'MultipartBody- Response, Request+ 'MessageParser* )MessageFactory) )FutureResponse( +AbstractMessage' /XmlParseException& /TransferException% ?TooManyRedirectsException$ )StateException# +ServerException" -RequestException! )ParseException#  GCouldNotRewindStreamException -ConnectException +ClientException 5BadResponseException 'RequestEvents 'ProgressEvent !ErrorEvent EndEvent Emitter 'CompleteEvent #BeforeEvent 7AbstractTransferEvent 9AbstractRetryableEvent 5AbstractRequestEvent 'AbstractEvent SetCookie -SessionCookieJar 'FileCookieJar CookieJar Utils	 Url #UriTemplate
 #Transaction	 !RingBridge !RequestFsm #QueryParser Query
 Pool Mimetypes !Collection Client %BatchResults  %RestResponse #RestRequest~ Status} Method| 3Rest_execute_result{ /Rest_execute_argsz !RestClienty TTypex %TMessageTypew !TTransportv #TSocketPoolu TSockett !TPhpStreams )TNullTransportr 'TMemoryBufferq #THttpClientp -TFramedTransporto 1TBufferedTransportn Mbstring
m Corel 'TSimpleServerk -TServerTransportj 'TServerSocketi TServerh )TForkingServerg /TBinarySerializerf TProtocole 'TJSONProtocold -TCompactProtocol c ATBinaryProtocolAcceleratedb +TBinaryProtocola #PairContext` +LookaheadReader_ #ListContext^ #BaseContext] /TTransportFactory\ 1TStringFuncFactory[ 5TJSONProtocolFactoryZ ;TCompactProtocolFactoryY 9TBinaryProtocolFactoryX 3TTransportExceptionW 1TProtocolExceptionV !TExceptionU 7TApplicationExceptionT /ThriftClassLoaderS TBaseR %RestResponseQ #RestRequestP StatusO MethodN 3Rest_execute_resultM /Rest_execute_argsL !RestClientK 3FuelServiceProvider   > ~hS>)hJ,qVD2w`H6xYB(





h
L
2

							i	P	>	$	sZ7{^D+jI,	_E)fC*	]F6l\E sd>              "| EAbstractDelayedRetryStrategy{ 
Retryz 	Redirecty 3JournalEntryFactoryx %JournalEntryw Journalv Formatteru -SessionCookieJart 'FileCookieJars CookieJar!r CAbstractPersistentCookieJarq 'CookieFactoryp Cookieo BasicAuthn -RequestSentEventm 3RequestErroredEventl 3RequestCreatedEventk 7MultiRequestSentEventj =MultiRequestErroredEventi =MultiRequestCreatedEventh Eventsg 'AbstractEvent!f CAbstractUninstantiableAssete -Zend2HttpAdapterd -Zend1HttpAdapterc 5StopwatchHttpAdapterb /SocketHttpAdaptera -ReactHttpAdapter` ;PsrHttpAdapterDecorator_ +PeclHttpAdapter^ ?MultiHttpAdapterException] +MockHttpAdapter\ 1HttpfulHttpAdapter[ 1HttpAdapterFactoryZ 5HttpAdapterExceptionY 1Guzzle6HttpAdapterX 1Guzzle5HttpAdapterW 1Guzzle4HttpAdapterV 1Guzzle3HttpAdapterU -FopenHttpAdapter T AFileGetContentsHttpAdapter S AEventDispatcherHttpAdapterR +CurlHttpAdapterQ 'ConfigurationP +CakeHttpAdapterO +BuzzHttpAdapterN ?AbstractStreamHttpAdapterM 3AbstractHttpAdapterL ;AbstractCurlHttpAdapterK %CallableStubJ 9CallbackPromiseAdapterI TestCaseH 3RejectedPromiseTestG ?SimpleRejectedTestPromise F ASimpleFulfilledTestPromiseE #PromiseTestD +LazyPromiseTestC -FunctionSomeTestB 3FunctionResolveTestA 1FunctionRejectTest@ 1FunctionReduceTest? -FunctionRaceTest> +FunctionMapTest&= MTestCallbackWithoutTypehintClass#< GTestCallbackWithTypehintClass; ?FunctionCheckTypehintTest: +FunctionAnyTest9 +FunctionAllTest8 5FulfilledPromiseTest7 %DeferredTest!6 CUnhandledRejectionException5 +RejectedPromise4 Promise3 #LazyPromise2 -FulfilledPromise1 Deferred0 +LimitStreamTest/ /SeekExceptionTest. UtilsTest- #HasToString, !StreamTest+ BadStream* =StreamDecoratorTraitTest	) Str( )PumpStreamTest' )NullStreamTest& -NoSeekStreamTest% 1LazyOpenStreamTest$ /InflateStreamtest# ;GuzzleStreamWrapperTest" %FnStreamTest! 1DroppingStreamTest  /CachingStreamTest -BufferStreamTest 3AsyncReadStreamTest -AppendStreamTest 'SeekException 7CannotAttachException Utils Stream !PumpStream !NullStream %NoSeekStream #LimitStream )LazyOpenStream 'InflateStream 3GuzzleStreamWrapper FnStream )DroppingStream 'CachingStream %BufferStream +AsyncReadStream %AppendStream +FutureValueTest
 +FutureArrayTest	 =CompletedFutureValueTest =CompletedFutureArrayTest StrClass CoreTest /StreamHandlerTest Server +MockHandlerTest )MiddlewareTest 5CurlMultiHandlerTest  +CurlHandlerTest +CurlFactoryTest~ #FutureValue} #FutureArray| 5CompletedFutureValue{ 5CompletedFutureArrayz 'RingExceptiony -ConnectException$x ICancelledFutureAccessException
w Corev 'StreamHandleru #MockHandlert !Middlewares -CurlMultiHandlerr #CurlHandlerq #CurlFactoryp #ClientUtilso %RedirectTestn MockTestm #HistoryTestl !CookieTestk %PostFileTestj %PostBodyTesti /MultipartBodyTest   \  nP,fJ1rZI7sbP@)t^D/


n
/			w	<A	X[Yn.r7O^&                                              5X kPHPUnit_Extensions_Database_DataSet_YamlDataSet4W iPHPUnit_Extensions_Database_DataSet_XmlDataSet=V {PHPUnit_Extensions_Database_DataSet_TableMetaDataFilter5U kPHPUnit_Extensions_Database_DataSet_TableFilter;T wPHPUnit_Extensions_Database_DataSet_SymfonyYamlParser4S iPHPUnit_Extensions_Database_DataSet_Specs_Yaml3R gPHPUnit_Extensions_Database_DataSet_Specs_Xml7Q oPHPUnit_Extensions_Database_DataSet_Specs_FlatXml7P oPHPUnit_Extensions_Database_DataSet_Specs_Factory7O oPHPUnit_Extensions_Database_DataSet_Specs_DbTable7N oPHPUnit_Extensions_Database_DataSet_Specs_DbQuery3M gPHPUnit_Extensions_Database_DataSet_Specs_CsvCL PHPUnit_Extensions_Database_DataSet_ReplacementTableIterator:K uPHPUnit_Extensions_Database_DataSet_ReplacementTable<J yPHPUnit_Extensions_Database_DataSet_ReplacementDataSet4I iPHPUnit_Extensions_Database_DataSet_QueryTable6H mPHPUnit_Extensions_Database_DataSet_QueryDataSet9G sPHPUnit_Extensions_Database_DataSet_Persistors_Yaml8F qPHPUnit_Extensions_Database_DataSet_Persistors_Xml=E {PHPUnit_Extensions_Database_DataSet_Persistors_MysqlXml<D yPHPUnit_Extensions_Database_DataSet_Persistors_FlatXml<C yPHPUnit_Extensions_Database_DataSet_Persistors_Factory=B {PHPUnit_Extensions_Database_DataSet_Persistors_Abstract9A sPHPUnit_Extensions_Database_DataSet_MysqlXmlDataSet8@ qPHPUnit_Extensions_Database_DataSet_FlatXmlDataSet>? }PHPUnit_Extensions_Database_DataSet_DefaultTableMetaData>> }PHPUnit_Extensions_Database_DataSet_DefaultTableIterator6= mPHPUnit_Extensions_Database_DataSet_DefaultTable8< qPHPUnit_Extensions_Database_DataSet_DefaultDataSet7; oPHPUnit_Extensions_Database_DataSet_DataSetFilter4: iPHPUnit_Extensions_Database_DataSet_CsvDataSet:9 uPHPUnit_Extensions_Database_DataSet_CompositeDataSet68 mPHPUnit_Extensions_Database_DataSet_ArrayDataSet<7 yPHPUnit_Extensions_Database_DataSet_AbstractXmlDataSet?6 PHPUnit_Extensions_Database_DataSet_AbstractTableMetaData75 oPHPUnit_Extensions_Database_DataSet_AbstractTable94 sPHPUnit_Extensions_Database_DataSet_AbstractDataSet:3 uPHPUnit_Extensions_Database_Constraint_TableRowCount92 sPHPUnit_Extensions_Database_Constraint_TableIsEqual;1 wPHPUnit_Extensions_Database_Constraint_DataSetIsEqual00 aPHPUnit_Extensions_Database_AbstractTester7/ oPHPCS_Sniffs_Whitespace_ConcatenationSpacingSniff:. uPHPCS_Sniffs_ControlStructures_ControlSignatureSniff- !Serializer, #SapiEmitter+ -RedirectResponse* %JsonResponse) %HtmlResponse( 'EmptyResponse' !Serializer& ?DeprecatedMethodException	% Uri$ %UploadedFile# Stream" 5ServerRequestFactory! 'ServerRequest  Server Response Request )RelativeStream )PhpInputStream )HeaderSecurity 1AbstractSerializer 'HeadersParser %CookieParser /HeadersNormalizer )BodyNormalizer Response Request )MessageFactory +InternalRequest 3StatusLineExtractor 3StatusCodeExtractor =ProtocolVersionExtractor Timer 3StopwatchSubscriber 5StatusCodeSubscriber +RetrySubscriber
 1RedirectSubscriber	 -LoggerSubscriber /HistorySubscriber -CookieSubscriber 3BasicAuthSubscriber ;AbstractTimerSubscriber! CAbstractFormatterSubscriber !StatusCode  ALinearDelayedRetryStrategy 5LimitedRetryStrategy%  KExponentialDelayedRetryStrategy" EConstantDelayedRetryStrategy~ 7CallbackRetryStrategy } AAbstractRetryStrategyChain   J  Vk6^'Z+J


r
:
			n	>	QdIj:a'zSp5G
L  4" iPHPUnit_Extensions_Database_DataSet_CsvDataSet:! uPHPUnit_Extensions_Database_DataSet_CompositeDataSet6  mPHPUnit_Extensions_Database_DataSet_ArrayDataSet< yPHPUnit_Extensions_Database_DataSet_AbstractXmlDataSet? PHPUnit_Extensions_Database_DataSet_AbstractTableMetaData7 oPHPUnit_Extensions_Database_DataSet_AbstractTable9 sPHPUnit_Extensions_Database_DataSet_AbstractDataSet: uPHPUnit_Extensions_Database_Constraint_TableRowCount9 sPHPUnit_Extensions_Database_Constraint_TableIsEqual; wPHPUnit_Extensions_Database_Constraint_DataSetIsEqual0 aPHPUnit_Extensions_Database_AbstractTester7 oPHPCS_Sniffs_Whitespace_ConcatenationSpacingSniff: uPHPCS_Sniffs_ControlStructures_ControlSignatureSniff0 aExtensions_Database_Operation_RowBasedTest2 eExtensions_Database_Operation_OperationsTest7 oExtensions_Database_Operation_OperationsMySQLTest# GDefaultDatabaseConnectionTest? Extensions_Database_DataSet_YamlDataSetTest_PiOver2Parser1 cExtensions_Database_DataSet_YamlDataSetTest1 cExtensions_Database_DataSet_XmlDataSetsTest6 mExtensions_Database_DataSet_ReplacementTableTest8 qExtensions_Database_DataSet_ReplacementDataSetTest0 aExtensions_Database_DataSet_QueryTableTest2 eExtensions_Database_DataSet_QueryDataSetTest/
 _Extensions_Database_DataSet_PersistorTest,	 YExtensions_Database_DataSet_FilterTest0 aExtensions_Database_DataSet_CsvDataSetTest6 mExtensions_Database_DataSet_CompositeDataSetTest3 gExtensions_Database_DataSet_AbstractTableTest6 mExtensions_Database_Constraint_TableRowCountTest /DBUnitTestUtility ;BankAccountDBTestSQLite 9BankAccountDBTestMySQL /BankAccountDBTest  =BankAccountCompositeTest #BankAccount~ 5BankAccountException8} qPHPUnit_Extensions_Database_UI_Modes_ExportDataSetC| PHPUnit_Extensions_Database_UI_Modes_ExportDataSet_Arguments0{ aPHPUnit_Extensions_Database_UI_ModeFactory1z cPHPUnit_Extensions_Database_UI_Mediums_Text9y sPHPUnit_Extensions_Database_UI_InvalidModeException,x YPHPUnit_Extensions_Database_UI_Context,w YPHPUnit_Extensions_Database_UI_Command*v UPHPUnit_Extensions_Database_TestCase2u ePHPUnit_Extensions_Database_Operation_Update4t iPHPUnit_Extensions_Database_Operation_Truncate4s iPHPUnit_Extensions_Database_Operation_RowBased3r gPHPUnit_Extensions_Database_Operation_Replace0q aPHPUnit_Extensions_Database_Operation_Null2p ePHPUnit_Extensions_Database_Operation_Insert3o gPHPUnit_Extensions_Database_Operation_Factory5n kPHPUnit_Extensions_Database_Operation_Exception5m kPHPUnit_Extensions_Database_Operation_DeleteAll2l ePHPUnit_Extensions_Database_Operation_Delete5k kPHPUnit_Extensions_Database_Operation_Composite+j WPHPUnit_Extensions_Database_Exception/i _PHPUnit_Extensions_Database_DefaultTester2h ePHPUnit_Extensions_Database_DB_TableMetaData2g ePHPUnit_Extensions_Database_DB_TableIterator*f UPHPUnit_Extensions_Database_DB_Table3e gPHPUnit_Extensions_Database_DB_ResultSetTable-d [PHPUnit_Extensions_Database_DB_MetaData4c iPHPUnit_Extensions_Database_DB_MetaData_SqlSrv4b iPHPUnit_Extensions_Database_DB_MetaData_Sqlite3a gPHPUnit_Extensions_Database_DB_MetaData_PgSQL1` cPHPUnit_Extensions_Database_DB_MetaData_Oci3_ gPHPUnit_Extensions_Database_DB_MetaData_MySQL?^ PHPUnit_Extensions_Database_DB_MetaData_InformationSchema6] mPHPUnit_Extensions_Database_DB_MetaData_Firebird3\ gPHPUnit_Extensions_Database_DB_MetaData_Dblib4[ iPHPUnit_Extensions_Database_DB_FilteredDataSet>Z }PHPUnit_Extensions_Database_DB_DefaultDatabaseConnection,Y YPHPUnit_Extensions_Database_DB_DataSet   F  ORPe%i.


}
F
			U	r:OsBq>g.VR"|5                    h =BankAccountCompositeTestg #BankAccountf 5BankAccountException8e qPHPUnit_Extensions_Database_UI_Modes_ExportDataSetCd PHPUnit_Extensions_Database_UI_Modes_ExportDataSet_Arguments0c aPHPUnit_Extensions_Database_UI_ModeFactory1b cPHPUnit_Extensions_Database_UI_Mediums_Text9a sPHPUnit_Extensions_Database_UI_InvalidModeException,` YPHPUnit_Extensions_Database_UI_Context,_ YPHPUnit_Extensions_Database_UI_Command*^ UPHPUnit_Extensions_Database_TestCase2] ePHPUnit_Extensions_Database_Operation_Update4\ iPHPUnit_Extensions_Database_Operation_Truncate4[ iPHPUnit_Extensions_Database_Operation_RowBased3Z gPHPUnit_Extensions_Database_Operation_Replace0Y aPHPUnit_Extensions_Database_Operation_Null2X ePHPUnit_Extensions_Database_Operation_Insert3W gPHPUnit_Extensions_Database_Operation_Factory5V kPHPUnit_Extensions_Database_Operation_Exception5U kPHPUnit_Extensions_Database_Operation_DeleteAll2T ePHPUnit_Extensions_Database_Operation_Delete5S kPHPUnit_Extensions_Database_Operation_Composite+R WPHPUnit_Extensions_Database_Exception/Q _PHPUnit_Extensions_Database_DefaultTester2P ePHPUnit_Extensions_Database_DB_TableMetaData2O ePHPUnit_Extensions_Database_DB_TableIterator*N UPHPUnit_Extensions_Database_DB_Table3M gPHPUnit_Extensions_Database_DB_ResultSetTable-L [PHPUnit_Extensions_Database_DB_MetaData4K iPHPUnit_Extensions_Database_DB_MetaData_SqlSrv4J iPHPUnit_Extensions_Database_DB_MetaData_Sqlite3I gPHPUnit_Extensions_Database_DB_MetaData_PgSQL1H cPHPUnit_Extensions_Database_DB_MetaData_Oci3G gPHPUnit_Extensions_Database_DB_MetaData_MySQL?F PHPUnit_Extensions_Database_DB_MetaData_InformationSchema6E mPHPUnit_Extensions_Database_DB_MetaData_Firebird3D gPHPUnit_Extensions_Database_DB_MetaData_Dblib4C iPHPUnit_Extensions_Database_DB_FilteredDataSet>B }PHPUnit_Extensions_Database_DB_DefaultDatabaseConnection,A YPHPUnit_Extensions_Database_DB_DataSet5@ kPHPUnit_Extensions_Database_DataSet_YamlDataSet4? iPHPUnit_Extensions_Database_DataSet_XmlDataSet=> {PHPUnit_Extensions_Database_DataSet_TableMetaDataFilter5= kPHPUnit_Extensions_Database_DataSet_TableFilter;< wPHPUnit_Extensions_Database_DataSet_SymfonyYamlParser4; iPHPUnit_Extensions_Database_DataSet_Specs_Yaml3: gPHPUnit_Extensions_Database_DataSet_Specs_Xml79 oPHPUnit_Extensions_Database_DataSet_Specs_FlatXml78 oPHPUnit_Extensions_Database_DataSet_Specs_Factory77 oPHPUnit_Extensions_Database_DataSet_Specs_DbTable76 oPHPUnit_Extensions_Database_DataSet_Specs_DbQuery35 gPHPUnit_Extensions_Database_DataSet_Specs_CsvC4 PHPUnit_Extensions_Database_DataSet_ReplacementTableIterator:3 uPHPUnit_Extensions_Database_DataSet_ReplacementTable<2 yPHPUnit_Extensions_Database_DataSet_ReplacementDataSet41 iPHPUnit_Extensions_Database_DataSet_QueryTable60 mPHPUnit_Extensions_Database_DataSet_QueryDataSet9/ sPHPUnit_Extensions_Database_DataSet_Persistors_Yaml8. qPHPUnit_Extensions_Database_DataSet_Persistors_Xml=- {PHPUnit_Extensions_Database_DataSet_Persistors_MysqlXml<, yPHPUnit_Extensions_Database_DataSet_Persistors_FlatXml<+ yPHPUnit_Extensions_Database_DataSet_Persistors_Factory=* {PHPUnit_Extensions_Database_DataSet_Persistors_Abstract9) sPHPUnit_Extensions_Database_DataSet_MysqlXmlDataSet8( qPHPUnit_Extensions_Database_DataSet_FlatXmlDataSet>' }PHPUnit_Extensions_Database_DataSet_DefaultTableMetaData>& }PHPUnit_Extensions_Database_DataSet_DefaultTableIterator6% mPHPUnit_Extensions_Database_DataSet_DefaultTable8$ qPHPUnit_Extensions_Database_DataSet_DefaultDataSet7# oPHPUnit_Extensions_Database_DataSet_DataSetFilter   d  OzGg2X"r;


d
&			h	&i+wIt: qd;y\0eC uhYL<*saN=,
         L !ResolveK !PasteJ !!DiagnosticI !!Dependency
H  DumpG UniformF SamplerE ExceptionD CoverageC /BoundedExhaustiveB Token
A Rule@ !Repetition? !Invocation> Entry= Ekzit< 'Concatenation; Choice: Analyzer9 TreeNode8 Parser	7 Llk6 Lexer	5 Ll14 /UnrecognizedToken3 +UnexpectedToken
2 Rule1 Lexer0 %IllegalToken!/ CFinalStateHasNotBeenReached. Exception- Pp, ?Framework_ProxyObjectTest+ =Framework_MockObjectTest<* yFramework_MockObject_Matcher_ConsecutiveParametersTest0) aFramework_MockObject_Invocation_StaticTest0( aFramework_MockObject_Invocation_ObjectTest' ?Framework_MockBuilderTest(& QFramework_MockObject_GeneratorTest% 3StaticMockTestClass$ SomeClass# )SingletonClass" 5PartialMockTestClass! Mockable  ?MethodCallbackByReference )MethodCallback	 Foo 7ClassWithStaticMethod% KClassThatImplementsSerializable	 Bar 7AbstractMockTestClass6 mPHPUnit_Framework_MockObject_Stub_ReturnValueMap2 ePHPUnit_Framework_MockObject_Stub_ReturnSelf6 mPHPUnit_Framework_MockObject_Stub_ReturnCallback6 mPHPUnit_Framework_MockObject_Stub_ReturnArgument. ]PHPUnit_Framework_MockObject_Stub_Return1 cPHPUnit_Framework_MockObject_Stub_Exception8 qPHPUnit_Framework_MockObject_Stub_ConsecutiveCalls. ]PHPUnit_Framework_MockObject_MockBuilder* UPHPUnit_Framework_MockObject_Matcher> }PHPUnit_Framework_MockObject_Matcher_StatelessInvocation5 kPHPUnit_Framework_MockObject_Matcher_Parameters5 kPHPUnit_Framework_MockObject_Matcher_MethodName: uPHPUnit_Framework_MockObject_Matcher_InvokedRecorder7 oPHPUnit_Framework_MockObject_Matcher_InvokedCount= {PHPUnit_Framework_MockObject_Matcher_InvokedAtMostCount=
 {PHPUnit_Framework_MockObject_Matcher_InvokedAtLeastOnce>	 }PHPUnit_Framework_MockObject_Matcher_InvokedAtLeastCount9 sPHPUnit_Framework_MockObject_Matcher_InvokedAtIndexA PHPUnit_Framework_MockObject_Matcher_ConsecutiveParameters8 qPHPUnit_Framework_MockObject_Matcher_AnyParameters: uPHPUnit_Framework_MockObject_Matcher_AnyInvokedCount3 gPHPUnit_Framework_MockObject_InvocationMocker4 iPHPUnit_Framework_MockObject_Invocation_Static4 iPHPUnit_Framework_MockObject_Invocation_Object, YPHPUnit_Framework_MockObject_Generator3  gPHPUnit_Framework_MockObject_RuntimeException9 sPHPUnit_Framework_MockObject_BadMethodCallException;~ wPHPUnit_Framework_MockObject_Builder_InvocationMocker0} aExtensions_Database_Operation_RowBasedTest2| eExtensions_Database_Operation_OperationsTest7{ oExtensions_Database_Operation_OperationsMySQLTest#z GDefaultDatabaseConnectionTest?y Extensions_Database_DataSet_YamlDataSetTest_PiOver2Parser1x cExtensions_Database_DataSet_YamlDataSetTest1w cExtensions_Database_DataSet_XmlDataSetsTest6v mExtensions_Database_DataSet_ReplacementTableTest8u qExtensions_Database_DataSet_ReplacementDataSetTest0t aExtensions_Database_DataSet_QueryTableTest2s eExtensions_Database_DataSet_QueryDataSetTest/r _Extensions_Database_DataSet_PersistorTest,q YExtensions_Database_DataSet_FilterTest0p aExtensions_Database_DataSet_CsvDataSetTest6o mExtensions_Database_DataSet_CompositeDataSetTest3n gExtensions_Database_DataSet_AbstractTableTest6m mExtensions_Database_Constraint_TableRowCountTestl /DBUnitTestUtilityk ;BankAccountDBTestSQLitej 9BankAccountDBTestMySQLi /BankAccountDBTest   k {m_O@. vhXG9& xeRC3
tZK8+nVC3!






~
f
S
:
!

 								s	c	P	A	.		}cI*kSC1 hL3nS1xaI.pS;vb@&k } -VMethodReflection| 1VFunctionReflection{ )VFileReflectionz 1VDocBlockReflectiony +VClassReflectionx +UNameInformationw 7TPrototypeClassFactoryv -SRuntimeExceptionu =SInvalidArgumentExceptiont !RTagManager	s RTagr QThrowsTagq QReturnTagp #QPropertyTago QParamTagn QMethodTagm !QLicenseTagl !QGenericTagk QAuthorTagj 3QAbstractTypeableTagi )PValueGeneratorh 3PTraitUsageGeneratorg )PTraitGeneratorf 9PPropertyValueGeneratore /PPropertyGeneratord 1PParameterGeneratorc +PMethodGeneratorb 7PFileGeneratorRegistrya 'PFileGenerator` /PDocBlockGenerator_ )PClassGenerator^ 'PBodyGenerator] ;PAbstractMemberGenerator\ /PAbstractGenerator[ -ORuntimeExceptionZ =OInvalidArgumentExceptionY 9OBadMethodCallExceptionX ;NGenericAnnotationParserW =NDoctrineAnnotationParserV /MAnnotationManagerU 5MAnnotationCollectionT #LUtilityTestS %LSkeletonTestR ;KInjectableModuleManagerQ #JDummyModuleP 'IDummyReporterO )IConsoleAdapterN 'HUnknownResultM +HReturnThisCheckL 1HAlwaysSuccessCheckK +HAlwaysFailCheckJ !GRunnerTestI 1FVerboseConsoleTestH %FReporterTestG -FBasicConsoleTestF ?EDiagnosticsControllerTestE DModuleD CZfC CUtilityB CSkeletonA CConfig@ )BVerboseConsole? %BBasicConsole> -ARuntimeException= =AInvalidArgumentException< @Runner; @Config: -?ModuleController9 /?InstallController8 )?InfoController7 7?DiagnosticsController6 -?CreateController5 -?ConfigController4 1?ClassmapController3 >Registry2 >Exception1 >Aggregate0 =Exception/ :Wrapper. :Exception- %9LateComputed, 9Filter+ 9Exception* 9Basic) 8_Protocol( 8Stream' 8Exception& 8Context% 8Composite$ 8Bucket# !7Arithmetic
" 6Util! !5Arithmetic  4Random 3Sampler 3Random +2UnknownFunction +2UnknownConstant 2Exception )2DivisionByZero 1Gamma #1Combination -1CartesianProduct
 0Calc
 /Tree //RegularExpression
 /Mock	 /Map /Lookahead /Iterator /Filter /Directory )/CallbackFilter% K.RecursiveCallbackFilterIterator 9.CallbackFilterIterator
 #-SplFileInfo	 -Repeater /-RegularExpression -NoRewind -Multiple
 -Mock	 -Map -Lookahead -Limit --IteratorIterator  -Infinite #-HasChildren
~ -Glob} -Filter| !-FileSystem{ -Exceptionz -Directoryy '-Demultiplexerx -Counterw )-CallbackFilterv -Appendu ,Writet ,Temporarys ,ReadWrite
r ,Readq +Writep +ReadWrite
o +Read
n +Linkm -*FileDoesNotExistl *Exceptionk )Writej )Watcheri #)SplFileInfoh )ReadWrite
g )Readf )Generice )Finder
d )Filec )Directoryb (Wrappera (Library
` (Root_ (Generic^ (Protocol] 'Parameter\ &Group[ &ErrorZ &Exception
Y &IdleX %ListenerW %EventV %Bucket
U $Data
T #CoreS "XcallableR 5"ImportFilterIteratorQ #"ConsistencyP !WelcomeO !Version
N !UuidM !State   M ygR?,~bL3kPB,j\<mR8






k
^
O
@
1
 						o	X	=	 	tbO4 |hP>/yhRB&tU6u[C)kYF-zfUG6%zdM    'tDiskUsageTest %tDiskFreeTest !tChecksTest =tBasicConsoleReporterTest -tBasicClassesTest 'tApcMemoryTest 5tApcFragmentationTest sRunner %rBasicConsole qWarning qSuccess
 qSkip qFailure !qCollection )qAbstractResult 3pStreamWrapperExists -pSecurityAdvisory )pProcessRunning !pPhpVersion pPhpFlag
 pMemcache	 #pHttpService +pExtensionLoaded pDiskUsage pDiskFree #pDirWritable #pDirReadable )pCpuPerformance #pClassExists pCallback  pApcMemory -pApcFragmentation~ 'pAbstractCheck} oUnknown| -nAbstractReporter{ )mTriggerWarningz -mTriggerUserErrory )mThrowExceptionx -mSecurityAdvisoryw !mReturnThisv 'mAlwaysSuccessu 'mAlwaysFailuret !lRunnerTests 5lResultCollectionTestr /lOpCacheMemoryTestq 7lGuzzleHttpServiceTestp 7lDoctrineMigrationTesto 'lDiskUsageTestn %lDiskFreeTestm !lChecksTestl =lBasicConsoleReporterTestk -lBasicClassesTestj 'lApcMemoryTesti 5lApcFragmentationTesth 1lAbstractMemoryTestg kRunnerf %jBasicConsolee iWarningd iSuccess
c iSkipb iFailurea !iCollection` )iAbstractResult_ hYamlFile^ hXmlFile] 3hStreamWrapperExists\ -hSecurityAdvisory[ hRedisZ hRabbitMQY )hProcessRunningX !hPhpVersionW hPhpFlagV hPDOCheckU 'hOpCacheMemoryT hMemcacheS hJsonFileR hIniFileQ #hHttpServiceP /hGuzzleHttpServiceO +hExtensionLoadedN /hDoctrineMigrationM hDiskUsageL hDiskFreeK #hDirWritableJ #hDirReadableI )hCpuPerformanceH %hCouchDBCheckG #hClassExistsF hCallbackE hApcMemoryD -hApcFragmentationC 3hAbstractMemoryCheckB /hAbstractFileCheckA 'hAbstractCheck@ gVersion? =fUnexpectedValueException> /fOverflowException= 5fOutOfBoundsException< ?fInvalidDecoratorException; =fInvalidArgumentException: eUnicode9 eBlank8 eAscii7 dTable	6 dRow5 -dDecoratorManager4 dColumn3 cMultiByte2 bFiglet1 =aUnexpectedValueException0 -aRuntimeException/ =aInvalidArgumentException. =`UnexpectedValueException- -`RuntimeException, /`OverflowException+ 5`OutOfBoundsException* =`InvalidArgumentException) _Transfer( -^RuntimeException' ;^PhpEnvironmentException& =^InvalidArgumentException% 9^BadMethodCallException$ 9]ValidatorPluginManager
# ]Http" 3]FilterPluginManager! +]AbstractAdapter  -\RuntimeException =\InvalidArgumentException 9\BadMethodCallException %[PhpClassFile -[ClassFileLocator %ZValueScanner
 ZUtil /ZTokenArrayScanner +ZPropertyScanner -ZParameterScanner 'ZMethodScanner +ZFunctionScanner #ZFileScanner +ZDocBlockScanner -ZDirectoryScanner 3ZDerivedClassScanner +ZConstantScanner %ZClassScanner 1ZCachingFileScanner /ZAnnotationScanner ?ZAggregateDirectoryScanner -YRuntimeException
 =YInvalidArgumentException	 9YBadMethodCallException !XTagManager WThrowsTag WReturnTag #WPropertyTag WParamTag WMethodTag !WLicenseTag !WGenericTag  WAuthorTag 1VPropertyReflection~ 3VParameterReflection    rZ@(}n`G,vbTE*nYF8*veTA3#







s
`
Q
C
0

							}	i	Y	K	9		}hP=- zgSA1ucN@&m^N:,yfV@-
veS?2
xfXH5         f managere exceptiond logicc resolverb generatora exception` extractor_ %notEmptyTest^ emptyTest] writer
\ test[ templateZ %superglobalsY scriptX scoreW runnerV reportU reader	T phpS mailerR localeQ includerP %configurator	O cliN !autoloaderM asserterL adapterK VisitJ ElementI UstringH SearchG IssueF UstringE SearchD ExceptionC TocodeB FromcodeA Wrapper@ Exception? %LateComputed> Filter= Exception< Basic; _Protocol: Stream9 Exception8 Context7 Composite6 Bucket5 Isotropic4 Exception3 !Arithmetic
2 Util1 !Arithmetic0 Random/ Gamma. #Combination- -CartesianProduct, Sampler+ Random* +UnknownFunction) +UnknownConstant( Exception' Gamma& #Combination% -CartesianProduct
$ Calc# #SplFileInfo" Repeater! /RegularExpression  NoRewind Multiple
 Mock	 Map !Lookbehind Lookahead Limit -IteratorIterator Infinite Filter MyFilter !FileSystem Directory 'Demultiplexer Counter /CallbackGenerator )CallbackFilter Append /RegularExpression
 Mock	 Map Iterator
 Filter	 Directory )CallbackFilter #SplFileInfo Repeater /RegularExpression NoRewind Multiple
 Mock	 Map  !Lookbehind Lookahead~ Limit} -IteratorIterator| Infinite
{ Globz Filtery !FileSystemx Exceptionw Directoryv 'Demultiplexeru Countert /CallbackGenerators )CallbackFilterr Appendq Writep Temporaryo ReadWrite
n Readm Writel ReadWrite
k Read
j Linki -FileDoesNotExisth Exceptiong Writef Watchere #SplFileInfod ReadWrite
c Readb Generica Finder
` File_ Directory^ Wrapper] Library
\ Root[ GenericZ ProtocolY ParameterX GroupW ErrorV Exception
U IdleT ListenerS EventR Bucket
Q Data
P CoreO XcallableN #ConsistencyM Welcome
L UuidK Resolve
J DumpI Soundness	H LlkG 'DocumentationF UniformE SamplerD ExceptionC CoverageB /BoundedExhaustiveA ~Token
@ ~Rule? !~Repetition> !~Invocation= ~Entry< ~Ekzit; '~Concatenation: ~Choice9 ~Analyzer8 }TreeNode7 }Parser	6 }Llk5 }Lexer	4 |Ll13 /{UnrecognizedToken2 +{UnexpectedToken
1 {Rule0 {Lexer/ %{IllegalToken!. C{FinalStateHasNotBeenReached- {Exception, zPp+ yIsotropic* xException) wUnknown( -vAbstractReporter' )uTriggerWarning& -uTriggerUserError% )uThrowException$ -uSecurityAdvisory# !uReturnThis" 'uAlwaysSuccess! 'uAlwaysFailure  !tRunnerTest 5tResultCollectionTest    qbO<- p`K7%y`Q@2raSB0 ~jWI5! 







v
d
O
6
!
									~	q	c	T	E	3	!		sfYH9,wj\J;(uh[L?2%	yjYI6)yiSC6)qcUF1#{jWF6#              A exception@ manager? aliaser> generator= score< generator; engine: adapter9 
decorator8 	storage7 	invoker6 	calls
5 	call4 addClass3 decorator2 decorator1 exception	0 tag/ parser. iterator
- data, #categorizer+ token
* sloc
) size( generic'  engine
& stub% generator$ pusher# treemap" tagger! runner  coverage compiler builder	 vcs	 svn prompt %configurable parser coverage score	 tap santa phing nyancat	 cli light realtime %asynchronous xunit	 vim coveralls clover
 builder	 phing	 cli phing	 cli	 tap phing	 cli	 run memory  event duration~ phing	} cli	| cli	{ cli	z cliy phing	x cli	w cli
v voidu #uncompletedt skippeds memoryr durationq coveragep phing	o cli
n planm terminall imagek libnotifyj growli notifier
h logo	g cli	f clie version
d path	c cli	b clia phpstorm
` gvim_ gedit^ phpstorm] macvim\ execute	[ cli	Z cliY santaX nyancat	W cli	V cliU phing	T cliS treemap
R html	Q cliP resultO outputsN failuresM !exceptionsL eventK errorsJ durationI coverageH atoumG phing
F logo	E cliD runnerC eventB fieldA in@ phpScript? #phpProperty> %phpNamespace= phpMethod< )phpImportation; #phpFunction: +phpDefaultValue9 #phpConstant8 phpClass7 #phpArgument6 token5 iterator4 value3 adapter2 invoker1 tokenizer0 mocker/ exception
. call- !controller, !controller
+ file* directory) !controller( factory' invoker& !controller% method$ argument# exception" stream! generator  !controller linker iterator invoker
 mail factory source extension	 dot closure source exception
 path factory exception closure +unexpectedValue
 file runtime logic +invalidArgument 'badMethodCall	
 git	 exception prompt #progressBar command colorizer clear
 mock logic variable  !utf8String #testedClass~ string} stream| sizeOf{ #phpFunctionz phpClassy phpArrayx outputw objectv 'mysqlDateTime
u mockt integer
s hashr floatq extensionp exceptiono errorn dateTimem %dateIntervall constantk %castToStringj booleani adapterh logic
g call    xeWE3&xn[J8$m[H2%n]G5vfVD2








s
^
N
;
.
						}	X	5		 zi\I9(	s`N>*udSA2xl]PB3%pbUH;. xkZL?2#r\J;.            jprompt %jconfigurable iparser hcoverage gscore	 ftap fphing	 fcli elight drealtime %dasynchronous
 cxunit		 cvim ccoveralls cclover cbuilder bphing	 bcli aphing	 acli	 `tap  `phing	 `cli~ _phing	} _cli	| ^cli
{ ]voidz ]skipped	y \clix [phing	w [cli	v Zcliu Yphing	t Ycli
s Xplanr Wterminalq Wimagep Vlibnotifyo Vgrowln Unotifier
m Ulogo	l Ucli	k Tcli	j Scli	i Rcli
h Qgvimg Qgeditf Qphpstorme Qmacvimd Pexecute	c Pcli	b Ocli	a Ncli	` Mcli_ Lphing	^ Lcli] Kcoverage\ Jtreemap
[ JhtmlZ Iphing
Y Ilogo	X IcliW HfieldV GinU FphpScriptT #FphpPropertyS %FphpNamespaceR FphpMethodQ )FphpImportationP #FphpFunctionO #FphpConstantN FphpClassM #FphpArgumentL EtokenK EiteratorJ DadapterI CinvokerH BtokenizerG BmockerF BexceptionE !AcontrollerD !@controller
C ?fileB ?directoryA !?controller@ >factory? =invoker> !=controller= <method< ;argument; :exception: 9stream9 9generator8 !9controller	7 9bar6 ?9with__callAndOtherMethods5 8linker4 8iterator	3 8foo2 8invoker
1 7mail0 6factory/ 5source. 4extension	- 4dot, 4closure+ 3source
* 2path) 1factory( 1exception' 0closure/& _0classWithConstructorWithOptionalArguments% 50classWithConstructor$ '0abstractClass# ?0classWithFinalConstructor!" C0classWithPrivateConstructor#! G0classWithProtectedConstructor  ;0classWithoutConstructor +/unexpectedValue .runtime .logic +-invalidArgument '-badMethodCall	 ,git +exception *prompt #*progressBar *colorizer *clear
 )mock (logic 'variable !'utf8String #'testedClass 'string 'stream 'sizeOf #'phpFunction 'phpClass
 'phpArray	 'output 'object ''mysqlDateTime
 'mock 'dummy 'integer
 'hash 'float 'extension  'exception 'error~ 'dateTime} %'dateInterval| 'constant{ %'castToStringz 'booleany 'adapterx &logic
w %callv $manageru #exceptiont "logics !resolverr !generatorq  extractorp writer
o test	n foom %notEmptyTestl emptyTestk templatej %superglobalsi scripth scoreg runnerf reporte reader	d phpc localeb includera %configurator	` cli_ !autoloader^ asserter] adapter\ exception[ Z Y atoumTask	X out	W errV exception	U std
T mail
S http
R file
Q trimP rtrimO prompt	N eolM analyzerL variable
K diffJ decoratorI generatorH exception
G stop
F skipE runtimeD isolateC inlineB !concurrent    |n^M8*q`P=.n\O?0"vdPC-wiYF0









s
]
K
5
#

								{	i	W	B	2	"	rbOB+ueTG4$vfRA0	~m^L=(}j^O@0#}m`RA4%obUG6) m terminall imagek libnotifyj growli notifier
h logo	g cli	f clie version
d path	c cli	b clia phpstorm
` gvim_ gedit^ phpstorm] macvim\ execute	[ cli	Z cliY santaX nyancat	W cli	V cliU phing	T cliS treemap
R html	Q cliP resultO outputsN failuresM !exceptionsL eventK errorsJ durationI coverageH atoumG phing
F logo	E cliD runnerC eventB fieldA in@ phpScript? #phpProperty> %phpNamespace= phpMethod< )phpImportation; #phpFunction: +phpDefaultValue9 #phpConstant8 phpClass7 #phpArgument6 token5 iterator4 value3 adapter2 invoker1 tokenizer0 mocker/ exception
. call- !controller, !controller
+ file* directory) !controller( factory' invoker& !controller% method$ argument# exception" stream! generator  !controller linker iterator invoker
 mail factory source extension	 dot closure source exception
 path factory exception closure +unexpectedValue
 file runtime logic +invalidArgument 'badMethodCall	
 git	 exception prompt #progressBar command colorizer clear
 mock logic variable  !utf8String #testedClass~ string} stream| sizeOf{ #phpFunctionz phpClassy phpArrayx outputw objectv 'mysqlDateTime
u mockt integer
s hashr floatq extensionp exceptiono errorn dateTimem %dateIntervall constantk %castToStringj booleani adapterh logic
g callf managere exceptiond logicc resolverb generatora exception` extractor_ %notEmptyTest^ emptyTest] writer
\ test[ templateZ %superglobalsY scriptX scoreW runnerV reportU reader	T phpS mailerR localeQ includerP %configurator	O cliN !autoloaderM asserterL adapterK AtoumTaskJ )BuildExceptionI FileSet
H Task	G out	F err	E std
D mail
C http
B file
A trim@ rtrim? prompt	> eol= analyzer< variable
; diff: decorator
9 ~test8 }generator7 |exception6 {inline5 !{concurrent4 zexception3 ymanager2 yaliaser1 xscore0 xgenerator/ xengine. xadapter- wdecorator, vstorage+ vinvoker* vcalls
) vcall( uaddClass' tdecorator& sdecorator	% rtag$ rparser# riterator
" rdata! #qcategorizer  pgeneric oengine
 nstub ngenerator mpusher ltreemap ltagger lrunner lcoverage lbuilder	 ksvn    |naTE8+rcRB/"rbL</"{j\N?*
tcP?/








q
c
P
=
*


										t	g	Z	G	=	3	 	wgXH2 raSD3"o`R;+	whZK8# iBn]O?.!|o[H8%         A !$controller@ #factory? "invoker> !"controller= !method<  argument; exception: stream9 generator8 !controller	7 bar6 ?with__callAndOtherMethods5 linker4 iterator	3 foo2 invoker
1 mail0 factory/ source. extension	- dot, closure+ source
* path) factory( exception' closure/& _classWithConstructorWithOptionalArguments% 5classWithConstructor$ 'abstractClass# ?classWithFinalConstructor!" CclassWithPrivateConstructor#! GclassWithProtectedConstructor  ;classWithoutConstructor +unexpectedValue runtime logic +invalidArgument 'badMethodCall	 git exception prompt #progressBar colorizer clear
 mock logic variable !utf8String #testedClass string stream sizeOf #phpFunction phpClass
 phpArray	 output object 'mysqlDateTime
 mock dummy integer
 hash float extension  exception error~ dateTime} %dateInterval| constant{ %castToStringz booleany adapterx logic
w 
callv 	manageru exceptiont logics resolverr generatorq extractorp writer
o test	n foom %notEmptyTestl emptyTestk templatej %superglobalsi scripth scoreg runnerf reporte reader	d phpc localeb includera %configurator	` cli_ !autoloader^ asserter] adapter\ exception[ Z Y  atoumTask	X out	W errV exception	U std
T mail
S http
R file
Q trimP rtrimO prompt	N eolM analyzerL variable
K diffJ decoratorI generatorH exception
G stop
F skipE runtimeD isolateC inlineB !concurrentA exception@ manager? aliaser> generator= score< generator; engine: adapter9 decorator8 storage7 invoker6 calls
5 call4 addClass3 decorator2 decorator1 exception	0 tag/ parser. iterator
- data, #categorizer+ token
* sloc
) size( generic' engine
& stub% generator$ pusher# treemap" tagger! runner  coverage compiler builder	 vcs	 svn prompt %configurable parser coverage score	 tap santa phing nyancat	 cli light realtime %asynchronous xunit	 vim coveralls clover
 builder	 phing	 cli phing	 cli	 tap phing	 cli	 run memory  event duration~ phing	} cli	| cli	{ cli	z cliy phing	x cli	w cli
v voidu #uncompletedt skippeds memoryr durationq coveragep phing	o cli
n plan    p_M>)xi\N?1 |naTG:,wfXK>/"~hVG:+








w
f
V
C
5
%
									|	m	\	K	8	'		vhUG5#yaN5${a?%zjH.pN1m]N@2$mH&	                    		 Svg	 Pdf Image -AbstractRenderer -RuntimeException 3OutOfRangeException =InvalidArgumentException! CExtensionNotLoadedException  ABarcodeValidationException
  ~Upce
 ~Upca~ ~Royalmail} ~Postnet| ~Planet{ ~Leitcodez ~Itf14y ~Identcodex ~Error
w ~Ean8
v ~Ean5
u ~Ean2t ~Ean13s ~Code39r /~Code25interleavedq ~Code25p ~Code128o ~Codabarn )~AbstractObjectm =}UnexpectedValueExceptionl -}RuntimeExceptionk ?}RendererCreationExceptionj 3}OutOfRangeExceptioni =}InvalidArgumentExceptionh 7|RendererPluginManagerg 3|ObjectPluginManagerf |Barcodee ){Authenticationd zSessionc 'zNonPersistentb zChaina =yUnexpectedValueException` -yRuntimeException_ =yInvalidArgumentException^ xResult] 7xAuthenticationService\ -wRuntimeException[ =wInvalidArgumentExceptionZ %vFileResolverY )vApacheResolverX =uUnexpectedValueExceptionW -uRuntimeExceptionV =uInvalidArgumentExceptionU -tRuntimeExceptionT =tInvalidArgumentException S AsCredentialTreatmentAdapterR 5sCallbackCheckAdapterQ +sAbstractAdapter
P rLdap
O rHttpN rDigestM rDbTableL +rAbstractAdapterK lAtoumTaskJ )kBuildExceptionI kFileSet
H kTask	G jout	F jerr	E istd
D imail
C ihttp
B ifile
A htrim@ hrtrim? hprompt	> heol= ganalyzer< fvariable
; ediff: ddecorator
9 ctest8 bgenerator7 aexception6 `inline5 !`concurrent4 _exception3 ^manager2 ^aliaser1 ]score0 ]generator/ ]engine. ]adapter- \decorator, [storage+ [invoker* [calls
) [call( ZaddClass' Ydecorator& Xdecorator	% Wtag$ Wparser# Witerator
" Wdata! #Vcategorizer  Ugeneric Tengine
 Sstub Sgenerator Rpusher Qtreemap Qtagger Qrunner Qcoverage Qbuilder	 Psvn Oprompt %Oconfigurable Nparser Mcoverage Lscore	 Ktap Kphing	 Kcli Jlight Irealtime %Iasynchronous
 Hxunit		 Hvim Hcoveralls Hclover Hbuilder Gphing	 Gcli Fphing	 Fcli	 Etap  Ephing	 Ecli~ Dphing	} Dcli	| Ccli
{ Bvoidz Bskipped	y Aclix @phing	w @cli	v ?cliu >phing	t >cli
s =planr <terminalq <imagep ;libnotifyo ;growln :notifier
m :logo	l :cli	k 9cli	j 8cli	i 7cli
h 6gvimg 6geditf 6phpstorme 6macvimd 5execute	c 5cli	b 4cli	a 3cli	` 2cli_ 1phing	^ 1cli] 0coverage\ /treemap
[ /htmlZ .phing
Y .logo	X .cliW -fieldV ,inU +phpScriptT #+phpPropertyS %+phpNamespaceR +phpMethodQ )+phpImportationP #+phpFunctionO #+phpConstantN +phpClassM #+phpArgumentL *tokenK *iteratorJ )adapterI (invokerH 'tokenizerG 'mockerF 'exceptionE !&controllerD !%controller
C $fileB $directory   F e@lD+rZ.lXD(~oY;* 





s
]
N
6

						r	^	E	/	!		 }[: bH-sW<oV=!	s_L:%lQ5qW>#hVF                  Filter Constant -RuntimeException =InvalidArgumentException 3WriterPluginManager 3ReaderPluginManager Factory Config %ValueScanner
 Util /TokenArrayScanner +PropertyScanner -ParameterScanner 'MethodScanner +FunctionScanner #FileScanner +DocBlockScanner -DirectoryScanner 3DerivedClassScanner +ConstantScanner %ClassScanner 1CachingFileScanner
 /AnnotationScanner	 ?AggregateDirectoryScanner -RuntimeException =InvalidArgumentException 9BadMethodCallException !TagManager ThrowsTag ReturnTag #PropertyTag ParamTag  MethodTag !LicenseTag~ !GenericTag} AuthorTag| 1PropertyReflection{ 3ParameterReflectionz -MethodReflectiony 1FunctionReflectionx )FileReflectionw 1DocBlockReflectionv +ClassReflectionu +NameInformationt -RuntimeExceptions =InvalidArgumentException	r Tagq ReturnTagp ParamTago !LicenseTagn AuthorTagm )ValueGeneratorl 9PropertyValueGeneratork /PropertyGeneratorj 1ParameterGeneratori +MethodGeneratorh 7FileGeneratorRegistryg 'FileGeneratorf /DocBlockGeneratore )ClassGeneratord 'BodyGeneratorc ;AbstractMemberGeneratorb /AbstractGeneratora -RuntimeException` =InvalidArgumentException_ 9BadMethodCallException^ ;GenericAnnotationParser] =DoctrineAnnotationParser\ /AnnotationManager[ 5AnnotationCollectionZ -RuntimeExceptionY ;NoFontProvidedExceptionX =InvalidArgumentExceptionW ?ImageNotLoadableException!V CExtensionNotLoadedExceptionU +DomainExceptionT ReCaptchaS ImageR FigletQ Factory
P DumbO %AbstractWordN +AbstractAdapterM !SerializerL 'PluginOptionsK -OptimizeByFactorJ +IgnoreUserAbortI -ExceptionHandlerH 5ClearExpiredByFactorG )AbstractPluginF PostEventE 'PluginManagerD )ExceptionEventC EventB %CapabilitiesA 5AdapterPluginManager@ 'ZendServerShm? )ZendServerDisk> 'XCacheOptions= XCache< +WinCacheOptions; WinCache: )SessionOptions9 Session8 5RedisResourceManager7 %RedisOptions6 Redis5 'MemoryOptions4 Memory3 =MemcachedResourceManager2 -MemcachedOptions1 Memcached0 +KeyListIterator/ /FilesystemOptions. 1FilesystemIterator- !Filesystem, !DbaOptions+ #DbaIterator	* Dba) !ApcOptions( #ApcIterator	' Apc& )AdapterOptions% 1AbstractZendServer$ +AbstractAdapter# 3StorageCacheFactory(" QStorageCacheAbstractServiceFactory! )StorageFactory  5PatternPluginManager )PatternFactory )PatternOptions #OutputCache #ObjectCache !ClassCache %CaptureCache 'CallbackCache +AbstractPattern$ IUnsupportedMethodCallException =UnexpectedValueException -RuntimeException 3OutOfSpaceException 3MissingKeyException  AMissingDependencyException )LogicException =InvalidArgumentException! CExtensionNotLoadedException 9BadMethodCallException =UnexpectedValueException -RuntimeException 3OutOfRangeException
 =InvalidArgumentException   u seSF8n]M<*
yiTF8	n^N>lR0





f
J
1

									q	^	J	=	-		 |lYA)~n_O;,	oR<zbG,oU<(xiU@-pTE1
u         R MysqlQ 5CreateTableDecoratorP PlatformO -AbstractPlatformN -RuntimeExceptionM =InvalidArgumentExceptionL UniqueKeyK !PrimaryKeyJ !ForeignKeyI CheckH 1AbstractConstraintG Varchar
F Time
E TextD IntegerC FloatB Decimal
A Date@ Column
? Char> Boolean
= Blob< !BigInteger; DropTable: #CreateTable9 !AlterTable8 Where7 Update6 +TableIdentifier	5 Sql4 Select3 Literal2 Insert1 Having0 !Expression/ Delete. #AbstractSql- !FeatureSet, +AbstractFeature+ -RuntimeException* =InvalidArgumentException) !RowGateway( 1AbstractRowGateway' -RuntimeException& =InvalidArgumentException% ResultSet$ 1HydratingResultSet# /AbstractResultSet" /SqlServerMetadata! )SqliteMetadata  1PostgresqlMetadata 'MysqlMetadata )AbstractSource !ViewObject 'TriggerObject #TableObject -ConstraintObject 3ConstraintKeyObject %ColumnObject 3AbstractTableObject Metadata =UnexpectedValueException -RuntimeException =InvalidArgumentException )ErrorException Profiler SqlServer Sqlite Sql92 !Postgresql Oracle Mysql
 IbmDb2	 =UnexpectedValueException -RuntimeException 7InvalidQueryException* UInvalidConnectionParametersException =InvalidArgumentException )ErrorException )ErrorException Statement Sqlsrv  Result !Connection~ Statement} Result| Pgsql{ !Connectionz -SqliteRowCountery -OracleRowCounterx Statementw Result	v Pdou !Connectiont Statements Result
r Oci8q !Connectionp Statemento Resultn Mysqlim !Connectionl Statementk Resultj IbmDb2i !Connectionh +AbstractFeatureg 1StatementContainerf 1ParameterContainere 7AdapterServiceFactory#d GAdapterAbstractServiceFactoryc Adapterb Pkcs7a 5PaddingPluginManager` Mcrypt_ -RuntimeException^ =InvalidArgumentException] -RuntimeException\ =InvalidArgumentException[ PublicKeyZ !PrivateKeyY #AbstractKeyX !RsaOptions	W RsaV 'DiffieHellmanU -RuntimeExceptionT =InvalidArgumentExceptionS BcryptR ApacheQ ScryptP SaltedS2kO Pbkdf2N -RuntimeExceptionM =InvalidArgumentExceptionL -RuntimeExceptionK =InvalidArgumentExceptionJ UtilsI 9SymmetricPluginManager
H Hmac
G HashF #BlockCipherE SelectD Number
C LineB Confirm
A Char@ )AbstractPrompt? -RuntimeException> =InvalidArgumentException= 9BadMethodCallException< Response; Request: Getopt9 Console8 Xterm2567 Utf8Heavy
6 Utf85 DECSG4 'AsciiExtended3 Ascii2 )WindowsAnsicon1 Windows0 Virtual/ Posix. +AbstractAdapter
- Yaml	, Xml+ PhpArray
* Json	) Ini( )AbstractWriter
' Yaml	& Xml
% Json	$ Ini# !Translator" Token! Queue   ^ maN>0nT;%o`P8,lM2mJ(




x
e
S
D
$

						u	`	D	(	{[9eN8&n^L8!}n`QB4%~q[J;!kQ7)|k]H;%^  | =
InvalidArgumentException{ 9
BadMethodCallExceptionz %	PhpClassFiley -	ClassFileLocatorx Sourcew %AbstractAtom	v Rssu !AtomSource
t Atoms %AbstractAtom	r Rssq #AtomDeleted
p Atomo Deletedn -AbstractRendererm Entryl Entryk Entry
j  Feedi  Entry
h Feedg Entry
f Feede Entryd Entry
c Feedb -AbstractRenderera -RuntimeException` =InvalidArgumentException_ 9BadMethodCallException^ Writer] Version\ Source[ #FeedFactory
Z FeedY 9ExtensionPluginManagerX -ExtensionManagerW EntryV DeletedU %AbstractFeed	T UriS Source	R Rss
Q AtomP %AbstractFeedO EntryN Entry
M FeedL Entry
K FeedJ Entry
I FeedH Entry
G FeedF EntryE Entry
D FeedC EntryB %AbstractFeedA 'AbstractEntry@ -RuntimeException? =InvalidArgumentException> 9BadMethodCallException	= Rss
< Atom; 'AbstractEntry: !Collection9 Category8 Author7 1AbstractCollection6 Reader5 FeedSet4 9ExtensionPluginManager3 -ExtensionManager2 !Collection1 %AbstractFeed0 'AbstractEntry/ Callback. %Subscription- 'AbstractModel, -RuntimeException+ =InvalidArgumentException* Version) !Subscriber( %PubSubHubbub' Publisher& %HttpResponse% -AbstractCallback$ -RuntimeException# =InvalidArgumentException" 9BadMethodCallException! )FilterIterator  =InvalidCallbackException =InvalidArgumentException +DomainException 1StaticEventManager 1SharedEventManager 1ResponseCollection 1GlobalEventManager #FilterChain %EventManager Event ?AbstractListenerAggregate -RuntimeException =InvalidArgumentException Escaper -RuntimeException 9BadMethodCallException Query NodeList Css2Xpath /GeneratorInstance Generator ;DependencyInjectorProxy!
 CUndefinedReferenceException	 -RuntimeException =MissingPropertyException =InvalidPositionException ?InvalidParamNameException =InvalidCallbackException =InvalidArgumentException 9ClassNotFoundException! CCircularDependencyException Console  PhpClass +InjectionMethod~ /RuntimeDefinition} 7IntrospectionStrategy| 1CompilerDefinition{ +ClassDefinitionz /BuilderDefinitiony +ArrayDefinitionx %Instantiatorw Injectv )ServiceLocatoru +InstanceManagert Dis )DefinitionListr Configq Debugp /TableGatewayEvento +SequenceFeaturen /RowGatewayFeaturem +MetadataFeaturel 1MasterSlaveFeaturek 5GlobalAdapterFeaturej !FeatureSeti %EventFeatureh +AbstractFeatureg -RuntimeExceptionf =InvalidArgumentExceptione %TableGatewayd 5AbstractTableGatewayc %PredicateSetb Predicatea Operator` NotLike_ NotIn^ Literal
] Like\ IsNull[ IsNotNullZ InY !ExpressionX BetweenW SqlServerV +SelectDecoratorU +SelectDecoratorT OracleS +SelectDecorator   m b@{`L;+pZC,obU@/s`P:'





j
L
3
					w	N	,	vgF4%tbN?1#nWG5&zlH,iQC/~bM2yeO<)~m           ) FormUrl( FormTime' %FormTextarea& FormText% FormTel$ !FormSubmit# !FormSelect" !FormSearch! FormRow  FormReset FormRange FormRadio %FormPassword !FormNumber /FormMultiCheckbox +FormMonthSelect FormMonth FormLabel FormInput FormImage !FormHidden FormFile FormEmail /FormElementErrors #FormElement 1FormDateTimeSelect /FormDateTimeLocal %FormDateTime )FormDateSelect FormDate FormColor
 )FormCollection	 %FormCheckbox #FormCaptcha !FormButton
 Form )AbstractHelper =UnexpectedValueException ;InvalidElementException =InvalidArgumentException! CExtensionNotLoadedException  +DomainException 9BadMethodCallException~ 1FormElementManager } AFormAbstractServiceFactory
| Form{ Fieldsetz Factoryy Element
x Week	w Url
v Timeu Textarea
t Texts Submitr Selectq Rangep Radioo Passwordn Numberm 'MultiCheckboxl #MonthSelectk Monthj Imagei Hidden
h Fileg Emailf )DateTimeSelecte 'DateTimeLocald DateTimec !DateSelect
b Date
a Csrf` Color_ !Collection^ Checkbox] Captcha\ Button[ ValidatorZ +ValidationGroup
Y TypeX RequiredW OptionsV Object
U NameT #InputFilterS InputR HydratorQ ;FormAnnotationsListenerP FlagsO FilterN ExcludeM %ErrorMessage L AElementAnnotationsListenerK )ComposedObjectJ !AttributesI /AnnotationBuilderH !AllowEmptyG =AbstractStringAnnotation%F KAbstractArrayOrStringAnnotationE ;AbstractArrayAnnotation!D CAbstractAnnotationsListenerC 7UnderscoreToSeparatorB -UnderscoreToDashA 7UnderscoreToCamelCase@ 5SeparatorToSeparator? +SeparatorToDash> 5SeparatorToCamelCase= -DashToUnderscore< +DashToSeparator; +DashToCamelCase: 7CamelCaseToUnderscore9 5CamelCaseToSeparator8 +CamelCaseToDash7 /AbstractSeparator6 UpperCase5 %RenameUpload4 Rename3 LowerCase2 Encrypt1 Decrypt0 -RuntimeException/ =InvalidArgumentException!. CExtensionNotLoadedException- +DomainException, 9BadMethodCallException+ Openssl* #BlockCipher	) Zip	( Tar' Snappy	& Rar	% Lzf$ Gz	# Bz2"" EAbstractCompressionAlgorithm! %UriNormalize  StripTags 'StripNewlines !StringTrim 'StringToUpper 'StringToLower %StaticFilter RealPath #PregReplace
 Null	 Int Inflector %HtmlEntities 3FilterPluginManager #FilterChain Encrypt	 Dir Digits Decrypt !Decompress /DateTimeFormatter Compress Callback
 Boolean	 BaseName +AbstractUnicode )AbstractFilter Transfer -RuntimeException ;PhpEnvironmentException =InvalidArgumentException 9BadMethodCallException 9ValidatorPluginManager
  Http 3FilterPluginManager~ +AbstractAdapter} -
RuntimeException   e {Z:$|m]O.kQ/qYC6'|eL8"







z
^
P
?
&

 							j	N	?	.			}p_F&mVE3#t\M>(
scTE3$|iP:&bH7&
sdSA1$ye   V !8CollectionU 8AttributeT 7Service
S 6Http
R 5HttpQ -4RuntimeExceptionP =4InvalidArgumentExceptionO '4HttpExceptionN )4ErrorException	M 3SmdL 3ServerK 3ResponseJ 3RequestI 3ErrorH 3ClientG 3CacheF -2RuntimeExceptionE 12RecursionExceptionD =2InvalidArgumentExceptionC 92BadMethodCallException
B 1Json
A 1Expr@ 1Encoder? 1Decoder> -0RuntimeException= =0InvalidArgumentException< =/InputFilterPluginManager; #/InputFilter: /Input9 /FileInput8 /Factory7 7/CollectionInputFilter6 +/BaseInputFilter5 !/ArrayInput4 %.HelperConfig3 +-TranslatePlural2 -Translate1 -Plural0 %-NumberFormat/ !-DateFormat. )-CurrencyFormat- =-AbstractTranslatorHelper, ,PostCode+ #,PhoneNumber	* ,Int) ,Float( ,DateTime' ,Alpha& ,Alnum% +Symbol
$ +Rule# +Parser" =*TranslatorServiceFactory! !*Translator  !*TextDomain 3*LoaderPluginManager )PhpArray	 )Ini )Gettext %(NumberFormat (Alpha (Alnum )(AbstractLocale -'RuntimeException )'RangeException )'ParseException 5'OutOfBoundsException ='InvalidArgumentException! C'ExtensionNotLoadedException &Stream %Response %Request '%RemoteAddress -$RuntimeException =$InvalidArgumentException 9#LanguageFieldValuePart
 9#EncodingFieldValuePart	 7#CharsetFieldValuePart 5#AcceptFieldValuePart 9#AbstractFieldValuePart +"WWWAuthenticate "Warning	 "Via
 "Vary "UserAgent "Upgrade  -"TransferEncoding "Trailer~ "TE} "SetCookie| "Server{ !"RetryAfterz "Refreshy "Refererx "Rangew 1"ProxyAuthorizationv /"ProxyAuthenticateu "Pragmat #"MaxForwardss "Locationr %"LastModifiedq "KeepAlivep /"IfUnmodifiedSinceo "IfRangen #"IfNoneMatchm +"IfModifiedSincel "IfMatch
k "Hostj 1"GenericMultiHeaderi '"GenericHeader
h "Fromg "Expiresf "Expect
e "Etag
d "Datec "Cookieb #"ContentTypea ;"ContentTransferEncoding` %"ContentRange_ !"ContentMD5^ +"ContentLocation] '"ContentLength\ +"ContentLanguage[ +"ContentEncodingZ 1"ContentDispositionY !"ConnectionX %"CacheControlW '"AuthorizationV 1"AuthenticationInfoU "Allow	T "AgeS %"AcceptRangesR )"AcceptLanguageQ )"AcceptEncodingP '"AcceptCharsetO "AcceptN -"AbstractLocationM %"AbstractDateL )"AbstractAcceptK -!RuntimeExceptionJ 3!OutOfRangeExceptionI =!InvalidArgumentExceptionH - RuntimeExceptionG 3 OutOfRangeExceptionF = InvalidArgumentExceptionE CookiesD -TimeoutExceptionC -RuntimeExceptionB 3OutOfRangeExceptionA =InvalidArgumentException@ ;InitializationException
? Test> Socket= Proxy
< Curl; Response: Request9 Headers8 %HeaderLoader7 Cookies6 %ClientStatic5 Client4 +AbstractMessage3 %HelperConfig2 9FormFileUploadProgress1 ;FormFileSessionProgress0 3FormFileApcProgress/ ReCaptcha. Image- Figlet
, Dumb+ %AbstractWord* FormWeek   o ^<r`J1 
|fM;"y]=$eC)	







r
a
Q
D
4
						u	b	V	9	!	gP?*~dG:.lWE4$ugL*zl^<|Z@2xV<#o                      eMovable~ eLocked} -eAccessController| /eAbstractContainer{ !dHashTiming
z cRandy -bRuntimeExceptionx =bInvalidArgumentExceptionw +bDomainExceptionv -aRuntimeExceptionu =aInvalidArgumentExceptiont ;aDivisionByZeroExceptions !`BigIntegerr 5`AdapterPluginManager	q _Gmpp _Bcmatho #^SmtpOptions
n ^Smtpm ^Sendmaill #^FileOptions
k ^Filej -]RuntimeExceptioni =]InvalidArgumentExceptionh \Maildir
g [Filef -ZRuntimeExceptione =ZInvalidArgumentException
d YFile
c XMboxb XMaildira -WRuntimeException` 5WOutOfBoundsException_ =WInvalidArgumentException
^ VPop3
] VPart\ VMessage
[ VMboxZ VMaildir
Y VImapX VFolderW +VAbstractStorageV UPlainU ULoginT UCrammd5S -TRuntimeExceptionR =TInvalidArgumentExceptionQ /SSmtpPluginManager
P SSmtp
O SPop3
N SImapM -SAbstractProtocolL -RRuntimeExceptionK =RInvalidArgumentExceptionJ 9RBadMethodCallExceptionI QToH QSubjectG QSenderF QReplyToE QReceivedD #QMimeVersionC QMessageIdB !QHeaderWrapA %QHeaderLoader@ 1QGenericMultiHeader? 'QGenericHeader
> QFrom
= QDate< #QContentType; ;QContentTransferEncoding: QCc	9 QBcc8 3QAbstractAddressList7 -PRuntimeException6 5POutOfBoundsException5 =PInvalidArgumentException4 +PDomainException3 9PBadMethodCallException2 OStorage1 OMessage0 OHeaders/ #OAddressList. OAddress- 'NFirePhpBridge, +MChromePhpBridge+ #LZendMonitor* LSyslog) LStream
( LNull' LMongoDB
& LMock
% LMail$ 9LFormatterPluginManager# LFirePhp" )LFingersCrossed! 3LFilterPluginManager  LDb LChromePhp )LAbstractWriter KRequestId KBacktrace 3JWriterPluginManager 9JProcessorPluginManager 5JLoggerServiceFactory" EJLoggerAbstractServiceFactory JLogger	 IXml ISimple IFirePhp -IExceptionHandler %IErrorHandler IDb IChromePhp
 IBase HValidator )HSuppressFilter HRegex HPriority

 HMock	 -GRuntimeException =GInvalidArgumentException /FSecurityException -FRuntimeException 7FPluginLoaderException' OFMissingResourceNamespaceException 5FInvalidPathException =FInvalidArgumentException +FDomainException  9FBadMethodCallException 1EStandardAutoloader~ /EPluginClassLoader} -EModuleAutoloader| 1EClassMapAutoloader{ /EAutoloaderFactoryz DOpenLdapy +DActiveDirectoryx COpenLdapw +CActiveDirectoryv BOpenLdapu +BActiveDirectoryt %BAbstractItems AOpenLdapr !AeDirectoryq +AActiveDirectoryp @Schemao @RootDsen !@Collectionm -@ChildrenIteratorl %@AbstractNodek ?Encoderj +>FilterExceptioni %=StringFilterh =OrFilterg =NotFilterf !=MaskFiltere =AndFilterd 7=AbstractLogicalFilterc )=AbstractFilterb '<LdapExceptiona =<InvalidArgumentException` 9<BadMethodCallException_ =;UnexpectedValueException^ =;InvalidArgumentException] 1;ConverterException\ :Converter[ +9DefaultIterator
Z 8Node
Y 8LdapX 8FilterW 8Dn    }oaG%q\C_E0dH%
p^N>%




v
V
5

					k	G	5	!	yk\M9)gA%ZG"mM-
qZ+hF%}\:]B$ I{InjectRoutematchParamsListener /{ExceptionStrategy ={DefaultRenderingStrategy ;{CreateViewModelListener #zViewManager 7zRouteNotFoundStrategy ;zInjectViewModelListener& MzInjectNamedConsoleParamsListener  /zExceptionStrategy =zDefaultRenderingStrategy~ ;zCreateViewModelListener"} EyViewTemplatePathStackFactory$| IyViewTemplateMapResolverFactory{ 3yViewResolverFactoryz 1yViewManagerFactoryy ;yViewJsonStrategyFactoryx ;yViewJsonRendererFactoryw =yViewHelperManagerFactoryv ;yViewFeedStrategyFactoryu ;yViewFeedRendererFactoryt ;yValidatorManagerFactorys =yTranslatorServiceFactoryr 5yServiceManagerConfigq 9yServiceListenerFactory+p WySerializerAdapterPluginManagerFactoryo 'yRouterFactoryn ?yRoutePluginManagerFactorym +yResponseFactoryl )yRequestFactory#k GyPaginatorPluginManagerFactoryj 5yModuleManagerFactoryi ?yInputFilterManagerFactoryh 9yHydratorManagerFactoryg 9yHttpViewManagerFactoryf ?yFormElementManagerFactorye 5yFilterManagerFactoryd 3yEventManagerFactory+c WyDiStrictAbstractServiceFactoryFactory$b IyDiStrictAbstractServiceFactory!a CyDiServiceInitializerFactory` yDiFactory%_ KyDiAbstractServiceFactoryFactory$^ IyControllerPluginManagerFactory] ;yControllerLoaderFactory\ ?yConsoleViewManagerFactory[ 7yConsoleAdapterFactoryZ 'yConfigFactoryY 1yApplicationFactory"X EyAbstractPluginManagerFactoryW -xSimpleRouteStackV 1xRoutePluginManagerU !xRouteMatchT %xPriorityListS wWildcardR )wTreeRouteStack#Q GwTranslatorAwareTreeRouteStackP wSegmentO wSchemeN !wRouteMatchM wRegexL wQuery
K wPartJ wMethodI wLiteralH wHostnameG wChainF -vRuntimeExceptionE =vInvalidArgumentExceptionD -uSimpleRouteStackC uSimpleB !uRouteMatchA uCatchall @ AtSimpleStreamResponseSender? /tSendResponseEvent"> EtPhpEnvironmentResponseSender= 1tHttpResponseSender< 7tConsoleResponseSender; 9tAbstractResponseSender: !sTranslator9 -rRuntimeException8 ;rMissingLocatorException7 9rInvalidPluginException 6 ArInvalidControllerException5 =rInvalidArgumentException4 +rDomainException3 +qIdentityFactory2 )qForwardFactory	1 pUrl0 pRedirect/ +pPostRedirectGet. pParams- pLayout, pIdentity+ pForward* )pFlashMessenger) 3pFilePostRedirectGet!( CpAcceptableViewModelSelector' )pAbstractPlugin& 'oPluginManager% /oControllerManager$ ?oAbstractRestfulController# 1oAbstractController" =oAbstractActionController! 5nSendResponseListener  'nRouteListener nMvcEvent 3nModuleRouteListener -nDispatchListener #nApplication 'mModuleManager #mModuleEvent -lRuntimeException =lInvalidArgumentException +kServiceListener 3kOnBootstrapListener 9kModuleResolverListener 5kModuleLoaderListener% KkModuleDependencyCheckerListener! CkLocatorRegistrationListener +kListenerOptions #kInitTrigger =kDefaultListenerAggregate )kConfigListener 1kAutoloaderListener -kAbstractListener -jRuntimeException&
 MjMissingDependencyModuleException	 =jInvalidArgumentException -iRuntimeException
 hPart
 hMime hMessage hDecode gValue 'gMemoryManager -fRuntimeException  =fInvalidArgumentException   B mR>rL*xV=wUH7&r\N@





v
Y
8

							s	a	S	>	-		~Y7r`L9&`@{aCpN2iF&{R4|YB                     'HttpUserAgent ?PhpReferenceCompatibility )SessionStorage 3SessionArrayStorage Factory %ArrayStorage! CAbstractSessionArrayStorage )StorageFactory 7SessionManagerFactory 5SessionConfigFactory% KContainerAbstractServiceFactory )MongoDBOptions MongoDB 7DbTableGatewayOptions )DbTableGateway Cache -RuntimeException
 =InvalidArgumentException	 9BadMethodCallException ?PhpReferenceCompatibility )StandardConfig 'SessionConfig )ValidatorChain )SessionManager Container +AbstractManager /AbstractContainer  ?LazyServiceFactoryFactory 1LazyServiceFactory~ =ServiceNotFoundException } AServiceNotCreatedException| -RuntimeException!{ CInvalidServiceNameExceptionz =InvalidArgumentException y ACircularReferenceException&x MCircularDependencyFoundExceptionw 5DiServiceInitializerv -DiServiceFactoryu 9DiInstanceManagerProxyt =DiAbstractServiceFactorys )ServiceManagerr Configq 7AbstractPluginManagerp -RuntimeExceptiono =InvalidArgumentExceptionn 9BadMethodCallExceptionm 7ReflectionReturnValuel 3ReflectionParameterk -ReflectionMethodj 1ReflectionFunctioni +ReflectionClassh Prototype
g Nodef -AbstractFunctione Prototyped Parameterc !Definitionb Callbacka -RuntimeException` =InvalidArgumentException_ 9BadMethodCallException^ !Reflection] !Definition\ Cache[ )AbstractServerZ -RuntimeExceptionY =InvalidArgumentException!X CExtensionNotLoadedExceptionW !SerializerV 5AdapterPluginManagerU #WddxOptions
T WddxS 3PythonPickleOptionsR %PythonPickleQ %PhpSerializeP PhpCodeO MsgPackN #JsonOptions
M JsonL IgBinaryK )AdapterOptionsJ +AbstractAdapterI )UploadProgressH +SessionProgressG #ApcProgressF 7AbstractUploadHandlerE #ProgressBarD -RuntimeExceptionC ;PhpEnvironmentExceptionB 3OutOfRangeExceptionA =InvalidArgumentException@ -RuntimeException? =InvalidArgumentException> JsPush= JsPull< Console; +AbstractAdapter: =InvalidArgumentException
9 Role
8 Rbac7 %AbstractRole6 -AbstractIterator5 Registry4 #GenericRole3 +GenericResource2 -RuntimeException1 =InvalidArgumentException	0 Acl/ Sliding. Jumping- Elastic	, All+ =UnexpectedValueException* -RuntimeException) =InvalidArgumentException( ?SerializableLimitIterator!' CScrollingStylePluginManager& Paginator% Factory$ 5AdapterPluginManager# +DbSelectFactory" =UnexpectedValueException! -RuntimeException  =InvalidArgumentException
 Null Iterator )DbTableGateway DbSelect %ArrayAdapter %HelperConfig =DefaultNavigationFactory" EConstructedNavigationFactory ?AbstractNavigationFactory	 Uri	 Mvc %AbstractPage 5~OutOfBoundsException =~InvalidArgumentException +~DomainException 9~BadMethodCallException !}Navigation /}AbstractContainer 5|SendResponseListener #{ViewManager 7{RouteNotFoundStrategy
 ;{InjectViewModelListener	 9{InjectTemplateListener   S {k\<tcG*zdVE1	aA(sXB#





}
j
W
E
*
						x	i	[	I	9	"	}o];ZD"qO?,rT9~jO>-n`M<0"wW>-~oaS   
? Ean5
> Ean2= Ean18< Ean14; Ean13: Ean129 Code93ext8 Code937 Code39ext6 Code395 /Code25interleaved4 Code253 Code1282 Codabar1 +AbstractAdapter0 9ValidatorPluginManager/ )ValidatorChain	. Uri- %StringLength
, Step+ +StaticValidator* Regex) NotEmpty( LessThan' %IsInstanceOf
& Isbn% Ip$ InArray# Identical
" Iban! Hostname	  Hex #GreaterThan Explode %EmailAddress Digits DateStep
 Date
 Csrf !CreditCard Callback Between Barcode /AbstractValidator !UriFactory	 Uri Mailto
 Http
 File ;InvalidUriPartException 3InvalidUriException =InvalidArgumentException =UnexpectedValueException
 /OverflowException	 5OutOfBoundsException ?InvalidDecoratorException =InvalidArgumentException Unicode Blank Ascii Table	 Row -DecoratorManager  Column MultiByte~ Figlet} =UnexpectedValueException| -RuntimeException{ =InvalidArgumentExceptionz =UnexpectedValueExceptiony -RuntimeExceptionx /OverflowExceptionw 5OutOfBoundsExceptionv =InvalidArgumentExceptionu %ModuleLoader$t IAbstractHttpControllerTestCase s AAbstractControllerTestCase'r OAbstractConsoleControllerTestCaseq 5OutOfBoundsException!p CInvalidElementNameException#o GInvalidAttributeNameExceptionn =InvalidArgumentExceptionm ItemList
l Itemk Cloudj 9DecoratorPluginManageri =InvalidArgumentExceptionh HtmlTagg HtmlCloudf #AbstractTage /AbstractDecoratord 'AbstractCloudc Nativeb MbString
a Intl` Iconv_ 7AbstractStringWrapper^ 5SerializableStrategy] +DefaultStrategy\ +ClosureStrategy[ =OptionalParametersFilterZ ;NumberOfParameterFilterY /MethodMatchFilterX IsFilterW HasFilterV GetFilterU +FilterCompositeT -HydratorListenerS %HydrateEventR %ExtractEventQ /AggregateHydratorP !ReflectionO )ObjectPropertyN 7HydratorPluginManagerM %ClassMethodsL /ArraySerializableK -AbstractHydratorJ -RuntimeExceptionI )LogicExceptionH =InvalidCallbackExceptionG =InvalidArgumentException!F CExtensionNotLoadedExceptionE +DomainExceptionD 9BadMethodCallExceptionC ?PhpReferenceCompatibilityB 9PhpLegacyCompatibilityA #StringUtils@ SplStack? SplQueue> -SplPriorityQueue= Response< Request; 'PriorityQueue: !Parameters9 Message
8 Glob7 %ErrorHandler6 DateTime5 +CallbackHandler4 !ArrayUtils3 !ArrayStack2 #ArrayObject1 +AbstractOptions0 1DefaultComplexType/ Composite. 3ArrayOfTypeSequence- 1ArrayOfTypeComplex, AnyType!+ CAbstractComplexTypeStrategy* 9DocumentLiteralWrapper) =UnexpectedValueException( -RuntimeException' =InvalidArgumentException!& CExtensionNotLoadedException% 9BadMethodCallException$ Local# DotNet" Common
! Wsdl  Server Client %AutoDiscover 3ReflectionDiscovery !RemoteAddr   m ygWF3%	`9waPC1vV=veR>&






y
f
T
@
.

							|	g	M	0		s^C'|iS@-mWA$oM3r]J<-yaM=)~pbI+m     o =UnexpectedValueExceptionn -RuntimeExceptionm =InvalidArgumentExceptionl -RuntimeExceptionk =InvalidArgumentException j ACredentialTreatmentAdapteri 5CallbackCheckAdapterh +AbstractAdapter
g Ldap
f Httpe Digestd DbTablec +AbstractAdapterb Structa String	` Nil_ Integer^ Double] DateTime\ Boolean[ !BigIntegerZ Base64Y !ArrayValueX )AbstractScalarW 1AbstractCollectionV -RuntimeExceptionU =InvalidArgumentExceptionT 9BadMethodCallExceptionS SystemR FaultQ Cache
P HttpO Stdin
N HttpM XmlWriterL #DomDocumentK /AbstractGeneratorJ )ValueExceptionI -RuntimeExceptionH =InvalidArgumentExceptionG 9BadMethodCallExceptionF #ServerProxyE 3ServerIntrospectionD -RuntimeExceptionC =InvalidArgumentExceptionB 3IntrospectExceptionA 'HttpException@ )FaultException? Server> Response= Request< Fault; Client: 'AbstractValue9 3PhpRendererStrategy8 %JsonStrategy7 %FeedStrategy6 /TemplatePathStack5 3TemplateMapResolver4 /AggregateResolver3 #PhpRenderer2 %JsonRenderer1 %FeedRenderer0 +ConsoleRenderer/ ViewModel. JsonModel- FeedModel, %ConsoleModel+ ViewEvent
* View) Variables( Stream' 3HelperPluginManager& +IdentityFactory% 7FlashMessengerFactory$ Registry# Container" 1AbstractStandalone! /AbstractContainer  #AclListener Sitemap 'PluginManager
 Menu Links #Breadcrumbs )AbstractHelper )AbstractHelper ViewModel	 Url ServerUrl 3RenderToPlaceholder -RenderChildModel #Placeholder #PartialLoop Partial /PaginationControl !Navigation Layout
 Json %InlineScript Identity
 'HtmlQuicktime	 HtmlPage !HtmlObject HtmlList HtmlFlash HeadTitle HeadStyle !HeadScript HeadMeta HeadLink  Gravatar )FlashMessenger~ EscapeUrl} EscapeJs| )EscapeHtmlAttr{ !EscapeHtmlz EscapeCssy Doctypex #DeclareVarsw Cyclev BasePathu 3AbstractHtmlElementt )AbstractHelpers -RuntimeExceptionr 9InvalidHelperExceptionq =InvalidArgumentExceptionp +DomainExceptiono 9BadMethodCallExceptionn Versionm Priority	l Lock Lastmodj !Changefreqi WordCounth !UploadFileg Upload
f Size
e Sha1d NotExistsc MimeType	b Md5a IsImage` %IsCompressed_ ImageSize
^ Hash] FilesSize\ Extension[ ExistsZ +ExcludeMimeTypeY -ExcludeExtensionX Crc32W CountV -RuntimeException#U GInvalidMagicMimeFileExceptionT =InvalidArgumentException!S CExtensionNotLoadedExceptionR 9BadMethodCallExceptionQ %RecordExistsP )NoRecordExistsO !AbstractDb
N Upce
M Upca
L SsccK RoyalmailJ PostnetI PlanetH LeitcodeG Itf14
F IssnE +IntelligentmailD IdentcodeC Gtin14B Gtin13A Gtin12
@ Ean8   T wgE+	mK.jZK=/!jE#jP.




n
Q
7
						~	i	Q	9		m`K7*pN>'iQ:eL2nI&nM-kT5 taT                        		 Tag ReturnTag ParamTag !LicenseTag AuthorTag )ValueGenerator 9PropertyValueGenerator /PropertyGenerator 1ParameterGenerator  +MethodGenerator 7FileGeneratorRegistry~ 'FileGenerator} /DocBlockGenerator| )ClassGenerator{ 'BodyGeneratorz ;AbstractMemberGeneratory /AbstractGeneratorx -RuntimeExceptionw =InvalidArgumentExceptionv 9BadMethodCallExceptionu ;GenericAnnotationParsert =DoctrineAnnotationParsers /AnnotationManagerr 5AnnotationCollectionq -RuntimeExceptionp ;NoFontProvidedExceptiono =InvalidArgumentExceptionn ?ImageNotLoadableException!m CExtensionNotLoadedExceptionl +DomainExceptionk ReCaptchaj Imagei Figleth Factory
g Dumbf %AbstractWorde +AbstractAdapterd ! Serializerc ' PluginOptionsb - OptimizeByFactora + IgnoreUserAbort` - ExceptionHandler_ 5 ClearExpiredByFactor^ ) AbstractPlugin] PostEvent\ 'PluginManager[ )ExceptionEventZ EventY %CapabilitiesX 5AdapterPluginManagerW 'ZendServerShmV )ZendServerDiskU 'XCacheOptionsT XCacheS +WinCacheOptionsR WinCacheQ )SessionOptionsP SessionO 5RedisResourceManagerN %RedisOptionsM RedisL 'MemoryOptionsK MemoryJ =MemcachedResourceManagerI -MemcachedOptionsH MemcachedG +KeyListIteratorF /FilesystemOptionsE 1FilesystemIteratorD !FilesystemC !DbaOptionsB #DbaIterator	A Dba@ !ApcOptions? #ApcIterator	> Apc= )AdapterOptions< 1AbstractZendServer; +AbstractAdapter: 3StorageCacheFactory(9 QStorageCacheAbstractServiceFactory8 )StorageFactory7 5PatternPluginManager6 )PatternFactory5 )PatternOptions4 #OutputCache3 #ObjectCache2 !ClassCache1 %CaptureCache0 'CallbackCache/ +AbstractPattern$. IUnsupportedMethodCallException- =UnexpectedValueException, -RuntimeException+ 3OutOfSpaceException* 3MissingKeyException ) AMissingDependencyException( )LogicException' =InvalidArgumentException!& CExtensionNotLoadedException% 9BadMethodCallException$ =UnexpectedValueException# -RuntimeException" 3OutOfRangeException! =InvalidArgumentException	  Svg	 Pdf Image -AbstractRenderer -RuntimeException 3OutOfRangeException =InvalidArgumentException! CExtensionNotLoadedException  ABarcodeValidationException
 Upce
 Upca Royalmail Postnet Planet Leitcode Itf14 Identcode Error
 Ean8
 Ean5
 Ean2 Ean13
 Code39	 /Code25interleaved Code25 Code128 Codabar )AbstractObject =UnexpectedValueException -RuntimeException ?RendererCreationException 3OutOfRangeException  =InvalidArgumentException 7RendererPluginManager~ 3ObjectPluginManager} Barcode| )Authentication{ Sessionz 'NonPersistenty Chainx =UnexpectedValueExceptionw -RuntimeExceptionv =InvalidArgumentExceptionu Resultt 7AuthenticationServices -RuntimeExceptionr =InvalidArgumentExceptionq %FileResolverp )ApacheResolver   ` v^B(zgT@ t[>$xjTD3}i\NA3 







q
b
K
<
.

								i	Q	C	2	$		hF,	yeP<)tc<qaQ>*m^N;'tU;	zX>
t`  4 !6ViewObject3 '6TriggerObject2 #6TableObject1 -6ConstraintObject0 36ConstraintKeyObject/ %6ColumnObject. 36AbstractTableObject- 5Metadata, =4UnexpectedValueException+ -4RuntimeException* =4InvalidArgumentException) )4ErrorException( 3Profiler' 2SqlServer& 2Sqlite% 2Sql92$ !2Postgresql# 2Oracle" 2Mysql! 2IbmDb2  =1UnexpectedValueException -1RuntimeException 71InvalidQueryException* U1InvalidConnectionParametersException =1InvalidArgumentException )1ErrorException )0ErrorException /Statement /Sqlsrv /Result !/Connection .Statement .Result .Pgsql !.Connection --SqliteRowCounter --OracleRowCounter ,Statement ,Result	 ,Pdo !,Connection +Statement
 +Result
	 +Oci8 !+Connection *Statement *Result *Mysqli !*Connection )Statement )Result )IbmDb2  !)Connection +(AbstractFeature~ 1'StatementContainer} 1'ParameterContainer| 7'AdapterServiceFactory#{ G'AdapterAbstractServiceFactoryz 'Adaptery &Pkcs7x 5%PaddingPluginManagerw %Mcryptv -$RuntimeExceptionu =$InvalidArgumentExceptiont -#RuntimeExceptions =#InvalidArgumentExceptionr "PublicKeyq !"PrivateKeyp #"AbstractKeyo !!RsaOptions	n !Rsam '!DiffieHellmanl - RuntimeExceptionk = InvalidArgumentExceptionj Bcrypti Apacheh Scryptg SaltedS2kf Pbkdf2e -RuntimeExceptiond =InvalidArgumentExceptionc -RuntimeExceptionb =InvalidArgumentExceptiona Utils` 9SymmetricPluginManager
_ Hmac
^ Hash] #BlockCipher\ Select[ Number
Z LineY Confirm
X CharW )AbstractPromptV -RuntimeExceptionU =InvalidArgumentExceptionT 9BadMethodCallExceptionS ResponseR RequestQ GetoptP ConsoleO Xterm256N Utf8Heavy
M Utf8L DECSGK 'AsciiExtendedJ AsciiI )WindowsAnsiconH WindowsG VirtualF PosixE +AbstractAdapter
D Yaml	C XmlB PhpArray
A Json	@ Ini? )AbstractWriter
> Yaml	= Xml
< Json	; Ini: !Translator9 Token8 Queue7 Filter6 Constant5 -RuntimeException4 =InvalidArgumentException3 3WriterPluginManager2 3ReaderPluginManager1 Factory0 Config/ %ValueScanner
. Util- /TokenArrayScanner, +PropertyScanner+ -ParameterScanner* 'MethodScanner) +FunctionScanner( #FileScanner' +DocBlockScanner& -DirectoryScanner% 3DerivedClassScanner$ +ConstantScanner# %ClassScanner" 1CachingFileScanner! /AnnotationScanner  ?AggregateDirectoryScanner -RuntimeException =InvalidArgumentException 9BadMethodCallException !TagManager ThrowsTag ReturnTag #PropertyTag ParamTag MethodTag !LicenseTag !GenericTag AuthorTag 1PropertyReflection 3ParameterReflection -MethodReflection 1FunctionReflection )FileReflection 1DocBlockReflection +ClassReflection +
NameInformation -	RuntimeException
 =	InvalidArgumentException   Z gK8wcN>*
{hTF5'	lXE#	nUB1








t
V
@

						n	S	:			 lQ8a?wVC(mJ;%eC+vbQ/{[J:tZ            W -cRuntimeExceptionV =cInvalidArgumentExceptionU 9cBadMethodCallException	T bRss
S bAtomR 'bAbstractEntryQ !aCollectionP aCategoryO aAuthorN 1aAbstractCollectionM `ReaderL `FeedSetK 9`ExtensionPluginManagerJ -`ExtensionManagerI !`CollectionH %`AbstractFeedG '`AbstractEntryF _CallbackE %^SubscriptionD '^AbstractModelC -]RuntimeExceptionB =]InvalidArgumentExceptionA \Version@ !\Subscriber? %\PubSubHubbub> \Publisher= %\HttpResponse< -\AbstractCallback; -[RuntimeException: =[InvalidArgumentException9 9[BadMethodCallException8 )ZFilterIterator7 =YInvalidCallbackException6 =YInvalidArgumentException5 +YDomainException4 1XStaticEventManager3 1XSharedEventManager2 1XResponseCollection1 1XGlobalEventManager0 #XFilterChain/ %XEventManager. XEvent- ?XAbstractListenerAggregate, -WRuntimeException+ =WInvalidArgumentException* VEscaper) -URuntimeException( 9UBadMethodCallException' TQuery& TNodeList% TCss2Xpath$ /SGeneratorInstance# SGenerator" ;SDependencyInjectorProxy!! CRUndefinedReferenceException  -RRuntimeException =RMissingPropertyException =RInvalidPositionException ?RInvalidParamNameException =RInvalidCallbackException =RInvalidArgumentException 9RClassNotFoundException! CRCircularDependencyException QConsole PPhpClass +PInjectionMethod /ORuntimeDefinition 7OIntrospectionStrategy 1OCompilerDefinition +OClassDefinition /OBuilderDefinition +OArrayDefinition %NInstantiator NInject )MServiceLocator +MInstanceManager MDi
 )MDefinitionList	 MConfig LDebug /KTableGatewayEvent +JSequenceFeature /JRowGatewayFeature +JMetadataFeature 1JMasterSlaveFeature 5JGlobalAdapterFeature !JFeatureSet  %JEventFeature +JAbstractFeature~ -IRuntimeException} =IInvalidArgumentException| %HTableGateway{ 5HAbstractTableGatewayz %GPredicateSety GPredicatex GOperatorw GNotLikev GNotInu GLiteral
t GLikes GIsNullr GIsNotNullq GInp !GExpressiono GBetweenn FSqlServerm +FSelectDecoratorl +ESelectDecoratork EOraclej +DSelectDecoratori DMysqlh 5CCreateTableDecoratorg BPlatformf -BAbstractPlatforme -ARuntimeExceptiond =AInvalidArgumentExceptionc @UniqueKeyb !@PrimaryKeya !@ForeignKey` @Check_ 1@AbstractConstraint^ ?Varchar
] ?Time
\ ?Text[ ?IntegerZ ?FloatY ?Decimal
X ?DateW ?Column
V ?CharU ?Boolean
T ?BlobS !?BigIntegerR >DropTableQ #>CreateTableP !>AlterTableO =WhereN =UpdateM +=TableIdentifier	L =SqlK =SelectJ =LiteralI =InsertH =HavingG !=ExpressionF =DeleteE #=AbstractSqlD !<FeatureSetC +<AbstractFeatureB -;RuntimeExceptionA =;InvalidArgumentException@ !:RowGateway? 1:AbstractRowGateway> -9RuntimeException= =9InvalidArgumentException< 8ResultSet; 18HydratingResultSet: /8AbstractResultSet9 /7SqlServerMetadata8 )7SqliteMetadata7 17PostgresqlMetadata6 '7MysqlMetadata5 )7AbstractSource   } {m^PA3$wWI4$paSD6'
{mYL6&dV6





v
d
S
A
/

 							y	f	Y	K	6	$	fYM@3#	cI8'jQ8 qL+aK:*u\I9(seUF7"}         
 Time Textarea
 Text
 Submit	 Select Range Radio Password Number 'MultiCheckbox #MonthSelect Month Image  Hidden
 File~ Email} )DateTimeSelect| 'DateTimeLocal{ DateTimez !DateSelect
y Date
x Csrfw Colorv !Collectionu Checkboxt Captchas Buttonr Validatorq +ValidationGroup
p Typeo Requiredn Optionsm Object
l Namek #InputFilterj Inputi Hydratorh ;FormAnnotationsListenerg Flagsf Filtere Excluded %ErrorMessage c AElementAnnotationsListenerb )ComposedObjecta !Attributes` /AnnotationBuilder_ !AllowEmpty^ =AbstractStringAnnotation%] KAbstractArrayOrStringAnnotation\ ;AbstractArrayAnnotation![ CAbstractAnnotationsListenerZ 7UnderscoreToSeparatorY -UnderscoreToDashX 7UnderscoreToCamelCaseW 5SeparatorToSeparatorV +SeparatorToDashU 5SeparatorToCamelCaseT -DashToUnderscoreS +DashToSeparatorR +DashToCamelCaseQ 7CamelCaseToUnderscoreP 5CamelCaseToSeparatorO +CamelCaseToDashN /AbstractSeparatorM UpperCaseL %RenameUploadK RenameJ LowerCaseI EncryptH DecryptG -RuntimeExceptionF =InvalidArgumentException!E CExtensionNotLoadedExceptionD +DomainExceptionC 9BadMethodCallExceptionB OpensslA #BlockCipher	@ Zip	? Tar> Snappy	= Rar	< Lzf; Gz	: Bz2"9 EAbstractCompressionAlgorithm8 %UriNormalize7 StripTags6 'StripNewlines5 !StringTrim4 'StringToUpper3 'StringToLower2 %StaticFilter1 RealPath0 #PregReplace
/ Null	. Int- Inflector, %HtmlEntities+ 3FilterPluginManager* #FilterChain) Encrypt	( Dir' Digits& Decrypt% !Decompress$ /DateTimeFormatter# Compress" Callback! Boolean  BaseName +AbstractUnicode )AbstractFilter Transfer -RuntimeException ;PhpEnvironmentException =InvalidArgumentException 9BadMethodCallException 9ValidatorPluginManager
 Http 3FilterPluginManager +AbstractAdapter -RuntimeException =InvalidArgumentException 9BadMethodCallException %PhpClassFile -ClassFileLocator Source %AbstractAtom	 Rss !AtomSource
 Atom
 %AbstractAtom		 ~Rss #~AtomDeleted
 ~Atom }Deleted -|AbstractRenderer {Entry zEntry yEntry
 xFeed  xEntry
 wFeed~ wEntry
} vFeed| vEntry{ uEntry
z tFeedy -sAbstractRendererx -rRuntimeExceptionw =rInvalidArgumentExceptionv 9rBadMethodCallExceptionu qWritert qVersions qSourcer #qFeedFactory
q qFeedp 9qExtensionPluginManagero -qExtensionManagern qEntrym qDeletedl %qAbstractFeed	k pUrij oSource	i nRss
h nAtomg %nAbstractFeedf mEntrye lEntry
d kFeedc jEntry
b iFeeda iEntry
` hFeed_ hEntry
^ gFeed] gEntry\ fEntry
[ eFeedZ eEntryY %dAbstractFeedX 'dAbstractEntry   k cC*zfQ;#iVD0
s`M<( |n^O<






x
b
Q
@
.
 

					y	_	N	,	nTD-nR9 	rdTC5v`N9)~mSB/!mM+bJ2 k               7 !TextDomain6 3LoaderPluginManager5 PhpArray	4 Ini3 Gettext2 %NumberFormat1 Alpha0 Alnum/ )AbstractLocale. -RuntimeException- )RangeException, )ParseException+ 5OutOfBoundsException* =InvalidArgumentException!) CExtensionNotLoadedException( Stream' Response& Request% 'RemoteAddress$ -RuntimeException# =InvalidArgumentException" 9LanguageFieldValuePart! 9EncodingFieldValuePart  7CharsetFieldValuePart 5AcceptFieldValuePart 9AbstractFieldValuePart +WWWAuthenticate Warning	 Via
 Vary UserAgent Upgrade -TransferEncoding Trailer TE SetCookie Server !RetryAfter Refresh Referer Range 1ProxyAuthorization /ProxyAuthenticate Pragma #MaxForwards
 Location	 %LastModified KeepAlive /IfUnmodifiedSince IfRange #IfNoneMatch +IfModifiedSince IfMatch
 Host 1GenericMultiHeader  'GenericHeader
 From~ Expires} Expect
| Etag
{ Datez Cookiey #ContentTypex ;ContentTransferEncodingw %ContentRangev !ContentMD5u +ContentLocationt 'ContentLengths +ContentLanguager +ContentEncodingq 1ContentDispositionp !Connectiono %CacheControln 'Authorizationm 1AuthenticationInfol Allow	k Agej %AcceptRangesi )AcceptLanguageh )AcceptEncodingg 'AcceptCharsetf Accepte -AbstractLocationd %AbstractDatec )AbstractAcceptb -RuntimeExceptiona 3OutOfRangeException` =InvalidArgumentException_ -RuntimeException^ 3OutOfRangeException] =InvalidArgumentException\ Cookies[ -TimeoutExceptionZ -RuntimeExceptionY 3OutOfRangeExceptionX =InvalidArgumentExceptionW ;InitializationException
V TestU SocketT Proxy
S CurlR ResponseQ RequestP HeadersO %HeaderLoaderN CookiesM %ClientStaticL ClientK +AbstractMessageJ %HelperConfigI 9FormFileUploadProgressH ;FormFileSessionProgressG 3FormFileApcProgressF ReCaptchaE ImageD Figlet
C DumbB %AbstractWordA FormWeek@ FormUrl? FormTime> %FormTextarea= FormText< FormTel; !FormSubmit: !FormSelect9 !FormSearch8 FormRow7 FormReset6 FormRange5 FormRadio4 %FormPassword3 !FormNumber2 /FormMultiCheckbox1 +FormMonthSelect0 FormMonth/ FormLabel. FormInput- FormImage, !FormHidden+ FormFile* FormEmail) /FormElementErrors( #FormElement' 1FormDateTimeSelect& /FormDateTimeLocal% %FormDateTime$ )FormDateSelect# FormDate" FormColor! )FormCollection  %FormCheckbox #FormCaptcha !FormButton
 Form )AbstractHelper =UnexpectedValueException ;InvalidElementException =InvalidArgumentException! CExtensionNotLoadedException +DomainException 9BadMethodCallException 1FormElementManager  AFormAbstractServiceFactory
 Form Fieldset Factory Element
 Week	 Url   c ~l]P;)s_F'p_QC#zj]E.tfM:





i
J
7
#
							z	i	Y	@	,		hL2W8m_L@*nQ>+ raSC3u\:zcG1
c     b =InvalidArgumentExceptiona 9BadMethodCallException` To_ Subject^ Sender] ReplyTo\ Received[ #MimeVersionZ MessageIdY !HeaderWrapX %HeaderLoaderW 1GenericMultiHeaderV 'GenericHeader
U From
T DateS #ContentTypeR ;ContentTransferEncodingQ Cc	P BccO 3AbstractAddressListN -RuntimeExceptionM 5OutOfBoundsExceptionL =InvalidArgumentExceptionK +DomainExceptionJ 9BadMethodCallExceptionI StorageH MessageG HeadersF #AddressListE AddressD 'FirePhpBridgeC +ChromePhpBridgeB #ZendMonitorA Syslog@ Stream
? Null> MongoDB
= Mock
< Mail; 9FormatterPluginManager: FirePhp9 )FingersCrossed8 3FilterPluginManager7 Db6 ChromePhp5 )AbstractWriter4 RequestId3 Backtrace2 3WriterPluginManager1 9ProcessorPluginManager0 5LoggerServiceFactory"/ ELoggerAbstractServiceFactory. Logger	- Xml, Simple+ FirePhp* -ExceptionHandler) %ErrorHandler( Db' ChromePhp
& Base% Validator$ )SuppressFilter# Regex" Priority
! Mock  -RuntimeException =InvalidArgumentException /SecurityException -RuntimeException 7PluginLoaderException' OMissingResourceNamespaceException 5InvalidPathException =InvalidArgumentException +DomainException 9BadMethodCallException 1StandardAutoloader /PluginClassLoader -ModuleAutoloader 1ClassMapAutoloader /AutoloaderFactory OpenLdap +ActiveDirectory OpenLdap +ActiveDirectory OpenLdap +ActiveDirectory %AbstractItem
 OpenLdap	 !eDirectory +ActiveDirectory Schema RootDse !Collection -ChildrenIterator %AbstractNode Encoder +FilterException  %StringFilter OrFilter~ NotFilter} !MaskFilter| AndFilter{ 7AbstractLogicalFilterz )AbstractFiltery 'LdapExceptionx =InvalidArgumentExceptionw 9BadMethodCallExceptionv =UnexpectedValueExceptionu =InvalidArgumentExceptiont 1ConverterExceptions Converterr +DefaultIterator
q Node
p Ldapo Filtern Dnm !Collectionl Attributek Service
j Http
i Httph -RuntimeExceptiong =InvalidArgumentExceptionf 'HttpExceptione )ErrorException	d Smdc Serverb Responsea Request` Error_ Client^ Cache] -RuntimeException\ 1RecursionException[ =InvalidArgumentExceptionZ 9BadMethodCallException
Y Json
X ExprW EncoderV DecoderU -RuntimeExceptionT =InvalidArgumentExceptionS =InputFilterPluginManagerR #InputFilterQ InputP FileInputO FactoryN 7CollectionInputFilterM +BaseInputFilterL !ArrayInputK %HelperConfigJ +TranslatePluralI TranslateH PluralG %NumberFormatF !DateFormatE )CurrencyFormatD =AbstractTranslatorHelperC PostCodeB #PhoneNumber	A Int@ Float? DateTime> Alpha= Alnum< Symbol
; Rule: Parser9 =TranslatorServiceFactory8 !Translator   X eK:+wY?. {mXF8#w^<" nWH8'




q
U
=

					a	D	+		weN0`C+fD  rV0eVD3#q[G+vU-uX                              { 3EventManagerFactory+z WDiStrictAbstractServiceFactoryFactory$y IDiStrictAbstractServiceFactory!x CDiServiceInitializerFactoryw DiFactory%v KDiAbstractServiceFactoryFactory$u IControllerPluginManagerFactoryt ;ControllerLoaderFactorys ?ConsoleViewManagerFactoryr 7ConsoleAdapterFactoryq 'ConfigFactoryp 1ApplicationFactory"o EAbstractPluginManagerFactoryn -SimpleRouteStackm 1RoutePluginManagerl !RouteMatchk %PriorityListj Wildcardi )TreeRouteStack#h GTranslatorAwareTreeRouteStackg Segmentf Schemee !RouteMatchd Regexc Query
b Parta Method` Literal_ Hostname^ Chain] -RuntimeException\ =InvalidArgumentException[ -SimpleRouteStackZ SimpleY !RouteMatchX Catchall W ASimpleStreamResponseSenderV /SendResponseEvent"U EPhpEnvironmentResponseSenderT 1HttpResponseSenderS 7ConsoleResponseSenderR 9AbstractResponseSenderQ !TranslatorP -RuntimeExceptionO ;MissingLocatorExceptionN 9InvalidPluginException M AInvalidControllerExceptionL =InvalidArgumentExceptionK +DomainExceptionJ +IdentityFactoryI )ForwardFactory	H UrlG RedirectF +PostRedirectGetE ParamsD LayoutC IdentityB ForwardA )FlashMessenger@ 3FilePostRedirectGet!? CAcceptableViewModelSelector> )AbstractPlugin= 'PluginManager< /ControllerManager; ?AbstractRestfulController: 1AbstractController9 =AbstractActionController8 5SendResponseListener7 'RouteListener6 MvcEvent5 3ModuleRouteListener4 -DispatchListener3 #Application2 'ModuleManager1 #ModuleEvent0 -RuntimeException/ =InvalidArgumentException. +ServiceListener- 3OnBootstrapListener, 9ModuleResolverListener+ 5ModuleLoaderListener%* KModuleDependencyCheckerListener!) CLocatorRegistrationListener( +ListenerOptions' #InitTrigger& =DefaultListenerAggregate% )ConfigListener$ 1AutoloaderListener# -AbstractListener" -RuntimeException&! MMissingDependencyModuleException  =InvalidArgumentException -RuntimeException
 Part
 Mime Message Decode Value 'MemoryManager -RuntimeException =InvalidArgumentException Movable Locked -AccessController /AbstractContainer !HashTiming
 Rand -RuntimeException =InvalidArgumentException +DomainException -RuntimeException =InvalidArgumentException ;DivisionByZeroException
 !BigInteger	 5AdapterPluginManager	 Gmp Bcmath #SmtpOptions
 Smtp Sendmail #FileOptions
 File -RuntimeException  =InvalidArgumentException Maildir
~ File} -RuntimeException| =InvalidArgumentException
{ File
z Mboxy Maildirx -RuntimeExceptionw 5OutOfBoundsExceptionv =InvalidArgumentException
u Pop3
t Parts Message
r Mboxq Maildir
p Imapo Foldern +AbstractStoragem Plainl Logink Crammd5j -RuntimeExceptioni =InvalidArgumentExceptionh /SmtpPluginManager
g Smtp
f Pop3
e Imapd -AbstractProtocolc -RuntimeException   ) \>}]?wV:qG&lL+





q
O
1


					j	X	@	.	 zgBtR8
q`P@uVA(r\?1qbN:xjW>"pQA)   
 )ServiceManager	 Config 7AbstractPluginManager -RuntimeException =InvalidArgumentException 9BadMethodCallException 7ReflectionReturnValue 3ReflectionParameter -ReflectionMethod 1ReflectionFunction  +ReflectionClass Prototype
~ Node} -AbstractFunction| Prototype{ Parameterz !Definitiony Callbackx -RuntimeExceptionw =InvalidArgumentExceptionv 9BadMethodCallExceptionu !Reflectiont !Definitions Cacher )AbstractServerq -RuntimeExceptionp =InvalidArgumentException!o CExtensionNotLoadedExceptionn !Serializerm 5AdapterPluginManagerl #WddxOptions
k Wddxj 3PythonPickleOptionsi %PythonPickleh %PhpSerializeg PhpCodef MsgPacke #JsonOptions
d Jsonc IgBinaryb )AdapterOptionsa +AbstractAdapter` )
UploadProgress_ +
SessionProgress^ #
ApcProgress] 7
AbstractUploadHandler\ #	ProgressBar[ -RuntimeExceptionZ ;PhpEnvironmentExceptionY 3OutOfRangeExceptionX =InvalidArgumentExceptionW -RuntimeExceptionV =InvalidArgumentExceptionU JsPushT JsPullS ConsoleR +AbstractAdapterQ =InvalidArgumentException
P Role
O RbacN %AbstractRoleM -AbstractIteratorL RegistryK #GenericRoleJ +GenericResourceI -RuntimeExceptionH =InvalidArgumentException	G  AclF SlidingE JumpingD Elastic	C AllB =UnexpectedValueExceptionA -RuntimeException@ =InvalidArgumentException? ?SerializableLimitIterator!> CScrollingStylePluginManager= Paginator< Factory; 5AdapterPluginManager: +DbSelectFactory9 =UnexpectedValueException8 -RuntimeException7 =InvalidArgumentException
6 Null5 Iterator4 )DbTableGateway3 DbSelect2 %ArrayAdapter1 %HelperConfig0 =DefaultNavigationFactory"/ EConstructedNavigationFactory. ?AbstractNavigationFactory	- Uri	, Mvc+ %AbstractPage* 5OutOfBoundsException) =InvalidArgumentException( +DomainException' 9BadMethodCallException& !Navigation% /AbstractContainer$ 5SendResponseListener# #ViewManager" 7RouteNotFoundStrategy! ;InjectViewModelListener  9InjectTemplateListener$ IInjectRoutematchParamsListener /ExceptionStrategy =DefaultRenderingStrategy ;CreateViewModelListener #ViewManager 7RouteNotFoundStrategy ;InjectViewModelListener& MInjectNamedConsoleParamsListener /ExceptionStrategy =DefaultRenderingStrategy ;CreateViewModelListener" EViewTemplatePathStackFactory$ IViewTemplateMapResolverFactory 3ViewResolverFactory 1ViewManagerFactory ;ViewJsonStrategyFactory ;ViewJsonRendererFactory =ViewHelperManagerFactory ;ViewFeedStrategyFactory ;ViewFeedRendererFactory ;ValidatorManagerFactory
 =TranslatorServiceFactory	 5ServiceManagerConfig 9ServiceListenerFactory+ WSerializerAdapterPluginManagerFactory 'RouterFactory ?RoutePluginManagerFactory +ResponseFactory )RequestFactory# GPaginatorPluginManagerFactory 5ModuleManagerFactory  ?InputFilterManagerFactory 9HydratorManagerFactory~ 9HttpViewManagerFactory} ?FormElementManagerFactory| 5FilterManagerFactory   < \8uR7iG-wX@qT>. 




z
`
>
							g	R	>	*	|bP>)	fD,|aK5lS:wdS1tV+nT2zk\M<               :Unicode :Blank :Ascii 9Table	 9Row -9DecoratorManager 9Column 8MultiByte 7Figlet =6UnexpectedValueException -6RuntimeException =6InvalidArgumentException =5UnexpectedValueException -5RuntimeException /5OverflowException 55OutOfBoundsException =5InvalidArgumentException %4ModuleLoader$ I3AbstractHttpControllerTestCase 
 A3AbstractControllerTestCase'	 O3AbstractConsoleControllerTestCase 52OutOfBoundsException! C2InvalidElementNameException# G2InvalidAttributeNameException =2InvalidArgumentException 1ItemList
 1Item 1Cloud 90DecoratorPluginManager  =/InvalidArgumentException .HtmlTag~ .HtmlCloud} #.AbstractTag| /.AbstractDecorator{ '.AbstractCloudz -Nativey -MbString
x -Intlw -Iconvv 7-AbstractStringWrapperu 5,SerializableStrategyt +,DefaultStrategys +,ClosureStrategyr =+OptionalParametersFilterq ;+NumberOfParameterFilterp /+MethodMatchFiltero +IsFiltern +HasFilterm +GetFilterl ++FilterCompositek -*HydratorListenerj %*HydrateEventi %*ExtractEventh /*AggregateHydratorg !)Reflectionf ))ObjectPropertye 7)HydratorPluginManagerd %)ClassMethodsc /)ArraySerializableb -)AbstractHydratora -(RuntimeException` )(LogicException_ =(InvalidCallbackException^ =(InvalidArgumentException!] C(ExtensionNotLoadedException\ +(DomainException[ 9(BadMethodCallExceptionZ ?'PhpReferenceCompatibilityY 9'PhpLegacyCompatibilityX #&StringUtilsW &SplStackV &SplQueueU -&SplPriorityQueueT &ResponseS &RequestR '&PriorityQueueQ !&ParametersP &Message
O &GlobN %&ErrorHandlerM &DateTimeL +&CallbackHandlerK !&ArrayUtilsJ !&ArrayStackI #&ArrayObjectH +&AbstractOptionsG 1%DefaultComplexTypeF %CompositeE 3%ArrayOfTypeSequenceD 1%ArrayOfTypeComplexC %AnyType!B C%AbstractComplexTypeStrategyA 9$DocumentLiteralWrapper@ =#UnexpectedValueException? -#RuntimeException> =#InvalidArgumentException!= C#ExtensionNotLoadedException< 9#BadMethodCallException; "Local: "DotNet9 "Common
8 !Wsdl7 !Server6 !Client5 %!AutoDiscover4 3 ReflectionDiscovery3 !RemoteAddr2 'HttpUserAgent1 ?PhpReferenceCompatibility0 )SessionStorage/ 3SessionArrayStorage. Factory- %ArrayStorage!, CAbstractSessionArrayStorage+ )StorageFactory* 7SessionManagerFactory) 5SessionConfigFactory%( KContainerAbstractServiceFactory' )MongoDBOptions& MongoDB% 7DbTableGatewayOptions$ )DbTableGateway# Cache" -RuntimeException! =InvalidArgumentException  9BadMethodCallException ?PhpReferenceCompatibility )StandardConfig 'SessionConfig )ValidatorChain )SessionManager Container +AbstractManager /AbstractContainer ?LazyServiceFactoryFactory 1LazyServiceFactory =ServiceNotFoundException  AServiceNotCreatedException -RuntimeException! CInvalidServiceNameException =InvalidArgumentException  ACircularReferenceException& MCircularDependencyFoundException 5DiServiceInitializer -DiServiceFactory 9DiInstanceManagerProxy =DiAbstractServiceFactory   y `>! vdPB4"ykUC1"	veU:*~n^K2$







y
c
C
							j	Z	G	4	&	zgSB5#}eH6'saO;(}mY>-iTE7 fI9&q\A$	y   T RRequestS RFaultR RClientQ 'RAbstractValueP 3QPhpRendererStrategyO %QJsonStrategyN %QFeedStrategyM /PTemplatePathStackL 3PTemplateMapResolverK /PAggregateResolverJ #OPhpRendererI %OJsonRendererH %OFeedRendererG +OConsoleRendererF NViewModelE NJsonModelD NFeedModelC %NConsoleModelB MViewEvent
A MView@ MVariables? MStream> 3MHelperPluginManager= +LIdentityFactory< 7LFlashMessengerFactory; KRegistry: KContainer9 1JAbstractStandalone8 /JAbstractContainer7 #IAclListener6 HSitemap5 'HPluginManager
4 HMenu3 HLinks2 #HBreadcrumbs1 )HAbstractHelper0 )GAbstractHelper/ FViewModel	. FUrl- FServerUrl, 3FRenderToPlaceholder+ -FRenderChildModel* #FPlaceholder) #FPartialLoop( FPartial' /FPaginationControl& !FNavigation% FLayout
$ FJson# %FInlineScript" FIdentity! 'FHtmlQuicktime  FHtmlPage !FHtmlObject FHtmlList FHtmlFlash FHeadTitle FHeadStyle !FHeadScript FHeadMeta FHeadLink FGravatar )FFlashMessenger FEscapeUrl FEscapeJs )FEscapeHtmlAttr !FEscapeHtml FEscapeCss FDoctype #FDeclareVars FCycle FBasePath 3FAbstractHtmlElement )FAbstractHelper
 -ERuntimeException	 9EInvalidHelperException =EInvalidArgumentException +EDomainException 9EBadMethodCallException DVersion CPriority	 CLoc CLastmod !CChangefreq  BWordCount !BUploadFile~ BUpload
} BSize
| BSha1{ BNotExistsz BMimeType	y BMd5x BIsImagew %BIsCompressedv BImageSize
u BHasht BFilesSizes BExtensionr BExistsq +BExcludeMimeTypep -BExcludeExtensiono BCrc32n BCountm -ARuntimeException#l GAInvalidMagicMimeFileExceptionk =AInvalidArgumentException!j CAExtensionNotLoadedExceptioni 9ABadMethodCallExceptionh %@RecordExistsg )@NoRecordExistsf !@AbstractDb
e ?Upce
d ?Upca
c ?Ssccb ?Royalmaila ?Postnet` ?Planet_ ?Leitcode^ ?Itf14
] ?Issn\ +?Intelligentmail[ ?IdentcodeZ ?Gtin14Y ?Gtin13X ?Gtin12
W ?Ean8
V ?Ean5
U ?Ean2T ?Ean18S ?Ean14R ?Ean13Q ?Ean12P ?Code93extO ?Code93N ?Code39extM ?Code39L /?Code25interleavedK ?Code25J ?Code128I ?CodabarH +?AbstractAdapterG 9>ValidatorPluginManagerF )>ValidatorChain	E >UriD %>StringLength
C >StepB +>StaticValidatorA >Regex@ >NotEmpty? >LessThan> %>IsInstanceOf
= >Isbn< >Ip; >InArray: >Identical
9 >Iban8 >Hostname	7 >Hex6 #>GreaterThan5 >Explode4 %>EmailAddress3 >Digits2 >DateStep
1 >Date
0 >Csrf/ !>CreditCard. >Callback- >Between, >Barcode+ />AbstractValidator* !=UriFactory	) =Uri( =Mailto
' =Http
& =File% ;<InvalidUriPartException$ 3<InvalidUriException# =<InvalidArgumentException" =;UnexpectedValueException! /;OverflowException  5;OutOfBoundsException ?;InvalidDecoratorException =;InvalidArgumentException   x  pV9$m_PB3$p`L;)v`C\/



l
>
				e	>	i>zP)pF%bAdH,V-
{X6rW<     L 5ePHPExcel_Shared_DateK =ePHPExcel_Shared_CodePageJ /ePHPExcel_SettingsI /ePHPExcel_RichText#H GePHPExcel_RichText_TextElementG 7ePHPExcel_RichText_RunF =ePHPExcel_ReferenceHelperE 5ePHPExcel_Reader_SYLKD 9ePHPExcel_Reader_OOCalcC 5ePHPExcel_Reader_HTMLB =ePHPExcel_Reader_GnumericA ?ePHPExcel_Reader_Exception@ 9ePHPExcel_Reader_Excel5 ? AePHPExcel_Reader_Excel5_RC4 > AePHPExcel_Reader_Excel5_MD5#= GePHPExcel_Reader_Excel5_Escher< ?ePHPExcel_Reader_Excel2007%; KePHPExcel_Reader_Excel2007_Theme%: KePHPExcel_Reader_Excel2007_Chart"9 EePHPExcel_Reader_Excel2003XML'8 OePHPExcel_Reader_DefaultReadFilter7 3ePHPExcel_Reader_CSV6 =ePHPExcel_Reader_Abstract5 3ePHPExcel_NamedRange4 1ePHPExcel_IOFactory3 1ePHPExcel_HashTable2 1ePHPExcel_Exception1 ?ePHPExcel_DocumentSecurity!0 CePHPExcel_DocumentProperties/ -ePHPExcel_Comment. )ePHPExcel_Chart- 5ePHPExcel_Chart_Title%, KePHPExcel_Chart_Renderer_jpgraph+ ;ePHPExcel_Chart_PlotArea* 7ePHPExcel_Chart_Legend) 7ePHPExcel_Chart_Layout( =ePHPExcel_Chart_Exception%' KePHPExcel_Chart_DataSeriesValues& ?ePHPExcel_Chart_DataSeries% 'ePHPExcel_Cell$ ;ePHPExcel_Cell_Hyperlink&# MePHPExcel_Cell_DefaultValueBinder"" EePHPExcel_Cell_DataValidation! 9ePHPExcel_Cell_DataType'  OePHPExcel_Cell_AdvancedValueBinder 5ePHPExcel_Calculation& MePHPExcel_Calculation_Token_Stack# GePHPExcel_Calculation_TextData& MePHPExcel_Calculation_Statistical# GePHPExcel_Calculation_MathTrig$ IePHPExcel_Calculation_LookupRef" EePHPExcel_Calculation_Logical$ IePHPExcel_Calculation_Functions# GePHPExcel_Calculation_Function' OePHPExcel_Calculation_FormulaToken( QePHPExcel_Calculation_FormulaParser$ IePHPExcel_Calculation_Financial+ WePHPExcel_Calculation_ExceptionHandler$ IePHPExcel_Calculation_Exception& MePHPExcel_Calculation_Engineering# GePHPExcel_Calculation_DateTime# GePHPExcel_Calculation_Database  AePHPExcel_CalcEngine_Logger. ]ePHPExcel_CalcEngine_CyclicReferenceStack) SePHPExcel_CachedObjectStorageFactory+ WePHPExcel_CachedObjectStorage_Wincache*
 UePHPExcel_CachedObjectStorage_SQLite3)	 SePHPExcel_CachedObjectStorage_SQLite* UePHPExcel_CachedObjectStorage_PHPTemp3 gePHPExcel_CachedObjectStorage_MemorySerialized- [ePHPExcel_CachedObjectStorage_MemoryGZip) SePHPExcel_CachedObjectStorage_Memory+ WePHPExcel_CachedObjectStorage_Memcache+ WePHPExcel_CachedObjectStorage_Igbinary+ WePHPExcel_CachedObjectStorage_DiscISAM, YePHPExcel_CachedObjectStorage_CacheBase&  MePHPExcel_CachedObjectStorage_APC 3ePHPExcel_Autoloader~ %dSecurityTest} 'dMultibyteTest| cSecurity{ -bRuntimeExceptionz =bInvalidArgumentExceptiony [Structx [String	w [Nilv [Integeru [Doublet [DateTimes [Booleanr ![BigIntegerq [Base64p ![ArrayValueo )[AbstractScalarn 1[AbstractCollectionm -ZRuntimeExceptionl =ZInvalidArgumentExceptionk 9ZBadMethodCallExceptionj YSystemi YFaulth YCache
g XHttpf WStdin
e WHttpd VXmlWriterc #VDomDocumentb /VAbstractGeneratora )UValueException` -URuntimeException_ =UInvalidArgumentException^ 9UBadMethodCallException] #TServerProxy\ 3TServerIntrospection[ -SRuntimeExceptionZ =SInvalidArgumentExceptionY 3SIntrospectExceptionX 'SHttpExceptionW )SFaultExceptionV RServerU RResponse   d  ^2m@  V1cB%oH&





]
3
					s	V	1	rK#V&g>qHm?g:rK"tR.                          0 ?ePHPExcel_Writer_PDF_tcPDF/ =ePHPExcel_Writer_PDF_mPDF . AePHPExcel_Writer_PDF_DomPDF- =ePHPExcel_Writer_PDF_Core, 5ePHPExcel_Writer_HTML+ ?ePHPExcel_Writer_Exception* 9ePHPExcel_Writer_Excel5) ?ePHPExcel_Writer_Excel5_Xf&( MePHPExcel_Writer_Excel5_Worksheet%' KePHPExcel_Writer_Excel5_Workbook#& GePHPExcel_Writer_Excel5_Parser!% CePHPExcel_Writer_Excel5_Font#$ GePHPExcel_Writer_Excel5_Escher'# OePHPExcel_Writer_Excel5_BIFFwriter" ?ePHPExcel_Writer_Excel2007*! UePHPExcel_Writer_Excel2007_WriterPart)  SePHPExcel_Writer_Excel2007_Worksheet( QePHPExcel_Writer_Excel2007_Workbook% KePHPExcel_Writer_Excel2007_Theme% KePHPExcel_Writer_Excel2007_Style+ WePHPExcel_Writer_Excel2007_StringTable' OePHPExcel_Writer_Excel2007_RelsVBA* UePHPExcel_Writer_Excel2007_RelsRibbon$ IePHPExcel_Writer_Excel2007_Rels' OePHPExcel_Writer_Excel2007_Drawing( QePHPExcel_Writer_Excel2007_DocProps, YePHPExcel_Writer_Excel2007_ContentTypes( QePHPExcel_Writer_Excel2007_Comments% KePHPExcel_Writer_Excel2007_Chart 3ePHPExcel_Writer_CSV =ePHPExcel_Writer_Abstract  AePHPExcel_WorksheetIterator 1ePHPExcel_Worksheet" EePHPExcel_Worksheet_SheetView$ IePHPExcel_Worksheet_RowIterator% KePHPExcel_Worksheet_RowDimension 9ePHPExcel_Worksheet_Row# GePHPExcel_Worksheet_Protection"
 EePHPExcel_Worksheet_PageSetup$	 IePHPExcel_Worksheet_PageMargins& MePHPExcel_Worksheet_MemoryDrawing, YePHPExcel_Worksheet_HeaderFooterDrawing% KePHPExcel_Worksheet_HeaderFooter  AePHPExcel_Worksheet_Drawing' OePHPExcel_Worksheet_Drawing_Shadow( QePHPExcel_Worksheet_ColumnDimension% KePHPExcel_Worksheet_CellIterator$ IePHPExcel_Worksheet_BaseDrawing#  GePHPExcel_Worksheet_AutoFilter* UePHPExcel_Worksheet_AutoFilter_Column/~ _ePHPExcel_Worksheet_AutoFilter_Column_Rule} )ePHPExcel_Style| ?ePHPExcel_Style_Supervisor{ ?ePHPExcel_Style_Protection!z CePHPExcel_Style_NumberFormaty 3ePHPExcel_Style_Fontx 3ePHPExcel_Style_Fill w AePHPExcel_Style_Conditionalv 5ePHPExcel_Style_Coloru 9ePHPExcel_Style_Borderst 7ePHPExcel_Style_Borders =ePHPExcel_Style_Alignment&r MePHPExcel_Shared_ZipStreamWrapper q AePHPExcel_Shared_ZipArchivep ?ePHPExcel_Shared_XMLWritero !etrendClassn ;ePHPExcel_Power_Best_Fit"m EePHPExcel_Polynomial_Best_Fit#l GePHPExcel_Logarithmic_Best_Fitk =ePHPExcel_Linear_Best_Fit#j GePHPExcel_Exponential_Best_Fiti /ePHPExcel_Best_Fith =ePHPExcel_Shared_TimeZoneg 9ePHPExcel_Shared_Stringf ePclZip$e IePHPExcel_Shared_PasswordHasherd ;ePHPExcel_Shared_OLEReadc 3ePHPExcel_Shared_OLEb ;ePHPExcel_Shared_OLE_PPS"a EePHPExcel_Shared_OLE_PPS_Root"` EePHPExcel_Shared_OLE_PPS_File,_ YePHPExcel_Shared_OLE_ChainedBlockStream ^ AeSingularValueDecomposition*] UePHPExcel_Shared_JAMA_QRDecomposition!\ CePHPExcel_Shared_JAMA_Matrix*[ UePHPExcel_Shared_JAMA_LUDecompositionZ ;eEigenvalueDecompositionY 7eCholeskyDecompositionX 5ePHPExcel_Shared_FontW 5ePHPExcel_Shared_FileV 9ePHPExcel_Shared_Excel5U 9ePHPExcel_Shared_Escher)T SePHPExcel_Shared_Escher_DggContainer9S sePHPExcel_Shared_Escher_DggContainer_BstoreContainer=R {ePHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSECQ ePHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE_Blip(P QePHPExcel_Shared_Escher_DgContainer6O mePHPExcel_Shared_Escher_DgContainer_SpgrContainerCN ePHPExcel_Shared_Escher_DgContainer_SpgrContainer_SpContainerM ;ePHPExcel_Shared_Drawing   | t]F1uWC/mSA-yjXE0#s`;%







w
g
P
A
2


								t	g	T	F	3	 	k[L:(xhUB/	p\G/qF9"tU7u_C(m@,|                                Z 'FileValidator Y AInvalidLineLengthExceptionX =InvalidFilesizeExceptionW 9FileValidatorExceptionV )FieldExceptionU /FileParserContextT !FileParser)S SUndefinedFileParserContextException"R EFileParserNotExistsExceptionQ 3FileParserException P AFileParserContextExceptionO =FileDataBackendContainerN +FileDataBackendM +RegExpURIPickerL /FallbackURIPickerK 1URIPickerExceptionJ %DOMURIPickerI 3DownloaderExceptionH !DownloaderG 7NoMainAgencyException-F [MissingAttributesDataBackendIOExceptionE ;InvalidContextExceptionD 9DataBackendIOExceptionC 5DataBackendExceptionB 7BankNotFoundExceptionA 5DataBackendContainer@ #DataBackend? 5DefaultConfiguration> 7ConfigurationRegistry= 5ConfigurationLocator< 9ConfigurationException; 'Configuration	: BAV'9 OUndefinedAttributeAgencyException8 +AgencyException
7 Bank6 Agency5 /InstantAutoloader4 1EmailValidatorTest3 +EmailLexerTests2 Parser1 LocalPart0 !DomainPart/ )EmailValidator. #EmailParser- !EmailLexer, 1EmailValidatorTest+ +EmailLexerTests* Parser) LocalPart( !DomainPart' )EmailValidator& #EmailParser% !EmailLexer$ Registry# Exception" Aggregate! Exception  String Search Issue ~String ~Search ~Exception }Tocode }Fromcode #|Interpreter #|Disassembly |Compiler |Asserter {Operator {Model zScalar !zRulerArray zContext	 zBag #yInterpreter yException yAsserter xRuler
 +xDynamicCallable	 xContext wAssert vIsotropic uException
 tDump sSoundness	 sLlk 'rDocumentation qUniform  qSampler qException~ qCoverage} /qBoundedExhaustive| pToken
{ pRulez !pRepetitiony !pInvocationx pEntryw pEkzitv 'pConcatenationu pChoicet pAnalyzers oTreeNoder oParser	q oLlkp oLexer	o nLl1n /mUnrecognizedTokenm +mUnexpectedToken
l mRulek mLexerj %mIllegalToken!i CmFinalStateHasNotBeenReachedh mExceptiong lPpf #kInterpretere #kDisassemblyd kCompilerc kAsserterb jOperatora jModel` iScalar_ !iRulerArray^ iContext	] iBag\ #hInterpreter[ hExceptionZ hAsserterY gRulerX +gDynamicCallableW gContextV fAssertU 5etestDataFileIteratorT 'ecomplexAssertS eComplexR 1eCellCollectionTestQ )eAutoFilterTestP !eColumnTestO eRuleTestN -eNumberFormatTestM eColorTestL %eTimeZoneTestK !eStringTestJ 1ePasswordHasherTestI eFontTestH eFileTestG eDateTestF %eCodePageTestE 3eReferenceHelperTestD !eLegendTestC !eLayoutTestB 5eDataSeriesValuesTestA eCellTest@ 'eHyperlinkTest? %eDataTypeTest> ;eAdvancedValueBinderTest= +eCalculationTest< %eTextDataTest; %eMathTrigTest: 'eLookupRefTest9 #eLogicalTest8 'eFunctionsTest7 'eFinancialTest6 +eEngineeringTest5 %eDateTimeTest4 )eAutoloaderTest3 %eMyReadFilter2 ePHPExcel1 3ePHPExcel_Writer_PDF   b vZB%wcM<%uN$oZE0s^I4







w
b
M
8
#
							{	f	Q	<	'	~iT?* mXC.p[F0q\G2oZE0s^I3	vaL7"wb       #ValidatorC3 #ValidatorC2 %ValidatorC1b #ValidatorC1  #ValidatorC0 %ValidatorB9b~ %ValidatorB9a} #ValidatorB9| #ValidatorB8{ #ValidatorB7z #ValidatorB6y #ValidatorB5x #ValidatorB4w #ValidatorB3v #ValidatorB2u #ValidatorB1t #ValidatorB0s #ValidatorA9r #ValidatorA8q #ValidatorA7p #ValidatorA6o #ValidatorA5n %ValidatorA4bm #ValidatorA4l #ValidatorA3k #ValidatorA2j #ValidatorA1i #ValidatorA0h #Validator99g #Validator98f #Validator97e #Validator96d #Validator95c #Validator94b #Validator93a #Validator92` #Validator91_ %Validator90g^ %Validator90e] %Validator90d\ %Validator90c[ #Validator90Z #Validator89Y #Validator88X %Validator87cW %Validator87aV #Validator87U #Validator86T #Validator85S %Validator84bR #Validator84Q %Validator83xP #Validator83O #Validator82N #Validator81M #Validator80L #Validator79K #Validator78J %Validator77aI #Validator77H #Validator76G #Validator75F #Validator74E #Validator73D #Validator72C #Validator71B #Validator70A %Validator69b@ #Validator69? #Validator68> #Validator67= #Validator66< #Validator65; #Validator64: #Validator639 #Validator628 #Validator617 #Validator606 #Validator595 #Validator584 #Validator573 #Validator562 #Validator551 #Validator540 #Validator53/ #Validator52. %Validator51x- #Validator51, #Validator50+ #Validator49* #Validator48) #Validator47( #Validator46' #Validator45& #Validator44% #Validator43$ #Validator42# #Validator41" #Validator40! #Validator39  #Validator38 #Validator37 #Validator36 #Validator35 #Validator34 #Validator33 #Validator32 #Validator31 #Validator30 #Validator29 #Validator28 #Validator27 #Validator26 #Validator25 #Validator24 #Validator23 #Validator22 #Validator21 #Validator20 #Validator19 #Validator18 #Validator17
 #Validator16	 #Validator15 #Validator14 #Validator13 #Validator11 #Validator10 #Validator09 #Validator08 #Validator07 #Validator06  #Validator05 #Validator04~ #Validator03} #Validator02| #Validator01{ #Validator00z 1ValidatorIterationy -ValidatorFactoryx )ValidatorChainw Validator&v MTransformationIterationValidator#u GValidatorOutOfBoundsExceptiont 1ValidatorExceptions 9ValidatorESERExceptionr /ContextValidation
q Lockp FileUtilo =NoTempDirectoryExceptionn 'LockExceptionm 'FileExceptionl BICUtilk %BAVExceptionj !MBEncodingi +ISO8859Encodingh 'IconvEncoding"g EUnsupportedEncodingExceptionf /EncodingExceptione Encodingd !UpdatePlanc 'LogUpdatePlanb 3AutomaticUpdatePlana )SQLDataBackend` 1StatementContainer_ ;PDODataBackendContainer^ )PDODataBackend] MetaData\ 3DoctrineDataBackend[ =DoctrineBackendContainer   6 mXC.qM: kQ,{cJ, hP:




z
c
N
4

							s	U	6		g6gE!jJ(cG/}dP:)~b;q\G2u`K6         #Validator18 #Validator17 #Validator16 #Validator15 #Validator14 #Validator13 #Validator11 #Validator10 #Validator09 #Validator08 #Validator07 #Validator06 #Validator05
 #Validator04	 #Validator03 #Validator02 #Validator01 #Validator00 1ValidatorIteration -ValidatorFactory )ValidatorChain Validator& MTransformationIterationValidator#  GValidatorOutOfBoundsException 1ValidatorException~ 9ValidatorESERException} /ContextValidation
| Lock{ FileUtilz =NoTempDirectoryExceptiony 'LockExceptionx 'FileExceptionw BICUtilv %BAVExceptionu !MBEncodingt +ISO8859Encodings 'IconvEncoding"r EUnsupportedEncodingExceptionq /EncodingExceptionp Encodingo !UpdatePlann 'LogUpdatePlanm 3AutomaticUpdatePlanl )SQLDataBackendk 1StatementContainerj ;PDODataBackendContaineri )PDODataBackendh MetaDatag 3DoctrineDataBackendf =DoctrineBackendContainere 'FileValidator d AInvalidLineLengthExceptionc =InvalidFilesizeExceptionb 9FileValidatorExceptiona )FieldException` /FileParserContext_ !FileParser)^ SUndefinedFileParserContextException"] EFileParserNotExistsException\ 3FileParserException [ AFileParserContextExceptionZ =FileDataBackendContainerY +FileDataBackendX +RegExpURIPickerW /FallbackURIPickerV 1URIPickerExceptionU %DOMURIPickerT 3DownloaderExceptionS !DownloaderR 7NoMainAgencyException-Q [MissingAttributesDataBackendIOExceptionP ;InvalidContextExceptionO 9DataBackendIOExceptionN 5DataBackendExceptionM 7BankNotFoundExceptionL 5DataBackendContainerK #DataBackendJ 5DefaultConfigurationI 7ConfigurationRegistryH 5ConfigurationLocatorG 9ConfigurationExceptionF 'Configuration	E BAV'D OUndefinedAttributeAgencyExceptionC +AgencyException
B BankA Agency@ /InstantAutoloader? -CrossProjectTest> #BackendTest= 'ValidatorTest< 5ValidatorFactoryTest; 7Validator74_PR18_Test: 7Validator66_PR18_Test9 'URIPickerTest8 9StatementContainerTest7 LockTest6 /FileValidatorTest5 %FileUtilTest4 )FileParserTest3 )DownloaderTest2 1DataConstraintTest1 7ContextValidationTest0 ?ConfigurationRegistryTest/ =ConfigurationLocatorTest. #BICUtilTest- 'BAVFacadeTest, 5BackendContainerTest+ +AgencyQueryTest* )UpdatePlanTest) TimeMock( 'TestAPIResult' 1TestAPIErrorResult& TestAPI% 1KtoblzcheckTestAPI$ /KontocheckTestAPI # AValidationTestAPIException!" CTestAPIUnavailableException! -TestAPIException$  INotInitializedTestAPIException" EBankNotFoundTestAPIException !BAVTestAPI !PDOFactory 7MissingClassException 5ClassFileIOException 1ClassFileException ClassFile  AWeightedIterationValidator #ValidatorE2 #ValidatorE1 #ValidatorE0 #ValidatorD9 #ValidatorD8 #ValidatorD7 #ValidatorD6 #ValidatorD5 #ValidatorD4 #ValidatorD3 #ValidatorD2 #ValidatorD1 #ValidatorD0
 #ValidatorC9	 #ValidatorC8 #ValidatorC7 #ValidatorC6 #ValidatorC5 #ValidatorC4   i mXC.q\G2u`K5 xcN9${fQ<'






~
i
S
>
(
							~	h	R	<	&	~iT?* lWB-nYC.q\G2fS7jE!|cE.i                 ? )FileParserTest> )DownloaderTest= 1DataConstraintTest< 7ContextValidationTest; ?ConfigurationRegistryTest: =ConfigurationLocatorTest9 #BICUtilTest8 'BAVFacadeTest7 5BackendContainerTest6 +AgencyQueryTest5 )UpdatePlanTest4 TimeMock3 'TestAPIResult2 1TestAPIErrorResult1 TestAPI0 1KtoblzcheckTestAPI/ /KontocheckTestAPI . AValidationTestAPIException!- CTestAPIUnavailableException, -TestAPIException$+ INotInitializedTestAPIException"* EBankNotFoundTestAPIException) !BAVTestAPI( !PDOFactory' 7MissingClassException& 5ClassFileIOException% 1ClassFileException$ ClassFile # AWeightedIterationValidator" #ValidatorE2! #ValidatorE1  #ValidatorE0 #ValidatorD9 #ValidatorD8 #ValidatorD7 #ValidatorD6 #ValidatorD5 #ValidatorD4 #ValidatorD3 #ValidatorD2 #ValidatorD1 #ValidatorD0 #ValidatorC9 #ValidatorC8 #ValidatorC7 #ValidatorC6 #ValidatorC5 #ValidatorC4 #ValidatorC3 #ValidatorC2 %ValidatorC1b #ValidatorC1 #ValidatorC0
 %ValidatorB9b	 %ValidatorB9a #ValidatorB9 #ValidatorB8 #ValidatorB7 #ValidatorB6 #ValidatorB5 #ValidatorB4 #ValidatorB3 #ValidatorB2  #ValidatorB1 #ValidatorB0~ #ValidatorA9} #ValidatorA8| #ValidatorA7{ #ValidatorA6z #ValidatorA5y %ValidatorA4bx #ValidatorA4w #ValidatorA3v #ValidatorA2u #ValidatorA1t #ValidatorA0s #Validator99r #Validator98q #Validator97p #Validator96o #Validator95n #Validator94m #Validator93l #Validator92k #Validator91j %Validator90gi %Validator90eh %Validator90dg %Validator90cf #Validator90e #Validator89d #Validator88c %Validator87cb %Validator87aa #Validator87` #Validator86_ #Validator85^ %Validator84b] #Validator84\ %Validator83x[ #Validator83Z #Validator82Y #Validator81X #Validator80W #Validator79V #Validator78U %Validator77aT #Validator77S #Validator76R #Validator75Q #Validator74P #Validator73O #Validator72N #Validator71M #Validator70L %Validator69bK #Validator69J #Validator68I #Validator67H #Validator66G #Validator65F #Validator64E #Validator63D #Validator62C #Validator61B #Validator60A #Validator59@ #Validator58? #Validator57> #Validator56= #Validator55< #Validator54; #Validator53: #Validator529 %Validator51x8 #Validator517 #Validator506 #Validator495 #Validator484 #Validator473 #Validator462 #Validator451 #Validator440 #Validator43/ #Validator42. #Validator41- #Validator40, #Validator39+ #Validator38* #Validator37) #Validator36( #Validator35' #Validator34& #Validator33% #Validator32$ #Validator31# #Validator30" #Validator29! #Validator28  #Validator27 #Validator26 #Validator25 #Validator24 #Validator23 #Validator22 #Validator21 #Validator20 #Validator19   k gH*nV<zk[I6 tZ>+~a@%





n
a
K
<
$
							l	Y	J	9		yaP6#uP2}q\N7&hX?-w\H+iZB0"~gXF4k                           #c GConstraintDefinitionExceptionb 9BadMethodCallException#a GLegacyExecutionContextFactory` 9LegacyExecutionContext_ ;ExecutionContextFactory^ -ExecutionContext] Required\ Optional[ ValidZ 'UuidValidator
Y UuidX %UrlValidator	W UrlV 'TypeValidator
U TypeT 'TrueValidator
S TrueR TraverseQ 'TimeValidator
P TimeO RequiredN )RegexValidatorM RegexL )RangeValidatorK RangeJ OptionalI 'NullValidator
H NullG -NotNullValidatorF NotNullE ;NotIdenticalToValidatorD )NotIdenticalToC 3NotEqualToValidatorB !NotEqualToA /NotBlankValidator@ NotBlank? 'LuhnValidator
> Luhn= +LocaleValidator< Locale; /LessThanValidator: =LessThanOrEqualValidator9 +LessThanOrEqual8 LessThan7 +LengthValidator6 Length5 /LanguageValidator4 Language3 +IsTrueValidator2 IsTrue1 'IssnValidator
0 Issn/ +IsNullValidator. IsNull- -IsFalseValidator, IsFalse+ 'IsbnValidator
* Isbn) #IpValidator( Ip' )ImageValidator& Image% 5IdenticalToValidator$ #IdenticalTo# 'IbanValidator
" Iban! 7GroupSequenceProvider  'GroupSequence 5GreaterThanValidator! CGreaterThanOrEqualValidator 1GreaterThanOrEqual #GreaterThan 'FileValidator
 File )FalseValidator False 3ExpressionValidator !Expression Existence -EqualToValidator EqualTo )EmailValidator Email 'DateValidator /DateTimeValidator DateTime
 Date /CurrencyValidator Currency
 )CountValidator	 -CountryValidator Country Count Composite 3CollectionValidator !Collection +ChoiceValidator Choice 3CardSchemeValidator  !CardScheme /CallbackValidator~ Callback} )BlankValidator| Blank{ %AllValidator	z All!y CAbstractComparisonValidatorx 1AbstractComparisonw -ValidatorBuilderv Validatoru /ValidationVisitort !Validations -ExecutionContextr /DefaultTranslatorq ;ConstraintViolationListp 3ConstraintViolation o AConstraintValidatorFactoryn 3ConstraintValidatorm !Constraintl %XmlIndexTestk +SearchRangeTestj RangeTesti %IteratorTesth IndexTestg 1FixedSizeIndexTestf -BinarySearchTeste %SplitCounterd /XMLIndexGeneratorc )IndexGeneratorb ;FixedSizeIndexGeneratora 1IndexTestException"` ECreateFileIndexTestException_ %AbstractTest^ XmlParser] XmlIndex\ Result[ RangeZ ParserY 'RangeIteratorX %IteratorUtilW 'IndexIteratorV IndexU +FixedSizeParserT )FixedSizeIndex
S FileR 9ReadDataIndexExceptionQ -IOIndexExceptionP )IndexExceptionO 7FileExistsIOExceptionN KeyReaderM ByteRangeL %BinarySearchK /InstantAutoloaderJ -CrossProjectTestI #BackendTestH 'ValidatorTestG 5ValidatorFactoryTestF 7Validator74_PR18_TestE 7Validator66_PR18_TestD 'URIPickerTestC 9StatementContainerTestB LockTestA /FileValidatorTest@ %FileUtilTest   o `?!gP2 rP,qY@"{_:




s
M
						d	H	)	
aB'hO4zQ'rBH]-k>h<                                         )R SLegacyEqualToValidatorLegacyApiTest(Q QLegacyEqualToValidator2Dot4ApiTest'P OLegacyEmailValidatorLegacyApiTest&O MLegacyEmailValidator2Dot4ApiTest&N MLegacyDateValidatorLegacyApiTest%M KLegacyDateValidator2Dot4ApiTest*L ULegacyDateTimeValidatorLegacyApiTest)K SLegacyDateTimeValidator2Dot4ApiTest*J ULegacyCurrencyValidatorLegacyApiTest)I SLegacyCurrencyValidator2Dot4ApiTest0H aLegacyCountValidatorCountableLegacyApiTest/G _LegacyCountValidatorCountable2Dot4ApiTest,F YLegacyCountValidatorArrayLegacyApiTest+E WLegacyCountValidatorArray2Dot4ApiTest=D {LegacyCollectionValidatorCustomArrayObjectLegacyApiTest<C yLegacyCollectionValidatorCustomArrayObject2Dot4ApiTest7B oLegacyCollectionValidatorArrayObjectLegacyApiTest6A mLegacyCollectionValidatorArrayObject2Dot4ApiTest1@ cLegacyCollectionValidatorArrayLegacyApiTest0? aLegacyCollectionValidatorArray2Dot4ApiTest(> QLegacyChoiceValidatorLegacyApiTest'= OLegacyChoiceValidator2Dot4ApiTest,< YLegacyCardSchemeValidatorLegacyApiTest+; WLegacyCardSchemeValidator2Dot4ApiTest*: ULegacyCallbackValidatorLegacyApiTest)9 SLegacyCallbackValidator2Dot4ApiTest'8 OLegacyBlankValidatorLegacyApiTest&7 MLegacyBlankValidator2Dot4ApiTest%6 KLegacyAllValidatorLegacyApiTest$5 ILegacyAllValidator2Dot4ApiTest4 7LanguageValidatorTest3 3IsTrueValidatorTest2 /IssnValidatorTest1 3IsNullValidatorTest0 5IsFalseValidatorTest/ /IsbnValidatorTest. +IpValidatorTest- 1ImageValidatorTest, =IdenticalToValidatorTest+ /IbanValidatorTest* /GroupSequenceTest) =GreaterThanValidatorTest%( KGreaterThanOrEqualValidatorTest' /FileValidatorTest& 7FileValidatorPathTest% ;FileValidatorObjectTest$ FileTest# ;ExpressionValidatorTest" 5EqualToValidatorTest! 1EmailValidatorTest  /DateValidatorTest 7DateTimeValidatorTest 7CurrencyValidatorTest 1CountValidatorTest! CCountValidatorCountableTest ;CountValidatorArrayTest 5CountryValidatorTest 'CompositeTest /ConcreteComposite ;CollectionValidatorTest. ]CollectionValidatorCustomArrayObjectTest" ECollectionValidatorArrayTest( QCollectionValidatorArrayObjectTest )CollectionTest 3ChoiceValidatorTest ;CardSchemeValidatorTest 7CallbackValidatorTest" ECallbackValidatorTest_Object! CCallbackValidatorTest_Class 1BlankValidatorTest -AllValidatorTest AllTest"
 EConstraintViolationAssertion%	 KAbstractConstraintValidatorTest) SAbstractComparisonValidatorTestCase 5ComparisonTest_Class +YamlFilesLoader )YamlFileLoader )XmlFilesLoader 'XmlFileLoader 1StaticMethodLoader #LoaderChain  #FilesLoader !FileLoader~ -AnnotationLoader} )AbstractLoader | ALazyLoadingMetadataFactory{ =BlackHoleMetadataFactoryz 'DoctrineCachey ApcCachex /TraversalStrategyw -PropertyMetadatav )MemberMetadatau )GetterMetadatat +GenericMetadatas +ElementMetadatar 5ClassMetadataFactoryq 'ClassMetadatap /CascadingStrategyo =BlackholeMetadataFactoryn 1ValidatorException"m EUnsupportedMetadataExceptionl ;UnexpectedTypeExceptionk -RuntimeExceptionj 5OutOfBoundsExceptioni ;NoSuchMetadataExceptionh ;MissingOptionsExceptiong -MappingExceptionf ;InvalidOptionsExceptione =InvalidArgumentExceptiond =GroupDefinitionException   g  wL[#o?jAi>


|
N
#				w	I	W*X-^4sM.sW; mL( hS>!hM0       9 /InvalidConstraint!8 CGroupSequenceProviderEntity7 #FilesLoader6 3FakeMetadataFactory5 /FakeClassMetadata 4 AFailingConstraintValidator3 /FailingConstraint2 %EntityParent1 Entity0 /CustomArrayObject/ Countable". EConstraintWithValueAsDefault- 3ConstraintWithValue, #ConstraintC+ #ConstraintB* 5ConstraintAValidator) #ConstraintA( +ClassConstraint' 'CallbackClass& 'ValidatorTest% 5ValidatorBuilderTest$$ IExecutionContextTest_TestClass # ALegacyExecutionContextTest" ;ConstraintViolationTest!! CConstraintViolationListTest  )ConstraintTest RegexTest ValidTest /UuidValidatorTest -UrlValidatorTest /TypeValidatorTest /TimeValidatorTest 1RegexValidatorTest 1RangeValidatorTest 5NotNullValidatorTest! CNotIdenticalToValidatorTest ;NotEqualToValidatorTest 7NotBlankValidatorTest /LuhnValidatorTest 3LocaleValidatorTest 7LessThanValidatorTest" ELessThanOrEqualValidatorTest 3LengthValidatorTest& MLegacyUuidValidatorLegacyApiTest% KLegacyUuidValidator2Dot4ApiTest% KLegacyUrlValidatorLegacyApiTest$ ILegacyUrlValidator2Dot4ApiTest&
 MLegacyTypeValidatorLegacyApiTest%	 KLegacyTypeValidator2Dot4ApiTest& MLegacyTrueValidatorLegacyApiTest% KLegacyTrueValidator2Dot4ApiTest& MLegacyTimeValidatorLegacyApiTest% KLegacyTimeValidator2Dot4ApiTest' OLegacyRegexValidatorLegacyApiTest& MLegacyRegexValidator2Dot4ApiTest' OLegacyRangeValidatorLegacyApiTest& MLegacyRangeValidator2Dot4ApiTest&  MLegacyNullValidatorLegacyApiTest% KLegacyNullValidator2Dot4ApiTest)~ SLegacyNotNullValidatorLegacyApiTest(} QLegacyNotNullValidator2Dot4ApiTest0| aLegacyNotIdenticalToValidatorLegacyApiTest/{ _LegacyNotIdenticalToValidator2Dot4ApiTest,z YLegacyNotEqualToValidatorLegacyApiTest+y WLegacyNotEqualToValidator2Dot4ApiTest*x ULegacyNotBlankValidatorLegacyApiTest)w SLegacyNotBlankValidator2Dot4ApiTest&v MLegacyLuhnValidatorLegacyApiTest%u KLegacyLuhnValidator2Dot4ApiTest(t QLegacyLocaleValidatorLegacyApiTest's OLegacyLocaleValidator2Dot4ApiTest*r ULegacyLessThanValidatorLegacyApiTest)q SLegacyLessThanValidator2Dot4ApiTest1p cLegacyLessThanOrEqualValidatorLegacyApiTest0o aLegacyLessThanOrEqualValidator2Dot4ApiTest(n QLegacyLengthValidatorLegacyApiTest'm OLegacyLengthValidator2Dot4ApiTest*l ULegacyLanguageValidatorLegacyApiTest)k SLegacyLanguageValidator2Dot4ApiTest&j MLegacyIssnValidatorLegacyApiTest%i KLegacyIssnValidator2Dot4ApiTest&h MLegacyIsbnValidatorLegacyApiTest%g KLegacyIsbnValidator2Dot4ApiTest$f ILegacyIpValidatorLegacyApiTest#e GLegacyIpValidator2Dot4ApiTest'd OLegacyImageValidatorLegacyApiTest&c MLegacyImageValidator2Dot4ApiTest-b [LegacyIdenticalToValidatorLegacyApiTest,a YLegacyIdenticalToValidator2Dot4ApiTest&` MLegacyIbanValidatorLegacyApiTest%_ KLegacyIbanValidator2Dot4ApiTest-^ [LegacyGreaterThanValidatorLegacyApiTest,] YLegacyGreaterThanValidator2Dot4ApiTest4\ iLegacyGreaterThanOrEqualValidatorLegacyApiTest3[ gLegacyGreaterThanOrEqualValidator2Dot4ApiTest*Z ULegacyFileValidatorPathLegacyApiTest)Y SLegacyFileValidatorPath2Dot4ApiTest,X YLegacyFileValidatorObjectLegacyApiTest+W WLegacyFileValidatorObject2Dot4ApiTest'V OLegacyFalseValidatorLegacyApiTest&U MLegacyFalseValidator2Dot4ApiTest,T YLegacyExpressionValidatorLegacyApiTest+S WLegacyExpressionValidator2Dot4ApiTest   \ nR7_7#qU7hC`6"




n
Z
?
,
							u	Z	F	)		 jX=/rUF. 	~_Q:%o_F8!wU:*vUD*n\N7)}\                              T ;ExecutionContextFactoryS -ExecutionContextR RequiredQ OptionalP ValidO 'UuidValidator
N UuidM %UrlValidator	L UrlK 'TypeValidator
J TypeI 'TrueValidator
H TrueG TraverseF 'TimeValidator
E TimeD RequiredC )RegexValidatorB RegexA )RangeValidator@ Range? Optional> 'NullValidator
= Null< -NotNullValidator; NotNull: ;NotIdenticalToValidator9 )NotIdenticalTo8 3NotEqualToValidator7 !NotEqualTo6 /NotBlankValidator5 NotBlank4 'LuhnValidator
3 Luhn2 +LocaleValidator1 Locale0 /LessThanValidator/ =LessThanOrEqualValidator. +LessThanOrEqual- LessThan, +LengthValidator+ Length* /LanguageValidator) Language( +IsTrueValidator' IsTrue& 'IssnValidator
% Issn$ +IsNullValidator# IsNull" -IsFalseValidator! IsFalse  'IsbnValidator
 Isbn #IpValidator Ip )ImageValidator Image 5IdenticalToValidator #IdenticalTo 'IbanValidator
 Iban 7GroupSequenceProvider 'GroupSequence 5GreaterThanValidator! CGreaterThanOrEqualValidator 1GreaterThanOrEqual #GreaterThan 'FileValidator
 File )FalseValidator False 3ExpressionValidator !Expression
 Existence	 -EqualToValidator EqualTo )EmailValidator Email 'DateValidator /DateTimeValidator DateTime
 Date /CurrencyValidator  Currency )CountValidator~ -CountryValidator} Country| Count{ Compositez 3CollectionValidatory !Collectionx +ChoiceValidatorw Choicev 3CardSchemeValidatoru !CardSchemet /CallbackValidators Callbackr )BlankValidatorq Blankp %AllValidator	o All!n CAbstractComparisonValidatorm 1AbstractComparisonl -ValidatorBuilderk Validatorj /ValidationVisitori !Validationh -ExecutionContextg /DefaultTranslatorf ;ConstraintViolationListe 3ConstraintViolation d AConstraintValidatorFactoryc 3ConstraintValidatorb !Constraint&a MLegacyConstraintViolationBuilder ` AConstraintViolationBuilder_ 1RecursiveValidator"^ ERecursiveContextualValidator] +LegacyValidator\ %PropertyPath$[ IRecursiveValidator2Dot5ApiTest"Z ELegacyValidatorLegacyApiTest!Y CLegacyValidator2Dot5ApiTestX 7AbstractValidatorTestW 7AbstractLegacyApiTestV 5Abstract2Dot5ApiTestU -PropertyPathTestT 1YamlFileLoaderTestS /XmlFileLoaderTestR =BaseStaticLoaderDocumentQ 5StaticLoaderDocumentP 1StaticLoaderEntityO 5AbstractStaticLoaderN 9StaticMethodLoaderTestM +LoaderChainTestL +FilesLoaderTestK 5AnnotationLoaderTest J AAbstractStaticMethodLoaderI !TestLoader$H ILazyLoadingMetadataFactoryTest"G EBlackHoleMetadataFactoryTestF 5PropertyMetadataTestE 1TestMemberMetadataD 1MemberMetadataTestC 3TestElementMetadataB ?LegacyElementMetadataTestA 1GetterMetadataTest@ /ClassMetadataTest? 1LegacyApcCacheTest> /DoctrineCacheTest = AStubGlobalExecutionContext< Reference; 1PropertyConstraint : AInvalidConstraintValidator   p rP.yX2rZB(lXC.g>




g
F
)
				l	Q	:	|aE'pN3kP3nA])?l8Y/                             &D MLegacyEmailValidator2Dot4ApiTest&C MLegacyDateValidatorLegacyApiTest%B KLegacyDateValidator2Dot4ApiTest*A ULegacyDateTimeValidatorLegacyApiTest)@ SLegacyDateTimeValidator2Dot4ApiTest*? ULegacyCurrencyValidatorLegacyApiTest)> SLegacyCurrencyValidator2Dot4ApiTest0= aLegacyCountValidatorCountableLegacyApiTest/< _LegacyCountValidatorCountable2Dot4ApiTest,; YLegacyCountValidatorArrayLegacyApiTest+: WLegacyCountValidatorArray2Dot4ApiTest=9 {LegacyCollectionValidatorCustomArrayObjectLegacyApiTest<8 yLegacyCollectionValidatorCustomArrayObject2Dot4ApiTest77 oLegacyCollectionValidatorArrayObjectLegacyApiTest66 mLegacyCollectionValidatorArrayObject2Dot4ApiTest15 cLegacyCollectionValidatorArrayLegacyApiTest04 aLegacyCollectionValidatorArray2Dot4ApiTest(3 QLegacyChoiceValidatorLegacyApiTest'2 OLegacyChoiceValidator2Dot4ApiTest,1 YLegacyCardSchemeValidatorLegacyApiTest+0 WLegacyCardSchemeValidator2Dot4ApiTest*/ ULegacyCallbackValidatorLegacyApiTest). SLegacyCallbackValidator2Dot4ApiTest'- OLegacyBlankValidatorLegacyApiTest&, MLegacyBlankValidator2Dot4ApiTest%+ KLegacyAllValidatorLegacyApiTest$* ILegacyAllValidator2Dot4ApiTest) 7LanguageValidatorTest( 3IsTrueValidatorTest' /IssnValidatorTest& 3IsNullValidatorTest% 5IsFalseValidatorTest$ /IsbnValidatorTest# +IpValidatorTest" 1ImageValidatorTest! =IdenticalToValidatorTest  /IbanValidatorTest /GroupSequenceTest =GreaterThanValidatorTest% KGreaterThanOrEqualValidatorTest /FileValidatorTest 7FileValidatorPathTest ;FileValidatorObjectTest FileTest ;ExpressionValidatorTest 5EqualToValidatorTest 1EmailValidatorTest /DateValidatorTest 7DateTimeValidatorTest 7CurrencyValidatorTest 1CountValidatorTest! CCountValidatorCountableTest ;CountValidatorArrayTest 5CountryValidatorTest 'CompositeTest /ConcreteComposite ;CollectionValidatorTest. ]CollectionValidatorCustomArrayObjectTest"
 ECollectionValidatorArrayTest(	 QCollectionValidatorArrayObjectTest )CollectionTest 3ChoiceValidatorTest ;CardSchemeValidatorTest 7CallbackValidatorTest" ECallbackValidatorTest_Object! CCallbackValidatorTest_Class 1BlankValidatorTest -AllValidatorTest  AllTest" EConstraintViolationAssertion%~ KAbstractConstraintValidatorTest)} SAbstractComparisonValidatorTestCase| 5ComparisonTest_Class{ +YamlFilesLoaderz )YamlFileLoadery )XmlFilesLoaderx 'XmlFileLoaderw 1StaticMethodLoaderv #LoaderChainu #FilesLoadert !FileLoaders -AnnotationLoaderr )AbstractLoader q ALazyLoadingMetadataFactoryp =BlackHoleMetadataFactoryo 'DoctrineCachen ApcCachem /TraversalStrategyl -PropertyMetadatak )MemberMetadataj )GetterMetadatai +GenericMetadatah +ElementMetadatag 5ClassMetadataFactoryf 'ClassMetadatae /CascadingStrategyd =BlackholeMetadataFactoryc 1ValidatorException"b EUnsupportedMetadataExceptiona ;UnexpectedTypeException` -RuntimeException_ 5OutOfBoundsException^ ;NoSuchMetadataException] ;MissingOptionsException\ -MappingException[ ;InvalidOptionsExceptionZ =InvalidArgumentExceptionY =GroupDefinitionException#X GConstraintDefinitionExceptionW 9BadMethodCallException#V GLegacyExecutionContextFactoryU 9LegacyExecutionContext   e  |Mi<o>`5j@



Z
%				s	J	 f3}S)V-_6rS2gL9&|^G0wdI9#                    ) AFailingConstraintValidator( /FailingConstraint' %EntityParent& Entity% /CustomArrayObject$ Countable"# EConstraintWithValueAsDefault" 3ConstraintWithValue! #ConstraintC  #ConstraintB 5ConstraintAValidator #ConstraintA +ClassConstraint 'CallbackClass 'ValidatorTest 5ValidatorBuilderTest$ IExecutionContextTest_TestClass  ALegacyExecutionContextTest ;ConstraintViolationTest! CConstraintViolationListTest )ConstraintTest RegexTest ValidTest /UuidValidatorTest -UrlValidatorTest /TypeValidatorTest /TimeValidatorTest 1RegexValidatorTest 1RangeValidatorTest 5NotNullValidatorTest! CNotIdenticalToValidatorTest
 ;NotEqualToValidatorTest	 7NotBlankValidatorTest /LuhnValidatorTest 3LocaleValidatorTest 7LessThanValidatorTest" ELessThanOrEqualValidatorTest 3LengthValidatorTest& MLegacyUuidValidatorLegacyApiTest% KLegacyUuidValidator2Dot4ApiTest% KLegacyUrlValidatorLegacyApiTest$  ILegacyUrlValidator2Dot4ApiTest& MLegacyTypeValidatorLegacyApiTest%~ KLegacyTypeValidator2Dot4ApiTest&} MLegacyTrueValidatorLegacyApiTest%| KLegacyTrueValidator2Dot4ApiTest&{ MLegacyTimeValidatorLegacyApiTest%z KLegacyTimeValidator2Dot4ApiTest'y OLegacyRegexValidatorLegacyApiTest&x MLegacyRegexValidator2Dot4ApiTest'w OLegacyRangeValidatorLegacyApiTest&v MLegacyRangeValidator2Dot4ApiTest&u MLegacyNullValidatorLegacyApiTest%t KLegacyNullValidator2Dot4ApiTest)s SLegacyNotNullValidatorLegacyApiTest(r QLegacyNotNullValidator2Dot4ApiTest0q aLegacyNotIdenticalToValidatorLegacyApiTest/p _LegacyNotIdenticalToValidator2Dot4ApiTest,o YLegacyNotEqualToValidatorLegacyApiTest+n WLegacyNotEqualToValidator2Dot4ApiTest*m ULegacyNotBlankValidatorLegacyApiTest)l SLegacyNotBlankValidator2Dot4ApiTest&k MLegacyLuhnValidatorLegacyApiTest%j KLegacyLuhnValidator2Dot4ApiTest(i QLegacyLocaleValidatorLegacyApiTest'h OLegacyLocaleValidator2Dot4ApiTest*g ULegacyLessThanValidatorLegacyApiTest)f SLegacyLessThanValidator2Dot4ApiTest1e cLegacyLessThanOrEqualValidatorLegacyApiTest0d aLegacyLessThanOrEqualValidator2Dot4ApiTest(c QLegacyLengthValidatorLegacyApiTest'b OLegacyLengthValidator2Dot4ApiTest*a ULegacyLanguageValidatorLegacyApiTest)` SLegacyLanguageValidator2Dot4ApiTest&_ MLegacyIssnValidatorLegacyApiTest%^ KLegacyIssnValidator2Dot4ApiTest&] MLegacyIsbnValidatorLegacyApiTest%\ KLegacyIsbnValidator2Dot4ApiTest$[ ILegacyIpValidatorLegacyApiTest#Z GLegacyIpValidator2Dot4ApiTest'Y OLegacyImageValidatorLegacyApiTest&X MLegacyImageValidator2Dot4ApiTest-W [LegacyIdenticalToValidatorLegacyApiTest,V YLegacyIdenticalToValidator2Dot4ApiTest&U MLegacyIbanValidatorLegacyApiTest%T KLegacyIbanValidator2Dot4ApiTest-S [LegacyGreaterThanValidatorLegacyApiTest,R YLegacyGreaterThanValidator2Dot4ApiTest4Q iLegacyGreaterThanOrEqualValidatorLegacyApiTest3P gLegacyGreaterThanOrEqualValidator2Dot4ApiTest*O ULegacyFileValidatorPathLegacyApiTest)N SLegacyFileValidatorPath2Dot4ApiTest,M YLegacyFileValidatorObjectLegacyApiTest+L WLegacyFileValidatorObject2Dot4ApiTest'K OLegacyFalseValidatorLegacyApiTest&J MLegacyFalseValidator2Dot4ApiTest,I YLegacyExpressionValidatorLegacyApiTest+H WLegacyExpressionValidator2Dot4ApiTest)G SLegacyEqualToValidatorLegacyApiTest(F QLegacyEqualToValidator2Dot4ApiTest'E OLegacyEmailValidatorLegacyApiTest   W sO3 kN2rT;"mQ7hR9




}
l
[
I
5
'

								{	j	^	P	:	(		sZI8(}oaQA1xdL6pV=-qaM:&~e0yFW                           &C MMustache_Loader_FilesystemLoader%B KMustache_Loader_CascadingLoader!A CMustache_Loader_ArrayLoader@ 7Mustache_LambdaHelper? ?Mustache_HelperCollection1> cMustache_Exception_UnknownTemplateException/= _Mustache_Exception_UnknownHelperException/< _Mustache_Exception_UnknownFilterException(; QMustache_Exception_SyntaxException): SMustache_Exception_RuntimeException'9 OMustache_Exception_LogicException18 cMustache_Exception_InvalidArgumentException7 +Mustache_Engine6 -Mustache_Context5 /Mustache_Compiler4 3Mustache_Autoloader"3 ESymfonyClassCollectionLoader2 Priority	1 Loc0 Lastmod/ !Changefreq. WordCount- !UploadFile, Upload
+ Size
* Sha1) NotExists( MimeType	' Md5& IsImage% %IsCompressed$ ImageSize
# Hash" FilesSize! Extension  Exists +ExcludeMimeType -ExcludeExtension Crc32 Count -RuntimeException# GInvalidMagicMimeFileException =InvalidArgumentException! CExtensionNotLoadedException 9BadMethodCallException %RecordExists )NoRecordExists !AbstractDb
 Upce
 Upca
 Sscc Royalmail Postnet Planet Leitcode Itf14
 Issn
 +Intelligentmail	 Identcode Gtin14 Gtin13 Gtin12
 Ean8
 Ean5
 Ean2 Ean18 Ean14  Ean13 Ean12~ Code93ext} Code93| Code39ext{ Code39z /Code25interleavedy Code25x Code128w Codabarv +AbstractAdapteru 9ValidatorPluginManagert )ValidatorChain	s Urir Timezoneq %StringLength
p Stepo +StaticValidatorn Regexm NotEmptyl LessThank %IsInstanceOf
j Isbni Iph InArrayg Identical
f Ibane Hostname	d Hexc #GreaterThanb Explodea %EmailAddress` Digits_ DateStep
^ Date
] Csrf\ !CreditCard[ CallbackZ BitwiseY BetweenX BarcodeW /AbstractValidator&V MLegacyConstraintViolationBuilder U AConstraintViolationBuilderT 1RecursiveValidator"S ERecursiveContextualValidatorR +LegacyValidatorQ %PropertyPath$P IRecursiveValidator2Dot5ApiTest"O ELegacyValidatorLegacyApiTest!N CLegacyValidator2Dot5ApiTestM 7AbstractValidatorTestL 7AbstractLegacyApiTestK 5Abstract2Dot5ApiTestJ -PropertyPathTestI 1YamlFileLoaderTestH /XmlFileLoaderTestG =BaseStaticLoaderDocumentF 5StaticLoaderDocumentE 1StaticLoaderEntityD 5AbstractStaticLoaderC 9StaticMethodLoaderTestB +LoaderChainTestA +FilesLoaderTest@ 5AnnotationLoaderTest ? AAbstractStaticMethodLoader> !TestLoader$= ILazyLoadingMetadataFactoryTest"< EBlackHoleMetadataFactoryTest; 5PropertyMetadataTest: 1TestMemberMetadata9 1MemberMetadataTest8 3TestElementMetadata7 ?LegacyElementMetadataTest6 1GetterMetadataTest5 /ClassMetadataTest4 1LegacyApcCacheTest3 /DoctrineCacheTest 2 AStubGlobalExecutionContext1 Reference0 1PropertyConstraint / AInvalidConstraintValidator. /InvalidConstraint!- CGroupSequenceProviderEntity, #FilesLoader+ 3FakeMetadataFactory* /FakeClassMetadata   q  fM2 nWF*}`K3
pL)_#


n
)				:	m>|IvJY(fA,gS4aE+v[;
   4 5Twig_Node_AutoEscape3 #Twig_Markup2 1Twig_Loader_String1 9Twig_Loader_Filesystem0 /Twig_Loader_Chain/ /Twig_Loader_Array. !Twig_Lexer- 'Twig_Function, 1Twig_Function_Node+ 5Twig_Function_Method* 9Twig_Function_Function) #Twig_Filter( -Twig_Filter_Node' 1Twig_Filter_Method& 5Twig_Filter_Function% )Twig_Extension$ 9Twig_Extension_Sandbox# =Twig_Extension_Optimizer" 9Twig_Extension_Escaper! 5Twig_Extension_Debug  3Twig_Extension_Core 7Twig_ExpressionParser !Twig_Error /Twig_Error_Syntax 1Twig_Error_Runtime /Twig_Error_Loader -Twig_Environment 'Twig_Compiler +Twig_Autoloader +Smarty_Compiler Smarty #Config_File! CMustache_Test_TokenizerTest  AMustache_Test_TemplateStub  AMustache_Test_TemplateTest =Mustache_Test_ParserTest+ WMustache_Test_Logger_StreamLoggerTest% KMustache_Test_Logger_TestLogger- [Mustache_Test_Logger_AbstractLoggerTest+ WMustache_Test_Loader_StringLoaderTest+ WMustache_Test_Loader_InlineLoaderTest/ _Mustache_Test_Loader_FilesystemLoaderTest.
 ]Mustache_Test_Loader_CascadingLoaderTest*	 UMustache_Test_Loader_ArrayLoaderTest( QMustache_Test_HelperCollectionTest$ IMustache_Test_Functional_Delta$ IMustache_Test_Functional_Gamma# GMustache_Test_Functional_Beta$ IMustache_Test_Functional_Alpha0 aMustache_Test_Functional_ObjectSectionTest/ _Mustache_Test_Functional_MustacheSpecTest4 iMustache_Test_Functional_MustacheInjectionTest&  MMustache_Test_Functional_Monster" EMustache_Test_Functional_Foo6~ mMustache_Test_Functional_HigherOrderSectionsTest+} WMustache_Test_Functional_ExamplesTest,| YMustache_Test_Functional_ClassWithCall'{ OMustache_Test_Functional_CallTest<z yMustache_Test_FiveThree_Functional_StrictCallablesTest.y ]Mustache_Test_Functional_ClassWithLambdaAx Mustache_Test_FiveThree_Functional_PartialLambdaIndentTest9w sMustache_Test_FiveThree_Functional_MustacheSpecTest9v sMustache_Test_FiveThree_Functional_LambdaHelperTest,u YMustache_Test_FiveThree_Functional_FooAt Mustache_Test_FiveThree_Functional_HigherOrderSectionsTest4s iMustache_Test_FiveThree_Functional_FiltersTest;r wMustache_Test_FiveThree_Functional_ClosuresQuirksTest:q uMustache_Test_Exception_UnknownTemplateExceptionTest8p qMustache_Test_Exception_UnknownHelperExceptionTest8o qMustache_Test_Exception_UnknownFilterExceptionTest1n cMustache_Test_Exception_SyntaxExceptionTestm %MustacheStubl =Mustache_Test_EngineTestk ;Mustache_Test_TestDummyj ?Mustache_Test_ContextTest i AMustache_Test_CompilerTest"h EMustache_Test_AutoloaderTestg !Whitespacef 'UTF8Unescaped
e UTF8d Unescapedc Simpleb )SectionsNesteda Sections` 'SectionObject_ )SectionObjects^ #MagicObject] 3SectionMagicObjects\ 9SectionIteratorObjects[ /RecursivePartialsZ PartialsY +InvertedSectionX 7InvertedDoubleSectionW -ImplicitIterator
V I18nU 1GrandParentContextT EscapedS 'DoubleSectionR #DotNotationQ !DelimitersP ComplexO CommentsN %ChildContextM -NonMustacheClassL %Mustache_FooK %Mustache_BarJ 1Mustache_TokenizerI /Mustache_TemplateH +Mustache_Parser"G EMustache_Logger_StreamLogger$F IMustache_Logger_AbstractLogger"E EMustache_Loader_StringLoader"D EMustache_Loader_InlineLoader   n  sJ!i=\4
[0d7



c
<
				~	R	'W4zaJ/}Z8!\5hP<wY:zV8`7   &" MTwig_Tests_Extension_SandboxTest#! GTwig_Tests_Extension_CoreTest%  KTwig_Tests_ExpressionParserTest =Twig_Tests_ErrorTest_Foo 5Twig_Tests_ErrorTest ;Twig_Tests_CompilerTest ?Twig_Tests_AutoloaderTest -Twig_TokenStream 9Twig_TokenParserBroker -Twig_TokenParser 5Twig_TokenParser_Use  ATwig_TokenParser_Spaceless 5Twig_TokenParser_Set =Twig_TokenParser_Sandbox 9Twig_TokenParser_Macro =Twig_TokenParser_Include ;Twig_TokenParser_Import 3Twig_TokenParser_If 7Twig_TokenParser_From 5Twig_TokenParser_For 9Twig_TokenParser_Flush ;Twig_TokenParser_Filter =Twig_TokenParser_Extends 3Twig_TokenParser_Do
 9Twig_TokenParser_Block!	 CTwig_TokenParser_AutoEscape !Twig_Token )Twig_Test_Node -Twig_Test_Method 1Twig_Test_Function 'Twig_Template! CTwig_Sandbox_SecurityPolicy  ATwig_Sandbox_SecurityError #Twig_Parser  =Twig_NodeVisitor_Sandbox# GTwig_NodeVisitor_SafeAnalysis ~ ATwig_NodeVisitor_Optimizer} =Twig_NodeVisitor_Escaper| 1Twig_NodeTraverser{ Twig_Nodez )Twig_Node_Texty 3Twig_Node_Spacelessx /Twig_Node_SetTempw 'Twig_Node_Setv =Twig_Node_SandboxedPrintu ?Twig_Node_SandboxedModulet /Twig_Node_Sandboxs +Twig_Node_Printr -Twig_Node_Moduleq +Twig_Node_Macrop /Twig_Node_Includeo -Twig_Node_Importn %Twig_Node_Ifm /Twig_Node_ForLoopl 'Twig_Node_Fork +Twig_Node_Flushj 5Twig_Node_Expression i ATwig_Node_Expression_Unary$h ITwig_Node_Expression_Unary_Pos$g ITwig_Node_Expression_Unary_Not$f ITwig_Node_Expression_Unary_Nege ?Twig_Node_Expression_Test&d MTwig_Node_Expression_Test_Sameas#c GTwig_Node_Expression_Test_Odd$b ITwig_Node_Expression_Test_Null$a ITwig_Node_Expression_Test_Even+` WTwig_Node_Expression_Test_Divisibleby'_ OTwig_Node_Expression_Test_Defined(^ QTwig_Node_Expression_Test_Constant#] GTwig_Node_Expression_TempName!\ CTwig_Node_Expression_Parent[ ?Twig_Node_Expression_Name%Z KTwig_Node_Expression_MethodCall"Y ETwig_Node_Expression_GetAttr#X GTwig_Node_Expression_Function!W CTwig_Node_Expression_Filter)V STwig_Node_Expression_Filter_Default-U [Twig_Node_Expression_ExtensionReference#T GTwig_Node_Expression_Constant&S MTwig_Node_Expression_Conditional)R STwig_Node_Expression_BlockReference!Q CTwig_Node_Expression_Binary%P KTwig_Node_Expression_Binary_Sub'O OTwig_Node_Expression_Binary_Range'N OTwig_Node_Expression_Binary_Power$M ITwig_Node_Expression_Binary_Or'L OTwig_Node_Expression_Binary_NotIn*K UTwig_Node_Expression_Binary_NotEqual%J KTwig_Node_Expression_Binary_Mul%I KTwig_Node_Expression_Binary_Mod+H WTwig_Node_Expression_Binary_LessEqual&G MTwig_Node_Expression_Binary_Less$F ITwig_Node_Expression_Binary_In.E ]Twig_Node_Expression_Binary_GreaterEqual)D STwig_Node_Expression_Binary_Greater*C UTwig_Node_Expression_Binary_FloorDiv'B OTwig_Node_Expression_Binary_Equal%A KTwig_Node_Expression_Binary_Div(@ QTwig_Node_Expression_Binary_Concat,? YTwig_Node_Expression_Binary_BitwiseXor+> WTwig_Node_Expression_Binary_BitwiseOr,= YTwig_Node_Expression_Binary_BitwiseAnd%< KTwig_Node_Expression_Binary_And%; KTwig_Node_Expression_Binary_Add%: KTwig_Node_Expression_AssignName 9 ATwig_Node_Expression_Array8 %Twig_Node_Do7 )Twig_Node_Body6 =Twig_Node_BlockReference5 +Twig_Node_Block   ~ c>oL,e/^,e4


{
I
					[	8	sR+	mL1	g=mO1
zkYK=/rTA0oaTA4kVE+                 ! %TwigRenderer  -RendererAbstract Printer #PhpRenderer 3NodeVisitorAbstract Midblock !MergeAttrs Escaping Autoclose
 Text -TagAttributeList ?TagAttributeInterpolation %TagAttribute	 Tag Statement	 Run
 Root #ObjectRefId )ObjectRefClass %NodeAbstract %NestAbstract 1InterpolatedString Insert
 Filter	 /EscapableAbstract Doctype Comment Undefined 5IndentationException #Indentation Parsedown +MichelfMarkdown )FluxBBMarkdown  !CommonMark Ciconia~ %CebeMarkdown} %OyejorgeLess| LeafoLess
{ Twig
z Scss
y ReSTx Preservew Plain	v Phpu /OptimizableFiltert Markdown
s Lessr !Javascriptq Escaped	p Csso %CoffeeScriptn Cdatam )AbstractFilterl 5SyntaxErrorExceptionk 5TreeBuilderExceptionj #TreeBuilderi Runtimeh Parserg Exceptionf Escapinge #Environmentd !Autoloader c ATwig_Tests_TokenStreamTest$b ITwig_TemplateMagicMethodObject&a MTwig_TemplateMethodAndPropObject` ?Twig_TemplateMethodObject,_ YTwig_TemplatePropertyObjectAndIterator!^ CTwig_TemplatePropertyObject&] MTwig_TemplateMagicPropertyObject$\ ITwig_TemplateArrayAccessObject[ /Twig_TemplateTestZ ;Twig_Tests_TemplateTestY +TestTokenParserX !TestParserW 7Twig_Tests_ParserTest*V UTwig_Tests_NodeVisitor_OptimizerTestU =Twig_Tests_Node_TextTestT =Twig_Tests_Node_TestCase#S GTwig_Tests_Node_SpacelessTestR ;Twig_Tests_Node_SetTest!Q CTwig_Tests_Node_SandboxTest(P QTwig_Tests_Node_SandboxedPrintTest)O STwig_Tests_Node_SandboxedModuleTestN ?Twig_Tests_Node_PrintTest M ATwig_Tests_Node_ModuleTestL ?Twig_Tests_Node_MacroTest!K CTwig_Tests_Node_IncludeTest J ATwig_Tests_Node_ImportTestI 9Twig_Tests_Node_IfTestH ;Twig_Tests_Node_ForTest.G ]Twig_Tests_Node_Expression_Unary_PosTest.F ]Twig_Tests_Node_Expression_Unary_NotTest.E ]Twig_Tests_Node_Expression_Unary_NegTest)D STwig_Tests_Node_Expression_TestTest+C WTwig_Tests_Node_Expression_ParentTest)B STwig_Tests_Node_Expression_NameTest,A YTwig_Tests_Node_Expression_GetAttrTest-@ [Twig_Tests_Node_Expression_FunctionTest+? WTwig_Tests_Node_Expression_FilterTest-> [Twig_Tests_Node_Expression_ConstantTest0= aTwig_Tests_Node_Expression_ConditionalTest/< _Twig_Tests_Node_Expression_Binary_SubTest.; ]Twig_Tests_Node_Expression_Binary_OrTest/: _Twig_Tests_Node_Expression_Binary_MulTest/9 _Twig_Tests_Node_Expression_Binary_ModTest48 iTwig_Tests_Node_Expression_Binary_FloorDivTest/7 _Twig_Tests_Node_Expression_Binary_DivTest26 eTwig_Tests_Node_Expression_Binary_ConcatTest/5 _Twig_Tests_Node_Expression_Binary_AndTest/4 _Twig_Tests_Node_Expression_Binary_AddTest/3 _Twig_Tests_Node_Expression_AssignNameTest*2 UTwig_Tests_Node_Expression_ArrayTest1 9Twig_Tests_Node_DoTest0 ?Twig_Tests_Node_BlockTest(/ QTwig_Tests_Node_BlockReferenceTest$. ITwig_Tests_Node_AutoEscapeTest&- MTwig_Tests_Loader_FilesystemTest!, CTwig_Tests_Loader_ChainTest(+ QTwig_Test_Loader_TemplateReference!* CTwig_Tests_Loader_ArrayTest) 5Twig_Tests_LexerTest( 'TestExtension	& Foo % ATwig_Tests_IntegrationTest $ ATwig_Tests_FileCachingTest# FooObject   ~& uhPB)}^B0zjT@-ugUD1!kV@-






y
i
\
K
5
'

				o	H	)	sCoCX2h>{BXNT&                                  *! UGeneric_Sniffs_Commenting_FixmeSniff/  _Generic_Sniffs_Commenting_DocCommentSniff> }Generic_Sniffs_CodeAnalysis_UselessOverridingMethodSniff> }Generic_Sniffs_CodeAnalysis_UnusedFunctionParameterSniff? Generic_Sniffs_CodeAnalysis_UnnecessaryFinalModifierSniff? Generic_Sniffs_CodeAnalysis_UnconditionalIfStatementSniff9 sGeneric_Sniffs_CodeAnalysis_JumbledIncrementerSniffC Generic_Sniffs_CodeAnalysis_ForLoopWithTestFunctionCallSniff? Generic_Sniffs_CodeAnalysis_ForLoopShouldBeWhileLoopSniff5 kGeneric_Sniffs_CodeAnalysis_EmptyStatementSniff4 iGeneric_Sniffs_Classes_DuplicateClassNameSniff9 sGeneric_Sniffs_Arrays_DisallowShortArraySyntaxSniff8 qGeneric_Sniffs_Arrays_DisallowLongArraySyntaxSniff5 kPHP_CodeSniffer_Standards_AbstractVariableSniff2 ePHP_CodeSniffer_Standards_AbstractScopeSniff4 iPHP_CodeSniffer_Standards_AbstractPatternSniff! CPHP_CodeSniffer_Reports_Xml, YPHP_CodeSniffer_Reports_VersionControl& MPHP_CodeSniffer_Reports_Svnblame% KPHP_CodeSniffer_Reports_Summary$ IPHP_CodeSniffer_Reports_Source( QPHP_CodeSniffer_Reports_Notifysend# GPHP_CodeSniffer_Reports_Junit"
 EPHP_CodeSniffer_Reports_Json"	 EPHP_CodeSniffer_Reports_Info% KPHP_CodeSniffer_Reports_Hgblame& MPHP_CodeSniffer_Reports_Gitblame" EPHP_CodeSniffer_Reports_Full# GPHP_CodeSniffer_Reports_Emacs" EPHP_CodeSniffer_Reports_Diff! CPHP_CodeSniffer_Reports_Csv( QPHP_CodeSniffer_Reports_Checkstyle! CPHP_CodeSniffer_Reports_Cbf  ?PHP_CodeSniffer_Reporting 7PHP_CodeSniffer_Fixer~ 5PHP_CodeSniffer_File} ?PHP_CodeSniffer_Exception(| QPHP_CodeSniffer_DocGenerators_Text,{ YPHP_CodeSniffer_DocGenerators_Markdown(z QPHP_CodeSniffer_DocGenerators_HTML-y [PHP_CodeSniffer_DocGenerators_Generatorx 3PHP_CodeSniffer_CLIw 9Unit_Core_StrengthTestv 1Unit_Core_EnumTestu 7Unit_Core_BigMathTest#t GUnit_Core_BigMath_PHPMathTests ?Unit_Core_BigMath_GMPTest"r EUnit_Core_BigMath_BCMathTest!q CUnit_Core_BaseConverterTest#p GUnit_Core_AbstractFactoryTesto Strengthn Factory
m Enuml %AbstractMockk PHPMath	j GMPi BCMathh Strength
g Hash
f Enume BigMathd 'BaseConverterc +AbstractFactory"b EVectors_Random_GeneratorTesta Source` Mixer_ Generator^ %AbstractMock] #URandomTest\ !UniqIDTest[ RandTestZ !MTRandTestY 'MicroTimeTestX #CAPICOMTestW URandomV UniqIDU Random
T RandS OpenSSLR MTRandQ MicroTimeP CAPICOMO HashTest
N HashM 'GeneratorTestL 3GeneratorStringTestK #FactoryTestJ GeneratorI FactoryH 'AbstractMixerG 3ArithmeticExceptionF 'BigNumberTestE BigNumberB !LoaderTestA %ExecutorTest@ BazQux? FooBBar> FooBar= Foo_Bar< !BufferTest; -TwigRendererTest: +PhpRendererTest9 NodeTest8 #DoctypeTest7 %TestCaseTest6 TestCase5 1ObjectRefWithoutId4 7ObjectRefWithRefAndId3 +ObjectRefWithId2 ;ObjectRefWithGetIdAndId1 #RuntimeTest0 !ParserTest/ -NodeVisitorsTest. +IndentationTest- %HamlSpecTest, +EnvironmentTest
+ Twig* )TargetAbstract	) Php( Loader' Lexer& Extension% Executor$ 'AttributeList# 9AttributeInterpolation" Buffer   G  [0oA{DRS


T
			b	-^,i(~Ae,b#QSoA                                                         6h mPEAR_Sniffs_Functions_FunctionCallSignatureSniff5g kPEAR_Sniffs_Formatting_MultiLineAssignmentSniff*f UPEAR_Sniffs_Files_IncludingFileSniff;e wPEAR_Sniffs_ControlStructures_MultiLineConditionSniff9d sPEAR_Sniffs_ControlStructures_ControlSignatureSniff/c _PEAR_Sniffs_Commenting_InlineCommentSniff1b cPEAR_Sniffs_Commenting_FunctionCommentSniff-a [PEAR_Sniffs_Commenting_FileCommentSniff.` ]PEAR_Sniffs_Commenting_ClassCommentSniff/_ _PEAR_Sniffs_Classes_ClassDeclarationSniff.^ ]MySource_Sniffs_Strings_JoinStringsSniff2] eMySource_Sniffs_PHP_ReturnFunctionValueSniff-\ [MySource_Sniffs_PHP_GetRequestDataSniff0[ aMySource_Sniffs_PHP_EvalObjectFactorySniff1Z cMySource_Sniffs_PHP_AjaxNullComparisonSniff4Y iMySource_Sniffs_Objects_DisallowNewWidgetSniff;X wMySource_Sniffs_Objects_CreateWidgetTypeCallbackSniff-W [MySource_Sniffs_Objects_AssignThisSniff/V _MySource_Sniffs_Debug_FirebugConsoleSniff*U UMySource_Sniffs_Debug_DebugCodeSniff4T iMySource_Sniffs_CSS_BrowserSpecificStylesSniff5S kMySource_Sniffs_Commenting_FunctionCommentSniff0R aMySource_Sniffs_Channels_UnusedSystemSniff1Q cMySource_Sniffs_Channels_IncludeSystemSniff4P iMySource_Sniffs_Channels_IncludeOwnSystemSniff7O oMySource_Sniffs_Channels_DisallowSelfActionsSniff9N sPHP_CodeSniffer_Standards_IncorrectPatternException0M aGeneric_Sniffs_WhiteSpace_ScopeIndentSniff6L mGeneric_Sniffs_WhiteSpace_DisallowTabIndentSniff8K qGeneric_Sniffs_WhiteSpace_DisallowSpaceIndentSniff=J {Generic_Sniffs_VersionControl_SubversionPropertiesSniff9I sGeneric_Sniffs_Strings_UnnecessaryStringConcatSniff/H _Generic_Sniffs_PHP_UpperCaseConstantSniff$G IGeneric_Sniffs_PHP_SyntaxSniff'F OGeneric_Sniffs_PHP_SAPIUsageSniff.E ]Generic_Sniffs_PHP_NoSilencedErrorsSniff.D ]Generic_Sniffs_PHP_LowerCaseKeywordSniff/C _Generic_Sniffs_PHP_LowerCaseConstantSniff0B aGeneric_Sniffs_PHP_ForbiddenFunctionsSniff2A eGeneric_Sniffs_PHP_DisallowShortOpenTagSniff1@ cGeneric_Sniffs_PHP_DeprecatedFunctionsSniff+? WGeneric_Sniffs_PHP_ClosingPHPTagSniff:> uGeneric_Sniffs_PHP_CharacterBeforePHPOpeningTagSniffB= Generic_Sniffs_NamingConventions_UpperCaseConstantNameSniff;< wGeneric_Sniffs_NamingConventions_ConstructorNameSniffB; Generic_Sniffs_NamingConventions_CamelCapsFunctionNameSniff.: ]Generic_Sniffs_Metrics_NestingLevelSniff69 mGeneric_Sniffs_Metrics_CyclomaticComplexitySniffI8 Generic_Sniffs_Functions_OpeningFunctionBraceKernighanRitchieSniffB7 Generic_Sniffs_Functions_OpeningFunctionBraceBsdAllmanSniff?6 Generic_Sniffs_Functions_FunctionCallArgumentSpacingSniff;5 wGeneric_Sniffs_Functions_CallTimePassByReferenceSniff34 gGeneric_Sniffs_Formatting_SpaceAfterCastSniff53 kGeneric_Sniffs_Formatting_NoSpaceAfterCastSniff?2 Generic_Sniffs_Formatting_MultipleStatementAlignmentSniff?1 Generic_Sniffs_Formatting_DisallowMultipleStatementsSniff/0 _Generic_Sniffs_Files_OneTraitPerFileSniff3/ gGeneric_Sniffs_Files_OneInterfacePerFileSniff/. _Generic_Sniffs_Files_OneClassPerFileSniff2- eGeneric_Sniffs_Files_LowercasedFilenameSniff*, UGeneric_Sniffs_Files_LineLengthSniff++ WGeneric_Sniffs_Files_LineEndingsSniff** UGeneric_Sniffs_Files_InlineHTMLSniff0) aGeneric_Sniffs_Files_EndFileNoNewlineSniff.( ]Generic_Sniffs_Files_EndFileNewlineSniff-' [Generic_Sniffs_Files_ByteOrderMarkSniff&& MGeneric_Sniffs_Debug_JSHintSniff'% OGeneric_Sniffs_Debug_CSSLintSniff-$ [Generic_Sniffs_Debug_ClosureLinterSniffC# Generic_Sniffs_ControlStructures_InlineControlStructureSniff)" SGeneric_Sniffs_Commenting_TodoSniff   G  Wj9q;zO zF


x
C
				m	:V l1~9v7}Q!q=	wKkC                                                                         2/ eSquiz_Sniffs_Formatting_OperatorBracketSniff+. WSquiz_Sniffs_Files_FileExtensionSniff$- ISquiz_Sniffs_Debug_JSLintSniff,, YSquiz_Sniffs_Debug_JavaScriptLintSniff)+ SSquiz_Sniffs_CSS_ShorthandSizeSniff,* YSquiz_Sniffs_CSS_SemicolonSpacingSniff#) GSquiz_Sniffs_CSS_OpacitySniff(( QSquiz_Sniffs_CSS_NamedColoursSniff(' QSquiz_Sniffs_CSS_MissingColonSniff4& iSquiz_Sniffs_CSS_LowercaseStyleDefinitionSniff'% OSquiz_Sniffs_CSS_IndentationSniff+$ WSquiz_Sniffs_CSS_ForbiddenStylesSniff0# aSquiz_Sniffs_CSS_EmptyStyleDefinitionSniff0" aSquiz_Sniffs_CSS_EmptyClassDefinitionSniff4! iSquiz_Sniffs_CSS_DuplicateStyleDefinitionSniff4  iSquiz_Sniffs_CSS_DuplicateClassDefinitionSniff< ySquiz_Sniffs_CSS_DisallowMultipleStyleDefinitionsSniff, YSquiz_Sniffs_CSS_ColourDefinitionSniff( QSquiz_Sniffs_CSS_ColonSpacingSniff< ySquiz_Sniffs_CSS_ClassDefinitionOpeningBraceSpaceSniff6 mSquiz_Sniffs_CSS_ClassDefinitionNameSpacingSniff< ySquiz_Sniffs_CSS_ClassDefinitionClosingBraceSpaceSniff; wSquiz_Sniffs_ControlStructures_SwitchDeclarationSniff> }Squiz_Sniffs_ControlStructures_LowercaseDeclarationSniff= {Squiz_Sniffs_ControlStructures_InlineIfDeclarationSniff< ySquiz_Sniffs_ControlStructures_ForLoopDeclarationSniffA Squiz_Sniffs_ControlStructures_ForEachLoopDeclarationSniff; wSquiz_Sniffs_ControlStructures_ElseIfDeclarationSniff: uSquiz_Sniffs_ControlStructures_ControlSignatureSniff2 eSquiz_Sniffs_Commenting_VariableCommentSniff7 oSquiz_Sniffs_Commenting_PostStatementCommentSniff> }Squiz_Sniffs_Commenting_LongConditionClosingCommentSniff0 aSquiz_Sniffs_Commenting_InlineCommentSniff: uSquiz_Sniffs_Commenting_FunctionCommentThrowTagSniff2 eSquiz_Sniffs_Commenting_FunctionCommentSniff. ]Squiz_Sniffs_Commenting_FileCommentSniff4 iSquiz_Sniffs_Commenting_EmptyCatchCommentSniff6
 mSquiz_Sniffs_Commenting_DocCommentAlignmentSniff<	 ySquiz_Sniffs_Commenting_ClosingDeclarationCommentSniff/ _Squiz_Sniffs_Commenting_ClassCommentSniff/ _Squiz_Sniffs_Commenting_BlockCommentSniff. ]Squiz_Sniffs_Classes_ValidClassNameSniff3 gSquiz_Sniffs_Classes_SelfMemberReferenceSniff6 mSquiz_Sniffs_Classes_LowercaseClassKeywordsSniff1 cSquiz_Sniffs_Classes_DuplicatePropertySniff- [Squiz_Sniffs_Classes_ClassFileNameSniff0 aSquiz_Sniffs_Classes_ClassDeclarationSniff/  _Squiz_Sniffs_Arrays_ArrayDeclarationSniff2 eSquiz_Sniffs_Arrays_ArrayBracketSpacingSniff0~ aPSR2_Sniffs_Namespaces_UseDeclarationSniff6} mPSR2_Sniffs_Namespaces_NamespaceDeclarationSniff0| aPSR2_Sniffs_Methods_MethodDeclarationSniff4{ iPSR2_Sniffs_Methods_FunctionCallSignatureSniff+z WPSR2_Sniffs_Files_EndFileNewlineSniff'y OPSR2_Sniffs_Files_ClosingTagSniff:x uPSR2_Sniffs_ControlStructures_SwitchDeclarationSniff:w uPSR2_Sniffs_ControlStructures_ElseIfDeclarationSniffAv PSR2_Sniffs_ControlStructures_ControlStructureSpacingSniff2u ePSR2_Sniffs_Classes_PropertyDeclarationSniff/t _PSR2_Sniffs_Classes_ClassDeclarationSniff2s ePSR1_Sniffs_Methods_CamelCapsMethodNameSniff(r QPSR1_Sniffs_Files_SideEffectsSniff/q _PSR1_Sniffs_Classes_ClassDeclarationSniff-p [PEAR_Sniffs_WhiteSpace_ScopeIndentSniff3o gPEAR_Sniffs_WhiteSpace_ScopeClosingBraceSniff6n mPEAR_Sniffs_WhiteSpace_ObjectOperatorIndentSniff:m uPEAR_Sniffs_NamingConventions_ValidVariableNameSniff:l uPEAR_Sniffs_NamingConventions_ValidFunctionNameSniff7k oPEAR_Sniffs_NamingConventions_ValidClassNameSniff2j ePEAR_Sniffs_Functions_ValidDefaultValueSniff4i iPEAR_Sniffs_Functions_FunctionDeclarationSniff   [  ~?Kc&~F
m1



|
O
(				d	7	i7yCTq:h<}nYA.oT@)iUD+        '
 OPHPUnit_Extensions_GroupTestSuite	 'Issue1340Test Error %ExampleClass +SkipLintProcess Process !PhpProcess 'PhpExecutable #LintProcess +GitBlameProcess  'ArrayIterator Settings~ Result} %ParallelLint| )MultipleWriter{ !FileWriterz 'ConsoleWritery !NullWriterx /TextOutputColoredw !TextOutputv !JsonOutput&u MRecursiveDirectoryFilterIteratort Managers 9NotExistsPathExceptionr =InvalidArgumentExceptionq -RunTimeExceptionp Exceptiono )ErrorFormattern #SyntaxErrorm Blamel Errork +PHP_CodeSnifferj 9PHP_CodeSniffer_Tokens$i IPHP_CodeSniffer_Tokenizers_PHP#h GPHP_CodeSniffer_Tokenizers_JS$g IPHP_CodeSniffer_Tokenizers_CSS(f QPHP_CodeSniffer_Tokenizers_Comment:e uZend_Sniffs_NamingConventions_ValidVariableNameSniff'd OZend_Sniffs_Files_ClosingTagSniff)c SZend_Sniffs_Debug_CodeAnalyzerSniff8b qSquiz_Sniffs_WhiteSpace_SuperfluousWhitespaceSniff3a gSquiz_Sniffs_WhiteSpace_SemicolonSpacingSniff6` mSquiz_Sniffs_WhiteSpace_ScopeKeywordSpacingSniff4_ iSquiz_Sniffs_WhiteSpace_ScopeClosingBraceSniff7^ oSquiz_Sniffs_WhiteSpace_PropertyLabelSpacingSniff2] eSquiz_Sniffs_WhiteSpace_OperatorSpacingSniff8\ qSquiz_Sniffs_WhiteSpace_ObjectOperatorSpacingSniff3[ gSquiz_Sniffs_WhiteSpace_MemberVarSpacingSniff9Z sSquiz_Sniffs_WhiteSpace_LogicalOperatorSpacingSniff;Y wSquiz_Sniffs_WhiteSpace_LanguageConstructSpacingSniff2X eSquiz_Sniffs_WhiteSpace_FunctionSpacingSniff<W ySquiz_Sniffs_WhiteSpace_FunctionOpeningBraceSpaceSniff<V ySquiz_Sniffs_WhiteSpace_FunctionClosingBraceSpaceSniff:U uSquiz_Sniffs_WhiteSpace_ControlStructureSpacingSniff.T ]Squiz_Sniffs_WhiteSpace_CastSpacingSniff-S [Squiz_Sniffs_Strings_EchoedStringsSniff0R aSquiz_Sniffs_Strings_DoubleQuoteUsageSniff4Q iSquiz_Sniffs_Strings_ConcatenationSpacingSniff-P [Squiz_Sniffs_Scope_StaticThisUsageSniff)O SSquiz_Sniffs_Scope_MethodScopeSniff,N YSquiz_Sniffs_Scope_MemberVarScopeSniff-M [Squiz_Sniffs_PHP_NonExecutableCodeSniff1L cSquiz_Sniffs_PHP_LowercasePHPFunctionsSniff*K USquiz_Sniffs_PHP_InnerFunctionsSniff#J GSquiz_Sniffs_PHP_HeredocSniff)I SSquiz_Sniffs_PHP_GlobalKeywordSniff.H ]Squiz_Sniffs_PHP_ForbiddenFunctionsSniff G ASquiz_Sniffs_PHP_EvalSniff'F OSquiz_Sniffs_PHP_EmbeddedPhpSniff0E aSquiz_Sniffs_PHP_DiscouragedFunctionsSniff8D qSquiz_Sniffs_PHP_DisallowSizeFunctionsInLoopsSniff.C ]Squiz_Sniffs_PHP_DisallowObEndFlushSniff7B oSquiz_Sniffs_PHP_DisallowMultipleAssignmentsSniff,A YSquiz_Sniffs_PHP_DisallowInlineIfSniff8@ qSquiz_Sniffs_PHP_DisallowComparisonAssignmentSniff4? iSquiz_Sniffs_PHP_DisallowBooleanStatementSniff,> YSquiz_Sniffs_PHP_CommentedOutCodeSniff7= oSquiz_Sniffs_Operators_ValidLogicalOperatorsSniff9< sSquiz_Sniffs_Operators_IncrementDecrementUsageSniff9; sSquiz_Sniffs_Operators_ComparisonOperatorUsageSniff1: cSquiz_Sniffs_Objects_ObjectMemberCommaSniff39 gSquiz_Sniffs_Objects_ObjectInstantiationSniff98 sSquiz_Sniffs_Objects_DisallowObjectStringIndexSniff;7 wSquiz_Sniffs_NamingConventions_ValidVariableNameSniff;6 wSquiz_Sniffs_NamingConventions_ValidFunctionNameSniff>5 }Squiz_Sniffs_Functions_MultiLineFunctionDeclarationSniff;4 wSquiz_Sniffs_Functions_LowercaseFunctionKeywordsSniff03 aSquiz_Sniffs_Functions_GlobalFunctionSniff;2 wSquiz_Sniffs_Functions_FunctionDuplicateArgumentSniff51 kSquiz_Sniffs_Functions_FunctionDeclarationSniffE0 	Squiz_Sniffs_Functions_FunctionDeclarationArgumentSpacingSniff   U  Z/V$[]&U'



f
9
			j	8		}MIU-\.lBlEjC!mI    "_ EPHPUnit_TextUI_ResultPrinter^ 9PHPUnit_TextUI_Command] 9PHPUnit_Runner_Version,\ YPHPUnit_Runner_StandardTestSuiteLoader [ APHPUnit_Runner_Filter_Test/Z _PHPUnit_Runner_Filter_GroupFilterIterator)Y SPHPUnit_Runner_Filter_Group_Include)X SPHPUnit_Runner_Filter_Group_Exclude#W GPHPUnit_Runner_Filter_FactoryV =PHPUnit_Runner_Exception#U GPHPUnit_Runner_BaseTestRunnerT ?PHPUnit_Framework_Warning7S oPHPUnit_Framework_UnintentionallyCoveredCodeError!R CPHPUnit_Framework_TestSuite.Q ]PHPUnit_Framework_TestSuite_DataProvider"P EPHPUnit_Framework_TestResult#O GPHPUnit_Framework_TestFailure N APHPUnit_Framework_TestCase&M MPHPUnit_Framework_SyntheticError-L [PHPUnit_Framework_SkippedTestSuiteError(K QPHPUnit_Framework_SkippedTestError'J OPHPUnit_Framework_SkippedTestCase&I MPHPUnit_Framework_RiskyTestError#H GPHPUnit_Framework_OutputError4G iPHPUnit_Framework_InvalidCoversTargetException0F aPHPUnit_Framework_InvalidCoversTargetError+E WPHPUnit_Framework_IncompleteTestError*D UPHPUnit_Framework_IncompleteTestCase2C ePHPUnit_Framework_ExpectationFailedException(B QPHPUnit_Framework_ExceptionWrapper!A CPHPUnit_Framework_Exception@ ;PHPUnit_Framework_Error%? KPHPUnit_Framework_Error_Warning$> IPHPUnit_Framework_Error_Notice(= QPHPUnit_Framework_Error_Deprecated"< EPHPUnit_Framework_Constraint&; MPHPUnit_Framework_Constraint_Xor:: uPHPUnit_Framework_Constraint_TraversableContainsOnly69 mPHPUnit_Framework_Constraint_TraversableContains38 gPHPUnit_Framework_Constraint_StringStartsWith07 aPHPUnit_Framework_Constraint_StringMatches16 cPHPUnit_Framework_Constraint_StringEndsWith15 cPHPUnit_Framework_Constraint_StringContains+4 WPHPUnit_Framework_Constraint_SameSize,3 YPHPUnit_Framework_Constraint_PCREMatch%2 KPHPUnit_Framework_Constraint_Or51 kPHPUnit_Framework_Constraint_ObjectHasAttribute&0 MPHPUnit_Framework_Constraint_Not+/ WPHPUnit_Framework_Constraint_LessThan.. ]PHPUnit_Framework_Constraint_JsonMatchesD- PHPUnit_Framework_Constraint_JsonMatches_ErrorMessageProvider), SPHPUnit_Framework_Constraint_IsType)+ SPHPUnit_Framework_Constraint_IsTrue)* SPHPUnit_Framework_Constraint_IsNull)) SPHPUnit_Framework_Constraint_IsJson/( _PHPUnit_Framework_Constraint_IsInstanceOf.' ]PHPUnit_Framework_Constraint_IsIdentical*& UPHPUnit_Framework_Constraint_IsFalse*% UPHPUnit_Framework_Constraint_IsEqual*$ UPHPUnit_Framework_Constraint_IsEmpty-# [PHPUnit_Framework_Constraint_IsAnything." ]PHPUnit_Framework_Constraint_GreaterThan-! [PHPUnit_Framework_Constraint_FileExists9  sPHPUnit_Framework_Constraint_ExceptionMessageRegExp3 gPHPUnit_Framework_Constraint_ExceptionMessage0 aPHPUnit_Framework_Constraint_ExceptionCode, YPHPUnit_Framework_Constraint_Exception( QPHPUnit_Framework_Constraint_Count, YPHPUnit_Framework_Constraint_Composite: uPHPUnit_Framework_Constraint_ClassHasStaticAttribute4 iPHPUnit_Framework_Constraint_ClassHasAttribute+ WPHPUnit_Framework_Constraint_Callback, YPHPUnit_Framework_Constraint_Attribute. ]PHPUnit_Framework_Constraint_ArraySubset. ]PHPUnit_Framework_Constraint_ArrayHasKey& MPHPUnit_Framework_Constraint_And- [PHPUnit_Framework_CodeCoverageException( QPHPUnit_Framework_BaseTestListener, YPHPUnit_Framework_AssertionFailedError =PHPUnit_Framework_Assert' OPHPUnit_Extensions_TicketListener& MPHPUnit_Extensions_TestDecorator% KPHPUnit_Extensions_RepeatedTest& MPHPUnit_Extensions_PhptTestSuite% KPHPUnit_Extensions_PhptTestCase   z vU4mO-R!gQA#gYE




X
B

				]	6	pQ4eE! s[@1dM<'y\0d9pWB]6     Y /SampleArrayAccessX -RequirementsTest#W GRequirementsClassDocBlockTest*V URequirementsClassBeforeClassHookTestU -OverrideTestCaseT )OutputTestCaseS #OneTestCaseR +NotVoidTestCaseQ /NotPublicTestCaseP #NothingTest#O GNotExistingCoveredElementTestN #NoTestCasesM +NoTestCaseClassL NonStaticK /NoArgTestCaseTest!J CNamespaceCoveragePublicTest$I INamespaceCoverageProtectedTest"H ENamespaceCoveragePrivateTest$G INamespaceCoverageNotPublicTest'F ONamespaceCoverageNotProtectedTest%E KNamespaceCoverageNotPrivateTest!D CNamespaceCoverageMethodTest&C MNamespaceCoverageCoversClassTest,B YNamespaceCoverageCoversClassPublicTest A ANamespaceCoverageClassTest(@ QNamespaceCoverageClassExtendedTest? 3MultiDependencyTest> !MockRunner= 'IsolationTest< IniTest; /InheritedTestCase: %InheritanceB9 %InheritanceA8 )IncompleteTest7 FatalTest6 #FailureTest5 Failure4 'ExceptionTest3 1ExceptionStackTest2 +ExceptionInTest1 ;ExceptionInTearDownTest0 5ExceptionInSetUpTest(/ QExceptionInAssertPreConditionsTest). SExceptionInAssertPostConditionsTest- Error, /EmptyTestCaseTest+ )DummyException* )DoubleTestCase) 3DependencyTestSuite( 7DependencySuccessTest' 7DependencyFailureTest& -DataProviderTest% ;DataProviderSkippedTest $ ADataProviderIncompleteTest# 9DataProviderFilterTest" 7DataProviderDebugTest! 'CustomPrinter  %CoveredClass 1CoveredParentClass( QCoverageTwoDefaultClassAnnotations 1CoveragePublicTest 7CoverageProtectedTest 3CoveragePrivateTest 7CoverageNotPublicTest =CoverageNotProtectedTest 9CoverageNotPrivateTest 3CoverageNothingTest -CoverageNoneTest 1CoverageMethodTest- [CoverageMethodParenthesesWhitespaceTest# GCoverageMethodParenthesesTest) SCoverageMethodOneLineAnnotationTest 5CoverageFunctionTest/ _CoverageFunctionParenthesesWhitespaceTest% KCoverageFunctionParenthesesTest /CoverageClassTest ?CoverageClassExtendedTest %ConcreteTest' OConcreteWithMyCustomExtensionTest
 /ClassWithToString"	 EClassWithNonPublicAttributes( QParentClassWithProtectedAttributes& MParentClassWithPrivateAttributes' OChangeCurrentWorkingDirectoryTest !Calculator
 Book" EBeforeClassAndAfterClassTest 1BeforeAndAfterTest 9BaseTestListenerSample(  QBankAccountWithCustomExtensionTest +BankAccountTest~ #BankAccount} 5BankAccountException| Author{ %AbstractTestz -PHPUnit_Util_XMLy /PHPUnit_Util_Type$x IPHPUnit_Util_TestSuiteIterator(w QPHPUnit_Util_TestDox_ResultPrinter-v [PHPUnit_Util_TestDox_ResultPrinter_Text-u [PHPUnit_Util_TestDox_ResultPrinter_HTML)t SPHPUnit_Util_TestDox_NamePrettifiers /PHPUnit_Util_Testr 3PHPUnit_Util_Stringq 1PHPUnit_Util_Regexp 5PHPUnit_Util_Printero -PHPUnit_Util_PHPn =PHPUnit_Util_PHP_Windowsm =PHPUnit_Util_PHP_Defaultl 5PHPUnit_Util_Log_TAPk 9PHPUnit_Util_Log_JUnitj 7PHPUnit_Util_Log_JSON(i QPHPUnit_Util_InvalidArgumentHelperh =PHPUnit_Util_GlobalStateg 3PHPUnit_Util_Getoptf 3PHPUnit_Util_Filtere ;PHPUnit_Util_Filesystemd ;PHPUnit_Util_Fileloaderc ?PHPUnit_Util_ErrorHandler b APHPUnit_Util_Configurationa 9PHPUnit_Util_Blacklist` ?PHPUnit_TextUI_TestRunner   E qZ:fHxU.
r]L5u^G0





k
U
?
)
							c	E	-	bN6`J3iZ;'q]C(v[>-r\A.w^C*kTE                 o Phingn 'TargetHandlerm #RootHandlerl )ProjectHandlerk 3ProjectConfiguratorj +PhingXMLContexti Locationh #ExpatParserg 3ExpatParseExceptionf )ElementHandlere +DataTypeHandlerd /AbstractSAXParserc +AbstractHandlerb %RegexpMappera #MergeMapper` )IdentityMapper_ !GlobMapper^ 'FlattenMapper] +ContainerMapper\ +CompositeMapper[ 'ChainedMapperZ XmlLoggerY /TimestampedLoggerX %TargetLoggerW %SilentLoggerV 'ProfileLoggerU +PearLogListenerT )NoBannerLoggerS !MailLoggerR +HtmlColorLoggerQ 'DefaultLoggerP +AnsiColorLoggerO CapsuleN 3IntrospectionHelperM /YesNoInputRequest L AMultipleChoiceInputRequestK %InputRequestJ 3DefaultInputHandlerI XSLTParamH !XsltFilterG )XincludeFilterF 1IniFileTokenReaderE /ChainReaderHelperD -TranslateGettextC !TidyFilterB !TailFilterA #TabToSpaces@ #SuffixLines? +StripWhitespace> -StripPhpComments= Comment< /StripLineComments; +StripLineBreaks: !SortFilter9 7ReplaceTokensWithFile8 Token7 'ReplaceTokens6 'ReplaceRegexp5 #PrefixLines4 1LineContainsRegexp3 Contains2 %LineContains1 #IconvFilter0 !HeadFilter/ -ExpandProperties. 'EscapeUnicode- %ConcatFilter, 7BaseParamFilterReader+ -BaseFilterReader* #Diagnostics!) CDocBlox_Parallel_WorkerPipe( ;DocBlox_Parallel_Worker' =DocBlox_Parallel_Manager& 9ConfigurationException% )BuildException$ !BuildEvent# ?BuildPhingPEARPackageTask" %CoveredClass! 1CoveredParentClass  9ExceptionNamespaceTest %Util_XMLTest 'Util_TestTest% KUtil_TestDox_NamePrettifierTest )Util_RegexTest 5Util_GlobalStateTest 9Util_ConfigurationTest ?Runner_BaseTestRunnerTest %Issue797Test %Issue765Test %NewException #Issue74Test %Issue581Test %Issue503Test %Issue498Test %Issue445Test %Issue433Test %Issue322Test =Issue244ExceptionIntCode /Issue244Exception %Issue244Test 'Issue1570Test
 'Issue1472Test	 'Issue1471Test 'Issue1468Test 'Issue1437Test 'Issue1374Test 'Issue1351Test 7ChildProcessClass1351 'Issue1348Test 'Issue1340Test 'Issue1337Test  'Issue1335Test 'Issue1330Test~ 'Issue1265Test} 'Issue1216Test| 'Issue1149Test{ TwoTestz #ParentSuitey OneTestx !ChildSuitew 5Foo_Bar_Issue684Testv %Issue578Testu Issue523t %Issue523Tests 'Issue1021Test r AFramework_TestListenerTest#q GFramework_TestImplementorTestp ?Framework_TestFailureTesto 9Framework_TestCaseTestn 3Framework_SuiteTestm =Framework_ConstraintTest*l UFramework_Constraint_JsonMatchesTest?k Framework_Constraint_JsonMatches_ErrorMessageProviderTestj 5ExceptionMessageTest i AExceptionMessageRegExpTesth CountTest$g IFramework_BaseTestListenerTestf 5Framework_AssertTest!e CExtensions_RepeatedTestTestd WasRunc =ThrowNoExceptionTestCaseb 9ThrowExceptionTestCasea 'TestIterator2` %TestIterator_ 3TemplateMethodsTest^ Success] Struct\ StackTest[ SingletonZ #SampleClass   9 qX>*ubM='hM9'ycK/kUA&





p
Z
D
.

						|	g	S	=	(	xdO7mM1fP=nJ2z`G0jM,|\H$}bM9    !PHPLocTask #PhpLintTask /PhpDocumentorTask ?PhpDocumentorExternalTask 7PhpDocumentor2Wrapper 1PhpDocumentor2Task  ;PhingPhpDocumentorSetup$ IPhingPhpDocumentorErrorTracker ~ APhpCodeSnifferTask_Wrapper} !PHPCPDTask| 9PHPCPDFormatterElement{ =PMDPHPCPDResultFormatterz 7PHPCPDResultFormatter"y EDefaultPHPCPDResultFormatter)x SPhpCodeSnifferTask_FormatterElementw 1PhpCodeSnifferTaskv ;PhkPackageWebAccessPathu 3PhkPackageWebAccesst )PhkPackageTasks +PharPackageTaskr 3PharMetadataElementq %PharMetadatap %PharDataTasko #PearPkgRolen 7PearPkgMappingElementm )PearPkgMappingl 'PearPkgOptionk +PearPackageTaskj -PearPackage2Task%i KPEAR_PackageFileManager_Fileseth 7XMLPDOResultFormatterg ;PlainPDOResultFormatterf 7PgsqlPDOQuerySplittere PDOTaskd 7PDOSQLExecTransactionc )PDOSQLExecTask b APDOSQLExecFormatterElementa 1PDOResultFormatter` -PDOQuerySplitter_ 7DummyPDOQuerySplitter^ ;DefaultPDOQuerySplitter] 'PhpDependTask\ 9PhpDependLoggerElement[ =PhpDependAnalyzerElementZ PatchTaskY %ParallelTaskX /PackageAsPathTaskW %ManifestTaskV MailTaskU 3LiquibaseUpdateTaskT 'LiquibaseTaskS -LiquibaseTagTaskR 7LiquibaseRollbackTaskQ /LiquibaseDiffTaskP 1LiquibaseDbDocTaskO 9LiquibaseChangeLogTaskN /LiquibasePropertyM 1LiquibaseParameterL 7AbstractLiquibaseTaskK JsMinTaskJ #JslLintTaskI !JsHintTaskH 1IoncubeLicenseTaskG 1IoncubeEncoderTaskF )IoncubeCommentE #InifileTaskD !IniFileSetC 'IniFileRemoveB 'IniFileConfigA HttpTask@ +HttpRequestTask? #HttpGetTask> +GrowlNotifyTask= !GitTagTask< #GitPushTask; #GitPullTask: %GitMergeTask9 !GitLogTask8 #GitInitTask7 GitGcTask6 %GitFetchTask5 'GitCommitTask4 %GitCloneTask3 +GitCheckoutTask2 'GitBranchTask1 #GitBaseTask0 'FtpDeployTask/ %FileSyncTask. %FileSizeTask- %FileHashTask, +ExtractBaseTask+ 5ExportPropertiesTask* -DbmsSyntaxSQLite) +DbmsSyntaxPgSQL( -DbmsSyntaxOracle' +DbmsSyntaxMysql& +DbmsSyntaxMsSql% /DbmsSyntaxFactory$ !DbmsSyntax# %DbDeployTask" !CreoleTask! 1SQLExecTransaction  /CreoleSQLExecTask 7CoverageThresholdTask /CoverageSetupTask ?CoverageReportTransformer 1CoverageReportTask 1CoverageMergerTask )CoverageMerger %ComposerTask #AssignedVar #CapsuleTask )AutoloaderTask !ApiGenTask #TaskAdapter
 Task Target Timer %RegisterSlot Register !Properties /SecurityException 5NullPointerException 7FileNotFoundException
 #EventObject	 Character Writer +WinNTFileSystem +Win32FileSystem )UnixFileSystem %StringReader Reader #PrintStream PhingFile  1OutputStreamWriter %OutputStream~ #IOException} /InputStreamReader| #InputStream{ %FilterReaderz !FileWritery !FileSystemx !FileReaderw -FileOutputStreamv +FileInputStreamu 'ConsoleReadert )BufferedWriters )BufferedReaderr 3RuntimeConfigurableq -ProjectComponentp Project   X uP)hQ>#iE~mJ1 	fQ=&






s
^
E
0
						x	^	M	9	&	|fO1hR=(wbQ=$x_L6 q[D.waM1gU@0lX              ' !PatternSet& #PathElement
% Path$ Parameter# Mapper" +IterableFileSet! #FilterChain  FileSet FileList /ExcludesNameEntry Excludes DirSet #Description DataType /CommandlineMarker 3CommandlineArgument #Commandline +AbstractFileSet XsltTask WarnTask #WaitForTask %UpToDateTask #TypedefTask 1TstampCustomFormat !TstampTask %TryCatchTask TouchTask TempFile #TaskdefTask
 CaseTask	 !SwitchTask )SequentialTask Retry +ResolvePathTask 'ReflexiveTask %RecorderTask 'RecorderEntry %PropertyTask 1PropertyPromptTask  'FunctionParam #PhpEvalTask~ )PhingReference} PhingTask| 'PhingCallTask{ MoveTaskz MkdirTasky %MatchingTaskx %LoadFileTaskw InputTaskv +IncludePathTasku !ImportTaskt !ElseIfTasks IfTaskr #ForeachTaskq FailTaskp ExecTasko EchoTaskn )EchoPropertiesm Dirnamel +DiagnosticsTaskk !DeleteTaskj CvsTaski #CvsPassTaskh CopyTaskg 'ConditionTaskf %XorConditione ;VersionCompareConditiond +SocketConditionc =ReferenceExistsConditionb %PhingVersiona #OsCondition` #OrCondition_ %NotCondition^ +IsTrueCondition] )IsSetCondition\ -IsFalseCondition[ 'HttpConditionZ 7HasFreeSpaceConditionY !FilesMatchX +EqualsConditionW /ContainsConditionV 5ConditionEnumerationU 'ConditionBaseT %AndConditionS ChownTaskR ChmodTaskQ BasenameP 'AvailableTaskO ApplyTaskN !AppendTaskM -AdhocTypedefTaskL -AdhocTaskdefTaskK AdhocTaskJ !ZipFileSetI ZipTaskH -zsdtValidateTaskG %zsdtPackTaskF %zsdtBaseTaskE 5ZendGuardLicenseTaskD -ZendGuardFileSetC 3ZendGuardEncodeTaskB 5ZendCodeAnalyzerTaskA +XmlPropertyTask@ #XmlLintTask? +WikiPublishTask> #VersionTask= UnzipTask< UntarTask; ThrowTask: !TarFileSet9 TarTask8 #SymlinkTask7 1SymfonyConsoleTask	6 Arg5 'SvnUpdateTask4 'SvnSwitchTask3 !SvnLogTask2 #SvnListTask1 3SvnLastRevisionTask0 #SvnInfoTask/ 'SvnExportTask. #SvnCopyTask- 'SvnCommitTask, +SvnCheckoutTask+ #SvnBaseTask* 'StopwatchTask) SshTask( +Ssh2MethodParam' ?Ssh2MethodConnectionParam& ScpTask% !SmartyTask"$ ESimpleTestXmlResultFormatter# )SimpleTestTask&" MSimpleTestSummaryResultFormatter! ?SimpleTestResultFormatter$  ISimpleTestPlainResultFormatter  ASimpleTestFormatterElement$ ISimpleTestDebugResultFormatter$ ISimpleTestCountResultFormatter )Service_Amazon /Service_Amazon_S3 S3PutTask S3GetTask rSTTask /ReplaceRegexpTask RegexTask 'PathToFileSet  AAbstractPropertySetterTask #PHPUnitUtil /PHPUnitTestRunner #PHPUnitTask /PHPUnitReportTask -FormatterElement ?XMLPHPUnitResultFormatter# GSummaryPHPUnitResultFormatter! CPlainPHPUnitResultFormatter 9PHPUnitResultFormatter"
 ECloverPHPUnitResultFormatter	 BatchTest PHPMDTask 7PHPMDFormatterElement   W gR6 jP6 nYA.{`J6lG2






s
a
E
0

						{	a	H	3		
yfI3}iQ8!~gS;&ygN1~fO6oS@+dF+lW               G #AssignedVarF #CapsuleTaskE )AutoloaderTaskD !ApiGenTaskC #TaskAdapter
B TaskA Target@ Timer? %RegisterSlot> Register= !Properties< /SecurityException; 5NullPointerException: 7FileNotFoundException9 #EventObject8 Character7 Writer6 +WinNTFileSystem5 +Win32FileSystem4 )UnixFileSystem3 %StringReader2 Reader1 #PrintStream0 PhingFile/ 1OutputStreamWriter. %OutputStream- #IOException, /InputStreamReader+ #InputStream* %FilterReader) !FileWriter( !FileSystem' !FileReader& -FileOutputStream% +FileInputStream$ 'ConsoleReader# )BufferedWriter" )BufferedReader! 3RuntimeConfigurable  -ProjectComponent Project Phing 'TargetHandler #RootHandler )ProjectHandler 3ProjectConfigurator +PhingXMLContext Location #ExpatParser 3ExpatParseException )ElementHandler +DataTypeHandler /AbstractSAXParser +AbstractHandler %RegexpMapper #MergeMapper )IdentityMapper !GlobMapper 'FlattenMapper +ContainerMapper +CompositeMapper
 'ChainedMapper	 XmlLogger /TimestampedLogger %TargetLogger %SilentLogger 'ProfileLogger +PearLogListener )NoBannerLogger !MailLogger +HtmlColorLogger  'DefaultLogger +AnsiColorLogger~ Capsule} 3IntrospectionHelper| /YesNoInputRequest { AMultipleChoiceInputRequestz %InputRequesty 3DefaultInputHandlerx XSLTParamw !XsltFilterv )XincludeFilteru 1IniFileTokenReadert /ChainReaderHelpers -TranslateGettextr !TidyFilterq !TailFilterp #TabToSpaceso #SuffixLinesn +StripWhitespacem -StripPhpCommentsl Commentk /StripLineCommentsj +StripLineBreaksi !SortFilterh 7ReplaceTokensWithFileg Tokenf 'ReplaceTokense 'ReplaceRegexpd #PrefixLinesc 1LineContainsRegexpb Containsa %LineContains` #IconvFilter_ !HeadFilter^ -ExpandProperties] 'EscapeUnicode\ %ConcatFilter[ 7BaseParamFilterReaderZ -BaseFilterReaderY #Diagnostics!X CDocBlox_Parallel_WorkerPipeW ;DocBlox_Parallel_WorkerV =DocBlox_Parallel_ManagerU 9ConfigurationExceptionT )BuildExceptionS !BuildEventR ?BuildPhingPEARPackageTaskQ )HelloWorldTestP !HelloWorldO %StringHelperN /SourceFileScannerM RegexpL !PregEngineK 1PearPackageScannerJ 'PathTokenizerI LogWriterH FileUtilsG 1ExtendedFileStreamF -DirectoryScannerE DataStoreD )UnknownElementC #TokenSourceB #TokenReaderA %TypeSelector@ %SizeSelector? )SelectSelector> 'SelectorUtils= +PresentSelector< !OrSelector; #NotSelector: %NoneSelector9 -MajoritySelector8 -FilenameSelector7 )ExtendSelector6 'DepthSelector5 )DependSelector4 %DateSelector3 -ContainsSelector2 9ContainsRegexpSelector1 7BaseSelectorContainer0 %BaseSelector/ 1BaseExtendSelector. #AndSelector- /RegularExpression, Reference+ 'PropertyValue* /PhingFilterReader) 1PearPackageFileSet( 3PatternSetNameEntry   - w\="{aH.rYC,mX?-r]J+




~
d
M
0

						k	J	+	jI*kU?"	jD%bF'{U5|aL(yQ)xR>-         U ScpTaskT !SmartyTask"S ESimpleTestXmlResultFormatterR )SimpleTestTask&Q MSimpleTestSummaryResultFormatterP ?SimpleTestResultFormatter$O ISimpleTestPlainResultFormatter N ASimpleTestFormatterElement$M ISimpleTestDebugResultFormatter$L ISimpleTestCountResultFormatterK )Service_AmazonJ /Service_Amazon_S3I S3PutTaskH S3GetTaskG rSTTaskF /ReplaceRegexpTaskE RegexTaskD 'PathToFileSet C AAbstractPropertySetterTaskB #PHPUnitUtilA /PHPUnitTestRunner@ #PHPUnitTask? /PHPUnitReportTask> -FormatterElement= ?XMLPHPUnitResultFormatter#< GSummaryPHPUnitResultFormatter!; CPlainPHPUnitResultFormatter: 9PHPUnitResultFormatter"9 ECloverPHPUnitResultFormatter8 BatchTest7 PHPMDTask6 7PHPMDFormatterElement5 !PHPLocTask4 #PhpLintTask3 /PhpDocumentorTask2 ?PhpDocumentorExternalTask1 7PhpDocumentor2Wrapper0 1PhpDocumentor2Task/ ;PhingPhpDocumentorSetup$. IPhingPhpDocumentorErrorTracker - APhpCodeSnifferTask_Wrapper, !PHPCPDTask+ 9PHPCPDFormatterElement* =PMDPHPCPDResultFormatter) 7PHPCPDResultFormatter"( EDefaultPHPCPDResultFormatter)' SPhpCodeSnifferTask_FormatterElement& 1PhpCodeSnifferTask% ;PhkPackageWebAccessPath$ 3PhkPackageWebAccess# )PhkPackageTask" +PharPackageTask! 3PharMetadataElement  %PharMetadata %PharDataTask #PearPkgRole 7PearPkgMappingElement )PearPkgMapping 'PearPkgOption +PearPackageTask -PearPackage2Task% KPEAR_PackageFileManager_Fileset 7XMLPDOResultFormatter ;PlainPDOResultFormatter 7PgsqlPDOQuerySplitter PDOTask 7PDOSQLExecTransaction )PDOSQLExecTask  APDOSQLExecFormatterElement 1PDOResultFormatter -PDOQuerySplitter 7DummyPDOQuerySplitter ;DefaultPDOQuerySplitter 'PhpDependTask 9PhpDependLoggerElement
 =PhpDependAnalyzerElement	 PatchTask %ParallelTask /PackageAsPathTask %ManifestTask MailTask 3LiquibaseUpdateTask 'LiquibaseTask -LiquibaseTagTask 7LiquibaseRollbackTask  /LiquibaseDiffTask 1LiquibaseDbDocTask~ 9LiquibaseChangeLogTask} /LiquibaseProperty| 1LiquibaseParameter{ 7AbstractLiquibaseTaskz JsMinTasky #JslLintTaskx !JsHintTaskw 1IoncubeLicenseTaskv 1IoncubeEncoderTasku )IoncubeCommentt #InifileTasks !IniFileSetr 'IniFileRemoveq 'IniFileConfigp HttpTasko +HttpRequestTaskn #HttpGetTaskm +GrowlNotifyTaskl !GitTagTaskk #GitPushTaskj #GitPullTaski %GitMergeTaskh !GitLogTaskg #GitInitTaskf GitGcTaske %GitFetchTaskd 'GitCommitTaskc %GitCloneTaskb +GitCheckoutTaska 'GitBranchTask` #GitBaseTask_ 'FtpDeployTask^ %FileSyncTask] %FileSizeTask\ %FileHashTask[ +ExtractBaseTaskZ 5ExportPropertiesTaskY -DbmsSyntaxSQLiteX +DbmsSyntaxPgSQLW -DbmsSyntaxOracleV +DbmsSyntaxMysqlU +DbmsSyntaxMsSqlT /DbmsSyntaxFactoryS !DbmsSyntaxR %DbDeployTaskQ !CreoleTaskP 1SQLExecTransactionO /CreoleSQLExecTaskN 7CoverageThresholdTaskM /CoverageSetupTaskL ?CoverageReportTransformerK 1CoverageReportTaskJ 1CoverageMergerTaskI )CoverageMergerH %ComposerTask   f nWB+ydS?,oU7!q^G5"|]F,






j
I
3


							|	j	X	C	3		wdL7 jVD/
r`G2s^E5"mR=!mU;!nYD,vf                | Regexp{ !PregEnginez 1PearPackageScannery 'PathTokenizerx LogWriterw FileUtilsv 1ExtendedFileStreamu -DirectoryScannert DataStores )UnknownElementr #TokenSourceq #TokenReaderp %TypeSelectoro %SizeSelectorn )SelectSelectorm 'SelectorUtilsl +PresentSelectork !OrSelectorj #NotSelectori %NoneSelectorh -MajoritySelectorg -FilenameSelectorf )ExtendSelectore 'DepthSelectord )DependSelectorc %DateSelectorb -ContainsSelectora 9ContainsRegexpSelector` 7BaseSelectorContainer_ %BaseSelector^ 1BaseExtendSelector] #AndSelector\ /RegularExpression[ ReferenceZ 'PropertyValueY /PhingFilterReaderX 1PearPackageFileSetW 3PatternSetNameEntryV !PatternSetU #PathElement
T PathS ParameterR MapperQ +IterableFileSetP #FilterChainO FileSetN FileListM /ExcludesNameEntryL ExcludesK DirSetJ #DescriptionI DataTypeH /CommandlineMarkerG 3CommandlineArgumentF #CommandlineE +AbstractFileSetD XsltTaskC WarnTaskB #WaitForTaskA %UpToDateTask@ #TypedefTask? 1TstampCustomFormat> !TstampTask= %TryCatchTask< TouchTask; TempFile: #TaskdefTask9 CaseTask8 !SwitchTask7 )SequentialTask6 Retry5 +ResolvePathTask4 'ReflexiveTask3 %RecorderTask2 'RecorderEntry1 %PropertyTask0 1PropertyPromptTask/ 'FunctionParam. #PhpEvalTask- )PhingReference, PhingTask+ 'PhingCallTask* MoveTask) MkdirTask( %MatchingTask' %LoadFileTask& InputTask% +IncludePathTask$ !ImportTask# !ElseIfTask" IfTask! #ForeachTask  FailTask ExecTask EchoTask )EchoProperties Dirname +DiagnosticsTask !DeleteTask CvsTask #CvsPassTask CopyTask 'ConditionTask %XorCondition ;VersionCompareCondition +SocketCondition =ReferenceExistsCondition %PhingVersion #OsCondition #OrCondition %NotCondition +IsTrueCondition )IsSetCondition -IsFalseCondition
 'HttpCondition	 7HasFreeSpaceCondition !FilesMatch +EqualsCondition /ContainsCondition 5ConditionEnumeration 'ConditionBase %AndCondition ChownTask ChmodTask  Basename 'AvailableTask~ ApplyTask} !AppendTask| -AdhocTypedefTask{ -AdhocTaskdefTaskz AdhocTasky !ZipFileSetx ZipTaskw -zsdtValidateTaskv %zsdtPackTasku %zsdtBaseTaskt 5ZendGuardLicenseTasks -ZendGuardFileSetr 3ZendGuardEncodeTaskq 5ZendCodeAnalyzerTaskp +XmlPropertyTasko #XmlLintTaskn +WikiPublishTaskm #VersionTaskl UnzipTaskk UntarTaskj ThrowTaski !TarFileSeth TarTaskg #SymlinkTaskf 1SymfonyConsoleTask	e Argd 'SvnUpdateTaskc 'SvnSwitchTaskb !SvnLogTaska #SvnListTask` 3SvnLastRevisionTask_ #SvnInfoTask^ 'SvnExportTask] #SvnCopyTask\ 'SvnCommitTask[ +SvnCheckoutTaskZ #SvnBaseTaskY 'StopwatchTaskX SshTaskW +Ssh2MethodParamV ?Ssh2MethodConnectionParam   B p_N<#{Y9!zhR>(rbS>)gL5





~
e
H
,
						w	^	E	*	~cL5kO5 eP5iG"qQ-	zcG-y`I(	vTB                       	MyRoute1 =	ControllerCollectionTest 5	CallbackServicesTest 5	CallbackResolverTest#
 G	IncorrectControllerCollection	 '	FooController +	ApplicationTest 7UrlGeneratorTraitTest ;UrlGeneratorApplication 'TwigTraitTest +TwigApplication 5TranslationTraitTest 9TranslationApplication 5SwiftmailerTraitTest  9SwiftmailerApplication /SecurityTraitTest~ 3SecurityApplication} -MonologTraitTest| 1MonologApplication{ 'FormTraitTestz +FormApplicationy Compilerx =ValidatorServiceProvider!w CUrlGeneratorServiceProviderv 3TwigServiceProvider u ATranslationServiceProvider t ASwiftmailerServiceProviders 9SessionServiceProvider&r MServiceControllerServiceProviderq ?SerializerServiceProviderp ;SecurityServiceProvidero ?RememberMeServiceProvidern 9MonologServiceProvider!m CHttpFragmentServiceProviderl =HttpCacheServiceProviderk 3FormServiceProviderj ;DoctrineServiceProvideri ?ControllerFrozenExceptionh =StringToResponseListenerg 1MiddlewareListenerf #LogListenere )LocaleListenerd /ConverterListenerc #WebTestCaseb 3ViewListenerWrappera !Translator` ?ServiceControllerResolver_ Route^ 9RedirectableUrlMatcher] )LazyUrlMatcher\ HttpCache[ =ExceptionListenerWrapperZ -ExceptionHandlerY 1ControllerResolverX 5ControllerCollectionW !Controller V AConstraintValidatorFactoryU -CallbackResolverT #ApplicationS XPathExprR !TranslatorQ 5PseudoClassExtensionP 'NodeExtensionO 'HtmlExtensionN /FunctionExtensionM 5CombinationExtension L AAttributeMatchingExtensionK /AbstractExtensionJ ) TranslatorTestI )HashParserTestH 7EmptyStringParserTestG /ElementParserTestF +ClassParserTestE +TokenStreamTestD !ReaderTestC !ParserTestB 7WhitespaceHandlerTestA /StringHandlerTest@ /NumberHandlerTest? 7IdentifierHandlerTest> +HashHandlerTest= 1CommentHandlerTest< 3AbstractHandlerTest; +SpecificityTest: -SelectorNodeTest9 )PseudoNodeTest8 -NegationNodeTest7 %HashNodeTest6 -FunctionNodeTest5 +ElementNodeTest4 =CombinedSelectorNodeTest3 'ClassNodeTest2 /AttributeNodeTest1 -AbstractNodeTest0 +CssSelectorTest/ /TokenizerPatterns. /TokenizerEscaping- Tokenizer, !HashParser+ /EmptyStringParser* 'ElementParser) #ClassParser( #TokenStream' Token& Reader% Parser$ /WhitespaceHandler# 'StringHandler" 'NumberHandler! /IdentifierHandler  #HashHandler )CommentHandler #Specificity %SelectorNode !PseudoNode %NegationNode HashNode %FunctionNode #ElementNode 5CombinedSelectorNode ClassNode 'AttributeNode %AbstractNode 5SyntaxErrorException )ParseException 9InternalErrorException =ExpressionErrorException #CssSelector %ResponseTest #RequestTest #HistoryTest !CookieTest
 'CookieJarTest	 !ClientTest !TestClient +SpecialResponse Response Request History CookieJar Cookie Client  )HelloWorldTest !HelloWorld~ %StringHelper} /SourceFileScanner    oS7#y`G"nE!gT,kT9$





~
\
I
1

					~	f	Q	5	kK(vR5vY> qR9"kSB$l?uU;b=          # GSerializerServiceProviderTest! CSecurityServiceProviderTest ?InteractiveLoginTriggered# GRememberMeServiceProviderTest  AMonologServiceProviderTest% KHttpFragmentServiceProviderTest
 1UnsendableResponse"	 EHttpCacheServiceProviderTest -FakeCsrfProvider 9DummyFormTypeExtension 'DummyFormType ;FormServiceProviderTest! CDoctrineServiceProviderTest +LogListenerTest +WebTestCaseTest !StreamTest#  GServiceControllerResolverTest) SServiceControllerResolverRouterTest~ %MyController} !RouterTest| )MiddlewareTest{ !LocaleTestz 1LazyUrlMatcherTesty 1LazyDispatcherTestx JsonTestw )FunctionalTestv 5ExceptionHandlerTestu MyRoutet )ControllerTests 9ControllerResolverTestr MyRoute1q =ControllerCollectionTestp 5CallbackServicesTesto 5CallbackResolverTest#n GIncorrectControllerCollectionm 'FooControllerl +ApplicationTestk 7UrlGeneratorTraitTestj ;UrlGeneratorApplicationi 'TwigTraitTesth +TwigApplicationg 5TranslationTraitTestf 9TranslationApplicatione 5SwiftmailerTraitTestd 9SwiftmailerApplicationc /SecurityTraitTestb 3SecurityApplicationa -MonologTraitTest` 1MonologApplication_ 'FormTraitTest^ +FormApplication] Compiler\ =ValidatorServiceProvider![ CUrlGeneratorServiceProviderZ 3TwigServiceProvider Y ATranslationServiceProvider X ASwiftmailerServiceProviderW 9SessionServiceProvider&V MServiceControllerServiceProviderU ?SerializerServiceProviderT ;SecurityServiceProviderS ?RememberMeServiceProviderR 9MonologServiceProvider!Q CHttpFragmentServiceProviderP =HttpCacheServiceProviderO 3FormServiceProviderN ;DoctrineServiceProviderM ?ControllerFrozenExceptionL =StringToResponseListenerK 1MiddlewareListenerJ #LogListenerI )LocaleListenerH /ConverterListenerG #WebTestCaseF 3ViewListenerWrapperE !TranslatorD ?ServiceControllerResolverC RouteB 9RedirectableUrlMatcherA )LazyUrlMatcher@ HttpCache? =ExceptionListenerWrapper> -ExceptionHandler= 1ControllerResolver< 5ControllerCollection; !Controller : AConstraintValidatorFactory9 -CallbackResolver8 #Application7 /SecurityTraitTest6 'SecurityRoute5 +CustomValidator4 Custom"3 EValidatorServiceProviderTest%2 KUrlGeneratorServiceProviderTest1 ;TwigServiceProviderTest$0 ITranslationServiceProviderTest$/ ISwiftmailerServiceProviderTest. SpoolStub - ASessionServiceProviderTest#, GSerializerServiceProviderTest!+ CSecurityServiceProviderTest* ?InteractiveLoginTriggered#) GRememberMeServiceProviderTest ( AMonologServiceProviderTest%' KHttpFragmentServiceProviderTest& 1UnsendableResponse"% EHttpCacheServiceProviderTest$ -FakeCsrfProvider# 9DummyFormTypeExtension" 'DummyFormType! ;FormServiceProviderTest!  CDoctrineServiceProviderTest +
LogListenerTest +	WebTestCaseTest !	StreamTest# G	ServiceControllerResolverTest) S	ServiceControllerResolverRouterTest %	MyController !	RouterTest )	MiddlewareTest !	LocaleTest 1	LazyUrlMatcherTest 1	LazyDispatcherTest 	JsonTest )	FunctionalTest 5	ExceptionHandlerTest 	MyRoute )	ControllerTest 9	ControllerResolverTest   r yX/	fO8v[@ qV= dP1




s
S
.
						a	C	'	uW>g>Z1}K#tKtD|U$\9                                        ! C,Twig_Node_Expression_Parent ?,Twig_Node_Expression_Name%  K,Twig_Node_Expression_MethodCall" E,Twig_Node_Expression_GetAttr#~ G,Twig_Node_Expression_Function!} C,Twig_Node_Expression_Filter)| S,Twig_Node_Expression_Filter_Default-{ [,Twig_Node_Expression_ExtensionReference#z G,Twig_Node_Expression_Constant&y M,Twig_Node_Expression_Conditionalx ?,Twig_Node_Expression_Call)w S,Twig_Node_Expression_BlockReference!v C,Twig_Node_Expression_Binary%u K,Twig_Node_Expression_Binary_Sub,t Y,Twig_Node_Expression_Binary_StartsWith's O,Twig_Node_Expression_Binary_Range'r O,Twig_Node_Expression_Binary_Power$q I,Twig_Node_Expression_Binary_Or'p O,Twig_Node_Expression_Binary_NotIn*o U,Twig_Node_Expression_Binary_NotEqual%n K,Twig_Node_Expression_Binary_Mul%m K,Twig_Node_Expression_Binary_Mod)l S,Twig_Node_Expression_Binary_Matches+k W,Twig_Node_Expression_Binary_LessEqual&j M,Twig_Node_Expression_Binary_Less$i I,Twig_Node_Expression_Binary_In.h ],Twig_Node_Expression_Binary_GreaterEqual)g S,Twig_Node_Expression_Binary_Greater*f U,Twig_Node_Expression_Binary_FloorDiv'e O,Twig_Node_Expression_Binary_Equal*d U,Twig_Node_Expression_Binary_EndsWith%c K,Twig_Node_Expression_Binary_Div(b Q,Twig_Node_Expression_Binary_Concat,a Y,Twig_Node_Expression_Binary_BitwiseXor+` W,Twig_Node_Expression_Binary_BitwiseOr,_ Y,Twig_Node_Expression_Binary_BitwiseAnd%^ K,Twig_Node_Expression_Binary_And%] K,Twig_Node_Expression_Binary_Add%\ K,Twig_Node_Expression_AssignName [ A,Twig_Node_Expression_ArrayZ +,Twig_Node_EmbedY %,Twig_Node_DoX ;,Twig_Node_CheckSecurityW ),Twig_Node_BodyV =,Twig_Node_BlockReferenceU +,Twig_Node_BlockT 5,Twig_Node_AutoEscapeS #,Twig_MarkupR 1,Twig_Loader_StringQ 9,Twig_Loader_FilesystemP /,Twig_Loader_ChainO /,Twig_Loader_ArrayN !,Twig_LexerM ',Twig_FunctionL 1,Twig_Function_NodeK 5,Twig_Function_MethodJ 9,Twig_Function_FunctionI #,Twig_FilterH -,Twig_Filter_NodeG 1,Twig_Filter_MethodF 5,Twig_Filter_Function(E Q,Twig_FileExtensionEscapingStrategyD ),Twig_Extension!C C,Twig_Extension_StringLoaderB 9,Twig_Extension_StagingA 9,Twig_Extension_Sandbox@ ;,Twig_Extension_Profiler? =,Twig_Extension_Optimizer> 9,Twig_Extension_Escaper= 5,Twig_Extension_Debug< 3,Twig_Extension_Core; 7,Twig_ExpressionParser: !,Twig_Error9 /,Twig_Error_Syntax8 1,Twig_Error_Runtime7 /,Twig_Error_Loader6 -,Twig_Environment5 ',Twig_Compiler4 +,Twig_Cache_Null3 7,Twig_Cache_Filesystem2 5,Twig_BaseNodeVisitor1 +,Twig_Autoloader0 /+WebProfilerBundle/ 5*WebProfilerExtension. )TestCase- 3(TemplateManagerTest!, C'WebDebugToolbarListenerTest+ =&WebProfilerExtensionTest* /&ConfigurationTest) 9%ProfilerControllerTest( /$ImportCommandTest' /$ExportCommandTest& +#TemplateManager% ;"WebDebugToolbarListener$ 5!WebProfilerExtension# '!Configuration" - RouterController! 1 ProfilerController  3 ExceptionController 'ImportCommand 'ExportCommand  AWebProfilerServiceProvider  AWebProfilerServiceProvider /SecurityTraitTest 'SecurityRoute +CustomValidator Custom" EValidatorServiceProviderTest% KUrlGeneratorServiceProviderTest ;TwigServiceProviderTest$ ITranslationServiceProviderTest$ ISwiftmailerServiceProviderTest SpoolStub  ASessionServiceProviderTest   p S+g?tZ?&gO< |T1



q
M
				r	U	<	%		}iD$fG*	cE+^:lL#eA,W2iI                                                   *s U,Twig_Tests_Node_Expression_ArrayTestr 9,Twig_Tests_Node_DoTestq ?,Twig_Tests_Node_BlockTest(p Q,Twig_Tests_Node_BlockReferenceTest$o I,Twig_Tests_Node_AutoEscapeTest$n I,Twig_Tests_NativeExtensionTest&m M,Twig_Tests_Loader_FilesystemTest!l C,Twig_Tests_Loader_ChainTest(k Q,Twig_Test_Loader_TemplateReference!j C,Twig_Tests_Loader_ArrayTesti 5,Twig_Tests_LexerTesth ;,LegacyTwigTestExtension&g M,Twig_Tests_LegacyIntegrationTestf /,TwigTestExtensiond #,TwigTestFoo c A,Twig_Tests_IntegrationTest2b e,Twig_Tests_FileExtensionEscapingStrategyTest a A,Twig_Tests_FileCachingTest` ,FooObject&_ M,Twig_Tests_Extension_SandboxTest#^ G,Twig_Tests_Extension_CoreTest%] K,Twig_Tests_ExpressionParserTest\ 9,Twig_Test_EscapingTest[ =,Twig_Tests_ErrorTest_FooZ 5,Twig_Tests_ErrorTest,Y Y,Twig_Tests_EnvironmentTest_NodeVisitor,X Y,Twig_Tests_EnvironmentTest_TokenParser*W U,Twig_Tests_EnvironmentTest_Extension V A,Twig_Tests_EnvironmentTestU ;,Twig_Tests_CompilerTestT ?,Twig_Tests_AutoloaderTest#S G,Twig_Util_TemplateDirIterator$R I,Twig_Util_DeprecationCollectorQ -,Twig_TokenStreamP 9,Twig_TokenParserBrokerO -,Twig_TokenParserN 5,Twig_TokenParser_Use M A,Twig_TokenParser_SpacelessL 5,Twig_TokenParser_SetK =,Twig_TokenParser_SandboxJ 9,Twig_TokenParser_MacroI =,Twig_TokenParser_IncludeH ;,Twig_TokenParser_ImportG 3,Twig_TokenParser_IfF 7,Twig_TokenParser_FromE 5,Twig_TokenParser_ForD 9,Twig_TokenParser_FlushC ;,Twig_TokenParser_FilterB =,Twig_TokenParser_ExtendsA 9,Twig_TokenParser_Embed@ 3,Twig_TokenParser_Do? 9,Twig_TokenParser_Block!> C,Twig_TokenParser_AutoEscape= !,Twig_Token< ,Twig_Test; 9,Twig_Test_NodeTestCase: ),Twig_Test_Node9 -,Twig_Test_Method#8 G,Twig_Test_IntegrationTestCase7 1,Twig_Test_Function6 ',Twig_Template5 +,Twig_SimpleTest4 3,Twig_SimpleFunction3 /,Twig_SimpleFilter!2 C,Twig_Sandbox_SecurityPolicy-1 [,Twig_Sandbox_SecurityNotAllowedTagError20 e,Twig_Sandbox_SecurityNotAllowedFunctionError0/ a,Twig_Sandbox_SecurityNotAllowedFilterError . A,Twig_Sandbox_SecurityError- 7,Twig_Profiler_Profile(, Q,Twig_Profiler_NodeVisitor_Profiler%+ K,Twig_Profiler_Node_LeaveProfile%* K,Twig_Profiler_Node_EnterProfile) ?,Twig_Profiler_Dumper_Text( ?,Twig_Profiler_Dumper_Html$' I,Twig_Profiler_Dumper_Blackfire& #,Twig_Parser% =,Twig_NodeVisitor_Sandbox#$ G,Twig_NodeVisitor_SafeAnalysis # A,Twig_NodeVisitor_Optimizer" =,Twig_NodeVisitor_Escaper! 1,Twig_NodeTraverser  ,Twig_Node ),Twig_Node_Text 3,Twig_Node_Spaceless /,Twig_Node_SetTemp ',Twig_Node_Set =,Twig_Node_SandboxedPrint /,Twig_Node_Sandbox +,Twig_Node_Print -,Twig_Node_Module +,Twig_Node_Macro /,Twig_Node_Include -,Twig_Node_Import %,Twig_Node_If /,Twig_Node_ForLoop ',Twig_Node_For +,Twig_Node_Flush 5,Twig_Node_Expression  A,Twig_Node_Expression_Unary$ I,Twig_Node_Expression_Unary_Pos$ I,Twig_Node_Expression_Unary_Not$ I,Twig_Node_Expression_Unary_Neg ?,Twig_Node_Expression_Test&
 M,Twig_Node_Expression_Test_Sameas#	 G,Twig_Node_Expression_Test_Odd$ I,Twig_Node_Expression_Test_Null$ I,Twig_Node_Expression_Test_Even+ W,Twig_Node_Expression_Test_Divisibleby' O,Twig_Node_Expression_Test_Defined( Q,Twig_Node_Expression_Test_Constant# G,Twig_Node_Expression_TempName   h  g1`.q@T'pP,



q
L
+
					h	7	aFh5Q/jP.kP8#b=lH$~bH+                         [ 92SwiftmailerApplicationZ /2SecurityTraitTestY 32SecurityApplicationX -2MonologTraitTestW 12MonologApplicationV '2FormTraitTestU +2FormApplicationT 1CompilerS =0ValidatorServiceProvider!R C0UrlGeneratorServiceProviderQ 30TwigServiceProvider P A0TranslationServiceProvider O A0SwiftmailerServiceProviderN 90SessionServiceProvider&M M0ServiceControllerServiceProviderL ?0SerializerServiceProviderK ;0SecurityServiceProviderJ ?0RememberMeServiceProviderI 90MonologServiceProvider!H C0HttpFragmentServiceProviderG =0HttpCacheServiceProviderF 30FormServiceProviderE ;0DoctrineServiceProviderD ?/ControllerFrozenExceptionC =.StringToResponseListenerB 1.MiddlewareListenerA #.LogListener@ ).LocaleListener? /.ConverterListener> #-WebTestCase= 3-ViewListenerWrapper< !-Translator; ?-ServiceControllerResolver: -Route9 9-RedirectableUrlMatcher8 )-LazyUrlMatcher7 -HttpCache6 =-ExceptionListenerWrapper5 --ExceptionHandler4 1-ControllerResolver3 5-ControllerCollection2 !-Controller 1 A-ConstraintValidatorFactory0 --CallbackResolver/ #-Application . A,Twig_Tests_TokenStreamTest- =,CExtDisablingNodeVisitor-, [,Twig_TemplateMagicMethodExceptionObject$+ I,Twig_TemplateMagicMethodObject&* M,Twig_TemplateMethodAndPropObject) ?,Twig_TemplateMethodObject:( u,Twig_TemplatePropertyObjectDefinedWithUndefinedValue/' _,Twig_TemplatePropertyObjectAndArrayAccess,& Y,Twig_TemplatePropertyObjectAndIterator!% C,Twig_TemplatePropertyObject3$ g,Twig_TemplateMagicPropertyObjectWithException&# M,Twig_TemplateMagicPropertyObject$" I,Twig_TemplateArrayAccessObject! /,Twig_TemplateTest  ;,Twig_Tests_TemplateTest% K,Twig_Tests_Profiler_ProfileTest) S,Twig_Tests_Profiler_Dumper_TextTest) S,Twig_Tests_Profiler_Dumper_HtmlTest. ],Twig_Tests_Profiler_Dumper_BlackfireTest- [,Twig_Tests_Profiler_Dumper_AbstractTest +,TestTokenParser !,TestParser 7,Twig_Tests_ParserTest* U,Twig_Tests_NodeVisitor_OptimizerTest =,Twig_Tests_Node_TextTest# G,Twig_Tests_Node_SpacelessTest ;,Twig_Tests_Node_SetTest! C,Twig_Tests_Node_SandboxTest( Q,Twig_Tests_Node_SandboxedPrintTest ?,Twig_Tests_Node_PrintTest  A,Twig_Tests_Node_ModuleTest ?,Twig_Tests_Node_MacroTest! C,Twig_Tests_Node_IncludeTest  A,Twig_Tests_Node_ImportTest 9,Twig_Tests_Node_IfTest ;,Twig_Tests_Node_ForTest.
 ],Twig_Tests_Node_Expression_Unary_PosTest.	 ],Twig_Tests_Node_Expression_Unary_NotTest. ],Twig_Tests_Node_Expression_Unary_NegTest) S,Twig_Tests_Node_Expression_TestTest+ W,Twig_Tests_Node_Expression_ParentTest) S,Twig_Tests_Node_Expression_NameTest, Y,Twig_Tests_Node_Expression_GetAttrTest- [,Twig_Tests_Node_Expression_FunctionTest+ W,Twig_Tests_Node_Expression_FilterTest- [,Twig_Tests_Node_Expression_ConstantTest0  a,Twig_Tests_Node_Expression_ConditionalTest% K,Twig_Tests_Node_Expression_Call)~ S,Twig_Tests_Node_Expression_CallTest/} _,Twig_Tests_Node_Expression_Binary_SubTest.| ],Twig_Tests_Node_Expression_Binary_OrTest/{ _,Twig_Tests_Node_Expression_Binary_MulTest/z _,Twig_Tests_Node_Expression_Binary_ModTest4y i,Twig_Tests_Node_Expression_Binary_FloorDivTest/x _,Twig_Tests_Node_Expression_Binary_DivTest2w e,Twig_Tests_Node_Expression_Binary_ConcatTest/v _,Twig_Tests_Node_Expression_Binary_AndTest/u _,Twig_Tests_Node_Expression_Binary_AddTest/t _,Twig_Tests_Node_Expression_AssignNameTest   4 tS4mM5$xdN!nW7gD




q
P
'
							n	T	@	&	w`I0kL*xWB-jK4}fG/q\C u_I1jU4                    g ;<WhatFailureGroupHandlerf #<TestHandlere -<SyslogUdpHandlerd '<SyslogHandlerc 1<SwiftMailerHandlerb '<StreamHandlera '<SocketHandler` %<SlackHandler_ +<SamplingHandler^ 3<RotatingFileHandler] )<RollbarHandler\ %<RedisHandler[ %<RavenHandlerZ +<PushoverHandlerY !<PsrHandlerX /<PHPConsoleHandlerW #<NullHandlerV +<NewRelicHandlerU 3<NativeMailerHandlerT )<MongoDBHandlerS ?<MissingExtensionExceptionR +<MandrillHandlerQ #<MailHandlerP '<LogglyHandlerO /<LogEntriesHandlerN %<IFTTTHandlerM )<HipChatHandlerL %<GroupHandlerK #<GelfHandlerJ +<FlowdockHandlerI -<FleepHookHandlerH )<FirePHPHandlerG 7<FingersCrossedHandlerF '<FilterHandlerE +<ErrorLogHandlerD 5<ElasticSearchHandlerC +<DynamoDbHandlerB 9<DoctrineCouchDBHandlerA #<CubeHandler@ )<CouchDBHandler? -<ChromePHPHandler> '<BufferHandler= 7<BrowserConsoleHandler< #<AmqpHandler; 7<AbstractSyslogHandler: ?<AbstractProcessingHandler9 +<AbstractHandler8 7;WildfireFormatterTest7 3;ScalarFormatterTest6 ';TestStreamFoo5 #;TestBarNorm4 #;TestFooNorm3 ;;NormalizerFormatterTest2 5;MongoDBFormatterTest1 7;LogstashFormatterTest0 3;LogglyFormatterTest/ ;TestBar. ;TestFoo- /;LineFormatterTest, /;JsonFormatterTest+ =;GelfMessageFormatterTest* 7;FlowdockFormatterTest) 7;ElasticaFormatterTest( 9;ChromePHPFormatterTest' /;WildfireFormatter& +;ScalarFormatter% 3;NormalizerFormatter$ -;MongoDBFormatter# /;LogstashFormatter" +;LogglyFormatter! ';LineFormatter  ';JsonFormatter ';HtmlFormatter 5;GelfMessageFormatter /;FlowdockFormatter /;ElasticaFormatter 1;ChromePHPFormatter :TestCase %:RegistryTest -:PsrLogCompatTest !:LoggerTest -:ErrorHandlerTest :Registry :Logger %:ErrorHandler /7SecurityTraitTest '7SecurityRoute +6CustomValidator 6Custom" E5ValidatorServiceProviderTest% K5UrlGeneratorServiceProviderTest ;5TwigServiceProviderTest$ I5TranslationServiceProviderTest$
 I5SwiftmailerServiceProviderTest	 5SpoolStub  A5SessionServiceProviderTest# G5SerializerServiceProviderTest! C5SecurityServiceProviderTest ?5InteractiveLoginTriggered# G5RememberMeServiceProviderTest  A5MonologServiceProviderTest% K5HttpFragmentServiceProviderTest 15UnsendableResponse"  E5HttpCacheServiceProviderTest -5FakeCsrfProvider~ 95DummyFormTypeExtension} '5DummyFormType| ;5FormServiceProviderTest!{ C5DoctrineServiceProviderTestz +4LogListenerTesty +3WebTestCaseTestx !3StreamTest#w G3ServiceControllerResolverTest)v S3ServiceControllerResolverRouterTestu %3MyControllert !3RouterTests )3MiddlewareTestr !3LocaleTestq 13LazyUrlMatcherTestp 13LazyDispatcherTesto 3JsonTestn )3FunctionalTestm 53ExceptionHandlerTestl 3MyRoutek )3ControllerTestj 93ControllerResolverTesti 3MyRoute1h =3ControllerCollectionTestg 53CallbackServicesTestf 53CallbackResolverTest#e G3IncorrectControllerCollectiond '3FooControllerc +3ApplicationTestb 72UrlGeneratorTraitTesta ;2UrlGeneratorApplication` '2TwigTraitTest_ +2TwigApplication^ 52TranslationTraitTest] 92TranslationApplication\ 52SwiftmailerTraitTest   ~! dI+qV3fL0vI,jM3





t
O
1

					l	J	1	{W1}mS/dF/eEeI!uV5aF!U!                             0e a[AbstractEntityChoiceListSingleStringIdTest-d [[AbstractEntityChoiceListSingleIntIdTest:c u[AbstractEntityChoiceListSingleAssociationToIntIdTest-b [[AbstractEntityChoiceListCompositeIdTest
a ZUser` 5ZSingleStringIdEntity!_ CZSingleIntIdNoToStringEntity^ /ZSingleIntIdEntity$] IZSingleAssociationToIntIdEntity\ +ZGroupableEntity[ -ZDoubleNameEntityZ 7ZContainerAwareFixtureY ;ZCompositeStringIdEntityX 5ZCompositeIntIdEntityW /ZAssociationEntityV ;YDoctrineParserCacheTestU 7XDoctrineExtensionTest2T eWRegisterEventListenersAndSubscribersPassTestS =VContainerAwareLoaderTestR ?UDoctrineDataCollectorTestQ 3TDoctrineOrmTestCaseP !TMyListener$O ITContainerAwareEventManagerTestN 1SDoctrineTestHelperM 1REntityUserProviderL 7QDoctrineTokenProviderK !PDbalLoggerJ =ODbalSessionHandlerSchemaI 1ODbalSessionHandlerH !NEntityTypeG %NDoctrineType%F KMMergeDoctrineCollectionListenerE 9LDoctrineOrmTypeGuesserD 5LDoctrineOrmExtension"C EKCollectionToArrayTransformerB 7JORMQueryBuilderLoaderA JIdReader@ -JEntityChoiceList? 5JDoctrineChoiceLoader> 3IDoctrineParserCache= 'HEntityFactory< 5GRegisterMappingsPass.; ]GRegisterEventListenersAndSubscribersPass: 9GDoctrineValidationPass9 ?FAbstractDoctrineExtension8 5EContainerAwareLoader7 7DDoctrineDataCollector6 +CManagerRegistry 5 ACContainerAwareEventManager4 -BProxyCacheWarmer3 ATester2 -@WebProcessorTest1 -@UidProcessorTest0 -@TagProcessorTest / A@PsrLogMessageProcessorTest. 9@ProcessIdProcessorTest- =@MemoryUsageProcessorTest", E@MemoryPeakUsageProcessorTest + A@IntrospectionProcessorTest* -@GitProcessorTest) %@WebProcessor( %@UidProcessor' %@TagProcessor& 9@PsrLogMessageProcessor% 1@ProcessIdProcessor$ 5@MemoryUsageProcessor# +@MemoryProcessor" =@MemoryPeakUsageProcessor! 9@IntrospectionProcessor  %@GitProcessor ?UdpSocket" E>ErrorLevelActivationStrategy$ I>ChannelLevelActivationStrategy
 =Util 9<ZendMonitorHandlerTest 5<ExceptionTestHandler! C<WhatFailureGroupHandlerTest '<UdpSocketTest +<TestHandlerTest 5<SyslogUdpHandlerTest /<SyslogHandlerTest 9<SwiftMailerHandlerTest /<StreamHandlerTest /<SocketHandlerTest -<SlackHandlerTest 3<SamplingHandlerTest ;<RotatingFileHandlerTest -<RedisHandlerTest -<RavenHandlerTest 3<PushoverHandlerTest )<PsrHandlerTest
 7<PHPConsoleHandlerTest	 +<NullHandlerTest 3<StubNewRelicHandler) S<StubNewRelicHandlerWithoutExtension 3<NewRelicHandlerTest ;<NativeMailerHandlerTest <Mongo 1<MongoDBHandlerTest +<MockRavenClient +<MailHandlerTest  7<LogEntriesHandlerTest 1<HipChatHandlerTest~ -<GroupHandlerTest} =<GelfMockMessagePublisher| +<GelfHandlerTest{ 7<GelfHandlerLegacyTestz 3<FlowdockHandlerTesty 5<FleepHookHandlerTestx 1<TestFirePHPHandlerw 1<FirePHPHandlerTestv ?<FingersCrossedHandlerTestu /<FilterHandlerTestt 3<ErrorLogHandlerTests =<ElasticSearchHandlerTestr 3<DynamoDbHandlerTest q A<DoctrineCouchDBHandlerTestp 1<CouchDBHandlerTesto 5<TestChromePHPHandlern 5<ChromePHPHandlerTestm /<BufferHandlerTestl ?<BrowserConsoleHandlerTestk +<AmqpHandlerTest#j G<AbstractProcessingHandlerTesti 3<AbstractHandlerTesth 1<ZendMonitorHandler   } JTU!kS3qT: 





t
X
0
						j	>	mK'wV5tU>'yeC!~]<*s^J4iL0y]K2                         b '{FormThemeNodea +{FormEnctypeNode` {DumpNode_ 1zTwigRendererEngine^ %zTwigRenderer] 'yYamlExtension\ 5yTranslationExtension[ 1yStopwatchExtensionZ /ySecurityExtensionY -yRoutingExtensionX /yProfilerExtensionW 1yLogoutUrlExtensionV 3yHttpKernelExtensionU ;yHttpFoundationExtensionT 'yFormExtensionS 3yExpressionExtensionR 'yDumpExtensionQ 'yCodeExtensionP )yAssetExtensionO /xTwigDataCollectorN #wLintCommandM %wDebugCommandL !vTwigEngineK #vAppVariableJ 5uMessageDataCollectorI +tProxyDumperTestH ;sRuntimeInstantiatorTestG /rProjectUrlMatcherF +rNumberFormatterE rLocaleD /rIntlDateFormatterC rCollatorB ;rProjectServiceContainerA ;rProjectWithXsdExtension@ -rProjectExtension? %rBarUserClass> rBazClass= rBarClass6< mrSymfony_Component_Debug_Tests_Fixtures_PEARClass; #rTestCommand: =rFooSubnamespaced2Command9 =rFooSubnamespaced1Command8 !rFooCommand7 'rFoobarCommand6 #rFoo5Command5 #rFoo4Command4 #rFoo3Command3 #rFoo2Command2 #rFoo1Command1 'rBarBucCommand0 'rPearlike2_Foo/ 'rPearlike2_Baz. 'rPearlike2_Bar- 7rPearlike_WithComments, %rPearlike_Foo+ %rPearlike_Baz* %rPearlike_Bar	) rFoo( -rPearlike2_FooBar' +rPearlike_FooBar& rCTBar% rCTFoo$ ;rPrefixCollision_C_B_Foo# ;rPrefixCollision_C_B_Bar" ;rPrefixCollision_A_B_Foo! ;rPrefixCollision_A_B_Bar  -rApc_Pearlike_Foo -rApc_Pearlike_Baz -rApc_Pearlike_Bar 3rApc_Pearlike_FooBar  ArApcPrefixCollision_A_B_Foo  ArApcPrefixCollision_A_B_Bar =rApcPrefixCollision_A_Foo =rApcPrefixCollision_A_Bar 7rPrefixCollision_C_Foo 7rPrefixCollision_C_Bar 7rPrefixCollision_A_Foo 7rPrefixCollision_A_Bar/ _rstdClass_c1d194250ee2e2b7d2eab8b8212368a8( QrLazyServiceProjectServiceContainer  ArProxyManagerBridgeFooClass 'qPhpDumperTest 5pContainerBuilderTest #oProxyDumper 3nRuntimeInstantiator ;mDeprecationErrorHandler -lWebProcessorTest$ IkNotFoundActivationStrategyTest
 1jConsoleHandlerTest	 %iWebProcessor hLogger  AgNotFoundActivationStrategy 1fSwiftMailerHandler )fFirePHPHandler %fDebugHandler )fConsoleHandler -fChromePhpHandler -eConsoleFormatter  3dDoctrineInitializer 7cUniqueEntityValidator~ %cUniqueEntity} ?bUniqueEntityValidatorTest.| ]bLegacyUniqueEntityValidatorLegacyApiTest{ 9aEntityUserProviderTestz )`DbalLoggerTesty 9_DbalSessionHandlerTestx )^EntityTypeTestw ?^EntityTypePerformanceTest v A]DoctrineOrmTypeGuesserTest&u M\CollectionToArrayTransformerTestAt [UnloadedEntityChoiceListSingleStringIdWithQueryBuilderTest0s a[UnloadedEntityChoiceListSingleStringIdTest=r {[UnloadedEntityChoiceListSingleIntIdWithQueryBuilderTest-q [[UnloadedEntityChoiceListSingleIntIdTestKp [UnloadedEntityChoiceListSingleAssociationToIntIdWithQueryBuilderTest:o u[UnloadedEntityChoiceListSingleAssociationToIntIdTest=n {[UnloadedEntityChoiceListCompositeIdWithQueryBuilderTest-m [[UnloadedEntityChoiceListCompositeIdTestl ?[ORMQueryBuilderLoaderTest.k ][LoadedEntityChoiceListSingleStringIdTest+j W[LoadedEntityChoiceListSingleIntIdTest8i q[LoadedEntityChoiceListSingleAssociationToIntIdTest+h W[LoadedEntityChoiceListCompositeIdTest!g C[GenericEntityChoiceListTest"f E[AbstractEntityChoiceListTest    {l?hDxZB,pV4eK4 




w
_
=

						c	?	 	jP4|hP4eJ-^?~[C$Q>$oO3 ~gN4  j -FilesystemLoaderi -TranslatorHelperh +StopwatchHelperg 'SessionHelperf %RouterHelpere 'RequestHelperd !FormHelperc !CodeHelperb %AssetsHelpera 'ActionsHelper` )TimedPhpEngine_ /TemplateReference^ 1TemplateNameParser] 9TemplateFilenameParser\ PhpEngine[ +GlobalVariablesZ -DelegatingEngineY DebuggerX #PathPackageW )PackageFactoryV RouterU 9RedirectableUrlMatcherT -DelegatingLoaderS HttpCache,R YContainerAwareHIncludeFragmentRendererQ 3TestSessionListenerP +SessionListenerO 1FrameworkExtensionN 'ConfigurationM )TranslatorPassL =TranslationExtractorPassK 7TranslationDumperPassJ )TemplatingPassI ?TemplatingAssetHelperPassH )SerializerPassG 3RoutingResolverPassF %ProfilerPassE 7LoggingTranslatorPassD 5FragmentRendererPassC FormPass#B GContainerBuilderDebugDumpPassA 7CompilerDebugDumpPass"@ EAddValidatorInitializersPass(? QAddExpressionLanguageProvidersPass!> CAddConstraintValidatorsPass= 7AddConsoleCommandPass< 1AddCacheWarmerPass; 3AddCacheClearerPass: 3RouterDataCollector9 /AjaxDataCollector8 1TemplateController7 1RedirectController6 1ControllerResolver5 5ControllerNameParser4 !Controller3 -DescriptorHelper2 'XmlDescriptor1 )TextDescriptor0 1MarkdownDescriptor/ )JsonDescriptor. !Descriptor- Shell, #Application+ +YamlLintCommand* =TranslationUpdateCommand) ;TranslationDebugCommand( /ServerStopCommand' 3ServerStatusCommand& 1ServerStartCommand% -ServerRunCommand$ 'ServerCommand# 1RouterMatchCommand" 1RouterDebugCommand! ?RouterApacheDumperCommand!  CEventDispatcherDebugCommand 7ContainerDebugCommand 7ContainerAwareCommand  AConfigDumpReferenceCommand 1ConfigDebugCommand 1CacheWarmupCommand /CacheClearCommand 5AssetsInstallCommand 7AbstractConfigCommand +FrameworkBundle Client ;TranslationsCacheWarmer =TemplatePathsCacheWarmer )TemplateFinder /RouterCacheWarmer 1DebugExtensionTest ?DumpDataCollectorPassTest )DebugExtension 'Configuration 7DumpDataCollectorPass #DebugBundle 'TwigExtractor
 -TransTokenParser#	 GTransDefaultDomainTokenParser 9TransChoiceTokenParser 5StopwatchTokenParser 5FormThemeTokenParser +DumpTokenParser )TwigEngineTest /TwigExtractorTest =FormThemeTokenParserTest -TwigNodeProvider   ATranslationNodeVisitorTest- [TranslationDefaultDomainNodeVisitorTest~ ScopeTest} 'TransNodeTest"| ESearchAndRenderBlockNodeTest{ 'FormThemeTestz %DumpNodeTesty )StubTranslatorx 5StubFilesystemLoaderw =~TranslationExtensionTestv 9~StopwatchExtensionTestu 5~RoutingExtensionTestt ;~HttpKernelExtensionTest!s C~HttpFoundationExtensionTest"r E~FormExtensionTableLayoutTest q A~FormExtensionDivLayoutTest'p O~FormExtensionBootstrap3LayoutTesto ;~ExpressionExtensionTestn /~DumpExtensionTestm /~CodeExtensionTestl 1~AssetExtensionTestk +}LintCommandTestj 9|TranslationNodeVisitor)i S|TranslationDefaultDomainNodeVisitorh |Scopeg {TransNodef 9{TransDefaultDomainNodee '{StopwatchNoded ={SearchAndRenderBlockNodec +{RenderBlockNode   ' vdE.tT;$jR:t^6{`@





s
X
=
*
					r	V	I	-	|T>(r[7hM2iA+gH)pU:jR/[D'                   p 3AbstractFactoryTesto 'DummyProvider#n GYamlCompleteConfigurationTest"m EXmlCompleteConfigurationTestl 7SecurityExtensionTest"k EPhpCompleteConfigurationTestj 7MainConfigurationTesti ?CompleteConfigurationTesth ?SecurityDataCollectorTestg )SecurityHelperf +LogoutUrlHelpere )SecurityBundled #FirewallMapc +FirewallContextb /AclSchemaListenera +InMemoryFactory` #X509Factory$_ ISimplePreAuthenticationFactory^ /SimpleFormFactory] /RemoteUserFactory\ /RememberMeFactory[ /HttpDigestFactoryZ -HttpBasicFactoryY -FormLoginFactoryX +AbstractFactoryW /SecurityExtensionV /MainConfigurationU 7AddSecurityVotersPassT 7SecurityDataCollector S AUserPasswordEncoderCommandR 'SetAclCommandQ )InitAclCommand P AConstraintValidatorFactoryO !TranslatorN /TranslationLoaderM 5PhpStringTokenParserL %PhpExtractor$K IConstraintValidatorFactoryTest!J CTranslatorWithInvalidLocaleI )TranslatorTestH -PhpExtractorTestG 3TemplateLocatorTestF )StubTranslatorE 9StubTemplateNameParserD 3StopwatchHelperTestC /SessionHelperTestB /RequestHelperTestA ?FormHelperTableLayoutTest@ ;FormHelperDivLayoutTest? -AssetsHelperTest> 1TimedPhpEngineTest= %TemplateTest< 7TemplateReferenceTest; 9TemplateNameParserTest : ATemplateFilenameParserTest9 'PhpEngineTest8 3GlobalVariablesTest7 5DelegatingEngineTest6 !RouterTest 5 ARedirectableUrlMatcherTest4 #WebTestCase3 +SubRequestsTest2 #SessionTest1 %ProfilerTest0 %FragmentTest$/ IConfigDumpReferenceCommandTest. 9ConfigDebugCommandTest- !TestBundle, 'TestExtension+ 'Configuration* %CustomConfig) 5SubRequestController( /SessionController' 1ProfilerController	& Bar% 1FragmentController$ AppKernel6# mLegacyContainerAwareHIncludeFragmentRendererTest" +SensioFooBundle! /DefaultController  1SensioCmsFooBundle /DefaultController FooBundle /DefaultController /DefaultController /DefaultController +FabpotFooBundle /DefaultController !BaseBundle  AYamlFrameworkExtensionTest ?XmlFrameworkExtensionTest ?PhpFrameworkExtensionTest 9FrameworkExtensionTest /ConfigurationTest 1TranslatorPassTest 1SerializerPassTest -ProfilerPassTest ?LoggingTranslatorPassTest) SLegacyTemplatingAssetHelperPassTest +RendererService$ ILegacyFragmentRendererPassTest %TestProvider,
 YAddExpressionLanguageProvidersPassTest	 9ExtensionPresentBundle MyCommand ?AddConsoleCommandPassTest 9AddCacheWarmerPassTest 9RedirectControllerTest )TestController )ControllerTest =ContainerAwareController 9ControllerResolverTest  =ControllerNameParserTest /XmlDescriptorTest~ 1TextDescriptorTest} 7ExtendedCallableClass| 'CallableClass{ +ObjectsProviderz 9MarkdownDescriptorTesty 1JsonDescriptorTestx 9AbstractDescriptorTestw +ApplicationTest!v CTranslationDebugCommandTestu 9RouterMatchCommandTestt 9RouterDebugCommandTests 'TestAppKernelr 7CacheClearCommandTestq TestCasep !TestBundleo !ClientTestn 1TemplateFinderTestm #WebTestCasel )KernelTestCasek +TemplateLocator   J uR*dI$Z>|eH0_;




t
V
1

					~	b	H	1	hF!eM<*hXH5$kU=x_A$	[>1$
xk`UJ?4)}pZJ   FooBar %WithComments	 Foo	 Baz	 Bar FooBar
 !SomeParent	 SomeClass B A B A B A
 CFoo A  G F~ E} D| B{ A	z Foo	y Bar	x Foo	w Bar	v Foo	u Baz	t Bars FooBar	r Foo	q Bar	p Foo	o Bar	n Foo	m Bar	l 
Foo	k 
Barj 3	Psr4ClassLoaderTest$i I	LegacyUniversalClassLoaderTest'h O	LegacyApcUniversalClassLoaderTestg 7	ClassMapGeneratorTestf +	ClassLoaderTeste ?	ClassCollectionLoaderTestd /XcacheClassLoaderc 3WinCacheClassLoaderb 5UniversalClassLoadera +Psr4ClassLoader` )MapClassLoader_ ?DebugUniversalClassLoader^ -DebugClassLoader] /ClassMapGenerator\ #ClassLoader[ 7ClassCollectionLoaderZ ;ApcUniversalClassLoaderY )ApcClassLoaderX %ResponseTestW #RequestTestV #HistoryTestU !CookieTestT 'CookieJarTestS !ClientTestR !TestClientQ +SpecialResponseP ResponseO RequestN HistoryM CookieJarL CookieK ClientJ 7StaticVersionStrategyI 5EmptyVersionStrategyH )UrlPackageTestG +PathPackageTestF #PackageTestE %PackagesTestD !UrlPackageC #PathPackageB PackagesA Package@ )LogicException? =InvalidArgumentException> 3RequestStackContext= #NullContext< / WebProfilerBundle; 5WebProfilerExtension: TestCase9 3TemplateManagerTest!8 CWebDebugToolbarListenerTest7 =WebProfilerExtensionTest6 /ConfigurationTest5 9ProfilerControllerTest4 /ImportCommandTest3 /ExportCommandTest2 +TemplateManager1 ;WebDebugToolbarListener0 5WebProfilerExtension/ 'Configuration. -RouterController- 1ProfilerController, 3ExceptionController+ 'ImportCommand* 'ExportCommand) !TwigEngine!( CTwigDefaultEscapingStrategy' !TwigBundle& /RenderTokenParser!% CLegacyRenderTokenParserTest$ 5FilesystemLoaderTest# TestCase" ;NoTemplatingEntryKernel! 7NoTemplatingEntryTest  ?LegacyAssetsExtensionTest /TwigExtensionTest /ConfigurationTest 1TwigLoaderPassTest  APreviewErrorControllerTest ;ExceptionControllerTest !RenderNode -FilesystemLoader +AssetsExtension -ActionsExtension ;EnvironmentConfigurator 'TwigExtension 'Configuration )TwigLoaderPass 3TwigEnvironmentPass 'ExtensionPass 7ExceptionListenerPass +TimedTwigEngine 9PreviewErrorController 3ExceptionController #LintCommand %DebugCommand
 =TemplateCacheCacheWarmer	 1LogoutUrlExtension! CLocalizedFormFailureHandler +FormLoginBundle 1FormLoginExtension +LoginController 3LocalizedController )EntryPointStub =FirewallEntryPointBundle! CFirewallEntryPointExtension  /UserLoginFormType 3CsrfFormLoginBundle~ +LoginController	} Car| AclBundle{ #WebTestCase$z IUserPasswordEncoderCommandTesty )SwitchUserTestx /SetAclCommandTest$w ISecurityRoutingIntegrationTestv ?LocalizedRoutesAsPathTestu 'FormLoginTestt 9FirewallEntryPointTests /CsrfFormLoginTest"r EAuthenticationCommencingTestq AppKernel   ; qdO3eL8"ycN6oR3 wC"





{
b
I
2

						j	R	1	lW7}eI5p[F&|]>%}mZ@)vbO;,xhR:
yP; ) #;CommandTest%( K:CustomDefaultCommandApplication' /:CustomApplication& +:ApplicationTest% '9CommandTester$ /9ApplicationTester# %8SymfonyStyle" #8OutputStyle! 7Question  57ConfirmationQuestion )7ChoiceQuestion %6StreamOutput 6Output !6NullOutput '6ConsoleOutput )6BufferedOutput '5ConsoleLogger #4StringInput #4InputOption +4InputDefinition '4InputArgument 4Input !4ArrayInput 4ArgvInput !3TableStyle )3TableSeparator #3TableHelper 3TableCell 3Table 73SymfonyQuestionHelper )3QuestionHelper
 )3ProgressHelper	 #3ProgressBar '3ProcessHelper -3InputAwareHelper 3HelperSet 3Helper +3FormatterHelper %3DialogHelper -3DescriptorHelper 53DebugFormatterHelper  ?2OutputFormatterStyleStack 52OutputFormatterStyle~ +2OutputFormatter} 71ConsoleTerminateEvent| 71ConsoleExceptionEvent{ %1ConsoleEventz 31ConsoleCommandEventy '0XmlDescriptorx )0TextDescriptorw 10MarkdownDescriptorv )0JsonDescriptoru !0Descriptort 90ApplicationDescriptions #/ListCommandr #/HelpCommandq /Commandp .Shello '.ConsoleEventsn #.Applicationm -XmlUtilsl -,FileResourceTestk 7,DirectoryResourceTestj %+XmlUtilsTesti )+ProjectLoader1h !+LoaderTestg 1+LoaderResolverTestf )+TestFileLoadere )+FileLoaderTestd 5+DelegatingLoaderTestc 5*ExampleConfiguration!b C)FileLoaderLoadExceptionTesta ;(YamlReferenceDumperTest` 9(XmlReferenceDumperTest_ 9'VariableNodeDefinition^ #'NodeBuilder] /'BarNodeDefinition\ +'TreeBuilderTest[ ?'NumericNodeDefinitionTestZ 1'SomeNodeDefinitionY +'NodeBuilderTestX +'ExprBuilderTestW 9'EnumNodeDefinitionTestV ;'ArrayNodeDefinitionTestU )&ScalarNodeTestT ;&PrototypedArrayNodeTestS /&NormalizationTestR &MergeTestQ +&IntegerNodeTestP '&FloatNodeTestO -&FinalizationTestN %&EnumNodeTestM +&BooleanNodeTestL '&ArrayNodeTestK +%FileLocatorTestJ +%ConfigCacheTestI 9%ConfigCacheFactoryTestH %$FileResourceG /$DirectoryResourceF )#LoaderResolverE #LoaderD !#FileLoaderC -#DelegatingLoaderB ;"FileLoaderLoadException0A a"FileLoaderImportCircularReferenceException@ /!UnsetKeyException? 5!InvalidTypeException > A!InvalidDefinitionException#= G!InvalidConfigurationException!< C!ForbiddenOverwriteException; !Exception: 7!DuplicateKeyException9 3 YamlReferenceDumper8 1 XmlReferenceDumper7 9VariableNodeDefinition6 /ValidationBuilder5 #TreeBuilder4 5ScalarNodeDefinition3 7NumericNodeDefinition2 5NormalizationBuilder1 )NodeDefinition0 #NodeBuilder/ %MergeBuilder. 7IntegerNodeDefinition- 3FloatNodeDefinition, #ExprBuilder+ 1EnumNodeDefinition* 7BooleanNodeDefinition) 3ArrayNodeDefinition( %VariableNode' !ScalarNode& +ReferenceDumper% 3PrototypedArrayNode$ Processor# #NumericNode" #IntegerNode! FloatNode  EnumNode #BooleanNode BaseNode ArrayNode #FileLocator 1ConfigCacheFactory #ConfigCache	 Foo 9Class_With_Underscores	 Foo 9Class_With_Underscores	 Foo
 CBar	 Foo	 Baz	 Bar   7 rY="nL/lS7y`E*|gE%





|
f
T
>
*
							n	^	N	?	*	mS8!jQ4wcJ1jO8!gG(zX;!g@Z7                   7 ?VUnauthorizedHttpException"6 EVTooManyRequestsHttpException%5 KVServiceUnavailableHttpException'4 OVPreconditionRequiredHttpException%3 KVPreconditionFailedHttpException2 7VNotFoundHttpException 1 AVNotAcceptableHttpException#0 GVMethodNotAllowedHttpException!/ CVLengthRequiredHttpException. 'VHttpException- /VGoneHttpException, 7VConflictHttpException+ ;VBadRequestHttpException* ?VAccessDeniedHttpException) -VFlattenException( 3VFatalErrorException' =UUndefinedMethodException & AUUndefinedFunctionException% 5UOutOfMemoryException$ -UFlattenException# 3UFatalThrowableError" 3UFatalErrorException! )UDummyException  7UContextErrorException 9UClassNotFoundException -TExceptionHandler 1TErrorHandlerCanary %TErrorHandler -TDebugClassLoader TDebug SXPathExpr !STranslator 5RPseudoClassExtension 'RNodeExtension 'RHtmlExtension /RFunctionExtension 5RCombinationExtension  ARAttributeMatchingExtension /RAbstractExtension )QTranslatorTest )PHashParserTest 7PEmptyStringParserTest /PElementParserTest +PClassParserTest +OTokenStreamTest
 !OReaderTest	 !OParserTest 7NWhitespaceHandlerTest /NStringHandlerTest /NNumberHandlerTest 7NIdentifierHandlerTest +NHashHandlerTest 1NCommentHandlerTest 3NAbstractHandlerTest +MSpecificityTest  -MSelectorNodeTest )MPseudoNodeTest~ -MNegationNodeTest} %MHashNodeTest| -MFunctionNodeTest{ +MElementNodeTestz =MCombinedSelectorNodeTesty 'MClassNodeTestx /MAttributeNodeTestw -MAbstractNodeTestv +LCssSelectorTestu /KTokenizerPatternst /KTokenizerEscapings KTokenizerr !JHashParserq /JEmptyStringParserp 'JElementParsero #JClassParsern #ITokenStreamm ITokenl IReaderk IParserj /HWhitespaceHandleri 'HStringHandlerh 'HNumberHandlerg /HIdentifierHandlerf #HHashHandlere )HCommentHandlerd #GSpecificityc %GSelectorNodeb !GPseudoNodea %GNegationNode` GHashNode_ %GFunctionNode^ #GElementNode] 5GCombinedSelectorNode\ GClassNode[ 'GAttributeNodeZ %GAbstractNodeY 5FSyntaxErrorExceptionX )FParseExceptionW 9FInternalErrorExceptionV =FExpressionErrorExceptionU #ECssSelectorT /DCommandTesterTestS 7DApplicationTesterTestR -CSymfonyStyleTestQ -BStreamOutputTestP !BTestOutputO !BOutputTestN )BNullOutputTestM /BConsoleOutputTestL /AConsoleLoggerTestK +@StringInputTestJ @InputTestI +@InputOptionTestH 3@InputDefinitionTestG /@InputArgumentTestF )@ArrayInputTestE '@ArgvInputTestD ?TableTestC )?TableStyleTestB 1?QuestionHelperTestA +?ProgressBarTest@ /?ProcessHelperTest? 7?LegacyTableHelperTest> =?LegacyProgressHelperTest= 9?LegacyDialogHelperTest< '?HelperSetTest; 3?FormatterHelperTest: >TableCell9 3>OutputFormatterTest8 =>OutputFormatterStyleTest#7 G>OutputFormatterStyleStackTest6 #=DummyOutput5 1=DescriptorCommand24 1=DescriptorCommand13 9=DescriptorApplication22 9=DescriptorApplication11 /<XmlDescriptorTest0 1<TextDescriptorTest/ +<ObjectsProvider. 9<MarkdownDescriptorTest- 1<JsonDescriptorTest, 9<AbstractDescriptorTest+ +;ListCommandTest* +;HelpCommandTest   {  W-Z*whU=#}cQ+iW9




s
N
8
				l	M	*	eC+yP%ybK3}`7`Ga7	|[C"
~gP8!   2 ;jProjectServiceContainer1 'iExtensionTest0 )hYamlDumperTest/ 'hXmlDumperTest. 'hPhpDumperTest- 1hGraphvizDumperTest, 'gReferenceTest+ 'gParameterTest* 5gLegacyDefinitionTest ) AgLegacyContainerBuilderTest( )gDefinitionTest' ;gDefinitionDecoratorTest& )gCrossCheckTest% ;gProjectServiceContainer$ 'gContainerTest# -gProjectContainer" gFooClass! 5gContainerBuilderTest(  QfResolveReferencesToAliasesPassTest* UfResolveParameterPlaceHoldersPassTest& MfResolveInvalidReferencesPassTest( QfResolveDefinitionTemplatesPassTest, YfReplaceAliasByActualDefinitionPassTest% KfRemoveUnusedDefinitionsPassTest) SfMergeExtensionConfigurationPassTest0 afLegacyResolveParameterPlaceHoldersPassTest +fIntegrationTest& MfInlineServiceDefinitionsPassTest =fDecoratorServicePassTest$ IfCheckReferenceValidityPassTest6 mfCheckExceptionOnInvalidReferenceBehaviorPassTest% KfCheckDefinitionValidityPassTest% KfCheckCircularReferencesPassTest 3fServiceClassMariaDb /fServiceClassMysql 3fServiceClassDefault =fAutoAliasServicePassTest& MfAnalyzeServiceReferencesPassTest %eParameterBag 1eFrozenParameterBag
 )dYamlFileLoader	 'dXmlFileLoader 'dPhpFileLoader 'dIniFileLoader !dFileLoader 'dClosureLoader !cNullDumper ;bRealServiceInstantiator aExtension =`ServiceNotFoundException'  O`ServiceCircularReferenceException% K`ScopeWideningInjectionException%~ K`ScopeCrossingInjectionException} -`RuntimeException | A`ParameterNotFoundException){ S`ParameterCircularReferenceExceptionz 5`OutOfBoundsExceptiony )`LogicExceptionx =`InvalidArgumentExceptionw 9`InactiveScopeExceptionv 9`BadMethodCallExceptionu !_YamlDumpert _XmlDumpers _PhpDumperr )_GraphvizDumperq _Dumperp ?^ServiceReferenceGraphNodeo ?^ServiceReferenceGraphEdgen 7^ServiceReferenceGraph$m I^ResolveReferencesToAliasesPass&l M^ResolveParameterPlaceHoldersPass"k E^ResolveInvalidReferencesPass$j I^ResolveDefinitionTemplatesPass(i Q^ReplaceAliasByActualDefinitionPassh %^RepeatedPass!g C^RemoveUnusedDefinitionsPassf =^RemovePrivateAliasesPass#e G^RemoveAbstractDefinitionsPassd !^PassConfig%c K^MergeExtensionConfigurationPassb -^LoggingFormatter"a E^InlineServiceDefinitionsPass` 5^DecoratorServicePass_ ^Compiler ^ A^CheckReferenceValidityPass2] e^CheckExceptionOnInvalidReferenceBehaviorPass!\ C^CheckDefinitionValidityPass![ C^CheckCircularReferencesPassZ 5^AutoAliasServicePass"Y E^AnalyzeServiceReferencesPassX ]VariableW -]SimpleXMLElementV ]ScopeU ]ReferenceT ]Parameter S A]ExpressionLanguageProviderR 1]ExpressionLanguageQ 3]DefinitionDecoratorP !]DefinitionO -]ContainerBuilderN )]ContainerAwareM ]ContainerL ]AliasK '\RequiredTwiceJ [NotPSR0I -[PSR4CaseMismatchH ![NotPSR0bisG +[DeprecatedClassF %[CaseMismatch*E UZUndefinedMethodFatalErrorHandlerTest,D YZUndefinedFunctionFatalErrorHandlerTest(C QZClassNotFoundFatalErrorHandlerTestB 5YFlattenExceptionTestA 5XMockExceptionHandler@ 5XExceptionHandlerTest? -XErrorHandlerTest> #XClassLoader= 5XDebugClassLoaderTest&< MWUndefinedMethodFatalErrorHandler(; QWUndefinedFunctionFatalErrorHandler$: IWClassNotFoundFatalErrorHandler'9 OVUnsupportedMediaTypeHttpException&8 MVUnprocessableEntityHttpException   C hM2{dQ9	{_@
~_:#rG6





l
I
.

						s	^	O	:	#	oU5
v^A't`K4 mYA'xiYK6jO/xgX@$iUC                 G GlobTestF !FinderTestE 1UnsupportedAdapterD %NamedAdapterC )FailingAdapterB %DummyAdapterA RegexTest@ GlobTest? )ExpressionTest> 5NumberComparatorTest= 1DateComparatorTest< )ComparatorTest; Shell: Command9 -SortableIterator8 ;SizeRangeFilterIterator 7 ARecursiveDirectoryIterator6 1PathFilterIterator 5 AMultiplePcreFilterIterator4 )FilterIterator3 9FileTypeFilterIterator2 /FilePathsIterator1 9FilenameFilterIterator0 ?FilecontentFilterIterator$/ IExcludeDirectoryFilterIterator. =DepthRangeFilterIterator- ;DateRangeFilterIterator, 5CustomFilterIterator+ #SplFileInfo
* Glob) Finder( Regex
' Glob& !Expression"% EShellCommandFailureException#$ GOperationNotPermitedException# ;AdapterFailureException" 7AccessDeniedException! -NumberComparator  )DateComparator !Comparator !PhpAdapter )GnuFindAdapter )BsdFindAdapter 3AbstractFindAdapter +AbstractAdapter +LockHandlerTest 1FilesystemTestCase )FilesystemTest 'ExceptionTest #LockHandler !Filesystem #IOException 7FileNotFoundException 'UnaryNodeTest NodeTest %NameNodeTest	 Obj +GetAttrNodeTest -FunctionNodeTest -ConstantNodeTest
 3ConditionalNodeTest	 )BinaryNodeTest 'ArrayNodeTest /ArgumentsNodeTest -AbstractNodeTest %TestProvider !~ParserTest 5~ParsedExpressionTest ~LexerTest )~ExpressionTest  9~ExpressionLanguageTest -}ArrayParserCache~ |UnaryNode
} |Node| |NameNode{ #|GetAttrNodez %|FunctionNodey %|ConstantNodex +|ConditionalNodew !|BinaryNodev |ArrayNodeu '|ArgumentsNodet #{TokenStreams {Tokenr #{SyntaxError q A{SerializedParsedExpressionp {Parsero -{ParsedExpressionn {Lexerm 1{ExpressionLanguagel 1{ExpressionFunctionk !{Expressionj {Compileri /zSubscriberServiceh ?zRegisterListenersPassTestg +yEventSubscriber"f EyTraceableEventDispatcherTest"e ExImmutableEventDispatcherTestd -xGenericEventTestc xEventTestb 3xEventDispatcherTesta /xSubscriberService` xService'_ OxContainerAwareEventDispatcherTest.^ ]xTestEventSubscriberWithMultipleListeners'] OxTestEventSubscriberWithPriorities\ 3xTestEventSubscriber[ 1xTestWithDispatcherZ /xTestEventListenerY 'xCallableClass!X CxAbstractEventDispatcherTestW 7wRegisterListenersPassV +vWrappedListenerU =vTraceableEventDispatcherT =uImmutableEventDispatcherS %uGenericEventR +uEventDispatcherQ uEvent#P GuContainerAwareEventDispatcherO 7tTextareaFormFieldTestN 1tInputFormFieldTestM /tFormFieldTestCaseL 'tFormFieldTestK /tFileFormFieldTestJ 3tChoiceFormFieldTestI sLinkTestH sFormTestG #sCrawlerTestF /rTextareaFormFieldE )rInputFormFieldD rFormFieldC 'rFileFormFieldB +rChoiceFormField
A qLink@ /qFormFieldRegistry
? qForm> qCrawler= -pParameterBagTest< 9pFrozenParameterBagTest; 1oYamlFileLoaderTest: /oXmlFileLoaderTest9 /oPhpFileLoaderTest8 /oIniFileLoaderTest7 /oClosureLoaderTest6 )nNullDumperTest!5 CmRealServiceInstantiatorTest4 lContainer3 kFooClass   ' g@u[=$nI.{dG9$	mWH*





p
S
:

					h	P	<	(	qJ2iO5g=^8g:v`N8$|jXD/wcO9'               O TextTypeN %TextareaTypeM !SubmitTypeL !SearchTypeK ResetTypeJ %RepeatedTypeI RadioTypeH #PercentTypeG %PasswordTypeF !NumberTypeE MoneyTypeD !LocaleTypeC %LanguageTypeB #IntegerTypeA !HiddenType@ FormType? FileType> EmailType= DateType< %DateTimeType; %CurrencyType: #CountryType9 )CollectionType8 !ChoiceType7 %CheckboxType6 !ButtonType5 %BirthdayType4 BaseType3 %TrimListener2 1ResizeFormListener1 ;MergeCollectionListener0 9FixUrlProtocolListener/ 7FixRadioInputListener. =FixCheckboxInputListener"- EValueToDuplicatesTransformer), SPercentToLocalizedStringTransformer(+ QNumberToLocalizedStringTransformer'* OMoneyToLocalizedStringTransformer)) SIntegerToLocalizedStringTransformer$( IDateTimeToTimestampTransformer!' CDateTimeToStringTransformer"& EDateTimeToRfc3339Transformer*% UDateTimeToLocalizedStringTransformer $ ADateTimeToArrayTransformer# 5DataTransformerChain" =ChoiceToValueTransformer%! KChoiceToBooleanArrayTransformer   AChoicesToValuesTransformer& MChoicesToBooleanArrayTransformer  ABooleanToStringTransformer ;BaseDateTimeTransformer ;ArrayToPartsTransformer +RadioListMapper 1PropertyPathMapper 1CheckboxListMapper 'CoreExtension -SimpleChoiceList -ObjectChoiceList )LazyChoiceList !ChoiceList ;UnexpectedTypeException# GTransformationFailedException 3StringCastException -RuntimeException 5OutOfBoundsException )LogicException# GInvalidConfigurationException =InvalidArgumentException 7ErrorMappingException
 9BadMethodCallException	 ?AlreadySubmittedException 7AlreadyBoundException !FormEvents !ChoiceView !ChoiceView )ChoiceListView +ChoiceGroupView ;PropertyAccessDecorator =DefaultChoiceListFactory  ;CachingFactoryDecorator ;LegacyChoiceListAdapter~ )LazyChoiceList} 1ArrayKeyChoiceList| +ArrayChoiceList{ 3SubmitButtonBuilderz %SubmitButtony 3ReversedTransformerx ;ResolvedFormTypeFactoryw -ResolvedFormTypev 1PreloadedExtensionu 5NativeRequestHandlert FormViews 5FormTypeGuesserChainr Formsq %FormRendererp %FormRegistryo 1FormFactoryBuildern #FormFactorym !FormEventsl FormEventk /FormErrorIteratorj FormErrori /FormConfigBuilderh #FormBuilder
g Formf 3CallbackTransformere 'ButtonBuilderd Buttonc 7AbstractTypeExtensionb %AbstractTypea 9AbstractRendererEngine` /AbstractExtension_ #CommandTest^ 5SortableIteratorTest] /InnerSizeIterator!\ CSizeRangeFilterIteratorTest$[ IRecursiveDirectoryIteratorTestZ 5RealIteratorTestCaseY 9PathFilterIteratorTest$X ITestMultiplePcreFilterIterator$W IMultiplePcreFilterIteratorTestV +MockSplFileInfoU 5MockFileListIteratorT -IteratorTestCaseS IteratorR 1FilterIteratorTestQ /InnerTypeIterator P AFileTypeFilterIteratorTestO 7FilePathsIteratorTestN /InnerNameIterator M AFilenameFilterIteratorTest#L GFilecontentFilterIteratorTest(K QExcludeDirectoryFilterIteratorTest"J EDepthRangeFilterIteratorTest!I CDateRangeFilterIteratorTestH =CustomFilterIteratorTest   w rU8\-	V9	jD.zkXD#




g
L
2
					w	]	D	,	}[=fAjN}]8{a9W(zV&gQ7               F -CheckboxTypeTestE )ButtonTypeTestD -BirthdayTypeTestC %BaseTypeTestB -TrimListenerTestA 9ResizeFormListenerTest!@ CMergeCollectionListenerTest2? eMergeCollectionListenerCustomArrayObjectTest&> MMergeCollectionListenerArrayTest,= YMergeCollectionListenerArrayObjectTest < AFixUrlProtocolListenerTest; ?FixRadioInputListenerTest&: MValueToDuplicatesTransformerTest-9 [PercentToLocalizedStringTransformerTest,8 YNumberToLocalizedStringTransformerTest+7 WMoneyToLocalizedStringTransformerTest-6 [IntegerToLocalizedStringTransformerTest(5 QDateTimeToTimestampTransformerTest%4 KDateTimeToStringTransformerTest&3 MDateTimeToRfc3339TransformerTest.2 ]DateTimeToLocalizedStringTransformerTest$1 IDateTimeToArrayTransformerTest0 -DateTimeTestCase/ =DataTransformerChainTest". EChoiceToValueTransformerTest$- IChoicesToValuesTransformerTest$, IBooleanToStringTransformerTest!+ CBaseDateTimeTransformerTest!* CArrayToPartsTransformerTest) 9PropertyPathMapperTest( ?LazyChoiceListInvalidImpl' 1LazyChoiceListImpl!& CSimpleNumericChoiceListTest% 5SimpleChoiceListTest$ 5ObjectChoiceListTest-# [ObjectChoiceListTest_EntityWithToString" 1LazyChoiceListTest! )ChoiceListTest  9AbstractChoiceListTest! CPropertyAccessDecoratorTest+ WDefaultChoiceListFactoryTest_Castable" EDefaultChoiceListFactoryTest! CCachingFactoryDecoratorTest! CLegacyChoiceListAdapterTest 1LazyChoiceListTest 9ArrayKeyChoiceListTest 3ArrayChoiceListTest 9AbstractChoiceListTest )SimpleFormTest  ASimpleFormTest_Traversable =SimpleFormTest_Countable 5ResolvedFormTypeTest =NativeRequestHandlerTest -FormRendererTest -FormRegistryTest ;FormPerformanceTestCase ;FormIntegrationTestCase +FormFactoryTest 9FormFactoryBuilderTest )FormConfigTest
 +FormBuilderTest	 -CompoundFormTest! CCompoundFormPerformanceTest ;CallbackTransformerTest !ButtonTest ;AbstractTableLayoutTest  AAbstractRequestHandlerTest 1AbstractLayoutTest -AbstractFormTest /ConcreteExtension  7AbstractExtensionTest 7AbstractDivLayoutTest"~ EAbstractBootstrap3LayoutTest} %TypeTestCase| ;FormPerformanceTestCase{ ;FormIntegrationTestCasez ;DeprecationErrorHandlery !ValueGuessx TypeGuessw Guessv 7ViolationPathIteratoru 'ViolationPatht +ViolationMappers %RelativePathr #MappingRuleq 5ValidatorTypeGuesserp 1ValidatorExtensiono %ServerParams"n ESubmitTypeValidatorExtension$m IRepeatedTypeValidatorExtension l AFormTypeValidatorExtensionk 9BaseValidatorExtensionj 1ValidationListeneri 'FormValidator
h Formg =TemplatingRendererEnginef 3TemplatingExtension%e KFormTypeHttpFoundationExtension"d EHttpFoundationRequestHandlerc ;HttpFoundationExtensionb 3BindRequestListener"a EDependencyInjectionExtension ` ADataCollectorTypeExtension+_ WResolvedTypeFactoryDataCollectorProxy$^ IResolvedTypeDataCollectorProxy] 7DataCollectorListener\ /FormDataExtractor[ /FormDataCollectorZ 9DataCollectorExtensionY 7FormTypeCsrfExtensionX 9CsrfValidationListenerW 3SessionCsrfProviderV 3DefaultCsrfProviderU ;CsrfTokenManagerAdapterT 3CsrfProviderAdapterS 'CsrfExtensionR UrlTypeQ %TimezoneTypeP TimeType   6 v\F0w]C+^1yQ* uQ)





a
D
)
						y	\	H	"	~lJ2wgE4!y^K1~dA pO.xVA  xZ@%pP6                              N -ParameterBagTestM 9JsonSerializableObjectL -JsonResponseTestK #IpUtilsTestJ 'HeaderBagTestI #FileBagTest"H EExpressionRequestMatcherTestG !CookieTestF 9BinaryFileResponseTestE /ApacheRequestTestD -AcceptHeaderTestC 5AcceptHeaderItemTestB 3SessionHandlerProxyA #NativeProxy@ 'AbstractProxy? ;PhpBridgeSessionStorage> 5NativeSessionStorage= 9MockFileSessionStorage< ;MockArraySessionStorage; #MetadataBag: =WriteCheckSessionHandler9 /PdoSessionHandler8 1NullSessionHandler7 5NativeSessionHandler6 =NativeFileSessionHandler5 7MongoDbSessionHandler4 9MemcacheSessionHandler3 ;MemcachedSessionHandler2 ;LegacyPdoSessionHandler1 Session0 FlashBag/ 1AutoExpireFlashBag. 9NamespacedAttributeBag- %AttributeBag, +MimeTypeGuesser+ =MimeTypeExtensionGuesser* ;FileinfoMimeTypeGuesser) ?FileBinaryMimeTypeGuesser( -ExtensionGuesser' %UploadedFile
& File% +UploadException$ ;UnexpectedTypeException# 7FileNotFoundException" 'FileException! 7AccessDeniedException  -StreamedResponse ServerBag /ResponseHeaderBag Response %RequestStack )RequestMatcher Request -RedirectResponse %ParameterBag %JsonResponse IpUtils HeaderBag FileBag =ExpressionRequestMatcher Cookie 1BinaryFileResponse 'ApacheRequest -AcceptHeaderItem %AcceptHeader =VirtualFormAwareIterator %ServerParams 9OrderedHashMapIterator
 )OrderedHashMap	 =InheritDataAwareIterator FormUtil 1OrderedHashMapTest GuessTest TestGuess 'TestExtension 3FooTypeBazExtension 3FooTypeBarExtension FooType"  EFooSubTypeWithParentInstance !FooSubType~ 3FixedFilterListener} 5FixedDataTransformer| 7CustomOptionsResolver{ /CustomArrayObjectz !AuthorTypey Authorx 1AlternatingRowTypew )AbstractAuthorv /ViolationPathTestu 3ViolationMapperTest(t QValidatorTypeGuesserTest_TestClasss =ValidatorTypeGuesserTestr 9ValidatorExtensionTestq -ServerParamsTestp %TypeTestCase&o MSubmitTypeValidatorExtensionTest$n IFormTypeValidatorExtensionTest m ABaseValidatorExtensionTestl 9ValidationListenerTest&k MLegacyFormValidatorLegacyApiTestj /FormValidatorTest"i EFormValidatorPerformanceTest&h MHttpFoundationRequestHandlerTest#g GLegacyBindRequestListenerTest$f IDataCollectorTypeExtensionTeste 7FormDataExtractorTest/d _FormDataExtractorTest_SimpleValueExporterc 7FormDataCollectorTest b ADataCollectorExtensionTesta ?FormTypeCsrfExtensionTest)` SFormTypeCsrfExtensionTest_ChildType _ ACsrfValidationListenerTest#^ GLegacySessionCsrfProviderTest#] GLegacyDefaultCsrfProviderTest\ #UrlTypeTest[ %TypeTestCaseZ -TimezoneTypeTestY %TimeTypeTestX )SubmitTypeTestW -RepeatedTypeTestV -PasswordTypeTestU )NumberTypeTestT 'MoneyTypeTestS )LocaleTypeTestR -LanguageTypeTestQ +IntegerTypeTestP %FormTypeTest%O KFormTest_AuthorWithoutRefSetterN %FileTypeTestM %DateTypeTestL -DateTimeTypeTestK -CurrencyTypeTestJ +CountryTypeTestI 1CollectionTypeTestH )ChoiceTypeTestG ?ChoiceTypePerformanceTest   ) zfG1tZ6 }Z4^:zYI.







j
M
1
						d	G	)	iJ(lO3sT> rU<~eC#vgS.tcQ3 yaM9)               W LoggerV !KernelTestU !ControllerT )HttpKernelTestS !ClientTestR +TestCacheWarmerQ +CacheWarmerTestP =CacheWarmerAggregateTestO 7ChainCacheClearerTestN !BundleTestM 7SqliteProfilerStorageL 5RedisProfilerStorageK ProfilerJ ProfileI 1PdoProfilerStorageH 5MysqlProfilerStorageG 9MongoDbProfilerStorageF ;MemcacheProfilerStorageE =MemcachedProfilerStorageD 3FileProfilerStorage!C CBaseMemcacheProfilerStorageB !NullLoggerA Store	@ Ssi? 7ResponseCacheStrategy> HttpCache= =EsiResponseCacheStrategy	< Esi; 3SsiFragmentRenderer: =RoutableFragmentRenderer9 9InlineFragmentRenderer8 =HIncludeFragmentRenderer7 +FragmentHandler6 3EsiFragmentRenderer'5 OAbstractSurrogateFragmentRenderer4 1TranslatorListener3 3TestSessionListener2 /SurrogateListener1 =StreamedResponseListener0 +SessionListener/ 3SaveSessionListener. )RouterListener- -ResponseListener, -ProfilerListener+ )LocaleListener* -FragmentListener) /ExceptionListener( #EsiListener' 5ErrorsLoggerListener& %DumpListener% 7DebugHandlersListener$ ?AddRequestFormatsListener# /PostResponseEvent" #KernelEvent"! EGetResponseForExceptionEvent)  SGetResponseForControllerResultEvent -GetResponseEvent 1FinishRequestEvent 3FilterResponseEvent 7FilterControllerEvent 7RegisterListenersPass% KMergeExtensionConfigurationPass  ALazyLoadingFragmentHandler 5FragmentRendererPass Extension =ContainerAwareHttpKernel 7ConfigurableExtension 7AddClassesToCachePass =TraceableEventDispatcher -ExceptionHandler %ErrorHandler 'ValueExporter /TimeDataCollector 3RouterDataCollector 5RequestDataCollector 3MemoryDataCollector 3LoggerDataCollector
 9ExceptionDataCollector	 1EventDataCollector /DumpDataCollector 'DataCollector 3ConfigDataCollector! CTraceableControllerResolver 1ControllerResolver 3ControllerReference #FileLocator 7EnvParametersResource  UriSigner %KernelEvents~ Kernel} !HttpKernel| Client{ 5CacheWarmerAggregatez #CacheWarmery /ChainCacheClearerx Bundlew ;SessionHandlerProxyTestv +NativeProxyTestu /AbstractProxyTest*t UConcreteSessionHandlerInterfaceProxys 'ConcreteProxy!r CPhpBridgeSessionStorageTestq =NativeSessionStorageTest p AMockFileSessionStorageTest!o CMockArraySessionStorageTestn +MetadataBagTest"m EWriteCheckSessionHandlerTestl MockPdok 7PdoSessionHandlerTestj 9NullSessionHandlerTesti =NativeSessionHandlerTest"h ENativeFileSessionHandlerTestg ?MongoDbSessionHandlerTest f AMemcacheSessionHandlerTest!e CMemcachedSessionHandlerTest!d CLegacyPdoSessionHandlerTestc #SessionTestb %FlashBagTesta 9AutoExpireFlashBagTest ` ANamespacedAttributeBagTest_ -AttributeBagTest^ %MimeTypeTest] -UploadedFileTest\ FileTest[ FakeFileZ 5StreamedResponseTestY 'ServerBagTestX -ResponseTestCaseW -StringableObjectV %ResponseTestU 7ResponseHeaderBagTestT !NewRequestS 3RequestContentProxyR #RequestTestQ -RequestStackTestP 1RequestMatcherTestO 5RedirectResponseTest    uT=w\6Y6hL.uS4





n
O
8
$
					r	L	?	.	{Z4]:#~dK1kN1zcE1qT7gL,
^=                   Y 5OutOfBoundsExceptionX ;NotImplementedExceptionW =MissingResourceException#V GMethodNotImplementedException0U aMethodArgumentValueNotImplementedException+T WMethodArgumentNotImplementedExceptionS =InvalidArgumentExceptionR 9BadMethodCallExceptionQ /IntlDateFormatterP +YearTransformerO #TransformerN 3TimeZoneTransformerM /SecondTransformerL 1QuarterTransformerK -MonthTransformerJ /MinuteTransformerI +HourTransformerH 3Hour2401TransformerG 3Hour2400TransformerF 3Hour1201TransformerE 3Hour1200TransformerD +FullTransformerC )DayTransformerB 5DayOfYearTransformerA 5DayOfWeekTransformer@ +AmPmTransformer? !RingBuffer> 5RecursiveArrayAccess= 'LocaleScanner#< GArrayAccessibleResourceBundle; 1ScriptDataProvider: 1RegionDataProvider9 1LocaleDataProvider8 5LanguageDataProvider7 5CurrencyDataProvider6 3ScriptDataGenerator5 3RegionDataGenerator4 3LocaleDataGenerator3 7LanguageDataGenerator2 +GeneratorConfig1 7CurrencyDataGenerator0 7AbstractDataGenerator/ -TextBundleWriter. +PhpBundleWriter- -JsonBundleWriter, +
PhpBundleReader+ -
JsonBundleReader* -
IntlBundleReader) /
BundleEntryReader( 5
BufferedBundleReader' '	GenrbCompiler& Collator% RedisMock$ %MemcacheMock# 'MemcachedMock" ?SqliteProfilerStorageTest! =RedisProfilerStorageTest  %ProfilerTest  AMongoDbProfilerStorageTest- [MongoDbProfilerStorageTestDataCollector! CDummyMongoDbProfilerStorage! CMemcacheProfilerStorageTest" EMemcachedProfilerStorageTest ;FileProfilerStorageTest! CAbstractProfilerStorageTest 9TestMultipleHttpKernel )TestHttpKernel StoreTest SsiTest /HttpCacheTestCase 'HttpCacheTest EsiTest	 Foo" ERoutableFragmentRendererTest	 Bar  AInlineFragmentRendererTest" EHIncludeFragmentRendererTest 3FragmentHandlerTest ;EsiFragmentRendererTest
 3TestEventDispatcher	 !TestClient 'KernelForTest 7KernelForOverrideName %FooBarBundle 9ExtensionPresentBundle ?ExtensionPresentExtension ! FooCommand ! BarCommand ;ExtensionNotValidBundle   AExtensionNotValidExtension 7ExtensionLoadedBundle~ =ExtensionLoadedExtension} 7ExtensionAbsentBundle| 9TranslatorListenerTest{ ;TestSessionListenerTestz 7SurrogateListenerTesty 1RouterListenerTestx 5ResponseListenerTestw 5ProfilerListenerTestv 1LocaleListenerTestu 5FragmentListenerTest#t GTestKernelThatThrowsExceptions !TestKernelr !TestLoggerq 7ExceptionListenerTestp !MockDumpero !MockClonern -DumpListenerTestm ?DebugHandlersListenerTest#l GAddRequestFormatsListenerTest)k SMergeExtensionConfigurationPassTest$j ILazyLoadingFragmentHandlerTesti +RendererServiceh =FragmentRendererPassTest"g EContainerAwareHttpKernelTest"f ETraceableEventDispatcherTeste /ValueExporterTestd 7TimeDataCollectorTestc =RequestDataCollectorTestb ;MemoryDataCollectorTesta ;LoggerDataCollectorTest ` AExceptionDataCollectorTest_ 7DumpDataCollectorTest^ 'KernelForTest] ;ConfigDataCollectorTest\ 9ControllerResolverTest[ +FileLocatorTestZ ?EnvParametersResourceTestY 'UriSignerTestX )TestHttpKernel    yiY@({]?"}S+kG#jQ8




}
h
T
<
)

			w	V	F	-	iL3|fT5!|[<}[C#s]F3 x\8{Y3iH2 _ 36PropertyPathBuilder^ %6PropertyPath] ;6PropertyAccessorBuilder\ -6PropertyAccessor[ )6PropertyAccessZ ;5UnexpectedTypeExceptionY -5RuntimeExceptionX 55OutOfBoundsExceptionW ;5NoSuchPropertyExceptionV 55NoSuchIndexException"U E5InvalidPropertyPathExceptionT =5InvalidArgumentExceptionS +5AccessExceptionR /4SimpleProcessTest Q A4SigchildEnabledProcessTest!P C4SigchildDisabledProcessTestO -4ProcessUtilsTest"N E4ProcessInSigchildEnvironment M A4ProcessFailedExceptionTestL 14ProcessBuilderTestK )4PhpProcessTestJ ;4PhpExecutableFinderTestI 54ExecutableFinderTestH -4NonStringifiableG '4StringifiableF 34AbstractProcessTestE %3WindowsPipesD 3UnixPipesC '3AbstractPipesB %2ProcessUtilsA )2ProcessBuilder@ 2Process? !2PhpProcess> 32PhpExecutableFinder= -2ExecutableFinder< -1RuntimeException; =1ProcessTimedOutException: 91ProcessFailedException9 )1LogicException8 =1InvalidArgumentException7 =0OptionsResolver2Dot6Test6 /0LegacyOptionsTest5 ?0LegacyOptionsResolverTest4 +/OptionsResolver3 ?.UndefinedOptionsException2 ?.OptionDefinitionException1 7.NoSuchOptionException0 ;.MissingOptionsException/ ;.InvalidOptionsException. =.InvalidArgumentException- +.AccessException, )-StubLocaleTest+ !,LocaleTest* 3+StubNumberFormatter) !+StubLocale( 7+StubIntlDateFormatter' +StubIntl& %+StubCollator% +*YearTransformer$ #*Transformer# 3*TimeZoneTransformer" /*SecondTransformer! 1*QuarterTransformer  -*MonthTransformer /*MinuteTransformer +*HourTransformer 3*Hour2401Transformer 3*Hour2400Transformer 3*Hour1201Transformer 3*Hour1200Transformer +*FullTransformer )*DayTransformer 5*DayOfYearTransformer 5*DayOfWeekTransformer +*AmPmTransformer )Locale ;(NotImplementedException# G(MethodNotImplementedException0 a(MethodArgumentValueNotImplementedException+ W(MethodArgumentNotImplementedException 'Version ''SvnRepository 'SvnCommit )'IntlTestHelper !'IcuVersion
 #&VersionTest	 )&IcuVersionTest 3%NumberFormatterTest 3$NumberFormatterTest! C$AbstractNumberFormatterTest !#LocaleTest !"LocaleTest 1"AbstractLocaleTest +!IntlGlobalsTest + IntlGlobalsTest  ; AbstractIntlGlobalsTest 7IntlDateFormatterTest~ 7IntlDateFormatterTest#} GAbstractIntlDateFormatterTest| )RingBufferTest{ /LocaleScannerTest z AJsonScriptDataProviderTest y AJsonRegionDataProviderTest x AJsonLocaleDataProviderTest"w EJsonLanguageDataProviderTest"v EJsonCurrencyDataProviderTest$u IAbstractScriptDataProviderTest$t IAbstractRegionDataProviderTest$s IAbstractLocaleDataProviderTest&r MAbstractLanguageDataProviderTestq =AbstractDataProviderTest&p MAbstractCurrencyDataProviderTesto 5TextBundleWriterTestn 3PhpBundleWriterTestm 5JsonBundleWriterTestl 3PhpBundleReaderTestk 5JsonBundleReaderTestj 5IntlBundleReaderTesti 7BundleEntryReaderTesth %CollatorTestg %CollatorTestf 5AbstractCollatorTeste %RegionBundled %LocaleBundlec )LanguageBundleb )CurrencyBundlea +NumberFormatter` Locale_ Locale
^ Intl] #IntlGlobals\ ;UnexpectedTypeException[ -RuntimeException%Z KResourceBundleNotFoundException   ( {_D)zU)KeD*b?





e
B
$
						p	\	?	%	uX=)gM'jN0^F1rI%}TAoM4t^B(                                _ -PTestDomainObject^ 1PObjectIdentityTest] %PDomainObject)\ SPObjectIdentityRetrievalStrategyTest[ )PFieldEntryTestZ PEntryTestY 5PDoctrineAclCacheTestX +PAuditLoggerTestW PAclTestV 9OMutableAclProviderTestU +OAclProviderTestT =OAclProviderBenchmarkTestS #NMaskBuilderR 1NBasicPermissionMapQ 3NAbstractMaskBuilderP 7MSidNotLoadedExceptionO =MNotAllAclsFoundExceptionN 3MNoAceFoundException"M EMInvalidDomainObjectExceptionL MException%K KMConcurrentModificationExceptionJ 5MAclNotFoundExceptionI ?MAclAlreadyExistsExceptionH 5LUserSecurityIdentity'G OLSecurityIdentityRetrievalStrategyF 5LRoleSecurityIdentity E ALPermissionGrantingStrategy%D KLObjectIdentityRetrievalStrategyC )LObjectIdentityB !LFieldEntryA LEntry@ -LDoctrineAclCache? #LAuditLogger> 1LAclCollectionCache	= LAcl< KSchema; 1KMutableAclProvider: #KAclProvider9 )JUrlMatcherTest8 ;JTraceableUrlMatcherTest 7 AJRedirectableUrlMatcherTest 6 AJLegacyApacheUrlMatcherTest5 5IPhpMatcherDumperTest#4 GILegacyApacheMatcherDumperTest 3 AIDumperPrefixCollectionTest2 5IDumperCollectionTest1 1HYamlFileLoaderTest0 /HXmlFileLoaderTest/ /HPhpFileLoaderTest. /HClosureLoaderTest- =HAnnotationFileLoaderTest#, GHAnnotationDirectoryLoaderTest+ ?HAnnotationClassLoaderTest"* EHAbstractAnnotationLoaderTest) -GUrlGeneratorTest( 9FPhpGeneratorDumperTest' 'EVariadicClass& 9DRedirectableUrlMatcher% 3DCustomXmlFileLoader$ CFooClass# CBarClass" 'CAbstractClass! BRouteTest  !BRouterTest /BRouteCompilerTest 3BRouteCollectionTest 1BRequestContextTest /BCompiledRouteTest ARouteTest -@PhpMatcherDumper '@MatcherDumper #@DumperRoute 9@DumperPrefixCollection -@DumperCollection 3@ApacheMatcherDumper !?UrlMatcher 3?TraceableUrlMatcher 9?RedirectableUrlMatcher -?ApacheUrlMatcher )>YamlFileLoader '>XmlFileLoader '>PhpFileLoader '>ClosureLoader 5>AnnotationFileLoader ?>AnnotationDirectoryLoader
 7>AnnotationClassLoader	 %=UrlGenerator 1<PhpGeneratorDumper +<GeneratorDumper 9;RouteNotFoundException ?;ResourceNotFoundException) S;MissingMandatoryParametersException ?;MethodNotAllowedException ?;InvalidParameterException :Router  ':RouteCompiler +:RouteCollection~ :Route} ):RequestContext| ':CompiledRoute{ 9Routez )8StringUtilTesty -8PropertyPathTestx ;8PropertyPathBuilderTest0w a8PropertyAccessorTraversableArrayObjectTestv 58PropertyAccessorTest3u g8PropertyAccessorNonTraversableArrayObjectTest$t I8PropertyAccessorCollectionTest1s c8PropertyAccessorCollectionTest_CarStructure1r c8PropertyAccessorCollectionTest_CompositeCar9q s8PropertyAccessorCollectionTest_CarNoAdderAndRemover3p g8PropertyAccessorCollectionTest_CarOnlyRemover1o c8PropertyAccessorCollectionTest_CarOnlyAdder(n Q8PropertyAccessorCollectionTest_Car!m C8PropertyAccessorBuilderTestl ?8PropertyAccessorArrayTest%k K8PropertyAccessorArrayObjectTest%j K8PropertyAccessorArrayAccessTesti 97TraversableArrayObjecth -7Ticket5775Objectg /7TestClassSetValuef /7TestClassMagicGete 17TestClassMagicCalld 37TestClassIsWritablec 7TestClassb ?7NonTraversableArrayObjecta !6StringUtil` 56PropertyPathIterator   |  oM3sJ'dK4fG)nQ2




y
U
6
				x	W	9	nU6oaJ2V( |`= ~^A!
hR(tYG+y`L# [ ?oUserPasswordValidatorTest%Z KoLegacyUserPasswordValidatorTestY !nTestObjectX +mStringUtilsTestW -mSecureRandomTestV !mTestObjectU )mClassUtilsTestT lUserTestS +lUserCheckerTestR =lInMemoryUserProviderTestQ 7lChainUserProviderTestP 1kSwitchUserRoleTestO kRoleTestN /kRoleHierarchyTestM ?jLegacySecurityContextTest#L GiUsernameNotFoundExceptionTestK ;hUserPasswordEncoderTest"J EhPlaintextPasswordEncoderTestI ?hPbkdf2PasswordEncoderTest&H MhMessageDigestPasswordEncoderTestG %hEncAwareUserF 'hSomeChildUserE hSomeUserD 1hEncoderFactoryTestC ?hBCryptPasswordEncoderTestB ;hBasePasswordEncoderTestA +hPasswordEncoder@ 'gRoleVoterTest? 9gRoleHierarchyVoterTest> 3gExpressionVoterTest= 9gAuthenticatedVoterTest< 9fExpressionLanguageTest; =fAuthorizationCheckerTest: ?fAccessDecisionManagerTest9 -eTokenStorageTest8 ?dUsernamePasswordTokenTest7 3dRememberMeTokenTest6 ?dPreAuthenticatedTokenTest5 1dAnonymousTokenTest4 /dAbstractTokenTest3 'dConcreteToken2 dTestUser1 3cPersistentTokenTest0 ?cInMemoryTokenProviderTest$/ IbUserAuthenticationProviderTest*. UbRememberMeAuthenticationProviderTest0- abPreAuthenticatedAuthenticationProviderTest#, GbDaoAuthenticationProviderTest)+ SbAnonymousAuthenticationProviderTest%* KaAuthenticationTrustResolverTest') OaAuthenticationProviderManagerTest( )`SwitchUserRole' '`RoleHierarchy
& `Role% ?_UsernameNotFoundException$ =_UnsupportedUserException# 9_TokenNotFoundException!" C_SessionUnavailableException! -_RuntimeException  ?_ProviderNotFoundException 7_NonceExpiredException +_LogoutException +_LockedException ?_InvalidCsrfTokenException =_InvalidArgumentException) S_InsufficientAuthenticationException /_DisabledException! C_CredentialsExpiredException 5_CookieTheftException ;_BadCredentialsException$ I_AuthenticationServiceException ;_AuthenticationException0 a_AuthenticationCredentialsNotFoundException 9_AccountStatusException ;_AccountExpiredException 7_AccessDeniedException  A^AuthenticationFailureEvent 3^AuthenticationEvent 3]UserPasswordEncoder =]PlaintextPasswordEncoder 7]Pbkdf2PasswordEncoder"
 E]MessageDigestPasswordEncoder	 )]EncoderFactory 7]BCryptPasswordEncoder 3]BasePasswordEncoder \RoleVoter 1\RoleHierarchyVoter +\ExpressionVoter 1\AuthenticatedVoter '\AbstractVoter  A[ExpressionLanguageProvider  1[ExpressionLanguage 5[AuthorizationChecker~ 7[AccessDecisionManager} +ZSecurityContext| ZSecurity{ 5ZAuthenticationEventsz %YTokenStoragey 7XUsernamePasswordTokenx +XRememberMeTokenw 7XPreAuthenticatedTokenv )XAnonymousTokenu 'XAbstractTokent +WPersistentTokens 7WInMemoryTokenProvider r AVUserAuthenticationProvider"q EVSimpleAuthenticationProvider&p MVRememberMeAuthenticationProvider,o YVPreAuthenticatedAuthenticationProvidern ?VDaoAuthenticationProvider%m KVAnonymousAuthenticationProvider!l CUAuthenticationTrustResolver#k GUAuthenticationProviderManagerj TFieldVotei TAclVoterh %SAclVoterTestg +RMaskBuilderTestf 9RBasicPermissionMapTeste -QTestDomainObjectd =PUserSecurityIdentityTestc )PCustomUserImpl+b WPSecurityIdentityRetrievalStrategyTesta =PRoleSecurityIdentityTest$` IPPermissionGrantingStrategyTest   w  zeO0{Z;yM!{S-|d;





w
[
1
				j	E	 	xR+tCiM jJ~U3dI3~jU5!mO4          R 5ClassMetadataFactoryQ 'ClassMetadataP /AttributeMetadataO 5UnsupportedExceptionN =UnexpectedValueExceptionM -RuntimeExceptionL -MappingExceptionK )LogicExceptionJ =InvalidArgumentException I ACircularReferenceExceptionH !XmlEncoderG 9SerializerAwareEncoderF #JsonEncoderE !JsonEncodeD !JsonDecodeC %ChainEncoderB %ChainDecoderA Groups(@ QLegacySecurityContextInterfaceTest? =UnsupportedObjectFixture> 'ObjectFixture= %VoterFixture< /AbstractVoterTest'; OSessionAuthenticationStrategyTest&: MTokenBasedRememberMeServicesTest9 5ResponseListenerTest08 aPersistentTokenBasedRememberMeServicesTest$7 IAbstractRememberMeServicesTest6 =SessionLogoutHandlerTest%5 KDefaultLogoutSuccessHandlerTest%4 KCookieClearingLogoutHandlerTest$3 IX509AuthenticationListenerTest2 9SwitchUserListenerTest)1 SSimplePreAuthenticationListenerTest*0 URemoteUserAuthenticationListenerTest/ 9RememberMeListenerTest. 1LogoutListenerTest- 7ExceptionListenerTest, )DigestDataTest+ 3ContextListenerTest* 3ChannelListenerTest%) KBasicAuthenticationListenerTest)( SAnonymousAuthenticationListenerTest' 1AccessListenerTest*& UAbstractPreAuthenticatedListenerTest'% ORetryAuthenticationEntryPointTest&$ MFormAuthenticationEntryPointTest(# QDigestAuthenticationEntryPointTest'" OBasicAuthenticationEntryPointTest-! [DefaultAuthenticationSuccessHandlerTest-  [DefaultAuthenticationFailureHandlerTest 'HttpUtilsTest %FirewallTest +FirewallMapTest% KSimpleAuthenticationHandlerTest 'AccessMapTest# GSessionAuthenticationStrategy" ETokenBasedRememberMeServices -ResponseListener, YPersistentTokenBasedRememberMeServices  AAbstractRememberMeServices 5SessionLogoutHandler 1LogoutUrlGenerator! CDefaultLogoutSuccessHandler! CCookieClearingLogoutHandler  A~X509AuthenticationListener0 a~UsernamePasswordFormAuthenticationListener 1~SwitchUserListener% K~SimplePreAuthenticationListener& M~SimpleFormAuthenticationListener& M~RemoteUserAuthenticationListener 1~RememberMeListener
 )~LogoutListener	 /~ExceptionListener !~DigestData" E~DigestAuthenticationListener +~ContextListener +~ChannelListener! C~BasicAuthenticationListener% K~AnonymousAuthenticationListener )~AccessListener& M~AbstractPreAuthenticatedListener$  I~AbstractAuthenticationListener +}SwitchUserEvent~ 7}InteractiveLoginEvent#} G|RetryAuthenticationEntryPoint"| E|FormAuthenticationEntryPoint${ I|DigestAuthenticationEntryPoint#z G|BasicAuthenticationEntryPoint!y C{SimpleAuthenticationHandler)x S{DefaultAuthenticationSuccessHandler)w S{DefaultAuthenticationFailureHandler(v Q{CustomAuthenticationSuccessHandler(u Q{CustomAuthenticationFailureHandlert 3{AuthenticationUtilss )zSecurityEventsr zHttpUtilsq #zFirewallMapp zFirewallo zAccessMapn 3ySessionTokenStoragem ?yNativeSessionTokenStoragel 7xUriSafeTokenGeneratork ;wSessionTokenStorageTest#j GwNativeSessionTokenStorageTesti ?vUriSafeTokenGeneratorTesth 5uCsrfTokenManagerTestg 9tTokenNotFoundExceptionf -sCsrfTokenManagere sCsrfTokend 7rUserPasswordValidatorc %rUserPasswordb #qStringUtilsa %qSecureRandom` !qClassUtils_ #pUserChecker
^ pUser] 5pInMemoryUserProvider\ /pChainUserProvider   / cG-s[;t[F/`B'hJ!



y
[
F
&
				k	I	)	{_H7"zjU@+pQ1rS1mXC(mR8{eN8"	u`I/               ^ -IcuDatFileLoader] 'CsvFileLoader\ #ArrayLoader[ )ChainExtractorZ 7AbstractFileExtractorY ?NotFoundResourceExceptionX =InvalidResourceExceptionW )YamlFileDumperV +XliffFileDumperU %QtFileDumperT %PoFileDumperS 'PhpFileDumperR %MoFileDumperQ )JsonFileDumperP 'IniFileDumperO -IcuResFileDumperN !FileDumperM 'CsvFileDumperL !TranslatorK 1PluralizationRulesJ +MessageSelectorI -MessageCatalogueH /LoggingTranslatorG IntervalF 1IdentityTranslatorE ;DataCollectorTranslatorD =TranslationDataCollectorC )MergeOperationB 'DiffOperationA /AbstractOperation@ /StringStorageTest? #TestStorage> #StorageTest= +FileStorageTest< 9ProjectTemplateLoader4; !LoaderTest: 9ProjectTemplateLoader29 5FilesystemLoaderTest8 9ProjectTemplateLoader17 +ChainLoaderTest6 =ProjectTemplateLoaderVar5 7ProjectTemplateLoader4 +CacheLoaderTest3 +SlotsHelperTest 2 ALegacyCoreAssetsHelperTest1 9LegacyAssetsHelperTest0 7ProjectTemplateHelper/ !HelperTest. %SimpleHelper- 9TemplateNameParserTest, 7ProjectTemplateLoader+ 7ProjectTemplateEngine* 'PhpEngineTest) 5DelegatingEngineTest( 'StringStorage' Storage& #FileStorage% Loader$ -FilesystemLoader# #ChainLoader" #CacheLoader! #SlotsHelper  Helper -CoreAssetsHelper %AssetsHelper /TemplateReference 1TemplateNameParser PhpEngine -DelegatingEngine !UrlPackage #PathPackage Package 'StopwatchTest 1StopwatchEventTest +StopwatchPeriod )StopwatchEvent Stopwatch Section Model )SerializerTest )TestNormalizer -TestDenormalizer 9PropertyCamelizedDummy =PropertyConstructorDummy
 'PropertyDummy	 9PropertyNormalizerTest0 aObjectConstructorArgsWithDefaultValueDummy( QObjectConstructorOptionalArgsDummy  AObjectSerializerNormalizer 9ObjectConstructorDummy #ObjectDummy 5ObjectNormalizerTest" EObjectWithPrivateSetterDummy2 eObjectConstructorArgsWithPrivateMutatorDummy  /GetCamelizedDummy- [GetConstructorArgsWithDefaultValueDummy%~ KGetConstructorOptionalArgsDummy} 5SerializerNormalizer| 3GetConstructorDummy{ #GetSetDummy z AGetSetMethodNormalizerTesty 5CustomNormalizerTest+x WCamelCaseToSnakeCaseNameConverterTestw 1YamlFileLoaderTestv /XmlFileLoaderTestu 5AnnotationLoaderTestt =ClassMetadataFactoryTests =TestClassMetadataFactoryr /ClassMetadataTestq 7AttributeMetadataTest"p EVariadicConstructorArgsDummyo -TraversableDummyn Siblingm 'SiblingHolderl #ScalarDummyk +PropertySiblingj 7PropertySiblingHolder$i IPropertyCircularReferenceDummy"h ENormalizableTraversableDummyg -GroupDummyParentf !GroupDummye Dummyd 3DenormalizableDummyc 9CircularReferenceDummyb )XmlEncoderTesta +JsonEncoderTest` !GroupsTest_ !Serializer^ ?SerializerAwareNormalizer] 1PropertyNormalizer\ -ObjectNormalizer[ 9GetSetMethodNormalizerZ -CustomNormalizerY 1AbstractNormalizer'X OCamelCaseToSnakeCaseNameConverterW )YamlFileLoaderV 'XmlFileLoaderU #LoaderChainT !FileLoaderS -AnnotationLoader   T t^E-lV7{`H,nQ5rW=#




z
]
<
!
						j	]	G	8	 	hUF5u]L2qL.ymXJ3"dT;)sXD'}eV>,zcT            ~ Valid} 'UuidValidator
| Uuid{ %UrlValidator	z Urly 'TypeValidator
x Typew 'TrueValidator
v Trueu Traverset 'TimeValidator
s Timer Requiredq )RegexValidatorp Regexo )RangeValidatorn Rangem Optionall 'NullValidator
k Nullj -NotNullValidatori NotNullh ;NotIdenticalToValidatorg )NotIdenticalTof 3NotEqualToValidatore !NotEqualTod /NotBlankValidatorc NotBlankb 'LuhnValidator
a Luhn` +LocaleValidator_ Locale^ /LessThanValidator] =LessThanOrEqualValidator\ +LessThanOrEqual[ LessThanZ +LengthValidatorY LengthX /LanguageValidatorW LanguageV +IsTrueValidatorU IsTrueT 'IssnValidator
S IssnR +IsNullValidatorQ IsNullP -IsFalseValidatorO IsFalseN 'IsbnValidator
M IsbnL #IpValidatorK IpJ )ImageValidatorI ImageH 5IdenticalToValidatorG #IdenticalToF 'IbanValidator
E IbanD 7GroupSequenceProviderC 'GroupSequenceB 5GreaterThanValidator!A CGreaterThanOrEqualValidator@ 1GreaterThanOrEqual? #GreaterThan> 'FileValidator
= File< )FalseValidator; False: 3ExpressionValidator9 !Expression8 Existence7 -EqualToValidator6 EqualTo5 )EmailValidator4 Email3 'DateValidator2 /DateTimeValidator1 DateTime
0 Date/ /CurrencyValidator. Currency- )CountValidator, -CountryValidator+ Country* Count) Composite( 3CollectionValidator' !Collection& +ChoiceValidator% Choice$ 3CardSchemeValidator# !CardScheme" /CallbackValidator! Callback  )BlankValidator Blank %AllValidator	 All! CAbstractComparisonValidator 1AbstractComparison -ValidatorBuilder Validator /ValidationVisitor !Validation -ExecutionContext /DefaultTranslator ;ConstraintViolationList 3ConstraintViolation  AConstraintValidatorFactory 3ConstraintValidator !Constraint /TranslationWriter 1YamlFileLoaderTest 3XliffFileLoaderTest -QtFileLoaderTest -PoFileLoaderTest
 /PhpFileLoaderTest	 -MoFileLoaderTest /LocalizedTestCase 1JsonFileLoaderTest /IniFileLoaderTest 5IcuResFileLoaderTest 5IcuDatFileLoaderTest /CsvFileLoaderTest 1YamlFileDumperTest 3XliffFileDumperTest  -QtFileDumperTest -PoFileDumperTest~ /PhpFileDumperTest} -MoFileDumperTest| 1JsonFileDumperTest{ /IniFileDumperTestz 5IcuResFileDumperTesty 1ConcreteFileDumperx )FileDumperTestw /CsvFileDumperTestv #StringClassu )TranslatorTestt 'StaleResources 3TranslatorCacheTestr 9PluralizationRulesTestq 3MessageSelectorTestp 5MessageCatalogueTesto 7LoggingTranslatorTestn %IntervalTestm 9IdentityTranslatorTest!l CDataCollectorTranslatorTest"k ETranslationDataCollectorTestj 1MergeOperationTesti /DiffOperationTesth 7AbstractOperationTestg )YamlFileLoaderf +XliffFileLoadere %QtFileLoaderd %PoFileLoaderc 'PhpFileLoaderb %MoFileLoadera )JsonFileLoader` 'IniFileLoader_ -IcuResFileLoader    Z:sR4zcE,c?'lS5




r
M
'
					`	.	w[<tU:{bG)rS6|`E*qM%r]@lO:       ! CGroupSequenceProviderEntity  #FilesLoader 3FakeMetadataFactory~ /FakeClassMetadata } AFailingConstraintValidator| /FailingConstraint{ %EntityParentz Entityy /CustomArrayObjectx Countable"w EConstraintWithValueAsDefaultv 3ConstraintWithValueu #ConstraintCt #ConstraintBs 5ConstraintAValidatorr #ConstraintAq +ClassConstraintp 'CallbackClasso 5ValidatorBuilderTestn 3LegacyValidatorTest$m IExecutionContextTest_TestClass l ALegacyExecutionContextTestk ;ConstraintViolationTest!j CConstraintViolationListTesti )ConstraintTesth RegexTestg ValidTestf /UuidValidatorTeste -UrlValidatorTestd /TypeValidatorTestc /TimeValidatorTestb 1RegexValidatorTesta 1RangeValidatorTest` 5NotNullValidatorTest!_ CNotIdenticalToValidatorTest^ ;NotEqualToValidatorTest] 7NotBlankValidatorTest\ /LuhnValidatorTest[ 3LocaleValidatorTestZ 7LessThanValidatorTest"Y ELessThanOrEqualValidatorTestX 3LengthValidatorTestW 7LanguageValidatorTestV 3IsTrueValidatorTestU /IssnValidatorTestT 3IsNullValidatorTestS 5IsFalseValidatorTestR /IsbnValidatorTestQ +IpValidatorTestP 1ImageValidatorTestO =IdenticalToValidatorTestN /IbanValidatorTestM /GroupSequenceTestL =GreaterThanValidatorTest%K KGreaterThanOrEqualValidatorTestJ /FileValidatorTestI 7FileValidatorPathTestH ;FileValidatorObjectTestG FileTestF ;ExpressionValidatorTestE 5EqualToValidatorTestD 1EmailValidatorTestC /DateValidatorTestB 7DateTimeValidatorTestA 7CurrencyValidatorTest@ 1CountValidatorTest!? CCountValidatorCountableTest> ;CountValidatorArrayTest= 5CountryValidatorTest< 'CompositeTest; /ConcreteComposite: ;CollectionValidatorTest.9 ]CollectionValidatorCustomArrayObjectTest"8 ECollectionValidatorArrayTest(7 QCollectionValidatorArrayObjectTest6 )CollectionTest5 3ChoiceValidatorTest4 ;CardSchemeValidatorTest3 7CallbackValidatorTest"2 ECallbackValidatorTest_Object!1 CCallbackValidatorTest_Class0 1BlankValidatorTest/ -AllValidatorTest. AllTest"- EConstraintViolationAssertion%, KAbstractConstraintValidatorTest)+ SAbstractComparisonValidatorTestCase* 5ComparisonTest_Class) +YamlFilesLoader( )YamlFileLoader' )XmlFilesLoader& 'XmlFileLoader% 1StaticMethodLoader$ #LoaderChain# #FilesLoader" !FileLoader! -AnnotationLoader  )AbstractLoader  ALazyLoadingMetadataFactory =BlackHoleMetadataFactory 'DoctrineCache ApcCache /TraversalStrategy -PropertyMetadata )MemberMetadata )GetterMetadata +GenericMetadata +ElementMetadata 5ClassMetadataFactory 'ClassMetadata /CascadingStrategy =BlackholeMetadataFactory 1ValidatorException" EUnsupportedMetadataException ;UnexpectedTypeException -RuntimeException 5OutOfBoundsException ;NoSuchMetadataException ;MissingOptionsException
 -MappingException	 ;InvalidOptionsException =InvalidArgumentException =GroupDefinitionException# GConstraintDefinitionException 9BadMethodCallException# GLegacyExecutionContextFactory 9LegacyExecutionContext ;ExecutionContextFactory -ExecutionContext  Required Optional   + nS7 jDtV:lM(iE






z
g
M
5
"
								q	]	<	!	n^M=-t`UC)l:Y;vW;K,x_7\+               - [AbstractEntityChoiceListSingleIntIdTest:
 uAbstractEntityChoiceListSingleAssociationToIntIdTest-	 [AbstractEntityChoiceListCompositeIdTest
 User 5SingleStringIdEntity! CSingleIntIdNoToStringEntity /SingleIntIdEntity$ ISingleAssociationToIntIdEntity +GroupableEntity -DoubleNameEntity 7ContainerAwareFixture  ;CompositeStringIdEntity 5CompositeIntIdEntity~ /AssociationEntity} ;DoctrineParserCacheTest| 7DoctrineExtensionTest2{ eRegisterEventListenersAndSubscribersPassTestz =ContainerAwareLoaderTesty ?DoctrineDataCollectorTestx 3DoctrineOrmTestCasew !MyListener$v IContainerAwareEventManagerTestu 1DoctrineTestHelpert 1EntityUserProviders 7DoctrineTokenProviderr !DbalLoggerq =DbalSessionHandlerSchemap 1DbalSessionHandlero !EntityTypen %DoctrineType%m KMergeDoctrineCollectionListenerl 9DoctrineOrmTypeGuesserk 5DoctrineOrmExtension"j ECollectionToArrayTransformeri 7ORMQueryBuilderLoaderh IdReaderg -EntityChoiceListf 5DoctrineChoiceLoadere 3DoctrineParserCached 'EntityFactoryc 5RegisterMappingsPass.b ]RegisterEventListenersAndSubscribersPassa 9DoctrineValidationPass` ?AbstractDoctrineExtension_ 5ContainerAwareLoader^ 7DoctrineDataCollector] +ManagerRegistry \ AContainerAwareEventManager[ -ProxyCacheWarmerZ YamlTestY BX !ParserTestW 1ParseExceptionTestV !InlineTestU AT !DumperTestS -RuntimeExceptionR )ParseExceptionQ 'DumpException
P YamlO UnescaperN ParserM InlineL EscaperK DumperJ VarDumperI DumbFooH 'VarClonerTestG )HtmlDumperTestF 'CliDumperTestE 5ReflectionCasterTestD 'PdoCasterTestC !CasterTestB /VarDumperTestCaseA ;ThrowingCasterException@ !HtmlDumper? CliDumper> )AbstractDumper= VarCloner
< Stub
; Data: Cursor9 )AbstractCloner8 /XmlResourceCaster7 !StubCaster6 SplCaster5 )ResourceCaster4 -ReflectionCaster3 PdoCaster2 #MongoCaster1 +ExceptionCaster0 DOMCaster/ )DoctrineCaster. CutStub- ConstStub, Caster+ !AmqpCaster&* MLegacyConstraintViolationBuilder ) AConstraintViolationBuilder( 1RecursiveValidator"' ERecursiveContextualValidator& +LegacyValidator% %PropertyPath$$ IRecursiveValidator2Dot5ApiTest"# ELegacyValidatorLegacyApiTest!" CLegacyValidator2Dot5ApiTest! 7AbstractValidatorTest  7AbstractLegacyApiTest 5Abstract2Dot5ApiTest -PropertyPathTest 1YamlFileLoaderTest /XmlFileLoaderTest =BaseStaticLoaderDocument 5StaticLoaderDocument 1StaticLoaderEntity 5AbstractStaticLoader 9StaticMethodLoaderTest +LoaderChainTest +FilesLoaderTest 5AnnotationLoaderTest  AAbstractStaticMethodLoader !TestLoader$ ILazyLoadingMetadataFactoryTest" EBlackHoleMetadataFactoryTest 5PropertyMetadataTest 1TestMemberMetadata 1MemberMetadataTest 3TestElementMetadata ?LegacyElementMetadataTest
 1GetterMetadataTest	 /ClassMetadataTest 1LegacyApcCacheTest /DoctrineCacheTest  AStubGlobalExecutionContext Reference 1PropertyConstraint  AInvalidConstraintValidator /InvalidConstraint   | Ra b!~Z7r\= 





f
V
@
$						q	Z	6	
z[9~dC"lV@!
q\E1zdJ)v]?* mV5r[E)                        DumpNode 1TwigRendererEngine %TwigRenderer 'YamlExtension 5TranslationExtension 1StopwatchExtension /SecurityExtension  -RoutingExtension /ProfilerExtension~ 1LogoutUrlExtension} 3HttpKernelExtension| ;HttpFoundationExtension{ 'FormExtensionz 3ExpressionExtensiony 'DumpExtensionx 'CodeExtensionw )AssetExtensionv /TwigDataCollectoru #LintCommandt %DebugCommands !TwigEnginer #AppVariableq 5MessageDataCollectorp +ProxyDumperTesto ;RuntimeInstantiatorTestn /ProjectUrlMatcherm +NumberFormatterl Localek /IntlDateFormatterj Collatori ;ProjectServiceContainerh ;ProjectWithXsdExtensiong -ProjectExtensionf %BarUserClasse BazClassd BarClass6c mSymfony_Component_Debug_Tests_Fixtures_PEARClassb #TestCommanda =FooSubnamespaced2Command` =FooSubnamespaced1Command_ !FooCommand^ 'FoobarCommand] #Foo5Command\ #Foo4Command[ #Foo3CommandZ #Foo2CommandY #Foo1CommandX 'BarBucCommandW 'Pearlike2_FooV 'Pearlike2_BazU 'Pearlike2_BarT 7Pearlike_WithCommentsS %Pearlike_FooR %Pearlike_BazQ %Pearlike_Bar	P FooO -Pearlike2_FooBarN +Pearlike_FooBarM CTBarL CTFooK ;PrefixCollision_C_B_FooJ ;PrefixCollision_C_B_BarI ;PrefixCollision_A_B_FooH ;PrefixCollision_A_B_BarG -Apc_Pearlike_FooF -Apc_Pearlike_BazE -Apc_Pearlike_BarD 3Apc_Pearlike_FooBar C AApcPrefixCollision_A_B_Foo B AApcPrefixCollision_A_B_BarA =ApcPrefixCollision_A_Foo@ =ApcPrefixCollision_A_Bar? 7PrefixCollision_C_Foo> 7PrefixCollision_C_Bar= 7PrefixCollision_A_Foo< 7PrefixCollision_A_Bar/; _stdClass_c1d194250ee2e2b7d2eab8b8212368a8(: QLazyServiceProjectServiceContainer 9 AProxyManagerBridgeFooClass8 '
PhpDumperTest7 5	ContainerBuilderTest6 #ProxyDumper5 3RuntimeInstantiator4 ;DeprecationErrorHandler3 -WebProcessorTest$2 INotFoundActivationStrategyTest1 1ConsoleHandlerTest0 %WebProcessor/ Logger . A NotFoundActivationStrategy- 1SwiftMailerHandler, )FirePHPHandler+ %DebugHandler* )ConsoleHandler) -ChromePhpHandler( -ConsoleFormatter' 3DoctrineInitializer& 7UniqueEntityValidator% %UniqueEntity$ ?UniqueEntityValidatorTest.# ]LegacyUniqueEntityValidatorLegacyApiTest" 9EntityUserProviderTest! )DbalLoggerTest  9DbalSessionHandlerTest )EntityTypeTest ?EntityTypePerformanceTest  ADoctrineOrmTypeGuesserTest& MCollectionToArrayTransformerTestA UnloadedEntityChoiceListSingleStringIdWithQueryBuilderTest0 aUnloadedEntityChoiceListSingleStringIdTest= {UnloadedEntityChoiceListSingleIntIdWithQueryBuilderTest- [UnloadedEntityChoiceListSingleIntIdTestK UnloadedEntityChoiceListSingleAssociationToIntIdWithQueryBuilderTest: uUnloadedEntityChoiceListSingleAssociationToIntIdTest= {UnloadedEntityChoiceListCompositeIdWithQueryBuilderTest- [UnloadedEntityChoiceListCompositeIdTest ?ORMQueryBuilderLoaderTest. ]LoadedEntityChoiceListSingleStringIdTest+ WLoadedEntityChoiceListSingleIntIdTest8 qLoadedEntityChoiceListSingleAssociationToIntIdTest+ WLoadedEntityChoiceListCompositeIdTest! CGenericEntityChoiceListTest" EAbstractEntityChoiceListTest0 aAbstractEntityChoiceListSingleStringIdTest    ~^K<c8jH*d@&|\5




~
b
G
/
						k	O	3	mQ: p[L8 mQ5T.fN+nQ!kR?{dN7       +5StopwatchHelper '5SessionHelper %5RouterHelper '5RequestHelper !5FormHelper
 !5CodeHelper	 %5AssetsHelper '5ActionsHelper )4TimedPhpEngine /4TemplateReference 14TemplateNameParser 94TemplateFilenameParser 4PhpEngine +4GlobalVariables -4DelegatingEngine  4Debugger #3PathPackage~ )3PackageFactory} 2Router| 92RedirectableUrlMatcher{ -2DelegatingLoaderz 1HttpCache,y Y0ContainerAwareHIncludeFragmentRendererx 3/TestSessionListenerw +/SessionListenerv 1.FrameworkExtensionu '.Configurationt )-TranslatorPasss =-TranslationExtractorPassr 7-TranslationDumperPassq )-TemplatingPassp ?-TemplatingAssetHelperPasso )-SerializerPassn 3-RoutingResolverPassm %-ProfilerPassl 7-LoggingTranslatorPassk 5-FragmentRendererPassj -FormPass#i G-ContainerBuilderDebugDumpPassh 7-CompilerDebugDumpPass"g E-AddValidatorInitializersPass(f Q-AddExpressionLanguageProvidersPass!e C-AddConstraintValidatorsPassd 7-AddConsoleCommandPassc 1-AddCacheWarmerPassb 3-AddCacheClearerPassa 3,RouterDataCollector` /,AjaxDataCollector_ 1+TemplateController^ 1+RedirectController] 1+ControllerResolver\ 5+ControllerNameParser[ !+ControllerZ -*DescriptorHelperY ')XmlDescriptorX ))TextDescriptorW 1)MarkdownDescriptorV ))JsonDescriptorU !)DescriptorT (ShellS #(ApplicationR +'YamlLintCommandQ ='TranslationUpdateCommandP ;'TranslationDebugCommandO /'ServerStopCommandN 3'ServerStatusCommandM 1'ServerStartCommandL -'ServerRunCommandK ''ServerCommandJ 1'RouterMatchCommandI 1'RouterDebugCommandH ?'RouterApacheDumperCommand!G C'EventDispatcherDebugCommandF 7'ContainerDebugCommandE 7'ContainerAwareCommand D A'ConfigDumpReferenceCommandC 1'ConfigDebugCommandB 1'CacheWarmupCommandA /'CacheClearCommand@ 5'AssetsInstallCommand? 7'AbstractConfigCommand> +&FrameworkBundle= &Client< ;%TranslationsCacheWarmer; =%TemplatePathsCacheWarmer: )%TemplateFinder9 /%RouterCacheWarmer8 1$DebugExtensionTest7 ?#DumpDataCollectorPassTest6 )"DebugExtension5 '"Configuration4 7!DumpDataCollectorPass3 # DebugBundle2 'TwigExtractor1 -TransTokenParser#0 GTransDefaultDomainTokenParser/ 9TransChoiceTokenParser. 5StopwatchTokenParser- 5FormThemeTokenParser, +DumpTokenParser+ )TwigEngineTest* /TwigExtractorTest) =FormThemeTokenParserTest( -TwigNodeProvider ' ATranslationNodeVisitorTest-& [TranslationDefaultDomainNodeVisitorTest% ScopeTest$ 'TransNodeTest"# ESearchAndRenderBlockNodeTest" 'FormThemeTest! %DumpNodeTest  )StubTranslator 5StubFilesystemLoader =TranslationExtensionTest 9StopwatchExtensionTest 5RoutingExtensionTest ;HttpKernelExtensionTest! CHttpFoundationExtensionTest" EFormExtensionTableLayoutTest  AFormExtensionDivLayoutTest' OFormExtensionBootstrap3LayoutTest ;ExpressionExtensionTest /DumpExtensionTest /CodeExtensionTest 1AssetExtensionTest +LintCommandTest 9TranslationNodeVisitor) STranslationDefaultDomainNodeVisitor Scope TransNode 9TransDefaultDomainNode 'StopwatchNode =SearchAndRenderBlockNode
 +RenderBlockNode	 'FormThemeNode +FormEnctypeNode   ' jVB0|\@ xX6p@*cG,




s
Z
?
$
							Q	>	"	|hH 
y[>'xW4rZ5nW3rW<!|gO6tN'                   # GhYamlCompleteConfigurationTest" EhXmlCompleteConfigurationTest 7hSecurityExtensionTest" EhPhpCompleteConfigurationTest 7hMainConfigurationTest ?hCompleteConfigurationTest ?gSecurityDataCollectorTest )fSecurityHelper +fLogoutUrlHelper )eSecurityBundle #dFirewallMap
 +dFirewallContext	 /cAclSchemaListener +bInMemoryFactory #aX509Factory$ IaSimplePreAuthenticationFactory /aSimpleFormFactory /aRemoteUserFactory /aRememberMeFactory /aHttpDigestFactory -aHttpBasicFactory  -aFormLoginFactory +aAbstractFactory~ /`SecurityExtension} /`MainConfiguration| 7_AddSecurityVotersPass{ 7^SecurityDataCollector z A]UserPasswordEncoderCommandy ']SetAclCommandx )]InitAclCommand w A\ConstraintValidatorFactoryv ![Translatoru /[TranslationLoadert 5[PhpStringTokenParsers %[PhpExtractor$r IZConstraintValidatorFactoryTest!q CYTranslatorWithInvalidLocalep )YTranslatorTesto -YPhpExtractorTestn 3XTemplateLocatorTestm )WStubTranslatorl 9WStubTemplateNameParserk 3VStopwatchHelperTestj /VSessionHelperTesti /VRequestHelperTesth ?VFormHelperTableLayoutTestg ;VFormHelperDivLayoutTestf -VAssetsHelperTeste 1UTimedPhpEngineTestd %UTemplateTestc 7UTemplateReferenceTestb 9UTemplateNameParserTest a AUTemplateFilenameParserTest` 'UPhpEngineTest_ 3UGlobalVariablesTest^ 5UDelegatingEngineTest] !TRouterTest \ ATRedirectableUrlMatcherTest[ #SWebTestCaseZ +SSubRequestsTestY #SSessionTestX %SProfilerTestW %SFragmentTest$V ISConfigDumpReferenceCommandTestU 9SConfigDebugCommandTestT !RTestBundleS 'QTestExtensionR 'QConfigurationQ %PCustomConfigP 5OSubRequestControllerO /OSessionControllerN 1OProfilerController	M OBarL 1OFragmentControllerK NAppKernel6J mMLegacyContainerAwareHIncludeFragmentRendererTestI +LSensioFooBundleH /KDefaultControllerG 1JSensioCmsFooBundleF /IDefaultControllerE HFooBundleD /GDefaultControllerC /FDefaultControllerB /EDefaultControllerA +DFabpotFooBundle@ /CDefaultController? !BBaseBundle > AAYamlFrameworkExtensionTest= ?AXmlFrameworkExtensionTest< ?APhpFrameworkExtensionTest; 9AFrameworkExtensionTest: /AConfigurationTest9 1@TranslatorPassTest8 1@SerializerPassTest7 -@ProfilerPassTest6 ?@LoggingTranslatorPassTest)5 S@LegacyTemplatingAssetHelperPassTest4 +@RendererService$3 I@LegacyFragmentRendererPassTest2 %@TestProvider,1 Y@AddExpressionLanguageProvidersPassTest0 9@ExtensionPresentBundle/ @MyCommand. ?@AddConsoleCommandPassTest- 9@AddCacheWarmerPassTest, 9?RedirectControllerTest+ )?TestController* )?ControllerTest) =?ContainerAwareController( 9?ControllerResolverTest' =?ControllerNameParserTest& />XmlDescriptorTest% 1>TextDescriptorTest$ 7>ExtendedCallableClass# '>CallableClass" +>ObjectsProvider! 9>MarkdownDescriptorTest  1>JsonDescriptorTest 9>AbstractDescriptorTest +=ApplicationTest! C<TranslationDebugCommandTest 9<RouterMatchCommandTest 9<RouterDebugCommandTest ';TestAppKernel 7:CacheClearCommandTest 9TestCase !9TestBundle !9ClientTest 18TemplateFinderTest #7WebTestCase )7KernelTestCase +6TemplateLocator -6FilesystemLoader -5TranslatorHelper   I xXAsfM0dK&
gH1z`L+




s
R
@
"						~	g	J	.	oO4pS1qS4$uaL7!	\D+zO'
xk^QD7,! scVI   	4 Baz	3 Bar2 FooBar1 !SomeParent0 SomeClass/ B. A- B, A+ B* A
) CFoo( A' G& F% E$ D# B" A	! Foo	  Bar	 Foo	 Bar	 Foo	 Baz	 Bar FooBar	 Foo	 Bar	 Foo	 Bar	 Foo	 Bar	 Foo	 Bar 3Psr4ClassLoaderTest$ ILegacyUniversalClassLoaderTest' OLegacyApcUniversalClassLoaderTest 7ClassMapGeneratorTest +ClassLoaderTest ?ClassCollectionLoaderTest /XcacheClassLoader
 3WinCacheClassLoader	 5UniversalClassLoader +Psr4ClassLoader )MapClassLoader ?DebugUniversalClassLoader -DebugClassLoader /ClassMapGenerator #ClassLoader 7ClassCollectionLoader ;ApcUniversalClassLoader  )ApcClassLoader %ResponseTest~ #RequestTest} #HistoryTest| !CookieTest{ 'CookieJarTestz !ClientTesty !TestClientx +SpecialResponsew Responsev Requestu Historyt CookieJars Cookier Clientq 7StaticVersionStrategyp 5EmptyVersionStrategyo )UrlPackageTestn +PathPackageTestm #PackageTestl %PackagesTestk !UrlPackagej #PathPackagei Packagesh Packageg )LogicExceptionf =InvalidArgumentExceptione 3RequestStackContextd #NullContextc /WebProfilerBundleb 5WebProfilerExtensiona TestCase` 3TemplateManagerTest!_ CWebDebugToolbarListenerTest^ =WebProfilerExtensionTest] /ConfigurationTest\ 9ProfilerControllerTest[ /ImportCommandTestZ /ExportCommandTestY +TemplateManagerX ;WebDebugToolbarListenerW 5WebProfilerExtensionV 'ConfigurationU -RouterControllerT 1ProfilerControllerS 3ExceptionControllerR 'ImportCommandQ 'ExportCommandP !TwigEngine!O CTwigDefaultEscapingStrategyN !TwigBundleM /RenderTokenParser!L CLegacyRenderTokenParserTestK 5FilesystemLoaderTestJ TestCaseI ;NoTemplatingEntryKernelH 7NoTemplatingEntryTestG ?LegacyAssetsExtensionTestF /TwigExtensionTestE /ConfigurationTestD 1TwigLoaderPassTest C APreviewErrorControllerTestB ;ExceptionControllerTestA !RenderNode@ -FilesystemLoader? +AssetsExtension> -ActionsExtension= ;EnvironmentConfigurator< 'TwigExtension; 'Configuration: )~TwigLoaderPass9 3~TwigEnvironmentPass8 '~ExtensionPass7 7~ExceptionListenerPass6 +}TimedTwigEngine5 9|PreviewErrorController4 3|ExceptionController3 #{LintCommand2 %{DebugCommand1 =zTemplateCacheCacheWarmer0 1yLogoutUrlExtension!/ CxLocalizedFormFailureHandler. +wFormLoginBundle- 1vFormLoginExtension, +uLoginController+ 3uLocalizedController* )tEntryPointStub) =sFirewallEntryPointBundle!( CrFirewallEntryPointExtension' /qUserLoginFormType& 3pCsrfFormLoginBundle% +oLoginController	$ nCar# mAclBundle" #lWebTestCase$! IlUserPasswordEncoderCommandTest  )lSwitchUserTest /lSetAclCommandTest$ IlSecurityRoutingIntegrationTest ?lLocalizedRoutesAsPathTest 'lFormLoginTest 9lFirewallEntryPointTest /lCsrfFormLoginTest" ElAuthenticationCommencingTest kAppKernel 3jAbstractFactoryTest 'iDummyProvider   F k^>1 wbO2eF0xX< }_D





~
h
H
/
							s	X	7	mT9$bJ2t]N=(|_I*ycJ:'p[C/pYE5zaF          N /CustomApplicationM +ApplicationTestL 'CommandTesterK /ApplicationTesterJ %SymfonyStyleI #OutputStyleH QuestionG 5ConfirmationQuestionF )ChoiceQuestionE %StreamOutputD OutputC !NullOutputB 'ConsoleOutputA )BufferedOutput@ 'ConsoleLogger? #StringInput> #InputOption= +InputDefinition< 'InputArgument; Input: !ArrayInput9 ArgvInput8 !TableStyle7 )TableSeparator6 #TableHelper5 TableCell4 Table3 7SymfonyQuestionHelper2 )QuestionHelper1 )ProgressHelper0 #ProgressBar/ 'ProcessHelper. -InputAwareHelper- HelperSet, Helper+ +FormatterHelper* %DialogHelper) -DescriptorHelper( 5DebugFormatterHelper' ?OutputFormatterStyleStack& 5OutputFormatterStyle% +OutputFormatter$ 7ConsoleTerminateEvent# 7ConsoleExceptionEvent" %ConsoleEvent! 3ConsoleCommandEvent  'XmlDescriptor )TextDescriptor 1MarkdownDescriptor )JsonDescriptor !Descriptor 9ApplicationDescription #ListCommand #HelpCommand Command Shell 'ConsoleEvents #Application XmlUtils -FileResourceTest 7DirectoryResourceTest %XmlUtilsTest )ProjectLoader1 !LoaderTest 1LoaderResolverTest )TestFileLoader )FileLoaderTest 5DelegatingLoaderTest
 5ExampleConfiguration!	 CFileLoaderLoadExceptionTest ;YamlReferenceDumperTest 9XmlReferenceDumperTest 9VariableNodeDefinition #NodeBuilder /BarNodeDefinition +TreeBuilderTest ?NumericNodeDefinitionTest 1SomeNodeDefinition  +NodeBuilderTest +ExprBuilderTest~ 9EnumNodeDefinitionTest} ;ArrayNodeDefinitionTest| )ScalarNodeTest{ ;PrototypedArrayNodeTestz /NormalizationTesty MergeTestx +IntegerNodeTestw 'FloatNodeTestv -FinalizationTestu %EnumNodeTestt +BooleanNodeTests 'ArrayNodeTestr +FileLocatorTestq +ConfigCacheTestp 9ConfigCacheFactoryTesto %FileResourcen /DirectoryResourcem )LoaderResolverl Loaderk !FileLoaderj -DelegatingLoaderi ;FileLoaderLoadException0h aFileLoaderImportCircularReferenceExceptiong /UnsetKeyExceptionf 5InvalidTypeException e AInvalidDefinitionException#d GInvalidConfigurationException!c CForbiddenOverwriteExceptionb Exceptiona 7DuplicateKeyException` 3YamlReferenceDumper_ 1XmlReferenceDumper^ 9VariableNodeDefinition] /ValidationBuilder\ #TreeBuilder[ 5ScalarNodeDefinitionZ 7NumericNodeDefinitionY 5NormalizationBuilderX )NodeDefinitionW #NodeBuilderV %MergeBuilderU 7IntegerNodeDefinitionT 3FloatNodeDefinitionS #ExprBuilderR 1EnumNodeDefinitionQ 7BooleanNodeDefinitionP 3ArrayNodeDefinitionO %VariableNodeN !ScalarNodeM +ReferenceDumperL 3PrototypedArrayNodeK ProcessorJ #NumericNodeI #IntegerNodeH FloatNodeG EnumNodeF #BooleanNodeE BaseNodeD ArrayNodeC #FileLocatorB 1ConfigCacheFactoryA #ConfigCache	@ Foo? 9Class_With_Underscores	> Foo= 9Class_With_Underscores	< Foo
; CBar	: Foo	9 Baz	8 Bar7 FooBar6 %WithComments	5 Foo   B pT4lW0hI.gN;"xY>)





q
S
>
(

 						y	b	K	0	 		~cH/x^F,lM9%nJ,u_C)	~`<eN)kB                              %\ KServiceUnavailableHttpException'[ OPreconditionRequiredHttpException%Z KPreconditionFailedHttpExceptionY 7NotFoundHttpException X ANotAcceptableHttpException#W GMethodNotAllowedHttpException!V CLengthRequiredHttpExceptionU 'HttpExceptionT /GoneHttpExceptionS 7ConflictHttpExceptionR ;BadRequestHttpExceptionQ ?AccessDeniedHttpExceptionP -FlattenExceptionO 3FatalErrorExceptionN =UndefinedMethodException M AUndefinedFunctionExceptionL 5OutOfMemoryExceptionK -FlattenExceptionJ 3FatalThrowableErrorI 3FatalErrorExceptionH )DummyExceptionG 7ContextErrorExceptionF 9ClassNotFoundExceptionE -ExceptionHandlerD 1ErrorHandlerCanaryC %ErrorHandlerB -DebugClassLoaderA Debug@ XPathExpr? !Translator> 5PseudoClassExtension= 'NodeExtension< 'HtmlExtension; /FunctionExtension: 5CombinationExtension 9 AAttributeMatchingExtension8 /AbstractExtension7 )TranslatorTest6 )HashParserTest5 7EmptyStringParserTest4 /ElementParserTest3 +ClassParserTest2 +TokenStreamTest1 !ReaderTest0 !ParserTest/ 7WhitespaceHandlerTest. /StringHandlerTest- /NumberHandlerTest, 7IdentifierHandlerTest+ +HashHandlerTest* 1CommentHandlerTest) 3AbstractHandlerTest( +SpecificityTest' -SelectorNodeTest& )PseudoNodeTest% -NegationNodeTest$ %HashNodeTest# -FunctionNodeTest" +ElementNodeTest! =CombinedSelectorNodeTest  'ClassNodeTest /AttributeNodeTest -AbstractNodeTest +CssSelectorTest /TokenizerPatterns /TokenizerEscaping Tokenizer !HashParser /EmptyStringParser 'ElementParser #ClassParser #TokenStream Token Reader Parser /WhitespaceHandler 'StringHandler 'NumberHandler /IdentifierHandler #HashHandler )CommentHandler #Specificity
 %SelectorNode	 !PseudoNode %NegationNode HashNode %FunctionNode #ElementNode 5CombinedSelectorNode ClassNode 'AttributeNode %AbstractNode  5SyntaxErrorException )ParseException~ 9InternalErrorException} =ExpressionErrorException| #CssSelector{ /CommandTesterTestz 7ApplicationTesterTesty -SymfonyStyleTestx -StreamOutputTestw !TestOutputv !OutputTestu )NullOutputTestt /ConsoleOutputTests /ConsoleLoggerTestr +StringInputTestq InputTestp +InputOptionTesto 3InputDefinitionTestn /InputArgumentTestm )ArrayInputTestl 'ArgvInputTestk TableTestj )TableStyleTesti 1QuestionHelperTesth +ProgressBarTestg /ProcessHelperTestf 7LegacyTableHelperTeste =LegacyProgressHelperTestd 9LegacyDialogHelperTestc 'HelperSetTestb 3FormatterHelperTesta TableCell` 3OutputFormatterTest_ =OutputFormatterStyleTest#^ GOutputFormatterStyleStackTest] #DummyOutput\ 1DescriptorCommand2[ 1DescriptorCommand1Z 9DescriptorApplication2Y 9DescriptorApplication1X /XmlDescriptorTestW 1TextDescriptorTestV +ObjectsProviderU 9MarkdownDescriptorTestT 1JsonDescriptorTestS 9AbstractDescriptorTestR +ListCommandTestQ +HelpCommandTestP #CommandTest%O KCustomDefaultCommandApplication   z b:y[=pVE.iVC4zD 




s
L
*
				u	K	#	p\<sY0r[G0lO4cAtDvdJ3hQ5           V 'XmlDumperTestU 'PhpDumperTestT 1GraphvizDumperTestS ' ReferenceTestR ' ParameterTestQ 5 LegacyDefinitionTest P A LegacyContainerBuilderTestO ) DefinitionTestN ; DefinitionDecoratorTestM ) CrossCheckTestL ; ProjectServiceContainerK ' ContainerTestJ - ProjectContainerI  FooClassH 5 ContainerBuilderTest(G QResolveReferencesToAliasesPassTest*F UResolveParameterPlaceHoldersPassTest&E MResolveInvalidReferencesPassTest(D QResolveDefinitionTemplatesPassTest,C YReplaceAliasByActualDefinitionPassTest%B KRemoveUnusedDefinitionsPassTest)A SMergeExtensionConfigurationPassTest0@ aLegacyResolveParameterPlaceHoldersPassTest? +IntegrationTest&> MInlineServiceDefinitionsPassTest= =DecoratorServicePassTest$< ICheckReferenceValidityPassTest6; mCheckExceptionOnInvalidReferenceBehaviorPassTest%: KCheckDefinitionValidityPassTest%9 KCheckCircularReferencesPassTest8 3ServiceClassMariaDb7 /ServiceClassMysql6 3ServiceClassDefault5 =AutoAliasServicePassTest&4 MAnalyzeServiceReferencesPassTest3 %ParameterBag2 1FrozenParameterBag1 )YamlFileLoader0 'XmlFileLoader/ 'PhpFileLoader. 'IniFileLoader- !FileLoader, 'ClosureLoader+ !NullDumper* ;RealServiceInstantiator) Extension( =ServiceNotFoundException'' OServiceCircularReferenceException%& KScopeWideningInjectionException%% KScopeCrossingInjectionException$ -RuntimeException # AParameterNotFoundException)" SParameterCircularReferenceException! 5OutOfBoundsException  )LogicException =InvalidArgumentException 9InactiveScopeException 9BadMethodCallException !YamlDumper XmlDumper PhpDumper )GraphvizDumper Dumper ?ServiceReferenceGraphNode ?ServiceReferenceGraphEdge 7ServiceReferenceGraph$ IResolveReferencesToAliasesPass& MResolveParameterPlaceHoldersPass" EResolveInvalidReferencesPass$ IResolveDefinitionTemplatesPass( QReplaceAliasByActualDefinitionPass %RepeatedPass! CRemoveUnusedDefinitionsPass =RemovePrivateAliasesPass# GRemoveAbstractDefinitionsPass !PassConfig%
 KMergeExtensionConfigurationPass	 -LoggingFormatter" EInlineServiceDefinitionsPass 5DecoratorServicePass Compiler  ACheckReferenceValidityPass2 eCheckExceptionOnInvalidReferenceBehaviorPass! CCheckDefinitionValidityPass! CCheckCircularReferencesPass 5AutoAliasServicePass"  EAnalyzeServiceReferencesPass Variable~ -SimpleXMLElement} Scope| Reference{ Parameter z AExpressionLanguageProvidery 1ExpressionLanguagex 3DefinitionDecoratorw !Definitionv -ContainerBuilderu )ContainerAwaret Containers Aliasr 'RequiredTwiceq NotPSR0p -PSR4CaseMismatcho !NotPSR0bisn +DeprecatedClassm %CaseMismatch*l UUndefinedMethodFatalErrorHandlerTest,k YUndefinedFunctionFatalErrorHandlerTest(j QClassNotFoundFatalErrorHandlerTesti 5FlattenExceptionTesth 5MockExceptionHandlerg 5ExceptionHandlerTestf -ErrorHandlerTeste #ClassLoaderd 5DebugClassLoaderTest&c MUndefinedMethodFatalErrorHandler(b QUndefinedFunctionFatalErrorHandler$a IClassNotFoundFatalErrorHandler'` OUnsupportedMediaTypeHttpException&_ MUnprocessableEntityHttpException^ ?UnauthorizedHttpException"] ETooManyRequestsHttpException   5 fN3{mRD+x]F+iG.T"






[
5
							q	W	G	#	}gR@2rX=&oX9$~aI1	pJ6(	]:cB(ycK5   k %&NamedAdapterj )&FailingAdapteri %&DummyAdapterh %RegexTestg %GlobTestf )%ExpressionTeste 5$NumberComparatorTestd 1$DateComparatorTestc )$ComparatorTestb #Shella #Command` -"SortableIterator_ ;"SizeRangeFilterIterator ^ A"RecursiveDirectoryIterator] 1"PathFilterIterator \ A"MultiplePcreFilterIterator[ )"FilterIteratorZ 9"FileTypeFilterIteratorY /"FilePathsIteratorX 9"FilenameFilterIteratorW ?"FilecontentFilterIterator$V I"ExcludeDirectoryFilterIteratorU ="DepthRangeFilterIteratorT ;"DateRangeFilterIteratorS 5"CustomFilterIteratorR #!SplFileInfo
Q !GlobP !FinderO  Regex
N  GlobM ! Expression"L EShellCommandFailureException#K GOperationNotPermitedExceptionJ ;AdapterFailureExceptionI 7AccessDeniedExceptionH -NumberComparatorG )DateComparatorF !ComparatorE !PhpAdapterD )GnuFindAdapterC )BsdFindAdapterB 3AbstractFindAdapterA +AbstractAdapter@ +LockHandlerTest? 1FilesystemTestCase> )FilesystemTest= 'ExceptionTest< #LockHandler; !Filesystem: #IOException9 7FileNotFoundException8 'UnaryNodeTest7 NodeTest6 %NameNodeTest	5 Obj4 +GetAttrNodeTest3 -FunctionNodeTest2 -ConstantNodeTest1 3ConditionalNodeTest0 )BinaryNodeTest/ 'ArrayNodeTest. /ArgumentsNodeTest- -AbstractNodeTest, %TestProvider+ !ParserTest* 5ParsedExpressionTest) LexerTest( )ExpressionTest' 9ExpressionLanguageTest& -ArrayParserCache% UnaryNode
$ Node# NameNode" #GetAttrNode! %FunctionNode  %ConstantNode +ConditionalNode !BinaryNode ArrayNode 'ArgumentsNode #TokenStream Token #SyntaxError  ASerializedParsedExpression Parser -ParsedExpression Lexer 1ExpressionLanguage 1ExpressionFunction !Expression Compiler /SubscriberService ?RegisterListenersPassTest +EventSubscriber" ETraceableEventDispatcherTest" EImmutableEventDispatcherTest -GenericEventTest
 EventTest	 3EventDispatcherTest /SubscriberService Service' OContainerAwareEventDispatcherTest. ]TestEventSubscriberWithMultipleListeners' OTestEventSubscriberWithPriorities 3TestEventSubscriber 1TestWithDispatcher /TestEventListener  'CallableClass! CAbstractEventDispatcherTest~ 7RegisterListenersPass} +WrappedListener| =TraceableEventDispatcher{ =ImmutableEventDispatcherz %GenericEventy +EventDispatcherx Event#w GContainerAwareEventDispatcherv 7TextareaFormFieldTestu 1InputFormFieldTestt /FormFieldTestCases 'FormFieldTestr /FileFormFieldTestq 3ChoiceFormFieldTestp LinkTesto FormTestn #CrawlerTestm /TextareaFormFieldl )InputFormFieldk FormFieldj 'FileFormFieldi +ChoiceFormField
h 
Linkg /
FormFieldRegistry
f 
Forme 
Crawlerd -	ParameterBagTestc 9	FrozenParameterBagTestb 1YamlFileLoaderTesta /XmlFileLoaderTest` /PhpFileLoaderTest_ /IniFileLoaderTest^ /ClosureLoaderTest] )NullDumperTest!\ CRealServiceInstantiatorTest[ ContainerZ FooClassY ;ProjectServiceContainerX 'ExtensionTestW )YamlDumperTest   ! wQ%|aE3rT,~hI9"r]A+





a
D
.
						`	?	&	pQ/tS?'jI%nJ|Q%qP4u_M:(q^H5!         s !6SearchTyper 6ResetTypeq %6RepeatedTypep 6RadioTypeo #6PercentTypen %6PasswordTypem !6NumberTypel 6MoneyTypek !6LocaleTypej %6LanguageTypei #6IntegerTypeh !6HiddenTypeg 6FormTypef 6FileTypee 6EmailTyped 6DateTypec %6DateTimeTypeb %6CurrencyTypea #6CountryType` )6CollectionType_ !6ChoiceType^ %6CheckboxType] !6ButtonType\ %6BirthdayType[ 6BaseTypeZ %5TrimListenerY 15ResizeFormListenerX ;5MergeCollectionListenerW 95FixUrlProtocolListenerV 75FixRadioInputListenerU =5FixCheckboxInputListener"T E4ValueToDuplicatesTransformer)S S4PercentToLocalizedStringTransformer(R Q4NumberToLocalizedStringTransformer'Q O4MoneyToLocalizedStringTransformer)P S4IntegerToLocalizedStringTransformer$O I4DateTimeToTimestampTransformer!N C4DateTimeToStringTransformer"M E4DateTimeToRfc3339Transformer*L U4DateTimeToLocalizedStringTransformer K A4DateTimeToArrayTransformerJ 54DataTransformerChainI =4ChoiceToValueTransformer%H K4ChoiceToBooleanArrayTransformer G A4ChoicesToValuesTransformer&F M4ChoicesToBooleanArrayTransformer E A4BooleanToStringTransformerD ;4BaseDateTimeTransformerC ;4ArrayToPartsTransformerB +3RadioListMapperA 13PropertyPathMapper@ 13CheckboxListMapper? '2CoreExtension> -1SimpleChoiceList= -1ObjectChoiceList< )1LazyChoiceList; !1ChoiceList: ;0UnexpectedTypeException#9 G0TransformationFailedException8 30StringCastException7 -0RuntimeException6 50OutOfBoundsException5 )0LogicException#4 G0InvalidConfigurationException3 =0InvalidArgumentException2 70ErrorMappingException1 90BadMethodCallException0 ?0AlreadySubmittedException/ 70AlreadyBoundException. !/FormEvents- !.ChoiceView, !-ChoiceView+ )-ChoiceListView* +-ChoiceGroupView) ;,PropertyAccessDecorator( =,DefaultChoiceListFactory' ;,CachingFactoryDecorator& ;+LegacyChoiceListAdapter% )+LazyChoiceList$ 1+ArrayKeyChoiceList# ++ArrayChoiceList" 3*SubmitButtonBuilder! %*SubmitButton  3*ReversedTransformer ;*ResolvedFormTypeFactory -*ResolvedFormType 1*PreloadedExtension 5*NativeRequestHandler *FormView 5*FormTypeGuesserChain *Forms %*FormRenderer %*FormRegistry 1*FormFactoryBuilder #*FormFactory !*FormEvents *FormEvent /*FormErrorIterator *FormError /*FormConfigBuilder #*FormBuilder
 *Form 3*CallbackTransformer '*ButtonBuilder *Button
 7*AbstractTypeExtension	 %*AbstractType 9*AbstractRendererEngine /*AbstractExtension #)CommandTest 5(SortableIteratorTest /(InnerSizeIterator! C(SizeRangeFilterIteratorTest$ I(RecursiveDirectoryIteratorTest 5(RealIteratorTestCase  9(PathFilterIteratorTest$ I(TestMultiplePcreFilterIterator$~ I(MultiplePcreFilterIteratorTest} +(MockSplFileInfo| 5(MockFileListIterator{ -(IteratorTestCasez (Iteratory 1(FilterIteratorTestx /(InnerTypeIterator w A(FileTypeFilterIteratorTestv 7(FilePathsIteratorTestu /(InnerNameIterator t A(FilenameFilterIteratorTest#s G(FilecontentFilterIteratorTest(r Q(ExcludeDirectoryFilterIteratorTest"q E(DepthRangeFilterIteratorTest!p C(DateRangeFilterIteratorTesto =(CustomFilterIteratorTestn 'GlobTestm !'FinderTestl 1&UnsupportedAdapter   x  tW6gH iCzV.t]>/




i
J
+
						`	;	!	u[AfF*fF.dA!a?%xLa>eE+    k -TBirthdayTypeTestj %TBaseTypeTesti -STrimListenerTesth 9SResizeFormListenerTest!g CSMergeCollectionListenerTest2f eSMergeCollectionListenerCustomArrayObjectTest&e MSMergeCollectionListenerArrayTest,d YSMergeCollectionListenerArrayObjectTest c ASFixUrlProtocolListenerTestb ?SFixRadioInputListenerTest&a MRValueToDuplicatesTransformerTest-` [RPercentToLocalizedStringTransformerTest,_ YRNumberToLocalizedStringTransformerTest+^ WRMoneyToLocalizedStringTransformerTest-] [RIntegerToLocalizedStringTransformerTest(\ QRDateTimeToTimestampTransformerTest%[ KRDateTimeToStringTransformerTest&Z MRDateTimeToRfc3339TransformerTest.Y ]RDateTimeToLocalizedStringTransformerTest$X IRDateTimeToArrayTransformerTestW -RDateTimeTestCaseV =RDataTransformerChainTest"U ERChoiceToValueTransformerTest$T IRChoicesToValuesTransformerTest$S IRBooleanToStringTransformerTest!R CRBaseDateTimeTransformerTest!Q CRArrayToPartsTransformerTestP 9QPropertyPathMapperTestO ?PLazyChoiceListInvalidImplN 1PLazyChoiceListImpl!M COSimpleNumericChoiceListTestL 5OSimpleChoiceListTestK 5OObjectChoiceListTest-J [OObjectChoiceListTest_EntityWithToStringI 1OLazyChoiceListTestH )OChoiceListTestG 9OAbstractChoiceListTest!F CNPropertyAccessDecoratorTest+E WNDefaultChoiceListFactoryTest_Castable"D ENDefaultChoiceListFactoryTest!C CNCachingFactoryDecoratorTest!B CMLegacyChoiceListAdapterTestA 1MLazyChoiceListTest@ 9MArrayKeyChoiceListTest? 3MArrayChoiceListTest> 9MAbstractChoiceListTest= )LSimpleFormTest < ALSimpleFormTest_Traversable; =LSimpleFormTest_Countable: 5LResolvedFormTypeTest9 =LNativeRequestHandlerTest8 -LFormRendererTest7 -LFormRegistryTest6 ;LFormPerformanceTestCase5 ;LFormIntegrationTestCase4 +LFormFactoryTest3 9LFormFactoryBuilderTest2 )LFormConfigTest1 +LFormBuilderTest0 -LCompoundFormTest!/ CLCompoundFormPerformanceTest. ;LCallbackTransformerTest- !LButtonTest, ;LAbstractTableLayoutTest + ALAbstractRequestHandlerTest* 1LAbstractLayoutTest) -LAbstractFormTest( /LConcreteExtension' 7LAbstractExtensionTest& 7LAbstractDivLayoutTest"% ELAbstractBootstrap3LayoutTest$ %KTypeTestCase# ;KFormPerformanceTestCase" ;KFormIntegrationTestCase! ;KDeprecationErrorHandler  !JValueGuess JTypeGuess JGuess 7IViolationPathIterator 'IViolationPath +IViolationMapper %IRelativePath #IMappingRule 5HValidatorTypeGuesser 1HValidatorExtension %GServerParams" EFSubmitTypeValidatorExtension$ IFRepeatedTypeValidatorExtension  AFFormTypeValidatorExtension 9FBaseValidatorExtension 1EValidationListener 'DFormValidator
 DForm =CTemplatingRendererEngine 3CTemplatingExtension% KBFormTypeHttpFoundationExtension" EAHttpFoundationRequestHandler
 ;AHttpFoundationExtension	 3@BindRequestListener" E?DependencyInjectionExtension  A>DataCollectorTypeExtension+ W=ResolvedTypeFactoryDataCollectorProxy$ I=ResolvedTypeDataCollectorProxy 7<DataCollectorListener /;FormDataExtractor /;FormDataCollector 9;DataCollectorExtension  7:FormTypeCsrfExtension 99CsrfValidationListener~ 38SessionCsrfProvider} 38DefaultCsrfProvider| ;8CsrfTokenManagerAdapter{ 38CsrfProviderAdapterz '7CsrfExtensiony 6UrlTypex %6TimezoneTypew 6TimeTypev 6TextTypeu %6TextareaTypet !6SubmitType    w^D*t]E+wP,fGcC




}
[
/
							e	G	*	{hL: xaE5oYG,pbL2}aO>}aF$xcF(mX>    t 9pJsonSerializableObjects -pJsonResponseTestr #pIpUtilsTestq 'pHeaderBagTestp #pFileBagTest"o EpExpressionRequestMatcherTestn !pCookieTestm 9pBinaryFileResponseTestl /pApacheRequestTestk -pAcceptHeaderTestj 5pAcceptHeaderItemTesti 3oSessionHandlerProxyh #oNativeProxyg 'oAbstractProxyf ;nPhpBridgeSessionStoragee 5nNativeSessionStoraged 9nMockFileSessionStoragec ;nMockArraySessionStorageb #nMetadataBaga =mWriteCheckSessionHandler` /mPdoSessionHandler_ 1mNullSessionHandler^ 5mNativeSessionHandler] =mNativeFileSessionHandler\ 7mMongoDbSessionHandler[ 9mMemcacheSessionHandlerZ ;mMemcachedSessionHandlerY ;mLegacyPdoSessionHandlerX lSessionW kFlashBagV 1kAutoExpireFlashBagU 9jNamespacedAttributeBagT %jAttributeBagS +iMimeTypeGuesserR =iMimeTypeExtensionGuesserQ ;iFileinfoMimeTypeGuesserP ?iFileBinaryMimeTypeGuesserO -iExtensionGuesserN %hUploadedFile
M hFileL +gUploadExceptionK ;gUnexpectedTypeExceptionJ 7gFileNotFoundExceptionI 'gFileExceptionH 7gAccessDeniedExceptionG -fStreamedResponseF fServerBagE /fResponseHeaderBagD fResponseC %fRequestStackB )fRequestMatcherA fRequest@ -fRedirectResponse? %fParameterBag> %fJsonResponse= fIpUtils< fHeaderBag; fFileBag: =fExpressionRequestMatcher9 fCookie8 1fBinaryFileResponse7 'fApacheRequest6 -fAcceptHeaderItem5 %fAcceptHeader4 =eVirtualFormAwareIterator3 %eServerParams2 9eOrderedHashMapIterator1 )eOrderedHashMap0 =eInheritDataAwareIterator/ eFormUtil. 1dOrderedHashMapTest- cGuessTest, cTestGuess+ 'bTestExtension* 3bFooTypeBazExtension) 3bFooTypeBarExtension( bFooType"' EbFooSubTypeWithParentInstance& !bFooSubType% 3bFixedFilterListener$ 5bFixedDataTransformer# 7bCustomOptionsResolver" /bCustomArrayObject! !bAuthorType  bAuthor 1bAlternatingRowType )bAbstractAuthor /aViolationPathTest 3aViolationMapperTest( Q`ValidatorTypeGuesserTest_TestClass =`ValidatorTypeGuesserTest 9`ValidatorExtensionTest -_ServerParamsTest %^TypeTestCase& M^SubmitTypeValidatorExtensionTest$ I^FormTypeValidatorExtensionTest  A^BaseValidatorExtensionTest 9]ValidationListenerTest& M\LegacyFormValidatorLegacyApiTest /\FormValidatorTest" E\FormValidatorPerformanceTest& M[HttpFoundationRequestHandlerTest# GZLegacyBindRequestListenerTest$ IYDataCollectorTypeExtensionTest 7XFormDataExtractorTest/ _XFormDataExtractorTest_SimpleValueExporter
 7XFormDataCollectorTest 	 AXDataCollectorExtensionTest ?WFormTypeCsrfExtensionTest) SWFormTypeCsrfExtensionTest_ChildType  AVCsrfValidationListenerTest# GULegacySessionCsrfProviderTest# GULegacyDefaultCsrfProviderTest #TUrlTypeTest %TTypeTestCase -TTimezoneTypeTest  %TTimeTypeTest )TSubmitTypeTest~ -TRepeatedTypeTest} -TPasswordTypeTest| )TNumberTypeTest{ 'TMoneyTypeTestz )TLocaleTypeTesty -TLanguageTypeTestx +TIntegerTypeTestw %TFormTypeTest%v KTFormTest_AuthorWithoutRefSetteru %TFileTypeTestt %TDateTypeTests -TDateTimeTypeTestr -TCurrencyTypeTestq +TCountryTypeTestp 1TCollectionTypeTesto )TChoiceTypeTestn ?TChoiceTypePerformanceTestm -TCheckboxTypeTestl )TButtonTypeTest    }`L-pZ@c@iD y`?/







e
P
3
						g	J	-	nO0qR5|Y:$pX;" dK)	i\M9vZI7s_G3     } !KernelTest| !Controller{ )HttpKernelTestz !ClientTesty +TestCacheWarmerx +CacheWarmerTestw =CacheWarmerAggregateTestv 7ChainCacheClearerTestu !BundleTestt 7SqliteProfilerStorages 5RedisProfilerStorager Profilerq Profilep 1PdoProfilerStorageo 5MysqlProfilerStoragen 9MongoDbProfilerStoragem ;MemcacheProfilerStoragel =MemcachedProfilerStoragek 3FileProfilerStorage!j CBaseMemcacheProfilerStoragei !NullLoggerh Store	g Ssif 7ResponseCacheStrategye HttpCached =EsiResponseCacheStrategy	c Esib 3SsiFragmentRenderera =RoutableFragmentRenderer` 9InlineFragmentRenderer_ =HIncludeFragmentRenderer^ +FragmentHandler] 3EsiFragmentRenderer'\ OAbstractSurrogateFragmentRenderer[ 1TranslatorListenerZ 3TestSessionListenerY /SurrogateListenerX =StreamedResponseListenerW +SessionListenerV 3SaveSessionListenerU )RouterListenerT -ResponseListenerS -ProfilerListenerR )LocaleListenerQ -FragmentListenerP /ExceptionListenerO #EsiListenerN 5ErrorsLoggerListenerM %DumpListenerL 7DebugHandlersListenerK ?AddRequestFormatsListenerJ /PostResponseEventI #KernelEvent"H EGetResponseForExceptionEvent)G SGetResponseForControllerResultEventF -GetResponseEventE 1FinishRequestEventD 3FilterResponseEventC 7FilterControllerEventB 7RegisterListenersPass%A KMergeExtensionConfigurationPass @ ALazyLoadingFragmentHandler? 5FragmentRendererPass> Extension= =ContainerAwareHttpKernel< 7ConfigurableExtension; 7AddClassesToCachePass: =TraceableEventDispatcher9 -ExceptionHandler8 %ErrorHandler7 'ValueExporter6 /TimeDataCollector5 3RouterDataCollector4 5RequestDataCollector3 3MemoryDataCollector2 3LoggerDataCollector1 9ExceptionDataCollector0 1EventDataCollector/ /DumpDataCollector. 'DataCollector- 3ConfigDataCollector!, C~TraceableControllerResolver+ 1~ControllerResolver* 3~ControllerReference) #}FileLocator( 7}EnvParametersResource' |UriSigner& %|KernelEvents% |Kernel$ !|HttpKernel# |Client" 5{CacheWarmerAggregate! #{CacheWarmer  /zChainCacheClearer yBundle ;xSessionHandlerProxyTest +xNativeProxyTest /xAbstractProxyTest* UxConcreteSessionHandlerInterfaceProxy 'xConcreteProxy! CwPhpBridgeSessionStorageTest =wNativeSessionStorageTest  AwMockFileSessionStorageTest! CwMockArraySessionStorageTest +wMetadataBagTest" EvWriteCheckSessionHandlerTest vMockPdo 7vPdoSessionHandlerTest 9vNullSessionHandlerTest =vNativeSessionHandlerTest" EvNativeFileSessionHandlerTest ?vMongoDbSessionHandlerTest  AvMemcacheSessionHandlerTest! CvMemcachedSessionHandlerTest! CvLegacyPdoSessionHandlerTest
 #uSessionTest	 %tFlashBagTest 9tAutoExpireFlashBagTest  AsNamespacedAttributeBagTest -sAttributeBagTest %rMimeTypeTest -qUploadedFileTest qFileTest qFakeFile 5pStreamedResponseTest  'pServerBagTest -pResponseTestCase~ -pStringableObject} %pResponseTest| 7pResponseHeaderBagTest{ !pNewRequestz 3pRequestContentProxyy #pRequestTestx -pRequestStackTestw 1pRequestMatcherTestv 5pRedirectResponseTestu -pParameterBagTest    eD-gL& pI&vX< eC$ 




t
^
?
(
					o	b	<	/		kJ$oM*nT;!x[>!jS5!~aD'pW<pN-   5OutOfBoundsException ;NotImplementedException~ =MissingResourceException#} GMethodNotImplementedException0| aMethodArgumentValueNotImplementedException+{ WMethodArgumentNotImplementedExceptionz =InvalidArgumentExceptiony 9BadMethodCallExceptionx /IntlDateFormatterw +YearTransformerv #Transformeru 3TimeZoneTransformert /SecondTransformers 1QuarterTransformerr -MonthTransformerq /MinuteTransformerp +HourTransformero 3Hour2401Transformern 3Hour2400Transformerm 3Hour1201Transformerl 3Hour1200Transformerk +FullTransformerj )DayTransformeri 5DayOfYearTransformerh 5DayOfWeekTransformerg +AmPmTransformerf !RingBuffere 5RecursiveArrayAccessd 'LocaleScanner#c GArrayAccessibleResourceBundleb 1ScriptDataProvidera 1RegionDataProvider` 1LocaleDataProvider_ 5LanguageDataProvider^ 5CurrencyDataProvider] 3ScriptDataGenerator\ 3RegionDataGenerator[ 3LocaleDataGeneratorZ 7LanguageDataGeneratorY +GeneratorConfigX 7CurrencyDataGeneratorW 7AbstractDataGeneratorV -TextBundleWriterU +PhpBundleWriterT -JsonBundleWriterS +PhpBundleReaderR -JsonBundleReaderQ -IntlBundleReaderP /BundleEntryReaderO 5BufferedBundleReaderN 'GenrbCompilerM CollatorL RedisMockK %MemcacheMockJ 'MemcachedMockI ?SqliteProfilerStorageTestH =RedisProfilerStorageTestG %ProfilerTest F AMongoDbProfilerStorageTest-E [MongoDbProfilerStorageTestDataCollector!D CDummyMongoDbProfilerStorage!C CMemcacheProfilerStorageTest"B EMemcachedProfilerStorageTestA ;FileProfilerStorageTest!@ CAbstractProfilerStorageTest? 9TestMultipleHttpKernel> )TestHttpKernel= StoreTest< SsiTest; /HttpCacheTestCase: 'HttpCacheTest9 EsiTest	8 Foo"7 ERoutableFragmentRendererTest	6 Bar 5 AInlineFragmentRendererTest"4 EHIncludeFragmentRendererTest3 3FragmentHandlerTest2 ;EsiFragmentRendererTest1 3TestEventDispatcher0 !TestClient/ 'KernelForTest. 7KernelForOverrideName- %FooBarBundle, 9ExtensionPresentBundle+ ?ExtensionPresentExtension* !FooCommand) !BarCommand( ;ExtensionNotValidBundle ' AExtensionNotValidExtension& 7ExtensionLoadedBundle% =ExtensionLoadedExtension$ 7ExtensionAbsentBundle# 9TranslatorListenerTest" ;TestSessionListenerTest! 7SurrogateListenerTest  1RouterListenerTest 5ResponseListenerTest 5ProfilerListenerTest 1LocaleListenerTest 5FragmentListenerTest# GTestKernelThatThrowsException !TestKernel !TestLogger 7ExceptionListenerTest !MockDumper !MockCloner -DumpListenerTest ?DebugHandlersListenerTest# GAddRequestFormatsListenerTest) SMergeExtensionConfigurationPassTest$ ILazyLoadingFragmentHandlerTest +RendererService =FragmentRendererPassTest" EContainerAwareHttpKernelTest" ETraceableEventDispatcherTest /ValueExporterTest 7TimeDataCollectorTest
 =RequestDataCollectorTest	 ;MemoryDataCollectorTest ;LoggerDataCollectorTest  AExceptionDataCollectorTest 7DumpDataCollectorTest 'KernelForTest ;ConfigDataCollectorTest 9ControllerResolverTest +FileLocatorTest ?EnvParametersResourceTest  'UriSignerTest )TestHttpKernel~ Logger    yiY@({]?"}S+kG#jQ8




}
h
T
<
)

			w	V	F	-	iL3|fT5!|[<}[C#s]F3 x\8{Y3iH2  3PropertyPathBuilder %PropertyPath ;PropertyAccessorBuilder -PropertyAccessor )PropertyAccess ;UnexpectedTypeException  -RuntimeException 5OutOfBoundsException~ ;NoSuchPropertyException} 5NoSuchIndexException"| EInvalidPropertyPathException{ =InvalidArgumentExceptionz +AccessExceptiony /SimpleProcessTest x ASigchildEnabledProcessTest!w CSigchildDisabledProcessTestv -ProcessUtilsTest"u EProcessInSigchildEnvironment t AProcessFailedExceptionTests 1ProcessBuilderTestr )PhpProcessTestq ;PhpExecutableFinderTestp 5ExecutableFinderTesto -NonStringifiablen 'Stringifiablem 3AbstractProcessTestl %WindowsPipesk UnixPipesj 'AbstractPipesi %ProcessUtilsh )ProcessBuilderg Processf !PhpProcesse 3PhpExecutableFinderd -ExecutableFinderc -RuntimeExceptionb =ProcessTimedOutExceptiona 9ProcessFailedException` )LogicException_ =InvalidArgumentException^ =OptionsResolver2Dot6Test] /LegacyOptionsTest\ ?LegacyOptionsResolverTest[ +OptionsResolverZ ?UndefinedOptionsExceptionY ?OptionDefinitionExceptionX 7NoSuchOptionExceptionW ;MissingOptionsExceptionV ;InvalidOptionsExceptionU =InvalidArgumentExceptionT +AccessExceptionS )StubLocaleTestR !LocaleTestQ 3StubNumberFormatterP !StubLocaleO 7StubIntlDateFormatterN StubIntlM %StubCollatorL +YearTransformerK #TransformerJ 3TimeZoneTransformerI /SecondTransformerH 1QuarterTransformerG -MonthTransformerF /MinuteTransformerE +HourTransformerD 3Hour2401TransformerC 3Hour2400TransformerB 3Hour1201TransformerA 3Hour1200Transformer@ +FullTransformer? )DayTransformer> 5DayOfYearTransformer= 5DayOfWeekTransformer< +AmPmTransformer; Locale: ;NotImplementedException#9 GMethodNotImplementedException08 aMethodArgumentValueNotImplementedException+7 WMethodArgumentNotImplementedException6 Version5 'SvnRepository4 SvnCommit3 )IntlTestHelper2 !IcuVersion1 #VersionTest0 )IcuVersionTest/ 3NumberFormatterTest. 3NumberFormatterTest!- CAbstractNumberFormatterTest, !LocaleTest+ !LocaleTest* 1AbstractLocaleTest) +IntlGlobalsTest( +IntlGlobalsTest' ;AbstractIntlGlobalsTest& 7IntlDateFormatterTest% 7IntlDateFormatterTest#$ GAbstractIntlDateFormatterTest# )RingBufferTest" /LocaleScannerTest ! AJsonScriptDataProviderTest   AJsonRegionDataProviderTest  AJsonLocaleDataProviderTest" EJsonLanguageDataProviderTest" EJsonCurrencyDataProviderTest$ IAbstractScriptDataProviderTest$ IAbstractRegionDataProviderTest$ IAbstractLocaleDataProviderTest& MAbstractLanguageDataProviderTest =AbstractDataProviderTest& MAbstractCurrencyDataProviderTest 5TextBundleWriterTest 3PhpBundleWriterTest 5JsonBundleWriterTest 3PhpBundleReaderTest 5JsonBundleReaderTest 5IntlBundleReaderTest 7BundleEntryReaderTest %CollatorTest %CollatorTest 5AbstractCollatorTest %RegionBundle %LocaleBundle
 )LanguageBundle	 )CurrencyBundle +NumberFormatter Locale Locale
 Intl #IntlGlobals ;UnexpectedTypeException -RuntimeException% KResourceBundleNotFoundException   ( {_D)zU)KeD*b?





e
B
$
						p	\	?	%	uX=)gM'jN0^F1rI%}TAoM4t^B(                                 -TestDomainObject 1ObjectIdentityTest %DomainObject) SObjectIdentityRetrievalStrategyTest )FieldEntryTest EntryTest  5DoctrineAclCacheTest +AuditLoggerTest~ AclTest} 9MutableAclProviderTest| +AclProviderTest{ =AclProviderBenchmarkTestz #MaskBuildery 1BasicPermissionMapx 3AbstractMaskBuilderw 7SidNotLoadedExceptionv =NotAllAclsFoundExceptionu 3NoAceFoundException"t EInvalidDomainObjectExceptions Exception%r KConcurrentModificationExceptionq 5AclNotFoundExceptionp ?AclAlreadyExistsExceptiono 5UserSecurityIdentity'n OSecurityIdentityRetrievalStrategym 5RoleSecurityIdentity l APermissionGrantingStrategy%k KObjectIdentityRetrievalStrategyj )ObjectIdentityi !FieldEntryh Entryg -DoctrineAclCachef #AuditLoggere 1AclCollectionCache	d Aclc Schemab 1MutableAclProvidera #AclProvider` )UrlMatcherTest_ ;TraceableUrlMatcherTest ^ ARedirectableUrlMatcherTest ] ALegacyApacheUrlMatcherTest\ 5PhpMatcherDumperTest#[ GLegacyApacheMatcherDumperTest Z ADumperPrefixCollectionTestY 5DumperCollectionTestX 1YamlFileLoaderTestW /XmlFileLoaderTestV /PhpFileLoaderTestU /ClosureLoaderTestT =AnnotationFileLoaderTest#S GAnnotationDirectoryLoaderTestR ?AnnotationClassLoaderTest"Q EAbstractAnnotationLoaderTestP -UrlGeneratorTestO 9PhpGeneratorDumperTestN 'VariadicClassM 9RedirectableUrlMatcherL 3CustomXmlFileLoaderK FooClassJ BarClassI 'AbstractClassH RouteTestG !RouterTestF /RouteCompilerTestE 3RouteCollectionTestD 1RequestContextTestC /CompiledRouteTestB RouteTestA -PhpMatcherDumper@ 'MatcherDumper? #DumperRoute> 9DumperPrefixCollection= -DumperCollection< 3ApacheMatcherDumper; !UrlMatcher: 3TraceableUrlMatcher9 9RedirectableUrlMatcher8 -ApacheUrlMatcher7 )YamlFileLoader6 'XmlFileLoader5 'PhpFileLoader4 'ClosureLoader3 5AnnotationFileLoader2 ?AnnotationDirectoryLoader1 7AnnotationClassLoader0 %UrlGenerator/ 1PhpGeneratorDumper. +GeneratorDumper- 9RouteNotFoundException, ?ResourceNotFoundException)+ SMissingMandatoryParametersException* ?MethodNotAllowedException) ?InvalidParameterException( Router' 'RouteCompiler& +RouteCollection% Route$ )RequestContext# 'CompiledRoute" Route! )StringUtilTest  -PropertyPathTest ;PropertyPathBuilderTest0 aPropertyAccessorTraversableArrayObjectTest 5PropertyAccessorTest3 gPropertyAccessorNonTraversableArrayObjectTest$ IPropertyAccessorCollectionTest1 cPropertyAccessorCollectionTest_CarStructure1 cPropertyAccessorCollectionTest_CompositeCar9 sPropertyAccessorCollectionTest_CarNoAdderAndRemover3 gPropertyAccessorCollectionTest_CarOnlyRemover1 cPropertyAccessorCollectionTest_CarOnlyAdder( QPropertyAccessorCollectionTest_Car! CPropertyAccessorBuilderTest ?PropertyAccessorArrayTest% KPropertyAccessorArrayObjectTest% KPropertyAccessorArrayAccessTest 9TraversableArrayObject -Ticket5775Object /TestClassSetValue /TestClassMagicGet 1TestClassMagicCall 3TestClassIsWritable
 TestClass	 ?NonTraversableArrayObject !StringUtil 5PropertyPathIterator   |  oM3sJ'dK4fG)nQ2




y
U
6
				x	W	9	nU6oaJ2V( |`= ~^A!
hR(tYG+y`L#  ? UserPasswordValidatorTest% K LegacyUserPasswordValidatorTest  ! TestObject + StringUtilsTest~ - SecureRandomTest} ! TestObject| ) ClassUtilsTest{  UserTestz + UserCheckerTesty = InMemoryUserProviderTestx 7 ChainUserProviderTestw 1 SwitchUserRoleTestv  RoleTestu / RoleHierarchyTestt ? LegacySecurityContextTest#s G UsernameNotFoundExceptionTestr ; UserPasswordEncoderTest"q E PlaintextPasswordEncoderTestp ? Pbkdf2PasswordEncoderTest&o M MessageDigestPasswordEncoderTestn % EncAwareUserm ' SomeChildUserl  SomeUserk 1 EncoderFactoryTestj ? BCryptPasswordEncoderTesti ; BasePasswordEncoderTesth + PasswordEncoderg '  RoleVoterTestf 9  RoleHierarchyVoterTeste 3  ExpressionVoterTestd 9  AuthenticatedVoterTestc 9ExpressionLanguageTestb =AuthorizationCheckerTesta ?AccessDecisionManagerTest` -TokenStorageTest_ ?UsernamePasswordTokenTest^ 3RememberMeTokenTest] ?PreAuthenticatedTokenTest\ 1AnonymousTokenTest[ /AbstractTokenTestZ 'ConcreteTokenY TestUserX 3PersistentTokenTestW ?InMemoryTokenProviderTest$V IUserAuthenticationProviderTest*U URememberMeAuthenticationProviderTest0T aPreAuthenticatedAuthenticationProviderTest#S GDaoAuthenticationProviderTest)R SAnonymousAuthenticationProviderTest%Q KAuthenticationTrustResolverTest'P OAuthenticationProviderManagerTestO )SwitchUserRoleN 'RoleHierarchy
M RoleL ?UsernameNotFoundExceptionK =UnsupportedUserExceptionJ 9TokenNotFoundException!I CSessionUnavailableExceptionH -RuntimeExceptionG ?ProviderNotFoundExceptionF 7NonceExpiredExceptionE +LogoutExceptionD +LockedExceptionC ?InvalidCsrfTokenExceptionB =InvalidArgumentException)A SInsufficientAuthenticationException@ /DisabledException!? CCredentialsExpiredException> 5CookieTheftException= ;BadCredentialsException$< IAuthenticationServiceException; ;AuthenticationException0: aAuthenticationCredentialsNotFoundException9 9AccountStatusException8 ;AccountExpiredException7 7AccessDeniedException 6 AAuthenticationFailureEvent5 3AuthenticationEvent4 3UserPasswordEncoder3 =PlaintextPasswordEncoder2 7Pbkdf2PasswordEncoder"1 EMessageDigestPasswordEncoder0 )EncoderFactory/ 7BCryptPasswordEncoder. 3BasePasswordEncoder- RoleVoter, 1RoleHierarchyVoter+ +ExpressionVoter* 1AuthenticatedVoter) 'AbstractVoter ( AExpressionLanguageProvider' 1ExpressionLanguage& 5AuthorizationChecker% 7AccessDecisionManager$ +SecurityContext# Security" 5AuthenticationEvents! %TokenStorage  7UsernamePasswordToken +RememberMeToken 7PreAuthenticatedToken )AnonymousToken 'AbstractToken +PersistentToken 7InMemoryTokenProvider  AUserAuthenticationProvider" ESimpleAuthenticationProvider& MRememberMeAuthenticationProvider, YPreAuthenticatedAuthenticationProvider ?DaoAuthenticationProvider% KAnonymousAuthenticationProvider! CAuthenticationTrustResolver# GAuthenticationProviderManager FieldVote AclVoter %AclVoterTest +MaskBuilderTest 9BasicPermissionMapTest -TestDomainObject =UserSecurityIdentityTest
 )CustomUserImpl+	 WSecurityIdentityRetrievalStrategyTest =RoleSecurityIdentityTest$ IPermissionGrantingStrategyTest   w  zeO0{Z;yM!{S-|d;





w
[
1
				j	E	 	xR+tCiM jJ~U3dI3~jU5!mO4          y 5 (ClassMetadataFactoryx ' 'ClassMetadataw / 'AttributeMetadatav 5 &UnsupportedExceptionu = &UnexpectedValueExceptiont - &RuntimeExceptions - &MappingExceptionr ) &LogicExceptionq = &InvalidArgumentException p A &CircularReferenceExceptiono ! %XmlEncodern 9 %SerializerAwareEncoderm # %JsonEncoderl ! %JsonEncodek ! %JsonDecodej % %ChainEncoderi % %ChainDecoderh  $Groups(g Q #LegacySecurityContextInterfaceTestf = "UnsupportedObjectFixturee ' "ObjectFixtured % "VoterFixturec / "AbstractVoterTest'b O !SessionAuthenticationStrategyTest&a M  TokenBasedRememberMeServicesTest` 5  ResponseListenerTest0_ a  PersistentTokenBasedRememberMeServicesTest$^ I  AbstractRememberMeServicesTest] = SessionLogoutHandlerTest%\ K DefaultLogoutSuccessHandlerTest%[ K CookieClearingLogoutHandlerTest$Z I X509AuthenticationListenerTestY 9 SwitchUserListenerTest)X S SimplePreAuthenticationListenerTest*W U RemoteUserAuthenticationListenerTestV 9 RememberMeListenerTestU 1 LogoutListenerTestT 7 ExceptionListenerTestS ) DigestDataTestR 3 ContextListenerTestQ 3 ChannelListenerTest%P K BasicAuthenticationListenerTest)O S AnonymousAuthenticationListenerTestN 1 AccessListenerTest*M U AbstractPreAuthenticatedListenerTest'L O RetryAuthenticationEntryPointTest&K M FormAuthenticationEntryPointTest(J Q DigestAuthenticationEntryPointTest'I O BasicAuthenticationEntryPointTest-H [ DefaultAuthenticationSuccessHandlerTest-G [ DefaultAuthenticationFailureHandlerTestF ' HttpUtilsTestE % FirewallTestD + FirewallMapTest%C K SimpleAuthenticationHandlerTestB ' AccessMapTest#A G SessionAuthenticationStrategy"@ E TokenBasedRememberMeServices? - ResponseListener,> Y PersistentTokenBasedRememberMeServices = A AbstractRememberMeServices< 5 SessionLogoutHandler; 1 LogoutUrlGenerator!: C DefaultLogoutSuccessHandler!9 C CookieClearingLogoutHandler 8 A X509AuthenticationListener07 a UsernamePasswordFormAuthenticationListener6 1 SwitchUserListener%5 K SimplePreAuthenticationListener&4 M SimpleFormAuthenticationListener&3 M RemoteUserAuthenticationListener2 1 RememberMeListener1 ) LogoutListener0 / ExceptionListener/ ! DigestData". E DigestAuthenticationListener- + ContextListener, + ChannelListener!+ C BasicAuthenticationListener%* K AnonymousAuthenticationListener) ) AccessListener&( M AbstractPreAuthenticatedListener$' I AbstractAuthenticationListener& + SwitchUserEvent% 7 InteractiveLoginEvent#$ G RetryAuthenticationEntryPoint"# E FormAuthenticationEntryPoint$" I DigestAuthenticationEntryPoint#! G BasicAuthenticationEntryPoint!  C SimpleAuthenticationHandler) S DefaultAuthenticationSuccessHandler) S DefaultAuthenticationFailureHandler( Q CustomAuthenticationSuccessHandler( Q CustomAuthenticationFailureHandler 3 AuthenticationUtils ) SecurityEvents  HttpUtils # FirewallMap  Firewall  AccessMap 3 SessionTokenStorage ? NativeSessionTokenStorage 7 UriSafeTokenGenerator ; SessionTokenStorageTest# G NativeSessionTokenStorageTest ? UriSafeTokenGeneratorTest 5 CsrfTokenManagerTest 9 TokenNotFoundException - CsrfTokenManager  CsrfToken 7 UserPasswordValidator
 % UserPassword	 # 
StringUtils % 
SecureRandom ! 
ClassUtils # 	UserChecker
  	User 5 	InMemoryUserProvider / 	ChainUserProvider   / cG-s[;t[F/`B'hJ!



y
[
F
&
				k	I	)	{_H7"zjU@+pQ1rS1mXC(mR8{eN8"	u`I/                - HIcuDatFileLoader ' HCsvFileLoader # HArrayLoader ) GChainExtractor 7 GAbstractFileExtractor  ? FNotFoundResourceException = FInvalidResourceException~ ) EYamlFileDumper} + EXliffFileDumper| % EQtFileDumper{ % EPoFileDumperz ' EPhpFileDumpery % EMoFileDumperx ) EJsonFileDumperw ' EIniFileDumperv - EIcuResFileDumperu ! EFileDumpert ' ECsvFileDumpers ! DTranslatorr 1 DPluralizationRulesq + DMessageSelectorp - DMessageCatalogueo / DLoggingTranslatorn  DIntervalm 1 DIdentityTranslatorl ; DDataCollectorTranslatork = CTranslationDataCollectorj ) BMergeOperationi ' BDiffOperationh / BAbstractOperationg / AStringStorageTestf # ATestStoragee # AStorageTestd + AFileStorageTestc 9 @ProjectTemplateLoader4b ! @LoaderTesta 9 @ProjectTemplateLoader2` 5 @FilesystemLoaderTest_ 9 @ProjectTemplateLoader1^ + @ChainLoaderTest] = @ProjectTemplateLoaderVar\ 7 @ProjectTemplateLoader[ + @CacheLoaderTestZ + ?SlotsHelperTest Y A ?LegacyCoreAssetsHelperTestX 9 ?LegacyAssetsHelperTestW 7 ?ProjectTemplateHelperV ! ?HelperTestU % >SimpleHelperT 9 =TemplateNameParserTestS 7 =ProjectTemplateLoaderR 7 =ProjectTemplateEngineQ ' =PhpEngineTestP 5 =DelegatingEngineTestO ' <StringStorageN  <StorageM # <FileStorageL  ;LoaderK - ;FilesystemLoaderJ # ;ChainLoaderI # ;CacheLoaderH # :SlotsHelperG  :HelperF - :CoreAssetsHelperE % :AssetsHelperD / 9TemplateReferenceC 1 9TemplateNameParserB  9PhpEngineA - 9DelegatingEngine@ ! 8UrlPackage? # 8PathPackage>  8Package= ' 7StopwatchTest< 1 7StopwatchEventTest; + 6StopwatchPeriod: ) 6StopwatchEvent9  6Stopwatch8  6Section7  5Model6 ) 5SerializerTest5 ) 4TestNormalizer4 - 4TestDenormalizer3 9 4PropertyCamelizedDummy2 = 4PropertyConstructorDummy1 ' 4PropertyDummy0 9 4PropertyNormalizerTest0/ a 4ObjectConstructorArgsWithDefaultValueDummy(. Q 4ObjectConstructorOptionalArgsDummy - A 4ObjectSerializerNormalizer, 9 4ObjectConstructorDummy+ # 4ObjectDummy* 5 4ObjectNormalizerTest") E 4ObjectWithPrivateSetterDummy2( e 4ObjectConstructorArgsWithPrivateMutatorDummy' / 4GetCamelizedDummy-& [ 4GetConstructorArgsWithDefaultValueDummy%% K 4GetConstructorOptionalArgsDummy$ 5 4SerializerNormalizer# 3 4GetConstructorDummy" # 4GetSetDummy ! A 4GetSetMethodNormalizerTest  5 4CustomNormalizerTest+ W 3CamelCaseToSnakeCaseNameConverterTest 1 2YamlFileLoaderTest / 2XmlFileLoaderTest 5 2AnnotationLoaderTest = 1ClassMetadataFactoryTest = 0TestClassMetadataFactory / 0ClassMetadataTest 7 0AttributeMetadataTest" E /VariadicConstructorArgsDummy - /TraversableDummy  /Sibling ' /SiblingHolder # /ScalarDummy + /PropertySibling 7 /PropertySiblingHolder$ I /PropertyCircularReferenceDummy" E /NormalizableTraversableDummy - /GroupDummyParent ! /GroupDummy  /Dummy 3 /DenormalizableDummy
 9 /CircularReferenceDummy	 ) .XmlEncoderTest + .JsonEncoderTest ! -GroupsTest ! ,Serializer ? +SerializerAwareNormalizer 1 +PropertyNormalizer - +ObjectNormalizer 9 +GetSetMethodNormalizer - +CustomNormalizer  1 +AbstractNormalizer' O *CamelCaseToSnakeCaseNameConverter~ ) )YamlFileLoader} ' )XmlFileLoader| # )LoaderChain{ ! )FileLoaderz - )AnnotationLoader   T t^E-lV7{`H,nQ5rW=#




z
]
<
!
						j	]	G	8	 	hUF5u]L2qL.ymXJ3"dT;)sXD'}eV>,zcT            %  PValid$ ' PUuidValidator
#  PUuid" % PUrlValidator	!  PUrl  ' PTypeValidator
  PType ' PTrueValidator
  PTrue  PTraverse ' PTimeValidator
  PTime  PRequired ) PRegexValidator  PRegex ) PRangeValidator  PRange  POptional ' PNullValidator
  PNull - PNotNullValidator  PNotNull ; PNotIdenticalToValidator ) PNotIdenticalTo 3 PNotEqualToValidator ! PNotEqualTo / PNotBlankValidator
  PNotBlank	 ' PLuhnValidator
  PLuhn + PLocaleValidator  PLocale / PLessThanValidator = PLessThanOrEqualValidator + PLessThanOrEqual  PLessThan + PLengthValidator   PLength / PLanguageValidator~  PLanguage} + PIsTrueValidator|  PIsTrue{ ' PIssnValidator
z  PIssny + PIsNullValidatorx  PIsNullw - PIsFalseValidatorv  PIsFalseu ' PIsbnValidator
t  PIsbns # PIpValidatorr  PIpq ) PImageValidatorp  PImageo 5 PIdenticalToValidatorn # PIdenticalTom ' PIbanValidator
l  PIbank 7 PGroupSequenceProviderj ' PGroupSequencei 5 PGreaterThanValidator!h C PGreaterThanOrEqualValidatorg 1 PGreaterThanOrEqualf # PGreaterThane ' PFileValidator
d  PFilec ) PFalseValidatorb  PFalsea 3 PExpressionValidator` ! PExpression_  PExistence^ - PEqualToValidator]  PEqualTo\ ) PEmailValidator[  PEmailZ ' PDateValidatorY / PDateTimeValidatorX  PDateTime
W  PDateV / PCurrencyValidatorU  PCurrencyT ) PCountValidatorS - PCountryValidatorR  PCountryQ  PCountP  PCompositeO 3 PCollectionValidatorN ! PCollectionM + PChoiceValidatorL  PChoiceK 3 PCardSchemeValidatorJ ! PCardSchemeI / PCallbackValidatorH  PCallbackG ) PBlankValidatorF  PBlankE % PAllValidator	D  PAll!C C PAbstractComparisonValidatorB 1 PAbstractComparisonA - OValidatorBuilder@  OValidator? / OValidationVisitor> ! OValidation= - OExecutionContext< / ODefaultTranslator; ; OConstraintViolationList: 3 OConstraintViolation 9 A OConstraintValidatorFactory8 3 OConstraintValidator7 ! OConstraint6 / NTranslationWriter5 1 MYamlFileLoaderTest4 3 MXliffFileLoaderTest3 - MQtFileLoaderTest2 - MPoFileLoaderTest1 / MPhpFileLoaderTest0 - MMoFileLoaderTest/ / MLocalizedTestCase. 1 MJsonFileLoaderTest- / MIniFileLoaderTest, 5 MIcuResFileLoaderTest+ 5 MIcuDatFileLoaderTest* / MCsvFileLoaderTest) 1 LYamlFileDumperTest( 3 LXliffFileDumperTest' - LQtFileDumperTest& - LPoFileDumperTest% / LPhpFileDumperTest$ - LMoFileDumperTest# 1 LJsonFileDumperTest" / LIniFileDumperTest! 5 LIcuResFileDumperTest  1 LConcreteFileDumper ) LFileDumperTest / LCsvFileDumperTest # KStringClass ) KTranslatorTest ' KStaleResource 3 KTranslatorCacheTest 9 KPluralizationRulesTest 3 KMessageSelectorTest 5 KMessageCatalogueTest 7 KLoggingTranslatorTest % KIntervalTest 9 KIdentityTranslatorTest! C KDataCollectorTranslatorTest" E JTranslationDataCollectorTest 1 IMergeOperationTest / IDiffOperationTest 7 IAbstractOperationTest ) HYamlFileLoader + HXliffFileLoader % HQtFileLoader % HPoFileLoader
 ' HPhpFileLoader	 % HMoFileLoader ) HJsonFileLoader ' HIniFileLoader - HIcuResFileLoader    Z:sR4zcE,c?'lS5




r
M
'
					`	.	w[<tU:{bG)rS6|`E*qM%r]@lO:       !( C [GroupSequenceProviderEntity' # [FilesLoader& 3 [FakeMetadataFactory% / [FakeClassMetadata $ A [FailingConstraintValidator# / [FailingConstraint" % [EntityParent!  [Entity  / [CustomArrayObject  [Countable" E [ConstraintWithValueAsDefault 3 [ConstraintWithValue # [ConstraintC # [ConstraintB 5 [ConstraintAValidator # [ConstraintA + [ClassConstraint ' [CallbackClass 5 ZValidatorBuilderTest 3 ZLegacyValidatorTest$ I ZExecutionContextTest_TestClass  A ZLegacyExecutionContextTest ; ZConstraintViolationTest! C ZConstraintViolationListTest ) ZConstraintTest  YRegexTest  XValidTest / XUuidValidatorTest - XUrlValidatorTest / XTypeValidatorTest
 / XTimeValidatorTest	 1 XRegexValidatorTest 1 XRangeValidatorTest 5 XNotNullValidatorTest! C XNotIdenticalToValidatorTest ; XNotEqualToValidatorTest 7 XNotBlankValidatorTest / XLuhnValidatorTest 3 XLocaleValidatorTest 7 XLessThanValidatorTest"  E XLessThanOrEqualValidatorTest 3 XLengthValidatorTest~ 7 XLanguageValidatorTest} 3 XIsTrueValidatorTest| / XIssnValidatorTest{ 3 XIsNullValidatorTestz 5 XIsFalseValidatorTesty / XIsbnValidatorTestx + XIpValidatorTestw 1 XImageValidatorTestv = XIdenticalToValidatorTestu / XIbanValidatorTestt / XGroupSequenceTests = XGreaterThanValidatorTest%r K XGreaterThanOrEqualValidatorTestq / XFileValidatorTestp 7 XFileValidatorPathTesto ; XFileValidatorObjectTestn  XFileTestm ; XExpressionValidatorTestl 5 XEqualToValidatorTestk 1 XEmailValidatorTestj / XDateValidatorTesti 7 XDateTimeValidatorTesth 7 XCurrencyValidatorTestg 1 XCountValidatorTest!f C XCountValidatorCountableTeste ; XCountValidatorArrayTestd 5 XCountryValidatorTestc ' XCompositeTestb / XConcreteCompositea ; XCollectionValidatorTest.` ] XCollectionValidatorCustomArrayObjectTest"_ E XCollectionValidatorArrayTest(^ Q XCollectionValidatorArrayObjectTest] ) XCollectionTest\ 3 XChoiceValidatorTest[ ; XCardSchemeValidatorTestZ 7 XCallbackValidatorTest"Y E XCallbackValidatorTest_Object!X C XCallbackValidatorTest_ClassW 1 XBlankValidatorTestV - XAllValidatorTestU  XAllTest"T E XConstraintViolationAssertion%S K XAbstractConstraintValidatorTest)R S XAbstractComparisonValidatorTestCaseQ 5 XComparisonTest_ClassP + WYamlFilesLoaderO ) WYamlFileLoaderN ) WXmlFilesLoaderM ' WXmlFileLoaderL 1 WStaticMethodLoaderK # WLoaderChainJ # WFilesLoaderI ! WFileLoaderH - WAnnotationLoaderG ) WAbstractLoader F A VLazyLoadingMetadataFactoryE = VBlackHoleMetadataFactoryD ' UDoctrineCacheC  UApcCacheB / TTraversalStrategyA - TPropertyMetadata@ ) TMemberMetadata? ) TGetterMetadata> + TGenericMetadata= + TElementMetadata< 5 TClassMetadataFactory; ' TClassMetadata: / TCascadingStrategy9 = TBlackholeMetadataFactory8 1 SValidatorException"7 E SUnsupportedMetadataException6 ; SUnexpectedTypeException5 - SRuntimeException4 5 SOutOfBoundsException3 ; SNoSuchMetadataException2 ; SMissingOptionsException1 - SMappingException0 ; SInvalidOptionsException/ = SInvalidArgumentException. = SGroupDefinitionException#- G SConstraintDefinitionException, 9 SBadMethodCallException#+ G RLegacyExecutionContextFactory* 9 RLegacyExecutionContext) ; RExecutionContextFactory( - RExecutionContext'  QRequired&  QOptional   z
 nS7 jDtV:lM(iE






z
g
M
5
"
								q	]	<	!	n^M=-t`UC	\$VC
]$s9	VnX@0
              "  xPHPMD! ' xParserFactory   xParser ) xAbstractWriter % xAbstractRule - xAbstractRenderer % xAbstractNode8 q wSymfony2_Tests_Objects_ObjectInstantiationUnitTest= { wSymfony2_Tests_Formatting_BlankLineBeforeReturnUnitTest7 o wSymfony2_Tests_Arrays_MultiLineArrayCommaUnitTest: u wSymfony2_Sniffs_WhiteSpace_DiscourageFitzinatorSniff2 e wSymfony2_Sniffs_WhiteSpace_CommaSpacingSniff; w wSymfony2_Sniffs_WhiteSpace_BinaryOperatorSpacingSniff, Y wSymfony2_Sniffs_Scope_MethodScopeSniff6 m wSymfony2_Sniffs_Objects_ObjectInstantiationSniff; w wSymfony2_Sniffs_NamingConventions_ValidClassNameSniff/ _ wSymfony2_Sniffs_Functions_ScopeOrderSniff; w wSymfony2_Sniffs_Formatting_BlankLineBeforeReturnSniff5 k wSymfony2_Sniffs_Commenting_FunctionCommentSniff2 e wSymfony2_Sniffs_Commenting_ClassCommentSniff6 m wSymfony2_Sniffs_Classes_PropertyDeclarationSniff9 s wSymfony2_Sniffs_Classes_MultipleClassesOneFileSniff5 k wSymfony2_Sniffs_Arrays_MultiLineArrayCommaSniff  vTestClass,
 Y uPHPUnitTests_Extension_IntegrationTest/	 _ uPHPUnitTests_Extension_FunctionMockerTest= { uPHPUnitTests_Extension_FunctionMocker_CodeGeneratorTest& M uPHPUnit_Extension_FunctionMocker4 i uPHPUnit_Extension_FunctionMocker_CodeGenerator6 m tBolt_Sniffs_Whitespace_ConcatenationSpacingSniff4 i tBolt_Sniffs_NamingConventions_TraitSuffixSniff7 o tBolt_Sniffs_NamingConventions_AbstractPrefixSniff6 m tBolt_Sniffs_Functions_FunctionCallSignatureSniff  pYamlTest   pB ! pParserTest~ 1 pParseExceptionTest} ! pInlineTest|  pA{ ! pDumperTestz - oRuntimeExceptiony ) oParseExceptionx ' oDumpException
w  nYamlv  nUnescaperu  nParsert  nInlines  nEscaperr  nDumperq  mVarDumperp  lDumbFooo ' kVarClonerTestn ) kHtmlDumperTestm ' kCliDumperTestl 5 jReflectionCasterTestk ' jPdoCasterTestj ! jCasterTesti / iVarDumperTestCaseh ; hThrowingCasterExceptiong ! gHtmlDumperf  gCliDumpere ) gAbstractDumperd  fVarCloner
c  fStub
b  fDataa  fCursor` ) fAbstractCloner_ / eXmlResourceCaster^ ! eStubCaster]  eSplCaster\ ) eResourceCaster[ - eReflectionCasterZ  ePdoCasterY # eMongoCasterX + eExceptionCasterW  eDOMCasterV ) eDoctrineCasterU  eCutStubT  eConstStubS  eCasterR ! eAmqpCaster&Q M dLegacyConstraintViolationBuilder P A dConstraintViolationBuilderO 1 cRecursiveValidator"N E cRecursiveContextualValidatorM + cLegacyValidatorL % bPropertyPath$K I aRecursiveValidator2Dot5ApiTest"J E aLegacyValidatorLegacyApiTest!I C aLegacyValidator2Dot5ApiTestH 7 aAbstractValidatorTestG 7 aAbstractLegacyApiTestF 5 aAbstract2Dot5ApiTestE - `PropertyPathTestD 1 _YamlFileLoaderTestC / _XmlFileLoaderTestB = _BaseStaticLoaderDocumentA 5 _StaticLoaderDocument@ 1 _StaticLoaderEntity? 5 _AbstractStaticLoader> 9 _StaticMethodLoaderTest= + _LoaderChainTest< + _FilesLoaderTest; 5 _AnnotationLoaderTest : A _AbstractStaticMethodLoader9 ! ^TestLoader$8 I ^LazyLoadingMetadataFactoryTest"7 E ^BlackHoleMetadataFactoryTest6 5 ]PropertyMetadataTest5 1 ]TestMemberMetadata4 1 ]MemberMetadataTest3 3 ]TestElementMetadata2 ? ]LegacyElementMetadataTest1 1 ]GetterMetadataTest0 / ]ClassMetadataTest/ 1 \LegacyApcCacheTest. / \DoctrineCacheTest - A [StubGlobalExecutionContext,  [Reference+ 1 [PropertyConstraint * A [InvalidConstraintValidator) / [InvalidConstraint   6 zb@)xaM:$bF)fG1zfK2




m
@
*
							q	Y	I	2	#	
cL.p]G1iL/jT4nU;$cM4a-s6                          9, s PHPUnit_Extensions_Database_DataSet_AbstractDataSet:+ u PHPUnit_Extensions_Database_Constraint_TableRowCount9* s PHPUnit_Extensions_Database_Constraint_TableIsEqual;) w PHPUnit_Extensions_Database_Constraint_DataSetIsEqual0( a PHPUnit_Extensions_Database_AbstractTester7' o PHPCS_Sniffs_Whitespace_ConcatenationSpacingSniff:& u PHPCS_Sniffs_ControlStructures_ControlSignatureSniff% % StreamWriter$ 1 CommandLineOptions#  Command" ' ShortVariable! + ShortMethodName  % LongVariable) S ConstructorWithNameAsEnclosingClass ? ConstantNamingConventions 5 BooleanGetMethodName 3 WeightedMethodCount 5 TooManyPublicMethods ) TooManyMethods ' TooManyFields - NumberOfChildren + NpathComplexity / LongParameterList ! LongMethod  LongClass ' GotoStatement ) ExitExpression ) EvalExpression ; DevelopmentCodeFragment 1 DepthOfInheritance 9 CouplingBetweenObjects % Superglobals 7 CamelCaseVariableName 7 CamelCasePropertyName
 9 CamelCaseParameterName	 3 CamelCaseMethodName 1 CamelCaseClassName % StaticAccess ) ElseExpression 3 BooleanArgumentFlag 3 UnusedPrivateMethod 1 UnusedPrivateField 3 UnusedLocalVariable 7 UnusedFormalParameter  5 ExcessivePublicCount 5 CyclomaticComplexity~ 7 AbstractLocalVariable} # XMLRenderer| % TextRenderer{ % HTMLRendererz  TraitNodey ! MethodNodex ' InterfaceNodew % FunctionNodev  ClassNodeu  ASTNodet # Annotationss ! Annotationr - AbstractTypeNodeq % AbstractNodep 5 AbstractCallableNodeo ' RuleViolationn = RuleSetNotFoundExceptionm ) RuleSetFactoryl  RuleSet k A RuleClassNotFoundException$j I RuleClassFileNotFoundExceptioni  Reporth + ProcessingErrorg  PHPMDf ' ParserFactorye  Parserd ) AbstractWriterc % AbstractRuleb - AbstractRenderera % AbstractNode` % StreamWriter_ 1 CommandLineOptions^  Command] ' ShortVariable\ + ShortMethodName[ % LongVariable)Z S ConstructorWithNameAsEnclosingClassY ? ConstantNamingConventionsX 5 BooleanGetMethodNameW 3 ~WeightedMethodCountV 5 ~TooManyPublicMethodsU ) ~TooManyMethodsT ' ~TooManyFieldsS - ~NumberOfChildrenR + ~NpathComplexityQ / ~LongParameterListP ! ~LongMethodO  ~LongClassN ' ~GotoStatementM ) ~ExitExpressionL ) ~EvalExpressionK ; ~DevelopmentCodeFragmentJ 1 ~DepthOfInheritanceI 9 ~CouplingBetweenObjectsH % }SuperglobalsG 7 }CamelCaseVariableNameF 7 }CamelCasePropertyNameE 9 }CamelCaseParameterNameD 3 }CamelCaseMethodNameC 1 }CamelCaseClassNameB % |StaticAccessA ) |ElseExpression@ 3 |BooleanArgumentFlag? 3 {UnusedPrivateMethod> 1 {UnusedPrivateField= 3 {UnusedLocalVariable< 7 {UnusedFormalParameter; 5 {ExcessivePublicCount: 5 {CyclomaticComplexity9 7 {AbstractLocalVariable8 # zXMLRenderer7 % zTextRenderer6 % zHTMLRenderer5  yTraitNode4 ! yMethodNode3 ' yInterfaceNode2 % yFunctionNode1  yClassNode0  yASTNode/ # yAnnotations. ! yAnnotation- - yAbstractTypeNode, % yAbstractNode+ 5 yAbstractCallableNode* ' xRuleViolation) = xRuleSetNotFoundException( ) xRuleSetFactory'  xRuleSet & A xRuleClassNotFoundException$% I xRuleClassFileNotFoundException$  xReport# + xProcessingError   D  BW]!c#i/


y
2				J	a(vF[u=o9h2SxB                                      ,p Y PHPUnit_Extensions_Database_UI_Context,o Y PHPUnit_Extensions_Database_UI_Command*n U PHPUnit_Extensions_Database_TestCase2m e PHPUnit_Extensions_Database_Operation_Update4l i PHPUnit_Extensions_Database_Operation_Truncate4k i PHPUnit_Extensions_Database_Operation_RowBased3j g PHPUnit_Extensions_Database_Operation_Replace0i a PHPUnit_Extensions_Database_Operation_Null2h e PHPUnit_Extensions_Database_Operation_Insert3g g PHPUnit_Extensions_Database_Operation_Factory5f k PHPUnit_Extensions_Database_Operation_Exception5e k PHPUnit_Extensions_Database_Operation_DeleteAll2d e PHPUnit_Extensions_Database_Operation_Delete5c k PHPUnit_Extensions_Database_Operation_Composite+b W PHPUnit_Extensions_Database_Exception/a _ PHPUnit_Extensions_Database_DefaultTester2` e PHPUnit_Extensions_Database_DB_TableMetaData2_ e PHPUnit_Extensions_Database_DB_TableIterator*^ U PHPUnit_Extensions_Database_DB_Table3] g PHPUnit_Extensions_Database_DB_ResultSetTable-\ [ PHPUnit_Extensions_Database_DB_MetaData4[ i PHPUnit_Extensions_Database_DB_MetaData_SqlSrv4Z i PHPUnit_Extensions_Database_DB_MetaData_Sqlite3Y g PHPUnit_Extensions_Database_DB_MetaData_PgSQL1X c PHPUnit_Extensions_Database_DB_MetaData_Oci3W g PHPUnit_Extensions_Database_DB_MetaData_MySQL?V  PHPUnit_Extensions_Database_DB_MetaData_InformationSchema6U m PHPUnit_Extensions_Database_DB_MetaData_Firebird3T g PHPUnit_Extensions_Database_DB_MetaData_Dblib4S i PHPUnit_Extensions_Database_DB_FilteredDataSet>R } PHPUnit_Extensions_Database_DB_DefaultDatabaseConnection,Q Y PHPUnit_Extensions_Database_DB_DataSet5P k PHPUnit_Extensions_Database_DataSet_YamlDataSet4O i PHPUnit_Extensions_Database_DataSet_XmlDataSet=N { PHPUnit_Extensions_Database_DataSet_TableMetaDataFilter5M k PHPUnit_Extensions_Database_DataSet_TableFilter;L w PHPUnit_Extensions_Database_DataSet_SymfonyYamlParser4K i PHPUnit_Extensions_Database_DataSet_Specs_Yaml3J g PHPUnit_Extensions_Database_DataSet_Specs_Xml7I o PHPUnit_Extensions_Database_DataSet_Specs_FlatXml7H o PHPUnit_Extensions_Database_DataSet_Specs_Factory7G o PHPUnit_Extensions_Database_DataSet_Specs_DbTable7F o PHPUnit_Extensions_Database_DataSet_Specs_DbQuery3E g PHPUnit_Extensions_Database_DataSet_Specs_CsvCD  PHPUnit_Extensions_Database_DataSet_ReplacementTableIterator:C u PHPUnit_Extensions_Database_DataSet_ReplacementTable<B y PHPUnit_Extensions_Database_DataSet_ReplacementDataSet4A i PHPUnit_Extensions_Database_DataSet_QueryTable6@ m PHPUnit_Extensions_Database_DataSet_QueryDataSet9? s PHPUnit_Extensions_Database_DataSet_Persistors_Yaml8> q PHPUnit_Extensions_Database_DataSet_Persistors_Xml== { PHPUnit_Extensions_Database_DataSet_Persistors_MysqlXml<< y PHPUnit_Extensions_Database_DataSet_Persistors_FlatXml<; y PHPUnit_Extensions_Database_DataSet_Persistors_Factory=: { PHPUnit_Extensions_Database_DataSet_Persistors_Abstract99 s PHPUnit_Extensions_Database_DataSet_MysqlXmlDataSet88 q PHPUnit_Extensions_Database_DataSet_FlatXmlDataSet>7 } PHPUnit_Extensions_Database_DataSet_DefaultTableMetaData>6 } PHPUnit_Extensions_Database_DataSet_DefaultTableIterator65 m PHPUnit_Extensions_Database_DataSet_DefaultTable84 q PHPUnit_Extensions_Database_DataSet_DefaultDataSet73 o PHPUnit_Extensions_Database_DataSet_DataSetFilter42 i PHPUnit_Extensions_Database_DataSet_CsvDataSet:1 u PHPUnit_Extensions_Database_DataSet_CompositeDataSet60 m PHPUnit_Extensions_Database_DataSet_ArrayDataSet</ y PHPUnit_Extensions_Database_DataSet_AbstractXmlDataSet?.  PHPUnit_Extensions_Database_DataSet_AbstractTableMetaData7- o PHPUnit_Extensions_Database_DataSet_AbstractTable   F  ZgG&`,_#<


p
2				G		N^#k)o/r5EQl-                                 =6 { PHPUnit_Extensions_Database_DataSet_TableMetaDataFilter55 k PHPUnit_Extensions_Database_DataSet_TableFilter;4 w PHPUnit_Extensions_Database_DataSet_SymfonyYamlParser43 i PHPUnit_Extensions_Database_DataSet_Specs_Yaml32 g PHPUnit_Extensions_Database_DataSet_Specs_Xml71 o PHPUnit_Extensions_Database_DataSet_Specs_FlatXml70 o PHPUnit_Extensions_Database_DataSet_Specs_Factory7/ o PHPUnit_Extensions_Database_DataSet_Specs_DbTable7. o PHPUnit_Extensions_Database_DataSet_Specs_DbQuery3- g PHPUnit_Extensions_Database_DataSet_Specs_CsvC,  PHPUnit_Extensions_Database_DataSet_ReplacementTableIterator:+ u PHPUnit_Extensions_Database_DataSet_ReplacementTable<* y PHPUnit_Extensions_Database_DataSet_ReplacementDataSet4) i PHPUnit_Extensions_Database_DataSet_QueryTable6( m PHPUnit_Extensions_Database_DataSet_QueryDataSet9' s PHPUnit_Extensions_Database_DataSet_Persistors_Yaml8& q PHPUnit_Extensions_Database_DataSet_Persistors_Xml=% { PHPUnit_Extensions_Database_DataSet_Persistors_MysqlXml<$ y PHPUnit_Extensions_Database_DataSet_Persistors_FlatXml<# y PHPUnit_Extensions_Database_DataSet_Persistors_Factory=" { PHPUnit_Extensions_Database_DataSet_Persistors_Abstract9! s PHPUnit_Extensions_Database_DataSet_MysqlXmlDataSet8  q PHPUnit_Extensions_Database_DataSet_FlatXmlDataSet> } PHPUnit_Extensions_Database_DataSet_DefaultTableMetaData> } PHPUnit_Extensions_Database_DataSet_DefaultTableIterator6 m PHPUnit_Extensions_Database_DataSet_DefaultTable8 q PHPUnit_Extensions_Database_DataSet_DefaultDataSet7 o PHPUnit_Extensions_Database_DataSet_DataSetFilter4 i PHPUnit_Extensions_Database_DataSet_CsvDataSet: u PHPUnit_Extensions_Database_DataSet_CompositeDataSet6 m PHPUnit_Extensions_Database_DataSet_ArrayDataSet< y PHPUnit_Extensions_Database_DataSet_AbstractXmlDataSet?  PHPUnit_Extensions_Database_DataSet_AbstractTableMetaData7 o PHPUnit_Extensions_Database_DataSet_AbstractTable9 s PHPUnit_Extensions_Database_DataSet_AbstractDataSet: u PHPUnit_Extensions_Database_Constraint_TableRowCount9 s PHPUnit_Extensions_Database_Constraint_TableIsEqual; w PHPUnit_Extensions_Database_Constraint_DataSetIsEqual0 a PHPUnit_Extensions_Database_AbstractTester7 o PHPCS_Sniffs_Whitespace_ConcatenationSpacingSniff: u PHPCS_Sniffs_ControlStructures_ControlSignatureSniff0 a Extensions_Database_Operation_RowBasedTest2 e Extensions_Database_Operation_OperationsTest7 o Extensions_Database_Operation_OperationsMySQLTest#
 G DefaultDatabaseConnectionTest?	  Extensions_Database_DataSet_YamlDataSetTest_PiOver2Parser1 c Extensions_Database_DataSet_YamlDataSetTest1 c Extensions_Database_DataSet_XmlDataSetsTest6 m Extensions_Database_DataSet_ReplacementTableTest8 q Extensions_Database_DataSet_ReplacementDataSetTest0 a Extensions_Database_DataSet_QueryTableTest2 e Extensions_Database_DataSet_QueryDataSetTest/ _ Extensions_Database_DataSet_PersistorTest, Y Extensions_Database_DataSet_FilterTest0  a Extensions_Database_DataSet_CsvDataSetTest6 m Extensions_Database_DataSet_CompositeDataSetTest3~ g Extensions_Database_DataSet_AbstractTableTest6} m Extensions_Database_Constraint_TableRowCountTest| / DBUnitTestUtility{ ; BankAccountDBTestSQLitez 9 BankAccountDBTestMySQLy / BankAccountDBTestx = BankAccountCompositeTestw # BankAccountv 5 BankAccountException8u q PHPUnit_Extensions_Database_UI_Modes_ExportDataSetCt  PHPUnit_Extensions_Database_UI_Modes_ExportDataSet_Arguments0s a PHPUnit_Extensions_Database_UI_ModeFactory1r c PHPUnit_Extensions_Database_UI_Mediums_Text9q s PHPUnit_Extensions_Database_UI_InvalidModeException   M  _t1VRK


l
8
			[	-['qO4g-`,L	q=dCX$                                               " E PHP_CodeCoverage_Report_HTML+ W PHP_CodeCoverage_Report_HTML_Renderer0 a PHP_CodeCoverage_Report_HTML_Renderer_File5  k PHP_CodeCoverage_Report_HTML_Renderer_Directory5 k PHP_CodeCoverage_Report_HTML_Renderer_Dashboard%~ K PHP_CodeCoverage_Report_Factory$} I PHP_CodeCoverage_Report_Crap4j$| I PHP_CodeCoverage_Report_Clover{ ; PHP_CodeCoverage_Filter z A PHP_CodeCoverage_Exception;y w PHP_CodeCoverage_Exception_UnintentionallyCoveredCode$x I PHP_CodeCoverage_Driver_Xdebug$w I PHP_CodeCoverage_Driver_PHPDBG"v E PHP_CodeCoverage_Driver_HHVM0u a Extensions_Database_Operation_RowBasedTest2t e Extensions_Database_Operation_OperationsTest7s o Extensions_Database_Operation_OperationsMySQLTest#r G DefaultDatabaseConnectionTest?q  Extensions_Database_DataSet_YamlDataSetTest_PiOver2Parser1p c Extensions_Database_DataSet_YamlDataSetTest1o c Extensions_Database_DataSet_XmlDataSetsTest6n m Extensions_Database_DataSet_ReplacementTableTest8m q Extensions_Database_DataSet_ReplacementDataSetTest0l a Extensions_Database_DataSet_QueryTableTest2k e Extensions_Database_DataSet_QueryDataSetTest/j _ Extensions_Database_DataSet_PersistorTest,i Y Extensions_Database_DataSet_FilterTest0h a Extensions_Database_DataSet_CsvDataSetTest6g m Extensions_Database_DataSet_CompositeDataSetTest3f g Extensions_Database_DataSet_AbstractTableTest6e m Extensions_Database_Constraint_TableRowCountTestd / DBUnitTestUtilityc ; BankAccountDBTestSQLiteb 9 BankAccountDBTestMySQLa / BankAccountDBTest` = BankAccountCompositeTest_ # BankAccount^ 5 BankAccountException8] q PHPUnit_Extensions_Database_UI_Modes_ExportDataSetC\  PHPUnit_Extensions_Database_UI_Modes_ExportDataSet_Arguments0[ a PHPUnit_Extensions_Database_UI_ModeFactory1Z c PHPUnit_Extensions_Database_UI_Mediums_Text9Y s PHPUnit_Extensions_Database_UI_InvalidModeException,X Y PHPUnit_Extensions_Database_UI_Context,W Y PHPUnit_Extensions_Database_UI_Command*V U PHPUnit_Extensions_Database_TestCase2U e PHPUnit_Extensions_Database_Operation_Update4T i PHPUnit_Extensions_Database_Operation_Truncate4S i PHPUnit_Extensions_Database_Operation_RowBased3R g PHPUnit_Extensions_Database_Operation_Replace0Q a PHPUnit_Extensions_Database_Operation_Null2P e PHPUnit_Extensions_Database_Operation_Insert3O g PHPUnit_Extensions_Database_Operation_Factory5N k PHPUnit_Extensions_Database_Operation_Exception5M k PHPUnit_Extensions_Database_Operation_DeleteAll2L e PHPUnit_Extensions_Database_Operation_Delete5K k PHPUnit_Extensions_Database_Operation_Composite+J W PHPUnit_Extensions_Database_Exception/I _ PHPUnit_Extensions_Database_DefaultTester2H e PHPUnit_Extensions_Database_DB_TableMetaData2G e PHPUnit_Extensions_Database_DB_TableIterator*F U PHPUnit_Extensions_Database_DB_Table3E g PHPUnit_Extensions_Database_DB_ResultSetTable-D [ PHPUnit_Extensions_Database_DB_MetaData4C i PHPUnit_Extensions_Database_DB_MetaData_SqlSrv4B i PHPUnit_Extensions_Database_DB_MetaData_Sqlite3A g PHPUnit_Extensions_Database_DB_MetaData_PgSQL1@ c PHPUnit_Extensions_Database_DB_MetaData_Oci3? g PHPUnit_Extensions_Database_DB_MetaData_MySQL?>  PHPUnit_Extensions_Database_DB_MetaData_InformationSchema6= m PHPUnit_Extensions_Database_DB_MetaData_Firebird3< g PHPUnit_Extensions_Database_DB_MetaData_Dblib4; i PHPUnit_Extensions_Database_DB_FilteredDataSet>: } PHPUnit_Extensions_Database_DB_DefaultDatabaseConnection,9 Y PHPUnit_Extensions_Database_DB_DataSet58 k PHPUnit_Extensions_Database_DataSet_YamlDataSet47 i PHPUnit_Extensions_Database_DataSet_XmlDataSet   x vP+rAf:yV;m< 




k
L
0
					R	(	a9uIgRA.`C,{iO6 }jV@"dK4w=               2{ e PHP_CodeSniffer_CommentParser_CommentElement6z m PHP_CodeSniffer_CommentParser_ClassCommentParser2y e PHP_CodeSniffer_CommentParser_AbstractParser6x m PHP_CodeSniffer_CommentParser_AbstractDocElementw 3 PHP_CodeSniffer_CLIv ) XPathQueryTestu ) TranslatorTestt ' fDOMXPathTests + fDOMElementTestr = fDOMDocumentFragmentTestq - fDOMDocumentTestp 3 XPathQueryExceptiono ! XPathQueryn  fDOMXPathm  fDOMNodel ' fDOMExceptionk # fDOMElementj 5 fDOMDocumentFragmenti % fDOMDocumenth ! Translatorg  RegexRulef % NthChildRulee  NotRuled + DollarEqualRulec 3 PHPCPD_DetectorTest"b E PhpUnderControl_Example_Math
a  Text	`  PMD_ / AbstractXmlLogger^ + DefaultStrategy] - AbstractStrategy\  Detector[ % CodeCloneMapZ ' CodeCloneFileY  CodeCloneX  CommandW # ApplicationV - FinderFacadeTestU / ConfigurationTestT % FinderFacadeS ' ConfigurationR 3 PHPCPD_DetectorTest"Q E PhpUnderControl_Example_Math
P  Text	O  PMDN / AbstractXmlLoggerM + DefaultStrategyL - AbstractStrategyK  DetectorJ % CodeCloneMapI ' CodeCloneFileH  CodeCloneG  CommandF # ApplicationE 7 source_with_namespaceD % CoveredClassC 1 CoveredParentClassB ? PHP_CodeCoverage_TestCaseA 5 PHP_CodeCoverageTest@ ? PHP_CodeCoverage_UtilTest)? S PHP_CodeCoverage_Report_FactoryTest(> Q PHP_CodeCoverage_Report_CloverTest!= C PHP_CodeCoverage_FilterTest	<  Bar	;  Foo5: k CoveredClassWithAnonymousFunctionInStaticMethod#9 G NotExistingCoveredElementTest!8 C NamespaceCoveragePublicTest$7 I NamespaceCoverageProtectedTest"6 E NamespaceCoveragePrivateTest$5 I NamespaceCoverageNotPublicTest'4 O NamespaceCoverageNotProtectedTest%3 K NamespaceCoverageNotPrivateTest!2 C NamespaceCoverageMethodTest&1 M NamespaceCoverageCoversClassTest,0 Y NamespaceCoverageCoversClassPublicTest / A NamespaceCoverageClassTest(. Q NamespaceCoverageClassExtendedTest- % CoveredClass, 1 CoveredParentClass(+ Q CoverageTwoDefaultClassAnnotations* 1 CoveragePublicTest) 7 CoverageProtectedTest( 3 CoveragePrivateTest' 7 CoverageNotPublicTest& = CoverageNotProtectedTest% 9 CoverageNotPrivateTest$ 3 CoverageNothingTest# - CoverageNoneTest" 1 CoverageMethodTest-! [ CoverageMethodParenthesesWhitespaceTest#  G CoverageMethodParenthesesTest) S CoverageMethodOneLineAnnotationTest 5 CoverageFunctionTest/ _ CoverageFunctionParenthesesWhitespaceTest% K CoverageFunctionParenthesesTest / CoverageClassTest ? CoverageClassExtendedTest + BankAccountTest # BankAccount - PHP_CodeCoverage 7 PHP_CodeCoverage_Util1 c PHP_CodeCoverage_Util_InvalidArgumentHelper! C PHP_CodeCoverage_Report_XML( Q PHP_CodeCoverage_Report_XML_Totals' O PHP_CodeCoverage_Report_XML_Tests) S PHP_CodeCoverage_Report_XML_Project& M PHP_CodeCoverage_Report_XML_Node& M PHP_CodeCoverage_Report_XML_File+ W PHP_CodeCoverage_Report_XML_File_Unit- [ PHP_CodeCoverage_Report_XML_File_Report- [ PHP_CodeCoverage_Report_XML_File_Method/ _ PHP_CodeCoverage_Report_XML_File_Coverage+
 W PHP_CodeCoverage_Report_XML_Directory"	 E PHP_CodeCoverage_Report_Text! C PHP_CodeCoverage_Report_PHP" E PHP_CodeCoverage_Report_Node+ W PHP_CodeCoverage_Report_Node_Iterator' O PHP_CodeCoverage_Report_Node_File, Y PHP_CodeCoverage_Report_Node_Directory   K  UT(sL&Z2	R


r
/			h	%sFyHW!t1?r@u7i6           'F O Generic_Sniffs_PHP_SAPIUsageSniff.E ] Generic_Sniffs_PHP_NoSilencedErrorsSniff.D ] Generic_Sniffs_PHP_LowerCaseKeywordSniff/C _ Generic_Sniffs_PHP_LowerCaseConstantSniff0B a Generic_Sniffs_PHP_ForbiddenFunctionsSniff2A e Generic_Sniffs_PHP_DisallowShortOpenTagSniff1@ c Generic_Sniffs_PHP_DeprecatedFunctionsSniff+? W Generic_Sniffs_PHP_ClosingPHPTagSniff:> u Generic_Sniffs_PHP_CharacterBeforePHPOpeningTagSniffB=  Generic_Sniffs_NamingConventions_UpperCaseConstantNameSniff;< w Generic_Sniffs_NamingConventions_ConstructorNameSniffB;  Generic_Sniffs_NamingConventions_CamelCapsFunctionNameSniff.: ] Generic_Sniffs_Metrics_NestingLevelSniff69 m Generic_Sniffs_Metrics_CyclomaticComplexitySniffI8  Generic_Sniffs_Functions_OpeningFunctionBraceKernighanRitchieSniffB7  Generic_Sniffs_Functions_OpeningFunctionBraceBsdAllmanSniff?6  Generic_Sniffs_Functions_FunctionCallArgumentSpacingSniff;5 w Generic_Sniffs_Functions_CallTimePassByReferenceSniff34 g Generic_Sniffs_Formatting_SpaceAfterCastSniff53 k Generic_Sniffs_Formatting_NoSpaceAfterCastSniff?2  Generic_Sniffs_Formatting_MultipleStatementAlignmentSniff?1  Generic_Sniffs_Formatting_DisallowMultipleStatementsSniff30 g Generic_Sniffs_Files_OneInterfacePerFileSniff// _ Generic_Sniffs_Files_OneClassPerFileSniff2. e Generic_Sniffs_Files_LowercasedFilenameSniff*- U Generic_Sniffs_Files_LineLengthSniff+, W Generic_Sniffs_Files_LineEndingsSniff*+ U Generic_Sniffs_Files_InlineHTMLSniff0* a Generic_Sniffs_Files_EndFileNoNewlineSniff.) ] Generic_Sniffs_Files_EndFileNewlineSniff-( [ Generic_Sniffs_Files_ByteOrderMarkSniff&' M Generic_Sniffs_Debug_JSHintSniff'& O Generic_Sniffs_Debug_CSSLintSniff-% [ Generic_Sniffs_Debug_ClosureLinterSniffC$  Generic_Sniffs_ControlStructures_InlineControlStructureSniff)# S Generic_Sniffs_Commenting_TodoSniff*" U Generic_Sniffs_Commenting_FixmeSniff>! } Generic_Sniffs_CodeAnalysis_UselessOverridingMethodSniff>  } Generic_Sniffs_CodeAnalysis_UnusedFunctionParameterSniff?  Generic_Sniffs_CodeAnalysis_UnnecessaryFinalModifierSniff?  Generic_Sniffs_CodeAnalysis_UnconditionalIfStatementSniff9 s Generic_Sniffs_CodeAnalysis_JumbledIncrementerSniffC  Generic_Sniffs_CodeAnalysis_ForLoopWithTestFunctionCallSniff?  Generic_Sniffs_CodeAnalysis_ForLoopShouldBeWhileLoopSniff5 k Generic_Sniffs_CodeAnalysis_EmptyStatementSniff4 i Generic_Sniffs_Classes_DuplicateClassNameSniff5 k PHP_CodeSniffer_Standards_AbstractVariableSniff2 e PHP_CodeSniffer_Standards_AbstractScopeSniff4 i PHP_CodeSniffer_Standards_AbstractPatternSniff! C PHP_CodeSniffer_Reports_Xml, Y PHP_CodeSniffer_Reports_VersionControl& M PHP_CodeSniffer_Reports_Svnblame% K PHP_CodeSniffer_Reports_Summary$ I PHP_CodeSniffer_Reports_Source( Q PHP_CodeSniffer_Reports_Notifysend# G PHP_CodeSniffer_Reports_Junit" E PHP_CodeSniffer_Reports_Json% K PHP_CodeSniffer_Reports_Hgblame& M PHP_CodeSniffer_Reports_Gitblame" E PHP_CodeSniffer_Reports_Full#
 G PHP_CodeSniffer_Reports_Emacs!	 C PHP_CodeSniffer_Reports_Csv( Q PHP_CodeSniffer_Reports_Checkstyle ? PHP_CodeSniffer_Reporting 5 PHP_CodeSniffer_File ? PHP_CodeSniffer_Exception( Q PHP_CodeSniffer_DocGenerators_Text( Q PHP_CodeSniffer_DocGenerators_HTML- [ PHP_CodeSniffer_DocGenerators_Generator1 c PHP_CodeSniffer_CommentParser_SingleElement3  g PHP_CodeSniffer_CommentParser_ParserException4 i PHP_CodeSniffer_CommentParser_ParameterElement/~ _ PHP_CodeSniffer_CommentParser_PairElement7} o PHP_CodeSniffer_CommentParser_MemberCommentParser9| s PHP_CodeSniffer_CommentParser_FunctionCommentParser   H  h'}@`,Z)}I


}
K
			u	6	]'p6o9Mt:i8`)I                   2 e Squiz_Sniffs_Commenting_FunctionCommentSniff. ] Squiz_Sniffs_Commenting_FileCommentSniff4 i Squiz_Sniffs_Commenting_EmptyCatchCommentSniff6 m Squiz_Sniffs_Commenting_DocCommentAlignmentSniff<
 y Squiz_Sniffs_Commenting_ClosingDeclarationCommentSniff/	 _ Squiz_Sniffs_Commenting_ClassCommentSniff/ _ Squiz_Sniffs_Commenting_BlockCommentSniff3 g Squiz_Sniffs_CodeAnalysis_EmptyStatementSniff. ] Squiz_Sniffs_Classes_ValidClassNameSniff3 g Squiz_Sniffs_Classes_SelfMemberReferenceSniff6 m Squiz_Sniffs_Classes_LowercaseClassKeywordsSniff1 c Squiz_Sniffs_Classes_DuplicatePropertySniff- [ Squiz_Sniffs_Classes_ClassFileNameSniff0 a Squiz_Sniffs_Classes_ClassDeclarationSniff/  _ Squiz_Sniffs_Arrays_ArrayDeclarationSniff2 e Squiz_Sniffs_Arrays_ArrayBracketSpacingSniff0~ a PSR2_Sniffs_Namespaces_UseDeclarationSniff6} m PSR2_Sniffs_Namespaces_NamespaceDeclarationSniff0| a PSR2_Sniffs_Methods_MethodDeclarationSniff4{ i PSR2_Sniffs_Methods_FunctionCallSignatureSniff+z W PSR2_Sniffs_Files_EndFileNewlineSniff:y u PSR2_Sniffs_ControlStructures_SwitchDeclarationSniff:x u PSR2_Sniffs_ControlStructures_ElseIfDeclarationSniffAw  PSR2_Sniffs_ControlStructures_ControlStructureSpacingSniff2v e PSR2_Sniffs_Classes_PropertyDeclarationSniff/u _ PSR2_Sniffs_Classes_ClassDeclarationSniff2t e PSR1_Sniffs_Methods_CamelCapsMethodNameSniff(s Q PSR1_Sniffs_Files_SideEffectsSniff/r _ PSR1_Sniffs_Classes_ClassDeclarationSniff-q [ PEAR_Sniffs_WhiteSpace_ScopeIndentSniff3p g PEAR_Sniffs_WhiteSpace_ScopeClosingBraceSniff6o m PEAR_Sniffs_WhiteSpace_ObjectOperatorIndentSniff:n u PEAR_Sniffs_NamingConventions_ValidVariableNameSniff:m u PEAR_Sniffs_NamingConventions_ValidFunctionNameSniff7l o PEAR_Sniffs_NamingConventions_ValidClassNameSniff2k e PEAR_Sniffs_Functions_ValidDefaultValueSniff4j i PEAR_Sniffs_Functions_FunctionDeclarationSniff6i m PEAR_Sniffs_Functions_FunctionCallSignatureSniff5h k PEAR_Sniffs_Formatting_MultiLineAssignmentSniff*g U PEAR_Sniffs_Files_IncludingFileSniff;f w PEAR_Sniffs_ControlStructures_MultiLineConditionSniff9e s PEAR_Sniffs_ControlStructures_ControlSignatureSniff/d _ PEAR_Sniffs_Commenting_InlineCommentSniff1c c PEAR_Sniffs_Commenting_FunctionCommentSniff-b [ PEAR_Sniffs_Commenting_FileCommentSniff.a ] PEAR_Sniffs_Commenting_ClassCommentSniff/` _ PEAR_Sniffs_Classes_ClassDeclarationSniff._ ] MySource_Sniffs_Strings_JoinStringsSniff2^ e MySource_Sniffs_PHP_ReturnFunctionValueSniff-] [ MySource_Sniffs_PHP_GetRequestDataSniff0\ a MySource_Sniffs_PHP_EvalObjectFactorySniff1[ c MySource_Sniffs_PHP_AjaxNullComparisonSniff4Z i MySource_Sniffs_Objects_DisallowNewWidgetSniff;Y w MySource_Sniffs_Objects_CreateWidgetTypeCallbackSniff-X [ MySource_Sniffs_Objects_AssignThisSniff/W _ MySource_Sniffs_Debug_FirebugConsoleSniff*V U MySource_Sniffs_Debug_DebugCodeSniff4U i MySource_Sniffs_CSS_BrowserSpecificStylesSniff5T k MySource_Sniffs_Commenting_FunctionCommentSniff0S a MySource_Sniffs_Channels_UnusedSystemSniff1R c MySource_Sniffs_Channels_IncludeSystemSniff4Q i MySource_Sniffs_Channels_IncludeOwnSystemSniff7P o MySource_Sniffs_Channels_DisallowSelfActionsSniff4O i MySource_Sniffs_Channels_ChannelExceptionSniff9N s PHP_CodeSniffer_Standards_IncorrectPatternException0M a Generic_Sniffs_WhiteSpace_ScopeIndentSniff6L m Generic_Sniffs_WhiteSpace_DisallowTabIndentSniff8K q Generic_Sniffs_WhiteSpace_DisallowSpaceIndentSniff=J { Generic_Sniffs_VersionControl_SubversionPropertiesSniff9I s Generic_Sniffs_Strings_UnnecessaryStringConcatSniff/H _ Generic_Sniffs_PHP_UpperCaseConstantSniff$G I Generic_Sniffs_PHP_SyntaxSniff   H  L^V]1Q



W
+				{	K	#u<HSm2^#V2 ~IR                                     .V ] Squiz_Sniffs_WhiteSpace_CastSpacingSniff-U [ Squiz_Sniffs_Strings_EchoedStringsSniff0T a Squiz_Sniffs_Strings_DoubleQuoteUsageSniff4S i Squiz_Sniffs_Strings_ConcatenationSpacingSniff-R [ Squiz_Sniffs_Scope_StaticThisUsageSniff)Q S Squiz_Sniffs_Scope_MethodScopeSniff,P Y Squiz_Sniffs_Scope_MemberVarScopeSniff-O [ Squiz_Sniffs_PHP_NonExecutableCodeSniff1N c Squiz_Sniffs_PHP_LowercasePHPFunctionsSniff*M U Squiz_Sniffs_PHP_InnerFunctionsSniff#L G Squiz_Sniffs_PHP_HeredocSniff)K S Squiz_Sniffs_PHP_GlobalKeywordSniff.J ] Squiz_Sniffs_PHP_ForbiddenFunctionsSniff I A Squiz_Sniffs_PHP_EvalSniff'H O Squiz_Sniffs_PHP_EmbeddedPhpSniff0G a Squiz_Sniffs_PHP_DiscouragedFunctionsSniff8F q Squiz_Sniffs_PHP_DisallowSizeFunctionsInLoopsSniff.E ] Squiz_Sniffs_PHP_DisallowObEndFlushSniff7D o Squiz_Sniffs_PHP_DisallowMultipleAssignmentsSniff,C Y Squiz_Sniffs_PHP_DisallowInlineIfSniff8B q Squiz_Sniffs_PHP_DisallowComparisonAssignmentSniff4A i Squiz_Sniffs_PHP_DisallowBooleanStatementSniff,@ Y Squiz_Sniffs_PHP_CommentedOutCodeSniff7? o Squiz_Sniffs_Operators_ValidLogicalOperatorsSniff9> s Squiz_Sniffs_Operators_IncrementDecrementUsageSniff9= s Squiz_Sniffs_Operators_ComparisonOperatorUsageSniff1< c Squiz_Sniffs_Objects_ObjectMemberCommaSniff3; g Squiz_Sniffs_Objects_ObjectInstantiationSniff9: s Squiz_Sniffs_Objects_DisallowObjectStringIndexSniff;9 w Squiz_Sniffs_NamingConventions_ValidVariableNameSniff;8 w Squiz_Sniffs_NamingConventions_ValidFunctionNameSniff67 m Squiz_Sniffs_NamingConventions_ConstantCaseSniff>6 } Squiz_Sniffs_Functions_MultiLineFunctionDeclarationSniff;5 w Squiz_Sniffs_Functions_LowercaseFunctionKeywordsSniff04 a Squiz_Sniffs_Functions_GlobalFunctionSniff;3 w Squiz_Sniffs_Functions_FunctionDuplicateArgumentSniff52 k Squiz_Sniffs_Functions_FunctionDeclarationSniffE1 	 Squiz_Sniffs_Functions_FunctionDeclarationArgumentSpacingSniff20 e Squiz_Sniffs_Formatting_OperatorBracketSniff+/ W Squiz_Sniffs_Files_FileExtensionSniff$. I Squiz_Sniffs_Debug_JSLintSniff,- Y Squiz_Sniffs_Debug_JavaScriptLintSniff), S Squiz_Sniffs_CSS_ShorthandSizeSniff,+ Y Squiz_Sniffs_CSS_SemicolonSpacingSniff#* G Squiz_Sniffs_CSS_OpacitySniff() Q Squiz_Sniffs_CSS_NamedColoursSniff(( Q Squiz_Sniffs_CSS_MissingColonSniff4' i Squiz_Sniffs_CSS_LowercaseStyleDefinitionSniff'& O Squiz_Sniffs_CSS_IndentationSniff+% W Squiz_Sniffs_CSS_ForbiddenStylesSniff0$ a Squiz_Sniffs_CSS_EmptyStyleDefinitionSniff0# a Squiz_Sniffs_CSS_EmptyClassDefinitionSniff4" i Squiz_Sniffs_CSS_DuplicateStyleDefinitionSniff4! i Squiz_Sniffs_CSS_DuplicateClassDefinitionSniff<  y Squiz_Sniffs_CSS_DisallowMultipleStyleDefinitionsSniff, Y Squiz_Sniffs_CSS_ColourDefinitionSniff( Q Squiz_Sniffs_CSS_ColonSpacingSniff< y Squiz_Sniffs_CSS_ClassDefinitionOpeningBraceSpaceSniff6 m Squiz_Sniffs_CSS_ClassDefinitionNameSpacingSniff< y Squiz_Sniffs_CSS_ClassDefinitionClosingBraceSpaceSniff; w Squiz_Sniffs_ControlStructures_SwitchDeclarationSniff> } Squiz_Sniffs_ControlStructures_LowercaseDeclarationSniff= { Squiz_Sniffs_ControlStructures_InlineIfDeclarationSniff< y Squiz_Sniffs_ControlStructures_ForLoopDeclarationSniffA  Squiz_Sniffs_ControlStructures_ForEachLoopDeclarationSniff; w Squiz_Sniffs_ControlStructures_ElseIfDeclarationSniff: u Squiz_Sniffs_ControlStructures_ControlSignatureSniff2 e Squiz_Sniffs_Commenting_VariableCommentSniff7 o Squiz_Sniffs_Commenting_PostStatementCommentSniff> } Squiz_Sniffs_Commenting_LongConditionClosingCommentSniff0 a Squiz_Sniffs_Commenting_InlineCommentSniff: u Squiz_Sniffs_Commenting_FunctionCommentThrowTagSniff   R  BYt:o1	qfY.



]
;
				R	 KTU'g:f7{Lw=[2                      (( Q PHPUnit_Framework_ExceptionWrapper!' C PHPUnit_Framework_Exception& ; PHPUnit_Framework_Error%% K PHPUnit_Framework_Error_Warning$$ I PHPUnit_Framework_Error_Notice(# Q PHPUnit_Framework_Error_Deprecated"" E PHPUnit_Framework_Constraint&! M PHPUnit_Framework_Constraint_Xor:  u PHPUnit_Framework_Constraint_TraversableContainsOnly6 m PHPUnit_Framework_Constraint_TraversableContains3 g PHPUnit_Framework_Constraint_StringStartsWith0 a PHPUnit_Framework_Constraint_StringMatches1 c PHPUnit_Framework_Constraint_StringEndsWith1 c PHPUnit_Framework_Constraint_StringContains+ W PHPUnit_Framework_Constraint_SameSize, Y PHPUnit_Framework_Constraint_PCREMatch% K PHPUnit_Framework_Constraint_Or5 k PHPUnit_Framework_Constraint_ObjectHasAttribute& M PHPUnit_Framework_Constraint_Not+ W PHPUnit_Framework_Constraint_LessThan. ] PHPUnit_Framework_Constraint_JsonMatchesD  PHPUnit_Framework_Constraint_JsonMatches_ErrorMessageProvider) S PHPUnit_Framework_Constraint_IsType) S PHPUnit_Framework_Constraint_IsTrue) S PHPUnit_Framework_Constraint_IsNull) S PHPUnit_Framework_Constraint_IsJson/ _ PHPUnit_Framework_Constraint_IsInstanceOf. ] PHPUnit_Framework_Constraint_IsIdentical* U PHPUnit_Framework_Constraint_IsFalse* U PHPUnit_Framework_Constraint_IsEqual*
 U PHPUnit_Framework_Constraint_IsEmpty-	 [ PHPUnit_Framework_Constraint_IsAnything. ] PHPUnit_Framework_Constraint_GreaterThan- [ PHPUnit_Framework_Constraint_FileExists9 s PHPUnit_Framework_Constraint_ExceptionMessageRegExp3 g PHPUnit_Framework_Constraint_ExceptionMessage0 a PHPUnit_Framework_Constraint_ExceptionCode, Y PHPUnit_Framework_Constraint_Exception( Q PHPUnit_Framework_Constraint_Count, Y PHPUnit_Framework_Constraint_Composite:  u PHPUnit_Framework_Constraint_ClassHasStaticAttribute4 i PHPUnit_Framework_Constraint_ClassHasAttribute+~ W PHPUnit_Framework_Constraint_Callback,} Y PHPUnit_Framework_Constraint_Attribute.| ] PHPUnit_Framework_Constraint_ArraySubset.{ ] PHPUnit_Framework_Constraint_ArrayHasKey&z M PHPUnit_Framework_Constraint_And-y [ PHPUnit_Framework_CodeCoverageException(x Q PHPUnit_Framework_BaseTestListener,w Y PHPUnit_Framework_AssertionFailedErrorv = PHPUnit_Framework_Assert'u O PHPUnit_Extensions_TicketListener&t M PHPUnit_Extensions_TestDecorator%s K PHPUnit_Extensions_RepeatedTest&r M PHPUnit_Extensions_PhptTestSuite%q K PHPUnit_Extensions_PhptTestCase'p O PHPUnit_Extensions_GroupTestSuite	o  barn  Am  Dumperl + PHP_CodeSnifferk 9 PHP_CodeSniffer_Tokens$j I PHP_CodeSniffer_Tokenizers_PHP#i G PHP_CodeSniffer_Tokenizers_JS$h I PHP_CodeSniffer_Tokenizers_CSS:g u Zend_Sniffs_NamingConventions_ValidVariableNameSniff'f O Zend_Sniffs_Files_ClosingTagSniff)e S Zend_Sniffs_Debug_CodeAnalyzerSniff8d q Squiz_Sniffs_WhiteSpace_SuperfluousWhitespaceSniff3c g Squiz_Sniffs_WhiteSpace_SemicolonSpacingSniff6b m Squiz_Sniffs_WhiteSpace_ScopeKeywordSpacingSniff4a i Squiz_Sniffs_WhiteSpace_ScopeClosingBraceSniff7` o Squiz_Sniffs_WhiteSpace_PropertyLabelSpacingSniff2_ e Squiz_Sniffs_WhiteSpace_OperatorSpacingSniff8^ q Squiz_Sniffs_WhiteSpace_ObjectOperatorSpacingSniff3] g Squiz_Sniffs_WhiteSpace_MemberVarSpacingSniff9\ s Squiz_Sniffs_WhiteSpace_LogicalOperatorSpacingSniff;[ w Squiz_Sniffs_WhiteSpace_LanguageConstructSpacingSniff2Z e Squiz_Sniffs_WhiteSpace_FunctionSpacingSniff<Y y Squiz_Sniffs_WhiteSpace_FunctionOpeningBraceSpaceSniff<X y Squiz_Sniffs_WhiteSpace_FunctionClosingBraceSpaceSniff:W u Squiz_Sniffs_WhiteSpace_ControlStructureSpacingSniff   m  m9Y([6h;gG!




v
U
8
					p	N	,	sBrbD/zf;yc@%~W&
rU6fB!|aR%                        ( Q ExceptionInAssertPreConditionsTest) S ExceptionInAssertPostConditionsTest  Error / EmptyTestCaseTest ) DummyException ) DoubleTestCase 3 DependencyTestSuite 7 DependencySuccessTest 7 DependencyFailureTest - DataProviderTest ; DataProviderSkippedTest 
 A DataProviderIncompleteTest	 9 DataProviderFilterTest 7 DataProviderDebugTest ' CustomPrinter % CoveredClass 1 CoveredParentClass( Q CoverageTwoDefaultClassAnnotations 1 CoveragePublicTest 7 CoverageProtectedTest 3 CoveragePrivateTest  7 CoverageNotPublicTest = CoverageNotProtectedTest~ 9 CoverageNotPrivateTest} 3 CoverageNothingTest| - CoverageNoneTest{ 1 CoverageMethodTest-z [ CoverageMethodParenthesesWhitespaceTest#y G CoverageMethodParenthesesTest)x S CoverageMethodOneLineAnnotationTestw 5 CoverageFunctionTest/v _ CoverageFunctionParenthesesWhitespaceTest%u K CoverageFunctionParenthesesTestt / CoverageClassTests ? CoverageClassExtendedTestr % ConcreteTest'q O ConcreteWithMyCustomExtensionTestp / ClassWithToString"o E ClassWithNonPublicAttributes(n Q ParentClassWithProtectedAttributes&m M ParentClassWithPrivateAttributes'l O ChangeCurrentWorkingDirectoryTestk ! Calculator
j  Book"i E BeforeClassAndAfterClassTesth 1 BeforeAndAfterTestg 9 BaseTestListenerSample(f Q BankAccountWithCustomExtensionTeste + BankAccountTestd # BankAccountc 5 BankAccountExceptionb  Authora % AbstractTest` - PHPUnit_Util_XML_ / PHPUnit_Util_Type$^ I PHPUnit_Util_TestSuiteIterator(] Q PHPUnit_Util_TestDox_ResultPrinter-\ [ PHPUnit_Util_TestDox_ResultPrinter_Text-[ [ PHPUnit_Util_TestDox_ResultPrinter_HTML)Z S PHPUnit_Util_TestDox_NamePrettifierY / PHPUnit_Util_TestX 3 PHPUnit_Util_StringW 1 PHPUnit_Util_RegexV 5 PHPUnit_Util_PrinterU - PHPUnit_Util_PHPT = PHPUnit_Util_PHP_WindowsS = PHPUnit_Util_PHP_DefaultR 5 PHPUnit_Util_Log_TAPQ 9 PHPUnit_Util_Log_JUnitP 7 PHPUnit_Util_Log_JSON(O Q PHPUnit_Util_InvalidArgumentHelperN = PHPUnit_Util_GlobalStateM 3 PHPUnit_Util_GetoptL 3 PHPUnit_Util_FilterK ; PHPUnit_Util_FilesystemJ ; PHPUnit_Util_FileloaderI ? PHPUnit_Util_ErrorHandler H A PHPUnit_Util_ConfigurationG 9 PHPUnit_Util_BlacklistF ? PHPUnit_TextUI_TestRunner"E E PHPUnit_TextUI_ResultPrinterD 9 PHPUnit_TextUI_CommandC 9 PHPUnit_Runner_Version,B Y PHPUnit_Runner_StandardTestSuiteLoader A A PHPUnit_Runner_Filter_Test/@ _ PHPUnit_Runner_Filter_GroupFilterIterator)? S PHPUnit_Runner_Filter_Group_Include)> S PHPUnit_Runner_Filter_Group_Exclude#= G PHPUnit_Runner_Filter_Factory< = PHPUnit_Runner_Exception#; G PHPUnit_Runner_BaseTestRunner: ? PHPUnit_Framework_Warning79 o PHPUnit_Framework_UnintentionallyCoveredCodeError!8 C PHPUnit_Framework_TestSuite.7 ] PHPUnit_Framework_TestSuite_DataProvider"6 E PHPUnit_Framework_TestResult#5 G PHPUnit_Framework_TestFailure 4 A PHPUnit_Framework_TestCase&3 M PHPUnit_Framework_SyntheticError-2 [ PHPUnit_Framework_SkippedTestSuiteError(1 Q PHPUnit_Framework_SkippedTestError'0 O PHPUnit_Framework_SkippedTestCase&/ M PHPUnit_Framework_RiskyTestError#. G PHPUnit_Framework_OutputError4- i PHPUnit_Framework_InvalidCoversTargetException0, a PHPUnit_Framework_InvalidCoversTargetError++ W PHPUnit_Framework_IncompleteTestError** U PHPUnit_Framework_IncompleteTestCase2) e PHPUnit_Framework_ExpectationFailedException   5 udO<$X4a9jC.^D)






c
A
1
					q	.	 ~W3u^G0pYB+~hR<&nV- uZ1kM/b5                               ) S MockeryTest_WithProtectedAndPrivate, Y MockeryTest_AbstractWithAbstractMethod # MockeryFoo4 # MockeryFoo3 + MockeryTestFoo2 ) MockeryTestFoo ; MockeryTest_UnsetMethod ; MockeryTest_IssetMethod 5 MockeryTestIsset_Foo 5 MockeryTestIsset_Bar0 a MockeryTest_ClassMultipleConstructorParams 9 MockeryTest_CallStatic ' ContainerTest3 g MockeryTest_NameOfExistingClassWithDestructor  A MockeryTest_NameOfAbstract% K MockeryTest_NameOfExistingClass / Mockery_AdhocTest  Mockery
 % StarshipTest	  Starship % CoveredClass 1 CoveredParentClass 9 ExceptionNamespaceTest % Util_XMLTest ' Util_TestTest% K Util_TestDox_NamePrettifierTest ) Util_RegexTest 5 Util_GlobalStateTest  9 Util_ConfigurationTest ? Runner_BaseTestRunnerTest~ % Issue797Test} % Issue765Test| % NewException{ # Issue74Testz % Issue581Testy % Issue503Testx % Issue498Testw % Issue445Testv % Issue433Testu % Issue322Testt = Issue244ExceptionIntCodes / Issue244Exceptionr % Issue244Testq ' Issue1570Testp ' Issue1472Testo ' Issue1471Testn ' Issue1468Testm ' Issue1437Testl ' Issue1374Testk ' Issue1351Testj 7 ChildProcessClass1351i ' Issue1348Testh ' Issue1340Testg ' Issue1337Testf ' Issue1335Teste ' Issue1330Testd ' Issue1265Testc ' Issue1216Testb ' Issue1149Testa  TwoTest` # ParentSuite_  OneTest^ ! ChildSuite] 5 Foo_Bar_Issue684Test\ % Issue578Test[  Issue523Z % Issue523TestY ' Issue1021Test X A Framework_TestListenerTest#W G Framework_TestImplementorTestV ? Framework_TestFailureTestU 9 Framework_TestCaseTestT 3 Framework_SuiteTestS = Framework_ConstraintTest*R U Framework_Constraint_JsonMatchesTest?Q  Framework_Constraint_JsonMatches_ErrorMessageProviderTestP 5 ExceptionMessageTest O A ExceptionMessageRegExpTestN  CountTest$M I Framework_BaseTestListenerTestL 5 Framework_AssertTest!K C Extensions_RepeatedTestTestJ  WasRunI = ThrowNoExceptionTestCaseH 9 ThrowExceptionTestCaseG ' TestIterator2F % TestIteratorE 3 TemplateMethodsTestD  SuccessC  StructB  StackTestA  Singleton@ # SampleClass? / SampleArrayAccess> - RequirementsTest#= G RequirementsClassDocBlockTest*< U RequirementsClassBeforeClassHookTest; - OverrideTestCase: ) OutputTestCase9 # OneTestCase8 + NotVoidTestCase7 / NotPublicTestCase6 # NothingTest#5 G NotExistingCoveredElementTest4 # NoTestCases3 + NoTestCaseClass2  NonStatic1 / NoArgTestCaseTest!0 C NamespaceCoveragePublicTest$/ I NamespaceCoverageProtectedTest". E NamespaceCoveragePrivateTest$- I NamespaceCoverageNotPublicTest', O NamespaceCoverageNotProtectedTest%+ K NamespaceCoverageNotPrivateTest!* C NamespaceCoverageMethodTest&) M NamespaceCoverageCoversClassTest,( Y NamespaceCoverageCoversClassPublicTest ' A NamespaceCoverageClassTest(& Q NamespaceCoverageClassExtendedTest% 3 MultiDependencyTest$ ! MockRunner# ' IsolationTest"  IniTest! / InheritedTestCase  % InheritanceB % InheritanceA ) IncompleteTest  FatalTest # FailureTest  Failure ' ExceptionTest 1 ExceptionStackTest + ExceptionInTest ; ExceptionInTearDownTest 5 ExceptionInSetUpTest   # }`:`GzP.fCfD"





c
G
-						}	a	A		{eG0
saN0}n[<zX@-_C)d'ziWE5#
f@#                     3 TestWithFinalWakeup" E MockClassWithFinalWakeupTest / InterfacePassTest 5 InstanceMockPassTest 5 CallTypeHintPassTest
  Type  Subset  NotAnyOf	  Not  MustBe + MatcherAbstract  HasValue  HasKey  Ducktype  Contains  Closure  AnyOf	  Any / RequireLoaderTest ) LoaderTestCase ) EvalLoaderTest ' RequireLoader
 ! EvalLoader	 / ClassNamePassTest9 s RemoveUnserializeForInternalSerializableClassesPass 5 RemoveDestructorPass* U RemoveBuiltinMethodsThatAreFinalPass 5 MethodDefinitionPass ' InterfacePass - InstanceMockPass  ClassPass ' ClassNamePass  - CallTypeHintPass 1 ClassWithMagicCall"~ E MockConfigurationBuilderTest} 5 ClassWithFinalMethod| # TestSubject{  TestFinalz 7 MockConfigurationTesty 5 UndefinedTargetClass!x C StringManipulationGeneratorw  Parameterv ) MockDefinitionu = MockConfigurationBuildert / MockConfigurations  Methodr 1 DefinedTargetClassq - CachingGeneratorp - RuntimeException$o I NoMatchingExpectationExceptionn 7 InvalidOrderExceptionm 7 InvalidCountExceptionl  Exceptionk  Exactj 9 CountValidatorAbstracti  AtMosth  AtLeast-g [ MockeryTest_ClassThatExtendsArrayObjectf 9 DefinedTargetClassTeste ; VerificationExpectationd 5 VerificationDirectorc  Undefinedb  Recordera 3 ReceivedMethodCalls
`  Mock_ ! MethodCall^  Loader] % Instantiator\ 3 ExpectationDirector[ # ExpectationZ  ExceptionY  ContainerX ' ConfigurationW 5 CompositeExpectationV % TestListenerU + MockeryTestCase!T C ClassWithPublicStaticGetter#S G ClassWithPublicStaticPropertyR = ClassWithGetterWithParamQ + ClassWithGetter"P E WithFormatterExpectationTestO 9 MockeryTestSubjectUserN 1 MockeryTestSubjectM % RecorderTestL ' NamedMockTestK - ClassWithMethodsJ 3 ClassWithNoToStringI / ClassWithToString-H [ ExampleClassForTestingNonExistentMethodG - Mockery_MockTestF 1 Mockery_LoaderTestE ; HamcrestExpectationTestD + MockeryTest_FooC 1 Mockery_UseDemeterB 5 Mockery_DemeterowskiA ; Mockery_Duck_Nonswimmer@ % Mockery_Duck? ! MyService2> = MockeryTest_InterMethod1= = MockeryTest_SubjectCall1< + ExpectationTest; - DemeterChainTest1: c MockeryTest_ClassThatImplementsSerializable49 i MockeryTest_ClassThatDescendsFromInternalClass98 s MockeryTest_MethodWithRequiredParamWithDefaultValue7 ? MockeryTest_PartialStatic$6 I MockeryTest_Lowercase_ToString5 5 EmptyConstructorTest%4 K MockeryTest_OldStyleConstructor$3 I MockeryTest_ImplementsIterator-2 [ MockeryTest_ImplementsIteratorAggregate1 = MockeryTest_WithToString&0 M MockeryTest_MockCallableTypeHint#/ G MockeryTest_TestInheritedType'. O MockeryTest_PartialAbstractClass2%- K MockeryTest_PartialNormalClass2&, M MockeryTest_PartialAbstractClass$+ I MockeryTest_PartialNormalClass* + MockeryTestRef1!) C MockeryTest_MethodParamRef2 ( A MockeryTest_MethodParamRef' ; MockeryTest_ReturnByRef& + MockeryTestBar1%  Gateway$  SoCool2# e MockeryTest_AbstractWithAbstractPublicMethod"" E MockeryTest_ExistingProperty! 3 MockeryTest_Wakeup1  / MockeryTest_Call2 / MockeryTest_Call1# G MockeryTest_ClassConstructor2" E MockeryTest_ClassConstructor   { j>u^>,fO/}eL7"x]B%





n
J
%
				f	?	qS+^D+	~bI(oXB&~Y@*wcU8&rbB3 jZ?        ) MockDefinition = MockConfigurationBuilder / MockConfiguration  Method 1 DefinedTargetClass - CachingGenerator - RuntimeException$ I NoMatchingExpectationException 7 InvalidOrderException 7 InvalidCountException  Exception  Exact 9 CountValidatorAbstract  AtMost  AtLeast- [ MockeryTest_ClassThatExtendsArrayObject 9 DefinedTargetClassTest
 ; VerificationExpectation	 5 VerificationDirector  Undefined  Recorder 3 ReceivedMethodCalls
  Mock ! MethodCall  Loader % Instantiator 3 ExpectationDirector  # Expectation  Exception~  Container} ' Configuration| 5 CompositeExpectation{ % TestListenerz + MockeryTestCase!y C ClassWithPublicStaticGetter#x G ClassWithPublicStaticPropertyw = ClassWithGetterWithParamv + ClassWithGetter"u E WithFormatterExpectationTestt 9 MockeryTestSubjectUsers 1 MockeryTestSubjectr % RecorderTestq ' NamedMockTestp - ClassWithMethodso 3 ClassWithNoToStringn / ClassWithToString-m [ ExampleClassForTestingNonExistentMethodl - Mockery_MockTestk 1 Mockery_LoaderTestj ; HamcrestExpectationTesti + MockeryTest_Fooh 1 Mockery_UseDemeterg 5 Mockery_Demeterowskif ; Mockery_Duck_Nonswimmere % Mockery_Duckd ! MyService2c = MockeryTest_InterMethod1b = MockeryTest_SubjectCall1a + ExpectationTest` - DemeterChainTest1_ c MockeryTest_ClassThatImplementsSerializable4^ i MockeryTest_ClassThatDescendsFromInternalClass9] s MockeryTest_MethodWithRequiredParamWithDefaultValue\ ? MockeryTest_PartialStatic$[ I MockeryTest_Lowercase_ToStringZ 5 EmptyConstructorTest%Y K MockeryTest_OldStyleConstructor$X I MockeryTest_ImplementsIterator-W [ MockeryTest_ImplementsIteratorAggregateV = MockeryTest_WithToString&U M MockeryTest_MockCallableTypeHint#T G MockeryTest_TestInheritedType'S O MockeryTest_PartialAbstractClass2%R K MockeryTest_PartialNormalClass2&Q M MockeryTest_PartialAbstractClass$P I MockeryTest_PartialNormalClassO + MockeryTestRef1!N C MockeryTest_MethodParamRef2 M A MockeryTest_MethodParamRefL ; MockeryTest_ReturnByRefK + MockeryTestBar1J  GatewayI  SoCool2H e MockeryTest_AbstractWithAbstractPublicMethod"G E MockeryTest_ExistingPropertyF 3 MockeryTest_Wakeup1E / MockeryTest_Call2D / MockeryTest_Call1#C G MockeryTest_ClassConstructor2"B E MockeryTest_ClassConstructor)A S MockeryTest_WithProtectedAndPrivate,@ Y MockeryTest_AbstractWithAbstractMethod? # MockeryFoo4> # MockeryFoo3= + MockeryTestFoo2< ) MockeryTestFoo; ; MockeryTest_UnsetMethod: ; MockeryTest_IssetMethod9 5 MockeryTestIsset_Foo8 5 MockeryTestIsset_Bar07 a MockeryTest_ClassMultipleConstructorParams6 9 MockeryTest_CallStatic5 ' ContainerTest34 g MockeryTest_NameOfExistingClassWithDestructor 3 A MockeryTest_NameOfAbstract%2 K MockeryTest_NameOfExistingClass1 / Mockery_AdhocTest0  Mockery/ % StarshipTest.  Starship- 9 Evenement_EventEmitter, ' GeneratorTest+  SpyTest* ? TestWithVariadicArguments") E MockingVariadicArgumentsTest( = TestWithProtectedMethods!' C MockingProtectedMethodsTest$& I TestWithParameterAndReturnType(% Q MockingParameterAndReturnTypesTest'$ O HasUnknownClassAsTypeHintOnMethod&# M MockClassWithUnknownTypeHintTest" 9 TestWithNonFinalWakeup! ; SubclassWithFinalWakeup   z xcEpB$qVI:)}_A& xM!




i
X
A
!
							y	`	M	2		~nYF8&q`P?.wgRA0 kZI7'u`O>,zjUD3!~m[K6%z                L  PersonK  AddressJ  PersonI  AddressH  PersonG  AddressF # PhoneNumberE  PersonD  InternetC  CompanyB  AddressA # PhoneNumber@  Person?  Internet>  Address= # PhoneNumber<  Person;  Company:  Address9 # PhoneNumber8  Person7  Internet6 # PhoneNumber5  Person4  Internet3  Company2  Address1 # PhoneNumber0  Person/  Internet.  Company-  Address, # PhoneNumber+  Person*  Internet)  Company(  Address' # PhoneNumber&  Person%  Internet$  Company#  Address" # PhoneNumber!  Person   Internet  Company  Address # PhoneNumber  Person  Internet  Company  Address # PhoneNumber  Person  Internet  Company  Address # PhoneNumber  Person  Internet  Company  Address # PhoneNumber  Person  Company  Address
 # PhoneNumber	  Person  Company  Address # PhoneNumber  Person  Company  Address # PhoneNumber  Internet   Address # PhoneNumber~  Address} # PhoneNumber|  Person{  Internetz  Companyy  Addressx  Personw  Addressv # PhoneNumberu  Persont  Internets  Companyr  Addressq # PhoneNumberp  Persono  Internetn # PhoneNumberm  Personl  Internet
k  Uuidj  UserAgenti # PhoneNumberh  Persong ' Miscellaneousf  Loreme  Internet
d  Filec  DateTimeb  Company
a  Base`  Address_  Populator^ + EntityPopulator] / ColumnTypeGuesser\  Populator[ + EntityPopulatorZ / ColumnTypeGuesserY  PopulatorX + EntityPopulatorW / ColumnTypeGuesser
V  NameU  GeneratorT  FactoryS ! DocumentorR 9 Evenement_EventEmitterQ ' GeneratorTestP  SpyTestO ? TestWithVariadicArguments"N E MockingVariadicArgumentsTestM = TestWithProtectedMethods!L C MockingProtectedMethodsTest$K I TestWithParameterAndReturnType(J Q MockingParameterAndReturnTypesTest'I O HasUnknownClassAsTypeHintOnMethod&H M MockClassWithUnknownTypeHintTestG 9 TestWithNonFinalWakeupF ; SubclassWithFinalWakeupE 3 TestWithFinalWakeup"D E MockClassWithFinalWakeupTestC / InterfacePassTestB 5 InstanceMockPassTestA 5 CallTypeHintPassTest
@  Type?  Subset>  NotAnyOf	=  Not<  MustBe; + MatcherAbstract:  HasValue9  HasKey8  Ducktype7  Contains6  Closure5  AnyOf	4  Any3 / RequireLoaderTest2 ) LoaderTestCase1 ) EvalLoaderTest0 ' RequireLoader/ ! EvalLoader. / ClassNamePassTest9- s RemoveUnserializeForInternalSerializableClassesPass, 5 RemoveDestructorPass*+ U RemoveBuiltinMethodsThatAreFinalPass* 5 MethodDefinitionPass) ' InterfacePass( - InstanceMockPass'  ClassPass& ' ClassNamePass% - CallTypeHintPass$ 1 ClassWithMagicCall"# E MockConfigurationBuilderTest" 5 ClassWithFinalMethod! # TestSubject   TestFinal 7 MockConfigurationTest 5 UndefinedTargetClass! C StringManipulationGenerator  Parameter   ) pW@+ yeG0	fVD0yQ.p[D+	




_
8
						e	G	2		dCfI/kN:(g< }Z=ycJ4hK#u`H)       Y 7 TwitterBootstrap3ViewX ) OptionableViewW # DefaultViewV ! Pagerfanta$U I OutOfRangeCurrentPageException!T C NotValidMaxPerPageException"S E NotValidCurrentPageException#R G NotIntegerMaxPerPageException$Q I NotIntegerCurrentPageExceptionP 3 NotBooleanExceptionO ) LogicException"N E LessThan1MaxPerPageException#M G LessThan1CurrentPageExceptionL = InvalidArgumentExceptionK + SolariumAdapterJ ' PropelAdapterI # NullAdapterH % MongoAdapterG + MandangoAdapterF % FixedAdapterE + ElasticaAdapterD ? DoctrineSelectableAdapterC 1 DoctrineORMAdapterB ; DoctrineODMPhpcrAdapterA ? DoctrineODMMongoDBAdapter$@ I DoctrineDbalSingleTableAdapter? 3 DoctrineDbalAdapter> ? DoctrineCollectionAdapter= + CallbackAdapter< % ArrayAdapter; % ViewTestCase: + ViewFactoryTest9 = TwitterBootstrapViewTest8 ? TwitterBootstrap3ViewTest7 1 OptionableViewTest'6 O DefaultViewWithCustomTemplateTest5 + DefaultViewTest4 ) PagerfantaTest3 / IteratorAggregate
2  User1  Group0  Category/  Person.  Author-  BlogPost, ! MyCategory+  MyAuthor* ! MyBlogPost) 3 DoctrineORMTestCase( 3 SolariumAdapterTest' 5 Solarium3AdapterTest& 5 Solarium2AdapterTest% / PropelAdapterTest$ + NullAdapterTest# - MongoAdapterTest" 3 MandangoAdapterTest! - FixedAdapterTest  3 ElasticaAdapterTest# G DoctrineSelectableAdapterTest 9 DoctrineORMAdapterTest! C DoctrineODMPhpcrAdapterTest# G DoctrineODMMongoDBAdapterTest 5 DoctrineDbalTestCase( Q DoctrineDbalSingleTableAdapterTest ; DoctrineDbalAdapterTest# G DoctrineCollectionAdapterTest 3 CallbackAdapterTest - ArrayAdapterTest = TwitterBootstrapTemplate ? TwitterBootstrap3Template  Template + DefaultTemplate # ViewFactory 5 TwitterBootstrapView 7 TwitterBootstrap3View ) OptionableView # DefaultView ! Pagerfanta$ I OutOfRangeCurrentPageException!
 C NotValidMaxPerPageException"	 E NotValidCurrentPageException# G NotIntegerMaxPerPageException$ I NotIntegerCurrentPageException 3 NotBooleanException ) LogicException" E LessThan1MaxPerPageException# G LessThan1CurrentPageException = InvalidArgumentException + SolariumAdapter  ' PropelAdapter # NullAdapter~ % MongoAdapter} + MandangoAdapter| % FixedAdapter{ + ElasticaAdapterz ? DoctrineSelectableAdaptery 1 DoctrineORMAdapterx ; DoctrineODMPhpcrAdapterw ? DoctrineODMMongoDBAdapter$v I DoctrineDbalSingleTableAdapteru 3 DoctrineDbalAdaptert ? DoctrineCollectionAdapters + CallbackAdapterr % ArrayAdapterq / SpeedTrapListenerp / SpeedTrapListenero  TestFilen ! GitCommandm  JsonFilel  CiInfok + ApplicationTestj # Applicationi 3 TestReporterCommandh  Versiong / CoverageCollectorf  ApiCliente + TestableCompanyd # CompanyTestc  UuidTestb ' UserAgentTesta 5 ProviderOverrideTest` ! PersonTest_ ' TestableLorem^  LoremTest] - LocalizationTest\  BaseTest[ % IsValidSiretZ / IsValidSirenSiretY % IsValidSirenX # BarProviderW # FooProviderV ' GeneratorTestU + TransliterationT # PhoneNumberS  PersonR  InternetQ  CompanyP  AddressO # PhoneNumberN  PersonM  Internet    ]C&mH(z_A#}k\N3v]G5






|
l
\
M
;
							}	g	N	>		jJ8&}Z=g6$ nW4jK1|bA%                                                                                                                                                                                                                                                                                                                                                                                                                                     [ 1!PasswordVerifyTestZ ;!PasswordNeedsRehashTestY -!PasswordHashTestX 3!PasswordGetInfoTestW 1!PasswordVerifyTestV ;!PasswordNeedsRehashTestU -!PasswordHashTestT 3!PasswordGetInfoTestS )!Session_DriverR 3!WhirlpoolHasherTestQ -!Sha256HasherTestP !!SentryTestO /!NativeSessionTestN -!NativeHasherTestM -!NativeCookieTestL 7!IlluminateSessionTestK 5!IlluminateCookieTestJ 1!FuelPHPSessionTestI /!FuelPHPCookieTestH -!EloquentUserTestG =!EloquentUserProviderTestF 5!EloquentThrottleTestE /!EloquentGroupTestD ?!EloquentGroupProviderTestC '!CISessionTestB %!CICookieTestA -!BcryptHasherTest@ )!UserModelStub2? )!UserModelStub1> +!GroupModelStub2= +!GroupModelStub1< !Cookie; !!CI_Session: !CI_Input-9 [!MigrationCartalystSentryInstallThrottle58 k!MigrationCartalystSentryInstallUsersGroupsPivot+7 W!MigrationCartalystSentryInstallGroups*6 U!MigrationCartalystSentryInstallUsers
5 !User4 !Provider3 9!WrongPasswordException2 3!UserExistsException1 ?!UserNotActivatedException0 7!UserNotFoundException#/ G!UserAlreadyActivatedException. ?!PasswordRequiredException- 9!LoginRequiredException
, !User+ !Provider* !Throttle) !Provider( 9!UserSuspendedException' 3!UserBannedException& !
Throttle% !
Provider$ '!	NativeSession# '!	KohanaSession" /!	IlluminateSession! )!	FuelPHPSession  !	CISession 7!SentryServiceProvider !Sentry +!WhirlpoolHasher %!Sha256Hasher %!NativeHasher %!BcryptHasher !!BaseHasher !Provider !Group 7!NameRequiredException 9!GroupNotFoundException 5!GroupExistsException !Provider !Group !Sentry !Sentry !Sentry ! Sentry  Facade 1 ConnectionResolver  Sentry
 % NativeCookie	 % KohanaCookie - IlluminateCookie ' FuelPHPCookie  CICookie % ViewTestCase + ViewFactoryTest = TwitterBootstrapViewTest ? TwitterBootstrap3ViewTest 1 OptionableViewTest'  O DefaultViewWithCustomTemplateTest + DefaultViewTest~ ) PagerfantaTest} / IteratorAggregate
|  User{  Groupz  Categoryy  Personx  Authorw  BlogPostv ! MyCategoryu  MyAuthort ! MyBlogPosts 3 DoctrineORMTestCaser 3 SolariumAdapterTestq 5 Solarium3AdapterTestp 5 Solarium2AdapterTesto / PropelAdapterTestn + NullAdapterTestm - MongoAdapterTestl 3 MandangoAdapterTestk - FixedAdapterTestj 3 ElasticaAdapterTest#i G DoctrineSelectableAdapterTesth 9 DoctrineORMAdapterTest!g C DoctrineODMPhpcrAdapterTest#f G DoctrineODMMongoDBAdapterTeste 5 DoctrineDbalTestCase(d Q DoctrineDbalSingleTableAdapterTestc ; DoctrineDbalAdapterTest#b G DoctrineCollectionAdapterTesta 3 CallbackAdapterTest` - ArrayAdapterTest_ = TwitterBootstrapTemplate^ ? TwitterBootstrap3Template]  Template\ + DefaultTemplate[ # ViewFactoryZ 5 TwitterBootstrapView   ~ |gI1sP-
hM7gK3]?'





k
S
:
 					}	f	U	>	#	jG&oR1{Y8jB! lH(lR2pO3pT7  ~ yiisoftyii2V (	} myclabsdeep-copyV '| #codeceptionspecifyV '{ #codeceptionverifyV '	z #symfonydom-crawlerV &y %symfonycss-selectorV &x #symfonybrowser-kitV &w %psrhttp-messageV &v !guzzlehttppsr7V &u !guzzlehttppromisesV &t !guzzlehttpguzzleV &s facebookwebdriverV &r ##codeceptioncodeceptionV &q 'php-diphpdoc-readerV $p php-diinvokerV #o php-diphp-diV #n !mnapolifront-yamlV #m phinepathV #l phineobserverV #k phineexceptionV #j phinepharV #i +erusevparsedown-extraV #h phpspecphp-diffV #jg phpspecphpspecV #]f ##znframeworkznframeworkV #,e %hamcresthamcrest-phpV "d mockerymockeryV "c 'zendframeworkzend-dbV ")b '3zendframeworkzend-authenticationV "a 'zendframeworkzend-domV "g"` '%zendframeworkzend-consoleV "e_ 'zendframeworkzend-testV "/(^ '1zendframeworkzend-modulemanagerV "] 'zendframeworkzend-logV !'\ 9zfcampuszf-content-negotiationV !a[ 'zendframeworkzend-viewV ![Z )zfcampuszf-api-problemV !'&Y '-zendframeworkzend-inputfilterV !	X 'zendframeworkzend-formV !W 'zendframeworkzend-mvcV  $V ')zendframeworkzend-validatorV  U 'zendframeworkzend-uriV  !T '#zendframeworkzend-loaderV  "S '%zendframeworkzend-escaperV  R 'zendframeworkzend-httpV   Q '!zendframeworkzend-cryptV  "P /bshafferoauth2-server-phpV  O mikey179vfsStreamV  N mikey179vfsstreamV  M guzzleguzzleV  L 'satooshiphp-coverallsV  !K +squizlabsphp_codesnifferV  J )zetacomponentsdocumentV  I )zetacomponentsbaseV  !H '#zendframeworkzend-stdlibV  )G '3zendframeworkzend-servicemanagerV  |%F '+zendframeworkzend-serializerV  zE 'zendframeworkzend-mathV  xD 'zendframeworkzend-jsonV  uC 'zendframeworkzend-i18nV  q!B '#zendframeworkzend-filterV  n'A '/zendframeworkzend-eventmanagerV  i!@ '#zendframeworkzend-configV  g ? '!zendframeworkzend-cacheV  d> twigtwigV  `= symfonyvalidatorV  [< #symfonytranslationV  W; symfonystopwatchV  T: seldjsonlintV  ;9 psrlogV  88 pimplepimpleV  67 phpoptionphpoptionV  4 6 '!phpdocumentorreflectionV  15 'phpdocumentorgraphvizV  *4 'phpdocumentorfilesetV  (#3 ''phpcollectionphpcollectionV  &2 !nikicphp-parserV  $1 monologmonologV  "0 khergeversionV   !/ '#justinrainbowjson-schemaV  . !jmsserializerV  - !jmsparser-libV  , jmsmetadataV  + !#herrera-iophar-updateV  * !herrera-iojsonV  ) erusevparsedownV  ( doctrinelexerV  ' #doctrineannotationsV  +& //container-interopcontainer-interopV  &% =cilexconsole-service-providerV  
$ cilexcilexV  	## ''phpdocumentorphpdocumentorV " pdependpdependV ! phpmdphpmdV   symfonyprocessV  symfonyfinderV  !symfonyfilesystemV $ 5symfonydependency-injectionV  symfonyconsoleV  symfonyconfigV |( Apiecestagehand-componentfactoryV u) Cpiecestagehand-alterationmonitorV r" 5piecestagehand-testrunnerV h symfonyyamlV c sebastianversionV a %sebastianglobal-stateV ^ #sebastianenvironmentV Z$ 5phpunitphpunit-mock-objectsV T  -phpunitphp-token-streamV O phpunitphp-timerV M! /phpunitphp-text-templateV K! /phpunitphp-file-iteratorV H! /phpunitphp-code-coverageV F phpspecprophecyV D) '3phpdocumentorreflection-docblockV B %doctrineinstantiatorV A
 phpunitphpunitV 9#	 /sebastianrecursion-contextV 8 sebastianexporterV 6 sebastiandiffV 4 !sebastiancomparatorV 2 phakephakeV -# 3symfonyexpression-languageV '  -symfonyevent-dispatcherV # 'piecestagehand-fsmV  !#phpmentorsdomain-kataV     _EpT,jR: kL2z`C'




f
A
-
					w	W	:	q>w[=#xYA)cJ/eE'pU>+lE-vY,          ehoughmockeryV c*~ %7yahnis-elstsplugin-update-checkerV c} !puzzlehttpstreamsV c| !puzzlehttppuzzleV c{ !ehoughtemplatingV cz !ehoughtickertapeV cy ehoughstashV cx ehoughpulsarV cw ehoughiconicV cv !ehoughfilesystemV cu ehoughfinderV c$t %+mobiledetectmobiledetectlibV cs +traqmarkdown-pluginV cc"r 3avalondatabase-migrationsV caq avalonframeworkV c^p nettetesterV cVo netteutilsV cTn 'nettephp-generatorV cQm netteneonV cOl nettediV cDk yadakhovtorV cCj !nikicfast-routeV c!i +mtdowlingcron-expressionV c	h !illuminateviewV bg !!illuminatevalidationV bf !#illuminatetranslationV be !illuminatesessionV bd !illuminatequeueV bc !illuminatepipelineV bb !!illuminatepaginationV ba !illuminatehttpV b` !illuminatehashingV b_ !illuminateeventsV b^ !!illuminateencryptionV b] !illuminatedatabaseV b\ !illuminatecookieV b[ !illuminateconsoleV bzZ !illuminatecacheV bkY !illuminatebusV bgX !%illuminatebroadcastingV beW !illuminateauthV b^V +laravellumen-frameworkV b'%U 5php-mockphp-mock-integrationV aT php-mockphp-mockV a!S -php-mockphp-mock-phpunitV aR malkuschlockV aQ yoastyoastcsV AP )xrstfcomposer-php52V AO yoastapi-libsV AN #yoasti18n-moduleV AM +yoastlicense-managerV AL psypsyshV AK behatgherkinV @J behatbehatV @I nboxymelV @H rmccuerequestsV @G %ramseyarray_columnV @F mustachemustacheV @E 'wp-cliphp-cli-toolsV @ D 3wp-coding-standardswpcsV @z"C /wpackagist-pluginwp-sweepV ?,B /1wpackagist-pluginwordpress-importerV ?.A /5wpackagist-plugintiny-compress-imagesV ?0@ /9wpackagist-pluginadvanced-custom-fieldsV ?? vlucasphpdotenvV ?> !symfonyvar-dumperV ?= rootssoilV ?+< !=johnpblochwordpress-core-installerV ?; !johnpblochwordpressV ?,: !?jjgraingerwp-custom-post-type-classV ?9 !illuminatesupportV ?8 !!illuminatefilesystemV ?7 !illuminatecontractsV ?6 !illuminatecontainerV ?5 !illuminateconfigV ?4 'danielstjulesstringyV ?3 !composerinstallersV ?2 wordplateframeworkV ?1 diffdiffV ?"0 #)bombayworkszendframework1V ?t%/ 3mybuilderphpunit-acceleratorV ?C. 'leagueoauth2-clientV >- 'leagueoauth1-clientV >!, 1webinyforked-jamm-memoryV >+ sendgridsmtpapiV >* sendgridsendgridV >) mandrillmandrillV >( #minimeannotationsV >' imagineimagineV >& #awsaws-sdk-phpV >% smartysmartyV >$ doctrineormV ># doctrineinflectorV >l" doctrinecommonV >j! #doctrinecollectionsV >h  doctrinecacheV >e symfonysymfonyV >E %michelfphp-markdownV = %interventionimageV = wardrobecoreV = 'symfonysecurity-coreV = #symfonyhttp-kernelV =u +symfonyhttp-foundationV =q symfonydebugV =_ ##swiftmailerswiftmailerV =N stackbuilderV =L predispredisV =F phpseclibphpseclibV =A patchworkutf8V =? nesbotcarbonV =; !%jeremeamiaSuperClosureV =/! +ircmaxellpassword-compatV =, filpwhoopsV =* d11wtqborisV =(% ))classpreloaderclasspreloaderV =& laravelframeworkV < #symfonytwig-bridgeV <
 symfonyroutingV <	 +symfonyproperty-accessV <  -symfonyoptions-resolverV < symfonyintlV < symfonyformV <' 9umpirskytwig-gettext-extractorV < !twigextensionsV < %kartik-vyii2-widgetsV (  -rmrevinyii2-fontawesomeV ( 'almasaeed2010adminlteV (  'cebeyii2-gravatarV ( )yiisoftyii2-bootstrapV (    v[7	gL/_;wV= 	u]>







l
M
+
						p	Z	4	lT5d>fG1{U;xdI({Z@&yU*cG2              ~ evenementevenementV@} reacthttpV@q| netcarvertextileV@i&{ 9dflydevsymfony-finder-factoryV@S&z 9dflydevembedded-composer-coreV@P)y ?dflydevembedded-composer-consoleV@L$x 5dflydevplaceholder-resolverV@Jw +dflydevdot-access-dataV@I(v =dflydevdot-access-configurationV@>!u #'webignitionstring-parserV@<!t #'webignitionquoted-stringV@:'s #3webignitioninternet-media-typeV@8r dflydevcanalV@,!q /dflydevapache-mime-typesV@% p -dflydevant-path-matcherV@o !seldphar-utilsV@n !seldcli-promptV@
m 'composerspdx-licensesV@l composersemverV@k composercomposerV?j doctrinedbalV?Zi +jmsphp-manipulatorV?"h 9jmscomposer-deps-analyzerV?g #scrutinizerutilsV?f 'doctrinedata-fixturesV>e !cradaphp-apidocV>d sabreuriV>%c 3sebastianresource-operationsV>b sabrecsV=#a !-mikehaertlphp-shellcommandV"` 5asm89twig-cache-extensionV_ !!altorouteraltorouterV^ #upstatementroutesV] evertphpdoc-mdV#\ ''zendframeworkzend-hydratorV[ %rhumsaaarray_columnV?Z wp-cliwp-cliV/Y !!pagerfantapagerfantaV<"X /johnkaryphpunit-speedtrapV+W !fzaninottofakerVV +boltpackage-wrapperVfU boltdumperVaT %theseerfdomdocumentVSS 'sebastianfinder-facadeVER sebastianphpcpdV<&Q =m6websymfony2-coding-standardV(P ;lstrojnyphpunit-function-mockerVO #boltcodingstyleV!)N =lexpressmongodb-service-providerV#M 3symfonyweb-profiler-bundleV[L %silexweb-profilerV#K silexsilexVJ phingphingV'I '/jakub-onderkaphp-parallel-lintV!mH %ircmaxellsecurity-libV!1G !ircmaxellrandom-libV!*F %ramseyuuid-consoleV! E 'ramseyuuid-doctrineV!D mthamlmthamlV.C %ext-mbstringVB !ext-bcmathVA malkuschphp-indexVk@ malkuschbavV]? hoastringV> hoarulerV= phpofficephpexcelVo< 'zendframeworkzendxmlVm#; ''zendframeworkzendframeworkV5: atoumatoumV9 hoaustringV8 hoaregexV %7 '+zendframeworkzenddiagnosticsV"6 '%zendframeworkzend-versionV5 'zendframeworkzend-textV4 'zendframeworkzend-fileV3 'zendframeworkzend-codeV2 'zendframeworkzftoolV1 hoavisitorV0 hoastreamV/ hoamathV. hoaiteratorV- hoafileV, hoacoreV+ hoacompilerVx* phpunitdbunitV$) ')zendframeworkzend-diactorosV( %egeloenhttp-adapterV' reactpromiseV& !guzzlehttpringphpV% !lericphp-thriftV'$ =munkieelasticsearch-thrift-phpV # fuelphpuploadV װ" tedivmjshrinkV i*! khergeamendV i  !herrera-ioversionV i !herrera-ioboxV i
 !#herrera-ioannotationsV i khergeboxV h +eguliasemail-validatorV h moontoastmathV hP% #/codeclimatephp-test-reporterV g raverenkintV g !waygeneratorsV gJ maximebfdebugbarV g=! -barryvdhlaravel-debugbarV g  %#thomasweltongravatarlibV g% %-thomasweltonlaravel-gravatarV f roumensitemapV f msurguyhoneypotV f laracastsutilitiesV f jwageeasy-csvV f rollbarrollbarV f !jenssegersrollbarV e leagueflysystemV e! !)heybignamebackup-managerV e !guzzlehttpstreamsV e
 eluceoicalV e"	 '%edvinaskrucasnotificationV eC# 5dimsavlaravel-translatableV e3+ +3davejamesmillerlaravel-breadcrumbsV d! +cviebrockimage-validatorV d cartalystsentryV d weotchphpthumbV d bkwldcroppaV d %fabpotphp-cs-fixerV dy ircmaxellphp-cfgV d*  %symfonyclass-loaderV c    pY)}`=rL, lP2y_G'





y
c
G
0
						o	V	;		`@#
|_B(|^?$	qS+}gT2 |fQ6#xH&
|ZD  ) #7henrikbjornphpspec-code-coverageVp geshigeshiV 'phpdocumentorflyfinderV leagueeventV webmozartassertV  leaguetacticianVӻ tedivmstashVӶ'~ '/phpdocumentorreflection-commonVӫ} #desarrolla2cacheVӄ| -leagueflysystem-memoryVD-{ Kcoduophpspec-data-provider-extensionVmz %!pomm-projectfoundationVmy ruflinelasticaVm{"x %'pomm-projectmodel-managerVmy#w ''elasticsearchelasticsearchVm_v hoaxylVmu hoaxmlVmt hoaviewVm	s %hoastringbufferVmr hoarouterVlq hoarealdomVlp hoapraspelVlo hoalocaleVln hoahttpVlm !hoadispatcherVll hoadevtoolsVlk hoaconsoleVlj hoacliVli +atoumruler-extensionVlh /atoumpraspel-extensionVlg hoatestVlf maknzslackVk"e !+anahkiasenrocketeer-slackVjd rcrowecampfireVjc kzykhysparallelVjb !illuminateremoteVja !illuminatelogVj` !anahkiasenrocketeerVj]%_ !1anahkiasenrocketeer-campfireVjI^ phpmailerphpmailerVj7] )romeozrock-behaviorsVj \ %romeozrock-widgetsVi[ %romeozrock-executeViZ 'romeozrock-templateViY #romeozrock-accessViX romeozrock-i18nViW romeozrock-dateViV 'romeozrock-validateViU %romeozrock-sessionViT 'romeozrock-securityViS romeozrock-csrfViR romeozrock-urlVi~Q 'romeozrock-sanitizeVi|P %romeozrock-requestViqO !lusitanianoauthVi*N !mibefeedwriterVi$M %tackkcartographerViL #romeozrock-morphyViK ##videlalvarophp-amqplibViJ romeozrock-mqVhI cebemarkdownVhH 'romeozrock-markdownVhG !romeozrock-imageVhF romeozrock-dbVhE #romeozrock-sphinxVhD )romeozrock-db-commonVhC +romeozrock-componentsVhB %romeozrock-mongodbVhA !romeozrock-cacheVh@ #romeozrock-eventsVh'? =leagueflysystem-cached-adapterVh> romeozrock-fileVh= %romeozrock-helpersVhS< romeozrock-baseVhO; romeozrock-diVhH: #henrikbjornlurkerVh49 goaopframeworkVh8 ##codeceptionaspect-mockVg7 #codeceptionbaseVg6 natxetCssMinVg5 natxetcssminVg4 patchworkjsqueezeVg3 j4mieidiormVg2 !redaxmediatocgenVf1 tracytracyVf0 nettesecurityVf/ #nettesafe-streamVf~. %netterobot-loaderVf|- !nettereflectionVfz, nettemailVfr+ nettehttpVfp* nettefinderVfo) +nettecomponent-modelVfk( nettecachingVfi' nettebootstrapVfg& #netteapplicationVfd% lattelatteVfa$ kukulichfshlVf]# kdybyeventsVf\" 'apigentheme-defaultVfQ! +apigentheme-bootstrapVfO  apigenapigenVf= 'reactsocket-clientVeQ #reacthttp-clientVeH reactdnsVeA 'reactchild-processVe@ reactcacheVe> reactreactVe1 cakephpcakephpVd: jakubledldissectVd6) %5andrewsvillephp-token-reflectionVd1 !!lisachenkogo-aop-phpVd+# 3cakephpcakephp-codesnifferVd" maxvusliverVF %silverstripeframeworkVFS  -mnapoliphpunit-easymockVF%. !Csensiolabsbehat-page-object-extensionVD fabpotgoutteVD$ 9behatmink-browserkit-driverVD  1behatmink-goutte-driverVD 'kriswallsmithbuzzVD #behatsahi-clientVD~ -behatmink-sahi-driverVDq
 )behatmink-extensionVD-	 behatminkVD )behattransliteratorVC cartalystsupportVB- Gsculpinsculpin-theme-composer-pluginV@ reactstreamV@ reactsocketV@ !reactevent-loopV@ guzzlestreamV@ guzzleparserV@  guzzlehttpV@ guzzlecommonV@   n _:R/x_A!b6xO+	




n
R
7
					}	_	I	&	}V3~J0yW(pV<Gv\B*kS/lA                                                 )s '3phpdocumentortemplate-responsiveV-(r '1phpdocumentortemplate-old-oceanV-(q '1phpdocumentortemplate-new-blackV-$p ')phpdocumentortemplate-cleanV-)o '3phpdocumentortemplate-checkstyleV-'n '/phpdocumentortemplate-abstractV-m dflydevmarkdownV-ۨ!l !)jakeasmithhttp_build_urlV-rk banagobridgeV-ij #halleck45php-metricsV-i corneltekuniversalV'bh %corneltekgetoptionkitV'^g corneltekcodegenV']f %corneltekcliframeworkV'Z e )corneltekclass-templateV'Xd corneltekpuxV'Gc gitonomygitlibV'b codacycoverageV''a ;anomalystreams-composer-pluginV g1` Oanomalystreams_ace_integration-extensionV c6_ Yanomalystreams_ckeditor_integration-extensionV `7^ [anomalyusers_module_activation_check-extensionV ^<] eanomalyusers_module_default_authenticator-extensionV [4\ Uanomalyusers_module_blocked_check-extensionV X[ leagueurlV U Z +graham-campbellsecurityV  Y +graham-campbellbinputV #X 1barryvdhlaravel-ide-helperV W laracastsflashV V !illuminatehtmlV XU reactzmqV TT cbodenratchetV &S 'paragonierandom_compatV 
s$R %+benconstablephpspec-laravelV 
2'Q '/jeremykendallphp-domain-parserV 	P cocurslugifyV 	,O Aincenteevcomposer-parameter-handlerV 	N -sensiogenerator-bundleV 	V%M 9sensioframework-extra-bundleV "L 3sensiodistribution-bundleV K 'kriswallsmithasseticV eJ )symfonyassetic-bundleV L&I #1whatthejeffnyancat-scoreboardV H #whatthejefffabV 1G #Gwhatthejeffnyancat-phpunit-resultprinterV F webmozartglobV E webmozartpath-utilV !D +webmozartkey-value-storeV 'C '/jakub-onderkaphp-console-colorV -B ';jakub-onderkaphp-console-highlighterV  A -dnoegelphp-xdg-base-dirV $@ 7akamonmockery-callable-mockV ? )symfonyphpunit-bridgeV 9> firebasephp-jwtV *= warboeasycheckV < warbocoreV ; 'phpunitphpunit-storyV :: #phpunitphp-invokerV 0 9 -phpunitphpunit-seleniumV 8 aurarouterV 7 #symfony-cmfroutingV z6 'symfonysecurity-csrfV 45 symfonyassetV  4 -symfonyframework-bundleV 3 !symfonytemplatingV %2 7joshcammysqli-database-classV 1 robmorganphinxV 0 !kevinkaskeflashV / !playgroundrewardV . !playgroundstatsV ~- !#playgroundpartnershipV i, !playgroundgameV S!+ '#zendframeworkzend-xmlrpcV J* 'zendframeworkzend-tagV 5) 'zendframeworkzend-soapV .!( '#zendframeworkzend-serverV #&' '-zendframeworkzend-progressbarV +& '7zendframeworkzend-permissions-rbacV %% '+zendframeworkzend-navigationV $ 'zendframeworkzend-mimeV 
!# '#zendframeworkzend-memoryV " 'zendframeworkzend-mailV )! '3zendframeworkzend-i18n-resourcesV   'zendframeworkzend-feedV  'zendframeworkzend-diV " '%zendframeworkzend-captchaV " '%zendframeworkzend-barcodeV  !playgroundflowV Z !playgroundfaqV E !!playgroundhybridauthV D !playgroundfacebookV / !playgroundcmsV  !playgrounduserV  !playgroundtranslateV   !playgrounddesignV   !playgroundcoreV  # !-playgroundzdt-templatehintV   /jhuetzdt-logger-moduleV    '!zendframeworkzend-debugV  * '5zendframeworkzend-developer-toolsV  w* ?ocramiusocra-cached-view-resolverV  A !zf-commonszfc-userV  - !zf-commonszfc-baseV  +" '%zendframeworkzend-sessionV  * '5zendframeworkzend-permissions-aclV  "
 %'bjyoungbloodbjy-authorizeV-	 Ehounddogdoctrine-data-fixture-moduleV$ 3doctrinedoctrine-orm-moduleV$ ')zendframeworkzend-paginatorV  +doctrinedoctrine-moduleV   { T.
{hG-z]B$fEhN1





d
>
&
					e	<	)	mO0_G)jLkA#e< nX5rO.u\A&         n #blendsdkblendengineVm rouginslytherinVl rouginslytherinVk phpunitphpcovVy(j arcanedevsupportVyi %arcanedevlaravel-htmlVyh 'symfonypolyfill-utilVxg )symfonypolyfill-php56Vxf orchestradatabaseVxe orchestratestbenchVxKd )symfonypolyfill-php54Vw c -yiisoftyii2-swiftmailerVwb !yiisoftyii2-fakerVwa yiisoftyii2-giiVw` !yiisoftyii2-debugVw _ -yiisoftyii2-codeceptionVw+^ !=graphawareneo4j-response-formatterVw~] #tubalmartincssminVu \ /meeniejavascript-packerVu[ gregwarrstVu!Z /symfonypolyfill-mbstringVuY !fluxbbcommonmarkVuX !leaguecommonmarkVuW kzykhysciconiaVu!V %%coffeescriptcoffeescriptVuhU leafoscssphpVu`T oyejorgeless.phpVuP&S ?moufmouf-validators-interfaceVu>R )moufmouf-installerVu-Q myclabsphp-enumV\NP mnapoliphp-diV\NM+O #;peridot-phpperidot-prophecy-pluginV\MN #peridot-phpleoV\M!M #'peridot-phpperidot-scopeV\M
L #peridot-phpperidotV\L'K 7wikimediacomposer-merge-pluginVOJ org_heigldaterangeVNWI slimviewsVNH slimslimVN'G ?moniicontainer-interop-laravelVK>F mmoniiaction-handler-psr7-middleware-container-interopVK,E Imoniiaction-handler-psr7-middlewareVKD 'baconbacon-qr-codeV7(&C -'simplesoftwareiosimple-qrcodeV7B %nauxauto-correctV7A bugsnagbugsnagV7@ +bugsnagbugsnag-laravelV7 ? !'summerblueasset-managerV7k> !summerblueturboV7^= %ezyanghtmlpurifierV7< mewspurifierV7#; !-nickcernishtml-to-markdownV7: thujohnrssV79 #laravelbookardentV78 zizacoentrustV7M7 itsgoingdclockworkV7?6 laracastspresenterV7, 5 +artdarekoauth-4-laravelV74 !laracastsvalidationV73 laracastscommanderV72 laracaststestdummyV71 elfetpureV70 herzultphp-sshV7_"/ 5phpcrphpcr-implementationV7!. )!vierbergenlarsphp-semverV7#- !-sensiolabssecurity-checkerV7, liiprmtV7&+ 5jackalopejackalope-jackrabbitV7* #phpcrphpcr-utilsV7) phpcrphpcrV7( jackalopejackalopeV7)' ;jackalopejackalope-doctrine-dbalV7^!& #'mcordingleylinearalgebraV7A% #!mcordingleyregressionV7;$ docoptdocoptV72## 5block8php-docblock-checkerV7e" 'softlayerobjectstorageV7-! #dropboxdropbox-sdkV7  eheroauthV7 barracudacopyV7	 %mtdowlingjmespath.phpV7 'corneltekserializerkitV7 corneltekcurlkitV7 corneltekcachekitV7 corneltekpearxV7" -corneltekphpunit-testmoreV7_ phpbenchtabularV72 gettextlanguagesV7 gettextgettextV7~ !ulrichsggetopt-phpV7~ +colinmollenhourcredisV7~9% !1fiunchinhophpunit-randomizerV7~ 'ocramiusproxy-managerV7z 1pearversioncontorl_gitV7E 1pearversioncontrol_svnV7E leafolessphpV-  3pearconsole_commandlineV- )pearpear_exceptionV- /pearpear-core-minimalV- )pearconsole_getoptV-
 #peararchive_tarV-	 'pearconsole_tableV- )pearconsole_color2V- mpdfmpdfV- #tecnick.comtcpdfV-\ sebastiangitV-M phplocphplocV-A %phenxphp-font-libV-H dompdfdompdfV-@ beberleiassertV-  %lapistanoproxy-objectV- phpdocsV-B~ jmscgV-;} +bossaphpspec2-expectV-ޯ| +phpspecnyan-formattersV-&{ 'ovrphpreflectionV-z -tkjnphptestprovidersV-ݠ!y !)sabberwormphp-css-parserV-c#x ''clickaliciousmemcached.phpV-ܬ-w ';phpdocumentorunified-asset-installerV-#v ''phpdocumentortemplate-zendV-"u '%phpdocumentortemplate-xmlV-.t '=phpdocumentortemplate-responsive-twigV-   } ~fI#jK1fI(fJ*uU6




~
]
E
+
					q	V	=	`@nV1oK/vV8"wP(eL.`?tS7    k nettedatabaseV&j rushstartdblV&i alpixelcmsbundleV&h %symfonyidadmin-bundleV&g 'terahfluent-assertV&f joyportnetdataV&{e jbzooutilsV&[d w3lholt45V&Pc #intelliantssubrionV&C#b 3postconclient-ip-extensionV&'!a /mikemixwiziq-integrationV&#` %ninecellsassets-twbs3V&_ %!internationssolr-utilsV&^ stuartmyversionV&] 'phixvalidationlibV%\ #phixinjectablesV%[ 'phixexceptionslibV%Z #phixcontractlibV%Y /phixconsoledisplaylibV%X )phixcommandlinelibV%W phixcliengineV%V !phixautoloaderV%%U ))ganbarodigitalphp-text-toolsV%,T )7ganbarodigitalphp-static-data-cacheV%%S ))ganbarodigitalphp-reflectionV%'R )-ganbarodigitalphp-number-toolsV%%Q ))ganbarodigitalphp-exceptionsV%$P )'ganbarodigitalphp-defensiveV%O datasiftwebdriverV%N datasiftstoneV%M datasiftosV%L datasiftnetifacesV% K +datasiftifconfig-parserV%J #datasiftstoryplayerV%I jbzooeventV%H %appserver-ioroutltV%G #superbalistphp-moneyV%F #apishkaeasy-extendV%E apishkatemplaterV%D deployerdeployerV%l C )ekandreasdocker-bedrockV%b#B 3prezirecoldigniter-toolkitV%]A vlucasvalitronV%0@ !hassankhanconfigV%#!? 1rouginslytherin-skeletonV%> !rouginspark-plugV%= rougindescribeV%< rouginblueprintV% ; rdlowreyaurynV$: #!kevinlebruncolors.phpV$9 rougincombustorV$8 fprojectfprj-phpV"7 )#abeautifulsitesimpleimageV+6 setasignfpdiV "5 5atoumvisibility-extensionV14 ramseyuuidVM3 hoazformatV2 hoaprotocolV1 hoaexceptionV0 hoaeventV/ #hoaconsistencyV!. /symfonypolyfill-intl-icuV- 'wernerdweightmicrobeVX$, %+silverstripemultivaluefieldV!.+ 9+silverstripe-australiaadvancedreportsV* )symfonymonolog-bundleV) )symfonymonolog-bridgeV( 'nellamonolog-tracyV"' 5nellamonolog-tracy-bundleV& servofluidxmlV% %silverstripecmsV-$ Inglaslsilverstripe-extensible-searchV# yeahaowlV" yeahaowl-siteV! #joefallonphpdatabaseV  !julianpittdbmanagerV !fprojectphp-commonV fprojectphpamfV opauthopauthV +t1mmenopauth-wakatimeV 'trexologylaravel-orderVO 'hipsterjazzbolandlordVC #danhunsakercalendsVA !rereyii2-adminV=  +guojikailaravel-reslashV7 !simplifiedviewV& !simplifiedvalidatorV% !!simplifiedtwigbridgeV# !simplifiedsessionV " !+simplifiedhttp-foundationV !simplifiedframeworkV !simplifiedformsV !simplifieddatabaseV !simplifiedcacheV !!simplifiedsimplifiedV !componentsjqueryV !componentsemberV
 3awsaws-sdk-php-laravelV!	 /mhabibiaftership-php-sdkV) %5tijsverkoyencss-to-inline-stylesV #maatwebsiteexcelVn leaguefractalVm /laravelcollectivehtmlVl !illuminateroutingV`' ?yajralaravel-datatables-oracleV 'bruliphp-git-hooksV shuiguangip-watchV  pandalogpandalogV" #)dereuromarkcakephp-hashidV"~ 3paulziyii2-adjacency-listV} guojikaiplunarV| %oponitiwhoops-slackV{ )symfonypolyfill-php70Vz 'clarolinekernel-bundleVp"y -clarolinefront-end-bundleVIx !steevanbgitscriptsVEw phpbenchphpbenchVv phpbenchdomV#u ''move-elevatorxlsx-appenderV t #pwwangsysinfo.phpVs pwwangfs.phpVr )symfonypolyfill-php55Vq !knplabsknp-snappyVp /h4ccwkhtmltopdf-amd64V o 3h4ccwkhtmltoimage-amd64V    . [; 
{WA#~kR*|[.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * =sebastiancode-unit-reverse-lookupV
 %zenorochaclipboard.jsV$	 3robloachcomponent-installerV pascalcvcsV pascalctinyl10nV #mozillal10njsonV #mozillal10ncacheV #mozillal10nbugzillaV% 3devbridgejquery-autocompleteV pchevrelverifVl webxiocV'i  sulusuluV'@ kijtradbV'< ~ %#valendesignsoption-treeV'6} )yii-cmsyii2-robokassaV'0| )gonimaryii2-robokassaV'-{ truepunycodeV'(z simplepiesimplepieV'"y contaocoreV'!x /contao-componentscompassV'1w ?+contao-community-alliancecomposer-pluginV'"v !+markocupicgallery_creatorV'u %kylekatarnlsjade-phpV' t kuriaeventV&s kuriaerrorV&r just-pajafudjanV&q #neopangeaphp-libraryV&%p 3neopangeaf3-mod-cms-mongo-dbV&o !neopangeaf3-mod-cmsV&n neopangeaf3-appV&m bcoscafatfreeV&'l 7neopangeaf3-mod-cms-mongo-userV&   w iP4kN0wO0R+uF"



z
Z
5
 			v	[	I	#mH(uS,lW='kL4oH$X}P"W/           ,w [gPHPUnit_Framework_MockObject_Verifiable&v OgPHPUnit_Framework_MockObject_Stub8u sgPHPUnit_Framework_MockObject_Stub_MatcherCollection,t [gPHPUnit_Framework_MockObject_MockObject4s kgPHPUnit_Framework_MockObject_Matcher_Invocation+r YgPHPUnit_Framework_MockObject_Invokable,q [gPHPUnit_Framework_MockObject_Invocation+p YgPHPUnit_Framework_MockObject_Exception.o _gPHPUnit_Framework_MockObject_Builder_Stub9n ugPHPUnit_Framework_MockObject_Builder_ParametersMatch3m igPHPUnit_Framework_MockObject_Builder_Namespace9l ugPHPUnit_Framework_MockObject_Builder_MethodNameMatch/k agPHPUnit_Framework_MockObject_Builder_Match2j ggPHPUnit_Framework_MockObject_Builder_Identity#i IdPHPUnit_Runner_TestSuiteLoader#h IdPHPUnit_Framework_TestListenerg 9dPHPUnit_Framework_Test"f GdPHPUnit_Framework_SkippedTest%e MdPHPUnit_Framework_SelfDescribing d CdPHPUnit_Framework_RiskyTest%c MdPHPUnit_Framework_IncompleteTestb /dPHPUnit_Exceptiona _i` _b_ _a^ _iTemplate] _foo\ YFoo[ YBorZ ;YPHP_CodeCoverage_DriverY /WRevealerInterfaceX =WProphecySubjectInterfaceW /WProphecyInterfaceV -VPromiseInterfaceU 3UPredictionInterfaceT /TProphecyExceptionS 3SPredictionExceptionR RExceptionQ -QDoublerExceptionP 3NReflectionInterfaceO +LDoubleInterfaceN 3MClassPatchInterfaceM )HTokenInterfaceL 7-InstantiatorInterfaceK 1,ExceptionInterface#J I)PHPUnit_Runner_TestSuiteLoader#I I)PHPUnit_Framework_TestListenerH 9)PHPUnit_Framework_Test"G G)PHPUnit_Framework_SkippedTest%F M)PHPUnit_Framework_SelfDescribing E C)PHPUnit_Framework_RiskyTest%D M)PHPUnit_Framework_IncompleteTestC /)PHPUnit_ExceptionB (ExceptionA =&LongestCommonSubsequence#@ I"PhakeTest_TraversableInterface? ?"PhakeTest_StaticInterface> ?"PhakeTest_MockedInterface#= I"PhakeTest_ConstructorInterface#< I"Phake_Stubber_IAnswerContainer ; C"Phake_Stubber_IAnswerBinder: 7"Phake_Stubber_IAnswer"9 G"Phake_Matchers_IMethodMatcher-8 ]"Phake_Matchers_IChainableArgumentMatcher$7 K"Phake_Matchers_IArgumentMatcher6 #"Phake_IMock5 5"Phake_Client_IClient>4 "Phake_ClassGenerator_InvocationHandler_IInvocationHandler!3 E"Phake_ClassGenerator_ILoader%2 M"Phake_CallRecorder_IVerifierMode31 i"Phake_CallRecorder_IVerificationFailureHandler#0 I PhakeTest_TraversableInterface/ ? PhakeTest_StaticInterface. ? PhakeTest_MockedInterface#- I PhakeTest_ConstructorInterface#, I Phake_Stubber_IAnswerContainer + C Phake_Stubber_IAnswerBinder* 7 Phake_Stubber_IAnswer") G Phake_Matchers_IMethodMatcher-( ] Phake_Matchers_IChainableArgumentMatcher$' K Phake_Matchers_IArgumentMatcher& # Phake_IMock% 5 Phake_Client_IClient>$  Phake_ClassGenerator_InvocationHandler_IInvocationHandler!# E Phake_ClassGenerator_ILoader%" M Phake_CallRecorder_IVerifierMode3! i Phake_CallRecorder_IVerificationFailureHandler  5ParserCacheInterface( SExpressionFunctionProviderInterface 5ParserCacheInterface( SExpressionFunctionProviderInterface =EventSubscriberInterface =EventDispatcherInterface& OTraceableEventDispatcherInterface 7StateMachineInterface ATransitionalStateInterface )StateInterface =
TransitionEventInterface )
EventInterface -	UsecaseInterface 7	QueryUsecaseInterface ;	CommandUsecaseInterface 9SpecificationInterface -ServiceInterface 3RepositoryInterface 1QueryableInterface 1OperationInterface =CriteriaBuilderInterface 1OperationInterface
 )InOutInterface	 1OperationInterface 7IdentifiableInterface 1EquatableInterface /CopyableInterface 3ComparableInterface 	5SingleValueInterface 	+EntityInterface 	?EntityCollectionInterface 	/CriteriaInterface   @ |lQ8!dE+lV7pX<%y^5





e
G
/
						s	\	I	3		qW: mTA1uW<)}cH0eM4uT9{ZC#a@                    	 =EventDispatcherInterface  AObjectConstructorInterface 9DriverFactoryInterface !InterfaceB !InterfaceA 5zFileLocatorInterface +zDriverInterface" EzAdvancedFileLocatorInterface ;zAdvancedDriverInterface  )xCacheInterface =yMetadataFactoryInterface~ 1yMergeableInterface&} MyAdvancedMetadataFactoryInterface| 1tExceptionInterface{ 1pExceptionInterfacez mReadery /kNotFoundExceptionx 1kContainerExceptionw 1jContainerInterfacev =bServiceProviderInterfaceu %\Translatablet \Routables '\Initializabler 7aUrlGeneratorInterfaceq -`MatcherInterfacep 1OExtensionInterfaceo /MTemplateInterfacen )AToPdfInterfacem -AToLatexInterfacel +AToHtmlInterfacek 1AConverterInterfacej 3_VisibilityInterfacei '_TypeInterfaceh )_TraitInterfaceg /_PropertyInterfacef -_ProjectInterfacee -_PackageInterfaced 1_NamespaceInterfacec +_MethodInterfaceb 1_InterfaceInterfacea /_FunctionInterface` '_FileInterface_ -_ElementInterface^ 1_ContainerInterface] /_ConstantInterface\ )_ClassInterface[ )_ChildInterfaceZ /_ArgumentInterfaceY !"FilterableX 1AssemblerInterfaceW 7CompilerPassInterface
V RuleU #MethodAwareT )InterfaceAwareS 'FunctionAwareR !ClassAwareQ ReportP # CacheDriverO  TokensN  TokenizerM )BuilderContextL BuilderK ! ASTVisitorJ - ASTVisitListenerI ) ArtifactFilterH  StateG # ASTCallableF # ASTArtifactE + ReportGeneratorD 1 FileAwareGeneratorC 1 CodeAwareGeneratorB + ProcessListenerA / CodeRankStrategyI@ 5 AnalyzerProjectAware? / AnalyzerNodeAware> - AnalyzerListener= 3 AnalyzerFilterAware< 1 AnalyzerCacheAware;  Analyzer: / AggregateAnalyzer9  Filter
8  Rule7 # MethodAware6 ) InterfaceAware5 ' FunctionAware4 ! ClassAware3 ) PipesInterface2 1 ExceptionInterface1 ) ValueInterface0 1 ExceptionInterface/ - AdapterInterface. 5 IOExceptionInterface- 1 ExceptionInterface, 7 ParameterBagInterface+ + DumperInterface* 7 InstantiatorInterface) ? PrependExtensionInterface( 1 ExtensionInterface%' K ConfigurationExtensionInterface& 1 ExceptionInterface% + DumperInterface$ = TaggedContainerInterface# ) ScopeInterface&" M IntrospectableContainerInterface! 1 ContainerInterface  ; ContainerAwareInterface ; RepeatablePassInterface 7 CompilerPassInterface ) StyleInterface + OutputInterface 9 ConsoleOutputInterface ) InputInterface 3 InputAwareInterface + HelperInterface# G OutputFormatterStyleInterface = OutputFormatterInterface 3 DescriptorInterface  Validator / ResourceInterface ; LoaderResolverInterface + LoaderInterface 9 PrototypeNodeInterface ' NodeInterface 9 ConfigurationInterface# G ParentNodeDefinitionInterface 3 NodeParentInterface 5 FileLocatorInterface
 5 ConfigCacheInterface!	 C ConfigCacheFactoryInterface / IComponentFactory 9 IComponentAwareFactory 5 JUnitXMLStreamTester 7 StreamWriterInterface 3 TestRunnerInterface& OCommandLineOptionBuilderInterface ;|JUnitXMLWriterInterface 9xConfigurationInterface  +vPluginInterface 1mExceptionInterface~ 5jBlacklistedInterface} iException!| EgTraversableMockTestInterface{ /gMockTestInterfacez ?gInterfaceWithStaticMethody -gAnotherInterfacex #gAnInterface    e=!v\Ew]?${eK0hM5





r
]
@
(
						f	G	+	pN&vT1wX>lQ%	e>k>|c<qX>                  
 AITotalSpaceCapableInterface	 /ITaggableInterface -IStorageInterface 5IOptimizableInterface /IIteratorInterface /IIterableInterface 1IFlushableInterface 7IClearExpiredInterface 9IClearByPrefixInterface ?IClearByNamespaceInterface$  IIAvailableSpaceCapableInterface -EPatternInterface~ 1DExceptionInterface} ?CTwig_TokenParserInterface%| KCTwig_TokenParserBrokerInterface{ 1CTwig_TestInterface z ACTwig_TestCallableInterfacey 9CTwig_TemplateInterface*x UCTwig_Sandbox_SecurityPolicyInterfacew 5CTwig_ParserInterfacev ?CTwig_NodeVisitorInterfaceu =CTwig_NodeOutputInterfacet 1CTwig_NodeInterfaces 5CTwig_LoaderInterfacer 3CTwig_LexerInterfaceq 9CTwig_FunctionInterface$p ICTwig_FunctionCallableInterfaceo 5CTwig_FilterInterface"n ECTwig_FilterCallableInterfacem ;CTwig_ExtensionInterface l ACTwig_ExistsLoaderInterfacek 9CTwig_CompilerInterfacej 3CTwig_CacheInterface)i SBConstraintViolationBuilderInterfaceh 1AValidatorInterface"g EAContextualValidatorInterfacef 7=StaticLoaderInterfacee 39LegacyClassMetadatad +9EntityInterfacec +5LoaderInterfaceb =4MetadataFactoryInterfacea ?2PropertyMetadataInterface` /2MetadataInterface_ 92ClassMetadataInterface^ )3CacheInterface] 11ExceptionInterface\ ?0ExecutionContextInterface&[ M0ExecutionContextFactoryInterfaceZ 1-ValidatorInterfaceY ?-ValidatorBuilderInterface X A-ValidationVisitorInterfaceW ?-PropertyMetadataInterface(V Q-PropertyMetadataContainerInterface U A-ObjectInitializerInterfaceT /-MetadataInterfaceS =-MetadataFactoryInterface$R I-GroupSequenceProviderInterface%Q K-GlobalExecutionContextInterfaceP ?-ExecutionContextInterface&O M-ConstraintViolationListInterface"N E-ConstraintViolationInterface"M E-ConstraintValidatorInterface)L S-ConstraintValidatorFactoryInterfaceK 3-ClassBasedInterfaceJ 3"TranslatorInterfaceI 9"TranslatorBagInterfaceH 9"MetadataAwareInterfaceG ?"MessageCatalogueInterfaceF +&LoaderInterfaceE 1%ExtractorInterfaceD 1$ExceptionInterfaceC +#DumperInterfaceB 1 OperationInterfaceA +LoggerInterface@ 5LoggerAwareInterface? %Translatable> Routable= 'Initializable< 7UrlGeneratorInterface; -MatcherInterface: 1ExtensionInterface9 /TemplateInterface8 )ToPdfInterface7 -ToLatexInterface6 +ToHtmlInterface5 1ConverterInterface4 3VisibilityInterface3 'TypeInterface2 )TraitInterface1 /PropertyInterface0 -ProjectInterface/ -PackageInterface. 1NamespaceInterface- +MethodInterface, 1InterfaceInterface+ /FunctionInterface* 'FileInterface) -ElementInterface( 1ContainerInterface' /ConstantInterface& )ClassInterface% )ChildInterface$ /ArgumentInterface# !Filterable" 1AssemblerInterface! 7CompilerPassInterface  /SortableInterface /SequenceInterface %MapInterface 3CollectionInterface 9PHPParser_Unserializer 5PHPParser_Serializer 7PHPParser_NodeVisitor& MPHPParser_NodeTraverserInterface )PHPParser_Node /PHPParser_Builder -HandlerInterface! CActivationStrategyInterface 1FormatterInterface 7UriRetrieverInterface 3ConstraintInterface -VisitorInterface 3SerializerInterface% KPropertyNamingStrategyInterface! CSubscribingHandlerInterface =HandlerRegistryInterface  AExclusionStrategyInterface Exception
 =EventSubscriberInterface    kH*pG,{_A fK*mM(




{
Z
>
%
					{	\	A	"	|\A'`CqS4uV8 }g?&{`D&nL.|Y:                    	 ;ResponseParserInterface 9ResponseClassInterface  ARequestSerializerInterface -CommandInterface 7ConfigLoaderInterface +ClientInterface ;ServiceBuilderInterface% KErrorResponseExceptionInterface 1CookieJarInterface  7RevalidationInterface ?CanCacheStrategyInterface~ 7CacheStorageInterface} ?CacheKeyProviderInterface| =BackoffStrategyInterface{ 1UrlParserInterfacez 5UriTemplateInterfacey 9MessageParserInterfacex 7CookieParserInterfacew 3LogAdapterInterfacev 1InflectorInterfaceu =QueryAggregatorInterfacet +HeaderInterfaces 9HeaderFactoryInterfacer -RequestInterfaceq ;RequestFactoryInterfacep /PostFileInterfaceo -MessageInterface%n KEntityEnclosingRequestInterfacem 'HttpExceptionl 1CurlMultiInterfacek 3EntityBodyInterfacej +ClientInterfacei -ToArrayInterfaceh 9HasDispatcherInterfaceg 3FromConfigInterfacef +GuzzleExceptione 7CacheAdapterInterfaced 9BatchTransferInterfacec )BatchInterfaceb 7BatchDivisorInterfacea 'TestInterface` -ArrayConvertable_ 7PHP_CodeSniffer_Sniff^ 9PHP_CodeSniffer_Report] 7PHP_CodeSniffer_Sniff\ 9PHP_CodeSniffer_Report[ 7ezcDocumentValidation!Z CezcDocumentRstXhtmlTextRole"Y EezcDocumentRstXhtmlDirectiveX 7ezcDocumentLocateableW ?ezcDocumentErrorReporting V AezcDocumentXhtmlConversion#U GezcDocumentOdtStyleFilterRuleT 5ezcDocumentOdtStyler$S IezcDocumentOdtPcssPreprocessor!R CezcDocumentOdtPcssConverterQ 1ezcBasePersistableP /ezcBaseExportable%O KezcBaseConfigurationInitializerN 9StringWrapperInterfaceM /StrategyInterfaceL 1ExceptionInterfaceK ;~NamingStrategyInterface J A}HydratingIteratorInterfaceI =zStrategyEnabledInterface$H IzNamingStrategyEnabledInterfaceG =zHydratorOptionsInterfaceF /zHydratorInterfaceE 9zHydratorAwareInterfaceD 1zHydrationInterfaceC 9zFilterEnabledInterfaceB ;|FilterProviderInterfaceA +|FilterInterface@ 3ExtractionInterface? 1xExceptionInterface> =wMergeReplaceKeyInterface= /vResponseInterface< -vRequestInterface; 3vParametersInterface: =vParameterObjectInterface9 -vMessageInterface8 -vJsonSerializable7 9vInitializableInterface6 7vDispatchableInterface 5 AvArraySerializableInterface4 1tExceptionInterface"3 ErServiceManagerAwareInterface2 ;rServiceLocatorInterface"1 ErServiceLocatorAwareInterface%0 KrMutableCreationOptionsInterface/ 5rInitializerInterface. -rFactoryInterface- ?rDelegatorFactoryInterface, +rConfigInterface+ =rAbstractFactoryInterface* 1qExceptionInterface) -oAdapterInterface( 1lExceptionInterface' 1kExceptionInterface& -iAdapterInterface% 1eExceptionInterface$ 1cExceptionInterface# 3]TranslatorInterface" =]TranslatorAwareInterface! 7\RemoteLoaderInterface  3\FileLoaderInterface 1ZExceptionInterface +SFilterInterface 1VExceptionInterface" EUEncryptionAlgorithmInterface# GTCompressionAlgorithmInterface +RFilterInterface 1QExceptionInterface& MPSharedListenerAggregateInterface! CPSharedEventManagerInterface& MPSharedEventManagerAwareInterface( QPSharedEventAggregateAwareInterface  APListenerAggregateInterface 9PEventsCapableInterface 7PEventManagerInterface  APEventManagerAwareInterface )PEventInterface +OWriterInterface +NReaderInterface 1MProcessorInterface 1LExceptionInterface +JPluginInterface    gL#eL3dC'jL)eH%




v
_
>
#					x	]	8	z^E+vS; tY>#	iN4~cH-sX=%pW<rZ?                ;]ResponseSenderInterface 1[ExceptionInterface +YPluginInterface%
 KWInjectApplicationEventInterface	 5WApplicationInterface* UPValidatorPluginManagerAwareInterface 1PValidatorInterface 3VTranslatorInterface =VTranslatorAwareInterface 1SExceptionInterface -QAdapterInterface %OUriInterface 1NExceptionInterface  'LSplAutoloader -LShortNameLocator~ 1LPluginClassLocator} 1MExceptionInterface| ;GMultipleHeaderInterface{ +GHeaderInterfacez 1IExceptionInterfacey 1FExceptionInterfacex 1EExceptionInterfacew 1DExceptionInterfacev +CStreamInterfaceu -CAdapterInterfacet 1AExceptionInterfaces ;;MultipleHeaderInterfacer +;HeaderInterfaceq 1=ExceptionInterfacep 1:ExceptionInterfaceo 19ExceptionInterfacen 18ExceptionInterfacem +7StreamInterfacel -7AdapterInterfacek 14SymmetricInterfacej -5PaddingInterfacei 13ExceptionInterfaceh 12ExceptionInterfaceg /.PasswordInterfacef 1/ExceptionInterfacee 1,ExceptionInterfaced 1+ExceptionInterfacec 1(SymmetricInterfaceb -)PaddingInterfacea 1'ExceptionInterface` 1&ExceptionInterface_ /"PasswordInterface^ 1#ExceptionInterface] 1 ExceptionInterface\ 1ExceptionInterface[ 1TokenTypeInterfaceZ =UserCredentialsInterfaceY )ScopeInterfaceX 7RefreshTokenInterfaceW 1PublicKeyInterfaceV 1JwtBearerInterfaceU ;JwtAccessTokenInterfaceT +ClientInterface S AClientCredentialsInterface R AAuthorizationCodeInterfaceQ 5AccessTokenInterfaceP 7ResponseTypeInterface O AAuthorizationCodeInterfaceN 5AccessTokenInterfaceM )ScopeInterfaceL /ResponseInterfaceK -RequestInterfaceJ 3UserClaimsInterface I AAuthorizationCodeInterfaceH 7IdTokenTokenInterfaceG -IdTokenInterfaceF 5CodeIdTokenInterface E AAuthorizationCodeInterface!D CUserInfoControllerInterface"C EAuthorizeControllerInterfaceB 1GrantTypeInterfaceA 3EncryptionInterface@ =TokenControllerInterface!? CResourceControllerInterface"> EAuthorizeControllerInterface"= EClientAssertionTypeInterface< 1TokenTypeInterface; =UserCredentialsInterface: )ScopeInterface9 7RefreshTokenInterface8 1PublicKeyInterface7 1JwtBearerInterface6 ;JwtAccessTokenInterface5 +ClientInterface 4 AClientCredentialsInterface 3 AAuthorizationCodeInterface2 5AccessTokenInterface1 7ResponseTypeInterface 0 AAuthorizationCodeInterface/ 5AccessTokenInterface. )ScopeInterface- /ResponseInterface, -RequestInterface+ 3UserClaimsInterface * AAuthorizationCodeInterface) 7IdTokenTokenInterface( -IdTokenInterface' 5CodeIdTokenInterface & AAuthorizationCodeInterface!% C	UserInfoControllerInterface"$ E	AuthorizeControllerInterface# 1GrantTypeInterface" 3EncryptionInterface! =TokenControllerInterface!  CResourceControllerInterface" EAuthorizeControllerInterface" EClientAssertionTypeInterface -vfsStreamVisitor -vfsStreamContent 1vfsStreamContainer #FileContent - vfsStreamVisitor -vfsStreamContent 1vfsStreamContainer #FileContent 'TestInterface -ArrayConvertable# GStreamRequestFactoryInterface +StreamInterface ?ResourceIteratorInterface& MResourceIteratorFactoryInterface 1ValidatorInterface! CServiceDescriptionInterface 1OperationInterface =ResponseVisitorInterface ;RequestVisitorInterface
 -FactoryInterface   ~ [BnP.nS6r[?aA




y
Y
B

					s	X	>	\5iP+|aF-y^E-t[C(tJ&|W4]:                  ! CViewHelperProviderInterface 
 AValidatorProviderInterface'	 OTranslatorPluginProviderInterface =ServiceProviderInterface! CSerializerProviderInterface 9RouteProviderInterface  ALogWriterProviderInterface# GLogProcessorProviderInterface  ALocatorRegisteredInterface" EInputFilterProviderInterface 7InitProviderInterface  ?HydratorProviderInterface" EFormElementProviderInterface~ ;FilterProviderInterface"} EDependencyIndicatorInterface!| CControllerProviderInterface'{ OControllerPluginProviderInterface#z GConsoleUsageProviderInterface$y IConsoleBannerProviderInterfacex ;ConfigProviderInterface w ABootstrapListenerInterface!v CAutoloaderProviderInterfaceu 1ExceptionInterfacet +WriterInterfaces -FirePhpInterfacer 1ChromePhpInterfaceq 1ProcessorInterfacep +LoggerInterfaceo 5LoggerAwareInterfacen 1FormatterInterfacem +FilterInterfacel 1ExceptionInterfacek +WriterInterfacej -FirePhpInterfacei 1ChromePhpInterfaceh 1ProcessorInterfaceg +LoggerInterfacef 5LoggerAwareInterfacee 1FormatterInterfaced +FilterInterfacec 1ExceptionInterfaceb 'SplAutoloadera -ShortNameLocator` 1PluginClassLocator_ 1ExceptionInterface^ 1ExceptionInterface] 3LabelAwareInterface\ 'FormInterface[ ?FormFactoryAwareInterface#Z GFieldsetPrepareAwareInterfaceY /FieldsetInterface"X EElementPrepareAwareInterfaceW -ElementInterface&V MElementAttributeRemovalInterfaceU +WriterInterfaceT +ReaderInterfaceS 1ProcessorInterfaceR 1ExceptionInterfaceQ 7PHP_CodeSniffer_SniffP 9PHP_CodeSniffer_Report$O IPHPUnit_Runner_TestSuiteLoader$N IPHPUnit_Framework_TestListenerM 9PHPUnit_Framework_Test#L GPHPUnit_Framework_SkippedTest&K MPHPUnit_Framework_SelfDescribing!J CPHPUnit_Framework_RiskyTest&I MPHPUnit_Framework_IncompleteTestH /PHPUnit_ExceptionG 1ExceptionInterfaceF 1ExceptionInterfaceE ?ProblemExceptionInterfaceD 1ExceptionInterfaceC /ResolverInterfaceB 7TreeRendererInterfaceA /RendererInterface"@ ERetrievableChildrenInterface? )ModelInterface> ;ClearableModelInterface= +HelperInterface< +HelperInterface; 1ExceptionInterface: ?ProblemExceptionInterface9 1ExceptionInterface8 1ExceptionInterface"7 EServiceManagerAwareInterface6 ;ServiceLocatorInterface"5 EServiceLocatorAwareInterface%4 KMutableCreationOptionsInterface3 5InitializerInterface2 -FactoryInterface1 ?DelegatorFactoryInterface0 +ConfigInterface/ =AbstractFactoryInterface. 3zRouteStackInterface- )zRouteInterface, )yRouteInterface+ 1xExceptionInterface* )wRouteInterface) ;vResponseSenderInterface( 1tExceptionInterface' +rPluginInterface%& KpInjectApplicationEventInterface% 5pApplicationInterface$ 1oExceptionInterface## GnUnknownInputsCapableInterface" ?nReplaceableInputInterface! 9nInputProviderInterface  )nInputInterface" EnInputFilterProviderInterface 5nInputFilterInterface ?nInputFilterAwareInterface 7nEmptyContextInterface 1iExceptionInterface 3hLabelAwareInterface 'hFormInterface ?hFormFactoryAwareInterface# GhFieldsetPrepareAwareInterface /hFieldsetInterface" EhElementPrepareAwareInterface -hElementInterface& MhElementAttributeRemovalInterface 3aRouteStackInterface )aRouteInterface )`RouteInterface 1_ExceptionInterface )^RouteInterface    lH%jE% xR/~Z< {dI1





j
P
)
						g	M	&	|`B)dI/pT< }bG)gH-oT9~iF+xV4                 'eTestInterface ?eTestTraversableInterface3 ?eTestTraversableInterface2 =eTestTraversableInterface
 #eTargetClass	 eGenerator 'bMockInterface 5bExpectationInterface 7\TableGatewayInterface 1]ExceptionInterface 1[PredicateInterface  ATPlatformDecoratorInterface %NSqlInterface 9NPreparableSqlInterface  3NExpressionInterface 1SExceptionInterface~ %OSqlInterface} 3QConstraintInterface| +PColumnInterface{ 3KRowGatewayInterfacez 1LExceptionInterfacey 1IResultSetInterfacex 1JExceptionInterfacew /FMetadataInterfacev 1EExceptionInterfaceu /DProfilerInterfacet 9DProfilerAwareInterfaces /CPlatformInterfacer 1BExceptionInterfaceq 1AExceptionInterfacep 99DriverFeatureInterfaceo 18StatementInterfacen +8ResultInterfacem +8DriverInterfacel 38ConnectionInterface!k C7StatementContainerInterfacej -7AdapterInterfacei 77AdapterAwareInterfaceh 73TableGatewayInterfaceg 14ExceptionInterfacef 12PredicateInterface e A+PlatformDecoratorInterfaced %%SqlInterfacec 9%PreparableSqlInterfaceb 3%ExpressionInterfacea 1*ExceptionInterface` %&SqlInterface_ 3(ConstraintInterface^ +'ColumnInterface] 3"RowGatewayInterface\ 1#ExceptionInterface[ 1 ResultSetInterfaceZ 1!ExceptionInterfaceY /MetadataInterfaceX 1ExceptionInterfaceW /ProfilerInterfaceV 9ProfilerAwareInterfaceU /PlatformInterfaceT 1ExceptionInterfaceS 1ExceptionInterfaceR 9DriverFeatureInterfaceQ 1StatementInterfaceP +ResultInterfaceO +DriverInterfaceN 3ConnectionInterface!M CStatementContainerInterfaceL -AdapterInterfaceK 7AdapterAwareInterfaceJ 3	TranslatorInterfaceI =	TranslatorAwareInterfaceH 7RemoteLoaderInterfaceG 3FileLoaderInterfaceF 1ExceptionInterfaceE -StorageInterfaceD 1ExceptionInterface$C IAuthenticationServiceInterfaceB / ResolverInterfaceA 1ExceptionInterface@ 1ExceptionInterface? 1ExceptionInterface!> CValidatableAdapterInterface= -AdapterInterface< -StorageInterface; 1ExceptionInterface$: IAuthenticationServiceInterface9 /ResolverInterface8 1ExceptionInterface7 1ExceptionInterface6 1ExceptionInterface!5 CValidatableAdapterInterface4 -AdapterInterface3 1ExceptionInterface2 7RouteMatcherInterface1 +PromptInterface0 1ExceptionInterface/ )ColorInterface. -CharsetInterface- -AdapterInterface, 1ExceptionInterface+ -AdapterInterface* 9ModuleManagerInterface) 1ExceptionInterface( =ServiceListenerInterface' 7ConfigMergerInterface!& CViewHelperProviderInterface % AValidatorProviderInterface'$ OTranslatorPluginProviderInterface# =ServiceProviderInterface!" CSerializerProviderInterface! 9RouteProviderInterface   ALogWriterProviderInterface# GLogProcessorProviderInterface  ALocatorRegisteredInterface" EInputFilterProviderInterface 7InitProviderInterface ?HydratorProviderInterface" EFormElementProviderInterface ;FilterProviderInterface" EDependencyIndicatorInterface! CControllerProviderInterface' OControllerPluginProviderInterface# GConsoleUsageProviderInterface$ IConsoleBannerProviderInterface ;ConfigProviderInterface  ABootstrapListenerInterface! CAutoloaderProviderInterface 1ExceptionInterface 9ModuleManagerInterface 1ExceptionInterface =ServiceListenerInterface 7ConfigMergerInterface    |^? Z eQA*lV?2#vF


v
N
0

				x	T	+	^C0hG&sW8r_N7	vU<gJ1{_H)w\E*         3ITwig_CacheInterface 1GExceptionInterface )DPipesInterface
 1BExceptionInterface	 )8ValueInterface 17ExceptionInterface -5AdapterInterface 52IOExceptionInterface 12ExceptionInterface )$StyleInterface +"OutputInterface 9"ConsoleOutputInterface ) InputInterface  3 InputAwareInterface +HelperInterface#~ GOutputFormatterStyleInterface} =OutputFormatterInterface| 3DescriptorInterface{ -WrapperInterfacez ?SubjectContainerInterfacey -ThrowExpectationx 5ExpectationInterfacew 9SpecificationInterfacev 3MaintainerInterfaceu ReRunnert =PlatformSpecificReRunner!s CSuitePrerequisitesInterfacer ?ExecutionContextInterfaceq ?MatchersProviderInterfacep -MatcherInterfaceo =
ResourceManagerInterfacen =
ResourceLocatorInterfacem /
ResourceInterfacel #IOInterfacek Templatej 1PresenterInterfacei +EngineInterfaceh !ReportItemg 1ExtensionInterfacef )EventInterfacee Prompterd !CodeWriterc 1GeneratorInterfaceb =AccessInspectorInterfacea -ExampleInterface` -WrapperInterface_ ?SubjectContainerInterface^ -ThrowExpectation] 5ExpectationInterface\ 9SpecificationInterface[ 3MaintainerInterfaceZ ReRunnerY =PlatformSpecificReRunner!X CSuitePrerequisitesInterfaceW ?ExecutionContextInterfaceV ?MatchersProviderInterfaceU -MatcherInterfaceT =ResourceManagerInterfaceS =ResourceLocatorInterfaceR /ResourceInterfaceQ #IOInterfaceP TemplateO 1PresenterInterfaceN +EngineInterfaceM !ReportItemL 1ExtensionInterfaceK )EventInterfaceJ PrompterI !CodeWriterH 1GeneratorInterfaceG =AccessInspectorInterfaceF -ExampleInterface$E IPHPUnit_Runner_TestSuiteLoader$D IPHPUnit_Framework_TestListenerC 9PHPUnit_Framework_Test#B GPHPUnit_Framework_SkippedTest&A MPHPUnit_Framework_SelfDescribing!@ CPHPUnit_Framework_RiskyTest&? MPHPUnit_Framework_IncompleteTest> /PHPUnit_Exception&= MChatroulette_ConnectionInterface#< GReact_WritableStreamInterface#; GReact_ReadableStreamInterface: 7React_StreamInterface%9 KEvenement_EventEmitterInterface78 ovMockeryTest_InterfaceThatExtendsIteratorAggregate.7 ]vMockeryTest_InterfaceThatExtendsIterator.6 ]vMockeryTest_InterfaceWithMethodParamSelf15 cvMockeryTest_InterfaceWithPublicStaticMethod-4 [vMockeryTest_InterfaceWithAbstractMethod3 9vMockeryTest_Interface22 9vMockeryTest_Interface11 7vMockeryTest_Interface*0 UvMockeryTest_InterfaceWithTraversable!/ CvMockeryTest_NameOfInterface. }Loader
- |Pass, ){TestInterface2+ '{TestInterface* ?{TestTraversableInterface3) ?{TestTraversableInterface2( ={TestTraversableInterface' #{TargetClass& {Generator% 'xMockInterface$ 5xExpectationInterface# )nSelfDescribing" nMatcher! #nDescription&  MkChatroulette_ConnectionInterface# GkReact_WritableStreamInterface# GkReact_ReadableStreamInterface 7kReact_StreamInterface% KkEvenement_EventEmitterInterface7 o`MockeryTest_InterfaceThatExtendsIteratorAggregate. ]`MockeryTest_InterfaceThatExtendsIterator. ]`MockeryTest_InterfaceWithMethodParamSelf1 c`MockeryTest_InterfaceWithPublicStaticMethod- [`MockeryTest_InterfaceWithAbstractMethod 9`MockeryTest_Interface2 9`MockeryTest_Interface1 7`MockeryTest_Interface* U`MockeryTest_InterfaceWithTraversable! C`MockeryTest_NameOfInterface gLoader
 fPass )eTestInterface2   B y\5b5sR6v]D)o\C*





q
H
$					h	O	:		{lT<0peM4kVB4#qP7r]E*vW?!sdT6r\B                      /FunctionInterface 'FileInterface -ElementInterface 1ContainerInterface /ConstantInterface )ClassInterface )ChildInterface /ArgumentInterface !oFilterable 1iAssemblerInterface 7aCompilerPassInterface ZMatcher YFilter 3GTranslatorInterface 1FExtensionInterface +=ParserInterface -<HandlerInterface ';NodeInterface 1:ExceptionInterface %6UriInterface 76UploadedFileInterface +6StreamInterface
 96ServerRequestInterface	 /6ResponseInterface -6RequestInterface -6MessageInterface //PromisorInterface -/PromiseInterface 5.CurlFactoryInterface +-GuzzleException 1,CookieJarInterface ++ClientInterface  %%FileDetector '%ExecuteMethod~ 9(WebDriverTargetLocator} 9(WebDriverSearchContext| )(WebDriverMouse{ /(WebDriverKeyboardz =(WebDriverHasInputDevicesy 9(WebDriverEventListenerx -(WebDriverElementw =(WebDriverCommandExecutorv 7(WebDriverCapabilitiesu +(WebDriverActiont (WebDrivers 1(JavaScriptExecutorr 1*WebDriverLocatableq 5"WebDriverTouchScreenp )ScenarioDriveno Reportedn Plainm #Descriptivel %Configurablek )ConsolePrinter	j Webi +SessionSnapshoth +ScreenshotSaverg Remotef Queuee %PartedModuled +PageSourceSaverc %MultiSessionb )ElementLocatora -DoctrineProvider` +DependsOnModule_ Db^ 3ConflictsWithModule] %ActiveRecord\ -WebDriverElement[ )ScenarioDrivenZ ReportedY PlainX #DescriptiveW %ConfigurableV )ConsolePrinter	U WebT +SessionSnapshotS +ScreenshotSaverR RemoteQ QueueP %PartedModuleO +PageSourceSaverN %MultiSessionM )ElementLocatorL -DoctrineProviderK +DependsOnModuleJ DbI 3ConflictsWithModuleH %ActiveRecordG -WebDriverElement$F IPHPUnit_Runner_TestSuiteLoader$E IPHPUnit_Framework_TestListenerD 9PHPUnit_Framework_Test#C GPHPUnit_Framework_SkippedTest&B MPHPUnit_Framework_SelfDescribing!A CPHPUnit_Framework_RiskyTest&@ MPHPUnit_Framework_IncompleteTest? /PHPUnit_Exception> -InvokerInterface= -FactoryInterface< ;MutableDefinitionSource; -DefinitionSource: 1DefinitionResolver9 -DefinitionHelper8 -DefinitionDumper7 -HasSubDefinition6 !Definition5 3CacheableDefinition4 /ParameterResolver3 -InvokerInterface2 -InvokerInterface1 -FactoryInterface0 ;MutableDefinitionSource/ -DefinitionSource. 1DefinitionResolver- -DefinitionHelper, -DefinitionDumper+ -HasSubDefinition* !Definition) 3CacheableDefinition( !YAMLParser' )~MarkdownParser& 1lAlgorithmInterface% -`SubjectInterface$ /`ObserverInterface# 3`CollectionInterface" =`ArrayCollectionInterface! 1PAlgorithmInterface  ?ITwig_TokenParserInterface% KITwig_TokenParserBrokerInterface 1ITwig_TestInterface  AITwig_TestCallableInterface 9ITwig_TemplateInterface* UITwig_Sandbox_SecurityPolicyInterface 5ITwig_ParserInterface ?ITwig_NodeVisitorInterface =ITwig_NodeOutputInterface 1ITwig_NodeInterface 5ITwig_LoaderInterface 3ITwig_LexerInterface 9ITwig_FunctionInterface$ IITwig_FunctionCallableInterface 5ITwig_FilterInterface" EITwig_FilterCallableInterface ;ITwig_ExtensionInterface  AITwig_ExistsLoaderInterface 9ITwig_CompilerInterface    fO9lN8'e@#hF)wU,




r
O
3
					{	]	:	rV3zY<&tT4qO1h@ f=!nR.t]A(        1ValidatorInterface -GatewayInterface 3ConnectionInterface )|QueueInterface  AFailedJobProviderInterface 1~ConnectorInterface +vHasherInterface! CpExceptionDisplayerInterface" EhMigrationRepositoryInterface 1cConnectorInterface! CbConnectionResolverInterface 3bConnectionInterface +]LoaderInterface) S]EnvironmentVariablesLoaderInterface )[StoreInterface 7XUserProviderInterface 'XUserInterface! CZReminderRepositoryInterface 3ZRemindableInterface& MSTwig_Extensions_GrammarInterface 7FTwigRendererInterface!
 CFTwigRendererEngineInterface	 +0RouterInterface 90RouteCompilerInterface" E0RequestContextAwareInterface 35UrlMatcherInterface ;5RequestMatcherInterface% K5RedirectableUrlMatcherInterface 96MatcherDumperInterface =2GeneratorDumperInterface 73UrlGeneratorInterface'  O3ConfigurableRequirementsInterface 11ExceptionInterface#~ G,PropertyPathIteratorInterface} 7,PropertyPathInterface| ?,PropertyAccessorInterface{ 1+ExceptionInterfacez =)OptionsResolverInterfacey )Optionsx 1(ExceptionInterfacew ;ResourceBundleInterfacev 7RegionBundleInterfaceu 7LocaleBundleInterfacet ;LanguageBundleInterfaces ;CurrencyBundleInterfacer 1ExceptionInterfaceq 7
BundleWriterInterfacep 7	BundleReaderInterface o A	BundleEntryReaderInterfacen ;BundleCompilerInterfacem +AuthorInterfacel 'FormInterfacek 5FormBuilderInterfacej =ViolationMapperInterface i AFormDataExtractorInterface h AFormDataCollectorInterfaceg 7CsrfProviderInterfacef 3ChoiceListInterfacee 1ExceptionInterfaced 7ChoiceLoaderInterface c AChoiceListFactoryInterfaceb 3ChoiceListInterfacea ?SubmitButtonTypeInterface` ?ResolvedFormTypeInterface&_ MResolvedFormTypeFactoryInterface^ ;RequestHandlerInterface] /FormTypeInterface\ =FormTypeGuesserInterface [ AFormTypeExtensionInterfaceZ 7FormRendererInterface!Y CFormRendererEngineInterfaceX 7FormRegistryInterfaceW 'FormInterfaceV 5FormFactoryInterface!U CFormFactoryBuilderInterfaceT 9FormExtensionInterfaceS 3FormConfigInterface R AFormConfigBuilderInterfaceQ 5FormBuilderInterfaceP =DataTransformerInterfaceO 3DataMapperInterfaceN 1ClickableInterfaceM 3ButtonTypeInterface&L MTwig_Extensions_GrammarInterface&K MTwig_Extensions_GrammarInterfaceJ ?Twig_TokenParserInterface%I KTwig_TokenParserBrokerInterfaceH 1Twig_TestInterface G ATwig_TestCallableInterfaceF 9Twig_TemplateInterface*E UTwig_Sandbox_SecurityPolicyInterfaceD 5Twig_ParserInterfaceC ?Twig_NodeVisitorInterfaceB =Twig_NodeOutputInterfaceA 1Twig_NodeInterface@ 5Twig_LoaderInterface? 3Twig_LexerInterface> 9Twig_FunctionInterface$= ITwig_FunctionCallableInterface< 5Twig_FilterInterface"; ETwig_FilterCallableInterface: ;Twig_ExtensionInterface 9 ATwig_ExistsLoaderInterface8 9Twig_CompilerInterface7 3Twig_CacheInterface6 'TestInterface5 -ArrayConvertable4 %Translatable3 Routable2 'Initializable1 7UrlGeneratorInterface0 -MatcherInterface/ 1ExtensionInterface. /TemplateInterface- )ToPdfInterface, -ToLatexInterface+ +ToHtmlInterface* 1ConverterInterface) 3VisibilityInterface( 'TypeInterface' )TraitInterface& /PropertyInterface% -ProjectInterface$ -PackageInterface# 1NamespaceInterface" +MethodInterface! 1InterfaceInterface   z rV4eA+rW2lQ2mK1





f
A
					v	T	.	Y7 x^=fAy`G){W=~_2lW6rN,                         +Swift_Transport ?Swift_Transport_SmtpAgent! CSwift_Transport_MailInvoker =Swift_Transport_IoBuffer" ESwift_Transport_EsmtpHandler) SSwift_Transport_Esmtp_Authenticator 1Swift_StreamFilter #Swift_Spool  ASwift_Signers_HeaderSigner =Swift_Signers_BodySigner %Swift_Signer$ ISwift_ReplacementFilterFactory 3Swift_Plugins_Timer 7Swift_Plugins_Sleeper 9Swift_Plugins_Reporter&
 MSwift_Plugins_Pop_Pop3Connection	 5Swift_Plugins_Logger* USwift_Plugins_Decorator_Replacements 9Swift_OutputByteStream$ ISwift_Mime_ParameterizedHeader 7Swift_Mime_MimeEntity 1Swift_Mime_Message 5Swift_Mime_HeaderSet =Swift_Mime_HeaderFactory =Swift_Mime_HeaderEncoder  /Swift_Mime_Header! CSwift_Mime_EncodingObserver~ ?Swift_Mime_ContentEncoder } ASwift_Mime_CharsetObserver$| ISwift_Mailer_RecipientIterator{ )Swift_KeyCache(z QSwift_KeyCache_KeyCacheInputStreamy 7Swift_InputByteStreamx -Swift_Filterablew -Swift_FileStream-v [Swift_Events_TransportExceptionListener*u USwift_Events_TransportChangeListenert ?Swift_Events_SendListener#s GSwift_Events_ResponseListener r ASwift_Events_EventListener"q ESwift_Events_EventDispatcherp 1Swift_Events_Event"o ESwift_Events_CommandListenern 'Swift_Encoderm 7Swift_CharacterStream"l ESwift_CharacterReaderFactoryk 7Swift_CharacterReaderj ;ResponseReaderInterfacei =ResponseHandlerInterfaceh /ProtocolInterface!g CComposableProtocolInterface f ACommandSerializerInterfacee 9ServerProfileInterfaced ?PipelineExecutorInterfacec +OptionInterfaceb 9ClientOptionsInterfacea ?SingleConnectionInterface$` IReplicationConnectionInterface#_ GConnectionParametersInterface^ 3ConnectionInterface ] AConnectionFactoryInterface#\ GComposableConnectionInterface [ AClusterConnectionInterface#Z GAggregatedConnectionInterfaceY ?CommandProcessorInterface$X ICommandProcessorChainInterface W ACommandProcessingInterface V APrefixableCommandInterfaceU -CommandInterfaceT 9HashGeneratorInterface#S GDistributionStrategyInterface"R ECommandHashStrategyInterfaceQ ;ResponseObjectInterfaceP 9ResponseErrorInterface O AExecutableContextInterfaceN +ClientInterfaceM 5BasicClientInterfaceL 3ViewFinderInterfaceK +EngineInterfaceJ /CompilerInterfaceI ?PresenceVerifierInterfaceH +LoaderInterfaceG ?ResponsePreparerInterfaceF 3RenderableInterfaceE =MessageProviderInterfaceD /JsonableInterfaceC 1ArrayableInterfaceB -SessionInterfaceA 9RouteFiltererInterface@ 1ValidatorInterface? -GatewayInterface> 3ConnectionInterface= )QueueInterface < AFailedJobProviderInterface; 1ConnectorInterface: +HasherInterface!9 CExceptionDisplayerInterface"8 EMigrationRepositoryInterface7 1ConnectorInterface!6 CConnectionResolverInterface5 3ConnectionInterface4 +LoaderInterface)3 SEnvironmentVariablesLoaderInterface2 )StoreInterface1 7UserProviderInterface0 'UserInterface!/ CReminderRepositoryInterface. 3RemindableInterface- -HandlerInterface, Inspector+ 3ViewFinderInterface* +EngineInterface) /CompilerInterface( ?PresenceVerifierInterface' +LoaderInterface& ?ResponsePreparerInterface% 3RenderableInterface$ =MessageProviderInterface# /JsonableInterface" 1ArrayableInterface! -SessionInterface  9RouteFiltererInterface    s[?(	tX5gI/mI*iQ5 




a
@
!					y	a	:	oN/~_I(
eM2bI-	z^:iR6uT8rQ+            +	HelperInterface# G	OutputFormatterStyleInterface =	OutputFormatterInterface 3	DescriptorInterface 3ViewFinderInterface +EngineInterface /CompilerInterface ?PresenceVerifierInterface +LoaderInterface ?	ResponsePreparerInterface 3	RenderableInterface =	MessageProviderInterface /	JsonableInterface 1	ArrayableInterface -SessionInterface
 ;ExistenceAwareInterface	 9RouteFiltererInterface 1ValidatorInterface -GatewayInterface 3ConnectionInterface )QueueInterface  AFailedJobProviderInterface 1ConnectorInterface +HasherInterface! CExceptionDisplayerInterface"  EMigrationRepositoryInterface )ScopeInterface~ 1ConnectorInterface!} CConnectionResolverInterface| 3ConnectionInterface{ +LoaderInterface)z SEnvironmentVariablesLoaderInterfacey )StoreInterfacex 7UserProviderInterfacew 'UserInterface!v CReminderRepositoryInterfaceu 3RemindableInterfacet -HandlerInterfaces ;UserRepositoryInterfacer ;PostRepositoryInterfaceq 3TranslatorInterfacep 9MetadataAwareInterfaceo ?MessageCatalogueInterfacen +LoaderInterfacem 1ExtractorInterfacel 1ExceptionInterfacek +DumperInterfacej 1OperationInterfacei 7SecureRandomInterfaceh 7UserProviderInterfaceg 'UserInterfacef 5UserCheckerInterfacee 1EquatableInterfaced 7AdvancedUserInterfacec =SecurityContextInterfaceb 'RoleInterfacea 9RoleHierarchyInterface` 1ExceptionInterface_ =PasswordEncoderInterface^ ;EncoderFactoryInterface] )VoterInterface$\ IAccessDecisionManagerInterface[ )TokenInterfaceZ 9TokenProviderInterfaceY =PersistentTokenInterface%X KAuthenticationProviderInterface%W KSimplePreAuthenticatorInterface&V MSimpleFormAuthenticatorInterface"U ESimpleAuthenticatorInterface*T UAuthenticationTrustResolverInterface$S IAuthenticationManagerInterfaceR +zRouterInterfaceQ 9zRouteCompilerInterface"P EzRequestContextAwareInterfaceO 3UrlMatcherInterfaceN ;RequestMatcherInterface%M KRedirectableUrlMatcherInterfaceL 9MatcherDumperInterfaceK =|GeneratorDumperInterfaceJ 7}UrlGeneratorInterface'I O}ConfigurableRequirementsInterfaceH 1{ExceptionInterfaceG 1vExceptionInterfaceF =`ProfilerStorageInterfaceE +_LoggerInterfaceD 5_DebugLoggerInterfaceC 3STerminableInterfaceB +SKernelInterfaceA 3SHttpKernelInterface@ )^StoreInterface'? O^EsiResponseCacheStrategyInterface> ?]FragmentRendererInterface= 9\HttpExceptionInterface < AVLateDataCollectorInterface; 9VDataCollectorInterface!: CUControllerResolverInterface9 /RWarmableInterface8 5RCacheWarmerInterface7 7QCacheClearerInterface6 +PBundleInterface5 ;DSessionStorageInterface4 -BSessionInterface3 3BSessionBagInterface2 /AFlashBagInterface1 7@AttributeBagInterface0 ;OSessionHandlerInterface/ ;;RequestMatcherInterface. =>MimeTypeGuesserInterface- ?>ExtensionGuesserInterface, )2ValueInterface+ 11ExceptionInterface* -/AdapterInterface ) A%FatalErrorHandlerInterface( 3"TranslatorInterface' 1!ExtensionInterface& +ParserInterface% -HandlerInterface$ 'NodeInterface# 1ExceptionInterface" +OutputInterface! 9ConsoleOutputInterface  )InputInterface 3InputAwareInterface +HelperInterface# GOutputFormatterStyleInterface =OutputFormatterInterface 3DescriptorInterface' OSwift_Transport_EsmtpHandlerMixin    {eL4mL,gI,kA*iN$



~
b
=

				d	<	aA vYC%dE)t\;lV7iR3cL+mL+       1
ExceptionInterface =
EventSubscriberInterface =
EventDispatcherInterface' OTraceableEventDispatcherInterface 7
ParameterBagInterface 1ExtensionInterface% KConfigurationExtensionInterface 1
ExceptionInterface +
DumperInterface =
TaggedContainerInterface )
ScopeInterface& M
IntrospectableContainerInterface 1
ContainerInterface ;
ContainerAwareInterface ;
RepeatablePassInterface 7
CompilerPassInterface
 '
NodeInterface	 +
~OutputInterface 9
~ConsoleOutputInterface )
}InputInterface +
|HelperInterface# G
{OutputFormatterStyleInterface =
{OutputFormatterInterface /
sResourceInterface ;
rLoaderResolverInterface +
rLoaderInterface  5
mFileLocatorInterface 9
nPrototypeNodeInterface~ '
nNodeInterface} 9
nConfigurationInterface#| G
oParentNodeDefinitionInterface{ 3
oNodeParentInterface
z 
lIBary '
iSomeInterfacex !
dGInterfacew !
dCInterface"v E
/UserProviderFactoryInterfaceu =
.SecurityFactoryInterfacet +
EngineInterfaces ;	TemplateFinderInterfacer 7	TwigRendererInterface!q C	TwigRendererEngineInterfacep /	RegistryInterfaceo 7	EntityLoaderInterfacen 1	ExceptionInterfacem 3	TranslatorInterfacel 9	MetadataAwareInterfacek ?	MessageCatalogueInterfacej +	LoaderInterfacei 1	ExtractorInterfaceh 1	ExceptionInterfaceg +	DumperInterfacef 1	OperationInterfacee 7	SecureRandomInterfaced 7	UserProviderInterfacec '	UserInterfaceb 5	UserCheckerInterfacea 1	EquatableInterface` 7	AdvancedUserInterface_ =	SecurityContextInterface^ '	RoleInterface] 9	RoleHierarchyInterface\ 1	ExceptionInterface[ =	PasswordEncoderInterfaceZ ;	EncoderFactoryInterfaceY 7	EncoderAwareInterfaceX )	VoterInterface$W I	AccessDecisionManagerInterfaceV )	TokenInterfaceU 9	TokenProviderInterfaceT =	PersistentTokenInterface%S K	AuthenticationProviderInterface%R K	SimplePreAuthenticatorInterface&Q M	SimpleFormAuthenticatorInterface"P E	SimpleAuthenticatorInterface*O U	AuthenticationTrustResolverInterface$N I	AuthenticationManagerInterfaceM +	RouterInterfaceL 9	RouteCompilerInterface"K E	RequestContextAwareInterfaceJ 3	UrlMatcherInterfaceI ;	RequestMatcherInterface%H K	RedirectableUrlMatcherInterfaceG 9	MatcherDumperInterfaceF =	GeneratorDumperInterfaceE 7	UrlGeneratorInterface'D O	ConfigurableRequirementsInterfaceC 1	ExceptionInterfaceB 1	ExceptionInterfaceA =	lProfilerStorageInterface@ +	kLoggerInterface? 5	kDebugLoggerInterface> 3	_TerminableInterface= +	_KernelInterface< 3	_HttpKernelInterface; )	jStoreInterface': O	jEsiResponseCacheStrategyInterface9 ?	iFragmentRendererInterface8 9	hHttpExceptionInterface 7 A	bLateDataCollectorInterface6 9	bDataCollectorInterface!5 C	aControllerResolverInterface4 /	^WarmableInterface3 5	^CacheWarmerInterface2 7	]CacheClearerInterface1 +	\BundleInterface0 ;	PSessionStorageInterface/ -	NSessionInterface. 3	NSessionBagInterface- /	MFlashBagInterface, 7	LAttributeBagInterface+ ;	[SessionHandlerInterface* ;	HRequestMatcherInterface) =	KMimeTypeGuesserInterface( ?	KExtensionGuesserInterface' )	?ValueInterface& 1	>ExceptionInterface% -	<AdapterInterface $ A	2FatalErrorHandlerInterface# 3	.TranslatorInterface" 1	-ExtensionInterface! +	$ParserInterface  -	#HandlerInterface '	"NodeInterface 1	!ExceptionInterface +	OutputInterface 9	ConsoleOutputInterface )	InputInterface 3	InputAwareInterface   {  gH$nM3nQ;tV< zV7





j
R
1
					w	V	7	w]H+c?mN'{T=mP:c9 nU1jQ7  =`StreamingEngineInterface +`EngineInterface /`DebuggerInterface -_PackageInterface 3ZSerializerInterface =ZSerializerAwareInterface 3YNormalizerInterface 7YNormalizableInterface 7YDenormalizerInterface ;YDenormalizableInterface XException!
 CWNormalizationAwareInterface	 -WEncoderInterface -WDecoderInterface, Y>SessionAuthenticationStrategyInterface! C=RememberMeServicesInterface# G<LogoutSuccessHandlerInterface 9<LogoutHandlerInterface /;ListenerInterface' O9AuthenticationEntryPointInterface" EAccessDeniedHandlerInterface+  W8AuthenticationSuccessHandlerInterface+ W8AuthenticationFailureHandlerInterface~ 57FirewallMapInterface} 17AccessMapInterface| 74UserProviderInterface{ '4UserInterfacez 54UserCheckerInterfacey 14EquatableInterfacex 74AdvancedUserInterfacew =-SecurityContextInterfacev '3RoleInterfaceu 93RoleHierarchyInterfacet =0PasswordEncoderInterfaces ;0EncoderFactoryInterfacer )/VoterInterface$q I.AccessDecisionManagerInterfacep ),TokenInterfaceo 9+TokenProviderInterfacen =+PersistentTokenInterface%m K*AuthenticationProviderInterface*l U)AuthenticationTrustResolverInterface$k I)AuthenticationManagerInterfacej 9'PermissionMapInterface0i aSecurityIdentityRetrievalStrategyInterfaceh ?SecurityIdentityInterface)g SPermissionGrantingStrategyInterface.f ]ObjectIdentityRetrievalStrategyInterfacee ;ObjectIdentityInterface!d CMutableAclProviderInterfacec 3MutableAclInterfaceb 3FieldEntryInterfacea )EntryInterface` 7DomainObjectInterface_ 5AuditLoggerInterface^ ;AuditableEntryInterface] 7AuditableAclInterface\ 5AclProviderInterface[ %AclInterfaceZ /AclCacheInterfaceY +RouterInterfaceX 9RouteCompilerInterface"W ERequestContextAwareInterfaceV 3UrlMatcherInterfaceU ;RequestMatcherInterface%T KRedirectableUrlMatcherInterfaceS 9MatcherDumperInterfaceR =GeneratorDumperInterfaceQ 7UrlGeneratorInterface'P OConfigurableRequirementsInterfaceO 1ExceptionInterfaceN 1ExceptionInterfaceM =OptionsResolverInterfaceL 1ExceptionInterfaceK =
ProfilerStorageInterfaceJ +
LoggerInterfaceI 5
DebugLoggerInterfaceH 3
TerminableInterfaceG +
KernelInterfaceF 3
HttpKernelInterfaceE )
StoreInterface'D O
EsiResponseCacheStrategyInterfaceC 9
HttpExceptionInterfaceB 9
DataCollectorInterface!A C
ControllerResolverInterface@ /
WarmableInterface? 5
CacheWarmerInterface> 7
CacheClearerInterface= +
BundleInterface< ;
SessionStorageInterface; -
SessionInterface: 3
SessionBagInterface9 /
FlashBagInterface8 7
AttributeBagInterface7 ;
^SessionHandlerInterface6 ;
RequestMatcherInterface5 =
MimeTypeGuesserInterface4 ?
ExtensionGuesserInterface#3 G
PropertyPathIteratorInterface2 7
PropertyPathInterface1 '
FormInterface0 5
FormBuilderInterface/ =
ViolationMapperInterface. 7
CsrfProviderInterface- 3
ChoiceListInterface, ?
ResolvedFormTypeInterface&+ M
ResolvedFormTypeFactoryInterface* 9
FormValidatorInterface) /
FormTypeInterface( =
FormTypeGuesserInterface ' A
FormTypeExtensionInterface& 7
FormRendererInterface!% C
FormRendererEngineInterface$ 7
FormRegistryInterface# '
FormInterface" 5
FormFactoryInterface!! C
FormFactoryBuilderInterface  9
FormExtensionInterface 3
FormConfigInterface  A
FormConfigBuilderInterface 5
FormBuilderInterface =
DataTransformerInterface 3
DataMapperInterface    qV> eC!{`R;$lQ9#jSE(




g
G
/
							^	?	)	
zT<%z_6j@fJ+tQ0rQ4 wW9w]9         9DataCollectorInterface! CControllerResolverInterface /WarmableInterface 5CacheWarmerInterface 7CacheClearerInterface +BundleInterface ;SessionStorageInterface -SessionInterface 3SessionBagInterface /FlashBagInterface 7AttributeBagInterface ;ESessionHandlerInterface ;RequestMatcherInterface =MimeTypeGuesserInterface ?ExtensionGuesserInterface# GPropertyPathIteratorInterface
 7PropertyPathInterface	 'FormInterface 5FormBuilderInterface =ViolationMapperInterface 7CsrfProviderInterface 3ChoiceListInterface ?ResolvedFormTypeInterface& MResolvedFormTypeFactoryInterface 9FormValidatorInterface /FormTypeInterface  =FormTypeGuesserInterface  AFormTypeExtensionInterface~ 7FormRendererInterface!} CFormRendererEngineInterface| 7FormRegistryInterface{ 'FormInterfacez 5FormFactoryInterface!y CFormFactoryBuilderInterfacex 9FormExtensionInterfacew 3FormConfigInterface v AFormConfigBuilderInterfaceu 5FormBuilderInterfacet =DataTransformerInterfaces 3DataMapperInterfacer 1ExceptionInterfaceq =EventSubscriberInterfacep =EventDispatcherInterface'o OiTraceableEventDispatcherInterfacen 7xParameterBagInterfacem 1hExtensionInterface%l KhConfigurationExtensionInterfacek 1vExceptionInterfacej +uDumperInterfacei =sTaggedContainerInterfaceh )sScopeInterface&g MsIntrospectableContainerInterfacef 1sContainerInterfacee ;sContainerAwareInterfaced ;tRepeatablePassInterfacec 7tCompilerPassInterfaceb 'pNodeInterfacea +eOutputInterface` 9eConsoleOutputInterface_ )dInputInterface^ +cHelperInterface#] GbOutputFormatterStyleInterface\ =bOutputFormatterInterface[ /ZResourceInterfaceZ ;YLoaderResolverInterfaceY +YLoaderInterfaceX 5TFileLocatorInterfaceW 9UPrototypeNodeInterfaceV 'UNodeInterfaceU 9UConfigurationInterface#T GVParentNodeDefinitionInterfaceS 3VNodeParentInterface
R SIBarQ 'PSomeInterfaceP !KGInterfaceO !KCInterface"N EUserProviderFactoryInterfaceM =SecurityFactoryInterfaceL +EngineInterfaceK ;TemplateFinderInterfaceJ 7TwigRendererInterface!I CTwigRendererEngineInterfaceH /RegistryInterfaceG 7EntityLoaderInterface F AClassLoaderTest_InterfaceA!E CReflectionProviderInterfaceD 5ClassFinderInterfaceC ProxyB )ProxyExceptionA 'MappingDriver@ #FileLocator? /ReflectionService> 5ClassMetadataFactory= 'ClassMetadata< Proxy; -ObjectRepository: 1ObjectManagerAware9 'ObjectManager8 +ManagerRegistry7 1ConnectionRegistry6 ;PropertyChangedListener5 7NotifyPropertyChanged4 +EventSubscriber3 !Comparable2 !Expression1 !Selectable0 !Collection/ 'MultiGetCache. )FlushableCache- )ClearableCache, Cache+ 1ExceptionInterface* 7}StaticLoaderInterface) +zEntityInterface( +wLoaderInterface#' GuClassMetadataFactoryInterface& )vCacheInterface% 1qValidatorInterface$ ?qValidatorContextInterface# ?qValidatorBuilderInterface " AqObjectInitializerInterface$! IqGroupSequenceProviderInterface"  EqConstraintValidatorInterface) SqConstraintValidatorFactoryInterface 3kTranslatorInterface ?kMessageCatalogueInterface +lLoaderInterface 1jExtractorInterface +iDumperInterface +bLoaderInterface +aHelperInterface  A`TemplateReferenceInterface! C`TemplateNameParserInterface   | lP3^@ wX@&{dH,i6



z
[
D

					o	Q	6		Q,P7pO3 hP8vO,
x`B'yX@%xX9!    7WriteRequestInterface +WaiterInterface 9WaiterFactoryInterface ;ResourceWaiterInterface 1SignatureInterface  AEndpointSignatureInterface 3UploadPartInterface /UploadIdInterface 9TransferStateInterface /TransferInterface 1ChunkHashInterface +FacadeInterface
 =ExceptionParserInterface	 ?ExceptionFactoryInterface 7AwsExceptionInterface 5CredentialsInterface 1AwsClientInterface 1pExceptionInterface 1mExceptionInterface 1fExceptionInterface 7dStaticLoaderInterface +aEntityInterface  +^LoaderInterface# G\ClassMetadataFactoryInterface~ )]CacheInterface} 1XValidatorInterface| ?XValidatorContextInterface{ ?XValidatorBuilderInterface z AXObjectInitializerInterface$y IXGroupSequenceProviderInterface"x EXConstraintValidatorInterface)w SXConstraintValidatorFactoryInterfacev 3RTranslatorInterfaceu ?RMessageCatalogueInterfacet +SLoaderInterfaces 1QExtractorInterfacer +PDumperInterfaceq +ILoaderInterfacep +HHelperInterface o AGTemplateReferenceInterface!n CGTemplateNameParserInterfacem =GStreamingEngineInterfacel +GEngineInterfacek /GDebuggerInterfacej -FPackageInterfacei 3ASerializerInterfaceh =ASerializerAwareInterfaceg 3@NormalizerInterfacef 7@NormalizableInterfacee 7@DenormalizerInterfaced ;@DenormalizableInterfacec ?Exception!b C>NormalizationAwareInterfacea ->EncoderInterface` ->DecoderInterface,_ Y%SessionAuthenticationStrategyInterface!^ C$RememberMeServicesInterface#] G#LogoutSuccessHandlerInterface\ 9#LogoutHandlerInterface[ /"ListenerInterface'Z O AuthenticationEntryPointInterface"Y EkAccessDeniedHandlerInterface+X WAuthenticationSuccessHandlerInterface+W WAuthenticationFailureHandlerInterfaceV 5FirewallMapInterfaceU 1AccessMapInterfaceT 7UserProviderInterfaceS 'UserInterfaceR 5UserCheckerInterfaceQ 1EquatableInterfaceP 7AdvancedUserInterfaceO =SecurityContextInterfaceN 'RoleInterfaceM 9RoleHierarchyInterfaceL =PasswordEncoderInterfaceK ;EncoderFactoryInterfaceJ )VoterInterface$I IAccessDecisionManagerInterfaceH )TokenInterfaceG 9TokenProviderInterfaceF =PersistentTokenInterface%E KAuthenticationProviderInterface*D UAuthenticationTrustResolverInterface$C IAuthenticationManagerInterfaceB 9PermissionMapInterface0A ajSecurityIdentityRetrievalStrategyInterface@ ?jSecurityIdentityInterface)? SjPermissionGrantingStrategyInterface.> ]jObjectIdentityRetrievalStrategyInterface= ;jObjectIdentityInterface!< CjMutableAclProviderInterface; 3jMutableAclInterface: 3jFieldEntryInterface9 )jEntryInterface8 7jDomainObjectInterface7 5jAuditLoggerInterface6 ;jAuditableEntryInterface5 7jAuditableAclInterface4 5jAclProviderInterface3 %jAclInterface2 /jAclCacheInterface1 +RouterInterface0 9RouteCompilerInterface"/ ERequestContextAwareInterface. 3 UrlMatcherInterface- ; RequestMatcherInterface%, K RedirectableUrlMatcherInterface+ 9MatcherDumperInterface* =GeneratorDumperInterface) 7UrlGeneratorInterface'( OConfigurableRequirementsInterface' 1ExceptionInterface& 1ExceptionInterface% =OptionsResolverInterface$ 1ExceptionInterface# =ProfilerStorageInterface" +LoggerInterface! 5DebugLoggerInterface  3TerminableInterface +KernelInterface 3HttpKernelInterface )StoreInterface' OEsiResponseCacheStrategyInterface 9HttpExceptionInterface   * zW<qR8iA  }eP:#
oX?'






q
T
=
$
						s	[	>	(	
qL)kR4	bH'j= wbA
}Y7vcH1y\A*                           )GrantInterface 1SignatureInterface 5CredentialsInterface  AClientCredentialsInterface 1SignatureInterface 5CredentialsInterface  AClientCredentialsInterface 'ISingleMemory IMutex %IRedisServer )IMemoryStorage 1IMemcacheDecorator !IKeyLocker 'ISingleMemory IMutex %IRedisServer
 )IMemoryStorage	 1IMemcacheDecorator !IKeyLocker' OSwift_Transport_EsmtpHandlerMixin +Swift_Transport ?Swift_Transport_SmtpAgent! CSwift_Transport_MailInvoker =Swift_Transport_IoBuffer" ESwift_Transport_EsmtpHandler) SSwift_Transport_Esmtp_Authenticator  1Swift_StreamFilter #Swift_Spool ~ ASwift_Signers_HeaderSigner} =Swift_Signers_BodySigner| %Swift_Signer${ ISwift_ReplacementFilterFactoryz 3Swift_Plugins_Timery 7Swift_Plugins_Sleeperx 9Swift_Plugins_Reporter&w MSwift_Plugins_Pop_Pop3Connectionv 5Swift_Plugins_Logger*u USwift_Plugins_Decorator_Replacementst 9Swift_OutputByteStream$s ISwift_Mime_ParameterizedHeaderr 7Swift_Mime_MimeEntityq 1Swift_Mime_Messagep 5Swift_Mime_HeaderSeto =Swift_Mime_HeaderFactoryn =Swift_Mime_HeaderEncoderm /Swift_Mime_Header!l CSwift_Mime_EncodingObserverk ?Swift_Mime_ContentEncoder j ASwift_Mime_CharsetObserver$i ISwift_Mailer_RecipientIteratorh )Swift_KeyCache(g QSwift_KeyCache_KeyCacheInputStreamf 7Swift_InputByteStreame -Swift_Filterabled -Swift_FileStream-c [Swift_Events_TransportExceptionListener*b USwift_Events_TransportChangeListenera ?Swift_Events_SendListener#` GSwift_Events_ResponseListener _ ASwift_Events_EventListener"^ ESwift_Events_EventDispatcher] 1Swift_Events_Event"\ ESwift_Events_CommandListener[ 'Swift_EncoderZ 7Swift_CharacterStream"Y ESwift_CharacterReaderFactoryX 7Swift_CharacterReaderW 'TypeInterfaceV 5ParserRulesInterfaceU +ParserInterfaceT 'TypeInterfaceS 5ParserRulesInterfaceR +ParserInterfaceQ -PaletteInterfaceP )ColorInterfaceO ;MetadataReaderInterfaceN 'FillInterfaceM -|ProfileInterfaceL )|PointInterfaceK 5|ManipulatorInterfaceJ +|LayersInterfaceI -|ImagineInterfaceH )|ImageInterfaceG '|FontInterfaceF %|BoxInterfaceE +yFilterInterfaceD vExceptionC -EffectsInterfaceB +DrawerInterfaceA -\PaletteInterface@ )]ColorInterface? ;[MetadataReaderInterface> 'uFillInterface= -XProfileInterface< )XPointInterface; 5XManipulatorInterface: +XLayersInterface9 -XImagineInterface8 )XImageInterface7 'XFontInterface6 %XBoxInterface5 +UFilterInterface4 RException3 -tEffectsInterface2 +sDrawerInterface 1 AFilenameConverterInterface0 5S3SignatureInterface/ ;SessionHandlerInterface. =LockingStrategyInterface%- KLockingStrategyFactoryInterface, 7WriteRequestInterface+ +WaiterInterface* 9WaiterFactoryInterface) ;ResourceWaiterInterface( 1SignatureInterface ' AEndpointSignatureInterface& 3UploadPartInterface% /UploadIdInterface$ 9TransferStateInterface# /TransferInterface" 1ChunkHashInterface! +FacadeInterface  =ExceptionParserInterface ?ExceptionFactoryInterface 7AwsExceptionInterface 5CredentialsInterface 1~AwsClientInterface  AFilenameConverterInterface 5S3SignatureInterface ;SessionHandlerInterface =LockingStrategyInterface% KLockingStrategyFactoryInterface   2 rN%ygS2k> ~MvP'





x
]
F
/
								t	`	P	8		
~j[I( }n_SD2kT@/
xeM:*nR; rZB,iN7yR2/ ;YPHP_CodeCoverage_Driver$. IWPHPUnit_Runner_TestSuiteLoader$- IWPHPUnit_Framework_TestListener, 9WPHPUnit_Framework_Test#+ GWPHPUnit_Framework_SkippedTest&* MWPHPUnit_Framework_SelfDescribing&) MWPHPUnit_Framework_IncompleteTest( )LValueInterface' 1KExceptionInterface& -IAdapterInterface% 1HRequests_Transport$ )HRequests_Proxy# +HRequests_Hooker" 'HRequests_Auth! 1GRequests_Transport  )GRequests_Proxy +GRequests_Hooker 'GRequests_Auth +DMustache_Logger +DMustache_Loader# GDMustache_Loader_MutableLoader 1DMustache_Exception )DMustache_Cache +CMustache_Logger +CMustache_Loader# GCMustache_Loader_MutableLoader 1CMustache_Exception )CMustache_Cache 3&DataDumperInterface +%DumperInterface +%ClonerInterface 3!DeprecatedInterface  AFatalErrorHandlerInterface
 View Factory Validator 7ValidatesWhenResolved
 Factory	 !Renderable +MessageProvider !MessageBag Jsonable Htmlable Arrayable #UrlRoutable %UrlGenerator 5TerminableMiddleware  +ResponseFactory Registrar~ !Middleware} Database| #ShouldQueue{ )ShouldBeQueuedz +QueueableEntityy Queuex Monitor	w Jobv Factoryu )EntityResolvert Pipeline	s Hubr Presenterq Paginatorp 5LengthAwarePaginatoro MailQueuen Mailer	m Logl 
Kernelk 	Hasherj #Applicationi !Filesystemh Factoryg Cloudf !Dispatchere Encrypterd -ExceptionHandlerc +QueueingFactoryb Factorya =ContextualBindingBuilder` Container_ Kernel^ #Application] !Repository\ Store[ !RepositoryZ FactoryY %SelfHandlingX 1QueueingDispatcherW +HandlerResolverV !DispatcherU 1 ShouldBroadcastNowT + ShouldBroadcastS  FactoryR # BroadcasterQ %UserProviderP RegistrarO )PasswordBrokerN GuardM -CanResetPasswordL +Authenticatable
K GateJ %AuthorizableI 3RouteStackInterfaceH )RouteInterfaceG )RouteInterfaceF 1ExceptionInterfaceE )RouteInterfaceD ;ResponseSenderInterfaceC 1ExceptionInterfaceB +PluginInterface%A KInjectApplicationEventInterface@ 5ApplicationInterface&? MChatroulette_ConnectionInterface#> GReact_WritableStreamInterface#= GReact_ReadableStreamInterface< 7React_StreamInterface%; KEvenement_EventEmitterInterface7: oMockeryTest_InterfaceThatExtendsIteratorAggregate.9 ]MockeryTest_InterfaceThatExtendsIterator.8 ]MockeryTest_InterfaceWithMethodParamSelf17 cMockeryTest_InterfaceWithPublicStaticMethod-6 [MockeryTest_InterfaceWithAbstractMethod5 9MockeryTest_Interface24 9MockeryTest_Interface13 7MockeryTest_Interface*2 UMockeryTest_InterfaceWithTraversable!1 CMockeryTest_NameOfInterface0 'MockInterface/ Loader
. Pass- )TestInterface2, 'TestInterface+ ?TestTraversableInterface3* ?TestTraversableInterface2) =TestTraversableInterface( #TargetClass' Generator& -IgnoreTestPolicy$% IPHPUnit_Runner_TestSuiteLoader$$ IPHPUnit_Framework_TestListener# 9PHPUnit_Framework_Test#" GPHPUnit_Framework_SkippedTest&! MPHPUnit_Framework_SelfDescribing!  CPHPUnit_Framework_RiskyTest& MPHPUnit_Framework_IncompleteTest /PHPUnit_Exception /ProviderInterface )GrantInterface /ProviderInterface   { f@!j-W(Z*f?





p
L
5
						x	W	>	iI'mU;rU6{^9gD$~_E,	b=!mM,                       * )ErrorInterface) =ResponseHandlerInterface( ;ResponseReaderInterface ' ARequestSerializerInterface & AProtocolProcessorInterface% -ProfileInterface$ 3ParametersInterface# ;NodeConnectionInterface" -FactoryInterface! 3ConnectionInterface"  ECompositeConnectionInterface" EAggregateConnectionInterface 5ReplicationInterface -ClusterInterface -OptionsInterface +OptionInterface 1ProcessorInterface  APrefixableCommandInterface -CommandInterface /StrategyInterface 9HashGeneratorInterface 5DistributorInterface +ClientInterface 9ClientContextInterface /ResponseInterface )ErrorInterface =ResponseHandlerInterface ;ResponseReaderInterface  ARequestSerializerInterface  AProtocolProcessorInterface -ProfileInterface 3ParametersInterface
 ;NodeConnectionInterface	 -FactoryInterface 3ConnectionInterface" ECompositeConnectionInterface" EAggregateConnectionInterface 5ReplicationInterface -ClusterInterface -OptionsInterface +OptionInterface 1ProcessorInterface   APrefixableCommandInterface -CommandInterface~ /StrategyInterface} 9HashGeneratorInterface| 5DistributorInterface{ +ClientInterfacez 9ClientContextInterfacey 9iYoast_License_Managerx ?StepArgumentNodeInterfacew 5NodeVisitorInterfacev +LoaderInterfaceu 3FileLoaderInterfacet /KeywordsInterfaces +FilterInterfacer )CacheInterfaceq 3HookLoaderInterfacep 'HookInterfaceo 1FormatterInterfacen 1ExtensionInterfacem )EventInterface!l CDefinitionProposalInterfacek ?DefinitionLoaderInterfacej ;TransformationInterfacei 3DefinitionInterfaceh -SubstepInterfaceg +LoaderInterfacef 5InitializerInterface e ATranslatedContextInterface$d ISubcontextableContextInterfacec =ExtendedContextInterfaceb -ContextInterfacea =ClosuredContextInterface` 7ClassGuesserInterface_ 1ProcessorInterface^ 3AnnotationInterface] 3HookLoaderInterface\ 'HookInterface[ 1{FormatterInterfaceZ 1zExtensionInterfaceY )xEventInterface!X CtDefinitionProposalInterfaceW ?sDefinitionLoaderInterfaceV ;rTransformationInterfaceU 3rDefinitionInterfaceT -oSubstepInterfaceS +nLoaderInterfaceR 5InitializerInterface Q AlTranslatedContextInterface$P IlSubcontextableContextInterfaceO =lExtendedContextInterfaceN -lContextInterfaceM =lClosuredContextInterfaceL 7mClassGuesserInterfaceK 1kProcessorInterfaceJ 3eAnnotationInterfaceI #cAnInterface-H [cPHPUnit_Framework_MockObject_Verifiable'G OcPHPUnit_Framework_MockObject_Stub9F scPHPUnit_Framework_MockObject_Stub_MatcherCollection-E [cPHPUnit_Framework_MockObject_MockObject5D kcPHPUnit_Framework_MockObject_Matcher_Invocation,C YcPHPUnit_Framework_MockObject_Invokable-B [cPHPUnit_Framework_MockObject_Invocation/A _cPHPUnit_Framework_MockObject_Builder_Stub:@ ucPHPUnit_Framework_MockObject_Builder_ParametersMatch4? icPHPUnit_Framework_MockObject_Builder_Namespace:> ucPHPUnit_Framework_MockObject_Builder_MethodNameMatch0= acPHPUnit_Framework_MockObject_Builder_Match3< gcPHPUnit_Framework_MockObject_Builder_Identity$; IaPHPUnit_Runner_TestSuiteLoader$: IaPHPUnit_Framework_TestListener9 9aPHPUnit_Framework_Test#8 GaPHPUnit_Framework_SkippedTest&7 MaPHPUnit_Framework_SelfDescribing&6 MaPHPUnit_Framework_IncompleteTest5 \i4 \b3 \a2 \iTemplate	1 YFoo	0 YBor    oV@mJ*r\I5z^E%uR3




r
Z
>
!
					o	F	Z4~_I(
o^J6 	nI+gEmV/jM2[<              . 7Swift_Plugins_Sleeper- 9Swift_Plugins_Reporter&, MSwift_Plugins_Pop_Pop3Connection+ 5Swift_Plugins_Logger** USwift_Plugins_Decorator_Replacements) 9Swift_OutputByteStream$( ISwift_Mime_ParameterizedHeader' 7Swift_Mime_MimeEntity& 1Swift_Mime_Message% 5Swift_Mime_HeaderSet$ =Swift_Mime_HeaderFactory# =Swift_Mime_HeaderEncoder" /Swift_Mime_Header!! CSwift_Mime_EncodingObserver  ?Swift_Mime_ContentEncoder  ASwift_Mime_CharsetObserver$ ISwift_Mailer_RecipientIterator )Swift_KeyCache( QSwift_KeyCache_KeyCacheInputStream 7Swift_InputByteStream -Swift_Filterable -Swift_FileStream- [Swift_Events_TransportExceptionListener* USwift_Events_TransportChangeListener ?Swift_Events_SendListener# GSwift_Events_ResponseListener  ASwift_Events_EventListener" ESwift_Events_EventDispatcher 1Swift_Events_Event" ESwift_Events_CommandListener 'Swift_Encoder 7Swift_CharacterStream" ESwift_CharacterReaderFactory 7Swift_CharacterReader I I
 I	 I )PhpInterpreter 'OutputHandler I I I I )PhpInterpreter 'OutputHandler  #ITranslator #IHtmlString~ IAdapter} IAdapter| 7SecureRandomInterface{ 7UserProviderInterfacez 'UserInterfacey 5UserCheckerInterfacex 1EquatableInterfacew 7AdvancedUserInterfacev =SecurityContextInterfaceu 'RoleInterfacet 9RoleHierarchyInterfaces 1ExceptionInterface"r EUserPasswordEncoderInterfaceq =PasswordEncoderInterfacep ;EncoderFactoryInterfaceo 7EncoderAwareInterfacen )VoterInterface#m GAuthorizationCheckerInterface$l IAccessDecisionManagerInterfacek )TokenInterfacej 7TokenStorageInterfacei 9TokenProviderInterfaceh =PersistentTokenInterface%g KAuthenticationProviderInterface%f KSimplePreAuthenticatorInterface&e MSimpleFormAuthenticatorInterface"d ESimpleAuthenticatorInterface*c UAuthenticationTrustResolverInterface$b IAuthenticationManagerInterfacea =rProfilerStorageInterface` +qLoggerInterface_ 5qDebugLoggerInterface^ 3eTerminableInterface] +eKernelInterface\ 3eHttpKernelInterface[ 1pSurrogateInterfaceZ )pStoreInterface$Y IpResponseCacheStrategyInterface'X OpEsiResponseCacheStrategyInterfaceW ?oFragmentRendererInterfaceV 9nHttpExceptionInterface U AhLateDataCollectorInterfaceT 9hDataCollectorInterface!S CgControllerResolverInterfaceR /dWarmableInterfaceQ 5dCacheWarmerInterfaceP 7cCacheClearerInterfaceO +bBundleInterfaceN ;VSessionStorageInterfaceM -TSessionInterfaceL 3TSessionBagInterfaceK /SFlashBagInterfaceJ 7RAttributeBagInterfaceI ;aSessionHandlerInterfaceH ;NRequestMatcherInterfaceG =QMimeTypeGuesserInterfaceF ?QExtensionGuesserInterfaceE #JRouteParserD !JDispatcherC 'JDataGeneratorB )GFieldInterfaceA 37ViewFinderInterface@ +6EngineInterface? /5CompilerInterface> ?4PresenceVerifierInterface= +3LoaderInterface< -0SessionInterface; ;0ExistenceAwareInterface : A-FailedJobProviderInterface9 1+ConnectorInterface"8 EMigrationRepositoryInterface7 )ScopeInterface6 1ConnectorInterface!5 CConnectionResolverInterface4 3ConnectionInterface3 =
TokenRepositoryInterface2 'Incrementable1 -FunctionProvider0 'Deactivatable/ -vfsStreamVisitor. -vfsStreamContent- 1vfsStreamContainer, #FileContent+ /ResponseInterface   R  dP5	}e;"c=p=N 



W
$			o	5s<E]#m=h:]X.c.                                0  aehough_templating_test_MockLoggerInterface. ]ehough_templating_test_MyStreamingEngine2~ eehough_templating_TemplateReferenceInterface3} gehough_templating_TemplateNameParserInterface0| aehough_templating_StreamingEngineInterface.{ ]ehough_templating_loader_LoaderInterface.z ]ehough_templating_helper_HelperInterface'y Oehough_templating_EngineInterface)x Sehough_templating_DebuggerInterface.w ]ehough_templating_asset_PackageInterface0v aehough_tickertape_EventSubscriberInterface0u aehough_tickertape_EventDispatcherInterface?t ehough_tickertape_debug_TraceableEventDispatcherInterface0s aehough_tickertape_EventSubscriberInterface0r aehough_tickertape_EventDispatcherInterface?q ehough_tickertape_debug_TraceableEventDispatcherInterface2p eehough_stash_session_SessionHandlerInterface+o Wehough_stash_interfaces_PoolInterface+n Wehough_stash_interfaces_ItemInterface4m iehough_stash_interfaces_drivers_MultiInterface5l kehough_stash_interfaces_drivers_IncDecInterface5k kehough_stash_interfaces_drivers_ExtendInterface-j [ehough_stash_interfaces_DriverInterface&i Mehough_stash_exception_Exception,h Yehough_iconic_TaggedContainerInterface"g Eehough_iconic_ScopeInterface6f mehough_iconic_parameterbag_ParameterBagInterface7e oehough_iconic_lazyproxy_phpdumper_DumperInterfaceAd ehough_iconic_lazyproxy_instantiator_InstantiatorInterface4c iehough_iconic_IntrospectableContainerInterface7b oehough_iconic_extension_PrependExtensionInterface0a aehough_iconic_extension_ExtensionInterface=` {ehough_iconic_extension_ConfigurationExtensionInterface0_ aehough_iconic_exception_ExceptionInterface*^ Uehough_iconic_dumper_DumperInterface&] Mehough_iconic_ContainerInterface+\ Wehough_iconic_ContainerAwareInterface4[ iehough_iconic_compiler_RepeatablePassInterface2Z eehough_iconic_compiler_CompilerPassInterface,Y Yehough_iconic_TaggedContainerInterface"X Eehough_iconic_ScopeInterface6W mehough_iconic_parameterbag_ParameterBagInterface7V oehough_iconic_lazyproxy_phpdumper_DumperInterfaceAU ehough_iconic_lazyproxy_instantiator_InstantiatorInterface4T iehough_iconic_IntrospectableContainerInterface7S oehough_iconic_extension_PrependExtensionInterface0R aehough_iconic_extension_ExtensionInterface=Q {ehough_iconic_extension_ConfigurationExtensionInterface0P aehough_iconic_exception_ExceptionInterface*O Uehough_iconic_dumper_DumperInterface&N Mehough_iconic_ContainerInterface+M Wehough_iconic_ContainerAwareInterface4L iehough_iconic_compiler_RepeatablePassInterface2K eehough_iconic_compiler_CompilerPassInterface#J Gehough_finder_FinderInterface*I Uehough_finder_FinderFactoryInterface-H [ehough_finder_expression_ValueInterface0G aehough_finder_exception_ExceptionInterface,F Yehough_finder_adapter_AdapterInterface+E Wehough_filesystem_FilesystemInterface6D mehough_filesystem_exception_IOExceptionInterface4C iehough_filesystem_exception_ExceptionInterface#B Gehough_finder_FinderInterface*A Uehough_finder_FinderFactoryInterface-@ [ehough_finder_expression_ValueInterface0? aehough_finder_exception_ExceptionInterface,> Yehough_finder_adapter_AdapterInterface= -HandlerInterface'< OSwift_Transport_EsmtpHandlerMixin; +Swift_Transport: ?Swift_Transport_SmtpAgent!9 CSwift_Transport_MailInvoker8 =Swift_Transport_IoBuffer"7 ESwift_Transport_EsmtpHandler)6 SSwift_Transport_Esmtp_Authenticator5 1Swift_StreamFilter4 #Swift_Spool 3 ASwift_Signers_HeaderSigner2 =Swift_Signers_BodySigner1 %Swift_Signer$0 ISwift_ReplacementFilterFactory/ 3Swift_Plugins_Timer   t yHyHrI#~V.qA




Z
1
				c	=	xK-ZG4xW:"
rU: x`G-iO5t\<#mR9"                      t 3HasEmitterInterfaces )EventInterfacer -EmitterInterfaceq 1CookieJarInterfacep -ToArrayInterfaceo +ClientInterfacen 5TransactionInterfacem =ParallelAdapterInterfacel -AdapterInterfacek )ValueInterfacej )ValueInterfacei -SessionInterfaceh ;ExistenceAwareInterfaceg +LoaderInterface)f SEnvironmentVariablesLoaderInterfacee )StoreInterfaced 3ViewFinderInterfacec +EngineInterfaceb /CompilerInterfacea '~UserInterface` /~ProviderInterface_ /{ThrottleInterface^ /{ProviderInterface] -ySessionInterface\ +wHasherInterface[ /uProviderInterfaceZ )uGroupInterfaceY +mCookieInterfaceX 'hUserInterfaceW /hProviderInterfaceV /eThrottleInterfaceU /eProviderInterfaceT -cSessionInterfaceS +aHasherInterfaceR /_ProviderInterfaceQ )_GroupInterfaceP +WCookieInterfaceO ?TResponsePreparerInterfaceN 3TRenderableInterfaceM =TMessageProviderInterfaceL /TJsonableInterfaceK 1TArrayableInterfaceJ 5NTransformerInterfaceI )6FixerInterfaceH +6FinderInterfaceG +6ConfigInterfaceF 56ConfigAwareInterfaceE 54TransformerInterfaceD )FixerInterfaceC +FinderInterfaceB +ConfigInterfaceA 5ConfigAwareInterface@ =ServiceProviderInterface? 3TranslatorInterface> 1ExtensionInterface= +ParserInterface< -
HandlerInterface; '	NodeInterface: 1ExceptionInterface
9 IBar8 'SomeInterface7 !GInterface6 !CInterface.5 ]MockeryTest_InterfaceWithMethodParamSelf14 cMockeryTest_InterfaceWithPublicStaticMethod-3 [MockeryTest_InterfaceWithAbstractMethod2 9MockeryTest_Interface21 9MockeryTest_Interface10 7MockeryTest_Interface*/ UMockeryTest_InterfaceWithTraversable!. CMockeryTest_NameOfInterface*- Uehough_mockery_mockery_MockInterface#, Gpuzzle_stream_StreamInterface++ Wpuzzle_stream_MetadataStreamInterface* ;puzzle_ToArrayInterface#) Gpuzzle_post_PostFileInterface#( Gpuzzle_post_PostBodyInterface&' Mpuzzle_message_ResponseInterface%& Kpuzzle_message_RequestInterface%% Kpuzzle_message_MessageInterface,$ Ypuzzle_message_MessageFactoryInterface&# Mpuzzle_event_SubscriberInterface&" Mpuzzle_event_HasEmitterInterface!! Cpuzzle_event_EventInterface#  Gpuzzle_event_EmitterInterface& Mpuzzle_cookie_CookieJarInterface 9puzzle_ClientInterface) Spuzzle_adapter_TransactionInterface- [puzzle_adapter_ParallelAdapterInterface% Kpuzzle_adapter_AdapterInterface ;puzzle_ToArrayInterface# Gpuzzle_post_PostFileInterface# Gpuzzle_post_PostBodyInterface& Mpuzzle_message_ResponseInterface% Kpuzzle_message_RequestInterface% Kpuzzle_message_MessageInterface, Ypuzzle_message_MessageFactoryInterface& Mpuzzle_event_SubscriberInterface& Mpuzzle_event_HasEmitterInterface! Cpuzzle_event_EventInterface# Gpuzzle_event_EmitterInterface& Mpuzzle_cookie_CookieJarInterface 9puzzle_ClientInterface) Spuzzle_adapter_TransactionInterface- [puzzle_adapter_ParallelAdapterInterface% Kpuzzle_adapter_AdapterInterface0
 aehough_templating_test_MockLoggerInterface.	 ]ehough_templating_test_MyStreamingEngine2 eehough_templating_TemplateReferenceInterface3 gehough_templating_TemplateNameParserInterface0 aehough_templating_StreamingEngineInterface. ]ehough_templating_loader_LoaderInterface. ]ehough_templating_helper_HelperInterface' Oehough_templating_EngineInterface) Sehough_templating_DebuggerInterface. ]ehough_templating_asset_PackageInterface    x^D$cB*}bB#gD3 sW3





d
I
2
					|	`	G	,	~b@(`M.nZ9[=j9mD+
nSB.uQ0           z pReRunnery =fPlatformSpecificReRunner!x CeSuitePrerequisitesInterfacew ?dExecutionContextInterfacev ?bMatchersProviderInterfaceu -bMatcherInterfacet =aResourceManagerInterfaces =aResourceLocatorInterfacer /aResourceInterfaceq #oIOInterfacep YTemplateo 1\PresenterInterfacen +[EngineInterfacem !ZReportIteml 1nExtensionInterfacek )QEventInterfacej NPrompteri !LCodeWriterh 1JGeneratorInterfaceg =mAccessInspectorInterfacef -9ExampleInterface&e M&Chatroulette_ConnectionInterface#d G&React_WritableStreamInterface#c G&React_ReadableStreamInterfaceb 7&React_StreamInterface%a K&Evenement_EventEmitterInterface7` oMockeryTest_InterfaceThatExtendsIteratorAggregate._ ]MockeryTest_InterfaceThatExtendsIterator.^ ]MockeryTest_InterfaceWithMethodParamSelf1] cMockeryTest_InterfaceWithPublicStaticMethod-\ [MockeryTest_InterfaceWithAbstractMethod[ 9MockeryTest_Interface2Z 9MockeryTest_Interface1Y 7MockeryTest_Interface*X UMockeryTest_InterfaceWithTraversable!W CMockeryTest_NameOfInterfaceV "Loader
U !PassT ) TestInterface2S ' TestInterfaceR ? TestTraversableInterface3Q ? TestTraversableInterface2P = TestTraversableInterfaceO # TargetClassN  GeneratorM 'MockInterfaceL 5ExpectationInterfaceK CompilerJ CompilerI -StorageInterface!H CRequestIdGeneratorInterfaceG 3HttpDriverInterfaceF 9DataFormatterInterfaceE !Renderable D AMessagesAggregateInterfaceC 9DataCollectorInterfaceB 'AssetProviderA 3ViewFinderInterface@ +EngineInterface? /CompilerInterface> ?PresenceVerifierInterface= +LoaderInterface< ?ResponsePreparerInterface; 3RenderableInterface: =MessageProviderInterface9 /JsonableInterface8 1ArrayableInterface7 -SessionInterface6 ;ExistenceAwareInterface5 9RouteFiltererInterface4 1ValidatorInterface3 -GatewayInterface2 3ConnectionInterface1 )QueueInterface 0 AFailedJobProviderInterface/ 1ConnectorInterface. +HasherInterface!- CExceptionDisplayerInterface", EMigrationRepositoryInterface+ )ScopeInterface* 1ConnectorInterface!) CConnectionResolverInterface( 3ConnectionInterface' +LoaderInterface)& SEnvironmentVariablesLoaderInterface% )StoreInterface$ 7UserProviderInterface# 'UserInterface!" CReminderRepositoryInterface! 3RemindableInterface  !ViewBinder !ViewBinder )iRollbarLogger 'ReadInterface +PluginInterface 3FilesystemInterface -AdapterInterface
 Task !Filesystem Database  AZFilenameConverterInterface 5RS3SignatureInterface ;SessionHandlerInterface =LockingStrategyInterface% KLockingStrategyFactoryInterface 7WriteRequestInterface +WaiterInterface 9WaiterFactoryInterface ;ResourceWaiterInterface 1SignatureInterface  AEndpointSignatureInterface 3UploadPartInterface
 /UploadIdInterface	 9TransferStateInterface /TransferInterface 1ChunkHashInterface +FacadeInterface =ExceptionParserInterface ?ExceptionFactoryInterface 7AwsExceptionInterface 5CredentialsInterface 1AwsClientInterface
  Task !Filesystem~ Database} +StreamInterface| ;MetadataStreamInterface{ /PostFileInterfacez /PostBodyInterfacey /ResponseInterfacex -RequestInterfacew -MessageInterfacev ;MessageFactoryInterfaceu 3SubscriberInterface   | mT:X1{\5oP2eM6




a
:
					]	>	nS4`As_P8|\C*lT0`E&pW=&oV=#        v 1ExceptionInterfaceu /ResponseInterfacet -RequestInterfaces -MessageInterfacer ;MessageFactoryInterfaceq =InternalRequestInterfacep )TimerInterfaceo 3StatusCodeInterfacen 9RetryStrategyInterface!m CRetryStrategyChainInterfacel )
RetryInterfacek /	RedirectInterfacej -JournalInterfacei 7JournalEntryInterface"h EJournalEntryFactoryInterfaceg 1FormatterInterface"f EPersistentCookieJarInterfacee 1CookieJarInterfaced +CookieInterfacec 9CookieFactoryInterfaceb 1BasicAuthInterfacea ;PsrHttpAdapterInterface` 5HttpAdapterInterface_ 9ConfigurationInterface^ ;PromiseAdapterInterface] /PromisorInterface\ -PromiseInterface[ =ExtendedPromiseInterface!Z CCancellablePromiseInterfaceY +StreamInterfaceX ;MetadataStreamInterfaceW +FutureInterfaceV 5FutureArrayInterfaceU 1CancelledExceptionT /PostFileInterfaceS /PostBodyInterfaceR /ResponseInterfaceQ -RequestInterfaceP -MessageInterfaceO ;MessageFactoryInterfaceN ;AppliesHeadersInterfaceM 3SubscriberInterfaceL 3HasEmitterInterfaceK )EventInterfaceJ -EmitterInterfaceI 1CookieJarInterfaceH -ToArrayInterfaceG +ClientInterfaceF RestIfE #TStringFuncD -TProtocolFactoryC RestIfB -HandlerInterface!A CActivationStrategyInterface@ 1FormatterInterface$? IPHPUnit_Runner_TestSuiteLoader$> IPHPUnit_Framework_TestListener= 9PHPUnit_Framework_Test#< GPHPUnit_Framework_SkippedTest&; MPHPUnit_Framework_SelfDescribing!: CPHPUnit_Framework_RiskyTest&9 MPHPUnit_Framework_IncompleteTest8 /PHPUnit_Exception7 7PHP_CodeSniffer_Sniff6 9PHP_CodeSniffer_Report5 1ExceptionInterface4 +VerifyInterface3 1ExceptionInterface2 1CompactorInterface1 1ExceptionInterface0 -ConvertInterface$/ IPHPUnit_Runner_TestSuiteLoader$. IPHPUnit_Framework_TestListener- 9PHPUnit_Framework_Test#, GPHPUnit_Framework_SkippedTest&+ MPHPUnit_Framework_SelfDescribing!* CPHPUnit_Framework_RiskyTest&) MPHPUnit_Framework_IncompleteTest( /PHPUnit_Exception$' IPHPUnit_Runner_TestSuiteLoader$& IPHPUnit_Framework_TestListener% 9PHPUnit_Framework_Test#$ GPHPUnit_Framework_SkippedTest&# MPHPUnit_Framework_SelfDescribing!" CPHPUnit_Framework_RiskyTest&! MPHPUnit_Framework_IncompleteTest  /PHPUnit_Exception )StyleInterface +OutputInterface 9ConsoleOutputInterface )InputInterface 3InputAwareInterface +HelperInterface# GOutputFormatterStyleInterface =OutputFormatterInterface 3DescriptorInterface 7PHP_CodeSniffer_Sniff 9PHP_CodeSniffer_Report. ]PHP_CodeSniffer_CommentParser_DocElement 7~PHP_CodeSniffer_Sniff 9~PHP_CodeSniffer_Report. ]~PHP_CodeSniffer_CommentParser_DocElement$ I{PHPUnit_Runner_TestSuiteLoader$ I{PHPUnit_Framework_TestListener 9{PHPUnit_Framework_Test# G{PHPUnit_Framework_SkippedTest& M{PHPUnit_Framework_SelfDescribing! C{PHPUnit_Framework_RiskyTest&
 M{PHPUnit_Framework_IncompleteTest	 /{PHPUnit_Exception$ IrPHPUnit_Runner_TestSuiteLoader$ IrPHPUnit_Framework_TestListener 9rPHPUnit_Framework_Test# GrPHPUnit_Framework_SkippedTest& MrPHPUnit_Framework_SelfDescribing! CrPHPUnit_Framework_RiskyTest& MrPHPUnit_Framework_IncompleteTest /rPHPUnit_Exception  -jWrapperInterface ?jSubjectContainerInterface~ -lThrowExpectation} 5lExpectationInterface| 9cSpecificationInterface{ 3hMaintainerInterface   j  yGf+YRD	


[
*				T	TqB{?|WG8%~m[J7%sXC(dH/lU<$  ` -iWarningInterface_ -iSuccessInterface^ 'iSkipInterface] +iResultInterface\ -iFailureInterface[ )hCheckInterfaceZ =hCheckCollectionInterfaceY 1fExceptionInterfaceX 1eDecoratorInterfaceW 1aExceptionInterfaceV 1`ExceptionInterfaceU 1^ExceptionInterfaceT 1\ExceptionInterfaceS -ZScannerInterfaceR 3VReflectionInterfaceQ 1YExceptionInterfaceP %WTagInterfaceO ;WPhpDocTypedTagInterfaceN 1TPrototypeInterfaceM ?TPrototypeGenericInterfaceL 3PTraitUsageInterfaceK 1PGeneratorInterfaceJ 1SExceptionInterfaceI %QTagInterfaceH 1OExceptionInterfaceG +NParserInterfaceF 3MAnnotationInterfaceE 1AExceptionInterfaceD +@ConfigInterfaceC =VisitB =ElementA <Stream@ <IWrapper
? <File> ;Touchable= !;Structural< ;Statable; ;Pointable: ;Pathable	9 ;Out8 ;Lockable7 ;In6 !;Bufferable5 /Recursive4 -Seekable3 -Outer2 -Iterator1 -Aggregate0 +'Parameterizable/ !%Listenable. %Source- $Datable", ETraversableMockTestInterface+ /MockTestInterface* ?InterfaceWithStaticMethod) -AnotherInterface( #AnInterface-' [PHPUnit_Framework_MockObject_Verifiable'& OPHPUnit_Framework_MockObject_Stub9% sPHPUnit_Framework_MockObject_Stub_MatcherCollection-$ [PHPUnit_Framework_MockObject_MockObject5# kPHPUnit_Framework_MockObject_Matcher_Invocation," YPHPUnit_Framework_MockObject_Invokable-! [PHPUnit_Framework_MockObject_Invocation,  YPHPUnit_Framework_MockObject_Exception/ _PHPUnit_Framework_MockObject_Builder_Stub: uPHPUnit_Framework_MockObject_Builder_ParametersMatch4 iPHPUnit_Framework_MockObject_Builder_Namespace: uPHPUnit_Framework_MockObject_Builder_MethodNameMatch0 aPHPUnit_Framework_MockObject_Builder_Match3 gPHPUnit_Framework_MockObject_Builder_Identity1 cPHPUnit_Extensions_Database_UI_IModeFactory* UPHPUnit_Extensions_Database_UI_IMode3 gPHPUnit_Extensions_Database_UI_IMediumPrinter, YPHPUnit_Extensions_Database_UI_IMedium> }PHPUnit_Extensions_Database_Operation_IDatabaseOperation) SPHPUnit_Extensions_Database_ITester7 oPHPUnit_Extensions_Database_IDatabaseListConsumer. ]PHPUnit_Extensions_Database_DB_IMetaData8 qPHPUnit_Extensions_Database_DB_IDatabaseConnection8 qPHPUnit_Extensions_Database_DataSet_Specs_IFactory5 kPHPUnit_Extensions_Database_DataSet_IYamlParser8 qPHPUnit_Extensions_Database_DataSet_ITableMetaData8 qPHPUnit_Extensions_Database_DataSet_ITableIterator0 aPHPUnit_Extensions_Database_DataSet_ITable/ _PHPUnit_Extensions_Database_DataSet_ISpec6
 mPHPUnit_Extensions_Database_DataSet_IPersistable2	 ePHPUnit_Extensions_Database_DataSet_IDataSet1 cPHPUnit_Extensions_Database_UI_IModeFactory* UPHPUnit_Extensions_Database_UI_IMode3 gPHPUnit_Extensions_Database_UI_IMediumPrinter, YPHPUnit_Extensions_Database_UI_IMedium> }PHPUnit_Extensions_Database_Operation_IDatabaseOperation) SPHPUnit_Extensions_Database_ITester7 oPHPUnit_Extensions_Database_IDatabaseListConsumer. ]PHPUnit_Extensions_Database_DB_IMetaData8  qPHPUnit_Extensions_Database_DB_IDatabaseConnection8 qPHPUnit_Extensions_Database_DataSet_Specs_IFactory5~ kPHPUnit_Extensions_Database_DataSet_IYamlParser8} qPHPUnit_Extensions_Database_DataSet_ITableMetaData8| qPHPUnit_Extensions_Database_DataSet_ITableIterator0{ aPHPUnit_Extensions_Database_DataSet_ITable/z _PHPUnit_Extensions_Database_DataSet_ISpec6y mPHPUnit_Extensions_Database_DataSet_IPersistable2x ePHPUnit_Extensions_Database_DataSet_IDataSetw -EmitterInterface   ] }gN5	}kXM<0yfTB/mZH6#t[7




}
b
J
/
					y	[	@	&	hM1x\C(yaF+nU1u[<"hL7 sU9#t]                         ~ )EventInterface} 1ExceptionInterface| 1ExceptionInterface{ 1ExceptionInterfacez ;ServiceLocatorInterfacey -LocatorInterface"x EDependencyInjectionInterfacew 'PartialMarkerv 3DefinitionInterfaceu 7TableGatewayInterfacet 1ExceptionInterfaces 1PredicateInterface r APlatformDecoratorInterfaceq %SqlInterfacep 9PreparableSqlInterfaceo 3ExpressionInterfacen 1ExceptionInterfacem %SqlInterfacel 3ConstraintInterfacek +ColumnInterfacej 3RowGatewayInterfacei 1ExceptionInterfaceh 1ResultSetInterfaceg 1ExceptionInterfacef /MetadataInterfacee 1ExceptionInterfaced /ProfilerInterfacec 9ProfilerAwareInterfaceb /PlatformInterfacea 1ExceptionInterface` 1ExceptionInterface_ 9DriverFeatureInterface^ 1StatementInterface] +ResultInterface\ +DriverInterface[ 3ConnectionInterface!Z CStatementContainerInterfaceY -AdapterInterfaceX 7AdapterAwareInterfaceW 1SymmetricInterfaceV -PaddingInterfaceU 1ExceptionInterfaceT 1ExceptionInterfaceS /PasswordInterfaceR 1ExceptionInterfaceQ 1ExceptionInterfaceP 1ExceptionInterfaceO +PromptInterfaceN 1ExceptionInterfaceM )ColorInterfaceL -CharsetInterfaceK -AdapterInterfaceJ +WriterInterfaceI +ReaderInterfaceH 1ProcessorInterfaceG 1ExceptionInterfaceF -ScannerInterfaceE 3ReflectionInterfaceD 1ExceptionInterfaceC %TagInterfaceB ;PhpDocTypedTagInterfaceA 1GeneratorInterface@ 1ExceptionInterface? 1ExceptionInterface> +ParserInterface= 3AnnotationInterface< 1ExceptionInterface; -AdapterInterface: +PluginInterface 9 ATotalSpaceCapableInterface8 /TaggableInterface7 -StorageInterface6 5OptimizableInterface5 /IteratorInterface4 /IterableInterface3 1FlushableInterface2 7ClearExpiredInterface1 9ClearByPrefixInterface0 ?ClearByNamespaceInterface$/ IAvailableSpaceCapableInterface. -PatternInterface- 1ExceptionInterface, /RendererInterface+ 1ExceptionInterface* +~ObjectInterface) 1ExceptionInterface( 1}ExceptionInterface' -zStorageInterface& 1yExceptionInterface% /vResolverInterface$ 1wExceptionInterface# 1uExceptionInterface" 1tExceptionInterface!! CrValidatableAdapterInterface  -rAdapterInterface 'isAnInterface qdecorator analyzer prealtime %pasynchronous
 otest orunner !aggregator nbuilder observer !observable extension exception !definition !mdefinition '0isAnInterface decorator analyzer realtime %asynchronous
 test
 runner	 !aggregator builder observer !observable extension exception !definition !definition Visit  Element Stream~ IWrapper
} File| Touchable{ !Structuralz Statabley Pointablex Pathable	w Outv Lockableu Int !Bufferables Recursiver Seekableq Outerp Iteratoro Aggregaten +Parameterizablem !Listenablel Sourcek Datablej Throwablei /rReporterInterfaceh -qWarningInterfaceg -qSuccessInterfacef 'qSkipInterfacee +qResultInterfaced -qFailureInterfacec )pCheckInterfaceb =pCheckCollectionInterfacea /jReporterInterface   # }R)tY0y_=#oF-u\D)





i
K
*
					r	P	*	iL1|dI.uY; nS:tQ1
qQ,
a@c;#                           ~ +pPluginInterface%} KnInjectApplicationEventInterface| 5nApplicationInterface{ 9mModuleManagerInterfacez 1lExceptionInterfacey =kServiceListenerInterfacex 7kConfigMergerInterface!w CViewHelperProviderInterface v AValidatorProviderInterfaceu =ServiceProviderInterface!t CSerializerProviderInterfaces 9RouteProviderInterface r ALocatorRegisteredInterface"q EInputFilterProviderInterfacep 7InitProviderInterfaceo ?HydratorProviderInterface"n EFormElementProviderInterfacem ;FilterProviderInterface"l EDependencyIndicatorInterface!k CControllerProviderInterface'j OControllerPluginProviderInterface#i GConsoleUsageProviderInterface$h IConsoleBannerProviderInterfaceg ;ConfigProviderInterface f ABootstrapListenerInterface!e CAutoloaderProviderInterfaced 1jExceptionInterfacec 1iExceptionInterfaceb 1fExceptionInterfacea 1eContainerInterface` 1bExceptionInterface_ 1aExceptionInterface^ -_AdapterInterface] 1^TransportInterface\ 1]ExceptionInterface[ /\WritableInterfaceZ '[PartInterfaceY 1ZExceptionInterfaceX -YMessageInterfaceW +XFolderInterfaceV 1WExceptionInterfaceU 1TExceptionInterfaceT 7QUnstructuredInterfaceS 3QStructuredInterfaceR =QMultipleHeadersInterfaceQ +QHeaderInterfaceP 1RExceptionInterfaceO 1PExceptionInterfaceN -AddressInterfaceM +LWriterInterfaceL -NFirePhpInterfaceK 1MChromePhpInterfaceJ 1KProcessorInterfaceI +JLoggerInterfaceH 5JLoggerAwareInterfaceG 1IFormatterInterfaceF +HFilterInterfaceE 1GExceptionInterfaceD 'ESplAutoloaderC -EShortNameLocatorB 1EPluginClassLocatorA 1FExceptionInterface@ 5DObjectClassInterface? 9CAttributeTypeInterface> 1>ExceptionInterface= 1<ExceptionInterface< 1;ExceptionInterface; 14ExceptionInterface: 12ExceptionInterface9 10ExceptionInterface#8 G/UnknownInputsCapableInterface7 ?/ReplaceableInputInterface6 9/InputProviderInterface5 )/InputInterface"4 E/InputFilterProviderInterface3 5/InputFilterInterface2 ?/InputFilterAwareInterface1 7/EmptyContextInterface0 =*TranslatorAwareInterface/ 7)RemoteLoaderInterface. 3)FileLoaderInterface- 1'ExceptionInterface, ;"MultipleHeaderInterface+ +"HeaderInterface* 1$ExceptionInterface) 1!ExceptionInterface( 1 ExceptionInterface' 1ExceptionInterface& +StreamInterface% -AdapterInterface$ 1ExceptionInterface# 'FormInterface" ?FormFactoryAwareInterface#! GFieldsetPrepareAwareInterface  /FieldsetInterface" EElementPrepareAwareInterface -ElementInterface& MElementAttributeRemovalInterface +FilterInterface 1ExceptionInterface" EEncryptionAlgorithmInterface# GCompressionAlgorithmInterface 1ExceptionInterface 1
ExceptionInterface /RendererInterface ?ExtensionManagerInterface /RendererInterface 1ExceptionInterface /ResponseInterface +ClientInterface 'FeedInterface ?ExtensionManagerInterface 1ExceptionInterface )EntryInterface& MSubscriptionPersistenceInterface 1ExceptionInterface
 /CallbackInterface	 1ExceptionInterface +FilterInterface 1ExceptionInterface& MSharedListenerAggregateInterface! CSharedEventManagerInterface& MSharedEventManagerAwareInterface( QSharedEventAggregateAwareInterface  AListenerAggregateInterface 9EventsCapableInterface  7EventManagerInterface  AEventManagerAwareInterface   % |eI.mR8"hM>/h@oR+




q
S
4
						x	X	9	nS9iH,ybH*gL1z_E*pV<}aI.sX=%            +ReaderInterface 1ProcessorInterface 1ExceptionInterface -ScannerInterface 3ReflectionInterface 1ExceptionInterface %TagInterface  ;PhpDocTypedTagInterface 1GeneratorInterface~ 1	ExceptionInterface} 1ExceptionInterface| +ParserInterface{ 3AnnotationInterfacez 1ExceptionInterfacey -AdapterInterfacex + PluginInterface w ATotalSpaceCapableInterfacev /TaggableInterfaceu -StorageInterfacet 5OptimizableInterfaces /IteratorInterfacer /IterableInterfaceq 1FlushableInterfacep 7ClearExpiredInterfaceo 9ClearByPrefixInterfacen ?ClearByNamespaceInterface$m IAvailableSpaceCapableInterfacel -PatternInterfacek 1ExceptionInterfacej /RendererInterfacei 1ExceptionInterfaceh +ObjectInterfaceg 1ExceptionInterfacef 1ExceptionInterfacee -StorageInterfaced 1ExceptionInterfacec /ResolverInterfaceb 1ExceptionInterfacea 1ExceptionInterface` 1ExceptionInterface!_ CValidatableAdapterInterface^ -AdapterInterface] 1ExceptionInterface\ 1GeneratorInterface[ 1ExceptionInterfaceZ 1ExceptionInterfaceY /ResolverInterfaceX 7TreeRendererInterfaceW /RendererInterfaceV )ModelInterfaceU ;ClearableModelInterfaceT +HelperInterfaceS +HelperInterfaceR 1ExceptionInterface*Q UValidatorPluginManagerAwareInterfaceP 1ValidatorInterfaceO 3TranslatorInterfaceN =TranslatorAwareInterfaceM 1ExceptionInterfaceL -AdapterInterfaceK %UriInterfaceJ 1ExceptionInterfaceI 1ExceptionInterfaceH 1DecoratorInterfaceG 1ExceptionInterfaceF 1ExceptionInterfaceE /TaggableInterfaceD 1ExceptionInterfaceC 1ExceptionInterfaceB 1DecoratorInterfaceA 9StringWrapperInterface@ /StrategyInterface? =StrategyEnabledInterface> =HydratorOptionsInterface= /HydratorInterface< 9HydratorAwareInterface; ;FilterProviderInterface: +FilterInterface9 1ExceptionInterface8 /ResponseInterface7 -RequestInterface6 3ParametersInterface5 =ParameterObjectInterface4 -MessageInterface3 9InitializableInterface2 7DispatchableInterface 1 AArraySerializableInterface"0 EComplexTypeStrategyInterface/ 1ExceptionInterface . ADiscoveryStrategyInterface- 1ValidatorInterface, -StorageInterface$+ IStorageInitializationInterface* 5SaveHandlerInterface) -ManagerInterface( 1ExceptionInterface' +ConfigInterface& 1ExceptionInterface"% EServiceManagerAwareInterface$ ;ServiceLocatorInterface"# EServiceLocatorAwareInterface%" KMutableCreationOptionsInterface! 5InitializerInterface  -FactoryInterface ?DelegatorFactoryInterface +ConfigInterface =AbstractFactoryInterface 1ExceptionInterface 1ExceptionInterface Server Client 1ExceptionInterface -AdapterInterface 9UploadHandlerInterface 1ExceptionInterface 1ExceptionInterface 1ExceptionInterface 'RoleInterface 1AssertionInterface 'RoleInterface /ResourceInterface 1ExceptionInterface 1AssertionInterface %AclInterface ;ScrollingStyleInterface
 1ExceptionInterface	 ?AdapterAggregateInterface 1ExceptionInterface -AdapterInterface 1~ExceptionInterface 3xRouteStackInterface )xRouteInterface )wRouteInterface 1vExceptionInterface )uRouteInterface  ;tResponseSenderInterface 1rExceptionInterface    lQ6y`< fG-sWB'~`D.	





h
E
'
				m	D	)	fD.pU/
pV0v[@(tR5w\A&~eO4}eL1 1ExceptionInterface 1ExceptionInterface -^AddressInterface +WriterInterface
 -FirePhpInterface	 1ChromePhpInterface 1ProcessorInterface +LoggerInterface 5LoggerAwareInterface 1FormatterInterface +FilterInterface 1ExceptionInterface 'SplAutoloader -ShortNameLocator  1PluginClassLocator 1ExceptionInterface~ 5ObjectClassInterface} 9AttributeTypeInterface| 1ExceptionInterface{ 1ExceptionInterfacez 1ExceptionInterfacey 1ExceptionInterfacex 1ExceptionInterfacew 1ExceptionInterface#v GUnknownInputsCapableInterfaceu ?ReplaceableInputInterfacet 9InputProviderInterfaces )InputInterface"r EInputFilterProviderInterfaceq 5InputFilterInterfacep ?InputFilterAwareInterfaceo 7EmptyContextInterfacen =TranslatorAwareInterfacem 7RemoteLoaderInterfacel 3FileLoaderInterfacek 1ExceptionInterfacej ;MultipleHeaderInterfacei +HeaderInterfaceh 1ExceptionInterfaceg 1ExceptionInterfacef 1ExceptionInterfacee 1ExceptionInterfaced +StreamInterfacec -AdapterInterfaceb 1ExceptionInterfacea 'FormInterface` ?FormFactoryAwareInterface#_ GFieldsetPrepareAwareInterface^ /FieldsetInterface"] EElementPrepareAwareInterface\ -ElementInterface&[ MElementAttributeRemovalInterfaceZ +FilterInterfaceY 1ExceptionInterface"X EEncryptionAlgorithmInterface#W GCompressionAlgorithmInterfaceV 1ExceptionInterfaceU 1ExceptionInterfaceT /|RendererInterfaceS ?qExtensionManagerInterfaceR /sRendererInterfaceQ 1rExceptionInterfaceP /]ResponseInterfaceO +]ClientInterfaceN 'nFeedInterfaceM ?`ExtensionManagerInterfaceL 1cExceptionInterfaceK )bEntryInterface&J M^SubscriptionPersistenceInterfaceI 1]ExceptionInterfaceH /\CallbackInterfaceG 1[ExceptionInterfaceF +ZFilterInterfaceE 1YExceptionInterface&D MXSharedListenerAggregateInterface!C CXSharedEventManagerInterface&B MXSharedEventManagerAwareInterface(A QXSharedEventAggregateAwareInterface @ AXListenerAggregateInterface? 9XEventsCapableInterface> 7XEventManagerInterface = AXEventManagerAwareInterface< )XEventInterface; 1WExceptionInterface: 1UExceptionInterface9 1RExceptionInterface8 ;MServiceLocatorInterface7 -MLocatorInterface"6 EMDependencyInjectionInterface5 'OPartialMarker4 3ODefinitionInterface3 7HTableGatewayInterface2 1IExceptionInterface1 1GPredicateInterface 0 ABPlatformDecoratorInterface/ %=SqlInterface. 9=PreparableSqlInterface- 3=ExpressionInterface, 1AExceptionInterface+ %>SqlInterface* 3@ConstraintInterface) +?ColumnInterface( 3:RowGatewayInterface' 1;ExceptionInterface& 18ResultSetInterface% 19ExceptionInterface$ /5MetadataInterface# 14ExceptionInterface" /3ProfilerInterface! 93ProfilerAwareInterface  /2PlatformInterface 11ExceptionInterface 10ExceptionInterface 9(DriverFeatureInterface 1\StatementInterface +\ResultInterface +\DriverInterface 3\ConnectionInterface! C'StatementContainerInterface -'AdapterInterface 7'AdapterAwareInterface 1%SymmetricInterface -&PaddingInterface 1$ExceptionInterface 1#ExceptionInterface /PasswordInterface 1 ExceptionInterface 1ExceptionInterface 1ExceptionInterface +PromptInterface 1ExceptionInterface )ColorInterface
 -CharsetInterface	 -AdapterInterface +WriterInterface   & rW?&qV; \6~\>oK-




u
Z
:
#
						o	M	2	|fK0nM5pK0lI.	oS: sR8x]B'Y>&                         +FHelperInterface 1EExceptionInterface* U>ValidatorPluginManagerAwareInterface 1>ValidatorInterface 3aTranslatorInterface =aTranslatorAwareInterface 1AExceptionInterface
 -?AdapterInterface	 %=UriInterface 1<ExceptionInterface 1;ExceptionInterface 1:DecoratorInterface 16ExceptionInterface 15ExceptionInterface /1TaggableInterface 12ExceptionInterface 1/ExceptionInterface  1.DecoratorInterface 9-StringWrapperInterface~ /,StrategyInterface} =)StrategyEnabledInterface| =)HydratorOptionsInterface{ /)HydratorInterfacez 9)HydratorAwareInterfacey ;+FilterProviderInterfacex ++FilterInterfacew 1(ExceptionInterfacev /&ResponseInterfaceu -&RequestInterfacet 3&ParametersInterfaces =&ParameterObjectInterfacer -&MessageInterfaceq 9&InitializableInterfacep 7&DispatchableInterface o A&ArraySerializableInterface"n E%ComplexTypeStrategyInterfacem 1#ExceptionInterface l A DiscoveryStrategyInterfacek 1ValidatorInterfacej -StorageInterface$i IStorageInitializationInterfaceh 5SaveHandlerInterfaceg -ManagerInterfacef 1ExceptionInterfacee +ConfigInterfaced 1ExceptionInterface"c EServiceManagerAwareInterfaceb ;ServiceLocatorInterface"a EServiceLocatorAwareInterface%` KMutableCreationOptionsInterface_ 5InitializerInterface^ -FactoryInterface] ?DelegatorFactoryInterface\ +ConfigInterface[ =AbstractFactoryInterfaceZ 1ExceptionInterfaceY 1ExceptionInterfaceX ServerW ClientV 1ExceptionInterfaceU -AdapterInterfaceT 9
UploadHandlerInterfaceS 1ExceptionInterfaceR 1ExceptionInterfaceQ 1ExceptionInterfaceP 'RoleInterfaceO 1AssertionInterfaceN 'RoleInterfaceM /ResourceInterfaceL 1ExceptionInterfaceK 1`AssertionInterfaceJ % AclInterfaceI ;ScrollingStyleInterfaceH 1ExceptionInterfaceG ?AdapterAggregateInterfaceF 1ExceptionInterfaceE -AdapterInterfaceD 1ExceptionInterfaceC 3RouteStackInterfaceB )RouteInterfaceA )RouteInterface@ 1ExceptionInterface? )RouteInterface> ;ResponseSenderInterface= 1ExceptionInterface< +PluginInterface%; KInjectApplicationEventInterface: 5ApplicationInterface9 9ModuleManagerInterface8 1ExceptionInterface7 =ServiceListenerInterface6 7ConfigMergerInterface!5 C_ViewHelperProviderInterface 4 A_ValidatorProviderInterface3 =_ServiceProviderInterface!2 C_SerializerProviderInterface1 9_RouteProviderInterface 0 A_LocatorRegisteredInterface"/ E_InputFilterProviderInterface. 7_InitProviderInterface- ?_HydratorProviderInterface", E_FormElementProviderInterface+ ;_FilterProviderInterface"* E_DependencyIndicatorInterface!) C_ControllerProviderInterface'( O_ControllerPluginProviderInterface#' G_ConsoleUsageProviderInterface$& I_ConsoleBannerProviderInterface% ;_ConfigProviderInterface $ A_BootstrapListenerInterface!# C_AutoloaderProviderInterface" 1ExceptionInterface! 1ExceptionInterface  1ExceptionInterface 1ContainerInterface 1ExceptionInterface 1ExceptionInterface -AdapterInterface 1TransportInterface 1ExceptionInterface /WritableInterface 'PartInterface 1ExceptionInterface -MessageInterface +FolderInterface 1ExceptionInterface 1ExceptionInterface 7UnstructuredInterface 3StructuredInterface =MultipleHeadersInterface +HeaderInterface   } y_D)lL(aJ.mEsP.




w
]
;

					p	D	(g?mJ(qW5j>%
jD,}`E$~V4xZA2"       /PHPUnit_Exception IWriter Output -JsonSerializable
 7PHP_CodeSniffer_Sniff	 9PHP_CodeSniffer_Report Source Mixer +TargetInterface 5NodeVisitorInterface 'NestInterface 5IndentationInterface +FilterInterface ?Twig_TokenParserInterface%  KTwig_TokenParserBrokerInterface 1Twig_TestInterface~ 9Twig_TemplateInterface*} UTwig_Sandbox_SecurityPolicyInterface| 5Twig_ParserInterface{ ?Twig_NodeVisitorInterfacez =Twig_NodeOutputInterfacey 1Twig_NodeInterfacex 5Twig_LoaderInterfacew 3Twig_LexerInterfacev 9Twig_FunctionInterfaceu 5Twig_FilterInterfacet ;Twig_ExtensionInterfaces 9Twig_CompilerInterfacer +Mustache_Loggerq +Mustache_Loader#p GMustache_Loader_MutableLoadero 1Mustache_Exception*n UValidatorPluginManagerAwareInterfacem 1ValidatorInterfacel 3TranslatorInterfacek =TranslatorAwareInterfacej 1ExceptionInterfacei -AdapterInterface)h SConstraintViolationBuilderInterfaceg 1ValidatorInterface"f EContextualValidatorInterfacee 7StaticLoaderInterfaced 3LegacyClassMetadatac +EntityInterfaceb +LoaderInterfacea =MetadataFactoryInterface` ?PropertyMetadataInterface_ /MetadataInterface^ 9ClassMetadataInterface] )CacheInterface\ 1ExceptionInterface[ ?ExecutionContextInterface&Z MExecutionContextFactoryInterfaceY 1ValidatorInterfaceX ?ValidatorBuilderInterface W AValidationVisitorInterfaceV ?PropertyMetadataInterface(U QPropertyMetadataContainerInterface T AObjectInitializerInterfaceS /MetadataInterfaceR =MetadataFactoryInterface$Q IGroupSequenceProviderInterface%P KGlobalExecutionContextInterfaceO ?ExecutionContextInterface&N MConstraintViolationListInterface"M EConstraintViolationInterface"L EConstraintValidatorInterface)K SConstraintValidatorFactoryInterfaceJ 3ClassBasedInterface)I SConstraintViolationBuilderInterfaceH 1ValidatorInterface"G EContextualValidatorInterfaceF 7StaticLoaderInterfaceE 3LegacyClassMetadataD +EntityInterfaceC +LoaderInterfaceB =MetadataFactoryInterfaceA ?PropertyMetadataInterface@ /MetadataInterface? 9ClassMetadataInterface> )CacheInterface= 1ExceptionInterface< ?ExecutionContextInterface&; MExecutionContextFactoryInterface: 1ValidatorInterface9 ?ValidatorBuilderInterface 8 AValidationVisitorInterface7 ?PropertyMetadataInterface(6 QPropertyMetadataContainerInterface 5 AObjectInitializerInterface4 /MetadataInterface3 =MetadataFactoryInterface$2 IGroupSequenceProviderInterface%1 KGlobalExecutionContextInterface0 ?ExecutionContextInterface&/ MConstraintViolationListInterface". EConstraintViolationInterface"- EConstraintValidatorInterface), SConstraintValidatorFactoryInterface+ 3ClassBasedInterface* )ResultIterator) 9ValidatorBankDependent( URIPicker' 9ValidatorBankDependent& URIPicker% Visit$ Element# ;ePHPExcel_Writer_IWriter$" IePHPExcel_RichText_ITextElement!! CePHPExcel_Reader_IReadFilter  ;ePHPExcel_Reader_IReader 5ePHPExcel_IComparable  AePHPExcel_Cell_IValueBinder) SePHPExcel_CachedObjectStorage_ICache 1bExceptionInterface 1ZExceptionInterface 1VGeneratorInterface 1UExceptionInterface 1SExceptionInterface /PResolverInterface 7OTreeRendererInterface /ORendererInterface )NModelInterface ;NClearableModelInterface +HHelperInterface   0 dE~gL3|fR:%x]H.hD#





`
;
						c	A	$rP,{W9nM:'dE/oI1fN3z_6fH0                               +cDumperInterface 7bInstantiatorInterface ?aPrependExtensionInterface 1aExtensionInterface% KaConfigurationExtensionInterface 1`ExceptionInterface +_DumperInterface =]TaggedContainerInterface )]ScopeInterface&
 M]IntrospectableContainerInterface	 1]ContainerInterface ;]ContainerAwareInterface ;^RepeatablePassInterface 7^CompilerPassInterface 3[DeprecatedInterface  AWFatalErrorHandlerInterface 3STranslatorInterface 1RExtensionInterface +IParserInterface  -HHandlerInterface 'GNodeInterface~ 1FExceptionInterface} )8StyleInterface| +6OutputInterface{ 96ConsoleOutputInterfacez )4InputInterfacey 34InputAwareInterfacex +3HelperInterface#w G2OutputFormatterStyleInterfacev =2OutputFormatterInterfaceu 30DescriptorInterfacet +Validators /$ResourceInterfacer ;#LoaderResolverInterfaceq +#LoaderInterfacep 9PrototypeNodeInterfaceo 'NodeInterfacen 9ConfigurationInterface#m GParentNodeDefinitionInterfacel 3NodeParentInterfacek 5FileLocatorInterfacej 5ConfigCacheInterface!i CConfigCacheFactoryInterface
h IBarg 'SomeInterfacef !GInterfacee !CInterfaced =VersionStrategyInterfacec -PackageInterfaceb 1ExceptionInterfacea -ContextInterface"` EUserProviderFactoryInterface_ =SecurityFactoryInterface^ +EngineInterface] ;TemplateFinderInterface\ 7zTwigRendererInterface![ CzTwigRendererEngineInterfaceZ /CRegistryInterfaceY 7JEntityLoaderInterfaceX -<HandlerInterface!W C>ActivationStrategyInterfaceV 1;FormatterInterfaceU =-ServiceProviderInterface!T C-ControllerProviderInterfaceS ?,Twig_TokenParserInterface%R K,Twig_TokenParserBrokerInterfaceQ 1,Twig_TestInterface P A,Twig_TestCallableInterfaceO 9,Twig_TemplateInterface*N U,Twig_Sandbox_SecurityPolicyInterfaceM 5,Twig_ParserInterfaceL ?,Twig_NodeVisitorInterfaceK =,Twig_NodeOutputInterfaceJ 1,Twig_NodeInterfaceI 5,Twig_LoaderInterfaceH 3,Twig_LexerInterfaceG 9,Twig_FunctionInterface$F I,Twig_FunctionCallableInterfaceE 5,Twig_FilterInterface"D E,Twig_FilterCallableInterfaceC ;,Twig_ExtensionInterface B A,Twig_ExistsLoaderInterfaceA 9,Twig_CompilerInterface@ 3,Twig_CacheInterface? =ServiceProviderInterface!> CControllerProviderInterface= =ServiceProviderInterface!< CControllerProviderInterface; 3TranslatorInterface: 1ExtensionInterface9 +ParserInterface8 -HandlerInterface7 'NodeInterface6 1ExceptionInterface5 %RegexpEngine4 +SelectorScanner3 /SelectorContainer2 %FileSelector1 1ExtendFileSelector0 +Parameterizable/ Condition. 'TaskContainer- -SubBuildListener, 1CustomChildCreator+ )FileNameMapper* ?StreamRequiredBuildLogger) %InputHandler( +ChainableReader' #BuildLogger& 'BuildListener% %RegexpEngine$ +SelectorScanner# /SelectorContainer" %FileSelector! 1ExtendFileSelector  +Parameterizable Condition 'TaskContainer -SubBuildListener 1CustomChildCreator )FileNameMapper ?StreamRequiredBuildLogger %InputHandler +ChainableReader #BuildLogger 'BuildListener$ IPHPUnit_Runner_TestSuiteLoader$ IPHPUnit_Framework_TestListener 9PHPUnit_Framework_Test# GPHPUnit_Framework_SkippedTest& MPHPUnit_Framework_SelfDescribing! CPHPUnit_Framework_RiskyTest& MPHPUnit_Framework_IncompleteTest   { vJ-sW6zdF"];gD! 




r
R
2
						o	R	8	g@)hH%pR2wY3hH,fF)xGd=                  * UUAuthenticationTrustResolverInterface$ IUAuthenticationManagerInterface 9NPermissionMapInterface# GNMaskBuilderRetrievalInterface
 5NMaskBuilderInterface0	 aSecurityIdentityRetrievalStrategyInterface ?SecurityIdentityInterface) SPermissionGrantingStrategyInterface. ]ObjectIdentityRetrievalStrategyInterface ;ObjectIdentityInterface! CMutableAclProviderInterface 3MutableAclInterface 3FieldEntryInterface )EntryInterface  7DomainObjectInterface 5AuditLoggerInterface~ ;AuditableEntryInterface} 7AuditableAclInterface| 5AclProviderInterface{ %AclInterfacez /AclCacheInterfacey +:RouterInterfacex 9:RouteCompilerInterface"w E:RequestContextAwareInterfacev 3?UrlMatcherInterfaceu ;?RequestMatcherInterface%t K?RedirectableUrlMatcherInterfaces 9@MatcherDumperInterfacer =<GeneratorDumperInterfaceq 7=UrlGeneratorInterface'p O=ConfigurableRequirementsInterfaceo 1;ExceptionInterface#n G6PropertyPathIteratorInterfacem 76PropertyPathInterfacel ?6PropertyAccessorInterfacek 15ExceptionInterfacej )3PipesInterfacei 11ExceptionInterfaceh =/OptionsResolverInterfaceg /Optionsf 1.ExceptionInterfacee ;ResourceBundleInterfaced 7RegionBundleInterfacec 7LocaleBundleInterfaceb ;LanguageBundleInterfacea ;CurrencyBundleInterface` 1ExceptionInterface_ 7BundleWriterInterface^ 7
BundleReaderInterface ] A
BundleEntryReaderInterface\ ;	BundleCompilerInterface[ =ProfilerStorageInterfaceZ +LoggerInterfaceY 5DebugLoggerInterfaceX 3TerminableInterfaceW +KernelInterfaceV 3HttpKernelInterfaceU 1SurrogateInterfaceT )StoreInterface$S IResponseCacheStrategyInterface'R OEsiResponseCacheStrategyInterfaceQ ?FragmentRendererInterfaceP 9VHttpExceptionInterface O ALateDataCollectorInterfaceN 9DataCollectorInterface!M CControllerResolverInterfaceL /WarmableInterfaceK 5CacheWarmerInterfaceJ 7CacheClearerInterfaceI +BundleInterfaceH ;SessionStorageInterfaceG -SessionInterfaceF 3SessionBagInterfaceE /FlashBagInterfaceD 7AttributeBagInterfaceC ;rSessionHandlerInterfaceB ;RequestMatcherInterfaceA =MimeTypeGuesserInterface@ ?ExtensionGuesserInterface? +AuthorInterface> 'FormInterface= 5FormBuilderInterface< =ViolationMapperInterface ; AFormDataExtractorInterface : AFormDataCollectorInterface9 7CsrfProviderInterface8 3ChoiceListInterface7 1ExceptionInterface6 7ChoiceLoaderInterface 5 AChoiceListFactoryInterface4 3ChoiceListInterface3 ?SubmitButtonTypeInterface2 ?ResolvedFormTypeInterface&1 MResolvedFormTypeFactoryInterface0 ;RequestHandlerInterface/ /FormTypeInterface. =FormTypeGuesserInterface - AFormTypeExtensionInterface, 7FormRendererInterface!+ CFormRendererEngineInterface* 7FormRegistryInterface) 'FormInterface( 5FormFactoryInterface!' CFormFactoryBuilderInterface& 9FormExtensionInterface% 3FormConfigInterface $ AFormConfigBuilderInterface# 5FormBuilderInterface" =DataTransformerInterface! 3DataMapperInterface  1ClickableInterface 3ButtonTypeInterface )ValueInterface 1ExceptionInterface -AdapterInterface 5IOExceptionInterface 1ExceptionInterface 5}ParserCacheInterface) S{ExpressionFunctionProviderInterface =uEventSubscriberInterface =uEventDispatcherInterface' OvTraceableEventDispatcherInterface 7eParameterBagInterface   z bA"kK*v[>(
qT&pJ&




}
Y
G
,
						m	O	1	qP,	qV>zU0u[8b@%zbF(pU7]D)                     -PackageInterface 1ExceptionInterface -ContextInterface" EbUserProviderFactoryInterface =aSecurityFactoryInterface +4EngineInterface ;%TemplateFinderInterface 7TwigRendererInterface!  CTwigRendererEngineInterface /RegistryInterface~ 7EntityLoaderInterface} 1ExceptionInterface| 3DataDumperInterface{ +DumperInterfacez +ClonerInterface)y SConstraintViolationBuilderInterfacex 1ValidatorInterface"w EContextualValidatorInterfacev 7StaticLoaderInterfaceu 3LegacyClassMetadatat +EntityInterfaces +LoaderInterfacer =MetadataFactoryInterfaceq ?PropertyMetadataInterfacep /MetadataInterfaceo 9ClassMetadataInterfacen )CacheInterfacem 1ExceptionInterfacel ?ExecutionContextInterface&k MExecutionContextFactoryInterfacej 1ValidatorInterfacei ?ValidatorBuilderInterface h AValidationVisitorInterfaceg ?PropertyMetadataInterface(f QPropertyMetadataContainerInterface e AObjectInitializerInterfaced /MetadataInterfacec =MetadataFactoryInterface$b IGroupSequenceProviderInterface%a KGlobalExecutionContextInterface` ?ExecutionContextInterface&_ MConstraintViolationListInterface"^ EConstraintViolationInterface"] EConstraintValidatorInterface)\ SConstraintValidatorFactoryInterface[ 3ClassBasedInterfaceZ 3TranslatorInterfaceY 9TranslatorBagInterfaceX 9MetadataAwareInterfaceW ?MessageCatalogueInterfaceV +LoaderInterfaceU 1ExtractorInterfaceT 1ExceptionInterfaceS +DumperInterfaceR 1OperationInterfaceQ /MyStreamingEngineP +LoaderInterfaceO +HelperInterface N ATemplateReferenceInterface!M CTemplateNameParserInterfaceL =StreamingEngineInterfaceK +EngineInterfaceJ /DebuggerInterfaceI -PackageInterfaceH 3GroupDummyInterfaceG 3SerializerInterfaceF =SerializerAwareInterfaceE 3NormalizerInterfaceD 7NormalizableInterfaceC 7DenormalizerInterfaceB ;DenormalizableInterfaceA 9NameConverterInterface@ +LoaderInterface#? GClassMetadataFactoryInterface> 9ClassMetadataInterface = AAttributeMetadataInterface< 1ExceptionInterface; Exception!: CNormalizationAwareInterface9 -EncoderInterface8 -DecoderInterface!7 CTestFailureHandlerInterface!6 CTestSuccessHandlerInterface,5 YSessionAuthenticationStrategyInterface!4 CRememberMeServicesInterface#3 GLogoutSuccessHandlerInterface2 9LogoutHandlerInterface1 /~ListenerInterface'0 O|AuthenticationEntryPointInterface"/ EAccessDeniedHandlerInterface+. W{AuthenticationSuccessHandlerInterface+- W{AuthenticationFailureHandlerInterface, 5zFirewallMapInterface+ 1zAccessMapInterface* 7yTokenStorageInterface) ;xTokenGeneratorInterface( ?sCsrfTokenManagerInterface' 7qSecureRandomInterface& 7pUserProviderInterface% 'pUserInterface$ 5pUserCheckerInterface# 1pEquatableInterface" 7pAdvancedUserInterface! =ZSecurityContextInterface  '`RoleInterface 9`RoleHierarchyInterface 1_ExceptionInterface" E]UserPasswordEncoderInterface =]PasswordEncoderInterface ;]EncoderFactoryInterface 7]EncoderAwareInterface )\VoterInterface# G[AuthorizationCheckerInterface$ I[AccessDecisionManagerInterface )XTokenInterface 7YTokenStorageInterface 9WTokenProviderInterface =WPersistentTokenInterface% KVAuthenticationProviderInterface% KUSimplePreAuthenticatorInterface& MUSimpleFormAuthenticatorInterface" EUSimpleAuthenticatorInterface    rU8jP>"qYB'jL,x]5




z
Y
8
						l	P	5	}Y<&hH~cG)wU4gO1uS)cK*
pP2          	 7RegionBundleInterface 7LocaleBundleInterface ;LanguageBundleInterface ;CurrencyBundleInterface 1ExceptionInterface 7BundleWriterInterface 7BundleReaderInterface  ABundleEntryReaderInterface ;BundleCompilerInterface  =ProfilerStorageInterface +LoggerInterface~ 5DebugLoggerInterface} 3|TerminableInterface| +|KernelInterface{ 3|HttpKernelInterfacez 1SurrogateInterfacey )StoreInterface$x IResponseCacheStrategyInterface'w OEsiResponseCacheStrategyInterfacev ?FragmentRendererInterfaceu 9HttpExceptionInterface t ALateDataCollectorInterfaces 9DataCollectorInterface!r C~ControllerResolverInterfaceq /{WarmableInterfacep 5{CacheWarmerInterfaceo 7zCacheClearerInterfacen +yBundleInterfacem ;nSessionStorageInterfacel -lSessionInterfacek 3lSessionBagInterfacej /kFlashBagInterfacei 7jAttributeBagInterfaceh ;SessionHandlerInterfaceg ;fRequestMatcherInterfacef =iMimeTypeGuesserInterfacee ?iExtensionGuesserInterfaced +bAuthorInterfacec 'KFormInterfaceb 5KFormBuilderInterfacea =IViolationMapperInterface ` A;FormDataExtractorInterface _ A;FormDataCollectorInterface^ 78CsrfProviderInterface] 31ChoiceListInterface\ 10ExceptionInterface[ 7 qChoiceLoaderInterface Z A,ChoiceListFactoryInterfaceY 3+ChoiceListInterfaceX ?*SubmitButtonTypeInterfaceW ?*ResolvedFormTypeInterface&V M*ResolvedFormTypeFactoryInterfaceU ;*RequestHandlerInterfaceT /*FormTypeInterfaceS =*FormTypeGuesserInterface R A*FormTypeExtensionInterfaceQ 7*FormRendererInterface!P C*FormRendererEngineInterfaceO 7*FormRegistryInterfaceN '*FormInterfaceM 5*FormFactoryInterface!L C*FormFactoryBuilderInterfaceK 9*FormExtensionInterfaceJ 3*FormConfigInterface I A*FormConfigBuilderInterfaceH 5*FormBuilderInterfaceG =*DataTransformerInterfaceF 3*DataMapperInterfaceE 1*ClickableInterfaceD 3*ButtonTypeInterfaceC ) ValueInterfaceB 1ExceptionInterfaceA -AdapterInterface@ 5IOExceptionInterface? 1ExceptionInterface> 5ParserCacheInterface)= SExpressionFunctionProviderInterface< =EventSubscriberInterface; =EventDispatcherInterface': OTraceableEventDispatcherInterface9 7ParameterBagInterface8 +DumperInterface7 7InstantiatorInterface6 ?PrependExtensionInterface5 1ExtensionInterface%4 KConfigurationExtensionInterface3 1ExceptionInterface2 +DumperInterface1 =TaggedContainerInterface0 )ScopeInterface&/ MIntrospectableContainerInterface. 1ContainerInterface- ;ContainerAwareInterface, ;RepeatablePassInterface+ 7CompilerPassInterface* 3DeprecatedInterface ) AFatalErrorHandlerInterface( 3TranslatorInterface' 1ExtensionInterface& +ParserInterface% -HandlerInterface$ 'NodeInterface# 1ExceptionInterface" )StyleInterface! +OutputInterface  9ConsoleOutputInterface )InputInterface 3InputAwareInterface +HelperInterface# GOutputFormatterStyleInterface =OutputFormatterInterface 3DescriptorInterface Validator /ResourceInterface ;LoaderResolverInterface +LoaderInterface 9PrototypeNodeInterface 'NodeInterface 9ConfigurationInterface# GParentNodeDefinitionInterface 3NodeParentInterface 5FileLocatorInterface 5ConfigCacheInterface! CConfigCacheFactoryInterface
 IBar 'SomeInterface !GInterface
 !CInterface	 =VersionStrategyInterface   y ybG%~]>~dO2jF&tW1



p
H
 						^	G	)		sR4hJ/gM.mT;jK+zaG/}bJ/d8                         " E OConstraintValidatorInterface) S OConstraintValidatorFactoryInterface  3 OClassBasedInterface 3 DTranslatorInterface~ 9 DTranslatorBagInterface} 9 DMetadataAwareInterface| ? DMessageCatalogueInterface{ + HLoaderInterfacez 1 GExtractorInterfacey 1 FExceptionInterfacex + EDumperInterfacew 1 BOperationInterfacev / =MyStreamingEngineu + ;LoaderInterfacet + :HelperInterface s A 9TemplateReferenceInterface!r C 9TemplateNameParserInterfaceq = 9StreamingEngineInterfacep + 9EngineInterfaceo / 9DebuggerInterfacen - 8PackageInterfacem 3 /GroupDummyInterfacel 3 ,SerializerInterfacek = ,SerializerAwareInterfacej 3 +NormalizerInterfacei 7 +NormalizableInterfaceh 7 +DenormalizerInterfaceg ; +DenormalizableInterfacef 9 *NameConverterInterfacee + )LoaderInterface#d G (ClassMetadataFactoryInterfacec 9 'ClassMetadataInterface b A 'AttributeMetadataInterfacea 1 &ExceptionInterface`  &Exception!_ C %NormalizationAwareInterface^ - %EncoderInterface] - %DecoderInterface!\ C TestFailureHandlerInterface![ C TestSuccessHandlerInterface,Z Y SessionAuthenticationStrategyInterface!Y C RememberMeServicesInterface#X G LogoutSuccessHandlerInterfaceW 9 LogoutHandlerInterfaceV / ListenerInterface'U O AuthenticationEntryPointInterface"T E sAccessDeniedHandlerInterface+S W AuthenticationSuccessHandlerInterface+R W AuthenticationFailureHandlerInterfaceQ 5 FirewallMapInterfaceP 1 AccessMapInterfaceO 7 TokenStorageInterfaceN ; TokenGeneratorInterfaceM ? CsrfTokenManagerInterfaceL 7 
SecureRandomInterfaceK 7 	UserProviderInterfaceJ ' 	UserInterfaceI 5 	UserCheckerInterfaceH 1 	EquatableInterfaceG 7 	AdvancedUserInterfaceF =SecurityContextInterfaceE 'RoleInterfaceD 9RoleHierarchyInterfaceC 1ExceptionInterface"B EUserPasswordEncoderInterfaceA =PasswordEncoderInterface@ ;EncoderFactoryInterface? 7EncoderAwareInterface> )VoterInterface#= GAuthorizationCheckerInterface$< IAccessDecisionManagerInterface; )TokenInterface: 7TokenStorageInterface9 9TokenProviderInterface8 =PersistentTokenInterface%7 KAuthenticationProviderInterface%6 KSimplePreAuthenticatorInterface&5 MSimpleFormAuthenticatorInterface"4 ESimpleAuthenticatorInterface*3 UAuthenticationTrustResolverInterface$2 IAuthenticationManagerInterface1 9PermissionMapInterface#0 GMaskBuilderRetrievalInterface/ 5MaskBuilderInterface0. a rSecurityIdentityRetrievalStrategyInterface- ? rSecurityIdentityInterface), S rPermissionGrantingStrategyInterface.+ ] rObjectIdentityRetrievalStrategyInterface* ; rObjectIdentityInterface!) C rMutableAclProviderInterface( 3 rMutableAclInterface' 3 rFieldEntryInterface& ) rEntryInterface% 7 rDomainObjectInterface$ 5 rAuditLoggerInterface# ; rAuditableEntryInterface" 7 rAuditableAclInterface! 5 rAclProviderInterface  % rAclInterface / rAclCacheInterface +RouterInterface 9RouteCompilerInterface" ERequestContextAwareInterface 3UrlMatcherInterface ;RequestMatcherInterface% KRedirectableUrlMatcherInterface 9MatcherDumperInterface =GeneratorDumperInterface 7UrlGeneratorInterface' OConfigurableRequirementsInterface 1ExceptionInterface# GPropertyPathIteratorInterface 7PropertyPathInterface ?PropertyAccessorInterface 1ExceptionInterface )PipesInterface 1ExceptionInterface =OptionsResolverInterface Options 1ExceptionInterface
 ;ResourceBundleInterface   h  hA sQ6^=%gO7 v_K>	


k
0				G	o@
t;	`(GuHvX>\5waJ=.
      *j U MockeryTest_InterfaceWithTraversable!i C MockeryTest_NameOfInterfaceh  Loader
g  Passf ) TestInterface2e ' TestInterfaced ? TestTraversableInterface3c ? TestTraversableInterface2b = TestTraversableInterfacea # TargetClass`  Generator_ ' MockInterface^ 5 ExpectationInterface$] I PHPUnit_Runner_TestSuiteLoader$\ I PHPUnit_Framework_TestListener[ 9 PHPUnit_Framework_Test#Z G PHPUnit_Framework_SkippedTest&Y M PHPUnit_Framework_SelfDescribing!X C PHPUnit_Framework_RiskyTest&W M PHPUnit_Framework_IncompleteTestV / PHPUnit_ExceptionU 7 PHP_CodeSniffer_SniffT 9 PHP_CodeSniffer_Report.S ] PHP_CodeSniffer_CommentParser_DocElementR ' RuleInterface	Q  Foo	P  BorO ; PHP_CodeCoverage_Driver1N c PHPUnit_Extensions_Database_UI_IModeFactory*M U PHPUnit_Extensions_Database_UI_IMode3L g PHPUnit_Extensions_Database_UI_IMediumPrinter,K Y PHPUnit_Extensions_Database_UI_IMedium>J } PHPUnit_Extensions_Database_Operation_IDatabaseOperation)I S PHPUnit_Extensions_Database_ITester7H o PHPUnit_Extensions_Database_IDatabaseListConsumer.G ] PHPUnit_Extensions_Database_DB_IMetaData8F q PHPUnit_Extensions_Database_DB_IDatabaseConnection8E q PHPUnit_Extensions_Database_DataSet_Specs_IFactory5D k PHPUnit_Extensions_Database_DataSet_IYamlParser8C q PHPUnit_Extensions_Database_DataSet_ITableMetaData8B q PHPUnit_Extensions_Database_DataSet_ITableIterator0A a PHPUnit_Extensions_Database_DataSet_ITable/@ _ PHPUnit_Extensions_Database_DataSet_ISpec6? m PHPUnit_Extensions_Database_DataSet_IPersistable2> e PHPUnit_Extensions_Database_DataSet_IDataSet1= c PHPUnit_Extensions_Database_UI_IModeFactory*< U PHPUnit_Extensions_Database_UI_IMode3; g PHPUnit_Extensions_Database_UI_IMediumPrinter,: Y PHPUnit_Extensions_Database_UI_IMedium>9 } PHPUnit_Extensions_Database_Operation_IDatabaseOperation)8 S PHPUnit_Extensions_Database_ITester77 o PHPUnit_Extensions_Database_IDatabaseListConsumer.6 ] PHPUnit_Extensions_Database_DB_IMetaData85 q PHPUnit_Extensions_Database_DB_IDatabaseConnection84 q PHPUnit_Extensions_Database_DataSet_Specs_IFactory53 k PHPUnit_Extensions_Database_DataSet_IYamlParser82 q PHPUnit_Extensions_Database_DataSet_ITableMetaData81 q PHPUnit_Extensions_Database_DataSet_ITableIterator00 a PHPUnit_Extensions_Database_DataSet_ITable// _ PHPUnit_Extensions_Database_DataSet_ISpec6. m PHPUnit_Extensions_Database_DataSet_IPersistable2- e PHPUnit_Extensions_Database_DataSet_IDataSet
,  Rule+ # MethodAware* ) InterfaceAware) ' FunctionAware( ! ClassAware
'  xRule& # {MethodAware% ) {InterfaceAware$ ' {FunctionAware# ! {ClassAware" 1 oExceptionInterface! 3 gDataDumperInterface  + fDumperInterface + fClonerInterface) S dConstraintViolationBuilderInterface 1 cValidatorInterface" E cContextualValidatorInterface 7 _StaticLoaderInterface 3 [LegacyClassMetadata + [EntityInterface + WLoaderInterface = VMetadataFactoryInterface ? TPropertyMetadataInterface / TMetadataInterface 9 TClassMetadataInterface ) UCacheInterface 1 SExceptionInterface ? RExecutionContextInterface& M RExecutionContextFactoryInterface 1 OValidatorInterface ? OValidatorBuilderInterface  A OValidationVisitorInterface ? OPropertyMetadataInterface( Q OPropertyMetadataContainerInterface 
 A OObjectInitializerInterface	 / OMetadataInterface = OMetadataFactoryInterface$ I OGroupSequenceProviderInterface% K OGlobalExecutionContextInterface ? OExecutionContextInterface& M OConstraintViolationListInterface" E OConstraintViolationInterface   z  t@|^8oM+sT5o5



z
a
O
3
							h	R	:	#		tY=aI)pQ8sW? dC  jJ%nM+\: d 9!)CacheStrategyInterfacec 9!)CacheProviderInterfaceb ?!(Twig_TokenParserInterface%a K!(Twig_TokenParserBrokerInterface` 1!(Twig_TestInterface _ A!(Twig_TestCallableInterface^ 9!(Twig_TemplateInterface*] U!(Twig_Sandbox_SecurityPolicyInterface\ 5!(Twig_ParserInterface[ ?!(Twig_NodeVisitorInterfaceZ =!(Twig_NodeOutputInterfaceY 1!(Twig_NodeInterfaceX 5!(Twig_LoaderInterfaceW 3!(Twig_LexerInterfaceV 9!(Twig_FunctionInterface$U I!(Twig_FunctionCallableInterfaceT 5!(Twig_FilterInterface"S E!(Twig_FilterCallableInterfaceR ;!(Twig_ExtensionInterface Q A!(Twig_ExistsLoaderInterfaceP 9!(Twig_CompilerInterfaceO 9!&StringWrapperInterfaceN /!%StrategyInterfaceM 1!$ExceptionInterfaceL ;!#NamingStrategyInterface K A!"HydratingIteratorInterfaceJ =!!StrategyEnabledInterface$I I!!NamingStrategyEnabledInterfaceH =!!HydratorOptionsInterfaceG /!!HydratorInterfaceF 9!!HydratorAwareInterfaceE 1!!HydrationInterfaceD 9!!FilterEnabledInterfaceC ;! FilterProviderInterfaceB +! FilterInterfaceA 3!ExtractionInterface@ 1!ExceptionInterface? =!MergeReplaceKeyInterface> /!ResponseInterface= -!RequestInterface< 3!ParametersInterface; =!ParameterObjectInterface: -!MessageInterface9 -!JsonSerializable8 9!InitializableInterface7 7!DispatchableInterface 6 A!ArraySerializableInterface5 /!StrategyInterface4 1!ExceptionInterface3 ;!NamingStrategyInterface 2 A!HydratingIteratorInterface1 ;!FilterProviderInterface0 +!FilterInterface/ =!StrategyEnabledInterface$. I!NamingStrategyEnabledInterface- =!HydratorOptionsInterface, /!HydratorInterface+ 9!HydratorAwareInterface* 1!HydrationInterface) 9!FilterEnabledInterface( 3!ExtractionInterface' 1!ExceptionInterface& '!UserInterface% /!ProviderInterface$ /!ThrottleInterface# /!ProviderInterface" -!	SessionInterface! +!HasherInterface  /!ProviderInterface )!GroupInterface + CookieInterface ' ViewInterface 5 ViewFactoryInterface / TemplateInterface 3 PagerfantaInterface  Exception - AdapterInterface ' ViewInterface 5 ViewFactoryInterface / TemplateInterface 3 PagerfantaInterface  Exception - AdapterInterface& M Chatroulette_ConnectionInterface# G React_WritableStreamInterface# G React_ReadableStreamInterface 7 React_StreamInterface% K Evenement_EventEmitterInterface7 o MockeryTest_InterfaceThatExtendsIteratorAggregate. ] MockeryTest_InterfaceThatExtendsIterator.
 ] MockeryTest_InterfaceWithMethodParamSelf1	 c MockeryTest_InterfaceWithPublicStaticMethod- [ MockeryTest_InterfaceWithAbstractMethod 9 MockeryTest_Interface2 9 MockeryTest_Interface1 7 MockeryTest_Interface* U MockeryTest_InterfaceWithTraversable! C MockeryTest_NameOfInterface  Loader
  Pass  ) TestInterface2 ' TestInterface~ ? TestTraversableInterface3} ? TestTraversableInterface2| = TestTraversableInterface{ # TargetClassz  Generatory ' MockInterfacex 5 ExpectationInterface&w M Chatroulette_ConnectionInterface#v G React_WritableStreamInterface#u G React_ReadableStreamInterfacet 7 React_StreamInterface%s K Evenement_EventEmitterInterface7r o MockeryTest_InterfaceThatExtendsIteratorAggregate.q ] MockeryTest_InterfaceThatExtendsIterator.p ] MockeryTest_InterfaceWithMethodParamSelf1o c MockeryTest_InterfaceWithPublicStaticMethod-n [ MockeryTest_InterfaceWithAbstractMethodm 9 MockeryTest_Interface2l 9 MockeryTest_Interface1k 7 MockeryTest_Interface   x gK4z_B)^5_SGj-



m
5
			o	[	B	yX<qR6qR/zgR=- |cH1mK*
}]E'
kI                                       '\ O!\EsiResponseCacheStrategyInterface[ ?![FragmentRendererInterfaceZ 9!ZHttpExceptionInterface Y A!YLateDataCollectorInterfaceX 9!YDataCollectorInterface!W C!XControllerResolverInterfaceV /!WWarmableInterfaceU 5!WCacheWarmerInterfaceT 7!VCacheClearerInterfaceS +!UBundleInterfaceR ;!TSessionStorageInterfaceQ -!SSessionInterfaceP 3!SSessionBagInterfaceO /!RFlashBagInterfaceN 7!QAttributeBagInterfaceM ;!PSessionHandlerInterfaceL ;!ORequestMatcherInterfaceK =!NMimeTypeGuesserInterfaceJ ?!NExtensionGuesserInterfaceI 3!MDeprecatedInterface H A!LFatalErrorHandlerInterfaceG )!KPipesInterfaceF 1!JExceptionInterfaceE 1!IExceptionInterfaceD 5!HIOExceptionInterfaceC 1!HExceptionInterfaceB )!GValueInterfaceA 1!FExceptionInterface@ -!EAdapterInterface? /!DMarkdownInterface> /MarkdownInterface= %!CFunctionLike< %!BUnserializer; !!BSerializer: #!BNodeVisitor9 9!BNodeTraverserInterface
8 !BNode7 !BBuilder6 %!AFunctionLike5 %!@Unserializer4 !!@Serializer3 #!@NodeVisitor2 9!@NodeTraverserInterface
1 !@Node0 !@Builder/ ?!?Twig_TokenParserInterface%. K!?Twig_TokenParserBrokerInterface- 1!?Twig_TestInterface , A!?Twig_TestCallableInterface+ 9!?Twig_TemplateInterface** U!?Twig_Sandbox_SecurityPolicyInterface) 5!?Twig_ParserInterface( ?!?Twig_NodeVisitorInterface' =!?Twig_NodeOutputInterface& 1!?Twig_NodeInterface% 5!?Twig_LoaderInterface$ 3!?Twig_LexerInterface# 9!?Twig_FunctionInterface$" I!?Twig_FunctionCallableInterface! 5!?Twig_FilterInterface"  E!?Twig_FilterCallableInterface ;!?Twig_ExtensionInterface  A!?Twig_ExistsLoaderInterface 9!?Twig_CompilerInterface 3!?Twig_CacheInterface =!>ServiceProviderInterface =!=ServiceProviderInterface 1!<ExceptionInterface" E!;TraversableMockTestInterface /!;MockTestInterface ?!;InterfaceWithStaticMethod) S!;InterfaceWithSemiReservedMethodName -!;AnotherInterface #!;AnInterface- [!;PHPUnit_Framework_MockObject_Verifiable' O!;PHPUnit_Framework_MockObject_Stub9 s!;PHPUnit_Framework_MockObject_Stub_MatcherCollection- [!;PHPUnit_Framework_MockObject_MockObject5 k!;PHPUnit_Framework_MockObject_Matcher_Invocation, Y!;PHPUnit_Framework_MockObject_Invokable- [!;PHPUnit_Framework_MockObject_Invocation, Y!;PHPUnit_Framework_MockObject_Exception/
 _!;PHPUnit_Framework_MockObject_Builder_Stub:	 u!;PHPUnit_Framework_MockObject_Builder_ParametersMatch4 i!;PHPUnit_Framework_MockObject_Builder_Namespace: u!;PHPUnit_Framework_MockObject_Builder_MethodNameMatch0 a!;PHPUnit_Framework_MockObject_Builder_Match3 g!;PHPUnit_Framework_MockObject_Builder_Identity	 !:Foo	 !:Bor  A!:PHP_CodeCoverage_Exception ;!:PHP_CodeCoverage_Driver$  I!9PHPUnit_Runner_TestSuiteLoader$ I!9PHPUnit_Framework_TestListener~ 9!9PHPUnit_Framework_Test#} G!9PHPUnit_Framework_SkippedTest&| M!9PHPUnit_Framework_SelfDescribing!{ C!9PHPUnit_Framework_RiskyTest&z M!9PHPUnit_Framework_IncompleteTesty /!9PHPUnit_Exceptionx )!8PipesInterfacew 1!7ExceptionInterfacev )!6ValueInterfaceu 1!5ExceptionInterfacet -!4AdapterInterfaces 5!3IOExceptionInterfacer 1!3ExceptionInterfaceq =!2EventSubscriberInterfacep =!2EventDispatcherInterface'o O!1TraceableEventDispatcherInterfacen )!0StyleInterfacem +!/OutputInterfacel 9!/ConsoleOutputInterfacek )!.InputInterfacej 3!.InputAwareInterfacei +!-HelperInterface#h G!,OutputFormatterStyleInterfaceg =!,OutputFormatterInterfacef 3!+DescriptorInterfacee 7!*KeyGeneratorInterface    sW:"}^6fB$rY8%uO0





{
Z
4

 						j	Q	9		eJ!
sQ3eH-rQ4a=xV4_<mM/           ] /!FlashBagInterface\ 7!AttributeBagInterface[ ;!SessionHandlerInterfaceZ ;!RequestMatcherInterfaceY =!MimeTypeGuesserInterfaceX ?!ExtensionGuesserInterfaceW +!AuthorInterfaceV '!FormInterfaceU 5!FormBuilderInterfaceT =!ViolationMapperInterface S A!FormDataExtractorInterface R A!FormDataCollectorInterfaceQ 7!CsrfProviderInterfaceP 3!ChoiceListInterfaceO 1!ExceptionInterfaceN 7!ChoiceLoaderInterface M A!ChoiceListFactoryInterfaceL 3!ChoiceListInterfaceK ?!SubmitButtonTypeInterfaceJ ?!ResolvedFormTypeInterface&I M!ResolvedFormTypeFactoryInterfaceH ;!RequestHandlerInterfaceG /!FormTypeInterfaceF =!FormTypeGuesserInterface E A!FormTypeExtensionInterfaceD 7!FormRendererInterface!C C!FormRendererEngineInterfaceB 7!FormRegistryInterfaceA '!FormInterface@ 5!FormFactoryInterface!? C!FormFactoryBuilderInterface> 9!FormExtensionInterface= 3!FormConfigInterface < A!FormConfigBuilderInterface; 5!FormBuilderInterface: =!DataTransformerInterface9 3!DataMapperInterface8 1!ClickableInterface7 3!ButtonTypeInterface6 )!ValueInterface5 1!ExceptionInterface4 -!AdapterInterface3 5!IOExceptionInterface2 1!ExceptionInterface1 5!ParserCacheInterface)0 S!ExpressionFunctionProviderInterface/ =!EventSubscriberInterface. =!EventDispatcherInterface'- O!TraceableEventDispatcherInterface, 7!ParameterBagInterface+ +!DumperInterface* 7!InstantiatorInterface) ?!PrependExtensionInterface( 1!ExtensionInterface%' K!ConfigurationExtensionInterface& 1!ExceptionInterface% +!DumperInterface$ =!TaggedContainerInterface# )!ScopeInterface&" M!IntrospectableContainerInterface! 1!ContainerInterface  ;!ContainerAwareInterface ;!RepeatablePassInterface 7!CompilerPassInterface 3!DeprecatedInterface  A!FatalErrorHandlerInterface 3!TranslatorInterface 1!ExtensionInterface +!ParserInterface -!HandlerInterface '!NodeInterface 1!ExceptionInterface )!StyleInterface +!~OutputInterface 9!~ConsoleOutputInterface )!}InputInterface 3!}InputAwareInterface +!|HelperInterface# G!{OutputFormatterStyleInterface =!{OutputFormatterInterface 3!zDescriptorInterface !yValidator /!xResourceInterface
 ;!wLoaderResolverInterface	 +!wLoaderInterface 9!vPrototypeNodeInterface '!vNodeInterface 9!vConfigurationInterface# G!uParentNodeDefinitionInterface 3!uNodeParentInterface 5!tFileLocatorInterface 5!tConfigCacheInterface! C!tConfigCacheFactoryInterface
  !sIBar '!rSomeInterface~ !!qGInterface} !!qCInterface| =!pVersionStrategyInterface{ -!oPackageInterfacez 1!nExceptionInterfacey -!mContextInterface"x E!lUserProviderFactoryInterfacew =!kSecurityFactoryInterfacev +!jEngineInterfaceu ;!iTemplateFinderInterfacet 7!hTwigRendererInterface!s C!hTwigRendererEngineInterfacer /!gRegistryInterfaceq 7!fEntityLoaderInterfacep +!eRouterInterfaceo 9!eRouteCompilerInterface"n E!eRequestContextAwareInterfacem 3!dUrlMatcherInterfacel ;!dRequestMatcherInterface%k K!dRedirectableUrlMatcherInterfacej 9!cMatcherDumperInterfacei =!bGeneratorDumperInterfaceh 7!aUrlGeneratorInterface'g O!aConfigurableRequirementsInterfacef 1!`ExceptionInterfacee =!_ProfilerStorageInterfaced +!^LoggerInterfacec 5!^DebugLoggerInterfaceb 3!]TerminableInterfacea +!]KernelInterface` 3!]HttpKernelInterface_ 1!\SurrogateInterface^ )!\StoreInterface$] I!\ResponseCacheStrategyInterface   y  uX>mF/nN+vX8}_9




n
N
2
						l	L	/	~M!jCxW8a@ qT> j<`<o]B       V 9!ClassMetadataInterface U A!AttributeMetadataInterfaceT 1!ExceptionInterfaceS !Exception!R C!NormalizationAwareInterfaceQ -!EncoderInterfaceP -!DecoderInterface!O C!TestFailureHandlerInterface!N C!TestSuccessHandlerInterface,M Y!SessionAuthenticationStrategyInterface!L C!RememberMeServicesInterface#K G!LogoutSuccessHandlerInterfaceJ 9!LogoutHandlerInterfaceI /!ListenerInterface'H O!AuthenticationEntryPointInterface"G E!AccessDeniedHandlerInterface+F W!AuthenticationSuccessHandlerInterface+E W!AuthenticationFailureHandlerInterfaceD 5!FirewallMapInterfaceC 1!AccessMapInterfaceB 7!TokenStorageInterfaceA ;!TokenGeneratorInterface@ ?!CsrfTokenManagerInterface? 7!SecureRandomInterface> 7!UserProviderInterface= '!UserInterface< 5!UserCheckerInterface; 1!EquatableInterface: 7!AdvancedUserInterface9 =!SecurityContextInterface8 '!RoleInterface7 9!RoleHierarchyInterface6 1!ExceptionInterface"5 E!UserPasswordEncoderInterface4 =!PasswordEncoderInterface3 ;!EncoderFactoryInterface2 7!EncoderAwareInterface1 )!VoterInterface#0 G!AuthorizationCheckerInterface$/ I!AccessDecisionManagerInterface. )!TokenInterface- 7!TokenStorageInterface, 9!TokenProviderInterface+ =!PersistentTokenInterface%* K!AuthenticationProviderInterface%) K!SimplePreAuthenticatorInterface&( M!SimpleFormAuthenticatorInterface"' E!SimpleAuthenticatorInterface*& U!AuthenticationTrustResolverInterface$% I!AuthenticationManagerInterface$ 9!PermissionMapInterface## G!MaskBuilderRetrievalInterface" 5!MaskBuilderInterface0! a!SecurityIdentityRetrievalStrategyInterface  ?!SecurityIdentityInterface) S!PermissionGrantingStrategyInterface. ]!ObjectIdentityRetrievalStrategyInterface ;!ObjectIdentityInterface! C!MutableAclProviderInterface 3!MutableAclInterface 3!FieldEntryInterface )!EntryInterface 7!DomainObjectInterface 5!AuditLoggerInterface ;!AuditableEntryInterface 7!AuditableAclInterface 5!AclProviderInterface %!AclInterface /!AclCacheInterface +!RouterInterface 9!RouteCompilerInterface" E!RequestContextAwareInterface 3!UrlMatcherInterface ;!RequestMatcherInterface% K!RedirectableUrlMatcherInterface 9!MatcherDumperInterface
 =!GeneratorDumperInterface	 7!UrlGeneratorInterface' O!ConfigurableRequirementsInterface 1!ExceptionInterface# G!PropertyPathIteratorInterface 7!PropertyPathInterface ?!PropertyAccessorInterface 1!ExceptionInterface )!PipesInterface 1!ExceptionInterface  =!OptionsResolverInterface !Options~ 1!ExceptionInterface} ;!ResourceBundleInterface| 7!RegionBundleInterface{ 7!LocaleBundleInterfacez ;!LanguageBundleInterfacey ;!CurrencyBundleInterfacex 1!ExceptionInterfacew 7!BundleWriterInterfacev 7!BundleReaderInterface u A!BundleEntryReaderInterfacet ;!BundleCompilerInterfaces =!ProfilerStorageInterfacer +!LoggerInterfaceq 5!DebugLoggerInterfacep 3!TerminableInterfaceo +!KernelInterfacen 3!HttpKernelInterfacem 1!SurrogateInterfacel )!StoreInterface$k I!ResponseCacheStrategyInterface'j O!EsiResponseCacheStrategyInterfacei ?!FragmentRendererInterfaceh 9!HttpExceptionInterface g A!LateDataCollectorInterfacef 9!DataCollectorInterface!e C!ControllerResolverInterfaced /!WarmableInterfacec 5!CacheWarmerInterfaceb 7!CacheClearerInterfacea +!BundleInterface` ;!SessionStorageInterface_ -!SessionInterface^ 3!SessionBagInterface   + eG+
fBlT2kFqN#



x
V
;
$
					x	\	>	kU?rR3bAkWH5 oY>%{^:{gR?'	l^H+                 _ 5"(ClassMetadataFactory^ '"(ClassMetadata] "'Proxy\ -"'ObjectRepository[ 1"'ObjectManagerAwareZ '"'ObjectManagerY +"'ManagerRegistryX 1"'ConnectionRegistryW ;"&PropertyChangedListenerV 7"&NotifyPropertyChangedU +"&EventSubscriberT !"&ComparableS %"%ShardManagerR #"$ShardChoserQ "#VisitorP 1""SchemaSynchronizerO !"!ConstraintN " SQLLoggerM "DriverL "StatementK +"ResultStatementJ !"Connection I A"ClassLoaderTest_InterfaceA!H C"ReflectionProviderInterfaceG 5"ClassFinderInterfaceF "ProxyE )"ProxyExceptionD '"MappingDriverC #"FileLocatorB /"ReflectionServiceA 5"ClassMetadataFactory@ '"ClassMetadata? "Proxy> -"ObjectRepository= 1"ObjectManagerAware< '"ObjectManager; +"ManagerRegistry: 1"ConnectionRegistry9 ;"PropertyChangedListener8 7"NotifyPropertyChanged7 +"EventSubscriber6 !"Comparable5 %"FunctionLike4 %"Unserializer3 !"Serializer2 "Parser1 #"NodeVisitor0 9"NodeTraverserInterface
/ "Node. "Builder- -"VehicleInterface, -"VisitorInterface+ 3"SerializerInterface%* K"PropertyNamingStrategyInterface!) C"SubscribingHandlerInterface( ="HandlerRegistryInterface ' A"ExclusionStrategyInterface& "Exception% ="EventSubscriberInterface$ ="EventDispatcherInterface # A"ObjectConstructorInterface" 9"DriverFactoryInterface! +"
PurgerInterface  9"	SharedFixtureInterface ;"	OrderedFixtureInterface -"	FixtureInterface ?"	DependentFixtureInterface +"PurgerInterface 9"SharedFixtureInterface ;"OrderedFixtureInterface -"FixtureInterface ?"DependentFixtureInterface '"ViewInterface '"ViewInterface 1"ExceptionInterface 3"DataDumperInterface +" DumperInterface +" ClonerInterface) S!ConstraintViolationBuilderInterface 1!ValidatorInterface" E!ContextualValidatorInterface 7!StaticLoaderInterface 3!LegacyClassMetadata +!EntityInterface +!LoaderInterface
 =!MetadataFactoryInterface	 ?!PropertyMetadataInterface /!MetadataInterface 9!ClassMetadataInterface )!CacheInterface 1!ExceptionInterface ?!ExecutionContextInterface& M!ExecutionContextFactoryInterface 1!ValidatorInterface ?!ValidatorBuilderInterface   A!ValidationVisitorInterface ?!PropertyMetadataInterface(~ Q!PropertyMetadataContainerInterface } A!ObjectInitializerInterface| /!MetadataInterface{ =!MetadataFactoryInterface$z I!GroupSequenceProviderInterface%y K!GlobalExecutionContextInterfacex ?!ExecutionContextInterface&w M!ConstraintViolationListInterface"v E!ConstraintViolationInterface"u E!ConstraintValidatorInterface)t S!ConstraintValidatorFactoryInterfaces 3!ClassBasedInterfacer 3!TranslatorInterfaceq 9!TranslatorBagInterfacep 9!MetadataAwareInterfaceo ?!MessageCatalogueInterfacen +!LoaderInterfacem 1!ExtractorInterfacel 1!ExceptionInterfacek +!DumperInterfacej 1!OperationInterfacei /!MyStreamingEngineh +!LoaderInterfaceg +!HelperInterface f A!TemplateReferenceInterface!e C!TemplateNameParserInterfaced =!StreamingEngineInterfacec +!EngineInterfaceb /!DebuggerInterfacea -!PackageInterface` 3!GroupDummyInterface_ 3!SerializerInterface^ =!SerializerAwareInterface] 3!NormalizerInterface\ 7!NormalizableInterface[ 7!DenormalizerInterfaceZ ;!DenormalizableInterfaceY 9!NameConverterInterfaceX +!LoaderInterface#W G!ClassMetadataFactoryInterface    zVC,sX; 	iJ4pS7kY=





t
]
A
,
						{	_	D	.	uW;zZB*iN6qX;kUH,zT.xL6qU6 i -"ToArrayInterfaceh 9"HasDispatcherInterfaceg 3"FromConfigInterfacef +"GuzzleExceptione 7"EventEmitterInterfaced +"ServerInterfacec 9"FinderFactoryInterface"b E"PlaceholderResolverInterfacea 3"DataSourceInterface` )"CacheInterface_ '"DataInterface)^ S"PlaceholderResolverFactoryInterface] 9"ConfigurationInterface#\ G"ConfigurationFactoryInterface#[ G"ConfigurationBuilderInterface)Z S"~PlaceholderResolverFactoryInterfaceY 9"~ConfigurationInterface#X G"~ConfigurationFactoryInterface#W G"~ConfigurationBuilderInterface&V M"}InternetMediaTypeParserInterface U A"}InternetMediaTypeInterfaceT /"|DetectorInterfaceS 3"{RepositoryInterfaceR +"zIAntPathMatcherQ +"yIAntPathMatcherP 3"xConstraintInterface
O "vIBarN '"uSomeInterfaceM 1"tVcsDriverInterface!L C"sWritableRepositoryInterfaceK 3"sRepositoryInterface"J E"sInstalledRepositoryInterfaceI +"rPluginInterfaceH +"qLoaderInterfaceG ;"pLinkConstraintInterfaceF 5"oRootPackageInterfaceE -"oPackageInterfaceD ="oCompletePackageInterfaceC /"nArchiverInterfaceB #"mIOInterfaceA 1"lInstallerInterface@ ="kEventSubscriberInterface? 3"jDownloaderInterface> 7"jChangeReportInterface= +"iPolicyInterface< 1"hOperationInterface; 7"gConfigSourceInterface
: "eIBar9 '"dSomeInterface8 1"cVcsDriverInterface!7 C"bWritableRepositoryInterface6 3"bRepositoryInterface"5 E"bInstalledRepositoryInterface4 +"aPluginInterface3 +"`LoaderInterface2 ;"_LinkConstraintInterface1 5"^RootPackageInterface0 -"^PackageInterface/ ="^CompletePackageInterface. /"]ArchiverInterface- #"\IOInterface, 1"[InstallerInterface+ ="ZEventSubscriberInterface* 3"YDownloaderInterface) 7"YChangeReportInterface( +"XPolicyInterface' 1"WOperationInterface& 7"VConfigSourceInterface% 3"UTranslatorInterface$ 1"TExtensionInterface# +"SParserInterface" -"RHandlerInterface! '"QNodeInterface  1"PExceptionInterface 3"OTranslatorInterface 1"NExtensionInterface +"MParserInterface -"LHandlerInterface '"KNodeInterface 1"JExceptionInterface /"ISortableInterface /"ISequenceInterface %"IMapInterface 3"ICollectionInterface )"HStyleInterface +"GOutputInterface 9"GConsoleOutputInterface )"FInputInterface 3"FInputAwareInterface +"EHelperInterface# G"DOutputFormatterStyleInterface ="DOutputFormatterInterface 3"CDescriptorInterface "BValidator /"AResourceInterface
 ;"@LoaderResolverInterface	 +"@LoaderInterface 9"?PrototypeNodeInterface '"?NodeInterface 9"?ConfigurationInterface# G">ParentNodeDefinitionInterface 3">NodeParentInterface 5"=FileLocatorInterface 5"=ConfigCacheInterface! C"=ConfigCacheFactoryInterface  "<Validator /";ResourceInterface~ ;":LoaderResolverInterface} +":LoaderInterface| 9"9PrototypeNodeInterface{ '"9NodeInterfacez 9"9ConfigurationInterface#y G"8ParentNodeDefinitionInterfacex 3"8NodeParentInterfacew 5"7FileLocatorInterfacev 5"7ConfigCacheInterface!u C"7ConfigCacheFactoryInterfacet )"6PipesInterfaces 1"5ExceptionInterfacer 5"4IOExceptionInterfaceq 1"4ExceptionInterfacep )"3ValueInterfaceo 1"2ExceptionInterfacen -"1AdapterInterfacem +"0TargetInterfacel 9"0ResolveTargetInterfacek !"/TreeWalkerj ".Proxyi '"-QuoteStrategyh )"-NamingStrategyg !"-Annotation!f C",ReflectionProviderInterfacee 5",ClassFinderInterfaced "+Proxyc )"*ProxyExceptionb '")MappingDrivera #")FileLocator` /"(ReflectionService    sZ@ zdL0lN6}U<"vZ< 




b
D
)
					o	P	0	|S1na= mU5	r[<$kT3 }eG)	mU:W6   n ="EventSubscriberInterfacem ="EventDispatcherInterface'l O"TraceableEventDispatcherInterfacek 7"ParameterBagInterfacej +"DumperInterfacei 7"InstantiatorInterfaceh ?"PrependExtensionInterfaceg 1"ExtensionInterface%f K"ConfigurationExtensionInterfacee 1"ExceptionInterfaced +"DumperInterfacec ="TaggedContainerInterfaceb )"ScopeInterface&a M"IntrospectableContainerInterface` 1"ContainerInterface_ ;"ContainerAwareInterface^ ;"RepeatablePassInterface] 7"CompilerPassInterface\ 7"ParameterBagInterface[ +"DumperInterfaceZ 7"InstantiatorInterfaceY ?"PrependExtensionInterfaceX 1"ExtensionInterface%W K"ConfigurationExtensionInterfaceV 1"ExceptionInterfaceU +"DumperInterfaceT ="TaggedContainerInterfaceS )"ScopeInterface&R M"IntrospectableContainerInterfaceQ 1"ContainerInterfaceP ;"ContainerAwareInterfaceO ;"RepeatablePassInterfaceN 7"CompilerPassInterfaceM )"StyleInterfaceL +"OutputInterfaceK 9"ConsoleOutputInterfaceJ )"InputInterfaceI 3"InputAwareInterfaceH +"HelperInterface#G G"OutputFormatterStyleInterfaceF ="OutputFormatterInterfaceE 3"DescriptorInterfaceD "ValidatorC /"ResourceInterfaceB ;"LoaderResolverInterfaceA +"LoaderInterface@ 9"PrototypeNodeInterface? '"NodeInterface> 9"ConfigurationInterface#= G"ParentNodeDefinitionInterface< 3"NodeParentInterface; 5"FileLocatorInterface: 5"ConfigCacheInterface!9 C"ConfigCacheFactoryInterface
8 "IBar7 '"SomeInterface6 !"GInterface5 !"CInterface
4 "IBar3 '"SomeInterface2 !"GInterface1 !"CInterface#0 G"StreamRequestFactoryInterface/ +"StreamInterface. ?"ResourceIteratorInterface&- M"ResourceIteratorFactoryInterface, 1"ValidatorInterface!+ C"ServiceDescriptionInterface* 1"OperationInterface) ="ResponseVisitorInterface( ;"RequestVisitorInterface' -"FactoryInterface& ;"ResponseParserInterface% 9"ResponseClassInterface $ A"RequestSerializerInterface# -"CommandInterface" 7"ConfigLoaderInterface! +"ClientInterface  ;"ServiceBuilderInterface% K"ErrorResponseExceptionInterface 1"CookieJarInterface 7"RevalidationInterface ?"CanCacheStrategyInterface 7"CacheStorageInterface ?"CacheKeyProviderInterface ="BackoffStrategyInterface 1"UrlParserInterface 5"UriTemplateInterface 9"MessageParserInterface 7"CookieParserInterface 3"LogAdapterInterface 1"InflectorInterface ="QueryAggregatorInterface +"HeaderInterface 9"HeaderFactoryInterface -"RequestInterface ;"RequestFactoryInterface /"PostFileInterface -"MessageInterface% K"EntityEnclosingRequestInterface
 '"HttpException	 1"CurlMultiInterface 3"EntityBodyInterface +"ClientInterface -"ToArrayInterface 9"HasDispatcherInterface 3"FromConfigInterface +"GuzzleException 7"CacheAdapterInterface 9"BatchTransferInterface  )"BatchInterface 7"BatchDivisorInterface~ ;"WritableStreamInterface} +"StreamInterface| ;"ReadableStreamInterface{ +"ServerInterfacez 3"ConnectionInterfacey +"ServerInterfacex '"LoopInterfacew +"StreamInterfacev 1"UrlParserInterfaceu 5"UriTemplateInterfacet 9"MessageParserInterfaces 7"CookieParserInterfacer -"RequestInterfaceq ;"RequestFactoryInterfacep /"PostFileInterfaceo -"MessageInterface%n K"EntityEnclosingRequestInterfacem '"HttpExceptionl 1"CurlMultiInterfacek 3"EntityBodyInterfacej +"ClientInterface   u u[7cL1pY>"~W8W8




p
U
>
						v	W	8	h?_)EMsZ8lU:'sZ8sZ@                                     &c M#PHPUnit_Framework_IncompleteTestb /#PHPUnit_Exceptiona -#WrapperInterface` ?#SubjectContainerInterface_ -#ThrowExpectation^ 5#ExpectationInterface] 9#SpecificationInterface\ 3#MaintainerInterface[ #ReRunnerZ =#PlatformSpecificReRunnerY ?#MatchersProviderInterfaceX -#MatcherInterfaceW =#ResourceManagerInterfaceV =#ResourceLocatorInterfaceU /#ResourceInterfaceT ##
IOInterfaceS #	TemplateR 1#PresenterInterfaceQ +#EngineInterfaceP !#ReportItemO 1#ExtensionInterfaceN )#EventInterfaceM 1#GeneratorInterfaceL 7# EventHandlerInterfaceK 1"ValidatorInterfaceJ 7"EventHandlerInterfaceI 1"ValidatorInterface"H E"TraversableMockTestInterfaceG /"MockTestInterfaceF ?"InterfaceWithStaticMethodE -"AnotherInterfaceD #"AnInterface-C ["PHPUnit_Framework_MockObject_Verifiable'B O"PHPUnit_Framework_MockObject_Stub9A s"PHPUnit_Framework_MockObject_Stub_MatcherCollection-@ ["PHPUnit_Framework_MockObject_MockObject5? k"PHPUnit_Framework_MockObject_Matcher_Invocation,> Y"PHPUnit_Framework_MockObject_Invokable-= ["PHPUnit_Framework_MockObject_Invocation,< Y"PHPUnit_Framework_MockObject_Exception/; _"PHPUnit_Framework_MockObject_Builder_Stub:: u"PHPUnit_Framework_MockObject_Builder_ParametersMatch49 i"PHPUnit_Framework_MockObject_Builder_Namespace:8 u"PHPUnit_Framework_MockObject_Builder_MethodNameMatch07 a"PHPUnit_Framework_MockObject_Builder_Match36 g"PHPUnit_Framework_MockObject_Builder_Identity$5 I"PHPUnit_Runner_TestSuiteLoader$4 I"PHPUnit_Framework_TestListener3 9"PHPUnit_Framework_Test#2 G"PHPUnit_Framework_SkippedTest&1 M"PHPUnit_Framework_SelfDescribing!0 C"PHPUnit_Framework_RiskyTest&/ M"PHPUnit_Framework_IncompleteTest. /"PHPUnit_Exception- -"SessionInterface, ;"ExistenceAwareInterface+ ;"SessionStorageInterface* ;"RequestMatcherInterface) ="MimeTypeGuesserInterface( 3"TranslatorInterface' 9"TranslatorBagInterface& 9"MetadataAwareInterface% ?"MessageCatalogueInterface$ +"LoaderInterface# 1"ExtractorInterface" 1"ExceptionInterface! +"DumperInterface  1"OperationInterface" E"MigrationRepositoryInterface )"ScopeInterface 1"ConnectorInterface! C"ConnectionResolverInterface 3"ConnectionInterface ?"Twig_TokenParserInterface% K"Twig_TokenParserBrokerInterface 1"Twig_TestInterface  A"Twig_TestCallableInterface 9"Twig_TemplateInterface* U"Twig_Sandbox_SecurityPolicyInterface 5"Twig_ParserInterface ?"Twig_NodeVisitorInterface ="Twig_NodeOutputInterface 1"Twig_NodeInterface 5"Twig_LoaderInterface 3"Twig_LexerInterface 9"Twig_FunctionInterface$ I"Twig_FunctionCallableInterface 5"Twig_FilterInterface" E"Twig_FilterCallableInterface
 ;"Twig_ExtensionInterface 	 A"Twig_ExistsLoaderInterface 9"Twig_CompilerInterface 3"Twig_CacheInterface 1"ExceptionInterface )"PipesInterface 1"ExceptionInterface ="ProfilerStorageInterface +"LoggerInterface 5"DebugLoggerInterface  3"TerminableInterface +"KernelInterface~ 3"HttpKernelInterface} 1"SurrogateInterface| )"StoreInterface${ I"ResponseCacheStrategyInterface'z O"EsiResponseCacheStrategyInterfacey ?"FragmentRendererInterfacex 9"HttpExceptionInterface w A"LateDataCollectorInterfacev 9"DataCollectorInterface!u C"ControllerResolverInterfacet /"WarmableInterfaces 5"CacheWarmerInterfacer 7"CacheClearerInterfaceq +"BundleInterfacep 5"IOExceptionInterfaceo 1"ExceptionInterface   u  nG Md)Q"V


}
B

			c	)W*nR;%
ycI4{dM1ueK2rX>1"qWD0|jW?&             X '#CEventListenerW #BFormatterV -#APrinterExceptionU +#AOutputExceptionT !#@SuiteScopeS #@HookScopeR )#@AfterTestScope
Q #?HookP )#?FilterableHookO -#>FilesystemLoggerN /#=TestworkExceptionM /#<ExceptionStringerL %#;BeforeTestedK )#;BeforeTeardownJ ##;AfterTestedI !#;AfterSetupH /#:EnvironmentReaderG 1#9EnvironmentHandlerF 5#8EnvironmentExceptionE ##7EnvironmentD !#6ControllerC ##5CallHandlerB %#4ResultFilterA !#4CallFilter@ '#3CallException? #2Callee
> #2Call= /#1ArgumentException< /#0ArgumentOrganiser; 3#/ArgumentTransformer: )#.Transformation9 ;#-TransformationException8 !#,StepResult7 /#,DefinedStepResult6 !#+StepTester5 )#+ScenarioTester4 '#+OutlineTester3 -#+BackgroundTester2 /#*SnippetRepository1 #*Snippet0 )#)SnippetPrinter/ -#(SnippetGenerator. -#'SnippetException- +#&SnippetAppender, ##%StepPrinter+ /#%StatisticsPrinter* %#%SetupPrinter) +#%ScenarioPrinter( 3#%OutlineTablePrinter' )#%OutlinePrinter& )#%FeaturePrinter% /#%ExampleRowPrinter$ )#%ExamplePrinter# #$StepScope" '#$ScenarioScope! %#$FeatureScope  1##ScenarioLikeTested /##GherkinNodeTested '##ExampleTested %#"SearchEngine /#!DefinitionPrinter '# PatternPolicy +#SearchException 3#DefinitionException !#Definition '#ContextReader 1#ContextInitializer -#ContextException 1#ContextEnvironment '#ClassResolver )#ClassGenerator 3#TranslatableContext ;#SnippetAcceptingContext# G#CustomSnippetAcceptingContext #Context -#ArgumentResolver -#AnnotationReader1 c#PHPUnit_Extensions_Database_UI_IModeFactory*
 U#PHPUnit_Extensions_Database_UI_IMode3	 g#PHPUnit_Extensions_Database_UI_IMediumPrinter, Y#PHPUnit_Extensions_Database_UI_IMedium> }#PHPUnit_Extensions_Database_Operation_IDatabaseOperation) S#PHPUnit_Extensions_Database_ITester7 o#PHPUnit_Extensions_Database_IDatabaseListConsumer. ]#PHPUnit_Extensions_Database_DB_IMetaData8 q#PHPUnit_Extensions_Database_DB_IDatabaseConnection8 q#PHPUnit_Extensions_Database_DataSet_Specs_IFactory5 k#PHPUnit_Extensions_Database_DataSet_IYamlParser8  q#PHPUnit_Extensions_Database_DataSet_ITableMetaData8 q#PHPUnit_Extensions_Database_DataSet_ITableIterator0~ a#PHPUnit_Extensions_Database_DataSet_ITable/} _#PHPUnit_Extensions_Database_DataSet_ISpec6| m#PHPUnit_Extensions_Database_DataSet_IPersistable2{ e#PHPUnit_Extensions_Database_DataSet_IDataSet1z c#PHPUnit_Extensions_Database_UI_IModeFactory*y U#PHPUnit_Extensions_Database_UI_IMode3x g#PHPUnit_Extensions_Database_UI_IMediumPrinter,w Y#PHPUnit_Extensions_Database_UI_IMedium>v }#PHPUnit_Extensions_Database_Operation_IDatabaseOperation)u S#PHPUnit_Extensions_Database_ITester7t o#PHPUnit_Extensions_Database_IDatabaseListConsumer.s ]#PHPUnit_Extensions_Database_DB_IMetaData8r q#PHPUnit_Extensions_Database_DB_IDatabaseConnection8q q#PHPUnit_Extensions_Database_DataSet_Specs_IFactory5p k#PHPUnit_Extensions_Database_DataSet_IYamlParser8o q#PHPUnit_Extensions_Database_DataSet_ITableMetaData8n q#PHPUnit_Extensions_Database_DataSet_ITableIterator0m a#PHPUnit_Extensions_Database_DataSet_ITable/l _#PHPUnit_Extensions_Database_DataSet_ISpec6k m#PHPUnit_Extensions_Database_DataSet_IPersistable2j e#PHPUnit_Extensions_Database_DataSet_IDataSet$i I#PHPUnit_Runner_TestSuiteLoader$h I#PHPUnit_Framework_TestListenerg 9#PHPUnit_Framework_Test#f G#PHPUnit_Framework_SkippedTest&e M#PHPUnit_Framework_SelfDescribing!d C#PHPUnit_Framework_RiskyTest   J bK8*qcR9 fM2	z`E0u`F2





x
a
N
4
!
						~	h	U	@	,		u`F,pZD+	lTC'dE-xZ;pZA+oV= `J        u '#NodeInterfacet 9#ConfigurationInterface#s G#ParentNodeDefinitionInterfacer 3#NodeParentInterface q A#FatalErrorHandlerInterfacep 1#MinkAwareInterfaceo =#PageObjectAwareInterfacen 5#PageFactoryInterfacem -#RequestInterfacel -#MessageInterfacek 3#FormUploadInterfacej 5#FormRequestInterfacei -#FactoryInterfaceh /#ListenerInterfaceg 1#ExceptionInterfacef +#ClientInterfacee 5#BatchClientInterfaced '#DriverFactoryc -#MinkAwareContextb '#DriverFactorya -#MinkAwareContext` /#SelectorInterface_ -#ElementInterface^ +#DriverInterface] /#SelectorInterface\ -#ElementInterface[ +#DriverInterfaceZ 3#TaggedNodeInterfaceY 9#StepContainerInterfaceX 7#ScenarioLikeInterfaceW /#ScenarioInterfaceV '#NodeInterfaceU 5#KeywordNodeInterfaceT /#ArgumentInterfaceS +#LoaderInterfaceR 3#FileLoaderInterfaceQ /#KeywordsInterfaceP +#FilterInterfaceO 9#FeatureFilterInterfaceN 9#ComplexFilterInterfaceM #ExceptionL )#CacheInterfaceK #TeardownJ #SetupI 5#ResultInterpretationH !#TestResultG +#ExceptionResultF ##SuiteTesterE 3#SpecificationTesterD #ExerciseC +#TesterExceptionB +#SuiteRepositoryA #Suite@ !#SuiteSetup? )#SuiteGenerator> 7#SpecificationIterator= 5#SpecificationLocator< #Extension; ?#ServiceContainerException: -#FormatterFactory9 '#OutputPrinter8 '#EventListener7 #~Formatter6 -#}PrinterException5 +#}OutputException4 !#|SuiteScope3 #|HookScope2 )#|AfterTestScope
1 #{Hook0 )#{FilterableHook/ -#zFilesystemLogger. /#yTestworkException- /#xExceptionStringer, %#wBeforeTested+ )#wBeforeTeardown* ##wAfterTested) !#wAfterSetup( /#vEnvironmentReader' 1#uEnvironmentHandler& 5#tEnvironmentException% ##sEnvironment$ !#rController# ##qCallHandler" %#pResultFilter! !#pCallFilter  '#oCallException #nCallee
 #nCall /#mArgumentException /#lArgumentOrganiser 3#kArgumentTransformer )#jTransformation ;#iTransformationException !#hStepResult /#hDefinedStepResult !#gStepTester )#gScenarioTester '#gOutlineTester -#gBackgroundTester /#fSnippetRepository #fSnippet )#eSnippetPrinter -#dSnippetGenerator -#cSnippetException +#bSnippetAppender ##aStepPrinter /#aStatisticsPrinter
 %#aSetupPrinter	 +#aScenarioPrinter 3#aOutlineTablePrinter )#aOutlinePrinter )#aFeaturePrinter /#aExampleRowPrinter )#aExamplePrinter #`StepScope '#`ScenarioScope %#`FeatureScope  1#_ScenarioLikeTested /#_GherkinNodeTested~ '#_ExampleTested} %#^SearchEngine| /#]DefinitionPrinter{ '#\PatternPolicyz +#[SearchExceptiony 3#[DefinitionExceptionx !#ZDefinitionw '#YContextReaderv 1#XContextInitializeru -#WContextExceptiont 1#VContextEnvironments '#UClassResolverr )#UClassGeneratorq 3#TTranslatableContextp ;#TSnippetAcceptingContext#o G#TCustomSnippetAcceptingContextn #TContextm -#SArgumentResolverl -#RAnnotationReaderk #QTeardownj #QSetupi 5#PResultInterpretationh !#OTestResultg +#OExceptionResultf ##NSuiteTestere 3#NSpecificationTesterd #NExercisec +#MTesterExceptionb +#LSuiteRepositorya #LSuite` !#KSuiteSetup_ )#JSuiteGenerator^ 7#ISpecificationIterator] 5#HSpecificationLocator\ #GExtension[ ?#FServiceContainerExceptionZ -#EFormatterFactoryY '#DOutputPrinter   - r`B"nS+~R-nM3~cH1




b
G
*
						i	N	6	 	}gPB%u[K7"iV>r_D+qH"gL2#mR.}eVB-              %#AdviceAround  ##AdviceAfter #Advice~ +#FluentInterface} 3#DataDumperInterface| +#DumperInterface{ +#ClonerInterfacez 3#DataDumperInterfacey +#DumperInterfacex +#ClonerInterfacew -#HandlerInterface!v C#ActivationStrategyInterfaceu 1#FormatterInterfacet 3#ViewFinderInterfaces +#EngineInterfacer /#CompilerInterfaceq 5#CurlFactoryInterfacep +#GuzzleExceptiono 1#CookieJarInterfacen +#ClientInterfacem #Runnerl /#NotFoundExceptionk 1#ContainerExceptionj 1#ContainerInterfacei /#ParameterResolverh -#InvokerInterface$g I#PHPUnit_Runner_TestSuiteLoader$f I#PHPUnit_Framework_TestListenere 9#PHPUnit_Framework_Test#d G#PHPUnit_Framework_SkippedTest&c M#PHPUnit_Framework_SelfDescribing!b C#PHPUnit_Framework_RiskyTest&a M#PHPUnit_Framework_IncompleteTest` /#PHPUnit_Exception_ %#ShardManager^ ##ShardChoser] #Visitor\ /#SchemaDiffVisitor[ -#NamespaceVisitorZ 1#SchemaSynchronizerY !#ConstraintX #SQLLogger W A#VersionAwarePlatformDriverV #DriverU #StatementT ?#ServerInfoAwareConnectionS +#ResultStatementR 1#PingableConnectionQ =#ExceptionConverterDriverP +#DriverExceptionO !#ConnectionN /#RepositoryFactoryM !#TreeWalkerL #ProxyK '#QuoteStrategyJ )#NamingStrategyI 9#EntityListenerResolverH !#AnnotationG 9#EntityManagerInterfaceF %#ShardManagerE ##ShardChoserD #VisitorC /#SchemaDiffVisitorB 1#SchemaSynchronizerA !#Constraint@ #SQLLogger? #Driver> #Statement= +#ResultStatement< !#Connection!; C#ReflectionProviderInterface: 5#ClassFinderInterface9 #Proxy8 )#ProxyException7 '#MappingDriver6 ##FileLocator5 /#ReflectionService4 5#ClassMetadataFactory3 '#ClassMetadata2 #Proxy1 -#ObjectRepository0 1#ObjectManagerAware/ '#ObjectManager. +#ManagerRegistry- 1#ConnectionRegistry, ;#PropertyChangedListener+ 7#NotifyPropertyChanged* +#EventSubscriber) !#Comparable( -#HandlerInterface!' C#ActivationStrategyInterface& 1#FormatterInterface% 5#IOExceptionInterface$ 1#ExceptionInterface## G#PropertyPathIteratorInterface" 7#PropertyPathInterface! ?#PropertyAccessorInterface  1#ExceptionInterface 7#StaticLoaderInterface +#EntityInterface +#LoaderInterface )#CacheInterface 1#ExceptionInterface 1#ValidatorInterface ?#ValidatorBuilderInterface  A#ValidationVisitorInterface ?#PropertyMetadataInterface( Q#PropertyMetadataContainerInterface  A#ObjectInitializerInterface /#MetadataInterface =#MetadataFactoryInterface$ I#GroupSequenceProviderInterface% K#GlobalExecutionContextInterface ?#ExecutionContextInterface& M#ConstraintViolationListInterface" E#ConstraintViolationInterface" E#ConstraintValidatorInterface) S#ConstraintValidatorFactoryInterface 3#ClassBasedInterface
 7#ParameterBagInterface	 +#DumperInterface 7#InstantiatorInterface ?#PrependExtensionInterface 1#ExtensionInterface% K#ConfigurationExtensionInterface 1#ExceptionInterface +#DumperInterface =#TaggedContainerInterface )#ScopeInterface&  M#IntrospectableContainerInterface 1#ContainerInterface~ ;#ContainerAwareInterface} ;#RepeatablePassInterface| 7#CompilerPassInterface{ #Validatorz /#ResourceInterfacey ;#LoaderResolverInterfacex +#LoaderInterfacew 5#FileLocatorInterfacev 9#PrototypeNodeInterface   # p_G3%nZG5xdK/fRD6#u]=%	




}
]
D
%
						h	L	1	hP/|Z9lQ'	e@!	B%tP)ybH2vV=#         
 /$3PromisorInterface	 -$3PromiseInterface ;$2WritableStreamInterface ;$2ReadableStreamInterface 7$2DuplexStreamInterface 1$1ConnectorInterface +$0ServerInterface 3$0ConnectionInterface +$/ServerInterface )$.TimerInterface  '$-LoopInterface /$,ExecutorInterface~ )$+CacheInterface} 7$*EventEmitterInterface$| I$)PhakeTest_TraversableInterface{ ?$)PhakeTest_StaticInterfacez ?$)PhakeTest_MockedInterface$y I$)PhakeTest_ConstructorInterface$x I$)Phake_Stubber_IAnswerContainer!w C$)Phake_Stubber_IAnswerBinderv 7$)Phake_Stubber_IAnswer#u G$)Phake_Matchers_IMethodMatcher.t ]$)Phake_Matchers_IChainableArgumentMatcher%s K$)Phake_Matchers_IArgumentMatcherr #$)Phake_IMockq 5$)Phake_Client_IClient?p $)Phake_ClassGenerator_InvocationHandler_IInvocationHandler"o E$)Phake_ClassGenerator_ILoader&n M$)Phake_CallRecorder_IVerifierMode4m i$)Phake_CallRecorder_IVerificationFailureHandlerl +$(RouterInterfacek 9$(RouteCompilerInterface"j E$(RequestContextAwareInterfacei 3$'UrlMatcherInterfaceh ;$'RequestMatcherInterface%g K$'RedirectableUrlMatcherInterfacef 9$&MatcherDumperInterfacee =$%GeneratorDumperInterfaced 7$$UrlGeneratorInterface'c O$$ConfigurableRequirementsInterfaceb 1$#ExceptionInterfacea ;$"SessionStorageInterface` -$!SessionInterface_ 3$!SessionBagInterface^ /$ FlashBagInterface] 7$AttributeBagInterface\ ;$SessionHandlerInterface[ ;$RequestMatcherInterfaceZ =$MimeTypeGuesserInterfaceY ?$ExtensionGuesserInterface#X G$StreamRequestFactoryInterfaceW +$StreamInterfaceV 1$UrlParserInterfaceU 5$UriTemplateInterfaceT 9$MessageParserInterfaceS 7$CookieParserInterfaceR =$QueryAggregatorInterfaceQ +$HeaderInterfaceP 9$HeaderFactoryInterfaceO -$RequestInterfaceN ;$RequestFactoryInterfaceM /$PostFileInterfaceL -$MessageInterface%K K$EntityEnclosingRequestInterfaceJ '$HttpExceptionI 1$CurlMultiInterfaceH 3$EntityBodyInterfaceG +$ClientInterfaceF -$ToArrayInterfaceE 9$HasDispatcherInterfaceD 3$FromConfigInterfaceC +$GuzzleExceptionB =$QueryAggregatorInterfaceA +$HeaderInterface@ 9$HeaderFactoryInterface? -$RequestInterface> ;$RequestFactoryInterface= /$PostFileInterface< -$MessageInterface%; K$EntityEnclosingRequestInterface: '$HttpException9 1$
CurlMultiInterface8 3$	EntityBodyInterface7 +$	ClientInterface6 ;$WritableStreamInterface5 +$StreamInterface4 ;$ReadableStreamInterface3 '$LoopInterface2 +$ServerInterface1 3$ConnectionInterface0 $Parser/ #$TableDumper
. $Node- #$TokenStream, !$Recognizer+ $ Token* $ Lexer) ##IReflection( 3#IReflectionProperty' 5#IReflectionParameter& 5#IReflectionNamespace% /#IReflectionMethod$ ;#IReflectionFunctionBase# 3#IReflectionFunction" 5#IReflectionExtension! 3#IReflectionConstant  -#IReflectionClass ##IReflection #Backend '#TestInterface ##Interceptor /#SourceTransformer 7#AspectLoaderExtension +#AspectContainer -#MethodInvocation /#MethodInterceptor #Joinpoint !#Invocation ##Interceptor 1#FunctionInvocation 3#FunctionInterceptor -#FieldInterceptor ##FieldAccess 7#ConstructorInvocation 9#ConstructorInterceptor '#OrderedAdvice #Proxy ##PointFilter
 +#PointcutAdvisor	 #Pointcut '#MethodMatcher -#IntroductionInfo 3#IntroductionAdvisor #Features #Aspect #Advisor %#AdviceBefore   N ~\>t[A!tZ1xQ2kXF,







z
f
N
5
#

								q	a	M	6	 	{kL.t]H0tcL3m_P8 [7{iW?0wfN:,uaN        ) !$Invocation( #$Interceptor' 1$FunctionInvocation& 3$FunctionInterceptor% -$FieldInterceptor$ #$FieldAccess# 7$ConstructorInvocation" 9$ConstructorInterceptor! '$OrderedAdvice  $Proxy #$PointFilter +$PointcutAdvisor $Pointcut '$MethodMatcher -$IntroductionInfo 3$IntroductionAdvisor $Features $Aspect $Advisor %$AdviceBefore %$AdviceAround #$AdviceAfter $Advice +$FluentInterface $Undefined $Undefined$ I$PHPUnit_Runner_TestSuiteLoader$ I$PHPUnit_Framework_TestListener 9$PHPUnit_Framework_Test# G$PHPUnit_Framework_SkippedTest& M$PHPUnit_Framework_SelfDescribing!
 C$PHPUnit_Framework_RiskyTest&	 M$PHPUnit_Framework_IncompleteTest /$PHPUnit_Exception )$sScenarioDriven $sReported $sPlain #$sDescriptive %$sConfigurable )$rConsolePrinter	 $qWeb  +$qSessionSnapshot +$qScreenshotSaver~ $qRemote} $qQueue| %$qPartedModule{ +$qPageSourceSaverz %$qMultiSessiony )$qElementLocatorx -$qDoctrineProviderw +$qDependsOnModulev $qDbu 3$qConflictsWithModulet %$qActiveRecords -$pWebDriverElementr )$dScenarioDrivenq $dReportedp $dPlaino #$dDescriptiven %$dConfigurablem )$cConsolePrinter	l $bWebk +$bSessionSnapshotj +$bScreenshotSaveri $bRemoteh $bQueueg %$bPartedModulef +$bPageSourceSavere %$bMultiSessiond )$bElementLocatorc -$bDoctrineProviderb +$bDependsOnModulea $bDb` 3$bConflictsWithModule_ %$bActiveRecord^ -$aWebDriverElement] -$^EmitterInterface\ 1$]ExceptionInterface[ 7$\PHP_CodeSniffer_SniffZ 9$\PHP_CodeSniffer_ReportY $[ILoggerX $[IBarPanelW =$ZOptionsResolverInterfaceV $ZOptionsU 1$YExceptionInterfaceT %$XIUserStorageS $XIRoleR $XIResourceQ $XIIdentityP '$XIAuthorizatorO )$XIAuthenticatorN #$WIAnnotationM $VIMailerL +$UISessionStorageK $UIResponseJ $UIRequestI !$TIContainerH !$TIComponentG $SIJournalF $RIStorageE '$QILatteFactoryD -$PITemplateFactoryC $PITemplateB -$PIStatePersistentA +$PISignalReceiver@ #$PIRenderable? $OIRouter> $OIResponse= /$OIPresenterFactory< !$OIPresenter; #$NIHtmlString: $MIMacro9 $MILoader8 $LOutput7 $LLexer6 !$KSubscriber5 /$KIExceptionHandler4 $KException3 !$IReflection2 7$HSourceCodeHighlighter1 $GMarkup0 /$FTemplateGenerator/ #$FStepCounter". E$FConditionalTemplateGenerator- #$EIOInterface, 1$DThemeConfigFactory+ +$CReaderInterface* 9$BOptionsResolverFactory$) I$APHPUnit_Runner_TestSuiteLoader$( I$APHPUnit_Framework_TestListener' 9$APHPUnit_Framework_Test#& G$APHPUnit_Framework_SkippedTest&% M$APHPUnit_Framework_SelfDescribing!$ C$APHPUnit_Framework_RiskyTest&# M$APHPUnit_Framework_IncompleteTest" /$APHPUnit_Exception! ;$@WritableStreamInterface  ;$@ReadableStreamInterface 7$@DuplexStreamInterface +$?ServerInterface 3$?ConnectionInterface 1$>ConnectorInterface ;$<PromiseAdapterInterface /$;PromisorInterface -$;PromiseInterface =$;ExtendedPromiseInterface! C$;CancellablePromiseInterface +$:ServerInterface )$9TimerInterface '$8LoopInterface /$7ExecutorInterface# G$6PropertyPathIteratorInterface 7$6PropertyPathInterface ?$6PropertyAccessorInterface 1$5ExceptionInterface /$4ResolverInterface /$4PromisorInterface -$4PromiseInterface /$3ResolverInterface   ~ kWA({_H)u[=$	iU:tY>%	






g
V
9
							s	[	F	0		 eN5Y4R$nA].	~H y]H/mQ@'          ' -$RequestInterface& -$RequestInterface% $Linkable$ 3$ComponentsInterface# $Arrayable" )$TokenInterface! -$ServiceInterface  )$TokenInterface 1$SignatureInterface -$ServiceInterface )$TokenInterface 7$TokenStorageInterface -$ServiceInterface %$UriInterface 3$UriFactoryInterface +$ClientInterface* U$phpMorphy_WordForm_WordFormInterface3 g$phpMorphy_Util_Collection_CollectionInterface) S$phpMorphy_UserDict_VisitorInterface% K$phpMorphy_UserDict_LogInterface3 g$phpMorphy_UserDict_Log_ErrorsHandlerInterface4 i$phpMorphy_UnicodeHelper_UnicodeHelperInterface( Q$phpMorphy_Storage_StorageInterface& M$phpMorphy_Source_SourceInterface" E$phpMorphy_Shm_CacheInterface, Y$phpMorphy_Semaphore_SemaphoreInterface* U$phpMorphy_Paradigm_ParadigmInterface ?$phpMorphy_MorphyInterface* U$phpMorphy_Morphier_MorphierInterface(
 Q$phpMorphy_GramTab_GramTabInterface:	 u$phpMorphy_GrammemsProvider_GrammemsProviderInterface* U$phpMorphy_GramInfo_GramInfoInterface0 a$phpMorphy_Generator_StorageHelperInterface4 i$phpMorphy_Generator_Decorator_HandlerInterface  A$phpMorphy_Fsa_FsaInterface& M$phpMorphy_Finder_FinderInterface+ W$phpMorphy_Dict_Writer_WriterInterface6 m$phpMorphy_Dict_Writer_Observer_ObserverInterface? $phpMorphy_Dict_Source_ValidatingSource_ValidatorInterface+  W$phpMorphy_Dict_Source_SourceInterface6 m$phpMorphy_Dict_Source_NormalizedAncodesInterface"~ E$phpMorphy_DecoratorInterface3} g$phpMorphy_Aot_GramTab_GramInfoHelperInterface2| e$phpMorphy_AnnotDecoder_AnnotDecoderInterface8{ q$phpMorphy_AncodesResolver_AncodesResolverInterfacez 9$AMQPExceptionInterfacey )$QueueInterfacex -$PaletteInterfacew )$ColorInterfacev ;$MetadataReaderInterfaceu '$FillInterfacet -$ProfileInterfaces )$PointInterfacer 5$ManipulatorInterfaceq +$LayersInterfacep -$ImagineInterfaceo )$ImageInterfacen '$FontInterfacem %$BoxInterfacel +$FilterInterfacek $Exceptionj -$EffectsInterfacei +$DrawerInterfaceh )$ThumbInterfaceg )$QueryInterfacef 1$MigrationInterfacee 3$ConnectionInterfaced 7$ActiveRecordInterfacec 5$ActiveQueryInterfaceb $Linkablea 3$ComponentsInterface` $Arrayable_ )$CacheInterface^ +$EventsInterface] )$CacheInterface\ '$ReadInterface[ +$PluginInterfaceZ 3$FilesystemInterfaceY -$AdapterInterfaceX 1$SerializeInterfaceW 1$SerializeInterfaceV #$ResponsebleU +$ObjectInterfaceT 1$ExceptionInterfaceS 3$CollectionInterfaceR #$ResponsebleQ +$ObjectInterfaceP 1$ExceptionInterfaceO 3$CollectionInterfaceN 1$SerializeInterfaceM #$ResponsebleL +$ObjectInterfaceK 1$ExceptionInterfaceJ 3$CollectionInterfaceI -$TrackerInterfaceH 7$StateCheckerInterfaceG /$ResourceInterfaceF 1$ExceptionInterfaceE -$TrackerInterfaceD 7$StateCheckerInterfaceC /$ResourceInterfaceB 1$ExceptionInterfaceA 5$IOExceptionInterface@ 1$ExceptionInterface? )$PipesInterface> 1$ExceptionInterface= )$StyleInterface< +$OutputInterface; 9$ConsoleOutputInterface: )$InputInterface9 3$InputAwareInterface8 +$HelperInterface#7 G$OutputFormatterStyleInterface6 =$OutputFormatterInterface5 3$DescriptorInterface4 )$ValueInterface3 1$ExceptionInterface2 -$AdapterInterface1 '$TestInterface0 #$Interceptor/ /$SourceTransformer. 7$AspectLoaderExtension- +$AspectContainer, -$MethodInvocation+ /$MethodInterceptor* $Joinpoint   < kQ9!xaF"	vU7rYA%
y`E)




q
S
1
						f	F	-	iG/vV5eH0{a@$wdQ?-	kUC1 n^K9)lW<      > 1%*CollectionHydrator= %%*CacheFactory< !%*CacheEntry; '%)MultiGetCache: )%)FlushableCache9 )%)ClearableCache8 %)Cache7 %(Visit6 %(Element5 +%'Parameterizable4 !%&Listenable3 %&Source2 %%Datable1 %$Throwable0 !%#Executable/ %#Element. %"Phrasing- %!Element, % Viewable+ %Router* %Number) %Nonconvex( %Interval' %Holder& %Finite% !%Enumerable$ %Crate# %Constant" %Exception! %Localizer  '%Autocompleter '%isAnInterface %decorator %analyzer %realtime %%asynchronous
 %test %runner !%aggregator %builder %observer !%observable %extension %exception !%definition !%definition %Inspector -%GatewayInterface 3%ConnectionInterface +%LoaderInterface) S%EnvironmentVariablesLoaderInterface ?%
ResponsePreparerInterface
 3%
RenderableInterface	 =%
MessageProviderInterface /%
JsonableInterface 1%
ArrayableInterface 5ExpectationInterface 5%	TransformerInterface +%LinterInterface -%RuleSetInterface )%FixerInterface +%FinderInterface  +%ConfigInterface 5%ConfigAwareInterface~ 5%TransformerInterface} +%LinterInterface| -%RuleSetInterface{ )%FixerInterfacez +%FinderInterfacey +%ConfigInterfacex 5%ConfigAwareInterfacew 7%TestStrategyInterfacev =%MigrateStrategyInterfaceu ;%DeployStrategyInterface#t G%DependenciesStrategyInterfaces 9%CheckStrategyInterfacer -% StorageInterfaceq %% ScmInterfacep $Runnableo -$GatewayInterfacen 3$ConnectionInterfacem +$StreamInterfacel ?$ResourceIteratorInterface&k M$ResourceIteratorFactoryInterfacej 1$ValidatorInterface!i C$ServiceDescriptionInterfaceh 1$OperationInterfaceg =$ResponseVisitorInterfacef ;$RequestVisitorInterfacee -$FactoryInterfaced ;$ResponseParserInterface c A$RequestSerializerInterfaceb -$CommandInterfacea 7$ConfigLoaderInterface` +$ClientInterface_ ;$ServiceBuilderInterface^ 1$CookieJarInterface] 7$RevalidationInterface\ ?$CanCacheStrategyInterface[ 7$CacheStorageInterfaceZ ?$CacheKeyProviderInterfaceY =$BackoffStrategyInterfaceX 1$UrlParserInterfaceW 5$UriTemplateInterfaceV 9$MessageParserInterfaceU 7$CookieParserInterfaceT 3$LogAdapterInterfaceS 1$InflectorInterfaceR -$RequestInterfaceQ ;$RequestFactoryInterfaceP /$PostFileInterfaceO -$MessageInterface%N K$EntityEnclosingRequestInterfaceM '$HttpExceptionL 1$CurlMultiInterfaceK 3$EntityBodyInterfaceJ +$ClientInterfaceI -$ToArrayInterfaceH 9$HasDispatcherInterfaceG 3$FromConfigInterfaceF +$GuzzleExceptionE 7$CacheAdapterInterfaceD 9$BatchTransferInterfaceC )$BatchInterfaceB 7$BatchDivisorInterfaceA 7$TestStrategyInterface@ =$MigrateStrategyInterface? ;$DeployStrategyInterface#> G$DependenciesStrategyInterface= 9$CheckStrategyInterface< -$StorageInterface; %$ScmInterface: -$HandlerInterface!9 C$ActivationStrategyInterface8 1$FormatterInterface7 )$QueryInterface6 1$MigrationInterface5 7$DataProviderInterface4 3$ConnectionInterface3 7$ActiveRecordInterface2 5$ActiveQueryInterface1 -$SessionInterface0 +$ErrorsInterface/ +$ErrorsInterface. /$DateTimeInterface- /$DateTimeInterface, -$SessionInterface+ %$UrlInterface* 9$RequestParserInterface) -$RequestInterface( %$UrlInterface   H {cO7kO7)r_C4pQ:$|`B&




}
b
V
:
 
						u	U	9	"	x`J0|bK4 s\L2uY?%	sX>+ zcQ>&eG0sVH^ %Setup] 5%ResultInterpretation\ !%TestResult[ +%ExceptionResultZ #%SuiteTesterY 3%SpecificationTesterX %ExerciseW +%TesterExceptionV +%SuiteRepositoryU %SuiteT !%SuiteSetupS )%SuiteGeneratorR 7%SpecificationIteratorQ 5%SpecificationLocatorP %ExtensionO ?%ServiceContainerExceptionN -%FormatterFactoryM '%OutputPrinterL '%EventListenerK %FormatterJ -%PrinterExceptionI +%OutputExceptionH !%~SuiteScopeG %~HookScopeF )%~AfterTestScope
E %}HookD )%}FilterableHookC -%|FilesystemLoggerB /%{TestworkExceptionA /%zExceptionStringer@ %%yBeforeTested? )%yBeforeTeardown> #%yAfterTested= !%yAfterSetup< /%xEnvironmentReader; 1%wEnvironmentHandler: 5%vEnvironmentException9 #%uEnvironment8 !%tController7 #%sCallHandler6 %%rResultFilter5 !%rCallFilter4 '%qCallException3 %pCallee
2 %pCall1 /%oArgumentException0 /%nArgumentOrganiser/ 3%mArgumentTransformer. )%lTransformation- ;%kTransformationException, !%jStepResult+ /%jDefinedStepResult* !%iStepTester) )%iScenarioTester( '%iOutlineTester' -%iBackgroundTester& /%hSnippetRepository% %hSnippet$ )%gSnippetPrinter# -%fSnippetGenerator" -%eSnippetException! +%dSnippetAppender  #%cStepPrinter /%cStatisticsPrinter %%cSetupPrinter +%cScenarioPrinter 3%cOutlineTablePrinter )%cOutlinePrinter )%cFeaturePrinter /%cExampleRowPrinter )%cExamplePrinter %bStepScope '%bScenarioScope %%bFeatureScope 1%aScenarioLikeTested /%aGherkinNodeTested '%aExampleTested %%`SearchEngine /%_DefinitionPrinter '%^PatternPolicy +%]SearchException 3%]DefinitionException !%\Definition '%[ContextReader
 1%ZContextInitializer	 -%YContextException 1%XContextEnvironment '%WClassResolver )%WClassGenerator 3%VTranslatableContext ;%VSnippetAcceptingContext# G%VCustomSnippetAcceptingContext %VContext -%UArgumentResolver  -%TAnnotationReader 3%SSearchableInterface	~ %RDSL} 1%QExceptionInterface| /%PStrategyInterface{ 3%OSearchableInterface	z %NDSLy 1%MExceptionInterfacex /%LStrategyInterfacew 3%KSerializerInterfacev 7%JBulkEndpointInterfaceu 3%IConnectionInterfacet /%HSelectorInterfaces 9%GElasticsearchExceptionr 3%FSerializerInterfaceq 7%EBulkEndpointInterfacep 3%DConnectionInterfaceo /%CSelectorInterfacen 9%BElasticsearchExceptionm /%ARepositoryFactoryl !%@TreeWalkerk %?Proxyj +%>EntityPersisteri 3%=CollectionPersisterh '%<QuoteStrategyg )%<NamingStrategyf 9%<EntityListenerResolvere !%<Annotationd 9%;EntityManagerInterfacec %;Cacheb 7%:CachedEntityPersistera ?%9CachedCollectionPersister` +%8CachedPersister_ #%7CacheLogger^ +%6TimestampRegion] %6Region\ 3%6QueryCacheValidator[ !%6QueryCacheZ )%6MultiGetRegionY )%6EntityHydratorX -%6ConcurrentRegionW 1%6CollectionHydratorV %%6CacheFactoryU !%6CacheEntryT /%5RepositoryFactoryS !%4TreeWalkerR %3ProxyQ +%2EntityPersisterP 3%1CollectionPersisterO '%0QuoteStrategyN )%0NamingStrategyM 9%0EntityListenerResolverL !%0AnnotationK 9%/EntityManagerInterfaceJ %/CacheI 7%.CachedEntityPersisterH ?%-CachedCollectionPersisterG +%,CachedPersisterF #%+CacheLoggerE +%*TimestampRegionD %*RegionC 3%*QueryCacheValidatorB !%*QueryCacheA )%*MultiGetRegion@ )%*EntityHydrator? -%*ConcurrentRegion   % tP'eQ6wZ.nQ*tW*




d
A
 						]	A	(	|lUE5hH+lTB%}gI0iR7lGrO$yW<%                       a )%CacheInterface` 1%ExceptionInterface_ ?%ExecutionContextInterface&^ M%ExecutionContextFactoryInterface] 1%ValidatorInterface\ ?%ValidatorBuilderInterface [ A%ValidationVisitorInterfaceZ ?%PropertyMetadataInterface(Y Q%PropertyMetadataContainerInterface X A%ObjectInitializerInterfaceW /%MetadataInterfaceV =%MetadataFactoryInterface$U I%GroupSequenceProviderInterface%T K%GlobalExecutionContextInterfaceS ?%ExecutionContextInterface&R M%ConstraintViolationListInterface"Q E%ConstraintViolationInterface"P E%ConstraintValidatorInterface)O S%ConstraintValidatorFactoryInterfaceN 3%ClassBasedInterfaceM ?%ListenerProviderInterfaceL /%ListenerInterfaceK ?%ListenerAcceptorInterfaceJ 1%GeneratorInterfaceI )%EventInterfaceH -%EmitterInterfaceG 7%EmitterAwareInterfaceF ?%ListenerProviderInterfaceE /%ListenerInterfaceD ?%ListenerAcceptorInterfaceC 1%GeneratorInterfaceB )%EventInterfaceA -%EmitterInterface@ 7%EmitterAwareInterface? '%ReadInterface> +%PluginInterface= 3%FilesystemInterface< -%AdapterInterface; %%NamedCommand: !%Middleware9 3%MethodNameInflector8 )%HandlerLocator7 5%CommandNameExtractor6 %Exception5 +%ExternalCommand4 5%SelfExecutingCommand3 %%NamedCommand2 !%Middleware1 3%MethodNameInflector0 )%HandlerLocator/ 5%CommandNameExtractor. %Exception- +%ExternalCommand, 5%SelfExecutingCommand+ ;%SessionHandlerInterface* )%MultiInterface) +%IncDecInterface( +%ExtendInterface' '%PoolInterface& '%ItemInterface% +%DriverInterface$ %Exception# -%EncoderInterface" )%ProjectFactory! %Project  %Element )%ProjectFactory %Project %Element =%EventSubscriberInterface =%EventDispatcherInterface' O%TraceableEventDispatcherInterface )%CacheInterface -%AdapterInterface -%VisitorInterface 3%SerializerInterface% K%PropertyNamingStrategyInterface! C%SubscribingHandlerInterface =%HandlerRegistryInterface  A%ExclusionStrategyInterface %Exception =%EventSubscriberInterface =%EventDispatcherInterface  A%ObjectConstructorInterface 9%DriverFactoryInterface ?%Twig_TokenParserInterface% K%Twig_TokenParserBrokerInterface
 1%Twig_TestInterface 	 A%Twig_TestCallableInterface 9%Twig_TemplateInterface* U%Twig_Sandbox_SecurityPolicyInterface 5%Twig_ParserInterface ?%Twig_NodeVisitorInterface =%Twig_NodeOutputInterface 1%Twig_NodeInterface 5%Twig_LoaderInterface 3%Twig_LexerInterface  9%Twig_FunctionInterface$ I%Twig_FunctionCallableInterface~ 5%Twig_FilterInterface"} E%Twig_FilterCallableInterface| ;%Twig_ExtensionInterface { A%Twig_ExistsLoaderInterfacez 9%Twig_CompilerInterfacey 3%Twig_CacheInterfacex 5%ParserCacheInterface)w S%ExpressionFunctionProviderInterfacev 5%ParserCacheInterface)u S%ExpressionFunctionProviderInterfacet -%vfsStreamVisitors -%vfsStreamContentr 1%vfsStreamContainerq #%FileContentp -%vfsStreamVisitoro -%vfsStreamContentn 1%vfsStreamContainerm #%FileContentl 5%BlacklistedInterfacek %Exception$j I%PHPUnit_Runner_TestSuiteLoader$i I%PHPUnit_Framework_TestListenerh 9%PHPUnit_Framework_Test#g G%PHPUnit_Framework_SkippedTest&f M%PHPUnit_Framework_SelfDescribing!e C%PHPUnit_Framework_RiskyTest&d M%PHPUnit_Framework_IncompleteTestc /%PHPUnit_Exception	b %Foo	a %Bor` ;%PHP_CodeCoverage_Driver_ %Teardown   } lT8fAaG$wN,~fN2




j
G
'
					f	K	*	|a9uX1{^1sX2rWD, wU3lJ1oV2                     ^ 1%ExceptionInterface!] C%ValidatableAdapterInterface\ -%AdapterInterface[ -%vfsStreamVisitorZ -%vfsStreamContentY 1%vfsStreamContainerX #%FileContentW -%vfsStreamVisitorV -%vfsStreamContentU 1%vfsStreamContainerT #%FileContentS -%WrapperInterfaceR ?%SubjectContainerInterfaceQ -%ThrowExpectationP 5%ExpectationInterfaceO 9%SpecificationInterfaceN 3%MaintainerInterfaceM %ReRunnerL =%PlatformSpecificReRunner!K C%SuitePrerequisitesInterfaceJ ?%ExecutionContextInterfaceI ?%MatchersProviderInterfaceH -%MatcherInterfaceG =%ResourceManagerInterfaceF =%ResourceLocatorInterfaceE /%ResourceInterfaceD #%IOInterfaceC %TemplateB 1%PresenterInterfaceA +%EngineInterface@ !%ReportItem? 1%ExtensionInterface> )%EventInterface= %Prompter< !%CodeWriter; 1%GeneratorInterface: =%AccessInspectorInterface9 -%ExampleInterface8 +%Mustache_Logger7 +%Mustache_Loader#6 G%Mustache_Loader_MutableLoader5 1%Mustache_Exception4 )%Mustache_Cache3 ?%Twig_TokenParserInterface%2 K%Twig_TokenParserBrokerInterface1 1%Twig_TestInterface 0 A%Twig_TestCallableInterface/ 9%Twig_TemplateInterface*. U%Twig_Sandbox_SecurityPolicyInterface- 5%Twig_ParserInterface, ?%Twig_NodeVisitorInterface+ =%Twig_NodeOutputInterface* 1%Twig_NodeInterface) 5%Twig_LoaderInterface( 3%Twig_LexerInterface' 9%Twig_FunctionInterface$& I%Twig_FunctionCallableInterface% 5%Twig_FilterInterface"$ E%Twig_FilterCallableInterface# ;%Twig_ExtensionInterface " A%Twig_ExistsLoaderInterface! 9%Twig_CompilerInterface  1%ExceptionInterface ?%Twig_TokenParserInterface% K%Twig_TokenParserBrokerInterface 1%Twig_TestInterface  A%Twig_TestCallableInterface 9%Twig_TemplateInterface* U%Twig_Sandbox_SecurityPolicyInterface 5%Twig_ParserInterface ?%Twig_NodeVisitorInterface =%Twig_NodeOutputInterface 1%Twig_NodeInterface 5%Twig_LoaderInterface 3%Twig_LexerInterface 9%Twig_FunctionInterface$ I%Twig_FunctionCallableInterface 5%Twig_FilterInterface" E%Twig_FilterCallableInterface ;%Twig_ExtensionInterface  A%Twig_ExistsLoaderInterface 9%Twig_CompilerInterface 9%SpecificationInterface) S%ConstraintViolationBuilderInterface
 1%ValidatorInterface"	 E%ContextualValidatorInterface 7%StaticLoaderInterface 3%LegacyClassMetadata +%EntityInterface +%LoaderInterface =%MetadataFactoryInterface ?%PropertyMetadataInterface /%MetadataInterface 9%ClassMetadataInterface  )%CacheInterface 1%ExceptionInterface~ ?%ExecutionContextInterface&} M%ExecutionContextFactoryInterface| 1%ValidatorInterface{ ?%ValidatorBuilderInterface z A%ValidationVisitorInterfacey ?%PropertyMetadataInterface(x Q%PropertyMetadataContainerInterface w A%ObjectInitializerInterfacev /%MetadataInterfaceu =%MetadataFactoryInterface$t I%GroupSequenceProviderInterface%s K%GlobalExecutionContextInterfacer ?%ExecutionContextInterface&q M%ConstraintViolationListInterface"p E%ConstraintViolationInterface"o E%ConstraintValidatorInterface)n S%ConstraintValidatorFactoryInterfacem 3%ClassBasedInterface)l S%ConstraintViolationBuilderInterfacek 1%ValidatorInterface"j E%ContextualValidatorInterfacei 7%StaticLoaderInterfaceh 3%LegacyClassMetadatag +%EntityInterfacef +%LoaderInterfacee =%MetadataFactoryInterfaced ?%PropertyMetadataInterfacec /%MetadataInterfaceb 9%ClassMetadataInterface    nU:wU6yV>%
pN3x`H/





x
]
C
(
					~	b	J	2	oT:iM.pK2iJ'kS8pX>#	qL1rP:        e 3&^LabelAwareInterfaced '&^FormInterfacec ?&^FormFactoryAwareInterface#b G&^FieldsetPrepareAwareInterfacea /&^FieldsetInterface"` E&^ElementPrepareAwareInterface_ -&^ElementInterface&^ M&^ElementAttributeRemovalInterface] +&]FilterInterface\ 1&\ExceptionInterface"[ E&[EncryptionAlgorithmInterface#Z G&ZCompressionAlgorithmInterfaceY 1&YExceptionInterfaceX 1&XExceptionInterfaceW /&WRendererInterfaceV ?&VExtensionManagerInterfaceU /&URendererInterfaceT 1&TExceptionInterfaceS /&SResponseInterfaceR +&SClientInterfaceQ '&RFeedInterfaceP ?&QExtensionManagerInterfaceO 1&PExceptionInterfaceN )&OEntryInterface&M M&NSubscriptionPersistenceInterfaceL 1&MExceptionInterfaceK /&LCallbackInterfaceJ 1&KExceptionInterfaceI +&JFilterInterfaceH 1&IExceptionInterface&G M&HSharedListenerAggregateInterface!F C&HSharedEventManagerInterface&E M&HSharedEventManagerAwareInterface(D Q&HSharedEventAggregateAwareInterface C A&HListenerAggregateInterfaceB 9&HEventsCapableInterfaceA 7&HEventManagerInterface @ A&HEventManagerAwareInterface? )&HEventInterface> 1&GExceptionInterface= 1&FExceptionInterface< 1&EExceptionInterface; ;&DServiceLocatorInterface: -&DLocatorInterface"9 E&DDependencyInjectionInterface8 '&CPartialMarker7 3&CDefinitionInterface6 7&BTableGatewayInterface5 1&AExceptionInterface4 1&@PredicateInterface 3 A&?PlatformDecoratorInterface2 %&>SqlInterface1 9&>PreparableSqlInterface0 3&>ExpressionInterface/ 1&=ExceptionInterface. %&<SqlInterface- 3&;ConstraintInterface, +&:ColumnInterface+ 3&9RowGatewayInterface* 1&8ExceptionInterface) 1&7ResultSetInterface( 1&6ExceptionInterface' /&5MetadataInterface& 1&4ExceptionInterface% /&3ProfilerInterface$ 9&3ProfilerAwareInterface# /&2PlatformInterface" 1&1ExceptionInterface! 1&0ExceptionInterface  9&/DriverFeatureInterface 1&.StatementInterface +&.ResultInterface +&.DriverInterface 3&.ConnectionInterface! C&-StatementContainerInterface -&-AdapterInterface 7&-AdapterAwareInterface 1&,SymmetricInterface -&+PaddingInterface 1&*ExceptionInterface 1&)ExceptionInterface /&(PasswordInterface 1&'ExceptionInterface 1&&ExceptionInterface 1&%ExceptionInterface 7&$RouteMatcherInterface +&#PromptInterface 1&"ExceptionInterface )&!ColorInterface -& CharsetInterface -&AdapterInterface
 +&WriterInterface	 +&ReaderInterface 1&ProcessorInterface 1&ExceptionInterface -&ScannerInterface 3&ReflectionInterface 1&ExceptionInterface %&TagInterface ;&PhpDocTypedTagInterface 1&PrototypeInterface  ?&PrototypeGenericInterface 1&GeneratorInterface~ 1&ExceptionInterface} %&TagInterface| 1&ExceptionInterface{ +&ParserInterfacez 3&AnnotationInterfacey 1&ExceptionInterfacex -&AdapterInterfacew +&PluginInterface v A&TotalSpaceCapableInterfaceu /&TaggableInterfacet -&StorageInterfaces 5&OptimizableInterfacer /&IteratorInterfaceq /&IterableInterfacep 1&FlushableInterfaceo 7&ClearExpiredInterfacen 9&ClearByPrefixInterfacem ?&ClearByNamespaceInterface$l I&AvailableSpaceCapableInterfacek -&PatternInterfacej 1&
ExceptionInterfacei /&	RendererInterfaceh 1&ExceptionInterfaceg +&ObjectInterfacef 1&ExceptionInterfacee 1&ExceptionInterfaced -&StorageInterfacec 1&ExceptionInterface$b I&AuthenticationServiceInterfacea /&ResolverInterface` 1& ExceptionInterface_ 1%ExceptionInterface   ) ~cH0~`>!~cH-jQ; iQ8




t
Y
A
(
						s	X	=	"	^8^@lK(nF.w\C(fP5{l]B'nI)                         i ;&ServiceLocatorInterface"h E&ServiceLocatorAwareInterface%g K&MutableCreationOptionsInterfacef 5&InitializerInterfacee -&FactoryInterfaced ?&DelegatorFactoryInterfacec +&ConfigInterfaceb =&AbstractFactoryInterfacea 1&ExceptionInterface` 1&ExceptionInterface_ &Server^ &Client] 1&ExceptionInterface\ -&AdapterInterface[ 9&UploadHandlerInterfaceZ 1&ExceptionInterfaceY 1&ExceptionInterfaceX 1&ExceptionInterfaceW '&RoleInterfaceV 1&AssertionInterfaceU '&RoleInterfaceT /&ResourceInterfaceS 1&ExceptionInterfaceR 1&AssertionInterfaceQ %&AclInterfaceP ;&ScrollingStyleInterfaceO 1&ExceptionInterfaceN ?&AdapterAggregateInterfaceM 1&ExceptionInterfaceL -&AdapterInterfaceK 1&ExceptionInterfaceJ 3&RouteStackInterfaceI )&RouteInterfaceH )&RouteInterfaceG 1&ExceptionInterfaceF )&RouteInterfaceE ;&ResponseSenderInterfaceD 1&ExceptionInterfaceC +&PluginInterface%B K&InjectApplicationEventInterfaceA 5&ApplicationInterface@ 9&ModuleManagerInterface? 1&ExceptionInterface> =&ServiceListenerInterface= 7&ConfigMergerInterface!< C&ViewHelperProviderInterface ; A&ValidatorProviderInterface: =&ServiceProviderInterface!9 C&SerializerProviderInterface8 9&RouteProviderInterface 7 A&LogWriterProviderInterface#6 G&LogProcessorProviderInterface 5 A&LocatorRegisteredInterface"4 E&InputFilterProviderInterface3 7&InitProviderInterface2 ?&HydratorProviderInterface"1 E&FormElementProviderInterface0 ;&FilterProviderInterface"/ E&DependencyIndicatorInterface!. C&ControllerProviderInterface'- O&ControllerPluginProviderInterface#, G&ConsoleUsageProviderInterface$+ I&ConsoleBannerProviderInterface* ;&ConfigProviderInterface ) A&BootstrapListenerInterface!( C&AutoloaderProviderInterface' 1&ExceptionInterface& 1&ExceptionInterface% 1&ExceptionInterface$ 1&ContainerInterface# 1&ExceptionInterface" 1&ExceptionInterface! -&AdapterInterface  1&TransportInterface 1&ExceptionInterface /&WritableInterface '&PartInterface 1&ExceptionInterface -&MessageInterface +&FolderInterface 1&ExceptionInterface 1&ExceptionInterface 7&UnstructuredInterface 3&StructuredInterface =&MultipleHeadersInterface +&HeaderInterface 1&~ExceptionInterface 1&}ExceptionInterface -&|AddressInterface +&{WriterInterface -&zFirePhpInterface 1&yChromePhpInterface 1&xProcessorInterface +&wLoggerInterface 5&wLoggerAwareInterface
 1&vFormatterInterface	 +&uFilterInterface 1&tExceptionInterface '&sSplAutoloader -&sShortNameLocator 1&sPluginClassLocator 1&rExceptionInterface 5&qObjectClassInterface 9&pAttributeTypeInterface 1&oExceptionInterface  1&nExceptionInterface 1&mExceptionInterface~ 1&lExceptionInterface} 1&kExceptionInterface| 1&jExceptionInterface#{ G&iUnknownInputsCapableInterfacez ?&iReplaceableInputInterfacey 9&iInputProviderInterfacex )&iInputInterface"w E&iInputFilterProviderInterfacev 5&iInputFilterInterfaceu ?&iInputFilterAwareInterfacet 7&iEmptyContextInterfaces 3&hTranslatorInterfacer =&hTranslatorAwareInterfaceq 7&gRemoteLoaderInterfacep 3&gFileLoaderInterfaceo 1&fExceptionInterfacen ;&eMultipleHeaderInterfacem +&eHeaderInterfacel 1&dExceptionInterfacek 1&cExceptionInterfacej 1&bExceptionInterfacei 1&aExceptionInterfaceh +&`StreamInterfaceg -&`AdapterInterfacef 1&_ExceptionInterface    tW0vX9 |`H(	mL,iN3





x
\
A
						m	S	5		 g>% lQ4pY=$	kL3nR:_>wS; lB                    !j C' ControllerProviderInterface'i O' ControllerPluginProviderInterface#h G' ConsoleUsageProviderInterface$g I' ConsoleBannerProviderInterfacef ;' ConfigProviderInterface e A' BootstrapListenerInterface!d C' AutoloaderProviderInterfacec 1&ExceptionInterfaceb +&TargetInterface!a C&ObjectManagerAwareInterface` +&TargetInterface_ +&TargetInterface^ 9&StringWrapperInterface] /&StrategyInterface\ 1&ExceptionInterface[ ;&NamingStrategyInterface Z A&HydratingIteratorInterfaceY =&StrategyEnabledInterface$X I&NamingStrategyEnabledInterfaceW =&HydratorOptionsInterfaceV /&HydratorInterfaceU 9&HydratorAwareInterfaceT 1&HydrationInterfaceS 9&FilterEnabledInterfaceR ;&FilterProviderInterfaceQ +&FilterInterfaceP 3&ExtractionInterfaceO 1&ExceptionInterfaceN =&MergeReplaceKeyInterfaceM /&ResponseInterfaceL -&RequestInterfaceK 3&ParametersInterfaceJ =&ParameterObjectInterfaceI -&MessageInterfaceH -&JsonSerializableG 9&InitializableInterfaceF 7&DispatchableInterface E A&ArraySerializableInterfaceD ;&ScrollingStyleInterfaceC 1&ExceptionInterfaceB ?&AdapterAggregateInterfaceA 1&ExceptionInterface@ -&AdapterInterface? 3&RouteStackInterface> )&RouteInterface= )&RouteInterface< 1&ExceptionInterface; )&RouteInterface: ;&ResponseSenderInterface9 1&ExceptionInterface8 +&PluginInterface%7 K&InjectApplicationEventInterface6 5&ApplicationInterface5 1&ExceptionInterface4 3&LabelAwareInterface3 '&FormInterface2 ?&FormFactoryAwareInterface#1 G&FieldsetPrepareAwareInterface0 /&FieldsetInterface"/ E&ElementPrepareAwareInterface. -&ElementInterface&- M&ElementAttributeRemovalInterface!, C&ObjectManagerAwareInterface!+ C&ObjectManagerAwareInterface* 1&ExceptionInterface) 1&GeneratorInterface( 1&ExceptionInterface' 1&ExceptionInterface& /&ResolverInterface% 7&TreeRendererInterface$ /&RendererInterface"# E&RetrievableChildrenInterface" )&ModelInterface! ;&ClearableModelInterface  +&HelperInterface +&HelperInterface 1&ExceptionInterface* U&ValidatorPluginManagerAwareInterface 1&ValidatorInterface 3&TranslatorInterface =&TranslatorAwareInterface 1&ExceptionInterface -&AdapterInterface %&UriInterface 1&ExceptionInterface 1&ExceptionInterface 1&DecoratorInterface 1&ExceptionInterface 1&ExceptionInterface /&TaggableInterface 1&ExceptionInterface 1&ExceptionInterface 1&DecoratorInterface 9&StringWrapperInterface 9&PhpLegacyCompatibility /&StrategyInterface
 ;&NamingStrategyInterface	 =&StrategyEnabledInterface$ I&NamingStrategyEnabledInterface =&HydratorOptionsInterface /&HydratorInterface 9&HydratorAwareInterface 1&HydrationInterface 9&FilterEnabledInterface ;&FilterProviderInterface +&FilterInterface  3&ExtractionInterface 1&ExceptionInterface~ /&ResponseInterface} -&RequestInterface| 3&ParametersInterface{ =&ParameterObjectInterfacez -&MessageInterfacey -&JsonSerializablex 9&InitializableInterfacew 7&DispatchableInterface v A&ArraySerializableInterface"u E&ComplexTypeStrategyInterfacet 1&ExceptionInterface s A&DiscoveryStrategyInterfacer 1&ValidatorInterfaceq -&StorageInterface$p I&StorageInitializationInterfaceo 5&SaveHandlerInterfacen -&ManagerInterfacem 1&ExceptionInterfacel +&ConfigInterfacek 1&ExceptionInterface"j E&ServiceManagerAwareInterface   $ tV1a7wU>$
}cI/~fN3





p
V
;
 
						i	J	5	jO5v[7zY4xX9!|dK0v]9}cD*pT?$                  o 1'\ExceptionInterfacen %'[SqlInterfacem 3'ZConstraintInterfacel +'YColumnInterfacek 3'XRowGatewayInterfacej 1'WExceptionInterfacei 1'VResultSetInterfaceh 1'UExceptionInterfaceg /'TMetadataInterfacef 1'SExceptionInterfacee /'RProfilerInterfaced 9'RProfilerAwareInterfacec /'QPlatformInterfaceb 1'PExceptionInterfacea 1'OExceptionInterface` 9'NDriverFeatureInterface_ 1'MStatementInterface^ +'MResultInterface] +'MDriverInterface\ 3'MConnectionInterface![ C'LStatementContainerInterfaceZ -'LAdapterInterfaceY 7'LAdapterAwareInterfaceX 1'KExceptionInterfaceW -'JAdapterInterfaceV /'IRendererInterfaceU 1'HExceptionInterfaceT +'GObjectInterfaceS 1'FExceptionInterfaceR 1'EExceptionInterfaceQ -'DStorageInterfaceP +'CReportInterfaceO )'CMatchInterfaceN 1'BExceptionInterfaceM 7'AEventContextInterfaceL ;'@EventCollectorInterfaceK 1'@CollectorInterfaceJ /'@AutoHideInterfaceI +'?PurgerInterfaceH 9'>SharedFixtureInterfaceG ;'>OrderedFixtureInterfaceF -'>FixtureInterfaceE ?'>DependentFixtureInterfaceD 1'=ExceptionInterfaceC 1'<ExceptionInterface!B C';UserServiceOptionsInterface$A I';UserControllerOptionsInterface"@ E';RegistrationOptionsInterface? =';PasswordOptionsInterface$> I';AuthenticationOptionsInterface= '':UserInterface< 1'9ExceptionInterface; 1'8ExceptionInterface: ''7UserInterface9 -'6ChainableAdapter8 1'5ExceptionInterface!7 C'4MasterSlaveAdapterInterface6 1'3ValidatorInterface5 -'2StorageInterface$4 I'2StorageInitializationInterface3 5'1SaveHandlerInterface2 -'0ManagerInterface1 1'/ExceptionInterface0 +'.ConfigInterface/ ''-RoleInterface. /',ResourceInterface- 1'+ExceptionInterface, 1'*AssertionInterface+ %')AclInterface* 7'(TableGatewayInterface!) C''EventFeatureEventsInterface( 1'&ExceptionInterface' 1'%PredicateInterface & A'$PlatformDecoratorInterface% %'#SqlInterface$ 9'#PreparableSqlInterface# 3'#ExpressionInterface" 1'"ExceptionInterface! %'!SqlInterface  3' ConstraintInterface +'ColumnInterface 3'RowGatewayInterface 1'ExceptionInterface 1'ResultSetInterface 1'ExceptionInterface /'MetadataInterface 1'ExceptionInterface /'ProfilerInterface 9'ProfilerAwareInterface /'PlatformInterface 1'ExceptionInterface 1'ExceptionInterface 9'DriverFeatureInterface 1'StatementInterface +'ResultInterface +'DriverInterface 3'ConnectionInterface! C'StatementContainerInterface -'AdapterInterface 7'AdapterAwareInterface ;'AuthorizeAwareInterface
 /'ProviderInterface	 /'ProviderInterface /'ProviderInterface /'ProviderInterface )'GuardInterface ?'HierarchicalRoleInterface ;'
AuthorizeAwareInterface /'	ProviderInterface /'ProviderInterface /'ProviderInterface  /'ProviderInterface )'GuardInterface~ ?'HierarchicalRoleInterface} 9'ModuleManagerInterface| 1'ExceptionInterface{ ='ServiceListenerInterfacez 7'ConfigMergerInterface!y C' ViewHelperProviderInterface x A' ValidatorProviderInterface'w O' TranslatorPluginProviderInterfacev =' ServiceProviderInterface!u C' SerializerProviderInterfacet 9' RouteProviderInterface s A' LogWriterProviderInterface#r G' LogProcessorProviderInterface q A' LocatorRegisteredInterface"p E' InputFilterProviderInterfaceo 7' InitProviderInterfacen ?' HydratorProviderInterface"m E' FormElementProviderInterfacel ;' FilterProviderInterface"k E' DependencyIndicatorInterface    rW3jO5iQ7_E}bE-





w
_
>
"
						l	R	7		iI"iD"sT0_D%v[D-tUF7pH#`=                     p 7'DispatchableInterface o A'ArraySerializableInterface"n E'ComplexTypeStrategyInterfacem 1'ExceptionInterface l A'DiscoveryStrategyInterfacek 1'ExceptionInterface"j E'ServiceManagerAwareInterfacei ;'ServiceLocatorInterface"h E'ServiceLocatorAwareInterface%g K'MutableCreationOptionsInterfacef 5'InitializerInterfacee -'FactoryInterfaced ?'DelegatorFactoryInterfacec +'ConfigInterfaceb ='AbstractFactoryInterfacea 1'ExceptionInterface` 1'ExceptionInterface_ 'Server^ 'Client] 9'UploadHandlerInterface\ 1'ExceptionInterface[ 1'ExceptionInterfaceZ 1'ExceptionInterfaceY ''RoleInterfaceX 1'AssertionInterfaceW 1'ExceptionInterfaceV 3'RouteStackInterfaceU )'RouteInterfaceT )'RouteInterfaceS 1'ExceptionInterfaceR )'RouteInterfaceQ ;'ResponseSenderInterfaceP 1'ExceptionInterfaceO +'PluginInterface%N K'InjectApplicationEventInterfaceM 5'ApplicationInterfaceL 9'ModuleManagerInterfaceK 1'ExceptionInterfaceJ ='ServiceListenerInterfaceI 7'ConfigMergerInterface!H C'ViewHelperProviderInterface G A'ValidatorProviderInterface'F O'TranslatorPluginProviderInterfaceE ='ServiceProviderInterface!D C'SerializerProviderInterfaceC 9'RouteProviderInterface B A'LogWriterProviderInterface#A G'LogProcessorProviderInterface @ A'LocatorRegisteredInterface"? E'InputFilterProviderInterface> 7'InitProviderInterface= ?'HydratorProviderInterface"< E'FormElementProviderInterface; ;'FilterProviderInterface": E'DependencyIndicatorInterface!9 C'ControllerProviderInterface'8 O'ControllerPluginProviderInterface#7 G'ConsoleUsageProviderInterface$6 I'ConsoleBannerProviderInterface5 ;'ConfigProviderInterface 4 A'BootstrapListenerInterface!3 C'AutoloaderProviderInterface2 1'ExceptionInterface1 1'ExceptionInterface0 1'ExceptionInterface/ 1'ContainerInterface. 1'TransportInterface- 1'ExceptionInterface, /'WritableInterface+ ''PartInterface* 1'ExceptionInterface) -'MessageInterface( +'FolderInterface' 1'ExceptionInterface& 1'ExceptionInterface% 7'UnstructuredInterface$ 3'StructuredInterface# ='MultipleHeadersInterface" +'HeaderInterface! 1'ExceptionInterface  1'~ExceptionInterface -'}AddressInterface +'|WriterInterface -'{FirePhpInterface 1'zChromePhpInterface 1'yProcessorInterface +'xLoggerInterface 5'xLoggerAwareInterface 1'wFormatterInterface +'vFilterInterface 1'uExceptionInterface 1'tExceptionInterface 3'sLabelAwareInterface ''sFormInterface ?'sFormFactoryAwareInterface# G'sFieldsetPrepareAwareInterface /'sFieldsetInterface" E'sElementPrepareAwareInterface -'sElementInterface& M'sElementAttributeRemovalInterface /'rRendererInterface ?'qExtensionManagerInterface
 /'pRendererInterface	 1'oExceptionInterface /'nResponseInterface +'nClientInterface ''mFeedInterface 7'lReaderImportInterface ?'lExtensionManagerInterface 1'kExceptionInterface )'jEntryInterface& M'iSubscriptionPersistenceInterface  1'hExceptionInterface /'gCallbackInterface~ 1'fExceptionInterface} 1'eExceptionInterface| ;'dServiceLocatorInterface{ -'dLocatorInterface"z E'dDependencyInjectionInterfacey ''cPartialMarkerx 3'cDefinitionInterfacew 7'bTableGatewayInterface!v C'aEventFeatureEventsInterfaceu 1'`ExceptionInterfacet 1'_PredicateInterface s A'^PlatformDecoratorInterfacer %']SqlInterfaceq 9']PreparableSqlInterfacep 3']ExpressionInterface   / rY?uV<~_D)pW>#pX8




u
^
?
'
						r	Y	?	 	nN.W<hL&nK/tX?|T4qP,	tS/                             !u C'TemplateNameParserInterfacet ='StreamingEngineInterfaces +'EngineInterfacer /'DebuggerInterfaceq -'PackageInterfacep /'MyStreamingEngineo +'LoaderInterfacen +'HelperInterface m A'TemplateReferenceInterface!l C'TemplateNameParserInterfacek ='StreamingEngineInterfacej +'EngineInterfacei /'DebuggerInterfaceh -'PackageInterfaceg +'RouterInterfacef 9'RouteCompilerInterface"e E'RequestContextAwareInterfaced 3'UrlMatcherInterfacec ;'RequestMatcherInterface%b K'RedirectableUrlMatcherInterfacea 9'MatcherDumperInterface` ='GeneratorDumperInterface_ 7'UrlGeneratorInterface'^ O'ConfigurableRequirementsInterface] 1'ExceptionInterface\ ;'SessionStorageInterface[ -'SessionInterfaceZ 3'SessionBagInterfaceY /'FlashBagInterfaceX 7'AttributeBagInterfaceW ;'SessionHandlerInterfaceV ;'RequestMatcherInterfaceU ='MimeTypeGuesserInterfaceT ?'ExtensionGuesserInterfaceS 3'DeprecatedInterface R A'FatalErrorHandlerInterfaceQ 'ValidatorP /'ResourceInterfaceO ;'LoaderResolverInterfaceN +'LoaderInterfaceM 9'PrototypeNodeInterfaceL ''NodeInterfaceK 9'ConfigurationInterface#J G'ParentNodeDefinitionInterfaceI 3'NodeParentInterfaceH 5'FileLocatorInterfaceG 5'ConfigCacheInterface!F C'ConfigCacheFactoryInterfaceE 7'ParameterBagInterfaceD +'DumperInterfaceC 7'InstantiatorInterfaceB ?'PrependExtensionInterfaceA 1'ExtensionInterface%@ K'ConfigurationExtensionInterface? 1'ExceptionInterface> +'DumperInterface= ='TaggedContainerInterface< )'ScopeInterface&; M'IntrospectableContainerInterface: 1'ContainerInterface9 ;'ContainerAwareInterface8 ;'RepeatablePassInterface7 7'CompilerPassInterface
6 'IBar5 ''SomeInterface4 !'GInterface3 !'CInterface2 %'UriInterface1 7'UploadedFileInterface0 +'StreamInterface/ 9'ServerRequestInterface. /'ResponseInterface- -'RequestInterface, -'MessageInterface+ 5'TransformerInterface* )'FixerInterface) +'FinderInterface( +'ConfigInterface' 5'ConfigAwareInterface& 1'ExceptionInterface% +'OutputInterface$ 9'ConsoleOutputInterface# )'InputInterface" 3'InputAwareInterface! +'HelperInterface#  G'OutputFormatterStyleInterface ='OutputFormatterInterface 3'DescriptorInterface 'Validator /'ResourceInterface ;'LoaderResolverInterface +'LoaderInterface 5'FileLocatorInterface 9'PrototypeNodeInterface ''NodeInterface 9'ConfigurationInterface# G'ParentNodeDefinitionInterface 3'NodeParentInterface 1'MigrationInterface -'WrapperInterface -'AdapterInterface +'ConfigInterface 1'ExceptionInterface 1'GeneratorInterface 1'ExceptionInterface 1'ExceptionInterface /'TaggableInterface
 1'ExceptionInterface	 1'ExceptionInterface 1'DecoratorInterface 9'StringWrapperInterface /'StrategyInterface 1'ExceptionInterface ;'NamingStrategyInterface ='StrategyEnabledInterface$ I'NamingStrategyEnabledInterface ='HydratorOptionsInterface  /'HydratorInterface 9'HydratorAwareInterface~ 1'HydrationInterface} 9'FilterEnabledInterface| ;'FilterProviderInterface{ +'FilterInterfacez 3'ExtractionInterfacey 1'ExceptionInterfacex ='MergeReplaceKeyInterfacew /'ResponseInterfacev -'RequestInterfaceu 3'ParametersInterfacet ='ParameterObjectInterfaces -'MessageInterfacer -'JsonSerializableq 9'InitializableInterface   s  {]@&U.wV6xQ$eF(




o
N
)
						b	L	.	vX9uZB&gH(wgG$|V7Cn>kA                h #('AnInterface-g [('PHPUnit_Framework_MockObject_Verifiable'f O('PHPUnit_Framework_MockObject_Stub9e s('PHPUnit_Framework_MockObject_Stub_MatcherCollection-d [('PHPUnit_Framework_MockObject_MockObject5c k('PHPUnit_Framework_MockObject_Matcher_Invocation,b Y('PHPUnit_Framework_MockObject_Invokable-a [('PHPUnit_Framework_MockObject_Invocation,` Y('PHPUnit_Framework_MockObject_Exception/_ _('PHPUnit_Framework_MockObject_Builder_Stub:^ u('PHPUnit_Framework_MockObject_Builder_ParametersMatch4] i('PHPUnit_Framework_MockObject_Builder_Namespace:\ u('PHPUnit_Framework_MockObject_Builder_MethodNameMatch0[ a('PHPUnit_Framework_MockObject_Builder_Match3Z g('PHPUnit_Framework_MockObject_Builder_Identity$Y I(&PHPUnit_Runner_TestSuiteLoader$X I(&PHPUnit_Framework_TestListenerW 9(&PHPUnit_Framework_Test#V G(&PHPUnit_Framework_SkippedTest&U M(&PHPUnit_Framework_SelfDescribing!T C(&PHPUnit_Framework_RiskyTest&S M(&PHPUnit_Framework_IncompleteTestR /(&PHPUnit_Exception	Q (%Foo	P (%Bor O A(%PHP_CodeCoverage_ExceptionN ;(%PHP_CodeCoverage_DriverM ($MatcherL (#FilterK 5("RouteFilterInterfaceJ 7("FinalMatcherInterfaceI 9(!RouteEnhancerInterface!H C( VersatileGeneratorInterface!G C( RouteReferrersReadInterfaceF ;( RouteReferrersInterfaceE 9( RouteProviderInterfaceD 5( RouteObjectInterfaceC 9( RedirectRouteInterface!B C( PagedRouteProviderInterface A A( ContentRepositoryInterface@ 5( ChainRouterInterface? 9( ChainedRouterInterface> 3(CandidatesInterface= +(FilterInterface< 1(ExceptionInterface&; M(SharedListenerAggregateInterface!: C(SharedEventManagerInterface&9 M(SharedEventManagerAwareInterface(8 Q(SharedEventAggregateAwareInterface 7 A(ListenerAggregateInterface6 9(EventsCapableInterface5 7(EventManagerInterface 4 A(EventManagerAwareInterface3 )(EventInterface2 7(TokenStorageInterface1 ;(TokenGeneratorInterface0 ?(CsrfTokenManagerInterface/ 7(SecureRandomInterface. 7(UserProviderInterface- '(UserInterface, 5(UserCheckerInterface+ 1(EquatableInterface* 7(AdvancedUserInterface) =(SecurityContextInterface( '(RoleInterface' 9(RoleHierarchyInterface& 1(ExceptionInterface"% E(UserPasswordEncoderInterface$ =(PasswordEncoderInterface# ;(EncoderFactoryInterface" 7(EncoderAwareInterface! )(VoterInterface#  G(AuthorizationCheckerInterface$ I(AccessDecisionManagerInterface )(TokenInterface 7(TokenStorageInterface 9(TokenProviderInterface =(PersistentTokenInterface% K(AuthenticationProviderInterface% K(SimplePreAuthenticatorInterface& M(SimpleFormAuthenticatorInterface" E(SimpleAuthenticatorInterface* U(AuthenticationTrustResolverInterface$ I(AuthenticationManagerInterface +(EngineInterface ;(
TemplateFinderInterface =(	VersionStrategyInterface -(PackageInterface 1(ExceptionInterface -(ContextInterface +(EngineInterface ;(TemplateFinderInterface =(ProfilerStorageInterface +(LoggerInterface
 5(DebugLoggerInterface	 3(TerminableInterface +(KernelInterface 3(HttpKernelInterface 1( SurrogateInterface )( StoreInterface$ I( ResponseCacheStrategyInterface' O( EsiResponseCacheStrategyInterface ?'FragmentRendererInterface 9'HttpExceptionInterface   A'LateDataCollectorInterface 9'DataCollectorInterface!~ C'ControllerResolverInterface} /'WarmableInterface| 5'CacheWarmerInterface{ 7'CacheClearerInterfacez +'BundleInterfacey /'MyStreamingEnginex +'LoaderInterfacew +'HelperInterface v A'TemplateReferenceInterface   0 ZgP5~fN2sO3jS;#






z
c
M
7
							[	@	"	mH/mP3eK9lT="eG'sX0uT3~gK0                          o 1(sClickableInterfacen 3(sButtonTypeInterfacem )(rValueInterfacel 1(qExceptionInterfacek -(pAdapterInterfacej 5(oIOExceptionInterfacei 1(oExceptionInterfaceh 5(nParserCacheInterface)g S(mExpressionFunctionProviderInterfacef =(lEventSubscriberInterfacee =(lEventDispatcherInterface'd O(kTraceableEventDispatcherInterfacec 7(jParameterBagInterfaceb +(iDumperInterfacea 7(hInstantiatorInterface` ?(gPrependExtensionInterface_ 1(gExtensionInterface%^ K(gConfigurationExtensionInterface] 1(fExceptionInterface\ +(eDumperInterface[ =(dTaggedContainerInterfaceZ )(dScopeInterface&Y M(dIntrospectableContainerInterfaceX 1(dContainerInterfaceW ;(dContainerAwareInterfaceV ;(cRepeatablePassInterfaceU 7(cCompilerPassInterfaceT 3(bDeprecatedInterface S A(aFatalErrorHandlerInterfaceR 3(`TranslatorInterfaceQ 1(_ExtensionInterfaceP +(^ParserInterfaceO -(]HandlerInterfaceN '(\NodeInterfaceM 1([ExceptionInterfaceL )(ZStyleInterfaceK +(YOutputInterfaceJ 9(YConsoleOutputInterfaceI )(XInputInterfaceH 3(XInputAwareInterfaceG +(WHelperInterface#F G(VOutputFormatterStyleInterfaceE =(VOutputFormatterInterfaceD 3(UDescriptorInterfaceC (TValidatorB /(SResourceInterfaceA ;(RLoaderResolverInterface@ +(RLoaderInterface? 9(QPrototypeNodeInterface> '(QNodeInterface= 9(QConfigurationInterface#< G(PParentNodeDefinitionInterface; 3(PNodeParentInterface: 5(OFileLocatorInterface9 5(OConfigCacheInterface!8 C(OConfigCacheFactoryInterface
7 (NIBar6 '(MSomeInterface5 !(LGInterface4 !(LCInterface3 =(KVersionStrategyInterface2 -(JPackageInterface1 1(IExceptionInterface0 -(HContextInterface"/ E(GUserProviderFactoryInterface. =(FSecurityFactoryInterface- +(EEngineInterface, ;(DTemplateFinderInterface+ 7(CTwigRendererInterface!* C(CTwigRendererEngineInterface) /(BRegistryInterface( 7(AEntityLoaderInterface' 1(@TestFlushableCache!& C(@TestClearableFlushableCache% 1(@TestClearableCache$ '(?SortableStore# '(?KeyValueStore" )(?CountableStore! 1(>TestFlushableCache!  C(>TestClearableFlushableCache 1(>TestClearableCache '(=SortableStore '(=KeyValueStore )(=CountableStore %(<FunctionLike %(;Unserializer !(;Serializer #(;NodeVisitor 9(;NodeTraverserInterface
 (;Node (;Builder 3(9DataDumperInterface +(8DumperInterface +(8ClonerInterface )(7StyleInterface +(6OutputInterface 9(6ConsoleOutputInterface )(5InputInterface 3(5InputAwareInterface +(4HelperInterface# G(3OutputFormatterStyleInterface
 =(3OutputFormatterInterface	 3(2DescriptorInterface! CWPHPUnit_Framework_RiskyTest /WPHPUnit_Exception =(1EventSubscriberInterface =(1EventDispatcherInterface' O(0TraceableEventDispatcherInterface 7(.InstantiatorInterface 1(-ExceptionInterface 3(,DataDumperInterface  +(+DumperInterface +(+ClonerInterface~ %(*RegexpEngine} +(*SelectorScanner| /(*SelectorContainer{ %(*FileSelectorz 1(*ExtendFileSelectory +(*Parameterizablex (*Conditionw '(*TaskContainerv 1(*CustomChildCreatoru )(*FileNameMappert ?(*StreamRequiredBuildLoggers %(*InputHandlerr +(*ChainableReaderq #(*BuildLoggerp '(*BuildListener:o u()PHPUnit_Extensions_Selenium2TestCase_SessionStrategy:n u((PHPUnit_Extensions_Selenium2TestCase_SessionStrategy"m E('TraversableMockTestInterfacel /('MockTestInterfacek ?('InterfaceWithStaticMethod)j S('InterfaceWithSemiReservedMethodNamei -('AnotherInterface   z gH$nM3gI.pZB kR2





_
@
						g	K	.	v[;sXA&{]<u]C.eI%S6xO'c=&            i 7(EncoderAwareInterfaceh )(VoterInterface#g G(AuthorizationCheckerInterface$f I(AccessDecisionManagerInterfacee )(TokenInterfaced 7(TokenStorageInterfacec 9(TokenProviderInterfaceb =(PersistentTokenInterface%a K(AuthenticationProviderInterface%` K(SimplePreAuthenticatorInterface&_ M(SimpleFormAuthenticatorInterface"^ E(SimpleAuthenticatorInterface*] U(AuthenticationTrustResolverInterface$\ I(AuthenticationManagerInterface[ 9(PermissionMapInterface#Z G(MaskBuilderRetrievalInterfaceY 5(MaskBuilderInterface0X a(SecurityIdentityRetrievalStrategyInterfaceW ?(SecurityIdentityInterface)V S(PermissionGrantingStrategyInterface.U ](ObjectIdentityRetrievalStrategyInterfaceT ;(ObjectIdentityInterface!S C(MutableAclProviderInterfaceR 3(MutableAclInterfaceQ 3(FieldEntryInterfaceP )(EntryInterfaceO 7(DomainObjectInterfaceN 5(AuditLoggerInterfaceM ;(AuditableEntryInterfaceL 7(AuditableAclInterfaceK 5(AclProviderInterfaceJ %(AclInterfaceI /(AclCacheInterfaceH +(RouterInterfaceG 9(RouteCompilerInterface"F E(RequestContextAwareInterfaceE 3(UrlMatcherInterfaceD ;(RequestMatcherInterface%C K(RedirectableUrlMatcherInterfaceB 9(MatcherDumperInterfaceA =(GeneratorDumperInterface@ 7(UrlGeneratorInterface'? O(ConfigurableRequirementsInterface> 1(ExceptionInterface#= G(PropertyPathIteratorInterface< 7(PropertyPathInterface; ?(PropertyAccessorInterface: 1(ExceptionInterface9 )(PipesInterface8 1(ExceptionInterface7 =(OptionsResolverInterface6 (Options5 1(ExceptionInterface4 ;(ResourceBundleInterface3 7(RegionBundleInterface2 7(LocaleBundleInterface1 ;(LanguageBundleInterface0 ;(CurrencyBundleInterface/ 1(ExceptionInterface. 7(BundleWriterInterface- 7(BundleReaderInterface , A(BundleEntryReaderInterface+ ;(BundleCompilerInterface* =(ProfilerStorageInterface) +(LoggerInterface( 5(DebugLoggerInterface' 3(TerminableInterface& +(KernelInterface% 3(HttpKernelInterface$ 1(SurrogateInterface# )(StoreInterface$" I(ResponseCacheStrategyInterface'! O(EsiResponseCacheStrategyInterface  ?(FragmentRendererInterface 9(HttpExceptionInterface  A(LateDataCollectorInterface 9(DataCollectorInterface! C(ControllerResolverInterface /(WarmableInterface 5(CacheWarmerInterface 7(CacheClearerInterface +(BundleInterface ;(SessionStorageInterface -(SessionInterface 3(SessionBagInterface /(FlashBagInterface 7(AttributeBagInterface ;(SessionHandlerInterface ;(RequestMatcherInterface =(~MimeTypeGuesserInterface ?(~ExtensionGuesserInterface +(}AuthorInterface '(|FormInterface 5(|FormBuilderInterface =({ViolationMapperInterface 
 A(zFormDataExtractorInterface 	 A(zFormDataCollectorInterface 7(yCsrfProviderInterface 3(xChoiceListInterface 1(wExceptionInterface 7(vChoiceLoaderInterface  A(uChoiceListFactoryInterface 3(tChoiceListInterface ?(sSubmitButtonTypeInterface ?(sResolvedFormTypeInterface&  M(sResolvedFormTypeFactoryInterface ;(sRequestHandlerInterface~ /(sFormTypeInterface} =(sFormTypeGuesserInterface | A(sFormTypeExtensionInterface{ 7(sFormRendererInterface!z C(sFormRendererEngineInterfacey 7(sFormRegistryInterfacex '(sFormInterfacew 5(sFormFactoryInterface!v C(sFormFactoryBuilderInterfaceu 9(sFormExtensionInterfacet 3(sFormConfigInterface s A(sFormConfigBuilderInterfacer 5(sFormBuilderInterfaceq =(sDataTransformerInterfacep 3(sDataMapperInterface   ~ `J)_?!h>$hD+YA"




m
Q
8

					n	T	9	!	sW;zR+
]; jH'}Q9!jH.tU5iH*          g 3(SerializerInterfacef 7(SuperClosureExceptione =(LaravelBehaviorInterfaced =(LaravelBehaviorInterfacec 5(HttpAdapterInterfaceb -(SlugifyInterfacea -(SlugifyInterface` (Source_ (Mixer^ ;(ParamConverterInterface] 9(ConfigurationInterface\ ;(ParamConverterInterface[ 9(ConfigurationInterfaceZ '(StepInterfaceY '(StepInterfaceX 9(ValueSupplierInterfaceW /(HashableInterfaceV +(FilterInterface"U E(DependencyExtractorInterfaceT +(WorkerInterfaceS /(ResourceInterfaceR ?(IteratorResourceInterfaceQ 9(FormulaLoaderInterfaceP (ExceptionO )(CacheInterfaceN )(AssetInterfaceM =(AssetCollectionInterfaceL 1(ExceptionInterfaceK 3(DataDumperInterfaceJ +(DumperInterfaceI +(ClonerInterface)H S(ConstraintViolationBuilderInterfaceG 1(ValidatorInterface"F E(ContextualValidatorInterfaceE 7(StaticLoaderInterfaceD 3(LegacyClassMetadataC +(EntityInterfaceB +(LoaderInterfaceA =(MetadataFactoryInterface@ ?(PropertyMetadataInterface? /(MetadataInterface> 9(ClassMetadataInterface= )(CacheInterface< 1(ExceptionInterface; ?(ExecutionContextInterface&: M(ExecutionContextFactoryInterface9 1(ValidatorInterface8 ?(ValidatorBuilderInterface 7 A(ValidationVisitorInterface6 ?(PropertyMetadataInterface(5 Q(PropertyMetadataContainerInterface 4 A(ObjectInitializerInterface3 /(MetadataInterface2 =(MetadataFactoryInterface$1 I(GroupSequenceProviderInterface%0 K(GlobalExecutionContextInterface/ ?(ExecutionContextInterface&. M(ConstraintViolationListInterface"- E(ConstraintViolationInterface", E(ConstraintValidatorInterface)+ S(ConstraintValidatorFactoryInterface* 3(ClassBasedInterface) 3(TranslatorInterface( 9(TranslatorBagInterface' 9(MetadataAwareInterface& ?(MessageCatalogueInterface% +(LoaderInterface$ 1(ExtractorInterface# 1(ExceptionInterface" +(DumperInterface! 1(OperationInterface  /(MyStreamingEngine +(LoaderInterface +(HelperInterface  A(TemplateReferenceInterface! C(TemplateNameParserInterface =(StreamingEngineInterface +(EngineInterface /(DebuggerInterface -(PackageInterface 3(GroupDummyInterface 3(SerializerInterface =(SerializerAwareInterface 3(NormalizerInterface 7(NormalizableInterface 7(DenormalizerInterface ;(DenormalizableInterface 9(NameConverterInterface +(LoaderInterface# G(ClassMetadataFactoryInterface 9(ClassMetadataInterface  A(AttributeMetadataInterface 1(ExceptionInterface
 (Exception!	 C(NormalizationAwareInterface -(EncoderInterface -(DecoderInterface! C(TestFailureHandlerInterface! C(TestSuccessHandlerInterface, Y(SessionAuthenticationStrategyInterface! C(RememberMeServicesInterface# G(LogoutSuccessHandlerInterface 9(LogoutHandlerInterface  /(ListenerInterface' O(AuthenticationEntryPointInterface"~ E(AccessDeniedHandlerInterface+} W(AuthenticationSuccessHandlerInterface+| W(AuthenticationFailureHandlerInterface{ 5(FirewallMapInterfacez 1(AccessMapInterfacey 7(TokenStorageInterfacex ;(TokenGeneratorInterfacew ?(CsrfTokenManagerInterfacev 7(SecureRandomInterfaceu 7(UserProviderInterfacet '(UserInterfaces 5(UserCheckerInterfacer 1(EquatableInterfaceq 7(AdvancedUserInterfacep =(SecurityContextInterfaceo '(RoleInterfacen 9(RoleHierarchyInterfacem 1(ExceptionInterface"l E(UserPasswordEncoderInterfacek =(PasswordEncoderInterfacej ;(EncoderFactoryInterface    ~gU@,~k]J6'p]I:+ym]O7 xfUD1






i
N
7
						h	F	,	ygUA0nYE5vcO@.vbSD8)vhP9%n]J2gP+                          +)YLoaderInterface -)XSessionInterface ;)XExistenceAwareInterface 1)WValidatorInterface  A)VFailedJobProviderInterface 1)UConnectorInterface" E)TMigrationRepositoryInterface ))SScopeInterface 1)RConnectorInterface! C)QConnectionResolverInterface 3)QConnectionInterface
 )PView )PFactory
 )OValidator	 7)OValidatesWhenResolved )OFactory !)NRenderable +)NMessageProvider !)NMessageBag )NJsonable )NHtmlable )NArrayable #)MUrlRoutable  %)MUrlGenerator 5)MTerminableMiddleware~ +)MResponseFactory} )MRegistrar| !)MMiddleware{ )LDatabasez #)KShouldQueuey ))KShouldBeQueuedx +)KQueueableEntityw )KQueuev )KMonitor	u )KJobt )KFactorys ))KEntityResolverr )JPipeline	q )JHubp )IPresentero )IPaginatorn 5)ILengthAwarePaginatorm )HMailQueuel )HMailer	k )GLogj )FKerneli )EHasherh #)DApplicationg !)CFilesystemf )CFactorye )CCloudd !)BDispatcherc )AEncrypterb -)@ExceptionHandlera +)?QueueingFactory` )?Factory_ =)>ContextualBindingBuilder^ )>Container] )=Kernel\ #)=Application[ !)<RepositoryZ );StoreY !);RepositoryX );FactoryW %):SelfHandlingV 1):QueueingDispatcherU +):HandlerResolverT !):DispatcherS 1)9ShouldBroadcastNowR +)9ShouldBroadcastQ )9FactoryP #)9BroadcasterO %)8UserProviderN )8RegistrarM ))8PasswordBrokerL )8GuardK -)8CanResetPasswordJ +)8Authenticatable
I )7GateH %)7AuthorizableG =)6TokenRepositoryInterfaceF ))5PresenterAwareE )4ReadlineD #)3OutputPagerC )2FormatterB )1ExceptionA %)0ContextAware@ )/Throwable? -).HandlerInterface!> C)-ActivationStrategyInterface= 1),FormatterInterface< 3)ViewFinderInterface; +)EngineInterface: /)CompilerInterface9 ?)PresenceVerifierInterface8 +)LoaderInterface7 -)SessionInterface6 ;)ExistenceAwareInterface5 1)ValidatorInterface 4 A)FailedJobProviderInterface3 1)ConnectorInterface"2 E)MigrationRepositoryInterface1 ))ScopeInterface0 1)ConnectorInterface!/ C)ConnectionResolverInterface. 3)ConnectionInterface
- )View, )Factory+ )Validator* 7)ValidatesWhenResolved) )Factory( !)Renderable' +)MessageProvider& !)MessageBag% )Jsonable$ )Htmlable# )Arrayable" #)UrlRoutable! %)UrlGenerator  5)TerminableMiddleware +)ResponseFactory )Registrar !)Middleware )Database #)ShouldQueue ))ShouldBeQueued +)QueueableEntity )Queue )Monitor	 )Job )Factory ))EntityResolver )
Pipeline	 )
Hub )	Presenter )	Paginator 5)	LengthAwarePaginator )MailQueue )Mailer	 )Log )Kernel
 )Hasher	 #)Application !)Filesystem )Factory )Cloud !)Dispatcher )Encrypter -) ExceptionHandler +(QueueingFactory (Factory  =(ContextualBindingBuilder (Container~ (Kernel} #(Application| !(Repository{ (Storez !(Repositoryy (Factoryx %(SelfHandlingw 1(QueueingDispatcherv +(HandlerResolveru !(Dispatchert 1(ShouldBroadcastNows +(ShouldBroadcastr (Factoryq #(Broadcasterp %(UserProvidero (Registrarn )(PasswordBrokerm (Guardl -(CanResetPasswordk +(Authenticatable
j (Gatei %(Authorizableh =(TokenRepositoryInterface   W uY7lS9w_F8!x]H8%m[H:*







w
k
Z
C
3
'

								x	[	F	2	 	pcC* _M>	oU,sL<iI0aM2kL/tW             8 5)ParserCacheInterface)7 S)ExpressionFunctionProviderInterface
6 )Titi5 -)ScoringInterface4 ))ScoreInterface3 1)ResultSetInterface2 3)ExportableInterface1 1)ExtractorInterface0 5)TreeBuilderInterface/ 9)ConfigurationInterface. +)ResultInterface- +)BoundsInterface, !)Aggregator+ +)FactorInterface* /)FormaterInterface) %)JobInterface( -)HandlerInterface!' C)ActivationStrategyInterface& 1)FormatterInterface% #)ClassLoader$ 9)OptionPrinterInterface# !)Renderable" !)Exportable! )Writer
  )Stty )Console )Extension 5)ApplicationExtension 5)ConsoleInfoInterface )Separator -)CommandInterface ;)MultipleHeaderInterface +)HeaderInterface 1)ExceptionInterface 1)ExceptionInterface 1)ExceptionInterface 1)ExceptionInterface +)StreamInterface -)AdapterInterface 7)GitExceptionInterface )IParser$ I)PHPUnit_Runner_TestSuiteLoader$ I)PHPUnit_Framework_TestListener 9)PHPUnit_Framework_Test# G)PHPUnit_Framework_SkippedTest& M)PHPUnit_Framework_SelfDescribing!
 C)PHPUnit_Framework_RiskyTest&	 M)PHPUnit_Framework_IncompleteTest /)PHPUnit_Exception %)ShardManager #)ShardChoser )Visitor /)SchemaDiffVisitor -)NamespaceVisitor 1)SchemaSynchronizer !)Constraint  )SQLLogger  A)VersionAwarePlatformDriver~ )Driver} )Statement| ?)ServerInfoAwareConnection{ +)ResultStatementz 1)PingableConnectiony =)ExceptionConverterDriverx +)DriverExceptionw !)Connectionv %)SessionStoreu %)SessionStoret -)SessionInterfaces ;)ExistenceAwareInterface
r )Viewq )Factoryp )Validatoro 7)ValidatesWhenResolvedn )Factorym !)Renderablel +)MessageProviderk !)MessageBagj )Jsonablei )Htmlableh )Arrayableg #)UrlRoutablef %)UrlGeneratore 5)TerminableMiddlewared +)ResponseFactoryc )Registrarb !)Middlewarea )Database` #)ShouldQueue_ ))ShouldBeQueued^ +)QueueableEntity] )Queue\ )Monitor	[ )JobZ )FactoryY ))EntityResolverX )Pipeline	W )HubV )PresenterU )PaginatorT 5)LengthAwarePaginatorS )MailQueueR )Mailer	Q )LogP )KernelO )HasherN #)ApplicationM !)FilesystemL )FactoryK )CloudJ !)DispatcherI )EncrypterH -)ExceptionHandlerG +)~QueueingFactoryF )~FactoryE =)}ContextualBindingBuilderD )}ContainerC )|KernelB #)|ApplicationA !){Repository@ )zStore? !)zRepository> )zFactory= %)ySelfHandling< 1)yQueueingDispatcher; +)yHandlerResolver: !)yDispatcher9 1)xShouldBroadcastNow8 +)xShouldBroadcast7 )xFactory6 #)xBroadcaster5 %)wUserProvider4 )wRegistrar3 ))wPasswordBroker2 )wGuard1 -)wCanResetPassword0 +)wAuthenticatable
/ )vGate. %)vAuthorizable- ;)uWritableStreamInterface, ;)uReadableStreamInterface+ 7)uDuplexStreamInterface!* C)tWsMessageComponentInterface) 7)sWsWampServerInterface( /)rWsServerInterface' -)qVersionInterface& -)qMessageInterface% ))qFrameInterface$ ')qDataInterface# 1)pValidatorInterface" 3)oWampServerInterface! -)nHandlerInterface  3)mHttpServerInterface -)lMessageInterface ?)lMessageComponentInterface 3)lConnectionInterface 1)lComponentInterface 3)]ViewFinderInterface +)\EngineInterface /)[CompilerInterface ?)ZPresenceVerifierInterface   | fK4$z`E/{dI0hN%lE(




s
O
&
 				]	*yGQb@&qK,}Y0
}qeE9-taL5hO5                    4 =)ProphecySubjectInterface3 /)ProphecyInterface2 -)PromiseInterface1 3)PredictionInterface0 /)ProphecyException/ 3)PredictionException. )Exception- -)DoublerException, 3)ReflectionInterface+ +)DoubleInterface* 3)ClassPatchInterface) ))TokenInterface( %)Unserializer' !)Serializer& #)NodeVisitor% 9)NodeTraverserInterface
$ )Node# )Builder" ')CoreInterface! ')CoreInterface  7)PHP_CodeSniffer_Sniff 9)PHP_CodeSniffer_Report	 )Foo	 )Bor ;)PHP_CodeCoverage_Driver	 )Foo	 )Bor ;)PHP_CodeCoverage_Driver$ I)PHPUnit_Runner_TestSuiteLoader$ I)PHPUnit_Framework_TestListener 9)PHPUnit_Framework_Test# G)PHPUnit_Framework_SkippedTest& M)PHPUnit_Framework_SelfDescribing! C)PHPUnit_Framework_RiskyTest& M)PHPUnit_Framework_IncompleteTest /)PHPUnit_Exception )AtRule )AtRule$ I)PHPUnit_Runner_TestSuiteLoader$ I)PHPUnit_Framework_TestListener 9)PHPUnit_Framework_Test# G)PHPUnit_Framework_SkippedTest&
 M)PHPUnit_Framework_SelfDescribing!	 C)PHPUnit_Framework_RiskyTest& M)PHPUnit_Framework_IncompleteTest /)PHPUnit_Exception" E)TraversableMockTestInterface /)MockTestInterface ?)InterfaceWithStaticMethod) S)InterfaceWithSemiReservedMethodName -)AnotherInterface #)AnInterface-  [)PHPUnit_Framework_MockObject_Verifiable' O)PHPUnit_Framework_MockObject_Stub9~ s)PHPUnit_Framework_MockObject_Stub_MatcherCollection-} [)PHPUnit_Framework_MockObject_MockObject5| k)PHPUnit_Framework_MockObject_Matcher_Invocation,{ Y)PHPUnit_Framework_MockObject_Invokable-z [)PHPUnit_Framework_MockObject_Invocation,y Y)PHPUnit_Framework_MockObject_Exception/x _)PHPUnit_Framework_MockObject_Builder_Stub:w u)PHPUnit_Framework_MockObject_Builder_ParametersMatch4v i)PHPUnit_Framework_MockObject_Builder_Namespace:u u)PHPUnit_Framework_MockObject_Builder_MethodNameMatch0t a)PHPUnit_Framework_MockObject_Builder_Match3s g)PHPUnit_Framework_MockObject_Builder_Identity$r I)PHPUnit_Runner_TestSuiteLoader$q I)PHPUnit_Framework_TestListenerp 9)PHPUnit_Framework_Test#o G)PHPUnit_Framework_SkippedTest&n M)PHPUnit_Framework_SelfDescribing!m C)PHPUnit_Framework_RiskyTest&l M)PHPUnit_Framework_IncompleteTestk /)PHPUnit_Exceptionj =)InvalidArgumentExceptioni 9)CacheItemPoolInterfaceh 1)CacheItemInterfaceg ))CacheExceptionf 5)CompressionInterface$e I)PHPUnit_Runner_TestSuiteLoader$d I)PHPUnit_Framework_TestListenerc 9)PHPUnit_Framework_Test#b G)PHPUnit_Framework_SkippedTest&a M)PHPUnit_Framework_SelfDescribing!` C)PHPUnit_Framework_RiskyTest&_ M)PHPUnit_Framework_IncompleteTest^ /)PHPUnit_Exception] +)IMarkdownParser\ 7)AnotherSuperInterface[ ))SuperInterfaceZ %)SubInterfaceY )iTestX #)iXHProfRunsW %)TranslatableV )RoutableU 7)UrlGeneratorInterfaceT -)MatcherInterfaceS 1)ExtensionInterfaceR ))TraitInterfaceQ /)PropertyInterfaceP -)ProjectInterfaceO -)PackageInterfaceN 1)NamespaceInterfaceM +)MethodInterfaceL 1)InterfaceInterfaceK /)FunctionInterfaceJ ')FileInterfaceI 1)ContainerInterfaceH /)ConstantInterfaceG ))ClassInterfaceF ))ChildInterfaceE ')BaseInterfaceD /)ArgumentInterfaceC !)FilterableB 1)AssemblerInterfaceA 7)CompilerPassInterface@ )Backend? ))ValueInterface> 1)ExceptionInterface= -)AdapterInterface< 5)IOExceptionInterface; 1)ExceptionInterface: 5)ParserCacheInterface)9 S)ExpressionFunctionProviderInterface   8 cH%gO8jQ?,}l[I3mR;"




y
Z
=
%
					x	b	C	&	q[EmR.~^A w`D,z`?%`?$yjP?$kP8                D +*IReportGeneratorC 1*IFileAwareGeneratorB 1*ICodeAwareGeneratorA +*HProcessListener@ /*GCodeRankStrategyI? 5*FAnalyzerProjectAware> /*FAnalyzerNodeAware= -*FAnalyzerListener< 3*FAnalyzerFilterAware; 1*FAnalyzerCacheAware: *FAnalyzer9 /*FAggregateAnalyzer8 *EFilter7 *DCanvas6 *CCanvas5 %*BFunctionLike4 %*AUnserializer3 !*ASerializer2 #*ANodeVisitor1 9*ANodeTraverserInterface
0 *ANode/ *ABuilder. 1*@ExceptionInterface- =*?AssertionFailedException, =*>AssertionFailedException+ )*=DummyInterface* -*<vfsStreamVisitor) -*;vfsStreamContent( 1*;vfsStreamContainer' *:Matcher& *9Filter% =*8LongestCommonSubsequence$ /*7RevealerInterface# =*7ProphecySubjectInterface" /*7ProphecyInterface! -*6PromiseInterface  3*5PredictionInterface /*4ProphecyException 3*3PredictionException *2Exception -*1DoublerException 3*0ReflectionInterface +*/DoubleInterface 3*.ClassPatchInterface )*-TokenInterface	 *,Foo	 *,Bor ;*,PHP_CodeCoverage_Driver ?*+Twig_TokenParserInterface* U*+Twig_Sandbox_SecurityPolicyInterface ?*+Twig_NodeVisitorInterface =*+Twig_NodeOutputInterface 5*+Twig_LoaderInterface ;*+Twig_ExtensionInterface  A*+Twig_ExistsLoaderInterface 3*+Twig_CacheInterface -**HandlerInterface! C*)ActivationStrategyInterface
 1*(FormatterInterface	 -*'HandlerInterface! C*&ActivationStrategyInterface 1*%FormatterInterface =*$EventSubscriberInterface =*$EventDispatcherInterface' O*#TraceableEventDispatcherInterface =*"EventSubscriberInterface =*"EventDispatcherInterface' O*!TraceableEventDispatcherInterface  '* NodeInterface '*NodeInterface~ 1*ExceptionInterface} 1*ExceptionInterface| 1*ExceptionInterface{ *Validatorz /*ResourceInterfacey ;*LoaderResolverInterfacex +*LoaderInterfacew 5*FileLocatorInterfacev 9*PrototypeNodeInterfaceu '*NodeInterfacet 9*ConfigurationInterface#s G*ParentNodeDefinitionInterfacer 3*NodeParentInterfaceq *Validatorp /*ResourceInterfaceo ;*LoaderResolverInterfacen +*LoaderInterfacem 5*FileLocatorInterfacel 9*PrototypeNodeInterfacek '*NodeInterfacej 9*ConfigurationInterface#i G*ParentNodeDefinitionInterfaceh 3*NodeParentInterfaceg )*ValueInterfacef 1*ExceptionInterfacee -*AdapterInterfaced )*ValueInterfacec 1*ExceptionInterfaceb -*
AdapterInterfacea +*	OutputInterface` 9*	ConsoleOutputInterface_ )*InputInterface^ +*HelperInterface#] G*OutputFormatterStyleInterface\ =*OutputFormatterInterface[ '*isAnInterfaceZ *decoratorY *analyzerX *realtimeW %*asynchronous
V *testU *runnerT !* aggregatorS )builderR )observerQ !)observableP )extensionO )exceptionN !)definitionM !)definitionL )InspectorK -)HandlerInterface!J C)ActivationStrategyInterfaceI 1)FormatterInterfaceH -)HandlerInterface!G C)ActivationStrategyInterfaceF 1)FormatterInterfaceE +)OutputInterfaceD 9)ConsoleOutputInterfaceC ))InputInterfaceB +)HelperInterface#A G)OutputFormatterStyleInterface@ =)OutputFormatterInterface? 1)SluggableInterface> +)MarkerInterface = A)MethodInterceptorInterface< =)LazyInitializerInterface ; A)InterceptorLoaderInterface: 1)GeneratorInterface9 ;)DefaultVisitorInterface8 ;)NamingStrategyInterface 7 A)GeneratorStrategyInterface6 ;)ClassGeneratorInterface5 /)RevealerInterface   ~ w`N?+	b?{^C" tY1kD%	




q
D
%
					P	$v^B+qX=&sQ2e<mB uZC$
{]8k?                           B ;*zTwig_ExtensionInterface)A S*zTwig_Extension_InitRuntimeInterface%@ K*zTwig_Extension_GlobalsInterface ? A*zTwig_ExistsLoaderInterface> 9*zTwig_CompilerInterface= 3*zTwig_CacheInterface)< S*yConstraintViolationBuilderInterface; 1*xValidatorInterface": E*xContextualValidatorInterface9 7*wStaticLoaderInterface8 3*vLegacyClassMetadata7 +*vEntityInterface6 +*uLoaderInterface5 =*tMetadataFactoryInterface4 ?*sPropertyMetadataInterface3 /*sMetadataInterface2 9*sClassMetadataInterface1 )*rCacheInterface0 1*qExceptionInterface/ ?*pExecutionContextInterface&. M*pExecutionContextFactoryInterface- 1*oValidatorInterface, ?*oValidatorBuilderInterface + A*oValidationVisitorInterface* ?*oPropertyMetadataInterface() Q*oPropertyMetadataContainerInterface ( A*oObjectInitializerInterface' /*oMetadataInterface& =*oMetadataFactoryInterface$% I*oGroupSequenceProviderInterface%$ K*oGlobalExecutionContextInterface# ?*oExecutionContextInterface&" M*oConstraintViolationListInterface"! E*oConstraintViolationInterface"  E*oConstraintValidatorInterface) S*oConstraintValidatorFactoryInterface 3*oClassBasedInterface 3*nTranslatorInterface 9*nTranslatorBagInterface 9*nMetadataAwareInterface ?*nMessageCatalogueInterface +*mLoaderInterface 1*lExtractorInterface 1*kExceptionInterface +*jDumperInterface 1*iOperationInterface )*hPipesInterface 1*gExceptionInterface )*fValueInterface 1*eExceptionInterface -*dAdapterInterface =*cEventSubscriberInterface =*cEventDispatcherInterface' O*bTraceableEventDispatcherInterface )*aStyleInterface +*`OutputInterface
 9*`ConsoleOutputInterface	 )*_InputInterface 3*_InputAwareInterface +*^HelperInterface# G*]OutputFormatterStyleInterface =*]OutputFormatterInterface 3*\DescriptorInterface" E*[Console_CommandLine_Renderer# G*[Console_CommandLine_Outputter) S*[Console_CommandLine_MessageProvider/  _*[Console_CommandLine_CustomMessageProvider 1*ZExceptionInterface~ ?*YTwig_TokenParserInterface%} K*YTwig_TokenParserBrokerInterface| 1*YTwig_TestInterface { A*YTwig_TestCallableInterfacez 9*YTwig_TemplateInterface*y U*YTwig_Sandbox_SecurityPolicyInterfacex 5*YTwig_ParserInterfacew ?*YTwig_NodeVisitorInterfacev =*YTwig_NodeOutputInterfaceu 1*YTwig_NodeInterfacet 5*YTwig_LoaderInterfaces 3*YTwig_LexerInterfacer 9*YTwig_FunctionInterface$q I*YTwig_FunctionCallableInterfacep 5*YTwig_FilterInterface"o E*YTwig_FilterCallableInterfacen ;*YTwig_ExtensionInterface m A*YTwig_ExistsLoaderInterfacel 9*YTwig_CompilerInterfacek ?*XTwig_TokenParserInterface%j K*XTwig_TokenParserBrokerInterfacei 1*XTwig_TestInterface h A*XTwig_TestCallableInterfaceg 9*XTwig_TemplateInterface*f U*XTwig_Sandbox_SecurityPolicyInterfacee 5*XTwig_ParserInterfaced ?*XTwig_NodeVisitorInterfacec =*XTwig_NodeOutputInterfaceb 1*XTwig_NodeInterfacea 5*XTwig_LoaderInterface` 3*XTwig_LexerInterface_ 9*XTwig_FunctionInterface$^ I*XTwig_FunctionCallableInterface] 5*XTwig_FilterInterface"\ E*XTwig_FilterCallableInterface[ ;*XTwig_ExtensionInterface Z A*XTwig_ExistsLoaderInterfaceY 9*XTwig_CompilerInterfaceX *WExceptionW #*UAnInterfaceV #*SAnInterface
U *RRuleT #*QMethodAwareS )*QInterfaceAwareR '*QFunctionAwareQ !*QClassAwareP *PReportO #*OCacheDriverN *NTokensM *NTokenizerL )*MBuilderContextK *MBuilderJ !*LASTVisitorI -*LASTVisitListenerH )*KArtifactFilterG *JStateF #*JASTCallableE #*JASTArtifact   |  x\?$xU:vP1zZ:cH&





d
I
0
					q	K	!qS.^4tW/|`G,
t[>nP1nS7kD#  > A*HydratingIteratorInterface= =*StrategyEnabledInterface$< I*NamingStrategyEnabledInterface; =*HydratorOptionsInterface: /*HydratorInterface9 9*HydratorAwareInterface8 1*HydrationInterface7 9*FilterEnabledInterface6 ;*FilterProviderInterface5 +*FilterInterface4 3*ExtractionInterface3 1*ExceptionInterface2 =*MergeReplaceKeyInterface1 /*ResponseInterface0 -*RequestInterface/ 3*ParametersInterface. =*ParameterObjectInterface- -*MessageInterface, -*JsonSerializable+ 9*InitializableInterface* 7*DispatchableInterface ) A*ArraySerializableInterface( 1*ExceptionInterface"' E*ServiceManagerAwareInterface& ;*ServiceLocatorInterface"% E*ServiceLocatorAwareInterface%$ K*MutableCreationOptionsInterface# 5*InitializerInterface" -*FactoryInterface! ?*DelegatorFactoryInterface  +*ConfigInterface =*AbstractFactoryInterface ;*ScrollingStyleInterface 1*ExceptionInterface ?*AdapterAggregateInterface 1*ExceptionInterface -*AdapterInterface 3*RouteStackInterface )*RouteInterface )*RouteInterface 1*ExceptionInterface )*RouteInterface ;*ResponseSenderInterface 1*ExceptionInterface +*PluginInterface% K*InjectApplicationEventInterface 5*ApplicationInterface 9*ModuleManagerInterface 1*ExceptionInterface =*ServiceListenerInterface 7*ConfigMergerInterface! C*ViewHelperProviderInterface 
 A*ValidatorProviderInterface'	 O*TranslatorPluginProviderInterface =*ServiceProviderInterface! C*SerializerProviderInterface 9*RouteProviderInterface  A*LogWriterProviderInterface# G*LogProcessorProviderInterface  A*LocatorRegisteredInterface" E*InputFilterProviderInterface 7*InitProviderInterface  ?*HydratorProviderInterface" E*FormElementProviderInterface~ ;*FilterProviderInterface"} E*DependencyIndicatorInterface!| C*ControllerProviderInterface'{ O*ControllerPluginProviderInterface#z G*ConsoleUsageProviderInterface$y I*ConsoleBannerProviderInterfacex ;*ConfigProviderInterface w A*BootstrapListenerInterface!v C*AutoloaderProviderInterfaceu 1*ExceptionInterfacet '*SplAutoloaders -*ShortNameLocatorr 1*PluginClassLocatorq 1*ExceptionInterfacep 1*ExceptionInterfaceo 5*IOExceptionInterfacen 1*ExceptionInterfacem 7*ParameterBagInterfacel +*DumperInterfacek 7*InstantiatorInterfacej ?*PrependExtensionInterfacei 1*ExtensionInterface%h K*ConfigurationExtensionInterfaceg 1*ExceptionInterfacef +*DumperInterfacee =*TaggedContainerInterfaced )*ScopeInterface&c M*IntrospectableContainerInterfaceb 1*ContainerInterfacea ;*ContainerAwareInterface` ;*RepeatablePassInterface_ 7*CompilerPassInterface^ *Validator] /*ResourceInterface\ ;*~LoaderResolverInterface[ +*~LoaderInterfaceZ 9*}PrototypeNodeInterfaceY '*}NodeInterfaceX 9*}ConfigurationInterface#W G*|ParentNodeDefinitionInterfaceV 3*|NodeParentInterfaceU 5*{FileLocatorInterfaceT 5*{ConfigCacheInterface!S C*{ConfigCacheFactoryInterfaceR ?*zTwig_TokenParserInterface%Q K*zTwig_TokenParserBrokerInterfaceP 1*zTwig_TestInterface O A*zTwig_TestCallableInterfaceN 9*zTwig_TemplateInterface*M U*zTwig_Sandbox_SecurityPolicyInterfaceL 5*zTwig_ParserInterfaceK ?*zTwig_NodeVisitorInterfaceJ =*zTwig_NodeOutputInterfaceI 1*zTwig_NodeInterfaceH 5*zTwig_LoaderInterfaceG 3*zTwig_LexerInterfaceF 9*zTwig_FunctionInterface$E I*zTwig_FunctionCallableInterfaceD 5*zTwig_FilterInterface"C E*zTwig_FilterCallableInterface   z ~gP:,lI%pR2hM7oK(




x
X
;
					s	]	A	%	qU9"xR7mPs6v>xdK)sX/_A)               8 7*ParameterBagInterface7 +*DumperInterface6 7*InstantiatorInterface5 ?*PrependExtensionInterface4 1*ExtensionInterface%3 K*ConfigurationExtensionInterface2 1*ExceptionInterface1 +*DumperInterface0 =*TaggedContainerInterface/ )*ScopeInterface&. M*IntrospectableContainerInterface- 1*ContainerInterface, ;*ContainerAwareInterface+ ;*RepeatablePassInterface* 7*CompilerPassInterface) -*IgnoreTestPolicy"( E*TraversableMockTestInterface' /*MockTestInterface& ?*InterfaceWithStaticMethod% -*AnotherInterface$ #*AnInterface-# [*PHPUnit_Framework_MockObject_Verifiable'" O*PHPUnit_Framework_MockObject_Stub9! s*PHPUnit_Framework_MockObject_Stub_MatcherCollection-  [*PHPUnit_Framework_MockObject_MockObject5 k*PHPUnit_Framework_MockObject_Matcher_Invocation, Y*PHPUnit_Framework_MockObject_Invokable- [*PHPUnit_Framework_MockObject_Invocation, Y*PHPUnit_Framework_MockObject_Exception/ _*PHPUnit_Framework_MockObject_Builder_Stub: u*PHPUnit_Framework_MockObject_Builder_ParametersMatch4 i*PHPUnit_Framework_MockObject_Builder_Namespace: u*PHPUnit_Framework_MockObject_Builder_MethodNameMatch0 a*PHPUnit_Framework_MockObject_Builder_Match3 g*PHPUnit_Framework_MockObject_Builder_Identity 5*TransformerInterface )*FixerInterface +*FinderInterface +*ConfigInterface 5*ConfigAwareInterface# G*PropertyPathIteratorInterface 7*PropertyPathInterface ?*PropertyAccessorInterface 1*ExceptionInterface# G*PropertyPathIteratorInterface 7*PropertyPathInterface
 ?*PropertyAccessorInterface	 1*ExceptionInterface 5*IOExceptionInterface 1*ExceptionInterface )*PipesInterface )*StyleInterface 3*InputAwareInterface 3*DescriptorInterface 5*TransformerInterface )*FixerInterface  +*FinderInterface +*ConfigInterface~ 5*ConfigAwareInterface} /*ParameterResolver| -*InvokerInterface{ 3*FooServiceInterfacez 3*BazServiceInterfacey '*BaseInterfacex 1*ExceptionInterface!w C*SignatureGeneratorInterfacev ?*SignatureCheckerInterface&u M*ClassSignatureGeneratorInterfacet ;*ProxyGeneratorInterfaces 7*VirtualProxyInterfacer 5*ValueHolderInterfaceq ;*SmartReferenceInterfacep 7*RemoteObjectInterfaceo )*ProxyInterfacen 3*NullObjectInterfacem 5*LazyLoadingInterfacel 5*GhostObjectInterface"k E*FallbackValueHolderInterface j A*AccessInterceptorInterface!i C*ClassNameInflectorInterface h A*GeneratorStrategyInterfaceg 5*FileLocatorInterfacef -*AdapterInterfacee 1*ExceptionInterfaced 3*AutoloaderInterfacec 3*FooServiceInterfaceb 3*BazServiceInterfacea '*BaseInterface` 1*ExceptionInterface!_ C*SignatureGeneratorInterface^ ?*SignatureCheckerInterface&] M*ClassSignatureGeneratorInterface\ ;*ProxyGeneratorInterface[ 7*VirtualProxyInterfaceZ 5*ValueHolderInterfaceY ;*SmartReferenceInterfaceX 7*RemoteObjectInterfaceW )*ProxyInterfaceV 3*NullObjectInterfaceU 5*LazyLoadingInterfaceT 5*GhostObjectInterface"S E*FallbackValueHolderInterface R A*AccessInterceptorInterface!Q C*ClassNameInflectorInterface P A*GeneratorStrategyInterfaceO 5*FileLocatorInterfaceN -*AdapterInterfaceM 1*ExceptionInterfaceL 3*AutoloaderInterfaceK *ReaderJ '*MultiGetCacheI )*FlushableCacheH )*ClearableCacheG *CacheF '*MultiGetCacheE )*FlushableCacheD )*ClearableCacheC *CacheB 9*StringWrapperInterfaceA /*StrategyInterface@ 1*ExceptionInterface? ;*NamingStrategyInterface   K `A+xkS:,lQ<,zaO<.}k_N7'







l
O
:
&

							t	d	W	<	!	s^B!ybI.yeL: ybD&uR7jL'	kE#vK       (V Q+0Swift_KeyCache_KeyCacheInputStreamU 7+0Swift_InputByteStreamT -+0Swift_FilterableS -+0Swift_FileStream-R [+0Swift_Events_TransportExceptionListener*Q U+0Swift_Events_TransportChangeListenerP ?+0Swift_Events_SendListener#O G+0Swift_Events_ResponseListener N A+0Swift_Events_EventListener"M E+0Swift_Events_EventDispatcherL 1+0Swift_Events_Event"K E+0Swift_Events_CommandListenerJ '+0Swift_EncoderI 7+0Swift_CharacterStream"H E+0Swift_CharacterReaderFactoryG 7+0Swift_CharacterReader(F Q+/ObjectStorage_TokenStore_Interface*E U+/ObjectStorage_Http_Adapter_Interface,D Y+/ObjectStorage_Exception_Http_InterfaceC !+.ValueStoreB /+-PromisorInterfaceA -+-PromiseInterface@ 1+)SignatureInterface ? A+(SessionConnectionInterface> 5+'CredentialsInterface= ++&ResultInterface< '+&HashInterface; -+&CommandInterface: )+&CacheInterface9 1+&AwsClientInterface8 1+%ExceptionInterface7 7+$CurlProgressInterface6 7+#CurlProgressInterface5 )+"CacheInterface
4 +IBar3 '+SomeInterface2 !+GInterface1 !+CInterface0 +Writer
/ +Stty. +Console- +Extension, 5+ApplicationExtension+ 5+ConsoleInfoInterface* +Separator) -+CommandInterface( #+ClassLoader' 7+UriRetrieverInterface& 3+ConstraintInterface% /+RegistryInterface$ ++FormatInterface# /+RegistryInterface" ++FormatInterface! )+ValueInterface  1+ExceptionInterface -+AdapterInterface )+StyleInterface ++OutputInterface 9+ConsoleOutputInterface )+InputInterface 3+InputAwareInterface ++HelperInterface# G+
OutputFormatterStyleInterface =+
OutputFormatterInterface 3+	DescriptorInterface %+FunctionLike %+Unserializer !+Serializer #+NodeVisitor 9+NodeTraverserInterface
 +Node +Builder 1+GeneratorInterface 1+ExtractorInterface 1+GeneratorInterface 1+ExtractorInterface

 +View	 +Factory + Validator 7+ ValidatesWhenResolved + Factory !*Renderable +*MessageProvider !*MessageBag *Jsonable *Htmlable  *Arrayable #*UrlRoutable~ %*UrlGenerator} 5*TerminableMiddleware| +*ResponseFactory{ *Registrarz !*Middlewarey *Databasex #*ShouldQueuew )*ShouldBeQueuedv +*QueueableEntityu *Queuet *Monitor	s *Jobr *Factoryq )*EntityResolverp *Pipeline	o *Hubn *Presenterm *Paginatorl 5*LengthAwarePaginatork *MailQueuej *Mailer	i *Logh *Kernelg *Hasherf #*Applicatione !*Filesystemd *Factoryc *Cloudb !*Dispatchera *Encrypter` -*ExceptionHandler_ +*QueueingFactory^ *Factory] =*ContextualBindingBuilder\ *Container[ *KernelZ #*ApplicationY !*RepositoryX *StoreW !*RepositoryV *FactoryU %*SelfHandlingT 1*QueueingDispatcherS +*HandlerResolverR !*DispatcherQ 1*ShouldBroadcastNowP +*ShouldBroadcastO *FactoryN #*BroadcasterM %*UserProviderL *RegistrarK )*PasswordBrokerJ *GuardI -*CanResetPasswordH +*Authenticatable
G *GateF %*AuthorizableE 1*ExceptionInterfaceD *ValidatorC /*ResourceInterfaceB ;*LoaderResolverInterfaceA +*LoaderInterface@ 9*PrototypeNodeInterface? '*NodeInterface> 9*ConfigurationInterface#= G*ParentNodeDefinitionInterface< 3*NodeParentInterface; 5*FileLocatorInterface: 5*ConfigCacheInterface!9 C*ConfigCacheFactoryInterface   x }Y?a4nY8tP.uP5



x
H
/
					l	J	&	tM.~b;&bAnM#}bI$mI,gO0iF*                N A+@RepositoryManagerInterfaceM 3+@RepositoryInterface L A+@RepositoryFactoryInterfaceK /+@PropertyInterfaceJ '+@NodeInterface I A+@NamespaceRegistryInterfaceH 5+@ItemVisitorInterfaceG '+@ItemInterface!F C+@ImportUUIDBehaviorInterfaceE 5+@CredentialsInterfaceD 9+?PathValidatorInterfaceC ++>LoggerInterfaceB -+=WritingInterface"A E+=WorkspaceManagementInterface@ 3+=VersioningInterface? 1+=TransportInterface> 5+=TransactionInterface= )+=QueryInterface< 3+=PermissionInterface; 5+=ObservationInterface!: C+=NodeTypeManagementInterface9 ;+=NodeTypeFilterInterface$8 I+=NodeTypeCndManagementInterface7 -+=LockingInterface6 -+<FactoryInterface"5 E+;RegressionAlgorithmInterface4 -+:LinkingInterface"3 E+9RegressionAlgorithmInterface2 -+8LinkingInterface1 1+7ExceptionInterface0 )+6FixerInterface/ ++6FinderInterface. ++6ConfigInterface- 5+6ConfigAwareInterface, =+5EventSubscriberInterface+ =+5EventDispatcherInterface'* O+4TraceableEventDispatcherInterface) =+3EventSubscriberInterface( =+3EventDispatcherInterface'' O+2TraceableEventDispatcherInterface'& O+1Swift_Transport_EsmtpHandlerMixin% ++1Swift_Transport$ ?+1Swift_Transport_SmtpAgent!# C+1Swift_Transport_MailInvoker" =+1Swift_Transport_IoBuffer"! E+1Swift_Transport_EsmtpHandler)  S+1Swift_Transport_Esmtp_Authenticator 1+1Swift_StreamFilter #+1Swift_Spool  A+1Swift_Signers_HeaderSigner =+1Swift_Signers_BodySigner %+1Swift_Signer$ I+1Swift_ReplacementFilterFactory 3+1Swift_Plugins_Timer 7+1Swift_Plugins_Sleeper 9+1Swift_Plugins_Reporter& M+1Swift_Plugins_Pop_Pop3Connection 5+1Swift_Plugins_Logger* U+1Swift_Plugins_Decorator_Replacements 9+1Swift_OutputByteStream$ I+1Swift_Mime_ParameterizedHeader 7+1Swift_Mime_MimeEntity 1+1Swift_Mime_Message 5+1Swift_Mime_HeaderSet =+1Swift_Mime_HeaderFactory =+1Swift_Mime_HeaderEncoder /+1Swift_Mime_Header! C+1Swift_Mime_EncodingObserver
 ?+1Swift_Mime_ContentEncoder 	 A+1Swift_Mime_CharsetObserver$ I+1Swift_Mailer_RecipientIterator )+1Swift_KeyCache( Q+1Swift_KeyCache_KeyCacheInputStream 7+1Swift_InputByteStream -+1Swift_Filterable -+1Swift_FileStream- [+1Swift_Events_TransportExceptionListener* U+1Swift_Events_TransportChangeListener  ?+1Swift_Events_SendListener# G+1Swift_Events_ResponseListener ~ A+1Swift_Events_EventListener"} E+1Swift_Events_EventDispatcher| 1+1Swift_Events_Event"{ E+1Swift_Events_CommandListenerz '+1Swift_Encodery 7+1Swift_CharacterStream"x E+1Swift_CharacterReaderFactoryw 7+1Swift_CharacterReader'v O+0Swift_Transport_EsmtpHandlerMixinu ++0Swift_Transportt ?+0Swift_Transport_SmtpAgent!s C+0Swift_Transport_MailInvokerr =+0Swift_Transport_IoBuffer"q E+0Swift_Transport_EsmtpHandler)p S+0Swift_Transport_Esmtp_Authenticatoro 1+0Swift_StreamFiltern #+0Swift_Spool m A+0Swift_Signers_HeaderSignerl =+0Swift_Signers_BodySignerk %+0Swift_Signer$j I+0Swift_ReplacementFilterFactoryi 3+0Swift_Plugins_Timerh 7+0Swift_Plugins_Sleeperg 9+0Swift_Plugins_Reporter&f M+0Swift_Plugins_Pop_Pop3Connectione 5+0Swift_Plugins_Logger*d U+0Swift_Plugins_Decorator_Replacementsc 9+0Swift_OutputByteStream$b I+0Swift_Mime_ParameterizedHeadera 7+0Swift_Mime_MimeEntity` 1+0Swift_Mime_Message_ 5+0Swift_Mime_HeaderSet^ =+0Swift_Mime_HeaderFactory] =+0Swift_Mime_HeaderEncoder\ /+0Swift_Mime_Header![ C+0Swift_Mime_EncodingObserverZ ?+0Swift_Mime_ContentEncoder Y A+0Swift_Mime_CharsetObserver$X I+0Swift_Mailer_RecipientIteratorW )+0Swift_KeyCache    _?rF)y^6yV6qWB)




e
C
)
						a	D	/	iDjYD,rW<!oT;-tP-y`@!	r\B|_?               R ;+dNodeDefinitionInterfaceQ ;+dItemDefinitionInterfaceP 5+cLockManagerInterfaceO '+cLockInterfaceN /+cLockInfoInterfaceM 1+bWorkspaceInterfaceL -+bSessionInterface K A+bRepositoryManagerInterfaceJ 3+bRepositoryInterface I A+bRepositoryFactoryInterfaceH /+bPropertyInterfaceG '+bNodeInterface F A+bNamespaceRegistryInterfaceE 5+bItemVisitorInterfaceD '+bItemInterface!C C+bImportUUIDBehaviorInterfaceB 5+bCredentialsInterfaceA ++aPurgerInterface@ 9+`SharedFixtureInterface? ;+`OrderedFixtureInterface> -+`FixtureInterface= ?+`DependentFixtureInterface< ++_PurgerInterface; 9+^SharedFixtureInterface: ;+^OrderedFixtureInterface9 -+^FixtureInterface8 ?+^DependentFixtureInterface 7 A+]ClassLoaderTest_InterfaceA!6 C+\ReflectionProviderInterface5 5+\ClassFinderInterface4 +[Proxy3 )+ZProxyException2 '+YMappingDriver1 #+YFileLocator0 /+XReflectionService/ 5+XClassMetadataFactory. '+XClassMetadata- +WProxy, -+WObjectRepository+ 1+WObjectManagerAware* '+WObjectManager) ++WManagerRegistry( 1+WConnectionRegistry' ;+VPropertyChangedListener& 7+VNotifyPropertyChanged% ++VEventSubscriber$ !+VComparable# 1+UFormatterInterface" 1+TExceptionInterface! 1+SPersisterInterface  1+RGeneratorInterface %+QVCSInterface 1+PPersisterInterface 1+OGeneratorInterface %+NVCSInterface ?+MTreeWalkerFilterInterface 5+LTokenFilterInterface ++KReaderInterface %+JPropertyMock +JNodeMock ;+IVersionManagerInterface -+IVersionInterface ;+IVersionHistoryInterface =+HUserTransactionInterface 1+GPrivilegeInterface 1+GPrincipalInterface' O+GNamedAccessControlPolicyInterface" E+GAccessControlPolicyInterface# G+GAccessControlManagerInterface  A+GAccessControlListInterface! C+GAccessControlEntryInterface =+FRetentionPolicyInterface
 ?+FRetentionManagerInterface	 '+FHoldInterface %+ERowInterface 5+EQueryResultInterface 7+EQueryManagerInterface )+EQueryInterface 1+DUpperCaseInterface 9+DStaticOperandInterface ++DSourceInterface /+DSelectorInterface$  I+DSameNodeJoinConditionInterface /+DSameNodeInterface~ ?+DQueryObjectModelInterface&} M+DQueryObjectModelFactoryInterface(| Q+DQueryObjectModelConstantsInterface{ 9+DPropertyValueInterface z A+DPropertyExistenceInterfacey #+DOrInterfacex /+DOrderingInterfacew -+DOperandInterfacev %+DNotInterfaceu /+DNodeNameInterfacet 9+DNodeLocalNameInterfaces 1+DLowerCaseInterfacer -+DLiteralInterfaceq ++DLengthInterfacep '+DJoinInterfaceo 9+DJoinConditionInterface"n E+DFullTextSearchScoreInterfacem ;+DFullTextSearchInterface l A+DEquiJoinConditionInterfacek ;+DDynamicOperandInterface*j U+DDescendantNodeJoinConditionInterfacei ;+DDescendantNodeInterfaceh 3+DConstraintInterfaceg 3+DComparisonInterfacef ++DColumnInterface%e K+DChildNodeJoinConditionInterfaced 1+DChildNodeInterface c A+DBindVariableValueInterfaceb %+DAndInterface!a C+CObservationManagerInterface` 9+CEventListenerInterface_ 7+CEventJournalInterface^ )+CEventInterface] 5+CEventFilterInterface)\ S+BPropertyDefinitionTemplateInterface![ C+BPropertyDefinitionInterfaceZ ?+BNodeTypeTemplateInterfaceY =+BNodeTypeManagerInterfaceX /+BNodeTypeInterface!W C+BNodeTypeDefinitionInterface%V K+BNodeDefinitionTemplateInterfaceU ;+BNodeDefinitionInterfaceT ;+BItemDefinitionInterfaceS 5+ALockManagerInterfaceR '+ALockInterfaceQ /+ALockInfoInterfaceP 1+@WorkspaceInterfaceO -+@SessionInterface   ~ yW3r]:Z:lQ2zO&




r
W
@
"
					s	P	*	dK+uT=&lT1oL)qN2jK(y]F/uW>)         P 3+ConflictsWithModuleO %+ActiveRecordN -+WebDriverElementM 7SupportsDomainRoutingL 5+ParserCacheInterface)K S+ExpressionFunctionProviderInterfaceJ 3+DeprecatedInterface I A+FatalErrorHandlerInterfaceH -+StorageInterfaceG -+CommandInterfaceF )+ResourceHolderE )+AuthenticationD 3+DataDumperInterfaceC ++DumperInterfaceB ++ClonerInterfaceA ;+ResponseReaderInterface@ =+ResponseHandlerInterface? /+ProtocolInterface!> C+ComposableProtocolInterface = A+CommandSerializerInterface< 9+ServerProfileInterface; ?+PipelineExecutorInterface: ++OptionInterface9 9+ClientOptionsInterface8 ?+SingleConnectionInterface$7 I+ReplicationConnectionInterface#6 G+ConnectionParametersInterface5 3+ConnectionInterface 4 A+ConnectionFactoryInterface#3 G+ComposableConnectionInterface 2 A+ClusterConnectionInterface#1 G+AggregatedConnectionInterface0 ?+CommandProcessorInterface$/ I+CommandProcessorChainInterface . A+CommandProcessingInterface - A+~PrefixableCommandInterface, -+~CommandInterface+ 9+}HashGeneratorInterface#* G+|DistributionStrategyInterface") E+{CommandHashStrategyInterface( ;+zResponseObjectInterface' 9+zResponseErrorInterface & A+zExecutableContextInterface% ++zClientInterface$ 5+zBasicClientInterface# ++yFilterInterface" ++xWorkerInterface! /+wResourceInterface  ?+wIteratorResourceInterface 9+vFormulaLoaderInterface +uException )+tCacheInterface )+sAssetInterface =+sAssetCollectionInterface 7+qInstantiatorInterface 1+pExceptionInterface ?+oTreeWalkerFilterInterface 5+nTokenFilterInterface ++mReaderInterface %+lPropertyMock +lNodeMock ;+kVersionManagerInterface -+kVersionInterface ;+kVersionHistoryInterface =+jUserTransactionInterface 1+iPrivilegeInterface 1+iPrincipalInterface' O+iNamedAccessControlPolicyInterface" E+iAccessControlPolicyInterface# G+iAccessControlManagerInterface 
 A+iAccessControlListInterface!	 C+iAccessControlEntryInterface =+hRetentionPolicyInterface ?+hRetentionManagerInterface '+hHoldInterface %+gRowInterface 5+gQueryResultInterface 7+gQueryManagerInterface )+gQueryInterface 1+fUpperCaseInterface  9+fStaticOperandInterface ++fSourceInterface~ /+fSelectorInterface$} I+fSameNodeJoinConditionInterface| /+fSameNodeInterface{ ?+fQueryObjectModelInterface&z M+fQueryObjectModelFactoryInterface(y Q+fQueryObjectModelConstantsInterfacex 9+fPropertyValueInterface w A+fPropertyExistenceInterfacev #+fOrInterfaceu /+fOrderingInterfacet -+fOperandInterfaces %+fNotInterfacer /+fNodeNameInterfaceq 9+fNodeLocalNameInterfacep 1+fLowerCaseInterfaceo -+fLiteralInterfacen ++fLengthInterfacem '+fJoinInterfacel 9+fJoinConditionInterface"k E+fFullTextSearchScoreInterfacej ;+fFullTextSearchInterface i A+fEquiJoinConditionInterfaceh ;+fDynamicOperandInterface*g U+fDescendantNodeJoinConditionInterfacef ;+fDescendantNodeInterfacee 3+fConstraintInterfaced 3+fComparisonInterfacec ++fColumnInterface%b K+fChildNodeJoinConditionInterfacea 1+fChildNodeInterface ` A+fBindVariableValueInterface_ %+fAndInterface!^ C+eObservationManagerInterface] 9+eEventListenerInterface\ 7+eEventJournalInterface[ )+eEventInterfaceZ 5+eEventFilterInterface)Y S+dPropertyDefinitionTemplateInterface!X C+dPropertyDefinitionInterfaceW ?+dNodeTypeTemplateInterfaceV =+dNodeTypeManagerInterfaceU /+dNodeTypeInterface!T C+dNodeTypeDefinitionInterface%S K+dNodeDefinitionTemplateInterface   Z k]N6 ~cM4[E'qZ5oT5





h
P
.
							v	_	E	2	dO6iL0pK)~iUE-s_P>rcTH9'
x`I5$~mZ                  p !+MessageBago +Jsonablen +Htmlablem +Arrayablel #+UrlRoutablek %+UrlGeneratorj 5+TerminableMiddlewarei ++ResponseFactoryh +Registrarg !+Middlewaref +Databasee #+ShouldQueued )+ShouldBeQueuedc ++QueueableEntityb +Queuea +Monitor	` +Job_ +Factory^ )+EntityResolver] +Pipeline	\ +Hub[ +PresenterZ +PaginatorY 5+LengthAwarePaginatorX +MailQueueW +Mailer	V +LogU +KernelT +HasherS #+ApplicationR !+FilesystemQ +FactoryP +CloudO !+DispatcherN +EncrypterM -+ExceptionHandlerL ++QueueingFactoryK +FactoryJ =+ContextualBindingBuilderI +ContainerH +KernelG #+ApplicationF !+RepositoryE +StoreD !+RepositoryC +FactoryB %+SelfHandlingA 1+QueueingDispatcher@ ++HandlerResolver? !+Dispatcher> 1+ShouldBroadcastNow= ++ShouldBroadcast< +Factory; #+Broadcaster: %+UserProvider9 +Registrar8 )+PasswordBroker7 +Guard6 -+CanResetPassword5 ++Authenticatable
4 +Gate3 %+Authorizable2 =+TokenRepositoryInterface1 ?+PresenceVerifierInterface"0 E+MigrationRepositoryInterface/ )+ScopeInterface. 1+ConnectorInterface!- C+ConnectionResolverInterface, 3+ConnectionInterface+ -+StorageInterface* 3+DataSourceInterface) -+StorageInterface( 3+DataSourceInterface' 5+PresentableInterface& 5+PresentableInterface% )+TokenInterface$ -+ServiceInterface# )+TokenInterface" 1+SignatureInterface! -+ServiceInterface  )+TokenInterface 7+TokenStorageInterface -+ServiceInterface %+UriInterface 3+UriFactoryInterface ++ClientInterface 5+CredentialsInterface %+SessionStore 1+ValidatorInterface -+FactoryInterface 1+ValidatorInterface -+FactoryInterface !+Dispatcher /+CommandTranslator )+CommandHandler !+CommandBus !+Dispatcher /+CommandTranslator )+CommandHandler !+CommandBus 3+ViewFinderInterface ++EngineInterface
 /+CompilerInterface	 ?+PresenceVerifierInterface ++LoaderInterface ?+ResponsePreparerInterface 3+RenderableInterface =+MessageProviderInterface /+JsonableInterface 1+ArrayableInterface -+SessionInterface ;+ExistenceAwareInterface  9+RouteFiltererInterface 1+ValidatorInterface~ -+GatewayInterface} 3+ConnectionInterface| )+QueueInterface { A+FailedJobProviderInterfacez 1+ConnectorInterfacey ++HasherInterface!x C+ExceptionDisplayerInterface"w E+MigrationRepositoryInterfacev )+ScopeInterfaceu 1+ConnectorInterface!t C+ConnectionResolverInterfaces 3+ConnectionInterfacer ++LoaderInterface)q S+EnvironmentVariablesLoaderInterfacep )+StoreInterfaceo 7+UserProviderInterfacen '+UserInterface!m C+ReminderRepositoryInterfacel 3+RemindableInterface"k E+BuildableRepositoryInterface"j E+BuildableRepositoryInterfacei 3+TranslatorInterfaceh 1+ExtensionInterfaceg ++ParserInterfacef -+HandlerInterfacee '+NodeInterfaced 1+ExceptionInterfacec )+ScenarioDrivenb +Reporteda +Plain` #+Descriptive_ %+Configurable^ )+ConsolePrinter	] +Web\ 7+SupportsDomainRouting[ ++SessionSnapshotZ ++ScreenshotSaverY +RemoteX +QueueW %+PartedModuleV ++PageSourceSaverU %+MultiSessionT )+ElementLocatorS -+DoctrineProviderR ++DependsOnModuleQ +Db     x\8hO7dD&dJ&yR; 




z
_
5
					s	N	/	~fK1~_G)o\O<)ybG-kGubN0{V0iC                    s A,[ClusterConnectionInterface#r G,[AggregatedConnectionInterfaceq ?,ZCommandProcessorInterface$p I,ZCommandProcessorChainInterface o A,ZCommandProcessingInterface n A,YPrefixableCommandInterfacem -,YCommandInterfacel 9,XHashGeneratorInterface#k G,WDistributionStrategyInterface"j E,VCommandHashStrategyInterfacei ;,UResponseObjectInterfaceh 9,UResponseErrorInterface g A,UExecutableContextInterfacef +,UClientInterfacee 5,UBasicClientInterfaced 7,TActionHandlerResolverc 7,SActionHandlerResolverb #,RRouteParsera !,RDispatcher` ',RDataGenerator$_ I,QPHPUnit_Runner_TestSuiteLoader$^ I,QPHPUnit_Framework_TestListener] 9,QPHPUnit_Framework_Test#\ G,QPHPUnit_Framework_SkippedTest&[ M,QPHPUnit_Framework_SelfDescribing!Z C,QPHPUnit_Framework_RiskyTest&Y M,QPHPUnit_Framework_IncompleteTestX /,QPHPUnit_ExceptionW +,PQrCodeInterfaceV 3,PImageMergeInterfaceU ),PImageInterfaceT /,ODataTypeInterfaceS /,NRendererInterfaceR /,MRendererInterfaceQ 1,LDecoratorInterfaceP ),KColorInterfaceO 1,JExceptionInterfaceN +,IQrCodeInterfaceM 3,IImageMergeInterfaceL ),IImageInterfaceK /,HDataTypeInterfaceJ +,GFilterInterfaceI +,FFilterInterfaceH !,EValueStoreG !,DValueStore
F ,CTaskE !,BFilesystemD ,ADatabase C A,@FilenameConverterInterfaceB 5,?S3SignatureInterfaceA ;,>SessionHandlerInterface@ =,=LockingStrategyInterface%? K,=LockingStrategyFactoryInterface> 7,<WriteRequestInterface= +,;WaiterInterface< 9,;WaiterFactoryInterface; ;,;ResourceWaiterInterface: 1,:SignatureInterface 9 A,:EndpointSignatureInterface8 3,9UploadPartInterface7 /,9UploadIdInterface6 9,9TransferStateInterface5 /,9TransferInterface4 1,8ChunkHashInterface3 +,7FacadeInterface2 =,6ExceptionParserInterface1 ?,5ExceptionFactoryInterface0 7,5AwsExceptionInterface/ 5,4CredentialsInterface. 1,3AwsClientInterface- +,2RouterInterface, 9,2RouteCompilerInterface"+ E,2RequestContextAwareInterface* 3,1UrlMatcherInterface) ;,1RequestMatcherInterface%( K,1RedirectableUrlMatcherInterface' 9,0MatcherDumperInterface& =,/GeneratorDumperInterface% 7,.UrlGeneratorInterface'$ O,.ConfigurableRequirementsInterface# 1,-ExceptionInterface" =,,ProfilerStorageInterface! +,+LoggerInterface  5,+DebugLoggerInterface 3,*TerminableInterface +,*KernelInterface 3,*HttpKernelInterface 1,)SurrogateInterface ),)StoreInterface$ I,)ResponseCacheStrategyInterface' O,)EsiResponseCacheStrategyInterface ?,(FragmentRendererInterface 9,'HttpExceptionInterface  A,&LateDataCollectorInterface 9,&DataCollectorInterface! C,%ControllerResolverInterface /,$WarmableInterface 5,$CacheWarmerInterface 7,#CacheClearerInterface +,"BundleInterface ;,!SessionStorageInterface -, SessionInterface 3, SessionBagInterface /,FlashBagInterface 7,AttributeBagInterface
 ;,SessionHandlerInterface	 ;,RequestMatcherInterface =,MimeTypeGuesserInterface ?,ExtensionGuesserInterface 3,ViewFinderInterface +,EngineInterface /,
CompilerInterface ?,	PresenceVerifierInterface +,LoaderInterface -,SessionInterface  ;,ExistenceAwareInterface 1,ValidatorInterface ~ A,FailedJobProviderInterface} 1,ConnectorInterface"| E,MigrationRepositoryInterface{ ),ScopeInterfacez 1,ConnectorInterface!y C, ConnectionResolverInterfacex 3, ConnectionInterface
w +Viewv +Factoryu +Validatort 7+ValidatesWhenResolveds +Factoryr !+Renderableq ++MessageProvider   w uN,mS2`@dC!zR0



~
^
9
						a	?	"pN2~_;dJ*~`E)qY="jF)oU5kP4                                j 7,sCsrfProviderInterfacei 3,rChoiceListInterfaceh 1,qExceptionInterfaceg 7,pChoiceLoaderInterface f A,oChoiceListFactoryInterfacee 3,nChoiceListInterfaced ?,mSubmitButtonTypeInterfacec ?,mResolvedFormTypeInterface&b M,mResolvedFormTypeFactoryInterfacea ;,mRequestHandlerInterface` /,mFormTypeInterface_ =,mFormTypeGuesserInterface ^ A,mFormTypeExtensionInterface] 7,mFormRendererInterface!\ C,mFormRendererEngineInterface[ 7,mFormRegistryInterfaceZ ',mFormInterfaceY 5,mFormFactoryInterface!X C,mFormFactoryBuilderInterfaceW 9,mFormExtensionInterfaceV 3,mFormConfigInterface U A,mFormConfigBuilderInterfaceT 5,mFormBuilderInterfaceS =,mDataTransformerInterfaceR 3,mDataMapperInterfaceQ 1,mClickableInterfaceP 3,mButtonTypeInterfaceO +,lAuthorInterfaceN ',kFormInterfaceM 5,kFormBuilderInterfaceL =,jViolationMapperInterface K A,iFormDataExtractorInterface J A,iFormDataCollectorInterfaceI 7,hCsrfProviderInterfaceH 3,gChoiceListInterfaceG 1,fExceptionInterfaceF 7,eChoiceLoaderInterface E A,dChoiceListFactoryInterfaceD 3,cChoiceListInterfaceC ?,bSubmitButtonTypeInterfaceB ?,bResolvedFormTypeInterface&A M,bResolvedFormTypeFactoryInterface@ ;,bRequestHandlerInterface? /,bFormTypeInterface> =,bFormTypeGuesserInterface = A,bFormTypeExtensionInterface< 7,bFormRendererInterface!; C,bFormRendererEngineInterface: 7,bFormRegistryInterface9 ',bFormInterface8 5,bFormFactoryInterface!7 C,bFormFactoryBuilderInterface6 9,bFormExtensionInterface5 3,bFormConfigInterface 4 A,bFormConfigBuilderInterface3 5,bFormBuilderInterface2 =,bDataTransformerInterface1 3,bDataMapperInterface0 1,bClickableInterface/ 3,bButtonTypeInterface. ?,aTwig_TokenParserInterface%- K,aTwig_TokenParserBrokerInterface, 1,aTwig_TestInterface + A,aTwig_TestCallableInterface* 9,aTwig_TemplateInterface*) U,aTwig_Sandbox_SecurityPolicyInterface( 5,aTwig_ParserInterface' ?,aTwig_NodeVisitorInterface& =,aTwig_NodeOutputInterface% 1,aTwig_NodeInterface$ 5,aTwig_LoaderInterface# 3,aTwig_LexerInterface" 9,aTwig_FunctionInterface$! I,aTwig_FunctionCallableInterface  5,aTwig_FilterInterface" E,aTwig_FilterCallableInterface ;,aTwig_ExtensionInterface) S,aTwig_Extension_InitRuntimeInterface% K,aTwig_Extension_GlobalsInterface  A,aTwig_ExistsLoaderInterface 9,aTwig_CompilerInterface 3,aTwig_CacheInterface ?,`Twig_TokenParserInterface% K,`Twig_TokenParserBrokerInterface 1,`Twig_TestInterface  A,`Twig_TestCallableInterface 9,`Twig_TemplateInterface* U,`Twig_Sandbox_SecurityPolicyInterface 5,`Twig_ParserInterface ?,`Twig_NodeVisitorInterface =,`Twig_NodeOutputInterface 1,`Twig_NodeInterface 5,`Twig_LoaderInterface 3,`Twig_LexerInterface 9,`Twig_FunctionInterface$ I,`Twig_FunctionCallableInterface
 5,`Twig_FilterInterface"	 E,`Twig_FilterCallableInterface ;,`Twig_ExtensionInterface) S,`Twig_Extension_InitRuntimeInterface% K,`Twig_Extension_GlobalsInterface  A,`Twig_ExistsLoaderInterface 9,`Twig_CompilerInterface 3,`Twig_CacheInterface ;,_ResponseReaderInterface =,_ResponseHandlerInterface  /,_ProtocolInterface! C,_ComposableProtocolInterface ~ A,_CommandSerializerInterface} 9,^ServerProfileInterface| ?,]PipelineExecutorInterface{ +,\OptionInterfacez 9,\ClientOptionsInterfacey ?,[SingleConnectionInterface$x I,[ReplicationConnectionInterface#w G,[ConnectionParametersInterfacev 3,[ConnectionInterface u A,[ConnectionFactoryInterface#t G,[ComposableConnectionInterface   | |fN.tV8_:eBlJ/





l
P
2
					f	?	tS4}]<mP:z\8kN1cI7jR;aI.      %f K,ConfigurationExtensionInterfacee 1,ExceptionInterfaced +,DumperInterfacec =,TaggedContainerInterfaceb ),ScopeInterface&a M,IntrospectableContainerInterface` 1,ContainerInterface_ ;,ContainerAwareInterface^ ;,RepeatablePassInterface] 7,CompilerPassInterface\ ),StyleInterface[ +,OutputInterfaceZ 9,ConsoleOutputInterfaceY ),InputInterfaceX 3,InputAwareInterfaceW +,HelperInterface#V G,OutputFormatterStyleInterfaceU =,OutputFormatterInterfaceT 3,DescriptorInterfaceS ,ValidatorR /,ResourceInterfaceQ ;,LoaderResolverInterfaceP +,LoaderInterfaceO 9,PrototypeNodeInterfaceN ',NodeInterfaceM 9,ConfigurationInterface#L G,ParentNodeDefinitionInterfaceK 3,NodeParentInterfaceJ 5,FileLocatorInterfaceI 5,ConfigCacheInterface!H C,ConfigCacheFactoryInterface
G ,IBarF ',SomeInterfaceE !,GInterfaceD !,CInterfaceC =,DateRangeFilterInterfaceB =,DateRangeFilterInterfaceA 7,TwigRendererInterface!@ C,TwigRendererEngineInterface? 7,TwigRendererInterface!> C,TwigRendererEngineInterface= 7,TokenStorageInterface< ;,TokenGeneratorInterface; ?,CsrfTokenManagerInterface: 7,SecureRandomInterface9 7,UserProviderInterface8 ',UserInterface7 5,UserCheckerInterface6 1,EquatableInterface5 7,AdvancedUserInterface4 =,SecurityContextInterface3 ',RoleInterface2 9,RoleHierarchyInterface1 1,ExceptionInterface"0 E,UserPasswordEncoderInterface/ =,PasswordEncoderInterface. ;,EncoderFactoryInterface- 7,EncoderAwareInterface, ),VoterInterface#+ G,AuthorizationCheckerInterface$* I,AccessDecisionManagerInterface) ),TokenInterface( 7,TokenStorageInterface' 9,TokenProviderInterface& =,PersistentTokenInterface%% K,AuthenticationProviderInterface%$ K,SimplePreAuthenticatorInterface&# M,SimpleFormAuthenticatorInterface"" E,SimpleAuthenticatorInterface*! U,AuthenticationTrustResolverInterface$  I,AuthenticationManagerInterface 7,TokenStorageInterface ;,TokenGeneratorInterface ?,CsrfTokenManagerInterface) S,ConstraintViolationBuilderInterface 1,ValidatorInterface" E,ContextualValidatorInterface 7,StaticLoaderInterface 3,LegacyClassMetadata +,EntityInterface +,LoaderInterface =,MetadataFactoryInterface ?,PropertyMetadataInterface /,MetadataInterface 9,ClassMetadataInterface ),CacheInterface 1,ExceptionInterface ?,ExecutionContextInterface& M,ExecutionContextFactoryInterface 1,ValidatorInterface ?,ValidatorBuilderInterface  A,ValidationVisitorInterface
 ?,PropertyMetadataInterface(	 Q,PropertyMetadataContainerInterface  A,ObjectInitializerInterface /,MetadataInterface =,MetadataFactoryInterface$ I,GroupSequenceProviderInterface% K,GlobalExecutionContextInterface ?,ExecutionContextInterface& M,ConstraintViolationListInterface" E,ConstraintViolationInterface"  E,ConstraintValidatorInterface) S,ConstraintValidatorFactoryInterface~ 3,ClassBasedInterface} =,~OptionsResolverInterface| ,~Options{ 1,}ExceptionInterfacez ;,|ResourceBundleInterfacey 7,|RegionBundleInterfacex 7,|LocaleBundleInterfacew ;,|LanguageBundleInterfacev ;,|CurrencyBundleInterfaceu 1,{ExceptionInterfacet 7,zBundleWriterInterfaces 7,yBundleReaderInterface r A,yBundleEntryReaderInterfaceq ;,xBundleCompilerInterfacep +,wAuthorInterfaceo ',vFormInterfacen 5,vFormBuilderInterfacem =,uViolationMapperInterface l A,tFormDataExtractorInterface k A,tFormDataCollectorInterface    oE$}bJ(	kN8eL3zX?1





q
U
<
#
					u	\	?	vZC%x\@(iI4}T.~^> nN.mV3[2       j 1-ExceptionInterface&i M-SharedListenerAggregateInterface!h C-SharedEventManagerInterface&g M-SharedEventManagerAwareInterface(f Q-SharedEventAggregateAwareInterface e A-ListenerAggregateInterfaced 9-EventsCapableInterfacec 7-EventManagerInterface b A-EventManagerAwareInterfacea )-EventInterface` --EmitterInterface_ 1-ExceptionInterface^ ;-SessionStorageInterface] --SessionInterface\ 3-SessionBagInterface[ /- FlashBagInterfaceZ 7,AttributeBagInterfaceY ;,SessionHandlerInterfaceX ;,RequestMatcherInterfaceW =,MimeTypeGuesserInterfaceV ?,ExtensionGuesserInterfaceU ;,SessionStorageInterfaceT -,SessionInterfaceS 3,SessionBagInterfaceR /,FlashBagInterfaceQ 7,AttributeBagInterfaceP ;,SessionHandlerInterfaceO ;,RequestMatcherInterfaceN =,MimeTypeGuesserInterfaceM ?,ExtensionGuesserInterface$L I,PHPUnit_Runner_TestSuiteLoader$K I,PHPUnit_Framework_TestListenerJ 9,PHPUnit_Framework_Test#I G,PHPUnit_Framework_SkippedTest&H M,PHPUnit_Framework_SelfDescribing!G C,PHPUnit_Framework_RiskyTest&F M,PHPUnit_Framework_IncompleteTestE /,PHPUnit_ExceptionD -,ScannerInterfaceC 3,ReflectionInterfaceB 1,ExceptionInterfaceA %,TagInterface@ ;,PhpDocTypedTagInterface? 1,PrototypeInterface> ?,PrototypeGenericInterface= 3,TraitUsageInterface< 1,GeneratorInterface; 1,ExceptionInterface: %,TagInterface9 1,ExceptionInterface8 +,ParserInterface7 3,AnnotationInterface6 3,FooServiceInterface5 3,BazServiceInterface4 ',BaseInterface3 ;,ProxyGeneratorInterface2 7,VirtualProxyInterface1 5,ValueHolderInterface0 ;,SmartReferenceInterface/ 7,RemoteObjectInterface. ),ProxyInterface- 3,NullObjectInterface, 5,LazyLoadingInterface+ 5,GhostObjectInterface"* E,FallbackValueHolderInterface ) A,AccessInterceptorInterface!( C,ClassNameInflectorInterface ' A,GeneratorStrategyInterface& 5,FileLocatorInterface% -,AdapterInterface$ 1,ExceptionInterface# 3,AutoloaderInterface" -,DefinitionSource! ?,ChainableDefinitionSource  =,CallableDefinitionSource 1,DefinitionResolver -,DefinitionHelper -,DefinitionDumper 3,MergeableDefinition !,Definition 3,CacheableDefinition -,InvokerInterface -,FactoryInterface 1,ContainerInterface ',MultiGetCache ),FlushableCache ),ClearableCache ,Cache -,DefinitionSource ?,ChainableDefinitionSource =,CallableDefinitionSource 1,DefinitionResolver -,DefinitionHelper -,DefinitionDumper 3,MergeableDefinition !,Definition
 3,CacheableDefinition	 -,InvokerInterface -,FactoryInterface 1,ContainerInterface 1,ResponderInterface /,TemplateInterface -,MatcherInterface 1,FormatterInterface 5,SuiteLoaderInterface +,RunnerInterface  /,ReporterInterface ',TestInterface~ 5,SuiteLoaderInterface} +,RunnerInterface| /,ReporterInterface{ ',TestInterfacez 1,ExceptionInterfacey 3,TranslatorInterfacex 9,TranslatorBagInterfacew 9,MetadataAwareInterfacev ?,MessageCatalogueInterfaceu +,LoaderInterfacet 1,ExtractorInterfaces 1,ExceptionInterfacer +,DumperInterfaceq 1,OperationInterfacep 5,IOExceptionInterfaceo 1,ExceptionInterfacen =,EventSubscriberInterfacem =,EventDispatcherInterface'l O,TraceableEventDispatcherInterfacek 7,ParameterBagInterfacej +,DumperInterfacei 7,InstantiatorInterfaceh ?,PrependExtensionInterfaceg 1,ExtensionInterface   1 oV5 vV7zW7v]F1vaM?.





|
[
B
#
					}	h	P	5		 gN3}cU>'h@oQ8sT;~ZB%qP0lO1                   u 7-^InlineParserInterfacet 5-^BlockParserInterfaces 5-]NodeVisitorInterface!r C-]InlineNodeAcceptorInterfaceq 7-\InlineParserInterfacep 5-\BlockParserInterface!o C-[InlineNodeAcceptorInterface!n C-ZConfigurationAwareInterfacem ;-YInlineRendererInterfacel =-XInlineProcessorInterfacek 7-WInlineParserInterfacej 1-VExtensionInterfacei ?-UEnvironmentAwareInterfaceh =-UElementRendererInterfaceg --UContextInterfacef 9-TBlockRendererInterfacee 5-SBlockParserInterfaced +-RInlineContainer!c C-QConfigurationAwareInterfaceb ;-PInlineRendererInterfacea =-OInlineProcessorInterface` 7-NInlineParserInterface_ 1-MExtensionInterface^ ?-LEnvironmentAwareInterface] =-LElementRendererInterface\ --LContextInterface[ 9-KBlockRendererInterfaceZ 5-JBlockParserInterfaceY +-IInlineContainerX =-HOptionsResolverInterfaceW 1-GExceptionInterfaceV /-FRendererInterfaceU 9-FRendererAwareInterfaceT 1-EExtensionInterfaceS --DEmitterInterfaceR 7-DEmitterAwareInterfaceQ /-CRendererInterfaceP 9-CRendererAwareInterfaceO 1-BExtensionInterfaceN --AEmitterInterfaceM 7-AEmitterAwareInterfaceL /->MarkdownInterface)K S*XTwig_Extension_InitRuntimeInterface%J K*XTwig_Extension_GlobalsInterfaceI 3*XTwig_CacheInterfaceH 9-=MoufValidatorInterface"G E-=MoufStaticValidatorInterfaceF 5-<ParserCacheInterface)E S-;ExpressionFunctionProviderInterfaceD '-:MultiGetCacheC )-:FlushableCacheB )-:ClearableCacheA -:Cache@ /-9RepositoryFactory? !-8TreeWalker> -7Proxy= '-6QuoteStrategy< )-6NamingStrategy; 9-6EntityListenerResolver: !-6Annotation9 9-5EntityManagerInterface8 )-4ValueInterface7 1-3ExceptionInterface6 --2AdapterInterface5 3-1TranslatorInterface4 1-0ExtensionInterface3 +-/ParserInterface2 --.HandlerInterface1 '--NodeInterface0 1-,ExceptionInterface/ 5-+CurlFactoryInterface. +-*GuzzleException- 1-)CookieJarInterface, +-(ClientInterface+ %-'FileDetector* '-'ExecuteMethod) 9-&WebDriverTargetLocator( 9-&WebDriverSearchContext' )-&WebDriverMouse& /-&WebDriverKeyboard% =-&WebDriverHasInputDevices$ 9-&WebDriverEventListener# --&WebDriverElement" =-&WebDriverCommandExecutor! 7-&WebDriverCapabilities  +-&WebDriverAction -&WebDriver 1-&JavaScriptExecutor 1-%WebDriverLocatable 5-$WebDriverTouchScreen )-ScenarioDriven -Reported -Plain #-Descriptive %-Configurable )-ConsolePrinter	 -Web 7-SupportsDomainRouting +-SessionSnapshot +-ScreenshotSaver -Remote -Queue %-PartedModule +-PageSourceSaver %-MultiSession )-ElementLocator --DoctrineProvider
 +-DependsOnModule	 -Db 3-ConflictsWithModule %-ActiveRecord --WebDriverElement 9-StringWrapperInterface /-StrategyInterface 1-ExceptionInterface ;-NamingStrategyInterface  A-HydratingIteratorInterface  =-StrategyEnabledInterface$ I-NamingStrategyEnabledInterface~ =-HydratorOptionsInterface} /-HydratorInterface| 9-HydratorAwareInterface{ 1-HydrationInterfacez 9-FilterEnabledInterfacey ;-FilterProviderInterfacex +-FilterInterfacew 3-ExtractionInterfacev 1-ExceptionInterfaceu =-
MergeReplaceKeyInterfacet /-	ResponseInterfaces --	RequestInterfacer 3-	ParametersInterfaceq =-	ParameterObjectInterfacep --	MessageInterfaceo --	JsonSerializablen 9-	InitializableInterfacem 7-	DispatchableInterface l A-	ArraySerializableInterfacek +-FilterInterface   5 jN7 {`Fd=
nR7nW-





n
V
A

						}	c	K	6	 	ucK0iG,
xbB)dM<)fJ4	fD"qT; gO5                  /-KeywordsInterface +-FilterInterface 9-FeatureFilterInterface  9-ComplexFilterInterface -Exception~ )-CacheInterface} )-PipesInterface| 1-ExceptionInterface{ --WrapperInterfacez ?-SubjectContainerInterfacey --ThrowExpectationx 5-ExpectationInterfacew 9-SpecificationInterfacev 3-MaintainerInterfaceu ;-ShutdownActionInterfacet -ReRunners =-PlatformSpecificReRunner!r C-SuitePrerequisitesInterfaceq ?-ExecutionContextInterfacep ?-MatchersProviderInterfaceo --MatcherInterfacen =-ResourceManagerInterfacem =-ResourceLocatorInterfacel /-ResourceInterfacek '-TypeHintIndexj +-SpecTransformeri #-IOInterfaceh )-ValuePresenterg '-TypePresenterf 3-StringTypePresentere 9-ExceptionTypePresenterd 1-PresenterInterfacec -Presenterb ?-PhpSpecExceptionPresentera 1-ExceptionPresenter` ?-ExceptionElementPresenter_ +-EngineInterface^ !-ReportItem] -Template\ )-FatalPresenter[ 1-ExtensionInterfaceZ )-EventInterfaceY -PrompterX !-CodeWriterW 1-GeneratorInterfaceV --TypeHintRewriterU /-NamespaceResolverT =-AccessInspectorInterfaceS --ExampleInterfaceR ;-ShutdownActionInterfaceQ '-TypeHintIndexP +_SpecTransformerO )-ValuePresenterN '-TypePresenterM 3-StringTypePresenterL 9-ExceptionTypePresenterK \PresenterJ ?-~PhpSpecExceptionPresenterI 1-~ExceptionPresenterH ?-~ExceptionElementPresenterG )YFatalPresenterF -ITypeHintRewriterE /INamespaceResolverD =IAccessInspectorInterfaceC %-}RegexpEngineB +-}SelectorScannerA /-}SelectorContainer@ %-}FileSelector? 1-}ExtendFileSelector> +-}Parameterizable= -}Condition< '-}TaskContainer; 1-}CustomChildCreator: )-}FileNameMapper9 ?-}StreamRequiredBuildLogger8 %-}InputHandler7 +-}ChainableReader6 #-}BuildLogger5 '-}BuildListener4 %-|RegexpEngine3 +-|SelectorScanner2 /-|SelectorContainer1 %-|FileSelector0 1-|ExtendFileSelector/ +-|Parameterizable. -|Condition- '-|TaskContainer, 1-|CustomChildCreator+ )-|FileNameMapper* ?-|StreamRequiredBuildLogger) %-|InputHandler( +-|ChainableReader' #-|BuildLogger& '-|BuildListener% 1-{ExceptionInterface$ 5-zIOExceptionInterface# 1-zExceptionInterface" =-yEventSubscriberInterface! =-yEventDispatcherInterface'  O-xTraceableEventDispatcherInterface )-wStyleInterface +-vOutputInterface 9-vConsoleOutputInterface )-uInputInterface 3-uInputAwareInterface +-tHelperInterface# G-sOutputFormatterStyleInterface =-sOutputFormatterInterface 1-rExceptionInterface 3-qDescriptorInterface 5-pTransformerInterface )-oFixerInterface +-oFinderInterface +-oConfigInterface 5-oConfigAwareInterface 1-nExceptionInterface -mException =-lLongestCommonSubsequence$ I-kPHPUnit_Runner_TestSuiteLoader$ I-kPHPUnit_Framework_TestListener 9-kPHPUnit_Framework_Test#
 G-kPHPUnit_Framework_SkippedTest&	 M-kPHPUnit_Framework_SelfDescribing! C-kPHPUnit_Framework_RiskyTest& M-kPHPUnit_Framework_IncompleteTest /-kPHPUnit_Exception 1-jExceptionInterface !-iRenderable -hAtRule =-gOptionsResolverInterface -gOptions  1-fExceptionInterface )-eStyleInterface~ +-dOutputInterface} 9-dConsoleOutputInterface| )-cInputInterface{ 3-cInputAwareInterfacez +-bHelperInterface#y G-aOutputFormatterStyleInterfacex =-aOutputFormatterInterfacew 1-`ExceptionInterfacev 3-_DescriptorInterface   $ eG(eD(v\6$]F%oW9&




q
Y
>
#
					w	\	D	'	cP="{X@fJ1a>z^F*uI,kL6lF$                           ?-ExtensionGuesserInterface# G"SelfCheckingResourceInterface ="ResourceCheckerInterface -Validator#  G-SelfCheckingResourceInterface /-ResourceInterface~ ;-LoaderResolverInterface} +-LoaderInterface| 9-PrototypeNodeInterface{ '-NodeInterfacez 9-ConfigurationInterface#y G-ParentNodeDefinitionInterfacex 3-NodeParentInterfacew =-ResourceCheckerInterfacev 5-FileLocatorInterfaceu 5-ConfigCacheInterface!t C-ConfigCacheFactoryInterfaces 5-ParserCacheInterface)r S-ExpressionFunctionProviderInterfaceq 3-DeprecatedInterface p A-FatalErrorHandlerInterfaceo ;-SessionHandlerInterfacen =-ProfilerStorageInterfacem +-LoggerInterfacel 5-DebugLoggerInterfacek 3-TerminableInterfacej +-KernelInterfacei 3-HttpKernelInterfaceh 1-SurrogateInterfaceg )-StoreInterface$f I-ResponseCacheStrategyInterface'e O-EsiResponseCacheStrategyInterfaced ?-FragmentRendererInterfacec 9-HttpExceptionInterface b A-LateDataCollectorInterfacea 9-DataCollectorInterface!` C-ControllerResolverInterface_ /-WarmableInterface^ 5-CacheWarmerInterface] 7-CacheClearerInterface\ +-BundleInterface[ ;-SessionStorageInterfaceZ --SessionInterfaceY 3-SessionBagInterfaceX /-FlashBagInterfaceW 7-AttributeBagInterfaceV ;-RequestMatcherInterfaceU =-MimeTypeGuesserInterfaceT ?-ExtensionGuesserInterfaceS 3-DeprecatedInterface R A-FatalErrorHandlerInterfaceQ +-ResultInterface P A-Neo4jHttpResponseInterfaceO +-ResultInterface N A-Neo4jHttpResponseInterfaceM =-EventSubscriberInterfaceL =-EventDispatcherInterface'K O-TraceableEventDispatcherInterfaceJ 1-CollisionInterfaceI !-EInterfaceH !-DInterface"G E*ResettableContainerInterface#F G*SelfCheckingResourceInterfaceE =*ResourceCheckerInterfaceD --HandlerInterface!C C-ActivationStrategyInterfaceB 1-FormatterInterfaceA 5-CurlFactoryInterface@ +-GuzzleException? 1-CookieJarInterface> +-ClientInterface= 3-TranslatorInterface< 9-TranslatorBagInterface; 9-MetadataAwareInterface: ?-MessageCatalogueInterface9 +-LoaderInterface8 1-ExtractorInterface7 1-ExceptionInterface6 +-DumperInterface5 1-OperationInterface4 =-EventSubscriberInterface3 =-EventDispatcherInterface'2 O-TraceableEventDispatcherInterface1 1-CollisionInterface0 !-EInterface/ !-DInterface. 7-ParameterBagInterface- +-DumperInterface, 7-InstantiatorInterface+ ?-PrependExtensionInterface* 1-ExtensionInterface%) K-ConfigurationExtensionInterface( 1-ExceptionInterface' +-DumperInterface& =-TaggedContainerInterface% )-ScopeInterface"$ E-ResettableContainerInterface&# M-IntrospectableContainerInterface" 1-ContainerInterface! ;-ContainerAwareInterface  ;-RepeatablePassInterface 7-CompilerPassInterface -Validator# G-SelfCheckingResourceInterface /-ResourceInterface ;-LoaderResolverInterface +-LoaderInterface 9-PrototypeNodeInterface '-NodeInterface 9-ConfigurationInterface# G-ParentNodeDefinitionInterface 3-NodeParentInterface =-ResourceCheckerInterface 5-FileLocatorInterface 5-ConfigCacheInterface! C-ConfigCacheFactoryInterface
 -IBar '-SomeInterface !-GInterface !-CInterface 3-TaggedNodeInterface 9-StepContainerInterface
 7-ScenarioLikeInterface	 /-ScenarioInterface '-NodeInterface 5-KeywordNodeInterface /-ArgumentInterface +-LoaderInterface 3-FileLoaderInterface   b kR2uS5nYE5vcO@.vbSD8)








v
h
P
9
%

							n	]	J	2		gP+_E-r^O<'gF lV=%
{dB!tT<b                            # 9.YHttpExceptionInterface " A.XLateDataCollectorInterface! 9.XDataCollectorInterface!  C.WControllerResolverInterface /.VWarmableInterface 5.VCacheWarmerInterface 7.UCacheClearerInterface +.TBundleInterface ;.SSessionStorageInterface -.RSessionInterface 3.RSessionBagInterface /.QFlashBagInterface 7.PAttributeBagInterface ;.OSessionHandlerInterface ;.NRequestMatcherInterface =.MMimeTypeGuesserInterface ?.MExtensionGuesserInterface ).LValueInterface 1.KExceptionInterface -.JAdapterInterface 3.IDeprecatedInterface  A.HFatalErrorHandlerInterface 3.GTranslatorInterface 1.FExtensionInterface +.EParserInterface
 -.DHandlerInterface	 '.CNodeInterface 1.BExceptionInterface ).AStyleInterface +.@OutputInterface 9.@ConsoleOutputInterface ).?InputInterface 3.?InputAwareInterface +.>HelperInterface# G.=OutputFormatterStyleInterface  =.=OutputFormatterInterface 3.<DescriptorInterface~ ).;PresenterAware} .:Readline| #.9OutputPager{ .8Formatterz .7Exceptiony %.6ContextAwarex /.4TestCaseInterfacew %.3FunctionLikev %.2Unserializeru !.2Serializert .2Parsers #.2NodeVisitorr 9.2NodeTraverserInterface
q .2Nodep .2Buildero './ReadInterfacen +./PluginInterfacem 3./FilesystemInterfacel -./AdapterInterfacek 3. ViewFinderInterfacej +.EngineInterfacei /.CompilerInterfaceh ?.PresenceVerifierInterfaceg +.LoaderInterfacef -.SessionInterfacee ;.ExistenceAwareInterfaced 1.ValidatorInterface c A.FailedJobProviderInterfaceb 1.ConnectorInterface"a E.MigrationRepositoryInterface` ).ScopeInterface_ 1.ConnectorInterface!^ C.ConnectionResolverInterface] 3.ConnectionInterface
\ .View[ .FactoryZ .ValidatorY 7.ValidatesWhenResolvedX .FactoryW !.RenderableV +.MessageProviderU !.MessageBagT .JsonableS .HtmlableR .ArrayableQ #.UrlRoutableP %.UrlGeneratorO 5.TerminableMiddlewareN +.ResponseFactoryM .RegistrarL !.MiddlewareK .DatabaseJ #.ShouldQueueI ).ShouldBeQueuedH +.QueueableEntityG .QueueF .Monitor	E .JobD .FactoryC ).EntityResolverB .Pipeline	A .Hub@ .Presenter? .Paginator> 5.LengthAwarePaginator= .MailQueue< .Mailer	; .
Log: .	Kernel9 .Hasher8 #.Application7 !.Filesystem6 .Factory5 .Cloud4 !.Dispatcher3 .Encrypter2 -.ExceptionHandler1 +.QueueingFactory0 .Factory/ =.ContextualBindingBuilder. .Container- . Kernel, #. Application+ !-Repository* -Store) !-Repository( -Factory' %-SelfHandling& 1-QueueingDispatcher% +-HandlerResolver$ !-Dispatcher# 1-ShouldBroadcastNow" +-ShouldBroadcast! -Factory  #-Broadcaster %-UserProvider -Registrar )-PasswordBroker -Guard --CanResetPassword +-Authenticatable
 -Gate %-Authorizable =-TokenRepositoryInterface 3-SerializerInterface 7-SuperClosureException ?-VisitorExceptionInterface /-TestCaseInterface #-RouteParser !-Dispatcher '-DataGenerator 1-CollisionInterface !-EInterface !-DInterface" E"ResettableContainerInterface ;-SessionStorageInterface
 --SessionInterface	 3-SessionBagInterface /-FlashBagInterface 7-AttributeBagInterface ;-RequestMatcherInterface =-MimeTypeGuesserInterface   . v[?'h> |W8 }^?#cNA) 





{
f
R
B
*
								t	e	S	2	"	
xi]N<uaP>&{]K;.nbV<Z3VY![G.        2 -.AnotherInterface1 #.AnInterface-0 [.PHPUnit_Framework_MockObject_Verifiable'/ O.PHPUnit_Framework_MockObject_Stub9. s.PHPUnit_Framework_MockObject_Stub_MatcherCollection-- [.PHPUnit_Framework_MockObject_MockObject5, k.PHPUnit_Framework_MockObject_Matcher_Invocation,+ Y.PHPUnit_Framework_MockObject_Invokable-* [.PHPUnit_Framework_MockObject_Invocation,) Y.PHPUnit_Framework_MockObject_Exception/( _.PHPUnit_Framework_MockObject_Builder_Stub:' u.PHPUnit_Framework_MockObject_Builder_ParametersMatch4& i.PHPUnit_Framework_MockObject_Builder_Namespace:% u.PHPUnit_Framework_MockObject_Builder_MethodNameMatch0$ a.PHPUnit_Framework_MockObject_Builder_Match3# g.PHPUnit_Framework_MockObject_Builder_Identity$" I.PHPUnit_Runner_TestSuiteLoader$! I.PHPUnit_Framework_TestListener  9.PHPUnit_Framework_Test# G.PHPUnit_Framework_SkippedTest& M.PHPUnit_Framework_SelfDescribing! C.PHPUnit_Framework_RiskyTest& M.PHPUnit_Framework_IncompleteTest /.PHPUnit_Exception	 .Foo	 .Bor  A.PHP_CodeCoverage_Exception ;.PHP_CodeCoverage_Driver !.TypeFilter .Matcher .Filter ).ValueInterface 1.ExceptionInterface -.AdapterInterface
 .View .Factory .Validator 7.ValidatesWhenResolved .Factory !.Renderable
 +.MessageProvider	 !.MessageBag .Jsonable .Htmlable .Arrayable #.UrlRoutable %.UrlGenerator +.ResponseFactory .Registrar .Database  #.ShouldQueue +.QueueableEntity~ .Queue} .Monitor	| .Job{ .Factoryz ).EntityResolvery .Pipeline	x .Hubw .Presenterv .Paginatoru 5.LengthAwarePaginatort .MailQueues .Mailer	r .Logq .Kernelp .Hashero #.Applicationn !.Filesystemm .Factoryl .Cloudk !.Dispatcherj .Encrypteri -.~ExceptionHandlerh +.}QueueingFactoryg .}Factoryf =.|ContextualBindingBuildere .|Containerd .{Kernelc #.{Applicationb !.zRepositorya .yStore` !.yRepository_ .yFactory^ %.xSelfHandling] 1.xQueueingDispatcher\ !.xDispatcher[ 1.wShouldBroadcastNowZ +.wShouldBroadcastY .wFactoryX #.wBroadcasterW %.vUserProviderV /.vSupportsBasicAuthU '.vStatefulGuardT .vRegistrarS 7.vPasswordBrokerFactoryR ).vPasswordBrokerQ .vGuardP .vFactoryO -.vCanResetPasswordN +.vAuthenticatable
M .uGateL %.uAuthorizableK 5.rHtmlBuilderInterfaceJ 5.rFormBuilderInterfaceI 5.pHtmlBuilderInterfaceH 5.pFormBuilderInterfaceG 3.nDataDumperInterfaceF +.mDumperInterfaceE +.mClonerInterfaceD 3.lTranslatorInterfaceC 9.lTranslatorBagInterfaceB 9.lMetadataAwareInterfaceA ?.lMessageCatalogueInterface@ +.kLoaderInterface? 1.jExtractorInterface> 1.iExceptionInterface= +.hDumperInterface< 1.gOperationInterface; +.fRouterInterface: 9.fRouteCompilerInterface"9 E.fRequestContextAwareInterface8 3.eUrlMatcherInterface7 ;.eRequestMatcherInterface%6 K.eRedirectableUrlMatcherInterface5 9.dMatcherDumperInterface4 =.cGeneratorDumperInterface3 7.bUrlGeneratorInterface'2 O.bConfigurableRequirementsInterface1 1.aExceptionInterface0 ).`PipesInterface/ 1._ExceptionInterface. =.^ProfilerStorageInterface- +.]LoggerInterface, 5.]DebugLoggerInterface+ 3.\TerminableInterface* +.\KernelInterface) 3.\HttpKernelInterface( 1.[SurrogateInterface' ).[StoreInterface$& I.[ResponseCacheStrategyInterface'% O.[EsiResponseCacheStrategyInterface$ ?.ZFragmentRendererInterface   } sS0$gJ2qK3 kP'yW9!





j
L
1
						k	O	3	rJ#xU3|b@uI.hL0zU8}[>jO6             $/ I.AvailableSpaceCapableInterface. -.PatternInterface- 1.ExceptionInterface, ?.Twig_TokenParserInterface%+ K.Twig_TokenParserBrokerInterface* 1.Twig_TestInterface ) A.Twig_TestCallableInterface( 9.Twig_TemplateInterface*' U.Twig_Sandbox_SecurityPolicyInterface& 5.Twig_ParserInterface% ?.Twig_NodeVisitorInterface$ =.Twig_NodeOutputInterface# 1.Twig_NodeInterface" 5.Twig_LoaderInterface! 3.Twig_LexerInterface  9.Twig_FunctionInterface$ I.Twig_FunctionCallableInterface 5.Twig_FilterInterface" E.Twig_FilterCallableInterface ;.Twig_ExtensionInterface) S.Twig_Extension_InitRuntimeInterface% K.Twig_Extension_GlobalsInterface  A.Twig_ExistsLoaderInterface 9.Twig_CompilerInterface 3.Twig_CacheInterface 3.TranslatorInterface 9.TranslatorBagInterface 9.MetadataAwareInterface ?.MessageCatalogueInterface +.LoaderInterface 1.ExtractorInterface 1.ExceptionInterface +.DumperInterface 1.OperationInterface) S.ConstraintViolationBuilderInterface 1.ValidatorInterface" E.ContextualValidatorInterface
 7.StaticLoaderInterface	 3.LegacyClassMetadata +.EntityInterface +.LoaderInterface =.MetadataFactoryInterface ?.PropertyMetadataInterface /.MetadataInterface 9.ClassMetadataInterface ).CacheInterface 1.ExceptionInterface  ?.ExecutionContextInterface& M.ExecutionContextFactoryInterface~ 1.ValidatorInterface} ?.ValidatorBuilderInterface | A.ValidationVisitorInterface{ ?.PropertyMetadataInterface(z Q.PropertyMetadataContainerInterface y A.ObjectInitializerInterfacex /.MetadataInterfacew =.MetadataFactoryInterface$v I.GroupSequenceProviderInterface%u K.GlobalExecutionContextInterfacet ?.ExecutionContextInterface&s M.ConstraintViolationListInterface"r E.ConstraintViolationInterface"q E.ConstraintValidatorInterface)p S.ConstraintValidatorFactoryInterfaceo 3.ClassBasedInterfacen 3.TranslatorInterfacem 9.TranslatorBagInterfacel 9.MetadataAwareInterfacek ?.MessageCatalogueInterfacej +.LoaderInterfacei 1.ExtractorInterfaceh 1.ExceptionInterfaceg +.DumperInterfacef 1.OperationInterfacee 7.UriRetrieverInterfaced 3.ConstraintInterfacec ).PipesInterfaceb 1.ExceptionInterfacea ).ValueInterface` 1.ExceptionInterface_ -.AdapterInterface^ 7.ParameterBagInterface] +.DumperInterface\ 7.InstantiatorInterface[ ?.PrependExtensionInterfaceZ 1.ExtensionInterface%Y K.ConfigurationExtensionInterfaceX 1.ExceptionInterfaceW +.DumperInterfaceV =.TaggedContainerInterfaceU ).ScopeInterface&T M.IntrospectableContainerInterfaceS 1.ContainerInterfaceR ;.ContainerAwareInterfaceQ ;.RepeatablePassInterfaceP 7.CompilerPassInterfaceO +.OutputInterfaceN 9.ConsoleOutputInterfaceM ).InputInterfaceL 3.InputAwareInterfaceK +.HelperInterface#J G.OutputFormatterStyleInterfaceI =.OutputFormatterInterfaceH 3.DescriptorInterfaceG 5.IOExceptionInterfaceF 1.ExceptionInterfaceE .ValidatorD /.ResourceInterfaceC ;.LoaderResolverInterfaceB +.LoaderInterfaceA 5.FileLocatorInterface@ 9.PrototypeNodeInterface? '.NodeInterface> 9.ConfigurationInterface#= G.ParentNodeDefinitionInterface< 3.NodeParentInterface; 1.ExceptionInterface	: .Foo	9 .Bor 8 A.PHP_CodeCoverage_Exception7 ;.PHP_CodeCoverage_Driver"6 E.TraversableMockTestInterface5 /.MockTestInterface4 ?.InterfaceWithStaticMethod)3 S.InterfaceWithSemiReservedMethodName   " lR5oP-qY>#
gE,}b?!




z
`
?
$
					w	]	<	aF+}bF(v[B)~c>dG$tT9 y^C(sX="                      1 1/ExceptionInterface0 1/ExceptionInterface/ 1/ExceptionInterface. +/StreamInterface- -/AdapterInterface, 1/SymmetricInterface+ -/PaddingInterface* 1/ExceptionInterface) 1/ExceptionInterface( //PasswordInterface' 1/ExceptionInterface& 1/ExceptionInterface% 1/
ExceptionInterface$ -/EmitterInterface# 1/ExceptionInterface" 1/TokenTypeInterface! =/UserCredentialsInterface  )/ScopeInterface 7/RefreshTokenInterface 1/PublicKeyInterface 1/JwtBearerInterface ;/JwtAccessTokenInterface +/ClientInterface  A/ClientCredentialsInterface  A/AuthorizationCodeInterface 5/AccessTokenInterface )/ScopeInterface 7/ResponseTypeInterface  A/AuthorizationCodeInterface 5/AccessTokenInterface 3/UserClaimsInterface  A/AuthorizationCodeInterface 7/IdTokenTokenInterface -/IdTokenInterface 5/CodeIdTokenInterface  A/AuthorizationCodeInterface! C/ UserInfoControllerInterface" E/ AuthorizeControllerInterface 1.GrantTypeInterface
 3.EncryptionInterface	 =.TokenControllerInterface! C.ResourceControllerInterface" E.AuthorizeControllerInterface" E.ClientAssertionTypeInterface -.vfsStreamVisitor -.vfsStreamContent 1.vfsStreamContainer #.FileContent -.vfsStreamVisitor  -.vfsStreamContent 1.vfsStreamContainer~ #.FileContent} 3.TranslatorInterface| =.TranslatorAwareInterface{ 7.RemoteLoaderInterfacez 3.FileLoaderInterfacey 1.ExceptionInterfacex +.FilterInterfacew 1.ExceptionInterface"v E.EncryptionAlgorithmInterface#u G.CompressionAlgorithmInterfacet +.WriterInterfaces +.ReaderInterfacer 1.ProcessorInterfaceq 1.ExceptionInterfacep 9.StringWrapperInterfaceo 9.PhpLegacyCompatibilityn /.StrategyInterfacem 1.ExceptionInterfacel ;.NamingStrategyInterfacek =.StrategyEnabledInterface$j I.NamingStrategyEnabledInterfacei =.HydratorOptionsInterfaceh /.HydratorInterfaceg 9.HydratorAwareInterfacef 1.HydrationInterfacee 9.FilterEnabledInterfaced ;.FilterProviderInterfacec +.FilterInterfaceb 3.ExtractionInterfacea 1.ExceptionInterface` =.MergeReplaceKeyInterface_ /.ResponseInterface^ -.RequestInterface] 3.ParametersInterface\ =.ParameterObjectInterface[ -.MessageInterfaceZ -.JsonSerializableY 9.InitializableInterfaceX 7.DispatchableInterface W A.ArraySerializableInterfaceV 1.ExceptionInterface"U E.ServiceManagerAwareInterfaceT ;.ServiceLocatorInterface"S E.ServiceLocatorAwareInterface%R K.MutableCreationOptionsInterfaceQ 5.InitializerInterfaceP -.FactoryInterfaceO ?.DelegatorFactoryInterfaceN +.ConfigInterfaceM =.AbstractFactoryInterfaceL 1.ExceptionInterfaceK -.AdapterInterfaceJ 1.ExceptionInterfaceI 1.ExceptionInterfaceH -.AdapterInterfaceG 1.ExceptionInterfaceF 1.ExceptionInterfaceE +.FilterInterfaceD 1.ExceptionInterface&C M.SharedListenerAggregateInterface!B C.SharedEventManagerInterface&A M.SharedEventManagerAwareInterface(@ Q.SharedEventAggregateAwareInterface ? A.ListenerAggregateInterface> 9.EventsCapableInterface= 7.EventManagerInterface < A.EventManagerAwareInterface; ).EventInterface: +.PluginInterface 9 A.TotalSpaceCapableInterface8 /.TaggableInterface7 -.StorageInterface6 5.OptimizableInterface5 /.IteratorInterface4 /.IterableInterface3 1.FlushableInterface2 7.ClearExpiredInterface1 9.ClearByPrefixInterface0 ?.ClearByNamespaceInterface   { w\C-qD'zcL0gQ5b@





}
X
>
 
						h	M	4		sM#sU0`6v\3zS8!sJ&lJ1gN*                 , 1/IExceptionInterface!+ C/HValidatableAdapterInterface* -/HAdapterInterface) 1/GExceptionInterface"( E/FServiceManagerAwareInterface' ;/FServiceLocatorInterface"& E/FServiceLocatorAwareInterface%% K/FMutableCreationOptionsInterface$ 5/FInitializerInterface# -/FFactoryInterface" ?/FDelegatorFactoryInterface! +/FConfigInterface  =/FAbstractFactoryInterface +/DFilterInterface 1/CExceptionInterface& M/BSharedListenerAggregateInterface" E/BSharedEventsCapableInterface! C/BSharedEventManagerInterface& M/BSharedEventManagerAwareInterface( Q/BSharedEventAggregateAwareInterface  A/BListenerAggregateInterface 9/BEventsCapableInterface 7/BEventManagerInterface  A/BEventManagerAwareInterface )/BEventInterface 1/AExceptionInterface$ I/@PHPUnit_Runner_TestSuiteLoader$ I/@PHPUnit_Framework_TestListener 9/@PHPUnit_Framework_Test# G/@PHPUnit_Framework_SkippedTest& M/@PHPUnit_Framework_SelfDescribing! C/@PHPUnit_Framework_RiskyTest& M/@PHPUnit_Framework_IncompleteTest //@PHPUnit_Exception
 9/?ModuleManagerInterface	 1/>ExceptionInterface =/=ServiceListenerInterface 7/=ConfigMergerInterface! C/<ViewHelperProviderInterface  A/<ValidatorProviderInterface' O/<TranslatorPluginProviderInterface =/<ServiceProviderInterface! C/<SerializerProviderInterface 9/<RouteProviderInterface   A/<LogWriterProviderInterface# G/<LogProcessorProviderInterface ~ A/<LocatorRegisteredInterface"} E/<InputFilterProviderInterface| 7/<InitProviderInterface{ ?/<HydratorProviderInterface"z E/<FormElementProviderInterfacey ;/<FilterProviderInterface"x E/<DependencyIndicatorInterface!w C/<ControllerProviderInterface'v O/<ControllerPluginProviderInterface#u G/<ConsoleUsageProviderInterface$t I/<ConsoleBannerProviderInterfaces ;/<ConfigProviderInterface r A/<BootstrapListenerInterface!q C/<AutoloaderProviderInterfacep 1/;ExceptionInterfaceo +/:WriterInterfacen -/9FirePhpInterfacem 1/8ChromePhpInterfacel 1/7ProcessorInterfacek +/6LoggerInterfacej 5/6LoggerAwareInterfacei 1/5FormatterInterfaceh +/4FilterInterfaceg 1/3ExceptionInterfacef //2ResolverInterfacee 7/1TreeRendererInterfaced //1RendererInterface"c E/0RetrievableChildrenInterfaceb )/0ModelInterfacea ;/0ClearableModelInterface` +//HelperInterface_ +/.HelperInterface^ 1/-ExceptionInterface] 1/,ExceptionInterface#\ G/+UnknownInputsCapableInterface[ ?/+ReplaceableInputInterfaceZ 9/+InputProviderInterfaceY )/+InputInterface"X E/+InputFilterProviderInterfaceW 5/+InputFilterInterfaceV ?/+InputFilterAwareInterfaceU 7/+EmptyContextInterfaceT 1/*ExceptionInterfaceS 3/)LabelAwareInterfaceR '/)FormInterfaceQ ?/)FormFactoryAwareInterface#P G/)FieldsetPrepareAwareInterfaceO //)FieldsetInterface"N E/)ElementPrepareAwareInterfaceM -/)ElementInterface&L M/)ElementAttributeRemovalInterfaceK 3/(RouteStackInterfaceJ )/(RouteInterfaceI )/'RouteInterfaceH 1/&ExceptionInterfaceG )/%RouteInterfaceF ;/$ResponseSenderInterfaceE 1/#ExceptionInterfaceD +/"PluginInterface%C K/!InjectApplicationEventInterfaceB 5/!ApplicationInterface*A U/ ValidatorPluginManagerAwareInterface@ 1/ ValidatorInterface? 3/TranslatorInterface> =/TranslatorAwareInterface= 1/ExceptionInterface< -/AdapterInterface; %/UriInterface: 1/ExceptionInterface9 '/SplAutoloader8 -/ShortNameLocator7 1/PluginClassLocator6 1/ExceptionInterface5 1/ExceptionInterface4 ;/MultipleHeaderInterface3 +/HeaderInterface2 1/ExceptionInterface    nU7tY>$eI1 rW<wiN*




n
X
9
!
					p	Q	'	dJ.dE"y^B*sU4mU1aAeD"{S1                 + //IXlsxCellTemplate* ?/Twig_TokenParserInterface%) K/Twig_TokenParserBrokerInterface( 1/Twig_TestInterface ' A/Twig_TestCallableInterface& 9/Twig_TemplateInterface*% U/Twig_Sandbox_SecurityPolicyInterface$ 5/Twig_ParserInterface# ?/Twig_NodeVisitorInterface" =/Twig_NodeOutputInterface! 1/Twig_NodeInterface  5/Twig_LoaderInterface 3/Twig_LexerInterface 9/Twig_FunctionInterface$ I/Twig_FunctionCallableInterface 5/Twig_FilterInterface" E/Twig_FilterCallableInterface ;/Twig_ExtensionInterface) S/Twig_Extension_InitRuntimeInterface% K/Twig_Extension_GlobalsInterface  A/Twig_ExistsLoaderInterface 9/Twig_CompilerInterface 3/Twig_CacheInterface 7/TwigRendererInterface! C/TwigRendererEngineInterface +/RouterInterface 9/RouteCompilerInterface" E/RequestContextAwareInterface 3/UrlMatcherInterface ;/RequestMatcherInterface% K/RedirectableUrlMatcherInterface 9/MatcherDumperInterface =/GeneratorDumperInterface
 7/UrlGeneratorInterface'	 O/ConfigurableRequirementsInterface 1/ExceptionInterface =/ProfilerStorageInterface +/LoggerInterface 5/DebugLoggerInterface 3/TerminableInterface +/KernelInterface 3/HttpKernelInterface 1/SurrogateInterface  )/StoreInterface$ I/ResponseCacheStrategyInterface'~ O/EsiResponseCacheStrategyInterface} ?/FragmentRendererInterface| 9/HttpExceptionInterface { A/LateDataCollectorInterfacez 9/DataCollectorInterface!y C/ControllerResolverInterfacex //WarmableInterfacew 5/CacheWarmerInterfacev 7/CacheClearerInterfaceu +/~BundleInterfacet ;/}SessionStorageInterfaces -/|SessionInterfacer 3/|SessionBagInterfaceq //{FlashBagInterfacep 7/zAttributeBagInterfaceo ;/yRequestMatcherInterfacen =/xMimeTypeGuesserInterfacem ?/xExtensionGuesserInterfacel =/wEventSubscriberInterfacek =/wEventDispatcherInterface'j O/vTraceableEventDispatcherInterfacei 9/uNonDeprecatedInterfaceh 3/uDeprecatedInterface g A/tFatalErrorHandlerInterfacef /sValidator#e G/rSelfCheckingResourceInterfaced //rResourceInterfacec ;/qLoaderResolverInterfaceb +/qLoaderInterfacea 9/pPrototypeNodeInterface` '/pNodeInterface_ 9/pConfigurationInterface#^ G/oParentNodeDefinitionInterface] 3/oNodeParentInterface\ =/nResourceCheckerInterface[ 5/nFileLocatorInterfaceZ 5/nConfigCacheInterface!Y C/nConfigCacheFactoryInterfaceX 1/mGeneratorInterfaceW /lIUserV //kRendererInterfaceU 1/jContainerInterfaceT +/iRouterInterfaceS 3/iDispatcherInterfaceR //hDebuggerInterfaceQ 7/fTableGatewayInterface!P C/eEventFeatureEventsInterfaceO 1/dExceptionInterfaceN 1/cPredicateInterface M A/bPlatformDecoratorInterfaceL %/aSqlInterfaceK 9/aPreparableSqlInterfaceJ 3/aExpressionInterfaceI 1/`ExceptionInterfaceH %/_SqlInterfaceG 3/^ConstraintInterfaceF +/]ColumnInterfaceE 3/\RowGatewayInterfaceD 1/[ExceptionInterfaceC 1/ZResultSetInterfaceB 1/YExceptionInterfaceA //XMetadataInterface@ 1/WExceptionInterface? //VProfilerInterface> 9/VProfilerAwareInterface= //UPlatformInterface< 1/TExceptionInterface; 1/SExceptionInterface: 9/RDriverFeatureInterface9 1/QStatementInterface8 +/QResultInterface7 +/QDriverInterface6 3/QConnectionInterface!5 C/PStatementContainerInterface4 -/PAdapterInterface3 7/PAdapterAwareInterface2 -/OStorageInterface1 1/NExceptionInterface$0 I/MAuthenticationServiceInterface/ //LResolverInterface. 1/KExceptionInterface- 1/JExceptionInterface   / dI/pT6}b:hFjI6# 




^
9
"
					i	K	3		W9pQ9wX:#`; a?iQ7oR0qO/                                   - ;/MergeValidatorInterface, ?/ConfigFileWriterInterface+ ?/ConfigFileReaderInterface* 5/ToolHandlerInterface) 9/RecursiveToolInterface( ;/ProcessBuilderInterface' =/InteractiveToolInterface& ;/FilesValidatorInterface% ?/FilesToolHandlerInterface$ 5/FileExtractInterface# 1/CheckFileInterface" 9/OutputHandlerInterface! 3/HookConfigInterface"  E/HookConfigExtraToolInterface -/HandlerInterface 1/FormatterInterface -/HandlerInterface //MyStreamingEngine +/LoaderInterface +/HelperInterface  A/TemplateReferenceInterface! C/TemplateNameParserInterface =/StreamingEngineInterface +/EngineInterface 7/TokenStorageInterface ;/TokenGeneratorInterface ?/CsrfTokenManagerInterface 7/UserProviderInterface '/UserInterface 5/UserCheckerInterface 1/EquatableInterface 7/AdvancedUserInterface '/RoleInterface 9/RoleHierarchyInterface 1/ExceptionInterface"
 E/UserPasswordEncoderInterface	 =/PasswordEncoderInterface ;/EncoderFactoryInterface 7/EncoderAwareInterface )/VoterInterface# G/AuthorizationCheckerInterface$ I/AccessDecisionManagerInterface )/TokenInterface 7/TokenStorageInterface 9/TokenProviderInterface  =/PersistentTokenInterface% K/AuthenticationProviderInterface"~ E/SimpleAuthenticatorInterface*} U/AuthenticationTrustResolverInterface$| I/AuthenticationManagerInterface{ +/RouterInterfacez 9/RouteCompilerInterface"y E/RequestContextAwareInterfacex 3/UrlMatcherInterfacew ;/RequestMatcherInterface%v K/RedirectableUrlMatcherInterfaceu 9/MatcherDumperInterfacet =/GeneratorDumperInterfaces 7/UrlGeneratorInterface'r O/ConfigurableRequirementsInterfaceq 1/ExceptionInterfacep +/EngineInterfaceo ;/TemplateFinderInterfacen 1/CollisionInterfacem !/EInterfacel !/DInterfacek 7/ParameterBagInterfacej +/DumperInterfacei 7/InstantiatorInterfaceh ?/PrependExtensionInterfaceg 1/ExtensionInterface%f K/ConfigurationExtensionInterfacee 1/ExceptionInterfaced +/DumperInterfacec =/TaggedContainerInterfaceb )/ScopeInterface"a E/ResettableContainerInterface&` M/IntrospectableContainerInterface_ 1/ContainerInterface^ ;/ContainerAwareInterface] ;/RepeatablePassInterface\ 7/CompilerPassInterface
[ /IBarZ '/SomeInterfaceY !/GInterfaceX !/CInterfaceW =/VersionStrategyInterfaceV -/PackageInterfaceU 1/ExceptionInterfaceT -/ContextInterfaceS '/MultiPutCacheR '/MultiGetCacheQ )/FlushableCacheP )/ClearableCacheO /Cache$N I/ConfigurationProviderInterfaceM ?/AutoConfigurableInterfaceL 1/CollisionInterfaceK !/EInterfaceJ !/DInterfaceI 7/ParameterBagInterfaceH +/DumperInterfaceG 7/InstantiatorInterfaceF ?/PrependExtensionInterfaceE 1/ExtensionInterface%D K/ConfigurationExtensionInterfaceC 1/ExceptionInterfaceB +/DumperInterfaceA =/TaggedContainerInterface"@ E/ResettableContainerInterface? 1/ContainerInterface> ;/ContainerAwareInterface= ;/RepeatablePassInterface< 7/CompilerPassInterface; 3/DeprecatedInterface : A/FatalErrorHandlerInterface9 //RegistryInterface8 +/FormatInterface7 //RendererInterface6 1/GeneratorInterface5 5/RegistrableInterface4 +/LoggerInterface3 //ProviderInterface2 1/ExtensionInterface1 5/OutputAwareInterface0 +/DriverInterface/ //ExecutorInterface. !/XPathAware- 7/UriRetrieverInterface, 3/ConstraintInterface   + lK1zc>#iO9#sL,{]@&




X
A
&

					}	e	J	/	vZ; aD" r\D'mL:u\< lF.wjR9+kP;+                   5 0:Factory4 %09SelfHandling3 109QueueingDispatcher2 +09HandlerResolver1 !09Dispatcher0 108ShouldBroadcastNow/ +08ShouldBroadcast. 08Factory- #08Broadcaster, %07UserProvider+ 07Registrar* )07PasswordBroker) 07Guard( -07CanResetPassword' +07Authenticatable
& 06Gate% %06Authorizable$ =03TenantExceptionInterface# )02StyleInterface" +01OutputInterface! 901ConsoleOutputInterface  )00InputInterface 300InputAwareInterface +0/HelperInterface# G0.OutputFormatterStyleInterface =0.OutputFormatterInterface 10-ExceptionInterface 30,DescriptorInterface 70+ViewRendererInterface 0)Provider 10)ContainerInterface 0)Arrayable 30(ConnectionInterface ;0'CacheContainerInterface -0&VehicleInterface -0%VisitorInterface 30%SerializerInterface% K0$PropertyNamingStrategyInterface! C0#SubscribingHandlerInterface =0#HandlerRegistryInterface  A0"ExclusionStrategyInterface 0!Exception =0 EventSubscriberInterface
 =0 EventDispatcherInterface 	 A0ObjectConstructorInterface 90DriverFactoryInterface -0SlugifyInterface 10SignatureInterface  A0SessionConnectionInterface 50CredentialsInterface +0ResultInterface '0HashInterface -0CommandInterface  )0CacheInterface 10AwsClientInterface ~ A0PhpCsFixerHandlerInterface} ;0MergeValidatorInterface| ?0ConfigFileWriterInterface{ ?0ConfigFileReaderInterfacez 50ToolHandlerInterfacey 90RecursiveToolInterfacex ;0ProcessBuilderInterfacew =0InteractiveToolInterfacev ;0FilesValidatorInterfaceu ?0FilesToolHandlerInterfacet 50FileExtractInterfaces 10CheckFileInterfacer 90OutputHandlerInterfaceq 30HookConfigInterface"p E0HookConfigExtraToolInterfaceo 30TranslatorInterfacen 90TranslatorBagInterfacem 90MetadataAwareInterfacel ?0MessageCatalogueInterfacek +0LoaderInterfacej 10ExtractorInterfacei 10ExceptionInterfaceh +0DumperInterfaceg 10
OperationInterfacef =0	ProfilerStorageInterfacee 50DebugLoggerInterfaced 30TerminableInterfacec +0KernelInterfaceb 30HttpKernelInterfacea 10SurrogateInterface` )0StoreInterface$_ I0ResponseCacheStrategyInterface^ ?0FragmentRendererInterface] 90HttpExceptionInterface \ A0LateDataCollectorInterface[ 90DataCollectorInterface!Z C0ControllerResolverInterfaceY /0WarmableInterfaceX 50CacheWarmerInterfaceW 70 CacheClearerInterfaceV +/BundleInterfaceU 3/TranslatorInterfaceT 1/ExtensionInterfaceS +/ParserInterfaceR -/HandlerInterfaceQ '/NodeInterfaceP 1/ExceptionInterfaceO ;/PHPExcel_Writer_IWriter$N I/PHPExcel_RichText_ITextElement!M C/PHPExcel_Reader_IReadFilterL ;/PHPExcel_Reader_IReaderK 5/PHPExcel_IComparable J A/PHPExcel_Cell_IValueBinder)I S/PHPExcel_CachedObjectStorage_ICacheH '/ImportHandlerG '/ExportHandlerF //ResourceInterfaceE 1/PaginatorInterfaceD +/CursorInterfaceC 3/ViewFinderInterfaceB +/EngineInterfaceA //CompilerInterface@ -/SessionInterface? ;/ExistenceAwareInterface> 1/ValidatorInterface"= E/MigrationRepositoryInterface< )/ScopeInterface; /Scope: 1/ConnectorInterface!9 C/ConnectionResolverInterface8 3/ConnectionInterface7 /Canvas6 9/DataTableScopeContract5 ;/DataTableEngineContract4 //DataTableContract3 =/DataTableButtonsContract2 1/ExceptionInterface1 7/PHP_CodeSniffer_Sniff0 9/PHP_CodeSniffer_Report/ -/IgnoreTestPolicy . A/PhpCsFixerHandlerInterface   b vfN5#cQ?3"}jX@#xZH8+xW1






d
M
+
				m	D	mS<%r;zR!kD"|aE,uaM?(^QE9b                                                      NG 0ytestClassLevelAnalyzerNotRunsEndlessForDeepInterfaceHierarchy_interfaceF 0yClone
E 0yTrue
D 0yNullC 0yFalseMB 0ytestAnalyzerNotCountsImplementedInterfaceMethodsAsOverwrittenInterface	A 0yBar	@ 0yFoo
? 0yIFoo0> a0ytestParserSetsSourceFileForInterfaceMethod= 0xReport< #0wCacheDriver; 0vTokens: 0vTokenizer9 )0uBuilderContext8 0uBuilder7 !0tASTVisitor6 -0tASTVisitListener5 )0sArtifactFilter4 0rState3 #0rASTCallable2 #0rASTArtifact1 +0qReportGenerator0 10qFileAwareGenerator/ 10qCodeAwareGenerator. +0pProcessListener- /0oCodeRankStrategyI, 50nAnalyzerProjectAware+ /0nAnalyzerNodeAware* -0nAnalyzerListener) 30nAnalyzerFilterAware( 10nAnalyzerCacheAware' 0nAnalyzer& /0nAggregateAnalyzer% 0mFilter$$ I0lPhakeTest_TraversableInterface# ?0lPhakeTest_StaticInterface " A0lPhakeTest_MockedInterface2! ?0lPhakeTest_MockedInterface$  I0lPhakeTest_MockedChildInterface$ I0lPhakeTest_ConstructorInterface$ I0lPhake_Stubber_IAnswerContainer! C0lPhake_Stubber_IAnswerBinder 70lPhake_Stubber_IAnswer# G0lPhake_Matchers_IMethodMatcher. ]0lPhake_Matchers_IChainableArgumentMatcher% K0lPhake_Matchers_IArgumentMatcher #0lPhake_IMock 50lPhake_Client_IClient? 0lPhake_ClassGenerator_InvocationHandler_IInvocationHandler" E0lPhake_ClassGenerator_ILoader& M0lPhake_CallRecorder_IVerifierMode4 i0lPhake_CallRecorder_IVerificationFailureHandler 0kILogger 0kIBarPanel 50jParserCacheInterface) S0iExpressionFunctionProviderInterface 0hException 0gException 0fException 0eException
 )0dFluidInterface	 )0`QueryInterface /0`DatabaseInterface 10_IUpdatableKeyModel 90_ILogicalDeletableModel& M0^Zend_Session_Validator_Interface( Q0^Zend_Session_SaveHandler_Interface 70^Zend_Server_Interface( Q0^Zend_Loader_PluginLoader_Interface& M0^Zend_Loader_Autoloader_Interface!  C0^Zend_Auth_Storage_Interface! C0^Zend_Auth_Adapter_Interface/~ _0^Zend_Auth_Adapter_Http_Resolver_Interface} ;0^Zend_Acl_Role_Interface!| C0^Zend_Acl_Resource_Interface{ ?0^Zend_Acl_Assert_Interfacez )0]ValueInterfacey 10\ExceptionInterfacex -0[AdapterInterfacew )0ZStyleInterfacev +0YOutputInterfaceu 90YConsoleOutputInterfacet )0XInputInterfaces 30XInputAwareInterfacer +0WHelperInterface#q G0VOutputFormatterStyleInterfacep =0VOutputFormatterInterfaceo 30UDescriptorInterface"n E0SMigrationRepositoryInterfacem )0RScopeInterfacel 10QConnectorInterface!k C0PConnectionResolverInterfacej 30PConnectionInterface
i 0OViewh 0OFactoryg 0NValidatorf 70NValidatesWhenResolvede 0NFactoryd !0MRenderablec +0MMessageProviderb !0MMessageBaga 0MJsonable` 0MHtmlable_ 0MArrayable^ #0LUrlRoutable] %0LUrlGenerator\ 50LTerminableMiddleware[ +0LResponseFactoryZ 0LRegistrarY !0LMiddlewareX 0KDatabaseW #0JShouldQueueV )0JShouldBeQueuedU +0JQueueableEntityT 0JQueueS 0JMonitor	R 0JJobQ 0JFactoryP )0JEntityResolverO 0IPipeline	N 0IHubM 0HPresenterL 0HPaginatorK 50HLengthAwarePaginatorJ 0GMailQueueI 0GMailer	H 0FLogG 0EKernelF 0DHasherE #0CApplicationD !0BFilesystemC 0BFactoryB 0BCloudA !0ADispatcher@ 0@Encrypter? -0?ExceptionHandler> +0>QueueingFactory= 0>Factory< =0=ContextualBindingBuilder; 0=Container: 0<Kernel9 #0<Application8 !0;Repository7 0:Store6 !0:Repository   R  cp>	h
`G






k
W
			Z	M	@	<F
VGY#h^TJz/z=p]M<        
 0yGoto 0y__DIR__5 k0ytestVisitorInvokesStartVisitInterfaceOnListener3 g0ytestVisitorInvokesEndVisitInterfaceOnListener 0yinterfsC 0yinterfs !0yFooBarBazII 0ytestUnserializedInterfaceStillReferencesSameParentInterface_parentB 0ytestUnserializedInterfaceStillReferencesSameParentInterface9 s0ytestUnserializedInterfaceStillReferencesSamePackage: u0ytestUnserializedInterfaceStillIsParentOfChildMethods1 c0ytestUnserializedInterfaceRegistersToPackage= {0ytestUnserializedInterfaceNotAddsDublicateClassToPackage> }0ytestUnserializedInterfaceIsReturnedByMethodAsReturnClassH 0ytestUnserializedInterfaceAndChildMethodsStillReferenceTheSameFile3
 g0ytestGetParentClassesReturnsEmptyArray_parentC3	 g0ytestGetParentClassesReturnsEmptyArray_parentB3 g0ytestGetParentClassesReturnsEmptyArray_parentA+ W0ytestGetParentClassesReturnsEmptyArray 0yC 0yB 0yAB 0ytestGetInterfaceReferencesReturnsExpectedNumberOfInterfaces< y0ytestGetFirstChildOfTypeFindsASTNodeInMethodDeclaration4 i0ytestGetDependenciesReturnsEmptyResultByDefault3  g0ytestGetDependenciesContainsExtendedInterfaces2 e0ytestGetDependenciesContainsExtendedInterface7~ o0ytestGetConstantsReturnsExpectedInterfaceConstants=} {0ytestGetAllChildrenReturnsArrayWithExpectedNumberOfNodes<| y0ytestFindChildrenOfTypeFindsASTNodeInMethodDeclarations{ 0yFooBar9z s0ytestReferenceInInterfaceExtendsHasExpectedStartLine;y w0ytestReferenceInInterfaceExtendsHasExpectedStartColumn7x o0ytestReferenceInInterfaceExtendsHasExpectedEndLine9w s0ytestReferenceInInterfaceExtendsHasExpectedEndColumnHv 0ytestUnserializedClassStillReferencesSameParentInterface_interfaceu 0yFt 0yEs 0yDAr 0ytestGetConstantsReturnsExpectedInterfaceConstantsInterfaceFq 0ytestGetAllMethodsContainsMethodsOfIndirectImplementedInterfaceBFp 0ytestGetAllMethodsContainsMethodsOfIndirectImplementedInterfaceA=o {0ytestGetAllMethodsContainsMethodsOfImplementedInterfaceB=n {0ytestGetAllMethodsContainsMethodsOfImplementedInterfaceA8m q0yGetAllMethodsContainsMethodsOfImplementedInterface
l 0yFooI
k 0yBarI<j y0ytestParserHandlesInterfaceWithMultipleParentInterfacesCi 0ytestAnalyzerRestoresExpectedProjectMetricsFromCacheInterface;h w0ytestAnalyzerRestoresExpectedInterfaceMetricsFromCache7g o0ytestAnalyzerCalculatesElocOfZeroForAbstractMethodf #0yMyInterfacee 30yMyConstantInterfaced /0yMIMethodInterfacec 0yIb -0yHMethodInterfacea /0yCCMethodInterface)` S0ytestAnalyzerIgnoresInterfaceMethods:_ u0ytestGetNodeMetricsReturnsExpectedCeForParameterTypes;^ w0ytestGetNodeMetricsReturnsExpectedCboForParameterTypesF] 0ytestGetNodeMetricsReturnsExpectedCaForParameterTypes_interface3F\ 0ytestGetNodeMetricsReturnsExpectedCaForParameterTypes_interface2F[ 0ytestGetNodeMetricsReturnsExpectedCaForParameterTypes_interface1:Z u0ytestGetNodeMetricsReturnsExpectedCaForParameterTypesY ?0yMyMethodCouplingInterfaceX 30yMyCouplingInterfaceW #0yBCollectionV 0yBList
U 0yIBar[T 50yz_testGetConstantsReturnsExpectedResultForInheritedAndImplementedConstantDefinitions[S 50yx_testGetConstantsReturnsExpectedResultForInheritedAndImplementedConstantDefinitionsR 0yParserIQ 0ypkg3FooIP 0ypkg2FooIO 0ypkg1FooI2N e0ytestParserHandlesHeredocAsClassConstantValue/M _0ytestParserExtractsCorrectInterfacePackageRL #0ytestClassLevelAnalyzerNotRunsEndlessForTwoLevelInterfaceHierarchy_interfaceLK 0ytestClassLevelAnalyzerNotRunsEndlessForDeepInterfaceHierarchy_parentCLJ 0ytestClassLevelAnalyzerNotRunsEndlessForDeepInterfaceHierarchy_parentBLI 0ytestClassLevelAnalyzerNotRunsEndlessForDeepInterfaceHierarchy_parentAKH 0ytestClassLevelAnalyzerNotRunsEndlessForDeepInterfaceHierarchy_parent   V ~>-si_UKA7!rQ9fD+oW7 






n
X
=
%
						t	Z	@	(	vVB.s[D+lXA*zeO7"ybI0qYB(y^E%hV    > 0Throwable= -0WebDriverElement< -0FixtureInterface; '0TestInterface: !0Interface19 -0InterfaceFixture8 -0InvokerInterface7 -0FactoryInterface6 )0RequestedEntry5 ;0MutableDefinitionSource4 -0DefinitionSource3 10DefinitionResolver2 -0DefinitionHelper1 -0DefinitionDumper0 ;0SelfResolvingDefinition/ -0HasSubDefinition. !0Definition- 30CacheableDefinition, %0XMLInterface+ /0TemplateInterface* )0SheetInterface) +0JqueryInterface( '0HTMLInterface' '0FormInterface& 50ViewObjectsInterface% %0CDNInterface$ '0VarsInterface# -0StringsInterface" )0RegexInterface! 10FunctionsInterface  -0FiltersInterface -0ClassesInterface )0CharsInterface +0ArraysInterface 30ValidationInterface '0CartInterface %0URIInterface -0SessionInterface )0RouteInterface /0RedirectInterface %0NetInterface +0MethodInterface '0HTTPInterface %0FTPInterface )0EmailInterface 50EmailDriverInterface '0CURLInterface +0CookieInterface /0SecurityInterface 30PermissionInterface +0ImportInterface )0ThumbInterface
 )0ImageInterface	 #0GDInterface +0SymbolInterface 10SeparatorInterface +0SearchInterface )0RoundInterface )0LimitInterface '0JsonInterface +0FormatInterface +0FilterInterface  -0ConvertInterface )0CleanInterface~ +0UploadInterface} +0RecordInterface| +0FolderInterface{ '0FileInterfacez /0DownloadInterfacey 30ExceptionsInterfacex )0ErrorInterfacew #0MLInterfacev #0MBInterfaceu #0IVInterfacet #0GTInterfaces ;0DateTimeCommonInterfacer 10MigrationInterfaceq /0DatabaseInterfacep ;0DatabaseDriverInterfaceo +0DBToolInterfacen -0DBForgeInterfacem #0DBInterfacel +0EncodeInterfacek +0CryptoInterfacej /0CompressInterfacei /0TerminalInterfaceh )0TableInterfaceg /0ScheduleInterfacef 30PaginationInterfacee /0DataGridInterfaced -0CaptchaInterfacec /0CalendarInterfaceb )0CacheInterfacea +0BufferInterface` 10BenchmarkInterface_ '0UserInterface^ )0SelfDescribing] 0Matcher\ #0Description[ /0ResolverInterfaceZ 70TreeRendererInterfaceY /0RendererInterface"X E0RetrievableChildrenInterfaceW )0ModelInterfaceV ;0ClearableModelInterfaceU +0HelperInterfaceT +0HelperInterfaceS 10ExceptionInterfaceR '0TestInterfaceQ -0ArrayConvertableP 70PHP_CodeSniffer_SniffO 90PHP_CodeSniffer_ReportN 50InitializerInterfaceM -0FactoryInterfaceL ?0DelegatorFactoryInterfaceK =0AbstractFactoryInterfaceJ 10ExceptionInterfaceI ;0ServiceLocatorInterfaceH 90PluginManagerInterfaceG 50InitializerInterfaceF -0FactoryInterfaceE ?0DelegatorFactoryInterfaceD +0ConfigInterfaceC =0AbstractFactoryInterfaceB '0SomeInterfaceA 0C1@ 0I3? 0I2> 0I1= 0B2< 0B1; 0I3: 0I29 0I18 0A37 0I36 0I25 0I14 0~T3 '0}SomeInterface2 0|F1 0|E0 0|D/ 0|C. 0|B- 0|A	, 0|Bar+ 0|MyType4* 0|MyType3) 0|MyType2	( 0{Foo	' 0zBar& 0zFooBaz	% 0zFoo6$ m0ytestParserHandlesConditionalInterfaceDeclaration# 0yInsteadOf" 0yCallable=! {0ytestConstantSupportForArrayWithSelfReferenceInInterface	  0yUse 0y__TRAIT__ 0yTrait 30ySimpleInterfaceName '0y__NAMESPACE__ 0yNamespace 0yinsteadof   J qZE-
u^O:~eF%oT8x[E'




g
>
						f	H	%	vS5`E5r]P8uaQ9tbA1 xl]K.
p_M5 lZJ      \ 0Factory[ 0ValidatorZ 70ValidatesWhenResolvedY 0FactoryX !0RenderableW +0MessageProviderV !0MessageBagU 0JsonableT 0HtmlableS 0ArrayableR #0UrlRoutableQ %0UrlGeneratorP +0ResponseFactoryO 0RegistrarN 0DatabaseM #0ShouldQueueL +0QueueableEntityK 0QueueJ 0Monitor	I 0JobH 0FactoryG )0EntityResolverF 0Pipeline	E 0HubD 0PresenterC 0PaginatorB 50LengthAwarePaginatorA 0MailQueue@ 0Mailer	? 0Log> 0Kernel= 0Hasher< #0Application; !0Filesystem: 0Factory9 0Cloud8 !0Dispatcher7 0Encrypter6 -0ExceptionHandler5 +0QueueingFactory4 0Factory3 =0ContextualBindingBuilder2 0Container1 0Kernel0 #0Application/ !0Repository. 0Store- !0Repository, 0Factory+ %0SelfHandling* 10QueueingDispatcher) !0Dispatcher( 10ShouldBroadcastNow' +0ShouldBroadcast& 0Factory% #0Broadcaster$ %0UserProvider# /0SupportsBasicAuth" '0StatefulGuard! 0Registrar  70PasswordBrokerFactory )0PasswordBroker 0Guard 0Factory -0CanResetPassword +0Authenticatable
 0Gate %0Authorizable =0TokenRepositoryInterface# G0PropertyPathIteratorInterface 70PropertyPathInterface ?0PropertyAccessorInterface 10ExceptionInterface =0OptionsResolverInterface 0Options 10ExceptionInterface ;0ResourceBundleInterface 70RegionBundleInterface 70LocaleBundleInterface ;0LanguageBundleInterface ;0CurrencyBundleInterface 10ExceptionInterface
 70BundleWriterInterface	 70BundleReaderInterface  A0BundleEntryReaderInterface ;0BundleCompilerInterface +0AuthorInterface '0FormInterface 50FormBuilderInterface =0ViolationMapperInterface  A0FormDataExtractorInterface  A0FormDataCollectorInterface  70CsrfProviderInterface 30ChoiceListInterface~ 10ExceptionInterface} 70ChoiceLoaderInterface | A0ChoiceListFactoryInterface{ 30ChoiceListInterfacez ?0SubmitButtonTypeInterfacey ?0ResolvedFormTypeInterface&x M0ResolvedFormTypeFactoryInterfacew ;0RequestHandlerInterfacev /0FormTypeInterfaceu =0FormTypeGuesserInterface t A0FormTypeExtensionInterfaces 70FormRendererInterface!r C0FormRendererEngineInterfaceq 70FormRegistryInterfacep '0FormInterfaceo 50FormFactoryInterface!n C0FormFactoryBuilderInterfacem 90FormExtensionInterfacel 30FormConfigInterface k A0FormConfigBuilderInterfacej 50FormBuilderInterfacei =0DataTransformerInterfaceh 30DataMapperInterfaceg 10ClickableInterfacef 30ButtonTypeInterfacee %0FileDetectord '0ExecuteMethodc 90WebDriverTargetLocatorb 90WebDriverSearchContexta )0WebDriverMouse` /0WebDriverKeyboard_ =0WebDriverHasInputDevices^ 90WebDriverEventListener] -0WebDriverElement\ =0WebDriverCommandExecutor[ 70WebDriverCapabilitiesZ +0WebDriverActionY 0WebDriverX 10JavaScriptExecutorW 10WebDriverLocatableV 50WebDriverTouchScreenU %0ConfigurableT 0LoaderS )0ScenarioDrivenR 0ReportedQ 0PlainP #0DescriptiveO )0ConsolePrinter	N 0WebM +0SessionSnapshotL +0ScreenshotSaverK 0RemoteJ 0QueueI %0PartedModuleH +0PageSourceSaverG %0MultiSessionF )0ElementLocatorE -0DoctrineProviderD +0DependsOnModuleC 0DbB 30ConflictsWithModuleA %0ActiveRecord@ 0Testable? 0TestCase    sN3hP4}a=mT3 kO)






]
K
/
						c	K	4		x\>jB'pF%hL1yU8"~dDz_<jJ,  ` /1JFlashBagInterface_ 71IAttributeBagInterface^ ;1HRequestMatcherInterface] =1GMimeTypeGuesserInterface\ ?1GExtensionGuesserInterface[ +1FAuthorInterfaceZ '1EFormInterfaceY 51EFormBuilderInterfaceX =1DViolationMapperInterface W A1CFormDataExtractorInterface V A1CFormDataCollectorInterfaceU 11BExceptionInterfaceT 71AChoiceLoaderInterface S A1@ChoiceListFactoryInterfaceR 31?ChoiceListInterfaceQ ?1>SubmitButtonTypeInterfaceP ?1>ResolvedFormTypeInterface&O M1>ResolvedFormTypeFactoryInterfaceN ;1>RequestHandlerInterfaceM /1>FormTypeInterfaceL =1>FormTypeGuesserInterface K A1>FormTypeExtensionInterfaceJ 71>FormRendererInterface!I C1>FormRendererEngineInterfaceH 71>FormRegistryInterfaceG '1>FormInterfaceF 51>FormFactoryInterface!E C1>FormFactoryBuilderInterfaceD 91>FormExtensionInterfaceC 31>FormConfigInterface B A1>FormConfigBuilderInterfaceA 51>FormBuilderInterface@ =1>DataTransformerInterface? 31>DataMapperInterface> 11>ClickableInterface= 31>ButtonTypeInterface< 11=ExceptionInterface; 51<IOExceptionInterface: 11<ExceptionInterface9 51;ParserCacheInterface)8 S1:ExpressionFunctionProviderInterface7 =19EventSubscriberInterface6 =19EventDispatcherInterface'5 O18TraceableEventDispatcherInterface4 117CollisionInterface3 !17EInterface2 !17DInterface1 716ParameterBagInterface0 +15DumperInterface/ 714InstantiatorInterface. ?13PrependExtensionInterface- 113ExtensionInterface%, K13ConfigurationExtensionInterface+ 112ExceptionInterface* +11DumperInterface) =10TaggedContainerInterface"( E10ResettableContainerInterface' 110ContainerInterface& ;10ContainerAwareInterface% ;1/RepeatablePassInterface$ 71/CompilerPassInterface# 31.DeprecatedInterface " A1-FatalErrorHandlerInterface! 31,TranslatorInterface  11+ExtensionInterface +1*ParserInterface -1)HandlerInterface '1(NodeInterface 11'ExceptionInterface )1&StyleInterface +1%OutputInterface 91%ConsoleOutputInterface )1$InputInterface 31$InputAwareInterface +1#HelperInterface# G1"OutputFormatterStyleInterface =1"OutputFormatterInterface 11!ExceptionInterface 31 DescriptorInterface 1Validator# G1SelfCheckingResourceInterface /1ResourceInterface ;1LoaderResolverInterface +1LoaderInterface 91PrototypeNodeInterface '1NodeInterface
 91ConfigurationInterface#	 G1ParentNodeDefinitionInterface 31NodeParentInterface =1ResourceCheckerInterface 51FileLocatorInterface 51ConfigCacheInterface! C1ConfigCacheFactoryInterface
 1IBar '1SomeInterface !1GInterface  !1CInterface =1VersionStrategyInterface~ -1PackageInterface} 11ExceptionInterface| -1ContextInterface"{ E1UserProviderFactoryInterfacez =1SecurityFactoryInterfacey +1EngineInterfacex ;1TemplateFinderInterfacew 71TwigRendererInterface!v C1TwigRendererEngineInterfaceu 31UserLoaderInterfacet /1RegistryInterfaces 71EntityLoaderInterfacer +1
FilterInterfaceq 11	ExceptionInterfacep 31DataDumperInterfaceo +1DumperInterfacen +1ClonerInterfacem 30ViewFinderInterfacel +0EngineInterfacek /0CompilerInterfacej ?0PresenceVerifierInterfacei +0LoaderInterfaceh -0SessionInterfaceg ;0ExistenceAwareInterfacef 10ValidatorInterface e A0FailedJobProviderInterfaced 10ConnectorInterface"c E0MigrationRepositoryInterfaceb )0ScopeInterfacea 0Scope` 10ConnectorInterface!_ C0ConnectionResolverInterface^ 30ConnectionInterface
] 0View   y  uX>pY>"
mO1z^C3W)



o
Q
0
					i	Q	*pR;xS8yW7sElF"yU:{]?#mJ2       Y /1MyStreamingEngineX +1LoaderInterfaceW +1HelperInterface V A1TemplateReferenceInterface!U C1TemplateNameParserInterfaceT =1StreamingEngineInterfaceS +1EngineInterfaceR 31GroupDummyInterfaceQ 31SerializerInterfaceP =1SerializerAwareInterfaceO 31NormalizerInterfaceN 71NormalizableInterfaceM 71DenormalizerInterfaceL ;1DenormalizableInterfaceK 91NameConverterInterfaceJ +1LoaderInterface#I G1ClassMetadataFactoryInterfaceH 91ClassMetadataInterface G A1AttributeMetadataInterfaceF 11ExceptionInterface!E C1NormalizationAwareInterfaceD -1EncoderInterfaceC -1DecoderInterface!B C1TestFailureHandlerInterface!A C1TestSuccessHandlerInterface,@ Y1SessionAuthenticationStrategyInterface!? C1RememberMeServicesInterface#> G1LogoutSuccessHandlerInterface= 91LogoutHandlerInterface< /1ListenerInterface'; O1~AuthenticationEntryPointInterface": E1}AccessDeniedHandlerInterface%9 K1|SimplePreAuthenticatorInterface&8 M1|SimpleFormAuthenticatorInterface+7 W1|AuthenticationSuccessHandlerInterface+6 W1|AuthenticationFailureHandlerInterface5 51{FirewallMapInterface4 11{AccessMapInterface3 31zGuardTokenInterface!2 C1yGuardAuthenticatorInterface1 71xTokenStorageInterface0 ;1wTokenGeneratorInterface/ ?1vCsrfTokenManagerInterface. 71uUserProviderInterface- '1uUserInterface, 51uUserCheckerInterface+ 11uEquatableInterface* 71uAdvancedUserInterface) '1tRoleInterface( 91tRoleHierarchyInterface' 11sExceptionInterface"& E1rUserPasswordEncoderInterface% =1rPasswordEncoderInterface$ ;1rEncoderFactoryInterface# 71rEncoderAwareInterface" )1qVoterInterface#! G1pAuthorizationCheckerInterface$  I1pAccessDecisionManagerInterface )1oTokenInterface 71nTokenStorageInterface 91mTokenProviderInterface =1mPersistentTokenInterface% K1lAuthenticationProviderInterface" E1kSimpleAuthenticatorInterface* U1kAuthenticationTrustResolverInterface$ I1kAuthenticationManagerInterface +1jRouterInterface 91jRouteCompilerInterface" E1jRequestContextAwareInterface 31iUrlMatcherInterface ;1iRequestMatcherInterface% K1iRedirectableUrlMatcherInterface 91hMatcherDumperInterface =1gGeneratorDumperInterface 71fUrlGeneratorInterface' O1fConfigurableRequirementsInterface 11eExceptionInterface$ I1dPropertyTypeExtractorInterface$ I1dPropertyListExtractorInterface$
 I1dPropertyInfoExtractorInterface+	 W1dPropertyDescriptionExtractorInterface& M1dPropertyAccessExtractorInterface# G1cPropertyPathIteratorInterface 71cPropertyPathInterface ?1cPropertyAccessorInterface 11bExceptionInterface )1aPipesInterface 11`ExceptionInterface 1_Options  11^ExceptionInterface 31]LdapClientInterface~ ;1\ResourceBundleInterface} 71\RegionBundleInterface| 71\LocaleBundleInterface{ ;1\LanguageBundleInterfacez ;1\CurrencyBundleInterfacey 11[ExceptionInterfacex 71ZBundleWriterInterfacew 71YBundleReaderInterface v A1YBundleEntryReaderInterfaceu ;1XBundleCompilerInterfacet =1WProfilerStorageInterfaces 51VDebugLoggerInterfacer 31UTerminableInterfaceq +1UKernelInterfacep 31UHttpKernelInterfaceo 11TSurrogateInterfacen )1TStoreInterface$m I1TResponseCacheStrategyInterfacel ?1SFragmentRendererInterfacek 91RHttpExceptionInterface j A1QLateDataCollectorInterfacei 91QDataCollectorInterface!h C1PControllerResolverInterfaceg /1OWarmableInterfacef 51OCacheWarmerInterfacee 71NCacheClearerInterfaced +1MBundleInterfacec ;1LSessionStorageInterfaceb -1KSessionInterfacea 31KSessionBagInterface   / ]>d={\B qE-uZB,






s
\
N
1
							p	T	E	-		bK5iQ>&k]G*]J2xfS8kS6~\8S/                 !d C1Zend_Auth_Adapter_Interface/c _1Zend_Auth_Adapter_Http_Resolver_Interface(b Q1Zend_Application_Resource_Resource5a k1Zend_Application_Bootstrap_ResourceBootstrapper-` [1Zend_Application_Bootstrap_Bootstrapper_ ;1Zend_Acl_Role_Interface!^ C1Zend_Acl_Resource_Interface] ?1Zend_Acl_Assert_Interface\ 91ResourceOwnerInterface[ 11SignatureInterfaceZ 51CredentialsInterface Y A1ClientCredentialsInterfaceX 11SignatureInterface W A1SessionConnectionInterfaceV 51CredentialsInterfaceU +1ResultInterfaceT '1HashInterfaceS -1CommandInterfaceR )1CacheInterfaceQ 11AwsClientInterfaceP %1ShardManagerO #1ShardChoserN 1VisitorM /1SchemaDiffVisitorL -1NamespaceVisitorK 11SchemaSynchronizerJ !1ConstraintI 1SQLLogger H A1VersionAwarePlatformDriverG 1DriverF 1StatementE ?1ServerInfoAwareConnectionD +1ResultStatementC 11PingableConnectionB =1ExceptionConverterDriverA +1DriverException@ !1Connection ? A1ClassLoaderTest_InterfaceA!> C1ReflectionProviderInterface= 51ClassFinderInterface< 1Proxy; )1ProxyException: '1MappingDriver9 #1FileLocator8 /1ReflectionService7 51ClassMetadataFactory6 '1ClassMetadata5 1Proxy4 -1ObjectRepository3 11ObjectManagerAware2 '1ObjectManager1 +1ManagerRegistry0 11ConnectionRegistry/ ;1PropertyChangedListener. 71NotifyPropertyChanged- +1EventSubscriber, !1Comparable+ +1TargetInterface* 91ResolveTargetInterface) =1DDC3300EmployeeInterface( 51DDC3300BossInterface' /1RepositoryFactory& !1TreeWalker% 1Proxy$ +1EntityPersister# 31CollectionPersister" '1QuoteStrategy! )1NamingStrategy  91EntityListenerResolver !1Annotation 91EntityManagerInterface 1Cache 71CachedEntityPersister ?1CachedCollectionPersister +1CachedPersister #1CacheLogger +1TimestampRegion 1Region 31QueryCacheValidator !1QueryCache )1MultiGetRegion )1EntityHydrator -1ConcurrentRegion 11CollectionHydrator %1CacheFactory !1CacheEntry! C1ReflectionProviderInterface 51ClassFinderInterface 1Proxy )1ProxyException
 '1MappingDriver	 #1FileLocator /1ReflectionService 51ClassMetadataFactory '1ClassMetadata 1Proxy -1ObjectRepository 11ObjectManagerAware '1ObjectManager +1ManagerRegistry  11ConnectionRegistry ;1PropertyChangedListener~ 71NotifyPropertyChanged} +1EventSubscriber| !1Comparable{ 11ExceptionInterfacez 31DataDumperInterfacey +1DumperInterfacex +1ClonerInterface)w S1ConstraintViolationBuilderInterfacev 11ValidatorInterface"u E1ContextualValidatorInterfacet 71StaticLoaderInterfaces +1EntityInterfacer +1LoaderInterfaceq =1MetadataFactoryInterfacep ?1PropertyMetadataInterfaceo /1MetadataInterfacen 91ClassMetadataInterfacem )1CacheInterfacel 11ExceptionInterfacek ?1ExecutionContextInterface&j M1ExecutionContextFactoryInterfacei ?1ValidatorBuilderInterface h A1ObjectInitializerInterface$g I1GroupSequenceProviderInterface&f M1ConstraintViolationListInterface"e E1ConstraintViolationInterface"d E1ConstraintValidatorInterface)c S1ConstraintValidatorFactoryInterfaceb 31TranslatorInterfacea 91TranslatorBagInterface` 91MetadataAwareInterface_ ?1MessageCatalogueInterface^ +1LoaderInterface] 11ExtractorInterface\ 11ExceptionInterface[ +1DumperInterfaceZ 11OperationInterface   Z  mBm@oE}M`9


{
]
7
				l	?	];b5
_5hFb*d9UT'      ,> Y1Zend_Tool_Framework_Manifest_Indexable5= k1Zend_Tool_Framework_Manifest_ActionManifestable*< U1Zend_Tool_Framework_Loader_Interface9; s1Zend_Tool_Framework_Client_Storage_AdapterInterfaceE: 	1Zend_Tool_Framework_Client_Response_ContentDecorator_Interface<9 y1Zend_Tool_Framework_Client_Interactive_OutputInterface;8 w1Zend_Tool_Framework_Client_Interactive_InputInterface*7 U1Zend_Tool_Framework_Action_Interface)6 S1Zend_Text_Table_Decorator_Interface5 /1Zend_Tag_Taggable4 71Zend_Stdlib_Exception'3 O1Zend_Soap_Wsdl_Strategy_Interface&2 M1Zend_Session_Validator_Interface(1 Q1Zend_Session_SaveHandler_Interface%0 K1Zend_Service_ShortUrl_ShortenerL/ 1Zend_Service_Console_Command_ParameterSource_ParameterSourceInterface. 71Zend_Server_Interface.- ]1Zend_Serializer_Adapter_AdapterInterface5, k1Zend_Search_Lucene_Search_Highlighter_Interface"+ E1Zend_Search_Lucene_Interface4* i1Zend_Search_Lucene_Index_TermsStream_Interface%) K1Zend_Queue_Stomp_FrameInterface1( c1Zend_Queue_Stomp_Client_ConnectionInterface)' S1Zend_Queue_Adapter_AdapterInterface& ?1Zend_Pdf_Filter_Interface'% O1Zend_Pdf_ElementFactory_Interface$ ?1Zend_Pdf_Canvas_Interface-# [1Zend_Paginator_ScrollingStyle_Interface%" K1Zend_Paginator_AdapterAggregate&! M1Zend_Paginator_Adapter_Interface'  O1Zend_Oauth_Config_ConfigInterface( Q1Zend_Mobile_Push_Message_Interface  A1Zend_Mobile_Push_Interface% K1Zend_Memory_Container_Interface2 e1Zend_Markup_Renderer_TokenConverterInterface( Q1Zend_Markup_Parser_ParserInterface* U1Zend_Mail_Storage_Writable_Interface( Q1Zend_Mail_Storage_Folder_Interface =1Zend_Mail_Part_Interface! C1Zend_Mail_Message_Interface" E1Zend_Log_Formatter_Interface ?1Zend_Log_Filter_Interface ?1Zend_Log_FactoryInterface ?1Zend_Loader_SplAutoloader( Q1Zend_Loader_PluginLoader_Interface& M1Zend_Loader_Autoloader_Interface1 c1Zend_Ldap_Node_Schema_ObjectClass_Interface3 g1Zend_Ldap_Node_Schema_AttributeType_Interface! C1Zend_Http_UserAgent_Storage* U1Zend_Http_UserAgent_Features_Adapter  A1Zend_Http_UserAgent_Device% K1Zend_Http_Client_Adapter_Stream(
 Q1Zend_Http_Client_Adapter_Interface 	 A1Zend_Gdata_App_MediaSource/ _1Zend_Form_Decorator_Marker_File_Interface# G1Zend_Form_Decorator_Interface 71Zend_Filter_Interface# G1Zend_Filter_Encrypt_Interface, Y1Zend_Filter_Compress_CompressInterface1 c1Zend_Feed_Writer_Renderer_RendererInterface2 e1Zend_Feed_Writer_Extension_RendererInterface$ I1Zend_Feed_Reader_FeedInterface%  K1Zend_Feed_Reader_EntryInterface8 q1Zend_Feed_Pubsubhubbub_Model_SubscriptionInterface.~ ]1Zend_Feed_Pubsubhubbub_CallbackInterface!} C1Zend_Feed_Builder_Interface2| e1Zend_EventManager_SharedEventCollectionAware-{ [1Zend_EventManager_SharedEventCollection)z S1Zend_EventManager_ListenerAggregatey =1Zend_EventManager_Filter!x C1Zend_EventManager_Exception)w S1Zend_EventManager_EventManagerAware(v Q1Zend_EventManager_EventDescription'u O1Zend_EventManager_EventCollection!t C1Zend_Db_Statement_Interface%s K1Zend_Currency_CurrencyInterface*r U1Zend_Crypt_Math_BigInteger_Interface,q Y1Zend_Controller_Router_Route_Interface&p M1Zend_Controller_Router_Interface*o U1Zend_Controller_Dispatcher_Interface&n M1Zend_Controller_Action_Interface'm O1Zend_Cloud_StorageService_Adapter%l K1Zend_Cloud_QueueService_Adapter'k O1Zend_Cloud_Infrastructure_Adapter-j [1Zend_Cloud_DocumentService_QueryAdapter(i Q1Zend_Cloud_DocumentService_Adapterh 51Zend_Captcha_Adapter"g E1Zend_Cache_Backend_Interface*f U1Zend_Cache_Backend_ExtendedInterface!e C1Zend_Auth_Storage_Interface   u ]+X)g4W7~o_D5	






{
`
J
1
						q	]	I	3			o@S[#X#jS9!zdE"mR; 	t]>&                         3 12!CookieJarInterface2 +2 CookieInterface1 92 CookieFactoryInterface0 )2CacheInterface/ 72CacheAdapterInterface. 12BasicAuthInterface- ;2PsrHttpAdapterInterface, 52HttpAdapterInterface+ 92ConfigurationInterface* )2PipesInterface) 12ExceptionInterface( )2ValueInterface' 12ExceptionInterface& -2AdapterInterface% 2Compiler$ -2StorageInterface!# C2RequestIdGeneratorInterface" 32HttpDriverInterface! 92DataFormatterInterface  !2Renderable  A2MessagesAggregateInterface 92DataCollectorInterface '2AssetProvider !2ViewBinder )2ValueInterface '2UserInterface /2ProviderInterface /2ThrottleInterface /2ProviderInterface -2SessionInterface +2HasherInterface /2
ProviderInterface )2
GroupInterface +2	CookieInterface ;2SessionHandlerInterface 52TransformerInterface )2FixerInterface +2FinderInterface +2ConfigInterface 52ConfigAwareInterface2 e2ehough_stash_session_SessionHandlerInterface+
 W2ehough_stash_interfaces_PoolInterface+	 W2ehough_stash_interfaces_ItemInterface4 i2ehough_stash_interfaces_drivers_MultiInterface5 k2ehough_stash_interfaces_drivers_IncDecInterface5 k2ehough_stash_interfaces_drivers_ExtendInterface- [2ehough_stash_interfaces_DriverInterface& M2ehough_stash_exception_Exception5 k2ehough_stash_driver_filesystem_EncoderInterface+ W2ehough_filesystem_FilesystemInterface6 m2ehough_filesystem_exception_IOExceptionInterface4  i2ehough_filesystem_exception_ExceptionInterface# G2ehough_finder_FinderInterface*~ U2ehough_finder_FinderFactoryInterface-} [2ehough_finder_expression_ValueInterface0| a2ehough_finder_exception_ExceptionInterface,{ Y2ehough_finder_adapter_AdapterInterfacez +2ResultInterfacey =2OperatingSystemInterfacex +2 DeviceInterfacew -1BrowserInterfacev 11ExceptionInterfaceu 1It 1Is 1Ir 1Iq )1PhpInterpreterp '1OutputHandlero #1ITranslatorn #1IHtmlStringm 1IAdapterl ?1PresenceVerifierInterfacek +1LoaderInterface j A1FailedJobProviderInterfacei 11ConnectorInterfaceh =1TokenRepositoryInterfaceg '1Incrementablef -1FunctionProvidere '1Deactivatabled 11Requests_Transportc )1Requests_Proxyb +1Requests_Hookera '1Requests_Auth` 11PreviewablePatcher_ 1Patcher^ 1DiffOp] 1Differ\ '1ValueComparer[ '1ArrayComparerZ 1DiffOpY 11PreviewablePatcherX 1PatcherW 1Differ$V I1Zend_Wildfire_Plugin_Interface%U K1Zend_Wildfire_Channel_InterfaceT 31Zend_View_Interface(S Q1Zend_View_Helper_Navigation_Helper R A1Zend_View_Helper_InterfaceQ ;1Zend_Validate_Interface,P Y1Zend_Validate_Barcode_AdapterInterface4O i1Zend_Tool_Project_Profile_FileParser_Interface;N w1Zend_Tool_Project_Context_System_TopLevelRestrictable6M m1Zend_Tool_Project_Context_System_NotOverwritable0L a1Zend_Tool_Project_Context_System_Interface)K S1Zend_Tool_Project_Context_Interface,J Y1Zend_Tool_Framework_Registry_Interface3I g1Zend_Tool_Framework_Registry_EnabledInterface.H ]1Zend_Tool_Framework_Provider_Pretendable,G Y1Zend_Tool_Framework_Provider_Interface/F _1Zend_Tool_Framework_Provider_Interactable0E a1Zend_Tool_Framework_Provider_Initializable<D y1Zend_Tool_Framework_Provider_DocblockManifestInterface,C Y1Zend_Tool_Framework_Metadata_Interface/B _1Zend_Tool_Framework_Metadata_Attributable7A o1Zend_Tool_Framework_Manifest_ProviderManifestable7@ o1Zend_Tool_Framework_Manifest_MetadataManifestable,? Y1Zend_Tool_Framework_Manifest_Interface    }dJ3|cJ0]"t9a2




v
g
U
D
6
%

 									r	a	R	B	4		
q\A&
}aH1eJ2oX?'{hWA1x_; uZ?'uV8   < 12kFlushableInterface; 72kClearExpiredInterface: 92kClearByPrefixInterface9 ?2kClearByNamespaceInterface$8 I2kAvailableSpaceCapableInterface7 -2jPatternInterface6 12iExceptionInterface5 /2hRendererInterface4 12gExceptionInterface3 +2fObjectInterface2 12eExceptionInterface1 12dExceptionInterface0 -2cStorageInterface/ 12bExceptionInterface$. I2aAuthenticationServiceInterface- /2`ResolverInterface, 12_ExceptionInterface+ 12^ExceptionInterface* 12]ExceptionInterface!) C2\ValidatableAdapterInterface( -2\AdapterInterface' '2[isAnInterface& /2ZdateTimeInterface% 2Ydecorator$ 2Xprovider# 2Wanalyzer" 2Vrealtime! %2Vasynchronous
  2Utest 2Urunner !2Taggregator 2Sbuilder '2Rconfiguration 2Qobserver !2Qobservable 2Qextension 2Qexception !2Pdefinition !2Odefinition /2NReporterInterface -2MWarningInterface -2MSuccessInterface '2MSkipInterface +2MResultInterface -2MFailureInterface )2LCheckInterface =2LCheckCollectionInterface 12KExceptionInterface 12JDecoratorInterface 12IExceptionInterface
 12HExceptionInterface	 12GExceptionInterface 12FExceptionInterface +2DFilterInterface 12CExceptionInterface" E2BSharedEventsCapableInterface! C2BSharedEventManagerInterface  A2BListenerAggregateInterface 92BEventsCapableInterface 72BEventManagerInterface   A2BEventManagerAwareInterface )2BEventInterface~ -2AScannerInterface} 32@ReflectionInterface| 12?ExceptionInterface{ %2>TagInterfacez ;2>PhpDocTypedTagInterfacey 12=PrototypeInterfacex ?2=PrototypeGenericInterfacew 32<TraitUsageInterfacev 12<GeneratorInterfaceu 12;ExceptionInterfacet %2:TagInterfaces 129ExceptionInterfacer +28ParserInterfaceq 327AnnotationInterfacep +26Parameterizableo !25Listenablen 25Sourcem 24Datablel 23Throwablek +22Parameterizablej 21Visiti 21Elementh 20Streamg 20IWrapper
f 20Filee 2/Touchabled !2/Structuralc 2/Statableb 2/Pointablea 2/Pathable	` 2/Out_ 2/Lockable^ 2/In] !2/Bufferable\ 2.Recursive[ 2-SeekableZ 2-OuterY 2-IteratorX 2-AggregateW 2,SourceV !2,ListenableU 2+Throwable1T c2*PHPUnit_Extensions_Database_UI_IModeFactory*S U2*PHPUnit_Extensions_Database_UI_IMode3R g2*PHPUnit_Extensions_Database_UI_IMediumPrinter,Q Y2*PHPUnit_Extensions_Database_UI_IMedium>P }2*PHPUnit_Extensions_Database_Operation_IDatabaseOperation)O S2*PHPUnit_Extensions_Database_ITester7N o2*PHPUnit_Extensions_Database_IDatabaseListConsumer.M ]2*PHPUnit_Extensions_Database_DB_IMetaData8L q2*PHPUnit_Extensions_Database_DB_IDatabaseConnection8K q2*PHPUnit_Extensions_Database_DataSet_Specs_IFactory5J k2*PHPUnit_Extensions_Database_DataSet_IYamlParser8I q2*PHPUnit_Extensions_Database_DataSet_ITableMetaData8H q2*PHPUnit_Extensions_Database_DataSet_ITableIterator0G a2*PHPUnit_Extensions_Database_DataSet_ITable/F _2*PHPUnit_Extensions_Database_DataSet_ISpec6E m2*PHPUnit_Extensions_Database_DataSet_IPersistable2D e2*PHPUnit_Extensions_Database_DataSet_IDataSetC /2)ResponseInterfaceB -2)RequestInterfaceA -2)MessageInterface@ ;2)MessageFactoryInterface? =2)InternalRequestInterface> )2(TimerInterface= 32'StatusCodeInterface< 92&RetryStrategyInterface!; C2&RetryStrategyChainInterface: )2%RetryInterface9 /2$RedirectInterface8 -2#JournalInterface7 72#JournalEntryInterface"6 E2#JournalEntryFactoryInterface5 12"FormatterInterface"4 E2!PersistentCookieJarInterface   % |YA(sW5z_G/z_D*eI1





p
V
;
!
						k	P	4		 mW2nP1mR:mO9!{`:{a;eJ/eG%               C ?2InputFilterAwareInterfaceB 72EmptyContextInterfaceA 32TranslatorInterface@ =2TranslatorAwareInterface? 72RemoteLoaderInterface> 32FileLoaderInterface= 12ExceptionInterface< ;2MultipleHeaderInterface; +2HeaderInterface: 12ExceptionInterface9 12ExceptionInterface8 12ExceptionInterface7 12ExceptionInterface6 +2StreamInterface5 -2AdapterInterface4 12ExceptionInterface3 32LabelAwareInterface2 '2FormInterface1 ?2FormFactoryAwareInterface#0 G2FieldsetPrepareAwareInterface/ /2FieldsetInterface". E2ElementPrepareAwareInterface- -2ElementInterface&, M2ElementAttributeRemovalInterface+ +2FilterInterface* 12ExceptionInterface") E2EncryptionAlgorithmInterface#( G2CompressionAlgorithmInterface' 12ExceptionInterface& 12ExceptionInterface% /2RendererInterface$ ?2ExtensionManagerInterface# /2RendererInterface" 12ExceptionInterface! /2ResponseInterface  +2ClientInterface '2FeedInterface 72ReaderImportInterface ?2ExtensionManagerInterface 12ExceptionInterface )2EntryInterface& M2SubscriptionPersistenceInterface 12ExceptionInterface /2CallbackInterface 12ExceptionInterface +2FilterInterface 12ExceptionInterface& M2SharedListenerAggregateInterface! C2SharedEventManagerInterface& M2SharedEventManagerAwareInterface( Q2SharedEventAggregateAwareInterface  A2ListenerAggregateInterface 92EventsCapableInterface 72EventManagerInterface  A2EventManagerAwareInterface )2EventInterface 12ExceptionInterface
 12ExceptionInterface	 12ExceptionInterface ;2ServiceLocatorInterface -2LocatorInterface" E2DependencyInjectionInterface '2PartialMarker 32DefinitionInterface 72TableGatewayInterface 12ExceptionInterface 12PredicateInterface   A2PlatformDecoratorInterface %2SqlInterface~ 92PreparableSqlInterface} 32ExpressionInterface| 12ExceptionInterface{ %2SqlInterfacez 32ConstraintInterfacey +2ColumnInterfacex 32RowGatewayInterfacew 12ExceptionInterfacev 12ResultSetInterfaceu 12ExceptionInterfacet /2MetadataInterfaces 12ExceptionInterfacer /2ProfilerInterfaceq 92ProfilerAwareInterfacep /2PlatformInterfaceo 12ExceptionInterfacen 12ExceptionInterfacem 92DriverFeatureInterfacel 12StatementInterfacek +2ResultInterfacej +2DriverInterfacei 32ConnectionInterface!h C2StatementContainerInterfaceg -2AdapterInterfacef 72AdapterAwareInterfacee 12SymmetricInterfaced -2PaddingInterfacec 12ExceptionInterfaceb 12ExceptionInterfacea /2PasswordInterface` 12ExceptionInterface_ 12ExceptionInterface^ 12ExceptionInterface] 72RouteMatcherInterface\ +2PromptInterface[ 12ExceptionInterfaceZ )2ColorInterfaceY -2CharsetInterfaceX -2~AdapterInterfaceW +2}WriterInterfaceV +2|ReaderInterfaceU 12{ProcessorInterfaceT 12zExceptionInterfaceS -2yScannerInterfaceR 32xReflectionInterfaceQ 12wExceptionInterfaceP %2vTagInterfaceO ;2vPhpDocTypedTagInterfaceN 12uPrototypeInterfaceM ?2uPrototypeGenericInterfaceL 32tTraitUsageInterfaceK 12tGeneratorInterfaceJ 12sExceptionInterfaceI %2rTagInterfaceH 12qExceptionInterfaceG +2pParserInterfaceF 32oAnnotationInterfaceE 12nExceptionInterfaceD -2mAdapterInterfaceC +2lPluginInterface B A2kTotalSpaceCapableInterfaceA /2kTaggableInterface@ -2kStorageInterface? 52kOptimizableInterface> /2kIteratorInterface= /2kIterableInterface    f@%
bG,z_D+oQ6iP5





g
G
 					g	B	 	qR.~]B#tYB+cN3fG.dK.iN5Z7           F 73DispatchableInterface E A3ArraySerializableInterface"D E3ComplexTypeStrategyInterfaceC 13ExceptionInterface B A3DiscoveryStrategyInterfaceA 13ValidatorInterface@ -3StorageInterface$? I3StorageInitializationInterface> 53SaveHandlerInterface= -3ManagerInterface< 13ExceptionInterface; +3ConfigInterface: 13ExceptionInterface"9 E3ServiceManagerAwareInterface8 ;3ServiceLocatorInterface"7 E3ServiceLocatorAwareInterface%6 K3MutableCreationOptionsInterface5 53InitializerInterface4 -3FactoryInterface3 ?3DelegatorFactoryInterface2 +3ConfigInterface1 =3AbstractFactoryInterface0 13ExceptionInterface/ 13ExceptionInterface. 3Server- 3Client, 13ExceptionInterface+ -3AdapterInterface* 93
UploadHandlerInterface) 13	ExceptionInterface( 13ExceptionInterface' 13ExceptionInterface& '3RoleInterface% 13AssertionInterface$ '3RoleInterface# /3ResourceInterface" 13ExceptionInterface! 13AssertionInterface  %3AclInterface ;3 ScrollingStyleInterface 12ExceptionInterface ?2AdapterAggregateInterface 12ExceptionInterface -2AdapterInterface 12ExceptionInterface 32RouteStackInterface )2RouteInterface )2RouteInterface 12ExceptionInterface )2RouteInterface ;2ResponseSenderInterface 12ExceptionInterface +2PluginInterface% K2InjectApplicationEventInterface 52ApplicationInterface 92ModuleManagerInterface 12ExceptionInterface =2ServiceListenerInterface 72ConfigMergerInterface! C2ViewHelperProviderInterface 
 A2ValidatorProviderInterface'	 O2TranslatorPluginProviderInterface =2ServiceProviderInterface! C2SerializerProviderInterface 92RouteProviderInterface  A2LogWriterProviderInterface# G2LogProcessorProviderInterface  A2LocatorRegisteredInterface" E2InputFilterProviderInterface 72InitProviderInterface  ?2HydratorProviderInterface" E2FormElementProviderInterface~ ;2FilterProviderInterface"} E2DependencyIndicatorInterface!| C2ControllerProviderInterface'{ O2ControllerPluginProviderInterface#z G2ConsoleUsageProviderInterface$y I2ConsoleBannerProviderInterfacex ;2ConfigProviderInterface w A2BootstrapListenerInterface!v C2AutoloaderProviderInterfaceu 12ExceptionInterfacet 12ExceptionInterfaces 12ExceptionInterfacer 12ContainerInterfaceq 12ExceptionInterfacep 12ExceptionInterfaceo -2AdapterInterfacen 12TransportInterfacem 12ExceptionInterfacel /2WritableInterfacek '2PartInterfacej 12ExceptionInterfacei -2MessageInterfaceh +2FolderInterfaceg 12ExceptionInterfacef 12ExceptionInterfacee 72UnstructuredInterfaced 32StructuredInterfacec =2MultipleHeadersInterfaceb +2HeaderInterfacea 12ExceptionInterface` 12ExceptionInterface_ -2AddressInterface^ +2WriterInterface] -2FirePhpInterface\ 12ChromePhpInterface[ 12ProcessorInterfaceZ +2LoggerInterfaceY 52LoggerAwareInterfaceX 12FormatterInterfaceW +2FilterInterfaceV 12ExceptionInterfaceU '2SplAutoloaderT -2ShortNameLocatorS 12PluginClassLocatorR 12ExceptionInterfaceQ 52ObjectClassInterfaceP 92AttributeTypeInterfaceO 12ExceptionInterfaceN 12ExceptionInterfaceM 12ExceptionInterfaceL 12ExceptionInterfaceK 12ExceptionInterfaceJ 12ExceptionInterface#I G2UnknownInputsCapableInterfaceH ?2ReplaceableInputInterfaceG 92InputProviderInterfaceF )2InputInterface"E E2InputFilterProviderInterfaceD 52InputFilterInterface   . rY?uV<~_@%
iN9 eM5





l
Q
6

					~	g	F	'	xR9*oR5gM;aI.uK*	hP.{]?$hG.                              J -3sPackageInterfaceI =3sCompletePackageInterfaceH /3rArchiverInterfaceG #3qIOInterfaceF 13pInstallerInterfaceE =3oEventSubscriberInterfaceD 33nDownloaderInterfaceC 73nChangeReportInterfaceB +3mPolicyInterfaceA 13lOperationInterface@ 73kConfigSourceInterface? 73jKeyGeneratorInterface> 93iCacheStrategyInterface= 93iCacheProviderInterface< 13hExceptionInterface; 33gTranslatorInterface: 93gTranslatorBagInterface9 93gMetadataAwareInterface8 ?3gMessageCatalogueInterface7 +3fLoaderInterface6 13eExtractorInterface5 13dExceptionInterface4 +3cDumperInterface3 13bOperationInterface2 53aIOExceptionInterface1 13aExceptionInterface0 =3`EventSubscriberInterface/ =3`EventDispatcherInterface'. O3_TraceableEventDispatcherInterface- 73^ParameterBagInterface, +3]DumperInterface+ 73\InstantiatorInterface* ?3[PrependExtensionInterface) 13[ExtensionInterface%( K3[ConfigurationExtensionInterface' 13ZExceptionInterface& +3YDumperInterface% =3XTaggedContainerInterface$ )3XScopeInterface&# M3XIntrospectableContainerInterface" 13XContainerInterface! ;3XContainerAwareInterface  ;3WRepeatablePassInterface 73WCompilerPassInterface 3VValidator /3UResourceInterface ;3TLoaderResolverInterface +3TLoaderInterface 93SPrototypeNodeInterface '3SNodeInterface 93SConfigurationInterface# G3RParentNodeDefinitionInterface 33RNodeParentInterface 53QFileLocatorInterface 53QConfigCacheInterface! C3QConfigCacheFactoryInterface 73PTwigRendererInterface! C3PTwigRendererEngineInterface =3MServiceProviderInterface! C3MControllerProviderInterface 3LIWriter 3LOutput -3KJsonSerializable# G3JUuidContentFormatterInterface
 '3IUuidInterface	 53IUuidFactoryInterface 73HTimeProviderInterface 73HNodeProviderInterface 93GTimeGeneratorInterface =3GRandomGeneratorInterface 93FTimeConverterInterface =3FNumberConverterInterface )3ECodecInterface 53DUuidBuilderInterface  +3CTargetInterface 53BNodeVisitorInterface~ '3ANestInterface} 53@IndentationInterface| +3?FilterInterface{ 13=ExceptionInterfacez 13<GeneratorInterfacey 13;ExceptionInterfacex 13:ExceptionInterfacew /39ResolverInterfacev 738TreeRendererInterfaceu /38RendererInterface"t E37RetrievableChildrenInterfaces )37ModelInterfacer ;37ClearableModelInterfaceq +36HelperInterfacep +35HelperInterfaceo 134ExceptionInterface*n U33ValidatorPluginManagerAwareInterfacem 133ValidatorInterfacel 332TranslatorInterfacek =32TranslatorAwareInterfacej 131ExceptionInterfacei -30AdapterInterfaceh %3/UriInterfaceg 13.ExceptionInterfacef 13-ExceptionInterfacee 13,DecoratorInterfaced 13+ExceptionInterfacec 13*ExceptionInterfaceb /3)TaggableInterfacea 13(ExceptionInterface` 13'ExceptionInterface_ 13&DecoratorInterface^ 93%StringWrapperInterface] 93$PhpLegacyCompatibility\ /3#StrategyInterface[ 13"ExceptionInterfaceZ ;3!NamingStrategyInterfaceY =3 StrategyEnabledInterface$X I3 NamingStrategyEnabledInterfaceW =3 HydratorOptionsInterfaceV /3 HydratorInterfaceU 93 HydratorAwareInterfaceT 13 HydrationInterfaceS 93 FilterEnabledInterfaceR ;3FilterProviderInterfaceQ +3FilterInterfaceP 33ExtractionInterfaceO 13ExceptionInterfaceN =3MergeReplaceKeyInterfaceM /3ResponseInterfaceL -3RequestInterfaceK 33ParametersInterfaceJ =3ParameterObjectInterfaceI -3MessageInterfaceH -3JsonSerializableG 93InitializableInterface    nR.nX?'Y=yJ6Y+




c
D
*
					n	<	b@zO"zL%uR1~bJ3}jW=+o^L4$u`H3%  P 3RemoteO 3QueueN %3PartedModuleM +3PageSourceSaverL %3MultiSessionK )3ElementLocatorJ -3DoctrineProviderI +3DependsOnModuleH 3DbG 33ConflictsWithModuleF %3ActiveRecordE 3ThrowableD -3WebDriverElementC 3IMailerB +3ISessionStorageA 3IResponse@ 3IRequest? !3IContainer> !3IComponent= '3ILatteFactory< -3ITemplateFactory; 3ITemplate: -3IStatePersistent9 +3ISignalReceiver8 #3IRenderable7 3IRouter6 3IResponse5 /3IPresenterFactory4 !3IPresenter3 !3Subscriber2 /3IExceptionHandler1 3Exception0 +3EventSubscriber/ 3ILogger. 3IBarPanel- 3IJournal, 3IStorage+ '3RichInterface* +3ParentInterface) )3ChildInterface( +3FinderInterface' 33ReflectionInterface& 73SourceCodeHighlighter% 3Markup$ -3VersionInterface# ;3ThemeResourcesInterface!" C3ThemeConfigurationInterface&! M3ThemeConfigurationAwareInterface  =3TemplateFactoryInterface  A3TemplateDecoratorInterface /3TemplateInterface ;3TemplateRouterInterface  A3ReflectionFactoryInterface& M3MagicPropertyReflectionInterface' O3MagicParameterReflectionInterface$ I3MagicMethodReflectionInterface+ W3ParentClassElementsExtractorInterface% K3MagicPropertyExtractorInterface# G3MagicMethodExtractorInterface* U3ClassTraitElementsExtractorInterface* U3ClassMagicElementsExtractorInterface* U3AnnotationPropertyExtractorInterface( Q3AnnotationMethodExtractorInterface )3NamedInterface )3LinedInterface -3InTraitInterface 53InNamespaceInterface -3InClassInterface! C3PropertyReflectionInterface" E3ParameterReflectionInterface
 ?3MethodReflectionInterface!	 C3FunctionReflectionInterface" E3ExtensionReflectionInterface  A3ElementReflectionInterface! C3ConstantReflectionInterface =3ClassReflectionInterface& M3ClassConstantReflectionInterface/ _3AbstractFunctionMethodReflectionInterface 93ParserStorageInterface +3ParserInterface&  M3FileProcessingExceptionInterface 53GroupSorterInterface~ ;3ElementStorageInterface} 93ElementSorterInterface| /3ElementsInterface{ 93ElementFilterInterfacez ?3ElementExtractorInterface#y G3AutocompleteElementsInterfacex -3BackendInterface!w C3PhpCodeHighlighterInterfacev ;3MarkdownParserInterface u A3TemplateGeneratorInterface+t W3ConditionalTemplateGeneratorInterface#s G3RelativePathResolverInterfacer =3ElementResolverInterfaceq 53StepCounterInterfacep ;3GeneratorQueueInterfaceo =3EventSubscriberInterfacen =3EventDispatcherInterfacem )3EventInterfacel #3IOInterface,k Y3DefaultInputDefinitionFactoryInterfacej 53ProgressBarInterface i A3ProgressBarFacadeInterfaceh =3OptionValidatorInterfaceg 93FileValidatorInterfacef =3OptionsResolverInterface e A3FileReaderManagerInterfaced 33FileReaderInterface#c G3InputOptionsProviderInterfaceb 93ConfigurationInterfacea 13ThemeConfigFactory` +3ReaderInterface_ 93OptionsResolverFactory^ 33TranslatorInterface] 13ExtensionInterface\ +3ParserInterface[ -3HandlerInterfaceZ '3NodeInterfaceY 13ExceptionInterfaceX /3SelectorInterfaceW -3~ElementInterfaceV +3}DriverInterfaceU 33|ConstraintInterface
T 3zIBarS '3ySomeInterfaceR 13xVcsDriverInterface!Q C3wWritableRepositoryInterfaceP 33wRepositoryInterface"O E3wInstalledRepositoryInterfaceN +3vPluginInterfaceM +3uLoaderInterfaceL ;3tLinkConstraintInterfaceK 53sRootPackageInterface   ' veN<!o[@({`I2g. W.


t
7
				a	<	{S's^E'hI4kY=,}jYC3 zdR@/!}m]J+x]C'             Y 34SearchableInterfaceX /4NameableInterfaceW 14ArrayableInterfaceV 34SerializerInterfaceU 74
BulkEndpointInterfaceT 34	ConnectionInterface S A4	ConnectionFactoryInterfaceR /4SelectorInterfaceQ ;4ConnectionPoolInterfaceP 94ElasticsearchExceptionO !4ExecutableN 4ElementM 4DatableL 4PhrasingK 4ElementJ 4ViewableI 4 RouterH 3NumberG 3NonconvexF 3IntervalE 3HolderD 3FiniteC !3EnumerableB 3CrateA 3Constant@ 3Exception? 3Localizer> '3Autocompleter= '3isAnInterface< /3dateTimeInterface; 3decorator: 3provider9 3analyzer8 3realtime7 %3asynchronous
6 3test5 3runner4 !3aggregator3 3builder2 '3configuration1 3observer0 !3observable/ 3extension. 3exception- !3definition, !3definition+ %3UrlInterface* 93RequestParserInterface) -3RequestInterface( +3EventsInterface' 3Linkable& 33ComponentsInterface% 3Arrayable$ 13SerializeInterface# #3Responseble" +3ObjectInterface! 13ExceptionInterface  33CollectionInterface +3ErrorsInterface /3DateTimeInterface -3SessionInterface %3UrlInterface 93RequestParserInterface -3RequestInterface #3Requestable )3TokenInterface -3ServiceInterface )3TokenInterface 13SignatureInterface -3ServiceInterface )3TokenInterface 73TokenStorageInterface -3ServiceInterface %3UriInterface 33UriFactoryInterface +3ClientInterface 53CredentialsInterface* U3phpMorphy_WordForm_WordFormInterface3 g3phpMorphy_Util_Collection_CollectionInterface)
 S3phpMorphy_UserDict_VisitorInterface%	 K3phpMorphy_UserDict_LogInterface3 g3phpMorphy_UserDict_Log_ErrorsHandlerInterface4 i3phpMorphy_UnicodeHelper_UnicodeHelperInterface( Q3phpMorphy_Storage_StorageInterface& M3phpMorphy_Source_SourceInterface" E3phpMorphy_Shm_CacheInterface, Y3phpMorphy_Semaphore_SemaphoreInterface* U3phpMorphy_Paradigm_ParadigmInterface ?3phpMorphy_MorphyInterface*  U3phpMorphy_Morphier_MorphierInterface( Q3phpMorphy_GramTab_GramTabInterface:~ u3phpMorphy_GrammemsProvider_GrammemsProviderInterface*} U3phpMorphy_GramInfo_GramInfoInterface0| a3phpMorphy_Generator_StorageHelperInterface4{ i3phpMorphy_Generator_Decorator_HandlerInterface z A3phpMorphy_Fsa_FsaInterface&y M3phpMorphy_Finder_FinderInterface+x W3phpMorphy_Dict_Writer_WriterInterface6w m3phpMorphy_Dict_Writer_Observer_ObserverInterface?v 3phpMorphy_Dict_Source_ValidatingSource_ValidatorInterface+u W3phpMorphy_Dict_Source_SourceInterface6t m3phpMorphy_Dict_Source_NormalizedAncodesInterface"s E3phpMorphy_DecoratorInterface3r g3phpMorphy_Aot_GramTab_GramInfoHelperInterface2q e3phpMorphy_AnnotDecoder_AnnotDecoderInterface8p q3phpMorphy_AncodesResolver_AncodesResolverInterfaceo )3ThumbInterfacen )3QueryInterfacem 13MigrationInterfacel 33ConnectionInterfacek 73ActiveRecordInterfacej 53ActiveQueryInterfacei 3Linkableh 33ComponentsInterfaceg 3Arrayablef )3CacheInterfacee +3EventsInterfaced 13SerializeInterfacec #3Responsebleb +3ObjectInterfacea 13ExceptionInterface` 3Configure_ 33CollectionInterface^ -3TrackerInterface] 73StateCheckerInterface\ /3ResourceInterface[ 13ExceptionInterfaceZ 3UndefinedY )3ScenarioDrivenX 3ReportedW 3PlainV #3DescriptiveU %3ConfigurableT )3ConsolePrinter	S 3WebR +3SessionSnapshotQ +3ScreenshotSaver   ( rbK2 x`N1rZ8pU@%
qJ1





t
S
.
					w	\	B	'	oT4}bG/oV6eC(nS*gB(hP/s]C(      f 14uExceptionInterfacee /4tWritableInterfaced '4sPartInterfacec 14rExceptionInterfaceb -4qMessageInterfacea +4pFolderInterface` 14oExceptionInterface_ 14nExceptionInterface^ 74mUnstructuredInterface] 34mStructuredInterface\ =4mMultipleHeadersInterface[ +4mHeaderInterfaceZ 14lExceptionInterfaceY 14kExceptionInterfaceX -4jAddressInterfaceW /4iRendererInterfaceV ?4hExtensionManagerInterfaceU /4gRendererInterfaceT 14fExceptionInterfaceS /4eResponseInterface"R E4eHeaderAwareResponseInterface Q A4eHeaderAwareClientInterfaceP +4eClientInterfaceO '4dFeedInterfaceN 74cReaderImportInterfaceM ?4cExtensionManagerInterfaceL 14bExceptionInterfaceK )4aEntryInterface&J M4`SubscriptionPersistenceInterfaceI 14_ExceptionInterfaceH /4^CallbackInterfaceG 14]ExceptionInterfaceF -4\ScannerInterfaceE 34[ReflectionInterfaceD 14ZExceptionInterfaceC %4YTagInterfaceB ;4YPhpDocTypedTagInterfaceA 14XPrototypeInterface@ ?4XPrototypeGenericInterface? 34WTraitUsageInterface> 14WGeneratorInterface= 14VExceptionInterface< %4UTagInterface; 14TExceptionInterface: +4SParserInterface9 34RAnnotationInterface8 14QExceptionInterface7 ;4PServiceLocatorInterface6 -4PLocatorInterface"5 E4PDependencyInjectionInterface4 '4OPartialMarker3 34ODefinitionInterface2 14NExceptionInterface1 -4MAdapterInterface0 /4LRendererInterface/ 14KExceptionInterface. +4JObjectInterface- 14IExceptionInterface, 14HExceptionInterface+ 14GExceptionInterface* 14FExceptionInterface) -4EStorageInterface( +4DReportInterface' )4DMatchInterface& 14CExceptionInterface% 74BEventContextInterface$ ;4AEventCollectorInterface# 14ACollectorInterface" /4AAutoHideInterface! 14@ExceptionInterface  14?ExceptionInterface -4>AdapterInterface 14=SymmetricInterface -4<PaddingInterface 14;ExceptionInterface 14:ExceptionInterface /49PasswordInterface 148ExceptionInterface 147ExceptionInterface 146ExceptionInterface 145ExceptionInterface 144ExceptionInterface! C43UserServiceOptionsInterface$ I43UserControllerOptionsInterface" E43RegistrationOptionsInterface =43PasswordOptionsInterface$ I43AuthenticationOptionsInterface '42UserInterface 141ExceptionInterface 140ExceptionInterface '4/UserInterface -4.ChainableAdapter
 14-ValidatorInterface	 -4,StorageInterface$ I4,StorageInitializationInterface 54+SaveHandlerInterface -4*ManagerInterface 14)ExceptionInterface +4(ConfigInterface '4'RoleInterface /4&ResourceInterface 14%ExceptionInterface  14$AssertionInterface %4#AclInterface~ 14"ExceptionInterface"} E4!ServiceManagerAwareInterface| ;4!ServiceLocatorInterface"{ E4!ServiceLocatorAwareInterface%z K4!MutableCreationOptionsInterfacey 54!InitializerInterfacex -4!FactoryInterfacew ?4!DelegatorFactoryInterfacev +4!ConfigInterfaceu =4!AbstractFactoryInterface!t C4 ObjectManagerAwareInterfaces 94SpecificationInterfacer %4NamedCommandq !4Middlewarep 34MethodNameInflectoro )4HandlerLocatorn 54CommandNameExtractorm 4Exceptionl +4ExternalCommandk 54SelfExecutingCommandj )4MultiInterfacei +4IncDecInterfaceh +4ExtendInterfaceg '4PoolInterfacef '4ItemInterfacee +4DriverInterfaced 4Exceptionc -4EncoderInterfaceb )4ProjectFactorya 4Project
` 4File_ 4Element^ )4CacheInterface] -4AdapterInterface	\ 4DSL[ 14ExceptionInterfaceZ /4StrategyInterface   I y^H-hP5 q\A%pU:kU9




z
[
;
						F	/		qZH)~_?'tV=+~jWD.!jM2zhVE7&sbS=)dI                   } 14ExceptionInterface| 34AutoloaderInterface"{ E4Console_CommandLine_Renderer#z G4Console_CommandLine_Outputter)y S4Console_CommandLine_MessageProvider/x _4Console_CommandLine_CustomMessageProviderw #4AnInterfacev '4CoreInterfaceu 4Streamt 4IWrapper
s 4Filer 4Touchableq !4Structuralp 4Statableo 4Pointablen 4Pathable	m 4Outl 4Lockablek 4Inj !4Bufferablei 4Recursiveh 4Seekableg 4Outerf 4Iteratore 4Aggregated 4Contract2c 4Contract1	b 4Bara 4Contract1
` 4Titi_ -4ScoringInterface^ )4ScoreInterface] 14ResultSetInterface\ 34ExportableInterface[ #4MethodUsageZ 14ExtractorInterfaceY 54TreeBuilderInterfaceX 94ConfigurationInterfaceW 4CacheV +4ResultInterfaceU +4BoundsInterfaceT !4AggregatorS +4FactorInterfaceR /4FormaterInterfaceQ %4JobInterface
P 4IBarO '4SomeInterfaceN !4GInterfaceM !4CInterfaceL #4ClassLoaderK !4RenderableJ !4ExportableI 4LoggerH 4Writer
G 4SttyF 4ConsoleE 4ExtensionD 54ApplicationExtensionC 54ConsoleInfoInterfaceB 4SeparatorA -4CommandInterface@ 74GitExceptionInterface? 4IParser> %4SessionStore= ;4ParamConverterInterface< 94ConfigurationInterface; 14FormatterInterface: 14ExceptionInterface9 -4CrawlerInterface8 +4EngineInterface7 ;4TemplateFinderInterface6 94ValueSupplierInterface5 /4HashableInterface4 +4FilterInterface"3 E4DependencyExtractorInterface2 +4WorkerInterface1 /4ResourceInterface0 ?4IteratorResourceInterface/ 94FormulaLoaderInterface. 4Exception- )4CacheInterface, )4AssetInterface+ =4AssetCollectionInterface* 14TestFlushableCache!) C4TestClearableFlushableCache( 14TestClearableCache' '4SortableStore& '4KeyValueStore% )4CountableStore:$ u4PHPUnit_Extensions_Selenium2TestCase_SessionStrategy# '4RuleInterface" 54RouteFilterInterface! 74FinalMatcherInterface  94RouteEnhancerInterface! C4VersatileGeneratorInterface! C4RouteReferrersReadInterface ;4RouteReferrersInterface 94RouteProviderInterface 54RouteObjectInterface 94RedirectRouteInterface! C4PagedRouteProviderInterface  A4ContentRepositoryInterface 54ChainRouterInterface 94ChainedRouterInterface 34CandidatesInterface '4SeedInterface 14MigrationInterface /4CreationInterface -4WrapperInterface -4AdapterInterface +4ConfigInterface /4TaggableInterface 14ExceptionInterface 14ExceptionInterface 14DecoratorInterface
 14ExceptionInterface	 14ExceptionInterface 4Server 4Client" E4ComplexTypeStrategyInterface 14ExceptionInterface  A4DiscoveryStrategyInterface -4ScannerInterface 34ReflectionInterface 14ExceptionInterface  %4TagInterface ;4PhpDocTypedTagInterface~ 14PrototypeInterface} ?4PrototypeGenericInterface| 34TraitUsageInterface{ 14GeneratorInterfacez 14ExceptionInterfacey %4TagInterfacex 14ExceptionInterfacew +4ParserInterfacev 34AnnotationInterfaceu 14ExceptionInterfacet 14ExceptionInterfaces 4Serverr 4Clientq 94UploadHandlerInterfacep 14~ExceptionInterfaceo 14}ExceptionInterfacen 14|ExceptionInterfacem '4{RoleInterfacel 14{AssertionInterfacek 14zExceptionInterfacej 14yExceptionInterfacei 14xContainerInterfaceh 14wExceptionInterfaceg 14vTransportInterface   ^ `2bE'}bG+qU>!u`E*




~
g
K
3

					t	P	4		bI&iE4m[E+|lYK8$|n^K7(wg[K=% yfN;+u^                                       )5%ScopeInterface 5%Scope 15$ConnectorInterface! C5#ConnectionResolverInterface 35#ConnectionInterface
 5"View 5"Factory 5!Validator 75!ValidatesWhenResolved 5!Factory !5 Renderable
 +5 MessageProvider	 !5 MessageBag 5 Jsonable 5 Htmlable 5 Arrayable #5UrlRoutable %5UrlGenerator +5ResponseFactory 5Registrar 5Database  #5ShouldQueue +5QueueableEntity~ 5Queue} 5Monitor	| 5Job{ 5Factoryz )5EntityResolvery 5Pipeline	x 5Hubw 5Presenterv 5Paginatoru 55LengthAwarePaginatort 5MailQueues 5Mailer	r 5Logq 5Kernelp 5Hashero #5Applicationn !5Filesystemm 5Factoryl 5Cloudk !5Dispatcherj 5Encrypteri -5ExceptionHandlerh +5QueueingFactoryg 5Factoryf =5ContextualBindingBuildere 5Containerd 5Kernelc #5Applicationb !5Repositorya 5Store` !5Repository_ 5Factory^ %5SelfHandling] 15QueueingDispatcher\ !5Dispatcher[ 15ShouldBroadcastNowZ +5ShouldBroadcastY 5FactoryX #5BroadcasterW %5
UserProviderV /5
SupportsBasicAuthU '5
StatefulGuardT 5
RegistrarS 75
PasswordBrokerFactoryR )5
PasswordBrokerQ 5
GuardP 5
FactoryO -5
CanResetPasswordN +5
Authenticatable
M 5	GateL %5	AuthorizableK =5TokenRepositoryInterfaceJ 5TestCase!I C5ConfigurationAwareInterfaceH ;5InlineRendererInterfaceG =5InlineProcessorInterfaceF 75InlineParserInterfaceE 15ExtensionInterfaceD ?5 EnvironmentAwareInterfaceC =5 ElementRendererInterface B A5 DocumentProcessorInterfaceA -5 ContextInterface@ 94BlockRendererInterface? 54BlockParserInterface> +4InlineContainer= -4HeadersInterface< 54EnvironmentInterface; -4CookiesInterface: +4RouterInterface9 )4RouteInterface8 34RouteGroupInterface!7 C4InvocationStrategyInterface6 34CollectionInterface5 ?4CallableResolverInterface4 /4RendererInterface3 /4RendererInterface2 14DecoratorInterface1 )4ColorInterface0 14ExceptionInterface/ +4QrCodeInterface. 34ImageMergeInterface- )4ImageInterface, /4DataTypeInterface+ 54EntrustUserInterface* 54EntrustRoleInterface ) A4EntrustPermissionInterface( -4StorageInterface' 34DataSourceInterface& 14PersisterInterface% 14GeneratorInterface$ %4VCSInterface# 94PathValidatorInterface" +4LoggerInterface! -4WritingInterface"  E4WorkspaceManagementInterface 34VersioningInterface 14TransportInterface 54TransactionInterface )4QueryInterface 34PermissionInterface 54ObservationInterface! C4NodeTypeManagementInterface ;4NodeTypeFilterInterface$ I4NodeTypeCndManagementInterface -4LockingInterface -4FactoryInterface 34TranslatorInterface 14GeneratorInterface 14ExtractorInterface 14ExceptionInterface! C4SignatureGeneratorInterface ?4SignatureCheckerInterface& M4ClassSignatureGeneratorInterface ;4ProxyGeneratorInterface 74VirtualProxyInterface 54ValueHolderInterface
 ;4SmartReferenceInterface	 74RemoteObjectInterface )4ProxyInterface 34NullObjectInterface 54LazyLoadingInterface 54GhostObjectInterface" E4FallbackValueHolderInterface+ W4AccessInterceptorValueHolderInterface  A4AccessInterceptorInterface! C4ClassNameInflectorInterface   A4GeneratorStrategyInterface 54FileLocatorInterface~ -4AdapterInterface   } bI1sX>0m\;#	sA}eS4	




|
Y
1
				|	]	A	$		|]:v[B+pRD%qW>&
bF(QI{A                , Y5vApishka_Templater_TokenParserInterface7 o5vApishka_Templater_Sandbox_SecurityPolicyInterface, Y5vApishka_Templater_NodeVisitorInterface+ W5vApishka_Templater_NodeOutputInterface6 m5vApishka_Templater_Node_Expression_UnaryInterface5 k5vApishka_Templater_Node_Expression_TestInterface; w5vApishka_Templater_Node_Expression_BinaryTestInterface7 o5vApishka_Templater_Node_Expression_BinaryInterface'
 O5vApishka_Templater_LoaderInterface*	 U5vApishka_Templater_ExtensionInterface6 m5vApishka_Templater_Extension_InitRuntimeInterface2 e5vApishka_Templater_Extension_GlobalsInterface- [5vApishka_Templater_ExistsLoaderInterface& M5vApishka_Templater_CacheInterface 55uParserCacheInterface) S5tExpressionFunctionProviderInterface 75sUriRetrieverInterface 35rConstraintInterface  95pStageStrategyInterface +5oServerInterface~ ;5nPasswordGetterInterface} /5mExecutorInterface| 35lCollectionInterface{ 15kContainerInterfacez 35jFileParserInterfacey +5iConfigInterfacex -5hHandlerInterfacew /5gRepositoryFactoryv !5fTreeWalkeru 5eProxyt +5dEntityPersisters 35cCollectionPersisterr '5bQuoteStrategyq )5bNamingStrategyp 95bEntityListenerResolvero !5bAnnotationn 95aEntityManagerInterfacem 5aCachel 75`CachedEntityPersisterk ?5_CachedCollectionPersisterj +5^CachedPersisteri #5]CacheLoggerh +5\TimestampRegiong 5\Regionf 35\QueryCacheValidatore !5\QueryCached )5\MultiGetRegionc )5\EntityHydratorb -5\ConcurrentRegiona 15\CollectionHydrator` %5\CacheFactory_ !5\CacheEntry^ 15[ValidatorInterface] 35ZRepositoryInterface\ ?5YTwig_TokenParserInterface%[ K5YTwig_TokenParserBrokerInterfaceZ 15YTwig_TestInterface Y A5YTwig_TestCallableInterfaceX 95YTwig_TemplateInterface*W U5YTwig_Sandbox_SecurityPolicyInterfaceV 55YTwig_ParserInterfaceU ?5YTwig_NodeVisitorInterfaceT =5YTwig_NodeOutputInterfaceS 15YTwig_NodeInterfaceR 55YTwig_LoaderInterfaceQ 35YTwig_LexerInterfaceP 95YTwig_FunctionInterface$O I5YTwig_FunctionCallableInterfaceN 55YTwig_FilterInterface"M E5YTwig_FilterCallableInterfaceL ;5YTwig_ExtensionInterface)K S5YTwig_Extension_InitRuntimeInterface%J K5YTwig_Extension_GlobalsInterface I A5YTwig_ExistsLoaderInterfaceH 95YTwig_CompilerInterfaceG 35YTwig_CacheInterfaceF +5XDriverInterfaceE 55WDelegatableInterfaceD 55WTestNoExplicitDefineC '5WSomeInterfaceB %5WDepInterfaceA 95WSharedAliasedInterface@ 5VReflector? +5VReflectionCache> 5UException= 15TValidatorInterface< 15SGeneratorInterface; )5RFluidInterface: 15QIUpdatableKeyModel9 95QILogicalDeletableModel(8 Q5PZend_Loader_PluginLoader_Interface/7 _5PZend_Auth_Adapter_Http_Resolver_Interface6 ?5OSessionValidatorInterface!5 C5OSessionSaveHandlerInterface4 55NAuthStorageInterface3 55NAuthAdapterInterface2 '5MRoleInterface1 /5MResourceInterface0 +5MAssertInterface/ =5KTenantExceptionInterface. 5JProvider- 15JContainerInterface, 5JArrayable+ 35IConnectionInterface* 95FDataTableScopeContract) ;5FDataTableEngineContract( /5FDataTableContract' =5FDataTableButtonsContract& 5EIUser% /5DRendererInterface$ 15CContainerInterface# +5BRouterInterface" 35BDispatcherInterface! /5ADebuggerInterface  35/ViewFinderInterface +5.EngineInterface /5-CompilerInterface ?5,PresenceVerifierInterface +5+LoaderInterface -5*SessionInterface ;5*ExistenceAwareInterface 15)ValidatorInterface  A5(FailedJobProviderInterface 15'ConnectorInterface" E5&MigrationRepositoryInterface   E hP4{gK5s]I+sV>$ kD



~
R
&						j	L	3	fL'eXB5(yfI=2'l[E5"|iVD2q_E/eM1`E               ) 15ExceptionInterface( =5EventSubscriberInterface' =5EventDispatcherInterface'& O5TraceableEventDispatcherInterface% )5StyleInterface$ +5OutputInterface# 95ConsoleOutputInterface" )5InputInterface! 35InputAwareInterface  +5HelperInterface# G5OutputFormatterStyleInterface =5OutputFormatterInterface 15ExceptionInterface 35DescriptorInterface 35DataDumperInterface +5DumperInterface +5ClonerInterface '5isAnInterface /5dateTimeInterface 5decorator 5provider 5analyzer 5realtime %5asynchronous
 5test 5runner !5aggregator 5builder '5configuration 5observer !5observable
 5extension	 5exception !5definition !5definition '5isAnInterface /5dateTimeInterface 5decorator 5provider 5analyzer 5realtime  %5asynchronous
 5test~ 5runner} !5aggregator| 5builder{ '5configurationz 5observery !5observablex 5extensionw 5exceptionv !5definitionu !5definitiont #5IUnknownVars '5IUnknownArrayr %5IDependentABq #5IDependentAp 5ICo 5IBn 5IA	m 5Iocl 55SimplePie_Cache_Basek !5uploadablej !5executablei 5editableh 5listableg +5FilterInterfacef =5EventSubscriberInterfacee 75EventEmitterInterface d A5FatalErrorHandlerInterface
c 5Ifce
b 5Ifcea '5IRowContainer
` 5IRow_ 35ISupplementalDriver^ !5IStructure] '5IRowContainer
\ 5IRow[ %5IConventionsZ #5IReflectionY '5NodeInterfaceX +5SocketInterfaceW -5NetdataInterface"V E5ClientIpContextTestInterfaceU /5ClientIpInterfaceT 35phpfastcache_driverS =5Hybrid_Storage_InterfaceR 55iaInterfaceDbAdapter"Q E5ClientIpContextTestInterfaceP /5ClientIpInterfaceO +5ClientInterfaceN 35TeacherApiInterfaceM -5RequestInterfaceL 75ClassroomApiInterfaceK 35ExpressionInterfaceJ 5ValidatorI /5ContractInvariantH 35ConsoleOutputEngine)G S5AllMatchingTypesListTest_Interface4)F S5AllMatchingTypesListTest_Interface3)E S5AllMatchingTypesListTest_Interface2)D S5AllMatchingTypesListTest_Interface1C =5RequireObject_Interface1$B I5RequireObjectOfType_Interface1$A I5RequireDefinedTrait_Interface1)@ S5RequireDefinedObjectType_Interface1(? Q5RequireDefinedInterface_Interface1$> I5RequireDefinedClass_Interface1 = A5IsDefinedTrait__Interface1%< K5IsDefinedObjectType__Interface1$; I5IsDefinedInterface__Interface1 : A5IsDefinedClass__Interface1!9 C5IsCompatibleWith_Interface18 /5CheckableForEmpty7 +5LoggerInterface6 55LoggerAwareInterface5 %5ConfigLoader4 #5OsInterface3 35ProvisioningAdapter2 15OsAdapterValidator1 5OsAdapter0 55HostAdapterValidator/ #5HostAdapter. %5GroupAdapter- 75TestEnvironment_Group, #5SupportedOs+ '5SupportedHost* '5DeviceAdapter) '5CommandClient( 5Feature' -5CliSignalHandler!& C5MockServletManagerInterface% +5ValidationAware$ %5Validateable# 35ServletContextAware" '5EncodingAware! 35DefaultHeadersAware  #5ActionAware +5ResultInterface 55~InterceptorInterface ?5}ResultDescriptorInterface ;5}PathDescriptorInterface ?5}ActionDescriptorInterface ;5|DispatchActionInterface 35|ControllerInterface +5|ActionInterface 35{LinterTestInterface ?5zSuppressionIndexInterface( Q5yCurrencyConversionServiceInterface +5xRouterInterface )5wByKeyInterface   x {cH-}Q,mL2}b9iQ9




x
_
8
						m	T	:	sN3 nS:u\?yM0iL8wP)tZ1xQ5          ! 36ClassPatchInterface  )6TokenInterface 36MagicalApiInterface$ I6
PHPUnit_Runner_TestSuiteLoader$ I6
PHPUnit_Framework_TestListener 96
PHPUnit_Framework_Test# G6
PHPUnit_Framework_SkippedTest& M6
PHPUnit_Framework_SelfDescribing! C6
PHPUnit_Framework_RiskyTest& M6
PHPUnit_Framework_IncompleteTest /6
PHPUnit_Exception$ I6	PhakeTest_TraversableInterface ?6	PhakeTest_StaticInterface  A6	PhakeTest_MockedInterface2 ?6	PhakeTest_MockedInterface$ I6	PhakeTest_MockedChildInterface$ I6	PhakeTest_ConstructorInterface$ I6	Phake_Stubber_IAnswerContainer! C6	Phake_Stubber_IAnswerBinder 76	Phake_Stubber_IAnswer# G6	Phake_Matchers_IMethodMatcher. ]6	Phake_Matchers_IChainableArgumentMatcher% K6	Phake_Matchers_IArgumentMatcher
 #6	Phake_IMock	 56	Phake_Client_IClient? 6	Phake_ClassGenerator_InvocationHandler_IInvocationHandler" E6	Phake_ClassGenerator_ILoader& M6	Phake_CallRecorder_IVerifierMode4 i6	Phake_CallRecorder_IVerificationFailureHandler 56ParserCacheInterface) S6ExpressionFunctionProviderInterface -6ProcessInterface 16ExceptionInterface"  E6ServiceManagerAwareInterface ;6ServiceLocatorInterface"~ E6ServiceLocatorAwareInterface%} K6MutableCreationOptionsInterface| 56InitializerInterface{ -6FactoryInterfacez ?6DelegatorFactoryInterfacey +6ConfigInterfacex =6AbstractFactoryInterfacew 16ExceptionInterfacev -6AdapterInterfaceu 16 ExceptionInterfacet 15ExceptionInterfaces -5AdapterInterfacer 15ExceptionInterfaceq 15ExceptionInterfacep 35TranslatorInterfaceo =5TranslatorAwareInterfacen 75RemoteLoaderInterfacem 35FileLoaderInterfacel 15ExceptionInterfacek +5FilterInterfacej 15ExceptionInterface"i E5EncryptionAlgorithmInterface#h G5CompressionAlgorithmInterfaceg +5WriterInterfacef +5ReaderInterfacee 15ProcessorInterfaced 15ExceptionInterfacec +5PluginInterface b A5TotalSpaceCapableInterfacea /5TaggableInterface` -5StorageInterface_ 55OptimizableInterface^ /5IteratorInterface] /5IterableInterface\ 15FlushableInterface[ 75ClearExpiredInterfaceZ 95ClearByPrefixInterfaceY ?5ClearByNamespaceInterface$X I5AvailableSpaceCapableInterfaceW -5PatternInterfaceV 15ExceptionInterface)U S5ConstraintViolationBuilderInterfaceT 15ValidatorInterface"S E5ContextualValidatorInterfaceR 75StaticLoaderInterfaceQ 35LegacyClassMetadataP +5EntityInterfaceO +5LoaderInterfaceN =5MetadataFactoryInterfaceM ?5PropertyMetadataInterfaceL /5MetadataInterfaceK 95ClassMetadataInterfaceJ )5CacheInterfaceI 15ExceptionInterfaceH ?5ExecutionContextInterface&G M5ExecutionContextFactoryInterfaceF 15ValidatorInterfaceE ?5ValidatorBuilderInterface D A5ValidationVisitorInterfaceC ?5PropertyMetadataInterface(B Q5PropertyMetadataContainerInterface A A5ObjectInitializerInterface@ /5MetadataInterface? =5MetadataFactoryInterface$> I5GroupSequenceProviderInterface%= K5GlobalExecutionContextInterface< ?5ExecutionContextInterface&; M5ConstraintViolationListInterface": E5ConstraintViolationInterface"9 E5ConstraintValidatorInterface)8 S5ConstraintValidatorFactoryInterface7 35ClassBasedInterface6 35TranslatorInterface5 95TranslatorBagInterface4 95MetadataAwareInterface3 ?5MessageCatalogueInterface2 +5LoaderInterface1 15ExtractorInterface0 15ExceptionInterface/ +5DumperInterface. 15OperationInterface- )5PipesInterface, 15ExceptionInterface+ 15ExceptionInterface* 55IOExceptionInterface   n kO6kM-yQ6pVE*qV>*






}
i
Z
'


					|	+?i4#5(Br5	H
xk0g                                                          F 6.testGetAllMethodsContainsMethodsOfIndirectImplementedInterfaceBF 6.testGetAllMethodsContainsMethodsOfIndirectImplementedInterfaceA= {6.testGetAllMethodsContainsMethodsOfImplementedInterfaceB= {6.testGetAllMethodsContainsMethodsOfImplementedInterfaceA8 q6.GetAllMethodsContainsMethodsOfImplementedInterface

 6.FooI
	 6.BarI< y6.testParserHandlesInterfaceWithMultipleParentInterfacesC 6.testAnalyzerRestoresExpectedProjectMetricsFromCacheInterface; w6.testAnalyzerRestoresExpectedInterfaceMetricsFromCache7 o6.testAnalyzerCalculatesElocOfZeroForAbstractMethod #6.MyInterface 36.MyConstantInterface /6.MIMethodInterface 6.I  -6.HMethodInterface /6.CCMethodInterface)~ S6.testAnalyzerIgnoresInterfaceMethods:} u6.testGetNodeMetricsReturnsExpectedCeForParameterTypes;| w6.testGetNodeMetricsReturnsExpectedCboForParameterTypesF{ 6.testGetNodeMetricsReturnsExpectedCaForParameterTypes_interface3Fz 6.testGetNodeMetricsReturnsExpectedCaForParameterTypes_interface2Fy 6.testGetNodeMetricsReturnsExpectedCaForParameterTypes_interface1:x u6.testGetNodeMetricsReturnsExpectedCaForParameterTypesw ?6.MyMethodCouplingInterfacev 36.MyCouplingInterfaceu #6.BCollectiont 6.BList
s 6.IBar[r 56.z_testGetConstantsReturnsExpectedResultForInheritedAndImplementedConstantDefinitions[q 56.x_testGetConstantsReturnsExpectedResultForInheritedAndImplementedConstantDefinitionsp 6.ParserIo 6.pkg3FooIn 6.pkg2FooIm 6.pkg1FooI2l e6.testParserHandlesHeredocAsClassConstantValue/k _6.testParserExtractsCorrectInterfacePackageRj #6.testClassLevelAnalyzerNotRunsEndlessForTwoLevelInterfaceHierarchy_interfaceLi 6.testClassLevelAnalyzerNotRunsEndlessForDeepInterfaceHierarchy_parentCLh 6.testClassLevelAnalyzerNotRunsEndlessForDeepInterfaceHierarchy_parentBLg 6.testClassLevelAnalyzerNotRunsEndlessForDeepInterfaceHierarchy_parentAKf 6.testClassLevelAnalyzerNotRunsEndlessForDeepInterfaceHierarchy_parentNe 6.testClassLevelAnalyzerNotRunsEndlessForDeepInterfaceHierarchy_interfaced 6.Clone
c 6.True
b 6.Nulla 6.FalseM` 6.testAnalyzerNotCountsImplementedInterfaceMethodsAsOverwrittenInterface	_ 6.Bar	^ 6.Foo
] 6.IFoo0\ a6.testParserSetsSourceFileForInterfaceMethod[ 6-ReportZ #6,CacheDriverY 6+TokensX 6+TokenizerW )6*BuilderContextV 6*BuilderU !6)ASTVisitorT -6)ASTVisitListenerS )6(ArtifactFilterR 6'StateQ #6'ASTCallableP #6'ASTArtifactO +6&ReportGeneratorN 16&FileAwareGeneratorM 16&CodeAwareGeneratorL +6%ProcessListenerK /6$CodeRankStrategyIJ 56#AnalyzerProjectAwareI /6#AnalyzerNodeAwareH -6#AnalyzerListenerG 36#AnalyzerFilterAwareF 16#AnalyzerCacheAwareE 6#AnalyzerD /6#AggregateAnalyzerC 6"FilterB 16!CollisionInterfaceA !6!EInterface@ !6!DInterface? 76 ParameterBagInterface> +6DumperInterface= 76InstantiatorInterface< ?6PrependExtensionInterface; 16ExtensionInterface%: K6ConfigurationExtensionInterface9 16ExceptionInterface8 +6DumperInterface7 =6TaggedContainerInterface"6 E6ResettableContainerInterface5 16ContainerInterface4 ;6ContainerAwareInterface3 ;6RepeatablePassInterface2 76CompilerPassInterface1 16ExceptionInterface	0 6Foo	/ 6Bor . A6PHP_CodeCoverage_Exception- ;6PHP_CodeCoverage_Driver, /6RevealerInterface+ =6ProphecySubjectInterface* /6ProphecyInterface) -6PromiseInterface( 36PredictionInterface' /6ProphecyException& 36PredictionException% 6Exception$ -6DoublerException# 36ReflectionInterface" +6DoubleInterface   } ScTf0ukaW)<



J
		}	j	Z	I	hZH<ym]M=1'	}rg\QF0oP:vR9dJ0lJ1w^A                              A6NArraySerializableInterface 56LInitializerInterface
 -6KFactoryInterface	 ?6KDelegatorFactoryInterface =6KAbstractFactoryInterface 16JExceptionInterface ;6IServiceLocatorInterface 96IPluginManagerInterface 56IInitializerInterface -6IFactoryInterface ?6IDelegatorFactoryInterface +6IConfigInterface  =6IAbstractFactoryInterface +6HPluginInterface ~ A6GTotalSpaceCapableInterface} /6GTaggableInterface| -6GStorageInterface{ 56GOptimizableInterfacez /6GIteratorInterfacey /6GIterableInterfacex 16GFlushableInterfacew 76GClearExpiredInterfacev 96GClearByPrefixInterfaceu ?6GClearByNamespaceInterface$t I6GAvailableSpaceCapableInterfaces -6FPatternInterfacer 16EExceptionInterfaceq -6DHandlerInterface!p C6CActivationStrategyInterfaceo 16BFormatterInterfacen 6AValidator#m G6@SelfCheckingResourceInterfacel /6@ResourceInterfacek ;6?LoaderResolverInterfacej +6?LoaderInterfacei 96>PrototypeNodeInterfaceh '6>NodeInterfaceg 96>ConfigurationInterface#f G6=ParentNodeDefinitionInterfacee 36=NodeParentInterfaced =6<ResourceCheckerInterfacec 56<FileLocatorInterfaceb 56<ConfigCacheInterface!a C6<ConfigCacheFactoryInterface` '67SomeInterface_ 66C1^ 66I3] 66I2\ 66I1[ 65B2Z 65B1Y 65I3X 65I2W 65I1V 64A3U 64I3T 64I2S 64I1R 63TQ '62SomeInterfaceP 61FO 61EN 61DM 61CL 61BK 61A	J 61BarI 61MyType4H 61MyType3G 61MyType2	F 60Foo	E 6/BarD 6/FooBaz	C 6/Foo6B m6.testParserHandlesConditionalInterfaceDeclarationA 6.InsteadOf@ 6.Callable=? {6.testConstantSupportForArrayWithSelfReferenceInInterface	> 6.Use= 6.__TRAIT__< 6.Trait; 36.SimpleInterfaceName: '6.__NAMESPACE__9 6.Namespace8 6.insteadof
7 6.Goto6 6.__DIR__55 k6.testVisitorInvokesStartVisitInterfaceOnListener34 g6.testVisitorInvokesEndVisitInterfaceOnListener3 6.interfsC2 6.interfs1 !6.FooBarBazII0 6.testUnserializedInterfaceStillReferencesSameParentInterface_parentB/ 6.testUnserializedInterfaceStillReferencesSameParentInterface9. s6.testUnserializedInterfaceStillReferencesSamePackage:- u6.testUnserializedInterfaceStillIsParentOfChildMethods1, c6.testUnserializedInterfaceRegistersToPackage=+ {6.testUnserializedInterfaceNotAddsDublicateClassToPackage>* }6.testUnserializedInterfaceIsReturnedByMethodAsReturnClassH) 6.testUnserializedInterfaceAndChildMethodsStillReferenceTheSameFile3( g6.testGetParentClassesReturnsEmptyArray_parentC3' g6.testGetParentClassesReturnsEmptyArray_parentB3& g6.testGetParentClassesReturnsEmptyArray_parentA+% W6.testGetParentClassesReturnsEmptyArray$ 6.C# 6.B" 6.AB! 6.testGetInterfaceReferencesReturnsExpectedNumberOfInterfaces<  y6.testGetFirstChildOfTypeFindsASTNodeInMethodDeclaration4 i6.testGetDependenciesReturnsEmptyResultByDefault3 g6.testGetDependenciesContainsExtendedInterfaces2 e6.testGetDependenciesContainsExtendedInterface7 o6.testGetConstantsReturnsExpectedInterfaceConstants= {6.testGetAllChildrenReturnsArrayWithExpectedNumberOfNodes< y6.testFindChildrenOfTypeFindsASTNodeInMethodDeclarations 6.FooBar9 s6.testReferenceInInterfaceExtendsHasExpectedStartLine; w6.testReferenceInInterfaceExtendsHasExpectedStartColumn7 o6.testReferenceInInterfaceExtendsHasExpectedEndLine9 s6.testReferenceInInterfaceExtendsHasExpectedEndColumnH 6.testUnserializedClassStillReferencesSameParentInterface_interface 6.F 6.E 6.DA 6.testGetConstantsReturnsExpectedInterfaceConstantsInterface   = pT;! u[@%oT<~cJ2 gO8





j
R
:
&
						l	X	D	0	nU=%kT< yaL2sZ?(lR=!oX?&sWL4uiR= & %6~Configurable% )6}ConsolePrinter	$ 6|Web# +6|SessionSnapshot" +6|ScreenshotSaver! 6|Remote  6|Queue %6|PartedModule +6|PageSourceSaver %6|MultiSession )6|ElementLocator -6|DoctrineProvider +6|DependsOnModule 6|Db 36|ConflictsWithModule %6|ActiveRecord 6{Throwable -6{WebDriverElement -6zFixtureInterface '6yTestInterface !6xInterface1 -6wInterfaceFixture +6vServiceProvider -6vInvokerInterface -6vFactoryInterface )6uRequestedEntry ;6tMutableDefinitionSource -6tDefinitionSource
 16sDefinitionResolver	 -6rDefinitionHelper -6qDefinitionDumper -6pHasSubDefinition !6pDefinition 36pCacheableDefinition %6oXMLInterface /6oTemplateInterface )6oSheetInterface +6oJqueryInterface  '6oHTMLInterface '6oFormInterface~ 56oViewObjectsInterface} %6oCDNInterface| '6oVarsInterface{ -6oStringsInterfacez )6oRegexInterfacey 16oFunctionsInterfacex -6oFiltersInterfacew -6oClassesInterfacev )6oCharsInterfaceu +6oArraysInterfacet 36oValidationInterfaces '6oCartInterfacer %6oURIInterfaceq -6oSessionInterfacep )6oRouteInterfaceo /6oRedirectInterfacen %6oNetInterfacem +6oMethodInterfacel '6oHTTPInterfacek %6oFTPInterfacej )6oEmailInterfacei 56oEmailDriverInterfaceh '6oCURLInterfaceg +6oCookieInterfacef /6oSecurityInterfacee 36oPermissionInterfaced +6oImportInterfacec )6oThumbInterfaceb )6oImageInterfacea #6oGDInterface` +6oSymbolInterface_ 16oSeparatorInterface^ +6oSearchInterface] )6oRoundInterface\ )6oLimitInterface[ '6oJsonInterfaceZ +6oFormatInterfaceY +6oFilterInterfaceX -6oConvertInterfaceW )6oCleanInterfaceV +6oUploadInterfaceU +6oRecordInterfaceT +6oFolderInterfaceS '6oFileInterfaceR /6oDownloadInterfaceQ 36oExceptionsInterfaceP )6oErrorInterfaceO #6oMLInterfaceN #6oMBInterfaceM #6oIVInterfaceL #6oGTInterfaceK ;6oDateTimeCommonInterfaceJ 16oMigrationInterfaceI /6oDatabaseInterfaceH ;6oDatabaseDriverInterfaceG +6oDBToolInterfaceF -6oDBForgeInterfaceE #6oDBInterfaceD +6oEncodeInterfaceC +6oCryptoInterfaceB /6oCompressInterfaceA /6oTerminalInterface@ )6oTableInterface? /6oScheduleInterface> 36oPaginationInterface= /6oDataGridInterface< -6oCaptchaInterface; /6oCalendarInterface: )6oCacheInterface9 +6oBufferInterface8 16oBenchmarkInterface7 '6oUserInterface6 76nRouteMatcherInterface5 +6mPromptInterface4 16lExceptionInterface3 )6kColorInterface2 -6jCharsetInterface1 -6iAdapterInterface0 +6hWriterInterface/ -6gFirePhpInterface. 16fChromePhpInterface- 16eProcessorInterface, +6dLoggerInterface+ 56dLoggerAwareInterface* 16cFormatterInterface) +6bFilterInterface( 16aExceptionInterface' ;6`MultipleHeaderInterface& +6`HeaderInterface% 16_ExceptionInterface$ 16^ExceptionInterface# 16]ExceptionInterface" 16\ExceptionInterface! +6[StreamInterface  -6[AdapterInterface 16ZSymmetricInterface -6YPaddingInterface 16XExceptionInterface 16WExceptionInterface /6VPasswordInterface 16UExceptionInterface 16TExceptionInterface 16SExceptionInterface 96QStringWrapperInterface 16PExceptionInterface =6OMergeReplaceKeyInterface /6NResponseInterface -6NRequestInterface 36NParametersInterface =6NParameterObjectInterface -6NMessageInterface -6NJsonSerializable 96NInitializableInterface 76NDispatchableInterface   F sO& xbI1iF*rT1iM*




m
W
?
						e	G	)		]BrV1u]D4&v^C0 fV>% pSA/#rZE1obF                    ; 36ConnectionInterface
: 6View9 6Factory8 6Validator7 76ValidatesWhenResolved6 6Factory5 !6Renderable4 +6MessageProvider3 !6MessageBag2 6Jsonable1 6Htmlable0 6Arrayable/ #6UrlRoutable. %6UrlGenerator- +6ResponseFactory, 6Registrar+ 6Database* #6ShouldQueue) +6QueueableEntity( 6Queue' 6Monitor	& 6Job% 6Factory$ )6EntityResolver# 6Pipeline	" 6Hub! 6Presenter  6Paginator 56LengthAwarePaginator 6MailQueue 6Mailer	 6Log 6Kernel 6Hasher #6Application !6Filesystem 6Factory 6Cloud !6Dispatcher 6Encrypter -6ExceptionHandler +6QueueingFactory 6Factory =6ContextualBindingBuilder 6Container 6Kernel #6Application !6Repository 6Store
 !6Repository	 6Factory %6SelfHandling 16QueueingDispatcher !6Dispatcher 16ShouldBroadcastNow +6ShouldBroadcast 6Factory #6Broadcaster %6UserProvider  /6SupportsBasicAuth '6StatefulGuard~ 6Registrar} 76PasswordBrokerFactory| )6PasswordBroker{ 6Guardz 6Factoryy -6CanResetPasswordx +6Authenticatable
w 6Gatev %6Authorizableu =6TokenRepositoryInterfacet 76TwigRendererInterface!s C6TwigRendererEngineInterfacer +6RouterInterfaceq 96RouteCompilerInterface"p E6RequestContextAwareInterfaceo 36UrlMatcherInterfacen ;6RequestMatcherInterface%m K6RedirectableUrlMatcherInterfacel 96MatcherDumperInterfacek =6GeneratorDumperInterfacej 76UrlGeneratorInterface'i O6ConfigurableRequirementsInterfaceh 16ExceptionInterface#g G6PropertyPathIteratorInterfacef 76PropertyPathInterfacee ?6PropertyAccessorInterfaced 16ExceptionInterfacec 6Optionsb 16ExceptionInterfacea ;6ResourceBundleInterface` 76RegionBundleInterface_ 76LocaleBundleInterface^ ;6LanguageBundleInterface] ;6CurrencyBundleInterface\ 16ExceptionInterface[ 76BundleWriterInterfaceZ 76BundleReaderInterface Y A6BundleEntryReaderInterfaceX ;6BundleCompilerInterfaceW +6AuthorInterfaceV '6FormInterfaceU 56FormBuilderInterfaceT =6ViolationMapperInterface S A6FormDataExtractorInterface R A6FormDataCollectorInterfaceQ 16ExceptionInterfaceP 76ChoiceLoaderInterface O A6ChoiceListFactoryInterfaceN 36ChoiceListInterfaceM ?6SubmitButtonTypeInterfaceL ?6ResolvedFormTypeInterface&K M6ResolvedFormTypeFactoryInterfaceJ ;6RequestHandlerInterfaceI /6FormTypeInterfaceH =6FormTypeGuesserInterface G A6FormTypeExtensionInterfaceF 76FormRendererInterface!E C6FormRendererEngineInterfaceD 76FormRegistryInterfaceC '6FormInterfaceB 56FormFactoryInterface!A C6FormFactoryBuilderInterface@ 96FormExtensionInterface? 36FormConfigInterface > A6FormConfigBuilderInterface= 56FormBuilderInterface< =6DataTransformerInterface; 36DataMapperInterface: 16ClickableInterface9 36ButtonTypeInterface8 36TranslatorInterface7 16ExtensionInterface6 +6ParserInterface5 -6HandlerInterface4 '6NodeInterface3 16ExceptionInterface$2 I6PHPUnit_Runner_TestSuiteLoader$1 I6PHPUnit_Framework_TestListener0 96PHPUnit_Framework_Test#/ G6PHPUnit_Framework_SkippedTest&. M6PHPUnit_Framework_SelfDescribing!- C6PHPUnit_Framework_RiskyTest&, M6PHPUnit_Framework_IncompleteTest+ /6PHPUnit_Exception* )6~ScenarioDriven) 6~Reported( 6~Plain' #6~Descriptive   , w\9y]F#gM1gH%oW;





]
8
					t	N	7	ycE*aC#xWD1sM.oS8oX='aC#oG,                                = 17.ExtensionInterface%< K7.ConfigurationExtensionInterface; 17-ExceptionInterface: +7,DumperInterface9 =7+TaggedContainerInterface"8 E7+ResettableContainerInterface7 17+ContainerInterface6 ;7+ContainerAwareInterface5 ;7*RepeatablePassInterface4 77*CompilerPassInterface3 97)NonDeprecatedInterface2 37)DeprecatedInterface 1 A7(FatalErrorHandlerInterface0 37'TranslatorInterface/ 17&ExtensionInterface. +7%ParserInterface- -7$HandlerInterface, '7#NodeInterface+ 17"ExceptionInterface* )7!StyleInterface) +7 OutputInterface( 97 ConsoleOutputInterface' )7InputInterface& 37InputAwareInterface% +7HelperInterface#$ G7OutputFormatterStyleInterface# =7OutputFormatterInterface" 17ExceptionInterface! 37DescriptorInterface  7Validator# G7SelfCheckingResourceInterface /7ResourceInterface ;7LoaderResolverInterface +7LoaderInterface 97PrototypeNodeInterface '7NodeInterface 97ConfigurationInterface# G7ParentNodeDefinitionInterface 37NodeParentInterface =7ResourceCheckerInterface 57FileLocatorInterface 57ConfigCacheInterface! C7ConfigCacheFactoryInterface
 7IBar '7SomeInterface !7GInterface !7CInterface =7VersionStrategyInterface -7PackageInterface 17ExceptionInterface -7ContextInterface"
 E7UserProviderFactoryInterface	 =7SecurityFactoryInterface +7EngineInterface ;7
TemplateFinderInterface 77	TwigRendererInterface! C7	TwigRendererEngineInterface 37UserLoaderInterface /7RegistryInterface 77EntityLoaderInterface 77UserProviderInterface  '7UserInterface 57UserCheckerInterface~ 17EquatableInterface} 77AdvancedUserInterface| '7RoleInterface{ 97RoleHierarchyInterfacez 17ExceptionInterface"y E7UserPasswordEncoderInterfacex =7PasswordEncoderInterfacew ;7EncoderFactoryInterfacev 77EncoderAwareInterfaceu )7VoterInterface#t G7 AuthorizationCheckerInterface$s I7 AccessDecisionManagerInterfacer )6TokenInterfaceq 76TokenStorageInterfacep 96TokenProviderInterfaceo =6PersistentTokenInterface%n K6AuthenticationProviderInterface"m E6SimpleAuthenticatorInterface*l U6AuthenticationTrustResolverInterface$k I6AuthenticationManagerInterfacej 36DataDumperInterfacei +6DumperInterfaceh +6ClonerInterfaceg =6ProfilerStorageInterfacef 56DebugLoggerInterfacee 36TerminableInterfaced +6KernelInterfacec 36HttpKernelInterfaceb 16SurrogateInterfacea )6StoreInterface$` I6ResponseCacheStrategyInterface_ ?6FragmentRendererInterface^ 96HttpExceptionInterface ] A6LateDataCollectorInterface\ 96DataCollectorInterface![ C6ControllerResolverInterfaceZ /6WarmableInterfaceY 56CacheWarmerInterfaceX 76CacheClearerInterfaceW +6BundleInterfaceV ;6SessionStorageInterfaceU -6SessionInterfaceT 36SessionBagInterfaceS /6FlashBagInterfaceR 76AttributeBagInterfaceQ ;6RequestMatcherInterfaceP =6MimeTypeGuesserInterfaceO ?6ExtensionGuesserInterfaceN 96NonDeprecatedInterfaceM 36DeprecatedInterface L A6FatalErrorHandlerInterfaceK )6FieldInterfaceJ 36ViewFinderInterfaceI +6EngineInterfaceH /6CompilerInterfaceG ?6PresenceVerifierInterfaceF +6LoaderInterfaceE -6SessionInterfaceD ;6ExistenceAwareInterfaceC 16ValidatorInterface B A6FailedJobProviderInterfaceA 16ConnectorInterface"@ E6MigrationRepositoryInterface? )6ScopeInterface> 6Scope= 16ConnectorInterface!< C6ConnectionResolverInterface   { wdIy\A%
qR.xW=qS8





d
C
#
					~	`	C	)	[D){X:eI.kBZ<sT<z[=&c>#      8 97oRoleHierarchyInterface7 17nExceptionInterface"6 E7mUserPasswordEncoderInterface5 =7mPasswordEncoderInterface4 ;7mEncoderFactoryInterface3 77mEncoderAwareInterface2 )7lVoterInterface#1 G7kAuthorizationCheckerInterface$0 I7kAccessDecisionManagerInterface/ )7jTokenInterface. 77iTokenStorageInterface- 97hTokenProviderInterface, =7hPersistentTokenInterface%+ K7gAuthenticationProviderInterface"* E7fSimpleAuthenticatorInterface*) U7fAuthenticationTrustResolverInterface$( I7fAuthenticationManagerInterface' +7eRouterInterface& 97eRouteCompilerInterface"% E7eRequestContextAwareInterface$ 37dUrlMatcherInterface# ;7dRequestMatcherInterface%" K7dRedirectableUrlMatcherInterface! 97cMatcherDumperInterface  =7bGeneratorDumperInterface 77aUrlGeneratorInterface' O7aConfigurableRequirementsInterface 17`ExceptionInterface$ I7_PropertyTypeExtractorInterface$ I7_PropertyListExtractorInterface$ I7_PropertyInfoExtractorInterface+ W7_PropertyDescriptionExtractorInterface& M7_PropertyAccessExtractorInterface# G7^PropertyPathIteratorInterface 77^PropertyPathInterface ?7^PropertyAccessorInterface 17]ExceptionInterface )7\PipesInterface 17[ExceptionInterface 7ZOptions 17YExceptionInterface 37XLdapClientInterface ;7WResourceBundleInterface 77WRegionBundleInterface 77WLocaleBundleInterface ;7WLanguageBundleInterface
 ;7WCurrencyBundleInterface	 17VExceptionInterface 77UBundleWriterInterface 77TBundleReaderInterface  A7TBundleEntryReaderInterface ;7SBundleCompilerInterface =7RProfilerStorageInterface 57QDebugLoggerInterface 37PTerminableInterface +7PKernelInterface  37PHttpKernelInterface 17OSurrogateInterface~ )7OStoreInterface$} I7OResponseCacheStrategyInterface| ?7NFragmentRendererInterface{ 97MHttpExceptionInterface z A7LLateDataCollectorInterfacey 97LDataCollectorInterface!x C7KControllerResolverInterfacew /7JWarmableInterfacev 57JCacheWarmerInterfaceu 77ICacheClearerInterfacet +7HBundleInterfaces ;7GSessionStorageInterfacer -7FSessionInterfaceq 37FSessionBagInterfacep /7EFlashBagInterfaceo 77DAttributeBagInterfacen ;7CRequestMatcherInterfacem =7BMimeTypeGuesserInterfacel ?7BExtensionGuesserInterfacek +7AAuthorInterfacej '7@FormInterfacei 57@FormBuilderInterfaceh =7?ViolationMapperInterface g A7>FormDataExtractorInterface f A7>FormDataCollectorInterfacee 17=ExceptionInterfaced 77<ChoiceLoaderInterface c A7;ChoiceListFactoryInterfaceb 37:ChoiceListInterfacea ?79SubmitButtonTypeInterface` ?79ResolvedFormTypeInterface&_ M79ResolvedFormTypeFactoryInterface^ ;79RequestHandlerInterface] /79FormTypeInterface\ =79FormTypeGuesserInterface [ A79FormTypeExtensionInterfaceZ 779FormRendererInterface!Y C79FormRendererEngineInterfaceX 779FormRegistryInterfaceW '79FormInterfaceV 579FormFactoryInterface!U C79FormFactoryBuilderInterfaceT 979FormExtensionInterfaceS 379FormConfigInterface R A79FormConfigBuilderInterfaceQ 579FormBuilderInterfaceP =79DataTransformerInterfaceO 379DataMapperInterfaceN 179ClickableInterfaceM 379ButtonTypeInterfaceL 178ExceptionInterfaceK 577IOExceptionInterfaceJ 177ExceptionInterfaceI 576ParserCacheInterface)H S75ExpressionFunctionProviderInterfaceG =74EventSubscriberInterfaceF =74EventDispatcherInterface'E O73TraceableEventDispatcherInterfaceD 172CollisionInterfaceC !72EInterfaceB !72DInterfaceA 771ParameterBagInterface@ +70DumperInterface? 77/InstantiatorInterface> ?7.PrependExtensionInterface   f ~`> Z,rS-	y`<!bD&





x
T
1

					~	f	D	%	tK$ybC)sX,zdL/s]N?/                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 17PreviewablePatcher 7Patcher 7DiffOp 7Differ '7ValueComparer '7ArrayComparer 7DiffOp 17PreviewablePatcher 7Patcher 7Differ 97ResourceOwnerInterface 17SignatureInterface  A7SessionConnectionInterface 57CredentialsInterface +7ResultInterface '7HashInterface -7CommandInterface )7CacheInterface 17AwsClientInterface 17ExceptionInterface
 37DataDumperInterface	 +7DumperInterface +7ClonerInterface) S7ConstraintViolationBuilderInterface 17ValidatorInterface" E7ContextualValidatorInterface 77StaticLoaderInterface +7EntityInterface +7LoaderInterface =7MetadataFactoryInterface  ?7PropertyMetadataInterface /7MetadataInterface~ 97ClassMetadataInterface} )7CacheInterface| 17ExceptionInterface{ ?7ExecutionContextInterface&z M7ExecutionContextFactoryInterfacey ?7ValidatorBuilderInterface x A7ObjectInitializerInterface$w I7GroupSequenceProviderInterface&v M7ConstraintViolationListInterface"u E7ConstraintViolationInterface"t E7ConstraintValidatorInterface)s S7ConstraintValidatorFactoryInterfacer 37TranslatorInterfaceq 97TranslatorBagInterfacep 97MetadataAwareInterfaceo ?7MessageCatalogueInterfacen +7LoaderInterfacem 17ExtractorInterfacel 17ExceptionInterfacek +7DumperInterfacej 17OperationInterfacei /7MyStreamingEngineh +7LoaderInterfaceg +7HelperInterface f A7TemplateReferenceInterface!e C7TemplateNameParserInterfaced =7StreamingEngineInterfacec +7EngineInterfaceb 37GroupDummyInterfacea 37SerializerInterface` =7SerializerAwareInterface_ 37NormalizerInterface^ 77NormalizableInterface] 77DenormalizerInterface\ ;7DenormalizableInterface[ 97NameConverterInterfaceZ +7LoaderInterface#Y G7ClassMetadataFactoryInterfaceX 97ClassMetadataInterface W A7AttributeMetadataInterfaceV 17ExceptionInterface!U C7NormalizationAwareInterfaceT -7EncoderInterfaceS -7DecoderInterface!R C7~TestFailureHandlerInterface!Q C7~TestSuccessHandlerInterface,P Y7}SessionAuthenticationStrategyInterface!O C7|RememberMeServicesInterface#N G7{LogoutSuccessHandlerInterfaceM 97{LogoutHandlerInterfaceL /7zListenerInterface'K O7yAuthenticationEntryPointInterface"J E7xAccessDeniedHandlerInterface%I K7wSimplePreAuthenticatorInterface&H M7wSimpleFormAuthenticatorInterface+G W7wAuthenticationSuccessHandlerInterface+F W7wAuthenticationFailureHandlerInterfaceE 57vFirewallMapInterfaceD 17vAccessMapInterfaceC 37uGuardTokenInterface!B C7tGuardAuthenticatorInterfaceA 77sTokenStorageInterface@ ;7rTokenGeneratorInterface? ?7qCsrfTokenManagerInterface> 77pUserProviderInterface= '7pUserInterface< 57pUserCheckerInterface; 17pEquatableInterface: 77pAdvancedUserInterface9 '7oRoleInterface   q h7jIW#K{J


n
`
O
A
0
					r	b	W	0	i@nT4xQ'qRB-oM3|qbTF8*c2Y                                                 <q yStagehand\TestRunner\CLI\TestRunnerApplication\Command4p iStagehand\TestRunner\CLI\TestRunnerApplicationo =Stagehand\TestRunner\CLI"n EwSymfony\Component\Yaml\Tests&m MwSymfony\Component\Yaml\Exceptionl 9wSymfony\Component\Yamlk /lSebastianBergmann/j _fSebastianBergmann\GlobalState\TestFixture#i GfSebastianBergmann\GlobalState#h GRSebastianBergmann\Environmentg global	f Fooe My\Spaced globalc Foo\Bazb 'Foo\BarScopeda #Other\Space` Foo\Bar_ global^ |global] vglobal\ pglobal[ 8bar\baz	Z 8FooY 8globalX '$Prophecy\UtilW /$Prophecy\ProphecyV -$Prophecy\PromiseU 3$Prophecy\Prediction!T C$Prophecy\Exception\Prophecy#S G$Prophecy\Exception\PredictionR 1$Prophecy\Exception Q A$Prophecy\Exception\DoublerP ;$Prophecy\Exception\Call%O K$Prophecy\Doubler\Generator\Node N A$Prophecy\Doubler\Generator!M C$Prophecy\Doubler\ClassPatchL -$Prophecy\DoublerK 3$Prophecy\ComparatorJ '$Prophecy\CallI $ProphecyH ;$Prophecy\Argument\TokenG /$Prophecy\ArgumentF 1$spec\Prophecy\UtilE 9$spec\Prophecy\ProphecyD 7$spec\Prophecy\PromiseC =$spec\Prophecy\Prediction&B M$spec\Prophecy\Exception\Prophecy(A Q$spec\Prophecy\Exception\Prediction%@ K$spec\Prophecy\Exception\Doubler"? E$spec\Prophecy\Exception\Call*> U$spec\Prophecy\Doubler\Generator\Node%= K$spec\Prophecy\Doubler\Generator< 7$spec\Prophecy\Doubler&; M$spec\Prophecy\Doubler\ClassPatch: =$spec\Prophecy\Comparator9 1$spec\Prophecy\Call8 '$spec\Prophecy"7 E$spec\Prophecy\Argument\Token6 9$spec\Prophecy\Argument5 =phpDocumentor\Reflection,4 YphpDocumentor\Reflection\DocBlock\Type+3 WphpDocumentor\Reflection\DocBlock\Tag'2 OphpDocumentor\Reflection\DocBlock(1 QDoctrineTest\InstantiatorTestAsset#0 GDoctrineTest\InstantiatorTest-/ [DoctrineTest\InstantiatorTest\Exception*. UDoctrineTest\InstantiatorPerformance- 7Doctrine\Instantiator%, KDoctrine\Instantiator\Exception	+ Foo* My\Space) global(( Q{SebastianBergmann\RecursionContext ' ArSebastianBergmann\Exporter & AlSebastianBergmann\Diff\LCS% 9lSebastianBergmann\Diff"$ EdSebastianBergmann\Comparator# -PhakeTest" -global! ;PhakeTest  ;global5 k Symfony\Component\ExpressionLanguage\Tests\Node9 s Symfony\Component\ExpressionLanguage\Tests\Fixtures0 a Symfony\Component\ExpressionLanguage\Tests6 m Symfony\Component\ExpressionLanguage\ParserCache/ _ Symfony\Component\ExpressionLanguage\Node* U Symfony\Component\ExpressionLanguage5 k Symfony\Component\ExpressionLanguage\Tests\Node9 s Symfony\Component\ExpressionLanguage\Tests\Fixtures0 a Symfony\Component\ExpressionLanguage\Tests6 m Symfony\Component\ExpressionLanguage\ParserCache/ _ Symfony\Component\ExpressionLanguage\Node* U Symfony\Component\ExpressionLanguageA -Symfony\Component\EventDispatcher\Tests\DependencyInjection2 g-Symfony\Component\EventDispatcher\Tests\Debug, [-Symfony\Component\EventDispatcher\Tests: w-Symfony\Component\EventDispatcher\DependencyInjection, [-Symfony\Component\EventDispatcher\Debug& O-Symfony\Component\EventDispatcher0 cStagehand\FSM\StateMachine\StateMachineTest AStagehand\FSM\StateMachine 3Stagehand\FSM\State
 3Stagehand\FSM\Event"	 GPHPMentors\DomainKata\Usecase( SPHPMentors\DomainKata\Specification" GPHPMentors\DomainKata\Service% MPHPMentors\DomainKata\Repository/ aPHPMentors\DomainKata\Repository\Operation$ KPHPMentors\DomainKata\Operation  CPHPMentors\DomainKata\InOut+ YPHPMentors\DomainKata\Entity\Operation! EPHPMentors\DomainKata\Entity   U  \;b2zDZ(eA



j
4
					^	$|NW+]5rAT&]%e0I                                             	F TBarE TglobalD #TContainer14;C wTSymfony\Component\DependencyInjection\Tests\Extension8B qTSymfony\Component\DependencyInjection\Tests\Dumper1A cTSymfony\Component\DependencyInjection\Tests:@ uTSymfony\Component\DependencyInjection\Tests\Compiler8? qTSymfony\Component\DependencyInjection\ParameterBag2> eTSymfony\Component\DependencyInjection\Loader?= TSymfony\Component\DependencyInjection\LazyProxy\PhpDumperC< TSymfony\Component\DependencyInjection\LazyProxy\Instantiator5; kTSymfony\Component\DependencyInjection\Extension5: kTSymfony\Component\DependencyInjection\Exception29 eTSymfony\Component\DependencyInjection\Dumper48 iTSymfony\Component\DependencyInjection\Compiler+7 WTSymfony\Component\DependencyInjection,6 YSymfony\Component\Console\Tests\Tester+5 WSymfony\Component\Console\Tests\Style,4 YSymfony\Component\Console\Tests\Output,3 YSymfony\Component\Console\Tests\Logger+2 WSymfony\Component\Console\Tests\Input,1 YSymfony\Component\Console\Tests\Helper/0 _Symfony\Component\Console\Tests\Formatter./ ]Symfony\Component\Console\Tests\Fixtures. global0- aSymfony\Component\Console\Tests\Descriptor-, [Symfony\Component\Console\Tests\Command%+ KSymfony\Component\Console\Tests&* MSymfony\Component\Console\Tester%) KSymfony\Component\Console\Style(( QSymfony\Component\Console\Question&' MSymfony\Component\Console\Output&& MSymfony\Component\Console\Logger%% KSymfony\Component\Console\Input&$ MSymfony\Component\Console\Helper)# SSymfony\Component\Console\Formatter%" KSymfony\Component\Console\Event*! USymfony\Component\Console\Descriptor'  OSymfony\Component\Console\Command ?Symfony\Component\Console# G:Symfony\Component\Config\Util- [:Symfony\Component\Config\Tests\Resource+ W:Symfony\Component\Config\Tests\Loader; w:Symfony\Component\Config\Tests\Fixtures\Configuration. ]:Symfony\Component\Config\Tests\Exception6 m:Symfony\Component\Config\Tests\Definition\Dumper7 o:Symfony\Component\Config\Tests\Definition\Builder/ _:Symfony\Component\Config\Tests\Definition$ I:Symfony\Component\Config\Tests' O:Symfony\Component\Config\Resource% K:Symfony\Component\Config\Loader( Q:Symfony\Component\Config\Exception3 g:Symfony\Component\Config\Definition\Exception0 a:Symfony\Component\Config\Definition\Dumper1 c:Symfony\Component\Config\Definition\Builder) S:Symfony\Component\Config\Definition =:Symfony\Component\Config  AStagehand\ComponentFactory! CStagehand\AlterationMonitor ?Stagehand\TestRunner\Test1
 cStagehand\TestRunner\Runner\JUnitXMLWriting	 ?Stagehand\TestRunner\Util$ IStagehand\TestRunner\TestSuite! CStagehand\TestRunner\Runner/ _Stagehand\TestRunner\Runner\PHPUnitRunner7 oStagehand\TestRunner\Runner\PHPUnitRunner\TestDox7 oStagehand\TestRunner\Runner\PHPUnitRunner\Printer 5Stagehand\TestRunner global" EStagehand\TestRunner\PHPUnit"  EStagehand\TestRunner\Process4 iStagehand\TestRunner\Process\ContinuousTesting#~ GStagehand\TestRunner\Preparer'} OStagehand\TestRunner\Notification)| SStagehand\TestRunner\JUnitXMLWriter={ {Stagehand\TestRunner\DependencyInjection\Transformation.z ]Stagehand\TestRunner\DependencyInjection8y qStagehand\TestRunner\DependencyInjection\Extension<x yStagehand\TestRunner\DependencyInjection\Configuration7w oStagehand\TestRunner\DependencyInjection\Compiler&v MStagehand\TestRunner\Core\Pluginu ?Stagehand\TestRunner\Core#t GStagehand\TestRunner\Composer$s IStagehand\TestRunner\CollectorWr -Stagehand\TestRunner\CLI\TestRunnerApplication\Command\PHPUnitPassthroughCommand   k  8h=pFa1fXE.






o
X
+
					g	P	0	{W9jK=* ydM7fB~U"oGoS&rS* I1 phpDocumentor\Plugin\Core\Descriptor\Validator\Constraints\Classes&0 MphpDocumentor\Partials\Exception/ 9phpDocumentor\Partials. ?phpDocumentor\Parser\Util$- IphpDocumentor\Parser\Exception , AphpDocumentor\Parser\Event+ 5phpDocumentor\Parser(* QphpDocumentor\Parser\Configuration*) UphpDocumentor\Parser\Command\Project( 3phpDocumentor\Event(' QphpDocumentor\Descriptor\Validator#& GphpDocumentor\Descriptor\Type,% YphpDocumentor\Descriptor\Tag\BaseTypes"$ EphpDocumentor\Descriptor\Tag0# aphpDocumentor\Descriptor\ProjectDescriptor%" KphpDocumentor\Descriptor\Filter(! QphpDocumentor\Descriptor\Exception&  MphpDocumentor\Descriptor\Example$ IphpDocumentor\Descriptor\Cache5 kphpDocumentor\Descriptor\Builder\Reflector\Tags0 aphpDocumentor\Descriptor\Builder\Reflector& MphpDocumentor\Descriptor\Builder =phpDocumentor\Descriptor" EphpDocumentor\Console\Output! CphpDocumentor\Console\Input3 gphpDocumentor\Configuration\Merger\Annotation! CphpDocumentor\Configuration! CphpDocumentor\Compiler\Pass# GphpDocumentor\Compiler\Linker 9phpDocumentor\Compiler# GphpDocumentor\Command\Project  AphpDocumentor\Command\Phar" EphpDocumentor\Command\Helper 7phpDocumentor\Command 'phpDocumentor )Cilex\Provider %
PHPMD\Writer %
PHPMD\TextUI /
PHPMD\Rule\Naming
 /
PHPMD\Rule\Design	 =
PHPMD\Rule\Controversial 5
PHPMD\Rule\CleanCode !
PHPMD\Rule )
PHPMD\Renderer !
PHPMD\Node 
PHPMD 9
PDepend\Source\Builder 7
PDepend\Util\Coverage %
PDepend\Util  ?
PDepend\Util\Cache\Driver$ I
PDepend\Util\Cache\Driver\File~ 1
PDepend\Util\Cache} )
PDepend\TextUI| =
PDepend\Source\Tokenizer{ 7
PDepend\Source\Parser!z C
PDepend\Source\Language\PHP+y W
PDepend\Source\Builder\BuilderContextx ?
PDepend\Source\ASTVisitor(w Q
PDepend\Source\AST\ASTArtifactListv 1
PDepend\Source\ASTu 9
PDepend\Report\Summaryt ;
PDepend\Report\Overviews )
PDepend\Reportr 9
PDepend\Report\Jdepend/q _
PDepend\Metrics\Analyzer\CodeRankAnalyzerp =
PDepend\Metrics\Analyzero +
PDepend\Metricsn '
PDepend\Input!m C
PDepend\DependencyInjection*l U
PDepend\DependencyInjection\Compilerk )
PDepend\DbusUIj 
PDependi %
PHPMD\Writerh %
PHPMD\TextUIg /
PHPMD\Rule\Namingf /
PHPMD\Rule\Designe =
PHPMD\Rule\Controversiald 5
PHPMD\Rule\CleanCodec !
PHPMD\Ruleb )
PHPMD\Renderera !
PHPMD\Node` 
PHPMD%_ KSymfony\Component\Process\Tests%^ KSymfony\Component\Process\Pipes] ?Symfony\Component\Process)\ SSymfony\Component\Process\Exception*[ UXSymfony\Component\Finder\Tests\Shell-Z [XSymfony\Component\Finder\Tests\Iterator$Y IXSymfony\Component\Finder\Tests0X aXSymfony\Component\Finder\Tests\FakeAdapter/W _XSymfony\Component\Finder\Tests\Expression/V _XSymfony\Component\Finder\Tests\Comparator$U IXSymfony\Component\Finder\Shell'T OXSymfony\Component\Finder\IteratorS =XSymfony\Component\Finder)R SXSymfony\Component\Finder\Expression(Q QXSymfony\Component\Finder\Exception)P SXSymfony\Component\Finder\Comparator&O MXSymfony\Component\Finder\Adapter(N QSymfony\Component\Filesystem\Tests"M ESymfony\Component\Filesystem,L YSymfony\Component\Filesystem\Exception>K }TSymfony\Component\DependencyInjection\Tests\ParameterBag8J qTSymfony\Component\DependencyInjection\Tests\LoaderFI TSymfony\Component\DependencyInjection\Tests\LazyProxy\PhpDumperIH TSymfony\Component\DependencyInjection\Tests\LazyProxy\Instantiator0G aTSymfony\Component\DependencyInjection\Dump   ^  e$Z!u9JW


>
				p	D	oM%f=
VH2hDkP*cL.oO'X&    9JMS\Serializer\Handler =JMS\Serializer\Exclusion =JMS\Serializer\Exception/ _JMS\Serializer\EventDispatcher\Subscriber$ IJMS\Serializer\EventDispatcher!
 CJMS\Serializer\Construction	 9JMS\Serializer\Builder ?JMS\Serializer\Annotation )JMS\Serializer -JMS\Parser\Tests !JMS\Parser% KMetadata\Tests\Driver\Fixture\T ;Metadata\Tests\Fixtures. ]Metadata\Tests\Fixtures\ComplexHierarchy global,  YMetadata\Tests\Driver\Fixture\C\SubDir% KMetadata\Tests\Driver\Fixture\B%~ KMetadata\Tests\Driver\Fixture\A} 7Metadata\Tests\Driver| )Metadata\Tests{ 5Metadata\Tests\Cachez +Metadata\Drivery Metadatax )Metadata\Cachew ?Herrera\Phar\Update\Tests)v SHerrera\Phar\Update\Tests\Exceptionu 3Herrera\Phar\Update#t GHerrera\Phar\Update\Exceptions 1Herrera\Json\Tests"r EHerrera\Json\Tests\Exceptionq %Herrera\Jsonp 9Herrera\Json\Exceptiono globaln 7Doctrine\Common\Lexer!m CDoctrine\Common\Annotations,l YDoctrine\Common\Annotations\Annotation!k CInterop\Container\Exceptionj /Interop\Containeri 9Cilex\Provider\Console*h UCilex\Provider\Console\Adapter\Silexg 5Cilex\Tests\Providerf 3Cilex\Tests\Commande #Cilex\Testsd )Cilex\Providerc 'Cilex\Commandb Cilex3a gphpDocumentor\Transformer\Router\UrlGenerator.` ]phpDocumentor\Transformer\Router\Matcher)_ SphpDocumentor\Descriptor\Interfaces^ =phpDocumentor\Translator0] aphpDocumentor\Transformer\Writer\Exception&\ MphpDocumentor\Transformer\Writer([ QphpDocumentor\Transformer\Template<Z yphpDocumentor\Transformer\Router\UrlGenerator\Standard&Y MphpDocumentor\Transformer\Router)X SphpDocumentor\Transformer\Exception%W KphpDocumentor\Transformer\EventV ?phpDocumentor\Transformer=U {phpDocumentor\Transformer\Configuration\Transformations-T [phpDocumentor\Transformer\Configuration0S aphpDocumentor\Transformer\Command\Template/R _phpDocumentor\Transformer\Command\Project)Q SphpDocumentor\Transformer\Behaviour&P MphpDocumentor\Plugin\Twig\WriterO ?phpDocumentor\Plugin\Twig/N _phpDocumentor\Plugin\Scrybe\Template\Mock*M UphpDocumentor\Plugin\Scrybe\Template!L CphpDocumentor\Plugin\ScrybeFK phpDocumentor\Plugin\Scrybe\Converter\RestructuredText\VisitorsCJ phpDocumentor\Plugin\Scrybe\Converter\RestructuredText\Roles<I yphpDocumentor\Plugin\Scrybe\Converter\RestructuredTextHH phpDocumentor\Plugin\Scrybe\Converter\RestructuredText\DirectivesEG 	phpDocumentor\Plugin\Scrybe\Converter\Metadata\TableOfContents4F iphpDocumentor\Plugin\Scrybe\Converter\Metadata<E yphpDocumentor\Plugin\Scrybe\Converter\Format\Exception2D ephpDocumentor\Plugin\Scrybe\Converter\Format5C kphpDocumentor\Plugin\Scrybe\Converter\Exception6B mphpDocumentor\Plugin\Scrybe\Converter\Definition+A WphpDocumentor\Plugin\Scrybe\Converter0@ aphpDocumentor\Plugin\Scrybe\Command\Manual? 5phpDocumentor\Plugin9> sphpDocumentor\Plugin\LegacyNamespaceConverter\Tests3= gphpDocumentor\Plugin\LegacyNamespaceConverter(< QphpDocumentor\Plugin\Graphs\Writer!; CphpDocumentor\Plugin\Graphs$: IphpDocumentor\Plugin\Core\Xslt69 mphpDocumentor\Plugin\Core\Transformer\Writer\Xml28 ephpDocumentor\Plugin\Core\Transformer\Writer97 sphpDocumentor\Plugin\Core\Transformer\Behaviour\Tag6 ?phpDocumentor\Plugin\Core45 iphpDocumentor\Plugin\Core\Descriptor\Validator>4 }phpDocumentor\Plugin\Core\Descriptor\Validator\FunctionsJ3 phpDocumentor\Plugin\Core\Descriptor\Validator\Constraints\PropertyK2 phpDocumentor\Plugin\Core\Descriptor\Validator\Constraints\Functions   c  c<Z4c4mH(pS,






y
[
<

					_	@	xS2	wN#tN#oH&D]!h={M               5r k`phpDocumentor\Plugin\Scrybe\Converter\Exception6q m`phpDocumentor\Plugin\Scrybe\Converter\Definition+p W`phpDocumentor\Plugin\Scrybe\Converter0o a`phpDocumentor\Plugin\Scrybe\Command\Manualn 5`phpDocumentor\Plugin9m s`phpDocumentor\Plugin\LegacyNamespaceConverter\Tests3l g`phpDocumentor\Plugin\LegacyNamespaceConverter(k Q`phpDocumentor\Plugin\Graphs\Writer!j C`phpDocumentor\Plugin\Graphs$i I`phpDocumentor\Plugin\Core\Xslt6h m`phpDocumentor\Plugin\Core\Transformer\Writer\Xml2g e`phpDocumentor\Plugin\Core\Transformer\Writer9f s`phpDocumentor\Plugin\Core\Transformer\Behaviour\Tage ?`phpDocumentor\Plugin\Core4d i`phpDocumentor\Plugin\Core\Descriptor\Validator>c }`phpDocumentor\Plugin\Core\Descriptor\Validator\FunctionsJb `phpDocumentor\Plugin\Core\Descriptor\Validator\Constraints\PropertyKa `phpDocumentor\Plugin\Core\Descriptor\Validator\Constraints\FunctionsI` `phpDocumentor\Plugin\Core\Descriptor\Validator\Constraints\Classes&_ M`phpDocumentor\Partials\Exception^ 9`phpDocumentor\Partials] ?`phpDocumentor\Parser\Util$\ I`phpDocumentor\Parser\Exception [ A`phpDocumentor\Parser\EventZ 5`phpDocumentor\Parser(Y Q`phpDocumentor\Parser\Configuration*X U`phpDocumentor\Parser\Command\ProjectW 3`phpDocumentor\Event(V Q`phpDocumentor\Descriptor\Validator#U G`phpDocumentor\Descriptor\Type,T Y`phpDocumentor\Descriptor\Tag\BaseTypes"S E`phpDocumentor\Descriptor\Tag0R a`phpDocumentor\Descriptor\ProjectDescriptor%Q K`phpDocumentor\Descriptor\Filter(P Q`phpDocumentor\Descriptor\Exception&O M`phpDocumentor\Descriptor\Example$N I`phpDocumentor\Descriptor\Cache5M k`phpDocumentor\Descriptor\Builder\Reflector\Tags0L a`phpDocumentor\Descriptor\Builder\Reflector&K M`phpDocumentor\Descriptor\BuilderJ =`phpDocumentor\Descriptor"I E`phpDocumentor\Console\Output!H C`phpDocumentor\Console\Input3G g`phpDocumentor\Configuration\Merger\Annotation!F C`phpDocumentor\Configuration!E C`phpDocumentor\Compiler\Pass#D G`phpDocumentor\Compiler\LinkerC 9`phpDocumentor\Compiler#B G`phpDocumentor\Command\Project A A`phpDocumentor\Command\Phar"@ E`phpDocumentor\Command\Helper? 7`phpDocumentor\Command> '`phpDocumentor= )`Cilex\Provider!< CfphpDocumentor\GraphViz\Test; 9fphpDocumentor\GraphViz: 7bphpDocumentor\Fileset&9 MbphpDocumentor\Fileset\Collection8 3\PhpCollection\Tests7 '\PhpCollection6 Sglobal
5 &Acme4 /&Monolog\Processor3 ?&Monolog\Handler\SyslogUdp$2 I&Monolog\Handler\FingersCrossed1 5&Monolog\Handler\Curl0 +&Monolog\Handler/ /&Monolog\Formatter. &Monolog- +#KevinGH\Version, 5JsonSchema\Tests\Uri%+ KJsonSchema\Tests\Uri\Retrievers* -JsonSchema\Tests) ;JsonSchema\Tests\Drafts"( EJsonSchema\Tests\Constraints' )JsonSchema\Uri& ?JsonSchema\Uri\Retrievers% !JsonSchema$ 5JsonSchema\Exception# 9JsonSchema\Constraints" ?JMS\Serializer\Tests\Twig! 5JMS\Serializer\Tests,  YJMS\Serializer\Tests\Serializer\NamingA JMS\Serializer\Tests\Serializer\EventDispatcher\Subscriber5 kJMS\Serializer\Tests\Serializer\EventDispatcher% KJMS\Serializer\Tests\Serializer* UJMS\Serializer\Tests\Metadata\Driver# GJMS\Serializer\Tests\Metadata" EJMS\Serializer\Tests\Handler1 cJMS\Serializer\Tests\Fixtures\DoctrinePHPCR, YJMS\Serializer\Tests\Fixtures\Doctrine1 cJMS\Serializer\Tests\Fixtures\Discriminator# GJMS\Serializer\Tests\Fixtures$ IJMS\Serializer\Tests\Exclusion 3JMS\Serializer\Util 3JMS\Serializer\Twig 7JMS\Serializer\Naming$ IJMS\Serializer\Metadata\Driver ;JMS\Serializer\Metadata   Z  U=qO&e%G



s
B
				i	6	$	zP i9p=
N"b/P|H|iN+   L 7Zend\Config\ExceptionK #Zend\ConfigJ ?Zend\Cache\Storage\PluginI 1Zend\Cache\Storage H AZend\Cache\Storage\AdapterG 1Zend\Cache\ServiceF !Zend\CacheE 1Zend\Cache\PatternD 5Zend\Cache\ExceptionC global+B WSymfony\Component\Validator\Violation+A WSymfony\Component\Validator\Validator&@ MSymfony\Component\Validator\Util1? cSymfony\Component\Validator\Tests\Validator,> YSymfony\Component\Validator\Tests\Util6= mSymfony\Component\Validator\Tests\Mapping\Loader7< oSymfony\Component\Validator\Tests\Mapping\Factory/; _Symfony\Component\Validator\Tests\Mapping5: kSymfony\Component\Validator\Tests\Mapping\Cache09 aSymfony\Component\Validator\Tests\Fixtures'8 OSymfony\Component\Validator\Tests7 #Constraints36 gSymfony\Component\Validator\Tests\Constraints05 aSymfony\Component\Validator\Mapping\Loader14 cSymfony\Component\Validator\Mapping\Factory/3 _Symfony\Component\Validator\Mapping\Cache)2 SSymfony\Component\Validator\Mapping+1 WSymfony\Component\Validator\Exception)0 SSymfony\Component\Validator\Context8/ qSymfony\Component\Validator\Constraints\Collection-. [Symfony\Component\Validator\Constraints!- CSymfony\Component\Validator*, USymfony\Component\Translation\Writer0+ aSymfony\Component\Translation\Tests\Loader0* aSymfony\Component\Translation\Tests\Dumper)) SSymfony\Component\Translation\Tests7( oSymfony\Component\Translation\Tests\DataCollector3' gSymfony\Component\Translation\Tests\Catalogue*& USymfony\Component\Translation\Loader-% [Symfony\Component\Translation\Extractor-$ [Symfony\Component\Translation\Exception*# USymfony\Component\Translation\Dumper#" GSymfony\Component\Translation1! cSymfony\Component\Translation\DataCollector-  [Symfony\Component\Translation\Catalogue' O#Symfony\Component\Stopwatch\Tests! C#Symfony\Component\Stopwatch global 'Seld\JsonLint %Psr\Log\Test Psr\Log %Pimple\Tests global +PhpOption\Tests PhpOption0 aphpDocumentor\Reflection\FunctionReflector( QphpDocumentor\Reflection\Exception$ IphpDocumentor\Reflection\Event- [phpDocumentor\Reflection\ClassReflector =phpDocumentor\Reflection3 g`phpDocumentor\Transformer\Router\UrlGenerator. ]`phpDocumentor\Transformer\Router\Matcher) S`phpDocumentor\Descriptor\Interfaces =`phpDocumentor\Translator0 a`phpDocumentor\Transformer\Writer\Exception& M`phpDocumentor\Transformer\Writer(
 Q`phpDocumentor\Transformer\Template<	 y`phpDocumentor\Transformer\Router\UrlGenerator\Standard& M`phpDocumentor\Transformer\Router) S`phpDocumentor\Transformer\Exception% K`phpDocumentor\Transformer\Event ?`phpDocumentor\Transformer= {`phpDocumentor\Transformer\Configuration\Transformations- [`phpDocumentor\Transformer\Configuration0 a`phpDocumentor\Transformer\Command\Template/ _`phpDocumentor\Transformer\Command\Project)  S`phpDocumentor\Transformer\Behaviour& M`phpDocumentor\Plugin\Twig\Writer~ ?`phpDocumentor\Plugin\Twig/} _`phpDocumentor\Plugin\Scrybe\Template\Mock*| U`phpDocumentor\Plugin\Scrybe\Template!{ C`phpDocumentor\Plugin\ScrybeFz `phpDocumentor\Plugin\Scrybe\Converter\RestructuredText\VisitorsCy `phpDocumentor\Plugin\Scrybe\Converter\RestructuredText\Roles<x y`phpDocumentor\Plugin\Scrybe\Converter\RestructuredTextHw `phpDocumentor\Plugin\Scrybe\Converter\RestructuredText\DirectivesEv 	`phpDocumentor\Plugin\Scrybe\Converter\Metadata\TableOfContents4u i`phpDocumentor\Plugin\Scrybe\Converter\Metadata<t y`phpDocumentor\Plugin\Scrybe\Converter\Format\Exception2s e`phpDocumentor\Plugin\Scrybe\Converter\Format   | nM9 sZ6v]:qUC*
oM9




z
T
(
					t	e	V	'f6pc5&z\@ycA'fG#lU6R/d>)               H /Guzzle\Tests\HttpG %Guzzle\Tests#F GGuzzle\Tests\Common\ExceptionE 3Guzzle\Tests\CommonD ?Guzzle\Tests\Common\CacheC 1Guzzle\Tests\CacheB 1Guzzle\Tests\BatchA 'Guzzle\Stream@ ;Guzzle\Service\Resource? =Guzzle\Service\Exception > AGuzzle\Service\Description,= YGuzzle\Service\Command\LocationVisitor5< kGuzzle\Service\Command\LocationVisitor\Response4; iGuzzle\Service\Command\LocationVisitor\Request$: IGuzzle\Service\Command\Factory9 9Guzzle\Service\Command8 9Guzzle\Service\Builder7 )Guzzle\Service6 3Guzzle\Plugin\Oauth5 1Guzzle\Plugin\Mock4 /Guzzle\Plugin\Md53 /Guzzle\Plugin\Log2 7Guzzle\Plugin\History+1 WGuzzle\Plugin\ErrorResponse\Exception!0 CGuzzle\Plugin\ErrorResponse/ 9Guzzle\Plugin\CurlAuth$. IGuzzle\Plugin\Cookie\Exception$- IGuzzle\Plugin\Cookie\CookieJar, 5Guzzle\Plugin\Cookie+ 3Guzzle\Plugin\Cache* 7Guzzle\Plugin\Backoff) 3Guzzle\Plugin\Async( /Guzzle\Parser\Url' ?Guzzle\Parser\UriTemplate& 'Guzzle\Parser% 7Guzzle\Parser\Message$ 5Guzzle\Parser\Cookie# !Guzzle\Log" +Guzzle\Iterator! /Guzzle\Inflection!  CGuzzle\Http\QueryAggregator  AGuzzle\Http\Message\Header 3Guzzle\Http\Message 7Guzzle\Http\Exception -Guzzle\Http\Curl #Guzzle\Http ;Guzzle\Common\Exception 'Guzzle\Common %Guzzle\Cache 9Guzzle\Batch\Exception %Guzzle\Batch global+ WContrib\Bundle\CoverallsBundle\Entity
 Hoge global =Contrib\Component\System" EContrib\Component\System\Git 7Contrib\Component\Log 9Contrib\Component\File1 cContrib\Bundle\CoverallsV1Bundle\Entity\Git- [Contrib\Bundle\CoverallsV1Bundle\Entity- [Contrib\Bundle\CoverallsV1Bundle\Config.
 ]Contrib\Bundle\CoverallsV1Bundle\Command0	 aContrib\Bundle\CoverallsV1Bundle\Collector* UContrib\Bundle\CoverallsV1Bundle\Api, YContrib\Bundle\CoverallsBundle\Console vglobal global ^global :global 7Zend\Stdlib\Extractor ?Zend\Stdlib\StringWrapper-  [Zend\Stdlib\Hydrator\Strategy\Exception# GZend\Stdlib\Hydrator\Strategy)~ SZend\Stdlib\Hydrator\NamingStrategy#} GZend\Stdlib\Hydrator\Iterator!| CZend\Stdlib\Hydrator\Filter${ IZend\Stdlib\Hydrator\Aggregatez 5Zend\Stdlib\Hydratory /Zend\Stdlib\Guardx 7Zend\Stdlib\Exceptionw 9Zend\Stdlib\ArrayUtilsv #Zend\Stdlibu ?Zend\ServiceManager\Proxy#t GZend\ServiceManager\Exceptions 9Zend\ServiceManager\Dir 3Zend\ServiceManagerq ?Zend\Serializer\Exceptionp +Zend\Serializero ;Zend\Serializer\Adaptern -IZend\Math\Sourcem IZend\Mathl 3IZend\Math\Exception$k IIZend\Math\BigInteger\Exceptionj 5IZend\Math\BigInteger"i EIZend\Math\BigInteger\Adapterh 5Zend\Json\Server\Smdg ?Zend\Json\Server\Responsef =Zend\Json\Server\Request e AZend\Json\Server\Exceptiond -Zend\Json\Serverc 3Zend\Json\Exceptionb Zend\Jsona )Zend\I18n\View` 7Zend\I18n\View\Helper_ 3Zend\I18n\Validator!^ CZend\I18n\Translator\Plural] 5Zend\I18n\Translator!\ CZend\I18n\Translator\Loader[ -Zend\I18n\FilterZ 3Zend\I18n\ExceptionY =Zend\Filter\Word\ServiceX -Zend\Filter\WordW -Zend\Filter\FileV 7Zend\Filter\ExceptionU 3Zend\Filter\EncryptT 5Zend\Filter\CompressS #Zend\FilterR =WZend\EventManager\Filter!Q CWZend\EventManager\ExceptionP /WZend\EventManagerO 1Zend\Config\WriterN 1Zend\Config\ReaderM 7Zend\Config\Processor   s rU0x\3{V,hCzS)




o
@
				O	|N/rX>%u^@1]A*^BoJ7mL!Z7                    ; -Zend\Http\Header: 3Zend\Http\Exception 9 AZend\Http\Client\Exception(8 QZend\Http\Client\Adapter\Exception7 =Zend\Http\Client\Adapter6 Zend\Http"5 EZend\Crypt\Symmetric\Padding4 5Zend\Crypt\Symmetric$3 IZend\Crypt\Symmetric\Exception(2 QZend\Crypt\PublicKey\Rsa\Exception1 =Zend\Crypt\PublicKey\Rsa0 5Zend\Crypt\PublicKey#/ GZend\Crypt\Password\Exception. 3Zend\Crypt\Password- ?Zend\Crypt\Key\Derivation), SZend\Crypt\Key\Derivation\Exception+ 5Zend\Crypt\Exception* !Zend\Crypt") EZend\Crypt\Symmetric\Padding( 5Zend\Crypt\Symmetric$' IZend\Crypt\Symmetric\Exception(& QZend\Crypt\PublicKey\Rsa\Exception% =Zend\Crypt\PublicKey\Rsa$ 5Zend\Crypt\PublicKey## GZend\Crypt\Password\Exception" 3Zend\Crypt\Password! ?Zend\Crypt\Key\Derivation)  SZend\Crypt\Key\Derivation\Exception 5Zend\Crypt\Exception !Zend\Crypt 7VOAuth2\OpenID\Storage )VOAuth2\Request -VOAuth2\TokenType )VOAuth2\Storage 3VOAuth2\ResponseType  AVOAuth2\OpenID\ResponseType ;VOAuth2\OpenID\GrantType =VOAuth2\OpenID\Controller -VOAuth2\GrantType /VOAuth2\Encryption /VOAuth2\Controller  AVOAuth2\ClientAssertionType VOAuth2 7XOAuth2\OpenID\Storage )XOAuth2\Request -XOAuth2\TokenType )XOAuth2\Storage 3XOAuth2\ResponseType  AXOAuth2\OpenID\ResponseType
 ;XOAuth2\OpenID\GrantType	 =XOAuth2\OpenID\Controller -XOAuth2\GrantType /XOAuth2\Encryption /XOAuth2\Controller  AXOAuth2\ClientAssertionType XOAuth2 9Horg\bovigo\vfs\visitor )Horg\bovigo\vfs 9Horg\bovigo\vfs\content  9Dorg\bovigo\vfs\visitor )Dorg\bovigo\vfs~ 9Dorg\bovigo\vfs\content+} WContrib\Bundle\CoverallsBundle\Entity
| Hoge{ globalz =Contrib\Component\System"y EContrib\Component\System\Gitx 7Contrib\Component\Logw 9Contrib\Component\File1v cContrib\Bundle\CoverallsV1Bundle\Entity\Git-u [Contrib\Bundle\CoverallsV1Bundle\Entity-t [Contrib\Bundle\CoverallsV1Bundle\Config.s ]Contrib\Bundle\CoverallsV1Bundle\Command0r aContrib\Bundle\CoverallsV1Bundle\Collector*q UContrib\Bundle\CoverallsV1Bundle\Api,p YContrib\Bundle\CoverallsBundle\Consoleo 3Guzzle\Tests\Stream#n GGuzzle\Tests\Service\Resource%m KGuzzle\Tests\Service\Mock\Modell ?Guzzle\Tests\Service\Mock+k WGuzzle\Tests\Service\Mock\Command\Sub'j OGuzzle\Tests\Service\Mock\Command$i IGuzzle\Tests\Service\Exception&h MGuzzle\Tests\Service\Description;g wGuzzle\Tests\Service\Command\LocationVisitor\Response:f uGuzzle\Tests\Service\Command\LocationVisitor\Request"e EGuzzle\Tests\Service\Command"d EGuzzle\Tests\Service\Builderc 5Guzzle\Tests\Serviceb ?Guzzle\Tests\Plugin\Oautha =Guzzle\Tests\Plugin\Mock` ;Guzzle\Tests\Plugin\Md5_ ;Guzzle\Tests\Plugin\Log!^ CGuzzle\Tests\Plugin\History'] OGuzzle\Tests\Plugin\ErrorResponse"\ EGuzzle\Tests\Plugin\CurlAuth [ AGuzzle\Tests\Plugin\Cookie*Z UGuzzle\Tests\Plugin\Cookie\CookieJarY ?Guzzle\Tests\Plugin\Cache!X CGuzzle\Tests\Plugin\BackoffW ?Guzzle\Tests\Plugin\Async&V MGuzzle\Tests\Parsers\UriTemplateU 3Guzzle\Tests\Parser!T CGuzzle\Tests\Parser\Message S AGuzzle\Tests\Parser\CookieR /Guzzle\Tests\MockQ -Guzzle\Tests\LogP 7Guzzle\Tests\IteratorO ;Guzzle\Tests\Inflection"N EGuzzle\Tests\Plugin\RedirectM 5Guzzle\Tests\Message&L MGuzzle\Tests\Http\Message\HeaderK ?Guzzle\Tests\Http\Message!J CGuzzle\Tests\Http\ExceptionI 9Guzzle\Tests\Http\Curl   } r]>,Y6fL+~S8"rT9#




z
W
@
'
					n	X	8	oY=cH.rEpU?kMa7jDSD3'  8 #6Zend\Config7 yglobal	6 Foo5 My\Space4 global)3 S"ZFTest\ContentNegotiation\Validator)2 S"ZFTest\ContentNegotiation\TestAsset'1 O"ZFTest\ContentNegotiation\Factory0 ?"ZFTest\ContentNegotiation%/ K"ZF\ContentNegotiation\Validator". E"ZF\ContentNegotiation\Filter#- G"ZF\ContentNegotiation\Factory%, K"ZF\ContentNegotiation\Exception,+ Y"ZF\ContentNegotiation\ControllerPlugin* 7"ZF\ContentNegotiation)) S"ZFTest\ContentNegotiation\Validator)( S"ZFTest\ContentNegotiation\TestAsset'' O"ZFTest\ContentNegotiation\Factory& ?"ZFTest\ContentNegotiation%% K"ZF\ContentNegotiation\Validator"$ E"ZF\ContentNegotiation\Filter## G"ZF\ContentNegotiation\Factory%" K"ZF\ContentNegotiation\Exception,! Y"ZF\ContentNegotiation\ControllerPlugin  7"ZF\ContentNegotiation 9ZFTest\ApiProblem\View  AZFTest\ApiProblem\Listener /ZFTest\ApiProblem 1ZF\ApiProblem\View 9ZF\ApiProblem\Listener 7ZF\ApiProblem\Factory ;ZF\ApiProblem\Exception 'ZF\ApiProblem 1"=Zend\View\Strategy 1"=Zend\View\Resolver 1"=Zend\View\Renderer +"=Zend\View\Model "=Zend\View ="=Zend\View\Helper\Service" E"=Zend\View\Helper\Placeholder, Y"=Zend\View\Helper\Placeholder\Container* U"=Zend\View\Helper\Navigation\Listener! C"=Zend\View\Helper\Navigation ="=Zend\View\Helper\Escaper -"=Zend\View\Helper 3"=Zend\View\Exception
 9ZFTest\ApiProblem\View 	 AZFTest\ApiProblem\Listener /ZFTest\ApiProblem 1ZF\ApiProblem\View 9ZF\ApiProblem\Listener 7ZF\ApiProblem\Factory ;ZF\ApiProblem\Exception 'ZF\ApiProblem ?Zend\ServiceManager\Proxy# GZend\ServiceManager\Exception  9Zend\ServiceManager\Di 3Zend\ServiceManager~ 'cZend\Mvc\View} 1cZend\Mvc\View\Http| 7cZend\Mvc\View\Console{ -cZend\Mvc\Servicez +cZend\Mvc\Routery 5cZend\Mvc\Router\Httpx ?cZend\Mvc\Router\Exceptionw ;cZend\Mvc\Router\Consolev ;cZend\Mvc\ResponseSenderu 'cZend\Mvc\I18nt 1cZend\Mvc\Exception(s QcZend\Mvc\Controller\Plugin\Service r AcZend\Mvc\Controller\Pluginq 3cZend\Mvc\Controllerp cZend\Mvc o AYZend\InputFilter\Exceptionn -YZend\InputFilterm )Zend\Form\View l AZend\Form\View\Helper\File#k GZend\Form\View\Helper\Captchaj 7Zend\Form\View\Helperi 3Zend\Form\Exceptionh Zend\Formg /Zend\Form\Elementf 5Zend\Form\Annotatione 'Zend\Mvc\Viewd 1Zend\Mvc\View\Httpc 7Zend\Mvc\View\Consoleb -Zend\Mvc\Servicea +Zend\Mvc\Router` 5Zend\Mvc\Router\Http_ ?Zend\Mvc\Router\Exception^ ;Zend\Mvc\Router\Console] ;Zend\Mvc\ResponseSender\ 'Zend\Mvc\I18n[ 1Zend\Mvc\Exception(Z QZend\Mvc\Controller\Plugin\Service Y AZend\Mvc\Controller\PluginX 3Zend\Mvc\ControllerW Zend\MvcV ?%Zend\Validator\TranslatorU 9%Zend\Validator\SitemapT 3%Zend\Validator\FileS =%Zend\Validator\ExceptionR /%Zend\Validator\DbQ 9%Zend\Validator\BarcodeP )%Zend\ValidatorO Zend\UriN 1Zend\Uri\ExceptionM 7oZend\Loader\ExceptionL #oZend\LoaderK 1Zend\Http\ResponseJ =Zend\Http\PhpEnvironment I AZend\Http\Header\Exception,H YZend\Http\Header\Accept\FieldValuePartG -Zend\Http\HeaderF 3Zend\Http\Exception E AZend\Http\Client\Exception(D QZend\Http\Client\Adapter\ExceptionC =Zend\Http\Client\AdapterB Zend\HttpA 9Zend\Escaper\Exception@ %Zend\Escaper? 1Zend\Http\Response> =Zend\Http\PhpEnvironment = AZend\Http\Header\Exception,< YZend\Http\Header\Accept\FieldValuePart   w  qWE)y^F+rWF+Z?gG/




|
g
H
,

						d	8	x\6f8vP4|eM.tI$jP7yVB*kD!        !/ C6WZend\Db\Sql\Platform\Oracle . A6WZend\Db\Sql\Platform\Mysql$- I6WZend\Db\Sql\Platform\Mysql\Ddl!, C6WZend\Db\Sql\Platform\IbmDb2+ 56WZend\Db\Sql\Platform* 76WZend\Db\Sql\Exception) 76WZend\Db\Sql\Ddl\Index ( A6WZend\Db\Sql\Ddl\Constraint' 96WZend\Db\Sql\Ddl\Column& +6WZend\Db\Sql\Ddl% #6WZend\Db\Sql $ A6WZend\Db\RowGateway\Feature"# E6WZend\Db\RowGateway\Exception" 16WZend\Db\RowGateway!! C6WZend\Db\ResultSet\Exception  /6WZend\Db\ResultSet ;6WZend\Db\Metadata\Source ;6WZend\Db\Metadata\Object -6WZend\Db\Metadata /6WZend\Db\Exception =6WZend\Db\Adapter\Profiler =6WZend\Db\Adapter\Platform ?6WZend\Db\Adapter\Exception- [6WZend\Db\Adapter\Driver\Sqlsrv\Exception# G6WZend\Db\Adapter\Driver\Sqlsrv" E6WZend\Db\Adapter\Driver\Pgsql( Q6WZend\Db\Adapter\Driver\Pdo\Feature  A6WZend\Db\Adapter\Driver\Pdo! C6WZend\Db\Adapter\Driver\Oci8# G6WZend\Db\Adapter\Driver\Mysqli# G6WZend\Db\Adapter\Driver\IbmDb2$ I6WZend\Db\Adapter\Driver\Feature 96WZend\Db\Adapter\Driver +6WZend\Db\Adapter )Zend\I18n\View 7Zend\I18n\View\Helper 3Zend\I18n\Validator!
 CZend\I18n\Translator\Plural	 5Zend\I18n\Translator! CZend\I18n\Translator\Loader -Zend\I18n\Filter 3Zend\I18n\Exception# G4Zend\Authentication\Validator! C4Zend\Authentication\Storage# G4Zend\Authentication\Exception 34Zend\Authentication0 a4Zend\Authentication\Adapter\Http\Exception&  M4Zend\Authentication\Adapter\Http+ W4Zend\Authentication\Adapter\Exception3~ g4Zend\Authentication\Adapter\DbTable\Exception)} S4Zend\Authentication\Adapter\DbTable!| C4Zend\Authentication\Adapter#{ G4Zend\Authentication\Validator!z C4Zend\Authentication\Storage#y G4Zend\Authentication\Exceptionx 34Zend\Authentication0w a4Zend\Authentication\Adapter\Http\Exception&v M4Zend\Authentication\Adapter\Http+u W4Zend\Authentication\Adapter\Exception3t g4Zend\Authentication\Adapter\DbTable\Exception)s S4Zend\Authentication\Adapter\DbTable!r C4Zend\Authentication\Adapterq ).Zend\Test\Util"p E.Zend\Test\PHPUnit\Controllero 119Zend\Dom\Exceptionn /19Zend\Dom\Documentm 19Zend\Doml ?0Zend\Console\RouteMatcherk 30Zend\Console\Promptj 90Zend\Console\Exceptioni %0Zend\Consoleh 10Zend\Console\Colorg 50Zend\Console\Charsetf 50Zend\Console\Adaptere ).Zend\Test\Util"d E.Zend\Test\PHPUnit\Controllerc ?Zend\Serializer\Exceptionb +Zend\Serializera ;Zend\Serializer\Adapter ` A,Zend\ModuleManager\Feature_ 1,Zend\ModuleManager+^ W,Zend\ModuleManager\Listener\Exception!] C,Zend\ModuleManager\Listener"\ E,Zend\ModuleManager\Exception [ A,Zend\ModuleManager\FeatureZ 1,Zend\ModuleManager+Y W,Zend\ModuleManager\Listener\Exception!X C,Zend\ModuleManager\Listener"W E,Zend\ModuleManager\ExceptionV ;+Zend\Log\Writer\FirePhpU ?+Zend\Log\Writer\ChromePhpT ++Zend\Log\WriterS 1+Zend\Log\ProcessorR +Zend\LogQ 1+Zend\Log\FormatterP ++Zend\Log\FilterO 1+Zend\Log\ExceptionN ;+Zend\Log\Writer\FirePhpM ?+Zend\Log\Writer\ChromePhpL ++Zend\Log\WriterK 1+Zend\Log\ProcessorJ +Zend\LogI 1+Zend\Log\FormatterH ++Zend\Log\FilterG 1+Zend\Log\ExceptionF 7Zend\Loader\ExceptionE #Zend\LoaderD )8Zend\Form\View C A8Zend\Form\View\Helper\File#B G8Zend\Form\View\Helper\CaptchaA 78Zend\Form\View\Helper@ 38Zend\Form\Exception? 8Zend\Form> /8Zend\Form\Element= 58Zend\Form\Annotation< 16Zend\Config\Writer; 16Zend\Config\Reader: 76Zend\Config\Processor9 76Zend\Config\Exception   z sL'qK'^<mI.	xZ<




b
;

 				s	S	C	$	
XC-{ePA!u]&vT'_@|^=!uO3jM%           ) 7>PhpSpec\CodeGenerator%( K>PhpSpec\CodeGenerator\Generator' 5>PhpSpec\CodeAnalysis& 5>spec\PhpSpec\Wrapper.% ]>spec\PhpSpec\Wrapper\Subject\Expectation"$ E>spec\PhpSpec\Wrapper\Subject# />spec\PhpSpec\Util" %>spec\PhpSpec$! I>spec\PhpSpec\Runner\Maintainer  3>spec\PhpSpec\Runner# G>spec\PhpSpec\Process\ReRunner( Q>spec\PhpSpec\Process\Prerequisites" E>spec\PhpSpec\Process\Context 5>spec\PhpSpec\Matcher 5>spec\PhpSpec\Locator ?>spec\PhpSpec\Locator\PSR0 3>spec\PhpSpec\Loader =>spec\PhpSpec\Loader\Node 7>spec\PhpSpec\Listener& M>spec\PhpSpec\Formatter\Presenter- [>spec\PhpSpec\Formatter\Presenter\Differ! C>spec\PhpSpec\Formatter\Html 9>spec\PhpSpec\Formatter% K>spec\PhpSpec\Exception\Fracture 9>spec\PhpSpec\Exception$ I>spec\PhpSpec\Exception\Example 1>spec\PhpSpec\Event 5>spec\PhpSpec\Console 3>spec\PhpSpec\Config' O>spec\PhpSpec\CodeGenerator\Writer  A>spec\PhpSpec\CodeGenerator*
 U>spec\PhpSpec\CodeGenerator\Generator	 ?>spec\PhpSpec\CodeAnalysis* U>integration\PhpSpec\Console\Prompter >Matcher
 >Fake >global	 Foo My\Space global '6Mockery\Tests  %6test\Mockery4 i6Mockery\Test\Generator\StringManipulation\Pass~ +6Mockery\Matcher} )6Mockery\Loader/| _6Mockery\Generator\StringManipulation\Pass{ /6Mockery\Generatorz /6Mockery\Exceptiony 96Mockery\CountValidatorx 6Mockeryw ;6Mockery\Adapter\Phpunitv 6globalu %6Hamcrest\Xmlt '6Hamcrest\Types '6Hamcrest\Textr +6Hamcrest\Numberq /6Hamcrest\Internalp '6Hamcrest\Coreo 36Hamcrest\Collectionn 6Hamcrestm +6Hamcrest\Arraysl 6globalk '6Mockery\Testsj %6test\Mockery4i i6Mockery\Test\Generator\StringManipulation\Passh +6Mockery\Matcherg )6Mockery\Loader/f _6Mockery\Generator\StringManipulation\Passe /6Mockery\Generatord /6Mockery\Exceptionc 96Mockery\CountValidatorb 6Mockerya ;6Mockery\Adapter\Phpunit` 6global/_ _6<Zend\Db\TableGateway\Feature\EventFeature"^ E6<Zend\Db\TableGateway\Feature$] I6<Zend\Db\TableGateway\Exception\ 56<Zend\Db\TableGateway[ 76<Zend\Db\Sql\Predicate$Z I6<Zend\Db\Sql\Platform\SqlServer(Y Q6<Zend\Db\Sql\Platform\SqlServer\Ddl!X C6<Zend\Db\Sql\Platform\Oracle W A6<Zend\Db\Sql\Platform\Mysql$V I6<Zend\Db\Sql\Platform\Mysql\Ddl!U C6<Zend\Db\Sql\Platform\IbmDb2T 56<Zend\Db\Sql\PlatformS 76<Zend\Db\Sql\ExceptionR 76<Zend\Db\Sql\Ddl\Index Q A6<Zend\Db\Sql\Ddl\ConstraintP 96<Zend\Db\Sql\Ddl\ColumnO +6<Zend\Db\Sql\DdlN #6<Zend\Db\Sql M A6<Zend\Db\RowGateway\Feature"L E6<Zend\Db\RowGateway\ExceptionK 16<Zend\Db\RowGateway!J C6<Zend\Db\ResultSet\ExceptionI /6<Zend\Db\ResultSetH ;6<Zend\Db\Metadata\SourceG ;6<Zend\Db\Metadata\ObjectF -6<Zend\Db\MetadataE /6<Zend\Db\ExceptionD =6<Zend\Db\Adapter\ProfilerC =6<Zend\Db\Adapter\PlatformB ?6<Zend\Db\Adapter\Exception-A [6<Zend\Db\Adapter\Driver\Sqlsrv\Exception#@ G6<Zend\Db\Adapter\Driver\Sqlsrv"? E6<Zend\Db\Adapter\Driver\Pgsql(> Q6<Zend\Db\Adapter\Driver\Pdo\Feature = A6<Zend\Db\Adapter\Driver\Pdo!< C6<Zend\Db\Adapter\Driver\Oci8#; G6<Zend\Db\Adapter\Driver\Mysqli#: G6<Zend\Db\Adapter\Driver\IbmDb2$9 I6<Zend\Db\Adapter\Driver\Feature8 96<Zend\Db\Adapter\Driver7 +6<Zend\Db\Adapter/6 _6WZend\Db\TableGateway\Feature\EventFeature"5 E6WZend\Db\TableGateway\Feature$4 I6WZend\Db\TableGateway\Exception3 56WZend\Db\TableGateway2 76WZend\Db\Sql\Predicate$1 I6WZend\Db\Sql\Platform\SqlServer(0 Q6WZend\Db\Sql\Platform\SqlServer\Ddl   z" kU3v\=mUE%xX,b@




r
K
,
				h	J	)	a;sV9^H&iO0x`H8kKqDvM"                                      (# QSymfony\Component\Console\Question&" MSymfony\Component\Console\Output&! MSymfony\Component\Console\Logger%  KSymfony\Component\Console\Input& MSymfony\Component\Console\Helper) SSymfony\Component\Console\Formatter% KSymfony\Component\Console\Event* USymfony\Component\Console\Descriptor' OSymfony\Component\Console\Command ?Symfony\Component\Console +>PhpSpec\Process !>PhpSpec\IO />PhpSpec\Extension 5>Phpspec\CodeAnalysis) S>PhpSpec\Wrapper\Subject\Expectation ;>PhpSpec\Wrapper\Subject +>PhpSpec\Wrapper %>PhpSpec\Util ?>PhpSpec\Runner\Maintainer )>PhpSpec\Runner =>PhpSpec\Process\ReRunner# G>PhpSpec\Process\Prerequisites ;>PhpSpec\Process\Context >PhpSpec +>PhpSpec\Matcher
 +>PhpSpec\Locator	 5>PhpSpec\Locator\PSR0 )>PhpSpec\Loader 3>PhpSpec\Loader\Node ->PhpSpec\Listener! C>PhpSpec\Formatter\Presenter( Q>PhpSpec\Formatter\Presenter\Differ 9>PhpSpec\Formatter\Html />PhpSpec\Formatter +>PhpSpec\Factory  ?>PhpSpec\Exception\Wrapper ?>PhpSpec\Exception\Locator!~ C>PhpSpec\Exception\Generator } A>PhpSpec\Exception\Fracture| />PhpSpec\Exception{ ?>PhpSpec\Exception\Examplez '>PhpSpec\Eventy =>PhpSpec\Console\Prompterx ;>PhpSpec\Console\Commandw +>PhpSpec\Consolev )>PhpSpec\Config"u E>PhpSpec\CodeGenerator\Writert 7>PhpSpec\CodeGenerator%s K>PhpSpec\CodeGenerator\Generatorr 5>PhpSpec\CodeAnalysisq 5>spec\PhpSpec\Wrapper.p ]>spec\PhpSpec\Wrapper\Subject\Expectation"o E>spec\PhpSpec\Wrapper\Subjectn />spec\PhpSpec\Utilm %>spec\PhpSpec$l I>spec\PhpSpec\Runner\Maintainerk 3>spec\PhpSpec\Runner#j G>spec\PhpSpec\Process\ReRunner(i Q>spec\PhpSpec\Process\Prerequisites"h E>spec\PhpSpec\Process\Contextg 5>spec\PhpSpec\Matcherf 5>spec\PhpSpec\Locatore ?>spec\PhpSpec\Locator\PSR0d 3>spec\PhpSpec\Loaderc =>spec\PhpSpec\Loader\Nodeb 7>spec\PhpSpec\Listener&a M>spec\PhpSpec\Formatter\Presenter-` [>spec\PhpSpec\Formatter\Presenter\Differ!_ C>spec\PhpSpec\Formatter\Html^ 9>spec\PhpSpec\Formatter%] K>spec\PhpSpec\Exception\Fracture\ 9>spec\PhpSpec\Exception$[ I>spec\PhpSpec\Exception\ExampleZ 1>spec\PhpSpec\EventY 5>spec\PhpSpec\ConsoleX 3>spec\PhpSpec\Config'W O>spec\PhpSpec\CodeGenerator\Writer V A>spec\PhpSpec\CodeGenerator*U U>spec\PhpSpec\CodeGenerator\GeneratorT ?>spec\PhpSpec\CodeAnalysis*S U>integration\PhpSpec\Console\PrompterR >Matcher
Q >FakeP >globalO >globalN +>PhpSpec\ProcessM !>PhpSpec\IOL />PhpSpec\ExtensionK 5>Phpspec\CodeAnalysis)J S>PhpSpec\Wrapper\Subject\ExpectationI ;>PhpSpec\Wrapper\SubjectH +>PhpSpec\WrapperG %>PhpSpec\UtilF ?>PhpSpec\Runner\MaintainerE )>PhpSpec\RunnerD =>PhpSpec\Process\ReRunner#C G>PhpSpec\Process\PrerequisitesB ;>PhpSpec\Process\ContextA >PhpSpec@ +>PhpSpec\Matcher? +>PhpSpec\Locator> 5>PhpSpec\Locator\PSR0= )>PhpSpec\Loader< 3>PhpSpec\Loader\Node; ->PhpSpec\Listener!: C>PhpSpec\Formatter\Presenter(9 Q>PhpSpec\Formatter\Presenter\Differ8 9>PhpSpec\Formatter\Html7 />PhpSpec\Formatter6 +>PhpSpec\Factory5 ?>PhpSpec\Exception\Wrapper4 ?>PhpSpec\Exception\Locator!3 C>PhpSpec\Exception\Generator 2 A>PhpSpec\Exception\Fracture1 />PhpSpec\Exception0 ?>PhpSpec\Exception\Example/ '>PhpSpec\Event. =>PhpSpec\Console\Prompter- ;>PhpSpec\Console\Command, +>PhpSpec\Console+ )>PhpSpec\Config"* E>PhpSpec\CodeGenerator\Writer   u W$U&kFoN$f?



l
D
%							z	b	F		uW5gI2hU8 oV3f=ycRG1taP: u_B"                    5IDI\Definition\Helper ;IDI\Definition\Exception 5IDI\Definition\Dumper 'IDI\Definition IDI IDI\Cache 'IDI\Annotation 1IInvoker\Reflection) SIInvoker\ParameterResolver\Container ?IInvoker\ParameterResolver IInvoker /IInvoker\Exception 'IDI\Reflection IDI\Proxy
 !IDI\Invoker	 5IDI\Definition\Source 9IDI\Definition\Resolver$ IIDI\Definition\ObjectDefinition 5IDI\Definition\Helper ;IDI\Definition\Exception 5IDI\Definition\Dumper 'IDI\Definition IDI IDI\Cache  'IDI\Annotation 1HMni\FrontYAML\YAML~ 9HMni\FrontYAML\Markdown} 'HMni\FrontYAML"| EHMni\FrontYAML\Bridge\Symfony${ IHMni\FrontYAML\Bridge\Parsedown%z KHMni\FrontYAML\Bridge\CommonMark&y MHPhine\Phar\Tests\Subject\Builderx =HPhine\Phar\Tests\Builderw =HPhine\Phar\Tests\Subjectv 7HPhine\Phar\Tests\Stub*u UHPhine\Phar\Tests\Signature\Algorithmt ?HPhine\Phar\Tests\Manifests 7HPhine\Phar\Tests\File r AHPhine\Phar\Tests\Exceptionq -HPhine\Phar\Testsp +HPhine\Phar\Test o AHPhine\Phar\Subject\Buildern 1HPhine\Phar\Subjectm +HPhine\Phar\Stub$l IHPhine\Phar\Signature\Algorithmk 3HPhine\Phar\Manifestj +HPhine\Phar\Filei 5HPhine\Phar\Exceptionh !HPhine\Pharg -HPhine\Path\Testsf !HPhine\Pathe 5HPhine\Path\Exception$d IHPhine\Observer\Tests\Exceptionc 5HPhine\Observer\Testsb 3HPhine\Observer\Testa =HPhine\Observer\Exception` )HPhine\Observer_ 7HPhine\Exception\Tests^ +HPhine\Exception&] MHPhine\Phar\Tests\Subject\Builder\ =HPhine\Phar\Tests\Builder[ =HPhine\Phar\Tests\SubjectZ 7HPhine\Phar\Tests\Stub*Y UHPhine\Phar\Tests\Signature\AlgorithmX ?HPhine\Phar\Tests\ManifestW 7HPhine\Phar\Tests\File V AHPhine\Phar\Tests\ExceptionU -HPhine\Phar\TestsT +HPhine\Phar\Test S AHPhine\Phar\Subject\BuilderR 1HPhine\Phar\SubjectQ +HPhine\Phar\Stub$P IHPhine\Phar\Signature\AlgorithmO 3HPhine\Phar\ManifestN +HPhine\Phar\FileM 5HPhine\Phar\ExceptionL !HPhine\PharK H>globalJ globalI global"H ESymfony\Component\Yaml\Tests&G MSymfony\Component\Yaml\ExceptionF 9Symfony\Component\Yaml%E KSymfony\Component\Process\Tests%D KSymfony\Component\Process\PipesC ?Symfony\Component\Process)B SSymfony\Component\Process\Exception*A UmSymfony\Component\Finder\Tests\Shell-@ [mSymfony\Component\Finder\Tests\Iterator$? ImSymfony\Component\Finder\Tests0> amSymfony\Component\Finder\Tests\FakeAdapter/= _mSymfony\Component\Finder\Tests\Expression/< _mSymfony\Component\Finder\Tests\Comparator$; ImSymfony\Component\Finder\Shell': OmSymfony\Component\Finder\Iterator9 =mSymfony\Component\Finder)8 SmSymfony\Component\Finder\Expression(7 QmSymfony\Component\Finder\Exception)6 SmSymfony\Component\Finder\Comparator&5 MmSymfony\Component\Finder\Adapter(4 QSymfony\Component\Filesystem\Tests"3 ESymfony\Component\Filesystem,2 YSymfony\Component\Filesystem\Exception,1 YSymfony\Component\Console\Tests\Tester+0 WSymfony\Component\Console\Tests\Style,/ YSymfony\Component\Console\Tests\Output,. YSymfony\Component\Console\Tests\Logger+- WSymfony\Component\Console\Tests\Input,, YSymfony\Component\Console\Tests\Helper/+ _Symfony\Component\Console\Tests\Formatter.* ]Symfony\Component\Console\Tests\Fixtures) global0( aSymfony\Component\Console\Tests\Descriptor-' [Symfony\Component\Console\Tests\Command%& KSymfony\Component\Console\Tests&% MSymfony\Component\Console\Tester%$ KSymfony\Component\Console\Style   . ycN/ aG)sL0t[L=0lD7	






x
h
W
?
0
				t	K	%	}nP< aI*`C*fF"bQ;)_<{[H(\.                  +" WMfFacebook\WebDriver\Interactions\Touch.! ]MfFacebook\WebDriver\Interactions\Internal   AMfFacebook\WebDriver\Firefox" EMfFacebook\WebDriver\Exception ?MfFacebook\WebDriver\Chrome -LShire\_generated +LJazz\_generated ;LJazz\Pianist\_generated !L_generated ;LCodeception\Util\Shared! CLCodeception\TestCase\Shared# GLCodeception\Subscriber\Shared& MLCodeception\Lib\Generator\Shared& MLCodeception\Lib\Connector\Shared" ELCodeception\Lib\Actor\Shared  ALCodeception\Command\Shared% KLCodeception\TestCase\Interfaces  ALCodeception\Lib\Interfaces LWebGuy +LsimpleDIHelpers LsimpleDI LSimpleB LSimpleA 'LAcmePack\Test
 LAcmePack	 LToastPack 'LEwokPack\Test LEwokPack =LShire\Codeception\Module LShire ;LJazz\Codeception\Module
 LJazz% KLJazz\Pianist\Codeception\Module %LJazz\Pianist$  ILFailDependenciesPrimitiveParam! CLFailDependenciesNonExistent~ ;LFailDependenciesInChain} 9LFailDependenciesCyclic| !LStep\Order{ LPage\Math
z LMathy LHelperx LCliGuyw -LCodeception\Utilv 5LCodeception\TestCaseu 9LCodeception\Subscribert -LCodeception\Steps 5LCodeception\Platform'r OLCodeception\PHPUnit\ResultPrinterq ;LCodeception\PHPUnit\Logp 3LCodeception\PHPUnit$o ILCodeception\PHPUnit\Constraintn 1LCodeception\Modulem ?LCodeception\Lib\Generatorl 9LCodeception\Lib\Driverk +LCodeception\Libj ;LCodeception\Lib\Consolei ?LCodeception\Lib\Connectorh 7LCodeception\Exceptiong /LCodeception\Event%f KLCodeception\Coverage\Subscribere 5LCodeception\Coveraged 3LCodeception\Commandc #LCodeceptionb 7LCodeception\Extensiona Lglobal` -LShire\_generated_ +LJazz\_generated^ ;LJazz\Pianist\_generated] !L_generated\ ;LCodeception\Util\Shared![ CLCodeception\TestCase\Shared#Z GLCodeception\Subscriber\Shared&Y MLCodeception\Lib\Generator\Shared&X MLCodeception\Lib\Connector\Shared"W ELCodeception\Lib\Actor\Shared V ALCodeception\Command\Shared%U KLCodeception\TestCase\Interfaces T ALCodeception\Lib\InterfacesS LWebGuyR +LsimpleDIHelpersQ LsimpleDIP LSimpleBO LSimpleAN 'LAcmePack\TestM LAcmePackL LToastPackK 'LEwokPack\TestJ LEwokPackI =LShire\Codeception\ModuleH LShireG ;LJazz\Codeception\Module
F LJazz%E KLJazz\Pianist\Codeception\ModuleD %LJazz\Pianist$C ILFailDependenciesPrimitiveParam!B CLFailDependenciesNonExistentA ;LFailDependenciesInChain@ 9LFailDependenciesCyclic? !LStep\Order> LPage\Math
= LMath< LHelper; LCliGuy: -LCodeception\Util9 5LCodeception\TestCase8 9LCodeception\Subscriber7 -LCodeception\Step6 5LCodeception\Platform'5 OLCodeception\PHPUnit\ResultPrinter4 ;LCodeception\PHPUnit\Log3 3LCodeception\PHPUnit$2 ILCodeception\PHPUnit\Constraint1 1LCodeception\Module0 ?LCodeception\Lib\Generator/ 9LCodeception\Lib\Driver. +LCodeception\Lib- ;LCodeception\Lib\Console, ?LCodeception\Lib\Connector+ 7LCodeception\Exception* /LCodeception\Event%) KLCodeception\Coverage\Subscriber( 5LCodeception\Coverage' 3LCodeception\Command& #LCodeception% 7LCodeception\Extension$ Lglobal	# Foo" My\Space! global  9JPhpDocReader\PhpParser %JPhpDocReader 'IDI\Reflection IDI\Proxy !IDI\Invoker 5IDI\Definition\Source 9IDI\Definition\Resolver$ IIDI\Definition\ObjectDefinition   e  mC(uT3[5xBs@


p
K
 						~	o	S	?	0		 kU7`<s@e2qDqHa V                                     $ IephpDocumentor\Plugin\Core\Xslt6 mephpDocumentor\Plugin\Core\Transformer\Writer\Xml2 eephpDocumentor\Plugin\Core\Transformer\Writer9 sephpDocumentor\Plugin\Core\Transformer\Behaviour\Tag ?ephpDocumentor\Plugin\Core4 iephpDocumentor\Plugin\Core\Descriptor\Validator> }ephpDocumentor\Plugin\Core\Descriptor\Validator\FunctionsJ  ephpDocumentor\Plugin\Core\Descriptor\Validator\Constraints\PropertyK ephpDocumentor\Plugin\Core\Descriptor\Validator\Constraints\FunctionsI~ ephpDocumentor\Plugin\Core\Descriptor\Validator\Constraints\Classes&} MephpDocumentor\Partials\Exception| 9ephpDocumentor\Partials{ ?ephpDocumentor\Parser\Util$z IephpDocumentor\Parser\Exception y AephpDocumentor\Parser\Eventx 5ephpDocumentor\Parser(w QephpDocumentor\Parser\Configuration*v UephpDocumentor\Parser\Command\Projectu 3ephpDocumentor\Event(t QephpDocumentor\Descriptor\Validator#s GephpDocumentor\Descriptor\Type,r YephpDocumentor\Descriptor\Tag\BaseTypes"q EephpDocumentor\Descriptor\Tag0p aephpDocumentor\Descriptor\ProjectDescriptor%o KephpDocumentor\Descriptor\Filter(n QephpDocumentor\Descriptor\Exception&m MephpDocumentor\Descriptor\Example$l IephpDocumentor\Descriptor\Cache5k kephpDocumentor\Descriptor\Builder\Reflector\Tags0j aephpDocumentor\Descriptor\Builder\Reflector&i MephpDocumentor\Descriptor\Builderh =ephpDocumentor\Descriptor"g EephpDocumentor\Console\Output!f CephpDocumentor\Console\Input3e gephpDocumentor\Configuration\Merger\Annotation!d CephpDocumentor\Configuration!c CephpDocumentor\Compiler\Pass#b GephpDocumentor\Compiler\Linkera 9ephpDocumentor\Compiler#` GephpDocumentor\Command\Project _ AephpDocumentor\Command\Phar"^ EephpDocumentor\Command\Helper] 7ephpDocumentor\Command\ 'ephpDocumentor[ )eCilex\ProviderZ -SgDeepCopy\MatcherY +SgDeepCopy\FilterX =SgDeepCopy\Filter\DoctrineW 1SgDeepCopy\ExceptionV SgDeepCopyU #SMCodeceptionT 3SMCodeception\SpecifyS SMglobalR #SNCodeceptionQ 3SNCodeception\SpecifyP SNglobalO S9globalN #S9CodeceptionM S@globalL #S@Codeception.K ]QSymfony\Component\DomCrawler\Tests\Field(J QQSymfony\Component\DomCrawler\Tests(I QQSymfony\Component\DomCrawler\Field"H EQSymfony\Component\DomCrawler)G SPySymfony\Component\CssSelector\XPath3F gPySymfony\Component\CssSelector\XPath\Extension/E _PySymfony\Component\CssSelector\Tests\XPath9D sPySymfony\Component\CssSelector\Tests\Parser\Shortcut0C aPySymfony\Component\CssSelector\Tests\Parser8B qPySymfony\Component\CssSelector\Tests\Parser\Handler.A ]PySymfony\Component\CssSelector\Tests\Node)@ SPySymfony\Component\CssSelector\Tests4? iPySymfony\Component\CssSelector\Parser\Tokenizer3> gPySymfony\Component\CssSelector\Parser\Shortcut*= UPySymfony\Component\CssSelector\Parser2< ePySymfony\Component\CssSelector\Parser\Handler(; QPySymfony\Component\CssSelector\Node-: [PySymfony\Component\CssSelector\Exception#9 GPySymfony\Component\CssSelector(8 QOcSymfony\Component\BrowserKit\Tests"7 EOcSymfony\Component\BrowserKit6 -OPsr\Http\Message5 -MGuzzleHttp\Tests4 7MGuzzleHttp\Tests\Psr73 +MGuzzleHttp\Psr72 ;MGuzzleHttp\Promise\Test1 =MGuzzleHttp\Tests\Promise0 =MGuzzleHttp\Promise\Tests/ 1MGuzzleHttp\Promise. 1MtGuzzleHttp\Handler- 5MtGuzzleHttp\Exception, /MtGuzzleHttp\Cookie+ !MtGuzzleHttp!* CMfFacebook\WebDriver\Internal) Mfglobal( 1MfFacebook\WebDriver'' OMfFacebook\WebDriver\Support\Events'& OMfFacebook\WebDriver\Remote\Service% ?MfFacebook\WebDriver\Remote$ 9MfFacebook\WebDriver\Net%# KMfFacebook\WebDriver\Interactions   U  {?"P]D vJ


u
S
+				l	C	\,p?t? uF7(^,w>]*R                                    C\ edSymfony\Component\Form\Extension\DataCollector\EventListener4[ iedSymfony\Component\Form\Extension\DataCollector0Z aedSymfony\Component\Form\Extension\Csrf\Type9Y sedSymfony\Component\Form\Extension\Csrf\EventListener8X qedSymfony\Component\Form\Extension\Csrf\CsrfProvider+W WedSymfony\Component\Form\Extension\Csrf0V aedSymfony\Component\Form\Extension\Core\Type9U sedSymfony\Component\Form\Extension\Core\EventListener;T wedSymfony\Component\Form\Extension\Core\DataTransformer6S medSymfony\Component\Form\Extension\Core\DataMapper+R WedSymfony\Component\Form\Extension\Core6Q medSymfony\Component\Form\Extension\Core\ChoiceList&P MedSymfony\Component\Form\Exception'O OedSymfony\Component\Form\Deprecated0N aedSymfony\Component\Form\Extension\Core\View,M YedSymfony\Component\Form\ChoiceList\View/L _edSymfony\Component\Form\ChoiceList\Factory'K OedSymfony\Component\Form\ChoiceListJ 9edSymfony\Component\FormI /dXTwig\Gettext\Test$H IdXTwig\Gettext\Routing\GeneratorG 3dXTwig\Gettext\LoaderF %dXTwig\GettextE dglobalD dglobalC global,B YSatooshi\Bundle\CoverallsBundle\EntityA Satooshi
@ Hoge? 'CoverallsTest> global= ?Satooshi\Component\System#< GSatooshi\Component\System\Git; 9Satooshi\Component\Log: ;Satooshi\Component\File29 eSatooshi\Bundle\CoverallsV1Bundle\Repository28 eSatooshi\Bundle\CoverallsV1Bundle\Entity\Git87 qSatooshi\Bundle\CoverallsV1Bundle\Entity\Exception.6 ]Satooshi\Bundle\CoverallsV1Bundle\Entity'5 OSatooshi\Bundle\CoverallsV1Bundle.4 ]Satooshi\Bundle\CoverallsV1Bundle\Config/3 _Satooshi\Bundle\CoverallsV1Bundle\Command12 cSatooshi\Bundle\CoverallsV1Bundle\Collector+1 WSatooshi\Bundle\CoverallsV1Bundle\Api%0 KSatooshi\Bundle\CoverallsBundle-/ [Satooshi\Bundle\CoverallsBundle\Console3. gephpDocumentor\Transformer\Router\UrlGenerator.- ]ephpDocumentor\Transformer\Router\Matcher), SephpDocumentor\Descriptor\Interfaces+ =ephpDocumentor\Translator0* aephpDocumentor\Transformer\Writer\Exception&) MephpDocumentor\Transformer\Writer(( QephpDocumentor\Transformer\Template<' yephpDocumentor\Transformer\Router\UrlGenerator\Standard&& MephpDocumentor\Transformer\Router)% SephpDocumentor\Transformer\Exception%$ KephpDocumentor\Transformer\Event# ?ephpDocumentor\Transformer=" {ephpDocumentor\Transformer\Configuration\Transformations-! [ephpDocumentor\Transformer\Configuration0  aephpDocumentor\Transformer\Command\Template/ _ephpDocumentor\Transformer\Command\Project) SephpDocumentor\Transformer\Behaviour& MephpDocumentor\Plugin\Twig\Writer ?ephpDocumentor\Plugin\Twig/ _ephpDocumentor\Plugin\Scrybe\Template\Mock* UephpDocumentor\Plugin\Scrybe\Template! CephpDocumentor\Plugin\ScrybeF ephpDocumentor\Plugin\Scrybe\Converter\RestructuredText\VisitorsC ephpDocumentor\Plugin\Scrybe\Converter\RestructuredText\Roles< yephpDocumentor\Plugin\Scrybe\Converter\RestructuredTextH ephpDocumentor\Plugin\Scrybe\Converter\RestructuredText\DirectivesE 	ephpDocumentor\Plugin\Scrybe\Converter\Metadata\TableOfContents4 iephpDocumentor\Plugin\Scrybe\Converter\Metadata< yephpDocumentor\Plugin\Scrybe\Converter\Format\Exception2 eephpDocumentor\Plugin\Scrybe\Converter\Format5 kephpDocumentor\Plugin\Scrybe\Converter\Exception6 mephpDocumentor\Plugin\Scrybe\Converter\Definition+ WephpDocumentor\Plugin\Scrybe\Converter0 aephpDocumentor\Plugin\Scrybe\Command\Manual 5ephpDocumentor\Plugin9 sephpDocumentor\Plugin\LegacyNamespaceConverter\Tests3
 gephpDocumentor\Plugin\LegacyNamespaceConverter(	 QephpDocumentor\Plugin\Graphs\Writer! CephpDocumentor\Plugin\Graphs   H  JZj7UV


U
			[	BCkC}P'rS-X }NtH                                                                   2$ eeSymfony\Component\Intl\Tests\NumberFormatter6# meSymfony\Component\Intl\Tests\Locale\Verification)" SeSymfony\Component\Intl\Tests\Locale7! oeSymfony\Component\Intl\Tests\Globals\Verification*  UeSymfony\Component\Intl\Tests\Globals= {eSymfony\Component\Intl\Tests\DateFormatter\Verification0 aeSymfony\Component\Intl\Tests\DateFormatter, YeSymfony\Component\Intl\Tests\Data\Util5 keSymfony\Component\Intl\Tests\Data\Provider\Json0 aeSymfony\Component\Intl\Tests\Data\Provider5 keSymfony\Component\Intl\Tests\Data\Bundle\Writer5 keSymfony\Component\Intl\Tests\Data\Bundle\Reader8 qeSymfony\Component\Intl\Tests\Collator\Verification+ WeSymfony\Component\Intl\Tests\Collator eglobal+ WeSymfony\Component\Intl\ResourceBundle, YeSymfony\Component\Intl\NumberFormatter# GeSymfony\Component\Intl\Locale 9eSymfony\Component\Intl$ IeSymfony\Component\Intl\Globals& MeSymfony\Component\Intl\Exception* UeSymfony\Component\Intl\DateFormatter5 keSymfony\Component\Intl\DateFormatter\DateFormat& MeSymfony\Component\Intl\Data\Util* UeSymfony\Component\Intl\Data\Provider+ WeSymfony\Component\Intl\Data\Generator/
 _eSymfony\Component\Intl\Data\Bundle\Writer/	 _eSymfony\Component\Intl\Data\Bundle\Reader1 ceSymfony\Component\Intl\Data\Bundle\Compiler% KeSymfony\Component\Intl\Collator. ]edSymfony\Component\Form\ChoiceList\Loader! CedSymfony\Component\Form\Util' OedSymfony\Component\Form\Tests\Util( QedSymfony\Component\Form\Tests\Guess+ WedSymfony\Component\Form\Tests\FixturesG edSymfony\Component\Form\Tests\Extension\Validator\ViolationMapper6  medSymfony\Component\Form\Tests\Extension\Validator; wedSymfony\Component\Form\Tests\Extension\Validator\Util;~ wedSymfony\Component\Form\Tests\Extension\Validator\TypeE} 	edSymfony\Component\Form\Tests\Extension\Validator\EventListenerC| edSymfony\Component\Form\Tests\Extension\Validator\Constraints;{ wedSymfony\Component\Form\Tests\Extension\HttpFoundationJz edSymfony\Component\Form\Tests\Extension\HttpFoundation\EventListener?y edSymfony\Component\Form\Tests\Extension\DataCollector\Type:x uedSymfony\Component\Form\Tests\Extension\DataCollector6w medSymfony\Component\Form\Tests\Extension\Csrf\Type?v edSymfony\Component\Form\Tests\Extension\Csrf\EventListener>u }edSymfony\Component\Form\Tests\Extension\Csrf\CsrfProvider6t medSymfony\Component\Form\Tests\Extension\Core\Type?s edSymfony\Component\Form\Tests\Extension\Core\EventListenerBr edSymfony\Component\Form\Tests\Extension\Core\DataTransformer<q yedSymfony\Component\Form\Tests\Extension\Core\DataMapperFp edSymfony\Component\Form\Tests\Extension\Core\ChoiceList\Fixtures<o yedSymfony\Component\Form\Tests\Extension\Core\ChoiceList5n kedSymfony\Component\Form\Tests\ChoiceList\Factory-m [edSymfony\Component\Form\Tests\ChoiceList"l EedSymfony\Component\Form\Tests!k CedSymfony\Component\Form\Test"j EedSymfony\Component\Form\GuessAi edSymfony\Component\Form\Extension\Validator\ViolationMapper0h aedSymfony\Component\Form\Extension\Validator5g kedSymfony\Component\Form\Extension\Validator\Util5f kedSymfony\Component\Form\Extension\Validator\Type>e }edSymfony\Component\Form\Extension\Validator\EventListener<d yedSymfony\Component\Form\Extension\Validator\Constraints1c cedSymfony\Component\Form\Extension\Templating:b uedSymfony\Component\Form\Extension\HttpFoundation\Type5a kedSymfony\Component\Form\Extension\HttpFoundationD` edSymfony\Component\Form\Extension\HttpFoundation\EventListener:_ uedSymfony\Component\Form\Extension\DependencyInjection9^ sedSymfony\Component\Form\Extension\DataCollector\Type:] uedSymfony\Component\Form\Extension\DataCollector\Proxy   g  p<NqEf$c1



[
1
				w	K	eCrZ:rN2d=tV<oT<$yX8)tP5                                   1iIlluminate\Support 
 AiIlluminate\Session\Console	 1iIlluminate\Session! CiIlluminate\Routing\Matching# GiIlluminate\Routing\Generators 1iIlluminate\Routing  AiIlluminate\Routing\Console /iIlluminate\Remote -iIlluminate\Redis 7iIlluminate\Queue\Jobs iglobal  ;iIlluminate\Queue\Failed =iIlluminate\Queue\Console!~ CiIlluminate\Queue\Connectors} =iIlluminate\Queue\Capsule| -iIlluminate\Queue{ 7iIlluminate\Paginationz +iIlluminate\Maily )iIlluminate\Logx +iIlluminate\Httpw +iIlluminate\Htmlv 1iIlluminate\Hashing#u GiIlluminate\Foundation\Testing%t KiIlluminate\Foundation\Providers#s GiIlluminate\Foundation\Consoler 7iIlluminate\Foundationq 7iIlluminate\Filesystemp 5iIlluminate\Exceptiono /iIlluminate\Eventsn 7iIlluminate\Encryption)m SiIlluminate\Database\Schema\Grammars l AiIlluminate\Database\Schema*k UiIlluminate\Database\Query\Processors(j QiIlluminate\Database\Query\Grammarsi ?iIlluminate\Database\Query$h IiIlluminate\Database\Migrations,g YiIlluminate\Database\Eloquent\Relations"f EiIlluminate\Database\Eloquent!e CiIlluminate\Database\Console,d YiIlluminate\Database\Console\Migrations$c IiIlluminate\Database\Connectorsb 3iIlluminate\Database!a CiIlluminate\Database\Capsule` /iIlluminate\Cookie_ 5iIlluminate\Container^ 1iIlluminate\Console] /iIlluminate\Config\ =iIlluminate\Cache\Console[ -iIlluminate\CacheZ ?iIlluminate\Auth\RemindersY ;iIlluminate\Auth\ConsoleX +iIlluminate\AuthW /dSTwig\Gettext\Test$V IdSTwig\Gettext\Routing\GeneratorU 3dSTwig\Gettext\LoaderT %dSTwig\GettextS dglobal%R KhLSymfony\Bridge\Twig\Translation%Q KhLSymfony\Bridge\Twig\TokenParserP ?hLSymfony\Bridge\Twig\Tests+O WhLSymfony\Bridge\Twig\Tests\Translation+N WhLSymfony\Bridge\Twig\Tests\TokenParser+M WhLSymfony\Bridge\Twig\Tests\NodeVisitor$L IhLSymfony\Bridge\Twig\Tests\Node2K ehLSymfony\Bridge\Twig\Tests\Extension\Fixtures)J ShLSymfony\Bridge\Twig\Tests\Extension'I OhLSymfony\Bridge\Twig\Tests\Command%H KhLSymfony\Bridge\Twig\NodeVisitorG =hLSymfony\Bridge\Twig\NodeF =hLSymfony\Bridge\Twig\Form#E GhLSymfony\Bridge\Twig\Extension'D OhLSymfony\Bridge\Twig\DataCollector!C ChLSymfony\Bridge\Twig\CommandB 3hLSymfony\Bridge\Twig-A [g2Symfony\Component\Routing\Tests\Matcher4@ ig2Symfony\Component\Routing\Tests\Matcher\Dumper,? Yg2Symfony\Component\Routing\Tests\Loader/> _g2Symfony\Component\Routing\Tests\Generator6= mg2Symfony\Component\Routing\Tests\Generator\DumperE< 	g2Symfony\Component\Routing\Tests\Fixtures\OtherAnnotatedClasses; g2global.: ]g2Symfony\Component\Routing\Tests\Fixtures?9 g2Symfony\Component\Routing\Tests\Fixtures\AnnotatedClasses%8 Kg2Symfony\Component\Routing\Tests07 ag2Symfony\Component\Routing\Tests\Annotation.6 ]g2Symfony\Component\Routing\Matcher\Dumper'5 Og2Symfony\Component\Routing\Matcher&4 Mg2Symfony\Component\Routing\Loader)3 Sg2Symfony\Component\Routing\Generator02 ag2Symfony\Component\Routing\Generator\Dumper)1 Sg2Symfony\Component\Routing\Exception0 ?g2Symfony\Component\Routing*/ Ug2Symfony\Component\Routing\Annotation,. YfSymfony\Component\PropertyAccess\Tests5- kfSymfony\Component\PropertyAccess\Tests\Fixtures&, MfSymfony\Component\PropertyAccess0+ afSymfony\Component\PropertyAccess\Exception-* [fNSymfony\Component\OptionsResolver\Tests') OfNSymfony\Component\OptionsResolver1( cfNSymfony\Component\OptionsResolver\Exception!' CeSymfony\Component\Intl\Util'& OeSymfony\Component\Intl\Tests\Util?% eSymfony\Component\Intl\Tests\NumberFormatter\Verification    ~^F!}fM6_2iL2xS$




`
4
					}	U	/	~]9uZ4uW5xiN<%~gF,mR; ~T'Y0  %
 KSymfony\Component\Console\Tests&	 MSymfony\Component\Console\Tester& MSymfony\Component\Console\Output% KSymfony\Component\Console\Input& MSymfony\Component\Console\Helper) SSymfony\Component\Console\Formatter% KSymfony\Component\Console\Event* USymfony\Component\Console\Descriptor' OSymfony\Component\Console\Command ?Symfony\Component\Console(  QOSymfony\Component\BrowserKit\Tests" EOSymfony\Component\BrowserKit~ kglobal} !kfunctional| kStack{ 1jPredis\Transactionz )jPredis\Sessiony 1jPredis\Replicationx 'jPredis\PubSubw 5jPredis\Protocol\Textv +jPredis\Protocolu )jPredis\Profilet +jPredis\Pipelines 'jPredis\Optionr )jPredis\Monitorq +jPredis\Iteratorp /jPredis\Connectiono =jPredis\Command\Processorn )jPredis\Command m AjPredis\Collection\Iteratorl )jPredis\Clusterk 3jPredis\Cluster\Hash!j CjPredis\Cluster\Distributioni jPredish jglobalg jglobalf )jPatchwork\Utf8e jPatchworkd 1jPatchwork\PHP\Shimc jglobalb jglobala jCarbon"` EijIlluminate\Support\Contracts_ 5ijIlluminate\Workbench"^ EijIlluminate\Workbench\Console] +ijIlluminate\View\ ;ijIlluminate\View\Engines[ ?ijIlluminate\View\CompilersZ 7ijIlluminate\ValidationY 9ijIlluminate\Translation X AijIlluminate\Support\FacadesW 1ijIlluminate\Support V AijIlluminate\Session\ConsoleU 1ijIlluminate\Session!T CijIlluminate\Routing\Matching#S GijIlluminate\Routing\GeneratorsR 1ijIlluminate\Routing Q AijIlluminate\Routing\ConsoleP /ijIlluminate\RemoteO -ijIlluminate\RedisN 7ijIlluminate\Queue\JobsM ijglobalL ;ijIlluminate\Queue\FailedK =ijIlluminate\Queue\Console!J CijIlluminate\Queue\ConnectorsI =ijIlluminate\Queue\CapsuleH -ijIlluminate\QueueG 7ijIlluminate\PaginationF +ijIlluminate\MailE )ijIlluminate\LogD +ijIlluminate\HttpC +ijIlluminate\HtmlB 1ijIlluminate\Hashing#A GijIlluminate\Foundation\Testing%@ KijIlluminate\Foundation\Providers#? GijIlluminate\Foundation\Console> 7ijIlluminate\Foundation= 7ijIlluminate\Filesystem< 5ijIlluminate\Exception; /ijIlluminate\Events: 7ijIlluminate\Encryption)9 SijIlluminate\Database\Schema\Grammars 8 AijIlluminate\Database\Schema*7 UijIlluminate\Database\Query\Processors(6 QijIlluminate\Database\Query\Grammars5 ?ijIlluminate\Database\Query$4 IijIlluminate\Database\Migrations,3 YijIlluminate\Database\Eloquent\Relations"2 EijIlluminate\Database\Eloquent!1 CijIlluminate\Database\Console,0 YijIlluminate\Database\Console\Migrations$/ IijIlluminate\Database\Connectors. 3ijIlluminate\Database!- CijIlluminate\Database\Capsule, /ijIlluminate\Cookie+ 5ijIlluminate\Container* 1ijIlluminate\Console) /ijIlluminate\Config( =ijIlluminate\Cache\Console' -ijIlluminate\Cache& ?ijIlluminate\Auth\Reminders% ;ijIlluminate\Auth\Console$ +ijIlluminate\Auth*# UiJeremeamia\SuperClosure\Test\Visitor"" EiJeremeamia\SuperClosure\Test%! KiJeremeamia\SuperClosure\Visitor  ;iJeremeamia\SuperClosure iWhoops 5iWhoops\Provider\Zend 7iWhoops\Provider\Silex ;iWhoops\Provider\Phalcon )iWhoops\Handler -iWhoops\Exception )iWhoops\Example iBoris 7iClassPreloader\Parser 9iClassPreloader\Command )iClassPreloader" EiIlluminate\Support\Contracts 5iIlluminate\Workbench" EiIlluminate\Workbench\Console +iIlluminate\View ;iIlluminate\View\Engines ?iIlluminate\View\Compilers 7iIlluminate\Validation 9iIlluminate\Translation  AiIlluminate\Support\Facades   Q  ]+pJW Ue;	


{
l
=
				h	<	sA\$Ki*INjE~S                    0[ aoSymfony\Component\HttpKernel\EventListener(Z QoSymfony\Component\HttpKernel\Event6Y moSymfony\Component\HttpKernel\DependencyInjection(X QoSymfony\Component\HttpKernel\Debug5W koSymfony\Component\HttpKernel\DataCollector\Util0V aoSymfony\Component\HttpKernel\DataCollector-U [oSymfony\Component\HttpKernel\Controller)T SoSymfony\Component\HttpKernel\Config"S EoSymfony\Component\HttpKernel.R ]oSymfony\Component\HttpKernel\CacheWarmer/Q _oSymfony\Component\HttpKernel\CacheClearer)P SoSymfony\Component\HttpKernel\BundleO oqglobalCN oqSymfony\Component\HttpFoundation\Tests\Session\Storage\Proxy<M yoqSymfony\Component\HttpFoundation\Tests\Session\StorageEL 	oqSymfony\Component\HttpFoundation\Tests\Session\Storage\Handler4K ioqSymfony\Component\HttpFoundation\Tests\Session:J uoqSymfony\Component\HttpFoundation\Tests\Session\Flash>I }oqSymfony\Component\HttpFoundation\Tests\Session\Attribute:H uoqSymfony\Component\HttpFoundation\Tests\File\MimeType1G coqSymfony\Component\HttpFoundation\Tests\File,F YoqSymfony\Component\HttpFoundation\Tests<E yoqSymfony\Component\HttpFoundation\Session\Storage\Proxy6D moqSymfony\Component\HttpFoundation\Session\Storage>C }oqSymfony\Component\HttpFoundation\Session\Storage\Handler.B ]oqSymfony\Component\HttpFoundation\Session4A ioqSymfony\Component\HttpFoundation\Session\Flash8@ qoqSymfony\Component\HttpFoundation\Session\Attribute6? moqSymfony\Component\HttpFoundation\Resources\stubs4> ioqSymfony\Component\HttpFoundation\File\MimeType+= WoqSymfony\Component\HttpFoundation\File5< koqSymfony\Component\HttpFoundation\File\Exception&; MoqSymfony\Component\HttpFoundation-: [Symfony\Component\Finder\Tests\Iterator$9 ISymfony\Component\Finder\Tests08 aSymfony\Component\Finder\Tests\FakeAdapter/7 _Symfony\Component\Finder\Tests\Expression/6 _Symfony\Component\Finder\Tests\Comparator$5 ISymfony\Component\Finder\Shell'4 OSymfony\Component\Finder\Iterator3 =Symfony\Component\Finder)2 SSymfony\Component\Finder\Expression(1 QSymfony\Component\Finder\Exception)0 SSymfony\Component\Finder\Comparator&/ MSymfony\Component\Finder\Adapter.. ]Q.Symfony\Component\DomCrawler\Tests\Field(- QQ.Symfony\Component\DomCrawler\Tests(, QQ.Symfony\Component\DomCrawler\Field"+ EQ.Symfony\Component\DomCrawler,* YlSymfony\Component\Debug\Tests\Fixtures) lglobal5( klSymfony\Component\Debug\Tests\FatalErrorHandler-' [lSymfony\Component\Debug\Tests\Exception#& GlSymfony\Component\Debug\Tests/% _lSymfony\Component\Debug\FatalErrorHandler'$ OlSymfony\Component\Debug\Exception# ;lSymfony\Component\Debug)" SPSymfony\Component\CssSelector\XPath3! gPSymfony\Component\CssSelector\XPath\Extension/  _PSymfony\Component\CssSelector\Tests\XPath9 sPSymfony\Component\CssSelector\Tests\Parser\Shortcut0 aPSymfony\Component\CssSelector\Tests\Parser8 qPSymfony\Component\CssSelector\Tests\Parser\Handler. ]PSymfony\Component\CssSelector\Tests\Node) SPSymfony\Component\CssSelector\Tests4 iPSymfony\Component\CssSelector\Parser\Tokenizer3 gPSymfony\Component\CssSelector\Parser\Shortcut* UPSymfony\Component\CssSelector\Parser2 ePSymfony\Component\CssSelector\Parser\Handler( QPSymfony\Component\CssSelector\Node- [PSymfony\Component\CssSelector\Exception# GPSymfony\Component\CssSelector, YSymfony\Component\Console\Tests\Tester, YSymfony\Component\Console\Tests\Output+ WSymfony\Component\Console\Tests\Input, YSymfony\Component\Console\Tests\Helper/ _Symfony\Component\Console\Tests\Formatter. ]Symfony\Component\Console\Tests\Fixtures global0 aSymfony\Component\Console\Tests\Descriptor- [Symfony\Component\Console\Tests\Command   H  tK|Q@]^


u
A
				e	C	e4fWV`8h6	<zD}0                                        *# UqSymfony\Component\Security\Core\UserB" qSymfony\Component\Security\Core\Tests\Validator\ConstraintsJ! qAcme\DemoBundle\Proxy\__CG__\Symfony\Component\Security\Core\Tests\0  aqSymfony\Component\Security\Core\Tests\Util0 aqSymfony\Component\Security\Core\Tests\User+ WqSymfony\Component\Security\Core\Tests0 aqSymfony\Component\Security\Core\Tests\Role3 gqSymfony\Component\Security\Core\Tests\Encoder? qSymfony\Component\Security\Core\Tests\Authorization\Voter9 sqSymfony\Component\Security\Core\Tests\AuthorizationA qSymfony\Component\Security\Core\Tests\Authentication\TokenF qSymfony\Component\Security\Core\Tests\Authentication\RememberMeD qSymfony\Component\Security\Core\Tests\Authentication\Provider: uqSymfony\Component\Security\Core\Tests\Authentication* UqSymfony\Component\Security\Core\Role/ _qSymfony\Component\Security\Core\Exception+ WqSymfony\Component\Security\Core\Event- [qSymfony\Component\Security\Core\Encoder9 sqSymfony\Component\Security\Core\Authorization\Voter3 gqSymfony\Component\Security\Core\Authorization% KqSymfony\Component\Security\Core: uqSymfony\Component\Security\Core\Authentication\Token? qSymfony\Component\Security\Core\Authentication\RememberMe= {qSymfony\Component\Security\Core\Authentication\Provider4 iqSymfony\Component\Security\Core\Authentication4
 igZSymfony\Component\Routing\Tests\Matcher\Dumper-	 [gZSymfony\Component\Routing\Tests\Matcher, YgZSymfony\Component\Routing\Tests\Loader/ _gZSymfony\Component\Routing\Tests\Generator6 mgZSymfony\Component\Routing\Tests\Generator\Dumper gZglobal. ]gZSymfony\Component\Routing\Tests\Fixtures? gZSymfony\Component\Routing\Tests\Fixtures\AnnotatedClasses% KgZSymfony\Component\Routing\Tests0 agZSymfony\Component\Routing\Tests\Annotation.  ]gZSymfony\Component\Routing\Matcher\Dumper' OgZSymfony\Component\Routing\Matcher&~ MgZSymfony\Component\Routing\Loader)} SgZSymfony\Component\Routing\Generator0| agZSymfony\Component\Routing\Generator\Dumper){ SgZSymfony\Component\Routing\Exceptionz ?gZSymfony\Component\Routing*y UgZSymfony\Component\Routing\Annotation%x KSymfony\Component\Process\Testsw ?Symfony\Component\Process)v SSymfony\Component\Process\Exception6u moSymfony\Component\HttpKernel\Tests\Profiler\Mock1t coSymfony\Component\HttpKernel\Tests\Profiler2s eoSymfony\Component\HttpKernel\Tests\HttpCache1r coSymfony\Component\HttpKernel\Tests\Fragment1q coSymfony\Component\HttpKernel\Tests\FixturesIp oSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle]o 9oSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\DependencyInjectionQn !oSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\CommandHm oSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionLoadedBundle\l 7oSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionLoadedBundle\DependencyInjectionHk oSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionAbsentBundle6j moSymfony\Component\HttpKernel\Tests\EventListener<i yoSymfony\Component\HttpKernel\Tests\DependencyInjection.h ]oSymfony\Component\HttpKernel\Tests\Debug6g moSymfony\Component\HttpKernel\Tests\DataCollector3f goSymfony\Component\HttpKernel\Tests\Controller/e _oSymfony\Component\HttpKernel\Tests\Config(d QoSymfony\Component\HttpKernel\Tests4c ioSymfony\Component\HttpKernel\Tests\CacheWarmer5b koSymfony\Component\HttpKernel\Tests\CacheClearer/a _oSymfony\Component\HttpKernel\Tests\Bundle+` WoSymfony\Component\HttpKernel\Profiler&_ MoSymfony\Component\HttpKernel\Log,^ YoSymfony\Component\HttpKernel\HttpCache+] WoSymfony\Component\HttpKernel\Fragment,\ YoSymfony\Component\HttpKernel\Exception   r e8OcA{bK+oO-





c
G
 				y	R	0	kQ4iQ9"
lK+gC(hH0m[D{S'Y0                            % KSymfony\Component\Console\Tests& MSymfony\Component\Console\Tester( QSymfony\Component\Console\Question& MSymfony\Component\Console\Output& MSymfony\Component\Console\Logger% KSymfony\Component\Console\Input& MSymfony\Component\Console\Helper) SSymfony\Component\Console\Formatter% KSymfony\Component\Console\Event* USymfony\Component\Console\Descriptor' OSymfony\Component\Console\Command
 ?Symfony\Component\Console(	 QOzSymfony\Component\BrowserKit\Tests" EOzSymfony\Component\BrowserKit )jPatchwork\Utf8 jPatchwork 1jPatchwork\PHP\Shim jglobal spMichelf ?iVIlluminate\Support\Traits" EiVIlluminate\Support\Contracts  5iVIlluminate\Workbench" EiVIlluminate\Workbench\Console~ +iVIlluminate\View} ;iVIlluminate\View\Engines| ?iVIlluminate\View\Compilers{ 7iVIlluminate\Validationz 9iVIlluminate\Translation y AiVIlluminate\Support\Facadesx 1iVIlluminate\Support w AiVIlluminate\Session\Consolev 1iVIlluminate\Session!u CiVIlluminate\Routing\Matching#t GiVIlluminate\Routing\Generatorss 1iVIlluminate\Routing r AiVIlluminate\Routing\Consoleq /iVIlluminate\Remotep -iVIlluminate\Rediso 7iVIlluminate\Queue\Jobsn iVglobalm ;iVIlluminate\Queue\Failedl =iVIlluminate\Queue\Console!k CiVIlluminate\Queue\Connectorsj =iVIlluminate\Queue\Capsulei -iVIlluminate\Queueh 7iVIlluminate\Paginationg ?iVIlluminate\Mail\Transportf +iVIlluminate\Maile )iVIlluminate\Logd +iVIlluminate\Httpc +iVIlluminate\Htmlb 1iVIlluminate\Hashing#a GiVIlluminate\Foundation\Testing%` KiVIlluminate\Foundation\Providers#_ GiVIlluminate\Foundation\Console^ 7iVIlluminate\Foundation] 7iVIlluminate\Filesystem\ 5iVIlluminate\Exception[ /iVIlluminate\EventsZ 7iVIlluminate\Encryption)Y SiVIlluminate\Database\Schema\Grammars X AiVIlluminate\Database\Schema*W UiVIlluminate\Database\Query\Processors(V QiVIlluminate\Database\Query\GrammarsU ?iVIlluminate\Database\Query$T IiVIlluminate\Database\Migrations,S YiVIlluminate\Database\Eloquent\Relations"R EiVIlluminate\Database\Eloquent!Q CiVIlluminate\Database\Console,P YiVIlluminate\Database\Console\Migrations$O IiVIlluminate\Database\ConnectorsN 3iVIlluminate\Database!M CiVIlluminate\Database\CapsuleL /iVIlluminate\CookieK 5iVIlluminate\ContainerJ 1iVIlluminate\ConsoleI /iVIlluminate\ConfigH =iVIlluminate\Cache\ConsoleG -iVIlluminate\CacheF ?iVIlluminate\Auth\RemindersE ;iVIlluminate\Auth\ConsoleD +iVIlluminate\AuthC rglobalB 1rIntervention\Image A ArIntervention\Image\Facades"@ ErIntervention\Image\Exception? #iWhoops\Util> 7iWhoops\Provider\Silex= ;iWhoops\Provider\Phalcon< )iWhoops\Handler; -iWhoops\Exception: iWhoops9 5iWhoops\Provider\Zend8 'rDWardrobe\Core 7 ArDWardrobe\Core\Repositories6 5rDWardrobe\Core\Models5 7rDWardrobe\Core\Facades#4 GrDWardrobe\Core\Controllers\Api3 ?rDWardrobe\Core\Controllers2 7rDWardrobe\Core\Console1 rDglobal*0 USymfony\Component\Translation\Writer0/ aSymfony\Component\Translation\Tests\Loader). SSymfony\Component\Translation\Tests0- aSymfony\Component\Translation\Tests\Dumper3, gSymfony\Component\Translation\Tests\Catalogue*+ USymfony\Component\Translation\Loader#* GSymfony\Component\Translation-) [Symfony\Component\Translation\Extractor-( [Symfony\Component\Translation\Exception*' USymfony\Component\Translation\Dumper-& [Symfony\Component\Translation\Catalogue;% wqSymfony\Component\Security\Core\Validator\Constraints*$ UqSymfony\Component\Security\Core\Util   Q  ]+pA^(Y&V6



U
					d	3	
f<~W'a&}De$h)vE Y.                                  (f QoSymfony\Component\HttpKernel\Event6e moSymfony\Component\HttpKernel\DependencyInjection(d QoSymfony\Component\HttpKernel\Debug5c koSymfony\Component\HttpKernel\DataCollector\Util0b aoSymfony\Component\HttpKernel\DataCollector-a [oSymfony\Component\HttpKernel\Controller)` SoSymfony\Component\HttpKernel\Config"_ EoSymfony\Component\HttpKernel.^ ]oSymfony\Component\HttpKernel\CacheWarmer/] _oSymfony\Component\HttpKernel\CacheClearer)\ SoSymfony\Component\HttpKernel\Bundle[ o`globalCZ o`Symfony\Component\HttpFoundation\Tests\Session\Storage\Proxy<Y yo`Symfony\Component\HttpFoundation\Tests\Session\StorageEX 	o`Symfony\Component\HttpFoundation\Tests\Session\Storage\Handler4W io`Symfony\Component\HttpFoundation\Tests\Session:V uo`Symfony\Component\HttpFoundation\Tests\Session\Flash>U }o`Symfony\Component\HttpFoundation\Tests\Session\Attribute:T uo`Symfony\Component\HttpFoundation\Tests\File\MimeType1S co`Symfony\Component\HttpFoundation\Tests\File,R Yo`Symfony\Component\HttpFoundation\Tests<Q yo`Symfony\Component\HttpFoundation\Session\Storage\Proxy6P mo`Symfony\Component\HttpFoundation\Session\Storage>O }o`Symfony\Component\HttpFoundation\Session\Storage\Handler.N ]o`Symfony\Component\HttpFoundation\Session4M io`Symfony\Component\HttpFoundation\Session\Flash8L qo`Symfony\Component\HttpFoundation\Session\Attribute4K io`Symfony\Component\HttpFoundation\File\MimeType+J Wo`Symfony\Component\HttpFoundation\File5I ko`Symfony\Component\HttpFoundation\File\Exception&H Mo`Symfony\Component\HttpFoundation-G [oSymfony\Component\Finder\Tests\Iterator$F IoSymfony\Component\Finder\Tests0E aoSymfony\Component\Finder\Tests\FakeAdapter/D _oSymfony\Component\Finder\Tests\Expression/C _oSymfony\Component\Finder\Tests\Comparator$B IoSymfony\Component\Finder\Shell'A OoSymfony\Component\Finder\Iterator@ =oSymfony\Component\Finder)? SoSymfony\Component\Finder\Expression(> QoSymfony\Component\Finder\Exception)= SoSymfony\Component\Finder\Comparator&< MoSymfony\Component\Finder\Adapter.; ]QSymfony\Component\DomCrawler\Tests\Field(: QQSymfony\Component\DomCrawler\Tests(9 QQSymfony\Component\DomCrawler\Field"8 EQSymfony\Component\DomCrawler7 lglobal,6 YlSymfony\Component\Debug\Tests\Fixtures55 klSymfony\Component\Debug\Tests\FatalErrorHandler-4 [lSymfony\Component\Debug\Tests\Exception#3 GlSymfony\Component\Debug\Tests/2 _lSymfony\Component\Debug\FatalErrorHandler,1 YlSymfony\Component\HttpKernel\Exception'0 OlSymfony\Component\Debug\Exception/ ;lSymfony\Component\Debug). SPSymfony\Component\CssSelector\XPath3- gPSymfony\Component\CssSelector\XPath\Extension/, _PSymfony\Component\CssSelector\Tests\XPath9+ sPSymfony\Component\CssSelector\Tests\Parser\Shortcut0* aPSymfony\Component\CssSelector\Tests\Parser8) qPSymfony\Component\CssSelector\Tests\Parser\Handler.( ]PSymfony\Component\CssSelector\Tests\Node)' SPSymfony\Component\CssSelector\Tests4& iPSymfony\Component\CssSelector\Parser\Tokenizer3% gPSymfony\Component\CssSelector\Parser\Shortcut*$ UPSymfony\Component\CssSelector\Parser2# ePSymfony\Component\CssSelector\Parser\Handler(" QPSymfony\Component\CssSelector\Node-! [PSymfony\Component\CssSelector\Exception#  GPSymfony\Component\CssSelector, YSymfony\Component\Console\Tests\Tester, YSymfony\Component\Console\Tests\Output, YSymfony\Component\Console\Tests\Logger+ WSymfony\Component\Console\Tests\Input, YSymfony\Component\Console\Tests\Helper/ _Symfony\Component\Console\Tests\Formatter. ]Symfony\Component\Console\Tests\Fixtures global0 aSymfony\Component\Console\Tests\Descriptor- [Symfony\Component\Console\Tests\Command   H  pAI}L*+


w
B
				_	2	\2d3$S#j-c5R	G}J                                  B. qSymfony\Component\Security\Core\Tests\Validator\ConstraintsJ- qAcme\DemoBundle\Proxy\__CG__\Symfony\Component\Security\Core\Tests\0, aqSymfony\Component\Security\Core\Tests\Util0+ aqSymfony\Component\Security\Core\Tests\User+* WqSymfony\Component\Security\Core\Tests0) aqSymfony\Component\Security\Core\Tests\Role3( gqSymfony\Component\Security\Core\Tests\Encoder?' qSymfony\Component\Security\Core\Tests\Authorization\Voter9& sqSymfony\Component\Security\Core\Tests\AuthorizationA% qSymfony\Component\Security\Core\Tests\Authentication\TokenF$ qSymfony\Component\Security\Core\Tests\Authentication\RememberMeD# qSymfony\Component\Security\Core\Tests\Authentication\Provider:" uqSymfony\Component\Security\Core\Tests\Authentication*! UqSymfony\Component\Security\Core\Role/  _qSymfony\Component\Security\Core\Exception+ WqSymfony\Component\Security\Core\Event- [qSymfony\Component\Security\Core\Encoder9 sqSymfony\Component\Security\Core\Authorization\Voter3 gqSymfony\Component\Security\Core\Authorization% KqSymfony\Component\Security\Core: uqSymfony\Component\Security\Core\Authentication\Token? qSymfony\Component\Security\Core\Authentication\RememberMe= {qSymfony\Component\Security\Core\Authentication\Provider4 iqSymfony\Component\Security\Core\Authentication- [gISymfony\Component\Routing\Tests\Matcher4 igISymfony\Component\Routing\Tests\Matcher\Dumper, YgISymfony\Component\Routing\Tests\Loader/ _gISymfony\Component\Routing\Tests\Generator6 mgISymfony\Component\Routing\Tests\Generator\Dumper gIglobal. ]gISymfony\Component\Routing\Tests\Fixtures? gISymfony\Component\Routing\Tests\Fixtures\AnnotatedClasses% KgISymfony\Component\Routing\Tests0 agISymfony\Component\Routing\Tests\Annotation. ]gISymfony\Component\Routing\Matcher\Dumper' OgISymfony\Component\Routing\Matcher&
 MgISymfony\Component\Routing\Loader)	 SgISymfony\Component\Routing\Generator0 agISymfony\Component\Routing\Generator\Dumper) SgISymfony\Component\Routing\Exception ?gISymfony\Component\Routing* UgISymfony\Component\Routing\Annotation% KSymfony\Component\Process\Tests ?Symfony\Component\Process) SSymfony\Component\Process\Exception6 moSymfony\Component\HttpKernel\Tests\Profiler\Mock1  coSymfony\Component\HttpKernel\Tests\Profiler2 eoSymfony\Component\HttpKernel\Tests\HttpCache1~ coSymfony\Component\HttpKernel\Tests\Fragment1} coSymfony\Component\HttpKernel\Tests\FixturesI| oSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle]{ 9oSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\DependencyInjectionQz !oSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\CommandHy oSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionLoadedBundle\x 7oSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionLoadedBundle\DependencyInjectionHw oSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionAbsentBundle6v moSymfony\Component\HttpKernel\Tests\EventListener<u yoSymfony\Component\HttpKernel\Tests\DependencyInjection.t ]oSymfony\Component\HttpKernel\Tests\Debug6s moSymfony\Component\HttpKernel\Tests\DataCollector3r goSymfony\Component\HttpKernel\Tests\Controller/q _oSymfony\Component\HttpKernel\Tests\Config(p QoSymfony\Component\HttpKernel\Tests4o ioSymfony\Component\HttpKernel\Tests\CacheWarmer5n koSymfony\Component\HttpKernel\Tests\CacheClearer/m _oSymfony\Component\HttpKernel\Tests\Bundle+l WoSymfony\Component\HttpKernel\Profiler&k MoSymfony\Component\HttpKernel\Log,j YoSymfony\Component\HttpKernel\HttpCache+i WoSymfony\Component\HttpKernel\Fragment,h YoSymfony\Component\HttpKernel\Exception0g aoSymfony\Component\HttpKernel\EventListener   T  h8X"cD|O_*


y
R
$				S	$f2oP'R~K_.i=pH,tB                         B |jSymfony\Bundle\FrameworkBundle\DependencyInjection\Compiler2 e|jSymfony\Bundle\FrameworkBundle\DataCollector/  _|jSymfony\Bundle\FrameworkBundle\Controller, Y|jSymfony\Bundle\FrameworkBundle\Console,~ Y|jSymfony\Bundle\FrameworkBundle\Command$} I|jSymfony\Bundle\FrameworkBundle0| a|jSymfony\Bundle\FrameworkBundle\CacheWarmer{ 3|jSymfony\Bridge\Twig%z K|jSymfony\Bridge\Twig\Translation%y K|jSymfony\Bridge\Twig\TokenParser+x W|jSymfony\Bridge\Twig\Tests\Translationw ?|jSymfony\Bridge\Twig\Tests+v W|jSymfony\Bridge\Twig\Tests\NodeVisitor$u I|jSymfony\Bridge\Twig\Tests\Node)t S|jSymfony\Bridge\Twig\Tests\Extension2s e|jSymfony\Bridge\Twig\Tests\Extension\Fixtures%r K|jSymfony\Bridge\Twig\NodeVisitorq =|jSymfony\Bridge\Twig\Nodep =|jSymfony\Bridge\Twig\Form#o G|jSymfony\Bridge\Twig\Extension.n ]|jSymfony\Bridge\Swiftmailer\DataCollector"m E|jSymfony\Bridge\Propel1\Tests'l O|jSymfony\Bridge\Propel1\Tests\Form7k o|jSymfony\Bridge\Propel1\Tests\Form\DataTransformer2j e|jSymfony\Bridge\Propel1\Tests\Form\ChoiceList+i W|jSymfony\Bridge\Propel1\Tests\Fixtures0h a|jSymfony\Bridge\Propel1\Tests\DataCollector*g U|jSymfony\Bridge\Propel1\Security\User#f G|jSymfony\Bridge\Propel1\Logger&e M|jSymfony\Bridge\Propel1\Form\Type!d C|jSymfony\Bridge\Propel1\Form1c c|jSymfony\Bridge\Propel1\Form\DataTransformer,b Y|jSymfony\Bridge\Propel1\Form\ChoiceListGa |jSymfony\Bridge\Propel1\DependencyInjection\Security\UserProvider*` U|jSymfony\Bridge\Propel1\DataCollector,_ Y|jSymfony\Bridge\Monolog\Tests\Processor&^ M|jSymfony\Bridge\Monolog\Processor] 9|jSymfony\Bridge\Monolog$\ I|jSymfony\Bridge\Monolog\Handler'[ O|jSymfony\Bridge\Doctrine\Validator3Z g|jSymfony\Bridge\Doctrine\Validator\Constraints9Y s|jSymfony\Bridge\Doctrine\Tests\Validator\Constraints1X c|jSymfony\Bridge\Doctrine\Tests\Security\User*W U|jSymfony\Bridge\Doctrine\Tests\Logger-V [|jSymfony\Bridge\Doctrine\Tests\Form\Type(U Q|jSymfony\Bridge\Doctrine\Tests\Form3T g|jSymfony\Bridge\Doctrine\Tests\Form\ChoiceList,S Y|jSymfony\Bridge\Doctrine\Tests\FixturesAR |jSymfony\Bridge\Doctrine\Tests\DependencyInjection\Compiler0Q a|jSymfony\Bridge\Doctrine\Tests\DataFixtures1P c|jSymfony\Bridge\Doctrine\Tests\DataCollector#O G|jSymfony\Bridge\Doctrine\Tests+N W|jSymfony\Bridge\Doctrine\Security\User$M I|jSymfony\Bridge\Doctrine\Logger,L Y|jSymfony\Bridge\Doctrine\HttpFoundation'K O|jSymfony\Bridge\Doctrine\Form\Type0J a|jSymfony\Bridge\Doctrine\Form\EventListener"I E|jSymfony\Bridge\Doctrine\Form2H e|jSymfony\Bridge\Doctrine\Form\DataTransformer-G [|jSymfony\Bridge\Doctrine\Form\ChoiceListHF |jSymfony\Bridge\Doctrine\DependencyInjection\Security\UserProvider>E }|jSymfony\Bridge\Doctrine\DependencyInjection\CompilerPass1D c|jSymfony\Bridge\Doctrine\DependencyInjection*C U|jSymfony\Bridge\Doctrine\DataFixtures+B W|jSymfony\Bridge\Doctrine\DataCollectorA ;|jSymfony\Bridge\Doctrine)@ S|jSymfony\Bridge\Doctrine\CacheWarmer"? ESymfony\Component\Yaml\Tests&> MSymfony\Component\Yaml\Exception= 9Symfony\Component\Yaml*< USymfony\Component\Translation\Writer0; aSymfony\Component\Translation\Tests\Loader): SSymfony\Component\Translation\Tests09 aSymfony\Component\Translation\Tests\Dumper38 gSymfony\Component\Translation\Tests\Catalogue*7 USymfony\Component\Translation\Loader#6 GSymfony\Component\Translation-5 [Symfony\Component\Translation\Extractor-4 [Symfony\Component\Translation\Exception*3 USymfony\Component\Translation\Dumper-2 [Symfony\Component\Translation\Catalogue;1 wqSymfony\Component\Security\Core\Validator\Constraints*0 UqSymfony\Component\Security\Core\Util*/ UqSymfony\Component\Security\Core\User   D  _0T(7My\)


v
 			a	h1k'POhc Y$w8                               &F M|jSymfony\Bundle\TwigBundle\Loader)E S|jSymfony\Bundle\TwigBundle\Extension3D g|jSymfony\Bundle\TwigBundle\DependencyInjection<C y|jSymfony\Bundle\TwigBundle\DependencyInjection\Compiler%B K|jSymfony\Bundle\TwigBundle\Debug*A U|jSymfony\Bundle\TwigBundle\Controller'@ O|jSymfony\Bundle\TwigBundle\Command+? W|jSymfony\Bundle\TwigBundle\CacheWarmer2> e|jSymfony\Bundle\SecurityBundle\Twig\ExtensionU= )|jSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FormLoginBundle\SecurityL< |jSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FormLoginBundle`; ?|jSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FormLoginBundle\DependencyInjectionW: -|jSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FormLoginBundle\ControllerU9 )|jSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\CsrfFormLoginBundle\FormP8 |jSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\CsrfFormLoginBundle[7 5|jSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\CsrfFormLoginBundle\Controller46 i|jSymfony\Bundle\SecurityBundle\Tests\FunctionalO5 |jSymfony\Bundle\SecurityBundle\Tests\DependencyInjection\Security\Factory=4 {|jSymfony\Bundle\SecurityBundle\Tests\DependencyInjection53 k|jSymfony\Bundle\SecurityBundle\Templating\Helper#2 G|jSymfony\Bundle\SecurityBundle,1 Y|jSymfony\Bundle\SecurityBundle\Security10 c|jSymfony\Bundle\SecurityBundle\EventListenerN/ |jSymfony\Bundle\SecurityBundle\DependencyInjection\Security\UserProviderI. |jSymfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory7- o|jSymfony\Bundle\SecurityBundle\DependencyInjectionA, |jSymfony\Bundle\SecurityBundle\DependencyInjection\Compiler1+ c|jSymfony\Bundle\SecurityBundle\DataCollector+* W|jSymfony\Bundle\SecurityBundle\Command.) ]|jSymfony\Bundle\FrameworkBundle\Validator0( a|jSymfony\Bundle\FrameworkBundle\Translation4' i|jSymfony\Bundle\FrameworkBundle\Tests\Validator6& m|jSymfony\Bundle\FrameworkBundle\Tests\Translation5% k|jSymfony\Bundle\FrameworkBundle\Tests\Templating<$ y|jSymfony\Bundle\FrameworkBundle\Tests\Templating\LoaderF# |jSymfony\Bundle\FrameworkBundle\Tests\Templating\Helper\Fixtures<" y|jSymfony\Bundle\FrameworkBundle\Tests\Templating\Helper2! e|jSymfony\Bundle\FrameworkBundle\Tests\RoutingH  |jSymfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundleS %|jSymfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\Controller5 k|jSymfony\Bundle\FrameworkBundle\Tests\Functional! C|jTestBundle\Sensio\FooBundle, Y|jTestBundle\Sensio\FooBundle\Controller% K|jTestBundle\Sensio\Cms\FooBundle0 a|jTestBundle\Sensio\Cms\FooBundle\Controller 5|jTestBundle\FooBundle* U|jTestBundle\FooBundle\Controller\Test) S|jTestBundle\FooBundle\Controller\Sub% K|jTestBundle\FooBundle\Controller! C|jTestBundle\Fabpot\FooBundle, Y|jTestBundle\Fabpot\FooBundle\Controller> }|jSymfony\Bundle\FrameworkBundle\Tests\Fixtures\BaseBundle8 q|jSymfony\Bundle\FrameworkBundle\Tests\EventListener* U|jSymfony\Bundle\FrameworkBundle\Tests> }|jSymfony\Bundle\FrameworkBundle\Tests\DependencyInjectionH |jSymfony\Bundle\FrameworkBundle\Tests\DependencyInjection\Compiler5 k|jSymfony\Bundle\FrameworkBundle\Tests\Controller2 e|jSymfony\Bundle\FrameworkBundle\Tests\Console6 m|jSymfony\Bundle\FrameworkBundle\Tests\CacheWarmer) S|jSymfony\Bundle\FrameworkBundle\Test6
 m|jSymfony\Bundle\FrameworkBundle\Templating\Loader6	 m|jSymfony\Bundle\FrameworkBundle\Templating\Helper/ _|jSymfony\Bundle\FrameworkBundle\Templating5 k|jSymfony\Bundle\FrameworkBundle\Templating\Asset, Y|jSymfony\Bundle\FrameworkBundle\Routing. ]|jSymfony\Bundle\FrameworkBundle\HttpCache2 e|jSymfony\Bundle\FrameworkBundle\EventListener8 q|jSymfony\Bundle\FrameworkBundle\DependencyInjection   \  j;Rk.yN(oX9









f
:
			}	S	!b@pG`1U$Rq6"V+qL!                      " =|jSymfony\Component\Finder)! S|jSymfony\Component\Finder\Comparator(  Q|jSymfony\Component\Filesystem\Tests" E|jSymfony\Component\Filesystem, Y|jSymfony\Component\Filesystem\Exception- [|jSymfony\Component\EventDispatcher\Tests' O|jSymfony\Component\EventDispatcher. ]|jSymfony\Component\DomCrawler\Tests\Field( Q|jSymfony\Component\DomCrawler\Tests( Q|jSymfony\Component\DomCrawler\Field" E|jSymfony\Component\DomCrawler> }|jSymfony\Component\DependencyInjection\Tests\ParameterBag8 q|jSymfony\Component\DependencyInjection\Tests\Loader #|jContainer148 q|jSymfony\Component\DependencyInjection\Tests\Dumper1 c|jSymfony\Component\DependencyInjection\Tests: u|jSymfony\Component\DependencyInjection\Tests\Compiler8 q|jSymfony\Component\DependencyInjection\ParameterBag2 e|jSymfony\Component\DependencyInjection\Loader5 k|jSymfony\Component\DependencyInjection\Exception2 e|jSymfony\Component\DependencyInjection\Dumper4 i|jSymfony\Component\DependencyInjection\Compiler+ W|jSymfony\Component\DependencyInjection. ]|jSymfony\Component\CssSelector\Tests\Node)
 S|jSymfony\Component\CssSelector\Tests(	 Q|jSymfony\Component\CssSelector\Node- [|jSymfony\Component\CssSelector\Exception# G|jSymfony\Component\CssSelector, Y|jSymfony\Component\Console\Tests\Tester, Y|jSymfony\Component\Console\Tests\Output+ W|jSymfony\Component\Console\Tests\Input, Y|jSymfony\Component\Console\Tests\Helper/ _|jSymfony\Component\Console\Tests\Formatter- [|jSymfony\Component\Console\Tests\Command%  K|jSymfony\Component\Console\Tests& M|jSymfony\Component\Console\Tester&~ M|jSymfony\Component\Console\Output%} K|jSymfony\Component\Console\Input&| M|jSymfony\Component\Console\Helper){ S|jSymfony\Component\Console\Formatter'z O|jSymfony\Component\Console\Commandy ?|jSymfony\Component\Console-x [|jSymfony\Component\Config\Tests\Resource+w W|jSymfony\Component\Config\Tests\Loader$v I|jSymfony\Component\Config\Tests7u o|jSymfony\Component\Config\Tests\Definition\Builder/t _|jSymfony\Component\Config\Tests\Definition's O|jSymfony\Component\Config\Resource%r K|jSymfony\Component\Config\Loader(q Q|jSymfony\Component\Config\Exception3p g|jSymfony\Component\Config\Definition\Exception1o c|jSymfony\Component\Config\Definition\Builder)n S|jSymfony\Component\Config\Definitionm =|jSymfony\Component\Config	l |jFook #|jNamespaced2j !|jNamespacedi |jClassMaph |jFoo\Bar
g |jBetaf |jAlphae |jd 1|jClassesWithParentsc 9|jNamespaceCollision\C\Bb 9|jNamespaceCollision\A\Ba )|jApc\Namespaced ` A|jApc\NamespaceCollision\A\B_ =|jApc\NamespaceCollision\A^ |jglobal] 5|jNamespaceCollision\C\ 5|jNamespaceCollision\A)[ S|jSymfony\Component\ClassLoader\Tests#Z G|jSymfony\Component\ClassLoader(Y Q|jSymfony\Component\BrowserKit\Tests"X E|jSymfony\Component\BrowserKit&W M|jSymfony\Bundle\WebProfilerBundle,V Y|jSymfony\Bundle\WebProfilerBundle\Tests5U k|jSymfony\Bundle\WebProfilerBundle\Tests\Profiler:T u|jSymfony\Bundle\WebProfilerBundle\Tests\EventListenerAS |jSymfony\Bundle\WebProfilerBundle\Tests\DependencyInjection7R o|jSymfony\Bundle\WebProfilerBundle\Tests\Controller/Q _|jSymfony\Bundle\WebProfilerBundle\Profiler4P i|jSymfony\Bundle\WebProfilerBundle\EventListener:O u|jSymfony\Bundle\WebProfilerBundle\DependencyInjection1N c|jSymfony\Bundle\WebProfilerBundle\ControllerM ?|jSymfony\Bundle\TwigBundle+L W|jSymfony\Bundle\TwigBundle\TokenParser%K K|jSymfony\Bundle\TwigBundle\Tests,J Y|jSymfony\Bundle\TwigBundle\Tests\Loader9I s|jSymfony\Bundle\TwigBundle\Tests\DependencyInjection0H a|jSymfony\Bundle\TwigBundle\Tests\Controller$G I|jSymfony\Bundle\TwigBundle\Node   G  }M.	y@`2K[


k
8				k	,l+cM}En=U!l$sA                                           )i S|jSymfony\Component\HttpKernel\Config"h E|jSymfony\Component\HttpKernel.g ]|jSymfony\Component\HttpKernel\CacheWarmer/f _|jSymfony\Component\HttpKernel\CacheClearer)e S|jSymfony\Component\HttpKernel\BundleCd |jSymfony\Component\HttpFoundation\Tests\Session\Storage\Proxy<c y|jSymfony\Component\HttpFoundation\Tests\Session\StorageEb 	|jSymfony\Component\HttpFoundation\Tests\Session\Storage\Handler4a i|jSymfony\Component\HttpFoundation\Tests\Session:` u|jSymfony\Component\HttpFoundation\Tests\Session\Flash>_ }|jSymfony\Component\HttpFoundation\Tests\Session\Attribute1^ c|jSymfony\Component\HttpFoundation\Tests\File,] Y|jSymfony\Component\HttpFoundation\Tests<\ y|jSymfony\Component\HttpFoundation\Session\Storage\Proxy6[ m|jSymfony\Component\HttpFoundation\Session\Storage>Z }|jSymfony\Component\HttpFoundation\Session\Storage\Handler.Y ]|jSymfony\Component\HttpFoundation\Session4X i|jSymfony\Component\HttpFoundation\Session\Flash8W q|jSymfony\Component\HttpFoundation\Session\Attribute4V i|jSymfony\Component\HttpFoundation\File\MimeType+U W|jSymfony\Component\HttpFoundation\File5T k|jSymfony\Component\HttpFoundation\File\Exception&S M|jSymfony\Component\HttpFoundation!R C|jSymfony\Component\Form\Util'Q O|jSymfony\Component\Form\Tests\Util(P Q|jSymfony\Component\Form\Tests\Guess+O W|jSymfony\Component\Form\Tests\FixturesGN |jSymfony\Component\Form\Tests\Extension\Validator\ViolationMapper;M w|jSymfony\Component\Form\Tests\Extension\Validator\TypeEL 	|jSymfony\Component\Form\Tests\Extension\Validator\EventListenerCK |jSymfony\Component\Form\Tests\Extension\Validator\ConstraintsJJ |jSymfony\Component\Form\Tests\Extension\HttpFoundation\EventListener6I m|jSymfony\Component\Form\Tests\Extension\Csrf\Type?H |jSymfony\Component\Form\Tests\Extension\Csrf\EventListener>G }|jSymfony\Component\Form\Tests\Extension\Csrf\CsrfProvider6F m|jSymfony\Component\Form\Tests\Extension\Core\Type?E |jSymfony\Component\Form\Tests\Extension\Core\EventListenerBD |jSymfony\Component\Form\Tests\Extension\Core\DataTransformer<C y|jSymfony\Component\Form\Tests\Extension\Core\DataMapper<B y|jSymfony\Component\Form\Tests\Extension\Core\ChoiceList"A E|jSymfony\Component\Form\Tests"@ E|jSymfony\Component\Form\GuessA? |jSymfony\Component\Form\Extension\Validator\ViolationMapper0> a|jSymfony\Component\Form\Extension\Validator5= k|jSymfony\Component\Form\Extension\Validator\Util5< k|jSymfony\Component\Form\Extension\Validator\Type>; }|jSymfony\Component\Form\Extension\Validator\EventListener<: y|jSymfony\Component\Form\Extension\Validator\Constraints19 c|jSymfony\Component\Form\Extension\Templating:8 u|jSymfony\Component\Form\Extension\HttpFoundation\Type57 k|jSymfony\Component\Form\Extension\HttpFoundationD6 |jSymfony\Component\Form\Extension\HttpFoundation\EventListener:5 u|jSymfony\Component\Form\Extension\DependencyInjection04 a|jSymfony\Component\Form\Extension\Csrf\Type93 s|jSymfony\Component\Form\Extension\Csrf\EventListener82 q|jSymfony\Component\Form\Extension\Csrf\CsrfProvider+1 W|jSymfony\Component\Form\Extension\Csrf00 a|jSymfony\Component\Form\Extension\Core\View0/ a|jSymfony\Component\Form\Extension\Core\Type9. s|jSymfony\Component\Form\Extension\Core\EventListener;- w|jSymfony\Component\Form\Extension\Core\DataTransformer6, m|jSymfony\Component\Form\Extension\Core\DataMapper++ W|jSymfony\Component\Form\Extension\Core6* m|jSymfony\Component\Form\Extension\Core\ChoiceList&) M|jSymfony\Component\Form\Exception"( E|jSymfony\Component\Form\Event' 9|jSymfony\Component\Form-& [|jSymfony\Component\Finder\Tests\Iterator$% I|jSymfony\Component\Finder\Tests/$ _|jSymfony\Component\Finder\Tests\Comparator'# O|jSymfony\Component\Finder\Iterator   L  r9}T&Z(P[

[
'				Z	9	[1^<^-_&^2t=~V T'                                               *5 U|jSymfony\Component\Security\Core\Util*4 U|jSymfony\Component\Security\Core\User*3 U|jSymfony\Component\Security\Core\Role/2 _|jSymfony\Component\Security\Core\Exception+1 W|jSymfony\Component\Security\Core\Event-0 [|jSymfony\Component\Security\Core\Encoder9/ s|jSymfony\Component\Security\Core\Authorization\Voter3. g|jSymfony\Component\Security\Core\Authorization%- K|jSymfony\Component\Security\Core:, u|jSymfony\Component\Security\Core\Authentication\Token?+ |jSymfony\Component\Security\Core\Authentication\RememberMe=* {|jSymfony\Component\Security\Core\Authentication\Provider4) i|jSymfony\Component\Security\Core\Authentication*( U|jSymfony\Component\Security\Acl\Voter/' _|jSymfony\Component\Security\Acl\Permission.& ]|jSymfony\Component\Security\Acl\Exception+% W|jSymfony\Component\Security\Acl\Domain)$ S|jSymfony\Component\Security\Acl\Dbal4# i|jSymfony\Component\Routing\Tests\Matcher\Dumper-" [|jSymfony\Component\Routing\Tests\Matcher,! Y|jSymfony\Component\Routing\Tests\Loader/  _|jSymfony\Component\Routing\Tests\Generator6 m|jSymfony\Component\Routing\Tests\Generator\Dumper. ]|jSymfony\Component\Routing\Tests\Fixtures? |jSymfony\Component\Routing\Tests\Fixtures\AnnotatedClasses% K|jSymfony\Component\Routing\Tests0 a|jSymfony\Component\Routing\Tests\Annotation. ]|jSymfony\Component\Routing\Matcher\Dumper' O|jSymfony\Component\Routing\Matcher& M|jSymfony\Component\Routing\Loader) S|jSymfony\Component\Routing\Generator0 a|jSymfony\Component\Routing\Generator\Dumper) S|jSymfony\Component\Routing\Exception ?|jSymfony\Component\Routing* U|jSymfony\Component\Routing\Annotation% K|jSymfony\Component\Process\Tests ?|jSymfony\Component\Process) S|jSymfony\Component\Process\Exception- [|jSymfony\Component\OptionsResolver\Tests' O|jSymfony\Component\OptionsResolver1 c|jSymfony\Component\OptionsResolver\Exception) S|jSymfony\Component\Locale\Tests\Stub$ I|jSymfony\Component\Locale\Tests#
 G|jSymfony\Component\Locale\Stub.	 ]|jSymfony\Component\Locale\Stub\DateFormat =|jSymfony\Component\Locale( Q|jSymfony\Component\Locale\Exception6 m|jSymfony\Component\HttpKernel\Tests\Profiler\Mock1 c|jSymfony\Component\HttpKernel\Tests\Profiler2 e|jSymfony\Component\HttpKernel\Tests\HttpCache1 c|jSymfony\Component\HttpKernel\Tests\FixturesI |jSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle] 9|jSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\DependencyInjectionQ  !|jSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\CommandH |jSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionLoadedBundle\~ 7|jSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionLoadedBundle\DependencyInjectionH} |jSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionAbsentBundle2| e|jSymfony\Component\HttpKernel\Tests\Exception6{ m|jSymfony\Component\HttpKernel\Tests\EventListener.z ]|jSymfony\Component\HttpKernel\Tests\Debug6y m|jSymfony\Component\HttpKernel\Tests\DataCollector/x _|jSymfony\Component\HttpKernel\Tests\Config(w Q|jSymfony\Component\HttpKernel\Tests4v i|jSymfony\Component\HttpKernel\Tests\CacheWarmer5u k|jSymfony\Component\HttpKernel\Tests\CacheClearer/t _|jSymfony\Component\HttpKernel\Tests\Bundle+s W|jSymfony\Component\HttpKernel\Profiler&r M|jSymfony\Component\HttpKernel\Log,q Y|jSymfony\Component\HttpKernel\HttpCache,p Y|jSymfony\Component\HttpKernel\Exception0o a|jSymfony\Component\HttpKernel\EventListener(n Q|jSymfony\Component\HttpKernel\Event6m m|jSymfony\Component\HttpKernel\DependencyInjection(l Q|jSymfony\Component\HttpKernel\Debug0k a|jSymfony\Component\HttpKernel\DataCollector-j [|jSymfony\Component\HttpKernel\Controller   M  d1p@^&=t2



h
5			x	J	P+c8Z(k;V)l@{H]8                                                - [|jSymfony\Component\EventDispatcher\Debug5 k|jSymfony\Component\DependencyInjection\Extension"  E|jSymfony\Component\Yaml\Tests& M|jSymfony\Component\Yaml\Exception~ 9|jSymfony\Component\Yaml6} m|jSymfony\Component\Validator\Tests\Mapping\Loader/| _|jSymfony\Component\Validator\Tests\Mapping5{ k|jSymfony\Component\Validator\Tests\Mapping\Cache0z a|jSymfony\Component\Validator\Tests\Fixtures'y O|jSymfony\Component\Validator\Tests3x g|jSymfony\Component\Validator\Tests\Constraints0w a|jSymfony\Component\Validator\Mapping\Loader/v _|jSymfony\Component\Validator\Mapping\Cache)u S|jSymfony\Component\Validator\Mapping+t W|jSymfony\Component\Validator\Exception8s q|jSymfony\Component\Validator\Constraints\Collection-r [|jSymfony\Component\Validator\Constraints!q C|jSymfony\Component\Validator*p U|jSymfony\Component\Translation\Writer0o a|jSymfony\Component\Translation\Tests\Loader)n S|jSymfony\Component\Translation\Tests0m a|jSymfony\Component\Translation\Tests\Dumper*l U|jSymfony\Component\Translation\Loader#k G|jSymfony\Component\Translation-j [|jSymfony\Component\Translation\Extractor*i U|jSymfony\Component\Translation\Dumper0h a|jSymfony\Component\Templating\Tests\Storage(g Q|jSymfony\Component\Templating\Tests/f _|jSymfony\Component\Templating\Tests\Loader/e _|jSymfony\Component\Templating\Tests\Helper1d c|jSymfony\Component\Templating\Tests\Fixtures*c U|jSymfony\Component\Templating\Storage)b S|jSymfony\Component\Templating\Loader)a S|jSymfony\Component\Templating\Helper"` E|jSymfony\Component\Templating(_ Q|jSymfony\Component\Templating\Asset(^ Q|jSymfony\Component\Serializer\Tests3] g|jSymfony\Component\Serializer\Tests\Normalizer1\ c|jSymfony\Component\Serializer\Tests\Fixtures0[ a|jSymfony\Component\Serializer\Tests\Encoder"Z E|jSymfony\Component\Serializer-Y [|jSymfony\Component\Serializer\Normalizer,X Y|jSymfony\Component\Serializer\Exception*W U|jSymfony\Component\Serializer\Encoder6V m|jSymfony\Component\Security\Tests\Http\RememberMe2U e|jSymfony\Component\Security\Tests\Http\Logout+T W|jSymfony\Component\Security\Tests\Http4S i|jSymfony\Component\Security\Tests\Http\Firewall6R m|jSymfony\Component\Security\Tests\Http\EntryPointJQ |jAcme\DemoBundle\Proxy\__CG__\Symfony\Component\Security\Tests\Core\0P a|jSymfony\Component\Security\Tests\Core\Util0O a|jSymfony\Component\Security\Tests\Core\User+N W|jSymfony\Component\Security\Tests\Core0M a|jSymfony\Component\Security\Tests\Core\Role3L g|jSymfony\Component\Security\Tests\Core\Encoder?K |jSymfony\Component\Security\Tests\Core\Authorization\Voter9J s|jSymfony\Component\Security\Tests\Core\AuthorizationAI |jSymfony\Component\Security\Tests\Core\Authentication\TokenFH |jSymfony\Component\Security\Tests\Core\Authentication\RememberMeDG |jSymfony\Component\Security\Tests\Core\Authentication\Provider:F u|jSymfony\Component\Security\Tests\Core\Authentication0E a|jSymfony\Component\Security\Tests\Acl\Voter/D _|jSymfony\Component\Security\Tests\Acl\Util5C k|jSymfony\Component\Security\Tests\Acl\PermissionIB |jAcme\DemoBundle\Proxy\__CG__\Symfony\Component\Security\Tests\Acl\-A [|jSymfony\Component\Security\Tests\Domain1@ c|jSymfony\Component\Security\Tests\Acl\Domain/? _|jSymfony\Component\Security\Tests\Acl\Dbal-> [|jSymfony\Component\Security\Http\Session0= a|jSymfony\Component\Security\Http\RememberMe,< Y|jSymfony\Component\Security\Http\Logout.; ]|jSymfony\Component\Security\Http\Firewall+: W|jSymfony\Component\Security\Http\Event09 a|jSymfony\Component\Security\Http\EntryPoint48 i|jSymfony\Component\Security\Http\Authentication%7 K|jSymfony\Component\Security\Http:6 u|jSymfony\Component\Security\Core\Validator\Constraint   Z  [D zP$k\D&l;~)




e
7

			J	c4R~N!{Q*<f9i?Y$                       $\ I|]Symfony\Bridge\Twig\Tests\Node)[ S|]Symfony\Bridge\Twig\Tests\Extension2Z e|]Symfony\Bridge\Twig\Tests\Extension\Fixtures%Y K|]Symfony\Bridge\Twig\NodeVisitorX =|]Symfony\Bridge\Twig\NodeW =|]Symfony\Bridge\Twig\Form#V G|]Symfony\Bridge\Twig\Extension.U ]|]Symfony\Bridge\Swiftmailer\DataCollector"T E|]Symfony\Bridge\Propel1\Tests'S O|]Symfony\Bridge\Propel1\Tests\Form7R o|]Symfony\Bridge\Propel1\Tests\Form\DataTransformer2Q e|]Symfony\Bridge\Propel1\Tests\Form\ChoiceList+P W|]Symfony\Bridge\Propel1\Tests\Fixtures0O a|]Symfony\Bridge\Propel1\Tests\DataCollector*N U|]Symfony\Bridge\Propel1\Security\User#M G|]Symfony\Bridge\Propel1\Logger&L M|]Symfony\Bridge\Propel1\Form\Type!K C|]Symfony\Bridge\Propel1\Form1J c|]Symfony\Bridge\Propel1\Form\DataTransformer,I Y|]Symfony\Bridge\Propel1\Form\ChoiceListGH |]Symfony\Bridge\Propel1\DependencyInjection\Security\UserProvider*G U|]Symfony\Bridge\Propel1\DataCollector,F Y|]Symfony\Bridge\Monolog\Tests\Processor&E M|]Symfony\Bridge\Monolog\ProcessorD 9|]Symfony\Bridge\Monolog$C I|]Symfony\Bridge\Monolog\Handler'B O|]Symfony\Bridge\Doctrine\Validator3A g|]Symfony\Bridge\Doctrine\Validator\Constraints9@ s|]Symfony\Bridge\Doctrine\Tests\Validator\Constraints1? c|]Symfony\Bridge\Doctrine\Tests\Security\User*> U|]Symfony\Bridge\Doctrine\Tests\Logger-= [|]Symfony\Bridge\Doctrine\Tests\Form\Type(< Q|]Symfony\Bridge\Doctrine\Tests\Form3; g|]Symfony\Bridge\Doctrine\Tests\Form\ChoiceList,: Y|]Symfony\Bridge\Doctrine\Tests\FixturesA9 |]Symfony\Bridge\Doctrine\Tests\DependencyInjection\Compiler08 a|]Symfony\Bridge\Doctrine\Tests\DataFixtures17 c|]Symfony\Bridge\Doctrine\Tests\DataCollector#6 G|]Symfony\Bridge\Doctrine\Tests+5 W|]Symfony\Bridge\Doctrine\Security\User$4 I|]Symfony\Bridge\Doctrine\Logger,3 Y|]Symfony\Bridge\Doctrine\HttpFoundation'2 O|]Symfony\Bridge\Doctrine\Form\Type01 a|]Symfony\Bridge\Doctrine\Form\EventListener"0 E|]Symfony\Bridge\Doctrine\Form2/ e|]Symfony\Bridge\Doctrine\Form\DataTransformer-. [|]Symfony\Bridge\Doctrine\Form\ChoiceListH- |]Symfony\Bridge\Doctrine\DependencyInjection\Security\UserProvider>, }|]Symfony\Bridge\Doctrine\DependencyInjection\CompilerPass1+ c|]Symfony\Bridge\Doctrine\DependencyInjection** U|]Symfony\Bridge\Doctrine\DataFixtures+) W|]Symfony\Bridge\Doctrine\DataCollector( ;|]Symfony\Bridge\Doctrine)' S|]Symfony\Bridge\Doctrine\CacheWarmer& )|Doctrine\Tests%% K|Doctrine\Tests\Common\Inflector$ ?|Doctrine\Common\Inflector# )|Doctrine\TestsR" #|MyProject\Proxies\__CG__\OtherProject\Proxies\__CG__\Doctrine\Tests\Common\:! u|MyProject\Proxies\__CG__\OtherProject\Proxies\__CG__9  s|MyProject\Proxies\__CG__\Doctrine\Tests\Common\Util =|MyProject\Proxies\__CG__  A|Doctrine\Tests\Common\Util. ]|Doctrine\Tests\Common\Reflection\Dummies& M|Doctrine\Tests\Common\Reflection! C|Doctrine\Tests\Common\Proxy/ _|Doctrine\Tests\Common\Persistence\Mapping |Doctrine' O|Doctrine\Tests\Common\Persistence 7|Doctrine\Tests\Common +|ClassLoaderTest |global 5|Doctrine\Common\Util  A|Doctrine\Common\Reflection% K|Doctrine\Common\Proxy\Exception 7|Doctrine\Common\Proxy0 a|Doctrine\Common\Persistence\Mapping\Driver) S|Doctrine\Common\Persistence\Mapping' O|Doctrine\Common\Persistence\Event! C|Doctrine\Common\Persistence +|Doctrine\Common )|Doctrine\Tests'
 O|Doctrine\Tests\Common\Collections&	 M|Doctrine\Common\Collections\Expr! C|Doctrine\Common\Collections )|Doctrine\Tests! C|Doctrine\Tests\Common\Cache 7|Doctrine\Common\Cache3 g|jSymfony\Component\Security\Http\Authorization* U|jSymfony\Component\Security\Acl\Model   F  Z2^,wBx?l4


{
@					X	+	`(RSQSyAxo                               `" ?|]Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FormLoginBundle\DependencyInjectionW! -|]Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FormLoginBundle\ControllerU  )|]Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\CsrfFormLoginBundle\FormP |]Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\CsrfFormLoginBundle[ 5|]Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\CsrfFormLoginBundle\Controller4 i|]Symfony\Bundle\SecurityBundle\Tests\FunctionalO |]Symfony\Bundle\SecurityBundle\Tests\DependencyInjection\Security\Factory= {|]Symfony\Bundle\SecurityBundle\Tests\DependencyInjection5 k|]Symfony\Bundle\SecurityBundle\Templating\Helper# G|]Symfony\Bundle\SecurityBundle, Y|]Symfony\Bundle\SecurityBundle\Security1 c|]Symfony\Bundle\SecurityBundle\EventListenerN |]Symfony\Bundle\SecurityBundle\DependencyInjection\Security\UserProviderI |]Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory7 o|]Symfony\Bundle\SecurityBundle\DependencyInjectionA |]Symfony\Bundle\SecurityBundle\DependencyInjection\Compiler1 c|]Symfony\Bundle\SecurityBundle\DataCollector+ W|]Symfony\Bundle\SecurityBundle\Command. ]|]Symfony\Bundle\FrameworkBundle\Validator0 a|]Symfony\Bundle\FrameworkBundle\Translation4 i|]Symfony\Bundle\FrameworkBundle\Tests\Validator6 m|]Symfony\Bundle\FrameworkBundle\Tests\Translation5 k|]Symfony\Bundle\FrameworkBundle\Tests\Templating< y|]Symfony\Bundle\FrameworkBundle\Tests\Templating\LoaderF
 |]Symfony\Bundle\FrameworkBundle\Tests\Templating\Helper\Fixtures<	 y|]Symfony\Bundle\FrameworkBundle\Tests\Templating\Helper2 e|]Symfony\Bundle\FrameworkBundle\Tests\RoutingH |]Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundleS %|]Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\Controller5 k|]Symfony\Bundle\FrameworkBundle\Tests\Functional! C|]TestBundle\Sensio\FooBundle, Y|]TestBundle\Sensio\FooBundle\Controller% K|]TestBundle\Sensio\Cms\FooBundle0 a|]TestBundle\Sensio\Cms\FooBundle\Controller  5|]TestBundle\FooBundle* U|]TestBundle\FooBundle\Controller\Test)~ S|]TestBundle\FooBundle\Controller\Sub%} K|]TestBundle\FooBundle\Controller!| C|]TestBundle\Fabpot\FooBundle,{ Y|]TestBundle\Fabpot\FooBundle\Controller>z }|]Symfony\Bundle\FrameworkBundle\Tests\Fixtures\BaseBundle8y q|]Symfony\Bundle\FrameworkBundle\Tests\EventListener*x U|]Symfony\Bundle\FrameworkBundle\Tests>w }|]Symfony\Bundle\FrameworkBundle\Tests\DependencyInjectionHv |]Symfony\Bundle\FrameworkBundle\Tests\DependencyInjection\Compiler5u k|]Symfony\Bundle\FrameworkBundle\Tests\Controller2t e|]Symfony\Bundle\FrameworkBundle\Tests\Console6s m|]Symfony\Bundle\FrameworkBundle\Tests\CacheWarmer)r S|]Symfony\Bundle\FrameworkBundle\Test6q m|]Symfony\Bundle\FrameworkBundle\Templating\Loader6p m|]Symfony\Bundle\FrameworkBundle\Templating\Helper/o _|]Symfony\Bundle\FrameworkBundle\Templating5n k|]Symfony\Bundle\FrameworkBundle\Templating\Asset,m Y|]Symfony\Bundle\FrameworkBundle\Routing.l ]|]Symfony\Bundle\FrameworkBundle\HttpCache2k e|]Symfony\Bundle\FrameworkBundle\EventListener8j q|]Symfony\Bundle\FrameworkBundle\DependencyInjectionBi |]Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler2h e|]Symfony\Bundle\FrameworkBundle\DataCollector/g _|]Symfony\Bundle\FrameworkBundle\Controller,f Y|]Symfony\Bundle\FrameworkBundle\Console,e Y|]Symfony\Bundle\FrameworkBundle\Command$d I|]Symfony\Bundle\FrameworkBundle0c a|]Symfony\Bundle\FrameworkBundle\CacheWarmerb 3|]Symfony\Bridge\Twig%a K|]Symfony\Bridge\Twig\Translation%` K|]Symfony\Bridge\Twig\TokenParser+_ W|]Symfony\Bridge\Twig\Tests\Translation^ ?|]Symfony\Bridge\Twig\Tests+] W|]Symfony\Bridge\Twig\Tests\NodeVisitor   Z  Y$w8Sp<\


t
K
&					o	`	?		xgT@4}R* m?nFj;Y.l7R                     | #|]Container148{ q|]Symfony\Component\DependencyInjection\Tests\Dumper1z c|]Symfony\Component\DependencyInjection\Tests:y u|]Symfony\Component\DependencyInjection\Tests\Compiler8x q|]Symfony\Component\DependencyInjection\ParameterBag2w e|]Symfony\Component\DependencyInjection\Loader5v k|]Symfony\Component\DependencyInjection\Exception2u e|]Symfony\Component\DependencyInjection\Dumper4t i|]Symfony\Component\DependencyInjection\Compiler+s W|]Symfony\Component\DependencyInjection.r ]|]Symfony\Component\CssSelector\Tests\Node)q S|]Symfony\Component\CssSelector\Tests(p Q|]Symfony\Component\CssSelector\Node-o [|]Symfony\Component\CssSelector\Exception#n G|]Symfony\Component\CssSelector,m Y|]Symfony\Component\Console\Tests\Tester,l Y|]Symfony\Component\Console\Tests\Output+k W|]Symfony\Component\Console\Tests\Input,j Y|]Symfony\Component\Console\Tests\Helper/i _|]Symfony\Component\Console\Tests\Formatter-h [|]Symfony\Component\Console\Tests\Command%g K|]Symfony\Component\Console\Tests&f M|]Symfony\Component\Console\Tester&e M|]Symfony\Component\Console\Output%d K|]Symfony\Component\Console\Input&c M|]Symfony\Component\Console\Helper)b S|]Symfony\Component\Console\Formatter'a O|]Symfony\Component\Console\Command` ?|]Symfony\Component\Console-_ [|]Symfony\Component\Config\Tests\Resource+^ W|]Symfony\Component\Config\Tests\Loader$] I|]Symfony\Component\Config\Tests7\ o|]Symfony\Component\Config\Tests\Definition\Builder/[ _|]Symfony\Component\Config\Tests\Definition'Z O|]Symfony\Component\Config\Resource%Y K|]Symfony\Component\Config\Loader(X Q|]Symfony\Component\Config\Exception3W g|]Symfony\Component\Config\Definition\Exception1V c|]Symfony\Component\Config\Definition\Builder)U S|]Symfony\Component\Config\DefinitionT =|]Symfony\Component\Config	S |]FooR #|]Namespaced2Q !|]NamespacedP |]ClassMapO |]Foo\Bar
N |]BetaM |]AlphaL |]K 1|]ClassesWithParentsJ 9|]NamespaceCollision\C\BI 9|]NamespaceCollision\A\BH )|]Apc\Namespaced G A|]Apc\NamespaceCollision\A\BF =|]Apc\NamespaceCollision\AE |]globalD 5|]NamespaceCollision\CC 5|]NamespaceCollision\A)B S|]Symfony\Component\ClassLoader\Tests#A G|]Symfony\Component\ClassLoader(@ Q|]Symfony\Component\BrowserKit\Tests"? E|]Symfony\Component\BrowserKit&> M|]Symfony\Bundle\WebProfilerBundle,= Y|]Symfony\Bundle\WebProfilerBundle\Tests5< k|]Symfony\Bundle\WebProfilerBundle\Tests\Profiler:; u|]Symfony\Bundle\WebProfilerBundle\Tests\EventListenerA: |]Symfony\Bundle\WebProfilerBundle\Tests\DependencyInjection79 o|]Symfony\Bundle\WebProfilerBundle\Tests\Controller/8 _|]Symfony\Bundle\WebProfilerBundle\Profiler47 i|]Symfony\Bundle\WebProfilerBundle\EventListener:6 u|]Symfony\Bundle\WebProfilerBundle\DependencyInjection15 c|]Symfony\Bundle\WebProfilerBundle\Controller4 ?|]Symfony\Bundle\TwigBundle+3 W|]Symfony\Bundle\TwigBundle\TokenParser%2 K|]Symfony\Bundle\TwigBundle\Tests,1 Y|]Symfony\Bundle\TwigBundle\Tests\Loader90 s|]Symfony\Bundle\TwigBundle\Tests\DependencyInjection0/ a|]Symfony\Bundle\TwigBundle\Tests\Controller$. I|]Symfony\Bundle\TwigBundle\Node&- M|]Symfony\Bundle\TwigBundle\Loader), S|]Symfony\Bundle\TwigBundle\Extension3+ g|]Symfony\Bundle\TwigBundle\DependencyInjection<* y|]Symfony\Bundle\TwigBundle\DependencyInjection\Compiler%) K|]Symfony\Bundle\TwigBundle\Debug*( U|]Symfony\Bundle\TwigBundle\Controller'' O|]Symfony\Bundle\TwigBundle\Command+& W|]Symfony\Bundle\TwigBundle\CacheWarmer2% e|]Symfony\Bundle\SecurityBundle\Twig\ExtensionU$ )|]Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FormLoginBundle\SecurityL# |]Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FormLoginBundle   I  _4	~O*V/Y+xE


m
:			~	A	U\WbI|X/W u6                                                          1E c|]Symfony\Component\HttpFoundation\Tests\File,D Y|]Symfony\Component\HttpFoundation\Tests<C y|]Symfony\Component\HttpFoundation\Session\Storage\Proxy6B m|]Symfony\Component\HttpFoundation\Session\Storage>A }|]Symfony\Component\HttpFoundation\Session\Storage\Handler.@ ]|]Symfony\Component\HttpFoundation\Session4? i|]Symfony\Component\HttpFoundation\Session\Flash8> q|]Symfony\Component\HttpFoundation\Session\Attribute4= i|]Symfony\Component\HttpFoundation\File\MimeType+< W|]Symfony\Component\HttpFoundation\File5; k|]Symfony\Component\HttpFoundation\File\Exception&: M|]Symfony\Component\HttpFoundation!9 C|]Symfony\Component\Form\Util'8 O|]Symfony\Component\Form\Tests\Util(7 Q|]Symfony\Component\Form\Tests\Guess+6 W|]Symfony\Component\Form\Tests\FixturesG5 |]Symfony\Component\Form\Tests\Extension\Validator\ViolationMapper;4 w|]Symfony\Component\Form\Tests\Extension\Validator\TypeE3 	|]Symfony\Component\Form\Tests\Extension\Validator\EventListenerC2 |]Symfony\Component\Form\Tests\Extension\Validator\ConstraintsJ1 |]Symfony\Component\Form\Tests\Extension\HttpFoundation\EventListener60 m|]Symfony\Component\Form\Tests\Extension\Csrf\Type?/ |]Symfony\Component\Form\Tests\Extension\Csrf\EventListener>. }|]Symfony\Component\Form\Tests\Extension\Csrf\CsrfProvider6- m|]Symfony\Component\Form\Tests\Extension\Core\Type?, |]Symfony\Component\Form\Tests\Extension\Core\EventListenerB+ |]Symfony\Component\Form\Tests\Extension\Core\DataTransformer<* y|]Symfony\Component\Form\Tests\Extension\Core\DataMapper<) y|]Symfony\Component\Form\Tests\Extension\Core\ChoiceList"( E|]Symfony\Component\Form\Tests"' E|]Symfony\Component\Form\GuessA& |]Symfony\Component\Form\Extension\Validator\ViolationMapper0% a|]Symfony\Component\Form\Extension\Validator5$ k|]Symfony\Component\Form\Extension\Validator\Util5# k|]Symfony\Component\Form\Extension\Validator\Type>" }|]Symfony\Component\Form\Extension\Validator\EventListener<! y|]Symfony\Component\Form\Extension\Validator\Constraints1  c|]Symfony\Component\Form\Extension\Templating: u|]Symfony\Component\Form\Extension\HttpFoundation\Type5 k|]Symfony\Component\Form\Extension\HttpFoundationD |]Symfony\Component\Form\Extension\HttpFoundation\EventListener: u|]Symfony\Component\Form\Extension\DependencyInjection0 a|]Symfony\Component\Form\Extension\Csrf\Type9 s|]Symfony\Component\Form\Extension\Csrf\EventListener8 q|]Symfony\Component\Form\Extension\Csrf\CsrfProvider+ W|]Symfony\Component\Form\Extension\Csrf0 a|]Symfony\Component\Form\Extension\Core\View0 a|]Symfony\Component\Form\Extension\Core\Type9 s|]Symfony\Component\Form\Extension\Core\EventListener; w|]Symfony\Component\Form\Extension\Core\DataTransformer6 m|]Symfony\Component\Form\Extension\Core\DataMapper+ W|]Symfony\Component\Form\Extension\Core6 m|]Symfony\Component\Form\Extension\Core\ChoiceList& M|]Symfony\Component\Form\Exception" E|]Symfony\Component\Form\Event 9|]Symfony\Component\Form- [|]Symfony\Component\Finder\Tests\Iterator$ I|]Symfony\Component\Finder\Tests/ _|]Symfony\Component\Finder\Tests\Comparator'
 O|]Symfony\Component\Finder\Iterator	 =|]Symfony\Component\Finder) S|]Symfony\Component\Finder\Comparator( Q|]Symfony\Component\Filesystem\Tests" E|]Symfony\Component\Filesystem, Y|]Symfony\Component\Filesystem\Exception- [|]Symfony\Component\EventDispatcher\Tests' O|]Symfony\Component\EventDispatcher. ]|]Symfony\Component\DomCrawler\Tests\Field( Q|]Symfony\Component\DomCrawler\Tests(  Q|]Symfony\Component\DomCrawler\Field" E|]Symfony\Component\DomCrawler>~ }|]Symfony\Component\DependencyInjection\Tests\ParameterBag8} q|]Symfony\Component\DependencyInjection\Tests\Loader   K  K~R n;yJZ#



\
#			DE\#Y-sQ){O&p.c3q?                                                              4 i|]Symfony\Component\Security\Core\Authentication* U|]Symfony\Component\Security\Acl\Voter/ _|]Symfony\Component\Security\Acl\Permission. ]|]Symfony\Component\Security\Acl\Exception+ W|]Symfony\Component\Security\Acl\Domain) S|]Symfony\Component\Security\Acl\Dbal4
 i|]Symfony\Component\Routing\Tests\Matcher\Dumper-	 [|]Symfony\Component\Routing\Tests\Matcher, Y|]Symfony\Component\Routing\Tests\Loader/ _|]Symfony\Component\Routing\Tests\Generator6 m|]Symfony\Component\Routing\Tests\Generator\Dumper. ]|]Symfony\Component\Routing\Tests\Fixtures? |]Symfony\Component\Routing\Tests\Fixtures\AnnotatedClasses% K|]Symfony\Component\Routing\Tests0 a|]Symfony\Component\Routing\Tests\Annotation. ]|]Symfony\Component\Routing\Matcher\Dumper'  O|]Symfony\Component\Routing\Matcher& M|]Symfony\Component\Routing\Loader)~ S|]Symfony\Component\Routing\Generator0} a|]Symfony\Component\Routing\Generator\Dumper)| S|]Symfony\Component\Routing\Exception{ ?|]Symfony\Component\Routing*z U|]Symfony\Component\Routing\Annotation%y K|]Symfony\Component\Process\Testsx ?|]Symfony\Component\Process)w S|]Symfony\Component\Process\Exception-v [|]Symfony\Component\OptionsResolver\Tests'u O|]Symfony\Component\OptionsResolver1t c|]Symfony\Component\OptionsResolver\Exception)s S|]Symfony\Component\Locale\Tests\Stub$r I|]Symfony\Component\Locale\Tests#q G|]Symfony\Component\Locale\Stub.p ]|]Symfony\Component\Locale\Stub\DateFormato =|]Symfony\Component\Locale(n Q|]Symfony\Component\Locale\Exception6m m|]Symfony\Component\HttpKernel\Tests\Profiler\Mock1l c|]Symfony\Component\HttpKernel\Tests\Profiler2k e|]Symfony\Component\HttpKernel\Tests\HttpCache1j c|]Symfony\Component\HttpKernel\Tests\FixturesIi |]Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle]h 9|]Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\DependencyInjectionQg !|]Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\CommandHf |]Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionLoadedBundle\e 7|]Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionLoadedBundle\DependencyInjectionHd |]Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionAbsentBundle2c e|]Symfony\Component\HttpKernel\Tests\Exception6b m|]Symfony\Component\HttpKernel\Tests\EventListener.a ]|]Symfony\Component\HttpKernel\Tests\Debug6` m|]Symfony\Component\HttpKernel\Tests\DataCollector/_ _|]Symfony\Component\HttpKernel\Tests\Config(^ Q|]Symfony\Component\HttpKernel\Tests4] i|]Symfony\Component\HttpKernel\Tests\CacheWarmer5\ k|]Symfony\Component\HttpKernel\Tests\CacheClearer/[ _|]Symfony\Component\HttpKernel\Tests\Bundle+Z W|]Symfony\Component\HttpKernel\Profiler&Y M|]Symfony\Component\HttpKernel\Log,X Y|]Symfony\Component\HttpKernel\HttpCache,W Y|]Symfony\Component\HttpKernel\Exception0V a|]Symfony\Component\HttpKernel\EventListener(U Q|]Symfony\Component\HttpKernel\Event6T m|]Symfony\Component\HttpKernel\DependencyInjection(S Q|]Symfony\Component\HttpKernel\Debug0R a|]Symfony\Component\HttpKernel\DataCollector-Q [|]Symfony\Component\HttpKernel\Controller)P S|]Symfony\Component\HttpKernel\Config"O E|]Symfony\Component\HttpKernel.N ]|]Symfony\Component\HttpKernel\CacheWarmer/M _|]Symfony\Component\HttpKernel\CacheClearer)L S|]Symfony\Component\HttpKernel\BundleCK |]Symfony\Component\HttpFoundation\Tests\Session\Storage\Proxy<J y|]Symfony\Component\HttpFoundation\Tests\Session\StorageEI 	|]Symfony\Component\HttpFoundation\Tests\Session\Storage\Handler4H i|]Symfony\Component\HttpFoundation\Tests\Session:G u|]Symfony\Component\HttpFoundation\Tests\Session\Flash>F }|]Symfony\Component\HttpFoundation\Tests\Session\Attribute   L  ~AwIS+b3 j:



Q
			@	Y+x?l?TwK[(xEe*                                                  )\ S|]Symfony\Component\Validator\Mapping+[ W|]Symfony\Component\Validator\Exception8Z q|]Symfony\Component\Validator\Constraints\Collection-Y [|]Symfony\Component\Validator\Constraints!X C|]Symfony\Component\Validator*W U|]Symfony\Component\Translation\Writer0V a|]Symfony\Component\Translation\Tests\Loader)U S|]Symfony\Component\Translation\Tests0T a|]Symfony\Component\Translation\Tests\Dumper*S U|]Symfony\Component\Translation\Loader#R G|]Symfony\Component\Translation-Q [|]Symfony\Component\Translation\Extractor*P U|]Symfony\Component\Translation\Dumper0O a|]Symfony\Component\Templating\Tests\Storage(N Q|]Symfony\Component\Templating\Tests/M _|]Symfony\Component\Templating\Tests\Loader/L _|]Symfony\Component\Templating\Tests\Helper1K c|]Symfony\Component\Templating\Tests\Fixtures*J U|]Symfony\Component\Templating\Storage)I S|]Symfony\Component\Templating\Loader)H S|]Symfony\Component\Templating\Helper"G E|]Symfony\Component\Templating(F Q|]Symfony\Component\Templating\Asset(E Q|]Symfony\Component\Serializer\Tests3D g|]Symfony\Component\Serializer\Tests\Normalizer1C c|]Symfony\Component\Serializer\Tests\Fixtures0B a|]Symfony\Component\Serializer\Tests\Encoder"A E|]Symfony\Component\Serializer-@ [|]Symfony\Component\Serializer\Normalizer,? Y|]Symfony\Component\Serializer\Exception*> U|]Symfony\Component\Serializer\Encoder6= m|]Symfony\Component\Security\Tests\Http\RememberMe2< e|]Symfony\Component\Security\Tests\Http\Logout+; W|]Symfony\Component\Security\Tests\Http4: i|]Symfony\Component\Security\Tests\Http\Firewall69 m|]Symfony\Component\Security\Tests\Http\EntryPointJ8 |]Acme\DemoBundle\Proxy\__CG__\Symfony\Component\Security\Tests\Core\07 a|]Symfony\Component\Security\Tests\Core\Util06 a|]Symfony\Component\Security\Tests\Core\User+5 W|]Symfony\Component\Security\Tests\Core04 a|]Symfony\Component\Security\Tests\Core\Role33 g|]Symfony\Component\Security\Tests\Core\Encoder?2 |]Symfony\Component\Security\Tests\Core\Authorization\Voter91 s|]Symfony\Component\Security\Tests\Core\AuthorizationA0 |]Symfony\Component\Security\Tests\Core\Authentication\TokenF/ |]Symfony\Component\Security\Tests\Core\Authentication\RememberMeD. |]Symfony\Component\Security\Tests\Core\Authentication\Provider:- u|]Symfony\Component\Security\Tests\Core\Authentication0, a|]Symfony\Component\Security\Tests\Acl\Voter/+ _|]Symfony\Component\Security\Tests\Acl\Util5* k|]Symfony\Component\Security\Tests\Acl\PermissionI) |]Acme\DemoBundle\Proxy\__CG__\Symfony\Component\Security\Tests\Acl\-( [|]Symfony\Component\Security\Tests\Domain1' c|]Symfony\Component\Security\Tests\Acl\Domain/& _|]Symfony\Component\Security\Tests\Acl\Dbal-% [|]Symfony\Component\Security\Http\Session0$ a|]Symfony\Component\Security\Http\RememberMe,# Y|]Symfony\Component\Security\Http\Logout." ]|]Symfony\Component\Security\Http\Firewall+! W|]Symfony\Component\Security\Http\Event0  a|]Symfony\Component\Security\Http\EntryPoint4 i|]Symfony\Component\Security\Http\Authentication% K|]Symfony\Component\Security\Http: u|]Symfony\Component\Security\Core\Validator\Constraint* U|]Symfony\Component\Security\Core\Util* U|]Symfony\Component\Security\Core\User* U|]Symfony\Component\Security\Core\Role/ _|]Symfony\Component\Security\Core\Exception+ W|]Symfony\Component\Security\Core\Event- [|]Symfony\Component\Security\Core\Encoder9 s|]Symfony\Component\Security\Core\Authorization\Voter3 g|]Symfony\Component\Security\Core\Authorization% K|]Symfony\Component\Security\Core: u|]Symfony\Component\Security\Core\Authentication\Token? |]Symfony\Component\Security\Core\Authentication\RememberMe= {|]Symfony\Component\Security\Core\Authentication\Provider   { e;eFc-xSD5&oX<



~
g
F
/
					p	X	6	#		v\D y`BtV;qY<hJ"nY?/pQ<'xd?$                       W Aws\S3V 1Aws\Route53Domains"U EAws\Route53Domains\ExceptionT #Aws\Route53S 7Aws\Route53\ExceptionR -Aws\Route53\EnumQ %Aws\RedshiftP 9Aws\Redshift\ExceptionO /Aws\Redshift\EnumN Aws\RdsM /Aws\Rds\ExceptionL %Aws\Rds\EnumK %Aws\OpsWorksJ 9Aws\OpsWorks\ExceptionI /Aws\OpsWorks\EnumH #Aws\KinesisG 7Aws\Kinesis\ExceptionF -Aws\Kinesis\EnumE -Aws\ImportExport D AAws\ImportExport\ExceptionC 7Aws\ImportExport\EnumB Aws\IamA /Aws\Iam\Exception@ %Aws\Iam\Enum'? OAws\Glacier\Model\MultipartUpload> #Aws\Glacier= 7Aws\Glacier\Exception< -Aws\Glacier\Enum; /Aws\Emr\Exception: %Aws\Emr\Enum9 Aws\Emr%8 KAws\ElasticTranscoder\Exception7 7Aws\ElasticTranscoder(6 QAws\ElasticLoadBalancing\Exception5 =Aws\ElasticLoadBalancing$4 IAws\ElasticBeanstalk\Exception3 ?Aws\ElasticBeanstalk\Enum2 5Aws\ElasticBeanstalk1 ?Aws\ElastiCache\Exception0 5Aws\ElastiCache\Enum/ +Aws\ElastiCache. -Aws\Ec2\Iterator- /Aws\Ec2\Exception, %Aws\Ec2\Enum+ Aws\Ec2* 5Aws\DynamoDb\Session*) UAws\DynamoDb\Session\LockingStrategy%( KAws\DynamoDb\Model\BatchRequest' 1Aws\DynamoDb\Model& 7Aws\DynamoDb\Iterator% 9Aws\DynamoDb\Exception$ /Aws\DynamoDb\Enum# %Aws\DynamoDb!" CAws\DirectConnect\Exception! 9Aws\DirectConnect\Enum  /Aws\DirectConnect  AAws\DataPipeline\Exception 7Aws\DataPipeline\Enum -Aws\DataPipeline /Aws\Common\Waiter 5Aws\Common\Signature& MAws\Common\Model\MultipartUpload 3Aws\Common\Iterator( QAws\Common\InstanceMetadata\Waiter! CAws\Common\InstanceMetadata +Aws\Common\Hash /Aws\Common\Facade! CAws\Common\Exception\Parser 5Aws\Common\Exception +Aws\Common\Enum 9Aws\Common\Credentials 1Aws\Common\Command /Aws\Common\Client !Aws\Common ?Aws\CognitoSync\Exception +Aws\CognitoSync# GAws\CognitoIdentity\Exception
 3Aws\CognitoIdentity"	 EAws\CloudWatchLogs\Exception 1Aws\CloudWatchLogs =Aws\CloudWatch\Exception 3Aws\CloudWatch\Enum )Aws\CloudWatch =Aws\CloudTrail\Exception )Aws\CloudTrail% KAws\CloudSearchDomain\Exception 7Aws\CloudSearchDomain  ?Aws\CloudSearch\Exception 5Aws\CloudSearch\Enum~ +Aws\CloudSearch} =Aws\CloudFront\Exception| 3Aws\CloudFront\Enum{ )Aws\CloudFront"z EAws\CloudFormation\Exceptiony ;Aws\CloudFormation\Enumx 1Aws\CloudFormationw ?Aws\AutoScaling\Exceptionv 5Aws\AutoScaling\Enumu +Aws\AutoScalingt globals globalr global"q ESymfony\Component\Yaml\Tests&p MSymfony\Component\Yaml\Exceptiono 9Symfony\Component\Yaml"n ESymfony\Component\Yaml\Tests&m MSymfony\Component\Yaml\Exceptionl 9Symfony\Component\Yaml3k g|]Symfony\Component\Security\Http\Authorization*j U|]Symfony\Component\Security\Acl\Model-i [|]Symfony\Component\EventDispatcher\Debug5h k|]Symfony\Component\DependencyInjection\Extension"g E|]Symfony\Component\Yaml\Tests&f M|]Symfony\Component\Yaml\Exceptione 9|]Symfony\Component\Yaml6d m|]Symfony\Component\Validator\Tests\Mapping\Loader/c _|]Symfony\Component\Validator\Tests\Mapping5b k|]Symfony\Component\Validator\Tests\Mapping\Cache0a a|]Symfony\Component\Validator\Tests\Fixtures'` O|]Symfony\Component\Validator\Tests3_ g|]Symfony\Component\Validator\Tests\Constraints0^ a|]Symfony\Component\Validator\Mapping\Loader/] _|]Symfony\Component\Validator\Mapping\Cache   v oJ6!~]M8fR=#}`7aD



}
_
5
					i	I	+	hH)rQ*m:yV' ycA'xY.xbEu`C"                   M 1Aws\S3\IntegrationL =Aws\Tests\S3\IntegrationK 5Aws\Tests\S3\CommandJ %Aws\Tests\S3I =Aws\Tests\Route53Domains*H UAws\Tests\Route53Domains\IntegrationG /Aws\Tests\Route53#F GAws\Tests\Route53\IntegrationE 1Aws\Tests\Redshift$D IAws\Tests\Redshift\IntegrationC 5Aws\Tests\Rds\WaiterB 'Aws\Tests\RdsA ?Aws\Tests\Rds\Integration@ 1Aws\Tests\OpsWorks$? IAws\Tests\OpsWorks\Integration> /Aws\Tests\Kinesis#= GAws\Tests\Kinesis\Integration< Aws\Tests(; QAws\Tests\ImportExport\Integration: 9Aws\Tests\ImportExport9 ?Aws\Tests\Iam\Integration8 'Aws\Tests\Iam7 =Aws\Tests\Glacier\Waiter-6 [Aws\Tests\Glacier\Model\MultipartUpload#5 GAws\Tests\Glacier\Integration4 /Aws\Tests\Glacier3 ?Aws\Tests\Emr\Integration2 'Aws\Tests\Emr-1 [Aws\Tests\ElasticTranscoder\Integration!0 CAws\Tests\ElasticTranscoder0/ aAws\Tests\ElasticLoadBalancing\Integration$. IAws\Tests\ElasticLoadBalancing,- YAws\Tests\ElasticBeanstalk\Integration , AAws\Tests\ElasticBeanstalk'+ OAws\Tests\ElastiCache\Integration* 7Aws\Tests\ElastiCache) 9Aws\Tests\Ec2\Iterator( ?Aws\Tests\Ec2\Integration' 'Aws\Tests\Ec2& ?Aws\Tests\DynamoDb\Waiter0% aAws\Tests\DynamoDb\Session\LockingStrategy $ AAws\Tests\DynamoDb\Session+# WAws\Tests\DynamoDb\Model\BatchRequest" =Aws\Tests\DynamoDb\Model!! CAws\Tests\DynamoDb\Iterator$  IAws\Tests\DynamoDb\Integration$ IAws\Tests\DynamoDB\Integration =Aws\DynamoDb\Integration" EAws\Tests\DynamoDb\Exception 1Aws\Tests\DynamoDb) SAws\Tests\DirectConnect\Integration ;Aws\Tests\DirectConnect( QAws\Tests\DataPipeline\Integration 9Aws\Tests\DataPipeline ;Aws\Tests\Common\Waiter  AAws\Tests\Common\Signature, YAws\Tests\Common\Model\MultipartUpload ?Aws\Tests\Common\Iterator" EAws\Tests\Common\Integration' OAws\Tests\Common\InstanceMetadata 7Aws\Tests\Common\Hash ;Aws\Tests\Common\Facade' OAws\Tests\Common\Exception\Parser  AAws\Tests\Common\Exception" EAws\Tests\Common\Credentials =Aws\Tests\Common\Command ;Aws\Tests\Common\Client
 -Aws\Tests\Common'	 OAws\Tests\CognitoSync\Integration 7Aws\Tests\CognitoSync+ WAws\Tests\CognitoIdentity\Integration ?Aws\Tests\CognitoIdentity* UAws\Tests\CloudWatchLogs\Integration =Aws\Tests\CloudWatchLogs& MAws\Tests\CloudWatch\Integration 5Aws\Tests\CloudWatch& MAws\Tests\CloudTrail\Integration  5Aws\Tests\CloudTrail! CAws\Tests\CloudSearchDomain'~ OAws\Tests\CloudSearch\Integration} 7Aws\Tests\CloudSearch!| CAws\Tests\CloudFront\Waiter&{ MAws\Tests\CloudFront\Integrationz 5Aws\Tests\CloudFront*y UAws\Tests\CloudFormation\Integrationx =Aws\Tests\CloudFormation'w OAws\Tests\AutoScaling\Integrationv 7Aws\Tests\AutoScalingu Aws\Swft /Aws\Swf\Exceptions %Aws\Swf\Enumr #Aws\Supportq 7Aws\Support\Exceptionp Aws\Stso /Aws\Sts\Exceptionn 1Aws\StorageGateway"m EAws\StorageGateway\Exceptionl ;Aws\StorageGateway\Enumk Aws\Sqsj /Aws\Sqs\Exceptioni %Aws\Sqs\Enumh Aws\Snsg =Aws\Sns\MessageValidator(f QAws\Sns\MessageValidator\Exceptione /Aws\Sns\Exceptiond %Aws\SimpleDbc 9Aws\SimpleDb\Exceptionb Aws\Sesa /Aws\Ses\Exception` %Aws\Ses\Enum_ #Aws\S3\Sync"^ EAws\S3\Model\MultipartUpload] %Aws\S3\Model\ +Aws\S3\Iterator[ ;Aws\S3\Exception\ParserZ -Aws\S3\ExceptionY #Aws\S3\EnumX )Aws\S3\Command   % fD.k>m^F)tS;~gK*




n
[
A
&
					|	X	-	zW=sKtR5ZJ5wgI&t_E5w\M6"	nTD%                   R 9Aws\SimpleDb\ExceptionQ Aws\SesP /Aws\Ses\ExceptionO %Aws\Ses\EnumN #Aws\S3\Sync"M EAws\S3\Model\MultipartUploadL %Aws\S3\ModelK +Aws\S3\IteratorJ ;Aws\S3\Exception\ParserI -Aws\S3\ExceptionH #Aws\S3\EnumG )Aws\S3\CommandF Aws\S3E 1Aws\Route53Domains"D EAws\Route53Domains\ExceptionC #Aws\Route53B 7Aws\Route53\ExceptionA -Aws\Route53\Enum@ %Aws\Redshift? 9Aws\Redshift\Exception> /Aws\Redshift\Enum= Aws\Rds< /Aws\Rds\Exception; %Aws\Rds\Enum: %Aws\OpsWorks9 9Aws\OpsWorks\Exception8 /Aws\OpsWorks\Enum7 #Aws\Kinesis6 7Aws\Kinesis\Exception5 -Aws\Kinesis\Enum4 -Aws\ImportExport 3 AAws\ImportExport\Exception2 7Aws\ImportExport\Enum1 Aws\Iam0 /Aws\Iam\Exception/ %Aws\Iam\Enum'. OAws\Glacier\Model\MultipartUpload- #Aws\Glacier, 7Aws\Glacier\Exception+ -Aws\Glacier\Enum* /Aws\Emr\Exception) %Aws\Emr\Enum( Aws\Emr%' KAws\ElasticTranscoder\Exception& 7Aws\ElasticTranscoder(% QAws\ElasticLoadBalancing\Exception$ =Aws\ElasticLoadBalancing$# IAws\ElasticBeanstalk\Exception" ?Aws\ElasticBeanstalk\Enum! 5Aws\ElasticBeanstalk  ?Aws\ElastiCache\Exception 5Aws\ElastiCache\Enum +Aws\ElastiCache -Aws\Ec2\Iterator /Aws\Ec2\Exception %Aws\Ec2\Enum Aws\Ec2 5Aws\DynamoDb\Session* UAws\DynamoDb\Session\LockingStrategy% KAws\DynamoDb\Model\BatchRequest 1Aws\DynamoDb\Model 7Aws\DynamoDb\Iterator 9Aws\DynamoDb\Exception /Aws\DynamoDb\Enum %Aws\DynamoDb! CAws\DirectConnect\Exception 9Aws\DirectConnect\Enum /Aws\DirectConnect  AAws\DataPipeline\Exception 7Aws\DataPipeline\Enum -Aws\DataPipeline /Aws\Common\Waiter
 5Aws\Common\Signature&	 MAws\Common\Model\MultipartUpload 3Aws\Common\Iterator( QAws\Common\InstanceMetadata\Waiter! CAws\Common\InstanceMetadata +Aws\Common\Hash /Aws\Common\Facade! CAws\Common\Exception\Parser 5Aws\Common\Exception +Aws\Common\Enum  9Aws\Common\Credentials 1Aws\Common\Command~ /Aws\Common\Client} !Aws\Common| ?Aws\CognitoSync\Exception{ +Aws\CognitoSync#z GAws\CognitoIdentity\Exceptiony 3Aws\CognitoIdentity"x EAws\CloudWatchLogs\Exceptionw 1Aws\CloudWatchLogsv =Aws\CloudWatch\Exceptionu 3Aws\CloudWatch\Enumt )Aws\CloudWatchs =Aws\CloudTrail\Exceptionr )Aws\CloudTrail%q KAws\CloudSearchDomain\Exceptionp 7Aws\CloudSearchDomaino ?Aws\CloudSearch\Exceptionn 5Aws\CloudSearch\Enumm +Aws\CloudSearchl =Aws\CloudFront\Exceptionk 3Aws\CloudFront\Enumj )Aws\CloudFront"i EAws\CloudFormation\Exceptionh ;Aws\CloudFormation\Enumg 1Aws\CloudFormationf ?Aws\AutoScaling\Exceptione 5Aws\AutoScaling\Enumd +Aws\AutoScalingc globalb 'Aws\Tests\Swfa ?Aws\Tests\Swf\Integration` /Aws\Tests\Support#_ GAws\Tests\Support\Integration^ 'Aws\Tests\Sts] ?Aws\Tests\Sts\Integration\ =Aws\Tests\StorageGateway*[ UAws\Tests\StorageGateway\IntegrationZ ?Aws\Tests\Sqs\IntegrationY 'Aws\Tests\Sqs$X IAws\Tests\Sns\MessageValidatorW ?Aws\Tests\Sns\IntegrationV 1Aws\Tests\SimpleDb$U IAws\Tests\SimpleDb\IntegrationT 'Aws\Tests\SesS ?Aws\Tests\Ses\IntegrationR 3Aws\Tests\S3\WaiterQ /Aws\Tests\S3\Sync(P QAws\Tests\S3\Model\MultipartUploadO 1Aws\Tests\S3\ModelN 7Aws\Tests\S3\Iterator   t  u`F6zeK;_;lC"]D$



q
S
)
				p	Q	&	yR+b@*~O(iO)VDmF+kJ/s]6          F ?Aws\Tests\Sns\IntegrationE 1Aws\Tests\SimpleDb$D IAws\Tests\SimpleDb\IntegrationC 'Aws\Tests\SesB ?Aws\Tests\Ses\IntegrationA 3Aws\Tests\S3\Waiter@ /Aws\Tests\S3\Sync(? QAws\Tests\S3\Model\MultipartUpload> 1Aws\Tests\S3\Model= 7Aws\Tests\S3\Iterator< 1Aws\S3\Integration; =Aws\Tests\S3\Integration: 5Aws\Tests\S3\Command9 %Aws\Tests\S38 =Aws\Tests\Route53Domains*7 UAws\Tests\Route53Domains\Integration6 /Aws\Tests\Route53#5 GAws\Tests\Route53\Integration4 1Aws\Tests\Redshift$3 IAws\Tests\Redshift\Integration2 5Aws\Tests\Rds\Waiter1 'Aws\Tests\Rds0 ?Aws\Tests\Rds\Integration/ 1Aws\Tests\OpsWorks$. IAws\Tests\OpsWorks\Integration- /Aws\Tests\Kinesis#, GAws\Tests\Kinesis\Integration+ Aws\Tests(* QAws\Tests\ImportExport\Integration) 9Aws\Tests\ImportExport( ?Aws\Tests\Iam\Integration' 'Aws\Tests\Iam& =Aws\Tests\Glacier\Waiter-% [Aws\Tests\Glacier\Model\MultipartUpload#$ GAws\Tests\Glacier\Integration# /Aws\Tests\Glacier" ?Aws\Tests\Emr\Integration! 'Aws\Tests\Emr-  [Aws\Tests\ElasticTranscoder\Integration! CAws\Tests\ElasticTranscoder0 aAws\Tests\ElasticLoadBalancing\Integration$ IAws\Tests\ElasticLoadBalancing, YAws\Tests\ElasticBeanstalk\Integration  AAws\Tests\ElasticBeanstalk' OAws\Tests\ElastiCache\Integration 7Aws\Tests\ElastiCache 9Aws\Tests\Ec2\Iterator ?Aws\Tests\Ec2\Integration 'Aws\Tests\Ec2 ?Aws\Tests\DynamoDb\Waiter0 aAws\Tests\DynamoDb\Session\LockingStrategy  AAws\Tests\DynamoDb\Session+ WAws\Tests\DynamoDb\Model\BatchRequest =Aws\Tests\DynamoDb\Model! CAws\Tests\DynamoDb\Iterator$ IAws\Tests\DynamoDb\Integration$ IAws\Tests\DynamoDB\Integration =Aws\DynamoDb\Integration" EAws\Tests\DynamoDb\Exception 1Aws\Tests\DynamoDb)
 SAws\Tests\DirectConnect\Integration	 ;Aws\Tests\DirectConnect( QAws\Tests\DataPipeline\Integration 9Aws\Tests\DataPipeline ;Aws\Tests\Common\Waiter  AAws\Tests\Common\Signature, YAws\Tests\Common\Model\MultipartUpload ?Aws\Tests\Common\Iterator" EAws\Tests\Common\Integration' OAws\Tests\Common\InstanceMetadata  7Aws\Tests\Common\Hash ;Aws\Tests\Common\Facade'~ OAws\Tests\Common\Exception\Parser } AAws\Tests\Common\Exception"| EAws\Tests\Common\Credentials{ =Aws\Tests\Common\Commandz ;Aws\Tests\Common\Clienty -Aws\Tests\Common'x OAws\Tests\CognitoSync\Integrationw 7Aws\Tests\CognitoSync+v WAws\Tests\CognitoIdentity\Integrationu ?Aws\Tests\CognitoIdentity*t UAws\Tests\CloudWatchLogs\Integrations =Aws\Tests\CloudWatchLogs&r MAws\Tests\CloudWatch\Integrationq 5Aws\Tests\CloudWatch&p MAws\Tests\CloudTrail\Integrationo 5Aws\Tests\CloudTrail!n CAws\Tests\CloudSearchDomain'm OAws\Tests\CloudSearch\Integrationl 7Aws\Tests\CloudSearch!k CAws\Tests\CloudFront\Waiter&j MAws\Tests\CloudFront\Integrationi 5Aws\Tests\CloudFront*h UAws\Tests\CloudFormation\Integrationg =Aws\Tests\CloudFormation'f OAws\Tests\AutoScaling\Integratione 7Aws\Tests\AutoScalingd Aws\Swfc /Aws\Swf\Exceptionb %Aws\Swf\Enuma #Aws\Support` 7Aws\Support\Exception_ Aws\Sts^ /Aws\Sts\Exception] 1Aws\StorageGateway"\ EAws\StorageGateway\Exception[ ;Aws\StorageGateway\EnumZ Aws\SqsY /Aws\Sqs\ExceptionX %Aws\Sqs\EnumW Aws\SnsV =Aws\Sns\MessageValidator(U QAws\Sns\MessageValidator\ExceptionT /Aws\Sns\ExceptionS %Aws\SimpleDb   ~ tS1gI1hC&wT7sN* 




t
X
=
						}	\	<	pR,	xN(uXB)`D"rbP@/
|aJ5pK#gC                          "D C League\OAuth2\Client\Entity!C A League\OAuth2\Client\Token$B G League\OAuth2\Client\Provider!A A League\OAuth2\Client\Grant%@ I League\OAuth2\Client\Exception"? C League\OAuth2\Client\Entity!> A League\OAuth1\Client\Tests%= I League\OAuth1\Client\Signature"< C League\OAuth1\Client\Server'; M League\OAuth1\Client\Credentials!: A League\OAuth1\Client\Tests%9 I League\OAuth1\Client\Signature"8 C League\OAuth1\Client\Server'7 M League\OAuth1\Client\Credentials6 # }Jamm\Tester5 ' }Jamm\Autoload4 / }Jamm\Memory\Tests3 + }Jamm\Memory\Shm2 # }Jamm\Memory1 # Jamm\Tester0 ' Jamm\Autoload/ / Jamm\Memory\Tests. + Jamm\Memory\Shm- # Jamm\Memory,  tglobal+  tSmtpapi*  1global)  1SendGrid(  2global'  2SendGrid&  global%  global$ kglobal$# G QMinime\Annotations\Interfaces " ? QMinime\Annotations\Traits"! C QMinime\Annotations\Fixtures  = QMinime\Annotations\Types 1 QMinime\Annotations$ G RMinime\Annotations\Interfaces  ? RMinime\Annotations\Traits" C RMinime\Annotations\Fixtures = RMinime\Annotations\Types 1 RMinime\Annotations 1 !Imagine\Image\Fill + !Imagine\Effects % !Imagine\Draw 3 !Imagine\Test\Issues 5 !Imagine\Test\Imagick = !Imagine\Test\Image\Point' M !Imagine\Test\Image\Palette\Color! A !Imagine\Test\Image\Palette" C !Imagine\Test\Image\Metadata# E !Imagine\Test\Image\Histogram' M !Imagine\Test\Image\Fill\Gradient 1 !Imagine\Test\Image 5 !Imagine\Test\Gmagick + !Imagine\Test\Gd ; !Imagine\Test\Functional
 3 !Imagine\Test\Filter 	 ? !Imagine\Test\Filter\Basic# E !Imagine\Test\Filter\Advanced 5 !Imagine\Test\Effects / !Imagine\Test\Draw % !Imagine\Test ; !Imagine\Test\Constraint + !Imagine\Imagick 3 !Imagine\Image\Point" C !Imagine\Image\Palette\Color  7 !Imagine\Image\Palette 9 !Imagine\Image\Metadata~ ; !Imagine\Image\Histogram"} C !Imagine\Image\Fill\Gradient| ' !Imagine\Image{ + !Imagine\Gmagickz ! !Imagine\Gdy ) !Imagine\Filterx 5 !Imagine\Filter\Basicw ; !Imagine\Filter\Advancedv / !Imagine\Exceptionu 1 #Imagine\Image\Fillt + #Imagine\Effectss % #Imagine\Drawr 3 #Imagine\Test\Issuesq 5 #Imagine\Test\Imagickp = #Imagine\Test\Image\Point'o M #Imagine\Test\Image\Palette\Color!n A #Imagine\Test\Image\Palette"m C #Imagine\Test\Image\Metadata#l E #Imagine\Test\Image\Histogram'k M #Imagine\Test\Image\Fill\Gradientj 1 #Imagine\Test\Imagei 5 #Imagine\Test\Gmagickh + #Imagine\Test\Gdg ; #Imagine\Test\Functionalf 3 #Imagine\Test\Filter e ? #Imagine\Test\Filter\Basic#d E #Imagine\Test\Filter\Advancedc 5 #Imagine\Test\Effectsb / #Imagine\Test\Drawa % #Imagine\Test` ; #Imagine\Test\Constraint_ + #Imagine\Imagick^ 3 #Imagine\Image\Point"] C #Imagine\Image\Palette\Color\ 7 #Imagine\Image\Palette[ 9 #Imagine\Image\MetadataZ ; #Imagine\Image\Histogram"Y C #Imagine\Image\Fill\GradientX ' #Imagine\ImageW + #Imagine\GmagickV ! #Imagine\GdU ) #Imagine\FilterT 5 #Imagine\Filter\BasicS ; #Imagine\Filter\AdvancedR / #Imagine\ExceptionQ 'Aws\Tests\SwfP ?Aws\Tests\Swf\IntegrationO /Aws\Tests\Support#N GAws\Tests\Support\IntegrationM 'Aws\Tests\StsL ?Aws\Tests\Sts\IntegrationK =Aws\Tests\StorageGateway*J UAws\Tests\StorageGateway\IntegrationI ?Aws\Tests\Sqs\IntegrationH 'Aws\Tests\Sqs$G IAws\Tests\Sns\MessageValidator   s iYG:r@)_4lS5pR*





y
[
3
				m	C	 d?^;{X9g=N\-sN> dG.                                   7 3 Composer\Installers6 + Tests\WordPlate5 3 WordPlate\WordPress%4 I WordPlate\Foundation\Bootstrap3 5 WordPlate\Foundation2 5 WordPlate\Exceptions1 + WordPlate\Debug!0 A WordPlate\Console\Commands/ / WordPlate\Console. 5 WordPlate\Components-  global", C |Symfony\Component\VarDumper0+ _ |Symfony\Component\VarDumper\Tests\Fixture(* O |Symfony\Component\VarDumper\Tests/) ] |Symfony\Component\VarDumper\Tests\Caster'( M |Symfony\Component\VarDumper\Test,' W |Symfony\Component\VarDumper\Exception)& Q |Symfony\Component\VarDumper\Dumper)% Q |Symfony\Component\VarDumper\Cloner)$ Q |Symfony\Component\VarDumper\Caster-# [lSymfony\Component\Debug\Tests\Fixtures2" lglobal,! YlSymfony\Component\Debug\Tests\Fixtures5  klSymfony\Component\Debug\Tests\FatalErrorHandler- [lSymfony\Component\Debug\Tests\Exception# GlSymfony\Component\Debug\Tests/ _lSymfony\Component\Debug\FatalErrorHandler, YlSymfony\Component\HttpKernel\Exception' OlSymfony\Component\Debug\Exception ;lSymfony\Component\Debug 3 johnpbloch\Composer  ?global  ? Illuminate\Support\Traits! A Illuminate\Support\Facades = Illuminate\Support\Debug 1 Illuminate\Support 7 Illuminate\Filesystem  ? Illuminate\Contracts\View# E Illuminate\Contracts\Support# E Illuminate\Contracts\Routing! A Illuminate\Contracts\Redis$ G Illuminate\Contracts\Pipeline& K Illuminate\Contracts\Pagination  ? Illuminate\Contracts\Mail# E Illuminate\Contracts\Logging 
 ? Illuminate\Contracts\Http#	 E Illuminate\Contracts\Hashing& K Illuminate\Contracts\Foundation" C Illuminate\Contracts\Events! A Illuminate\Contracts\Debug" C Illuminate\Contracts\Cookie# E Illuminate\Contracts\Console" C Illuminate\Contracts\Config! A Illuminate\Contracts\Cache = Illuminate\Contracts\Bus(  O Illuminate\Contracts\Broadcasting  ? Illuminate\Contracts\Auth'~ M Illuminate\Contracts\Auth\Access&} K Illuminate\Contracts\Validation!| A Illuminate\Contracts\Queue&{ K Illuminate\Contracts\Filesystem&z K Illuminate\Contracts\Encryption$y G Illuminate\Contracts\Database%x I Illuminate\Contracts\Containerw 5 EIlluminate\Containerv / Illuminate\Configu  globalt  Stringys = Composer\Installers\Testr 3 Composer\Installersq + Tests\WordPlatep 3 WordPlate\WordPress%o I WordPlate\Foundation\Bootstrapn 5 WordPlate\Foundationm 5 WordPlate\Exceptionsl + WordPlate\Debug!k A WordPlate\Console\Commandsj / WordPlate\Consolei 5 WordPlate\Componentsh 'eZend\Mvc\Viewg 1eZend\Mvc\View\Httpf 7eZend\Mvc\View\Consolee -eZend\Mvc\Serviced +eZend\Mvc\Routerc 5eZend\Mvc\Router\Httpb ?eZend\Mvc\Router\Exceptiona ;eZend\Mvc\Router\Console` ;eZend\Mvc\ResponseSender_ 'eZend\Mvc\I18n^ 1eZend\Mvc\Exception(] QeZend\Mvc\Controller\Plugin\Service \ AeZend\Mvc\Controller\Plugin[ 3eZend\Mvc\ControllerZ eZend\MvcY '6Mockery\TestsX %6test\Mockery4W i6Mockery\Test\Generator\StringManipulation\PassV +6Mockery\MatcherU )6Mockery\Loader/T _6Mockery\Generator\StringManipulation\PassS /6Mockery\GeneratorR /6Mockery\ExceptionQ 96Mockery\CountValidatorP 6MockeryO ;6Mockery\Adapter\PhpunitN 6globalM  global#L E MyBuilder\PhpunitAccelerator
K  FooJ  My\SpaceI  global!H A League\OAuth2\Client\Token$G G League\OAuth2\Client\Provider!F A League\OAuth2\Client\Grant%E I League\OAuth2\Client\Exception   | h[G1W, \*scTC4(	`B% 



r
H
$
				m	D	xY:y_6&\5Z:X=v\;bK+gC! 3  Pglobal2  Lglobal1 = Tests\Behat\Gherkin\Node!0 A Tests\Behat\Gherkin\Loader#/ E Tests\Behat\Gherkin\Keywords!. A Tests\Behat\Gherkin\Filter- 3 Tests\Behat\Gherkin , ? Tests\Behat\Gherkin\Cache+ 1 Behat\Gherkin\Node* 5 Behat\Gherkin\Loader) 9 Behat\Gherkin\Keywords( ' Behat\Gherkin' 5 Behat\Gherkin\Filter& ; Behat\Gherkin\Exception% 5 Behat\Gherkin\Dumper$ 3 Behat\Gherkin\Cache&# K Behat\Behat\Context\Initializer" - Behat\Behat\Util! 1 Behat\Behat\Tester  ; Behat\Behat\Hook\Loader - Behat\Behat\Hook" C Behat\Behat\Hook\Annotation ; Behat\Behat\HelpPrinter! A Behat\Behat\Gherkin\Loader 7 Behat\Behat\Formatter 7 Behat\Behat\Extension 7 Behat\Behat\Exception / Behat\Behat\Event4 g Behat\Behat\DependencyInjection\Configuration/ ] Behat\Behat\DependencyInjection\Compiler& K Behat\Behat\DependencyInjection& K Behat\Behat\Definition\Proposal$ G Behat\Behat\Definition\Loader 9 Behat\Behat\Definition( O Behat\Behat\Definition\Annotation  ? Behat\Behat\DataCollector = Behat\Behat\Context\Step! A Behat\Behat\Context\Loader' M Behat\Behat\Context\ClassGuesser 3 Behat\Behat\Context$ G Behat\Behat\Console\Processor 
 ? Behat\Behat\Console\Input$	 G Behat\Behat\Console\Formatter" C Behat\Behat\Console\Command 3 Behat\Behat\Console 5 Behat\Behat\Compiler 9 Behat\Behat\Annotation  global& K Behat\Behat\Context\Initializer - Behat\Behat\Util 1 Behat\Behat\Tester  ; Behat\Behat\Hook\Loader - Behat\Behat\Hook"~ C Behat\Behat\Hook\Annotation} ; Behat\Behat\HelpPrinter!| A Behat\Behat\Gherkin\Loader{ 7 Behat\Behat\Formatterz 7 Behat\Behat\Extensiony 7 Behat\Behat\Exceptionx / Behat\Behat\Event4w g Behat\Behat\DependencyInjection\Configuration/v ] Behat\Behat\DependencyInjection\Compiler&u K Behat\Behat\DependencyInjection&t K Behat\Behat\Definition\Proposal$s G Behat\Behat\Definition\Loaderr 9 Behat\Behat\Definition(q O Behat\Behat\Definition\Annotation p ? Behat\Behat\DataCollectoro = Behat\Behat\Context\Step!n A Behat\Behat\Context\Loader'm M Behat\Behat\Context\ClassGuesserl 3 Behat\Behat\Context$k G Behat\Behat\Console\Processor j ? Behat\Behat\Console\Input$i G Behat\Behat\Console\Formatter"h C Behat\Behat\Console\Commandg 3 Behat\Behat\Consolef 5 Behat\Behat\Compilere 9 Behat\Behat\Annotationd  globalc >globalb My\Spacea global` Foo\Baz_ 'Foo\BarScoped^ #Other\Space] Foo\Bar\ global[ [bar\baz	Z [FooY [globalX My\SpaceW globalV  global*U USymfony\Component\Finder\Tests\Shell-T [Symfony\Component\Finder\Tests\Iterator$S ISymfony\Component\Finder\Tests0R aSymfony\Component\Finder\Tests\FakeAdapter/Q _Symfony\Component\Finder\Tests\Expression/P _Symfony\Component\Finder\Tests\Comparator$O ISymfony\Component\Finder\Shell'N OSymfony\Component\Finder\IteratorM =Symfony\Component\Finder)L SSymfony\Component\Finder\Expression(K QSymfony\Component\Finder\Exception)J SSymfony\Component\Finder\Comparator&I MSymfony\Component\Finder\AdapterH  globalG  globalF  globalE  globalD  rglobalC  zglobalB  Scli\treeA  Scli\table@ % Scli\progress? ! Scli\notify
>  Scli= ' Scli\arguments<  Sglobal; = Composer\Installers\Test: 3 Composer\Installers9  global8 = Composer\Installers\Test   - |[>"tS6}XB'dH%{cL4





q
V
7
 
						o	b	L	/	_8qQ8iO-g?fCy^BjE#lL-                                   4 7 7Illuminate\Validation3 9 Illuminate\Translation$2 G EIlluminate\Session\Middleware!1 A EIlluminate\Session\Console0 1 EIlluminate\Session/ 7 Illuminate\Queue\Jobs.  global- ; Illuminate\Queue\Failed, = Illuminate\Queue\Console"+ C Illuminate\Queue\Connectors* = Illuminate\Queue\Capsule) - Illuminate\Queue( 3 Illuminate\Pipeline' 7 Illuminate\Pagination!& A BIlluminate\Http\Middleware% + BIlluminate\Http $ ? BIlluminate\Http\Exception# 1 Illuminate\Hashing" / RIlluminate\Events! 7 Illuminate\Encryption*  S Illuminate\Database\Schema\Grammars! A Illuminate\Database\Schema+ U Illuminate\Database\Query\Processors) Q Illuminate\Database\Query\Grammars  ? Illuminate\Database\Query% I Illuminate\Database\Migrations- Y Illuminate\Database\Eloquent\Relations# E Illuminate\Database\Eloquent( O Illuminate\Database\Console\Seeds- Y Illuminate\Database\Console\Migrations% I Illuminate\Database\Connectors 3 Illuminate\Database" C Illuminate\Database\Capsule# E _Illuminate\Cookie\Middleware / _Illuminate\Cookie$ G Illuminate\Console\Scheduling 1 Illuminate\Console = Illuminate\Cache\Console - Illuminate\Cache ) Illuminate\Bus ; Illuminate\Broadcasting+ U Illuminate\Broadcasting\Broadcasters 
 ? Illuminate\Auth\Passwords!	 A Illuminate\Auth\Middleware ; Illuminate\Auth\Console + Illuminate\Auth 9 Illuminate\Auth\Access$ G Illuminate\Foundation\Testing  global # Lumen\Tests 7 Laravel\Lumen\Testing 7 Laravel\Lumen\Routing  ; Laravel\Lumen\Providers 1 Laravel\Lumen\Http$~ G Laravel\Lumen\Http\Middleware.} [ Illuminate\Foundation\Support\Providers| 7 Illuminate\Foundation{ = Laravel\Lumen\Exceptionsz 7 Laravel\Lumen\Console%y I Laravel\Lumen\Console\Commandsx ' Laravel\Lumenw 3 {phpmock\integrationv % nphpmock\test
u  nfoot # nphpmock\spys  nphpmockr / nphpmock\generatorq / nphpmock\functionsp 3 nphpmock\environmento + aphpmock\phpunitn 9:org\bovigo\vfs\visitorm ):org\bovigo\vfsl 9:org\bovigo\vfs\contentk 1jPredis\Transactionj )jPredis\Sessioni =jPredis\Response\Iteratorh +jPredis\Responseg 1jPredis\Replicationf 'jPredis\PubSub"e EjPredis\Protocol\Text\Handlerd 5jPredis\Protocol\Textc +jPredis\Protocolb )jPredis\Profilea +jPredis\Pipeline` )jPredis\Monitor!_ CjPredis\Connection\Aggregate^ /jPredis\Connection] 5jPredis\Configuration\ =jPredis\Command\Processor[ )jPredis\Command Z AjPredis\Collection\IteratorY 3jPredis\Cluster\Hash X AjPredis\Cluster\DistributorW )jPredis\ClusterV jPredisU jglobalT 1jPredis\TransactionS )jPredis\SessionR =jPredis\Response\IteratorQ +jPredis\ResponseP 1jPredis\ReplicationO 'jPredis\PubSub"N EjPredis\Protocol\Text\HandlerM 5jPredis\Protocol\TextL +jPredis\ProtocolK )jPredis\ProfileJ +jPredis\PipelineI )jPredis\Monitor!H CjPredis\Connection\AggregateG /jPredis\ConnectionF 5jPredis\ConfigurationE =jPredis\Command\ProcessorD )jPredis\Command C AjPredis\Collection\IteratorB 3jPredis\Cluster\Hash A AjPredis\Cluster\Distributor@ )jPredis\Cluster? jPredis> jglobal= 1 malkusch\lock\util< 3 malkusch\lock\mutex; ; malkusch\lock\exception:  global9  global8  ]global7 - ]xrstf\Composer526  ^global5 - ^xrstf\Composer524  Tglobal   Q  h@!lK,}\>Yu<



]
			`	!n=Q&`2zBx?Xca            I oSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle] 9oSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\DependencyInjectionQ !oSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\CommandJ oSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionNotValidBundle^ ;oSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionNotValidBundle\DependencyInjectionH  oSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionLoadedBundle\ 7oSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionLoadedBundle\DependencyInjectionH~ oSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionAbsentBundle6} moSymfony\Component\HttpKernel\Tests\EventListener<| yoSymfony\Component\HttpKernel\Tests\DependencyInjection.{ ]oSymfony\Component\HttpKernel\Tests\Debug;z woSymfony\Component\HttpKernel\Tests\DataCollector\Util6y moSymfony\Component\HttpKernel\Tests\DataCollector3x goSymfony\Component\HttpKernel\Tests\Controller/w _oSymfony\Component\HttpKernel\Tests\Config(v QoSymfony\Component\HttpKernel\Tests4u ioSymfony\Component\HttpKernel\Tests\CacheWarmer5t koSymfony\Component\HttpKernel\Tests\CacheClearer/s _oSymfony\Component\HttpKernel\Tests\Bundle+r WoSymfony\Component\HttpKernel\Profiler&q MoSymfony\Component\HttpKernel\Log,p YoSymfony\Component\HttpKernel\HttpCache+o WoSymfony\Component\HttpKernel\Fragment,n YoSymfony\Component\HttpKernel\Exception0m aoSymfony\Component\HttpKernel\EventListener(l QoSymfony\Component\HttpKernel\Event6k moSymfony\Component\HttpKernel\DependencyInjection(j QoSymfony\Component\HttpKernel\Debug5i koSymfony\Component\HttpKernel\DataCollector\Util0h aoSymfony\Component\HttpKernel\DataCollector-g [oSymfony\Component\HttpKernel\Controller)f SoSymfony\Component\HttpKernel\Config"e EoSymfony\Component\HttpKernel.d ]oSymfony\Component\HttpKernel\CacheWarmer/c _oSymfony\Component\HttpKernel\CacheClearer)b SoSymfony\Component\HttpKernel\Bundlea oIglobalC` oISymfony\Component\HttpFoundation\Tests\Session\Storage\Proxy<_ yoISymfony\Component\HttpFoundation\Tests\Session\StorageE^ 	oISymfony\Component\HttpFoundation\Tests\Session\Storage\Handler4] ioISymfony\Component\HttpFoundation\Tests\Session:\ uoISymfony\Component\HttpFoundation\Tests\Session\Flash>[ }oISymfony\Component\HttpFoundation\Tests\Session\Attribute:Z uoISymfony\Component\HttpFoundation\Tests\File\MimeType1Y coISymfony\Component\HttpFoundation\Tests\File,X YoISymfony\Component\HttpFoundation\Tests<W yoISymfony\Component\HttpFoundation\Session\Storage\Proxy6V moISymfony\Component\HttpFoundation\Session\Storage>U }oISymfony\Component\HttpFoundation\Session\Storage\Handler.T ]oISymfony\Component\HttpFoundation\Session4S ioISymfony\Component\HttpFoundation\Session\Flash8R qoISymfony\Component\HttpFoundation\Session\Attribute4Q ioISymfony\Component\HttpFoundation\File\MimeType+P WoISymfony\Component\HttpFoundation\File5O koISymfony\Component\HttpFoundation\File\Exception&N MoISymfony\Component\HttpFoundationM 7 'FastRoute\RouteParserL 5 'FastRoute\DispatcherK ; 'FastRoute\DataGeneratorJ  'FastRouteI jCarbonH ! Cron\TestsG  Cron$F G }Illuminate\Foundation\TestingE  }globalD # }Lumen\TestsC 7 }Laravel\Lumen\TestingB 7 }Laravel\Lumen\RoutingA ; }Laravel\Lumen\Providers@ 1 }Laravel\Lumen\Http$? G }Laravel\Lumen\Http\Middleware.> [ }Illuminate\Foundation\Support\Providers= 7 }Illuminate\Foundation< = }Laravel\Lumen\Exceptions; 7 }Laravel\Lumen\Console%: I }Laravel\Lumen\Console\Commands9 ' }Laravel\Lumen!8 A Illuminate\View\Middleware7 + Illuminate\View6 ; Illuminate\View\Engines 5 ? Illuminate\View\Compilers   v  c/= \ c&R


R
				S	g)q_=$~a9)]M6vgN7o_O?/h;qQ5+          {  Foo\Barz  Betay  Alphax  w 1 ClassesWithParentsv 9 NamespaceCollision\C\Bu 9 NamespaceCollision\A\Bt ) Apc\Namespaced!s A Apc\NamespaceCollision\A\Br = Apc\NamespaceCollision\Aq  globalp 5 NamespaceCollision\Co 5 NamespaceCollision\A*n S Symfony\Component\ClassLoader\Tests$m G Symfony\Component\ClassLoaderl  qglobalk  bglobalj  globali  globalh  globalg  globalf  globale  globald  globalc  globalb  mglobala  Sglobal`  Wglobal_  %global^  4global]  )global\  Detection[  globalZ  DetectionY  globalX svMichelfW #iWhoops\UtilV 7iWhoops\Provider\SilexU ;iWhoops\Provider\PhalconT )iWhoops\HandlerS -iWhoops\ExceptionR iWhoopsQ 5iWhoops\Provider\ZendP kglobalO  MarkdownN  Markdown
M  N\SL  NK  J  globalI 9 CloverXMLGeneratorTestH 5 Tester\Runner\OutputG ' Tester\RunnerF  Tester%E I Tester\CodeCoverage\GeneratorsD 3 Tester\CodeCoverage
C  N\SB  NA  @  global? 9 CloverXMLGeneratorTest> 5 Tester\Runner\Output= ' Tester\Runner<  Tester%; I Tester\CodeCoverage\Generators: 3 Tester\CodeCoverage9 1 Nette\Localization8  Nette7 # Nette\Utils6 + Nette\Iterators5 1 Nette\PhpGenerator4 ! Nette\Neon3 3 rNette\DI\Extensions2 + rNette\DI\Config1 = rNette\DI\Config\Adapters0  rNette\DI/ 7 rNette\Bridges\DITracy. 3 xNette\DI\Extensions- + xNette\DI\Config, = xNette\DI\Config\Adapters+  xNette\DI* 7 xNette\Bridges\DITracy)  global;( wqSymfony\Component\Security\Core\Validator\Constraints*' UqSymfony\Component\Security\Core\Util*& UqSymfony\Component\Security\Core\UserB% qSymfony\Component\Security\Core\Tests\Validator\ConstraintsJ$ qAcme\DemoBundle\Proxy\__CG__\Symfony\Component\Security\Core\Tests\0# aqSymfony\Component\Security\Core\Tests\Util0" aqSymfony\Component\Security\Core\Tests\User0! aqSymfony\Component\Security\Core\Tests\Role+  WqSymfony\Component\Security\Core\Tests5 kqSymfony\Component\Security\Core\Tests\Exception3 gqSymfony\Component\Security\Core\Tests\Encoder? qSymfony\Component\Security\Core\Tests\Authorization\Voter9 sqSymfony\Component\Security\Core\Tests\AuthorizationI qSymfony\Component\Security\Core\Tests\Authentication\Token\StorageA qSymfony\Component\Security\Core\Tests\Authentication\TokenF qSymfony\Component\Security\Core\Tests\Authentication\RememberMeD qSymfony\Component\Security\Core\Tests\Authentication\Provider: uqSymfony\Component\Security\Core\Tests\Authentication* UqSymfony\Component\Security\Core\Role/ _qSymfony\Component\Security\Core\Exception+ WqSymfony\Component\Security\Core\Event- [qSymfony\Component\Security\Core\Encoder9 sqSymfony\Component\Security\Core\Authorization\Voter3 gqSymfony\Component\Security\Core\Authorization% KqSymfony\Component\Security\CoreC qSymfony\Component\Security\Core\Authentication\Token\Storage: uqSymfony\Component\Security\Core\Authentication\Token? qSymfony\Component\Security\Core\Authentication\RememberMe= {qSymfony\Component\Security\Core\Authentication\Provider4 iqSymfony\Component\Security\Core\Authentication6
 moSymfony\Component\HttpKernel\Tests\Profiler\Mock1	 coSymfony\Component\HttpKernel\Tests\Profiler2 eoSymfony\Component\HttpKernel\Tests\HttpCache1 coSymfony\Component\HttpKernel\Tests\Fragment1 coSymfony\Component\HttpKernel\Tests\Fixtures   o jEh=nBg5hK7 




c
D
%
					d	<	n> jO-sP/xP={_;yO&`>$Y9                            j  Sglobal$i G SCartalyst\Sentry\Users\Kohanah 9 SCartalyst\Sentry\Users&g K SCartalyst\Sentry\Users\Eloquent)f Q SCartalyst\Sentry\Throttling\Kohana"e C SCartalyst\Sentry\Throttling+d U SCartalyst\Sentry\Throttling\Eloquent c ? SCartalyst\Sentry\Sessionsb - SCartalyst\Sentrya = SCartalyst\Sentry\Hashing%` I SCartalyst\Sentry\Groups\Kohana_ ; SCartalyst\Sentry\Groups'^ M SCartalyst\Sentry\Groups\Eloquent&] K SCartalyst\Sentry\Facades\Native'\ M SCartalyst\Sentry\Facades\Laravel&[ K SCartalyst\Sentry\Facades\Kohana'Z M SCartalyst\Sentry\Facades\FuelPHPY = SCartalyst\Sentry\Facades"X C SCartalyst\Sentry\Facades\CIW = SCartalyst\Sentry\CookiesV  Jglobal U ? Illuminate\Support\Traits#T E Illuminate\Support\Contracts!S A Illuminate\Support\FacadesR 1 Illuminate\SupportQ  ĺglobalP % ĺBkwld\Croppa'O M VSymfony\CS\Tokenizer\TransformerN 5 VSymfony\CS\Tokenizer-M Y VSymfony\CS\Tests\Tokenizer\Transformer!L A VSymfony\CS\Tests\TokenizerK  VTest\AAaa%J I VSymfony\CS\Tests\Fixer\Symfony"I C VSymfony\CS\Tests\Fixer\PSR2"H C VSymfony\CS\Tests\Fixer\PSR1"G C VSymfony\CS\Tests\Fixer\PSR0%F I VSymfony\CS\Tests\Fixer\ContribE 9 VSymfony\CS\Tests\FixerD ; VSymfony\CS\Tests\Finder C ? VSymfony\CS\Tests\DocBlockB ; VSymfony\CS\Tests\ConfigA - VSymfony\CS\Tests@ = VSymfony\CS\Fixer\Symfony? 7 VSymfony\CS\Fixer\PSR2> 7 VSymfony\CS\Fixer\PSR1= 7 VSymfony\CS\Fixer\PSR0< = VSymfony\CS\Fixer\Contrib; / VSymfony\CS\Finder: 3 VSymfony\CS\DocBlock!9 A VSymfony\CS\Console\Command8 1 VSymfony\CS\Console7 / VSymfony\CS\Config6 ! VSymfony\CS'5 M WSymfony\CS\Tokenizer\Transformer4 5 WSymfony\CS\Tokenizer-3 Y WSymfony\CS\Tests\Tokenizer\Transformer!2 A WSymfony\CS\Tests\Tokenizer1  WTest\AAaa%0 I WSymfony\CS\Tests\Fixer\Symfony"/ C WSymfony\CS\Tests\Fixer\PSR2". C WSymfony\CS\Tests\Fixer\PSR1"- C WSymfony\CS\Tests\Fixer\PSR0%, I WSymfony\CS\Tests\Fixer\Contrib+ 9 WSymfony\CS\Tests\Fixer* ; WSymfony\CS\Tests\Finder ) ? WSymfony\CS\Tests\DocBlock( ; WSymfony\CS\Tests\Config' - WSymfony\CS\Tests& = WSymfony\CS\Fixer\Symfony% 7 WSymfony\CS\Fixer\PSR2$ 7 WSymfony\CS\Fixer\PSR1# 7 WSymfony\CS\Fixer\PSR0" = WSymfony\CS\Fixer\Contrib! / WSymfony\CS\Finder  3 WSymfony\CS\DocBlock! A WSymfony\CS\Console\Command 1 WSymfony\CS\Console / WSymfony\CS\Config ! WSymfony\CS 5Cilex\Tests\Provider 3Cilex\Tests\Command #Cilex\Tests )Cilex\Provider 'Cilex\Command Cilex) SPuSymfony\Component\CssSelector\XPath3 gPuSymfony\Component\CssSelector\XPath\Extension/ _PuSymfony\Component\CssSelector\Tests\XPath9 sPuSymfony\Component\CssSelector\Tests\Parser\Shortcut0 aPuSymfony\Component\CssSelector\Tests\Parser8 qPuSymfony\Component\CssSelector\Tests\Parser\Handler. ]PuSymfony\Component\CssSelector\Tests\Node) SPuSymfony\Component\CssSelector\Tests4 iPuSymfony\Component\CssSelector\Parser\Tokenizer3 gPuSymfony\Component\CssSelector\Parser\Shortcut* UPuSymfony\Component\CssSelector\Parser2
 ePuSymfony\Component\CssSelector\Parser\Handler(	 QPuSymfony\Component\CssSelector\Node- [PuSymfony\Component\CssSelector\Exception# GPuSymfony\Component\CssSelector. ]QSymfony\Component\DomCrawler\Tests\Field( QQSymfony\Component\DomCrawler\Tests( QQSymfony\Component\DomCrawler\Field" EQSymfony\Component\DomCrawler" C Acme\DemoLib\Lets\Go\Deeper % Acme\DemoLib   ClassCons
  Foo~ # Namespaced2} ! Namespaced|  ClassMap   r  d:sK)mD$cS5fI,





i
N
3
						^	D	%	yfL3~`G$V;{P"k5V+N w\<                     \ )[Aws\CloudFront"[ E[Aws\CloudFormation\ExceptionZ ;[Aws\CloudFormation\EnumY 1[Aws\CloudFormationX ?[Aws\AutoScaling\ExceptionW 5[Aws\AutoScaling\EnumV +[Aws\AutoScaling"U C BigName\BackupManager\Tasks*T S BigName\BackupManager\Tasks\Storage+S U BigName\BackupManager\Tasks\Database.R [ BigName\BackupManager\Tasks\Compression,Q W BigName\BackupManager\ShellProcessing'P M BigName\BackupManager\ProceduresO 7 BigName\BackupManager1N a BigName\BackupManager\Integrations\Laravel(M O BigName\BackupManager\Filesystems&L K BigName\BackupManager\Databases#K E BigName\BackupManager\Config(J O BigName\BackupManager\Compressors/I ] spec\BigName\BackupManager\Tasks\Storage0H _ spec\BigName\BackupManager\Tasks\Database3G e spec\BigName\BackupManager\Tasks\Compression1F a spec\BigName\BackupManager\ShellProcessing,E W spec\BigName\BackupManager\Procedures!D A spec\BigName\BackupManager-C Y spec\BigName\BackupManager\Filesystems+B U spec\BigName\BackupManager\Databases(A O spec\BigName\BackupManager\Config-@ Y spec\BigName\BackupManager\Compressors? 7 GuzzleHttp\Tests\Http(> O GuzzleHttp\Tests\Stream\Exception= ; GuzzleHttp\Tests\Stream"< C GuzzleHttp\Stream\Exception; / GuzzleHttp\Stream&: MMGuzzleHttp\Tests\Plugin\Redirect!9 CMGuzzleHttp\Tests\Subscriber8 7MGuzzleHttp\Tests\Post7 =MGuzzleHttp\Tests\Message 6 AMGuzzleHttp\tests\Exception5 9MGuzzleHttp\Tests\Event 4 AMGuzzleHttp\Tests\CookieJar3 -MGuzzleHttp\Tests2 7MGuzzleHttp\Tests\Http1 =MGuzzleHttp\Tests\Adapter#0 GMGuzzleHttp\Tests\Adapter\Curl/ 7MGuzzleHttp\Subscriber. +MGuzzleHttp\Post- 1MGuzzleHttp\Message, 5MGuzzleHttp\Exception+ -MGuzzleHttp\Event* /MGuzzleHttp\Cookie) !MGuzzleHttp( 1MGuzzleHttp\Adapter' ;MGuzzleHttp\Adapter\Curl& - Eluceo\iCal\Util!% A Eluceo\iCal\Property\Event$ 5 Eluceo\iCal\Property# # Eluceo\iCal" 7 Eluceo\iCal\Component! -  Eluceo\iCal\Util!  A  Eluceo\iCal\Property\Event 5  Eluceo\iCal\Property #  Eluceo\iCal 7  Eluceo\iCal\Component! A TIlluminate\Session\Console 1 TIlluminate\Session 7 Illuminate\Encryption / nIlluminate\Cookie / Illuminate\Config = #Illuminate\Cache\Console - #Illuminate\Cache  ʑglobal" C ʑKrucas\Notification\Facades 3 ʑKrucas\Notification  ʒglobal" C ʒKrucas\Notification\Facades 3 ʒKrucas\Notification 3 Dimsav\Translatable% I Dimsav\Translatable\Test\Model  global + Illuminate\View ; Illuminate\View\Engines 
 ? Illuminate\View\Compilers	 7 Illuminate\Filesystem / aIlluminate\Events 5 TIlluminate\Container  global" C DaveJamesMiller\Breadcrumbs  ŏglobal = ŏCviebrock\ImageValidator  RFuel\Core 9 RCartalyst\Sentry\Tests   Rglobal$ G RCartalyst\Sentry\Users\Kohana~ 9 RCartalyst\Sentry\Users&} K RCartalyst\Sentry\Users\Eloquent)| Q RCartalyst\Sentry\Throttling\Kohana"{ C RCartalyst\Sentry\Throttling+z U RCartalyst\Sentry\Throttling\Eloquent y ? RCartalyst\Sentry\Sessionsx - RCartalyst\Sentryw = RCartalyst\Sentry\Hashing%v I RCartalyst\Sentry\Groups\Kohanau ; RCartalyst\Sentry\Groups't M RCartalyst\Sentry\Groups\Eloquent&s K RCartalyst\Sentry\Facades\Native'r M RCartalyst\Sentry\Facades\Laravel&q K RCartalyst\Sentry\Facades\Kohana'p M RCartalyst\Sentry\Facades\FuelPHPo = RCartalyst\Sentry\Facades"n C RCartalyst\Sentry\Facades\CIm = RCartalyst\Sentry\Cookiesl  SFuel\Corek 9 SCartalyst\Sentry\Tests   ) wZ8fK&z^8 b>$x[A'




q
W
8
						d	I	!pV=-uS,u[B$fM4fL-rT@ u`;'oN>)                 d %[Aws\Sqs\Enumc [Aws\Snsb =[Aws\Sns\MessageValidator(a Q[Aws\Sns\MessageValidator\Exception` /[Aws\Sns\Exception_ %[Aws\SimpleDb^ 9[Aws\SimpleDb\Exception] [Aws\Ses\ /[Aws\Ses\Exception[ %[Aws\Ses\EnumZ #[Aws\S3\Sync"Y E[Aws\S3\Model\MultipartUploadX %[Aws\S3\ModelW +[Aws\S3\IteratorV ;[Aws\S3\Exception\ParserU -[Aws\S3\ExceptionT #[Aws\S3\EnumS )[Aws\S3\CommandR [Aws\S3Q 1[Aws\Route53Domains"P E[Aws\Route53Domains\ExceptionO #[Aws\Route53N 7[Aws\Route53\ExceptionM -[Aws\Route53\EnumL %[Aws\RedshiftK 9[Aws\Redshift\ExceptionJ /[Aws\Redshift\EnumI [Aws\RdsH /[Aws\Rds\ExceptionG %[Aws\Rds\EnumF %[Aws\OpsWorksE 9[Aws\OpsWorks\ExceptionD /[Aws\OpsWorks\EnumC 3[Aws\MachineLearning#B G[Aws\MachineLearning\ExceptionA ![Aws\Lambda@ 5[Aws\Lambda\Exception? [Aws\Kms> /[Aws\Kms\Exception= #[Aws\Kinesis< 7[Aws\Kinesis\Exception; -[Aws\Kinesis\Enum: -[Aws\ImportExport 9 A[Aws\ImportExport\Exception8 7[Aws\ImportExport\Enum7 [Aws\Iam6 /[Aws\Iam\Exception5 %[Aws\Iam\Enum'4 O[Aws\Glacier\Model\MultipartUpload3 #[Aws\Glacier2 7[Aws\Glacier\Exception1 -[Aws\Glacier\Enum0 /[Aws\Emr\Exception/ %[Aws\Emr\Enum. [Aws\Emr%- K[Aws\ElasticTranscoder\Exception, 7[Aws\ElasticTranscoder(+ Q[Aws\ElasticLoadBalancing\Exception* =[Aws\ElasticLoadBalancing$) I[Aws\ElasticBeanstalk\Exception( ?[Aws\ElasticBeanstalk\Enum' 5[Aws\ElasticBeanstalk& ?[Aws\ElastiCache\Exception% 5[Aws\ElastiCache\Enum$ +[Aws\ElastiCache# /[Aws\Efs\Exception" [Aws\Efs! /[Aws\Ecs\Exception  [Aws\Ecs -[Aws\Ec2\Iterator /[Aws\Ec2\Exception %[Aws\Ec2\Enum [Aws\Ec2# G[Aws\DynamoDbStreams\Exception 3[Aws\DynamoDbStreams 5[Aws\DynamoDb\Session* U[Aws\DynamoDb\Session\LockingStrategy% K[Aws\DynamoDb\Model\BatchRequest 1[Aws\DynamoDb\Model 7[Aws\DynamoDb\Iterator 9[Aws\DynamoDb\Exception /[Aws\DynamoDb\Enum %[Aws\DynamoDb$ I[Aws\DirectoryService\Exception 5[Aws\DirectoryService! C[Aws\DirectConnect\Exception 9[Aws\DirectConnect\Enum /[Aws\DirectConnect =[Aws\DeviceFarm\Exception )[Aws\DeviceFarm 
 A[Aws\DataPipeline\Exception	 7[Aws\DataPipeline\Enum -[Aws\DataPipeline! C[Aws\ConfigService\Exception /[Aws\ConfigService /[Aws\Common\Waiter 5[Aws\Common\Signature& M[Aws\Common\Model\MultipartUpload 3[Aws\Common\Iterator( Q[Aws\Common\InstanceMetadata\Waiter!  C[Aws\Common\InstanceMetadata +[Aws\Common\Hash~ /[Aws\Common\Facade!} C[Aws\Common\Exception\Parser| 5[Aws\Common\Exception{ +[Aws\Common\Enumz 9[Aws\Common\Credentialsy 1[Aws\Common\Commandx /[Aws\Common\Clientw ![Aws\Commonv ?[Aws\CognitoSync\Exceptionu +[Aws\CognitoSync#t G[Aws\CognitoIdentity\Exceptions 3[Aws\CognitoIdentity r A[Aws\CodePipeline\Exceptionq -[Aws\CodePipelinep =[Aws\CodeDeploy\Exceptiono )[Aws\CodeDeployn =[Aws\CodeCommit\Exceptionm )[Aws\CodeCommit"l E[Aws\CloudWatchLogs\Exceptionk 1[Aws\CloudWatchLogsj =[Aws\CloudWatch\Exceptioni 3[Aws\CloudWatch\Enumh )[Aws\CloudWatchg =[Aws\CloudTrail\Exceptionf )[Aws\CloudTrail%e K[Aws\CloudSearchDomain\Exceptiond 7[Aws\CloudSearchDomainc ?[Aws\CloudSearch\Exceptionb 5[Aws\CloudSearch\Enuma +[Aws\CloudSearch` 9[Aws\CloudHsm\Exception_ %[Aws\CloudHsm^ =[Aws\CloudFront\Exception] 3[Aws\CloudFront\Enum   s  gL2"yIm9sM$|M



z
`
?
 							t	]	0	 ^6kP3_:jGd<z\C"w]:|Y:             W ?iWIlluminate\View\CompilersV 7iWIlluminate\ValidationU 9iWIlluminate\Translation T AiWIlluminate\Support\FacadesS 1iWIlluminate\Support R AiWIlluminate\Session\ConsoleQ 1iWIlluminate\Session!P CiWIlluminate\Routing\Matching#O GiWIlluminate\Routing\GeneratorsN 1iWIlluminate\Routing M AiWIlluminate\Routing\ConsoleL /iWIlluminate\RemoteK -iWIlluminate\RedisJ 7iWIlluminate\Queue\JobsI iWglobalH ;iWIlluminate\Queue\FailedG =iWIlluminate\Queue\Console!F CiWIlluminate\Queue\ConnectorsE =iWIlluminate\Queue\CapsuleD -iWIlluminate\QueueC 7iWIlluminate\PaginationB ?iWIlluminate\Mail\TransportA +iWIlluminate\Mail@ )iWIlluminate\Log? +iWIlluminate\Http> +iWIlluminate\Html= 1iWIlluminate\Hashing#< GiWIlluminate\Foundation\Testing%; KiWIlluminate\Foundation\Providers#: GiWIlluminate\Foundation\Console9 7iWIlluminate\Foundation8 7iWIlluminate\Filesystem7 5iWIlluminate\Exception6 /iWIlluminate\Events5 7iWIlluminate\Encryption)4 SiWIlluminate\Database\Schema\Grammars 3 AiWIlluminate\Database\Schema*2 UiWIlluminate\Database\Query\Processors(1 QiWIlluminate\Database\Query\Grammars0 ?iWIlluminate\Database\Query$/ IiWIlluminate\Database\Migrations,. YiWIlluminate\Database\Eloquent\Relations"- EiWIlluminate\Database\Eloquent!, CiWIlluminate\Database\Console,+ YiWIlluminate\Database\Console\Migrations$* IiWIlluminate\Database\Connectors) 3iWIlluminate\Database!( CiWIlluminate\Database\Capsule' /iWIlluminate\Cookie& 5iWIlluminate\Container% 1iWIlluminate\Console$ /iWIlluminate\Config# =iWIlluminate\Cache\Console" -iWIlluminate\Cache! ?iWIlluminate\Auth\Reminders  ;iWIlluminate\Auth\Console +iWIlluminate\Auth 3 Laracasts\Utilities% I Laracasts\Utilities\JavaScript- Y Laracasts\Utilities\JavaScript\Facades* S spec\Laracasts\Utilities\JavaScript 3 Laracasts\Utilities% I Laracasts\Utilities\JavaScript- Y Laracasts\Utilities\JavaScript\Facades* S spec\Laracasts\Utilities\JavaScript ' 
EasyCSV\Tests  
EasyCSV ' EasyCSV\Tests  EasyCSV  global 1 RJenssegers\Rollbar 1 [Jenssegers\Rollbar( O League\Flysystem\Adapter\Polyfill 7 League\Flysystem\Util ; League\Flysystem\Plugin - League\Flysystem = League\Flysystem\Adapter"
 C BigName\BackupManager\Tasks*	 S BigName\BackupManager\Tasks\Storage+ U BigName\BackupManager\Tasks\Database. [ BigName\BackupManager\Tasks\Compression, W BigName\BackupManager\ShellProcessing' M BigName\BackupManager\Procedures 7 BigName\BackupManager1 a BigName\BackupManager\Integrations\Laravel( O BigName\BackupManager\Filesystems& K BigName\BackupManager\Databases#  E BigName\BackupManager\Config( O BigName\BackupManager\Compressors/~ ] spec\BigName\BackupManager\Tasks\Storage0} _ spec\BigName\BackupManager\Tasks\Database3| e spec\BigName\BackupManager\Tasks\Compression1{ a spec\BigName\BackupManager\ShellProcessing,z W spec\BigName\BackupManager\Procedures!y A spec\BigName\BackupManager-x Y spec\BigName\BackupManager\Filesystems+w U spec\BigName\BackupManager\Databases(v O spec\BigName\BackupManager\Config-u Y spec\BigName\BackupManager\Compressorst )[Aws\WorkSpacess =[Aws\WorkSpaces\Exceptionr [Aws\Swfq /[Aws\Swf\Exceptionp %[Aws\Swf\Enumo #[Aws\Supportn 7[Aws\Support\Exceptionm [Aws\Stsl /[Aws\Sts\Exceptionk 1[Aws\StorageGateway"j E[Aws\StorageGateway\Exceptioni ;[Aws\StorageGateway\Enumh [Aws\Ssmg /[Aws\Ssm\Exceptionf [Aws\Sqse /[Aws\Sqs\Exception   x a?%_9v[5%d=rH#




{
W
7
%
					_	<	$	lK)p`A'u`J;.U9tP z]@rX3]F.                      O ;>PhpSpec\Console\CommandN +>PhpSpec\ConsoleM )>PhpSpec\Config"L E>PhpSpec\CodeGenerator\WriterK 7>PhpSpec\CodeGenerator%J K>PhpSpec\CodeGenerator\GeneratorI 5>PhpSpec\CodeAnalysisH 5>spec\PhpSpec\Wrapper.G ]>spec\PhpSpec\Wrapper\Subject\Expectation"F E>spec\PhpSpec\Wrapper\SubjectE />spec\PhpSpec\UtilD %>spec\PhpSpec$C I>spec\PhpSpec\Runner\MaintainerB 3>spec\PhpSpec\Runner#A G>spec\PhpSpec\Process\ReRunner(@ Q>spec\PhpSpec\Process\Prerequisites"? E>spec\PhpSpec\Process\Context> 5>spec\PhpSpec\Matcher= 5>spec\PhpSpec\Locator< ?>spec\PhpSpec\Locator\PSR0; 3>spec\PhpSpec\Loader: =>spec\PhpSpec\Loader\Node9 7>spec\PhpSpec\Listener&8 M>spec\PhpSpec\Formatter\Presenter-7 [>spec\PhpSpec\Formatter\Presenter\Differ!6 C>spec\PhpSpec\Formatter\Html5 9>spec\PhpSpec\Formatter%4 K>spec\PhpSpec\Exception\Fracture3 9>spec\PhpSpec\Exception$2 I>spec\PhpSpec\Exception\Example1 1>spec\PhpSpec\Event0 5>spec\PhpSpec\Console/ 3>spec\PhpSpec\Config'. O>spec\PhpSpec\CodeGenerator\Writer - A>spec\PhpSpec\CodeGenerator*, U>spec\PhpSpec\CodeGenerator\Generator+ ?>spec\PhpSpec\CodeAnalysis** U>integration\PhpSpec\Console\Prompter) >Matcher
( >Fake' >global& '6Mockery\Tests% %6test\Mockery4$ i6Mockery\Test\Generator\StringManipulation\Pass# +6Mockery\Matcher" )6Mockery\Loader/! _6Mockery\Generator\StringManipulation\Pass  /6Mockery\Generator /6Mockery\Exception 96Mockery\CountValidator 6Mockery ;6Mockery\Adapter\Phpunit 6global  global 7 Way\Generators\Syntax 9 Way\Generators\Parsers ) Way\Generators  ? Way\Generators\Filesystem = Way\Generators\Compilers ; Way\Generators\Commands" C spec\Way\Generators\Parsers 3 spec\Way\Generators$ G spec\Way\Generators\Compilers  global 7 Way\Generators\Syntax 9 Way\Generators\Parsers ) Way\Generators  ? Way\Generators\Filesystem = Way\Generators\Compilers
 ; Way\Generators\Commands"	 C spec\Way\Generators\Parsers 3 spec\Way\Generators$ G spec\Way\Generators\Compilers - DebugBar\Storage  DebugBar 9 DebugBar\DataFormatter! A DebugBar\DataCollector\PDO 9 DebugBar\DataCollector 5 DebugBar\Bridge\Twig"  C DebugBar\Bridge\SwiftMailer + DebugBar\Bridge)~ Q Barryvdh\Debugbar\Twig\TokenParser"} C Barryvdh\Debugbar\Twig\Node'| M Barryvdh\Debugbar\Twig\Extension { ? Barryvdh\Debugbar\Storagez  global#y E Barryvdh\Debugbar\Middlewarex / Barryvdh\Debugbar+w U Barryvdh\Debugbar\DataCollector\Util&v K Barryvdh\Debugbar\DataCollector$u G Barryvdh\Debugbar\Controllers t ? Barryvdh\Debugbar\Console)s Q Barryvdh\Debugbar\Twig\TokenParser"r C Barryvdh\Debugbar\Twig\Node'q M Barryvdh\Debugbar\Twig\Extension p ? Barryvdh\Debugbar\Storageo  global#n E Barryvdh\Debugbar\Middlewarem / Barryvdh\Debugbar+l U Barryvdh\Debugbar\DataCollector\Util&k K Barryvdh\Debugbar\DataCollector$j G Barryvdh\Debugbar\Controllers i ? Barryvdh\Debugbar\Consoleh = thomaswelton\GravatarLib#g E Thomaswelton\LaravelGravatar+f U Thomaswelton\LaravelGravatar\Facadese  )globald ) )Roumen\Sitemapc  +globalb ) +Roumen\Sitemapa ' ޖMsurguy\Tests` - ޖMsurguy\Honeypot_ ' ޚMsurguy\Tests^ - ޚMsurguy\Honeypot] ?iWIlluminate\Support\Traits"\ EiWIlluminate\Support\Contracts[ 5iWIlluminate\Workbench"Z EiWIlluminate\Workbench\ConsoleY +iWIlluminate\ViewX ;iWIlluminate\View\Engines   { jF$bI-sR;iV>.e/







_
2

				d	;	g4%e6~o`OC.|U0	|gH)
Z>lU8#qJ9#       J globalI |globalH % 	JShrink\TestG  	JShrink$F G |KevinGH\Box\Tests\Command\Key E ? |KevinGH\Box\Tests\CommandD / |KevinGH\Box\TestsC - |KevinGH\Box\TestB 1 |KevinGH\Box\HelperA ; |KevinGH\Box\Command\Key@ 3 |KevinGH\Box\Command? # |KevinGH\Box> 3 KevinGH\Amend\Tests= ' KevinGH\Amend&< K Herrera\Version\Tests\Exception; 7 Herrera\Version\Tests : ? Herrera\Version\Exception9 + Herrera\Version8 ?Herrera\Phar\Update\Tests)7 SHerrera\Phar\Update\Tests\Exception6 3Herrera\Phar\Update#5 GHerrera\Phar\Update\Exception"4 C Herrera\Box\Tests\Signature"3 C Herrera\Box\Tests\Exception"2 C Herrera\Box\Tests\Compactor1 / Herrera\Box\Tests0 7 Herrera\Box\Signature/ 7 Herrera\Box\Exception. 7 Herrera\Box\Compactor- # Herrera\Box , ? Herrera\Annotations\Tests(+ O Herrera\Annotations\Tests\Convert* = Herrera\Annotations\Test) 3 Herrera\Annotations$( G Herrera\Annotations\Exception"' C Herrera\Annotations\Convert$& G KevinGH\Box\Tests\Command\Key % ? KevinGH\Box\Tests\Command$ / KevinGH\Box\Tests# - KevinGH\Box\Test" 1 KevinGH\Box\Helper! ; KevinGH\Box\Command\Key  3 KevinGH\Box\Command # KevinGH\Box	 Foo My\Space global rglobal	 Foo My\Space global, Y:Symfony\Component\Console\Tests\Tester+ W:Symfony\Component\Console\Tests\Style, Y:Symfony\Component\Console\Tests\Output, Y:Symfony\Component\Console\Tests\Logger+ W:Symfony\Component\Console\Tests\Input, Y:Symfony\Component\Console\Tests\Helper/ _:Symfony\Component\Console\Tests\Formatter. ]:Symfony\Component\Console\Tests\Fixtures :global0 a:Symfony\Component\Console\Tests\Descriptor- [:Symfony\Component\Console\Tests\Command% K:Symfony\Component\Console\Tests& M:Symfony\Component\Console\Tester%
 K:Symfony\Component\Console\Style(	 Q:Symfony\Component\Console\Question& M:Symfony\Component\Console\Output& M:Symfony\Component\Console\Logger% K:Symfony\Component\Console\Input& M:Symfony\Component\Console\Helper) S:Symfony\Component\Console\Formatter% K:Symfony\Component\Console\Event* U:Symfony\Component\Console\Descriptor' O:Symfony\Component\Console\Command  ?:Symfony\Component\Console global~ global	} Foo| My\Space{ globalz  aglobal'y M aCodeClimate\Component\System\Git3x e aCodeClimate\Bundle\TestReporterBundle\Entity4w g aCodeClimate\Bundle\TestReporterBundle\Console4v g aCodeClimate\Bundle\TestReporterBundle\Command,u W aCodeClimate\Bundle\TestReporterBundle	t Foos My\Spacer globalq  globalp +>PhpSpec\Processo !>PhpSpec\IOn />PhpSpec\Extensionm 5>Phpspec\CodeAnalysis)l S>PhpSpec\Wrapper\Subject\Expectationk ;>PhpSpec\Wrapper\Subjectj +>PhpSpec\Wrapperi %>PhpSpec\Utilh ?>PhpSpec\Runner\Maintainerg )>PhpSpec\Runnerf =>PhpSpec\Process\ReRunner#e G>PhpSpec\Process\Prerequisitesd ;>PhpSpec\Process\Contextc >PhpSpecb +>PhpSpec\Matchera +>PhpSpec\Locator` 5>PhpSpec\Locator\PSR0_ )>PhpSpec\Loader^ 3>PhpSpec\Loader\Node] ->PhpSpec\Listener!\ C>PhpSpec\Formatter\Presenter([ Q>PhpSpec\Formatter\Presenter\DifferZ 9>PhpSpec\Formatter\HtmlY />PhpSpec\FormatterX +>PhpSpec\FactoryW ?>PhpSpec\Exception\WrapperV ?>PhpSpec\Exception\Locator!U C>PhpSpec\Exception\Generator T A>PhpSpec\Exception\FractureS />PhpSpec\ExceptionR ?>PhpSpec\Exception\ExampleQ '>PhpSpec\EventP =>PhpSpec\Console\Prompter    z`S>nS<!x]E'jF{\6




t
N
2
					_	3	^2qO7kU;gK/s]1sX< kF0 \H*    L -ZFToolTest\ModelK 5ZFToolTest\TestAssetJ !ZFToolTest(I OZFToolTest\Diagnostics\TestAssets'H MZFToolTest\Diagnostics\TestAssetG 9ZFToolTest\Diagnostics&F KZFToolTest\Diagnostics\Reporter#E EZFToolTest\Diagnostics\CheckD ZFToolC %ZFTool\Model"B CZFTool\Diagnostics\Reporter#A EZFTool\Diagnostics\Exception@ 1ZFTool\Diagnostics? /ZFTool\Controller> 5Hoa\Visitor\Registry= #Hoa\Visitor"< CHoa\Stream\Wrapper\IWrapper; 1Hoa\Stream\IStream: 1Hoa\Stream\Wrapper9 /Hoa\Stream\Filter8 !Hoa\Stream7 -Hoa\Math\Visitor6 Hoa\Math!5 AHoa\Math\Test\Unit\Visitor!4 AHoa\Math\Test\Unit\Sampler3 -Hoa\Math\Sampler2 1Hoa\Math\Exception)1 QHoa\Math\Combinatorics\Combination0 %Hoa\Math\Bin/ 9Hoa\Iterator\Recursive. - %Hoa\Iterator, 1Hoa\File\Temporary+ 'Hoa\File\Link* 1Hoa\File\Exception) Hoa\File( /Hoa\Core\Protocol' 1Hoa\Core\Parameter& 1Hoa\Core\Exception% )Hoa\Core\Event$ 'Hoa\Core\Data# Hoa\Core" 5Hoa\Core\Consistency! %Hoa\Core\Bin  5Hoa\Compiler\Visitor =Hoa\Compiler\Llk\Sampler 7Hoa\Compiler\Llk\Rule -Hoa\Compiler\Llk %Hoa\Compiler 9Hoa\Compiler\Exception -Hoa\Compiler\Bin <global global global ;	/Zend\Diactoros\Response 9	/Zend\Diactoros\Request =	/Zend\Diactoros\Exception )	/Zend\Diactoros =Ivory\HttpAdapter\Parser# EIvory\HttpAdapter\Normalizer  ?Ivory\HttpAdapter\Message" CIvory\HttpAdapter\Extractor$ GIvory\HttpAdapter\Event\Timer) QIvory\HttpAdapter\Event\Subscriber) QIvory\HttpAdapter\Event\StatusCode- YIvory\HttpAdapter\Event\Retry\Strategy$
 GIvory\HttpAdapter\Event\Retry'	 MIvory\HttpAdapter\Event\Redirect& KIvory\HttpAdapter\Event\History( OIvory\HttpAdapter\Event\Formatter) QIvory\HttpAdapter\Event\Cookie\Jar% IIvory\HttpAdapter\Event\Cookie( OIvory\HttpAdapter\Event\BasicAuth ;Ivory\HttpAdapter\Event ;Ivory\HttpAdapter\Asset /Ivory\HttpAdapter   ?React\Promise\PromiseTest 1React\Promise\Stub#~ EReact\Promise\PromiseAdapter} 'React\Promise| 7 GuzzleHttp\Tests\Http({ O GuzzleHttp\Tests\Stream\Exceptionz ; GuzzleHttp\Tests\Stream"y C GuzzleHttp\Stream\Exceptionx / GuzzleHttp\Stream#w EGuzzleHttp\Tests\Ring\Futurev 7GuzzleHttp\Tests\Ring#u EGuzzleHttp\Tests\Ring\Clientt 9GuzzleHttp\Ring\Future s ?GuzzleHttp\Ring\Exceptionr +GuzzleHttp\Ringq 9GuzzleHttp\Ring\Client&p MMyGuzzleHttp\Tests\Plugin\Redirect!o CMyGuzzleHttp\Tests\Subscribern 7MyGuzzleHttp\Tests\Postm =MyGuzzleHttp\Tests\Message l AMyGuzzleHttp\tests\Exceptionk 9MyGuzzleHttp\Tests\Event j AMyGuzzleHttp\Tests\CookieJari -MyGuzzleHttp\Testsh 7MyGuzzleHttp\Subscriberg +MyGuzzleHttp\Postf 1MyGuzzleHttp\Messagee 5MyGuzzleHttp\Exceptiond -MyGuzzleHttp\Eventc /MyGuzzleHttp\Cookieb !MyGuzzleHttpa 'Elasticsearch` #Thrift\Type_ -Thrift\Transport^ /Thrift\StringFunc] 'Thrift\Server\ /Thrift\Serializer[ +Thrift\ProtocolZ 5Thrift\Protocol\JSONY )Thrift\FactoryX -Thrift\ExceptionW 1Thrift\ClassLoaderV #Thrift\BaseU 'ElasticsearchT 7Fuel\Upload\ProvidersS #Fuel\Upload
R 6AcmeQ /6Monolog\ProcessorP 6Monolog$O I6Monolog\Handler\FingersCrossedN +6Monolog\HandlerM /6Monolog\Formatter	L FooK My\Space   t  Y3d<!nJ0i@ xY9



v
H
5

 					o	O	+	|`E;)nB&tZG,rS4LeA$_6e1          5@ imageekguy\atoum\iterators\recursives\directory1? amageekguy\atoum\iterators\recursives\atoum3> emageekguy\atoum\iterators\filters\recursives9= qmageekguy\atoum\iterators\filters\recursives\atoum< =mageekguy\atoum\includer; 1mageekguy\atoum\fs: ;mageekguy\atoum\fs\path&9 Kmageekguy\atoum\factory\builder)8 Qmageekguy\atoum\exceptions\runtime!7 Amageekguy\atoum\exceptions'6 Mmageekguy\atoum\exceptions\logic#5 Emageekguy\atoum\cli\commands"4 Cmageekguy\atoum\cli\command3 3mageekguy\atoum\cli!2 Amageekguy\atoum\autoloader01 _mageekguy\atoum\asserters\mock\exceptions 0 ?mageekguy\atoum\asserters3/ emageekguy\atoum\asserters\adapter\exceptions(. Omageekguy\atoum\asserters\adapter-- Ymageekguy\atoum\asserters\adapter\call5, imageekguy\atoum\asserters\adapter\call\manager8+ omageekguy\atoum\asserters\adapter\call\exceptions* =mageekguy\atoum\asserter") Cmageekguy\atoum\annotations( +mageekguy\atoum' #Hoa\Visitor& 7Hoa\Visitor\Test\Unit% 7qHoa\Ustring\Test\Unit$ #qHoa\Ustring# +qHoa\Ustring\Bin"" CHoa\Stream\Wrapper\IWrapper! 1Hoa\Stream\IStream  1Hoa\Stream\Wrapper /Hoa\Stream\Filter !Hoa\Stream /Hoa\Regex\Visitor Hoa\Regex -Hoa\Math\Visitor Hoa\Math! AHoa\Math\Test\Unit\Visitor! AHoa\Math\Test\Unit\Sampler; uHoa\Math\Test\Unit\Sampler\Combinatorics\Combination -Hoa\Math\Sampler 1Hoa\Math\Exception) QHoa\Math\Combinatorics\Combination %Hoa\Math\Bin 9Hoa\Iterator\Test\Unit 9Hoa\Iterator\Recursive %Hoa\Iterator 1Hoa\File\Temporary 'Hoa\File\Link 1Hoa\File\Exception Hoa\File 
 /Hoa\Core\Protocol	 1Hoa\Core\Parameter 1Hoa\Core\Exception )Hoa\Core\Event 'Hoa\Core\Data Hoa\Core 5Hoa\Core\Consistency %Hoa\Core\Bin 5Hoa\Compiler\Visitor! AHoa\Compiler\Test\Unit\Llk  9Hoa\Compiler\Test\Unit =Hoa\Compiler\Llk\Sampler~ 7Hoa\Compiler\Llk\Rule} -Hoa\Compiler\Llk| %Hoa\Compiler{ 9Hoa\Compiler\Exceptionz -Hoa\Compiler\Biny /Hoa\Regex\Visitorx Hoa\Regex+w UZendDiagnosticsTest\TestAsset\Result-v YZendDiagnosticsTest\TestAsset\Reporter*u SZendDiagnosticsTest\TestAsset\Checkt 3ZendDiagnosticsTests 9ZendDiagnostics\Runner&r KZendDiagnostics\Runner\Reporterq 9ZendDiagnostics\Resultp 7ZendDiagnostics\Check+o UZendDiagnosticsTest\TestAsset\Result-n YZendDiagnosticsTest\TestAsset\Reporter*m SZendDiagnosticsTest\TestAsset\Checkl 3ZendDiagnosticsTestk 9ZendDiagnostics\Runner&j KZendDiagnostics\Runner\Reporteri 9ZendDiagnostics\Resulth 7ZendDiagnostics\Checkg %sZend\Version f ?Zend\Text\Table\Exception e ?Zend\Text\Table\Decoratord +Zend\Text\Tablec Zend\Textb -Zend\Text\Figlet!a AZend\Text\Figlet\Exception` 3Zend\Text\Exception_ 1+Zend\File\Transfer#^ E+Zend\File\Transfer\Exception!] A+Zend\File\Transfer\Adapter\ 3+Zend\File\Exception[ +Zend\FileZ /Zend\Code\Scanner%Y IZend\Code\Reflection\Exception$X GZend\Code\Reflection\DocBlock(W OZend\Code\Reflection\DocBlock\TagV 5Zend\Code\ReflectionU Zend\Code"T CZend\Code\Generic\Prototype$S GZend\Code\Generator\Exception#R EZend\Code\Generator\DocBlock'Q MZend\Code\Generator\DocBlock\TagP 3Zend\Code\GeneratorO 3Zend\Code\Exception"N CZend\Code\Annotation\ParserM 5Zend\Code\Annotation   U  i@i;wF!xA
h1


p
9
			S	r5~EO! i?]5\'tV/`=                                     " Cmageekguy\atoum\tools\diffs 7mageekguy\atoum\tools! Amageekguy\atoum\tools\diff  ?mageekguy\atoum\test\mock% Imageekguy\atoum\test\generator& Kmageekguy\atoum\test\exceptions# Emageekguy\atoum\test\engines- Ymageekguy\atoum\test\assertion\manager% Imageekguy\atoum\test\assertion$ Gmageekguy\atoum\test\asserter 5mageekguy\atoum\test)
 Qmageekguy\atoum\test\adapter\calls#	 Emageekguy\atoum\test\adapter3 emageekguy\atoum\test\adapter\call\decorators( Omageekguy\atoum\test\adapter\call2 cmageekguy\atoum\test\adapter\call\arguments& Kmageekguy\atoum\template\parser =mageekguy\atoum\template& Kmageekguy\atoum\scripts\treemap0 _mageekguy\atoum\scripts\treemap\analyzers/ ]mageekguy\atoum\scripts\treemap\analyzer%  Imageekguy\atoum\scripts\tagger# Emageekguy\atoum\scripts\phar"~ Cmageekguy\atoum\scripts\git} ;mageekguy\atoum\scripts&| Kmageekguy\atoum\scripts\builder*{ Smageekguy\atoum\scripts\builder\vcsz 9mageekguy\atoum\script'y Mmageekguy\atoum\script\argumentsx 7mageekguy\atoum\scorew 9mageekguy\atoum\runner'v Mmageekguy\atoum\reports\realtime+u Umageekguy\atoum\reports\realtime\clit ;mageekguy\atoum\reports+s Umageekguy\atoum\reports\asynchronous-r Ymageekguy\atoum\report\fields\test\run0q _mageekguy\atoum\report\fields\test\memory/p ]mageekguy\atoum\report\fields\test\event)o Qmageekguy\atoum\report\fields\test2n cmageekguy\atoum\report\fields\test\duration6m kmageekguy\atoum\report\fields\runner\tests\void=l ymageekguy\atoum\report\fields\runner\tests\uncompleted9k qmageekguy\atoum\report\fields\runner\tests\skipped8j omageekguy\atoum\report\fields\runner\tests\memory:i smageekguy\atoum\report\fields\runner\tests\duration1h amageekguy\atoum\report\fields\runner\tests:g smageekguy\atoum\report\fields\runner\tests\coverage/f ]mageekguy\atoum\report\fields\runner\tap;e umageekguy\atoum\report\fields\runner\result\notifierBd mageekguy\atoum\report\fields\runner\result\notifier\image2c cmageekguy\atoum\report\fields\runner\result7b mmageekguy\atoum\report\fields\runner\php\version/a ]mageekguy\atoum\report\fields\runner\php4` gmageekguy\atoum\report\fields\runner\php\path3_ emageekguy\atoum\report\fields\runner\outputsB^ mageekguy\atoum\report\fields\runner\failures\execute\unixC] mageekguy\atoum\report\fields\runner\failures\execute\macos4\ gmageekguy\atoum\report\fields\runner\failures6[ kmageekguy\atoum\report\fields\runner\exceptions1Z amageekguy\atoum\report\fields\runner\event2Y cmageekguy\atoum\report\fields\runner\errors4X gmageekguy\atoum\report\fields\runner\duration4W gmageekguy\atoum\report\fields\runner\coverage+V Umageekguy\atoum\report\fields\runner1U amageekguy\atoum\report\fields\runner\atoum$T Gmageekguy\atoum\report\fieldsS 9mageekguy\atoum\report"R Cmageekguy\atoum\readers\std.Q [mageekguy\atoum\php\tokenizer\iterators$P Gmageekguy\atoum\php\tokenizer-O Ymageekguy\atoum\php\tokenizer\iterator!N Amageekguy\atoum\php\mocker)M Qmageekguy\atoum\php\mocker\adapterL 3mageekguy\atoum\php+K Umageekguy\atoum\mock\streams\fs\file0J _mageekguy\atoum\mock\streams\fs\directory&I Kmageekguy\atoum\mock\streams\fs1H amageekguy\atoum\mock\streams\fs\controller"G Cmageekguy\atoum\mock\streamF =mageekguy\atoum\mock\php&E Kmageekguy\atoum\mock\php\method,D Wmageekguy\atoum\mock\generator\methodC 5mageekguy\atoum\mock&B Kmageekguy\atoum\mock\controllerA ;mageekguy\atoum\mailers   E  fA1n&n,e4d/


O
			h	>	o/X O#f#\G s(V                                                    F\ 	mageekguy\atoum\tests\units\report\fields\runner\tests\skippedE[ mageekguy\atoum\tests\units\report\fields\runner\tests\memoryGZ mageekguy\atoum\tests\units\report\fields\runner\tests\durationGY mageekguy\atoum\tests\units\report\fields\runner\tests\coverage;X umageekguy\atoum\tests\units\report\fields\runner\tapHW mageekguy\atoum\tests\units\report\fields\runner\result\notifierIV mageekguy\atoum\tests\units\report\fields\runner\result\notifier\>U {mageekguy\atoum\tests\units\report\fields\runner\resultDT mageekguy\atoum\tests\units\report\fields\runner\php\version@S mageekguy\atoum\tests\units\report\fields\runner\php\path?R }mageekguy\atoum\tests\units\report\fields\runner\outputsJQ mageekguy\atoum\tests\units\report\fields\runner\failures\execute\@P mageekguy\atoum\tests\units\report\fields\runner\failuresCO mageekguy\atoum\tests\units\report\fields\runner\exceptions=N ymageekguy\atoum\tests\units\report\fields\runner\event>M {mageekguy\atoum\tests\units\report\fields\runner\errors@L mageekguy\atoum\tests\units\report\fields\runner\duration7K mmageekguy\atoum\tests\units\report\fields\runner@J mageekguy\atoum\tests\units\report\fields\runner\coverage=I ymageekguy\atoum\tests\units\report\fields\runner\atoum)H Qmageekguy\atoum\tests\units\report.G [mageekguy\atoum\tests\units\readers\std:F smageekguy\atoum\tests\units\php\tokenizer\iterators0E _mageekguy\atoum\tests\units\php\tokenizer-D Ymageekguy\atoum\tests\units\php\mocker5C imageekguy\atoum\tests\units\php\mocker\adapter&B Kmageekguy\atoum\tests\units\php7A mmageekguy\atoum\tests\units\mock\streams\fs\file<@ wmageekguy\atoum\tests\units\mock\streams\fs\directory2? cmageekguy\atoum\tests\units\mock\streams\fs=> ymageekguy\atoum\tests\units\mock\streams\fs\controller.= [mageekguy\atoum\tests\units\mock\stream+< Umageekguy\atoum\tests\units\mock\php2; cmageekguy\atoum\tests\units\mock\php\method8: omageekguy\atoum\tests\units\mock\generator\method'9 Mmageekguy\atoum\tests\units\mock28 cmageekguy\atoum\tests\units\mock\controller*7 Smageekguy\atoum\tests\units\mailersB6 mageekguy\atoum\tests\units\iterators\recursives\directory=5 ymageekguy\atoum\tests\units\iterators\recursives\atoum?4 }mageekguy\atoum\tests\units\iterators\filters\recursivesF3 	mageekguy\atoum\tests\units\iterators\filters\recursives\atoum%2 Imageekguy\atoum\tests\units\fs*1 Smageekguy\atoum\tests\units\fs\path20 cmageekguy\atoum\tests\units\factory\builder5/ imageekguy\atoum\tests\units\exceptions\runtime-. Ymageekguy\atoum\tests\units\exceptions3- emageekguy\atoum\tests\units\exceptions\logic/, ]mageekguy\atoum\tests\units\cli\commands.+ [mageekguy\atoum\tests\units\cli\command&* Kmageekguy\atoum\tests\units\cli-) Ymageekguy\atoum\tests\units\autoloader<( wmageekguy\atoum\tests\units\asserters\mock\exceptions,' Wmageekguy\atoum\tests\units\asserters?& }mageekguy\atoum\tests\units\asserters\adapter\exceptions4% gmageekguy\atoum\tests\units\asserters\adapter9$ qmageekguy\atoum\tests\units\asserters\adapter\callB# mageekguy\atoum\tests\units\asserters\adapter\call\managerE" mageekguy\atoum\tests\units\asserters\adapter\call\exceptions+! Umageekguy\atoum\tests\units\asserter.  [mageekguy\atoum\tests\units\annotations" Cmageekguy\atoum\tests\units< wmageekguy\atoum\tests\units\asserters\template\parser global" Cmageekguy\atoum\writers\std# Emageekguy\atoum\writers\http ;mageekguy\atoum\writers( Omageekguy\atoum\writer\decorators% Imageekguy\atoum\tools\variable   T  s2y?vKR yK



_
'				[	'o>
ukV5kI{E"c9a%b9|H                +0 Umageekguy\atoum\mock\streams\fs\file0/ _mageekguy\atoum\mock\streams\fs\directory&. Kmageekguy\atoum\mock\streams\fs1- amageekguy\atoum\mock\streams\fs\controller", Cmageekguy\atoum\mock\stream+ =mageekguy\atoum\mock\php&* Kmageekguy\atoum\mock\php\method,) Wmageekguy\atoum\mock\generator\method( 5mageekguy\atoum\mock&' Kmageekguy\atoum\mock\controller& ;mageekguy\atoum\mailers5% imageekguy\atoum\iterators\recursives\directory1$ amageekguy\atoum\iterators\recursives\atoum3# emageekguy\atoum\iterators\filters\recursives9" qmageekguy\atoum\iterators\filters\recursives\atoum! =mageekguy\atoum\includer  1mageekguy\atoum\fs ;mageekguy\atoum\fs\path& Kmageekguy\atoum\factory\builder) Qmageekguy\atoum\exceptions\runtime! Amageekguy\atoum\exceptions' Mmageekguy\atoum\exceptions\logic# Emageekguy\atoum\cli\commands" Cmageekguy\atoum\cli\command 3mageekguy\atoum\cli! Amageekguy\atoum\autoloader0 _mageekguy\atoum\asserters\mock\exceptions  ?mageekguy\atoum\asserters3 emageekguy\atoum\asserters\adapter\exceptions( Omageekguy\atoum\asserters\adapter- Ymageekguy\atoum\asserters\adapter\call5 imageekguy\atoum\asserters\adapter\call\manager8 omageekguy\atoum\asserters\adapter\call\exceptions =mageekguy\atoum\asserter" Cmageekguy\atoum\annotations +mageekguy\atoum 9mageekguy\atoum\writer% Imageekguy\atoum\report\writers 
 ?mageekguy\atoum\observers	 ;mageekguy\atoum\factory ;mageekguy\atoum\adapter #tests\units . [mageekguy\atoum\tests\units\writers\std* Smageekguy\atoum\tests\units\writers4 gmageekguy\atoum\tests\units\writer\decorators1 amageekguy\atoum\tests\units\tools\variable. [mageekguy\atoum\tests\units\tools\diffs(  Omageekguy\atoum\tests\units\tools- Ymageekguy\atoum\tests\units\tools\diff+~ Umageekguy\atoum\mock\mageekguy\atoum,} Wmageekguy\atoum\tests\units\test\mock1| amageekguy\atoum\tests\units\test\generator/{ ]mageekguy\atoum\tests\units\test\engines9z qmageekguy\atoum\tests\units\test\assertion\manager1y amageekguy\atoum\tests\units\test\assertion'x Mmageekguy\atoum\tests\units\test5w imageekguy\atoum\tests\units\test\adapter\calls/v ]mageekguy\atoum\tests\units\test\adapter?u }mageekguy\atoum\tests\units\test\adapter\call\decorators4t gmageekguy\atoum\tests\units\test\adapter\call>s {mageekguy\atoum\tests\units\test\adapter\call\arguments+r Umageekguy\atoum\tests\units\template2q cmageekguy\atoum\tests\units\scripts\treemap;p umageekguy\atoum\tests\units\scripts\treemap\analyzer1o amageekguy\atoum\tests\units\scripts\tagger/n ]mageekguy\atoum\tests\units\scripts\phar.m [mageekguy\atoum\tests\units\scripts\git*l Smageekguy\atoum\tests\units\scripts6k kmageekguy\atoum\tests\units\scripts\builder\vcs)j Qmageekguy\atoum\tests\units\script3i emageekguy\atoum\tests\units\script\arguments(h Omageekguy\atoum\tests\units\score)g Qmageekguy\atoum\tests\units\runner3f emageekguy\atoum\tests\units\reports\realtime7e mmageekguy\atoum\tests\units\reports\realtime\cli*d Smageekguy\atoum\tests\units\reports7c mmageekguy\atoum\tests\units\reports\asynchronous9b qmageekguy\atoum\tests\units\report\fields\test\run<a wmageekguy\atoum\tests\units\report\fields\test\memory;` umageekguy\atoum\tests\units\report\fields\test\event>_ {mageekguy\atoum\tests\units\report\fields\test\durationJ^ mageekguy\atoum\tests\units\report\fields\runner\tests\uncompleted=] ymageekguy\atoum\tests\units\report\fields\runner\tests   U  c<k=f-k5]


k
7				C	
wDmM.mH"lJ!e9vM%rG& g6               E mageekguy\atoum\tests\units\asserters\adapter\call\exceptions+ Umageekguy\atoum\tests\units\asserter. [mageekguy\atoum\tests\units\annotations" Cmageekguy\atoum\tests\units< wmageekguy\atoum\tests\units\asserters\template\parser  global" Cmageekguy\atoum\writers\std#~ Emageekguy\atoum\writers\http} ;mageekguy\atoum\writers(| Omageekguy\atoum\writer\decorators%{ Imageekguy\atoum\tools\variable"z Cmageekguy\atoum\tools\diffsy 7mageekguy\atoum\tools!x Amageekguy\atoum\tools\diff w ?mageekguy\atoum\test\mock%v Imageekguy\atoum\test\generator&u Kmageekguy\atoum\test\exceptions#t Emageekguy\atoum\test\engines-s Ymageekguy\atoum\test\assertion\manager%r Imageekguy\atoum\test\assertion$q Gmageekguy\atoum\test\asserterp 5mageekguy\atoum\test)o Qmageekguy\atoum\test\adapter\calls#n Emageekguy\atoum\test\adapter3m emageekguy\atoum\test\adapter\call\decorators(l Omageekguy\atoum\test\adapter\call2k cmageekguy\atoum\test\adapter\call\arguments&j Kmageekguy\atoum\template\parseri =mageekguy\atoum\template&h Kmageekguy\atoum\scripts\treemap0g _mageekguy\atoum\scripts\treemap\analyzers/f ]mageekguy\atoum\scripts\treemap\analyzer%e Imageekguy\atoum\scripts\tagger#d Emageekguy\atoum\scripts\phar"c Cmageekguy\atoum\scripts\gitb ;mageekguy\atoum\scripts&a Kmageekguy\atoum\scripts\builder*` Smageekguy\atoum\scripts\builder\vcs_ 9mageekguy\atoum\script'^ Mmageekguy\atoum\script\arguments] 7mageekguy\atoum\score\ 9mageekguy\atoum\runner'[ Mmageekguy\atoum\reports\realtime+Z Umageekguy\atoum\reports\realtime\cliY ;mageekguy\atoum\reports+X Umageekguy\atoum\reports\asynchronous-W Ymageekguy\atoum\report\fields\test\run0V _mageekguy\atoum\report\fields\test\memory/U ]mageekguy\atoum\report\fields\test\event)T Qmageekguy\atoum\report\fields\test2S cmageekguy\atoum\report\fields\test\duration6R kmageekguy\atoum\report\fields\runner\tests\void=Q ymageekguy\atoum\report\fields\runner\tests\uncompleted9P qmageekguy\atoum\report\fields\runner\tests\skipped8O omageekguy\atoum\report\fields\runner\tests\memory:N smageekguy\atoum\report\fields\runner\tests\duration1M amageekguy\atoum\report\fields\runner\tests:L smageekguy\atoum\report\fields\runner\tests\coverage/K ]mageekguy\atoum\report\fields\runner\tap;J umageekguy\atoum\report\fields\runner\result\notifierBI mageekguy\atoum\report\fields\runner\result\notifier\image2H cmageekguy\atoum\report\fields\runner\result7G mmageekguy\atoum\report\fields\runner\php\version/F ]mageekguy\atoum\report\fields\runner\php4E gmageekguy\atoum\report\fields\runner\php\path3D emageekguy\atoum\report\fields\runner\outputsBC mageekguy\atoum\report\fields\runner\failures\execute\unixCB mageekguy\atoum\report\fields\runner\failures\execute\macos4A gmageekguy\atoum\report\fields\runner\failures6@ kmageekguy\atoum\report\fields\runner\exceptions1? amageekguy\atoum\report\fields\runner\event2> cmageekguy\atoum\report\fields\runner\errors4= gmageekguy\atoum\report\fields\runner\duration4< gmageekguy\atoum\report\fields\runner\coverage+; Umageekguy\atoum\report\fields\runner1: amageekguy\atoum\report\fields\runner\atoum$9 Gmageekguy\atoum\report\fields8 9mageekguy\atoum\report"7 Cmageekguy\atoum\readers\std.6 [mageekguy\atoum\php\tokenizer\iterators$5 Gmageekguy\atoum\php\tokenizer-4 Ymageekguy\atoum\php\tokenizer\iterator!3 Amageekguy\atoum\php\mocker)2 Qmageekguy\atoum\php\mocker\adapter1 3mageekguy\atoum\php   B  Hh?v>	k)wB


z
I
				[	2Z)z@|6d!Mz0_T                                       *I Smageekguy\atoum\tests\units\reports7H mmageekguy\atoum\tests\units\reports\asynchronous9G qmageekguy\atoum\tests\units\report\fields\test\run<F wmageekguy\atoum\tests\units\report\fields\test\memory;E umageekguy\atoum\tests\units\report\fields\test\event>D {mageekguy\atoum\tests\units\report\fields\test\durationJC mageekguy\atoum\tests\units\report\fields\runner\tests\uncompleted=B ymageekguy\atoum\tests\units\report\fields\runner\testsFA 	mageekguy\atoum\tests\units\report\fields\runner\tests\skippedE@ mageekguy\atoum\tests\units\report\fields\runner\tests\memoryG? mageekguy\atoum\tests\units\report\fields\runner\tests\durationG> mageekguy\atoum\tests\units\report\fields\runner\tests\coverage;= umageekguy\atoum\tests\units\report\fields\runner\tapH< mageekguy\atoum\tests\units\report\fields\runner\result\notifierI; mageekguy\atoum\tests\units\report\fields\runner\result\notifier\>: {mageekguy\atoum\tests\units\report\fields\runner\resultD9 mageekguy\atoum\tests\units\report\fields\runner\php\version@8 mageekguy\atoum\tests\units\report\fields\runner\php\path?7 }mageekguy\atoum\tests\units\report\fields\runner\outputsJ6 mageekguy\atoum\tests\units\report\fields\runner\failures\execute\@5 mageekguy\atoum\tests\units\report\fields\runner\failuresC4 mageekguy\atoum\tests\units\report\fields\runner\exceptions=3 ymageekguy\atoum\tests\units\report\fields\runner\event>2 {mageekguy\atoum\tests\units\report\fields\runner\errors@1 mageekguy\atoum\tests\units\report\fields\runner\duration70 mmageekguy\atoum\tests\units\report\fields\runner@/ mageekguy\atoum\tests\units\report\fields\runner\coverage=. ymageekguy\atoum\tests\units\report\fields\runner\atoum)- Qmageekguy\atoum\tests\units\report., [mageekguy\atoum\tests\units\readers\std:+ smageekguy\atoum\tests\units\php\tokenizer\iterators0* _mageekguy\atoum\tests\units\php\tokenizer-) Ymageekguy\atoum\tests\units\php\mocker5( imageekguy\atoum\tests\units\php\mocker\adapter&' Kmageekguy\atoum\tests\units\php7& mmageekguy\atoum\tests\units\mock\streams\fs\file<% wmageekguy\atoum\tests\units\mock\streams\fs\directory2$ cmageekguy\atoum\tests\units\mock\streams\fs=# ymageekguy\atoum\tests\units\mock\streams\fs\controller." [mageekguy\atoum\tests\units\mock\stream+! Umageekguy\atoum\tests\units\mock\php2  cmageekguy\atoum\tests\units\mock\php\method8 omageekguy\atoum\tests\units\mock\generator\method' Mmageekguy\atoum\tests\units\mock2 cmageekguy\atoum\tests\units\mock\controller* Smageekguy\atoum\tests\units\mailersB mageekguy\atoum\tests\units\iterators\recursives\directory= ymageekguy\atoum\tests\units\iterators\recursives\atoum? }mageekguy\atoum\tests\units\iterators\filters\recursivesF 	mageekguy\atoum\tests\units\iterators\filters\recursives\atoum% Imageekguy\atoum\tests\units\fs* Smageekguy\atoum\tests\units\fs\path2 cmageekguy\atoum\tests\units\factory\builder5 imageekguy\atoum\tests\units\exceptions\runtime- Ymageekguy\atoum\tests\units\exceptions3 emageekguy\atoum\tests\units\exceptions\logic/ ]mageekguy\atoum\tests\units\cli\commands. [mageekguy\atoum\tests\units\cli\command& Kmageekguy\atoum\tests\units\cli- Ymageekguy\atoum\tests\units\autoloader< wmageekguy\atoum\tests\units\asserters\mock\exceptions, Wmageekguy\atoum\tests\units\asserters? }mageekguy\atoum\tests\units\asserters\adapter\exceptions4
 gmageekguy\atoum\tests\units\asserters\adapter9	 qmageekguy\atoum\tests\units\asserters\adapter\callB mageekguy\atoum\tests\units\asserters\adapter\call\manager   c  d9q@g9M{I



]
,				c	Y	D	#	rEd=wX/bL,_8%r]>yY<(
vX6
                     %, IZend\Crypt\Symmetric\Exception)+ QZend\Crypt\PublicKey\Rsa\Exception* =Zend\Crypt\PublicKey\Rsa) 5Zend\Crypt\PublicKey$( GZend\Crypt\Password\Exception' 3Zend\Crypt\Password & ?Zend\Crypt\Key\Derivation*% SZend\Crypt\Key\Derivation\Exception$ 5Zend\Crypt\Exception# !Zend\Crypt" 3Zend\Console\Prompt! 9Zend\Console\Exception  %Zend\Console 1Zend\Console\Color 5Zend\Console\Charset 5Zend\Console\Adapter 1Zend\Config\Writer 1Zend\Config\Reader 7Zend\Config\Processor 7Zend\Config\Exception #Zend\Config /Zend\Code\Scanner% IZend\Code\Reflection\Exception$ GZend\Code\Reflection\DocBlock( OZend\Code\Reflection\DocBlock\Tag 5Zend\Code\Reflection Zend\Code$ GZend\Code\Generator\Exception# EZend\Code\Generator\DocBlock' MZend\Code\Generator\DocBlock\Tag 3Zend\Code\Generator 3Zend\Code\Exception" CZend\Code\Annotation\Parser 5Zend\Code\Annotation
 9Zend\Captcha\Exception	 %Zend\Captcha  ?Zend\Cache\Storage\Plugin 1Zend\Cache\Storage! AZend\Cache\Storage\Adapter 1Zend\Cache\Service !Zend\Cache 1Zend\Cache\Pattern 5Zend\Cache\Exception& KZend\Barcode\Renderer\Exception  7Zend\Barcode\Renderer$ GZend\Barcode\Object\Exception~ 3Zend\Barcode\Object} 9Zend\Barcode\Exception| %Zend\Barcode${ GZend\Authentication\Validator"z CZend\Authentication\Storage$y GZend\Authentication\Exceptionx 3Zend\Authentication1w aZend\Authentication\Adapter\Http\Exception'v MZend\Authentication\Adapter\Http,u WZend\Authentication\Adapter\Exception4t gZend\Authentication\Adapter\DbTable\Exception*s SZend\Authentication\Adapter\DbTable"r CZend\Authentication\Adapterq 9mageekguy\atoum\writer%p Imageekguy\atoum\report\writers o ?mageekguy\atoum\observersn ;mageekguy\atoum\factorym ;mageekguy\atoum\adapterl #tests\unitsk .j [mageekguy\atoum\tests\units\writers\std*i Smageekguy\atoum\tests\units\writers4h gmageekguy\atoum\tests\units\writer\decorators1g amageekguy\atoum\tests\units\tools\variable.f [mageekguy\atoum\tests\units\tools\diffs(e Omageekguy\atoum\tests\units\tools-d Ymageekguy\atoum\tests\units\tools\diff+c Umageekguy\atoum\mock\mageekguy\atoum,b Wmageekguy\atoum\tests\units\test\mock1a amageekguy\atoum\tests\units\test\generator/` ]mageekguy\atoum\tests\units\test\engines9_ qmageekguy\atoum\tests\units\test\assertion\manager1^ amageekguy\atoum\tests\units\test\assertion'] Mmageekguy\atoum\tests\units\test5\ imageekguy\atoum\tests\units\test\adapter\calls/[ ]mageekguy\atoum\tests\units\test\adapter?Z }mageekguy\atoum\tests\units\test\adapter\call\decorators4Y gmageekguy\atoum\tests\units\test\adapter\call>X {mageekguy\atoum\tests\units\test\adapter\call\arguments+W Umageekguy\atoum\tests\units\template2V cmageekguy\atoum\tests\units\scripts\treemap;U umageekguy\atoum\tests\units\scripts\treemap\analyzer1T amageekguy\atoum\tests\units\scripts\tagger/S ]mageekguy\atoum\tests\units\scripts\phar.R [mageekguy\atoum\tests\units\scripts\git*Q Smageekguy\atoum\tests\units\scripts6P kmageekguy\atoum\tests\units\scripts\builder\vcs)O Qmageekguy\atoum\tests\units\script3N emageekguy\atoum\tests\units\script\arguments(M Omageekguy\atoum\tests\units\score)L Qmageekguy\atoum\tests\units\runner3K emageekguy\atoum\tests\units\reports\realtime7J mmageekguy\atoum\tests\units\reports\realtime\cli   m  {T-k:}\A hD%nO1	




d
H
$
						l	Q	,	
}R8V"mB|X&Z'd;lP; taD%                             $ GZend\Form\View\Helper\Captcha 7Zend\Form\View\Helper 3Zend\Form\Exception Zend\Form /Zend\Form\Element 5Zend\Form\Annotation -Zend\Filter\Word -Zend\Filter\File 7Zend\Filter\Exception 3Zend\Filter\Encrypt 5Zend\Filter\Compress #Zend\Filter 1Zend\File\Transfer# EZend\File\Transfer\Exception! AZend\File\Transfer\Adapter
 3Zend\File\Exception	 Zend\File* SZend\Feed\Writer\Renderer\Feed\Atom% IZend\Feed\Writer\Renderer\Feed& KZend\Feed\Writer\Renderer\Entry+ UZend\Feed\Writer\Renderer\Entry\Atom  ?Zend\Feed\Writer\Renderer8 oZend\Feed\Writer\Extension\WellFormedWeb\Renderer4 gZend\Feed\Writer\Extension\Threading\Renderer0 _Zend\Feed\Writer\Extension\Slash\Renderer1  aZend\Feed\Writer\Extension\ITunes\Renderer( OZend\Feed\Writer\Extension\ITunes5~ iZend\Feed\Writer\Extension\DublinCore\Renderer2} cZend\Feed\Writer\Extension\Content\Renderer/| ]Zend\Feed\Writer\Extension\Atom\Renderer!{ AZend\Feed\Writer\Extension!z AZend\Feed\Writer\Exceptiony -Zend\Feed\Writerx Zend\Feed!w AZend\Feed\Reader\Feed\Atomv 7Zend\Feed\Reader\Feed/u ]Zend\Feed\Reader\Extension\WellFormedWeb(t OZend\Feed\Reader\Extension\Thread-s YZend\Feed\Reader\Extension\Syndication'r MZend\Feed\Reader\Extension\Slash)q QZend\Feed\Reader\Extension\Podcast,p WZend\Feed\Reader\Extension\DublinCore1o aZend\Feed\Reader\Extension\CreativeCommons)n QZend\Feed\Reader\Extension\Content&m KZend\Feed\Reader\Extension\Atom!l AZend\Feed\Reader\Extension!k AZend\Feed\Reader\Exceptionj 9Zend\Feed\Reader\Entry"i CZend\Feed\Reader\Collectionh -Zend\Feed\Reader(g OZend\Feed\PubSubHubbub\Subscriber#f EZend\Feed\PubSubHubbub\Model'e MZend\Feed\PubSubHubbub\Exceptiond 9Zend\Feed\PubSubHubbubc 3Zend\Feed\Exceptionb =Zend\EventManager\Filter"a CZend\EventManager\Exception` /Zend\EventManager_ 9Zend\Escaper\Exception^ %Zend\Escaper] 1Zend\Dom\Exception\ Zend\Dom[ 9Zend\Di\ServiceLocatorZ /Zend\Di\ExceptionY +Zend\Di\Display!X AZend\Di\Definition\BuilderW 1Zend\Di\Definition$V GZend\Di\Definition\AnnotationU Zend\DiT !Zend\Debug0S _Zend\Db\TableGateway\Feature\EventFeature#R EZend\Db\TableGateway\Feature%Q IZend\Db\TableGateway\ExceptionP 5Zend\Db\TableGatewayO 7Zend\Db\Sql\Predicate%N IZend\Db\Sql\Platform\SqlServer"M CZend\Db\Sql\Platform\Oracle!L AZend\Db\Sql\Platform\Mysql%K IZend\Db\Sql\Platform\Mysql\DdlJ 5Zend\Db\Sql\PlatformI 7Zend\Db\Sql\Exception!H AZend\Db\Sql\Ddl\ConstraintG 9Zend\Db\Sql\Ddl\ColumnF +Zend\Db\Sql\DdlE #Zend\Db\Sql!D AZend\Db\RowGateway\Feature#C EZend\Db\RowGateway\ExceptionB 1Zend\Db\RowGateway"A CZend\Db\ResultSet\Exception@ /Zend\Db\ResultSet? ;Zend\Db\Metadata\Source> ;Zend\Db\Metadata\Object= -Zend\Db\Metadata< /Zend\Db\Exception; =Zend\Db\Adapter\Profiler: =Zend\Db\Adapter\Platform 9 ?Zend\Db\Adapter\Exception.8 [Zend\Db\Adapter\Driver\Sqlsrv\Exception$7 GZend\Db\Adapter\Driver\Sqlsrv#6 EZend\Db\Adapter\Driver\Pgsql)5 QZend\Db\Adapter\Driver\Pdo\Feature!4 AZend\Db\Adapter\Driver\Pdo"3 CZend\Db\Adapter\Driver\Oci8$2 GZend\Db\Adapter\Driver\Mysqli$1 GZend\Db\Adapter\Driver\IbmDb2%0 IZend\Db\Adapter\Driver\Feature/ +Zend\Db\Adapter#. EZend\Crypt\Symmetric\Padding- 5Zend\Crypt\Symmetric   z cI%x\?% iO+xZG)rZ:




s
Z
>
,
						i	E	)	{X.b:
mG"X<%oP4d:kD!gM,                ;Zend\Serializer\Adapter ;Zend\ProgressBar\Upload -Zend\ProgressBar! AZend\ProgressBar\Exception) QZend\ProgressBar\Adapter\Exception =Zend\ProgressBar\Adapter& KZend\Permissions\Rbac\Exception 7Zend\Permissions\Rbac  ?Zend\Permissions\Acl\Role$
 GZend\Permissions\Acl\Resource%	 IZend\Permissions\Acl\Exception 5Zend\Permissions\Acl$ GZend\Paginator\ScrollingStyle =Zend\Paginator\Exception )Zend\Paginator% IZend\Paginator\Adapter\Service' MZend\Paginator\Adapter\Exception 9Zend\Paginator\Adapter 5Zend\Navigation\View  ;Zend\Navigation\Service 5Zend\Navigation\Page ~ ?Zend\Navigation\Exception} +Zend\Navigation| 'Zend\Mvc\View{ 1Zend\Mvc\View\Httpz 7Zend\Mvc\View\Consoley -Zend\Mvc\Servicex +Zend\Mvc\Routerw 5Zend\Mvc\Router\Http v ?Zend\Mvc\Router\Exceptionu ;Zend\Mvc\Router\Consolet ;Zend\Mvc\ResponseSenders 'Zend\Mvc\I18nr 1Zend\Mvc\Exception)q QZend\Mvc\Controller\Plugin\Service!p AZend\Mvc\Controller\Plugino 3Zend\Mvc\Controllern Zend\Mvcm 1Zend\ModuleManager,l WZend\ModuleManager\Listener\Exception"k CZend\ModuleManager\Listener#j EZend\ModuleManager\Exceptioni 3Zend\Mime\Exceptionh Zend\Mimeg #Zend\Memoryf 7Zend\Memory\Exceptione 7Zend\Memory\Containerd -Zend\Math\Sourcec Zend\Mathb 3Zend\Math\Exception%a IZend\Math\BigInteger\Exception` 5Zend\Math\BigInteger#_ EZend\Math\BigInteger\Adapter^ 3Zend\Mail\Transport$] GZend\Mail\Transport\Exception!\ AZend\Mail\Storage\Writable[ 9Zend\Mail\Storage\Part'Z MZend\Mail\Storage\Part\Exception Y ?Zend\Mail\Storage\MessageX =Zend\Mail\Storage\Folder"W CZend\Mail\Storage\ExceptionV /Zend\Mail\Storage#U EZend\Mail\Protocol\Smtp\Auth#T EZend\Mail\Protocol\ExceptionS 1Zend\Mail\Protocol!R AZend\Mail\Header\ExceptionQ -Zend\Mail\HeaderP 3Zend\Mail\ExceptionO Zend\MailN ;Zend\Log\Writer\FirePhp M ?Zend\Log\Writer\ChromePhpL +Zend\Log\WriterK 1Zend\Log\ProcessorJ Zend\LogI 1Zend\Log\FormatterH +Zend\Log\FilterG 1Zend\Log\ExceptionF 7Zend\Loader\ExceptionE #Zend\Loader(D OZend\Ldap\Node\Schema\ObjectClass*C SZend\Ldap\Node\Schema\AttributeTypeB 7Zend\Ldap\Node\SchemaA 9Zend\Ldap\Node\RootDse@ )Zend\Ldap\Node? )Zend\Ldap\Ldif!> AZend\Ldap\Filter\Exception= -Zend\Ldap\Filter< 3Zend\Ldap\Exception$; GZend\Ldap\Converter\Exception: 3Zend\Ldap\Converter9 5Zend\Ldap\Collection8 Zend\Ldap7 5Zend\Json\Server\Smd 6 ?Zend\Json\Server\Response5 =Zend\Json\Server\Request!4 AZend\Json\Server\Exception3 -Zend\Json\Server2 3Zend\Json\Exception1 Zend\Json!0 AZend\InputFilter\Exception/ -Zend\InputFilter. )Zend\I18n\View- 7Zend\I18n\View\Helper, 3Zend\I18n\Validator"+ CZend\I18n\Translator\Plural* 5Zend\I18n\Translator") CZend\I18n\Translator\Loader( -Zend\I18n\Filter' 3Zend\I18n\Exception& 1Zend\Http\Response% =Zend\Http\PhpEnvironment!$ AZend\Http\Header\Exception-# YZend\Http\Header\Accept\FieldValuePart" -Zend\Http\Header! 3Zend\Http\Exception!  AZend\Http\Client\Exception -Zend\Http\Client) QZend\Http\Client\Adapter\Exception =Zend\Http\Client\Adapter Zend\Http )Zend\Form\View! AZend\Form\View\Helper\File   w tT*pP0N;!iK#fN< 





t
[
8
						r	U	5		sC{f@$iN.`3oR+eFsP:sM&                             
 Zend\Code$	 GZend\Code\Generator\Exception# EZend\Code\Generator\DocBlock' MZend\Code\Generator\DocBlock\Tag 3Zend\Code\Generator 3Zend\Code\Exception" CZend\Code\Annotation\Parser 5Zend\Code\Annotation 9Zend\Captcha\Exception %Zend\Captcha   ?Zend\Cache\Storage\Plugin 1Zend\Cache\Storage!~ AZend\Cache\Storage\Adapter} 1Zend\Cache\Service| !Zend\Cache{ 1Zend\Cache\Patternz 5Zend\Cache\Exception&y KZend\Barcode\Renderer\Exceptionx 7Zend\Barcode\Renderer$w GZend\Barcode\Object\Exceptionv 3Zend\Barcode\Objectu 9Zend\Barcode\Exceptiont %Zend\Barcode$s GZend\Authentication\Validator"r CZend\Authentication\Storage$q GZend\Authentication\Exceptionp 3Zend\Authentication1o aZend\Authentication\Adapter\Http\Exception'n MZend\Authentication\Adapter\Http,m WZend\Authentication\Adapter\Exception4l gZend\Authentication\Adapter\DbTable\Exception*k SZend\Authentication\Adapter\DbTable"j CZend\Authentication\Adapter i ?Zend\Validator\Translator%h IZend\Permissions\Acl\Assertion!g AZend\ModuleManager\Featuref /Zend\Mail\Addresse 7Zend\Feed\Reader\Httpd 9Zend\Db\Adapter\Driverc /Zend\XmlRpc\Value#b EZend\XmlRpc\Server\Exceptiona 1Zend\XmlRpc\Server` 5Zend\XmlRpc\Response_ 3Zend\XmlRpc\Request^ 7Zend\XmlRpc\Generator] 7Zend\XmlRpc\Exception\ 1Zend\XmlRpc\Client#[ EZend\XmlRpc\Client\ExceptionZ #Zend\XmlRpcY 1Zend\View\StrategyX 1Zend\View\ResolverW 1Zend\View\RendererV +Zend\View\ModelU Zend\ViewT =Zend\View\Helper\Service#S EZend\View\Helper\Placeholder-R YZend\View\Helper\Placeholder\Container+Q UZend\View\Helper\Navigation\Listener"P CZend\View\Helper\NavigationO =Zend\View\Helper\EscaperN -Zend\View\HelperM 3Zend\View\ExceptionL %Zend\VersionK 9Zend\Validator\SitemapJ 3Zend\Validator\FileI =Zend\Validator\ExceptionH /Zend\Validator\DbG 9Zend\Validator\BarcodeF )Zend\ValidatorE Zend\UriD 1Zend\Uri\Exception C ?Zend\Text\Table\Exception B ?Zend\Text\Table\DecoratorA +Zend\Text\Table@ Zend\Text? -Zend\Text\Figlet!> AZend\Text\Figlet\Exception= 3Zend\Text\Exception< )Zend\Test\Util#; EZend\Test\PHPUnit\Controller: 1Zend\Tag\Exception9 Zend\Tag8 )Zend\Tag\Cloud)7 QZend\Tag\Cloud\Decorator\Exception6 =Zend\Tag\Cloud\Decorator 5 ?Zend\Stdlib\StringWrapper$4 GZend\Stdlib\Hydrator\Strategy"3 CZend\Stdlib\Hydrator\Filter%2 IZend\Stdlib\Hydrator\Aggregate1 5Zend\Stdlib\Hydrator0 7Zend\Stdlib\Exception/ ;Zend\Stdlib\ArrayObject. #Zend\Stdlib)- QZend\Soap\Wsdl\ComplexTypeStrategy, -Zend\Soap\Server+ 3Zend\Soap\Exception* -Zend\Soap\Client) Zend\Soap/( ]Zend\Soap\AutoDiscover\DiscoveryStrategy' 9Zend\Session\Validator/& ]Zend\Session\Storage\SessionArrayStorage% 5Zend\Session\Storage$ 5Zend\Session\Service# =Zend\Session\SaveHandler" 9Zend\Session\Exception! 9Zend\Session\Container  3Zend\Session\Config %Zend\Session  ?Zend\ServiceManager\Proxy$ GZend\ServiceManager\Exception 9Zend\ServiceManager\Di 3Zend\ServiceManager' MZend\Server\Reflection\Exception 9Zend\Server\Reflection 1Zend\Server\Method 7Zend\Server\Exception #Zend\Server  ?Zend\Serializer\Exception +Zend\Serializer   n hM8jT4xQ3y`8uO(




u
[
:
					s	^	E	%	xS+mYH!{_I)`:h?Z*w]9vK                                                   1x aZend\Feed\Writer\Extension\ITunes\Renderer(w OZend\Feed\Writer\Extension\ITunes5v iZend\Feed\Writer\Extension\DublinCore\Renderer2u cZend\Feed\Writer\Extension\Content\Renderer/t ]Zend\Feed\Writer\Extension\Atom\Renderer!s AZend\Feed\Writer\Extension!r AZend\Feed\Writer\Exceptionq -Zend\Feed\Writerp Zend\Feed!o AZend\Feed\Reader\Feed\Atomn 7Zend\Feed\Reader\Feed/m ]Zend\Feed\Reader\Extension\WellFormedWeb(l OZend\Feed\Reader\Extension\Thread-k YZend\Feed\Reader\Extension\Syndication'j MZend\Feed\Reader\Extension\Slash)i QZend\Feed\Reader\Extension\Podcast,h WZend\Feed\Reader\Extension\DublinCore1g aZend\Feed\Reader\Extension\CreativeCommons)f QZend\Feed\Reader\Extension\Content&e KZend\Feed\Reader\Extension\Atom!d AZend\Feed\Reader\Extension!c AZend\Feed\Reader\Exceptionb 9Zend\Feed\Reader\Entry"a CZend\Feed\Reader\Collection` -Zend\Feed\Reader(_ OZend\Feed\PubSubHubbub\Subscriber#^ EZend\Feed\PubSubHubbub\Model'] MZend\Feed\PubSubHubbub\Exception\ 9Zend\Feed\PubSubHubbub[ 3Zend\Feed\ExceptionZ =Zend\EventManager\Filter"Y CZend\EventManager\ExceptionX /Zend\EventManagerW 9Zend\Escaper\ExceptionV %Zend\EscaperU 1Zend\Dom\ExceptionT Zend\DomS 9Zend\Di\ServiceLocatorR /Zend\Di\ExceptionQ +Zend\Di\Display!P AZend\Di\Definition\BuilderO 1Zend\Di\Definition$N GZend\Di\Definition\AnnotationM Zend\DiL !Zend\Debug0K _Zend\Db\TableGateway\Feature\EventFeature#J EZend\Db\TableGateway\Feature%I IZend\Db\TableGateway\ExceptionH 5Zend\Db\TableGatewayG 7Zend\Db\Sql\Predicate%F IZend\Db\Sql\Platform\SqlServer"E CZend\Db\Sql\Platform\Oracle!D AZend\Db\Sql\Platform\Mysql%C IZend\Db\Sql\Platform\Mysql\DdlB 5Zend\Db\Sql\PlatformA 7Zend\Db\Sql\Exception!@ AZend\Db\Sql\Ddl\Constraint? 9Zend\Db\Sql\Ddl\Column> +Zend\Db\Sql\Ddl= #Zend\Db\Sql!< AZend\Db\RowGateway\Feature#; EZend\Db\RowGateway\Exception: 1Zend\Db\RowGateway"9 CZend\Db\ResultSet\Exception8 /Zend\Db\ResultSet7 ;Zend\Db\Metadata\Source6 ;Zend\Db\Metadata\Object5 -Zend\Db\Metadata4 /Zend\Db\Exception3 =Zend\Db\Adapter\Profiler2 =Zend\Db\Adapter\Platform 1 ?Zend\Db\Adapter\Exception.0 [Zend\Db\Adapter\Driver\Sqlsrv\Exception$/ GZend\Db\Adapter\Driver\Sqlsrv#. EZend\Db\Adapter\Driver\Pgsql)- QZend\Db\Adapter\Driver\Pdo\Feature!, AZend\Db\Adapter\Driver\Pdo"+ CZend\Db\Adapter\Driver\Oci8$* GZend\Db\Adapter\Driver\Mysqli$) GZend\Db\Adapter\Driver\IbmDb2%( IZend\Db\Adapter\Driver\Feature' +Zend\Db\Adapter#& EZend\Crypt\Symmetric\Padding% 5Zend\Crypt\Symmetric%$ IZend\Crypt\Symmetric\Exception)# QZend\Crypt\PublicKey\Rsa\Exception" =Zend\Crypt\PublicKey\Rsa! 5Zend\Crypt\PublicKey$  GZend\Crypt\Password\Exception 3Zend\Crypt\Password  ?Zend\Crypt\Key\Derivation* SZend\Crypt\Key\Derivation\Exception 5Zend\Crypt\Exception !Zend\Crypt 3Zend\Console\Prompt 9Zend\Console\Exception %Zend\Console 1Zend\Console\Color 5Zend\Console\Charset 5Zend\Console\Adapter 1Zend\Config\Writer 1Zend\Config\Reader 7Zend\Config\Processor 7Zend\Config\Exception #Zend\Config /Zend\Code\Scanner% IZend\Code\Reflection\Exception$ GZend\Code\Reflection\DocBlock( OZend\Code\Reflection\DocBlock\Tag 5Zend\Code\Reflection   y [8
y\8mS5hU3b> 




a
D
%
						a	?	lR.gR3xWD'fAgJ$uVA.{iL(dF-                         q -Zend\Mvc\Servicep +Zend\Mvc\Routero 5Zend\Mvc\Router\Http n ?Zend\Mvc\Router\Exceptionm ;Zend\Mvc\Router\Consolel ;Zend\Mvc\ResponseSenderk 'Zend\Mvc\I18nj 1Zend\Mvc\Exception)i QZend\Mvc\Controller\Plugin\Service!h AZend\Mvc\Controller\Pluging 3Zend\Mvc\Controllerf Zend\Mvce 1Zend\ModuleManager,d WZend\ModuleManager\Listener\Exception"c CZend\ModuleManager\Listener#b EZend\ModuleManager\Exceptiona 3Zend\Mime\Exception` Zend\Mime_ #Zend\Memory^ 7Zend\Memory\Exception] 7Zend\Memory\Container\ -Zend\Math\Source[ Zend\MathZ 3Zend\Math\Exception%Y IZend\Math\BigInteger\ExceptionX 5Zend\Math\BigInteger#W EZend\Math\BigInteger\AdapterV 3Zend\Mail\Transport$U GZend\Mail\Transport\Exception!T AZend\Mail\Storage\WritableS 9Zend\Mail\Storage\Part'R MZend\Mail\Storage\Part\Exception Q ?Zend\Mail\Storage\MessageP =Zend\Mail\Storage\Folder"O CZend\Mail\Storage\ExceptionN /Zend\Mail\Storage#M EZend\Mail\Protocol\Smtp\Auth#L EZend\Mail\Protocol\ExceptionK 1Zend\Mail\Protocol!J AZend\Mail\Header\ExceptionI -Zend\Mail\HeaderH 3Zend\Mail\ExceptionG Zend\MailF ;Zend\Log\Writer\FirePhp E ?Zend\Log\Writer\ChromePhpD +Zend\Log\WriterC 1Zend\Log\ProcessorB Zend\LogA 1Zend\Log\Formatter@ +Zend\Log\Filter? 1Zend\Log\Exception> 7Zend\Loader\Exception= #Zend\Loader(< OZend\Ldap\Node\Schema\ObjectClass*; SZend\Ldap\Node\Schema\AttributeType: 7Zend\Ldap\Node\Schema9 9Zend\Ldap\Node\RootDse8 )Zend\Ldap\Node7 )Zend\Ldap\Ldif!6 AZend\Ldap\Filter\Exception5 -Zend\Ldap\Filter4 3Zend\Ldap\Exception$3 GZend\Ldap\Converter\Exception2 3Zend\Ldap\Converter1 5Zend\Ldap\Collection0 Zend\Ldap/ 5Zend\Json\Server\Smd . ?Zend\Json\Server\Response- =Zend\Json\Server\Request!, AZend\Json\Server\Exception+ -Zend\Json\Server* 3Zend\Json\Exception) Zend\Json!( AZend\InputFilter\Exception' -Zend\InputFilter& )Zend\I18n\View% 7Zend\I18n\View\Helper$ 3Zend\I18n\Validator"# CZend\I18n\Translator\Plural" 5Zend\I18n\Translator"! CZend\I18n\Translator\Loader  -Zend\I18n\Filter 3Zend\I18n\Exception 1Zend\Http\Response =Zend\Http\PhpEnvironment! AZend\Http\Header\Exception- YZend\Http\Header\Accept\FieldValuePart -Zend\Http\Header 3Zend\Http\Exception! AZend\Http\Client\Exception -Zend\Http\Client) QZend\Http\Client\Adapter\Exception =Zend\Http\Client\Adapter Zend\Http )Zend\Form\View! AZend\Form\View\Helper\File$ GZend\Form\View\Helper\Captcha 7Zend\Form\View\Helper 3Zend\Form\Exception Zend\Form /Zend\Form\Element 5Zend\Form\Annotation -Zend\Filter\Word
 -Zend\Filter\File	 7Zend\Filter\Exception 3Zend\Filter\Encrypt 5Zend\Filter\Compress #Zend\Filter 1Zend\File\Transfer# EZend\File\Transfer\Exception! AZend\File\Transfer\Adapter 3Zend\File\Exception Zend\File*  SZend\Feed\Writer\Renderer\Feed\Atom% IZend\Feed\Writer\Renderer\Feed&~ KZend\Feed\Writer\Renderer\Entry+} UZend\Feed\Writer\Renderer\Entry\Atom | ?Zend\Feed\Writer\Renderer8{ oZend\Feed\Writer\Extension\WellFormedWeb\Renderer4z gZend\Feed\Writer\Extension\Threading\Renderer0y _Zend\Feed\Writer\Extension\Slash\Renderer   { rT3iB$jH`K,b?)




n
<
						Z	E	$	sP.~a=#kK0b=kO3eG+lD!kR7                               l -Hoa\Compiler\Bink /xHoa\Ruler\Visitorj +xHoa\Ruler\Modeli 3xHoa\Ruler\Model\Bagh 3xHoa\Ruler\Exceptiong xHoa\Rulerf 'xHoa\Ruler\Bine Kglobald %DZendTest\Xmlc DZendXmlb /DZendXml\Exception a ?Zend\Validator\Translator%` IZend\Permissions\Acl\Assertion!_ AZend\ModuleManager\Feature^ /Zend\Mail\Address] 7Zend\Feed\Reader\Http\ 9Zend\Db\Adapter\Driver[ /Zend\XmlRpc\Value#Z EZend\XmlRpc\Server\ExceptionY 1Zend\XmlRpc\ServerX 5Zend\XmlRpc\ResponseW 3Zend\XmlRpc\RequestV 7Zend\XmlRpc\GeneratorU 7Zend\XmlRpc\ExceptionT 1Zend\XmlRpc\Client#S EZend\XmlRpc\Client\ExceptionR #Zend\XmlRpcQ 1Zend\View\StrategyP 1Zend\View\ResolverO 1Zend\View\RendererN +Zend\View\ModelM Zend\ViewL =Zend\View\Helper\Service#K EZend\View\Helper\Placeholder-J YZend\View\Helper\Placeholder\Container+I UZend\View\Helper\Navigation\Listener"H CZend\View\Helper\NavigationG =Zend\View\Helper\EscaperF -Zend\View\HelperE 3Zend\View\ExceptionD %Zend\VersionC 9Zend\Validator\SitemapB 3Zend\Validator\FileA =Zend\Validator\Exception@ /Zend\Validator\Db? 9Zend\Validator\Barcode> )Zend\Validator= Zend\Uri< 1Zend\Uri\Exception ; ?Zend\Text\Table\Exception : ?Zend\Text\Table\Decorator9 +Zend\Text\Table8 Zend\Text7 -Zend\Text\Figlet!6 AZend\Text\Figlet\Exception5 3Zend\Text\Exception4 )Zend\Test\Util#3 EZend\Test\PHPUnit\Controller2 1Zend\Tag\Exception1 Zend\Tag0 )Zend\Tag\Cloud)/ QZend\Tag\Cloud\Decorator\Exception. =Zend\Tag\Cloud\Decorator - ?Zend\Stdlib\StringWrapper$, GZend\Stdlib\Hydrator\Strategy"+ CZend\Stdlib\Hydrator\Filter%* IZend\Stdlib\Hydrator\Aggregate) 5Zend\Stdlib\Hydrator( 7Zend\Stdlib\Exception' ;Zend\Stdlib\ArrayObject& #Zend\Stdlib)% QZend\Soap\Wsdl\ComplexTypeStrategy$ -Zend\Soap\Server# 3Zend\Soap\Exception" -Zend\Soap\Client! Zend\Soap/  ]Zend\Soap\AutoDiscover\DiscoveryStrategy 9Zend\Session\Validator/ ]Zend\Session\Storage\SessionArrayStorage 5Zend\Session\Storage 5Zend\Session\Service =Zend\Session\SaveHandler 9Zend\Session\Exception 9Zend\Session\Container 3Zend\Session\Config %Zend\Session  ?Zend\ServiceManager\Proxy$ GZend\ServiceManager\Exception 9Zend\ServiceManager\Di 3Zend\ServiceManager' MZend\Server\Reflection\Exception 9Zend\Server\Reflection 1Zend\Server\Method 7Zend\Server\Exception #Zend\Server  ?Zend\Serializer\Exception +Zend\Serializer ;Zend\Serializer\Adapter
 ;Zend\ProgressBar\Upload	 -Zend\ProgressBar! AZend\ProgressBar\Exception) QZend\ProgressBar\Adapter\Exception =Zend\ProgressBar\Adapter& KZend\Permissions\Rbac\Exception 7Zend\Permissions\Rbac  ?Zend\Permissions\Acl\Role$ GZend\Permissions\Acl\Resource% IZend\Permissions\Acl\Exception  5Zend\Permissions\Acl$ GZend\Paginator\ScrollingStyle~ =Zend\Paginator\Exception} )Zend\Paginator%| IZend\Paginator\Adapter\Service'{ MZend\Paginator\Adapter\Exceptionz 9Zend\Paginator\Adaptery 5Zend\Navigation\Viewx ;Zend\Navigation\Servicew 5Zend\Navigation\Page v ?Zend\Navigation\Exceptionu +Zend\Navigationt 'Zend\Mvc\Views 1Zend\Mvc\View\Httpr 7Zend\Mvc\View\Console   m  oO+{bG/]7qT>!	]1


q
>
				_	-W. ~CW$}Eq=hG+{_?#s]B         Y @EFoo\BarX @EW 3@EMtHaml\Tests\ParserV =@EMtHaml\Tests\NodeVisitorU /@EMtHaml\Tests\NodeT %@EMtHaml\TestsS '@EMtHaml\TargetR 3@EMtHaml\Support\TwigQ 1@EMtHaml\Support\PhpP )@EMtHaml\RuntimeO '@EMtHaml\ParserN 1@EMtHaml\NodeVisitorM #@EMtHaml\NodeL 1@EMtHaml\IndentationK 9@EMtHaml\Filter\MarkdownJ 1@EMtHaml\Filter\LessI '@EMtHaml\FilterH -@EMtHaml\ExceptionG @EMtHamlF globalE $globalD  globalC ?BZend\Validator\TranslatorB 9BZend\Validator\SitemapA 3BZend\Validator\File@ =BZend\Validator\Exception? /BZend\Validator\Db> 9BZend\Validator\Barcode= )BZend\Validator+< W!Symfony\Component\Validator\Violation+; W!Symfony\Component\Validator\Validator&: M!Symfony\Component\Validator\Util19 c!Symfony\Component\Validator\Tests\Validator,8 Y!Symfony\Component\Validator\Tests\Util67 m!Symfony\Component\Validator\Tests\Mapping\Loader76 o!Symfony\Component\Validator\Tests\Mapping\Factory/5 _!Symfony\Component\Validator\Tests\Mapping54 k!Symfony\Component\Validator\Tests\Mapping\Cache03 a!Symfony\Component\Validator\Tests\Fixtures'2 O!Symfony\Component\Validator\Tests1 #!Constraints30 g!Symfony\Component\Validator\Tests\Constraints0/ a!Symfony\Component\Validator\Mapping\Loader1. c!Symfony\Component\Validator\Mapping\Factory/- _!Symfony\Component\Validator\Mapping\Cache), S!Symfony\Component\Validator\Mapping++ W!Symfony\Component\Validator\Exception)* S!Symfony\Component\Validator\Context8) q!Symfony\Component\Validator\Constraints\Collection-( [!Symfony\Component\Validator\Constraints!' C!Symfony\Component\Validator+& W#Symfony\Component\Validator\Violation+% W#Symfony\Component\Validator\Validator&$ M#Symfony\Component\Validator\Util1# c#Symfony\Component\Validator\Tests\Validator," Y#Symfony\Component\Validator\Tests\Util6! m#Symfony\Component\Validator\Tests\Mapping\Loader7  o#Symfony\Component\Validator\Tests\Mapping\Factory/ _#Symfony\Component\Validator\Tests\Mapping5 k#Symfony\Component\Validator\Tests\Mapping\Cache0 a#Symfony\Component\Validator\Tests\Fixtures' O#Symfony\Component\Validator\Tests ##Constraints3 g#Symfony\Component\Validator\Tests\Constraints0 a#Symfony\Component\Validator\Mapping\Loader1 c#Symfony\Component\Validator\Mapping\Factory/ _#Symfony\Component\Validator\Mapping\Cache) S#Symfony\Component\Validator\Mapping+ W#Symfony\Component\Validator\Exception) S#Symfony\Component\Validator\Context8 q#Symfony\Component\Validator\Constraints\Collection- [#Symfony\Component\Validator\Constraints! C#Symfony\Component\Validator 3!malkusch\index\test )!malkusch\index 3!malkusch\autoloader %!malkusch\bav 3!malkusch\autoloader %!malkusch\bav
 3!malkusch\autoloader#	 E Egulias\Tests\EmailValidator# E Egulias\EmailValidator\Tests$ G Egulias\EmailValidator\Parser 9 Egulias\EmailValidator# E Egulias\Tests\EmailValidator# E Egulias\EmailValidator\Tests$ G Egulias\EmailValidator\Parser 9 Egulias\EmailValidator 5Hoa\Visitor\Registry  #Hoa\Visitor 5Hoa\String\Test\Unit~ !Hoa\String} )Hoa\String\Bin| /wHoa\Ruler\Visitor{ +wHoa\Ruler\Modelz 3wHoa\Ruler\Model\Bagy 3wHoa\Ruler\Exceptionx wHoa\Rulerw 'wHoa\Ruler\Binv /Hoa\Regex\Visitoru Hoa\Regext 5Hoa\Compiler\Visitor!s AHoa\Compiler\Test\Unit\Llkr 9Hoa\Compiler\Test\Unitq =Hoa\Compiler\Llk\Samplerp 7Hoa\Compiler\Llk\Ruleo -Hoa\Compiler\Llkn %Hoa\Compilerm 9Hoa\Compiler\Exception   n nU;zj[5[5xBs@


p
a
D
+
						A	&	dO,|dLo<FteH/E*tR8+P                                           >G }|NSymfony\Bridge\Doctrine\DependencyInjection\CompilerPass1F c|NSymfony\Bridge\Doctrine\DependencyInjection*E U|NSymfony\Bridge\Doctrine\DataFixtures+D W|NSymfony\Bridge\Doctrine\DataCollectorC ;|NSymfony\Bridge\Doctrine)B S|NSymfony\Bridge\Doctrine\CacheWarmer
A :Acme@ /:Monolog\Processor? ?:Monolog\Handler\SyslogUdp$> I:Monolog\Handler\FingersCrossed= 5:Monolog\Handler\Curl< +:Monolog\Handler; /:Monolog\Formatter: :Monolog9 #Silex\Route8 /Silex\Application7 /Silex\Tests\RouteD6 Silex\Tests\Provider\ValidatorServiceProviderTest\Constraint5 5Silex\Tests\Provider 4 ?Silex\Tests\EventListener3 #Silex\Tests2 ;Silex\Tests\Application1 !Silex\Util0 )Silex\Provider/ +Silex\Exception. 3Silex\EventListener- Silex, global'+ M[Symfony\Bundle\WebProfilerBundle,* W[Symfony\Bundle\WebProfilerBundle\Twig-) Y[Symfony\Bundle\WebProfilerBundle\Tests6( k[Symfony\Bundle\WebProfilerBundle\Tests\Profiler;' u[Symfony\Bundle\WebProfilerBundle\Tests\EventListenerB& [Symfony\Bundle\WebProfilerBundle\Tests\DependencyInjection8% o[Symfony\Bundle\WebProfilerBundle\Tests\Controller5$ i[Symfony\Bundle\WebProfilerBundle\Tests\Command0# _[Symfony\Bundle\WebProfilerBundle\Profiler5" i[Symfony\Bundle\WebProfilerBundle\EventListener;! u[Symfony\Bundle\WebProfilerBundle\DependencyInjection2  c[Symfony\Bundle\WebProfilerBundle\Controller/ ][Symfony\Bundle\WebProfilerBundle\Command )Silex\Provider )Silex\Provider #Silex\Route /Silex\Application /Silex\Tests\RouteD Silex\Tests\Provider\ValidatorServiceProviderTest\Constraint 5Silex\Tests\Provider  ?Silex\Tests\EventListener #Silex\Tests ;Silex\Tests\Application !Silex\Util )Silex\Provider +Silex\Exception 3Silex\EventListener Silex #Silex\Route /Silex\Application /Silex\Tests\RouteD Silex\Tests\Provider\ValidatorServiceProviderTest\Constraint 5Silex\Tests\Provider 
 ?Silex\Tests\EventListener	 #Silex\Tests ;Silex\Tests\Application !Silex\Util )Silex\Provider +Silex\Exception 3Silex\EventListener Silex) SPSymfony\Component\CssSelector\XPath3 gPSymfony\Component\CssSelector\XPath\Extension/  _PSymfony\Component\CssSelector\Tests\XPath9 sPSymfony\Component\CssSelector\Tests\Parser\Shortcut0~ aPSymfony\Component\CssSelector\Tests\Parser8} qPSymfony\Component\CssSelector\Tests\Parser\Handler.| ]PSymfony\Component\CssSelector\Tests\Node){ SPSymfony\Component\CssSelector\Tests4z iPSymfony\Component\CssSelector\Parser\Tokenizer3y gPSymfony\Component\CssSelector\Parser\Shortcut*x UPSymfony\Component\CssSelector\Parser2w ePSymfony\Component\CssSelector\Parser\Handler(v QPSymfony\Component\CssSelector\Node-u [PSymfony\Component\CssSelector\Exception#t GPSymfony\Component\CssSelector(s QOSymfony\Component\BrowserKit\Tests"r EOSymfony\Component\BrowserKitq globalp global	o Foon My\Spacem globall Hglobal+k UHJakubOnderka\PhpParallelLint\Process#j EHJakubOnderka\PhpParallelLinti zglobalh |xglobalg 7|xSecurityLibTest\Mocksf 7|xPasswordLibTest\Mockse 3|xSecurityLib\BigMathd #|xSecurityLibc |iglobal!b A|iRandomLibTest\Mocks\Randoma 3|iRandomLibTest\Mocks` -|iRandomLib\Source_ +|iRandomLib\Mixer^ |iRandomLib] = UMoontoast\Math\Exception\ ) UMoontoast\Math [ ?@EMtHaml\Tests\Support\TwigZ =@EMtHaml\Tests\Support\Php   Q  RlEd1vG{F


s
I
 				{	N	QT#rQ)wI{X]*k5N                . ]|NSymfony\Bundle\FrameworkBundle\HttpCache- [|NSymfony\Bundle\FrameworkBundle\Fragment2 e|NSymfony\Bundle\FrameworkBundle\EventListener8 q|NSymfony\Bundle\FrameworkBundle\DependencyInjectionB |NSymfony\Bundle\FrameworkBundle\DependencyInjection\Compiler2 e|NSymfony\Bundle\FrameworkBundle\DataCollector/ _|NSymfony\Bundle\FrameworkBundle\Controller3 g|NSymfony\Bundle\FrameworkBundle\Console\Helper7 o|NSymfony\Bundle\FrameworkBundle\Console\Descriptor, Y|NSymfony\Bundle\FrameworkBundle\Console, Y|NSymfony\Bundle\FrameworkBundle\Command$ I|NSymfony\Bundle\FrameworkBundle0 a|NSymfony\Bundle\FrameworkBundle\CacheWarmer: u|NSymfony\Bundle\DebugBundle\Tests\DependencyInjectionD
 |NSymfony\Bundle\DebugBundle\Tests\DependencyInjection\Compiler4	 i|NSymfony\Bundle\DebugBundle\DependencyInjection= {|NSymfony\Bundle\DebugBundle\DependencyInjection\Compiler  A|NSymfony\Bundle\DebugBundle% K|NSymfony\Bridge\Twig\Translation% K|NSymfony\Bridge\Twig\TokenParser ?|NSymfony\Bridge\Twig\Tests+ W|NSymfony\Bridge\Twig\Tests\Translation+ W|NSymfony\Bridge\Twig\Tests\TokenParser+ W|NSymfony\Bridge\Twig\Tests\NodeVisitor$  I|NSymfony\Bridge\Twig\Tests\Node2 e|NSymfony\Bridge\Twig\Tests\Extension\Fixtures)~ S|NSymfony\Bridge\Twig\Tests\Extension'} O|NSymfony\Bridge\Twig\Tests\Command%| K|NSymfony\Bridge\Twig\NodeVisitor{ =|NSymfony\Bridge\Twig\Nodez =|NSymfony\Bridge\Twig\Form#y G|NSymfony\Bridge\Twig\Extension'x O|NSymfony\Bridge\Twig\DataCollector!w C|NSymfony\Bridge\Twig\Commandv 3|NSymfony\Bridge\Twig.u ]|NSymfony\Bridge\Swiftmailer\DataCollector;t w|NSymfony\Bridge\ProxyManager\Tests\LazyProxy\PhpDumper>s }|NSymfony\Bridge\ProxyManager\Tests\LazyProxy\Instantiatorr |Nglobal8q q|NSymfony\Bridge\ProxyManager\Tests\LazyProxy\Dumper1p c|NSymfony\Bridge\ProxyManager\Tests\LazyProxy5o k|NSymfony\Bridge\ProxyManager\LazyProxy\PhpDumper8n q|NSymfony\Bridge\ProxyManager\LazyProxy\Instantiatorm 9|NSymfony\Bridge\PhpUnit,l Y|NSymfony\Bridge\Monolog\Tests\Processor9k s|NSymfony\Bridge\Monolog\Tests\Handler\FingersCrossed*j U|NSymfony\Bridge\Monolog\Tests\Handler&i M|NSymfony\Bridge\Monolog\Processorh 9|NSymfony\Bridge\Monolog3g g|NSymfony\Bridge\Monolog\Handler\FingersCrossed$f I|NSymfony\Bridge\Monolog\Handler&e M|NSymfony\Bridge\Monolog\Formatter'd O|NSymfony\Bridge\Doctrine\Validator3c g|NSymfony\Bridge\Doctrine\Validator\Constraints9b s|NSymfony\Bridge\Doctrine\Tests\Validator\Constraints1a c|NSymfony\Bridge\Doctrine\Tests\Security\User*` U|NSymfony\Bridge\Doctrine\Tests\Logger2_ e|NSymfony\Bridge\Doctrine\Tests\HttpFoundation-^ [|NSymfony\Bridge\Doctrine\Tests\Form\Type(] Q|NSymfony\Bridge\Doctrine\Tests\Form8\ q|NSymfony\Bridge\Doctrine\Tests\Form\DataTransformer3[ g|NSymfony\Bridge\Doctrine\Tests\Form\ChoiceList,Z Y|NSymfony\Bridge\Doctrine\Tests\Fixtures6Y m|NSymfony\Bridge\Doctrine\Tests\ExpressionLanguage7X o|NSymfony\Bridge\Doctrine\Tests\DependencyInjectionEW 	|NSymfony\Bridge\Doctrine\Tests\DependencyInjection\CompilerPass0V a|NSymfony\Bridge\Doctrine\Tests\DataFixtures1U c|NSymfony\Bridge\Doctrine\Tests\DataCollector#T G|NSymfony\Bridge\Doctrine\Tests"S E|NSymfony\Bridge\Doctrine\Test+R W|NSymfony\Bridge\Doctrine\Security\User1Q c|NSymfony\Bridge\Doctrine\Security\RememberMe$P I|NSymfony\Bridge\Doctrine\Logger,O Y|NSymfony\Bridge\Doctrine\HttpFoundation'N O|NSymfony\Bridge\Doctrine\Form\Type0M a|NSymfony\Bridge\Doctrine\Form\EventListener"L E|NSymfony\Bridge\Doctrine\Form2K e|NSymfony\Bridge\Doctrine\Form\DataTransformer-J [|NSymfony\Bridge\Doctrine\Form\ChoiceList0I a|NSymfony\Bridge\Doctrine\ExpressionLanguageHH |NSymfony\Bridge\Doctrine\DependencyInjection\Security\UserProvider   @  g.ca!]uH+



}
G
		Om8 x9 e79_'VIH                                                                                                         UX )|NSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\CsrfFormLoginBundle\FormPW |NSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\CsrfFormLoginBundle[V 5|NSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\CsrfFormLoginBundle\ControllerMU |NSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\AclBundle\EntityFT |NSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\AclBundle4S i|NSymfony\Bundle\SecurityBundle\Tests\Functional8R q|NSymfony\Bundle\SecurityBundle\Tests\Functional\appOQ |NSymfony\Bundle\SecurityBundle\Tests\DependencyInjection\Security\FactoryTP '|NSymfony\Bundle\SecurityBundle\Tests\DependencyInjection\Fixtures\UserProvider=O {|NSymfony\Bundle\SecurityBundle\Tests\DependencyInjection7N o|NSymfony\Bundle\SecurityBundle\Tests\DataCollector5M k|NSymfony\Bundle\SecurityBundle\Templating\Helper#L G|NSymfony\Bundle\SecurityBundle,K Y|NSymfony\Bundle\SecurityBundle\Security1J c|NSymfony\Bundle\SecurityBundle\EventListenerNI |NSymfony\Bundle\SecurityBundle\DependencyInjection\Security\UserProviderIH |NSymfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory7G o|NSymfony\Bundle\SecurityBundle\DependencyInjectionAF |NSymfony\Bundle\SecurityBundle\DependencyInjection\Compiler1E c|NSymfony\Bundle\SecurityBundle\DataCollector+D W|NSymfony\Bundle\SecurityBundle\Command.C ]|NSymfony\Bundle\FrameworkBundle\Validator0B a|NSymfony\Bundle\FrameworkBundle\Translation4A i|NSymfony\Bundle\FrameworkBundle\Tests\Validator6@ m|NSymfony\Bundle\FrameworkBundle\Tests\Translation<? y|NSymfony\Bundle\FrameworkBundle\Tests\Templating\LoaderF> |NSymfony\Bundle\FrameworkBundle\Tests\Templating\Helper\Fixtures<= y|NSymfony\Bundle\FrameworkBundle\Tests\Templating\Helper5< k|NSymfony\Bundle\FrameworkBundle\Tests\Templating2; e|NSymfony\Bundle\FrameworkBundle\Tests\Routing5: k|NSymfony\Bundle\FrameworkBundle\Tests\FunctionalH9 |NSymfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\8 7|NSymfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\DependencyInjectionc7 E|NSymfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\DependencyInjection\ConfigS6 %|NSymfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\Controller95 s|NSymfony\Bundle\FrameworkBundle\Tests\Functional\app34 g|NSymfony\Bundle\FrameworkBundle\Tests\Fragment!3 C|NTestBundle\Sensio\FooBundle,2 Y|NTestBundle\Sensio\FooBundle\Controller%1 K|NTestBundle\Sensio\Cms\FooBundle00 a|NTestBundle\Sensio\Cms\FooBundle\Controller/ 5|NTestBundle\FooBundle*. U|NTestBundle\FooBundle\Controller\Test)- S|NTestBundle\FooBundle\Controller\Sub%, K|NTestBundle\FooBundle\Controller!+ C|NTestBundle\Fabpot\FooBundle,* Y|NTestBundle\Fabpot\FooBundle\Controller>) }|NSymfony\Bundle\FrameworkBundle\Tests\Fixtures\BaseBundle>( }|NSymfony\Bundle\FrameworkBundle\Tests\DependencyInjectionH' |NSymfony\Bundle\FrameworkBundle\Tests\DependencyInjection\Compiler5& k|NSymfony\Bundle\FrameworkBundle\Tests\Controller=% {|NSymfony\Bundle\FrameworkBundle\Tests\Console\Descriptor2$ e|NSymfony\Bundle\FrameworkBundle\Tests\Console2# e|NSymfony\Bundle\FrameworkBundle\Tests\CommandM" |NSymfony\Bundle\FrameworkBundle\Tests\Command\CacheClearCommand\FixtureE! 	|NSymfony\Bundle\FrameworkBundle\Tests\Command\CacheClearCommand*  U|NSymfony\Bundle\FrameworkBundle\Tests6 m|NSymfony\Bundle\FrameworkBundle\Tests\CacheWarmer) S|NSymfony\Bundle\FrameworkBundle\Test6 m|NSymfony\Bundle\FrameworkBundle\Templating\Loader6 m|NSymfony\Bundle\FrameworkBundle\Templating\Helper/ _|NSymfony\Bundle\FrameworkBundle\Templating5 k|NSymfony\Bundle\FrameworkBundle\Templating\Asset, Y|NSymfony\Bundle\FrameworkBundle\Routing   T  <wBV `-


y
Q
"				m	9\"i:qKy\?tgWF3{Ga:d&                          -, [|NSymfony\Component\Config\Tests\Resource++ W|NSymfony\Component\Config\Tests\Loader;* w|NSymfony\Component\Config\Tests\Fixtures\Configuration.) ]|NSymfony\Component\Config\Tests\Exception6( m|NSymfony\Component\Config\Tests\Definition\Dumper7' o|NSymfony\Component\Config\Tests\Definition\Builder/& _|NSymfony\Component\Config\Tests\Definition$% I|NSymfony\Component\Config\Tests'$ O|NSymfony\Component\Config\Resource%# K|NSymfony\Component\Config\Loader(" Q|NSymfony\Component\Config\Exception3! g|NSymfony\Component\Config\Definition\Exception0  a|NSymfony\Component\Config\Definition\Dumper1 c|NSymfony\Component\Config\Definition\Builder) S|NSymfony\Component\Config\Definition =|NSymfony\Component\Config! C|NAcme\DemoLib\Lets\Go\Deeper %|NAcme\DemoLib |NClassCons	 |NFoo #|NNamespaced2 !|NNamespaced |NClassMap |NFoo\Bar
 |NBeta |NAlpha |N 1|NClassesWithParents 9|NNamespaceCollision\C\B 9|NNamespaceCollision\A\B )|NApc\Namespaced  A|NApc\NamespaceCollision\A\B =|NApc\NamespaceCollision\A 5|NNamespaceCollision\C
 5|NNamespaceCollision\A)	 S|NSymfony\Component\ClassLoader\Tests# G|NSymfony\Component\ClassLoader( Q|NSymfony\Component\BrowserKit\Tests" E|NSymfony\Component\BrowserKit- [|NSymfony\Component\Asset\VersionStrategy# G|NSymfony\Component\Asset\Tests ;|NSymfony\Component\Asset' O|NSymfony\Component\Asset\Exception% K|NSymfony\Component\Asset\Context&  M|NSymfony\Bundle\WebProfilerBundle+ W|NSymfony\Bundle\WebProfilerBundle\Twig,~ Y|NSymfony\Bundle\WebProfilerBundle\Tests5} k|NSymfony\Bundle\WebProfilerBundle\Tests\Profiler:| u|NSymfony\Bundle\WebProfilerBundle\Tests\EventListenerA{ |NSymfony\Bundle\WebProfilerBundle\Tests\DependencyInjection7z o|NSymfony\Bundle\WebProfilerBundle\Tests\Controller4y i|NSymfony\Bundle\WebProfilerBundle\Tests\Command/x _|NSymfony\Bundle\WebProfilerBundle\Profiler4w i|NSymfony\Bundle\WebProfilerBundle\EventListener:v u|NSymfony\Bundle\WebProfilerBundle\DependencyInjection1u c|NSymfony\Bundle\WebProfilerBundle\Controller.t ]|NSymfony\Bundle\WebProfilerBundle\Commands ?|NSymfony\Bundle\TwigBundle+r W|NSymfony\Bundle\TwigBundle\TokenParser1q c|NSymfony\Bundle\TwigBundle\Tests\TokenParser,p Y|NSymfony\Bundle\TwigBundle\Tests\Loader%o K|NSymfony\Bundle\TwigBundle\Tests/n _|NSymfony\Bundle\TwigBundle\Tests\Extension9m s|NSymfony\Bundle\TwigBundle\Tests\DependencyInjectionCl |NSymfony\Bundle\TwigBundle\Tests\DependencyInjection\Compiler0k a|NSymfony\Bundle\TwigBundle\Tests\Controller$j I|NSymfony\Bundle\TwigBundle\Node&i M|NSymfony\Bundle\TwigBundle\Loader)h S|NSymfony\Bundle\TwigBundle\ExtensionAg |NSymfony\Bundle\TwigBundle\DependencyInjection\Configurator3f g|NSymfony\Bundle\TwigBundle\DependencyInjection<e y|NSymfony\Bundle\TwigBundle\DependencyInjection\Compiler%d K|NSymfony\Bundle\TwigBundle\Debug*c U|NSymfony\Bundle\TwigBundle\Controller'b O|NSymfony\Bundle\TwigBundle\Command+a W|NSymfony\Bundle\TwigBundle\CacheWarmer2` e|NSymfony\Bundle\SecurityBundle\Twig\ExtensionU_ )|NSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FormLoginBundle\SecurityL^ |NSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FormLoginBundle`] ?|NSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FormLoginBundle\DependencyInjectionW\ -|NSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FormLoginBundle\Controller^[ ;|NSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FirewallEntryPointBundle\SecurityUZ )|NSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FirewallEntryPointBundleiY Q|NSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FirewallEntryPointBundle\DependencyInjection   P  a9j?c2 tEg2


l
;
 			_	)R,e7 [c&yeY&Vi?k&                                 /| _|NSymfony\Component\ExpressionLanguage\Node*{ U|NSymfony\Component\ExpressionLanguageBz |NSymfony\Component\EventDispatcher\Tests\DependencyInjection3y g|NSymfony\Component\EventDispatcher\Tests\Debug-x [|NSymfony\Component\EventDispatcher\Tests;w w|NSymfony\Component\EventDispatcher\DependencyInjection-v [|NSymfony\Component\EventDispatcher\Debug'u O|NSymfony\Component\EventDispatcher.t ]|NSymfony\Component\DomCrawler\Tests\Field(s Q|NSymfony\Component\DomCrawler\Tests(r Q|NSymfony\Component\DomCrawler\Field"q E|NSymfony\Component\DomCrawler>p }|NSymfony\Component\DependencyInjection\Tests\ParameterBag8o q|NSymfony\Component\DependencyInjection\Tests\LoaderFn |NSymfony\Component\DependencyInjection\Tests\LazyProxy\PhpDumperIm |NSymfony\Component\DependencyInjection\Tests\LazyProxy\Instantiator0l a|NSymfony\Component\DependencyInjection\Dump	k |NBarj #|NContainer14;i w|NSymfony\Component\DependencyInjection\Tests\Extension8h q|NSymfony\Component\DependencyInjection\Tests\Dumper1g c|NSymfony\Component\DependencyInjection\Tests:f u|NSymfony\Component\DependencyInjection\Tests\Compiler8e q|NSymfony\Component\DependencyInjection\ParameterBag2d e|NSymfony\Component\DependencyInjection\Loader?c |NSymfony\Component\DependencyInjection\LazyProxy\PhpDumperCb |NSymfony\Component\DependencyInjection\LazyProxy\Instantiator5a k|NSymfony\Component\DependencyInjection\Extension5` k|NSymfony\Component\DependencyInjection\Exception2_ e|NSymfony\Component\DependencyInjection\Dumper4^ i|NSymfony\Component\DependencyInjection\Compiler+] W|NSymfony\Component\DependencyInjection-\ [|NSymfony\Component\Debug\Tests\Fixtures2,[ Y|NSymfony\Component\Debug\Tests\Fixtures5Z k|NSymfony\Component\Debug\Tests\FatalErrorHandler-Y [|NSymfony\Component\Debug\Tests\Exception#X G|NSymfony\Component\Debug\Tests/W _|NSymfony\Component\Debug\FatalErrorHandler,V Y|NSymfony\Component\HttpKernel\Exception'U O|NSymfony\Component\Debug\ExceptionT ;|NSymfony\Component\Debug)S S|NSymfony\Component\CssSelector\XPath3R g|NSymfony\Component\CssSelector\XPath\Extension/Q _|NSymfony\Component\CssSelector\Tests\XPath9P s|NSymfony\Component\CssSelector\Tests\Parser\Shortcut0O a|NSymfony\Component\CssSelector\Tests\Parser8N q|NSymfony\Component\CssSelector\Tests\Parser\Handler.M ]|NSymfony\Component\CssSelector\Tests\Node)L S|NSymfony\Component\CssSelector\Tests4K i|NSymfony\Component\CssSelector\Parser\Tokenizer3J g|NSymfony\Component\CssSelector\Parser\Shortcut*I U|NSymfony\Component\CssSelector\Parser2H e|NSymfony\Component\CssSelector\Parser\Handler(G Q|NSymfony\Component\CssSelector\Node-F [|NSymfony\Component\CssSelector\Exception#E G|NSymfony\Component\CssSelector,D Y|NSymfony\Component\Console\Tests\Tester+C W|NSymfony\Component\Console\Tests\Style,B Y|NSymfony\Component\Console\Tests\Output,A Y|NSymfony\Component\Console\Tests\Logger+@ W|NSymfony\Component\Console\Tests\Input,? Y|NSymfony\Component\Console\Tests\Helper/> _|NSymfony\Component\Console\Tests\Formatter.= ]|NSymfony\Component\Console\Tests\Fixtures0< a|NSymfony\Component\Console\Tests\Descriptor-; [|NSymfony\Component\Console\Tests\Command%: K|NSymfony\Component\Console\Tests&9 M|NSymfony\Component\Console\Tester%8 K|NSymfony\Component\Console\Style(7 Q|NSymfony\Component\Console\Question&6 M|NSymfony\Component\Console\Output&5 M|NSymfony\Component\Console\Logger%4 K|NSymfony\Component\Console\Input&3 M|NSymfony\Component\Console\Helper)2 S|NSymfony\Component\Console\Formatter%1 K|NSymfony\Component\Console\Event*0 U|NSymfony\Component\Console\Descriptor'/ O|NSymfony\Component\Console\Command. ?|NSymfony\Component\Console#- G|NSymfony\Component\Config\Util   I  X xL!QhIa8



Z
				F	Ya$p8 d@t+e,p3f   ;E w|NSymfony\Component\Form\Tests\Extension\Validator\TypeED 	|NSymfony\Component\Form\Tests\Extension\Validator\EventListenerCC |NSymfony\Component\Form\Tests\Extension\Validator\Constraints;B w|NSymfony\Component\Form\Tests\Extension\HttpFoundationJA |NSymfony\Component\Form\Tests\Extension\HttpFoundation\EventListener?@ |NSymfony\Component\Form\Tests\Extension\DataCollector\Type:? u|NSymfony\Component\Form\Tests\Extension\DataCollector6> m|NSymfony\Component\Form\Tests\Extension\Csrf\Type?= |NSymfony\Component\Form\Tests\Extension\Csrf\EventListener>< }|NSymfony\Component\Form\Tests\Extension\Csrf\CsrfProvider6; m|NSymfony\Component\Form\Tests\Extension\Core\Type?: |NSymfony\Component\Form\Tests\Extension\Core\EventListenerB9 |NSymfony\Component\Form\Tests\Extension\Core\DataTransformer<8 y|NSymfony\Component\Form\Tests\Extension\Core\DataMapperF7 |NSymfony\Component\Form\Tests\Extension\Core\ChoiceList\Fixtures<6 y|NSymfony\Component\Form\Tests\Extension\Core\ChoiceList55 k|NSymfony\Component\Form\Tests\ChoiceList\Factory-4 [|NSymfony\Component\Form\Tests\ChoiceList"3 E|NSymfony\Component\Form\Tests!2 C|NSymfony\Component\Form\Test"1 E|NSymfony\Component\Form\GuessA0 |NSymfony\Component\Form\Extension\Validator\ViolationMapper0/ a|NSymfony\Component\Form\Extension\Validator5. k|NSymfony\Component\Form\Extension\Validator\Util5- k|NSymfony\Component\Form\Extension\Validator\Type>, }|NSymfony\Component\Form\Extension\Validator\EventListener<+ y|NSymfony\Component\Form\Extension\Validator\Constraints1* c|NSymfony\Component\Form\Extension\Templating:) u|NSymfony\Component\Form\Extension\HttpFoundation\Type5( k|NSymfony\Component\Form\Extension\HttpFoundationD' |NSymfony\Component\Form\Extension\HttpFoundation\EventListener:& u|NSymfony\Component\Form\Extension\DependencyInjection9% s|NSymfony\Component\Form\Extension\DataCollector\Type:$ u|NSymfony\Component\Form\Extension\DataCollector\ProxyC# |NSymfony\Component\Form\Extension\DataCollector\EventListener4" i|NSymfony\Component\Form\Extension\DataCollector0! a|NSymfony\Component\Form\Extension\Csrf\Type9  s|NSymfony\Component\Form\Extension\Csrf\EventListener8 q|NSymfony\Component\Form\Extension\Csrf\CsrfProvider+ W|NSymfony\Component\Form\Extension\Csrf0 a|NSymfony\Component\Form\Extension\Core\Type9 s|NSymfony\Component\Form\Extension\Core\EventListener; w|NSymfony\Component\Form\Extension\Core\DataTransformer6 m|NSymfony\Component\Form\Extension\Core\DataMapper+ W|NSymfony\Component\Form\Extension\Core6 m|NSymfony\Component\Form\Extension\Core\ChoiceList& M|NSymfony\Component\Form\Exception' O|NSymfony\Component\Form\Deprecated0 a|NSymfony\Component\Form\Extension\Core\View, Y|NSymfony\Component\Form\ChoiceList\View/ _|NSymfony\Component\Form\ChoiceList\Factory' O|NSymfony\Component\Form\ChoiceList 9|NSymfony\Component\Form* U|NSymfony\Component\Finder\Tests\Shell- [|NSymfony\Component\Finder\Tests\Iterator$ I|NSymfony\Component\Finder\Tests0 a|NSymfony\Component\Finder\Tests\FakeAdapter/ _|NSymfony\Component\Finder\Tests\Expression/ _|NSymfony\Component\Finder\Tests\Comparator$
 I|NSymfony\Component\Finder\Shell'	 O|NSymfony\Component\Finder\Iterator =|NSymfony\Component\Finder) S|NSymfony\Component\Finder\Expression( Q|NSymfony\Component\Finder\Exception) S|NSymfony\Component\Finder\Comparator& M|NSymfony\Component\Finder\Adapter( Q|NSymfony\Component\Filesystem\Tests" E|NSymfony\Component\Filesystem, Y|NSymfony\Component\Filesystem\Exception5  k|NSymfony\Component\ExpressionLanguage\Tests\Node9 s|NSymfony\Component\ExpressionLanguage\Tests\Fixtures0~ a|NSymfony\Component\ExpressionLanguage\Tests6} m|NSymfony\Component\ExpressionLanguage\ParserCache   F  ?o7	`/vGX!


T
(				t	D	uJc1e/Hell8b:                / _|NSymfony\Component\Intl\Data\Bundle\Writer/
 _|NSymfony\Component\Intl\Data\Bundle\Reader1	 c|NSymfony\Component\Intl\Data\Bundle\Compiler% K|NSymfony\Component\Intl\Collator6 m|NSymfony\Component\HttpKernel\Tests\Profiler\Mock1 c|NSymfony\Component\HttpKernel\Tests\Profiler2 e|NSymfony\Component\HttpKernel\Tests\HttpCache1 c|NSymfony\Component\HttpKernel\Tests\Fragment1 c|NSymfony\Component\HttpKernel\Tests\FixturesI |NSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle] 9|NSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\DependencyInjectionQ  !|NSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\CommandJ |NSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionNotValidBundle^~ ;|NSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionNotValidBundle\DependencyInjectionH} |NSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionLoadedBundle\| 7|NSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionLoadedBundle\DependencyInjectionH{ |NSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionAbsentBundle6z m|NSymfony\Component\HttpKernel\Tests\EventListener<y y|NSymfony\Component\HttpKernel\Tests\DependencyInjection.x ]|NSymfony\Component\HttpKernel\Tests\Debug;w w|NSymfony\Component\HttpKernel\Tests\DataCollector\Util6v m|NSymfony\Component\HttpKernel\Tests\DataCollector3u g|NSymfony\Component\HttpKernel\Tests\Controller/t _|NSymfony\Component\HttpKernel\Tests\Config(s Q|NSymfony\Component\HttpKernel\Tests4r i|NSymfony\Component\HttpKernel\Tests\CacheWarmer5q k|NSymfony\Component\HttpKernel\Tests\CacheClearer/p _|NSymfony\Component\HttpKernel\Tests\Bundle+o W|NSymfony\Component\HttpKernel\Profiler&n M|NSymfony\Component\HttpKernel\Log,m Y|NSymfony\Component\HttpKernel\HttpCache+l W|NSymfony\Component\HttpKernel\Fragment0k a|NSymfony\Component\HttpKernel\EventListener(j Q|NSymfony\Component\HttpKernel\Event6i m|NSymfony\Component\HttpKernel\DependencyInjection(h Q|NSymfony\Component\HttpKernel\Debug5g k|NSymfony\Component\HttpKernel\DataCollector\Util0f a|NSymfony\Component\HttpKernel\DataCollector-e [|NSymfony\Component\HttpKernel\Controller)d S|NSymfony\Component\HttpKernel\Config"c E|NSymfony\Component\HttpKernel.b ]|NSymfony\Component\HttpKernel\CacheWarmer/a _|NSymfony\Component\HttpKernel\CacheClearer)` S|NSymfony\Component\HttpKernel\BundleC_ |NSymfony\Component\HttpFoundation\Tests\Session\Storage\Proxy<^ y|NSymfony\Component\HttpFoundation\Tests\Session\StorageE] 	|NSymfony\Component\HttpFoundation\Tests\Session\Storage\Handler4\ i|NSymfony\Component\HttpFoundation\Tests\Session:[ u|NSymfony\Component\HttpFoundation\Tests\Session\Flash>Z }|NSymfony\Component\HttpFoundation\Tests\Session\Attribute:Y u|NSymfony\Component\HttpFoundation\Tests\File\MimeType1X c|NSymfony\Component\HttpFoundation\Tests\File,W Y|NSymfony\Component\HttpFoundation\Tests<V y|NSymfony\Component\HttpFoundation\Session\Storage\Proxy6U m|NSymfony\Component\HttpFoundation\Session\Storage>T }|NSymfony\Component\HttpFoundation\Session\Storage\Handler.S ]|NSymfony\Component\HttpFoundation\Session4R i|NSymfony\Component\HttpFoundation\Session\Flash8Q q|NSymfony\Component\HttpFoundation\Session\Attribute4P i|NSymfony\Component\HttpFoundation\File\MimeType+O W|NSymfony\Component\HttpFoundation\File5N k|NSymfony\Component\HttpFoundation\File\Exception&M M|NSymfony\Component\HttpFoundation!L C|NSymfony\Component\Form\Util'K O|NSymfony\Component\Form\Tests\Util(J Q|NSymfony\Component\Form\Tests\Guess+I W|NSymfony\Component\Form\Tests\FixturesGH |NSymfony\Component\Form\Tests\Extension\Validator\ViolationMapper6G m|NSymfony\Component\Form\Tests\Extension\Validator;F w|NSymfony\Component\Form\Tests\Extension\Validator\Util   P  |DS%L?s>




b
1
				Z	*Y0zNk8UT(e1zMW             3[ g|NSymfony\Component\Security\Core\Authorization%Z K|NSymfony\Component\Security\CoreCY |NSymfony\Component\Security\Core\Authentication\Token\Storage:X u|NSymfony\Component\Security\Core\Authentication\Token?W |NSymfony\Component\Security\Core\Authentication\RememberMe=V {|NSymfony\Component\Security\Core\Authentication\Provider4U i|NSymfony\Component\Security\Core\Authentication*T U|NSymfony\Component\Security\Acl\Voter0S a|NSymfony\Component\Security\Acl\Tests\Voter5R k|NSymfony\Component\Security\Acl\Tests\PermissionIQ |NAcme\DemoBundle\Proxy\__CG__\Symfony\Component\Security\Acl\Tests\1P c|NSymfony\Component\Security\Acl\Tests\Domain/O _|NSymfony\Component\Security\Acl\Tests\Dbal/N _|NSymfony\Component\Security\Acl\Permission.M ]|NSymfony\Component\Security\Acl\Exception+L W|NSymfony\Component\Security\Acl\Domain)K S|NSymfony\Component\Security\Acl\Dbal-J [|NSymfony\Component\Routing\Tests\Matcher4I i|NSymfony\Component\Routing\Tests\Matcher\Dumper,H Y|NSymfony\Component\Routing\Tests\Loader/G _|NSymfony\Component\Routing\Tests\Generator6F m|NSymfony\Component\Routing\Tests\Generator\DumperEE 	|NSymfony\Component\Routing\Tests\Fixtures\OtherAnnotatedClasses.D ]|NSymfony\Component\Routing\Tests\Fixtures?C |NSymfony\Component\Routing\Tests\Fixtures\AnnotatedClasses%B K|NSymfony\Component\Routing\Tests0A a|NSymfony\Component\Routing\Tests\Annotation.@ ]|NSymfony\Component\Routing\Matcher\Dumper'? O|NSymfony\Component\Routing\Matcher&> M|NSymfony\Component\Routing\Loader)= S|NSymfony\Component\Routing\Generator0< a|NSymfony\Component\Routing\Generator\Dumper); S|NSymfony\Component\Routing\Exception: ?|NSymfony\Component\Routing*9 U|NSymfony\Component\Routing\Annotation,8 Y|NSymfony\Component\PropertyAccess\Tests57 k|NSymfony\Component\PropertyAccess\Tests\Fixtures&6 M|NSymfony\Component\PropertyAccess05 a|NSymfony\Component\PropertyAccess\Exception%4 K|NSymfony\Component\Process\Tests%3 K|NSymfony\Component\Process\Pipes2 ?|NSymfony\Component\Process)1 S|NSymfony\Component\Process\Exception-0 [|NSymfony\Component\OptionsResolver\Tests'/ O|NSymfony\Component\OptionsResolver1. c|NSymfony\Component\OptionsResolver\Exception)- S|NSymfony\Component\Locale\Tests\Stub$, I|NSymfony\Component\Locale\Tests#+ G|NSymfony\Component\Locale\Stub.* ]|NSymfony\Component\Locale\Stub\DateFormat) =|NSymfony\Component\Locale(( Q|NSymfony\Component\Locale\Exception!' C|NSymfony\Component\Intl\Util'& O|NSymfony\Component\Intl\Tests\Util?% |NSymfony\Component\Intl\Tests\NumberFormatter\Verification2$ e|NSymfony\Component\Intl\Tests\NumberFormatter6# m|NSymfony\Component\Intl\Tests\Locale\Verification)" S|NSymfony\Component\Intl\Tests\Locale7! o|NSymfony\Component\Intl\Tests\Globals\Verification*  U|NSymfony\Component\Intl\Tests\Globals= {|NSymfony\Component\Intl\Tests\DateFormatter\Verification0 a|NSymfony\Component\Intl\Tests\DateFormatter, Y|NSymfony\Component\Intl\Tests\Data\Util5 k|NSymfony\Component\Intl\Tests\Data\Provider\Json0 a|NSymfony\Component\Intl\Tests\Data\Provider5 k|NSymfony\Component\Intl\Tests\Data\Bundle\Writer5 k|NSymfony\Component\Intl\Tests\Data\Bundle\Reader8 q|NSymfony\Component\Intl\Tests\Collator\Verification+ W|NSymfony\Component\Intl\Tests\Collator+ W|NSymfony\Component\Intl\ResourceBundle, Y|NSymfony\Component\Intl\NumberFormatter# G|NSymfony\Component\Intl\Locale 9|NSymfony\Component\Intl$ I|NSymfony\Component\Intl\Globals& M|NSymfony\Component\Intl\Exception* U|NSymfony\Component\Intl\DateFormatter5 k|NSymfony\Component\Intl\DateFormatter\DateFormat& M|NSymfony\Component\Intl\Data\Util* U|NSymfony\Component\Intl\Data\Provider+ W|NSymfony\Component\Intl\Data\Generator   K  f4:n,]*e8


s
E
			a	9	pAs:_a4hCs8d@nA                    /& _|NSymfony\Component\Templating\Tests\Helper1% c|NSymfony\Component\Templating\Tests\Fixtures($ Q|NSymfony\Component\Templating\Tests*# U|NSymfony\Component\Templating\Storage)" S|NSymfony\Component\Templating\Loader)! S|NSymfony\Component\Templating\Helper"  E|NSymfony\Component\Templating( Q|NSymfony\Component\Templating\Asset' O|NSymfony\Component\Stopwatch\Tests! C|NSymfony\Component\Stopwatch( Q|NSymfony\Component\Serializer\Tests3 g|NSymfony\Component\Serializer\Tests\Normalizer6 m|NSymfony\Component\Serializer\Tests\NameConverter7 o|NSymfony\Component\Serializer\Tests\Mapping\Loader8 q|NSymfony\Component\Serializer\Tests\Mapping\Factory0 a|NSymfony\Component\Serializer\Tests\Mapping1 c|NSymfony\Component\Serializer\Tests\Fixtures0 a|NSymfony\Component\Serializer\Tests\Encoder3 g|NSymfony\Component\Serializer\Tests\Annotation" E|NSymfony\Component\Serializer- [|NSymfony\Component\Serializer\Normalizer0 a|NSymfony\Component\Serializer\NameConverter1 c|NSymfony\Component\Serializer\Mapping\Loader2 e|NSymfony\Component\Serializer\Mapping\Factory* U|NSymfony\Component\Serializer\Mapping, Y|NSymfony\Component\Serializer\Exception* U|NSymfony\Component\Serializer\Encoder- [|NSymfony\Component\Serializer\Annotation+
 W|NSymfony\Component\Security\Tests\CoreA	 |NSymfony\Component\Security\Tests\Core\Authentication\Voter3 g|NSymfony\Component\Security\Http\Tests\Session6 m|NSymfony\Component\Security\Http\Tests\RememberMe2 e|NSymfony\Component\Security\Http\Tests\Logout4 i|NSymfony\Component\Security\Http\Tests\Firewall6 m|NSymfony\Component\Security\Http\Tests\EntryPoint: u|NSymfony\Component\Security\Http\Tests\Authentication+ W|NSymfony\Component\Security\Http\Tests- [|NSymfony\Component\Security\Http\Session0  a|NSymfony\Component\Security\Http\RememberMe, Y|NSymfony\Component\Security\Http\Logout.~ ]|NSymfony\Component\Security\Http\Firewall+} W|NSymfony\Component\Security\Http\Event0| a|NSymfony\Component\Security\Http\EntryPoint4{ i|NSymfony\Component\Security\Http\Authentication%z K|NSymfony\Component\Security\Http2y e|NSymfony\Component\Security\Csrf\TokenStorage4x i|NSymfony\Component\Security\Csrf\TokenGenerator8w q|NSymfony\Component\Security\Csrf\Tests\TokenStorage:v u|NSymfony\Component\Security\Csrf\Tests\TokenGenerator+u W|NSymfony\Component\Security\Csrf\Tests/t _|NSymfony\Component\Security\Csrf\Exception%s K|NSymfony\Component\Security\Csrf;r w|NSymfony\Component\Security\Core\Validator\Constraints*q U|NSymfony\Component\Security\Core\Util*p U|NSymfony\Component\Security\Core\UserBo |NSymfony\Component\Security\Core\Tests\Validator\ConstraintsJn |NAcme\DemoBundle\Proxy\__CG__\Symfony\Component\Security\Core\Tests\0m a|NSymfony\Component\Security\Core\Tests\Util0l a|NSymfony\Component\Security\Core\Tests\User0k a|NSymfony\Component\Security\Core\Tests\Role+j W|NSymfony\Component\Security\Core\Tests5i k|NSymfony\Component\Security\Core\Tests\Exception3h g|NSymfony\Component\Security\Core\Tests\Encoder?g |NSymfony\Component\Security\Core\Tests\Authorization\Voter9f s|NSymfony\Component\Security\Core\Tests\AuthorizationIe |NSymfony\Component\Security\Core\Tests\Authentication\Token\StorageAd |NSymfony\Component\Security\Core\Tests\Authentication\TokenFc |NSymfony\Component\Security\Core\Tests\Authentication\RememberMeDb |NSymfony\Component\Security\Core\Tests\Authentication\Provider:a u|NSymfony\Component\Security\Core\Tests\Authentication*` U|NSymfony\Component\Security\Core\Role/_ _|NSymfony\Component\Security\Core\Exception+^ W|NSymfony\Component\Security\Core\Event-] [|NSymfony\Component\Security\Core\Encoder9\ s|NSymfony\Component\Security\Core\Authorization\Voter   R  k7W!U(m?zD0


i
/				j	<	_6f=X8
h`-yK& Qy>    2x e{Symfony\Bridge\Doctrine\Tests\HttpFoundation-w [{Symfony\Bridge\Doctrine\Tests\Form\Type(v Q{Symfony\Bridge\Doctrine\Tests\Form8u q{Symfony\Bridge\Doctrine\Tests\Form\DataTransformer3t g{Symfony\Bridge\Doctrine\Tests\Form\ChoiceList,s Y{Symfony\Bridge\Doctrine\Tests\Fixtures6r m{Symfony\Bridge\Doctrine\Tests\ExpressionLanguage7q o{Symfony\Bridge\Doctrine\Tests\DependencyInjectionEp 	{Symfony\Bridge\Doctrine\Tests\DependencyInjection\CompilerPass0o a{Symfony\Bridge\Doctrine\Tests\DataFixtures1n c{Symfony\Bridge\Doctrine\Tests\DataCollector#m G{Symfony\Bridge\Doctrine\Tests"l E{Symfony\Bridge\Doctrine\Test+k W{Symfony\Bridge\Doctrine\Security\User1j c{Symfony\Bridge\Doctrine\Security\RememberMe$i I{Symfony\Bridge\Doctrine\Logger,h Y{Symfony\Bridge\Doctrine\HttpFoundation'g O{Symfony\Bridge\Doctrine\Form\Type0f a{Symfony\Bridge\Doctrine\Form\EventListener"e E{Symfony\Bridge\Doctrine\Form2d e{Symfony\Bridge\Doctrine\Form\DataTransformer-c [{Symfony\Bridge\Doctrine\Form\ChoiceList0b a{Symfony\Bridge\Doctrine\ExpressionLanguageHa {Symfony\Bridge\Doctrine\DependencyInjection\Security\UserProvider>` }{Symfony\Bridge\Doctrine\DependencyInjection\CompilerPass1_ c{Symfony\Bridge\Doctrine\DependencyInjection*^ U{Symfony\Bridge\Doctrine\DataFixtures+] W{Symfony\Bridge\Doctrine\DataCollector\ ;{Symfony\Bridge\Doctrine)[ S{Symfony\Bridge\Doctrine\CacheWarmer3Z g|NSymfony\Component\Security\Http\Authorization*Y U|NSymfony\Component\Security\Acl\Model.X ]|NSymfony\Component\Form\ChoiceList\Loader"W E|NSymfony\Component\Yaml\Tests&V M|NSymfony\Component\Yaml\ExceptionU 9|NSymfony\Component\Yaml!T C|NSymfony\Component\VarDumper/S _|NSymfony\Component\VarDumper\Tests\Fixture'R O|NSymfony\Component\VarDumper\Tests.Q ]|NSymfony\Component\VarDumper\Tests\Caster&P M|NSymfony\Component\VarDumper\Test+O W|NSymfony\Component\VarDumper\Exception(N Q|NSymfony\Component\VarDumper\Dumper(M Q|NSymfony\Component\VarDumper\Cloner(L Q|NSymfony\Component\VarDumper\Caster+K W|NSymfony\Component\Validator\Violation+J W|NSymfony\Component\Validator\Validator&I M|NSymfony\Component\Validator\Util1H c|NSymfony\Component\Validator\Tests\Validator,G Y|NSymfony\Component\Validator\Tests\Util6F m|NSymfony\Component\Validator\Tests\Mapping\Loader7E o|NSymfony\Component\Validator\Tests\Mapping\Factory/D _|NSymfony\Component\Validator\Tests\Mapping5C k|NSymfony\Component\Validator\Tests\Mapping\Cache0B a|NSymfony\Component\Validator\Tests\Fixtures'A O|NSymfony\Component\Validator\Tests@ #|NConstraints3? g|NSymfony\Component\Validator\Tests\Constraints0> a|NSymfony\Component\Validator\Mapping\Loader1= c|NSymfony\Component\Validator\Mapping\Factory/< _|NSymfony\Component\Validator\Mapping\Cache); S|NSymfony\Component\Validator\Mapping+: W|NSymfony\Component\Validator\Exception)9 S|NSymfony\Component\Validator\Context88 q|NSymfony\Component\Validator\Constraints\Collection-7 [|NSymfony\Component\Validator\Constraints!6 C|NSymfony\Component\Validator*5 U|NSymfony\Component\Translation\Writer04 a|NSymfony\Component\Translation\Tests\Loader03 a|NSymfony\Component\Translation\Tests\Dumper)2 S|NSymfony\Component\Translation\Tests71 o|NSymfony\Component\Translation\Tests\DataCollector30 g|NSymfony\Component\Translation\Tests\Catalogue*/ U|NSymfony\Component\Translation\Loader-. [|NSymfony\Component\Translation\Extractor-- [|NSymfony\Component\Translation\Exception*, U|NSymfony\Component\Translation\Dumper#+ G|NSymfony\Component\Translation1* c|NSymfony\Component\Translation\DataCollector-) [|NSymfony\Component\Translation\Catalogue0( a|NSymfony\Component\Templating\Tests\Storage/' _|NSymfony\Component\Templating\Tests\Loader   O  c-}^5~CLsM,



X
1
				]	5	T_%CrCg;=[_;                      *G U{TestBundle\FooBundle\Controller\Test)F S{TestBundle\FooBundle\Controller\Sub%E K{TestBundle\FooBundle\Controller!D C{TestBundle\Fabpot\FooBundle,C Y{TestBundle\Fabpot\FooBundle\Controller>B }{Symfony\Bundle\FrameworkBundle\Tests\Fixtures\BaseBundle>A }{Symfony\Bundle\FrameworkBundle\Tests\DependencyInjectionH@ {Symfony\Bundle\FrameworkBundle\Tests\DependencyInjection\Compiler5? k{Symfony\Bundle\FrameworkBundle\Tests\Controller=> {{Symfony\Bundle\FrameworkBundle\Tests\Console\Descriptor2= e{Symfony\Bundle\FrameworkBundle\Tests\Console2< e{Symfony\Bundle\FrameworkBundle\Tests\CommandM; {Symfony\Bundle\FrameworkBundle\Tests\Command\CacheClearCommand\FixtureE: 	{Symfony\Bundle\FrameworkBundle\Tests\Command\CacheClearCommand*9 U{Symfony\Bundle\FrameworkBundle\Tests68 m{Symfony\Bundle\FrameworkBundle\Tests\CacheWarmer)7 S{Symfony\Bundle\FrameworkBundle\Test66 m{Symfony\Bundle\FrameworkBundle\Templating\Loader65 m{Symfony\Bundle\FrameworkBundle\Templating\Helper/4 _{Symfony\Bundle\FrameworkBundle\Templating53 k{Symfony\Bundle\FrameworkBundle\Templating\Asset,2 Y{Symfony\Bundle\FrameworkBundle\Routing.1 ]{Symfony\Bundle\FrameworkBundle\HttpCache-0 [{Symfony\Bundle\FrameworkBundle\Fragment2/ e{Symfony\Bundle\FrameworkBundle\EventListener8. q{Symfony\Bundle\FrameworkBundle\DependencyInjectionB- {Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler2, e{Symfony\Bundle\FrameworkBundle\DataCollector/+ _{Symfony\Bundle\FrameworkBundle\Controller3* g{Symfony\Bundle\FrameworkBundle\Console\Helper7) o{Symfony\Bundle\FrameworkBundle\Console\Descriptor,( Y{Symfony\Bundle\FrameworkBundle\Console,' Y{Symfony\Bundle\FrameworkBundle\Command$& I{Symfony\Bundle\FrameworkBundle0% a{Symfony\Bundle\FrameworkBundle\CacheWarmer:$ u{Symfony\Bundle\DebugBundle\Tests\DependencyInjectionD# {Symfony\Bundle\DebugBundle\Tests\DependencyInjection\Compiler4" i{Symfony\Bundle\DebugBundle\DependencyInjection=! {{Symfony\Bundle\DebugBundle\DependencyInjection\Compiler   A{Symfony\Bundle\DebugBundle% K{Symfony\Bridge\Twig\Translation% K{Symfony\Bridge\Twig\TokenParser ?{Symfony\Bridge\Twig\Tests+ W{Symfony\Bridge\Twig\Tests\Translation+ W{Symfony\Bridge\Twig\Tests\TokenParser+ W{Symfony\Bridge\Twig\Tests\NodeVisitor$ I{Symfony\Bridge\Twig\Tests\Node2 e{Symfony\Bridge\Twig\Tests\Extension\Fixtures) S{Symfony\Bridge\Twig\Tests\Extension' O{Symfony\Bridge\Twig\Tests\Command% K{Symfony\Bridge\Twig\NodeVisitor ={Symfony\Bridge\Twig\Node ={Symfony\Bridge\Twig\Form# G{Symfony\Bridge\Twig\Extension' O{Symfony\Bridge\Twig\DataCollector! C{Symfony\Bridge\Twig\Command 3{Symfony\Bridge\Twig. ]{Symfony\Bridge\Swiftmailer\DataCollector; w{Symfony\Bridge\ProxyManager\Tests\LazyProxy\PhpDumper> }{Symfony\Bridge\ProxyManager\Tests\LazyProxy\Instantiator {global8
 q{Symfony\Bridge\ProxyManager\Tests\LazyProxy\Dumper1	 c{Symfony\Bridge\ProxyManager\Tests\LazyProxy5 k{Symfony\Bridge\ProxyManager\LazyProxy\PhpDumper8 q{Symfony\Bridge\ProxyManager\LazyProxy\Instantiator 9{Symfony\Bridge\PhpUnit, Y{Symfony\Bridge\Monolog\Tests\Processor9 s{Symfony\Bridge\Monolog\Tests\Handler\FingersCrossed* U{Symfony\Bridge\Monolog\Tests\Handler& M{Symfony\Bridge\Monolog\Processor 9{Symfony\Bridge\Monolog3  g{Symfony\Bridge\Monolog\Handler\FingersCrossed$ I{Symfony\Bridge\Monolog\Handler&~ M{Symfony\Bridge\Monolog\Formatter'} O{Symfony\Bridge\Doctrine\Validator3| g{Symfony\Bridge\Doctrine\Validator\Constraints9{ s{Symfony\Bridge\Doctrine\Tests\Validator\Constraints1z c{Symfony\Bridge\Doctrine\Tests\Security\User*y U{Symfony\Bridge\Doctrine\Tests\Logger   >  Y5m]%y0N


w
=			l	=	eJS <)we=X/             C {Symfony\Bundle\TwigBundle\Tests\DependencyInjection\Compiler0 a{Symfony\Bundle\TwigBundle\Tests\Controller$ I{Symfony\Bundle\TwigBundle\Node& M{Symfony\Bundle\TwigBundle\Loader) S{Symfony\Bundle\TwigBundle\ExtensionA  {Symfony\Bundle\TwigBundle\DependencyInjection\Configurator3 g{Symfony\Bundle\TwigBundle\DependencyInjection<~ y{Symfony\Bundle\TwigBundle\DependencyInjection\Compiler%} K{Symfony\Bundle\TwigBundle\Debug*| U{Symfony\Bundle\TwigBundle\Controller'{ O{Symfony\Bundle\TwigBundle\Command+z W{Symfony\Bundle\TwigBundle\CacheWarmer2y e{Symfony\Bundle\SecurityBundle\Twig\ExtensionUx ){Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FormLoginBundle\SecurityLw {Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FormLoginBundle`v ?{Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FormLoginBundle\DependencyInjectionWu -{Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FormLoginBundle\Controller^t ;{Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FirewallEntryPointBundle\SecurityUs ){Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FirewallEntryPointBundleir Q{Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FirewallEntryPointBundle\DependencyInjectionUq ){Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\CsrfFormLoginBundle\FormPp {Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\CsrfFormLoginBundle[o 5{Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\CsrfFormLoginBundle\ControllerMn {Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\AclBundle\EntityFm {Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\AclBundle4l i{Symfony\Bundle\SecurityBundle\Tests\Functional8k q{Symfony\Bundle\SecurityBundle\Tests\Functional\appOj {Symfony\Bundle\SecurityBundle\Tests\DependencyInjection\Security\FactoryTi '{Symfony\Bundle\SecurityBundle\Tests\DependencyInjection\Fixtures\UserProvider=h {{Symfony\Bundle\SecurityBundle\Tests\DependencyInjection7g o{Symfony\Bundle\SecurityBundle\Tests\DataCollector5f k{Symfony\Bundle\SecurityBundle\Templating\Helper#e G{Symfony\Bundle\SecurityBundle,d Y{Symfony\Bundle\SecurityBundle\Security1c c{Symfony\Bundle\SecurityBundle\EventListenerNb {Symfony\Bundle\SecurityBundle\DependencyInjection\Security\UserProviderIa {Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory7` o{Symfony\Bundle\SecurityBundle\DependencyInjectionA_ {Symfony\Bundle\SecurityBundle\DependencyInjection\Compiler1^ c{Symfony\Bundle\SecurityBundle\DataCollector+] W{Symfony\Bundle\SecurityBundle\Command.\ ]{Symfony\Bundle\FrameworkBundle\Validator0[ a{Symfony\Bundle\FrameworkBundle\Translation4Z i{Symfony\Bundle\FrameworkBundle\Tests\Validator6Y m{Symfony\Bundle\FrameworkBundle\Tests\Translation<X y{Symfony\Bundle\FrameworkBundle\Tests\Templating\LoaderFW {Symfony\Bundle\FrameworkBundle\Tests\Templating\Helper\Fixtures<V y{Symfony\Bundle\FrameworkBundle\Tests\Templating\Helper5U k{Symfony\Bundle\FrameworkBundle\Tests\Templating2T e{Symfony\Bundle\FrameworkBundle\Tests\Routing5S k{Symfony\Bundle\FrameworkBundle\Tests\FunctionalHR {Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\Q 7{Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\DependencyInjectioncP E{Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\DependencyInjection\ConfigSO %{Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\Controller9N s{Symfony\Bundle\FrameworkBundle\Tests\Functional\app3M g{Symfony\Bundle\FrameworkBundle\Tests\Fragment!L C{TestBundle\Sensio\FooBundle,K Y{TestBundle\Sensio\FooBundle\Controller%J K{TestBundle\Sensio\Cms\FooBundle0I a{TestBundle\Sensio\Cms\FooBundle\ControllerH 5{TestBundle\FooBundle   ]  j;Ru;S%d4



u
X
7
								p	_	L	8	,		`-zS!}?oBtK wDU&sH                                     *b U{Symfony\Component\CssSelector\Parser2a e{Symfony\Component\CssSelector\Parser\Handler(` Q{Symfony\Component\CssSelector\Node-_ [{Symfony\Component\CssSelector\Exception#^ G{Symfony\Component\CssSelector,] Y{Symfony\Component\Console\Tests\Tester+\ W{Symfony\Component\Console\Tests\Style,[ Y{Symfony\Component\Console\Tests\Output,Z Y{Symfony\Component\Console\Tests\Logger+Y W{Symfony\Component\Console\Tests\Input,X Y{Symfony\Component\Console\Tests\Helper/W _{Symfony\Component\Console\Tests\Formatter.V ]{Symfony\Component\Console\Tests\Fixtures0U a{Symfony\Component\Console\Tests\Descriptor-T [{Symfony\Component\Console\Tests\Command%S K{Symfony\Component\Console\Tests&R M{Symfony\Component\Console\Tester%Q K{Symfony\Component\Console\Style(P Q{Symfony\Component\Console\Question&O M{Symfony\Component\Console\Output&N M{Symfony\Component\Console\Logger%M K{Symfony\Component\Console\Input&L M{Symfony\Component\Console\Helper)K S{Symfony\Component\Console\Formatter%J K{Symfony\Component\Console\Event*I U{Symfony\Component\Console\Descriptor'H O{Symfony\Component\Console\CommandG ?{Symfony\Component\Console#F G{Symfony\Component\Config\Util-E [{Symfony\Component\Config\Tests\Resource+D W{Symfony\Component\Config\Tests\Loader;C w{Symfony\Component\Config\Tests\Fixtures\Configuration.B ]{Symfony\Component\Config\Tests\Exception6A m{Symfony\Component\Config\Tests\Definition\Dumper7@ o{Symfony\Component\Config\Tests\Definition\Builder/? _{Symfony\Component\Config\Tests\Definition$> I{Symfony\Component\Config\Tests'= O{Symfony\Component\Config\Resource%< K{Symfony\Component\Config\Loader(; Q{Symfony\Component\Config\Exception3: g{Symfony\Component\Config\Definition\Exception09 a{Symfony\Component\Config\Definition\Dumper18 c{Symfony\Component\Config\Definition\Builder)7 S{Symfony\Component\Config\Definition6 ={Symfony\Component\Config!5 C{Acme\DemoLib\Lets\Go\Deeper4 %{Acme\DemoLib3 {ClassCons	2 {Foo1 #{Namespaced20 !{Namespaced/ {ClassMap. {Foo\Bar
- {Beta, {Alpha+ {* 1{ClassesWithParents) 9{NamespaceCollision\C\B( 9{NamespaceCollision\A\B' ){Apc\Namespaced & A{Apc\NamespaceCollision\A\B% ={Apc\NamespaceCollision\A$ 5{NamespaceCollision\C# 5{NamespaceCollision\A)" S{Symfony\Component\ClassLoader\Tests#! G{Symfony\Component\ClassLoader(  Q{Symfony\Component\BrowserKit\Tests" E{Symfony\Component\BrowserKit- [{Symfony\Component\Asset\VersionStrategy# G{Symfony\Component\Asset\Tests ;{Symfony\Component\Asset' O{Symfony\Component\Asset\Exception% K{Symfony\Component\Asset\Context& M{Symfony\Bundle\WebProfilerBundle+ W{Symfony\Bundle\WebProfilerBundle\Twig, Y{Symfony\Bundle\WebProfilerBundle\Tests5 k{Symfony\Bundle\WebProfilerBundle\Tests\Profiler: u{Symfony\Bundle\WebProfilerBundle\Tests\EventListenerA {Symfony\Bundle\WebProfilerBundle\Tests\DependencyInjection7 o{Symfony\Bundle\WebProfilerBundle\Tests\Controller4 i{Symfony\Bundle\WebProfilerBundle\Tests\Command/ _{Symfony\Bundle\WebProfilerBundle\Profiler4 i{Symfony\Bundle\WebProfilerBundle\EventListener: u{Symfony\Bundle\WebProfilerBundle\DependencyInjection1 c{Symfony\Bundle\WebProfilerBundle\Controller. ]{Symfony\Bundle\WebProfilerBundle\Command ?{Symfony\Bundle\TwigBundle+ W{Symfony\Bundle\TwigBundle\TokenParser1
 c{Symfony\Bundle\TwigBundle\Tests\TokenParser,	 Y{Symfony\Bundle\TwigBundle\Tests\Loader% K{Symfony\Bundle\TwigBundle\Tests/ _{Symfony\Bundle\TwigBundle\Tests\Extension9 s{Symfony\Bundle\TwigBundle\Tests\DependencyInjection   O  g6Z$M'`2V


^
!			t	`	T	!Qd:
f!Vc:lEW*M#                             61 m{Symfony\Component\Form\Extension\Core\ChoiceList&0 M{Symfony\Component\Form\Exception'/ O{Symfony\Component\Form\Deprecated0. a{Symfony\Component\Form\Extension\Core\View,- Y{Symfony\Component\Form\ChoiceList\View/, _{Symfony\Component\Form\ChoiceList\Factory'+ O{Symfony\Component\Form\ChoiceList* 9{Symfony\Component\Form*) U{Symfony\Component\Finder\Tests\Shell-( [{Symfony\Component\Finder\Tests\Iterator$' I{Symfony\Component\Finder\Tests0& a{Symfony\Component\Finder\Tests\FakeAdapter/% _{Symfony\Component\Finder\Tests\Expression/$ _{Symfony\Component\Finder\Tests\Comparator$# I{Symfony\Component\Finder\Shell'" O{Symfony\Component\Finder\Iterator! ={Symfony\Component\Finder)  S{Symfony\Component\Finder\Expression( Q{Symfony\Component\Finder\Exception) S{Symfony\Component\Finder\Comparator& M{Symfony\Component\Finder\Adapter( Q{Symfony\Component\Filesystem\Tests" E{Symfony\Component\Filesystem, Y{Symfony\Component\Filesystem\Exception5 k{Symfony\Component\ExpressionLanguage\Tests\Node9 s{Symfony\Component\ExpressionLanguage\Tests\Fixtures0 a{Symfony\Component\ExpressionLanguage\Tests6 m{Symfony\Component\ExpressionLanguage\ParserCache/ _{Symfony\Component\ExpressionLanguage\Node* U{Symfony\Component\ExpressionLanguageB {Symfony\Component\EventDispatcher\Tests\DependencyInjection3 g{Symfony\Component\EventDispatcher\Tests\Debug- [{Symfony\Component\EventDispatcher\Tests; w{Symfony\Component\EventDispatcher\DependencyInjection- [{Symfony\Component\EventDispatcher\Debug' O{Symfony\Component\EventDispatcher. ]{Symfony\Component\DomCrawler\Tests\Field( Q{Symfony\Component\DomCrawler\Tests( Q{Symfony\Component\DomCrawler\Field"
 E{Symfony\Component\DomCrawler>	 }{Symfony\Component\DependencyInjection\Tests\ParameterBag8 q{Symfony\Component\DependencyInjection\Tests\LoaderF {Symfony\Component\DependencyInjection\Tests\LazyProxy\PhpDumperI {Symfony\Component\DependencyInjection\Tests\LazyProxy\Instantiator0 a{Symfony\Component\DependencyInjection\Dump	 {Bar #{Container14; w{Symfony\Component\DependencyInjection\Tests\Extension8 q{Symfony\Component\DependencyInjection\Tests\Dumper1  c{Symfony\Component\DependencyInjection\Tests: u{Symfony\Component\DependencyInjection\Tests\Compiler8~ q{Symfony\Component\DependencyInjection\ParameterBag2} e{Symfony\Component\DependencyInjection\Loader?| {Symfony\Component\DependencyInjection\LazyProxy\PhpDumperC{ {Symfony\Component\DependencyInjection\LazyProxy\Instantiator5z k{Symfony\Component\DependencyInjection\Extension5y k{Symfony\Component\DependencyInjection\Exception2x e{Symfony\Component\DependencyInjection\Dumper4w i{Symfony\Component\DependencyInjection\Compiler+v W{Symfony\Component\DependencyInjection-u [{Symfony\Component\Debug\Tests\Fixtures2,t Y{Symfony\Component\Debug\Tests\Fixtures5s k{Symfony\Component\Debug\Tests\FatalErrorHandler-r [{Symfony\Component\Debug\Tests\Exception#q G{Symfony\Component\Debug\Tests/p _{Symfony\Component\Debug\FatalErrorHandler,o Y{Symfony\Component\HttpKernel\Exception'n O{Symfony\Component\Debug\Exceptionm ;{Symfony\Component\Debug)l S{Symfony\Component\CssSelector\XPath3k g{Symfony\Component\CssSelector\XPath\Extension/j _{Symfony\Component\CssSelector\Tests\XPath9i s{Symfony\Component\CssSelector\Tests\Parser\Shortcut0h a{Symfony\Component\CssSelector\Tests\Parser8g q{Symfony\Component\CssSelector\Tests\Parser\Handler.f ]{Symfony\Component\CssSelector\Tests\Node)e S{Symfony\Component\CssSelector\Tests4d i{Symfony\Component\CssSelector\Parser\Tokenizer3c g{Symfony\Component\CssSelector\Parser\Shortcut   D  [GZb%q9


e
A
			u	,f-q4g!]$W3
m2Pq0                                              4u i{Symfony\Component\HttpFoundation\Tests\Session:t u{Symfony\Component\HttpFoundation\Tests\Session\Flash>s }{Symfony\Component\HttpFoundation\Tests\Session\Attribute:r u{Symfony\Component\HttpFoundation\Tests\File\MimeType1q c{Symfony\Component\HttpFoundation\Tests\File,p Y{Symfony\Component\HttpFoundation\Tests<o y{Symfony\Component\HttpFoundation\Session\Storage\Proxy6n m{Symfony\Component\HttpFoundation\Session\Storage>m }{Symfony\Component\HttpFoundation\Session\Storage\Handler.l ]{Symfony\Component\HttpFoundation\Session4k i{Symfony\Component\HttpFoundation\Session\Flash8j q{Symfony\Component\HttpFoundation\Session\Attribute4i i{Symfony\Component\HttpFoundation\File\MimeType+h W{Symfony\Component\HttpFoundation\File5g k{Symfony\Component\HttpFoundation\File\Exception&f M{Symfony\Component\HttpFoundation!e C{Symfony\Component\Form\Util'd O{Symfony\Component\Form\Tests\Util(c Q{Symfony\Component\Form\Tests\Guess+b W{Symfony\Component\Form\Tests\FixturesGa {Symfony\Component\Form\Tests\Extension\Validator\ViolationMapper6` m{Symfony\Component\Form\Tests\Extension\Validator;_ w{Symfony\Component\Form\Tests\Extension\Validator\Util;^ w{Symfony\Component\Form\Tests\Extension\Validator\TypeE] 	{Symfony\Component\Form\Tests\Extension\Validator\EventListenerC\ {Symfony\Component\Form\Tests\Extension\Validator\Constraints;[ w{Symfony\Component\Form\Tests\Extension\HttpFoundationJZ {Symfony\Component\Form\Tests\Extension\HttpFoundation\EventListener?Y {Symfony\Component\Form\Tests\Extension\DataCollector\Type:X u{Symfony\Component\Form\Tests\Extension\DataCollector6W m{Symfony\Component\Form\Tests\Extension\Csrf\Type?V {Symfony\Component\Form\Tests\Extension\Csrf\EventListener>U }{Symfony\Component\Form\Tests\Extension\Csrf\CsrfProvider6T m{Symfony\Component\Form\Tests\Extension\Core\Type?S {Symfony\Component\Form\Tests\Extension\Core\EventListenerBR {Symfony\Component\Form\Tests\Extension\Core\DataTransformer<Q y{Symfony\Component\Form\Tests\Extension\Core\DataMapperFP {Symfony\Component\Form\Tests\Extension\Core\ChoiceList\Fixtures<O y{Symfony\Component\Form\Tests\Extension\Core\ChoiceList5N k{Symfony\Component\Form\Tests\ChoiceList\Factory-M [{Symfony\Component\Form\Tests\ChoiceList"L E{Symfony\Component\Form\Tests!K C{Symfony\Component\Form\Test"J E{Symfony\Component\Form\GuessAI {Symfony\Component\Form\Extension\Validator\ViolationMapper0H a{Symfony\Component\Form\Extension\Validator5G k{Symfony\Component\Form\Extension\Validator\Util5F k{Symfony\Component\Form\Extension\Validator\Type>E }{Symfony\Component\Form\Extension\Validator\EventListener<D y{Symfony\Component\Form\Extension\Validator\Constraints1C c{Symfony\Component\Form\Extension\Templating:B u{Symfony\Component\Form\Extension\HttpFoundation\Type5A k{Symfony\Component\Form\Extension\HttpFoundationD@ {Symfony\Component\Form\Extension\HttpFoundation\EventListener:? u{Symfony\Component\Form\Extension\DependencyInjection9> s{Symfony\Component\Form\Extension\DataCollector\Type:= u{Symfony\Component\Form\Extension\DataCollector\ProxyC< {Symfony\Component\Form\Extension\DataCollector\EventListener4; i{Symfony\Component\Form\Extension\DataCollector0: a{Symfony\Component\Form\Extension\Csrf\Type99 s{Symfony\Component\Form\Extension\Csrf\EventListener88 q{Symfony\Component\Form\Extension\Csrf\CsrfProvider+7 W{Symfony\Component\Form\Extension\Csrf06 a{Symfony\Component\Form\Extension\Core\Type95 s{Symfony\Component\Form\Extension\Core\EventListener;4 w{Symfony\Component\Form\Extension\Core\DataTransformer63 m{Symfony\Component\Form\Extension\Core\DataMapper+2 W{Symfony\Component\Form\Extension\Core   H  y3S#T)pBvD


f
'			DKKzAS&oH)x=b3 Y-                                         2= e{Symfony\Component\Intl\Tests\NumberFormatter6< m{Symfony\Component\Intl\Tests\Locale\Verification); S{Symfony\Component\Intl\Tests\Locale7: o{Symfony\Component\Intl\Tests\Globals\Verification*9 U{Symfony\Component\Intl\Tests\Globals=8 {{Symfony\Component\Intl\Tests\DateFormatter\Verification07 a{Symfony\Component\Intl\Tests\DateFormatter,6 Y{Symfony\Component\Intl\Tests\Data\Util55 k{Symfony\Component\Intl\Tests\Data\Provider\Json04 a{Symfony\Component\Intl\Tests\Data\Provider53 k{Symfony\Component\Intl\Tests\Data\Bundle\Writer52 k{Symfony\Component\Intl\Tests\Data\Bundle\Reader81 q{Symfony\Component\Intl\Tests\Collator\Verification+0 W{Symfony\Component\Intl\Tests\Collator+/ W{Symfony\Component\Intl\ResourceBundle,. Y{Symfony\Component\Intl\NumberFormatter#- G{Symfony\Component\Intl\Locale, 9{Symfony\Component\Intl$+ I{Symfony\Component\Intl\Globals&* M{Symfony\Component\Intl\Exception*) U{Symfony\Component\Intl\DateFormatter5( k{Symfony\Component\Intl\DateFormatter\DateFormat&' M{Symfony\Component\Intl\Data\Util*& U{Symfony\Component\Intl\Data\Provider+% W{Symfony\Component\Intl\Data\Generator/$ _{Symfony\Component\Intl\Data\Bundle\Writer/# _{Symfony\Component\Intl\Data\Bundle\Reader1" c{Symfony\Component\Intl\Data\Bundle\Compiler%! K{Symfony\Component\Intl\Collator6  m{Symfony\Component\HttpKernel\Tests\Profiler\Mock1 c{Symfony\Component\HttpKernel\Tests\Profiler2 e{Symfony\Component\HttpKernel\Tests\HttpCache1 c{Symfony\Component\HttpKernel\Tests\Fragment1 c{Symfony\Component\HttpKernel\Tests\FixturesI {Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle] 9{Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\DependencyInjectionQ !{Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\CommandJ {Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionNotValidBundle^ ;{Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionNotValidBundle\DependencyInjectionH {Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionLoadedBundle\ 7{Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionLoadedBundle\DependencyInjectionH {Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionAbsentBundle6 m{Symfony\Component\HttpKernel\Tests\EventListener< y{Symfony\Component\HttpKernel\Tests\DependencyInjection. ]{Symfony\Component\HttpKernel\Tests\Debug; w{Symfony\Component\HttpKernel\Tests\DataCollector\Util6 m{Symfony\Component\HttpKernel\Tests\DataCollector3 g{Symfony\Component\HttpKernel\Tests\Controller/ _{Symfony\Component\HttpKernel\Tests\Config( Q{Symfony\Component\HttpKernel\Tests4 i{Symfony\Component\HttpKernel\Tests\CacheWarmer5
 k{Symfony\Component\HttpKernel\Tests\CacheClearer/	 _{Symfony\Component\HttpKernel\Tests\Bundle+ W{Symfony\Component\HttpKernel\Profiler& M{Symfony\Component\HttpKernel\Log, Y{Symfony\Component\HttpKernel\HttpCache+ W{Symfony\Component\HttpKernel\Fragment0 a{Symfony\Component\HttpKernel\EventListener( Q{Symfony\Component\HttpKernel\Event6 m{Symfony\Component\HttpKernel\DependencyInjection( Q{Symfony\Component\HttpKernel\Debug5  k{Symfony\Component\HttpKernel\DataCollector\Util0 a{Symfony\Component\HttpKernel\DataCollector-~ [{Symfony\Component\HttpKernel\Controller)} S{Symfony\Component\HttpKernel\Config"| E{Symfony\Component\HttpKernel.{ ]{Symfony\Component\HttpKernel\CacheWarmer/z _{Symfony\Component\HttpKernel\CacheClearer)y S{Symfony\Component\HttpKernel\BundleCx {Symfony\Component\HttpFoundation\Tests\Session\Storage\Proxy<w y{Symfony\Component\HttpFoundation\Tests\Session\StorageEv 	{Symfony\Component\HttpFoundation\Tests\Session\Storage\Handler   L  pE$zFvN^<^-



_
			}	F	Y'o<Vu9	|?kk3l               *	 U{Symfony\Component\Security\Core\UserB {Symfony\Component\Security\Core\Tests\Validator\ConstraintsJ {Acme\DemoBundle\Proxy\__CG__\Symfony\Component\Security\Core\Tests\0 a{Symfony\Component\Security\Core\Tests\Util0 a{Symfony\Component\Security\Core\Tests\User0 a{Symfony\Component\Security\Core\Tests\Role+ W{Symfony\Component\Security\Core\Tests5 k{Symfony\Component\Security\Core\Tests\Exception3 g{Symfony\Component\Security\Core\Tests\Encoder?  {Symfony\Component\Security\Core\Tests\Authorization\Voter9 s{Symfony\Component\Security\Core\Tests\AuthorizationI~ {Symfony\Component\Security\Core\Tests\Authentication\Token\StorageA} {Symfony\Component\Security\Core\Tests\Authentication\TokenF| {Symfony\Component\Security\Core\Tests\Authentication\RememberMeD{ {Symfony\Component\Security\Core\Tests\Authentication\Provider:z u{Symfony\Component\Security\Core\Tests\Authentication*y U{Symfony\Component\Security\Core\Role/x _{Symfony\Component\Security\Core\Exception+w W{Symfony\Component\Security\Core\Event-v [{Symfony\Component\Security\Core\Encoder9u s{Symfony\Component\Security\Core\Authorization\Voter3t g{Symfony\Component\Security\Core\Authorization%s K{Symfony\Component\Security\CoreCr {Symfony\Component\Security\Core\Authentication\Token\Storage:q u{Symfony\Component\Security\Core\Authentication\Token?p {Symfony\Component\Security\Core\Authentication\RememberMe=o {{Symfony\Component\Security\Core\Authentication\Provider4n i{Symfony\Component\Security\Core\Authentication*m U{Symfony\Component\Security\Acl\Voter0l a{Symfony\Component\Security\Acl\Tests\Voter5k k{Symfony\Component\Security\Acl\Tests\PermissionIj {Acme\DemoBundle\Proxy\__CG__\Symfony\Component\Security\Acl\Tests\1i c{Symfony\Component\Security\Acl\Tests\Domain/h _{Symfony\Component\Security\Acl\Tests\Dbal/g _{Symfony\Component\Security\Acl\Permission.f ]{Symfony\Component\Security\Acl\Exception+e W{Symfony\Component\Security\Acl\Domain)d S{Symfony\Component\Security\Acl\Dbal-c [{Symfony\Component\Routing\Tests\Matcher4b i{Symfony\Component\Routing\Tests\Matcher\Dumper,a Y{Symfony\Component\Routing\Tests\Loader/` _{Symfony\Component\Routing\Tests\Generator6_ m{Symfony\Component\Routing\Tests\Generator\DumperE^ 	{Symfony\Component\Routing\Tests\Fixtures\OtherAnnotatedClasses.] ]{Symfony\Component\Routing\Tests\Fixtures?\ {Symfony\Component\Routing\Tests\Fixtures\AnnotatedClasses%[ K{Symfony\Component\Routing\Tests0Z a{Symfony\Component\Routing\Tests\Annotation.Y ]{Symfony\Component\Routing\Matcher\Dumper'X O{Symfony\Component\Routing\Matcher&W M{Symfony\Component\Routing\Loader)V S{Symfony\Component\Routing\Generator0U a{Symfony\Component\Routing\Generator\Dumper)T S{Symfony\Component\Routing\ExceptionS ?{Symfony\Component\Routing*R U{Symfony\Component\Routing\Annotation,Q Y{Symfony\Component\PropertyAccess\Tests5P k{Symfony\Component\PropertyAccess\Tests\Fixtures&O M{Symfony\Component\PropertyAccess0N a{Symfony\Component\PropertyAccess\Exception%M K{Symfony\Component\Process\Tests%L K{Symfony\Component\Process\PipesK ?{Symfony\Component\Process)J S{Symfony\Component\Process\Exception-I [{Symfony\Component\OptionsResolver\Tests'H O{Symfony\Component\OptionsResolver1G c{Symfony\Component\OptionsResolver\Exception)F S{Symfony\Component\Locale\Tests\Stub$E I{Symfony\Component\Locale\Tests#D G{Symfony\Component\Locale\Stub.C ]{Symfony\Component\Locale\Stub\DateFormatB ={Symfony\Component\Locale(A Q{Symfony\Component\Locale\Exception!@ C{Symfony\Component\Intl\Util'? O{Symfony\Component\Intl\Tests\Util?> {Symfony\Component\Intl\Tests\NumberFormatter\Verification   P  m;^)i8	x;]'



X
)				`	0	n; W,b6	xF\,_3 |LY%   Y #{Constraints3X g{Symfony\Component\Validator\Tests\Constraints0W a{Symfony\Component\Validator\Mapping\Loader1V c{Symfony\Component\Validator\Mapping\Factory/U _{Symfony\Component\Validator\Mapping\Cache)T S{Symfony\Component\Validator\Mapping+S W{Symfony\Component\Validator\Exception)R S{Symfony\Component\Validator\Context8Q q{Symfony\Component\Validator\Constraints\Collection-P [{Symfony\Component\Validator\Constraints!O C{Symfony\Component\Validator*N U{Symfony\Component\Translation\Writer0M a{Symfony\Component\Translation\Tests\Loader0L a{Symfony\Component\Translation\Tests\Dumper)K S{Symfony\Component\Translation\Tests7J o{Symfony\Component\Translation\Tests\DataCollector3I g{Symfony\Component\Translation\Tests\Catalogue*H U{Symfony\Component\Translation\Loader-G [{Symfony\Component\Translation\Extractor-F [{Symfony\Component\Translation\Exception*E U{Symfony\Component\Translation\Dumper#D G{Symfony\Component\Translation1C c{Symfony\Component\Translation\DataCollector-B [{Symfony\Component\Translation\Catalogue0A a{Symfony\Component\Templating\Tests\Storage/@ _{Symfony\Component\Templating\Tests\Loader/? _{Symfony\Component\Templating\Tests\Helper1> c{Symfony\Component\Templating\Tests\Fixtures(= Q{Symfony\Component\Templating\Tests*< U{Symfony\Component\Templating\Storage); S{Symfony\Component\Templating\Loader): S{Symfony\Component\Templating\Helper"9 E{Symfony\Component\Templating(8 Q{Symfony\Component\Templating\Asset'7 O{Symfony\Component\Stopwatch\Tests!6 C{Symfony\Component\Stopwatch(5 Q{Symfony\Component\Serializer\Tests34 g{Symfony\Component\Serializer\Tests\Normalizer63 m{Symfony\Component\Serializer\Tests\NameConverter72 o{Symfony\Component\Serializer\Tests\Mapping\Loader81 q{Symfony\Component\Serializer\Tests\Mapping\Factory00 a{Symfony\Component\Serializer\Tests\Mapping1/ c{Symfony\Component\Serializer\Tests\Fixtures0. a{Symfony\Component\Serializer\Tests\Encoder3- g{Symfony\Component\Serializer\Tests\Annotation", E{Symfony\Component\Serializer-+ [{Symfony\Component\Serializer\Normalizer0* a{Symfony\Component\Serializer\NameConverter1) c{Symfony\Component\Serializer\Mapping\Loader2( e{Symfony\Component\Serializer\Mapping\Factory*' U{Symfony\Component\Serializer\Mapping,& Y{Symfony\Component\Serializer\Exception*% U{Symfony\Component\Serializer\Encoder-$ [{Symfony\Component\Serializer\Annotation+# W{Symfony\Component\Security\Tests\CoreA" {Symfony\Component\Security\Tests\Core\Authentication\Voter3! g{Symfony\Component\Security\Http\Tests\Session6  m{Symfony\Component\Security\Http\Tests\RememberMe2 e{Symfony\Component\Security\Http\Tests\Logout4 i{Symfony\Component\Security\Http\Tests\Firewall6 m{Symfony\Component\Security\Http\Tests\EntryPoint: u{Symfony\Component\Security\Http\Tests\Authentication+ W{Symfony\Component\Security\Http\Tests- [{Symfony\Component\Security\Http\Session0 a{Symfony\Component\Security\Http\RememberMe, Y{Symfony\Component\Security\Http\Logout. ]{Symfony\Component\Security\Http\Firewall+ W{Symfony\Component\Security\Http\Event0 a{Symfony\Component\Security\Http\EntryPoint4 i{Symfony\Component\Security\Http\Authentication% K{Symfony\Component\Security\Http2 e{Symfony\Component\Security\Csrf\TokenStorage4 i{Symfony\Component\Security\Csrf\TokenGenerator8 q{Symfony\Component\Security\Csrf\Tests\TokenStorage: u{Symfony\Component\Security\Csrf\Tests\TokenGenerator+ W{Symfony\Component\Security\Csrf\Tests/ _{Symfony\Component\Security\Csrf\Exception% K{Symfony\Component\Security\Csrf; w{Symfony\Component\Security\Core\Validator\Constraints*
 U{Symfony\Component\Security\Core\Util   |	 k9c:]/yU6TD4






r
X
>
)

						j	O	9	#		e1`,|k_P0 l5 
xF/sW=%qS5cE'	         U 5NFaker\Provider\nl_NLT 5NFaker\Provider\nl_BES 5NFaker\Provider\it_ITR 5NFaker\Provider\is_ISQ 5NFaker\Provider\hy_AMP 5NFaker\Provider\fr_FRO 5NFaker\Provider\fr_BEN 5NFaker\Provider\fi_FIM 5NFaker\Provider\es_ESL 5NFaker\Provider\es_ARK 5NFaker\Provider\en_USJ 5NFaker\Provider\en_GBI 5NFaker\Provider\en_CAH 5NFaker\Provider\de_DEG 5NFaker\Provider\de_ATF 5NFaker\Provider\da_DKE 5NFaker\Provider\cs_CZD 5NFaker\Provider\bg_BGC )NFaker\ProviderB -NFaker\ORM\PropelA 1NFaker\ORM\Mandango@ 1NFaker\ORM\Doctrine? 'NFaker\Guesser> NFaker= '6Mockery\Tests< %6test\Mockery4; i6Mockery\Test\Generator\StringManipulation\Pass: +6Mockery\Matcher9 )6Mockery\Loader/8 _6Mockery\Generator\StringManipulation\Pass7 /6Mockery\Generator6 /6Mockery\Exception5 96Mockery\CountValidator4 6Mockery3 ;6Mockery\Adapter\Phpunit2 6global1 '6Mockery\Tests0 %6test\Mockery4/ i6Mockery\Test\Generator\StringManipulation\Pass. +6Mockery\Matcher- )6Mockery\Loader/, _6Mockery\Generator\StringManipulation\Pass+ /6Mockery\Generator* /6Mockery\Exception) 96Mockery\CountValidator( 6Mockery' ;6Mockery\Adapter\Phpunit& 6global	% Foo$ My\Space# global" eglobal! global  1TheSeer\fDOM\Tests %TheSeer\fDOM -TheSeer\fDOM\CSS global# ESebastianBergmann\PHPCPD\Log1 aSebastianBergmann\PHPCPD\Detector\Strategy( OSebastianBergmann\PHPCPD\Detector =SebastianBergmann\PHPCPD# ESebastianBergmann\PHPCPD\CLI% ISebastianBergmann\FinderFacade global# ESebastianBergmann\PHPCPD\Log1 aSebastianBergmann\PHPCPD\Detector\Strategy( OSebastianBergmann\PHPCPD\Detector =SebastianBergmann\PHPCPD# ESebastianBergmann\PHPCPD\CLI Ybar\baz	 YFoo Yglobal global global %PHPMD\Writer
 %PHPMD\TextUI	 /PHPMD\Rule\Naming /PHPMD\Rule\Design =PHPMD\Rule\Controversial 5PHPMD\Rule\CleanCode !PHPMD\Rule )PHPMD\Renderer !PHPMD\Node PHPMD %
PHPMD\Writer  %
PHPMD\TextUI /
PHPMD\Rule\Naming~ /
PHPMD\Rule\Design} =
PHPMD\Rule\Controversial| 5
PHPMD\Rule\CleanCode{ !
PHPMD\Rulez )
PHPMD\Renderery !
PHPMD\Nodex 
PHPMDw rglobal&v KnPHPUnitTests\Extension\Fixturesu nglobalt global3s g{Symfony\Component\Security\Http\Authorization*r U{Symfony\Component\Security\Acl\Model.q ]{Symfony\Component\Form\ChoiceList\Loader"p E{Symfony\Component\Yaml\Tests&o M{Symfony\Component\Yaml\Exceptionn 9{Symfony\Component\Yaml!m C{Symfony\Component\VarDumper/l _{Symfony\Component\VarDumper\Tests\Fixture'k O{Symfony\Component\VarDumper\Tests.j ]{Symfony\Component\VarDumper\Tests\Caster&i M{Symfony\Component\VarDumper\Test+h W{Symfony\Component\VarDumper\Exception(g Q{Symfony\Component\VarDumper\Dumper(f Q{Symfony\Component\VarDumper\Cloner(e Q{Symfony\Component\VarDumper\Caster+d W{Symfony\Component\Validator\Violation+c W{Symfony\Component\Validator\Validator&b M{Symfony\Component\Validator\Util1a c{Symfony\Component\Validator\Tests\Validator,` Y{Symfony\Component\Validator\Tests\Util6_ m{Symfony\Component\Validator\Tests\Mapping\Loader7^ o{Symfony\Component\Validator\Tests\Mapping\Factory/] _{Symfony\Component\Validator\Tests\Mapping5\ k{Symfony\Component\Validator\Tests\Mapping\Cache0[ a{Symfony\Component\Validator\Tests\Fixtures'Z O{Symfony\Component\Validator\Tests   r eB$h9k[8j<"zX*




^
5
				o	M	3	hH!jJ$gB$xU:+|R)zJ qaQA_4                            )G SSymfony\Component\Finder\Expression(F QSymfony\Component\Finder\Exception&E MSymfony\Component\Finder\AdapterD slMichelfC )FPhpParser\NodeB FPhpParserA )QPhpParser\Node@ QPhpParser? global> Pimple= Pimple'< MSymfony\Component\Yaml\Exception; global: global9 global&8 KSymfony\Component\Process\Pipes*7 SSymfony\Component\Process\Exception*6 SOSymfony\Component\Finder\Expression)5 QOSymfony\Component\Finder\Exception'4 MOSymfony\Component\Finder\Adapter-3 YSymfony\Component\Filesystem\Exception(2 OESymfony\Component\EventDispatcher.1 [ESymfony\Component\EventDispatcher\Debug&0 KSymfony\Component\Console\Style'/ MSymfony\Component\Console\Output&. KSymfony\Component\Console\Input'- MSymfony\Component\Console\Helper*, SSymfony\Component\Console\Formatter++ USymfony\Component\Console\Descriptor.* [dAsm89\Twig\CacheExtension\CacheStrategy ) ?dAsm89\Twig\CacheExtension( global' /Zend\Stdlib\Guard & ?Zend\Stdlib\StringWrapper$% GZend\Stdlib\Hydrator\Strategy.$ [Zend\Stdlib\Hydrator\Strategy\Exception*# SZend\Stdlib\Hydrator\NamingStrategy$" GZend\Stdlib\Hydrator\Iterator! 5Zend\Stdlib\Hydrator"  CZend\Stdlib\Hydrator\Filter 7Zend\Stdlib\Extractor 7Zend\Stdlib\Exception 9Zend\Stdlib\ArrayUtils #Zend\Stdlib 9̥Zend\Hydrator\Strategy' M̥Zend\Hydrator\Strategy\Exception# E̥Zend\Hydrator\NamingStrategy 9̥Zend\Hydrator\Iterator 5̥Zend\Hydrator\Filter '̥Zend\Hydrator ;̥Zend\Hydrator\Exception iglobal iglobal  WFuel\Core 9 WCartalyst\Sentry\Tests  Wglobal$ G WCartalyst\Sentry\Users\Kohana 9 WCartalyst\Sentry\Users& K WCartalyst\Sentry\Users\Eloquent) Q WCartalyst\Sentry\Throttling\Kohana" C WCartalyst\Sentry\Throttling+
 U WCartalyst\Sentry\Throttling\Eloquent 	 ? WCartalyst\Sentry\Sessions - WCartalyst\Sentry = WCartalyst\Sentry\Hashing% I WCartalyst\Sentry\Groups\Kohana ; WCartalyst\Sentry\Groups' M WCartalyst\Sentry\Groups\Eloquent& K WCartalyst\Sentry\Facades\Native' M WCartalyst\Sentry\Facades\Laravel& K WCartalyst\Sentry\Facades\Kohana'  M WCartalyst\Sentry\Facades\FuelPHP = WCartalyst\Sentry\Facades"~ C WCartalyst\Sentry\Facades\CI} = WCartalyst\Sentry\Cookies| 7QPagerfanta\Tests\View{ -QPagerfanta\Tests+z UQPagerfanta\Tests\Adapter\DoctrineORMy =QPagerfanta\Tests\Adapterx =QPagerfanta\View\Templatew +QPagerfanta\Viewv !QPagerfantau 5QPagerfanta\Exceptiont 1QPagerfanta\Adapters 7VPagerfanta\Tests\Viewr -VPagerfanta\Tests+q UVPagerfanta\Tests\Adapter\DoctrineORMp =VPagerfanta\Tests\Adaptero =VPagerfanta\View\Templaten +VPagerfanta\Viewm !VPagerfantal 5VPagerfanta\Exceptionk 1VPagerfanta\Adapter j ?JohnKary\PHPUnit\Listener i ?JohnKary\PHPUnit\Listenerh  ^global'g M ^CodeClimate\Component\System\Git3f e ^CodeClimate\Bundle\TestReporterBundle\Entity4e g ^CodeClimate\Bundle\TestReporterBundle\Console4d g ^CodeClimate\Bundle\TestReporterBundle\Command,c W ^CodeClimate\Bundle\TestReporterBundle b ?NFaker\Test\Provider\fr_FRa 3NFaker\Test\Provider)` QNFaker\PHPUnit\Framework\Constraint_ !NFaker\Test^ 5NFaker\Provider\ua_UA] 5NFaker\Provider\tr_TR\ 5NFaker\Provider\sr_RS [ ?NFaker\Provider\sr_Latn_RS Z ?NFaker\Provider\sr_Cyrl_RSY 5NFaker\Provider\sk_SKX 5NFaker\Provider\ru_RUW 5NFaker\Provider\pt_BRV 5NFaker\Provider\pl_PL   S  |T!Cr?xIm@



[
:
			d	lP>1Y*|R)h1i:KpBU5
                                          0 _Symfony\Component\Form\ChoiceList\Factory( OSymfony\Component\Form\ChoiceList 9Symfony\Component\Form* SSymfony\Component\Finder\Expression) QSymfony\Component\Finder\Exception' MSymfony\Component\Finder\Adapter- YSymfony\Component\Filesystem\Exception7 mSymfony\Component\ExpressionLanguage\ParserCache+ USymfony\Component\ExpressionLanguage( OSymfony\Component\EventDispatcher. [Symfony\Component\EventDispatcher\Debug9 qSymfony\Component\DependencyInjection\ParameterBag@ Symfony\Component\DependencyInjection\LazyProxy\PhpDumperD Symfony\Component\DependencyInjection\LazyProxy\Instantiator6 kSymfony\Component\DependencyInjection\Extension6 kSymfony\Component\DependencyInjection\Exception3
 eSymfony\Component\DependencyInjection\Dumper,	 WSymfony\Component\DependencyInjection5 iSymfony\Component\DependencyInjection\Compiler- YSymfony\Component\Debug\Tests\Fixtures0 _Symfony\Component\Debug\FatalErrorHandler* SSymfony\Component\CssSelector\XPath4 gSymfony\Component\CssSelector\XPath\Extension+ USymfony\Component\CssSelector\Parser3 eSymfony\Component\CssSelector\Parser\Handler) QSymfony\Component\CssSelector\Node.  [Symfony\Component\CssSelector\Exception& KSymfony\Component\Console\Style'~ MSymfony\Component\Console\Output&} KSymfony\Component\Console\Input'| MSymfony\Component\Console\Helper*{ SSymfony\Component\Console\Formatter+z USymfony\Component\Console\Descriptor,y WSymfony\Component\Config\Tests\Loader(x OSymfony\Component\Config\Resource&w KSymfony\Component\Config\Loader*v SSymfony\Component\Config\Definition2u cSymfony\Component\Config\Definition\Buildert =Symfony\Component\Config
s Foor ClassMapq 1ClassesWithParents.p [Symfony\Component\Asset\VersionStrategyo ;Symfony\Component\Asset(n OSymfony\Component\Asset\Exception&m KSymfony\Component\Asset\ContextOl Symfony\Bundle\SecurityBundle\DependencyInjection\Security\UserProviderJk Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory0j _Symfony\Bundle\FrameworkBundle\Templating1i aSymfony\Bundle\FrameworkBundle\CacheWarmerh =Symfony\Bridge\Twig\Formg ;Symfony\Bridge\Doctrine.f [Symfony\Bridge\Doctrine\Form\ChoiceList e ?QSymfony\Component\Routing(d OQSymfony\Component\Routing\Matcher/c ]QSymfony\Component\Routing\Matcher\Dumper1b aQSymfony\Component\Routing\Generator\Dumper*a SQSymfony\Component\Routing\Generator*` SQSymfony\Component\Routing\Exception,_ WSymfony\Component\HttpKernel\Profiler'^ MSymfony\Component\HttpKernel\Log#] ESymfony\Component\HttpKernel-\ YSymfony\Component\HttpKernel\HttpCache,[ WSymfony\Component\HttpKernel\Fragment-Z YSymfony\Component\HttpKernel\Exception1Y aSymfony\Component\HttpKernel\DataCollector.X [Symfony\Component\HttpKernel\Controller/W ]Symfony\Component\HttpKernel\CacheWarmer0V _Symfony\Component\HttpKernel\CacheClearer*U SSymfony\Component\HttpKernel\Bundle7T m1Symfony\Component\HttpFoundation\Session\Storage/S ]1Symfony\Component\HttpFoundation\Session5R i1Symfony\Component\HttpFoundation\Session\Flash9Q q1Symfony\Component\HttpFoundation\Session\AttributeP 1global'O M1Symfony\Component\HttpFoundation5N i1Symfony\Component\HttpFoundation\File\MimeType-M YCSymfony\Component\Debug\Tests\Fixtures0L _CSymfony\Component\Debug\FatalErrorHandler%K KYSymfony\Component\Process\Pipes)J SYSymfony\Component\Process\Exception&I MSymfony\Component\Yaml\Exception,H YRSymfony\Component\Filesystem\Exception   O  j.]%wEyH_5


k
A
				\	(p>WNvHb,`.j<s?               2i cSymfony\Component\Serializer\Tests\Fixtures#h ESymfony\Component\Serializer.g [Symfony\Component\Serializer\Normalizer1f aSymfony\Component\Serializer\NameConverter2e cSymfony\Component\Serializer\Mapping\Loader3d eSymfony\Component\Serializer\Mapping\Factory+c USymfony\Component\Serializer\Mapping-b YSymfony\Component\Serializer\Exception+a USymfony\Component\Serializer\Encoder,` WSymfony\Component\Security\Http\Tests._ [Symfony\Component\Security\Http\Session1^ aSymfony\Component\Security\Http\RememberMe-] YSymfony\Component\Security\Http\Logout/\ ]Symfony\Component\Security\Http\Firewall1[ aSymfony\Component\Security\Http\EntryPoint4Z gSymfony\Component\Security\Http\Authorization5Y iSymfony\Component\Security\Http\Authentication&X KSymfony\Component\Security\Http3W eSymfony\Component\Security\Csrf\TokenStorage5V iSymfony\Component\Security\Csrf\TokenGenerator&U KSymfony\Component\Security\Csrf+T USymfony\Component\Security\Core\Util+S USymfony\Component\Security\Core\User&R KSymfony\Component\Security\Core+Q USymfony\Component\Security\Core\Role0P _Symfony\Component\Security\Core\Exception.O [Symfony\Component\Security\Core\Encoder:N sSymfony\Component\Security\Core\Authorization\Voter4M gSymfony\Component\Security\Core\Authorization;L uSymfony\Component\Security\Core\Authentication\TokenDK Symfony\Component\Security\Core\Authentication\Token\Storage@J Symfony\Component\Security\Core\Authentication\RememberMe>I {Symfony\Component\Security\Core\Authentication\Provider5H iSymfony\Component\Security\Core\Authentication0G _Symfony\Component\Security\Acl\Permission+F USymfony\Component\Security\Acl\Model E ?Symfony\Component\Routing(D OSymfony\Component\Routing\Matcher/C ]Symfony\Component\Routing\Matcher\Dumper1B aSymfony\Component\Routing\Generator\Dumper*A SSymfony\Component\Routing\Generator*@ SSymfony\Component\Routing\Exception'? MSymfony\Component\PropertyAccess1> aSymfony\Component\PropertyAccess\Exception&= KSymfony\Component\Process\Pipes*< SSymfony\Component\Process\Exception(; OSymfony\Component\OptionsResolver2: cSymfony\Component\OptionsResolver\Exception,9 WSymfony\Component\Intl\ResourceBundle'8 MSymfony\Component\Intl\Exception07 _Symfony\Component\Intl\Data\Bundle\Writer06 _Symfony\Component\Intl\Data\Bundle\Reader25 cSymfony\Component\Intl\Data\Bundle\Compiler,4 WSymfony\Component\HttpKernel\Profiler'3 MSymfony\Component\HttpKernel\Log#2 ESymfony\Component\HttpKernel-1 YSymfony\Component\HttpKernel\HttpCache,0 WSymfony\Component\HttpKernel\Fragment-/ YSymfony\Component\HttpKernel\Exception1. aSymfony\Component\HttpKernel\DataCollector.- [Symfony\Component\HttpKernel\Controller/, ]Symfony\Component\HttpKernel\CacheWarmer0+ _Symfony\Component\HttpKernel\CacheClearer** SSymfony\Component\HttpKernel\Bundle7) mSymfony\Component\HttpFoundation\Session\Storage/( ]Symfony\Component\HttpFoundation\Session5' iSymfony\Component\HttpFoundation\Session\Flash9& qSymfony\Component\HttpFoundation\Session\Attribute% global'$ MSymfony\Component\HttpFoundation5# iSymfony\Component\HttpFoundation\File\MimeType," WSymfony\Component\Form\Tests\Fixtures"! CSymfony\Component\Form\TestB  Symfony\Component\Form\Extension\Validator\ViolationMapper5 iSymfony\Component\Form\Extension\DataCollector9 qSymfony\Component\Form\Extension\Csrf\CsrfProvider7 mSymfony\Component\Form\Extension\Core\ChoiceList' MSymfony\Component\Form\Exception/ ]Symfony\Component\Form\ChoiceList\Loader   b  T(g9^1Z+zpF+



j
K
'
 					j	6	$	rJ,	]7P(
sJpOoMh;mW'                                                 (K QPSymfony\Component\CssSelector\Node-J [PSymfony\Component\CssSelector\ExceptionI '_PhpCollection%H KOSymfony\Component\Console\Style&G MOSymfony\Component\Console\Output%F KOSymfony\Component\Console\Input&E MOSymfony\Component\Console\Helper)D SOSymfony\Component\Console\Formatter*C UOSymfony\Component\Console\Descriptor,B WSymfony\Component\Config\Tests\Loader(A OSymfony\Component\Config\Resource&@ KSymfony\Component\Config\Loader*? SSymfony\Component\Config\Definition2> cSymfony\Component\Config\Definition\Builder= =Symfony\Component\Config+< WSymfony\Component\Config\Tests\Loader'; OSymfony\Component\Config\Resource%: KSymfony\Component\Config\Loader)9 SSymfony\Component\Config\Definition18 cSymfony\Component\Config\Definition\Builder7 =Symfony\Component\Config%6 KnSymfony\Component\Process\Pipes)5 SnSymfony\Component\Process\Exception,4 YSSymfony\Component\Filesystem\Exception)3 SSymfony\Component\Finder\Expression(2 QSymfony\Component\Finder\Exception&1 MSymfony\Component\Finder\Adapter0 =}Doctrine\Tests\ORM\Tools/ 1}Doctrine\ORM\Query. 1}Doctrine\ORM\Proxy- 5}Doctrine\ORM\Mapping , A|Doctrine\Common\Reflection+ 7|Doctrine\Common\Proxy%* K|Doctrine\Common\Proxy\Exception0) a|Doctrine\Common\Persistence\Mapping\Driver)( S|Doctrine\Common\Persistence\Mapping!' C|Doctrine\Common\Persistence& +|Doctrine\Common% 9 Doctrine\DBAL\Sharding)$ Q Doctrine\DBAL\Sharding\ShardChoser## E Doctrine\DBAL\Schema\Visitor(" O Doctrine\DBAL\Schema\Synchronizer! 5 Doctrine\DBAL\Schema  7 Doctrine\DBAL\Logging ' Doctrine\DBAL 5 Doctrine\DBAL\Driver |global  A|Doctrine\Common\Reflection 7|Doctrine\Common\Proxy% K|Doctrine\Common\Proxy\Exception0 a|Doctrine\Common\Persistence\Mapping\Driver) S|Doctrine\Common\Persistence\Mapping! C|Doctrine\Common\Persistence +|Doctrine\Common )BPhpParser\Node BPhpParser1 cJMS\Serializer\Tests\Fixtures\Discriminator )JMS\Serializer 7JMS\Serializer\Naming 9JMS\Serializer\Handler =JMS\Serializer\Exclusion =JMS\Serializer\Exception$ IJMS\Serializer\EventDispatcher! CJMS\Serializer\Construction 9JMS\Serializer\Builder*
 SyDoctrine\Common\DataFixtures\Purger#	 EyDoctrine\Common\DataFixtures* SDoctrine\Common\DataFixtures\Purger# EDoctrine\Common\DataFixtures /dCrada\Apidoc\View /kCrada\Apidoc\View' MSymfony\Component\VarDumper\Test ' MSymfony\Component\Yaml\Exception) QSymfony\Component\VarDumper\Dumper)  QSymfony\Component\VarDumper\Cloner, WSymfony\Component\Validator\Violation,~ WSymfony\Component\Validator\Validator7} mSymfony\Component\Validator\Tests\Mapping\Loader1| aSymfony\Component\Validator\Tests\Fixtures1{ aSymfony\Component\Validator\Mapping\Loader2z cSymfony\Component\Validator\Mapping\Factory*y SSymfony\Component\Validator\Mapping0x _Symfony\Component\Validator\Mapping\Cache,w WSymfony\Component\Validator\Exception*v SSymfony\Component\Validator\Context"u CSymfony\Component\Validator$t GSymfony\Component\Translation+s USymfony\Component\Translation\Loader.r [Symfony\Component\Translation\Extractor.q [Symfony\Component\Translation\Exception+p USymfony\Component\Translation\Dumper.o [Symfony\Component\Translation\Catalogue)n QSymfony\Component\Templating\Tests*m SSymfony\Component\Templating\Loader*l SSymfony\Component\Templating\Helper#k ESymfony\Component\Templating)j QSymfony\Component\Templating\Asset   z h<{DkO:}\J=3kV3




x
f
Y
O
+
				w	O	'	aM:yZ7bL8qT6uV? gG1f2Y-        &E MSymfony\Component\Console\Helper)D SSymfony\Component\Console\Formatter*C USymfony\Component\Console\Descriptor+B WSymfony\Component\Config\Tests\Loader'A OSymfony\Component\Config\Resource%@ KSymfony\Component\Config\Loader)? SSymfony\Component\Config\Definition1> cSymfony\Component\Config\Definition\Builder= =Symfony\Component\Config< ; global
: Foo9 ClassMap8 1ClassesWithParents7  6  global
5  Foo4  ClassMap3 1 ClassesWithParents2 'Guzzle\Stream1 ;Guzzle\Service\Resource 0 AGuzzle\Service\Description5/ kGuzzle\Service\Command\LocationVisitor\Response4. iGuzzle\Service\Command\LocationVisitor\Request$- IGuzzle\Service\Command\Factory, 9Guzzle\Service\Command+ )Guzzle\Service* 9Guzzle\Service\Builder!) CGuzzle\Plugin\ErrorResponse$( IGuzzle\Plugin\Cookie\CookieJar' 3Guzzle\Plugin\Cache& 7Guzzle\Plugin\Backoff% /Guzzle\Parser\Url$ ?Guzzle\Parser\UriTemplate# 7Guzzle\Parser\Message" 5Guzzle\Parser\Cookie! !Guzzle\Log  /Guzzle\Inflection! CGuzzle\Http\QueryAggregator  AGuzzle\Http\Message\Header 3Guzzle\Http\Message 7Guzzle\Http\Exception -Guzzle\Http\Curl #Guzzle\Http 'Guzzle\Common ;Guzzle\Common\Exception %Guzzle\Cache %Guzzle\Batch %EReact\Stream %5React\Socket !\React\Http +React\EventLoop 'Guzzle\Stream /Guzzle\Parser\Url  ?Guzzle\Parser\UriTemplate 7Guzzle\Parser\Message 5Guzzle\Parser\Cookie 3Guzzle\Http\Message 7Guzzle\Http\Exception
 -Guzzle\Http\Curl	 #Guzzle\Http 'Guzzle\Common ;Guzzle\Common\Exception jEvenement !`React\Http$ GxDflydev\Symfony\FinderFactory" CoDflydev\PlaceholderResolver- YoDflydev\PlaceholderResolver\DataSource( OoDflydev\PlaceholderResolver\Cache  7kDflydev\DotAccessData% IaDflydev\DotAccessConfiguration%~ IcDflydev\DotAccessConfiguration&} KBDflydev\Canal\InternetMediaType| 9BDflydev\Canal\Detector{ ;:Dflydev\ApacheMimeTypes"z C/dflydev\util\antPathMatcher"y C2dflydev\util\antPathMatcher!x A Composer\Semver\Constraintw  
v  Foou  ClassMapt ; Composer\Repository\Vcss 3 Composer\Repositoryr + Composer\Pluginq ; Composer\Package\Loader&p K Composer\Package\LinkConstrainto - Composer\Package n ? Composer\Package\Archiverm # Composer\IOl 1 Composer\Installerk = Composer\EventDispatcherj 3 Composer\Downloader"i C Composer\DependencyResolver,h W Composer\DependencyResolver\Operationg + Composer\Configf  
e  Food  ClassMapc ; Composer\Repository\Vcsb 3 Composer\Repositorya + Composer\Plugin` ; Composer\Package\Loader&_ K Composer\Package\LinkConstraint^ - Composer\Package ] ? Composer\Package\Archiver\ # Composer\IO[ 1 Composer\InstallerZ = Composer\EventDispatcherY 3 Composer\Downloader"X C Composer\DependencyResolver,W W Composer\DependencyResolver\OperationV + Composer\Config*U SSymfony\Component\CssSelector\XPath4T gSymfony\Component\CssSelector\XPath\Extension+S USymfony\Component\CssSelector\Parser3R eSymfony\Component\CssSelector\Parser\Handler)Q QSymfony\Component\CssSelector\Node.P [Symfony\Component\CssSelector\Exception)O SPSymfony\Component\CssSelector\XPath3N gPSymfony\Component\CssSelector\XPath\Extension*M UPSymfony\Component\CssSelector\Parser2L ePSymfony\Component\CssSelector\Parser\Handler   `  P"}7Sd!\0



j
;
				b	6	kCT-|`P@jG	gT<$ufVFa8sL!                 &% K 5Behat\Behat\Output\Node\Printer$ 9 5Behat\Behat\Hook\Scope(# O 5Behat\Behat\EventDispatcher\Event$" G 5Behat\Behat\Definition\Search%! I 5Behat\Behat\Definition\Printer,  W 5Behat\Behat\Definition\Pattern\Policy' M 5Behat\Behat\Definition\Exception 9 5Behat\Behat\Definition! A 5Behat\Behat\Context\Reader& K 5Behat\Behat\Context\Initializer$ G 5Behat\Behat\Context\Exception& K 5Behat\Behat\Context\Environment' M 5Behat\Behat\Context\ContextClass 3 5Behat\Behat\Context# E 5Behat\Behat\Context\Argument% I 5Behat\Behat\Context\Annotation 2&global global global +>PhpSpec\Wrapper) S>PhpSpec\Wrapper\Subject\Expectation >PhpSpec ?>PhpSpec\Runner\Maintainer +>PhpSpec\Process =>PhpSpec\Process\ReRunner +>PhpSpec\Matcher +>PhpSpec\Locator
 !>PhpSpec\IO	 />PhpSpec\Formatter! C>PhpSpec\Formatter\Presenter( Q>PhpSpec\Formatter\Presenter\Differ 9>PhpSpec\Formatter\Html />PhpSpec\Extension '>PhpSpec\Event% K>PhpSpec\CodeGenerator\Generator  ? Illuminate\Support\Traits =&Cartalyst\Support\Traits!  A&Cartalyst\Support\Handlers" C&Cartalyst\Support\Contracts~ =&Cartalyst\Support\Traits!} A&Cartalyst\Support\Handlers"| C&Cartalyst\Support\Contracts{ globalz globaly 1 RIlluminate\Sessionx + OIlluminate\Http5w koSymfony\Component\HttpFoundation\SessionStorage&v MoSymfony\Component\HttpFoundation4u ioSymfony\Component\HttpFoundation\File\MimeType$t GISymfony\Component\Translation+s UISymfony\Component\Translation\Loader.r [ISymfony\Component\Translation\Extractor.q [ISymfony\Component\Translation\Exception+p UISymfony\Component\Translation\Dumper.o [ISymfony\Component\Translation\Catalogue%n I Illuminate\Database\Migrations#m E Illuminate\Database\Eloquent%l I Illuminate\Database\Connectorsk 3 Illuminate\Databasej global&i MSymfony\Component\Yaml\Exception%h K=Symfony\Component\Process\Pipes)g S=Symfony\Component\Process\Exception+f Wp-Symfony\Component\HttpKernel\Profiler&e Mp-Symfony\Component\HttpKernel\Log"d Ep-Symfony\Component\HttpKernel,c Yp-Symfony\Component\HttpKernel\HttpCache+b Wp-Symfony\Component\HttpKernel\Fragment,a Yp-Symfony\Component\HttpKernel\Exception0` ap-Symfony\Component\HttpKernel\DataCollector-_ [p-Symfony\Component\HttpKernel\Controller.^ ]p-Symfony\Component\HttpKernel\CacheWarmer/] _p-Symfony\Component\HttpKernel\CacheClearer)\ Sp-Symfony\Component\HttpKernel\Bundle,[ Y6Symfony\Component\Filesystem\Exception'Z O Symfony\Component\EventDispatcher-Y [ Symfony\Component\EventDispatcher\Debug9X q
Symfony\Component\DependencyInjection\ParameterBag@W 
Symfony\Component\DependencyInjection\LazyProxy\PhpDumperDV 
Symfony\Component\DependencyInjection\LazyProxy\Instantiator6U k
Symfony\Component\DependencyInjection\Extension6T k
Symfony\Component\DependencyInjection\Exception3S e
Symfony\Component\DependencyInjection\Dumper,R W
Symfony\Component\DependencyInjection5Q i
Symfony\Component\DependencyInjection\Compiler8P qSymfony\Component\DependencyInjection\ParameterBag?O Symfony\Component\DependencyInjection\LazyProxy\PhpDumperCN Symfony\Component\DependencyInjection\LazyProxy\Instantiator5M kSymfony\Component\DependencyInjection\Extension5L kSymfony\Component\DependencyInjection\Exception2K eSymfony\Component\DependencyInjection\Dumper+J WSymfony\Component\DependencyInjection4I iSymfony\Component\DependencyInjection\Compiler%H KSymfony\Component\Console\Style&G MSymfony\Component\Console\Output%F KSymfony\Component\Console\Input   d  gJ.h= pBpM0l2




Z
6
				u	P	(	kB}V+nI,kJvR$tR/uNd<   &	 K Behat\Testwork\Tester\Exception 5 Behat\Testwork\Suite! A Behat\Testwork\Suite\Setup% I Behat\Testwork\Suite\Generator# E Behat\Testwork\Specification+ U Behat\Testwork\Specification\Locator& K Behat\Testwork\ServiceContainer0 _ Behat\Testwork\ServiceContainer\Exception7 m Behat\Testwork\Output\ServiceContainer\Formatter$  G Behat\Testwork\Output\Printer/ ] Behat\Testwork\Output\Node\EventListener~ 7 Behat\Testwork\Output&} K Behat\Testwork\Output\Exception | ? Behat\Testwork\Hook\Scope{ 3 Behat\Testwork\Hook z ? Behat\Testwork\Filesystemy = Behat\Testwork\Exception(x O Behat\Testwork\Exception\Stringer+w U Behat\Testwork\EventDispatcher\Event(v O Behat\Testwork\Environment\Reader)u Q Behat\Testwork\Environment\Handler+t U Behat\Testwork\Environment\Exception!s A Behat\Testwork\Environmentr 1 Behat\Testwork\Cli"q C Behat\Testwork\Call\Handler!p A Behat\Testwork\Call\Filter$o G Behat\Testwork\Call\Exceptionn 3 Behat\Testwork\Call(m O Behat\Testwork\Argument\Exceptionl ; Behat\Testwork\Argument-k Y Behat\Behat\Transformation\Transformer!j A Behat\Behat\Transformation+i U Behat\Behat\Transformation\Exception h ? Behat\Behat\Tester\Resultg 1 Behat\Behat\Testerf 3 Behat\Behat\Snippet"e C Behat\Behat\Snippet\Printer$d G Behat\Behat\Snippet\Generator$c G Behat\Behat\Snippet\Exception#b E Behat\Behat\Snippet\Appender&a K Behat\Behat\Output\Node\Printer` 9 Behat\Behat\Hook\Scope(_ O Behat\Behat\EventDispatcher\Event$^ G Behat\Behat\Definition\Search%] I Behat\Behat\Definition\Printer,\ W Behat\Behat\Definition\Pattern\Policy'[ M Behat\Behat\Definition\ExceptionZ 9 Behat\Behat\Definition!Y A Behat\Behat\Context\Reader&X K Behat\Behat\Context\Initializer$W G Behat\Behat\Context\Exception&V K Behat\Behat\Context\Environment'U M Behat\Behat\Context\ContextClassT 3 Behat\Behat\Context#S E Behat\Behat\Context\Argument%R I Behat\Behat\Context\Annotation"Q C 5Behat\Testwork\Tester\Setup2P c 5Behat\Testwork\Tester\Result\Interpretation#O E 5Behat\Testwork\Tester\ResultN 7 5Behat\Testwork\Tester&M K 5Behat\Testwork\Tester\ExceptionL 5 5Behat\Testwork\Suite!K A 5Behat\Testwork\Suite\Setup%J I 5Behat\Testwork\Suite\Generator#I E 5Behat\Testwork\Specification+H U 5Behat\Testwork\Specification\Locator&G K 5Behat\Testwork\ServiceContainer0F _ 5Behat\Testwork\ServiceContainer\Exception7E m 5Behat\Testwork\Output\ServiceContainer\Formatter$D G 5Behat\Testwork\Output\Printer/C ] 5Behat\Testwork\Output\Node\EventListenerB 7 5Behat\Testwork\Output&A K 5Behat\Testwork\Output\Exception @ ? 5Behat\Testwork\Hook\Scope? 3 5Behat\Testwork\Hook > ? 5Behat\Testwork\Filesystem= = 5Behat\Testwork\Exception(< O 5Behat\Testwork\Exception\Stringer+; U 5Behat\Testwork\EventDispatcher\Event(: O 5Behat\Testwork\Environment\Reader)9 Q 5Behat\Testwork\Environment\Handler+8 U 5Behat\Testwork\Environment\Exception!7 A 5Behat\Testwork\Environment6 1 5Behat\Testwork\Cli"5 C 5Behat\Testwork\Call\Handler!4 A 5Behat\Testwork\Call\Filter$3 G 5Behat\Testwork\Call\Exception2 3 5Behat\Testwork\Call(1 O 5Behat\Testwork\Argument\Exception0 ; 5Behat\Testwork\Argument-/ Y 5Behat\Behat\Transformation\Transformer!. A 5Behat\Behat\Transformation+- U 5Behat\Behat\Transformation\Exception , ? 5Behat\Behat\Tester\Result+ 1 5Behat\Behat\Tester* 3 5Behat\Behat\Snippet") C 5Behat\Behat\Snippet\Printer$( G 5Behat\Behat\Snippet\Generator$' G 5Behat\Behat\Snippet\Exception#& E 5Behat\Behat\Snippet\Appender   j  aD#tW< O:"a/\.



\
$			a	=	w>
pX@wT6 eE0iK mS/oV<{O#               s ztglobal'r MwSymfony\Component\VarDumper\Test)q QwSymfony\Component\VarDumper\Dumper)p QwSymfony\Component\VarDumper\Cloner'o M Symfony\Component\VarDumper\Test)n Q Symfony\Component\VarDumper\Dumper)m Q Symfony\Component\VarDumper\Clonerl +-Monolog\Handler$k I-Monolog\Handler\FingersCrossedj /-Monolog\Formatteri + Illuminate\Viewh ; Illuminate\View\Engines g ? Illuminate\View\Compilersf 1MGuzzleHttp\Handlere 5MGuzzleHttp\Exceptiond /MGuzzleHttp\Cookiec !MGuzzleHttpb 'aSliver\Runner!a CInterop\Container\Exception` /Interop\Container_ ?IInvoker\ParameterResolver^ IInvoker] global\ 9Doctrine\DBAL\Sharding)[ QDoctrine\DBAL\Sharding\ShardChoser#Z EDoctrine\DBAL\Schema\Visitor(Y ODoctrine\DBAL\Schema\SynchronizerX 5Doctrine\DBAL\SchemaW 7Doctrine\DBAL\LoggingV 'Doctrine\DBALU 5Doctrine\DBAL\DriverT ;}Doctrine\ORM\RepositoryS 1}Doctrine\ORM\QueryR 1}Doctrine\ORM\ProxyQ 5}Doctrine\ORM\MappingP %}Doctrine\ORMO 9Doctrine\DBAL\Sharding)N QDoctrine\DBAL\Sharding\ShardChoser#M EDoctrine\DBAL\Schema\Visitor(L ODoctrine\DBAL\Schema\SynchronizerK 5Doctrine\DBAL\SchemaJ 7Doctrine\DBAL\LoggingI 'Doctrine\DBALH 5Doctrine\DBAL\Driver G A|Doctrine\Common\ReflectionF 7|Doctrine\Common\Proxy%E K|Doctrine\Common\Proxy\Exception0D a|Doctrine\Common\Persistence\Mapping\Driver)C S|Doctrine\Common\Persistence\Mapping!B C|Doctrine\Common\PersistenceA +|Doctrine\Common@ +5Monolog\Handler$? I5Monolog\Handler\FingersCrossed> /5Monolog\Formatter,= YSymfony\Component\Filesystem\Exception'< MNSymfony\Component\PropertyAccess1; aNSymfony\Component\PropertyAccess\Exception6: mASymfony\Component\Validator\Tests\Mapping\Loader09 aASymfony\Component\Validator\Tests\Fixtures08 aASymfony\Component\Validator\Mapping\Loader/7 _ASymfony\Component\Validator\Mapping\Cache+6 WASymfony\Component\Validator\Exception!5 CASymfony\Component\Validator84 q|Symfony\Component\DependencyInjection\ParameterBag?3 |Symfony\Component\DependencyInjection\LazyProxy\PhpDumperC2 |Symfony\Component\DependencyInjection\LazyProxy\Instantiator51 k|Symfony\Component\DependencyInjection\Extension50 k|Symfony\Component\DependencyInjection\Exception2/ e|Symfony\Component\DependencyInjection\Dumper+. W|Symfony\Component\DependencyInjection4- i|Symfony\Component\DependencyInjection\Compiler+, WbSymfony\Component\Config\Tests\Loader'+ ObSymfony\Component\Config\Resource%* KbSymfony\Component\Config\Loader) =bSymfony\Component\Config)( SbSymfony\Component\Config\Definition1' cbSymfony\Component\Config\Definition\Builder/& _lSymfony\Component\Debug\FatalErrorHandler"% C:,Behat\MinkExtension\Context3$ eCSensioLabs\Behat\PageObjectExtension\Context# %?Buzz\Message" /?Buzz\Message\Form! 5?Buzz\Message\Factory  '?Buzz\Listener )?Buzz\Exception #?Buzz\Client2 c:(Behat\MinkExtension\ServiceContainer\Driver" C:(Behat\MinkExtension\Context2 c:8Behat\MinkExtension\ServiceContainer\Driver" C:8Behat\MinkExtension\Context 39oBehat\Mink\Selector 19oBehat\Mink\Element /9oBehat\Mink\Driver 39Behat\Mink\Selector 19Behat\Mink\Element /9Behat\Mink\Driver 14Behat\Gherkin\Node 54Behat\Gherkin\Loader 94Behat\Gherkin\Keywords 54Behat\Gherkin\Filter ;4Behat\Gherkin\Exception 34Behat\Gherkin\Cache" C Behat\Testwork\Tester\Setup2 c Behat\Testwork\Tester\Result\Interpretation# E Behat\Testwork\Tester\Result
 7 Behat\Testwork\Tester   ~  sWE&t^9!qM(a<sJ; 


_
3
			y	W	H	5	 	s\EmG$eM3qbK0mS;|dA1}S)nTD                             !q ACodeception\Lib\Interfacesp globalo -Shire\_generatedn +Jazz\_generatedm ;Jazz\Pianist\_generatedl !_generatedk ;Codeception\Util\Shared"j CCodeception\TestCase\Shared$i GCodeception\Subscriber\Shared'h MCodeception\Lib\Generator\Shared'g MCodeception\Lib\Connector\Shared#f ECodeception\Lib\Actor\Shared!e ACodeception\Command\Shared&d KCodeception\TestCase\Interfacesc 3Codeception\PHPUnit!b ACodeception\Lib\Interfacesa global ` ? 9Illuminate\Support\Traits_ )	9Zend\Diactoros^ ;	9Zend\Diactoros\Response] =	9Zend\Diactoros\Exception\ xglobal[ nTracy'Z OfVSymfony\Component\OptionsResolver1Y cfVSymfony\Component\OptionsResolver\ExceptionX )Nette\SecurityW -Nette\ReflectionV !mNette\MailU !\Nette\HttpT 59Nette\ComponentModelS 9&Nette\Caching\StoragesR '&Nette\Caching%Q INette\Bridges\ApplicationLatteP 5Nette\Application\UIO /Nette\ApplicationN 'Latte\RuntimeM LatteL FSHLK %Kdyby\EventsJ ;kApiGen\Reflection\Parts(I OkApiGen\Reflection\TokenReflection-H YkApiGen\Generator\SourceCodeHighlighterG =kApiGen\Generator\MarkupsF -kApiGen\GeneratorE )kApiGen\Console!D AkApiGen\Configuration\Theme#C EkApiGen\Configuration\ReadersB 5kApiGen\ConfigurationA global@ %>React\Stream? %.React\Socket> 1React\SocketClient = ?React\Promise\PromiseTest#< EReact\Promise\PromiseAdapter; 'React\Promise: !YReact\Http9 7React\EventLoop\Timer8 +React\EventLoop7 +React\Dns\Query&6 Mg Symfony\Component\PropertyAccess05 ag Symfony\Component\PropertyAccess\Exception4 'React\Promise3 'React\Promise2 %<React\Stream1 1React\SocketClient0 %,React\Socket/ !XReact\Http. 7React\EventLoop\Timer- +React\EventLoop, +React\Dns\Query+ #React\Cache* hEvenement) .global( ?gSymfony\Component\Routing'' OgSymfony\Component\Routing\Matcher.& ]gSymfony\Component\Routing\Matcher\Dumper0% agSymfony\Component\Routing\Generator\Dumper)$ SgSymfony\Component\Routing\Generator)# SgSymfony\Component\Routing\Exception6" moSymfony\Component\HttpFoundation\Session\Storage.! ]oSymfony\Component\HttpFoundation\Session4  ioSymfony\Component\HttpFoundation\Session\Flash8 qoSymfony\Component\HttpFoundation\Session\Attribute oglobal& MoSymfony\Component\HttpFoundation4 ioSymfony\Component\HttpFoundation\File\MimeType 'Guzzle\Stream /Guzzle\Parser\Url  ?Guzzle\Parser\UriTemplate 7Guzzle\Parser\Message 5Guzzle\Parser\Cookie" CGuzzle\Http\QueryAggregator! AGuzzle\Http\Message\Header 3Guzzle\Http\Message 7Guzzle\Http\Exception -Guzzle\Http\Curl #Guzzle\Http 'nGuzzle\Common ;nGuzzle\Common\Exception" CGuzzle\Http\QueryAggregator! AGuzzle\Http\Message\Header 3Guzzle\Http\Message 7Guzzle\Http\Exception
 -Guzzle\Http\Curl	 #Guzzle\Http %LReact\Stream +React\EventLoop %9React\Socket )zDissect\Parser" CzDissect\Parser\LALR1\Dumper %zDissect\Node  ?zDissect\Lexer\TokenStream =zDissect\Lexer\Recognizer  'zDissect\Lexer 3zTokenReflection\Php~ +zTokenReflection} 9zTokenReflection\Broker| 7zDemo\Aspect\Introduce{ zTest\ns1z 1zGo\Lang\Annotation y ?zGo\Instrument\Transformerx zGo\Corew -zGo\Aop\Interceptv -zGo\Aop\Frameworku zGo\Aopt #zDemo\Aspect   @ pFzaG8iX5h;mA





h
O
2

							m	S	(	mYC*`C%iM/tbL:$hN's^>(wY7g@                                            $w IGuzzle\Service\Command\Factoryv 9Guzzle\Service\Commandu )Guzzle\Servicet 9Guzzle\Service\Builder$s IGuzzle\Plugin\Cookie\CookieJarr 3Guzzle\Plugin\Cacheq 7Guzzle\Plugin\Backoffp /Guzzle\Parser\Urlo ?Guzzle\Parser\UriTemplaten 7Guzzle\Parser\Messagem 5Guzzle\Parser\Cookiel !Guzzle\Logk /Guzzle\Inflectionj 3Guzzle\Http\Messagei 7Guzzle\Http\Exceptionh -Guzzle\Http\Curlg #Guzzle\Httpf 'Guzzle\Commone ;Guzzle\Common\Exceptiond %Guzzle\Cachec %Guzzle\Batchb -Rocketeer\Traits#a ERocketeer\Traits\BashModules&` KRocketeer\Interfaces\Strategies_ 5Rocketeer\Interfaces^ +*Monolog\Handler$] I*Monolog\Handler\FingersCrossed\ /*Monolog\Formatter[ )wrock\db\commonZ %]rock\sessionY 7^rock\snippets\filtersX 7arock\snippets\filtersW #6rock\accessV #7rock\accessU rock\dateT rock\dateS %Yrock\sessionR rock\urlQ %rock\requestP rock\urlO %rock\requestN %rock\requestM +qrock\componentsL 1iOAuth\OAuth2\TokenK 5iOAuth\OAuth2\ServiceJ 1iOAuth\OAuth1\TokenI 9iOAuth\OAuth1\SignatureH 5iOAuth\OAuth1\ServiceG 1iOAuth\Common\TokenF 5iOAuth\Common\StorageE 5iOAuth\Common\ServiceD 7iOAuth\Common\Http\UriC =iOAuth\Common\Http\ClientB globalA 5PhpAmqpLib\Exception@ wrock\mq? 5Dcebe\markdown\inline> 3Dcebe\markdown\block= 7Imagine\Image\Palette"< CImagine\Image\Palette\Color; 9Imagine\Image\Metadata: 1Imagine\Image\Fill9 'Imagine\Image8 )Imagine\Filter7 /Imagine\Exception6 +Imagine\Effects5 %Imagine\Draw4 !rock\image3 )vrock\db\common2 +mrock\components1 7rock\cache\versioning0 !rock\cache/ #rock\events. ;League\Flysystem\Cached- ;0League\Flysystem\Plugin(, O0League\Flysystem\Adapter\Polyfill+ -0League\Flysystem* + rockunit\common) % rock\helpers( +2rockunit\common' %2rock\helpers& 	rock\base% rock\base$ %"rock\helpers# rock\base" )`Lurker\Tracker! 3`Lurker\StateChecker  +`Lurker\Resource -`Lurker\Exception )bLurker\Tracker 3bLurker\StateChecker +bLurker\Resource -bLurker\Exception, YSymfony\Component\Filesystem\Exception% KSymfony\Component\Process\Pipes) SSymfony\Component\Process\Exception% KSymfony\Component\Console\Style& MSymfony\Component\Console\Output% KSymfony\Component\Console\Input& MSymfony\Component\Console\Helper) SSymfony\Component\Console\Formatter* USymfony\Component\Console\Descriptor) S~Symfony\Component\Finder\Expression( Q~Symfony\Component\Finder\Exception& M~Symfony\Component\Finder\Adapter 7hDemo\Aspect\Introduce hTest\ns1 1hGo\Lang\Annotation  ?hGo\Instrument\Transformer
 hGo\Core	 -hGo\Aop\Intercept -hGo\Aop\Framework hGo\Aop #hDemo\Aspect !)_generated )demo +)AspectMock\Util !-_generated -demo  +-AspectMock\Util global~ -Shire\_generated} +Jazz\_generated| ;Jazz\Pianist\_generated{ !_generatedz ;Codeception\Util\Shared"y CCodeception\TestCase\Shared$x GCodeception\Subscriber\Shared'w MCodeception\Lib\Generator\Shared'v MCodeception\Lib\Connector\Shared#u ECodeception\Lib\Actor\Shared!t ACodeception\Command\Shared&s KCodeception\TestCase\Interfacesr 3Codeception\PHPUnit   t  nN8|bN3dH-a9qR4






o
S
>
 
				a	L	/	lI$kD)rQ.nH,`:zV6cCdH%        +k U Behat\Behat\Transformation\Exception j ? Behat\Behat\Tester\Resulti 1 Behat\Behat\Testerh 3 Behat\Behat\Snippet"g C Behat\Behat\Snippet\Printer$f G Behat\Behat\Snippet\Generator$e G Behat\Behat\Snippet\Exception#d E Behat\Behat\Snippet\Appender&c K Behat\Behat\Output\Node\Printerb 9 Behat\Behat\Hook\Scope(a O Behat\Behat\EventDispatcher\Event$` G Behat\Behat\Definition\Search%_ I Behat\Behat\Definition\Printer,^ W Behat\Behat\Definition\Pattern\Policy'] M Behat\Behat\Definition\Exception\ 9 Behat\Behat\Definition![ A Behat\Behat\Context\Reader&Z K Behat\Behat\Context\Initializer$Y G Behat\Behat\Context\Exception&X K Behat\Behat\Context\Environment'W M Behat\Behat\Context\ContextClassV 3 Behat\Behat\Context#U E Behat\Behat\Context\Argument%T I Behat\Behat\Context\AnnotationS ElasticaR 7Elastica\QueryBuilderQ 1Elastica\Exception#P EElastica\Connection\StrategyO ElasticaN 7Elastica\QueryBuilderM 1Elastica\Exception#L EElastica\Connection\Strategy K ?ޛElasticsearch\SerializersJ ;ޛElasticsearch\Endpoints I ?ޛElasticsearch\Connections-H YޛElasticsearch\ConnectionPool\Selectors&G KޛElasticsearch\Common\Exceptions F ?ީElasticsearch\SerializersE ;ީElasticsearch\Endpoints D ?ީElasticsearch\Connections-C YީElasticsearch\ConnectionPool\Selectors&B KީElasticsearch\Common\ExceptionsA ;}Doctrine\ORM\Repository@ 1}Doctrine\ORM\Query? 1}Doctrine\ORM\Proxy$> I}Doctrine\ORM\Persisters\Entity(= Q}Doctrine\ORM\Persisters\Collection< 5}Doctrine\ORM\Mapping; %}Doctrine\ORM): S}Doctrine\ORM\Cache\Persister\Entity-9 [}Doctrine\ORM\Cache\Persister\Collection"8 E}Doctrine\ORM\Cache\Persister 7 A}Doctrine\ORM\Cache\Logging6 1}Doctrine\ORM\Cache5 ;}Doctrine\ORM\Repository4 1}Doctrine\ORM\Query3 1}Doctrine\ORM\Proxy$2 I}Doctrine\ORM\Persisters\Entity(1 Q}Doctrine\ORM\Persisters\Collection0 5}Doctrine\ORM\Mapping/ %}Doctrine\ORM). S}Doctrine\ORM\Cache\Persister\Entity-- [}Doctrine\ORM\Cache\Persister\Collection", E}Doctrine\ORM\Cache\Persister + A}Doctrine\ORM\Cache\Logging* 1}Doctrine\ORM\Cache) 7|Doctrine\Common\Cache( #Hoa\Visitor' 1Hoa\Core\Parameter& )Hoa\Core\Event% 'Hoa\Core\Data$ # +۶Hoa\Xyl\Element" 7ۭHoa\Xml\Element\Model! +ۭHoa\Xml\Element  ۙHoa\View !LHoa\Router #5Hoa\Realdom 55Hoa\Realdom\IRealdom 7)Hoa\Praspel\Exception 5Hoa\Locale\Localizer) QڿHoa\Console\Readline\Autocompleter2 cmageekguy\atoum\tests\units\factory\builder 9mageekguy\atoum\writer& Kmageekguy\atoum\scripts\treemap% Imageekguy\atoum\report\writers  ?mageekguy\atoum\observers 5mageekguy\atoum\mock ;mageekguy\atoum\factory +mageekguy\atoum =mageekguy\atoum\asserter ;mageekguy\atoum\adapter iBoris /[Illuminate\Remote 1 Illuminate\Console / Illuminate\Config  ? Illuminate\Support\Traits#
 E Illuminate\Support\Contracts	 5 ;Symfony\CS\Tokenizer / ;Symfony\CS\Linter ! ;Symfony\CS 5 <Symfony\CS\Tokenizer / <Symfony\CS\Linter ! <Symfony\CS -Rocketeer\Traits# ERocketeer\Traits\BashModules& KRocketeer\Interfaces\Strategies  5Rocketeer\Interfaces )KzykHys\Thread~ /PIlluminate\Remote} 1 Illuminate\Console| 'Guzzle\Stream{ ;Guzzle\Service\Resource z AGuzzle\Service\Description5y kGuzzle\Service\Command\LocationVisitor\Response4x iGuzzle\Service\Command\LocationVisitor\Request   f  `Ce9pS0U"}Y;



s
c
S
,						l	L	~nO+nK0 qX>p: \&waK'o;n@                           *Q SNSymfony\Component\Validator\Context"P CNSymfony\Component\Validator+O WSymfony\Component\Validator\Violation+N WSymfony\Component\Validator\Validator6M mSymfony\Component\Validator\Tests\Mapping\Loader0L aSymfony\Component\Validator\Tests\Fixtures0K aSymfony\Component\Validator\Mapping\Loader1J cSymfony\Component\Validator\Mapping\Factory)I SSymfony\Component\Validator\Mapping/H _Symfony\Component\Validator\Mapping\Cache+G WSymfony\Component\Validator\Exception)F SSymfony\Component\Validator\Context!E CSymfony\Component\ValidatorD %League\EventC %League\EventB ; League\Flysystem\Plugin(A O League\Flysystem\Adapter\Polyfill@ - League\Flysystem,? WLeague\Tactician\Plugins\NamedCommand> -League\Tactician3= eLeague\Tactician\Handler\MethodNameInflector'< MLeague\Tactician\Handler\Locator4; gLeague\Tactician\Handler\CommandNameExtractor!: ALeague\Tactician\Exception9 global,8 WLeague\Tactician\Plugins\NamedCommand7 -League\Tactician36 eLeague\Tactician\Handler\MethodNameInflector'5 MLeague\Tactician\Handler\Locator44 gLeague\Tactician\Handler\CommandNameExtractor!3 ALeague\Tactician\Exception2 global1 'bStash\Session0 =bStash\Interfaces\Drivers/ -bStash\Interfaces. +bStash\Exception- ;bStash\Driver\FileSystem, =DphpDocumentor\Reflection+ =EphpDocumentor\Reflection'* O Symfony\Component\EventDispatcher-) [ Symfony\Component\EventDispatcher\Debug( /RDesarrolla2\Cache ' ?RDesarrolla2\Cache\Adapter& )
JMS\Serializer% 7
JMS\Serializer\Naming$ 9
JMS\Serializer\Handler# =
JMS\Serializer\Exclusion" =
JMS\Serializer\Exception$! I
JMS\Serializer\EventDispatcher!  C
JMS\Serializer\Construction 9
JMS\Serializer\Builder global7 mSymfony\Component\ExpressionLanguage\ParserCache+ USymfony\Component\ExpressionLanguage6 m Symfony\Component\ExpressionLanguage\ParserCache* U Symfony\Component\ExpressionLanguage 9org\bovigo\vfs\visitor )org\bovigo\vfs 9org\bovigo\vfs\content 9=org\bovigo\vfs\visitor )=org\bovigo\vfs 9=org\bovigo\vfs\content0 _SebastianBergmann\GlobalState\TestFixture$ GSebastianBergmann\GlobalState global uglobal" C Behat\Testwork\Tester\Setup2 c Behat\Testwork\Tester\Result\Interpretation# E Behat\Testwork\Tester\Result 7 Behat\Testwork\Tester& K Behat\Testwork\Tester\Exception
 5 Behat\Testwork\Suite!	 A Behat\Testwork\Suite\Setup% I Behat\Testwork\Suite\Generator# E Behat\Testwork\Specification+ U Behat\Testwork\Specification\Locator& K Behat\Testwork\ServiceContainer0 _ Behat\Testwork\ServiceContainer\Exception7 m Behat\Testwork\Output\ServiceContainer\Formatter$ G Behat\Testwork\Output\Printer/ ] Behat\Testwork\Output\Node\EventListener  7 Behat\Testwork\Output& K Behat\Testwork\Output\Exception ~ ? Behat\Testwork\Hook\Scope} 3 Behat\Testwork\Hook | ? Behat\Testwork\Filesystem{ = Behat\Testwork\Exception(z O Behat\Testwork\Exception\Stringer+y U Behat\Testwork\EventDispatcher\Event(x O Behat\Testwork\Environment\Reader)w Q Behat\Testwork\Environment\Handler+v U Behat\Testwork\Environment\Exception!u A Behat\Testwork\Environmentt 1 Behat\Testwork\Cli"s C Behat\Testwork\Call\Handler!r A Behat\Testwork\Call\Filter$q G Behat\Testwork\Call\Exceptionp 3 Behat\Testwork\Call(o O Behat\Testwork\Argument\Exceptionn ; Behat\Testwork\Argument-m Y Behat\Behat\Transformation\Transformer!l A Behat\Behat\Transformation   s q<k<a<$lYA)	xL4





p
K
				j	C	rT8c9}_D%|\?a9c@aE%wO1                      D Zend\DiC 1Zend\Di\DefinitionB 5Zend\Db\TableGateway%A IZend\Db\TableGateway\Exception@ 7Zend\Db\Sql\Predicate? 5Zend\Db\Sql\Platform> #Zend\Db\Sql= 7Zend\Db\Sql\Exception< +Zend\Db\Sql\Ddl!; AZend\Db\Sql\Ddl\Constraint: 9Zend\Db\Sql\Ddl\Column9 1Zend\Db\RowGateway#8 EZend\Db\RowGateway\Exception7 /Zend\Db\ResultSet"6 CZend\Db\ResultSet\Exception5 -Zend\Db\Metadata4 /Zend\Db\Exception3 =Zend\Db\Adapter\Profiler2 =Zend\Db\Adapter\Platform 1 ?Zend\Db\Adapter\Exception.0 [Zend\Db\Adapter\Driver\Sqlsrv\Exception%/ IZend\Db\Adapter\Driver\Feature. 9Zend\Db\Adapter\Driver- +Zend\Db\Adapter, 5Zend\Crypt\Symmetric#+ EZend\Crypt\Symmetric\Padding%* IZend\Crypt\Symmetric\Exception)) QZend\Crypt\PublicKey\Rsa\Exception( 3Zend\Crypt\Password$' GZend\Crypt\Password\Exception*& SZend\Crypt\Key\Derivation\Exception% 5Zend\Crypt\Exception $ ?Zend\Console\RouteMatcher# 3Zend\Console\Prompt" 9Zend\Console\Exception! %Zend\Console  5Zend\Console\Charset 5Zend\Console\Adapter 1Zend\Config\Writer 1Zend\Config\Reader 7Zend\Config\Processor 7Zend\Config\Exception /Zend\Code\Scanner 5Zend\Code\Reflection% IZend\Code\Reflection\Exception( OZend\Code\Reflection\DocBlock\Tag" CZend\Code\Generic\Prototype 3Zend\Code\Generator$ GZend\Code\Generator\Exception' MZend\Code\Generator\DocBlock\Tag 3Zend\Code\Exception" CZend\Code\Annotation\Parser 5Zend\Code\Annotation 9Zend\Captcha\Exception %Zend\Captcha  ?Zend\Cache\Storage\Plugin 1Zend\Cache\Storage 1Zend\Cache\Pattern
 5Zend\Cache\Exception	 7Zend\Barcode\Renderer& KZend\Barcode\Renderer\Exception 3Zend\Barcode\Object$ GZend\Barcode\Object\Exception 9Zend\Barcode\Exception" CZend\Authentication\Storage$ GZend\Authentication\Exception 3Zend\Authentication' MZend\Authentication\Adapter\Http1  aZend\Authentication\Adapter\Http\Exception, WZend\Authentication\Adapter\Exception4~ gZend\Authentication\Adapter\DbTable\Exception"} CZend\Authentication\Adapter| 9Iorg\bovigo\vfs\visitor{ )Iorg\bovigo\vfsz 9Iorg\bovigo\vfs\contenty 9;org\bovigo\vfs\visitorx );org\bovigo\vfsw 9;org\bovigo\vfs\contentv />spec\PhpSpec\Utilu +>PhpSpec\Wrapper)t S>PhpSpec\Wrapper\Subject\Expectations >PhpSpecr ?>PhpSpec\Runner\Maintainerq +>PhpSpec\Processp =>PhpSpec\Process\ReRunner#o G>PhpSpec\Process\Prerequisitesn ;>PhpSpec\Process\Contextm +>PhpSpec\Matcherl +>PhpSpec\Locatork !>PhpSpec\IOj />PhpSpec\Formatter!i C>PhpSpec\Formatter\Presenter(h Q>PhpSpec\Formatter\Presenter\Differg 9>PhpSpec\Formatter\Htmlf />PhpSpec\Extensione '>PhpSpec\Eventd +>PhpSpec\Console"c E>PhpSpec\CodeGenerator\Writer%b K>PhpSpec\CodeGenerator\Generatora 5>Phpspec\CodeAnalysis` 7>spec\PhpSpec\Listener_  ~global^ global&] MSymfony\Component\Yaml\Exception\ global[ ;Flyfinder\Specification,Z WNSymfony\Component\Validator\Violation,Y WNSymfony\Component\Validator\Validator7X mNSymfony\Component\Validator\Tests\Mapping\Loader1W aNSymfony\Component\Validator\Tests\Fixtures1V aNSymfony\Component\Validator\Mapping\Loader2U cNSymfony\Component\Validator\Mapping\Factory*T SNSymfony\Component\Validator\Mapping0S _NSymfony\Component\Validator\Mapping\Cache,R WNSymfony\Component\Validator\Exception   u iG*
v\=|V8iE(pL/



v
K
,
						u	T	;	 	zX5]5sNoL.nG)pG}^4{]=                         /9 ]Zend\Soap\AutoDiscover\DiscoveryStrategy8 9Zend\Session\Validator7 5Zend\Session\Storage6 =Zend\Session\SaveHandler5 %Zend\Session4 9Zend\Session\Exception3 3Zend\Session\Config$2 GZend\ServiceManager\Exception1 3Zend\ServiceManager'0 MZend\Server\Reflection\Exception/ 7Zend\Server\Exception. #Zend\Server - ?Zend\Serializer\Exception, ;Zend\Serializer\Adapter+ ;Zend\ProgressBar\Upload!* AZend\ProgressBar\Exception)) QZend\ProgressBar\Adapter\Exception&( KZend\Permissions\Rbac\Exception' 7Zend\Permissions\Rbac & ?Zend\Permissions\Acl\Role$% GZend\Permissions\Acl\Resource%$ IZend\Permissions\Acl\Exception%# IZend\Permissions\Acl\Assertion" 5Zend\Permissions\Acl$! GZend\Paginator\ScrollingStyle  =Zend\Paginator\Exception )Zend\Paginator' MZend\Paginator\Adapter\Exception 9Zend\Paginator\Adapter  ?Zend\Navigation\Exception +Zend\Mvc\Router 5Zend\Mvc\Router\Http  ?Zend\Mvc\Router\Exception ;Zend\Mvc\Router\Console ;Zend\Mvc\ResponseSender 1Zend\Mvc\Exception! AZend\Mvc\Controller\Plugin Zend\Mvc 1Zend\ModuleManager, WZend\ModuleManager\Listener\Exception" CZend\ModuleManager\Listener! AZend\ModuleManager\Feature# EZend\ModuleManager\Exception 3Zend\Mime\Exception 7Zend\Memory\Exception 7Zend\Memory\Container 3Zend\Math\Exception%
 IZend\Math\BigInteger\Exception#	 EZend\Math\BigInteger\Adapter 3Zend\Mail\Transport$ GZend\Mail\Transport\Exception! AZend\Mail\Storage\Writable 9Zend\Mail\Storage\Part' MZend\Mail\Storage\Part\Exception  ?Zend\Mail\Storage\Message =Zend\Mail\Storage\Folder" CZend\Mail\Storage\Exception#  EZend\Mail\Protocol\Exception -Zend\Mail\Header!~ AZend\Mail\Header\Exception} 3Zend\Mail\Exception| /Zend\Mail\Address{ +Zend\Log\Writerz ;Zend\Log\Writer\FirePhp y ?Zend\Log\Writer\ChromePhpx 1Zend\Log\Processorw Zend\Logv 1Zend\Log\Formatteru +Zend\Log\Filtert 1Zend\Log\Exceptions #Zend\Loaderr 7Zend\Loader\Exception(q OZend\Ldap\Node\Schema\ObjectClass*p SZend\Ldap\Node\Schema\AttributeType!o AZend\Ldap\Filter\Exceptionn 3Zend\Ldap\Exception$m GZend\Ldap\Converter\Exception!l AZend\Json\Server\Exceptionk 3Zend\Json\Exception!j AZend\InputFilter\Exceptioni -Zend\InputFilterh 5Zend\I18n\Translator"g CZend\I18n\Translator\Loaderf 3Zend\I18n\Exceptione -Zend\Http\Header!d AZend\Http\Header\Exceptionc 3Zend\Http\Exception!b AZend\Http\Client\Exception)a QZend\Http\Client\Adapter\Exception` =Zend\Http\Client\Adapter_ 3Zend\Form\Exception^ Zend\Form] #Zend\Filter\ 7Zend\Filter\Exception[ 3Zend\Filter\EncryptZ 5Zend\Filter\Compress#Y EZend\File\Transfer\ExceptionX 3Zend\File\Exception W ?Zend\Feed\Writer\RendererV -Zend\Feed\Writer!U AZend\Feed\Writer\Extension!T AZend\Feed\Writer\ExceptionS 7Zend\Feed\Reader\HttpR 7Zend\Feed\Reader\FeedQ -Zend\Feed\Reader!P AZend\Feed\Reader\ExceptionO 9Zend\Feed\Reader\Entry#N EZend\Feed\PubSubHubbub\Model'M MZend\Feed\PubSubHubbub\ExceptionL 9Zend\Feed\PubSubHubbubK 3Zend\Feed\ExceptionJ =Zend\EventManager\Filter"I CZend\EventManager\ExceptionH /Zend\EventManagerG 9Zend\Escaper\ExceptionF 1Zend\Dom\ExceptionE /Zend\Di\Exception   t  d?!b6eS3zaE)`<)




x
U
7
					s	^	>		 i8yU(nT8hL$}]5hC(jU7f>      - ? Zend\Permissions\Acl\Role$, G Zend\Permissions\Acl\Resource%+ I Zend\Permissions\Acl\Exception%* I Zend\Permissions\Acl\Assertion) 5 Zend\Permissions\Acl( 5Zend\Db\TableGateway#' EZend\Db\TableGateway\Feature%& IZend\Db\TableGateway\Exception% 7Zend\Db\Sql\Predicate$ 5Zend\Db\Sql\Platform# #Zend\Db\Sql" 7Zend\Db\Sql\Exception! +Zend\Db\Sql\Ddl!  AZend\Db\Sql\Ddl\Constraint 9Zend\Db\Sql\Ddl\Column 1Zend\Db\RowGateway# EZend\Db\RowGateway\Exception /Zend\Db\ResultSet" CZend\Db\ResultSet\Exception -Zend\Db\Metadata /Zend\Db\Exception =Zend\Db\Adapter\Profiler =Zend\Db\Adapter\Platform  ?Zend\Db\Adapter\Exception. [Zend\Db\Adapter\Driver\Sqlsrv\Exception% IZend\Db\Adapter\Driver\Feature 9Zend\Db\Adapter\Driver +Zend\Db\Adapter 5JBjyAuthorize\Service! AJBjyAuthorize\Provider\Rule! AJBjyAuthorize\Provider\Role% IJBjyAuthorize\Provider\Resource% IJBjyAuthorize\Provider\Identity 1JBjyAuthorize\Guard -JBjyAuthorize\Acl
 5LBjyAuthorize\Service!	 ALBjyAuthorize\Provider\Rule! ALBjyAuthorize\Provider\Role% ILBjyAuthorize\Provider\Resource% ILBjyAuthorize\Provider\Identity 1LBjyAuthorize\Guard -LBjyAuthorize\Acl 1Zend\ModuleManager, WZend\ModuleManager\Listener\Exception" CZend\ModuleManager\Listener!  AZend\ModuleManager\Feature# EZend\ModuleManager\Exception*~ S#DoctrineORMModuleTest\Assets\Entity!} A\DoctrineModule\Persistence*| S&DoctrineORMModuleTest\Assets\Entity*{ S*DoctrineORMModuleTest\Assets\Entityz /Zend\Stdlib\Guard y ?Zend\Stdlib\StringWrapper$x GZend\Stdlib\Hydrator\Strategy.w [Zend\Stdlib\Hydrator\Strategy\Exception*v SZend\Stdlib\Hydrator\NamingStrategy$u GZend\Stdlib\Hydrator\Iteratort 5Zend\Stdlib\Hydrator"s CZend\Stdlib\Hydrator\Filterr 7Zend\Stdlib\Extractorq 7Zend\Stdlib\Exceptionp 9Zend\Stdlib\ArrayUtilso #Zend\Stdlib$n G*Zend\Paginator\ScrollingStylem =*Zend\Paginator\Exceptionl )*Zend\Paginator'k M*Zend\Paginator\Adapter\Exceptionj 9*Zend\Paginator\Adapteri +Zend\Mvc\Routerh 5Zend\Mvc\Router\Http g ?Zend\Mvc\Router\Exceptionf ;Zend\Mvc\Router\Consolee ;Zend\Mvc\ResponseSenderd 1Zend\Mvc\Exception!c AZend\Mvc\Controller\Pluginb Zend\Mvca 3fZend\Form\Exception` fZend\Form!_ A]DoctrineModule\Persistence!^ A`DoctrineModule\Persistence] /Zend\Stdlib\Guard#\ EZend\XmlRpc\Server\Exception[ 7Zend\XmlRpc\GeneratorZ 7Zend\XmlRpc\Exception#Y EZend\XmlRpc\Client\ExceptionX 1Zend\View\ResolverW 1Zend\View\RendererV +Zend\View\Model"U CZend\View\Helper\NavigationT -Zend\View\HelperS 3Zend\View\ExceptionR )Zend\Validator Q ?Zend\Validator\TranslatorP =Zend\Validator\ExceptionO 9Zend\Validator\BarcodeN Zend\UriM 1Zend\Uri\Exception L ?Zend\Text\Table\Exception K ?Zend\Text\Table\Decorator!J AZend\Text\Figlet\ExceptionI 3Zend\Text\ExceptionH Zend\TagG 1Zend\Tag\Exception)F QZend\Tag\Cloud\Decorator\ExceptionE =Zend\Tag\Cloud\Decorator D ?Zend\Stdlib\StringWrapper#C EZend\Stdlib\JsonSerializable$B GZend\Stdlib\Hydrator\Strategy*A SZend\Stdlib\Hydrator\NamingStrategy@ 5Zend\Stdlib\Hydrator"? CZend\Stdlib\Hydrator\Filter> 7Zend\Stdlib\Extractor= 7Zend\Stdlib\Exception< #Zend\Stdlib); QZend\Soap\Wsdl\ComplexTypeStrategy: 3Zend\Soap\Exception   w mM1za>wQ5eO/zX6




_
;
"
					c	E	)	pP,rO<cK0hEtU8~lH,mN%V:                              #$ GZend\ServiceManager\Exception# 3Zend\ServiceManager'" M4Zend\Server\Reflection\Exception! 74Zend\Server\Exception  #4Zend\Server ;4`Zend\ProgressBar\Upload! A4`Zend\ProgressBar\Exception) Q4`Zend\ProgressBar\Adapter\Exception& K4"Zend\Permissions\Rbac\Exception 74"Zend\Permissions\Rbac  ?3nZend\Navigation\Exception +Zend\Mvc\Router 5Zend\Mvc\Router\Http  ?Zend\Mvc\Router\Exception ;Zend\Mvc\Router\Console ;Zend\Mvc\ResponseSender 1Zend\Mvc\Exception! AZend\Mvc\Controller\Plugin Zend\Mvc 1Zend\ModuleManager, WZend\ModuleManager\Listener\Exception" CZend\ModuleManager\Listener! AZend\ModuleManager\Feature# EZend\ModuleManager\Exception 32Zend\Mime\Exception 72wZend\Memory\Exception
 72wZend\Memory\Container	 31Zend\Mail\Transport$ G1Zend\Mail\Transport\Exception! A1Zend\Mail\Storage\Writable 91Zend\Mail\Storage\Part' M1Zend\Mail\Storage\Part\Exception  ?1Zend\Mail\Storage\Message =1Zend\Mail\Storage\Folder" C1Zend\Mail\Storage\Exception# E1Zend\Mail\Protocol\Exception  -1Zend\Mail\Header! A1Zend\Mail\Header\Exception~ 31Zend\Mail\Exception} /1Zend\Mail\Address| ++Zend\Log\Writer{ ;+Zend\Log\Writer\FirePhpz ?+Zend\Log\Writer\ChromePhpy 1+Zend\Log\Processorx +Zend\Logw 1+Zend\Log\Formatterv ++Zend\Log\Filteru 1+Zend\Log\Exceptiont 3gZend\Form\Exceptions gZend\Form r ?/\Zend\Feed\Writer\Rendererq -/\Zend\Feed\Writer!p A/\Zend\Feed\Writer\Extension!o A/\Zend\Feed\Writer\Exceptionn 7/\Zend\Feed\Reader\Httpm 7/\Zend\Feed\Reader\Feedl -/\Zend\Feed\Reader!k A/\Zend\Feed\Reader\Exceptionj 9/\Zend\Feed\Reader\Entry#i E/\Zend\Feed\PubSubHubbub\Model'h M/\Zend\Feed\PubSubHubbub\Exceptiong 9/\Zend\Feed\PubSubHubbubf 3/\Zend\Feed\Exceptione /.iZend\Di\Exceptiond .iZend\Dic 1.iZend\Di\Definitionb 5Zend\Db\TableGateway#a EZend\Db\TableGateway\Feature%` IZend\Db\TableGateway\Exception_ 7Zend\Db\Sql\Predicate^ 5Zend\Db\Sql\Platform] #Zend\Db\Sql\ 7Zend\Db\Sql\Exception[ +Zend\Db\Sql\Ddl!Z AZend\Db\Sql\Ddl\ConstraintY 9Zend\Db\Sql\Ddl\ColumnX 1Zend\Db\RowGateway#W EZend\Db\RowGateway\ExceptionV /Zend\Db\ResultSet"U CZend\Db\ResultSet\ExceptionT -Zend\Db\MetadataS /Zend\Db\ExceptionR =Zend\Db\Adapter\ProfilerQ =Zend\Db\Adapter\Platform P ?Zend\Db\Adapter\Exception.O [Zend\Db\Adapter\Driver\Sqlsrv\Exception%N IZend\Db\Adapter\Driver\FeatureM 9Zend\Db\Adapter\DriverL +Zend\Db\AdapterK 9,Zend\Captcha\ExceptionJ %,Zend\CaptchaI 7,GZend\Barcode\Renderer&H K,GZend\Barcode\Renderer\ExceptionG 3,GZend\Barcode\Object$F G,GZend\Barcode\Object\ExceptionE 9,GZend\Barcode\Exception!D A%ZendDeveloperTools\StorageC 1%ZendDeveloperTools#B E%ZendDeveloperTools\Exception&A K%ZendDeveloperTools\EventLogging#@ E%ZendDeveloperTools\Collector*? StDoctrine\Common\DataFixtures\Purger#> EtDoctrine\Common\DataFixtures"= C"LZfcUser\Validator\Exception < ?"LZfcUser\Service\Exception; +"LZfcUser\Options: )"LZfcUser\Mapper9 ="LZfcUser\Mapper\Exception8 /"LZfcUser\Exception7 )"LZfcUser\Entity%6 I"LZfcUser\Authentication\Adapter5 ="=ZfcBase\Mapper\Exception4 1"=ZfcBase\Db\Adapter3 9!Zend\Session\Validator2 5!Zend\Session\Storage1 =!Zend\Session\SaveHandler0 %!Zend\Session/ 9!Zend\Session\Exception. 3!Zend\Session\Config   `  qR4yS1uV7hGnE





d
R
E
5
+				Y	!^=	]+RY&}W*R%j:{V-     1 aSSymfony\Bundle\FrameworkBundle\CacheWarmer+ WoSymfony\Component\HttpKernel\Profiler& MoSymfony\Component\HttpKernel\Log" EoSymfony\Component\HttpKernel,  YoSymfony\Component\HttpKernel\HttpCache+ WoSymfony\Component\HttpKernel\Fragment,~ YoSymfony\Component\HttpKernel\Exception0} aoSymfony\Component\HttpKernel\DataCollector-| [oSymfony\Component\HttpKernel\Controller.{ ]oSymfony\Component\HttpKernel\CacheWarmer/z _oSymfony\Component\HttpKernel\CacheClearer)y SoSymfony\Component\HttpKernel\Bundle)x QNSymfony\Component\Templating\Tests*w SNSymfony\Component\Templating\Loader*v SNSymfony\Component\Templating\Helper#u ENSymfony\Component\Templating)t QNSymfony\Component\Templating\Asset)s QN'Symfony\Component\Templating\Tests*r SN'Symfony\Component\Templating\Loader*q SN'Symfony\Component\Templating\Helper#p EN'Symfony\Component\Templating)o QN'Symfony\Component\Templating\Assetn ?gGSymfony\Component\Routing'm OgGSymfony\Component\Routing\Matcher.l ]gGSymfony\Component\Routing\Matcher\Dumper0k agGSymfony\Component\Routing\Generator\Dumper)j SgGSymfony\Component\Routing\Generator)i SgGSymfony\Component\Routing\Exception6h mo^Symfony\Component\HttpFoundation\Session\Storage.g ]o^Symfony\Component\HttpFoundation\Session4f io^Symfony\Component\HttpFoundation\Session\Flash8e qo^Symfony\Component\HttpFoundation\Session\Attributed o^global&c Mo^Symfony\Component\HttpFoundation4b io^Symfony\Component\HttpFoundation\File\MimeType,a YlSymfony\Component\Debug\Tests\Fixtures/` _lSymfony\Component\Debug\FatalErrorHandler+_ WOSymfony\Component\Config\Tests\Loader'^ OOSymfony\Component\Config\Resource%] KOSymfony\Component\Config\Loader)\ SOSymfony\Component\Config\Definition1[ cOSymfony\Component\Config\Definition\BuilderZ =OSymfony\Component\Config8Y qiSymfony\Component\DependencyInjection\ParameterBag?X iSymfony\Component\DependencyInjection\LazyProxy\PhpDumperCW iSymfony\Component\DependencyInjection\LazyProxy\Instantiator5V kiSymfony\Component\DependencyInjection\Extension5U kiSymfony\Component\DependencyInjection\Exception2T eiSymfony\Component\DependencyInjection\Dumper+S WiSymfony\Component\DependencyInjection4R iiSymfony\Component\DependencyInjection\CompilerQ  P  global
O  FooN  ClassMapM 1 ClassesWithParentsL -OPsr\Http\MessageK 5;2Symfony\CS\TokenizerJ !;2Symfony\CS&I MSymfony\Component\Yaml\Exception&H MSymfony\Component\Console\Output%G KSymfony\Component\Console\Input&F MSymfony\Component\Console\Helper)E SSymfony\Component\Console\Formatter*D USymfony\Component\Console\Descriptor+C WBSymfony\Component\Config\Tests\Loader'B OBSymfony\Component\Config\Resource%A KBSymfony\Component\Config\Loader@ =BSymfony\Component\Config)? SBSymfony\Component\Config\Definition1> cBSymfony\Component\Config\Definition\Builder= +8Phinx\Migration< -8Phinx\Db\Adapter; %8Phinx\Config#: E7Zend\XmlRpc\Server\Exception9 77Zend\XmlRpc\Generator8 77Zend\XmlRpc\Exception#7 E7Zend\XmlRpc\Client\Exception6 6Zend\Tag5 16Zend\Tag\Exception)4 Q6Zend\Tag\Cloud\Decorator\Exception3 =6Zend\Tag\Cloud\Decorator2 /Zend\Stdlib\Guard1 ?Zend\Stdlib\StringWrapper#0 GZend\Stdlib\Hydrator\Strategy-/ [Zend\Stdlib\Hydrator\Strategy\Exception). SZend\Stdlib\Hydrator\NamingStrategy- 5Zend\Stdlib\Hydrator!, CZend\Stdlib\Hydrator\Filter+ 7Zend\Stdlib\Extractor* 7Zend\Stdlib\Exception) 9Zend\Stdlib\ArrayUtils( #Zend\Stdlib)' Q5Zend\Soap\Wsdl\ComplexTypeStrategy& 35Zend\Soap\Exception/% ]5Zend\Soap\AutoDiscover\DiscoveryStrategy   \  yX'GHyP"]C



u
@
'
								U	-	_3
e9l<fwW'nFlDc6                      )` S|,Symfony\Component\CssSelector\XPath3_ g|,Symfony\Component\CssSelector\XPath\Extension*^ U|,Symfony\Component\CssSelector\Parser2] e|,Symfony\Component\CssSelector\Parser\Handler(\ Q|,Symfony\Component\CssSelector\Node-[ [|,Symfony\Component\CssSelector\Exception%Z K|,Symfony\Component\Console\Style&Y M|,Symfony\Component\Console\Output%X K|,Symfony\Component\Console\Input&W M|,Symfony\Component\Console\Helper)V S|,Symfony\Component\Console\Formatter*U U|,Symfony\Component\Console\Descriptor+T W|,Symfony\Component\Config\Tests\Loader'S O|,Symfony\Component\Config\Resource%R K|,Symfony\Component\Config\Loader)Q S|,Symfony\Component\Config\Definition1P c|,Symfony\Component\Config\Definition\BuilderO =|,Symfony\Component\Config	N |,FooM |,ClassMapL 1|,ClassesWithParents-K [|,Symfony\Component\Asset\VersionStrategyJ ;|,Symfony\Component\Asset'I O|,Symfony\Component\Asset\Exception%H K|,Symfony\Component\Asset\ContextNG |,Symfony\Bundle\SecurityBundle\DependencyInjection\Security\UserProviderIF |,Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory/E _|,Symfony\Bundle\FrameworkBundle\Templating0D a|,Symfony\Bundle\FrameworkBundle\CacheWarmerC =|,Symfony\Bridge\Twig\FormB ;|,Symfony\Bridge\Doctrine-A [|,Symfony\Bridge\Doctrine\Form\ChoiceList-@ YWebmozart\KeyValueStore\Tests\Fixtures"? CWebmozart\KeyValueStore\Api-> YWebmozart\KeyValueStore\Tests\Fixtures"= CWebmozart\KeyValueStore\Api< )JPhpParser\Node; JPhpParser': M Symfony\Component\VarDumper\Test)9 Q Symfony\Component\VarDumper\Dumper)8 Q Symfony\Component\VarDumper\Cloner%7 KSymfony\Component\Console\Style&6 MSymfony\Component\Console\Output%5 KSymfony\Component\Console\Input&4 MSymfony\Component\Console\Helper)3 SSymfony\Component\Console\Formatter*2 USymfony\Component\Console\Descriptor&1 ObSymfony\Component\EventDispatcher,0 [bSymfony\Component\EventDispatcher\Debug(/ QDoctrineTest\InstantiatorTestAsset. 7Doctrine\Instantiator%- KDoctrine\Instantiator\Exception), Q Symfony\Component\VarDumper\Dumper)+ Q Symfony\Component\VarDumper\Cloner* global) dglobal( dglobal' gglobal& global% rglobal$ -bDeepCopy\Matcher# +bDeepCopy\Filter2" c]$Symfony\Cmf\Component\Routing\NestedMatcher-! Y]$Symfony\Cmf\Component\Routing\Enhancer$  G]$Symfony\Cmf\Component\Routing/ ]]$Symfony\Cmf\Component\Routing\Candidates =sZend\EventManager\Filter! CsZend\EventManager\Exception /sZend\EventManager3 eXSymfony\Component\Security\Csrf\TokenStorage5 iXSymfony\Component\Security\Csrf\TokenGenerator& KXSymfony\Component\Security\Csrf+ UXdSymfony\Component\Security\Core\Util+ UXdSymfony\Component\Security\Core\User& KXdSymfony\Component\Security\Core+ UXdSymfony\Component\Security\Core\Role0 _XdSymfony\Component\Security\Core\Exception. [XdSymfony\Component\Security\Core\Encoder: sXdSymfony\Component\Security\Core\Authorization\Voter4 gXdSymfony\Component\Security\Core\Authorization; uXdSymfony\Component\Security\Core\Authentication\TokenD XdSymfony\Component\Security\Core\Authentication\Token\Storage@ XdSymfony\Component\Security\Core\Authentication\RememberMe> {XdSymfony\Component\Security\Core\Authentication\Provider5 iXdSymfony\Component\Security\Core\Authentication0 _RSymfony\Bundle\FrameworkBundle\Templating1
 aRSymfony\Bundle\FrameworkBundle\CacheWarmer.	 [SSymfony\Component\Asset\VersionStrategy ;SSymfony\Component\Asset( OSSymfony\Component\Asset\Exception& KSSymfony\Component\Asset\Context0 _SSymfony\Bundle\FrameworkBundle\Templating   P  h:OxKcDU


{
M
				l	;	sC_6pGg4O%m-h2g?                       %0 K|,Symfony\Component\Security\Csrf*/ U|,Symfony\Component\Security\Core\Util*. U|,Symfony\Component\Security\Core\User%- K|,Symfony\Component\Security\Core*, U|,Symfony\Component\Security\Core\Role/+ _|,Symfony\Component\Security\Core\Exception-* [|,Symfony\Component\Security\Core\Encoder9) s|,Symfony\Component\Security\Core\Authorization\Voter3( g|,Symfony\Component\Security\Core\Authorization:' u|,Symfony\Component\Security\Core\Authentication\TokenC& |,Symfony\Component\Security\Core\Authentication\Token\Storage?% |,Symfony\Component\Security\Core\Authentication\RememberMe=$ {|,Symfony\Component\Security\Core\Authentication\Provider4# i|,Symfony\Component\Security\Core\Authentication/" _|,Symfony\Component\Security\Acl\Permission*! U|,Symfony\Component\Security\Acl\Model  ?|,Symfony\Component\Routing' O|,Symfony\Component\Routing\Matcher. ]|,Symfony\Component\Routing\Matcher\Dumper0 a|,Symfony\Component\Routing\Generator\Dumper) S|,Symfony\Component\Routing\Generator) S|,Symfony\Component\Routing\Exception& M|,Symfony\Component\PropertyAccess0 a|,Symfony\Component\PropertyAccess\Exception% K|,Symfony\Component\Process\Pipes) S|,Symfony\Component\Process\Exception' O|,Symfony\Component\OptionsResolver1 c|,Symfony\Component\OptionsResolver\Exception+ W|,Symfony\Component\Intl\ResourceBundle& M|,Symfony\Component\Intl\Exception/ _|,Symfony\Component\Intl\Data\Bundle\Writer/ _|,Symfony\Component\Intl\Data\Bundle\Reader1 c|,Symfony\Component\Intl\Data\Bundle\Compiler+ W|,Symfony\Component\HttpKernel\Profiler& M|,Symfony\Component\HttpKernel\Log" E|,Symfony\Component\HttpKernel, Y|,Symfony\Component\HttpKernel\HttpCache+ W|,Symfony\Component\HttpKernel\Fragment,
 Y|,Symfony\Component\HttpKernel\Exception0	 a|,Symfony\Component\HttpKernel\DataCollector- [|,Symfony\Component\HttpKernel\Controller. ]|,Symfony\Component\HttpKernel\CacheWarmer/ _|,Symfony\Component\HttpKernel\CacheClearer) S|,Symfony\Component\HttpKernel\Bundle6 m|,Symfony\Component\HttpFoundation\Session\Storage. ]|,Symfony\Component\HttpFoundation\Session4 i|,Symfony\Component\HttpFoundation\Session\Flash8 q|,Symfony\Component\HttpFoundation\Session\Attribute  |,global& M|,Symfony\Component\HttpFoundation4~ i|,Symfony\Component\HttpFoundation\File\MimeType+} W|,Symfony\Component\Form\Tests\Fixtures!| C|,Symfony\Component\Form\TestA{ |,Symfony\Component\Form\Extension\Validator\ViolationMapper4z i|,Symfony\Component\Form\Extension\DataCollector8y q|,Symfony\Component\Form\Extension\Csrf\CsrfProvider6x m|,Symfony\Component\Form\Extension\Core\ChoiceList&w M|,Symfony\Component\Form\Exception.v ]|,Symfony\Component\Form\ChoiceList\Loader/u _|,Symfony\Component\Form\ChoiceList\Factory't O|,Symfony\Component\Form\ChoiceLists 9|,Symfony\Component\Form)r S|,Symfony\Component\Finder\Expression(q Q|,Symfony\Component\Finder\Exception&p M|,Symfony\Component\Finder\Adapter,o Y|,Symfony\Component\Filesystem\Exception6n m|,Symfony\Component\ExpressionLanguage\ParserCache*m U|,Symfony\Component\ExpressionLanguage'l O|,Symfony\Component\EventDispatcher-k [|,Symfony\Component\EventDispatcher\Debug8j q|,Symfony\Component\DependencyInjection\ParameterBag?i |,Symfony\Component\DependencyInjection\LazyProxy\PhpDumperCh |,Symfony\Component\DependencyInjection\LazyProxy\Instantiator5g k|,Symfony\Component\DependencyInjection\Extension5f k|,Symfony\Component\DependencyInjection\Exception2e e|,Symfony\Component\DependencyInjection\Dumper+d W|,Symfony\Component\DependencyInjection4c i|,Symfony\Component\DependencyInjection\Compiler,b Y|,Symfony\Component\Debug\Tests\Fixtures/a _|,Symfony\Component\Debug\FatalErrorHandler   ^  l5l9	Ra-Z*



p
J
&				n	:	m?w`E%~BH5e;\4tK%iE!                   # EIlluminate\Contracts\Support# EIlluminate\Contracts\Routing! AIlluminate\Contracts\Redis! AIlluminate\Contracts\Queue$
 GIlluminate\Contracts\Pipeline&	 KIlluminate\Contracts\Pagination  ?Illuminate\Contracts\Mail# EIlluminate\Contracts\Logging  ?Illuminate\Contracts\Http# EIlluminate\Contracts\Hashing& KIlluminate\Contracts\Foundation& KIlluminate\Contracts\Filesystem" CIlluminate\Contracts\Events& KIlluminate\Contracts\Encryption!  AIlluminate\Contracts\Debug" CIlluminate\Contracts\Cookie%~ IIlluminate\Contracts\Container#} EIlluminate\Contracts\Console"| CIlluminate\Contracts\Config!{ AIlluminate\Contracts\Cachez =Illuminate\Contracts\Bus(y OIlluminate\Contracts\Broadcasting x ?Illuminate\Contracts\Auth'w MIlluminate\Contracts\Auth\Access v ?Illuminate\Auth\Passwordsu %iSuperClosuret 9iSuperClosure\Exceptions +"PhpSpec\Laravelr +$PhpSpec\Laravelq +Pdp\HttpAdapterp 'Cocur\Slugifyo 'Cocur\Slugifyn |kRandomLib@m Sensio\Bundle\FrameworkExtraBundle\Request\ParamConverter7l mSensio\Bundle\FrameworkExtraBundle\Configuration@k Sensio\Bundle\FrameworkExtraBundle\Request\ParamConverter7j mSensio\Bundle\FrameworkExtraBundle\Configuration9i qSensio\Bundle\DistributionBundle\Configurator\Step9h qSensio\Bundle\DistributionBundle\Configurator\Stepg .Asseticf ).Assetic\Filtere 9.Assetic\Factory\Workerd =.Assetic\Factory\Resourcec 9.Assetic\Factory\Loaderb /.Assetic\Exceptiona '.Assetic\Cache` '.Assetic\Asset&_ M|,Symfony\Component\VarDumper\Test^ |,&] M|,Symfony\Component\Yaml\Exception(\ Q|,Symfony\Component\VarDumper\Dumper([ Q|,Symfony\Component\VarDumper\Cloner+Z W|,Symfony\Component\Validator\Violation+Y W|,Symfony\Component\Validator\Validator6X m|,Symfony\Component\Validator\Tests\Mapping\Loader0W a|,Symfony\Component\Validator\Tests\Fixtures0V a|,Symfony\Component\Validator\Mapping\Loader1U c|,Symfony\Component\Validator\Mapping\Factory)T S|,Symfony\Component\Validator\Mapping/S _|,Symfony\Component\Validator\Mapping\Cache+R W|,Symfony\Component\Validator\Exception)Q S|,Symfony\Component\Validator\Context!P C|,Symfony\Component\Validator#O G|,Symfony\Component\Translation*N U|,Symfony\Component\Translation\Loader-M [|,Symfony\Component\Translation\Extractor-L [|,Symfony\Component\Translation\Exception*K U|,Symfony\Component\Translation\Dumper-J [|,Symfony\Component\Translation\Catalogue(I Q|,Symfony\Component\Templating\Tests)H S|,Symfony\Component\Templating\Loader)G S|,Symfony\Component\Templating\Helper"F E|,Symfony\Component\Templating(E Q|,Symfony\Component\Templating\Asset1D c|,Symfony\Component\Serializer\Tests\Fixtures"C E|,Symfony\Component\Serializer-B [|,Symfony\Component\Serializer\Normalizer0A a|,Symfony\Component\Serializer\NameConverter1@ c|,Symfony\Component\Serializer\Mapping\Loader2? e|,Symfony\Component\Serializer\Mapping\Factory*> U|,Symfony\Component\Serializer\Mapping,= Y|,Symfony\Component\Serializer\Exception*< U|,Symfony\Component\Serializer\Encoder+; W|,Symfony\Component\Security\Http\Tests-: [|,Symfony\Component\Security\Http\Session09 a|,Symfony\Component\Security\Http\RememberMe,8 Y|,Symfony\Component\Security\Http\Logout.7 ]|,Symfony\Component\Security\Http\Firewall06 a|,Symfony\Component\Security\Http\EntryPoint35 g|,Symfony\Component\Security\Http\Authorization44 i|,Symfony\Component\Security\Http\Authentication%3 K|,Symfony\Component\Security\Http22 e|,Symfony\Component\Security\Csrf\TokenStorage41 i|,Symfony\Component\Security\Csrf\TokenGenerator   t oI!z[8fB|`="lU3




z
V
1

				w	O	'	qK(qU.	z_@" z_5kR7nS8hD_:                                 & K͑Illuminate\Contracts\Filesystem" C͑Illuminate\Contracts\Events&  K͑Illuminate\Contracts\Encryption! A͑Illuminate\Contracts\Debug"~ C͑Illuminate\Contracts\Cookie%} I͑Illuminate\Contracts\Container#| E͑Illuminate\Contracts\Console"{ C͑Illuminate\Contracts\Config!z A͑Illuminate\Contracts\Cachey =͑Illuminate\Contracts\Bus(x O͑Illuminate\Contracts\Broadcasting w ?͑Illuminate\Contracts\Auth'v M͑Illuminate\Contracts\Auth\Accessu %pReact\Streamt 9vRatchet\WebSocket\Stubs /vRatchet\Wamp\Stubr /vRatchet\WebSocket q ?vRatchet\WebSocket\Version!p AvRatchet\WebSocket\Encodingo %vRatchet\Wamp n ?vRatchet\Session\Serializem %vRatchet\Httpl vRatchetk ?i1Illuminate\Support\Traitsj 1i1Illuminate\Routingi -i1Illuminate\Queueh 7i1Illuminate\Paginationg +i1Illuminate\Http&f Mi1Illuminate\Foundation\Validation#e Gi1Illuminate\Foundation\Testingd ?i1Illuminate\Foundation\Bus c Ai1Illuminate\Foundation\Auth'b Oi1Illuminate\Foundation\Auth\Accessa 1i1Illuminate\Console` )i1Illuminate\Bus_ +i1Illuminate\Auth^ 9i1Illuminate\Auth\Access] +i1Illuminate\View\ ;i1Illuminate\View\Engines[ ?i1Illuminate\View\CompilersZ 7i1Illuminate\ValidationY 9i1Illuminate\TranslationX 1i1Illuminate\Session!W Ci1Illuminate\Routing\MatchingV ;i1Illuminate\Queue\Failed!U Ci1Illuminate\Queue\Connectors$T Ii1Illuminate\Database\Migrations"S Ei1Illuminate\Database\Eloquent$R Ii1Illuminate\Database\ConnectorsQ 3i1Illuminate\DatabaseP ?i1Illuminate\Contracts\View%O Ki1Illuminate\Contracts\Validation"N Ei1Illuminate\Contracts\Support"M Ei1Illuminate\Contracts\Routing L Ai1Illuminate\Contracts\Redis K Ai1Illuminate\Contracts\Queue#J Gi1Illuminate\Contracts\Pipeline%I Ki1Illuminate\Contracts\PaginationH ?i1Illuminate\Contracts\Mail"G Ei1Illuminate\Contracts\LoggingF ?i1Illuminate\Contracts\Http"E Ei1Illuminate\Contracts\Hashing%D Ki1Illuminate\Contracts\Foundation%C Ki1Illuminate\Contracts\Filesystem!B Ci1Illuminate\Contracts\Events%A Ki1Illuminate\Contracts\Encryption @ Ai1Illuminate\Contracts\Debug!? Ci1Illuminate\Contracts\Cookie$> Ii1Illuminate\Contracts\Container"= Ei1Illuminate\Contracts\Console!< Ci1Illuminate\Contracts\Config ; Ai1Illuminate\Contracts\Cache: =i1Illuminate\Contracts\Bus'9 Oi1Illuminate\Contracts\Broadcasting8 ?i1Illuminate\Contracts\Auth&7 Mi1Illuminate\Contracts\Auth\Access6 ?i1Illuminate\Auth\Passwords5 ' Psy\VarDumper4 % Psy\Readline3 ! Psy\Output2 ' Psy\Formatter1 ' Psy\Exception
0  Psy/ global. +]Monolog\Handler%- I]Monolog\Handler\FingersCrossed, /]Monolog\Formatter + ?Illuminate\Support\Traits* 1Illuminate\Routing) -Illuminate\Queue( 7Illuminate\Pagination' +Illuminate\Http'& MIlluminate\Foundation\Validation$% GIlluminate\Foundation\Testing $ ?Illuminate\Foundation\Bus!# AIlluminate\Foundation\Auth(" OIlluminate\Foundation\Auth\Access! 1Illuminate\Console  )Illuminate\Bus +Illuminate\Auth 9Illuminate\Auth\Access +Illuminate\View ;Illuminate\View\Engines  ?Illuminate\View\Compilers 7Illuminate\Validation 9Illuminate\Translation 1Illuminate\Session" CIlluminate\Routing\Matching ;Illuminate\Queue\Failed" CIlluminate\Queue\Connectors% IIlluminate\Database\Migrations# EIlluminate\Database\Eloquent% IIlluminate\Database\Connectors 3Illuminate\Database  ?Illuminate\Contracts\View& KIlluminate\Contracts\Validation   x hEa8oQ:`P0bI<& 




p
Q
7
					i	K	&	k2tIjCeV)whD kP*~^2	w_E              z +;Monolog\Handler$y I;Monolog\Handler\FingersCrossedx /;Monolog\Formatterw +<Monolog\Handler$v I<Monolog\Handler\FingersCrossedu /<Monolog\Formatter&t M-Symfony\Component\Console\Output%s K-Symfony\Component\Console\Input&r M-Symfony\Component\Console\Helper)q S-Symfony\Component\Console\Formatterp 9&CG\Tests\Proxy\Fixtureo &CG\Proxyn %&CG\Generatorm &CG\Corel /-Prophecy\Prophecyk --Prophecy\Promisej 3-Prophecy\Prediction!i C-Prophecy\Exception\Prophecy#h G-Prophecy\Exception\Predictiong 1-Prophecy\Exception f A-Prophecy\Exception\Doubler e A-Prophecy\Doubler\Generatord --Prophecy\Doubler!c C-Prophecy\Doubler\ClassPatchb ;-Prophecy\Argument\Tokena HPhpParser!` A;Ovr\PHPReflection\Manually!_ A=Ovr\PHPReflection\Manually^ wglobal] =global\ ?global[ globalZ ;Sabberworm\CSS\PropertyY ;Sabberworm\CSS\PropertyX FglobalW ݗglobalV <globalU Psr\Cache*T SClickalicious\Memcached\CompressionS globalR -dflydev\markdownQ My\SpaceP #Test\Tests5O global&N MphpDocumentor\Transformer\Writer3M gphpDocumentor\Transformer\Router\UrlGenerator.L ]phpDocumentor\Transformer\Router\Matcher$K IphpDocumentor\Plugin\Core\Twig)J SphpDocumentor\Descriptor\Interfaces%I KphpDocumentor\Descriptor\Filter&H MphpDocumentor\Descriptor\BuilderG 9phpDocumentor\CompilerF 'NBanago\Bridge)E S`Symfony\Component\Finder\Expression(D Q`Symfony\Component\Finder\Exception&C M`Symfony\Component\Finder\Adapter,B YSymfony\Component\Filesystem\Exception6A m Symfony\Component\ExpressionLanguage\ParserCache*@ U Symfony\Component\ExpressionLanguage6? m Symfony\Component\ExpressionLanguage\ParserCache*> U Symfony\Component\ExpressionLanguage= 	global< 3	Hal\Component\Score; 5	Hal\Component\Result": C	Hal\Component\OOP\Extractor9 5	Hal\Component\Config"8 C	Hal\Component\Bounds\Result7 5	Hal\Component\Bounds6 =	Hal\Component\Aggregator#5 E	Hal\Application\Score\Factor4 =	Hal\Application\Formater"3 C	Hal\Application\Command\Job2 +'Monolog\Handler$1 I'Monolog\Handler\FingersCrossed0 /'Monolog\Formatter/ 7eUniversal\ClassLoader!. A/GetOptionKit\OptionPrinter- CodeGen, +CLIFramework\IO+ 9CLIFramework\Extension* =CLIFramework\ConsoleInfo#) ECLIFramework\Component\Table( %CLIFramework
' Foo& -Zend\Http\Header % AZend\Http\Header\Exception$ 3Zend\Http\Exception # AZend\Http\Client\Exception(" QZend\Http\Client\Adapter\Exception! =Zend\Http\Client\Adapter  9ލGitonomy\Git\Exception 9ރCodacy\Coverage\Parser global 9Doctrine\DBAL\Sharding) QDoctrine\DBAL\Sharding\ShardChoser# EDoctrine\DBAL\Schema\Visitor( ODoctrine\DBAL\Schema\Synchronizer 5Doctrine\DBAL\Schema 7Doctrine\DBAL\Logging 'Doctrine\DBAL 5Doctrine\DBAL\Driver 1Illuminate\Console +Laracasts\Flash +Laracasts\Flash  ?{Illuminate\Support\Traits 1*Illuminate\Session +Illuminate\Http  ?͑Illuminate\Contracts\View& K͑Illuminate\Contracts\Validation# E͑Illuminate\Contracts\Support# E͑Illuminate\Contracts\Routing! A͑Illuminate\Contracts\Redis!
 A͑Illuminate\Contracts\Queue$	 G͑Illuminate\Contracts\Pipeline& K͑Illuminate\Contracts\Pagination  ?͑Illuminate\Contracts\Mail# E͑Illuminate\Contracts\Logging  ?͑Illuminate\Contracts\Http# E͑Illuminate\Contracts\Hashing& K͑Illuminate\Contracts\Foundation   q  uW4b9h?g?f>



e
:
				[	A		kG.gN4WE.f:waQ;+Z0X.N       .k [USymfony\Component\Translation\Exception+j UUSymfony\Component\Translation\Dumper.i [USymfony\Component\Translation\Catalogue&h KU[Symfony\Component\Process\Pipes*g SU[Symfony\Component\Process\Exception*f STSymfony\Component\Finder\Expression)e QTSymfony\Component\Finder\Exception'd MTSymfony\Component\Finder\Adapter(c OT8Symfony\Component\EventDispatcher.b [T8Symfony\Component\EventDispatcher\Debug&a KSSymfony\Component\Console\Style'` MSSymfony\Component\Console\Output&_ KSSymfony\Component\Console\Input'^ MSSymfony\Component\Console\Helper*] SSSymfony\Component\Console\Formatter+\ USSymfony\Component\Console\Descriptor[ Qglobal&Z MSymfony\Component\Yaml\ExceptionY globalX globalW 7MSebastianBergmann\GitV MglobalU %Ma\name\spaceT MglobalS %Ma\name\spaceR J}PHPMDQ !J}PHPMD\RuleP 7JPDepend\Util\CoverageO 1JPDepend\Util\CacheN =JPDepend\Source\TokenizerM 9JPDepend\Source\Builder L ?JPDepend\Source\ASTVisitor)K QJPDepend\Source\AST\ASTArtifactListJ 1JPDepend\Source\ASTI )JPDepend\ReportH JPDepend0G _JPDepend\Metrics\Analyzer\CodeRankAnalyzerF +JPDepend\MetricsE 'JPDepend\InputD >globalC >globalB )LPhpParser\NodeA LPhpParser&@ MSymfony\Component\Yaml\Exception? <Assert> <Assert= ;< 9Korg\bovigo\vfs\visitor; )Korg\bovigo\vfs: -ShDeepCopy\Matcher9 +ShDeepCopy\Filter 8 AmSebastianBergmann\Diff\LCS7 /'Prophecy\Prophecy6 -'Prophecy\Promise5 3'Prophecy\Prediction!4 C'Prophecy\Exception\Prophecy#3 G'Prophecy\Exception\Prediction2 1'Prophecy\Exception 1 A'Prophecy\Exception\Doubler 0 A'Prophecy\Doubler\Generator/ -'Prophecy\Doubler!. C'Prophecy\Doubler\ClassPatch- ;'Prophecy\Argument\Token, Fglobal+ global* +7Monolog\Handler$) I7Monolog\Handler\FingersCrossed( /7Monolog\Formatter' +8Monolog\Handler$& I8Monolog\Handler\FingersCrossed% /8Monolog\Formatter'$ O Symfony\Component\EventDispatcher-# [ Symfony\Component\EventDispatcher\Debug'" O Symfony\Component\EventDispatcher-! [ Symfony\Component\EventDispatcher\Debug(  QPSymfony\Component\CssSelector\Node( QPSymfony\Component\CssSelector\Node) S?Symfony\Component\Process\Exception) SJSymfony\Component\Process\Exception& MSymfony\Component\Yaml\Exception+ WSymfony\Component\Config\Tests\Loader' OSymfony\Component\Config\Resource% KSymfony\Component\Config\Loader =Symfony\Component\Config) SSymfony\Component\Config\Definition1 cSymfony\Component\Config\Definition\Builder+ WSymfony\Component\Config\Tests\Loader' OSymfony\Component\Config\Resource% KSymfony\Component\Config\Loader =Symfony\Component\Config) SSymfony\Component\Config\Definition1 cSymfony\Component\Config\Definition\Builder) SSymfony\Component\Finder\Expression( QSymfony\Component\Finder\Exception& MSymfony\Component\Finder\Adapter) SSymfony\Component\Finder\Expression( QSymfony\Component\Finder\Exception&
 MSymfony\Component\Finder\Adapter&	 M+Symfony\Component\Console\Output% K+Symfony\Component\Console\Input& M+Symfony\Component\Console\Helper) S+Symfony\Component\Console\Formatter2 cmageekguy\atoum\tests\units\factory\builder 9mageekguy\atoum\writer& Kmageekguy\atoum\scripts\treemap% Imageekguy\atoum\report\writers  ?mageekguy\atoum\observers  5mageekguy\atoum\mock ;mageekguy\atoum\factory~ +mageekguy\atoum} =mageekguy\atoum\asserter| ;mageekguy\atoum\adapter{ iBoris   e  zU(d0dT2|Mw>


x
H

 					R	7	&	iQ1dP1b2oN.}X8X6cDtL$                                    ,P YCSymfony\Component\Filesystem\Exception%O KJSymfony\Component\Process\Pipes%N K+Symfony\Component\Console\Style*M U+Symfony\Component\Console\DescriptorL 5 QSymfony\CS\TokenizerK ! QSymfony\CS J ?oInvoker\ParameterResolverI oInvokerH oEasyMock(G OkProxyManagerTestAsset\RemoteProxyF 7kProxyManagerTestAsset'E MkProxyManager\Signature\ExceptionD 9kProxyManager\Signature"C CkProxyManager\ProxyGeneratorB 1kProxyManager\ProxyA 9kProxyManager\Inflector%@ IkProxyManager\GeneratorStrategy? =kProxyManager\FileLocator(> OkProxyManager\Factory\RemoteObject= 9kProxyManager\Exception< ;kProxyManager\Autoloader(; OkProxyManagerTestAsset\RemoteProxy: 7kProxyManagerTestAsset'9 MkProxyManager\Signature\Exception8 9kProxyManager\Signature"7 CkProxyManager\ProxyGenerator6 1kProxyManager\Proxy5 9kProxyManager\Inflector%4 IkProxyManager\GeneratorStrategy3 =kProxyManager\FileLocator(2 OkProxyManager\Factory\RemoteObject1 9kProxyManager\Exception0 ;kProxyManager\Autoloader!/ CDoctrine\Common\Annotations. 7kDoctrine\Common\Cache- 7|Doctrine\Common\Cache, /6Zend\Stdlib\Guard+ ?6Zend\Stdlib\StringWrapper#* G6Zend\Stdlib\Hydrator\Strategy-) [6Zend\Stdlib\Hydrator\Strategy\Exception)( S6Zend\Stdlib\Hydrator\NamingStrategy#' G6Zend\Stdlib\Hydrator\Iterator& 56Zend\Stdlib\Hydrator!% C6Zend\Stdlib\Hydrator\Filter$ 76Zend\Stdlib\Extractor# 76Zend\Stdlib\Exception" 96Zend\Stdlib\ArrayUtils! #6Zend\Stdlib#  GZend\ServiceManager\Exception 3Zend\ServiceManager$ G`Zend\Paginator\ScrollingStyle =`Zend\Paginator\Exception )`Zend\Paginator' M`Zend\Paginator\Adapter\Exception 9`Zend\Paginator\Adapter +Zend\Mvc\Router 5Zend\Mvc\Router\Http ?Zend\Mvc\Router\Exception ;Zend\Mvc\Router\Console ;Zend\Mvc\ResponseSender 1Zend\Mvc\Exception  AZend\Mvc\Controller\Plugin Zend\Mvc 1,Zend\ModuleManager+ W,Zend\ModuleManager\Listener\Exception! C,Zend\ModuleManager\Listener  A,Zend\ModuleManager\Feature" E,Zend\ModuleManager\Exception #Zend\Loader 7Zend\Loader\Exception'
 MbeSymfony\Component\Yaml\Exception-	 Y\|Symfony\Component\Filesystem\Exception9 q[Symfony\Component\DependencyInjection\ParameterBag@ [Symfony\Component\DependencyInjection\LazyProxy\PhpDumperD [Symfony\Component\DependencyInjection\LazyProxy\Instantiator6 k[Symfony\Component\DependencyInjection\Extension6 k[Symfony\Component\DependencyInjection\Exception3 e[Symfony\Component\DependencyInjection\Dumper, W[Symfony\Component\DependencyInjection5 i[Symfony\Component\DependencyInjection\Compiler,  W[\Symfony\Component\Config\Tests\Loader( O[\Symfony\Component\Config\Resource&~ K[\Symfony\Component\Config\Loader*} S[\Symfony\Component\Config\Definition2| c[\Symfony\Component\Config\Definition\Builder{ =[\Symfony\Component\Configz Wglobal,y WV}Symfony\Component\Validator\Violation,x WV}Symfony\Component\Validator\Validator7w mV}Symfony\Component\Validator\Tests\Mapping\Loader1v aV}Symfony\Component\Validator\Tests\Fixtures1u aV}Symfony\Component\Validator\Mapping\Loader2t cV}Symfony\Component\Validator\Mapping\Factory*s SV}Symfony\Component\Validator\Mapping0r _V}Symfony\Component\Validator\Mapping\Cache,q WV}Symfony\Component\Validator\Exception*p SV}Symfony\Component\Validator\Context"o CV}Symfony\Component\Validator$n GUSymfony\Component\Translation+m UUSymfony\Component\Translation\Loader.l [USymfony\Component\Translation\Extractor   m  pF2zEMi?pN*



n
E
 					_	<	~X/ygP#}U,nL-zh[KA4"qT<,yJ!Z&                     = 3Jackalope\Transport< Jackalope1; amcordingley\Regression\RegressionAlgorithm%: Imcordingley\Regression\Linking19 amcordingley\Regression\RegressionAlgorithm%8 Imcordingley\Regression\Linking,7 YESymfony\Component\Filesystem\Exception6 ! cSymfony\CS&5 O5Symfony\Component\EventDispatcher,4 [5Symfony\Component\EventDispatcher\Debug&3 OBSymfony\Component\EventDispatcher,2 [BSymfony\Component\EventDispatcher\Debug1 kglobal0 kglobal/ ?global. Dropbox- 1GuzzleHttp\Promise, :Aws\S3+ ):Aws\Api\Parser* 3:Aws\Api\ErrorParser) ':Aws\Signature( %:Aws\DynamoDb' +:Aws\Credentials
& :Aws'% MbSymfony\Component\Yaml\Exception$ -HCurlKit\Progress# -CCurlKit\Progress" @CacheKit
! Foo  c cglobal
 cFoo cClassMap 1cClassesWithParents +CLIFramework\IO 9CLIFramework\Extension =CLIFramework\ConsoleInfo# ECLIFramework\Component\Table %CLIFramework 7mUniversal\ClassLoader ?JsonSchema\Uri\Retrievers 9JsonSchema\Constraints! ANPhpBench\Tabular\Formatter! APPhpBench\Tabular\Formatter) SSymfony\Component\Finder\Expression( QSymfony\Component\Finder\Exception& MSymfony\Component\Finder\Adapter% KSymfony\Component\Console\Style& MSymfony\Component\Console\Output% KSymfony\Component\Console\Input& MSymfony\Component\Console\Helper)
 SSymfony\Component\Console\Formatter*	 USymfony\Component\Console\Descriptor )GPhpParser\Node GPhpParser 1FGettext\Generators 1FGettext\Extractors 1IGettext\Generators 1IGettext\Extractors  ?Illuminate\Support\Traits  ?Illuminate\Contracts\View&  KIlluminate\Contracts\Validation# EIlluminate\Contracts\Support#~ EIlluminate\Contracts\Routing!} AIlluminate\Contracts\Redis!| AIlluminate\Contracts\Queue${ GIlluminate\Contracts\Pipeline&z KIlluminate\Contracts\Pagination y ?Illuminate\Contracts\Mail#x EIlluminate\Contracts\Logging w ?Illuminate\Contracts\Http#v EIlluminate\Contracts\Hashing&u KIlluminate\Contracts\Foundation&t KIlluminate\Contracts\Filesystem"s CIlluminate\Contracts\Events&r KIlluminate\Contracts\Encryption!q AIlluminate\Contracts\Debug"p CIlluminate\Contracts\Cookie%o IIlluminate\Contracts\Container#n EIlluminate\Contracts\Console"m CIlluminate\Contracts\Config!l AIlluminate\Contracts\Cachek =Illuminate\Contracts\Bus(j OIlluminate\Contracts\Broadcasting i ?Illuminate\Contracts\Auth'h MIlluminate\Contracts\Auth\Access&g M}Symfony\Component\Yaml\Exception+f W@Symfony\Component\Config\Tests\Loader'e O@Symfony\Component\Config\Resource%d K@Symfony\Component\Config\Loader)c S@Symfony\Component\Config\Definition1b c@Symfony\Component\Config\Definition\Buildera =@Symfony\Component\Config8` qZSymfony\Component\DependencyInjection\ParameterBag?_ ZSymfony\Component\DependencyInjection\LazyProxy\PhpDumperC^ ZSymfony\Component\DependencyInjection\LazyProxy\Instantiator5] kZSymfony\Component\DependencyInjection\Extension5\ kZSymfony\Component\DependencyInjection\Exception2[ eZSymfony\Component\DependencyInjection\Dumper+Z WZSymfony\Component\DependencyInjection4Y iZSymfony\Component\DependencyInjection\Compiler#X E MyBuilder\PhpunitAcceleratorW &globalV 5pSymfony\CS\TokenizerU !pSymfony\CS'T M}Symfony\Component\PropertyAccess1S a}Symfony\Component\PropertyAccess\Exception&R Mg-Symfony\Component\PropertyAccess0Q ag-Symfony\Component\PropertyAccess\Exception   z gN9 vbL(W?vSD{cH/





W
C
						i	G	'		 qWA)xkU?*_O+qG rAzM0c>hD)                  7 1ihIlluminate\Session6 1ihIlluminate\Routing!5 CihIlluminate\Routing\Matching4 /ihIlluminate\Remote3 -ihIlluminate\Queue2 ;ihIlluminate\Queue\Failed!1 CihIlluminate\Queue\Connectors0 1ihIlluminate\Hashing/ 5ihIlluminate\Exception$. IihIlluminate\Database\Migrations"- EihIlluminate\Database\Eloquent$, IihIlluminate\Database\Connectors+ 3ihIlluminate\Database* /ihIlluminate\Config) -ihIlluminate\Cache( +ihIlluminate\Auth' ?ihIlluminate\Auth\Reminders& 3Laracasts\TestDummy% 3Laracasts\TestDummy*$ SSymfony\Component\CssSelector\XPath4# gSymfony\Component\CssSelector\XPath\Extension+" USymfony\Component\CssSelector\Parser3! eSymfony\Component\CssSelector\Parser\Handler)  QSymfony\Component\CssSelector\Node. [Symfony\Component\CssSelector\Exception -Shire\_generated +Jazz\_generated ;Jazz\Pianist\_generated !_generated ;Codeception\Util\Shared" CCodeception\TestCase\Shared$ GCodeception\Subscriber\Shared' MCodeception\Lib\Generator\Shared' MCodeception\Lib\Connector\Shared# ECodeception\Lib\Actor\Shared! ACodeception\Command\Shared& KCodeception\TestCase\Interfaces 3Codeception\PHPUnit! ACodeception\Lib\Interfaces global7 mGSymfony\Component\ExpressionLanguage\ParserCache+ UGSymfony\Component\ExpressionLanguage- YSymfony\Component\Debug\Tests\Fixtures0 _Symfony\Component\Debug\FatalErrorHandler #~Pure\Helper
 %~Pure\Storage	 %~Pure\Command
 Ssh' MSymfony\Component\VarDumper\Test) QSymfony\Component\VarDumper\Dumper) QSymfony\Component\VarDumper\Cloner +jPredis\Protocol )jPredis\Profile +jPredis\Pipeline 'jPredis\Option  /jPredis\Connection =jPredis\Command\Processor~ )jPredis\Command} 3jPredis\Cluster\Hash!| CjPredis\Cluster\Distribution{ )jPredis\Clusterz jPredisy )CAssetic\Filterx 9CAssetic\Factory\Workerw =CAssetic\Factory\Resourcev 9CAssetic\Factory\Loaderu /CAssetic\Exceptiont 'CAssetic\Caches 'CAssetic\Asset(r Q	DoctrineTest\InstantiatorTestAssetq 7	Doctrine\Instantiator%p K	Doctrine\Instantiator\Exceptiono !4PHPCR\Util)n Q4PHPCR\Util\CND\Scanner\TokenFilterm 74PHPCR\Util\CND\Readerl #PHPCR\Testsk 'PHPCR\Versionj /PHPCR\Transactioni )PHPCR\Securityh +PHPCR\Retentiong #PHPCR\Queryf +PHPCR\Query\QOMe /PHPCR\Observationd )PHPCR\NodeTypec !PHPCR\Lockb PHPCR*a SwDoctrine\Common\DataFixtures\Purger#` EwDoctrine\Common\DataFixtures*_ S{Doctrine\Common\DataFixtures\Purger#^ E{Doctrine\Common\DataFixtures] |global \ A|Doctrine\Common\Reflection[ 7|Doctrine\Common\Proxy%Z K|Doctrine\Common\Proxy\Exception0Y a|Doctrine\Common\Persistence\Mapping\Driver)X S|Doctrine\Common\Persistence\Mapping!W C|Doctrine\Common\PersistenceV +|Doctrine\Common%U IzSensioLabs\Security\Formatters$T GzSensioLabs\Security\Exception!S A)Liip\RMT\Version\Persister!R A)Liip\RMT\Version\GeneratorQ %)Liip\RMT\VCS!P A2Liip\RMT\Version\Persister!O A2Liip\RMT\Version\GeneratorN %2Liip\RMT\VCSM !3PHPCR\Util)L Q3PHPCR\Util\CND\Scanner\TokenFilterK 73PHPCR\Util\CND\ReaderJ #PHPCR\TestsI 'PHPCR\VersionH /PHPCR\TransactionG )PHPCR\SecurityF +PHPCR\RetentionE #PHPCR\QueryD +PHPCR\Query\QOMC /PHPCR\ObservationB )PHPCR\NodeTypeA !PHPCR\Lock@ PHPCR? 5Jackalope\Validation"> CJackalope\Transport\Logging   m |\D)~Z=wU6fJ#kP8




n
K
!					h	B	Z1vO+oR*qU5hL!pQ7JyF                                                  /$ ]Symfony\Component\HttpKernel\CacheWarmer0# _Symfony\Component\HttpKernel\CacheClearer*" SSymfony\Component\HttpKernel\Bundle7! mzSymfony\Component\HttpFoundation\Session\Storage/  ]zSymfony\Component\HttpFoundation\Session5 izSymfony\Component\HttpFoundation\Session\Flash9 qzSymfony\Component\HttpFoundation\Session\Attribute zglobal' MzSymfony\Component\HttpFoundation5 izSymfony\Component\HttpFoundation\File\MimeType  ?Illuminate\Support\Traits 1Illuminate\Routing -Illuminate\Queue 7Illuminate\Pagination +Illuminate\Http' MIlluminate\Foundation\Validation$ GIlluminate\Foundation\Testing  ?Illuminate\Foundation\Bus! AIlluminate\Foundation\Auth( OIlluminate\Foundation\Auth\Access 1Illuminate\Console )Illuminate\Bus +Illuminate\Auth 9Illuminate\Auth\Access +Illuminate\View ;Illuminate\View\Engines 
 ?Illuminate\View\Compilers	 7Illuminate\Validation 9Illuminate\Translation 1Illuminate\Session" CIlluminate\Routing\Matching ;Illuminate\Queue\Failed" CIlluminate\Queue\Connectors% IIlluminate\Database\Migrations# EIlluminate\Database\Eloquent% IIlluminate\Database\Connectors  3Illuminate\Database  ?Illuminate\Contracts\View&~ KIlluminate\Contracts\Validation#} EIlluminate\Contracts\Support#| EIlluminate\Contracts\Routing!{ AIlluminate\Contracts\Redis!z AIlluminate\Contracts\Queue$y GIlluminate\Contracts\Pipeline&x KIlluminate\Contracts\Pagination w ?Illuminate\Contracts\Mail#v EIlluminate\Contracts\Logging u ?Illuminate\Contracts\Http#t EIlluminate\Contracts\Hashing&s KIlluminate\Contracts\Foundation&r KIlluminate\Contracts\Filesystem"q CIlluminate\Contracts\Events&p KIlluminate\Contracts\Encryption!o AIlluminate\Contracts\Debug"n CIlluminate\Contracts\Cookie%m IIlluminate\Contracts\Container#l EIlluminate\Contracts\Console"k CIlluminate\Contracts\Config!j AIlluminate\Contracts\Cachei =Illuminate\Contracts\Bus(h OIlluminate\Contracts\Broadcasting g ?Illuminate\Contracts\Auth'f MIlluminate\Contracts\Auth\Access e ?Illuminate\Auth\Passwordsd )Zizaco\Entrustc 7 FIlluminate\Validation%b I Illuminate\Database\Migrations#a E Illuminate\Database\Eloquent%` I Illuminate\Database\Connectors_ 3 Illuminate\Database^ )Zizaco\Entrust] /Clockwork\Storage\ 5Clockwork\DataSource[ /Clockwork\StorageZ 5Clockwork\DataSourceY 3wLaracasts\Presenter$X GwLaracasts\Presenter\ContractsW 3{Laracasts\Presenter$V G{Laracasts\Presenter\ContractsU 1TOAuth\OAuth2\TokenT 5TOAuth\OAuth2\ServiceS 1TOAuth\OAuth1\TokenR 9TOAuth\OAuth1\SignatureQ 5TOAuth\OAuth1\ServiceP 1TOAuth\Common\TokenO 5TOAuth\Common\StorageN 5TOAuth\Common\ServiceM 7TOAuth\Common\Http\UriL =TOAuth\Common\Http\ClientK 7TOAuth\Common\ConsumerJ +Laracasts\FlashI 5-Laracasts\ValidationH 56Laracasts\Validation!G ALaracasts\Commander\Events+F ULaracasts\Commander\Events\ContractsE 3Laracasts\Commander!D ALaracasts\Commander\Events+C ULaracasts\Commander\Events\ContractsB 3Laracasts\CommanderA ?ihIlluminate\Support\Traits@ +ihIlluminate\Http#? GihIlluminate\Foundation\Testing> 1ihIlluminate\Console= +ihIlluminate\View< ;ihIlluminate\View\Engines; ?ihIlluminate\View\Compilers: 7ihIlluminate\Validation9 9ihIlluminate\Translation"8 EihIlluminate\Support\Contracts   b  k<`3dD&jA|WF5




`
2
						O		eO7 n=i%U#K}J^:N                             0 a?Symfony\Component\Validator\Tests\Fixtures0 a?Symfony\Component\Validator\Mapping\Loader1 c?Symfony\Component\Validator\Mapping\Factory) S?Symfony\Component\Validator\Mapping/ _?Symfony\Component\Validator\Mapping\Cache+ W?Symfony\Component\Validator\Exception)  S?Symfony\Component\Validator\Context! C?Symfony\Component\Validator(~ O!Symfony\Component\OptionsResolver2} c!Symfony\Component\OptionsResolver\Exception,| W Symfony\Component\Intl\ResourceBundle'{ M Symfony\Component\Intl\Exception0z _ Symfony\Component\Intl\Data\Bundle\Writer0y _ Symfony\Component\Intl\Data\Bundle\Reader2x c Symfony\Component\Intl\Data\Bundle\Compiler,w WSymfony\Component\Form\Tests\Fixtures"v CSymfony\Component\Form\TestBu Symfony\Component\Form\Extension\Validator\ViolationMapper5t iSymfony\Component\Form\Extension\DataCollector9s qSymfony\Component\Form\Extension\Csrf\CsrfProvider7r mSymfony\Component\Form\Extension\Core\ChoiceList'q MSymfony\Component\Form\Exception/p ]Symfony\Component\Form\ChoiceList\Loader0o _Symfony\Component\Form\ChoiceList\Factory(n OSymfony\Component\Form\ChoiceListm 9Symfony\Component\Form+l WeSymfony\Component\Form\Tests\Fixtures!k CeSymfony\Component\Form\TestAj eSymfony\Component\Form\Extension\Validator\ViolationMapper4i ieSymfony\Component\Form\Extension\DataCollector8h qeSymfony\Component\Form\Extension\Csrf\CsrfProvider6g meSymfony\Component\Form\Extension\Core\ChoiceList&f MeSymfony\Component\Form\Exception.e ]eSymfony\Component\Form\ChoiceList\Loader/d _eSymfony\Component\Form\ChoiceList\Factory'c OeSymfony\Component\Form\ChoiceListb 9eSymfony\Component\Forma global` global_ +jPredis\Protocol^ )jPredis\Profile] +jPredis\Pipeline\ 'jPredis\Option[ /jPredis\ConnectionZ =jPredis\Command\ProcessorY )jPredis\CommandX 3jPredis\Cluster\Hash!W CjPredis\Cluster\DistributionV )jPredis\ClusterU jPredis/T ]Monii\Http\Middleware\Psr7\ActionHandler/S ]Monii\Http\Middleware\Psr7\ActionHandlerR  %FastRouteQ globalP ;"SimpleSoftwareIO\QrCode(O O"SimpleSoftwareIO\QrCode\DataTypesN 5-BaconQrCode\Renderer!M A-BaconQrCode\Renderer\Image+L U-BaconQrCode\Renderer\Image\Decorator!K A-BaconQrCode\Renderer\ColorJ 7-BaconQrCode\ExceptionI ;#SimpleSoftwareIO\QrCode(H O#SimpleSoftwareIO\QrCode\DataTypes G ArIntervention\Image\Filters F ArIntervention\Image\FiltersE DropboxD Dropbox"C C BigName\BackupManager\Tasks(B O BigName\BackupManager\Filesystems&A K BigName\BackupManager\Databases@ #aAws\S3\Sync? aAws\S3> 5aAws\DynamoDb\Session+= UaAws\DynamoDb\Session\LockingStrategy&< KaAws\DynamoDb\Model\BatchRequest; /aAws\Common\Waiter: 5aAws\Common\Signature'9 MaAws\Common\Model\MultipartUpload8 +aAws\Common\Hash7 /aAws\Common\Facade"6 CaAws\Common\Exception\Parser5 5aAws\Common\Exception4 9aAws\Common\Credentials3 /aAws\Common\Client 2 ? /Symfony\Component\Routing(1 O /Symfony\Component\Routing\Matcher/0 ] /Symfony\Component\Routing\Matcher\Dumper1/ a /Symfony\Component\Routing\Generator\Dumper*. S /Symfony\Component\Routing\Generator*- S /Symfony\Component\Routing\Exception,, WSymfony\Component\HttpKernel\Profiler'+ MSymfony\Component\HttpKernel\Log#* ESymfony\Component\HttpKernel-) YSymfony\Component\HttpKernel\HttpCache,( WSymfony\Component\HttpKernel\Fragment-' YSymfony\Component\HttpKernel\Exception1& aSymfony\Component\HttpKernel\DataCollector.% [Symfony\Component\HttpKernel\Controller   a  kB
[\d6qP.






}
H
				j	=	_0Af6uG ~fO0oQ3wW9cG"               (g OkProxyManagerTestAsset\RemoteProxyf 7kProxyManagerTestAsset"e CkProxyManager\ProxyGeneratord 1kProxyManager\Proxyc 9kProxyManager\Inflector%b IkProxyManager\GeneratorStrategya =kProxyManager\FileLocator(` OkProxyManager\Factory\RemoteObject_ 9kProxyManager\Exception^ ;kProxyManager\Autoloader] 56DI\Definition\Source\ 96DI\Definition\Resolver[ 56DI\Definition\HelperZ 56DI\Definition\DumperY '6DI\Definition	X 6DIW 76Doctrine\Common\CacheV 56DI\Definition\SourceU 96DI\Definition\ResolverT 56DI\Definition\HelperS 56DI\Definition\DumperR '6DI\Definition	Q 6DI$P G4vPeridot\Leo\Interfaces\AssertO #4vPeridot\LeoN 74vPeridot\Leo\Responder#M E4vPeridot\Leo\Matcher\TemplateL 34vPeridot\Leo\MatcherK 74vPeridot\Leo\FormatterJ '3Peridot\ScopeI )3~Peridot\RunnerH -3~Peridot\ReporterG %3~Peridot\CoreF )3Peridot\RunnerE -3Peridot\ReporterD %3Peridot\Core'C M2Symfony\Component\Yaml\Exception$B G2USymfony\Component\Translation+A U2USymfony\Component\Translation\Loader.@ [2USymfony\Component\Translation\Extractor.? [2USymfony\Component\Translation\Exception+> U2USymfony\Component\Translation\Dumper.= [2USymfony\Component\Translation\Catalogue-< Y1Symfony\Component\Filesystem\Exception(; O1=Symfony\Component\EventDispatcher.: [1=Symfony\Component\EventDispatcher\Debug99 q0Symfony\Component\DependencyInjection\ParameterBag@8 0Symfony\Component\DependencyInjection\LazyProxy\PhpDumperD7 0Symfony\Component\DependencyInjection\LazyProxy\Instantiator66 k0Symfony\Component\DependencyInjection\Extension65 k0Symfony\Component\DependencyInjection\Exception34 e0Symfony\Component\DependencyInjection\Dumper,3 W0Symfony\Component\DependencyInjection52 i0Symfony\Component\DependencyInjection\Compiler&1 K0Symfony\Component\Console\Style'0 M0Symfony\Component\Console\Output&/ K0Symfony\Component\Console\Input'. M0Symfony\Component\Console\Helper*- S0Symfony\Component\Console\Formatter+, U0Symfony\Component\Console\Descriptor,+ W/}Symfony\Component\Config\Tests\Loader(* O/}Symfony\Component\Config\Resource&) K/}Symfony\Component\Config\Loader*( S/}Symfony\Component\Config\Definition2' c/}Symfony\Component\Config\Definition\Builder& =/}Symfony\Component\Config% .$ .global
# .Foo" .ClassMap! 1.ClassesWithParents  3%Org_Heigl\DateRange 3%Org_Heigl\DateRange =$Symfony\Bridge\Twig\Form =hrSymfony\Bridge\Twig\Form3 e#Symfony\Component\Security\Csrf\TokenStorage5 i#Symfony\Component\Security\Csrf\TokenGenerator& K#Symfony\Component\Security\Csrf+ U Symfony\Component\Security\Core\Util+ U Symfony\Component\Security\Core\User& K Symfony\Component\Security\Core+ U Symfony\Component\Security\Core\Role0 _ Symfony\Component\Security\Core\Exception. [ Symfony\Component\Security\Core\Encoder: s Symfony\Component\Security\Core\Authorization\Voter4 g Symfony\Component\Security\Core\Authorization; u Symfony\Component\Security\Core\Authentication\TokenD  Symfony\Component\Security\Core\Authentication\Token\Storage@  Symfony\Component\Security\Core\Authentication\RememberMe> { Symfony\Component\Security\Core\Authentication\Provider5 i Symfony\Component\Security\Core\Authentication3 eXSymfony\Component\Security\Csrf\TokenStorage5 iXSymfony\Component\Security\Csrf\TokenGenerator&
 KXSymfony\Component\Security\Csrf+	 W?Symfony\Component\Validator\Violation+ W?Symfony\Component\Validator\Validator6 m?Symfony\Component\Validator\Tests\Mapping\Loader   k  vO2hX!wF_'x`F"




n
Q
+					m	]	9	U.	Q,S'_5	tT5iR7sJ"c8                  &R KRLeague\CommonMark\Block\ElementQ 9RLeague\CommonMark\Util(P ORLeague\CommonMark\Inline\Renderer)O QRLeague\CommonMark\Inline\Processor&N KRLeague\CommonMark\Inline\Parser"M CRLeague\CommonMark\ExtensionL /RLeague\CommonMark'K MRLeague\CommonMark\Block\Renderer%J IRLeague\CommonMark\Block\Parser&I KRLeague\CommonMark\Block\Element'H OfvSymfony\Component\OptionsResolver1G cfvSymfony\Component\OptionsResolver\ExceptionF -QCiconia\RendererE /QCiconia\ExtensionD 'QCiconia\EventC -QCiconia\RendererB /QCiconia\ExtensionA 'QCiconia\Event@ 5Icebe\markdown\inline? 3Icebe\markdown\block> PMichelf= )OMouf\Validator7< mOSymfony\Component\ExpressionLanguage\ParserCache+; UOSymfony\Component\ExpressionLanguage: 76Doctrine\Common\Cache9 ;}Doctrine\ORM\Repository8 1}Doctrine\ORM\Query7 1}Doctrine\ORM\Proxy6 5}Doctrine\ORM\Mapping5 %}Doctrine\ORM*4 SKSymfony\Component\Finder\Expression)3 QKSymfony\Component\Finder\Exception'2 MKSymfony\Component\Finder\Adapter*1 SISymfony\Component\CssSelector\XPath40 gISymfony\Component\CssSelector\XPath\Extension+/ UISymfony\Component\CssSelector\Parser3. eISymfony\Component\CssSelector\Parser\Handler)- QISymfony\Component\CssSelector\Node., [ISymfony\Component\CssSelector\Exception+ 1FGuzzleHttp\Handler* 5FGuzzleHttp\Exception) /FGuzzleHttp\Cookie( !FGuzzleHttp ' ?FFacebook\WebDriver\Remote& 1FFacebook\WebDriver"% CFFacebook\WebDriver\Internal,$ WFFacebook\WebDriver\Interactions\Touch# -EShire\_generated" +EJazz\_generated! ;EJazz\Pianist\_generated  !E_generated ;ECodeception\Util\Shared" CECodeception\TestCase\Shared$ GECodeception\Subscriber\Shared' MECodeception\Lib\Generator\Shared' MECodeception\Lib\Connector\Shared# EECodeception\Lib\Actor\Shared! AECodeception\Command\Shared& KECodeception\TestCase\Interfaces 3ECodeception\PHPUnit! AECodeception\Lib\Interfaces Eglobal /Zend\Stdlib\Guard ?Zend\Stdlib\StringWrapper# GZend\Stdlib\Hydrator\Strategy- [Zend\Stdlib\Hydrator\Strategy\Exception) SZend\Stdlib\Hydrator\NamingStrategy# GZend\Stdlib\Hydrator\Iterator 5Zend\Stdlib\Hydrator! CZend\Stdlib\Hydrator\Filter 7Zend\Stdlib\Extractor 7Zend\Stdlib\Exception
 9Zend\Stdlib\ArrayUtils	 #Zend\Stdlib =YZend\EventManager\Filter! CYZend\EventManager\Exception /YZend\EventManager )D(Zend\Diactoros ;D(Zend\Diactoros\Response =D(Zend\Diactoros\Exception7 mBhSymfony\Component\HttpFoundation\Session\Storage/ ]BhSymfony\Component\HttpFoundation\Session5  iBhSymfony\Component\HttpFoundation\Session\Flash9 qBhSymfony\Component\HttpFoundation\Session\Attribute~ Bhglobal'} MBhSymfony\Component\HttpFoundation5| iBhSymfony\Component\HttpFoundation\File\MimeType6{ moOSymfony\Component\HttpFoundation\Session\Storage.z ]oOSymfony\Component\HttpFoundation\Session4y ioOSymfony\Component\HttpFoundation\Session\Flash8x qoOSymfony\Component\HttpFoundation\Session\Attributew oOglobal&v MoOSymfony\Component\HttpFoundation4u ioOSymfony\Component\HttpFoundation\File\MimeTypet :globals +8CGuzzleHttp\Psr7r /7`Zend\Code\Scannerq 57`Zend\Code\Reflection%p I7`Zend\Code\Reflection\Exception(o O7`Zend\Code\Reflection\DocBlock\Tag"n C7`Zend\Code\Generic\Prototypem 37`Zend\Code\Generator$l G7`Zend\Code\Generator\Exception'k M7`Zend\Code\Generator\DocBlock\Tagj 37`Zend\Code\Exception"i C7`Zend\Code\Annotation\Parserh 57`Zend\Code\Annotation   g nElJoEYI%oB



o
>
					i	?	oV?$	i>*tR9U,vZH;+!tI}DE                                                 ;9 uptSymfony\Component\DependencyInjection\Tests\Compiler98 qptSymfony\Component\DependencyInjection\ParameterBag@7 ptSymfony\Component\DependencyInjection\LazyProxy\PhpDumperD6 ptSymfony\Component\DependencyInjection\LazyProxy\Instantiator65 kptSymfony\Component\DependencyInjection\Extension64 kptSymfony\Component\DependencyInjection\Exception33 eptSymfony\Component\DependencyInjection\Dumper,2 WptSymfony\Component\DependencyInjection51 iptSymfony\Component\DependencyInjection\Compiler,0 Wo:Symfony\Component\Config\Tests\Loader(/ Oo:Symfony\Component\Config\Resource&. Ko:Symfony\Component\Config\Loader*- So:Symfony\Component\Config\Definition2, co:Symfony\Component\Config\Definition\Builder+ =o:Symfony\Component\Config* n) nglobal
( nFoo' nClassMap& 1nClassesWithParents% 1nbBehat\Gherkin\Node$ 5nbBehat\Gherkin\Loader# 9nbBehat\Gherkin\Keywords" 5nbBehat\Gherkin\Filter! ;nbBehat\Gherkin\Exception  3nbBehat\Gherkin\Cache& Kf*Symfony\Component\Process\Pipes* Sf*Symfony\Component\Process\Exception /cspec\PhpSpec\Util +cPhpSpec\Wrapper* ScPhpSpec\Wrapper\Subject\Expectation cPhpSpec  ?cPhpSpec\Runner\Maintainer =cPhpSpec\Process\Shutdown +cPhpSpec\Process =cPhpSpec\Process\ReRunner$ GcPhpSpec\Process\Prerequisites ;cPhpSpec\Process\Context +cPhpSpec\Matcher +cPhpSpec\Locator! AcPhpSpec\Loader\Transformer )cPhpSpec\Loader !cPhpSpec\IO( OcPhpSpec\Formatter\Presenter\Value" CcPhpSpec\Formatter\Presenter, WcPhpSpec\Formatter\Presenter\Exception) QcPhpSpec\Formatter\Presenter\Differ
 9cPhpSpec\Formatter\Html	 /cPhpSpec\Formatter /cPhpSpec\Extension 'cPhpSpec\Event +cPhpSpec\Console# EcPhpSpec\CodeGenerator\Writer& KcPhpSpec\CodeGenerator\Generator 5cPhpSpec\CodeAnalysis 7cspec\PhpSpec\Listener =>PhpSpec\Process\Shutdown   A>PhpSpec\Loader\Transformer' O>PhpSpec\Formatter\Presenter\Value+~ W>PhpSpec\Formatter\Presenter\Exception} global| global){ Q\Symfony\Component\Finder\Exception-z Y\JSymfony\Component\Filesystem\Exception(y O[Symfony\Component\EventDispatcher.x [[Symfony\Component\EventDispatcher\Debug&w KQSymfony\Component\Console\Style'v MQSymfony\Component\Console\Output&u KQSymfony\Component\Console\Input't MQSymfony\Component\Console\Helper*s SQSymfony\Component\Console\Formatter*r SQSymfony\Component\Console\Exception+q UQSymfony\Component\Console\Descriptorp 5ZSymfony\CS\Tokenizero !ZSymfony\CS'n MW.Symfony\Component\Yaml\Exception)m QZ SebastianBergmann\RecursionContext!l AYSebastianBergmann\Diff\LCSk Uiglobal'j MW2Symfony\Component\Yaml\Exceptioni )Sabberworm\CSSh ;Sabberworm\CSS\Property(g ORfSymfony\Component\OptionsResolver2f cRfSymfony\Component\OptionsResolver\Exception&e KQSymfony\Component\Console\Style'd MQSymfony\Component\Console\Output&c KQSymfony\Component\Console\Input'b MQSymfony\Component\Console\Helper*a SQSymfony\Component\Console\Formatter*` SQSymfony\Component\Console\Exception+_ UQSymfony\Component\Console\Descriptor^ =SFluxBB\CommonMark\Parser] 9SFluxBB\CommonMark\Node\ =SFluxBB\CommonMark\Parser[ 9SFluxBB\CommonMark\NodeZ 9RLeague\CommonMark\Util(Y ORLeague\CommonMark\Inline\Renderer)X QRLeague\CommonMark\Inline\Processor&W KRLeague\CommonMark\Inline\Parser"V CRLeague\CommonMark\ExtensionU /RLeague\CommonMark'T MRLeague\CommonMark\Block\Renderer%S IRLeague\CommonMark\Block\Parser   ]  sE{aD)d;P&F



O
				p	A	1hFa)YkK5xT/	oJ!f=Y6           # EQIlluminate\Database\Eloquent% IQIlluminate\Database\Connectors 3QIlluminate\Database  ?QIlluminate\Contracts\View& KQIlluminate\Contracts\Validation# EQIlluminate\Contracts\Support# EQIlluminate\Contracts\Routing! AQIlluminate\Contracts\Redis! AQIlluminate\Contracts\Queue$ GQIlluminate\Contracts\Pipeline& KQIlluminate\Contracts\Pagination  ?QIlluminate\Contracts\Mail#
 EQIlluminate\Contracts\Logging 	 ?QIlluminate\Contracts\Http# EQIlluminate\Contracts\Hashing& KQIlluminate\Contracts\Foundation& KQIlluminate\Contracts\Filesystem" CQIlluminate\Contracts\Events& KQIlluminate\Contracts\Encryption! AQIlluminate\Contracts\Debug" CQIlluminate\Contracts\Cookie% IQIlluminate\Contracts\Container#  EQIlluminate\Contracts\Console" CQIlluminate\Contracts\Config!~ AQIlluminate\Contracts\Cache} =QIlluminate\Contracts\Bus(| OQIlluminate\Contracts\Broadcasting { ?QIlluminate\Contracts\Auth'z MQIlluminate\Contracts\Auth\Access y ?QIlluminate\Auth\Passwordsx %1SuperClosurew 91SuperClosure\Exception v ?ClassPreloader\Exceptions!u AOrchestra\Testbench\Traitst 3Orchestra\Testbenchs FastRoute:r uSymfony\Component\DependencyInjection\Tests\Compiler7q m{Symfony\Component\HttpFoundation\Session\Storage/p ]{Symfony\Component\HttpFoundation\Session5o i{Symfony\Component\HttpFoundation\Session\Flash9n q{Symfony\Component\HttpFoundation\Session\Attribute'm M{Symfony\Component\HttpFoundation5l i{Symfony\Component\HttpFoundation\File\MimeType,k Wo6Symfony\Component\Config\Tests\Loader(j Oo6Symfony\Component\Config\Resource&i Ko6Symfony\Component\Config\Loader*h So6Symfony\Component\Config\Definition2g co6Symfony\Component\Config\Definition\Builderf =o6Symfony\Component\Config7e m}Symfony\Component\ExpressionLanguage\ParserCache+d U}Symfony\Component\ExpressionLanguage,c Ym"Symfony\Component\Debug\Tests\Fixtures/b _m"Symfony\Component\Debug\FatalErrorHandlera |global,` W|>Symfony\Component\HttpKernel\Profiler'_ M|>Symfony\Component\HttpKernel\Log#^ E|>Symfony\Component\HttpKernel-] Y|>Symfony\Component\HttpKernel\HttpCache,\ W|>Symfony\Component\HttpKernel\Fragment-[ Y|>Symfony\Component\HttpKernel\Exception1Z a|>Symfony\Component\HttpKernel\DataCollector.Y [|>Symfony\Component\HttpKernel\Controller/X ]|>Symfony\Component\HttpKernel\CacheWarmer0W _|>Symfony\Component\HttpKernel\CacheClearer*V S|>Symfony\Component\HttpKernel\Bundle7U m{Symfony\Component\HttpFoundation\Session\Storage/T ]{Symfony\Component\HttpFoundation\Session5S i{Symfony\Component\HttpFoundation\Session\Flash9R q{Symfony\Component\HttpFoundation\Session\Attribute'Q M{Symfony\Component\HttpFoundation5P i{Symfony\Component\HttpFoundation\File\MimeType-O YzSymfony\Component\Debug\Tests\Fixtures0N _zSymfony\Component\Debug\FatalErrorHandler%M IzGraphAware\NeoClient\Formatter%L IzGraphAware\NeoClient\Formatter&K O3Symfony\Component\EventDispatcher,J [3Symfony\Component\EventDispatcher\Debug:I uZSymfony\Component\DependencyInjection\Tests\CompilerH +=Monolog\Handler$G I=Monolog\Handler\FingersCrossedF /=Monolog\FormatterE 1MwGuzzleHttp\HandlerD 5MwGuzzleHttp\ExceptionC /MwGuzzleHttp\CookieB !MwGuzzleHttp$A Gr9Symfony\Component\Translation+@ Ur9Symfony\Component\Translation\Loader.? [r9Symfony\Component\Translation\Extractor.> [r9Symfony\Component\Translation\Exception+= Ur9Symfony\Component\Translation\Dumper.< [r9Symfony\Component\Translation\Catalogue(; O[Symfony\Component\EventDispatcher.: [[Symfony\Component\EventDispatcher\Debug   b  mQ1|dHlM3{cF"xK!



t
H
				M	b8(HQ!rC_-OqG]:                                  x =EIlluminate\Contracts\Bus(w OEIlluminate\Contracts\Broadcasting v ?EIlluminate\Contracts\Auth'u MEIlluminate\Contracts\Auth\Accesst =Arcanedev\Support\Traits#s EArcanedev\LaravelHtml\Traits&r KArcanedev\LaravelHtml\Contracts#q EArcanedev\LaravelHtml\Traits&p KArcanedev\LaravelHtml\Contracts'o MSymfony\Component\VarDumper\Test)n QSymfony\Component\VarDumper\Dumper)m QSymfony\Component\VarDumper\Cloner$l Gr=Symfony\Component\Translation+k Ur=Symfony\Component\Translation\Loader.j [r=Symfony\Component\Translation\Extractor.i [r=Symfony\Component\Translation\Exception+h Ur=Symfony\Component\Translation\Dumper.g [r=Symfony\Component\Translation\Catalogue f ?Symfony\Component\Routing(e OSymfony\Component\Routing\Matcher/d ]Symfony\Component\Routing\Matcher\Dumper1c aSymfony\Component\Routing\Generator\Dumper*b SSymfony\Component\Routing\Generator*a SSymfony\Component\Routing\Exception&` K]sSymfony\Component\Process\Pipes*_ S]sSymfony\Component\Process\Exception,^ W|BSymfony\Component\HttpKernel\Profiler'] M|BSymfony\Component\HttpKernel\Log#\ E|BSymfony\Component\HttpKernel-[ Y|BSymfony\Component\HttpKernel\HttpCache,Z W|BSymfony\Component\HttpKernel\Fragment-Y Y|BSymfony\Component\HttpKernel\Exception1X a|BSymfony\Component\HttpKernel\DataCollector.W [|BSymfony\Component\HttpKernel\Controller/V ]|BSymfony\Component\HttpKernel\CacheWarmer0U _|BSymfony\Component\HttpKernel\CacheClearer*T S|BSymfony\Component\HttpKernel\Bundle7S m{Symfony\Component\HttpFoundation\Session\Storage/R ]{Symfony\Component\HttpFoundation\Session5Q i{Symfony\Component\HttpFoundation\Session\Flash9P q{Symfony\Component\HttpFoundation\Session\AttributeO {global'N M{Symfony\Component\HttpFoundation5M i{Symfony\Component\HttpFoundation\File\MimeType*L S\Symfony\Component\Finder\Expression)K Q\Symfony\Component\Finder\Exception'J M\Symfony\Component\Finder\Adapter-I YzSymfony\Component\Debug\Tests\Fixtures0H _zSymfony\Component\Debug\FatalErrorHandler*G SSymfony\Component\CssSelector\XPath4F gSymfony\Component\CssSelector\XPath\Extension+E USymfony\Component\CssSelector\Parser3D eSymfony\Component\CssSelector\Parser\Handler)C QSymfony\Component\CssSelector\Node.B [Symfony\Component\CssSelector\Exception&A KQSymfony\Component\Console\Style'@ MQSymfony\Component\Console\Output&? KQSymfony\Component\Console\Input'> MQSymfony\Component\Console\Helper*= SQSymfony\Component\Console\Formatter+< UQSymfony\Component\Console\Descriptor; 'Psy\VarDumper: %Psy\Readline9 !Psy\Output8 'Psy\Formatter7 'Psy\Exception
6 Psy!5 AOrchestra\Testbench\Traits4 3Orchestra\Testbench3 )mPhpParser\Node2 mPhpParser1 ;League\Flysystem\Plugin(0 OLeague\Flysystem\Adapter\Polyfill/ -League\Flysystem . ?QIlluminate\Support\Traits- 1QIlluminate\Routing, -QIlluminate\Queue+ 7QIlluminate\Pagination* +QIlluminate\Http') MQIlluminate\Foundation\Validation$( GQIlluminate\Foundation\Testing ' ?QIlluminate\Foundation\Bus!& AQIlluminate\Foundation\Auth(% OQIlluminate\Foundation\Auth\Access$ 1QIlluminate\Console# )QIlluminate\Bus" +QIlluminate\Auth! 9QIlluminate\Auth\Access  +QIlluminate\View ;QIlluminate\View\Engines  ?QIlluminate\View\Compilers 7QIlluminate\Validation 9QIlluminate\Translation 1QIlluminate\Session" CQIlluminate\Routing\Matching ;QIlluminate\Queue\Failed" CQIlluminate\Queue\Connectors% IQIlluminate\Database\Migrations   _  iD Z7zV0
qEvf<



d
5
				W	-WX._<{M&rEn?O!qV1          !W AZend\Json\Server\ExceptionV 3Zend\Json\ExceptionU =7Zend\EventManager\Filter"T C7Zend\EventManager\ExceptionS /7Zend\EventManager R ?AZend\Cache\Storage\PluginQ 1AZend\Cache\StorageP 1AZend\Cache\PatternO 5AZend\Cache\ExceptionN global$M GSymfony\Component\Translation+L USymfony\Component\Translation\Loader.K [Symfony\Component\Translation\Extractor.J [Symfony\Component\Translation\Exception+I USymfony\Component\Translation\Dumper.H [Symfony\Component\Translation\Catalogue,G WSymfony\Component\Validator\Violation,F WSymfony\Component\Validator\Validator7E mSymfony\Component\Validator\Tests\Mapping\Loader1D aSymfony\Component\Validator\Tests\Fixtures1C aSymfony\Component\Validator\Mapping\Loader2B cSymfony\Component\Validator\Mapping\Factory*A SSymfony\Component\Validator\Mapping0@ _Symfony\Component\Validator\Mapping\Cache,? WSymfony\Component\Validator\Exception*> SSymfony\Component\Validator\Context"= CSymfony\Component\Validator$< GSymfony\Component\Translation+; USymfony\Component\Translation\Loader.: [Symfony\Component\Translation\Extractor.9 [Symfony\Component\Translation\Exception+8 USymfony\Component\Translation\Dumper.7 [Symfony\Component\Translation\Catalogue 6 ?CJsonSchema\Uri\Retrievers5 9CJsonSchema\Constraints&4 KSymfony\Component\Process\Pipes*3 SSymfony\Component\Process\Exception*2 SSymfony\Component\Finder\Expression)1 QSymfony\Component\Finder\Exception'0 MSymfony\Component\Finder\Adapter9/ qSymfony\Component\DependencyInjection\ParameterBag@. Symfony\Component\DependencyInjection\LazyProxy\PhpDumperD- Symfony\Component\DependencyInjection\LazyProxy\Instantiator6, kSymfony\Component\DependencyInjection\Extension6+ kSymfony\Component\DependencyInjection\Exception3* eSymfony\Component\DependencyInjection\Dumper,) WSymfony\Component\DependencyInjection5( iSymfony\Component\DependencyInjection\Compiler'' MUSymfony\Component\Console\Output&& KUSymfony\Component\Console\Input'% MUSymfony\Component\Console\Helper*$ SUSymfony\Component\Console\Formatter+# UUSymfony\Component\Console\Descriptor-" YSymfony\Component\Filesystem\Exception,! WSymfony\Component\Config\Tests\Loader(  OSymfony\Component\Config\Resource& KSymfony\Component\Config\Loader =Symfony\Component\Config* SSymfony\Component\Config\Definition2 cSymfony\Component\Config\Definition\Builder' MBSymfony\Component\Yaml\Exception vglobal =.Arcanedev\Support\Traits Vglobal UXglobal global 3DeepCopy\TypeFilter -DeepCopy\Matcher +DeepCopy\Filter* S\Symfony\Component\Finder\Expression) Q\Symfony\Component\Finder\Exception' M\Symfony\Component\Finder\Adapter  ?Illuminate\Support\Traits  ?EIlluminate\Contracts\View& KEIlluminate\Contracts\Validation# EEIlluminate\Contracts\Support# EEIlluminate\Contracts\Routing!
 AEIlluminate\Contracts\Redis!	 AEIlluminate\Contracts\Queue$ GEIlluminate\Contracts\Pipeline& KEIlluminate\Contracts\Pagination  ?EIlluminate\Contracts\Mail# EEIlluminate\Contracts\Logging  ?EIlluminate\Contracts\Http# EEIlluminate\Contracts\Hashing& KEIlluminate\Contracts\Foundation& KEIlluminate\Contracts\Filesystem"  CEIlluminate\Contracts\Events& KEIlluminate\Contracts\Encryption!~ AEIlluminate\Contracts\Debug"} CEIlluminate\Contracts\Cookie%| IEIlluminate\Contracts\Container#{ EEIlluminate\Contracts\Console"z CEIlluminate\Contracts\Config!y AEIlluminate\Contracts\Cache   x tQ4uW*nO0lG)	yU:




s
[
A
					t	W	+	qM0pP._<z`;"kH'pTD(b=y\5                        "O CZend\Authentication\Storage$N GZend\Authentication\ExceptionM 3Zend\Authentication'L MZend\Authentication\Adapter\Http1K aZend\Authentication\Adapter\Http\Exception,J WZend\Authentication\Adapter\Exception4I gZend\Authentication\Adapter\DbTable\Exception"H CZend\Authentication\Adapter$G GZend\ServiceManager\ExceptionF 3Zend\ServiceManagerE 9Zend\EventManager\TestD =Zend\EventManager\Filter"C CZend\EventManager\ExceptionB /Zend\EventManagerA 1.Zend\Dom\Exception@ mglobal? 1Zend\ModuleManager,> WZend\ModuleManager\Listener\Exception"= CZend\ModuleManager\Listener!< AZend\ModuleManager\Feature#; EZend\ModuleManager\Exception: +zZend\Log\Writer9 ;zZend\Log\Writer\FirePhp 8 ?zZend\Log\Writer\ChromePhp7 1zZend\Log\Processor6 zZend\Log5 1zZend\Log\Formatter4 +zZend\Log\Filter3 1zZend\Log\Exception2 1:Zend\View\Resolver1 1:Zend\View\Renderer0 +:Zend\View\Model"/ C:Zend\View\Helper\Navigation. -:Zend\View\Helper- 3:Zend\View\Exception!, AZend\InputFilter\Exception+ -Zend\InputFilter* 3Zend\Form\Exception) Zend\Form( +Zend\Mvc\Router' 5Zend\Mvc\Router\Http & ?Zend\Mvc\Router\Exception% ;Zend\Mvc\Router\Console$ ;Zend\Mvc\ResponseSender# 1Zend\Mvc\Exception!" AZend\Mvc\Controller\Plugin! Zend\Mvc  )Zend\Validator  ?Zend\Validator\Translator =Zend\Validator\Exception 9Zend\Validator\Barcode vZend\Uri 1vZend\Uri\Exception #Zend\Loader 7Zend\Loader\Exception 9yZend\Escaper\Exception -<Zend\Http\Header! A<Zend\Http\Header\Exception 3<Zend\Http\Exception! A<Zend\Http\Client\Exception) Q<Zend\Http\Client\Adapter\Exception =<Zend\Http\Client\Adapter 5Zend\Crypt\Symmetric# EZend\Crypt\Symmetric\Padding% IZend\Crypt\Symmetric\Exception) QZend\Crypt\PublicKey\Rsa\Exception 3Zend\Crypt\Password$ GZend\Crypt\Password\Exception* SZend\Crypt\Key\Derivation\Exception
 5Zend\Crypt\Exception	 )Zend\Diactoros ;Zend\Diactoros\Response =Zend\Diactoros\Exception -OAuth2\TokenType )OAuth2\Storage OAuth2 3OAuth2\ResponseType 7OAuth2\OpenID\Storage! AOAuth2\OpenID\ResponseType  =OAuth2\OpenID\Controller -OAuth2\GrantType~ /OAuth2\Encryption} /OAuth2\Controller!| AOAuth2\ClientAssertionType{ 9org\bovigo\vfs\visitorz )org\bovigo\vfsy 9org\bovigo\vfs\contentx 9worg\bovigo\vfs\visitorw )worg\bovigo\vfsv 9worg\bovigo\vfs\contentu 5Zend\I18n\Translator"t CZend\I18n\Translator\Loaders 3Zend\I18n\Exceptionr #Zend\Filterq 7Zend\Filter\Exceptionp 3Zend\Filter\Encrypto 5Zend\Filter\Compressn 1?Zend\Config\Writerm 1?Zend\Config\Readerl 7?Zend\Config\Processork 7?Zend\Config\Exceptionj /7Zend\Stdlib\Guard i ?7Zend\Stdlib\StringWrapper#h E7Zend\Stdlib\JsonSerializable$g G7Zend\Stdlib\Hydrator\Strategy.f [7Zend\Stdlib\Hydrator\Strategy\Exception*e S7Zend\Stdlib\Hydrator\NamingStrategyd 57Zend\Stdlib\Hydrator"c C7Zend\Stdlib\Hydrator\Filterb 77Zend\Stdlib\Extractora 77Zend\Stdlib\Exception` 97Zend\Stdlib\ArrayUtils_ #7Zend\Stdlib$^ GZend\ServiceManager\Exception] 3Zend\ServiceManager \ ?zZend\Serializer\Exception[ ;zZend\Serializer\AdapterZ 3=Zend\Math\Exception%Y I=Zend\Math\BigInteger\Exception#X E=Zend\Math\BigInteger\Adapter   b  nK)lP0Z4gS1{L



U
+				K	T$uF[8fA'p=p7t8`?          
1 nFoo0 nClassMap/ 1nClassesWithParents.. [eSymfony\Component\Asset\VersionStrategy- ;eSymfony\Component\Asset(, OeSymfony\Component\Asset\Exception&+ KeSymfony\Component\Asset\Context* 7-Doctrine\Common\Cache$) GClaroline\KernelBundle\Bundle;( uppSymfony\Component\DependencyInjection\Tests\Compiler9' qppSymfony\Component\DependencyInjection\ParameterBag@& ppSymfony\Component\DependencyInjection\LazyProxy\PhpDumperD% ppSymfony\Component\DependencyInjection\LazyProxy\Instantiator6$ kppSymfony\Component\DependencyInjection\Extension6# kppSymfony\Component\DependencyInjection\Exception3" eppSymfony\Component\DependencyInjection\Dumper,! WppSymfony\Component\DependencyInjection5  ippSymfony\Component\DependencyInjection\Compiler- YzSymfony\Component\Debug\Tests\Fixtures0 _zSymfony\Component\Debug\FatalErrorHandler! A0PhpBench\Tabular\Formatter +PhpBench\Report /PhpBench\Registry /PhpBench\Progress 5PhpBench\Environment# EPhpBench\DependencyInjection -PhpBench\Console" CPhpBench\Benchmark\Metadata 1PhpBench\Benchmark %PhpBench\Dom ?JsonSchema\Uri\Retrievers 9JsonSchema\Constraints* SǢMoveElevator\XlsxAppender\Templates global =ƭSymfony\Bridge\Twig\Form  ?kSymfony\Component\Routing( OkSymfony\Component\Routing\Matcher/ ]kSymfony\Component\Routing\Matcher\Dumper1 akSymfony\Component\Routing\Generator\Dumper*
 SkSymfony\Component\Routing\Generator*	 SkSymfony\Component\Routing\Exception, WSymfony\Component\HttpKernel\Profiler' MSymfony\Component\HttpKernel\Log# ESymfony\Component\HttpKernel- YSymfony\Component\HttpKernel\HttpCache, WSymfony\Component\HttpKernel\Fragment- YSymfony\Component\HttpKernel\Exception1 aSymfony\Component\HttpKernel\DataCollector. [Symfony\Component\HttpKernel\Controller/  ]Symfony\Component\HttpKernel\CacheWarmer0 _Symfony\Component\HttpKernel\CacheClearer*~ SSymfony\Component\HttpKernel\Bundle7} mzSymfony\Component\HttpFoundation\Session\Storage/| ]zSymfony\Component\HttpFoundation\Session5{ izSymfony\Component\HttpFoundation\Session\Flash9z qzSymfony\Component\HttpFoundation\Session\Attribute'y MzSymfony\Component\HttpFoundation5x izSymfony\Component\HttpFoundation\File\MimeType(w OLSymfony\Component\EventDispatcher.v [LSymfony\Component\EventDispatcher\Debug-u YSymfony\Component\Debug\Tests\Fixtures0t _Symfony\Component\Debug\FatalErrorHandler,s WtSymfony\Component\Config\Tests\Loader(r OtSymfony\Component\Config\Resource&q KtSymfony\Component\Config\Loader*p StSymfony\Component\Config\Definition2o ctSymfony\Component\Config\Definition\Buildern =tSymfony\Component\Configm !CKnp\Snappyl )&Blend\Security k ?Rougin\Slytherin\Templatej 5Rougin\Slytherin\IoC#i ERougin\Slytherin\Dispatchingh 9Rougin\Slytherin\Debugg globalf 5Zend\Db\TableGateway#e EZend\Db\TableGateway\Feature%d IZend\Db\TableGateway\Exceptionc 7Zend\Db\Sql\Predicateb 5Zend\Db\Sql\Platforma #Zend\Db\Sql` 7Zend\Db\Sql\Exception_ +Zend\Db\Sql\Ddl!^ AZend\Db\Sql\Ddl\Constraint] 9Zend\Db\Sql\Ddl\Column\ 1Zend\Db\RowGateway#[ EZend\Db\RowGateway\ExceptionZ /Zend\Db\ResultSet"Y CZend\Db\ResultSet\ExceptionX -Zend\Db\MetadataW /Zend\Db\ExceptionV =Zend\Db\Adapter\ProfilerU =Zend\Db\Adapter\Platform T ?Zend\Db\Adapter\Exception.S [Zend\Db\Adapter\Driver\Sqlsrv\Exception%R IZend\Db\Adapter\Driver\FeatureQ 9Zend\Db\Adapter\DriverP +Zend\Db\Adapter   Z  IMl=}R/s,


z
I
				Y	#w_C)a2g?{X7~n^-f9vBc4                          + Ur5Symfony\Component\Translation\Dumper.
 [r5Symfony\Component\Translation\Catalogue,	 W|:Symfony\Component\HttpKernel\Profiler' M|:Symfony\Component\HttpKernel\Log# E|:Symfony\Component\HttpKernel- Y|:Symfony\Component\HttpKernel\HttpCache, W|:Symfony\Component\HttpKernel\Fragment- Y|:Symfony\Component\HttpKernel\Exception1 a|:Symfony\Component\HttpKernel\DataCollector. [|:Symfony\Component\HttpKernel\Controller/ ]|:Symfony\Component\HttpKernel\CacheWarmer0  _|:Symfony\Component\HttpKernel\CacheClearer* S|:Symfony\Component\HttpKernel\Bundle*~ SSymfony\Component\CssSelector\XPath4} gSymfony\Component\CssSelector\XPath\Extension+| USymfony\Component\CssSelector\Parser3{ eSymfony\Component\CssSelector\Parser\Handler)z QSymfony\Component\CssSelector\Node.y [Symfony\Component\CssSelector\Exceptionx Jglobalw globalv ;Maatwebsite\Excel\Filesu ;League\Fractal\Resource t ?League\Fractal\Paginations =Collective\Html\Eloquentr +Collective\Htmlq +iIlluminate\Viewp ;iIlluminate\View\Engines o ?iIlluminate\View\Compilersn 1Illuminate\Sessionm 1_Illuminate\Routing"l C_Illuminate\Routing\Matchingk +Illuminate\Http%j IIlluminate\Database\Migrations#i EIlluminate\Database\Eloquent%h IIlluminate\Database\Connectorsg 3Illuminate\Databasef -Illuminate\Cachee global!d AYajra\Datatables\Contracts'c M0Symfony\Component\Yaml\Exceptionb ^global#a EnMyBuilder\PhpunitAccelerator,` WPhpGitHooks\Infrastructure\PhpCsFixer%_ IPhpGitHooks\Infrastructure\Git-^ YPhpGitHooks\Infrastructure\Disk\Config(] OPhpGitHooks\Infrastructure\Common\ 3PhpGitHooks\Command%[ IPhpGitHooks\Application\ConfigZ - Pandalog\HandlerY 1 Pandalog\FormatterX )؋Whoops\Handler)W QESymfony\Component\Templating\Tests*V SESymfony\Component\Templating\Loader*U SESymfony\Component\Templating\Helper#T EESymfony\Component\Templating3S eSymfony\Component\Security\Csrf\TokenStorage5R iSymfony\Component\Security\Csrf\TokenGenerator&Q KSymfony\Component\Security\Csrf+P U5Symfony\Component\Security\Core\User+O U5Symfony\Component\Security\Core\Role0N _5Symfony\Component\Security\Core\Exception.M [5Symfony\Component\Security\Core\Encoder:L s5Symfony\Component\Security\Core\Authorization\Voter4K g5Symfony\Component\Security\Core\Authorization;J u5Symfony\Component\Security\Core\Authentication\TokenDI 5Symfony\Component\Security\Core\Authentication\Token\Storage@H 5Symfony\Component\Security\Core\Authentication\RememberMe>G {5Symfony\Component\Security\Core\Authentication\Provider5F i5Symfony\Component\Security\Core\Authentication E ?Symfony\Component\Routing(D OSymfony\Component\Routing\Matcher/C ]Symfony\Component\Routing\Matcher\Dumper1B aSymfony\Component\Routing\Generator\Dumper*A SSymfony\Component\Routing\Generator*@ SSymfony\Component\Routing\Exception,? WӣSymfony\Bundle\FrameworkBundle\Kernel0> _ӣSymfony\Bundle\FrameworkBundle\Templating1= aӣSymfony\Bundle\FrameworkBundle\CacheWarmer;< uSymfony\Component\DependencyInjection\Tests\Compiler9; qSymfony\Component\DependencyInjection\ParameterBag@: Symfony\Component\DependencyInjection\LazyProxy\PhpDumperD9 Symfony\Component\DependencyInjection\LazyProxy\Instantiator68 kSymfony\Component\DependencyInjection\Extension67 kSymfony\Component\DependencyInjection\Exception36 eSymfony\Component\DependencyInjection\Dumper,5 WSymfony\Component\DependencyInjection54 iSymfony\Component\DependencyInjection\Compiler3 n2 nglobal   n  pI!RE,^6fL/W-



f
J
 					g	A	Y0
uN*nQ)]3
a4$W5pY@yY7          y i{globalx 7i{PDepend\Util\Coveragew 1i{PDepend\Util\Cachev =i{PDepend\Source\Tokenizeru 9i{PDepend\Source\Builder t ?i{PDepend\Source\ASTVisitor)s Qi{PDepend\Source\AST\ASTArtifactListr 1i{PDepend\Source\ASTq )i{PDepend\Reportp i{PDepend0o _i{PDepend\Metrics\Analyzer\CodeRankAnalyzern +i{PDepend\Metricsm 'i{PDepend\Inputl hglobalk mTracy7j m}Symfony\Component\ExpressionLanguage\ParserCache+i U}Symfony\Component\ExpressionLanguageh =}Nella\MonologTracy\Tracyg 1}Nella\MonologTracyf =XNella\MonologTracyBundle3e eXNella\MonologTracyBundle\DependencyInjectiond '0FluidXml\Corec !Owl\Traitsb Owl\Httpa )Owl\DataMapper&` KJulianPitt\DBManager\Interfaces_ +fproject\common^ global*] SSymfony\Component\Finder\Expression)\ QSymfony\Component\Finder\Exception'[ MSymfony\Component\Finder\Adapter&Z KHSymfony\Component\Console\Style'Y MHSymfony\Component\Console\Output&X KHSymfony\Component\Console\Input'W MHSymfony\Component\Console\Helper*V SHSymfony\Component\Console\Formatter+U UHSymfony\Component\Console\Descriptor T ?Illuminate\Support\Traits%S IIlluminate\Database\Migrations#R EIlluminate\Database\Eloquent%Q IIlluminate\Database\ConnectorsP 3Illuminate\Database O ?IIlluminate\Contracts\View&N KIIlluminate\Contracts\Validation#M EIIlluminate\Contracts\Support#L EIIlluminate\Contracts\Routing!K AIIlluminate\Contracts\Redis!J AIIlluminate\Contracts\Queue$I GIIlluminate\Contracts\Pipeline&H KIIlluminate\Contracts\Pagination G ?IIlluminate\Contracts\Mail#F EIIlluminate\Contracts\Logging E ?IIlluminate\Contracts\Http#D EIIlluminate\Contracts\Hashing&C KIIlluminate\Contracts\Foundation&B KIIlluminate\Contracts\Filesystem"A CIIlluminate\Contracts\Events&@ KIIlluminate\Contracts\Encryption!? AIIlluminate\Contracts\Debug"> CIIlluminate\Contracts\Cookie%= IIIlluminate\Contracts\Container#< EIIlluminate\Contracts\Console"; CIIlluminate\Contracts\Config!: AIIlluminate\Contracts\Cache9 =IIlluminate\Contracts\Bus(8 OIIlluminate\Contracts\Broadcasting 7 ?IIlluminate\Contracts\Auth'6 MIIlluminate\Contracts\Auth\Access5 1Illuminate\Console4 9HipsterJazzbo\Landlord(3 OHipsterJazzbo\Landlord\Exceptions&2 KCSymfony\Component\Console\Style'1 MCSymfony\Component\Console\Output&0 KCSymfony\Component\Console\Input'/ MCSymfony\Component\Console\Helper*. SCSymfony\Component\Console\Formatter*- SCSymfony\Component\Console\Exception+, UCSymfony\Component\Console\Descriptor+ +{Simplified\View* 5xSimplified\Validator) +iSimplified\Core( 3bSimplified\Database' -_Simplified\Cache2& cRJMS\Serializer\Tests\Fixtures\Discriminator% )RJMS\Serializer$ 7RJMS\Serializer\Naming# 9RJMS\Serializer\Handler" =RJMS\Serializer\Exclusion! =RJMS\Serializer\Exception%  IRJMS\Serializer\EventDispatcher" CRJMS\Serializer\Construction 9RJMS\Serializer\Builder 'Cocur\Slugify Aws\S3 )Aws\Api\Parser 3Aws\Api\ErrorParser 'Aws\Signature %Aws\DynamoDb +Aws\Credentials
 Aws, WPhpGitHooks\Infrastructure\PhpCsFixer% IPhpGitHooks\Infrastructure\Git- YPhpGitHooks\Infrastructure\Disk\Config( OPhpGitHooks\Infrastructure\Common 3PhpGitHooks\Command% IPhpGitHooks\Application\Config$ Gr5Symfony\Component\Translation+ Ur5Symfony\Component\Translation\Loader. [r5Symfony\Component\Translation\Extractor. [r5Symfony\Component\Translation\Exception   o  iT9~n>.o_H*U-lK"




]
;
						^	9	N|DvCW#^<\3sM*lF                      h ?~-Illuminate\Contracts\View&g K~-Illuminate\Contracts\Validation#f E~-Illuminate\Contracts\Support#e E~-Illuminate\Contracts\Routing!d A~-Illuminate\Contracts\Redis!c A~-Illuminate\Contracts\Queue$b G~-Illuminate\Contracts\Pipeline&a K~-Illuminate\Contracts\Pagination ` ?~-Illuminate\Contracts\Mail#_ E~-Illuminate\Contracts\Logging ^ ?~-Illuminate\Contracts\Http#] E~-Illuminate\Contracts\Hashing&\ K~-Illuminate\Contracts\Foundation&[ K~-Illuminate\Contracts\Filesystem"Z C~-Illuminate\Contracts\Events&Y K~-Illuminate\Contracts\Encryption!X A~-Illuminate\Contracts\Debug"W C~-Illuminate\Contracts\Cookie%V I~-Illuminate\Contracts\Container#U E~-Illuminate\Contracts\Console"T C~-Illuminate\Contracts\Config!S A~-Illuminate\Contracts\CacheR =~-Illuminate\Contracts\Bus(Q O~-Illuminate\Contracts\Broadcasting P ?~-Illuminate\Contracts\Auth'O M~-Illuminate\Contracts\Auth\Access N ?~-Illuminate\Auth\Passwords'M M{zSymfony\Component\PropertyAccess1L a{zSymfony\Component\PropertyAccess\Exception(K OzSymfony\Component\OptionsResolver2J czSymfony\Component\OptionsResolver\Exception,I WzsSymfony\Component\Intl\ResourceBundle'H MzsSymfony\Component\Intl\Exception0G _zsSymfony\Component\Intl\Data\Bundle\Writer0F _zsSymfony\Component\Intl\Data\Bundle\Reader2E czsSymfony\Component\Intl\Data\Bundle\Compiler,D WySymfony\Component\Form\Tests\Fixtures"C CySymfony\Component\Form\TestBB ySymfony\Component\Form\Extension\Validator\ViolationMapper5A iySymfony\Component\Form\Extension\DataCollector9@ qySymfony\Component\Form\Extension\Csrf\CsrfProvider7? mySymfony\Component\Form\Extension\Core\ChoiceList'> MySymfony\Component\Form\Exception/= ]ySymfony\Component\Form\ChoiceList\Loader0< _ySymfony\Component\Form\ChoiceList\Factory(; OySymfony\Component\Form\ChoiceList: 9ySymfony\Component\Form9 #xCodeception8 +qGuzzleHttp\Psr7 7 ?qdFacebook\WebDriver\Remote6 1qdFacebook\WebDriver"5 CqdFacebook\WebDriver\Internal,4 WqdFacebook\WebDriver\Interactions\Touch3 -pShire\_generated2 +pJazz\_generated1 ;pJazz\Pianist\_generated0 !p_generated/ ;pCodeception\Util\Shared". CpCodeception\TestCase\Shared- =pCodeception\Test\Feature$, GpCodeception\Subscriber\Shared'+ MpCodeception\Lib\Generator\Shared'* MpCodeception\Lib\Connector\Shared#) EpCodeception\Lib\Actor\Shared!( ApCodeception\Command\Shared&' KpCodeception\TestCase\Interfaces& ;pCodeception\Test\Loader"% CpCodeception\Test\Interfaces$ 3pCodeception\PHPUnit!# ApCodeception\Lib\Interfaces" #pCodeception! pglobal3  epEDI\Test\UnitTest\Definition\Resolver\Fixture% IpEDI\Test\IntegrationTest\Issues' MpEDI\Test\IntegrationTest\Fixtures, WpEDI\Test\IntegrationTest\ErrorMessages	 pEDI !pEDI\Factory 5pEDI\Definition\Source 9pEDI\Definition\Resolver 5pEDI\Definition\Helper 5pEDI\Definition\Dumper 'pEDI\Definition oglobal oHamcrest 1nZend\View\Resolver 1nZend\View\Renderer +nZend\View\Model" CnZend\View\Helper\Navigation -nZend\View\Helper 3nZend\View\Exception lKglobal- YlKSatooshi\Bundle\CoverallsBundle\Entity kglobal&
 KklZend\ServiceManager\Initializer"	 CklZend\ServiceManager\Factory$ GklZend\ServiceManager\Exception 3klZend\ServiceManager i{Trait -i{org\pdepend\code /i{Project\Component #i{Just\A\Test ;i{Report\Dependencies\Xml i{C  i{B i{A~ i{system} ;i{ClassDependencyAnalyzer
| i{foo{ i{
z i{baz   [  mH'cJ*tQ!~b?N-



u
(				a	0		qHf<c-h8 b)c%a1U+                                                      5C iSymfony\Component\Form\Extension\DataCollector'B MSymfony\Component\Form\Exception/A ]Symfony\Component\Form\ChoiceList\Loader0@ _Symfony\Component\Form\ChoiceList\Factory(? OSymfony\Component\Form\ChoiceList> 9Symfony\Component\Form)= QSymfony\Component\Finder\Exception-< YSymfony\Component\Filesystem\Exception7; mSymfony\Component\ExpressionLanguage\ParserCache+: USymfony\Component\ExpressionLanguage(9 OSymfony\Component\EventDispatcher.8 [Symfony\Component\EventDispatcher\Debug;7 uSymfony\Component\DependencyInjection\Tests\Compiler96 qSymfony\Component\DependencyInjection\ParameterBag@5 Symfony\Component\DependencyInjection\LazyProxy\PhpDumperD4 Symfony\Component\DependencyInjection\LazyProxy\Instantiator63 kSymfony\Component\DependencyInjection\Extension62 kSymfony\Component\DependencyInjection\Exception31 eSymfony\Component\DependencyInjection\Dumper,0 WSymfony\Component\DependencyInjection5/ iSymfony\Component\DependencyInjection\Compiler-. YSymfony\Component\Debug\Tests\Fixtures0- _Symfony\Component\Debug\FatalErrorHandler*, SSymfony\Component\CssSelector\XPath4+ gSymfony\Component\CssSelector\XPath\Extension+* USymfony\Component\CssSelector\Parser3) eSymfony\Component\CssSelector\Parser\Handler)( QSymfony\Component\CssSelector\Node.' [Symfony\Component\CssSelector\Exception&& KSymfony\Component\Console\Style'% MSymfony\Component\Console\Output&$ KSymfony\Component\Console\Input'# MSymfony\Component\Console\Helper*" SSymfony\Component\Console\Formatter*! SSymfony\Component\Console\Exception+  USymfony\Component\Console\Descriptor, WSymfony\Component\Config\Tests\Loader( OSymfony\Component\Config\Resource& KSymfony\Component\Config\Loader* SSymfony\Component\Config\Definition2 cSymfony\Component\Config\Definition\Builder =Symfony\Component\Config
 Foo ClassMap 1ClassesWithParents. [Symfony\Component\Asset\VersionStrategy ;Symfony\Component\Asset( OSymfony\Component\Asset\Exception& KSymfony\Component\Asset\ContextO Symfony\Bundle\SecurityBundle\DependencyInjection\Security\UserProviderJ Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory0 _Symfony\Bundle\FrameworkBundle\Templating1 aSymfony\Bundle\FrameworkBundle\CacheWarmer =Symfony\Bridge\Twig\Form, WSymfony\Bridge\Doctrine\Security\User ;Symfony\Bridge\Doctrine. [Symfony\Bridge\Doctrine\Form\ChoiceList!
 AIntervention\Image\Filters	 -Dotenv\Exception' MSymfony\Component\VarDumper\Test) QSymfony\Component\VarDumper\Dumper) QSymfony\Component\VarDumper\Cloner  ?~-Illuminate\Support\Traits 1~-Illuminate\Routing -~-Illuminate\Queue 7~-Illuminate\Pagination +~-Illuminate\Http'  M~-Illuminate\Foundation\Validation$ G~-Illuminate\Foundation\Testing-~ Y~-Illuminate\Foundation\Testing\Concerns } ?~-Illuminate\Foundation\Bus!| A~-Illuminate\Foundation\Auth({ O~-Illuminate\Foundation\Auth\Accessz 1~-Illuminate\Consoley -~-Illuminate\Cachex )~-Illuminate\Busw +~-Illuminate\Authv 9~-Illuminate\Auth\Accessu +~-Illuminate\Viewt ;~-Illuminate\View\Engines s ?~-Illuminate\View\Compilersr 7~-Illuminate\Validationq 9~-Illuminate\Translationp 1~-Illuminate\Session"o C~-Illuminate\Routing\Matchingn ;~-Illuminate\Queue\Failed"m C~-Illuminate\Queue\Connectors%l I~-Illuminate\Database\Migrations#k E~-Illuminate\Database\Eloquent%j I~-Illuminate\Database\Connectorsi 3~-Illuminate\Database   O  g/_%b.yO [,



V
"				v	B	IJ{M$\3^.l<o>c7                                                   + USymfony\Component\Translation\Dumper. [Symfony\Component\Translation\Catalogue) QSymfony\Component\Templating\Tests* SSymfony\Component\Templating\Loader* SSymfony\Component\Templating\Helper# ESymfony\Component\Templating2 cSymfony\Component\Serializer\Tests\Fixtures# ESymfony\Component\Serializer.
 [Symfony\Component\Serializer\Normalizer1	 aSymfony\Component\Serializer\NameConverter2 cSymfony\Component\Serializer\Mapping\Loader3 eSymfony\Component\Serializer\Mapping\Factory+ USymfony\Component\Serializer\Mapping- YSymfony\Component\Serializer\Exception+ USymfony\Component\Serializer\Encoder, WSymfony\Component\Security\Http\Tests. [Symfony\Component\Security\Http\Session1 aSymfony\Component\Security\Http\RememberMe-  YSymfony\Component\Security\Http\Logout/ ]Symfony\Component\Security\Http\Firewall1~ aSymfony\Component\Security\Http\EntryPoint4} gSymfony\Component\Security\Http\Authorization5| iSymfony\Component\Security\Http\Authentication&{ KSymfony\Component\Security\Http-z YSymfony\Component\Security\Guard\Token'y MSymfony\Component\Security\Guard3x eSymfony\Component\Security\Csrf\TokenStorage5w iSymfony\Component\Security\Csrf\TokenGenerator&v KSymfony\Component\Security\Csrf+u USymfony\Component\Security\Core\User+t USymfony\Component\Security\Core\Role0s _Symfony\Component\Security\Core\Exception.r [Symfony\Component\Security\Core\Encoder:q sSymfony\Component\Security\Core\Authorization\Voter4p gSymfony\Component\Security\Core\Authorization;o uSymfony\Component\Security\Core\Authentication\TokenDn Symfony\Component\Security\Core\Authentication\Token\Storage@m Symfony\Component\Security\Core\Authentication\RememberMe>l {Symfony\Component\Security\Core\Authentication\Provider5k iSymfony\Component\Security\Core\Authentication j ?Symfony\Component\Routing(i OSymfony\Component\Routing\Matcher/h ]Symfony\Component\Routing\Matcher\Dumper1g aSymfony\Component\Routing\Generator\Dumper*f SSymfony\Component\Routing\Generator*e SSymfony\Component\Routing\Exception%d ISymfony\Component\PropertyInfo'c MSymfony\Component\PropertyAccess1b aSymfony\Component\PropertyAccess\Exception&a KSymfony\Component\Process\Pipes*` SSymfony\Component\Process\Exception(_ OSymfony\Component\OptionsResolver2^ cSymfony\Component\OptionsResolver\Exception] 9Symfony\Component\Ldap,\ WSymfony\Component\Intl\ResourceBundle'[ MSymfony\Component\Intl\Exception0Z _Symfony\Component\Intl\Data\Bundle\Writer0Y _Symfony\Component\Intl\Data\Bundle\Reader2X cSymfony\Component\Intl\Data\Bundle\Compiler,W WSymfony\Component\HttpKernel\Profiler'V MSymfony\Component\HttpKernel\Log#U ESymfony\Component\HttpKernel-T YSymfony\Component\HttpKernel\HttpCache,S WSymfony\Component\HttpKernel\Fragment-R YSymfony\Component\HttpKernel\Exception1Q aSymfony\Component\HttpKernel\DataCollector.P [Symfony\Component\HttpKernel\Controller/O ]Symfony\Component\HttpKernel\CacheWarmer0N _Symfony\Component\HttpKernel\CacheClearer*M SSymfony\Component\HttpKernel\Bundle7L mSymfony\Component\HttpFoundation\Session\Storage/K ]Symfony\Component\HttpFoundation\Session5J iSymfony\Component\HttpFoundation\Session\Flash9I qSymfony\Component\HttpFoundation\Session\Attribute'H MSymfony\Component\HttpFoundation5G iSymfony\Component\HttpFoundation\File\MimeType,F WSymfony\Component\Form\Tests\Fixtures"E CSymfony\Component\Form\TestBD Symfony\Component\Form\Extension\Validator\ViolationMapper   u pI$h3b3rh>% vW3



o
Y
;
					`	>	~J!z\1lO7'{mQ:%iJ"sT/kTJ?2"cSC3                5Symfony\CS\Tokenizer !Symfony\CS global zglobal Vglobal 3MobileDetect\Result. [MobileDetect\Repository\OperatingSystem%  IMobileDetect\Repository\Device& KMobileDetect\Repository\Browser~ 9MobileDetect\Exception} global
| N\S{ Nz y 'Tester\Runnerx 1Nette\Localizationw #Nette\Utilsv +]Nette\DI\Configu 7Illuminate\Validationt 9oIlluminate\Translations -cIlluminate\Queuer ;cIlluminate\Queue\Failed"q CcIlluminate\Queue\Connectorsp 7Illuminate\Paginationo 1Illuminate\Consolen )SIlluminate\Busm +Illuminate\Authl 9Illuminate\Auth\Access k ?Illuminate\Auth\Passwordsj 7Laravel\Lumen\Testing%i ILaravel\Lumen\Testing\Concernsh 7Laravel\Lumen\Routingg 9Laravel\Lumen\Concernsf 1Laravel\Lumen\Authe /kphpmock\functionsd kphpmockc +Uphpmock\phpunitb globala %Diff\Patcher` #Diff\DiffOp_ #Diff\Differ^ 'Diff\Comparer] 1Diff\ArrayComparer\ Diff[ Gglobal Z ?xLeague\OAuth2\Client\Tool$Y GxLeague\OAuth2\Client\Provider%X InLeague\OAuth1\Client\Signature'W MnLeague\OAuth1\Client\CredentialsV Aws\S3U )Aws\Api\ParserT 3Aws\Api\ErrorParserS 'Aws\SignatureR %Aws\DynamoDbQ +Aws\Credentials
P AwsO 9bDoctrine\DBAL\Sharding)N QbDoctrine\DBAL\Sharding\ShardChoser#M EbDoctrine\DBAL\Schema\Visitor(L ObDoctrine\DBAL\Schema\SynchronizerK 5bDoctrine\DBAL\SchemaJ 7bDoctrine\DBAL\LoggingI 'bDoctrine\DBALH 5bDoctrine\DBAL\DriverG global!F ADoctrine\Common\ReflectionE 7Doctrine\Common\Proxy&D KDoctrine\Common\Proxy\Exception1C aDoctrine\Common\Persistence\Mapping\Driver*B SDoctrine\Common\Persistence\Mapping"A CDoctrine\Common\Persistence@ +Doctrine\Common+? UDoctrine\Tests\Models\DDC2372\Traits$> GDoctrine\Tests\Models\DDC1872= =Doctrine\Tests\ORM\Tools+< UDoctrine\Tests\ORM\Functional\Ticket; ;Doctrine\ORM\Repository: 1Doctrine\ORM\Query9 1Doctrine\ORM\Proxy%8 IDoctrine\ORM\Persisters\Entity)7 QDoctrine\ORM\Persisters\Collection6 5Doctrine\ORM\Mapping5 %Doctrine\ORM*4 SDoctrine\ORM\Cache\Persister\Entity.3 [Doctrine\ORM\Cache\Persister\Collection#2 EDoctrine\ORM\Cache\Persister!1 ADoctrine\ORM\Cache\Logging0 1Doctrine\ORM\Cache!/ A|Doctrine\Common\Reflection. 7|Doctrine\Common\Proxy&- K|Doctrine\Common\Proxy\Exception1, a|Doctrine\Common\Persistence\Mapping\Driver*+ S|Doctrine\Common\Persistence\Mapping"* C|Doctrine\Common\Persistence) +|Doctrine\Common'( MSymfony\Component\VarDumper\Test' & global,% WSymfony\Bundle\FrameworkBundle\Kernel'$ MSymfony\Component\Yaml\Exception)# QSymfony\Component\VarDumper\Dumper)" QSymfony\Component\VarDumper\Cloner,! WSymfony\Component\Validator\Violation,  WSymfony\Component\Validator\Validator7 mSymfony\Component\Validator\Tests\Mapping\Loader1 aSymfony\Component\Validator\Tests\Fixtures1 aSymfony\Component\Validator\Mapping\Loader2 cSymfony\Component\Validator\Mapping\Factory* SSymfony\Component\Validator\Mapping0 _Symfony\Component\Validator\Mapping\Cache, WSymfony\Component\Validator\Exception* SSymfony\Component\Validator\Context" CSymfony\Component\Validator$ GSymfony\Component\Translation+ USymfony\Component\Translation\Loader. [Symfony\Component\Translation\Extractor. [Symfony\Component\Translation\Exception   q hC#nT2Y>i>hA




z
e
P
F
/
					q	J	-	|a<vS0lI(
sSIU+{^5gI$tI!                         x 5Zend\Code\Reflection%w IZend\Code\Reflection\Exception(v OZend\Code\Reflection\DocBlock\Tag"u CZend\Code\Generic\Prototypet 3Zend\Code\Generator$s GZend\Code\Generator\Exception'r MZend\Code\Generator\DocBlock\Tagq 3Zend\Code\Exception"p CZend\Code\Annotation\Parsero 5Zend\Code\Annotationn 9Zend\Captcha\Exceptionm %Zend\Captcha l ?Zend\Cache\Storage\Plugink 1Zend\Cache\Storagej 1Zend\Cache\Patterni 5Zend\Cache\Exceptionh 7Zend\Barcode\Renderer&g KZend\Barcode\Renderer\Exceptionf 3Zend\Barcode\Object$e GZend\Barcode\Object\Exceptiond 9Zend\Barcode\Exception"c CZend\Authentication\Storage$b GZend\Authentication\Exceptiona 3Zend\Authentication'` MZend\Authentication\Adapter\Http1_ aZend\Authentication\Adapter\Http\Exception,^ WZend\Authentication\Adapter\Exception4] gZend\Authentication\Adapter\DbTable\Exception"\ CZend\Authentication\Adapter2[ cmageekguy\atoum\tests\units\factory\builderZ Y 9mageekguy\atoum\writer X ?mageekguy\atoum\test\data&W Kmageekguy\atoum\scripts\treemap%V Imageekguy\atoum\report\writers U ?mageekguy\atoum\observersT 5mageekguy\atoum\mockS ;mageekguy\atoum\factory R ?mageekguy\atoum\extensionQ +mageekguy\atoumP =mageekguy\atoum\asserterO ;mageekguy\atoum\adapter&N KҰZendDiagnostics\Runner\ReporterM 9ҰZendDiagnostics\ResultL 7ҰZendDiagnostics\Check K ?ЦZend\Text\Table\Exception J ?ЦZend\Text\Table\Decorator!I AЦZend\Text\Figlet\ExceptionH 3ЦZend\Text\Exception#G EZend\File\Transfer\ExceptionF 3Zend\File\ExceptionE 9Zend\EventManager\TestD =Zend\EventManager\Filter"C CZend\EventManager\ExceptionB /Zend\EventManagerA /Zend\Code\Scanner@ 5Zend\Code\Reflection%? IZend\Code\Reflection\Exception(> OZend\Code\Reflection\DocBlock\Tag"= CZend\Code\Generic\Prototype< 3Zend\Code\Generator$; GZend\Code\Generator\Exception': MZend\Code\Generator\DocBlock\Tag9 3Zend\Code\Exception"8 CZend\Code\Annotation\Parser7 5Zend\Code\Annotation6 1Hoa\Core\Parameter5 )Hoa\Core\Event4 'Hoa\Core\Data3 2 #Hoa\Zformat1 #Hoa\Visitor"0 CΥHoa\Stream\Wrapper\IWrapper/ 1ΥHoa\Stream\IStream. 9yHoa\Iterator\Recursive- %yHoa\Iterator, cHoa\Event+ ^* global ) ?ˈIvory\HttpAdapter\Message$( GˈIvory\HttpAdapter\Event\Timer)' QˈIvory\HttpAdapter\Event\StatusCode-& YˈIvory\HttpAdapter\Event\Retry\Strategy$% GˈIvory\HttpAdapter\Event\Retry'$ MˈIvory\HttpAdapter\Event\Redirect&# KˈIvory\HttpAdapter\Event\History(" OˈIvory\HttpAdapter\Event\Formatter)! QˈIvory\HttpAdapter\Event\Cookie\Jar%  IˈIvory\HttpAdapter\Event\Cookie$ GˈIvory\HttpAdapter\Event\Cache, WˈIvory\HttpAdapter\Event\Cache\Adapter( OˈIvory\HttpAdapter\Event\BasicAuth /ˈIvory\HttpAdapter& KSymfony\Component\Process\Pipes* SSymfony\Component\Process\Exception* SSymfony\Component\Finder\Expression) QSymfony\Component\Finder\Exception' MSymfony\Component\Finder\Adapter = Way\Generators\Compilers -DebugBar\Storage DebugBar 9DebugBar\DataFormatter 9DebugBar\DataCollector% IgLaracasts\Utilities\JavaScript 5Eluceo\iCal\Property 3Dimsav\Translatable 9Cartalyst\Sentry\Users" CCartalyst\Sentry\Throttling  ?Cartalyst\Sentry\Sessions =Cartalyst\Sentry\Hashing
 ;Cartalyst\Sentry\Groups	 =Cartalyst\Sentry\Cookies global   w oQ3rK.}]5hC(jU7





n
N
3
					_	?		{a>!y\:rM/lHkY=jDlE(b<                                  !o AZend\ModuleManager\Feature#n EZend\ModuleManager\Exceptionm 3Zend\Mime\Exceptionl 7Zend\Memory\Exceptionk 7Zend\Memory\Containerj 3Zend\Math\Exception%i IZend\Math\BigInteger\Exception#h EZend\Math\BigInteger\Adapterg 3Zend\Mail\Transport$f GZend\Mail\Transport\Exception!e AZend\Mail\Storage\Writabled 9Zend\Mail\Storage\Part'c MZend\Mail\Storage\Part\Exception b ?Zend\Mail\Storage\Messagea =Zend\Mail\Storage\Folder"` CZend\Mail\Storage\Exception#_ EZend\Mail\Protocol\Exception^ -Zend\Mail\Header!] AZend\Mail\Header\Exception\ 3Zend\Mail\Exception[ /Zend\Mail\AddressZ +Zend\Log\WriterY ;Zend\Log\Writer\FirePhp X ?Zend\Log\Writer\ChromePhpW 1Zend\Log\ProcessorV Zend\LogU 1Zend\Log\FormatterT +Zend\Log\FilterS 1Zend\Log\ExceptionR #Zend\LoaderQ 7Zend\Loader\Exception(P OZend\Ldap\Node\Schema\ObjectClass*O SZend\Ldap\Node\Schema\AttributeType!N AZend\Ldap\Filter\ExceptionM 3Zend\Ldap\Exception$L GZend\Ldap\Converter\Exception!K AZend\Json\Server\ExceptionJ 3Zend\Json\Exception!I AZend\InputFilter\ExceptionH -Zend\InputFilterG 5Zend\I18n\Translator"F CZend\I18n\Translator\LoaderE 3Zend\I18n\ExceptionD -Zend\Http\Header!C AZend\Http\Header\ExceptionB 3Zend\Http\Exception!A AZend\Http\Client\Exception)@ QZend\Http\Client\Adapter\Exception? =Zend\Http\Client\Adapter> 3Zend\Form\Exception= Zend\Form< #Zend\Filter; 7Zend\Filter\Exception: 3Zend\Filter\Encrypt9 5Zend\Filter\Compress#8 EZend\File\Transfer\Exception7 3Zend\File\Exception 6 ?Zend\Feed\Writer\Renderer5 -Zend\Feed\Writer!4 AZend\Feed\Writer\Extension!3 AZend\Feed\Writer\Exception2 7Zend\Feed\Reader\Http1 7Zend\Feed\Reader\Feed0 -Zend\Feed\Reader!/ AZend\Feed\Reader\Exception. 9Zend\Feed\Reader\Entry#- EZend\Feed\PubSubHubbub\Model', MZend\Feed\PubSubHubbub\Exception+ 9Zend\Feed\PubSubHubbub* 3Zend\Feed\Exception) =Zend\EventManager\Filter"( CZend\EventManager\Exception' /Zend\EventManager& 9Zend\Escaper\Exception% 1Zend\Dom\Exception$ /Zend\Di\Exception# Zend\Di" 1Zend\Di\Definition! 5Zend\Db\TableGateway%  IZend\Db\TableGateway\Exception 7Zend\Db\Sql\Predicate 5Zend\Db\Sql\Platform #Zend\Db\Sql 7Zend\Db\Sql\Exception +Zend\Db\Sql\Ddl! AZend\Db\Sql\Ddl\Constraint 9Zend\Db\Sql\Ddl\Column 1Zend\Db\RowGateway# EZend\Db\RowGateway\Exception /Zend\Db\ResultSet" CZend\Db\ResultSet\Exception -Zend\Db\Metadata /Zend\Db\Exception =Zend\Db\Adapter\Profiler =Zend\Db\Adapter\Platform  ?Zend\Db\Adapter\Exception. [Zend\Db\Adapter\Driver\Sqlsrv\Exception% IZend\Db\Adapter\Driver\Feature 9Zend\Db\Adapter\Driver +Zend\Db\Adapter 5Zend\Crypt\Symmetric#
 EZend\Crypt\Symmetric\Padding%	 IZend\Crypt\Symmetric\Exception) QZend\Crypt\PublicKey\Rsa\Exception 3Zend\Crypt\Password$ GZend\Crypt\Password\Exception* SZend\Crypt\Key\Derivation\Exception 5Zend\Crypt\Exception  ?Zend\Console\RouteMatcher 3Zend\Console\Prompt 9Zend\Console\Exception  %Zend\Console 5Zend\Console\Charset~ 5Zend\Console\Adapter} 1Zend\Config\Writer| 1Zend\Config\Reader{ 7Zend\Config\Processorz 7Zend\Config\Exceptiony /Zend\Code\Scanner   o ~Z>_5f?cB
}`@*



{
O
:
					l	;	}aO2zX5 pJ+gP3uO@%jAJN                                            9^ qSymfony\Component\DependencyInjection\ParameterBag@] Symfony\Component\DependencyInjection\LazyProxy\PhpDumperD\ Symfony\Component\DependencyInjection\LazyProxy\Instantiator6[ kSymfony\Component\DependencyInjection\Extension6Z kSymfony\Component\DependencyInjection\Exception3Y eSymfony\Component\DependencyInjection\Dumper,X WSymfony\Component\DependencyInjection5W iSymfony\Component\DependencyInjection\Compiler,V WySymfony\Component\Config\Tests\Loader(U OySymfony\Component\Config\Resource&T KySymfony\Component\Config\Loader*S SySymfony\Component\Config\Definition2R cySymfony\Component\Config\Definition\BuilderQ =ySymfony\Component\ConfigP =ƩSymfony\Bridge\Twig\FormO #Silex\RouteN /Silex\ApplicationM Silex#L EJakubOnderka\PhpParallelLintK globalJ =%Ramsey\Uuid\Console\UtilI # Ramsey\UuidH 5 Ramsey\Uuid\ProviderG 7 Ramsey\Uuid\GeneratorF 7 Ramsey\Uuid\ConverterE / Ramsey\Uuid\CodecD 3 Ramsey\Uuid\BuilderC 'KMtHaml\TargetB 1KMtHaml\NodeVisitorA #KMtHaml\Node@ 1KMtHaml\Indentation? 'KMtHaml\Filter> /Zend\Stdlib\Guard#= EZend\XmlRpc\Server\Exception< 7Zend\XmlRpc\Generator; 7Zend\XmlRpc\Exception#: EZend\XmlRpc\Client\Exception9 1Zend\View\Resolver8 1Zend\View\Renderer7 +Zend\View\Model"6 CZend\View\Helper\Navigation5 -Zend\View\Helper4 3Zend\View\Exception3 )Zend\Validator 2 ?Zend\Validator\Translator1 =Zend\Validator\Exception0 9Zend\Validator\Barcode/ Zend\Uri. 1Zend\Uri\Exception - ?Zend\Text\Table\Exception , ?Zend\Text\Table\Decorator!+ AZend\Text\Figlet\Exception* 3Zend\Text\Exception) Zend\Tag( 1Zend\Tag\Exception)' QZend\Tag\Cloud\Decorator\Exception& =Zend\Tag\Cloud\Decorator % ?Zend\Stdlib\StringWrapper#$ EZend\Stdlib\JsonSerializable$# GZend\Stdlib\Hydrator\Strategy." [Zend\Stdlib\Hydrator\Strategy\Exception*! SZend\Stdlib\Hydrator\NamingStrategy  5Zend\Stdlib\Hydrator" CZend\Stdlib\Hydrator\Filter 7Zend\Stdlib\Extractor 7Zend\Stdlib\Exception 9Zend\Stdlib\ArrayUtils #Zend\Stdlib) QZend\Soap\Wsdl\ComplexTypeStrategy 3Zend\Soap\Exception/ ]Zend\Soap\AutoDiscover\DiscoveryStrategy 9Zend\Session\Validator 5Zend\Session\Storage =Zend\Session\SaveHandler %Zend\Session 9Zend\Session\Exception 3Zend\Session\Config$ GZend\ServiceManager\Exception 3Zend\ServiceManager' MZend\Server\Reflection\Exception 7Zend\Server\Exception #Zend\Server  ?Zend\Serializer\Exception ;Zend\Serializer\Adapter
 ;Zend\ProgressBar\Upload!	 AZend\ProgressBar\Exception) QZend\ProgressBar\Adapter\Exception& KZend\Permissions\Rbac\Exception 7Zend\Permissions\Rbac  ?Zend\Permissions\Acl\Role$ GZend\Permissions\Acl\Resource% IZend\Permissions\Acl\Exception% IZend\Permissions\Acl\Assertion 5Zend\Permissions\Acl$  GZend\Paginator\ScrollingStyle =Zend\Paginator\Exception~ )Zend\Paginator'} MZend\Paginator\Adapter\Exception| 9Zend\Paginator\Adapter { ?Zend\Navigation\Exceptionz +Zend\Mvc\Routery 5Zend\Mvc\Router\Http x ?Zend\Mvc\Router\Exceptionw ;Zend\Mvc\Router\Consolev ;Zend\Mvc\ResponseSenderu 1Zend\Mvc\Exception!t AZend\Mvc\Controller\Plugins Zend\Mvcr 1Zend\ModuleManager,q WZend\ModuleManager\Listener\Exception"p CZend\ModuleManager\Listener   h  tC^4sV4|cF%S'



_
M
=
				z	B	j@Y1NP"dG
r\A#d;vQ0            F +]Jazz\_generatedE ;]Jazz\Pianist\_generatedD !]_generatedC ;]Codeception\Util\Shared"B C]Codeception\TestCase\Shared$A G]Codeception\Subscriber\Shared'@ M]Codeception\Lib\Generator\Shared'? M]Codeception\Lib\Connector\Shared#> E]Codeception\Lib\Actor\Shared!= A]Codeception\Command\Shared&< K]Codeception\TestCase\Interfaces; 3]Codeception\PHPUnit!: A]Codeception\Lib\Interfaces9 ]global8 !Nette\Mail7 !Nette\Http6 5Nette\ComponentModel%5 INette\Bridges\ApplicationLatte4 5Nette\Application\UI3 /Nette\Application2 % Kdyby\Events1 + Doctrine\Common0 Tracy/ 9Nette\Caching\Storages. 'Nette\Caching%- IfApiGen\Parser\Reflection\Parts, fProject:+ sfApiGen\Parser\Tests\ParserStorageImplementersSource* 3fApiGen\Utils\Finder/) ]fApiGen\Parser\Reflection\TokenReflection-( YfApiGen\Generator\SourceCodeHighlighter' =fApiGen\Generator\Markups& -fApiGen\Contracts% 9fApiGen\Contracts\Theme+$ UfApiGen\Contracts\Theme\Configuration2# cfApiGen\Contracts\Templating\TemplateFactory+" UfApiGen\Contracts\Templating\Template*! SfApiGen\Contracts\Templating\Routing9  qfApiGen\Contracts\Parser\Reflection\TokenReflection/ ]fApiGen\Contracts\Parser\Reflection\Magic4 gfApiGen\Contracts\Parser\Reflection\Extractors2 cfApiGen\Contracts\Parser\Reflection\Behavior) QfApiGen\Contracts\Parser\Reflection ;fApiGen\Contracts\Parser' MfApiGen\Contracts\Parser\Elements% IfApiGen\Contracts\Parser\Broker1 afApiGen\Contracts\Markup\PhpCodeHighlighter' MfApiGen\Contracts\Markup\Markdown4 gfApiGen\Contracts\Generator\TemplateGenerators+ UfApiGen\Contracts\Generator\Resolvers! AfApiGen\Contracts\Generator' MfApiGen\Contracts\EventDispatcher- YfApiGen\Contracts\EventDispatcher\Event" CfApiGen\Contracts\Console\IO% IfApiGen\Contracts\Console\Input& KfApiGen\Contracts\Console\Helper/ ]fApiGen\Contracts\Configuration\Validator5 ifApiGen\Contracts\Configuration\OptionsResolver0 _fApiGen\Contracts\Configuration\FileReader% IfApiGen\Contracts\Configuration!
 AfApiGen\Configuration\Theme#	 EfApiGen\Configuration\Readers 5fApiGen\Configuration global EasyMock* S{Symfony\Component\CssSelector\XPath4 g{Symfony\Component\CssSelector\XPath\Extension+ U{Symfony\Component\CssSelector\Parser3 e{Symfony\Component\CssSelector\Parser\Handler) Q{Symfony\Component\CssSelector\Node.  [{Symfony\Component\CssSelector\Exception 3Behat\Mink\Selector~ 1Behat\Mink\Element} /Behat\Mink\Driver!| AComposer\Semver\Constraint{ 
z Fooy ClassMapx ;Composer\Repository\Vcsw 3Composer\Repositoryv +Composer\Pluginu ;Composer\Package\Loader&t KComposer\Package\LinkConstraints -Composer\Package r ?Composer\Package\Archiverq #Composer\IOp 1Composer\Installero =Composer\EventDispatchern 3Composer\Downloader"m CComposer\DependencyResolver,l WComposer\DependencyResolver\Operationk +Composer\Config.j [IAsm89\Twig\CacheExtension\CacheStrategy i ?IAsm89\Twig\CacheExtension'h M5Symfony\Component\Yaml\Exception$g GSymfony\Component\Translation+f USymfony\Component\Translation\Loader.e [Symfony\Component\Translation\Extractor.d [Symfony\Component\Translation\Exception+c USymfony\Component\Translation\Dumper.b [Symfony\Component\Translation\Catalogue-a YSymfony\Component\Filesystem\Exception(` OQSymfony\Component\EventDispatcher._ [QSymfony\Component\EventDispatcher\Debug   } x[C0}^<kM1	t^L+	kC




l
N
/
							o	F	 gU/sZ@S9
c;vT6hE e=h?                       #C E$ZendDeveloperTools\Exception&B K$ZendDeveloperTools\EventLogging#A E$ZendDeveloperTools\Collector@ 3:Zend\Math\Exception%? I:Zend\Math\BigInteger\Exception#> E:Zend\Math\BigInteger\Adapter= 5Zend\Crypt\Symmetric#< EZend\Crypt\Symmetric\Padding%; IZend\Crypt\Symmetric\Exception): QZend\Crypt\PublicKey\Rsa\Exception9 3Zend\Crypt\Password$8 GZend\Crypt\Password\Exception*7 SZend\Crypt\Key\Derivation\Exception6 5Zend\Crypt\Exception"5 C"ZfcUser\Validator\Exception 4 ?"ZfcUser\Service\Exception3 +"ZfcUser\Options2 )"ZfcUser\Mapper1 ="ZfcUser\Mapper\Exception0 /"ZfcUser\Exception/ )"ZfcUser\Entity%. I"ZfcUser\Authentication\Adapter- 9#Zend\Session\Validator, 5#Zend\Session\Storage+ =#Zend\Session\SaveHandler* %#Zend\Session) 9#Zend\Session\Exception( 3#Zend\Session\Config ' ?Zend\Permissions\Acl\Role$& GZend\Permissions\Acl\Resource%% IZend\Permissions\Acl\Exception%$ IZend\Permissions\Acl\Assertion# 5Zend\Permissions\Acl$" GkoZend\ServiceManager\Exception! 3koZend\ServiceManager!  ADoctrineModule\Persistence ;Flyfinder\Specification, W	League\Tactician\Plugins\NamedCommand -	League\Tactician3 e	League\Tactician\Handler\MethodNameInflector' M	League\Tactician\Handler\Locator4 g	League\Tactician\Handler\CommandNameExtractor! A	League\Tactician\Exception 	global =Stash\Interfaces\Drivers -Stash\Interfaces +Stash\Exception ;Stash\Driver\FileSystem =phpDocumentor\Reflection /Desarrolla2\Cache  ?Desarrolla2\Cache\Adapter 7Elastica\QueryBuilder 1Elastica\Exception# EElastica\Connection\Strategy Elastica =*Elasticsearch\Namespaces  ?*Elasticsearch\Serializers
 ;*Elasticsearch\Endpoints 	 ?*Elasticsearch\Connections- Y*Elasticsearch\ConnectionPool\Selectors# E*Elasticsearch\ConnectionPool& K*Elasticsearch\Common\Exceptions +Hoa\Xyl\Element %Hoa\Xyl\Data 7Hoa\Xml\Element\Model +Hoa\Xml\Element Hoa\View  !Hoa\Router #Hoa\Realdom~ 5Hoa\Realdom\IRealdom} 7nHoa\Praspel\Exception| 5RHoa\Locale\Localizer){ QHoa\Console\Readline\Autocompleter2z cmageekguy\atoum\tests\units\factory\buildery x 9mageekguy\atoum\writer w ?mageekguy\atoum\test\data&v Kmageekguy\atoum\scripts\treemap%u Imageekguy\atoum\report\writers t ?mageekguy\atoum\observerss 5mageekguy\atoum\mockr ;mageekguy\atoum\factory q ?mageekguy\atoum\extensionp +mageekguy\atoumo =mageekguy\atoum\assertern ;mageekguy\atoum\adapterm rock\urll %rock\requestk #rock\eventsj +rock\componentsi % rock\helpersh  urock\baseg #rock\accessf rock\datee %1rock\sessiond rock\urlc %rock\requestb 1OAuth\OAuth2\Tokena 5OAuth\OAuth2\Service` 1OAuth\OAuth1\Token_ 9OAuth\OAuth1\Signature^ 5OAuth\OAuth1\Service] 1OAuth\Common\Token\ 5OAuth\Common\Storage[ 5OAuth\Common\ServiceZ 7OAuth\Common\Http\UriY =OAuth\Common\Http\ClientX 7OAuth\Common\ConsumerW jglobalV !mrock\imageU )rock\db\commonT +rock\componentsS 7Hrock\cache\versioningR !Hrock\cacheQ #rock\eventsP % rock\helpersO  trock\baseN )Lurker\TrackerM 3Lurker\StateCheckerL +Lurker\ResourceK -Lurker\ExceptionJ !_generatedI demoH +AspectMock\UtilG -]Shire\_generated   q  _8pU7b7oI)eK(




g
E
"					p	S	4	~Z9${Q*w\*a5xQ!mV?$e2U                4 +j
Laracasts\Flash@3 SFSensio\Bundle\FrameworkExtraBundle\Request\ParamConverter72 mSFSensio\Bundle\FrameworkExtraBundle\Configuration%1 IM(SensioLabs\Security\Formatters$0 GM(SensioLabs\Security\Exception"/ CM(SensioLabs\Security\Crawler,. WӟSymfony\Bundle\FrameworkBundle\Kernel0- _ӟSymfony\Bundle\FrameworkBundle\Templating1, aӟSymfony\Bundle\FrameworkBundle\CacheWarmer+ @Assetic* )@Assetic\Filter) 9@Assetic\Factory\Worker( =@Assetic\Factory\Resource' 9@Assetic\Factory\Loader& /@Assetic\Exception% '@Assetic\Cache$ '@Assetic\Asset-# Y@GWebmozart\KeyValueStore\Tests\Fixtures"" C@GWebmozart\KeyValueStore\Api! =global  -=dAura\Router\Rule2 c:ESymfony\Cmf\Component\Routing\NestedMatcher- Y:ESymfony\Cmf\Component\Routing\Enhancer$ G:ESymfony\Cmf\Component\Routing/ ]:ESymfony\Cmf\Component\Routing\Candidates !7pPhinx\Seed +7pPhinx\Migration -7pPhinx\Db\Adapter %7pPhinx\Config 5Zend\Tag 15Zend\Tag\Exception) Q5Zend\Tag\Cloud\Decorator\Exception =5Zend\Tag\Cloud\Decorator' M2Zend\Server\Reflection\Exception 72Zend\Server\Exception #2Zend\Server) Q3`Zend\Soap\Wsdl\ComplexTypeStrategy 33`Zend\Soap\Exception/ ]3`Zend\Soap\AutoDiscover\DiscoveryStrategy /Zend\Code\Scanner 5Zend\Code\Reflection% IZend\Code\Reflection\Exception(
 OZend\Code\Reflection\DocBlock\Tag"	 CZend\Code\Generic\Prototype 3Zend\Code\Generator$ GZend\Code\Generator\Exception' MZend\Code\Generator\DocBlock\Tag 3Zend\Code\Exception" CZend\Code\Annotation\Parser 5Zend\Code\Annotation' M2Zend\Server\Reflection\Exception 72Zend\Server\Exception  #2Zend\Server ;1WZend\ProgressBar\Upload!~ A1WZend\ProgressBar\Exception)} Q1WZend\ProgressBar\Adapter\Exception&| K0Zend\Permissions\Rbac\Exception{ 70Zend\Permissions\Rbac z ?0Zend\Navigation\Exceptiony 7/Zend\Memory\Exceptionx 7/Zend\Memory\Containerw 3.Zend\Mime\Exceptionv 3-fZend\Mail\Transport$u G-fZend\Mail\Transport\Exception!t A-fZend\Mail\Storage\Writables 9-fZend\Mail\Storage\Part'r M-fZend\Mail\Storage\Part\Exception q ?-fZend\Mail\Storage\Messagep =-fZend\Mail\Storage\Folder"o C-fZend\Mail\Storage\Exception#n E-fZend\Mail\Protocol\Exceptionm --fZend\Mail\Header!l A-fZend\Mail\Header\Exceptionk 3-fZend\Mail\Exceptionj /-fZend\Mail\Address i ?+Zend\Feed\Writer\Rendererh -+Zend\Feed\Writer!g A+Zend\Feed\Writer\Extension!f A+Zend\Feed\Writer\Exceptione 7+Zend\Feed\Reader\Httpd 7+Zend\Feed\Reader\Feedc -+Zend\Feed\Reader!b A+Zend\Feed\Reader\Exceptiona 9+Zend\Feed\Reader\Entry#` E+Zend\Feed\PubSubHubbub\Model'_ M+Zend\Feed\PubSubHubbub\Exception^ 9+Zend\Feed\PubSubHubbub] 3+Zend\Feed\Exception\ /7dZend\Code\Scanner[ 57dZend\Code\Reflection%Z I7dZend\Code\Reflection\Exception(Y O7dZend\Code\Reflection\DocBlock\Tag"X C7dZend\Code\Generic\PrototypeW 37dZend\Code\Generator$V G7dZend\Code\Generator\Exception'U M7dZend\Code\Generator\DocBlock\TagT 37dZend\Code\Exception"S C7dZend\Code\Annotation\ParserR 57dZend\Code\AnnotationQ /*Zend\Di\ExceptionP *Zend\DiO 1*Zend\Di\DefinitionN 9)Zend\Captcha\ExceptionM %)Zend\CaptchaL 7(Zend\Barcode\Renderer&K K(Zend\Barcode\Renderer\ExceptionJ 3(Zend\Barcode\Object$I G(Zend\Barcode\Object\ExceptionH 9(Zend\Barcode\Exception!G AZend\Json\Server\ExceptionF 3Zend\Json\Exception!E A$ZendDeveloperTools\StorageD 1$ZendDeveloperTools   v bB)b@zU0zU1mE%	



~
b
Q
>
!						b	G	%	wI%qG,g@_;V1pM$i@ eD               * 1~+Illuminate\Session") C~+Illuminate\Routing\Matching( ;~+Illuminate\Queue\Failed"' C~+Illuminate\Queue\Connectors%& I~+Illuminate\Database\Migrations#% E~+Illuminate\Database\Eloquent%$ I~+Illuminate\Database\Connectors# 3~+Illuminate\Database " ?~+Illuminate\Contracts\View&! K~+Illuminate\Contracts\Validation#  E~+Illuminate\Contracts\Support# E~+Illuminate\Contracts\Routing! A~+Illuminate\Contracts\Redis! A~+Illuminate\Contracts\Queue$ G~+Illuminate\Contracts\Pipeline& K~+Illuminate\Contracts\Pagination  ?~+Illuminate\Contracts\Mail# E~+Illuminate\Contracts\Logging  ?~+Illuminate\Contracts\Http# E~+Illuminate\Contracts\Hashing& K~+Illuminate\Contracts\Foundation& K~+Illuminate\Contracts\Filesystem" C~+Illuminate\Contracts\Events& K~+Illuminate\Contracts\Encryption! A~+Illuminate\Contracts\Debug" C~+Illuminate\Contracts\Cookie% I~+Illuminate\Contracts\Container# E~+Illuminate\Contracts\Console" C~+Illuminate\Contracts\Config! A~+Illuminate\Contracts\Cache =~+Illuminate\Contracts\Bus( O~+Illuminate\Contracts\Broadcasting 
 ?~+Illuminate\Contracts\Auth'	 M~+Illuminate\Contracts\Auth\Access  ?~+Illuminate\Auth\Passwords! A^Orchestra\Testbench\Traits$ G^Orchestra\Testbench\Contracts 9@League\CommonMark\Util( O@League\CommonMark\Inline\Renderer) Q@League\CommonMark\Inline\Processor& K@League\CommonMark\Inline\Parser" C@League\CommonMark\Extension  /@League\CommonMark' M@League\CommonMark\Block\Renderer%~ I@League\CommonMark\Block\Parser&} K@League\CommonMark\Block\Element| hSlim{ 5hSlim\Interfaces\Httpz +hSlim\Interfacesy 5BaconQrCode\Renderer!x ABaconQrCode\Renderer\Image+w UBaconQrCode\Renderer\Image\Decorator!v ABaconQrCode\Renderer\Coloru 7BaconQrCode\Exceptiont ;SimpleSoftwareIO\QrCode(s OSimpleSoftwareIO\QrCode\DataTypesr 7Zizaco\Entrust\Traitsq =Zizaco\Entrust\Contractsp /Clockwork\Storageo 5Clockwork\DataSource!n AzLiip\RMT\Version\Persister!m AzLiip\RMT\Version\Generatorl %zLiip\RMT\VCSk 5-Jackalope\Validation"j C-Jackalope\Transport\Loggingi 3-Jackalope\Transporth -Jackalopeg ~Gettextf 1~Gettext\Generatorse 1~Gettext\Extractors'd M}#ProxyManager\Signature\Exceptionc 9}#ProxyManager\Signature"b C}#ProxyManager\ProxyGeneratora 1}#ProxyManager\Proxy` 9}#ProxyManager\Inflector%_ I}#ProxyManager\GeneratorStrategy^ =}#ProxyManager\FileLocator(] O}#ProxyManager\Factory\RemoteObject\ 9}#ProxyManager\Exception[ ;}#ProxyManager\AutoloaderZ }globalY {_globalX %{_a\name\space!W A{HOvr\PHPReflection\Manually"V CΦHoa\Stream\Wrapper\IWrapperU 1ΦHoa\Stream\IStreamT 9zHoa\Iterator\RecursiveS %zHoa\Iterator	R wMy
Q wFooP wglobalO 3wHal\Component\ScoreN 5wHal\Component\Result"M CwHal\Component\OOP\Reflected"L CwHal\Component\OOP\ExtractorK 5wHal\Component\ConfigJ 3wHal\Component\Cache"I CwHal\Component\Bounds\ResultH 5wHal\Component\BoundsG =wHal\Component\Aggregator#F EwHal\Application\Score\FactorE =wHal\Application\Formater"D CwHal\Application\Command\JobC ρB ρglobal
A ρFoo@ ρClassMap? 1ρClassesWithParents> 7v&Universal\ClassLoader= uCodeGen< 3uCLIFramework\Logger; +uCLIFramework\IO: 9uCLIFramework\Extension9 =uCLIFramework\ConsoleInfo#8 EuCLIFramework\Component\Table7 %uCLIFramework6 9t
Gitonomy\Git\Exception5 9sCodacy\Coverage\Parser   u }dD+k;|Y7t[9eU<%





z
`
H
,
				n	P	$wX7sP"~\4Y7tN%a7zL*rP-                      " Cmikemix\Wiziq\Entity\Traits  ?mikemix\Wiziq\Common\Http =mikemix\Wiziq\Common\Api" CInterNations\Component\Solr" CZPhix_Project\ValidationLib4 =WPhix_Project\Injectables  ?NPhix_Project\ContractLib2& KJPhix_Project\ConsoleDisplayLib4 =3Phix_Project\Autoloader4+ UGanbaroDigital\DataContainers\Caches. [GanbaroDigital\Reflection\ValueBuilders- YGanbaroDigital\Reflection\Requirements' MGanbaroDigital\Reflection\Checks/ ]GanbaroDigital\Reflection\Specifications' MGanbaroDigital\Exceptions\Traits  ?GanbaroDigital\Exceptions 9WDataSift\Stone\HttpLib WPsr\Log =WDataSift\Stone\ConfigLib #QDatasift\Os Prose'
 MDataSift\Storyplayer\Injectables&	 KDataSift\Storyplayer\BrowserLib# EStoryplayer\TestEnvironments% IDataSift\Storyplayer\PlayerLib! ADataSift\Storyplayer\OsLib# EDataSift\Storyplayer\HostLib% IDataSift\Storyplayer\DeviceLib& KDataSift\Storyplayer\CommandLib =DataSift\Storyplayer\Cli& KAppserverIo\Routlt\Results\Mock  ;AppserverIo\Routlt\Util! AAppserverIo\Routlt\Results&~ KAppserverIo\Routlt\Interceptors%} IAppserverIo\Routlt\Description| 1AppserverIo\Routlt%{ ISuperbalist\Money\Linter\Testsz =Superbalist\Money\Lintery /Superbalist\Moneyx 1iApishka\EasyExtend w ?iApishka\EasyExtend\Helperv gglobal7u m	Symfony\Component\ExpressionLanguage\ParserCache+t U	Symfony\Component\ExpressionLanguage s ?JsonSchema\Uri\Retrieversr 9JsonSchema\Constraintsq +Deployer\Helperp )Deployer\Stageo +Deployer\Servern =Deployer\Server\Passwordm /Deployer\Executorl 3Deployer\Collectionk ;EkAndreas\DockerBedrockj 7Noodlehaus\FileParseri !Noodlehaush )؏Whoops\Handlerg ;Doctrine\ORM\Repositoryf 1Doctrine\ORM\Querye 1Doctrine\ORM\Proxy%d IDoctrine\ORM\Persisters\Entity)c QDoctrine\ORM\Persisters\Collectionb 5Doctrine\ORM\Mappinga %Doctrine\ORM*` SDoctrine\ORM\Cache\Persister\Entity._ [Doctrine\ORM\Cache\Persister\Collection#^ EDoctrine\ORM\Cache\Persister!] ADoctrine\ORM\Cache\Logging\ 1Doctrine\ORM\Cache[ )App\ValidatorsZ -App\RepositoriesY sglobalX 9Rougin\Describe\DriverW !Auryn\TestV AurynU Colors!T ARougin\Combustor\Validator!S ARougin\Combustor\GeneratorR 'FluidXml\CoreQ +fproject\commonP globalO 5fproject\amf\sessionN /fproject\amf\authM -fproject\amf\aclL 90HipsterJazzbo\Landlord(K O0HipsterJazzbo\Landlord\ExceptionsJ +Simplified\CoreI 3Simplified\DatabaseH =Collective\Html\EloquentG +Collective\Html!F AYajra\Datatables\ContractsE )}Blend\Security D ?lRougin\Slytherin\TemplateC 5lRougin\Slytherin\IoC#B ElRougin\Slytherin\DispatchingA 9lRougin\Slytherin\Debug@ =Arcanedev\Support\Traits ? ?~+Illuminate\Support\Traits> 1~+Illuminate\Routing= -~+Illuminate\Queue< 7~+Illuminate\Pagination; +~+Illuminate\Http': M~+Illuminate\Foundation\Validation$9 G~+Illuminate\Foundation\Testing-8 Y~+Illuminate\Foundation\Testing\Concerns 7 ?~+Illuminate\Foundation\Bus!6 A~+Illuminate\Foundation\Auth(5 O~+Illuminate\Foundation\Auth\Access4 1~+Illuminate\Console3 -~+Illuminate\Cache2 )~+Illuminate\Bus1 +~+Illuminate\Auth0 9~+Illuminate\Auth\Access/ +~+Illuminate\View. ;~+Illuminate\View\Engines - ?~+Illuminate\View\Compilers, 7~+Illuminate\Validation+ 9~+Illuminate\Translation   l  mD3
t_O?-oL$yX6pG$



m
C
				h	>	]0wFp=s9
bC$}`; qP-u;+                  ' M]spec\Prophecy\Doubler\ClassPatch
 global	 8global7 mSymfony\Component\ExpressionLanguage\ParserCache+ USymfony\Component\ExpressionLanguage! AComponentInstaller\Process =NZend\ServiceManager\Test$ GNZend\ServiceManager\Exception 3NZend\ServiceManager  ?Zend\Serializer\Exception ;Zend\Serializer\Adapter  3Zend\Math\Exception% IZend\Math\BigInteger\Exception#~ EZend\Math\BigInteger\Adapter!} AZend\Json\Server\Exception| 3Zend\Json\Exception{ 5NZend\I18n\Translator"z CNZend\I18n\Translator\Loadery 3NZend\I18n\Exceptionx #	Zend\Filterw 7	Zend\Filter\Exceptionv 3	Zend\Filter\Encryptu 5	Zend\Filter\Compresst 1Zend\Config\Writers 1Zend\Config\Readerr 7Zend\Config\Processorq 7Zend\Config\Exception p ?JZend\Cache\Storage\Plugino 1JZend\Cache\Storagen 1JZend\Cache\Patternm 5JZend\Cache\Exception,l WSymfony\Component\Validator\Violation,k WSymfony\Component\Validator\Validator7j mSymfony\Component\Validator\Tests\Mapping\Loader1i aSymfony\Component\Validator\Tests\Fixtures1h aSymfony\Component\Validator\Mapping\Loader2g cSymfony\Component\Validator\Mapping\Factory*f SSymfony\Component\Validator\Mapping0e _Symfony\Component\Validator\Mapping\Cache,d WSymfony\Component\Validator\Exception*c SSymfony\Component\Validator\Context"b CSymfony\Component\Validator$a GSymfony\Component\Translation+` USymfony\Component\Translation\Loader._ [Symfony\Component\Translation\Extractor.^ [Symfony\Component\Translation\Exception+] USymfony\Component\Translation\Dumper.\ [Symfony\Component\Translation\Catalogue&[ KSymfony\Component\Process\Pipes*Z SSymfony\Component\Process\Exception)Y Q.Symfony\Component\Finder\Exception-X YSymfony\Component\Filesystem\Exception(W OSymfony\Component\EventDispatcher.V [Symfony\Component\EventDispatcher\Debug&U K\Symfony\Component\Console\Style'T M\Symfony\Component\Console\Output&S K\Symfony\Component\Console\Input'R M\Symfony\Component\Console\Helper*Q S\Symfony\Component\Console\Formatter*P S\Symfony\Component\Console\Exception+O U\Symfony\Component\Console\Descriptor'N M%Symfony\Component\VarDumper\Test)M Q%Symfony\Component\VarDumper\Dumper)L Q%Symfony\Component\VarDumper\Cloner2K cZmageekguy\atoum\tests\units\factory\builderJ ZI 9Zmageekguy\atoum\writer H ?Zmageekguy\atoum\test\data&G KZmageekguy\atoum\scripts\treemap%F IZmageekguy\atoum\report\writers E ?Zmageekguy\atoum\observersD 5Zmageekguy\atoum\mockC ;Zmageekguy\atoum\factory B ?Zmageekguy\atoum\extensionA +Zmageekguy\atoum@ =Zmageekguy\atoum\asserter? ;Zmageekguy\atoum\adapter2> cmageekguy\atoum\tests\units\factory\builder= < 9mageekguy\atoum\writer ; ?mageekguy\atoum\test\data&: Kmageekguy\atoum\scripts\treemap%9 Imageekguy\atoum\report\writers 8 ?mageekguy\atoum\observers7 5mageekguy\atoum\mock6 ;mageekguy\atoum\factory 5 ?mageekguy\atoum\extension4 +mageekguy\atoum3 =mageekguy\atoum\asserter2 ;mageekguy\atoum\adapter1 GWebX\Ioc0 )global/ Fglobal. #Jade\Filter- #Kuria\Event, #Kuria\Error+ 9oSystem\Database\Driver* %oSystem\Cache) 5bNette\Database\Table( )bNette\Database&' KAlpixel\Bundle\CMSBundle\Entity& }NetData&% K?Postcon\Tests\ClientIpExtension $ ??Postcon\ClientIpExtension# !w3l\Holt45" ϳglobal&! K>Postcon\Tests\ClientIpExtension   ?>Postcon\ClientIpExtension   u  |X<d,UQ:!}Z:







x
m
b
W
6
!
					Y	0	z\@$oM8pI, rF"vdH%y\9)xIpG#            #  E Codeception\Lib\Actor\Shared! A Codeception\Command\Shared&~ K Codeception\TestCase\Interfaces} 3 Codeception\PHPUnit!| A Codeception\Lib\Interfaces{  global3z e`DI\Test\UnitTest\Definition\Resolver\Fixture%y I`DI\Test\IntegrationTest\Issues'x M`DI\Test\IntegrationTest\Fixtures,w W`DI\Test\IntegrationTest\ErrorMessages	v `DIu !`DI\Factoryt 5`DI\Definition\Sources 9`DI\Definition\Resolverr 5`DI\Definition\Helperq 5`DI\Definition\Dumperp '`DI\Definitiono 
global n ?KZend\Console\RouteMatcherm 3KZend\Console\Promptl 9KZend\Console\Exceptionk %KZend\Consolej 5KZend\Console\Charseti 5KZend\Console\Adapterh +7Zend\Log\Writerg ;7Zend\Log\Writer\FirePhp f ?7Zend\Log\Writer\ChromePhpe 17Zend\Log\Processord 7Zend\Logc 17Zend\Log\Formatterb +7Zend\Log\Filtera 17Zend\Log\Exception` -vZend\Http\Header!_ AvZend\Http\Header\Exception^ 3vZend\Http\Exception!] AvZend\Http\Client\Exception)\ QvZend\Http\Client\Adapter\Exception[ =vZend\Http\Client\AdapterZ 5qZend\Crypt\Symmetric#Y EqZend\Crypt\Symmetric\Padding%X IqZend\Crypt\Symmetric\Exception)W QqZend\Crypt\PublicKey\Rsa\ExceptionV 3qZend\Crypt\Password$U GqZend\Crypt\Password\Exception*T SqZend\Crypt\Key\Derivation\ExceptionS 5qZend\Crypt\ExceptionR /Zend\Stdlib\Guard Q ?Zend\Stdlib\StringWrapperP 7Zend\Stdlib\ExceptionO 9Zend\Stdlib\ArrayUtilsN #Zend\StdlibM =JZend\ServiceManager\Test&L KJZend\ServiceManager\Initializer"K CJZend\ServiceManager\Factory$J GJZend\ServiceManager\ExceptionI 3JZend\ServiceManager H ?Zend\Cache\Storage\PluginG 1Zend\Cache\StorageF 1Zend\Cache\PatternE 5Zend\Cache\ExceptionD +Monolog\Handler%C IMonolog\Handler\FingersCrossedB /Monolog\Formatter,A WSymfony\Component\Config\Tests\Loader(@ OSymfony\Component\Config\Resource&? KSymfony\Component\Config\Loader*> SSymfony\Component\Config\Definition2= cSymfony\Component\Config\Definition\Builder< =Symfony\Component\Config; Trait: -org\pdepend\code9 /Project\Component8 #Just\A\Test7 ;Report\Dependencies\Xml6 C5 B4 A3 system2 ;ClassDependencyAnalyzer
1 foo0 
/ baz. global- 7PDepend\Util\Coverage, 1PDepend\Util\Cache+ =PDepend\Source\Tokenizer* 9PDepend\Source\Builder ) ?PDepend\Source\ASTVisitor)( QPDepend\Source\AST\ASTArtifactList' 1PDepend\Source\AST& )PDepend\Report% PDepend0$ _PDepend\Metrics\Analyzer\CodeRankAnalyzer# +PDepend\Metrics" 'PDepend\Input;! uSymfony\Component\DependencyInjection\Tests\Compiler9  qSymfony\Component\DependencyInjection\ParameterBag@ Symfony\Component\DependencyInjection\LazyProxy\PhpDumperD Symfony\Component\DependencyInjection\LazyProxy\Instantiator6 kSymfony\Component\DependencyInjection\Extension6 kSymfony\Component\DependencyInjection\Exception3 eSymfony\Component\DependencyInjection\Dumper, WSymfony\Component\DependencyInjection5 iSymfony\Component\DependencyInjection\Compiler' MSymfony\Component\Yaml\Exception rglobal /]Prophecy\Prophecy -]Prophecy\Promise 3]Prophecy\Prediction" C]Prophecy\Exception\Prophecy$ G]Prophecy\Exception\Prediction 1]Prophecy\Exception! A]Prophecy\Exception\Doubler! A]Prophecy\Doubler\Generator -]Prophecy\Doubler" C]Prophecy\Doubler\ClassPatch ;]Prophecy\Argument\Token   e  `?+
[/gGUT!



h
4

			|	J	j?a=wT.sM'pH#_>%sO,sY=        0e _Symfony\Component\Debug\FatalErrorHandlerd lCron c ?Illuminate\Support\Traitsb 1Illuminate\Routinga -Illuminate\Queue` 7Illuminate\Pagination_ +Illuminate\Http'^ MIlluminate\Foundation\Validation$] GIlluminate\Foundation\Testing-\ YIlluminate\Foundation\Testing\Concerns [ ?Illuminate\Foundation\Bus!Z AIlluminate\Foundation\Auth(Y OIlluminate\Foundation\Auth\AccessX 1Illuminate\ConsoleW -Illuminate\CacheV )Illuminate\BusU +Illuminate\AuthT 9Illuminate\Auth\AccessS +Illuminate\ViewR ;Illuminate\View\Engines Q ?Illuminate\View\CompilersP 7Illuminate\ValidationO 9Illuminate\TranslationN 1Illuminate\Session"M CIlluminate\Routing\MatchingL ;Illuminate\Queue\Failed"K CIlluminate\Queue\Connectors%J IIlluminate\Database\Migrations#I EIlluminate\Database\Eloquent%H IIlluminate\Database\ConnectorsG 3Illuminate\Database F ?Illuminate\Contracts\View&E KIlluminate\Contracts\Validation#D EIlluminate\Contracts\Support#C EIlluminate\Contracts\Routing!B AIlluminate\Contracts\Redis!A AIlluminate\Contracts\Queue$@ GIlluminate\Contracts\Pipeline&? KIlluminate\Contracts\Pagination > ?Illuminate\Contracts\Mail#= EIlluminate\Contracts\Logging < ?Illuminate\Contracts\Http#; EIlluminate\Contracts\Hashing&: KIlluminate\Contracts\Foundation&9 KIlluminate\Contracts\Filesystem"8 CIlluminate\Contracts\Events&7 KIlluminate\Contracts\Encryption!6 AIlluminate\Contracts\Debug"5 CIlluminate\Contracts\Cookie%4 IIlluminate\Contracts\Container#3 EIlluminate\Contracts\Console"2 CIlluminate\Contracts\Config!1 AIlluminate\Contracts\Cache0 =Illuminate\Contracts\Bus(/ OIlluminate\Contracts\Broadcasting . ?Illuminate\Contracts\Auth'- MIlluminate\Contracts\Auth\Access , ?Illuminate\Auth\Passwords+ =Symfony\Bridge\Twig\Form * ?
Symfony\Component\Routing() O
Symfony\Component\Routing\Matcher/( ]
Symfony\Component\Routing\Matcher\Dumper1' a
Symfony\Component\Routing\Generator\Dumper*& S
Symfony\Component\Routing\Generator*% S
Symfony\Component\Routing\Exception'$ M
FSymfony\Component\PropertyAccess1# a
FSymfony\Component\PropertyAccess\Exception(" O	Symfony\Component\OptionsResolver2! c	Symfony\Component\OptionsResolver\Exception,  W	;Symfony\Component\Intl\ResourceBundle' M	;Symfony\Component\Intl\Exception0 _	;Symfony\Component\Intl\Data\Bundle\Writer0 _	;Symfony\Component\Intl\Data\Bundle\Reader2 c	;Symfony\Component\Intl\Data\Bundle\Compiler, WSSymfony\Component\Form\Tests\Fixtures" CSSymfony\Component\Form\TestB SSymfony\Component\Form\Extension\Validator\ViolationMapper5 iSSymfony\Component\Form\Extension\DataCollector' MSSymfony\Component\Form\Exception/ ]SSymfony\Component\Form\ChoiceList\Loader0 _SSymfony\Component\Form\ChoiceList\Factory( OSSymfony\Component\Form\ChoiceList 9SSymfony\Component\Form* SSymfony\Component\CssSelector\XPath4 gSymfony\Component\CssSelector\XPath\Extension+ USymfony\Component\CssSelector\Parser3 eSymfony\Component\CssSelector\Parser\Handler) QSymfony\Component\CssSelector\Node. [Symfony\Component\CssSelector\Exception global 5 ToastPack\_generated
 3 EwokPack\_generated	 - Shire\_generated + Jazz\_generated ; Jazz\Pianist\_generated ! _generated ; Codeception\Util\Shared" C Codeception\TestCase\Shared$ G Codeception\Subscriber\Shared' M Codeception\Lib\Generator\Shared' M Codeception\Lib\Connector\Shared   P  n2a.g8]1K


R
!				a	@	;tC'[0yO&v@{Ku<v8        +5 U|Symfony\Component\ExpressionLanguage(4 O|Symfony\Component\EventDispatcher.3 [|Symfony\Component\EventDispatcher\Debug;2 u|Symfony\Component\DependencyInjection\Tests\Compiler91 q|Symfony\Component\DependencyInjection\ParameterBag@0 |Symfony\Component\DependencyInjection\LazyProxy\PhpDumperD/ |Symfony\Component\DependencyInjection\LazyProxy\Instantiator6. k|Symfony\Component\DependencyInjection\Extension6- k|Symfony\Component\DependencyInjection\Exception3, e|Symfony\Component\DependencyInjection\Dumper,+ W|Symfony\Component\DependencyInjection5* i|Symfony\Component\DependencyInjection\Compiler-) Y|Symfony\Component\Debug\Tests\Fixtures0( _|Symfony\Component\Debug\FatalErrorHandler*' S|Symfony\Component\CssSelector\XPath4& g|Symfony\Component\CssSelector\XPath\Extension+% U|Symfony\Component\CssSelector\Parser3$ e|Symfony\Component\CssSelector\Parser\Handler)# Q|Symfony\Component\CssSelector\Node." [|Symfony\Component\CssSelector\Exception&! K|Symfony\Component\Console\Style'  M|Symfony\Component\Console\Output& K|Symfony\Component\Console\Input' M|Symfony\Component\Console\Helper* S|Symfony\Component\Console\Formatter* S|Symfony\Component\Console\Exception+ U|Symfony\Component\Console\Descriptor, W|Symfony\Component\Config\Tests\Loader( O|Symfony\Component\Config\Resource& K|Symfony\Component\Config\Loader* S|Symfony\Component\Config\Definition2 c|Symfony\Component\Config\Definition\Builder =|Symfony\Component\Config
 |Foo |ClassMap 1|ClassesWithParents. [|Symfony\Component\Asset\VersionStrategy ;|Symfony\Component\Asset( O|Symfony\Component\Asset\Exception& K|Symfony\Component\Asset\ContextO |Symfony\Bundle\SecurityBundle\DependencyInjection\Security\UserProviderJ |Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory0 _|Symfony\Bundle\FrameworkBundle\Templating1
 a|Symfony\Bundle\FrameworkBundle\CacheWarmer	 =|Symfony\Bridge\Twig\Form, W|Symfony\Bridge\Doctrine\Security\User ;|Symfony\Bridge\Doctrine. [|Symfony\Bridge\Doctrine\Form\ChoiceList+ USymfony\Component\Security\Core\User+ USymfony\Component\Security\Core\Role0 _Symfony\Component\Security\Core\Exception. [Symfony\Component\Security\Core\Encoder: sSymfony\Component\Security\Core\Authorization\Voter4  gSymfony\Component\Security\Core\Authorization; uSymfony\Component\Security\Core\Authentication\TokenD~ Symfony\Component\Security\Core\Authentication\Token\Storage@} Symfony\Component\Security\Core\Authentication\RememberMe>| {Symfony\Component\Security\Core\Authentication\Provider5{ iSymfony\Component\Security\Core\Authentication'z MSymfony\Component\VarDumper\Test)y QSymfony\Component\VarDumper\Dumper)x QSymfony\Component\VarDumper\Cloner,w WSymfony\Component\HttpKernel\Profiler'v MSymfony\Component\HttpKernel\Log#u ESymfony\Component\HttpKernel-t YSymfony\Component\HttpKernel\HttpCache,s WSymfony\Component\HttpKernel\Fragment-r YSymfony\Component\HttpKernel\Exception1q aSymfony\Component\HttpKernel\DataCollector.p [Symfony\Component\HttpKernel\Controller/o ]Symfony\Component\HttpKernel\CacheWarmer0n _Symfony\Component\HttpKernel\CacheClearer*m SSymfony\Component\HttpKernel\Bundle7l mbSymfony\Component\HttpFoundation\Session\Storage/k ]bSymfony\Component\HttpFoundation\Session5j ibSymfony\Component\HttpFoundation\Session\Flash9i qbSymfony\Component\HttpFoundation\Session\Attribute'h MbSymfony\Component\HttpFoundation5g ibSymfony\Component\HttpFoundation\File\MimeType-f YSymfony\Component\Debug\Tests\Fixtures   O  jJX]!}PV'



x
C
				d	/	zP(h=^e4|DSR!f0                                   1 a|Symfony\Component\Serializer\NameConverter2 c|Symfony\Component\Serializer\Mapping\Loader3 e|Symfony\Component\Serializer\Mapping\Factory+ U|Symfony\Component\Serializer\Mapping-  Y|Symfony\Component\Serializer\Exception+ U|Symfony\Component\Serializer\Encoder,~ W|Symfony\Component\Security\Http\Tests.} [|Symfony\Component\Security\Http\Session1| a|Symfony\Component\Security\Http\RememberMe-{ Y|Symfony\Component\Security\Http\Logout/z ]|Symfony\Component\Security\Http\Firewall1y a|Symfony\Component\Security\Http\EntryPoint4x g|Symfony\Component\Security\Http\Authorization5w i|Symfony\Component\Security\Http\Authentication&v K|Symfony\Component\Security\Http-u Y|Symfony\Component\Security\Guard\Token't M|Symfony\Component\Security\Guard3s e|Symfony\Component\Security\Csrf\TokenStorage5r i|Symfony\Component\Security\Csrf\TokenGenerator&q K|Symfony\Component\Security\Csrf+p U|Symfony\Component\Security\Core\User+o U|Symfony\Component\Security\Core\Role0n _|Symfony\Component\Security\Core\Exception.m [|Symfony\Component\Security\Core\Encoder:l s|Symfony\Component\Security\Core\Authorization\Voter4k g|Symfony\Component\Security\Core\Authorization;j u|Symfony\Component\Security\Core\Authentication\TokenDi |Symfony\Component\Security\Core\Authentication\Token\Storage@h |Symfony\Component\Security\Core\Authentication\RememberMe>g {|Symfony\Component\Security\Core\Authentication\Provider5f i|Symfony\Component\Security\Core\Authentication e ?|Symfony\Component\Routing(d O|Symfony\Component\Routing\Matcher/c ]|Symfony\Component\Routing\Matcher\Dumper1b a|Symfony\Component\Routing\Generator\Dumper*a S|Symfony\Component\Routing\Generator*` S|Symfony\Component\Routing\Exception%_ I|Symfony\Component\PropertyInfo'^ M|Symfony\Component\PropertyAccess1] a|Symfony\Component\PropertyAccess\Exception&\ K|Symfony\Component\Process\Pipes*[ S|Symfony\Component\Process\Exception(Z O|Symfony\Component\OptionsResolver2Y c|Symfony\Component\OptionsResolver\ExceptionX 9|Symfony\Component\Ldap,W W|Symfony\Component\Intl\ResourceBundle'V M|Symfony\Component\Intl\Exception0U _|Symfony\Component\Intl\Data\Bundle\Writer0T _|Symfony\Component\Intl\Data\Bundle\Reader2S c|Symfony\Component\Intl\Data\Bundle\Compiler,R W|Symfony\Component\HttpKernel\Profiler'Q M|Symfony\Component\HttpKernel\Log#P E|Symfony\Component\HttpKernel-O Y|Symfony\Component\HttpKernel\HttpCache,N W|Symfony\Component\HttpKernel\Fragment-M Y|Symfony\Component\HttpKernel\Exception1L a|Symfony\Component\HttpKernel\DataCollector.K [|Symfony\Component\HttpKernel\Controller/J ]|Symfony\Component\HttpKernel\CacheWarmer0I _|Symfony\Component\HttpKernel\CacheClearer*H S|Symfony\Component\HttpKernel\Bundle7G m|Symfony\Component\HttpFoundation\Session\Storage/F ]|Symfony\Component\HttpFoundation\Session5E i|Symfony\Component\HttpFoundation\Session\Flash9D q|Symfony\Component\HttpFoundation\Session\Attribute'C M|Symfony\Component\HttpFoundation5B i|Symfony\Component\HttpFoundation\File\MimeType,A W|Symfony\Component\Form\Tests\Fixtures"@ C|Symfony\Component\Form\TestB? |Symfony\Component\Form\Extension\Validator\ViolationMapper5> i|Symfony\Component\Form\Extension\DataCollector'= M|Symfony\Component\Form\Exception/< ]|Symfony\Component\Form\ChoiceList\Loader0; _|Symfony\Component\Form\ChoiceList\Factory(: O|Symfony\Component\Form\ChoiceList9 9|Symfony\Component\Form)8 Q|Symfony\Component\Finder\Exception-7 Y|Symfony\Component\Filesystem\Exception76 m|Symfony\Component\ExpressionLanguage\ParserCache   6h tN!i8`1h4pD






k
T
D
,
						}	a	J	5	 	
h                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    : 7Laravel\Lumen\Testing%9 ILaravel\Lumen\Testing\Concerns8 7Laravel\Lumen\Routing7 9Laravel\Lumen\Concerns6 1Laravel\Lumen\Auth5 %UDiff\Patcher4 #UDiff\DiffOp3 #UDiff\Differ2 'UDiff\Comparer1 1UDiff\ArrayComparer0 UDiff / ?vLeague\OAuth2\Client\Tool$. GvLeague\OAuth2\Client\Provider- 3Aws\S3, )3Aws\Api\Parser+ 33Aws\Api\ErrorParser* 3Aws\Test) )3Aws\Test\Integ( 3global' '3Aws\Signature& %3Aws\DynamoDb% +3Aws\Credentials
$ 3Aws'# M|Symfony\Component\VarDumper\Test" |! |global,  W|Symfony\Bundle\FrameworkBundle\Kernel' M|Symfony\Component\Yaml\Exception) Q|Symfony\Component\VarDumper\Dumper) Q|Symfony\Component\VarDumper\Cloner, W|Symfony\Component\Validator\Violation, W|Symfony\Component\Validator\Validator7 m|Symfony\Component\Validator\Tests\Mapping\Loader1 a|Symfony\Component\Validator\Tests\Fixtures1 a|Symfony\Component\Validator\Mapping\Loader2 c|Symfony\Component\Validator\Mapping\Factory* S|Symfony\Component\Validator\Mapping0 _|Symfony\Component\Validator\Mapping\Cache, W|Symfony\Component\Validator\Exception* S|Symfony\Component\Validator\Context" C|Symfony\Component\Validator$ G|Symfony\Component\Translation+ U|Symfony\Component\Translation\Loader. [|Symfony\Component\Translation\Extractor. [|Symfony\Component\Translation\Exception+ U|Symfony\Component\Translation\Dumper. [|Symfony\Component\Translation\Catalogue) Q|Symfony\Component\Templating\Tests*
 S|Symfony\Component\Templating\Loader*	 S|Symfony\Component\Templating\Helper# E|Symfony\Component\Templating2 c|Symfony\Component\Serializer\Tests\Fixtures# E|Symfony\Component\Serializer. [|Symfony\Component\Serializer\Normalizer
   y	 iBkJX$`1W'



s
I
				R	KzAudVG6(UJ:,~m^OC2#sdXG8) `6zR'	               7	Doctrine\Instantiator+q*Q	DoctrineTest\InstantiatorTestAsset+r'KDoctrine\Instantiator\Exception(-7Doctrine\Instantiator(.*QDoctrineTest\InstantiatorTestAsset(/&KDoctrine\Instantiator\Exception,7Doctrine\Instantiator-.[DoctrineTest\InstantiatorTest\Exception/)QDoctrineTest\InstantiatorTestAsset1$GDoctrineTest\InstantiatorTest0+UDoctrineTest\InstantiatorPerformance.global#globalWMy\SpaceXglobalaMy\Spacebglobal)My\Space*
Foo+global#globalMy\SpaceFooglobalMy\SpaceFooglobal{My\Space|Foo}global)globalrMy\SpacesFootglobalMy\SpaceFooglobalMy\SpaceFooglobal$AglobalMy\SpaceFooglobal My\Space Foo globalMy\SpaceFooglobalMy\SpaceFooglobal$global)globaldMy\Spacee
Foof)Q{SebastianBergmann\RecursionContext(!ArSebastianBergmann\Exporter'"AmSebastianBergmann\Diff\LCS*8!AlSebastianBergmann\Diff\LCS&9lSebastianBergmann\Diff%#EdSebastianBergmann\Comparator$;global ;PhakeTest!.global$)-global"-PhakeTest#8m Symfony\Component\ExpressionLanguage\ParserCache%,U Symfony\Component\ExpressionLanguage%8m Symfony\Component\ExpressionLanguage\ParserCache),U Symfony\Component\ExpressionLanguage)8m Symfony\Component\ExpressionLanguage\ParserCache),U Symfony\Component\ExpressionLanguage)6k Symfony\Component\ExpressionLanguage\Tests\Node:s Symfony\Component\ExpressionLanguage\Tests\Fixtures1a Symfony\Component\ExpressionLanguage\Tests7m Symfony\Component\ExpressionLanguage\ParserCache0_ Symfony\Component\ExpressionLanguage\Node+U Symfony\Component\ExpressionLanguage6k Symfony\Component\ExpressionLanguage\Tests\Node:s Symfony\Component\ExpressionLanguage\Tests\Fixtures1a Symfony\Component\ExpressionLanguage\Tests7m Symfony\Component\ExpressionLanguage\ParserCache0_ Symfony\Component\ExpressionLanguage\Node+U Symfony\Component\ExpressionLanguage/[ Symfony\Component\EventDispatcher\Debug%)O Symfony\Component\EventDispatcher%/[ Symfony\Component\EventDispatcher\Debug*!)O Symfony\Component\EventDispatcher*"/[ Symfony\Component\EventDispatcher\Debug*#)O Symfony\Component\EventDispatcher*$/[ Symfony\Component\EventDispatcher\Debug")O Symfony\Component\EventDispatcher".[bSymfony\Component\EventDispatcher\Debug(0(ObSymfony\Component\EventDispatcher(1.[BSymfony\Component\EventDispatcher\Debug+2(OBSymfony\Component\EventDispatcher+3.[5Symfony\Component\EventDispatcher\Debug+4(O5Symfony\Component\EventDispatcher+5.[3Symfony\Component\EventDispatcher\Debug-(O3Symfony\Component\EventDispatcher-B-Symfony\Component\EventDispatcher\Tests\DependencyInjection3g-Symfony\Component\EventDispatcher\Tests\Debug-[-Symfony\Component\EventDispatcher\Tests;w-Symfony\Component\EventDispatcher\DependencyInjection-[-Symfony\Component\EventDispatcher\Debug'O-Symfony\Component\EventDispatcher1cStagehand\FSM\StateMachine\StateMachineTest AStagehand\FSM\StateMachine3Stagehand\FSM\State3Stagehand\FSM\Event
#GPHPMentors\DomainKata\Usecase	)SPHPMentors\DomainKata\Specification#GPHPMentors\DomainKata\Service0aPHPMentors\DomainKata\Repository\Operation&MPHPMentors\DomainKata\Repository%KPHPMentors\DomainKata\Operation!CPHPMentors\DomainKata\InOut,YPHPMentors\DomainKata\Entity\Operation!E	PHPMentors\DomainKata\Entity
    b4$_8zbI4^7nN1




y
^
;
						i	E	"	~eK@1#ugXC4!Z5X/zU6{R) hH{U0          ?Stagehand\TestRunner\Coreu$GStagehand\TestRunner\Composert%IStagehand\TestRunner\CollectorsX-Stagehand\TestRunner\CLI\TestRunnerApplication\Command\PHPUnitPassthroughCommandr=yStagehand\TestRunner\CLI\TestRunnerApplication\Commandq5iStagehand\TestRunner\CLI\TestRunnerApplicationp=Stagehand\TestRunner\CLIo5Stagehand\TestRunner (MSymfony\Component\Yaml\Exception*@(MSymfony\Component\Yaml\Exception*Z(MSymfony\Component\Yaml\Exception!I(MSymfony\Component\Yaml\Exception%(MSymfony\Component\Yaml\Exception*(MSymfony\Component\Yaml\Exception"$ESymfony\Component\Yaml\Tests	(MSymfony\Component\Yaml\Exception	9Symfony\Component\Yaml	$ESymfony\Component\Yaml\Testsn(MSymfony\Component\Yaml\Exceptionm9Symfony\Component\Yamll$ESymfony\Component\Yaml\Testsq(MSymfony\Component\Yaml\Exceptionp9Symfony\Component\Yamlo$ESymfony\Component\Yaml\TestsH(MSymfony\Component\Yaml\ExceptionG9Symfony\Component\YamlF(MSymfony\Component\Yaml\Exception'(M}Symfony\Component\Yaml\Exception*#EwSymfony\Component\Yaml\Testsn'MwSymfony\Component\Yaml\Exceptionm9wSymfony\Component\Yamll/lSebastianBergmannk0_fSebastianBergmann\GlobalState\TestFixturej$GfSebastianBergmann\GlobalStatei$GRSebastianBergmann\Environmenth>globalc<global&global*globalgglobal\#Other\Space^Foo\Baz`'Foo\BarScoped_Foo\Bar]global_#Other\SpaceaFoo\Bazc'Foo\BarScopedbFoo\Bar`|global^vglobal]rglobalpglobal\[globalY[bar\baz[[FooZYglobal Ybar\baz YFoo Fglobal*,?global)=global)8globalY8bar\baz[
8FooZ/-Prophecy\Prophecy)--Prophecy\Promise)3-Prophecy\Prediction)#C-Prophecy\Exception\Prophecy)%G-Prophecy\Exception\Prediction)"A-Prophecy\Exception\Doubler)1-Prophecy\Exception)"A-Prophecy\Doubler\Generator)#C-Prophecy\Doubler\ClassPatch)--Prophecy\Doubler);-Prophecy\Argument\Token)/'Prophecy\Prophecy*7-'Prophecy\Promise*63'Prophecy\Prediction*5#C'Prophecy\Exception\Prophecy*4%G'Prophecy\Exception\Prediction*3"A'Prophecy\Exception\Doubler*11'Prophecy\Exception*2"A'Prophecy\Doubler\Generator*0#C'Prophecy\Doubler\ClassPatch*.-'Prophecy\Doubler*/;'Prophecy\Argument\Token*-1$spec\Prophecy\UtilF9$spec\Prophecy\ProphecyE7$spec\Prophecy\PromiseD=$spec\Prophecy\PredictionC'M$spec\Prophecy\Exception\ProphecyB)Q$spec\Prophecy\Exception\PredictionA&K$spec\Prophecy\Exception\Doubler@#E$spec\Prophecy\Exception\Call?+U$spec\Prophecy\Doubler\Generator\Node>&K$spec\Prophecy\Doubler\Generator='M$spec\Prophecy\Doubler\ClassPatch;7$spec\Prophecy\Doubler<=$spec\Prophecy\Comparator:1$spec\Prophecy\Call9#E$spec\Prophecy\Argument\Token79$spec\Prophecy\Argument6'$spec\Prophecy8'$Prophecy\UtilX/$Prophecy\ProphecyW-$Prophecy\PromiseV3$Prophecy\PredictionU"C$Prophecy\Exception\ProphecyT$G$Prophecy\Exception\PredictionS!A$Prophecy\Exception\DoublerQ;$Prophecy\Exception\CallP1$Prophecy\ExceptionR&K$Prophecy\Doubler\Generator\NodeO!A$Prophecy\Doubler\GeneratorN"C$Prophecy\Doubler\ClassPatchM-$Prophecy\DoublerL3$Prophecy\ComparatorK'$Prophecy\CallJ;$Prophecy\Argument\TokenH/$Prophecy\ArgumentG$ProphecyI-YphpDocumentor\Reflection\DocBlock\Type4,WphpDocumentor\Reflection\DocBlock\Tag3(OphpDocumentor\Reflection\DocBlock2=phpDocumentor\Reflection5'MStagehand\TestRunner\Core\Pluginv
 X  YgB]#~oK(t>



h
.				X	(	Y/X. W-~V,}U+|T*{S)zR(                                  !?Symfony\Component\Console -WSymfony\Component\Config\Tests\Loader"<)OSymfony\Component\Config\Resource";'KSymfony\Component\Config\Loader":3cSymfony\Component\Config\Definition\Builder"8+SSymfony\Component\Config\Definition"9 =Symfony\Component\Config"7-WSymfony\Component\Config\Tests\Loader*)OSymfony\Component\Config\Resource*'KSymfony\Component\Config\Loader*3cSymfony\Component\Config\Definition\Builder*+SSymfony\Component\Config\Definition* =Symfony\Component\Config*-WSymfony\Component\Config\Tests\Loader*)OSymfony\Component\Config\Resource*'KSymfony\Component\Config\Loader*3cSymfony\Component\Config\Definition\Builder*+SSymfony\Component\Config\Definition* =Symfony\Component\Config*-WSymfony\Component\Config\Tests\Loader")OSymfony\Component\Config\Resource"'KSymfony\Component\Config\Loader"3cSymfony\Component\Config\Definition\Builder"+SSymfony\Component\Config\Definition" =Symfony\Component\Config"-WbSymfony\Component\Config\Tests\Loader#)ObSymfony\Component\Config\Resource#'KbSymfony\Component\Config\Loader#3cbSymfony\Component\Config\Definition\Builder#+SbSymfony\Component\Config\Definition# =bSymfony\Component\Config#-WOSymfony\Component\Config\Tests\Loader')OOSymfony\Component\Config\Resource''KOSymfony\Component\Config\Loader'3cOSymfony\Component\Config\Definition\Builder'+SOSymfony\Component\Config\Definition' =OSymfony\Component\Config'-WBSymfony\Component\Config\Tests\Loader')OBSymfony\Component\Config\Resource''KBSymfony\Component\Config\Loader'3cBSymfony\Component\Config\Definition\Builder'+SBSymfony\Component\Config\Definition' =BSymfony\Component\Config'-W@Symfony\Component\Config\Tests\Loader*)O@Symfony\Component\Config\Resource*'K@Symfony\Component\Config\Loader*3c@Symfony\Component\Config\Definition\Builder*+S@Symfony\Component\Config\Definition* =@Symfony\Component\Config*%G:Symfony\Component\Config\Util /[:Symfony\Component\Config\Tests\Resource -W:Symfony\Component\Config\Tests\Loader =w:Symfony\Component\Config\Tests\Fixtures\Configuration 0]:Symfony\Component\Config\Tests\Exception 8m:Symfony\Component\Config\Tests\Definition\Dumper 9o:Symfony\Component\Config\Tests\Definition\Builder 1_:Symfony\Component\Config\Tests\Definition &I:Symfony\Component\Config\Tests )O:Symfony\Component\Config\Resource 'K:Symfony\Component\Config\Loader *Q:Symfony\Component\Config\Exception 5g:Symfony\Component\Config\Definition\Exception 2a:Symfony\Component\Config\Definition\Dumper 3c:Symfony\Component\Config\Definition\Builder +S:Symfony\Component\Config\Definition  =:Symfony\Component\Config "AStagehand\ComponentFactory #CStagehand\AlterationMonitor global !?Stagehand\TestRunner\Util &IStagehand\TestRunner\TestSuite !?Stagehand\TestRunner\Test 9oStagehand\TestRunner\Runner\PHPUnitRunner\TestDox 9oStagehand\TestRunner\Runner\PHPUnitRunner\Printer 1_Stagehand\TestRunner\Runner\PHPUnitRunner 3cStagehand\TestRunner\Runner\JUnitXMLWriting #CStagehand\TestRunner\Runner 5iStagehand\TestRunner\Process\ContinuousTesting$EStagehand\TestRunner\Process $GStagehand\TestRunner\Preparer~$EStagehand\TestRunner\PHPUnit (OStagehand\TestRunner\Notification}*SStagehand\TestRunner\JUnitXMLWriter|>{Stagehand\TestRunner\DependencyInjection\Transformation{9qStagehand\TestRunner\DependencyInjection\Extensiony=yStagehand\TestRunner\DependencyInjection\Configurationx8oStagehand\TestRunner\DependencyInjection\Compilerw   )OSymfony\Component\Console\Command 
   [  [2	e5pBxKY,



^
5

				a	.n?X+]4	U$f7wO&]1f6                     0]Symfony\Component\Console\Tests\Fixtures2aSymfony\Component\Console\Tests\Descriptor/[Symfony\Component\Console\Tests\Command'KSymfony\Component\Console\Tests
(MSymfony\Component\Console\Tester	(MSymfony\Component\Console\Output'KSymfony\Component\Console\Input(MSymfony\Component\Console\Helper+SSymfony\Component\Console\Formatter'KSymfony\Component\Console\Event,USymfony\Component\Console\Descriptor)OSymfony\Component\Console\Command!?Symfony\Component\Console'KSymfony\Component\Console\Style$(MSymfony\Component\Console\Output$'KSymfony\Component\Console\Input$(MSymfony\Component\Console\Helper$+SSymfony\Component\Console\Formatter$,USymfony\Component\Console\Descriptor$global	.YSymfony\Component\Console\Tests\Tester	.YSymfony\Component\Console\Tests\Output	.YSymfony\Component\Console\Tests\Logger	-WSymfony\Component\Console\Tests\Input	.YSymfony\Component\Console\Tests\Helper	1_Symfony\Component\Console\Tests\Formatter	0]Symfony\Component\Console\Tests\Fixtures	2aSymfony\Component\Console\Tests\Descriptor	/[Symfony\Component\Console\Tests\Command	'KSymfony\Component\Console\Tests	(MSymfony\Component\Console\Tester	*QSymfony\Component\Console\Question	(MSymfony\Component\Console\Output	(MSymfony\Component\Console\Logger	'KSymfony\Component\Console\Input	(MSymfony\Component\Console\Helper	+SSymfony\Component\Console\Formatter	'KSymfony\Component\Console\Event	,USymfony\Component\Console\Descriptor	)OSymfony\Component\Console\Command	!?Symfony\Component\Console	
global).YSymfony\Component\Console\Tests\Tester1-WSymfony\Component\Console\Tests\Style0.YSymfony\Component\Console\Tests\Output/.YSymfony\Component\Console\Tests\Logger.-WSymfony\Component\Console\Tests\Input-.YSymfony\Component\Console\Tests\Helper,1_Symfony\Component\Console\Tests\Formatter+0]Symfony\Component\Console\Tests\Fixtures*2aSymfony\Component\Console\Tests\Descriptor(/[Symfony\Component\Console\Tests\Command''KSymfony\Component\Console\Tests&(MSymfony\Component\Console\Tester%'KSymfony\Component\Console\Style$*QSymfony\Component\Console\Question#(MSymfony\Component\Console\Output"(MSymfony\Component\Console\Logger!'KSymfony\Component\Console\Input (MSymfony\Component\Console\Helper+SSymfony\Component\Console\Formatter'KSymfony\Component\Console\Event,USymfony\Component\Console\Descriptor)OSymfony\Component\Console\Command!?Symfony\Component\Console(MSymfony\Component\Console\Output''KSymfony\Component\Console\Input'(MSymfony\Component\Console\Helper'+SSymfony\Component\Console\Formatter',USymfony\Component\Console\Descriptor'global .YSymfony\Component\Console\Tests\Tester -WSymfony\Component\Console\Tests\Style .YSymfony\Component\Console\Tests\Output .YSymfony\Component\Console\Tests\Logger -WSymfony\Component\Console\Tests\Input .YSymfony\Component\Console\Tests\Helper 1_Symfony\Component\Console\Tests\Formatter 0]Symfony\Component\Console\Tests\Fixtures 2aSymfony\Component\Console\Tests\Descriptor /[Symfony\Component\Console\Tests\Command 'KSymfony\Component\Console\Tests (MSymfony\Component\Console\Tester 'KSymfony\Component\Console\Style *QSymfony\Component\Console\Question (MSymfony\Component\Console\Output (MSymfony\Component\Console\Logger 'KSymfony\Component\Console\Input (MSymfony\Component\Console\Helper +SSymfony\Component\Console\Formatter 'KSymfony\Component\Console\Event 
   V  tE6	c;h@mErJ




X
+
				]	4		`-m>vJ!Z#KSiXI                                                 6iZSymfony\Component\DependencyInjection\Compiler*-WZSymfony\Component\DependencyInjection*Tglobal @}TSymfony\Component\DependencyInjection\Tests\ParameterBag :qTSymfony\Component\DependencyInjection\Tests\Loader HTSymfony\Component\DependencyInjection\Tests\LazyProxy\PhpDumper KTSymfony\Component\DependencyInjection\Tests\LazyProxy\Instantiator =wTSymfony\Component\DependencyInjection\Tests\Extension :qTSymfony\Component\DependencyInjection\Tests\Dumper <uTSymfony\Component\DependencyInjection\Tests\Compiler 3cTSymfony\Component\DependencyInjection\Tests :qTSymfony\Component\DependencyInjection\ParameterBag 4eTSymfony\Component\DependencyInjection\Loader ATSymfony\Component\DependencyInjection\LazyProxy\PhpDumper ETSymfony\Component\DependencyInjection\LazyProxy\Instantiator 7kTSymfony\Component\DependencyInjection\Extension 7kTSymfony\Component\DependencyInjection\Exception 4eTSymfony\Component\DependencyInjection\Dumper 2aTSymfony\Component\DependencyInjection\Dump 6iTSymfony\Component\DependencyInjection\Compiler -WTSymfony\Component\DependencyInjection #TContainer14 TBar 'KOSymfony\Component\Console\Style"H(MOSymfony\Component\Console\Output"G'KOSymfony\Component\Console\Input"F(MOSymfony\Component\Console\Helper"E+SOSymfony\Component\Console\Formatter"D,UOSymfony\Component\Console\Descriptor"C:global.Y:Symfony\Component\Console\Tests\Tester-W:Symfony\Component\Console\Tests\Style.Y:Symfony\Component\Console\Tests\Output.Y:Symfony\Component\Console\Tests\Logger-W:Symfony\Component\Console\Tests\Input.Y:Symfony\Component\Console\Tests\Helper1_:Symfony\Component\Console\Tests\Formatter0]:Symfony\Component\Console\Tests\Fixtures2a:Symfony\Component\Console\Tests\Descriptor/[:Symfony\Component\Console\Tests\Command'K:Symfony\Component\Console\Tests(M:Symfony\Component\Console\Tester'K:Symfony\Component\Console\Style*Q:Symfony\Component\Console\Question(M:Symfony\Component\Console\Output(M:Symfony\Component\Console\Logger'K:Symfony\Component\Console\Input(M:Symfony\Component\Console\Helper+S:Symfony\Component\Console\Formatter'K:Symfony\Component\Console\Event,U:Symfony\Component\Console\Descriptor)O:Symfony\Component\Console\Command!?:Symfony\Component\Console(M-Symfony\Component\Console\Output)'K-Symfony\Component\Console\Input)(M-Symfony\Component\Console\Helper)+S-Symfony\Component\Console\Formatter)'K+Symfony\Component\Console\Style*(M+Symfony\Component\Console\Output*	'K+Symfony\Component\Console\Input*(M+Symfony\Component\Console\Helper*+S+Symfony\Component\Console\Formatter*,U+Symfony\Component\Console\Descriptor*'KSymfony\Component\Console\Style"(MSymfony\Component\Console\Output"'KSymfony\Component\Console\Input"(MSymfony\Component\Console\Helper"+SSymfony\Component\Console\Formatter",USymfony\Component\Console\Descriptor"'KSymfony\Component\Console\Style(7(MSymfony\Component\Console\Output(6'KSymfony\Component\Console\Input(5(MSymfony\Component\Console\Helper(4+SSymfony\Component\Console\Formatter(3,USymfony\Component\Console\Descriptor(2'KSymfony\Component\Console\Style+(MSymfony\Component\Console\Output+'KSymfony\Component\Console\Input+(MSymfony\Component\Console\Helper++SSymfony\Component\Console\Formatter+
,USymfony\Component\Console\Descriptor+	global.YSymfony\Component\Console\Tests\Tester.YSymfony\Component\Console\Tests\Output-WSymfony\Component\Console\Tests\Input.YSymfony\Component\Console\Tests\Helper
 O  [[-Q`)>



\
'			q	/c8	[,pA tJ#e5g>jC|O.          *QoSymfony\Component\Finder\Exception	>+SoSymfony\Component\Finder\Comparator	=(MoSymfony\Component\Finder\Adapter	< =oSymfony\Component\Finder	@,UmSymfony\Component\Finder\Tests\ShellA/[mSymfony\Component\Finder\Tests\Iterator@2amSymfony\Component\Finder\Tests\FakeAdapter>1_mSymfony\Component\Finder\Tests\Expression=1_mSymfony\Component\Finder\Tests\Comparator<&ImSymfony\Component\Finder\Tests?&ImSymfony\Component\Finder\Shell;)OmSymfony\Component\Finder\Iterator:+SmSymfony\Component\Finder\Expression8*QmSymfony\Component\Finder\Exception7+SmSymfony\Component\Finder\Comparator6(MmSymfony\Component\Finder\Adapter5 =mSymfony\Component\Finder9+S`Symfony\Component\Finder\Expression)*Q`Symfony\Component\Finder\Exception)(M`Symfony\Component\Finder\Adapter),UXSymfony\Component\Finder\Tests\Shell /[XSymfony\Component\Finder\Tests\Iterator 2aXSymfony\Component\Finder\Tests\FakeAdapter 1_XSymfony\Component\Finder\Tests\Expression 1_XSymfony\Component\Finder\Tests\Comparator &IXSymfony\Component\Finder\Tests &IXSymfony\Component\Finder\Shell )OXSymfony\Component\Finder\Iterator +SXSymfony\Component\Finder\Expression *QXSymfony\Component\Finder\Exception +SXSymfony\Component\Finder\Comparator (MXSymfony\Component\Finder\Adapter  =XSymfony\Component\Finder .YSSymfony\Component\Filesystem\Exception"4.YRSymfony\Component\Filesystem\Exception!H.YESymfony\Component\Filesystem\Exception+7.YCSymfony\Component\Filesystem\Exception*.Y6Symfony\Component\Filesystem\Exception".YSymfony\Component\Filesystem\Exception#.YSymfony\Component\Filesystem\Exception$*QSymfony\Component\Filesystem\Tests4.YSymfony\Component\Filesystem\Exception2$ESymfony\Component\Filesystem3.YSymfony\Component\Filesystem\Exception)*QSymfony\Component\Filesystem\Tests .YSymfony\Component\Filesystem\Exception $ESymfony\Component\Filesystem <uSymfony\Component\DependencyInjection\Tests\Compiler-:qSymfony\Component\DependencyInjection\ParameterBag"ASymfony\Component\DependencyInjection\LazyProxy\PhpDumper"ESymfony\Component\DependencyInjection\LazyProxy\Instantiator"7kSymfony\Component\DependencyInjection\Extension"7kSymfony\Component\DependencyInjection\Exception"4eSymfony\Component\DependencyInjection\Dumper"6iSymfony\Component\DependencyInjection\Compiler"-WSymfony\Component\DependencyInjection":q|Symfony\Component\DependencyInjection\ParameterBag#A|Symfony\Component\DependencyInjection\LazyProxy\PhpDumper#E|Symfony\Component\DependencyInjection\LazyProxy\Instantiator#7k|Symfony\Component\DependencyInjection\Extension#7k|Symfony\Component\DependencyInjection\Exception#4e|Symfony\Component\DependencyInjection\Dumper#6i|Symfony\Component\DependencyInjection\Compiler#-W|Symfony\Component\DependencyInjection#:qiSymfony\Component\DependencyInjection\ParameterBag'AiSymfony\Component\DependencyInjection\LazyProxy\PhpDumper'EiSymfony\Component\DependencyInjection\LazyProxy\Instantiator'7kiSymfony\Component\DependencyInjection\Extension'7kiSymfony\Component\DependencyInjection\Exception'4eiSymfony\Component\DependencyInjection\Dumper'6iiSymfony\Component\DependencyInjection\Compiler'-WiSymfony\Component\DependencyInjection'<uZSymfony\Component\DependencyInjection\Tests\Compiler-:qZSymfony\Component\DependencyInjection\ParameterBag*AZSymfony\Component\DependencyInjection\LazyProxy\PhpDumper*EZSymfony\Component\DependencyInjection\LazyProxy\Instantiator*7kZSymfony\Component\DependencyInjection\Extension*7kZSymfony\Component\DependencyInjection\Exception*   	ZSy+SoSymfony\Component\Finder\Expression	?
 i  V$mA tJ#e5k?



p
>
			|	S	(|S(|Z.h@vT( T, vcL9|eR5~kN-            %
PHPMD\TextUI /
PHPMD\Rule\Naming /
PHPMD\Rule\Design  =
PHPMD\Rule\Controversial 5
PHPMD\Rule\CleanCode !
PHPMD\Rule )
PHPMD\Renderer !
PHPMD\Node 
PHPMD %
PHPMD\Writer %
PHPMD\TextUI /
PHPMD\Rule\Naming /
PHPMD\Rule\Design ~ =
PHPMD\Rule\Controversial }5
PHPMD\Rule\CleanCode |!
PHPMD\Rule {)
PHPMD\Renderer z!
PHPMD\Node y
PHPMD x%
PHPMD\Writer%
PHPMD\TextUI/
PHPMD\Rule\Naming/
PHPMD\Rule\Design
 =
PHPMD\Rule\Controversial	5
PHPMD\Rule\CleanCode!
PHPMD\Rule)
PHPMD\Renderer!
PHPMD\Node
PHPMD'KnSymfony\Component\Process\Pipes"6+SnSymfony\Component\Process\Exception"5'KYSymfony\Component\Process\Pipes!K+SYSymfony\Component\Process\Exception!J'KJSymfony\Component\Process\Pipes*+SJSymfony\Component\Process\Exception*+S?Symfony\Component\Process\Exception*'K=Symfony\Component\Process\Pipes"+S=Symfony\Component\Process\Exception"'KSymfony\Component\Process\Testsx+SSymfony\Component\Process\Exceptionv!?Symfony\Component\Processw'KSymfony\Component\Process\Pipes$+SSymfony\Component\Process\Exception$'KSymfony\Component\Process\Tests	+SSymfony\Component\Process\Exception	!?Symfony\Component\Process	'KSymfony\Component\Process\TestsE'KSymfony\Component\Process\PipesD+SSymfony\Component\Process\ExceptionB!?Symfony\Component\ProcessC'KSymfony\Component\Process\Tests 'KSymfony\Component\Process\Pipes +SSymfony\Component\Process\Exception !?Symfony\Component\Process +SSymfony\Component\Finder\Expression"3*QSymfony\Component\Finder\Exception"2(MSymfony\Component\Finder\Adapter"1+SSymfony\Component\Finder\Expression!G*QSymfony\Component\Finder\Exception!F(MSymfony\Component\Finder\Adapter!E+SSymfony\Component\Finder\Expression**QSymfony\Component\Finder\Exception*(MSymfony\Component\Finder\Adapter*
+SSymfony\Component\Finder\Expression**QSymfony\Component\Finder\Exception*(MSymfony\Component\Finder\Adapter*,USymfony\Component\Finder\Tests\ShellU/[Symfony\Component\Finder\Tests\IteratorT2aSymfony\Component\Finder\Tests\FakeAdapterR1_Symfony\Component\Finder\Tests\ExpressionQ1_Symfony\Component\Finder\Tests\ComparatorP&ISymfony\Component\Finder\TestsS&ISymfony\Component\Finder\ShellO)OSymfony\Component\Finder\IteratorN+SSymfony\Component\Finder\ExpressionL*QSymfony\Component\Finder\ExceptionK+SSymfony\Component\Finder\ComparatorJ(MSymfony\Component\Finder\AdapterI =Symfony\Component\FinderM+SSymfony\Component\Finder\Expression+*QSymfony\Component\Finder\Exception+(MSymfony\Component\Finder\Adapter+/[Symfony\Component\Finder\Tests\Iterator:2aSymfony\Component\Finder\Tests\FakeAdapter81_Symfony\Component\Finder\Tests\Expression71_Symfony\Component\Finder\Tests\Comparator6&ISymfony\Component\Finder\Tests9&ISymfony\Component\Finder\Shell5)OSymfony\Component\Finder\Iterator4+SSymfony\Component\Finder\Expression2*QSymfony\Component\Finder\Exception1+SSymfony\Component\Finder\Comparator0(MSymfony\Component\Finder\Adapter/ =Symfony\Component\Finder3+S~Symfony\Component\Finder\Expression$*Q~Symfony\Component\Finder\Exception$(M~Symfony\Component\Finder\Adapter$/[oSymfony\Component\Finder\Tests\Iterator	G2aoSymfony\Component\Finder\Tests\FakeAdapter	E1_oSymfony\Component\Finder\Tests\Expression	D1_oSymfony\Component\Finder\Tests\Comparator	C&IoSymfony\Component\Finder\Tests	F&IoSymfony\Component\Finder\Shell	B   
PDepend %
PHPMD\Writer 
 [  jI e:s^C!lI#`<



b
;
				`	;	U*vY7 fg.F"P]D       !?`phpDocumentor\Plugin\Twig1_`phpDocumentor\Plugin\Scrybe\Template\Mock,U`phpDocumentor\Plugin\Scrybe\TemplateH`phpDocumentor\Plugin\Scrybe\Converter\RestructuredText\VisitorsE`phpDocumentor\Plugin\Scrybe\Converter\RestructuredText\RolesJ`phpDocumentor\Plugin\Scrybe\Converter\RestructuredText\Directives>y`phpDocumentor\Plugin\Scrybe\Converter\RestructuredTextG	`phpDocumentor\Plugin\Scrybe\Converter\Metadata\TableOfContents6i`phpDocumentor\Plugin\Scrybe\Converter\Metadata>y`phpDocumentor\Plugin\Scrybe\Converter\Format\Exception4e`phpDocumentor\Plugin\Scrybe\Converter\Format7k`phpDocumentor\Plugin\Scrybe\Converter\Exception8m`phpDocumentor\Plugin\Scrybe\Converter\Definition-W`phpDocumentor\Plugin\Scrybe\Converter2a`phpDocumentor\Plugin\Scrybe\Command\Manual#C`phpDocumentor\Plugin\Scrybe;s`phpDocumentor\Plugin\LegacyNamespaceConverter\Tests5g`phpDocumentor\Plugin\LegacyNamespaceConverter*Q`phpDocumentor\Plugin\Graphs\Writer#C`phpDocumentor\Plugin\Graphs&I`phpDocumentor\Plugin\Core\Xslt8m`phpDocumentor\Plugin\Core\Transformer\Writer\Xml4e`phpDocumentor\Plugin\Core\Transformer\Writer;s`phpDocumentor\Plugin\Core\Transformer\Behaviour\Tag@}`phpDocumentor\Plugin\Core\Descriptor\Validator\FunctionsL`phpDocumentor\Plugin\Core\Descriptor\Validator\Constraints\PropertyM`phpDocumentor\Plugin\Core\Descriptor\Validator\Constraints\FunctionsK`phpDocumentor\Plugin\Core\Descriptor\Validator\Constraints\Classes6i`phpDocumentor\Plugin\Core\Descriptor\Validator!?`phpDocumentor\Plugin\Core5`phpDocumentor\Plugin(M`phpDocumentor\Partials\Exception9`phpDocumentor\Partials!?`phpDocumentor\Parser\Util&I`phpDocumentor\Parser\Exception"A`phpDocumentor\Parser\Event*Q`phpDocumentor\Parser\Configuration,U`phpDocumentor\Parser\Command\Project5`phpDocumentor\Parser3`phpDocumentor\Event*Q`phpDocumentor\Descriptor\Validator%G`phpDocumentor\Descriptor\Type.Y`phpDocumentor\Descriptor\Tag\BaseTypes$E`phpDocumentor\Descriptor\Tag2a`phpDocumentor\Descriptor\ProjectDescriptor+S`phpDocumentor\Descriptor\Interfaces'K`phpDocumentor\Descriptor\Filter*Q`phpDocumentor\Descriptor\Exception(M`phpDocumentor\Descriptor\Example&I`phpDocumentor\Descriptor\Cache7k`phpDocumentor\Descriptor\Builder\Reflector\Tags2a`phpDocumentor\Descriptor\Builder\Reflector(M`phpDocumentor\Descriptor\Builder =`phpDocumentor\Descriptor$E`phpDocumentor\Console\Output#C`phpDocumentor\Console\Input5g`phpDocumentor\Configuration\Merger\Annotation#C`phpDocumentor\Configuration#C`phpDocumentor\Compiler\Pass%G`phpDocumentor\Compiler\Linker9`phpDocumentor\Compiler%G`phpDocumentor\Command\Project"A`phpDocumentor\Command\Phar$E`phpDocumentor\Command\Helper7`phpDocumentor\Command'`phpDocumentor)`Cilex\Provider7
PDepend\Util\Coverage&I
PDepend\Util\Cache\Driver\File !?
PDepend\Util\Cache\Driver 1
PDepend\Util\Cache %
PDepend\Util)
PDepend\TextUI  =
PDepend\Source\Tokenizer 7
PDepend\Source\Parser #C
PDepend\Source\Language\PHP -W
PDepend\Source\Builder\BuilderContext 9
PDepend\Source\Builder*Q
PDepend\Source\AST\ASTArtifactList !?
PDepend\Source\ASTVisitor 1
PDepend\Source\AST 9
PDepend\Report\Summary ;
PDepend\Report\Overview 9
PDepend\Report\Jdepend )
PDepend\Report 1_
PDepend\Metrics\Analyzer\CodeRankAnalyzer  =
PDepend\Metrics\Analyzer +
PDepend\Metrics '
PDepend\Input ,U
PDepend\DependencyInjection\Compiler #C
PDepend\DependencyInjection    
PDepend\DbusUI 
   T  W$`7f=
yV0mI$


o
H
				m	H	b7fDs&t;S/](j+Q$                                  !?ephpDocumentor\Plugin\Twig1_ephpDocumentor\Plugin\Scrybe\Template\Mock,UephpDocumentor\Plugin\Scrybe\TemplateHephpDocumentor\Plugin\Scrybe\Converter\RestructuredText\VisitorsEephpDocumentor\Plugin\Scrybe\Converter\RestructuredText\RolesJephpDocumentor\Plugin\Scrybe\Converter\RestructuredText\Directives>yephpDocumentor\Plugin\Scrybe\Converter\RestructuredTextG	ephpDocumentor\Plugin\Scrybe\Converter\Metadata\TableOfContents6iephpDocumentor\Plugin\Scrybe\Converter\Metadata>yephpDocumentor\Plugin\Scrybe\Converter\Format\Exception4eephpDocumentor\Plugin\Scrybe\Converter\Format7kephpDocumentor\Plugin\Scrybe\Converter\Exception8mephpDocumentor\Plugin\Scrybe\Converter\Definition-WephpDocumentor\Plugin\Scrybe\Converter2aephpDocumentor\Plugin\Scrybe\Command\Manual#CephpDocumentor\Plugin\Scrybe;sephpDocumentor\Plugin\LegacyNamespaceConverter\Tests5gephpDocumentor\Plugin\LegacyNamespaceConverter*QephpDocumentor\Plugin\Graphs\Writer#CephpDocumentor\Plugin\Graphs&IephpDocumentor\Plugin\Core\Xslt8mephpDocumentor\Plugin\Core\Transformer\Writer\Xml4eephpDocumentor\Plugin\Core\Transformer\Writer;sephpDocumentor\Plugin\Core\Transformer\Behaviour\Tag@}ephpDocumentor\Plugin\Core\Descriptor\Validator\FunctionsLephpDocumentor\Plugin\Core\Descriptor\Validator\Constraints\PropertyMephpDocumentor\Plugin\Core\Descriptor\Validator\Constraints\FunctionsKephpDocumentor\Plugin\Core\Descriptor\Validator\Constraints\Classes~6iephpDocumentor\Plugin\Core\Descriptor\Validator!?ephpDocumentor\Plugin\Core5ephpDocumentor\Plugin(MephpDocumentor\Partials\Exception}9ephpDocumentor\Partials|!?ephpDocumentor\Parser\Util{&IephpDocumentor\Parser\Exceptionz"AephpDocumentor\Parser\Eventy*QephpDocumentor\Parser\Configurationw,UephpDocumentor\Parser\Command\Projectv5ephpDocumentor\Parserx3ephpDocumentor\Eventu*QephpDocumentor\Descriptor\Validatort%GephpDocumentor\Descriptor\Types.YephpDocumentor\Descriptor\Tag\BaseTypesr$EephpDocumentor\Descriptor\Tagq2aephpDocumentor\Descriptor\ProjectDescriptorp+SephpDocumentor\Descriptor\Interfaces'KephpDocumentor\Descriptor\Filtero*QephpDocumentor\Descriptor\Exceptionn(MephpDocumentor\Descriptor\Examplem&IephpDocumentor\Descriptor\Cachel7kephpDocumentor\Descriptor\Builder\Reflector\Tagsk2aephpDocumentor\Descriptor\Builder\Reflectorj(MephpDocumentor\Descriptor\Builderi =ephpDocumentor\Descriptorh$EephpDocumentor\Console\Outputg#CephpDocumentor\Console\Inputf5gephpDocumentor\Configuration\Merger\Annotatione#CephpDocumentor\Configurationd#CephpDocumentor\Compiler\Passc%GephpDocumentor\Compiler\Linkerb9ephpDocumentor\Compilera%GephpDocumentor\Command\Project`"AephpDocumentor\Command\Phar_$EephpDocumentor\Command\Helper^7ephpDocumentor\Command]'ephpDocumentor\)eCilex\Provider[ =`phpDocumentor\Translator2a`phpDocumentor\Transformer\Writer\Exception(M`phpDocumentor\Transformer\Writer*Q`phpDocumentor\Transformer\Template
>y`phpDocumentor\Transformer\Router\UrlGenerator\Standard	5g`phpDocumentor\Transformer\Router\UrlGenerator0]`phpDocumentor\Transformer\Router\Matcher(M`phpDocumentor\Transformer\Router+S`phpDocumentor\Transformer\Exception'K`phpDocumentor\Transformer\Event?{`phpDocumentor\Transformer\Configuration\Transformations/[`phpDocumentor\Transformer\Configuration2a`phpDocumentor\Transformer\Command\Template1_`phpDocumentor\Transformer\Command\Project+S`phpDocumentor\Transformer\Behaviour !?`phpDocumentor\Transformer(MephpDocumentor\Plugin\Twig\Writer
   T  M`/f3Y:rM,


q
H
				q	B	`=m6Od=|X%QT	zM                                  (MphpDocumentor\Plugin\Twig\WriterP!?phpDocumentor\Plugin\TwigO1_phpDocumentor\Plugin\Scrybe\Template\MockN,UphpDocumentor\Plugin\Scrybe\TemplateMHphpDocumentor\Plugin\Scrybe\Converter\RestructuredText\VisitorsKEphpDocumentor\Plugin\Scrybe\Converter\RestructuredText\RolesJJphpDocumentor\Plugin\Scrybe\Converter\RestructuredText\DirectivesH>yphpDocumentor\Plugin\Scrybe\Converter\RestructuredTextIG	phpDocumentor\Plugin\Scrybe\Converter\Metadata\TableOfContentsG6iphpDocumentor\Plugin\Scrybe\Converter\MetadataF>yphpDocumentor\Plugin\Scrybe\Converter\Format\ExceptionE4ephpDocumentor\Plugin\Scrybe\Converter\FormatD7kphpDocumentor\Plugin\Scrybe\Converter\ExceptionC8mphpDocumentor\Plugin\Scrybe\Converter\DefinitionB-WphpDocumentor\Plugin\Scrybe\ConverterA2aphpDocumentor\Plugin\Scrybe\Command\Manual@#CphpDocumentor\Plugin\ScrybeL;sphpDocumentor\Plugin\LegacyNamespaceConverter\Tests>5gphpDocumentor\Plugin\LegacyNamespaceConverter=*QphpDocumentor\Plugin\Graphs\Writer<#CphpDocumentor\Plugin\Graphs;&IphpDocumentor\Plugin\Core\Xslt:8mphpDocumentor\Plugin\Core\Transformer\Writer\Xml94ephpDocumentor\Plugin\Core\Transformer\Writer8;sphpDocumentor\Plugin\Core\Transformer\Behaviour\Tag7@}phpDocumentor\Plugin\Core\Descriptor\Validator\Functions4LphpDocumentor\Plugin\Core\Descriptor\Validator\Constraints\Property3MphpDocumentor\Plugin\Core\Descriptor\Validator\Constraints\Functions2KphpDocumentor\Plugin\Core\Descriptor\Validator\Constraints\Classes16iphpDocumentor\Plugin\Core\Descriptor\Validator5!?phpDocumentor\Plugin\Core65phpDocumentor\Plugin?(MphpDocumentor\Partials\Exception09phpDocumentor\Partials/!?phpDocumentor\Parser\Util.&IphpDocumentor\Parser\Exception-"AphpDocumentor\Parser\Event,*QphpDocumentor\Parser\Configuration*,UphpDocumentor\Parser\Command\Project)5phpDocumentor\Parser+3phpDocumentor\Event(*QphpDocumentor\Descriptor\Validator'%GphpDocumentor\Descriptor\Type&.YphpDocumentor\Descriptor\Tag\BaseTypes%$EphpDocumentor\Descriptor\Tag$2aphpDocumentor\Descriptor\ProjectDescriptor#+SphpDocumentor\Descriptor\Interfaces_'KphpDocumentor\Descriptor\Filter"*QphpDocumentor\Descriptor\Exception!(MphpDocumentor\Descriptor\Example &IphpDocumentor\Descriptor\Cache7kphpDocumentor\Descriptor\Builder\Reflector\Tags2aphpDocumentor\Descriptor\Builder\Reflector(MphpDocumentor\Descriptor\Builder =phpDocumentor\Descriptor$EphpDocumentor\Console\Output#CphpDocumentor\Console\Input5gphpDocumentor\Configuration\Merger\Annotation#CphpDocumentor\Configuration#CphpDocumentor\Compiler\Pass%GphpDocumentor\Compiler\Linker9phpDocumentor\Compiler%GphpDocumentor\Command\Project"AphpDocumentor\Command\Phar$EphpDocumentor\Command\Helper7phpDocumentor\Command'phpDocumentor)Cilex\Provider =ephpDocumentor\Translator2aephpDocumentor\Transformer\Writer\Exception(MephpDocumentor\Transformer\Writer*QephpDocumentor\Transformer\Template>yephpDocumentor\Transformer\Router\UrlGenerator\Standard5gephpDocumentor\Transformer\Router\UrlGenerator0]ephpDocumentor\Transformer\Router\Matcher(MephpDocumentor\Transformer\Router+SephpDocumentor\Transformer\Exception'KephpDocumentor\Transformer\Event?{ephpDocumentor\Transformer\Configuration\Transformations/[ephpDocumentor\Transformer\Configuration2aephpDocumentor\Transformer\Command\Template1_ephpDocumentor\Transformer\Command\Project+SephpDocumentor\Transformer\Behaviour!?phpDocumentor\TransformerV
   m	 k+}G`O;,i8nQC-



}
c
?
%
				l	]	N	9	vJ.zcF( a0!tS2iEkD&	Y% M	                                       CJMS\Serializer\Tests\Serializer\EventDispatcher\Subscriber7kJMS\Serializer\Tests\Serializer\EventDispatcher'KJMS\Serializer\Tests\Serializer,UJMS\Serializer\Tests\Metadata\Driver%GJMS\Serializer\Tests\Metadata$EJMS\Serializer\Tests\Handler3cJMS\Serializer\Tests\Fixtures\DoctrinePHPCR.YJMS\Serializer\Tests\Fixtures\Doctrine3cJMS\Serializer\Tests\Fixtures\Discriminator%GJMS\Serializer\Tests\Fixtures&IJMS\Serializer\Tests\Exclusion5JMS\Serializer\Tests7JMS\Serializer\Naming&IJMS\Serializer\Metadata\Driver;JMS\Serializer\Metadata9JMS\Serializer\Handler =JMS\Serializer\Exclusion =JMS\Serializer\Exception1_JMS\Serializer\EventDispatcher\Subscriber&IJMS\Serializer\EventDispatcher#CJMS\Serializer\Construction9JMS\Serializer\Builder!?JMS\Serializer\Annotation)JMS\Serializer3cJMS\Serializer\Tests\Fixtures\Discriminator"7JMS\Serializer\Naming"9JMS\Serializer\Handler" =JMS\Serializer\Exclusion" =JMS\Serializer\Exception"&IJMS\Serializer\EventDispatcher"#CJMS\Serializer\Construction"9JMS\Serializer\Builder")JMS\Serializer"-JMS\Parser\Tests!JMS\Parserglobal0]Metadata\Tests\Fixtures\ComplexHierarchy;Metadata\Tests\Fixtures'KMetadata\Tests\Driver\Fixture\T.YMetadata\Tests\Driver\Fixture\C\SubDir'KMetadata\Tests\Driver\Fixture\B'KMetadata\Tests\Driver\Fixture\A~7Metadata\Tests\Driver}5Metadata\Tests\Cache{)Metadata\Tests|+Metadata\Driverz)Metadata\CachexMetadatay+SHerrera\Phar\Update\Tests\Exceptionv!?Herrera\Phar\Update\Testsw%GHerrera\Phar\Update\Exceptiont3Herrera\Phar\Updateu+SHerrera\Phar\Update\Tests\Exception!?Herrera\Phar\Update\Tests%GHerrera\Phar\Update\Exception3Herrera\Phar\Update$EHerrera\Json\Tests\Exceptionr1Herrera\Json\Testss9Herrera\Json\Exceptionp%Herrera\JsonqglobalJglobalo7Doctrine\Common\Lexern#CDoctrine\Common\Annotations*.YDoctrine\Common\Annotations\Annotationl#CDoctrine\Common\Annotationsm#CInterop\Container\Exception#/Interop\Container##CInterop\Container\Exceptionk/Interop\Containerj,UCilex\Provider\Console\Adapter\Silexh9Cilex\Provider\Consolei5Cilex\Tests\Provider3Cilex\Tests\Command#Cilex\Tests)Cilex\Provider'Cilex\CommandCilex5Cilex\Tests\Providerg3Cilex\Tests\Commandf#Cilex\Testse)Cilex\Providerd'Cilex\CommandcCilexb(MphpDocumentor\Transformer\Writer)5gphpDocumentor\Transformer\Router\UrlGenerator)0]phpDocumentor\Transformer\Router\Matcher)&IphpDocumentor\Plugin\Core\Twig)+SphpDocumentor\Descriptor\Interfaces)'KphpDocumentor\Descriptor\Filter)(MphpDocumentor\Descriptor\Builder)9phpDocumentor\Compiler)global)#Test\Tests5)My\Space) =phpDocumentor\Translator^2aphpDocumentor\Transformer\Writer\Exception](MphpDocumentor\Transformer\Writer\*QphpDocumentor\Transformer\Template[>yphpDocumentor\Transformer\Router\UrlGenerator\StandardZ5gphpDocumentor\Transformer\Router\UrlGeneratora0]phpDocumentor\Transformer\Router\Matcher`(MphpDocumentor\Transformer\RouterY+SphpDocumentor\Transformer\ExceptionX'KphpDocumentor\Transformer\EventW?{phpDocumentor\Transformer\Configuration\TransformationsU/[phpDocumentor\Transformer\ConfigurationT2aphpDocumentor\Transformer\Command\TemplateS1_phpDocumentor\Transformer\Command\ProjectR
 - w`AwdE(nL-{cFpX1





r
b
H
0
						|	d	=	0	 	nT<cQ:(r[L6zY)zk\G8(zJ\0Z-                                       ,USymfony\Component\Translation\Writer,2aSymfony\Component\Translation\Tests\Loader+2aSymfony\Component\Translation\Tests\Dumper*9oSymfony\Component\Translation\Tests\DataCollector(5gSymfony\Component\Translation\Tests\Catalogue'+SSymfony\Component\Translation\Tests),USymfony\Component\Translation\Loader&/[Symfony\Component\Translation\Extractor%/[Symfony\Component\Translation\Exception$,USymfony\Component\Translation\Dumper#3cSymfony\Component\Translation\DataCollector!/[Symfony\Component\Translation\Catalogue %GSymfony\Component\Translation")O#Symfony\Component\Stopwatch\Tests#C#Symfony\Component\Stopwatchglobal'Seld\JsonLint%Psr\Log\TestPsr\Logglobal%Pimple\TestsPimple!=Pimple!>+PhpOption\TestsPhpOption2aphpDocumentor\Reflection\FunctionReflector*QphpDocumentor\Reflection\Exception&IphpDocumentor\Reflection\Event/[phpDocumentor\Reflection\ClassReflector =phpDocumentor\Reflection#CfphpDocumentor\GraphViz\Test9fphpDocumentor\GraphViz(MbphpDocumentor\Fileset\Collection7bphpDocumentor\Fileset'_PhpCollection"I3\PhpCollection\Tests'\PhpCollectionSglobal)QPhpParser\Node!AQPhpParser!@)LPhpParser\Node*BLPhpParser*A)JPhpParser\Node(<JPhpParser(;HPhpParser))GPhpParser\Node+GPhpParser+)FPhpParser\Node!CFPhpParser!B)BPhpParser\Node"BPhpParser"&I=Monolog\Handler\FingersCrossed-+=Monolog\Handler-/=Monolog\Formatter-&I<Monolog\Handler\FingersCrossed)+<Monolog\Handler)/<Monolog\Formatter)&I;Monolog\Handler\FingersCrossed)+;Monolog\Handler)/;Monolog\Formatter)/:Monolog\Processor@!?:Monolog\Handler\SyslogUdp?&I:Monolog\Handler\FingersCrossed>5:Monolog\Handler\Curl=+:Monolog\Handler</:Monolog\Formatter;:Monolog::AcmeA&I8Monolog\Handler\FingersCrossed*&+8Monolog\Handler*'/8Monolog\Formatter*%&I7Monolog\Handler\FingersCrossed*)+7Monolog\Handler**/7Monolog\Formatter*(/6Monolog\Processor&I6Monolog\Handler\FingersCrossed+6Monolog\Handler/6Monolog\Formatter6Monolog6Acme&I5Monolog\Handler\FingersCrossed#+5Monolog\Handler#/5Monolog\Formatter#&I-Monolog\Handler\FingersCrossed#+-Monolog\Handler#/-Monolog\Formatter#&I*Monolog\Handler\FingersCrossed$+*Monolog\Handler$/*Monolog\Formatter$&I'Monolog\Handler\FingersCrossed)+'Monolog\Handler)/'Monolog\Formatter)/&Monolog\Processor!?&Monolog\Handler\SyslogUdp&I&Monolog\Handler\FingersCrossed5&Monolog\Handler\Curl+&Monolog\Handler/&Monolog\Formatter&Monolog&Acme+#KevinGH\Version!?JsonSchema\Uri\Retrievers+9JsonSchema\Constraints+!?JsonSchema\Uri\Retrievers/9JsonSchema\Constraints/!?JsonSchema\Uri\Retrievers)JsonSchema\Uri'KJsonSchema\Tests\Uri\Retrievers5JsonSchema\Tests\Uri;JsonSchema\Tests\Drafts$EJsonSchema\Tests\Constraints-JsonSchema\Tests5JsonSchema\Exception9JsonSchema\Constraints!JsonSchema7
JMS\Serializer\Naming%9
JMS\Serializer\Handler% =
JMS\Serializer\Exclusion% =
JMS\Serializer\Exception%&I
JMS\Serializer\EventDispatcher%#C
JMS\Serializer\Construction%9
JMS\Serializer\Builder%)
JMS\Serializer%3JMS\Serializer\Util3JMS\Serializer\Twig!?JMS\Serializer\Tests\Twig   	JM%GSymfony\Component\Translation	
   S  sF~Q+nAyL8}O#



`
*				S	`2V"U'X*e;h.i;j>      1_#Symfony\Component\Validator\Mapping\Cache+S#Symfony\Component\Validator\Mapping-W#Symfony\Component\Validator\Exception+S#Symfony\Component\Validator\Context:q#Symfony\Component\Validator\Constraints\Collection/[#Symfony\Component\Validator\Constraints#C#Symfony\Component\Validator##Constraints-W!Symfony\Component\Validator\Violation-W!Symfony\Component\Validator\Validator(M!Symfony\Component\Validator\Util3c!Symfony\Component\Validator\Tests\Validator.Y!Symfony\Component\Validator\Tests\Util8m!Symfony\Component\Validator\Tests\Mapping\Loader9o!Symfony\Component\Validator\Tests\Mapping\Factory7k!Symfony\Component\Validator\Tests\Mapping\Cache1_!Symfony\Component\Validator\Tests\Mapping2a!Symfony\Component\Validator\Tests\Fixtures5g!Symfony\Component\Validator\Tests\Constraints)O!Symfony\Component\Validator\Tests2a!Symfony\Component\Validator\Mapping\Loader3c!Symfony\Component\Validator\Mapping\Factory1_!Symfony\Component\Validator\Mapping\Cache+S!Symfony\Component\Validator\Mapping-W!Symfony\Component\Validator\Exception+S!Symfony\Component\Validator\Context:q!Symfony\Component\Validator\Constraints\Collection/[!Symfony\Component\Validator\Constraints#C!Symfony\Component\Validator#!Constraints-WSymfony\Component\Validator\Violation%-WSymfony\Component\Validator\Validator%8mSymfony\Component\Validator\Tests\Mapping\Loader%2aSymfony\Component\Validator\Tests\Fixtures%2aSymfony\Component\Validator\Mapping\Loader%3cSymfony\Component\Validator\Mapping\Factory%1_Symfony\Component\Validator\Mapping\Cache%+SSymfony\Component\Validator\Mapping%-WSymfony\Component\Validator\Exception%+SSymfony\Component\Validator\Context%#CSymfony\Component\Validator%-WSymfony\Component\Validator\ViolationB-WSymfony\Component\Validator\ValidatorA(MSymfony\Component\Validator\Util@3cSymfony\Component\Validator\Tests\Validator?.YSymfony\Component\Validator\Tests\Util>8mSymfony\Component\Validator\Tests\Mapping\Loader=9oSymfony\Component\Validator\Tests\Mapping\Factory<7kSymfony\Component\Validator\Tests\Mapping\Cache:1_Symfony\Component\Validator\Tests\Mapping;2aSymfony\Component\Validator\Tests\Fixtures95gSymfony\Component\Validator\Tests\Constraints6)OSymfony\Component\Validator\Tests82aSymfony\Component\Validator\Mapping\Loader53cSymfony\Component\Validator\Mapping\Factory41_Symfony\Component\Validator\Mapping\Cache3+SSymfony\Component\Validator\Mapping2-WSymfony\Component\Validator\Exception1+SSymfony\Component\Validator\Context0:qSymfony\Component\Validator\Constraints\Collection//[Symfony\Component\Validator\Constraints.#CSymfony\Component\Validator-#Constraints7,USymfony\Component\Translation\Writer2aSymfony\Component\Translation\Tests\Loader2aSymfony\Component\Translation\Tests\Dumper5gSymfony\Component\Translation\Tests\Catalogue+SSymfony\Component\Translation\Tests,USymfony\Component\Translation\Loader/[Symfony\Component\Translation\Extractor/[Symfony\Component\Translation\Exception,USymfony\Component\Translation\Dumper/[Symfony\Component\Translation\Catalogue%GSymfony\Component\Translation,USymfony\Component\Translation\Writer	2aSymfony\Component\Translation\Tests\Loader	2aSymfony\Component\Translation\Tests\Dumper	5gSymfony\Component\Translation\Tests\Catalogue	+SSymfony\Component\Translation\Tests	,USymfony\Component\Translation\Loader	/[Symfony\Component\Translation\Extractor	/[Symfony\Component\Translation\Exception	,USymfony\Component\Translation\Dumper	
 u  o9b)oAe1d6



L

									}	n	_	P	=	 	vX:~d@aM0nQ-	fBcB lS;d>               3Zend\ServiceManager'!?Zend\ServiceManager\Proxyu%GZend\ServiceManager\Exceptiont9Zend\ServiceManager\Dis3Zend\ServiceManagerr!?Zend\Serializer\Exception;Zend\Serializer\Adapter+Zend\Serializer!?Zend\Serializer\Exceptionq;Zend\Serializer\Adaptero+Zend\Serializerp-IZend\Math\Sourcen3IZend\Math\Exceptionl&IIZend\Math\BigInteger\Exceptionk$EIZend\Math\BigInteger\Adapteri5IZend\Math\BigIntegerjIZend\Mathm5Zend\Json\Server\Smdh!?Zend\Json\Server\Responseg =Zend\Json\Server\Requestf"AZend\Json\Server\Exceptione-Zend\Json\Serverd3Zend\Json\ExceptioncZend\Jsonb7Zend\I18n\View\Helper)Zend\I18n\View3Zend\I18n\Validator#CZend\I18n\Translator\Plural
#CZend\I18n\Translator\Loader5Zend\I18n\Translator	-Zend\I18n\Filter3Zend\I18n\Exception7Zend\I18n\View\Helper`)Zend\I18n\Viewa3Zend\I18n\Validator_#CZend\I18n\Translator\Plural^#CZend\I18n\Translator\Loader\5Zend\I18n\Translator]-Zend\I18n\Filter[3Zend\I18n\ExceptionZ =Zend\Filter\Word\ServiceY-Zend\Filter\WordX-Zend\Filter\FileW7Zend\Filter\ExceptionV3Zend\Filter\EncryptU5Zend\Filter\CompressT#Zend\FilterS =sZend\EventManager\Filter(#CsZend\EventManager\Exception(/sZend\EventManager( =YZend\EventManager\Filter-#CYZend\EventManager\Exception-/YZend\EventManager- =WZend\EventManager\FilterR#CWZend\EventManager\ExceptionQ/WZend\EventManagerP16Zend\Config\Writer16Zend\Config\Reader76Zend\Config\Processor76Zend\Config\Exception#6Zend\Config1Zend\Config\WriterO1Zend\Config\ReaderN7Zend\Config\ProcessorM7Zend\Config\ExceptionL#Zend\ConfigK!?Zend\Cache\Storage\PluginJ"AZend\Cache\Storage\AdapterH1Zend\Cache\StorageI1Zend\Cache\ServiceG1Zend\Cache\PatternE5Zend\Cache\ExceptionD!Zend\CacheFglobalglobalglobal"globalIglobal*Xglobal*Yglobal!?global,`global%global%global!(globalCglobal*+8mASymfony\Component\Validator\Tests\Mapping\Loader#2aASymfony\Component\Validator\Tests\Fixtures#2aASymfony\Component\Validator\Mapping\Loader#1_ASymfony\Component\Validator\Mapping\Cache#-WASymfony\Component\Validator\Exception##CASymfony\Component\Validator#-W?Symfony\Component\Validator\Violation,-W?Symfony\Component\Validator\Validator,8m?Symfony\Component\Validator\Tests\Mapping\Loader,2a?Symfony\Component\Validator\Tests\Fixtures,2a?Symfony\Component\Validator\Mapping\Loader,3c?Symfony\Component\Validator\Mapping\Factory,1_?Symfony\Component\Validator\Mapping\Cache,+S?Symfony\Component\Validator\Mapping,-W?Symfony\Component\Validator\Exception,+S?Symfony\Component\Validator\Context,#C?Symfony\Component\Validator,-W#Symfony\Component\Validator\Violation-W#Symfony\Component\Validator\Validator(M#Symfony\Component\Validator\Util3c#Symfony\Component\Validator\Tests\Validator.Y#Symfony\Component\Validator\Tests\Util8m#Symfony\Component\Validator\Tests\Mapping\Loader9o#Symfony\Component\Validator\Tests\Mapping\Factory7k#Symfony\Component\Validator\Tests\Mapping\Cache1_#Symfony\Component\Validator\Tests\Mapping2a#Symfony\Component\Validator\Tests\Fixtures5g#Symfony\Component\Validator\Tests\Constraints)O#Symfony\Component\Validator\Tests2a#Symfony\Component\Validator\Mapping\Loader   #Symfony%GZend\ServiceManager\Exception'
 q  }a;'nJ$lM/d4lH"



~
j
K
-
					b	<	rcTE6 {Q#[ wU/ c2a@uB}^@     Hoge$EContrib\Component\System\Git =Contrib\Component\System7Contrib\Component\Log9Contrib\Component\File3cContrib\Bundle\CoverallsV1Bundle\Entity\Git/[Contrib\Bundle\CoverallsV1Bundle\Entity/[Contrib\Bundle\CoverallsV1Bundle\Config0]Contrib\Bundle\CoverallsV1Bundle\Command2aContrib\Bundle\CoverallsV1Bundle\Collector,UContrib\Bundle\CoverallsV1Bundle\Api-WContrib\Bundle\CoverallsBundle\Entity.YContrib\Bundle\CoverallsBundle\ConsoleglobalHoge$EContrib\Component\System\Git =Contrib\Component\System7Contrib\Component\Log9Contrib\Component\File3cContrib\Bundle\CoverallsV1Bundle\Entity\Git/[Contrib\Bundle\CoverallsV1Bundle\Entity/[Contrib\Bundle\CoverallsV1Bundle\Config0]Contrib\Bundle\CoverallsV1Bundle\Command2aContrib\Bundle\CoverallsV1Bundle\Collector,UContrib\Bundle\CoverallsV1Bundle\Api-WContrib\Bundle\CoverallsBundle\Entity.YContrib\Bundle\CoverallsBundle\Consoleglobal%GSatooshi\Component\System\Git!?Satooshi\Component\System9Satooshi\Component\Log;Satooshi\Component\File4eSatooshi\Bundle\CoverallsV1Bundle\Repository4eSatooshi\Bundle\CoverallsV1Bundle\Entity\Git:qSatooshi\Bundle\CoverallsV1Bundle\Entity\Exception0]Satooshi\Bundle\CoverallsV1Bundle\Entity0]Satooshi\Bundle\CoverallsV1Bundle\Config1_Satooshi\Bundle\CoverallsV1Bundle\Command3cSatooshi\Bundle\CoverallsV1Bundle\Collector-WSatooshi\Bundle\CoverallsV1Bundle\Api)OSatooshi\Bundle\CoverallsV1Bundle.YSatooshi\Bundle\CoverallsBundle\Entity/[Satooshi\Bundle\CoverallsBundle\Console'KSatooshi\Bundle\CoverallsBundleSatooshiHoge'CoverallsTestglobal global~globalglobal|globalzglobalyglobalxglobal$\wglobal)vglobal^global:global!?6Zend\Stdlib\StringWrapper*/[6Zend\Stdlib\Hydrator\Strategy\Exception*%G6Zend\Stdlib\Hydrator\Strategy*+S6Zend\Stdlib\Hydrator\NamingStrategy*%G6Zend\Stdlib\Hydrator\Iterator*#C6Zend\Stdlib\Hydrator\Filter*56Zend\Stdlib\Hydrator*/6Zend\Stdlib\Guard*76Zend\Stdlib\Extractor*76Zend\Stdlib\Exception*96Zend\Stdlib\ArrayUtils*#6Zend\Stdlib*!?Zend\Stdlib\StringWrapper-/[Zend\Stdlib\Hydrator\Strategy\Exception-%GZend\Stdlib\Hydrator\Strategy-+SZend\Stdlib\Hydrator\NamingStrategy-%GZend\Stdlib\Hydrator\Iterator-#CZend\Stdlib\Hydrator\Filter-5Zend\Stdlib\Hydrator-/Zend\Stdlib\Guard-7Zend\Stdlib\Extractor-7Zend\Stdlib\Exception-9Zend\Stdlib\ArrayUtils-
#Zend\Stdlib-	!?Zend\Stdlib\StringWrapper'/[Zend\Stdlib\Hydrator\Strategy\Exception'%GZend\Stdlib\Hydrator\Strategy'+SZend\Stdlib\Hydrator\NamingStrategy'#CZend\Stdlib\Hydrator\Filter'5Zend\Stdlib\Hydrator'/Zend\Stdlib\Guard'7Zend\Stdlib\Extractor'7Zend\Stdlib\Exception'9Zend\Stdlib\ArrayUtils'#Zend\Stdlib'!?Zend\Stdlib\StringWrapper/[Zend\Stdlib\Hydrator\Strategy\Exception%GZend\Stdlib\Hydrator\Strategy+SZend\Stdlib\Hydrator\NamingStrategy~%GZend\Stdlib\Hydrator\Iterator}#CZend\Stdlib\Hydrator\Filter|&IZend\Stdlib\Hydrator\Aggregate{5Zend\Stdlib\Hydratorz/Zend\Stdlib\Guardy7Zend\Stdlib\Extractor7Zend\Stdlib\Exceptionx9Zend\Stdlib\ArrayUtilsw#Zend\Stdlibv%GZend\ServiceManager\Exception*3Zend\ServiceManager*!?Zend\ServiceManager\Proxy%GZend\ServiceManager\Exception9Zend\ServiceManager\Di   Zend\Sglobal
 w  mT6x[=g@!}bF/d,	





g
K
)
					[	;		jAd:nQ,c<tXI4	hU8}fG(oO9$   'Guzzle\Common"%Guzzle\Cache"%Guzzle\Batch"'Guzzle\Stream$;Guzzle\Service\Resource$"AGuzzle\Service\Description$7kGuzzle\Service\Command\LocationVisitor\Response$6iGuzzle\Service\Command\LocationVisitor\Request$&IGuzzle\Service\Command\Factory$9Guzzle\Service\Command$9Guzzle\Service\Builder$)Guzzle\Service$&IGuzzle\Plugin\Cookie\CookieJar$3Guzzle\Plugin\Cache$7Guzzle\Plugin\Backoff$/Guzzle\Parser\Url$!?Guzzle\Parser\UriTemplate$7Guzzle\Parser\Message$5Guzzle\Parser\Cookie$!Guzzle\Log$/Guzzle\Inflection$3Guzzle\Http\Message$7Guzzle\Http\Exception$-Guzzle\Http\Curl$#Guzzle\Http$;Guzzle\Common\Exception$'Guzzle\Common$%Guzzle\Cache$%Guzzle\Batch$global3Guzzle\Tests\Stream%GGuzzle\Tests\Service\Resource'KGuzzle\Tests\Service\Mock\Model-WGuzzle\Tests\Service\Mock\Command\Sub)OGuzzle\Tests\Service\Mock\Command!?Guzzle\Tests\Service\Mock&IGuzzle\Tests\Service\Exception(MGuzzle\Tests\Service\Description=wGuzzle\Tests\Service\Command\LocationVisitor\Response<uGuzzle\Tests\Service\Command\LocationVisitor\Request$EGuzzle\Tests\Service\Command$EGuzzle\Tests\Service\Builder5Guzzle\Tests\Service$EGuzzle\Tests\Plugin\Redirect!?Guzzle\Tests\Plugin\Oauth =Guzzle\Tests\Plugin\Mock;Guzzle\Tests\Plugin\Md5;Guzzle\Tests\Plugin\Log#CGuzzle\Tests\Plugin\History)OGuzzle\Tests\Plugin\ErrorResponse$EGuzzle\Tests\Plugin\CurlAuth,UGuzzle\Tests\Plugin\Cookie\CookieJar"AGuzzle\Tests\Plugin\Cookie!?Guzzle\Tests\Plugin\Cache#CGuzzle\Tests\Plugin\Backoff!?Guzzle\Tests\Plugin\Async(MGuzzle\Tests\Parsers\UriTemplate#CGuzzle\Tests\Parser\Message"AGuzzle\Tests\Parser\Cookie3Guzzle\Tests\Parser/Guzzle\Tests\Mock5Guzzle\Tests\Message-Guzzle\Tests\Log7Guzzle\Tests\Iterator;Guzzle\Tests\Inflection(MGuzzle\Tests\Http\Message\Header!?Guzzle\Tests\Http\Message#CGuzzle\Tests\Http\Exception9Guzzle\Tests\Http\Curl/Guzzle\Tests\Http%GGuzzle\Tests\Common\Exception!?Guzzle\Tests\Common\Cache3Guzzle\Tests\Common1Guzzle\Tests\Cache1Guzzle\Tests\Batch%Guzzle\Tests'Guzzle\Stream;Guzzle\Service\Resource =Guzzle\Service\Exception"AGuzzle\Service\Description7kGuzzle\Service\Command\LocationVisitor\Response6iGuzzle\Service\Command\LocationVisitor\Request.YGuzzle\Service\Command\LocationVisitor&IGuzzle\Service\Command\Factory9Guzzle\Service\Command9Guzzle\Service\Builder)Guzzle\Service3Guzzle\Plugin\Oauth1Guzzle\Plugin\Mock/Guzzle\Plugin\Md5/Guzzle\Plugin\Log7Guzzle\Plugin\History-WGuzzle\Plugin\ErrorResponse\Exception#CGuzzle\Plugin\ErrorResponse9Guzzle\Plugin\CurlAuth&IGuzzle\Plugin\Cookie\Exception&IGuzzle\Plugin\Cookie\CookieJar5Guzzle\Plugin\Cookie3Guzzle\Plugin\Cache7Guzzle\Plugin\Backoff3Guzzle\Plugin\Async/Guzzle\Parser\Url!?Guzzle\Parser\UriTemplate7Guzzle\Parser\Message5Guzzle\Parser\Cookie'Guzzle\Parser!Guzzle\Log+Guzzle\Iterator/Guzzle\Inflection#CGuzzle\Http\QueryAggregator"AGuzzle\Http\Message\Header3Guzzle\Http\Message7Guzzle\Http\Exception-Guzzle\Http\Curl#Guzzle\Http;Guzzle\Common\Exception'Guzzle\Common%Guzzle\Cache9Guzzle\Batch\Exception   Guzzle\Batch
   }yV2pT-	VpY:qZ;





_
E
+
					y	]	F	-	mJ,wK/	\7$wZ9rG$|a@g<qVA"            #oZend\LoaderL9Zend\Escaper\ExceptionA%Zend\Escaper@1Zend\Http\Response? =Zend\Http\PhpEnvironment>"AZend\Http\Header\Exception=.YZend\Http\Header\Accept\FieldValuePart<-Zend\Http\Header;3Zend\Http\Exception:"AZend\Http\Client\Exception9*QZend\Http\Client\Adapter\Exception8 =Zend\Http\Client\Adapter7Zend\Http6"AZend\Http\Header\Exception)-Zend\Http\Header)3Zend\Http\Exception)"AZend\Http\Client\Exception)*QZend\Http\Client\Adapter\Exception) =Zend\Http\Client\Adapter)1Zend\Http\ResponseK =Zend\Http\PhpEnvironmentJ"AZend\Http\Header\ExceptionI.YZend\Http\Header\Accept\FieldValuePartH-Zend\Http\HeaderG3Zend\Http\ExceptionF"AZend\Http\Client\ExceptionE*QZend\Http\Client\Adapter\ExceptionD =Zend\Http\Client\AdapterCZend\HttpB$EZend\Crypt\Symmetric\Padding)&IZend\Crypt\Symmetric\Exception'5Zend\Crypt\Symmetric(*QZend\Crypt\PublicKey\Rsa\Exception& =Zend\Crypt\PublicKey\Rsa%5Zend\Crypt\PublicKey$%GZend\Crypt\Password\Exception#3Zend\Crypt\Password"+SZend\Crypt\Key\Derivation\Exception !?Zend\Crypt\Key\Derivation!5Zend\Crypt\Exception!Zend\Crypt$EZend\Crypt\Symmetric\Padding5&IZend\Crypt\Symmetric\Exception35Zend\Crypt\Symmetric4*QZend\Crypt\PublicKey\Rsa\Exception2 =Zend\Crypt\PublicKey\Rsa15Zend\Crypt\PublicKey0%GZend\Crypt\Password\Exception/3Zend\Crypt\Password.+SZend\Crypt\Key\Derivation\Exception,!?Zend\Crypt\Key\Derivation-5Zend\Crypt\Exception+!Zend\Crypt*-XOAuth2\TokenType)XOAuth2\Storage3XOAuth2\ResponseType)XOAuth2\Request7XOAuth2\OpenID\Storage"AXOAuth2\OpenID\ResponseType;XOAuth2\OpenID\GrantType
 =XOAuth2\OpenID\Controller	-XOAuth2\GrantType/XOAuth2\Encryption/XOAuth2\Controller"AXOAuth2\ClientAssertionTypeXOAuth2-VOAuth2\TokenType)VOAuth2\Storage3VOAuth2\ResponseType)VOAuth2\Request7VOAuth2\OpenID\Storage"AVOAuth2\OpenID\ResponseType;VOAuth2\OpenID\GrantType =VOAuth2\OpenID\Controller-VOAuth2\GrantType/VOAuth2\Encryption/VOAuth2\Controller"AVOAuth2\ClientAssertionTypeVOAuth29Korg\bovigo\vfs\visitor*<)Korg\bovigo\vfs*;9Iorg\bovigo\vfs\visitor%9Iorg\bovigo\vfs\content%)Iorg\bovigo\vfs%9Horg\bovigo\vfs\visitor9Horg\bovigo\vfs\content)Horg\bovigo\vfs9Dorg\bovigo\vfs\visitor 9Dorg\bovigo\vfs\content)Dorg\bovigo\vfs9=org\bovigo\vfs\visitor%9=org\bovigo\vfs\content%)=org\bovigo\vfs%9;org\bovigo\vfs\visitor%9;org\bovigo\vfs\content%);org\bovigo\vfs%9:org\bovigo\vfs\visitor9:org\bovigo\vfs\content):org\bovigo\vfs'Guzzle\Stream";Guzzle\Service\Resource""AGuzzle\Service\Description"7kGuzzle\Service\Command\LocationVisitor\Response"6iGuzzle\Service\Command\LocationVisitor\Request"&IGuzzle\Service\Command\Factory"9Guzzle\Service\Command"9Guzzle\Service\Builder")Guzzle\Service"#CGuzzle\Plugin\ErrorResponse"&IGuzzle\Plugin\Cookie\CookieJar"3Guzzle\Plugin\Cache"7Guzzle\Plugin\Backoff"/Guzzle\Parser\Url"!?Guzzle\Parser\UriTemplate"7Guzzle\Parser\Message"5Guzzle\Parser\Cookie"!Guzzle\Log"/Guzzle\Inflection"#CGuzzle\Http\QueryAggregator""AGuzzle\Http\Message\Header"3Guzzle\Http\Message"7Guzzle\Http\Exception"-Guzzle\Http\Curl"#Guzzle\Http"  7oZend\Loader\ExceptionM
  pY: lR1Y>(xbD)}]E%




~
m
Q
.
					z	X	;	"	dL,
qS-
pJ'yY;oQ2^9
^4gA                    $E"ZF\ContentNegotiation\Filter%G"ZF\ContentNegotiation\Factory'K"ZF\ContentNegotiation\Exception.Y"ZF\ContentNegotiation\ControllerPlugin7"ZF\ContentNegotiation+S"ZFTest\ContentNegotiation\Validator+S"ZFTest\ContentNegotiation\TestAsset)O"ZFTest\ContentNegotiation\Factory!?"ZFTest\ContentNegotiation1"=Zend\View\Strategy1"=Zend\View\Resolver1"=Zend\View\Renderer+"=Zend\View\Model ="=Zend\View\Helper\Service.Y"=Zend\View\Helper\Placeholder\Container$E"=Zend\View\Helper\Placeholder,U"=Zend\View\Helper\Navigation\Listener#C"=Zend\View\Helper\Navigation ="=Zend\View\Helper\Escaper-"=Zend\View\Helper3"=Zend\View\Exception"=Zend\View1ZF\ApiProblem\View9ZF\ApiProblem\Listener7ZF\ApiProblem\Factory;ZF\ApiProblem\Exception'ZF\ApiProblem9ZFTest\ApiProblem\View"AZFTest\ApiProblem\Listener/ZFTest\ApiProblem1ZF\ApiProblem\View9ZF\ApiProblem\Listener7ZF\ApiProblem\Factory;ZF\ApiProblem\Exception'ZF\ApiProblem9ZFTest\ApiProblem\View"AZFTest\ApiProblem\Listener/ZFTest\ApiProblem"AYZend\InputFilter\Exceptiono-YZend\InputFiltern"A8Zend\Form\View\Helper\File%G8Zend\Form\View\Helper\Captcha78Zend\Form\View\Helper)8Zend\Form\View38Zend\Form\Exception/8Zend\Form\Element58Zend\Form\Annotation8Zend\Form"AZend\Form\View\Helper\Filel%GZend\Form\View\Helper\Captchak7Zend\Form\View\Helperj)Zend\Form\Viewm3Zend\Form\Exceptioni/Zend\Form\Elementg5Zend\Form\AnnotationfZend\Formh5Zend\Mvc\Router\Http*!?Zend\Mvc\Router\Exception*;Zend\Mvc\Router\Console*+Zend\Mvc\Router*;Zend\Mvc\ResponseSender*1Zend\Mvc\Exception*"AZend\Mvc\Controller\Plugin*Zend\Mvc*1Zend\Mvc\View\Httpd7Zend\Mvc\View\Consolec'Zend\Mvc\Viewe-Zend\Mvc\Serviceb5Zend\Mvc\Router\Http`!?Zend\Mvc\Router\Exception_;Zend\Mvc\Router\Console^+Zend\Mvc\Routera;Zend\Mvc\ResponseSender]'Zend\Mvc\I18n\1Zend\Mvc\Exception[*QZend\Mvc\Controller\Plugin\ServiceZ"AZend\Mvc\Controller\PluginY3Zend\Mvc\ControllerXZend\MvcW1eZend\Mvc\View\Http7eZend\Mvc\View\Console'eZend\Mvc\View-eZend\Mvc\Service5eZend\Mvc\Router\Http!?eZend\Mvc\Router\Exception;eZend\Mvc\Router\Console+eZend\Mvc\Router;eZend\Mvc\ResponseSender'eZend\Mvc\I18n1eZend\Mvc\Exception*QeZend\Mvc\Controller\Plugin\Service"AeZend\Mvc\Controller\Plugin3eZend\Mvc\ControllereZend\Mvc1cZend\Mvc\View\Http}7cZend\Mvc\View\Console|'cZend\Mvc\View~-cZend\Mvc\Service{5cZend\Mvc\Router\Httpy!?cZend\Mvc\Router\Exceptionx;cZend\Mvc\Router\Consolew+cZend\Mvc\Routerz;cZend\Mvc\ResponseSenderv'cZend\Mvc\I18nu1cZend\Mvc\Exceptiont*QcZend\Mvc\Controller\Plugin\Services"AcZend\Mvc\Controller\Pluginr3cZend\Mvc\ControllerqcZend\Mvcp!?BZend\Validator\Translator9BZend\Validator\Sitemap3BZend\Validator\File =BZend\Validator\Exception/BZend\Validator\Db9BZend\Validator\Barcode)BZend\Validator!?%Zend\Validator\TranslatorV9%Zend\Validator\SitemapU3%Zend\Validator\FileT =%Zend\Validator\ExceptionS/%Zend\Validator\DbR9%Zend\Validator\BarcodeQ)%Zend\ValidatorP1Zend\Uri\ExceptionNZend\UriO7Zend\Loader\Exception*#Zend\Loader*7Zend\Loader\Exception   Zend\Loader
 s  `4tL; xgL4x`E*mI 



f
K
&
				u	P	9	$	raG,\3 tP$d>pJ&];lH-wY;             #C6<Zend\Db\Sql\Platform\IbmDb2U56<Zend\Db\Sql\PlatformT76<Zend\Db\Sql\ExceptionS76<Zend\Db\Sql\Ddl\IndexR"A6<Zend\Db\Sql\Ddl\ConstraintQ96<Zend\Db\Sql\Ddl\ColumnP+6<Zend\Db\Sql\DdlO#6<Zend\Db\SqlN"A6<Zend\Db\RowGateway\FeatureM$E6<Zend\Db\RowGateway\ExceptionL16<Zend\Db\RowGatewayK#C6<Zend\Db\ResultSet\ExceptionJ/6<Zend\Db\ResultSetI;6<Zend\Db\Metadata\SourceH;6<Zend\Db\Metadata\ObjectG-6<Zend\Db\MetadataF/6<Zend\Db\ExceptionE =6<Zend\Db\Adapter\ProfilerD =6<Zend\Db\Adapter\PlatformC!?6<Zend\Db\Adapter\ExceptionB/[6<Zend\Db\Adapter\Driver\Sqlsrv\ExceptionA%G6<Zend\Db\Adapter\Driver\Sqlsrv@$E6<Zend\Db\Adapter\Driver\Pgsql?*Q6<Zend\Db\Adapter\Driver\Pdo\Feature>"A6<Zend\Db\Adapter\Driver\Pdo=#C6<Zend\Db\Adapter\Driver\Oci8<%G6<Zend\Db\Adapter\Driver\Mysqli;%G6<Zend\Db\Adapter\Driver\IbmDb2:&I6<Zend\Db\Adapter\Driver\Feature996<Zend\Db\Adapter\Driver8+6<Zend\Db\Adapter7%G4Zend\Authentication\Validator#C4Zend\Authentication\Storage%G4Zend\Authentication\Exception2a4Zend\Authentication\Adapter\Http\Exception(M4Zend\Authentication\Adapter\Http-W4Zend\Authentication\Adapter\Exception5g4Zend\Authentication\Adapter\DbTable\Exception+S4Zend\Authentication\Adapter\DbTable#C4Zend\Authentication\Adapter34Zend\Authentication%G4Zend\Authentication\Validator#C4Zend\Authentication\Storage%G4Zend\Authentication\Exception2a4Zend\Authentication\Adapter\Http\Exception(M4Zend\Authentication\Adapter\Http -W4Zend\Authentication\Adapter\Exception5g4Zend\Authentication\Adapter\DbTable\Exception+S4Zend\Authentication\Adapter\DbTable#C4Zend\Authentication\Adapter34Zend\Authentication119Zend\Dom\Exception/19Zend\Dom\Document19Zend\Dom!?0Zend\Console\RouteMatcher30Zend\Console\Prompt90Zend\Console\Exception10Zend\Console\Color50Zend\Console\Charset50Zend\Console\Adapter%0Zend\Console).Zend\Test\Util$E.Zend\Test\PHPUnit\Controller).Zend\Test\Util$E.Zend\Test\PHPUnit\Controller-W,Zend\ModuleManager\Listener\Exception*#C,Zend\ModuleManager\Listener*"A,Zend\ModuleManager\Feature*$E,Zend\ModuleManager\Exception*1,Zend\ModuleManager*-W,Zend\ModuleManager\Listener\Exception#C,Zend\ModuleManager\Listener"A,Zend\ModuleManager\Feature$E,Zend\ModuleManager\Exception1,Zend\ModuleManager-W,Zend\ModuleManager\Listener\Exception#C,Zend\ModuleManager\Listener"A,Zend\ModuleManager\Feature$E,Zend\ModuleManager\Exception1,Zend\ModuleManager;+Zend\Log\Writer\FirePhp!?+Zend\Log\Writer\ChromePhp++Zend\Log\Writer1+Zend\Log\Processor1+Zend\Log\Formatter++Zend\Log\Filter1+Zend\Log\Exception+Zend\Log;+Zend\Log\Writer\FirePhp'{!?+Zend\Log\Writer\ChromePhp'z++Zend\Log\Writer'|1+Zend\Log\Processor'y1+Zend\Log\Formatter'w++Zend\Log\Filter'v1+Zend\Log\Exception'u+Zend\Log'x;+Zend\Log\Writer\FirePhp!?+Zend\Log\Writer\ChromePhp++Zend\Log\Writer1+Zend\Log\Processor1+Zend\Log\Formatter++Zend\Log\Filter1+Zend\Log\Exception+Zend\Log'K"ZF\ContentNegotiation\Validator$E"ZF\ContentNegotiation\Filter%G"ZF\ContentNegotiation\Factory'K"ZF\ContentNegotiation\Exception.Y"ZF\ContentNegotiation\ControllerPlugin7"ZF\ContentNegotiation+S"ZFTest\ContentNegotiation\Validator+S"ZFTest\ContentNegotiation\TestAsset)O"ZFTest\ContentNegotiation\Factory!?"ZFTest\ContentNegotiation   "A6<Zend\Db\Sql\Platform\MysqlW
   } nP3~W1tNgG-	z[8




q
M
&					t	B	2	v^'j8!	hI/}gXC3w_(k9"
iJ0~hYD3   '6Hamcrest\Corep+6Hamcrest\Arraysm6Hamcrestn%6test\Mockeryj6global`'6Mockery\Testsk6i6Mockery\Test\Generator\StringManipulation\Passi+6Mockery\Matcherh)6Mockery\Loaderg1_6Mockery\Generator\StringManipulation\Passf/6Mockery\Generatore/6Mockery\Exceptiond96Mockery\CountValidatorc;6Mockery\Adapter\Phpunita6Mockeryb%6test\Mockery6global'6Mockery\Tests6i6Mockery\Test\Generator\StringManipulation\Pass+6Mockery\Matcher)6Mockery\Loader1_6Mockery\Generator\StringManipulation\Pass/6Mockery\Generator/6Mockery\Exception96Mockery\CountValidator;6Mockery\Adapter\Phpunit6Mockery%6test\Mockery%6global'6Mockery\Tests&6i6Mockery\Test\Generator\StringManipulation\Pass$+6Mockery\Matcher#)6Mockery\Loader"1_6Mockery\Generator\StringManipulation\Pass!/6Mockery\Generator /6Mockery\Exception96Mockery\CountValidator;6Mockery\Adapter\Phpunit6Mockery%6test\Mockery6globalv'6Mockery\Tests6i6Mockery\Test\Generator\StringManipulation\Pass+6Mockery\Matcher~)6Mockery\Loader}1_6Mockery\Generator\StringManipulation\Pass|/6Mockery\Generator{/6Mockery\Exceptionz96Mockery\CountValidatory;6Mockery\Adapter\Phpunitw6Mockeryx%6test\Mockery 6global '6Mockery\Tests 6i6Mockery\Test\Generator\StringManipulation\Pass +6Mockery\Matcher )6Mockery\Loader 1_6Mockery\Generator\StringManipulation\Pass /6Mockery\Generator /6Mockery\Exception 96Mockery\CountValidator ;6Mockery\Adapter\Phpunit 6Mockery %6test\Mockery 6global '6Mockery\Tests 6i6Mockery\Test\Generator\StringManipulation\Pass +6Mockery\Matcher )6Mockery\Loader 1_6Mockery\Generator\StringManipulation\Pass /6Mockery\Generator /6Mockery\Exception 96Mockery\CountValidator ;6Mockery\Adapter\Phpunit 6Mockery 1_6WZend\Db\TableGateway\Feature\EventFeature6$E6WZend\Db\TableGateway\Feature5&I6WZend\Db\TableGateway\Exception456WZend\Db\TableGateway376WZend\Db\Sql\Predicate2*Q6WZend\Db\Sql\Platform\SqlServer\Ddl0&I6WZend\Db\Sql\Platform\SqlServer1#C6WZend\Db\Sql\Platform\Oracle/&I6WZend\Db\Sql\Platform\Mysql\Ddl-"A6WZend\Db\Sql\Platform\Mysql.#C6WZend\Db\Sql\Platform\IbmDb2,56WZend\Db\Sql\Platform+76WZend\Db\Sql\Exception*76WZend\Db\Sql\Ddl\Index)"A6WZend\Db\Sql\Ddl\Constraint(96WZend\Db\Sql\Ddl\Column'+6WZend\Db\Sql\Ddl&#6WZend\Db\Sql%"A6WZend\Db\RowGateway\Feature$$E6WZend\Db\RowGateway\Exception#16WZend\Db\RowGateway"#C6WZend\Db\ResultSet\Exception!/6WZend\Db\ResultSet ;6WZend\Db\Metadata\Source;6WZend\Db\Metadata\Object-6WZend\Db\Metadata/6WZend\Db\Exception =6WZend\Db\Adapter\Profiler =6WZend\Db\Adapter\Platform!?6WZend\Db\Adapter\Exception/[6WZend\Db\Adapter\Driver\Sqlsrv\Exception%G6WZend\Db\Adapter\Driver\Sqlsrv$E6WZend\Db\Adapter\Driver\Pgsql*Q6WZend\Db\Adapter\Driver\Pdo\Feature"A6WZend\Db\Adapter\Driver\Pdo#C6WZend\Db\Adapter\Driver\Oci8%G6WZend\Db\Adapter\Driver\Mysqli%G6WZend\Db\Adapter\Driver\IbmDb2&I6WZend\Db\Adapter\Driver\Feature96WZend\Db\Adapter\Driver+6WZend\Db\Adapter1_6<Zend\Db\TableGateway\Feature\EventFeature_$E6<Zend\Db\TableGateway\Feature^&I6<Zend\Db\TableGateway\Exception]56<Zend\Db\TableGateway\76<Zend\Db\Sql\Predicate[*Q6<Zend\Db\Sql\Platform\SqlServer\DdlY&I6<Zend\Db\Sql\Platform\SqlServerZ#C6<Zend\Db\Sql\Platform\OracleX36Hamcrest\Collectiono
    {kN0s]C!|dJ+}eH0xcK+





o
L
						[	3	y]<jN'b=%mZB*qE(
nO+ bJiR:                  ;>PhpSpec\Console\Command+>PhpSpec\Console)>PhpSpec\Config$E>PhpSpec\CodeGenerator\Writer'K>PhpSpec\CodeGenerator\Generator7>PhpSpec\CodeGenerator5>PhpSpec\CodeAnalysis>PhpSpec>Matcher>Fake+S>PhpSpec\Wrapper\Subject\Expectation#+>PhpSpec\Wrapper#!?>PhpSpec\Runner\Maintainer# =>PhpSpec\Process\ReRunner#+>PhpSpec\Process#+>PhpSpec\Matcher#+>PhpSpec\Locator#!>PhpSpec\IO#
*Q>PhpSpec\Formatter\Presenter\Differ##C>PhpSpec\Formatter\Presenter#9>PhpSpec\Formatter\Html#/>PhpSpec\Formatter#	/>PhpSpec\Extension#'>PhpSpec\Event#'K>PhpSpec\CodeGenerator\Generator#>PhpSpec#/>spec\PhpSpec\Util%7>spec\PhpSpec\Listener%5>Phpspec\CodeAnalysis%+S>PhpSpec\Wrapper\Subject\Expectation%+>PhpSpec\Wrapper%!?>PhpSpec\Runner\Maintainer% =>PhpSpec\Process\ReRunner%%G>PhpSpec\Process\Prerequisites%;>PhpSpec\Process\Context%+>PhpSpec\Process%+>PhpSpec\Matcher%+>PhpSpec\Locator%!>PhpSpec\IO%*Q>PhpSpec\Formatter\Presenter\Differ%#C>PhpSpec\Formatter\Presenter%9>PhpSpec\Formatter\Html%/>PhpSpec\Formatter%/>PhpSpec\Extension%'>PhpSpec\Event%+>PhpSpec\Console%$E>PhpSpec\CodeGenerator\Writer%'K>PhpSpec\CodeGenerator\Generator%>PhpSpec%0]>spec\PhpSpec\Wrapper\Subject\Expectation$E>spec\PhpSpec\Wrapper\Subject5>spec\PhpSpec\Wrapper/>spec\PhpSpec\Util&I>spec\PhpSpec\Runner\Maintainer3>spec\PhpSpec\Runner%G>spec\PhpSpec\Process\ReRunner*Q>spec\PhpSpec\Process\Prerequisites$E>spec\PhpSpec\Process\Context5>spec\PhpSpec\Matcher!?>spec\PhpSpec\Locator\PSR05>spec\PhpSpec\Locator =>spec\PhpSpec\Loader\Node3>spec\PhpSpec\Loader7>spec\PhpSpec\Listener/[>spec\PhpSpec\Formatter\Presenter\Differ(M>spec\PhpSpec\Formatter\Presenter#C>spec\PhpSpec\Formatter\Html9>spec\PhpSpec\Formatter'K>spec\PhpSpec\Exception\Fracture&I>spec\PhpSpec\Exception\Example9>spec\PhpSpec\Exception1>spec\PhpSpec\Event5>spec\PhpSpec\Console3>spec\PhpSpec\Config)O>spec\PhpSpec\CodeGenerator\Writer,U>spec\PhpSpec\CodeGenerator\Generator"A>spec\PhpSpec\CodeGenerator!?>spec\PhpSpec\CodeAnalysis%>spec\PhpSpec,U>integration\PhpSpec\Console\Prompter>global5>Phpspec\CodeAnalysis+S>PhpSpec\Wrapper\Subject\Expectation;>PhpSpec\Wrapper\Subject+>PhpSpec\Wrapper%>PhpSpec\Util!?>PhpSpec\Runner\Maintainer)>PhpSpec\Runner =>PhpSpec\Process\ReRunner%G>PhpSpec\Process\Prerequisites;>PhpSpec\Process\Context+>PhpSpec\Process+>PhpSpec\Matcher5>PhpSpec\Locator\PSR0	+>PhpSpec\Locator
3>PhpSpec\Loader\Node)>PhpSpec\Loader->PhpSpec\Listener!>PhpSpec\IO*Q>PhpSpec\Formatter\Presenter\Differ#C>PhpSpec\Formatter\Presenter9>PhpSpec\Formatter\Html/>PhpSpec\Formatter+>PhpSpec\Factory/>PhpSpec\Extension!?>PhpSpec\Exception\Wrapper !?>PhpSpec\Exception\Locator#C>PhpSpec\Exception\Generator"A>PhpSpec\Exception\Fracture!?>PhpSpec\Exception\Example/>PhpSpec\Exception'>PhpSpec\Event =>PhpSpec\Console\Prompter;>PhpSpec\Console\Command+>PhpSpec\Console)>PhpSpec\Config$E>PhpSpec\CodeGenerator\Writer'K>PhpSpec\CodeGenerator\Generator7>PhpSpec\CodeGenerator5>PhpSpec\CodeAnalysis>PhpSpec>Matcher>Fake6globall%6Hamcrest\Xmlu'6Hamcrest\Typet'6Hamcrest\Texts+6Hamcrest\Numberr
   {jF$sH5d>kN?aE(




\
3
					i	L	'y\7vQ:"lH&uJpX;#lJ5xcAsT-       'K>spec\PhpSpec\Exception\Fracture4&I>spec\PhpSpec\Exception\Example29>spec\PhpSpec\Exception31>spec\PhpSpec\Event15>spec\PhpSpec\Console03>spec\PhpSpec\Config/)O>spec\PhpSpec\CodeGenerator\Writer.,U>spec\PhpSpec\CodeGenerator\Generator,"A>spec\PhpSpec\CodeGenerator-!?>spec\PhpSpec\CodeAnalysis+%>spec\PhpSpecD,U>integration\PhpSpec\Console\Prompter*>global'5>Phpspec\CodeAnalysism+S>PhpSpec\Wrapper\Subject\Expectationl;>PhpSpec\Wrapper\Subjectk+>PhpSpec\Wrapperj%>PhpSpec\Utili!?>PhpSpec\Runner\Maintainerh)>PhpSpec\Runnerg =>PhpSpec\Process\Shutdown- =>PhpSpec\Process\ReRunnerf%G>PhpSpec\Process\Prerequisitese;>PhpSpec\Process\Contextd+>PhpSpec\Processp+>PhpSpec\Matcherb5>PhpSpec\Locator\PSR0`+>PhpSpec\Locatora"A>PhpSpec\Loader\Transformer-3>PhpSpec\Loader\Node^)>PhpSpec\Loader_->PhpSpec\Listener]!>PhpSpec\IOo)O>PhpSpec\Formatter\Presenter\Value--W>PhpSpec\Formatter\Presenter\Exception-~*Q>PhpSpec\Formatter\Presenter\Differ[#C>PhpSpec\Formatter\Presenter\9>PhpSpec\Formatter\HtmlZ/>PhpSpec\FormatterY+>PhpSpec\FactoryX/>PhpSpec\Extensionn!?>PhpSpec\Exception\WrapperW!?>PhpSpec\Exception\LocatorV#C>PhpSpec\Exception\GeneratorU"A>PhpSpec\Exception\FractureT!?>PhpSpec\Exception\ExampleR/>PhpSpec\ExceptionS'>PhpSpec\EventQ =>PhpSpec\Console\PrompterP;>PhpSpec\Console\CommandO+>PhpSpec\ConsoleN)>PhpSpec\ConfigM$E>PhpSpec\CodeGenerator\WriterL'K>PhpSpec\CodeGenerator\GeneratorJ7>PhpSpec\CodeGeneratorK5>PhpSpec\CodeAnalysisI>PhpSpecc>Matcher)>Fake(0]>spec\PhpSpec\Wrapper\Subject\Expectation$E>spec\PhpSpec\Wrapper\Subject5>spec\PhpSpec\Wrapper/>spec\PhpSpec\Util&I>spec\PhpSpec\Runner\Maintainer3>spec\PhpSpec\Runner%G>spec\PhpSpec\Process\ReRunner*Q>spec\PhpSpec\Process\Prerequisites$E>spec\PhpSpec\Process\Context5>spec\PhpSpec\Matcher!?>spec\PhpSpec\Locator\PSR05>spec\PhpSpec\Locator =>spec\PhpSpec\Loader\Node3>spec\PhpSpec\Loader7>spec\PhpSpec\Listener/[>spec\PhpSpec\Formatter\Presenter\Differ(M>spec\PhpSpec\Formatter\Presenter#C>spec\PhpSpec\Formatter\Html9>spec\PhpSpec\Formatter'K>spec\PhpSpec\Exception\Fracture&I>spec\PhpSpec\Exception\Example9>spec\PhpSpec\Exception1>spec\PhpSpec\Event5>spec\PhpSpec\Console3>spec\PhpSpec\Config)O>spec\PhpSpec\CodeGenerator\Writer,U>spec\PhpSpec\CodeGenerator\Generator"A>spec\PhpSpec\CodeGenerator!?>spec\PhpSpec\CodeAnalysis%>spec\PhpSpec,U>integration\PhpSpec\Console\Prompter>global5>Phpspec\CodeAnalysis+S>PhpSpec\Wrapper\Subject\Expectation;>PhpSpec\Wrapper\Subject+>PhpSpec\Wrapper%>PhpSpec\Util!?>PhpSpec\Runner\Maintainer)>PhpSpec\Runner =>PhpSpec\Process\ReRunner%G>PhpSpec\Process\Prerequisites;>PhpSpec\Process\Context+>PhpSpec\Process+>PhpSpec\Matcher5>PhpSpec\Locator\PSR0+>PhpSpec\Locator3>PhpSpec\Loader\Node)>PhpSpec\Loader->PhpSpec\Listener!>PhpSpec\IO*Q>PhpSpec\Formatter\Presenter\Differ#C>PhpSpec\Formatter\Presenter9>PhpSpec\Formatter\Html/>PhpSpec\Formatter+>PhpSpec\Factory/>PhpSpec\Extension!?>PhpSpec\Exception\Wrapper!?>PhpSpec\Exception\Locator#C>PhpSpec\Exception\Generator"A>PhpSpec\Exception\Fracture!?>PhpSpec\Exception\Example/>PhpSpec\Exception'>PhpSpec\Event  9>spec\PhpSpec\Formatter5
    mL/z^7 y\D(zY6aN1





h
O
.
					_	6		 hU8	v[P:)sVC2zS4eJ:~[>a8pT- ;LCodeception\PHPUnit\Log&ILCodeception\PHPUnit\Constraint3LCodeception\PHPUnit1LCodeception\Module"ALCodeception\Lib\Interfaces(MLCodeception\Lib\Generator\Shared!?LCodeception\Lib\Generator9LCodeception\Lib\Driver;LCodeception\Lib\Console(MLCodeception\Lib\Connector\Shared!?LCodeception\Lib\Connector$ELCodeception\Lib\Actor\Shared+LCodeception\Lib7LCodeception\Extension7LCodeception\Exception/LCodeception\Event'KLCodeception\Coverage\Subscriber5LCodeception\Coverage"ALCodeception\Command\Shared3LCodeception\Command#LCodeceptionLCliGuy'LAcmePack\TestLAcmePack
9JPhpDocReader\PhpParser%JPhpDocReader!?IInvoker\ParameterResolver#IInvoker#1IInvoker\Reflection+SIInvoker\ParameterResolver\Container!?IInvoker\ParameterResolver/IInvoker\ExceptionIInvoker'IDI\ReflectionIDI\Proxy!IDI\Invoker5IDI\Definition\Source9IDI\Definition\Resolver&IIDI\Definition\ObjectDefinition5IDI\Definition\Helper;IDI\Definition\Exception5IDI\Definition\Dumper'IDI\DefinitionIDI\Cache'IDI\Annotation
IDI'IDI\ReflectionIDI\Proxy!IDI\Invoker5IDI\Definition\Source9IDI\Definition\Resolver&IIDI\Definition\ObjectDefinition5IDI\Definition\Helper;IDI\Definition\Exception5IDI\Definition\Dumper'IDI\DefinitionIDI\Cache'IDI\Annotation
IDI1HMni\FrontYAML\YAML9HMni\FrontYAML\Markdown~$EHMni\FrontYAML\Bridge\Symfony|&IHMni\FrontYAML\Bridge\Parsedown{'KHMni\FrontYAML\Bridge\CommonMarkz'HMni\FrontYAML}-HPhine\Path\Testsg5HPhine\Path\Exceptione!HPhine\Pathf&IHPhine\Observer\Tests\Exceptiond5HPhine\Observer\Testsc3HPhine\Observer\Testb =HPhine\Observer\Exceptiona)HPhine\Observer`7HPhine\Exception\Tests_+HPhine\Exception^(MHPhine\Phar\Tests\Subject\Builder] =HPhine\Phar\Tests\Subject[7HPhine\Phar\Tests\StubZ,UHPhine\Phar\Tests\Signature\AlgorithmY!?HPhine\Phar\Tests\ManifestX7HPhine\Phar\Tests\FileW"AHPhine\Phar\Tests\ExceptionV =HPhine\Phar\Tests\Builder\-HPhine\Phar\TestsU+HPhine\Phar\TestT"AHPhine\Phar\Subject\BuilderS1HPhine\Phar\SubjectR+HPhine\Phar\StubQ&IHPhine\Phar\Signature\AlgorithmP3HPhine\Phar\ManifestO+HPhine\Phar\FileN5HPhine\Phar\ExceptionM!HPhine\PharL(MHPhine\Phar\Tests\Subject\Buildery =HPhine\Phar\Tests\Subjectw7HPhine\Phar\Tests\Stubv,UHPhine\Phar\Tests\Signature\Algorithmu!?HPhine\Phar\Tests\Manifestt7HPhine\Phar\Tests\Files"AHPhine\Phar\Tests\Exceptionr =HPhine\Phar\Tests\Builderx-HPhine\Phar\Testsq+HPhine\Phar\Testp"AHPhine\Phar\Subject\Buildero1HPhine\Phar\Subjectn+HPhine\Phar\Stubm&IHPhine\Phar\Signature\Algorithml3HPhine\Phar\Manifestk+HPhine\Phar\Filej5HPhine\Phar\Exceptioni!HPhine\PharhH>globalK>global0]>spec\PhpSpec\Wrapper\Subject\ExpectationG$E>spec\PhpSpec\Wrapper\SubjectF5>spec\PhpSpec\WrapperH/>spec\PhpSpec\UtilE&I>spec\PhpSpec\Runner\MaintainerC3>spec\PhpSpec\RunnerB%G>spec\PhpSpec\Process\ReRunnerA*Q>spec\PhpSpec\Process\Prerequisites@$E>spec\PhpSpec\Process\Context?5>spec\PhpSpec\Matcher>!?>spec\PhpSpec\Locator\PSR0<5>spec\PhpSpec\Locator= =>spec\PhpSpec\Loader\Node:3>spec\PhpSpec\Loader;7>spec\PhpSpec\Listener9/[>spec\PhpSpec\Formatter\Presenter\Differ7(M>spec\PhpSpec\Formatter\Presenter8
 ! [>sS/oWJ8*	ziQ@*iK-




f
D
					z	P	3	lS3"sfF1	jZJ7%iF|Z0eH- y`=o\A!       ;MGuzzleHttp\Adapter\Curl1MGuzzleHttp\Adapter!MGuzzleHttp"AMyGuzzleHttp\tests\Exception#CMyGuzzleHttp\Tests\Subscriber7MyGuzzleHttp\Tests\Post(MMyGuzzleHttp\Tests\Plugin\Redirect =MyGuzzleHttp\Tests\Message9MyGuzzleHttp\Tests\Event"AMyGuzzleHttp\Tests\CookieJar-MyGuzzleHttp\Tests7MyGuzzleHttp\Subscriber+MyGuzzleHttp\Post1MyGuzzleHttp\Message5MyGuzzleHttp\Exception-MyGuzzleHttp\Event/MyGuzzleHttp\Cookie!MyGuzzleHttp1MwGuzzleHttp\Handler-5MwGuzzleHttp\Exception-/MwGuzzleHttp\Cookie-!MwGuzzleHttp-1MtGuzzleHttp\Handler.5MtGuzzleHttp\Exception-/MtGuzzleHttp\Cookie,!MtGuzzleHttp+Mfglobal))OMfFacebook\WebDriver\Support\Events')OMfFacebook\WebDriver\Remote\Service&!?MfFacebook\WebDriver\Remote%9MfFacebook\WebDriver\Net$#CMfFacebook\WebDriver\Internal*-WMfFacebook\WebDriver\Interactions\Touch"0]MfFacebook\WebDriver\Interactions\Internal!'KMfFacebook\WebDriver\Interactions#"AMfFacebook\WebDriver\Firefox $EMfFacebook\WebDriver\Exception!?MfFacebook\WebDriver\Chrome1MfFacebook\WebDriver(+LsimpleDIHelpersLsimpleDILglobal!L_generatedLWebGuyLToastPack!LStep\OrderLSimpleBLSimpleA-LShire\_generated =LShire\Codeception\ModuleLShireLPage\MathLMath+LJazz\_generated;LJazz\Pianist\_generated'KLJazz\Pianist\Codeception\Module%LJazz\Pianist;LJazz\Codeception\ModuleLJazzLHelper&ILFailDependenciesPrimitiveParam#CLFailDependenciesNonExistent;LFailDependenciesInChain9LFailDependenciesCyclic'LEwokPack\TestLEwokPack;LCodeception\Util\Shared-LCodeception\Util#CLCodeception\TestCase\Shared'KLCodeception\TestCase\Interfaces5LCodeception\TestCase%GLCodeception\Subscriber\Shared9LCodeception\Subscriber-LCodeception\Step5LCodeception\Platform)OLCodeception\PHPUnit\ResultPrinter;LCodeception\PHPUnit\Log&ILCodeception\PHPUnit\Constraint3LCodeception\PHPUnit1LCodeception\Module"ALCodeception\Lib\Interfaces(MLCodeception\Lib\Generator\Shared!?LCodeception\Lib\Generator9LCodeception\Lib\Driver;LCodeception\Lib\Console(MLCodeception\Lib\Connector\Shared!?LCodeception\Lib\Connector$ELCodeception\Lib\Actor\Shared+LCodeception\Lib7LCodeception\Extension7LCodeception\Exception/LCodeception\Event'KLCodeception\Coverage\Subscriber5LCodeception\Coverage"ALCodeception\Command\Shared3LCodeception\Command#LCodeceptionLCliGuy'LAcmePack\TestLAcmePack+LsimpleDIHelpersLsimpleDILglobal!L_generatedLWebGuyLToastPack	!LStep\OrderLSimpleBLSimpleA-LShire\_generated =LShire\Codeception\ModuleLShireLPage\MathLMath+LJazz\_generated;LJazz\Pianist\_generated'KLJazz\Pianist\Codeception\Module%LJazz\Pianist;LJazz\Codeception\ModuleLJazzLHelper&ILFailDependenciesPrimitiveParam #CLFailDependenciesNonExistent;LFailDependenciesInChain9LFailDependenciesCyclic'LEwokPack\TestLEwokPack;LCodeception\Util\Shared-LCodeception\Util#CLCodeception\TestCase\Shared'KLCodeception\TestCase\Interfaces5LCodeception\TestCase%GLCodeception\Subscriber\Shared9LCodeception\Subscriber-LCodeception\Step5LCodeception\Platform   LCodecepti/MGuzzleHttp\Cookie
 [  y`?oQ-
jI(W2gA



N
				L	|V&c, a%a6	rLY"Wa1                            ,UPSymfony\Component\CssSelector\Parser*QPSymfony\Component\CssSelector\Node/[PSymfony\Component\CssSelector\Exception%GPSymfony\Component\CssSelector5gPSymfony\Component\CssSelector\XPath\Extension	-+SPSymfony\Component\CssSelector\XPath	.1_PSymfony\Component\CssSelector\Tests\XPath	,;sPSymfony\Component\CssSelector\Tests\Parser\Shortcut	+:qPSymfony\Component\CssSelector\Tests\Parser\Handler	)2aPSymfony\Component\CssSelector\Tests\Parser	*0]PSymfony\Component\CssSelector\Tests\Node	(+SPSymfony\Component\CssSelector\Tests	'6iPSymfony\Component\CssSelector\Parser\Tokenizer	&5gPSymfony\Component\CssSelector\Parser\Shortcut	%4ePSymfony\Component\CssSelector\Parser\Handler	#,UPSymfony\Component\CssSelector\Parser	$*QPSymfony\Component\CssSelector\Node	"/[PSymfony\Component\CssSelector\Exception	!%GPSymfony\Component\CssSelector	 5gPSymfony\Component\CssSelector\XPath\Extension"N+SPSymfony\Component\CssSelector\XPath"O4ePSymfony\Component\CssSelector\Parser\Handler"L,UPSymfony\Component\CssSelector\Parser"M*QPSymfony\Component\CssSelector\Node"K/[PSymfony\Component\CssSelector\Exception"J5gPySymfony\Component\CssSelector\XPath\ExtensionF+SPySymfony\Component\CssSelector\XPathG1_PySymfony\Component\CssSelector\Tests\XPathE;sPySymfony\Component\CssSelector\Tests\Parser\ShortcutD:qPySymfony\Component\CssSelector\Tests\Parser\HandlerB2aPySymfony\Component\CssSelector\Tests\ParserC0]PySymfony\Component\CssSelector\Tests\NodeA+SPySymfony\Component\CssSelector\Tests@6iPySymfony\Component\CssSelector\Parser\Tokenizer?5gPySymfony\Component\CssSelector\Parser\Shortcut>4ePySymfony\Component\CssSelector\Parser\Handler<,UPySymfony\Component\CssSelector\Parser=*QPySymfony\Component\CssSelector\Node;/[PySymfony\Component\CssSelector\Exception:%GPySymfony\Component\CssSelector95gPuSymfony\Component\CssSelector\XPath\Extension+SPuSymfony\Component\CssSelector\XPath1_PuSymfony\Component\CssSelector\Tests\XPath;sPuSymfony\Component\CssSelector\Tests\Parser\Shortcut:qPuSymfony\Component\CssSelector\Tests\Parser\Handler2aPuSymfony\Component\CssSelector\Tests\Parser0]PuSymfony\Component\CssSelector\Tests\Node+SPuSymfony\Component\CssSelector\Tests6iPuSymfony\Component\CssSelector\Parser\Tokenizer5gPuSymfony\Component\CssSelector\Parser\Shortcut4ePuSymfony\Component\CssSelector\Parser\Handler
,UPuSymfony\Component\CssSelector\Parser*QPuSymfony\Component\CssSelector\Node	/[PuSymfony\Component\CssSelector\Exception%GPuSymfony\Component\CssSelector*QOSymfony\Component\BrowserKit\Tests$EOSymfony\Component\BrowserKit*QOSymfony\Component\BrowserKit\Tests $EOSymfony\Component\BrowserKit*QOzSymfony\Component\BrowserKit\Tests		$EOzSymfony\Component\BrowserKit	*QOcSymfony\Component\BrowserKit\Tests8$EOcSymfony\Component\BrowserKit7-OPsr\Http\Message'-OPsr\Http\Message67MGuzzleHttp\Tests\Psr74-MGuzzleHttp\Tests5+MGuzzleHttp\Psr73 =MGuzzleHttp\Tests\Promise1 =MGuzzleHttp\Promise\Tests0;MGuzzleHttp\Promise\Test21MGuzzleHttp\Promise/1MGuzzleHttp\Handler#5MGuzzleHttp\Exception#/MGuzzleHttp\Cookie#!MGuzzleHttp#"AMGuzzleHttp\tests\Exception#CMGuzzleHttp\Tests\Subscriber7MGuzzleHttp\Tests\Post(MMGuzzleHttp\Tests\Plugin\Redirect =MGuzzleHttp\Tests\Message7MGuzzleHttp\Tests\Http9MGuzzleHttp\Tests\Event"AMGuzzleHttp\Tests\CookieJar%GMGuzzleHttp\Tests\Adapter\Curl =MGuzzleHttp\Tests\Adapter-MGuzzleHttp\Tests7MGuzzleHttp\Subscriber+MGuzzleHttp\Post1MGuzzleHttp\Message5MGuzzleHttp\Exception   MGuzzleHttp\Event
   ^  g6Z.wJ|KoC



g
<
				_	:	c8nRC2vgR6d:~U'w;l0C       <uedSymfony\Component\Form\Extension\DependencyInjection;sedSymfony\Component\Form\Extension\DataCollector\Type<uedSymfony\Component\Form\Extension\DataCollector\ProxyEedSymfony\Component\Form\Extension\DataCollector\EventListener6iedSymfony\Component\Form\Extension\DataCollector2aedSymfony\Component\Form\Extension\Csrf\Type;sedSymfony\Component\Form\Extension\Csrf\EventListener:qedSymfony\Component\Form\Extension\Csrf\CsrfProvider-WedSymfony\Component\Form\Extension\Csrf2aedSymfony\Component\Form\Extension\Core\View2aedSymfony\Component\Form\Extension\Core\Type;sedSymfony\Component\Form\Extension\Core\EventListener=wedSymfony\Component\Form\Extension\Core\DataTransformer8medSymfony\Component\Form\Extension\Core\DataMapper8medSymfony\Component\Form\Extension\Core\ChoiceList-WedSymfony\Component\Form\Extension\Core(MedSymfony\Component\Form\Exception)OedSymfony\Component\Form\Deprecated.YedSymfony\Component\Form\ChoiceList\View0]edSymfony\Component\Form\ChoiceList\Loader1_edSymfony\Component\Form\ChoiceList\Factory)OedSymfony\Component\Form\ChoiceList9edSymfony\Component\Form/dXTwig\Gettext\Test&IdXTwig\Gettext\Routing\Generator3dXTwig\Gettext\Loader%dXTwig\Gettext/dSTwig\Gettext\TestW&IdSTwig\Gettext\Routing\GeneratorV3dSTwig\Gettext\LoaderU%dSTwig\GettextTdglobaldglobaldglobalS-ShDeepCopy\Matcher*:+ShDeepCopy\Filter*9-SgDeepCopy\MatcherZ =SgDeepCopy\Filter\DoctrineX+SgDeepCopy\FilterY1SgDeepCopy\ExceptionWSgDeepCopyVSNglobalP3SNCodeception\SpecifyQ#SNCodeceptionRSMglobalS3SMCodeception\SpecifyT#SMCodeceptionUS@globalM#S@CodeceptionLS9globalO#S9CodeceptionN0]Q.Symfony\Component\DomCrawler\Tests\Field.*QQ.Symfony\Component\DomCrawler\Tests-*QQ.Symfony\Component\DomCrawler\Field,$EQ.Symfony\Component\DomCrawler+0]QSymfony\Component\DomCrawler\Tests\Field	;*QQSymfony\Component\DomCrawler\Tests	:*QQSymfony\Component\DomCrawler\Field	9$EQSymfony\Component\DomCrawler	80]QSymfony\Component\DomCrawler\Tests\FieldK*QQSymfony\Component\DomCrawler\TestsJ*QQSymfony\Component\DomCrawler\FieldI$EQSymfony\Component\DomCrawlerH0]QSymfony\Component\DomCrawler\Tests\Field*QQSymfony\Component\DomCrawler\Tests*QQSymfony\Component\DomCrawler\Field$EQSymfony\Component\DomCrawler*QPSymfony\Component\CssSelector\Node**QPSymfony\Component\CssSelector\Node* 5gPSymfony\Component\CssSelector\XPath\Extension+SPSymfony\Component\CssSelector\XPath1_PSymfony\Component\CssSelector\Tests\XPath ;sPSymfony\Component\CssSelector\Tests\Parser\Shortcut:qPSymfony\Component\CssSelector\Tests\Parser\Handler2aPSymfony\Component\CssSelector\Tests\Parser0]PSymfony\Component\CssSelector\Tests\Node+SPSymfony\Component\CssSelector\Tests6iPSymfony\Component\CssSelector\Parser\Tokenizer5gPSymfony\Component\CssSelector\Parser\Shortcut4ePSymfony\Component\CssSelector\Parser\Handler,UPSymfony\Component\CssSelector\Parser*QPSymfony\Component\CssSelector\Node/[PSymfony\Component\CssSelector\Exception%GPSymfony\Component\CssSelector5gPSymfony\Component\CssSelector\XPath\Extension!+SPSymfony\Component\CssSelector\XPath"1_PSymfony\Component\CssSelector\Tests\XPath ;sPSymfony\Component\CssSelector\Tests\Parser\Shortcut:qPSymfony\Component\CssSelector\Tests\Parser\Handler2aPSymfony\Component\CssSelector\Tests\Parser0]PSymfony\Component\CssSelector\Tests\Node+SPSymfony\Component\CssSelector\Tests6iPSymfony\Component\CssSelector\Parser\Tokenizer5gPSymfony\Component\CssSelector\Parser\Shortcut
 I  D]%`;KL


S
			M	CvR3	}D	j<]/tK$s8 ].                                   ?{eSymfony\Component\Intl\Tests\DateFormatter\Verification2aeSymfony\Component\Intl\Tests\DateFormatter.YeSymfony\Component\Intl\Tests\Data\Util7keSymfony\Component\Intl\Tests\Data\Provider\Json2aeSymfony\Component\Intl\Tests\Data\Provider7keSymfony\Component\Intl\Tests\Data\Bundle\Writer7keSymfony\Component\Intl\Tests\Data\Bundle\Reader:qeSymfony\Component\Intl\Tests\Collator\Verification-WeSymfony\Component\Intl\Tests\Collator-WeSymfony\Component\Intl\ResourceBundle.YeSymfony\Component\Intl\NumberFormatter%GeSymfony\Component\Intl\Locale&IeSymfony\Component\Intl\Globals(MeSymfony\Component\Intl\Exception7keSymfony\Component\Intl\DateFormatter\DateFormat,UeSymfony\Component\Intl\DateFormatter(MeSymfony\Component\Intl\Data\Util,UeSymfony\Component\Intl\Data\Provider-WeSymfony\Component\Intl\Data\Generator1_eSymfony\Component\Intl\Data\Bundle\Writer
1_eSymfony\Component\Intl\Data\Bundle\Reader	3ceSymfony\Component\Intl\Data\Bundle\Compiler'KeSymfony\Component\Intl\Collator9eSymfony\Component\Intl-WeSymfony\Component\Form\Tests\Fixtures,l#CeSymfony\Component\Form\Test,kCeSymfony\Component\Form\Extension\Validator\ViolationMapper,j6ieSymfony\Component\Form\Extension\DataCollector,i:qeSymfony\Component\Form\Extension\Csrf\CsrfProvider,h8meSymfony\Component\Form\Extension\Core\ChoiceList,g(MeSymfony\Component\Form\Exception,f0]eSymfony\Component\Form\ChoiceList\Loader,e1_eSymfony\Component\Form\ChoiceList\Factory,d)OeSymfony\Component\Form\ChoiceList,c9eSymfony\Component\Form,b#CedSymfony\Component\Form\Util)OedSymfony\Component\Form\Tests\Util*QedSymfony\Component\Form\Tests\Guess-WedSymfony\Component\Form\Tests\FixturesIedSymfony\Component\Form\Tests\Extension\Validator\ViolationMapper=wedSymfony\Component\Form\Tests\Extension\Validator\Util=wedSymfony\Component\Form\Tests\Extension\Validator\TypeG	edSymfony\Component\Form\Tests\Extension\Validator\EventListenerEedSymfony\Component\Form\Tests\Extension\Validator\Constraints8medSymfony\Component\Form\Tests\Extension\Validator LedSymfony\Component\Form\Tests\Extension\HttpFoundation\EventListener=wedSymfony\Component\Form\Tests\Extension\HttpFoundationAedSymfony\Component\Form\Tests\Extension\DataCollector\Type<uedSymfony\Component\Form\Tests\Extension\DataCollector8medSymfony\Component\Form\Tests\Extension\Csrf\TypeAedSymfony\Component\Form\Tests\Extension\Csrf\EventListener@}edSymfony\Component\Form\Tests\Extension\Csrf\CsrfProvider8medSymfony\Component\Form\Tests\Extension\Core\TypeAedSymfony\Component\Form\Tests\Extension\Core\EventListenerDedSymfony\Component\Form\Tests\Extension\Core\DataTransformer>yedSymfony\Component\Form\Tests\Extension\Core\DataMapperHedSymfony\Component\Form\Tests\Extension\Core\ChoiceList\Fixtures>yedSymfony\Component\Form\Tests\Extension\Core\ChoiceList7kedSymfony\Component\Form\Tests\ChoiceList\Factory/[edSymfony\Component\Form\Tests\ChoiceList$EedSymfony\Component\Form\Tests#CedSymfony\Component\Form\Test$EedSymfony\Component\Form\GuessCedSymfony\Component\Form\Extension\Validator\ViolationMapper7kedSymfony\Component\Form\Extension\Validator\Util7kedSymfony\Component\Form\Extension\Validator\Type@}edSymfony\Component\Form\Extension\Validator\EventListener>yedSymfony\Component\Form\Extension\Validator\Constraints2aedSymfony\Component\Form\Extension\Validator3cedSymfony\Component\Form\Extension\Templating<uedSymfony\Component\Form\Extension\HttpFoundation\TypeFedSymfony\Component\Form\Extension\HttpFoundation\EventListener   edSymf,UeSymfony\Component\Intl\Tests\Globals 
 T  a,c/wCW$yM!



j
B
			T	"SD"m<b9RvF Y&zGi:
                      gZglobal6igZSymfony\Component\Routing\Tests\Matcher\Dumper/[gZSymfony\Component\Routing\Tests\Matcher.YgZSymfony\Component\Routing\Tests\Loader8mgZSymfony\Component\Routing\Tests\Generator\Dumper1_gZSymfony\Component\Routing\Tests\GeneratorAgZSymfony\Component\Routing\Tests\Fixtures\AnnotatedClasses0]gZSymfony\Component\Routing\Tests\Fixtures2agZSymfony\Component\Routing\Tests\Annotation'KgZSymfony\Component\Routing\Tests0]gZSymfony\Component\Routing\Matcher\Dumper)OgZSymfony\Component\Routing\Matcher(MgZSymfony\Component\Routing\Loader~2agZSymfony\Component\Routing\Generator\Dumper|+SgZSymfony\Component\Routing\Generator}+SgZSymfony\Component\Routing\Exception{,UgZSymfony\Component\Routing\Annotationy!?gZSymfony\Component\RoutingzgIglobal	6igISymfony\Component\Routing\Tests\Matcher\Dumper	/[gISymfony\Component\Routing\Tests\Matcher	.YgISymfony\Component\Routing\Tests\Loader	8mgISymfony\Component\Routing\Tests\Generator\Dumper	1_gISymfony\Component\Routing\Tests\Generator	AgISymfony\Component\Routing\Tests\Fixtures\AnnotatedClasses	0]gISymfony\Component\Routing\Tests\Fixtures	2agISymfony\Component\Routing\Tests\Annotation	'KgISymfony\Component\Routing\Tests	0]gISymfony\Component\Routing\Matcher\Dumper	)OgISymfony\Component\Routing\Matcher	(MgISymfony\Component\Routing\Loader	2agISymfony\Component\Routing\Generator\Dumper	+SgISymfony\Component\Routing\Generator	+SgISymfony\Component\Routing\Exception	,UgISymfony\Component\Routing\Annotation	!?gISymfony\Component\Routing	0]gGSymfony\Component\Routing\Matcher\Dumper')OgGSymfony\Component\Routing\Matcher'2agGSymfony\Component\Routing\Generator\Dumper'+SgGSymfony\Component\Routing\Generator'+SgGSymfony\Component\Routing\Exception'!?gGSymfony\Component\Routing'g2global;6ig2Symfony\Component\Routing\Tests\Matcher\Dumper@/[g2Symfony\Component\Routing\Tests\MatcherA.Yg2Symfony\Component\Routing\Tests\Loader?8mg2Symfony\Component\Routing\Tests\Generator\Dumper=1_g2Symfony\Component\Routing\Tests\Generator>G	g2Symfony\Component\Routing\Tests\Fixtures\OtherAnnotatedClasses<Ag2Symfony\Component\Routing\Tests\Fixtures\AnnotatedClasses90]g2Symfony\Component\Routing\Tests\Fixtures:2ag2Symfony\Component\Routing\Tests\Annotation7'Kg2Symfony\Component\Routing\Tests80]g2Symfony\Component\Routing\Matcher\Dumper6)Og2Symfony\Component\Routing\Matcher5(Mg2Symfony\Component\Routing\Loader42ag2Symfony\Component\Routing\Generator\Dumper2+Sg2Symfony\Component\Routing\Generator3+Sg2Symfony\Component\Routing\Exception1,Ug2Symfony\Component\Routing\Annotation/!?g2Symfony\Component\Routing02ag-Symfony\Component\PropertyAccess\Exception*(Mg-Symfony\Component\PropertyAccess*2ag Symfony\Component\PropertyAccess\Exception$5(Mg Symfony\Component\PropertyAccess$67kfSymfony\Component\PropertyAccess\Tests\Fixtures-.YfSymfony\Component\PropertyAccess\Tests.2afSymfony\Component\PropertyAccess\Exception+(MfSymfony\Component\PropertyAccess,3cfvSymfony\Component\OptionsResolver\Exception-G)OfvSymfony\Component\OptionsResolver-H3cfVSymfony\Component\OptionsResolver\Exception$Y)OfVSymfony\Component\OptionsResolver$Z/[fNSymfony\Component\OptionsResolver\Tests*3cfNSymfony\Component\OptionsResolver\Exception()OfNSymfony\Component\OptionsResolver)eglobal#CeSymfony\Component\Intl\Util')OeSymfony\Component\Intl\Tests\Util&AeSymfony\Component\Intl\Tests\NumberFormatter\Verification%4eeSymfony\Component\Intl\Tests\NumberFormatter$8meSymfony\Component\Intl\Tests\Locale\Verification#+SeSymfony\Component\Intl\Tests\Locale"   eSymfony\Component!?gSymfony\Component\Routing$(
   m  _.}\4`2eM.eD!




j
B
					b	@	b:f<|X8gE%w\?%	kFvS'	pH"              +iVIlluminate\Http1iVIlluminate\Hashing%GiVIlluminate\Foundation\Testing'KiVIlluminate\Foundation\Providers%GiVIlluminate\Foundation\Console7iVIlluminate\Foundation7iVIlluminate\Filesystem5iVIlluminate\Exception/iVIlluminate\Events7iVIlluminate\Encryption+SiVIlluminate\Database\Schema\Grammars"AiVIlluminate\Database\Schema,UiVIlluminate\Database\Query\Processors*QiVIlluminate\Database\Query\Grammars!?iVIlluminate\Database\Query&IiVIlluminate\Database\Migrations.YiVIlluminate\Database\Eloquent\Relations$EiVIlluminate\Database\Eloquent.YiVIlluminate\Database\Console\Migrations#CiVIlluminate\Database\Console&IiVIlluminate\Database\Connectors#CiVIlluminate\Database\Capsule3iVIlluminate\Database/iVIlluminate\Cookie5iVIlluminate\Container1iVIlluminate\Console/iVIlluminate\Config =iVIlluminate\Cache\Console-iVIlluminate\Cache!?iVIlluminate\Auth\Reminders;iVIlluminate\Auth\Console+iVIlluminate\Auth;i1Illuminate\View\Engines)\!?i1Illuminate\View\Compilers)[+i1Illuminate\View)]7i1Illuminate\Validation)Z9i1Illuminate\Translation)Y!?i1Illuminate\Support\Traits)k1i1Illuminate\Session)X#Ci1Illuminate\Routing\Matching)W1i1Illuminate\Routing)j;i1Illuminate\Queue\Failed)V#Ci1Illuminate\Queue\Connectors)U-i1Illuminate\Queue)i7i1Illuminate\Pagination)h+i1Illuminate\Http)g(Mi1Illuminate\Foundation\Validation)f%Gi1Illuminate\Foundation\Testing)e!?i1Illuminate\Foundation\Bus)d)Oi1Illuminate\Foundation\Auth\Access)b"Ai1Illuminate\Foundation\Auth)c&Ii1Illuminate\Database\Migrations)T$Ei1Illuminate\Database\Eloquent)S&Ii1Illuminate\Database\Connectors)R3i1Illuminate\Database)Q!?i1Illuminate\Contracts\View)P'Ki1Illuminate\Contracts\Validation)O$Ei1Illuminate\Contracts\Support)N$Ei1Illuminate\Contracts\Routing)M"Ai1Illuminate\Contracts\Redis)L"Ai1Illuminate\Contracts\Queue)K%Gi1Illuminate\Contracts\Pipeline)J'Ki1Illuminate\Contracts\Pagination)I!?i1Illuminate\Contracts\Mail)H$Ei1Illuminate\Contracts\Logging)G!?i1Illuminate\Contracts\Http)F$Ei1Illuminate\Contracts\Hashing)E'Ki1Illuminate\Contracts\Foundation)D'Ki1Illuminate\Contracts\Filesystem)C#Ci1Illuminate\Contracts\Events)B'Ki1Illuminate\Contracts\Encryption)A"Ai1Illuminate\Contracts\Debug)@#Ci1Illuminate\Contracts\Cookie)?&Ii1Illuminate\Contracts\Container)>$Ei1Illuminate\Contracts\Console)=#Ci1Illuminate\Contracts\Config)<"Ai1Illuminate\Contracts\Cache); =i1Illuminate\Contracts\Bus):)Oi1Illuminate\Contracts\Broadcasting)9(Mi1Illuminate\Contracts\Auth\Access)7!?i1Illuminate\Contracts\Auth)81i1Illuminate\Console)a)i1Illuminate\Bus)`!?i1Illuminate\Auth\Passwords)69i1Illuminate\Auth\Access)^+i1Illuminate\Auth)_ =hrSymfony\Bridge\Twig\Form,'KhLSymfony\Bridge\Twig\TranslationR'KhLSymfony\Bridge\Twig\TokenParserQ-WhLSymfony\Bridge\Twig\Tests\TranslationO-WhLSymfony\Bridge\Twig\Tests\TokenParserN-WhLSymfony\Bridge\Twig\Tests\NodeVisitorM&IhLSymfony\Bridge\Twig\Tests\NodeL4ehLSymfony\Bridge\Twig\Tests\Extension\FixturesK+ShLSymfony\Bridge\Twig\Tests\ExtensionJ)OhLSymfony\Bridge\Twig\Tests\CommandI!?hLSymfony\Bridge\Twig\TestsP'KhLSymfony\Bridge\Twig\NodeVisitorH =hLSymfony\Bridge\Twig\NodeG =hLSymfony\Bridge\Twig\FormF%GhLSymfony\Bridge\Twig\ExtensionE)OhLSymfony\Bridge\Twig\DataCollectorD#ChLSymfony\Bridge\Twig\CommandC3hLSymfony\Bridge\TwigB0]gSymfony\Component\Routing\Matcher\Dumper$&)OgSymfony\Component\Routing\Matcher$'2agSymfony\Component\Routing\Generator\Dumper$%+SgSymfony\Component\Routing\Generator$$+iVIlluminate\Html
   z nJ)	zT0mN0mM+iE



w
P
.
				i	O	2	gO7 jI)tP5nP8kR8qK0bG" iQ1                   !?ijIlluminate\Auth\Reminders;ijIlluminate\Auth\Console+ijIlluminate\Auth;ihIlluminate\View\Engines+!?ihIlluminate\View\Compilers++ihIlluminate\View+7ihIlluminate\Validation+9ihIlluminate\Translation+!?ihIlluminate\Support\Traits+$EihIlluminate\Support\Contracts+1ihIlluminate\Session+#CihIlluminate\Routing\Matching+1ihIlluminate\Routing+/ihIlluminate\Remote+;ihIlluminate\Queue\Failed+#CihIlluminate\Queue\Connectors+-ihIlluminate\Queue++ihIlluminate\Http+1ihIlluminate\Hashing+%GihIlluminate\Foundation\Testing+5ihIlluminate\Exception+&IihIlluminate\Database\Migrations+$EihIlluminate\Database\Eloquent+&IihIlluminate\Database\Connectors+3ihIlluminate\Database+1ihIlluminate\Console+/ihIlluminate\Config+-ihIlluminate\Cache+!?ihIlluminate\Auth\Reminders++ihIlluminate\Auth+iWglobal$EiWIlluminate\Workbench\Console5iWIlluminate\Workbench;iWIlluminate\View\Engines!?iWIlluminate\View\Compilers+iWIlluminate\View7iWIlluminate\Validation9iWIlluminate\Translation!?iWIlluminate\Support\Traits"AiWIlluminate\Support\Facades$EiWIlluminate\Support\Contracts1iWIlluminate\Support"AiWIlluminate\Session\Console1iWIlluminate\Session#CiWIlluminate\Routing\Matching%GiWIlluminate\Routing\Generators"AiWIlluminate\Routing\Console1iWIlluminate\Routing/iWIlluminate\Remote-iWIlluminate\Redis7iWIlluminate\Queue\Jobs;iWIlluminate\Queue\Failed =iWIlluminate\Queue\Console#CiWIlluminate\Queue\Connectors =iWIlluminate\Queue\Capsule-iWIlluminate\Queue7iWIlluminate\Pagination!?iWIlluminate\Mail\Transport+iWIlluminate\Mail)iWIlluminate\Log+iWIlluminate\Http+iWIlluminate\Html1iWIlluminate\Hashing%GiWIlluminate\Foundation\Testing'KiWIlluminate\Foundation\Providers%GiWIlluminate\Foundation\Console7iWIlluminate\Foundation7iWIlluminate\Filesystem5iWIlluminate\Exception/iWIlluminate\Events7iWIlluminate\Encryption+SiWIlluminate\Database\Schema\Grammars"AiWIlluminate\Database\Schema,UiWIlluminate\Database\Query\Processors*QiWIlluminate\Database\Query\Grammars!?iWIlluminate\Database\Query&IiWIlluminate\Database\Migrations.YiWIlluminate\Database\Eloquent\Relations$EiWIlluminate\Database\Eloquent.YiWIlluminate\Database\Console\Migrations#CiWIlluminate\Database\Console&IiWIlluminate\Database\Connectors#CiWIlluminate\Database\Capsule3iWIlluminate\Database/iWIlluminate\Cookie5iWIlluminate\Container1iWIlluminate\Console/iWIlluminate\Config =iWIlluminate\Cache\Console-iWIlluminate\Cache!?iWIlluminate\Auth\Reminders;iWIlluminate\Auth\Console+iWIlluminate\AuthiVglobal$EiVIlluminate\Workbench\Console5iVIlluminate\Workbench	 ;iVIlluminate\View\Engines!?iVIlluminate\View\Compilers+iVIlluminate\View7iVIlluminate\Validation9iVIlluminate\Translation!?iVIlluminate\Support\Traits	"AiVIlluminate\Support\Facades$EiVIlluminate\Support\Contracts	1iVIlluminate\Support"AiVIlluminate\Session\Console1iVIlluminate\Session#CiVIlluminate\Routing\Matching%GiVIlluminate\Routing\Generators"AiVIlluminate\Routing\Console1iVIlluminate\Routing/iVIlluminate\Remote-iVIlluminate\Redis7iVIlluminate\Queue\Jobs;iVIlluminate\Queue\Failed =iVIlluminate\Queue\Console#CiVIlluminate\Queue\Connectors =iVIlluminate\Queue\Capsule-iVIlluminate\Queue7iVIlluminate\Pagination!?iVIlluminate\Mail\Transport+iVIlluminate\Mail
   x sW3e>uW= pU=%zY9




`
E
"
					j	H	(	}dC)pLU(fH"rZ<#fL1kF#oJ;$             9iClassPreloader\Command)iClassPreloaderiglobal$EiIlluminate\Workbench\Console5iIlluminate\Workbench;iIlluminate\View\Engines!?iIlluminate\View\Compilers+iIlluminate\View7iIlluminate\Validation9iIlluminate\Translation"AiIlluminate\Support\Facades$EiIlluminate\Support\Contracts1iIlluminate\Support"AiIlluminate\Session\Console1iIlluminate\Session#CiIlluminate\Routing\Matching%GiIlluminate\Routing\Generators"AiIlluminate\Routing\Console1iIlluminate\Routing/iIlluminate\Remote-iIlluminate\Redis7iIlluminate\Queue\Jobs;iIlluminate\Queue\Failed =iIlluminate\Queue\Console#CiIlluminate\Queue\Connectors~ =iIlluminate\Queue\Capsule}-iIlluminate\Queue|7iIlluminate\Pagination{+iIlluminate\Mailz)iIlluminate\Logy+iIlluminate\Httpx+iIlluminate\Htmlw1iIlluminate\Hashingv%GiIlluminate\Foundation\Testingu'KiIlluminate\Foundation\Providerst%GiIlluminate\Foundation\Consoles7iIlluminate\Foundationr7iIlluminate\Filesystemq5iIlluminate\Exceptionp/iIlluminate\Eventso7iIlluminate\Encryptionn+SiIlluminate\Database\Schema\Grammarsm"AiIlluminate\Database\Schemal,UiIlluminate\Database\Query\Processorsk*QiIlluminate\Database\Query\Grammarsj!?iIlluminate\Database\Queryi&IiIlluminate\Database\Migrationsh.YiIlluminate\Database\Eloquent\Relationsg$EiIlluminate\Database\Eloquentf.YiIlluminate\Database\Console\Migrationsd#CiIlluminate\Database\Consolee&IiIlluminate\Database\Connectorsc#CiIlluminate\Database\Capsulea3iIlluminate\Databaseb/iIlluminate\Cookie`5iIlluminate\Container_1iIlluminate\Console^/iIlluminate\Config] =iIlluminate\Cache\Console\-iIlluminate\Cache[!?iIlluminate\Auth\RemindersZ;iIlluminate\Auth\ConsoleY+iIlluminate\AuthXijglobal$EijIlluminate\Workbench\Console5ijIlluminate\Workbench;ijIlluminate\View\Engines!?ijIlluminate\View\Compilers+ijIlluminate\View7ijIlluminate\Validation9ijIlluminate\Translation"AijIlluminate\Support\Facades$EijIlluminate\Support\Contracts1ijIlluminate\Support"AijIlluminate\Session\Console1ijIlluminate\Session#CijIlluminate\Routing\Matching%GijIlluminate\Routing\Generators"AijIlluminate\Routing\Console1ijIlluminate\Routing/ijIlluminate\Remote-ijIlluminate\Redis7ijIlluminate\Queue\Jobs;ijIlluminate\Queue\Failed =ijIlluminate\Queue\Console#CijIlluminate\Queue\Connectors =ijIlluminate\Queue\Capsule-ijIlluminate\Queue7ijIlluminate\Pagination+ijIlluminate\Mail)ijIlluminate\Log+ijIlluminate\Http+ijIlluminate\Html1ijIlluminate\Hashing%GijIlluminate\Foundation\Testing'KijIlluminate\Foundation\Providers%GijIlluminate\Foundation\Console7ijIlluminate\Foundation7ijIlluminate\Filesystem5ijIlluminate\Exception/ijIlluminate\Events7ijIlluminate\Encryption+SijIlluminate\Database\Schema\Grammars"AijIlluminate\Database\Schema,UijIlluminate\Database\Query\Processors*QijIlluminate\Database\Query\Grammars!?ijIlluminate\Database\Query&IijIlluminate\Database\Migrations.YijIlluminate\Database\Eloquent\Relations$EijIlluminate\Database\Eloquent.YijIlluminate\Database\Console\Migrations#CijIlluminate\Database\Console&IijIlluminate\Database\Connectors#CijIlluminate\Database\Capsule3ijIlluminate\Database/ijIlluminate\Cookie5ijIlluminate\Container1ijIlluminate\Console/ijIlluminate\Config =ijIlluminate\Cache\Console
   : wY<( zkT;$wW2l]K0
s\;





e
@
*
							o	L	0	zcK4pY>/ 	nT<%zcH9*kS<$lV>'Y'j:            /[lSymfony\Component\Debug\Tests\Fixtures2#.YlSymfony\Component\Debug\Tests\Fixtures!7klSymfony\Component\Debug\Tests\FatalErrorHandler /[lSymfony\Component\Debug\Tests\Exception%GlSymfony\Component\Debug\Tests1_lSymfony\Component\Debug\FatalErrorHandler)OlSymfony\Component\Debug\Exception;lSymfony\Component\Debugkglobalkglobal+0kglobal+1kglobalkglobal!kfunctionalkStack+jPredis\Protocol+)jPredis\Profile++jPredis\Pipeline+'jPredis\Option+/jPredis\Connection+ =jPredis\Command\Processor+)jPredis\Command+~3jPredis\Cluster\Hash+}#CjPredis\Cluster\Distribution+|)jPredis\Cluster+{jPredis+z+jPredis\Protocol,_)jPredis\Profile,^+jPredis\Pipeline,]'jPredis\Option,\/jPredis\Connection,[ =jPredis\Command\Processor,Z)jPredis\Command,Y3jPredis\Cluster\Hash,X#CjPredis\Cluster\Distribution,W)jPredis\Cluster,VjPredis,Ujglobal1jPredis\Transaction)jPredis\Session1jPredis\Replication'jPredis\PubSub5jPredis\Protocol\Text+jPredis\Protocol)jPredis\Profile+jPredis\Pipeline'jPredis\Option)jPredis\Monitor+jPredis\Iterator/jPredis\Connection =jPredis\Command\Processor)jPredis\Command"AjPredis\Collection\Iterator3jPredis\Cluster\Hash#CjPredis\Cluster\Distribution)jPredis\ClusterjPredisjglobal1jPredis\Transaction)jPredis\Session =jPredis\Response\Iterator+jPredis\Response1jPredis\Replication'jPredis\PubSub$EjPredis\Protocol\Text\Handler5jPredis\Protocol\Text+jPredis\Protocol)jPredis\Profile+jPredis\Pipeline)jPredis\Monitor#CjPredis\Connection\Aggregate/jPredis\Connection5jPredis\Configuration =jPredis\Command\Processor)jPredis\Command"AjPredis\Collection\Iterator3jPredis\Cluster\Hash"AjPredis\Cluster\Distributor)jPredis\ClusterjPredisjglobal1jPredis\Transaction)jPredis\Session =jPredis\Response\Iterator+jPredis\Response1jPredis\Replication'jPredis\PubSub$EjPredis\Protocol\Text\Handler5jPredis\Protocol\Text+jPredis\Protocol)jPredis\Profile+jPredis\Pipeline)jPredis\Monitor#CjPredis\Connection\Aggregate/jPredis\Connection5jPredis\Configuration =jPredis\Command\Processor)jPredis\Command"AjPredis\Collection\Iterator3jPredis\Cluster\Hash"AjPredis\Cluster\Distributor)jPredis\ClusterjPredisjglobaljglobal)jPatchwork\Utf81jPatchwork\PHP\ShimjPatchworkjglobal	)jPatchwork\Utf8	1jPatchwork\PHP\Shim	jPatchwork	jglobaljCarbonjCarbonI'KiJeremeamia\SuperClosure\Visitor,UiJeremeamia\SuperClosure\Test\Visitor$EiJeremeamia\SuperClosure\Test;iJeremeamia\SuperClosure9iSuperClosure\Exception(%iSuperClosure(iglobal!iglobal!5iWhoops\Provider\Zend7iWhoops\Provider\Silex;iWhoops\Provider\Phalcon)iWhoops\Handler-iWhoops\Exception)iWhoops\ExampleiWhoops#iWhoops\Util5iWhoops\Provider\Zend7iWhoops\Provider\Silex;iWhoops\Provider\Phalcon)iWhoops\Handler-iWhoops\ExceptioniWhoops#iWhoops\Util5iWhoops\Provider\Zend7iWhoops\Provider\Silex;iWhoops\Provider\Phalcon)iWhoops\Handler-iWhoops\ExceptioniWhoopsiBoris)iBoris%iBoris
   O ^/]%n<p>I


m
,				M	Y\+qHn5&`/Cd-p(       (MoqSymfony\Component\HttpFoundation;o`global	[Eo`Symfony\Component\HttpFoundation\Tests\Session\Storage\Proxy	ZG	o`Symfony\Component\HttpFoundation\Tests\Session\Storage\Handler	X>yo`Symfony\Component\HttpFoundation\Tests\Session\Storage	Y<uo`Symfony\Component\HttpFoundation\Tests\Session\Flash	V@}o`Symfony\Component\HttpFoundation\Tests\Session\Attribute	U6io`Symfony\Component\HttpFoundation\Tests\Session	W<uo`Symfony\Component\HttpFoundation\Tests\File\MimeType	T3co`Symfony\Component\HttpFoundation\Tests\File	S.Yo`Symfony\Component\HttpFoundation\Tests	R>yo`Symfony\Component\HttpFoundation\Session\Storage\Proxy	Q@}o`Symfony\Component\HttpFoundation\Session\Storage\Handler	O8mo`Symfony\Component\HttpFoundation\Session\Storage	P6io`Symfony\Component\HttpFoundation\Session\Flash	M:qo`Symfony\Component\HttpFoundation\Session\Attribute	L0]o`Symfony\Component\HttpFoundation\Session	N6io`Symfony\Component\HttpFoundation\File\MimeType	K7ko`Symfony\Component\HttpFoundation\File\Exception	I-Wo`Symfony\Component\HttpFoundation\File	J(Mo`Symfony\Component\HttpFoundation	Ho^global'8mo^Symfony\Component\HttpFoundation\Session\Storage'6io^Symfony\Component\HttpFoundation\Session\Flash':qo^Symfony\Component\HttpFoundation\Session\Attribute'0]o^Symfony\Component\HttpFoundation\Session'6io^Symfony\Component\HttpFoundation\File\MimeType'(Mo^Symfony\Component\HttpFoundation'oOglobal,8moOSymfony\Component\HttpFoundation\Session\Storage,6ioOSymfony\Component\HttpFoundation\Session\Flash,:qoOSymfony\Component\HttpFoundation\Session\Attribute,0]oOSymfony\Component\HttpFoundation\Session,6ioOSymfony\Component\HttpFoundation\File\MimeType,(MoOSymfony\Component\HttpFoundation,oIglobalaEoISymfony\Component\HttpFoundation\Tests\Session\Storage\Proxy`G	oISymfony\Component\HttpFoundation\Tests\Session\Storage\Handler^>yoISymfony\Component\HttpFoundation\Tests\Session\Storage_<uoISymfony\Component\HttpFoundation\Tests\Session\Flash\@}oISymfony\Component\HttpFoundation\Tests\Session\Attribute[6ioISymfony\Component\HttpFoundation\Tests\Session]<uoISymfony\Component\HttpFoundation\Tests\File\MimeTypeZ3coISymfony\Component\HttpFoundation\Tests\FileY.YoISymfony\Component\HttpFoundation\TestsX>yoISymfony\Component\HttpFoundation\Session\Storage\ProxyW@}oISymfony\Component\HttpFoundation\Session\Storage\HandlerU8moISymfony\Component\HttpFoundation\Session\StorageV6ioISymfony\Component\HttpFoundation\Session\FlashS:qoISymfony\Component\HttpFoundation\Session\AttributeR0]oISymfony\Component\HttpFoundation\SessionT6ioISymfony\Component\HttpFoundation\File\MimeTypeQ7koISymfony\Component\HttpFoundation\File\ExceptionO-WoISymfony\Component\HttpFoundation\FileP(MoISymfony\Component\HttpFoundationN.Ym"Symfony\Component\Debug\Tests\Fixtures-1_m"Symfony\Component\Debug\FatalErrorHandler-lglobal).YlSymfony\Component\Debug\Tests\Fixtures*7klSymfony\Component\Debug\Tests\FatalErrorHandler(/[lSymfony\Component\Debug\Tests\Exception'%GlSymfony\Component\Debug\Tests&1_lSymfony\Component\Debug\FatalErrorHandler%)OlSymfony\Component\Debug\Exception$;lSymfony\Component\Debug#lglobal	7.YlSymfony\Component\HttpKernel\Exception	1.YlSymfony\Component\Debug\Tests\Fixtures	67klSymfony\Component\Debug\Tests\FatalErrorHandler	5/[lSymfony\Component\Debug\Tests\Exception	4%GlSymfony\Component\Debug\Tests	31_lSymfony\Component\Debug\FatalErrorHandler	2)OlSymfony\Component\Debug\Exception	0;lSymfony\Component\Debug	/.YlSymfony\Component\Debug\Tests\Fixtures'1_lSymfony\Component\Debug\FatalErrorHandler'1_lSymfony\Component\Debug\FatalErrorHandler#lglobal" -WoqSymfony\Component\HttpFoundation\File=
 G  X'|;\%h k:




W
 				e	4	mB	|Nk3[t@KQi4               $EoSymfony\Component\HttpKernel(8moSymfony\Component\HttpKernel\Tests\Profiler\Mock3coSymfony\Component\HttpKernel\Tests\Profiler4eoSymfony\Component\HttpKernel\Tests\HttpCache3coSymfony\Component\HttpKernel\Tests\Fragment_9oSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\DependencyInjectionS!oSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\CommandKoSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle`;oSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionNotValidBundle\DependencyInjectionLoSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionNotValidBundle^7oSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionLoadedBundle\DependencyInjectionJoSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionLoadedBundleJoSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionAbsentBundle~3coSymfony\Component\HttpKernel\Tests\Fixtures8moSymfony\Component\HttpKernel\Tests\EventListener}>yoSymfony\Component\HttpKernel\Tests\DependencyInjection|0]oSymfony\Component\HttpKernel\Tests\Debug{=woSymfony\Component\HttpKernel\Tests\DataCollector\Utilz8moSymfony\Component\HttpKernel\Tests\DataCollectory5goSymfony\Component\HttpKernel\Tests\Controllerx1_oSymfony\Component\HttpKernel\Tests\Configw6ioSymfony\Component\HttpKernel\Tests\CacheWarmeru7koSymfony\Component\HttpKernel\Tests\CacheClearert1_oSymfony\Component\HttpKernel\Tests\Bundles*QoSymfony\Component\HttpKernel\Testsv-WoSymfony\Component\HttpKernel\Profilerr(MoSymfony\Component\HttpKernel\Logq.YoSymfony\Component\HttpKernel\HttpCachep-WoSymfony\Component\HttpKernel\Fragmento.YoSymfony\Component\HttpKernel\Exceptionn2aoSymfony\Component\HttpKernel\EventListenerm*QoSymfony\Component\HttpKernel\Eventl8moSymfony\Component\HttpKernel\DependencyInjectionk*QoSymfony\Component\HttpKernel\Debugj7koSymfony\Component\HttpKernel\DataCollector\Utili2aoSymfony\Component\HttpKernel\DataCollectorh/[oSymfony\Component\HttpKernel\Controllerg+SoSymfony\Component\HttpKernel\Configf0]oSymfony\Component\HttpKernel\CacheWarmerd1_oSymfony\Component\HttpKernel\CacheClearerc+SoSymfony\Component\HttpKernel\Bundleb$EoSymfony\Component\HttpKernele7koSymfony\Component\HttpFoundation\SessionStorage"6ioSymfony\Component\HttpFoundation\File\MimeType"(MoSymfony\Component\HttpFoundation"oglobal$8moSymfony\Component\HttpFoundation\Session\Storage$"6ioSymfony\Component\HttpFoundation\Session\Flash$ :qoSymfony\Component\HttpFoundation\Session\Attribute$0]oSymfony\Component\HttpFoundation\Session$!6ioSymfony\Component\HttpFoundation\File\MimeType$(MoSymfony\Component\HttpFoundation$oqglobalOEoqSymfony\Component\HttpFoundation\Tests\Session\Storage\ProxyNG	oqSymfony\Component\HttpFoundation\Tests\Session\Storage\HandlerL>yoqSymfony\Component\HttpFoundation\Tests\Session\StorageM<uoqSymfony\Component\HttpFoundation\Tests\Session\FlashJ@}oqSymfony\Component\HttpFoundation\Tests\Session\AttributeI6ioqSymfony\Component\HttpFoundation\Tests\SessionK<uoqSymfony\Component\HttpFoundation\Tests\File\MimeTypeH3coqSymfony\Component\HttpFoundation\Tests\FileG.YoqSymfony\Component\HttpFoundation\TestsF>yoqSymfony\Component\HttpFoundation\Session\Storage\ProxyE@}oqSymfony\Component\HttpFoundation\Session\Storage\HandlerC8moqSymfony\Component\HttpFoundation\Session\StorageD6ioqSymfony\Component\HttpFoundation\Session\FlashA:qoqSymfony\Component\HttpFoundation\Session\Attribute@0]oqSymfony\Component\HttpFoundation\SessionB8moqSymfony\Component\HttpFoundation\Resources\stubs?6ioqSymfony\Component\HttpFoundation\File\MimeType>   oqSymfo+SoSymfony\Component\HttpKernel\Bundle'
   K  l=d8yFLi>


k
5				S	**T/tDuJb4	h6 W   JoSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionAbsentBundlek3coSymfony\Component\HttpKernel\Tests\Fixturesq8moSymfony\Component\HttpKernel\Tests\EventListenerj>yoSymfony\Component\HttpKernel\Tests\DependencyInjectioni0]oSymfony\Component\HttpKernel\Tests\Debugh8moSymfony\Component\HttpKernel\Tests\DataCollectorg5goSymfony\Component\HttpKernel\Tests\Controllerf1_oSymfony\Component\HttpKernel\Tests\Confige6ioSymfony\Component\HttpKernel\Tests\CacheWarmerc7koSymfony\Component\HttpKernel\Tests\CacheClearerb1_oSymfony\Component\HttpKernel\Tests\Bundlea*QoSymfony\Component\HttpKernel\Testsd-WoSymfony\Component\HttpKernel\Profiler`(MoSymfony\Component\HttpKernel\Log_.YoSymfony\Component\HttpKernel\HttpCache^-WoSymfony\Component\HttpKernel\Fragment].YoSymfony\Component\HttpKernel\Exception\2aoSymfony\Component\HttpKernel\EventListener[*QoSymfony\Component\HttpKernel\EventZ8moSymfony\Component\HttpKernel\DependencyInjectionY*QoSymfony\Component\HttpKernel\DebugX7koSymfony\Component\HttpKernel\DataCollector\UtilW2aoSymfony\Component\HttpKernel\DataCollectorV/[oSymfony\Component\HttpKernel\ControllerU+SoSymfony\Component\HttpKernel\ConfigT0]oSymfony\Component\HttpKernel\CacheWarmerR1_oSymfony\Component\HttpKernel\CacheClearerQ+SoSymfony\Component\HttpKernel\BundleP$EoSymfony\Component\HttpKernelS8moSymfony\Component\HttpKernel\Tests\Profiler\Mock	3coSymfony\Component\HttpKernel\Tests\Profiler	4eoSymfony\Component\HttpKernel\Tests\HttpCache	3coSymfony\Component\HttpKernel\Tests\Fragment	~_9oSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\DependencyInjection	{S!oSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\Command	zKoSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle	|^7oSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionLoadedBundle\DependencyInjection	xJoSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionLoadedBundle	yJoSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionAbsentBundle	w3coSymfony\Component\HttpKernel\Tests\Fixtures	}8moSymfony\Component\HttpKernel\Tests\EventListener	v>yoSymfony\Component\HttpKernel\Tests\DependencyInjection	u0]oSymfony\Component\HttpKernel\Tests\Debug	t8moSymfony\Component\HttpKernel\Tests\DataCollector	s5goSymfony\Component\HttpKernel\Tests\Controller	r1_oSymfony\Component\HttpKernel\Tests\Config	q6ioSymfony\Component\HttpKernel\Tests\CacheWarmer	o7koSymfony\Component\HttpKernel\Tests\CacheClearer	n1_oSymfony\Component\HttpKernel\Tests\Bundle	m*QoSymfony\Component\HttpKernel\Tests	p-WoSymfony\Component\HttpKernel\Profiler	l(MoSymfony\Component\HttpKernel\Log	k.YoSymfony\Component\HttpKernel\HttpCache	j-WoSymfony\Component\HttpKernel\Fragment	i.YoSymfony\Component\HttpKernel\Exception	h2aoSymfony\Component\HttpKernel\EventListener	g*QoSymfony\Component\HttpKernel\Event	f8moSymfony\Component\HttpKernel\DependencyInjection	e*QoSymfony\Component\HttpKernel\Debug	d7koSymfony\Component\HttpKernel\DataCollector\Util	c2aoSymfony\Component\HttpKernel\DataCollector	b/[oSymfony\Component\HttpKernel\Controller	a+SoSymfony\Component\HttpKernel\Config	`0]oSymfony\Component\HttpKernel\CacheWarmer	^1_oSymfony\Component\HttpKernel\CacheClearer	]+SoSymfony\Component\HttpKernel\Bundle	\$EoSymfony\Component\HttpKernel	_-WoSymfony\Component\HttpKernel\Profiler((MoSymfony\Component\HttpKernel\Log(.YoSymfony\Component\HttpKernel\HttpCache( -WoSymfony\Component\HttpKernel\Fragment'.YoSymfony\Component\HttpKernel\Exception'2aoSymfony\Component\HttpKernel\DataCollector'/[oSymfony\Component\HttpKernel\Controller'0]oSymfony\Component\HttpKernel\CacheWarmer'
 D  V
V"[/i:9


X
			c	3	x;gg/Q$lDN~Lm$                      ;sqSymfony\Component\Security\Core\Tests\Authorization	CqSymfony\Component\Security\Core\Tests\Authentication\Token	HqSymfony\Component\Security\Core\Tests\Authentication\RememberMe	FqSymfony\Component\Security\Core\Tests\Authentication\Provider	<uqSymfony\Component\Security\Core\Tests\Authentication	-WqSymfony\Component\Security\Core\Tests	,UqSymfony\Component\Security\Core\Role	1_qSymfony\Component\Security\Core\Exception	-WqSymfony\Component\Security\Core\Event	/[qSymfony\Component\Security\Core\Encoder	;sqSymfony\Component\Security\Core\Authorization\Voter	5gqSymfony\Component\Security\Core\Authorization	<uqSymfony\Component\Security\Core\Authentication\Token	AqSymfony\Component\Security\Core\Authentication\RememberMe	?{qSymfony\Component\Security\Core\Authentication\Provider	6iqSymfony\Component\Security\Core\Authentication	'KqSymfony\Component\Security\Core	LqAcme\DemoBundle\Proxy\__CG__\Symfony\Component\Security\Core\Tests\	=wqSymfony\Component\Security\Core\Validator\Constraints,UqSymfony\Component\Security\Core\Util,UqSymfony\Component\Security\Core\UserDqSymfony\Component\Security\Core\Tests\Validator\Constraints2aqSymfony\Component\Security\Core\Tests\Util2aqSymfony\Component\Security\Core\Tests\User2aqSymfony\Component\Security\Core\Tests\Role7kqSymfony\Component\Security\Core\Tests\Exception5gqSymfony\Component\Security\Core\Tests\EncoderAqSymfony\Component\Security\Core\Tests\Authorization\Voter;sqSymfony\Component\Security\Core\Tests\AuthorizationKqSymfony\Component\Security\Core\Tests\Authentication\Token\StorageCqSymfony\Component\Security\Core\Tests\Authentication\TokenHqSymfony\Component\Security\Core\Tests\Authentication\RememberMeFqSymfony\Component\Security\Core\Tests\Authentication\Provider<uqSymfony\Component\Security\Core\Tests\Authentication-WqSymfony\Component\Security\Core\Tests,UqSymfony\Component\Security\Core\Role1_qSymfony\Component\Security\Core\Exception-WqSymfony\Component\Security\Core\Event/[qSymfony\Component\Security\Core\Encoder;sqSymfony\Component\Security\Core\Authorization\Voter5gqSymfony\Component\Security\Core\AuthorizationEqSymfony\Component\Security\Core\Authentication\Token\Storage<uqSymfony\Component\Security\Core\Authentication\TokenAqSymfony\Component\Security\Core\Authentication\RememberMe?{qSymfony\Component\Security\Core\Authentication\Provider6iqSymfony\Component\Security\Core\Authentication'KqSymfony\Component\Security\CoreLqAcme\DemoBundle\Proxy\__CG__\Symfony\Component\Security\Core\Tests\-Wp-Symfony\Component\HttpKernel\Profiler"(Mp-Symfony\Component\HttpKernel\Log".Yp-Symfony\Component\HttpKernel\HttpCache"-Wp-Symfony\Component\HttpKernel\Fragment".Yp-Symfony\Component\HttpKernel\Exception"2ap-Symfony\Component\HttpKernel\DataCollector"/[p-Symfony\Component\HttpKernel\Controller"0]p-Symfony\Component\HttpKernel\CacheWarmer"1_p-Symfony\Component\HttpKernel\CacheClearer"+Sp-Symfony\Component\HttpKernel\Bundle"$Ep-Symfony\Component\HttpKernel"8moSymfony\Component\HttpKernel\Tests\Profiler\Mocku3coSymfony\Component\HttpKernel\Tests\Profilert4eoSymfony\Component\HttpKernel\Tests\HttpCaches3coSymfony\Component\HttpKernel\Tests\Fragmentr_9oSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\DependencyInjectionoS!oSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\CommandnKoSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundlep^7oSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionLoadedBundle\DependencyInjectionl   	oSAqSymfony\Component\Security\Core\Tests\Authorization\Voter	
 ]  d1Th&wGO

{
?				a	.Q;whE"w+vS<0# eH)['hCR+         -W{Symfony\Bridge\Doctrine\Security\User3c{Symfony\Bridge\Doctrine\Security\RememberMe&I{Symfony\Bridge\Doctrine\Logger.Y{Symfony\Bridge\Doctrine\HttpFoundation)O{Symfony\Bridge\Doctrine\Form\Type2a{Symfony\Bridge\Doctrine\Form\EventListener4e{Symfony\Bridge\Doctrine\Form\DataTransformer/[{Symfony\Bridge\Doctrine\Form\ChoiceList$E{Symfony\Bridge\Doctrine\Form2a{Symfony\Bridge\Doctrine\ExpressionLanguageJ{Symfony\Bridge\Doctrine\DependencyInjection\Security\UserProvider@}{Symfony\Bridge\Doctrine\DependencyInjection\CompilerPass3c{Symfony\Bridge\Doctrine\DependencyInjection,U{Symfony\Bridge\Doctrine\DataFixtures-W{Symfony\Bridge\Doctrine\DataCollector+S{Symfony\Bridge\Doctrine\CacheWarmer;{Symfony\Bridge\Doctrine#{Namespaced2!{Namespaced9{NamespaceCollision\C\B5{NamespaceCollision\C9{NamespaceCollision\A\B5{NamespaceCollision\A{Foo\Bar{Foo#{Container14#{Constraints Y1{ClassesWithParents{ClassMap{ClassCons{Beta{Bar){Apc\Namespaced"A{Apc\NamespaceCollision\A\B ={Apc\NamespaceCollision\A{Alpha#C{Acme\DemoLib\Lets\Go\Deeper%{Acme\DemoLibL{Acme\DemoBundle\Proxy\__CG__\Symfony\Component\Security\Core\Tests\ K{Acme\DemoBundle\Proxy\__CG__\Symfony\Component\Security\Acl\Tests\{svMichelfspMichelf	slMichelf!Drglobal"ArIntervention\Image\Facades$ErIntervention\Image\Exception1rIntervention\Image"ArIntervention\Image\Filters,F"ArIntervention\Image\Filters,GrDglobal"ArDWardrobe\Core\Repositories5rDWardrobe\Core\Models7rDWardrobe\Core\Facades%GrDWardrobe\Core\Controllers\Api!?rDWardrobe\Core\Controllers7rDWardrobe\Core\Console'rDWardrobe\Core=wqSymfony\Component\Security\Core\Validator\Constraints,UqSymfony\Component\Security\Core\Util,UqSymfony\Component\Security\Core\UserDqSymfony\Component\Security\Core\Tests\Validator\Constraints2aqSymfony\Component\Security\Core\Tests\Util2aqSymfony\Component\Security\Core\Tests\User2aqSymfony\Component\Security\Core\Tests\Role5gqSymfony\Component\Security\Core\Tests\EncoderAqSymfony\Component\Security\Core\Tests\Authorization\Voter;sqSymfony\Component\Security\Core\Tests\AuthorizationCqSymfony\Component\Security\Core\Tests\Authentication\TokenHqSymfony\Component\Security\Core\Tests\Authentication\RememberMeFqSymfony\Component\Security\Core\Tests\Authentication\Provider<uqSymfony\Component\Security\Core\Tests\Authentication-WqSymfony\Component\Security\Core\Tests,UqSymfony\Component\Security\Core\Role1_qSymfony\Component\Security\Core\Exception-WqSymfony\Component\Security\Core\Event/[qSymfony\Component\Security\Core\Encoder;sqSymfony\Component\Security\Core\Authorization\Voter5gqSymfony\Component\Security\Core\Authorization<uqSymfony\Component\Security\Core\Authentication\TokenAqSymfony\Component\Security\Core\Authentication\RememberMe?{qSymfony\Component\Security\Core\Authentication\Provider6iqSymfony\Component\Security\Core\Authentication'KqSymfony\Component\Security\CoreLqAcme\DemoBundle\Proxy\__CG__\Symfony\Component\Security\Core\Tests\=wqSymfony\Component\Security\Core\Validator\Constraints	,UqSymfony\Component\Security\Core\Util	,UqSymfony\Component\Security\Core\User	DqSymfony\Component\Security\Core\Tests\Validator\Constraints	2aqSymfony\Component\Security\Core\Tests\Util	2aqSymfony\Component\Security\Core\Tests\User	2aqSymfony\Component\Security\Core\Tests\Role	   qSymfony\Co$E{Symfony\Bridge\Doctrine\Test
   N  _NMiBzK,



J
				~	Z	0	
~T(pBXzKzE
`/ ]$]                                  O{Symfony\Bundle\FrameworkBundle\Tests\Command\CacheClearCommand\Fixture;G	{Symfony\Bundle\FrameworkBundle\Tests\Command\CacheClearCommand:4e{Symfony\Bundle\FrameworkBundle\Tests\Command<8m{Symfony\Bundle\FrameworkBundle\Tests\CacheWarmer8,U{Symfony\Bundle\FrameworkBundle\Tests9+S{Symfony\Bundle\FrameworkBundle\Test78m{Symfony\Bundle\FrameworkBundle\Templating\Loader68m{Symfony\Bundle\FrameworkBundle\Templating\Helper57k{Symfony\Bundle\FrameworkBundle\Templating\Asset31_{Symfony\Bundle\FrameworkBundle\Templating4.Y{Symfony\Bundle\FrameworkBundle\Routing20]{Symfony\Bundle\FrameworkBundle\HttpCache1/[{Symfony\Bundle\FrameworkBundle\Fragment04e{Symfony\Bundle\FrameworkBundle\EventListener/D{Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler-:q{Symfony\Bundle\FrameworkBundle\DependencyInjection.4e{Symfony\Bundle\FrameworkBundle\DataCollector,1_{Symfony\Bundle\FrameworkBundle\Controller+5g{Symfony\Bundle\FrameworkBundle\Console\Helper*9o{Symfony\Bundle\FrameworkBundle\Console\Descriptor).Y{Symfony\Bundle\FrameworkBundle\Console(.Y{Symfony\Bundle\FrameworkBundle\Command'2a{Symfony\Bundle\FrameworkBundle\CacheWarmer%&I{Symfony\Bundle\FrameworkBundle&F{Symfony\Bundle\DebugBundle\Tests\DependencyInjection\Compiler#<u{Symfony\Bundle\DebugBundle\Tests\DependencyInjection$?{{Symfony\Bundle\DebugBundle\DependencyInjection\Compiler!6i{Symfony\Bundle\DebugBundle\DependencyInjection""A{Symfony\Bundle\DebugBundle 'K{Symfony\Bridge\Twig\Translation'K{Symfony\Bridge\Twig\TokenParser-W{Symfony\Bridge\Twig\Tests\Translation-W{Symfony\Bridge\Twig\Tests\TokenParser-W{Symfony\Bridge\Twig\Tests\NodeVisitor&I{Symfony\Bridge\Twig\Tests\Node4e{Symfony\Bridge\Twig\Tests\Extension\Fixtures+S{Symfony\Bridge\Twig\Tests\Extension)O{Symfony\Bridge\Twig\Tests\Command!?{Symfony\Bridge\Twig\Tests'K{Symfony\Bridge\Twig\NodeVisitor ={Symfony\Bridge\Twig\Node ={Symfony\Bridge\Twig\Form%G{Symfony\Bridge\Twig\Extension)O{Symfony\Bridge\Twig\DataCollector#C{Symfony\Bridge\Twig\Command3{Symfony\Bridge\Twig0]{Symfony\Bridge\Swiftmailer\DataCollector=w{Symfony\Bridge\ProxyManager\Tests\LazyProxy\PhpDumper@}{Symfony\Bridge\ProxyManager\Tests\LazyProxy\Instantiator:q{Symfony\Bridge\ProxyManager\Tests\LazyProxy\Dumper
3c{Symfony\Bridge\ProxyManager\Tests\LazyProxy	7k{Symfony\Bridge\ProxyManager\LazyProxy\PhpDumper:q{Symfony\Bridge\ProxyManager\LazyProxy\Instantiator9{Symfony\Bridge\PhpUnit.Y{Symfony\Bridge\Monolog\Tests\Processor;s{Symfony\Bridge\Monolog\Tests\Handler\FingersCrossed,U{Symfony\Bridge\Monolog\Tests\Handler(M{Symfony\Bridge\Monolog\Processor5g{Symfony\Bridge\Monolog\Handler\FingersCrossed &I{Symfony\Bridge\Monolog\Handler(M{Symfony\Bridge\Monolog\Formatter9{Symfony\Bridge\Monolog5g{Symfony\Bridge\Doctrine\Validator\Constraints)O{Symfony\Bridge\Doctrine\Validator;s{Symfony\Bridge\Doctrine\Tests\Validator\Constraints3c{Symfony\Bridge\Doctrine\Tests\Security\User,U{Symfony\Bridge\Doctrine\Tests\Logger4e{Symfony\Bridge\Doctrine\Tests\HttpFoundation/[{Symfony\Bridge\Doctrine\Tests\Form\Type:q{Symfony\Bridge\Doctrine\Tests\Form\DataTransformer5g{Symfony\Bridge\Doctrine\Tests\Form\ChoiceList*Q{Symfony\Bridge\Doctrine\Tests\Form.Y{Symfony\Bridge\Doctrine\Tests\Fixtures8m{Symfony\Bridge\Doctrine\Tests\ExpressionLanguageG	{Symfony\Bridge\Doctrine\Tests\DependencyInjection\CompilerPass9o{Symfony\Bridge\Doctrine\Tests\DependencyInjection2a{Symfony\Bridge\Doctrine\Tests\DataFixtures3c{Symfony\Bridge\Doctrine\Tests\DataCollector
 <  SPwvA	B	


n
H
			h	h0_=4pfp;l6          +S{Symfony\Bundle\TwigBundle\ExtensionC{Symfony\Bundle\TwigBundle\DependencyInjection\Configurator>y{Symfony\Bundle\TwigBundle\DependencyInjection\Compiler~5g{Symfony\Bundle\TwigBundle\DependencyInjection'K{Symfony\Bundle\TwigBundle\Debug},U{Symfony\Bundle\TwigBundle\Controller|)O{Symfony\Bundle\TwigBundle\Command{-W{Symfony\Bundle\TwigBundle\CacheWarmerz!?{Symfony\Bundle\TwigBundle4e{Symfony\Bundle\SecurityBundle\Twig\Extensiony:q{Symfony\Bundle\SecurityBundle\Tests\Functional\appkW){Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FormLoginBundle\Securityxb?{Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FormLoginBundle\DependencyInjectionvY-{Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FormLoginBundle\ControlleruN{Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FormLoginBundlew`;{Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FirewallEntryPointBundle\SecuritytkQ{Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FirewallEntryPointBundle\DependencyInjectionrW){Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FirewallEntryPointBundlesW){Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\CsrfFormLoginBundle\Formq]5{Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\CsrfFormLoginBundle\ControlleroR{Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\CsrfFormLoginBundlepO{Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\AclBundle\EntitynH{Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\AclBundlem6i{Symfony\Bundle\SecurityBundle\Tests\FunctionallQ{Symfony\Bundle\SecurityBundle\Tests\DependencyInjection\Security\FactoryjV'{Symfony\Bundle\SecurityBundle\Tests\DependencyInjection\Fixtures\UserProvideri?{{Symfony\Bundle\SecurityBundle\Tests\DependencyInjectionh9o{Symfony\Bundle\SecurityBundle\Tests\DataCollectorg7k{Symfony\Bundle\SecurityBundle\Templating\Helperf.Y{Symfony\Bundle\SecurityBundle\Securityd3c{Symfony\Bundle\SecurityBundle\EventListenercP{Symfony\Bundle\SecurityBundle\DependencyInjection\Security\UserProviderbK{Symfony\Bundle\SecurityBundle\DependencyInjection\Security\FactoryaC{Symfony\Bundle\SecurityBundle\DependencyInjection\Compiler_9o{Symfony\Bundle\SecurityBundle\DependencyInjection`3c{Symfony\Bundle\SecurityBundle\DataCollector^-W{Symfony\Bundle\SecurityBundle\Command]%G{Symfony\Bundle\SecurityBundlee0]{Symfony\Bundle\FrameworkBundle\Validator\2a{Symfony\Bundle\FrameworkBundle\Translation[6i{Symfony\Bundle\FrameworkBundle\Tests\ValidatorZ8m{Symfony\Bundle\FrameworkBundle\Tests\TranslationY>y{Symfony\Bundle\FrameworkBundle\Tests\Templating\LoaderXH{Symfony\Bundle\FrameworkBundle\Tests\Templating\Helper\FixturesW>y{Symfony\Bundle\FrameworkBundle\Tests\Templating\HelperV7k{Symfony\Bundle\FrameworkBundle\Tests\TemplatingU4e{Symfony\Bundle\FrameworkBundle\Tests\RoutingT;s{Symfony\Bundle\FrameworkBundle\Tests\Functional\appNeE{Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\DependencyInjection\ConfigP^7{Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\DependencyInjectionQU%{Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\ControllerOJ{Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundleR7k{Symfony\Bundle\FrameworkBundle\Tests\FunctionalS5g{Symfony\Bundle\FrameworkBundle\Tests\FragmentM@}{Symfony\Bundle\FrameworkBundle\Tests\Fixtures\BaseBundleBJ{Symfony\Bundle\FrameworkBundle\Tests\DependencyInjection\Compiler@@}{Symfony\Bundle\FrameworkBundle\Tests\DependencyInjectionA7k{Symfony\Bundle\FrameworkBundle\Tests\Controller??{{Symfony\Bundle\FrameworkBundle\Tests\Console\Descriptor>   {Symfo(M{Symfony\Bundle\TwigBundle\Loader
   R  i#`7^,H]3



g
;
				Q	&{Ak;tHzR)m;R#u@
vC                                 ;s{Symfony\Component\CssSelector\Tests\Parser\Shortcut:q{Symfony\Component\CssSelector\Tests\Parser\Handler2a{Symfony\Component\CssSelector\Tests\Parser0]{Symfony\Component\CssSelector\Tests\Node+S{Symfony\Component\CssSelector\Tests6i{Symfony\Component\CssSelector\Parser\Tokenizer5g{Symfony\Component\CssSelector\Parser\Shortcut4e{Symfony\Component\CssSelector\Parser\Handler,U{Symfony\Component\CssSelector\Parser*Q{Symfony\Component\CssSelector\Node/[{Symfony\Component\CssSelector\Exception%G{Symfony\Component\CssSelector.Y{Symfony\Component\Console\Tests\Tester-W{Symfony\Component\Console\Tests\Style.Y{Symfony\Component\Console\Tests\Output.Y{Symfony\Component\Console\Tests\Logger-W{Symfony\Component\Console\Tests\Input.Y{Symfony\Component\Console\Tests\Helper1_{Symfony\Component\Console\Tests\Formatter0]{Symfony\Component\Console\Tests\Fixtures2a{Symfony\Component\Console\Tests\Descriptor/[{Symfony\Component\Console\Tests\Command'K{Symfony\Component\Console\Tests(M{Symfony\Component\Console\Tester'K{Symfony\Component\Console\Style*Q{Symfony\Component\Console\Question(M{Symfony\Component\Console\Output(M{Symfony\Component\Console\Logger'K{Symfony\Component\Console\Input(M{Symfony\Component\Console\Helper+S{Symfony\Component\Console\Formatter'K{Symfony\Component\Console\Event,U{Symfony\Component\Console\Descriptor)O{Symfony\Component\Console\Command!?{Symfony\Component\Console%G{Symfony\Component\Config\Util/[{Symfony\Component\Config\Tests\Resource-W{Symfony\Component\Config\Tests\Loader=w{Symfony\Component\Config\Tests\Fixtures\Configuration0]{Symfony\Component\Config\Tests\Exception8m{Symfony\Component\Config\Tests\Definition\Dumper9o{Symfony\Component\Config\Tests\Definition\Builder1_{Symfony\Component\Config\Tests\Definition&I{Symfony\Component\Config\Tests)O{Symfony\Component\Config\Resource'K{Symfony\Component\Config\Loader*Q{Symfony\Component\Config\Exception5g{Symfony\Component\Config\Definition\Exception2a{Symfony\Component\Config\Definition\Dumper3c{Symfony\Component\Config\Definition\Builder+S{Symfony\Component\Config\Definition ={Symfony\Component\Config+S{Symfony\Component\ClassLoader\Tests%G{Symfony\Component\ClassLoader*Q{Symfony\Component\BrowserKit\Tests$E{Symfony\Component\BrowserKit/[{Symfony\Component\Asset\VersionStrategy%G{Symfony\Component\Asset\Tests)O{Symfony\Component\Asset\Exception'K{Symfony\Component\Asset\Context;{Symfony\Component\Asset-W{Symfony\Bundle\WebProfilerBundle\Twig7k{Symfony\Bundle\WebProfilerBundle\Tests\Profiler<u{Symfony\Bundle\WebProfilerBundle\Tests\EventListenerC{Symfony\Bundle\WebProfilerBundle\Tests\DependencyInjection9o{Symfony\Bundle\WebProfilerBundle\Tests\Controller6i{Symfony\Bundle\WebProfilerBundle\Tests\Command.Y{Symfony\Bundle\WebProfilerBundle\Tests1_{Symfony\Bundle\WebProfilerBundle\Profiler6i{Symfony\Bundle\WebProfilerBundle\EventListener<u{Symfony\Bundle\WebProfilerBundle\DependencyInjection3c{Symfony\Bundle\WebProfilerBundle\Controller0]{Symfony\Bundle\WebProfilerBundle\Command(M{Symfony\Bundle\WebProfilerBundle-W{Symfony\Bundle\TwigBundle\TokenParser3c{Symfony\Bundle\TwigBundle\Tests\TokenParser.Y{Symfony\Bundle\TwigBundle\Tests\Loader1_{Symfony\Bundle\TwigBundle\Tests\ExtensionE{Symfony\Bundle\TwigBundle\Tests\DependencyInjection\Compiler;s{Symfony\Bundle\TwigBundle\Tests\DependencyInjection2a{Symfony\Bundle\TwigBundle\Tests\Controller'K{Symfony\Bundle\TwigBundle\Tests
   M  ~T"e5h0p; T


F
				Y	/[~KX7a:|L sDQqC                                           ;s{Symfony\Component\Form\Extension\Csrf\EventListener9:q{Symfony\Component\Form\Extension\Csrf\CsrfProvider8-W{Symfony\Component\Form\Extension\Csrf72a{Symfony\Component\Form\Extension\Core\View.2a{Symfony\Component\Form\Extension\Core\Type6;s{Symfony\Component\Form\Extension\Core\EventListener5=w{Symfony\Component\Form\Extension\Core\DataTransformer48m{Symfony\Component\Form\Extension\Core\DataMapper38m{Symfony\Component\Form\Extension\Core\ChoiceList1-W{Symfony\Component\Form\Extension\Core2(M{Symfony\Component\Form\Exception0)O{Symfony\Component\Form\Deprecated/.Y{Symfony\Component\Form\ChoiceList\View-0]{Symfony\Component\Form\ChoiceList\Loader q1_{Symfony\Component\Form\ChoiceList\Factory,)O{Symfony\Component\Form\ChoiceList+9{Symfony\Component\Form*,U{Symfony\Component\Finder\Tests\Shell)/[{Symfony\Component\Finder\Tests\Iterator(2a{Symfony\Component\Finder\Tests\FakeAdapter&1_{Symfony\Component\Finder\Tests\Expression%1_{Symfony\Component\Finder\Tests\Comparator$&I{Symfony\Component\Finder\Tests'&I{Symfony\Component\Finder\Shell#)O{Symfony\Component\Finder\Iterator"+S{Symfony\Component\Finder\Expression *Q{Symfony\Component\Finder\Exception+S{Symfony\Component\Finder\Comparator(M{Symfony\Component\Finder\Adapter ={Symfony\Component\Finder!*Q{Symfony\Component\Filesystem\Tests.Y{Symfony\Component\Filesystem\Exception$E{Symfony\Component\Filesystem7k{Symfony\Component\ExpressionLanguage\Tests\Node;s{Symfony\Component\ExpressionLanguage\Tests\Fixtures2a{Symfony\Component\ExpressionLanguage\Tests8m{Symfony\Component\ExpressionLanguage\ParserCache1_{Symfony\Component\ExpressionLanguage\Node,U{Symfony\Component\ExpressionLanguageD{Symfony\Component\EventDispatcher\Tests\DependencyInjection5g{Symfony\Component\EventDispatcher\Tests\Debug/[{Symfony\Component\EventDispatcher\Tests=w{Symfony\Component\EventDispatcher\DependencyInjection/[{Symfony\Component\EventDispatcher\Debug)O{Symfony\Component\EventDispatcher0]{Symfony\Component\DomCrawler\Tests\Field*Q{Symfony\Component\DomCrawler\Tests*Q{Symfony\Component\DomCrawler\Field$E{Symfony\Component\DomCrawler
@}{Symfony\Component\DependencyInjection\Tests\ParameterBag	:q{Symfony\Component\DependencyInjection\Tests\LoaderH{Symfony\Component\DependencyInjection\Tests\LazyProxy\PhpDumperK{Symfony\Component\DependencyInjection\Tests\LazyProxy\Instantiator=w{Symfony\Component\DependencyInjection\Tests\Extension:q{Symfony\Component\DependencyInjection\Tests\Dumper<u{Symfony\Component\DependencyInjection\Tests\Compiler3c{Symfony\Component\DependencyInjection\Tests :q{Symfony\Component\DependencyInjection\ParameterBag4e{Symfony\Component\DependencyInjection\LoaderA{Symfony\Component\DependencyInjection\LazyProxy\PhpDumperE{Symfony\Component\DependencyInjection\LazyProxy\Instantiator7k{Symfony\Component\DependencyInjection\Extension7k{Symfony\Component\DependencyInjection\Exception4e{Symfony\Component\DependencyInjection\Dumper2a{Symfony\Component\DependencyInjection\Dump6i{Symfony\Component\DependencyInjection\Compiler-W{Symfony\Component\DependencyInjection/[{Symfony\Component\Debug\Tests\Fixtures2.Y{Symfony\Component\Debug\Tests\Fixtures7k{Symfony\Component\Debug\Tests\FatalErrorHandler/[{Symfony\Component\Debug\Tests\Exception%G{Symfony\Component\Debug\Tests1_{Symfony\Component\Debug\FatalErrorHandler)O{Symfony\Component\Debug\Exception;{Symfony\Component\Debug5g{Symfony\Component\CssSelector\XPath\Extension+S{Symfony\Component\CssSelector\XPath
   E  Pbw8Cm.


a
			c	*m Ye:]&J	g*u6W%         /[{Symfony\Component\HttpKernel\Controller~+S{Symfony\Component\HttpKernel\Config}0]{Symfony\Component\HttpKernel\CacheWarmer{1_{Symfony\Component\HttpKernel\CacheClearerz+S{Symfony\Component\HttpKernel\Bundley$E{Symfony\Component\HttpKernel|E{Symfony\Component\HttpFoundation\Tests\Session\Storage\ProxyxG	{Symfony\Component\HttpFoundation\Tests\Session\Storage\Handlerv>y{Symfony\Component\HttpFoundation\Tests\Session\Storagew<u{Symfony\Component\HttpFoundation\Tests\Session\Flasht@}{Symfony\Component\HttpFoundation\Tests\Session\Attributes6i{Symfony\Component\HttpFoundation\Tests\Sessionu<u{Symfony\Component\HttpFoundation\Tests\File\MimeTyper3c{Symfony\Component\HttpFoundation\Tests\Fileq.Y{Symfony\Component\HttpFoundation\Testsp>y{Symfony\Component\HttpFoundation\Session\Storage\Proxyo@}{Symfony\Component\HttpFoundation\Session\Storage\Handlerm8m{Symfony\Component\HttpFoundation\Session\Storagen6i{Symfony\Component\HttpFoundation\Session\Flashk:q{Symfony\Component\HttpFoundation\Session\Attributej0]{Symfony\Component\HttpFoundation\Sessionl6i{Symfony\Component\HttpFoundation\File\MimeTypei7k{Symfony\Component\HttpFoundation\File\Exceptiong-W{Symfony\Component\HttpFoundation\Fileh(M{Symfony\Component\HttpFoundationf#C{Symfony\Component\Form\Utile)O{Symfony\Component\Form\Tests\Utild*Q{Symfony\Component\Form\Tests\Guessc-W{Symfony\Component\Form\Tests\FixturesbI{Symfony\Component\Form\Tests\Extension\Validator\ViolationMappera=w{Symfony\Component\Form\Tests\Extension\Validator\Util_=w{Symfony\Component\Form\Tests\Extension\Validator\Type^G	{Symfony\Component\Form\Tests\Extension\Validator\EventListener]E{Symfony\Component\Form\Tests\Extension\Validator\Constraints\8m{Symfony\Component\Form\Tests\Extension\Validator`L{Symfony\Component\Form\Tests\Extension\HttpFoundation\EventListenerZ=w{Symfony\Component\Form\Tests\Extension\HttpFoundation[A{Symfony\Component\Form\Tests\Extension\DataCollector\TypeY<u{Symfony\Component\Form\Tests\Extension\DataCollectorX8m{Symfony\Component\Form\Tests\Extension\Csrf\TypeWA{Symfony\Component\Form\Tests\Extension\Csrf\EventListenerV@}{Symfony\Component\Form\Tests\Extension\Csrf\CsrfProviderU8m{Symfony\Component\Form\Tests\Extension\Core\TypeTA{Symfony\Component\Form\Tests\Extension\Core\EventListenerSD{Symfony\Component\Form\Tests\Extension\Core\DataTransformerR>y{Symfony\Component\Form\Tests\Extension\Core\DataMapperQH{Symfony\Component\Form\Tests\Extension\Core\ChoiceList\FixturesP>y{Symfony\Component\Form\Tests\Extension\Core\ChoiceListO7k{Symfony\Component\Form\Tests\ChoiceList\FactoryN/[{Symfony\Component\Form\Tests\ChoiceListM$E{Symfony\Component\Form\TestsL#C{Symfony\Component\Form\TestK$E{Symfony\Component\Form\GuessJC{Symfony\Component\Form\Extension\Validator\ViolationMapperI7k{Symfony\Component\Form\Extension\Validator\UtilG7k{Symfony\Component\Form\Extension\Validator\TypeF@}{Symfony\Component\Form\Extension\Validator\EventListenerE>y{Symfony\Component\Form\Extension\Validator\ConstraintsD2a{Symfony\Component\Form\Extension\ValidatorH3c{Symfony\Component\Form\Extension\TemplatingC<u{Symfony\Component\Form\Extension\HttpFoundation\TypeBF{Symfony\Component\Form\Extension\HttpFoundation\EventListener@7k{Symfony\Component\Form\Extension\HttpFoundationA<u{Symfony\Component\Form\Extension\DependencyInjection?;s{Symfony\Component\Form\Extension\DataCollector\Type><u{Symfony\Component\Form\Extension\DataCollector\Proxy=E{Symfony\Component\Form\Extension\DataCollector\EventListener<6i{Symfony\Component\Form\Extension\DataCollector;2a{Symfony\Component\HttpKernel\DataCollector
   K  lAY+ _-OX

a
 		`	 c*}Kb9a&K|Bf<uN"       !?{Symfony\Component\Process3c{Symfony\Component\OptionsResolver\Exception)O{Symfony\Component\OptionsResolver+S{Symfony\Component\Locale\Tests\Stub&I{Symfony\Component\Locale\Tests0]{Symfony\Component\Locale\Stub\DateFormat%G{Symfony\Component\Locale\Stub*Q{Symfony\Component\Locale\Exception ={Symfony\Component\Locale#C{Symfony\Component\Intl\Util)O{Symfony\Component\Intl\Tests\UtilA{Symfony\Component\Intl\Tests\NumberFormatter\Verification4e{Symfony\Component\Intl\Tests\NumberFormatter8m{Symfony\Component\Intl\Tests\Locale\Verification+S{Symfony\Component\Intl\Tests\Locale9o{Symfony\Component\Intl\Tests\Globals\Verification,U{Symfony\Component\Intl\Tests\Globals?{{Symfony\Component\Intl\Tests\DateFormatter\Verification2a{Symfony\Component\Intl\Tests\DateFormatter.Y{Symfony\Component\Intl\Tests\Data\Util7k{Symfony\Component\Intl\Tests\Data\Provider\Json2a{Symfony\Component\Intl\Tests\Data\Provider7k{Symfony\Component\Intl\Tests\Data\Bundle\Writer7k{Symfony\Component\Intl\Tests\Data\Bundle\Reader:q{Symfony\Component\Intl\Tests\Collator\Verification-W{Symfony\Component\Intl\Tests\Collator-W{Symfony\Component\Intl\ResourceBundle.Y{Symfony\Component\Intl\NumberFormatter%G{Symfony\Component\Intl\Locale&I{Symfony\Component\Intl\Globals(M{Symfony\Component\Intl\Exception7k{Symfony\Component\Intl\DateFormatter\DateFormat,U{Symfony\Component\Intl\DateFormatter(M{Symfony\Component\Intl\Data\Util,U{Symfony\Component\Intl\Data\Provider-W{Symfony\Component\Intl\Data\Generator1_{Symfony\Component\Intl\Data\Bundle\Writer1_{Symfony\Component\Intl\Data\Bundle\Reader3c{Symfony\Component\Intl\Data\Bundle\Compiler'K{Symfony\Component\Intl\Collator9{Symfony\Component\Intl8m{Symfony\Component\HttpKernel\Tests\Profiler\Mock3c{Symfony\Component\HttpKernel\Tests\Profiler4e{Symfony\Component\HttpKernel\Tests\HttpCache3c{Symfony\Component\HttpKernel\Tests\Fragment_9{Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\DependencyInjectionS!{Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\CommandK{Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle`;{Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionNotValidBundle\DependencyInjectionL{Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionNotValidBundle^7{Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionLoadedBundle\DependencyInjectionJ{Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionLoadedBundleJ{Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionAbsentBundle3c{Symfony\Component\HttpKernel\Tests\Fixtures8m{Symfony\Component\HttpKernel\Tests\EventListener>y{Symfony\Component\HttpKernel\Tests\DependencyInjection0]{Symfony\Component\HttpKernel\Tests\Debug=w{Symfony\Component\HttpKernel\Tests\DataCollector\Util8m{Symfony\Component\HttpKernel\Tests\DataCollector5g{Symfony\Component\HttpKernel\Tests\Controller1_{Symfony\Component\HttpKernel\Tests\Config6i{Symfony\Component\HttpKernel\Tests\CacheWarmer7k{Symfony\Component\HttpKernel\Tests\CacheClearer1_{Symfony\Component\HttpKernel\Tests\Bundle*Q{Symfony\Component\HttpKernel\Tests-W{Symfony\Component\HttpKernel\Profiler(M{Symfony\Component\HttpKernel\Log.Y{Symfony\Component\HttpKernel\HttpCache-W{Symfony\Component\HttpKernel\Fragment.Y{Symfony\Component\HttpKernel\Exception2a{Symfony\Component\HttpKernel\EventListener*Q{Symfony\Component\HttpKernel\Event8m{Symfony\Component\HttpKernel\DependencyInjection*Q{Symfony\Component\HttpKernel\Debug/[{Symfony\Component\OptionsResolver\Tests
   K  T%rFg4yGxL



\
(				h	1r,\*Kr6S {NK|E                  -W{Symfony\Component\Security\Http\Event 2a{Symfony\Component\Security\Http\EntryPoint 5g{Symfony\Component\Security\Http\Authorization s6i{Symfony\Component\Security\Http\Authentication 'K{Symfony\Component\Security\Http 4e{Symfony\Component\Security\Csrf\TokenStorage 6i{Symfony\Component\Security\Csrf\TokenGenerator :q{Symfony\Component\Security\Csrf\Tests\TokenStorage <u{Symfony\Component\Security\Csrf\Tests\TokenGenerator -W{Symfony\Component\Security\Csrf\Tests 1_{Symfony\Component\Security\Csrf\Exception 'K{Symfony\Component\Security\Csrf =w{Symfony\Component\Security\Core\Validator\Constraints ,U{Symfony\Component\Security\Core\Util 
,U{Symfony\Component\Security\Core\User 	D{Symfony\Component\Security\Core\Tests\Validator\Constraints 2a{Symfony\Component\Security\Core\Tests\Util 2a{Symfony\Component\Security\Core\Tests\User 2a{Symfony\Component\Security\Core\Tests\Role 7k{Symfony\Component\Security\Core\Tests\Exception 5g{Symfony\Component\Security\Core\Tests\Encoder A{Symfony\Component\Security\Core\Tests\Authorization\Voter  ;s{Symfony\Component\Security\Core\Tests\AuthorizationK{Symfony\Component\Security\Core\Tests\Authentication\Token\StorageC{Symfony\Component\Security\Core\Tests\Authentication\TokenH{Symfony\Component\Security\Core\Tests\Authentication\RememberMeF{Symfony\Component\Security\Core\Tests\Authentication\Provider<u{Symfony\Component\Security\Core\Tests\Authentication-W{Symfony\Component\Security\Core\Tests ,U{Symfony\Component\Security\Core\Role1_{Symfony\Component\Security\Core\Exception-W{Symfony\Component\Security\Core\Event/[{Symfony\Component\Security\Core\Encoder;s{Symfony\Component\Security\Core\Authorization\Voter5g{Symfony\Component\Security\Core\AuthorizationE{Symfony\Component\Security\Core\Authentication\Token\Storage<u{Symfony\Component\Security\Core\Authentication\TokenA{Symfony\Component\Security\Core\Authentication\RememberMe?{{Symfony\Component\Security\Core\Authentication\Provider6i{Symfony\Component\Security\Core\Authentication'K{Symfony\Component\Security\Core,U{Symfony\Component\Security\Acl\Voter2a{Symfony\Component\Security\Acl\Tests\Voter7k{Symfony\Component\Security\Acl\Tests\Permission3c{Symfony\Component\Security\Acl\Tests\Domain1_{Symfony\Component\Security\Acl\Tests\Dbal1_{Symfony\Component\Security\Acl\Permission,U{Symfony\Component\Security\Acl\Model r0]{Symfony\Component\Security\Acl\Exception-W{Symfony\Component\Security\Acl\Domain+S{Symfony\Component\Security\Acl\Dbal6i{Symfony\Component\Routing\Tests\Matcher\Dumper/[{Symfony\Component\Routing\Tests\Matcher.Y{Symfony\Component\Routing\Tests\Loader8m{Symfony\Component\Routing\Tests\Generator\Dumper1_{Symfony\Component\Routing\Tests\GeneratorG	{Symfony\Component\Routing\Tests\Fixtures\OtherAnnotatedClassesA{Symfony\Component\Routing\Tests\Fixtures\AnnotatedClasses0]{Symfony\Component\Routing\Tests\Fixtures2a{Symfony\Component\Routing\Tests\Annotation'K{Symfony\Component\Routing\Tests0]{Symfony\Component\Routing\Matcher\Dumper)O{Symfony\Component\Routing\Matcher(M{Symfony\Component\Routing\Loader2a{Symfony\Component\Routing\Generator\Dumper+S{Symfony\Component\Routing\Generator+S{Symfony\Component\Routing\Exception,U{Symfony\Component\Routing\Annotation!?{Symfony\Component\Routing7k{Symfony\Component\PropertyAccess\Tests\Fixtures.Y{Symfony\Component\PropertyAccess\Tests2a{Symfony\Component\PropertyAccess\Exception(M{Symfony\Component\PropertyAccess'K{Symfony\Component\Process\Tests'K{Symfony\Component\Process\Pipes
 P  m=b-L'n9wA


l
2				u	P	%uAT f:d7|N"_)R_1                 *Q{Symfony\Component\VarDumper\Cloner f*Q{Symfony\Component\VarDumper\Caster e#C{Symfony\Component\VarDumper m-W{Symfony\Component\Validator\Violation d-W{Symfony\Component\Validator\Validator c(M{Symfony\Component\Validator\Util b3c{Symfony\Component\Validator\Tests\Validator a.Y{Symfony\Component\Validator\Tests\Util `8m{Symfony\Component\Validator\Tests\Mapping\Loader _9o{Symfony\Component\Validator\Tests\Mapping\Factory ^7k{Symfony\Component\Validator\Tests\Mapping\Cache \1_{Symfony\Component\Validator\Tests\Mapping ]2a{Symfony\Component\Validator\Tests\Fixtures [5g{Symfony\Component\Validator\Tests\Constraints X)O{Symfony\Component\Validator\Tests Z2a{Symfony\Component\Validator\Mapping\Loader W3c{Symfony\Component\Validator\Mapping\Factory V1_{Symfony\Component\Validator\Mapping\Cache U+S{Symfony\Component\Validator\Mapping T-W{Symfony\Component\Validator\Exception S+S{Symfony\Component\Validator\Context R:q{Symfony\Component\Validator\Constraints\Collection Q/[{Symfony\Component\Validator\Constraints P#C{Symfony\Component\Validator O,U{Symfony\Component\Translation\Writer N2a{Symfony\Component\Translation\Tests\Loader M2a{Symfony\Component\Translation\Tests\Dumper L9o{Symfony\Component\Translation\Tests\DataCollector J5g{Symfony\Component\Translation\Tests\Catalogue I+S{Symfony\Component\Translation\Tests K,U{Symfony\Component\Translation\Loader H/[{Symfony\Component\Translation\Extractor G/[{Symfony\Component\Translation\Exception F,U{Symfony\Component\Translation\Dumper E3c{Symfony\Component\Translation\DataCollector C/[{Symfony\Component\Translation\Catalogue B%G{Symfony\Component\Translation D2a{Symfony\Component\Templating\Tests\Storage A1_{Symfony\Component\Templating\Tests\Loader @1_{Symfony\Component\Templating\Tests\Helper ?3c{Symfony\Component\Templating\Tests\Fixtures >*Q{Symfony\Component\Templating\Tests =,U{Symfony\Component\Templating\Storage <+S{Symfony\Component\Templating\Loader ;+S{Symfony\Component\Templating\Helper :*Q{Symfony\Component\Templating\Asset 8$E{Symfony\Component\Templating 9)O{Symfony\Component\Stopwatch\Tests 7#C{Symfony\Component\Stopwatch 65g{Symfony\Component\Serializer\Tests\Normalizer 48m{Symfony\Component\Serializer\Tests\NameConverter 39o{Symfony\Component\Serializer\Tests\Mapping\Loader 2:q{Symfony\Component\Serializer\Tests\Mapping\Factory 12a{Symfony\Component\Serializer\Tests\Mapping 03c{Symfony\Component\Serializer\Tests\Fixtures /2a{Symfony\Component\Serializer\Tests\Encoder .5g{Symfony\Component\Serializer\Tests\Annotation -*Q{Symfony\Component\Serializer\Tests 5/[{Symfony\Component\Serializer\Normalizer +2a{Symfony\Component\Serializer\NameConverter *3c{Symfony\Component\Serializer\Mapping\Loader )4e{Symfony\Component\Serializer\Mapping\Factory (,U{Symfony\Component\Serializer\Mapping '.Y{Symfony\Component\Serializer\Exception &,U{Symfony\Component\Serializer\Encoder %/[{Symfony\Component\Serializer\Annotation $$E{Symfony\Component\Serializer ,C{Symfony\Component\Security\Tests\Core\Authentication\Voter "-W{Symfony\Component\Security\Tests\Core #5g{Symfony\Component\Security\Http\Tests\Session !8m{Symfony\Component\Security\Http\Tests\RememberMe  4e{Symfony\Component\Security\Http\Tests\Logout 6i{Symfony\Component\Security\Http\Tests\Firewall 8m{Symfony\Component\Security\Http\Tests\EntryPoint <u{Symfony\Component\Security\Http\Tests\Authentication -W{Symfony\Component\Security\Http\Tests /[{Symfony\Component\Security\Http\Session 2a{Symfony\Component\Security\Http\RememberMe .Y{Symfony\Component\Security\Http\Logout    {*Q{Symfony\Component\VarDumper\Dumper g
   V  |J+mEm>/&}J{[3	



X
0
				V	.	U ]/Sf6	xM!uL]9z?                            8m|,Symfony\Component\HttpFoundation\Session\Storage(6i|,Symfony\Component\HttpFoundation\Session\Flash(:q|,Symfony\Component\HttpFoundation\Session\Attribute(0]|,Symfony\Component\HttpFoundation\Session(6i|,Symfony\Component\HttpFoundation\File\MimeType(~(M|,Symfony\Component\HttpFoundation(-W|,Symfony\Component\Form\Tests\Fixtures(}#C|,Symfony\Component\Form\Test(|C|,Symfony\Component\Form\Extension\Validator\ViolationMapper({6i|,Symfony\Component\Form\Extension\DataCollector(z:q|,Symfony\Component\Form\Extension\Csrf\CsrfProvider(y8m|,Symfony\Component\Form\Extension\Core\ChoiceList(x(M|,Symfony\Component\Form\Exception(w0]|,Symfony\Component\Form\ChoiceList\Loader(v1_|,Symfony\Component\Form\ChoiceList\Factory(u)O|,Symfony\Component\Form\ChoiceList(t9|,Symfony\Component\Form(s+S|,Symfony\Component\Finder\Expression(r*Q|,Symfony\Component\Finder\Exception(q(M|,Symfony\Component\Finder\Adapter(p.Y|,Symfony\Component\Filesystem\Exception(o8m|,Symfony\Component\ExpressionLanguage\ParserCache(n,U|,Symfony\Component\ExpressionLanguage(m/[|,Symfony\Component\EventDispatcher\Debug(k)O|,Symfony\Component\EventDispatcher(l:q|,Symfony\Component\DependencyInjection\ParameterBag(jA|,Symfony\Component\DependencyInjection\LazyProxy\PhpDumper(iE|,Symfony\Component\DependencyInjection\LazyProxy\Instantiator(h7k|,Symfony\Component\DependencyInjection\Extension(g7k|,Symfony\Component\DependencyInjection\Exception(f4e|,Symfony\Component\DependencyInjection\Dumper(e6i|,Symfony\Component\DependencyInjection\Compiler(c-W|,Symfony\Component\DependencyInjection(d.Y|,Symfony\Component\Debug\Tests\Fixtures(b1_|,Symfony\Component\Debug\FatalErrorHandler(a5g|,Symfony\Component\CssSelector\XPath\Extension(_+S|,Symfony\Component\CssSelector\XPath(`4e|,Symfony\Component\CssSelector\Parser\Handler(],U|,Symfony\Component\CssSelector\Parser(^*Q|,Symfony\Component\CssSelector\Node(\/[|,Symfony\Component\CssSelector\Exception(['K|,Symfony\Component\Console\Style(Z(M|,Symfony\Component\Console\Output(Y'K|,Symfony\Component\Console\Input(X(M|,Symfony\Component\Console\Helper(W+S|,Symfony\Component\Console\Formatter(V,U|,Symfony\Component\Console\Descriptor(U-W|,Symfony\Component\Config\Tests\Loader(T)O|,Symfony\Component\Config\Resource(S'K|,Symfony\Component\Config\Loader(R3c|,Symfony\Component\Config\Definition\Builder(P+S|,Symfony\Component\Config\Definition(Q =|,Symfony\Component\Config(O/[|,Symfony\Component\Asset\VersionStrategy(K)O|,Symfony\Component\Asset\Exception(I'K|,Symfony\Component\Asset\Context(H;|,Symfony\Component\Asset(JP|,Symfony\Bundle\SecurityBundle\DependencyInjection\Security\UserProvider(GK|,Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory(F1_|,Symfony\Bundle\FrameworkBundle\Templating(E2a|,Symfony\Bundle\FrameworkBundle\CacheWarmer(D =|,Symfony\Bridge\Twig\Form(C/[|,Symfony\Bridge\Doctrine\Form\ChoiceList(A;|,Symfony\Bridge\Doctrine(B|,Foo(N1|,ClassesWithParents(L|,ClassMap(M|,({global.Y{TestBundle\Sensio\FooBundle\ControllerK#C{TestBundle\Sensio\FooBundleL2a{TestBundle\Sensio\Cms\FooBundle\ControllerI'K{TestBundle\Sensio\Cms\FooBundleJ,U{TestBundle\FooBundle\Controller\TestG+S{TestBundle\FooBundle\Controller\SubF'K{TestBundle\FooBundle\ControllerE5{TestBundle\FooBundleH.Y{TestBundle\Fabpot\FooBundle\ControllerC#C{TestBundle\Fabpot\FooBundleD$E{Symfony\Component\Yaml\Tests p(M{Symfony\Component\Yaml\Exception o9{Symfony\Component\Yaml n1_{Symfony\Component\VarDumper\Tests\Fixture l0]{Symfony\Component\VarDumper\Tests\Caster j)O{Symfony\Component\VarDumper\Tests k(M{Symfony\Component\VarDumper\Test i
   R  qAY+j<a.W&



h
(			c	-b5tL{Li:qAe:W*N          2a|,Symfony\Component\Validator\Tests\Fixtures(2a|,Symfony\Component\Validator\Mapping\Loader(3c|,Symfony\Component\Validator\Mapping\Factory(1_|,Symfony\Component\Validator\Mapping\Cache(+S|,Symfony\Component\Validator\Mapping(-W|,Symfony\Component\Validator\Exception(+S|,Symfony\Component\Validator\Context(#C|,Symfony\Component\Validator(,U|,Symfony\Component\Translation\Loader(/[|,Symfony\Component\Translation\Extractor(/[|,Symfony\Component\Translation\Exception(,U|,Symfony\Component\Translation\Dumper(/[|,Symfony\Component\Translation\Catalogue(%G|,Symfony\Component\Translation(*Q|,Symfony\Component\Templating\Tests(+S|,Symfony\Component\Templating\Loader(+S|,Symfony\Component\Templating\Helper(*Q|,Symfony\Component\Templating\Asset($E|,Symfony\Component\Templating(3c|,Symfony\Component\Serializer\Tests\Fixtures(/[|,Symfony\Component\Serializer\Normalizer(2a|,Symfony\Component\Serializer\NameConverter(3c|,Symfony\Component\Serializer\Mapping\Loader(4e|,Symfony\Component\Serializer\Mapping\Factory(,U|,Symfony\Component\Serializer\Mapping(.Y|,Symfony\Component\Serializer\Exception(,U|,Symfony\Component\Serializer\Encoder($E|,Symfony\Component\Serializer(-W|,Symfony\Component\Security\Http\Tests(/[|,Symfony\Component\Security\Http\Session(2a|,Symfony\Component\Security\Http\RememberMe(.Y|,Symfony\Component\Security\Http\Logout(0]|,Symfony\Component\Security\Http\Firewall(2a|,Symfony\Component\Security\Http\EntryPoint(5g|,Symfony\Component\Security\Http\Authorization(6i|,Symfony\Component\Security\Http\Authentication('K|,Symfony\Component\Security\Http(4e|,Symfony\Component\Security\Csrf\TokenStorage(6i|,Symfony\Component\Security\Csrf\TokenGenerator('K|,Symfony\Component\Security\Csrf(,U|,Symfony\Component\Security\Core\Util(,U|,Symfony\Component\Security\Core\User(,U|,Symfony\Component\Security\Core\Role(1_|,Symfony\Component\Security\Core\Exception(/[|,Symfony\Component\Security\Core\Encoder(;s|,Symfony\Component\Security\Core\Authorization\Voter(5g|,Symfony\Component\Security\Core\Authorization(E|,Symfony\Component\Security\Core\Authentication\Token\Storage(<u|,Symfony\Component\Security\Core\Authentication\Token(A|,Symfony\Component\Security\Core\Authentication\RememberMe(?{|,Symfony\Component\Security\Core\Authentication\Provider(6i|,Symfony\Component\Security\Core\Authentication('K|,Symfony\Component\Security\Core(1_|,Symfony\Component\Security\Acl\Permission(,U|,Symfony\Component\Security\Acl\Model(0]|,Symfony\Component\Routing\Matcher\Dumper()O|,Symfony\Component\Routing\Matcher(2a|,Symfony\Component\Routing\Generator\Dumper(+S|,Symfony\Component\Routing\Generator(+S|,Symfony\Component\Routing\Exception(!?|,Symfony\Component\Routing(2a|,Symfony\Component\PropertyAccess\Exception((M|,Symfony\Component\PropertyAccess('K|,Symfony\Component\Process\Pipes(+S|,Symfony\Component\Process\Exception(3c|,Symfony\Component\OptionsResolver\Exception()O|,Symfony\Component\OptionsResolver(-W|,Symfony\Component\Intl\ResourceBundle((M|,Symfony\Component\Intl\Exception(1_|,Symfony\Component\Intl\Data\Bundle\Writer(1_|,Symfony\Component\Intl\Data\Bundle\Reader(3c|,Symfony\Component\Intl\Data\Bundle\Compiler(-W|,Symfony\Component\HttpKernel\Profiler((M|,Symfony\Component\HttpKernel\Log(.Y|,Symfony\Component\HttpKernel\HttpCache(-W|,Symfony\Component\HttpKernel\Fragment(.Y|,Symfony\Component\HttpKernel\Exception(2a|,Symfony\Component\HttpKernel\DataCollector(/[|,Symfony\Component\HttpKernel\Controller(0]|,Symfony\Component\HttpKernel\CacheWarmer(1_|,Symfony\Component\HttpKernel\CacheClearer(+S|,Symfony\Component\HttpKernel\Bundle(
 ]  k@_pdWE4|]J6[


w
G
				_	+~Ka6 `3cDh,k7}L0zR0                         +S|NSymfony\Bridge\Twig\Tests\Extension~)O|NSymfony\Bridge\Twig\Tests\Command}!?|NSymfony\Bridge\Twig\Tests'K|NSymfony\Bridge\Twig\NodeVisitor| =|NSymfony\Bridge\Twig\Node{ =|NSymfony\Bridge\Twig\Formz%G|NSymfony\Bridge\Twig\Extensiony)O|NSymfony\Bridge\Twig\DataCollectorx#C|NSymfony\Bridge\Twig\Commandw3|NSymfony\Bridge\Twigv0]|NSymfony\Bridge\Swiftmailer\DataCollectoru=w|NSymfony\Bridge\ProxyManager\Tests\LazyProxy\PhpDumpert@}|NSymfony\Bridge\ProxyManager\Tests\LazyProxy\Instantiators:q|NSymfony\Bridge\ProxyManager\Tests\LazyProxy\Dumperq3c|NSymfony\Bridge\ProxyManager\Tests\LazyProxyp7k|NSymfony\Bridge\ProxyManager\LazyProxy\PhpDumpero:q|NSymfony\Bridge\ProxyManager\LazyProxy\Instantiatorn9|NSymfony\Bridge\PhpUnitm.Y|NSymfony\Bridge\Monolog\Tests\Processorl;s|NSymfony\Bridge\Monolog\Tests\Handler\FingersCrossedk,U|NSymfony\Bridge\Monolog\Tests\Handlerj(M|NSymfony\Bridge\Monolog\Processori5g|NSymfony\Bridge\Monolog\Handler\FingersCrossedg&I|NSymfony\Bridge\Monolog\Handlerf(M|NSymfony\Bridge\Monolog\Formattere9|NSymfony\Bridge\Monologh5g|NSymfony\Bridge\Doctrine\Validator\Constraintsc)O|NSymfony\Bridge\Doctrine\Validatord;s|NSymfony\Bridge\Doctrine\Tests\Validator\Constraintsb3c|NSymfony\Bridge\Doctrine\Tests\Security\Usera,U|NSymfony\Bridge\Doctrine\Tests\Logger`4e|NSymfony\Bridge\Doctrine\Tests\HttpFoundation_/[|NSymfony\Bridge\Doctrine\Tests\Form\Type^:q|NSymfony\Bridge\Doctrine\Tests\Form\DataTransformer\5g|NSymfony\Bridge\Doctrine\Tests\Form\ChoiceList[*Q|NSymfony\Bridge\Doctrine\Tests\Form].Y|NSymfony\Bridge\Doctrine\Tests\FixturesZ8m|NSymfony\Bridge\Doctrine\Tests\ExpressionLanguageYG	|NSymfony\Bridge\Doctrine\Tests\DependencyInjection\CompilerPassW9o|NSymfony\Bridge\Doctrine\Tests\DependencyInjectionX2a|NSymfony\Bridge\Doctrine\Tests\DataFixturesV3c|NSymfony\Bridge\Doctrine\Tests\DataCollectorU%G|NSymfony\Bridge\Doctrine\TestsT$E|NSymfony\Bridge\Doctrine\TestS-W|NSymfony\Bridge\Doctrine\Security\UserR3c|NSymfony\Bridge\Doctrine\Security\RememberMeQ&I|NSymfony\Bridge\Doctrine\LoggerP.Y|NSymfony\Bridge\Doctrine\HttpFoundationO)O|NSymfony\Bridge\Doctrine\Form\TypeN2a|NSymfony\Bridge\Doctrine\Form\EventListenerM4e|NSymfony\Bridge\Doctrine\Form\DataTransformerK/[|NSymfony\Bridge\Doctrine\Form\ChoiceListJ$E|NSymfony\Bridge\Doctrine\FormL2a|NSymfony\Bridge\Doctrine\ExpressionLanguageIJ|NSymfony\Bridge\Doctrine\DependencyInjection\Security\UserProviderH@}|NSymfony\Bridge\Doctrine\DependencyInjection\CompilerPassG3c|NSymfony\Bridge\Doctrine\DependencyInjectionF,U|NSymfony\Bridge\Doctrine\DataFixturesE-W|NSymfony\Bridge\Doctrine\DataCollectorD+S|NSymfony\Bridge\Doctrine\CacheWarmerB;|NSymfony\Bridge\DoctrineC#|NNamespaced2!|NNamespaced9|NNamespaceCollision\C\B5|NNamespaceCollision\C9|NNamespaceCollision\A\B5|NNamespaceCollision\A
|NFoo\Bar|NFoo#|NContainer14j#|NConstraints1|NClassesWithParents|NClassMap|NClassCons|NBeta|NBark)|NApc\Namespaced"A|NApc\NamespaceCollision\A\B =|NApc\NamespaceCollision\A|NAlpha#C|NAcme\DemoLib\Lets\Go\Deeper%|NAcme\DemoLibL|NAcme\DemoBundle\Proxy\__CG__\Symfony\Component\Security\Core\Tests\nK|NAcme\DemoBundle\Proxy\__CG__\Symfony\Component\Security\Acl\Tests\Q|N|,global((M|,Symfony\Component\Yaml\Exception((M|,Symfony\Component\VarDumper\Test(*Q|,Symfony\Component\VarDumper\Dumper(*Q|,Symfony\Component\VarDumper\Cloner(-W|,Symfony\Component\Validator\Violation(-W|,Symfony\Component\Validator\Validator(   4e|NSymfony\Bridge\Twig\Tests\Extension\Fixtures
   D  vN&OPy>c4


X
,				ILIpo:z;gAaa)                                 ?{|NSymfony\Bundle\SecurityBundle\Tests\DependencyInjection9o|NSymfony\Bundle\SecurityBundle\Tests\DataCollector7k|NSymfony\Bundle\SecurityBundle\Templating\Helper.Y|NSymfony\Bundle\SecurityBundle\Security3c|NSymfony\Bundle\SecurityBundle\EventListenerP|NSymfony\Bundle\SecurityBundle\DependencyInjection\Security\UserProviderK|NSymfony\Bundle\SecurityBundle\DependencyInjection\Security\FactoryC|NSymfony\Bundle\SecurityBundle\DependencyInjection\Compiler9o|NSymfony\Bundle\SecurityBundle\DependencyInjection3c|NSymfony\Bundle\SecurityBundle\DataCollector-W|NSymfony\Bundle\SecurityBundle\Command%G|NSymfony\Bundle\SecurityBundle0]|NSymfony\Bundle\FrameworkBundle\Validator2a|NSymfony\Bundle\FrameworkBundle\Translation6i|NSymfony\Bundle\FrameworkBundle\Tests\Validator8m|NSymfony\Bundle\FrameworkBundle\Tests\Translation>y|NSymfony\Bundle\FrameworkBundle\Tests\Templating\LoaderH|NSymfony\Bundle\FrameworkBundle\Tests\Templating\Helper\Fixtures>y|NSymfony\Bundle\FrameworkBundle\Tests\Templating\Helper7k|NSymfony\Bundle\FrameworkBundle\Tests\Templating4e|NSymfony\Bundle\FrameworkBundle\Tests\Routing;s|NSymfony\Bundle\FrameworkBundle\Tests\Functional\appeE|NSymfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\DependencyInjection\Config^7|NSymfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\DependencyInjectionU%|NSymfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\ControllerJ|NSymfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle7k|NSymfony\Bundle\FrameworkBundle\Tests\Functional5g|NSymfony\Bundle\FrameworkBundle\Tests\Fragment@}|NSymfony\Bundle\FrameworkBundle\Tests\Fixtures\BaseBundleJ|NSymfony\Bundle\FrameworkBundle\Tests\DependencyInjection\Compiler@}|NSymfony\Bundle\FrameworkBundle\Tests\DependencyInjection7k|NSymfony\Bundle\FrameworkBundle\Tests\Controller?{|NSymfony\Bundle\FrameworkBundle\Tests\Console\Descriptor4e|NSymfony\Bundle\FrameworkBundle\Tests\ConsoleO|NSymfony\Bundle\FrameworkBundle\Tests\Command\CacheClearCommand\FixtureG	|NSymfony\Bundle\FrameworkBundle\Tests\Command\CacheClearCommand4e|NSymfony\Bundle\FrameworkBundle\Tests\Command8m|NSymfony\Bundle\FrameworkBundle\Tests\CacheWarmer,U|NSymfony\Bundle\FrameworkBundle\Tests+S|NSymfony\Bundle\FrameworkBundle\Test8m|NSymfony\Bundle\FrameworkBundle\Templating\Loader8m|NSymfony\Bundle\FrameworkBundle\Templating\Helper7k|NSymfony\Bundle\FrameworkBundle\Templating\Asset1_|NSymfony\Bundle\FrameworkBundle\Templating.Y|NSymfony\Bundle\FrameworkBundle\Routing0]|NSymfony\Bundle\FrameworkBundle\HttpCache/[|NSymfony\Bundle\FrameworkBundle\Fragment4e|NSymfony\Bundle\FrameworkBundle\EventListenerD|NSymfony\Bundle\FrameworkBundle\DependencyInjection\Compiler:q|NSymfony\Bundle\FrameworkBundle\DependencyInjection4e|NSymfony\Bundle\FrameworkBundle\DataCollector1_|NSymfony\Bundle\FrameworkBundle\Controller5g|NSymfony\Bundle\FrameworkBundle\Console\Helper9o|NSymfony\Bundle\FrameworkBundle\Console\Descriptor.Y|NSymfony\Bundle\FrameworkBundle\Console.Y|NSymfony\Bundle\FrameworkBundle\Command2a|NSymfony\Bundle\FrameworkBundle\CacheWarmer&I|NSymfony\Bundle\FrameworkBundleF|NSymfony\Bundle\DebugBundle\Tests\DependencyInjection\Compiler<u|NSymfony\Bundle\DebugBundle\Tests\DependencyInjection?{|NSymfony\Bundle\DebugBundle\DependencyInjection\Compiler6i|NSymfony\Bundle\DebugBundle\DependencyInjection"A|NSymfony\Bundle\DebugBundle'K|NSymfony\Bridge\Twig\Translation'K|NSymfony\Bridge\Twig\TokenParser-W|NSymfony\Bridge\Twig\Tests\Translation-W|NSymfony\Bridge\Twig\Tests\TokenParser-W|NSymfony\Bridge\Twig\Tests\NodeVisitor
   F  u>RDw(k



S
)				_	wDa-q4e+rD$|W,Y&sL                             0]|NSymfony\Component\Config\Tests\Exception)9o|NSymfony\Component\Config\Tests\Definition\Builder'1_|NSymfony\Component\Config\Tests\Definition&&I|NSymfony\Component\Config\Tests%)O|NSymfony\Component\Config\Resource$'K|NSymfony\Component\Config\Loader#*Q|NSymfony\Component\Config\Exception"5g|NSymfony\Component\Config\Definition\Exception!2a|NSymfony\Component\Config\Definition\Dumper 3c|NSymfony\Component\Config\Definition\Builder+S|NSymfony\Component\Config\Definition =|NSymfony\Component\Config+S|NSymfony\Component\ClassLoader\Tests	%G|NSymfony\Component\ClassLoader*Q|NSymfony\Component\BrowserKit\Tests$E|NSymfony\Component\BrowserKit/[|NSymfony\Component\Asset\VersionStrategy%G|NSymfony\Component\Asset\Tests)O|NSymfony\Component\Asset\Exception'K|NSymfony\Component\Asset\Context;|NSymfony\Component\Asset-W|NSymfony\Bundle\WebProfilerBundle\Twig7k|NSymfony\Bundle\WebProfilerBundle\Tests\Profiler<u|NSymfony\Bundle\WebProfilerBundle\Tests\EventListenerC|NSymfony\Bundle\WebProfilerBundle\Tests\DependencyInjection9o|NSymfony\Bundle\WebProfilerBundle\Tests\Controller6i|NSymfony\Bundle\WebProfilerBundle\Tests\Command.Y|NSymfony\Bundle\WebProfilerBundle\Tests1_|NSymfony\Bundle\WebProfilerBundle\Profiler6i|NSymfony\Bundle\WebProfilerBundle\EventListener<u|NSymfony\Bundle\WebProfilerBundle\DependencyInjection3c|NSymfony\Bundle\WebProfilerBundle\Controller0]|NSymfony\Bundle\WebProfilerBundle\Command(M|NSymfony\Bundle\WebProfilerBundle -W|NSymfony\Bundle\TwigBundle\TokenParser3c|NSymfony\Bundle\TwigBundle\Tests\TokenParser.Y|NSymfony\Bundle\TwigBundle\Tests\Loader1_|NSymfony\Bundle\TwigBundle\Tests\ExtensionE|NSymfony\Bundle\TwigBundle\Tests\DependencyInjection\Compiler;s|NSymfony\Bundle\TwigBundle\Tests\DependencyInjection2a|NSymfony\Bundle\TwigBundle\Tests\Controller'K|NSymfony\Bundle\TwigBundle\Tests&I|NSymfony\Bundle\TwigBundle\Node(M|NSymfony\Bundle\TwigBundle\Loader+S|NSymfony\Bundle\TwigBundle\ExtensionC|NSymfony\Bundle\TwigBundle\DependencyInjection\Configurator>y|NSymfony\Bundle\TwigBundle\DependencyInjection\Compiler5g|NSymfony\Bundle\TwigBundle\DependencyInjection'K|NSymfony\Bundle\TwigBundle\Debug,U|NSymfony\Bundle\TwigBundle\Controller)O|NSymfony\Bundle\TwigBundle\Command-W|NSymfony\Bundle\TwigBundle\CacheWarmer!?|NSymfony\Bundle\TwigBundle4e|NSymfony\Bundle\SecurityBundle\Twig\Extension:q|NSymfony\Bundle\SecurityBundle\Tests\Functional\appW)|NSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FormLoginBundle\Securityb?|NSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FormLoginBundle\DependencyInjectionY-|NSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FormLoginBundle\ControllerN|NSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FormLoginBundle`;|NSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FirewallEntryPointBundle\SecuritykQ|NSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FirewallEntryPointBundle\DependencyInjectionW)|NSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FirewallEntryPointBundleW)|NSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\CsrfFormLoginBundle\Form]5|NSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\CsrfFormLoginBundle\ControllerR|NSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\CsrfFormLoginBundleO|NSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\AclBundle\EntityH|NSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\AclBundle6i|NSymfony\Bundle\SecurityBundle\Tests\FunctionalQ|NSymfony\Bundle\SecurityBundle\Tests\DependencyInjection\Security\Factory8m|NSymfony\Component\Config\Tests\Definition\Dumper(
 O  d>qH {R*d5{L&



i
3				l	1aAW(`+u3RD	xMT        ,U|NSymfony\Component\ExpressionLanguage{D|NSymfony\Component\EventDispatcher\Tests\DependencyInjectionz5g|NSymfony\Component\EventDispatcher\Tests\Debugy/[|NSymfony\Component\EventDispatcher\Testsx=w|NSymfony\Component\EventDispatcher\DependencyInjectionw/[|NSymfony\Component\EventDispatcher\Debugv)O|NSymfony\Component\EventDispatcheru0]|NSymfony\Component\DomCrawler\Tests\Fieldt*Q|NSymfony\Component\DomCrawler\Testss*Q|NSymfony\Component\DomCrawler\Fieldr$E|NSymfony\Component\DomCrawlerq@}|NSymfony\Component\DependencyInjection\Tests\ParameterBagp:q|NSymfony\Component\DependencyInjection\Tests\LoaderoH|NSymfony\Component\DependencyInjection\Tests\LazyProxy\PhpDumpernK|NSymfony\Component\DependencyInjection\Tests\LazyProxy\Instantiatorm=w|NSymfony\Component\DependencyInjection\Tests\Extensioni:q|NSymfony\Component\DependencyInjection\Tests\Dumperh<u|NSymfony\Component\DependencyInjection\Tests\Compilerf3c|NSymfony\Component\DependencyInjection\Testsg:q|NSymfony\Component\DependencyInjection\ParameterBage4e|NSymfony\Component\DependencyInjection\LoaderdA|NSymfony\Component\DependencyInjection\LazyProxy\PhpDumpercE|NSymfony\Component\DependencyInjection\LazyProxy\Instantiatorb7k|NSymfony\Component\DependencyInjection\Extensiona7k|NSymfony\Component\DependencyInjection\Exception`4e|NSymfony\Component\DependencyInjection\Dumper_2a|NSymfony\Component\DependencyInjection\Dumpl6i|NSymfony\Component\DependencyInjection\Compiler^-W|NSymfony\Component\DependencyInjection]/[|NSymfony\Component\Debug\Tests\Fixtures2\.Y|NSymfony\Component\Debug\Tests\Fixtures[7k|NSymfony\Component\Debug\Tests\FatalErrorHandlerZ/[|NSymfony\Component\Debug\Tests\ExceptionY%G|NSymfony\Component\Debug\TestsX1_|NSymfony\Component\Debug\FatalErrorHandlerW)O|NSymfony\Component\Debug\ExceptionU;|NSymfony\Component\DebugT5g|NSymfony\Component\CssSelector\XPath\ExtensionR+S|NSymfony\Component\CssSelector\XPathS1_|NSymfony\Component\CssSelector\Tests\XPathQ;s|NSymfony\Component\CssSelector\Tests\Parser\ShortcutP:q|NSymfony\Component\CssSelector\Tests\Parser\HandlerN2a|NSymfony\Component\CssSelector\Tests\ParserO0]|NSymfony\Component\CssSelector\Tests\NodeM+S|NSymfony\Component\CssSelector\TestsL6i|NSymfony\Component\CssSelector\Parser\TokenizerK5g|NSymfony\Component\CssSelector\Parser\ShortcutJ4e|NSymfony\Component\CssSelector\Parser\HandlerH,U|NSymfony\Component\CssSelector\ParserI*Q|NSymfony\Component\CssSelector\NodeG/[|NSymfony\Component\CssSelector\ExceptionF%G|NSymfony\Component\CssSelectorE.Y|NSymfony\Component\Console\Tests\TesterD-W|NSymfony\Component\Console\Tests\StyleC.Y|NSymfony\Component\Console\Tests\OutputB.Y|NSymfony\Component\Console\Tests\LoggerA-W|NSymfony\Component\Console\Tests\Input@.Y|NSymfony\Component\Console\Tests\Helper?1_|NSymfony\Component\Console\Tests\Formatter>0]|NSymfony\Component\Console\Tests\Fixtures=2a|NSymfony\Component\Console\Tests\Descriptor</[|NSymfony\Component\Console\Tests\Command;'K|NSymfony\Component\Console\Tests:(M|NSymfony\Component\Console\Tester9'K|NSymfony\Component\Console\Style8*Q|NSymfony\Component\Console\Question7(M|NSymfony\Component\Console\Output6(M|NSymfony\Component\Console\Logger5'K|NSymfony\Component\Console\Input4(M|NSymfony\Component\Console\Helper3+S|NSymfony\Component\Console\Formatter2'K|NSymfony\Component\Console\Event1,U|NSymfony\Component\Console\Descriptor0)O|NSymfony\Component\Console\Command/!?|NSymfony\Component\Console.%G|NSymfony\Component\Config\Util-/[|NSymfony\Component\Config\Tests\Resource,-W|NSymfony\Component\Config\Tests\Loader+   |NSymfo1_|NSymfony\Component\ExpressionLanguage\Node|
   I  Y4d9c1X&sE


Y
&				N	a%i,ElH#|3m4x;n5               G	|NSymfony\Component\Form\Tests\Extension\Validator\EventListenerE|NSymfony\Component\Form\Tests\Extension\Validator\Constraints8m|NSymfony\Component\Form\Tests\Extension\ValidatorL|NSymfony\Component\Form\Tests\Extension\HttpFoundation\EventListener=w|NSymfony\Component\Form\Tests\Extension\HttpFoundationA|NSymfony\Component\Form\Tests\Extension\DataCollector\Type<u|NSymfony\Component\Form\Tests\Extension\DataCollector8m|NSymfony\Component\Form\Tests\Extension\Csrf\TypeA|NSymfony\Component\Form\Tests\Extension\Csrf\EventListener@}|NSymfony\Component\Form\Tests\Extension\Csrf\CsrfProvider8m|NSymfony\Component\Form\Tests\Extension\Core\TypeA|NSymfony\Component\Form\Tests\Extension\Core\EventListenerD|NSymfony\Component\Form\Tests\Extension\Core\DataTransformer>y|NSymfony\Component\Form\Tests\Extension\Core\DataMapperH|NSymfony\Component\Form\Tests\Extension\Core\ChoiceList\Fixtures>y|NSymfony\Component\Form\Tests\Extension\Core\ChoiceList7k|NSymfony\Component\Form\Tests\ChoiceList\Factory/[|NSymfony\Component\Form\Tests\ChoiceList$E|NSymfony\Component\Form\Tests#C|NSymfony\Component\Form\Test$E|NSymfony\Component\Form\GuessC|NSymfony\Component\Form\Extension\Validator\ViolationMapper7k|NSymfony\Component\Form\Extension\Validator\Util7k|NSymfony\Component\Form\Extension\Validator\Type@}|NSymfony\Component\Form\Extension\Validator\EventListener>y|NSymfony\Component\Form\Extension\Validator\Constraints2a|NSymfony\Component\Form\Extension\Validator3c|NSymfony\Component\Form\Extension\Templating<u|NSymfony\Component\Form\Extension\HttpFoundation\TypeF|NSymfony\Component\Form\Extension\HttpFoundation\EventListener7k|NSymfony\Component\Form\Extension\HttpFoundation<u|NSymfony\Component\Form\Extension\DependencyInjection;s|NSymfony\Component\Form\Extension\DataCollector\Type<u|NSymfony\Component\Form\Extension\DataCollector\ProxyE|NSymfony\Component\Form\Extension\DataCollector\EventListener6i|NSymfony\Component\Form\Extension\DataCollector2a|NSymfony\Component\Form\Extension\Csrf\Type;s|NSymfony\Component\Form\Extension\Csrf\EventListener:q|NSymfony\Component\Form\Extension\Csrf\CsrfProvider-W|NSymfony\Component\Form\Extension\Csrf2a|NSymfony\Component\Form\Extension\Core\View2a|NSymfony\Component\Form\Extension\Core\Type;s|NSymfony\Component\Form\Extension\Core\EventListener=w|NSymfony\Component\Form\Extension\Core\DataTransformer8m|NSymfony\Component\Form\Extension\Core\DataMapper8m|NSymfony\Component\Form\Extension\Core\ChoiceList-W|NSymfony\Component\Form\Extension\Core(M|NSymfony\Component\Form\Exception)O|NSymfony\Component\Form\Deprecated.Y|NSymfony\Component\Form\ChoiceList\View0]|NSymfony\Component\Form\ChoiceList\Loader1_|NSymfony\Component\Form\ChoiceList\Factory)O|NSymfony\Component\Form\ChoiceList9|NSymfony\Component\Form,U|NSymfony\Component\Finder\Tests\Shell/[|NSymfony\Component\Finder\Tests\Iterator2a|NSymfony\Component\Finder\Tests\FakeAdapter1_|NSymfony\Component\Finder\Tests\Expression1_|NSymfony\Component\Finder\Tests\Comparator&I|NSymfony\Component\Finder\Tests&I|NSymfony\Component\Finder\Shell)O|NSymfony\Component\Finder\Iterator+S|NSymfony\Component\Finder\Expression*Q|NSymfony\Component\Finder\Exception+S|NSymfony\Component\Finder\Comparator(M|NSymfony\Component\Finder\Adapter =|NSymfony\Component\Finder*Q|NSymfony\Component\Filesystem\Tests.Y|NSymfony\Component\Filesystem\Exception$E|NSymfony\Component\Filesystem7k|NSymfony\Component\ExpressionLanguage\Tests\Node;s|NSymfony\Component\ExpressionLanguage\Tests\Fixtures2a|NSymfony\Component\ExpressionLanguage\Tests~
 F  :j<a*qBY


O
*				o	?	pE]/c1S\edg.                                 3c|NSymfony\Component\Intl\Data\Bundle\Compiler	'K|NSymfony\Component\Intl\Collator9|NSymfony\Component\Intl8m|NSymfony\Component\HttpKernel\Tests\Profiler\Mock3c|NSymfony\Component\HttpKernel\Tests\Profiler4e|NSymfony\Component\HttpKernel\Tests\HttpCache3c|NSymfony\Component\HttpKernel\Tests\Fragment_9|NSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\DependencyInjectionS!|NSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\Command K|NSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle`;|NSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionNotValidBundle\DependencyInjectionL|NSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionNotValidBundle^7|NSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionLoadedBundle\DependencyInjectionJ|NSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionLoadedBundleJ|NSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionAbsentBundle3c|NSymfony\Component\HttpKernel\Tests\Fixtures8m|NSymfony\Component\HttpKernel\Tests\EventListener>y|NSymfony\Component\HttpKernel\Tests\DependencyInjection0]|NSymfony\Component\HttpKernel\Tests\Debug=w|NSymfony\Component\HttpKernel\Tests\DataCollector\Util8m|NSymfony\Component\HttpKernel\Tests\DataCollector5g|NSymfony\Component\HttpKernel\Tests\Controller1_|NSymfony\Component\HttpKernel\Tests\Config6i|NSymfony\Component\HttpKernel\Tests\CacheWarmer7k|NSymfony\Component\HttpKernel\Tests\CacheClearer1_|NSymfony\Component\HttpKernel\Tests\Bundle*Q|NSymfony\Component\HttpKernel\Tests-W|NSymfony\Component\HttpKernel\Profiler(M|NSymfony\Component\HttpKernel\Log.Y|NSymfony\Component\HttpKernel\HttpCache-W|NSymfony\Component\HttpKernel\Fragment.Y|NSymfony\Component\HttpKernel\ExceptionV2a|NSymfony\Component\HttpKernel\EventListener*Q|NSymfony\Component\HttpKernel\Event8m|NSymfony\Component\HttpKernel\DependencyInjection*Q|NSymfony\Component\HttpKernel\Debug7k|NSymfony\Component\HttpKernel\DataCollector\Util2a|NSymfony\Component\HttpKernel\DataCollector/[|NSymfony\Component\HttpKernel\Controller+S|NSymfony\Component\HttpKernel\Config0]|NSymfony\Component\HttpKernel\CacheWarmer1_|NSymfony\Component\HttpKernel\CacheClearer+S|NSymfony\Component\HttpKernel\Bundle$E|NSymfony\Component\HttpKernelE|NSymfony\Component\HttpFoundation\Tests\Session\Storage\ProxyG	|NSymfony\Component\HttpFoundation\Tests\Session\Storage\Handler>y|NSymfony\Component\HttpFoundation\Tests\Session\Storage<u|NSymfony\Component\HttpFoundation\Tests\Session\Flash@}|NSymfony\Component\HttpFoundation\Tests\Session\Attribute6i|NSymfony\Component\HttpFoundation\Tests\Session<u|NSymfony\Component\HttpFoundation\Tests\File\MimeType3c|NSymfony\Component\HttpFoundation\Tests\File.Y|NSymfony\Component\HttpFoundation\Tests>y|NSymfony\Component\HttpFoundation\Session\Storage\Proxy@}|NSymfony\Component\HttpFoundation\Session\Storage\Handler8m|NSymfony\Component\HttpFoundation\Session\Storage6i|NSymfony\Component\HttpFoundation\Session\Flash:q|NSymfony\Component\HttpFoundation\Session\Attribute0]|NSymfony\Component\HttpFoundation\Session6i|NSymfony\Component\HttpFoundation\File\MimeType7k|NSymfony\Component\HttpFoundation\File\Exception-W|NSymfony\Component\HttpFoundation\File(M|NSymfony\Component\HttpFoundation#C|NSymfony\Component\Form\Util)O|NSymfony\Component\Form\Tests\Util*Q|NSymfony\Component\Form\Tests\Guess-W|NSymfony\Component\Form\Tests\FixturesI|NSymfony\Component\Form\Tests\Extension\Validator\ViolationMapper=w|NSymfony\Component\Form\Tests\Extension\Validator\Util   |NSymfo1_|NSymfony\Component\Intl\Data\Bundle\Reader

   P  |OrDk8 ^1]




[
*
			y	I	'O mAb/tB	sGW#c,m'               ;s|NSymfony\Component\Security\Core\Authorization\Voter\5g|NSymfony\Component\Security\Core\Authorization[E|NSymfony\Component\Security\Core\Authentication\Token\StorageY<u|NSymfony\Component\Security\Core\Authentication\TokenXA|NSymfony\Component\Security\Core\Authentication\RememberMeW?{|NSymfony\Component\Security\Core\Authentication\ProviderV6i|NSymfony\Component\Security\Core\AuthenticationU'K|NSymfony\Component\Security\CoreZ,U|NSymfony\Component\Security\Acl\VoterT2a|NSymfony\Component\Security\Acl\Tests\VoterS7k|NSymfony\Component\Security\Acl\Tests\PermissionR3c|NSymfony\Component\Security\Acl\Tests\DomainP1_|NSymfony\Component\Security\Acl\Tests\DbalO1_|NSymfony\Component\Security\Acl\PermissionN,U|NSymfony\Component\Security\Acl\Model0]|NSymfony\Component\Security\Acl\ExceptionM-W|NSymfony\Component\Security\Acl\DomainL+S|NSymfony\Component\Security\Acl\DbalK6i|NSymfony\Component\Routing\Tests\Matcher\DumperI/[|NSymfony\Component\Routing\Tests\MatcherJ.Y|NSymfony\Component\Routing\Tests\LoaderH8m|NSymfony\Component\Routing\Tests\Generator\DumperF1_|NSymfony\Component\Routing\Tests\GeneratorGG	|NSymfony\Component\Routing\Tests\Fixtures\OtherAnnotatedClassesEA|NSymfony\Component\Routing\Tests\Fixtures\AnnotatedClassesC0]|NSymfony\Component\Routing\Tests\FixturesD2a|NSymfony\Component\Routing\Tests\AnnotationA'K|NSymfony\Component\Routing\TestsB0]|NSymfony\Component\Routing\Matcher\Dumper@)O|NSymfony\Component\Routing\Matcher?(M|NSymfony\Component\Routing\Loader>2a|NSymfony\Component\Routing\Generator\Dumper<+S|NSymfony\Component\Routing\Generator=+S|NSymfony\Component\Routing\Exception;,U|NSymfony\Component\Routing\Annotation9!?|NSymfony\Component\Routing:7k|NSymfony\Component\PropertyAccess\Tests\Fixtures7.Y|NSymfony\Component\PropertyAccess\Tests82a|NSymfony\Component\PropertyAccess\Exception5(M|NSymfony\Component\PropertyAccess6'K|NSymfony\Component\Process\Tests4'K|NSymfony\Component\Process\Pipes3+S|NSymfony\Component\Process\Exception1!?|NSymfony\Component\Process2/[|NSymfony\Component\OptionsResolver\Tests03c|NSymfony\Component\OptionsResolver\Exception.)O|NSymfony\Component\OptionsResolver/+S|NSymfony\Component\Locale\Tests\Stub-&I|NSymfony\Component\Locale\Tests,0]|NSymfony\Component\Locale\Stub\DateFormat*%G|NSymfony\Component\Locale\Stub+*Q|NSymfony\Component\Locale\Exception( =|NSymfony\Component\Locale)#C|NSymfony\Component\Intl\Util')O|NSymfony\Component\Intl\Tests\Util&A|NSymfony\Component\Intl\Tests\NumberFormatter\Verification%4e|NSymfony\Component\Intl\Tests\NumberFormatter$8m|NSymfony\Component\Intl\Tests\Locale\Verification#+S|NSymfony\Component\Intl\Tests\Locale"9o|NSymfony\Component\Intl\Tests\Globals\Verification!,U|NSymfony\Component\Intl\Tests\Globals ?{|NSymfony\Component\Intl\Tests\DateFormatter\Verification2a|NSymfony\Component\Intl\Tests\DateFormatter.Y|NSymfony\Component\Intl\Tests\Data\Util7k|NSymfony\Component\Intl\Tests\Data\Provider\Json2a|NSymfony\Component\Intl\Tests\Data\Provider7k|NSymfony\Component\Intl\Tests\Data\Bundle\Writer7k|NSymfony\Component\Intl\Tests\Data\Bundle\Reader:q|NSymfony\Component\Intl\Tests\Collator\Verification-W|NSymfony\Component\Intl\Tests\Collator-W|NSymfony\Component\Intl\ResourceBundle.Y|NSymfony\Component\Intl\NumberFormatter%G|NSymfony\Component\Intl\Locale&I|NSymfony\Component\Intl\Globals(M|NSymfony\Component\Intl\Exception7k|NSymfony\Component\Intl\DateFormatter\DateFormat,U|NSymfony\Component\Intl\DateFormatter(M|NSymfony\Component\Intl\Data\Util,U|NSymfony\Component\Intl\Data\Provider-W|NSymfony\Component\Intl\Data\Generator
   L  sEx4j4c^,



O
				R	$a3QpK])e2VtIe3          %G|NSymfony\Component\Translation2a|NSymfony\Component\Templating\Tests\Storage1_|NSymfony\Component\Templating\Tests\Loader1_|NSymfony\Component\Templating\Tests\Helper3c|NSymfony\Component\Templating\Tests\Fixtures*Q|NSymfony\Component\Templating\Tests,U|NSymfony\Component\Templating\Storage+S|NSymfony\Component\Templating\Loader+S|NSymfony\Component\Templating\Helper*Q|NSymfony\Component\Templating\Asset$E|NSymfony\Component\Templating)O|NSymfony\Component\Stopwatch\Tests#C|NSymfony\Component\Stopwatch5g|NSymfony\Component\Serializer\Tests\Normalizer8m|NSymfony\Component\Serializer\Tests\NameConverter9o|NSymfony\Component\Serializer\Tests\Mapping\Loader:q|NSymfony\Component\Serializer\Tests\Mapping\Factory2a|NSymfony\Component\Serializer\Tests\Mapping3c|NSymfony\Component\Serializer\Tests\Fixtures2a|NSymfony\Component\Serializer\Tests\Encoder5g|NSymfony\Component\Serializer\Tests\Annotation*Q|NSymfony\Component\Serializer\Tests/[|NSymfony\Component\Serializer\Normalizer2a|NSymfony\Component\Serializer\NameConverter3c|NSymfony\Component\Serializer\Mapping\Loader4e|NSymfony\Component\Serializer\Mapping\Factory,U|NSymfony\Component\Serializer\Mapping.Y|NSymfony\Component\Serializer\Exception,U|NSymfony\Component\Serializer\Encoder/[|NSymfony\Component\Serializer\Annotation$E|NSymfony\Component\SerializerC|NSymfony\Component\Security\Tests\Core\Authentication\Voter-W|NSymfony\Component\Security\Tests\Core5g|NSymfony\Component\Security\Http\Tests\Session8m|NSymfony\Component\Security\Http\Tests\RememberMe4e|NSymfony\Component\Security\Http\Tests\Logout6i|NSymfony\Component\Security\Http\Tests\Firewall8m|NSymfony\Component\Security\Http\Tests\EntryPoint<u|NSymfony\Component\Security\Http\Tests\Authentication-W|NSymfony\Component\Security\Http\Tests/[|NSymfony\Component\Security\Http\Session2a|NSymfony\Component\Security\Http\RememberMe.Y|NSymfony\Component\Security\Http\Logout0]|NSymfony\Component\Security\Http\Firewall~-W|NSymfony\Component\Security\Http\Event}2a|NSymfony\Component\Security\Http\EntryPoint|5g|NSymfony\Component\Security\Http\Authorization6i|NSymfony\Component\Security\Http\Authentication{'K|NSymfony\Component\Security\Httpz4e|NSymfony\Component\Security\Csrf\TokenStoragey6i|NSymfony\Component\Security\Csrf\TokenGeneratorx:q|NSymfony\Component\Security\Csrf\Tests\TokenStoragew<u|NSymfony\Component\Security\Csrf\Tests\TokenGeneratorv-W|NSymfony\Component\Security\Csrf\Testsu1_|NSymfony\Component\Security\Csrf\Exceptiont'K|NSymfony\Component\Security\Csrfs=w|NSymfony\Component\Security\Core\Validator\Constraintsr,U|NSymfony\Component\Security\Core\Utilq,U|NSymfony\Component\Security\Core\UserpD|NSymfony\Component\Security\Core\Tests\Validator\Constraintso2a|NSymfony\Component\Security\Core\Tests\Utilm2a|NSymfony\Component\Security\Core\Tests\Userl2a|NSymfony\Component\Security\Core\Tests\Rolek7k|NSymfony\Component\Security\Core\Tests\Exceptioni5g|NSymfony\Component\Security\Core\Tests\EncoderhA|NSymfony\Component\Security\Core\Tests\Authorization\Voterg;s|NSymfony\Component\Security\Core\Tests\AuthorizationfK|NSymfony\Component\Security\Core\Tests\Authentication\Token\StorageeC|NSymfony\Component\Security\Core\Tests\Authentication\TokendH|NSymfony\Component\Security\Core\Tests\Authentication\RememberMecF|NSymfony\Component\Security\Core\Tests\Authentication\Providerb<u|NSymfony\Component\Security\Core\Tests\Authenticationa-W|NSymfony\Component\Security\Core\Testsj,U|NSymfony\Component\Security\Core\Role`1_|NSymfony\Component\Security\Core\Exception_-W|NSymfony\Component\Security\Core\Event^
   \  o?vCT(h5p8



b
9
				c	8	
T5wO#wH90hE.!lM:&K
j5T.         2a|]Symfony\Bridge\Doctrine\Tests\DataFixtures3c|]Symfony\Bridge\Doctrine\Tests\DataCollector%G|]Symfony\Bridge\Doctrine\Tests-W|]Symfony\Bridge\Doctrine\Security\User&I|]Symfony\Bridge\Doctrine\Logger.Y|]Symfony\Bridge\Doctrine\HttpFoundation)O|]Symfony\Bridge\Doctrine\Form\Type2a|]Symfony\Bridge\Doctrine\Form\EventListener4e|]Symfony\Bridge\Doctrine\Form\DataTransformer/[|]Symfony\Bridge\Doctrine\Form\ChoiceList$E|]Symfony\Bridge\Doctrine\FormJ|]Symfony\Bridge\Doctrine\DependencyInjection\Security\UserProvider@}|]Symfony\Bridge\Doctrine\DependencyInjection\CompilerPass3c|]Symfony\Bridge\Doctrine\DependencyInjection,U|]Symfony\Bridge\Doctrine\DataFixtures-W|]Symfony\Bridge\Doctrine\DataCollector+S|]Symfony\Bridge\Doctrine\CacheWarmer;|]Symfony\Bridge\Doctrine#|]Namespaced2R!|]NamespacedQ9|]NamespaceCollision\C\BJ5|]NamespaceCollision\CD9|]NamespaceCollision\A\BI5|]NamespaceCollision\AC|]Foo\BarO|]FooS#|]Container14|1|]ClassesWithParentsK|]ClassMapP|]BetaN)|]Apc\NamespacedH"A|]Apc\NamespaceCollision\A\BG =|]Apc\NamespaceCollision\AF|]AlphaML|]Acme\DemoBundle\Proxy\__CG__\Symfony\Component\Security\Tests\Core\8K|]Acme\DemoBundle\Proxy\__CG__\Symfony\Component\Security\Tests\Acl\)|]L|Nglobalr.Y|NTestBundle\Sensio\FooBundle\Controller#C|NTestBundle\Sensio\FooBundle2a|NTestBundle\Sensio\Cms\FooBundle\Controller'K|NTestBundle\Sensio\Cms\FooBundle,U|NTestBundle\FooBundle\Controller\Test+S|NTestBundle\FooBundle\Controller\Sub'K|NTestBundle\FooBundle\Controller5|NTestBundle\FooBundle.Y|NTestBundle\Fabpot\FooBundle\Controller#C|NTestBundle\Fabpot\FooBundle$E|NSymfony\Component\Yaml\Tests(M|NSymfony\Component\Yaml\Exception9|NSymfony\Component\Yaml1_|NSymfony\Component\VarDumper\Tests\Fixture0]|NSymfony\Component\VarDumper\Tests\Caster)O|NSymfony\Component\VarDumper\Tests(M|NSymfony\Component\VarDumper\Test-W|NSymfony\Component\VarDumper\Exception*Q|NSymfony\Component\VarDumper\Dumper*Q|NSymfony\Component\VarDumper\Cloner*Q|NSymfony\Component\VarDumper\Caster#C|NSymfony\Component\VarDumper-W|NSymfony\Component\Validator\Violation-W|NSymfony\Component\Validator\Validator(M|NSymfony\Component\Validator\Util3c|NSymfony\Component\Validator\Tests\Validator.Y|NSymfony\Component\Validator\Tests\Util8m|NSymfony\Component\Validator\Tests\Mapping\Loader9o|NSymfony\Component\Validator\Tests\Mapping\Factory7k|NSymfony\Component\Validator\Tests\Mapping\Cache1_|NSymfony\Component\Validator\Tests\Mapping2a|NSymfony\Component\Validator\Tests\Fixtures5g|NSymfony\Component\Validator\Tests\Constraints)O|NSymfony\Component\Validator\Tests2a|NSymfony\Component\Validator\Mapping\Loader3c|NSymfony\Component\Validator\Mapping\Factory1_|NSymfony\Component\Validator\Mapping\Cache+S|NSymfony\Component\Validator\Mapping-W|NSymfony\Component\Validator\Exception+S|NSymfony\Component\Validator\Context:q|NSymfony\Component\Validator\Constraints\Collection/[|NSymfony\Component\Validator\Constraints#C|NSymfony\Component\Validator,U|NSymfony\Component\Translation\Writer2a|NSymfony\Component\Translation\Tests\Loader2a|NSymfony\Component\Translation\Tests\Dumper9o|NSymfony\Component\Translation\Tests\DataCollector5g|NSymfony\Component\Translation\Tests\Catalogue+S|NSymfony\Component\Translation\Tests,U|NSymfony\Component\Translation\Loader/[|NSymfony\Component\Translation\Extractor/[|NSymfony\Component\Translation\Exception,U|NSymfony\Component\Translation\Dumper3c|NSymfony\Component\Translation\DataCollector
 N  b,_5a4c:a7


{
U
4
				h	A	n;v;a/Y,E~Fp8q8      %G|]Symfony\Bundle\SecurityBundle2a|]Symfony\Bundle\FrameworkBundle\Translation6i|]Symfony\Bundle\FrameworkBundle\Tests\Validator8m|]Symfony\Bundle\FrameworkBundle\Tests\Translation>y|]Symfony\Bundle\FrameworkBundle\Tests\Templating\LoaderH|]Symfony\Bundle\FrameworkBundle\Tests\Templating\Helper\Fixtures
>y|]Symfony\Bundle\FrameworkBundle\Tests\Templating\Helper	7k|]Symfony\Bundle\FrameworkBundle\Tests\Templating4e|]Symfony\Bundle\FrameworkBundle\Tests\RoutingU%|]Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\ControllerJ|]Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle7k|]Symfony\Bundle\FrameworkBundle\Tests\Functional@}|]Symfony\Bundle\FrameworkBundle\Tests\Fixtures\BaseBundle:q|]Symfony\Bundle\FrameworkBundle\Tests\EventListenerJ|]Symfony\Bundle\FrameworkBundle\Tests\DependencyInjection\Compiler@}|]Symfony\Bundle\FrameworkBundle\Tests\DependencyInjection7k|]Symfony\Bundle\FrameworkBundle\Tests\Controller4e|]Symfony\Bundle\FrameworkBundle\Tests\Console8m|]Symfony\Bundle\FrameworkBundle\Tests\CacheWarmer,U|]Symfony\Bundle\FrameworkBundle\Tests+S|]Symfony\Bundle\FrameworkBundle\Test8m|]Symfony\Bundle\FrameworkBundle\Templating\Loader8m|]Symfony\Bundle\FrameworkBundle\Templating\Helper7k|]Symfony\Bundle\FrameworkBundle\Templating\Asset1_|]Symfony\Bundle\FrameworkBundle\Templating.Y|]Symfony\Bundle\FrameworkBundle\Routing0]|]Symfony\Bundle\FrameworkBundle\HttpCache4e|]Symfony\Bundle\FrameworkBundle\EventListenerD|]Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler:q|]Symfony\Bundle\FrameworkBundle\DependencyInjection4e|]Symfony\Bundle\FrameworkBundle\DataCollector1_|]Symfony\Bundle\FrameworkBundle\Controller.Y|]Symfony\Bundle\FrameworkBundle\Console.Y|]Symfony\Bundle\FrameworkBundle\Command2a|]Symfony\Bundle\FrameworkBundle\CacheWarmer&I|]Symfony\Bundle\FrameworkBundle'K|]Symfony\Bridge\Twig\Translation'K|]Symfony\Bridge\Twig\TokenParser-W|]Symfony\Bridge\Twig\Tests\Translation-W|]Symfony\Bridge\Twig\Tests\NodeVisitor&I|]Symfony\Bridge\Twig\Tests\Node4e|]Symfony\Bridge\Twig\Tests\Extension\Fixtures+S|]Symfony\Bridge\Twig\Tests\Extension!?|]Symfony\Bridge\Twig\Tests'K|]Symfony\Bridge\Twig\NodeVisitor =|]Symfony\Bridge\Twig\Node =|]Symfony\Bridge\Twig\Form%G|]Symfony\Bridge\Twig\Extension3|]Symfony\Bridge\Twig0]|]Symfony\Bridge\Swiftmailer\DataCollector9o|]Symfony\Bridge\Propel1\Tests\Form\DataTransformer4e|]Symfony\Bridge\Propel1\Tests\Form\ChoiceList)O|]Symfony\Bridge\Propel1\Tests\Form-W|]Symfony\Bridge\Propel1\Tests\Fixtures2a|]Symfony\Bridge\Propel1\Tests\DataCollector$E|]Symfony\Bridge\Propel1\Tests,U|]Symfony\Bridge\Propel1\Security\User%G|]Symfony\Bridge\Propel1\Logger(M|]Symfony\Bridge\Propel1\Form\Type3c|]Symfony\Bridge\Propel1\Form\DataTransformer.Y|]Symfony\Bridge\Propel1\Form\ChoiceList#C|]Symfony\Bridge\Propel1\FormI|]Symfony\Bridge\Propel1\DependencyInjection\Security\UserProvider,U|]Symfony\Bridge\Propel1\DataCollector.Y|]Symfony\Bridge\Monolog\Tests\Processor(M|]Symfony\Bridge\Monolog\Processor&I|]Symfony\Bridge\Monolog\Handler9|]Symfony\Bridge\Monolog5g|]Symfony\Bridge\Doctrine\Validator\Constraints)O|]Symfony\Bridge\Doctrine\Validator;s|]Symfony\Bridge\Doctrine\Tests\Validator\Constraints3c|]Symfony\Bridge\Doctrine\Tests\Security\User,U|]Symfony\Bridge\Doctrine\Tests\Logger/[|]Symfony\Bridge\Doctrine\Tests\Form\Type5g|]Symfony\Bridge\Doctrine\Tests\Form\ChoiceList*Q|]Symfony\Bridge\Doctrine\Tests\Form.Y|]Symfony\Bridge\Doctrine\Tests\Fixtures   |]Symfony\Bri0]|]Symfony\Bundle\FrameworkBundle\Validator
   J  N}NMD8



[
1
			g	;	T%]&G
\0yN&i;jBf7	                 .Y|]Symfony\Component\Console\Tests\Testerm.Y|]Symfony\Component\Console\Tests\Outputl-W|]Symfony\Component\Console\Tests\Inputk.Y|]Symfony\Component\Console\Tests\Helperj1_|]Symfony\Component\Console\Tests\Formatteri/[|]Symfony\Component\Console\Tests\Commandh'K|]Symfony\Component\Console\Testsg(M|]Symfony\Component\Console\Testerf(M|]Symfony\Component\Console\Outpute'K|]Symfony\Component\Console\Inputd(M|]Symfony\Component\Console\Helperc+S|]Symfony\Component\Console\Formatterb)O|]Symfony\Component\Console\Commanda!?|]Symfony\Component\Console`/[|]Symfony\Component\Config\Tests\Resource_-W|]Symfony\Component\Config\Tests\Loader^9o|]Symfony\Component\Config\Tests\Definition\Builder\1_|]Symfony\Component\Config\Tests\Definition[&I|]Symfony\Component\Config\Tests])O|]Symfony\Component\Config\ResourceZ'K|]Symfony\Component\Config\LoaderY*Q|]Symfony\Component\Config\ExceptionX5g|]Symfony\Component\Config\Definition\ExceptionW3c|]Symfony\Component\Config\Definition\BuilderV+S|]Symfony\Component\Config\DefinitionU =|]Symfony\Component\ConfigT+S|]Symfony\Component\ClassLoader\TestsB%G|]Symfony\Component\ClassLoaderA*Q|]Symfony\Component\BrowserKit\Tests@$E|]Symfony\Component\BrowserKit?7k|]Symfony\Bundle\WebProfilerBundle\Tests\Profiler<<u|]Symfony\Bundle\WebProfilerBundle\Tests\EventListener;C|]Symfony\Bundle\WebProfilerBundle\Tests\DependencyInjection:9o|]Symfony\Bundle\WebProfilerBundle\Tests\Controller9.Y|]Symfony\Bundle\WebProfilerBundle\Tests=1_|]Symfony\Bundle\WebProfilerBundle\Profiler86i|]Symfony\Bundle\WebProfilerBundle\EventListener7<u|]Symfony\Bundle\WebProfilerBundle\DependencyInjection63c|]Symfony\Bundle\WebProfilerBundle\Controller5(M|]Symfony\Bundle\WebProfilerBundle>-W|]Symfony\Bundle\TwigBundle\TokenParser3.Y|]Symfony\Bundle\TwigBundle\Tests\Loader1;s|]Symfony\Bundle\TwigBundle\Tests\DependencyInjection02a|]Symfony\Bundle\TwigBundle\Tests\Controller/'K|]Symfony\Bundle\TwigBundle\Tests2&I|]Symfony\Bundle\TwigBundle\Node.(M|]Symfony\Bundle\TwigBundle\Loader-+S|]Symfony\Bundle\TwigBundle\Extension,>y|]Symfony\Bundle\TwigBundle\DependencyInjection\Compiler*5g|]Symfony\Bundle\TwigBundle\DependencyInjection+'K|]Symfony\Bundle\TwigBundle\Debug),U|]Symfony\Bundle\TwigBundle\Controller()O|]Symfony\Bundle\TwigBundle\Command'-W|]Symfony\Bundle\TwigBundle\CacheWarmer&!?|]Symfony\Bundle\TwigBundle44e|]Symfony\Bundle\SecurityBundle\Twig\Extension%W)|]Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FormLoginBundle\Security$b?|]Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FormLoginBundle\DependencyInjection"Y-|]Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FormLoginBundle\Controller!N|]Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FormLoginBundle#W)|]Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\CsrfFormLoginBundle\Form ]5|]Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\CsrfFormLoginBundle\ControllerR|]Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\CsrfFormLoginBundle6i|]Symfony\Bundle\SecurityBundle\Tests\FunctionalQ|]Symfony\Bundle\SecurityBundle\Tests\DependencyInjection\Security\Factory?{|]Symfony\Bundle\SecurityBundle\Tests\DependencyInjection7k|]Symfony\Bundle\SecurityBundle\Templating\Helper.Y|]Symfony\Bundle\SecurityBundle\Security3c|]Symfony\Bundle\SecurityBundle\EventListenerP|]Symfony\Bundle\SecurityBundle\DependencyInjection\Security\UserProviderK|]Symfony\Bundle\SecurityBundle\DependencyInjection\Security\FactoryC|]Symfony\Bundle\SecurityBundle\DependencyInjection\Compiler9o|]Symfony\Bundle\SecurityBundle\DependencyInjection3c|]Symfony\Bundle\SecurityBundle\DataCollector
 I  S"Pt7[0zJ%



~
T
-					^	0Du9Jg&rM(e#g.S   - -W|]Symfony\Component\Form\Tests\FixturesI|]Symfony\Component\Form\Tests\Extension\Validator\ViolationMapper=w|]Symfony\Component\Form\Tests\Extension\Validator\TypeG	|]Symfony\Component\Form\Tests\Extension\Validator\EventListenerE|]Symfony\Component\Form\Tests\Extension\Validator\ConstraintsL|]Symfony\Component\Form\Tests\Extension\HttpFoundation\EventListener8m|]Symfony\Component\Form\Tests\Extension\Csrf\TypeA|]Symfony\Component\Form\Tests\Extension\Csrf\EventListener@}|]Symfony\Component\Form\Tests\Extension\Csrf\CsrfProvider8m|]Symfony\Component\Form\Tests\Extension\Core\TypeA|]Symfony\Component\Form\Tests\Extension\Core\EventListenerD|]Symfony\Component\Form\Tests\Extension\Core\DataTransformer>y|]Symfony\Component\Form\Tests\Extension\Core\DataMapper>y|]Symfony\Component\Form\Tests\Extension\Core\ChoiceList$E|]Symfony\Component\Form\Tests$E|]Symfony\Component\Form\GuessC|]Symfony\Component\Form\Extension\Validator\ViolationMapper7k|]Symfony\Component\Form\Extension\Validator\Util7k|]Symfony\Component\Form\Extension\Validator\Type@}|]Symfony\Component\Form\Extension\Validator\EventListener>y|]Symfony\Component\Form\Extension\Validator\Constraints2a|]Symfony\Component\Form\Extension\Validator3c|]Symfony\Component\Form\Extension\Templating<u|]Symfony\Component\Form\Extension\HttpFoundation\TypeF|]Symfony\Component\Form\Extension\HttpFoundation\EventListener7k|]Symfony\Component\Form\Extension\HttpFoundation<u|]Symfony\Component\Form\Extension\DependencyInjection2a|]Symfony\Component\Form\Extension\Csrf\Type;s|]Symfony\Component\Form\Extension\Csrf\EventListener:q|]Symfony\Component\Form\Extension\Csrf\CsrfProvider-W|]Symfony\Component\Form\Extension\Csrf2a|]Symfony\Component\Form\Extension\Core\View2a|]Symfony\Component\Form\Extension\Core\Type;s|]Symfony\Component\Form\Extension\Core\EventListener=w|]Symfony\Component\Form\Extension\Core\DataTransformer8m|]Symfony\Component\Form\Extension\Core\DataMapper8m|]Symfony\Component\Form\Extension\Core\ChoiceList-W|]Symfony\Component\Form\Extension\Core(M|]Symfony\Component\Form\Exception$E|]Symfony\Component\Form\Event9|]Symfony\Component\Form/[|]Symfony\Component\Finder\Tests\Iterator1_|]Symfony\Component\Finder\Tests\Comparator&I|]Symfony\Component\Finder\Tests)O|]Symfony\Component\Finder\Iterator+S|]Symfony\Component\Finder\Comparator =|]Symfony\Component\Finder*Q|]Symfony\Component\Filesystem\Tests.Y|]Symfony\Component\Filesystem\Exception$E|]Symfony\Component\Filesystem/[|]Symfony\Component\EventDispatcher\Tests/[|]Symfony\Component\EventDispatcher\Debugi)O|]Symfony\Component\EventDispatcher0]|]Symfony\Component\DomCrawler\Tests\Field*Q|]Symfony\Component\DomCrawler\Tests*Q|]Symfony\Component\DomCrawler\Field$E|]Symfony\Component\DomCrawler@}|]Symfony\Component\DependencyInjection\Tests\ParameterBag~:q|]Symfony\Component\DependencyInjection\Tests\Loader}:q|]Symfony\Component\DependencyInjection\Tests\Dumper{<u|]Symfony\Component\DependencyInjection\Tests\Compilery3c|]Symfony\Component\DependencyInjection\Testsz:q|]Symfony\Component\DependencyInjection\ParameterBagx4e|]Symfony\Component\DependencyInjection\Loaderw7k|]Symfony\Component\DependencyInjection\Extensionh7k|]Symfony\Component\DependencyInjection\Exceptionv4e|]Symfony\Component\DependencyInjection\Dumperu6i|]Symfony\Component\DependencyInjection\Compilert-W|]Symfony\Component\DependencyInjections0]|]Symfony\Component\CssSelector\Tests\Noder+S|]Symfony\Component\CssSelector\Testsq*Q|]Symfony\Component\CssSelector\Nodep/[|]Symfony\Component\CssSelector\Exceptiono   &|]Symfony\Component\CssSelectorn
   K ^0Ue6M[/



p
=
			{	L	i1^%q&{'^%[/S+	Q(          (|]Symfony\Component\Routing\Tests0]|]Symfony\Component\Routing\Matcher\Dumper)O|]Symfony\Component\Routing\Matcher (M|]Symfony\Component\Routing\Loader2a|]Symfony\Component\Routing\Generator\Dumper+S|]Symfony\Component\Routing\Generator+S|]Symfony\Component\Routing\Exception,U|]Symfony\Component\Routing\Annotation!?|]Symfony\Component\Routing'K|]Symfony\Component\Process\Tests+S|]Symfony\Component\Process\Exception!?|]Symfony\Component\Process/[|]Symfony\Component\OptionsResolver\Tests3c|]Symfony\Component\OptionsResolver\Exception)O|]Symfony\Component\OptionsResolver+S|]Symfony\Component\Locale\Tests\Stub&I|]Symfony\Component\Locale\Tests0]|]Symfony\Component\Locale\Stub\DateFormat%G|]Symfony\Component\Locale\Stub*Q|]Symfony\Component\Locale\Exception =|]Symfony\Component\Locale8m|]Symfony\Component\HttpKernel\Tests\Profiler\Mock3c|]Symfony\Component\HttpKernel\Tests\Profiler4e|]Symfony\Component\HttpKernel\Tests\HttpCache_9|]Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\DependencyInjectionS!|]Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\CommandK|]Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle^7|]Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionLoadedBundle\DependencyInjectionJ|]Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionLoadedBundleJ|]Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionAbsentBundle3c|]Symfony\Component\HttpKernel\Tests\Fixtures4e|]Symfony\Component\HttpKernel\Tests\Exception8m|]Symfony\Component\HttpKernel\Tests\EventListener0]|]Symfony\Component\HttpKernel\Tests\Debug8m|]Symfony\Component\HttpKernel\Tests\DataCollector1_|]Symfony\Component\HttpKernel\Tests\Config6i|]Symfony\Component\HttpKernel\Tests\CacheWarmer7k|]Symfony\Component\HttpKernel\Tests\CacheClearer1_|]Symfony\Component\HttpKernel\Tests\Bundle*Q|]Symfony\Component\HttpKernel\Tests-W|]Symfony\Component\HttpKernel\Profiler(M|]Symfony\Component\HttpKernel\Log.Y|]Symfony\Component\HttpKernel\HttpCache.Y|]Symfony\Component\HttpKernel\Exception2a|]Symfony\Component\HttpKernel\EventListener*Q|]Symfony\Component\HttpKernel\Event8m|]Symfony\Component\HttpKernel\DependencyInjection*Q|]Symfony\Component\HttpKernel\Debug2a|]Symfony\Component\HttpKernel\DataCollector/[|]Symfony\Component\HttpKernel\Controller+S|]Symfony\Component\HttpKernel\Config0]|]Symfony\Component\HttpKernel\CacheWarmer1_|]Symfony\Component\HttpKernel\CacheClearer+S|]Symfony\Component\HttpKernel\Bundle$E|]Symfony\Component\HttpKernelE|]Symfony\Component\HttpFoundation\Tests\Session\Storage\ProxyG	|]Symfony\Component\HttpFoundation\Tests\Session\Storage\Handler>y|]Symfony\Component\HttpFoundation\Tests\Session\Storage<u|]Symfony\Component\HttpFoundation\Tests\Session\Flash@}|]Symfony\Component\HttpFoundation\Tests\Session\Attribute6i|]Symfony\Component\HttpFoundation\Tests\Session3c|]Symfony\Component\HttpFoundation\Tests\File.Y|]Symfony\Component\HttpFoundation\Tests>y|]Symfony\Component\HttpFoundation\Session\Storage\Proxy@}|]Symfony\Component\HttpFoundation\Session\Storage\Handler8m|]Symfony\Component\HttpFoundation\Session\Storage6i|]Symfony\Component\HttpFoundation\Session\Flash:q|]Symfony\Component\HttpFoundation\Session\Attribute0]|]Symfony\Component\HttpFoundation\Session6i|]Symfony\Component\HttpFoundation\File\MimeType7k|]Symfony\Component\HttpFoundation\File\Exception-W|]Symfony\Component\HttpFoundation\File(M|]Symfony\Component\HttpFoundation#C|]Symfony\Component\Form\Util)O|]Symfony\Component\Form\Tests\Util   'K|]Symfony\Component\Routing\Tests
   M  Z(Y-oBa$T"



^
6				h	7	s?t7c'|IHY)a<a-    %G|]Symfony\Component\TranslationR1_|]Symfony\Component\Templating\Tests\LoaderM1_|]Symfony\Component\Templating\Tests\HelperL3c|]Symfony\Component\Templating\Tests\FixturesK*Q|]Symfony\Component\Templating\TestsN,U|]Symfony\Component\Templating\StorageJ+S|]Symfony\Component\Templating\LoaderI+S|]Symfony\Component\Templating\HelperH*Q|]Symfony\Component\Templating\AssetF$E|]Symfony\Component\TemplatingG5g|]Symfony\Component\Serializer\Tests\NormalizerD3c|]Symfony\Component\Serializer\Tests\FixturesC2a|]Symfony\Component\Serializer\Tests\EncoderB*Q|]Symfony\Component\Serializer\TestsE/[|]Symfony\Component\Serializer\Normalizer@.Y|]Symfony\Component\Serializer\Exception?,U|]Symfony\Component\Serializer\Encoder>$E|]Symfony\Component\SerializerA8m|]Symfony\Component\Security\Tests\Http\RememberMe=4e|]Symfony\Component\Security\Tests\Http\Logout<6i|]Symfony\Component\Security\Tests\Http\Firewall:8m|]Symfony\Component\Security\Tests\Http\EntryPoint9-W|]Symfony\Component\Security\Tests\Http;/[|]Symfony\Component\Security\Tests\Domain(2a|]Symfony\Component\Security\Tests\Core\Util72a|]Symfony\Component\Security\Tests\Core\User62a|]Symfony\Component\Security\Tests\Core\Role45g|]Symfony\Component\Security\Tests\Core\Encoder3A|]Symfony\Component\Security\Tests\Core\Authorization\Voter2;s|]Symfony\Component\Security\Tests\Core\Authorization1C|]Symfony\Component\Security\Tests\Core\Authentication\Token0H|]Symfony\Component\Security\Tests\Core\Authentication\RememberMe/F|]Symfony\Component\Security\Tests\Core\Authentication\Provider.<u|]Symfony\Component\Security\Tests\Core\Authentication--W|]Symfony\Component\Security\Tests\Core52a|]Symfony\Component\Security\Tests\Acl\Voter,1_|]Symfony\Component\Security\Tests\Acl\Util+7k|]Symfony\Component\Security\Tests\Acl\Permission*3c|]Symfony\Component\Security\Tests\Acl\Domain'1_|]Symfony\Component\Security\Tests\Acl\Dbal&/[|]Symfony\Component\Security\Http\Session%2a|]Symfony\Component\Security\Http\RememberMe$.Y|]Symfony\Component\Security\Http\Logout#0]|]Symfony\Component\Security\Http\Firewall"-W|]Symfony\Component\Security\Http\Event!2a|]Symfony\Component\Security\Http\EntryPoint 5g|]Symfony\Component\Security\Http\Authorizationk6i|]Symfony\Component\Security\Http\Authentication'K|]Symfony\Component\Security\Http<u|]Symfony\Component\Security\Core\Validator\Constraint,U|]Symfony\Component\Security\Core\Util,U|]Symfony\Component\Security\Core\User,U|]Symfony\Component\Security\Core\Role1_|]Symfony\Component\Security\Core\Exception-W|]Symfony\Component\Security\Core\Event/[|]Symfony\Component\Security\Core\Encoder;s|]Symfony\Component\Security\Core\Authorization\Voter5g|]Symfony\Component\Security\Core\Authorization<u|]Symfony\Component\Security\Core\Authentication\TokenA|]Symfony\Component\Security\Core\Authentication\RememberMe?{|]Symfony\Component\Security\Core\Authentication\Provider6i|]Symfony\Component\Security\Core\Authentication'K|]Symfony\Component\Security\Core,U|]Symfony\Component\Security\Acl\Voter1_|]Symfony\Component\Security\Acl\Permission,U|]Symfony\Component\Security\Acl\Modelj0]|]Symfony\Component\Security\Acl\Exception-W|]Symfony\Component\Security\Acl\Domain+S|]Symfony\Component\Security\Acl\Dbal6i|]Symfony\Component\Routing\Tests\Matcher\Dumper
/[|]Symfony\Component\Routing\Tests\Matcher	.Y|]Symfony\Component\Routing\Tests\Loader8m|]Symfony\Component\Routing\Tests\Generator\Dumper1_|]Symfony\Component\Routing\Tests\GeneratorA|]Symfony\Component\Routing\Tests\Fixtures\AnnotatedClasses0]|]Symfony\Component\Routing\Tests\Fixtures2a|]Symfony\Component\Templating\Tests\StorageO
 [  vJc(i?	l3sV.


z
V
'

		v	h	G	$		 hK,^*yIa3b3uA_6l=	                                   (M|jSymfony\Bridge\Propel1\Form\Type	3c|jSymfony\Bridge\Propel1\Form\DataTransformer	.Y|jSymfony\Bridge\Propel1\Form\ChoiceList	#C|jSymfony\Bridge\Propel1\Form	I|jSymfony\Bridge\Propel1\DependencyInjection\Security\UserProvider	,U|jSymfony\Bridge\Propel1\DataCollector	.Y|jSymfony\Bridge\Monolog\Tests\Processor	(M|jSymfony\Bridge\Monolog\Processor	&I|jSymfony\Bridge\Monolog\Handler	9|jSymfony\Bridge\Monolog	5g|jSymfony\Bridge\Doctrine\Validator\Constraints	)O|jSymfony\Bridge\Doctrine\Validator	;s|jSymfony\Bridge\Doctrine\Tests\Validator\Constraints	3c|jSymfony\Bridge\Doctrine\Tests\Security\User	,U|jSymfony\Bridge\Doctrine\Tests\Logger	/[|jSymfony\Bridge\Doctrine\Tests\Form\Type	5g|jSymfony\Bridge\Doctrine\Tests\Form\ChoiceList	*Q|jSymfony\Bridge\Doctrine\Tests\Form	.Y|jSymfony\Bridge\Doctrine\Tests\Fixtures	C|jSymfony\Bridge\Doctrine\Tests\DependencyInjection\Compiler	2a|jSymfony\Bridge\Doctrine\Tests\DataFixtures	3c|jSymfony\Bridge\Doctrine\Tests\DataCollector	%G|jSymfony\Bridge\Doctrine\Tests	-W|jSymfony\Bridge\Doctrine\Security\User	&I|jSymfony\Bridge\Doctrine\Logger	.Y|jSymfony\Bridge\Doctrine\HttpFoundation	)O|jSymfony\Bridge\Doctrine\Form\Type	2a|jSymfony\Bridge\Doctrine\Form\EventListener	4e|jSymfony\Bridge\Doctrine\Form\DataTransformer	/[|jSymfony\Bridge\Doctrine\Form\ChoiceList	$E|jSymfony\Bridge\Doctrine\Form	J|jSymfony\Bridge\Doctrine\DependencyInjection\Security\UserProvider	@}|jSymfony\Bridge\Doctrine\DependencyInjection\CompilerPass	3c|jSymfony\Bridge\Doctrine\DependencyInjection	,U|jSymfony\Bridge\Doctrine\DataFixtures	-W|jSymfony\Bridge\Doctrine\DataCollector	+S|jSymfony\Bridge\Doctrine\CacheWarmer	;|jSymfony\Bridge\Doctrine	#|jNamespaced2
k!|jNamespaced
j9|jNamespaceCollision\C\B
c5|jNamespaceCollision\C
]9|jNamespaceCollision\A\B
b5|jNamespaceCollision\A
\|jFoo\Bar
h|jFoo
l#|jContainer14
1|jClassesWithParents
d|jClassMap
i|jBeta
g)|jApc\Namespaced
a"A|jApc\NamespaceCollision\A\B
` =|jApc\NamespaceCollision\A
_|jAlpha
fL|jAcme\DemoBundle\Proxy\__CG__\Symfony\Component\Security\Tests\Core\QK|jAcme\DemoBundle\Proxy\__CG__\Symfony\Component\Security\Tests\Acl\B|j
e|]globalE.Y|]TestBundle\Sensio\FooBundle\Controller#C|]TestBundle\Sensio\FooBundle2a|]TestBundle\Sensio\Cms\FooBundle\Controller'K|]TestBundle\Sensio\Cms\FooBundle,U|]TestBundle\FooBundle\Controller\Test+S|]TestBundle\FooBundle\Controller\Sub'K|]TestBundle\FooBundle\Controller5|]TestBundle\FooBundle .Y|]TestBundle\Fabpot\FooBundle\Controller#C|]TestBundle\Fabpot\FooBundle$E|]Symfony\Component\Yaml\Testsg(M|]Symfony\Component\Yaml\Exceptionf9|]Symfony\Component\Yamle8m|]Symfony\Component\Validator\Tests\Mapping\Loaderd7k|]Symfony\Component\Validator\Tests\Mapping\Cacheb1_|]Symfony\Component\Validator\Tests\Mappingc2a|]Symfony\Component\Validator\Tests\Fixturesa5g|]Symfony\Component\Validator\Tests\Constraints_)O|]Symfony\Component\Validator\Tests`2a|]Symfony\Component\Validator\Mapping\Loader^1_|]Symfony\Component\Validator\Mapping\Cache]+S|]Symfony\Component\Validator\Mapping\-W|]Symfony\Component\Validator\Exception[:q|]Symfony\Component\Validator\Constraints\CollectionZ/[|]Symfony\Component\Validator\ConstraintsY#C|]Symfony\Component\ValidatorX,U|]Symfony\Component\Translation\WriterW2a|]Symfony\Component\Translation\Tests\LoaderV2a|]Symfony\Component\Translation\Tests\DumperT+S|]Symfony\Component\Translation\TestsU,U|]Symfony\Component\Translation\LoaderS/[|]Symfony\Component\Translation\ExtractorQ   |]%G|jSymfony\Bridge\Propel1\Logger	
   H  zPnM,Z,T%T


z
H
			r	E	^_QQb.dx8\                W)|jSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\CsrfFormLoginBundle\Form
9]5|jSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\CsrfFormLoginBundle\Controller
7R|jSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\CsrfFormLoginBundle
86i|jSymfony\Bundle\SecurityBundle\Tests\Functional
6Q|jSymfony\Bundle\SecurityBundle\Tests\DependencyInjection\Security\Factory
5?{|jSymfony\Bundle\SecurityBundle\Tests\DependencyInjection
47k|jSymfony\Bundle\SecurityBundle\Templating\Helper
3.Y|jSymfony\Bundle\SecurityBundle\Security
13c|jSymfony\Bundle\SecurityBundle\EventListener
0P|jSymfony\Bundle\SecurityBundle\DependencyInjection\Security\UserProvider
/K|jSymfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory
.C|jSymfony\Bundle\SecurityBundle\DependencyInjection\Compiler
,9o|jSymfony\Bundle\SecurityBundle\DependencyInjection
-3c|jSymfony\Bundle\SecurityBundle\DataCollector
+-W|jSymfony\Bundle\SecurityBundle\Command
*%G|jSymfony\Bundle\SecurityBundle
20]|jSymfony\Bundle\FrameworkBundle\Validator
)2a|jSymfony\Bundle\FrameworkBundle\Translation
(6i|jSymfony\Bundle\FrameworkBundle\Tests\Validator
'8m|jSymfony\Bundle\FrameworkBundle\Tests\Translation
&>y|jSymfony\Bundle\FrameworkBundle\Tests\Templating\Loader
$H|jSymfony\Bundle\FrameworkBundle\Tests\Templating\Helper\Fixtures
#>y|jSymfony\Bundle\FrameworkBundle\Tests\Templating\Helper
"7k|jSymfony\Bundle\FrameworkBundle\Tests\Templating
%4e|jSymfony\Bundle\FrameworkBundle\Tests\Routing
!U%|jSymfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\Controller
J|jSymfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle
 7k|jSymfony\Bundle\FrameworkBundle\Tests\Functional
@}|jSymfony\Bundle\FrameworkBundle\Tests\Fixtures\BaseBundle
:q|jSymfony\Bundle\FrameworkBundle\Tests\EventListener
J|jSymfony\Bundle\FrameworkBundle\Tests\DependencyInjection\Compiler
@}|jSymfony\Bundle\FrameworkBundle\Tests\DependencyInjection
7k|jSymfony\Bundle\FrameworkBundle\Tests\Controller
4e|jSymfony\Bundle\FrameworkBundle\Tests\Console
8m|jSymfony\Bundle\FrameworkBundle\Tests\CacheWarmer
,U|jSymfony\Bundle\FrameworkBundle\Tests
+S|jSymfony\Bundle\FrameworkBundle\Test
8m|jSymfony\Bundle\FrameworkBundle\Templating\Loader

8m|jSymfony\Bundle\FrameworkBundle\Templating\Helper
	7k|jSymfony\Bundle\FrameworkBundle\Templating\Asset
1_|jSymfony\Bundle\FrameworkBundle\Templating
.Y|jSymfony\Bundle\FrameworkBundle\Routing
0]|jSymfony\Bundle\FrameworkBundle\HttpCache
4e|jSymfony\Bundle\FrameworkBundle\EventListener
D|jSymfony\Bundle\FrameworkBundle\DependencyInjection\Compiler
:q|jSymfony\Bundle\FrameworkBundle\DependencyInjection
4e|jSymfony\Bundle\FrameworkBundle\DataCollector
1_|jSymfony\Bundle\FrameworkBundle\Controller
 .Y|jSymfony\Bundle\FrameworkBundle\Console	.Y|jSymfony\Bundle\FrameworkBundle\Command	2a|jSymfony\Bundle\FrameworkBundle\CacheWarmer	&I|jSymfony\Bundle\FrameworkBundle	'K|jSymfony\Bridge\Twig\Translation	'K|jSymfony\Bridge\Twig\TokenParser	-W|jSymfony\Bridge\Twig\Tests\Translation	-W|jSymfony\Bridge\Twig\Tests\NodeVisitor	&I|jSymfony\Bridge\Twig\Tests\Node	4e|jSymfony\Bridge\Twig\Tests\Extension\Fixtures	+S|jSymfony\Bridge\Twig\Tests\Extension	!?|jSymfony\Bridge\Twig\Tests	'K|jSymfony\Bridge\Twig\NodeVisitor	 =|jSymfony\Bridge\Twig\Node	 =|jSymfony\Bridge\Twig\Form	%G|jSymfony\Bridge\Twig\Extension	3|jSymfony\Bridge\Twig	0]|jSymfony\Bridge\Swiftmailer\DataCollector	9o|jSymfony\Bridge\Propel1\Tests\Form\DataTransformer	4e|jSymfony\Bridge\Propel1\Tests\Form\ChoiceList	)O|jSymfony\Bridge\Propel1\Tests\Form	-W|jSymfony\Bridge\Propel1\Tests\Fixtures	2a|jSymfony\Bridge\Propel1\Tests\DataCollector	$E|jSymfony\Bridge\Propel1\Tests	
   O  {i;Gp4z=


k
'				b	<	Y.IsJ"xFe5
Hn3L                       *Q|jSymfony\Component\DomCrawler\Tests
$E|jSymfony\Component\DomCrawler
@}|jSymfony\Component\DependencyInjection\Tests\ParameterBag
:q|jSymfony\Component\DependencyInjection\Tests\Loader
:q|jSymfony\Component\DependencyInjection\Tests\Dumper
<u|jSymfony\Component\DependencyInjection\Tests\Compiler
3c|jSymfony\Component\DependencyInjection\Tests
:q|jSymfony\Component\DependencyInjection\ParameterBag
4e|jSymfony\Component\DependencyInjection\Loader
7k|jSymfony\Component\DependencyInjection\Extension7k|jSymfony\Component\DependencyInjection\Exception
4e|jSymfony\Component\DependencyInjection\Dumper
6i|jSymfony\Component\DependencyInjection\Compiler
-W|jSymfony\Component\DependencyInjection
0]|jSymfony\Component\CssSelector\Tests\Node
+S|jSymfony\Component\CssSelector\Tests
*Q|jSymfony\Component\CssSelector\Node
/[|jSymfony\Component\CssSelector\Exception
%G|jSymfony\Component\CssSelector
.Y|jSymfony\Component\Console\Tests\Tester
.Y|jSymfony\Component\Console\Tests\Output
-W|jSymfony\Component\Console\Tests\Input
.Y|jSymfony\Component\Console\Tests\Helper
1_|jSymfony\Component\Console\Tests\Formatter
/[|jSymfony\Component\Console\Tests\Command
'K|jSymfony\Component\Console\Tests
(M|jSymfony\Component\Console\Tester
(M|jSymfony\Component\Console\Output
~'K|jSymfony\Component\Console\Input
}(M|jSymfony\Component\Console\Helper
|+S|jSymfony\Component\Console\Formatter
{)O|jSymfony\Component\Console\Command
z!?|jSymfony\Component\Console
y/[|jSymfony\Component\Config\Tests\Resource
x-W|jSymfony\Component\Config\Tests\Loader
w9o|jSymfony\Component\Config\Tests\Definition\Builder
u1_|jSymfony\Component\Config\Tests\Definition
t&I|jSymfony\Component\Config\Tests
v)O|jSymfony\Component\Config\Resource
s'K|jSymfony\Component\Config\Loader
r*Q|jSymfony\Component\Config\Exception
q5g|jSymfony\Component\Config\Definition\Exception
p3c|jSymfony\Component\Config\Definition\Builder
o+S|jSymfony\Component\Config\Definition
n =|jSymfony\Component\Config
m+S|jSymfony\Component\ClassLoader\Tests
[%G|jSymfony\Component\ClassLoader
Z*Q|jSymfony\Component\BrowserKit\Tests
Y$E|jSymfony\Component\BrowserKit
X7k|jSymfony\Bundle\WebProfilerBundle\Tests\Profiler
U<u|jSymfony\Bundle\WebProfilerBundle\Tests\EventListener
TC|jSymfony\Bundle\WebProfilerBundle\Tests\DependencyInjection
S9o|jSymfony\Bundle\WebProfilerBundle\Tests\Controller
R.Y|jSymfony\Bundle\WebProfilerBundle\Tests
V1_|jSymfony\Bundle\WebProfilerBundle\Profiler
Q6i|jSymfony\Bundle\WebProfilerBundle\EventListener
P<u|jSymfony\Bundle\WebProfilerBundle\DependencyInjection
O3c|jSymfony\Bundle\WebProfilerBundle\Controller
N(M|jSymfony\Bundle\WebProfilerBundle
W-W|jSymfony\Bundle\TwigBundle\TokenParser
L.Y|jSymfony\Bundle\TwigBundle\Tests\Loader
J;s|jSymfony\Bundle\TwigBundle\Tests\DependencyInjection
I2a|jSymfony\Bundle\TwigBundle\Tests\Controller
H'K|jSymfony\Bundle\TwigBundle\Tests
K&I|jSymfony\Bundle\TwigBundle\Node
G(M|jSymfony\Bundle\TwigBundle\Loader
F+S|jSymfony\Bundle\TwigBundle\Extension
E>y|jSymfony\Bundle\TwigBundle\DependencyInjection\Compiler
C5g|jSymfony\Bundle\TwigBundle\DependencyInjection
D'K|jSymfony\Bundle\TwigBundle\Debug
B,U|jSymfony\Bundle\TwigBundle\Controller
A)O|jSymfony\Bundle\TwigBundle\Command
@-W|jSymfony\Bundle\TwigBundle\CacheWarmer
?!?|jSymfony\Bundle\TwigBundle
M4e|jSymfony\Bundle\SecurityBundle\Twig\Extension
>W)|jSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FormLoginBundle\Security
=b?|jSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FormLoginBundle\DependencyInjection
;Y-|jSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FormLoginBundle\Controller
:*Q|jSymfony\Component\DomCrawler\Field

 H  uE yO(Y+{?p4


E
			b	!mH#`b)NmCY(}<c"                >y|jSymfony\Component\HttpFoundation\Tests\Session\Storage
<u|jSymfony\Component\HttpFoundation\Tests\Session\Flash
@}|jSymfony\Component\HttpFoundation\Tests\Session\Attribute
6i|jSymfony\Component\HttpFoundation\Tests\Session
3c|jSymfony\Component\HttpFoundation\Tests\File
.Y|jSymfony\Component\HttpFoundation\Tests
>y|jSymfony\Component\HttpFoundation\Session\Storage\Proxy
@}|jSymfony\Component\HttpFoundation\Session\Storage\Handler
8m|jSymfony\Component\HttpFoundation\Session\Storage
6i|jSymfony\Component\HttpFoundation\Session\Flash
:q|jSymfony\Component\HttpFoundation\Session\Attribute
0]|jSymfony\Component\HttpFoundation\Session
6i|jSymfony\Component\HttpFoundation\File\MimeType
7k|jSymfony\Component\HttpFoundation\File\Exception
-W|jSymfony\Component\HttpFoundation\File
(M|jSymfony\Component\HttpFoundation
#C|jSymfony\Component\Form\Util
)O|jSymfony\Component\Form\Tests\Util
*Q|jSymfony\Component\Form\Tests\Guess
-W|jSymfony\Component\Form\Tests\Fixtures
I|jSymfony\Component\Form\Tests\Extension\Validator\ViolationMapper
=w|jSymfony\Component\Form\Tests\Extension\Validator\Type
G	|jSymfony\Component\Form\Tests\Extension\Validator\EventListener
E|jSymfony\Component\Form\Tests\Extension\Validator\Constraints
L|jSymfony\Component\Form\Tests\Extension\HttpFoundation\EventListener
8m|jSymfony\Component\Form\Tests\Extension\Csrf\Type
A|jSymfony\Component\Form\Tests\Extension\Csrf\EventListener
@}|jSymfony\Component\Form\Tests\Extension\Csrf\CsrfProvider
8m|jSymfony\Component\Form\Tests\Extension\Core\Type
A|jSymfony\Component\Form\Tests\Extension\Core\EventListener
D|jSymfony\Component\Form\Tests\Extension\Core\DataTransformer
>y|jSymfony\Component\Form\Tests\Extension\Core\DataMapper
>y|jSymfony\Component\Form\Tests\Extension\Core\ChoiceList
$E|jSymfony\Component\Form\Tests
$E|jSymfony\Component\Form\Guess
C|jSymfony\Component\Form\Extension\Validator\ViolationMapper
7k|jSymfony\Component\Form\Extension\Validator\Util
7k|jSymfony\Component\Form\Extension\Validator\Type
@}|jSymfony\Component\Form\Extension\Validator\EventListener
>y|jSymfony\Component\Form\Extension\Validator\Constraints
2a|jSymfony\Component\Form\Extension\Validator
3c|jSymfony\Component\Form\Extension\Templating
<u|jSymfony\Component\Form\Extension\HttpFoundation\Type
F|jSymfony\Component\Form\Extension\HttpFoundation\EventListener
7k|jSymfony\Component\Form\Extension\HttpFoundation
<u|jSymfony\Component\Form\Extension\DependencyInjection
2a|jSymfony\Component\Form\Extension\Csrf\Type
;s|jSymfony\Component\Form\Extension\Csrf\EventListener
:q|jSymfony\Component\Form\Extension\Csrf\CsrfProvider
-W|jSymfony\Component\Form\Extension\Csrf
2a|jSymfony\Component\Form\Extension\Core\View
2a|jSymfony\Component\Form\Extension\Core\Type
;s|jSymfony\Component\Form\Extension\Core\EventListener
=w|jSymfony\Component\Form\Extension\Core\DataTransformer
8m|jSymfony\Component\Form\Extension\Core\DataMapper
8m|jSymfony\Component\Form\Extension\Core\ChoiceList
-W|jSymfony\Component\Form\Extension\Core
(M|jSymfony\Component\Form\Exception
$E|jSymfony\Component\Form\Event
9|jSymfony\Component\Form
/[|jSymfony\Component\Finder\Tests\Iterator
1_|jSymfony\Component\Finder\Tests\Comparator
&I|jSymfony\Component\Finder\Tests
)O|jSymfony\Component\Finder\Iterator
+S|jSymfony\Component\Finder\Comparator
 =|jSymfony\Component\Finder
*Q|jSymfony\Component\Filesystem\Tests
.Y|jSymfony\Component\Filesystem\Exception
$E|jSymfony\Component\Filesystem
/[|jSymfony\Component\EventDispatcher\Tests
/[|jSymfony\Component\EventDispatcher\Debug)O|jSymfony\Component\EventDispatcher
   1|jSymfony\Component\DomCrawler\Tests\Field

 L  rM!b/m>[#P


c
		m	PtM!qEvCd3W'e8z:                             <u|jSymfony\Component\Security\Core\Authentication\Token,A|jSymfony\Component\Security\Core\Authentication\RememberMe+?{|jSymfony\Component\Security\Core\Authentication\Provider*6i|jSymfony\Component\Security\Core\Authentication)'K|jSymfony\Component\Security\Core-,U|jSymfony\Component\Security\Acl\Voter(1_|jSymfony\Component\Security\Acl\Permission',U|jSymfony\Component\Security\Acl\Model0]|jSymfony\Component\Security\Acl\Exception&-W|jSymfony\Component\Security\Acl\Domain%+S|jSymfony\Component\Security\Acl\Dbal$6i|jSymfony\Component\Routing\Tests\Matcher\Dumper#/[|jSymfony\Component\Routing\Tests\Matcher".Y|jSymfony\Component\Routing\Tests\Loader!8m|jSymfony\Component\Routing\Tests\Generator\Dumper1_|jSymfony\Component\Routing\Tests\Generator A|jSymfony\Component\Routing\Tests\Fixtures\AnnotatedClasses0]|jSymfony\Component\Routing\Tests\Fixtures2a|jSymfony\Component\Routing\Tests\Annotation'K|jSymfony\Component\Routing\Tests0]|jSymfony\Component\Routing\Matcher\Dumper)O|jSymfony\Component\Routing\Matcher(M|jSymfony\Component\Routing\Loader2a|jSymfony\Component\Routing\Generator\Dumper+S|jSymfony\Component\Routing\Generator+S|jSymfony\Component\Routing\Exception,U|jSymfony\Component\Routing\Annotation!?|jSymfony\Component\Routing'K|jSymfony\Component\Process\Tests+S|jSymfony\Component\Process\Exception!?|jSymfony\Component\Process/[|jSymfony\Component\OptionsResolver\Tests3c|jSymfony\Component\OptionsResolver\Exception)O|jSymfony\Component\OptionsResolver+S|jSymfony\Component\Locale\Tests\Stub&I|jSymfony\Component\Locale\Tests0]|jSymfony\Component\Locale\Stub\DateFormat	%G|jSymfony\Component\Locale\Stub
*Q|jSymfony\Component\Locale\Exception =|jSymfony\Component\Locale8m|jSymfony\Component\HttpKernel\Tests\Profiler\Mock3c|jSymfony\Component\HttpKernel\Tests\Profiler4e|jSymfony\Component\HttpKernel\Tests\HttpCache_9|jSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\DependencyInjectionS!|jSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\Command K|jSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle^7|jSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionLoadedBundle\DependencyInjection
J|jSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionLoadedBundle
J|jSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionAbsentBundle
3c|jSymfony\Component\HttpKernel\Tests\Fixtures4e|jSymfony\Component\HttpKernel\Tests\Exception
8m|jSymfony\Component\HttpKernel\Tests\EventListener
0]|jSymfony\Component\HttpKernel\Tests\Debug
8m|jSymfony\Component\HttpKernel\Tests\DataCollector
1_|jSymfony\Component\HttpKernel\Tests\Config
6i|jSymfony\Component\HttpKernel\Tests\CacheWarmer
7k|jSymfony\Component\HttpKernel\Tests\CacheClearer
1_|jSymfony\Component\HttpKernel\Tests\Bundle
*Q|jSymfony\Component\HttpKernel\Tests
-W|jSymfony\Component\HttpKernel\Profiler
(M|jSymfony\Component\HttpKernel\Log
.Y|jSymfony\Component\HttpKernel\HttpCache
.Y|jSymfony\Component\HttpKernel\Exception
2a|jSymfony\Component\HttpKernel\EventListener
*Q|jSymfony\Component\HttpKernel\Event
8m|jSymfony\Component\HttpKernel\DependencyInjection
*Q|jSymfony\Component\HttpKernel\Debug
2a|jSymfony\Component\HttpKernel\DataCollector
/[|jSymfony\Component\HttpKernel\Controller
+S|jSymfony\Component\HttpKernel\Config
0]|jSymfony\Component\HttpKernel\CacheWarmer
1_|jSymfony\Component\HttpKernel\CacheClearer
+S|jSymfony\Component\HttpKernel\Bundle
$E|jSymfony\Component\HttpKernel
E|jSymfony\Component\HttpFoundation\Tests\Session\Storage\Proxy
   	|jSymfony\Co5g|jSymfony\Component\Security\Core\Authorization.
   O  Q$e.f7n6f


V
			x	E	wB	X-k@\*rBV2m;uC     (M|jSymfony\Component\Yaml\Exception8m|jSymfony\Component\Validator\Tests\Mapping\Loader}7k|jSymfony\Component\Validator\Tests\Mapping\Cache{1_|jSymfony\Component\Validator\Tests\Mapping|2a|jSymfony\Component\Validator\Tests\Fixturesz5g|jSymfony\Component\Validator\Tests\Constraintsx)O|jSymfony\Component\Validator\Testsy2a|jSymfony\Component\Validator\Mapping\Loaderw1_|jSymfony\Component\Validator\Mapping\Cachev+S|jSymfony\Component\Validator\Mappingu-W|jSymfony\Component\Validator\Exceptiont:q|jSymfony\Component\Validator\Constraints\Collections/[|jSymfony\Component\Validator\Constraintsr#C|jSymfony\Component\Validatorq,U|jSymfony\Component\Translation\Writerp2a|jSymfony\Component\Translation\Tests\Loadero2a|jSymfony\Component\Translation\Tests\Dumperm+S|jSymfony\Component\Translation\Testsn,U|jSymfony\Component\Translation\Loaderl/[|jSymfony\Component\Translation\Extractorj,U|jSymfony\Component\Translation\Dumperi%G|jSymfony\Component\Translationk2a|jSymfony\Component\Templating\Tests\Storageh1_|jSymfony\Component\Templating\Tests\Loaderf1_|jSymfony\Component\Templating\Tests\Helpere3c|jSymfony\Component\Templating\Tests\Fixturesd*Q|jSymfony\Component\Templating\Testsg,U|jSymfony\Component\Templating\Storagec+S|jSymfony\Component\Templating\Loaderb+S|jSymfony\Component\Templating\Helpera*Q|jSymfony\Component\Templating\Asset_$E|jSymfony\Component\Templating`5g|jSymfony\Component\Serializer\Tests\Normalizer]3c|jSymfony\Component\Serializer\Tests\Fixtures\2a|jSymfony\Component\Serializer\Tests\Encoder[*Q|jSymfony\Component\Serializer\Tests^/[|jSymfony\Component\Serializer\NormalizerY.Y|jSymfony\Component\Serializer\ExceptionX,U|jSymfony\Component\Serializer\EncoderW$E|jSymfony\Component\SerializerZ8m|jSymfony\Component\Security\Tests\Http\RememberMeV4e|jSymfony\Component\Security\Tests\Http\LogoutU6i|jSymfony\Component\Security\Tests\Http\FirewallS8m|jSymfony\Component\Security\Tests\Http\EntryPointR-W|jSymfony\Component\Security\Tests\HttpT/[|jSymfony\Component\Security\Tests\DomainA2a|jSymfony\Component\Security\Tests\Core\UtilP2a|jSymfony\Component\Security\Tests\Core\UserO2a|jSymfony\Component\Security\Tests\Core\RoleM5g|jSymfony\Component\Security\Tests\Core\EncoderLA|jSymfony\Component\Security\Tests\Core\Authorization\VoterK;s|jSymfony\Component\Security\Tests\Core\AuthorizationJC|jSymfony\Component\Security\Tests\Core\Authentication\TokenIH|jSymfony\Component\Security\Tests\Core\Authentication\RememberMeHF|jSymfony\Component\Security\Tests\Core\Authentication\ProviderG<u|jSymfony\Component\Security\Tests\Core\AuthenticationF-W|jSymfony\Component\Security\Tests\CoreN2a|jSymfony\Component\Security\Tests\Acl\VoterE1_|jSymfony\Component\Security\Tests\Acl\UtilD7k|jSymfony\Component\Security\Tests\Acl\PermissionC3c|jSymfony\Component\Security\Tests\Acl\Domain@1_|jSymfony\Component\Security\Tests\Acl\Dbal?/[|jSymfony\Component\Security\Http\Session>2a|jSymfony\Component\Security\Http\RememberMe=.Y|jSymfony\Component\Security\Http\Logout<0]|jSymfony\Component\Security\Http\Firewall;-W|jSymfony\Component\Security\Http\Event:2a|jSymfony\Component\Security\Http\EntryPoint95g|jSymfony\Component\Security\Http\Authorization6i|jSymfony\Component\Security\Http\Authentication8'K|jSymfony\Component\Security\Http7<u|jSymfony\Component\Security\Core\Validator\Constraint6,U|jSymfony\Component\Security\Core\Util5,U|jSymfony\Component\Security\Core\User4,U|jSymfony\Component\Security\Core\Role31_|jSymfony\Component\Security\Core\Exception2-W|jSymfony\Component\Security\Core\Event1/[|jSymfony\Component\Security\Core\Encoder09|jSymfony\Component\Yaml~
 m  kCk<-tK4
{Oa7



d
C
		u	f	N	*bJ&^F"}ZK3jG8_/y^>)iN.Z=          &I}Doctrine\ORM\Persisters\Entity%2*Q}Doctrine\ORM\Persisters\Collection%15}Doctrine\ORM\Mapping%0+S}Doctrine\ORM\Cache\Persister\Entity%./[}Doctrine\ORM\Cache\Persister\Collection%-$E}Doctrine\ORM\Cache\Persister%,"A}Doctrine\ORM\Cache\Logging%+1}Doctrine\ORM\Cache%*%}Doctrine\ORM%/;}Doctrine\ORM\Repository#1}Doctrine\ORM\Query#1}Doctrine\ORM\Proxy#5}Doctrine\ORM\Mapping#%}Doctrine\ORM#;}Doctrine\ORM\Repository-91}Doctrine\ORM\Query-81}Doctrine\ORM\Proxy-75}Doctrine\ORM\Mapping-6%}Doctrine\ORM-5;}Doctrine\ORM\Repository%A1}Doctrine\ORM\Query%@1}Doctrine\ORM\Proxy%?&I}Doctrine\ORM\Persisters\Entity%>*Q}Doctrine\ORM\Persisters\Collection%=5}Doctrine\ORM\Mapping%<+S}Doctrine\ORM\Cache\Persister\Entity%:/[}Doctrine\ORM\Cache\Persister\Collection%9$E}Doctrine\ORM\Cache\Persister%8"A}Doctrine\ORM\Cache\Logging%71}Doctrine\ORM\Cache%6%}Doctrine\ORM%;'K|Doctrine\Tests\Common\Inflector)|Doctrine\Tests!?|Doctrine\Common\Inflector|global""A|Doctrine\Common\Reflection"'K|Doctrine\Common\Proxy\Exception"7|Doctrine\Common\Proxy"2a|Doctrine\Common\Persistence\Mapping\Driver"+S|Doctrine\Common\Persistence\Mapping"#C|Doctrine\Common\Persistence"+|Doctrine\Common"|global+]"A|Doctrine\Common\Reflection+\'K|Doctrine\Common\Proxy\Exception+Z7|Doctrine\Common\Proxy+[2a|Doctrine\Common\Persistence\Mapping\Driver+Y+S|Doctrine\Common\Persistence\Mapping+X#C|Doctrine\Common\Persistence+W+|Doctrine\Common+V"A|Doctrine\Common\Reflection#'K|Doctrine\Common\Proxy\Exception#7|Doctrine\Common\Proxy#2a|Doctrine\Common\Persistence\Mapping\Driver#+S|Doctrine\Common\Persistence\Mapping##C|Doctrine\Common\Persistence#+|Doctrine\Common#"A|Doctrine\Common\Reflection",'K|Doctrine\Common\Proxy\Exception"*7|Doctrine\Common\Proxy"+2a|Doctrine\Common\Persistence\Mapping\Driver")+S|Doctrine\Common\Persistence\Mapping"(#C|Doctrine\Common\Persistence"'+|Doctrine\Common"&|globalT#|MyProject\Proxies\__CG__\OtherProject\Proxies\__CG__\Doctrine\Tests\Common\<u|MyProject\Proxies\__CG__\OtherProject\Proxies\__CG__;s|MyProject\Proxies\__CG__\Doctrine\Tests\Common\Util =|MyProject\Proxies\__CG__"A|Doctrine\Tests\Common\Util0]|Doctrine\Tests\Common\Reflection\Dummies(M|Doctrine\Tests\Common\Reflection#C|Doctrine\Tests\Common\Proxy1_|Doctrine\Tests\Common\Persistence\Mapping)O|Doctrine\Tests\Common\Persistence7|Doctrine\Tests\Common)|Doctrine\Tests5|Doctrine\Common\Util"A|Doctrine\Common\Reflection'K|Doctrine\Common\Proxy\Exception7|Doctrine\Common\Proxy2a|Doctrine\Common\Persistence\Mapping\Driver+S|Doctrine\Common\Persistence\Mapping)O|Doctrine\Common\Persistence\Event#C|Doctrine\Common\Persistence+|Doctrine\Common|Doctrine+|ClassLoaderTest)O|Doctrine\Tests\Common\Collections)|Doctrine\Tests(M|Doctrine\Common\Collections\Expr#C|Doctrine\Common\Collections7|Doctrine\Common\Cache%)7|Doctrine\Common\Cache*#C|Doctrine\Tests\Common\Cache)|Doctrine\Tests7|Doctrine\Common\Cache|jglobal
^.Y|jTestBundle\Sensio\FooBundle\Controller
#C|jTestBundle\Sensio\FooBundle
2a|jTestBundle\Sensio\Cms\FooBundle\Controller
'K|jTestBundle\Sensio\Cms\FooBundle
,U|jTestBundle\FooBundle\Controller\Test
+S|jTestBundle\FooBundle\Controller\Sub
'K|jTestBundle\FooBundle\Controller
5|jTestBundle\FooBundle
.Y|jTestBundle\Fabpot\FooBundle\Controller
#C|jTestBundle\Fabpot\FooBundle
   
|jSym1}Doctrine\ORM\Proxy%3
   rQB3$mV:jH1|eD-vTA'




z
b
>
					}	Y	@	"jM&x]5iY?'
a6f<,vXH.n^I/ tVG0    #[Aws\S3\EnumT)[Aws\S3\CommandS[Aws\S3R7[Aws\Route53\ExceptionN-[Aws\Route53\EnumM$E[Aws\Route53Domains\ExceptionP1[Aws\Route53DomainsQ#[Aws\Route53O9[Aws\Redshift\ExceptionK/[Aws\Redshift\EnumJ%[Aws\RedshiftL/[Aws\Rds\ExceptionH%[Aws\Rds\EnumG[Aws\RdsI9[Aws\OpsWorks\ExceptionE/[Aws\OpsWorks\EnumD%[Aws\OpsWorksF%G[Aws\MachineLearning\ExceptionB3[Aws\MachineLearningC5[Aws\Lambda\Exception@![Aws\LambdaA/[Aws\Kms\Exception>[Aws\Kms?7[Aws\Kinesis\Exception<-[Aws\Kinesis\Enum;#[Aws\Kinesis="A[Aws\ImportExport\Exception97[Aws\ImportExport\Enum8-[Aws\ImportExport:/[Aws\Iam\Exception6%[Aws\Iam\Enum5[Aws\Iam7)O[Aws\Glacier\Model\MultipartUpload47[Aws\Glacier\Exception2-[Aws\Glacier\Enum1#[Aws\Glacier3/[Aws\Emr\Exception0%[Aws\Emr\Enum/[Aws\Emr.'K[Aws\ElasticTranscoder\Exception-7[Aws\ElasticTranscoder,*Q[Aws\ElasticLoadBalancing\Exception+ =[Aws\ElasticLoadBalancing*&I[Aws\ElasticBeanstalk\Exception)!?[Aws\ElasticBeanstalk\Enum(5[Aws\ElasticBeanstalk'!?[Aws\ElastiCache\Exception&5[Aws\ElastiCache\Enum%+[Aws\ElastiCache$/[Aws\Efs\Exception#[Aws\Efs"/[Aws\Ecs\Exception![Aws\Ecs -[Aws\Ec2\Iterator/[Aws\Ec2\Exception%[Aws\Ec2\Enum[Aws\Ec2,U[Aws\DynamoDb\Session\LockingStrategy5[Aws\DynamoDb\Session'K[Aws\DynamoDb\Model\BatchRequest1[Aws\DynamoDb\Model7[Aws\DynamoDb\Iterator9[Aws\DynamoDb\Exception/[Aws\DynamoDb\Enum%G[Aws\DynamoDbStreams\Exception3[Aws\DynamoDbStreams%[Aws\DynamoDb&I[Aws\DirectoryService\Exception5[Aws\DirectoryService#C[Aws\DirectConnect\Exception9[Aws\DirectConnect\Enum/[Aws\DirectConnect =[Aws\DeviceFarm\Exception)[Aws\DeviceFarm"A[Aws\DataPipeline\Exception
7[Aws\DataPipeline\Enum	-[Aws\DataPipeline#C[Aws\ConfigService\Exception/[Aws\ConfigService/[Aws\Common\Waiter5[Aws\Common\Signature(M[Aws\Common\Model\MultipartUpload3[Aws\Common\Iterator*Q[Aws\Common\InstanceMetadata\Waiter#C[Aws\Common\InstanceMetadata +[Aws\Common\Hash/[Aws\Common\Facade#C[Aws\Common\Exception\Parser5[Aws\Common\Exception+[Aws\Common\Enum9[Aws\Common\Credentials1[Aws\Common\Command/[Aws\Common\Client![Aws\Common!?[Aws\CognitoSync\Exception+[Aws\CognitoSync%G[Aws\CognitoIdentity\Exception3[Aws\CognitoIdentity"A[Aws\CodePipeline\Exception-[Aws\CodePipeline =[Aws\CodeDeploy\Exception)[Aws\CodeDeploy =[Aws\CodeCommit\Exception)[Aws\CodeCommit =[Aws\CloudWatch\Exception3[Aws\CloudWatch\Enum$E[Aws\CloudWatchLogs\Exception1[Aws\CloudWatchLogs)[Aws\CloudWatch =[Aws\CloudTrail\Exception)[Aws\CloudTrail!?[Aws\CloudSearch\Exception5[Aws\CloudSearch\Enum'K[Aws\CloudSearchDomain\Exception7[Aws\CloudSearchDomain+[Aws\CloudSearch9[Aws\CloudHsm\Exception%[Aws\CloudHsm =[Aws\CloudFront\Exception3[Aws\CloudFront\Enum)[Aws\CloudFront$E[Aws\CloudFormation\Exception;[Aws\CloudFormation\Enum1[Aws\CloudFormation!?[Aws\AutoScaling\Exception5[Aws\AutoScaling\Enum+[Aws\AutoScaling$globalglobalrglobals =}Doctrine\Tests\ORM\Tools"01}Doctrine\ORM\Query"/1}Doctrine\ORM\Proxy".5}Doctrine\ORM\Mapping"-;}Doctrine\ORM\Repository%5  -[Aws\S3\ExceptionU
 , zjU;&lRB(l\G-c>'oM6





e
?
'
						i	E	+	bH/|bC"wgR8bA}dFoV8#	|]I.	_D,                  +Aws\S3\Iterator1Aws\S3\Integration<;Aws\S3\Exception\Parser-Aws\S3\Exception#Aws\S3\Enum)Aws\S3\CommandAws\S37Aws\Route53\Exception-Aws\Route53\Enum$EAws\Route53Domains\Exception1Aws\Route53Domains#Aws\Route539Aws\Redshift\Exception/Aws\Redshift\Enum%Aws\Redshift/Aws\Rds\Exception%Aws\Rds\EnumAws\Rds9Aws\OpsWorks\Exception/Aws\OpsWorks\Enum%Aws\OpsWorks7Aws\Kinesis\Exception-Aws\Kinesis\Enum#Aws\Kinesis"AAws\ImportExport\Exception7Aws\ImportExport\Enum-Aws\ImportExport/Aws\Iam\Exception%Aws\Iam\EnumAws\Iam)OAws\Glacier\Model\MultipartUpload7Aws\Glacier\Exception-Aws\Glacier\Enum#Aws\Glacier/Aws\Emr\Exception%Aws\Emr\EnumAws\Emr'KAws\ElasticTranscoder\Exception7Aws\ElasticTranscoder*QAws\ElasticLoadBalancing\Exception =Aws\ElasticLoadBalancing&IAws\ElasticBeanstalk\Exception!?Aws\ElasticBeanstalk\Enum5Aws\ElasticBeanstalk!?Aws\ElastiCache\Exception5Aws\ElastiCache\Enum+Aws\ElastiCache-Aws\Ec2\Iterator/Aws\Ec2\Exception%Aws\Ec2\EnumAws\Ec2,UAws\DynamoDb\Session\LockingStrategy5Aws\DynamoDb\Session'KAws\DynamoDb\Model\BatchRequest1Aws\DynamoDb\Model7Aws\DynamoDb\Iterator =Aws\DynamoDb\Integration9Aws\DynamoDb\Exception/Aws\DynamoDb\Enum%Aws\DynamoDb#CAws\DirectConnect\Exception9Aws\DirectConnect\Enum/Aws\DirectConnect"AAws\DataPipeline\Exception7Aws\DataPipeline\Enum-Aws\DataPipeline/Aws\Common\Waiter5Aws\Common\Signature(MAws\Common\Model\MultipartUpload3Aws\Common\Iterator*QAws\Common\InstanceMetadata\Waiter#CAws\Common\InstanceMetadata+Aws\Common\Hash/Aws\Common\Facade#CAws\Common\Exception\Parser5Aws\Common\Exception+Aws\Common\Enum9Aws\Common\Credentials1Aws\Common\Command/Aws\Common\Client~!Aws\Common}!?Aws\CognitoSync\Exception|+Aws\CognitoSync{%GAws\CognitoIdentity\Exceptionz3Aws\CognitoIdentityy =Aws\CloudWatch\Exceptionv3Aws\CloudWatch\Enumu$EAws\CloudWatchLogs\Exceptionx1Aws\CloudWatchLogsw)Aws\CloudWatcht =Aws\CloudTrail\Exceptions)Aws\CloudTrailr!?Aws\CloudSearch\Exceptiono5Aws\CloudSearch\Enumn'KAws\CloudSearchDomain\Exceptionq7Aws\CloudSearchDomainp+Aws\CloudSearchm =Aws\CloudFront\Exceptionl3Aws\CloudFront\Enumk)Aws\CloudFrontj$EAws\CloudFormation\Exceptioni;Aws\CloudFormation\Enumh1Aws\CloudFormationg!?Aws\AutoScaling\Exceptionf5Aws\AutoScaling\Enume+Aws\AutoScalingd =[Aws\WorkSpaces\Exceptions)[Aws\WorkSpacest/[Aws\Swf\Exceptionq%[Aws\Swf\Enump[Aws\Swfr7[Aws\Support\Exceptionn#[Aws\Supporto/[Aws\Sts\Exceptionl[Aws\Stsm$E[Aws\StorageGateway\Exceptionj;[Aws\StorageGateway\Enumi1[Aws\StorageGatewayk/[Aws\Ssm\Exceptiong[Aws\Ssmh/[Aws\Sqs\Exceptione%[Aws\Sqs\Enumd[Aws\Sqsf*Q[Aws\Sns\MessageValidator\Exceptiona =[Aws\Sns\MessageValidatorb/[Aws\Sns\Exception`[Aws\Snsc9[Aws\SimpleDb\Exception^%[Aws\SimpleDb_/[Aws\Ses\Exception\%[Aws\Ses\Enum[[Aws\Ses]#[Aws\S3\SyncZ$E[Aws\S3\Model\MultipartUploadY%[Aws\S3\ModelX+[Aws\S3\IteratorW   [Aws\%Aws\S3\Model
 u sTD*	d?/tJ)tP&	uL*




{
Z
5
					[	9	
}]1
^0aCmIqP:sL6zM'pV:$                !?Aws\Tests\Ses\IntegrationB'Aws\Tests\SesC3Aws\Tests\S3\WaiterA/Aws\Tests\S3\Sync@*QAws\Tests\S3\Model\MultipartUpload?1Aws\Tests\S3\Model>7Aws\Tests\S3\Iterator= =Aws\Tests\S3\Integration;5Aws\Tests\S3\Command:%Aws\Tests\S39%GAws\Tests\Route53\Integration5,UAws\Tests\Route53Domains\Integration7 =Aws\Tests\Route53Domains8/Aws\Tests\Route536&IAws\Tests\Redshift\Integration31Aws\Tests\Redshift45Aws\Tests\Rds\Waiter2!?Aws\Tests\Rds\Integration0'Aws\Tests\Rds1&IAws\Tests\OpsWorks\Integration.1Aws\Tests\OpsWorks/%GAws\Tests\Kinesis\Integration,/Aws\Tests\Kinesis-*QAws\Tests\ImportExport\Integration*9Aws\Tests\ImportExport)!?Aws\Tests\Iam\Integration('Aws\Tests\Iam' =Aws\Tests\Glacier\Waiter&/[Aws\Tests\Glacier\Model\MultipartUpload%%GAws\Tests\Glacier\Integration$/Aws\Tests\Glacier#!?Aws\Tests\Emr\Integration"'Aws\Tests\Emr!/[Aws\Tests\ElasticTranscoder\Integration #CAws\Tests\ElasticTranscoder2aAws\Tests\ElasticLoadBalancing\Integration&IAws\Tests\ElasticLoadBalancing.YAws\Tests\ElasticBeanstalk\Integration"AAws\Tests\ElasticBeanstalk)OAws\Tests\ElastiCache\Integration7Aws\Tests\ElastiCache9Aws\Tests\Ec2\Iterator!?Aws\Tests\Ec2\Integration'Aws\Tests\Ec2!?Aws\Tests\DynamoDb\Waiter2aAws\Tests\DynamoDb\Session\LockingStrategy"AAws\Tests\DynamoDb\Session-WAws\Tests\DynamoDb\Model\BatchRequest =Aws\Tests\DynamoDb\Model#CAws\Tests\DynamoDb\Iterator&IAws\Tests\DynamoDb\Integration$EAws\Tests\DynamoDb\Exception1Aws\Tests\DynamoDb&IAws\Tests\DynamoDB\Integration+SAws\Tests\DirectConnect\Integration
;Aws\Tests\DirectConnect	*QAws\Tests\DataPipeline\Integration9Aws\Tests\DataPipeline;Aws\Tests\Common\Waiter"AAws\Tests\Common\Signature.YAws\Tests\Common\Model\MultipartUpload!?Aws\Tests\Common\Iterator$EAws\Tests\Common\Integration)OAws\Tests\Common\InstanceMetadata7Aws\Tests\Common\Hash ;Aws\Tests\Common\Facade)OAws\Tests\Common\Exception\Parser"AAws\Tests\Common\Exception$EAws\Tests\Common\Credentials =Aws\Tests\Common\Command;Aws\Tests\Common\Client-Aws\Tests\Common)OAws\Tests\CognitoSync\Integration7Aws\Tests\CognitoSync-WAws\Tests\CognitoIdentity\Integration!?Aws\Tests\CognitoIdentity(MAws\Tests\CloudWatch\Integration,UAws\Tests\CloudWatchLogs\Integration =Aws\Tests\CloudWatchLogs5Aws\Tests\CloudWatch(MAws\Tests\CloudTrail\Integration5Aws\Tests\CloudTrail)OAws\Tests\CloudSearch\Integration#CAws\Tests\CloudSearchDomain7Aws\Tests\CloudSearch#CAws\Tests\CloudFront\Waiter(MAws\Tests\CloudFront\Integration5Aws\Tests\CloudFront,UAws\Tests\CloudFormation\Integration =Aws\Tests\CloudFormation)OAws\Tests\AutoScaling\Integration7Aws\Tests\AutoScalingAws\Tests+/Aws\Swf\Exception%Aws\Swf\EnumAws\Swf7Aws\Support\Exception#Aws\Support/Aws\Sts\ExceptionAws\Sts$EAws\StorageGateway\Exception;Aws\StorageGateway\Enum1Aws\StorageGateway/Aws\Sqs\Exception%Aws\Sqs\EnumAws\Sqs*QAws\Sns\MessageValidator\Exception =Aws\Sns\MessageValidator/Aws\Sns\ExceptionAws\Sns9Aws\SimpleDb\Exception%Aws\SimpleDb/Aws\Ses\Exception%Aws\Ses\EnumAws\Ses#Aws\S3\Sync   
Aws1Aws\Tests\SimpleDbE
    eDgX@#nM5xaF!hU; 




v
R
'
					t	Q	7	gL$jM+y[3#oZ@'	lM=(lS5&zUA1XH3  1Aws\StorageGateway%Aws\Sqs\EnumAws\Sqs*QAws\Sns\MessageValidator\Exception =Aws\Sns\MessageValidator/Aws\Sns\ExceptionAws\Sns9Aws\SimpleDb\Exception%Aws\SimpleDb/Aws\Ses\Exception%Aws\Ses\EnumAws\Ses#Aws\S3\Sync$EAws\S3\Model\MultipartUpload%Aws\S3\Model+Aws\S3\Iterator1Aws\S3\IntegrationM;Aws\S3\Exception\Parser-Aws\S3\Exception#Aws\S3\Enum)Aws\S3\CommandAws\S37Aws\Route53\Exception-Aws\Route53\Enum$EAws\Route53Domains\Exception1Aws\Route53Domains#Aws\Route539Aws\Redshift\Exception/Aws\Redshift\Enum%Aws\Redshift/Aws\Rds\Exception%Aws\Rds\EnumAws\Rds9Aws\OpsWorks\Exception/Aws\OpsWorks\Enum%Aws\OpsWorks7Aws\Kinesis\Exception-Aws\Kinesis\Enum#Aws\Kinesis"AAws\ImportExport\Exception7Aws\ImportExport\Enum-Aws\ImportExport/Aws\Iam\Exception%Aws\Iam\EnumAws\Iam)OAws\Glacier\Model\MultipartUpload7Aws\Glacier\Exception-Aws\Glacier\Enum#Aws\Glacier/Aws\Emr\Exception%Aws\Emr\EnumAws\Emr'KAws\ElasticTranscoder\Exception7Aws\ElasticTranscoder*QAws\ElasticLoadBalancing\Exception =Aws\ElasticLoadBalancing&IAws\ElasticBeanstalk\Exception!?Aws\ElasticBeanstalk\Enum5Aws\ElasticBeanstalk!?Aws\ElastiCache\Exception5Aws\ElastiCache\Enum+Aws\ElastiCache-Aws\Ec2\Iterator/Aws\Ec2\Exception%Aws\Ec2\EnumAws\Ec2,UAws\DynamoDb\Session\LockingStrategy5Aws\DynamoDb\Session'KAws\DynamoDb\Model\BatchRequest1Aws\DynamoDb\Model7Aws\DynamoDb\Iterator =Aws\DynamoDb\Integration9Aws\DynamoDb\Exception/Aws\DynamoDb\Enum%Aws\DynamoDb#CAws\DirectConnect\Exception9Aws\DirectConnect\Enum/Aws\DirectConnect"AAws\DataPipeline\Exception7Aws\DataPipeline\Enum-Aws\DataPipeline/Aws\Common\Waiter5Aws\Common\Signature(MAws\Common\Model\MultipartUpload3Aws\Common\Iterator*QAws\Common\InstanceMetadata\Waiter#CAws\Common\InstanceMetadata+Aws\Common\Hash/Aws\Common\Facade#CAws\Common\Exception\Parser5Aws\Common\Exception+Aws\Common\Enum9Aws\Common\Credentials1Aws\Common\Command/Aws\Common\Client!Aws\Common!?Aws\CognitoSync\Exception+Aws\CognitoSync%GAws\CognitoIdentity\Exception3Aws\CognitoIdentity =Aws\CloudWatch\Exception3Aws\CloudWatch\Enum$EAws\CloudWatchLogs\Exception1Aws\CloudWatchLogs)Aws\CloudWatch =Aws\CloudTrail\Exception)Aws\CloudTrail!?Aws\CloudSearch\Exception5Aws\CloudSearch\Enum'KAws\CloudSearchDomain\Exception7Aws\CloudSearchDomain+Aws\CloudSearch~ =Aws\CloudFront\Exception}3Aws\CloudFront\Enum|)Aws\CloudFront{$EAws\CloudFormation\Exceptionz;Aws\CloudFormation\Enumy1Aws\CloudFormationx!?Aws\AutoScaling\Exceptionw5Aws\AutoScaling\Enumv+Aws\AutoScalinguglobalc!?Aws\Tests\Swf\IntegrationP'Aws\Tests\SwfQ%GAws\Tests\Support\IntegrationN/Aws\Tests\SupportO!?Aws\Tests\Sts\IntegrationL'Aws\Tests\StsM,UAws\Tests\StorageGateway\IntegrationJ =Aws\Tests\StorageGatewayK!?Aws\Tests\Sqs\IntegrationI'Aws\Tests\SqsH&IAws\Tests\Sns\MessageValidatorG!?Aws\Tests\Sns\IntegrationF/Aws\Sqs\Exception
 r  }_O: x[2\?xZ0dD&




c
C
$					k	F	V4rC]CuJ0
sX1qP2~c<mW5          %GAws\Tests\Support\Integration_/Aws\Tests\Support`!?Aws\Tests\Sts\Integration]'Aws\Tests\Sts^,UAws\Tests\StorageGateway\Integration[ =Aws\Tests\StorageGateway\!?Aws\Tests\Sqs\IntegrationZ'Aws\Tests\SqsY&IAws\Tests\Sns\MessageValidatorX!?Aws\Tests\Sns\IntegrationW&IAws\Tests\SimpleDb\IntegrationU1Aws\Tests\SimpleDbV!?Aws\Tests\Ses\IntegrationS'Aws\Tests\SesT3Aws\Tests\S3\WaiterR/Aws\Tests\S3\SyncQ*QAws\Tests\S3\Model\MultipartUploadP1Aws\Tests\S3\ModelO7Aws\Tests\S3\IteratorN =Aws\Tests\S3\IntegrationL5Aws\Tests\S3\CommandK%Aws\Tests\S3J%GAws\Tests\Route53\IntegrationF,UAws\Tests\Route53Domains\IntegrationH =Aws\Tests\Route53DomainsI/Aws\Tests\Route53G&IAws\Tests\Redshift\IntegrationD1Aws\Tests\RedshiftE5Aws\Tests\Rds\WaiterC!?Aws\Tests\Rds\IntegrationA'Aws\Tests\RdsB&IAws\Tests\OpsWorks\Integration?1Aws\Tests\OpsWorks@%GAws\Tests\Kinesis\Integration=/Aws\Tests\Kinesis>*QAws\Tests\ImportExport\Integration;9Aws\Tests\ImportExport:!?Aws\Tests\Iam\Integration9'Aws\Tests\Iam8 =Aws\Tests\Glacier\Waiter7/[Aws\Tests\Glacier\Model\MultipartUpload6%GAws\Tests\Glacier\Integration5/Aws\Tests\Glacier4!?Aws\Tests\Emr\Integration3'Aws\Tests\Emr2/[Aws\Tests\ElasticTranscoder\Integration1#CAws\Tests\ElasticTranscoder02aAws\Tests\ElasticLoadBalancing\Integration/&IAws\Tests\ElasticLoadBalancing..YAws\Tests\ElasticBeanstalk\Integration-"AAws\Tests\ElasticBeanstalk,)OAws\Tests\ElastiCache\Integration+7Aws\Tests\ElastiCache*9Aws\Tests\Ec2\Iterator)!?Aws\Tests\Ec2\Integration('Aws\Tests\Ec2'!?Aws\Tests\DynamoDb\Waiter&2aAws\Tests\DynamoDb\Session\LockingStrategy%"AAws\Tests\DynamoDb\Session$-WAws\Tests\DynamoDb\Model\BatchRequest# =Aws\Tests\DynamoDb\Model"#CAws\Tests\DynamoDb\Iterator!&IAws\Tests\DynamoDb\Integration $EAws\Tests\DynamoDb\Exception1Aws\Tests\DynamoDb&IAws\Tests\DynamoDB\Integration+SAws\Tests\DirectConnect\Integration;Aws\Tests\DirectConnect*QAws\Tests\DataPipeline\Integration9Aws\Tests\DataPipeline;Aws\Tests\Common\Waiter"AAws\Tests\Common\Signature.YAws\Tests\Common\Model\MultipartUpload!?Aws\Tests\Common\Iterator$EAws\Tests\Common\Integration)OAws\Tests\Common\InstanceMetadata7Aws\Tests\Common\Hash;Aws\Tests\Common\Facade)OAws\Tests\Common\Exception\Parser"AAws\Tests\Common\Exception$EAws\Tests\Common\Credentials =Aws\Tests\Common\Command;Aws\Tests\Common\Client-Aws\Tests\Common
)OAws\Tests\CognitoSync\Integration	7Aws\Tests\CognitoSync-WAws\Tests\CognitoIdentity\Integration!?Aws\Tests\CognitoIdentity(MAws\Tests\CloudWatch\Integration,UAws\Tests\CloudWatchLogs\Integration =Aws\Tests\CloudWatchLogs5Aws\Tests\CloudWatch(MAws\Tests\CloudTrail\Integration5Aws\Tests\CloudTrail )OAws\Tests\CloudSearch\Integration#CAws\Tests\CloudSearchDomain7Aws\Tests\CloudSearch#CAws\Tests\CloudFront\Waiter(MAws\Tests\CloudFront\Integration5Aws\Tests\CloudFront,UAws\Tests\CloudFormation\Integration =Aws\Tests\CloudFormation)OAws\Tests\AutoScaling\Integration7Aws\Tests\AutoScalingAws\Tests</Aws\Swf\Exception%Aws\Swf\EnumAws\Swf7Aws\Support\Exception#Aws\Support/Aws\Sts\ExceptionAws\Sts$EAws\StorageGateway\Exception   
Aws'Aws\Tests\Swfb
  mL.hI$~a;zT/nU:"





^
=
						l	Q	3	uY/	tV9pK${jZC.pF!^:~Y1m]7                        + Tests\WordPlate6%E MyBuilder\PhpunitAccelerator* global%E MyBuilder\PhpunitAccelerator global My\Space Foo#A League\OAuth2\Client\Token&G League\OAuth2\Client\Provider#A League\OAuth2\Client\Grant'I League\OAuth2\Client\Exception$C League\OAuth2\Client\Entity#A League\OAuth2\Client\Token&G League\OAuth2\Client\Provider#A League\OAuth2\Client\Grant'I League\OAuth2\Client\Exception$C League\OAuth2\Client\Entity#A League\OAuth1\Client\Tests'I League\OAuth1\Client\Signature$C League\OAuth1\Client\Server)M League\OAuth1\Client\Credentials#A League\OAuth1\Client\Tests'I League\OAuth1\Client\Signature$C League\OAuth1\Client\Server)M League\OAuth1\Client\Credentials# Jamm\Tester/ Jamm\Memory\Tests+ Jamm\Memory\Shm# Jamm\Memory' Jamm\Autoload# }Jamm\Tester/ }Jamm\Memory\Tests+ }Jamm\Memory\Shm# }Jamm\Memory' }Jamm\Autoload tglobal tSmtpapi 2global 2SendGrid 1global 1SendGrid global global!= RMinime\Annotations\Types"? RMinime\Annotations\Traits&G RMinime\Annotations\Interfaces$C RMinime\Annotations\Fixtures1 RMinime\Annotations!= QMinime\Annotations\Types"? QMinime\Annotations\Traits&G QMinime\Annotations\Interfaces$C QMinime\Annotations\Fixtures1 QMinime\Annotations3 #Imagine\Test\Issuesr5 #Imagine\Test\Imagickq!= #Imagine\Test\Image\Pointp)M #Imagine\Test\Image\Palette\Coloro#A #Imagine\Test\Image\Paletten$C #Imagine\Test\Image\Metadatam%E #Imagine\Test\Image\Histograml)M #Imagine\Test\Image\Fill\Gradientk1 #Imagine\Test\Imagej5 #Imagine\Test\Gmagicki+ #Imagine\Test\Gdh ; #Imagine\Test\Functionalg"? #Imagine\Test\Filter\Basice%E #Imagine\Test\Filter\Advancedd3 #Imagine\Test\Filterf5 #Imagine\Test\Effectsc/ #Imagine\Test\Drawb ; #Imagine\Test\Constraint`% #Imagine\Testa+ #Imagine\Imagick_3 #Imagine\Image\Point^$C #Imagine\Image\Palette\Color]7 #Imagine\Image\Palette\9 #Imagine\Image\Metadata[ ; #Imagine\Image\HistogramZ$C #Imagine\Image\Fill\GradientY1 #Imagine\Image\Fillu' #Imagine\ImageX+ #Imagine\GmagickW! #Imagine\GdV5 #Imagine\Filter\BasicT ; #Imagine\Filter\AdvancedS) #Imagine\FilterU/ #Imagine\ExceptionR+ #Imagine\Effectst% #Imagine\Draws3 !Imagine\Test\Issues5 !Imagine\Test\Imagick!= !Imagine\Test\Image\Point)M !Imagine\Test\Image\Palette\Color#A !Imagine\Test\Image\Palette$C !Imagine\Test\Image\Metadata%E !Imagine\Test\Image\Histogram)M !Imagine\Test\Image\Fill\Gradient1 !Imagine\Test\Image5 !Imagine\Test\Gmagick+ !Imagine\Test\Gd ; !Imagine\Test\Functional"? !Imagine\Test\Filter\Basic%E !Imagine\Test\Filter\Advanced3 !Imagine\Test\Filter5 !Imagine\Test\Effects/ !Imagine\Test\Draw ; !Imagine\Test\Constraint% !Imagine\Test+ !Imagine\Imagick3 !Imagine\Image\Point$C !Imagine\Image\Palette\Color7 !Imagine\Image\Palette9 !Imagine\Image\Metadata ; !Imagine\Image\Histogram~$C !Imagine\Image\Fill\Gradient}1 !Imagine\Image\Fill' !Imagine\Image|+ !Imagine\Gmagick{! !Imagine\Gdz5 !Imagine\Filter\Basicx ; !Imagine\Filter\Advancedw) !Imagine\Filtery/ !Imagine\Exceptionv+ !Imagine\Effects% !Imagine\Drawglobalt   5 WordPlate\Components.
   v  _B)wO2udT9zO-	qJ&




`
=
					\	6	jH$xU/k?]*|P$jV@-{^6mI)            )M Behat\Behat\Definition\Exception#[9 Behat\Behat\Definition#Z#A Behat\Behat\Context\Reader#Y(K Behat\Behat\Context\Initializer#X&G Behat\Behat\Context\Exception#W(K Behat\Behat\Context\Environment#V)M Behat\Behat\Context\ContextClass#U%E Behat\Behat\Context\Argument#S'I Behat\Behat\Context\Annotation#R3 Behat\Behat\Context#T globalV globalG globalH globalE globalF global ~global% zglobalC rglobalD Sglobal< Scli\treeB Scli\tableA% Scli\progress@! Scli\notify?' Scli\arguments= Scli> global9 global global global-)M Symfony\Component\VarDumper\Test#+Q Symfony\Component\VarDumper\Dumper#+Q Symfony\Component\VarDumper\Cloner#+Q Symfony\Component\VarDumper\Dumper(,+Q Symfony\Component\VarDumper\Cloner(+)M Symfony\Component\VarDumper\Test(:+Q Symfony\Component\VarDumper\Dumper(9+Q Symfony\Component\VarDumper\Cloner(82_ |Symfony\Component\VarDumper\Tests\Fixture+1] |Symfony\Component\VarDumper\Tests\Caster)*O |Symfony\Component\VarDumper\Tests*)M |Symfony\Component\VarDumper\Test(.W |Symfony\Component\VarDumper\Exception'+Q |Symfony\Component\VarDumper\Dumper&+Q |Symfony\Component\VarDumper\Cloner%+Q |Symfony\Component\VarDumper\Caster$$C |Symfony\Component\VarDumper,3 johnpbloch\Composer ?global"? 9Illuminate\Support\Traits$`"? Illuminate\Support\Traits%%E Illuminate\Support\Contracts%
"? Illuminate\Support\TraitsU#A Illuminate\Support\FacadesS%E Illuminate\Support\ContractsT1 Illuminate\SupportR"? Illuminate\Support\Traits#"? Illuminate\Support\Traits#A Illuminate\Support\Facades!= Illuminate\Support\Debug1 Illuminate\Support7 Illuminate\Filesystem7 Illuminate\Filesystem"? Illuminate\Contracts\View(K Illuminate\Contracts\Validation%E Illuminate\Contracts\Support%E Illuminate\Contracts\Routing#A Illuminate\Contracts\Redis#A Illuminate\Contracts\Queue&G Illuminate\Contracts\Pipeline(K Illuminate\Contracts\Pagination"? Illuminate\Contracts\Mail%E Illuminate\Contracts\Logging"? Illuminate\Contracts\Http
%E Illuminate\Contracts\Hashing	(K Illuminate\Contracts\Foundation(K Illuminate\Contracts\Filesystem$C Illuminate\Contracts\Events(K Illuminate\Contracts\Encryption#A Illuminate\Contracts\Debug&G Illuminate\Contracts\Database$C Illuminate\Contracts\Cookie'I Illuminate\Contracts\Container%E Illuminate\Contracts\Console$C Illuminate\Contracts\Config#A Illuminate\Contracts\Cache!= Illuminate\Contracts\Bus*O Illuminate\Contracts\Broadcasting )M Illuminate\Contracts\Auth\Access"? Illuminate\Contracts\Auth5 TIlluminate\Container5 EIlluminate\Container/ Illuminate\Config%/ Illuminate\Config/ Illuminate\Config global Stringy!= Composer\Installers\Test83 Composer\Installers7!= Composer\Installers\Test;3 Composer\Installers:!= Composer\Installers\Test3 Composer\Installers3 WordPlate\WordPress'I WordPlate\Foundation\Bootstrap5 WordPlate\Foundation5 WordPlate\Exceptions+ WordPlate\Debug#A WordPlate\Console\Commands/ WordPlate\Console5 WordPlate\Components+ Tests\WordPlate3 WordPlate\WordPress5'I WordPlate\Foundation\Bootstrap45 WordPlate\Foundation35 WordPlate\Exceptions2+ WordPlate\Debug1#A WordPlate\Console\Commands0
   c  f= kH$z]6S(mJ+


o
F
				y	U	6	pH"[;hHiM*\?a5
lO,Q(                                        2_ Behat\Testwork\ServiceContainer\Exception%(K Behat\Testwork\ServiceContainer%9m Behat\Testwork\Output\ServiceContainer\Formatter%&G Behat\Testwork\Output\Printer%1] Behat\Testwork\Output\Node\EventListener%(K Behat\Testwork\Output\Exception%7 Behat\Testwork\Output%"? Behat\Testwork\Hook\Scope%~3 Behat\Testwork\Hook%}"? Behat\Testwork\Filesystem%|*O Behat\Testwork\Exception\Stringer%z!= Behat\Testwork\Exception%{-U Behat\Testwork\EventDispatcher\Event%y*O Behat\Testwork\Environment\Reader%x+Q Behat\Testwork\Environment\Handler%w-U Behat\Testwork\Environment\Exception%v#A Behat\Testwork\Environment%u1 Behat\Testwork\Cli%t$C Behat\Testwork\Call\Handler%s#A Behat\Testwork\Call\Filter%r&G Behat\Testwork\Call\Exception%q3 Behat\Testwork\Call%p*O Behat\Testwork\Argument\Exception%o ; Behat\Testwork\Argument%n/Y Behat\Behat\Transformation\Transformer%m-U Behat\Behat\Transformation\Exception%k#A Behat\Behat\Transformation%l"? Behat\Behat\Tester\Result%j1 Behat\Behat\Tester%i$C Behat\Behat\Snippet\Printer%g&G Behat\Behat\Snippet\Generator%f&G Behat\Behat\Snippet\Exception%e%E Behat\Behat\Snippet\Appender%d3 Behat\Behat\Snippet%h(K Behat\Behat\Output\Node\Printer%c9 Behat\Behat\Hook\Scope%b*O Behat\Behat\EventDispatcher\Event%a&G Behat\Behat\Definition\Search%`'I Behat\Behat\Definition\Printer%_.W Behat\Behat\Definition\Pattern\Policy%^)M Behat\Behat\Definition\Exception%]9 Behat\Behat\Definition%\#A Behat\Behat\Context\Reader%[(K Behat\Behat\Context\Initializer%Z&G Behat\Behat\Context\Exception%Y(K Behat\Behat\Context\Environment%X)M Behat\Behat\Context\ContextClass%W%E Behat\Behat\Context\Argument%U'I Behat\Behat\Context\Annotation%T3 Behat\Behat\Context%V$C Behat\Testwork\Tester\Setup#4c Behat\Testwork\Tester\Result\Interpretation#%E Behat\Testwork\Tester\Result#(K Behat\Testwork\Tester\Exception#7 Behat\Testwork\Tester##A Behat\Testwork\Suite\Setup#'I Behat\Testwork\Suite\Generator#5 Behat\Testwork\Suite#-U Behat\Testwork\Specification\Locator#%E Behat\Testwork\Specification#2_ Behat\Testwork\ServiceContainer\Exception#(K Behat\Testwork\ServiceContainer#9m Behat\Testwork\Output\ServiceContainer\Formatter#&G Behat\Testwork\Output\Printer#1] Behat\Testwork\Output\Node\EventListener#(K Behat\Testwork\Output\Exception#}7 Behat\Testwork\Output#~"? Behat\Testwork\Hook\Scope#|3 Behat\Testwork\Hook#{"? Behat\Testwork\Filesystem#z*O Behat\Testwork\Exception\Stringer#x!= Behat\Testwork\Exception#y-U Behat\Testwork\EventDispatcher\Event#w*O Behat\Testwork\Environment\Reader#v+Q Behat\Testwork\Environment\Handler#u-U Behat\Testwork\Environment\Exception#t#A Behat\Testwork\Environment#s1 Behat\Testwork\Cli#r$C Behat\Testwork\Call\Handler#q#A Behat\Testwork\Call\Filter#p&G Behat\Testwork\Call\Exception#o3 Behat\Testwork\Call#n*O Behat\Testwork\Argument\Exception#m ; Behat\Testwork\Argument#l/Y Behat\Behat\Transformation\Transformer#k-U Behat\Behat\Transformation\Exception#i#A Behat\Behat\Transformation#j"? Behat\Behat\Tester\Result#h1 Behat\Behat\Tester#g$C Behat\Behat\Snippet\Printer#e&G Behat\Behat\Snippet\Generator#d&G Behat\Behat\Snippet\Exception#c%E Behat\Behat\Snippet\Appender#b3 Behat\Behat\Snippet#f(K Behat\Behat\Output\Node\Printer#a9 Behat\Behat\Hook\Scope#`*O Behat\Behat\EventDispatcher\Event#_&G Behat\Behat\Definition\Search#^'I Behat\Behat\Definition\Printer#]
   k fB#zZ<lBe>hI*




f
J
0
 
 				y	V	/	yV6`)lR-[1tJX;c?xQ-               1 5Behat\Testwork\Cli#6$C 5Behat\Testwork\Call\Handler#5#A 5Behat\Testwork\Call\Filter#4&G 5Behat\Testwork\Call\Exception#33 5Behat\Testwork\Call#2*O 5Behat\Testwork\Argument\Exception#1 ; 5Behat\Testwork\Argument#0/Y 5Behat\Behat\Transformation\Transformer#/-U 5Behat\Behat\Transformation\Exception#-#A 5Behat\Behat\Transformation#."? 5Behat\Behat\Tester\Result#,1 5Behat\Behat\Tester#+$C 5Behat\Behat\Snippet\Printer#)&G 5Behat\Behat\Snippet\Generator#(&G 5Behat\Behat\Snippet\Exception#'%E 5Behat\Behat\Snippet\Appender#&3 5Behat\Behat\Snippet#*(K 5Behat\Behat\Output\Node\Printer#%9 5Behat\Behat\Hook\Scope#$*O 5Behat\Behat\EventDispatcher\Event##&G 5Behat\Behat\Definition\Search#"'I 5Behat\Behat\Definition\Printer#!.W 5Behat\Behat\Definition\Pattern\Policy# )M 5Behat\Behat\Definition\Exception#9 5Behat\Behat\Definition##A 5Behat\Behat\Context\Reader#(K 5Behat\Behat\Context\Initializer#&G 5Behat\Behat\Context\Exception#(K 5Behat\Behat\Context\Environment#)M 5Behat\Behat\Context\ContextClass#%E 5Behat\Behat\Context\Argument#'I 5Behat\Behat\Context\Annotation#3 5Behat\Behat\Context# globald- Behat\Behat\Util1 Behat\Behat\Tester ; Behat\Behat\Hook\Loader$C Behat\Behat\Hook\Annotation~- Behat\Behat\Hook ; Behat\Behat\HelpPrinter}#A Behat\Behat\Gherkin\Loader|7 Behat\Behat\Formatter{7 Behat\Behat\Extensionz7 Behat\Behat\Exceptiony/ Behat\Behat\Eventx6g Behat\Behat\DependencyInjection\Configurationw1] Behat\Behat\DependencyInjection\Compilerv(K Behat\Behat\DependencyInjectionu(K Behat\Behat\Definition\Proposalt&G Behat\Behat\Definition\Loaders*O Behat\Behat\Definition\Annotationq9 Behat\Behat\Definitionr"? Behat\Behat\DataCollectorp!= Behat\Behat\Context\Stepo#A Behat\Behat\Context\Loadern(K Behat\Behat\Context\Initializer)M Behat\Behat\Context\ClassGuesserm3 Behat\Behat\Contextl&G Behat\Behat\Console\Processork"? Behat\Behat\Console\Inputj&G Behat\Behat\Console\Formatteri$C Behat\Behat\Console\Commandh3 Behat\Behat\Consoleg5 Behat\Behat\Compilerf9 Behat\Behat\Annotatione global- Behat\Behat\Util1 Behat\Behat\Tester ; Behat\Behat\Hook\Loader$C Behat\Behat\Hook\Annotation- Behat\Behat\Hook ; Behat\Behat\HelpPrinter#A Behat\Behat\Gherkin\Loader7 Behat\Behat\Formatter7 Behat\Behat\Extension7 Behat\Behat\Exception/ Behat\Behat\Event6g Behat\Behat\DependencyInjection\Configuration1] Behat\Behat\DependencyInjection\Compiler(K Behat\Behat\DependencyInjection(K Behat\Behat\Definition\Proposal&G Behat\Behat\Definition\Loader*O Behat\Behat\Definition\Annotation9 Behat\Behat\Definition"? Behat\Behat\DataCollector!= Behat\Behat\Context\Step#A Behat\Behat\Context\Loader(K Behat\Behat\Context\Initializer)M Behat\Behat\Context\ClassGuesser3 Behat\Behat\Context&G Behat\Behat\Console\Processor"? Behat\Behat\Console\Input&G Behat\Behat\Console\Formatter$C Behat\Behat\Console\Command3 Behat\Behat\Console5 Behat\Behat\Compiler9 Behat\Behat\Annotation$C Behat\Testwork\Tester\Setup%4c Behat\Testwork\Tester\Result\Interpretation%%E Behat\Testwork\Tester\Result%(K Behat\Testwork\Tester\Exception%7 Behat\Testwork\Tester%#A Behat\Testwork\Suite\Setup%'I Behat\Testwork\Suite\Generator%5 Behat\Testwork\Suite%-U Behat\Testwork\Specification\Locator%  #A 5Behat\Testwork\Environment#7
 x  {M+ ~U#f@`:mO/




k
G
%

							y	i	O	?	%	gL1r[<oP;+~V4}mT4}eK)rW1|Q+    /Y Illuminate\Database\Eloquent\Relations%E Illuminate\Database\Eloquent*O Illuminate\Database\Console\Seeds/Y Illuminate\Database\Console\Migrations'I Illuminate\Database\Connectors$C Illuminate\Database\Capsule3 Illuminate\Database/ nIlluminate\Cookie%E _Illuminate\Cookie\Middleware/ _Illuminate\Cookie1 Illuminate\Console%1 Illuminate\Console$&G Illuminate\Console\Scheduling1 Illuminate\Console!= #Illuminate\Cache\Console- #Illuminate\Cache!= Illuminate\Cache\Console- Illuminate\Cache) Illuminate\Bus-U Illuminate\Broadcasting\Broadcasters ; Illuminate\Broadcasting"? Illuminate\Auth\Passwords
#A Illuminate\Auth\Middleware	 ; Illuminate\Auth\Console9 Illuminate\Auth\Access+ Illuminate\Auth global# Lumen\Tests7 Laravel\Lumen\Testing7 Laravel\Lumen\Routing ; Laravel\Lumen\Providers &G Laravel\Lumen\Http\Middleware1 Laravel\Lumen\Http!= Laravel\Lumen\Exceptions'I Laravel\Lumen\Console\Commands7 Laravel\Lumen\Console' Laravel\Lumen&G Illuminate\Foundation\Testing0[ Illuminate\Foundation\Support\Providers7 Illuminate\Foundation }globalE# }Lumen\TestsD7 }Laravel\Lumen\TestingC7 }Laravel\Lumen\RoutingB ; }Laravel\Lumen\ProvidersA&G }Laravel\Lumen\Http\Middleware?1 }Laravel\Lumen\Http@!= }Laravel\Lumen\Exceptions<'I }Laravel\Lumen\Console\Commands:7 }Laravel\Lumen\Console;' }Laravel\Lumen9&G }Illuminate\Foundation\TestingF0[ }Illuminate\Foundation\Support\Providers>7 }Illuminate\Foundation=3 {phpmock\integration% nphpmock\test# nphpmock\spy/ nphpmock\generator/ nphpmock\functions3 nphpmock\environment nphpmock nfoo+ aphpmock\phpunit1 malkusch\lock\util3 malkusch\lock\mutex ; malkusch\lock\exception global- ^xrstf\Composer52 ^global- ]xrstf\Composer52 ]global Tglobal Pglobal Lglobal' Psy\VarDumper)5% Psy\Readline)4! Psy\Output)3' Psy\Formatter)2' Psy\Exception)1 Psy)0!= Tests\Behat\Gherkin\Node#A Tests\Behat\Gherkin\Loader%E Tests\Behat\Gherkin\Keywords#A Tests\Behat\Gherkin\Filter"? Tests\Behat\Gherkin\Cache3 Tests\Behat\Gherkin1 Behat\Gherkin\Node5 Behat\Gherkin\Loader9 Behat\Gherkin\Keywords5 Behat\Gherkin\Filter ; Behat\Gherkin\Exception5 Behat\Gherkin\Dumper3 Behat\Gherkin\Cache' Behat\Gherkin$C 5Behat\Testwork\Tester\Setup#Q4c 5Behat\Testwork\Tester\Result\Interpretation#P%E 5Behat\Testwork\Tester\Result#O(K 5Behat\Testwork\Tester\Exception#M7 5Behat\Testwork\Tester#N#A 5Behat\Testwork\Suite\Setup#K'I 5Behat\Testwork\Suite\Generator#J5 5Behat\Testwork\Suite#L-U 5Behat\Testwork\Specification\Locator#H%E 5Behat\Testwork\Specification#I2_ 5Behat\Testwork\ServiceContainer\Exception#F(K 5Behat\Testwork\ServiceContainer#G9m 5Behat\Testwork\Output\ServiceContainer\Formatter#E&G 5Behat\Testwork\Output\Printer#D1] 5Behat\Testwork\Output\Node\EventListener#C(K 5Behat\Testwork\Output\Exception#A7 5Behat\Testwork\Output#B"? 5Behat\Testwork\Hook\Scope#@3 5Behat\Testwork\Hook#?"? 5Behat\Testwork\Filesystem#>*O 5Behat\Testwork\Exception\Stringer#<!= 5Behat\Testwork\Exception#=-U 5Behat\Testwork\EventDispatcher\Event#;*O 5Behat\Testwork\Environment\Reader#:+Q 5Behat\Testwork\Environment\Handler#9    'I Illuminate\Database\Migrations
 4 _2Z4|c@fD#qU1




v
R
9
						v	c	P	/	iJ8lWM-"{qQF9){hXE5%ueUE5+ubP4'qJscO4  / ;Symfony\CS\Linter%! ;Symfony\CS% global" Foo"1 ClassesWithParents" ClassMap"	 " global' Foo'1 ClassesWithParents' ClassMap'	 ' global,S Symfony\Component\ClassLoader\Tests&G Symfony\Component\ClassLoader# Namespaced2! Namespaced9 NamespaceCollision\C\B5 NamespaceCollision\C9 NamespaceCollision\A\B5 NamespaceCollision\A Foo\Bar Foo1 ClassesWithParents ClassMap ClassCons  Beta) Apc\Namespaced#A Apc\NamespaceCollision\A\B!= Apc\NamespaceCollision\A Alpha$C Acme\DemoLib\Lets\Go\Deeper% Acme\DemoLib	  qglobal bglobal global global global global global global global global mglobal Wglobal Sglobal 4global )global %global global Detection global Detection Markdown Markdown global5 Tester\Runner\Output' Tester\Runner'I Tester\CodeCoverage\Generators3 Tester\CodeCoverage Tester N\S
 N9 CloverXMLGeneratorTest	  global5 Tester\Runner\Output' Tester\Runner'I Tester\CodeCoverage\Generators3 Tester\CodeCoverage Tester N\S
 N9 CloverXMLGeneratorTest	 # Nette\Utils1 Nette\Localization+ Nette\Iterators Nette1 Nette\PhpGenerator! Nette\Neon3 xNette\DI\Extensions!= xNette\DI\Config\Adapters+ xNette\DI\Config xNette\DI7 xNette\Bridges\DITracy3 rNette\DI\Extensions!= rNette\DI\Config\Adapters+ rNette\DI\Config rNette\DI7 rNette\Bridges\DITracy7 'FastRoute\RouteParserM5 'FastRoute\DispatcherL ; 'FastRoute\DataGeneratorK 'FastRouteJ %FastRoute,R! Cron\TestsH CronG ; Illuminate\View\Engines"? Illuminate\View\Compilers+ Illuminate\View ; Illuminate\View\Engines#"? Illuminate\View\Compilers#+ Illuminate\View##A Illuminate\View\Middleware8 ; Illuminate\View\Engines6"? Illuminate\View\Compilers5+ Illuminate\View77 FIlluminate\Validation+7 7Illuminate\Validation49 Illuminate\Translation3#A TIlluminate\Session\Console1 TIlluminate\Session1 RIlluminate\Session"&G EIlluminate\Session\Middleware2#A EIlluminate\Session\Console11 EIlluminate\Session0 global.7 Illuminate\Queue\Jobs/ ; Illuminate\Queue\Failed-!= Illuminate\Queue\Console,$C Illuminate\Queue\Connectors+!= Illuminate\Queue\Capsule*- Illuminate\Queue)3 Illuminate\Pipeline(7 Illuminate\Pagination'+ OIlluminate\Http"#A BIlluminate\Http\Middleware&"? BIlluminate\Http\Exception$+ BIlluminate\Http%1 Illuminate\Hashing#/ aIlluminate\Events/ RIlluminate\Events"7 Illuminate\Encryption7 Illuminate\Encryption!'I Illuminate\Database\Migrations+%E Illuminate\Database\Eloquent+'I Illuminate\Database\Connectors+3 Illuminate\Database+'I Illuminate\Database\Migrations"%E Illuminate\Database\Eloquent"'I Illuminate\Database\Connectors"3 Illuminate\Database",S Illuminate\Database\Schema\Grammars #A Illuminate\Database\Schema-U Illuminate\Database\Query\Processors+Q Illuminate\Database\Query\Grammars   5 ;Symfony\CS\Tokenizer%	
 r  mR6z[9rM(i?,cD%




e
E
					b	2	sQ/
dCg9z`>zQ0yT&wgM+	g>        )M WCartalyst\Sentry\Groups\Eloquent! ; WCartalyst\Sentry\Groups!(K WCartalyst\Sentry\Facades\Native!)M WCartalyst\Sentry\Facades\Laravel!(K WCartalyst\Sentry\Facades\Kohana!)M WCartalyst\Sentry\Facades\FuelPHP! $C WCartalyst\Sentry\Facades\CI != WCartalyst\Sentry\Facades != WCartalyst\Sentry\Cookies - WCartalyst\Sentry! Sglobalj SFuel\Corel&G SCartalyst\Sentry\Users\Kohanai(K SCartalyst\Sentry\Users\Eloquentg9 SCartalyst\Sentry\Usersh+Q SCartalyst\Sentry\Throttling\Kohanaf-U SCartalyst\Sentry\Throttling\Eloquentd$C SCartalyst\Sentry\Throttlinge9 SCartalyst\Sentry\Testsk"? SCartalyst\Sentry\Sessionsc!= SCartalyst\Sentry\Hashinga'I SCartalyst\Sentry\Groups\Kohana`)M SCartalyst\Sentry\Groups\Eloquent^ ; SCartalyst\Sentry\Groups_(K SCartalyst\Sentry\Facades\Native])M SCartalyst\Sentry\Facades\Laravel\(K SCartalyst\Sentry\Facades\Kohana[)M SCartalyst\Sentry\Facades\FuelPHPZ$C SCartalyst\Sentry\Facades\CIX!= SCartalyst\Sentry\FacadesY!= SCartalyst\Sentry\CookiesW- SCartalyst\Sentryb Rglobal RFuel\Core&G RCartalyst\Sentry\Users\Kohana(K RCartalyst\Sentry\Users\Eloquent}9 RCartalyst\Sentry\Users~+Q RCartalyst\Sentry\Throttling\Kohana|-U RCartalyst\Sentry\Throttling\Eloquentz$C RCartalyst\Sentry\Throttling{9 RCartalyst\Sentry\Tests"? RCartalyst\Sentry\Sessionsy!= RCartalyst\Sentry\Hashingw'I RCartalyst\Sentry\Groups\Kohanav)M RCartalyst\Sentry\Groups\Eloquentt ; RCartalyst\Sentry\Groupsu(K RCartalyst\Sentry\Facades\Natives)M RCartalyst\Sentry\Facades\Laravelr(K RCartalyst\Sentry\Facades\Kohanaq)M RCartalyst\Sentry\Facades\FuelPHPp$C RCartalyst\Sentry\Facades\CIn!= RCartalyst\Sentry\Facadeso!= RCartalyst\Sentry\Cookiesm- RCartalyst\Sentryx JglobalV ĺglobalQ% ĺBkwld\CroppaP! cSymfony\CS+6 WTest\AAaa1)M WSymfony\CS\Tokenizer\Transformer55 WSymfony\CS\Tokenizer4/Y WSymfony\CS\Tests\Tokenizer\Transformer3#A WSymfony\CS\Tests\Tokenizer2'I WSymfony\CS\Tests\Fixer\Symfony0$C WSymfony\CS\Tests\Fixer\PSR2/$C WSymfony\CS\Tests\Fixer\PSR1.$C WSymfony\CS\Tests\Fixer\PSR0-'I WSymfony\CS\Tests\Fixer\Contrib,9 WSymfony\CS\Tests\Fixer+ ; WSymfony\CS\Tests\Finder*"? WSymfony\CS\Tests\DocBlock) ; WSymfony\CS\Tests\Config(- WSymfony\CS\Tests'!= WSymfony\CS\Fixer\Symfony&7 WSymfony\CS\Fixer\PSR2%7 WSymfony\CS\Fixer\PSR1$7 WSymfony\CS\Fixer\PSR0#!= WSymfony\CS\Fixer\Contrib"/ WSymfony\CS\Finder!3 WSymfony\CS\DocBlock #A WSymfony\CS\Console\Command1 WSymfony\CS\Console/ WSymfony\CS\Config! WSymfony\CS VTest\AAaaK)M VSymfony\CS\Tokenizer\TransformerO5 VSymfony\CS\TokenizerN/Y VSymfony\CS\Tests\Tokenizer\TransformerM#A VSymfony\CS\Tests\TokenizerL'I VSymfony\CS\Tests\Fixer\SymfonyJ$C VSymfony\CS\Tests\Fixer\PSR2I$C VSymfony\CS\Tests\Fixer\PSR1H$C VSymfony\CS\Tests\Fixer\PSR0G'I VSymfony\CS\Tests\Fixer\ContribF9 VSymfony\CS\Tests\FixerE ; VSymfony\CS\Tests\FinderD"? VSymfony\CS\Tests\DocBlockC ; VSymfony\CS\Tests\ConfigB- VSymfony\CS\TestsA!= VSymfony\CS\Fixer\Symfony@7 VSymfony\CS\Fixer\PSR2?7 VSymfony\CS\Fixer\PSR1>7 VSymfony\CS\Fixer\PSR0=!= VSymfony\CS\Fixer\Contrib</ VSymfony\CS\Finder;3 VSymfony\CS\DocBlock:#A VSymfony\CS\Console\Command91 VSymfony\CS\Console8/ VSymfony\CS\Config7! VSymfony\CS65 QSymfony\CS\Tokenizer*! QSymfony\CS*5 <Symfony\CS\Tokenizer%/ <Symfony\CS\Linter%    <Symfony\CS%
 i  sN qa?/
cS6q\=a6




b
7
				y	N	k=c3g5q=`3V'X>lK/   ' 
EasyCSV\Tests 
EasyCSV global1 [Jenssegers\Rollbar1 RJenssegers\Rollbar ; League\Flysystem\Plugin%*O League\Flysystem\Adapter\Polyfill%- League\Flysystem%7 League\Flysystem\Util ; League\Flysystem\Plugin*O League\Flysystem\Adapter\Polyfill!= League\Flysystem\Adapter- League\Flysystem1] spec\BigName\BackupManager\Tasks\Storage2_ spec\BigName\BackupManager\Tasks\Database5e spec\BigName\BackupManager\Tasks\Compression3a spec\BigName\BackupManager\ShellProcessing.W spec\BigName\BackupManager\Procedures/Y spec\BigName\BackupManager\Filesystems-U spec\BigName\BackupManager\Databases*O spec\BigName\BackupManager\Config/Y spec\BigName\BackupManager\Compressors#A spec\BigName\BackupManager,S BigName\BackupManager\Tasks\Storage-U BigName\BackupManager\Tasks\Database0[ BigName\BackupManager\Tasks\Compression$C BigName\BackupManager\Tasks.W BigName\BackupManager\ShellProcessing)M BigName\BackupManager\Procedures3a BigName\BackupManager\Integrations\Laravel*O BigName\BackupManager\Filesystems(K BigName\BackupManager\Databases%E BigName\BackupManager\Config*O BigName\BackupManager\Compressors7 BigName\BackupManager1] spec\BigName\BackupManager\Tasks\Storage~2_ spec\BigName\BackupManager\Tasks\Database}5e spec\BigName\BackupManager\Tasks\Compression|3a spec\BigName\BackupManager\ShellProcessing{.W spec\BigName\BackupManager\Proceduresz/Y spec\BigName\BackupManager\Filesystemsx-U spec\BigName\BackupManager\Databasesw*O spec\BigName\BackupManager\Configv/Y spec\BigName\BackupManager\Compressorsu#A spec\BigName\BackupManagery,S BigName\BackupManager\Tasks\Storage-U BigName\BackupManager\Tasks\Database0[ BigName\BackupManager\Tasks\Compression$C BigName\BackupManager\Tasks.W BigName\BackupManager\ShellProcessing)M BigName\BackupManager\Procedures3a BigName\BackupManager\Integrations\Laravel*O BigName\BackupManager\Filesystems(K BigName\BackupManager\Databases%E BigName\BackupManager\Config*O BigName\BackupManager\Compressors7 BigName\BackupManager$C BigName\BackupManager\Tasks,C*O BigName\BackupManager\Filesystems,B(K BigName\BackupManager\Databases,A*O GuzzleHttp\Tests\Stream\Exception ; GuzzleHttp\Tests\Stream7 GuzzleHttp\Tests\Http$C GuzzleHttp\Stream\Exception/ GuzzleHttp\Stream*O GuzzleHttp\Tests\Stream\Exception ; GuzzleHttp\Tests\Stream7 GuzzleHttp\Tests\Http$C GuzzleHttp\Stream\Exception/ GuzzleHttp\Stream-  Eluceo\iCal\Util#A  Eluceo\iCal\Property\Event5  Eluceo\iCal\Property7  Eluceo\iCal\Component#  Eluceo\iCal- Eluceo\iCal\Util#A Eluceo\iCal\Property\Event5 Eluceo\iCal\Property7 Eluceo\iCal\Component# Eluceo\iCal ʒglobal$C ʒKrucas\Notification\Facades3 ʒKrucas\Notification ʑglobal$C ʑKrucas\Notification\Facades3 ʑKrucas\Notification global'I Dimsav\Translatable\Test\Model3 Dimsav\Translatable global$C DaveJamesMiller\Breadcrumbs ŏglobal!= ŏCviebrock\ImageValidator Wglobal! WFuel\Core!&G WCartalyst\Sentry\Users\Kohana!(K WCartalyst\Sentry\Users\Eloquent!9 WCartalyst\Sentry\Users!+Q WCartalyst\Sentry\Throttling\Kohana!-U WCartalyst\Sentry\Throttling\Eloquent!
$C WCartalyst\Sentry\Throttling!9 WCartalyst\Sentry\Tests!"? WCartalyst\Sentry\Sessions!	!= WCartalyst\Sentry\Hashing!    WCartalyst\Sentr EasyCSV
 q  tG*tZC+}b?xN)_1



m
]
K
2
					q	O	7	e>{\L/m6 `)_8YD'kV9}`;         != Herrera\Annotations\Test&G Herrera\Annotations\Exception$C Herrera\Annotations\Convert3 Herrera\Annotations&G KevinGH\Box\Tests\Command\Key"? KevinGH\Box\Tests\Command/ KevinGH\Box\Tests- KevinGH\Box\Test1 KevinGH\Box\Helper ; KevinGH\Box\Command\Key3 KevinGH\Box\Command# KevinGH\Box&G |KevinGH\Box\Tests\Command\Key"? |KevinGH\Box\Tests\Command/ |KevinGH\Box\Tests- |KevinGH\Box\Test1 |KevinGH\Box\Helper ; |KevinGH\Box\Command\Key3 |KevinGH\Box\Command# |KevinGH\Box%E Egulias\Tests\EmailValidator%E Egulias\EmailValidator\Tests&G Egulias\EmailValidator\Parser9 Egulias\EmailValidator%E Egulias\Tests\EmailValidator%E Egulias\EmailValidator\Tests&G Egulias\EmailValidator\Parser9 Egulias\EmailValidator!= UMoontoast\Math\Exception) UMoontoast\Math aglobalz)M aCodeClimate\Component\System\Gity5e aCodeClimate\Bundle\TestReporterBundle\Entityx6g aCodeClimate\Bundle\TestReporterBundle\Consolew6g aCodeClimate\Bundle\TestReporterBundle\Commandv.W aCodeClimate\Bundle\TestReporterBundleu ^global )M ^CodeClimate\Component\System\Git 5e ^CodeClimate\Bundle\TestReporterBundle\Entity 6g ^CodeClimate\Bundle\TestReporterBundle\Console 6g ^CodeClimate\Bundle\TestReporterBundle\Command .W ^CodeClimate\Bundle\TestReporterBundle  globalq$C spec\Way\Generators\Parsers	&G spec\Way\Generators\Compilers3 spec\Way\Generators global7 Way\Generators\Syntax9 Way\Generators\Parsers"? Way\Generators\Filesystem!= Way\Generators\Compilers ; Way\Generators\Commands
) Way\Generators$C spec\Way\Generators\Parsers&G spec\Way\Generators\Compilers3 spec\Way\Generators global7 Way\Generators\Syntax9 Way\Generators\Parsers"? Way\Generators\Filesystem!= Way\Generators\Compilers ; Way\Generators\Commands) Way\Generators!= Way\Generators\Compilers2- DebugBar\Storage9 DebugBar\DataFormatter#A DebugBar\DataCollector\PDO9 DebugBar\DataCollector5 DebugBar\Bridge\Twig$C DebugBar\Bridge\SwiftMailer + DebugBar\Bridge DebugBar global+Q Barryvdh\Debugbar\Twig\TokenParser$C Barryvdh\Debugbar\Twig\Node)M Barryvdh\Debugbar\Twig\Extension"? Barryvdh\Debugbar\Storage%E Barryvdh\Debugbar\Middleware-U Barryvdh\Debugbar\DataCollector\Util(K Barryvdh\Debugbar\DataCollector&G Barryvdh\Debugbar\Controllers"? Barryvdh\Debugbar\Console/ Barryvdh\Debugbar global+Q Barryvdh\Debugbar\Twig\TokenParser$C Barryvdh\Debugbar\Twig\Node)M Barryvdh\Debugbar\Twig\Extension"? Barryvdh\Debugbar\Storage%E Barryvdh\Debugbar\Middleware-U Barryvdh\Debugbar\DataCollector\Util(K Barryvdh\Debugbar\DataCollector&G Barryvdh\Debugbar\Controllers"? Barryvdh\Debugbar\Console/ Barryvdh\Debugbar!= thomaswelton\GravatarLib-U Thomaswelton\LaravelGravatar\Facades%E Thomaswelton\LaravelGravatar +global) +Roumen\Sitemap )global) )Roumen\Sitemap' ޚMsurguy\Tests- ޚMsurguy\Honeypot' ޖMsurguy\Tests- ޖMsurguy\Honeypot,S spec\Laracasts\Utilities\JavaScript/Y Laracasts\Utilities\JavaScript\Facades'I Laracasts\Utilities\JavaScript3 Laracasts\Utilities,S spec\Laracasts\Utilities\JavaScript/Y Laracasts\Utilities\JavaScript\Facades'I Laracasts\Utilities\JavaScript3 Laracasts\Utilities    EasyCSV\Tests
  ~_@% z[2u`D*t_F&xa;





n
S
2
				g	>	e>tT3rX8{eK+nX>sU>&
~lV8!	qUC''Hoa\File\Link+1Hoa\File\Exception*Hoa\File)1Hoa\File\Temporary'Hoa\File\Link1Hoa\File\ExceptionHoa\File/Hoa\Core\Protocol(1Hoa\Core\Parameter'1Hoa\Core\Exception&)Hoa\Core\Event%'Hoa\Core\Data$5Hoa\Core\Consistency"%Hoa\Core\Bin!Hoa\Core#1Hoa\Core\Parameter%')Hoa\Core\Event%&'Hoa\Core\Data%%	%$/Hoa\Core\Protocol1Hoa\Core\Parameter1Hoa\Core\Exception)Hoa\Core\Event'Hoa\Core\Data5Hoa\Core\Consistency%Hoa\Core\BinHoa\Core	5Hoa\Compiler\Visitor !=Hoa\Compiler\Llk\Sampler7Hoa\Compiler\Llk\Rule-Hoa\Compiler\Llk9Hoa\Compiler\Exception-Hoa\Compiler\Bin%Hoa\Compiler5Hoa\Compiler\Visitort#AHoa\Compiler\Test\Unit\Llks9Hoa\Compiler\Test\Unitr!=Hoa\Compiler\Llk\Samplerq7Hoa\Compiler\Llk\Rulep-Hoa\Compiler\Llko9Hoa\Compiler\Exceptionm-Hoa\Compiler\Binl%Hoa\Compilern5Hoa\Compiler\Visitor#AHoa\Compiler\Test\Unit\Llk9Hoa\Compiler\Test\Unit!=Hoa\Compiler\Llk\Sampler7Hoa\Compiler\Llk\Rule~-Hoa\Compiler\Llk}9Hoa\Compiler\Exception{-Hoa\Compiler\Binz%Hoa\Compiler|global#global globalglobalglobal  ;	9Zend\Diactoros\Response$^!=	9Zend\Diactoros\Exception$])	9Zend\Diactoros$_ ;	/Zend\Diactoros\Response9	/Zend\Diactoros\Request!=	/Zend\Diactoros\Exception)	/Zend\Diactoros!=Ivory\HttpAdapter\Parser%EIvory\HttpAdapter\Normalizer"?Ivory\HttpAdapter\Message$CIvory\HttpAdapter\Extractor&GIvory\HttpAdapter\Event\Timer+QIvory\HttpAdapter\Event\Subscriber+QIvory\HttpAdapter\Event\StatusCode/YIvory\HttpAdapter\Event\Retry\Strategy&GIvory\HttpAdapter\Event\Retry
)MIvory\HttpAdapter\Event\Redirect	(KIvory\HttpAdapter\Event\History*OIvory\HttpAdapter\Event\Formatter+QIvory\HttpAdapter\Event\Cookie\Jar'IIvory\HttpAdapter\Event\Cookie*OIvory\HttpAdapter\Event\BasicAuth ;Ivory\HttpAdapter\Event ;Ivory\HttpAdapter\Asset/Ivory\HttpAdapter'React\Promise$3'React\Promise$4"?React\Promise\PromiseTest$=%EReact\Promise\PromiseAdapter$<'React\Promise$;1React\Promise\Stub"?React\Promise\PromiseTest %EReact\Promise\PromiseAdapter'React\Promise%EGuzzleHttp\Tests\Ring\Future%EGuzzleHttp\Tests\Ring\Client7GuzzleHttp\Tests\Ring9GuzzleHttp\Ring\Future"?GuzzleHttp\Ring\Exception9GuzzleHttp\Ring\Client+GuzzleHttp\Ring#Thrift\Type-Thrift\Transport/Thrift\StringFunc'Thrift\Server/Thrift\Serializer5Thrift\Protocol\JSON+Thrift\Protocol)Thrift\Factory-Thrift\Exception1Thrift\ClassLoader#Thrift\Base'Elasticsearch'Elasticsearch7Fuel\Upload\Providers#Fuel\Upload% 	JShrink\Test 	JShrink3 KevinGH\Amend\Tests' KevinGH\Amend(K Herrera\Version\Tests\Exception7 Herrera\Version\Tests"? Herrera\Version\Exception+ Herrera\Version$C Herrera\Box\Tests\Signature$C Herrera\Box\Tests\Exception$C Herrera\Box\Tests\Compactor/ Herrera\Box\Tests7 Herrera\Box\Signature7 Herrera\Box\Exception7 Herrera\Box\Compactor# Herrera\Box*O Herrera\Annotations\Tests\Convert    1Hoa\File\Temporary,   Q     o9 d4u\8 ^0`0



g
1			~	E	qAtIo-GT#OzO+W0                                       ' EasyCSV\Tests  'I WCartalyst\Sentry\Groups\Kohana!  ! <Symfony\CS%  "? Illuminate\Database\Query  -U 5Behat\Testwork\Environment\Exception#8  %E Behat\Testwork\Specification%  .W Behat\Behat\Definition\Pattern\Policy#\  / WordPlate\Console/  !?Aws\Tests\Swf\Integrationa  ;Aws\StorageGateway\Enum  &IAws\Tests\SimpleDb\IntegrationD  $EAws\S3\Model\MultipartUpload  ;[Aws\S3\Exception\ParserV  1}Doctrine\ORM\Query%4  $E|jSymfony\Component\Yaml\Tests  ;s|jSymfony\Component\Security\Core\Authorization\Voter/  G	|jSymfony\Component\HttpFoundation\Tests\Session\Storage\Handler
  0]|jSymfony\Component\DomCrawler\Tests\Field
  N|jSymfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FormLoginBundle
<  ,U|jSymfony\Bridge\Propel1\Security\User	  ,U|]Symfony\Component\Translation\DumperP  2a|]Symfony\Component\Routing\Tests\Annotation  *Q|]Symfony\Component\Form\Tests\Guess  %G|]Symfony\Component\CssSelectorn  -W|]Symfony\Bundle\SecurityBundle\Command  C|]Symfony\Bridge\Doctrine\Tests\DependencyInjection\Compiler  /[|NSymfony\Component\Translation\Catalogue  /[|NSymfony\Component\Security\Core\Encoder]  1_|NSymfony\Component\Intl\Data\Bundle\Writer  =w|NSymfony\Component\Form\Tests\Extension\Validator\Type  8m|NSymfony\Component\ExpressionLanguage\ParserCache}  =w|NSymfony\Component\Config\Tests\Fixtures\Configuration*  V'|NSymfony\Bundle\SecurityBundle\Tests\DependencyInjection\Fixtures\UserProvider  &I|NSymfony\Bridge\Twig\Tests\Node  8m|,Symfony\Component\Validator\Tests\Mapping\Loader(  $E|,Symfony\Component\HttpKernel(  -W{Symfony\Component\VarDumper\Exception h  0]{Symfony\Component\Security\Http\Firewall   +S{Symfony\Component\Process\Exception  7k{Symfony\Component\HttpKernel\DataCollector\Util  2a{Symfony\Component\Form\Extension\Csrf\Type:  1_{Symfony\Component\CssSelector\Tests\XPath  &I{Symfony\Bundle\TwigBundle\Node  4e{Symfony\Bundle\FrameworkBundle\Tests\Console=  %G{Symfony\Bridge\Doctrine\Tests  5gqSymfony\Component\Security\Core\Tests\Encoder	  JoSymfony\Component\HttpKernel\Tests\Fixtures\ExtensionLoadedBundlem  1_oSymfony\Component\HttpKernel\CacheClearer'  7koqSymfony\Component\HttpFoundation\File\Exception<  .YlSymfony\Component\HttpKernel\Exception  7iClassPreloader\Parser  -ijIlluminate\Cache  )iVIlluminate\Log  +SgSymfony\Component\Routing\Exception$#  9oeSymfony\Component\Intl\Tests\Globals\Verification!  7kedSymfony\Component\Form\Extension\HttpFoundation  4ePSymfony\Component\CssSelector\Parser\Handler  -MGuzzleHttp\Event  )OLCodeception\PHPUnit\ResultPrinter  #C>spec\PhpSpec\Formatter\Html6   =>PhpSpec\Console\Prompter  /6Hamcrest\Internalq  &I6<Zend\Db\Sql\Platform\Mysql\DdlV  'K"ZF\ContentNegotiation\Validator  #Zend\Loader  ;Guzzle\Common\Exception"  %Guzzle\Batch  3Zend\ServiceManager  3c#Symfony\Component\Validator\Mapping\Factory  /[Symfony\Component\Translation\Catalogue	  .YJMS\Serializer\Tests\Serializer\Naming  +SphpDocumentor\Transformer\BehaviourQ  !?ephpDocumentor\Transformer  (M`phpDocumentor\Plugin\Twig\Writer  )
PDepend\DbusUI   )OoSymfony\Component\Finder\Iterator	A  4eZSymfony\Component\DependencyInjection\Dumper*  1_Symfony\Component\Console\Tests\Formatter  ,USymfony\Component\Console\Descriptor   /]Stagehand\TestRunner\DependencyInjectionz  'K	Doctrine\Instantiator\Exception+p   9   <uE fE	pJnX/uU1



}
^
0
			{	O	#]@tF'                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ;3a|Symfony\Component\Routing\Generator\Dumper7b  :(K|Symfony\Component\Asset\Context7  9)MIlluminate\Contracts\Auth\Access6  8/Project\Component69  7)MSymfony\Component\VarDumper\Test6  6$C@League\CommonMark\Extension5  59-fZend\Mail\Storage\Part4s  4+Lurker\Resource3  31Zend\View\Renderer38  2-Zend\Http\Header2  19mageekguy\atoum\writer3  0+Uphpmock\phpunit1  /%ESymfony\Component\Serializer1  .FSymfony\Component\DependencyInjection\LazyProxy\Instantiator14  -"?~-Illuminate\Contracts\Auth0  ,%EpCodeception\Lib\Actor\Shared0  +'IPhpGitHooks\Infrastructure\Git0  *'IZend\Db\TableGateway\Exception/d  )7?Zend\Config\Processor.  (7iSymfony\Component\DependencyInjection\Compiler.  ')MIIlluminate\Contracts\Auth\Access06  &#AQIlluminate\Contracts\Redis.  %)M{Symfony\Component\HttpFoundation-  $/cPhpSpec\Formatter-  #!E_generated-   "(K0Symfony\Component\Console\Style,  !3a /Symfony\Component\Routing\Generator\Dumper,/   2_Symfony\Component\Debug\FatalErrorHandler+  9kProxyManager\Inflector,  1JPDepend\Util\Cache*O  "?Illuminate\Foundation\Bus)$   ;SSymfony\Component\Asset(  9Zend\Db\Sql\Ddl\Column'Y  )MLeague\Tactician\Handler\Locator%  )bLurker\Tracker$  $C:8Behat\MinkExtension\Context#   ClassMap"d  0[Symfony\Component\Serializer\Normalizer!  ,SSymfony\Component\Finder\Expression!  /YSymfony\Component\Filesystem\Exception!3  =u[Symfony\Bundle\WebProfilerBundle\Tests\EventListener'  !=Zend\View\Helper\Service  Zend\Mathc  (KZend\Feed\Reader\Extension\Atom  3aZend\Authentication\Adapter\Http\Exceptionw  +Zend\Mvc\Router  7iZend\Feed\Writer\Extension\DublinCore\Rendererv  3Zend\Code\Generator  3Zend\Mail\Transport&  
9Zend\Captcha\Exception&  	Lmageekguy\atoum\tests\units\report\fields\runner\failures\execute\Q  9mageekguy\atoum\script   ;mageekguy\atoum\adapter  +Qmageekguy\atoum\tests\units\report-  ?ymageekguy\atoum\report\fields\runner\tests\uncompleted  (Kmageekguy\atoum\scripts\treemap%  %Hoa\Iterator
 z  jXB~Z@.nT@%	}a<'}iI#




m
R
6
						b	E	d9`M0}`3vM0fF
~eF-`7eG$ 'Imageekguy\atoum\report\writers%"?mageekguy\atoum\observers%5mageekguy\atoum\mock% ;mageekguy\atoum\factory%!=mageekguy\atoum\asserter% ;mageekguy\atoum\adapter%+mageekguy\atoum%9mageekguy\atoum\writer*4cmageekguy\atoum\tests\units\factory\builder*(Kmageekguy\atoum\scripts\treemap*'Imageekguy\atoum\report\writers*"?mageekguy\atoum\observers*5mageekguy\atoum\mock*  ;mageekguy\atoum\factory)!=mageekguy\atoum\asserter) ;mageekguy\atoum\adapter)+mageekguy\atoum)7qHoa\Ustring\Test\Unit+qHoa\Ustring\Bin#qHoa\Ustring/Hoa\Regex\VisitoryHoa\Regexx/Hoa\Regex\VisitorvHoa\Regexu/Hoa\Regex\VisitorHoa\Regex(KZendDiagnostics\Runner\Reporterr9ZendDiagnostics\Runners9ZendDiagnostics\Resultq7ZendDiagnostics\Checkp-UZendDiagnosticsTest\TestAsset\Resultw/YZendDiagnosticsTest\TestAsset\Reporterv,SZendDiagnosticsTest\TestAsset\Checku3ZendDiagnosticsTestt(KZendDiagnostics\Runner\Reporterj9ZendDiagnostics\Runnerk9ZendDiagnostics\Resulti7ZendDiagnostics\Checkh-UZendDiagnosticsTest\TestAsset\Resulto/YZendDiagnosticsTest\TestAsset\Reportern,SZendDiagnosticsTest\TestAsset\Checkm3ZendDiagnosticsTestl%sZend\Versiong"?Zend\Text\Table\Exceptionf"?Zend\Text\Table\Decoratore+Zend\Text\Tabled#AZend\Text\Figlet\Exceptiona-Zend\Text\Figletb3Zend\Text\Exception`Zend\Textc%E+Zend\File\Transfer\Exception^#A+Zend\File\Transfer\Adapter]1+Zend\File\Transfer_3+Zend\File\Exception\+Zend\File[/Zend\Code\ScannerZ'IZend\Code\Reflection\ExceptionY*OZend\Code\Reflection\DocBlock\TagW&GZend\Code\Reflection\DocBlockX5Zend\Code\ReflectionV$CZend\Code\Generic\PrototypeT&GZend\Code\Generator\ExceptionS)MZend\Code\Generator\DocBlock\TagQ%EZend\Code\Generator\DocBlockR3Zend\Code\GeneratorP3Zend\Code\ExceptionO$CZend\Code\Annotation\ParserN5Zend\Code\AnnotationMZend\CodeU%ZFTool\ModelC$CZFTool\Diagnostics\ReporterB%EZFTool\Diagnostics\ExceptionA1ZFTool\Diagnostics@/ZFTool\Controller?5ZFToolTest\TestAssetK-ZFToolTest\ModelL*OZFToolTest\Diagnostics\TestAssetsI)MZFToolTest\Diagnostics\TestAssetH(KZFToolTest\Diagnostics\ReporterF%EZFToolTest\Diagnostics\CheckE9ZFToolTest\DiagnosticsG!ZFToolTestJZFToolD5Hoa\Visitor\Registry>#Hoa\Visitor=5Hoa\Visitor\Registry#Hoa\Visitor#Hoa\Visitor%(7Hoa\Visitor\Test\Unit#Hoa\Visitor$CHoa\Stream\Wrapper\IWrapper<1Hoa\Stream\Wrapper:1Hoa\Stream\IStream;/Hoa\Stream\Filter9!Hoa\Stream8$CHoa\Stream\Wrapper\IWrapper1Hoa\Stream\Wrapper1Hoa\Stream\IStream/Hoa\Stream\Filter!Hoa\Stream-Hoa\Math\Visitor7#AHoa\Math\Test\Unit\Visitor5#AHoa\Math\Test\Unit\Sampler4-Hoa\Math\Sampler31Hoa\Math\Exception2+QHoa\Math\Combinatorics\Combination1%Hoa\Math\Bin0Hoa\Math6-Hoa\Math\Visitor#AHoa\Math\Test\Unit\Visitor=uHoa\Math\Test\Unit\Sampler\Combinatorics\Combination#AHoa\Math\Test\Unit\Sampler-Hoa\Math\Sampler1Hoa\Math\Exception+QHoa\Math\Combinatorics\Combination%Hoa\Math\BinHoa\Math9Hoa\Iterator\Recursive/%Hoa\Iterator-	.9Hoa\Iterator\Test\Unit9Hoa\Iterator\Recursive   Hoa\Iterator
   Y  gE"oL~\9k5vR(




u
S
			u	T	6	e@_BjE%e.Ub+~9Y                                         ;qmageekguy\atoum\report\fields\runner\tests\skipped:omageekguy\atoum\report\fields\runner\tests\memory<smageekguy\atoum\report\fields\runner\tests\duration<smageekguy\atoum\report\fields\runner\tests\coverage3amageekguy\atoum\report\fields\runner\tests1]mageekguy\atoum\report\fields\runner\tapDmageekguy\atoum\report\fields\runner\result\notifier\image=umageekguy\atoum\report\fields\runner\result\notifier4cmageekguy\atoum\report\fields\runner\result9mmageekguy\atoum\report\fields\runner\php\version6gmageekguy\atoum\report\fields\runner\php\path1]mageekguy\atoum\report\fields\runner\php5emageekguy\atoum\report\fields\runner\outputsDmageekguy\atoum\report\fields\runner\failures\execute\unixEmageekguy\atoum\report\fields\runner\failures\execute\macos6gmageekguy\atoum\report\fields\runner\failures8kmageekguy\atoum\report\fields\runner\exceptions3amageekguy\atoum\report\fields\runner\event4cmageekguy\atoum\report\fields\runner\errors6gmageekguy\atoum\report\fields\runner\duration6gmageekguy\atoum\report\fields\runner\coverage3amageekguy\atoum\report\fields\runner\atoum-Umageekguy\atoum\report\fields\runner&Gmageekguy\atoum\report\fields9mageekguy\atoum\report$Cmageekguy\atoum\readers\std0[mageekguy\atoum\php\tokenizer\iterators/Ymageekguy\atoum\php\tokenizer\iterator&Gmageekguy\atoum\php\tokenizer+Qmageekguy\atoum\php\mocker\adapter#Amageekguy\atoum\php\mocker3mageekguy\atoum\php"?mageekguy\atoum\observerso-Umageekguy\atoum\mock\streams\fs\file2_mageekguy\atoum\mock\streams\fs\directory3amageekguy\atoum\mock\streams\fs\controller(Kmageekguy\atoum\mock\streams\fs$Cmageekguy\atoum\mock\stream(Kmageekguy\atoum\mock\php\method!=mageekguy\atoum\mock\php-Umageekguy\atoum\mock\mageekguy\atoumc.Wmageekguy\atoum\mock\generator\method(Kmageekguy\atoum\mock\controller5mageekguy\atoum\mock ;mageekguy\atoum\mailers7imageekguy\atoum\iterators\recursives\directory3amageekguy\atoum\iterators\recursives\atoum;qmageekguy\atoum\iterators\filters\recursives\atoum5emageekguy\atoum\iterators\filters\recursives!=mageekguy\atoum\includer ;mageekguy\atoum\fs\path1mageekguy\atoum\fs(Kmageekguy\atoum\factory\builder ;mageekguy\atoum\factoryn+Qmageekguy\atoum\exceptions\runtime)Mmageekguy\atoum\exceptions\logic#Amageekguy\atoum\exceptions%Emageekguy\atoum\cli\commands$Cmageekguy\atoum\cli\command3mageekguy\atoum\cli#Amageekguy\atoum\autoloader2_mageekguy\atoum\asserters\mock\exceptions5emageekguy\atoum\asserters\adapter\exceptions7imageekguy\atoum\asserters\adapter\call\manager:omageekguy\atoum\asserters\adapter\call\exceptions/Ymageekguy\atoum\asserters\adapter\call*Omageekguy\atoum\asserters\adapter"?mageekguy\atoum\asserters!=mageekguy\atoum\asserter$Cmageekguy\atoum\annotations ;mageekguy\atoum\adapterm+mageekguy\atoumglobal 	k9mageekguy\atoum\writer54cmageekguy\atoum\tests\units\factory\builder5"?mageekguy\atoum\test\data5(Kmageekguy\atoum\scripts\treemap5'Imageekguy\atoum\report\writers5"?mageekguy\atoum\observers55mageekguy\atoum\mock5 ;mageekguy\atoum\factory5"?mageekguy\atoum\extension5!=mageekguy\atoum\asserter5 ;mageekguy\atoum\adapter5+mageekguy\atoum5	59mageekguy\atoum\writer%4cmageekguy\atoum\tests\units\factory\builder%
   Q [&iHc9wO&vX2


p
I
!				z	W	2	m1b#Z(U- u5d)` ~N          0[mageekguy\atoum\tests\units\readers\std,2_mageekguy\atoum\tests\units\php\tokenizer*7imageekguy\atoum\tests\units\php\mocker\adapter(/Ymageekguy\atoum\tests\units\php\mocker)(Kmageekguy\atoum\tests\units\php'9mmageekguy\atoum\tests\units\mock\streams\fs\file&>wmageekguy\atoum\tests\units\mock\streams\fs\directory%?ymageekguy\atoum\tests\units\mock\streams\fs\controller#4cmageekguy\atoum\tests\units\mock\streams\fs$0[mageekguy\atoum\tests\units\mock\stream"4cmageekguy\atoum\tests\units\mock\php\method -Umageekguy\atoum\tests\units\mock\php!:omageekguy\atoum\tests\units\mock\generator\method4cmageekguy\atoum\tests\units\mock\controller)Mmageekguy\atoum\tests\units\mock,Smageekguy\atoum\tests\units\mailersDmageekguy\atoum\tests\units\iterators\recursives\directory?ymageekguy\atoum\tests\units\iterators\recursives\atoumH	mageekguy\atoum\tests\units\iterators\filters\recursives\atoumA}mageekguy\atoum\tests\units\iterators\filters\recursives,Smageekguy\atoum\tests\units\fs\path'Imageekguy\atoum\tests\units\fs4cmageekguy\atoum\tests\units\factory\builder7imageekguy\atoum\tests\units\exceptions\runtime5emageekguy\atoum\tests\units\exceptions\logic/Ymageekguy\atoum\tests\units\exceptions1]mageekguy\atoum\tests\units\cli\commands0[mageekguy\atoum\tests\units\cli\command(Kmageekguy\atoum\tests\units\cli/Ymageekguy\atoum\tests\units\autoloader>wmageekguy\atoum\tests\units\asserters\template\parser>wmageekguy\atoum\tests\units\asserters\mock\exceptionsA}mageekguy\atoum\tests\units\asserters\adapter\exceptionsDmageekguy\atoum\tests\units\asserters\adapter\call\managerGmageekguy\atoum\tests\units\asserters\adapter\call\exceptions;qmageekguy\atoum\tests\units\asserters\adapter\call	6gmageekguy\atoum\tests\units\asserters\adapter
.Wmageekguy\atoum\tests\units\asserters-Umageekguy\atoum\tests\units\asserter0[mageekguy\atoum\tests\units\annotations$Cmageekguy\atoum\tests\units"?mageekguy\atoum\test\mock'Imageekguy\atoum\test\generator(Kmageekguy\atoum\test\exceptions%Emageekguy\atoum\test\engines/Ymageekguy\atoum\test\assertion\manager'Imageekguy\atoum\test\assertion&Gmageekguy\atoum\test\asserter+Qmageekguy\atoum\test\adapter\calls5emageekguy\atoum\test\adapter\call\decorators4cmageekguy\atoum\test\adapter\call\arguments*Omageekguy\atoum\test\adapter\call%Emageekguy\atoum\test\adapter5mageekguy\atoum\test(Kmageekguy\atoum\template\parser!=mageekguy\atoum\template2_mageekguy\atoum\scripts\treemap\analyzers1]mageekguy\atoum\scripts\treemap\analyzer(Kmageekguy\atoum\scripts\treemap'Imageekguy\atoum\scripts\tagger%Emageekguy\atoum\scripts\phar$Cmageekguy\atoum\scripts\git,Smageekguy\atoum\scripts\builder\vcs(Kmageekguy\atoum\scripts\builder ;mageekguy\atoum\scripts)Mmageekguy\atoum\script\arguments9mageekguy\atoum\script7mageekguy\atoum\score9mageekguy\atoum\runner-Umageekguy\atoum\reports\realtime\cli)Mmageekguy\atoum\reports\realtime-Umageekguy\atoum\reports\asynchronous ;mageekguy\atoum\reports'Imageekguy\atoum\report\writersp/Ymageekguy\atoum\report\fields\test\run2_mageekguy\atoum\report\fields\test\memory1]mageekguy\atoum\report\fields\test\event4cmageekguy\atoum\report\fields\test\duration+Qmageekguy\atoum\report\fields\test8kmageekguy\atoum\report\fields\runner\tests\void   <smageekguy\atoum\tests\units\php\tokenizer\iterators+
 I  ZS};p%[


6			j	+R_2b-e.s?nCwJi>              global	#tests\unitsl$Cmageekguy\atoum\writers\std%Emageekguy\atoum\writers\http ;mageekguy\atoum\writers*Omageekguy\atoum\writer\decorators9mageekguy\atoum\writerq'Imageekguy\atoum\tools\variable$Cmageekguy\atoum\tools\diffs#Amageekguy\atoum\tools\diff7mageekguy\atoum\tools0[mageekguy\atoum\tests\units\writers\stdj,Smageekguy\atoum\tests\units\writersi6gmageekguy\atoum\tests\units\writer\decoratorsh3amageekguy\atoum\tests\units\tools\variableg0[mageekguy\atoum\tests\units\tools\diffsf/Ymageekguy\atoum\tests\units\tools\diffd*Omageekguy\atoum\tests\units\toolse.Wmageekguy\atoum\tests\units\test\mockb3amageekguy\atoum\tests\units\test\generatora1]mageekguy\atoum\tests\units\test\engines`;qmageekguy\atoum\tests\units\test\assertion\manager_3amageekguy\atoum\tests\units\test\assertion^7imageekguy\atoum\tests\units\test\adapter\calls\A}mageekguy\atoum\tests\units\test\adapter\call\decoratorsZ@{mageekguy\atoum\tests\units\test\adapter\call\argumentsX6gmageekguy\atoum\tests\units\test\adapter\callY1]mageekguy\atoum\tests\units\test\adapter[)Mmageekguy\atoum\tests\units\test]-Umageekguy\atoum\tests\units\templateW=umageekguy\atoum\tests\units\scripts\treemap\analyzerU4cmageekguy\atoum\tests\units\scripts\treemapV3amageekguy\atoum\tests\units\scripts\taggerT1]mageekguy\atoum\tests\units\scripts\pharS0[mageekguy\atoum\tests\units\scripts\gitR8kmageekguy\atoum\tests\units\scripts\builder\vcsP,Smageekguy\atoum\tests\units\scriptsQ5emageekguy\atoum\tests\units\script\argumentsN+Qmageekguy\atoum\tests\units\scriptO*Omageekguy\atoum\tests\units\scoreM+Qmageekguy\atoum\tests\units\runnerL9mmageekguy\atoum\tests\units\reports\realtime\cliJ5emageekguy\atoum\tests\units\reports\realtimeK9mmageekguy\atoum\tests\units\reports\asynchronousH,Smageekguy\atoum\tests\units\reportsI;qmageekguy\atoum\tests\units\report\fields\test\runG>wmageekguy\atoum\tests\units\report\fields\test\memoryF=umageekguy\atoum\tests\units\report\fields\test\eventE@{mageekguy\atoum\tests\units\report\fields\test\durationDLmageekguy\atoum\tests\units\report\fields\runner\tests\uncompletedCH	mageekguy\atoum\tests\units\report\fields\runner\tests\skippedAGmageekguy\atoum\tests\units\report\fields\runner\tests\memory@Imageekguy\atoum\tests\units\report\fields\runner\tests\duration?Imageekguy\atoum\tests\units\report\fields\runner\tests\coverage>?ymageekguy\atoum\tests\units\report\fields\runner\testsB=umageekguy\atoum\tests\units\report\fields\runner\tap=Kmageekguy\atoum\tests\units\report\fields\runner\result\notifier\;Jmageekguy\atoum\tests\units\report\fields\runner\result\notifier<@{mageekguy\atoum\tests\units\report\fields\runner\result:Fmageekguy\atoum\tests\units\report\fields\runner\php\version9Bmageekguy\atoum\tests\units\report\fields\runner\php\path8A}mageekguy\atoum\tests\units\report\fields\runner\outputs7Lmageekguy\atoum\tests\units\report\fields\runner\failures\execute\6Bmageekguy\atoum\tests\units\report\fields\runner\failures5Emageekguy\atoum\tests\units\report\fields\runner\exceptions4?ymageekguy\atoum\tests\units\report\fields\runner\event3@{mageekguy\atoum\tests\units\report\fields\runner\errors2Bmageekguy\atoum\tests\units\report\fields\runner\duration1Bmageekguy\atoum\tests\units\report\fields\runner\coverage/?ymageekguy\atoum\tests\units\report\fields\runner\atoum.9mmageekguy\atoum\tests\units\report\fields\runner0   mageekguy\a+mageekguy\atoum
   T uJq>d8YrI



|
S
				~	Z	.	a:j5Kg-uCZyDf8                  9mageekguy\atoum\runner-Umageekguy\atoum\reports\realtime\cli)Mmageekguy\atoum\reports\realtime-Umageekguy\atoum\reports\asynchronous ;mageekguy\atoum\reports'Imageekguy\atoum\report\writers/Ymageekguy\atoum\report\fields\test\run2_mageekguy\atoum\report\fields\test\memory1]mageekguy\atoum\report\fields\test\event4cmageekguy\atoum\report\fields\test\duration+Qmageekguy\atoum\report\fields\test8kmageekguy\atoum\report\fields\runner\tests\void?ymageekguy\atoum\report\fields\runner\tests\uncompleted;qmageekguy\atoum\report\fields\runner\tests\skipped:omageekguy\atoum\report\fields\runner\tests\memory<smageekguy\atoum\report\fields\runner\tests\duration<smageekguy\atoum\report\fields\runner\tests\coverage3amageekguy\atoum\report\fields\runner\tests1]mageekguy\atoum\report\fields\runner\tapDmageekguy\atoum\report\fields\runner\result\notifier\image=umageekguy\atoum\report\fields\runner\result\notifier4cmageekguy\atoum\report\fields\runner\result9mmageekguy\atoum\report\fields\runner\php\version6gmageekguy\atoum\report\fields\runner\php\path1]mageekguy\atoum\report\fields\runner\php5emageekguy\atoum\report\fields\runner\outputsDmageekguy\atoum\report\fields\runner\failures\execute\unixEmageekguy\atoum\report\fields\runner\failures\execute\macos6gmageekguy\atoum\report\fields\runner\failures8kmageekguy\atoum\report\fields\runner\exceptions3amageekguy\atoum\report\fields\runner\event4cmageekguy\atoum\report\fields\runner\errors6gmageekguy\atoum\report\fields\runner\duration6gmageekguy\atoum\report\fields\runner\coverage3amageekguy\atoum\report\fields\runner\atoum-Umageekguy\atoum\report\fields\runner&Gmageekguy\atoum\report\fields9mageekguy\atoum\report$Cmageekguy\atoum\readers\std0[mageekguy\atoum\php\tokenizer\iterators/Ymageekguy\atoum\php\tokenizer\iterator&Gmageekguy\atoum\php\tokenizer+Qmageekguy\atoum\php\mocker\adapter#Amageekguy\atoum\php\mocker3mageekguy\atoum\php"?mageekguy\atoum\observers-Umageekguy\atoum\mock\streams\fs\file2_mageekguy\atoum\mock\streams\fs\directory3amageekguy\atoum\mock\streams\fs\controller(Kmageekguy\atoum\mock\streams\fs$Cmageekguy\atoum\mock\stream(Kmageekguy\atoum\mock\php\method!=mageekguy\atoum\mock\php-Umageekguy\atoum\mock\mageekguy\atoum~.Wmageekguy\atoum\mock\generator\method(Kmageekguy\atoum\mock\controller5mageekguy\atoum\mock ;mageekguy\atoum\mailers7imageekguy\atoum\iterators\recursives\directory3amageekguy\atoum\iterators\recursives\atoum;qmageekguy\atoum\iterators\filters\recursives\atoum5emageekguy\atoum\iterators\filters\recursives!=mageekguy\atoum\includer ;mageekguy\atoum\fs\path1mageekguy\atoum\fs(Kmageekguy\atoum\factory\builder ;mageekguy\atoum\factory+Qmageekguy\atoum\exceptions\runtime)Mmageekguy\atoum\exceptions\logic#Amageekguy\atoum\exceptions%Emageekguy\atoum\cli\commands$Cmageekguy\atoum\cli\command3mageekguy\atoum\cli#Amageekguy\atoum\autoloader2_mageekguy\atoum\asserters\mock\exceptions5emageekguy\atoum\asserters\adapter\exceptions7imageekguy\atoum\asserters\adapter\call\manager:omageekguy\atoum\asserters\adapter\call\exceptions/Ymageekguy\atoum\asserters\adapter\call*Omageekguy\atoum\asserters\adapter"?mageekguy\atoum\asserters!=mageekguy\atoum\asserter$Cmageekguy\atoum\annotations  7mageekguy\atoum\score
 L  l?q>OnH~P!


f
!			a	1	u?};m@xC^$`#L	E                              Bmageekguy\atoum\tests\units\report\fields\runner\failuresPEmageekguy\atoum\tests\units\report\fields\runner\exceptionsO?ymageekguy\atoum\tests\units\report\fields\runner\eventN@{mageekguy\atoum\tests\units\report\fields\runner\errorsMBmageekguy\atoum\tests\units\report\fields\runner\durationLBmageekguy\atoum\tests\units\report\fields\runner\coverageJ?ymageekguy\atoum\tests\units\report\fields\runner\atoumI9mmageekguy\atoum\tests\units\report\fields\runnerK+Qmageekguy\atoum\tests\units\reportH0[mageekguy\atoum\tests\units\readers\stdG<smageekguy\atoum\tests\units\php\tokenizer\iteratorsF2_mageekguy\atoum\tests\units\php\tokenizerE7imageekguy\atoum\tests\units\php\mocker\adapterC/Ymageekguy\atoum\tests\units\php\mockerD(Kmageekguy\atoum\tests\units\phpB9mmageekguy\atoum\tests\units\mock\streams\fs\fileA>wmageekguy\atoum\tests\units\mock\streams\fs\directory@?ymageekguy\atoum\tests\units\mock\streams\fs\controller>4cmageekguy\atoum\tests\units\mock\streams\fs?0[mageekguy\atoum\tests\units\mock\stream=4cmageekguy\atoum\tests\units\mock\php\method;-Umageekguy\atoum\tests\units\mock\php<:omageekguy\atoum\tests\units\mock\generator\method:4cmageekguy\atoum\tests\units\mock\controller8)Mmageekguy\atoum\tests\units\mock9,Smageekguy\atoum\tests\units\mailers7Dmageekguy\atoum\tests\units\iterators\recursives\directory6?ymageekguy\atoum\tests\units\iterators\recursives\atoum5H	mageekguy\atoum\tests\units\iterators\filters\recursives\atoum3A}mageekguy\atoum\tests\units\iterators\filters\recursives4,Smageekguy\atoum\tests\units\fs\path1'Imageekguy\atoum\tests\units\fs24cmageekguy\atoum\tests\units\factory\builder07imageekguy\atoum\tests\units\exceptions\runtime/5emageekguy\atoum\tests\units\exceptions\logic-/Ymageekguy\atoum\tests\units\exceptions.1]mageekguy\atoum\tests\units\cli\commands,0[mageekguy\atoum\tests\units\cli\command+(Kmageekguy\atoum\tests\units\cli*/Ymageekguy\atoum\tests\units\autoloader)>wmageekguy\atoum\tests\units\asserters\template\parser>wmageekguy\atoum\tests\units\asserters\mock\exceptions(A}mageekguy\atoum\tests\units\asserters\adapter\exceptions&Dmageekguy\atoum\tests\units\asserters\adapter\call\manager#Gmageekguy\atoum\tests\units\asserters\adapter\call\exceptions";qmageekguy\atoum\tests\units\asserters\adapter\call$6gmageekguy\atoum\tests\units\asserters\adapter%.Wmageekguy\atoum\tests\units\asserters'-Umageekguy\atoum\tests\units\asserter!0[mageekguy\atoum\tests\units\annotations $Cmageekguy\atoum\tests\units"?mageekguy\atoum\test\mock'Imageekguy\atoum\test\generator(Kmageekguy\atoum\test\exceptions%Emageekguy\atoum\test\engines/Ymageekguy\atoum\test\assertion\manager'Imageekguy\atoum\test\assertion&Gmageekguy\atoum\test\asserter+Qmageekguy\atoum\test\adapter\calls
5emageekguy\atoum\test\adapter\call\decorators4cmageekguy\atoum\test\adapter\call\arguments*Omageekguy\atoum\test\adapter\call%Emageekguy\atoum\test\adapter	5mageekguy\atoum\test(Kmageekguy\atoum\template\parser!=mageekguy\atoum\template2_mageekguy\atoum\scripts\treemap\analyzers1]mageekguy\atoum\scripts\treemap\analyzer(Kmageekguy\atoum\scripts\treemap'Imageekguy\atoum\scripts\tagger %Emageekguy\atoum\scripts\phar$Cmageekguy\atoum\scripts\git,Smageekguy\atoum\scripts\builder\vcs(Kmageekguy\atoum\scripts\builder ;mageekguy\atoum\scripts)Mmageekguy\atoum\script\arguments    mageekguy\atoum\script
   O  <iUz-o3


\
0
			v	=	q3r1GW&]>a;Y/rK,                %Zend\Captcha&1Zend\Cache\Pattern&5Zend\Cache\Exception&
(KZend\Barcode\Renderer\Exception&7Zend\Barcode\Renderer&	&GZend\Barcode\Object\Exception&3Zend\Barcode\Object&9Zend\Barcode\Exception&$CZend\Authentication\Storage&&GZend\Authentication\Exception&3aZend\Authentication\Adapter\Http\Exception& )MZend\Authentication\Adapter\Http&.WZend\Authentication\Adapter\Exception%6gZend\Authentication\Adapter\DbTable\Exception%$CZend\Authentication\Adapter%3Zend\Authentication&#tests\units$Cmageekguy\atoum\writers\std%Emageekguy\atoum\writers\http ;mageekguy\atoum\writers*Omageekguy\atoum\writer\decorators9mageekguy\atoum\writer'Imageekguy\atoum\tools\variable$Cmageekguy\atoum\tools\diffs#Amageekguy\atoum\tools\diff7mageekguy\atoum\tools0[mageekguy\atoum\tests\units\writers\std,Smageekguy\atoum\tests\units\writers6gmageekguy\atoum\tests\units\writer\decorators3amageekguy\atoum\tests\units\tools\variable0[mageekguy\atoum\tests\units\tools\diffs/Ymageekguy\atoum\tests\units\tools\diff*Omageekguy\atoum\tests\units\tools.Wmageekguy\atoum\tests\units\test\mock}3amageekguy\atoum\tests\units\test\generator|1]mageekguy\atoum\tests\units\test\engines{;qmageekguy\atoum\tests\units\test\assertion\managerz3amageekguy\atoum\tests\units\test\assertiony7imageekguy\atoum\tests\units\test\adapter\callswA}mageekguy\atoum\tests\units\test\adapter\call\decoratorsu@{mageekguy\atoum\tests\units\test\adapter\call\argumentss6gmageekguy\atoum\tests\units\test\adapter\callt1]mageekguy\atoum\tests\units\test\adapterv)Mmageekguy\atoum\tests\units\testx-Umageekguy\atoum\tests\units\templater=umageekguy\atoum\tests\units\scripts\treemap\analyzerp4cmageekguy\atoum\tests\units\scripts\treemapq3amageekguy\atoum\tests\units\scripts\taggero1]mageekguy\atoum\tests\units\scripts\pharn0[mageekguy\atoum\tests\units\scripts\gitm8kmageekguy\atoum\tests\units\scripts\builder\vcsk,Smageekguy\atoum\tests\units\scriptsl5emageekguy\atoum\tests\units\script\argumentsi+Qmageekguy\atoum\tests\units\scriptj*Omageekguy\atoum\tests\units\scoreh+Qmageekguy\atoum\tests\units\runnerg9mmageekguy\atoum\tests\units\reports\realtime\clie5emageekguy\atoum\tests\units\reports\realtimef9mmageekguy\atoum\tests\units\reports\asynchronousc,Smageekguy\atoum\tests\units\reportsd;qmageekguy\atoum\tests\units\report\fields\test\runb>wmageekguy\atoum\tests\units\report\fields\test\memorya=umageekguy\atoum\tests\units\report\fields\test\event`@{mageekguy\atoum\tests\units\report\fields\test\duration_Lmageekguy\atoum\tests\units\report\fields\runner\tests\uncompleted^H	mageekguy\atoum\tests\units\report\fields\runner\tests\skipped\Gmageekguy\atoum\tests\units\report\fields\runner\tests\memory[Imageekguy\atoum\tests\units\report\fields\runner\tests\durationZImageekguy\atoum\tests\units\report\fields\runner\tests\coverageY?ymageekguy\atoum\tests\units\report\fields\runner\tests]=umageekguy\atoum\tests\units\report\fields\runner\tapXKmageekguy\atoum\tests\units\report\fields\runner\result\notifier\VJmageekguy\atoum\tests\units\report\fields\runner\result\notifierW@{mageekguy\atoum\tests\units\report\fields\runner\resultUFmageekguy\atoum\tests\units\report\fields\runner\php\versionTBmageekguy\atoum\tests\units\report\fields\runner\php\pathSA}mageekguy\atoum\tests\units\report\fields\runner\outputsR"?Zend\Cache\Storage\Plugin&1Zend\Cache\Storage&
   w Y2bC'|Y;X2}[9




m
T
4
					n	]	A	&	
kK!~_E!dG(iO+pL%wXF*|aD*vV,                  #AZend\Mail\Storage\Writable&)MZend\Mail\Storage\Part\Exception&9Zend\Mail\Storage\Part&"?Zend\Mail\Storage\Message&!=Zend\Mail\Storage\Folder&$CZend\Mail\Storage\Exception&%EZend\Mail\Protocol\Exception&#AZend\Mail\Header\Exception&~-Zend\Mail\Header&3Zend\Mail\Exception&}/Zend\Mail\Address&| ;Zend\Log\Writer\FirePhp&z"?Zend\Log\Writer\ChromePhp&y+Zend\Log\Writer&{1Zend\Log\Processor&x1Zend\Log\Formatter&v+Zend\Log\Filter&u1Zend\Log\Exception&tZend\Log&w7Zend\Loader\Exception&r#Zend\Loader&s*OZend\Ldap\Node\Schema\ObjectClass&q,SZend\Ldap\Node\Schema\AttributeType&p#AZend\Ldap\Filter\Exception&o3Zend\Ldap\Exception&n&GZend\Ldap\Converter\Exception&m#AZend\Json\Server\Exception&l3Zend\Json\Exception&k#AZend\InputFilter\Exception&j-Zend\InputFilter&i$CZend\I18n\Translator\Loader&g5Zend\I18n\Translator&h3Zend\I18n\Exception&f#AZend\Http\Header\Exception&d-Zend\Http\Header&e3Zend\Http\Exception&c#AZend\Http\Client\Exception&b+QZend\Http\Client\Adapter\Exception&a!=Zend\Http\Client\Adapter&`3Zend\Form\Exception&_Zend\Form&^7Zend\Filter\Exception&\3Zend\Filter\Encrypt&[5Zend\Filter\Compress&Z#Zend\Filter&]%EZend\File\Transfer\Exception&Y3Zend\File\Exception&X"?Zend\Feed\Writer\Renderer&W#AZend\Feed\Writer\Extension&U#AZend\Feed\Writer\Exception&T-Zend\Feed\Writer&V7Zend\Feed\Reader\Http&S7Zend\Feed\Reader\Feed&R#AZend\Feed\Reader\Exception&P9Zend\Feed\Reader\Entry&O-Zend\Feed\Reader&Q%EZend\Feed\PubSubHubbub\Model&N)MZend\Feed\PubSubHubbub\Exception&M9Zend\Feed\PubSubHubbub&L3Zend\Feed\Exception&K!=Zend\EventManager\Filter&J$CZend\EventManager\Exception&I/Zend\EventManager&H9Zend\Escaper\Exception&G1Zend\Dom\Exception&F/Zend\Di\Exception&E1Zend\Di\Definition&CZend\Di&D'IZend\Db\TableGateway\Exception&A5Zend\Db\TableGateway&B7Zend\Db\Sql\Predicate&@5Zend\Db\Sql\Platform&?7Zend\Db\Sql\Exception&=#AZend\Db\Sql\Ddl\Constraint&;9Zend\Db\Sql\Ddl\Column&:+Zend\Db\Sql\Ddl&<#Zend\Db\Sql&>%EZend\Db\RowGateway\Exception&81Zend\Db\RowGateway&9$CZend\Db\ResultSet\Exception&6/Zend\Db\ResultSet&7-Zend\Db\Metadata&5/Zend\Db\Exception&4!=Zend\Db\Adapter\Profiler&3!=Zend\Db\Adapter\Platform&2"?Zend\Db\Adapter\Exception&10[Zend\Db\Adapter\Driver\Sqlsrv\Exception&0'IZend\Db\Adapter\Driver\Feature&/9Zend\Db\Adapter\Driver&.+Zend\Db\Adapter&-%EZend\Crypt\Symmetric\Padding&+'IZend\Crypt\Symmetric\Exception&*5Zend\Crypt\Symmetric&,+QZend\Crypt\PublicKey\Rsa\Exception&)&GZend\Crypt\Password\Exception&'3Zend\Crypt\Password&(,SZend\Crypt\Key\Derivation\Exception&&5Zend\Crypt\Exception&%"?Zend\Console\RouteMatcher&$3Zend\Console\Prompt&#9Zend\Console\Exception&"5Zend\Console\Charset& 5Zend\Console\Adapter&%Zend\Console&!1Zend\Config\Writer&1Zend\Config\Reader&7Zend\Config\Processor&7Zend\Config\Exception&/Zend\Code\Scanner&'IZend\Code\Reflection\Exception&*OZend\Code\Reflection\DocBlock\Tag&5Zend\Code\Reflection&$CZend\Code\Generic\Prototype&&GZend\Code\Generator\Exception&)MZend\Code\Generator\DocBlock\Tag&3Zend\Code\Generator&3Zend\Code\Exception&$CZend\Code\Annotation\Parser&5Zend\Code\Annotation&
   s nQ2k<*lN+b:T0




m
P
)
					v	D	'oJyM1|dD"nR,Y"nI"`L.}]J,                         $CZend\Code\Annotation\Parser5Zend\Code\AnnotationZend\Code
9Zend\Captcha\Exception%Zend\Captcha"?Zend\Cache\Storage\Plugin #AZend\Cache\Storage\Adapter1Zend\Cache\Storage1Zend\Cache\Service1Zend\Cache\Pattern5Zend\Cache\Exception!Zend\Cache(KZend\Barcode\Renderer\Exception7Zend\Barcode\Renderer&GZend\Barcode\Object\Exception3Zend\Barcode\Object9Zend\Barcode\Exception%Zend\Barcode&GZend\Authentication\Validator$CZend\Authentication\Storage&GZend\Authentication\Exception3aZend\Authentication\Adapter\Http\Exception)MZend\Authentication\Adapter\Http.WZend\Authentication\Adapter\Exception6gZend\Authentication\Adapter\DbTable\Exception,SZend\Authentication\Adapter\DbTable$CZend\Authentication\Adapter3Zend\Authentication%EZend\XmlRpc\Server\Exception&7Zend\XmlRpc\Generator&7Zend\XmlRpc\Exception&%EZend\XmlRpc\Client\Exception&1Zend\View\Resolver&1Zend\View\Renderer&+Zend\View\Model&$CZend\View\Helper\Navigation&-Zend\View\Helper&3Zend\View\Exception&"?Zend\Validator\Translator&!=Zend\Validator\Exception&9Zend\Validator\Barcode&)Zend\Validator&1Zend\Uri\Exception&Zend\Uri&"?Zend\Text\Table\Exception&"?Zend\Text\Table\Decorator&#AZend\Text\Figlet\Exception&3Zend\Text\Exception&1Zend\Tag\Exception&+QZend\Tag\Cloud\Decorator\Exception&!=Zend\Tag\Cloud\Decorator&Zend\Tag&"?Zend\Stdlib\StringWrapper&%EZend\Stdlib\JsonSerializable&&GZend\Stdlib\Hydrator\Strategy&,SZend\Stdlib\Hydrator\NamingStrategy&$CZend\Stdlib\Hydrator\Filter&5Zend\Stdlib\Hydrator&/Zend\Stdlib\Guard&7Zend\Stdlib\Extractor&7Zend\Stdlib\Exception&#Zend\Stdlib&+QZend\Soap\Wsdl\ComplexTypeStrategy&3Zend\Soap\Exception&1]Zend\Soap\AutoDiscover\DiscoveryStrategy&9Zend\Session\Validator&5Zend\Session\Storage&!=Zend\Session\SaveHandler&9Zend\Session\Exception&3Zend\Session\Config&%Zend\Session&&GZend\ServiceManager\Exception&3Zend\ServiceManager&)MZend\Server\Reflection\Exception&7Zend\Server\Exception&#Zend\Server&"?Zend\Serializer\Exception& ;Zend\Serializer\Adapter& ;Zend\ProgressBar\Upload&#AZend\ProgressBar\Exception&+QZend\ProgressBar\Adapter\Exception&(KZend\Permissions\Rbac\Exception&7Zend\Permissions\Rbac&"?Zend\Permissions\Acl\Role&&GZend\Permissions\Acl\Resource&'IZend\Permissions\Acl\Exception&'IZend\Permissions\Acl\Assertion&5Zend\Permissions\Acl&&GZend\Paginator\ScrollingStyle&!=Zend\Paginator\Exception&)MZend\Paginator\Adapter\Exception&9Zend\Paginator\Adapter&)Zend\Paginator&"?Zend\Navigation\Exception&5Zend\Mvc\Router\Http&"?Zend\Mvc\Router\Exception& ;Zend\Mvc\Router\Console&+Zend\Mvc\Router& ;Zend\Mvc\ResponseSender&1Zend\Mvc\Exception&#AZend\Mvc\Controller\Plugin&Zend\Mvc&.WZend\ModuleManager\Listener\Exception&$CZend\ModuleManager\Listener&#AZend\ModuleManager\Feature&%EZend\ModuleManager\Exception&1Zend\ModuleManager&3Zend\Mime\Exception&7Zend\Memory\Exception&7Zend\Memory\Container&3Zend\Math\Exception&'IZend\Math\BigInteger\Exception&%EZend\Math\BigInteger\Adapter&&GZend\Mail\Transport\Exception&3Zend\Code\Exception
   p  kDgK5nKnP(zS.




`
=
						g	B	&	 jK-	uW/	nJ1wR0 eK&i5U#_-                 4cZend\Feed\Writer\Extension\Content\Rendereru1]Zend\Feed\Writer\Extension\Atom\Renderert#AZend\Feed\Writer\Extensions#AZend\Feed\Writer\Exceptionr-Zend\Feed\Writerq7Zend\Feed\Reader\Http]#AZend\Feed\Reader\Feed\Atomo7Zend\Feed\Reader\Feedn1]Zend\Feed\Reader\Extension\WellFormedWebm*OZend\Feed\Reader\Extension\Threadl/YZend\Feed\Reader\Extension\Syndicationk)MZend\Feed\Reader\Extension\Slashj+QZend\Feed\Reader\Extension\Podcasti.WZend\Feed\Reader\Extension\DublinCoreh3aZend\Feed\Reader\Extension\CreativeCommonsg+QZend\Feed\Reader\Extension\Contentf(KZend\Feed\Reader\Extension\Atome#AZend\Feed\Reader\Extensiond#AZend\Feed\Reader\Exceptionc9Zend\Feed\Reader\Entryb$CZend\Feed\Reader\Collectiona-Zend\Feed\Reader`*OZend\Feed\PubSubHubbub\Subscriber_%EZend\Feed\PubSubHubbub\Model^)MZend\Feed\PubSubHubbub\Exception]9Zend\Feed\PubSubHubbub\3Zend\Feed\Exception[Zend\Feedp!=Zend\EventManager\FilterZ$CZend\EventManager\ExceptionY/Zend\EventManagerX9Zend\Escaper\ExceptionW%Zend\EscaperV1Zend\Dom\ExceptionUZend\DomT9Zend\Di\ServiceLocatorS/Zend\Di\ExceptionR+Zend\Di\DisplayQ#AZend\Di\Definition\BuilderP&GZend\Di\Definition\AnnotationN1Zend\Di\DefinitionOZend\DiM!Zend\DebugL2_Zend\Db\TableGateway\Feature\EventFeatureK%EZend\Db\TableGateway\FeatureJ'IZend\Db\TableGateway\ExceptionI5Zend\Db\TableGatewayH7Zend\Db\Sql\PredicateG'IZend\Db\Sql\Platform\SqlServerF$CZend\Db\Sql\Platform\OracleE'IZend\Db\Sql\Platform\Mysql\DdlC#AZend\Db\Sql\Platform\MysqlD5Zend\Db\Sql\PlatformB7Zend\Db\Sql\ExceptionA#AZend\Db\Sql\Ddl\Constraint@9Zend\Db\Sql\Ddl\Column?+Zend\Db\Sql\Ddl>#Zend\Db\Sql=#AZend\Db\RowGateway\Feature<%EZend\Db\RowGateway\Exception;1Zend\Db\RowGateway:$CZend\Db\ResultSet\Exception9/Zend\Db\ResultSet8 ;Zend\Db\Metadata\Source7 ;Zend\Db\Metadata\Object6-Zend\Db\Metadata5/Zend\Db\Exception4!=Zend\Db\Adapter\Profiler3!=Zend\Db\Adapter\Platform2"?Zend\Db\Adapter\Exception10[Zend\Db\Adapter\Driver\Sqlsrv\Exception0&GZend\Db\Adapter\Driver\Sqlsrv/%EZend\Db\Adapter\Driver\Pgsql.+QZend\Db\Adapter\Driver\Pdo\Feature-#AZend\Db\Adapter\Driver\Pdo,$CZend\Db\Adapter\Driver\Oci8+&GZend\Db\Adapter\Driver\Mysqli*&GZend\Db\Adapter\Driver\IbmDb2)'IZend\Db\Adapter\Driver\Feature(9Zend\Db\Adapter\Driver\+Zend\Db\Adapter'%EZend\Crypt\Symmetric\Padding&'IZend\Crypt\Symmetric\Exception$5Zend\Crypt\Symmetric%+QZend\Crypt\PublicKey\Rsa\Exception#!=Zend\Crypt\PublicKey\Rsa"5Zend\Crypt\PublicKey!&GZend\Crypt\Password\Exception 3Zend\Crypt\Password,SZend\Crypt\Key\Derivation\Exception"?Zend\Crypt\Key\Derivation5Zend\Crypt\Exception!Zend\Crypt3Zend\Console\Prompt9Zend\Console\Exception1Zend\Console\Color5Zend\Console\Charset5Zend\Console\Adapter%Zend\Console1Zend\Config\Writer1Zend\Config\Reader7Zend\Config\Processor7Zend\Config\Exception#Zend\Config/Zend\Code\Scanner'IZend\Code\Reflection\Exception*OZend\Code\Reflection\DocBlock\Tag&GZend\Code\Reflection\DocBlock5Zend\Code\Reflection&GZend\Code\Generator\Exception	)MZend\Code\Generator\DocBlock\Tag%EZend\Code\Generator\DocBlock
   x
 i6xJ"_J,pS;V2




i
L
2
					v	\	8	%	gT6gG(nU9u[7mJ* gA|_CvR&
                  1Zend\Mvc\Exception+QZend\Mvc\Controller\Plugin\Service#AZend\Mvc\Controller\Plugin3Zend\Mvc\ControllerZend\Mvc.WZend\ModuleManager\Listener\Exception$CZend\ModuleManager\Listener#AZend\ModuleManager\Feature_%EZend\ModuleManager\Exception1Zend\ModuleManager3Zend\Mime\ExceptionZend\Mime7Zend\Memory\Exception7Zend\Memory\Container#Zend\Memory-Zend\Math\Source3Zend\Math\Exception'IZend\Math\BigInteger\Exception%EZend\Math\BigInteger\Adapter5Zend\Math\BigIntegerZend\Math&GZend\Mail\Transport\Exception3Zend\Mail\Transport#AZend\Mail\Storage\Writable)MZend\Mail\Storage\Part\Exception9Zend\Mail\Storage\Part"?Zend\Mail\Storage\Message!=Zend\Mail\Storage\Folder$CZend\Mail\Storage\Exception/Zend\Mail\Storage%EZend\Mail\Protocol\Smtp\Auth%EZend\Mail\Protocol\Exception1Zend\Mail\Protocol#AZend\Mail\Header\Exception-Zend\Mail\Header3Zend\Mail\Exception/Zend\Mail\Address^Zend\Mail ;Zend\Log\Writer\FirePhp"?Zend\Log\Writer\ChromePhp+Zend\Log\Writer1Zend\Log\Processor1Zend\Log\Formatter+Zend\Log\Filter1Zend\Log\ExceptionZend\Log7Zend\Loader\Exception#Zend\Loader*OZend\Ldap\Node\Schema\ObjectClass,SZend\Ldap\Node\Schema\AttributeType7Zend\Ldap\Node\Schema9Zend\Ldap\Node\RootDse)Zend\Ldap\Node)Zend\Ldap\Ldif#AZend\Ldap\Filter\Exception-Zend\Ldap\Filter3Zend\Ldap\Exception&GZend\Ldap\Converter\Exception3Zend\Ldap\Converter5Zend\Ldap\CollectionZend\Ldap5Zend\Json\Server\Smd"?Zend\Json\Server\Response!=Zend\Json\Server\Request#AZend\Json\Server\Exception-Zend\Json\Server3Zend\Json\ExceptionZend\Json#AZend\InputFilter\Exception-Zend\InputFilter7Zend\I18n\View\Helper)Zend\I18n\View3Zend\I18n\Validator$CZend\I18n\Translator\Plural$CZend\I18n\Translator\Loader5Zend\I18n\Translator-Zend\I18n\Filter3Zend\I18n\Exception1Zend\Http\Response!=Zend\Http\PhpEnvironment#AZend\Http\Header\Exception/YZend\Http\Header\Accept\FieldValuePart-Zend\Http\Header3Zend\Http\Exception#AZend\Http\Client\Exception+QZend\Http\Client\Adapter\Exception!=Zend\Http\Client\Adapter-Zend\Http\ClientZend\Http#AZend\Form\View\Helper\File&GZend\Form\View\Helper\Captcha7Zend\Form\View\Helper)Zend\Form\View3Zend\Form\Exception/Zend\Form\Element5Zend\Form\AnnotationZend\Form-Zend\Filter\Word-Zend\Filter\File7Zend\Filter\Exception3Zend\Filter\Encrypt5Zend\Filter\Compress#Zend\Filter%EZend\File\Transfer\Exception#AZend\File\Transfer\Adapter1Zend\File\Transfer3Zend\File\ExceptionZend\File,SZend\Feed\Writer\Renderer\Feed\Atom'IZend\Feed\Writer\Renderer\Feed-UZend\Feed\Writer\Renderer\Entry\Atom}(KZend\Feed\Writer\Renderer\Entry~"?Zend\Feed\Writer\Renderer|:oZend\Feed\Writer\Extension\WellFormedWeb\Renderer{6gZend\Feed\Writer\Extension\Threading\Rendererz2_Zend\Feed\Writer\Extension\Slash\Renderery3aZend\Feed\Writer\Extension\ITunes\Rendererx*OZend\Feed\Writer\Extension\ITunesw ;Zend\Mvc\ResponseSender'Zend\Mvc\I18n
 v kT5 hHg?qE! oS3	




l
O
/
					_	L		 gH*iGwS:sQ4oJoS7"gK%
d5                       )MZend\Authentication\Adapter\Httpv.WZend\Authentication\Adapter\Exceptionu6gZend\Authentication\Adapter\DbTable\Exceptiont,SZend\Authentication\Adapter\DbTables$CZend\Authentication\Adapterr3Zend\Authenticationx/Zend\XmlRpc\Value[%EZend\XmlRpc\Server\ExceptionZ1Zend\XmlRpc\ServerY5Zend\XmlRpc\ResponseX3Zend\XmlRpc\RequestW7Zend\XmlRpc\GeneratorV7Zend\XmlRpc\ExceptionU%EZend\XmlRpc\Client\ExceptionS1Zend\XmlRpc\ClientT#Zend\XmlRpcR1Zend\View\StrategyQ1Zend\View\ResolverP1Zend\View\RendererO+Zend\View\ModelN!=Zend\View\Helper\ServiceL/YZend\View\Helper\Placeholder\ContainerJ%EZend\View\Helper\PlaceholderK-UZend\View\Helper\Navigation\ListenerI$CZend\View\Helper\NavigationH!=Zend\View\Helper\EscaperG-Zend\View\HelperF3Zend\View\ExceptionEZend\ViewM%Zend\VersionD"?Zend\Validator\Translatora9Zend\Validator\SitemapC3Zend\Validator\FileB!=Zend\Validator\ExceptionA/Zend\Validator\Db@9Zend\Validator\Barcode?)Zend\Validator>1Zend\Uri\Exception<Zend\Uri="?Zend\Text\Table\Exception;"?Zend\Text\Table\Decorator:+Zend\Text\Table9#AZend\Text\Figlet\Exception6-Zend\Text\Figlet73Zend\Text\Exception5Zend\Text8)Zend\Test\Util4%EZend\Test\PHPUnit\Controller31Zend\Tag\Exception2+QZend\Tag\Cloud\Decorator\Exception/!=Zend\Tag\Cloud\Decorator.)Zend\Tag\Cloud0Zend\Tag1"?Zend\Stdlib\StringWrapper-&GZend\Stdlib\Hydrator\Strategy,$CZend\Stdlib\Hydrator\Filter+'IZend\Stdlib\Hydrator\Aggregate*5Zend\Stdlib\Hydrator)7Zend\Stdlib\Exception( ;Zend\Stdlib\ArrayObject'#Zend\Stdlib&+QZend\Soap\Wsdl\ComplexTypeStrategy%-Zend\Soap\Server$3Zend\Soap\Exception#-Zend\Soap\Client"1]Zend\Soap\AutoDiscover\DiscoveryStrategy Zend\Soap!9Zend\Session\Validator1]Zend\Session\Storage\SessionArrayStorage5Zend\Session\Storage5Zend\Session\Service!=Zend\Session\SaveHandler9Zend\Session\Exception9Zend\Session\Container3Zend\Session\Config%Zend\Session"?Zend\ServiceManager\Proxy&GZend\ServiceManager\Exception9Zend\ServiceManager\Di3Zend\ServiceManager)MZend\Server\Reflection\Exception9Zend\Server\Reflection1Zend\Server\Method7Zend\Server\Exception#Zend\Server"?Zend\Serializer\Exception ;Zend\Serializer\Adapter+Zend\Serializer ;Zend\ProgressBar\Upload
#AZend\ProgressBar\Exception+QZend\ProgressBar\Adapter\Exception!=Zend\ProgressBar\Adapter-Zend\ProgressBar	(KZend\Permissions\Rbac\Exception7Zend\Permissions\Rbac"?Zend\Permissions\Acl\Role&GZend\Permissions\Acl\Resource'IZend\Permissions\Acl\Exception'IZend\Permissions\Acl\Assertion`5Zend\Permissions\Acl &GZend\Paginator\ScrollingStyle!=Zend\Paginator\Exception'IZend\Paginator\Adapter\Service)MZend\Paginator\Adapter\Exception9Zend\Paginator\Adapter)Zend\Paginator5Zend\Navigation\View ;Zend\Navigation\Service5Zend\Navigation\Page"?Zend\Navigation\Exception+Zend\Navigation1Zend\Mvc\View\Http7Zend\Mvc\View\Console'Zend\Mvc\View-Zend\Mvc\Service5Zend\Mvc\Router\Http"?Zend\Mvc\Router\Exception ;Zend\Mvc\Router\Console   Zend\Mvc\Router
   v  iS3uY=!sN1X-{_I+





_
2
					d	<	gBtQ/{V:~_AkC^E*
fD1y_:   #AZend\Feed\Reader\Extension9Zend\Feed\Reader\Entry$CZend\Feed\Reader\Collection-Zend\Feed\Reader*OZend\Feed\PubSubHubbub\Subscriber%EZend\Feed\PubSubHubbub\Model)MZend\Feed\PubSubHubbub\Exception9Zend\Feed\PubSubHubbub3Zend\Feed\ExceptionZend\Feed!=Zend\EventManager\Filter$CZend\EventManager\Exception/Zend\EventManager9Zend\Escaper\Exception%Zend\Escaper1Zend\Dom\ExceptionZend\Dom9Zend\Di\ServiceLocator/Zend\Di\Exception+Zend\Di\Display#AZend\Di\Definition\Builder&GZend\Di\Definition\Annotation1Zend\Di\DefinitionZend\Di!Zend\Debug2_Zend\Db\TableGateway\Feature\EventFeature%EZend\Db\TableGateway\Feature'IZend\Db\TableGateway\Exception5Zend\Db\TableGateway7Zend\Db\Sql\Predicate'IZend\Db\Sql\Platform\SqlServer$CZend\Db\Sql\Platform\Oracle'IZend\Db\Sql\Platform\Mysql\Ddl#AZend\Db\Sql\Platform\Mysql5Zend\Db\Sql\Platform7Zend\Db\Sql\Exception#AZend\Db\Sql\Ddl\Constraint9Zend\Db\Sql\Ddl\Column+Zend\Db\Sql\Ddl#Zend\Db\Sql#AZend\Db\RowGateway\Feature%EZend\Db\RowGateway\Exception1Zend\Db\RowGateway$CZend\Db\ResultSet\Exception/Zend\Db\ResultSet ;Zend\Db\Metadata\Source ;Zend\Db\Metadata\Object-Zend\Db\Metadata/Zend\Db\Exception!=Zend\Db\Adapter\Profiler!=Zend\Db\Adapter\Platform"?Zend\Db\Adapter\Exception0[Zend\Db\Adapter\Driver\Sqlsrv\Exception&GZend\Db\Adapter\Driver\Sqlsrv%EZend\Db\Adapter\Driver\Pgsql+QZend\Db\Adapter\Driver\Pdo\Feature#AZend\Db\Adapter\Driver\Pdo$CZend\Db\Adapter\Driver\Oci8&GZend\Db\Adapter\Driver\Mysqli&GZend\Db\Adapter\Driver\IbmDb2'IZend\Db\Adapter\Driver\Feature9Zend\Db\Adapter\Driver+Zend\Db\Adapter%EZend\Crypt\Symmetric\Padding'IZend\Crypt\Symmetric\Exception5Zend\Crypt\Symmetric+QZend\Crypt\PublicKey\Rsa\Exception!=Zend\Crypt\PublicKey\Rsa5Zend\Crypt\PublicKey&GZend\Crypt\Password\Exception3Zend\Crypt\Password,SZend\Crypt\Key\Derivation\Exception"?Zend\Crypt\Key\Derivation5Zend\Crypt\Exception!Zend\Crypt3Zend\Console\Prompt9Zend\Console\Exception1Zend\Console\Color5Zend\Console\Charset5Zend\Console\Adapter%Zend\Console1Zend\Config\Writer1Zend\Config\Reader7Zend\Config\Processor7Zend\Config\Exception#Zend\Config/Zend\Code\Scanner'IZend\Code\Reflection\Exception*OZend\Code\Reflection\DocBlock\Tag&GZend\Code\Reflection\DocBlock5Zend\Code\Reflection&GZend\Code\Generator\Exception)MZend\Code\Generator\DocBlock\Tag%EZend\Code\Generator\DocBlock3Zend\Code\Generator3Zend\Code\Exception$CZend\Code\Annotation\Parser5Zend\Code\AnnotationZend\Code9Zend\Captcha\Exception%Zend\Captcha"?Zend\Cache\Storage\Plugin#AZend\Cache\Storage\Adapter1Zend\Cache\Storage1Zend\Cache\Service1Zend\Cache\Pattern5Zend\Cache\Exception!Zend\Cache(KZend\Barcode\Renderer\Exception7Zend\Barcode\Renderer&GZend\Barcode\Object\Exception3Zend\Barcode\Object~9Zend\Barcode\Exception}%Zend\Barcode|&GZend\Authentication\Validator{$CZend\Authentication\Storagez&GZend\Authentication\Exceptiony#AZend\Feed\Reader\Exception
   r wHeF"o:p9\/





f
I
*
						u	V	/	lO5lN)r_B(pS,b5
sW>qU/	d:              3Zend\Mail\Transport^#AZend\Mail\Storage\Writable\)MZend\Mail\Storage\Part\ExceptionZ9Zend\Mail\Storage\Part["?Zend\Mail\Storage\MessageY!=Zend\Mail\Storage\FolderX$CZend\Mail\Storage\ExceptionW/Zend\Mail\StorageV%EZend\Mail\Protocol\Smtp\AuthU%EZend\Mail\Protocol\ExceptionT1Zend\Mail\ProtocolS#AZend\Mail\Header\ExceptionR-Zend\Mail\HeaderQ3Zend\Mail\ExceptionP/Zend\Mail\AddressZend\MailO ;Zend\Log\Writer\FirePhpN"?Zend\Log\Writer\ChromePhpM+Zend\Log\WriterL1Zend\Log\ProcessorK1Zend\Log\FormatterI+Zend\Log\FilterH1Zend\Log\ExceptionGZend\LogJ7Zend\Loader\ExceptionF#Zend\LoaderE*OZend\Ldap\Node\Schema\ObjectClassD,SZend\Ldap\Node\Schema\AttributeTypeC7Zend\Ldap\Node\SchemaB9Zend\Ldap\Node\RootDseA)Zend\Ldap\Node@)Zend\Ldap\Ldif?#AZend\Ldap\Filter\Exception>-Zend\Ldap\Filter=3Zend\Ldap\Exception<&GZend\Ldap\Converter\Exception;3Zend\Ldap\Converter:5Zend\Ldap\Collection9Zend\Ldap85Zend\Json\Server\Smd7"?Zend\Json\Server\Response6!=Zend\Json\Server\Request5#AZend\Json\Server\Exception4-Zend\Json\Server33Zend\Json\Exception2Zend\Json1#AZend\InputFilter\Exception0-Zend\InputFilter/7Zend\I18n\View\Helper-)Zend\I18n\View.3Zend\I18n\Validator,$CZend\I18n\Translator\Plural+$CZend\I18n\Translator\Loader)5Zend\I18n\Translator*-Zend\I18n\Filter(3Zend\I18n\Exception'1Zend\Http\Response&!=Zend\Http\PhpEnvironment%#AZend\Http\Header\Exception$/YZend\Http\Header\Accept\FieldValuePart#-Zend\Http\Header"3Zend\Http\Exception!#AZend\Http\Client\Exception +QZend\Http\Client\Adapter\Exception!=Zend\Http\Client\Adapter-Zend\Http\ClientZend\Http#AZend\Form\View\Helper\File&GZend\Form\View\Helper\Captcha7Zend\Form\View\Helper)Zend\Form\View3Zend\Form\Exception/Zend\Form\Element5Zend\Form\AnnotationZend\Form-Zend\Filter\Word-Zend\Filter\File7Zend\Filter\Exception3Zend\Filter\Encrypt5Zend\Filter\Compress#Zend\Filter%EZend\File\Transfer\Exception#AZend\File\Transfer\Adapter1Zend\File\Transfer3Zend\File\Exception
Zend\File	,SZend\Feed\Writer\Renderer\Feed\Atom'IZend\Feed\Writer\Renderer\Feed-UZend\Feed\Writer\Renderer\Entry\Atom(KZend\Feed\Writer\Renderer\Entry"?Zend\Feed\Writer\Renderer:oZend\Feed\Writer\Extension\WellFormedWeb\Renderer6gZend\Feed\Writer\Extension\Threading\Renderer2_Zend\Feed\Writer\Extension\Slash\Renderer3aZend\Feed\Writer\Extension\ITunes\Renderer *OZend\Feed\Writer\Extension\ITunes7iZend\Feed\Writer\Extension\DublinCore\Renderer4cZend\Feed\Writer\Extension\Content\Renderer1]Zend\Feed\Writer\Extension\Atom\Renderer#AZend\Feed\Writer\Extension#AZend\Feed\Writer\Exception-Zend\Feed\Writer7Zend\Feed\Reader\Http#AZend\Feed\Reader\Feed\Atom7Zend\Feed\Reader\Feed1]Zend\Feed\Reader\Extension\WellFormedWeb*OZend\Feed\Reader\Extension\Thread/YZend\Feed\Reader\Extension\Syndication)MZend\Feed\Reader\Extension\Slash+QZend\Feed\Reader\Extension\Podcast.WZend\Feed\Reader\Extension\DublinCore3aZend\Feed\Reader\Extension\CreativeCommons+QZend\Feed\Reader\Extension\Content  &GZend\Mail\Transport\Exception]
 x  dJ5a<r[:! oS:X0



y
R
/
					[	:	!	 mC&iI'	T:d<U9tQ. nN+V0         /YZend\View\Helper\Placeholder\Container%EZend\View\Helper\Placeholder-UZend\View\Helper\Navigation\Listener$CZend\View\Helper\Navigation!=Zend\View\Helper\Escaper-Zend\View\Helper3Zend\View\ExceptionZend\View%Zend\Version"?Zend\Validator\Translator9Zend\Validator\Sitemap3Zend\Validator\File!=Zend\Validator\Exception/Zend\Validator\Db9Zend\Validator\Barcode)Zend\Validator1Zend\Uri\ExceptionZend\Uri"?Zend\Text\Table\Exception"?Zend\Text\Table\Decorator+Zend\Text\Table#AZend\Text\Figlet\Exception-Zend\Text\Figlet3Zend\Text\ExceptionZend\Text)Zend\Test\Util%EZend\Test\PHPUnit\Controller1Zend\Tag\Exception+QZend\Tag\Cloud\Decorator\Exception!=Zend\Tag\Cloud\Decorator)Zend\Tag\CloudZend\Tag"?Zend\Stdlib\StringWrapper&GZend\Stdlib\Hydrator\Strategy$CZend\Stdlib\Hydrator\Filter'IZend\Stdlib\Hydrator\Aggregate5Zend\Stdlib\Hydrator7Zend\Stdlib\Exception ;Zend\Stdlib\ArrayObject#Zend\Stdlib+QZend\Soap\Wsdl\ComplexTypeStrategy-Zend\Soap\Server3Zend\Soap\Exception-Zend\Soap\Client1]Zend\Soap\AutoDiscover\DiscoveryStrategyZend\Soap9Zend\Session\Validator1]Zend\Session\Storage\SessionArrayStorage5Zend\Session\Storage5Zend\Session\Service!=Zend\Session\SaveHandler9Zend\Session\Exception9Zend\Session\Container3Zend\Session\Config%Zend\Session"?Zend\ServiceManager\Proxy&GZend\ServiceManager\Exception9Zend\ServiceManager\Di3Zend\ServiceManager)MZend\Server\Reflection\Exception9Zend\Server\Reflection1Zend\Server\Method7Zend\Server\Exception#Zend\Server"?Zend\Serializer\Exception ;Zend\Serializer\Adapter+Zend\Serializer ;Zend\ProgressBar\Upload#AZend\ProgressBar\Exception+QZend\ProgressBar\Adapter\Exception!=Zend\ProgressBar\Adapter-Zend\ProgressBar(KZend\Permissions\Rbac\Exception7Zend\Permissions\Rbac"?Zend\Permissions\Acl\Role&GZend\Permissions\Acl\Resource'IZend\Permissions\Acl\Exception'IZend\Permissions\Acl\Assertion5Zend\Permissions\Acl&GZend\Paginator\ScrollingStyle!=Zend\Paginator\Exception'IZend\Paginator\Adapter\Service)MZend\Paginator\Adapter\Exception9Zend\Paginator\Adapter)Zend\Paginator5Zend\Navigation\View ;Zend\Navigation\Service5Zend\Navigation\Page"?Zend\Navigation\Exception~+Zend\Navigation}1Zend\Mvc\View\Http{7Zend\Mvc\View\Consolez'Zend\Mvc\View|-Zend\Mvc\Servicey5Zend\Mvc\Router\Httpw"?Zend\Mvc\Router\Exceptionv ;Zend\Mvc\Router\Consoleu+Zend\Mvc\Routerx ;Zend\Mvc\ResponseSendert'Zend\Mvc\I18ns1Zend\Mvc\Exceptionr+QZend\Mvc\Controller\Plugin\Serviceq#AZend\Mvc\Controller\Pluginp3Zend\Mvc\ControlleroZend\Mvcn.WZend\ModuleManager\Listener\Exceptionl$CZend\ModuleManager\Listenerk#AZend\ModuleManager\Feature%EZend\ModuleManager\Exceptionj1Zend\ModuleManagerm3Zend\Mime\ExceptioniZend\Mimeh7Zend\Memory\Exceptionf7Zend\Memory\Containere#Zend\Memoryg-Zend\Math\Sourced3Zend\Math\Exceptionb'IZend\Math\BigInteger\Exceptiona%EZend\Math\BigInteger\Adapter_5Zend\Math\BigInteger`   Zend\Mathc
    ~b<fP?$lYB%mW:$vZ:	





n
X
=
						e	L	2	"	i;+{cN9uaR7{]oZE$mU=n6`         D[Symfony\Bundle\WebProfilerBundle\Tests\DependencyInjection&:o[Symfony\Bundle\WebProfilerBundle\Tests\Controller%7i[Symfony\Bundle\WebProfilerBundle\Tests\Command$/Y[Symfony\Bundle\WebProfilerBundle\Tests)2_[Symfony\Bundle\WebProfilerBundle\Profiler#7i[Symfony\Bundle\WebProfilerBundle\EventListener"=u[Symfony\Bundle\WebProfilerBundle\DependencyInjection!4c[Symfony\Bundle\WebProfilerBundle\Controller 1][Symfony\Bundle\WebProfilerBundle\Command)M[Symfony\Bundle\WebProfilerBundle+)Silex\Provider)Silex\Provider!Silex\Util1/Silex\Tests\Route7FSilex\Tests\Provider\ValidatorServiceProviderTest\Constraint65Silex\Tests\Provider5"?Silex\Tests\EventListener4 ;Silex\Tests\Application2#Silex\Tests3#Silex\Route9)Silex\Provider0+Silex\Exception/3Silex\EventListener./Silex\Application8Silex-!Silex\Util/Silex\Tests\RouteFSilex\Tests\Provider\ValidatorServiceProviderTest\Constraint5Silex\Tests\Provider"?Silex\Tests\EventListener
 ;Silex\Tests\Application#Silex\Tests	#Silex\Route)Silex\Provider+Silex\Exception3Silex\EventListener/Silex\ApplicationSilex!Silex\Util/Silex\Tests\RouteFSilex\Tests\Provider\ValidatorServiceProviderTest\Constraint5Silex\Tests\Provider"?Silex\Tests\EventListener ;Silex\Tests\Application#Silex\Tests#Silex\Route)Silex\Provider+Silex\Exception3Silex\EventListener/Silex\ApplicationSilexglobalglobal(*global-|global-}globalHglobal-UHJakubOnderka\PhpParallelLint\Process%EHJakubOnderka\PhpParallelLint|xglobal3|xSecurityLib\BigMath7|xSecurityLibTest\Mocks#|xSecurityLib7|xPasswordLibTest\Mocks|kRandomLib(|iglobal-|iRandomLib\Source+|iRandomLib\Mixer#A|iRandomLibTest\Mocks\Random3|iRandomLibTest\Mocks|iRandomLib"?@EMtHaml\Tests\Support\Twig!=@EMtHaml\Tests\Support\Php3@EMtHaml\Tests\Parser!=@EMtHaml\Tests\NodeVisitor/@EMtHaml\Tests\Node%@EMtHaml\Tests'@EMtHaml\Target3@EMtHaml\Support\Twig1@EMtHaml\Support\Php)@EMtHaml\Runtime'@EMtHaml\Parser1@EMtHaml\NodeVisitor#@EMtHaml\Node1@EMtHaml\Indentation9@EMtHaml\Filter\Markdown1@EMtHaml\Filter\Less'@EMtHaml\Filter-@EMtHaml\Exception@EMtHaml@EFoo\Bar	@E3!malkusch\index\test)!malkusch\index3!malkusch\autoloader%!malkusch\bav3!malkusch\autoloader%!malkusch\bav3!malkusch\autoloader5Hoa\String\Test\Unit)Hoa\String\Bin}!Hoa\String~/xHoa\Ruler\Visitork3xHoa\Ruler\Model\Bagi+xHoa\Ruler\Modelj3xHoa\Ruler\Exceptionh'xHoa\Ruler\BinfxHoa\Rulerg/wHoa\Ruler\Visitor|3wHoa\Ruler\Model\Bagz+wHoa\Ruler\Model{3wHoa\Ruler\Exceptiony'wHoa\Ruler\BinwwHoa\RulerxKglobaleJglobal//DZendXml\ExceptionbDZendXmlc%DZendTest\Xmld/Zend\XmlRpc\Value%EZend\XmlRpc\Server\Exception1Zend\XmlRpc\Server5Zend\XmlRpc\Response3Zend\XmlRpc\Request7Zend\XmlRpc\Generator7Zend\XmlRpc\Exception%EZend\XmlRpc\Client\Exception1Zend\XmlRpc\Client#Zend\XmlRpc1Zend\View\Strategy1Zend\View\Resolver1Zend\View\Renderer+Zend\View\Model
 x ZJ:bG, Y3#|VFdJ




p
R
4
						b	D	&	rO,~[8$aH&nO6xX.]6	k:b9                      *OESymfony\Component\EventDispatcher!2(KSymfony\Component\Console\Style!0)MSymfony\Component\Console\Output!/(KSymfony\Component\Console\Input!.)MSymfony\Component\Console\Helper!-,SSymfony\Component\Console\Formatter!,-USymfony\Component\Console\Descriptor!+0[dAsm89\Twig\CacheExtension\CacheStrategy!*"?dAsm89\Twig\CacheExtension!)"?Zend\Stdlib\StringWrapper!&0[Zend\Stdlib\Hydrator\Strategy\Exception!$&GZend\Stdlib\Hydrator\Strategy!%,SZend\Stdlib\Hydrator\NamingStrategy!#&GZend\Stdlib\Hydrator\Iterator!"$CZend\Stdlib\Hydrator\Filter! 5Zend\Stdlib\Hydrator!!/Zend\Stdlib\Guard!'7Zend\Stdlib\Extractor!7Zend\Stdlib\Exception!9Zend\Stdlib\ArrayUtils!#Zend\Stdlib!)M̥Zend\Hydrator\Strategy\Exception!9̥Zend\Hydrator\Strategy!%E̥Zend\Hydrator\NamingStrategy!9̥Zend\Hydrator\Iterator!5̥Zend\Hydrator\Filter! ;̥Zend\Hydrator\Exception!'̥Zend\Hydrator!!=VPagerfanta\View\Template +VPagerfanta\View 7VPagerfanta\Tests\View -UVPagerfanta\Tests\Adapter\DoctrineORM !=VPagerfanta\Tests\Adapter -VPagerfanta\Tests 5VPagerfanta\Exception 1VPagerfanta\Adapter !VPagerfanta !=QPagerfanta\View\Template +QPagerfanta\View 7QPagerfanta\Tests\View -UQPagerfanta\Tests\Adapter\DoctrineORM !=QPagerfanta\Tests\Adapter -QPagerfanta\Tests 5QPagerfanta\Exception 1QPagerfanta\Adapter !QPagerfanta "?JohnKary\PHPUnit\Listener "?JohnKary\PHPUnit\Listener "?NFaker\Test\Provider\fr_FR 3NFaker\Test\Provider !NFaker\Test 5NFaker\Provider\ua_UA 5NFaker\Provider\tr_TR 5NFaker\Provider\sr_RS "?NFaker\Provider\sr_Latn_RS "?NFaker\Provider\sr_Cyrl_RS 5NFaker\Provider\sk_SK 5NFaker\Provider\ru_RU 5NFaker\Provider\pt_BR 5NFaker\Provider\pl_PL 5NFaker\Provider\nl_NL 5NFaker\Provider\nl_BE 5NFaker\Provider\it_IT 5NFaker\Provider\is_IS 5NFaker\Provider\hy_AM 5NFaker\Provider\fr_FR 5NFaker\Provider\fr_BE 5NFaker\Provider\fi_FI 5NFaker\Provider\es_ES 5NFaker\Provider\es_AR 5NFaker\Provider\en_US 5NFaker\Provider\en_GB 5NFaker\Provider\en_CA 5NFaker\Provider\de_DE 5NFaker\Provider\de_AT 5NFaker\Provider\da_DK 5NFaker\Provider\cs_CZ 5NFaker\Provider\bg_BG )NFaker\Provider +QNFaker\PHPUnit\Framework\Constraint -NFaker\ORM\Propel 1NFaker\ORM\Mandango 1NFaker\ORM\Doctrine 'NFaker\Guesser NFaker eglobal 1TheSeer\fDOM\Tests -TheSeer\fDOM\CSS %TheSeer\fDOM 'ISebastianBergmann\FinderFacade global %ESebastianBergmann\PHPCPD\Log 3aSebastianBergmann\PHPCPD\Detector\Strategy *OSebastianBergmann\PHPCPD\Detector %ESebastianBergmann\PHPCPD\CLI !=SebastianBergmann\PHPCPD global %ESebastianBergmann\PHPCPD\Log 3aSebastianBergmann\PHPCPD\Detector\Strategy *OSebastianBergmann\PHPCPD\Detector %ESebastianBergmann\PHPCPD\CLI !=SebastianBergmann\PHPCPD %PHPMD\Writer %PHPMD\TextUI /PHPMD\Rule\Naming /PHPMD\Rule\Design !=PHPMD\Rule\Controversial 5PHPMD\Rule\CleanCode !PHPMD\Rule )PHPMD\Renderer !PHPMD\Node PHPMD rglobal wnglobal u(KnPHPUnitTests\Extension\Fixtures vglobal tglobal,.W[Symfony\Bundle\WebProfilerBundle\Twig*8k[Symfony\Bundle\WebProfilerBundle\Tests\Profiler(   [Symfo0[ESymfony\Component\EventDispatcher\Debug!1
 W  zM }JJuB{L



s
F
					}	p	O	HP.xIqHZ#Y#j'a'                         )MSymfony\Component\Finder\Adapter!/YSymfony\Component\Filesystem\Exception!9mSymfony\Component\ExpressionLanguage\ParserCache!-USymfony\Component\ExpressionLanguage!0[Symfony\Component\EventDispatcher\Debug!*OSymfony\Component\EventDispatcher!;qSymfony\Component\DependencyInjection\ParameterBag!BSymfony\Component\DependencyInjection\LazyProxy\PhpDumper!FSymfony\Component\DependencyInjection\LazyProxy\Instantiator!8kSymfony\Component\DependencyInjection\Extension!8kSymfony\Component\DependencyInjection\Exception!5eSymfony\Component\DependencyInjection\Dumper!7iSymfony\Component\DependencyInjection\Compiler!.WSymfony\Component\DependencyInjection!/YSymfony\Component\Debug\Tests\Fixtures!2_Symfony\Component\Debug\FatalErrorHandler!6gSymfony\Component\CssSelector\XPath\Extension!,SSymfony\Component\CssSelector\XPath!5eSymfony\Component\CssSelector\Parser\Handler!-USymfony\Component\CssSelector\Parser!+QSymfony\Component\CssSelector\Node!0[Symfony\Component\CssSelector\Exception!(KSymfony\Component\Console\Style!)MSymfony\Component\Console\Output!~(KSymfony\Component\Console\Input!})MSymfony\Component\Console\Helper!|,SSymfony\Component\Console\Formatter!{-USymfony\Component\Console\Descriptor!z.WSymfony\Component\Config\Tests\Loader!y*OSymfony\Component\Config\Resource!x(KSymfony\Component\Config\Loader!w4cSymfony\Component\Config\Definition\Builder!u,SSymfony\Component\Config\Definition!v!=Symfony\Component\Config!t0[Symfony\Component\Asset\VersionStrategy!p*OSymfony\Component\Asset\Exception!n(KSymfony\Component\Asset\Context!m ;Symfony\Component\Asset!oQSymfony\Bundle\SecurityBundle\DependencyInjection\Security\UserProvider!lLSymfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory!k2_Symfony\Bundle\FrameworkBundle\Templating!j3aSymfony\Bundle\FrameworkBundle\CacheWarmer!i!=Symfony\Bridge\Twig\Form!h0[Symfony\Bridge\Doctrine\Form\ChoiceList!f ;Symfony\Bridge\Doctrine!gFoo!s1ClassesWithParents!qClassMap!r	"1]QSymfony\Component\Routing\Matcher\Dumper!c*OQSymfony\Component\Routing\Matcher!d3aQSymfony\Component\Routing\Generator\Dumper!b,SQSymfony\Component\Routing\Generator!a,SQSymfony\Component\Routing\Exception!`"?QSymfony\Component\Routing!e.WSymfony\Component\HttpKernel\Profiler!_)MSymfony\Component\HttpKernel\Log!^/YSymfony\Component\HttpKernel\HttpCache!\.WSymfony\Component\HttpKernel\Fragment![/YSymfony\Component\HttpKernel\Exception!Z3aSymfony\Component\HttpKernel\DataCollector!Y0[Symfony\Component\HttpKernel\Controller!X1]Symfony\Component\HttpKernel\CacheWarmer!W2_Symfony\Component\HttpKernel\CacheClearer!V,SSymfony\Component\HttpKernel\Bundle!U%ESymfony\Component\HttpKernel!]1global!P9m1Symfony\Component\HttpFoundation\Session\Storage!T7i1Symfony\Component\HttpFoundation\Session\Flash!R;q1Symfony\Component\HttpFoundation\Session\Attribute!Q1]1Symfony\Component\HttpFoundation\Session!S7i1Symfony\Component\HttpFoundation\File\MimeType!N)M1Symfony\Component\HttpFoundation!O/YCSymfony\Component\Debug\Tests\Fixtures!M2_CSymfony\Component\Debug\FatalErrorHandler!L)MSymfony\Component\Yaml\Exception!<global"global!;global!:global"global!9(KSymfony\Component\Process\Pipes!8,SSymfony\Component\Process\Exception!7,SOSymfony\Component\Finder\Expression!6+QOSymfony\Component\Finder\Exception!5)MOSymfony\Component\Finder\Adapter!4   +QSymfony\Component\Finder\Exception!
   O  P&x3}KwJP!



c
0				y	D	m@T!<CU,]&\+xJ       3aSymfony\Component\Serializer\NameConverter!4cSymfony\Component\Serializer\Mapping\Loader!5eSymfony\Component\Serializer\Mapping\Factory!-USymfony\Component\Serializer\Mapping!/YSymfony\Component\Serializer\Exception!-USymfony\Component\Serializer\Encoder!%ESymfony\Component\Serializer!.WSymfony\Component\Security\Http\Tests!0[Symfony\Component\Security\Http\Session!3aSymfony\Component\Security\Http\RememberMe!/YSymfony\Component\Security\Http\Logout!1]Symfony\Component\Security\Http\Firewall!3aSymfony\Component\Security\Http\EntryPoint!6gSymfony\Component\Security\Http\Authorization!7iSymfony\Component\Security\Http\Authentication!(KSymfony\Component\Security\Http!5eSymfony\Component\Security\Csrf\TokenStorage!7iSymfony\Component\Security\Csrf\TokenGenerator!(KSymfony\Component\Security\Csrf!-USymfony\Component\Security\Core\Util!-USymfony\Component\Security\Core\User!-USymfony\Component\Security\Core\Role!2_Symfony\Component\Security\Core\Exception!0[Symfony\Component\Security\Core\Encoder!<sSymfony\Component\Security\Core\Authorization\Voter!6gSymfony\Component\Security\Core\Authorization!FSymfony\Component\Security\Core\Authentication\Token\Storage!=uSymfony\Component\Security\Core\Authentication\Token!BSymfony\Component\Security\Core\Authentication\RememberMe!@{Symfony\Component\Security\Core\Authentication\Provider!7iSymfony\Component\Security\Core\Authentication!(KSymfony\Component\Security\Core!2_Symfony\Component\Security\Acl\Permission!-USymfony\Component\Security\Acl\Model!1]Symfony\Component\Routing\Matcher\Dumper!*OSymfony\Component\Routing\Matcher!3aSymfony\Component\Routing\Generator\Dumper!,SSymfony\Component\Routing\Generator!,SSymfony\Component\Routing\Exception!"?Symfony\Component\Routing!3aSymfony\Component\PropertyAccess\Exception!)MSymfony\Component\PropertyAccess!(KSymfony\Component\Process\Pipes!,SSymfony\Component\Process\Exception!4cSymfony\Component\OptionsResolver\Exception!*OSymfony\Component\OptionsResolver!.WSymfony\Component\Intl\ResourceBundle!)MSymfony\Component\Intl\Exception!2_Symfony\Component\Intl\Data\Bundle\Writer!2_Symfony\Component\Intl\Data\Bundle\Reader!4cSymfony\Component\Intl\Data\Bundle\Compiler!.WSymfony\Component\HttpKernel\Profiler!)MSymfony\Component\HttpKernel\Log!/YSymfony\Component\HttpKernel\HttpCache!.WSymfony\Component\HttpKernel\Fragment!/YSymfony\Component\HttpKernel\Exception!3aSymfony\Component\HttpKernel\DataCollector!0[Symfony\Component\HttpKernel\Controller!1]Symfony\Component\HttpKernel\CacheWarmer!2_Symfony\Component\HttpKernel\CacheClearer!,SSymfony\Component\HttpKernel\Bundle!%ESymfony\Component\HttpKernel!9mSymfony\Component\HttpFoundation\Session\Storage!7iSymfony\Component\HttpFoundation\Session\Flash!;qSymfony\Component\HttpFoundation\Session\Attribute!1]Symfony\Component\HttpFoundation\Session!7iSymfony\Component\HttpFoundation\File\MimeType!)MSymfony\Component\HttpFoundation!.WSymfony\Component\Form\Tests\Fixtures!$CSymfony\Component\Form\Test!DSymfony\Component\Form\Extension\Validator\ViolationMapper!7iSymfony\Component\Form\Extension\DataCollector!;qSymfony\Component\Form\Extension\Csrf\CsrfProvider!9mSymfony\Component\Form\Extension\Core\ChoiceList!)MSymfony\Component\Form\Exception!1]Symfony\Component\Form\ChoiceList\Loader!2_Symfony\Component\Form\ChoiceList\Factory!*OSymfony\Component\Form\ChoiceList!9Symfony\Component\Form!
   f tHj<Z+b.j>




~
Q
+					X	2	hB"Y3uJ$f;zEe7hCg>           	 "f3 Composer\Repository"s+ Composer\Plugin"r ; Composer\Package\Loader"q(K Composer\Package\LinkConstraint"p"? Composer\Package\Archiver"n- Composer\Package"o1 Composer\Installer"l# Composer\IO"m!= Composer\EventDispatcher"k3 Composer\Downloader"j.W Composer\DependencyResolver\Operation"h$C Composer\DependencyResolver"i+ Composer\Config"g ClassMap"u	 "w6gSymfony\Component\CssSelector\XPath\Extension"T,SSymfony\Component\CssSelector\XPath"U5eSymfony\Component\CssSelector\Parser\Handler"R-USymfony\Component\CssSelector\Parser"S+QSymfony\Component\CssSelector\Node"Q0[Symfony\Component\CssSelector\Exception"P.WSymfony\Component\Config\Tests\Loader"B*OSymfony\Component\Config\Resource"A(KSymfony\Component\Config\Loader"@4cSymfony\Component\Config\Definition\Builder">,SSymfony\Component\Config\Definition"?!=Symfony\Component\Config"=+Q Doctrine\DBAL\Sharding\ShardChoser"$9 Doctrine\DBAL\Sharding"%%E Doctrine\DBAL\Schema\Visitor"#*O Doctrine\DBAL\Schema\Synchronizer""5 Doctrine\DBAL\Schema"!7 Doctrine\DBAL\Logging" 5 Doctrine\DBAL\Driver"' Doctrine\DBAL"+QDoctrine\DBAL\Sharding\ShardChoser#9Doctrine\DBAL\Sharding#%EDoctrine\DBAL\Schema\Visitor#*ODoctrine\DBAL\Schema\Synchronizer#5Doctrine\DBAL\Schema#7Doctrine\DBAL\Logging#5Doctrine\DBAL\Driver#'Doctrine\DBAL#+QDoctrine\DBAL\Sharding\ShardChoser)9Doctrine\DBAL\Sharding)%EDoctrine\DBAL\Schema\Visitor)*ODoctrine\DBAL\Schema\Synchronizer)5Doctrine\DBAL\Schema)7Doctrine\DBAL\Logging)5Doctrine\DBAL\Driver)'Doctrine\DBAL)+QDoctrine\DBAL\Sharding\ShardChoser#9Doctrine\DBAL\Sharding#%EDoctrine\DBAL\Schema\Visitor#*ODoctrine\DBAL\Schema\Synchronizer#5Doctrine\DBAL\Schema#7Doctrine\DBAL\Logging#5Doctrine\DBAL\Driver#'Doctrine\DBAL#,SDoctrine\Common\DataFixtures\Purger"%EDoctrine\Common\DataFixtures",S{Doctrine\Common\DataFixtures\Purger+_%E{Doctrine\Common\DataFixtures+^,SyDoctrine\Common\DataFixtures\Purger"
%EyDoctrine\Common\DataFixtures"	,SwDoctrine\Common\DataFixtures\Purger+a%EwDoctrine\Common\DataFixtures+`,StDoctrine\Common\DataFixtures\Purger'?%EtDoctrine\Common\DataFixtures'>/kCrada\Apidoc\View"/dCrada\Apidoc\View"global!)MSymfony\Component\Yaml\Exception")MSymfony\Component\VarDumper\Test"+QSymfony\Component\VarDumper\Dumper"+QSymfony\Component\VarDumper\Cloner" .WSymfony\Component\Validator\Violation!.WSymfony\Component\Validator\Validator!9mSymfony\Component\Validator\Tests\Mapping\Loader!3aSymfony\Component\Validator\Tests\Fixtures!3aSymfony\Component\Validator\Mapping\Loader!4cSymfony\Component\Validator\Mapping\Factory!2_Symfony\Component\Validator\Mapping\Cache!,SSymfony\Component\Validator\Mapping!.WSymfony\Component\Validator\Exception!,SSymfony\Component\Validator\Context!$CSymfony\Component\Validator!-USymfony\Component\Translation\Loader!0[Symfony\Component\Translation\Extractor!0[Symfony\Component\Translation\Exception!-USymfony\Component\Translation\Dumper!0[Symfony\Component\Translation\Catalogue!&GSymfony\Component\Translation!+QSymfony\Component\Templating\Tests!,SSymfony\Component\Templating\Loader!,SSymfony\Component\Templating\Helper!+QSymfony\Component\Templating\Asset!%ESymfony\Component\Templating!4cSymfony\Component\Serializer\Tests\Fixtures!    Foo"v ; Composer\Repository\Vcs"t
 w dB-qT3&wN&_8$sR=#




o
P
3
						a	B		r[B#
waK5	M^Y(^9gI-`+                $C:,Behat\MinkExtension\Context#4c:(Behat\MinkExtension\ServiceContainer\Driver#$C:(Behat\MinkExtension\Context#39Behat\Mink\Selector#19Behat\Mink\Element#/9Behat\Mink\Driver#39oBehat\Mink\Selector#19oBehat\Mink\Element#/9oBehat\Mink\Driver#14Behat\Gherkin\Node#54Behat\Gherkin\Loader#94Behat\Gherkin\Keywords#54Behat\Gherkin\Filter# ;4Behat\Gherkin\Exception#34Behat\Gherkin\Cache#2&global#!=&Cartalyst\Support\Traits"#A&Cartalyst\Support\Handlers"$C&Cartalyst\Support\Contracts"!=&Cartalyst\Support\Traits##A&Cartalyst\Support\Handlers# $C&Cartalyst\Support\Contracts"-UISymfony\Component\Translation\Loader"0[ISymfony\Component\Translation\Extractor"0[ISymfony\Component\Translation\Exception"-UISymfony\Component\Translation\Dumper"0[ISymfony\Component\Translation\Catalogue"&GISymfony\Component\Translation";q
Symfony\Component\DependencyInjection\ParameterBag"B
Symfony\Component\DependencyInjection\LazyProxy\PhpDumper"F
Symfony\Component\DependencyInjection\LazyProxy\Instantiator"8k
Symfony\Component\DependencyInjection\Extension"8k
Symfony\Component\DependencyInjection\Exception"5e
Symfony\Component\DependencyInjection\Dumper"7i
Symfony\Component\DependencyInjection\Compiler".W
Symfony\Component\DependencyInjection"global"Foo"1ClassesWithParents"ClassMap"	"%LReact\Stream$%EReact\Stream"%>React\Stream$@%<React\Stream$2%9React\Socket$%5React\Socket"%.React\Socket$?%,React\Socket$0+React\EventLoop$+React\EventLoop"7React\EventLoop\Timer$9+React\EventLoop$87React\EventLoop\Timer$.+React\EventLoop$-'Guzzle\Stream"'Guzzle\Stream$/Guzzle\Parser\Url""?Guzzle\Parser\UriTemplate"7Guzzle\Parser\Message"5Guzzle\Parser\Cookie"/Guzzle\Parser\Url$"?Guzzle\Parser\UriTemplate$7Guzzle\Parser\Message$5Guzzle\Parser\Cookie$3Guzzle\Http\Message"7Guzzle\Http\Exception"-Guzzle\Http\Curl"#Guzzle\Http"$CGuzzle\Http\QueryAggregator$#AGuzzle\Http\Message\Header$3Guzzle\Http\Message$7Guzzle\Http\Exception$-Guzzle\Http\Curl$
#Guzzle\Http$	$CGuzzle\Http\QueryAggregator$#AGuzzle\Http\Message\Header$3Guzzle\Http\Message$7Guzzle\Http\Exception$-Guzzle\Http\Curl$#Guzzle\Http$ ;Guzzle\Common\Exception"'Guzzle\Common" ;nGuzzle\Common\Exception$'nGuzzle\Common$jEvenement"hEvenement$*!`React\Http"!\React\Http"!YReact\Http$:!XReact\Http$/&GxDflydev\Symfony\FinderFactory"/YoDflydev\PlaceholderResolver\DataSource"*OoDflydev\PlaceholderResolver\Cache"$CoDflydev\PlaceholderResolver"7kDflydev\DotAccessData"'IcDflydev\DotAccessConfiguration"~'IaDflydev\DotAccessConfiguration"(KBDflydev\Canal\InternetMediaType"}9BDflydev\Canal\Detector"| ;:Dflydev\ApacheMimeTypes"{$C2dflydev\util\antPathMatcher"y$C/dflydev\util\antPathMatcher"z#A Composer\Semver\Constraint"x Foo"e ; Composer\Repository\Vcs"c3 Composer\Repository"b+ Composer\Plugin"a ; Composer\Package\Loader"`(K Composer\Package\LinkConstraint"_"? Composer\Package\Archiver"]- Composer\Package"^1 Composer\Installer"[# Composer\IO"\!= Composer\EventDispatcher"Z3 Composer\Downloader"Y.W Composer\DependencyResolver\Operation"W$C Composer\DependencyResolver"X+ Composer\Config"V    ClassMap"d
   } nX:h;k1u^2nTC 





c
@
*
						n	P	*	a6 tT6"Y/yX7lBkJ1}hI9pS;!  3bLurker\StateChecker$-bLurker\Exception$)`Lurker\Tracker$3`Lurker\StateChecker$+`Lurker\Resource$-`Lurker\Exception$hTest\ns1$1hGo\Lang\Annotation$"?hGo\Instrument\Transformer$hGo\Core$-hGo\Aop\Intercept$-hGo\Aop\Framework$hGo\Aop$7hDemo\Aspect\Introduce$#hDemo\Aspect$-demo$!-_generated$+-AspectMock\Util$)demo$!)_generated$+)AspectMock\Util$global$a!_generated$l-Shire\_generated$o+Jazz\_generated$n ;Jazz\Pianist\_generated$m ;Codeception\Util\Shared$k$CCodeception\TestCase\Shared$j(KCodeception\TestCase\Interfaces$d&GCodeception\Subscriber\Shared$i3Codeception\PHPUnit$c#ACodeception\Lib\Interfaces$b)MCodeception\Lib\Generator\Shared$h)MCodeception\Lib\Connector\Shared$g%ECodeception\Lib\Actor\Shared$f#ACodeception\Command\Shared$eglobal$p!_generated${-Shire\_generated$~+Jazz\_generated$} ;Jazz\Pianist\_generated$| ;Codeception\Util\Shared$z$CCodeception\TestCase\Shared$y(KCodeception\TestCase\Interfaces$s&GCodeception\Subscriber\Shared$x3Codeception\PHPUnit$r#ACodeception\Lib\Interfaces$q)MCodeception\Lib\Generator\Shared$w)MCodeception\Lib\Connector\Shared$v%ECodeception\Lib\Actor\Shared$u#ACodeception\Command\Shared$tnTracy$[)Nette\Security$X-Nette\Reflection$W!mNette\Mail$V!\Nette\Http$U59Nette\ComponentModel$T9&Nette\Caching\Storages$S'&Nette\Caching$R'INette\Bridges\ApplicationLatte$Q5Nette\Application\UI$P/Nette\Application$O'Latte\Runtime$NLatte$MFSHL$L%Kdyby\Events$K*OkApiGen\Reflection\TokenReflection$I ;kApiGen\Reflection\Parts$J/YkApiGen\Generator\SourceCodeHighlighter$H!=kApiGen\Generator\Markups$G-kApiGen\Generator$F)kApiGen\Console$E#AkApiGen\Configuration\Theme$D%EkApiGen\Configuration\Readers$C5kApiGen\Configuration$B1React\SocketClient$>1React\SocketClient$1+React\Dns\Query$7+React\Dns\Query$,#React\Cache$+$CzDissect\Parser\LALR1\Dumper$)zDissect\Parser$%zDissect\Node$"?zDissect\Lexer\TokenStream$!=zDissect\Lexer\Recognizer$'zDissect\Lexer$ 3zTokenReflection\Php#9zTokenReflection\Broker#+zTokenReflection#zTest\ns1#1zGo\Lang\Annotation#"?zGo\Instrument\Transformer#zGo\Core#-zGo\Aop\Intercept#-zGo\Aop\Framework#zGo\Aop#7zDemo\Aspect\Introduce##zDemo\Aspect#ztglobal#)MwSymfony\Component\VarDumper\Test#+QwSymfony\Component\VarDumper\Dumper#+QwSymfony\Component\VarDumper\Cloner#'aSliver\Runner#3aNSymfony\Component\PropertyAccess\Exception#)MNSymfony\Component\PropertyAccess#.WNSymfony\Component\Validator\Violation%.WNSymfony\Component\Validator\Validator%9mNSymfony\Component\Validator\Tests\Mapping\Loader%3aNSymfony\Component\Validator\Tests\Fixtures%3aNSymfony\Component\Validator\Mapping\Loader%4cNSymfony\Component\Validator\Mapping\Factory%2_NSymfony\Component\Validator\Mapping\Cache%,SNSymfony\Component\Validator\Mapping%.WNSymfony\Component\Validator\Exception%,SNSymfony\Component\Validator\Context%$CNSymfony\Component\Validator%5eCSensioLabs\Behat\PageObjectExtension\Context#/?Buzz\Message\Form#5?Buzz\Message\Factory#%?Buzz\Message#'?Buzz\Listener#)?Buzz\Exception##?Buzz\Client#4c:8Behat\MinkExtension\ServiceContainer\Driver#+bLurker\Resource$
  jT;!lS:"
}aA"vXH&qU7






v
c
N
9
					t	V	-	sU6!c3sP/aE&|dD$nL*	_(oK        6gLeague\Tactician\Handler\CommandNameExtractor%#ALeague\Tactician\Exception%-League\Tactician%global%.WLeague\Tactician\Plugins\NamedCommand%5eLeague\Tactician\Handler\MethodNameInflector%)MLeague\Tactician\Handler\Locator%6gLeague\Tactician\Handler\CommandNameExtractor%#ALeague\Tactician\Exception%-League\Tactician%'bStash\Session%!=bStash\Interfaces\Drivers%-bStash\Interfaces%+bStash\Exception% ;bStash\Driver\FileSystem%!=EphpDocumentor\Reflection%!=DphpDocumentor\Reflection%"?RDesarrolla2\Cache\Adapter%/RDesarrolla2\Cache%global%9mSymfony\Component\ExpressionLanguage\ParserCache%-USymfony\Component\ExpressionLanguage%9org\bovigo\vfs\visitor%9org\bovigo\vfs\content%)org\bovigo\vfs%2_SebastianBergmann\GlobalState\TestFixture%&GSebastianBergmann\GlobalState%gglobal('uglobal%rglobal(%global%global(&7Elastica\QueryBuilder%N1Elastica\Exception%M%EElastica\Connection\Strategy%LElastica%O7Elastica\QueryBuilder%R1Elastica\Exception%Q%EElastica\Connection\Strategy%PElastica%S"?ީElasticsearch\Serializers%F ;ީElasticsearch\Endpoints%E"?ީElasticsearch\Connections%D/YީElasticsearch\ConnectionPool\Selectors%C(KީElasticsearch\Common\Exceptions%B"?ޛElasticsearch\Serializers%K ;ޛElasticsearch\Endpoints%J"?ޛElasticsearch\Connections%I/YޛElasticsearch\ConnectionPool\Selectors%H(KޛElasticsearch\Common\Exceptions%G+۶Hoa\Xyl\Element%#7ۭHoa\Xml\Element\Model%"+ۭHoa\Xml\Element%!ۙHoa\View% !LHoa\Router%55Hoa\Realdom\IRealdom%#5Hoa\Realdom%7)Hoa\Praspel\Exception%5Hoa\Locale\Localizer%+QڿHoa\Console\Readline\Autocompleter%)KzykHys\Thread$/[Illuminate\Remote%/PIlluminate\Remote$%ERocketeer\Traits\BashModules$-Rocketeer\Traits$(KRocketeer\Interfaces\Strategies$5Rocketeer\Interfaces$%ERocketeer\Traits\BashModules%-Rocketeer\Traits%(KRocketeer\Interfaces\Strategies%5Rocketeer\Interfaces% 7arock\snippets\filters$7^rock\snippets\filters$#7rock\access$#6rock\access$rock\date$rock\date$%]rock\session$%Yrock\session$rock\url$rock\url$%rock\request$%rock\request$%rock\request$1iOAuth\OAuth2\Token$5iOAuth\OAuth2\Service$1iOAuth\OAuth1\Token$9iOAuth\OAuth1\Signature$5iOAuth\OAuth1\Service$1iOAuth\Common\Token$5iOAuth\Common\Storage$5iOAuth\Common\Service$7iOAuth\Common\Http\Uri$!=iOAuth\Common\Http\Client$global$5PhpAmqpLib\Exception$wrock\mq$5Icebe\markdown\inline-@3Icebe\markdown\block-?5Dcebe\markdown\inline$3Dcebe\markdown\block$$CImagine\Image\Palette\Color$7Imagine\Image\Palette$9Imagine\Image\Metadata$1Imagine\Image\Fill$'Imagine\Image$)Imagine\Filter$/Imagine\Exception$+Imagine\Effects$%Imagine\Draw$!rock\image$)wrock\db\common$)vrock\db\common$+qrock\components$+mrock\components$7rock\cache\versioning$!rock\cache$#rock\events$ ;League\Flysystem\Cached$ ;0League\Flysystem\Plugin$*O0League\Flysystem\Adapter\Polyfill$-0League\Flysystem$+2rockunit\common$%2rock\helpers$%"rock\helpers$+ rockunit\common$% rock\helpers$rock\base$rock\base$	rock\base$   bLurker\Tracker$
 t  qaK5xeH6xZH$lT4
_=




j
E
				v	I	d5{aEuY1	jBuZ5bD%X'pK/	     #Zend\Db\Sql']%EZend\Db\RowGateway\Exception'W1Zend\Db\RowGateway'X$CZend\Db\ResultSet\Exception'U/Zend\Db\ResultSet'V-Zend\Db\Metadata'T/Zend\Db\Exception'S!=Zend\Db\Adapter\Profiler'R!=Zend\Db\Adapter\Platform'Q"?Zend\Db\Adapter\Exception'P0[Zend\Db\Adapter\Driver\Sqlsrv\Exception'O'IZend\Db\Adapter\Driver\Feature'N9Zend\Db\Adapter\Driver'M+Zend\Db\Adapter'L%EZend\Db\TableGateway\Feature'''IZend\Db\TableGateway\Exception'&5Zend\Db\TableGateway'(7Zend\Db\Sql\Predicate'%5Zend\Db\Sql\Platform'$7Zend\Db\Sql\Exception'"#AZend\Db\Sql\Ddl\Constraint' 9Zend\Db\Sql\Ddl\Column'+Zend\Db\Sql\Ddl'!#Zend\Db\Sql'#%EZend\Db\RowGateway\Exception'1Zend\Db\RowGateway'$CZend\Db\ResultSet\Exception'/Zend\Db\ResultSet'-Zend\Db\Metadata'/Zend\Db\Exception'!=Zend\Db\Adapter\Profiler'!=Zend\Db\Adapter\Platform'"?Zend\Db\Adapter\Exception'0[Zend\Db\Adapter\Driver\Sqlsrv\Exception''IZend\Db\Adapter\Driver\Feature'9Zend\Db\Adapter\Driver'+Zend\Db\Adapter'5LBjyAuthorize\Service'
#ALBjyAuthorize\Provider\Rule'	#ALBjyAuthorize\Provider\Role''ILBjyAuthorize\Provider\Resource''ILBjyAuthorize\Provider\Identity'1LBjyAuthorize\Guard'-LBjyAuthorize\Acl'5JBjyAuthorize\Service'#AJBjyAuthorize\Provider\Rule'#AJBjyAuthorize\Provider\Role''IJBjyAuthorize\Provider\Resource''IJBjyAuthorize\Provider\Identity'1JBjyAuthorize\Guard'-JBjyAuthorize\Acl'.WZend\ModuleManager\Listener\Exception'$CZend\ModuleManager\Listener'#AZend\ModuleManager\Feature'%EZend\ModuleManager\Exception'1Zend\ModuleManager'.WZend\ModuleManager\Listener\Exception'$CZend\ModuleManager\Listener'#AZend\ModuleManager\Feature' %EZend\ModuleManager\Exception&1Zend\ModuleManager',S*DoctrineORMModuleTest\Assets\Entity&,S&DoctrineORMModuleTest\Assets\Entity&,S#DoctrineORMModuleTest\Assets\Entity&"?Zend\Stdlib\StringWrapper&0[Zend\Stdlib\Hydrator\Strategy\Exception&&GZend\Stdlib\Hydrator\Strategy&,SZend\Stdlib\Hydrator\NamingStrategy&&GZend\Stdlib\Hydrator\Iterator&$CZend\Stdlib\Hydrator\Filter&5Zend\Stdlib\Hydrator&/Zend\Stdlib\Guard&7Zend\Stdlib\Extractor&7Zend\Stdlib\Exception&9Zend\Stdlib\ArrayUtils&#Zend\Stdlib&&G`Zend\Paginator\ScrollingStyle*!=`Zend\Paginator\Exception*)M`Zend\Paginator\Adapter\Exception*9`Zend\Paginator\Adapter*)`Zend\Paginator*&G*Zend\Paginator\ScrollingStyle&!=*Zend\Paginator\Exception&)M*Zend\Paginator\Adapter\Exception&9*Zend\Paginator\Adapter&)*Zend\Paginator&5Zend\Mvc\Router\Http'"?Zend\Mvc\Router\Exception' ;Zend\Mvc\Router\Console'+Zend\Mvc\Router' ;Zend\Mvc\ResponseSender'1Zend\Mvc\Exception'#AZend\Mvc\Controller\Plugin'Zend\Mvc'5Zend\Mvc\Router\Http&"?Zend\Mvc\Router\Exception& ;Zend\Mvc\Router\Console&+Zend\Mvc\Router& ;Zend\Mvc\ResponseSender&1Zend\Mvc\Exception&#AZend\Mvc\Controller\Plugin&Zend\Mvc&3gZend\Form\Exception'tgZend\Form's3fZend\Form\Exception&fZend\Form&#A`DoctrineModule\Persistence&#A]DoctrineModule\Persistence&#A\DoctrineModule\Persistence& ;Flyfinder\Specification%%League\Event%%League\Event%global%.WLeague\Tactician\Plugins\NamedCommand%5eLeague\Tactician\Handler\MethodNameInflector%   League\Ta+Zend\Db\Sql\Ddl'[
   p b:\F)	kC+uY3
\=





z
]
=
					p	Q	7	zV0|X;wN"M0bC$]1Y,l8                             2_SSymfony\Bundle\FrameworkBundle\Templating(3aSSymfony\Bundle\FrameworkBundle\CacheWarmer(2_RSymfony\Bundle\FrameworkBundle\Templating(3aRSymfony\Bundle\FrameworkBundle\CacheWarmer(
+QN'Symfony\Component\Templating\Tests',SN'Symfony\Component\Templating\Loader',SN'Symfony\Component\Templating\Helper'+QN'Symfony\Component\Templating\Asset'%EN'Symfony\Component\Templating'+QNSymfony\Component\Templating\Tests',SNSymfony\Component\Templating\Loader',SNSymfony\Component\Templating\Helper'+QNSymfony\Component\Templating\Asset'%ENSymfony\Component\Templating'5;2Symfony\CS\Tokenizer'!;2Symfony\CS'+8Phinx\Migration'-8Phinx\Db\Adapter'%8Phinx\Config'%E7Zend\XmlRpc\Server\Exception'77Zend\XmlRpc\Generator'77Zend\XmlRpc\Exception'%E7Zend\XmlRpc\Client\Exception'16Zend\Tag\Exception'+Q6Zend\Tag\Cloud\Decorator\Exception'!=6Zend\Tag\Cloud\Decorator'6Zend\Tag'+Q5Zend\Soap\Wsdl\ComplexTypeStrategy'35Zend\Soap\Exception'1]5Zend\Soap\AutoDiscover\DiscoveryStrategy')M4Zend\Server\Reflection\Exception'74Zend\Server\Exception'#4Zend\Server' ;4`Zend\ProgressBar\Upload'#A4`Zend\ProgressBar\Exception'+Q4`Zend\ProgressBar\Adapter\Exception'(K4"Zend\Permissions\Rbac\Exception'74"Zend\Permissions\Rbac'"?3nZend\Navigation\Exception'32Zend\Mime\Exception'72wZend\Memory\Exception'72wZend\Memory\Container'&G1Zend\Mail\Transport\Exception'31Zend\Mail\Transport'#A1Zend\Mail\Storage\Writable')M1Zend\Mail\Storage\Part\Exception'91Zend\Mail\Storage\Part'"?1Zend\Mail\Storage\Message'!=1Zend\Mail\Storage\Folder'$C1Zend\Mail\Storage\Exception'%E1Zend\Mail\Protocol\Exception'#A1Zend\Mail\Header\Exception'-1Zend\Mail\Header'31Zend\Mail\Exception'~/1Zend\Mail\Address'}"?/\Zend\Feed\Writer\Renderer'r#A/\Zend\Feed\Writer\Extension'p#A/\Zend\Feed\Writer\Exception'o-/\Zend\Feed\Writer'q7/\Zend\Feed\Reader\Http'n7/\Zend\Feed\Reader\Feed'm#A/\Zend\Feed\Reader\Exception'k9/\Zend\Feed\Reader\Entry'j-/\Zend\Feed\Reader'l%E/\Zend\Feed\PubSubHubbub\Model'i)M/\Zend\Feed\PubSubHubbub\Exception'h9/\Zend\Feed\PubSubHubbub'g3/\Zend\Feed\Exception'f1.Zend\Dom\Exception/A/.iZend\Di\Exception'e1.iZend\Di\Definition'c.iZend\Di'd9,Zend\Captcha\Exception'K%,Zend\Captcha'J(K,GZend\Barcode\Renderer\Exception'H7,GZend\Barcode\Renderer'I&G,GZend\Barcode\Object\Exception'F3,GZend\Barcode\Object'G9,GZend\Barcode\Exception'E#A%ZendDeveloperTools\Storage'D%E%ZendDeveloperTools\Exception'B(K%ZendDeveloperTools\EventLogging'A%E%ZendDeveloperTools\Collector'@1%ZendDeveloperTools'C$C"LZfcUser\Validator\Exception'="?"LZfcUser\Service\Exception'<+"LZfcUser\Options';!="LZfcUser\Mapper\Exception'9)"LZfcUser\Mapper':/"LZfcUser\Exception'8)"LZfcUser\Entity'7'I"LZfcUser\Authentication\Adapter'6!="=ZfcBase\Mapper\Exception'51"=ZfcBase\Db\Adapter'49!Zend\Session\Validator'35!Zend\Session\Storage'2!=!Zend\Session\SaveHandler'19!Zend\Session\Exception'/3!Zend\Session\Config'.%!Zend\Session'0"? Zend\Permissions\Acl\Role'-&G Zend\Permissions\Acl\Resource','I Zend\Permissions\Acl\Exception'+'I Zend\Permissions\Acl\Assertion'*5 Zend\Permissions\Acl')%EZend\Db\TableGateway\Feature'a'IZend\Db\TableGateway\Exception'`5Zend\Db\TableGateway'b7Zend\Db\Sql\Predicate'_5Zend\Db\Sql\Platform'^7Zend\Db\Sql\Exception'\#AZend\Db\Sql\Ddl\Constraint'Z
   b  {RXl9NZ(





p
K
						l	L	*	
gG/}: x_F-zP%lG#]:}Y3|V.
                    *OIlluminate\Foundation\Auth\Access)"#AIlluminate\Foundation\Auth)#'IIlluminate\Database\Migrations)%EIlluminate\Database\Eloquent)'IIlluminate\Database\Connectors)3Illuminate\Database)"?Illuminate\Contracts\View)(KIlluminate\Contracts\Validation)%EIlluminate\Contracts\Support)%EIlluminate\Contracts\Routing)#AIlluminate\Contracts\Redis)#AIlluminate\Contracts\Queue)&GIlluminate\Contracts\Pipeline)
(KIlluminate\Contracts\Pagination)	"?Illuminate\Contracts\Mail)%EIlluminate\Contracts\Logging)"?Illuminate\Contracts\Http)%EIlluminate\Contracts\Hashing)(KIlluminate\Contracts\Foundation)(KIlluminate\Contracts\Filesystem)$CIlluminate\Contracts\Events)(KIlluminate\Contracts\Encryption)#AIlluminate\Contracts\Debug) $CIlluminate\Contracts\Cookie('IIlluminate\Contracts\Container(%EIlluminate\Contracts\Console($CIlluminate\Contracts\Config(#AIlluminate\Contracts\Cache(!=Illuminate\Contracts\Bus(*OIlluminate\Contracts\Broadcasting()MIlluminate\Contracts\Auth\Access("?Illuminate\Contracts\Auth(1Illuminate\Console)!)Illuminate\Bus) "?Illuminate\Auth\Passwords(9Illuminate\Auth\Access)+Illuminate\Auth)+$PhpSpec\Laravel(+"PhpSpec\Laravel(+Pdp\HttpAdapter('Cocur\Slugify('Cocur\Slugify('Cocur\Slugify0BSensio\Bundle\FrameworkExtraBundle\Request\ParamConverter(9mSensio\Bundle\FrameworkExtraBundle\Configuration(BSensio\Bundle\FrameworkExtraBundle\Request\ParamConverter(9mSensio\Bundle\FrameworkExtraBundle\Configuration(;qSensio\Bundle\DistributionBundle\Configurator\Step(;qSensio\Bundle\DistributionBundle\Configurator\Step()CAssetic\Filter+y9CAssetic\Factory\Worker+x!=CAssetic\Factory\Resource+w9CAssetic\Factory\Loader+v/CAssetic\Exception+u'CAssetic\Cache+t'CAssetic\Asset+s).Assetic\Filter(9.Assetic\Factory\Worker(!=.Assetic\Factory\Resource(9.Assetic\Factory\Loader(/.Assetic\Exception('.Assetic\Cache('.Assetic\Asset(.Assetic(/YWebmozart\KeyValueStore\Tests\Fixtures(>$CWebmozart\KeyValueStore\Api(=/YWebmozart\KeyValueStore\Tests\Fixtures(@$CWebmozart\KeyValueStore\Api(?dglobal((dglobal()-bDeepCopy\Matcher($+bDeepCopy\Filter(#4c]$Symfony\Cmf\Component\Routing\NestedMatcher("/Y]$Symfony\Cmf\Component\Routing\Enhancer(!1]]$Symfony\Cmf\Component\Routing\Candidates(&G]$Symfony\Cmf\Component\Routing( 5eXSymfony\Component\Security\Csrf\TokenStorage,7iXSymfony\Component\Security\Csrf\TokenGenerator,(KXSymfony\Component\Security\Csrf,5eXSymfony\Component\Security\Csrf\TokenStorage(7iXSymfony\Component\Security\Csrf\TokenGenerator((KXSymfony\Component\Security\Csrf(-UXdSymfony\Component\Security\Core\Util(-UXdSymfony\Component\Security\Core\User(-UXdSymfony\Component\Security\Core\Role(2_XdSymfony\Component\Security\Core\Exception(0[XdSymfony\Component\Security\Core\Encoder(<sXdSymfony\Component\Security\Core\Authorization\Voter(6gXdSymfony\Component\Security\Core\Authorization(FXdSymfony\Component\Security\Core\Authentication\Token\Storage(=uXdSymfony\Component\Security\Core\Authentication\Token(BXdSymfony\Component\Security\Core\Authentication\RememberMe(@{XdSymfony\Component\Security\Core\Authentication\Provider(7iXdSymfony\Component\Security\Core\Authentication((KXdSymfony\Component\Security\Core(0[SSymfony\Component\Asset\VersionStrategy(	*OSSymfony\Component\Asset\Exception((KSSymfony\Component\Asset\Context(
   sT:tT5|l[E"oY6vP(



h
?
					]	9	}dH%~^QD.qO/^<nP3#yX7|l\L=)^2            9JPDepend\Source\Builder*M+QJPDepend\Source\AST\ASTArtifactList*K"?JPDepend\Source\ASTVisitor*L1JPDepend\Source\AST*J)JPDepend\Report*I2_JPDepend\Metrics\Analyzer\CodeRankAnalyzer*G+JPDepend\Metrics*F'JPDepend\Input*EJPDepend*H!J}PHPMD\Rule*QJ}PHPMD*R>global*C>global*D<Assert*><Assert*?	;*=9&CG\Tests\Proxy\Fixture)&CG\Proxy)%&CG\Generator)&CG\Core)#A=Ovr\PHPReflection\Manually)#A;Ovr\PHPReflection\Manually) ;Sabberworm\CSS\Property) ;Sabberworm\CSS\Property) ;Sabberworm\CSS\Property-h)Sabberworm\CSS-iPsr\Cache),SClickalicious\Memcached\Compression)-dflydev\markdown)'NBanago\Bridge)	global)3	Hal\Component\Score)5	Hal\Component\Result)$C	Hal\Component\OOP\Extractor)5	Hal\Component\Config)$C	Hal\Component\Bounds\Result)5	Hal\Component\Bounds)!=	Hal\Component\Aggregator)%E	Hal\Application\Score\Factor)!=	Hal\Application\Formater)$C	Hal\Application\Command\Job)Fglobal)<global)7mUniversal\ClassLoader+7eUniversal\ClassLoader)#A/GetOptionKit\OptionPrinter)CodeGen)+CLIFramework\IO+9CLIFramework\Extension+!=CLIFramework\ConsoleInfo+%ECLIFramework\Component\Table+%CLIFramework++CLIFramework\IO)9CLIFramework\Extension)!=CLIFramework\ConsoleInfo)%ECLIFramework\Component\Table)%CLIFramework)Foo+!Foo)9ލGitonomy\Git\Exception)9ރCodacy\Coverage\Parser)ݗglobal)global)1Illuminate\Console)+Laracasts\Flash++Laracasts\Flash)+Laracasts\Flash)"?{Illuminate\Support\Traits)1*Illuminate\Session)+Illuminate\Http)"?͑Illuminate\Contracts\View)(K͑Illuminate\Contracts\Validation)%E͑Illuminate\Contracts\Support)%E͑Illuminate\Contracts\Routing)#A͑Illuminate\Contracts\Redis)#A͑Illuminate\Contracts\Queue)&G͑Illuminate\Contracts\Pipeline)(K͑Illuminate\Contracts\Pagination)"?͑Illuminate\Contracts\Mail)%E͑Illuminate\Contracts\Logging)"?͑Illuminate\Contracts\Http)%E͑Illuminate\Contracts\Hashing)(K͑Illuminate\Contracts\Foundation)(K͑Illuminate\Contracts\Filesystem)$C͑Illuminate\Contracts\Events)(K͑Illuminate\Contracts\Encryption)#A͑Illuminate\Contracts\Debug)$C͑Illuminate\Contracts\Cookie)~'I͑Illuminate\Contracts\Container)}%E͑Illuminate\Contracts\Console)|$C͑Illuminate\Contracts\Config){#A͑Illuminate\Contracts\Cache)z!=͑Illuminate\Contracts\Bus)y*O͑Illuminate\Contracts\Broadcasting)x)M͑Illuminate\Contracts\Auth\Access)v"?͑Illuminate\Contracts\Auth)w%pReact\Stream)u"?vRatchet\WebSocket\Version)q9vRatchet\WebSocket\Stub)t#AvRatchet\WebSocket\Encoding)p/vRatchet\WebSocket)r/vRatchet\Wamp\Stub)s%vRatchet\Wamp)o"?vRatchet\Session\Serialize)n%vRatchet\Http)mvRatchet)lglobal)/'I]Monolog\Handler\FingersCrossed)-+]Monolog\Handler)./]Monolog\Formatter), ;Illuminate\View\Engines)"?Illuminate\View\Compilers)+Illuminate\View)7Illuminate\Validation)9Illuminate\Translation)"?Illuminate\Support\Traits)+1Illuminate\Session)$CIlluminate\Routing\Matching)1Illuminate\Routing)* ;Illuminate\Queue\Failed)$CIlluminate\Queue\Connectors)-Illuminate\Queue))7Illuminate\Pagination)(+Illuminate\Http)')MIlluminate\Foundation\Validation)&&GIlluminate\Foundation\Testing)% !=JPDepend\Source\Tokenizer*N
   `  vfN.	}^){Q(vIm<



\
/				_	%h3
IZW8`8nC"mQ,wW,
                           'IkProxyManager\GeneratorStrategy,!=kProxyManager\FileLocator,*OkProxyManager\Factory\RemoteObject,9kProxyManager\Exception, ;kProxyManager\Autoloader,*OkProxyManagerTestAsset\RemoteProxy,7kProxyManagerTestAsset,)MkProxyManager\Signature\Exception*9kProxyManager\Signature*$CkProxyManager\ProxyGenerator*1kProxyManager\Proxy*9kProxyManager\Inflector*'IkProxyManager\GeneratorStrategy*!=kProxyManager\FileLocator**OkProxyManager\Factory\RemoteObject*9kProxyManager\Exception* ;kProxyManager\Autoloader**OkProxyManagerTestAsset\RemoteProxy*7kProxyManagerTestAsset*)MkProxyManager\Signature\Exception*9kProxyManager\Signature*$CkProxyManager\ProxyGenerator*1kProxyManager\Proxy*9kProxyManager\Inflector*'IkProxyManager\GeneratorStrategy*!=kProxyManager\FileLocator**OkProxyManager\Factory\RemoteObject*9kProxyManager\Exception* ;kProxyManager\Autoloader**OkProxyManagerTestAsset\RemoteProxy*7kProxyManagerTestAsset*7kDoctrine\Common\Cache*)MbSymfony\Component\Yaml\Exception+%)MbeSymfony\Component\Yaml\Exception*/Y\|Symfony\Component\Filesystem\Exception*;q[Symfony\Component\DependencyInjection\ParameterBag*B[Symfony\Component\DependencyInjection\LazyProxy\PhpDumper*F[Symfony\Component\DependencyInjection\LazyProxy\Instantiator*8k[Symfony\Component\DependencyInjection\Extension*8k[Symfony\Component\DependencyInjection\Exception*5e[Symfony\Component\DependencyInjection\Dumper*7i[Symfony\Component\DependencyInjection\Compiler*.W[Symfony\Component\DependencyInjection*.W[\Symfony\Component\Config\Tests\Loader**O[\Symfony\Component\Config\Resource*(K[\Symfony\Component\Config\Loader*~4c[\Symfony\Component\Config\Definition\Builder*|,S[\Symfony\Component\Config\Definition*}!=[\Symfony\Component\Config*{Wglobal*z.WV}Symfony\Component\Validator\Violation*y.WV}Symfony\Component\Validator\Validator*x9mV}Symfony\Component\Validator\Tests\Mapping\Loader*w3aV}Symfony\Component\Validator\Tests\Fixtures*v3aV}Symfony\Component\Validator\Mapping\Loader*u4cV}Symfony\Component\Validator\Mapping\Factory*t2_V}Symfony\Component\Validator\Mapping\Cache*r,SV}Symfony\Component\Validator\Mapping*s.WV}Symfony\Component\Validator\Exception*q,SV}Symfony\Component\Validator\Context*p$CV}Symfony\Component\Validator*o-UUSymfony\Component\Translation\Loader*m0[USymfony\Component\Translation\Extractor*l0[USymfony\Component\Translation\Exception*k-UUSymfony\Component\Translation\Dumper*j0[USymfony\Component\Translation\Catalogue*i&GUSymfony\Component\Translation*n(KU[Symfony\Component\Process\Pipes*h,SU[Symfony\Component\Process\Exception*g,STSymfony\Component\Finder\Expression*f+QTSymfony\Component\Finder\Exception*e)MTSymfony\Component\Finder\Adapter*d0[T8Symfony\Component\EventDispatcher\Debug*b*OT8Symfony\Component\EventDispatcher*c(KSSymfony\Component\Console\Style*a)MSSymfony\Component\Console\Output*`(KSSymfony\Component\Console\Input*_)MSSymfony\Component\Console\Helper*^,SSSymfony\Component\Console\Formatter*]-USSymfony\Component\Console\Descriptor*\4cRJMS\Serializer\Tests\Fixtures\Discriminator0&7RJMS\Serializer\Naming0$9RJMS\Serializer\Handler0#!=RJMS\Serializer\Exclusion0"!=RJMS\Serializer\Exception0!'IRJMS\Serializer\EventDispatcher0 $CRJMS\Serializer\Construction09RJMS\Serializer\Builder0)RJMS\Serializer0%Qglobal*[7MSebastianBergmann\Git*WMglobal*T%Ma\name\space*SMglobal*V%Ma\name\space*U7JPDepend\Util\Coverage*P
 + |YE'Y.uP,fCb<




v
Z
6

							w	j	M	5		aF-UE0uMkP;"	oT?&{O;|X4cV@+                ~Pure\Storage+#~Pure\Helper+%~Pure\Command+Ssh+)MSymfony\Component\VarDumper\Test++QSymfony\Component\VarDumper\Dumper++QSymfony\Component\VarDumper\Cloner+'IzSensioLabs\Security\Formatters+U&GzSensioLabs\Security\Exception+T#A2Liip\RMT\Version\Persister+P#A2Liip\RMT\Version\Generator+O%2Liip\RMT\VCS+N#A)Liip\RMT\Version\Persister+S#A)Liip\RMT\Version\Generator+R%)Liip\RMT\VCS+Q+Q4PHPCR\Util\CND\Scanner\TokenFilter+n74PHPCR\Util\CND\Reader+m!4PHPCR\Util+o+Q3PHPCR\Util\CND\Scanner\TokenFilter+L73PHPCR\Util\CND\Reader+K!3PHPCR\Util+M'PHPCR\Version+k/PHPCR\Transaction+j#PHPCR\Tests+l)PHPCR\Security+i+PHPCR\Retention+h+PHPCR\Query\QOM+f#PHPCR\Query+g/PHPCR\Observation+e)PHPCR\NodeType+d!PHPCR\Lock+cPHPCR+b'PHPCR\Version+I/PHPCR\Transaction+H#PHPCR\Tests+J)PHPCR\Security+G+PHPCR\Retention+F+PHPCR\Query\QOM+D#PHPCR\Query+E/PHPCR\Observation+C)PHPCR\NodeType+B!PHPCR\Lock+APHPCR+@5Jackalope\Validation+?$CJackalope\Transport\Logging+>3Jackalope\Transport+=Jackalope+<3amcordingley\Regression\RegressionAlgorithm+9'Imcordingley\Regression\Linking+83amcordingley\Regression\RegressionAlgorithm+;'Imcordingley\Regression\Linking+:?global+/Dropbox+.Dropbox,DDropbox,E1GuzzleHttp\Promise+-#aAws\S3\Sync,@aAws\S3,?-UaAws\DynamoDb\Session\LockingStrategy,=5aAws\DynamoDb\Session,>(KaAws\DynamoDb\Model\BatchRequest,</aAws\Common\Waiter,;5aAws\Common\Signature,:)MaAws\Common\Model\MultipartUpload,9+aAws\Common\Hash,8/aAws\Common\Facade,7$CaAws\Common\Exception\Parser,65aAws\Common\Exception,59aAws\Common\Credentials,4/aAws\Common\Client,3':Aws\Signature+):Aws\S3+,%:Aws\DynamoDb+(+:Aws\Credentials+'):Aws\Api\Parser++3:Aws\Api\ErrorParser+*:Aws+&-HCurlKit\Progress+$-CCurlKit\Progress+#@CacheKit+"cglobal+cFoo+1cClassesWithParents+cClassMap+	c+ #APPhpBench\Tabular\Formatter+#ANPhpBench\Tabular\Formatter+1IGettext\Generators+1IGettext\Extractors+1FGettext\Generators+1FGettext\Extractors+"?Illuminate\Contracts\View+(KIlluminate\Contracts\Validation+ %EIlluminate\Contracts\Support*%EIlluminate\Contracts\Routing*#AIlluminate\Contracts\Redis*#AIlluminate\Contracts\Queue*&GIlluminate\Contracts\Pipeline*(KIlluminate\Contracts\Pagination*"?Illuminate\Contracts\Mail*%EIlluminate\Contracts\Logging*"?Illuminate\Contracts\Http*%EIlluminate\Contracts\Hashing*(KIlluminate\Contracts\Foundation*(KIlluminate\Contracts\Filesystem*$CIlluminate\Contracts\Events*(KIlluminate\Contracts\Encryption*#AIlluminate\Contracts\Debug*$CIlluminate\Contracts\Cookie*'IIlluminate\Contracts\Container*%EIlluminate\Contracts\Console*$CIlluminate\Contracts\Config*#AIlluminate\Contracts\Cache*!=Illuminate\Contracts\Bus**OIlluminate\Contracts\Broadcasting*)MIlluminate\Contracts\Auth\Access*"?Illuminate\Contracts\Auth*"?Illuminate\Support\Traits+3a}Symfony\Component\PropertyAccess\Exception*)M}Symfony\Component\PropertyAccess*5pSymfony\CS\Tokenizer*!pSymfony\CS*"?oInvoker\ParameterResolver*oInvoker*oEasyMock*$CkProxyManager\ProxyGenerator,1kProxyManager\Proxy,   
kPr%~Pure\Storage+
   e  u;y\5r^N`){_<



|
V
.
					n	E	c?f>~W-yT8yOq7'o>
{Q"  ,S /Symfony\Component\Routing\Generator,."? /Symfony\Component\Routing,2.WSymfony\Component\HttpKernel\Profiler,,)MSymfony\Component\HttpKernel\Log,+/YSymfony\Component\HttpKernel\HttpCache,).WSymfony\Component\HttpKernel\Fragment,(/YSymfony\Component\HttpKernel\Exception,'3aSymfony\Component\HttpKernel\DataCollector,&0[Symfony\Component\HttpKernel\Controller,%1]Symfony\Component\HttpKernel\CacheWarmer,$2_Symfony\Component\HttpKernel\CacheClearer,#,SSymfony\Component\HttpKernel\Bundle,"%ESymfony\Component\HttpKernel,*zglobal,9mzSymfony\Component\HttpFoundation\Session\Storage,!7izSymfony\Component\HttpFoundation\Session\Flash,;qzSymfony\Component\HttpFoundation\Session\Attribute,1]zSymfony\Component\HttpFoundation\Session, 7izSymfony\Component\HttpFoundation\File\MimeType,)MzSymfony\Component\HttpFoundation, ;Illuminate\View\Engines,"?Illuminate\View\Compilers,
+Illuminate\View,7Illuminate\Validation,	9Illuminate\Translation,"?Illuminate\Support\Traits,1Illuminate\Session,$CIlluminate\Routing\Matching,1Illuminate\Routing, ;Illuminate\Queue\Failed,$CIlluminate\Queue\Connectors,-Illuminate\Queue,7Illuminate\Pagination,+Illuminate\Http,)MIlluminate\Foundation\Validation,&GIlluminate\Foundation\Testing,"?Illuminate\Foundation\Bus,*OIlluminate\Foundation\Auth\Access,#AIlluminate\Foundation\Auth,'IIlluminate\Database\Migrations,%EIlluminate\Database\Eloquent,'IIlluminate\Database\Connectors,3Illuminate\Database, "?Illuminate\Contracts\View+(KIlluminate\Contracts\Validation+%EIlluminate\Contracts\Support+%EIlluminate\Contracts\Routing+#AIlluminate\Contracts\Redis+#AIlluminate\Contracts\Queue+&GIlluminate\Contracts\Pipeline+(KIlluminate\Contracts\Pagination+"?Illuminate\Contracts\Mail+%EIlluminate\Contracts\Logging+"?Illuminate\Contracts\Http+%EIlluminate\Contracts\Hashing+(KIlluminate\Contracts\Foundation+(KIlluminate\Contracts\Filesystem+$CIlluminate\Contracts\Events+(KIlluminate\Contracts\Encryption+#AIlluminate\Contracts\Debug+$CIlluminate\Contracts\Cookie+'IIlluminate\Contracts\Container+%EIlluminate\Contracts\Console+$CIlluminate\Contracts\Config+#AIlluminate\Contracts\Cache+!=Illuminate\Contracts\Bus+*OIlluminate\Contracts\Broadcasting+)MIlluminate\Contracts\Auth\Access+"?Illuminate\Contracts\Auth+1Illuminate\Console,)Illuminate\Bus,"?Illuminate\Auth\Passwords+9Illuminate\Auth\Access,+Illuminate\Auth,3Laracasts\TestDummy+3Laracasts\TestDummy+6gSymfony\Component\CssSelector\XPath\Extension+,SSymfony\Component\CssSelector\XPath+5eSymfony\Component\CssSelector\Parser\Handler+-USymfony\Component\CssSelector\Parser++QSymfony\Component\CssSelector\Node+0[Symfony\Component\CssSelector\Exception+global+!_generated+-Shire\_generated++Jazz\_generated+ ;Jazz\Pianist\_generated+ ;Codeception\Util\Shared+$CCodeception\TestCase\Shared+(KCodeception\TestCase\Interfaces+&GCodeception\Subscriber\Shared+3Codeception\PHPUnit+#ACodeception\Lib\Interfaces+)MCodeception\Lib\Generator\Shared+)MCodeception\Lib\Connector\Shared+%ECodeception\Lib\Actor\Shared+#ACodeception\Command\Shared+9mGSymfony\Component\ExpressionLanguage\ParserCache+-UGSymfony\Component\ExpressionLanguage+/YSymfony\Component\Debug\Tests\Fixtures+,S /Symfony\Component\Routing\Exception,-
   b  zQWk8
m?"uS4





d
H
+
					i	N	6	gI%O?e+rMY*i3`3{M   )M0Symfony\Component\Console\Output,)M0Symfony\Component\Console\Helper,,S0Symfony\Component\Console\Formatter,-U0Symfony\Component\Console\Descriptor,.W/}Symfony\Component\Config\Tests\Loader,*O/}Symfony\Component\Config\Resource,(K/}Symfony\Component\Config\Loader,4c/}Symfony\Component\Config\Definition\Builder,,S/}Symfony\Component\Config\Definition,!=/}Symfony\Component\Config,.global,.Foo,1.ClassesWithParents,.ClassMap,	.,3%Org_Heigl\DateRange,3%Org_Heigl\DateRange,!=$Symfony\Bridge\Twig\Form,5e#Symfony\Component\Security\Csrf\TokenStorage,7i#Symfony\Component\Security\Csrf\TokenGenerator,(K#Symfony\Component\Security\Csrf,4c!Symfony\Component\OptionsResolver\Exception,}*O!Symfony\Component\OptionsResolver,~.W Symfony\Component\Intl\ResourceBundle,|)M Symfony\Component\Intl\Exception,{2_ Symfony\Component\Intl\Data\Bundle\Writer,z2_ Symfony\Component\Intl\Data\Bundle\Reader,y4c Symfony\Component\Intl\Data\Bundle\Compiler,x.WSymfony\Component\Form\Tests\Fixtures,w$CSymfony\Component\Form\Test,vDSymfony\Component\Form\Extension\Validator\ViolationMapper,u7iSymfony\Component\Form\Extension\DataCollector,t;qSymfony\Component\Form\Extension\Csrf\CsrfProvider,s9mSymfony\Component\Form\Extension\Core\ChoiceList,r)MSymfony\Component\Form\Exception,q1]Symfony\Component\Form\ChoiceList\Loader,p2_Symfony\Component\Form\ChoiceList\Factory,o*OSymfony\Component\Form\ChoiceList,n9Symfony\Component\Form,mglobal,a1]Monii\Http\Middleware\Psr7\ActionHandler,S1]Monii\Http\Middleware\Psr7\ActionHandler,Tglobal.global,Q-U-BaconQrCode\Renderer\Image\Decorator,L#A-BaconQrCode\Renderer\Image,M#A-BaconQrCode\Renderer\Color,K5-BaconQrCode\Renderer,N7-BaconQrCode\Exception,J*O#SimpleSoftwareIO\QrCode\DataTypes,H ;#SimpleSoftwareIO\QrCode,I*O"SimpleSoftwareIO\QrCode\DataTypes,O ;"SimpleSoftwareIO\QrCode,P)Zizaco\Entrust+)Zizaco\Entrust+/Clockwork\Storage+5Clockwork\DataSource+/Clockwork\Storage+5Clockwork\DataSource+&G{Laracasts\Presenter\Contracts+3{Laracasts\Presenter+&GwLaracasts\Presenter\Contracts+3wLaracasts\Presenter+1TOAuth\OAuth2\Token+5TOAuth\OAuth2\Service+1TOAuth\OAuth1\Token+9TOAuth\OAuth1\Signature+5TOAuth\OAuth1\Service+1TOAuth\Common\Token+5TOAuth\Common\Storage+5TOAuth\Common\Service+7TOAuth\Common\Http\Uri+!=TOAuth\Common\Http\Client+7TOAuth\Common\Consumer+56Laracasts\Validation+5-Laracasts\Validation+-ULaracasts\Commander\Events\Contracts+#ALaracasts\Commander\Events+3Laracasts\Commander+-ULaracasts\Commander\Events\Contracts+#ALaracasts\Commander\Events+3Laracasts\Commander+-U Symfony\Component\Security\Core\Util,-U Symfony\Component\Security\Core\User,-U Symfony\Component\Security\Core\Role,2_ Symfony\Component\Security\Core\Exception,0[ Symfony\Component\Security\Core\Encoder,<s Symfony\Component\Security\Core\Authorization\Voter,6g Symfony\Component\Security\Core\Authorization,F Symfony\Component\Security\Core\Authentication\Token\Storage,=u Symfony\Component\Security\Core\Authentication\Token,B Symfony\Component\Security\Core\Authentication\RememberMe,@{ Symfony\Component\Security\Core\Authentication\Provider,7i Symfony\Component\Security\Core\Authentication,(K Symfony\Component\Security\Core,1] /Symfony\Component\Routing\Matcher\Dumper,0*O /Symfony\Component\Routing\Matcher,1(K0Symfony\Component\Console\Input,
   k  JN_. pF0kD'





c
E
9
"
					j	L	'	
wY.nDlQ,
|^9kRBr: qK!fA          -EShire\_generated-# ;EJazz\Pianist\_generated-! ;ECodeception\Util\Shared-$CECodeception\TestCase\Shared-(KECodeception\TestCase\Interfaces-&GECodeception\Subscriber\Shared-3ECodeception\PHPUnit-#AECodeception\Lib\Interfaces-)MECodeception\Lib\Generator\Shared-)MECodeception\Lib\Connector\Shared-%EECodeception\Lib\Actor\Shared-#AECodeception\Command\Shared- ;D(Zend\Diactoros\Response-!=D(Zend\Diactoros\Exception-)D(Zend\Diactoros-Bhglobal,9mBhSymfony\Component\HttpFoundation\Session\Storage-7iBhSymfony\Component\HttpFoundation\Session\Flash- ;qBhSymfony\Component\HttpFoundation\Session\Attribute,1]BhSymfony\Component\HttpFoundation\Session-7iBhSymfony\Component\HttpFoundation\File\MimeType,)MBhSymfony\Component\HttpFoundation,:global,+8CGuzzleHttp\Psr7,"?7Zend\Stdlib\StringWrapper.%E7Zend\Stdlib\JsonSerializable.0[7Zend\Stdlib\Hydrator\Strategy\Exception.&G7Zend\Stdlib\Hydrator\Strategy.,S7Zend\Stdlib\Hydrator\NamingStrategy.$C7Zend\Stdlib\Hydrator\Filter.57Zend\Stdlib\Hydrator./7Zend\Stdlib\Guard.77Zend\Stdlib\Extractor.77Zend\Stdlib\Exception.97Zend\Stdlib\ArrayUtils.#7Zend\Stdlib.!=7Zend\EventManager\Filter.$C7Zend\EventManager\Exception./7Zend\EventManager./7dZend\Code\Scanner4\'I7dZend\Code\Reflection\Exception4Z*O7dZend\Code\Reflection\DocBlock\Tag4Y57dZend\Code\Reflection4[$C7dZend\Code\Generic\Prototype4X&G7dZend\Code\Generator\Exception4V)M7dZend\Code\Generator\DocBlock\Tag4U37dZend\Code\Generator4W37dZend\Code\Exception4T$C7dZend\Code\Annotation\Parser4S57dZend\Code\Annotation4R/7`Zend\Code\Scanner,'I7`Zend\Code\Reflection\Exception,*O7`Zend\Code\Reflection\DocBlock\Tag,57`Zend\Code\Reflection,$C7`Zend\Code\Generic\Prototype,&G7`Zend\Code\Generator\Exception,)M7`Zend\Code\Generator\DocBlock\Tag,37`Zend\Code\Generator,37`Zend\Code\Exception,$C7`Zend\Code\Annotation\Parser,57`Zend\Code\Annotation,76Doctrine\Common\Cache-:76Doctrine\Common\Cache,56DI\Definition\Source,96DI\Definition\Resolver,56DI\Definition\Helper,56DI\Definition\Dumper,'6DI\Definition,6DI,56DI\Definition\Source,96DI\Definition\Resolver,56DI\Definition\Helper,56DI\Definition\Dumper,'6DI\Definition,6DI,74vPeridot\Leo\Responder,%E4vPeridot\Leo\Matcher\Template,34vPeridot\Leo\Matcher,&G4vPeridot\Leo\Interfaces\Assert,74vPeridot\Leo\Formatter,#4vPeridot\Leo,'3Peridot\Scope,)3Peridot\Runner,-3Peridot\Reporter,%3Peridot\Core,)3~Peridot\Runner,-3~Peridot\Reporter,%3~Peridot\Core,)M2Symfony\Component\Yaml\Exception,-U2USymfony\Component\Translation\Loader,0[2USymfony\Component\Translation\Extractor,0[2USymfony\Component\Translation\Exception,-U2USymfony\Component\Translation\Dumper,0[2USymfony\Component\Translation\Catalogue,&G2USymfony\Component\Translation,/Y1Symfony\Component\Filesystem\Exception,0[1=Symfony\Component\EventDispatcher\Debug,*O1=Symfony\Component\EventDispatcher,;q0Symfony\Component\DependencyInjection\ParameterBag,B0Symfony\Component\DependencyInjection\LazyProxy\PhpDumper,F0Symfony\Component\DependencyInjection\LazyProxy\Instantiator,8k0Symfony\Component\DependencyInjection\Extension,8k0Symfony\Component\DependencyInjection\Exception,5e0Symfony\Component\DependencyInjection\Dumper,7i0Symfony\Component\DependencyInjection\Compiler,.W0Symfony\Component\DependencyInjection,+EJazz\_generated-"
   g  ]I.i3yLoX=#qH



m
C
				l	B	fK"V+uP'nN,XD&n>e9wN(         /cPhpSpec\Extension-'cPhpSpec\Event-+cPhpSpec\Console-%EcPhpSpec\CodeGenerator\Writer-(KcPhpSpec\CodeGenerator\Generator-5cPhpSpec\CodeAnalysis-cPhpSpec-^global/(K]sSymfony\Component\Process\Pipes.`,S]sSymfony\Component\Process\Exception._,S\Symfony\Component\Finder\Expression.L+Q\Symfony\Component\Finder\Exception.K)M\Symfony\Component\Finder\Adapter.J,S\Symfony\Component\Finder\Expression.+Q\Symfony\Component\Finder\Exception.)M\Symfony\Component\Finder\Adapter.+Q\Symfony\Component\Finder\Exception-{/Y\JSymfony\Component\Filesystem\Exception-z0[[Symfony\Component\EventDispatcher\Debug-*O[Symfony\Component\EventDispatcher-0[[Symfony\Component\EventDispatcher\Debug-x*O[Symfony\Component\EventDispatcher-y5ZSymfony\CS\Tokenizer-p!ZSymfony\CS-o+QZ SebastianBergmann\RecursionContext-m#AYSebastianBergmann\Diff\LCS-l)MW2Symfony\Component\Yaml\Exception-j)MW.Symfony\Component\Yaml\Exception-nVglobal.Uiglobal-kUXglobal.!=SFluxBB\CommonMark\Parser-\9SFluxBB\CommonMark\Node-[!=SFluxBB\CommonMark\Parser-^9SFluxBB\CommonMark\Node-]9RLeague\CommonMark\Util-Q*ORLeague\CommonMark\Inline\Renderer-P+QRLeague\CommonMark\Inline\Processor-O(KRLeague\CommonMark\Inline\Parser-N$CRLeague\CommonMark\Extension-M)MRLeague\CommonMark\Block\Renderer-K'IRLeague\CommonMark\Block\Parser-J(KRLeague\CommonMark\Block\Element-I/RLeague\CommonMark-L9RLeague\CommonMark\Util-Z*ORLeague\CommonMark\Inline\Renderer-Y+QRLeague\CommonMark\Inline\Processor-X(KRLeague\CommonMark\Inline\Parser-W$CRLeague\CommonMark\Extension-V)MRLeague\CommonMark\Block\Renderer-T'IRLeague\CommonMark\Block\Parser-S(KRLeague\CommonMark\Block\Element-R/RLeague\CommonMark-U4cRfSymfony\Component\OptionsResolver\Exception-f*ORfSymfony\Component\OptionsResolver-g(KQSymfony\Component\Console\Style.A)MQSymfony\Component\Console\Output.@(KQSymfony\Component\Console\Input.?)MQSymfony\Component\Console\Helper.>,SQSymfony\Component\Console\Formatter.=-UQSymfony\Component\Console\Descriptor.<(KQSymfony\Component\Console\Style-e)MQSymfony\Component\Console\Output-d(KQSymfony\Component\Console\Input-c)MQSymfony\Component\Console\Helper-b,SQSymfony\Component\Console\Formatter-a,SQSymfony\Component\Console\Exception-`-UQSymfony\Component\Console\Descriptor-_(KQSymfony\Component\Console\Style-w)MQSymfony\Component\Console\Output-v(KQSymfony\Component\Console\Input-u)MQSymfony\Component\Console\Helper-t,SQSymfony\Component\Console\Formatter-s,SQSymfony\Component\Console\Exception-r-UQSymfony\Component\Console\Descriptor-q-QCiconia\Renderer-C/QCiconia\Extension-B'QCiconia\Event-A-QCiconia\Renderer-F/QCiconia\Extension-E'QCiconia\Event-DPMichelf->)OMouf\Validator-=9mOSymfony\Component\ExpressionLanguage\ParserCache-<-UOSymfony\Component\ExpressionLanguage-;,SKSymfony\Component\Finder\Expression-4+QKSymfony\Component\Finder\Exception-3)MKSymfony\Component\Finder\Adapter-26gISymfony\Component\CssSelector\XPath\Extension-0,SISymfony\Component\CssSelector\XPath-15eISymfony\Component\CssSelector\Parser\Handler-.-UISymfony\Component\CssSelector\Parser-/+QISymfony\Component\CssSelector\Node--0[ISymfony\Component\CssSelector\Exception-,1FGuzzleHttp\Handler-+5FGuzzleHttp\Exception-*/FGuzzleHttp\Cookie-)!FGuzzleHttp-("?FFacebook\WebDriver\Remote-'$CFFacebook\WebDriver\Internal-%.WFFacebook\WebDriver\Interactions\Touch-$1FFacebook\WebDriver-&Eglobal-
   ^  `5!	yR0k>{_UC'
 f1



_
*
			x	@	
Qe->Z)kDU.m?Y)    /YzSymfony\Component\Debug\Tests\Fixtures.I2_zSymfony\Component\Debug\FatalErrorHandler.H/YzSymfony\Component\Debug\Tests\Fixtures-2_zSymfony\Component\Debug\FatalErrorHandler-/YzSymfony\Component\Debug\Tests\Fixtures/2_zSymfony\Component\Debug\FatalErrorHandler/'IzGraphAware\NeoClient\Formatter-'IzGraphAware\NeoClient\Formatter--Ur=Symfony\Component\Translation\Loader.k0[r=Symfony\Component\Translation\Extractor.j0[r=Symfony\Component\Translation\Exception.i-Ur=Symfony\Component\Translation\Dumper.h0[r=Symfony\Component\Translation\Catalogue.g&Gr=Symfony\Component\Translation.l-Ur9Symfony\Component\Translation\Loader-0[r9Symfony\Component\Translation\Extractor-0[r9Symfony\Component\Translation\Exception--Ur9Symfony\Component\Translation\Dumper-0[r9Symfony\Component\Translation\Catalogue-&Gr9Symfony\Component\Translation--Ur5Symfony\Component\Translation\Loader00[r5Symfony\Component\Translation\Extractor00[r5Symfony\Component\Translation\Exception0-Ur5Symfony\Component\Translation\Dumper00[r5Symfony\Component\Translation\Catalogue0
&Gr5Symfony\Component\Translation0=uptSymfony\Component\DependencyInjection\Tests\Compiler-;qptSymfony\Component\DependencyInjection\ParameterBag-BptSymfony\Component\DependencyInjection\LazyProxy\PhpDumper-FptSymfony\Component\DependencyInjection\LazyProxy\Instantiator-8kptSymfony\Component\DependencyInjection\Extension-8kptSymfony\Component\DependencyInjection\Exception-5eptSymfony\Component\DependencyInjection\Dumper-7iptSymfony\Component\DependencyInjection\Compiler-.WptSymfony\Component\DependencyInjection-=uppSymfony\Component\DependencyInjection\Tests\Compiler/;qppSymfony\Component\DependencyInjection\ParameterBag/BppSymfony\Component\DependencyInjection\LazyProxy\PhpDumper/FppSymfony\Component\DependencyInjection\LazyProxy\Instantiator/8kppSymfony\Component\DependencyInjection\Extension/8kppSymfony\Component\DependencyInjection\Exception/5eppSymfony\Component\DependencyInjection\Dumper/7ippSymfony\Component\DependencyInjection\Compiler/.WppSymfony\Component\DependencyInjection/.Wo:Symfony\Component\Config\Tests\Loader-*Oo:Symfony\Component\Config\Resource-(Ko:Symfony\Component\Config\Loader-4co:Symfony\Component\Config\Definition\Builder-,So:Symfony\Component\Config\Definition-!=o:Symfony\Component\Config-.Wo6Symfony\Component\Config\Tests\Loader-*Oo6Symfony\Component\Config\Resource-(Ko6Symfony\Component\Config\Loader-4co6Symfony\Component\Config\Definition\Builder-,So6Symfony\Component\Config\Definition-!=o6Symfony\Component\Config-nglobal-nFoo-1nClassesWithParents-nClassMap-	n-nglobal/nFoo/1nClassesWithParents/nClassMap/	n/1nbBehat\Gherkin\Node-5nbBehat\Gherkin\Loader-9nbBehat\Gherkin\Keywords-5nbBehat\Gherkin\Filter- ;nbBehat\Gherkin\Exception-3nbBehat\Gherkin\Cache-(Kf*Symfony\Component\Process\Pipes-,Sf*Symfony\Component\Process\Exception-/cspec\PhpSpec\Util-7cspec\PhpSpec\Listener-,ScPhpSpec\Wrapper\Subject\Expectation-+cPhpSpec\Wrapper-"?cPhpSpec\Runner\Maintainer-!=cPhpSpec\Process\Shutdown-!=cPhpSpec\Process\ReRunner-&GcPhpSpec\Process\Prerequisites- ;cPhpSpec\Process\Context-+cPhpSpec\Process-+cPhpSpec\Matcher-+cPhpSpec\Locator-#AcPhpSpec\Loader\Transformer-)cPhpSpec\Loader-!cPhpSpec\IO-*OcPhpSpec\Formatter\Presenter\Value-.WcPhpSpec\Formatter\Presenter\Exception-+QcPhpSpec\Formatter\Presenter\Differ-$CcPhpSpec\Formatter\Presenter-9cPhpSpec\Formatter\Html-
 Z  l0\*|Rt:*rA


~
T
%				m	<	yO h7tJu;(mM4pE#gC}Z4       &GQIlluminate\Contracts\Pipeline.(KQIlluminate\Contracts\Pagination."?QIlluminate\Contracts\Mail.%EQIlluminate\Contracts\Logging.
"?QIlluminate\Contracts\Http.	%EQIlluminate\Contracts\Hashing.(KQIlluminate\Contracts\Foundation.(KQIlluminate\Contracts\Filesystem.$CQIlluminate\Contracts\Events.(KQIlluminate\Contracts\Encryption.#AQIlluminate\Contracts\Debug.$CQIlluminate\Contracts\Cookie.'IQIlluminate\Contracts\Container.%EQIlluminate\Contracts\Console. $CQIlluminate\Contracts\Config-#AQIlluminate\Contracts\Cache-!=QIlluminate\Contracts\Bus-*OQIlluminate\Contracts\Broadcasting-)MQIlluminate\Contracts\Auth\Access-"?QIlluminate\Contracts\Auth-1QIlluminate\Console.$)QIlluminate\Bus.#"?QIlluminate\Auth\Passwords-9QIlluminate\Auth\Access.!+QIlluminate\Auth."91SuperClosure\Exception-%1SuperClosure-"?ClassPreloader\Exceptions-#AOrchestra\Testbench\Traits-3Orchestra\Testbench-#AOrchestra\Testbench\Traits.53Orchestra\Testbench.4FastRoute-9m}Symfony\Component\ExpressionLanguage\ParserCache--U}Symfony\Component\ExpressionLanguage-9m}Symfony\Component\ExpressionLanguage\ParserCache0j-U}Symfony\Component\ExpressionLanguage0i|global-.W|BSymfony\Component\HttpKernel\Profiler.^)M|BSymfony\Component\HttpKernel\Log.]/Y|BSymfony\Component\HttpKernel\HttpCache.[.W|BSymfony\Component\HttpKernel\Fragment.Z/Y|BSymfony\Component\HttpKernel\Exception.Y3a|BSymfony\Component\HttpKernel\DataCollector.X0[|BSymfony\Component\HttpKernel\Controller.W1]|BSymfony\Component\HttpKernel\CacheWarmer.V2_|BSymfony\Component\HttpKernel\CacheClearer.U,S|BSymfony\Component\HttpKernel\Bundle.T%E|BSymfony\Component\HttpKernel.\.W|>Symfony\Component\HttpKernel\Profiler-)M|>Symfony\Component\HttpKernel\Log-/Y|>Symfony\Component\HttpKernel\HttpCache-.W|>Symfony\Component\HttpKernel\Fragment-/Y|>Symfony\Component\HttpKernel\Exception-3a|>Symfony\Component\HttpKernel\DataCollector-0[|>Symfony\Component\HttpKernel\Controller-1]|>Symfony\Component\HttpKernel\CacheWarmer-2_|>Symfony\Component\HttpKernel\CacheClearer-,S|>Symfony\Component\HttpKernel\Bundle-%E|>Symfony\Component\HttpKernel-.W|:Symfony\Component\HttpKernel\Profiler0	)M|:Symfony\Component\HttpKernel\Log0/Y|:Symfony\Component\HttpKernel\HttpCache0.W|:Symfony\Component\HttpKernel\Fragment0/Y|:Symfony\Component\HttpKernel\Exception03a|:Symfony\Component\HttpKernel\DataCollector00[|:Symfony\Component\HttpKernel\Controller01]|:Symfony\Component\HttpKernel\CacheWarmer02_|:Symfony\Component\HttpKernel\CacheClearer0 ,S|:Symfony\Component\HttpKernel\Bundle/%E|:Symfony\Component\HttpKernel0{global.O9m{Symfony\Component\HttpFoundation\Session\Storage.S7i{Symfony\Component\HttpFoundation\Session\Flash.Q;q{Symfony\Component\HttpFoundation\Session\Attribute.P1]{Symfony\Component\HttpFoundation\Session.R7i{Symfony\Component\HttpFoundation\File\MimeType.M)M{Symfony\Component\HttpFoundation.N9m{Symfony\Component\HttpFoundation\Session\Storage-7i{Symfony\Component\HttpFoundation\Session\Flash-;q{Symfony\Component\HttpFoundation\Session\Attribute-1]{Symfony\Component\HttpFoundation\Session-7i{Symfony\Component\HttpFoundation\File\MimeType-)M{Symfony\Component\HttpFoundation-9m{Symfony\Component\HttpFoundation\Session\Storage-7i{Symfony\Component\HttpFoundation\Session\Flash-;q{Symfony\Component\HttpFoundation\Session\Attribute-1]{Symfony\Component\HttpFoundation\Session-7i{Symfony\Component\HttpFoundation\File\MimeType-   #AQIlluminate\Contracts\Queue.
   f gD'b?wV:~[: nZD-



l
?
			}	G	f2X$oEZ1zO-	qM$d>]7                        "?EIlluminate\Contracts\View.(KEIlluminate\Contracts\Validation.%EEIlluminate\Contracts\Support.%EEIlluminate\Contracts\Routing.#AEIlluminate\Contracts\Redis.#AEIlluminate\Contracts\Queue.&GEIlluminate\Contracts\Pipeline.(KEIlluminate\Contracts\Pagination."?EIlluminate\Contracts\Mail.%EEIlluminate\Contracts\Logging."?EIlluminate\Contracts\Http.%EEIlluminate\Contracts\Hashing.(KEIlluminate\Contracts\Foundation.(KEIlluminate\Contracts\Filesystem.$CEIlluminate\Contracts\Events.(KEIlluminate\Contracts\Encryption.#AEIlluminate\Contracts\Debug.~$CEIlluminate\Contracts\Cookie.}'IEIlluminate\Contracts\Container.|%EEIlluminate\Contracts\Console.{$CEIlluminate\Contracts\Config.z#AEIlluminate\Contracts\Cache.y!=EIlluminate\Contracts\Bus.x*OEIlluminate\Contracts\Broadcasting.w)MEIlluminate\Contracts\Auth\Access.u"?EIlluminate\Contracts\Auth.v!=.Arcanedev\Support\Traits.!=Arcanedev\Support\Traits.t%EArcanedev\LaravelHtml\Traits.q(KArcanedev\LaravelHtml\Contracts.p%EArcanedev\LaravelHtml\Traits.s(KArcanedev\LaravelHtml\Contracts.r-Dotenv\Exception1	)MSymfony\Component\VarDumper\Test.o+QSymfony\Component\VarDumper\Dumper.n+QSymfony\Component\VarDumper\Cloner.m)MSymfony\Component\VarDumper\Test1+QSymfony\Component\VarDumper\Dumper1+QSymfony\Component\VarDumper\Cloner11]Symfony\Component\Routing\Matcher\Dumper.d*OSymfony\Component\Routing\Matcher.e3aSymfony\Component\Routing\Generator\Dumper.c,SSymfony\Component\Routing\Generator.b,SSymfony\Component\Routing\Exception.a"?Symfony\Component\Routing.f1]Symfony\Component\Routing\Matcher\Dumper/*OSymfony\Component\Routing\Matcher/3aSymfony\Component\Routing\Generator\Dumper/,SSymfony\Component\Routing\Generator/,SSymfony\Component\Routing\Exception/"?Symfony\Component\Routing/6gSymfony\Component\CssSelector\XPath\Extension.F,SSymfony\Component\CssSelector\XPath.G5eSymfony\Component\CssSelector\Parser\Handler.D-USymfony\Component\CssSelector\Parser.E+QSymfony\Component\CssSelector\Node.C0[Symfony\Component\CssSelector\Exception.B6gSymfony\Component\CssSelector\XPath\Extension/,SSymfony\Component\CssSelector\XPath/5eSymfony\Component\CssSelector\Parser\Handler/-USymfony\Component\CssSelector\Parser/+QSymfony\Component\CssSelector\Node/0[Symfony\Component\CssSelector\Exception/'Psy\VarDumper.;%Psy\Readline.:!Psy\Output.9'Psy\Formatter.8'Psy\Exception.7Psy.6)mPhpParser\Node.3mPhpParser.2 ;League\Flysystem\Plugin.1*OLeague\Flysystem\Adapter\Polyfill.0-League\Flysystem./ ;QIlluminate\View\Engines."?QIlluminate\View\Compilers.+QIlluminate\View. 7QIlluminate\Validation.9QIlluminate\Translation."?QIlluminate\Support\Traits..1QIlluminate\Session.$CQIlluminate\Routing\Matching.1QIlluminate\Routing.- ;QIlluminate\Queue\Failed.$CQIlluminate\Queue\Connectors.-QIlluminate\Queue.,7QIlluminate\Pagination.++QIlluminate\Http.*)MQIlluminate\Foundation\Validation.)&GQIlluminate\Foundation\Testing.("?QIlluminate\Foundation\Bus.'*OQIlluminate\Foundation\Auth\Access.%#AQIlluminate\Foundation\Auth.&'IQIlluminate\Database\Migrations.%EQIlluminate\Database\Eloquent.'IQIlluminate\Database\Connectors.3QIlluminate\Database."?QIlluminate\Contracts\View.(KQIlluminate\Contracts\Validation.%EQIlluminate\Contracts\Support.%EQIlluminate\Contracts\Routing. "?IIlluminate\Contracts\Auth07
   Y  jD\3xQ-	qN+wM+



u
F
$				n	?	g8}P&|O%{N$j4{8W!h%  .WSymfony\Component\DependencyInjection.;qSymfony\Component\DependencyInjection\ParameterBag3^BSymfony\Component\DependencyInjection\LazyProxy\PhpDumper3]FSymfony\Component\DependencyInjection\LazyProxy\Instantiator3\8kSymfony\Component\DependencyInjection\Extension3[8kSymfony\Component\DependencyInjection\Exception3Z5eSymfony\Component\DependencyInjection\Dumper3Y7iSymfony\Component\DependencyInjection\Compiler3W.WSymfony\Component\DependencyInjection3X=uSymfony\Component\DependencyInjection\Tests\Compiler/;qSymfony\Component\DependencyInjection\ParameterBag/BSymfony\Component\DependencyInjection\LazyProxy\PhpDumper/FSymfony\Component\DependencyInjection\LazyProxy\Instantiator/8kSymfony\Component\DependencyInjection\Extension/8kSymfony\Component\DependencyInjection\Exception/5eSymfony\Component\DependencyInjection\Dumper/7iSymfony\Component\DependencyInjection\Compiler/.WSymfony\Component\DependencyInjection/)MUSymfony\Component\Console\Output.(KUSymfony\Component\Console\Input.)MUSymfony\Component\Console\Helper.,SUSymfony\Component\Console\Formatter.-UUSymfony\Component\Console\Descriptor.(KHSymfony\Component\Console\Style0Z)MHSymfony\Component\Console\Output0Y(KHSymfony\Component\Console\Input0X)MHSymfony\Component\Console\Helper0W,SHSymfony\Component\Console\Formatter0V-UHSymfony\Component\Console\Descriptor0U(KCSymfony\Component\Console\Style02)MCSymfony\Component\Console\Output01(KCSymfony\Component\Console\Input00)MCSymfony\Component\Console\Helper0/,SCSymfony\Component\Console\Formatter0.,SCSymfony\Component\Console\Exception0--UCSymfony\Component\Console\Descriptor0,/YSymfony\Component\Filesystem\Exception3a/YSymfony\Component\Filesystem\Exception..WSymfony\Component\Config\Tests\Loader.*OSymfony\Component\Config\Resource.(KSymfony\Component\Config\Loader.4cSymfony\Component\Config\Definition\Builder.,SSymfony\Component\Config\Definition.!=Symfony\Component\Config..WySymfony\Component\Config\Tests\Loader3V*OySymfony\Component\Config\Resource3U(KySymfony\Component\Config\Loader3T4cySymfony\Component\Config\Definition\Builder3R,SySymfony\Component\Config\Definition3S!=ySymfony\Component\Config3Q.WtSymfony\Component\Config\Tests\Loader/s*OtSymfony\Component\Config\Resource/r(KtSymfony\Component\Config\Loader/q4ctSymfony\Component\Config\Definition\Builder/o,StSymfony\Component\Config\Definition/p!=tSymfony\Component\Config/n)MBSymfony\Component\Yaml\Exception.)M5Symfony\Component\Yaml\Exception3h)M0Symfony\Component\Yaml\Exception/vglobal.3DeepCopy\TypeFilter.-DeepCopy\Matcher.+DeepCopy\Filter."?Illuminate\Support\Traits0T"?Illuminate\Support\Traits."?IIlluminate\Contracts\View0O(KIIlluminate\Contracts\Validation0N%EIIlluminate\Contracts\Support0M%EIIlluminate\Contracts\Routing0L#AIIlluminate\Contracts\Redis0K#AIIlluminate\Contracts\Queue0J&GIIlluminate\Contracts\Pipeline0I(KIIlluminate\Contracts\Pagination0H"?IIlluminate\Contracts\Mail0G%EIIlluminate\Contracts\Logging0F"?IIlluminate\Contracts\Http0E%EIIlluminate\Contracts\Hashing0D(KIIlluminate\Contracts\Foundation0C(KIIlluminate\Contracts\Filesystem0B$CIIlluminate\Contracts\Events0A(KIIlluminate\Contracts\Encryption0@#AIIlluminate\Contracts\Debug0?$CIIlluminate\Contracts\Cookie0>'IIIlluminate\Contracts\Container0=%EIIlluminate\Contracts\Console0<$CIIlluminate\Contracts\Config0;#AIIlluminate\Contracts\Cache0:!=IIlluminate\Contracts\Bus09*OIIlluminate\Contracts\Broadcasting08
   \  j1kAe;_6m<



W
&				o	A	_0g3vIQueG+jO*f@oL/              7?Zend\Config\Exception.3Zend\ServiceManager.&GZend\ServiceManager\Exception/G3Zend\ServiceManager/F"?zZend\Serializer\Exception. ;zZend\Serializer\Adapter.3=Zend\Math\Exception.'I=Zend\Math\BigInteger\Exception.%E=Zend\Math\BigInteger\Adapter.3:Zend\Math\Exception4@'I:Zend\Math\BigInteger\Exception4?%E:Zend\Math\BigInteger\Adapter4>#AZend\Json\Server\Exception.3Zend\Json\Exception.#AZend\Json\Server\Exception4G3Zend\Json\Exception4F9Zend\EventManager\Test/E!=Zend\EventManager\Filter/D$CZend\EventManager\Exception/C/Zend\EventManager/B9Zend\EventManager\Test2E!=Zend\EventManager\Filter2D$CZend\EventManager\Exception2C/Zend\EventManager2B"?AZend\Cache\Storage\Plugin.1AZend\Cache\Storage.1AZend\Cache\Pattern.5AZend\Cache\Exception.global.global/.WSymfony\Component\Validator\Violation..WSymfony\Component\Validator\Validator.9mSymfony\Component\Validator\Tests\Mapping\Loader.3aSymfony\Component\Validator\Tests\Fixtures.3aSymfony\Component\Validator\Mapping\Loader.4cSymfony\Component\Validator\Mapping\Factory.2_Symfony\Component\Validator\Mapping\Cache.,SSymfony\Component\Validator\Mapping..WSymfony\Component\Validator\Exception.,SSymfony\Component\Validator\Context.$CSymfony\Component\Validator..WSymfony\Component\Validator\Violation5.WSymfony\Component\Validator\Validator59mSymfony\Component\Validator\Tests\Mapping\Loader53aSymfony\Component\Validator\Tests\Fixtures53aSymfony\Component\Validator\Mapping\Loader54cSymfony\Component\Validator\Mapping\Factory52_Symfony\Component\Validator\Mapping\Cache5,SSymfony\Component\Validator\Mapping5.WSymfony\Component\Validator\Exception5,SSymfony\Component\Validator\Context5$CSymfony\Component\Validator5-USymfony\Component\Translation\Loader.0[Symfony\Component\Translation\Extractor.0[Symfony\Component\Translation\Exception.-USymfony\Component\Translation\Dumper.0[Symfony\Component\Translation\Catalogue.&GSymfony\Component\Translation.-USymfony\Component\Translation\Loader3f0[Symfony\Component\Translation\Extractor3e0[Symfony\Component\Translation\Exception3d-USymfony\Component\Translation\Dumper3c0[Symfony\Component\Translation\Catalogue3b&GSymfony\Component\Translation3g-USymfony\Component\Translation\Loader.0[Symfony\Component\Translation\Extractor.0[Symfony\Component\Translation\Exception.-USymfony\Component\Translation\Dumper.0[Symfony\Component\Translation\Catalogue.&GSymfony\Component\Translation."?CJsonSchema\Uri\Retrievers.9CJsonSchema\Constraints.(KSymfony\Component\Process\Pipes.,SSymfony\Component\Process\Exception.(KSymfony\Component\Process\Pipes2,SSymfony\Component\Process\Exception2,SSymfony\Component\Finder\Expression.+QSymfony\Component\Finder\Exception.)MSymfony\Component\Finder\Adapter.,SSymfony\Component\Finder\Expression0]+QSymfony\Component\Finder\Exception0\)MSymfony\Component\Finder\Adapter0[,SSymfony\Component\Finder\Expression2+QSymfony\Component\Finder\Exception2)MSymfony\Component\Finder\Adapter2;qSymfony\Component\DependencyInjection\ParameterBag.BSymfony\Component\DependencyInjection\LazyProxy\PhpDumper.FSymfony\Component\DependencyInjection\LazyProxy\Instantiator.8kSymfony\Component\DependencyInjection\Extension.8kSymfony\Component\DependencyInjection\Exception.5eSymfony\Component\DependencyInjection\Dumper.&GZend\ServiceManager\Exception.
   y vY:jJ*`A$yL/pR%



o
I
'					|	\	G	(	}kG+
|_E!tbF-|V2U&|cChN3~Z;     7Zend\Db\Sql\Predicate/c5Zend\Db\Sql\Platform/b7Zend\Db\Sql\Exception/`#AZend\Db\Sql\Ddl\Constraint/^9Zend\Db\Sql\Ddl\Column/]+Zend\Db\Sql\Ddl/_#Zend\Db\Sql/a%EZend\Db\RowGateway\Exception/[1Zend\Db\RowGateway/\$CZend\Db\ResultSet\Exception/Y/Zend\Db\ResultSet/Z-Zend\Db\Metadata/X/Zend\Db\Exception/W!=Zend\Db\Adapter\Profiler/V!=Zend\Db\Adapter\Platform/U"?Zend\Db\Adapter\Exception/T0[Zend\Db\Adapter\Driver\Sqlsrv\Exception/S'IZend\Db\Adapter\Driver\Feature/R9Zend\Db\Adapter\Driver/Q+Zend\Db\Adapter/P$CZend\Authentication\Storage/O&GZend\Authentication\Exception/N3aZend\Authentication\Adapter\Http\Exception/K)MZend\Authentication\Adapter\Http/L.WZend\Authentication\Adapter\Exception/J6gZend\Authentication\Adapter\DbTable\Exception/I$CZend\Authentication\Adapter/H3Zend\Authentication/Mmglobal/@.WZend\ModuleManager\Listener\Exception/>$CZend\ModuleManager\Listener/=#AZend\ModuleManager\Feature/<%EZend\ModuleManager\Exception/;1Zend\ModuleManager/? ;zZend\Log\Writer\FirePhp/9"?zZend\Log\Writer\ChromePhp/8+zZend\Log\Writer/:1zZend\Log\Processor/71zZend\Log\Formatter/5+zZend\Log\Filter/41zZend\Log\Exception/3zZend\Log/61:Zend\View\Resolver/21:Zend\View\Renderer/1+:Zend\View\Model/0$C:Zend\View\Helper\Navigation//-:Zend\View\Helper/.3:Zend\View\Exception/-#AZend\InputFilter\Exception/,-Zend\InputFilter/+3Zend\Form\Exception/*Zend\Form/)5Zend\Mvc\Router\Http/'"?Zend\Mvc\Router\Exception/& ;Zend\Mvc\Router\Console/%+Zend\Mvc\Router/( ;Zend\Mvc\ResponseSender/$1Zend\Mvc\Exception/##AZend\Mvc\Controller\Plugin/"Zend\Mvc/!"?Zend\Validator\Translator/!=Zend\Validator\Exception/9Zend\Validator\Barcode/)Zend\Validator/ 1vZend\Uri\Exception/vZend\Uri/7Zend\Loader\Exception/#Zend\Loader/9yZend\Escaper\Exception/#A<Zend\Http\Header\Exception/-<Zend\Http\Header/3<Zend\Http\Exception/#A<Zend\Http\Client\Exception/+Q<Zend\Http\Client\Adapter\Exception/!=<Zend\Http\Client\Adapter/%EZend\Crypt\Symmetric\Padding/'IZend\Crypt\Symmetric\Exception/5Zend\Crypt\Symmetric/+QZend\Crypt\PublicKey\Rsa\Exception/&GZend\Crypt\Password\Exception/3Zend\Crypt\Password/,SZend\Crypt\Key\Derivation\Exception/5Zend\Crypt\Exception/
%EZend\Crypt\Symmetric\Padding4<'IZend\Crypt\Symmetric\Exception4;5Zend\Crypt\Symmetric4=+QZend\Crypt\PublicKey\Rsa\Exception4:&GZend\Crypt\Password\Exception483Zend\Crypt\Password49,SZend\Crypt\Key\Derivation\Exception475Zend\Crypt\Exception46 ;Zend\Diactoros\Response/!=Zend\Diactoros\Exception/)Zend\Diactoros/	-OAuth2\TokenType/)OAuth2\Storage/3OAuth2\ResponseType/7OAuth2\OpenID\Storage/#AOAuth2\OpenID\ResponseType/!=OAuth2\OpenID\Controller/ -OAuth2\GrantType./OAuth2\Encryption./OAuth2\Controller.#AOAuth2\ClientAssertionType.OAuth2/9org\bovigo\vfs\visitor.9org\bovigo\vfs\content.)org\bovigo\vfs.9worg\bovigo\vfs\visitor.9worg\bovigo\vfs\content.)worg\bovigo\vfs.$CZend\I18n\Translator\Loader.5Zend\I18n\Translator.3Zend\I18n\Exception.7Zend\Filter\Exception.3Zend\Filter\Encrypt.5Zend\Filter\Compress.#Zend\Filter.1?Zend\Config\Writer.1?Zend\Config\Reader. 5Zend\Db\TableGateway/f
   ]  fC+X-h,g4m>



e
8
				c	6	 	fK2~S"j7i(`)Z,oB[>                                  /YPhpGitHooks\Infrastructure\Disk\Config0*OPhpGitHooks\Infrastructure\Common03PhpGitHooks\Command0'IPhpGitHooks\Application\Config0- Pandalog\Handler/1 Pandalog\Formatter/)؏Whoops\Handler5h)؋Whoops\Handler/+QESymfony\Component\Templating\Tests/,SESymfony\Component\Templating\Loader/,SESymfony\Component\Templating\Helper/%EESymfony\Component\Templating/5eSymfony\Component\Security\Csrf\TokenStorage/7iSymfony\Component\Security\Csrf\TokenGenerator/(KSymfony\Component\Security\Csrf/-U5Symfony\Component\Security\Core\User/-U5Symfony\Component\Security\Core\Role/2_5Symfony\Component\Security\Core\Exception/0[5Symfony\Component\Security\Core\Encoder/<s5Symfony\Component\Security\Core\Authorization\Voter/6g5Symfony\Component\Security\Core\Authorization/F5Symfony\Component\Security\Core\Authentication\Token\Storage/=u5Symfony\Component\Security\Core\Authentication\Token/B5Symfony\Component\Security\Core\Authentication\RememberMe/@{5Symfony\Component\Security\Core\Authentication\Provider/7i5Symfony\Component\Security\Core\Authentication/2_ӣSymfony\Bundle\FrameworkBundle\Templating/.WӣSymfony\Bundle\FrameworkBundle\Kernel/3aӣSymfony\Bundle\FrameworkBundle\CacheWarmer/2_ӟSymfony\Bundle\FrameworkBundle\Templating4.WӟSymfony\Bundle\FrameworkBundle\Kernel43aӟSymfony\Bundle\FrameworkBundle\CacheWarmer4ρglobal4ρFoo41ρClassesWithParents4ρClassMap4	ρ40[eSymfony\Component\Asset\VersionStrategy/*OeSymfony\Component\Asset\Exception/(KeSymfony\Component\Asset\Context/ ;eSymfony\Component\Asset/7-Doctrine\Common\Cache/&GClaroline\KernelBundle\Bundle/#A0PhpBench\Tabular\Formatter/+PhpBench\Report//PhpBench\Registry//PhpBench\Progress/5PhpBench\Environment/%EPhpBench\DependencyInjection/-PhpBench\Console/$CPhpBench\Benchmark\Metadata/1PhpBench\Benchmark/%PhpBench\Dom/,SǢMoveElevator\XlsxAppender\Templates/!=ƭSymfony\Bridge\Twig\Form/!=ƩSymfony\Bridge\Twig\Form3P1]kSymfony\Component\Routing\Matcher\Dumper/*OkSymfony\Component\Routing\Matcher/3akSymfony\Component\Routing\Generator\Dumper/,SkSymfony\Component\Routing\Generator/,SkSymfony\Component\Routing\Exception/"?kSymfony\Component\Routing/.WSymfony\Component\HttpKernel\Profiler/)MSymfony\Component\HttpKernel\Log//YSymfony\Component\HttpKernel\HttpCache/.WSymfony\Component\HttpKernel\Fragment//YSymfony\Component\HttpKernel\Exception/3aSymfony\Component\HttpKernel\DataCollector/0[Symfony\Component\HttpKernel\Controller/1]Symfony\Component\HttpKernel\CacheWarmer/2_Symfony\Component\HttpKernel\CacheClearer/,SSymfony\Component\HttpKernel\Bundle/~%ESymfony\Component\HttpKernel/9mzSymfony\Component\HttpFoundation\Session\Storage/}7izSymfony\Component\HttpFoundation\Session\Flash/{;qzSymfony\Component\HttpFoundation\Session\Attribute/z1]zSymfony\Component\HttpFoundation\Session/|7izSymfony\Component\HttpFoundation\File\MimeType/x)MzSymfony\Component\HttpFoundation/y0[QSymfony\Component\EventDispatcher\Debug3_*OQSymfony\Component\EventDispatcher3`0[LSymfony\Component\EventDispatcher\Debug/v*OLSymfony\Component\EventDispatcher/w/YSymfony\Component\Debug\Tests\Fixtures/u2_Symfony\Component\Debug\FatalErrorHandler/t!CKnp\Snappy/m)&Blend\Security/l"?Rougin\Slytherin\Template/k5Rougin\Slytherin\IoC/j%ERougin\Slytherin\Dispatching/i9Rougin\Slytherin\Debug/hglobal/g%EZend\Db\TableGateway\Feature/e
 }$ d9	hX>!f@fE,
d8



p
c
F
.
							j	Q	1	|dR>'c)
 h5pT5yR-pS9~`B"o9$                                  #pCodeception05epEDI\Test\UnitTest\Definition\Resolver\Fixture0'IpEDI\Test\IntegrationTest\Issues0)MpEDI\Test\IntegrationTest\Fixtures0.WpEDI\Test\IntegrationTest\ErrorMessages0!pEDI\Factory05pEDI\Definition\Source09pEDI\Definition\Resolver05pEDI\Definition\Helper05pEDI\Definition\Dumper0'pEDI\Definition0pEDI0oglobal0oHamcrest01nZend\View\Resolver01nZend\View\Renderer0+nZend\View\Model0$CnZend\View\Helper\Navigation0-nZend\View\Helper03nZend\View\Exception0lKglobal0/YlKSatooshi\Bundle\CoverallsBundle\Entity0kglobal0&GkoZend\ServiceManager\Exception4"3koZend\ServiceManager4!(KklZend\ServiceManager\Initializer0$CklZend\ServiceManager\Factory0&GklZend\ServiceManager\Exception03klZend\ServiceManager0i{system0~-i{org\pdepend\code0i{global0yi{foo0|i{baz0zi{Trait0 ;i{Report\Dependencies\Xml0/i{Project\Component07i{PDepend\Util\Coverage0x1i{PDepend\Util\Cache0w!=i{PDepend\Source\Tokenizer0v9i{PDepend\Source\Builder0u+Qi{PDepend\Source\AST\ASTArtifactList0s"?i{PDepend\Source\ASTVisitor0t1i{PDepend\Source\AST0r)i{PDepend\Report0q2_i{PDepend\Metrics\Analyzer\CodeRankAnalyzer0o+i{PDepend\Metrics0n'i{PDepend\Input0mi{PDepend0p#i{Just\A\Test0 ;i{ClassDependencyAnalyzer0}
i{C0
i{B0
i{A0	i{0{hglobal0lmTracy0k9m	Symfony\Component\ExpressionLanguage\ParserCache5u-U	Symfony\Component\ExpressionLanguage5t!=}Nella\MonologTracy\Tracy0h1}Nella\MonologTracy0g5eXNella\MonologTracyBundle\DependencyInjection0e!=XNella\MonologTracyBundle0f'0FluidXml\Core0d!Owl\Traits0cOwl\Http0b)Owl\DataMapper0a(KJulianPitt\DBManager\Interfaces0`+fproject\common0_global0^1Illuminate\Console051Illuminate\Console1*OHipsterJazzbo\Landlord\Exceptions039HipsterJazzbo\Landlord04+{Simplified\View0+5xSimplified\Validator0*+iSimplified\Core0)3bSimplified\Database0(-_Simplified\Cache0''Aws\Signature0Aws\S30%Aws\DynamoDb0+Aws\Credentials0)Aws\Api\Parser03Aws\Api\ErrorParser0Aws06g{Symfony\Component\CssSelector\XPath\Extension3,S{Symfony\Component\CssSelector\XPath35e{Symfony\Component\CssSelector\Parser\Handler3-U{Symfony\Component\CssSelector\Parser3+Q{Symfony\Component\CssSelector\Node30[{Symfony\Component\CssSelector\Exception3global/ ;Maatwebsite\Excel\Files/ ;League\Fractal\Resource/"?League\Fractal\Pagination/!=Collective\Html\Eloquent/+Collective\Html/ ;iIlluminate\View\Engines/"?iIlluminate\View\Compilers/+iIlluminate\View/1Illuminate\Session/$C_Illuminate\Routing\Matching/1_Illuminate\Routing/+Illuminate\Http/'IIlluminate\Database\Migrations0S%EIlluminate\Database\Eloquent0R'IIlluminate\Database\Connectors0Q3Illuminate\Database0P'IIlluminate\Database\Migrations/%EIlluminate\Database\Eloquent/'IIlluminate\Database\Connectors/3Illuminate\Database/-Illuminate\Cache/global/#AYajra\Datatables\Contracts/%EnMyBuilder\PhpunitAccelerator/.WPhpGitHooks\Infrastructure\PhpCsFixer/'IPhpGitHooks\Infrastructure\Git//YPhpGitHooks\Infrastructure\Disk\Config/*OPhpGitHooks\Infrastructure\Common/3PhpGitHooks\Command/'IPhpGitHooks\Application\Config/.WPhpGitHooks\Infrastructure\PhpCsFixer0   #ApCodeception\Command\Shared0
 h  bEhG&_<#^4A



R
(				o	;	"	nD`;wQ.qM'pJ"Y/{V:{bB                      -~-Illuminate\Cache0)~-Illuminate\Bus0"?~-Illuminate\Auth\Passwords09~-Illuminate\Auth\Access0+~-Illuminate\Auth0 ;~+Illuminate\View\Engines5."?~+Illuminate\View\Compilers5-+~+Illuminate\View5/7~+Illuminate\Validation5,9~+Illuminate\Translation5+"?~+Illuminate\Support\Traits5?1~+Illuminate\Session5*$C~+Illuminate\Routing\Matching5)1~+Illuminate\Routing5> ;~+Illuminate\Queue\Failed5($C~+Illuminate\Queue\Connectors5'-~+Illuminate\Queue5=7~+Illuminate\Pagination5<+~+Illuminate\Http5;)M~+Illuminate\Foundation\Validation5:/Y~+Illuminate\Foundation\Testing\Concerns58&G~+Illuminate\Foundation\Testing59"?~+Illuminate\Foundation\Bus57*O~+Illuminate\Foundation\Auth\Access55#A~+Illuminate\Foundation\Auth56'I~+Illuminate\Database\Migrations5&%E~+Illuminate\Database\Eloquent5%'I~+Illuminate\Database\Connectors5$3~+Illuminate\Database5#"?~+Illuminate\Contracts\View5"(K~+Illuminate\Contracts\Validation5!%E~+Illuminate\Contracts\Support5 %E~+Illuminate\Contracts\Routing5#A~+Illuminate\Contracts\Redis5#A~+Illuminate\Contracts\Queue5&G~+Illuminate\Contracts\Pipeline5(K~+Illuminate\Contracts\Pagination5"?~+Illuminate\Contracts\Mail5%E~+Illuminate\Contracts\Logging5"?~+Illuminate\Contracts\Http5%E~+Illuminate\Contracts\Hashing5(K~+Illuminate\Contracts\Foundation5(K~+Illuminate\Contracts\Filesystem5$C~+Illuminate\Contracts\Events5(K~+Illuminate\Contracts\Encryption5#A~+Illuminate\Contracts\Debug5$C~+Illuminate\Contracts\Cookie5'I~+Illuminate\Contracts\Container5%E~+Illuminate\Contracts\Console5$C~+Illuminate\Contracts\Config5#A~+Illuminate\Contracts\Cache5!=~+Illuminate\Contracts\Bus5*O~+Illuminate\Contracts\Broadcasting5)M~+Illuminate\Contracts\Auth\Access5	"?~+Illuminate\Contracts\Auth5
1~+Illuminate\Console54-~+Illuminate\Cache53)~+Illuminate\Bus52"?~+Illuminate\Auth\Passwords59~+Illuminate\Auth\Access50+~+Illuminate\Auth513a{zSymfony\Component\PropertyAccess\Exception0)M{zSymfony\Component\PropertyAccess04czSymfony\Component\OptionsResolver\Exception0*OzSymfony\Component\OptionsResolver0.WzsSymfony\Component\Intl\ResourceBundle0)MzsSymfony\Component\Intl\Exception02_zsSymfony\Component\Intl\Data\Bundle\Writer02_zsSymfony\Component\Intl\Data\Bundle\Reader04czsSymfony\Component\Intl\Data\Bundle\Compiler0.WySymfony\Component\Form\Tests\Fixtures0$CySymfony\Component\Form\Test0DySymfony\Component\Form\Extension\Validator\ViolationMapper07iySymfony\Component\Form\Extension\DataCollector0;qySymfony\Component\Form\Extension\Csrf\CsrfProvider09mySymfony\Component\Form\Extension\Core\ChoiceList0)MySymfony\Component\Form\Exception01]ySymfony\Component\Form\ChoiceList\Loader02_ySymfony\Component\Form\ChoiceList\Factory0*OySymfony\Component\Form\ChoiceList09ySymfony\Component\Form0#xCodeception0+qGuzzleHttp\Psr70"?qdFacebook\WebDriver\Remote0$CqdFacebook\WebDriver\Internal0.WqdFacebook\WebDriver\Interactions\Touch01qdFacebook\WebDriver0pglobal0!p_generated0-pShire\_generated0+pJazz\_generated0 ;pJazz\Pianist\_generated0 ;pCodeception\Util\Shared0 ;pCodeception\Test\Loader0$CpCodeception\Test\Interfaces0!=pCodeception\Test\Feature0$CpCodeception\TestCase\Shared0(KpCodeception\TestCase\Interfaces0&GpCodeception\Subscriber\Shared03pCodeception\PHPUnit0#ApCodeception\Lib\Interfaces0)MpCodeception\Lib\Generator\Shared0)MpCodeception\Lib\Connector\Shared0   
pCo1~-Illuminate\Console0
   `  e@[2	wN'jG*eB




o
J
)
					j	Q	.	g]K/"KJ) U oBo>JJ                 8kSymfony\Component\DependencyInjection\Extension138kSymfony\Component\DependencyInjection\Exception125eSymfony\Component\DependencyInjection\Dumper117iSymfony\Component\DependencyInjection\Compiler1/.WSymfony\Component\DependencyInjection10/YSymfony\Component\Debug\Tests\Fixtures1.2_Symfony\Component\Debug\FatalErrorHandler1-6gSymfony\Component\CssSelector\XPath\Extension1+,SSymfony\Component\CssSelector\XPath1,5eSymfony\Component\CssSelector\Parser\Handler1)-USymfony\Component\CssSelector\Parser1*+QSymfony\Component\CssSelector\Node1(0[Symfony\Component\CssSelector\Exception1'(KSymfony\Component\Console\Style1&)MSymfony\Component\Console\Output1%(KSymfony\Component\Console\Input1$)MSymfony\Component\Console\Helper1#,SSymfony\Component\Console\Formatter1",SSymfony\Component\Console\Exception1!-USymfony\Component\Console\Descriptor1 .WSymfony\Component\Config\Tests\Loader1*OSymfony\Component\Config\Resource1(KSymfony\Component\Config\Loader14cSymfony\Component\Config\Definition\Builder1,SSymfony\Component\Config\Definition1!=Symfony\Component\Config10[Symfony\Component\Asset\VersionStrategy1*OSymfony\Component\Asset\Exception1(KSymfony\Component\Asset\Context1 ;Symfony\Component\Asset1QSymfony\Bundle\SecurityBundle\DependencyInjection\Security\UserProvider1LSymfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory12_Symfony\Bundle\FrameworkBundle\Templating1.WSymfony\Bundle\FrameworkBundle\Kernel13aSymfony\Bundle\FrameworkBundle\CacheWarmer1!=Symfony\Bridge\Twig\Form1.WSymfony\Bridge\Doctrine\Security\User10[Symfony\Bridge\Doctrine\Form\ChoiceList1 ;Symfony\Bridge\Doctrine1Foo11ClassesWithParents1ClassMap1	1#AIntervention\Image\Filters1
)M%Symfony\Component\VarDumper\Test5+Q%Symfony\Component\VarDumper\Dumper5+Q%Symfony\Component\VarDumper\Cloner5 ;~-Illuminate\View\Engines0"?~-Illuminate\View\Compilers0+~-Illuminate\View07~-Illuminate\Validation09~-Illuminate\Translation0"?~-Illuminate\Support\Traits11~-Illuminate\Session0$C~-Illuminate\Routing\Matching01~-Illuminate\Routing1 ;~-Illuminate\Queue\Failed0$C~-Illuminate\Queue\Connectors0-~-Illuminate\Queue17~-Illuminate\Pagination1+~-Illuminate\Http1)M~-Illuminate\Foundation\Validation1 /Y~-Illuminate\Foundation\Testing\Concerns0&G~-Illuminate\Foundation\Testing0"?~-Illuminate\Foundation\Bus0*O~-Illuminate\Foundation\Auth\Access0#A~-Illuminate\Foundation\Auth0'I~-Illuminate\Database\Migrations0%E~-Illuminate\Database\Eloquent0'I~-Illuminate\Database\Connectors03~-Illuminate\Database0"?~-Illuminate\Contracts\View0(K~-Illuminate\Contracts\Validation0%E~-Illuminate\Contracts\Support0%E~-Illuminate\Contracts\Routing0#A~-Illuminate\Contracts\Redis0#A~-Illuminate\Contracts\Queue0&G~-Illuminate\Contracts\Pipeline0(K~-Illuminate\Contracts\Pagination0"?~-Illuminate\Contracts\Mail0%E~-Illuminate\Contracts\Logging0"?~-Illuminate\Contracts\Http0%E~-Illuminate\Contracts\Hashing0(K~-Illuminate\Contracts\Foundation0(K~-Illuminate\Contracts\Filesystem0$C~-Illuminate\Contracts\Events0(K~-Illuminate\Contracts\Encryption0#A~-Illuminate\Contracts\Debug0$C~-Illuminate\Contracts\Cookie0'I~-Illuminate\Contracts\Container0%E~-Illuminate\Contracts\Console0$C~-Illuminate\Contracts\Config0#A~-Illuminate\Contracts\Cache0!=~-Illuminate\Contracts\Bus0*O~-Illuminate\Contracts\Broadcasting0)M~-Illuminate\Contracts\Auth\Access0
   O  PNtBvGw?



M
				Y	/	 e;_6`3j)a*[-l<p>       .WSymfony\Component\Security\Http\Tests13aSymfony\Component\Security\Http\RememberMe1/YSymfony\Component\Security\Http\Logout11]Symfony\Component\Security\Http\Firewall13aSymfony\Component\Security\Http\EntryPoint1~6gSymfony\Component\Security\Http\Authorization1}7iSymfony\Component\Security\Http\Authentication1|(KSymfony\Component\Security\Http1{/YSymfony\Component\Security\Guard\Token1z)MSymfony\Component\Security\Guard1y5eSymfony\Component\Security\Csrf\TokenStorage1x7iSymfony\Component\Security\Csrf\TokenGenerator1w(KSymfony\Component\Security\Csrf1v-USymfony\Component\Security\Core\User1u-USymfony\Component\Security\Core\Role1t2_Symfony\Component\Security\Core\Exception1s0[Symfony\Component\Security\Core\Encoder1r<sSymfony\Component\Security\Core\Authorization\Voter1q6gSymfony\Component\Security\Core\Authorization1pFSymfony\Component\Security\Core\Authentication\Token\Storage1n=uSymfony\Component\Security\Core\Authentication\Token1oBSymfony\Component\Security\Core\Authentication\RememberMe1m@{Symfony\Component\Security\Core\Authentication\Provider1l7iSymfony\Component\Security\Core\Authentication1k1]Symfony\Component\Routing\Matcher\Dumper1h*OSymfony\Component\Routing\Matcher1i3aSymfony\Component\Routing\Generator\Dumper1g,SSymfony\Component\Routing\Generator1f,SSymfony\Component\Routing\Exception1e"?Symfony\Component\Routing1j'ISymfony\Component\PropertyInfo1d3aSymfony\Component\PropertyAccess\Exception1b)MSymfony\Component\PropertyAccess1c(KSymfony\Component\Process\Pipes1a,SSymfony\Component\Process\Exception1`4cSymfony\Component\OptionsResolver\Exception1^*OSymfony\Component\OptionsResolver1_9Symfony\Component\Ldap1].WSymfony\Component\Intl\ResourceBundle1\)MSymfony\Component\Intl\Exception1[2_Symfony\Component\Intl\Data\Bundle\Writer1Z2_Symfony\Component\Intl\Data\Bundle\Reader1Y4cSymfony\Component\Intl\Data\Bundle\Compiler1X.WSymfony\Component\HttpKernel\Profiler1W)MSymfony\Component\HttpKernel\Log1V/YSymfony\Component\HttpKernel\HttpCache1T.WSymfony\Component\HttpKernel\Fragment1S/YSymfony\Component\HttpKernel\Exception1R3aSymfony\Component\HttpKernel\DataCollector1Q0[Symfony\Component\HttpKernel\Controller1P1]Symfony\Component\HttpKernel\CacheWarmer1O2_Symfony\Component\HttpKernel\CacheClearer1N,SSymfony\Component\HttpKernel\Bundle1M%ESymfony\Component\HttpKernel1U9mSymfony\Component\HttpFoundation\Session\Storage1L7iSymfony\Component\HttpFoundation\Session\Flash1J;qSymfony\Component\HttpFoundation\Session\Attribute1I1]Symfony\Component\HttpFoundation\Session1K7iSymfony\Component\HttpFoundation\File\MimeType1G)MSymfony\Component\HttpFoundation1H.WSymfony\Component\Form\Tests\Fixtures1F$CSymfony\Component\Form\Test1EDSymfony\Component\Form\Extension\Validator\ViolationMapper1D7iSymfony\Component\Form\Extension\DataCollector1C)MSymfony\Component\Form\Exception1B1]Symfony\Component\Form\ChoiceList\Loader1A2_Symfony\Component\Form\ChoiceList\Factory1@*OSymfony\Component\Form\ChoiceList1?9Symfony\Component\Form1>+QSymfony\Component\Finder\Exception1=/YSymfony\Component\Filesystem\Exception1<9mSymfony\Component\ExpressionLanguage\ParserCache1;-USymfony\Component\ExpressionLanguage1:0[Symfony\Component\EventDispatcher\Debug18*OSymfony\Component\EventDispatcher19=uSymfony\Component\DependencyInjection\Tests\Compiler17;qSymfony\Component\DependencyInjection\ParameterBag16BSymfony\Component\DependencyInjection\LazyProxy\PhpDumper150[Symfony\Component\Security\Http\Session1
   h  |N~I#vEb5q=	


q
E
					w	J	l?y]9kC'n=fEkL.gO6 ]M?#            #Diff\Differ1#Diff\DiffOp1'Diff\Comparer11Diff\ArrayComparer1Diff1Gglobal1"?xLeague\OAuth2\Client\Tool1&GxLeague\OAuth2\Client\Provider1'InLeague\OAuth1\Client\Signature1)MnLeague\OAuth1\Client\Credentials1'Aws\Signature1Aws\S31%Aws\DynamoDb1+Aws\Credentials1)Aws\Api\Parser13Aws\Api\ErrorParser1Aws1+QbDoctrine\DBAL\Sharding\ShardChoser19bDoctrine\DBAL\Sharding1%EbDoctrine\DBAL\Schema\Visitor1*ObDoctrine\DBAL\Schema\Synchronizer15bDoctrine\DBAL\Schema17bDoctrine\DBAL\Logging15bDoctrine\DBAL\Driver1'bDoctrine\DBAL1!=Doctrine\Tests\ORM\Tools1-UDoctrine\Tests\ORM\Functional\Ticket1-UDoctrine\Tests\Models\DDC2372\Traits1&GDoctrine\Tests\Models\DDC18721 ;Doctrine\ORM\Repository11Doctrine\ORM\Query11Doctrine\ORM\Proxy1'IDoctrine\ORM\Persisters\Entity1+QDoctrine\ORM\Persisters\Collection15Doctrine\ORM\Mapping1,SDoctrine\ORM\Cache\Persister\Entity10[Doctrine\ORM\Cache\Persister\Collection1%EDoctrine\ORM\Cache\Persister1#ADoctrine\ORM\Cache\Logging11Doctrine\ORM\Cache1%Doctrine\ORM1 ;Doctrine\ORM\Repository5g1Doctrine\ORM\Query5f1Doctrine\ORM\Proxy5e'IDoctrine\ORM\Persisters\Entity5d+QDoctrine\ORM\Persisters\Collection5c5Doctrine\ORM\Mapping5b,SDoctrine\ORM\Cache\Persister\Entity5`0[Doctrine\ORM\Cache\Persister\Collection5_%EDoctrine\ORM\Cache\Persister5^#ADoctrine\ORM\Cache\Logging5]1Doctrine\ORM\Cache5\%Doctrine\ORM5aglobal1#ADoctrine\Common\Reflection1(KDoctrine\Common\Proxy\Exception17Doctrine\Common\Proxy13aDoctrine\Common\Persistence\Mapping\Driver1,SDoctrine\Common\Persistence\Mapping1$CDoctrine\Common\Persistence1+Doctrine\Common1#A|Doctrine\Common\Reflection1(K|Doctrine\Common\Proxy\Exception17|Doctrine\Common\Proxy13a|Doctrine\Common\Persistence\Mapping\Driver1,S|Doctrine\Common\Persistence\Mapping1$C|Doctrine\Common\Persistence1+|Doctrine\Common1global1)MSymfony\Component\Yaml\Exception1)MSymfony\Component\VarDumper\Test1+QSymfony\Component\VarDumper\Dumper1+QSymfony\Component\VarDumper\Cloner1.WSymfony\Component\Validator\Violation1.WSymfony\Component\Validator\Validator19mSymfony\Component\Validator\Tests\Mapping\Loader13aSymfony\Component\Validator\Tests\Fixtures13aSymfony\Component\Validator\Mapping\Loader14cSymfony\Component\Validator\Mapping\Factory12_Symfony\Component\Validator\Mapping\Cache1,SSymfony\Component\Validator\Mapping1.WSymfony\Component\Validator\Exception1,SSymfony\Component\Validator\Context1$CSymfony\Component\Validator1-USymfony\Component\Translation\Loader10[Symfony\Component\Translation\Extractor10[Symfony\Component\Translation\Exception1-USymfony\Component\Translation\Dumper10[Symfony\Component\Translation\Catalogue1&GSymfony\Component\Translation1+QSymfony\Component\Templating\Tests1,SSymfony\Component\Templating\Loader1,SSymfony\Component\Templating\Helper1%ESymfony\Component\Templating14cSymfony\Component\Serializer\Tests\Fixtures10[Symfony\Component\Serializer\Normalizer13aSymfony\Component\Serializer\NameConverter14cSymfony\Component\Serializer\Mapping\Loader15eSymfony\Component\Serializer\Mapping\Factory1-USymfony\Component\Serializer\Mapping1/YSymfony\Component\Serializer\Exception1-USymfony\Component\Serializer\Encoder1global1%Diff\Patcher1
   { yZ2`? }mM$~jL<oR4





Z
3
				\	2	eUK8"oJ5 kN$gL.	~Y;mI&xW5_<         4cmageekguy\atoum\tests\units\factory\builder3"?mageekguy\atoum\test\data3(Kmageekguy\atoum\scripts\treemap3'Imageekguy\atoum\report\writers3"?mageekguy\atoum\observers35mageekguy\atoum\mock3 ;mageekguy\atoum\factory3"?mageekguy\atoum\extension3!=mageekguy\atoum\asserter3 ;mageekguy\atoum\adapter3+mageekguy\atoum3	3(KҰZendDiagnostics\Runner\Reporter2N9ҰZendDiagnostics\Result2M7ҰZendDiagnostics\Check2L"?ЦZend\Text\Table\Exception2K"?ЦZend\Text\Table\Decorator2J#AЦZend\Text\Figlet\Exception2I3ЦZend\Text\Exception2H%EZend\File\Transfer\Exception2G3Zend\File\Exception2F/Zend\Code\Scanner4'IZend\Code\Reflection\Exception4*OZend\Code\Reflection\DocBlock\Tag45Zend\Code\Reflection4$CZend\Code\Generic\Prototype4&GZend\Code\Generator\Exception4)MZend\Code\Generator\DocBlock\Tag43Zend\Code\Generator43Zend\Code\Exception4$CZend\Code\Annotation\Parser45Zend\Code\Annotation4/Zend\Code\Scanner2A'IZend\Code\Reflection\Exception2?*OZend\Code\Reflection\DocBlock\Tag2>5Zend\Code\Reflection2@$CZend\Code\Generic\Prototype2=&GZend\Code\Generator\Exception2;)MZend\Code\Generator\DocBlock\Tag2:3Zend\Code\Generator2<3Zend\Code\Exception29$CZend\Code\Annotation\Parser285Zend\Code\Annotation271Hoa\Core\Parameter26)Hoa\Core\Event25'Hoa\Core\Data24	23#Hoa\Zformat22#Hoa\Visitor21$CΦHoa\Stream\Wrapper\IWrapper41ΦHoa\Stream\IStream4$CΥHoa\Stream\Wrapper\IWrapper201ΥHoa\Stream\IStream2/9zHoa\Iterator\Recursive4%zHoa\Iterator49yHoa\Iterator\Recursive2.%yHoa\Iterator2-cHoa\Event2,	^2+global2*"?ˈIvory\HttpAdapter\Message2)&GˈIvory\HttpAdapter\Event\Timer2(+QˈIvory\HttpAdapter\Event\StatusCode2'/YˈIvory\HttpAdapter\Event\Retry\Strategy2&&GˈIvory\HttpAdapter\Event\Retry2%)MˈIvory\HttpAdapter\Event\Redirect2$(KˈIvory\HttpAdapter\Event\History2#*OˈIvory\HttpAdapter\Event\Formatter2"+QˈIvory\HttpAdapter\Event\Cookie\Jar2!'IˈIvory\HttpAdapter\Event\Cookie2 .WˈIvory\HttpAdapter\Event\Cache\Adapter2&GˈIvory\HttpAdapter\Event\Cache2*OˈIvory\HttpAdapter\Event\BasicAuth2/ˈIvory\HttpAdapter2-DebugBar\Storage29DebugBar\DataFormatter29DebugBar\DataCollector2DebugBar2'IgLaracasts\Utilities\JavaScript25Eluceo\iCal\Property23Dimsav\Translatable29Cartalyst\Sentry\Users2$CCartalyst\Sentry\Throttling2"?Cartalyst\Sentry\Sessions2!=Cartalyst\Sentry\Hashing2 ;Cartalyst\Sentry\Groups2
!=Cartalyst\Sentry\Cookies2	global25Symfony\CS\Tokenizer2!Symfony\CS2global2zglobal2Vglobal23MobileDetect\Result20[MobileDetect\Repository\OperatingSystem2'IMobileDetect\Repository\Device2 (KMobileDetect\Repository\Browser19MobileDetect\Exception1global1'Tester\Runner1N\S1
N1	1#Nette\Utils11Nette\Localization1+]Nette\DI\Config17Illuminate\Validation19oIlluminate\Translation1 ;cIlluminate\Queue\Failed1$CcIlluminate\Queue\Connectors1-cIlluminate\Queue17Illuminate\Pagination1)SIlluminate\Bus1"?Illuminate\Auth\Passwords19Illuminate\Auth\Access1+Illuminate\Auth1'ILaravel\Lumen\Testing\Concerns17Laravel\Lumen\Testing17Laravel\Lumen\Routing19Laravel\Lumen\Concerns11Laravel\Lumen\Auth1/kphpmock\functions1kphpmock1
   tzW6L,Z&vW.a<



n
C

 					t	V	8	pIxPhC'pR3iN)z`@|Y<wU)                     #AZend\Http\Client\Exception2+QZend\Http\Client\Adapter\Exception2!=Zend\Http\Client\Adapter23Zend\Form\Exception2Zend\Form27Zend\Filter\Exception23Zend\Filter\Encrypt25Zend\Filter\Compress2#Zend\Filter2%EZend\File\Transfer\Exception23Zend\File\Exception2"?Zend\Feed\Writer\Renderer2#AZend\Feed\Writer\Extension2#AZend\Feed\Writer\Exception2-Zend\Feed\Writer27Zend\Feed\Reader\Http27Zend\Feed\Reader\Feed2#AZend\Feed\Reader\Exception29Zend\Feed\Reader\Entry2-Zend\Feed\Reader2%EZend\Feed\PubSubHubbub\Model2)MZend\Feed\PubSubHubbub\Exception29Zend\Feed\PubSubHubbub23Zend\Feed\Exception2!=Zend\EventManager\Filter2$CZend\EventManager\Exception2/Zend\EventManager29Zend\Escaper\Exception21Zend\Dom\Exception2/Zend\Di\Exception21Zend\Di\Definition2Zend\Di2'IZend\Db\TableGateway\Exception25Zend\Db\TableGateway27Zend\Db\Sql\Predicate25Zend\Db\Sql\Platform27Zend\Db\Sql\Exception2#AZend\Db\Sql\Ddl\Constraint29Zend\Db\Sql\Ddl\Column2+Zend\Db\Sql\Ddl2#Zend\Db\Sql2%EZend\Db\RowGateway\Exception21Zend\Db\RowGateway2$CZend\Db\ResultSet\Exception2/Zend\Db\ResultSet2-Zend\Db\Metadata2/Zend\Db\Exception2!=Zend\Db\Adapter\Profiler2!=Zend\Db\Adapter\Platform2"?Zend\Db\Adapter\Exception20[Zend\Db\Adapter\Driver\Sqlsrv\Exception2'IZend\Db\Adapter\Driver\Feature29Zend\Db\Adapter\Driver2+Zend\Db\Adapter2%EZend\Crypt\Symmetric\Padding2'IZend\Crypt\Symmetric\Exception25Zend\Crypt\Symmetric2+QZend\Crypt\PublicKey\Rsa\Exception2&GZend\Crypt\Password\Exception23Zend\Crypt\Password2,SZend\Crypt\Key\Derivation\Exception25Zend\Crypt\Exception2"?Zend\Console\RouteMatcher23Zend\Console\Prompt29Zend\Console\Exception25Zend\Console\Charset25Zend\Console\Adapter2~%Zend\Console21Zend\Config\Writer2}1Zend\Config\Reader2|7Zend\Config\Processor2{7Zend\Config\Exception2z/Zend\Code\Scanner2y'IZend\Code\Reflection\Exception2w*OZend\Code\Reflection\DocBlock\Tag2v5Zend\Code\Reflection2x$CZend\Code\Generic\Prototype2u&GZend\Code\Generator\Exception2s)MZend\Code\Generator\DocBlock\Tag2r3Zend\Code\Generator2t3Zend\Code\Exception2q$CZend\Code\Annotation\Parser2p5Zend\Code\Annotation2o9Zend\Captcha\Exception2n%Zend\Captcha2m"?Zend\Cache\Storage\Plugin2l1Zend\Cache\Storage2k1Zend\Cache\Pattern2j5Zend\Cache\Exception2i(KZend\Barcode\Renderer\Exception2g7Zend\Barcode\Renderer2h&GZend\Barcode\Object\Exception2e3Zend\Barcode\Object2f9Zend\Barcode\Exception2d$CZend\Authentication\Storage2c&GZend\Authentication\Exception2b3aZend\Authentication\Adapter\Http\Exception2_)MZend\Authentication\Adapter\Http2`.WZend\Authentication\Adapter\Exception2^6gZend\Authentication\Adapter\DbTable\Exception2]$CZend\Authentication\Adapter2\3Zend\Authentication2a9mageekguy\atoum\writer2Y4cmageekguy\atoum\tests\units\factory\builder2["?mageekguy\atoum\test\data2X(Kmageekguy\atoum\scripts\treemap2W'Imageekguy\atoum\report\writers2V"?mageekguy\atoum\observers2U5mageekguy\atoum\mock2T ;mageekguy\atoum\factory2S"?mageekguy\atoum\extension2R!=mageekguy\atoum\asserter2P ;mageekguy\atoum\adapter2O+mageekguy\atoum2Q	2Z   3Zend\Http\Exception2
   u  |b>!h=(	qN-lJ'uO'





m
I
$						i	H	%	`9b9oP&	mO/`A&^8|X5 gJ0 +Zend\View\Model37$CZend\View\Helper\Navigation36-Zend\View\Helper353Zend\View\Exception34"?Zend\Validator\Translator32!=Zend\Validator\Exception319Zend\Validator\Barcode30)Zend\Validator331Zend\Uri\Exception3.Zend\Uri3/"?Zend\Text\Table\Exception3-"?Zend\Text\Table\Decorator3,#AZend\Text\Figlet\Exception3+3Zend\Text\Exception3*1Zend\Tag\Exception3(+QZend\Tag\Cloud\Decorator\Exception3'!=Zend\Tag\Cloud\Decorator3&Zend\Tag3)"?Zend\Stdlib\StringWrapper3%%EZend\Stdlib\JsonSerializable3$0[Zend\Stdlib\Hydrator\Strategy\Exception3"&GZend\Stdlib\Hydrator\Strategy3#,SZend\Stdlib\Hydrator\NamingStrategy3!$CZend\Stdlib\Hydrator\Filter35Zend\Stdlib\Hydrator3 /Zend\Stdlib\Guard3>7Zend\Stdlib\Extractor37Zend\Stdlib\Exception39Zend\Stdlib\ArrayUtils3#Zend\Stdlib3+QZend\Soap\Wsdl\ComplexTypeStrategy33Zend\Soap\Exception31]Zend\Soap\AutoDiscover\DiscoveryStrategy39Zend\Session\Validator35Zend\Session\Storage3!=Zend\Session\SaveHandler39Zend\Session\Exception33Zend\Session\Config3%Zend\Session3&GZend\ServiceManager\Exception33Zend\ServiceManager3)MZend\Server\Reflection\Exception37Zend\Server\Exception3#Zend\Server3"?Zend\Serializer\Exception3 ;Zend\Serializer\Adapter3 ;Zend\ProgressBar\Upload3
#AZend\ProgressBar\Exception3	+QZend\ProgressBar\Adapter\Exception3(KZend\Permissions\Rbac\Exception37Zend\Permissions\Rbac3"?Zend\Permissions\Acl\Role3&GZend\Permissions\Acl\Resource3'IZend\Permissions\Acl\Exception3'IZend\Permissions\Acl\Assertion35Zend\Permissions\Acl3&GZend\Paginator\ScrollingStyle3 !=Zend\Paginator\Exception2)MZend\Paginator\Adapter\Exception29Zend\Paginator\Adapter2)Zend\Paginator2"?Zend\Navigation\Exception25Zend\Mvc\Router\Http2"?Zend\Mvc\Router\Exception2 ;Zend\Mvc\Router\Console2+Zend\Mvc\Router2 ;Zend\Mvc\ResponseSender21Zend\Mvc\Exception2#AZend\Mvc\Controller\Plugin2Zend\Mvc2.WZend\ModuleManager\Listener\Exception2$CZend\ModuleManager\Listener2#AZend\ModuleManager\Feature2%EZend\ModuleManager\Exception21Zend\ModuleManager23Zend\Mime\Exception27Zend\Memory\Exception27Zend\Memory\Container23Zend\Math\Exception2'IZend\Math\BigInteger\Exception2%EZend\Math\BigInteger\Adapter2&GZend\Mail\Transport\Exception23Zend\Mail\Transport2#AZend\Mail\Storage\Writable2)MZend\Mail\Storage\Part\Exception29Zend\Mail\Storage\Part2"?Zend\Mail\Storage\Message2!=Zend\Mail\Storage\Folder2$CZend\Mail\Storage\Exception2%EZend\Mail\Protocol\Exception2#AZend\Mail\Header\Exception2-Zend\Mail\Header23Zend\Mail\Exception2/Zend\Mail\Address2 ;Zend\Log\Writer\FirePhp2"?Zend\Log\Writer\ChromePhp2+Zend\Log\Writer21Zend\Log\Processor21Zend\Log\Formatter2+Zend\Log\Filter21Zend\Log\Exception2Zend\Log27Zend\Loader\Exception2#Zend\Loader2*OZend\Ldap\Node\Schema\ObjectClass2,SZend\Ldap\Node\Schema\AttributeType2#AZend\Ldap\Filter\Exception23Zend\Ldap\Exception2&GZend\Ldap\Converter\Exception2#AZend\Json\Server\Exception23Zend\Json\Exception2#AZend\InputFilter\Exception2-Zend\InputFilter2$CZend\I18n\Translator\Loader25Zend\I18n\Translator23Zend\I18n\Exception2#AZend\Http\Header\Exception2
   sd>'vW8_<eC.rU4'





m
I
/
			j	A	vHj@v:\:
sVE.oQ=)gJ#z`L<#                   demo3!_generated3+AspectMock\Util3]global3!]_generated3-]Shire\_generated3+]Jazz\_generated3 ;]Jazz\Pianist\_generated3 ;]Codeception\Util\Shared3$C]Codeception\TestCase\Shared3(K]Codeception\TestCase\Interfaces3&G]Codeception\Subscriber\Shared33]Codeception\PHPUnit3#A]Codeception\Lib\Interfaces3)M]Codeception\Lib\Generator\Shared3)M]Codeception\Lib\Connector\Shared3%E]Codeception\Lib\Actor\Shared3#A]Codeception\Command\Shared3!Nette\Mail3!Nette\Http35Nette\ComponentModel3'INette\Bridges\ApplicationLatte35Nette\Application\UI3/Nette\Application3% Kdyby\Events3+ Doctrine\Common3Tracy39Nette\Caching\Storages3'Nette\Caching3fProject33fApiGen\Utils\Finder3<sfApiGen\Parser\Tests\ParserStorageImplementersSource31]fApiGen\Parser\Reflection\TokenReflection3'IfApiGen\Parser\Reflection\Parts3/YfApiGen\Generator\SourceCodeHighlighter3!=fApiGen\Generator\Markups3-UfApiGen\Contracts\Theme\Configuration39fApiGen\Contracts\Theme34cfApiGen\Contracts\Templating\TemplateFactory3-UfApiGen\Contracts\Templating\Template3,SfApiGen\Contracts\Templating\Routing3;qfApiGen\Contracts\Parser\Reflection\TokenReflection31]fApiGen\Contracts\Parser\Reflection\Magic36gfApiGen\Contracts\Parser\Reflection\Extractors34cfApiGen\Contracts\Parser\Reflection\Behavior3+QfApiGen\Contracts\Parser\Reflection3)MfApiGen\Contracts\Parser\Elements3'IfApiGen\Contracts\Parser\Broker3 ;fApiGen\Contracts\Parser33afApiGen\Contracts\Markup\PhpCodeHighlighter3)MfApiGen\Contracts\Markup\Markdown36gfApiGen\Contracts\Generator\TemplateGenerators3-UfApiGen\Contracts\Generator\Resolvers3#AfApiGen\Contracts\Generator3/YfApiGen\Contracts\EventDispatcher\Event3)MfApiGen\Contracts\EventDispatcher3'IfApiGen\Contracts\Console\Input3$CfApiGen\Contracts\Console\IO3(KfApiGen\Contracts\Console\Helper31]fApiGen\Contracts\Configuration\Validator37ifApiGen\Contracts\Configuration\OptionsResolver32_fApiGen\Contracts\Configuration\FileReader3'IfApiGen\Contracts\Configuration3-fApiGen\Contracts3#AfApiGen\Configuration\Theme3%EfApiGen\Configuration\Readers35fApiGen\Configuration3global3EasyMock33Behat\Mink\Selector31Behat\Mink\Element3~/Behat\Mink\Driver3}Foo3z ;Composer\Repository\Vcs3x3Composer\Repository3w+Composer\Plugin3v ;Composer\Package\Loader3u(KComposer\Package\LinkConstraint3t"?Composer\Package\Archiver3r-Composer\Package3s1Composer\Installer3p#Composer\IO3q!=Composer\EventDispatcher3o3Composer\Downloader3n.WComposer\DependencyResolver\Operation3l$CComposer\DependencyResolver3m+Composer\Config3kClassMap3y	3{0[IAsm89\Twig\CacheExtension\CacheStrategy3j"?IAsm89\Twig\CacheExtension3i#AComposer\Semver\Constraint3|#Silex\Route3O/Silex\Application3NSilex3Mglobal3K%EJakubOnderka\PhpParallelLint3L!=%Ramsey\Uuid\Console\Util3J5 Ramsey\Uuid\Provider3H7 Ramsey\Uuid\Generator3G7 Ramsey\Uuid\Converter3F/ Ramsey\Uuid\Codec3E3 Ramsey\Uuid\Builder3D# Ramsey\Uuid3I'KMtHaml\Target3C1KMtHaml\NodeVisitor3B#KMtHaml\Node3A1KMtHaml\Indentation3@'KMtHaml\Filter3?%EZend\XmlRpc\Server\Exception3=7Zend\XmlRpc\Generator3<7Zend\XmlRpc\Exception3;%EZend\XmlRpc\Client\Exception3:1Zend\View\Resolver39  -Lurker\Exception3
   ~ ydO;mN0~bL6$kV8$\,	




k
O
0
					|	Z	@	VF%lI3nV;#^5h?)	Z4~Z6wR0         "?-fZend\Mail\Storage\Message4q!=-fZend\Mail\Storage\Folder4p$C-fZend\Mail\Storage\Exception4o%E-fZend\Mail\Protocol\Exception4n#A-fZend\Mail\Header\Exception4l--fZend\Mail\Header4m3-fZend\Mail\Exception4k/-fZend\Mail\Address4j"?+Zend\Feed\Writer\Renderer4i#A+Zend\Feed\Writer\Extension4g#A+Zend\Feed\Writer\Exception4f-+Zend\Feed\Writer4h7+Zend\Feed\Reader\Http4e7+Zend\Feed\Reader\Feed4d#A+Zend\Feed\Reader\Exception4b9+Zend\Feed\Reader\Entry4a-+Zend\Feed\Reader4c%E+Zend\Feed\PubSubHubbub\Model4`)M+Zend\Feed\PubSubHubbub\Exception4_9+Zend\Feed\PubSubHubbub4^3+Zend\Feed\Exception4]/*Zend\Di\Exception4Q1*Zend\Di\Definition4O*Zend\Di4P9)Zend\Captcha\Exception4N%)Zend\Captcha4M(K(Zend\Barcode\Renderer\Exception4K7(Zend\Barcode\Renderer4L&G(Zend\Barcode\Object\Exception4I3(Zend\Barcode\Object4J9(Zend\Barcode\Exception4H#A$ZendDeveloperTools\Storage4E%E$ZendDeveloperTools\Exception4C(K$ZendDeveloperTools\EventLogging4B%E$ZendDeveloperTools\Collector4A1$ZendDeveloperTools4D$C"ZfcUser\Validator\Exception45"?"ZfcUser\Service\Exception44+"ZfcUser\Options43!="ZfcUser\Mapper\Exception41)"ZfcUser\Mapper42/"ZfcUser\Exception40)"ZfcUser\Entity4/'I"ZfcUser\Authentication\Adapter4.9#Zend\Session\Validator4-5#Zend\Session\Storage4,!=#Zend\Session\SaveHandler4+9#Zend\Session\Exception4)3#Zend\Session\Config4(%#Zend\Session4*"?Zend\Permissions\Acl\Role4'&GZend\Permissions\Acl\Resource4&'IZend\Permissions\Acl\Exception4%'IZend\Permissions\Acl\Assertion4$5Zend\Permissions\Acl4##ADoctrineModule\Persistence4  ;Flyfinder\Specification4	global4.W	League\Tactician\Plugins\NamedCommand45e	League\Tactician\Handler\MethodNameInflector4)M	League\Tactician\Handler\Locator46g	League\Tactician\Handler\CommandNameExtractor4#A	League\Tactician\Exception4-	League\Tactician4!=Stash\Interfaces\Drivers4-Stash\Interfaces4+Stash\Exception4 ;Stash\Driver\FileSystem4!=phpDocumentor\Reflection4"?Desarrolla2\Cache\Adapter4/Desarrolla2\Cache47Elastica\QueryBuilder41Elastica\Exception4%EElastica\Connection\Strategy4Elastica4"?*Elasticsearch\Serializers4!=*Elasticsearch\Namespaces4 ;*Elasticsearch\Endpoints4
"?*Elasticsearch\Connections4	/Y*Elasticsearch\ConnectionPool\Selectors4%E*Elasticsearch\ConnectionPool4(K*Elasticsearch\Common\Exceptions4+Hoa\Xyl\Element4%Hoa\Xyl\Data47Hoa\Xml\Element\Model4+Hoa\Xml\Element4Hoa\View4!Hoa\Router4 5Hoa\Realdom\IRealdom3#Hoa\Realdom37nHoa\Praspel\Exception35RHoa\Locale\Localizer3+QHoa\Console\Readline\Autocompleter3#rock\access3rock\date3%1rock\session3rock\url3rock\url3%rock\request3%rock\request31OAuth\OAuth2\Token35OAuth\OAuth2\Service31OAuth\OAuth1\Token39OAuth\OAuth1\Signature35OAuth\OAuth1\Service31OAuth\Common\Token35OAuth\Common\Storage35OAuth\Common\Service37OAuth\Common\Http\Uri3!=OAuth\Common\Http\Client37OAuth\Common\Consumer3jglobal3!mrock\image3)rock\db\common3+rock\components3+rock\components37Hrock\cache\versioning3!Hrock\cache3#rock\events3#rock\events3% rock\helpers3% rock\helpers3 urock\base3 trock\base3)Lurker\Tracker33Lurker\StateChecker3
   w nQ2|X7"{I, nT;' iO?





p
N
.
				h	%	nN5nL.	fI=-	gEraE)|X:sU1V.              )M@League\CommonMark\Block\Renderer4'I@League\CommonMark\Block\Parser4(K@League\CommonMark\Block\Element4/@League\CommonMark5 5hSlim\Interfaces\Http4+hSlim\Interfaces4hSlim4-UBaconQrCode\Renderer\Image\Decorator4#ABaconQrCode\Renderer\Image4#ABaconQrCode\Renderer\Color45BaconQrCode\Renderer47BaconQrCode\Exception4*OSimpleSoftwareIO\QrCode\DataTypes4 ;SimpleSoftwareIO\QrCode47Zizaco\Entrust\Traits4!=Zizaco\Entrust\Contracts4/Clockwork\Storage45Clockwork\DataSource4#AzLiip\RMT\Version\Persister4#AzLiip\RMT\Version\Generator4%zLiip\RMT\VCS45-Jackalope\Validation4$C-Jackalope\Transport\Logging43-Jackalope\Transport4-Jackalope41~Gettext\Generators41~Gettext\Extractors4~Gettext4)M}#ProxyManager\Signature\Exception49}#ProxyManager\Signature4$C}#ProxyManager\ProxyGenerator41}#ProxyManager\Proxy49}#ProxyManager\Inflector4'I}#ProxyManager\GeneratorStrategy4!=}#ProxyManager\FileLocator4*O}#ProxyManager\Factory\RemoteObject49}#ProxyManager\Exception4 ;}#ProxyManager\Autoloader4}global4{_global4%{_a\name\space4#A{HOvr\PHPReflection\Manually4wglobal4wMy43wHal\Component\Score45wHal\Component\Result4$CwHal\Component\OOP\Reflected4$CwHal\Component\OOP\Extractor45wHal\Component\Config43wHal\Component\Cache4$CwHal\Component\Bounds\Result45wHal\Component\Bounds4!=wHal\Component\Aggregator4%EwHal\Application\Score\Factor4!=wHal\Application\Formater4$CwHal\Application\Command\Job4wFoo47v&Universal\ClassLoader4uCodeGen43uCLIFramework\Logger4+uCLIFramework\IO49uCLIFramework\Extension4!=uCLIFramework\ConsoleInfo4%EuCLIFramework\Component\Table4%uCLIFramework49t
Gitonomy\Git\Exception49sCodacy\Coverage\Parser4+j
Laracasts\Flash4BSFSensio\Bundle\FrameworkExtraBundle\Request\ParamConverter49mSFSensio\Bundle\FrameworkExtraBundle\Configuration4'IM(SensioLabs\Security\Formatters4&GM(SensioLabs\Security\Exception4$CM(SensioLabs\Security\Crawler4)@Assetic\Filter49@Assetic\Factory\Worker4!=@Assetic\Factory\Resource49@Assetic\Factory\Loader4/@Assetic\Exception4'@Assetic\Cache4'@Assetic\Asset4@Assetic4/Y@GWebmozart\KeyValueStore\Tests\Fixtures4$C@GWebmozart\KeyValueStore\Api4=global4-=dAura\Router\Rule44c:ESymfony\Cmf\Component\Routing\NestedMatcher4/Y:ESymfony\Cmf\Component\Routing\Enhancer41]:ESymfony\Cmf\Component\Routing\Candidates4&G:ESymfony\Cmf\Component\Routing4!7pPhinx\Seed4+7pPhinx\Migration4-7pPhinx\Db\Adapter4%7pPhinx\Config415Zend\Tag\Exception4+Q5Zend\Tag\Cloud\Decorator\Exception4!=5Zend\Tag\Cloud\Decorator45Zend\Tag4+Q3`Zend\Soap\Wsdl\ComplexTypeStrategy433`Zend\Soap\Exception41]3`Zend\Soap\AutoDiscover\DiscoveryStrategy4)M2Zend\Server\Reflection\Exception472Zend\Server\Exception4#2Zend\Server4)M2Zend\Server\Reflection\Exception472Zend\Server\Exception4#2Zend\Server4 ;1WZend\ProgressBar\Upload4#A1WZend\ProgressBar\Exception4~+Q1WZend\ProgressBar\Adapter\Exception4}(K0Zend\Permissions\Rbac\Exception4|70Zend\Permissions\Rbac4{"?0Zend\Navigation\Exception4z7/Zend\Memory\Exception4y7/Zend\Memory\Container4x3.Zend\Mime\Exception4w&G-fZend\Mail\Transport\Exception4u3-fZend\Mail\Transport4v#A-fZend\Mail\Storage\Writable4t)M-fZend\Mail\Storage\Part\Exception4r
   x
 `9lT0tZ?!zfF6x_F$




z
_
=
					[	:	xN*veB[-xS1zQA-r]H8(lN+b6
                  +QSymfony\Component\VarDumper\Dumper6+QSymfony\Component\VarDumper\Cloner69Zmageekguy\atoum\writer54cZmageekguy\atoum\tests\units\factory\builder5"?Zmageekguy\atoum\test\data5(KZmageekguy\atoum\scripts\treemap5'IZmageekguy\atoum\report\writers5"?Zmageekguy\atoum\observers55Zmageekguy\atoum\mock5 ;Zmageekguy\atoum\factory5"?Zmageekguy\atoum\extension5!=Zmageekguy\atoum\asserter5 ;Zmageekguy\atoum\adapter5+Zmageekguy\atoum5	Z5GWebX\Ioc5)global5Fglobal5#Jade\Filter5#Kuria\Event5#Kuria\Error59oSystem\Database\Driver5%oSystem\Cache55bNette\Database\Table5)bNette\Database5(KAlpixel\Bundle\CMSBundle\Entity5}NetData5!w3l\Holt455ϳglobal5(K?Postcon\Tests\ClientIpExtension5"??Postcon\ClientIpExtension5(K>Postcon\Tests\ClientIpExtension5"?>Postcon\ClientIpExtension5$Cmikemix\Wiziq\Entity\Traits5"?mikemix\Wiziq\Common\Http5!=mikemix\Wiziq\Common\Api5$CInterNations\Component\Solr5$CZPhix_Project\ValidationLib45!=WPhix_Project\Injectables5"?NPhix_Project\ContractLib25(KJPhix_Project\ConsoleDisplayLib45!=3Phix_Project\Autoloader45-UGanbaroDigital\DataContainers\Caches50[GanbaroDigital\Reflection\ValueBuilders51]GanbaroDigital\Reflection\Specifications5/YGanbaroDigital\Reflection\Requirements5)MGanbaroDigital\Reflection\Checks5)MGanbaroDigital\Exceptions\Traits5"?GanbaroDigital\Exceptions5WPsr\Log59WDataSift\Stone\HttpLib5!=WDataSift\Stone\ConfigLib5#QDatasift\Os5%EStoryplayer\TestEnvironments5Prose5'IDataSift\Storyplayer\PlayerLib5#ADataSift\Storyplayer\OsLib5)MDataSift\Storyplayer\Injectables5%EDataSift\Storyplayer\HostLib5'IDataSift\Storyplayer\DeviceLib5(KDataSift\Storyplayer\CommandLib5!=DataSift\Storyplayer\Cli5(KDataSift\Storyplayer\BrowserLib5 ;AppserverIo\Routlt\Util5(KAppserverIo\Routlt\Results\Mock5#AAppserverIo\Routlt\Results5(KAppserverIo\Routlt\Interceptors5~'IAppserverIo\Routlt\Description5}1AppserverIo\Routlt5|'ISuperbalist\Money\Linter\Tests5{!=Superbalist\Money\Linter5z/Superbalist\Money5y"?iApishka\EasyExtend\Helper5w1iApishka\EasyExtend5xgglobal5v"?JsonSchema\Uri\Retrievers5s9JsonSchema\Constraints5r)Deployer\Stage5p!=Deployer\Server\Password5n+Deployer\Server5o+Deployer\Helper5q/Deployer\Executor5m3Deployer\Collection5l ;EkAndreas\DockerBedrock5k7Noodlehaus\FileParser5j!Noodlehaus5i)App\Validators5[-App\Repositories5Zsglobal5Y9Rougin\Describe\Driver5X!Auryn\Test5WAuryn5VColors5U#ARougin\Combustor\Validator5T#ARougin\Combustor\Generator5S'FluidXml\Core5R+fproject\common5Qglobal5P5fproject\amf\session5O/fproject\amf\auth5N-fproject\amf\acl5M*O0HipsterJazzbo\Landlord\Exceptions5K90HipsterJazzbo\Landlord5L+Simplified\Core5J3Simplified\Database5I!=Collective\Html\Eloquent5H+Collective\Html5G#AYajra\Datatables\Contracts5F)}Blend\Security5E"?lRougin\Slytherin\Template5D5lRougin\Slytherin\IoC5C%ElRougin\Slytherin\Dispatching5B9lRougin\Slytherin\Debug5A!=Arcanedev\Support\Traits5@#A^Orchestra\Testbench\Traits5&G^Orchestra\Testbench\Contracts59@League\CommonMark\Util5*O@League\CommonMark\Inline\Renderer5+Q@League\CommonMark\Inline\Processor5(K@League\CommonMark\Inline\Parser5
   k  \2	Z*Y$zImQ5





i
L
-
					f	>	!	 tK)oT1uT:eH.HY|qP;*pD$      7PDepend\Util\Coverage6-!=PDepend\Source\Tokenizer6+9PDepend\Source\Builder6*+QPDepend\Source\AST\ASTArtifactList6("?PDepend\Source\ASTVisitor6)1PDepend\Source\AST6')PDepend\Report6&2_PDepend\Metrics\Analyzer\CodeRankAnalyzer6$+PDepend\Metrics6#'PDepend\Input6"PDepend6%#Just\A\Test68 ;ClassDependencyAnalyzer62
C66
B65
A64	60=uSymfony\Component\DependencyInjection\Tests\Compiler6!;qSymfony\Component\DependencyInjection\ParameterBag6 BSymfony\Component\DependencyInjection\LazyProxy\PhpDumper6FSymfony\Component\DependencyInjection\LazyProxy\Instantiator68kSymfony\Component\DependencyInjection\Extension68kSymfony\Component\DependencyInjection\Exception65eSymfony\Component\DependencyInjection\Dumper67iSymfony\Component\DependencyInjection\Compiler6.WSymfony\Component\DependencyInjection6)MSymfony\Component\Yaml\Exception6rglobal6)M]spec\Prophecy\Doubler\ClassPatch6/]Prophecy\Prophecy6-]Prophecy\Promise63]Prophecy\Prediction6$C]Prophecy\Exception\Prophecy6&G]Prophecy\Exception\Prediction6#A]Prophecy\Exception\Doubler61]Prophecy\Exception6#A]Prophecy\Doubler\Generator6$C]Prophecy\Doubler\ClassPatch6-]Prophecy\Doubler6 ;]Prophecy\Argument\Token6global6global6
8global6	9mSymfony\Component\ExpressionLanguage\ParserCache6-USymfony\Component\ExpressionLanguage6#AComponentInstaller\Process6"?Zend\Stdlib\StringWrapper6Q/Zend\Stdlib\Guard6R7Zend\Stdlib\Exception6P9Zend\Stdlib\ArrayUtils6O#Zend\Stdlib6N!=NZend\ServiceManager\Test6&GNZend\ServiceManager\Exception63NZend\ServiceManager6!=JZend\ServiceManager\Test6M(KJZend\ServiceManager\Initializer6L$CJZend\ServiceManager\Factory6K&GJZend\ServiceManager\Exception6J3JZend\ServiceManager6I"?Zend\Serializer\Exception6 ;Zend\Serializer\Adapter63Zend\Math\Exception6 'IZend\Math\BigInteger\Exception5%EZend\Math\BigInteger\Adapter5#AZend\Json\Server\Exception53Zend\Json\Exception5$CNZend\I18n\Translator\Loader55NZend\I18n\Translator53NZend\I18n\Exception57	Zend\Filter\Exception53	Zend\Filter\Encrypt55	Zend\Filter\Compress5#	Zend\Filter51Zend\Config\Writer51Zend\Config\Reader57Zend\Config\Processor57Zend\Config\Exception5"?JZend\Cache\Storage\Plugin51JZend\Cache\Storage51JZend\Cache\Pattern55JZend\Cache\Exception5-USymfony\Component\Translation\Loader50[Symfony\Component\Translation\Extractor50[Symfony\Component\Translation\Exception5-USymfony\Component\Translation\Dumper50[Symfony\Component\Translation\Catalogue5&GSymfony\Component\Translation5.WSymfony\Component\Config\Tests\Loader6A*OSymfony\Component\Config\Resource6@(KSymfony\Component\Config\Loader6?4cSymfony\Component\Config\Definition\Builder6=,SSymfony\Component\Config\Definition6>!=Symfony\Component\Config6<(KSymfony\Component\Process\Pipes5,SSymfony\Component\Process\Exception5+Q.Symfony\Component\Finder\Exception5/YSymfony\Component\Filesystem\Exception50[Symfony\Component\EventDispatcher\Debug5*OSymfony\Component\EventDispatcher5(K\Symfony\Component\Console\Style5)M\Symfony\Component\Console\Output5(K\Symfony\Component\Console\Input5)M\Symfony\Component\Console\Helper5,S\Symfony\Component\Console\Formatter5,S\Symfony\Component\Console\Exception5-U\Symfony\Component\Console\Descriptor51PDepend\Util\Cache6,
 m  qaF-nA$eCjQ5 jJ-






{
]
I
				n	H	c> zj9|E%k3e2{Fk7\D*          "?Illuminate\Contracts\Auth61Illuminate\Console6-Illuminate\Cache6)Illuminate\Bus6"?Illuminate\Auth\Passwords69Illuminate\Auth\Access6+Illuminate\Auth6!=Symfony\Bridge\Twig\Form61]
Symfony\Component\Routing\Matcher\Dumper6*O
Symfony\Component\Routing\Matcher63a
Symfony\Component\Routing\Generator\Dumper6,S
Symfony\Component\Routing\Generator6,S
Symfony\Component\Routing\Exception6"?
Symfony\Component\Routing63a
FSymfony\Component\PropertyAccess\Exception6)M
FSymfony\Component\PropertyAccess64c	Symfony\Component\OptionsResolver\Exception6*O	Symfony\Component\OptionsResolver6.W	;Symfony\Component\Intl\ResourceBundle6)M	;Symfony\Component\Intl\Exception62_	;Symfony\Component\Intl\Data\Bundle\Writer62_	;Symfony\Component\Intl\Data\Bundle\Reader64c	;Symfony\Component\Intl\Data\Bundle\Compiler6.WSSymfony\Component\Form\Tests\Fixtures6$CSSymfony\Component\Form\Test6DSSymfony\Component\Form\Extension\Validator\ViolationMapper67iSSymfony\Component\Form\Extension\DataCollector6)MSSymfony\Component\Form\Exception61]SSymfony\Component\Form\ChoiceList\Loader62_SSymfony\Component\Form\ChoiceList\Factory6*OSSymfony\Component\Form\ChoiceList69SSymfony\Component\Form66gSymfony\Component\CssSelector\XPath\Extension6,SSymfony\Component\CssSelector\XPath65eSymfony\Component\CssSelector\Parser\Handler6-USymfony\Component\CssSelector\Parser6+QSymfony\Component\CssSelector\Node60[Symfony\Component\CssSelector\Exception6 global6{! _generated65 ToastPack\_generated6- Shire\_generated6+ Jazz\_generated6 ; Jazz\Pianist\_generated63 EwokPack\_generated6 ; Codeception\Util\Shared6$C Codeception\TestCase\Shared6(K Codeception\TestCase\Interfaces6~&G Codeception\Subscriber\Shared63 Codeception\PHPUnit6}#A Codeception\Lib\Interfaces6|)M Codeception\Lib\Generator\Shared6)M Codeception\Lib\Connector\Shared6%E Codeception\Lib\Actor\Shared6#A Codeception\Command\Shared65e`DI\Test\UnitTest\Definition\Resolver\Fixture6z'I`DI\Test\IntegrationTest\Issues6y)M`DI\Test\IntegrationTest\Fixtures6x.W`DI\Test\IntegrationTest\ErrorMessages6w!`DI\Factory6u5`DI\Definition\Source6t9`DI\Definition\Resolver6s5`DI\Definition\Helper6r5`DI\Definition\Dumper6q'`DI\Definition6p`DI6v
global6o"?KZend\Console\RouteMatcher6n3KZend\Console\Prompt6m9KZend\Console\Exception6l5KZend\Console\Charset6j5KZend\Console\Adapter6i%KZend\Console6k ;7Zend\Log\Writer\FirePhp6g"?7Zend\Log\Writer\ChromePhp6f+7Zend\Log\Writer6h17Zend\Log\Processor6e17Zend\Log\Formatter6c+7Zend\Log\Filter6b17Zend\Log\Exception6a7Zend\Log6d#AvZend\Http\Header\Exception6_-vZend\Http\Header6`3vZend\Http\Exception6^#AvZend\Http\Client\Exception6]+QvZend\Http\Client\Adapter\Exception6\!=vZend\Http\Client\Adapter6[%EqZend\Crypt\Symmetric\Padding6Y'IqZend\Crypt\Symmetric\Exception6X5qZend\Crypt\Symmetric6Z+QqZend\Crypt\PublicKey\Rsa\Exception6W&GqZend\Crypt\Password\Exception6U3qZend\Crypt\Password6V,SqZend\Crypt\Key\Derivation\Exception6T5qZend\Crypt\Exception6S"?Zend\Cache\Storage\Plugin6H1Zend\Cache\Storage6G1Zend\Cache\Pattern6F5Zend\Cache\Exception6E'IMonolog\Handler\FingersCrossed6C+Monolog\Handler6D/Monolog\Formatter6Bsystem63-org\pdepend\code6:global6.foo61baz6/Trait6; ;Report\Dependencies\Xml67   Project\Component69
 ]  e@[2	wN'jG*eB




o
J
)
					j	Q	.	r:Z4q=U[o<zIb  Q|Symfony\Bundle\SecurityBundle\DependencyInjection\Security\UserProvider7L|Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory72_|Symfony\Bundle\FrameworkBundle\Templating7.W|Symfony\Bundle\FrameworkBundle\Kernel73a|Symfony\Bundle\FrameworkBundle\CacheWarmer7
!=|Symfony\Bridge\Twig\Form7	.W|Symfony\Bridge\Doctrine\Security\User70[|Symfony\Bridge\Doctrine\Form\ChoiceList7 ;|Symfony\Bridge\Doctrine7|Foo71|ClassesWithParents7|ClassMap7	|7-USymfony\Component\Security\Core\User7-USymfony\Component\Security\Core\Role72_Symfony\Component\Security\Core\Exception70[Symfony\Component\Security\Core\Encoder7<sSymfony\Component\Security\Core\Authorization\Voter76gSymfony\Component\Security\Core\Authorization7 FSymfony\Component\Security\Core\Authentication\Token\Storage6=uSymfony\Component\Security\Core\Authentication\Token6BSymfony\Component\Security\Core\Authentication\RememberMe6@{Symfony\Component\Security\Core\Authentication\Provider67iSymfony\Component\Security\Core\Authentication6.WSymfony\Component\HttpKernel\Profiler6)MSymfony\Component\HttpKernel\Log6/YSymfony\Component\HttpKernel\HttpCache6.WSymfony\Component\HttpKernel\Fragment6/YSymfony\Component\HttpKernel\Exception63aSymfony\Component\HttpKernel\DataCollector60[Symfony\Component\HttpKernel\Controller61]Symfony\Component\HttpKernel\CacheWarmer62_Symfony\Component\HttpKernel\CacheClearer6,SSymfony\Component\HttpKernel\Bundle6%ESymfony\Component\HttpKernel69mbSymfony\Component\HttpFoundation\Session\Storage67ibSymfony\Component\HttpFoundation\Session\Flash6;qbSymfony\Component\HttpFoundation\Session\Attribute61]bSymfony\Component\HttpFoundation\Session67ibSymfony\Component\HttpFoundation\File\MimeType6)MbSymfony\Component\HttpFoundation6/YSymfony\Component\Debug\Tests\Fixtures62_Symfony\Component\Debug\FatalErrorHandler6lCron6 ;Illuminate\View\Engines6"?Illuminate\View\Compilers6+Illuminate\View67Illuminate\Validation69Illuminate\Translation6"?Illuminate\Support\Traits61Illuminate\Session6$CIlluminate\Routing\Matching61Illuminate\Routing6 ;Illuminate\Queue\Failed6$CIlluminate\Queue\Connectors6-Illuminate\Queue67Illuminate\Pagination6+Illuminate\Http6)MIlluminate\Foundation\Validation6/YIlluminate\Foundation\Testing\Concerns6&GIlluminate\Foundation\Testing6"?Illuminate\Foundation\Bus6*OIlluminate\Foundation\Auth\Access6#AIlluminate\Foundation\Auth6'IIlluminate\Database\Migrations6%EIlluminate\Database\Eloquent6'IIlluminate\Database\Connectors63Illuminate\Database6"?Illuminate\Contracts\View6(KIlluminate\Contracts\Validation6%EIlluminate\Contracts\Support6%EIlluminate\Contracts\Routing6#AIlluminate\Contracts\Redis6#AIlluminate\Contracts\Queue6&GIlluminate\Contracts\Pipeline6(KIlluminate\Contracts\Pagination6"?Illuminate\Contracts\Mail6%EIlluminate\Contracts\Logging6"?Illuminate\Contracts\Http6%EIlluminate\Contracts\Hashing6(KIlluminate\Contracts\Foundation6(KIlluminate\Contracts\Filesystem6$CIlluminate\Contracts\Events6(KIlluminate\Contracts\Encryption6#AIlluminate\Contracts\Debug6$CIlluminate\Contracts\Cookie6'IIlluminate\Contracts\Container6%EIlluminate\Contracts\Console6$CIlluminate\Contracts\Config6#AIlluminate\Contracts\Cache6!=Illuminate\Contracts\Bus6*OIlluminate\Contracts\Broadcasting6   	I ;|Symfony\Component\Asset7
   P  U oBo>JJ


N
			x	J	i6]8	u9tAzKZ'N!rO"                            4|Symfony\Component\Routing\Generator\Dumper7b,S|Symfony\Component\Routing\Generator7a,S|Symfony\Component\Routing\Exception7`"?|Symfony\Component\Routing7e'I|Symfony\Component\PropertyInfo7_3a|Symfony\Component\PropertyAccess\Exception7])M|Symfony\Component\PropertyAccess7^(K|Symfony\Component\Process\Pipes7\,S|Symfony\Component\Process\Exception7[4c|Symfony\Component\OptionsResolver\Exception7Y*O|Symfony\Component\OptionsResolver7Z9|Symfony\Component\Ldap7X.W|Symfony\Component\Intl\ResourceBundle7W)M|Symfony\Component\Intl\Exception7V2_|Symfony\Component\Intl\Data\Bundle\Writer7U2_|Symfony\Component\Intl\Data\Bundle\Reader7T4c|Symfony\Component\Intl\Data\Bundle\Compiler7S.W|Symfony\Component\HttpKernel\Profiler7R)M|Symfony\Component\HttpKernel\Log7Q/Y|Symfony\Component\HttpKernel\HttpCache7O.W|Symfony\Component\HttpKernel\Fragment7N/Y|Symfony\Component\HttpKernel\Exception7M3a|Symfony\Component\HttpKernel\DataCollector7L0[|Symfony\Component\HttpKernel\Controller7K1]|Symfony\Component\HttpKernel\CacheWarmer7J2_|Symfony\Component\HttpKernel\CacheClearer7I,S|Symfony\Component\HttpKernel\Bundle7H%E|Symfony\Component\HttpKernel7P9m|Symfony\Component\HttpFoundation\Session\Storage7G7i|Symfony\Component\HttpFoundation\Session\Flash7E;q|Symfony\Component\HttpFoundation\Session\Attribute7D1]|Symfony\Component\HttpFoundation\Session7F7i|Symfony\Component\HttpFoundation\File\MimeType7B)M|Symfony\Component\HttpFoundation7C.W|Symfony\Component\Form\Tests\Fixtures7A$C|Symfony\Component\Form\Test7@D|Symfony\Component\Form\Extension\Validator\ViolationMapper7?7i|Symfony\Component\Form\Extension\DataCollector7>)M|Symfony\Component\Form\Exception7=1]|Symfony\Component\Form\ChoiceList\Loader7<2_|Symfony\Component\Form\ChoiceList\Factory7;*O|Symfony\Component\Form\ChoiceList7:9|Symfony\Component\Form79+Q|Symfony\Component\Finder\Exception78/Y|Symfony\Component\Filesystem\Exception779m|Symfony\Component\ExpressionLanguage\ParserCache76-U|Symfony\Component\ExpressionLanguage750[|Symfony\Component\EventDispatcher\Debug73*O|Symfony\Component\EventDispatcher74=u|Symfony\Component\DependencyInjection\Tests\Compiler72;q|Symfony\Component\DependencyInjection\ParameterBag71B|Symfony\Component\DependencyInjection\LazyProxy\PhpDumper70F|Symfony\Component\DependencyInjection\LazyProxy\Instantiator7/8k|Symfony\Component\DependencyInjection\Extension7.8k|Symfony\Component\DependencyInjection\Exception7-5e|Symfony\Component\DependencyInjection\Dumper7,7i|Symfony\Component\DependencyInjection\Compiler7*.W|Symfony\Component\DependencyInjection7+/Y|Symfony\Component\Debug\Tests\Fixtures7)2_|Symfony\Component\Debug\FatalErrorHandler7(6g|Symfony\Component\CssSelector\XPath\Extension7&,S|Symfony\Component\CssSelector\XPath7'5e|Symfony\Component\CssSelector\Parser\Handler7$-U|Symfony\Component\CssSelector\Parser7%+Q|Symfony\Component\CssSelector\Node7#0[|Symfony\Component\CssSelector\Exception7"(K|Symfony\Component\Console\Style7!)M|Symfony\Component\Console\Output7 (K|Symfony\Component\Console\Input7)M|Symfony\Component\Console\Helper7,S|Symfony\Component\Console\Formatter7,S|Symfony\Component\Console\Exception7-U|Symfony\Component\Console\Descriptor7.W|Symfony\Component\Config\Tests\Loader7*O|Symfony\Component\Config\Resource7(K|Symfony\Component\Config\Loader74c|Symfony\Component\Config\Definition\Builder7,S|Symfony\Component\Config\Definition7!=|Symfony\Component\Config70[|Symfony\Component\Asset\VersionStrategy7*O|Symfony\Component\Asset\Exception7
   U k*b+\.m=q?


{
U
'				^	*qDa0T!Jj@0#n^7wW8                                                                                                                                                                                                                                                                                                                               'ILaravel\Lumen\Testing\Concerns77Laravel\Lumen\Testing77Laravel\Lumen\Routing79Laravel\Lumen\Concerns71Laravel\Lumen\Auth7%UDiff\Patcher7#UDiff\Differ7#UDiff\DiffOp7'UDiff\Comparer71UDiff\ArrayComparer7UDiff7"?vLeague\OAuth2\Client\Tool7&GvLeague\OAuth2\Client\Provider73global7)3Aws\Test\Integ73Aws\Test7'3Aws\Signature73Aws\S37%3Aws\DynamoDb7+3Aws\Credentials7)3Aws\Api\Parser733Aws\Api\ErrorParser73Aws7|global7)M|Symfony\Component\Yaml\Exception7)M|Symfony\Component\VarDumper\Test7+Q|Symfony\Component\VarDumper\Dumper7+Q|Symfony\Component\VarDumper\Cloner7.W|Symfony\Component\Validator\Violation7.W|Symfony\Component\Validator\Validator79m|Symfony\Component\Validator\Tests\Mapping\Loader73a|Symfony\Component\Validator\Tests\Fixtures73a|Symfony\Component\Validator\Mapping\Loader74c|Symfony\Component\Validator\Mapping\Factory72_|Symfony\Component\Validator\Mapping\Cache7,S|Symfony\Component\Validator\Mapping7.W|Symfony\Component\Validator\Exception7,S|Symfony\Component\Validator\Context7$C|Symfony\Component\Validator7-U|Symfony\Component\Translation\Loader70[|Symfony\Component\Translation\Extractor70[|Symfony\Component\Translation\Exception7-U|Symfony\Component\Translation\Dumper70[|Symfony\Component\Translation\Catalogue7&G|Symfony\Component\Translation7+Q|Symfony\Component\Templating\Tests7,S|Symfony\Component\Templating\Loader7,S|Symfony\Component\Templating\Helper7%E|Symfony\Component\Templating74c|Symfony\Component\Serializer\Tests\Fixtures70[|Symfony\Component\Serializer\Normalizer73a|Symfony\Component\Serializer\NameConverter74c|Symfony\Component\Serializer\Mapping\Loader75e|Symfony\Component\Serializer\Mapping\Factory7-U|Symfony\Component\Serializer\Mapping7/Y|Symfony\Component\Serializer\Exception7-U|Symfony\Component\Serializer\Encoder7%E|Symfony\Component\Serializer7.W|Symfony\Component\Security\Http\Tests7~0[|Symfony\Component\Security\Http\Session7}3a|Symfony\Component\Security\Http\RememberMe7|/Y|Symfony\Component\Security\Http\Logout7{1]|Symfony\Component\Security\Http\Firewall7z3a|Symfony\Component\Security\Http\EntryPoint7y6g|Symfony\Component\Security\Http\Authorization7x7i|Symfony\Component\Security\Http\Authentication7w(K|Symfony\Component\Security\Http7v/Y|Symfony\Component\Security\Guard\Token7u)M|Symfony\Component\Security\Guard7t5e|Symfony\Component\Security\Csrf\TokenStorage7s7i|Symfony\Component\Security\Csrf\TokenGenerator7r(K|Symfony\Component\Security\Csrf7q-U|Symfony\Component\Security\Core\User7p-U|Symfony\Component\Security\Core\Role7o2_|Symfony\Component\Security\Core\Exception7n0[|Symfony\Component\Security\Core\Encoder7m<s|Symfony\Component\Security\Core\Authorization\Voter7l6g|Symfony\Component\Security\Core\Authorization7kF|Symfony\Component\Security\Core\Authentication\Token\Storage7i=u|Symfony\Component\Security\Core\Authentication\Token7jB|Symfony\Component\Security\Core\Authentication\RememberMe7h@{|Symfony\Component\Security\Core\Authentication\Provider7g7i|Symfony\Component\Security\Core\Authentication7f1]|Symfony\Component\Routing\Matcher\Dumper7c*O|Symfony\Component\Routing\Matcher7d   o rT6 pZ@#x`H,uZL:-q_>(






k
V
?
*
								~	m	Y	L	7	#	nW@)vbF7( pZL>0$	~cR8(yaH6{`G$	ukaWMC9/%	|o           
. TBar
- TFoo, TA+ TB* TC) TZ( TD' CTrait& BTrait% ATrait$ 3ContainerAwareTrait# 3ContainerAwareTrait" T! T  T T T T T T %CCrawlerTrait +CAssertionsTrait -CApplicationTrait /BValidatesRequests )BDispatchesJobs 5FDatabaseTransactions 1FDatabaseMigrations  A4ValidatesWhenResolvedTrait -)SerializesModels 1)InteractsWithQueue ;'UrlWindowPresenterTrait3 g'BootstrapThreeNextPreviousButtonRendererTrait '%ResponseTrait #SoftDeletes -ConfirmableTrait ?AppNamespaceDetectorTrait
 Queueable	 -
CanResetPassword +Authenticatable %CrawlerTrait +AssertionsTrait -ApplicationTrait /ValidatesRequests )DispatchesJobs 5DatabaseTransactions 1DatabaseMigrations  PHPMock 1(VarDumperTestTrait~ Macroable} 3CapsuleManagerTrait| Reader{ Readerz STFooBar
y STBar
x LTFoow KCTraitv KBTraitu KATraitt 9ClassLoaderTest_TraitAs 
lTFooBar
r 
lTBar
q 
eTFoop 
dCTraito 
dBTraitn 
dATraitm )	MacroableTraitl 3	CapsuleManagerTraitk 'ResponseTraitj +AssertionsTraiti -ApplicationTraith /SoftDeletingTraitg -ConfirmableTraitf UserTraite +RemindableTraitd USpecifyc RSpecifyb 53StreamDecoratorTraita %3MessageTrait` )TestGuyActions_ )TestGuyActions^ )TestGuyActions] 'WebGuyActions\ +CoverGuyActions[ 'CliGuyActionsZ )SkipGuyActionsY 1ScenarioGuyActionsX +PowerGuyActionsW +OtherGuyActionsV +OrderGuyActionsU /MessageGuyActionsT /MathTesterActionsS )DumbGuyActionsR )CodeGuyActionsQ ?AbsolutelyOtherGuyActionsP !NamespacesO AssertsN 'ScenarioPrintM %DependenciesL 'ConfigurationK ActorJ %StaticEventsI ClassnameH =PhpSuperGlobalsConverterG FriendF CommentE StyleD !FileSystemC ConfigB )TestGuyActionsA )TestGuyActions@ )TestGuyActions? 'WebGuyActions> +CoverGuyActions= 'CliGuyActions< )SkipGuyActions; 1ScenarioGuyActions: +PowerGuyActions9 +OtherGuyActions8 +OrderGuyActions7 /MessageGuyActions6 /MathTesterActions5 )DumbGuyActions4 )CodeGuyActions3 ?AbsolutelyOtherGuyActions2 !Namespaces1 Asserts0 'ScenarioPrint/ %Dependencies. 'Configuration- Actor, %StaticEvents+ Classname* =PhpSuperGlobalsConverter) Friend( Comment' Style& !FileSystem% Config$ 3AnotherExampleTrait# %ExampleTrait" 3AnotherExampleTrait! %ExampleTrait  ?wMockeryPHPUnitIntegration ?aMockeryPHPUnitIntegration /7AdapterAwareTrait /AdapterAwareTrait 5	TranslatorAwareTrait -LoggerAwareTrait -LoggerAwareTrait +LabelAwareTrait 7FormFactoryAwareTrait =ServiceLocatorAwareTrait! CMutableCreationOptionsTrait 7nInputFilterAwareTrait +hLabelAwareTrait 7hFormFactoryAwareTrait 1zHydratorAwareTrait )yNullGuardTrait +yEmptyGuardTrait" EyArrayOrTraversableGuardTrait )yAllGuardsTrait =rServiceLocatorAwareTrait! CrMutableCreationOptionsTrait 5]TranslatorAwareTrait
 )PProvidesEvents	 9PListenerAggregateTrait 9PEventManagerAwareTrait #LoggerTrait -LoggerAwareTrait T 3 ContainerAwareTrait % PHPUnitTrait 'gAbstractTrait -1SimpleTraitAsset   | r]@iW>$sW?!xV6lM7





o
V
5
						m	T	3		m[F0fM;!}aF7(_="whYNC8-"xk^N?0! }rg\OB2|                    ^ #"MailerTrait] !"EventTrait\ )"ContainerTrait[ '"AbstractTraitZ '"ResponseTraitY #"SoftDeletesX 3"ContainerAwareTraitW 3"ContainerAwareTraitV "TFooBar
U "TBar
T "TFooS "TAR "TBQ "TCP "TZO "TDN "CTraitM "BTraitL "ATraitK "TFooBar
J "TBar
I "TFooH "TAG "TBF "TCE "TZD "TDC "CTraitB "BTraitA "ATrait@ "vTFooBar
? "vTBar
> "wTFoo= "eTFooBar
< "eTBar
; "fTFoo: 9"ClassLoaderTest_TraitA9 1"VarDumperTestTrait8 3!ContainerAwareTrait7 !sTFooBar
6 !sTBar
5 "TFoo4 !TA3 !TB2 !TC1 !TZ0 !TD/ !qCTrait. !qBTrait- !qATrait, '!;AbstractTrait+ 1!!HydratorAwareTrait* )!'NullGuardTrait) +!'EmptyGuardTrait"( E!'ArrayOrTraversableGuardTrait' )!'AllGuardsTrait& 1!HydratorAwareTrait% ? MockeryPHPUnitIntegration$ ? MockeryPHPUnitIntegration# 1 iVarDumperTestTrait" 3ContainerAwareTrait! TFooBar
  TBar
 TFoo TA TB TC TZ TD CTrait BTrait ATrait 1VarDumperTestTrait 3]ContainerAwareTrait TFooBar
 TBar
 TFoo rTA rTB rTC rTZ rTD CTrait BTrait
 ATrait	 '9SecurityTrait /8UrlGeneratorTrait 8TwigTrait -8TranslationTrait -8SwiftmailerTrait '8SecurityTrait %8MonologTrait 8FormTrait 'SecurityTrait  /UrlGeneratorTrait TwigTrait~ -TranslationTrait} -SwiftmailerTrait| 'SecurityTrait{ %MonologTraitz FormTraity 'SecurityTraitx /UrlGeneratorTraitw TwigTraitv -TranslationTraitu -SwiftmailerTraitt 'SecurityTraits %MonologTraitr FormTraitq %ExampleTraitp =ServiceLocatorAwareTraito -LoggerAwareTraitn 7InputFilterAwareTraitm 5TranslatorAwareTraitl 7FormFactoryAwareTraitk )XProvidesEventsj 9XListenerAggregateTraiti 9XEventManagerAwareTraith /'AdapterAwareTraitg =ServiceLocatorAwareTraitf -JLoggerAwareTraite 7/InputFilterAwareTraitd 5*TranslatorAwareTraitc 7FormFactoryAwareTraitb )ProvidesEventsa 9ListenerAggregateTrait` 9EventManagerAwareTrait_ /AdapterAwareTrait^ 'AbstractTrait] 9InjectContentTypeTrait\ %RequestTrait[ %MessageTraitZ %MessageTraitY -HttpAdapterTraitX - ResolveTestTraitW + RejectTestTraitV ; PromiseSettledTestTraitU = PromiseRejectedTestTraitT ; PromisePendingTestTraitS ? PromiseFulfilledTestTraitR + NotifyTestTraitQ ' FullTestTraitP + CancelTestTraitO 5StreamDecoratorTraitN -MagicFutureTraitM +BaseFutureTraitL %HasDataTraitK 7ListenerAttacherTraitJ +HasEmitterTraitI 3EAnotherExampleTraitH %EExampleTraitG ?MockeryPHPUnitIntegrationF )MacroableTraitE 3CapsuleManagerTraitD 'ResponseTraitC +AssertionsTraitB -ApplicationTraitA /SoftDeletingTrait@ -ConfirmableTrait? UserTrait> +RemindableTrait= )PluggableTrait< -ConfigAwareTrait; 5StreamedWritingTrait: 'StreamedTrait9 5StreamedReadingTrait8 /StreamedCopyTrait"7 ENotSupportingVisibilityTrait6 5StreamDecoratorTrait5 %HasDataTrait4 7ListenerAttacherTrait3 +HasEmitterTrait2 %Translatable1 )UMacroableTrait0 3UCapsuleManagerTrait/ TFooBar   V uW?(}aF+dC#q\=! xjT?)





j
R
:

							p	]	O	?	0	vT=&xbJ4zcJ8$iL6 gN2}jX@.y`D+viV       !%Filesystem
 %Core  %Binaries -$ConfirmableTrait~ #$StepsRunner} !$HasLocator| !$HasHistory
{ $Flowz !$Filesystem
y $Corex $Binariesw !$QueryTraitv -$CommonCacheTraitu 3$ActiveRelationTraitt -$ActiveQueryTraits -$RateLimiterTraitr -$RateLimiterTraitq #$ErrorsTraitp #$ErrorsTraito +$ComponentsTraitn )$ArrayableTraitm %$UrlLinkTraitl )$StrikeoutTraitk $LinkTraitj +$EmphStrongTraiti $CodeTraith !$TableTraitg $RuleTraitf !$QuoteTraite $ListTraitd $HtmlTraitc '$HeadlineTraitb +$FencedCodeTraita $CodeTrait` !$QueryTrait_ -$CommonCacheTrait^ 3$ActiveRelationTrait] -$ActiveQueryTrait\ +$ComponentsTrait[ )$ArrayableTraitZ +$VersioningTraitY #$CommonTraitX !$CacheTraitW #$EventsTraitV )$PluggableTraitU -$ConfigAwareTraitT 5$StreamedWritingTraitS '$StreamedTraitR 5$StreamedReadingTraitQ /$StreamedCopyTrait"P E$NotSupportingVisibilityTraitO +$CommonTestTraitN +$CommonTestTraitM #$ObjectTraitL $ClassNameK #$ObjectTraitJ $ClassNameI #$ObjectTraitH $ClassNameG -$SerializableImplF )$CodeGuyActionsE %$WorkingTraitD /$TraitedClassTraitC )$CodeGuyActionsB %$WorkingTraitA /$TraitedClassTrait@ )$~TestGuyActions? )$}TestGuyActions> )$|TestGuyActions= '${WebGuyActions< +${CoverGuyActions; '${CliGuyActions: )${SkipGuyActions9 1${ScenarioGuyActions8 +${PowerGuyActions7 +${OtherGuyActions6 +${OrderGuyActions5 /${MessageGuyActions4 /${MathTesterActions3 )${DumbGuyActions2 )${CodeGuyActions1 ?${AbsolutelyOtherGuyActions0 !$zNamespaces/ $zAsserts. '$yScenarioPrint- %$yDependencies, '$yConfiguration+ $yActor* %$xStaticEvents) $wClassname( =$vPhpSuperGlobalsConverter' $uFriend& $uComment% $tStyle$ !$tFileSystem# $tConfig" )$oTestGuyActions! )$nTestGuyActions  )$mTestGuyActions '$lWebGuyActions +$lCoverGuyActions '$lCliGuyActions )$lSkipGuyActions 1$lScenarioGuyActions +$lPowerGuyActions +$lOtherGuyActions +$lOrderGuyActions /$lMessageGuyActions /$lMathTesterActions )$lDumbGuyActions )$lCodeGuyActions ?$lAbsolutelyOtherGuyActions !$kNamespaces $kAsserts '$jScenarioPrint %$jDependencies '$jConfiguration $jActor %$iStaticEvents $hClassname
 =$gPhpSuperGlobalsConverter	 $fFriend $fComment $eStyle !$eFileSystem $eConfig $`Macroable 3$`CapsuleManagerTrait 9$^InjectContentTypeTrait %$_RequestTrait  %$_MessageTrait !$JVisibility#~ G$JStartPositionEndPositionMagic} -$JStartLineEndLine| /$JIsDocumentedMagic{ -$=ResolveTestTraitz +$=RejectTestTraity ;$=PromiseSettledTestTraitx =$=PromiseRejectedTestTraitw ;$=PromisePendingTestTraitv ?$=PromiseFulfilledTestTraitu +$=NotifyTestTraitt '$=FullTestTraits +$=CancelTestTraitr /$*EventEmitterTraitq -#SerializableImpl	p #Fooo 1#VarDumperTestTraitn 1#VarDumperTestTraitm 3#ContainerAwareTraitl )#MinkDictionary0k a#PHPUnit_Extensions_Database_TestCase_Trait0j a#PHPUnit_Extensions_Database_TestCase_Traiti #Macroableh 3#CapsuleManagerTraitg )#ValidatorTraitf +#RepositoryTraite 7#NamespacedEntityTraitd ##MailerTraitc !#EventTraitb )#ContainerTraita )"ValidatorTrait` +"RepositoryTrait_ 7"NamespacedEntityTrait   E {dK5v\G0aJ,cK4kS<!





\
;
$								}	r	g	\	Q	D	7	'	l]N?4)rYG%gP9!	vY>(mT/~\C$pX@%u_E          /)eWithoutMiddleware ')eWithoutEvents 1)eInteractsWithPages 5)eDatabaseTransactions 1)eDatabaseMigrations %)eCrawlerTrait +)eAssertionsTrait -)eApplicationTrait ))dDispatchesJobs 1)dDispatchesCommands +)cThrottlesLogins +)cResetsPasswords ))cRegistersUsers ))cRedirectsUsers 1)cAuthenticatesUsers$ I)cAuthenticatesAndRegistersUsers 1)bAuthorizesRequests %)bAuthorizable
 #)SSoftDeletes	 9)QDetectsLostConnections -)aConfirmableTrait ?)aAppNamespaceDetectorTrait )`Queueable -)6CanResetPassword +)_Authenticatable 5)^HandlesAuthorization  A)ValidatesWhenResolvedTrait )+Macroable  3)+CapsuleManagerTrait" E)*RouteDependencyResolverTrait~ -))SerializesModels} 1))InteractsWithQueue| ;)(UrlWindowPresenterTrait3{ g)(BootstrapThreeNextPreviousButtonRendererTraitz ')'ResponseTraity /)&ValidatesRequestsx /)%WithoutMiddlewarew ')%WithoutEventsv 1)%InteractsWithPagesu 5)%DatabaseTransactionst 1)%DatabaseMigrationss %)%CrawlerTraitr +)%AssertionsTraitq -)%ApplicationTraitp ))$DispatchesJobso 1)$DispatchesCommandsn +)#ThrottlesLoginsm +)#ResetsPasswordsl ))#RegistersUsersk ))#RedirectsUsersj 1)#AuthenticatesUsers$i I)#AuthenticatesAndRegistersUsersh 1)"AuthorizesRequestsg %)"Authorizablef #)SoftDeletese 9)DetectsLostConnectionsd -)!ConfirmableTraitc ?)!AppNamespaceDetectorTraitb ) Queueablea -(CanResetPassword` +)Authenticatable_ 5)HandlesAuthorization^ 1(VarDumperTestTrait] 3(dContainerAwareTrait\ (NTFooBar
[ (NTBar
Z (TFooY (TAX (TBW (TCV (TZU (TDT (LCTraitS (LBTraitR (LATraitQ 1(:VarDumperTestTraitP -(/SimpleTraitAssetO '('AbstractTraitN )(ProvidesEventsM 9(ListenerAggregateTraitL 9(EventManagerAwareTraitK 3'ContainerAwareTraitJ 'TFooBar
I 'TBar
H 'TFooG 'TAF 'TBE 'TCD 'TZC 'TDB 'CTraitA 'BTrait@ 'ATrait? 1'HydratorAwareTrait> )'NullGuardTrait= +'EmptyGuardTrait"< E'ArrayOrTraversableGuardTrait; )'AllGuardsTrait: ='ServiceLocatorAwareTrait!9 C'MutableCreationOptionsTrait8 -'xLoggerAwareTrait7 +'sLabelAwareTrait6 7'sFormFactoryAwareTrait5 /'LAdapterAwareTrait4 /'AdapterAwareTrait3 7&ProvidesObjectManager2 1&HydratorAwareTrait1 )&NullGuardTrait0 +&EmptyGuardTrait"/ E&ArrayOrTraversableGuardTrait. )&AllGuardsTrait- +&LabelAwareTrait, 7&FormFactoryAwareTrait+ 7&ProvidesObjectManager* 7&ProvidesObjectManager) 1&HydratorAwareTrait( )&NullGuardTrait' +&EmptyGuardTrait"& E&ArrayOrTraversableGuardTrait% )&AllGuardsTrait$ =&ServiceLocatorAwareTrait# -&wLoggerAwareTrait" 7&iInputFilterAwareTrait! 5&hTranslatorAwareTrait  +&^LabelAwareTrait 7&^FormFactoryAwareTrait )&HProvidesEvents 9&HListenerAggregateTrait 9&HEventManagerAwareTrait /&-AdapterAwareTrait 3%AnotherExampleTrait %%ExampleTrait )%GeneratorTrait %%EmitterTrait /%EmitterAwareTrait )%GeneratorTrait %%EmitterTrait /%EmitterAwareTrait )%PluggableTrait -%ConfigAwareTrait 5%StreamedWritingTrait '%StreamedTrait 5%StreamedReadingTrait /%StreamedCopyTrait" E%NotSupportingVisibilityTrait '%SnapshotTrait
 -%ConfirmableTrait	 )%MacroableTrait 3%CapsuleManagerTrait ?MockeryPHPUnitIntegration #%StepsRunner !%HasLocator !%HasHistory
 %Flow   e z_F!jQB3!jE-{l]RG<1&vW>#







q
c
M
8
"
						{	c	K	3		x`N5pYB(pWE#
eN7tW<&kR-xk^N2ze                       ? %,MessageTrait> +,TypeAssertTrait= /,ObjectAssertTrait< 7,CollectionAssertTrait; 1,DynamicObjectTrait: !,ScopeTrait9 5,HasEventEmitterTrait8 5,HasEventEmitterTrait7 3,ContainerAwareTrait6 ,TFooBar
5 ,TBar
4 ,TFoo3 ,TA2 ,TB1 ,TC0 ,TZ/ ,TD. ,CTrait- ,BTrait, ,ATrait + A,	ValidatesWhenResolvedTrait* ,Macroable) 3,CapsuleManagerTrait"( E,RouteDependencyResolverTrait' -,SerializesModels& 1,InteractsWithQueue% ;,UrlWindowPresenterTrait3$ g,BootstrapThreeNextPreviousButtonRendererTrait# ',ResponseTrait" /,ValidatesRequests! /,WithoutMiddleware  ',WithoutEvents 1,InteractsWithPages 5,DatabaseTransactions 1,DatabaseMigrations %,CrawlerTrait +,AssertionsTrait -,ApplicationTrait ),DispatchesJobs 1,DispatchesCommands +,ThrottlesLogins +,ResetsPasswords ),RegistersUsers ),RedirectsUsers 1,AuthenticatesUsers$ I,AuthenticatesAndRegistersUsers 1,AuthorizesRequests %,Authorizable #,SoftDeletes 9, DetectsLostConnections -,ConfirmableTrait ?,AppNamespaceDetectorTrait ,Queueable
 -+CanResetPassword	 +,Authenticatable 5,HandlesAuthorization +HasRole /+SoftDeletingTrait +HasRole -+PresentableTrait -+PresentableTrait )+EventGenerator /+DispatchableTrait  )+CommanderTrait )+EventGenerator~ /+DispatchableTrait} )+CommanderTrait| )+MacroableTrait{ 3+CapsuleManagerTraitz '+ResponseTraity ++AssertionsTraitx -+ApplicationTraitw /+SoftDeletingTraitv -+ConfirmableTraitu +UserTraitt ++RemindableTraits )+TestGuyActionsr )+TestGuyActionsq )+TestGuyActionsp '+WebGuyActionso ++CoverGuyActionsn '+CliGuyActionsm )+SkipGuyActionsl 1+ScenarioGuyActionsk ++PowerGuyActionsj ++OtherGuyActionsi ++OrderGuyActionsh /+MessageGuyActionsg /+MathTesterActionsf )+DumbGuyActionse )+CodeGuyActionsd ?+AbsolutelyOtherGuyActionsc !+Namespacesb +Assertsa '+ScenarioPrint` %+Dependencies_ '+Configuration^ +Actor] %+StaticEvents\ +Classname[ =+PhpSuperGlobalsConverterZ +FriendY +CommentX +StyleW !+FileSystemV +ConfigU +Filter	T +AllS 1+VarDumperTestTraitR -+rSimpleTraitAssetQ 9+]ClassLoaderTest_TraitAP ;+,MultipartUploadingTraitO %+&HasDataTraitN 1++PayloadParserTraitM ++*JsonParserTraitL +!TraitBK +!TraitAJ +TFooBar
I +TBar
H + TFooG +TAF +TBE +TCD +TZC +TDB +CTraitA +BTrait@ +ATrait? +Macroable> 3+CapsuleManagerTrait= 3*ContainerAwareTrait< '*AbstractTrait; *EasyMock: 1*HydratorAwareTrait9 )*NullGuardTrait8 +*EmptyGuardTrait"7 E*ArrayOrTraversableGuardTrait6 )*AllGuardsTrait5 =*ServiceLocatorAwareTrait!4 C*MutableCreationOptionsTrait3 3*ContainerAwareTrait2 *Vt1 *Tt0 'jSnapshotTrait/ ')AbstractTrait. )Annotator- )TraitB, )TraitA+ -)ConfirmableTrait* ?)AppNamespaceDetectorTrait) )Macroable( 3)CapsuleManagerTrait' ')ResponseTrait & A)ZValidatesWhenResolvedTrait% )kMacroable$ 3)kCapsuleManagerTrait"# E)jRouteDependencyResolverTrait" -)iSerializesModels! 1)iInteractsWithQueue  ;)hUrlWindowPresenterTrait3 g)hBootstrapThreeNextPreviousButtonRendererTrait ')gResponseTrait /)fValidatesRequests   ` {\E.	pO=(}fL2t]F/iW@+






f
W
H
9
.
#


							p	X	?	-	hM6w\?$nS:hR5xaO:&
lM6kN9$`                              \ 9/BEventManagerAwareTrait[ -/6LoggerAwareTraitZ 7/+InputFilterAwareTraitY +/)LabelAwareTraitX 7/)FormFactoryAwareTraitW -/SapiEmitterTraitV 9/InjectContentTypeTraitU %/	RequestTraitT %/	MessageTraitS 5.TranslatorAwareTraitR 1.HydratorAwareTraitQ ).NullGuardTraitP +.EmptyGuardTrait"O E.ArrayOrTraversableGuardTraitN ).AllGuardsTraitM =.ServiceLocatorAwareTrait!L C.MutableCreationOptionsTraitK ).ProvidesEventsJ 9.ListenerAggregateTraitI 9.EventManagerAwareTraitH 3.ContainerAwareTraitG #.TemplatableF %.ConfigurableE .AbortableD '.AbstractTraitC .MacroableB 3.CapsuleManagerTraitA #.tTemplatable@ %.tConfigurable? .tAbortable> ).sFormAccessible= '.sComponentable< ).qFormAccessible; '.qComponentable: 1.oVarDumperTestTrait9 '.5WithFactories8 -.5ApplicationTrait7 ).1PluggableTrait6 -./ConfigAwareTrait5 5.0StreamedWritingTrait4 '.0StreamedTrait3 5.0StreamedReadingTrait2 /.0StreamedCopyTrait"1 E.0NotSupportingVisibilityTrait 0 A.ValidatesWhenResolvedTrait/ ..Macroable. 3..CapsuleManagerTrait"- E.-RouteDependencyResolverTrait, -.,SerializesModels+ 1.,InteractsWithQueue* ;.+UrlWindowPresenterTrait3) g.+BootstrapThreeNextPreviousButtonRendererTrait( '.*ResponseTrait' /.)ValidatesRequests& /.(WithoutMiddleware% '.(WithoutEvents$ 1.(InteractsWithPages# 5.(DatabaseTransactions" 1.(DatabaseMigrations! %.(CrawlerTrait  +.(AssertionsTrait -.(ApplicationTrait ).'DispatchesJobs 1.'DispatchesCommands +.&ThrottlesLogins +.&ResetsPasswords ).&RegistersUsers ).&RedirectsUsers 1.&AuthenticatesUsers$ I.&AuthenticatesAndRegistersUsers 1.%AuthorizesRequests %.%Authorizable #.SoftDeletes 9.DetectsLostConnections -.$ConfirmableTrait ?.$AppNamespaceDetectorTrait .#Queueable --CanResetPassword +."Authenticatable 5.!HandlesAuthorization '-WithFactories --ApplicationTrait
 3-ContainerAwareTrait	 -TFooBar
 -TBar
 -TFoo -TA -TB -TC -TZ -TD -CTrait  -BTrait -ATrait~ 3-AnotherExampleTrait} %-ExampleTrait| 1-FRendererAwareTrait{ %-DEmitterTraitz /-DEmitterAwareTraity 1-CRendererAwareTraitx %-AEmitterTraitw /-AEmitterAwareTraitv %-@UrlLinkTraitu )-@StrikeoutTraitt -@LinkTraits +-@EmphStrongTraitr -@CodeTraitq !-?TableTraitp -?RuleTraito !-?QuoteTraitn -?ListTraitm -?HtmlTraitl '-?HeadlineTraitk +-?FencedCodeTraitj -?CodeTraiti )-#TestGuyActionsh )-"TestGuyActionsg )-!TestGuyActionsf '- WebGuyActionse +- CoverGuyActionsd '- CliGuyActionsc )- SkipGuyActionsb 1- ScenarioGuyActionsa +- PowerGuyActions` +- OtherGuyActions_ +- OrderGuyActions^ /- MessageGuyActions] /- MathTesterActions\ )- DumbGuyActions[ )- CodeGuyActionsZ ?- AbsolutelyOtherGuyActionsY !-NamespacesX -AssertsW '-ScenarioPrintV %-DependenciesU '-ConfigurationT -ActorS %-StaticEventsR -ClassnameQ =-PhpSuperGlobalsConverterP -FriendO -CommentN -StyleM !-FileSystemL -ConfigK 1-HydratorAwareTraitJ )-NullGuardTraitI +-EmptyGuardTrait"H E-ArrayOrTraversableGuardTraitG )-AllGuardsTraitF )-ProvidesEventsE 9-ListenerAggregateTraitD 9-EventManagerAwareTraitC 9-InjectContentTypeTraitB %-RequestTraitA %-MessageTrait@ 5,StreamDecoratorTrait   h  ~]C'W*	\>!nP4%qS4 






k
P
;

							g	U	A	,		
o-Gw7jy*Z%oB	l'          CD 0ytestGetAllMethodsWithRedeclaredMethodReturnsExpectedInstanceBC 0ytestGetAllMethodsWithMethodCollisionThrowsExpectedException-B [0ytestGetAllMethodsWithAliasedMethodTwice1A c0ytestGetAllMethodsWithAliasedMethodCollision6@ m0ytestGetAllMethodsWithAbstractMethodsUsedTraitTwo6? m0ytestGetAllMethodsWithAbstractMethodsUsedTraitOne*> U0ytestGetAllMethodsWithAbstractMethods== {0ytestGetAllMethodsOnTraitUsingTraitReturnsExpectedResult3< g0ytestGetAllMethodsHandlesTraitMethodPrecedence=; {0ytestGetAllChildrenReturnsArrayWithExpectedNumberOfNodes2: e0ytestGetMethodsReturnsExpectedNumberOfMethodsA9 0ytestGetAllMethodsWithVisibilityChangedToPublicUsedTraitOneD8 0ytestGetAllMethodsWithVisibilityChangedToProtectedUsedTraitOneB7 0ytestGetAllMethodsWithVisibilityChangedToPrivateUsedTraitOneL6 0ytestGetAllMethodsWithVisibilityChangedKeepsStaticModifierUsedTraitOneN5 0ytestGetAllMethodsWithVisibilityChangedKeepsAbstractModifierUsedTraitOneL4 0ytestGetAllMethodsWithRedeclaredMethodReturnsExpectedInstanceUsedTraitN3 0ytestGetAllMethodsWithMethodCollisionThrowsExpectedExceptionUsedTraitTwoN2 0ytestGetAllMethodsWithMethodCollisionThrowsExpectedExceptionUsedTraitOne91 s0ytestGetAllMethodsWithAliasedMethodTwiceUsedTraitOne=0 {0ytestGetAllMethodsWithAliasedMethodCollisionUsedTraitTwo=/ {0ytestGetAllMethodsWithAliasedMethodCollisionUsedTraitOneG. 0ytestGetAllMethodsOnTraitUsingTraitReturnsExpectedResultUsedTrait9- s0ytestGetAllMethodsOnSimpleTraitReturnsExpectedResultG, 0ytestGetAllMethodsOnClassWithParentReturnsTraitMethodUsedTraitOneU+ )0ytestGetAllMethodsOnClassWithParentAndPrecedenceReturnsParentMethodUsedTraitOneI* 0ytestGetAllMethodsOnClassWhereTraitExcludesParentMethodUsedTraitOne?) 0ytestGetAllMethodsHandlesTraitMethodPrecedenceUsedTraitTwo?( 0ytestGetAllMethodsHandlesTraitMethodPrecedenceUsedTraitOne' )0ProvidesEvents& 0}SomeTrait% 0FooTrait$ %0dNewableTrait# ;0dReservedCallStaticTrait" /0dReservedCallTrait! 0cSingleton  0cDecorator 0cContext %0bMessageTrait #0aCacheMapper 0TMacroable 30TCapsuleManagerTrait #0RSoftDeletes 90PDetectsLostConnections -05ConfirmableTrait ?05AppNamespaceDetectorTrait +04BelongsToTenant 0*Validator ;0MultipartUploadingTrait %0HasDataTrait 10PayloadParserTrait +0JsonParserTrait =/SingleImportTestingTrait #/ImportTrait )/FormAccessible '/Componentable" E/RouteDependencyResolverTrait '/ResponseTrait
 #/SoftDeletes	 9/DetectsLostConnections 7/RetrievesMultipleKeys -/MicroKernelTrait 3/ContainerAwareTrait /TFooBar
 /TBar
 /TFoo /TA /TB  /TC /TZ~ /TD} /CTrait| /BTrait{ /ATraitz 3/ContainerAwareTraity 7/gStyleSheetCommonTraitx '/gJSCommonTraitw 5/gHyperTextCommonTraitv 3/gDBXMLFunctionsTraitu 5/gDBVariableTypesTraitt 9/gDBStringFunctionsTrait%s K/gDBSpatialAnalysisFunctionsTraitr 5/gDBSelectClausesTraitq 7/gDBOtherFunctionsTrait#p G/gDBMiscellaneousFunctionsTraito 5/gDBMathFunctionsTraitn 5/gDBJsonFunctionsTrait m A/gDBInformationFunctiosTrait'l O/gDBGlobalTransactionFunctionsTraitk =/gDBFullTextFunctionsTrait*j U/gDBEnterpriseEncryptionFunctionsTrait+i W/gDBEncryptionCompressionFunctionsTraith =/gDBDateTimeFunctionsTrait+g W/gDBConversionExpressionEvaluationTraitf 1/gDBControlFlowTraite '/gDBCommonTraitd ?/gDBAggregateFunctionsTraitc 3/gDBDriverCommonTraitb //PAdapterAwareTraita =/FServiceLocatorAwareTrait!` C/FMutableCreationOptionsTrait%_ K/EEventListenerIntrospectionTrait^ )/BProvidesEvents] 9/BListenerAggregateTrait    yAjF"^xSJ:pZ9







r
c
B
0

						{	m	W	A	1	jR7 
eU8 jK7"gP6iN1{`G"peZOD9,iN9     K ;1MultipartUploadingTraitJ %1HasDataTraitI 11PayloadParserTraitH +1JsonParserTraitG 91ClassLoaderTest_TraitAF 31DDC2372AddressTraitE 31DDC1872ExampleTraitD 11VarDumperTestTraitC 310ContainerAwareTraitB 1TFooBar
A 1TBar
@ 1TFoo? 1TA> 1TB= 1TC< 1TZ; 1TD: 1CTrait9 1BTrait8 1ATrait7 -1MicroKernelTrait6 11VarDumperTestTrait 5 A0ValidatesWhenResolvedTrait4 1Macroable3 31CapsuleManagerTrait"2 E1RouteDependencyResolverTrait1 -1SerializesModels0 11InteractsWithQueue/ ;1UrlWindowPresenterTrait3. g1BootstrapThreeNextPreviousButtonRendererTrait- '1ResponseTrait, /1 ValidatesRequests+ /0WithoutMiddleware* '0WithoutEvents) 50DatabaseTransactions( 10DatabaseMigrations' =0MocksApplicationServices& /0MakesHttpRequests% 50InteractsWithSession$ 10InteractsWithPages# 70InteractsWithDatabase" 90InteractsWithContainer! 50InteractsWithConsole  /0ImpersonatesUsers )0DispatchesJobs +0ThrottlesLogins +0ResetsPasswords )0RegistersUsers )0RedirectsUsers 10AuthenticatesUsers$ I0AuthenticatesAndRegistersUsers 10AuthorizesRequests %0Authorizable #0SoftDeletes 90DetectsLostConnections -0ConfirmableTrait ?0AppNamespaceDetectorTrait 70RetrievesMultipleKeys 0Queueable -0CanResetPassword %0GuardHelpers 50CreatesUserProviders +0Authenticatable 50HandlesAuthorization 0Specify
 50StreamDecoratorTrait	 %0MessageTrait )0TestGuyActions )0TestGuyActions )0TestGuyActions '0WebGuyActions +0CoverGuyActions '0CliGuyActions )0SkipGuyActions 10ScenarioGuyActions  +0PowerGuyActions +0OtherGuyActions~ +0OrderGuyActions} /0MessageGuyActions| /0MathTesterActions{ )0DumbGuyActionsz )0CodeGuyActionsy ?0AbsolutelyOtherGuyActionsx !0Namespacesw 0Assertsv '0ScenarioPrintu '0Configurationt 0Actors )0ScenarioLoaderr /0MetadataCollectorq #0ErrorLoggerp %0Dependencieso %0CodeCoveragen +0BlockByMetadatam -0AssertionCounterl %0StaticEventsk 0Classnamej =0PhpSuperGlobalsConverteri 0Friendh 0Commentg 0Stylef !0FileSysteme 0Configd !0SheetTraitc #0JqueryTraitb )0HyperTextTraita %0SessionTrait` /0ErrorControlTrait_ /0DriverMethodTrait^ =0CallUndefinedMethodTrait] '0DateTimeTrait\ '0DatabaseTrait[ 30DatabaseDriverTrait#Y G0testTraitHasExpectedNamespace-X [0testGetNamespaceNameReturnsExpectedName?W 0ytestTokenizerReturnsExpectedConstantForTraitMagicConstantV 0yMyTraitU 0y"T E0ytestTraitUseStatementInTraitNS 0ytestHasExcludeForReturnsTrueIfMethodAffectedBySecondInsteadUsedTraitTwoNR 0ytestHasExcludeForReturnsTrueIfMethodAffectedBySecondInsteadUsedTraitOneAQ 0ytestHasExcludeForReturnsFalseIfNoInsteadExistsUsedTraitOneLP 0ytestHasExcludeForReturnsFalseIfMethodNotAffectedByInsteadUsedTraitTwoLO 0ytestHasExcludeForReturnsFalseIfMethodNotAffectedByInsteadUsedTraitOne#N G0ytestTraitHasExpectedStartLine!M C0ytestTraitHasExpectedPackage!L C0ytestTraitHasExpectedEndLine.K ]0ytestTraitCanUseParentKeywordInMethodBody2J e0ytestTraitCanUseParentKeywordAsMethodTypeHint4I i0ytestGetAllMethodsWithVisibilityChangedToPublic7H o0ytestGetAllMethodsWithVisibilityChangedToProtected5G k0ytestGetAllMethodsWithVisibilityChangedToPrivate?F 0ytestGetAllMethodsWithVisibilityChangedKeepsStaticModifierBE 0ytestGetAllMethodsWithVisibilityChangedKeepsAbstractModifier   L wb?(~aL3!u\9/%lM%cE,




|
a
L
:
%
							r	e	U	D	8		scT3!xaJ0nXA*{dL3nP2ti^QD4*jM5`L      j #5%SoftDeletesi 95#DetectsLostConnectionsh -54ConfirmableTraitg ?54AppNamespaceDetectorTraitf 753RetrievesMultipleKeyse 52Queueabled -5CanResetPasswordc %51GuardHelpersb 551CreatesUserProvidersa +51Authenticatable` 550HandlesAuthorization_ '5WithFactories^ -5ApplicationTrait] 54MiddlewareAwareTrait \ A4CallableResolverAwareTrait[ -4EntrustUserTraitZ -4EntrustRoleTraitY 94EntrustPermissionTraitX 4tW 4TFooBar
V 4TBar
U 4TFooT 4TAS 4TBR 4TCQ 4TZP 4TDO 4CTraitN 4BTraitM 4ATraitL 4AnnotatorK -4MicroKernelTraitJ =4!ServiceLocatorAwareTrait!I C4!MutableCreationOptionsTraitH 74 ProvidesObjectManagerG 74BooleanRequestWrapperF #3EventsTraitE +3ComponentsTraitD )3ArrayableTraitC #3ObjectTraitB 3ClassNameA #3ErrorsTrait@ !3QueryTrait? -3CommonCacheTrait> 33ActiveRelationTrait= -3ActiveQueryTrait< +3ComponentsTrait; )3ArrayableTrait: +3VersioningTrait9 #3EventsTrait8 #3ObjectTrait7 3ClassName6 )3CodeGuyActions5 %3WorkingTrait4 /3TraitedClassTrait3 )3TestGuyActions2 )3TestGuyActions1 )3TestGuyActions0 '3WebGuyActions/ +3CoverGuyActions. '3CliGuyActions- )3SkipGuyActions, 13ScenarioGuyActions+ +3PowerGuyActions* +3OtherGuyActions) +3OrderGuyActions( /3MessageGuyActions' /3MathTesterActions& )3DumbGuyActions% )3CodeGuyActions$ ?3AbsolutelyOtherGuyActions# !3Namespaces" 3Asserts! '3ScenarioPrint  %3Dependencies '3Configuration 3Actor %3StaticEvents 3Classname =3PhpSuperGlobalsConverter 3Friend 3Comment 3Style !3FileSystem 3Config 3SomeTrait )3NotActiveTrait !3Visibility# G3StartPositionEndPositionMagic -3StartLineEndLine /3IsDocumentedMagic	 3Foo 3EasyMock 3zTFooBar
 3zTBar
 3{TFoo
 33XContainerAwareTrait	 '3OSecurityTrait /3NUrlGeneratorTrait 3NTwigTrait -3NTranslationTrait -3NSwiftmailerTrait '3NSecurityTrait %3NMonologTrait 3NFormTrait %3KExampleTrait  13 HydratorAwareTrait )3>NullGuardTrait~ +3>EmptyGuardTrait"} E3>ArrayOrTraversableGuardTrait| )3>AllGuardsTrait{ =3ServiceLocatorAwareTrait!z C3MutableCreationOptionsTraity -2LoggerAwareTraitx 72InputFilterAwareTraitw 52TranslatorAwareTraitv +2LabelAwareTraitu 72FormFactoryAwareTraitt )2ProvidesEventss 92ListenerAggregateTraitr 92EventManagerAwareTraitq /2AdapterAwareTrait%p K2EEventListenerIntrospectionTraito 92BListenerAggregateTraitn 92BEventManagerAwareTraitm 2,Listens0l a2*PHPUnit_Extensions_Database_TestCase_Traitk %2)MessageTraitj -2HttpAdapterTraiti %2Translatableh 1Tg 1Tf 1Te 1T d A1ValidatesWhenResolvedTraitc -1SerializesModelsb 11InteractsWithQueuea ;1UrlWindowPresenterTrait3` g1BootstrapThreeNextPreviousButtonRendererTrait_ -1ConfirmableTrait^ ?1AppNamespaceDetectorTrait] 1Queueable\ -1CanResetPassword[ %1GuardHelpersZ 51CreatesUserProvidersY +1AuthenticatableX 51HandlesAuthorizationW 51DatabaseTransactionsV 11DatabaseMigrationsU /1MakesHttpRequests T A1ProvidesConvenienceMethodsS )1RoutesRequests R A1RegistersExceptionHandlersQ %1AuthorizableP 1PHPMockO 91RequiredParameterTraitN 71MacAuthorizationTraitM =1BearerAuthorizationTraitL 11ArrayAccessorTrait   zF w`H0mS2dD)s_I2 qT8




j
G
$
					r	V	9	{gO2jG)qT<-|oU?$tbK	{#SF                                                                          Nd 6.testGetAllMethodsWithMethodCollisionThrowsExpectedExceptionUsedTraitOne9c s6.testGetAllMethodsWithAliasedMethodTwiceUsedTraitOne=b {6.testGetAllMethodsWithAliasedMethodCollisionUsedTraitTwo=a {6.testGetAllMethodsWithAliasedMethodCollisionUsedTraitOneG` 6.testGetAllMethodsOnTraitUsingTraitReturnsExpectedResultUsedTrait9_ s6.testGetAllMethodsOnSimpleTraitReturnsExpectedResultG^ 6.testGetAllMethodsOnClassWithParentReturnsTraitMethodUsedTraitOneU] )6.testGetAllMethodsOnClassWithParentAndPrecedenceReturnsParentMethodUsedTraitOneI\ 6.testGetAllMethodsOnClassWhereTraitExcludesParentMethodUsedTraitOne?[ 6.testGetAllMethodsHandlesTraitMethodPrecedenceUsedTraitTwo?Z 6.testGetAllMethodsHandlesTraitMethodPrecedenceUsedTraitOneY )69ProvidesEventsX 62SomeTraitW 68FooTraitV 36ContainerAwareTraitU =6CommonPluginManagerTraitT =6ServiceLocatorAwareTrait!S C6MutableCreationOptionsTraitR 55TranslatorAwareTraitQ 15VarDumperTestTraitP '5ToStringTraitO /5EventEmitterTrait
N 5TimeM 5StringsL 5Session
K 5Post
J 5Misc
I 5Math	H 5GetG 5ConvertF 5BrowserE )5ClassroomTraitD 5TestTraitC %5BadTestTraitB 5Trait1A +5StaticDataCache@ 55RequireObject_Trait1 ? A5RequireObjectOfType_Trait1 > A5RequireDefinedTrait_Trait1%= K5RequireDefinedObjectType_Trait1$< I5RequireDefinedInterface_Trait1 ; A5RequireDefinedClass_Trait1: 75IsDefinedTrait_Trait1 9 A5IsDefinedObjectType_Trait18 ?5IsDefinedInterface_Trait17 75IsDefinedClass_Trait16 ;5IsCompatibleWith_Trait15 15LookupMethodByType4 +5UnsupportedType3 55ExceptionMessageData2 +5ExceptionCaller1 55ExceptionMessageData0 +5HttpLineEndings/ #5HttpHeaders. -5HostsByRoleTrait- 35Connector_UnixShell, 35Connector_SshClient+ =5StoryplayerConfigSupport&* M5StoryplayerConfigFilenameSupport ) A5StaticConfigManagerSupport( 55RuntimeConfigSupport' 35ReportLoaderSupport& 15ProseLoaderSupport% 15PhaseLoaderSupport$ '5OutputSupport"# E5KnownTestEnvironmentsSupport"" E5KnownSystemsUnderTestSupport! 35KnownDevicesSupport   A5DefaultTestEnvironmentName  A5DefaultSystemUnderTestName 55DefaultConfigSupport ?5DefaultCommandLineSupport 55DataFormatterSupport( Q5ActiveTestEnvironmentConfigSupport( Q5ActiveSystemUnderTestConfigSupport 35ActiveDeviceSupport 35ActiveConfigSupport 55VisibleElementFinder #5ResultTrait -5wByClassNameTrait )5qDeployerHelper '5RSaveableTrait %5RNewableTrait ;5RReservedCallStaticTrait /5RReservedCallTrait +5LBelongsToTenant )5HFormAccessible '5GComponentable #5@Templatable %5@Configurable
 5@Abortable 	 A5,ValidatesWhenResolvedTrait 5?Macroable 35?CapsuleManagerTrait" E5>RouteDependencyResolverTrait -5=SerializesModels 15=InteractsWithQueue ;5<UrlWindowPresenterTrait3 g5<BootstrapThreeNextPreviousButtonRendererTrait '5;ResponseTrait  /5:ValidatesRequests /59WithoutMiddleware~ '59WithoutEvents} 559DatabaseTransactions| 159DatabaseMigrations{ =58MocksApplicationServicesz /58MakesHttpRequestsy 558InteractsWithSessionx 158InteractsWithPagesw 758InteractsWithDatabasev 958InteractsWithContaineru 558InteractsWithConsolet /58ImpersonatesUserss )57DispatchesJobsr +56ThrottlesLoginsq +56ResetsPasswordsp )56RegistersUserso )56RedirectsUsersn 156AuthenticatesUsers$m I56AuthenticatesAndRegistersUsersl 155AuthorizesRequestsk %55Authorizable   i  `{4{Ef2w2


~
G
				s	$@o?tXB,ubTD5{YB+}gO9"nY@.rK0                 N +6ResetsPasswordsM )6RegistersUsersL )6RedirectsUsersK 16AuthenticatesUsers$J I6AuthenticatesAndRegistersUsersI 16AuthorizesRequestsH %6AuthorizableG #6SoftDeletesF 96DetectsLostConnectionsE -6ConfirmableTraitD ?6AppNamespaceDetectorTraitC 76RetrievesMultipleKeysB 6QueueableA -6CanResetPassword@ %6GuardHelpers? 56CreatesUserProviders> +6Authenticatable= 56HandlesAuthorization< /6UnitTesterActions; /6UnitTesterActions: )6TestGuyActions9 )6TestGuyActions8 )6TestGuyActions7 '6WebGuyActions6 +6CoverGuyActions5 '6CliGuyActions4 )6SkipGuyActions3 16ScenarioGuyActions2 +6PowerGuyActions1 +6OtherGuyActions0 +6OrderGuyActions/ /6MessageGuyActions. /6MathTesterActions- )6DumbGuyActions, )6CodeGuyActions+ ?6AbsolutelyOtherGuyActions* !6Namespaces) 6Asserts( '6ScenarioPrint' %6Dependencies& '6Configuration% 6Actor$ %6StaticEvents# 6Classname" =6PhpSuperGlobalsConverter! 6Friend  6Comment 6Style !6FileSystem 6Config !6oSheetTrait #6oJqueryTrait )6oHyperTextTrait %6oSessionTrait /6oErrorControlTrait /6oDriverMethodTrait =6oCallUndefinedMethodTrait '6oDateTimeTrait '6oDatabaseTrait 36oDatabaseDriverTrait -6dLoggerAwareTrait )6RNullGuardTrait +6REmptyGuardTrait" E6RArrayOrTraversableGuardTrait )6RAllGuardsTrait =6MCommonPluginManagerTrait# G6:testTraitHasExpectedNamespace-
 [6:testGetNamespaceNameReturnsExpectedName?	 6.testTokenizerReturnsExpectedConstantForTraitMagicConstant 6.MyTrait 6." E6.testTraitUseStatementInTraitN 6.testHasExcludeForReturnsTrueIfMethodAffectedBySecondInsteadUsedTraitTwoN 6.testHasExcludeForReturnsTrueIfMethodAffectedBySecondInsteadUsedTraitOneA 6.testHasExcludeForReturnsFalseIfNoInsteadExistsUsedTraitOneL 6.testHasExcludeForReturnsFalseIfMethodNotAffectedByInsteadUsedTraitTwoL 6.testHasExcludeForReturnsFalseIfMethodNotAffectedByInsteadUsedTraitOne#  G6.testTraitHasExpectedStartLine! C6.testTraitHasExpectedPackage!~ C6.testTraitHasExpectedEndLine.} ]6.testTraitCanUseParentKeywordInMethodBody2| e6.testTraitCanUseParentKeywordAsMethodTypeHint4{ i6.testGetAllMethodsWithVisibilityChangedToPublic7z o6.testGetAllMethodsWithVisibilityChangedToProtected5y k6.testGetAllMethodsWithVisibilityChangedToPrivate?x 6.testGetAllMethodsWithVisibilityChangedKeepsStaticModifierBw 6.testGetAllMethodsWithVisibilityChangedKeepsAbstractModifierCv 6.testGetAllMethodsWithRedeclaredMethodReturnsExpectedInstanceBu 6.testGetAllMethodsWithMethodCollisionThrowsExpectedException-t [6.testGetAllMethodsWithAliasedMethodTwice1s c6.testGetAllMethodsWithAliasedMethodCollision6r m6.testGetAllMethodsWithAbstractMethodsUsedTraitTwo6q m6.testGetAllMethodsWithAbstractMethodsUsedTraitOne*p U6.testGetAllMethodsWithAbstractMethods=o {6.testGetAllMethodsOnTraitUsingTraitReturnsExpectedResult3n g6.testGetAllMethodsHandlesTraitMethodPrecedence=m {6.testGetAllChildrenReturnsArrayWithExpectedNumberOfNodes2l e6.testGetMethodsReturnsExpectedNumberOfMethodsAk 6.testGetAllMethodsWithVisibilityChangedToPublicUsedTraitOneDj 6.testGetAllMethodsWithVisibilityChangedToProtectedUsedTraitOneBi 6.testGetAllMethodsWithVisibilityChangedToPrivateUsedTraitOneLh 6.testGetAllMethodsWithVisibilityChangedKeepsStaticModifierUsedTraitOneNg 6.testGetAllMethodsWithVisibilityChangedKeepsAbstractModifierUsedTraitOneLf 6.testGetAllMethodsWithRedeclaredMethodReturnsExpectedInstanceUsedTraitNe 6.testGetAllMethodsWithMethodCollisionThrowsExpectedExceptionUsedTraitTwo   ;
 vW9x^D.oJ.wlaTG7 qQ6





f
L
1
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      	 57DatabaseTransactions 17DatabaseMigrations /7MakesHttpRequests  A7ProvidesConvenienceMethods )7RoutesRequests  A7RegistersExceptionHandlers %7Authorizable 97RequiredParameterTrait 77MacAuthorizationTrait  =7BearerAuthorizationTrait 17ArrayAccessorTrait~ ;7MultipartUploadingTrait} %7HasDataTrait| 17PayloadParserTrait{ +7JsonParserTraitz -7UsesServiceTraity !7IntegUtilsx 17PhpFileLinterTraitw 17VarDumperTestTraitv 37+ContainerAwareTraitu 7TFooBar
t 7TBar
s 7TFoor 7TAq 7TBp 7TCo 7TZn 7TDm 7CTraitl 7BTraitk 7ATraitj -7MicroKernelTraiti 16VarDumperTestTrait h A6ValidatesWhenResolvedTraitg 6Macroablef 36CapsuleManagerTrait"e E6RouteDependencyResolverTraitd -6SerializesModelsc 16InteractsWithQueueb ;6UrlWindowPresenterTrait3a g6BootstrapThreeNextPreviousButtonRendererTrait2` e6BootstrapFourNextPreviousButtonRendererTrait_ '6ResponseTrait^ /6ValidatesRequests] /6WithoutMiddleware\ '6WithoutEvents[ 56DatabaseTransactionsZ 16DatabaseMigrationsY =6MocksApplicationServicesX /6MakesHttpRequestsW 56InteractsWithSessionV 16InteractsWithPagesU 76InteractsWithDatabaseT 96InteractsWithContainerS 56InteractsWithConsole!R C6InteractsWithAuthenticationQ /6ImpersonatesUsersP )6DispatchesJobsO +6ThrottlesLogins    zj^RF:.}pcWK?3'xl`TH<0$sg[O?-|obUH;.!










}
p
c
R
D
6
)


										y	k	^	Q	D	7	*			vhZL>0"sfYL?,wjWD3%	vcP?1$
xfSB5$
xdP<+~m`SF9,             j !dev-master
i 1.0.0
h 1.0.1
g 1.1.0
f 1.1.1
e 1.1.2
d 1.2.0c 1.2.x-devb !dev-masterE %dev-hhvm-fix!D Edev-user-original-parametersC 'dev-issue/142
B 1.0.3
A 1.0.4
@ 1.0.5
? 1.0.6
> 1.0.7
= 1.0.8< 1.0.x-dev; %2.0.0-alpha1: %2.0.0-alpha29 %2.0.0-alpha38 %2.0.0-alpha47 #2.0.0-beta16 #2.0.0-beta25 #2.0.0-beta34 #2.0.0-beta43 #2.0.0-beta52 2.0.0-rc11 V2.0.0
0 2.0.1
/ 2.0.2. 2.0.x-dev
- 2.1.0, 2.1.x-dev+ #3.0.0.x-dev* !dev-mastero #2.4.0-BETA1n #2.4.0-BETA2m 2.4.0-RC1
l 2.4.0
k 2.4.1
j 2.4.2
i 2.4.3
h 2.4.4
g 2.4.5
f 2.4.6
e 2.4.7
d 2.4.8
c 2.4.9b 2.4.10a 2.4.x-dev` #2.5.0-BETA1_ #2.5.0-BETA2^ 2.5.0-RC1
] 2.5.0
\ 2.5.1
[ 2.5.2
Z 2.5.3
Y 2.5.4
X 2.5.5
W 2.5.6
V 2.5.7
U 2.5.8
T 2.5.9S 2.5.10R 2.5.11Q 2.5.12P 2.5.x-devO #2.6.0-BETA1N #2.6.0-BETA2
M 2.6.0
L 2.6.1
K 2.6.2
J 2.6.3
I 2.6.4
H 2.6.5
G 2.6.6
F 2.6.7
E 2.6.8
D 2.6.9C 2.6.10B 2.6.11A 2.6.x-dev@ #2.7.0-BETA1? #2.7.0-BETA2
> 2.7.0
= 2.7.1
< 2.7.2
; 2.7.3
: 2.7.49 2.7.x-dev8 2.8.x-dev7 3.0.x-dev6 !dev-master
5 2.0.4
4 2.0.5
3 2.0.6
2 2.0.7
1 2.0.90 2.0.10/ 2.0.12. 2.0.13- 2.0.14, 2.0.15+ 2.0.16* 2.0.17) 2.0.18( 2.0.19' 2.0.20& 2.0.21% 2.0.22$ 2.0.23# 2.0.24" 2.0.25! 2.0.x-dev
  2.1.0
 2.1.1
 2.1.2
 2.1.3
 2.1.4
 2.1.5
 2.1.6
 2.1.7
 2.1.8
 2.1.9 2.1.10 2.1.11 2.1.12 2.1.13 2.1.x-dev
 2.2.0
 2.2.1
 2.2.2
 2.2.3
 2.2.4
 2.2.5
 2.2.6

 2.2.7
	 2.2.8
 2.2.9 2.2.10 2.2.11 2.2.x-dev
 2.3.0
 2.3.1
 2.3.2
 2.3.3
  2.3.4
 2.3.5
~ 2.3.6
} 2.3.7
| 2.3.8
{ 2.3.9z 2.3.10y 2.3.11x 2.3.12w 2.3.13v 2.3.14u 2.3.15t 2.3.16s 2.3.17r 2.3.18q 2.3.19p 2.3.20o 2.3.21n 2.3.22m 2.3.23l 2.3.24k 2.3.25j 2.3.26i 2.3.27h 2.3.28g 2.3.29f 2.3.30e 2.3.31d 2.3.32c 2.3.x-devb #2.4.0-BETA1a #2.4.0-BETA2` 2.4.0-RC1
_ 2.4.0
^ 2.4.1
] 2.4.2
\ 2.4.3
[ 2.4.4
Z 2.4.5
Y 2.4.6
X 2.4.7
W 2.4.8
V 2.4.9U 2.4.10T 2.4.x-devS #2.5.0-BETA1R #2.5.0-BETA2Q 2.5.0-RC1
P 2.5.0
O 2.5.1
N 2.5.2
M 2.5.3
L 2.5.4
K 2.5.5
J 2.5.6
I 2.5.7
H 2.5.8
G 2.5.9F 2.5.10E 2.5.11D 2.5.12C 2.5.x-devB #2.6.0-BETA1A #2.6.0-BETA2
@ 2.6.0
? 2.6.1
> 2.6.2
= 2.6.3
< 2.6.4
; 2.6.5
: 2.6.6
9 2.6.7
8 2.6.8
7 2.6.96 2.6.105 2.6.114 2.6.x-dev3 #2.7.0-BETA12 #2.7.0-BETA2
1 2.7.0
0 2.7.1
/ 2.7.2
. 2.7.3
- 2.7.4, 2.7.x-dev+ 2.8.x-dev* 3.0.x-dev) !dev-master
 2.0.0
 2.1.0
 2.2.0
 2.3.0
 2.4.0 2.4.x-dev 2.5.x-dev !dev-master	 	1.0.0	 	1.1.0	 	1.2.0	 	1.3.0	 	1.4.0 	1.4.x-dev 	1.5.x-dev 	!dev-master    ~qdWJ7%}pcVI</}pcVI</"zm`SF9,{naTC5'










u
h
[
N
A
4
'

										|	n	`	R	D	6	(		sfYL?2%@.xk^QD7(
wdQ.|obUH5"uh[NA4'reXK>1$           \ 1.2.17[ 1.2.18Z 1.2.x-dev
Y 2.0.0
X 2.0.1
W 2.0.2
V 2.0.3
U 2.0.4
T 2.0.5
S 2.0.6
R 2.0.7
Q 2.0.8
P 2.0.9O 2.0.10N 2.0.11M 2.0.12L 2.0.13K 2.0.14J 2.0.15I 2.0.16H 2.0.17G 2.0.x-dev
F 2.1.0
E 2.1.1
D 2.1.2
C 2.1.3
B 2.1.4
A 2.1.5
@ 2.1.6
? 2.1.7
> 2.1.8
= 2.1.9< 2.1.x-dev
; 2.2.0
: 2.2.1
9 2.2.2
8 2.2.37 2.2.x-dev6 3.0.x-dev5 !dev-master4 #1.0.0-BETA13 #1.0.0-BETA2
2 1.0.0
1 1.0.1
0 1.0.2
/ 1.0.3
. 1.0.4
- 1.1.0
, 1.1.1
+ 1.1.2
* 1.2.0
) 1.2.1
( 1.3.0
' 1.3.1
& 1.4.0
% 1.4.1
$ 1.5.0# 1.5.x-dev" !dev-master ! Cdev-_before-history-rewrite  #1.0.0-beta1 #1.0.0-beta2 #1.0.0-beta3 #1.0.0-beta4 #1.0.0-beta5 #1.0.0-beta6 #1.0.0-beta7
 1.0.0
 1.0.1
 1.0.2
 1.0.3 2.0.0a1 2.0.0a2 2.0.0a3
 2.0.0
 2.0.1
 2.0.2
 2.0.3
 2.0.4 3.0.x-dev !dev-master1 edev-hotfix/#9-fragile-internal-classes-check

 1.0.0
	 1.0.1
 1.0.2
 1.0.3
 1.0.4
 1.0.5 1.0.x-dev !dev-masterT )
dev-feature/default-tear-down-that-unsets-all-attributes-of-a-test-case-object' Q
dev-refactoring/symfony-var-dumper!  E
dev-refactor/symfony-process /
dev-configuration
~ 
3.7.0
} 
3.7.1
| 
3.7.2
{ 
3.7.3
z 
3.7.4
y 
3.7.5
x 
3.7.6
w 
3.7.7
v 
3.7.8
u 
3.7.9t 
3.7.10s 
3.7.11r 
3.7.12q 
3.7.13p 
3.7.14o 
3.7.15n 
3.7.16m 
3.7.17l 
3.7.18k 
3.7.19j 
3.7.20i 
3.7.21h 
3.7.22g 
3.7.23f 
3.7.24e 
3.7.25d 
3.7.26c 
3.7.27b 
3.7.28a 
3.7.29` 
3.7.30_ 
3.7.31^ 
3.7.32] 
3.7.33\ 
3.7.34[ 
3.7.35Z 
3.7.36Y 
3.7.37X 
3.7.38W 
3.7.x-dev
V 
4.0.0
U 
4.0.1
T 
4.0.2
S 
4.0.3
R 
4.0.4
Q 
4.0.5
P 
4.0.6
O 
4.0.7
N 
4.0.8
M 
4.0.9L 
4.0.10K 
4.0.11J 
4.0.12I 
4.0.13H 
4.0.14G 
4.0.15F 
4.0.16E 
4.0.17D 
4.0.18C 
4.0.19B 
4.0.20A 
4.0.x-dev
@ 
4.1.0
? 
4.1.1
> 
4.1.2
= 
4.1.3
< 
4.1.4
; 
4.1.5
: 
4.1.69 
4.1.x-dev
8 
4.2.0
7 
4.2.1
6 
4.2.2
5 
4.2.3
4 
4.2.4
3 
4.2.5
2 
4.2.61 
4.2.x-dev
0 
4.3.0
/ 
4.3.1
. 
4.3.2
- 
4.3.3
, 
4.3.4
+ 
4.3.5* 
4.3.x-dev
) 
4.4.0
( 
4.4.1
' 
4.4.2
& 
4.4.3
% 
4.4.4
$ 
4.4.5# 
4.4.x-dev
" 
4.5.0
! 
4.5.1  
4.5.x-dev
 
4.6.0
 
4.6.1
 
4.6.2
 
4.6.3
 
4.6.4
 
4.6.5
 
4.6.6
 
4.6.7
 
4.6.8
 
4.6.9 
4.6.10 
4.6.x-dev
 
4.7.0
 
4.7.1
 
4.7.2
 
4.7.3
 
4.7.4
 
4.7.5
 
4.7.6
 
4.7.7 
4.7.x-dev

 
4.8.0
	 
4.8.1
 
4.8.2
 
4.8.3
 
4.8.4
 
4.8.5
 
4.8.6
 
4.8.7
 
4.8.8 
4.8.x-dev  
5.0.x-dev 
5.1.x-dev~ 
6.0.x-dev} !
dev-master
| 	1.0.0
{ 	1.0.1z 	1.0.x-devy !	dev-masterx #dev-factory
w 1.0.0
v 1.0.1
u 1.0.2
t 1.1.0
s 1.2.0
r 1.2.1q 1.3.x-devp !dev-master
o 1.0.0
n 1.1.0
m 1.2.0
l 1.3.0k 1.3.x-dev     wj]PC6|obUH;)wj]PC6)pcVI</"~m_RE8+









u
h
[
N
A
4
'


 									}	p	c	Q	@	/			}pcVI</"sfYL?2%tgZM<)yk]OA3%	uh[NA0"seWI</"~pbTF8*   x 2.0.13w 2.0.14v 2.0.15u 2.0.16t 2.0.17s 2.0.18r 2.0.19q 2.0.20p 2.0.21o 2.0.22n 2.0.23m 2.0.24l 2.0.25k 2.0.x-dev
j 2.1.0
i 2.1.1
h 2.1.2
g 2.1.3
f 2.1.4
e 2.1.5
d 2.1.6
c 2.1.7
b 2.1.8
a 2.1.9` 2.1.10_ 2.1.11^ 2.1.12] 2.1.13\ 2.1.x-dev
[ 2.2.0
Z 2.2.1
Y 2.2.2
X 2.2.3
W 2.2.4
V 2.2.5
U 2.2.6
T 2.2.7
S 2.2.8
R 2.2.9Q 2.2.10P 2.2.11O 2.2.x-dev
N 2.3.0
M 2.3.1
L 2.3.2
K 2.3.3
J 2.3.4
I 2.3.5
H 2.3.6
G 2.3.7
F 2.3.8
E 2.3.9D 2.3.10C 2.3.11B 2.3.12A 2.3.13@ 2.3.14? 2.3.15> 2.3.16= 2.3.17< 2.3.18; 2.3.19: 2.3.209 2.3.218 2.3.227 2.3.236 2.3.245 2.3.254 2.3.263 2.3.272 2.3.281 2.3.290 2.3.30/ 2.3.31. 2.3.32- 2.3.x-dev, #2.4.0-BETA1+ #2.4.0-BETA2* 2.4.0-RC1
) 2.4.0
( 2.4.1
' 2.4.2
& 2.4.3
% 2.4.4
$ 2.4.5
# 2.4.6
" 2.4.7
! 2.4.8
  2.4.9 2.4.10 2.4.x-dev #2.5.0-BETA1 #2.5.0-BETA2 2.5.0-RC1
 2.5.0
 2.5.1
 2.5.2
 2.5.3
 2.5.4
 2.5.5
 2.5.6
 2.5.7
 2.5.8
 2.5.9 2.5.10 2.5.11 2.5.12 2.5.x-dev #2.6.0-BETA1 #2.6.0-BETA2

 2.6.0
	 2.6.1
 2.6.2
 2.6.3
 2.6.4
 2.6.5
 2.6.6
 2.6.7
 2.6.8
 2.6.9  2.6.10 2.6.11~ 2.6.x-dev} #2.7.0-BETA1| #2.7.0-BETA2
{ 2.7.0
z 2.7.1
y 2.7.2
x 2.7.3
w 2.7.4v 2.7.x-devu 2.8.x-devt 3.0.x-devs !dev-master
r 1.0.0
q 1.0.1
p 1.0.2
o 1.0.3
n 1.0.4
m 1.0.5
l 1.0.6k !dev-master
f 1.0.0e 1.0.x-devd !dev-master
Z 1.0.0
Y 1.0.1
X 1.1.0
W 1.2.0
V 1.2.1
U 1.2.2
T 1.3.0
S 1.3.1
R 1.3.2Q 1.3.x-devP !dev-master
A 1.2.0
@ 1.2.1
? 1.2.2
> 1.2.3= 1.2.x-dev
< 2.0.0
; 2.0.1
: 2.0.2
9 2.0.3
8 2.0.4
7 2.0.5
6 2.0.6
5 2.0.7
4 2.0.8
3 2.0.92 2.0.101 2.0.x-dev
0 2.1.0
/ 2.1.1
. 2.1.2
- 2.1.3
, 2.1.4
+ 2.1.5* 2.1.x-dev
) 2.2.0
( 2.2.1' 2.2.x-dev
& 2.3.0
% 2.3.1
$ 2.3.2
# 2.3.3
" 2.3.4
! 2.3.5
  2.3.6
 2.3.7 2.3.x-dev 3.0.x-dev !dev-master4 kdev-robinkanters-fix-array-to-string-conversion
 1.1.4
 1.1.5
 1.1.6
 1.1.7
 1.1.8
 1.2.0
 1.2.1
 1.2.2
 1.3.0
 1.4.0

 1.4.1
	 1.4.2
 1.4.3
 1.4.4
 1.4.5
 1.4.6
 1.4.7
 1.4.8 1.4.x-dev !dev-master
  1.0.3
 1.0.4
~ 1.0.5
} 1.0.6
| 1.0.7{ !dev-master
z 1.1.2
y 1.1.3
x 1.1.4
w 1.2.0
v 1.2.1u !dev-master
t 1.3.2
s 1.3.3
r 1.3.4
q 1.4.0
p 1.4.1o 1.4.x-devn !dev-master m Cdev-refactor/symfony-finderl ?dev-feature/path-coverage
k 1.2.0
j 1.2.1
i 1.2.2
h 1.2.3
g 1.2.6
f 1.2.7
e 1.2.8
d 1.2.9c 1.2.10b 1.2.11a 1.2.12` 1.2.13_ 1.2.14^ 1.2.15] 1.2.16    {jYL?2%sbUC2%l[M?2%xj\OB5(wj]PC6)








t
f
X
J
<
.
 

										x	k	^	Q	D	7	*			{naTG6(|k]OA3%	reXF5$reXK>1$
uh[NA4'	vi\OB1|n`RD6(               2.3.16 2.3.17 2.3.18 2.3.19
 2.3.20	 2.3.21 2.3.22 2.3.23 2.3.24 2.3.25 2.3.26 2.3.27 2.3.28 2.3.29  2.3.30 2.3.31~ 2.3.32} 2.3.x-dev| #2.4.0-BETA1{ #2.4.0-BETA2z 2.4.0-RC1
y 2.4.0
x 2.4.1
w 2.4.2
v 2.4.3
u 2.4.4
t 2.4.5
s 2.4.6
r 2.4.7
q 2.4.8
p 2.4.9o 2.4.10n 2.4.x-devm #2.5.0-BETA1l #2.5.0-BETA2k 2.5.0-RC1
j 2.5.0
i 2.5.1
h 2.5.2
g 2.5.3
f 2.5.4
e 2.5.5
d 2.5.6
c 2.5.7
b 2.5.8
a 2.5.9` 2.5.10_ 2.5.11^ 2.5.12] 2.5.x-dev\ #2.6.0-BETA1[ #2.6.0-BETA2
Z 2.6.0
Y 2.6.1
X 2.6.2
W 2.6.3
V 2.6.4
U 2.6.5
T 2.6.6
S 2.6.7
R 2.6.8
Q 2.6.9P 2.6.10O 2.6.11N 2.6.x-devM #2.7.0-BETA1L #2.7.0-BETA2
K 2.7.0
J 2.7.1
I 2.7.2
H 2.7.3
G 2.7.4F 2.7.x-devE 2.8.x-devD 3.0.x-devC !dev-master
B 2.0.4
A 2.0.5
@ 2.0.6
? 2.0.7
> 2.0.9= 2.0.10< 2.0.12; 2.0.13: 2.0.149 2.0.158 2.0.167 2.0.176 2.0.185 2.0.194 2.0.203 2.0.212 2.0.221 2.0.230 2.0.24/ 2.0.25. 2.0.x-dev
- 2.1.0
, 2.1.1
+ 2.1.2
* 2.1.3
) 2.1.4
( 2.1.5
' 2.1.6
& 2.1.7
% 2.1.8
$ 2.1.9# 2.1.10" 2.1.11! 2.1.12  2.1.13 2.1.x-dev
 2.2.0
 2.2.1
 2.2.2
 2.2.3
 2.2.4
 2.2.5
 2.2.6
 2.2.7
 2.2.8
 2.2.9 2.2.10 2.2.11 2.2.x-dev
 2.3.0
 2.3.1
 2.3.2
 2.3.3
 2.3.4
 2.3.5
 2.3.6

 2.3.7
	 2.3.8
 2.3.9 2.3.10 2.3.11 2.3.12 2.3.13 2.3.14 2.3.15 2.3.16  2.3.17 2.3.18~ 2.3.19} 2.3.20| 2.3.21{ 2.3.22z 2.3.23y 2.3.24x 2.3.25w 2.3.26v 2.3.27u 2.3.28t 2.3.29s 2.3.30r 2.3.31q 2.3.32p 2.3.x-devo #2.4.0-BETA1n #2.4.0-BETA2m 2.4.0-RC1
l 2.4.0
k 2.4.1
j 2.4.2
i 2.4.3
h 2.4.4
g 2.4.5
f 2.4.6
e 2.4.7
d 2.4.8
c 2.4.9b 2.4.10a 2.4.x-dev` #2.5.0-BETA1_ #2.5.0-BETA2^ 2.5.0-RC1
] 2.5.0
\ 2.5.1
[ 2.5.2
Z 2.5.3
Y 2.5.4
X 2.5.5
W 2.5.6
V 2.5.7
U 2.5.8
T 2.5.9S 2.5.10R 2.5.11Q 2.5.12P 2.5.x-devO #2.6.0-BETA1N #2.6.0-BETA2
M 2.6.0
L 2.6.1
K 2.6.2
J 2.6.3
I 2.6.4
H 2.6.5
G 2.6.6
F 2.6.7
E 2.6.8
D 2.6.9C 2.6.10B 2.6.11A 2.6.x-dev@ #2.7.0-BETA1? #2.7.0-BETA2
> 2.7.0
= 2.7.1
< 2.7.2
; 2.7.3
: 2.7.49 2.7.x-dev8 2.8.x-dev7 3.0.x-dev6 !dev-master
 1.0.0
 1.0.1 1.1.x-dev !dev-master
 2.0.0 2.1.x-dev !dev-master
 3.0.0
 3.0.3
 3.0.4 3.0.x-dev
 3.1.0
 3.2.0
 3.3.0
 3.3.1
 3.4.0

 3.5.0
	 3.6.0
 3.6.1
 3.6.2
 4.0.0
 4.0.1
 4.1.0 4.1.x-dev 4.2.x-dev !dev-master  )dev-issue-8145
 2.0.4
~ 2.0.5
} 2.0.6
| 2.0.7
{ 2.0.9z 2.0.10y 2.0.12    xk^QD7*{j\N@2%ugYK=/!ziXG:- reXK>1










u
h
[
N
=
*

											v	e	R	?	.	 		xj\N@2$wjYK=0#	reXK>1$
}oaSE7)|obO<+zgVH:,sbTG:- 
 2.4.4
 2.4.5
 2.4.6

 2.4.7
	 2.4.8
 2.4.9 2.4.10 2.4.x-dev #2.5.0-BETA1 #2.5.0-BETA2 2.5.0-RC1
 2.5.0
 2.5.1
  2.5.2
 2.5.3
~ 2.5.4
} 2.5.5
| 2.5.6
{ 2.5.7
z 2.5.8
y 2.5.9x 2.5.10w 2.5.11v 2.5.12u 2.5.x-devt #2.6.0-BETA1s #2.6.0-BETA2
r 2.6.0
q 2.6.1
p 2.6.2
o 2.6.3
n 2.6.4
m 2.6.5
l 2.6.6
k 2.6.7
j 2.6.8
i 2.6.9h 2.6.10g 2.6.11f 2.6.x-deve #2.7.0-BETA1d #2.7.0-BETA2
c 2.7.0
b 2.7.1
a 2.7.2
` 2.7.3
_ 2.7.4^ 2.7.x-dev] 2.8.x-dev\ 3.0.x-dev[ !dev-master
Z 2.0.4
Y 2.0.5
X 2.0.6
W 2.0.7
V 2.0.9U 2.0.10T 2.0.12S 2.0.13R 2.0.14Q 2.0.15P 2.0.16O 2.0.19N 2.0.20M 2.0.21L 2.0.22K 2.0.23J 2.0.24I 2.0.25H 2.0.x-dev
G 2.1.0
F 2.1.1
E 2.1.2
D 2.1.3
C 2.1.4
B 2.1.5
A 2.1.6
@ 2.1.7
? 2.1.8
> 2.1.9= 2.1.10< 2.1.11; 2.1.12: 2.1.139 2.1.x-dev
8 2.2.0
7 2.2.1
6 2.2.2
5 2.2.3
4 2.2.4
3 2.2.5
2 2.2.6
1 2.2.7
0 2.2.8
/ 2.2.9. 2.2.10- 2.2.11, 2.2.x-dev
+ 2.3.0
* 2.3.1
) 2.3.2
( 2.3.3
' 2.3.4
& 2.3.5
% 2.3.6
$ 2.3.7
# 2.3.8
" 2.3.9! 2.3.10  2.3.11 2.3.12 2.3.13 2.3.14 2.3.15 2.3.16 2.3.17 2.3.18 2.3.19 2.3.20 2.3.21 2.3.22 2.3.23 2.3.24 2.3.25 2.3.26 2.3.27 2.3.28 2.3.29 2.3.30 2.3.31 2.3.32
 2.3.x-dev	 #2.4.0-BETA1 #2.4.0-BETA2 2.4.0-RC1
 2.4.0
 2.4.1
 2.4.2
 2.4.3
 2.4.4
 2.4.5
  2.4.6
 2.4.7
~ 2.4.8
} 2.4.9| 2.4.10{ 2.4.x-devz #2.5.0-BETA1y #2.5.0-BETA2x 2.5.0-RC1
w 2.5.0
v 2.5.1
u 2.5.2
t 2.5.3
s 2.5.4
r 2.5.5
q 2.5.6
p 2.5.7
o 2.5.8
n 2.5.9m 2.5.10l 2.5.11k 2.5.12j 2.5.x-devi #2.6.0-BETA1h #2.6.0-BETA2
g 2.6.0
f 2.6.1
e 2.6.2
d 2.6.3
c 2.6.4
b 2.6.5
a 2.6.6
` 2.6.7
_ 2.6.8
^ 2.6.9] 2.6.10\ 2.6.11[ 2.6.x-devZ #2.7.0-BETA1Y #2.7.0-BETA2
X 2.7.0
W 2.7.1
V 2.7.2
U 2.7.3
T 2.7.4S 2.7.x-devR 2.8.x-devQ 3.0.x-devP !dev-master
O 2.0.4
N 2.0.5
M 2.0.6
L 2.0.7
K 2.0.9J 2.0.10I 2.0.12H 2.0.13G 2.0.14F 2.0.15E 2.0.16D 2.0.17C 2.0.18B 2.0.19A 2.0.20@ 2.0.21? 2.0.22> 2.0.23= 2.0.24< 2.0.25; 2.0.x-dev
: 2.1.0
9 2.1.1
8 2.1.2
7 2.1.3
6 2.1.4
5 2.1.5
4 2.1.6
3 2.1.7
2 2.1.8
1 2.1.90 2.1.10/ 2.1.11. 2.1.12- 2.1.13, 2.1.x-dev
+ 2.2.0
* 2.2.1
) 2.2.2
( 2.2.3
' 2.2.4
& 2.2.5
% 2.2.6
$ 2.2.7
# 2.2.8
" 2.2.9! 2.2.10  2.2.11 2.2.x-dev
 2.3.0
 2.3.1
 2.3.2
 2.3.3
 2.3.4
 2.3.5
 2.3.6
 2.3.7
 2.3.8
 2.3.9 2.3.10 2.3.11 2.3.12 2.3.13 2.3.14 2.3.15   	 vhZL>0"zl^PB5(yl_RE8+ zm`SF8&{m_RE8+








|
o
b
U
H
;
.
!

									}	p	c	V	I	<	/	"	xj\N@2$~qdWJ=0#tgVH:,}oaSE7)xXF5$reXK>1$
uh[NA4'	       
  2.5.0-RC1
	  2.5.0
  2.5.1
  2.5.2
  2.5.3
  2.5.4
  2.5.5
  2.5.6
  2.5.7
  2.5.8
   2.5.9  2.5.10~  2.5.11}  2.5.12|  2.5.x-dev{ # 2.6.0-BETA1z # 2.6.0-BETA2
y  2.6.0
x  2.6.1
w  2.6.2
v  2.6.3
u  2.6.4
t  2.6.5
s  2.6.6
r  2.6.7
q  2.6.8
p  2.6.9o  2.6.10n  2.6.11m  2.6.x-devl # 2.7.0-BETA1k # 2.7.0-BETA2
j  2.7.0
i  2.7.1
h  2.7.2
g  2.7.3
f  2.7.4e  2.7.x-devd  2.8.x-devc  3.0.x-devb ! dev-mastera =dev-poc-recursive-finder
` 2.0.4
_ 2.0.5
^ 2.0.6
] 2.0.7
\ 2.0.9[ 2.0.10Z 2.0.12Y 2.0.13X 2.0.14W 2.0.15V 2.0.16U 2.0.17T 2.0.18S 2.0.19R 2.0.20Q 2.0.21P 2.0.22O 2.0.23N 2.0.24M 2.0.25L 2.0.x-dev
K 2.1.0
J 2.1.1
I 2.1.2
H 2.1.3
G 2.1.4
F 2.1.5
E 2.1.6
D 2.1.7
C 2.1.8
B 2.1.9A 2.1.10@ 2.1.11? 2.1.12> 2.1.13= 2.1.x-dev
< 2.2.0
; 2.2.1
: 2.2.2
9 2.2.3
8 2.2.4
7 2.2.5
6 2.2.6
5 2.2.7
4 2.2.8
3 2.2.92 2.2.101 2.2.110 2.2.x-dev
/ 2.3.0
. 2.3.1
- 2.3.2
, 2.3.3
+ 2.3.4
* 2.3.5
) 2.3.6
( 2.3.7
' 2.3.8
& 2.3.9% 2.3.10$ 2.3.11# 2.3.12" 2.3.13! 2.3.14  2.3.15 2.3.16 2.3.17 2.3.18 2.3.19 2.3.20 2.3.21 2.3.22 2.3.23 2.3.24 2.3.25 2.3.26 2.3.27 2.3.28 2.3.29 2.3.30 2.3.31 2.3.32 2.3.x-dev #2.4.0-BETA1 #2.4.0-BETA2 2.4.0-RC1

 2.4.0
	 2.4.1
 2.4.2
 2.4.3
 2.4.4
 2.4.5
 2.4.6
 2.4.7
 2.4.8
 2.4.9  2.4.10 2.4.x-dev~ #2.5.0-BETA1} #2.5.0-BETA2| 2.5.0-RC1
{ 2.5.0
z 2.5.1
y 2.5.2
x 2.5.3
w 2.5.4
v 2.5.5
u 2.5.6
t 2.5.7
s 2.5.8
r 2.5.9q 2.5.10p 2.5.11o 2.5.12n 2.5.x-devm #2.6.0-BETA1l #2.6.0-BETA2
k 2.6.0
j 2.6.1
i 2.6.2
h 2.6.3
g 2.6.4
f 2.6.5
e 2.6.6
d 2.6.7
c 2.6.8
b 2.6.9a 2.6.10` 2.6.11_ 2.6.x-dev^ #2.7.0-BETA1] #2.7.0-BETA2
\ 2.7.0
[ 2.7.1
Z 2.7.2
Y 2.7.3
X 2.7.4W 2.7.x-devV 2.8.x-devU 3.0.x-devT !dev-masterS 2.0.16
R 2.1.0
Q 2.1.1
P 2.1.2
O 2.1.3
N 2.1.4
M 2.1.5
L 2.1.6
K 2.1.7
J 2.1.8
I 2.1.9H 2.1.10G 2.1.11F 2.1.12E 2.1.13D 2.1.x-dev
C 2.2.0
B 2.2.1
A 2.2.2
@ 2.2.3
? 2.2.4
> 2.2.5
= 2.2.6
< 2.2.7
; 2.2.8
: 2.2.99 2.2.108 2.2.117 2.2.x-dev
6 2.3.0
5 2.3.1
4 2.3.2
3 2.3.3
2 2.3.4
1 2.3.5
0 2.3.6
/ 2.3.7
. 2.3.8
- 2.3.9, 2.3.10+ 2.3.11* 2.3.12) 2.3.13( 2.3.14' 2.3.15& 2.3.16% 2.3.17$ 2.3.18# 2.3.19" 2.3.20! 2.3.21  2.3.22 2.3.23 2.3.24 2.3.25 2.3.26 2.3.27 2.3.28 2.3.29 2.3.30 2.3.31 2.3.32 2.3.x-dev #2.4.0-BETA1 #2.4.0-BETA2 2.4.0-RC1
 2.4.0
 2.4.1
 2.4.2
 2.4.3    zm`SF9(seWI;-{naTG:- ~m_QC5(xj\N@2$









}
p
c
V
I
<
/
"

								y	l	?	xk^QD7#j8{b;{naTG:- paRC4%xgZMB/	}pcVI</"             $ !(dev-master# '1.0" '1.1
! '1.1.1
  '1.1.2
 '1.2.0
 '1.2.1
 '1.2.2
 '1.2.3
 '1.2.4
 '1.2.5
 '1.2.6
 '1.2.7 '1.3.x-dev !'dev-master
 &1.0.0
 &1.1.0 !&dev-master
 %1.0.0
 %1.1.0 %2.0.x-dev !%dev-master# I$dev-feature/upgrade-to-pimple3 #$dev-develop $0.1
 $1.0.0

 $1.0.1	 $1.0.x-dev
 $1.1.0 $2.0.x-dev !$dev-master /#dev-release-2.0.1 /#dev-release-2.0.2& O#dev-revert-1363-avoid-assert-true ##dev-develop #2.0.0a3  #2.0.0a4 #2.0.0a5~ #2.0.0a7} #2.0.0a8| #2.0.0a9{ #2.0.0a10z #2.0.0a11y #2.0.0b1x #2.0.0b2w #2.0.0b3v #2.0.0b4u #2.0.0b5t #2.0.0b6s #2.0.0b7
r #2.0.0
q #2.0.1
p #2.1.0
o #2.2.0
n #2.3.0
m #2.3.1
l #2.3.2
k #2.4.0
j #2.5.0
i #2.6.0
h #2.6.1
g #2.7.0
f #2.7.1
e #2.8.0
d #2.8.1
c #2.8.2
b #2.8.3
a #2.8.4
` #2.8.5_ #3.0.x-dev^ !#dev-master%4 M"dev-file-cache-garbage-collector$3 K"dev-torinaki-HHVM-support-fixes2 /"dev-release-1.1.x11 e"dev-gh-143-truncated-output-on-iso8859-input00 c"dev-GH193_parallel-execution-cache-conflict3/ i"dev-GH197_DOMNode-cloneNode-ID-already-defined. ="dev-GH202_epsillon_token/- a"dev-bugfix/gh213-missing-constants-in-php79, u"dev-bugfix/gh-214-php7-scalar-type-hints-are-missing
+ "1.0.6
* "1.0.7
) "1.1.0
( "1.1.1
' "1.1.3& %"2.0.0-beta.1% %"2.0.0-beta.2$ %"2.0.0-beta.3# %"2.0.0-beta.4
" "2.0.0
! "2.0.1
  "2.0.2
 "2.0.3
 "2.0.4
 "2.0.5
 "2.0.6
 "2.1.0
 "2.2.0 !"dev-master  C!dev-composer-caret-operator !dev-GH77$ K!dev-GH100-ptlis-exclude-pattern$ K!dev-GH176-NestedTernaryOperator* W!dev-GH265_Search-for-development-code
 !1.4.0
 !1.4.1
 !1.5.0
 !1.5.1 !1.5.x-dev %!2.0.0-beta.1 %!2.0.0-beta.3 %!2.0.0-beta.4 %!2.0.0-beta.6
 %!2.0.0-beta.7
	 !2.0.0
 !2.1.1
 !2.1.2
 !2.1.3
 !2.2.0
 !2.2.1
 !2.2.2
 !2.2.3 !!dev-master
n  2.0.4
m  2.0.5
l  2.0.6
k  2.0.7
j  2.0.9i  2.0.10h  2.0.12g  2.0.13f  2.0.14e  2.0.15d  2.0.16c  2.0.17b  2.0.18a  2.0.19`  2.0.20_  2.0.21^  2.0.22]  2.0.23\  2.0.24[  2.0.25Z  2.0.x-dev
Y  2.1.0
X  2.1.1
W  2.1.2
V  2.1.3
U  2.1.4
T  2.1.5
S  2.1.6
R  2.1.7
Q  2.1.8
P  2.1.9O  2.1.10N  2.1.11M  2.1.12L  2.1.13K  2.1.x-dev
J  2.2.0
I  2.2.1
H  2.2.2
G  2.2.3
F  2.2.4
E  2.2.5
D  2.2.6
C  2.2.7
B  2.2.8
A  2.2.9@  2.2.10?  2.2.11>  2.2.x-dev
=  2.3.0
<  2.3.1
;  2.3.2
:  2.3.3
9  2.3.4
8  2.3.5
7  2.3.6
6  2.3.7
5  2.3.8
4  2.3.93  2.3.102  2.3.111  2.3.120  2.3.13/  2.3.14.  2.3.15-  2.3.16,  2.3.17+  2.3.18*  2.3.19)  2.3.20(  2.3.21'  2.3.22&  2.3.23%  2.3.24$  2.3.25#  2.3.26"  2.3.27!  2.3.28   2.3.29  2.3.30  2.3.31  2.3.32  2.3.x-dev # 2.4.0-BETA1 # 2.4.0-BETA2  2.4.0-RC1
  2.4.0
  2.4.1
  2.4.2
  2.4.3
  2.4.4
  2.4.5
  2.4.6
  2.4.7
  2.4.8
  2.4.9  2.4.10  2.4.x-dev # 2.5.0-BETA1 # 2.5.0-BETA2   
 wj]PC6)ygZM@3&}pcVI</"tcVI</tgZJ=









v
h
Z
H
;
*


											t	g	Z	M	3	!		~pbTF9,veSB/ zi\OB5(~kXF9,uh[NA4' |obUH;)xYG6)
              
\ :1.3.1[ !:dev-master
Z 91.0.0Y 91.0.x-devX !9dev-masterW ;8dev-circular-references
V 81.0.0
U 81.0.1
T 81.0.2
S 81.1.0
R 81.1.1Q 81.1.x-dev
P 82.0.0
O 82.1.0
N 82.1.1
M 83.0.0
L 83.0.1
K 83.0.2J 83.0.x-devI !8dev-master
H 70.9.0
G 71.0.0
F 71.1.0
E 71.2.0
D 71.3.0C 71.3.x-dev
B 71.4.0
A 71.5.0@ !7dev-master) #6dev-develop
( 60.1.0
' 60.1.1
& 60.1.2
% 60.1.3
$ 60.1.4
# 60.1.5
" 60.1.6
! 60.1.7
  60.1.8
 60.1.9
 61.0.0
 61.0.1
 61.0.2
 61.0.3
 61.0.4
 61.0.5
 61.0.6
 61.0.7 61.0.x-dev !6dev-masterl #51.0.0-beta1k #51.0.0-beta2j #51.0.0-beta3
i 51.0.0
h 51.0.1
g 51.0.2
f 51.0.3e !5dev-masterd #41.0.0-beta1c #41.0.0-beta2
b 41.0.0a !4dev-master
` 30.1.0
_ 30.2.0
^ 30.3.0
] 30.3.1
\ 30.4.0[ 30.4.x-devZ !3dev-masterY 12dev-errorRecovery2
X 20.9.0
W 20.9.1
V 20.9.2
U 20.9.3
T 20.9.4
S 20.9.5R 20.9.x-devQ !21.0.0beta1P !21.0.0beta2
O 21.0.0
N 21.0.1
M 21.0.2
L 21.1.0
K 21.2.0
J 21.2.1
I 21.2.2
H 21.3.0
G 21.4.0
F 21.4.1E 21.x-devD #22.0.0alpha1C 22.0.x-devB !2dev-masterA 11.0.0-RC1
@ 11.0.0
? 11.0.1
> 11.0.2
= 11.1.0
< 11.2.0
; 11.2.1
: 11.3.0
9 11.3.1
8 11.4.0
7 11.4.1
6 11.5.0
5 11.6.0
4 11.7.0
3 11.8.0
2 11.9.0
1 11.9.10 11.10.0/ 11.11.0. 11.12.0- 11.13.0, 11.13.1+ 11.14.0* 11.15.0) 11.16.0( !11.16.x-dev' 11.17.0& 11.17.1% !1dev-master
$ 01.0.0
# 01.0.1" 01.0.x-dev! !0dev-master  1/dev-schema-builder
 /1.1.0
 /1.2.1
 /1.2.3
 /1.2.4
 /1.3.0
 /1.3.1
 /1.3.2
 /1.3.3
 /1.3.4
 /1.3.5
 /1.3.6
 /1.3.7
 /1.4.0
 /1.4.1
 /1.4.2
 /1.4.3
 /1.4.4 /1.4.x-dev
 /1.5.0 !/dev-master .0.11.0
 .0.12.0	 .0.13.0 .0.14.0 .0.15.0 .0.16.0
 .1.0.0 .1.1.x-dev !.dev-master
 -1.0.0 -1.1.x-dev  !-dev-master ,dev-test~ ;,dev-scrutinizer-patch-1
} ,1.1.1| ,1.2.0-RC
{ ,1.3.0
z ,1.4.0
y ,1.4.1
x ,1.4.2
w ,1.5.0
v ,1.5.1u ,1.5.x-devt !,dev-master
s +1.0.0
r +1.0.1
q +1.0.2
p +1.0.3
o +2.0.0n +2.0.x-devm !+dev-master
l *1.0.0
k *1.0.1
j *1.0.2
i *1.0.3h *1.0.x-devg !*dev-master
f )0.1.0
e )0.1.1
d )0.1.2
c )0.1.3
b )0.1.4
a )0.1.5
` )0.2.0
_ )0.2.1
^ )0.3.0
] )0.4.0
\ )0.4.1
[ )0.4.2
Z )0.4.3
Y )0.4.4
X )0.4.5
W )0.4.6
V )0.4.7
U )0.4.8
T )0.5.0
S )0.6.0
R )0.7.0
Q )0.7.1
P )0.7.2
O )0.7.3
N )0.7.4
M )0.7.5
L )0.7.6
K )0.7.7
J )0.8.0
I )0.8.1
H )0.8.2
G )0.8.3
F )0.9.0
E )0.9.1
D )0.9.2
C )0.9.3
B )0.9.4A !)1.0.0-rc.1@ !)1.0.0-rc.2? !)1.0.0-rc.3> !)1.0.0-rc.4= !)1.0.0-rc.5
< )1.0.0
; )1.0.1
: )1.1.0
9 )1.1.1
8 )1.1.2
7 )1.1.3
6 )1.1.4
5 )1.2.0
4 )1.3.0
3 )1.4.0
2 )1.4.1
1 )1.4.2
0 )1.4.3
/ )1.4.4
. )1.4.5
- )1.5.0
, )1.5.1
+ )1.5.2
* )1.5.3
) )1.5.4( !)dev-master' (1.0
& (1.0.1% (1.0.x-dev    q`SF9,~qdWJ7$tgVC0~kXG9+ugYK=/!










r
d
V
I
<
/
"

										u	h	[	N	;	(			yfSB4&r_N@3&vhZL>0"zl^PB4' xk^QD7*yl_RE8'qcUH;.!                  
 <2.0.4
 <2.0.5
 <2.0.6
 <2.0.7
 <2.0.9 <2.0.10 <2.0.12 <2.0.13 <2.0.14 <2.0.15
 <2.0.16	 <2.0.17 <2.0.18 <2.0.19 <2.0.20 <2.0.21 <2.0.22 <2.0.23 <2.0.24 <2.0.25  <2.0.x-dev
 <2.1.0
~ <2.1.1
} <2.1.2
| <2.1.3
{ <2.1.4
z <2.1.5
y <2.1.6
x <2.1.7
w <2.1.8
v <2.1.9u <2.1.10t <2.1.11s <2.1.12r <2.1.13q <2.1.x-dev
p <2.2.0
o <2.2.1
n <2.2.2
m <2.2.3
l <2.2.4
k <2.2.5
j <2.2.6
i <2.2.7
h <2.2.8
g <2.2.9f <2.2.10e <2.2.11d <2.2.x-dev
c <2.3.0
b <2.3.1
a <2.3.2
` <2.3.3
_ <2.3.4
^ <2.3.5
] <2.3.6
\ <2.3.7
[ <2.3.8
Z <2.3.9Y <2.3.10X <2.3.11W <2.3.12V <2.3.13U <2.3.14T <2.3.15S <2.3.16R <2.3.17Q <2.3.18P <2.3.19O <2.3.20N <2.3.21M <2.3.22L <2.3.23K <2.3.24J <2.3.25I <2.3.26H <2.3.27G <2.3.28F <2.3.29E <2.3.30D <2.3.31C <2.3.32B <2.3.x-devA #<2.4.0-BETA1@ #<2.4.0-BETA2? <2.4.0-RC1
> <2.4.0
= <2.4.1
< <2.4.2
; <2.4.3
: <2.4.4
9 <2.4.5
8 <2.4.6
7 <2.4.7
6 <2.4.8
5 <2.4.94 <2.4.103 <2.4.x-dev2 #<2.5.0-BETA11 #<2.5.0-BETA20 <2.5.0-RC1
/ <2.5.0
. <2.5.1
- <2.5.2
, <2.5.3
+ <2.5.4
* <2.5.5
) <2.5.6
( <2.5.7
' <2.5.8
& <2.5.9% <2.5.10$ <2.5.11# <2.5.12" <2.5.x-dev! #<2.6.0-BETA1  #<2.6.0-BETA2
 <2.6.0
 <2.6.1
 <2.6.2
 <2.6.3
 <2.6.4
 <2.6.5
 <2.6.6
 <2.6.7
 <2.6.8
 <2.6.9 <2.6.10 <2.6.11 <2.6.x-dev #<2.7.0-BETA1 #<2.7.0-BETA2
 <2.7.0
 <2.7.1
 <2.7.2
 <2.7.3
 <2.7.4 <2.7.x-dev
 <2.8.x-dev	 <3.0.x-dev !<dev-master
 ;2.2.0
 ;2.2.1
 ;2.2.2
 ;2.2.3
 ;2.2.4
 ;2.2.5
 ;2.2.6
  ;2.2.7
 ;2.2.8
~ ;2.2.9} ;2.2.10| ;2.2.11{ ;2.2.x-dev
z ;2.3.0
y ;2.3.1
x ;2.3.2
w ;2.3.3
v ;2.3.4
u ;2.3.5
t ;2.3.6
s ;2.3.7
r ;2.3.8
q ;2.3.9p ;2.3.10o ;2.3.11n ;2.3.12m ;2.3.13l ;2.3.14k ;2.3.15j ;2.3.16i ;2.3.17h ;2.3.18g ;2.3.19f ;2.3.20e ;2.3.21d ;2.3.22c ;2.3.23b ;2.3.24a ;2.3.25` ;2.3.26_ ;2.3.27^ ;2.3.28] ;2.3.29\ ;2.3.30[ ;2.3.31Z ;2.3.32Y ;2.3.x-devX #;2.4.0-BETA1W #;2.4.0-BETA2V ;2.4.0-RC1
U ;2.4.0
T ;2.4.1
S ;2.4.2
R ;2.4.3
Q ;2.4.4
P ;2.4.5
O ;2.4.6
N ;2.4.7
M ;2.4.8
L ;2.4.9K ;2.4.10J ;2.4.x-devI #;2.5.0-BETA1H #;2.5.0-BETA2G ;2.5.0-RC1
F ;2.5.0
E ;2.5.1
D ;2.5.2
C ;2.5.3
B ;2.5.4
A ;2.5.5
@ ;2.5.6
? ;2.5.7
> ;2.5.8
= ;2.5.9< ;2.5.10; ;2.5.11: ;2.5.129 ;2.5.x-dev8 #;2.6.0-BETA17 #;2.6.0-BETA2
6 ;2.6.0
5 ;2.6.1
4 ;2.6.2
3 ;2.6.3
2 ;2.6.4
1 ;2.6.5
0 ;2.6.6
/ ;2.6.7
. ;2.6.8
- ;2.6.9, ;2.6.10+ ;2.6.11* ;2.6.x-dev) #;2.7.0-BETA1( #;2.7.0-BETA2
' ;2.7.0
& ;2.7.1
% ;2.7.2
$ ;2.7.3
# ;2.7.4" ;2.7.x-dev! ;2.8.x-dev  ;3.0.x-dev !;dev-master
c :1.0.0
b :1.0.1
a :1.1.0
` :1.1.1
_ :1.1.2
^ :1.2.0
] :1.3.0    zgTC5' n`RD7*zl_RE8+xj\N@2$|n`SF9,









}
p
c
V
I
<
/


										~	q	d	S	E	7	)		tgZM@*yk]OA3%	}oaSA3%	xk^QD7*tgZM@3&uh[NA4&tgZM@3&          
 ?2.0.8
 ?2.1.0
 ?2.1.1
 ?2.1.2
 ?2.1.3
 ?2.1.4
 ?2.1.5

 ?2.1.6	 ?2.2.0rc1 ?2.2.0rc2 ?2.2.0rc3
 ?2.2.0
 ?2.2.1
 ?2.2.2
 ?2.2.3
 ?2.2.4
 ?2.2.5
  ?2.2.6
 ?2.2.7
~ ?2.2.8
} ?2.2.9| ?2.2.10
{ ?2.3.0
z ?2.3.1
y ?2.3.2
x ?2.3.3
w ?2.3.4
v ?2.3.5
u ?2.3.6
t ?2.3.7
s ?2.3.8
r ?2.3.9q ?2.4.0rc1p ?2.4.0rc2o ?2.4.0rc3n ?2.4.0rc4m ?2.4.0rc5l ?2.4.0rc6k ?2.4.0rc7
j ?2.4.0
i ?2.4.1
h ?2.4.2
g ?2.4.3
f ?2.4.4
e ?2.4.5
d ?2.4.6
c ?2.4.7
b ?2.4.8
a ?2.5.0
` ?2.5.1
_ ?2.5.2
^ ?2.5.3] ?2.5.x-dev\ ?2.6.x-dev[ !?dev-master
Z >1.3.0
Y >1.4.0
X >1.5.0
W >1.5.1
V >1.6.0
U >1.6.1
T >1.6.2
S >1.6.3
R >1.6.4
Q >1.6.5
P >1.7.0
O >1.8.0
N >1.8.1
M >1.8.2
L >1.8.3
K >1.9.0
J >1.9.1
I >1.9.2H >1.10.0G >1.10.1F >1.10.2E >1.10.3D >1.11.0C >1.11.1B !>1.12.0-RC1A >1.12.0@ >1.12.1? >1.12.2> >1.12.3= >1.13.0< >1.13.1; >1.13.2: >1.14.09 >1.14.18 >1.14.27 >1.15.06 >1.15.15 >1.16.04 >1.16.13 >1.16.22 >1.16.31 >1.17.00 >1.18.0/ >1.18.1. >1.18.2- >1.19.0, >1.20.0+ >1.21.0* >1.21.1) >1.21.2( >1.22.0' >1.22.1& >1.x-dev% >2.0.x-dev$ !>dev-master(# S=dev-fix-validator-legacy-dependency" )=dev-issue10677
! =2.0.4
  =2.0.5
 =2.0.6
 =2.0.7
 =2.0.9 =2.0.10 =2.0.12 =2.0.13 =2.0.14 =2.0.15 =2.0.16 =2.0.17 =2.0.18 =2.0.19 =2.0.20 =2.0.21 =2.0.22 =2.0.23 =2.0.24 =2.0.25 =2.0.x-dev
 =2.1.0
 =2.1.1

 =2.1.2
	 =2.1.3
 =2.1.4
 =2.1.5
 =2.1.6
 =2.1.7
 =2.1.8
 =2.1.9 =2.1.10 =2.1.11  =2.1.12 =2.1.13~ =2.1.x-dev
} =2.2.0
| =2.2.1
{ =2.2.2
z =2.2.3
y =2.2.4
x =2.2.5
w =2.2.6
v =2.2.7
u =2.2.8
t =2.2.9s =2.2.10r =2.2.11q =2.2.x-dev
p =2.3.0
o =2.3.1
n =2.3.2
m =2.3.3
l =2.3.4
k =2.3.5
j =2.3.6
i =2.3.7
h =2.3.8
g =2.3.9f =2.3.10e =2.3.11d =2.3.12c =2.3.13b =2.3.14a =2.3.15` =2.3.16_ =2.3.17^ =2.3.18] =2.3.19\ =2.3.20[ =2.3.21Z =2.3.22Y =2.3.23X =2.3.24W =2.3.25V =2.3.26U =2.3.27T =2.3.28S =2.3.29R =2.3.30Q =2.3.31P =2.3.32O =2.3.x-devN #=2.4.0-BETA1M #=2.4.0-BETA2L =2.4.0-RC1
K =2.4.0
J =2.4.1
I =2.4.2
H =2.4.3
G =2.4.4
F =2.4.5
E =2.4.6
D =2.4.7
C =2.4.8
B =2.4.9A =2.4.10@ =2.4.x-dev? #=2.5.0-BETA1> #=2.5.0-BETA2= =2.5.0-RC1
< =2.5.0
; =2.5.1
: =2.5.2
9 =2.5.3
8 =2.5.4
7 =2.5.5
6 =2.5.6
5 =2.5.7
4 =2.5.8
3 =2.5.92 =2.5.101 =2.5.110 =2.5.12/ =2.5.x-dev. #=2.6.0-BETA1- #=2.6.0-BETA2
, =2.6.0
+ =2.6.1
* =2.6.2
) =2.6.3
( =2.6.4
' =2.6.5
& =2.6.6
% =2.6.7
$ =2.6.8
# =2.6.9" =2.6.10! =2.6.11  =2.6.x-dev #=2.7.0-BETA1 #=2.7.0-BETA2
 =2.7.0
 =2.7.1
 =2.7.2
 =2.7.3
 =2.7.4 =2.7.x-dev =2.8.x-dev =3.0.x-dev !=dev-master    sfYL?2%tgZM@3&|obRB2%vdRA0#	tdTD4$











z
m
`
S
F
9
,


										z	m	`	S	F	9	&		xk^QA1!yl_QD7*xk^QD7*vi\OB5(wj]PC6)|l\OB5(|kZM@3&    
 D2.4.6
 D2.4.7
 D2.4.8
 D2.5.0
 D2.5.1
 D2.5.2 D2.5.x-dev
 D2.6.x-dev	 !Ddev-master !Cdev-legacy #Cdev-develop
 C2.0.3
 C2.0.4
 C2.0.5
 C2.0.6
 C2.0.7
 C2.0.8
  C2.1.0
 C2.1.1
~ C2.1.2
} C2.1.3
| C2.1.4
{ C2.1.5
z C2.1.6y C2.2.0rc1x C2.2.0rc2w C2.2.0rc3
v C2.2.0
u C2.2.1
t C2.2.2
s C2.2.3
r C2.2.4
q C2.2.5
p C2.2.6
o C2.2.7
n C2.2.8
m C2.2.9l C2.2.10
k C2.3.0
j C2.3.1
i C2.3.2
h C2.3.3
g C2.3.4
f C2.3.5
e C2.3.6
d C2.3.7
c C2.3.8
b C2.3.9a C2.4.0rc1` C2.4.0rc2_ C2.4.0rc3^ C2.4.0rc4] C2.4.0rc5\ C2.4.0rc6[ C2.4.0rc7
Z C2.4.0
Y C2.4.1
X C2.4.2
W C2.4.3
V C2.4.4
U C2.4.5
T C2.4.6
S C2.4.7
R C2.4.8
Q C2.5.0
P C2.5.1O C2.5.x-devN C2.6.x-devM !Cdev-masterL !Bdev-legacyK #Bdev-develop
J B2.0.3
I B2.0.4
H B2.0.5
G B2.0.6
F B2.0.7
E B2.0.8
D B2.1.0
C B2.1.1
B B2.1.2
A B2.1.3
@ B2.1.4
? B2.1.5
> B2.1.6= B2.2.0rc1< B2.2.0rc2; B2.2.0rc3
: B2.2.0
9 B2.2.1
8 B2.2.2
7 B2.2.3
6 B2.2.4
5 B2.2.5
4 B2.2.6
3 B2.2.7
2 B2.2.8
1 B2.2.90 B2.2.10
/ B2.3.0
. B2.3.1
- B2.3.2
, B2.3.3
+ B2.3.4
* B2.3.5
) B2.3.6
( B2.3.7
' B2.3.8
& B2.3.9% B2.4.0rc1$ B2.4.0rc2# B2.4.0rc3" B2.4.0rc4! B2.4.0rc5  B2.4.0rc6 B2.4.0rc7
 B2.4.0
 B2.4.1
 B2.4.2
 B2.4.3
 B2.4.4
 B2.4.5
 B2.4.6
 B2.4.7
 B2.4.8
 B2.5.0
 B2.5.1 B2.5.x-dev B2.6.x-dev !Bdev-master !Adev-legacy #Adev-develop
 A2.0.3
 A2.0.4
 A2.0.5
 A2.0.6

 A2.0.7
	 A2.0.8
 A2.1.0
 A2.1.1
 A2.1.2
 A2.1.3
 A2.1.4
 A2.1.5
 A2.1.6 A2.2.0rc1  A2.2.0rc2 A2.2.0rc3
~ A2.2.0
} A2.2.1
| A2.2.2
{ A2.2.3
z A2.2.4
y A2.2.5
x A2.2.6
w A2.2.7
v A2.2.8
u A2.2.9t A2.2.10
s A2.3.0
r A2.3.1
q A2.3.2
p A2.3.3
o A2.3.4
n A2.3.5
m A2.3.6
l A2.3.7
k A2.3.8
j A2.3.9i A2.4.0rc1h A2.4.0rc2g A2.4.0rc3f A2.4.0rc4e A2.4.0rc5d A2.4.0rc6c A2.4.0rc7
b A2.4.0
a A2.4.1
` A2.4.2
_ A2.4.3
^ A2.4.4
] A2.4.5
\ A2.4.6
[ A2.4.7
Z A2.4.8
Y A2.5.0
X A2.5.1
W A2.5.2V A2.5.x-devU A2.6.x-devT !Adev-masterS !@dev-legacyR #@dev-develop
Q @2.0.3
P @2.0.4
O @2.0.5
N @2.0.6
M @2.0.7
L @2.0.8
K @2.1.0
J @2.1.1
I @2.1.2
H @2.1.3
G @2.1.4
F @2.1.5
E @2.1.6D @2.2.0rc1C @2.2.0rc2B @2.2.0rc3
A @2.2.0
@ @2.2.1
? @2.2.2
> @2.2.3
= @2.2.4
< @2.2.5
; @2.2.6
: @2.2.7
9 @2.2.8
8 @2.2.97 @2.2.10
6 @2.3.0
5 @2.3.1
4 @2.3.2
3 @2.3.3
2 @2.3.4
1 @2.3.5
0 @2.3.6
/ @2.3.7
. @2.3.8
- @2.3.9, @2.4.0rc1+ @2.4.0rc2* @2.4.0rc3) @2.4.0rc4( @2.4.0rc5' @2.4.0rc6& @2.4.0rc7
% @2.4.0
$ @2.4.1
# @2.4.2
" @2.4.3
! @2.4.4
  @2.4.5
 @2.4.6
 @2.4.7
 @2.4.8
 @2.5.0
 @2.5.1 @2.5.x-dev @2.6.x-dev !@dev-master !?dev-legacy #?dev-develop
 ?2.0.3
 ?2.0.5
 ?2.0.6
 ?2.0.7    rbRB5(~qdWJ=0  ~qdWD2 |o_O?/}obUH;.!









|
o
b
U
H
;
.
!

									z	m	`	S	F	9	,		{naTG:,zm`SF9,xk^QD7*|l_RE8+tgZJ:*n\J9(o_O?/        H2.4.0rc1 H2.4.0rc2 H2.4.0rc3 H2.4.0rc4 H2.4.0rc5 H2.4.0rc6 H2.4.0rc7

 H2.4.0
	 H2.4.1
 H2.4.2
 H2.4.3
 H2.4.4
 H2.4.5
 H2.4.6
 H2.4.7
 H2.4.8
 H2.5.0
  H2.5.1
 H2.5.2
~ H2.6.0} H2.6.x-dev| H2.7.x-dev{ !Hdev-masterz !Gdev-legacyy #Gdev-develop
x G2.0.3
w G2.0.4
v G2.0.5
u G2.0.6
t G2.0.7
s G2.0.8
r G2.1.0
q G2.1.1
p G2.1.2
o G2.1.3
n G2.1.4
m G2.1.5
l G2.1.6k G2.2.0rc1j G2.2.0rc2i G2.2.0rc3
h G2.2.0
g G2.2.1
f G2.2.2
e G2.2.3
d G2.2.4
c G2.2.5
b G2.2.6
a G2.2.7
` G2.2.8
_ G2.2.9^ G2.2.10
] G2.3.0
\ G2.3.1
[ G2.3.2
Z G2.3.3
Y G2.3.4
X G2.3.5
W G2.3.6
V G2.3.7
U G2.3.8
T G2.3.9S G2.4.0rc1R G2.4.0rc2Q G2.4.0rc3P G2.4.0rc4O G2.4.0rc5N G2.4.0rc6M G2.4.0rc7
L G2.4.0
K G2.4.1
J G2.4.2
I G2.4.3
H G2.4.4
G G2.4.5
F G2.4.6
E G2.4.7
D G2.4.8
C G2.5.0
B G2.5.1
A G2.6.0@ G2.6.x-dev? G3.0.x-dev> !Gdev-master= !Fdev-legacy< #Fdev-develop
; F2.0.3
: F2.0.4
9 F2.0.5
8 F2.0.6
7 F2.0.7
6 F2.0.8
5 F2.1.0
4 F2.1.1
3 F2.1.2
2 F2.1.3
1 F2.1.4
0 F2.1.5
/ F2.1.6. F2.2.0rc1- F2.2.0rc2, F2.2.0rc3
+ F2.2.0
* F2.2.1
) F2.2.2
( F2.2.3
' F2.2.4
& F2.2.5
% F2.2.6
$ F2.2.7
# F2.2.8
" F2.2.9! F2.2.10
  F2.3.0
 F2.3.1
 F2.3.2
 F2.3.3
 F2.3.4
 F2.3.5
 F2.3.6
 F2.3.7
 F2.3.8
 F2.3.9 F2.4.0rc1 F2.4.0rc2 F2.4.0rc3 F2.4.0rc4 F2.4.0rc5 F2.4.0rc6 F2.4.0rc7
 F2.4.0
 F2.4.1
 F2.4.2
 F2.4.3
 F2.4.4

 F2.4.5
	 F2.4.6
 F2.4.7
 F2.4.8
 F2.5.0
 F2.5.1 F2.5.x-dev F2.6.x-dev !Fdev-master !Edev-legacy  #Edev-develop
 E2.0.3
~ E2.0.4
} E2.0.5
| E2.0.6
{ E2.0.7
z E2.0.8
y E2.1.0
x E2.1.1
w E2.1.2
v E2.1.3
u E2.1.4
t E2.1.5
s E2.1.6r E2.2.0rc1q E2.2.0rc2p E2.2.0rc3
o E2.2.0
n E2.2.1
m E2.2.2
l E2.2.3
k E2.2.4
j E2.2.5
i E2.2.6
h E2.2.7
g E2.2.8
f E2.2.9e E2.2.10
d E2.3.0
c E2.3.1
b E2.3.2
a E2.3.3
` E2.3.4
_ E2.3.5
^ E2.3.6
] E2.3.7
\ E2.3.8
[ E2.3.9Z E2.4.0rc1Y E2.4.0rc2X E2.4.0rc3W E2.4.0rc4V E2.4.0rc5U E2.4.0rc6T E2.4.0rc7
S E2.4.0
R E2.4.1
Q E2.4.2
P E2.4.3
O E2.4.4
N E2.4.5
M E2.4.6
L E2.4.7
K E2.4.8
J E2.5.0
I E2.5.1H E2.5.x-devG E2.6.x-devF !Edev-masterE !Ddev-legacyD #Ddev-develop
C D2.0.3
B D2.0.4
A D2.0.5
@ D2.0.6
? D2.0.7
> D2.0.8
= D2.1.0
< D2.1.1
; D2.1.2
: D2.1.3
9 D2.1.4
8 D2.1.5
7 D2.1.66 D2.2.0rc15 D2.2.0rc24 D2.2.0rc3
3 D2.2.0
2 D2.2.1
1 D2.2.2
0 D2.2.3
/ D2.2.4
. D2.2.5
- D2.2.6
, D2.2.7
+ D2.2.8
* D2.2.9) D2.2.10
( D2.3.0
' D2.3.1
& D2.3.2
% D2.3.3
$ D2.3.4
# D2.3.5
" D2.3.6
! D2.3.7
  D2.3.8
 D2.3.9 D2.4.0rc1 D2.4.0rc2 D2.4.0rc3 D2.4.0rc4 D2.4.0rc5 D2.4.0rc6 D2.4.0rc7
 D2.4.0
 D2.4.1
 D2.4.2
 D2.4.3
 D2.4.4
 D2.4.5    ~pcVI</"}pcVI</"vhXK>3%ueZJ:-"}rdTC6) 








{
n
a
T
G
:
-

										y	l	_	R	E	5	%		zm`SF9,yl_RE8+uh[NA4' ~qdWJ=0#	zm`SF9,ubO<*lYG8+  Y P1.6
X P1.7.0
W P1.7.1
V P1.8.0U P2.x-devT !Pdev-masterS #Odev-linkingR #O1.0.0-beta2Q #O1.0.0-beta3P #O1.0.0-beta4O #O1.0.0-beta5
N O1.0.0M #O1.1.0-beta1
L O1.1.0
K O1.2.0
J O1.3.0
I O1.4.0
H O1.5.0G O1.5.x-devF !Odev-masterE #Ndev-linkingD #N1.0.0-beta2C #N1.0.0-beta3B #N1.0.0-beta4A #N1.0.0-beta5
@ N1.0.0? #N1.1.0-beta1
> N1.1.0
= N1.2.0
< N1.3.0
; N1.4.0
: N1.5.09 N1.5.x-dev8 !Ndev-master
 M1.0.3
 M1.0.4
 M2.0.0
 M2.0.1
 M2.0.2
 M2.0.3
 M2.0.4

 M2.0.5
	 M2.1.0
 M2.1.1
 M2.1.2
 M2.1.3
 M2.1.4
 M2.2.0
 M2.2.1
 M2.2.2
 M2.2.3
  M2.2.4
 M2.3.2
~ M2.4.0
} M2.4.1
| M2.5.0
{ M2.6.0
z M2.6.1
y M2.6.2
x M2.6.3
w M2.6.4
v M2.6.5
u M2.6.6
t M2.7.0
s M2.7.1
r M2.7.2
q M2.8.0
p M2.8.1
o M2.8.2
n M2.8.3
m M2.8.4
l M2.8.5
k M2.8.6
j M2.8.7
i M2.8.8
h M3.0.0
g M3.0.1
f M3.0.2
e M3.0.3
d M3.0.4
c M3.0.5
b M3.0.6
a M3.0.7
` M3.1.0
_ M3.1.1
^ M3.1.2
] M3.2.0
\ M3.3.0
[ M3.3.1
Z M3.4.0
Y M3.4.1
X M3.4.2
W M3.4.3
V M3.5.0
U M3.6.0
T M3.7.0
S M3.7.1
R M3.7.2
Q M3.7.3
P M3.7.4
O M3.8.0
N M3.8.1
M M3.9.0
L M3.9.1
K M3.9.2
J M3.9.3I M3.9.x-devH !Mdev-master%G MLdev-revert-73-ivory-http-adapter
F L0.1.0
E L0.2.0
D L0.3.0
C L0.3.1
B L0.3.2
A L0.4.0
@ L0.5.0
? L0.6.0
> L0.6.1= L0.7.x-dev< !Ldev-master
 K1.4.2
 K1.4.3
 K1.4.4
 K1.4.5
 K1.4.6
 K1.4.7
 K1.4.8 K1.5.0RC1 K1.5.0RC2 K1.5.0RC3 K1.5.0RC4
 K1.5.0
 K1.5.1

 K1.5.2
	 K1.5.3
 K1.5.4
 K1.5.5
 K1.5.6 K1.5.x-dev K2.0.0a1 K2.0.0a2 K2.0.0RC1 K2.0.0RC2  K2.0.0RC3 K2.0.0RC4
~ K2.0.0} K2.0.x-dev
| K2.1.0
{ K2.2.0
z K2.3.0
y K2.3.1
x K2.3.2
w K2.3.3
v K2.3.4u K3.0.x-devt !Kdev-masters J1.0alpha1r J1.0rc1q J1.0
p J1.0.1
o J1.0.2n J1.1alpha1m J1.1beta1l J1.1rc1k J1.1
j J1.1.1
i J1.1.2h J1.2alpha1g J1.2beta1f J1.2rc1e J1.2
d J1.2.1c J1.3alpha1b J1.3alpha2a J1.3beta1` J1.3rc1_ J1.3
^ J1.3.1] !Jdev-master\ I1.1beta1[ I1.1beta2Z I1.1rc1Y I1.1
X I1.1.1W I1.2beta1V I1.2beta2U I1.2T I1.3beta2S I1.3rc1R I1.3
Q I1.3.1P I1.4alpha1O I1.4alpha2N I1.4beta1M I1.4rc1L I1.4
K I1.4.1J I1.5alpha1I I1.5alpha2H I1.5beta1G I1.5rc1F I1.5
E I1.5.1
D I1.5.2C I1.6beta1B I1.6rc1A I1.6
@ I1.6.1? I1.7alpha1> I1.7beta1= I1.7rc1< I1.7; I1.8: I1.99 !Idev-master8 !Hdev-legacy7 #Hdev-develop
6 H2.0.3
5 H2.0.4
4 H2.0.5
3 H2.0.6
2 H2.0.7
1 H2.0.8
0 H2.1.0
/ H2.1.1
. H2.1.2
- H2.1.3
, H2.1.4
+ H2.1.5
* H2.1.6) H2.2.0rc1( H2.2.0rc2' H2.2.0rc3
& H2.2.0
% H2.2.1
$ H2.2.2
# H2.2.3
" H2.2.4
! H2.2.5
  H2.2.6
 H2.2.7
 H2.2.8
 H2.2.9 H2.2.10
 H2.3.0
 H2.3.1
 H2.3.2
 H2.3.3
 H2.3.4
 H2.3.5
 H2.3.6
 H2.3.7
 H2.3.8
 H2.3.9   |qf[A.xk[K;+yk^QD7*xk^QD7*vi\OB5(









w
j
]
P
C
6
)


										|	l	\	O	B	5	(			|kZM@3&{k[NA4' }pcVI9)}p]K9(
xhXH8({naTG:- {naTG:-              & #Tdev-develop
% T2.0.3
$ T2.0.4
# T2.0.5
" T2.0.6
! T2.0.7
  T2.0.8
 T2.1.0
 T2.1.1
 T2.1.2
 T2.1.3
 T2.1.4
 T2.1.5
 T2.1.6 T2.2.0rc1 T2.2.0rc2 T2.2.0rc3
 T2.2.0
 T2.2.1
 T2.2.2
 T2.2.3
 T2.2.4
 T2.2.5
 T2.2.6
 T2.2.7
 T2.2.8
 T2.2.9 T2.2.10

 T2.3.0
	 T2.3.1
 T2.3.2
 T2.3.3
 T2.3.4
 T2.3.5
 T2.3.6
 T2.3.7
 T2.3.8
 T2.3.9  T2.4.0rc1 T2.4.0rc2~ T2.4.0rc3} T2.4.0rc4| T2.4.0rc5{ T2.4.0rc6z T2.4.0rc7
y T2.4.0
x T2.4.1
w T2.4.2
v T2.4.3
u T2.4.4
t T2.4.5
s T2.4.6
r T2.4.7
q T2.4.8
p T2.5.0
o T2.5.1n T2.5.x-devm T2.6.x-devl !Tdev-master- !Sdev-legacy, #Sdev-develop
+ S2.0.3
* S2.0.4
) S2.0.5
( S2.0.6
' S2.0.7
& S2.0.8
% S2.1.0
$ S2.1.1
# S2.1.2
" S2.1.3
! S2.1.4
  S2.1.5
 S2.1.6 S2.2.0rc1 S2.2.0rc2 S2.2.0rc3
 S2.2.0
 S2.2.1
 S2.2.2
 S2.2.3
 S2.2.4
 S2.2.5
 S2.2.6
 S2.2.7
 S2.2.8
 S2.2.9 S2.2.10
 S2.3.0
 S2.3.1
 S2.3.2
 S2.3.3
 S2.3.4
 S2.3.5

 S2.3.6
	 S2.3.7
 S2.3.8
 S2.3.9 S2.4.0rc1 S2.4.0rc2 S2.4.0rc3 S2.4.0rc4 S2.4.0rc5 S2.4.0rc6  S2.4.0rc7
 S2.4.0
~ S2.4.1
} S2.4.2
| S2.4.3
{ S2.4.4
z S2.4.5
y S2.4.6
x S2.4.7
w S2.4.8
v S2.5.0
u S2.5.1t S2.5.x-devs S2.6.x-devr !Sdev-masterq !Rdev-legacyp #Rdev-develop
o R2.0.3
n R2.0.4
m R2.0.5
l R2.0.6
k R2.0.7
j R2.0.8
i R2.1.0
h R2.1.1
g R2.1.2
f R2.1.3
e R2.1.4
d R2.1.5
c R2.1.6b R2.2.0rc1a R2.2.0rc2` R2.2.0rc3
_ R2.2.0
^ R2.2.1
] R2.2.2
\ R2.2.3
[ R2.2.4
Z R2.2.5
Y R2.2.6
X R2.2.7
W R2.2.8
V R2.2.9U R2.2.10
T R2.3.0
S R2.3.1
R R2.3.2
Q R2.3.3
P R2.3.4
O R2.3.5
N R2.3.6
M R2.3.7
L R2.3.8
K R2.3.9J R2.4.0rc1I R2.4.0rc2H R2.4.0rc3G R2.4.0rc4F R2.4.0rc5E R2.4.0rc6D R2.4.0rc7
C R2.4.0
B R2.4.1
A R2.4.2
@ R2.4.3
? R2.4.4
> R2.4.5
= R2.4.6
< R2.4.7
; R2.4.8
: R2.5.0
9 R2.5.1
8 R2.5.2
7 R2.5.36 R2.5.x-dev5 R2.6.x-dev4 !Rdev-master= !Qdev-legacy< #Qdev-develop
; Q2.0.3
: Q2.0.4
9 Q2.0.5
8 Q2.0.6
7 Q2.0.7
6 Q2.0.8
5 Q2.1.0
4 Q2.1.1
3 Q2.1.2
2 Q2.1.3
1 Q2.1.4
0 Q2.1.5
/ Q2.1.6. Q2.2.0rc1- Q2.2.0rc2, Q2.2.0rc3
+ Q2.2.0
* Q2.2.1
) Q2.2.2
( Q2.2.3
' Q2.2.4
& Q2.2.5
% Q2.2.6
$ Q2.2.7
# Q2.2.8
" Q2.2.9! Q2.2.10
  Q2.3.0
 Q2.3.1
 Q2.3.2
 Q2.3.3
 Q2.3.4
 Q2.3.5
 Q2.3.6
 Q2.3.7
 Q2.3.8
 Q2.3.9 Q2.4.0rc1 Q2.4.0rc2 Q2.4.0rc3 Q2.4.0rc4 Q2.4.0rc5 Q2.4.0rc6 Q2.4.0rc7
 Q2.4.0
 Q2.4.1
 Q2.4.2
 Q2.4.3
 Q2.4.4

 Q2.4.5
	 Q2.4.6
 Q2.4.7
 Q2.4.8
 Q2.5.0
 Q2.5.1 Q2.5.x-dev Q2.6.x-dev !Qdev-masterj #Pdev-developi 1Pdev-php5.2-developh P0.1g P0.2f P0.3e P0.4d P0.5c P0.6b P0.7a P0.8` P0.9_ P1.0^ P1.1] P1.2\ P1.3[ P1.4Z P1.5    yl_RE8+zm`SF9+yl_RE8+wj]PC6)~n^QD7*










s
f
Y
L
<
,


											s	`	N	<	+			 ~n^N>.~qdWJ=0#	~qdWJ=0#|obUH;.}pcVI<.!|obUH;.!zm`SF9,          
` Y2.4.7
_ Y2.4.8
^ Y2.5.0
] Y2.5.1
\ Y2.5.2
[ Y2.5.3
Z Y2.5.4
Y Y2.5.5X Y2.5.x-devW Y2.6.x-devV !Ydev-masterU !Xdev-legacyT #Xdev-develop
S X2.0.3
R X2.0.4
Q X2.0.5
P X2.0.6
O X2.0.7
N X2.0.8
M X2.1.0
L X2.1.1
K X2.1.2
J X2.1.3
I X2.1.4
H X2.1.5
G X2.1.6F X2.2.0rc1E X2.2.0rc2D X2.2.0rc3
C X2.2.0
B X2.2.1
A X2.2.2
@ X2.2.3
? X2.2.4
> X2.2.5
= X2.2.6
< X2.2.7
; X2.2.8
: X2.2.99 X2.2.10
8 X2.3.0
7 X2.3.1
6 X2.3.2
5 X2.3.3
4 X2.3.4
3 X2.3.5
2 X2.3.6
1 X2.3.7
0 X2.3.8
/ X2.3.9. X2.4.0rc1- X2.4.0rc2, X2.4.0rc3+ X2.4.0rc4* X2.4.0rc5) X2.4.0rc6( X2.4.0rc7
' X2.4.0
& X2.4.1
% X2.4.2
$ X2.4.3
# X2.4.4
" X2.4.5
! X2.4.6
  X2.4.7
 X2.4.8
 X2.5.0
 X2.5.1
 X2.5.2 X2.5.x-dev X2.6.x-dev !Xdev-master !Wdev-legacy #Wdev-develop
 W2.0.3
 W2.0.4
 W2.0.5
 W2.0.6
 W2.0.7
 W2.0.8
 W2.1.0
 W2.1.1
 W2.1.2
 W2.1.3
 W2.1.4
 W2.1.5
 W2.1.6 W2.2.0rc1 W2.2.0rc2 W2.2.0rc3

 W2.2.0
	 W2.2.1
 W2.2.2
 W2.2.3
 W2.2.4
 W2.2.5
 W2.2.6
 W2.2.7
 W2.2.8
 W2.2.9  W2.2.10
 W2.3.0
~ W2.3.1
} W2.3.2
| W2.3.3
{ W2.3.4
z W2.3.5
y W2.3.6
x W2.3.7
w W2.3.8
v W2.3.9u W2.4.0rc1t W2.4.0rc2s W2.4.0rc3r W2.4.0rc4q W2.4.0rc5p W2.4.0rc6o W2.4.0rc7
n W2.4.0
m W2.4.1
l W2.4.2
k W2.4.3
j W2.4.4
i W2.4.5
h W2.4.6
g W2.4.7
f W2.4.8
e W2.5.0
d W2.5.1
c W2.5.2b W2.5.x-deva W2.6.x-dev` !Wdev-master_ !Vdev-legacy^ #Vdev-develop
] V2.0.3
\ V2.0.4
[ V2.0.5
Z V2.0.6
Y V2.0.7
X V2.0.8
W V2.1.0
V V2.1.1
U V2.1.2
T V2.1.3
S V2.1.4
R V2.1.5
Q V2.1.6P V2.2.0rc1O V2.2.0rc2N V2.2.0rc3
M V2.2.0
L V2.2.1
K V2.2.2
J V2.2.3
I V2.2.4
H V2.2.5
G V2.2.6
F V2.2.7
E V2.2.8
D V2.2.9C V2.2.10
B V2.3.0
A V2.3.1
@ V2.3.2
? V2.3.3
> V2.3.4
= V2.3.5
< V2.3.6
; V2.3.7
: V2.3.8
9 V2.3.98 V2.4.0rc17 V2.4.0rc26 V2.4.0rc35 V2.4.0rc44 V2.4.0rc53 V2.4.0rc62 V2.4.0rc7
1 V2.4.0
0 V2.4.1
/ V2.4.2
. V2.4.3
- V2.4.4
, V2.4.5
+ V2.4.6
* V2.4.7
) V2.4.8
( V2.5.0
' V2.5.1
& V2.5.2
% V2.5.3$ V2.5.x-dev# V2.6.x-dev" !Vdev-master! !Udev-legacy  #Udev-develop
 U2.0.3
 U2.0.4
 U2.0.5
 U2.0.6
 U2.0.7
 U2.0.8
 U2.1.0
 U2.1.1
 U2.1.2
 U2.1.3
 U2.1.4
 U2.1.5
 U2.1.6 U2.2.0rc1 U2.2.0rc2 U2.2.0rc3
 U2.2.0
 U2.2.1
 U2.2.2
 U2.2.3
 U2.2.4

 U2.2.5
	 U2.2.6
 U2.2.7
 U2.2.8
 U2.2.9 U2.2.10
 U2.3.0
 U2.3.1
 U2.3.2
 U2.3.3
  U2.3.4
 U2.3.5
~ U2.3.6
} U2.3.7
| U2.3.8
{ U2.3.9z U2.4.0rc1y U2.4.0rc2x U2.4.0rc3w U2.4.0rc4v U2.4.0rc5u U2.4.0rc6t U2.4.0rc7
s U2.4.0
r U2.4.1
q U2.4.2
p U2.4.3
o U2.4.4
n U2.4.5
m U2.4.6
l U2.4.7
k U2.4.8
j U2.5.0
i U2.5.1h U2.5.x-devg U2.6.x-devf !Udev-master' !Tdev-legacy    ueUE5(~qdWJ=0#~qdWJ7%yl_RE8%uh[NA4'









v
i
\
O
B
5
(


 										{	k	[	N	A	4	'			 {jYL?2%yl_RE2udWJ=0#	{k[K>1$
zm`SF9)	zm`M;)xhXH8(         
. ^2.3.9- ^2.4.0rc1, ^2.4.0rc2+ ^2.4.0rc3* ^2.4.0rc4) ^2.4.0rc5( ^2.4.0rc6' ^2.4.0rc7
& ^2.4.0
% ^2.4.1
$ ^2.4.2
# ^2.4.3
" ^2.4.4
! ^2.4.5
  ^2.4.6
 ^2.4.7
 ^2.4.8
 ^2.5.0
 ^2.5.1 ^2.5.x-dev ^2.6.x-dev !^dev-masterY !]dev-legacyX #]dev-develop
W ]2.0.3
V ]2.0.4
U ]2.0.5
T ]2.0.6
S ]2.0.7
R ]2.0.8
Q ]2.1.0
P ]2.1.1
O ]2.1.2
N ]2.1.3
M ]2.1.4
L ]2.1.5
K ]2.1.6J ]2.2.0rc1I ]2.2.0rc2H ]2.2.0rc3
G ]2.2.0
F ]2.2.1
E ]2.2.2
D ]2.2.3
C ]2.2.4
B ]2.2.5
A ]2.2.6
@ ]2.2.7
? ]2.2.8
> ]2.2.9= ]2.2.10
< ]2.3.0
; ]2.3.1
: ]2.3.2
9 ]2.3.3
8 ]2.3.4
7 ]2.3.5
6 ]2.3.6
5 ]2.3.7
4 ]2.3.8
3 ]2.3.92 ]2.4.0rc11 ]2.4.0rc20 ]2.4.0rc3/ ]2.4.0rc4. ]2.4.0rc5- ]2.4.0rc6, ]2.4.0rc7
+ ]2.4.0
* ]2.4.1
) ]2.4.2
( ]2.4.3
' ]2.4.4
& ]2.4.5
% ]2.4.6
$ ]2.4.7
# ]2.4.8
" ]2.5.0
! ]2.5.1
  ]2.5.2
 ]2.6.0 ]2.6.x-dev ]2.7.x-dev !]dev-master%% M\dev-feature/readme-documentation$ A\dev-feature/readme-license,# [\dev-hotfix/acceptable-view-model-plugin" ?\dev-feature/accept-filter! #\dev-develop
  \0.6.0
 \0.7.0
 \0.8.0
 \0.9.0
 \0.9.1 !\1.0.0beta1 !\1.0.0beta2 #\1.0.0-beta3
 \1.0.0
 \1.0.1
 \1.0.2
 \1.0.3
 \1.0.4
 \1.0.5
 \1.0.6
 \1.0.7
 \1.0.8
 \1.0.9
 \1.1.0
 \1.1.1 \1.1.x-dev \1.2.x-dev
 !\dev-masterv ![dev-legacyu #[dev-develop
t [2.0.3
s [2.0.4
r [2.0.5
q [2.0.6
p [2.0.7
o [2.0.8
n [2.1.0
m [2.1.1
l [2.1.2
k [2.1.3
j [2.1.4
i [2.1.5
h [2.1.6g [2.2.0rc1f [2.2.0rc2e [2.2.0rc3
d [2.2.0
c [2.2.1
b [2.2.2
a [2.2.3
` [2.2.4
_ [2.2.5
^ [2.2.6
] [2.2.7
\ [2.2.8
[ [2.2.9Z [2.2.10
Y [2.3.0
X [2.3.1
W [2.3.2
V [2.3.3
U [2.3.4
T [2.3.5
S [2.3.6
R [2.3.7
Q [2.3.8
P [2.3.9O [2.4.0rc1N [2.4.0rc2M [2.4.0rc3L [2.4.0rc4K [2.4.0rc5J [2.4.0rc6I [2.4.0rc7
H [2.4.0
G [2.4.1
F [2.4.2
E [2.4.3
D [2.4.4
C [2.4.5
B [2.4.6
A [2.4.7
@ [2.4.8
? [2.5.0
> [2.5.1
= [2.5.2< [2.5.x-dev; [2.6.x-dev: ![dev-master =Zdev-feature/render.error% MZdev-feature/readme-documentation #Zdev-develop
 Z0.6.0
 Z0.7.0
 Z0.8.0
 Z0.9.0
 Z0.9.1 !Z1.0.0beta1 !Z1.0.0beta2 #Z1.0.0-beta3
 Z1.0.0
 Z1.0.1
 Z1.0.2
 Z1.0.3
 Z1.1.0 Z1.1.x-dev
 Z1.2.x-dev	 !Zdev-master !Ydev-legacy #Ydev-develop
 Y2.0.3
 Y2.0.4
 Y2.0.5
 Y2.0.6
 Y2.0.7
 Y2.0.8
 Y2.1.0
 Y2.1.1
 Y2.1.2

 Y2.1.3
	 Y2.1.4
 Y2.1.5
 Y2.1.6 Y2.2.0rc1 Y2.2.0rc2 Y2.2.0rc3
 Y2.2.0
 Y2.2.1
 Y2.2.2
  Y2.2.3
 Y2.2.4
~ Y2.2.5
} Y2.2.6
| Y2.2.7
{ Y2.2.8
z Y2.2.9y Y2.2.10
x Y2.3.0
w Y2.3.1
v Y2.3.2
u Y2.3.3
t Y2.3.4
s Y2.3.5
r Y2.3.6
q Y2.3.7
p Y2.3.8
o Y2.3.9n Y2.4.0rc1m Y2.4.0rc2l Y2.4.0rc3k Y2.4.0rc4j Y2.4.0rc5i Y2.4.0rc6h Y2.4.0rc7
g Y2.4.0
f Y2.4.1
e Y2.4.2
d Y2.4.3
c Y2.4.4
b Y2.4.5
a Y2.4.6   }pcVI</"}pcVI</"{naTG:*
|obUH:- {naTG:- 








}
l
_
R
E
8
+


									}	m	`	S	F	9	,			uh[K;+o]K:)zjZJ:*sfYL?2%sfYL?,~qdWJ:*
reXJ=0#            
o b2.2.6
n b2.2.7
m b2.2.8
l b2.2.9k b2.2.10
j b2.3.0
i b2.3.1
h b2.3.2
g b2.3.3
f b2.3.4
e b2.3.5
d b2.3.6
c b2.3.7
b b2.3.8
a b2.3.9` b2.4.0rc1_ b2.4.0rc2^ b2.4.0rc3] b2.4.0rc4\ b2.4.0rc5[ b2.4.0rc6Z b2.4.0rc7
Y b2.4.0
X b2.4.1
W b2.4.2
V b2.4.3
U b2.4.4
T b2.4.5
S b2.4.6
R b2.4.7
Q b2.4.8
P b2.5.0
O b2.5.1
N b2.5.2M b2.5.x-devL b2.6.x-devK !bdev-masterq !adev-legacyp #adev-develop
o a2.0.3
n a2.0.4
m a2.0.5
l a2.0.6
k a2.0.7
j a2.0.8
i a2.1.0
h a2.1.1
g a2.1.2
f a2.1.3
e a2.1.4
d a2.1.5
c a2.1.6b a2.2.0rc1a a2.2.0rc2` a2.2.0rc3
_ a2.2.0
^ a2.2.1
] a2.2.2
\ a2.2.3
[ a2.2.4
Z a2.2.5
Y a2.2.6
X a2.2.7
W a2.2.8
V a2.2.9U a2.2.10
T a2.3.0
S a2.3.1
R a2.3.2
Q a2.3.3
P a2.3.4
O a2.3.5
N a2.3.6
M a2.3.7
L a2.3.8
K a2.3.9J a2.4.0rc1I a2.4.0rc2H a2.4.0rc3G a2.4.0rc4F a2.4.0rc5E a2.4.0rc6D a2.4.0rc7
C a2.4.0
B a2.4.1
A a2.4.2
@ a2.4.3
? a2.4.4
> a2.4.5
= a2.4.6
< a2.4.7
; a2.4.8
: a2.5.0
9 a2.5.18 a2.5.x-dev7 a2.6.x-dev6 !adev-master5 !`dev-legacy4 #`dev-develop
3 `2.0.3
2 `2.0.4
1 `2.0.5
0 `2.0.6
/ `2.0.7
. `2.0.8
- `2.1.0
, `2.1.1
+ `2.1.2
* `2.1.3
) `2.1.4
( `2.1.5
' `2.1.6& `2.2.0rc1% `2.2.0rc2$ `2.2.0rc3
# `2.2.0
" `2.2.1
! `2.2.2
  `2.2.3
 `2.2.4
 `2.2.5
 `2.2.6
 `2.2.7
 `2.2.8
 `2.2.9 `2.2.10
 `2.3.0
 `2.3.1
 `2.3.2
 `2.3.3
 `2.3.4
 `2.3.5
 `2.3.6
 `2.3.7
 `2.3.8
 `2.3.9 `2.4.0rc1 `2.4.0rc2 `2.4.0rc3 `2.4.0rc4
 `2.4.0rc5	 `2.4.0rc6 `2.4.0rc7
 `2.4.0
 `2.4.1
 `2.4.2
 `2.4.3
 `2.4.4
 `2.4.5
 `2.4.6
  `2.4.7
 `2.4.8
~ `2.5.0
} `2.5.1| `2.5.x-dev{ `2.6.x-devz !`dev-masterx !_dev-legacyw #_dev-develop
v _2.0.0
u _2.0.1
t _2.0.2
s _2.0.3
r _2.0.4
q _2.0.5
p _2.0.6
o _2.0.7
n _2.1.0
m _2.1.1
l _2.1.2
k _2.1.3
j _2.1.4
i _2.1.5
h _2.1.6g _2.2.0rc1f _2.2.0rc2e _2.2.0rc3
d _2.2.0
c _2.2.1
b _2.2.2
a _2.2.3
` _2.2.4
_ _2.2.5
^ _2.2.6
] _2.2.7
\ _2.2.8
[ _2.2.9Z _2.2.10
Y _2.3.0
X _2.3.1
W _2.3.2
V _2.3.3
U _2.3.4
T _2.3.5
S _2.3.6
R _2.3.7
Q _2.3.8
P _2.3.9O _2.4.0rc1N _2.4.0rc2M _2.4.0rc3L _2.4.0rc4K _2.4.0rc5J _2.4.0rc6I _2.4.0rc7
H _2.4.0
G _2.4.1
F _2.4.2
E _2.4.3
D _2.4.4
C _2.4.5
B _2.4.6
A _2.4.7
@ _2.4.8
? _2.5.0
> _2.5.1= _2.5.x-dev< _2.6.x-dev; !_dev-masterT !^dev-legacyS #^dev-develop
R ^2.0.3
Q ^2.0.4
P ^2.0.5
O ^2.0.6
N ^2.0.7
M ^2.0.8
L ^2.1.0
K ^2.1.1
J ^2.1.2
I ^2.1.3
H ^2.1.4
G ^2.1.5
F ^2.1.6E ^2.2.0rc1D ^2.2.0rc2C ^2.2.0rc3
B ^2.2.0
A ^2.2.1
@ ^2.2.2
? ^2.2.3
> ^2.2.4
= ^2.2.5
< ^2.2.6
; ^2.2.7
: ^2.2.8
9 ^2.2.98 ^2.2.10
7 ^2.3.0
6 ^2.3.1
5 ^2.3.2
4 ^2.3.3
3 ^2.3.4
2 ^2.3.5
1 ^2.3.6
0 ^2.3.7
/ ^2.3.8    uh[NA4' sfYL?2%tgZM@3&|o_O?2%q_NA4' 





y
l
_
R
E
8
&

									o	]	P	C	2	!		yfYL?2 ugYK=/!zl^L>0zl^K9+zl^PB4&
rdP<,vhZL>0"              
N o1.0.0
M o1.0.1
L o1.0.2
K o1.0.3
J o1.1.0
I o2.0.0
H o2.0.1
G o2.1.0
F o3.0.0
E o3.0.1
D o3.0.2
C o3.0.3
B o3.0.4
A o3.0.5
@ o3.0.6
? o3.1.0
> o3.1.1
= o3.2.0
< o3.3.0
; o3.4.0
: o3.5.0
9 o3.5.18 o3.x-dev7 #o4.0.0-beta16 #o4.0.0-beta2
5 o4.0.04 #o4.1.0-beta1
3 o4.1.0
2 o4.1.11 #o4.2.0-beta1
0 o4.2.0
/ o4.2.1
. o4.2.2
- o4.3.0
, o4.4.0
+ o4.4.1
* o4.4.2
) o4.4.3
( o4.4.4
' o4.4.5
& o4.4.6
% o4.4.7
$ o4.4.8
# o4.4.9" o4.4.10! o4.x-dev  #o5.0.0-beta1 o5.0.0-RC1
 o5.0.0
 o5.0.1
 o5.0.2
 o5.0.3
 o5.0.4 o5.0.x-dev #o5.1.0-beta1
 o5.1.0 o5.1.x-dev !odev-master
= n1.0.0
< n1.0.1
; n1.0.2
: n1.1.0
9 n1.2.0
8 n1.3.0
7 n1.4.0
6 n1.4.1
5 n1.5.04 !ndev-master
. m1.0.0- m1.0.x-dev
, m1.1.0+ !mdev-master
* l1.0.0
) l1.0.1( l1.0.x-dev
' l2.0.0
& l2.0.1% l2.0.x-dev$ !ldev-master
# k1.0.0" k1.0.x-dev! !kdev-master
  j1.0.0
 j1.0.1
 j1.0.2 j1.0.x-dev !jdev-master
L i0.1.0
K i0.2.0
J i0.2.1
I i0.2.2
H i0.2.3
G i0.2.4
F i0.2.5
E i0.2.6
D i0.3.0
C i0.4.0
B i0.5.0
A i0.5.1
@ i0.6.0
? i0.6.1
> i0.7.0= !idev-master
b h1.0.1
a h1.0.2` !hdev-master
@ g1.4.0
? g1.4.1
> g1.4.2
= g1.4.3< #g2.0.0-BETA1; #g2.0.0-BETA2: #g2.0.0-BETA39 #g2.0.0-BETA48 g2.0.0-RC17 g2.0.0-RC26 g2.0.0-RC35 g2.0.0-RC4
4 g2.0.0
3 g2.0.12 g2.1.0-RC11 g2.1.0-RC20 g2.1.0-RC3
/ g2.1.0
. g2.1.1- !g2.2.0-BETA, #g2.2.0-BETA2+ g2.2.0-RC1
* g2.2.0
) g2.2.1( g2.2.x-dev' !g2.3.0-beta& #g2.3.0-beta2% #g2.3.0-beta3$ g2.3.0-rc1
# g2.3.0" !gdev-master !fdev-master
 e1.1.0
  e1.1.1
 e1.2.0
~ e1.2.1
} e1.2.2| !edev-master{ 7ddev-simplify-stub-dslz 3ddev-test-double-apiy 1ddev-generator-failx )ddev-php-parser
w d0.7.2
v d0.8.0
u d0.9.0
t d0.9.1
s d0.9.2
r d0.9.3
q d0.9.4p d1.0.x-devo !ddev-mastert !cdev-legacys #cdev-develop
r c2.0.3
q c2.0.4
p c2.0.5
o c2.0.6
n c2.0.7
m c2.0.8
l c2.1.0
k c2.1.1
j c2.1.2
i c2.1.3
h c2.1.4
g c2.1.5
f c2.1.6e c2.2.0rc1d c2.2.0rc2c c2.2.0rc3
b c2.2.0
a c2.2.1
` c2.2.2
_ c2.2.3
^ c2.2.4
] c2.2.5
\ c2.2.6
[ c2.2.7
Z c2.2.8
Y c2.2.9X c2.2.10
W c2.3.0
V c2.3.1
U c2.3.2
T c2.3.3
S c2.3.4
R c2.3.5
Q c2.3.6
P c2.3.7
O c2.3.8
N c2.3.9M c2.4.0rc1L c2.4.0rc2K c2.4.0rc3J c2.4.0rc4I c2.4.0rc5H c2.4.0rc6G c2.4.0rc7
F c2.4.0
E c2.4.1
D c2.4.2
C c2.4.3
B c2.4.4
A c2.4.5
@ c2.4.6
? c2.4.7
> c2.4.8
= c2.5.0
< c2.5.1; c2.5.x-dev: c2.6.x-dev9 !cdev-master !bdev-legacy #bdev-develop
 b2.0.3
 b2.0.4
 b2.0.5
 b2.0.6
 b2.0.7
  b2.0.8
 b2.1.0
~ b2.1.1
} b2.1.2
| b2.1.3
{ b2.1.4
z b2.1.5
y b2.1.6x b2.2.0rc1w b2.2.0rc2v b2.2.0rc3
u b2.2.0
t b2.2.1
s b2.2.2
r b2.2.3
q b2.2.4
p b2.2.5    rdVH:	tfTA/ }oaSE7)yk[M;-yk]M=/








}
o
a
S
E
7
)

										n	`	R	D	6	(			ykYK=/!yk]OA3%seWI;-wi[M?1#{m_QC5'qcUG9$l^P>0                    !wdev-master$e Kvdev-caching-stream-forward-seek
d v1.0.0c v1.0.x-dev
b v1.1.0
a v1.2.0` !vdev-master(_ Sudev-each-promise-with-generator-fix
^ u0.1.0
] u0.1.1
\ u0.1.2
[ u1.0.0
Z u1.0.1
Y u1.0.2X u1.0.x-devW !udev-masterV %tdev-on_stats
U t1.0.3
T t1.0.4
S t2.0.0
R t2.0.1
Q t2.0.2
P t2.0.3
O t2.0.4
N t2.0.5
M t2.1.0
L t2.1.1
K t2.1.2
J t2.1.3
I t2.1.4
H t2.2.0
G t2.2.1
F t2.2.2
E t2.2.3
D t2.2.4
C t2.3.2
B t2.4.0
A t2.4.1
@ t2.5.0
? t2.6.0
> t2.6.1
= t2.6.2
< t2.6.3
; t2.6.4
: t2.6.5
9 t2.6.6
8 t2.7.0
7 t2.7.1
6 t2.7.2
5 t2.8.0
4 t2.8.1
3 t2.8.2
2 t2.8.3
1 t2.8.4
0 t2.8.5
/ t2.8.6
. t2.8.7
- t2.8.8
, t3.0.0
+ t3.0.1
* t3.0.2
) t3.0.3
( t3.0.4
' t3.0.5
& t3.0.6
% t3.0.7
$ t3.1.0
# t3.1.1
" t3.1.2
! t3.2.0
  t3.3.0
 t3.3.1
 t3.4.0
 t3.4.1
 t3.4.2
 t3.4.3
 t3.5.0
 t3.6.0
 t3.7.0
 t3.7.1
 t3.7.2
 t3.7.3
 t3.7.4
 t3.8.0
 t3.8.1 !t4.0.0-rc.1 !t4.0.0-rc.2
 t4.0.0
 t4.0.1
 t4.0.2
 t4.1.0
 t4.1.1

 t4.1.2
	 t4.1.3
 t4.1.4
 t4.1.5
 t4.1.6
 t4.1.7
 t4.1.8
 t4.2.0
 t4.2.1
 t4.2.2
  t4.2.3
 t5.0.0
~ t5.0.1
} t5.0.2
| t5.0.3
{ t5.1.0
z t5.2.0
y t5.3.0x t5.3.x-dev
w t6.0.0
v t6.0.1
u t6.0.2
t t6.1.0s t6.1.x-devr !tdev-masterq 'sdev-communityp s0.1o s0.2
n s0.2.1m s0.3l s0.4k s0.5
j s0.5.1
i s0.6.0
h s1.0.0
g s1.0.1
f s1.0.2e !sdev-master )rdev-db-cleanup
 r1.0.9 r1.0.10  r1.0.11 r1.0.12~ r1.0.13} r1.0.14
| r1.1.0
{ r1.1.2
z r1.1.3
y r1.1.4
x r1.1.5
w r1.5.0
v r1.5.1
u r1.5.2
t r1.5.3
s r1.5.4
r r1.5.5
q r1.5.6
p r1.5.7
o r1.6.0n r1.6.0.1m r1.6.0.3l r1.6.0.4
k r1.6.1j r1.6.1.1
i r1.6.2
h r1.6.3g r1.6.3.1
f r1.6.4e r1.6.4.1d r1.6.4.2
c r1.6.5
b r1.6.6
a r1.6.7
` r1.6.8_ r1.6.8.1^ r1.6.11] r1.6.12\ r1.6.x-dev
[ r1.7.0Z r1.7.0.1Y r1.7.0.2
X r1.7.1
W r1.7.2
V r1.7.3
U r1.7.4T r1.7.x-dev
S r1.8.0R r1.8.0.1
Q r1.8.1
P r1.8.2
O r1.8.3
N r1.8.4
M r1.8.5
L r1.8.6
K r1.8.7J r1.8.x-devI #r2.0.0-alphaH !r2.0.0-betaG r2.0.0-RCF r2.0.0-RC2
E r2.0.0
D r2.0.1
C r2.0.2
B r2.0.3
A r2.0.4
@ r2.0.5
? r2.0.6
> r2.0.7
= r2.0.8
< r2.0.9; r2.0.10: r2.0.10.19 r2.0.118 r2.0.127 r2.0.136 r2.0.145 r2.0.154 r2.0.163 r2.0.x-dev2 !r2.1.0-beta1 r2.1.0-rc1
0 r2.1.0
/ r2.1.1
. r2.1.2- r2.1.x-dev, !rdev-master
! q1.0.0
  q1.1.0
 q1.2.0
 q1.2.1
 q1.3.0
 q2.0.0 !qdev-master] 7pdev-separate_resolver
\ p0.1.0
[ p0.2.0
Z p0.2.1
Y p1.0.0
X p1.0.1
W p1.1.0
V p1.1.1U !pdev-master"Q Godev-simpler-definition-helperP 5odev-feature/Compiler
O o0.9.0    }oaSE7)~jVD5&
r`QB3%	m[L>0"teVG8)









u
f
W
H
9
*

										}	n	_	Q	C	5	'		wi[M?1#~o`QB3$wiUA/ q]K<-lXF7)q_PA2#~o`QB3$      
H y2.3.8
G y2.3.9F y2.3.10E y2.3.11D y2.3.12C y2.3.13B y2.3.14A y2.3.15@ y2.3.16? y2.3.17> y2.3.18= y2.3.19< y2.3.20; y2.3.21: y2.3.229 y2.3.238 y2.3.247 y2.3.256 y2.3.265 y2.3.274 y2.3.283 y2.3.292 y2.3.301 y2.3.310 y2.3.32/ y2.3.x-dev. #y2.4.0-BETA1- #y2.4.0-BETA2, y2.4.0-RC1
+ y2.4.0
* y2.4.1
) y2.4.2
( y2.4.3
' y2.4.4
& y2.4.5
% y2.4.6
$ y2.4.7
# y2.4.8
" y2.4.9! y2.4.10  y2.4.x-dev #y2.5.0-BETA1 #y2.5.0-BETA2 y2.5.0-RC1
 y2.5.0
 y2.5.1
 y2.5.2
 y2.5.3
 y2.5.4
 y2.5.5
 y2.5.6
 y2.5.7
 y2.5.8
 y2.5.9 y2.5.10 y2.5.11 y2.5.12 y2.5.x-dev #y2.6.0-BETA1 #y2.6.0-BETA2
 y2.6.0
 y2.6.1

 y2.6.2
	 y2.6.3
 y2.6.4
 y2.6.5
 y2.6.6
 y2.6.7
 y2.6.8
 y2.6.9 y2.6.10 y2.6.11  y2.6.x-dev #y2.7.0-BETA1~ #y2.7.0-BETA2
} y2.7.0
| y2.7.1
{ y2.7.2
z y2.7.3
y y2.7.4x y2.7.x-devw y2.8.x-devv y3.0.x-devu !ydev-master
g x2.0.9f x2.0.10e x2.0.12d x2.0.13c x2.0.14b x2.0.15a x2.0.16` x2.0.17_ x2.0.18^ x2.0.19] x2.0.20\ x2.0.21[ x2.0.22Z x2.0.23Y x2.0.24X x2.0.25W x2.0.x-dev
V x2.1.0
U x2.1.1
T x2.1.2
S x2.1.3
R x2.1.4
Q x2.1.5
P x2.1.6
O x2.1.7
N x2.1.8
M x2.1.9L x2.1.10K x2.1.11J x2.1.12I x2.1.13H x2.1.x-dev
G x2.2.0
F x2.2.1
E x2.2.2
D x2.2.3
C x2.2.4
B x2.2.5
A x2.2.6
@ x2.2.7
? x2.2.8
> x2.2.9= x2.2.10< x2.2.11; x2.2.x-dev
: x2.3.0
9 x2.3.1
8 x2.3.2
7 x2.3.3
6 x2.3.4
5 x2.3.5
4 x2.3.6
3 x2.3.7
2 x2.3.8
1 x2.3.90 x2.3.10/ x2.3.11. x2.3.12- x2.3.13, x2.3.14+ x2.3.15* x2.3.16) x2.3.17( x2.3.18' x2.3.19& x2.3.20% x2.3.21$ x2.3.22# x2.3.23" x2.3.24! x2.3.25  x2.3.26 x2.3.27 x2.3.28 x2.3.29 x2.3.30 x2.3.31 x2.3.32 x2.3.x-dev #x2.4.0-BETA1 #x2.4.0-BETA2 x2.4.0-RC1
 x2.4.0
 x2.4.1
 x2.4.2
 x2.4.3
 x2.4.4
 x2.4.5
 x2.4.6
 x2.4.7
 x2.4.8
 x2.4.9 x2.4.10
 x2.4.x-dev	 #x2.5.0-BETA1 #x2.5.0-BETA2 x2.5.0-RC1
 x2.5.0
 x2.5.1
 x2.5.2
 x2.5.3
 x2.5.4
 x2.5.5
  x2.5.6
 x2.5.7
~ x2.5.8
} x2.5.9| x2.5.10{ x2.5.11z x2.5.12y x2.5.x-devx #x2.6.0-BETA1w #x2.6.0-BETA2
v x2.6.0
u x2.6.1
t x2.6.2
s x2.6.3
r x2.6.4
q x2.6.5
p x2.6.6
o x2.6.7
n x2.6.8
m x2.6.9l x2.6.10k x2.6.11j x2.6.x-devi #x2.7.0-BETA1h #x2.7.0-BETA2
g x2.7.0
f x2.7.1
e x2.7.2
d x2.7.3
c x2.7.4b x2.7.x-deva x2.8.x-dev` x3.0.x-dev_ !xdev-master
- w0.1.0
, w0.2.0
+ w0.3.0
* w0.4.0
) w0.5.0
( w0.5.1
' w0.6.0
& w0.7.0
% w0.8.0
$ w0.9.0
# w0.9.1
" w0.9.2! w0.10.0  w0.10.1 w0.11.0 w1.0 w1.0.x-dev    ~o`RD6(xj\N@2$paRC4%xj\N@2
xj\N:&









w
i
[
I
5
!

 										t	b	N	:	(		
teVG8){m_QC1"ufWH9+}n_PA2#taSE7)|n`RD6(rdVH:,           #~2.0.0-alpha !~2.0.0-beta ~2.0.0-rc
 ~2.0.0
 ~2.0.1
 ~2.0.2
 ~2.0.3
 ~2.0.4
 ~2.0.5
 ~2.0.6 ~2.0.x-dev !~dev-master
m }1.0.0
l }1.0.1
k }1.1.0
j }1.2.0
i }1.2.1
h }1.3.0
g }1.3.1f !}dev-master
X |0.1.0
W |0.2.0
V |0.2.1
U |0.3.0
T |0.3.1
S |0.3.2
R |0.3.3
Q |0.3.4
P |0.3.5
O |0.3.6
N |0.4.0
M |0.4.1L !|dev-master
A {0.1.0
@ {0.2.0
? {0.2.1
> {0.2.2
= {0.2.3
< {0.2.4
; {0.2.5
: {0.2.6
9 {0.2.78 !{dev-master
 z2.0.4
 z2.0.5
 z2.0.6
 z2.0.7

 z2.0.9	 z2.0.10 z2.0.12 z2.0.13 z2.0.14 z2.0.15 z2.0.16 z2.0.17 z2.0.18 z2.0.19  z2.0.20 z2.0.21~ z2.0.22} z2.0.23| z2.0.24{ z2.0.25z z2.0.x-dev
y z2.1.0
x z2.1.1
w z2.1.2
v z2.1.3
u z2.1.4
t z2.1.5
s z2.1.6
r z2.1.7
q z2.1.8
p z2.1.9o z2.1.10n z2.1.11m z2.1.12l z2.1.13k z2.1.x-dev
j z2.2.0
i z2.2.1
h z2.2.2
g z2.2.3
f z2.2.4
e z2.2.5
d z2.2.6
c z2.2.7
b z2.2.8
a z2.2.9` z2.2.10_ z2.2.11^ z2.2.x-dev
] z2.3.0
\ z2.3.1
[ z2.3.2
Z z2.3.3
Y z2.3.4
X z2.3.5
W z2.3.6
V z2.3.7
U z2.3.8
T z2.3.9S z2.3.10R z2.3.11Q z2.3.12P z2.3.13O z2.3.14N z2.3.15M z2.3.16L z2.3.17K z2.3.18J z2.3.19I z2.3.20H z2.3.21G z2.3.22F z2.3.23E z2.3.24D z2.3.25C z2.3.26B z2.3.27A z2.3.28@ z2.3.29? z2.3.30> z2.3.31= z2.3.32< z2.3.x-dev; #z2.4.0-BETA1: #z2.4.0-BETA29 z2.4.0-RC1
8 z2.4.0
7 z2.4.1
6 z2.4.2
5 z2.4.3
4 z2.4.4
3 z2.4.5
2 z2.4.6
1 z2.4.7
0 z2.4.8
/ z2.4.9. z2.4.10- z2.4.x-dev, #z2.5.0-BETA1+ #z2.5.0-BETA2* z2.5.0-RC1
) z2.5.0
( z2.5.1
' z2.5.2
& z2.5.3
% z2.5.4
$ z2.5.5
# z2.5.6
" z2.5.7
! z2.5.8
  z2.5.9 z2.5.10 z2.5.11 z2.5.12 z2.5.x-dev #z2.6.0-BETA1 #z2.6.0-BETA2
 z2.6.0
 z2.6.1
 z2.6.2
 z2.6.3
 z2.6.4
 z2.6.5
 z2.6.6
 z2.6.7
 z2.6.8
 z2.6.9 z2.6.10 z2.6.11 z2.6.x-dev #z2.7.0-BETA1 #z2.7.0-BETA2

 z2.7.0
	 z2.7.1
 z2.7.2
 z2.7.3
 z2.7.4 z2.7.x-dev z2.8.x-dev z3.0.x-dev !zdev-master
 y2.0.4
  y2.0.5
 y2.0.6
~ y2.0.7
} y2.0.9| y2.0.10{ y2.0.12z y2.0.13y y2.0.14x y2.0.15w y2.0.16v y2.0.17u y2.0.18t y2.0.19s y2.0.20r y2.0.21q y2.0.22p y2.0.23o y2.0.24n y2.0.25m y2.0.x-dev
l y2.1.0
k y2.1.1
j y2.1.2
i y2.1.3
h y2.1.4
g y2.1.5
f y2.1.6
e y2.1.7
d y2.1.8
c y2.1.9b y2.1.10a y2.1.11` y2.1.12_ y2.1.13^ y2.1.x-dev
] y2.2.0
\ y2.2.1
[ y2.2.2
Z y2.2.3
Y y2.2.4
X y2.2.5
W y2.2.6
V y2.2.7
U y2.2.8
T y2.2.9S y2.2.10R y2.2.11Q y2.2.x-dev
P y2.3.0
O y2.3.1
N y2.3.2
M y2.3.3
L y2.3.4
K y2.3.5
J y2.3.6
I y2.3.7    q]I</xiZK<-
}n_PA2#~o`QB3$}hYD5 








l
]
H
9
$

 									j	O	;	,		vgXI:%teVG2
qbSD1{l]N;&~n^N>.paRC4%zk\M>/       N  2.1.9M  2.1.10L  2.1.11K  2.1.12J  2.1.13I  2.1.x-devH  2.2.0G  2.2.1F  2.2.2E  2.2.3D  2.2.4C  2.2.5B  2.2.6A  2.2.7@  2.2.8?  2.2.9>  2.2.10=  2.2.11<  2.2.x-dev;  2.3.0:  2.3.19  2.3.28  2.3.37  2.3.46  2.3.55  2.3.64  2.3.73  2.3.82  2.3.91  2.3.100  2.3.11/  2.3.12.  2.3.13-  2.3.14,  2.3.15+  2.3.16*  2.3.17)  2.3.18(  2.3.19'  2.3.20&  2.3.21%  2.3.22$  2.3.23#  2.3.24"  2.3.25!  2.3.26   2.3.27  2.3.28  2.3.29  2.3.30  2.3.31  2.3.32  2.3.x-dev # 2.4.0-BETA1 # 2.4.0-BETA2  2.4.0-RC1  2.4.0  2.4.1  2.4.2  2.4.3  2.4.4  2.4.5  2.4.6  2.4.7  2.4.8  2.4.9  2.4.10  2.4.x-dev
 # 2.5.0-BETA1	 # 2.5.0-BETA2  2.5.0-RC1  2.5.0  2.5.1  2.5.2  2.5.3  2.5.4  2.5.5  2.5.6   2.5.7  2.5.8~  2.5.9}  2.5.10|  2.5.11{  2.5.12z  2.5.x-devy # 2.6.0-BETA1x # 2.6.0-BETA2w  2.6.0v  2.6.1u  2.6.2t  2.6.3s  2.6.4r  2.6.5q  2.6.6p  2.6.7o  2.6.8n  2.6.9m  2.6.10l  2.6.11k  2.6.x-devj # 2.7.0-BETA1i # 2.7.0-BETA2h  2.7.0g  2.7.1f  2.7.2e  2.7.3d  2.7.4c  2.7.x-devb  2.8.x-deva  3.0.x-dev` ! dev-masterY  1.0.0X  1.1.0W  1.1.1V  1.1.2U  1.1.3T  1.1.4S  1.1.5R ! dev-master / dev-twig20-compat # 1.0.0-alpha  1.0.0  1.0.1  1.1.0  1.2.0  1.3.0
  1.3.x-dev	 ! dev-master  2.0.0 # 2.0.0.x-dev  2.4.0 # 2.4.0.x-dev  2.5.0 # 2.5.0.x-dev  2.5.1 # 2.5.1.x-dev  2.6.0 # 2.6.0.x-dev  2.7.0 # 2.7.0.x-dev  2.8.0 # 2.8.0.x-dev  2.9.0 # 2.9.0.x-dev
  3.0.0	 # 3.0.0.x-dev  3.1.0 # 3.1.0.x-dev  3.2.0 # 3.2.0.x-dev  3.3.0 # 3.3.0.x-dev  3.4.0 # 3.4.0.x-dev  ! dev-masters  1.0.0r  1.0.1q  1.0.2p  1.0.3o  1.1.0n  1.1.1m  1.1.2l  1.2.1k  2.0.0j  2.0.1i  2.0.2h  2.1.0g  2.1.1f  2.2.0e  2.2.1d  2.3.0c  2.4.0b  2.4.1a  2.4.2`  2.5.0_  2.6.0^  2.6.1]  2.6.2\  2.7.0[  2.7.1Z  2.8.0Y  2.8.1X  2.8.2W  2.9.0V  2.9.1U  2.9.2T  2.10.0S  2.10.1R  2.10.2Q  2.10.3P  2.11.0O  2.12.0N ! dev-master<  1.3.0;  1.3.1:  2.0.09  2.0.18  2.0.27  2.0.36  2.0.45  2.0.54 ' 2.1.0-alpha-13 ! 2.1.0-beta2  2.1.01  2.1.10  2.1.2/  2.2.0.  2.2.1-  2.3.0, ! dev-master	+  1.0	*  1.1) ! dev-master( #2.0.0-alpha' !2.0.0-beta& 2.0.0-rc
% 2.0.0
$ 2.0.1
# 2.0.2
" 2.0.3
! 2.0.4  2.0.x-dev !dev-master    yfVF6&vgXI:+{fQ>. s^K;+r]H5%








|
g
R
?
/

										o	_	O	?	/		ufWH9%wdTD5&qaQA2#n[K<- xeUE5%ueUE5%}n_L<,          .  2.2.4-  2.2.5,  2.2.6+  2.2.7*  2.2.8)  2.2.9(  2.2.10'  2.2.11&  2.2.x-dev%  2.3.0$  2.3.1#  2.3.2"  2.3.3!  2.3.4   2.3.5  2.3.6  2.3.7  2.3.8  2.3.9  2.3.10  2.3.11  2.3.12  2.3.13  2.3.14  2.3.15  2.3.16  2.3.17  2.3.18  2.3.19  2.3.20  2.3.21  2.3.22  2.3.23  2.3.24  2.3.25  2.3.26
  2.3.27	  2.3.28  2.3.29  2.3.30  2.3.31  2.3.32  2.3.x-dev # 2.4.0-BETA1 # 2.4.0-BETA2  2.4.0-RC1   2.4.0  2.4.1~  2.4.2}  2.4.3|  2.4.4{  2.4.5z  2.4.6y  2.4.7x  2.4.8w  2.4.9v  2.4.10u  2.4.x-devt # 2.5.0-BETA1s # 2.5.0-BETA2r  2.5.0-RC1q  2.5.0p  2.5.1o  2.5.2n  2.5.3m  2.5.4l  2.5.5k  2.5.6j  2.5.7i  2.5.8h  2.5.9g  2.5.10f  2.5.11e  2.5.12d  2.5.x-devc # 2.6.0-BETA1b # 2.6.0-BETA2a  2.6.0`  2.6.1_  2.6.2^  2.6.3]  2.6.4\  2.6.5[  2.6.6Z  2.6.7Y  2.6.8X  2.6.9W  2.6.10V  2.6.11U  2.6.x-devT # 2.7.0-BETA1S # 2.7.0-BETA2R  2.7.0Q  2.7.1P  2.7.2O  2.7.3N  2.7.4M  2.7.x-devL  2.8.x-devK  3.0.x-devJ ! dev-masterI  2.3.0H  2.3.1G  2.3.2F  2.3.3E  2.3.4D  2.3.5C  2.3.6B  2.3.7A  2.3.8@  2.3.9?  2.3.10>  2.3.11=  2.3.12<  2.3.13;  2.3.14:  2.3.159  2.3.168  2.3.177  2.3.186  2.3.195  2.3.204  2.3.213  2.3.222  2.3.231  2.3.240  2.3.25/  2.3.26.  2.3.27-  2.3.28,  2.3.29+  2.3.30*  2.3.31)  2.3.32(  2.3.x-dev' # 2.4.0-BETA1& # 2.4.0-BETA2%  2.4.0-RC1$  2.4.0#  2.4.1"  2.4.2!  2.4.3   2.4.4  2.4.5  2.4.6  2.4.7  2.4.8  2.4.9  2.4.10  2.4.x-dev # 2.5.0-BETA1 # 2.5.0-BETA2  2.5.0-RC1  2.5.0  2.5.1  2.5.2  2.5.3  2.5.4  2.5.5  2.5.6  2.5.7  2.5.8  2.5.9  2.5.10
  2.5.11	  2.5.12  2.5.x-dev # 2.6.0-BETA1 # 2.6.0-BETA2  2.6.0  2.6.1  2.6.2  2.6.3  2.6.4   2.6.5  2.6.6~  2.6.7}  2.6.8|  2.6.9{  2.6.10z  2.6.11y  2.6.x-devx # 2.7.0-BETA1w # 2.7.0-BETA2v  2.7.0u  2.7.1t  2.7.2s  2.7.3r  2.7.4q  2.7.x-devp  2.8.x-devo  3.0.x-devn ! dev-masterm ) dev-issue10110l  2.0.4k  2.0.5j  2.0.6i  2.0.7h  2.0.9g  2.0.10f  2.0.12e  2.0.13d  2.0.14c  2.0.15b  2.0.16a  2.0.17`  2.0.18_  2.0.19^  2.0.20]  2.0.21\  2.0.22[  2.0.23Z  2.0.24Y  2.0.25X  2.0.x-devW  2.1.0V  2.1.1U  2.1.2T  2.1.3S  2.1.4R  2.1.5Q  2.1.6P  2.1.7O  2.1.8    qbSD5&}jWH9*sdUF7(paRC4%zk\M>/ 








p
`
P
@
0
 

 									p	`	Q	B	3	$		yj[L=.xiT?,vaL9)	s`K6#}jU@-}m]M=-rcTE6'                2.2.8  2.2.9  2.2.10  2.2.11
  2.2.x-dev	  2.3.0  2.3.1  2.3.2  2.3.3  2.3.4  2.3.5  2.3.6  2.3.7  2.3.8   2.3.9  2.3.10~  2.3.11}  2.3.12|  2.3.13{  2.3.14z  2.3.15y  2.3.16x  2.3.17w  2.3.18v  2.3.19u  2.3.20t  2.3.21s  2.3.22r  2.3.23q  2.3.24p  2.3.25o  2.3.26n  2.3.27m  2.3.28l  2.3.29k  2.3.30j  2.3.31i  2.3.32h  2.3.x-devg # 2.4.0-BETA1f # 2.4.0-BETA2e  2.4.0-RC1d  2.4.0c  2.4.1b  2.4.2a  2.4.3`  2.4.4_  2.4.5^  2.4.6]  2.4.7\  2.4.8[  2.4.9Z  2.4.10Y  2.4.x-devX # 2.5.0-BETA1W # 2.5.0-BETA2V  2.5.0-RC1U  2.5.0T  2.5.1S  2.5.2R  2.5.3Q  2.5.4P  2.5.5O  2.5.6N  2.5.7M  2.5.8L  2.5.9K  2.5.10J  2.5.11I  2.5.12H  2.5.x-devG # 2.6.0-BETA1F # 2.6.0-BETA2E  2.6.0D  2.6.1C  2.6.2B  2.6.3A  2.6.4@  2.6.5?  2.6.6>  2.6.7=  2.6.8<  2.6.9;  2.6.10:  2.6.119  2.6.x-dev8 # 2.7.0-BETA17 # 2.7.0-BETA26  2.7.05  2.7.14  2.7.23  2.7.32  2.7.41  2.7.x-dev0  2.8.x-dev/  3.0.x-dev. ! dev-master-  2.2.0,  2.2.1+  2.2.2*  2.2.3)  2.2.4(  2.2.5'  2.2.6&  2.2.7%  2.2.8$  2.2.9#  2.2.10"  2.2.11!  2.2.x-dev   2.3.0  2.3.1  2.3.2  2.3.3  2.3.4  2.3.5  2.3.6  2.3.7  2.3.8  2.3.9  2.3.10  2.3.11  2.3.12  2.3.13  2.3.14  2.3.15  2.3.16  2.3.17  2.3.18  2.3.19  2.3.20  2.3.21
  2.3.22	  2.3.23  2.3.24  2.3.25  2.3.26  2.3.27  2.3.28  2.3.29  2.3.30  2.3.31   2.3.32  2.3.x-dev~ # 2.4.0-BETA1} # 2.4.0-BETA2|  2.4.0-RC1{  2.4.0z  2.4.1y  2.4.2x  2.4.3w  2.4.4v  2.4.5u  2.4.6t  2.4.7s  2.4.8r  2.4.9q  2.4.10p  2.4.x-devo # 2.5.0-BETA1n # 2.5.0-BETA2m  2.5.0-RC1l  2.5.0k  2.5.1j  2.5.2i  2.5.3h  2.5.4g  2.5.5f  2.5.6e  2.5.7d  2.5.8c  2.5.9b  2.5.10a  2.5.11`  2.5.12_  2.5.x-dev^ # 2.6.0-BETA1] # 2.6.0-BETA2\  2.6.0[  2.6.1Z  2.6.2Y  2.6.3X  2.6.4W  2.6.5V  2.6.6U  2.6.7T  2.6.8S  2.6.9R  2.6.10Q  2.6.11P  2.6.x-devO # 2.7.0-BETA1N # 2.7.0-BETA2M  2.7.0L  2.7.1K  2.7.2J  2.7.3I  2.7.4H  2.7.x-devG  2.8.x-devF  3.0.x-devE ! dev-masterD ' dev-issue9754C  2.0.16B  2.0.17A  2.1.0@  2.1.1?  2.1.2>  2.1.3=  2.1.4<  2.1.5;  2.1.6:  2.1.79  2.1.88  2.1.97  2.1.106  2.1.115  2.1.124  2.1.133  2.1.x-dev2  2.2.01  2.2.10  2.2.2/  2.2.3    ueUE5&|l\L<,~o`Q=*|l\M>/ yiYJ;,








s
c
T
E
6
'

									}	m	]	M	=	-		}m]M=-wdTD5&{k[L=.rbRB2"wcP=-rcTE6'tdTD4$      F  5.0.14E  5.0.15D  5.0.16C  5.0.17B  5.0.18A  5.0.19@  5.0.20?  5.0.21>  5.0.22=  5.0.23<  5.0.24;  5.0.25:  5.0.269  5.0.278  5.0.287  5.0.296  5.0.305  5.0.314  5.0.323  5.0.332  5.0.x-dev1  5.1.00  5.1.1/  5.1.2.  5.1.3-  5.1.4,  5.1.5+  5.1.6*  5.1.7)  5.1.8(  5.1.9'  5.1.10&  5.1.11%  5.1.12$  5.1.13#  5.1.14"  5.1.15!  5.1.16   5.1.17  5.1.x-dev  5.2.x-dev ! dev-masterT  2.0.4S  2.0.5R  2.0.6Q  2.0.7P  2.0.9O  2.0.10N  2.0.12M  2.0.13L  2.0.14K  2.0.15J  2.0.16I  2.0.17H  2.0.18G  2.0.19F  2.0.20E  2.0.21D  2.0.22C  2.0.23B  2.0.24A  2.0.25@  2.0.x-dev?  2.1.0>  2.1.1=  2.1.2<  2.1.3;  2.1.4:  2.1.59  2.1.68  2.1.77  2.1.86  2.1.95  2.1.104  2.1.113  2.1.122  2.1.131  2.1.x-dev0  2.2.0/  2.2.1.  2.2.2-  2.2.3,  2.2.4+  2.2.5*  2.2.6)  2.2.7(  2.2.8'  2.2.9&  2.2.10%  2.2.11$  2.2.x-dev#  2.3.0"  2.3.1!  2.3.2   2.3.3  2.3.4  2.3.5  2.3.6  2.3.7  2.3.8  2.3.9  2.3.10  2.3.11  2.3.12  2.3.13  2.3.14  2.3.15  2.3.16  2.3.17  2.3.18  2.3.19  2.3.20  2.3.21  2.3.22  2.3.23  2.3.24
  2.3.25	  2.3.26  2.3.27  2.3.28  2.3.29  2.3.30  2.3.31  2.3.32  2.3.x-dev # 2.4.0-BETA1  # 2.4.0-BETA2  2.4.0-RC1~  2.4.0}  2.4.1|  2.4.2{  2.4.3z  2.4.4y  2.4.5x  2.4.6w  2.4.7v  2.4.8u  2.4.9t  2.4.10s  2.4.x-devr # 2.5.0-BETA1q # 2.5.0-BETA2p  2.5.0-RC1o  2.5.0n  2.5.1m  2.5.2l  2.5.3k  2.5.4j  2.5.5i  2.5.6h  2.5.7g  2.5.8f  2.5.9e  2.5.10d  2.5.11c  2.5.12b  2.5.x-deva # 2.6.0-BETA1` # 2.6.0-BETA2_  2.6.0^  2.6.1]  2.6.2\  2.6.3[  2.6.4Z  2.6.5Y  2.6.6X  2.6.7W  2.6.8V  2.6.9U  2.6.10T  2.6.11S  2.6.x-devR # 2.7.0-BETA1Q # 2.7.0-BETA2P  2.7.0O  2.7.1N  2.7.2M  2.7.3L  2.7.4K  2.7.x-devJ  2.8.x-devI  3.0.x-devH ! dev-master:  2.0.49  2.0.58  2.0.67  2.0.76  2.0.95  2.0.104  2.0.123  2.0.132  2.0.141  2.0.150  2.0.16/  2.0.17.  2.0.18-  2.0.19,  2.0.20+  2.0.21*  2.0.22)  2.0.23(  2.0.24'  2.0.25&  2.0.x-dev%  2.1.0$  2.1.1#  2.1.2"  2.1.3!  2.1.4   2.1.5  2.1.6  2.1.7  2.1.8  2.1.9  2.1.10  2.1.11  2.1.12  2.1.13  2.1.x-dev  2.2.0  2.2.1  2.2.2  2.2.3  2.2.4  2.2.5  2.2.6  2.2.7    ufWH9*yj[L=.yiYI9)	yj[L=.teVG8)







t
e
V
G
8
)

									~	j	W	H	9	*		rcTE6'zk\M>/
rcTE6'qaQA1!{lXE6'	rbRB2"ufWH9*            V  1.0.3U  1.0.4T  1.0.5S  1.0.6R  1.1.0Q  1.1.1P  1.1.2O  1.1.3N  1.1.4M  1.1.5L  1.1.6K  1.1.7J  1.1.8I  1.1.9H  1.1.10G  1.1.11F  1.1.12E  1.1.13D  1.1.14C  1.1.15B  1.1.16A  1.1.17@  1.1.18?  1.1.20>  1.1.21=  1.1.22<  1.1.23;  1.1.24:  1.1.259  1.1.268  1.1.277  1.1.286  1.1.295  1.1.304  1.1.x-dev3 ! 1.2.0-beta2  1.2.01  1.2.10  1.2.2/  1.2.3.  1.2.x-dev- ! dev-master  1.0.0  1.0.1  1.1.0  1.2.0  1.3.0  1.4.0  1.5.0  1.6.0  1.7.0  1.8.0
  1.9.0	  1.10.0  1.11.0  1.12.0  1.13.0  1.14.0  1.15.0  1.16.0  1.17.0  1.18.0   1.19.0  1.20.0~ ! dev-masterc ; dev-fix-handle-bindingsb  0.8.0a  0.8.x-dev`  0.9.0_  0.9.1^  0.9.2]  1.0.0\  1.0.1[  1.0.2Z  1.0.x-devY ! 2.0-alpha1X % 2.0.0-alpha2W % 2.0.0-beta.1V  2.0.0U  2.1.0T  2.2.x-devS ! dev-master!R C dev-nicholas-grekas-xor-fixQ  1.0.0P  1.0.1O  1.0.2N  1.0.3M  1.0.4L  1.0.x-devK ! dev-master J A dev-feature/link-to-googleI 9 dev-feature/frame-argsH  dev-php7G ; dev-pretty-page-refreshF  0.8.4E  0.9.0D  1.0.0C  1.0.1B  1.0.3A  1.0.4@  1.0.5?  1.0.6>  1.0.7=  1.0.8<  1.0.9;  1.0.10:  1.1.0-rc9  1.1.08  1.1.17  1.1.26  1.1.35  1.1.44  1.1.53  1.1.62  1.1.71  1.2.x-dev0 ! dev-master/  1.0.1.  1.0.2-  1.0.3,  1.0.4+  1.0.5*  1.0.6)  1.0.7(  1.0.8'  1.0.9&  1.0.10% ! dev-master$  1.0.0#  1.0.1"  1.0.2!  1.1.0   1.2.0  1.3.0  1.4.0  1.4.x-dev  2.0.0  2.0.x-dev ! dev-master # 4.0.0-BETA2 # 4.0.0-BETA3 # 4.0.0-BETA4  4.0.0  4.0.1  4.0.2  4.0.3  4.0.4  4.0.5  4.0.6  4.0.7  4.0.8  4.0.9  4.0.10  4.0.11
  4.0.x-dev	  4.1.0  4.1.1  4.1.2  4.1.3  4.1.4  4.1.5  4.1.6  4.1.7  4.1.8   4.1.9  4.1.10~  4.1.11}  4.1.12|  4.1.13{  4.1.14z  4.1.15y  4.1.16x  4.1.17w  4.1.18v  4.1.19u  4.1.20t  4.1.21s  4.1.22r  4.1.23q  4.1.24p  4.1.25o  4.1.26n  4.1.27m  4.1.28l  4.1.29k  4.1.30j  4.1.31i  4.1.x-devh # 4.2.0-BETA1g  4.2.0f  4.2.1e  4.2.2d  4.2.3c  4.2.4b  4.2.5a  4.2.6`  4.2.7_  4.2.8^  4.2.9]  4.2.10\  4.2.11[  4.2.12Z  4.2.13Y  4.2.14X  4.2.15W  4.2.16V  4.2.17U  4.2.x-devT  5.0.0S  5.0.1R  5.0.2Q  5.0.3P  5.0.4O  5.0.5N  5.0.6M  5.0.7L  5.0.8K  5.0.9J  5.0.10I  5.0.11H  5.0.12G  5.0.13    vgWH9*xeVG8)hTA2#sdUF7(
tZ;'







y
f
V
F
7
(


									s	c	S	C	4	%		p]M>/ zgWG7'wgWG7'paJ6#ueUF7(
rbRC4%l\M>/   {  2.4.0z  2.4.1y  2.4.2x  2.4.3w  2.4.4v  2.4.5u  2.4.6t  2.4.7s  2.4.8r  2.4.9q  2.4.10p  2.4.x-devo # 2.5.0-BETA1n # 2.5.0-BETA2m  2.5.0-RC1l  2.5.0k  2.5.1j  2.5.2i  2.5.3h  2.5.4g  2.5.5f  2.5.6e  2.5.7d  2.5.8c  2.5.9b  2.5.10a  2.5.11`  2.5.12_  2.5.x-dev^ # 2.6.0-BETA1] # 2.6.0-BETA2\  2.6.0[  2.6.1Z  2.6.2Y  2.6.3X  2.6.4W  2.6.5V  2.6.6U  2.6.7T  2.6.8S  2.6.9R  2.6.10Q  2.6.11P  2.6.x-devO # 2.7.0-BETA1N # 2.7.0-BETA2M  2.7.0L  2.7.1K  2.7.2J  2.7.3I  2.7.4H  2.7.x-devG  2.8.x-devF  3.0.x-devE ! dev-master# ' dev-fix-11341"  2.3.0!  2.3.1   2.3.2  2.3.3  2.3.4  2.3.5  2.3.6  2.3.7  2.3.8  2.3.9  2.3.10  2.3.11  2.3.12  2.3.13  2.3.14  2.3.15  2.3.16  2.3.17  2.3.18  2.3.19  2.3.20  2.3.21  2.3.22  2.3.23
  2.3.24	  2.3.25  2.3.26  2.3.27  2.3.28  2.3.29  2.3.30  2.3.31  2.3.32  2.3.x-dev  # 2.4.0-BETA1 # 2.4.0-BETA2~  2.4.0-RC1}  2.4.0|  2.4.1{  2.4.2z  2.4.3y  2.4.4x  2.4.5w  2.4.6v  2.4.7u  2.4.8t  2.4.9s  2.4.10r  2.4.x-devq # 2.5.0-BETA1p # 2.5.0-BETA2o  2.5.0-RC1n  2.5.0m  2.5.1l  2.5.2k  2.5.3j  2.5.4i  2.5.5h  2.5.6g  2.5.7f  2.5.8e  2.5.9d  2.5.10c  2.5.11b  2.5.12a  2.5.x-dev` # 2.6.0-BETA1_ # 2.6.0-BETA2^  2.6.0]  2.6.1\  2.6.2[  2.6.3Z  2.6.4Y  2.6.5X  2.6.6W  2.6.7V  2.6.8U  2.6.9T  2.6.10S  2.6.11R  2.6.x-devQ # 2.7.0-BETA1P # 2.7.0-BETA2O  2.7.0N  2.7.1M  2.7.2L  2.7.3K  2.7.4J  2.7.x-devI  2.8.x-devH  3.0.x-devG ! dev-master# 7 dev-opndkim-on-travis" - dev-php7-support!  4.1.3   4.1.4  4.1.5  4.1.6  4.1.7  4.1.8  4.2.0  4.2.1  4.2.2  4.3.0  4.3.1  5.0.0  5.0.1  5.0.2  5.0.3  5.1.0  5.2.0  5.2.1  5.2.2  5.3.0  5.3.1  5.4.0  5.4.1
  5.x-dev	  6.0.x-dev ! dev-master  1.0.0  1.0.1  1.0.2  1.0.3  1.0.x-dev ! dev-master~ / dev-documentation} / dev-v1.1-sentinel|  0.7.0{  0.7.1z  0.7.2y  0.7.3x  0.7.x-devw  0.8.0v  0.8.1u  0.8.2t  0.8.3s  0.8.4r  0.8.5q  0.8.6p  0.8.7o  0.8.x-devn  1.0.0m  1.0.1l  1.0.2k  1.0.3j  1.0.x-devi  1.1.x-devh ! dev-masterg  0.3.0f  0.3.1e  0.3.5d  0.3.6c  0.3.7b  0.3.8a  0.3.9`  0.3.10_  1.0.0^  1.0.x-dev]  2.0.0\  2.0.x-dev[ ! dev-masterZ ! dev-noticeY  1.0.0X  1.0.1W  1.0.2    p`P@0  p`P@1"whYJ;,paRC4%ueUE5%








p
]
N
?
0
!
									y	j	[	L	=	.		
vgXI:+	qbSD5&vfVF6&vfWH9*paRC4%xiZK<-{k[K;+  ^  2.0.4]  2.0.5\  2.0.6[  2.0.7Z  2.0.9Y  2.0.10X  2.0.12W  2.0.13V  2.0.14U  2.0.15T  2.0.16S  2.0.17R  2.0.18Q  2.0.19P  2.0.20O  2.0.21N  2.0.22M  2.0.23L  2.0.24K  2.0.25J  2.0.x-devI  2.1.0H  2.1.1G  2.1.2F  2.1.3E  2.1.4D  2.1.5C  2.1.6B  2.1.7A  2.1.8@  2.1.9?  2.1.10>  2.1.11=  2.1.12<  2.1.13;  2.1.x-dev:  2.2.09  2.2.18  2.2.27  2.2.36  2.2.45  2.2.54  2.2.63  2.2.72  2.2.81  2.2.90  2.2.10/  2.2.11.  2.2.x-dev-  2.3.0,  2.3.1+  2.3.2*  2.3.3)  2.3.4(  2.3.5'  2.3.6&  2.3.7%  2.3.8$  2.3.9#  2.3.10"  2.3.11!  2.3.12   2.3.13  2.3.14  2.3.15  2.3.16  2.3.17  2.3.18  2.3.19  2.3.20  2.3.21  2.3.22  2.3.23  2.3.24  2.3.25  2.3.26  2.3.27  2.3.28  2.3.29  2.3.30  2.3.31  2.3.32  2.3.x-dev # 2.4.0-BETA1
 # 2.4.0-BETA2	  2.4.0-RC1  2.4.0  2.4.1  2.4.2  2.4.3  2.4.4  2.4.5  2.4.6  2.4.7   2.4.8  2.4.9~  2.4.10}  2.4.x-dev| # 2.5.0-BETA1{ # 2.5.0-BETA2z  2.5.0-RC1y  2.5.0x  2.5.1w  2.5.2v  2.5.3u  2.5.4t  2.5.5s  2.5.6r  2.5.7q  2.5.8p  2.5.9o  2.5.10n  2.5.11m  2.5.12l  2.5.x-devk # 2.6.0-BETA1j # 2.6.0-BETA2i  2.6.0h  2.6.1g  2.6.2f  2.6.3e  2.6.4d  2.6.5c  2.6.6b  2.6.7a  2.6.8`  2.6.9_  2.6.10^  2.6.11]  2.6.x-dev\ # 2.7.0-BETA1[ # 2.7.0-BETA2Z  2.7.0Y  2.7.1X  2.7.2W  2.7.3V  2.7.4U  2.7.x-devT  2.8.x-devS  3.0.x-devR ! dev-masterQ  2.0.4P  2.0.5O  2.0.6N  2.0.7M  2.0.9L  2.0.10K  2.0.12J  2.0.13I  2.0.14H  2.0.15G  2.0.16F  2.0.17E  2.0.18D  2.0.19C  2.0.20B  2.0.21A  2.0.22@  2.0.23?  2.0.24>  2.0.25=  2.0.x-dev<  2.1.0;  2.1.1:  2.1.29  2.1.38  2.1.47  2.1.56  2.1.65  2.1.74  2.1.83  2.1.92  2.1.101  2.1.110  2.1.12/  2.1.13.  2.1.x-dev-  2.2.0,  2.2.1+  2.2.2*  2.2.3)  2.2.4(  2.2.5'  2.2.6&  2.2.7%  2.2.8$  2.2.9#  2.2.10"  2.2.11!  2.2.x-dev   2.3.0  2.3.1  2.3.2  2.3.3  2.3.4  2.3.5  2.3.6  2.3.7  2.3.8  2.3.9  2.3.10  2.3.11  2.3.12  2.3.13  2.3.14  2.3.15  2.3.16  2.3.17  2.3.18  2.3.19  2.3.20  2.3.21
  2.3.22	  2.3.23  2.3.24  2.3.25  2.3.26  2.3.27  2.3.28  2.3.29  2.3.30  2.3.31   2.3.32  2.3.x-dev~ # 2.4.0-BETA1} # 2.4.0-BETA2|  2.4.0-RC1    }n_PA2{l]N?*xiZK<)sdUF3	~o[C.








{
l
]
N
>
.

										t	e	V	G	8	"	qaRC4%p`QB3$paRC4%veR?,p[F3#}hS@0 zgR=*             $  2.4.5#  2.4.6"  2.4.7!  2.4.8   2.4.9  2.4.10  2.4.x-dev # 2.5.0-BETA1 # 2.5.0-BETA2  2.5.0-RC1  2.5.0  2.5.1  2.5.2  2.5.3  2.5.4  2.5.5  2.5.6  2.5.7  2.5.8  2.5.9  2.5.10  2.5.11  2.5.12  2.5.x-dev # 2.6.0-BETA1 # 2.6.0-BETA2
  2.6.0	  2.6.1  2.6.2  2.6.3  2.6.4  2.6.5  2.6.6  2.6.7  2.6.8  2.6.9   2.6.10  2.6.11~  2.6.x-dev} # 2.7.0-BETA1| # 2.7.0-BETA2{  2.7.0z  2.7.1y  2.7.2x  2.7.3w  2.7.4v  2.7.x-devu  2.8.x-devt  3.0.x-devs ! dev-masterw  dev-libv  1.3-beta1u  1.3-beta2t  1.3-beta4s  1.3-beta5r  1.3-rc1q  1.3-rc2	p  1.3o  1.4.0n  1.4.1m  1.4.x-devl  1.5.0U # dev-developT  1.0.0S  1.0.1R  1.1.0Q  1.1.1P  1.1.2O  1.1.3N  1.1.4M  1.1.5L  1.2.0K  1.2.1J  1.2.2I  1.2.3H  1.2.4G  1.2.5F  1.2.6E  1.3.0D  1.3.1C  1.3.2B  1.3.3A  1.3.4@  1.3.5?  1.3.6>  1.3.7=  1.3.8<  1.3.9;  1.3.10:  1.3.119  1.4.18  1.4.27  1.4.36  1.4.45  1.4.54  1.5.03  1.5.12  1.5.21  1.5.30  1.5.4/  1.5.5.  1.5.6-  1.5.7,  1.5.8+  1.5.9*  1.5.10)  1.5.11(  1.5.12'  1.5.13&  1.6.0%  1.6.1$  1.6.2#  1.6.3"  1.6.4!  1.6.5   1.6.x-dev ! 2.0.0-beta % 2.0.0-beta.2  2.0.0  2.0.1  2.0.2  2.0.3  2.0.4  2.0.5  2.0.6  2.0.7  2.0.8  2.0.9  2.0.10  2.0.11  2.0.12  2.0.13  2.0.14  2.0.15  2.0.16  2.0.17  2.1.0
  2.1.1	  2.1.2  2.1.3  2.1.4  2.2.0  2.2.1  2.2.2  2.3.0  2.3.1  2.3.2   2.3.x-dev ! dev-masterM ! dev-keyvalL # dev-developK ) dev-bootstrap3J ! 1.0.0-rc.1I  1.0.0H  1.0.1G  1.0.x-devF  1.1.0E  1.1.x-devD  1.2.0C ! dev-master 5 A dev-expression-voter-optim4 # 2.4.0-BETA13 # 2.4.0-BETA22  2.4.0-RC11  2.4.00  2.4.1/  2.4.2.  2.4.3-  2.4.4,  2.4.5+  2.4.6*  2.4.7)  2.4.8(  2.4.9'  2.4.10&  2.4.x-dev% # 2.5.0-BETA1$ # 2.5.0-BETA2#  2.5.0-RC1"  2.5.0!  2.5.1   2.5.2  2.5.3  2.5.4  2.5.5  2.5.6  2.5.7  2.5.8  2.5.9  2.5.10  2.5.11  2.5.12  2.5.x-dev # 2.6.0-BETA1 # 2.6.0-BETA2  2.6.0  2.6.1  2.6.2  2.6.3  2.6.4  2.6.5  2.6.6  2.6.7
  2.6.8	  2.6.9  2.6.10  2.6.11  2.6.x-dev # 2.7.0-BETA1 # 2.7.0-BETA2  2.7.0  2.7.1  2.7.2   2.7.3  2.7.4~  2.7.x-dev}  2.8.x-dev|  3.0.x-dev{ ! dev-master` 7 dev-session-listeners_ ' dev-fix-11341    xeUE5%ueUE5%}n_L<,scSC4%zjZJ:*









|
h
U
B
3
$

									v	g	Z	M	@	 	sdQ>+whYF3 zk^J7$}n_PA2#ufWH9& vaL9*zdN8"                      N % dev-DDC-1385M % dev-DDC-1509L % dev-DDC-1544K % dev-DDC-1637J % dev-DDC-1652I % dev-DDC-1766H % dev-DDC-1888G % dev-DDC-1889F % dev-DDC-2055E % dev-DDC-2390D % dev-join-pocC 7 dev-persister-factoryB  2.0.x-devA  2.1.3@  2.1.4?  2.1.5>  2.1.6=  2.1.7<  2.1.x-dev; # 2.2.0-BETA1: # 2.2.0-BETA29  2.2.0-RC18  2.2.07  2.2.16  2.2.25  2.2.34  2.2.x-dev3 # 2.3.0-BETA12  2.3.0-RC11  2.3.0-RC20  2.3.0-RC3/  2.3.0-RC4.  2.3.0-  2.3.1,  2.3.2+  2.3.3*  2.3.4)  2.3.5(  2.3.6'  2.3.x-dev& # 2.4.0-BETA1% # 2.4.0-BETA2$  2.4.0-RC1#  2.4.0-RC2"  2.4.0!  2.4.1   2.4.2  2.4.3  2.4.4  2.4.5  2.4.6  2.4.7  2.4.8  2.4.x-dev % 2.5.0-alpha1 % 2.5.0-alpha2 # 2.5.0-beta1  2.5.0-RC1  2.5.0-RC2  2.5.0  2.5.1  2.5.x-dev  2.6.x-dev ! dev-master	H  1.0G  1.0.1F  1.0.x-devE ! dev-masterD  2.0.x-devC  2.1.3B  2.1.4A  2.1.x-dev@ ! 2.2.0BETA1? ! 2.2.0BETA2>  2.2.0-RC1=  2.2.0-RC3<  2.2.0-RC4;  2.2.0-RC5:  2.2.09  2.2.18  2.2.27  2.2.36  2.2.x-dev5 # 2.3.0-BETA14  2.3.0-RC13  2.3.0-RC22  2.3.0-RC31  2.3.00  2.3.x-dev/  2.4.0-RC1.  2.4.0-RC2-  2.4.0-RC3,  2.4.0-RC4+  2.4.0*  2.4.1)  2.4.2(  2.4.3'  2.4.x-dev& # 2.5.0-beta1%  2.5.0$  2.5.1#  2.5.x-dev"  2.6.x-dev! ! dev-master  9 dev-wrapped-collection	  1.0	  1.1	  1.2  1.2.1  1.3.0  1.3.x-dev ! dev-master	  1.0	  1.1  1.2.0  1.3.0  1.3.1  1.3.2  1.3.x-dev  1.4.0  1.4.1  1.4.2  1.4.x-dev  1.5.x-dev ! dev-master}  2.0.7|  2.0.9{  2.0.10z  2.0.11y  2.0.12x  2.0.13w  2.0.14v  2.0.15u  2.0.16t  2.0.17s  2.0.18r  2.0.19q  2.0.20p  2.0.21o  2.0.22n  2.0.23m  2.0.24l  2.0.25k  2.0.x-devj  2.1.0i  2.1.1h  2.1.2g  2.1.3f  2.1.4e  2.1.5d  2.1.6c  2.1.7b  2.1.8a  2.1.9`  2.1.10_  2.1.11^  2.1.12]  2.1.13\  2.1.x-dev[  2.2.0Z  2.2.1Y  2.2.2X  2.2.3W  2.2.4V  2.2.5U  2.2.6T  2.2.7S  2.2.8R  2.2.9Q  2.2.10P  2.2.11O  2.2.x-devN  2.3.0M  2.3.1L  2.3.2K  2.3.3J  2.3.4I  2.3.5H  2.3.6G  2.3.7F  2.3.8E  2.3.9D  2.3.10C  2.3.11B  2.3.12A  2.3.13@  2.3.14?  2.3.15>  2.3.16=  2.3.17<  2.3.18;  2.3.19:  2.3.209  2.3.218  2.3.227  2.3.236  2.3.245  2.3.254  2.3.263  2.3.272  2.3.281  2.3.290  2.3.30/  2.3.31.  2.3.32-  2.3.x-dev, # 2.4.0-BETA1+ # 2.4.0-BETA2*  2.4.0-RC1)  2.4.0(  2.4.1'  2.4.2&  2.4.3%  2.4.4    yeP6L/rbRB2"rbRB-
teVG8)








y
f
V
F
6
&

									z	k	\	M	>	/	 		 p`P@0  yjZJ:*
sdUF7(	qbSD5&bK.yjWH9*\H7(
   S  1.12.16R  1.13.17Q  1.14.0P  1.x-devO  2.0.0N  2.1.0M  2.2.0L  2.3.0K  2.3.1J  2.x-devI ! dev-master3 ? dev-feature/border-filter2 # dev-develop1  0.2.00  0.2.1/  0.2.3.  0.2.4-  0.2.5,  0.2.6+  0.2.7*  0.2.8)  0.3.0(  0.3.1'  0.4.0&  0.4.1%  0.5.0$  0.5.x-dev#  0.6.0"  0.6.1!  0.6.2   0.7.x-dev ! dev-master$B I dev-streamwrapper-check-status!A C dev-json-compile-path-fixes@ ? dev-s3-streamwrapper-size? 3 dev-custom-protocol> ' dev-604-fixes= 7 dev-possible-phar-fix<  2.0.0;  2.0.1:  2.0.29  2.0.38  2.1.07  2.1.16  2.1.25  2.2.04  2.2.13  2.3.02  2.3.11  2.3.20  2.3.3/  2.3.4.  2.4.0-  2.4.1,  2.4.2+  2.4.3*  2.4.4)  2.4.5(  2.4.6'  2.4.7&  2.4.8%  2.4.9$  2.4.10#  2.4.11"  2.4.12!  2.5.0   2.5.1  2.5.2  2.5.3  2.5.4  2.6.0  2.6.1  2.6.2  2.6.3  2.6.4  2.6.5  2.6.6  2.6.7  2.6.8  2.6.9  2.6.10  2.6.11  2.6.12  2.6.13  2.6.14  2.6.15  2.6.16  2.7.0
  2.7.1	  2.7.2  2.7.3  2.7.4  2.7.5  2.7.6  2.7.7  2.7.8  2.7.9  2.7.10   2.7.11  2.7.12~  2.7.13}  2.7.14|  2.7.15{  2.7.16z  2.7.17y  2.7.18x  2.7.19w  2.7.20v  2.7.21u  2.7.22t  2.7.23s  2.7.24r  2.7.25q  2.7.26p  2.7.27o  2.8.0n  2.8.1m  2.8.2l  2.8.3k  2.8.4j  2.8.5i  2.8.6h  2.8.7g  2.8.8f  2.8.9e  2.8.10d  2.8.12c  2.8.13b  2.8.14a  2.8.15`  2.8.16_  2.8.17^  2.8.18]  2.8.19\  2.8.20[  2.8.21Z  2.8.x-devY % 3.0.0-beta.1X  3.0.0W  3.0.1V  3.0.2U  3.0.3T  3.0.4S  3.0.5R  3.0.6Q  3.0.7P  3.0.x-devO  3.1.0N  3.2.0M  3.2.1L  3.2.2K  3.2.3J  3.2.4I  3.2.5H  3.2.6G  3.3.0F  3.3.1E  3.3.2D  3.3.3C  3.3.4B  3.3.5A  3.3.6@  3.3.7?  3.3.8> ! dev-master$ # dev-Smarty2#  2.6.24"  2.6.25!  2.6.26   2.6.27  2.6.28  2.6.29  3.1.11  3.1.12  3.1.13  3.1.14  3.1.15  3.1.16  3.1.17  3.1.18  3.1.19  3.1.20  3.1.21  3.1.23  3.1.24  3.1.25  3.1.26  3.1.27  3.1.x-dev ! dev-master$_ I dev-one-to-many-orphan-removal^ 9 dev-custom-collections] 5 dev-fix-ddc2862-test\ 3 dev-hotfix/DDC-29652[ e dev-hotfix/DDC-3022-wrong-arbitrary-join-sql:Z u dev-hotfix/DDC-3078-slc-cache-interface-ctor-removalY = dev-config-filter-paramsX 9 dev-mapping-as-objectsW  dev-TestV = dev-ImproveErrorMessagesU - dev-ValueObjectsT # dev-DCOM-93S ! dev-DDC-93R # dev-DDC-551Q # dev-DDC-720CP  dev-hotfix/#1342-paginator-functional-test-integration-take2O % dev-DDC-1383    zk\M>/ vfVF6&vfVF6&vfVF6&}n_P<- 








y
j
[
L
=
.


									z	k	V	8		o`M>*}n_J6#{k[K<- yj[G3" zjZJ:*
ziYI9)	wj]PC6)             ! dev-master ) dev-listDiffer ) dev-composerMd # dev-longvar	  0.4	  0.5	  0.6	
  0.7		  0.8	  0.9	  1.0  1.0.1  2.0.0  2.1.x-dev ! dev-master<  1.11.0;  1.11.1:  1.11.29  1.11.38  1.11.47  1.11.56  1.11.65  1.11.74  1.11.83  1.11.92  1.11.101  1.11.110  1.11.12/  1.11.13.  1.11.14-  1.12.0rc1,  1.12.0rc2+  1.12.0rc3*  1.12.0rc4)  1.12.0(  1.12.1'  1.12.2&  1.12.3%  1.12.4$  1.12.5#  1.12.6"  1.12.7!  1.12.7.1   1.12.8  1.12.9  1.12.10  1.12.11  1.12.12  1.12.13  1.12.14  1.12.15  1.12.16 ! 1.12.x-dev ! dev-master  1.0.0  1.0.1  1.1.0 ! dev-master
 
4.8.9	  0.1	  0.3  0.4.0  0.5.0  0.6.0  0.7.0  0.7.1  0.7.2
  0.8.0	  0.8.1  0.9.0  0.10.0  0.10.1  0.11.0  0.12.0  0.12.1 ! 0.12.x-dev % 1.0.0-alpha1  % 1.0.0-alpha2 # 1.0.0-beta1~ # 1.0.0-beta2}  1.0.0|  1.0.1{  1.0.x-devz ! dev-master # dev-develop  1.0.0  1.0.1  1.0.2  1.0.x-dev  1.1.0  1.2.0  1.2.1  1.3.0
  1.4.0	  1.5.0  1.5.1  1.6.0  2.0.x-dev ! dev-master  1.0.0~  1.0.x-dev}  1.3.0|  1.3.x-dev{ ! dev-masterz ) dev-cc_supporty  0.0.1x  0.1.0w  0.2.0v  0.3.0u  0.4.0t  0.5.0s ! dev-masterO 1 dev-hipchat_travisN 5 dev-v3.0.0_tiny_httpM # dev-apikeysL  1.0.0K  1.0.1J  1.0.2I  1.0.3H  1.0.4G  1.0.5F  1.0.6E  1.0.7D  1.0.8C  1.0.9B  1.1.0A  1.1.1@  1.1.2?  1.1.3>  1.1.4=  1.1.5<  1.1.6;  1.1.7:  2.0.19  2.0.28  2.0.37  2.0.46  2.0.55  2.0.64  2.1.03  2.1.12  2.2.01  2.2.10  3.0.0/  3.1.0.  3.2.0- ! dev-mastert  1.0.0s  1.0.1r  1.0.2q  1.0.3p  1.0.4o  1.0.5n  1.0.6m  1.0.7l  1.0.8k  1.0.9j  1.0.10i  1.0.11h  1.0.12g  1.0.13f  1.0.14e  1.0.15d  1.0.16c  1.0.17b  1.0.18a  1.0.19`  1.0.20_  1.0.21^  1.0.22]  1.0.23\  1.0.24[  1.0.25Z  1.0.26Y  1.0.27X  1.0.28W  1.0.29V  1.0.30U  1.0.31T  1.0.32S  1.0.33R  1.0.34Q  1.0.35P  1.0.36O  1.0.37N  1.0.38M  1.0.39L  1.0.40K  1.0.41J  1.0.42I  1.0.43H  1.0.44G  1.0.45F  1.0.46E  1.0.47D  1.0.48C  1.0.49B  1.0.50A  1.0.51@  1.0.52?  1.0.53>  1.0.54= ! dev-masterf - dev-php7-supporte  1.0.0d  1.2.3c  1.3.3b  1.4.3a  1.5.3`  1.5.4_  1.6.5^  1.7.5]  1.7.6\  1.8.7[  1.10.8Z  1.11.8Y  1.11.11X  1.11.12W  1.11.13V  1.11.14U  1.11.15T  1.12.15    ufWH9*ueUE5%{l]N?+teVG8)paN>.









p
a
R
C
4
%

								~	n	^	N	>	.		qbSD5&|m^O:%zk\M:*
zk\M>/ zjZJ:*
{l]N?0!whYJ;&                      1.0.0  1.1.0 # 4.0.0-BETA2 # 4.0.0-BETA3 # 4.0.0-BETA4  4.0.0  4.0.1
  4.0.2	  4.0.3  4.0.4  4.0.5  4.0.6  4.0.7  4.0.8  4.0.9  4.0.10  4.0.x-dev   4.1.0  4.1.1~  4.1.2}  4.1.3|  4.1.4{  4.1.5z  4.1.6y  4.1.7x  4.1.8w  4.1.9v  4.1.10u  4.1.11t  4.1.12s  4.1.13r  4.1.14q  4.1.15p  4.1.16o  4.1.17n  4.1.18m  4.1.19l  4.1.20k  4.1.21j  4.1.22i  4.1.23h  4.1.24g  4.1.25f  4.1.26e  4.1.27d  4.1.28c  4.1.29b  4.1.30a  4.1.x-dev` # 4.2.0-BETA1_  4.2.1^  4.2.2]  4.2.3\  4.2.4[  4.2.5Z  4.2.6Y  4.2.7X  4.2.8W  4.2.9V  4.2.12U  4.2.16T  4.2.17S  4.2.x-devR  5.0.0Q  5.0.4P  5.0.22O  5.0.25N  5.0.26M  5.0.28L  5.0.33K  5.0.x-devJ  5.1.1I  5.1.2H  5.1.6G  5.1.8F  5.1.13E  5.1.16D  5.1.x-devC  5.2.x-devB ! dev-masterA  1.0.0@  1.0.1?  1.1.0> # 4.0.0-BETA2= # 4.0.0-BETA3< # 4.0.0-BETA4;  4.0.0:  4.0.19  4.0.28  4.0.37  4.0.46  4.0.55  4.0.64  4.0.73  4.0.82  4.0.91  4.0.100  4.0.x-dev/  4.1.0.  4.1.1-  4.1.2,  4.1.3+  4.1.4*  4.1.5)  4.1.6(  4.1.7'  4.1.8&  4.1.9%  4.1.10$  4.1.11#  4.1.12"  4.1.13!  4.1.14   4.1.15  4.1.16  4.1.17  4.1.18  4.1.19  4.1.20  4.1.21  4.1.22  4.1.23  4.1.24  4.1.25  4.1.26  4.1.27  4.1.28  4.1.29  4.1.30  4.1.x-dev # 4.2.0-BETA1  4.2.1  4.2.2  4.2.3  4.2.4
  4.2.5	  4.2.6  4.2.7  4.2.8  4.2.9  4.2.12  4.2.16  4.2.17  4.2.x-dev  5.0.0   5.0.4  5.0.22~  5.0.25}  5.0.26|  5.0.28{  5.0.33z  5.0.x-devy  5.1.1x  5.1.2w  5.1.6v  5.1.8u  5.1.13t  5.1.16s  5.1.x-devr  5.2.x-devq ! dev-masterQ ! 1.0.0-rc.1P  1.0.0O  1.1.0N  1.2.0M  1.2.1L  1.2.2K  1.3.0J  1.4.0I  1.5.0H  1.5.1G  1.5.2F  1.6.0E  1.7.0D  1.8.0C  1.8.1B  1.9.0A  1.10.0@  1.x-dev?  2.0.0>  2.1.0= ! dev-master<  1.0.0;  1.0.1:  1.0.29  1.0.38  1.0.47  1.0.56  1.0.65  1.0.74  1.0.83  1.0.92  1.0.101  1.0.110  1.0.12/  1.0.13.  1.0.14-  1.0.15,  1.0.16+  1.0.17*  1.0.18)  1.0.19(  1.0.20'  1.0.21&  1.0.x-dev% ! dev-master$ = dev-set-blog-description# 7 dev-permalinks-option"  2.0.0!  2.1.0   2.1.1  2.1.2  2.1.3  2.2.0  2.3.0  2.4.0  2.5.0  2.5.1  2.5.2  2.5.3  2.5.4  2.6.0  2.7.0  3.0.0  3.0.x-dev    ueVB/}m]N?,u`M=-}m]M=-vgTD5&








o
`
Q
=
*

									x	h	X	I	:	'		p[H8(xhXH8(qbO?0!j[L=.wa8$whYJ;,vgZG8)     r  3.9.2q  3.9.3p  3.9.4o  3.9.5n  3.9.6m  3.9.7l  3.9.8k  3.9.9j  3.9.x-dev	i  4.0h  4.0.1g  4.0.2f  4.0.3e  4.0.4d  4.0.5c  4.0.6b  4.0.7a  4.0.8`  4.0.x-dev	_  4.1^  4.1.1]  4.1.2\  4.1.3[  4.1.4Z  4.1.5Y  4.1.6X  4.1.7W  4.1.8V  4.1.x-dev	U  4.2T  4.2.1S  4.2.2R  4.2.3Q  4.2.4P  4.2.5O  4.2.x-dev	N  4.3M  4.3.1L  4.3.x-devK ! dev-master%J K dev-fix-add-admin-columns-errorI % dev-v1.4-rc1H = dev-add-updated-messages	G  1.2F  1.2.1E  1.2.2D  1.2.3	C  1.3B  1.3.1A  1.3.2@  1.3.3	?  1.4> ! dev-master=  1.0.0<  1.1.0;  1.1.1:  1.1.29 # 4.0.0-BETA28 # 4.0.0-BETA37 # 4.0.0-BETA46  4.0.05  4.0.14  4.0.23  4.0.32  4.0.41  4.0.50  4.0.6/  4.0.7.  4.0.8-  4.0.9,  4.0.10+  4.0.x-dev*  4.1.0)  4.1.1(  4.1.2'  4.1.3&  4.1.4%  4.1.5$  4.1.6#  4.1.7"  4.1.8!  4.1.9   4.1.10  4.1.11  4.1.12  4.1.13  4.1.14  4.1.15  4.1.16  4.1.17  4.1.18  4.1.19  4.1.20  4.1.21  4.1.22  4.1.23  4.1.24  4.1.25  4.1.26  4.1.27  4.1.28  4.1.29  4.1.30  4.1.x-dev
 # 4.2.0-BETA1	  4.2.1  4.2.2  4.2.3  4.2.4  4.2.5  4.2.6  4.2.7  4.2.8  4.2.9   4.2.12  4.2.16~  4.2.17}  4.2.x-dev|  5.0.0{  5.0.4z  5.0.22y  5.0.25x  5.0.26w  5.0.28v  5.0.33u  5.0.x-devt  5.1.1s  5.1.2r  5.1.6q  5.1.8p  5.1.13o  5.1.16n  5.1.x-devm  5.2.x-devl ! dev-masterk  1.0.0j  1.1.0i # 4.0.0-BETA2h # 4.0.0-BETA3g # 4.0.0-BETA4f  4.0.0e  4.0.1d  4.0.2c  4.0.3b  4.0.4a  4.0.5`  4.0.6_  4.0.7^  4.0.8]  4.0.9\  4.0.10[  4.0.x-devZ  4.1.0Y  4.1.1X  4.1.2W  4.1.3V  4.1.4U  4.1.5T  4.1.6S  4.1.7R  4.1.8Q  4.1.9P  4.1.10O  4.1.11N  4.1.12M  4.1.13L  4.1.14K  4.1.15J  4.1.16I  4.1.17H  4.1.18G  4.1.19F  4.1.20E  4.1.21D  4.1.22C  4.1.23B  4.1.24A  4.1.25@  4.1.26?  4.1.27>  4.1.28=  4.1.29<  4.1.30;  4.1.x-dev: # 4.2.0-BETA19  4.2.18  4.2.27  4.2.36  4.2.45  4.2.54  4.2.63  4.2.72  4.2.81  4.2.90  4.2.12/  4.2.16.  4.2.17-  4.2.x-dev,  5.0.0+  5.0.4*  5.0.22)  5.0.25(  5.0.26'  5.0.28&  5.0.33%  5.0.x-dev$  5.1.1#  5.1.2"  5.1.6!  5.1.8   5.1.13  5.1.16  5.1.x-dev  5.2.x-dev ! dev-master  5.0.0  5.0.33  5.0.x-dev  5.1.1  5.1.8  5.1.13  5.1.16  5.1.x-dev  5.2.x-dev ! dev-master    ufWH9*
rcVC4'zk^K</ufYF7(r_PA2#








x
i
Z
M
:
+


 									s	d	U	F	9	*		|hYJ;,|^J7$yiZK<- o`Q>/ {q]I:+ueUE5%sdUF7(
    ~  2.1.0}  2.2.0|  2.3.0{  2.3.1z  2.4.0y  2.4.1x  2.5.0w  2.5.1v  2.6.0u  2.6.1t  2.7.0s  2.8.0r  2.9.0q ! dev-master	a  0.9`  0.9.1_  0.9.1.1^  0.9.2]  0.9.3\  0.9.4[ ' 0.9.4-patch46Z  0.9.5Y  0.10.0X  0.10.1W  0.10.2V  0.10.3U  0.10.4T  0.10.5S ! dev-masters % dev-issue/20'r O dev-feature/pending-pull-requestsq # dev-developp  0.3.0o  0.4.0n  0.5.0m  0.6.0l  0.7.0k  0.7.1j ! 2014-12-11i ! dev-master:  9  8  7  "  1.0.0!  1.0.1   1.0.2  1.0.3  1.0.4  1.0.5  1.0.6  1.0.8  1.0.9  1.1.0  1.1.1  1.1.x-dev  2.0.0  2.0.1  2.0.x-dev  2.1.x-dev ! dev-master # 2.6.0-BETA1 # 2.6.0-BETA2  2.6.0  2.6.1  2.6.2  2.6.3  2.6.4
  2.6.5	  2.6.6  2.6.7  2.6.8  2.6.9  2.6.10  2.6.11  2.6.x-dev # 2.7.0-BETA1 # 2.7.0-BETA2   2.7.0  2.7.1~  2.7.2}  2.7.3|  2.7.4{  2.7.x-devz  2.8.x-devy  3.0.x-devx ! dev-master 5 dev-revert-20-master~ ? dev-guap60/filters-filter/} _ dev-protocol-relative-post-thumbnail-urls| 5 dev-placeholderlinks{  3.0.0z  3.0.1y  3.0.2x  3.0.3w  3.1.0v  3.2.0u  3.3.0t  3.4.0s ! dev-mastero  0.1.0n  0.1.1m  0.1.2l  0.2.0k  0.2.1j ! dev-master	i  1.5h  1.5.1g  1.5.1.1f  1.5.1.2e  1.5.1.3d  1.5.2	c  2.0b  2.0.1a  2.0.2`  2.0.3_  2.0.4^  2.0.5]  2.0.6\  2.0.7[  2.0.8Z  2.0.9Y  2.0.10X  2.0.11W  2.0.x-dev	V  2.1U  2.1.1T  2.1.2S  2.1.3R  2.1.x-dev	Q  2.2P  2.2.1O  2.2.2N  2.2.3M  2.2.x-dev	L  2.3K  2.3.1J  2.3.2I  2.3.3H  2.3.x-dev	G  2.5F  2.5.1E  2.5.x-dev	D  2.6C  2.6.1B  2.6.2A  2.6.3@  2.6.5?  2.6.x-dev	>  2.7=  2.7.1<  2.7.x-dev	;  2.8:  2.8.19  2.8.28  2.8.37  2.8.46  2.8.55  2.8.64  2.8.x-dev	3  2.92  2.9.11  2.9.20  2.9.x-dev	/  3.0.  3.0.1-  3.0.2,  3.0.3+  3.0.4*  3.0.5)  3.0.6(  3.0.x-dev	'  3.1&  3.1.1%  3.1.2$  3.1.3#  3.1.4"  3.1.x-dev	!  3.2   3.2.1  3.2.x-dev	  3.3  3.3.1  3.3.2  3.3.3  3.3.x-dev	  3.4  3.4.1  3.4.2  3.4.x-dev	  3.5  3.5.1  3.5.2  3.5.x-dev	  3.6  3.6.1  3.6.x-dev	  3.7  3.7.1  3.7.2  3.7.3
  3.7.4	  3.7.5  3.7.6  3.7.7  3.7.8  3.7.9  3.7.10  3.7.11  3.7.x-dev	  3.8   3.8.1  3.8.2~  3.8.3}  3.8.4|  3.8.5{  3.8.6z  3.8.7y  3.8.8x  3.8.9w  3.8.10v  3.8.11u  3.8.x-dev	t  3.9s  3.9.1    nZK<-|mYF6&}n_P>,zgXI:+|hT@1"








}
n
_
6
"

 									u	f	W	H	5	&		}n_PA2#~o`L9*vgXI9)
nZ2tdTD4${l]N;m`SF2%            	u  0.2	t  0.3	s  0.4r  0.4.1	q  0.5	p  0.6	o  0.7	n  0.8m ! dev-master	c  0.1	b  0.2	a  0.3` ! dev-master	  0.1	  0.2  0.2.1	  0.3	  0.4 ! dev-master ! dev-master$r I dev-fix_composer_compatibility#q G dev-respect-autoloader-suffixp  dev-fix-4o  1.0.0n  1.0.1m  1.0.2l  1.0.3k  1.0.4j  1.0.5i  1.0.6h  1.0.7g  1.0.8f  1.0.9e  1.0.10d  1.0.11c  1.0.12b  1.0.13a  1.0.14`  1.0.15_  1.0.16^  1.0.17]  1.0.18\  1.x-dev[ # dev-default%V K dev-stories/AM/facebook_library	U  1.0	T  2.0S  dev-trunk	P  1.0O ! dev-master	L  1.2K ! dev-master$ I dev-tmp/travis-env-shenanigans ! dev-runkit # dev-develop  0.1.0  0.1.1  0.1.2  0.1.3  0.1.4  0.1.5  0.1.6  0.1.7  0.1.8  0.1.9  0.1.10  0.1.11  0.1.12
  0.2.0	  0.2.1  0.3.0  0.3.1  0.3.2  0.3.3  0.3.4  0.3.5  0.4.0  0.4.1   0.4.2  0.4.3~  0.4.4}  0.5.0|  0.5.1{  0.5.2z  0.6.x-devy ! dev-master$  1.1.2#  1.1.3"  1.1.4!  2.0.0   2.0.1  2.0.2  2.1.0  2.1.1  2.2.0  2.2.1  2.2.2  2.2.3  2.2.4  2.2.5  2.2.6  2.2.7  2.2.8  2.2.9  2.3.0  2.3.1  2.3.2  2.3.3  2.3.4  2.3.5  2.3.x-dev  3.0.0
  3.0.1	  3.0.2  3.0.3  3.0.4  3.0.5  3.0.x-dev  3.1.0  3.1.1  3.1.2  3.1.3   3.1.x-dev  4.0.0~  4.1.0}  4.1.1|  4.1.2{  4.1.3z  4.2.0y  4.2.1x  4.3.0w  4.4.x-devv ! dev-master%5 K dev-feature/testers-refactoring4  2.2.03  2.2.12  2.2.21  2.2.30  2.2.4/  2.2.5.  2.2.6-  2.2.7,  2.2.8+  2.3.0*  2.3.1)  2.3.2(  2.3.3'  2.3.4&  2.3.5% ! 2.4.0beta1$ ! 2.4.0beta2# ! 2.4.0beta3" ! 2.4.0beta4! ! 2.4.0beta5   2.4.0  2.4.1  2.4.2  2.4.3  2.4.4  2.4.5  2.4.6  2.5.0  2.5.1  2.5.2  2.5.3  2.5.4  2.5.5  2.5.x-dev ! 3.0.0beta1 ! 3.0.0beta2 ! 3.0.0beta3 ! 3.0.0beta4 ! 3.0.0beta5 ! 3.0.0beta6 ! 3.0.0beta7 ! 3.0.0beta8
  3.0.0rc1	  3.0.0rc2  3.0.0rc3  3.0.0  3.0.1  3.0.2  3.0.3  3.0.4  3.0.5  3.0.6   3.0.7  3.0.8~  3.0.9}  3.0.10|  3.0.11{  3.0.12z  3.0.13y  3.0.14x  3.0.15w  3.0.x-devv ! dev-masterP  0.1.0O ! dev-master, + dev-one-dot-six+ / dev-cookie-expiry* + dev-proxy-tests)  1.6.0(  1.6.1' ! dev-master   1.0.0  1.1.0  1.1.1  1.1.2  1.1.3 ! dev-master- [ dev-tmp/template-inheritance-whitespace  dev-dev  1.0.0 ! 2.0.0-rc.1  2.0.0   2.0.1  2.0.2    reXD1 teVG8)qaQA1!ufWH9$qaQA1!








v
g
X
I
:
+

										r	]	H	3	$		kXE5%whTA.o`Q>.r_O?/o_O?/ yfVG8)rcO<)	   :  5.1.19  5.1.28  5.1.67  5.1.86  5.1.135  5.1.164  5.1.x-dev3  5.2.x-dev2 ! dev-master`  1.0.0_  1.1.0^ # 4.0.0-BETA2] # 4.0.0-BETA3\ # 4.0.0-BETA4[  4.0.0Z  4.0.1Y  4.0.2X  4.0.3W  4.0.4V  4.0.5U  4.0.6T  4.0.7S  4.0.8R  4.0.9Q  4.0.10P  4.0.x-devO  4.1.0N  4.1.1M  4.1.2L  4.1.3K  4.1.4J  4.1.5I  4.1.6H  4.1.7G  4.1.8F  4.1.9E  4.1.10D  4.1.11C  4.1.12B  4.1.13A  4.1.14@  4.1.15?  4.1.16>  4.1.17=  4.1.18<  4.1.19;  4.1.20:  4.1.219  4.1.228  4.1.237  4.1.246  4.1.255  4.1.264  4.1.273  4.1.282  4.1.291  4.1.300  4.1.x-dev/ # 4.2.0-BETA1.  4.2.1-  4.2.2,  4.2.3+  4.2.4*  4.2.5)  4.2.6(  4.2.7'  4.2.8&  4.2.9%  4.2.12$  4.2.16#  4.2.17"  4.2.x-dev!  5.0.0   5.0.4  5.0.22  5.0.25  5.0.26  5.0.28  5.0.33  5.0.x-dev  5.1.1  5.1.2  5.1.6  5.1.8  5.1.13  5.1.16  5.1.x-dev  5.2.x-dev ! dev-master  5.0.0  5.0.4  5.0.22  5.0.25  5.0.26  5.0.28
  5.0.33	  5.0.x-dev  5.1.1  5.1.2  5.1.6  5.1.8  5.1.13  5.1.16  5.1.x-dev  5.2.x-dev  ! dev-master  5.1.1~  5.1.2}  5.1.6|  5.1.8{  5.1.13z  5.1.16y  5.1.x-devx  5.2.x-devw ! dev-masterv  1.0.0u  1.1.0t # 4.0.0-BETA2s # 4.0.0-BETA3r # 4.0.0-BETA4q  4.0.0p  4.0.1o  4.0.2n  4.0.3m  4.0.4l  4.0.5k  4.0.6j  4.0.7i  4.0.8h  4.0.9g  4.0.10f  4.0.x-deve  4.1.0d  4.1.1c  4.1.2b  4.1.3a  4.1.4`  4.1.5_  4.1.6^  4.1.7]  4.1.8\  4.1.9[  4.1.10Z  4.1.11Y  4.1.12X  4.1.13W  4.1.14V  4.1.15U  4.1.16T  4.1.17S  4.1.18R  4.1.19Q  4.1.20P  4.1.21O  4.1.22N  4.1.23M  4.1.24L  4.1.25K  4.1.26J  4.1.27I  4.1.28H  4.1.29G  4.1.30F  4.1.x-devE # 4.2.0-BETA1D  4.2.1C  4.2.2B  4.2.3A  4.2.4@  4.2.5?  4.2.6>  4.2.7=  4.2.8<  4.2.9;  4.2.12:  4.2.169  4.2.178  4.2.x-dev7  5.0.06  5.0.45  5.0.224  5.0.253  5.0.262  5.0.281  5.0.330  5.0.x-dev/  5.1.1.  5.1.2-  5.1.6,  5.1.8+  5.1.13*  5.1.16)  5.1.x-dev(  5.2.x-dev' ! dev-master  5.0.0  5.0.1  5.0.2
  5.0.3	  5.0.4  5.0.5  5.0.6  5.0.7  5.0.8  5.0.9  5.0.10  5.0.x-dev  5.1.0   5.1.1  5.1.2~  5.1.3}  5.1.4|  5.1.x-dev{  5.2.x-devz ! dev-master	  0.1	~  0.2	}  0.3|  0.3.1	{  0.4z ! dev-mastery 9 dev-optional-namespacex # dev-php-5.3	w  0.1v  0.1.1    l\L<- }m]M=-}m]M=.ufWH9*}jWG7(









z
g
W
G
7
(


									x	h	X	H	8	(		xhXH8)paRC4%xeRB2#teRB2"scSC3#scSC3#zj[L=.      w  4.0.0v  4.0.1u  4.0.2t  4.0.3s  4.0.4r  4.0.5q  4.0.6p  4.0.7o  4.0.8n  4.0.9m  4.0.10l  4.0.x-devk  4.1.0j  4.1.1i  4.1.2h  4.1.3g  4.1.4f  4.1.5e  4.1.6d  4.1.7c  4.1.8b  4.1.9a  4.1.10`  4.1.11_  4.1.12^  4.1.13]  4.1.14\  4.1.15[  4.1.16Z  4.1.17Y  4.1.18X  4.1.19W  4.1.20V  4.1.21U  4.1.22T  4.1.23S  4.1.24R  4.1.25Q  4.1.26P  4.1.27O  4.1.28N  4.1.29M  4.1.30L  4.1.x-devK # 4.2.0-BETA1J  4.2.1I  4.2.2H  4.2.3G  4.2.4F  4.2.5E  4.2.6D  4.2.7C  4.2.8B  4.2.9A  4.2.12@  4.2.16?  4.2.17>  4.2.x-dev=  5.0.0<  5.0.4;  5.0.22:  5.0.259  5.0.268  5.0.277  5.0.286  5.0.335  5.0.x-dev4  5.1.13  5.1.22  5.1.61  5.1.80  5.1.13/  5.1.16.  5.1.x-dev-  5.2.x-dev, ! dev-master+  1.0.0*  1.1.0) # 4.0.0-BETA2( # 4.0.0-BETA3' # 4.0.0-BETA4&  4.0.0%  4.0.1$  4.0.2#  4.0.3"  4.0.4!  4.0.5   4.0.6  4.0.7  4.0.8  4.0.9  4.0.10  4.0.x-dev  4.1.0  4.1.1  4.1.2  4.1.3  4.1.4  4.1.5  4.1.6  4.1.7  4.1.8  4.1.9  4.1.10  4.1.11  4.1.12  4.1.13  4.1.14  4.1.15
  4.1.16	  4.1.17  4.1.18  4.1.19  4.1.20  4.1.21  4.1.22  4.1.23  4.1.24  4.1.25   4.1.26  4.1.27~  4.1.28}  4.1.29|  4.1.30{  4.1.x-devz # 4.2.0-BETA1y  4.2.1x  4.2.2w  4.2.3v  4.2.4u  4.2.5t  4.2.6s  4.2.7r  4.2.8q  4.2.9p  4.2.12o  4.2.16n  4.2.17m  4.2.x-devl  5.0.0k  5.0.4j  5.0.22i  5.0.25h  5.0.26g  5.0.28f  5.0.33e  5.0.x-devd  5.1.1c  5.1.2b  5.1.6a  5.1.8`  5.1.13_  5.1.16^  5.1.x-dev]  5.2.x-dev\ ! dev-master  1.0.0   1.1.0 # 4.0.0-BETA2~ # 4.0.0-BETA3} # 4.0.0-BETA4|  4.0.0{  4.0.1z  4.0.2y  4.0.3x  4.0.4w  4.0.5v  4.0.6u  4.0.7t  4.0.8s  4.0.9r  4.0.10q  4.0.x-devp  4.1.0o  4.1.1n  4.1.2m  4.1.3l  4.1.4k  4.1.5j  4.1.6i  4.1.7h  4.1.8g  4.1.9f  4.1.10e  4.1.11d  4.1.12c  4.1.13b  4.1.14a  4.1.15`  4.1.16_  4.1.17^  4.1.18]  4.1.19\  4.1.20[  4.1.21Z  4.1.22Y  4.1.23X  4.1.24W  4.1.25V  4.1.26U  4.1.27T  4.1.28S  4.1.29R  4.1.30Q  4.1.x-devP # 4.2.0-BETA1O  4.2.1N  4.2.2M  4.2.3L  4.2.4K  4.2.5J  4.2.6I  4.2.7H  4.2.8G  4.2.9F  4.2.12E  4.2.16D  4.2.17C  4.2.x-devB  5.0.0A  5.0.4@  5.0.22?  5.0.25>  5.0.26=  5.0.28<  5.0.33;  5.0.x-dev    mZJ:+}jZJ:+{k[K;+{k[K;,sdUF7(









l
Y
F
6
&

									x	i	V	F	6	&		wgWG7'wgWG7'	~n_PA2#{gTA1!sdQA1!rbRB2"rbRB2"             (  4.1.5'  4.1.6&  4.1.7%  4.1.8$  4.1.9#  4.1.10"  4.1.11!  4.1.12   4.1.13  4.1.14  4.1.15  4.1.16  4.1.17  4.1.18  4.1.19  4.1.20  4.1.21  4.1.22  4.1.23  4.1.24  4.1.25  4.1.26  4.1.27  4.1.28  4.1.29  4.1.30  4.1.x-dev # 4.2.0-BETA1  4.2.1  4.2.2
  4.2.3	  4.2.4  4.2.5  4.2.6  4.2.7  4.2.8  4.2.9  4.2.12  4.2.16  4.2.17   4.2.x-dev  5.0.0~  5.0.4}  5.0.22|  5.0.25{  5.0.26z  5.0.28y  5.0.33x  5.0.x-devw  5.1.1v  5.1.2u  5.1.6t  5.1.8s  5.1.13r  5.1.16q  5.1.x-devp  5.2.x-devo ! dev-master  1.0.0  1.1.0 # 4.0.0-BETA2 # 4.0.0-BETA3 # 4.0.0-BETA4  4.0.0  4.0.1  4.0.2  4.0.3  4.0.4  4.0.5  4.0.6  4.0.7  4.0.8  4.0.9  4.0.10  4.0.x-dev  4.1.0  4.1.1  4.1.2
  4.1.3	  4.1.4  4.1.5  4.1.6  4.1.7  4.1.8  4.1.9  4.1.10  4.1.11  4.1.12   4.1.13  4.1.14~  4.1.15}  4.1.16|  4.1.17{  4.1.18z  4.1.19y  4.1.20x  4.1.21w  4.1.22v  4.1.23u  4.1.24t  4.1.25s  4.1.26r  4.1.27q  4.1.28p  4.1.29o  4.1.30n  4.1.x-devm # 4.2.0-BETA1l  4.2.1k  4.2.2j  4.2.3i  4.2.4h  4.2.5g  4.2.6f  4.2.7e  4.2.8d  4.2.9c  4.2.12b  4.2.16a  4.2.17`  4.2.x-dev_  5.0.0^  5.0.4]  5.0.22\  5.0.25[  5.0.26Z  5.0.28Y  5.0.33X  5.0.x-devW  5.1.1V  5.1.2U  5.1.6T  5.1.8S  5.1.13R  5.1.16Q  5.1.x-devP  5.2.x-devO ! dev-masterN  1.0.0M  1.0.1L  1.1.0K # 4.0.0-BETA2J # 4.0.0-BETA3I # 4.0.0-BETA4H  4.0.0G  4.0.1F  4.0.2E  4.0.3D  4.0.4C  4.0.5B  4.0.6A  4.0.7@  4.0.8?  4.0.9>  4.0.10=  4.0.x-dev<  4.1.0;  4.1.1:  4.1.29  4.1.38  4.1.47  4.1.56  4.1.65  4.1.74  4.1.83  4.1.92  4.1.101  4.1.110  4.1.12/  4.1.13.  4.1.14-  4.1.15,  4.1.16+  4.1.17*  4.1.18)  4.1.19(  4.1.20'  4.1.21&  4.1.22%  4.1.23$  4.1.24#  4.1.25"  4.1.26!  4.1.27   4.1.28  4.1.29  4.1.30  4.1.x-dev # 4.2.0-BETA1  4.2.1  4.2.2  4.2.3  4.2.4  4.2.5  4.2.6  4.2.7  4.2.8  4.2.9  4.2.12  4.2.16  4.2.17  4.2.x-dev  5.0.0  5.0.4  5.0.22  5.0.25
  5.0.26	  5.0.28  5.0.33  5.0.x-dev  5.1.1  5.1.2  5.1.6  5.1.8  5.1.13  5.1.16   5.1.x-dev  5.2.x-dev~ ! dev-master}  1.0.0|  1.1.0{  1.1.1z # 4.0.0-BETA2y # 4.0.0-BETA3x # 4.0.0-BETA4    teVG8)xeUE6'	ueUE6'	vfVF6&vfVF7(









~
o
`
Q
B
3
$

								s	`	P	@	1	"		p`P@1"qaQA1!qaQA2#yj[L=.n[K;,~jWD4$vgTD4$               	  4.2.5  4.2.6  4.2.7  4.2.8  4.2.9  4.2.12  4.2.16  4.2.17  4.2.x-dev   5.0.0  5.0.4~  5.0.22}  5.0.25|  5.0.26{  5.0.28z  5.0.33y  5.0.x-devx  5.1.1w  5.1.2v  5.1.6u  5.1.8t  5.1.13s  5.1.16r  5.1.x-devq  5.2.x-devp ! dev-mastero  5.0.0n  5.0.4m  5.0.22l  5.0.25k  5.0.26j  5.0.28i  5.0.33h  5.0.x-devg  5.1.1f  5.1.2e  5.1.6d  5.1.8c  5.1.13b  5.1.16a  5.1.x-dev`  5.2.x-dev_ ! dev-master^  1.0.0]  1.1.0\ # 4.0.0-BETA2[ # 4.0.0-BETA3Z # 4.0.0-BETA4Y  4.0.0X  4.0.1W  4.0.2V  4.0.3U  4.0.4T  4.0.5S  4.0.6R  4.0.7Q  4.0.8P  4.0.9O  4.0.10N  4.0.x-devM  4.1.0L  4.1.1K  4.1.2J  4.1.3I  4.1.4H  4.1.5G  4.1.6F  4.1.7E  4.1.8D  4.1.9C  4.1.10B  4.1.11A  4.1.12@  4.1.13?  4.1.14>  4.1.15=  4.1.16<  4.1.17;  4.1.18:  4.1.199  4.1.208  4.1.217  4.1.226  4.1.235  4.1.244  4.1.253  4.1.262  4.1.271  4.1.280  4.1.29/  4.1.30.  4.1.x-dev- # 4.2.0-BETA1,  4.2.1+  4.2.2*  4.2.3)  4.2.4(  4.2.5'  4.2.6&  4.2.7%  4.2.8$  4.2.9#  4.2.12"  4.2.16!  4.2.17   4.2.x-dev  5.0.0  5.0.4  5.0.22  5.0.25  5.0.26  5.0.28  5.0.33  5.0.x-dev  5.1.1  5.1.2  5.1.6  5.1.8  5.1.13  5.1.16  5.1.x-dev  5.2.x-dev ! dev-master  1.1.0  1.1.1 # 4.0.0-BETA2 # 4.0.0-BETA3
 # 4.0.0-BETA4	  4.0.0  4.0.1  4.0.2  4.0.3  4.0.4  4.0.5  4.0.6  4.0.7  4.0.8   4.0.9  4.0.10~  4.0.x-dev}  4.1.0|  4.1.1{  4.1.2z  4.1.3y  4.1.4x  4.1.5w  4.1.6v  4.1.7u  4.1.8t  4.1.9s  4.1.10r  4.1.11q  4.1.12p  4.1.13o  4.1.14n  4.1.15m  4.1.16l  4.1.17k  4.1.18j  4.1.19i  4.1.20h  4.1.21g  4.1.22f  4.1.23e  4.1.24d  4.1.25c  4.1.26b  4.1.27a  4.1.28`  4.1.29_  4.1.30^  4.1.x-dev] # 4.2.0-BETA1\  4.2.1[  4.2.2Z  4.2.3Y  4.2.4X  4.2.5W  4.2.6V  4.2.7U  4.2.8T  4.2.9S  4.2.12R  4.2.16Q  4.2.17P  4.2.x-devO  5.0.0N  5.0.4M  5.0.22L  5.0.25K  5.0.26J  5.0.28I  5.0.33H  5.0.x-devG  5.1.1F  5.1.2E  5.1.6D  5.1.8C  5.1.13B  5.1.16A  5.1.x-dev@  5.2.x-dev? ! dev-master>  1.0.0=  1.1.0< # 4.0.0-BETA2; # 4.0.0-BETA3: # 4.0.0-BETA49  4.0.08  4.0.17  4.0.26  4.0.35  4.0.44  4.0.53  4.0.62  4.0.71  4.0.80  4.0.9/  4.0.10.  4.0.x-dev-  4.1.0,  4.1.1+  4.1.2*  4.1.3)  4.1.4    |l\L<,|l\L=.ufWH9*n[H8(
zkXH8(









y
i
Y
I
9
)

										y	i	Y	I	9	)		paRC4%}iVC3#ufSC3#tdTD4$tdTD4${k\M>/ xdQ>.    =  5.0.x-dev<  5.1.1;  5.1.2:  5.1.69  5.1.88  5.1.137  5.1.166  5.1.x-dev5  5.2.x-dev4 ! dev-master3  1.0.02  1.1.01 # 4.0.0-BETA20 # 4.0.0-BETA3/ # 4.0.0-BETA4.  4.0.0-  4.0.1,  4.0.2+  4.0.3*  4.0.4)  4.0.5(  4.0.6'  4.0.7&  4.0.8%  4.0.9$  4.0.10#  4.0.x-dev"  4.1.0!  4.1.1   4.1.2  4.1.3  4.1.4  4.1.5  4.1.6  4.1.7  4.1.8  4.1.9  4.1.10  4.1.11  4.1.12  4.1.13  4.1.14  4.1.15  4.1.16  4.1.17  4.1.18  4.1.19  4.1.20  4.1.21  4.1.22  4.1.23
  4.1.24	  4.1.25  4.1.26  4.1.27  4.1.28  4.1.29  4.1.30  4.1.x-dev # 4.2.0-BETA1  4.2.1   4.2.2  4.2.3~  4.2.4}  4.2.5|  4.2.6{  4.2.7z  4.2.8y  4.2.9x  4.2.12w  4.2.16v  4.2.17u  4.2.x-devt  5.0.0s  5.0.4r  5.0.22q  5.0.25p  5.0.26o  5.0.28n  5.0.33m  5.0.x-devl  5.1.1k  5.1.2j  5.1.6i  5.1.8h  5.1.13g  5.1.16f  5.1.x-deve  5.2.x-devd ! dev-master  1.0.0  1.1.0 # 4.0.0-BETA2 # 4.0.0-BETA3 # 4.0.0-BETA4  4.0.0  4.0.1
  4.0.2	  4.0.3  4.0.4  4.0.5  4.0.6  4.0.7  4.0.8  4.0.9  4.0.10  4.0.x-dev   4.1.0  4.1.1~  4.1.2}  4.1.3|  4.1.4{  4.1.5z  4.1.6y  4.1.7x  4.1.8w  4.1.9v  4.1.10u  4.1.11t  4.1.12s  4.1.13r  4.1.14q  4.1.15p  4.1.16o  4.1.17n  4.1.18m  4.1.19l  4.1.20k  4.1.21j  4.1.22i  4.1.23h  4.1.24g  4.1.25f  4.1.26e  4.1.27d  4.1.28c  4.1.29b  4.1.30a  4.1.x-dev` # 4.2.0-BETA1_  4.2.1^  4.2.2]  4.2.3\  4.2.4[  4.2.5Z  4.2.6Y  4.2.7X  4.2.8W  4.2.9V  4.2.12U  4.2.16T  4.2.17S  4.2.x-devR  5.0.0Q  5.0.4P  5.0.22O  5.0.25N  5.0.26M  5.0.28L  5.0.33K  5.0.x-devJ  5.1.1I  5.1.2H  5.1.6G  5.1.8F  5.1.13E  5.1.16D  5.1.x-devC  5.2.x-devB ! dev-masterA  1.1.0@  1.1.1?  1.1.2>  1.1.3= # 4.0.0-BETA2< # 4.0.0-BETA3; # 4.0.0-BETA4:  4.0.09  4.0.18  4.0.27  4.0.36  4.0.45  4.0.54  4.0.63  4.0.72  4.0.81  4.0.90  4.0.10/  4.0.x-dev.  4.1.0-  4.1.1,  4.1.2+  4.1.3*  4.1.4)  4.1.5(  4.1.6'  4.1.7&  4.1.8%  4.1.9$  4.1.10#  4.1.11"  4.1.12!  4.1.13   4.1.14  4.1.15  4.1.16  4.1.17  4.1.18  4.1.19  4.1.20  4.1.21  4.1.22  4.1.23  4.1.24  4.1.25  4.1.26  4.1.27  4.1.28  4.1.29  4.1.30  4.1.x-dev # 4.2.0-BETA1  4.2.1  4.2.2  4.2.3
  4.2.4    o_O@1"p`P@0  p`PA2#yj[L=.n[K;,








~
k
[
K
;
,

									|	l	\	L	<	,		|l\L<- teVG8)m^O@1"}jWH9*r^K8){hUF7(rcTE6#            ;  2.2.3:  2.2.49  2.2.58  2.2.67  2.2.76  2.2.x-dev5  2.3.04  2.3.13  2.3.22  2.3.31  2.3.40  2.3.5/  2.3.x-dev.  2.4.x-dev- ! dev-master,  2.2.0+  2.2.1*  2.2.2)  2.2.3(  2.2.x-dev'  2.3.0&  2.3.1%  2.3.2$  2.3.3#  2.3.x-dev"  2.4.x-dev! ! dev-master   2.2.0  2.2.1  2.2.2  2.2.3  2.2.4  2.2.5  2.2.x-dev  2.3.0  2.3.1  2.3.2  2.3.3  2.3.x-dev  2.4.x-dev ! dev-master   2.2.0  2.2.1~  2.2.2}  2.2.3|  2.2.4{  2.2.5z  2.2.6y  2.2.x-devx  2.3.0w  2.3.1v  2.3.2u  2.3.3t  2.3.4s  2.3.5r  2.3.6q  2.3.x-devp  2.4.x-devo ! dev-mastern  0.0.1m ! dev-master*  0.1.0)  0.2.0(  0.3.0'  0.4.0&  0.5.0%  0.6.0$ ! dev-master  1.0.0  1.0.1
  1.0.2	  1.0.3  1.0.4 ! dev-masterU  1.0.0T  1.1.0S  1.1.1R # 4.0.0-BETA2Q # 4.0.0-BETA3P # 4.0.0-BETA4O  4.0.0N  4.0.1M  4.0.2L  4.0.3K  4.0.4J  4.0.5I  4.0.6H  4.0.7G  4.0.8F  4.0.9E  4.0.10D  4.0.x-devC  4.1.0B  4.1.1A  4.1.2@  4.1.3?  4.1.4>  4.1.5=  4.1.6<  4.1.7;  4.1.8:  4.1.99  4.1.108  4.1.117  4.1.126  4.1.135  4.1.144  4.1.153  4.1.162  4.1.171  4.1.180  4.1.19/  4.1.20.  4.1.21-  4.1.22,  4.1.23+  4.1.24*  4.1.25)  4.1.26(  4.1.27'  4.1.28&  4.1.29%  4.1.30$  4.1.x-dev# # 4.2.0-BETA1"  4.2.1!  4.2.2   4.2.3  4.2.4  4.2.5  4.2.6  4.2.7  4.2.8  4.2.9  4.2.12  4.2.16  4.2.17  4.2.x-dev  5.0.0  5.0.4  5.0.22  5.0.25  5.0.26  5.0.28  5.0.33  5.0.x-dev  5.1.1  5.1.2  5.1.6
  5.1.8	  5.1.13  5.1.16  5.1.x-dev  5.2.x-dev ! dev-master  1.0.0  1.1.0  1.1.1 # 4.0.0-BETA2  # 4.0.0-BETA3 # 4.0.0-BETA4~  4.0.0}  4.0.1|  4.0.2{  4.0.3z  4.0.4y  4.0.5x  4.0.6w  4.0.7v  4.0.8u  4.0.9t  4.0.10s  4.0.x-devr  4.1.0q  4.1.1p  4.1.2o  4.1.3n  4.1.4m  4.1.5l  4.1.6k  4.1.7j  4.1.8i  4.1.9h  4.1.10g  4.1.11f  4.1.12e  4.1.13d  4.1.14c  4.1.15b  4.1.16a  4.1.17`  4.1.18_  4.1.19^  4.1.20]  4.1.21\  4.1.22[  4.1.23Z  4.1.24Y  4.1.25X  4.1.26W  4.1.27V  4.1.28U  4.1.29T  4.1.30S  4.1.x-devR # 4.2.0-BETA1Q  4.2.1P  4.2.2O  4.2.3N  4.2.4M  4.2.5L  4.2.6K  4.2.7J  4.2.8I  4.2.9H  4.2.12G  4.2.16F  4.2.17E  4.2.x-devD  5.0.0C  5.0.4B  5.0.22A  5.0.25@  5.0.26?  5.0.28>  5.0.33    paRC4%xeVI5%yj[L=.zk\M>/ {fS>*









v
g
R
>
/
 

									{	l	W	C	4	%		ufWH9*ueUE5%vgXI:+whYJ;,S?0}i\OB3&vgXI4            (  2.6.8'  2.6.9&  2.6.10%  2.6.11$  2.6.x-dev# # 2.7.0-BETA1" # 2.7.0-BETA2!  2.7.0   2.7.1  2.7.2  2.7.3  2.7.4  2.7.x-dev  2.8.x-dev  3.0.x-dev ! dev-masterr # dev-developq  0.8.0p ! dev-master	h  1.5	g  1.6f  1.6.1	e  2.0	d  2.1	c  2.2b ! dev-masters = dev-scalar_stream_valuesr # dev-developq  1.1.0p  1.2.0o  1.3.0n  1.4.0m  1.5.0l  1.5.1k  2.0.0j  2.0.x-devi  2.1.0h ! dev-master+V W dev-improve-url-fromstring-validationU 9 dev-fix-inject-emitterT / dev-guzzle-masterS # dev-developR  4.0.2Q  4.1.2P  4.1.3O  4.1.4N  4.1.5M  4.1.6L  4.1.7K  4.1.8J  4.2.0I  4.2.1H  4.2.2G  4.2.x-devF ! dev-master? # dev-develop>  2.5.2=  2.5.3<  2.5.4;  2.6.x-dev: ! dev-master- # dev-develop,  2.3.2+  2.4.0*  2.4.1)  2.4.3(  2.4.4'  2.5.0&  2.5.1%  2.5.2$  2.5.3#  2.5.4" ! dev-master / dev-tedvim-master # dev-develop  0.9.5  0.10.1  0.10.2  0.10.3  0.10.4
  0.10.5	  0.11.1  0.11.2  0.11.3  0.11.4  0.11.5  0.11.6  0.12.1 ! dev-masterv # dev-developu  2.3.0t  2.3.1s  2.3.2r  2.3.3q  2.4.0p  2.4.1o  2.4.3n  2.4.4m  2.5.0l ! dev-master^ # dev-develop]  2.3.2\  2.3.3[  2.4.0Z  2.4.1Y  2.4.3X  2.4.4W  2.5.0V  2.5.1U  2.5.2T  2.5.3S  2.5.4R ! dev-masterB # dev-developA  1.0.0@  1.0.1?  2.3.1>  2.3.3=  2.4.0<  2.4.1;  2.4.2:  2.4.39  2.4.48  2.5.07  2.5.16  2.5.25  2.5.34  2.5.43 ! dev-master2 # dev-develop1  2.3.10  2.3.3/  2.3.4.  2.4.0-  2.4.1,  2.4.2+  2.4.3*  2.4.4)  2.5.0(  2.5.1'  2.5.2&  2.5.3%  2.5.4$ ! dev-masterq # dev-jsonifyp  dev-develo # dev-devel-3n  2.5.0m  2.5.2l  2.5.3k  2.5.4j  2.5.5i  2.5.6h  2.5.7g  2.5.8f  2.5.9e  2.6.0d  2.6.1c  2.6.2b  2.6.3a  2.6.4`  2.6.5_  2.6.6^  2.6.7]  2.6.8\  2.6.9[  2.7.0Z  2.7.1Y  2.7.2X  2.7.3W  2.7.4V  2.7.5U  2.7.6T  2.7.7S  2.7.8R  2.7.9Q  2.8.0P  2.8.1O  2.8.2N  2.8.3M  2.8.4L  2.8.5K  2.8.6J  2.8.7I  2.8.8H  2.8.10G  2.8.11F  2.8.12E  2.8.13D  2.8.14C  2.8.15B  2.8.16A  2.8.17@ ! dev-master	f  2.0e  2.0.1d  2.0.x-devc ! dev-masterb  1.0.x-deva ! dev-master`  2.0.x-dev_ ! dev-masterN  0.9.0M  0.9.1L  0.9.2K  0.9.3J  0.9.4I  0.9.5H  1.0.0G  1.1.0F  1.2.0E  1.3.0D  1.3.1C  1.3.2B  1.4.0A  1.5.0@  1.5.x-dev? ! dev-master>  2.2.0=  2.2.1<  2.2.2    s^K;+r]H5%|gR?/o_O?/ufWH9&









p
]
M
=
-

										t	d	T	D	4	$		ufWH9%{l_L=0!uhYJ;,sdUF7(
teVG8)s_L=.|m^O@1               _ #2.0.0-beta5^ #2.0.0-beta6] 2.0.0-RC1\ 2.0.0-RC2[ 2.0.0Z 2.0.1Y 2.0.2X 2.0.3W 2.1.0V 2.1.1U 2.1.2T 2.1.3S 2.1.4R 2.1.5Q 2.1.x-devP 2.2.x-devO !dev-masterN 1.0.1M 1.0.2L 1.0.3K 1.0.4J 1.0.5I 2.0.x-devH !dev-masterO dev-focusN 2.0.0M 2.0.1L 2.1.0	K 3.0J 3.0.1I 3.0.2H 3.0.3G 3.0.4F 3.0.5E 3.0.6D 3.0.7C 3.0.8B 3.0.9A 3.1.0@ 3.2.0? 3.2.1> 3.3.0= 3.3.1< 3.4.0; 3.4.1: 3.4.29 3.4.38 3.5.07 3.6.06 3.6.15 3.6.24 4.0.03 4.0.12 4.0.21 4.0.30 4.0.4/ 4.0.5. 4.1.0- 4.1.1, 4.2.0+ 4.2.1* !dev-masterc 0.1.0b 0.2.0a 0.3.0` 0.4.0_ 0.5.0^ 0.5.1] 0.5.2\ 0.5.3[ 0.5.4Z 0.5.5Y 0.5.6X 0.5.7	W 1.0	V 1.1	U 1.2	T 1.3	S 1.4R 1.4.1Q 1.4.2	P 1.5O 1.5.1N 1.5.2M 1.5.x-dev	L 1.6K 1.6.1J 1.6.2	I 1.7H 1.7.1G 1.7.x-dev	F 1.8E 1.8.1	D 1.9C 1.9.1B 1.9.2A 1.9.3@ 1.9.x-dev
? 1.10> !1.10.x-dev= !1.11.x-dev< 2.0.x-dev; !dev-masterg !dev-master%  2.0.4$  2.0.5#  2.0.6"  2.0.7!  2.0.9   2.0.10  2.0.12  2.0.13  2.0.14  2.0.15  2.0.16  2.0.17  2.0.18  2.0.19  2.0.20  2.0.21  2.0.22  2.0.23  2.0.24  2.0.25  2.0.x-dev  2.1.0  2.1.1  2.1.2  2.1.3  2.1.4  2.1.5
  2.1.6	  2.1.7  2.1.8  2.1.9  2.1.10  2.1.11  2.1.12  2.1.13  2.1.x-dev  2.2.0   2.2.1  2.2.2~  2.2.3}  2.2.4|  2.2.5{  2.2.6z  2.2.7y  2.2.8x  2.2.9w  2.2.10v  2.2.11u  2.2.x-devt  2.3.0s  2.3.1r  2.3.2q  2.3.3p  2.3.4o  2.3.5n  2.3.6m  2.3.7l  2.3.8k  2.3.9j  2.3.10i  2.3.11h  2.3.12g  2.3.13f  2.3.14e  2.3.15d  2.3.16c  2.3.17b  2.3.18a  2.3.19`  2.3.20_  2.3.21^  2.3.22]  2.3.23\  2.3.24[  2.3.25Z  2.3.26Y  2.3.27X  2.3.28W  2.3.29V  2.3.30U  2.3.31T  2.3.32S  2.3.x-devR # 2.4.0-BETA1Q # 2.4.0-BETA2P  2.4.0-RC1O  2.4.0N  2.4.1M  2.4.2L  2.4.3K  2.4.4J  2.4.5I  2.4.6H  2.4.7G  2.4.8F  2.4.9E  2.4.10D  2.4.x-devC # 2.5.0-BETA1B # 2.5.0-BETA2A  2.5.0-RC1@  2.5.0?  2.5.1>  2.5.2=  2.5.3<  2.5.4;  2.5.5:  2.5.69  2.5.78  2.5.87  2.5.96  2.5.105  2.5.114  2.5.123  2.5.x-dev2 # 2.6.0-BETA11 # 2.6.0-BETA20  2.6.0/  2.6.1.  2.6.2-  2.6.3,  2.6.4+  2.6.5*  2.6.6)  2.6.7    jT>(qbSD5&zkXI:%xk\M>/ teVG8+ 







r
c
T
E
6
'

										y	j	[	L	=	)		rcTE6'	rbRC4%vgXI:+whYJ;,rcTE6&whYJ;,paRC4%           \ 1.2.0[ 1.3.0Z 1.3.1Y 1.3.2X 1.3.3W 1.3.4V 1.4.0U 1.4.1T 1.4.2S 1.4.3R 1.4.4Q !dev-master%6 Kdev-feature/http-guzzle-adapter5 +dev-ftp-windows&4 Mdev-feature-mountmanager-plugins3 0.1.02 0.1.11 0.1.20 0.1.3/ 0.1.4. 0.1.5- 0.1.6, 0.1.7+ 0.1.8* 0.1.9) 0.1.10( 0.1.11' 0.1.12& 0.1.13% 0.1.14$ 0.1.15# 0.1.16" 0.1.17! 0.1.18  0.1.19 0.1.20 0.2.0 0.2.1 0.2.2 0.2.3 0.2.4 0.2.5 0.2.6 0.2.7 0.2.8 0.2.9 0.2.10 0.2.11 0.2.12 0.2.13 0.2.14 0.2.15 0.3.0 0.3.1 0.3.2 0.3.3
 0.3.4	 0.3.5 0.4.0 0.4.1 0.4.2 0.4.3 0.4.4 0.4.5 0.5.0 0.5.1  0.5.2 0.5.3~ 0.5.4} 0.5.5| 0.5.6{ 0.5.7z 0.5.8y 0.5.9x 0.5.10w 0.5.11v 0.5.12u %1.0.0-alpha1t 1.0.0s 1.0.1r 1.0.2q 1.0.3p 1.0.4o 1.0.5n 1.0.6m 1.0.7l 1.0.8k 1.0.9j 1.0.10i 1.0.11h 1.0.12g 1.0.13f 1.1.x-deve !dev-master +dev-add-ansible&  Mdev-procedure-functional-testing	 0.1~ 0.2.1} 0.2.3| 0.2.4{ 0.2.5z 0.2.6y 0.3.0x 0.3.1w 0.3.2v 0.3.3u 0.3.4t 0.3.5s 0.3.6r 0.3.7q 0.3.9p 0.3.x-devo 0.4.x-devn !dev-masterm !1.0.0-rc.1l !1.0.0-rc.2k 1.0.0j 1.1.0i 1.2.0h 1.3.0g 1.4.0f 1.5.0e 1.5.1d 2.0.0c 2.1.0b 3.0.0a 3.0.x-dev` !dev-master 
0.1.0 
0.1.1 
0.1.2 
0.1.3 
0.2.0 
0.3.0 
0.4.0 
0.5.0  
0.6.0 
0.6.1~ 
0.7.0} 
0.8.0| !
dev-master 9	dev-features/laravel-5 	dev-dev	 	1.0 	1.0.1	 	1.1 	1.1.1	 	1.2 	1.2.1 	1.2.2 	1.2.3 	2.0.0 	2.0.1 	2.0.2 	3.0.0 	3.0.1 	4.0.0 	5.0.0 !	dev-master& )dev-next-major% 'dev-version-4$ 1.0.1# 2.0.0" 3.0.0! 3.0.1  4.0.0 4.0.1	 4.1 4.1.1	 4.2 4.2.1	 4.3 4.3.1 4.3.2	 4.4	 4.5	 5.0 5.0.1	 5.1 !dev-mastera #dev-develop` 1.0.0_ 1.0.1^ 1.0.x-dev] 2.0.0\ 2.1.0[ 2.2.0Z 2.2.1Y 2.2.2X 2.2.3W 2.3.0V 2.3.1U 2.x-devT 3.0.0S !dev-master 0.1.0 0.1.1 0.2.0 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.x-dev #2.0.0-alpha !2.0.0-beta !dev-masterl 7dev-feature/laravel-5k %2.0.0-alpha1j %2.0.0-alpha2i %2.0.0-alpha3h %2.0.0-alpha4g %2.0.0-alpha5f %2.0.0-alpha6e %2.0.0-alpha7d %2.0.0-alpha8c #2.0.0-beta1b #2.0.0-beta2a #2.0.0-beta3` #2.0.0-beta4    o_O?/xiZK<- w_?+	~o`QB3$o[L=.








{
l
Y
J
;
,

										x	i	Z	K	<	-			 yj[N?2#sdWH9,wgWG7'sfWJ;.kP>!xk^Q<(|mZK'            ^ !dev-masterW 1.0.0V 1.0.1U 1.1.0T !dev-master b Adev-fix_for_fatal_in_pr_13a 0.1.2` 0.1.x-dev_ 0.2.0^ !dev-masterM 3dev-deprecated-v0.9	L 0.9K 0.9.1J 1.0.0I 1.0.2H 1.0.3G 1.0.6F 1.0.10E 1.0.x-devD !dev-masterp #dev-rewrite	o 1.0	n 1.1	m 2.0	l 2.1	k 2.2	j 2.3	i 2.4	h 2.5	g 2.6f 2.6.1e 0d 3.0.1c 3.0.2b 3.0.3a !dev-master 3dev-timedate-memory dev-util /dev-serverhandler +dev-dev_rebased dev-dev	 1.0 1.0.1 1.0.2 1.0.3
 1.0.4		 1.1	 1.2	 1.3	 1.4	 1.5 1.5.1	 1.6 1.6.1	 1.7  1.7.1	 1.8	~ 1.9} 1.9.1| 1.9.2{ 1.9.3z 1.9.4y 1.9.5x 1.9.6w 1.9.7v 1.9.8u 1.9.9t 1.9.10s 1.9.11r 1.9.12q 1.9.13p 1.9.14o 1.9.15n 1.10.0m 1.10.1l 1.10.2k 1.10.3j 1.10.4i !1.10.x-devh !dev-master-Q [dev-revert-350-fix_query_logging_is_offP 0.1.0	O 0.2	N 0.3M 0.3.1L 0.3.2	K 1.0J 1.0.1I 1.0.2H 1.0.3G 1.0.4	F 1.1E 1.1.1D 1.1.2C 1.1.3B 1.1.4A 1.1.5	@ 1.2? 1.2.1> 1.2.2= 1.2.3	< 1.3; 1.3.1	: 1.49 1.4.18 1.4.27 1.4.36 1.5.05 1.5.14 1.5.23 1.5.32 1.5.41 1.5.50 1.6.0/ 1.6.1. 1.6.2- 1.6.3, 1.6.4+ 1.6.5* 1.6.6) 1.6.7( 1.6.8' 1.7.0& 1.7.1% 1.7.2$ 1.7.3# 1.7.4" 1.7.5! 1.7.6  1.7.7 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.x-dev 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.1.x-dev !dev-master 0.1.0 !dev-master4 0.0.13 0.0.22 0.1.01 1.0.00 !dev-master/ %dev-laravel4. 2.4.6- 2.4.9, 2.4.11+ 2.4.15* 2.4.16) 2.4.19( 2.5.2' 2.5.3& 2.5.5% !dev-master 0.1.0 0.2.0 0.2.1 0.3.0 0.3.1 0.3.2 1.0.0 !dev-master	 0.5	 1.0 1.0.1	 2.0 !dev-master 0.0.1 0.0.2
 0.0.3	 1.0.x-dev !dev-master 9dev-fix-default-branch )dev-readme-fix =dev-heroku-addon-support 'dev-unittests+ Wdev-lindyhopchris-previous-exceptions ;dev-access_token_header 0.4.1  0.6.0 0.6.1~ 0.6.2} 0.6.3| 0.6.4{ 0.7.0z 0.8.0y 0.8.1x 0.9.0w 0.9.1v 0.9.3u 0.9.4t 0.9.6s 0.9.7r 0.9.8q 0.9.9p 0.9.10o 0.9.11n 0.9.12m 0.10.0l 0.11.0k 0.11.1j 0.11.2i 0.12.0h 0.12.1g 0.13.0f 0.14.0e 0.15.0d !dev-master_ 1.0.0^ 1.0.1] 1.1.0    qbSD5&teVG8)w`I2yjVB.}fO8!








}
n
_
P
A
2
#

									q	b	S	D	0		paRC-
zk^Q,	teVG8)whYJ;}n_PA2#paN?0!xiZG8)         !+2.15.08.25 +2.x-dev !+dev-mastert 7rdev-feature-json-type *1.2.0 *1.2.1 *1.2.2 *1.2.3 *1.2.x-dev
 *1.3.0	 *1.3.1 *1.3.2 *1.4.0 *1.4.1 *1.4.x-dev *2.0.x-dev !*dev-master: #)dev-develop9 )1.0.08 )1.0.17 )1.0.26 )1.0.35 )1.0.44 )1.0.53 )1.0.x-dev2 )1.1.01 )1.1.10 )1.1.2/ )1.1.3. )1.1.x-dev- !)dev-master ?(dev-requests-http-adapter)
 S(dev-feature/allow-ignore-ssl-errors	 (0.1.0 (0.1.1 (0.1.2 (0.2.0 (0.3.0 (0.4.0 (0.5.0 (0.6.0 (0.7.0  (0.7.1 (0.8.0~ (0.8.x-dev} !(dev-masterh -'dev-global-queue!g C'dev-collection-cancellationf 1'dev-some-underflowe '1.0.0d '1.0.1c '1.0.2b '1.0.3a '1.0.4` '1.0.x-dev_ '1.1.0^ '2.0.0] '2.0.x-dev\ '2.1.0[ '2.2.0Z '2.2.1Y !'dev-masterJ &1.0.0I &1.0.1H &1.0.2G &1.0.3F &1.0.4E &1.0.5D &1.0.6C &1.0.7B &1.1.0A &1.1.x-dev@ !&dev-masterq %0.9.0p %0.9.1o !%dev-masterF $1.4.0E $1.4.1D $1.4.2C !$dev-master! C#dev-1.7-move_callback_tweak	 #1.7	 #2.0 #2.0.1 #2.0.2 #2.0.3 #2.0.4 #2.0.x-dev !#dev-master "0.5.1 "0.5.2 "1.0.0
 "1.0.1	 "1.1.0 !"dev-master %!1.0.0-beta.1 !1.0.0 !1.0.1 !1.0.2 !1.0.3
 !1.0.x-dev	 !2.0.0 !2.0.1 !2.0.2 !2.0.x-dev !3.0.0 !3.0.1 !3.0.2 !3.0.3 !3.0.4  !3.0.x-dev !!dev-masteri  0.1.0h  1.0.0g  1.1.0f  1.1.1e  1.2.x-devd ! dev-masterV 1.0.0U 1.0.x-devT 1.1.0S 1.1.1R 1.1.2Q 1.2.0P 1.3.0O 1.4.0N 1.5.0M 1.5.1L 1.5.2K 1.5.3J 1.5.4I 1.6.0H 1.6.1G !dev-masterF 0.1.0E 0.2.0D 0.3.0C 0.4.0B 1.0.0A 1.0.1@ 1.0.x-dev? !dev-master, '1.0.0-alpha.1+ '1.0.0-alpha.2* '1.0.0-alpha.3) '1.0.0-alpha.4( '1.0.0-alpha.5' '1.0.0-alpha.6& '1.0.0-alpha.7% %1.0.0-beta.1$ %1.0.0-beta.2# %1.0.0-beta.3" %1.0.0-beta.4! !1.0.0-rc.1  !1.0.0-rc.2 !1.0.0-rc.3 !1.0.0-rc.4 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 '1.0.5+build.1 1.0.6 1.0.7 1.0.8 1.0.9 1.0.x-dev '2.0.0-alpha.1 '2.0.0-alpha.2 '2.0.0-alpha.3 '2.0.0-alpha.4 %2.0.0-beta.1 %2.0.0-beta.2 !2.0.0-rc.1 !2.0.0-rc.2
 2.0.0	 2.0.x-dev 2.1.0 2.2.0 2.2.1 2.3.0 2.4.0 2.4.1 2.4.2 2.4.3  2.4.4 2.5.0~ 2.5.1} 2.5.2| 2.5.3{ 3.x-devz !dev-mastero 9dev-18-discrep-isemailn =dev-60-custom-exceptionsm 1.0.0l 1.1.0k 1.1.1j 1.2.0i 1.2.1h 1.2.2g 1.2.3f 1.2.4e 1.2.5d 1.2.6c 1.2.7b 1.2.8a 1.2.9` 1.2.x-dev_ 2.0.x-dev    t`L;'s_K7#r^J6"q]I5!p\H7#







r
^
J
6
"
								s	`	Q	B	3	$		vdR@.yj[L=.qbSD5&xiZK<- sdUF7(
sdUF7%zk\M>)  ? 52.4.8> 52.5.0= 52.5.1< 52.5.x-dev; 52.6.x-dev: !5dev-masterc !4dev-legacyb #4dev-developa 42.0.3` 42.0.4_ 42.0.5^ 42.0.6] 42.0.7\ 42.0.8[ 42.1.0Z 42.1.1Y 42.1.2X 42.1.3W 42.1.4V 42.1.5U 42.1.6T 42.2.0rc1S 42.2.0rc2R 42.2.0rc3Q 42.2.0P 42.2.1O 42.2.2N 42.2.3M 42.2.4L 42.2.5K 42.2.6J 42.2.7I 42.2.8H 42.2.9G 42.2.10F 42.3.0E 42.3.1D 42.3.2C 42.3.3B 42.3.4A 42.3.5@ 42.3.6? 42.3.7> 42.3.8= 42.3.9< 42.4.0rc1; 42.4.0rc2: 42.4.0rc39 42.4.0rc48 42.4.0rc57 42.4.0rc66 42.4.0rc75 42.4.04 42.4.13 42.4.22 42.4.31 42.4.40 42.4.5/ 42.4.6. 42.4.7- 42.4.8, 42.5.0+ 42.5.1* 42.5.x-dev) 42.6.x-dev( !4dev-master6 !3dev-legacy5 #3dev-develop4 32.0.33 32.0.42 32.0.51 32.0.60 32.0.7/ 32.0.8. 32.1.0- 32.1.1, 32.1.2+ 32.1.3* 32.1.4) 32.1.5( 32.1.6' 32.2.0rc1& 32.2.0rc2% 32.2.0rc3$ 32.2.0# 32.2.1" 32.2.2! 32.2.3  32.2.4 32.2.5 32.2.6 32.2.7 32.2.8 32.2.9 32.2.10 32.3.0 32.3.1 32.3.2 32.3.3 32.3.4 32.3.5 32.3.6 32.3.7 32.3.8 32.3.9 32.4.0rc1 32.4.0rc2 32.4.0rc3 32.4.0rc4 32.4.0rc5
 32.4.0rc6	 32.4.0rc7 32.4.0 32.4.1 32.4.2 32.4.3 32.4.4 32.4.5 32.4.6 32.4.7  32.4.8 32.5.0~ 32.5.1} 32.5.2| 32.5.x-dev{ 32.6.x-devz !3dev-masters #2dev-developr 20.1.0q !2dev-masterp !10.14.09.16o !10.14.09.17n !10.14.09.23m !11.14.11.15l !11.14.12.10k !11.15.02.26j !11.15.05.29i !11.15.08.17h 11.x-devg !1dev-masterf !00.14.09.16e !00.14.09.17d !00.14.09.23c !00.14.12.10b !00.15.02.25a !00.15.04.13` !00.15.05.29_ !00.15.08.28^ 00.x-dev] !0dev-master\ !/0.14.09.16[ !/0.14.09.17Z !/0.14.09.23Y !/0.14.11.09X !/0.14.12.10W !/0.14.12.22V !/0.15.02.23U !/0.15.05.29T !/0.15.08.25S /0.x-devR !/dev-masterQ !.0.14.09.16P !.0.14.09.17O !.0.14.09.23N !.1.14.11.07M !.1.14.11.26L !.1.14.12.10K !.1.15.02.20J !.1.15.05.29I !.1.15.09.08H .1.x-devG !.dev-masterF !-0.14.09.16E !-0.14.09.17D !-0.14.09.23C !-0.14.11.09B !-0.14.11.26A !-0.14.12.10@ !-0.15.02.19? !-0.15.05.12> !-0.15.05.27= -0.x-dev< !-dev-master; !,1.14.09.16: !,2.14.09.179 !,2.14.09.238 !,2.14.11.097 !,2.14.11.266 !,2.14.12.105 !,2.15.01.234 !,2.15.01.243 !,2.15.02.182 !,2.15.04.131 !,2.15.05.290 !,2.15.06.01/ !,2.15.06.02. !,2.15.07.05- !,2.15.07.07, !,2.15.09.01+ !,2.15.09.03* ,2.x-dev) !,dev-master !+1.14.09.16 !+2.14.09.17 !+2.14.09.23 !+2.14.11.09 !+2.14.11.26 !+2.14.12.10 !+2.15.02.17 !+2.15.05.29    vdR@.
tdUF7(
zk\M>/ rcTE6'	saO@1"








|
m
^
O
@
1
"

									t	e	V	G	8	)		pcGs_K7#r^J6"vgXI1ufWH9*ygUC4%paRC4%      ^ ;2.1.6] ;2.2.0rc1\ ;2.2.0rc2[ ;2.2.0rc3Z ;2.2.0Y ;2.2.1X ;2.2.2W ;2.2.3V ;2.2.4U ;2.2.5T ;2.2.6S ;2.2.7R ;2.2.8Q ;2.2.9P ;2.2.10O ;2.3.0N ;2.3.1M ;2.3.2L ;2.3.3K ;2.3.4J ;2.3.5I ;2.3.6H ;2.3.7G ;2.3.8F ;2.3.9E ;2.4.0rc1D ;2.4.0rc2C ;2.4.0rc3B ;2.4.0rc4A ;2.4.0rc5@ ;2.4.0rc6? ;2.4.0rc7> ;2.4.0= ;2.4.1< ;2.4.2; ;2.4.3: ;2.4.49 ;2.4.58 ;2.4.67 ;2.4.76 ;2.4.85 ;2.5.04 ;2.5.13 ;2.5.22 ;2.5.x-dev1 ;2.6.x-dev0 !;dev-master :dev-tap !:dev-xdebug :dev-xunit :dev-fcgi ':dev-directory ;:dev-autoloaderCacheFile ):dev-autoloader :0.0.1 :1.0.0 :1.1.0 :1.2.0 :1.2.1 :1.2.2 :2.0.0 :2.0.1 :2.1.0
 :2.2.0	 :2.2.1 :2.2.2 :2.x-dev !:dev-master{ !91.14.09.16z !92.14.09.16y !92.14.09.23x !92.14.11.09w !92.14.12.10v !92.14.12.24u !92.15.02.19t !92.15.03.25s !93.15.05.29r !93.15.07.28q !93.15.08.03p 93.x-devo !9dev-master !80.14.09.16 !80.14.09.17 !80.14.09.23 !80.14.11.14 !80.14.11.25 !80.14.12.10 !80.15.02.24 !80.15.05.29 !80.15.08.13 80.x-dev !8dev-mastert ?7dev-feature/zftool-checks$s I7dev-hotfix/streamwrapperresultr 17dev-feature/runner	q 71.0p 71.0.1o 71.0.2n 71.0.3m 71.0.4l 71.0.5k 71.0.6j 71.0.x-devi !7dev-master+ !6dev-legacy* #6dev-develop) 62.0.3( 62.0.4' 62.0.5& 62.0.6% 62.0.7$ 62.0.8# 62.1.0" 62.1.1! 62.1.2  62.1.3 62.1.4 62.1.5 62.1.6 62.2.0rc1 62.2.0rc2 62.2.0rc3 62.2.0 62.2.1 62.2.2 62.2.3 62.2.4 62.2.5 62.2.6 62.2.7 62.2.8 62.2.9 62.2.10 62.3.0 62.3.1 62.3.2 62.3.3
 62.3.4	 62.3.5 62.3.6 62.3.7 62.3.8 62.3.9 62.4.0rc1 62.4.0rc2 62.4.0rc3 62.4.0rc4  62.4.0rc5 62.4.0rc6~ 62.4.0rc7} 62.4.0| 62.4.1{ 62.4.2z 62.4.3y 62.4.4x 62.4.5w 62.4.6v 62.4.7u 62.4.8t 62.5.0s 62.5.1r 62.5.x-devq 62.6.x-devp !6dev-masteru !5dev-legacyt #5dev-develops 52.0.3r 52.0.4q 52.0.5p 52.0.6o 52.0.7n 52.0.8m 52.1.0l 52.1.1k 52.1.2j 52.1.3i 52.1.4h 52.1.5g 52.1.6f 52.2.0rc1e 52.2.0rc2d 52.2.0rc3c 52.2.0b 52.2.1a 52.2.2` 52.2.3_ 52.2.4^ 52.2.5] 52.2.6\ 52.2.7[ 52.2.8Z 52.2.9Y 52.2.10X 52.3.0W 52.3.1V 52.3.2U 52.3.3T 52.3.4S 52.3.5R 52.3.6Q 52.3.7P 52.3.8O 52.3.9N 52.4.0rc1M 52.4.0rc2L 52.4.0rc3K 52.4.0rc4J 52.4.0rc5I 52.4.0rc6H 52.4.0rc7G 52.4.0F 52.4.1E 52.4.2D 52.4.3C 52.4.4B 52.4.5A 52.4.6@ 52.4.7    yj[L=.ydK7$ucQB/s_K7#o[G6"







n
Z
K
<
-


 								{	l	]	N	:	+		whT@,
sdPC6' }iYI5%~n^J7${lYJ;,
vgXI:"u`M=-          l M2.6.2k M2.6.3j M2.6.4i M2.6.5h M2.6.6g M2.6.7f M2.6.8e M2.6.9d M2.6.10c M2.6.11b M2.6.x-deva #M2.7.0-BETA1` #M2.7.0-BETA2_ M2.7.0^ M2.7.1] M2.7.2\ M2.7.3[ M2.7.4Z M2.7.x-devY M2.8.x-devX M3.0.x-devW !Mdev-master )Ldev-var-dumper L1.0.0 L1.0.1 L1.0.2 L1.0.3 L1.0.4 L1.0.5 L1.0.6 L1.0.7 L1.0.x-dev L2.0.x-dev !Ldev-masterP K1.0.0O K1.0.1N K1.0.2M K1.0.x-devL K1.1.0K K1.1.1J K1.1.2I K1.1.x-devH K1.2.0G K1.2.1F K1.2.2E K1.2.3D K1.2.4C K1.2.5B K1.2.x-devA K1.3.0@ K1.3.1? K1.3.2> K1.3.3= K1.3.4< K1.3.x-dev; K2.0.x-dev: !Kdev-masterl J2.4.12k J2.4.13j J2.4.14i J2.5.0h J2.6.0g J2.6.1f J2.7.0e J2.8.0d J2.8.1c J2.8.2b J2.9.0a J2.9.1` J2.10.0_ J2.10.1^ !J2.10.x-dev] J2.11.0\ J2.12.0[ !J2.13.x-devZ J3.0.x-devY !Jdev-masterD #dev-speedup*P UIdev-VasekPurchart-git-blame-optional	O I0.3	N I0.4	M I0.5	L I0.6	K I0.7J I0.7.1	I I0.8	H I0.9G !Idev-masterx H1.0.0w H1.0.x-devv H1.1.0u !Hdev-masterm -Gdev-cipher_mixer!l CGdev-improved_string_presetsk G1.0.0j G1.0.x-devi G1.1.0h G1.1.x-devg !Gdev-master^ !Fdev-master] !Edev-masterR D1.0.0Q D1.0.1P D1.1.0O D1.1.1N D1.2.0M D1.2.1L D1.2.2K D1.3.0J D1.3.1I D1.4.0H D1.5.0G D1.6.0F D1.7.0E D1.7.1D !Ddev-masterM A0.0.1L A0.1.0K A0.1.1J !Adev-master; @dev-bav-0: @dev-php-7
9 @0.28
8 @0.297 @0.29.16 @0.29.25 @1.0.04 @1.0.13 @1.0.22 @1.0.31 @1.0.40 @1.1.0/ @1.2.0. !@dev-masterh !?1.14.09.16g !?2.14.09.16f !?2.14.09.23e !?2.14.11.09d !?2.14.12.10c !?2.14.12.24b !?2.15.02.19a !?2.15.03.25` !?2.15.05.29_ !?2.15.07.28^ ?2.x-dev] !?dev-masterx !>0.14.09.16w !>0.14.09.17v !>1.14.09.23u !>1.14.09.25t !>1.14.11.09s !>1.14.11.10r !>1.14.12.09q !>1.14.12.10p !>1.15.02.02o !>1.15.02.05n !>1.15.04.13m !>1.15.05.29l !>1.15.07.28k !>1.15.09.08j >1.x-devi !>dev-masterW )=dev-calcEngineV 3=dev-cellRestructureU -=dev-experimentalT )=dev-HTMLReaderS #=dev-developR /=dev-develop_2.0.0Q =1.7.9-rc1P =1.7.9O =1.8.0rc1N =1.8.0rc2M =1.8.0rc3L =1.8.0rc4K =1.8.0J =1.8.1I =1.8.x-devH =1.9.x-devG !=dev-masterF #<dev-developE <1.0.0D <1.0.1C <1.0.x-devB !<dev-masterx +;dev-release-2.4w #;dev-developv !;2.0.0beta4u !;2.0.0beta5t ;2.0.0rc1s ;2.0.0rc2r ;2.0.0rc3q ;2.0.0rc4p ;2.0.0rc5o ;2.0.0rc6n ;2.0.0rc7m ;2.0.0l ;2.0.1k ;2.0.2j ;2.0.3i ;2.0.4h ;2.0.5g ;2.0.6f ;2.0.7e ;2.0.8d ;2.1.0c ;2.1.1b ;2.1.2a ;2.1.3` ;2.1.4_ ;2.1.5    ufWH9*paRC4%yiYI9)	yiYI9)p`QB3$








w
h
Y
J
;
,

									~	n	^	N	>	.		zk\3`RD0rcTE6"|m^O@1"teVG8)r_PA2#o_O?/           / Z0.11.2. Z0.12.0- Z0.12.1, Z0.13.0+ Z0.14.0* Z0.14.1) Z0.15.0( Z0.15.1' Z0.16.0& Z0.17.0% Z0.17.1$ Z0.17.2# Z0.18.0" Z0.18.1! Z0.19.0  Z0.19.1 Z0.19.2 Z0.19.3 Z0.20.0 Z0.20.1 !Zdev-masterV Y1.0.0U Y1.0.1T Y1.0.2S Y1.0.3R Y1.0.x-devQ !Ydev-master\ X1.0.0[ X1.0.1Z X1.0.x-devY !Xdev-masterS 1Wdev-faster_barcodeR -Wdev-picture_testQ +Wdev-prepare_1_5P W1.0.0O W1.1.0N W1.2.0M W1.3.0L W1.4.0K W1.5.0J W1.6.x-devI !Wdev-masterv U0.2.2u U0.2.3t U0.2.4s U0.2.5r U0.2.6q U0.2.7p U0.2.8o U0.3.0n U0.3.1m U0.3.2l U0.4.0k U0.4.1j U0.4.2i U0.4.3h U0.4.4g U0.5.0	f U0.7	e U2.0d !Udev-master T1.4.0 T1.4.1 T1.4.2 T1.4.3 T1.5.0 T1.6.0 T1.6.1 !Tdev-mastere S1.0.6d S1.0.7c S1.1.0b S1.2.0a !Sdev-masterZ R1.4.1Y R1.4.2X R1.4.3W R1.4.x-devV #R2.0.0-BETA1U #R2.0.0-BETA2T R2.0.0S R2.0.1R R2.0.2Q R2.0.x-devP !Rdev-master
, !2.3.0
+ !2.3.1 { AQdev-feature/security-snifsz Q1.0.0y Q1.1.0x Q1.2.0w Q1.2.1v Q2.0.0u Q2.1.0t Q3.0.0s Q3.1.0r !Qdev-mastero P0.2.0n !Pdev-master%6 Mrdev-feature-get-internal-domainsY O1.0.0X O1.0.1W !Odev-mastery N1.0.0x !Ndev-masterd >1.22.2` M2.0.7_ M2.0.9^ M2.0.10] M2.0.12\ M2.0.13[ M2.0.14Z M2.0.15Y M2.0.16X M2.0.17W M2.0.18V M2.0.19U M2.0.20T M2.0.21S M2.0.22R M2.0.23Q M2.0.24P M2.0.25O M2.0.x-devN M2.1.0M M2.1.1L M2.1.2K M2.1.3J M2.1.4I M2.1.5H M2.1.6G M2.1.7F M2.1.8E M2.1.9D M2.1.10C M2.1.11B M2.1.12A M2.1.13@ M2.1.x-dev? M2.2.0> M2.2.1= M2.2.2< M2.2.3; M2.2.4: M2.2.59 M2.2.68 M2.2.77 M2.2.86 M2.2.95 M2.2.104 M2.2.113 M2.2.x-dev2 M2.3.01 M2.3.10 M2.3.2/ M2.3.3. M2.3.4- M2.3.5, M2.3.6+ M2.3.7* M2.3.8) M2.3.9( M2.3.10' M2.3.11& M2.3.12% M2.3.13$ M2.3.14# M2.3.15" M2.3.16! M2.3.17  M2.3.18 M2.3.19 M2.3.20 M2.3.21 M2.3.22 M2.3.23 M2.3.24 M2.3.25 M2.3.26 M2.3.27 M2.3.28 M2.3.29 M2.3.30 M2.3.31 M2.3.32 M2.3.x-dev #M2.4.0-BETA1 #M2.4.0-BETA2 M2.4.0-RC1 M2.4.0 M2.4.1 M2.4.2
 M2.4.3	 M2.4.4 M2.4.5 M2.4.6 M2.4.7 M2.4.8 M2.4.9 M2.4.10 M2.4.x-dev #M2.5.0-BETA1  #M2.5.0-BETA2 M2.5.0-RC1~ M2.5.0} M2.5.1| M2.5.2{ M2.5.3z M2.5.4y M2.5.5x M2.5.6w M2.5.7v M2.5.8u M2.5.9t M2.5.10s M2.5.11r M2.5.12q M2.5.x-devp #M2.6.0-BETA1o #M2.6.0-BETA2n M2.6.0m M2.6.1    mP0s^@&~o[H5&vgXI:+
zgXI5&








|
m
^
P
A
3
$

										t	f	W	I	;	-		l]M>. paRC4%{eO9$r_L7" taRC4%ufS@-N@1#         D %k1.0.0-alpha8C %k1.0.0-alpha9B 'k1.0.0-alpha10A k1.0.x-dev@ !kdev-master^ y2.3.33
& y2.7.5Z 2.3.33
" 2.7.5;: wjdev-hotfix/#714-disable-prepares-on-pgsql-for-php-5.69 ?jdev-pgsql-connection-test8 j2.0.x-dev7 j2.1.56 j2.1.65 j2.1.74 j2.1.x-dev3 #j2.2.0-beta12 #j2.2.0-BETA21 j2.2.0-RC10 j2.2.0-RC2/ j2.2.0-RC3. j2.2.0- j2.2.1, j2.2.2+ j2.2.x-dev* #j2.3.0-BETA1) j2.3.0-RC1( j2.3.0-RC2' j2.3.0-RC3& j2.3.0-RC4% j2.3.0$ j2.3.1# j2.3.2" j2.3.3! j2.3.4  j2.3.5 j2.3.x-dev #j2.4.0-BETA1 #j2.4.0-BETA2 j2.4.0-RC1 j2.4.0-RC2 j2.4.0 j2.4.1 j2.4.2 j2.4.3 j2.4.4 j2.4.x-dev #j2.5.0-BETA2 #j2.5.0-BETA3 j2.5.0-RC1 j2.5.0-RC2 j2.5.0 j2.5.1 j2.5.2 j2.5.x-dev j2.6.x-dev !jdev-master !idev-master h0.1.0~ !hdev-master] !gdev-master  #fdev-wip-1.1 %f1.0.0-ALPHA1~ %f1.0.0-ALPHA2} %f1.0.0-ALPHA3| %f1.0.0-ALPHA4{ f1.0.0z f1.0.1y f1.0.2x f1.1.0w f1.1.1v f1.1.x-devu f2.0.x-devt !fdev-masterk e1.3.0j e1.3.1i e1.3.2h e1.3.3g e1.3.4f e1.3.5e e1.3.x-devd !edev-master z2.3.33
Y z2.7.5{ x2.3.33
C x2.7.5W  2.3.33  2.7.5	  2.3.33Q  2.7.5x  2.3.33@  2.7.5i  2.3.331  2.7.5{  2.3.33C  2.7.5x %ddev-cs-fixerw 'ddev-normalizev d0.0.1u d1.0.0t d1.0.1s !ddev-master 2.3.33
g 2.7.5Z c1.0.0Y c1.0.x-devX !cdev-master
 2.3.8
	 3.0.0
 3.0.0_ 
4.8.10
] 
5.0.0
\ 
5.0.1
[ 
5.0.2
Z 
5.0.3W 
5.2.x-dev& ;2.3.33
n ;2.7.5  2.3.33
_  2.7.5 2.3.33
O 2.7.5 2.3.33
T 2.7.5} 2.3.33
E 2.7.5n 2.3.33
6 2.7.5} b0.0.1| b0.0.2{ b0.0.3z b0.0.4y !bdev-masterv a1.0.0u a1.0.1t a1.0.2s a1.0.3r a1.0.4q a1.0.5p a1.0.6o a1.0.7n a1.1.0m !adev-mastere `0.1.0d `1.0.0c `1.0.x-devb !`dev-master ;_dev-default_param_value _1.0.0 _1.0.1 _1.1.0 !_dev-master	 ^0.1	 ^0.2	 ^0.3 !^dev-masterZ ]0.0.1Y ]0.0.2X ]0.0.3W ]0.0.4V ]0.0.5U ]0.0.6T ]0.0.7S ]0.1.0R ]0.1.1Q !]dev-master
Z H2.7.0
Y H2.7.1
X H2.7.2V H2.8.x-dev& #\dev-develop% \1.0.0$ \2.0.0# \2.0.x-dev" \2.1.x-dev! !\dev-mastera [1.0.0` [1.1.0_ [1.1.1^ [1.1.2] [1.1.3\ ![dev-master"F EZdev-custom-scaffold-templateE 5Zdev-rewrite-no-flushD !Zdev-no-svnC -Zdev-fix-travis-2B 5Zdev-fix-upgrade-1139A #Zdev-logging@ 1Zdev-release-0-20-1? #Zdev-fix-594> 9Zdev-after-wp-load-hook!= CZdev-1390-check-update-major#< GZdev-1842-php-7-second-attempt; 9Zdev-package-manager-v2: 9Zdev-package-command-v39 3Zdev-plugin-refactor8 %Zdev-passthru7 Z0.8.06 Z0.9.05 Z0.9.14 Z0.10.03 Z0.10.12 Z0.10.21 Z0.11.00 Z0.11.1    |fRC0!vgSD5&yj[L=.zm`L9*|mYF2








s
d
U
B
3
$

							}	i	V	G	8	%		bB.|mZK<- yj[L=.zk\M9*rcTE6'	sdUF7(
~o\M>/     Q 3.4.1P 3.4.2O 3.4.3N 3.5.0M 3.6.0L 3.7.0K 3.7.1J 3.7.2I 3.7.3H 3.7.4G 3.7.x-devF 3.8.0E 3.8.1D 3.9.0C 3.9.1B 3.9.2A !dev-master@ 2.7.2? 2.8.0> 2.8.1= 2.8.2< 2.8.3; 2.8.4: 2.8.59 2.8.68 2.8.77 2.8.86 3.0.05 3.0.14 3.0.23 3.0.32 3.0.41 3.0.50 3.0.6/ 3.0.7. 3.1.0- 3.1.1, 3.1.2+ 3.2.0* 3.3.0) 3.3.1( 3.4.0' 3.4.1& 3.4.2% 3.4.3$ 3.5.0# 3.6.0" 3.7.0! 3.7.1  3.7.2 3.7.3 3.7.4 3.7.x-dev 3.8.0 3.8.1 3.9.0 3.9.1 3.9.2 !dev-master 2.7.2 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 3.0.0 3.0.1
 3.0.2	 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.1.0 3.1.1 3.1.2 3.2.0  3.3.0 3.3.1~ 3.4.0} 3.4.1| 3.4.2{ 3.4.3z 3.5.0y 3.6.0x 3.7.0w 3.7.1v 3.7.2u 3.7.3t 3.7.4s 3.7.x-devr 3.8.0q 3.8.1p 3.9.0o 3.9.1n 3.9.2m !dev-masterl ~0.1.0k ~0.1.3j ~1.0.0i ~1.0.x-devh ~2.0.0g ~2.0.x-devf !~dev-mastere 9}dev-compat-guzzle-depsd ;}dev-streaming-multipart&c M}dev-WyriHaximus-php7-hhvm-travisb }0.1.0a }0.1.1` }0.2.0_ }0.2.1^ }0.2.2] }0.2.3\ }0.2.6[ }0.3.0Z }0.3.x-devY }0.4.0X }0.4.1W }0.5.x-devV !}dev-master@ #|dev-website? 3|dev-issue-22-take-3> '|dev-issue-129= |2.4.2< |2.4.3; |2.4.x-dev: |2.5.09 |2.5.18 |2.5.27 |2.5.36 |2.5.45 |2.5.x-dev4 |3.5.03 |3.5.12 |3.5.21 |3.5.30 |3.5.4/ |3.5.5. |3.5.x-dev- |3.6.x-dev, !|dev-masterx {1.0.0w {1.0.x-devv !{dev-masteru z1.0.x-devt !zdev-masters y1.0.x-devr !ydev-masterq x1.0.0p x1.0.1o x1.0.2n x1.0.x-devm !xdev-masterl w1.0.0k w1.0.1j w1.0.x-devi !wdev-masterc #v1.0.0-BETA1b v1.0.0a v1.0.1` v1.0.x-dev_ !vdev-master	^ u0.1	] u0.2\ u0.2.1[ u0.2.2Z !udev-master	Y t0.1	X t0.2W !tdev-master	V s0.1	U s0.2	T s0.3	S s0.4R s0.4.1Q s0.4.1.1P s0.4.2O s0.4.3N s0.4.4M s0.4.5L s0.4.6K s0.4.7J !sdev-masterB r1.0.0A r1.0.x-dev@ !rdev-master; q1.0.0: q1.0.19 q1.0.x-dev8 !qdev-master2 p1.0.01 p1.0.10 p1.0.2/ p1.0.3. !pdev-master o1.0.0 o1.x-dev !odev-masterx n1.0.0w n1.x-devv !ndev-master` m1.0.0_ m1.1.0^ m1.1.1] m1.x-dev\ !mdev-master[ l0.1.0Z l0.1.x-devY l1.0.0X !ldev-masterK %k1.0.0-alpha1J %k1.0.0-alpha2I %k1.0.0-alpha3H %k1.0.0-alpha4G %k1.0.0-alpha5F %k1.0.0-alpha6E %k1.0.0-alpha7    yj[L=.ufWH9*rcTE6'	yj[H9*rcTA2#








u
f
W
D
5
&

										r	`	G	3	 		sdQB3m^O@1"sdUF"l]N?0!sdU<(qdWJ=0#~o`QB3$  > 1.2.0= 1.3.0< 1.3.x-dev; !dev-master% 1.0.0$ 1.0.1# 1.0.2" 1.0.3! 1.0.4  1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.2.0 1.2.x-dev !dev-master dev-curlm dev-proxy	 0.3	 0.4	 0.5	 0.6	 0.7	 0.8	  0.9
 0.10
~ 0.11
} 0.12
| 0.13
{ 0.14
z 0.15y !dev-masterx 1.0.0w 1.0.1v 1.1.0u 1.2.0t 1.2.x-devs !dev-masterR +dev-update_sahiQ 1.0.0P 1.0.1O 1.0.2N 1.0.3M 1.0.4L 1.0.5K 1.1.0J 1.2.0I 1.2.x-devH !dev-master8 1.0.07 1.0.16 1.1.05 1.1.14 1.1.23 1.1.32 1.1.41 1.2.00 1.2.x-dev/ 1.3.0. 1.3.1- 1.3.2, 1.3.3+ 1.3.x-dev* 2.0.0) 2.0.1( 2.1.0' 2.1.x-dev& !dev-master  Adev-2-architecture-changes  1.3.0 1.3.1~ 1.3.2} 1.3.3| 1.3.4{ !1.4.0beta1z !1.4.0beta2y !1.4.0beta3x !1.4.0beta4w !1.4.0beta5v 1.4.0u 1.4.1t 1.4.2s 1.4.3r 1.5.0q 1.6.0p 1.6.1o 1.7.0n 1.7.x-devm !dev-master	 1.0.0 1.0.1 1.1.0 1.1.x-dev !dev-masterW  4.4.0' *2.0.0& *2.0.1
 7gdev-symfony-3-support 1.0.0 1.0.1 1.0.x-dev 1.1.0 1.1.1 1.1.2 1.1.x-dev !dev-master <2.3.33
I <2.7.5 2.3.33
a 2.7.5D  2.3.33  2.7.5 1.0.0 1.0.x-dev !dev-masterO +dev-read_bufferN dev-readM 0.1.0L 0.1.1K 0.2.0J 0.2.1I 0.2.2H 0.2.3G 0.2.4F 0.2.5E 0.2.6D 0.3.0C 0.3.1B 0.3.2A 0.3.3@ 0.3.4? 0.3.x-dev> 0.4.0= 0.4.1< 0.4.2; 0.5.x-dev: !dev-master9 0.1.08 0.1.17 0.2.06 0.2.35 0.2.64 0.3.03 0.3.12 0.3.21 0.3.30 0.3.4/ 0.3.x-dev. 0.4.0- 0.4.1, 0.4.2+ 0.4.x-dev* !dev-master +dev-singularity 0.1.0 0.1.1 0.2.0 0.2.3 0.2.6 0.2.7 0.3.0 0.3.3 0.3.4 0.3.x-dev 0.4.0 0.4.1 0.5.x-dev !dev-master
 3.0.0	 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.1.0 3.1.1  3.1.2 3.2.0~ 3.3.0} 3.3.1| 3.4.0{ 3.4.1z 3.4.2y 3.4.3x 3.5.0w 3.6.0v 3.7.0u 3.7.1t 3.7.2s 3.7.3r 3.7.4q 3.7.x-devp 3.8.0o 3.8.1n 3.9.0m 3.9.1l 3.9.2k !dev-masterj 2.7.2i 2.8.0h 2.8.1g 2.8.2f 2.8.3e 2.8.4d 2.8.5c 2.8.6b 2.8.7a 2.8.8` 3.0.0_ 3.0.1^ 3.0.2] 3.0.3\ 3.0.4[ 3.0.5Z 3.0.6Y 3.0.7X 3.1.0W 3.1.1V 3.1.2U 3.2.0T 3.3.0S 3.3.1R 3.4.0    paRC4%|m^;'zfWH9*m]M9)xiVG4!








s
d
U
B
/

								v	f	R	C	0	!	wfS@0  }iZK<-oV;!teVG8)o`QB-tdTD4${hS>)           " 2.7.4! 2.7.5  2.7.x-dev 2.8.x-dev %3.0.0-alpha1 %3.0.0-alpha2 #3.0.0-beta1 #3.0.0-beta2 #3.0.0-beta3 3.0.0-RC1 3.0.0-RC2 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.0.10 3.0.11 3.0.12
 3.0.13	 3.0.14 !3.1.0-beta #3.1.0-beta2 3.1.0-RC1 3.1.0 3.2.x-dev !dev-masterq +dev-regex-lexerp 'dev-kernelseto 'dev-operatorsn #dev-developm 0.9.0l 1.0.0k 1.0.1j 1.0.x-devi !dev-masterV #dev-developU 1.2.4T 1.3.0S 1.3.1R 1.4.0Q !dev-masterP 7dev-feature/cli-toolsO 0.1.0N 0.1.1M 0.2.0L 0.3.0K 0.4.0J 0.4.1I 0.4.2H 0.4.3G 0.5.0-RC1F 0.5.0E 0.6.0D 0.6.1C 0.x-devB '1.0.0-alpha.1A 1.0.x-dev@ !dev-master -dev-update-fixer /dev-update-fxer-2 +dev-phpcs-fixer 0.1.24 0.1.25 0.1.26 0.1.27  0.1.28 0.1.29~ 0.1.30} 0.1.31| 1.0.0{ 1.x-devz 2.0.0y 2.0.1x 2.0.2w 2.0.3v 2.0.4u 2.0.5t !dev-master$  2.7.5I 'dev-rewrite-aH 1.0.0G !dev-master. #dev-develop- %dev-post-2.4, 2.4.9+ 2.4.10* 2.4.11) 2.4.12( 2.4.13' 2.4.x-dev& 2.5.x-dev% 3.0.2.1$ 3.0.3-rc1# 3.0.3-rc2" 3.0.3! 3.0.4  3.0.5 3.0.6-rc1 3.0.6-rc2 3.0.6 3.0.7-rc1 3.0.7 3.0.8 3.0.9-rc1 3.0.9 !3.0.10-rc1 3.0.10 !3.0.11-rc1 3.0.11 3.0.12 3.0.13 3.0.14 3.0.x-dev #3.1.0-beta1 #3.1.0-beta2 #3.1.0-beta3 3.1.0-rc1 3.1.0-rc2
 3.1.0-rc3	 3.1.0 3.1.1 3.1.2-rc1 3.1.2 3.1.3-rc1 3.1.3-rc2 3.1.3 3.1.4-rc1 3.1.4  3.1.5-rc1 3.1.5~ 3.1.6-rc1} 3.1.6-rc2| 3.1.6-rc3{ 3.1.6z 3.1.7-rc1y 3.1.7x 3.1.8w 3.1.9-rc1v 3.1.9u !3.1.10-rc1t !3.1.10-rc2s 3.1.10r !3.1.11-rc1q 3.1.11p 3.1.12o !3.1.13-rc1n 3.1.13m !3.1.14-rc1l 3.1.14k 3.1.15j 3.1.x-devi #3.2.0-beta1h #3.2.0-beta2g 3.2.0-rc1f 3.2.x-deve 3.3.x-devd 3.x-devc 4.0.x-devb !dev-master. 0.1.0- 0.1.1, 0.1.2+ 0.1.3* 0.1.4) !dev-masterU  2.3.33  2.7.5D =2.3.33
 =2.7.5 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.x-dev 2.0.x-dev !dev-masterM Atdev-reusable-handler-stackg 0.1.0f 1.0.0e 1.0.1d 1.0.2c 1.0.3b 1.0.4a 1.0.5` 1.0.6_ 1.0.7^ 1.0.x-dev] 2.0.0\ 2.0.1[ 2.0.2Z 2.0.3Y 2.0.4X 3.0.0W 3.1.0V 3.1.1U 3.1.x-devT !dev-masterE 1.0.0D 1.0.1C 1.0.2B 1.0.3A 1.0.4@ 1.0.5? 1.1.0    teVG8)whYJ;,{R:"zS?,
paRC4%








n
[
L
9
*
										u	f	W	H	9	*	sdQB3$teRC4"|iVC0q]N?0!zk\M>/ }nW@)rcTE6'                r 2.2.2q 2.2.3p 2.2.4o 2.2.5n 2.2.6m 2.2.7l 2.2.x-devk 2.3.0j 2.3.1i 2.3.2h 2.3.3g 2.3.4f 2.3.x-deve 2.4.x-devd !dev-masterc #dev-developb 2.1.0a !dev-master` =dev-extra-lazy-listeners_ ?dev-inheritance_awareness^ 'dev-nette-2.0] 'dev-nette-2.1\ 'dev-nette-2.2[ 1.0.0Z 1.0.1Y 1.0.2X 1.1.0W 1.1.1V 1.2.0U 1.2.1T 1.2.2S 1.2.3R 1.2.4Q 1.2.5	P 2.0O 2.0.1N 2.0.2M 2.1.0L 2.1.1K 2.1.3J 2.1.4I 2.1.x-devH 2.2.0G 2.3.0F 2.3.1E 2.3.2D 2.3.x-devC 2.4.0B 2.4.x-devA !dev-master 0.1.0 0.1.1 0.1.2 1.0.0 1.0.1 !dev-master 0.1.0 1.0.0 1.0.1 1.1.0 1.1.1 1.1.2 !dev-masterv 9dev-element-reflectionu 2.8.0t 2.8.1s 4.0.0-RC1r 4.0.0-RC2q 4.0.0-RC3p 4.0.0-RC4o 4.0.0-RC5n 4.0.0m 4.0.1l 4.1.0k 4.1.1j #4.2.0.x-devi 4.2.x-devh !dev-master +dev-crypto-once #dev-timeout dev-test 0.3.0 0.3.1 0.3.x-dev 0.4.0 0.4.1 0.4.2 0.4.3 0.4.4 0.4.x-dev
 !dev-masterS 9dev-compat-parser-depsR 0.2.2Q 0.2.3P 0.2.5O 0.2.6N 0.3.0M 0.3.1L 0.3.x-devK 0.4.0J 0.4.1I 0.4.2H 0.4.3G 0.4.4F 0.4.5E 0.4.6D 0.4.7C 0.5.x-devB !dev-master#" Gdev-missing_RR_implementation! 0.2.0  0.2.1 0.2.2 0.2.3 0.2.4 0.2.5 0.2.6 0.3.0 0.3.2 0.3.x-dev 0.4.0 0.4.1 0.4.x-dev !dev-master ;dev-windows-test-compat 0.3.0 0.3.x-dev 0.4.0 0.5.x-dev !dev-master 0.2.6 0.3.0 0.3.2
 0.3.x-dev	 0.4.0 0.5.x-dev !dev-masterg 0.1.0f 0.1.1e 0.2.0d 0.2.1c 0.2.2b 0.2.3a 0.2.4` 0.2.5_ 0.2.6^ 0.2.7] 0.3.0\ 0.3.1[ 0.3.2Z 0.3.3Y 0.3.4X 0.3.x-devW 0.4.0V 0.4.1U 0.4.2T 0.4.x-devS 0.5.x-devR !dev-master# Idev-feature/support-type-hints' Qdev-feature/update-phpunit-support +dev-feature/185 +dev-feature/195
} 2.1.1O 7dev-master-mysql-yearN 9dev-master-fix-marshalM )dev-issue-6297L )dev-issue-6975%K Kdev-3.0-time-leap-year-problemsJ 1dev-3.0-tree-wrongI 2.4.5H 2.4.6G 2.4.7F 2.4.8E 2.4.9D 2.4.10C !2.5.0-betaB 2.5.0-RC1A 2.5.0-RC2@ 2.5.0? 2.5.1> 2.5.2= 2.5.3< 2.5.4; 2.5.5: 2.5.69 2.5.78 2.5.87 2.5.96 2.5.x-dev5 !2.6.0-beta4 2.6.0-RC13 2.6.02 2.6.11 2.6.20 2.6.3/ 2.6.4. 2.6.5- 2.6.6, 2.6.7+ 2.6.8* 2.6.9) 2.6.10( 2.6.11' 2.7.0-RC& 2.7.0% 2.7.1$ 2.7.2# 2.7.3    {l]N;,zk\M>+yj[H9*|iVG8)jVC0!








x
i
Z
F
3
 

									n	[	L	=	*		teQ>/ ufWH9*sdUF7(
q]N?0!|m^O@1"{hYJ;'yj[L=.                8 0.1.07 0.1.16 0.2.05 0.2.14 0.2.23 0.3.02 0.3.21 0.3.30 0.4.0/ 0.4.1. 0.4.2- !0.5.0-beta, #0.5.0-beta2+ 0.5.0* 0.5.1) 0.5.3( !dev-master 2.1.0-rc1 2.1.0 2.1.1 2.1.x-dev !dev-master 3.0.2 3.0.3 3.0.4 3.0.x-dev !dev-master 3.0.2 3.0.3 3.0.4
 3.0.x-dev	 !dev-masterz !dev-fix-22	y 1.0x 1.0.1w 1.0.3v 1.0.4u 1.0.5t 1.0.6s 1.0.7r 2.0.0q 2.0.1p 2.0.2o 2.0.3n 2.0.x-devm !dev-master #dev-develop 1.2.0 1.2.1 1.2.2 1.2.3 1.3.0 1.4.0 1.4.1
 1.5.0	 1.5.1 !dev-master3 4.0.02 4.0.11 4.0.20 !dev-master  #dev-console %dev-bar-json~ 0.9.0} 0.9.1| 2.2.0{ 2.2.1z 2.2.2y 2.2.3x 2.2.4w 2.2.5v 2.2.6u 2.2.7t 2.2.8s 2.2.x-devr 2.3.0q 2.3.1p 2.3.2o 2.3.3n 2.3.4m 2.3.x-devl 2.4.x-devk !dev-master  2.3.33b  2.7.53 2.2.02 2.2.11 2.2.20 2.2.3/ 2.2.4. 2.2.x-dev- 2.3.0, 2.3.1+ 2.3.x-dev* 2.4.x-dev) !dev-master( 2.2.0' 2.2.1& 2.2.x-dev% 2.3.0$ 2.3.1# 2.3.x-dev" !dev-master! 2.2.0  2.2.1 2.2.2 2.2.x-dev 2.3.0 2.3.1 2.3.x-dev 2.4.x-dev !dev-master 2.2.0 2.2.1 2.2.2 2.2.x-dev 2.3.0 2.3.1 2.3.x-dev 2.4.x-dev !dev-masteru 2.2.0t 2.2.1s 2.2.2r 2.2.3q 2.2.4p 2.2.x-devo 2.3.0n 2.3.1m 2.3.2l 2.3.x-devk 2.4.x-devj !dev-masteri 2.2.0h 2.2.1g 2.2.2f 2.2.3e 2.2.4d 2.2.5c 2.2.6b 2.2.7a 2.2.8` 2.2.x-dev_ 2.3.0^ 2.3.1] 2.3.2\ 2.3.3[ 2.3.x-devZ 2.4.x-devY !dev-masterX )dev-standaloneW 2.2.0V 2.2.1U 2.2.2T 2.2.x-devS 2.3.0R 2.3.1Q 2.3.x-devP 2.4.x-devO !dev-master< 2.2.0; 2.2.1: 2.2.29 2.2.38 2.2.x-dev7 2.3.x-dev6 !dev-master5 2.2.04 2.2.13 2.2.22 2.2.31 2.2.40 2.2.5/ 2.2.6. 2.2.x-dev- 2.3.0, 2.3.1+ 2.3.2* 2.3.3) 2.3.x-dev( 2.4.0' 2.4.1& 2.4.2% 2.4.x-dev$ 3.0.x-dev# !dev-master" 2.2.0! 2.2.1  2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.2.x-dev 2.3.0 2.3.1 2.3.2 2.3.3 2.3.x-dev 2.4.x-dev !dev-master 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.2.7 2.2.8
 2.2.x-dev	 2.3.0 2.3.1 2.3.2 2.3.3 2.3.4 2.3.5 2.3.x-dev 2.4.x-dev !dev-mastert 2.2.0s 2.2.1    sdQB3$p\L<,ueUE5%}m]M=-xhXH8(








q
a
Q
A
2


									~	o	[	G	7	'		o[G7'o_O?/wgWG7#xhTA2s_O;(paRC4%rbN?0!          	G 1.0F 1.0.1E 1.0.2D 1.0.x-devC !dev-masterh 1.0.0g 1.0.1f 1.0.2e 1.1.0d !dev-master@ 0.10.0? !0.10.x-dev> !dev-master= dev-hhvm< -dev-refactoring2; %dev-perf_opt	: 1.19 1.2.08 1.2.17 2.0.06 2.0.15 2.0.24 2.1.03 2.2.02 2.2.11 2.2.20 2.2.3/ 2.2.4. 2.2.5- 2.2.6, 2.3.0+ 2.4.0* 2.4.1) 2.5.0( 2.5.1' 2.5.2& 2.6.0% 2.7.x-dev$ 091.x-dev# !dev-masterw 0.10.0v !0.10.x-devu !dev-masterN +dev-common-markM 0.9.0L 0.9.1K 0.9.2J 0.9.x-devI 1.0.0-rcH 1.0.0G 1.0.1F 1.0.2E 1.0.x-devD 1.1.0C 1.1.x-devB !dev-masterA 0.10.0@ 0.10.1? 0.10.2> 0.10.3= !0.10.x-dev< !dev-master  0.6.3  0.10.0 0.10.1~ 0.10.2} !0.10.x-dev| !dev-masterL 0.10.0K 0.10.1J 0.10.2I 0.10.3H 0.10.4G 0.11.0F 0.11.1E 0.11.2D 0.11.3C 0.11.4B 0.12.0A 0.12.1@ !0.12.x-dev? !dev-master( 0.10.0' 0.10.1& 0.11.0% 0.11.1$ 0.11.2# 0.12.0" 0.12.1! !0.12.x-dev  !dev-master~ 0.10.0} 0.10.1| 0.11.0{ 0.11.1z 0.11.2y 0.11.3x 0.11.4w 0.11.5v 0.12.0u !0.12.x-devt !dev-masters 0.10.0r 0.10.1q 0.11.0p 0.11.1o 0.11.2n 0.11.3m 0.11.4l !0.11.x-devk !dev-master] 0.10.0\ 0.11.0[ 0.11.1Z 0.12.0Y !0.12.x-devX !dev-masterB 0.9.0A 0.9.1@ 0.9.2? 0.9.3> 0.9.4= 0.10.0< 0.10.1; 0.10.2: 0.11.09 0.11.18 !0.11.x-dev7 !dev-master 0.9.0 0.10.0 0.10.2 0.10.3 0.10.4 0.10.5 !0.10.x-dev !dev-master 1.0.0 1.0.1 1.0.2 !dev-master* Udev-twistor-configurable-permissions1 1.0.140 1.0.15- 0.10.0, 0.10.1+ 0.10.2* 0.10.3) 0.10.4( 0.10.5' !0.10.x-dev& !dev-master2 0.9.01 0.9.10 0.9.2/ 0.10.0. 0.10.1- 0.10.2, 0.10.3+ 0.10.4* 0.10.5) 0.10.6( 0.10.7' 0.10.8& 0.10.9% 0.10.10$ 0.10.11# 0.11.0" 0.11.1! !0.11.x-dev  !dev-master 0.9.0 0.9.1 0.10.0 0.10.1 0.10.2 0.10.3 0.10.4 0.10.5 0.10.6 0.10.7 0.10.8
 !0.10.x-dev	 !dev-master 0.9.0 0.10.0 0.10.1 0.10.2 0.11.0 0.11.1 0.12.0 0.12.1  !0.12.x-dev !dev-masterb 1.0.0a 1.0.x-dev` !dev-mastert 7dev-feature/cli-toolss 0.1.0r 0.1.1q 0.2.0p 0.3.0o 0.4.0n 0.4.1m 0.4.2l 0.4.3k 0.5.0-RC1j 0.5.0i 0.6.0h 0.6.1g 0.x-devf '1.0.0-alpha.1e 1.0.x-devd !dev-master9 9dev-custom_transformer    xiZK<- ufWH4  p\H8(qaQA1!yiUA1!








p
_
O
?
/

									~	j	Z	J	:	*		zjVB2"rbRC4%vfVF6&zk\M>/ teVG2ufWH9*vgXI:+            #dev-develop 0.1.0 0.1.1 0.2.0 0.3.0
 0.3.1	 0.3.2 0.4.0 0.5.0 0.6.0 0.6.1 0.6.2 0.6.3 0.6.4 0.6.5  0.7.0 0.8.0~ 0.8.1} 0.9.0| 1.0.0{ 1.1.0z 1.1.1y 1.1.2x 1.2.0w 1.2.1v 1.2.2u 2.0.0t 2.0.1s 2.0.2r 2.0.3q 2.0.4p 2.0.5o 2.0.6n 2.1.0m 2.1.1l 2.1.2k 2.1.3j 2.2.0i 3.0.x-devh !dev-masterg #dev-developf 1.0.0e 1.0.1d 2.0.0c !dev-master /dev-smtp-refactor !dev-xoauth dev-qmail !dev-travis %dev-mimesign 'dev-longlines #dev-autotls 5.2.4 5.2.5
 5.2.6	 5.2.7 5.2.8 5.2.9 5.2.10 5.2.11 5.2.12 5.2.13 !dev-masteri 0.10.0h 0.11.0g 0.11.1f !0.11.x-deve !dev-masterj 0.10.0i 0.10.1h 0.10.2g 0.11.0f 0.11.1e 0.11.2d 0.11.3c 0.11.4b !0.11.x-deva !dev-master 0.10.0 0.10.1 !0.10.x-dev !dev-masterp 0.9.0o 0.9.1n 0.9.2m 0.9.3l 0.10.0k 0.10.1j 0.10.2i 0.10.3h 0.10.4g 0.10.5f 0.10.6e 0.11.0d 0.11.1c 0.11.2b 0.11.3a 0.12.0` 0.12.1_ 0.12.2^ 0.12.3] !0.12.x-dev\ !dev-master7 0.10.06 0.10.15 !0.10.x-dev4 !dev-master 0.10.0 0.10.1 0.10.2
 0.10.3	 !0.10.x-dev !dev-master` 0.10.0_ 0.10.1^ 0.10.2] 0.10.3\ 0.10.4[ !0.10.x-devZ !dev-master( 0.9.0' 0.9.1& 0.9.2% 0.10.0$ 0.10.1# 0.10.2" 0.10.3! 0.10.4  0.10.5 0.10.6 0.10.7 0.10.8 0.10.9 0.10.10 0.10.11 !0.10.x-dev !dev-master] 0.10.0\ 0.10.1[ 0.10.2Z 0.10.3Y 0.10.4X !0.10.x-devW !dev-masterV 0.10.0U 0.10.1T !0.10.x-devS !dev-master$ 0.10.0# 0.10.1" 0.10.2! 0.11.0  !0.11.x-dev !dev-masterX 0.10.0W 0.10.1V 0.10.2U 0.10.3T 0.11.0S 0.11.1R 0.11.2Q 0.11.3P 0.11.4O 0.11.5N !0.11.x-devM !dev-masterL 0.9.0K 0.10.0J 0.10.1I 0.10.2H 0.10.3G 0.10.4F 0.10.5E 0.10.6D 0.10.7C 0.10.8B 0.10.9A !0.10.x-dev@ !dev-master 0.10.0 0.10.1 0.10.2 0.10.3 0.10.4 0.10.5 0.10.6 0.10.7
 0.10.8	 0.11.0 0.11.1 !0.11.x-dev !dev-masteri 0.1.0h 0.1.1g 0.1.2f 0.1.3e 0.1.4d 0.1.x-devc 0.2.0b 0.2.1a 0.2.2` 0.2.3_ 0.2.4^ 0.2.5] 0.3.0\ 0.3.5[ 0.3.6Z 0.4.0Y 0.4.1X 0.5.0W 0.5.1V 0.5.2U 0.5.3T 0.5.4S 0.5.5R 0.6.0Q 0.6.1P 1.0.x-devO !dev-masterH %dev-issue-30    sdUF3#sdUF7(
scSC3#teVG8)paRC4








~
n
_
P
A
2
#

									o	_	O	?	/		o`QB3$uaRC4%ufWH9*yeQ=)uaM9%t`O;'s_K7&            e !dev-masterd !0.15.01.05c !0.15.04.17b !0.15.07.28a !0.15.09.01` 0.x-dev_ !dev-masterK !1.14.09.16J !2.14.09.17I !2.14.09.23H !2.14.11.09G !2.14.11.26F !2.14.12.10E !2.15.01.04D !2.15.02.18C !2.15.03.06B !2.15.03.19A !2.15.05.29@ !2.15.07.23? !2.15.07.27> 2.x-dev= !dev-master1 !1.15.07.150 !1.15.08.26/ !1.15.09.03. 1.x-dev- !dev-master, 1.0.0+ 1.0.1* 1.0.2) 1.0.3( !dev-master' !0.14.09.24& !0.14.11.25% !0.14.12.01$ !0.15.02.18# !0.15.02.20" !dev-master !0.14.09.16 !0.14.09.17
 !0.14.09.22	 !0.14.09.23 !0.14.09.24 !0.14.11.09 !1.14.11.24 !1.14.11.26 !1.14.12.01 !1.14.12.10 !1.15.02.20 !1.15.04.16  !1.15.05.29 !1.15.06.25~ !1.15.07.30} 1.x-dev| !dev-master 0.1.0 0.1.1 0.2.0
 0.2.1	 0.2.2 0.3.0 1.0.0 1.1.0 1.2.0 1.3.0 1.4.0 1.5.0 1.6.0  1.7.0 !dev-masterf #dev-develope 1.0.0d 1.0.1c 2.0.0b 2.0.1a 2.0.2` 2.0.3_ 3.0.0^ 3.0.1] !dev-master. 0.1.0- 0.1.1, 0.1.2+ !dev-masterO 0.1.0N !dev-master{ 4.1.0z 4.1.1y 4.1.2x 4.1.3w 4.1.4v 4.1.5u 4.1.6t 4.1.7s 4.1.8r 4.1.9q 4.1.10p 4.1.11o 4.1.12n 4.1.13m 4.1.14l 4.1.15k 4.1.16j 4.1.17i 4.1.18h 4.1.19g 4.1.20f 4.1.21e 4.1.22d 4.1.23c 4.1.24b 4.1.25a 4.1.26` 4.1.27_ 4.1.28^ 4.1.29] 4.1.30\ 4.1.x-dev[ #4.2.0-BETA1Z 4.2.1Y 4.2.2X 4.2.3W 4.2.4V 4.2.5U 4.2.6T 4.2.7S 4.2.8R 4.2.9Q 4.2.12P 4.2.16O 4.2.x-devN 5.0.0M 5.0.x-devL !dev-masterK 1.0.0J 1.1.0I #4.0.0-BETA2H #4.0.0-BETA3G #4.0.0-BETA4F 4.0.0E 4.0.1D 4.0.2C 4.0.3B 4.0.4A 4.0.5@ 4.0.6? 4.0.7> 4.0.8= 4.0.9< 4.0.10; 4.0.x-dev: 4.1.09 4.1.18 4.1.27 4.1.36 4.1.45 4.1.54 4.1.63 4.1.72 4.1.81 4.1.90 4.1.10/ 4.1.11. 4.1.12- 4.1.13, 4.1.14+ 4.1.15* 4.1.16) 4.1.17( 4.1.18' 4.1.19& 4.1.20% 4.1.21$ 4.1.22# 4.1.23" 4.1.24! 4.1.25  4.1.26 4.1.27 4.1.28 4.1.29 4.1.30 4.1.x-dev #4.2.0-BETA1 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.8 4.2.9 4.2.12 4.2.16 4.2.17 4.2.x-dev 5.0.0 5.0.4
 5.0.22	 5.0.25 5.0.26 5.0.28 5.0.33 5.0.x-dev 5.1.1 5.1.2 5.1.6 5.1.8  5.1.13 5.1.16~ 5.1.x-dev} 5.2.x-dev| !dev-master  Adev-feature/parallel-tasks    wcO;'vbQ=)udP<( wcO;'vbN:&







u
a
M
9
%
								t	`	L	8	'	vbN:&lWB- ufWJ7(
kWA-xgVE4#n\J8{lXD0           
4 
5.0.4
3 
5.0.5
2 
5.0.6A 1.0.0@ 1.0.1? 1.0.x-dev> !dev-master. !2.0-beta-1- %2.0.0-beta.2, !2.0.0-rc.1+ !2.0.0-rc.2* !2.0.0-rc.3) 2.0.0( 2.0.x-dev' !dev-master /dev-travis-docker 9dev-nicolassing-master 7dev-elasticsearch-2.0  /dev-release-2.2.1 ;dev-ansible-refactoring~ 0.19.0.0} 0.19.3.0| 0.19.8.0{ %0.20.5.0.RC1z 0.90.1.0y 0.90.2.0x 0.90.5.0w 0.90.7.0v 0.90.10.0u 1.0.0.0t 1.0.1.0s 1.0.1.1r 1.0.1.2q 1.1.1.0p 1.1.1.1o 1.2.1.0n 1.3.0.0m 1.3.4.0l 1.4.2.0k 1.4.3.0j 2.0.0i 2.1.0h 2.2.0g 2.2.1f 2.2.x-deve 2.3.0d !dev-masterc ;dev-scrutinizer-patch-1b !2.0-beta-1a %2.0.0-beta.2` !2.0.0-rc.1_ !2.0.0-rc.2^ !2.0.0-rc.3] 2.0.0\ 2.0.x-dev[ !dev-master1 !dev-travis0 0.4.0/ 0.4.1. 0.4.2- 0.4.3, 0.4.4+ 0.4.5* 0.4.x-dev	) 1.0( 1.0.1' 1.0.2& 1.0.x-dev% 1.1.0$ 1.2.0# 1.2.1" 1.2.2! 1.3.0  1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 #2.0.0-beta1 #2.0.0-beta2 #2.0.0-beta3 #2.0.0-beta4 #2.0.0-beta5 2.0.0 2.0.1 2.0.2 2.0.x-dev !dev-master< !0.14.09.16; !0.14.09.17: !0.14.09.239 !0.14.12.108 !0.15.02.267 !0.15.05.296 !0.15.08.175 0.x-dev4 !dev-master3 !0.14.09.162 !0.14.09.171 !0.14.09.230 !0.14.12.10/ !0.15.02.26. !0.15.05.29- !0.15.08.17, 0.x-dev+ !dev-master  !1.14.09.16 !2.14.09.17 !2.14.09.23 !2.14.11.09 !2.14.12.10 !2.15.02.16 !2.15.05.29 !2.15.09.08 2.x-dev !dev-masterx !0.14.09.16w !0.14.09.17v !0.14.09.23u !0.14.12.10t !0.15.02.25s !0.15.05.29r !0.15.09.08q 0.x-devp !dev-masterW !>1.15.09.22T !1.14.09.16S !2.14.09.17R !2.14.09.23Q !2.14.11.09P !2.14.12.10O !2.15.01.23N !2.15.02.26M !2.15.05.29L !2.15.08.03K 2.x-devJ !dev-master> !0.14.09.16= !0.14.09.17< !0.14.09.23; !0.14.11.09: !0.14.11.259 !0.14.12.108 !0.15.02.247 !0.15.05.296 !0.15.06.015 !0.15.09.084 0.x-dev3 !dev-master2 !0.14.09.161 !0.14.09.170 !0.14.09.23/ !0.14.11.09. !0.14.11.25- !0.14.12.10, !0.15.02.24+ !0.15.05.29* !0.15.06.01) !0.15.09.08( 0.x-dev' !dev-master !0.14.09.16 !0.14.09.17 !0.14.09.23 !0.14.11.15 !1.14.11.17 !1.14.11.26 !1.14.12.10 !1.15.02.23 !1.15.05.29 !1.15.09.08 1.x-dev !dev-master !0.14.09.16 !0.14.09.17 !0.14.09.23 !0.14.11.15  !0.14.12.10 !0.15.01.06~ !0.15.05.29} !0.15.09.08| 0.x-dev{ !dev-mastero !0.14.09.16n !0.14.09.17m !0.14.09.23l !0.14.11.09k !0.14.11.26j !0.14.12.10i !0.15.01.23h !0.15.04.16g !0.15.05.29f 0.x-dev    {m[M?+	~o`QB3{k[K;+qbC/xiZK<-







r
^
K
<
-

										|	m	^	O	@	1	"	|j\J<. {l]N?0!vgXI:+vgUC1"}nYE3%lWH9*vgSD5&                  #	dev-issue_1 +	dev-zf2_release 5	dev-add_purge_option 	0.0.1 	0.0.2 	0.0.3 	0.0.4 !	dev-master: 0.1.09 0.2.08 0.2.17 0.3.06 0.3.15 0.4.04 0.5.03 0.5.12 0.5.21 0.5.30 0.5.4/ 0.5.5. 0.5.6- 0.5.7, 0.6.0+ 0.7.0* #0.8.0-beta1) #0.8.0-beta2( #0.8.0-beta3' #0.8.0-beta4& 0.8.0% 0.9.0$ 0.9.1# 0.9.2" !dev-master! 3Vdev-ghgfk-hotfix/43
$ H2.7.3
# H2.7.4! H3.0.x-devb !dev-legacya #dev-develop` 2.0.3_ 2.0.4^ 2.0.5] 2.0.6\ 2.0.7[ 2.0.8Z 2.1.0Y 2.1.1X 2.1.2W 2.1.3V 2.1.4U 2.1.5T 2.1.6S 2.2.0rc1R 2.2.0rc2Q 2.2.0rc3P 2.2.0O 2.2.1N 2.2.2M 2.2.3L 2.2.4K 2.2.5J 2.2.6I 2.2.7H 2.2.8G 2.2.9F 2.2.10E 2.3.0D 2.3.1C 2.3.2B 2.3.3A 2.3.4@ 2.3.5? 2.3.6> 2.3.7= 2.3.8< 2.3.9; 2.4.0rc1: 2.4.0rc29 2.4.0rc38 2.4.0rc47 2.4.0rc56 2.4.0rc65 2.4.0rc74 2.4.03 2.4.12 2.4.21 2.4.30 2.4.4/ 2.4.5. 2.4.6- 2.4.7, 2.4.8+ 2.5.0* 2.5.1) 2.5.x-dev( 2.6.x-dev' !dev-master
l W2.5.3
k W2.6.0i W3.0.x-dev
g X2.5.3
f X2.6.0d X2.7.x-dev
l A2.6.0j A3.0.x-dev$s Idev-hotfix/remove-version-filer 9dev-hotfix/doctrine-cs(q Qdev-feature/association-extractorsp /dev-release/0.8.1o 'dev-0.7.x-devn 0.1.0m 0.2.0l 0.2.1k 0.3.0j 0.3.1i 0.4.0h 0.5.1g 0.5.2f 0.5.3e 0.5.4d 0.6.0c 0.7.0b 0.7.1a 0.7.2` #0.8.0-beta1_ #0.8.0-beta2^ 0.8.0] 0.8.1\ 0.9.0[ 1.0.x-devZ !dev-master= 0.1.0< 0.2.0; 1.0.0: 1.0.19 1.0.x-dev8 !dev-master$ !dev-master"d Edev-feature/buffered-emitterc 0.1.0b 0.1.1a 0.2.0` 0.3.0_ 0.3.1^ 1.0.0] 1.0.1\ 2.0.0[ 2.1.0Z 2.1.1Y 2.1.2X 2.2.x-devW !dev-master !1.0.0-beta 1.0.0 1.0.1 1.0.2 1.0.x-dev !dev-master 7 dev-feature/execution
  0.3.0	  0.4.0  0.5.0  0.6.0  0.6.1  0.7.x-dev ! dev-masterq )dev-v1.0.0-devp 0.9.5o 0.10.1n 0.10.2m 0.10.3l 0.10.4k 0.10.5j 0.11.1i 0.11.2h 0.11.3g 0.11.4f 0.11.5e 0.11.6d 0.12.1c 0.12.2b 0.12.3a 0.13.1` !dev-master	F 0.1E 1.0.x-devD !dev-master\ 1.0.0[ 1.1.0Z 1.2.0Y 1.3.0X 1.3.1W 1.4.0V 1.5.0U 1.6.0T 1.7.0S 1.7.1R 1.8.0Q !dev-master
 )1.6.0 >1.22.3% 1.0.0$ 1.0.x-dev# !dev-master
[ 2.7.5
 O1.6.0 O1.6.x-dev
s N1.6.0r N1.6.x-dev
2 1.1.0
1 1.1.1
g 3.0.1
u 2.2.4
r 3.0.1< 
4.8.11; 
4.8.12: 
4.8.13    s^O:+weWI;)whYJ8&rcTE6&~lZK<- 








n
Z
G
4
%

										n	\	J	8	&		{l\M>/ rcTE6'	~o`QB.
rcTE6" yj[G2paRC4%q_M>/            q 2.3.2p 2.3.3o 2.3.4n 2.3.5m 2.3.6l 2.3.7k 2.3.8j 2.3.9i 2.4.0rc1h 2.4.0rc2g 2.4.0rc3f 2.4.0rc4e 2.4.0rc5d 2.4.0rc6c 2.4.0rc7b 2.4.0a 2.4.1` 2.4.2_ 2.4.3^ 2.4.4] 2.4.5\ 2.4.6[ 2.4.7Z 2.4.8Y 2.5.0X 2.5.1W 2.5.x-devV 2.6.x-devU !dev-masterQ 0.0.1P 0.0.2O %1.0.0-ALPHA1N #1.0.0-BETA1M #1.0.0-BETA2L #1.0.0-BETA3K #1.0.0-BETA4J #1.0.0-BETA5I !dev-masterH 0.1.0G 0.1.1F 0.1.2E 0.1.3D 0.1.4C 0.1.5B 1.0.0A 1.1.0@ 2.0.0? 3.0.0> 3.0.1= 3.0.2< 3.1.x-dev; !dev-masterQ 0.0.1P 0.1.0O 0.1.1N 0.1.2M 0.1.3L 0.2.0K 0.x-devJ 1.0.0I 1.1.0H 1.2.0G 1.2.1F 1.2.2E 1.2.3D 1.3.3C 1.x-devB 2.0.x-devA !dev-master@ 0.0.1? 0.1.0> 0.1.1= 0.1.2< !dev-master  [3.0.x-dev@ !dev-legacy? #dev-develop> 2.0.3= 2.0.4< 2.0.5; 2.0.6: 2.0.79 2.0.88 2.1.07 2.1.16 2.1.25 2.1.34 2.1.43 2.1.52 2.1.61 2.2.0rc10 2.2.0rc2/ 2.2.0rc3. 2.2.0- 2.2.1, 2.2.2+ 2.2.3* 2.2.4) 2.2.5( 2.2.6' 2.2.7& 2.2.8% 2.2.9$ 2.2.10# 2.3.0" 2.3.1! 2.3.2  2.3.3 2.3.4 2.3.5 2.3.6 2.3.7 2.3.8 2.3.9 2.4.0rc1 2.4.0rc2 2.4.0rc3 2.4.0rc4 2.4.0rc5 2.4.0rc6 2.4.0rc7 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7
 2.4.8	 2.5.0 2.5.1 2.5.2 2.5.x-dev 2.6.x-dev !dev-masterF !dev-legacyE #dev-developD 2.0.3C 2.0.4B 2.0.5A 2.0.6@ 2.0.7? 2.0.8> 2.1.0= 2.1.1< 2.1.2; 2.1.3: 2.1.49 2.1.58 2.1.67 2.2.0rc16 2.2.0rc25 2.2.0rc34 2.2.03 2.2.12 2.2.21 2.2.30 2.2.4/ 2.2.5. 2.2.6- 2.2.7, 2.2.8+ 2.2.9* 2.2.10) 2.3.0( 2.3.1' 2.3.2& 2.3.3% 2.3.4$ 2.3.5# 2.3.6" 2.3.7! 2.3.8  2.3.9 2.4.0rc1 2.4.0rc2 2.4.0rc3 2.4.0rc4 2.4.0rc5 2.4.0rc6 2.4.0rc7 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.5.0 2.5.1 2.5.x-dev 2.6.x-dev !dev-masterQ E3.0.x-dev
a c2.5.2
` c2.6.0
_ c2.6.1] c2.7.x-devM 
1.0.0L 
1.1.0K 
1.1.1J 
1.1.2I 
1.2.0H 
1.2.1G 
1.2.2F 
1.2.3E 
1.2.4D 
1.2.5C 
1.2.6B 
1.3.0A 
1.3.1@ #
1.4.0-beta1? 
1.4.0> #
1.5.0-beta1= 
1.5.x-dev< !
dev-master
H ^2.5.2
G ^2.5.3
F ^2.6.0
E ^2.6.1C ^3.0.x-dev 1	dev-single_fixture    xiZK<*paRC.rbRB2#~o`QB3$yeTE6'	









s
d
U
F
7
(


										t	_	K	:	*		vaM<- yj[L=.|m^O@1"yeTE6'	ufWH3rcTE3!|m^O@1!  i 2.2.5h 2.2.6g 2.2.7f 2.2.8e 2.2.9d 2.2.10c 2.3.0b 2.3.1a 2.3.2` 2.3.3_ 2.3.4^ 2.3.5] 2.3.6\ 2.3.7[ 2.3.8Z 2.3.9Y 2.4.0rc1X 2.4.0rc2W 2.4.0rc3V 2.4.0rc4U 2.4.0rc5T 2.4.0rc6S 2.4.0rc7R 2.4.0Q 2.4.1P 2.4.2O 2.4.3N 2.4.4M 2.4.5L 2.4.6K 2.4.7J 2.4.8I 2.5.0H 2.5.1G 2.5.2F 2.5.x-devE 2.6.x-devD !dev-masteri #dev-developh 1.1.0g 1.2.0f 2.0.0e 2.0.1d 2.0.2c 2.0.3b 2.0.4a 2.x-dev` !dev-master_ #dev-develop^ 1.0.0] 1.2.0\ 2.0.0[ 2.0.1Z 2.0.2Y 2.0.3X 2.0.4W 2.x-devV !dev-masterU #dev-developT 1.1.0S 1.2.0R 1.2.1Q 2.0.0P 2.0.1O 2.0.2N 2.x-devM !dev-masterL #dev-developK 1.1.0J 1.2.0I 2.0.0H 2.0.1G 2.0.2F 2.0.3E 2.x-devD !dev-masterC #dev-developB 1.1.1A 1.2.0@ 2.0.0? 2.0.1> 2.0.2= 2.0.3< 2.0.4; 2.0.5: 2.0.69 2.1.08 2.1.17 2.1.26 2.1.35 2.1.44 2.1.53 2.1.62 2.1.71 2.2.00 2.2.1/ 2.2.2. 2.2.3- 2.3.0, 2.3.1+ 2.3.2* 2.3.3) 2.3.4( 2.x-dev' !dev-master& #dev-develop% 1.0.0$ 1.0.2# 2.0.0" 2.0.1! 2.0.2  2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.0.10 2.x-dev !dev-master #dev-develop 1.1.1 1.2.0 1.2.1 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7
 2.0.8	 2.1.0 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.2.7  2.2.8 2.2.9~ 2.3.0} 2.3.1| 2.3.2{ 2.3.3z 2.3.4y 2.3.5x 2.3.6w 2.3.7v 2.3.8u 2.x-devt !dev-masters #dev-developr 1.0.0q 1.0.1p 1.0.2o 1.0.3n 1.0.4m 1.2.0l 1.2.1k 1.2.2j 1.2.3i 1.2.4h 2.0.0g 2.0.1f 2.0.2e 2.1.0d 2.1.1c 2.1.2b 2.1.3a 2.1.4` 2.2.0_ 2.2.1^ 2.2.2] 2.2.3\ 2.2.4[ 2.2.5Z 2.2.6Y 2.2.7X 2.2.8W 2.2.9V 2.2.10U 2.2.11T 2.2.12S 2.2.13R 2.2.14Q 2.x-devP !dev-masterO #dev-developN 1.0.0M !dev-master	L 0.1	K 0.2	J 0.3I !dev-master !dev-legacy #dev-develop 2.0.3 2.0.4 2.0.5 2.0.6
 2.0.7	 2.0.8 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.2.0rc1  2.2.0rc2 2.2.0rc3~ 2.2.0} 2.2.1| 2.2.2{ 2.2.3z 2.2.4y 2.2.5x 2.2.6w 2.2.7v 2.2.8u 2.2.9t 2.2.10s 2.3.0r 2.3.1    paRC4%lYJ;,~lZH6'	rcTE6'	yj[L=.







q
b
S
D
5
&

								{	l	]	N	?	0	!		{l]N?-	sdUF1{l]N?0!vgXI:+vgUC1"}nYE1"}kYG5#  ] !2.3.7\ !2.3.8[ !2.3.9Z !2.4.0rc1Y !2.4.0rc2X !2.4.0rc3W !2.4.0rc4V !2.4.0rc5U !2.4.0rc6T !2.4.0rc7S !2.4.0R !2.4.1Q !2.4.2P !2.4.3O !2.4.4N !2.4.5M !2.4.6L !2.4.7K !2.4.8J !2.5.0I !2.5.1H !2.5.2G !!dev-master ! dev-legacy # dev-develop  2.0.3  2.0.4  2.0.5  2.0.6  2.0.7  2.0.8  2.1.0  2.1.1  2.1.2
  2.1.3	  2.1.4  2.1.5  2.1.6  2.2.0rc1  2.2.0rc2  2.2.0rc3  2.2.0  2.2.1  2.2.2   2.2.3  2.2.4~  2.2.5}  2.2.6|  2.2.7{  2.2.8z  2.2.9y  2.2.10x  2.3.0w  2.3.1v  2.3.2u  2.3.3t  2.3.4s  2.3.5r  2.3.6q  2.3.7p  2.3.8o  2.3.9n  2.4.0rc1m  2.4.0rc2l  2.4.0rc3k  2.4.0rc4j  2.4.0rc5i  2.4.0rc6h  2.4.0rc7g  2.4.0f  2.4.1e  2.4.2d  2.4.3c  2.4.4b  2.4.5a  2.4.6`  2.4.7_  2.4.8^  2.5.0]  2.5.1\  2.5.2[  2.5.x-devZ  2.6.x-devY ! dev-master
$ a2.6.0! !dev-legacy  #dev-develop 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.2.0rc1 2.2.0rc2 2.2.0rc3 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4
 2.2.5	 2.2.6 2.2.7 2.2.8 2.2.9 2.2.10 2.3.0 2.3.1 2.3.2 2.3.3  2.3.4 2.3.5~ 2.3.6} 2.3.7| 2.3.8{ 2.3.9z 2.4.0rc1y 2.4.0rc2x 2.4.0rc3w 2.4.0rc4v 2.4.0rc5u 2.4.0rc6t 2.4.0rc7s 2.4.0r 2.4.1q 2.4.2p 2.4.3o 2.4.4n 2.4.5m 2.4.6l 2.4.7k 2.4.8j 2.5.0i 2.5.1h 2.5.x-devg 2.6.x-devf !dev-mastery !dev-legacyx #dev-developw 2.0.3v 2.0.4u 2.0.5t 2.0.6s 2.0.7r 2.0.8q 2.1.0p 2.1.1o 2.1.2n 2.1.3m 2.1.4l 2.1.5k 2.1.6j 2.2.0rc1i 2.2.0rc2h 2.2.0rc3g 2.2.0f 2.2.1e 2.2.2d 2.2.3c 2.2.4b 2.2.5a 2.2.6` 2.2.7_ 2.2.8^ 2.2.9] 2.2.10\ 2.3.0[ 2.3.1Z 2.3.2Y 2.3.3X 2.3.4W 2.3.5V 2.3.6U 2.3.7T 2.3.8S 2.3.9R 2.4.0rc1Q 2.4.0rc2P 2.4.0rc3O 2.4.0rc4N 2.4.0rc5M 2.4.0rc6L 2.4.0rc7K 2.4.0J 2.4.1I 2.4.2H 2.4.3G 2.4.4F 2.4.5E 2.4.6D 2.4.7C 2.4.8B 2.5.0A 2.5.1@ 2.5.x-dev? 2.6.x-dev> !dev-master  !dev-legacy #dev-develop~ 2.0.3} 2.0.4| 2.0.5{ 2.0.6z 2.0.7y 2.0.8x 2.1.0w 2.1.1v 2.1.2u 2.1.3t 2.1.4s 2.1.5r 2.1.6q 2.2.0rc1p 2.2.0rc2o 2.2.0rc3n 2.2.0m 2.2.1l 2.2.2k 2.2.3j 2.2.4    xiZK<- paRC4%|m^O@1"n\J;,whYJ;,








~
o
`
Q
B
3
$

 								v	g	X	I	:	+		qbSD5&qbSA/xiZE1
paR@.
zk\M>.tbSD5&vbO<-  t %2.4.4s %2.4.5r %2.4.6q %2.4.7p %2.4.8o %2.5.0n %2.5.1m %2.5.x-devl %2.6.x-devk !%dev-masterk !$dev-legacyj #$dev-developi $2.0.3h $2.0.4g $2.0.5f $2.0.6e $2.0.7d $2.0.8c $2.1.0b $2.1.1a $2.1.2` $2.1.3_ $2.1.4^ $2.1.5] $2.1.6\ $2.2.0rc1[ $2.2.0rc2Z $2.2.0rc3Y $2.2.0X $2.2.1W $2.2.2V $2.2.3U $2.2.4T $2.2.5S $2.2.6R $2.2.7Q $2.2.8P $2.2.9O $2.2.10N $2.3.0M $2.3.1L $2.3.2K $2.3.3J $2.3.4I $2.3.5H $2.3.6G $2.3.7F $2.3.8E $2.3.9D $2.4.0rc1C $2.4.0rc2B $2.4.0rc3A $2.4.0rc4@ $2.4.0rc5? $2.4.0rc6> $2.4.0rc7= $2.4.0< $2.4.1; $2.4.2: $2.4.39 $2.4.48 $2.4.57 $2.4.66 $2.4.75 $2.4.84 $2.5.03 $2.5.12 $2.5.x-dev1 $2.6.x-dev0 !$dev-master/ !#dev-legacy. ##dev-develop- #2.0.3, #2.0.4+ #2.0.5* #2.0.6) #2.0.7( #2.0.8' #2.1.0& #2.1.1% #2.1.2$ #2.1.3# #2.1.4" #2.1.5! #2.1.6  #2.2.0rc1 #2.2.0rc2 #2.2.0rc3 #2.2.0 #2.2.1 #2.2.2 #2.2.3 #2.2.4 #2.2.5 #2.2.6 #2.2.7 #2.2.8 #2.2.9 #2.2.10 #2.3.0 #2.3.1 #2.3.2 #2.3.3 #2.3.4 #2.3.5 #2.3.6 #2.3.7
 #2.3.8	 #2.3.9 #2.4.0rc1 #2.4.0rc2 #2.4.0rc3 #2.4.0rc4 #2.4.0rc5 #2.4.0rc6 #2.4.0rc7 #2.4.0  #2.4.1 #2.4.2~ #2.4.3} #2.4.4| #2.4.5{ #2.4.6z #2.4.7y #2.4.8x #2.5.0w #2.5.1v #2.5.x-devu #2.6.x-devt !#dev-master7 !"dev-legacy6 #"dev-develop5 "2.0.34 "2.0.43 "2.0.52 "2.0.61 "2.0.70 "2.0.8/ "2.1.0. "2.1.1- "2.1.2, "2.1.3+ "2.1.4* "2.1.5) "2.1.6( "2.2.0rc1' "2.2.0rc2& "2.2.0rc3% "2.2.0$ "2.2.1# "2.2.2" "2.2.3! "2.2.4  "2.2.5 "2.2.6 "2.2.7 "2.2.8 "2.2.9 "2.2.10 "2.3.0 "2.3.1 "2.3.2 "2.3.3 "2.3.4 "2.3.5 "2.3.6 "2.3.7 "2.3.8 "2.3.9 "2.4.0rc1 "2.4.0rc2 "2.4.0rc3 "2.4.0rc4 "2.4.0rc5 "2.4.0rc6
 "2.4.0rc7	 "2.4.0 "2.4.1 "2.4.2 "2.4.3 "2.4.4 "2.4.5 "2.4.6 "2.4.7 "2.4.8  "2.5.0 "2.5.1~ "2.5.2} "2.5.x-dev| "2.6.x-dev{ !"dev-master #!dev-develop !2.0.0 !2.0.1  !2.0.2 !2.0.3~ !2.0.4} !2.0.5| !2.0.6{ !2.0.7z !2.0.8y !2.1.0x !2.1.1w !2.1.2v !2.1.3u !2.1.4t !2.1.5s !2.1.6r !2.2.0rc1q !2.2.0rc2p !2.2.0rc3o !2.2.0n !2.2.1m !2.2.2l !2.2.3k !2.2.4j !2.2.5i !2.2.6h !2.2.7g !2.2.8f !2.2.9e !2.2.10d !2.3.0c !2.3.1b !2.3.2a !2.3.3` !2.3.4_ !2.3.5^ !2.3.6    |jXF7(
sdUF7(
zk\M>/ rcTE6'	|m^O@1"








|
m
^
O
=
+


										t	e	V	G	8	#	{l]N?0vgXI:+vdR@1"}hT@-ucQ?-	paQB3$vgXI:+                 (2.0.5 (2.0.6
 (2.0.7	 (2.0.8 (2.1.0 (2.1.1 (2.1.2 (2.1.3 (2.1.4 (2.1.5 (2.1.6 (2.2.0rc1  (2.2.0rc2 (2.2.0rc3~ (2.2.0} (2.2.1| (2.2.2{ (2.2.3z (2.2.4y (2.2.5x (2.2.6w (2.2.7v (2.2.8u (2.2.9t (2.2.10s (2.3.0r (2.3.1q (2.3.2p (2.3.3o (2.3.4n (2.3.5m (2.3.6l (2.3.7k (2.3.8j (2.3.9i (2.4.0rc1h (2.4.0rc2g (2.4.0rc3f (2.4.0rc4e (2.4.0rc5d (2.4.0rc6c (2.4.0rc7b (2.4.0a (2.4.1` (2.4.2_ (2.4.3^ (2.4.4] (2.4.5\ (2.4.6[ (2.4.7Z (2.4.8Y (2.5.0X (2.5.1W (2.5.x-devV (2.6.x-devU !(dev-master !'dev-legacy #'dev-develop '2.0.3 '2.0.4 '2.0.5 '2.0.6 '2.0.7 '2.0.8 '2.1.0 '2.1.1 '2.1.2 '2.1.3 '2.1.4 '2.1.5
 '2.1.6	 '2.2.0rc1 '2.2.0rc2 '2.2.0rc3 '2.2.0 '2.2.1 '2.2.2 '2.2.3 '2.2.4 '2.2.5  '2.2.6 '2.2.7~ '2.2.8} '2.2.9| '2.2.10{ '2.3.0z '2.3.1y '2.3.2x '2.3.3w '2.3.4v '2.3.5u '2.3.6t '2.3.7s '2.3.8r '2.3.9q '2.4.0rc1p '2.4.0rc2o '2.4.0rc3n '2.4.0rc4m '2.4.0rc5l '2.4.0rc6k '2.4.0rc7j '2.4.0i '2.4.1h '2.4.2g '2.4.3f '2.4.4e '2.4.5d '2.4.6c '2.4.7b '2.4.8a '2.5.0` '2.5.1_ '2.5.x-dev^ '2.6.x-dev] !'dev-master\ !&dev-legacy[ #&dev-developZ &2.0.0Y &2.0.1X &2.0.2W &2.0.3V &2.0.4U &2.0.5T &2.0.6S &2.0.7R &2.1.0Q &2.1.1P &2.1.2O &2.1.3N &2.1.4M &2.1.5L &2.1.6K &2.2.0rc1J &2.2.0rc2I &2.2.0rc3H &2.2.0G &2.2.1F &2.2.2E &2.2.3D &2.2.4C &2.2.5B &2.2.6A &2.2.7@ &2.2.8? &2.2.9> &2.2.10= &2.3.0< &2.3.1; &2.3.2: &2.3.39 &2.3.48 &2.3.57 &2.3.66 &2.3.75 &2.3.84 &2.3.93 &2.4.0rc12 &2.4.0rc21 &2.4.0rc30 &2.4.0rc4/ &2.4.0rc5. &2.4.0rc6- &2.4.0rc7, &2.4.0+ &2.4.1* &2.4.2) &2.4.3( &2.4.4' &2.4.5& &2.4.6% &2.4.7$ &2.4.8# &2.5.0" &2.5.1! &2.5.x-dev  &2.6.x-dev !&dev-master& !%dev-legacy% #%dev-develop$ %2.0.3# %2.0.4" %2.0.5! %2.0.6  %2.0.7 %2.0.8 %2.1.0 %2.1.1 %2.1.2 %2.1.3 %2.1.4 %2.1.5 %2.1.6 %2.2.0rc1 %2.2.0rc2 %2.2.0rc3 %2.2.0 %2.2.1 %2.2.2 %2.2.3 %2.2.4 %2.2.5 %2.2.6 %2.2.7 %2.2.8 %2.2.9
 %2.2.10	 %2.3.0 %2.3.1 %2.3.2 %2.3.3 %2.3.4 %2.3.5 %2.3.6 %2.3.7 %2.3.8  %2.3.9 %2.4.0rc1~ %2.4.0rc2} %2.4.0rc3| %2.4.0rc4{ %2.4.0rc5z %2.4.0rc6y %2.4.0rc7x %2.4.0w %2.4.1v %2.4.2u %2.4.3    paRC4%n\M>/ zk\M>/ rcTE6'yj[L=.








t
e
V
G
8
)

										t	e	S	A	/	 		{lWC/	vdR@1"|m^O@1"teVG8)}m]M=.xiZK<- vgXI:+                n ,2.3.1m ,2.3.2l ,2.3.3k ,2.3.4j ,2.3.5i ,2.4.0h ,2.4.1g ,2.4.2f ,2.4.3e ,2.4.4d ,2.4.5c ,2.4.6b ,2.4.7a ,2.4.8` ,2.4.9_ ,2.4.10^ ,2.4.11] ,2.4.12\ ,2.5.0[ ,2.5.1Z ,2.5.2Y ,2.5.3X ,2.5.4W ,2.5.5V ,2.5.6U ,2.5.7T ,2.5.8S ,2.5.9R ,2.5.10Q ,2.5.11P ,2.6.0O ,2.6.1N ,2.6.2M ,2.6.3L ,2.6.4K ,2.6.5J ,2.6.6I ,2.6.7H ,2.6.8G ,2.6.9F ,2.6.10E ,2.6.11D ,2.6.12C ,2.6.13B ,2.6.14A ,2.6.15@ ,2.6.16? ,2.6.17> ,2.x-dev= !,dev-masteri !+dev-legacyh #+dev-developg +2.0.3f +2.0.4e +2.0.5d +2.0.6c +2.0.7b +2.0.8a +2.1.0` +2.1.1_ +2.1.2^ +2.1.3] +2.1.4\ +2.1.5[ +2.1.6Z +2.2.0rc1Y +2.2.0rc2X +2.2.0rc3W +2.2.0V +2.2.1U +2.2.2T +2.2.3S +2.2.4R +2.2.5Q +2.2.6P +2.2.7O +2.2.8N +2.2.9M +2.2.10L +2.3.0K +2.3.1J +2.3.2I +2.3.3H +2.3.4G +2.3.5F +2.3.6E +2.3.7D +2.3.8C +2.3.9B +2.4.0rc1A +2.4.0rc2@ +2.4.0rc3? +2.4.0rc4> +2.4.0rc5= +2.4.0rc6< +2.4.0rc7; +2.4.0: +2.4.19 +2.4.28 +2.5.07 +2.5.16 +2.5.x-dev5 +2.6.x-dev4 !+dev-masterE !*dev-legacyD #*dev-developC *2.0.3B *2.0.4A *2.0.5@ *2.0.6? *2.0.7> *2.0.8= *2.1.0< *2.1.1; *2.1.2: *2.1.39 *2.1.48 *2.1.57 *2.1.66 *2.2.0rc15 *2.2.0rc24 *2.2.0rc33 *2.2.02 *2.2.11 *2.2.20 *2.2.3/ *2.2.4. *2.2.5- *2.2.6, *2.2.7+ *2.2.8* *2.2.9) *2.2.10( *2.3.0' *2.3.1& *2.3.2% *2.3.3$ *2.3.4# *2.3.5" *2.3.6! *2.3.7  *2.3.8 *2.3.9 *2.4.0rc1 *2.4.0rc2 *2.4.0rc3 *2.4.0rc4 *2.4.0rc5 *2.4.0rc6 *2.4.0rc7 *2.4.0 *2.4.1 *2.4.2 *2.4.3 *2.4.4 *2.4.5 *2.4.6 *2.4.7 *2.4.8 *2.5.0 *2.5.1 *2.5.x-dev *2.6.x-dev
 !*dev-masterF !)dev-legacyE #)dev-developD )2.0.3C )2.0.4B )2.0.5A )2.0.6@ )2.0.7? )2.0.8> )2.1.0= )2.1.1< )2.1.2; )2.1.3: )2.1.49 )2.1.58 )2.1.67 )2.2.0rc16 )2.2.0rc25 )2.2.0rc34 )2.2.03 )2.2.12 )2.2.21 )2.2.30 )2.2.4/ )2.2.5. )2.2.6- )2.2.7, )2.2.8+ )2.2.9* )2.2.10) )2.3.0( )2.3.1' )2.3.2& )2.3.3% )2.3.4$ )2.3.5# )2.3.6" )2.3.7! )2.3.8  )2.3.9 )2.4.0rc1 )2.4.0rc2 )2.4.0rc3 )2.4.0rc4 )2.4.0rc5 )2.4.0rc6 )2.4.0rc7 )2.4.0 )2.4.1 )2.4.2 )2.4.3 )2.4.4 )2.4.5 )2.4.6 )2.4.7 )2.4.8 )2.5.0 )2.5.1 )2.5.x-dev )2.6.x-dev !)dev-master !(dev-legacy #(dev-develop (2.0.3 (2.0.4    ufWH9*vgR>- {lWC2#s_PA2#|m^O@1"








}
n
P
9
"
								z	j	V	C	0		vfWH9*scTE6'	}m^O@1"wgWG7'wgWG7'q^N>/ ueUF7(
     32.1.1 32.1.2 32.1.3 32.1.4 32.1.5  32.1.6 32.1.7~ 32.1.8} 32.1.9| 32.1.10{ 32.1.11z 32.1.12y 32.1.13x 32.1.x-devw 32.2.0v 32.2.1u 32.2.2t 32.2.3s 32.2.4r 32.2.5q 32.2.6p 32.2.7o 32.2.8n 32.2.9m 32.2.10l 32.2.11k 32.2.x-devj 32.3.0i 32.3.1h 32.3.2g 32.3.3f 32.3.4e 32.3.5d 32.3.6c 32.3.7b 32.3.8a 32.3.9` 32.3.10_ 32.3.11^ 32.3.12] 32.3.13\ 32.3.14[ 32.3.15Z 32.3.16Y 32.3.17X 32.3.18W 32.3.19V 32.3.20U 32.3.21T 32.3.22S 32.3.23R 32.3.24Q 32.3.25P 32.3.26O 32.3.27N 32.3.28M 32.3.29L 32.3.30K 32.3.31J 32.3.32I 32.3.33H 32.3.x-devG #32.4.0-BETA1F #32.4.0-BETA2E 32.4.0-RC1D 32.4.0C 32.4.1B 32.4.2A 32.4.3@ 32.4.4? 32.4.5> 32.4.6= 32.4.7< 32.4.8; 32.4.9: 32.4.109 32.4.x-dev8 #32.5.0-BETA17 #32.5.0-BETA26 32.5.0-RC15 32.5.04 32.5.13 32.5.22 32.5.31 32.5.40 32.5.5/ 32.5.6. 32.5.7- 32.5.8, 32.5.9+ 32.5.10* 32.5.11) 32.5.12( 32.5.x-dev' #32.6.0-BETA1& #32.6.0-BETA2% 32.6.0$ 32.6.1# 32.6.2" 32.6.3! 32.6.4  32.6.5 32.6.6 32.6.7 32.6.8 32.6.9 32.6.10 32.6.11 32.6.x-dev #32.7.0-BETA1 #32.7.0-BETA2 32.7.0 32.7.1 32.7.2 32.7.3 32.7.4 32.7.5 32.7.x-dev 32.8.x-dev 33.0.x-dev !3dev-master2 1.10.1	' 22.1& 22.1.x-dev	% 22.2	$ 22.3	# 22.4" !2dev-masterP 71dev-i413-fluent-phinxO '1dev-0.1.x-devN '1dev-0.2.x-devM '1dev-0.3.x-devL '1dev-0.4.x-devK 51dev-phing-phinx-taskJ 10.1.2I 10.1.3H 10.1.4G 10.1.5F 10.1.6E 10.1.7D 10.2.0C 10.2.1B 10.2.2A 10.2.3@ 10.2.4? 10.2.5> 10.2.6= 10.2.7< 10.2.8; 10.2.9: 10.3.09 10.3.18 10.3.27 10.3.36 10.3.45 10.3.54 10.3.63 10.3.72 10.3.81 10.4.00 10.4.1/ 10.4.2. 10.4.2.1- 10.4.3, 10.4.4+ 10.4.5* 10.4.6) !1dev-master' !0dev-master& #/dev-develop% /1.1.0$ /1.2.0# /2.0.0" /2.0.1! /2.0.2  /2.0.3 /2.0.4 /2.0.5 /2.0.6 /2.0.7 /2.x-dev !/dev-master #.dev-develop .1.0.0 .2.0.0 .2.0.1 .2.0.2 .2.x-dev !.dev-master #-dev-develop -1.0.0 -1.2.0 -2.0.0 -2.0.1 -2.0.2 -2.x-dev !-dev-master
 #,dev-develop	 ,1.1.1 ,1.1.2 ,1.2.0 ,1.2.1 ,2.0.0 ,2.0.1 ,2.0.2 ,2.0.3 ,2.0.4  ,2.0.5 ,2.0.6~ ,2.1.0} ,2.2.0| ,2.2.1{ ,2.2.2z ,2.2.3y ,2.2.4x ,2.2.5w ,2.2.6v ,2.2.7u ,2.2.8t ,2.2.9s ,2.2.10r ,2.2.11q ,2.2.12p ,2.2.13o ,2.3.0    ~n^N>.|iVG8)rcTE6'	~o`QB3$yj[L=.








p
`
P
@
0
 

 									p	`	P	@	1	"		whYJ;,paRC4%ueUE5%fR?,
r_L9*sdUF7(
paRC4%                      E 62.5.0-RC1D 62.5.0C 62.5.1B 62.5.2A 62.5.3@ 62.5.4? 62.5.5> 62.5.6= 62.5.7< 62.5.8; 62.5.9: 62.5.109 62.5.118 62.5.127 62.5.x-dev6 #62.6.0-BETA15 #62.6.0-BETA24 62.6.03 62.6.12 62.6.21 62.6.30 62.6.4/ 62.6.5. 62.6.6- 62.6.7, 62.6.8+ 62.6.9* 62.6.10) 62.6.11( 62.6.x-dev' #62.7.0-BETA1& #62.7.0-BETA2% 62.7.0$ 62.7.1# 62.7.2" 62.7.3! 62.7.4  62.7.5 62.7.x-dev 62.8.x-dev 63.0.x-dev !6dev-masterd  2.7.5 #52.7.0-BETA1 #52.7.0-BETA2 52.7.0 52.7.1 52.7.2 52.7.3 52.7.4 52.7.5 52.7.x-dev 52.8.x-dev 53.0.x-dev !5dev-master){ S4dev-fix-validator-legacy-dependencyz 74dev-session-listeners!y C4dev-better-bundle-exceptionx 42.0.7w 42.0.9v 42.0.10u 42.0.12t 42.0.13s 42.0.14r 42.0.15q 42.0.16p 42.0.17o 42.0.18n 42.0.19m 42.0.20l 42.0.21k 42.0.22j 42.0.23i 42.0.24h 42.0.25g 42.0.x-devf 42.1.0e 42.1.1d 42.1.2c 42.1.3b 42.1.4a 42.1.5` 42.1.6_ 42.1.7^ 42.1.8] 42.1.9\ 42.1.10[ 42.1.11Z 42.1.12Y 42.1.13X 42.1.x-devW 42.2.0V 42.2.1U 42.2.2T 42.2.3S 42.2.4R 42.2.5Q 42.2.6P 42.2.7O 42.2.8N 42.2.9M 42.2.10L 42.2.11K 42.2.x-devJ 42.3.0I 42.3.1H 42.3.2G 42.3.3F 42.3.4E 42.3.5D 42.3.6C 42.3.7B 42.3.8A 42.3.9@ 42.3.10? 42.3.11> 42.3.12= 42.3.13< 42.3.14; 42.3.15: 42.3.169 42.3.178 42.3.187 42.3.196 42.3.205 42.3.214 42.3.223 42.3.232 42.3.241 42.3.250 42.3.26/ 42.3.27. 42.3.28- 42.3.29, 42.3.30+ 42.3.31* 42.3.32) 42.3.33( 42.3.x-dev' #42.4.0-BETA1& #42.4.0-BETA2% 42.4.0-RC1$ 42.4.0# 42.4.1" 42.4.2! 42.4.3  42.4.4 42.4.5 42.4.6 42.4.7 42.4.8 42.4.9 42.4.10 42.4.x-dev #42.5.0-BETA1 #42.5.0-BETA2 42.5.0-RC1 42.5.0 42.5.1 42.5.2 42.5.3 42.5.4 42.5.5 42.5.6 42.5.7 42.5.8 42.5.9 42.5.10
 42.5.11	 42.5.12 42.5.x-dev #42.6.0-BETA1 #42.6.0-BETA2 42.6.0 42.6.1 42.6.2 42.6.3 42.6.4  42.6.5 42.6.6~ 42.6.7} 42.6.8| 42.6.9{ 42.6.10z 42.6.11y 42.6.x-devx #42.7.0-BETA1w #42.7.0-BETA2v 42.7.0u 42.7.1t 42.7.2s 42.7.3r 42.7.4q 42.7.5p 42.7.x-devo 42.8.x-devn 43.0.x-devm !4dev-master 32.0.4 32.0.5 32.0.6 32.0.7 32.0.9 32.0.10 32.0.12 32.0.13 32.0.14 32.0.15 32.0.16 32.0.17 32.0.18 32.0.19 32.0.20 32.0.21 32.0.22
 32.0.23	 32.0.24 32.0.25 32.0.x-dev 32.1.0    whYJ;,
q^K8)~hR?0!nYD.ziZK<-









r
b
R
B
3


								u	f	W	H	9	*		nYF2#taL7"rcTE6' |hTA2#{gTE6'	}nYJ7$
sdU@*                 > K1.0.3= K1.0.4< K1.0.5; %K1.1.0-alpha1: %K1.1.0-alpha29 %K1.1.0-alpha38 %K1.1.0-alpha47 #K1.1.0-beta16 K1.1.05 K1.1.14 K1.1.23 K1.1.32 %K1.2.0-alpha11 K1.2.00 K1.2.1/ K1.3.0. K1.3.1- K1.4.x-dev, !Kdev-master -Jdev-node-visitor J2.0.x-dev J2.1.0-RC2 J2.1.0 #J2.1.1-beta1 J2.1.1 J2.1.2 J2.1.3 J2.1.x-dev #J2.3.0-beta1 J2.3.0 J2.3.1 J2.3.x-dev #J2.4.0-beta1 J2.4.0
 J2.5.0	 J2.6.0 J2.6.1 J2.7.0 J2.7.x-dev !Jdev-master I1.0.0 I1.1.0 I1.1.1 I1.1.x-dev !Idev-master	 H1.0.0 H1.0.x-dev !Hdev-master G1.0.0 G1.0.1 G1.1.0 G1.2.0 G1.2.x-dev !Gdev-master !F1.0.0-beta #F1.0.0-beta2 #F1.0.0-beta3 F1.0.0 F2.0.0 F2.0.1 F3.0.0 F3.1.0 F3.1.1 F3.2.x-dev !Fdev-master{ E1.0.0z E1.0.1y E1.0.2x E1.1.0w E2.0.0v E2.1.0u E2.2.0t E2.2.1s E2.2.2r E2.2.3q E2.3.x-devp !Edev-masterG !D1.0.0-betaF #D1.0.0-beta2E #D1.0.0-beta3D #D1.0.0-beta4C #D1.0.0-beta5B #D1.0.0-beta6A D1.0.x-dev@ !Ddev-master	9 C0.18 !Cdev-master	7 B0.1	6 B0.2	5 B0.34 B0.3.13 B0.3.22 !Bdev-master	/ A0.1. !Adev-master2 @1.0.01 !@dev-master 0.2.x-devV #?2.7.0-BETA1U #?2.7.0-BETA2T ?2.7.0S ?2.7.1R ?2.7.2Q ?2.7.3P ?2.7.4O ?2.7.5N ?2.7.x-devM ?2.8.x-devL ?3.0.x-devK !?dev-master >1.0.0 >2.0.0 >2.1.0 >2.2.0
 >3.0.0	 !>dev-masterG !=dev-masterF !<dev-masterd ;1.0.1c ;1.0.2b !;dev-masterV :1.1.1U :1.1.2T :1.1.3S :1.1.4R !:dev-master2 91.2.91 91.2.100 91.2.11/ 91.2.12. 91.3.0- 91.3.1, 91.3.2+ 91.3.3* 91.4.0) 91.4.1( 91.4.2' !9dev-master
 }1.4.0 -8dev-generatehost %8dev-basepath 81.0.0 81.1.0 81.1.1 81.2.0 81.x-dev #82.0.0-beta1 82.0.0 82.1.0
 82.1.1	 82.1.2 82.2.0 82.2.1 82.2.2 82.3.0 82.x-dev %83.0.0-alpha1 %83.0.0-alpha2 #83.0.0-beta1  #83.0.0-beta2 83.x-dev"? E7dev-drop-dynamicrouter-match> %71.0.0-alpha1= %71.0.0-alpha2< %71.0.0-alpha3; %71.0.0-alpha4: #71.0.0-beta19 71.0.08 71.0.17 71.0.26 71.0.x-dev5 %71.1.0-alpha14 %71.1.0-alpha23 #71.1.0-beta12 #71.1.0-beta21 71.1.0-RC10 71.1.0-RC2/ 71.1.0-RC3. 71.1.0-RC4- 71.1.0, 71.1.x-dev+ 71.2.0-RC1* 71.2.0) 71.2.x-dev( 71.3.0-RC1' 71.3.0-RC2& 71.3.0-RC3% 71.3.0-RC4$ 71.3.0# 71.3.x-dev" 71.4.x-dev! !7dev-masterV #62.4.0-BETA1U #62.4.0-BETA2T 62.4.0-RC1S 62.4.0R 62.4.1Q 62.4.2P 62.4.3O 62.4.4N 62.4.5M 62.4.6L 62.4.7K 62.4.8J 62.4.9I 62.4.10H 62.4.x-devG #62.5.0-BETA1F #62.5.0-BETA2    iUB/ ~n^N>.rcTE6'{k[K;+ubM8%








n
Y
F
6
&

									x	h	X	H	8	(	teVG8){l]N?0!|m^O@1" oG3 sdUF7(
~o`Q>+paR?, J #Ndev-fix_377I N2.0.17H N2.0.18G N2.0.19F N2.0.20E N2.0.22D N2.0.23C N2.0.x-devB N2.1.0-RC2A N2.1.0@ N2.1.3? N2.1.4> N2.1.5= N2.1.7< N2.1.8; N2.1.9: N2.1.109 N2.1.118 N2.1.x-dev7 #N2.2.0-BETA16 #N2.2.0-BETA25 N2.2.0-RC14 N2.2.0-RC23 N2.2.0-RC32 N2.2.01 N2.2.10 N2.2.2/ N2.2.3. N2.2.4- N2.2.5, N2.2.6+ N2.2.x-dev* #N2.3.0-BETA1) #N2.3.0-BETA2( N2.3.0-RC1' N2.3.0& N2.3.1% N2.3.2$ N2.3.3# N2.3.4" N2.3.5! N2.4.0  N2.4.1 N2.4.2 N2.4.3 N2.4.4 N2.4.5 N2.4.x-dev N2.5.0 N2.5.1 N2.5.2 N2.5.3 N2.5.x-dev N3.0.x-dev !Ndev-master$; IMdev-configurationinterface-fix: 5Mdev-fix-404-doctrine9 M2.0.178 M2.0.187 M2.0.196 M2.0.205 M2.0.224 M2.0.233 M2.0.x-dev2 M2.1.0-RC21 M2.1.00 M2.1.3/ M2.1.4. M2.1.5- M2.1.7, M2.1.8+ M2.1.9* M2.1.10) M2.1.11( M2.1.x-dev' #M2.2.0-BETA1& #M2.2.0-BETA2% M2.2.0-RC1$ M2.2.0-RC2# M2.2.0-RC3" M2.2.0! M2.2.1  M2.2.2 M2.2.3 M2.2.4 M2.2.5 M2.2.6 M2.2.x-dev #M2.3.0-BETA1 #M2.3.0-BETA2 M2.3.0-RC1 M2.3.0 M2.3.1 M2.3.2 M2.3.3 M2.3.4 M2.3.x-dev M3.0.0 M3.0.1 M3.0.2 M3.0.3 M3.0.4 M3.0.5 M3.0.6
 M3.0.7	 M3.0.8 M3.0.9 M3.0.10 M3.0.x-dev !Mdev-master< 7Ldev-newstruct-removal; L1.0.x-dev: L2.0.179 L2.0.188 L2.0.197 L2.0.206 L2.0.225 L2.0.234 L2.0.x-dev3 L2.1.0-RC22 L2.1.01 L2.1.10 L2.1.3/ L2.1.4. L2.1.5- L2.1.7, L2.1.8+ L2.1.9* L2.1.10) L2.1.11( L2.1.x-dev' #L2.2.0-BETA1& #L2.2.0-BETA2% L2.2.0-RC1$ L2.2.0-RC2# L2.2.0-RC3" L2.2.0! L2.2.1  L2.2.2 L2.2.3 L2.2.4 L2.2.5 L2.2.6 L2.2.x-dev #L2.3.0-BETA1 #L2.3.0-BETA2 L2.3.0-RC1 L2.3.0 L2.3.1 L2.3.2 L2.3.3 L2.3.4 L2.3.5 L2.3.6 L2.3.7 L2.3.8 L2.3.9 L2.3.10 L2.3.11 L2.3.12
 L2.3.13	 L2.3.14 L2.3.15 L2.3.16 L2.3.17 L2.3.18 L2.3.19 L2.3.20 L2.3.21 L2.3.22  L2.3.x-dev #L3.0.0-BETA1~ #L3.0.0-BETA2} L3.0.0| L3.0.1{ L3.0.2z L3.0.3y L3.0.4x L3.0.5w L3.0.6v L3.0.7u L3.0.8t L3.0.9s L3.0.10r L3.0.12q L3.0.13p L3.0.14o L3.0.15n L3.0.16m L3.0.17l L3.0.18k L3.0.19j L3.0.20i L3.0.21h L3.0.22g L3.0.23f L3.0.24e L3.0.25d L3.0.26c L3.0.27b L3.0.28a L3.0.29` L3.0.30_ L3.0.31^ L3.0.x-dev] L4.0.0\ L4.0.1[ L4.0.x-devZ L5.0.x-devY !Ldev-masterC 7Kdev-output-collisionsB 7Kdev-experimental/treeA -Kdev-node-visitor@ /Kdev-asset-locator ? AKdev-pipeline-asset-locator    vcVC6#pbUH;.!|hYJ;,xiZK<- yj[L=.






o
`
Q
B
3
$

									l	]	N	?	0	!		|m^Q7qbS?,
rcN;+{k[K;+sdUB2#wgWG3$~o`QB3     ( X1.11.2' X1.11.3& X1.11.4% X1.11.5$ X1.11.6# !X1.11.x-dev" X2.0.0! X2.0.1  X2.0.2 X2.0.3 X2.0.4 X2.0.5 X2.0.6 X2.1.0 X2.1.x-dev !Xdev-master	 W1.0	 W1.1	 W1.2	 W1.3 W1.3.1 W1.3.2 W1.3.3 !Wdev-master{  5.1.20*  5.1.20Y  5.1.20  5.1.20t #V4.0.0-BETA4s V4.0.0r V4.0.1q V4.0.2p V4.0.3o V4.0.4n V4.0.5m V4.0.6l V4.0.7k V4.0.8j V4.0.9i V4.0.10h V4.0.x-devg V4.1.0f V4.1.1e V4.1.2d V4.1.3c V4.1.4b V4.1.5a V4.1.6` V4.1.7_ V4.1.8^ V4.1.9] V4.1.10\ V4.1.11[ V4.1.12Z V4.1.13Y V4.1.14X V4.1.15W V4.1.16V V4.1.17U V4.1.18T V4.1.19S V4.1.20R V4.1.21Q V4.1.22P V4.1.23O V4.1.24N V4.1.25M V4.1.26L V4.1.27K V4.1.28J V4.1.29I V4.1.30H V4.1.x-devG #V4.2.0-BETA1F V4.2.1E V4.2.2D V4.2.3C V4.2.4B V4.2.5A V4.2.6@ V4.2.7? V4.2.8> V4.2.9= V4.2.12< V4.2.16; V4.2.x-dev: V5.0.09 V5.0.x-dev8 !Vdev-master7 U0.1.06 U0.1.15 U0.2.04 U0.3.03 U0.4.x-dev2 !Udev-masterp 0.4.3 /Tdev-wamp-sync-bug 'Tdev-rfc-split /Tdev-handshake-fix! CTdev-0.4-wip/comp-interfaces -Tdev-0.4-wip/psr7	
 T0.1	 T0.1.1 T0.1.2 T0.1.3 T0.1.4 T0.1.5 T0.2.0 T0.2.1 T0.2.2 T0.2.3  T0.2.4 T0.2.5~ T0.2.6} T0.2.7| T0.2.8{ T0.3.0z T0.3.1y T0.3.2x T0.3.3w T0.4.x-devv !Tdev-master= +Sdev-exceptional< S0.9.0; S0.9.1: S0.9.29 S0.9.38 S0.9.47 S0.9.56 S0.9.75 S1.0.04 S1.0.13 S1.0.22 S1.0.31 S1.0.40 S1.0.5/ !Sdev-master] 11.17.2  5.1.18  5.1.19
  5.1.20$ I dev-opis-comparison-and-bugfix/ 'Rdev-laravel-4. R1.0.0- R1.0.1, R1.1.0+ R1.1.1* R1.2.0) R1.3.0( R1.4.0' R1.5.0& R1.6.0% R1.x-dev$ R2.0.0# R2.x-dev" !Rdev-master #Qdev-develop Q0.0.1 Q0.0.2 Q0.0.3  Q0.0.4 Q0.0.5~ Q0.0.6} Q0.0.7| Q0.0.8{ Q1.0.0z Q1.1.0y Q1.2.0x Q1.2.1w Q1.3.0v Q1.3.1u Q1.4.0t Q1.4.1s Q1.4.2r Q1.4.3q Q1.4.4p Q1.4.5o Q1.4.6n Q2.0.0m Q2.0.1l Q2.0.2k Q2.0.3j Q3.0.0i !Qdev-master	E P0.1D P0.1.1	C P0.2B P0.2.1A P0.2.2@ P0.2.3	? P0.3> P0.3.x-dev	= P0.4< P0.4.1; P0.4.x-dev	: P0.5	9 P0.6	8 P0.7	7 P0.8	6 P0.9
5 P0.104 P0.10.13 P0.10.22 P0.10.31 !P0.10.x-dev
0 P0.11/ !P0.11.x-dev	. P1.0- P1.0.x-dev	, P1.1+ P1.1.x-dev	* P1.2) P1.2.x-dev	( P1.3' P1.3.x-dev	& P1.4% P1.4.x-dev$ P2.0.x-dev# !Pdev-masterz O1.0.0y O2.0.0x O2.1.0w O2.1.1v O2.1.x-devu !Odev-master    vgXI:+whYJ;,paRC4%oZF3${l]J5 







l
X
E
1


								|	m	^	O	@	1	"	yj[L=.y\H9*rcTE0sdUF7(
zjZK<- yj[L=-aM>/        g2.0.2 g2.0.3 g2.1.0 g2.2.0 g2.3.0 g2.3.1 g2.4.0 g2.5.0 g2.6.0 !gdev-master =fdev-feature/console-info fdev-table fdev-web %fdev-readline !fdev-daemon #fdev-develop 3fdev-bash-completion /fdev-build-command f1.4.0 f1.5.13 f1.6.0
 f1.6.1	 f1.6.2 f1.6.3 f1.6.4 f1.6.5 f1.6.6 f1.7.0 f1.7.1 f1.7.2 f1.7.3  f1.7.4 f1.7.5~ f1.7.6} f1.7.7| f1.7.8{ f1.8.0z f1.8.1y f1.9.0x f1.10.1w f1.10.2v !f1.10.x-devu f2.0.0t f2.0.1s f2.0.2r f2.0.3q f2.0.4p f2.0.x-devo f2.1.0n f2.2.0m f2.3.0l f2.4.0k f2.4.1j f2.5.0i f2.5.1h f2.5.2g f2.5.3f f2.5.4e f2.5.5d f2.6.0c f2.6.1b f2.6.2a f2.6.3` f2.6.x-dev_ f2.7.0^ f2.7.1] f2.7.2\ f2.8.0[ !fdev-masterZ #edev-codegenY e0.2.0X e1.0.0W e1.1.0V e1.2.0U e1.3.0T e1.3.1S e1.4.0R e1.4.1Q e1.4.2P e1.4.3O e1.4.4N e1.4.5M e2.0.0L e2.0.x-devK e2.1.0J e2.1.1I e2.1.2H !edev-masterG 3ddev-feature/restfulF )ddev-middlewareE ddev-r3D #ddev-developC d1.0.0B d1.1.1A d1.1.2@ d1.1.3? d1.1.4> d1.2.0= d1.3.0< d1.3.1; d1.3.2: d1.3.39 d1.4.08 d1.5.07 d1.5.16 d1.5.25 d1.6.04 d1.6.13 d1.6.x-dev2 d2.0.x-dev1 !ddev-master 5cdev-resolved-objects #cdev-remotes c0.1.0 c0.1.1 c0.1.2 c0.1.3 c0.1.4 c0.1.5 c0.1.6 c0.1.7 c1.0.x-dev !cdev-master b1.0.0 b1.0.1 b1.0.2 !bdev-master
 3.0.2
 3.0.3h 
4.8.14Z `1.0.x-devY !`dev-masterX _1.0.x-devW !_dev-masterV ^1.0.x-devU !^dev-masterT ]1.0.x-devS !]dev-masterR \1.0.x-devQ !\dev-master	 #Z0.1.0-alpha #Z0.2.0-alpha #Z0.3.0-alpha #Z0.4.0-alpha #Z1.0.0-beta1 Z1.0.0-RC1 Z1.0.0 Z1.1.0 Z2.0.0-RC1  Z2.0.0 Z2.0.1~ Z2.0.2} Z2.1.0| Z2.1.1{ Z2.1.2z Z2.1.3y Z3.0.0x Z3.1.0w Z3.2.0v Z3.3.0u Z3.3.x-devt !Zdev-masterD #Y0.1.0-alphaC #Y0.2.0-alphaB #Y0.3.1-alphaA #Y1.0.0-beta1@ #Y1.0.0-beta2? Y1.0.0-RC1> Y1.0.0= Y1.0.1< Y1.0.2; Y1.1.0: Y2.0.0-RC19 Y2.0.08 Y2.1.07 Y2.1.16 Y2.1.25 Y2.1.34 Y3.0.03 Y3.1.02 Y3.2.01 Y3.2.10 Y3.2.x-dev/ !Ydev-masteru  5.1.20  5.1.20J #X1.0.0-beta1I #X1.0.0-beta2H X1.0.0G X1.0.1F X1.0.2E X1.0.3D X1.0.4C X1.1.0B X1.1.1A X1.1.2@ X1.1.3? X1.2.0> X1.2.1= X1.3.0< X1.3.1; X1.3.2: X1.4.09 X1.5.08 X1.5.17 X1.5.26 X1.6.05 X1.6.14 X1.7.03 X1.7.12 X1.7.21 X1.8.00 X1.8.1/ X1.9.0. X1.9.1- X1.9.2, X1.9.3+ X1.10.0* X1.11.0) X1.11.1    yj[L=.rcTE6'	sS?,teVB3$p7# 








x
i
Z
K
7
(


									z	k	\	M	:	%		xiZK<(
|m^O@1"xiUF7(
teQB3$zk\M9*|gR=.|m^O@1"         : y5.0.49 y5.0.58 y5.0.67 y5.0.76 y5.0.85 y5.1.04 y5.1.13 y5.1.22 y5.2.01 y6.0.00 y6.0.1/ y7.0.0. !ydev-master ;xdev-scrutinizer-patch-1 x0.1.0 x0.2.0 x0.3.0 x0.3.1 x0.3.2 x0.4.0
 !xdev-masterd w1.0.0c #w1.0.1-beta1b #w1.0.1-beta2a #w1.0.1-beta3` #w1.0.1-beta4_ w1.0.1	^ w1.1] w1.1.1\ w1.1.2[ !wdev-masterZ v1.0.1Y v1.1.0X v1.2.0W v1.3.0V v1.3.1U v1.3.2T !vdev-masterS u1.0.0R u1.1.0Q u1.2.0P !udev-masterO t0.1.1N t1.0.0M t1.0.1L t1.0.2K t1.0.3J t1.0.4I t1.1.0H t1.2.0G t1.2.1F t1.2.2E t1.2.3D t1.2.4C t1.2.5B !tdev-masterA s1.0.1@ s1.0.2? s1.0.3> s1.0.4= s1.0.5< s1.0.6; s1.0.7: s1.1.09 s1.1.18 s1.2.17 s1.3.06 s1.3.15 s1.3.24 s1.3.33 s1.3.42 s1.3.51 !sdev-master0 r1.0.1/ r1.0.2. r1.1.0- r1.1.1, r1.1.2+ r1.3.0* r1.3.1) r1.3.2( !rdev-master' q1.0.0& q1.0.1% q1.0.2$ q1.0.3# q1.0.4" q1.1.0! q1.1.1  q1.2.0 q1.3.0 q1.3.1 q1.3.2 !qdev-master p1.0.0b1 p1.0.0 p1.0.1 p1.0.2 p1.0.3 p1.0.4 p1.0.5 p1.0.6 !pdev-master o1.0.0 o1.0.1 o1.1.1 o1.2.0 o1.2.1 !odev-master n1.0.0 n1.0.1
 n1.0.2	 n1.0.3 n1.1.1	 n1.2 n1.2.1 n1.2.2 !ndev-masterY %62.0.0-alpha1 !22.0.0beta1; m1.0.0: m1.0.19 m1.0.28 m1.0.37 m1.0.x-dev6 !mdev-masters l0.0.1r l0.0.2q l0.1.0p l0.1.1o l0.1.2n l0.1.3m l0.1.4l l0.1.5k l1.0.0j !ldev-master[ k1.0.0Z k1.0.1Y k1.0.2X k1.0.3W k1.0.4V k1.0.5U k1.0.6T k1.0.7S k1.0.8R k1.0.9Q k1.0.10P k1.1.0O k1.1.1N !kdev-master( !+2.15.10.215 kjdev-fonsecas72-look_for_a_yml_config_by_default j0.0.1 j0.0.2 j0.0.3 j0.0.4 j0.0.5 j0.0.6 j0.0.7 j0.0.8 j1.0.0 j1.0.1
 j1.1.0	 j1.1.1 j1.2.0 j1.3.0 !jdev-masterG 
4.8.15F 
4.8.16
= 
5.0.7
< 
5.0.8n #idev-developm i1.3.1l i1.3.2k i1.3.3j i1.3.4i i1.4.0h i1.5.0g i1.6.0f i1.7.0e i1.7.1d i2.0.x-devc !idev-masterK 9hdev-feature/value-typeJ h1.2.1I h1.2.2H h1.2.3G h1.2.4F h1.2.5E h1.2.6D h1.2.7C h1.2.8B h2.0.0A h2.0.1@ h2.0.2? h2.0.3> h2.0.4= h2.0.5< h2.0.6; h2.0.7: h2.0.89 h2.0.98 h2.0.107 h2.0.116 h2.0.125 h2.1.04 h2.1.13 h2.2.02 h2.2.11 h2.2.20 h2.2.3/ h2.2.4. !hdev-master- g0.2.0, g1.0.0+ g1.1.0* g1.2.0) g1.3.0( g1.3.1' g1.4.0& g1.4.1% g1.4.2$ g1.4.3# g1.4.4" g1.4.5! g2.0.0  g2.0.1    teVG8+xiZF3$wj[NA4' teK6hZL8%








x
i
Z
K
<
'

										s	c	T	E	6	'			|kZI8'}l[J9(~m\K:)n]L;*o^M<+	p_N=,
p`QB3$                     0.1.2 !dev-mastert 5dev-style/formattings 5.5.1r 5.6.1q 5.7.0p 5.7.1o 5.7.2n 5.7.3am 5.7.3l 5.7.4ak 5.7.4j 6.0-betai 6.0.0h !dev-master  #dev-develop 6.0.013~ 6.0.014} 6.0.015| 6.0.016{ 6.0.017z 6.0.018y 6.0.019x 6.0.020w 6.0.021v 6.0.022u 6.0.023t 6.0.024s 6.0.025r 6.0.026q 6.0.027p 6.0.028o 6.0.029n 6.0.030m 6.0.031l 6.0.032k 6.0.033j 6.0.034i 6.0.035h 6.0.036g 6.0.037f 6.0.038e 6.0.039d 6.0.040c 6.0.041b 6.0.042a 6.0.043` 6.0.044_ 6.0.045^ 6.0.046] 6.0.047\ 6.0.048[ 6.0.049Z 6.0.050Y 6.0.051X 6.0.052W 6.0.053V 6.0.054U 6.0.055T 6.0.056S 6.0.057R 6.0.058Q 6.0.059P 6.0.060O 6.0.061N 6.0.062M 6.0.063L 6.0.064K 6.0.065J 6.0.066I 6.0.067H 6.0.068G 6.0.069F 6.0.070E 6.0.071D 6.0.072C 6.0.073B 6.0.074A 6.0.075@ 6.0.076? 6.0.077> 6.0.078= 6.0.079< 6.0.080; 6.0.081: 6.0.0829 6.0.0838 6.0.0847 6.0.0856 6.0.0865 6.0.0874 6.0.0883 6.0.0892 6.0.0901 6.0.0910 6.0.092/ 6.0.093. 6.0.094- 6.0.095, 6.0.096+ 6.0.097* 6.0.098) 6.0.099( 6.1.0' 6.1.1& 6.2.0% 6.2.1$ 6.2.2# 6.2.3" 6.2.4! 6.2.5  6.2.6 6.2.7 6.2.8 6.2.9 6.2.10 6.2.11 !dev-masterj 1.0.0i 1.1.0h 1.2.0g 2.0.0f 2.0.1e 2.0.x-devd !dev-masterJ 1.7.3I 1.7.4H #2.0.0-BETA1G 2.0.0F 2.0.1E 2.0.2D 2.0.3C 2.0.4B 2.0.5A 2.0.6@ 2.0.x-dev? 2.1.0> 2.1.1= 2.1.2< 2.1.3; 2.1.4: 2.1.59 2.1.x-dev8 3.0.x-dev7 !dev-master
 "2.2.1
 "2.2.2 1!dev-suffixes-param
} !2.3.2. 0.1.1	- 0.2, 0.2.1+ 0.2.2	* 0.3) 0.3.1	( 0.4' !dev-master %dev-encoding )dev-tagged-pdf #dev-develop -dev-0.6.2-hotfix 0.6.0 0.6.1 !0.7.0-beta #0.7.0-beta2 0.7.x-dev !dev-master	 1.0 1.0.x-dev	 1.1	 1.2	 1.3	 1.4	 1.5	
 1.6		 1.7	 2.0 2.0.1	 2.1	 2.2	 2.3 2.3.x-dev	 2.4 !dev-master| 2.0.1{ 2.1.0z 2.1.1y !dev-master8 :2.3.0! ~1.0.0  ~1.1.0 ~1.1.x-dev !~dev-master }1.0.0 }1.0.1 }1.0.2  }1.0.3 !}dev-master! |1.0.0  |1.0.1 |1.0.x-dev !|dev-masterC {0.0.1B {0.1.0A {0.1.1@ {0.1.2	? {0.2> {0.2.1= {0.2.3< {0.2.4; {0.2.5: !{dev-masterB y1.0.0A y2.0.0@ y3.0.0? y4.0.0> y5.0.0= y5.0.1< y5.0.2; y5.0.3    sdUE5%qaK<(}n_PB4&	weSE6(wdUF7"







}
n
_
P
A
2
#

				v	G	8	%		whYF7(zeUE1 {gXI:+rcTE8+teVG8# tdPA2#zk\M9*     ?  3.8.0>  3.8.1=  3.8.2<  3.9.0;  3.9.1:  3.9.2R 1.0.1Q 1.1.0P !dev-masterH 1.0.1G 1.0.2F 1.0.3E 1.0.4D 1.0.5C 1.0.6B !dev-masterA 0.0.5@ 1.0.0? !dev-master> )dev-packagexml= 1.2.0< 1.3.0; 1.3.1: 1.3.29 1.3.38 !dev-master  2.3.34c  2.7.6e 1.3.0d 1.3.1c !dev-master	Q 0.1	P 0.2O 0.2.1N 0.2.2M 1.0.x-devL !dev-masterf 2.6.0 #dev-gettext 1.0.0 2.0.0 2.1.0 2.1.1 2.1.2 !dev-master	` 1.0_ 1.0.1^ 1.0.2] 1.0.3\ 1.1.0[ 1.1.1Z 1.1.2Y 1.1.3X 1.1.4W 1.1.5	V 2.0	U 2.1T 2.1.1S 2.2.0R 2.2.1Q 2.2.2P 2.2.3O 2.3.0	N 3.0	M 3.1L 3.1.1	K 3.2	J 3.3	I 3.4H 3.4.1G 3.4.2F 3.4.3E 3.5.0D 3.5.1C 3.5.2B 3.5.3A 3.5.4@ !dev-master2 1.0.01 1.0.10 1.1.0/ 1.2.0. 1.3.0- 1.4.0, 1.4.1+ 2.0.0* 2.1.0) 2.2.0( 2.3.0' 3.x-dev& !dev-master  5.1.22*  5.1.22? %g2.4.0-alpha10 -dev-fwrite-retry	/ 1.1	. 1.2	- 1.3	, 1.4	+ 1.5* !dev-master,S Ydev-feature/increasing_phpunit_versionR 1.0.0Q 1.0.1P 1.0.2O 1.0.x-devN 2.0.0M 2.0.1L 2.0.2K !dev-masterQ o1.0.1* m1.1.2% l1.0.x-dev=  2.3.34  2.7.6v ;2.3.34
= ;2.7.6 1.10.2
y p1.2.0 0.1.x-dev 0.2.0+ Wdev-hotfix/athletic-performance-tests2 edev-experiment/better-reflection-integration7 odev-hotfix/#210-temporary-hhvm-partial-compat-fix 0.1.0 0.2.0 0.3.0 0.3.1  0.3.2 0.3.3~ 0.3.4} 0.3.5| 0.3.6{ 0.4.0z 0.4.1y #0.5.0-BETA1x #0.5.0-BETA2w #0.5.0-BETA3v 0.5.0u 0.5.1t 0.5.2s #1.0.0-beta1r #1.0.0-beta2q #1.0.0-beta3p 1.0.0o 1.0.1n 1.0.2m 1.0.x-devl 2.0.x-devk !dev-master1  1.4.3/  1.5.0" 0.5.2! !dev-master 2.3.34
e 2.7.65 2.3.34
| 2.7.6& 2.3.34
m 2.7.6 2.3.34
\ 2.7.6@ C3.0.x-devG ?3.0.x-dev >1.23.06 =2.3.34
} =2.7.6% <2.3.34
l <2.7.6  2.3.34
[  2.7.6 2.3.34
I 2.7.6q 2.3.34
8 2.7.6` 2.3.34
' 2.7.6
 .1.0.1
  .1.1.0S 0.3.5R 0.3.6Q 0.3.7P 0.3.8O 0.3.9N 0.4.0M 0.4.x-devL 0.5.0K !dev-masterE dev-trunkD 1.0-beta1C 1.0.0B 1.0.x-devA !dev-master@ 1.9.5? %1.10.0alpha2> 1.10.0= 1.10.1< !dev-master; 1.3.1: 1.4.09 1.4.18 !dev-master, 7dev-composer-pear-dev+ 1.3.11* 1.3.12) 1.3.13( 1.3.14' 1.3.15& 1.3.16% 1.4.0$ 1.4.1# 1.4.x-dev" !dev-master" Edev-topics/composer-for-pear 1.1.5 1.2.0 1.2.1 dev-trunk    kWH9&hTE6'	~j[L=.vaRC4"yj[L7# 








y
e
V
G
8
)

									o	`	Q	B	3	$		jU@*yj[L=.}j[L9&}gV=%wdQ;%|gRA$vcP=.                    F %1.0.0-beta14E 1.0.0-RC1D 1.0.0-RC2C 1.0.0B 1.1.0-RC1A 1.1.0@ 1.1.1? 1.1.2> 1.1.x-dev= 1.2.0-RC1< 1.2.0-RC2; 1.2.0: 1.2.19 1.2.28 1.2.37 1.2.46 1.2.55 1.2.64 1.2.73 1.2.82 1.2.x-dev1 !dev-master0 3dev-query_constants/ dev-acl. #2.1.0-beta1- #2.1.0-beta2, #2.1.0-beta3+ #2.1.0-beta4* #2.1.0-beta5) #2.1.0-beta6( #2.1.0-beta7' #2.1.0-beta8& #2.1.0-beta9% %2.1.0-beta10$ %2.1.0-beta11# %2.1.0-beta12" 2.1.0-RC1! 2.1.0-RC2  2.1.0 2.1.1 2.1.2 2.1.x-dev !dev-masterz )dev-node_typesy 9dev-lazy_load_propertyx =dev-update_binary_lengthw )dev-versioningv +dev-observationu dev-aclt %1.0.0-alpha1s %1.0.0-alpha2r %1.0.0-alpha3q %1.0.0-alpha4p #1.0.0-beta1o #1.0.0-beta2n #1.0.0-beta3m #1.0.0-beta4l 1.0.0-RC1k 1.0.0-RC2j 1.0.0-RC3i 1.0.0h 1.0.1g 1.0.x-devf 1.1.0-RC1e 1.1.0d 1.1.1c 1.1.2b 1.1.3a 1.1.4` 1.1.5_ 1.1.6^ 1.1.7] 1.1.x-dev\ 1.2.0-RC1[ 1.2.0Z 1.2.1Y 1.2.2X 1.2.3W 1.2.4V 1.2.x-devU !dev-master"S Edev-cache_queries_node_typesR 9dev-join-on-issamenodeQ )dev-versioningP dev-hhvmO -dev-poc_phpbenchN %1.0.0-alpha1M #1.0.0-beta1L #1.0.0-beta2K #1.0.0-beta3J #1.0.0-beta4I 1.0.0-RC1H 1.0.0-RC2G 1.0.0-RC3F 1.0.0-RC4E 1.0.0D 1.0.x-devC 1.1.0-RC1B 1.1.0A 1.1.1@ 1.1.2? 1.1.3> 1.1.4= 1.1.5< 1.1.x-dev; 1.2.0-RC1: 1.2.09 1.2.18 1.2.27 1.2.36 1.2.45 1.2.x-dev4 1.3.x-dev3 !dev-masterq 0.1.0p 0.2.0o 0.3.0n 0.9.0m 0.9.1l !dev-masterk 0.9.0j 0.9.1i 0.9.2h 0.9.3g 0.9.4f 0.9.5e 0.9.6d 0.9.7c 0.9.8b 0.9.9a !dev-masterW !dev-testerV #dev-developU 0.4.2T 0.5.0S 0.6.0R 1.0.0-rc1Q 1.0.0P 1.0.2O !dev-masterQ 1.0.0P 1.0.1O 1.0.2N 1.0.3M !dev-master? !dev-master dev-phar 1.0.0 1.0.1 1.0.2 #1.1.0-beta1 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 !dev-master
 3dev-AUTO_PHP_CS_FIX	 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 !dev-masteru ;dev-scrutinizer-cleanupt 7dev-php-parallel-lints 1.0.0r 1.0.1q 1.1.0p 1.1.1o 1.1.2n 1.1.3m 1.1.4l 1.1.5k 1.1.6j 1.1.7i !dev-masterV /dev-current_indexU 'dev-expr-hashT !dev-let-fnS 0.1.0R 0.2.0Q 0.3.0P 0.4.0O 1.0.0N 1.1.0M 1.1.1L 2.0.0K 2.0.x-devJ 2.1.0I 2.2.0H !dev-master(A Sudev-fix/resolve-empty-each-promises
9 u1.0.3a  2.8.22D  3.4.0C  3.4.1B  3.5.0A  3.6.0@  3.7.0    ~iTA.yfSD5&p[F0 yj[L=.ueUF7(







~
`
F
+
									|	m	^	O	@	1	$		
qbS@1"zk\H4%tfWI:&sdUF7(zm`P@-uaRC4'rcTE8)  / 1.2.1. 1.2.2	- 1.3, !dev-masterJ  5.1.22	! 1.0  1.0.1 1.0.3	 1.1 1.1.1 1.1.2 1.2.0 1.2.1 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.3.10	 1.4 1.4.1 1.4.2 1.4.3
 !dev-master@  2.7.6h  2.3.34/  2.7.6D  2.3.34  2.7.63  2.3.34z  2.7.6?  1.2.5j  dev-php7i ) dev-php-parser[  2.0.x-devY  2.1.x-dev   5.1.21  5.1.22	O 1.0	N 1.1M 1.1.1L 1.1.2K 1.1.3	J 1.2	I 1.3H 1.3.1G 1.3.2F 1.3.3E 1.3.4D 1.3.5	C 2.0B 2.0.1A 2.0.2@ 2.0.3? 2.0.4> 2.0.5= 2.0.6< 2.0.7; 2.0.8: 2.0.99 2.0.108 2.0.117 2.0.12	6 2.15 2.1.14 2.1.2	3 2.32 2.3.11 2.3.20 !dev-master z2.3.34
N z2.7.6v y2.3.34
= y2.7.6X x2.3.34
 x2.7.6 5rdev-refactor-formats
G r2.1.3
G 2.7.6  2.3.34f  2.7.6f 0.4.8 0.1.1  0.2.1 1.0.0~ 1.1.0} !dev-masterA !dev-bug/29@ 0.1.0? 0.1.1> 1.0.0= 1.0.1< 1.1.0; 1.1.1: 1.x-dev9 !dev-master  2.7.6K -dev-oo-internalsJ 2.0.0I 2.0.1H 2.0.2G 2.0.3F 2.0.4-rc1E 2.0.4D 2.0.5C !2.1.0-betaB 2.1.0A 2.x-dev@ 3.0.0-rc1? 3.0.0-rc2> 3.0.0= 3.0.1< !dev-master	 1.0	 1.1	 1.2	 1.3 1.3.1 1.3.2 1.3.3  1.3.4 2.0.0~ 2.0.1} 2.0.2| 2.0.3{ 2.0.4z 2.0.5y 3.0.0x 3.0.1w 3.0.x-devv !dev-masterN 7dev-mercurial-supportM /dev-improve-errorL -dev-minor_tweaksK 5dev-new-array-helperJ -dev-add-handlers#I Gdev-build-phar-package-actionH 0.9.0G 0.9.1F 0.9.2E 0.9.3D 0.9.4C 0.9.5B 0.9.6A 0.9.7@ 0.9.8? 0.9.9> 0.9.10= 0.9.11< 0.9.12; 0.9.13: 0.9.149 0.9.158 0.9.167 1.0.06 1.0.15 1.0.24 1.0.33 1.0.42 1.1.01 1.1.10 1.1.2/ 1.1.3. 1.1.4- 1.1.5, 1.1.6+ 1.1.7* 1.1.8) 1.1.9( !dev-master ?2.7.6 #dev-oak-crx  dev-oak dev-acl~ -dev-poc_phpbench} %1.0.0-alpha2| %1.0.0-alpha3{ #1.0.0-beta1z #1.0.0-beta2y #1.0.0-beta3x #1.0.0-beta4w 1.0.0-RC1v 1.0.0-RC2u 1.0.0-RC3t 1.0.0s 1.0.1r 1.0.x-devq 1.1.0-RC1p 1.1.0o 1.1.1n 1.1.2m 1.1.3l 1.1.x-devk 1.2.0-RC1j 1.2.0i 1.2.1h 1.2.2g 1.2.x-devf !dev-master$T Idev-fix-parsing-dot-in-literalS 1.0-beta1R 1.0-beta2Q 1.0-beta3P 1.0-beta4O 1.0-beta5N #1.0.0-beta6M #1.0.0-beta7L #1.0.0-beta8K #1.0.0-beta9J %1.0.0-beta10I %1.0.0-beta11H %1.0.0-beta12G %1.0.0-beta13    xiZK<- rcTE6"xk^QB3zgXE2wgWG7#








{
l
]
N
?
0
							u	a	P	A	2	#		}n_PA*zk\M>/ yj[L=.yj[L=.vfWH9*vgXI:+b@$    j 2.4.20f 2.5.6R ;dev-check-for-url-fopenQ 5dev-silex-middlewareP 1dev-severity-fixesO =dev-recoverable-severityN 3dev-monolog-handlerM %dev-hostnameL 1.0.0K 1.0.1J 1.0.2I 1.0.3H 1.0.4G 1.0.5F 1.0.6E 1.0.7D 1.0.8C 1.0.9B 1.1.0A 2.0.0@ 2.0.1? 2.0.2> 2.0.3= 2.0.4< 2.1.0; 2.1.1: 2.1.29 2.1.38 2.1.47 2.2.06 2.2.15 2.2.24 2.2.33 2.2.42 2.2.51 2.2.60 2.2.7/ 2.2.8. 2.2.9- 2.2.10, 2.3.0+ 2.3.1* 2.4.0) 2.5.0( 2.5.1' 2.5.2& 2.5.3% 2.5.4$ 2.5.5# !dev-master" 3dev-laravel-5-again! 1.0.0  1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.0.10 1.1.0 1.1.1 1.2.0 1.2.1 1.3.0 1.4.0 1.4.1 1.4.2 1.5.0 1.5.1 1.6.0 1.6.1
 !dev-master	[ 0.1	Z 0.2Y 0.2.1X 0.2.2W !dev-masterL -dev-0.4-selectorK 0.1.0J 0.1.1I 0.1.2H 0.2.0G 0.2.1F 0.3.0E 0.3.1D 0.3.2C !dev-master3  2.1.07 S1.0.66 S1.0.75 S1.0.84 S1.0.93 S1.0.10` 4.5.0_ 4.6.0^ 4.7.0] !dev-master6 'dev-master-l45 1.0.14 1.0.23 2.0.02 2.0.11 2.0.20 2.0.3/ !dev-master%# Kdev-feature-preserve-attributes" 2.0.0! 2.0.1  2.1.0 2.1.1 2.1.2 2.2.0 2.2.1 2.2.2 3.x-dev !dev-master 1.0.0 1.0.2 1.0.3 !dev-masterH 1dev-out-of-laravelG %dev-dry-saveF ?dev-activerecord-patterns!E Cdev-bexarcreativeinc-masterD 1.0.0C 1.0.1B 1.0.2A 1.0.3@ 1.1.0? 2.0.0-RC> 2.0.0= 2.0.1< 2.1.0; 2.3.0: 2.3.19 2.4.08 2.4.17 2.4.26 2.5.05 3.0.04 !dev-mastere  5.1.20d  5.1.22?  5.1.20>  5.1.22k  5.1.20j  5.1.22  5.1.20  5.1.22 'dev-laravel-5 -dev-moura137-327 #dev-2.0-dev 0.1beta 0.2beta 0.2.1beta 0.3.0beta 0.4.0beta 1.0.0 1.0.x-dev
 1.1.0	 1.1.1 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.3.0 1.4.0  1.4.1 !dev-masteri 0.9.0h 0.9.1	g 1.1	f 1.2	e 1.3	d 1.4c 1.4.1b 1.4.2a 1.4.3` 1.4.4	_ 1.5	^ 1.6	] 1.7	\ 1.8[ 1.8.1	Z 1.9Y 1.x-devX !dev-master{ 0.1.0z 0.1.1y 0.1.2x 0.1.3w 0.1.4v 0.2.0u 0.2.1t !dev-masters 9dev-capture-error-bodyY 0.6.2X 0.7.0W 0.7.1V 0.8.0U 0.8.1T 0.8.2J 1.0.0I 1.0.1H 1.0.2G 1.0.3F 1.0.4E 1.0.5D !dev-master	6 1.05 1.0.14 1.0.2	3 1.12 1.1.11 1.1.20 1.2.0    qbN:&xj\A-l[L=.zk\M>/ p[F7(







x
c
N
?
/

							|	g	R	=	(		
eUA.{gSE6'qbS?+p`P@0  whYJ;,xiZK<-
~o`Q7#     5.1.0 5.1.x-dev
 !dev-masterL !11.18.x-devm 1.0.0l 1.1.0k !dev-master -dev-keys-contain~ 1.0.0} 1.0.1| 1.1.0{ 1.2.0z 1.2.1y 1.3.0x 1.3.1w 1.3.2v 1.4.0u !dev-masterX 1.0.0W 1.1.0V 1.2.0U !dev-master$ 1.0.0# 1.0.1" 1.0.2! 1.0.3  1.1.0 1.1.1 1.1.3 1.1.4 1.1.6 1.1.7 1.2.0 1.2.1 1.2.2 1.2.3 1.3.0 1.3.1 1.4.0 1.5.0 1.6.0 1.6.1 1.7.0 1.7.1 1.8.0 1.8.1 1.8.2 1.8.3
 1.8.4	 1.8.5 1.9.0 1.10.0 1.11.0 1.11.1 1.12.0 1.13.0 1.14.0 1.15.0  1.15.1 1.15.2~ 1.16.0} 2.0.x-dev| !dev-master& 2.3.35v 2.6.12
k 2.7.7 <2.3.35` <2.6.12
U <2.7.7 2.3.35^ 2.6.12
S 2.7.7Q #2.8.0-BETA1O #3.0.0-BETA1x 2.3.35H 2.6.12
= 2.7.7d 2.3.354 2.6.12
) 2.7.7' #2.8.0-BETA1% #3.0.0-BETA1N 2.3.35 2.6.12
 2.7.7 #2.8.0-BETA1 #3.0.0-BETA18 2.3.35 2.6.12
} 2.7.7{ #2.8.0-BETA1y #3.0.0-BETA1"  2.3.35r  2.6.12g  2.7.7e # 2.8.0-BETA1c # 3.0.0-BETA1# 0.5.0" 1.0.0! 1.1.0  1.2.0 1.2.1 1.3.0 1.3.x-dev !dev-masterl  1.0.22!d Cdev-feature/removeSeparatorc 7dev-feature/addFilterb 1.0.0a 1.1.0` 1.2.0_ !dev-master>  2.3.33=  2.3.34  2.7.5  2.7.6 # 2.8.0-BETA1  # 3.0.0-BETA1 # 2.8.0-BETA1 # 3.0.0-BETA1I 62.7.6G #62.8.0-BETA1E #63.0.0-BETA1 #<2.8.0-BETA1 #<3.0.0-BETA1
 #=2.8.0-BETA1 #=3.0.0-BETA1 # 2.8.0-BETA1 # 3.0.0-BETA1U  2.3.34  2.7.6 # 2.8.0-BETA1 # 3.0.0-BETA1t  2.3.33s  2.3.34;  2.7.5:  2.7.68 # 2.8.0-BETA16 # 3.0.0-BETA1 #2.8.0-BETA1 #3.0.0-BETA19  2.3.338  2.3.34   2.7.5  2.7.6} # 2.8.0-BETA1{ # 3.0.0-BETA1 >1.23.1] #dev-develop\ 0.1.0[ 0.1.1Z 0.1.2Y 0.1.3X !dev-master8 1.6.07 1.6.16 1.6.25 1.6.34 1.6.43 1.6.52 1.6.61 1.6.70 2.0.0/ 2.1.0. 2.2.0- 2.3.0, 2.3.1+ 2.3.2* 2.3.3) 2.3.4( 2.3.5' 2.4.0& 2.4.1% 2.4.2$ 2.4.3# 2.5.0" 2.6.0! 2.6.1  2.6.2 2.x-dev 3.0-beta1 #3.0.0-beta2 3.0.0-RC1 3.0.0-RC2 3.x-devk 0.0.x-devj !dev-masterU 0.0.x-devT !dev-masterd #2.8.0-BETA1b #3.0.0-BETA1, 1dev-Firehed-master
 3.0.4
 3.0.2  3.1.x-devJ ?
dev-nicolas-grekas-phpdbgI )
dev-issue/1953C 
4.8.17B 
4.8.18
7 
5.0.9- 1.0.0, !dev-master+ !0.0.1-beta* !0.0.2-beta) !0.0.3-beta( !0.0.4-beta' 1.0.1& 1.1.0% 1.1.1$ 1.2.0# 1.3.0" 1.3.1! !dev-master	v 1.0u 1.0.1t !dev-master    zeTD5&r]N?*whYJ;,iB/ vgYF7(








}
n
^
N
:
'

									w	h	Y	E	1	#		{l]N8%xeRC0!q`O@-sbQ@/ ~o`QB3$~o_O?/ zfWH9% * 1.0.0) 1.0.1( 1.0.2' 1.0.3& 1.0.x-dev% 1.1.x-dev$ !dev-masterp  1.6.0l 1.1.1k 1.3.1j !dev-masterB 3dev-wip/source-mapsA 0.0.1@ 0.0.2? 0.0.3> 0.0.4= 0.0.5< 0.0.7; 0.0.8: 0.0.99 0.0.108 0.0.117 0.0.126 0.0.135 0.0.144 0.0.153 0.1.02 0.1.11 0.1.20 0.1.3/ 0.1.4. 0.1.5- 0.1.6, 0.1.7+ 0.1.8* 0.1.9) 0.1.10( 0.2.0' 0.2.1& 0.3.0% 0.3.1$ 0.3.2# 0.3.3" 0.4.0! 0.5.0  0.5.1 0.6.0 0.6.1 0.6.2 !dev-masterg 1.3.0f 1.4.2b2e 1.4.2b3d 1.4.2rc1c 1.4.2b 1.4.2.1a 1.4.2.2` 1.5.1b1_ 1.5.1b2^ 1.5.1rc1] 1.5.1rc2\ 1.5.1rc3[ 1.5.1Z 1.5.1.1Y 1.5.1.2X 1.6.1rc1W 1.6.1rc2V 1.6.1U 1.6.3T 1.6.3.1S 1.6.x-devR 1.7.0Q 1.7.0.1P 1.7.0.2O 1.7.0.3N 1.7.0.4M 1.7.0.5L 1.7.0.6K 1.7.0.7J 1.7.0.8I 1.7.0.9H 1.7.0.10G 1.7.x-devF !dev-masterG 2.0.0F 2.0.x-devB 2.0.0A 2.0.x-dev@ 2.1.x-dev 2.6.12
 2.7.7 #2.8.0-BETA1 #3.0.0-BETA1[  2.3.35+  2.6.12   2.7.7 # 2.8.0-BETA1 # 3.0.0-BETA1  1.1.0  1.1.x-dev % dev-DDC-2524N  2.5.2^ 2.3.35. 2.6.12
# 2.7.7! #2.8.0-BETA1 #3.0.0-BETA12 z2.3.35 z2.6.12
w z2.7.7u #z2.8.0-BETA1s #z3.0.0-BETA1 y2.3.35l y2.6.12
a y2.7.7_ #y2.8.0-BETA1] #y3.0.0-BETA1t x2.3.35D x2.6.12
9 x2.7.77 #x2.8.0-BETA15 #x3.0.0-BETA1
! t6.1.1
 s1.0.3
 s1.0.4& rdev-php7
O r2.1.4) )1.1.4( )1.2.0' )1.2.x-dev& )1.3.x-dev #o5.2.0-beta1#  2.3.35s  2.6.12h  2.7.7f # 2.8.0-BETA1d # 3.0.0-BETA1 
4.8.19 
5.0.10) /dev-zlib-features
C v1.2.1
m H2.4.9
# A2.4.9d 32.4.9` 32.5.3_ 32.6.0^ 32.6.1\ 32.7.x-dev
T q2.0.15 1.0.04 1.0.13 1.1.02 1.2.01 1.2.10 1.3.0/ 1.3.1. 1.3.2- 1.4.0, 1.4.1+ !dev-master^  1.4.4[  1.5.1Y  1.6.x-dev#F Gdev-simpler-definition-helperE 5dev-feature/CompilerD 0.9.0C 1.0.0B 1.0.1A 1.0.2@ 1.0.3? 1.1.0> 2.0.0= 2.0.1< 2.1.0; 3.0.0: 3.0.19 3.0.28 3.0.37 3.0.46 3.0.55 3.0.64 3.1.03 3.1.12 3.2.01 3.3.00 3.4.0/ 3.5.0. 3.5.1- 3.x-dev, #4.0.0-beta1+ #4.0.0-beta2* 4.0.0) #4.1.0-beta1( 4.1.0' 4.1.1& #4.2.0-beta1% 4.2.0$ 4.2.1# 4.2.2" 4.3.0! 4.4.0  4.4.1 4.4.2 4.4.3 4.4.4 4.4.5 4.4.6 4.4.7 4.4.8 4.4.9 4.4.10 4.x-dev #5.0.0-beta1 5.0.0-RC1 5.0.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.x-dev #5.1.0-beta1    vhZL>0!p\L<,ufWH9*m^J=)r`RD6(






u
a
S
C
1
#

										u	c	U	G	9	+			 seWE2whYJ;,
yk]N<. ufWH9*t`M>/ sdUF4 n`L9*                  ~ 2.0.0-rc} 2.0.0| 2.0.1{ 2.0.2z 2.0.3y 2.0.4x 2.0.x-devw !dev-master
n 2.0.5_ !2.0.0-beta^ 2.0.0-rc] 2.0.0\ 2.0.1[ 2.0.2Z 2.0.3Y 2.0.x-devX !dev-masterW !dev-travisV #2.0.0-alphaU !2.0.0-betaT 2.0.0-rcS 2.0.0R 2.0.1Q 2.0.2P 2.0.3O 2.0.4N 2.0.x-devM !dev-masterL #2.0.0-alphaK !2.0.0-betaJ 2.0.0-rcI 2.0.0H 2.0.1G 2.0.2F 2.0.3E 2.0.4D 2.0.5C 2.0.x-devB !dev-masterA !2.0.0-beta@ 2.0.0-rc? 2.0.0> 2.0.1= 2.0.2< 2.0.3; 2.0.4: 2.0.x-dev9 !dev-master 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.1.0 1.1.1 1.1.4 1.1.5 1.2.0 !dev-mastera 11.x-dev` 12.0.x-devy <2.3.36
= <2.7.8
: <2.8.0
9 <2.8.1
6 <3.0.0
5 <3.0.13 <3.1.x-dev4 2.3.36
x 2.7.8
u 2.8.0
t 2.8.1
q 3.0.0
p 3.0.1n 3.1.x-devz 2.3.36
> 2.7.8
; 2.8.0
: 2.8.1
7 3.0.0
6 3.0.14 3.1.x-dev]  2.3.36!  2.7.8  2.8.0  2.8.1  3.0.0  3.0.1  3.1.x-devb  4.4.1_  3.1.0rc10 # 2.8.0-BETA1
/  2.8.0
.  2.8.1, # 3.0.0-BETA1
+  3.0.0
*  3.0.1(  3.1.x-dev/ %g2.4.0-alpha2. !g2.4.0-beta- g2.4.0-rc1
, g2.4.0
+ g2.4.1B J2.13.0A !J2.14.x-dev
 K2.4.0
 K2.5.0  K2.6.x-dev)  2.3.35(  2.3.36  2.6.12
t  2.7.7
s  2.7.8 2.3.36
[ 2.7.8
X 2.8.0
W 2.8.1
T 3.0.0
S 3.0.1Q 3.1.x-dev 2.3.36
R 2.7.8
O 2.8.0
N 2.8.1
K 3.0.0
J 3.0.1H 3.1.x-devq 2.3.36
5 2.7.8
2 2.8.0
1 2.8.1
. 3.0.0
- 3.0.1+ 3.1.x-dev/ 1.10.3
- 1.11+ !1.12.x-dev
  	1.0.2
f 1.3.3
_ 1.4.0
^ 1.4.1] 1.4.x-dev
 +dev-release/2.x0s cdev-cleanup/old-php-versions-compat-cleanupr 2.3.36
6 2.7.8
3 2.8.0
2 2.8.1
/ 3.0.0
. 3.0.1, 3.1.x-dev
  3.0.5
 3.0.6} 3.1.x-devj 
4.8.20i 
4.8.21
[ 
5.1.0
Z 
5.1.1
Y 
5.1.2
X 
5.1.3U 
5.3.x-dev) y7.0.1% 2.4.8-p4$ !dev-master	! 1.1  !dev-masterM 1.0.0L !dev-masterK 1.0.0J 1.0.1I 1.0.x-devH !dev-master 1.0.x-dev !dev-master 7dev-reduce-complexity 0.1.0  0.1.1 0.1.2~ 0.2.0} 0.2.1| 0.3.0{ 0.4.0z 0.5.0y 0.5.1x 0.6.0w 0.6.1v 0.7.0u 0.7.1t 0.7.2s 0.8.0r 0.9.0q 0.10.0p 0.11.0o 0.11.1n 0.11.2m 0.11.3l 0.12.0k !0.13.x-devj !dev-master'  2.3.35&  2.3.36v  2.6.12k  2.7.7j  2.7.8g  2.8.0f  2.8.1c  3.0.0b  3.0.1`  3.1.x-dev	 2.3.36
M 2.7.8
J 2.8.0
I 2.8.1
F 3.0.0
E 3.0.1C 3.1.x-dev2 0.1.01 0.1.10 0.1.2/ 0.1.3. 0.1.4- 0.1.5, 0.1.6+ 0.1.7    yiVG8)sdTD4 seWI7)kXE6#zk\M>/ 








~
o
`
Q
B
3
 

								z	k	\	M	8	(		vcPA.ufWH5&~k\M;-kXI:&|m^N>.teVB/rcTE1       3.6.6 3.6.7 3.6.8 3.6.9 3.6.10 4.0.x-dev !dev-master 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6  5.1.7 5.1.8~ 5.1.9} 5.1.10| 5.1.x-dev{ 5.2.0z 5.2.1y 5.2.x-devx 5.3.x-devw !dev-masterf  2.1.1d  2.2.0c  2.2.x-devS  2.6.12H  2.7.7G  2.7.8E # 2.8.0-BETA1D  2.8.0C  2.8.1A # 3.0.0-BETA1@  3.0.0?  3.0.1=  3.1.x-devJ  2.3.35I  2.3.36  2.6.12  2.7.7  2.7.8 # 2.8.0-BETA1
  2.8.0	  2.8.1 # 3.0.0-BETA1  3.0.0  3.0.1  3.1.x-devd 1.0.0c 1.0.1b 1.0.x-deva !dev-master` 1.0.0_ 1.0.1^ 1.0.x-dev] !dev-master z2.3.36
T z2.7.8
Q z2.8.0
P z2.8.1
M z3.0.0
L z3.0.1J z3.1.x-dev y2.3.36
J y2.7.8
G y2.8.0
F y2.8.1
C y3.0.0
B y3.0.1@ y3.1.x-deve  0.6.0d  0.6.1c  0.7.x-dev] Sdev-pharJ S1.1.0I S1.1.1H S1.1.2G S1.1.3F S1.1.4E S1.1.5 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.x-dev 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.1.10 3.1.11 3.1.12 3.1.13
 3.1.14	 3.1.x-dev 3.2.0 3.2.x-dev 3.3.x-dev !dev-master
m 22.0.0T  1.21.0Z 1.0.16  4.2.18o  5.0.34V  5.1.23U  5.1.24T  5.1.25S  5.1.26R  5.1.27Q  5.1.28O # 5.2.0-beta1N  5.2.0M  5.2.1L  5.2.2K  5.2.3J  5.2.4I  5.2.5H  5.2.6G  5.2.7E  5.3.x-dev1  2.2.0& /Wdev-country_names~  2.2.0r  3.0.0q  3.0.x-devo 2.0.0n 2.0.1m 2.0.2l 2.0.3k 2.0.4j 2.0.5i 2.0.6h 2.0.x-devg 2.1.0f 2.1.1e 2.1.2d 2.1.x-devc 2.2.0b 2.2.1a 2.2.x-dev` 3.0.0_ 3.0.1^ 3.0.2] 3.0.3\ 3.0.4[ 3.0.5Z 3.0.6Y 3.0.7X 3.0.x-devW 3.1.0V 3.1.1U 3.1.2T 3.1.3S 3.1.4R 3.1.5Q 3.1.6P 3.1.7O 3.1.x-devN 3.2.0M 3.2.x-devL 3.3.x-devK !dev-master<  0.7.0 ;2.3.35
 ;2.3.36Z ;2.6.12
O ;2.7.7
N ;2.7.8L #;2.8.0-BETA1
K ;2.8.0
J ;2.8.1H #;3.0.0-BETA1
G ;3.0.0
F ;3.0.1D ;3.1.x-dev
U L0.7.0
T L0.7.1
S L1.0.0R L1.0.x-devQ L2.0.x-dev
 2.7.8
  2.8.0
 2.8.1
| 3.0.0
{ 3.0.1y 3.1.x-devY 1.0.0X 1.0.1W 1.0.x-devV !dev-master  2.3.35~  2.3.36N  2.6.12C  2.7.7B  2.7.8@ # 2.8.0-BETA1?  2.8.0>  2.8.1< # 3.0.0-BETA1;  3.0.0:  3.0.18  3.1.x-deva  2.3.36%  2.7.8"  2.8.0!  2.8.1  3.0.0  3.0.1  3.1.x-devW  2.3.36  2.7.8  2.8.0  2.8.1  3.0.0  3.0.1  3.1.x-dev  #2.0.0-alpha !2.0.0-beta    yj[L=.zk\I:+zk\L<(ugXI;-paSE6'









p
b
T
F
8
*


 									w	i	[	M	;	-			wi[M?1lYJ;, tbTF8*m_QC5'{l]I</o[G4%sdK6   
L 2.8.2  2.3.37m  2.6.13`  2.7.9[  2.8.2S +dev-doc/localesR #dev-doc/faqQ +dev-refactoringP 0.1.0O 0.1.1N 0.1.2M 0.2.0L 0.2.1K 0.3.0J 0.3.1I 0.3.2H 0.3.3G 0.3.4	F 0.4E 0.4.1D 0.4.2C 0.4.3B 0.5.x-devA !dev-master8 !0.11.0-RC17 0.12.06 0.12.15 0.12.2.14 !dev-master3 !0.11.0-RC12 0.12.01 0.12.10 0.12.2.1/ !dev-master	) 0.1( 0.1.x-dev	' 0.2	& 0.3% !dev-master 0.1.0 0.2.0 0.2.1 0.3.0 0.4.0 0.4.1 1.0.x-dev !dev-master
4 i0.7.1( -fdev-stable-2.0.5' #fdev-develop
& f2.0.0
% f2.0.1
$ f2.0.2
# f2.0.3
" f2.0.4
! f2.0.5  'f3.0.0-beta.22
\ c2.4.9
V c2.6.2T c3.0.x-dev
 b2.4.9
Z a2.4.9
 `2.4.9=	 }
dev-feature/1994-argument-unpacking-for-dependency-input
m 
5.1.4
 _2.4.9
 _2.5.2
 ^2.4.9
z ]2.4.9t ]3.0.x-dev
: [2.4.9
u Y2.4.9
4 X2.4.9
u W2.4.9
5 V2.4.9
v U2.4.9
u T2.4.9
y S2.4.9
< R2.4.9
y Q2.4.9
v Q2.5.2e )1.2.1d )1.3.0c )1.3.1b )1.3.2a )1.3.3_ )1.4.x-dev-1 ]Pdev-yumemi-feature/fix_arround_oidc_spec/ ?Pdev-add-coveralls-support- Pdev-psr-7 ?Odev-compress_zlib_support
	 O1.6.1
 O1.6.2 ?Ndev-compress_zlib_support
w N1.6.1
v N1.6.2
; C2.4.9
} B2.4.9
? @2.4.9t +Gdev-release-2.7
= G2.4.9
9 G2.7.0
8 G2.7.1
7 G2.7.2
6 G2.7.3
5 G3.0.03 G3.1.x-dev
z F2.4.9
= E2.4.9
: E2.5.2
 D2.4.9
{ D2.6.0y D2.7.x-dev
; A2.6.1
: A2.6.2
9 A3.0.07 A3.1.x-dev
A ?2.4.9D >1.23.2C >1.23.3! =2.3.35  =2.3.36 =2.3.37o =2.6.12n =2.6.13
c =2.7.7
b =2.7.8
a =2.7.9
^ =2.8.0
] =2.8.1
\ =2.8.2
Y =3.0.0
X =3.0.1V =3.1.x-dev] <2.3.37, <2.6.13
 <2.7.9
 <2.8.2c ;2.3.372 ;2.6.13
% ;2.7.9
  ;2.8.2
 :1.4.0o %62.0.0-alpha2
C /1.6.0J  2.3.37  2.6.13
  2.7.9
  2.8.2 2.3.37U 2.6.13
H 2.7.9
C 2.8.2H 2.3.37 2.6.13

 2.7.9
 2.8.2 2.3.37U 2.6.13
H 2.7.9
C 2.8.2y 2.3.37H 2.6.13
; 2.7.9
6 2.8.27 2.3.37 2.6.13
y 2.7.9
t 2.8.2s 2.3.37B 2.6.13
5 2.7.9
0 2.8.2
v 3.1.0
g }1.5.0) 2.0.0( 2.0.1' 2.0.2& 3.0.0% 3.0.x-dev$ !dev-master4  5.1.253  5.1.281  5.2.00  5.2.6/  5.2.7-  5.3.x-dev\  5.1.25[  5.1.28Y  5.2.0X  5.2.6W  5.2.7U  5.3.x-devJ  5.1.25I  5.1.28G  5.2.0F  5.2.6E  5.2.7C  5.3.x-dev; 1.0.0: 1.0.19 1.0.28 1.0.37 1.0.46 1.0.55 2.0.04 2.0.13 2.1.02 2.1.11 2.1.20 2.1.3/ 2.1.4. 3.0.0- 3.0.1, 3.1.0+ 3.2.0* 3.2.1) 3.2.2( 3.3.0' 3.4.0& 3.5.0% 3.6.0$ 3.6.1# 3.6.2" 3.6.3! 3.6.4  3.6.5    xhXD1"whYJ:*
|m^O@1p\L9*reXB&




c
M
9

							t	[	@	~j[L=.ufWJ:*
s[H-	}eRC4%paRC4$}n_P@0  zk\M>/        62.8.1 62.8.2  63.0.0 63.0.1} 63.1.x-devL  2.6.12K  2.6.13@  2.7.7?  2.7.8>  2.7.9;  2.8.0:  2.8.19  2.8.26  3.0.05  3.0.13  3.1.x-dev 1.0.0 1.0.1
 1.0.x-dev	 !dev-masteri 42.3.34h 42.3.35g 42.3.36f 42.3.376 42.6.125 42.6.13+ 42.7.6* 42.7.7) 42.7.8( 42.7.9& #42.8.0-BETA1% 42.8.0$ 42.8.1# 42.8.2! #43.0.0-BETA1  43.0.0 43.0.1 43.1.x-devD  2.3.37  2.6.13  2.7.9  2.8.2q 52.7.6p 52.7.7o 52.7.8n 52.7.9l #52.8.0-BETA1k 52.8.0j 52.8.1i 52.8.2g #53.0.0-BETA1f 53.0.0e 53.0.1c 53.1.x-dev1  1.5.20  1.5.3/  1.5.4-  1.6.0+  1.7.x-dev )dev-5.x-stable 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 5.0.0 6.0.0 !dev-master q Adev-update_daterangepickerp /dev-angular-bowero dev-bowern )dev-5.x-stablem 1.0.1l 1.0.2k 1.0.3j 1.0.4i 1.0.5h 1.0.6g 1.0.7f 1.0.8e 1.0.9d 1.0.10c 1.0.11b 1.0.12a 1.0.13` 1.0.14	_ 2.0^ 2.0.1] 2.0.2\ 2.0.3[ 2.0.4Z 5.0.0Y 5.0.1X 5.0.2W 5.0.3V 6.0.0U 6.0.1T 6.0.2S 7.0.0R !dev-masterK 2.2.2J 2.3.0I 2.4.0H 2.4.1G 2.5.0F !dev-master!9 Cdev-class_token_replacement8 9dev-standard_deviation3 0.2.32 0.3.01 0.4.00 0.4.1- 9dev-refactoring_to_xml, ;dev-string_concat_bench+ /dev-use_classname* +dev-column_spec) 7dev-concurrent_runner( -dev-report_steps' %dev-div_zero& 5dev-interface_suffix% dev-faq$ 'dev-histogram# !dev-graphs" 1dev-kernelestimate! !dev-sqlite  %dev-timeunit ?dev-allow_null_fname_xslt! Cdev-aggregation_refactoring )dev-arg_params) Sdev-better_report_config_validation 9dev-before_after_param %dev-baseline 1dev-profiling_fuck %dev-profiler	 0.1	 0.2 0.2.1 0.2.2	 0.3	 0.5	 0.6 0.7.0 0.7.x-dev 0.8.0 #0.8.0.x-dev 0.8.1 0.9.0
 0.9.1	 0.9.2 0.9.x-dev 0.10.0 !0.10.x-dev 1.0.x-dev !dev-master 0.1.0 1.0.x-dev !dev-master# 0.0.2" 0.0.3! !dev-master  0.0.1 0.0.2 !dev-master 0.0.1 0.0.2 0.0.4 0.0.5 0.0.6 0.0.7
 0.0.8	 0.0.9 0.0.10 0.1.1 0.1.2 0.1.3 !dev-masterr  2.3.35q  2.3.36p  2.3.37@  2.6.12?  2.6.134  2.7.73  2.7.82  2.7.9/  2.8.0.  2.8.1-  2.8.2*  3.0.0)  3.0.1'  3.1.x-dev.  2.3.37}  2.6.13p  2.7.9k  2.8.2B 1.0.0A 1.0.1@ 1.0.x-dev? !dev-master^  2.3.37-  2.6.13   2.7.9  2.8.2=  2.3.37  2.6.13  2.7.9z  2.8.2 2.3.37^ 2.6.13
Q 2.7.9    s^O@1l[L=.l]N?0!r^Q=.xiZK8%








t
e
V
C
4
!
									v	e	T	C	3	#		ufWH9*teVG8)ufWH9&|m^O>/ o`QB3$|m^O@1"ufWH6&    	 3.3.10 3.3.11 3.3.12 3.3.13 3.3.14 3.3.15 3.3.15.1 3.4.0 3.4.1  3.4.2 3.4.2.1~ 3.4.3} 3.4.3.1| 3.4.3.2{ 3.4.4z 3.4.5y 3.4.5.1x 3.4.6w 3.5.0v 3.5.1u 3.6.0t 3.6.1s 3.6.2r 3.6.3q 3.6.4p 3.6.5o 3.6.6n 3.6.7m 3.6.8l 3.6.9k 3.6.10j 3.6.11i 3.6.12h 4.0.0g 4.0.1f 4.0.2e 4.0.3d 4.0.4c 4.0.5b 4.0.6a 4.0.7` 4.0.8_ 4.0.9^ 4.0.10] 4.0.11\ 4.0.12[ 4.0.12.1Z 4.1.0Y 4.1.1X 4.1.2W 4.1.2.1V 4.1.3U 4.1.3.1T 4.1.3.2S 4.1.4R 4.1.5Q 4.1.5.1P 4.1.6O 4.2.0N 4.2.1M 4.3.0L 4.3.1K 4.3.2J 4.3.3I !5.0.0-betaH 5.0.0G 5.0.1F 5.0.2E 5.0.3D 5.0.4C 5.0.5B 5.0.x-devA 5.1.0@ 5.1.1? 5.1.2> 5.2.0= 5.2.1< 5.2.2; 5.3.0: 5.3.19 5.3.28 5.4.07 5.4.16 5.4.25 5.4.34 5.4.43 5.4.52 5.5.01 5.5.10 5.5.2/ 5.5.3. 5.5.4- 5.5.5, 5.5.6+ 5.5.7* 5.5.8) 5.5.9( 5.5.10' 5.5.11& 5.6.0% 5.6.1$ 5.7.0# 5.8.0" 5.8.1! 5.8.2  5.8.3 5.8.4 5.8.5 5.8.6 5.9.0 5.9.1 5.9.2 5.10.0 5.11.0 5.11.1 5.11.2 5.11.3 5.11.4 5.11.5 5.11.6 5.11.7 5.11.8 5.11.9 5.11.10 5.11.11 5.11.12 5.11.13
 5.11.14	 5.12.0 5.12.1 5.12.2 5.12.3 5.12.4 5.12.5 #6.0.0-alpha !6.0.0-beta 6.0.0-RC1  6.0.0 6.0.x-dev~ 6.1.0} 6.1.1| 6.1.2{ 6.1.3z 6.2.0y 6.2.1x 6.2.2w 6.2.3v !dev-master] K2.x-devn  1.1.1 dev-sf2 1.0-alpha 1.1-alpha  1.2-alpha 1.2.0~ 1.2.1} 1.3.0| 1.3.1{ 2.0.0z 2.0.1y 2.1.0x 2.1.1w 2.2.0v 2.3.0u 2.4.0t 2.4.1s 2.5.0r 2.x-devq 3.0.0p 3.1.0o !dev-master	( 1.0' !dev-master   1.0.1  1.0.x-dev ! dev-master	 0.1	 0.2 !dev-master 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 2.0.0 2.0.1 2.0.2 !dev-master	I 1.0H !dev-master  1.1.8  1.1.9  1.1.10  1.x-dev % 2.0.0-alpha1 % 2.0.0-alpha2  2.0.0
  2.0.x-dev 0.0.1 0.1.0 0.1.1 1.x-dev !dev-master 32.3.34 32.3.35 32.3.36 32.3.37\ 32.6.12[ 32.6.13Q 32.7.6P 32.7.7O 32.7.8N 32.7.9L #32.8.0-BETA1K 32.8.0J 32.8.1I 32.8.2G #33.0.0-BETA1F 33.0.0E 33.0.1C 33.1.x-dev 62.6.12 62.6.13
 62.7.7	 62.7.8 62.7.9 62.8.0    yj[L=.zk\M>/ |gXE6'xhXE6'vgXH8%








x
h
X
H
4
!
									~	n	_	P	A	2		~n_PA2#o_O?/o`QB3$zk\M>/ scS@1"n_PA2#zkWC3#      ^ 0.8.3] 0.9.0\ 0.9.1[ 0.10.0Z 0.11.0Y 0.12.0X 0.13.0W !0.13.x-devV !dev-masterU 5.0.0T 5.0.1S 5.0.2R 5.0.3Q 5.0.4P 5.0.5O 5.0.x-devN 5.1.0M 5.1.1L 5.1.2K 5.1.3J 5.1.4I 5.1.5H 5.1.6G 5.1.7F 5.1.8E 5.1.9D 5.1.x-dev	C 5.2B 5.2.1A 5.2.2@ 5.2.x-dev? !dev-masterp  5.1.20o  5.1.22n  5.1.25m  5.1.28k  5.2.0j  5.2.6i  5.2.7g  5.3.x-dev=  5.1.22<  5.1.25;  5.1.289  5.2.08  5.2.67  5.2.75  5.3.x-dev3 1.0.12 1.1.01 #4.0.0-BETA20 #4.0.0-BETA3/ #4.0.0-BETA4. 4.0.0- 4.0.1, 4.0.2+ 4.0.3* 4.0.4) 4.0.5( 4.0.6' 4.0.7& 4.0.8% 4.0.9$ 4.0.10# 4.0.x-dev" 4.1.0! 4.1.1  4.1.2 4.1.3 4.1.4 4.1.5 4.1.6 4.1.7 4.1.8 4.1.9 4.1.10 4.1.11 4.1.12 4.1.13 4.1.14 4.1.15 4.1.16 4.1.17 4.1.18 4.1.19 4.1.20 4.1.21 4.1.22 4.1.23
 4.1.24	 4.1.25 4.1.26 4.1.27 4.1.28 4.1.29 4.1.30 4.1.x-dev #4.2.0-BETA1 4.2.1  4.2.2 4.2.3~ 4.2.4} 4.2.5| 4.2.6{ 4.2.7z 4.2.8y 4.2.9x 4.2.12w 4.2.16v 4.2.17u 4.2.x-devt 5.0.0s 5.0.4r 5.0.22q 5.0.25p 5.0.26o 5.0.28n 5.0.33m 5.0.x-devl 5.1.1k 5.1.2j 5.1.6i 5.1.8h 5.1.13g 5.1.16f 5.1.20e 5.1.22d 5.1.25c 5.1.28b 5.1.x-deva 5.2.0` 5.2.6_ 5.2.7^ 5.2.x-dev] 5.3.x-dev\ !dev-masterM  5.1.20L  5.1.22K  5.1.25J  5.1.28H  5.2.0G  5.2.6F  5.2.7D  5.3.x-devt  5.1.22s  5.1.25r  5.1.28p  5.2.0o  5.2.6n  5.2.7l  5.3.x-devC  5.1.25B  5.1.28@  5.2.0?  5.2.6>  5.2.7<  5.3.x-devi  5.1.25h  5.1.28f  5.2.0e  5.2.6d  5.2.7b  5.3.x-dev  5.1.25~  5.1.28|  5.2.0{  5.2.6z  5.2.7x  5.3.x-dev(  5.1.20'  5.1.22&  5.1.25%  5.1.28#  5.2.0"  5.2.6!  5.2.7  5.3.x-devP  5.1.20O  5.1.22N  5.1.25M  5.1.28K  5.2.0J  5.2.6I  5.2.7G  5.3.x-dev? 0.6.2< #0.7.0-beta33 dev-L42 %dev-L5-DT1.91 #dev-develop0 1.3.0/ 1.3.1. 1.3.2- 1.3.3, 1.3.4+ 1.3.5* 1.4.0) 1.4.1( 1.4.2' 1.4.3& 1.4.4% 1.5.0$ 2.0.0# 2.0.1" 2.0.2! 2.0.3  2.0.4 2.0.5 2.0.6 2.1.0 2.2.0 2.2.1 2.2.2 3.0.0 3.0.1 3.0.2 3.0.3 3.1.0 3.2.0 3.3.0 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.3.8
 3.3.9    yj[L=.dQB3 zgXI:+~o`QB3$paRC4%









q
b
S
D
5
&

									v	g	X	I	:	+		rcT@1"n_PA2#}m]M=-{lV@*xbL=.o^N>.p`I2             F 1.11.0E 1.11.1D 1.11.2C 1.11.3B 1.11.4A '1.12.0-beta.1@ '1.12.0-beta.2? '1.12.0-beta.3> 1.12.0= 1.12.1< 1.12.2; '1.13.0-beta.1: '1.13.0-beta.29 1.13.08 1.13.17 1.13.26 1.13.35 1.13.44 1.13.53 1.13.62 1.13.71 1.13.80 1.13.9/ 1.13.10. 1.13.11- 1.13.12, 1.13.13+ %2.0.0-beta.1* %2.0.0-beta.2) %2.0.0-beta.3( %2.0.0-beta.4' %2.0.0-beta.5& 2.0.0% 2.0.1$ 2.0.2# 2.0.3" %2.1.0-beta.1! %2.1.0-beta.2  %2.1.0-beta.3 %2.1.0-beta.4 2.1.0 2.1.1 2.1.2 %2.2.0-beta.1 %2.2.0-beta.2 2.2.0 2.2.1 2.2.2 %2.3.0-beta.1 %2.3.0-beta.2 %2.3.0-beta.3 2.3.0 %2.4.0-beta.1 !dev-master~ /dev-and-not-unaryr 2.3.0  2.8.23  2.8.24c  3.9.3b  3.9.4a  3.10.0`  3.10.1_  3.11.0^  3.11.1]  3.11.2\  3.11.3[  3.11.4Z  3.11.5Y  3.11.6X  3.11.7W  3.12.0V  3.12.1U  3.12.2T  3.13.0 R A
dev-fix-remove-config_pathQ 
dev-sdk3P 
1.0.0O 
1.0.1N 
1.0.2M 
1.0.3L 
1.0.4K 
1.0.x-devJ 
1.1.0I 
1.1.1H 
1.1.2G %
2.0.0-beta.1F 
2.0.0E 
2.0.1D 
2.0.x-devC 
3.0.0B 
3.0.1A 
3.0.2@ 
3.0.3? 
3.1.0> !
dev-master. 	4.0.0- 	4.0.5, 	6.0.0+ !	dev-mastere 1.0.6d 1.1.0c 1.2.0b 1.2.1a 1.3.0` 1.4.0_ 1.4.1^ 1.4.2] 1.4.3\ 1.4.4[ 1.5.0Z 1.5.1Y 1.5.2X 1.5.3W 1.5.4V 1.5.5U 1.5.x-devT 2.0.x-devS !dev-master> y2.3.37 y2.6.13
  y2.7.9
{ y2.8.2? 0.1.0> 0.1.1= 0.1.2< 0.1.3; 0.1.4: 0.1.59 0.1.68 0.1.77 0.1.86 0.1.95 0.2.04 0.2.13 0.2.22 0.2.31 0.2.40 0.2.5/ 0.2.6. 0.2.7- 0.2.8, 0.3.0+ 0.3.1* 0.3.2) 0.3.3( 0.3.4' 1.0.0& 1.0.1% 1.0.2$ 1.0.3# 1.0.4" 1.0.5! 1.0.6  1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.1.x-dev 1.2.0 1.2.1 1.2.2 1.2.3 1.2.x-dev 1.3.0 1.3.1 1.3.2
 1.3.3	 1.3.4 1.3.5 1.3.6 1.3.7 1.3.x-dev 2.0.0 2.0.1 2.0.2 2.0.3  2.0.4 2.0.5~ 2.0.6} 2.0.7| 2.0.8{ 2.0.9z 2.0.10y 2.0.x-devx 2.1.0w 2.1.1v 2.1.x-dev0u adev-mediaholding-improved-json-api-supportt ?dev-improved-l4-paginators +dev-scrutinizerr 0.0.1q 0.1.0p 0.2.0o 0.2.1n 0.3.0m 0.3.1l 0.4.0k 0.4.2j 0.4.3i 0.4.4h 0.4.5g 0.4.6f 0.5.0e 0.5.1d 0.6.0c 0.6.1b 0.7.0a 0.8.0` 0.8.1_ 0.8.2    mVG8"j[L6 
~hRC4u_I:+kU?0!






{
e
Q
=
)

							r	^	O	@	1	"		o_O?,o`L9)r^K<(xdRC4%xcO@1" n[D5&vgSD5&         I  1.0.x-devH ! dev-masterB 0.0.1A 0.0.2@ 0.0.3? 0.0.4> 0.1.0= 0.1.1< 0.1.2; 0.1.3: 0.1.49 !dev-master8 0.0.17 0.0.26 0.0.35 0.0.44 !dev-master1 #dev-bundled0 0.1.0/ 0.2.0. 0.3.0- 0.4.0, 0.4.1+ 0.4.2* 0.4.3) 0.4.4( '1.0.0-alpha.1' 1.0.x-dev& !dev-master	% 1.0$ !dev-masterZ  5.1.22Y  5.1.25X  5.1.28V  5.2.0U  5.2.6T  5.2.7R  5.3.x-dev[ 1.0.0Z 1.1.0Y 1.2.0X 1.3.0W !dev-mastera #dev-develop	` 1.0_ !dev-master^ 0.1.0] 0.1.1\ !dev-masterQ %dev-userAuthP !dev-rc-1.0O 0.9-betaN 1.0.0M 1.0.1L 1.0.2K 1.0.3J 1.0.4I 2.0-betaH !dev-master	E 1.0D !dev-master{ 1.0.4z 1.0.x-devy !dev-masterx 1.0.28w 1.0.x-devv !dev-masteru 1.0.4t 1.0.x-devs !dev-mastero 1.0.5n 1.0.x-devm !dev-masterl 1.0.16k 1.0.x-devj !dev-masteri 1.0.43h 1.0.x-devg !dev-masterf 1.0.9e 1.0.x-devd 1.1.x-devc !dev-masterb 1.0.13a 1.0.x-dev` !dev-master_ 1.0.2^ 1.0.x-dev] !dev-masterB 1.0.12A 1.0.x-dev@ !dev-master? 7dev-components-jquery> 1.8.3= 1.8.x-dev< 1.9.0; 1.9.1: 1.9.x-dev9 1.10.08 1.10.17 1.10.26 !1.10.x-dev5 1.11.04 1.11.13 1.11.22 1.11.31 !1.11.x-dev0 2.0.0/ 2.0.1. 2.0.2- 2.0.3, 2.1.0+ 2.1.1* 2.1.3) 2.1.4( 2.2.0' !dev-master #dev-glimmer #dev-release !dev-canary -dev-release-1-13 dev-beta dev-rc1 !1.0.0-rc.1 !1.0.0-rc.2 !1.0.0-rc.3 !1.0.0-rc.4 !1.0.0-rc.5 !1.0.0-rc.6 %1.0.0-rc.6.1 !1.0.0-rc.7 !1.0.0-rc.8 1.0.0 1.0.1
 %1.1.0-beta.1	 %1.1.0-beta.2 %1.1.0-beta.4 1.1.0 1.1.1 1.1.2 1.1.3 %1.2.0-beta.1 %1.2.0-beta.2 %1.2.0-beta.3  %1.2.0-beta.4 1.2.0~ 1.2.1} 1.2.2| %1.3.0-beta.1{ %1.3.0-beta.2z %1.3.0-beta.3y %1.3.0-beta.4x 1.3.0w 1.3.1v 1.3.2u %1.4.0-beta.1t %1.4.0-beta.2s %1.4.0-beta.3r %1.4.0-beta.4q %1.4.0-beta.5p %1.4.0-beta.6o 1.4.0n %1.5.0-beta.1m %1.5.0-beta.2l %1.5.0-beta.3k %1.5.0-beta.4j 1.5.0i 1.5.1h %1.6.0-beta.1g %1.6.0-beta.2f %1.6.0-beta.3e %1.6.0-beta.4d %1.6.0-beta.5c 1.6.0b 1.6.1a %1.7.0-beta.1` %1.7.0-beta.2_ %1.7.0-beta.3^ %1.7.0-beta.4] %1.7.0-beta.5\ 1.7.0[ 1.7.1Z %1.8.0-beta.1Y %1.8.0-beta.2X %1.8.0-beta.3W %1.8.0-beta.4V %1.8.0-beta.5U 1.8.0T 1.8.1S %1.9.0-beta.1R %1.9.0-beta.3Q %1.9.0-beta.4P 1.9.0O 1.9.1N '1.10.0-beta.1M '1.10.0-beta.2L '1.10.0-beta.3K 1.10.0J 1.10.1I '1.11.0-beta.1H '1.11.0-beta.2G '1.11.0-beta.5    teVG8)}iZK<- }jZJ:*
zjZJ:*
paRC6$









p
a
R
C
0
!
								y	f	W	D	1		xhXD4 qbO@-jU@-ubS@- scT>+wgWI;- ~j[L=. (0.1.0  (0.1.1 (1.0.0~ (1.1.0} (1.2.0| !(dev-master\ '0.1.0[ '0.2.0Z '1.0.0Y '1.1.0X '1.1.1W !'dev-master	B &1.0	A &1.1@ &1.1.1	? &1.2	> &1.3	= &1.4	< &1.5	; &1.6: &1.6.19 &1.6.2	8 &1.7	7 &1.8	6 &1.9
5 &1.10
4 &1.11
3 &1.122 &1.12.11 &1.12.20 &1.12.3/ !&dev-master< !3.1.16-rc1; 3.1.166 3.2.0-rc25 3.2.04 3.2.1-rc13 3.2.1-rc22 3.2.10 #3.3.0-beta1. 3.4.x-dev* %%dev-post-2.4) %2.4.9( %2.4.10' %2.4.11& %2.4.12% %2.4.13$ %2.4.x-dev# %2.5.x-dev" %3.0.2.1! %3.0.3-rc1  %3.0.3-rc2 %3.0.3 %3.0.4 %3.0.5 %3.0.6-rc1 %3.0.6-rc2 %3.0.6 %3.0.7-rc1 %3.0.7 %3.0.8 %3.0.9-rc1 %3.0.9 !%3.0.10-rc1 %3.0.10 !%3.0.11-rc1 %3.0.11 %3.0.12 %3.0.13 %3.0.14 %3.0.x-dev #%3.1.0-beta1 #%3.1.0-beta2
 #%3.1.0-beta3	 %3.1.0-rc1 %3.1.0-rc2 %3.1.0-rc3 %3.1.0 %3.1.1 %3.1.2-rc1 %3.1.2 %3.1.3-rc1 %3.1.3-rc2  %3.1.3 %3.1.4-rc1~ %3.1.4} %3.1.5-rc1| %3.1.5{ %3.1.6-rc1z %3.1.6-rc2y %3.1.6-rc3x %3.1.6w %3.1.7-rc1v %3.1.7u %3.1.8t %3.1.9-rc1s %3.1.9r !%3.1.10-rc1q !%3.1.10-rc2p %3.1.10o !%3.1.11-rc1n %3.1.11m %3.1.12l !%3.1.13-rc1k %3.1.13j !%3.1.14-rc1i %3.1.14h %3.1.15g !%3.1.16-rc1f %3.1.16e %3.1.x-devd #%3.2.0-beta1c #%3.2.0-beta2b %3.2.0-rc1a %3.2.0-rc2` %3.2.0_ %3.2.1-rc1^ %3.2.1-rc2] %3.2.1\ %3.2.x-dev[ #%3.3.0-beta1Z %3.3.x-devY %3.4.x-devX %3.x-devW %4.0.x-devV !%dev-master- $1.0.0, $1.0.x-dev+ $1.1.0* $1.1.1) $1.1.2( $1.1.3' $1.1.4& $1.1.5% $1.1.6$ $1.1.7# $1.1.8" $1.1.x-dev! $2.0.0  $2.0.x-dev !$dev-master #dev-dev #dev-php7	 #0.1 #0.1.1 #0.1.2 #0.1.3 #0.1.4 #0.1.5 #0.1.6 #0.1.7 #0.1.8 #0.1.9 #0.1.10 #0.1.11 #0.1.12 #0.1.13 #0.1.14
 #0.1.15	 #0.1.16 #0.1.17 #0.1.18 #0.1.19 #0.1.20 #0.1.21 #0.1.22 #0.1.23 #0.1.24  #0.1.25 #0.1.26~ #0.1.27} #0.1.28| #0.1.29{ #0.1.30z #0.1.31y #0.1.32x #0.1.33w #0.1.34v #0.1.35u #0.1.x-devt #0.2.0-rcs #0.2.0-rc2r #0.2.0-rc3q #0.2.0p #0.2.1o #0.2.2n #0.3.0m #0.3.1l #0.3.2k #0.3.3j #0.3.4i #0.3.5h #0.3.6g #0.3.7f #0.3.8e !#dev-master "0.1.0 "0.1.1 !"dev-master -!dev-feature/php7 #!dev-develop !1.0.0 !1.0.1  !1.0.2 !2.0.0~ !2.0.1} !2.0.2| !2.0.3{ !3.0.0z !3.0.1y !3.0.2x !4.0.0w !4.0.1v !5.0.0u !5.0.1t !5.0.2s !!dev-masterL  1.0.0K  1.0.1J  1.0.2    whS@1"sdU@+~o`QB-{l]N?,vgXI6!








y
i
Y
I
9
)

										y	i	Y	I	9	*		paRC4%xiZK<- ~n^N>.|m^O@1"p[H9*p`P@0  sdUF2              9 +2.2.18 +2.2.27 +2.3.06 +2.3.15 +2.3.24 +2.3.x-dev3 !+dev-masterv 2.2.9o 2.3.5n 2.3.6m 2.3.7G *2.0.7F *2.0.9E *2.0.10D *2.0.12C *2.0.13B *2.0.14A *2.0.15@ *2.0.16? *2.0.17> *2.0.18= *2.0.19< *2.0.20; *2.0.21: *2.0.229 *2.0.238 *2.0.x-dev7 #*2.1.0-BETA16 #*2.1.0-BETA25 #*2.1.0-BETA34 #*2.1.0-BETA43 *2.1.0-RC12 *2.1.0-RC21 *2.1.00 *2.1.5/ *2.1.7. *2.1.8- *2.1.9, *2.1.x-dev+ #*2.2.0-BETA1* #*2.2.0-BETA2) *2.2.0-RC2( *2.2.0' *2.2.x-dev& #*2.3.0-BETA2% *2.3.0-RC1$ *2.3.0# *2.3.x-dev" *2.4.0! *2.4.1  *2.5.0 *2.5.1 *2.6.0 *2.6.1 *2.7.0 *2.7.1 *2.8.0 *2.8.1 *2.8.2 *2.8.x-dev !*dev-master )2.0.7 )2.0.9 )2.0.10 )2.0.12 )2.0.13 )2.0.14 )2.0.15 )2.0.16 )2.0.17 )2.0.18 )2.0.19
 )2.0.20	 )2.0.21 )2.0.22 )2.0.23 )2.0.24 )2.0.25 )2.0.x-dev )2.1.0 )2.1.1 )2.1.2  )2.1.3 )2.1.4~ )2.1.5} )2.1.6| )2.1.7{ )2.1.8z )2.1.9y )2.1.10x )2.1.11w )2.1.12v )2.1.13u )2.1.x-devt )2.2.0s )2.2.1r )2.2.2q )2.2.3p )2.2.4o )2.2.5n )2.2.6m )2.2.7l )2.2.8k )2.2.9j )2.2.10i )2.2.11h )2.2.x-devg )2.3.0f )2.3.1e )2.3.2d )2.3.3c )2.3.4b )2.3.5a )2.3.6` )2.3.7_ )2.3.8^ )2.3.9] )2.3.10\ )2.3.11[ )2.3.12Z )2.3.13Y )2.3.14X )2.3.15W )2.3.16V )2.3.17U )2.3.18T )2.3.19S )2.3.20R )2.3.21Q )2.3.22P )2.3.23O )2.3.24N )2.3.25M )2.3.26L )2.3.27K )2.3.28J )2.3.29I )2.3.30H )2.3.31G )2.3.32F )2.3.33E )2.3.34D )2.3.35C )2.3.36B )2.3.37A )2.3.x-dev@ #)2.4.0-BETA1? #)2.4.0-BETA2> )2.4.0-RC1= )2.4.0< )2.4.1; )2.4.2: )2.4.39 )2.4.48 )2.4.57 )2.4.66 )2.4.75 )2.4.84 )2.4.93 )2.4.102 )2.4.x-dev1 #)2.5.0-BETA10 #)2.5.0-BETA2/ )2.5.0-RC1. )2.5.0- )2.5.1, )2.5.2+ )2.5.3* )2.5.4) )2.5.5( )2.5.6' )2.5.7& )2.5.8% )2.5.9$ )2.5.10# )2.5.11" )2.5.12! )2.5.x-dev  #)2.6.0-BETA1 #)2.6.0-BETA2 )2.6.0 )2.6.1 )2.6.2 )2.6.3 )2.6.4 )2.6.5 )2.6.6 )2.6.7 )2.6.8 )2.6.9 )2.6.10 )2.6.11 )2.6.12 )2.6.13 )2.6.x-dev #)2.7.0-BETA1 #)2.7.0-BETA2 )2.7.0 )2.7.1 )2.7.2
 )2.7.3	 )2.7.4 )2.7.5 )2.7.6 )2.7.7 )2.7.8 )2.7.9 )2.7.x-dev #)2.8.0-BETA1 )2.8.0  )2.8.1 )2.8.2~ )2.8.x-dev} #)3.0.0-BETA1| )3.0.0{ )3.0.1z )3.0.x-devy )3.1.x-devx !)dev-masterw 2.6.13
j 2.7.9
e 2.8.2 #(dev-phpstan    lYJ;(
{hYE2"rbRB2"|nI;-hA3







u
g
Y
K
=
.


									z	j	Z	J	;	&	whYJ:*
~o_O?/vgXI:+pS6paRC4%paQA1!UF7(         V  3.14.0U  3.14.1!  3.1.28   3.1.29% Kjdev-docs/remove-2-4-from-readmel j2.4.5c j2.5.3b j2.5.4(q Q dev-prototype/merge-detach-removal=  2.5.3<  2.5.4V 1.1.x-dev   2.5.2  2.5.3}  2.6.0|  2.6.1z  2.7.x-dev{  2.3.34z  2.3.35y  2.3.36x  2.3.37H  2.6.12G  2.6.13=  2.7.6<  2.7.7;  2.7.8:  2.7.98 # 2.8.0-BETA17  2.8.06  2.8.15  2.8.23 # 3.0.0-BETA12  3.0.01  3.0.1/  3.1.x-dev  1.4.0b  2.3.3a  2.3.4`  2.3.5E  1.0.1B  2.0.1h  1.1.31`  1.2.6^  1.3.0]  1.3.x-dev7  2.6.13*  2.7.9%  2.8.28 1.1.x-dev4 1.1.x-devx = dev-feature/runkit-reduxu 3 dev-analysis-z9mbl5t 3 dev-analysis-87aWQZ.  5.2.8-  5.2.9,  5.2.10+  5.2.11C  2.3.35B  2.3.36A  2.3.37  2.6.12  2.6.13  2.7.7  2.7.8  2.7.9   2.8.0  2.8.1~  2.8.2{  3.0.0z  3.0.1x  3.1.x-devt 1.1.x-devr .1.0.0q .1.0.1p .1.1.x-devo !.dev-master*  2.3.37y  2.6.13l  2.7.9g  2.8.2<  2.3.35;  2.3.36:  2.3.37
  2.6.12	  2.6.13~  2.7.7}  2.7.8|  2.7.9y  2.8.0x  2.8.1w  2.8.2t  3.0.0s  3.0.1q  3.1.x-dev  2.3.35  2.3.36  2.3.37h  2.6.12g  2.6.13\  2.7.7[  2.7.8Z  2.7.9W  2.8.0V  2.8.1U  2.8.2R  3.0.0Q  3.0.1O  3.1.x-dev% K dev-feature/update-dependencies + dev-feature/box  1.2.0 # dev-preview  1.2.0m  2.12.1l  2.12.2k  2.13.0U ! dev-v3-devD  2.3.1C  2.3.2
 |0.4.2
 |0.4.3
 {0.3.0D z2.3.37 z2.6.13
 z2.7.9
 z2.8.2f x2.3.36e x2.3.374 x2.6.13
( x2.7.8
' x2.7.9
$ x2.8.0
# x2.8.1
" x2.8.2
 x3.0.0
 x3.0.1 x3.1.x-dev
h v1.2.2#Z Itdev-flexible-history-container
e s1.1.0
d s1.1.1x #rdev-gherkinw 5rdev-auto-rebuild-enh
 r2.1.5#E Iodev-self-resolving-definitionsD 9odev-definition-interop
 o5.2.0
 o5.2.1x -fdev-stable-3.0.0p %f3.0.0-stablea e1.2.x-dev` e2.0.x-dev
 [2.5.3
K L1.0.1
} K2.5.1
o G2.7.4
m G3.0.1
l G3.0.2!{ E"dev-marco-msg-ferrari-master
~ 2.2.0 -1.0.0 -1.0.1 -1.0.2 -1.0.3 -1.0.4 -1.0.5 -1.0.6 -1.0.7 -1.0.8 -1.0.9 -1.0.10 -1.0.11 -1.0.12 -1.0.13 -1.0.14 -1.0.15 -1.0.16 -1.0.17 -1.0.18
 -1.0.19	 -1.0.20 -1.0.21 -1.0.22 -1.0.23 -1.0.24 -1.0.25 -1.0.26 -1.0.27 -1.0.x-dev  !-dev-masterd 6.2.4" ,1.0.x-dev! ,2.0.0  ,2.0.1-rc1 ,2.0.1 ,2.0.2 ,2.0.3 ,2.0.4 ,2.0.5 ,2.0.6 ,2.0.x-dev ,2.1.0 ,2.1.1 ,2.1.x-dev ,2.2.0 ,2.2.1 ,2.2.x-dev !,dev-master@ 5+dev-freeform_reports? +1.1.1> +1.1.2= +1.1.3< +1.1.x-dev; +2.0.x-dev: +2.2.0    y_ClS;" whXH8)qN?0!zk\I:+








|
l
\
I
:
+

									|	l	\	I	:	+		|l\I:+|l\I:+~n^O@1"bSD5&rcTE6'	sdUF7(
{lYJ;,    'dev-fix-testsy 5.1.1x 5.1.2	w 5.2	v 5.3	u 5.4 2.0.0h 2.0.4a 2.1.6 1.1.0 1.1.x-dev 1.1.0 1.1.x-devd 4.3.0m 1.11.1F  0.12.2E  0.12.3D  0.13.1  2.5.5  2.5.6  2.5.7  2.5.8  2.6.0
  2.6.1	  2.6.3  2.6.4  2.6.5  2.6.6  2.6.7  2.6.8  2.6.9  2.7.0  2.7.1   2.7.2  2.7.3~  2.7.4}  2.7.5|  2.7.6{  2.7.7z  2.8.0j  2.5.5i  2.5.6h  2.6.0g  2.6.1f  2.6.2e  2.6.3d  2.6.4c  2.6.5b  2.6.6a  2.6.7`  2.6.8_  2.6.9^  2.7.0]  2.7.1\  2.7.2[  2.7.3Z  2.7.4Y  2.7.5X  2.7.6W  2.7.7V  2.8.0  A dev-devel-3-workinprogress[  2.8.18Z  2.8.198  1.6.07  1.6.16  1.6.x-dev,  2.2.8$  2.3.6#  2.3.7  2.3.4  2.3.5  2.2.6  2.3.4^  2.3.7]  2.3.8i  5.1.20h  5.1.22g  5.1.25f  5.1.28d  5.2.0c  5.2.6b  5.2.7`  5.3.x-dev 1.1.0 1.1.0L  5.1.25K  5.1.28I  5.2.0H  5.2.6G  5.2.7E  5.3.x-devv  5.1.20u  5.1.22t  5.1.25s  5.1.28q  5.2.0p  5.2.6o  5.2.7m  5.3.x-devj  5.1.20i  5.1.22h  5.1.25g  5.1.28e  5.2.0d  5.2.6c  5.2.7a  5.3.x-devy  5.1.20x  5.1.22w  5.1.25v  5.1.28t  5.2.0s  5.2.6r  5.2.7p  5.3.x-devI  5.1.20H  5.1.22G  5.1.25F  5.1.28D  5.2.0C  5.2.6B  5.2.7@  5.3.x-dev@  5.1.20?  5.1.22>  5.1.25=  5.1.28;  5.2.0:  5.2.69  5.2.77  5.3.x-devZ  5.1.20Y  5.1.22X  5.1.25W  5.1.28U  5.2.0T  5.2.6S  5.2.7Q  5.3.x-devI  5.1.20H  5.1.22G  5.1.25F  5.1.28D  5.2.0C  5.2.6B  5.2.7@  5.3.x-devq  5.1.20p  5.1.22o  5.1.25n  5.1.28l  5.2.0k  5.2.6j  5.2.7h  5.3.x-devO  5.1.5N  5.1.6L  5.2.0K  5.2.1J  5.2.2I  5.2.3H  5.2.4F  5.3.x-devx  1.0.0l  1.0.0k  1.0.1U 1 dev-useful-messageQ  1.0.0P  1.1.0O  1.1.1 ? dev-explicit-wpcs-version/v _ dev-upgrade-getAutoloadRealFile-signature`  1.0.19W - dev-stream-input5  0.11.0y  0.8.0F  3.5.0E  3.6.0D  3.6.1C  3.6.2k 1.1.0D  3.7.126  3.8.12*  3.9.10  4.0.9  4.1.9  4.2.6  4.3.2	  4.4  4.4.1  4.4.x-dev>  3.0.1=  3.0.2<  3.1.0;  3.1.1:  3.1.x-dev& + dev-missingType% ) dev-emptyLines$ + dev-missingDocs! / dev-fullQualifiedG  1.12.17{  1.0.2y  1.1.0x  1.2.0n  1.6.1M  dev-statsL # dev-v3_betaK = dev-asm_suppressions_get!J C dev-asm_suppressions_deleteI 1 dev-asm_groups_getH - dev-api_keys_getG ? dev-asm_suppressions_postF ' dev-406-error&  4.0.0%  4.0.1$  4.0.22  1.0.55W  3.13.1    ~qbSD5&pW9*xiXD0nZI5!vbN:)






~
j
V
E
1

								~	o	`	Q	B	#		p\H4 q[H9*vgXI:+sdQB3 qaQA1!uY=!{lQB3!
    * Udev-revert-675-cookie-with-semicolon-a [|dev-self-link-scheme-visibility-controlF n1.0.1
 'k1.0.0-alpha11~ ddev-php7$ b0.0.5 a1.2.0I /`dev-twig-2-compatF `1.1.0E `1.1.x-dev= ?_dev-strpos-request-methodd l1.1.0c l1.2.0b l1.x-dev!` CZdev-missing-man-description_ 1Zdev-release-0-20-4^ 1Zdev-release-0-20-5] 1Zdev-release-0-21-1\ 1Zdev-release-0-21-2[ 7Zdev-1159-import-quiet< Z0.20.2; Z0.20.3: Z0.20.49 Z0.21.08 Z0.21.17 Z0.22.0| O1.0.2{ O1.0.3z O1.0.4l M2.3.33k M2.3.34j M2.3.35i M2.3.36h M2.3.378 M2.6.127 M2.6.13. M2.7.5- M2.7.6, M2.7.7+ M2.7.8* M2.7.9( #M2.8.0-BETA1' M2.8.0& M2.8.1% M2.8.2# #M3.0.0-BETA1" M3.0.0! M3.0.1 M3.1.x-devH L1.0.8 K1.3.5x I0.9.1w I0.9.2& F1.0.0% F1.1.0  =4dev-datetime-nanoseconds 41.0.0 41.1.0 41.1.1 41.1.2 42.0.0 42.1.0 42.1.1 42.1.2 42.2.0 42.3.0 42.4.0 42.5.0 42.6.0 42.6.1 42.7.0 42.7.1 42.7.2 42.7.3 42.7.4 42.8.0 42.8.1
 42.8.2	 42.8.3 42.8.4 42.8.x-dev %43.0.0-alpha1 %43.0.0-alpha2 %43.0.0-alpha3 #43.0.0-beta1 43.0.0 43.0.1  43.1.0 !4dev-masterl E1.0.0k E1.0.1K D1.8.0? !?2.16.01.11 !>1.15.11.09 !>2.16.01.11 !>2.16.01.14 !>2.16.01.15 >2.x-dev ;2.4.9] /:dev-virtual-hooksW ':dev-issue#510N :1.x-devF :2.4.0E :2.4.1D :2.5.0C :2.5.10 77dev-rabbitmq-test-fix& 71.0.7% 71.0.8+ 62.4.9& 52.4.9" 53.0.x-devh 42.4.9x 32.6.2w 33.0.0v 33.0.x-devu 33.1.x-devN !,2.15.11.09K !31.16.01.14J 31.x-devI !3dev-master@ !12.16.01.11? 12.x-dev2 !93.15.11.091 !94.16.01.110 94.x-dev& !00.15.10.26% !01.16.01.14$ 01.x-dev !81.16.01.14 !81.16.01.15 81.x-dev !20.16.01.06 !21.16.01.11 21.x-dev !2dev-master !/0.15.10.26 !/1.16.01.14 !/1.16.01.15 /1.x-devz !.1.15.10.29y !.2.16.01.11x .2.x-devm !-0.15.11.09l !-1.16.01.14k !-1.16.01.15j -1.x-devh !10.15.11.23g !11.16.01.11f 11.x-deve !1dev-masterd !00.15.11.23c !01.16.01.11b 01.x-deva !0dev-master` !/0.16.01.06_ !/1.16.01.11^ !/1.16.01.14] /1.x-dev\ !/dev-masterB !+2.15.10.29A !+3.16.01.11@ !+3.16.01.14? +3.x-devM *2.0.2 (1.0.0 (1.0.x-devs #2.0.5r #2.0.6' )!1.0.0-beta.1.1 /1.6.x-dev; )1.0.0-beta.1.1: )1.0.0-beta.1.29 )1.0.0-beta.1.3 2.6.1q 5dev-66-custom-errorsp +dev-82-bracketsb 1.2.10a 1.2.11 =dev-feat-dynamic-paddinge 1.10.5d 1.11.0c !1.11.x-devg 2.1.0f 2.1.1e 2.2.x-devd 1.1.0c 1.1.1= 2.5.8< 2.6.1g 1.0.1h 2.0.1	g 2.1e +dev-Fix-E_PARSE/ 1.4.5. 1.4.6 
0.9.00 5	dev-feature/refactor 	5.1.0 	5.1.1    zk\M>/ t\>+ yj[L=.}n_PA2t`P@0 








t
d
P
@
0
 

 								x	h	X	D	4	$		 tdP@0!qaQ=-p`L<,o[K;'yj[L<,t`QB'|hWC/
               8 1.x-dev !0.15.11.09 !1.16.01.14 !1.16.01.15 1.x-dev !0.15.10.21 !1.16.01.14 !1.16.01.15 1.x-dev| !3.16.01.11{ !3.16.01.14z 3.x-deva !2.16.01.11` !2.16.01.14_ 2.x-dev] /5dev-new-injection\ 51.0.0[ 51.0.1Z !5dev-masterY /dev-new-injectionT 1.1.0S 1.2.0L !0.16.01.11K !0.16.01.17 !1.15.10.21 !1.15.10.29 !2.16.01.11 !2.16.01.14 !2.16.01.19 2.x-dev1 3.0.2v 5.1.20u 5.1.22t 5.1.25s 5.1.28q 5.2.0p 5.2.6o 5.2.7m 5.3.x-dev P Adev-revert-565-back-compatD 5.2.14C 5.4.x-devU 0.11.2T 0.12.0S !0.12.x-devm 0.10.2l 0.11.0k !0.11.x-dev/ 0.14.0. 0.14.1- !0.14.x-dev| 0.10.2F 0.11.0E !0.11.x-dev 0.10.5 0.11.0
 0.12.0	 !0.12.x-dev< 0.10.12; 0.11.0: 0.12.09 !0.12.x-dev2 0.11.01 0.12.00 !0.12.x-dev, 0.10.2+ 0.11.0* !0.11.x-devj 0.11.1i 0.12.0h !0.12.x-dev 0.11.6 0.12.0 0.12.1 !0.12.x-devH 0.10.10G 0.11.0F 0.11.1E !0.11.x-dev{ 0.11.2z 0.11.3y 0.11.4x 0.12.0w 0.14.0v 0.14.1u 0.14.2t 0.14.3s !0.14.x-dev+ 0.8.3* 0.8.4) 0.8.5( 0.8.6 1.0.3k 0.11.0j 0.11.1i !0.11.x-dev' 0.11.0& !0.11.x-devn 0.10.3m 0.11.0l !0.11.x-dev& 0.14.0% 0.14.1$ 0.15.0# !0.15.x-dev} 0.14.0| !0.14.x-devE 0.12.1D 0.14.0C !0.14.x-dev: 0.11.59 0.12.08 0.14.07 !0.14.x-dev  0.14.0 0.14.1 0.14.2 0.14.3 0.15.0 !0.15.x-devL 0.12.0K 0.14.0J 0.14.1I 0.14.2H 0.15.0G !0.15.x-dev 0.10.6 0.11.0 !0.11.x-dev) 0.10.6( 0.11.0' !0.11.x-dev 0.11.2 0.11.3 0.12.0 0.12.1 !0.12.x-devw 0.10.9v 0.11.0u 0.11.1t 0.12.0s !0.12.x-devi 0.12.2h 0.14.0g !0.14.x-dev 1.1.0b =dev-feature/goaop-parserS '1.0.0-alpha.2 0.5.4 0.5.5^ 2.1.5] #2.1.5.x-devQ 4.1.0P 4.1.1% 2.2.5  2.3.3 2.3.4d 2.3.4P 2.2.4 2.2.9 2.3.6 2.3.7 2.3.8
 2.3.9  3.0.0 3.0.x-devf 2.3.8$ 'dev-generator 2.3.2} 2.2.7w 2.3.4r 2.4.3b 2.3.4I 2.2.8H 2.2.9A 2.3.5@ 2.3.6? 2.3.7> 2.3.8= 2.3.9 1.0.2  1.1.3f 1dev-revert-689-4.2Z 4.1.2Y 4.1.x-devV 5dev-master-find-listT )dev-fix-travisS )dev-issue-7906P %dev-3.2-hash- 2.6.12% 2.7.6$ 2.7.7# 2.7.8" 2.7.9  2.8.0-RC1 3.0.15 3.1.1 3.1.2 3.1.3  3.1.4 3.1.5~ 3.1.6} 3.1.7| 3.1.8{ 3.2.0-RC1) 2.0.6W 3.3.0-rc1V #3.3.0.x-devs 0.2.1Y 3.1.2G 1.3.1    zfRA-n]I5${lYJ;&o`G0#~bO@- 








u
f
W
H
9
*

										s	d	U	F	7	(		
~o`QB3$paRC4%paRC4%xiZK<)zjZJ:)wgVF6&vfVF6'	       > ,2.9.3= ,2.9.4< ,2.9.5; ,2.9.6: ,2.9.79 ,2.9.88 ,2.9.97 ,2.9.106 ,2.9.115 ,2.9.124 ,2.9.133 ,2.9.142 ,2.10.01 ,2.10.10 ,2.10.2/ ,2.11.0. ,2.11.1- ,2.11.2, ,2.11.3+ ,2.11.4* ,2.11.5) ,2.11.6( ,2.11.7' ,2.11.8& ,2.11.9% ,2.11.10$ ,2.12.0# ,2.12.1" ,2.12.2! ,2.12.3  ,2.12.4 ,2.12.5 ,2.12.6 ,2.12.7 ,2.12.8 ,2.12.9 ,2.12.10 ,2.12.11 ,2.12.12 ,2.13.0 ,2.13.1 ,2.13.2 ,2.13.3 ,2.13.4 ,2.13.5 *2.4.9 *3.0.x-dev` )2.4.9 (2.4.9 (2.6.0 (2.7.x-devW '2.4.9Y &2.4.9 %2.4.9 %3.0.x-dev! #2.4.9 $2.4.9f "2.4.9h !2.4.9f  2.4.9b  2.6.0`  3.0.x-dev! 2.4.9 3.0.x-dev 2.4.9 2.5.2 2.4.9 2.1.0 2.1.1 2.1.0z 2.0.3p 2.1.0o 2.1.1n 2.1.2m 2.1.3l 2.1.4k 2.1.5j 2.1.6i 2.1.7h 2.1.8g 2.1.9f 2.1.10H 2.4.0G 2.4.1F 2.5.0E 2.5.1D 2.5.2C 2.5.3B 2.5.4A 2.6.0@ 2.6.1? 2.6.2> 2.6.3= 2.6.4< 2.6.5; 2.6.6: 2.6.7) 2.1.0( 2.2.0 2.4.0 2.4.1 2.4.2 2.4.3  2.5.0 2.5.1~ 2.5.2} 2.5.3| 2.5.4{ 2.5.5z 2.5.6y 2.5.7x 2.5.8w 2.5.9v 2.5.10u 2.5.11t 2.5.12O 2.2.15N 2.2.16M 2.3.0L 2.3.1K 2.3.2J 2.3.3I 2.3.4H 2.3.5G 2.3.6F 2.3.7E 2.3.8D 2.3.9C 2.3.10B 2.3.11A 2.3.12@ 2.4.0? 2.4.1> 2.4.2= 2.4.3< 2.4.4; 2.5.0: 2.5.19 2.6.08 2.6.17 2.6.26 2.6.35 2.7.04 2.7.13 2.7.22 2.7.3- 1.1.0, 1.2.0  2.4.9 1.0.0-RC1$ 1.4.0# 1.4.1" 1.4.2# 2.4.9( 2.4.9$ 3.0.x-dev! 2.4.9 3.0.x-dev8 1dev-release/0.10.0# 0.10.0w 1.x-devv 2.0.0u 2.0.1t 2.0.x-dev %1.0.0-alpha1		  1.0  2.0.x-devb 0.13.2	Z 0.2	Y 0.3E 'dev-coverallsD +dev-scrutinizer8 1.8.17 1.8.x-dev6 2.0.0 1.0.2 1.0.3 1.1.x-dev -dev-inspector_ngz 2.0.1x 2.1.x-devN +dev-release-2.33 2.3.12 #3.0.0-beta11 3.0.00 3.0.1/ 3.0.x-dev& 2.0.1$ 2.1.x-dev0 2.0.3. 2.1.0- 2.1.1, 2.1.2+ 2.1.3* 2.1.4 !0.15.11.09 !1.16.01.14 !1.16.01.15 1.x-dev !1.16.01.14 !1.16.01.15 1.x-dev{ !3.16.01.11z 3.x-devL !1.16.01.14K !1.16.01.15J 1.x-dev !2.15.10.21 !3.16.01.11 !3.16.01.14 3.x-dev !1.16.01.14 !1.16.01.15  1.x-devp !1.16.01.14o !1.16.01.15n !1.16.01.16m 1.x-devS !2.16.01.11R !2.16.01.14Q 2.x-dev: !1.16.01.149 !1.16.01.15    wgXI:+ufWH9*wbSDyjUF3$}n_PA1!








y
]
3
$
								u	f	W	8	dU<)ufTE6#ufWB5&qXB.m^O@1"vgXI9*zfWD5&         72.3.2 72.3.3 72.4.0 72.5.0 72.5.2 72.5.3 72.5.4 72.5.5 72.5.6 72.5.x-dev 72.6.0 !7dev-master 1.0.16* 5.2.3^ 6.3.0] 6.3.1Y 1.0.0	U 0.3	T 0.4 0.2.0 +dev-suite_model} #dev-storage	} 0.4l 0.4.25 3.6.114 3.7.03 3.7.12 3.7.2_ 3.2.1^ 3.2.2&@ Mdev-feature/resolve-parent-class) 0.13.0( !0.14.x-devX 0.6.3j 3.0.0-RC3i 3.0.0h 3.1.0g 1.0.1[ 1.3.2S 1.0.2 2.5.6 2.6.0# Gdev-fix-65-escape-without-key| 1.6.2{ 1.6.3 3.1.0 3.1.1 3.2.0 3.3.0e 1.5.0d 5.2.x-dev
; 1.10: 1.10.1} !dev-fix-hg{ %dev-rollbackz +dev-symfony_3_0W 1.2.0
 /dev-fix-typehints/ 1.2.5. 1.2.6- 1.2.7+ 1.3.x-devy 1.2.5i 1.0.0 3.5.5 3.5.6 3.5.7 3.5.8	 1.6# #2.0.0-BETA1 1.2.1 1.1.6 1.3.0 !dev-master 61.5.2 61.5.3 61.5.4 61.6.0
 61.6.1	 !6dev-mastery +dev-developmentm 6.1.x-devl 7.0.x-dev_ 3.0.0H {0.2.6a jdev-php7R j1.5.0Q j1.5.1P j1.5.2O j1.6.0N j1.6.1M j1.6.2L j1.6.3K j1.7.0J j1.8.0I j1.8.1H j1.8.2G j1.8.3& i1.7.2% i1.8.x-dev +gdev-codegen-appl g2.7.0 /fdev-action-logger^ f2.8.1] f3.0.x-dev
 c0.1.8	 c1.0.0%| Kbdev-fix-invalid-index-exception{ %bdev-fix/docsz /bdev-safe-divisiony 7bdev-machadoit-patch-1x 7bdev-machadoit-patch-2t b1.0.3	 Z3.4.0 Z3.5.0 Z3.5.x-devT Y3.3.0S Y3.3.x-devA 7Xdev-revert-303-master X2.1.1 X2.1.2
 W1.3.4 7Tdev-0.4-wip/comp-psr7p T0.3.4&m MQdev-fix/updated-psl-breaks-testsl 1Qdev-Saeven-develop" O2.1.2_ N3.0.0^ N3.0.1] N3.0.2\ N3.0.3[ N3.0.4Z N3.0.5G M3.0.11F M3.0.12( 3.0.2V L3.0.32U L3.0.33T L3.0.34P L4.0.2O L4.0.3N L4.0.4L L5.0.0K L5.0.1J L5.0.2I L5.0.3	 1.1.0r K1.3.24 J2.7.1 F3.2.0 F3.3.0 F3.3.1 F3.x-dev  F4.0.0 F4.1.0~ F4.1.x-dev_ E2.3.0G #D1.0.0-beta7# ?2.7.7" ?2.7.8! ?2.7.9 #?2.8.0-BETA1 ?2.8.0 ?2.8.1 ?2.8.2 #?3.0.0-BETA1 ?3.0.0 ?3.0.1 ?3.1.x-dev!3 C9dev-phpunit_5_compatibility' 92.0.0d 83.0.0E #7dev-styleci( 71.4.0-RC1' 71.4.0-RC2	 22.5p '1dev-0.5.x-devM 10.5.0L 10.5.1? /2.1.0> /2.1.1= /2.1.2< /2.1.3; /2.1.4: /2.1.59 /2.1.61 .2.1.00 .2.1.1/ .2.2.0. .2.2.1% -2.1.0$ -2.2.0# -2.2.1T ,2.6.18S ,2.6.19R ,2.7.0Q ,2.7.1P ,2.7.2O ,2.7.3N ,2.7.4M ,2.7.5L ,2.7.6K ,2.7.7J ,2.7.8I ,2.7.9H ,2.7.10G ,2.7.11F ,2.7.12E ,2.8.0D ,2.8.1C ,2.8.2B ,2.8.3A ,2.9.0@ ,2.9.1? ,2.9.2    vgSD5&{l]N?0rcN>.rcTE6'	teQ>/ 








r
c
O
@
1
"									w	h	Y	J	;	,		whYJ;,p`P@0  teVG8)
rcTE6'	yeTD5&lV@,|l]N?.            s F1.2.0r F1.2.1q F1.2.2p F1.2.3o F1.2.4n F1.2.5m F1.2.5.1l F1.2.6k F1.2.7j F1.2.8i F1.2.10h !Fdev-masterg E2.0.0f !Edev-master
 /1.6.1\ D2.0.0[ D2.0.1Z D2.0.2Y D2.0.3X D2.0.4W D2.0.5V D2.x-devU !D3.0.0-betaT %D3.0.0-beta.1S %D3.0.0-beta.2R %D3.0.0-beta.3Q %D3.0.0-beta.4P %D3.0.0-beta.5O D3.0.0N D3.0.1M D3.0.2L D3.0.3K D3.0.4J D3.0.5I D3.0.6H D3.0.7G D3.0.8F D3.0.9E D3.0.10D D4.x-devC !Ddev-master	B C0.4A C0.5.4@ C0.5.5? C0.5.6	> C0.6	= C0.8< C0.8.1; !Cdev-master +Bdev-dev-prezire B1.0.0 B1.0.1 B1.0.2 B1.0.3
 B1.0.4	 B1.0.5 B1.1.0 B1.1.2 B1.1.3 B1.1.4 B1.1.5 B1.1.6 B1.1.7 B1.1.8  B1.1.9 B1.1.10~ B1.1.11} B1.1.12| B1.2.0{ B1.2.1z B1.2.2y B1.2.3x B1.2.4w B1.2.5v B1.2.6u B1.2.7t B1.2.8s B1.2.9r B1.2.10q B1.2.11p B1.2.12o B1.2.13n B1.2.14m B1.2.15l B1.2.16k B1.2.17j B1.2.18i B1.2.19h B1.2.20g B1.2.21f B1.2.22e !Bdev-master #dev-engine2 -dev-blendengine2T A1.0.0S A1.0.2R A1.0.3Q A1.0.4P A1.1.0O A1.1.1N A1.1.2M A1.1.3L A1.1.4K A1.1.5J A1.1.6I A1.1.7H A1.2.1G A1.2.2F A1.2.3E A1.2.4D !Adev-masterU ?@dev-feature/major-changesT #@dev-developS @0.0.1R @0.1.0Q @0.2.0P @0.2.1O @0.3.0N @0.4.0M @0.5.0L @0.6.0K @0.7.0J @0.7.1I @0.8.0H @0.8.1G @0.8.2F @0.9.0E @0.9.1D !@dev-master*# U dev-feature/globally-lazy-properties1 ?0.1.00 ?0.2.0/ ?0.2.1. !?dev-masters >1.24.0' >0.1.0& >0.1.1% >0.1.2$ >0.2.0# >0.3.x-dev" !>dev-master! =1.0.0  =1.1.0 =1.1.1 =1.1.2 =1.1.3 =1.2.0 =1.2.1 =1.5.x-dev !=dev-master <0.1.0 <0.1.1 <0.1.2 <0.1.3 <0.1.4 <0.2.x-dev
 !<dev-master	 !;dev-bug109 ;0.1.0 ;0.2.0 ;0.2.1 ;0.3.0 ;0.4.0 ;0.5.0 ;0.6.0 ;0.7.0  ;0.7.1 ;0.8.0~ ;0.8.1} ;0.9.0| ;0.9.1{ ;0.10.0z ;0.11.0y ;0.12.0x ;0.13.0w ;0.14.0v ;0.14.1u ;0.14.2t ;0.15.0s ;0.15.1r ;0.15.2q #;1.0.0-alphap ;1.0.0o ;1.0.1n ;1.0.2m ;1.1.0l !;dev-masterk :0.1.0j :0.2.0i :0.3.0h :0.4.0g :0.4.1f :1.0.0e :1.0.1d !:dev-masterc 91.0.0b 91.1.0a 91.1.1` 91.1.2_ 91.1.3^ 91.1.4] 91.2.x-dev\ !9dev-master? -1.0.28> -1.0.29 &1.12.4
 &1.13? %3.3.0-rc1> #%3.3.0.x-dev !6.0.0 0.1.5 80.0.1  80.0.2 !8dev-masterz 1.0.0y 1.0.1x 1.0.2* 1.3.10 1.0.1& 1.0.5K 1.0.18H 1.0.46A 1.0.14! 72.3.1    paRC4%ycM7$xiZF7(
teVG8)ufWH




v
[
B
					k	T	2	\:e:{l]N?*whYJ;,xiZK<- ZF7(
teVG8)    j Q1.3.0i Q1.3.1h !Qdev-masterg #Pdev-developf P1.0.0e P1.0.1d !Pdev-masterY #Odev-developX O1.3.0W O1.3.1V O1.3.2U O1.3.3T O1.3.4S O1.3.5R O1.4.0Q O1.4.1P O1.4.2O O1.4.3N O1.4.4M O1.4.5L O1.4.6K O1.4.7J O1.5.0I O1.5.1H O1.5.2G O1.5.3F O1.5.4E O1.5.5D !Odev-master$ INdev-feature/CurlStreamConsumer  5Ndev-feature/DEV-3562 #Ndev-develop~ N1.5.0} N1.5.1| N1.5.2{ N1.5.3z N1.5.4y N1.5.5x N1.6.0w N1.6.1v N1.6.2u N1.6.3t N1.6.4s N1.6.5r N1.6.6q N1.6.7p N1.6.8o N1.6.9n N1.7.0m N1.7.1l N1.7.2k N1.8.0j N1.8.1i N1.9.0h N1.9.1g N1.9.2f N1.9.3e N1.9.4d N1.9.5c N1.9.6b N1.9.7a N1.9.8` N1.9.9_ N1.9.10^ N1.9.11] N1.9.12\ N1.9.13[ N1.9.14Z N1.9.15Y N1.9.16X N1.10.0W N1.10.1V !Ndev-masterU #Mdev-developT M0.1.0S M0.1.1R M0.1.2Q M0.1.3P !Mdev-masterO #Ldev-developN L0.1.0M !Ldev-masterL #Kdev-developK K0.1.0J K0.1.1I !Kdev-master(H QJdev-fix-recursive-dependancy-error'G OJdev-feature/net-resiliant-install0F aJdev-feature/user-file-backwards-compatibleE 5Jdev-feature/env-fqdnD ;Jdev-feature/ssh-commandC 5Jdev-feature/http-fixB =Jdev-feature/list-systemsA =Jdev-feature/multi-window@ =Jdev-feature/script-fixes$? IJdev-feature/restricted-stories!> CJdev-feature/switch-defaults%= KJdev-feature/more-autocompletion< ?Jdev-feature/instagram-api; =Jdev-feature/facebook-api: /Jdev-feature/rsync9 =Jdev-feature/dependencies8 'Jdev-ds-stable7 5Jdev-feature/composer6 5Jdev-feature/timeouts 5 AJdev-feature/vagrantplugins4 1Jdev-feature/iframe33 gJdev-feature/stopInScreen-process-doesnt-exist 2 AJdev-feature/optional-proxy1 +Jdev-support/1.x0 /Jdev-release/2.3.1/ -Jdev-hotfix/2.3.8. 9Jdev-feature/phar-fixes!- CJdev-feature/prose-namespace, #Jdev-develop!+ CJdev-add-arraystringprose-ts5* kJdev-bug/unable-to-have-json-in-test-environment) J1.3.0( J1.3.1' J1.3.2& J1.3.3% J1.4.0$ J1.4.1# J1.4.2" J1.4.3! J1.5.0  J1.5.1 J1.5.2 J1.5.3 J1.5.4 J1.5.5 J1.5.6 J1.5.7 J1.5.8 J2.0.0 J2.0.1 J2.0.2 J2.1.0 J2.1.1 J2.1.2 J2.2.0 J2.2.1 J2.3.0 J2.3.1 J2.3.2 J2.3.3 J2.3.4 J2.3.5
 J2.3.6	 J2.3.7 J2.3.8 !Jdev-master  I1.0.0 I1.1.0~ I1.1.1} I1.1.2| I1.x-dev{ !Idev-masterf H0.1.0e H0.1.1d H0.1.2c H0.2.0b H0.2.1a H0.3.0` H1.0.0_ H1.0.x-dev^ %H2.0.0-alpha1] %H2.0.0-alpha2\ %H2.0.0-alpha3[ %H2.0.0-alpha4Z %H2.0.0-alpha5Y #H2.0.0-beta1X #H2.0.0-beta2W #H2.0.0-beta3V H2.0.0U H2.0.1T H2.1.0S !Hdev-masterK G1.0.0J G1.0.1I G1.0.2H G1.0.3G G1.0.4F G1.0.x-devE !Gdev-masterz F1.0.0y F1.0.1x F1.0.2w F1.0.3v F1.0.4u F1.0.5t F1.1.0    wcSC3#yj[L=.kWH9*t`QB3$teP<-	







{
`
L
=
(

									v	g	X	C	/		r^O@1"wcTE2 |gXI:+n_PA2#yeRC4%paRC4'qbSC4% D h1.1.2C h1.1.3B h1.1.4A h1.1.5@ h1.1.6? h1.1.7> h1.1.8= h1.1.9< h1.1.10; h2.0.0: h2.0.19 h2.0.28 h2.0.37 h2.0.46 h2.x-dev	5 h3.04 h3.0.13 h3.0.22 h3.0.31 h3.0.40 h3.0.5/ h3.0.6. h3.x-dev	- h4.0, h4.0.1+ h4.1.0* h4.1.1) h4.1.2( h5.0.0' h5.0.1& h5.1.1% h5.1.2$ h5.1.3# h5.1.4" !hdev-master	 g0.1	 g1.0 g1.0.1 g1.0.2 g1.0.3 g1.0.4 g1.0.5 g1.0.6 g1.0.x-dev !gdev-master f1.0.0 f1.0.1 f1.0.2 f2.0.0  f2.0.1 f2.0.2~ f2.0.3} f2.0.4| !fdev-master\ e1.0.0[ e1.1.0Z e1.1.1Y e1.1.2X e1.2.0W e1.2.1V e1.2.2U e1.x-devT !edev-masterk ddev-devj d0.1.1i d0.1.2h d0.2.0g d0.2.1f d0.2.2e d0.3.0d d0.3.1c d0.4.1b d0.4.2a d0.4.3` d0.4.4_ d0.4.5^ d0.4.6] #d0.4.6-patch\ d0.4.7[ d0.4.8Z !ddev-master;  1.0.238 #cdev-develop7 c4.0.06 c4.0.15 c4.0.24 c4.0.33 c4.0.42 !cdev-masterA  3.1.x-dev? b1.0.0> b1.0.1= !bdev-master, #adev-boolfix+ a1.0.0* a2.0.0) a2.1.0( a2.2.0' a2.2.1& a2.2.2% a3.0.0$ a3.1.0# a3.1.1" a3.2.0! a3.2.1  a4.0.0 a4.0.1 a4.0.2 !adev-master `0.0.1 !`dev-master _0.2.0  _0.3.0 _0.3.1~ _0.3.2} _0.4.0| _0.4.1{ _0.4.2z _0.4.3y _0.5.0x _1.0.x-devw !_dev-master #^dev-develop ^1.0.0 ^1.0.1 ^1.1.0 !^dev-master
u 
5.1.5
t 
5.1.6
` 3.0.0^ #]dev-develop] ]4.0.1\ ]4.0.2[ ]4.1.0Z ]4.2.0Y !]dev-masterX #\dev-developW \1.0.0V !\dev-masterU /[dev-release/1.1.6T #[dev-developS [1.1.5R [1.1.6Q ![dev-masterP #Zdev-developO Z2.1.3N Z2.1.4M !Zdev-masterL #Ydev-developK Y4.0.1J Y4.0.2I !Ydev-masterH #Xdev-developG X3.0.1F X3.0.2E X4.0.0D X4.0.1C X4.1.0B X4.2.0A !Xdev-master@ #Wdev-develop? W1.0.0> W1.1.0= W1.1.1< W1.2.0; W1.2.1: W1.3.09 W1.3.18 W1.3.27 !Wdev-master6 #Vdev-develop5 V4.3.14 V4.3.23 V4.3.32 !Vdev-master #Udev-develop U1.0.0 U1.1.0 U1.1.1 U1.1.2 U1.2.0 U1.2.1 U1.3.0 U1.4.0 !Udev-master #Tdev-develop T1.0.0 T1.0.1 !Tdev-master 1Sdev-release/2.16.0 #Sdev-develop S1.0.0 S2.0.0
 S2.1.0	 S2.1.1 S2.2.0 S2.3.0 S2.4.0 S2.5.0 S2.5.1 S2.5.2 S2.6.0 S2.6.1  S2.6.2 S2.7.0~ S2.8.0} S2.9.0| S2.10.0{ S2.11.0z S2.12.0y S2.12.1x S2.12.2w S2.13.0v S2.14.0u S2.15.0t S2.16.0s !Sdev-masterr #Rdev-developq R1.0.0p !Rdev-mastero #Qdev-developn Q1.0.0m Q1.1.0l Q1.1.1k Q1.2.0    |oSD5! qbS@1"sdUF7(
teVB3$yiYI9)	








|
m
^
O
@
1
"

									x	i	Z	K	<	-			 qbS?0!vgZA+q^K<- {naRC4
qbSD5&s^O@1"qaQA1!         o y3.2.8n y3.2.9m y3.2.10l y3.2.11k y3.2.12j y3.2.13i y3.2.14h y3.2.15g y3.2.16f y3.2.17e y3.2.18d y3.2.19c y3.2.20b y3.2.21a y3.3.beta1` y3.3.RC1_ y3.3.RC2^ y3.3.0] y3.3.1\ y3.3.2[ y3.3.3Z y3.3.4Y y3.3.5X y3.3.6W y3.3.7V #y3.4.0-beta1U y3.4.0-RC1T y3.4.0S y3.4.1R y3.4.2Q y3.4.3P y3.4.4O y3.4.5N #y3.5.0-beta1M y3.5.0-RC1L y3.5.0K y3.5.1J y3.5.2I y3.5.3H y3.5.4G y3.5.5F y3.5.6E x0.12.2D !xdev-masterC /wdev-release/2.4.0B /wdev-release/3.0.0A #wdev-develop@ #w2.0.0-beta1? #w2.0.0-beta2> #w2.0.0-beta3= #w2.0.0-beta4< w2.0.0; w2.0.1: w2.0.2	9 w2.1	8 w2.27 w2.2.16 w2.2.25 w2.2.34 w2.2.43 w2.2.5	2 w2.31 w2.3.10 w2.3.2/ w2.3.3. w2.3.4- w2.3.5, w2.3.6+ w2.3.7* w2.3.8) w2.3.x-dev( w2.4.x-dev' w3.0.x-dev& !wdev-master% v1.0.0$ v4.7.0# v4.8.0" v4.9.0! v5.0.0  !vdev-master} /udev-code-coverage| +udev-mixin-merge{ %udev-style-ciz +udev-mixin-attrs	y u1.1x u1.1.1	w u1.2	v u1.3u u1.4.0t u1.5.0s u1.5.1r u1.6.0q !udev-masterp t0.1.0o t0.2.0n !tdev-masterm s0.1.0l s0.1.1k s0.2.0j !sdev-master+ r0.3.0* r0.3.1) r0.3.2( r0.3.3' r0.4.0& r0.4.1% r0.4.2$ r0.4.3# r0.5.0-rc1" r0.5.0-rc2! r0.5.0  r0.5.1 r0.5.2 r0.5.3 r0.5.4 r0.5.5 r0.5.6 r0.5.7 r0.5.8 r0.5.9 r0.5.10 r0.5.11 r0.5.12 r0.5.14 r0.5.15 r0.6.0 r0.6.1 r0.6.2 r0.6.3 r0.6.4 r0.7.0 r0.7.1 r0.7.2
 r0.7.3	 r0.7.4 r0.7.5 r0.7.6 r0.7.7 r0.7.9 r0.7.10 r0.7.11 r0.7.12 r0.7.13  r0.7.14 r0.7.15~ r0.7.16} r0.7.17| r0.7.18{ r0.7.19z r0.7.20y r0.7.21x r0.7.22w r0.7.23v r0.8.0u r1.0.0t r1.0.1s r1.0.2r r1.0.3q r1.1.0p r1.1.1o r1.1.2n !rdev-masterH q1.0.0G q1.0.1F q1.0.2E !qdev-master@ p0.0.1? p0.0.2> p0.0.3= p0.0.4< p0.0.5; p0.0.6: !pdev-master9 o0.0.48 !odev-master7 n0.0.16 !ndev-master+ m3.1.1* m3.1.2) m3.2.0( m3.2.1' m3.2.2& m3.3.0% m3.4.0$ m3.5.0# m3.5.1" !mdev-master! l0.0.1  l0.0.2 l0.0.5 !ldev-masterq k2.2.0p k2.2.1o k2.2.2n k2.2.3m k2.2.4l k2.2.5k k2.2.x-devj k2.3.0i k2.3.1h k2.3.2g k2.3.3f k2.3.4e k2.3.5d k2.3.6c k2.3.7b k2.3.8a k2.3.x-dev` k2.4.x-dev_ !kdev-master	H j1.0G !jdev-masterS .1.1.03 S1.1.6O 1idev-old-cms-bundle	N i0.1M i0.1.1L !idev-master	K h0.1	J h0.2	I h1.0H h1.0.1G h1.0.2	F h1.1E h1.1.1    wdQB3$yjYH5$}m]M=-s_PA2#xiZK<- 








t
e
A
)
									}	p	a	R	>	/	"		xiZK<- jY6"xiZK<-teVG8)o[K;+{k[K;+vgXI:+           6 0.3.05 0.4.04 0.5.03 0.6.02 0.6.11 0.6.20 0.6.3/ 0.6.4. 0.6.5- 0.6.6, 0.6.7+ 0.6.8* 0.7.0) 0.7.1( 0.8.0' 0.8.1& 0.8.2% 0.8.3$ 0.8.4# 0.8.5" 0.8.6! 0.9.0  0.10.0 0.10.1 0.10.2 0.11.0 0.11.1 0.11.2 0.12.0 0.13.0 0.13.1 0.13.2 0.14.0 0.14.1 0.14.2 0.15.0 0.15.1 0.15.2 0.15.3 0.16.0 0.16.1 0.16.2 !0.17.0-RC1 !0.17.0-RC2
 0.17.0	 0.18.0 0.18.1 0.18.2 1.0.0-RC1 1.0.0-RC2 1.0.0-RC3 1.0.0 1.0.1 1.0.2  1.0.3 1.0.4~ 1.0.5} 1.0.6| 1.0.7{ 1.0.8z 1.0.9y 1.0.10x 1.0.11w 1.0.12v 1.0.13u 1.0.14t 1.0.15s #1.1.0-beta1r 1.1.0-RC1q 1.1.0-RC2p 1.1.0o 1.1.1n 1.1.2m 1.1.3l 1.1.4k 1.1.5j 1.1.6i 1.1.7h 1.1.8g !dev-master_ 0.1.0^ 0.2.0] 0.3.0\ 0.4.0[ 0.4.1Z 0.5.0Y !dev-master> ?~dev-feature-wp-filesystem= ~dev-wip< -~dev-hotfix-2.5.3; -~dev-hotfix-2.5.4: -~dev-hotfix-2.5.59 /~dev-release-2.6.08 ~2.3.07 ~2.3.16 ~2.3.25 ~2.3.34 ~2.3.43 ~2.4.02 ~2.4.11 ~2.4.20 ~2.4.3/ ~2.4.4. ~2.4.5- ~2.4.6, ~2.5.0+ ~2.5.1* ~2.5.2) ~2.5.3( ~2.5.4' ~2.5.5& ~2.6.0% !~dev-masterN }1.0.0M }1.0.1	L }1.1K }1.1.1J !}dev-masterI |1.0.0H |1.0.1	G |1.1F |1.1.1E !|dev-master6 {1.0.05 {1.0.14 {1.1.03 {2.0.02 {2.0.11 {2.0.20 !{dev-master, /zdev-one-dot-three+ )zdev-feed-class * Azdev-cache-backwards-compat) z1.3.1( !zdev-masterG y2.6.0F y2.6.1E y2.6.2D y2.6.3C y2.6.4B y2.6.5A y2.6.6@ y2.6.7? y2.6.8> y2.7.0= y2.7.1< y2.7.2; y2.7.3: y2.7.49 y2.7.58 y2.7.67 y2.7.76 y2.8.RC15 y2.8.RC24 y2.8.03 y2.8.12 y2.8.21 y2.8.30 y2.8.4/ y2.9.RC1. y2.9.0- y2.9.1, y2.9.2+ y2.9.3* y2.9.4) y2.9.5( !y2.10.beta1' y2.10.RC1& y2.10.0% y2.10.1$ y2.10.2# y2.10.3" y2.10.4! !y2.11.beta1  y2.11.RC1 y2.11.RC2 y2.11.0 y2.11.1 y2.11.2 y2.11.3 y2.11.4 y2.11.5 y2.11.6 y2.11.7 y2.11.8 y2.11.9 y2.11.10 y2.11.11 y2.11.12 y2.11.13 y2.11.14 y2.11.15 y2.11.16 y2.11.17 y3.0.beta1 y3.0.RC1
 y3.0.RC2	 y3.0.0 y3.0.1 y3.0.2 y3.0.3 y3.0.4 y3.0.5 y3.0.6 y3.1.beta1 y3.1.RC1  y3.1.0 y3.1.1~ y3.1.2} y3.1.3| y3.1.4{ y3.1.5z y3.2.beta1y y3.2.beta2x y3.2.RC1w y3.2.0v y3.2.1u y3.2.2t y3.2.3s y3.2.4r y3.2.5q y3.2.6p y3.2.7   z ^.}];wM,h:k?+








~
k
X
E
6
'

									m	_	Q	C	1	#		ugYK=+	vbO@1"yj[L=.~l^PB4&
zhZL>ykN@,qbSD4$z\  3.0.2  3.0.2b  3.0.2+  3.0.2% S1.2.0l  1.1.0`  4.2.19;  5.0.35  5.1.29  5.2.12  5.2.13  5.2.14
  5.2.15  3.0.2D  3.0.2F  3.0.2,  3.0.2;  3.0.2S  3.0.2
E ~2.0.7
7 z3.0.2
 y3.0.2
U x3.0.2 9tdev-add-json-functions t6.2.x-dev! Erdev-feature/facebook-upgrade #rdev-angular
? r2.1.6` 5odev-service-provider
" o5.2.2

 f3.0.1
K `2.6.0I `2.7.x-dev
7 ]2.7.05 ]2.8.x-dev
v R2.5.4
q Q2.6.0o Q2.7.x-dev
 ?2.6.1s 11.0.x-dev%p M"dev-marco-jantke-symfony3-compat
 3.0.2
z 3.0.2
o 2.0.0n 2.0.x-dev: 1.0.09 1.0.x-dev8 !dev-master
t 3.1.1
r 3.2.0q 3.2.x-dev
] 1.6.0# 
4.8.22" 
4.8.23
 
5.1.7
 
5.2.0

 
5.2.1
	 
5.2.2
 
5.2.3
 
5.2.4
 
5.2.5 
5.4.x-dev8 )dev-bugfix/212
 2.2.1
 3.0.22 3dev-bornemix-master1 %0.0.1-alpha10 %0.0.1-alpha2/ %0.0.1-alpha3. 0.0.1- 0.0.2, 0.0.3+ 0.0.4* 0.0.5) 0.0.6( 0.0.7' 0.0.8& 0.0.9% 0.0.10$ 0.0.11# 0.0.12" '0.0.13-alpha1! '0.0.13-alpha2  0.1.0 0.1.1 0.2.0 0.2.1 0.2.2 0.2.3 1.0.x-dev !dev-master	 0.1	 0.2	 0.3	 0.4	 0.5 !dev-master		 0.6	 0.7 !dev-master 1.12.0 !1.12.x-dev
 H3.0.0 H3.1.x-dev
N G2.7.5
J G3.0.3
 F2.6.0
 F2.6.1	 F2.7.x-dev
L E2.6.0J E2.7.x-dev
 D2.6.1
N C2.6.0L C2.7.x-dev

 B2.6.0
	 B2.6.1 B2.7.x-dev
	 @2.6.0 @2.7.x-dev
J ?2.6.0H ?2.7.x-dev
h =3.0.2
F <3.0.2

 3.0.25 m#dev-refactor-to-hexagonal-and-tighten-ddd-domain
x ;3.0.2
V  3.0.2
. 3.0.2
  3.0.2
~ 3.0.2
\ 3.0.2  3.0.2o :1.2.3n :1.2.4m :1.2.5i :2.0.2h :2.0.x-devf :2.1.x-devb :2.2.x-dev` :2.3.x-dev] :2.4.x-devZ :2.5.2N 1.0.0M 1.0.1L 1.1.0K 1.1.1J 1.1.2I 1.1.3H 1.1.4G 1.2.0F !dev-master(X Qdev-feature/deep-link-content-form$W Idev-feature/media-sync-service'V Odev-enhancement/sort-system-users!U Cdev-hotfix/system-user-sort*T Udev-feature/webspace_throw_exception%S Kdev-feature/doctrine-dbal-tests*R Udev-feature/unsaved-changes-handling&Q Mdev-enhancement/z-index-handling(P Qdev-feature/json-schema-validation(O Qdev-feature/sitemap-multi-webspaceN ;dev-feature/custom-urlsM ;dev-feature/enable-userL ;dev-feature/soft-delete&K Mdev-enhancement/vendor-directory!J Cdev-feature/category-update!I Cdev-feature/storage-manager!H Cdev-feature/webspace-export!G Cdev-feature/webspace-import,F Ydev-enhancement/moved_blame_subscriberE =dev-feature/faster-behatD 9dev-view_default_param$C Idev-feature/backbone-extensionB 7dev-feature/benchmarkA /dev-query_builder@ +dev-release/1.0? ;dev-feature/platform-sh> #dev-develop,= Ydev-bugfix/search-index-error-handling(< Qdev-bugfix/get-image-url-exception(; Qdev-bugfix/delete-referenced-pages: 3dev-bugfix/postgres9 0.1.08 0.1.17 0.2.0    o`E6'                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            5.2.5R  0.9.00  3.7.13!  3.8.13  3.9.11  4.0.10|  4.1.10s  4.2.7n  4.3.3j  4.4.2U / dev-userFuncArrayv  1.3.03 = dev-no-max-constraint-v3M  2.8.25L  2.8.26K  2.8.27  3.14.2  3.15.0  3.15.1|  3.0.2
    xl`P@/!yk]PC6)xk^Q@3&
wj]PC6)sfYL?2#










p
^
N
B
5
)


										y	l	_	R	F	:	.	"		
}nbVJ>2&tfXH:&
|iVE8*~m`RD6)}oaRC6)}pcUG9+n\J=0#              1.0.6?1.0.5@1.0.4A1.0.3B!dev-master 3.1.x-dev}3.0.x-dev 3.0.23.0.1}#3.0.0-BETA1O3.0.0}2.8.x-dev 2.8.2	2.8.1}#2.8.0-BETA1O2.8.0~ 2.7.x-dev 2.7.9	2.7.8~2.7.7O2.7.6G2.7.52.7.4 2.7.3 2.7.2 2.7.1 #2.7.0-BETA2 #2.7.0-BETA1 2.7.0 2.6.x-dev 2.6.9 2.6.8 2.6.7 2.6.6 2.6.5 2.6.4 2.6.3 2.6.2 2.6.13	2.6.12O2.6.11 2.6.10 2.6.1 #2.6.0-BETA2 #2.6.0-BETA1 2.6.0 2.5.x-dev 2.5.9 2.5.8 2.5.7 2.5.6 2.5.5 2.5.4 2.5.3 2.5.2 2.5.12 2.5.11 2.5.10 2.5.1 2.5.0-RC1 #2.5.0-BETA2 #2.5.0-BETA1 2.5.0 2.4.x-dev 2.4.9 2.4.8 2.4.7 2.4.6 2.4.5 2.4.4 2.4.3 2.4.2 2.4.10 2.4.1 2.4.0-RC1 #2.4.0-BETA2 #2.4.0-BETA1 2.4.0 !dev-master)3.1.x-dev[3.0.x-dev*3.0.23.0.1[#3.0.0-BETA13.0.0[2.8.x-dev+2.8.2L2.8.1[#2.8.0-BETA12.8.0[2.7.x-dev,2.7.9Q2.7.8[2.7.71=2.7.6T82.7.5E2.7.4-2.7.3.2.7.2/2.7.10#2.7.0-BETA22#2.7.0-BETA132.7.012.6.x-dev42.6.972.6.882.6.792.6.6:2.6.5;2.6.4<2.6.3=2.6.2>2.6.13^2.6.121H2.6.1152.6.1062.6.1?#2.6.0-BETA2A#2.6.0-BETA1B2.6.0@2.5.x-devC2.5.9G2.5.8H2.5.7I2.5.6J2.5.5K2.5.4L2.5.3M2.5.2N2.5.12D2.5.11E2.5.10F2.5.1O2.5.0-RC1Q#2.5.0-BETA2R#2.5.0-BETA1S2.5.0P2.4.x-devT2.4.9V2.4.8W2.4.7X2.4.6Y2.4.5Z2.4.4[2.4.3\2.4.2]2.4.10U2.4.1^2.4.0-RC1`#2.4.0-BETA2a#2.4.0-BETA1b2.4.0_2.3.x-devc2.3.9{2.3.8|2.3.7}2.3.6~2.3.52.3.4 2.3.372.3.36[2.3.351x2.3.34Tq2.3.33}2.3.32d2.3.31e2.3.30f2.3.3 2.3.29g2.3.28h2.3.27i2.3.26j2.3.25k2.3.24l2.3.23m2.3.22n2.3.21o2.3.20p2.3.2 2.3.19q2.3.18r2.3.17s2.3.16t2.3.15u2.3.14v2.3.13w2.3.12x2.3.11y2.3.10z2.3.1 2.3.0 2.2.x-dev 2.2.9 2.2.8 2.2.7 2.2.6 2.2.5 2.2.4 2.2.3 2.2.2 2.2.11 2.2.10 2.2.1 2.2.0 2.1.x-dev 2.1.9 2.1.8 2.1.7 2.1.6 2.1.5 2.1.4 2.1.3 2.1.2 2.1.13 2.1.12 2.1.11 2.1.10 2.1.1 2.1.0 2.0.x-dev 2.0.9 2.0.7 2.0.6 2.0.5 2.0.4 2.0.25 2.0.24 2.0.23 2.0.22 2.0.21 2.0.20 2.0.19 2.0.18 2.0.17 2.0.16 2.0.15 2.0.14 2.0.13 2.0.12 2.0.10 !dev-master2.5.x-dev2.4.x-dev2.4.02.3.02.2.02.1.02.0.0	!	dev-master	1.5.x-dev	1.4.x-dev
	1.4.0
	1.3.0
	1.2.0
	1.1.0
	1.0.0
  r_L9&jR:|obUH;*yl_RE4!rdVH:,









x
j
\
N
@
2
$

											s	e	W	I	;	-			naTG:- |obUH7*xk^QD7*yj[L=.sfYL>-seWI;- veL                                           @}
dev-feature/1994-argument-unpacking-for-dependency-input	/
dev-configuration
6.0.x-dev~
5.4.x-dev
5.3.x-devUU
5.2.x-dev
5.2.5
5.2.4
5.2.3
5.2.2
5.2.1
5.2.0
5.1.x-dev
5.1.7
5.1.6
5.1.5
5.1.4m
5.1.3UX
5.1.2UY
5.1.1UZ
5.1.0U[
5.0.x-dev
5.0.9
5.0.8<
5.0.7=
5.0.6
5.0.5
5.0.4
5.0.3
5.0.2
5.0.10:
5.0.1
5.0.0
4.8.x-dev
4.8.9 
4.8.8
4.8.7
4.8.6
4.8.5
4.8.4
4.8.3
4.8.23
4.8.22
4.8.21Ui
4.8.20Uj
4.8.2
4.8.19:
4.8.18
4.8.17
4.8.16F
4.8.15G
4.8.14
4.8.13
4.8.12
4.8.11
4.8.10
4.8.1
4.8.0
4.7.x-dev
4.7.7
4.7.6
4.7.5
4.7.4
4.7.3
4.7.2
4.7.1
4.7.0
4.6.x-dev
4.6.9
4.6.8
4.6.7
4.6.6
4.6.5
4.6.4
4.6.3
4.6.2
4.6.10
4.6.1
4.6.0
4.5.x-dev
4.5.1
4.5.0
4.4.x-dev
4.4.5
4.4.4
4.4.3
4.4.2
4.4.1
4.4.0
4.3.x-dev
4.3.5
4.3.4
4.3.3
4.3.2
4.3.1
4.3.0
4.2.x-dev
4.2.6
4.2.5
4.2.4
4.2.3
4.2.2
4.2.1
4.2.0
4.1.x-dev
4.1.6
4.1.5
4.1.4
4.1.3
4.1.2
4.1.1
4.1.0
4.0.x-dev
4.0.9
4.0.8
4.0.7
4.0.6
4.0.5
4.0.4
4.0.3
4.0.20
4.0.2
4.0.19
4.0.18
4.0.17
4.0.16
4.0.15
4.0.14
4.0.13
4.0.12
4.0.11
4.0.10
4.0.1
4.0.0
3.7.x-dev
3.7.9
3.7.8
3.7.7
3.7.6
3.7.5
3.7.4
3.7.38
3.7.37
3.7.36
3.7.35
3.7.34
3.7.33
3.7.32
3.7.31
3.7.30
3.7.3
3.7.29
3.7.28
3.7.27
3.7.26
3.7.25
3.7.24
3.7.23
3.7.22
3.7.21
3.7.20
3.7.2
3.7.19
3.7.18
3.7.17
3.7.16
3.7.15
3.7.14
3.7.13
3.7.12
3.7.11
3.7.10
3.7.1
3.7.0!	dev-mastery	1.0.x-devz	1.0.2Z 	1.0.1{	1.0.0|!dev-masterp#dev-factoryx1.3.x-devq1.2.1r1.2.0s1.1.0t1.0.2u1.0.1v1.0.0w!dev-masterj1.4.x-devY1.4.1Y1.4.0Y1.3.x-devk1.3.0l1.2.0m1.1.0n1.0.0o!dev-masterb1.2.x-devc1.2.0d1.1.2e1.1.1f1.1.0g1.0.1h1.0.0i#Edev-user-original-parametersD!dev-master*'dev-issue/142C%dev-hhvm-fixE*Qdev-feature/update-phpunit-support&Idev-feature/support-type-hints+dev-feature/195+dev-feature/185)dev-bugfix/2128V2.0.01#3.0.0.x-dev+2.2.12.2.0h2.1.x-dev,2.1.1}2.1.0-2.0.x-dev.2.0.2/2.0.102.0.0-rc12#2.0.0-beta53#2.0.0-beta44#2.0.0-beta35#2.0.0-beta26#2.0.0-beta17%2.0.0-alpha48%2.0.0-alpha39%2.0.0-alpha2:%2.0.0-alpha1;1.0.x-dev<1.0.8=   1.0.7>
  ^:}I7*~qbSD7*qdWJ=0#	}pbTF8* 









y
k
]
O
A
3
%

												v	i	\	O	B	5	(		oaSA3! veSF9, yl_RE8+i\OB5$
vi\OB5$
rdVH:,reXK=,1.1.11.1.01.0.x-deve1.0.0f!dev-masterP1.3.x-devQ1.3.3Y1.3.2R1.3.1S1.3.0T1.2.2U1.2.1V1.2.0W1.1.0X1.0.1Y1.0.0Z!dev-master1dev-Firehed-master3.1.x-devV3.0.x-dev3.0.6V3.0.5W 3.0.43.0.3ݗ3.0.2ݘ3.0.1g3.0.02.3.x-dev2.3.82.3.72.3.6 2.3.5!2.3.4"2.3.3#2.3.2$2.3.1%2.3.0&2.2.x-dev'2.2.1(2.2.0)2.1.x-dev*2.1.5+2.1.4,2.1.3-2.1.2.2.1.1/2.1.002.0.x-dev12.0.932.0.842.0.752.0.662.0.572.0.482.0.392.0.2:2.0.1022.0.1;2.0.0<1.2.x-dev=1.2.3>1.2.2?1.2.1@1.2.0A6kdev-robinkanters-fix-array-to-string-conversion!dev-master1.4.x-dev1.4.81.4.71.4.61.4.51.4.41.4.31.4.21.4.11.4.01.3.01.2.21.2.11.2.01.1.81.1.71.1.61.1.51.1.4!dev-master{1.0.7|1.0.6}1.0.5~1.0.41.0.3!dev-masteru1.2.1v1.2.0w1.1.4x1.1.3y1.1.2z!dev-mastern1.4.x-devo1.4.1p1.4.0q1.3.4r1.3.3s1.3.2t#dev-speedupD"Cdev-refactor/symfony-finderm!dev-master5 ?dev-feature/path-coveragel3.2.x-devq3.2.0r3.1.x-dev3.1.1t3.1.0v3.0.x-dev63.0.23.0.1r3.0.02.2.x-dev72.2.4u2.2.382.2.292.2.1:2.2.0;2.1.x-dev<2.1.9=2.1.8>2.1.7?2.1.6@2.1.5A2.1.4B2.1.3C2.1.2D2.1.1E2.1.0F2.0.x-devG2.0.9P2.0.8Q2.0.7R2.0.6S2.0.5T2.0.4U2.0.3V2.0.2W2.0.17H2.0.16I2.0.15J2.0.14K2.0.13L2.0.12M2.0.11N2.0.10O2.0.1X2.0.0Y1.2.x-devZ1.2.9d1.2.8e1.2.7f1.2.6g1.2.3h1.2.2i1.2.18[1.2.17\1.2.16]1.2.15^1.2.14_1.2.13`1.2.12a1.2.11b1.2.10c1.2.1j1.2.0k!dev-master"1.6.0]1.5.x-dev#1.5.0$1.4.1%1.4.0&1.3.1'1.3.0(1.2.1)1.2.0*1.1.2+1.1.1,1.1.0-1.0.4.1.0.3/1.0.201.0.11#1.0.0-BETA23#1.0.0-BETA141.0.02+dev-release/2.xX!dev-master"Cdev-_before-history-rewrite!3.0.x-dev3.0.0`2.0.42.0.32.0.22.0.12.0.0a32.0.0a22.0.0a12.0.01.0.31.0.21.0.1#1.0.0-beta7#1.0.0-beta6#1.0.0-beta5#1.0.0-beta4#1.0.0-beta3#1.0.0-beta2#1.0.0-beta1 1.0.0!dev-master3edev-hotfix/#9-fragile-internal-classes-check3cdev-cleanup/old-php-versions-compat-cleanupXs1.0.x-dev1.0.51.0.41.0.31.0.21.0.1	1.0.0
)Q
dev-refactoring/symfony-var-dumper#E
dev-refactor/symfony-process !?
dev-nicolas-grekas-phpdbgJ!
dev-master})
dev-issue/1953I   1.0.4n1.0.3o1.0.2p1.0.1q1.0.0r!dev-masterd
    {m_QC5'ugYK>1$
uh[NA4#	}pbTF8* qbUH;.!








}
p
c
V
I
<
+

										|	o	b	U	H	7	*		|obUD7$xdVH7)vi\OB5(vi\K9+ugZM@3&uh[J=0"seWI;- 2.3.182.3.172.3.162.3.152.3.142.3.132.3.122.3.112.3.102.3.12.3.02.2.x-dev2.2.92.2.82.2.72.2.62.2.52.2.42.2.32.2.22.2.112.2.102.2.12.2.02.1.x-dev2.1.92.1.82.1.72.1.62.1.52.1.42.1.32.1.22.1.132.1.122.1.112.1.102.1.12.1.02.0.x-dev2.0.92.0.72.0.62.0.52.0.42.0.252.0.242.0.232.0.222.0.212.0.202.0.192.0.182.0.172.0.162.0.152.0.142.0.132.0.122.0.10!dev-master1.1.x-dev1.0.11.0.0!dev-master2.1.x-dev2.0.0!dev-master4.2.x-dev4.1.x-dev4.1.04.0.14.0.03.6.23.6.13.6.0	3.5.0
3.4.03.3.13.3.03.2.03.1.03.0.x-dev3.0.43.0.33.0.0!dev-masters)dev-issue-8145 3.1.x-devW,3.0.x-devt3.0.23.0.1W.#3.0.0-BETA13.0.0W/2.8.x-devu2.8.202.8.1W2#2.8.0-BETA12.8.0W32.7.x-devv2.7.952.7.8W62.7.722.7.6be2.7.52.7.4w2.7.3x2.7.2y2.7.1z#2.7.0-BETA2|#2.7.0-BETA1}2.7.0{2.6.x-dev~2.6.92.6.82.6.72.6.62.6.52.6.42.6.32.6.22.6.13B2.6.1222.6.112.6.102.6.1#2.6.0-BETA2#2.6.0-BETA12.6.02.5.x-dev2.5.92.5.82.5.72.5.62.5.52.5.42.5.32.5.22.5.122.5.112.5.102.5.12.5.0-RC1#2.5.0-BETA2#2.5.0-BETA12.5.02.4.x-dev2.4.92.4.82.4.72.4.62.4.52.4.42.4.32.4.22.4.102.4.12.4.0-RC1#2.4.0-BETA2#2.4.0-BETA12.4.02.3.x-dev2.3.92.3.82.3.72.3.62.3.52.3.42.3.37s2.3.36Wr2.3.353&2.3.34b2.3.332.3.322.3.312.3.302.3.32.3.292.3.282.3.272.3.262.3.252.3.242.3.232.3.222.3.212.3.202.3.22.3.192.3.182.3.172.3.162.3.152.3.142.3.132.3.122.3.112.3.102.3.12.3.02.2.x-dev2.2.92.2.82.2.72.2.62.2.52.2.42.2.32.2.22.2.112.2.102.2.12.2.02.1.x-dev2.1.92.1.82.1.72.1.62.1.52.1.42.1.32.1.22.1.132.1.122.1.112.1.102.1.12.1.02.0.x-dev2.0.92.0.72.0.62.0.52.0.42.0.252.0.242.0.232.0.222.0.212.0.202.0.192.0.182.0.172.0.162.0.152.0.142.0.132.0.122.0.10!dev-masterk2.0.x-dev2.0.01.0.6l
  ugYL>0"xkXE4'm\OA3%yl^PA2%yl_RD6(








|
n
]
K
9
+


										u	g	Z	M	@	3	&		uh[J=0"seWI;-xj\OA3%{n[H7*p_RD6(|oaSD5(|obUG9+2.7.x-dev2.7.9H2.7.8Q2.7.702.7.6S2.7.52.7.42.7.32.7.22.7.1#2.7.0-BETA2#2.7.0-BETA12.7.02.6.x-dev2.6.92.6.82.6.72.6.62.6.52.6.42.6.32.6.22.6.13U2.6.1202.6.112.6.102.6.1#2.6.0-BETA2#2.6.0-BETA12.6.02.5.x-dev2.5.92.5.82.5.72.5.62.5.52.5.42.5.32.5.22.5.122.5.112.5.102.5.12.5.0-RC1#2.5.0-BETA2#2.5.0-BETA12.5.02.4.x-dev2.4.92.4.82.4.72.4.62.4.52.4.42.4.32.4.22.4.102.4.12.4.0-RC1#2.4.0-BETA2#2.4.0-BETA12.4.02.3.x-dev2.3.92.3.82.3.72.3.62.3.52.3.42.3.372.3.36R	2.3.350N2.3.34S2.3.332.3.322.3.312.3.30 2.3.32.3.292.3.282.3.272.3.262.3.252.3.242.3.232.3.222.3.21	2.3.20
2.3.22.3.192.3.182.3.172.3.162.3.152.3.142.3.132.3.122.3.112.3.102.3.12.3.02.2.x-dev2.2.9"2.2.8#2.2.7$2.2.6%2.2.5&2.2.4'2.2.3(2.2.2)2.2.11 2.2.10!2.2.1*2.2.0+2.1.x-dev,2.1.912.1.822.1.732.1.642.1.552.1.462.1.372.1.282.1.13-2.1.12.2.1.11/2.1.1002.1.192.1.0:2.0.x-dev;2.0.9K2.0.7L2.0.6M2.0.5N2.0.4O2.0.25<2.0.24=2.0.23>2.0.22?2.0.21@2.0.20A2.0.19B2.0.18C2.0.17D2.0.16E2.0.15F2.0.14G2.0.13H2.0.12I2.0.10J!dev-master63.1.x-devo43.0.x-dev73.0.23.0.1o6#3.0.0-BETA1/y3.0.0o72.8.x-dev82.8.2t2.8.1o:#2.8.0-BETA1/{2.8.0o;2.7.x-dev92.7.9y2.7.8o>2.7.7/}2.7.6[\2.7.52.7.4:2.7.3;2.7.2<2.7.1=#2.7.0-BETA2?#2.7.0-BETA1@2.7.0>2.6.x-devA2.6.9D2.6.8E2.6.7F2.6.6G2.6.5H2.6.4I2.6.3J2.6.2K2.6.132.6.12/2.6.11B2.6.10C2.6.1L#2.6.0-BETA2N#2.6.0-BETA1O2.6.0M2.5.x-devP2.5.9T2.5.8U2.5.7V2.5.6W2.5.5X2.5.4Y2.5.3Z2.5.2[2.5.12Q2.5.11R2.5.10S2.5.1\2.5.0-RC1^#2.5.0-BETA2_#2.5.0-BETA1`2.5.0]2.4.x-deva2.4.9c2.4.8d2.4.7e2.4.6f2.4.5g2.4.4h2.4.3i2.4.2j2.4.10b2.4.1k2.4.0-RC1m#2.4.0-BETA2n#2.4.0-BETA1o2.4.0l2.3.x-devp2.3.92.3.82.3.72.3.62.3.52.3.42.3.372.3.36oz2.3.35/2.3.34[2.3.332.3.32q2.3.31r2.3.30s2.3.32.3.29t2.3.28u2.3.27v2.3.26w2.3.25x2.3.24y2.3.23z2.3.22{2.3.21|2.3.20}2.3.2   2.3.19~
   sbP>0"{naTG6) |k^QC5(xj\N@2$	}pbTF7(










|
i
X
K
=
0
#

											s	e	W	I	<	/	"		teVI</"vhZL>0o]OB5'wj\NA4' ugYK=/"{m_PA2#qdVI</"        2.4.7
2.4.62.4.52.4.42.4.32.4.22.4.102.4.12.4.0-RC1#2.4.0-BETA2#2.4.0-BETA12.4.02.3.x-dev2.3.9-2.3.8.2.3.7/2.3.602.3.512.3.422.3.372.3.36\2.3.3522.3.34\2.3.332.3.322.3.312.3.302.3.332.3.292.3.282.3.272.3.262.3.252.3.242.3.232.3.22 2.3.21!2.3.20"2.3.242.3.19#2.3.18$2.3.17%2.3.16&2.3.15'2.3.14(2.3.13)2.3.12*2.3.11+2.3.10,2.3.152.3.062.2.x-dev72.2.9:2.2.8;2.2.7<2.2.6=2.2.5>2.2.4?2.2.3@2.2.2A2.2.1182.2.1092.2.1B2.2.0C2.1.x-devD2.1.9I2.1.8J2.1.7K2.1.6L2.1.5M2.1.4N2.1.3O2.1.2P2.1.13E2.1.12F2.1.11G2.1.10H2.1.1Q2.1.0R2.0.16S!dev-masterP3.1.x-devpn3.0.x-devQ3.0.23.0.1pp#3.0.0-BETA103.0.0pq2.8.x-devR2.8.22.8.1pt#2.8.0-BETA102.8.0pu2.7.x-devS2.7.92.7.8px2.7.702.7.6[2.7.5
2.7.4T2.7.3U2.7.2V2.7.1W#2.7.0-BETA2Y#2.7.0-BETA1Z2.7.0X2.6.x-dev[2.6.9^2.6.8_2.6.7`2.6.6a2.6.5b2.6.4c2.6.3d2.6.2e2.6.132.6.1202.6.11\2.6.10]2.6.1f#2.6.0-BETA2h#2.6.0-BETA1i2.6.0g2.5.x-devj2.5.9n2.5.8o2.5.7p2.5.6q2.5.5r2.5.4s2.5.3t2.5.2u2.5.12k2.5.11l2.5.10m2.5.1v2.5.0-RC1x#2.5.0-BETA2y#2.5.0-BETA1z2.5.0w2.4.x-dev{2.4.9}2.4.8~2.4.72.4.62.4.52.4.42.4.32.4.22.4.10|2.4.12.4.0-RC1#2.4.0-BETA2#2.4.0-BETA12.4.02.3.x-dev2.3.92.3.82.3.72.3.62.3.52.3.42.3.372.3.36p2.3.3502.3.34\&2.3.332.3.322.3.312.3.302.3.32.3.292.3.282.3.272.3.262.3.252.3.242.3.232.3.222.3.212.3.202.3.22.3.192.3.182.3.172.3.162.3.152.3.142.3.132.3.122.3.112.3.102.3.12.3.02.2.x-dev2.2.92.2.82.2.72.2.62.2.52.2.42.2.32.2.22.2.112.2.102.2.12.2.02.1.x-dev2.1.92.1.82.1.72.1.62.1.52.1.42.1.32.1.22.1.132.1.122.1.112.1.102.1.12.1.02.0.x-dev2.0.92.0.72.0.62.0.52.0.42.0.252.0.242.0.232.0.222.0.212.0.202.0.192.0.162.0.152.0.142.0.132.0.122.0.10!dev-master3.1.x-devQ3.0.x-dev3.0.2\3.0.1Q#3.0.0-BETA103.0.0Q2.8.x-dev2.8.2C2.8.1Q#2.8.0-BETA10 2.4.8	
    tgZM@3&tgZM@3&wi[J<(zl^PB4&
udWJ<. 










q
c
V
I
<
/
"

										|	n	`	R	D	7	)		teVG8)yk^QD7*wj]PC6)wj]PC6)zl^M?+k]OA3%	reXG:-          2.1.12M 2.1.11N 2.1.10O 2.1.1X 2.1.0Y 2.0.x-devZ 2.0.9j 2.0.7k 2.0.6l 2.0.5m 2.0.4n 2.0.25[ 2.0.24\ 2.0.23] 2.0.22^ 2.0.21_ 2.0.20` 2.0.19a 2.0.18b 2.0.17c 2.0.16d 2.0.15e 2.0.14f 2.0.13g 2.0.12h 2.0.10i=dev-poc-recursive-finder!dev-masterT3.1.x-dev\3.0.x-devU3.0.2.3.0.1\#3.0.0-BETA1K3.0.0\2.8.x-devV2.8.22.8.1\#2.8.0-BETA1K2.8.0\2.7.x-devW2.7.92.7.8\2.7.7K2.7.6T2.7.5O2.7.4X2.7.3Y2.7.2Z2.7.1[#2.7.0-BETA2]#2.7.0-BETA1^2.7.0\2.6.x-dev_2.6.9b2.6.8c2.6.7d2.6.6e2.6.5f2.6.4g2.6.3h2.6.2i2.6.132.6.12K2.6.11`2.6.10a2.6.1j#2.6.0-BETA2l#2.6.0-BETA1m2.6.0k2.5.x-devn2.5.9r2.5.8s2.5.7t2.5.6u2.5.5v2.5.4w2.5.3x2.5.2y2.5.12o2.5.11p2.5.10q2.5.1z2.5.0-RC1|#2.5.0-BETA2}#2.5.0-BETA1~2.5.0{2.4.x-dev2.4.92.4.82.4.72.4.62.4.52.4.42.4.32.4.22.4.102.4.12.4.0-RC1#2.4.0-BETA2#2.4.0-BETA12.4.02.3.x-dev2.3.92.3.82.3.72.3.62.3.52.3.42.3.372.3.36]2.3.35K2.3.34U2.3.332.3.322.3.312.3.302.3.32.3.292.3.282.3.272.3.262.3.252.3.242.3.232.3.222.3.212.3.202.3.22.3.192.3.182.3.172.3.162.3.152.3.142.3.132.3.122.3.112.3.102.3.12.3.02.2.x-dev2.2.92.2.82.2.72.2.62.2.52.2.42.2.32.2.22.2.112.2.102.2.12.2.02.1.x-dev2.1.92.1.82.1.72.1.62.1.52.1.42.1.32.1.22.1.132.1.122.1.112.1.102.1.12.1.02.0.x-dev2.0.92.0.72.0.62.0.52.0.42.0.252.0.242.0.232.0.222.0.212.0.202.0.192.0.182.0.172.0.162.0.152.0.142.0.132.0.122.0.10!dev-master3.1.x-dev\H3.0.x-dev3.0.23.0.1\J#3.0.0-BETA113.0.0\K2.8.x-dev2.8.22.8.1\N#2.8.0-BETA112.8.0\O2.7.x-dev2.7.92.7.8\R2.7.712.7.6\|2.7.52.7.42.7.32.7.22.7.1#2.7.0-BETA2#2.7.0-BETA12.7.02.6.x-dev2.6.92.6.82.6.72.6.62.6.52.6.42.6.32.6.22.6.132.6.1212.6.112.6.102.6.1#2.6.0-BETA2#2.6.0-BETA12.6.02.5.x-dev2.5.92.5.82.5.72.5.62.5.52.5.42.5.32.5.2 2.5.122.5.112.5.102.5.12.5.0-RC1#2.5.0-BETA2#2.5.0-BETA12.5.02.4.x-dev
   yl_QC6)xj\N@2$	~pbTE6'	wfYK>1$
seWJ=0#	









s
d
W
J
=
0
#

											v	h	Z	L	>	-		}k^QD7&tgZL>0	pUH;.!vi\OA3 n<g@3#}n_PC6)          #2.6.1h#2.6.0i#2.5.0j#2.4.0k#2.3.2l#2.3.1m#2.3.0n#2.2.0o#2.1.0p#2.0.1q#2.0.0b7s#2.0.0b6t#2.0.0b5u#2.0.0b4v#2.0.0b3w#2.0.0b2x#2.0.0b1y#2.0.0a9|#2.0.0a8}#2.0.0a7~#2.0.0a5#2.0.0a4#2.0.0a3#2.0.0a11z#2.0.0a10{#2.0.0r&K"dev-torinaki-HHVM-support-fixes
/"dev-release-1.1.x
!"dev-master
$E"dev-marco-msg-ferrari-masteri{(M"dev-marco-jantke-symfony3-compat3e"dev-gh-143-truncated-output-on-iso8859-input
'M"dev-file-cache-garbage-collector
1a"dev-bugfix/gh213-missing-constants-in-php7
;u"dev-bugfix/gh-214-php7-scalar-type-hints-are-missing
="dev-GH202_epsillon_token
5i"dev-GH197_DOMNode-cloneNode-ID-already-defined
2c"dev-GH193_parallel-execution-cache-conflict
"2.2.2J"2.2.1J"2.2.0
"2.1.0
"2.0.6
"2.0.5
"2.0.4
"2.0.3
"2.0.2
"2.0.1
%"2.0.0-beta.4
%"2.0.0-beta.3
%"2.0.0-beta.2
%"2.0.0-beta.1
"2.0.0
"1.1.3
"1.1.1
"1.1.0
"1.0.7
"1.0.6
1!dev-suffixes-paramJ!!dev-master
"C!dev-composer-caret-operator
!dev-GH77
,W!dev-GH265_Search-for-development-code
&K!dev-GH176-NestedTernaryOperator
&K!dev-GH100-ptlis-exclude-pattern
!2.3.2J}!2.3.1!2.3.0!2.2.3
!2.2.2
!2.2.1
!2.2.0
!2.1.3
!2.1.2
!2.1.1
%!2.0.0-beta.7
%!2.0.0-beta.6
%!2.0.0-beta.4
%!2.0.0-beta.3
%!2.0.0-beta.1
!2.0.0
!1.5.x-dev
!1.5.1
!1.5.0
!1.4.1
!1.4.0
! dev-master 3.1.x-devf( 3.0.x-dev 3.0.2 3.0.1f*# 3.0.0-BETA1f, 3.0.0f+ 2.8.x-dev 2.8.2 2.8.1f.# 2.8.0-BETA1f0 2.8.0f/ 2.7.x-dev 2.7.9 2.7.8]s 2.7.7]t 2.7.6U[ 2.7.5 2.7.4 2.7.3 2.7.2 2.7.1# 2.7.0-BETA2# 2.7.0-BETA1 2.7.0 2.6.x-dev 2.6.9 2.6.8 2.6.7 2.6.6 2.6.5 2.6.4 2.6.3 2.6.2 2.6.13 2.6.12] 2.6.11 2.6.10 2.6.1# 2.6.0-BETA2# 2.6.0-BETA1 2.6.0 2.5.x-dev 2.5.9  2.5.8 2.5.7 2.5.6 2.5.5 2.5.4 2.5.3 2.5.2 2.5.12 2.5.11 2.5.10 2.5.1 2.5.0-RC1
# 2.5.0-BETA2# 2.5.0-BETA1 2.5.0	 2.4.x-dev 2.4.9 2.4.8 2.4.7 2.4.6 2.4.5 2.4.4 2.4.3 2.4.2 2.4.10 2.4.1 2.4.0-RC1# 2.4.0-BETA2# 2.4.0-BETA1 2.4.0 2.3.x-dev 2.3.94 2.3.85 2.3.76 2.3.67 2.3.58 2.3.49 2.3.37J 2.3.36] 2.3.35] 2.3.34U 2.3.33 2.3.32 2.3.31 2.3.30 2.3.3: 2.3.29  2.3.28! 2.3.27" 2.3.26# 2.3.25$ 2.3.24% 2.3.23& 2.3.22' 2.3.21( 2.3.20) 2.3.2; 2.3.19* 2.3.18+ 2.3.17, 2.3.16- 2.3.15. 2.3.14/ 2.3.130 2.3.121 2.3.112 2.3.103 2.3.1< 2.3.0= 2.2.x-dev> 2.2.9A 2.2.8B 2.2.7C 2.2.6D 2.2.5E 2.2.4F 2.2.3G 2.2.2H 2.2.11? 2.2.10@ 2.2.1I 2.2.0J 2.1.x-devK 2.1.9P 2.1.8Q 2.1.7R 2.1.6S 2.1.5T 2.1.4U 2.1.3V 2.1.2W #2.7.0g
    |C*[I</|obUH7%uh[NA4' ~qdWJ=0#	








{
n
a
T
G
:
-
 

										~	q	d	W	F	4	'			 reTB#tfUC6)sfUH:,ygZL>0"sfYL?2%|k^L:- qWE8+   30.4.x-dev[30.4.0\30.3.1]30.3.0^30.2.0_30.1.0`!2dev-masterB12dev-errorRecovery2Y22.0.x-devC!22.0.0beta1#22.0.0alpha1D22.0.0m21.x-devE21.4.1F21.4.0G21.3.0H21.2.2I21.2.1J21.2.0K21.1.0L21.0.2M21.0.1N!21.0.0beta2P!21.0.0beta1Q21.0.0O20.9.x-devR20.9.5S20.9.4T20.9.3U20.9.2V20.9.1W20.9.0X!1dev-master%12.0.x-devt`11.x-devta11.9.1111.9.0211.8.0311.7.0411.6.0511.5.0611.4.1711.4.0811.3.1911.3.0:11.2.1;11.2.0<!11.18.x-dev6L11.17.2]11.17.1&11.17.0'!11.16.x-dev(11.16.0)11.15.0*11.14.0+11.13.1,11.13.0-11.12.0.11.11.0/11.10.0011.1.0=11.0.x-dev11.0.2>11.0.1?11.0.0-RC1A11.0.0@!0dev-master!01.0.x-dev"01.0.1#01.0.0$1/dev-schema-builder !/dev-master/1.6.x-dev/1.6.1/1.6.0C/1.5.0/1.4.x-dev/1.4.4/1.4.3/1.4.2/1.4.1/1.4.0/1.3.7/1.3.6/1.3.5/1.3.4/1.3.3/1.3.2/1.3.1/1.3.0/1.2.4/1.2.3/1.2.1/1.1.0!.dev-master.1.1.x-dev.1.1.0R.1.0.1R.1.0.0.0.16.0.0.15.0.0.14.0.0.13.0	.0.12.0
.0.11.0!-dev-master -1.1.x-dev-1.0.0,dev-test;,dev-scrutinizer-patch-1!,dev-master,1.5.x-dev,1.5.1,1.5.0,1.4.2,1.4.1,1.4.0,1.3.0,1.2.0-RC,1.1.1!+dev-master+2.0.x-dev+2.0.0+1.0.3+1.0.2+1.0.1+1.0.0!*dev-master*1.0.x-dev*1.0.3*1.0.2*1.0.1*1.0.0!)dev-master)1.6.0)1.5.4)1.5.3)1.5.2)1.5.1)1.5.0)1.4.5)1.4.4)1.4.3)1.4.2)1.4.1)1.4.0)1.3.0)1.2.0)1.1.4)1.1.3)1.1.2)1.1.1)1.1.0)1.0.1!)1.0.0-rc.5!)1.0.0-rc.4!)1.0.0-rc.3!)1.0.0-rc.2!)1.0.0-rc.1)1.0.0)0.9.4)0.9.3)0.9.2)0.9.1)0.9.0)0.8.3)0.8.2)0.8.1)0.8.0)0.7.7)0.7.6)0.7.5)0.7.4)0.7.3)0.7.2)0.7.1)0.7.0)0.6.0)0.5.0)0.4.8)0.4.7)0.4.6)0.4.5)0.4.4)0.4.3)0.4.2)0.4.1)0.4.0)0.3.0)0.2.1)0.2.0)0.1.5)0.1.4)0.1.3)0.1.2)0.1.1)0.1.0!(dev-master(1.0.x-dev(1.0.1
(1.0!'dev-master'1.3.x-dev'1.2.7'1.2.6'1.2.5'1.2.4'1.2.3'1.2.2'1.2.1'1.2.0'1.1.2'1.1.1
'1.1
'1.0!&dev-master&1.1.0&1.0.0!%dev-master%2.0.x-dev%1.1.0%1.0.0!$dev-master%I$dev-feature/upgrade-to-pimple3#$dev-develop$2.0.x-dev$1.1.0$1.0.x-dev$1.0.1$1.0.0
$0.1(O#dev-revert-1363-avoid-assert-true/#dev-release-2.0.2/#dev-release-2.0.18m#dev-refactor-to-hexagonal-and-tighten-ddd-domain!#dev-master^##dev-develop#3.0.x-dev_#2.8.5`#2.8.4a#2.8.3b#2.8.2c#2.8.1d#2.8.0e
  vcVI<*tgZM@/tbUH;.!sbPC6)xk^QD7*










s
f
X
J
<
.
 

										v	g	X	K	>	1	$		
sfYL?2!reXK>- reXK:-|nZL>-tfXJ<. |n`RD7*{naTG:-      <2.3.1<2.3.0<2.2.x-dev<2.2.9<2.2.8<2.2.7<2.2.6<2.2.5<2.2.4<2.2.3<2.2.2<2.2.11<2.2.10<2.2.1<2.2.0<2.1.x-dev<2.1.9<2.1.8<2.1.7<2.1.6<2.1.5<2.1.4<2.1.3<2.1.2<2.1.13<2.1.12<2.1.11<2.1.10<2.1.1<2.1.0<2.0.x-dev <2.0.9<2.0.7<2.0.6<2.0.5<2.0.4<2.0.25<2.0.24<2.0.23<2.0.22<2.0.21<2.0.20<2.0.19<2.0.18<2.0.17	<2.0.16
<2.0.15<2.0.14<2.0.13<2.0.12<2.0.10!;dev-master;3.1.x-dev;3.0.x-dev ;3.0.2x;3.0.1#;3.0.0-BETA1;3.0.0;2.8.x-dev!;2.8.2;2.8.1#;2.8.0-BETA1;2.8.0;2.7.x-dev";2.7.9;2.7.8;2.7.7;2.7.6s=;2.7.5n;2.7.4#;2.7.3$;2.7.2%;2.7.1&#;2.7.0-BETA2(#;2.7.0-BETA1);2.7.0';2.6.x-dev*;2.6.9-;2.6.8.;2.6.7/;2.6.60;2.6.51;2.6.42;2.6.33;2.6.24;2.6.13;2.6.12;2.6.11+;2.6.10,;2.6.15#;2.6.0-BETA27#;2.6.0-BETA18;2.6.06;2.5.x-dev9;2.5.9=;2.5.8>;2.5.7?;2.5.6@;2.5.5A;2.5.4B;2.5.3C;2.5.2D;2.5.12:;2.5.11;;2.5.10<;2.5.1E;2.5.0-RC1G#;2.5.0-BETA2H#;2.5.0-BETA1I;2.5.0F;2.4.x-devJ;2.4.9L;2.4.8M;2.4.7N;2.4.6O;2.4.5P;2.4.4Q;2.4.3R;2.4.2S;2.4.10K;2.4.1T;2.4.0-RC1V#;2.4.0-BETA2W#;2.4.0-BETA1X;2.4.0U;2.3.x-devY;2.3.9q;2.3.8r;2.3.7s;2.3.6t;2.3.5u;2.3.4v;2.3.37;2.3.36
;2.3.35;2.3.34sv;2.3.33;2.3.32Z;2.3.31[;2.3.30\;2.3.3w;2.3.29];2.3.28^;2.3.27_;2.3.26`;2.3.25a;2.3.24b;2.3.23c;2.3.22d;2.3.21e;2.3.20f;2.3.2x;2.3.19g;2.3.18h;2.3.17i;2.3.16j;2.3.15k;2.3.14l;2.3.13m;2.3.12n;2.3.11o;2.3.10p;2.3.1y;2.3.0z;2.2.x-dev{;2.2.9~;2.2.8;2.2.7;2.2.6;2.2.5;2.2.4;2.2.3;2.2.2;2.2.11|;2.2.10};2.2.1;2.2.0!:dev-master:1.4.0:1.3.1:1.3.0:1.2.0:1.1.2:1.1.1:1.1.0:1.0.1:1.0.0!9dev-master91.0.x-dev91.0.0!8dev-master;8dev-circular-references83.0.x-dev83.0.283.0.183.0.082.1.182.1.082.0.081.1.x-dev81.1.181.1.081.0.281.0.181.0.0!7dev-master71.5.071.4.071.3.x-dev71.3.071.2.071.1.071.0.070.9.0!6dev-master#6dev-develop%62.0.0-alpha2o%62.0.0-alpha1Y61.0.x-dev61.0.761.0.661.0.561.0.461.0.361.0.261.0.161.0.060.1.960.1.860.1.760.1.660.1.560.1.460.1.360.1.260.1.160.1.0!5dev-mastere51.0.3f51.0.2g51.0.1h#51.0.0-beta3j#51.0.0-beta2k#51.0.0-beta1l51.0.0i!4dev-mastera#41.0.0-beta2c#41.0.0-beta1d41.0.0b   <2.3.10
     ugYK=/!uh[NA4'	vi\O>1uh[J=*
uhWJ7$










w
i
[
J
<
(

										u	g	Y	K	=	/	!		}oaTG:- ~qdWJ9,xj\N@2$xk^QD7*yl_RA4!xk^M@-xkZM:' =2.7.3=2.7.2=2.7.1#=2.7.0-BETA2#=2.7.0-BETA1=2.7.0=2.6.x-dev =2.6.9#=2.6.8$=2.6.7%=2.6.6&=2.6.5'=2.6.4(=2.6.3)=2.6.2*=2.6.13=2.6.12=2.6.11!=2.6.10"=2.6.1+#=2.6.0-BETA2-#=2.6.0-BETA1.=2.6.0,=2.5.x-dev/=2.5.93=2.5.84=2.5.75=2.5.66=2.5.57=2.5.48=2.5.39=2.5.2:=2.5.120=2.5.111=2.5.102=2.5.1;=2.5.0-RC1=#=2.5.0-BETA2>#=2.5.0-BETA1?=2.5.0<=2.4.x-dev@=2.4.9B=2.4.8C=2.4.7D=2.4.6E=2.4.5F=2.4.4G=2.4.3H=2.4.2I=2.4.10A=2.4.1J=2.4.0-RC1L#=2.4.0-BETA2M#=2.4.0-BETA1N=2.4.0K=2.3.x-devO=2.3.9g=2.3.8h=2.3.7i=2.3.6j=2.3.5k=2.3.4l=2.3.37=2.3.36 =2.3.35!=2.3.34V=2.3.33ND=2.3.32P=2.3.31Q=2.3.30R=2.3.3m=2.3.29S=2.3.28T=2.3.27U=2.3.26V=2.3.25W=2.3.24X=2.3.23Y=2.3.22Z=2.3.21[=2.3.20\=2.3.2n=2.3.19]=2.3.18^=2.3.17_=2.3.16`=2.3.15a=2.3.14b=2.3.13c=2.3.12d=2.3.11e=2.3.10f=2.3.1o=2.3.0p=2.2.x-devq=2.2.9t=2.2.8u=2.2.7v=2.2.6w=2.2.5x=2.2.4y=2.2.3z=2.2.2{=2.2.11r=2.2.10s=2.2.1|=2.2.0}=2.1.x-dev~=2.1.9=2.1.8=2.1.7=2.1.6=2.1.5=2.1.4=2.1.3=2.1.2=2.1.13=2.1.12=2.1.11=2.1.10=2.1.1=2.1.0=2.0.x-dev=2.0.9=2.0.7=2.0.6=2.0.5=2.0.4=2.0.25=2.0.24=2.0.23=2.0.22=2.0.21=2.0.20=2.0.19=2.0.18=2.0.17=2.0.16=2.0.15=2.0.14=2.0.13=2.0.12=2.0.10!<dev-master<3.1.x-devr3<3.0.x-dev<3.0.2<3.0.1r5#<3.0.0-BETA1"<3.0.0r6<2.8.x-dev<2.8.2<2.8.1r9#<2.8.0-BETA1"<2.8.0r:<2.7.x-dev<2.7.9<2.7.8r=<2.7.72U<2.7.6U<2.7.5I<2.7.4<2.7.3<2.7.2<2.7.1#<2.7.0-BETA2#<2.7.0-BETA1<2.7.0<2.6.x-dev<2.6.9<2.6.8<2.6.7<2.6.6<2.6.5<2.6.4<2.6.3<2.6.2<2.6.13<2.6.122`<2.6.11<2.6.10<2.6.1#<2.6.0-BETA2#<2.6.0-BETA1<2.6.0<2.5.x-dev<2.5.9<2.5.8<2.5.7<2.5.6<2.5.5<2.5.4<2.5.3<2.5.2<2.5.12<2.5.11<2.5.10<2.5.1<2.5.0-RC1#<2.5.0-BETA2#<2.5.0-BETA1<2.5.0<2.4.x-dev<2.4.9<2.4.8<2.4.7<2.4.6<2.4.5<2.4.4<2.4.3<2.4.2<2.4.10<2.4.1<2.4.0-RC1#<2.4.0-BETA2#<2.4.0-BETA1<2.4.0<2.3.x-dev<2.3.9<2.3.8<2.3.7<2.3.6<2.3.5<2.3.4<2.3.37<2.3.36ry<2.3.352<2.3.34V%<2.3.33<2.3.32<2.3.31<2.3.30<2.3.3<2.3.29<2.3.28<2.3.27<2.3.26<2.3.25<2.3.24<2.3.23<2.3.22<2.3.21<2.3.20<2.3.2<2.3.19<2.3.18<2.3.17<2.3.16<2.3.15<2.3.14<2.3.13<2.3.12
   
 ykZL8*|n`RD2$|n`RD6({l]PC6)sdSA4' 









x
h
[
M
@
3
&

											}	p	c	V	F	6	&		~pcVI<+|obUH;.!{naTG:- {k[K;.!{iVD2%|l\L?1$
{naTG:*
          A2.4.0rc3gA2.4.0rc2hA2.4.0rc1iA2.4.0bA2.3.9jA2.3.8kA2.3.7lA2.3.6mA2.3.5nA2.3.4oA2.3.3pA2.3.2qA2.3.1rA2.3.0sA2.2.9uA2.2.8vA2.2.7wA2.2.6xA2.2.5yA2.2.4zA2.2.3{A2.2.2|A2.2.10tA2.2.1}A2.2.0rc3A2.2.0rc2A2.2.0rc1A2.2.0~A2.1.6A2.1.5A2.1.4A2.1.3A2.1.2A2.1.1A2.1.0A2.0.8A2.0.7A2.0.6A2.0.5A2.0.4A2.0.3!@dev-master!@dev-legacyS#@dev-developR@2.7.x-dev@2.6.x-dev@2.6.0@2.5.x-dev@2.5.1@2.5.0@2.4.9?@2.4.8@2.4.7@2.4.6@2.4.5 @2.4.4!@2.4.3"@2.4.2#@2.4.1$@2.4.0rc7&@2.4.0rc6'@2.4.0rc5(@2.4.0rc4)@2.4.0rc3*@2.4.0rc2+@2.4.0rc1,@2.4.0%@2.3.9-@2.3.8.@2.3.7/@2.3.60@2.3.51@2.3.42@2.3.33@2.3.24@2.3.15@2.3.06@2.2.98@2.2.89@2.2.7:@2.2.6;@2.2.5<@2.2.4=@2.2.3>@2.2.2?@2.2.107@2.2.1@@2.2.0rc3B@2.2.0rc2C@2.2.0rc1D@2.2.0A@2.1.6E@2.1.5F@2.1.4G@2.1.3H@2.1.2I@2.1.1J@2.1.0K@2.0.8L@2.0.7M@2.0.6N@2.0.5O@2.0.4P@2.0.3Q!?dev-master!?dev-legacy#?dev-develop?3.0.x-devWG?2.7.x-devH?2.6.x-dev?2.6.1?2.6.0J?2.5.x-dev?2.5.3?2.5.2?2.5.1?2.5.0?2.4.9A?2.4.8?2.4.7?2.4.6?2.4.5?2.4.4?2.4.3?2.4.2?2.4.1?2.4.0rc7?2.4.0rc6?2.4.0rc5?2.4.0rc4?2.4.0rc3?2.4.0rc2?2.4.0rc1?2.4.0?2.3.9?2.3.8?2.3.7?2.3.6?2.3.5?2.3.4?2.3.3?2.3.2?2.3.1?2.3.0?2.2.9?2.2.8?2.2.7?2.2.6 ?2.2.5?2.2.4?2.2.3?2.2.2?2.2.10?2.2.1?2.2.0rc3?2.2.0rc2?2.2.0rc1	?2.2.0?2.1.6
?2.1.5?2.1.4?2.1.3?2.1.2?2.1.1?2.1.0?2.0.8?2.0.7?2.0.6?2.0.5?2.0.3!>dev-master>2.0.x-dev>1.x-dev>1.9.2>1.9.1>1.9.0>1.8.3>1.8.2>1.8.1>1.8.0>1.7.0>1.6.5>1.6.4>1.6.3>1.6.2>1.6.1>1.6.0>1.5.1>1.5.0>1.4.0>1.3.0>1.24.0s>1.23.3>1.23.2>1.23.1>1.23.0W>1.22.3>1.22.2>1.22.1>1.22.0>1.21.2>1.21.1>1.21.0>1.20.0>1.19.0>1.18.2>1.18.1>1.18.0>1.17.0>1.16.3>1.16.2>1.16.1>1.16.0>1.15.1>1.15.0>1.14.2>1.14.1>1.14.0>1.13.2>1.13.1>1.13.0>1.12.3>1.12.2>1.12.1!>1.12.0-RC1>1.12.0>1.11.1>1.11.0>1.10.3>1.10.2>1.10.1>1.10.0!=dev-master)=dev-issue10677*S=dev-fix-validator-legacy-dependency=3.1.x-dev=3.0.x-dev=3.0.2h=3.0.1#=3.0.0-BETA1"=3.0.0=2.8.x-dev=2.8.2=2.8.1#=2.8.0-BETA1"
=2.8.0=2.7.x-dev=2.7.9=2.7.8=2.7.7=2.7.6V}=2.7.5N
   reXJ=0#naTG:- {m`SF9,vfVF6&veWI8&









z
m
`
S
F
9
)

												y	l	_	R	E	8	+			zm`SF9,~l_RE8+yk^QD7*tdTD4$tgVH:)xk^QD7*
wj]PC6)         E2.3.7]E2.3.6^E2.3.5_E2.3.4`E2.3.3aE2.3.2bE2.3.1cE2.3.0dE2.2.9fE2.2.8gE2.2.7hE2.2.6iE2.2.5jE2.2.4kE2.2.3lE2.2.2mE2.2.10eE2.2.1nE2.2.0rc3pE2.2.0rc2qE2.2.0rc1rE2.2.0oE2.1.6sE2.1.5tE2.1.4uE2.1.3vE2.1.2wE2.1.1xE2.1.0yE2.0.8zE2.0.7{E2.0.6|E2.0.5}E2.0.4~E2.0.3!Ddev-master	!Ddev-legacyE#Ddev-developDD2.7.x-devD2.6.x-dev
D2.6.1D2.6.0D2.5.x-devD2.5.2D2.5.1D2.5.0D2.4.9D2.4.8D2.4.7D2.4.6D2.4.5D2.4.4D2.4.3D2.4.2D2.4.1D2.4.0rc7D2.4.0rc6D2.4.0rc5D2.4.0rc4D2.4.0rc3D2.4.0rc2D2.4.0rc1D2.4.0D2.3.9D2.3.8 D2.3.7!D2.3.6"D2.3.5#D2.3.4$D2.3.3%D2.3.2&D2.3.1'D2.3.0(D2.2.9*D2.2.8+D2.2.7,D2.2.6-D2.2.5.D2.2.4/D2.2.30D2.2.21D2.2.10)D2.2.12D2.2.0rc34D2.2.0rc25D2.2.0rc16D2.2.03D2.1.67D2.1.58D2.1.49D2.1.3:D2.1.2;D2.1.1<D2.1.0=D2.0.8>D2.0.7?D2.0.6@D2.0.5AD2.0.4BD2.0.3C!Cdev-master!Cdev-legacy#Cdev-developC3.0.x-devX@C2.7.x-devLC2.6.x-devC2.6.0NC2.5.x-devC2.5.1C2.5.0C2.4.9C2.4.8C2.4.7C2.4.6C2.4.5C2.4.4C2.4.3C2.4.2C2.4.1C2.4.0rc7C2.4.0rc6C2.4.0rc5C2.4.0rc4C2.4.0rc3C2.4.0rc2C2.4.0rc1C2.4.0C2.3.9C2.3.8C2.3.7C2.3.6C2.3.5C2.3.4C2.3.3C2.3.2C2.3.1C2.3.0C2.2.9C2.2.8C2.2.7C2.2.6C2.2.5C2.2.4C2.2.3C2.2.2C2.2.10C2.2.1C2.2.0rc3C2.2.0rc2C2.2.0rc1C2.2.0C2.1.6C2.1.5C2.1.4C2.1.3C2.1.2C2.1.1C2.1.0 C2.0.8C2.0.7C2.0.6C2.0.5C2.0.4C2.0.3!Bdev-master!Bdev-legacy#Bdev-developB2.7.x-devB2.6.x-devB2.6.1	B2.6.0
B2.5.x-devB2.5.1B2.5.0B2.4.9B2.4.8B2.4.7B2.4.6B2.4.5B2.4.4B2.4.3B2.4.2B2.4.1B2.4.0rc7B2.4.0rc6B2.4.0rc5B2.4.0rc4B2.4.0rc3B2.4.0rc2B2.4.0rc1B2.4.0B2.3.9B2.3.8B2.3.7B2.3.6B2.3.5B2.3.4B2.3.3B2.3.2B2.3.1B2.3.0B2.2.9B2.2.8B2.2.7B2.2.6B2.2.5B2.2.4B2.2.3B2.2.2B2.2.10B2.2.1B2.2.0rc3B2.2.0rc2B2.2.0rc1B2.2.0B2.1.6B2.1.5B2.1.4B2.1.3B2.1.2B2.1.1B2.1.0B2.0.8B2.0.7B2.0.6B2.0.5B2.0.4B2.0.3!Adev-masterT!Adev-legacy#Adev-developA3.1.x-devA3.0.x-devA3.0.0A2.6.x-devUA2.6.2A2.6.1A2.6.0A2.5.x-devVA2.5.2WA2.5.1XA2.5.0YA2.4.97A2.4.8ZA2.4.7[A2.4.6\A2.4.5]A2.4.4^A2.4.3_A2.4.2`A2.4.1aA2.4.0rc7cA2.4.0rc6dA2.4.0rc5e   E2.3.8\
    vi\OB5( ~lZM@3&tgYL?2%|obRB2"|obQC5$










s
f
Y
L
?
2
%

											r	e	X	K	>	1	$		
sfYL?2%qcUG9(yl_RE8+xk^QD7*o_RE8+zl^M;-	qaVI9+ I1.4alpha1PI1.4.1K
I1.4LI1.3rc1SI1.3beta2TI1.3.1Q
I1.3RI1.2beta2VI1.2beta1W
I1.2UI1.1rc1ZI1.1beta2[I1.1beta1\I1.1.1X
I1.1Y!Hdev-master!Hdev-legacy8#Hdev-develop7H3.1.x-devH3.0.x-devH3.0.0H2.8.x-devH2.7.x-devH2.7.4H2.7.3H2.7.2H2.7.1H2.7.0H2.6.x-devH2.6.0H2.5.2H2.5.1 H2.5.0H2.4.97H2.4.8H2.4.7H2.4.6H2.4.5H2.4.4H2.4.3H2.4.2H2.4.1	H2.4.0rc7H2.4.0rc6H2.4.0rc5H2.4.0rc4H2.4.0rc3H2.4.0rc2H2.4.0rc1H2.4.0
H2.3.9H2.3.8H2.3.7H2.3.6H2.3.5H2.3.4H2.3.3H2.3.2H2.3.1H2.3.0H2.2.9H2.2.8H2.2.7H2.2.6 H2.2.5!H2.2.4"H2.2.3#H2.2.2$H2.2.10H2.2.1%H2.2.0rc3'H2.2.0rc2(H2.2.0rc1)H2.2.0&H2.1.6*H2.1.5+H2.1.4,H2.1.3-H2.1.2.H2.1.1/H2.1.00H2.0.81H2.0.72H2.0.63H2.0.54H2.0.45H2.0.36+Gdev-release-2.7!Gdev-master!Gdev-legacy#Gdev-developG3.1.x-devG3.0.x-devG3.0.3JG3.0.2klG3.0.1kmG3.0.0G2.7.5NG2.7.4koG2.7.3G2.7.2G2.7.1G2.7.0G2.6.x-devG2.6.0G2.5.1G2.5.0G2.4.9G2.4.8G2.4.7G2.4.6G2.4.5G2.4.4G2.4.3G2.4.2G2.4.1G2.4.0rc7G2.4.0rc6G2.4.0rc5G2.4.0rc4G2.4.0rc3G2.4.0rc2G2.4.0rc1G2.4.0G2.3.9G2.3.8G2.3.7G2.3.6G2.3.5G2.3.4G2.3.3G2.3.2G2.3.1G2.3.0G2.2.9G2.2.8G2.2.7G2.2.6G2.2.5G2.2.4G2.2.3G2.2.2G2.2.10G2.2.1G2.2.0rc3G2.2.0rc2G2.2.0rc1G2.2.0G2.1.6G2.1.5G2.1.4G2.1.3G2.1.2G2.1.1G2.1.0G2.0.8G2.0.7G2.0.6G2.0.5G2.0.4G2.0.3!Fdev-master!Fdev-legacy#Fdev-developF2.7.x-dev	F2.6.x-devF2.6.1F2.6.0F2.5.x-devF2.5.1F2.5.0F2.4.9zF2.4.8F2.4.7F2.4.6F2.4.5F2.4.4F2.4.3F2.4.2F2.4.1F2.4.0rc7F2.4.0rc6F2.4.0rc5F2.4.0rc4F2.4.0rc3F2.4.0rc2F2.4.0rc1F2.4.0F2.3.9F2.3.8F2.3.7F2.3.6F2.3.5F2.3.4F2.3.3F2.3.2F2.3.1F2.3.0F2.2.9F2.2.8F2.2.7F2.2.6F2.2.5F2.2.4F2.2.3F2.2.2F2.2.10F2.2.1F2.2.0rc3F2.2.0rc2F2.2.0rc1F2.2.0F2.1.6F2.1.5F2.1.4F2.1.3F2.1.2F2.1.1F2.1.0F2.0.8F2.0.7F2.0.6F2.0.5F2.0.4F2.0.3!Edev-masterF!Edev-legacy#Edev-developE3.0.x-devE2.7.x-devE2.6.x-devGE2.6.0E2.5.x-devHE2.5.2:E2.5.1IE2.5.0JE2.4.9=E2.4.8KE2.4.7LE2.4.6ME2.4.5NE2.4.4OE2.4.3PE2.4.2QE2.4.1RE2.4.0rc7TE2.4.0rc6UE2.4.0rc5VE2.4.0rc4WE2.4.0rc3XE2.4.0rc2YE2.4.0rc1ZE2.4.0S
  zlaTD6+
xkZJ<1$~qdWJ=0#wgWG7(qaP>1$











n
\
J
"

											y	l	_	R	E	8	+			uh[NA4' ~qdWJ=0#	ziWJ7$}o];(	viXJ<.}rg\QF;0%|K>1$
       Q2.0.8Q2.0.7Q2.0.6Q2.0.5Q2.0.4Q2.0.30]Pdev-yumemi-feature/fix_arround_oidc_specPdev-psr-71Pdev-php5.2-developi!Pdev-masterT#Pdev-developj!?Pdev-add-coveralls-supportP2.x-devUP1.8.0VP1.7.1WP1.7.0X
P1.6Y
P1.5Z
P1.4[
P1.3\
P1.2]
P1.1^
P1.0_
P0.9`
P0.8a
P0.7b
P0.6c
P0.5d
P0.4e
P0.3f
P0.2g
P0.1h!Odev-masterF#Odev-linkingS!?Odev-compress_zlib_supportO1.6.x-devO1.6.2O1.6.1O1.6.0O1.5.x-devGO1.5.0HO1.4.0IO1.3.0JO1.2.0K#O1.1.0-beta1MO1.1.0L#O1.0.0-beta5O#O1.0.0-beta4P#O1.0.0-beta3Q#O1.0.0-beta2RO1.0.0N!Ndev-master8#Ndev-linkingE!?Ndev-compress_zlib_supportN1.6.x-devrN1.6.2vN1.6.1wN1.6.0sN1.5.x-dev9N1.5.0:N1.4.0;N1.3.0<N1.2.0=#N1.1.0-beta1?N1.1.0>#N1.0.0-beta5A#N1.0.0-beta4B#N1.0.0-beta3C#N1.0.0-beta2DN1.0.0@!Mdev-masterM3.9.x-devM3.9.3M3.9.2M3.9.1M3.9.0M3.8.1M3.8.0M3.7.4M3.7.3M3.7.2M3.7.1M3.7.0M3.6.0M3.5.0M3.4.3M3.4.2M3.4.1M3.4.0M3.3.1M3.3.0M3.2.0M3.1.2M3.1.1M3.1.0M3.0.7M3.0.6M3.0.5M3.0.4M3.0.3M3.0.2M3.0.1M3.0.0M2.8.8M2.8.7M2.8.6M2.8.5M2.8.4M2.8.3M2.8.2M2.8.1M2.8.0M2.7.2M2.7.1M2.7.0M2.6.6M2.6.5M2.6.4M2.6.3M2.6.2M2.6.1M2.6.0M2.5.0M2.4.1M2.4.0M2.3.2M2.2.4 M2.2.3M2.2.2M2.2.1M2.2.0M2.1.4M2.1.3M2.1.2M2.1.1M2.1.0	M2.0.5
M2.0.4M2.0.3M2.0.2M2.0.1M2.0.0M1.0.4M1.0.3'MLdev-revert-73-ivory-http-adapter!Ldev-masterL2.0.x-devQL1.0.x-devRL1.0.1lKL1.0.0SL0.7.x-devL0.7.1TL0.7.0UL0.6.1L0.6.0L0.5.0L0.4.0L0.3.2L0.3.1L0.3.0L0.2.0L0.1.0!Kdev-mastertK3.0.x-devuK2.x-dev]K2.6.x-dev^ K2.5.1kK2.5.0^K2.4.0^K2.3.4vK2.3.3wK2.3.2xK2.3.1yK2.3.0zK2.2.0{K2.1.0|K2.0.x-dev}K2.0.0a2K2.0.0a1K2.0.0RC4K2.0.0RC3K2.0.0RC2K2.0.0RC1K2.0.0~K1.5.x-devK1.5.6K1.5.5K1.5.4K1.5.3K1.5.2K1.5.1K1.5.0RC4K1.5.0RC3K1.5.0RC2K1.5.0RC1K1.5.0K1.4.8K1.4.7K1.4.6K1.4.5K1.4.4K1.4.3K1.4.2!Jdev-master]J1.3rc1`J1.3beta1aJ1.3alpha2bJ1.3alpha1cJ1.3.1^
J1.3_J1.2rc1fJ1.2beta1gJ1.2alpha1hJ1.2.1d
J1.2eJ1.1rc1lJ1.1beta1mJ1.1alpha1nJ1.1.2iJ1.1.1j
J1.1kJ1.0rc1rJ1.0alpha1sJ1.0.2oJ1.0.1p
J1.0q!Idev-master9
I1.9:
I1.8;I1.7rc1=I1.7beta1>I1.7alpha1?
I1.7<I1.6rc1BI1.6beta1CI1.6.1@
I1.6AI1.5rc1GI1.5beta1HI1.5alpha2II1.5alpha1JI1.5.2DI1.5.1E
I1.5FI1.4rc1MI1.4beta1N   Q2.1.0
    uhZM@3&}pcSC3#}pcUD6% tgZM@3&sfYL?2%









t
g
Z
M
@
3
&

										u	c	V	I	<	/	"		}pbUH;.!xk[K;+xkZI6$vi\L<,uh[NA4'
vi\OB4'	sfYL?2%   U2.2.0U2.1.6U2.1.5U2.1.4U2.1.3U2.1.2U2.1.1U2.1.0U2.0.8U2.0.7U2.0.6U2.0.5U2.0.4U2.0.3!Tdev-masterl!Tdev-legacy#Tdev-developT2.6.x-devmT2.5.x-devnT2.5.1oT2.5.0pT2.4.9T2.4.8qT2.4.7rT2.4.6sT2.4.5tT2.4.4uT2.4.3vT2.4.2wT2.4.1xT2.4.0rc7zT2.4.0rc6{T2.4.0rc5|T2.4.0rc4}T2.4.0rc3~T2.4.0rc2T2.4.0rc1T2.4.0yT2.3.9T2.3.8T2.3.7T2.3.6T2.3.5T2.3.4T2.3.3T2.3.2T2.3.1T2.3.0T2.2.9T2.2.8T2.2.7T2.2.6T2.2.5T2.2.4T2.2.3T2.2.2T2.2.10T2.2.1T2.2.0rc3T2.2.0rc2T2.2.0rc1T2.2.0T2.1.6T2.1.5T2.1.4T2.1.3T2.1.2T2.1.1T2.1.0T2.0.8T2.0.7T2.0.6T2.0.5T2.0.4T2.0.3!Sdev-master!Sdev-legacy-#Sdev-develop,S2.6.x-devS2.5.x-devS2.5.1S2.5.0S2.4.9yS2.4.8S2.4.7S2.4.6S2.4.5S2.4.4S2.4.3S2.4.2S2.4.1S2.4.0rc7 S2.4.0rc6S2.4.0rc5S2.4.0rc4S2.4.0rc3S2.4.0rc2S2.4.0rc1S2.4.0S2.3.9S2.3.8S2.3.7	S2.3.6
S2.3.5S2.3.4S2.3.3S2.3.2S2.3.1S2.3.0S2.2.9S2.2.8S2.2.7S2.2.6S2.2.5S2.2.4S2.2.3S2.2.2S2.2.10S2.2.1S2.2.0rc3S2.2.0rc2S2.2.0rc1S2.2.0S2.1.6S2.1.5 S2.1.4!S2.1.3"S2.1.2#S2.1.1$S2.1.0%S2.0.8&S2.0.7'S2.0.6(S2.0.5)S2.0.4*S2.0.3+!Rdev-master!Rdev-legacy#Rdev-developR2.6.x-devR2.5.x-devR2.5.4vR2.5.3R2.5.2R2.5.1R2.5.0R2.4.9<R2.4.8R2.4.7R2.4.6R2.4.5R2.4.4R2.4.3R2.4.2R2.4.1R2.4.0rc7R2.4.0rc6R2.4.0rc5R2.4.0rc4R2.4.0rc3R2.4.0rc2R2.4.0rc1R2.4.0R2.3.9R2.3.8R2.3.7R2.3.6R2.3.5R2.3.4R2.3.3R2.3.2R2.3.1R2.3.0R2.2.9R2.2.8R2.2.7R2.2.6R2.2.5R2.2.4R2.2.3R2.2.2R2.2.10R2.2.1R2.2.0rc3R2.2.0rc2R2.2.0rc1R2.2.0R2.1.6R2.1.5R2.1.4R2.1.3R2.1.2R2.1.1R2.1.0R2.0.8R2.0.7R2.0.6R2.0.5R2.0.4R2.0.3!Qdev-master!Qdev-legacy#Qdev-developQ2.7.x-devoQ2.6.x-devQ2.6.0qQ2.5.x-devQ2.5.2Q2.5.1Q2.5.0Q2.4.9Q2.4.8Q2.4.7Q2.4.6Q2.4.5Q2.4.4Q2.4.3Q2.4.2Q2.4.1Q2.4.0rc7Q2.4.0rc6Q2.4.0rc5Q2.4.0rc4Q2.4.0rc3Q2.4.0rc2Q2.4.0rc1Q2.4.0Q2.3.9Q2.3.8Q2.3.7Q2.3.6Q2.3.5Q2.3.4Q2.3.3Q2.3.2Q2.3.1Q2.3.0Q2.2.9Q2.2.8Q2.2.7Q2.2.6Q2.2.5Q2.2.4Q2.2.3Q2.2.2Q2.2.10Q2.2.1Q2.2.0rc3Q2.2.0rc2Q2.2.0rc1Q2.2.0Q2.1.6Q2.1.5Q2.1.4Q2.1.3Q2.1.2U2.2.0
    tgZM@3&~n^NA4' weXK>1$
rdWJ=0#	zm]M=-










z
m
`
S
B
1

										v	i	\	O	B	5	(		uh[NA4' vi\OB5( vdRE8+|l_QD7*tgZJ:*
tgZM?. xk^QD7*          Y2.2.0Y2.1.6Y2.1.5Y2.1.4Y2.1.3Y2.1.2Y2.1.1Y2.1.0Y2.0.8Y2.0.7Y2.0.6Y2.0.5Y2.0.4Y2.0.3!Xdev-master!Xdev-legacyU#Xdev-developTX2.7.x-devdX2.6.x-devX2.6.0fX2.5.x-devX2.5.3gX2.5.2X2.5.1X2.5.0X2.4.9X2.4.8X2.4.7 X2.4.6!X2.4.5"X2.4.4#X2.4.3$X2.4.2%X2.4.1&X2.4.0rc7(X2.4.0rc6)X2.4.0rc5*X2.4.0rc4+X2.4.0rc3,X2.4.0rc2-X2.4.0rc1.X2.4.0'X2.3.9/X2.3.80X2.3.71X2.3.62X2.3.53X2.3.44X2.3.35X2.3.26X2.3.17X2.3.08X2.2.9:X2.2.8;X2.2.7<X2.2.6=X2.2.5>X2.2.4?X2.2.3@X2.2.2AX2.2.109X2.2.1BX2.2.0rc3DX2.2.0rc2EX2.2.0rc1FX2.2.0CX2.1.6GX2.1.5HX2.1.4IX2.1.3JX2.1.2KX2.1.1LX2.1.0MX2.0.8NX2.0.7OX2.0.6PX2.0.5QX2.0.4RX2.0.3S!Wdev-master`!Wdev-legacy#Wdev-developW3.0.x-devW2.6.x-devaW2.6.0W2.5.x-devbW2.5.3W2.5.2cW2.5.1dW2.5.0eW2.4.9W2.4.8fW2.4.7gW2.4.6hW2.4.5iW2.4.4jW2.4.3kW2.4.2lW2.4.1mW2.4.0rc7oW2.4.0rc6pW2.4.0rc5qW2.4.0rc4rW2.4.0rc3sW2.4.0rc2tW2.4.0rc1uW2.4.0nW2.3.9vW2.3.8wW2.3.7xW2.3.6yW2.3.5zW2.3.4{W2.3.3|W2.3.2}W2.3.1~W2.3.0W2.2.9W2.2.8W2.2.7W2.2.6W2.2.5W2.2.4W2.2.3W2.2.2W2.2.10W2.2.1W2.2.0rc3W2.2.0rc2W2.2.0rc1W2.2.0W2.1.6W2.1.5W2.1.4W2.1.3W2.1.2W2.1.1W2.1.0W2.0.8W2.0.7W2.0.6W2.0.5W2.0.4W2.0.3!Vdev-master"!Vdev-legacy_3Vdev-ghgfk-hotfix/43!#Vdev-develop^V2.6.x-dev#V2.5.x-dev$V2.5.3%V2.5.2&V2.5.1'V2.5.0(V2.4.9V2.4.8)V2.4.7*V2.4.6+V2.4.5,V2.4.4-V2.4.3.V2.4.2/V2.4.10V2.4.0rc72V2.4.0rc63V2.4.0rc54V2.4.0rc45V2.4.0rc36V2.4.0rc27V2.4.0rc18V2.4.01V2.3.99V2.3.8:V2.3.7;V2.3.6<V2.3.5=V2.3.4>V2.3.3?V2.3.2@V2.3.1AV2.3.0BV2.2.9DV2.2.8EV2.2.7FV2.2.6GV2.2.5HV2.2.4IV2.2.3JV2.2.2KV2.2.10CV2.2.1LV2.2.0rc3NV2.2.0rc2OV2.2.0rc1PV2.2.0MV2.1.6QV2.1.5RV2.1.4SV2.1.3TV2.1.2UV2.1.1VV2.1.0WV2.0.8XV2.0.7YV2.0.6ZV2.0.5[V2.0.4\V2.0.3]!Udev-master!Udev-legacy!#Udev-develop U2.6.x-devU2.5.x-devU2.5.1U2.5.0U2.4.9vU2.4.8U2.4.7U2.4.6U2.4.5U2.4.4U2.4.3U2.4.2U2.4.1U2.4.0rc7U2.4.0rc6U2.4.0rc5U2.4.0rc4U2.4.0rc3U2.4.0rc2U2.4.0rc1U2.4.0U2.3.9U2.3.8U2.3.7U2.3.6U2.3.5U2.3.4 U2.3.3U2.3.2U2.3.1U2.3.0U2.2.9U2.2.8U2.2.7U2.2.6	U2.2.5
U2.2.4U2.2.3U2.2.2U2.2.10U2.2.1U2.2.0rc3U2.2.0rc2Y2.2.0rc1
   wj]PC6)~n^QD7*xeSA4' wfS+wj]PC3#










v
i
\
O
B
5
(


									w	j	]	P	C	6	)			{naTG:-tgVE2yl_RE8+xk^QD7*~n^N>.tcUD2 tgZM@3#    ^2.2.1,^2.2.0rc3,^2.2.0rc2,^2.2.0rc1,^2.2.0,^2.1.6,^2.1.5,^2.1.4,^2.1.3,^2.1.2,^2.1.1,^2.1.0,^2.0.8,^2.0.7,^2.0.6,^2.0.5,^2.0.4,^2.0.3,!]dev-master+!]dev-legacy+#]dev-develop+]3.0.x-devt]2.8.x-dev5]2.7.x-dev+]2.7.07]2.6.x-dev+]2.6.0+]2.5.2+]2.5.1+]2.5.0+]2.4.9z]2.4.8+]2.4.7+]2.4.6+]2.4.5+]2.4.4+]2.4.3+]2.4.2+]2.4.1+]2.4.0rc7+]2.4.0rc6+]2.4.0rc5+]2.4.0rc4+]2.4.0rc3+]2.4.0rc2+]2.4.0rc1+]2.4.0+]2.3.9+]2.3.8+]2.3.7+]2.3.6+]2.3.5+]2.3.4+]2.3.3+]2.3.2+]2.3.1+]2.3.0+]2.2.9+]2.2.8+]2.2.7+]2.2.6+]2.2.5+]2.2.4+]2.2.3+]2.2.2+]2.2.10+]2.2.1+]2.2.0rc3+]2.2.0rc2+]2.2.0rc1+]2.2.0+]2.1.6+]2.1.5+]2.1.4+]2.1.3+]2.1.2+]2.1.1+]2.1.0+]2.0.8+]2.0.7+]2.0.6+]2.0.5+]2.0.4+]2.0.3+!\dev-master".[\dev-hotfix/acceptable-view-model-plugin"!A\dev-feature/readme-license"'M\dev-feature/readme-documentation" ?\dev-feature/accept-filter"#\dev-develop"\1.2.x-dev"\1.1.x-dev"\1.1.1"\1.1.0"\1.0.9"\1.0.8"\1.0.7"\1.0.6"\1.0.5"\1.0.4"\1.0.3"\1.0.2"\1.0.1"!\1.0.0beta2"!\1.0.0beta1"#\1.0.0-beta3"\1.0.0"\0.9.1"\0.9.0"\0.8.0"\0.7.0"\0.6.0"![dev-master":![dev-legacy"v#[dev-develop"u[3.0.x-dev" [2.6.x-dev";[2.5.x-dev"<[2.5.3n[2.5.2"=[2.5.1">[2.5.0"?[2.4.9:[2.4.8"@[2.4.7"A[2.4.6"B[2.4.5"C[2.4.4"D[2.4.3"E[2.4.2"F[2.4.1"G[2.4.0rc7"I[2.4.0rc6"J[2.4.0rc5"K[2.4.0rc4"L[2.4.0rc3"M[2.4.0rc2"N[2.4.0rc1"O[2.4.0"H[2.3.9"P[2.3.8"Q[2.3.7"R[2.3.6"S[2.3.5"T[2.3.4"U[2.3.3"V[2.3.2"W[2.3.1"X[2.3.0"Y[2.2.9"[[2.2.8"\[2.2.7"][2.2.6"^[2.2.5"_[2.2.4"`[2.2.3"a[2.2.2"b[2.2.10"Z[2.2.1"c[2.2.0rc3"e[2.2.0rc2"f[2.2.0rc1"g[2.2.0"d[2.1.6"h[2.1.5"i[2.1.4"j[2.1.3"k[2.1.2"l[2.1.1"m[2.1.0"n[2.0.8"o[2.0.7"p[2.0.6"q[2.0.5"r[2.0.4"s[2.0.3"t!Zdev-master	=Zdev-feature/render.error'MZdev-feature/readme-documentation#Zdev-developZ1.2.x-dev
Z1.1.x-devZ1.1.0Z1.0.3Z1.0.2Z1.0.1!Z1.0.0beta2!Z1.0.0beta1#Z1.0.0-beta3Z1.0.0Z0.9.1Z0.9.0Z0.8.0Z0.7.0Z0.6.0!Ydev-masterV!Ydev-legacy#Ydev-developY2.6.x-devWY2.5.x-devXY2.5.5YY2.5.4ZY2.5.3[Y2.5.2\Y2.5.1]Y2.5.0^Y2.4.9Y2.4.8_Y2.4.7`Y2.4.6aY2.4.5bY2.4.4cY2.4.3dY2.4.2eY2.4.1fY2.4.0rc7hY2.4.0rc6iY2.4.0rc5jY2.4.0rc4kY2.4.0rc3lY2.4.0rc2mY2.4.0rc1nY2.4.0gY2.3.9oY2.3.8pY2.3.7qY2.3.6rY2.3.5sY2.3.4tY2.3.3uY2.3.2vY2.3.1wY2.3.0xY2.2.9zY2.2.8{Y2.2.7|Y2.2.6}Y2.2.5~Y2.2.4Y2.2.3Y2.2.2Y2.2.10yY2.2.1Y2.2.0rc3  ^2.2.10,
    ~qdWJ=0#	reXK>1#	xfYL?2%vfYK>1$
{naTD4$









|
n
a
T
F
5
$
											x	k	^	Q	D	7	'		wj]PC6)xk^QD7*|obUH;.!{naTG:- tdTD4$seTA/tgWG7*       b2.2.24b2.2.104b2.2.14b2.2.0rc34b2.2.0rc24b2.2.0rc14b2.2.04b2.1.64b2.1.54b2.1.44b2.1.34b2.1.24b2.1.14b2.1.04b2.0.85 b2.0.75b2.0.65b2.0.55b2.0.45b2.0.35!adev-master16!adev-legacy1q#adev-develop1pa2.6.x-dev17a2.6.0.a2.5.x-dev18a2.5.119a2.5.01:a2.4.9Za2.4.81;a2.4.71<a2.4.61=a2.4.51>a2.4.41?a2.4.31@a2.4.21Aa2.4.11Ba2.4.0rc71Da2.4.0rc61Ea2.4.0rc51Fa2.4.0rc41Ga2.4.0rc31Ha2.4.0rc21Ia2.4.0rc11Ja2.4.01Ca2.3.91Ka2.3.81La2.3.71Ma2.3.61Na2.3.51Oa2.3.41Pa2.3.31Qa2.3.21Ra2.3.11Sa2.3.01Ta2.2.91Va2.2.81Wa2.2.71Xa2.2.61Ya2.2.51Za2.2.41[a2.2.31\a2.2.21]a2.2.101Ua2.2.11^a2.2.0rc31`a2.2.0rc21aa2.2.0rc11ba2.2.01_a2.1.61ca2.1.51da2.1.41ea2.1.31fa2.1.21ga2.1.11ha2.1.01ia2.0.81ja2.0.71ka2.0.61la2.0.51ma2.0.41na2.0.31o!`dev-master0!`dev-legacy15#`dev-develop14`2.7.x-devI`2.6.x-dev0`2.6.0K`2.5.x-dev0`2.5.10`2.5.00`2.4.9`2.4.80`2.4.71 `2.4.61`2.4.51`2.4.41`2.4.31`2.4.21`2.4.11`2.4.0rc71`2.4.0rc61	`2.4.0rc51
`2.4.0rc41`2.4.0rc31`2.4.0rc21`2.4.0rc11`2.4.01`2.3.91`2.3.81`2.3.71`2.3.61`2.3.51`2.3.41`2.3.31`2.3.21`2.3.11`2.3.01`2.2.91`2.2.81`2.2.71`2.2.61`2.2.51`2.2.41`2.2.31 `2.2.21!`2.2.101`2.2.11"`2.2.0rc31$`2.2.0rc21%`2.2.0rc11&`2.2.01#`2.1.61'`2.1.51(`2.1.41)`2.1.31*`2.1.21+`2.1.11,`2.1.01-`2.0.81.`2.0.71/`2.0.610`2.0.511`2.0.412`2.0.313!_dev-master.!_dev-legacy.#_dev-develop._2.6.x-dev._2.5.x-dev._2.5.2_2.5.1._2.5.0._2.4.9_2.4.8._2.4.7._2.4.6._2.4.5._2.4.4._2.4.3._2.4.2._2.4.1._2.4.0rc7._2.4.0rc6._2.4.0rc5._2.4.0rc4._2.4.0rc3._2.4.0rc2._2.4.0rc1._2.4.0._2.3.9._2.3.8._2.3.7._2.3.6._2.3.5._2.3.4._2.3.3._2.3.2._2.3.1._2.3.0._2.2.9._2.2.8._2.2.7._2.2.6._2.2.5._2.2.4._2.2.3._2.2.2._2.2.10._2.2.1._2.2.0rc3._2.2.0rc2._2.2.0rc1._2.2.0._2.1.6._2.1.5._2.1.4._2.1.3._2.1.2._2.1.1._2.1.0._2.0.7._2.0.6._2.0.5._2.0.4._2.0.3._2.0.2._2.0.1._2.0.0.!^dev-master,!^dev-legacy,#^dev-develop,^3.0.x-dev^2.6.x-dev,^2.6.1^2.6.0^2.5.x-dev,^2.5.3^2.5.2^2.5.1,^2.5.0,^2.4.9^2.4.8,^2.4.7,^2.4.6,^2.4.5,^2.4.4,^2.4.3,^2.4.2,^2.4.1,^2.4.0rc7,^2.4.0rc6,^2.4.0rc5,^2.4.0rc4,^2.4.0rc3,^2.4.0rc2,^2.4.0rc1,^2.4.0,^2.3.9,^2.3.8,^2.3.7,^2.3.6,^2.3.5,^2.3.4,^2.3.3,^2.3.2,^2.3.1,^2.3.0,^2.2.9,^2.2.8,^2.2.7,^2.2.6,^2.2.5,^2.2.4,^2.2.3,b2.2.34
    ~qdWJ=0#reXK=0#|obUH;.!{naTG:- ueUH;.!









|
k
Y
G
4
"

									x	b	E	*			{m_I4& zgTA0q`SB5#oQD7%|obTB5(
r`SB5#	uh[NA4'        o3.0.3Io3.0.2Io3.0.1Io3.0.0Io2.1.0Io2.0.1Io2.0.0Io1.1.0Io1.0.3Io1.0.2Io1.0.1Io1.0.0Io0.9.0I!ndev-masterHn1.5.0Hn1.4.1Hn1.4.0Hn1.3.0Hn1.2.0Hn1.1.0Hn1.0.2Hn1.0.1Hn1.0.0H!mdev-masterHm1.1.0Hm1.0.x-devHm1.0.0H!ldev-masterHl2.0.x-devHl2.0.1Hl2.0.0Hl1.0.x-devHl1.0.1Hl1.0.0H!kdev-masterHk1.0.x-devHk1.0.0H!jdev-masterHj1.0.x-devHj1.0.2Hj1.0.1Hj1.0.0H!idev-masterH=i0.7.1i0.7.0H>i0.6.1H?i0.6.0H@i0.5.1HAi0.5.0HBi0.4.0HCi0.3.0HDi0.2.6HEi0.2.5HFi0.2.4HGi0.2.3HHi0.2.2HIi0.2.1HJi0.2.0HKi0.1.0HL!hdev-master>h1.0.2>h1.0.1>7gdev-symfony-3-support)!gdev-master>g2.4.1cg2.4.0-rc1c!g2.4.0-betac%g2.4.0-alpha2c%g2.4.0-alpha1?g2.4.0cg2.3.0-rc1>#g2.3.0-beta3>#g2.3.0-beta2>!g2.3.0-beta>g2.3.0>g2.2.x-dev>g2.2.1>g2.2.0-RC1>#g2.2.0-BETA2>!g2.2.0-BETA>g2.2.0>g2.1.1>g2.1.0-RC3>g2.1.0-RC2>g2.1.0-RC1>g2.1.0>g2.0.1>g2.0.0-RC4>g2.0.0-RC3>g2.0.0-RC2>g2.0.0-RC1>#g2.0.0-BETA4>#g2.0.0-BETA3>#g2.0.0-BETA2>#g2.0.0-BETA1>g2.0.0>g1.4.3>g1.4.2>g1.4.1>g1.4.0>-fdev-stable-3.0.0o-fdev-stable-2.0.5!fdev-master<#fdev-developf3.0.1
%f3.0.0-stableo'f3.0.0-beta.22f2.0.5f2.0.4f2.0.3f2.0.2f2.0.1f2.0.0!edev-master6e2.0.x-devoe1.2.x-devoe1.2.26e1.2.16e1.2.06e1.1.17 e1.1.073ddev-test-double-api67ddev-simplify-stub-dsl6)ddev-php-parser6!ddev-master61ddev-generator-fail6d1.0.x-dev6d0.9.46d0.9.36d0.9.26d0.9.16d0.9.06d0.8.06d0.7.26!cdev-master69!cdev-legacy6t#cdev-develop6sc3.0.x-devc2.7.x-devc2.6.x-dev6:c2.6.2c2.6.1c2.6.0c2.5.x-dev6;c2.5.2c2.5.16<c2.5.06=c2.4.9c2.4.86>c2.4.76?c2.4.66@c2.4.56Ac2.4.46Bc2.4.36Cc2.4.26Dc2.4.16Ec2.4.0rc76Gc2.4.0rc66Hc2.4.0rc56Ic2.4.0rc46Jc2.4.0rc36Kc2.4.0rc26Lc2.4.0rc16Mc2.4.06Fc2.3.96Nc2.3.86Oc2.3.76Pc2.3.66Qc2.3.56Rc2.3.46Sc2.3.36Tc2.3.26Uc2.3.16Vc2.3.06Wc2.2.96Yc2.2.86Zc2.2.76[c2.2.66\c2.2.56]c2.2.46^c2.2.36_c2.2.26`c2.2.106Xc2.2.16ac2.2.0rc36cc2.2.0rc26dc2.2.0rc16ec2.2.06bc2.1.66fc2.1.56gc2.1.46hc2.1.36ic2.1.26jc2.1.16kc2.1.06lc2.0.86mc2.0.76nc2.0.66oc2.0.56pc2.0.46qc2.0.36r!bdev-master4!bdev-legacy5#bdev-develop5b2.6.x-dev4b2.5.x-dev4b2.5.24b2.5.14b2.5.04b2.4.9b2.4.84b2.4.74b2.4.64b2.4.54b2.4.44b2.4.34b2.4.24b2.4.14b2.4.0rc74b2.4.0rc64b2.4.0rc54b2.4.0rc44b2.4.0rc34b2.4.0rc24b2.4.0rc14b2.4.04b2.3.94b2.3.84b2.3.74b2.3.64b2.3.54b2.3.44b2.3.34b2.3.24b2.3.14b2.3.04b2.2.94b2.2.84b2.2.74b2.2.64b2.2.54o3.0.4I
    |o\I<)yl_RE6)m_Q2tgZM@2 yk]OB5(









}
n
_
R
C
5
'

											r	c	T	G	:	-	 		zjYF4'	tgZM</xb9ti^QD7*}pcVI</"yl_RE8+uh[NA4'    t3.3.1Mt3.3.0Mt3.2.0Mt3.1.2Mt3.1.1Mt3.1.0Mt3.0.7Mt3.0.6Mt3.0.5Mt3.0.4Mt3.0.3Mt3.0.2Mt3.0.1Mt3.0.0Mt2.8.8Mt2.8.7Mt2.8.6Mt2.8.5Mt2.8.4Mt2.8.3Mt2.8.2Mt2.8.1Mt2.8.0Mt2.7.2Mt2.7.1Mt2.7.0Mt2.6.6Mt2.6.5Mt2.6.4Mt2.6.3Mt2.6.2Mt2.6.1Mt2.6.0Mt2.5.0Mt2.4.1Mt2.4.0Mt2.3.2Mt2.2.4Mt2.2.3Mt2.2.2Mt2.2.1Mt2.2.0Mt2.1.4Mt2.1.3Mt2.1.2Mt2.1.1Mt2.1.0Mt2.0.5Mt2.0.4Mt2.0.3Mt2.0.2Mt2.0.1Mt2.0.0Mt1.0.4Mt1.0.3M!sdev-masterMe'sdev-communityMqs1.1.1qds1.1.0qes1.0.4Fs1.0.3Fs1.0.2Mfs1.0.1Mgs1.0.0Mhs0.6.0Mis0.5.1Mj
s0.5Mk
s0.4Ml
s0.3Mms0.2.1Mn
s0.2Mo
s0.1Mp5rdev-refactor-formatsrdev-php7F&!rdev-masterL#rdev-gherkinp$Erdev-feature/facebook-upgrade 7rdev-feature-json-type(Mrdev-feature-get-internal-domains6)rdev-db-cleanupM5rdev-auto-rebuild-enhp#rdev-angular r2.1.x-devLr2.1.6r2.1.5pr2.1.4Er2.1.3r2.1.2Lr2.1.1Lr2.1.0-rc1L!r2.1.0-betaLr2.1.0Lr2.0.x-devLr2.0.9Lr2.0.8Lr2.0.7Lr2.0.6Lr2.0.5Lr2.0.4Lr2.0.3Lr2.0.2Lr2.0.16Lr2.0.15Lr2.0.14Lr2.0.13Lr2.0.12Lr2.0.11Lr2.0.10.1Lr2.0.10Lr2.0.1L!r2.0.0-betaL#r2.0.0-alphaLr2.0.0-RC2Lr2.0.0-RCLr2.0.0Lr1.8.x-devLr1.8.7Lr1.8.6Lr1.8.5Lr1.8.4Lr1.8.3Lr1.8.2Lr1.8.1Lr1.8.0.1Lr1.8.0Lr1.7.x-devLr1.7.4Lr1.7.3Lr1.7.2Lr1.7.1Lr1.7.0.2Lr1.7.0.1Lr1.7.0Lr1.6.x-devLr1.6.8.1Lr1.6.8Lr1.6.7Lr1.6.6Lr1.6.5Lr1.6.4.2Lr1.6.4.1Lr1.6.4Lr1.6.3.1Lr1.6.3Lr1.6.2Lr1.6.12Lr1.6.11Lr1.6.1.1Lr1.6.1Lr1.6.0.4Lr1.6.0.3Lr1.6.0.1Lr1.6.0Lr1.5.7Lr1.5.6Lr1.5.5Lr1.5.4Lr1.5.3Lr1.5.2Lr1.5.1Lr1.5.0Lr1.1.5Lr1.1.4Lr1.1.3Lr1.1.2Lr1.1.0Lr1.0.9Mr1.0.14Lr1.0.13Lr1.0.12Lr1.0.11M r1.0.10M!qdev-masterJq2.0.17Tq2.0.0Jq1.3.0Jq1.2.1Jq1.2.0Jq1.1.0J q1.0.0J!7pdev-separate_resolverI!pdev-masterIp1.2.0op1.1.1Ip1.1.0Ip1.0.1Ip1.0.0Ip0.2.1Ip0.2.0Ip0.1.0I$Godev-simpler-definition-helperI5odev-service-provider`&Iodev-self-resolving-definitionspE!odev-masterI5odev-feature/CompilerI9odev-definition-interoppDo5.2.2"o5.2.1p#o5.2.0-beta1Co5.2.0po5.1.x-devI#o5.1.0-beta1Io5.1.0Io5.0.x-devIo5.0.4Io5.0.3Io5.0.2Io5.0.1I#o5.0.0-beta1Io5.0.0-RC1Io5.0.0Io4.x-devIo4.4.9Io4.4.8Io4.4.7Io4.4.6Io4.4.5Io4.4.4Io4.4.3Io4.4.2Io4.4.10Io4.4.1Io4.4.0Io4.3.0Io4.2.2Io4.2.1I#o4.2.0-beta1Io4.2.0Io4.1.1I#o4.1.0-beta1Io4.1.0I#o4.0.0-beta2I#o4.0.0-beta1Io4.0.0Io3.x-devIo3.5.1Io3.5.0Io3.4.0Io3.3.0Io3.2.0Io3.1.1Io3.1.0Io3.0.6It3.4.0M
  ~qdWE3&}pcVI</"YG3xL:-vi\OB5(









s
e
W
I
;
-


										w	j	]	P	C	6	)		zm`OB5'rdVH:,tgZM@/"uhWJ7$tcVC0#pcP=0#	tcUA3%!xdev-masterO_x3.1.x-devsx3.0.x-devO`x3.0.2x3.0.1s#x3.0.0-BETA1Hx3.0.0sx2.8.x-devOax2.8.2sx2.8.1s#x2.8.0-BETA1Hx2.8.0sx2.7.x-devObx2.7.9sx2.7.8sx2.7.7Hx2.7.6x2.7.5x2.7.4Ocx2.7.3Odx2.7.2Oex2.7.1Of#x2.7.0-BETA2Oh#x2.7.0-BETA1Oix2.7.0Ogx2.6.x-devOjx2.6.9Omx2.6.8Onx2.6.7Oox2.6.6Opx2.6.5Oqx2.6.4Orx2.6.3Osx2.6.2Otx2.6.13sx2.6.12Hx2.6.11Okx2.6.10Olx2.6.1Ou#x2.6.0-BETA2Ow#x2.6.0-BETA1Oxx2.6.0Ovx2.5.x-devOyx2.5.9O}x2.5.8O~x2.5.7Ox2.5.6Ox2.5.5Ox2.5.4Ox2.5.3Ox2.5.2Ox2.5.12Ozx2.5.11O{x2.5.10O|x2.5.1Ox2.5.0-RC1O#x2.5.0-BETA2O#x2.5.0-BETA1Ox2.5.0Ox2.4.x-devOx2.4.9Ox2.4.8Ox2.4.7Ox2.4.6Ox2.4.5Ox2.4.4Ox2.4.3Ox2.4.2Ox2.4.10Ox2.4.1Ox2.4.0-RC1O#x2.4.0-BETA2O#x2.4.0-BETA1Ox2.4.0Ox2.3.x-devOx2.3.9Ox2.3.8Ox2.3.7Ox2.3.6Ox2.3.5Ox2.3.4Ox2.3.37sx2.3.36sx2.3.35Hx2.3.34x2.3.33x2.3.32Ox2.3.31Ox2.3.30Ox2.3.3Ox2.3.29Ox2.3.28Ox2.3.27Ox2.3.26Ox2.3.25Ox2.3.24Ox2.3.23Ox2.3.22Ox2.3.21Ox2.3.20Ox2.3.2Ox2.3.19Ox2.3.18Ox2.3.17Ox2.3.16Ox2.3.15Ox2.3.14Ox2.3.13Ox2.3.12Ox2.3.11Ox2.3.10Ox2.3.1Ox2.3.0Ox2.2.x-devOx2.2.9Ox2.2.8Ox2.2.7Ox2.2.6Ox2.2.5Ox2.2.4Ox2.2.3Ox2.2.2Ox2.2.11Ox2.2.10Ox2.2.1Ox2.2.0Ox2.1.x-devOx2.1.9Ox2.1.8Ox2.1.7Ox2.1.6Ox2.1.5Ox2.1.4Ox2.1.3Ox2.1.2Ox2.1.13Ox2.1.12Ox2.1.11Ox2.1.10Ox2.1.1Ox2.1.0Ox2.0.x-devOx2.0.9Ox2.0.25Ox2.0.24Ox2.0.23Ox2.0.22Ox2.0.21Ox2.0.20Ox2.0.19Ox2.0.18Ox2.0.17Ox2.0.16Ox2.0.15Ox2.0.14Ox2.0.13Ox2.0.12Ox2.0.10O!wdev-masterOw1.0.x-devO
w1.0Ow0.9.2O"w0.9.1O#w0.9.0O$w0.8.0O%w0.7.0O&w0.6.0O'w0.5.1O(w0.5.0O)w0.4.0O*w0.3.0O+w0.2.0O,w0.11.0Ow0.10.1O w0.10.0O!w0.1.0O-!vdev-masterM&Kvdev-caching-stream-forward-seekMv1.2.2qv1.2.18Cv1.2.0Mv1.1.0Mv1.0.x-devMv1.0.0M!udev-masterM+Sudev-fix/resolve-empty-each-promises*Sudev-each-promise-with-generator-fixMu1.0.x-devMu1.0.3u1.0.2Mu1.0.1Mu1.0.0Mu0.1.2Mu0.1.1Mu0.1.0M"Atdev-reusable-handler-stackAM%tdev-on_statsM!tdev-masterMr&Itdev-flexible-history-containerq9tdev-add-json-functions t6.2.x-dev t6.1.x-devMst6.1.1Ft6.1.0Mtt6.0.2Mut6.0.1Mvt6.0.0Mwt5.3.x-devMxt5.3.0Myt5.2.0Mzt5.1.0M{t5.0.3M|t5.0.2M}t5.0.1M~t5.0.0Mt4.2.3Mt4.2.2Mt4.2.1Mt4.2.0Mt4.1.8Mt4.1.7Mt4.1.6Mt4.1.5Mt4.1.4Mt4.1.3Mt4.1.2Mt4.1.1Mt4.1.0Mt4.0.2Mt4.0.1M!t4.0.0-rc.2M!t4.0.0-rc.1Mt4.0.0Mt3.8.1Mt3.8.0Mt3.7.4Mt3.7.3Mt3.7.2Mt3.7.1Mt3.7.0Mt3.6.0Mt3.5.0Mt3.4.3Mt3.4.2M   t3.4.1M
    tfXJ</"~qdWJ=0pcVH:,wi[M?1${naPC0










x
k
X
E
4
'

											w	d	Q	D	6	(		
q^QD7* vbTF5#wi[M?2%tgZM@3"sfYK=/!zl^PB4'~qdSF3              z2.4.0-RC1Q9#z2.4.0-BETA2Q:#z2.4.0-BETA1Q;z2.4.0Q8z2.3.x-devQ<z2.3.9QTz2.3.8QUz2.3.7QVz2.3.6QWz2.3.5QXz2.3.4QYz2.3.37uz2.3.36z2.3.35Jz2.3.34z2.3.33z2.3.32Q=z2.3.31Q>z2.3.30Q?z2.3.3QZz2.3.29Q@z2.3.28QAz2.3.27QBz2.3.26QCz2.3.25QDz2.3.24QEz2.3.23QFz2.3.22QGz2.3.21QHz2.3.20QIz2.3.2Q[z2.3.19QJz2.3.18QKz2.3.17QLz2.3.16QMz2.3.15QNz2.3.14QOz2.3.13QPz2.3.12QQz2.3.11QRz2.3.10QSz2.3.1Q\z2.3.0Q]z2.2.x-devQ^z2.2.9Qaz2.2.8Qbz2.2.7Qcz2.2.6Qdz2.2.5Qez2.2.4Qfz2.2.3Qgz2.2.2Qhz2.2.11Q_z2.2.10Q`z2.2.1Qiz2.2.0Qjz2.1.x-devQkz2.1.9Qpz2.1.8Qqz2.1.7Qrz2.1.6Qsz2.1.5Qtz2.1.4Quz2.1.3Qvz2.1.2Qwz2.1.13Qlz2.1.12Qmz2.1.11Qnz2.1.10Qoz2.1.1Qxz2.1.0Qyz2.0.x-devQzz2.0.9Qz2.0.7Qz2.0.6Qz2.0.5Qz2.0.4Qz2.0.25Q{z2.0.24Q|z2.0.23Q}z2.0.22Q~z2.0.21Qz2.0.20Qz2.0.19Qz2.0.18Qz2.0.17Qz2.0.16Qz2.0.15Qz2.0.14Qz2.0.13Qz2.0.12Qz2.0.10Q!ydev-masterPuy3.1.x-devy3.0.x-devPvy3.0.2y3.0.1#y3.0.0-BETA1Iy3.0.0y2.8.x-devPwy2.8.2{y2.8.1#y2.8.0-BETA1Iy2.8.0y2.7.x-devPxy2.7.9y2.7.8y2.7.7Iy2.7.6y2.7.5y2.7.4Pyy2.7.3Pzy2.7.2P{y2.7.1P|#y2.7.0-BETA2P~#y2.7.0-BETA1Py2.7.0P}y2.6.x-devPy2.6.9Py2.6.8Py2.6.7Py2.6.6Py2.6.5Py2.6.4Py2.6.3Py2.6.2Py2.6.13y2.6.12Iy2.6.11Py2.6.10Py2.6.1P#y2.6.0-BETA2P#y2.6.0-BETA1Py2.6.0Py2.5.x-devPy2.5.9Py2.5.8Py2.5.7Py2.5.6Py2.5.5Py2.5.4Py2.5.3Py2.5.2Py2.5.12Py2.5.11Py2.5.10Py2.5.1Py2.5.0-RC1P#y2.5.0-BETA2P#y2.5.0-BETA1Py2.5.0Py2.4.x-devPy2.4.9Py2.4.8Py2.4.7Py2.4.6Py2.4.5Py2.4.4Py2.4.3Py2.4.2Py2.4.10Py2.4.1Py2.4.0-RC1P#y2.4.0-BETA2P#y2.4.0-BETA1Py2.4.0Py2.3.x-devPy2.3.9Py2.3.8Py2.3.7Py2.3.6Py2.3.5Py2.3.4Py2.3.37y2.3.36y2.3.35Jy2.3.34y2.3.33y2.3.32Py2.3.31Py2.3.30Py2.3.3Py2.3.29Py2.3.28Py2.3.27Py2.3.26Py2.3.25Py2.3.24Py2.3.23Py2.3.22Py2.3.21Py2.3.20Py2.3.2Py2.3.19Py2.3.18Py2.3.17Py2.3.16Py2.3.15Py2.3.14Py2.3.13Py2.3.12Py2.3.11Py2.3.10Py2.3.1Py2.3.0Py2.2.x-devPy2.2.9Py2.2.8Py2.2.7Py2.2.6Py2.2.5Py2.2.4Py2.2.3Py2.2.2Py2.2.11Py2.2.10Py2.2.1Py2.2.0Py2.1.x-devPy2.1.9Py2.1.8Py2.1.7Py2.1.6Py2.1.5Py2.1.4Py2.1.3Py2.1.2Py2.1.13Py2.1.12Py2.1.11Py2.1.10Py2.1.1Py2.1.0Py2.0.x-devPy2.0.9Py2.0.7Py2.0.6Py2.0.5Q y2.0.4Qy2.0.25Py2.0.24Py2.0.23Py2.0.22Py2.0.21Py2.0.20Py2.0.19Py2.0.18Py2.0.17Py2.0.16Py2.0.15Py2.0.14Py2.0.13Py2.0.12P
  }l_L9(xkXE8*xeRE8+xjVH:)pcVI</"










r
e
X
K
=
/

											n	\	O	<	*			 |n`RD6(lXJ<. ufWH9)	}oaSE7)q]O;-oaM?+
qcUG9+             + dev-feature/boxx 1.2.0x 1.1.5dS 1.1.4dT 1.1.3dU 1.1.2dV 1.1.1dW 1.1.0dX 1.0.0dY/ dev-twig20-compatd! dev-masterd	 1.3.x-devd
 1.3.0d 1.2.0d 1.1.0d 1.0.1d# 1.0.0-alphad 1.0.0d! dev-masterc# 3.4.0.x-devc 3.4.0c# 3.3.0.x-devc 3.3.0c# 3.2.0.x-devc 3.2.0c# 3.1.0.x-devc 3.1.0c# 3.0.0.x-devc 3.0.0c# 2.9.0.x-devc 2.9.0c# 2.8.0.x-devc 2.8.0c# 2.7.0.x-devc 2.7.0c# 2.6.0.x-devc 2.6.0c# 2.5.1.x-devc 2.5.1c# 2.5.0.x-devc 2.5.0c# 2.4.0.x-devc 2.4.0c# 2.0.0.x-devc 2.0.0c# dev-previewx! dev-mastercN 2.9.2cU 2.9.1cV 2.9.0cW 2.8.2cX 2.8.1cY 2.8.0cZ 2.7.1c[ 2.7.0c\ 2.6.2c] 2.6.1c^ 2.6.0c_ 2.5.0c` 2.4.2ca 2.4.1cb 2.4.0cc 2.3.0cd 2.2.1ce 2.2.0cf 2.13.0xk 2.12.2xl 2.12.1xm 2.12.0cO 2.11.0cP 2.10.3cQ 2.10.2cR 2.10.1cS 2.10.0cT 2.1.1cg 2.1.0ch 2.0.2ci 2.0.1cj 2.0.0ck 1.2.1cl 1.2.0x 1.1.2cm 1.1.1cn 1.1.0co 1.0.3cp 1.0.2cq 1.0.1cr 1.0.0cs! dev-v3-devxU! dev-masterc, 2.3.2xC 2.3.1xD 2.3.0c- 2.2.1c. 2.2.0c/ 2.1.2c0 2.1.1c1! 2.1.0-betac3' 2.1.0-alpha-1c4 2.1.0c2 2.0.5c5 2.0.4c6 2.0.3c7 2.0.2c8 2.0.1c9 2.0.0c: 1.3.1c; 1.3.0c<! dev-masterc) 1.1c* 1.0c+!dev-masterc2.0.x-devc 2.0.5zn2.0.4c!2.0.3c"2.0.2c#2.0.1c$2.0.0-rcc&!2.0.0-betac'#2.0.0-alphac(2.0.0c%!~dev-masterc~2.0.x-devc~2.0.7E~2.0.6c~2.0.5c~2.0.4c~2.0.3c~2.0.2c~2.0.1c~2.0.0-rcc!~2.0.0-betac#~2.0.0-alphac~2.0.0c!}dev-masterSf}1.5.0}1.4.0b}1.3.1Sg}1.3.0Sh}1.2.1Si}1.2.0Sj}1.1.0Sk}1.0.1Sl}1.0.0Sm!|dev-masterSL|0.4.3x|0.4.2x|0.4.1SM|0.4.0SN|0.3.6SO|0.3.5SP|0.3.4SQ|0.3.3SR|0.3.2SS|0.3.1ST|0.3.0SU|0.2.1SV|0.2.0SW|0.1.0SX!{dev-masterS8{0.3.0x{0.2.7S9{0.2.6S:{0.2.5S;{0.2.4S<{0.2.3S={0.2.2S>{0.2.1S?{0.2.0S@{0.1.0SA!zdev-masterQz3.1.x-devz3.0.x-devQz3.0.2z3.0.1#z3.0.0-BETA1Jsz3.0.0z2.8.x-devQz2.8.2uz2.8.1#z2.8.0-BETA1Juz2.8.0z2.7.x-devQz2.7.9uz2.7.8z2.7.7Jwz2.7.6Nz2.7.5z2.7.4Qz2.7.3Qz2.7.2Qz2.7.1Q	#z2.7.0-BETA2Q#z2.7.0-BETA1Qz2.7.0Q
z2.6.x-devQz2.6.9Qz2.6.8Qz2.6.7Qz2.6.6Qz2.6.5Qz2.6.4Qz2.6.3Qz2.6.2Qz2.6.13uz2.6.12Jz2.6.11Qz2.6.10Qz2.6.1Q#z2.6.0-BETA2Q#z2.6.0-BETA1Qz2.6.0Qz2.5.x-devQz2.5.9Q z2.5.8Q!z2.5.7Q"z2.5.6Q#z2.5.5Q$z2.5.4Q%z2.5.3Q&z2.5.2Q'z2.5.12Qz2.5.11Qz2.5.10Qz2.5.1Q(z2.5.0-RC1Q*#z2.5.0-BETA2Q+#z2.5.0-BETA1Q,z2.5.0Q)z2.4.x-devQ-z2.4.9Q/z2.4.8Q0z2.4.7Q1z2.4.6Q2z2.4.5Q3z2.4.4Q4z2.4.3Q5z2.4.2Q6z2.4.10Q.   z2.4.1Q7
    sdUF7(
xiZK<. rdVH:,yj[L>/ |m]M=-








o
a
R
D
6
(

									z	k	\	M	?	1	#		xiYI;-ugYJ;,ufTA*	teWH9*vfVF6(zk]OA3%	ufXJ<. # 2.6.0-BETA1f 2.5.9f 2.5.8f 2.5.7f 2.5.6f 2.5.5f 2.5.4f 2.5.3f 2.5.2f 2.5.12f	 2.5.11f
 2.5.10f 2.5.1f 2.5.0-RC1f# 2.5.0-BETA2f# 2.5.0-BETA1f 2.5.0f 2.4.x-devf 2.4.9f 2.4.8f 2.4.7f 2.4.6f 2.4.5f 2.4.4f  2.4.3f! 2.4.2f" 2.4.10f 2.4.1f# 2.4.0-RC1f%# 2.4.0-BETA2f&# 2.4.0-BETA1f' 2.4.0f$ 2.3.x-devf( 2.3.9f@ 2.3.8fA 2.3.7fB 2.3.6fC 2.3.5fD 2.3.4fE 2.3.37z 2.3.36z 2.3.35z 2.3.34  2.3.33  2.3.32f) 2.3.31f* 2.3.30f+ 2.3.3fF 2.3.29f, 2.3.28f- 2.3.27f. 2.3.26f/ 2.3.25f0 2.3.24f1 2.3.23f2 2.3.22f3 2.3.21f4 2.3.20f5 2.3.2fG 2.3.19f6 2.3.18f7 2.3.17f8 2.3.16f9 2.3.15f: 2.3.14f; 2.3.13f< 2.3.12f= 2.3.11f> 2.3.10f? 2.3.1fH 2.3.0fI! dev-mastere`) dev-issue10110e 3.1.x-devy 3.0.x-devea 3.0.2S 3.0.1y# 3.0.0-BETA1 3.0.0y 2.8.x-deveb 2.8.2y 2.8.1y# 2.8.0-BETA1 2.8.0y 2.7.x-devec 2.7.9y 2.7.8y 2.7.7y 2.7.6 2.7.5  2.7.4ed 2.7.3ee 2.7.2ef 2.7.1eg# 2.7.0-BETA2ei# 2.7.0-BETA1ej 2.7.0eh 2.6.x-devek 2.6.9en 2.6.8eo 2.6.7ep 2.6.6eq 2.6.5er 2.6.4es 2.6.3et 2.6.2eu 2.6.13y 2.6.12y 2.6.11el 2.6.10em 2.6.1ev# 2.6.0-BETA2ex# 2.6.0-BETA1ey 2.6.0ew 2.5.x-devez 2.5.9e~ 2.5.8e 2.5.7e 2.5.6e 2.5.5e 2.5.4e 2.5.3e 2.5.2e 2.5.12e{ 2.5.11e| 2.5.10e} 2.5.1e 2.5.0-RC1e# 2.5.0-BETA2e# 2.5.0-BETA1e 2.5.0e 2.4.x-deve 2.4.9e 2.4.8e 2.4.7e 2.4.6e 2.4.5e 2.4.4e 2.4.3e 2.4.2e 2.4.10e 2.4.1e 2.4.0-RC1e# 2.4.0-BETA2e# 2.4.0-BETA1e 2.4.0e 2.3.x-deve 2.3.9e 2.3.8e 2.3.7e 2.3.6e 2.3.5e 2.3.4e 2.3.37z 2.3.36z 2.3.35z 2.3.348 2.3.339 2.3.32e 2.3.31e 2.3.30e 2.3.3e 2.3.29e 2.3.28e 2.3.27e 2.3.26e 2.3.25e 2.3.24e 2.3.23e 2.3.22e 2.3.21e 2.3.20e 2.3.2e 2.3.19e 2.3.18e 2.3.17e 2.3.16e 2.3.15e 2.3.14e 2.3.13e 2.3.12e 2.3.11e 2.3.10e 2.3.1e 2.3.0e 2.2.x-deve 2.2.9e 2.2.8e 2.2.7e 2.2.6e 2.2.5e 2.2.4e 2.2.3e 2.2.2e 2.2.11e 2.2.10e 2.2.1e 2.2.0e 2.1.x-deve 2.1.9e 2.1.8e 2.1.7e 2.1.6e 2.1.5e 2.1.4e 2.1.3e 2.1.2e 2.1.13e 2.1.12e 2.1.11e 2.1.10e 2.1.1e 2.1.0e 2.0.x-deve 2.0.9e 2.0.7e 2.0.6e 2.0.5e 2.0.4e 2.0.25e 2.0.24e 2.0.23e 2.0.22e 2.0.21e 2.0.20e 2.0.19e 2.0.18e 2.0.17e 2.0.16e 2.0.15e 2.0.14e 2.0.13e 2.0.12e 2.0.10e! dev-masterdR 2.6.0f 2.5.x-devf
  vhZL>0teSD/ vgYK<-qbSE7)yj[L=.








{
m
^
O
@
0
 

 									|	h	T	B	4	%			m[M>/ |hZK<, xdVH:,{lWH9'yk]OA/!}o`QB3$~n^N@2$         2.3.x-devf 2.3.9g 2.3.8g 2.3.7g 2.3.6g 2.3.5g 2.3.4g 2.3.37{ 2.3.36{ 2.3.35{ 2.3.34}= 2.3.33N 2.3.32g  2.3.31g 2.3.30g 2.3.3g 2.3.29g 2.3.28g 2.3.27g 2.3.26g 2.3.25g 2.3.24g 2.3.23g	 2.3.22g
 2.3.21g 2.3.20g 2.3.2g 2.3.19g 2.3.18g 2.3.17g 2.3.16g 2.3.15g 2.3.14g 2.3.13g 2.3.12g 2.3.11g 2.3.10g 2.3.1g 2.3.0g  2.2.x-devg! 2.2.9g$ 2.2.8g% 2.2.7g& 2.2.6g' 2.2.5g( 2.2.4g) 2.2.3g* 2.2.2g+ 2.2.11g" 2.2.10g# 2.2.1g, 2.2.0g-! dev-masterfJ' dev-issue9754f 3.1.x-devR` 3.0.x-devfK 3.0.2	 3.0.1Rb# 3.0.0-BETA1! 3.0.0Rc 2.8.x-devfL 2.8.2z 2.8.1Rf# 2.8.0-BETA1! 2.8.0Rg 2.7.x-devfM 2.7.9z 2.7.8Rj 2.7.7Rk 2.7.6! 2.7.5b 2.7.4fN 2.7.3fO 2.7.2fP 2.7.1fQ# 2.7.0-BETA2fS# 2.7.0-BETA1fT 2.7.0fR 2.6.x-devfU 2.6.9fX 2.6.8fY 2.6.7fZ 2.6.6f[ 2.6.5f\ 2.6.4f] 2.6.3f^ 2.6.2f_ 2.6.13z 2.6.12Rv 2.6.11fV 2.6.10fW 2.6.1f`# 2.6.0-BETA2fb# 2.6.0-BETA1fc 2.6.0fa 2.5.x-devfd 2.5.9fh 2.5.8fi 2.5.7fj 2.5.6fk 2.5.5fl 2.5.4fm 2.5.3fn 2.5.2fo 2.5.12fe 2.5.11ff 2.5.10fg 2.5.1fp 2.5.0-RC1fr# 2.5.0-BETA2fs# 2.5.0-BETA1ft 2.5.0fq 2.4.x-devfu 2.4.9fw 2.4.8fx 2.4.7fy 2.4.6fz 2.4.5f{ 2.4.4f| 2.4.3f} 2.4.2f~ 2.4.10fv 2.4.1f 2.4.0-RC1f# 2.4.0-BETA2f# 2.4.0-BETA1f 2.4.0f 2.3.x-devf 2.3.9f 2.3.8f 2.3.7f 2.3.6f 2.3.5f 2.3.4f 2.3.37{* 2.3.36R 2.3.35R 2.3.34!U 2.3.33 2.3.32f 2.3.31f 2.3.30f 2.3.3f 2.3.29f 2.3.28f 2.3.27f 2.3.26f 2.3.25f 2.3.24f 2.3.23f 2.3.22f 2.3.21f 2.3.20f 2.3.2f 2.3.19f 2.3.18f 2.3.17f 2.3.16f 2.3.15f 2.3.14f 2.3.13f 2.3.12f 2.3.11f 2.3.10f 2.3.1f 2.3.0f 2.2.x-devf 2.2.9f 2.2.8f 2.2.7f 2.2.6f 2.2.5f 2.2.4f 2.2.3f 2.2.2f 2.2.11f 2.2.10f 2.2.1f 2.2.0f 2.1.x-devf 2.1.9f 2.1.8f 2.1.7f 2.1.6f 2.1.5f 2.1.4f 2.1.3f 2.1.2f 2.1.13f 2.1.12f 2.1.11f 2.1.10f 2.1.1f 2.1.0f 2.0.17f 2.0.16f! dev-mastere 3.1.x-devzq 3.0.x-deve 3.0.2	; 3.0.1zs# 3.0.0-BETA1  3.0.0zt 2.8.x-deve 2.8.2zw 2.8.1zx# 2.8.0-BETA1  2.8.0zy 2.7.x-deve 2.7.9z| 2.7.8z} 2.7.7z~ 2.7.6  2.7.5  2.7.4e 2.7.3e 2.7.2e 2.7.1e# 2.7.0-BETA2e# 2.7.0-BETA1e 2.7.0e 2.6.x-deve 2.6.9e 2.6.8e 2.6.7e 2.6.6e 2.6.5f  2.6.4f 2.6.3f 2.6.2f 2.6.13z 2.6.12z 2.6.11e 2.6.10e 2.6.1f     2.4.0f
  qcUG9'zl^PB4" vhZL>0teSD/ vgXI:+









z
l
^
L
>
0
!

										r	d	V	G	8	*			 |m^O@1"~o`RC4%oaM9'
zfR@2#uaM?0!q]I;-r`Q<-        ! dev-masterg. 3.1.x-dev 3.0.x-devg/ 3.0.2
 3.0.1# 3.0.0-BETA1 3.0.0 2.8.x-devg0 2.8.2k 2.8.1# 2.8.0-BETA1 2.8.0 2.7.x-devg1 2.7.9p 2.7.8 2.7.7 2.7.6 / 2.7.5Q 2.7.4g2 2.7.3g3 2.7.2g4 2.7.1g5# 2.7.0-BETA2g7# 2.7.0-BETA1g8 2.7.0g6 2.6.x-devg9 2.6.9g< 2.6.8g= 2.6.7g> 2.6.6g? 2.6.5g@ 2.6.4gA 2.6.3gB 2.6.2gC 2.6.13} 2.6.12 2.6.11g: 2.6.10g; 2.6.1gD# 2.6.0-BETA2gF# 2.6.0-BETA1gG 2.6.0gE 2.5.x-devgH 2.5.9gL 2.5.8gM 2.5.7gN 2.5.6gO 2.5.5gP 2.5.4gQ 2.5.3gR 2.5.2gS 2.5.12gI 2.5.11gJ 2.5.10gK 2.5.1gT 2.5.0-RC1gV# 2.5.0-BETA2gW# 2.5.0-BETA1gX 2.5.0gU 2.4.x-devgY 2.4.9g[ 2.4.8g\ 2.4.7g] 2.4.6g^ 2.4.5g_ 2.4.4g` 2.4.3ga 2.4.2gb 2.4.10gZ 2.4.1gc 2.4.0-RC1ge# 2.4.0-BETA2gf# 2.4.0-BETA1gg 2.4.0gd 2.3.x-devgh 2.3.9g 2.3.8g 2.3.7g 2.3.6g 2.3.5g 2.3.4g 2.3.37Ů 2.3.36 2.3.35 2.3.34 h 2.3.33 2.3.32gi 2.3.31gj 2.3.30gk 2.3.3g 2.3.29gl 2.3.28gm 2.3.27gn 2.3.26go 2.3.25gp 2.3.24gq 2.3.23gr 2.3.22gs 2.3.21gt 2.3.20gu 2.3.2g 2.3.19gv 2.3.18gw 2.3.17gx 2.3.16gy 2.3.15gz 2.3.14g{ 2.3.13g| 2.3.12g} 2.3.11g~ 2.3.10g 2.3.1g 2.3.0g 2.2.x-devg 2.2.9g 2.2.8g 2.2.7g 2.2.6g 2.2.5g 2.2.4g 2.2.3g 2.2.2g 2.2.11g 2.2.10g 2.2.1g 2.2.0g 2.1.x-devg 2.1.9g 2.1.8g 2.1.7g 2.1.6g 2.1.5g 2.1.4g 2.1.3g 2.1.2g 2.1.13g 2.1.12g 2.1.11g 2.1.10g 2.1.1g 2.1.0g 2.0.x-devg 2.0.9g 2.0.7g 2.0.6g 2.0.5g 2.0.4g 2.0.25g 2.0.24g 2.0.23g 2.0.22g 2.0.21g 2.0.20g 2.0.19g 2.0.18g 2.0.17g 2.0.16g 2.0.15g 2.0.14g 2.0.13g 2.0.12g 2.0.10g! dev-masterf 3.1.x-dev{x 3.0.x-devf 3.0.2
F 3.0.1{z# 3.0.0-BETA1! 3.0.0{{ 2.8.x-devf 2.8.2{~ 2.8.1{# 2.8.0-BETA1! 2.8.0{ 2.7.x-devf 2.7.9{ 2.7.8{ 2.7.7{ 2.7.6} 2.7.5N 2.7.4f 2.7.3f 2.7.2f 2.7.1f# 2.7.0-BETA2f# 2.7.0-BETA1f 2.7.0f 2.6.x-devf 2.6.9f 2.6.8f 2.6.7f 2.6.6f 2.6.5f 2.6.4f 2.6.3f 2.6.2f 2.6.13{ 2.6.12{ 2.6.11f 2.6.10f 2.6.1f# 2.6.0-BETA2f# 2.6.0-BETA1f 2.6.0f 2.5.x-devf 2.5.9f 2.5.8f 2.5.7f 2.5.6f 2.5.5f 2.5.4f 2.5.3f 2.5.2f 2.5.12f 2.5.11f 2.5.10f 2.5.1f 2.5.0-RC1f# 2.5.0-BETA2f# 2.5.0-BETA1f 2.5.0f 2.4.x-devf 2.4.9f 2.4.8f 2.4.7f 2.4.6f 2.4.5f 2.4.4f 2.4.3f 2.4.2f 2.4.10f 2.4.1f 2.4.0-RC1f# 2.4.0-BETA2f    2.0.10h
    yj[L=. ~pbTF8*|n`R@2$qbSD5&o_QC5'








x
j
\
N
@
2
$

									s	e	W	I	;	-		}oaSE7)	}n_P>/pbN:&	xj\M>/ |m^O@1"n`QB3$tfXF8*           5.0.13iG 5.0.12iH 5.0.11iI 5.0.10iJ 5.0.1iS 5.0.0iT 4.2.x-deviU 4.2.9i^ 4.2.8i_ 4.2.7i` 4.2.6ia 4.2.5ib 4.2.4ic 4.2.3id 4.2.2ie 4.2.19 4.2.18 4.2.17iV 4.2.16iW 4.2.15iX 4.2.14iY 4.2.13iZ 4.2.12i[ 4.2.11i\ 4.2.10i] 4.2.1if# 4.2.0-BETA1ih 4.2.0ig 4.1.x-devii 4.1.9i 4.1.8i 4.1.7i 4.1.6i 4.1.5i 4.1.4i 4.1.31ij 4.1.30ik 4.1.3i 4.1.29il 4.1.28im 4.1.27in 4.1.26io 4.1.25ip 4.1.24iq 4.1.23ir 4.1.22is 4.1.21it 4.1.20iu 4.1.2i 4.1.19iv 4.1.18iw 4.1.17ix 4.1.16iy 4.1.15iz 4.1.14i{ 4.1.13i| 4.1.12i} 4.1.11i~ 4.1.10i 4.1.1i 4.1.0i 4.0.x-devi 4.0.9i 4.0.8i 4.0.7i 4.0.6i 4.0.5i 4.0.4i 4.0.3i 4.0.2i 4.0.11i 4.0.10i 4.0.1i# 4.0.0-BETA4i# 4.0.0-BETA3i# 4.0.0-BETA2i 4.0.0i! dev-masterhH 3.1.x-devƧ 3.0.x-devhI 3.0.2 3.0.1Ʃ# 3.0.0-BETA1$ 3.0.0ƪ 2.8.x-devhJ 2.8.2ƭ 2.8.1Ʈ# 2.8.0-BETA1$ 2.8.0Ư 2.7.x-devhK 2.7.9Ʋ 2.7.8Ƴ 2.7.7ƴ 2.7.6$ 2.7.5$ 2.7.4hL 2.7.3hM 2.7.2hN 2.7.1hO# 2.7.0-BETA2hQ# 2.7.0-BETA1hR 2.7.0hP 2.6.x-devhS 2.6.9hV 2.6.8hW 2.6.7hX 2.6.6hY 2.6.5hZ 2.6.4h[ 2.6.3h\ 2.6.2h] 2.6.13ƿ 2.6.12 2.6.11hT 2.6.10hU 2.6.1h^# 2.6.0-BETA2h`# 2.6.0-BETA1ha 2.6.0h_ 2.5.x-devhb 2.5.9hf 2.5.8hg 2.5.7hh 2.5.6hi 2.5.5hj 2.5.4hk 2.5.3hl 2.5.2hm 2.5.12hc 2.5.11hd 2.5.10he 2.5.1hn 2.5.0-RC1hp# 2.5.0-BETA2hq# 2.5.0-BETA1hr 2.5.0ho 2.4.x-devhs 2.4.9hu 2.4.8hv 2.4.7hw 2.4.6hx 2.4.5hy 2.4.4hz 2.4.3h{ 2.4.2h| 2.4.10ht 2.4.1h} 2.4.0-RC1h# 2.4.0-BETA2h# 2.4.0-BETA1h 2.4.0h~ 2.3.x-devh 2.3.9h 2.3.8h 2.3.7h 2.3.6h 2.3.5h 2.3.4h 2.3.37 2.3.36 2.3.35 2.3.34$ 2.3.33$ 2.3.32h 2.3.31h 2.3.30h 2.3.3h 2.3.29h 2.3.28h 2.3.27h 2.3.26h 2.3.25h 2.3.24h 2.3.23h 2.3.22h 2.3.21h 2.3.20h 2.3.2h 2.3.19h 2.3.18h 2.3.17h 2.3.16h 2.3.15h 2.3.14h 2.3.13h 2.3.12h 2.3.11h 2.3.10h 2.3.1h 2.3.0h 2.2.x-devh 2.2.9h 2.2.8h 2.2.7h 2.2.6h 2.2.5h 2.2.4h 2.2.3h 2.2.2h 2.2.11h 2.2.10h 2.2.1h 2.2.0h 2.1.x-devh 2.1.9h 2.1.8h 2.1.7h 2.1.6h 2.1.5h 2.1.4h 2.1.3h 2.1.2h 2.1.13h 2.1.12h 2.1.11h 2.1.10h 2.1.1h 2.1.0h 2.0.x-devh 2.0.9h 2.0.7h 2.0.6h 2.0.5h 2.0.4h 2.0.25h 2.0.24h 2.0.23h 2.0.22h 2.0.21h 2.0.20h 2.0.19h 2.0.18h 2.0.17h 2.0.16h 2.0.15h 2.0.14h 2.0.13h 5.0.14iF
   zk\M>/ }oaSA3%o_O?/}k\G8(~o`N;(









r
_
Q
B
4
&


										x	j	\	N	@	2	$		vgUD5	pbTF8*{m[H:%`H6(vhYI;-rdVG8)vgXI:+ 1.1.6j 1.1.5j 1.1.4j 1.1.31h 1.1.30j 1.1.3j 1.1.29j 1.1.28j 1.1.27j 1.1.26j 1.1.25j 1.1.24j 1.1.23j 1.1.22j 1.1.21j 1.1.20j 1.1.2j 1.1.18j 1.1.17j 1.1.16j 1.1.15j 1.1.14j 1.1.13j 1.1.12j 1.1.11j 1.1.10j 1.1.1j 1.1.0j 1.0.6j 1.0.5j 1.0.4j 1.0.3j 1.0.2j 1.0.1j 1.0.0j! dev-masterj~ 1.9.0j 1.8.0j 1.7.0j 1.6.0j 1.5.0j 1.4.0j 1.3.0j 1.21.0T 1.20.0j 1.2.0j 1.19.0j 1.18.0j 1.17.0j 1.16.0j 1.15.0j 1.14.0j 1.13.0j 1.12.0j 1.11.0j 1.10.0j 1.1.0j 1.0.1j 1.0.0j dev-php7) dev-php-parser'I dev-opis-comparison-and-bugfix! dev-masteri; dev-fix-handle-bindingsi 2.2.x-devi 2.2.01 2.1.x-dev 2.1.0i 2.0.x-dev% 2.0.0-beta.1i% 2.0.0-alpha2i 2.0.0i! 2.0-alpha1i 1.0.x-devi 1.0.2i 1.0.1i 1.0.0i 0.9.2i 0.9.1i 0.9.0i 0.8.x-devi 0.8.0i#C dev-nicholas-grekas-xor-fixi! dev-masteri 1.0.x-devi 1.0.4i 1.0.3i 1.0.2i 1.0.1i 1.0.0i; dev-pretty-page-refreshi dev-php7i! dev-masteri"A dev-feature/link-to-googlei9 dev-feature/frame-argsi 2.0.x-dev؊% 2.0.0-alpha2،% 2.0.0-alpha1؍ 2.0.0؋ 1.x-dev؎ 1.2.x-devi 1.1.9ؐ 1.1.8ؑ 1.1.7i 1.1.6i 1.1.5i 1.1.4i 1.1.3i 1.1.2i 1.1.10؏ 1.1.1i 1.1.0-rci 1.1.0i 1.0.9i 1.0.8i 1.0.7i 1.0.6i 1.0.5i 1.0.4i 1.0.3i 1.0.10i 1.0.1i 1.0.0i 0.9.0i 0.8.4i! dev-masteri 1.0.9i 1.0.8i 1.0.7i 1.0.6i 1.0.5i 1.0.4i 1.0.3i 1.0.2i 1.0.10i 1.0.1i! dev-masteri 3.0.x-dev 3.0.0 2.0.x-devi 2.0.0i 1.4.x-devi 1.4.0i 1.3.0i 1.2.0i 1.1.0i 1.0.2i 1.0.1i 1.0.0i! dev-masteri 5.3.x-devE 5.2.x-devi 5.2.9~- 5.2.8~. 5.2.7G 5.2.6H 5.2.5I 5.2.4J 5.2.3K 5.2.2L 5.2.15 5.2.14 5.2.13 5.2.12 5.2.11~+ 5.2.10~, 5.2.1M# 5.2.0-beta1O 5.2.0N 5.1.x-devi 5.1.9i( 5.1.8i) 5.1.7i* 5.1.6i+ 5.1.5i, 5.1.4i- 5.1.3i. 5.1.29 5.1.28Q 5.1.27R 5.1.26S 5.1.25T 5.1.24U 5.1.23V 5.1.22 5.1.21  5.1.20 5.1.2i/ 5.1.19 5.1.18 5.1.17i  5.1.16i! 5.1.15i" 5.1.14i# 5.1.13i$ 5.1.12i% 5.1.11i& 5.1.10i' 5.1.1i0 5.1.0i1 5.0.x-devi2 5.0.9iK 5.0.8iL 5.0.7iM 5.0.6iN 5.0.5iO 5.0.4iP 5.0.35 5.0.34o 5.0.33i3 5.0.32i4 5.0.31i5 5.0.30i6 5.0.3iQ 5.0.29i7 5.0.28i8 5.0.27i9 5.0.26i: 5.0.25i; 5.0.24i< 5.0.23i= 5.0.22i> 5.0.21i? 5.0.20i@ 5.0.2iR 5.0.19iA 5.0.18iB 5.0.17iC 5.0.16iD  1.1.7j
    xiWH5"oaR@-saSE7)taSE7)seWI;-







y
j
[
L
=
.


									{	l	]	O	@	1	"		~l^J6$wcO=/ r^J<-|nZF8*~o]N9*	sdUF7(
xiZK<.              2.1.7o 2.1.6o 2.1.5o 2.1.4o 2.1.3o 2.1.2o 2.1.13o 2.1.12o 2.1.11o 2.1.10o 2.1.1o 2.1.0o 2.0.x-devo 2.0.9o 2.0.7o 2.0.6o 2.0.5o 2.0.4o 2.0.25o 2.0.24o 2.0.23o 2.0.22o 2.0.21o 2.0.20o 2.0.19o 2.0.18o 2.0.17o 2.0.16o 2.0.15o 2.0.14o 2.0.13o 2.0.12o 2.0.10o! dev-masterl' dev-fix-11341m# 3.1.x-devz 3.0.x-devl 3.0.2 3.0.1z# 3.0.0-BETA1N 3.0.0z 2.8.x-devl 2.8.2 2.8.1z# 2.8.0-BETA1N 2.8.0z 2.7.x-devl 2.7.9 2.7.8z 2.7.7N 2.7.6 2.7.5C 2.7.4l 2.7.3l 2.7.2l 2.7.1l# 2.7.0-BETA2l# 2.7.0-BETA1l 2.7.0l 2.6.x-devl 2.6.9l 2.6.8l 2.6.7l 2.6.6l 2.6.5l 2.6.4l 2.6.3l 2.6.2l 2.6.13 2.6.12N 2.6.11l 2.6.10l 2.6.1l# 2.6.0-BETA2l# 2.6.0-BETA1l 2.6.0l 2.5.x-devl 2.5.9l 2.5.8l 2.5.7l 2.5.6l 2.5.5l 2.5.4l 2.5.3l 2.5.2l 2.5.12l 2.5.11l 2.5.10l 2.5.1l 2.5.0-RC1l# 2.5.0-BETA2l# 2.5.0-BETA1l 2.5.0l 2.4.x-devl 2.4.9l 2.4.8l 2.4.7l 2.4.6l 2.4.5l 2.4.4l 2.4.3l 2.4.2l 2.4.10l 2.4.1l 2.4.0-RC1l# 2.4.0-BETA2l# 2.4.0-BETA1m  2.4.0l 2.3.x-devm 2.3.9m 2.3.8m 2.3.7m 2.3.6m 2.3.5m 2.3.4m 2.3.37 2.3.36z 2.3.35N 2.3.34 2.3.33{ 2.3.32m 2.3.31m 2.3.30m 2.3.3m 2.3.29m 2.3.28m 2.3.27m 2.3.26m 2.3.25m	 2.3.24m
 2.3.23m 2.3.22m 2.3.21m 2.3.20m 2.3.2m  2.3.19m 2.3.18m 2.3.17m 2.3.16m 2.3.15m 2.3.14m 2.3.13m 2.3.12m 2.3.11m 2.3.10m 2.3.1m! 2.3.0m"- dev-php7-supportk"7 dev-opndkim-on-travisk#! dev-masterk 6.0.x-devk	 5.x-devk
 5.4.1k 5.4.0k 5.3.1k 5.3.0k 5.2.2k 5.2.1k 5.2.0k 5.1.0k 5.0.3k 5.0.2k 5.0.1k 5.0.0k 4.3.1k 4.3.0k 4.2.2k 4.2.1k 4.2.0k 4.1.8k 4.1.7k 4.1.6k 4.1.5k 4.1.4k  4.1.3k!! dev-masterk 1.0.x-devk 1.0.3k 1.0.2k 1.0.1k 1.0.0k/ dev-v1.1-sentinelj! dev-masterj/ dev-documentationj 1.1.x-devj 1.0.x-devj 1.0.3j 1.0.2j 1.0.1j 1.0.0j 0.8.x-devj 0.8.7j 0.8.6j 0.8.5j 0.8.4j 0.8.3j 0.8.2j 0.8.1j 0.8.0j 0.7.x-devj 0.7.3j 0.7.2j 0.7.1j 0.7.0j! dev-masterj 2.0.x-devj 2.0.1 2.0.0j 1.0.x-devj 1.0.1 1.0.0j 0.3.9j 0.3.8j 0.3.7j 0.3.6j 0.3.5j 0.3.10j 0.3.1j 0.3.0j! dev-noticej! dev-masterj 1.3.x-dev] 1.3.0^ 1.2.x-devj 1.2.6` 1.2.5 1.2.3j 1.2.2j 1.2.1j! 1.2.0-betaj 1.2.0j 1.1.x-devj 1.1.9j 2.1.8o
  |n`RD6$rdUF7(
scSC5'xj\N@2$seWI;-








o
a
S
E
7
)

										p	a	R	C	4	"	zgTE6'	seWI;-}oaSA3%wiZK<- zk\M>/!zl^P>0wiWI5!  2.5.11o 2.5.10o 2.5.1o 2.5.0-RC1o# 2.5.0-BETA2o# 2.5.0-BETA1o 2.5.0o 2.4.x-devo 2.4.9o 2.4.8p  2.4.7p 2.4.6p 2.4.5p 2.4.4p 2.4.3p 2.4.2p 2.4.10o 2.4.1p 2.4.0-RC1p	# 2.4.0-BETA2p
# 2.4.0-BETA1p 2.4.0p 2.3.x-devp 2.3.9p$ 2.3.8p% 2.3.7p& 2.3.6p' 2.3.5p( 2.3.4p) 2.3.37^ 2.3.36|~ 2.3.35| 2.3.34D 2.3.33 2.3.32p 2.3.31p 2.3.30p 2.3.3p* 2.3.29p 2.3.28p 2.3.27p 2.3.26p 2.3.25p 2.3.24p 2.3.23p 2.3.22p 2.3.21p 2.3.20p 2.3.2p+ 2.3.19p 2.3.18p 2.3.17p 2.3.16p 2.3.15p 2.3.14p 2.3.13p  2.3.12p! 2.3.11p" 2.3.10p# 2.3.1p, 2.3.0p- 2.2.x-devp. 2.2.9p1 2.2.8p2 2.2.7p3 2.2.6p4 2.2.5p5 2.2.4p6 2.2.3p7 2.2.2p8 2.2.11p/ 2.2.10p0 2.2.1p9 2.2.0p: 2.1.x-devp; 2.1.9p@ 2.1.8pA 2.1.7pB 2.1.6pC 2.1.5pD 2.1.4pE 2.1.3pF 2.1.2pG 2.1.13p< 2.1.12p= 2.1.11p> 2.1.10p? 2.1.1pH 2.1.0pI 2.0.x-devpJ 2.0.9pZ 2.0.7p[ 2.0.6p\ 2.0.5p] 2.0.4p^ 2.0.25pK 2.0.24pL 2.0.23pM 2.0.22pN 2.0.21pO 2.0.20pP 2.0.19pQ 2.0.18pR 2.0.17pS 2.0.16pT 2.0.15pU 2.0.14pV 2.0.13pW 2.0.12pX 2.0.10pY! dev-masteroE 3.1.x-dev{ 3.0.x-devoF 3.0.2b 3.0.1{# 3.0.0-BETA1Bd 3.0.0{ 2.8.x-devoG 2.8.2z 2.8.1{# 2.8.0-BETA1Bf 2.8.0{ 2.7.x-devoH 2.7.9 2.7.8{ 2.7.7Bh 2.7.6z 2.7.51 2.7.4oI 2.7.3oJ 2.7.2oK 2.7.1oL# 2.7.0-BETA2oN# 2.7.0-BETA1oO 2.7.0oM 2.6.x-devoP 2.6.9oS 2.6.8oT 2.6.7oU 2.6.6oV 2.6.5oW 2.6.4oX 2.6.3oY 2.6.2oZ 2.6.13Ì 2.6.12Bs 2.6.11oQ 2.6.10oR 2.6.1o[# 2.6.0-BETA2o]# 2.6.0-BETA1o^ 2.6.0o\ 2.5.x-devo_ 2.5.9oc 2.5.8od 2.5.7oe 2.5.6of 2.5.5og 2.5.4oh 2.5.3oi 2.5.2oj 2.5.12o` 2.5.11oa 2.5.10ob 2.5.1ok 2.5.0-RC1om# 2.5.0-BETA2on# 2.5.0-BETA1oo 2.5.0ol 2.4.x-devop 2.4.9or 2.4.8os 2.4.7ot 2.4.6ou 2.4.5ov 2.4.4ow 2.4.3ox 2.4.2oy 2.4.10oq 2.4.1oz 2.4.0-RC1o|# 2.4.0-BETA2o}# 2.4.0-BETA1o~ 2.4.0o{ 2.3.x-devo 2.3.9o 2.3.8o 2.3.7o 2.3.6o 2.3.5o 2.3.4o 2.3.37ý 2.3.36{ 2.3.35B 2.3.34 2.3.33i 2.3.32o 2.3.31o 2.3.30o 2.3.3o 2.3.29o 2.3.28o 2.3.27o 2.3.26o 2.3.25o 2.3.24o 2.3.23o 2.3.22o 2.3.21o 2.3.20o 2.3.2o 2.3.19o 2.3.18o 2.3.17o 2.3.16o 2.3.15o 2.3.14o 2.3.13o 2.3.12o 2.3.11o 2.3.10o 2.3.1o 2.3.0o 2.2.x-devo 2.2.9o 2.2.8o 2.2.7o 2.2.6o 2.2.5o 2.2.4o 2.2.3o 2.2.2o 2.2.11o 2.2.10o 2.2.1o 2.2.0o 2.1.x-devo    2.1.9o
    ~p\H:+zlXD6(|m[L7(weWH:,~paRC5'








}
n
_
O
?
1
#

									y	k	]	O	@	1	"		zk\J7{gTA3%	}oaSD5'~pbTE6'
~pbTB4!xj\N@2$|m^O=)
             1.3-beta2su 1.3-beta1sv 1.3sp! dev-masterr# dev-developr 2.3.x-devr 2.3.5 2.3.4 2.3.3 2.3.2r 2.3.1r 2.3.0r 2.2.2r 2.2.1r 2.2.0r 2.1.4r 2.1.3r 2.1.2r 2.1.1r 2.1.0r 2.0.9r 2.0.8r 2.0.7r 2.0.6r 2.0.5r 2.0.4r 2.0.3r 2.0.2r 2.0.17r 2.0.16r 2.0.15r 2.0.14r 2.0.13r 2.0.12r 2.0.11r 2.0.10r 2.0.1r% 2.0.0-beta.2r! 2.0.0-betar 2.0.0r 1.6.x-devr 1.6.5r 1.6.4r 1.6.3r 1.6.2r 1.6.1r 1.6.0r 1.5.9r 1.5.8r 1.5.7r 1.5.6r 1.5.5r 1.5.4r 1.5.3r 1.5.2r 1.5.13r 1.5.12r 1.5.11r 1.5.10r 1.5.1r 1.5.0r 1.4.5r 1.4.4r 1.4.3r 1.4.2r 1.4.1r 1.4.0 1.3.9r 1.3.8r 1.3.7r 1.3.6r 1.3.5r 1.3.4r 1.3.3r 1.3.2r 1.3.11r 1.3.10r 1.3.1r 1.3.0r 1.2.6r 1.2.5r 1.2.4r 1.2.3r 1.2.2r 1.2.1r 1.2.0r 1.1.5r 1.1.4r 1.1.3r 1.1.2r 1.1.1r 1.1.0r 1.0.1r 1.0.0r! dev-masterrC! dev-keyvalrM# dev-developrL) dev-bootstrap3rK 1.2.0rD 1.1.x-devrE 1.1.0rF 1.0.x-devrG 1.0.1rH! 1.0.0-rc.1rJ 1.0.0rI! dev-masterq{"A dev-expression-voter-optimq 3.1.x-dev3 3.0.x-devq| 3.0.2 3.0.15# 3.0.0-BETA1$ 3.0.06 2.8.x-devq} 2.8.29 2.8.1:# 2.8.0-BETA1$ 2.8.0; 2.7.x-devq~ 2.7.9> 2.7.8? 2.7.7@ 2.7.6  2.7.5Xd 2.7.4q 2.7.3q 2.7.2q 2.7.1q# 2.7.0-BETA2q# 2.7.0-BETA1q 2.7.0q 2.6.x-devq 2.6.9q 2.6.8q 2.6.7q 2.6.6q 2.6.5q 2.6.4q 2.6.3q 2.6.2q 2.6.13K 2.6.12L 2.6.11q 2.6.10q 2.6.1q# 2.6.0-BETA2q# 2.6.0-BETA1q 2.6.0q 2.5.x-devq 2.5.9q 2.5.8q 2.5.7q 2.5.6q 2.5.5q 2.5.4q 2.5.3q 2.5.2q 2.5.12q 2.5.11q 2.5.10q 2.5.1q 2.5.0-RC1q# 2.5.0-BETA2q# 2.5.0-BETA1q 2.5.0q 2.4.x-devq 2.4.9q 2.4.8q 2.4.7q 2.4.6q 2.4.5q 2.4.4q 2.4.3q 2.4.2q 2.4.10q 2.4.1q 2.4.0-RC1q# 2.4.0-BETA2q# 2.4.0-BETA1q 2.4.0q7 dev-session-listenersp`! dev-mastero' dev-fix-11341p_ 3.1.x-dev|8 3.0.x-devo 3.0.2 3.0.1|:# 3.0.0-BETA1|< 3.0.0|; 2.8.x-devo 2.8.2 2.8.1|># 2.8.0-BETA1|@ 2.8.0|? 2.7.x-devo 2.7.9  2.7.8|B 2.7.7|C 2.7.6 2.7.5 2.7.4o 2.7.3o 2.7.2o 2.7.1o# 2.7.0-BETA2o# 2.7.0-BETA1o 2.7.0o 2.6.x-devo 2.6.9o 2.6.8o 2.6.7o 2.6.6o 2.6.5o 2.6.4o 2.6.3o 2.6.2o 2.6.13- 2.6.12|N 2.6.11o 2.6.10o 2.6.1o# 2.6.0-BETA2o# 2.6.0-BETA1o 2.6.0o 2.5.x-devo 2.5.9o 2.5.8o 2.5.7o 2.5.6o 2.5.5o 2.5.4o 2.5.3o 2.5.2o
  qaRC4%qcUC5'	{i[M>/!sdUF7(
ufWI:+









x
f
X
D
0


										q	]	I	7	)		zlXD6'vhT@2$xiWH3${m_QB3!|pdXJ<*tbO<.  vdR@2$        # 2.5.0-beta1| 2.5.0| 2.4.x-dev| 2.4.3| 2.4.2| 2.4.1| 2.4.0-RC4| 2.4.0-RC3| 2.4.0-RC2| 2.4.0-RC1| 2.4.0| 2.3.x-dev| 2.3.0-RC3| 2.3.0-RC2| 2.3.0-RC1|# 2.3.0-BETA1| 2.3.0| 2.2.x-dev| 2.2.3| 2.2.2| 2.2.1|! 2.2.0BETA2|! 2.2.0BETA1| 2.2.0-RC5| 2.2.0-RC4| 2.2.0-RC3| 2.2.0-RC1| 2.2.0| 2.1.x-dev| 2.1.4| 2.1.3| 2.0.x-dev|9 dev-wrapped-collection|! dev-master| 1.3.x-dev| 1.3.0| 1.2.1| 1.2| 1.1| 1.0|! dev-master| 1.7.x-dev+ 1.6.x-dev6 1.6.0- 1.5.x-dev| 1.5.4/ 1.5.30 1.5.21 1.5.16 1.5.0k 1.4.x-dev| 1.4.46 1.4.3k 1.4.2| 1.4.1| 1.4.0| 1.3.x-dev| 1.3.2| 1.3.1| 1.3.0| 1.2.0| 1.1| 1.0|! dev-master{ 3.1.x-dev 3.0.x-dev{ 3.0.2| 3.0.1# 3.0.0-BETA1 3.0.0 2.8.x-dev{ 2.8.2 2.8.1# 2.8.0-BETA1 2.8.0 2.7.x-dev{ 2.7.9 2.7.8 2.7.7 2.7.6 2.7.5 2.7.4{ 2.7.3{ 2.7.2{ 2.7.1{# 2.7.0-BETA2{# 2.7.0-BETA1{ 2.7.0{ 2.6.x-dev{ 2.6.9| 2.6.8| 2.6.7| 2.6.6| 2.6.5| 2.6.4| 2.6.3| 2.6.2| 2.6.13 2.6.12 2.6.11{ 2.6.10|  2.6.1|	# 2.6.0-BETA2|# 2.6.0-BETA1| 2.6.0|
 2.5.x-dev| 2.5.9| 2.5.8| 2.5.7| 2.5.6| 2.5.5| 2.5.4| 2.5.3| 2.5.2| 2.5.12| 2.5.11| 2.5.10| 2.5.1| 2.5.0-RC1|# 2.5.0-BETA2|# 2.5.0-BETA1| 2.5.0| 2.4.x-dev| 2.4.9|  2.4.8|! 2.4.7|" 2.4.6|# 2.4.5|$ 2.4.4|% 2.4.3|& 2.4.2|' 2.4.10| 2.4.1|( 2.4.0-RC1|*# 2.4.0-BETA2|+# 2.4.0-BETA1|, 2.4.0|) 2.3.x-dev|- 2.3.9|E 2.3.8|F 2.3.7|G 2.3.6|H 2.3.5|I 2.3.4|J 2.3.37 2.3.36 2.3.35 2.3.34 2.3.33W 2.3.32|. 2.3.31|/ 2.3.30|0 2.3.3|K 2.3.29|1 2.3.28|2 2.3.27|3 2.3.26|4 2.3.25|5 2.3.24|6 2.3.23|7 2.3.22|8 2.3.21|9 2.3.20|: 2.3.2|L 2.3.19|; 2.3.18|< 2.3.17|= 2.3.16|> 2.3.15|? 2.3.14|@ 2.3.13|A 2.3.12|B 2.3.11|C 2.3.10|D 2.3.1|M 2.3.0|N 2.2.x-dev|O 2.2.9|R 2.2.8|S 2.2.7|T 2.2.6|U 2.2.5|V 2.2.4|W 2.2.3|X 2.2.2|Y 2.2.11|P 2.2.10|Q 2.2.1|Z 2.2.0|[ 2.1.x-dev|\ 2.1.9|a 2.1.8|b 2.1.7|c 2.1.6|d 2.1.5|e 2.1.4|f 2.1.3|g 2.1.2|h 2.1.13|] 2.1.12|^ 2.1.11|_ 2.1.10|` 2.1.1|i 2.1.0|j 2.0.x-dev|k 2.0.9|| 2.0.7|} 2.0.25|l 2.0.24|m 2.0.23|n 2.0.22|o 2.0.21|p 2.0.20|q 2.0.19|r 2.0.18|s 2.0.17|t 2.0.16|u 2.0.15|v 2.0.14|w 2.0.13|x 2.0.12|y 2.0.11|z 2.0.10|{ dev-libsw 1.6.0P 1.5.0sl 1.4.x-devsm 1.4.1sn 1.4.0so 1.3-rc2sq 1.3-rc1sr 1.3-beta5ss    2.5.1|
    zn`N?,ygYK=+	{m[M9%q_M8#r]H3	






w
d
C
2
					H	,sL.{l]N?0!r_QC5'paRD6(qbSD5&	|m^O@1"~oaSE7)        2.8.14b 2.8.13c 2.8.12d 2.8.10e 2.8.1n 2.8.0o 2.7.9 2.7.8 2.7.7 2.7.6 2.7.5 2.7.4 2.7.3 2.7.27p 2.7.26q 2.7.25r 2.7.24s 2.7.23t 2.7.22u 2.7.21v 2.7.20w 2.7.2 2.7.19x 2.7.18y 2.7.17z 2.7.16{ 2.7.15| 2.7.14} 2.7.13~ 2.7.12 2.7.11 2.7.10 2.7.1 2.7.0 2.6.9 2.6.8 2.6.7 2.6.6 2.6.5 2.6.4 2.6.3 2.6.2 2.6.16 2.6.15 2.6.14 2.6.13 2.6.12 2.6.11 2.6.10 2.6.1 2.6.0 2.5.4 2.5.3 2.5.2 2.5.1 2.5.0 2.4.9 2.4.8 2.4.7 2.4.6 2.4.5 2.4.4 2.4.3 2.4.2 2.4.12 2.4.11 2.4.10 2.4.1 2.4.0 2.3.4 2.3.3 2.3.2 2.3.1 2.3.0 2.2.1 2.2.0 2.1.2 2.1.1 2.1.0 2.0.3 2.0.2 2.0.1 2.0.0! dev-master# dev-Smarty2$ 3.1.x-dev 3.1.29 3.1.28 3.1.27 3.1.26 3.1.25 3.1.24 3.1.23 3.1.21 3.1.20 3.1.19 3.1.18 3.1.17 3.1.16 3.1.15 3.1.14 3.1.13 3.1.12 3.1.11 2.6.29 2.6.28 2.6.27  2.6.26! 2.6.25" 2.6.24#+Q dev-prototype/merge-detach-removal7 dev-persister-factory}&I dev-one-to-many-orphan-removal}! dev-master}9 dev-mapping-as-objects}% dev-join-poc}<u dev-hotfix/DDC-3078-slc-cache-interface-ctor-removal}4e dev-hotfix/DDC-3022-wrong-arbitrary-join-sql}3 dev-hotfix/DDC-2965}E dev-hotfix/#1342-paginator-functional-test-integration-take2}5 dev-fix-ddc2862-test}-U dev-feature/globally-lazy-properties9 dev-custom-collections} = dev-config-filter-params}- dev-ValueObjects} dev-Test} = dev-ImproveErrorMessages}! dev-DDC-93}# dev-DDC-720}# dev-DDC-551}% dev-DDC-2524M% dev-DDC-2390}% dev-DDC-2055}% dev-DDC-1889}% dev-DDC-1888}% dev-DDC-1766}% dev-DDC-1652}% dev-DDC-1637}% dev-DDC-1544}% dev-DDC-1509}% dev-DDC-1385}% dev-DDC-1383}# dev-DCOM-93} 2.6.x-dev} 2.5.x-dev} 2.5.4 2.5.3 2.5.2L 2.5.1}# 2.5.0-beta1}% 2.5.0-alpha2}% 2.5.0-alpha1} 2.5.0-RC2} 2.5.0-RC1} 2.5.0} 2.4.x-dev} 2.4.8} 2.4.7} 2.4.6} 2.4.5} 2.4.4} 2.4.3} 2.4.2} 2.4.1} 2.4.0-RC2} 2.4.0-RC1}# 2.4.0-BETA2}# 2.4.0-BETA1} 2.4.0} 2.3.x-dev} 2.3.6} 2.3.5} 2.3.4} 2.3.3} 2.3.2} 2.3.1} 2.3.0-RC4} 2.3.0-RC3} 2.3.0-RC2} 2.3.0-RC1}# 2.3.0-BETA1} 2.3.0} 2.2.x-dev} 2.2.3} 2.2.2} 2.2.1} 2.2.0-RC1}# 2.2.0-BETA2}# 2.2.0-BETA1} 2.2.0} 2.1.x-dev} 2.1.7} 2.1.6} 2.1.5} 2.1.4} 2.1.3} 2.0.x-dev}! dev-master| 1.1.x-devM 1.1.0M 1.0.x-dev| 1.0.1| 1.0|! dev-master| 2.7.x-devz 2.6.x-dev| 2.6.1| 2.6.0} 2.5.x-dev| 2.5.3 2.8.15a
    xhXH8* wi[M?-o_O?/}oaSE7)xiZK<&





q
J
;
,

										t	e	V	G	8	%	veUD3"zk\M>/
rbRB2#tdTD4$ueUE5%zfWH9*vgXI:+        2.2.0 2 2.1.1 3 2.1.0 4 2.0.6 5 2.0.5 6 2.0.4 7 2.0.3 8 2.0.2 9 2.0.1 : 1.1.7 ; 1.1.6 < 1.1.5 = 1.1.4 > 1.1.3 ? 1.1.2 @ 1.1.1 A 1.1.0 B 1.0.9 C 1.0.8 D 1.0.7 E 1.0.6 F 1.0.5 G 1.0.4 H 1.0.3 I 1.0.2 J 1.0.1 K 1.0.0 L! dev-master  1.0.9  1.0.8  1.0.7  1.0.6  1.0.55 1.0.54  1.0.53  1.0.52  1.0.51  1.0.50  1.0.5  1.0.49  1.0.48  1.0.47  1.0.46  1.0.45  1.0.44  1.0.43  1.0.42  1.0.41  1.0.40  1.0.4  1.0.39  1.0.38  1.0.37  1.0.36  1.0.35  1.0.34  1.0.33  1.0.32  1.0.31  1.0.30  1.0.3  1.0.29  1.0.28  1.0.27  1.0.26  1.0.25  1.0.24  1.0.23  1.0.22  1.0.21  1.0.20  1.0.2  1.0.19  1.0.18  1.0.17  1.0.16  1.0.15  1.0.14  1.0.13  1.0.12  1.0.11  1.0.10  1.0.1  1.0.0 - dev-php7-support f! dev-master I 2.x-dev J 2.3.1 K 2.3.0 L 2.2.0 M 2.1.0 N 2.0.0 O 1.x-dev P 1.8.7 \ 1.7.6 ] 1.7.5 ^ 1.6.5 _ 1.5.4 ` 1.5.3 a 1.4.3 b 1.3.3 c 1.2.3 d 1.14.0 Q 1.13.17 R 1.12.16 S 1.12.15 T 1.11.8 Z 1.11.15 U 1.11.14 V 1.11.13 W 1.11.12 X 1.11.11 Y 1.10.8 [ 1.0.0 e! dev-master "? dev-feature/border-filter 3# dev-develop 2 0.7.x-dev   0.6.3 0.6.2 ! 0.6.1 " 0.6.0 # 0.5.x-dev $ 0.5.0 % 0.4.1 & 0.4.0 ' 0.3.1 ( 0.3.0 ) 0.2.8 * 0.2.7 + 0.2.6 , 0.2.5 - 0.2.4 . 0.2.3 / 0.2.1 0 0.2.0 1&I dev-streamwrapper-check-status!? dev-s3-streamwrapper-size7 dev-possible-phar-fix!= dev-no-max-constraint-v33! dev-master>#C dev-json-compile-path-fixes3 dev-custom-protocol' dev-604-fixes 3.9.4 3.9.3 3.9.2: 3.9.1; 3.9.0< 3.8.2= 3.8.1> 3.8.0? 3.7.0@ 3.6.0A 3.5.0B 3.4.1C 3.4.0D 3.3.8? 3.3.7@ 3.3.6A 3.3.5B 3.3.4C 3.3.3D 3.3.2E 3.3.1F 3.3.0G 3.2.6H 3.2.5I 3.2.4J 3.2.3K 3.2.2L 3.2.1M 3.2.0N 3.15.1 3.15.0 3.14.2 3.14.1 3.14.0 3.13.1 3.13.0 3.12.2 3.12.1 3.12.0 3.11.7 3.11.6 3.11.5 3.11.4 3.11.3 3.11.2 3.11.1 3.11.0 3.10.1 3.10.0 3.1.0O 3.0.x-devP 3.0.7Q 3.0.6R 3.0.5S 3.0.4T 3.0.3U 3.0.2V 3.0.1W% 3.0.0-beta.1Y 3.0.0X 2.8.x-devZ 2.8.9f 2.8.8g 2.8.7h 2.8.6i 2.8.5j 2.8.4k 2.8.3l 2.8.27 2.8.26 2.8.25 2.8.24 2.8.23 2.8.22a 2.8.21[ 2.8.20\ 2.8.2m 2.8.19] 2.8.18^ 2.8.17_ 2.2.1 1
    u`DydUF7(
whYF7(
vfVF6&~oYC.









z
k
W
G
7
&

									r	b	R	?	,		n^N>.sfYJ;(jO@1"}n_PA.zjZJ:*
}n_PA2~o`QB3$  ! dev-master  2.2.0 2.1.0  2.0.0  1.x-dev  1.9.0  1.8.1  1.8.0  1.7.0  1.6.0  1.5.2  1.5.1  1.5.0  1.4.0  1.3.0  1.2.2  1.2.1  1.2.0  1.10.0  1.1.0 ! 1.0.0-rc.1  1.0.0 ! dev-master  1.0.x-dev  1.0.9  1.0.8  1.0.7  1.0.6  1.0.5  1.0.4  1.0.3  1.0.23ϻ 1.0.22- 1.0.21  1.0.20  1.0.2  1.0.19  1.0.18  1.0.17  1.0.16  1.0.15  1.0.14  1.0.13  1.0.12  1.0.11  1.0.10  1.0.1  1.0.0 != dev-set-blog-description 7 dev-permalinks-option ! dev-master  3.1.x-dev 3.1.1 3.1.0 3.0.x-dev  3.0.2 3.0.1 3.0.0  2.7.0  2.6.0  2.5.4  2.5.3  2.5.2  2.5.1  2.5.0  2.4.0  2.3.0  2.2.0  2.1.3  2.1.2  2.1.1  2.1.0  2.0.0 / dev-userFuncArrayU+ dev-missingType+ dev-missingDocs! dev-master # dev-longvar ) dev-listDiffer / dev-fullQualified) dev-emptyLines) dev-composerMd  2.1.x-dev  2.0.0  1.0.1  1.0  0.9  0.8  0.7  0.6  0.5  0.4 ! dev-master ! 1.12.x-dev  1.12.9  1.12.8   1.12.7.1 ! 1.12.7 " 1.12.6 # 1.12.5 $ 1.12.4 % 1.12.3 & 1.12.2 ' 1.12.17G 1.12.16  1.12.15  1.12.14  1.12.13  1.12.12  1.12.11  1.12.10  1.12.1 ( 1.12.0rc4 * 1.12.0rc3 + 1.12.0rc2 , 1.12.0rc1 - 1.12.0 ) 1.11.9 3 1.11.8 4 1.11.7 5 1.11.6 6 1.11.5 7 1.11.4 8 1.11.3 9 1.11.2 : 1.11.14 . 1.11.13 / 1.11.12 0 1.11.11 1 1.11.10 2 1.11.1 ; 1.11.0 <! dev-master  1.1.1n 1.1.0  1.0.1  1.0.0 ! dev-master z 1.3.0v 1.2.0x 1.1.0y 1.0.x-dev { 1.0.2{ 1.0.1 |# 1.0.0-beta2 ~# 1.0.0-beta1 % 1.0.0-alpha2 % 1.0.0-alpha1  1.0.0 } 0.9.0  0.8.1  0.8.0  0.7.2  0.7.1  0.7.0  0.6.0  0.5.0  0.4.0  0.3 ! 0.12.x-dev  0.12.1  0.12.0  0.11.0  0.10.1  0.10.0  0.1 ! dev-master # dev-develop  2.0.x-dev  1.6.1n 1.6.0  1.5.1  1.5.0  1.4.0  1.3.0  1.2.1  1.2.0  1.1.0  1.0.x-dev  1.0.2  1.0.1  1.0.0 ! dev-master { 1.3.x-dev | 1.3.0 } 1.0.x-dev ~ 1.0.0 ! dev-master s) dev-cc_support z 0.5.0 t 0.4.0 u 0.3.0 v 0.2.0 w 0.1.0 x 0.0.1 y# dev-v3_betaL5 dev-v3.0.0_tiny_http N dev-statsM! dev-master -1 dev-hipchat_travis O"? dev-asm_suppressions_postG!= dev-asm_suppressions_getK$C dev-asm_suppressions_deleteJ1 dev-asm_groups_getI# dev-apikeys M- dev-api_keys_getH' dev-406-errorF 4.0.2$ 4.0.1% 4.0.0& 3.2.0 . 3.1.0 / 1.0.0 A
    ufWH9*{k[K;,}m^O@1" paRC4!qbRB2"







{
l
]
H
3

										t	e	V	F	6	&		wgWG7'{fWG7'	}m]M=.l]N?,tdUB3$o`PA2#wgWG7'               4.1.21  4.1.20  4.1.2  4.1.19  4.1.18  4.1.17  4.1.16  4.1.15  4.1.14  4.1.13  4.1.12  4.1.11  4.1.10  4.1.1  4.1.0  4.0.x-dev  4.0.9  4.0.8  4.0.7  4.0.6  4.0.5  4.0.4  4.0.3  4.0.2  4.0.10  4.0.1 # 4.0.0-BETA4 # 4.0.0-BETA3 # 4.0.0-BETA2  4.0.0  1.1.0  1.0.0 ! dev-master  5.3.x-devC 5.2.x-dev  5.2.7E 5.2.6F 5.2.0G 5.1.x-dev  5.1.8  5.1.28I 5.1.25J 5.1.22 5.1.20͑ 5.1.16  5.1.13  5.1.1  5.0.x-dev  5.0.33  5.0.0 ! dev-master B 5.3.x-devx 5.2.x-dev C 5.2.7z 5.2.6{ 5.2.0| 5.1.x-dev D 5.1.8 G 5.1.6 H 5.1.28~ 5.1.25 5.1.22 5.1.20 5.1.2 I 5.1.16 E 5.1.13 F 5.1.1 J 5.0.x-dev K 5.0.4 Q 5.0.33 L 5.0.28 M 5.0.26 N 5.0.25 O 5.0.22 P 5.0.0 R 4.2.x-dev S 4.2.9 W 4.2.8 X 4.2.7 Y 4.2.6 Z 4.2.5 [ 4.2.4 \ 4.2.3 ] 4.2.2 ^ 4.2.17 T 4.2.16 U 4.2.12 V 4.2.1 _# 4.2.0-BETA1 ` 4.1.x-dev a 4.1.9 w 4.1.8 x 4.1.7 y 4.1.6 z 4.1.5 { 4.1.4 | 4.1.30 b 4.1.3 } 4.1.29 c 4.1.28 d 4.1.27 e 4.1.26 f 4.1.25 g 4.1.24 h 4.1.23 i 4.1.22 j 4.1.21 k 4.1.20 l 4.1.2 ~ 4.1.19 m 4.1.18 n 4.1.17 o 4.1.16 p 4.1.15 q 4.1.14 r 4.1.13 s 4.1.12 t 4.1.11 u 4.1.10 v 4.1.1  4.1.0  4.0.x-dev  4.0.9  4.0.8  4.0.7  4.0.6  4.0.5  4.0.4  4.0.3  4.0.2  4.0.10  4.0.1 # 4.0.0-BETA4 # 4.0.0-BETA3 # 4.0.0-BETA2  4.0.0  1.1.0  1.0.0 ! dev-master  5.3.x-dev 5.2.x-dev  5.2.7! 5.2.6" 5.2.0# 5.1.x-dev  5.1.8  5.1.6  5.1.28% 5.1.25& 5.1.22' 5.1.20( 5.1.2  5.1.16  5.1.13  5.1.1  5.0.x-dev  5.0.4   5.0.33  5.0.28  5.0.26  5.0.25  5.0.22  5.0.0  4.2.x-dev  4.2.9  4.2.8  4.2.7  4.2.6 	 4.2.5 
 4.2.4  4.2.3  4.2.2  4.2.17  4.2.16  4.2.12  4.2.1 # 4.2.0-BETA1  4.1.x-dev  4.1.9 & 4.1.8 ' 4.1.7 ( 4.1.6 ) 4.1.5 * 4.1.4 + 4.1.30  4.1.3 , 4.1.29  4.1.28  4.1.27  4.1.26  4.1.25  4.1.24  4.1.23  4.1.22  4.1.21  4.1.20  4.1.2 - 4.1.19  4.1.18  4.1.17  4.1.16  4.1.15   4.1.14 ! 4.1.13 " 4.1.12 # 4.1.11 $ 4.1.10 % 4.1.1 . 4.1.0 / 4.0.x-dev 0 4.0.9 2 4.0.8 3 4.0.7 4 4.0.6 5 4.0.5 6 4.0.4 7 4.0.3 8 4.0.2 9 4.0.10 1 4.0.1 :# 4.0.0-BETA4 <# 4.0.0-BETA3 =# 4.0.0-BETA2 > 4.0.0 ; 1.1.0 ?
   qaRC4%sdUF7(ueVF6&~o`QB3	{l]J;,








}
m
]
M
=
-

										s	d	Q	<	-		rcSC3#sdUB3$vgZ8zk[K<- sfWH9&
paNA2zgZK<-     3.1.1  3.1  3.0.x-dev  3.0.6  3.0.5  3.0.4  3.0.3  3.0.2  3.0.1  3.0  2.9.x-dev  2.9.2  2.9.1  2.9  2.8.x-dev  2.8.6  2.8.5  2.8.4  2.8.3  2.8.2  2.8.1  2.8  2.7.x-dev  2.7.1  2.7  2.6.x-dev  2.6.5  2.6.3  2.6.2  2.6.1  2.6  2.5.x-dev  2.5.1  2.5  2.3.x-dev  2.3.3  2.3.2  2.3.1  2.3  2.2.x-dev  2.2.3  2.2.2  2.2.1  2.2  2.1.x-dev  2.1.3  2.1.2  2.1.1  2.1  2.0.x-dev  2.0.9  2.0.8  2.0.7  2.0.6  2.0.5  2.0.4  2.0.3  2.0.2  2.0.11  2.0.10  2.0.1  2.0  1.5.2  1.5.1.3  1.5.1.2  1.5.1.1  1.5.1  1.5 % dev-v1.4-rc1 I! dev-master >(K dev-fix-add-admin-columns-error J!= dev-add-updated-messages H 1.4 ? 1.3.3 @ 1.3.2 A 1.3.1 B 1.3 C 1.2.3 D 1.2.2 E 1.2.1 F 1.2 G! dev-master  5.3.x-dev 5.2.x-dev  5.2.7 5.2.6 5.2.0 5.1.x-dev  5.1.8  5.1.6  5.1.28 5.1.25 5.1.22 5.1.20{ 5.1.2  5.1.16  5.1.13  5.1.1  5.0.x-dev  5.0.4  5.0.33  5.0.28  5.0.26  5.0.25  5.0.22  5.0.0  4.2.x-dev  4.2.9  4.2.8  4.2.7  4.2.6  4.2.5  4.2.4  4.2.3  4.2.2  4.2.17  4.2.16  4.2.12   4.2.1 	# 4.2.0-BETA1 
 4.1.x-dev  4.1.9 ! 4.1.8 " 4.1.7 # 4.1.6 $ 4.1.5 % 4.1.4 & 4.1.30  4.1.3 ' 4.1.29  4.1.28  4.1.27  4.1.26  4.1.25  4.1.24  4.1.23  4.1.22  4.1.21  4.1.20  4.1.2 ( 4.1.19  4.1.18  4.1.17  4.1.16  4.1.15  4.1.14  4.1.13  4.1.12  4.1.11  4.1.10   4.1.1 ) 4.1.0 * 4.0.x-dev + 4.0.9 - 4.0.8 . 4.0.7 / 4.0.6 0 4.0.5 1 4.0.4 2 4.0.3 3 4.0.2 4 4.0.10 , 4.0.1 5# 4.0.0-BETA4 7# 4.0.0-BETA3 8# 4.0.0-BETA2 9 4.0.0 6 1.1.2 : 1.1.1 ; 1.1.0 < 1.0.0 =! dev-master  5.3.x-devU 5.2.x-dev  5.2.7W 5.2.6X 5.2.0Y 5.1.x-dev  5.1.8  5.1.6  5.1.28[ 5.1.25\ 5.1.22 5.1.20u 5.1.2  5.1.16  5.1.13  5.1.1  5.0.x-dev  5.0.4  5.0.33  5.0.28  5.0.26  5.0.25  5.0.22  5.0.0  4.2.x-dev  4.2.9  4.2.8  4.2.7  4.2.6  4.2.5  4.2.4  4.2.3  4.2.2  4.2.17  4.2.16  4.2.12  4.2.1 # 4.2.0-BETA1  4.1.x-dev  4.1.9  4.1.8  4.1.7  4.1.6  4.1.5  4.1.4  4.1.30  4.1.3  4.1.29  4.1.28  4.1.27  4.1.26  4.1.25  4.1.24  4.1.23   3.1.2 
    ubUF7${k[L=.teVG8)qbSD5"~k^O?0!








z
k
\
M
>
+


 								}	n	_	P	A	-			 yVB${k[K<- xiZK<- teVC0wdUF3$whYJ;,~n^N>1"     ' 0.9.4-patch46 [ 0.9.4 \ 0.9.3 ] 0.9.2 ^ 0.9.1.1 _ 0.9.1 ` 0.9 a 0.11.0 0.10.5 T 0.10.4 U 0.10.3 V 0.10.2 W 0.10.1 X 0.10.0 Y! dev-master % dev-issue/20 *O dev-feature/pending-pull-requests # dev-develop ! 2014-12-11  0.9.0 0.8.0y 0.7.1  0.7.0  0.6.0  0.5.0  0.4.0  0.3.0 	  	  	  	  ! dev-master  2.2.x-dev 2.2.0 2.1.x-dev  2.1.1 2.1.03 2.0.x-dev  2.0.1  2.0.0  1.1.x-dev  1.1.1  1.1.0  1.0.9  1.0.8  1.0.6  1.0.5  1.0.4  1.0.3  1.0.2  1.0.1  1.0.0 ! dev-master x 3.1.x-dev 3.0.x-dev y 3.0.2 3.0.1# 3.0.0-BETA1 3.0.0 2.8.x-dev z 2.8.2% 2.8.1# 2.8.0-BETA1 2.8.0 2.7.x-dev { 2.7.9* 2.7.8 2.7.7 2.7.6 2.7.5w 2.7.4 | 2.7.3 } 2.7.2 ~ 2.7.1 # 2.7.0-BETA2 # 2.7.0-BETA1  2.7.0  2.6.x-dev  2.6.9  2.6.8  2.6.7  2.6.6  2.6.5  2.6.4  2.6.3  2.6.2  2.6.137 2.6.12 2.6.11  2.6.10  2.6.1 # 2.6.0-BETA2 # 2.6.0-BETA1  2.6.0 5 dev-revert-20-master 2_ dev-protocol-relative-post-thumbnail-urls 5 dev-placeholderlinks ! dev-master "? dev-guap60/filters-filter  3.6.2C 3.6.1D 3.6.0E 3.5.0F 3.4.0  3.3.0  3.2.0  3.1.0  3.0.3  3.0.2  3.0.1  3.0.0 ! dev-master  0.2.1  0.2.0  0.1.2  0.1.1  0.1.0 ! dev-master K 4.4.x-dev 4.4.2j 4.4.1 4.4 4.3.x-dev L 4.3.3n 4.3.2 4.3.1 M 4.3 N 4.2.x-dev O 4.2.7s 4.2.6 4.2.5 P 4.2.4 Q 4.2.3 R 4.2.2 S 4.2.1 T 4.2 U 4.1.x-dev V 4.1.9 4.1.8 W 4.1.7 X 4.1.6 Y 4.1.5 Z 4.1.4 [ 4.1.3 \ 4.1.2 ] 4.1.10| 4.1.1 ^ 4.1 _ 4.0.x-dev ` 4.0.9 4.0.8 a 4.0.7 b 4.0.6 c 4.0.5 d 4.0.4 e 4.0.3 f 4.0.2 g 4.0.10 4.0.1 h 4.0 i 3.9.x-dev j 3.9.9 k 3.9.8 l 3.9.7 m 3.9.6 n 3.9.5 o 3.9.4 p 3.9.3 q 3.9.2 r 3.9.11 3.9.10 3.9.1 s 3.9 t 3.8.x-dev u 3.8.9 x 3.8.8 y 3.8.7 z 3.8.6 { 3.8.5 | 3.8.4 } 3.8.3 ~ 3.8.2  3.8.13 3.8.12 3.8.11 v 3.8.10 w 3.8.1  3.8  3.7.x-dev  3.7.9  3.7.8  3.7.7  3.7.6  3.7.5  3.7.4  3.7.3  3.7.2  3.7.13 3.7.12 3.7.11  3.7.10  3.7.1  3.7  3.6.x-dev  3.6.1  3.6  3.5.x-dev  3.5.2  3.5.1  3.5  3.4.x-dev  3.4.2  3.4.1  3.4  3.3.x-dev  3.3.3  3.3.2  3.3.1  3.3  3.2.x-dev  3.2.1  3.2  3.1.x-dev  3.1.4 
    ~o`QB3$teVG8)|mYJ;,xiUA-~o`Q>/






}
k
Y
J
:
*


										r	_	M	:	vgXI:+sdUF7({l]N?0	paRC4%qbSD5"vNA- xhXH8(   1.0.5 j 1.0.4 k 1.0.3 l 1.0.2 m 1.0.19 1.0.18 ] 1.0.17 ^ 1.0.16 _ 1.0.15 ` 1.0.14 a 1.0.13 b 1.0.12 c 1.0.11 d 1.0.10 e 1.0.1 n 1.0.0 o dev-trunk S(K dev-stories/AM/facebook_library V 2.0 T 1.0 U! dev-master O 1.0 P! dev-master K 1.2 L'I dev-tmp/travis-env-shenanigans ! dev-runkit ! dev-master != dev-feature/runkit-reduxx# dev-develop 3 dev-analysis-z9mbl5u3 dev-analysis-87aWQZt 0.7.x-dev 0.6.x-dev  0.6.1 0.6.0 0.5.2  0.5.1  0.5.0  0.4.4  0.4.3  0.4.2   0.4.1  0.4.0  0.3.5  0.3.4  0.3.3  0.3.2  0.3.1  0.3.0  0.2.1 	 0.2.0 
 0.1.9  0.1.8  0.1.7  0.1.6  0.1.5  0.1.4  0.1.3  0.1.2  0.1.12  0.1.11  0.1.10  0.1.1  0.1.0 ! dev-master v 4.4.x-dev w 4.4.1nb 4.4.04 4.3.0 x 4.2.1 y 4.2.0 z 4.1.3 { 4.1.2 | 4.1.1 } 4.1.0 ~ 4.0.0  3.1.x-dev  3.1.3  3.1.2  3.1.1  3.1.0  3.0.x-dev  3.0.5  3.0.4  3.0.3  3.0.2  3.0.1  3.0.0  2.3.x-dev  2.3.5  2.3.4  2.3.3  2.3.2  2.3.1  2.3.0  2.2.9  2.2.8  2.2.7  2.2.6  2.2.5  2.2.4  2.2.3  2.2.2  2.2.1  2.2.0  2.1.1  2.1.0  2.0.2  2.0.1  2.0.0  1.1.4  1.1.3  1.1.2 ! dev-master (K dev-feature/testers-refactoring 5 3.1.x-devA 3.1.0rc1m 3.0.x-dev  3.0.9  3.0.8  3.0.7   3.0.6  3.0.5  3.0.4  3.0.3  3.0.2  3.0.15  3.0.14  3.0.13  3.0.12  3.0.11  3.0.10  3.0.1  3.0.0rc3  3.0.0rc2 	 3.0.0rc1 
! 3.0.0beta8 ! 3.0.0beta7 ! 3.0.0beta6 ! 3.0.0beta5 ! 3.0.0beta4 ! 3.0.0beta3 ! 3.0.0beta2 ! 3.0.0beta1  3.0.0  2.5.x-dev  2.5.5  2.5.4  2.5.3  2.5.2  2.5.1  2.5.0  2.4.6  2.4.5  2.4.4  2.4.3  2.4.2  2.4.1 ! 2.4.0beta5 !! 2.4.0beta4 "! 2.4.0beta3 #! 2.4.0beta2 $! 2.4.0beta1 % 2.4.0   2.3.5 & 2.3.4 ' 2.3.3 ( 2.3.2 ) 2.3.1 * 2.3.0 + 2.2.8 , 2.2.7 - 2.2.6 . 2.2.5 / 2.2.4 0 2.2.3 1 2.2.2 2 2.2.1 3 2.2.0 4! dev-master  0.1.0 - dev-stream-input+ dev-proxy-tests + dev-one-dot-six ! dev-master / dev-cookie-expiry  1.6.1  1.6.0 ! dev-master  1.1.3  1.1.2  1.1.1  1.1.0  1.0.0 0[ dev-tmp/template-inheritance-whitespace ! dev-master q dev-dev  2.9.0 r 2.8.0 s 2.7.0 t 2.6.1 u 2.6.0 v 2.5.1 w 2.5.0 x 2.4.1 y 2.4.0 z 2.3.1 { 2.3.0 | 2.2.0 } 2.1.0 ~ 2.0.2  2.0.1 ! 2.0.0-rc.1  2.0.0  1.0.0 ! dev-master S 1.0.6 i
    rK}pcTE6"qbN.vgXI:+~o`QB3$







~
o
_
P
A
2
#

									v	f	V	F	6	&		wgXH9*xiZK<-{l\L=-yeVF6'vcO@0  p`PA2vaL=-    4.0.8 S 4.0.7 T 4.0.6 U 4.0.5 V 4.0.4 W 4.0.3 X 4.0.2 Y 4.0.10 Q 4.0.1 Z# 4.0.0-BETA4 \# 4.0.0-BETA3 ]# 4.0.0-BETA2 ^ 4.0.0 [ 1.1.0 _ 1.0.0 `! dev-master   5.3.x-devQ 5.2.x-dev  5.2.7S 5.2.6T 5.2.0U 5.1.x-dev  5.1.8  5.1.6  5.1.28W 5.1.25X 5.1.22Y 5.1.20Z 5.1.2  5.1.16  5.1.13  5.1.1  5.0.x-dev 	 5.0.4  5.0.33 
 5.0.28  5.0.26  5.0.25  5.0.22  5.0.0 ! dev-master  5.3.x-dev@ 5.2.x-dev  5.2.7B 5.2.6C 5.2.0D 5.1.x-dev  5.1.8  5.1.6  5.1.28F 5.1.25G 5.1.22H 5.1.20I 5.1.2  5.1.16  5.1.13  5.1.1 ! dev-master  5.3.x-dev 5.2.x-dev  5.2.7 5.2.6 5.2.0 5.1.x-dev  5.1.8  5.1.6  5.1.28 5.1.25 5.1.22 5.1.20 5.1.2  5.1.16  5.1.13  5.1.1  5.0.x-dev  5.0.4  5.0.33  5.0.28  5.0.26  5.0.25  5.0.22  5.0.0  4.2.x-dev  4.2.9  4.2.8  4.2.7  4.2.6  4.2.5  4.2.4  4.2.3  4.2.2  4.2.17  4.2.16  4.2.12  4.2.1 # 4.2.0-BETA1  4.1.x-dev  4.1.9  4.1.8  4.1.7  4.1.6  4.1.5  4.1.4  4.1.30  4.1.3  4.1.29  4.1.28  4.1.27  4.1.26  4.1.25  4.1.24  4.1.23  4.1.22  4.1.21  4.1.20  4.1.2  4.1.19  4.1.18  4.1.17  4.1.16  4.1.15  4.1.14  4.1.13  4.1.12  4.1.11  4.1.10  4.1.1  4.1.0  4.0.x-dev  4.0.9  4.0.8  4.0.7  4.0.6  4.0.5  4.0.4  4.0.3  4.0.2  4.0.10  4.0.1 # 4.0.0-BETA4 # 4.0.0-BETA3 # 4.0.0-BETA2  4.0.0  1.1.0  1.0.0 ! dev-master z 5.3.x-dev 5.2.x-dev { 5.2.5 5.2.4 5.2.3 5.2.2 5.2.1 5.2.0 5.1.x-dev | 5.1.6 5.1.5 5.1.4 } 5.1.3 ~ 5.1.2  5.1.1  5.1.0  5.0.x-dev  5.0.9  5.0.8  5.0.7  5.0.6  5.0.5  5.0.4  5.0.3  5.0.2  5.0.10  5.0.1  5.0.0 ! dev-master z 1.0.0x 0.4 { 0.3.1 | 0.3 } 0.2 ~ 0.1 # dev-php-5.3 x9 dev-optional-namespace y! dev-master m 1.0.1k 1.0.0l 0.8 n 0.7 o 0.6 p 0.5 q 0.4.1 r 0.4 s 0.3 t 0.2 u 0.1.1 v 0.1 w1 dev-useful-messageU! dev-master ` 1.1.1O 1.1.0P 1.0.0Q 0.3 a 0.2 b 0.1 c! dev-master  0.4  0.3  0.2.1  0.2  0.1 ! dev-master "? dev-explicit-wpcs-version2_ dev-upgrade-getAutoloadRealFile-signature&G dev-respect-autoloader-suffix q'I dev-fix_composer_compatibility r dev-fix-4 p# dev-default [ 1.x-dev \ 1.0.9 f 1.0.8 g 4.0.9 R
    rbRB3#teVG8)whYJ;(	xiYI9)sdO:%








{
l
]
M
=
-

									~	n	^	N	>	.		m^N>.tdTD5"sdUF3 rcTE6'	xhXH8)	zj[L=.|m^O@1  5.0.28 g 5.0.26 h 5.0.25 i 5.0.22 j 5.0.0 l 4.2.x-dev m 4.2.9 q 4.2.8 r 4.2.7 s 4.2.6 t 4.2.5 u 4.2.4 v 4.2.3 w 4.2.2 x 4.2.17 n 4.2.16 o 4.2.12 p 4.2.1 y# 4.2.0-BETA1 z 4.1.x-dev { 4.1.9  4.1.8  4.1.7  4.1.6  4.1.5  4.1.4  4.1.30 | 4.1.3  4.1.29 } 4.1.28 ~ 4.1.27  4.1.26  4.1.25  4.1.24  4.1.23  4.1.22  4.1.21  4.1.20  4.1.2  4.1.19  4.1.18  4.1.17  4.1.16  4.1.15  4.1.14  4.1.13  4.1.12  4.1.11  4.1.10  4.1.1  4.1.0  4.0.x-dev  4.0.9  4.0.8  4.0.7  4.0.6  4.0.5  4.0.4  4.0.3  4.0.2  4.0.10  4.0.1 # 4.0.0-BETA4 # 4.0.0-BETA3 # 4.0.0-BETA2  4.0.0  1.1.0  1.0.0 ! dev-master  5.3.x-dev 5.2.x-dev  5.2.7 5.2.6 5.2.0 5.1.x-dev  5.1.8  5.1.6  5.1.28 5.1.25 5.1.22 5.1.20 5.1.2  5.1.16  5.1.13  5.1.1  5.0.x-dev  5.0.4  5.0.33  5.0.28  5.0.26  5.0.25  5.0.22  5.0.0  4.2.x-dev  4.2.9  4.2.8  4.2.7  4.2.6  4.2.5  4.2.4  4.2.3  4.2.2  4.2.17  4.2.16  4.2.12  4.2.1 # 4.2.0-BETA1  4.1.x-dev  4.1.9  4.1.8  4.1.7  4.1.6  4.1.5  4.1.4  4.1.30  4.1.3  4.1.29  4.1.28  4.1.27  4.1.26  4.1.25  4.1.24  4.1.23  4.1.22  4.1.21  4.1.20  4.1.2  4.1.19  4.1.18  4.1.17  4.1.16  4.1.15  4.1.14  4.1.13  4.1.12  4.1.11  4.1.10  4.1.1  4.1.0  4.0.x-dev  4.0.9  4.0.8  4.0.7  4.0.6  4.0.5  4.0.4  4.0.3  4.0.2  4.0.10  4.0.1 # 4.0.0-BETA4 # 4.0.0-BETA3 # 4.0.0-BETA2  4.0.0  1.1.0   1.0.0 ! dev-master  5.3.x-dev 5.2.x-dev  5.2.7 5.2.6 5.2.0 5.1.x-dev  5.1.8  5.1.6  5.1.28 5.1.25 5.1.22 5.1.20 5.1.2  5.1.16  5.1.13  5.1.1  5.0.x-dev  5.0.4   5.0.33  5.0.28  5.0.26  5.0.25  5.0.22  5.0.0 ! 4.2.x-dev " 4.2.9 & 4.2.8 ' 4.2.7 ( 4.2.6 ) 4.2.5 * 4.2.4 + 4.2.3 , 4.2.2 - 4.2.17 # 4.2.16 $ 4.2.12 % 4.2.1 .# 4.2.0-BETA1 / 4.1.x-dev 0 4.1.9 F 4.1.8 G 4.1.7 H 4.1.6 I 4.1.5 J 4.1.4 K 4.1.30 1 4.1.3 L 4.1.29 2 4.1.28 3 4.1.27 4 4.1.26 5 4.1.25 6 4.1.24 7 4.1.23 8 4.1.22 9 4.1.21 : 4.1.20 ; 4.1.2 M 4.1.19 < 4.1.18 = 4.1.17 > 4.1.16 ? 4.1.15 @ 4.1.14 A 4.1.13 B 4.1.12 C 4.1.11 D 4.1.10 E 4.1.1 N 4.1.0 O
    p`PA2|gR=. ueUE5%vfVF6&vfVF7(









|
l
\
L
=
*

									{	l	]	N	;	(		zk\M>/ qaQA1"scTE6'	ufWH9*wgXH8(	qbS>)}j[L<, 4.1.17 | 4.1.16 } 4.1.15 ~ 4.1.14  4.1.13  4.1.12  4.1.11  4.1.10  4.1.1  4.1.0  4.0.x-dev  4.0.9  4.0.8  4.0.7  4.0.6  4.0.5  4.0.4  4.0.3  4.0.2  4.0.10  4.0.1 # 4.0.0-BETA4 # 4.0.0-BETA3 # 4.0.0-BETA2  4.0.0  1.1.0  1.0.0 ! dev-master  5.3.x-dev7 5.2.x-dev  5.2.79 5.2.6: 5.2.0; 5.1.x-dev   5.1.8  5.1.6  5.1.28= 5.1.25> 5.1.22? 5.1.20@ 5.1.2  5.1.16  5.1.13  5.1.1  5.0.x-dev  5.0.4  5.0.33  5.0.28 	 5.0.26 
 5.0.25  5.0.22  5.0.0  4.2.x-dev  4.2.9  4.2.8  4.2.7  4.2.6  4.2.5  4.2.4  4.2.3  4.2.2  4.2.17  4.2.16  4.2.12  4.2.1 # 4.2.0-BETA1  4.1.x-dev  4.1.9 3 4.1.8 4 4.1.7 5 4.1.6 6 4.1.5 7 4.1.4 8 4.1.30  4.1.3 9 4.1.29  4.1.28   4.1.27 ! 4.1.26 " 4.1.25 # 4.1.24 $ 4.1.23 % 4.1.22 & 4.1.21 ' 4.1.20 ( 4.1.2 : 4.1.19 ) 4.1.18 * 4.1.17 + 4.1.16 , 4.1.15 - 4.1.14 . 4.1.13 / 4.1.12 0 4.1.11 1 4.1.10 2 4.1.1 ; 4.1.0 < 4.0.x-dev = 4.0.9 ? 4.0.8 @ 4.0.7 A 4.0.6 B 4.0.5 C 4.0.4 D 4.0.3 E 4.0.2 F 4.0.10 > 4.0.1 G# 4.0.0-BETA4 I# 4.0.0-BETA3 J# 4.0.0-BETA2 K 4.0.0 H 1.1.0 L 1.0.1 M 1.0.0 N! dev-master  5.3.x-dev 5.2.x-dev  5.2.7 5.2.6 5.2.0 5.1.x-dev  5.1.8  5.1.6  5.1.28 5.1.25 5.1.22j 5.1.20k 5.1.2  5.1.16  5.1.13  5.1.1  5.0.x-dev  5.0.4  5.0.33  5.0.28  5.0.27  5.0.26  5.0.25  5.0.22  5.0.0  4.2.x-dev  4.2.9  4.2.8  4.2.7  4.2.6  4.2.5  4.2.4  4.2.3  4.2.2  4.2.17  4.2.16  4.2.12  4.2.1 # 4.2.0-BETA1  4.1.x-dev  4.1.9  4.1.8  4.1.7  4.1.6  4.1.5  4.1.4  4.1.30  4.1.3  4.1.29  4.1.28  4.1.27  4.1.26  4.1.25  4.1.24  4.1.23  4.1.22  4.1.21  4.1.20  4.1.2  4.1.19  4.1.18  4.1.17  4.1.16  4.1.15  4.1.14  4.1.13  4.1.12  4.1.11  4.1.10  4.1.1  4.1.0  4.0.x-dev  4.0.9  4.0.8  4.0.7  4.0.6  4.0.5  4.0.4  4.0.3  4.0.2  4.0.10  4.0.1 # 4.0.0-BETA4 # 4.0.0-BETA3 # 4.0.0-BETA2  4.0.0  1.1.1  1.1.0  1.0.0 ! dev-master \ 5.3.x-dev 5.2.x-dev ] 5.2.7 5.2.6 5.2.0 5.1.x-dev ^ 5.1.8 a 5.1.6 b 5.1.28 5.1.25 5.1.22 5.1.20 5.1.2 c 5.1.16 _ 5.1.13 ` 5.1.1 d 5.0.x-dev e 5.0.4 k 4.1.18 {
    qaQA2"qaRC4%whUF6&yfS?0!xiZK<)








{
k
\
L
<
,

										p	a	R	C	0		sdQB2"rbRC4!xcN?/ vfVF6&wgWG7(	wgWH9*}m^K<, 5.1.6 E 5.1.25 5.1.22 5.1.20 5.1.2 F 5.1.16 B 5.1.13 C 5.1.1 G 5.0.x-dev H 5.0.4 N 5.0.33 I 5.0.28 J 5.0.26 K 5.0.25 L 5.0.22 M 5.0.0 O 4.2.x-dev P 4.2.9 T 4.2.8 U 4.2.7 V 4.2.6 W 4.2.5 X 4.2.4 Y 4.2.3 Z 4.2.2 [ 4.2.17 Q 4.2.16 R 4.2.12 S 4.2.1 \# 4.2.0-BETA1 ] 4.1.x-dev ^ 4.1.9 t 4.1.8 u 4.1.7 v 4.1.6 w 4.1.5 x 4.1.4 y 4.1.30 _ 4.1.3 z 4.1.29 ` 4.1.28 a 4.1.27 b 4.1.26 c 4.1.25 d 4.1.24 e 4.1.23 f 4.1.22 g 4.1.21 h 4.1.20 i 4.1.2 { 4.1.19 j 4.1.18 k 4.1.17 l 4.1.16 m 4.1.15 n 4.1.14 o 4.1.13 p 4.1.12 q 4.1.11 r 4.1.10 s 4.1.1 | 4.1.0 } 4.0.x-dev ~ 4.0.9  4.0.8  4.0.7  4.0.6  4.0.5  4.0.4  4.0.3  4.0.2  4.0.10  4.0.1 # 4.0.0-BETA4 # 4.0.0-BETA3 # 4.0.0-BETA2  4.0.0  1.1.1  1.1.0 ! dev-master  5.3.x-dev@ 5.2.x-dev  5.2.7B 5.2.6C 5.2.0D 5.1.x-dev  5.1.8  5.1.6  5.1.28F 5.1.25G 5.1.22H 5.1.20I 5.1.2  5.1.16  5.1.13  5.1.1  5.0.x-dev  5.0.4  5.0.33  5.0.28  5.0.26  5.0.25  5.0.22  5.0.0  4.2.x-dev   4.2.9  4.2.8  4.2.7  4.2.6  4.2.5  4.2.4 	 4.2.3 
 4.2.2  4.2.17  4.2.16  4.2.12  4.2.1 # 4.2.0-BETA1  4.1.x-dev  4.1.9 $ 4.1.8 % 4.1.7 & 4.1.6 ' 4.1.5 ( 4.1.4 ) 4.1.30  4.1.3 * 4.1.29  4.1.28  4.1.27  4.1.26  4.1.25  4.1.24  4.1.23  4.1.22  4.1.21  4.1.20  4.1.2 + 4.1.19  4.1.18  4.1.17  4.1.16  4.1.15  4.1.14  4.1.13   4.1.12 ! 4.1.11 " 4.1.10 # 4.1.1 , 4.1.0 - 4.0.x-dev . 4.0.9 0 4.0.8 1 4.0.7 2 4.0.6 3 4.0.5 4 4.0.4 5 4.0.3 6 4.0.2 7 4.0.10 / 4.0.1 8# 4.0.0-BETA4 :# 4.0.0-BETA3 ;# 4.0.0-BETA2 < 4.0.0 9 1.1.0 = 1.0.0 >! dev-master O 5.3.x-dev< 5.2.x-dev P 5.2.7> 5.2.6? 5.2.0@ 5.1.x-dev Q 5.1.8 T 5.1.6 U 5.1.28B 5.1.25C 5.1.22 5.1.20 5.1.2 V 5.1.16 R 5.1.13 S 5.1.1 W 5.0.x-dev X 5.0.4 ^ 5.0.33 Y 5.0.28 Z 5.0.26 [ 5.0.25 \ 5.0.22 ] 5.0.0 _ 4.2.x-dev ` 4.2.9 d 4.2.8 e 4.2.7 f 4.2.6 g 4.2.5 h 4.2.4 i 4.2.3 j 4.2.2 k 4.2.17 a 4.2.16 b 4.2.12 c 4.2.1 l# 4.2.0-BETA1 m 4.1.x-dev n 4.1.9  4.1.8  4.1.7  4.1.6  4.1.5  4.1.4  4.1.30 o 4.1.3  4.1.29 p 4.1.28 q 4.1.27 r 4.1.26 s 4.1.25 t 4.1.24 u 4.1.23 v 4.1.22 w 4.1.21 x 4.1.20 y 4.1.2  5.1.28
    whYJ5 taRC3#tdTD4${hSD4$zjZJ:*








{
l
Y
J
;
,

									q	b	R	B	3	#		o[L=.vgXI:'	yiZJ:*
}n_PA.
qbO@0  p`PA2vaL=-           4.0.7  4.0.6  4.0.5  4.0.4  4.0.3  4.0.2  4.0.10  4.0.1 # 4.0.0-BETA4 # 4.0.0-BETA3 # 4.0.0-BETA2  4.0.0  1.1.0  1.0.0 ! dev-master  5.3.x-deva 5.2.x-dev  5.2.7c 5.2.6d 5.2.0e 5.1.x-dev  5.1.8  5.1.6  5.1.28g 5.1.25h 5.1.22i 5.1.20j 5.1.2  5.1.16  5.1.13  5.1.1  5.0.x-dev  5.0.4  5.0.33  5.0.28  5.0.26  5.0.25  5.0.22  5.0.0   4.2.x-dev  4.2.9  4.2.8  4.2.7  4.2.6  4.2.5 	 4.2.4 
 4.2.3  4.2.2  4.2.17  4.2.16  4.2.12  4.2.1 # 4.2.0-BETA1  4.1.x-dev  4.1.9 % 4.1.8 & 4.1.7 ' 4.1.6 ( 4.1.5 ) 4.1.4 * 4.1.30  4.1.3 + 4.1.29  4.1.28  4.1.27  4.1.26  4.1.25  4.1.24  4.1.23  4.1.22  4.1.21  4.1.20  4.1.2 , 4.1.19  4.1.18  4.1.17  4.1.16  4.1.15  4.1.14   4.1.13 ! 4.1.12 " 4.1.11 # 4.1.10 $ 4.1.1 - 4.1.0 . 4.0.x-dev / 4.0.9 1 4.0.8 2 4.0.7 3 4.0.6 4 4.0.5 5 4.0.4 6 4.0.3 7 4.0.2 8 4.0.10 0 4.0.1 9# 4.0.0-BETA4 ;# 4.0.0-BETA3 <# 4.0.0-BETA2 = 4.0.0 : 1.1.3 > 1.1.2 ? 1.1.1 @ 1.1.0 A! dev-master  5.3.x-devD 5.2.x-dev  5.2.7F 5.2.6G 5.2.0H 5.1.x-dev  5.1.8  5.1.6  5.1.28J 5.1.25K 5.1.22L 5.1.20M 5.1.2  5.1.16  5.1.13  5.1.1  5.0.x-dev  5.0.4  5.0.33  5.0.28  5.0.26  5.0.25  5.0.22  5.0.0 ! dev-master  5.3.x-dev 5.2.x-dev  5.2.7 5.2.6 5.2.0 5.1.x-dev  5.1.8  5.1.6  5.1.28 5.1.25 5.1.22 5.1.20 5.1.2  5.1.16  5.1.13  5.1.1  5.0.x-dev  5.0.4  5.0.33  5.0.28  5.0.26  5.0.25  5.0.22  5.0.0  4.2.x-dev  4.2.9  4.2.8  4.2.7  4.2.6  4.2.5  4.2.4  4.2.3  4.2.2  4.2.17  4.2.16  4.2.12  4.2.1 # 4.2.0-BETA1  4.1.x-dev  4.1.9  4.1.8  4.1.7  4.1.6  4.1.5  4.1.4  4.1.30  4.1.3  4.1.29  4.1.28  4.1.27  4.1.26  4.1.25  4.1.24  4.1.23  4.1.22  4.1.21  4.1.20  4.1.2  4.1.19  4.1.18  4.1.17  4.1.16  4.1.15  4.1.14  4.1.13  4.1.12  4.1.11  4.1.10  4.1.1  4.1.0  4.0.x-dev  4.0.9  4.0.8  4.0.7  4.0.6  4.0.5  4.0.4  4.0.3  4.0.2  4.0.10  4.0.1 # 4.0.0-BETA4 # 4.0.0-BETA3 # 4.0.0-BETA2  4.0.0  1.1.0  1.0.0 ! dev-master ? 5.3.x-dev 5.2.x-dev @ 5.2.7 5.2.6 5.2.0 5.1.x-dev A 4.0.8 
  p`P@0 qbRC4%sdUF7(vfVG7'o`QB-








{
l
Y
J
;
+

									|	l	\	L	<	,		s`K<,rbRB2" sdQB3$o`PA2#wgWG7'xhXI9*xiZK<-  5.0.22 B 5.0.0 D 4.2.x-dev E 4.2.9 I 4.2.8 J 4.2.7 K 4.2.6 L 4.2.5 M 4.2.4 N 4.2.3 O 4.2.2 P 4.2.17 F 4.2.16 G 4.2.12 H 4.2.1 Q# 4.2.0-BETA1 R 4.1.x-dev S 4.1.9 i 4.1.8 j 4.1.7 k 4.1.6 l 4.1.5 m 4.1.4 n 4.1.30 T 4.1.3 o 4.1.29 U 4.1.28 V 4.1.27 W 4.1.26 X 4.1.25 Y 4.1.24 Z 4.1.23 [ 4.1.22 \ 4.1.21 ] 4.1.20 ^ 4.1.2 p 4.1.19 _ 4.1.18 ` 4.1.17 a 4.1.16 b 4.1.15 c 4.1.14 d 4.1.13 e 4.1.12 f 4.1.11 g 4.1.10 h 4.1.1 q 4.1.0 r 4.0.x-dev s 4.0.9 u 4.0.8 v 4.0.7 w 4.0.6 x 4.0.5 y 4.0.4 z 4.0.3 { 4.0.2 | 4.0.10 t 4.0.1 }# 4.0.0-BETA4 # 4.0.0-BETA3 # 4.0.0-BETA2  4.0.0 ~ 1.1.1  1.1.0  1.0.0 ! dev-master  5.3.x-devm 5.2.x-dev  5.2.7o 5.2.6p 5.2.0q 5.1.x-dev  5.1.8  5.1.6  5.1.28s 5.1.25t 5.1.22u 5.1.20v 5.1.2  5.1.16  5.1.13  5.1.1  5.0.x-dev  5.0.4  5.0.33  5.0.28  5.0.26  5.0.25  5.0.22  5.0.0  4.2.x-dev  4.2.9  4.2.8  4.2.7  4.2.6  4.2.5  4.2.4  4.2.3  4.2.2   4.2.17  4.2.16  4.2.12  4.2.1 # 4.2.0-BETA1  4.1.x-dev  4.1.9  4.1.8  4.1.7  4.1.6  4.1.5  4.1.4  4.1.30  4.1.3  4.1.29  4.1.28  4.1.27  4.1.26  4.1.25 	 4.1.24 
 4.1.23  4.1.22  4.1.21  4.1.20  4.1.2   4.1.19  4.1.18  4.1.17  4.1.16  4.1.15  4.1.14  4.1.13  4.1.12  4.1.11  4.1.10  4.1.1 ! 4.1.0 " 4.0.x-dev # 4.0.9 % 4.0.8 & 4.0.7 ' 4.0.6 ( 4.0.5 ) 4.0.4 * 4.0.3 + 4.0.2 , 4.0.10 $ 4.0.1 -# 4.0.0-BETA4 /# 4.0.0-BETA3 0# 4.0.0-BETA2 1 4.0.0 . 1.1.0 2 1.0.0 3! dev-master B 5.3.x-dev 5.2.x-dev C 5.2.7 5.2.6 5.2.0 5.1.x-dev D 5.1.8 G 5.1.6 H 5.1.28 5.1.25 5.1.22 5.1.20* 5.1.2 I 5.1.16 E 5.1.13 F 5.1.1 J 5.0.x-dev K 5.0.4 Q 5.0.33 L 5.0.28 M 5.0.26 N 5.0.25 O 5.0.22 P 5.0.0 R 4.2.x-dev S 4.2.9 W 4.2.8 X 4.2.7 Y 4.2.6 Z 4.2.5 [ 4.2.4 \ 4.2.3 ] 4.2.2 ^ 4.2.17 T 4.2.16 U 4.2.12 V 4.2.1 _# 4.2.0-BETA1 ` 4.1.x-dev a 4.1.9 w 4.1.8 x 4.1.7 y 4.1.6 z 4.1.5 { 4.1.4 | 4.1.30 b 4.1.3 } 4.1.29 c 4.1.28 d 4.1.27 e 4.1.26 f 4.1.25 g 4.1.24 h 4.1.23 i 4.1.22 j 4.1.21 k 4.1.20 l 4.1.2 ~ 4.1.19 m 4.1.18 n 4.1.17 o 4.1.16 p 4.1.15 q 4.1.14 r 4.1.13 s 4.1.12 t 4.1.11 u 4.1.10 v 4.1.1  4.1.0  4.0.x-dev     4.0.9 
    p`P@0!zk\G2sdUE5%vfVF6&zeVF6&








|
l
\
L
<
-

									~	k	\	M	>	+		xiZK<-
zk\M>/ }n_P=.|iZK<-{l]N;,zk\M>/ s_L8%  ! dev-master  2.0.x-dev  2.0.1  2.0 ! dev-master  1.0.x-dev ! dev-master  2.0.x-dev ! dev-master  1.6.x-dev 1.6.1 1.6.0 1.5.x-dev  1.5.0  1.4.0  1.3.2  1.3.1  1.3.0  1.2.0  1.1.0  1.0.0  0.9.5  0.9.4  0.9.3  0.9.2  0.9.1  0.9.0 ! dev-master  2.4.x-dev  2.3.x-dev  2.3.7 2.3.6 2.3.5  2.3.4  2.3.3  2.3.2  2.3.1  2.3.0  2.2.x-dev  2.2.8 2.2.7  2.2.6  2.2.5  2.2.4  2.2.3  2.2.2  2.2.1  2.2.0 ! dev-master  2.4.x-dev  2.3.x-dev  2.3.5 2.3.4 2.3.3  2.3.2  2.3.1  2.3.0  2.2.x-dev  2.2.3  2.2.2  2.2.1  2.2.0 ! dev-master  2.4.x-dev  2.3.x-dev  2.3.4 2.3.3  2.3.2  2.3.1  2.3.0  2.2.x-dev  2.2.6 2.2.5  2.2.4  2.2.3  2.2.2  2.2.1  2.2.0 ! dev-master o 2.4.x-dev p 2.3.x-dev q 2.3.8] 2.3.7^ 2.3.6 r 2.3.5 s 2.3.4 t 2.3.3 u 2.3.2 v 2.3.1 w 2.3.0 x 2.2.x-dev y 2.2.6 z 2.2.5 { 2.2.4 | 2.2.3 } 2.2.2 ~ 2.2.1  2.2.0 ! dev-master m 0.0.1 n! dev-master $ 0.7.0 0.6.0 % 0.5.0 & 0.4.0 ' 0.3.0 ( 0.2.0 ) 0.1.0 *! dev-master  1.1.0l 1.0.4  1.0.3 	 1.0.2 
 1.0.1  1.0.0 ! dev-master  5.3.x-devg 5.2.x-dev  5.2.7i 5.2.6j 5.2.0k 5.1.x-dev  5.1.8  5.1.6  5.1.28m 5.1.25n 5.1.22o 5.1.20p 5.1.2  5.1.16  5.1.13  5.1.1  5.0.x-dev  5.0.4  5.0.33  5.0.28  5.0.26  5.0.25  5.0.22  5.0.0  4.2.x-dev  4.2.9  4.2.8  4.2.7  4.2.6  4.2.5  4.2.4  4.2.3  4.2.2  4.2.17  4.2.16  4.2.12  4.2.1 # 4.2.0-BETA1  4.1.x-dev  4.1.9  4.1.8  4.1.7  4.1.6  4.1.5  4.1.4  4.1.30  4.1.3  4.1.29  4.1.28  4.1.27  4.1.26  4.1.25  4.1.24  4.1.23  4.1.22  4.1.21  4.1.20  4.1.2  4.1.19  4.1.18  4.1.17  4.1.16  4.1.15  4.1.14  4.1.13  4.1.12  4.1.11  4.1.10  4.1.1  4.1.0  4.0.x-dev  4.0.9  4.0.8  4.0.7  4.0.6  4.0.5  4.0.4  4.0.3  4.0.2  4.0.10  4.0.1 # 4.0.0-BETA4 # 4.0.0-BETA3 # 4.0.0-BETA2  4.0.0  1.1.1  1.1.0  1.0.0 ! dev-master 4 5.3.x-dev 5.2.x-dev 5 5.2.7 5.2.6 5.2.0 5.1.x-dev 6 5.1.8 9 5.1.6 : 5.1.28 5.1.25 5.1.22d 5.1.20e 5.1.2 ; 5.1.16 7 5.1.13 8 5.1.1 < 5.0.x-dev = 5.0.4 C 5.0.33 > 5.0.28 ? 5.0.26 @
    yj[L=.zk\M>/qbSD5&ufWH9*vgXI:+








{
l
]
N
?
0
!

									|	m	^	O	@	1	"		}nYE6'	whYJ;,wgWG7'ufWH9*p\M>/ oT%q];.!               ! dev-master b 2.2 c 2.1 d 2.0 e 1.6.1 f 1.6 g 1.5 h!= dev-scalar_stream_values ! dev-master # dev-develop  2.1.0  2.0.x-dev  2.0.0  1.5.1  1.5.0  1.4.0  1.3.0  1.2.0  1.1.0 ! dev-master .W dev-improve-url-fromstring-validation / dev-guzzle-master 9 dev-fix-inject-emitter # dev-develop  4.2.x-dev  4.2.2  4.2.1  4.2.0  4.1.8  4.1.7  4.1.6  4.1.5  4.1.4  4.1.3  4.1.2  4.0.2 ! dev-master # dev-develop  2.6.x-dev  2.5.4  2.5.3  2.5.2 ! dev-master # dev-develop  2.5.4  2.5.3  2.5.2  2.5.1  2.5.0  2.4.4  2.4.3  2.4.1  2.4.0  2.3.2 / dev-tedvim-master ! dev-master # dev-develop  0.9.5  0.13.1 0.12.3 0.12.2 0.12.1  0.11.6  0.11.5  0.11.4  0.11.3  0.11.2  0.11.1  0.10.5  0.10.4  0.10.3  0.10.2  0.10.1 ! dev-master l# dev-develop v 2.5.0 m 2.4.4 n 2.4.3 o 2.4.1 p 2.4.0 q 2.3.3 r 2.3.2 s 2.3.1 t 2.3.0 u! dev-master R# dev-develop ^ 2.5.4 S 2.5.3 T 2.5.2 U 2.5.1 V 2.5.0 W 2.4.4 X 2.4.3 Y 2.4.1 Z 2.4.0 [ 2.3.3 \ 2.3.2 ]! dev-master 3# dev-develop B 2.8.0z 2.7.7{ 2.7.6| 2.7.5} 2.7.4~ 2.7.3 2.7.2 2.7.1 2.7.0 2.6.9 2.6.8 2.6.7 2.6.6 2.6.5 2.6.4 2.6.3 2.6.1 2.6.0 2.5.8 2.5.7 2.5.6 2.5.5 2.5.4 4 2.5.3 5 2.5.2 6 2.5.1 7 2.5.0 8 2.4.4 9 2.4.3 : 2.4.2 ; 2.4.1 < 2.4.0 = 2.3.3 > 2.3.1 ? 1.0.1 @ 1.0.0 A! dev-master $# dev-develop 2 2.8.0V 2.7.7W 2.7.6X 2.7.5Y 2.7.4Z 2.7.3[ 2.7.2\ 2.7.1] 2.7.0^ 2.6.9_ 2.6.8` 2.6.7a 2.6.6b 2.6.5c 2.6.4d 2.6.3e 2.6.2f 2.6.1g 2.6.0h 2.5.6i 2.5.5j 2.5.4 % 2.5.3 & 2.5.2 ' 2.5.1 ( 2.5.0 ) 2.4.4 * 2.4.3 + 2.4.2 , 2.4.1 - 2.4.0 . 2.3.4 / 2.3.3 0 2.3.1 1! dev-master # dev-jsonify #A dev-devel-3-workinprogress# dev-devel-3  dev-devel  2.8.8  2.8.7  2.8.6  2.8.5  2.8.4  2.8.3  2.8.2  2.8.19 2.8.18 2.8.17  2.8.16  2.8.15  2.8.14  2.8.13  2.8.12  2.8.11  2.8.10  2.8.1  2.8.0  2.7.9  2.7.8  2.7.7  2.7.6  2.7.5  2.7.4  2.7.3  2.7.2  2.7.1  2.7.0  2.6.9  2.6.8  2.6.7  2.6.6  2.6.5  2.6.4  2.6.3  2.6.2  2.6.1  2.6.0  2.5.9  2.5.8  2.5.7  2.5.6  2.5.5  2.5.4  2.5.3  2.5.2  0.8.0 q
  wgWG7'zk[K;+rbSD5&yiYI9)
zj[K;+









n
_
J
5
"

									x	i	T	?	,		ubS>)
qbO@+|mXI:'yj[L=.xhT@3&
vcVG:+{l]N?0!      3.3.0 ľ3.2.1 Ŀ3.2.0 3.1.0 3.0.9 3.0.8 3.0.7 3.0.6 3.0.5 3.0.4 3.0.3 3.0.2 3.0.1 3.0 2.1.0 2.0.1 2.0.0 !dev-master ;2.0.x-dev <1.9.x-dev @1.9.3 A1.9.2 B1.9.1 C1.9 D1.8.1 E1.8 F1.7.x-dev G1.7.1 H1.7 I1.6.2 J1.6.1 K1.6 L1.5.x-dev M1.5.2 N1.5.1 O1.5 P1.4.2 Q1.4.1 R1.4 S1.3 T1.2 U!1.12.x-devZ!1.11.x-dev =1.11.11.11Z!1.10.x-dev >1.10.3Z1.10.2p1.10.1;21.10 ?1.1 V1.0 W0.5.7 X0.5.6 Y0.5.5 Z0.5.4 [0.5.3 \0.5.2 ]0.5.1 ^0.5.0 _0.4.0 `0.3.0 a0.2.0 b0.1.0 c!dev-master ! dev-master  3.1.x-devn 3.0.x-dev  3.0.1n# 3.0.0-BETA1. 3.0.0n 2.8.x-dev  2.8.2ρ 2.8.1n# 2.8.0-BETA1. 2.8.0n 2.7.x-dev  2.7.9φ 2.7.8n 2.7.7. 2.7.6c 2.7.5 2.7.4  2.7.3  2.7.2  2.7.1 # 2.7.0-BETA2 # 2.7.0-BETA1  2.7.0  2.6.x-dev  2.6.9  2.6.8  2.6.7  2.6.6  2.6.5  2.6.4  2.6.3  2.6.2  2.6.13ϓ 2.6.12. 2.6.11  2.6.10  2.6.1 # 2.6.0-BETA2 # 2.6.0-BETA1  2.6.0  2.5.x-dev  2.5.9  2.5.8  2.5.7  2.5.6  2.5.5  2.5.4  2.5.3  2.5.2  2.5.12  2.5.11  2.5.10  2.5.1  2.5.0-RC1 # 2.5.0-BETA2 # 2.5.0-BETA1  2.5.0  2.4.x-dev  2.4.9  2.4.8  2.4.7  2.4.6  2.4.5  2.4.4  2.4.3  2.4.2  2.4.10  2.4.1  2.4.0-RC1 # 2.4.0-BETA2 # 2.4.0-BETA1  2.4.0  2.3.x-dev  2.3.9  2.3.8  2.3.7  2.3.6  2.3.5  2.3.4  2.3.37 2.3.36n 2.3.35/" 2.3.34 2.3.33D 2.3.32  2.3.31  2.3.30  2.3.3  2.3.29  2.3.28  2.3.27  2.3.26  2.3.25  2.3.24  2.3.23  2.3.22  2.3.21  2.3.20  2.3.2  2.3.19  2.3.18  2.3.17  2.3.16  2.3.15  2.3.14  2.3.13  2.3.12  2.3.11  2.3.10  2.3.1  2.3.0  2.2.x-dev  2.2.9  2.2.8  2.2.7  2.2.6  2.2.5  2.2.4  2.2.3  2.2.2  2.2.11  2.2.10  2.2.1   2.2.0  2.1.x-dev  2.1.9  2.1.8  2.1.7 	 2.1.6 
 2.1.5  2.1.4  2.1.3  2.1.2  2.1.13  2.1.12  2.1.11  2.1.10  2.1.1  2.1.0  2.0.x-dev  2.0.9 ! 2.0.7 " 2.0.6 # 2.0.5 $ 2.0.4 % 2.0.25  2.0.24  2.0.23  2.0.22  2.0.21  2.0.20  2.0.19  2.0.18  2.0.17  2.0.16  2.0.15  2.0.14  2.0.13  2.0.12  2.0.10  ! dev-master p    3.3.1 Ľ
    yj[L=.q^J;({eP;&~o`QB/q`Q<(








z
k
Z
K
6
"

										t	e	X	K	>	/	"		vgZK>/ y[;'	sdPA-
k^O@1"yfM9 qaQB2#{k[K<- 0.3.0 0.2.9 0.2.8 0.2.7 0.2.6 0.2.5 0.2.4 0.2.3 0.2.2 0.2.15 0.2.14 0.2.13 0.2.12 0.2.11 0.2.10 0.2.1 0.2.0 0.1.9 *0.1.8 +0.1.7 ,0.1.6 -0.1.5 .0.1.4 /0.1.3 00.1.20 0.1.2 10.1.19  0.1.18 !0.1.17 "0.1.16 #0.1.15 $0.1.14 %0.1.13 &0.1.12 '0.1.11 (0.1.10 )0.1.1 20.1.0 3)Mdev-procedure-functional-testing  !dev-master +dev-add-ansible 0.4.x-dev 0.3.x-dev 0.3.9 0.3.7 0.3.6 0.3.5 0.3.4 0.3.3 0.3.2 0.3.1 0.3.0 0.2.6 0.2.5 0.2.4 0.2.3 0.2.1 0.1 !dev-master 3.0.x-dev 3.0.0 2.1.0 2.0.0 1.5.1 1.5.0 1.4.0 1.3.0 1.2.0 1.1.0 !1.0.0-rc.2 !1.0.0-rc.1 1.0.0 !
dev-master 
0.9.0
0.8.0 
0.7.0 
0.6.1 
0.6.0  
0.5.0 
0.4.0 
0.3.0 
0.2.0 
0.1.3 
0.1.2 
0.1.1 
0.1.0 !	dev-master ʎ9	dev-features/laravel-5 ʟ5	dev-feature/refactor	dev-dev ʞ	5.1.1	5.1.0	5.0.0 ʏ	4.0.0 ʐ	3.0.1 ʑ	3.0.0 ʒ	2.0.2 ʓ	2.0.1 ʔ	2.0.0 ʕ	1.2.3 ʖ	1.2.2 ʗ	1.2.1 ʘ	1.2 ʙ	1.1.1 ʚ	1.1 ʛ	1.0.1 ʜ	1.0 ʝ'dev-version-4 %)dev-next-major &!dev-master 'dev-fix-tests5.45.35.25.1.25.1.15.1 5.0.1 5.0 4.5 4.4 4.3.2 4.3.1 4.3 4.2.1 4.2 4.1.1 4.1 4.0.1 4.0.0  3.0.1 !3.0.0 "2.0.0 #1.0.1 $!dev-master #dev-develop 3.0.0 2.x-dev 2.3.1 2.3.0 2.2.3 2.2.2 2.2.1 2.2.0 2.1.0 2.0.0 1.0.x-dev 1.0.1 1.0.0 !dev-master ŋ!2.0.0-beta Ō#2.0.0-alpha ō2.0.01.x-dev Ŏ1.0.4 ŏ1.0.3 Ő1.0.2 ő1.0.1 Œ1.0.0 œ0.2.0 Ŕ0.1.1 ŕ0.1.0 Ŗ!dev-master O7dev-feature/laravel-5 l2.2.x-dev P2.1.x-dev Q2.1.62.1.5 R2.1.4 S2.1.3 T2.1.2 U2.1.1 V2.1.0 W2.0.42.0.3 X2.0.2 Y2.0.1 Z#2.0.0-beta6 ^#2.0.0-beta5 _#2.0.0-beta4 `#2.0.0-beta3 a#2.0.0-beta2 b#2.0.0-beta1 c%2.0.0-alpha8 d%2.0.0-alpha7 e%2.0.0-alpha6 f%2.0.0-alpha5 g%2.0.0-alpha4 h%2.0.0-alpha3 i%2.0.0-alpha2 j%2.0.0-alpha1 k2.0.0-RC2 \2.0.0-RC1 ]2.0.0 [!dev-master H2.0.x-dev I1.0.5 J1.0.4 K1.0.3 L1.0.2 M1.0.1 N!dev-master Īdev-focus 4.3.04.2.1 ī4.2.0 Ĭ4.1.1 ĭ4.1.0 Į4.0.5 į4.0.4 İ4.0.3 ı4.0.2 Ĳ4.0.1 ĳ4.0.0 Ĵ3.6.2 ĵ3.6.1 Ķ3.6.0 ķ3.5.0 ĸ3.4.3 Ĺ3.4.2 ĺ3.4.1 Ļ0.3.1 
    yj[L<,p`P@0  uK"	|m^O@1"scSC3$








~
n
^
O
@
1
"

					Y	E	-		}p\M>/ qbSD5&paM>1$teXI:+{l]N?0!|m^O@1"yjWD0   1.0.3 1.0.2 1.0.1 1.0 0[dev-revert-350-fix_query_logging_is_off Q!dev-master 2.2.x-dev2.1.x-dev 2.1.12.1.02.0.6 2.0.5 2.0.4 2.0.3 2.0.2 2.0.1 2.0.0 1.8.x-dev 1.8.7 1.8.6 1.8.5 1.8.4 1.8.3 1.8.2 1.8.1 1.8.0 1.7.7  1.7.6 !1.7.5 "1.7.4 #1.7.3 $1.7.2 %1.7.1 &1.7.0 '1.6.8 (1.6.7 )1.6.6 *1.6.5 +1.6.4 ,1.6.3 -1.6.2 .1.6.1 /1.6.0 01.5.5 11.5.4 21.5.3 31.5.2 41.5.1 51.5.0 61.4.3 71.4.2 81.4.1 91.4 :1.3.1 ;1.3 <1.2.3 =1.2.2 >1.2.1 ?1.2 @1.1.5 A1.1.4 B1.1.3 C1.1.2 D1.1.1 E1.1 F1.0.4 G1.0.3 H1.0.2 I1.0.1 J1.0 K0.3.2 L0.3.1 M0.3 N0.2 O0.1.0 P!dev-master 0.1.0 !dev-master 1.1.1c1.1.0d1.0.0 0.1.0 0.0.2 0.0.1 !dev-master %%dev-laravel4 /2.6.1ļ2.5.8Ľ2.5.62.5.5 &2.5.3 '2.5.2 (2.4.9 -2.4.6 .2.4.202.4.19 )2.4.16 *2.4.15 +2.4.11 ,!dev-master ޔ1.0.11.0.0 ޕ0.3.2 ޖ0.3.1 ޗ0.3.0 ޘ0.2.1 ޙ0.2.0 ޚ0.1.0 ޛ!dev-master 2.1g2.0.1h2.0 1.0.1 1.0 0.5 !dev-master 1.0.x-dev 	0.0.3 
0.0.2 0.0.1 'dev-unittests )dev-readme-fix !dev-master .Wdev-lindyhopchris-previous-exceptions !=dev-heroku-addon-support 9dev-fix-default-branch  ;dev-access_token_header +dev-Fix-E_PARSEe0.9.9 0.9.8 0.9.7 0.9.6 0.9.4 0.9.3 0.9.12 0.9.11 0.9.10 0.9.1 0.9.0 0.8.1 0.8.0 0.7.0 0.6.4 0.6.3 0.6.2 0.6.1 0.6.0  0.4.1 0.15.0 0.14.0 0.13.0 0.12.1 0.12.0 0.11.2 0.11.1 0.11.0 0.10.0 !dev-master Q1.4.61.4.51.4.4 R1.4.3 S1.4.2 T1.4.1 U1.4.0 V1.3.4 W1.3.3 X1.3.2 Y1.3.1 Z1.3.0 [1.2.0 \1.1.0 ]1.0.1 ^1.0.0 _-Udev-twistor-configurable-permissions!dev-master +dev-ftp-windows 5(Kdev-feature/http-guzzle-adapter 6)Mdev-feature-mountmanager-plugins 41.1.x-dev 1.0.9 1.0.8 1.0.7 1.0.6 1.0.5 1.0.4 1.0.3 1.0.2 1.0.161.0.1501.0.1411.0.13 1.0.12 1.0.11 1.0.10 1.0.1 %1.0.0-alpha1 1.0.0 0.5.9 0.5.8 0.5.7 0.5.6 0.5.5 0.5.4 0.5.3 0.5.2  0.5.12 0.5.11 0.5.10 0.5.1 0.5.0 0.4.5 0.4.4 0.4.3 0.4.2 0.4.1 0.4.0 0.3.5 	0.3.4 
0.3.3 1.0.4 

    o[NA4'wgWH9*dG5*yePC4%s`<(









|
m
^
O
@
1
"

					~	e	Q	B	+	s[C-u^O@1" xdP=.zk\K7(
vgXI:+nZK5paR?+ #2.0#1.7!"dev-master "1.1.0 	"1.0.1 
"1.0.0 "0.5.2 "0.5.1 !!dev-master !3.0.x-dev  !3.0.4 !3.0.3 !3.0.2 !3.0.1 !3.0.0 !2.0.x-dev !2.0.2 !2.0.1 !2.0.0 	!1.0.x-dev 
!1.0.3 !1.0.2 !1.0.1 )!1.0.0-beta.1.1'%!1.0.0-beta.1 !1.0.0 ! dev-master  1.2.x-dev  1.1.1  1.1.0  1.0.0  0.1.0 !dev-master 1.6.1 1.6.0 1.5.4 1.5.3 1.5.2 1.5.1 1.5.0 1.4.0 1.3.0 1.2.0 1.1.2 1.1.1 1.1.0 1.0.x-dev 1.0.0 !dev-master 1.0.x-dev 1.0.1 1.0.0 0.4.0 0.3.0 0.2.0 0.1.0 !dev-master z3.x-dev {2.6.1Ȏ2.6.02.5.3 |2.5.2 }2.5.1 ~2.5.0 2.4.4 2.4.3 2.4.2 2.4.1 2.4.0 2.3.0 2.2.1 2.2.0 2.1.0 2.0.x-dev !2.0.0-rc.2 !2.0.0-rc.1 %2.0.0-beta.2 %2.0.0-beta.1 '2.0.0-alpha.4 '2.0.0-alpha.3 '2.0.0-alpha.2 '2.0.0-alpha.1 2.0.0 1.0.x-dev 1.0.9 1.0.8 1.0.7 1.0.6 '1.0.5+build.1 1.0.4 1.0.3 1.0.2 1.0.1 !1.0.0-rc.4 !1.0.0-rc.3 !1.0.0-rc.2 !1.0.0-rc.1 %1.0.0-beta.4 %1.0.0-beta.3 %1.0.0-beta.2 )1.0.0-beta.1.3ȹ)1.0.0-beta.1.2Ⱥ)1.0.0-beta.1.1Ȼ%1.0.0-beta.1 '1.0.0-alpha.7 '1.0.0-alpha.6 '1.0.0-alpha.5 '1.0.0-alpha.4 '1.0.0-alpha.3 '1.0.0-alpha.2 '1.0.0-alpha.1 1.0.0 !dev-master +dev-82-bracketsp5dev-66-custom-errorsq!=dev-60-custom-exceptions 9dev-18-discrep-isemail 2.0.x-dev 1.2.x-dev 1.2.9 1.2.8 1.2.7 1.2.6 1.2.5 1.2.4 1.2.3 1.2.2 1.2.11a1.2.10b1.2.1 1.2.0 1.1.1 1.1.0 1.0.0 !dev-master T1.1.0 U1.0.1 V1.0.0 W!dev-master ^#Adev-fix_for_fatal_in_pr_13 b0.2.x-devz0.2.0 _0.1.x-dev `0.1.2 a!dev-master 3dev-deprecated-v0.9 1.0.x-dev 1.0.6 1.0.3 1.0.2 1.0.10 1.0.0 0.9.1 0.9 #dev-rewrite !dev-master 3.0.3 3.0.2 3.0.1 2.6.1 2.6 2.5 2.4 2.3 2.2 2.1 2.0 1.1 1.0 
0 dev-util 3dev-timedate-memory /dev-serverhandler !dev-master !=dev-feat-dynamic-padding+dev-dev_rebased dev-dev 1.9.9 1.9.8 1.9.7 1.9.6 1.9.5 1.9.4 1.9.3 1.9.2 1.9.15 1.9.14 1.9.13 1.9.12 1.9.11 1.9.10 1.9.1 1.9 1.8 1.7.1  1.7 1.6.1 1.6 1.5.1 1.5 1.4 1.3 1.2 !1.11.x-dev1.11.0!1.10.x-dev 1.10.51.10.4 1.10.3 1.10.2 1.10.1 1.10.0 #2.0
  nZK<-
~o`M9*}X>*xiVG4vcTE6'








r
]
I
:
+

									~	o	\	H	4	 	l[G3"nZF2
mYE1	o[G3n]I5!p\H7#o^J9%  !11.15.05.29!11.15.02.26!11.14.12.10!11.14.11.15!10.14.09.23!10.14.09.17!10.14.09.16!0dev-master01.x-devΤ!01.16.01.14Υ00.x-dev!00.15.10.26Φ!00.15.08.28!00.15.05.29!00.15.04.13!00.15.02.25!00.14.12.10!00.14.09.23!00.14.09.17!00.14.09.16!/dev-master/1.x-dev΅!/1.16.01.15Ά!/1.16.01.14·/0.x-dev!/0.15.10.26Έ!/0.15.08.25!/0.15.05.29!/0.15.02.23!/0.14.12.22!/0.14.12.10!/0.14.11.09!/0.14.09.23!/0.14.09.17!/0.14.09.16!.dev-master.2.x-devx!.2.16.01.11y.1.x-dev!.1.15.10.29z!.1.15.09.08!.1.15.05.29!.1.15.02.20!.1.14.12.10!.1.14.11.26!.1.14.11.07!.0.14.09.23!.0.14.09.17!.0.14.09.16!-dev-master-1.x-devj!-1.16.01.15k!-1.16.01.14l-0.x-dev!-0.15.11.09m!-0.15.05.27!-0.15.05.12!-0.15.02.19!-0.14.12.10!-0.14.11.26!-0.14.11.09!-0.14.09.23!-0.14.09.17!-0.14.09.16!,dev-master,2.x-dev!,2.15.11.09!,2.15.09.03!,2.15.09.01!,2.15.07.07!,2.15.07.05!,2.15.06.02!,2.15.06.01!,2.15.05.29!,2.15.04.13!,2.15.02.18!,2.15.01.24!,2.15.01.23!,2.14.12.10!,2.14.11.26!,2.14.11.09!,2.14.09.23!,2.14.09.17!,1.14.09.16!+dev-master+3.x-dev?!+3.16.01.14@!+3.16.01.11A+2.x-dev!+2.15.10.29B!+2.15.10.21(!+2.15.08.25!+2.15.05.29!+2.15.02.17!+2.14.12.10!+2.14.11.26!+2.14.11.09!+2.14.09.23!+2.14.09.17!+1.14.09.16!*dev-master*2.0.x-dev*2.0.2*2.0.12&*2.0.02'*1.4.x-dev*1.4.1*1.4.0*1.3.2*1.3.1*1.3.0*1.2.x-dev*1.2.3*1.2.2*1.2.1*1.2.0!)dev-master	-#)dev-develop	:)1.4.x-dev)1.3.x-devD&)1.3.3)1.3.2)1.3.1)1.3.0)1.2.x-devD')1.2.1)1.2.0D()1.1.x-dev	.)1.1.4D))1.1.3	/)1.1.2	0)1.1.1	1)1.1.0	2)1.0.x-dev	3)1.0.5	4)1.0.4	5)1.0.3	6)1.0.2	7)1.0.1	8)1.0.0	9"?(dev-requests-http-adapter	!(dev-master,S(dev-feature/allow-ignore-ssl-errors	
(1.0.x-devˇ(1.0.0ˈ(0.8.x-dev(0.8.0(0.7.1	 (0.7.0	(0.6.0	(0.5.0	(0.4.0	(0.3.0	(0.2.0	(0.1.2	(0.1.1	(0.1.0		1'dev-some-underflow!'dev-master-'dev-global-queue$C'dev-collection-cancellation'2.2.1'2.2.0'2.1.0'2.0.x-dev'2.0.0'1.1.0'1.0.x-dev'1.0.4'1.0.3'1.0.2'1.0.1'1.0.0!&dev-master&1.1.x-dev&1.1.0&1.0.7&1.0.6&1.0.5&1.0.4&1.0.3&1.0.2&1.0.1&1.0.0!%dev-master%0.9.1%0.9.0!$dev-master$1.4.2$1.4.1$1.4.0!#dev-master$C#dev-1.7-move_callback_tweak#2.0.x-dev#2.0.6r#2.0.5s#2.0.4#2.0.3#2.0.2   #2.0.1
  ~j[L=.tbSC4%qbSD5&{l]N?0!p]J5!









w
h
Y
J
;
)

									}	n	_	P	A	2	#		o]K<- kWC4%q_M;,whYJ;,rcTE6'	zfWH9*p^O?0!        62.2.862.2.762.2.662.2.562.2.462.2.362.2.262.2.1062.2.162.2.0rc362.2.0rc262.2.0rc162.2.062.1.662.1.562.1.462.1.362.1.262.1.162.1.062.0.862.0.762.0.662.0.562.0.462.0.3!5dev-master!5dev-legacy#5dev-develop53.0.x-devТ52.6.x-dev52.5.x-dev52.5.152.5.052.4.9Ц52.4.852.4.752.4.652.4.552.4.452.4.352.4.252.4.152.4.0rc752.4.0rc652.4.0rc552.4.0rc452.4.0rc352.4.0rc252.4.0rc152.4.052.3.952.3.852.3.752.3.652.3.552.3.452.3.352.3.252.3.152.3.052.2.952.2.852.2.752.2.652.2.552.2.452.2.352.2.252.2.1052.2.152.2.0rc352.2.0rc252.2.0rc152.2.052.1.652.1.552.1.452.1.352.1.252.1.152.1.052.0.852.0.752.0.652.0.552.0.452.0.3!4dev-master(!4dev-legacyc#4dev-developb42.6.x-dev)42.5.x-dev*42.5.1+42.5.0,42.4.942.4.8-42.4.7.42.4.6/42.4.5042.4.4142.4.3242.4.2342.4.1442.4.0rc7642.4.0rc6742.4.0rc5842.4.0rc4942.4.0rc3:42.4.0rc2;42.4.0rc1<42.4.0542.3.9=42.3.8>42.3.7?42.3.6@42.3.5A42.3.4B42.3.3C42.3.2D42.3.1E42.3.0F42.2.9H42.2.8I42.2.7J42.2.6K42.2.5L42.2.4M42.2.3N42.2.2O42.2.10G42.2.1P42.2.0rc3R42.2.0rc2S42.2.0rc1T42.2.0Q42.1.6U42.1.5V42.1.4W42.1.3X42.1.2Y42.1.1Z42.1.0[42.0.8\42.0.7]42.0.6^42.0.5_42.0.4`42.0.3a!3dev-master!3dev-legacy6#3dev-develop533.1.x-dev33.0.x-dev33.0.032.7.x-dev7\32.6.x-dev32.6.232.6.17^32.6.07_32.5.x-dev32.5.37`32.5.232.5.132.5.032.4.97d32.4.8 32.4.732.4.632.4.532.4.432.4.332.4.232.4.132.4.0rc7	32.4.0rc6
32.4.0rc532.4.0rc432.4.0rc332.4.0rc232.4.0rc132.4.032.3.932.3.832.3.732.3.632.3.532.3.432.3.332.3.232.3.132.3.032.2.932.2.832.2.732.2.632.2.532.2.4 32.2.3!32.2.2"32.2.1032.2.1#32.2.0rc3%32.2.0rc2&32.2.0rc1'32.2.0$32.1.6(32.1.5)32.1.4*32.1.3+32.1.2,32.1.1-32.1.0.32.0.8/32.0.7032.0.6132.0.5232.0.4332.0.34!2dev-master#2dev-develop20.1.0!1dev-master12.x-devο!12.16.01.1111.x-dev   62.2.9
    yjXF4"teVG4!}n_L0vbN:&xdP<( 






z
f
W
H
9
*

										l	]	N	?	,		
bK9"r`N<*paRC4%vgXI:+n\J8&r_L7#
m[I7(           3=dev-cellRestructureV)=dev-calcEngineW)=dev-HTMLReaderT=1.9.x-devH=1.8.x-devI=1.8.1J=1.8.0rc4L=1.8.0rc3M=1.8.0rc2N=1.8.0rc1O=1.8.0K=1.7.9-rc1Q=1.7.9P!<dev-masterB#<dev-developF<1.0.x-devC<1.0.1D<1.0.0E+;dev-release-2.4!;dev-master#;dev-develop;2.6.x-dev;2.5.x-dev;2.5.2;2.5.1;2.5.0;2.4.9;2.4.8;2.4.7;2.4.6;2.4.5;2.4.4;2.4.3;2.4.2;2.4.1;2.4.0rc7;2.4.0rc6;2.4.0rc5;2.4.0rc4;2.4.0rc3;2.4.0rc2;2.4.0rc1;2.4.0;2.3.9;2.3.8;2.3.7;2.3.6;2.3.5;2.3.4;2.3.3;2.3.2;2.3.1;2.3.0;2.2.9;2.2.8;2.2.7;2.2.6;2.2.5;2.2.4;2.2.3;2.2.2;2.2.10;2.2.1;2.2.0rc3;2.2.0rc2;2.2.0rc1;2.2.0;2.1.6;2.1.5;2.1.4;2.1.3;2.1.2;2.1.1;2.1.0;2.0.8;2.0.7;2.0.6;2.0.5;2.0.4;2.0.3;2.0.2;2.0.1;2.0.0rc7;2.0.0rc6;2.0.0rc5;2.0.0rc4;2.0.0rc3;2.0.0rc2;2.0.0rc1!;2.0.0beta5!;2.0.0beta4;2.0.0:dev-xunit!:dev-xdebug/:dev-virtual-hooks:dev-tap!:dev-master':dev-issue#510:dev-fcgi':dev-directory ;:dev-autoloaderCacheFile):dev-autoloader:2.x-dev:2.5.2Z:2.5.1:2.5.0:2.4.x-dev]:2.4.1:2.4.0:2.3.x-dev`:2.3.0(:2.2.x-devb:2.2.2:2.2.1:2.2.0:2.1.x-devf:2.1.0:2.0.x-devh:2.0.2i:2.0.1:2.0.0:1.x-dev:1.2.5m:1.2.4n:1.2.3o:1.2.2:1.2.1:1.2.0:1.1.0:1.0.0:0.0.1!9dev-mastero94.x-devΰ!94.16.01.11α93.x-devp!93.15.11.09β!93.15.08.03q!93.15.07.28r!93.15.05.29s!92.15.03.25t!92.15.02.19u!92.14.12.24v!92.14.12.10w!92.14.11.09x!92.14.09.23y!92.14.09.16z!91.14.09.16{!8dev-master81.x-devΗ!81.16.01.15Θ!81.16.01.14Ι80.x-dev!80.15.08.13!80.15.05.29!80.15.02.24!80.14.12.10!80.14.11.25!80.14.11.14!80.14.09.23!80.14.09.17!80.14.09.1677dev-rabbitmq-test-fixҰ!7dev-master'I7dev-hotfix/streamwrapperresult"?7dev-feature/zftool-checks17dev-feature/runner71.0.x-dev71.0.8ҥ71.0.7Ҧ71.0.671.0.571.0.471.0.371.0.271.0.171.0!6dev-masterp!6dev-legacy#6dev-develop62.6.x-devq62.5.x-devr62.5.1s62.5.0t62.4.9ѫ62.4.8u62.4.7v62.4.6w62.4.5x62.4.4y62.4.3z62.4.2{62.4.1|62.4.0rc7~62.4.0rc662.4.0rc562.4.0rc462.4.0rc362.4.0rc262.4.0rc162.4.0}62.3.962.3.862.3.762.3.662.3.562.3.462.3.362.3.262.3.1
  zfR>*vbQ=)xdP<(whYJ7#ufWH9*








v
g
T
E
2
									s	f	Y	J	=	0	!	|lXD4$zfWH9&yj[L=.|m^K8$|l\L<,~o`QB3$yj[L9*     M2.3.15M2.3.14M2.3.13M2.3.12M2.3.11M2.3.10M2.3.1M2.3.0M2.2.x-devM2.2.9M2.2.8M2.2.7M2.2.6M2.2.5M2.2.4M2.2.3M2.2.2M2.2.11M2.2.10M2.2.1M2.2.0M2.1.x-devM2.1.9M2.1.8M2.1.7M2.1.6M2.1.5M2.1.4M2.1.3M2.1.2M2.1.13M2.1.12M2.1.11M2.1.10M2.1.1M2.1.0M2.0.x-devM2.0.9M2.0.7M2.0.25M2.0.24M2.0.23M2.0.22M2.0.21M2.0.20M2.0.19M2.0.18M2.0.17M2.0.16M2.0.15M2.0.14M2.0.13M2.0.12M2.0.10)Ldev-var-dumper!Ldev-masterL2.0.x-devL1.0.x-devL1.0.8HL1.0.7L1.0.6L1.0.5L1.0.4L1.0.3L1.0.2L1.0.1L1.0.0!Kdev-masterK2.0.x-devK1.3.x-devK1.3.5K1.3.4K1.3.3K1.3.2K1.3.1K1.3.0K1.2.x-devK1.2.5K1.2.4K1.2.3K1.2.2K1.2.1K1.2.0K1.1.x-devK1.1.2K1.1.1K1.1.0K1.0.x-devK1.0.2K1.0.1K1.0.0!Jdev-masterJ3.0.x-devJ2.9.1J2.9.0J2.8.2J2.8.1J2.8.0J2.7.0J2.6.1J2.6.0J2.5.0J2.4.14J2.4.13J2.4.12!J2.14.x-dev`!J2.13.x-devJ2.13.0`J2.12.0J2.11.0!J2.10.x-devJ2.10.1J2.10.0!Idev-masterG-UIdev-VasekPurchart-git-blame-optionalPI0.9.2I0.9.1I0.9HI0.8II0.7.1JI0.7KI0.6LI0.5MI0.4NI0.3O!Hdev-master|uH1.1.0|vH1.0.x-dev|wH1.0.0|x!Gdev-master|g$CGdev-improved_string_presets|l-Gdev-cipher_mixer|mG1.1.x-dev|hG1.1.0|iG1.0.x-dev|jG1.0.0|k!Fdev-master|^F1.1.0%F1.0.0&!Edev-master|]E1.0.1kE1.0.0l!Ddev-master@DD1.8.0KD1.7.1@ED1.7.0@FD1.6.0@GD1.5.0@HD1.4.0@ID1.3.1@JD1.3.0@KD1.2.2@LD1.2.1@MD1.2.0@ND1.1.1@OD1.1.0@PD1.0.1@QD1.0.0@R!Adev-master!A0.1.1!A0.1.0!A0.0.1!@dev-php-7!!@dev-master!@dev-bav-0!@1.2.0!@1.1.0!@1.0.4!@1.0.3!@1.0.2!@1.0.1!@1.0.0!@0.29.2!@0.29.1!@0.29!@0.28!!?dev-master?2.x-dev!?2.16.01.11?!?2.15.07.28!?2.15.05.29!?2.15.03.25!?2.15.02.19!?2.14.12.24!?2.14.12.10!?2.14.11.09!?2.14.09.23!?2.14.09.16!?1.14.09.16!>dev-masteri>2.x-devӕ!>2.16.01.15Ӗ!>2.16.01.14ӗ!>2.16.01.11Ә>1.x-devj!>1.15.11.09ә!>1.15.09.22W!>1.15.09.08k!>1.15.07.28l!>1.15.05.29m!>1.15.04.13n!>1.15.02.05o!>1.15.02.02p!>1.14.12.10q!>1.14.12.09r!>1.14.11.10s!>1.14.11.09t!>1.14.09.25u!>1.14.09.23v!>0.14.09.17w!>0.14.09.16x!=dev-masterG-=dev-experimentalU/=dev-develop_2.0.0R   M2.3.16
   qaQA1!teVG8%~o`QB/ whYJ;,
sdUF7(








s
d
U
F
3
$

 								q	b	N	?	0	!		rcT0r^O@1"sdUF7(
sdUF7(yjWC4%p`P@0  p`P@0                  Z0.9.06Z0.8.07Z0.22.0޷Z0.21.1޸Z0.21.0޹Z0.20.4޺Z0.20.3޻Z0.20.2޼Z0.20.1Z0.20.0Z0.19.3Z0.19.2Z0.19.1 Z0.19.0!Z0.18.1"Z0.18.0#Z0.17.2$Z0.17.1%Z0.17.0&Z0.16.0'Z0.15.1(Z0.15.0)Z0.14.1*Z0.14.0+Z0.13.0,Z0.12.1-Z0.12.0.Z0.11.2/Z0.11.10Z0.11.01Z0.10.22Z0.10.13Z0.10.04!Ydev-masterQY1.0.x-devRY1.0.3SY1.0.2TY1.0.1UY1.0.0V!Xdev-masterX1.0.x-devX1.0.1X1.0.0+Wdev-prepare_1_5Q-Wdev-picture_testR!Wdev-masterI1Wdev-faster_barcodeS/Wdev-country_names&W1.6.x-devJW1.5.0KW1.4.0LW1.3.0MW1.2.0NW1.1.0OW1.0.0P!Udev-masterdU2.0eU0.7fU0.5.0gU0.4.4hU0.4.3iU0.4.2jU0.4.1kU0.4.0lU0.3.2mU0.3.1nU0.3.0oU0.2.8pU0.2.7qU0.2.6rU0.2.5sU0.2.4tU0.2.3uU0.2.2v!Tdev-masterT1.6.1T1.6.0T1.5.0T1.4.3T1.4.2T1.4.1T1.4.0!Sdev-masterS1.2.0S1.1.0S1.0.7S1.0.6!Rdev-masterR2.0.x-devR2.0.2R2.0.1#R2.0.0-BETA2#R2.0.0-BETA1R2.0.0R1.4.x-devR1.4.3R1.4.2R1.4.1!Qdev-masterr#AQdev-feature/security-snifs{Q3.1.0sQ3.0.0tQ2.1.0uQ2.0.0vQ1.2.1wQ1.2.0xQ1.1.0yQ1.0.0z!Pdev-masternP0.2.0o!Odev-masterO1.0.4zO1.0.3{O1.0.2|O1.0.1O1.0.0!Ndev-masterN1.0.0!Mdev-masterWM3.1.x-devݟM3.0.x-devXM3.0.1ݡ#M3.0.0-BETA1ݣM3.0.0ݢM2.8.x-devYM2.8.2ݥM2.8.1ݦ#M2.8.0-BETA1ݨM2.8.0ݧM2.7.x-devZM2.7.9ݪM2.7.8ݫM2.7.7ݬM2.7.6ݭM2.7.5ݮM2.7.4[M2.7.3\M2.7.2]M2.7.1^#M2.7.0-BETA2`#M2.7.0-BETA1aM2.7.0_M2.6.x-devbM2.6.9eM2.6.8fM2.6.7gM2.6.6hM2.6.5iM2.6.4jM2.6.3kM2.6.2lM2.6.13ݷM2.6.12ݸM2.6.11cM2.6.10dM2.6.1m#M2.6.0-BETA2o#M2.6.0-BETA1pM2.6.0nM2.5.x-devqM2.5.9uM2.5.8vM2.5.7wM2.5.6xM2.5.5yM2.5.4zM2.5.3{M2.5.2|M2.5.12rM2.5.11sM2.5.10tM2.5.1}M2.5.0-RC1#M2.5.0-BETA2#M2.5.0-BETA1M2.5.0~M2.4.x-devM2.4.9M2.4.8M2.4.7M2.4.6M2.4.5M2.4.4M2.4.3M2.4.2M2.4.10M2.4.1M2.4.0-RC1#M2.4.0-BETA2#M2.4.0-BETA1M2.4.0M2.3.x-devM2.3.9M2.3.8M2.3.7M2.3.6M2.3.5M2.3.4M2.3.37M2.3.36M2.3.35M2.3.34M2.3.33M2.3.32M2.3.31M2.3.30M2.3.3M2.3.29M2.3.28M2.3.27M2.3.26M2.3.25M2.3.24M2.3.23M2.3.22M2.3.21M2.3.20M2.3.2M2.3.19M2.3.18 Z0.9.15
    ZE+kU8 paRC/ whYJ;' gXI6' 







|
m
^
O
;
,

									y	c	O	8	&		jT>/ |hUF7(rcN;(kXE6'	yj[L9&qZC-l]J;(
 n1.0.0 m1.x-dev m1.1.2m1.1.1 m1.1.0 m1.0.0 !ldev-master l1.x-devl1.2.0l1.1.0l1.0.x-devl1.0.0 l0.1.x-dev l0.1.0 !kdev-master k1.0.x-dev %k1.0.0-alpha9 %k1.0.0-alpha8 %k1.0.0-alpha7 %k1.0.0-alpha6 %k1.0.0-alpha5 %k1.0.0-alpha4 %k1.0.0-alpha3 %k1.0.0-alpha2 'k1.0.0-alpha11'k1.0.0-alpha10 %k1.0.0-alpha1 "?jdev-pgsql-connection-test9!jdev-master>wjdev-hotfix/#714-disable-prepares-on-pgsql-for-php-5.6:(Kjdev-docs/remove-2-4-from-readmej2.6.x-devj2.5.x-devj2.5.4bj2.5.3cj2.5.2j2.5.1j2.5.0-RC2j2.5.0-RC1#j2.5.0-BETA3#j2.5.0-BETA2j2.5.0j2.4.x-devj2.4.5lj2.4.4j2.4.3j2.4.2j2.4.1j2.4.0-RC2j2.4.0-RC1#j2.4.0-BETA2#j2.4.0-BETA1j2.4.0j2.3.x-devj2.3.5 j2.3.4!j2.3.3"j2.3.2#j2.3.1$j2.3.0-RC4&j2.3.0-RC3'j2.3.0-RC2(j2.3.0-RC1)#j2.3.0-BETA1*j2.3.0%j2.2.x-dev+j2.2.2,j2.2.1-#j2.2.0-beta13j2.2.0-RC3/j2.2.0-RC20j2.2.0-RC11#j2.2.0-BETA22j2.2.0.j2.1.x-dev4j2.1.75j2.1.66j2.1.57j2.0.x-dev8!idev-master!hdev-masterh0.1.0!gdev-master#fdev-wip-1.1!fdev-mastertf2.0.x-devuf1.1.x-devvf1.1.1wf1.1.0xf1.0.2yf1.0.1z%f1.0.0-ALPHA4|%f1.0.0-ALPHA3}%f1.0.0-ALPHA2~%f1.0.0-ALPHA1f1.0.0{!edev-masterde1.3.x-devee1.3.5fe1.3.4ge1.3.3he1.3.2ie1.3.1je1.3.0kddev-php7~'ddev-normalizew!ddev-masters%ddev-cs-fixerxd1.0.1td1.0.0ud0.0.1v!cdev-masterc1.0.x-devc1.0.0!bdev-masteryb0.0.5b0.0.4zb0.0.3{b0.0.2|b0.0.1}!adev-masterma1.2.0a1.1.0na1.0.7oa1.0.6pa1.0.5qa1.0.4ra1.0.3sa1.0.2ta1.0.1ua1.0.0v/`dev-twig-2-compatI!`dev-masterb`1.1.x-devE`1.1.0F`1.0.x-devc`1.0.0d`0.1.0e"?_dev-strpos-request-method=!_dev-master ;_dev-default_param_value_1.1.0_1.0.1_1.0.0!^dev-master^0.3^0.2^0.1!]dev-masterQ]0.1.1R]0.1.0S]0.0.7T]0.0.6U]0.0.5V]0.0.4W]0.0.3X]0.0.2Y]0.0.1Z!\dev-master̡#\dev-develop̦\2.1.x-dev̢\2.0.x-dev̣\2.0.0̤\1.0.0̥![dev-master\[1.1.3][1.1.2^[1.1.1_[1.1.0`[1.0.0a5Zdev-rewrite-no-flushE1Zdev-release-0-21-21Zdev-release-0-21-11Zdev-release-0-20-51Zdev-release-0-20-41Zdev-release-0-20-1@3Zdev-plugin-refactor9%Zdev-passthru89Zdev-package-manager-v2;9Zdev-package-command-v3:!Zdev-no-svnD$CZdev-missing-man-description!Zdev-master#Zdev-loggingA5Zdev-fix-upgrade-1139B-Zdev-fix-travis-2C#Zdev-fix-594?%EZdev-custom-scaffold-templateF9Zdev-after-wp-load-hook>&GZdev-1842-php-7-second-attempt<$CZdev-1390-check-update-major=!mdev-master 
    zk\M9*{j[L=.s^O<(
|hUA2|m^O@1"





n
_
P
A
2
#

							h	T	3	$		rcTE6'	sdUF7(
paR>/ {l]N?0!|m^O@1 teVG8)ufWH9*          3.7.23.7.13.7.03.6.03.5.03.4.33.4.23.4.13.4.03.3.13.3.03.2.03.1.23.1.13.1.03.0.73.0.63.0.53.0.43.0.33.0.23.0.13.0.02.8.82.8.72.8.62.8.52.8.42.8.32.8.22.8.12.8.02.7.2!dev-master3.9.23.9.13.9.03.8.13.8.03.7.x-dev3.7.43.7.33.7.23.7.13.7.03.6.03.5.03.4.33.4.23.4.13.4.03.3.13.3.03.2.03.1.23.1.13.1.03.0.73.0.63.0.53.0.43.0.33.0.23.0.13.0.02.8.82.8.72.8.62.8.52.8.42.8.32.8.22.8.12.8.02.7.2!dev-masterm3.9.2n3.9.1o3.9.0p3.8.1q3.8.0r3.7.x-devs3.7.4t3.7.3u3.7.2v3.7.1w3.7.0x3.6.0y3.5.0z3.4.3{3.4.2|3.4.1}3.4.0~3.3.13.3.03.2.03.1.23.1.13.1.03.0.73.0.63.0.53.0.43.0.33.0.23.0.13.0.02.8.82.8.72.8.62.8.52.8.42.8.32.8.22.8.12.8.02.7.2!~dev-masterf~2.0.x-devg~2.0.0h~1.0.x-devi~1.0.0j~0.1.3k~0.1.0l ;}dev-streaming-multipartd!}dev-masterV9}dev-compat-guzzle-depse)M}dev-WyriHaximus-php7-hhvm-travisc}0.5.x-devW}0.4.1X}0.4.0Y}0.3.x-devZ}0.3.0[}0.2.6\}0.2.3]}0.2.2^}0.2.1_}0.2.0`}0.1.1a}0.1.0b#|dev-website@0[|dev-self-link-scheme-visibility-controla!|dev-master,3|dev-issue-22-take-3?'|dev-issue-129>|3.6.x-dev-|3.5.x-dev.|3.5.5/|3.5.40|3.5.31|3.5.22|3.5.13|3.5.04|2.5.x-dev5|2.5.46|2.5.37|2.5.28|2.5.19|2.5.0:|2.4.x-dev;|2.4.3<|2.4.2=!{dev-masterv{1.0.x-devw{1.0.0x!zdev-mastertz1.0.x-devu!ydev-masterry1.0.x-devs!xdev-mastermx1.0.x-devnx1.0.2ox1.0.1px1.0.0q!wdev-masteriw1.0.x-devjw1.0.1kw1.0.0l!vdev-master_v1.0.x-dev`v1.0.1a#v1.0.0-BETA1cv1.0.0b!udev-masterZu0.2.2[u0.2.1\u0.2]u0.1^!tdev-masterWt0.2Xt0.1Y!sdev-masterJs0.4.7Ks0.4.6Ls0.4.5Ms0.4.4Ns0.4.3Os0.4.2Ps0.4.1.1Qs0.4.1Rs0.4Ss0.3Ts0.2Us0.1V!rdev-master@r1.0.x-devAr1.0.0B!qdev-master8q1.0.x-dev9q1.0.1:q1.0.0;!pdev-master.p1.0.3/p1.0.20p1.0.11p1.0.02!odev-mastero1.x-devo1.0.1o1.0.0!ndev-master n1.x-dev 3.7.3
    paRC4%qbSD5&xiZK<-qbSD5&teVG8)









m
Y
G
.

									s	d	U	F	3			uaRC4%paRC4%xeQB3${l]J6(t`M>/ rcTE6'	yj[L=.      2.0.4@2.0.3@2.0.2@2.0.1@2.0.0@1.0.x-dev@1.0.7@1.0.6@1.0.5@1.0.4@1.0.3@1.0.2@1.0.1@1.0.0@0.1.0@!dev-master@1.3.x-dev@1.3.1G1.3.0@1.2.0@1.1.0@1.0.5@1.0.4@1.0.3@1.0.2@1.0.1@1.0.0@!dev-master@1.2.x-dev@1.2.0@1.1.0@1.0.9@1.0.8@1.0.7@1.0.6@1.0.5@1.0.4@1.0.3@1.0.2@1.0.1@1.0.0@dev-proxy@!dev-master?dev-curlm@0.9@ 0.8@0.7@0.6@0.5@0.4@0.3@0.15?0.14?0.13?0.12?0.11?0.10?!dev-master?1.2.x-dev?1.2.0?1.1.0?1.0.1?1.0.0?+dev-update_sahi?!dev-master?1.2.x-dev?1.2.0?1.1.0?1.0.5?1.0.4?1.0.3?1.0.2?1.0.1?1.0.0?!dev-master:&2.1.x-dev:'2.1.0:(2.0.1:)2.0.0:*1.3.x-dev:+1.3.3:,1.3.2:-1.3.1:.1.3.0:/1.2.x-dev:01.2.0:11.1.4:21.1.3:31.1.2:41.1.1:51.1.0:61.0.1:71.0.0:8-Udev-revert-675-cookie-with-semicolon!dev-master9m#Adev-2-architecture-changes91.7.x-dev9n1.7.09o1.6.19p1.6.09q1.5.09r1.4.39s1.4.29t1.4.19u!1.4.0beta59w!1.4.0beta49x!1.4.0beta39y!1.4.0beta29z!1.4.0beta19{1.4.09v1.3.49|1.3.39}1.3.29~1.3.191.3.09!dev-master51.1.x-dev51.1.051.0.151.0.05	!dev-master&1.1.x-dev&1.1.2&1.1.1&1.1.0&1.0.x-dev&1.0.1&1.0.0&!dev-master1.0.x-dev1.0.0+dev-read_bufferOdev-readN!dev-master:0.5.x-dev;0.4.3p0.4.2<0.4.1=0.4.0>0.3.x-dev?0.3.4@0.3.3A0.3.2B0.3.1C0.3.0D0.2.6E0.2.5F0.2.4G0.2.3H0.2.2I0.2.1J0.2.0K0.1.1L0.1.0M!dev-master*0.4.x-dev+0.4.2,0.4.1-0.4.0.0.3.x-dev/0.3.400.3.310.3.220.3.130.3.040.2.650.2.360.2.070.1.180.1.09+dev-singularity!dev-master0.5.x-dev0.4.10.4.00.3.x-dev0.3.40.3.30.3.00.2.70.2.60.2.30.2.00.1.10.1.0!dev-master3.9.23.9.13.9.03.8.13.8.03.7.x-dev3.7.43.7.33.7.23.7.13.7.03.6.03.5.03.4.33.4.23.4.13.4.03.3.13.3.03.2.03.1.2 3.1.13.1.03.0.73.0.63.0.53.0.43.0.33.0.23.0.1	3.0.0
!dev-master3.9.23.9.13.9.03.8.13.8.03.7.x-dev3.0.0@
  paN;'	wgWH5"wdUF7$r]J7$uaQA-








p
]
J
;
(


								v	c	P	=	(		 whT=-paRC4 xiZK8)	p[G8)xiZK<-{lYJ7#{l]K<-  2.7.x-dev{ 2.7.9"2.7.8#2.7.7$2.7.6%2.7.5{!2.7.4{"2.7.3{#2.7.2{$2.7.1{%2.7.0-RC{'2.7.0{&2.6.9{*2.6.8{+2.6.7{,2.6.6{-2.6.5{.2.6.4{/2.6.3{02.6.2{12.6.12-2.6.11{(2.6.10{)2.6.1{2!2.6.0-beta{52.6.0-RC1{42.6.0{32.5.x-dev{62.5.9{72.5.8{82.5.7{92.5.6{:2.5.5{;2.5.4{<2.5.3{=2.5.2{>2.5.1{?!2.5.0-beta{C2.5.0-RC2{A2.5.0-RC1{B2.5.0{@2.4.9{E2.4.8{F2.4.7{G2.4.6{H2.4.5{I2.4.10{D+dev-regex-lexerz'dev-operatorsz!dev-masterz'dev-kernelsetz#dev-developz1.0.x-devz1.0.1z1.0.0z0.9.0z!dev-masterz#dev-developz1.4.0z1.3.1z1.3.0z1.2.4z!dev-masterz7dev-feature/cli-toolsz1.0.x-devz'1.0.0-alpha.1z0.x-devz0.6.1z0.6.0z0.5.0-RC1z0.5.0z0.4.3z0.4.2z0.4.1z0.4.0z0.3.0z0.2.0z0.1.1z0.1.0z/dev-update-fxer-2z-dev-update-fixerz+dev-phpcs-fixerz!dev-masterzt2.0.62.0.5zu2.0.4zv2.0.3zw2.0.2zx2.0.1zy2.0.0zz1.x-devz{1.0.0z|0.1.31z}0.1.30z~0.1.29z0.1.28z0.1.27z0.1.26z0.1.25z0.1.24z'dev-rewrite-aa!dev-mastera1.0.0a%dev-post-2.4]!dev-master]b#dev-develop]4.0.x-dev]c3.x-dev]d3.4.x-dev3.3.x-dev]e#3.3.0.x-devV3.3.0-rc1W#3.3.0-beta13.2.x-dev]f3.2.1-rc23.2.1-rc13.2.13.2.0-rc23.2.0-rc1]g#3.2.0-beta2]h#3.2.0-beta1]i3.2.03.1.x-dev]j3.1.9-rc1]w3.1.9]v3.1.8]x3.1.7-rc1]z3.1.7]y3.1.6-rc3]|3.1.6-rc2]}3.1.6-rc1]~3.1.6]{3.1.5-rc1]3.1.5]3.1.4-rc1]3.1.4]3.1.3-rc2]3.1.3-rc1]3.1.3]3.1.2-rc1]3.1.2]!3.1.16-rc13.1.163.1.15]k!3.1.14-rc1]m3.1.14]l!3.1.13-rc1]o3.1.13]n3.1.12]p!3.1.11-rc1]r3.1.11]q!3.1.10-rc2]t!3.1.10-rc1]u3.1.10]s3.1.1]3.1.0-rc3]3.1.0-rc2]3.1.0-rc1]#3.1.0-beta3]#3.1.0-beta2]#3.1.0-beta1]3.1.0]3.0.x-dev]3.0.9-rc1]3.0.9]3.0.8]3.0.7-rc1]3.0.7]3.0.6-rc2]3.0.6-rc1]3.0.6]3.0.5]3.0.4]3.0.3-rc2]3.0.3-rc1]3.0.3]3.0.2.1]3.0.14]3.0.13]3.0.12]!3.0.11-rc1]3.0.11]!3.0.10-rc1]3.0.10]2.5.x-dev]2.4.x-dev]2.4.9]2.4.13]2.4.12]2.4.11]2.4.10]!dev-master[0.2.10.2.0o0.1.x-devo0.1.4[0.1.3[0.1.2[0.1.1[0.1.0[!dev-masterC2.0.x-devC1.0.x-devC1.0.4C1.0.3C1.0.2C1.0.1C1.0.0C!dev-master@3.1.x-dev@3.1.2Y3.1.1@   3.1.0@
    }hS>/ufWH5!nE)aB3$paN?0!








q
b
O
@
-
										q	^	O	@	-	vgXI:+~k\M>/ yfS@- fWH9*{l]N?0!~o\M>/ pYB+2.2.52.2.32.2.22.2.12.2.0!dev-master#dev-develop2.1.0'dev-nette-2.2'dev-nette-2.1'dev-nette-2.0!dev-master"?dev-inheritance_awareness!=dev-extra-lazy-listeners3.0.x-dev3.0.0 2.4.x-dev2.4.02.3.x-dev2.3.22.3.12.3.02.2.02.1.x-dev2.1.42.1.32.1.12.1.02.0.22.0.12.01.2.51.2.41.2.31.2.21.2.11.2.01.1.11.1.01.0.21.0.11.0.0!dev-master1.0.21.0.11.0.00.1.20.1.10.1.0!dev-master1.1.31.1.21.1.11.1.01.0.11.0.00.1.01dev-revert-689-4.2f!dev-masterh9dev-element-reflectionv4.2.x-devi#4.2.0.x-devj4.1.x-devY4.1.2Z4.1.1k4.1.0l4.0.1m4.0.0-RC5o4.0.0-RC4p4.0.0-RC3q4.0.0-RC2r4.0.0-RC1s4.0.0n2.8.1t2.8.0u#dev-timeoutdev-test!dev-master
+dev-crypto-once0.4.x-dev0.4.40.4.30.4.20.4.10.4.00.3.x-dev0.3.10.3.0/dev-zlib-features8!dev-master9dev-compat-parser-deps0.5.x-dev0.4.80.4.70.4.60.4.50.4.40.4.30.4.20.4.10.4.00.3.x-dev0.3.10.3.00.2.60.2.50.2.30.2.2&Gdev-missing_RR_implementation!dev-master0.4.x-dev0.4.10.4.00.3.x-dev0.3.20.3.00.2.60.2.50.2.40.2.30.2.20.2.10.2.0 ;dev-windows-test-compat!dev-master0.5.x-dev0.4.00.3.x-dev0.3.0!dev-master0.5.x-dev0.4.00.3.x-dev0.3.20.3.00.2.6!dev-masterR0.5.x-devS0.4.x-devT0.4.2U0.4.1V0.4.0W0.3.x-devX0.3.4Y0.3.3Z0.3.2[0.3.1\0.3.0]0.2.7^0.2.6_0.2.5`0.2.4a0.2.3b0.2.2c0.2.1d0.2.0e0.1.1f0.1.0g7dev-master-mysql-year{O9dev-master-fix-marshal{N5dev-master-find-listV!dev-master{)dev-issue-7906S)dev-issue-6975{L)dev-issue-6297{M)dev-fix-travisT%dev-3.2-hashP1dev-3.0-tree-wrong{J(Kdev-3.0-time-leap-year-problems{K3.2.x-dev{3.2.0-RC13.1.83.1.73.1.63.1.53.1.4 3.1.33.1.23.1.1#3.1.0-beta2{!3.1.0-beta{3.1.0-RC1{3.1.0{3.0.9{3.0.8{3.0.7{3.0.6{3.0.5{3.0.4{3.0.3{3.0.2{3.0.153.0.14{	3.0.13{
3.0.12{3.0.11{3.0.10{3.0.1{#3.0.0-beta3{#3.0.0-beta2{#3.0.0-beta1{%3.0.0-alpha2{%3.0.0-alpha1{3.0.0-RC2{3.0.0-RC1{3.0.0{2.8.x-dev{2.2.4
  ufWH9*xiZK8)|hYJ;,{gXI:+~o`QB/








t
e
V
C
4
%

								q	b	S	D	5	&		paRC4!~o\M>+l]N;,
zgT@1"yj[L=.~o`QB.~qbSD5&2.0.x-devn2.0.3o2.0.2p2.0.1q2.0.0r1.0.7s1.0.6t1.0.5u1.0.4v1.0.3w1.0.1x1.0y!dev-master#dev-develop1.5.1	1.5.0
1.4.11.4.01.3.01.2.31.2.21.2.11.2.0!dev-master04.1.1P4.1.0Q4.0.214.0.124.0.03!dev-masterk#dev-console%dev-bar-json2.4.x-devl2.3.x-devm2.3.82.3.7m2.3.6n2.3.5o2.3.4n2.3.3o2.3.2p2.3.1q2.3.0r2.2.x-devs2.2.9v2.2.8t2.2.7u2.2.6v2.2.5w2.2.4x2.2.3y2.2.2z2.2.1{2.2.0|0.9.1}0.9.0~!dev-master2.4.x-dev2.3.x-dev2.3.12.3.02.2.x-dev2.2.42.2.32.2.22.2.12.2.0!dev-master2.3.x-dev2.3.12.3.02.2.x-dev2.2.12.2.0!dev-master2.4.x-dev2.3.x-dev2.3.12.3.02.2.x-dev2.2.22.2.12.2.0!dev-master2.4.x-dev2.3.x-dev2.3.12.3.02.2.x-dev2.2.22.2.12.2.0!dev-masterj2.4.x-devk2.3.x-devl2.3.42.3.3 2.3.2m2.3.1n2.3.0o2.2.x-devp2.2.5%2.2.4q2.2.3r2.2.2s2.2.1t2.2.0u!dev-masterY2.4.x-devZ2.3.x-dev[2.3.42.3.3\2.3.2]2.3.1^2.3.0_2.2.x-dev`2.2.8a2.2.7b2.2.6c2.2.5d2.2.4e2.2.3f2.2.2g2.2.1h2.2.0i)dev-standaloneX!dev-masterO'dev-generator$2.4.x-devP2.3.x-devQ2.3.22.3.1R2.3.0S2.2.x-devT2.2.2U2.2.1V2.2.0W!dev-master62.3.x-dev72.2.x-dev82.2.42.2.392.2.2:2.2.1;2.2.0<!dev-master#3.0.x-dev$2.4.x-dev%2.4.32.4.2&2.4.1'2.4.0(2.3.x-dev)2.3.42.3.3*2.3.2+2.3.1,2.3.0-2.2.x-dev.2.2.72.2.6/2.2.502.2.412.2.322.2.232.2.142.2.05!dev-master2.4.x-dev2.3.x-dev2.3.42.3.32.3.22.3.12.3.02.2.x-dev2.2.62.2.52.2.42.2.32.2.2 2.2.1!2.2.0"!dev-master2.4.x-dev2.3.x-dev2.3.92.3.82.3.72.3.62.3.52.3.42.3.32.3.22.3.12.3.0	2.2.x-dev
2.2.92.2.82.2.72.2.62.2.52.2.42.2.32.2.22.2.12.2.0!dev-master2.4.x-dev2.3.x-dev2.3.92.3.82.3.72.3.62.3.52.3.42.3.32.3.22.3.12.3.02.2.x-dev2.2.92.2.82.2.7   2.2.6
    yj[H4%|m^O@1"k\M>/ taB wgWG3# 







|
l
\
L
8
(

									p	`	P	@	0	 		 xiZK7'{l]N:*
o_O?/{lXH8(|l\L<,p`P@0 tdT@00.11.00.10.30.10.20.10.10.10.0!dev-master!0.14.x-dev0.14.0!0.12.x-dev0.12.10.12.00.11.20.11.10.11.00.10.10.10.0!dev-mastert!0.14.x-dev0.14.0!0.12.x-devu0.12.10.12.0v0.11.5w0.11.4x0.11.3y0.11.2z0.11.1{0.11.0|0.10.1}0.10.0~!dev-masterk!0.14.x-dev0.14.00.12.0!0.11.x-devl0.11.50.11.4m0.11.3n0.11.2o0.11.1p0.11.0q0.10.1r0.10.0s!dev-masterX!0.15.x-dev0.15.00.14.30.14.20.14.10.14.0!0.12.x-devY0.12.0Z0.11.1[0.11.0\0.10.0]!dev-master0.9.40.9.30.9.20.9.10.9.0!0.15.x-devG0.15.0H0.14.2I0.14.1J0.14.0K0.12.0L!0.11.x-dev0.11.10.11.00.10.20.10.10.10.0!dev-master0.9.0!0.11.x-dev0.11.0!0.10.x-dev0.10.60.10.50.10.40.10.30.10.20.10.0!dev-master1.0.21.0.11.0.0!dev-master&!0.11.x-dev 0.11.0 !0.10.x-dev'0.10.6 0.10.5(0.10.4)0.10.3*0.10.2+0.10.1,0.10.0-!dev-master 0.9.200.9.110.9.02!0.12.x-dev 0.12.1 0.12.0 !0.11.x-dev!0.11.3 0.11.2 0.11.1"0.11.0#0.10.9&0.10.8'0.10.7(0.10.6)0.10.5*0.10.4+0.10.3,0.10.2-0.10.11$0.10.10%0.10.1.0.10.0/!dev-master	0.9.10.9.0!0.12.x-dev s0.12.0 t0.11.1 u0.11.0 v!0.10.x-dev
0.10.9 w0.10.80.10.70.10.60.10.50.10.40.10.30.10.20.10.10.10.0!dev-master0.9.0!0.14.x-dev g0.14.0 h!0.12.x-dev 0.12.2 i0.12.10.12.00.11.10.11.00.10.20.10.10.10.0!dev-master`1.1.01.0.x-deva1.0.0b!dev-masterd!=dev-feature/goaop-parser7dev-feature/cli-toolst1.0.x-deve'1.0.0-alpha.2'1.0.0-alpha.1f0.x-devg0.6.1h0.6.0i0.5.0-RC1k0.5.0j0.4.3l0.4.2m0.4.1n0.4.0o0.3.0p0.2.0q0.1.1r0.1.0s!dev-master(9dev-custom_transformer90.5.50.5.40.5.3)0.5.1*#0.5.0-beta2,!0.5.0-beta-0.5.0+0.4.2.0.4.1/0.4.000.3.310.3.220.3.030.2.240.2.150.2.060.1.170.1.08!dev-master2.1.x-dev#2.1.5.x-dev]2.1.5^2.1.12.1.0-rc12.1.0!dev-master3.0.x-dev3.0.43.0.33.0.2!dev-master3.0.x-dev3.0.43.0.33.0.2!dev-masterm0.10.4
    |l\H4$xhTD0{hO;+zk\M>/ ~hN>*









v
g
X
E
/

										r	c	T	E	6	'			sdUF7(
scSC3#kWG7&r^O;+wgWC/scO?+k[K:)            0.10.60.10.50.10.40.10.30.10.20.10.12<0.10.110.10.100.10.10.10.0!dev-masterW!0.12.x-dev00.12.010.11.02!0.10.x-devX0.10.4Y0.10.3Z0.10.2[0.10.1\0.10.0]!dev-masterS!0.11.x-dev*0.11.0+!0.10.x-devT0.10.2,0.10.1U0.10.0V!dev-master!0.12.x-dev0.12.0!0.11.x-dev 0.11.10.11.0!0.10.2"0.10.1#0.10.0$!dev-master!0.12.x-dev0.12.10.12.0!0.11.x-dev0.11.60.11.50.11.40.11.30.11.20.11.10.11.00.10.30.10.20.10.10.10.0!dev-master0.9.0!0.11.x-devE0.11.1F0.11.0G!0.10.x-dev0.10.90.10.80.10.70.10.60.10.50.10.40.10.30.10.20.10.10H0.10.10.10.0!dev-master!0.14.x-dev0.14.30.14.20.14.10.14.00.12.0!0.11.x-dev0.11.40.11.30.11.20.11.10.11.00.10.80.10.70.10.60.10.50.10.40.10.30.10.20.10.10.10.0!dev-masterO9dev-capture-error-bodys1.0.x-devP0.8.60.8.50.8.40.8.30.8.2T0.8.1U0.8.0V0.7.1W0.7.0X0.6.2Y0.6.1Q0.6.0R0.5.5S0.5.4T0.5.3U0.5.2V0.5.1W0.5.0X0.4.1Y0.4.0Z0.3.6[0.3.5\0.3.0]0.2.5^0.2.4_0.2.3`0.2.2a0.2.1b0.2.0c0.1.x-devd0.1.4e0.1.3f0.1.2g0.1.1h0.1.0i!dev-masterC%dev-issue-30H1.0.x-devD1.0.31.0.2E1.0.1F1.0G!dev-master1.1.01.0.21.0.11.0.0!dev-master!0.11.x-devi0.11.1j0.11.0k!0.10.x-dev0.10.0-dev-refactoring2%dev-perf_opt!dev-masterdev-hhvm2.7.x-dev2.6.02.5.22.5.12.5.02.4.12.4.02.3.02.2.62.2.52.2.42.2.32.2.22.2.12.2.02.1.02.0.22.0.12.0.01.2.11.2.01.1091.x-dev!dev-masteru!0.10.x-devv0.10.0w!dev-masterB+dev-common-markN1.1.x-devC1.1.0D1.0.x-devE1.0.2F1.0.1G1.0.0-rcI1.0.0H0.9.x-devJ0.9.2K0.9.1L0.9.0M!dev-master<!0.11.x-dev&0.11.0'!0.10.x-dev=0.10.3>0.10.2?0.10.1@0.10.0A!dev-master!0.11.x-devl0.11.0m!0.10.x-dev0.10.3n0.10.20.10.10.10.0 !dev-master!0.15.x-dev#0.15.0$0.14.1%0.14.0&!0.12.x-dev0.12.10.12.00.11.40.11.30.11.20.10.7
   zkWG7'{k[G7#wgWG7'paRC/scSC3








o
_
O
?
/
 

								l	Y	5		~o`QB3$paRC4%q^I%whYJ;,}m]M=.o`QB3$rcTE6#      5.0.335.0.285.0.265.0.25	5.0.22
5.0.04.2.x-dev4.2.94.2.84.2.74.2.64.2.54.2.44.2.34.2.24.2.174.2.164.2.124.2.1#4.2.0-BETA14.1.x-dev4.1.914.1.824.1.734.1.644.1.554.1.464.1.304.1.374.1.294.1.284.1.274.1.26 4.1.25!4.1.24"4.1.23#4.1.22$4.1.21%4.1.20&4.1.284.1.19'4.1.18(4.1.17)4.1.16*4.1.15+4.1.14,4.1.13-4.1.12.4.1.11/4.1.1004.1.194.1.0:4.0.x-dev;4.0.9=4.0.8>4.0.7?4.0.6@4.0.5A4.0.4B4.0.3C4.0.2D4.0.10<4.0.1E#4.0.0-BETA4G#4.0.0-BETA3H#4.0.0-BETA2I4.0.0F1.1.0J1.0.0K!dev-master#Adev-feature/parallel-tasks#dev-develop3.0.x-dev2.2.02.1.32.1.22.1.12.1.02.0.62.0.52.0.42.0.32.0.22.0.12.0.01.2.21.2.11.2.01.1.21.1.11.1.01.0.00.9.00.8.10.8.00.7.0 0.6.50.6.40.6.30.6.20.6.10.6.00.5.00.4.00.3.2	0.3.1
0.3.00.2.00.1.10.1.0!dev-master#dev-develop2.0.01.0.11.0.0!dev-xoauth!dev-travis/dev-smtp-refactor#Adev-revert-565-back-compatPdev-qmail%dev-mimesign!dev-master'dev-longlines#dev-autotls5.4.x-devC5.2.95.2.85.2.75.2.65.2.55.2.45.2.14D5.2.135.2.125.2.115.2.10!dev-mastere!0.12.x-dev0.12.0!0.11.x-devf0.11.20.11.1g0.11.0h0.10.0i!dev-master!0.11.x-dev0.11.40.11.30.11.20.11.10.11.00.10.20.10.10.10.0!dev-master!0.11.x-devk0.11.0l!0.10.x-dev0.10.2m0.10.10.10.0!dev-master\0.9.3m0.9.2n0.9.1o0.9.0p!0.14.x-dev-0.14.1.0.14.0/!0.12.x-dev]0.12.3^0.12.2_0.12.1`0.12.0a0.11.3b0.11.2c0.11.1d0.11.0e0.10.6f0.10.5g0.10.4h0.10.3i0.10.2j0.10.1k0.10.0l!dev-master4!0.10.x-dev50.10.20.10.160.10.07!dev-master!0.11.x-dev0.11.0!0.10.x-dev	0.10.3
0.10.20.10.10.10.0!dev-master!0.12.x-dev0.12.00.11.0!0.10.x-dev0.10.50.10.40.10.30.10.20.10.10.10.0!dev-master0.9.20.9.10.9.0!0.12.x-dev90.12.0:0.11.0;!0.10.x-dev0.10.9 5.0.4
    sdQB3$|l\L<,}n^O@1"qbSD5" yj[L=.







~
o
`
Q
B
3
$

							z	f	R	>	*		yeQ@,}n_PA2}iUA-yeT@,~jYE1	}lXD3nZF5!     !1.14.11.26!1.14.11.17!0.14.11.15!0.14.09.23!0.14.09.17!0.14.09.16!dev-master1.x-dev8!1.16.01.159!1.16.01.14:0.x-dev!0.15.09.08!0.15.05.29!0.15.01.06!0.14.12.10 !0.14.11.15!0.14.09.23!0.14.09.17!0.14.09.16!dev-master1.x-dev!1.16.01.15!1.16.01.140.x-dev!0.15.11.09!0.15.05.29!0.15.04.16!0.15.01.23!0.14.12.10!0.14.11.26!0.14.11.09!0.14.09.23!0.14.09.17!0.14.09.16!dev-master1.x-dev!1.16.01.15!1.16.01.140.x-dev!0.15.10.21!0.15.09.01!0.15.07.28!0.15.04.17!0.15.01.05!dev-masterڽ3.x-dev!3.16.01.14!3.16.01.112.x-devھ!2.15.07.27ڿ!2.15.07.23!2.15.05.29!2.15.03.19!2.15.03.06!2.15.02.18!2.15.01.04!2.14.12.10!2.14.11.26!2.14.11.09!2.14.09.23!2.14.09.17!1.14.09.16!dev-masterڭ2.x-dev!2.16.01.14!2.16.01.111.x-devڮ!1.15.09.03گ!1.15.08.26ڰ!1.15.07.15ڱ/dev-new-injection!dev-masterڨ1.2.01.1.01.0.3ک1.0.2ڪ1.0.1ګ1.0.0ڬ!dev-masterڢ!0.16.01.17!0.16.01.11!0.15.02.20ڣ!0.15.02.18ڤ!0.14.12.01ڥ!0.14.11.25ڦ!0.14.09.24ڧ!dev-master|2.x-dev!2.16.01.19!2.16.01.14!2.16.01.111.x-dev}!1.15.10.29!1.15.10.21!1.15.07.30~!1.15.06.25!1.15.05.29ڀ!1.15.04.16ځ!1.15.02.20ڂ!1.14.12.10ڃ!1.14.12.01ڄ!1.14.11.26څ!1.14.11.24چ!0.14.11.09ڇ!0.14.09.24ڈ!0.14.09.23ډ!0.14.09.22ڊ!0.14.09.17ڋ!0.14.09.16ڌ!dev-master1.7.0 1.6.01.5.01.4.01.3.01.2.01.1.01.0.00.3.00.2.2	0.2.1
0.2.00.1.10.1.0!dev-master#dev-develop3.0.23.0.13.0.02.0.32.0.22.0.12.0.01.0.11.0.0!dev-master+0.1.2,0.1.1-0.1.0.!dev-master0.1.0!dev-masterL5.0.x-devM5.0.0N4.2.x-devO4.2.9R4.2.8S4.2.7T4.2.6U4.2.5V4.2.4W4.2.3X4.2.2Y4.2.16P4.2.12Q4.2.1Z#4.2.0-BETA1[4.1.x-dev\4.1.9r4.1.8s4.1.7t4.1.6u4.1.5v4.1.4w4.1.30]4.1.3x4.1.29^4.1.28_4.1.27`4.1.26a4.1.25b4.1.24c4.1.23d4.1.22e4.1.21f4.1.20g4.1.2y4.1.19h4.1.18i4.1.17j4.1.16k4.1.15l4.1.14m4.1.13n4.1.12o4.1.11p4.1.10q4.1.1z4.1.0{!dev-master5.3.x-devm5.2.x-dev5.2.7o5.2.6p5.2.0q5.1.x-dev5.1.85.1.65.1.28s5.1.25t5.1.22u5.1.20v5.1.25.1.165.1.13 5.1.1
    wfR>*yeQ=,xdP?+zfR>*|hT@/






~
j
V
B
1

								l	[	G	3	"	n]I5$xeVG8)r]H9*r\H4 jXE3!veTE6'aM- !2.0.0-rc.1,%2.0.0-beta.2-2.0.0)!2.0-beta-1./dev-travis-docker+dev-release-2.3/dev-release-2.2.1 9dev-nicolassing-master!dev-master7dev-elasticsearch-2.0 ;dev-ansible-refactoring3.0.x-dev3.0.1#3.0.0-beta13.0.02.3.12.3.02.2.x-dev2.2.12.2.02.1.02.0.01.4.3.01.4.2.01.3.4.01.3.0.01.2.1.01.1.1.11.1.1.01.0.1.21.0.1.11.0.1.01.0.0.00.90.7.00.90.5.00.90.2.00.90.10.00.90.1.0%0.20.5.0.RC10.19.8.00.19.3.00.19.0.0 ;dev-scrutinizer-patch-1!dev-master2.1.x-dev2.0.x-dev2.0.1!2.0.0-rc.3!2.0.0-rc.2!2.0.0-rc.1%2.0.0-beta.22.0.0!2.0-beta-1!dev-travisޱ!dev-masterޑ2.1.4*2.1.3+2.1.2,2.1.1-2.1.0.2.0.x-devޒ2.0.302.0.2ޓ2.0.1ޔ#2.0.0-beta5ޖ#2.0.0-beta4ޗ#2.0.0-beta3ޘ#2.0.0-beta2ޙ#2.0.0-beta1ޚ2.0.0ޕ1.4.1ޛ1.4.0ޜ1.3.4ޝ1.3.3ޞ1.3.2ޟ1.3.1ޠ1.3.0ޡ1.2.2ޢ1.2.1ޣ1.2.0ޤ1.1.0ޥ1.0.x-devަ1.0.2ާ1.0.1ި1.0ީ0.4.x-devު0.4.5ޫ0.4.4ެ0.4.3ޭ0.4.2ޮ0.4.1ޯ0.4.0ް!dev-master۴1.x-dev!1.16.01.15!1.16.01.140.x-dev۵!0.15.11.09!0.15.08.17۶!0.15.05.29۷!0.15.02.26۸!0.14.12.10۹!0.14.09.23ۺ!0.14.09.17ۻ!0.14.09.16ۼ!dev-master۫1.x-dev!1.16.01.15!1.16.01.140.x-dev۬!0.15.08.17ۭ!0.15.05.29ۮ!0.15.02.26ۯ!0.14.12.10۰!0.14.09.23۱!0.14.09.17۲!0.14.09.16۳!dev-masterۗ3.x-dev!3.16.01.112.x-devۘ!2.15.09.08ۙ!2.15.05.29ۚ!2.15.02.16ۛ!2.14.12.10ۜ!2.14.11.09۝!2.14.09.23۞!2.14.09.17۟!1.14.09.16۠!dev-masterp1.x-dev!1.16.01.15!1.16.01.140.x-devq!0.15.09.08r!0.15.05.29s!0.15.02.25t!0.14.12.10u!0.14.09.23v!0.14.09.17w!0.14.09.16x!dev-masterJ3.x-dev!3.16.01.14!3.16.01.112.x-devK!2.15.10.21!2.15.08.03L!2.15.05.29M!2.15.02.26N!2.15.01.23O!2.14.12.10P!2.14.11.09Q!2.14.09.23R!2.14.09.17S!1.14.09.16T!dev-master31.x-dev!1.16.01.15!1.16.01.140.x-dev4!0.15.09.085!0.15.06.016!0.15.05.297!0.15.02.248!0.14.12.109!0.14.11.25:!0.14.11.09;!0.14.09.23<!0.14.09.17=!0.14.09.16>!dev-master'1.x-devm!1.16.01.16n!1.16.01.15o!1.16.01.14p0.x-dev(!0.15.09.08)!0.15.06.01*!0.15.05.29+!0.15.02.24,!0.14.12.10-!0.14.11.25.!0.14.11.09/!0.14.09.230!0.14.09.171!0.14.09.162!dev-master2.x-devQ!2.16.01.14R!2.16.01.11S1.x-dev!1.15.09.08!1.15.05.29!1.15.02.23!2.0.0-rc.2+
  zk\M:'teVG8)ueUE5%ufR:+zfWH5!








|
i
C
/

									t	`	Q	A	2	#		~oZE6'uY>/ {lZH6'rcTE6'	|m^O@1"uaRC4%qbM8#        	0.0.1!dev-master"0.9.2#0.9.1$0.9.0%#0.8.0-beta4'#0.8.0-beta3(#0.8.0-beta2)#0.8.0-beta1*0.8.0&0.7.0+0.6.0,0.5.7-0.5.6.0.5.5/0.5.400.5.310.5.220.5.130.5.040.4.050.3.160.3.070.2.180.2.090.1.0:!dev-master'!dev-legacyb#dev-developa3.0.x-dev2.6.x-dev(2.5.x-dev)2.5.1*2.5.0+2.4.92.4.8,2.4.7-2.4.6.2.4.5/2.4.402.4.312.4.222.4.132.4.0rc752.4.0rc662.4.0rc572.4.0rc482.4.0rc392.4.0rc2:2.4.0rc1;2.4.042.3.9<2.3.8=2.3.7>2.3.6?2.3.5@2.3.4A2.3.3B2.3.2C2.3.1D2.3.0E2.2.9G2.2.8H2.2.7I2.2.6J2.2.5K2.2.4L2.2.3M2.2.2N2.2.10F2.2.1O2.2.0rc3Q2.2.0rc2R2.2.0rc1S2.2.0P2.1.6T2.1.5U2.1.4V2.1.3W2.1.2X2.1.1Y2.1.0Z2.0.8[2.0.7\2.0.6]2.0.5^2.0.4_2.0.3`/dev-release/0.8.1p1dev-release/0.10.0!dev-masterZ'Idev-hotfix/remove-version-files9dev-hotfix/doctrine-csr+Qdev-feature/association-extractorsq'dev-0.7.x-devo1.0.x-dev[0.9.0\0.8.1]#0.8.0-beta2_#0.8.0-beta1`0.8.0^0.7.2a0.7.1b0.7.0c0.6.0d0.5.4e0.5.3f0.5.2g0.5.1h0.4.0i0.3.1j0.3.0k0.2.1l0.2.0m0.10.00.1.0n!dev-master82.0.x-devt2.0.1u2.0.0v1.x-devw1.0.x-dev91.0.1:1.0.0;0.2.0<0.1.0=!dev-master%1.0.0-alpha1!dev-master%Edev-feature/buffered-emitter2.2.x-dev2.1.22.1.12.1.02.0.01.0.11.0.00.3.10.3.00.2.00.1.10.1.0!dev-master1.0.x-dev1.0.21.0.1!1.0.0-beta1.0.0! dev-master7 dev-feature/execution 2.0.x-dev 1.0	 0.7.x-dev 0.6.1 0.6.0 0.5.0 0.4.0 0.3.0)dev-v1.0.0-devq!dev-master`0.9.5p0.13.20.13.1a0.12.3b0.12.2c0.12.1d0.11.6e0.11.5f0.11.4g0.11.3h0.11.2i0.11.1j0.10.5k0.10.4l0.10.3m0.10.2n0.10.1o!dev-masterD1.0.x-devE0.30.20.1F+dev-scrutinizer!dev-masterQ'dev-coveralls2.0.01.8.x-dev1.8.11.8.0R1.7.1S1.7.0T1.6.0U1.5.0V1.4.0W1.3.1X1.3.0Y1.2.0Z1.1.0[1.0.0\!dev-master1.0.x-dev1.0.0!dev-master>1.1.x-dev1.0.x-dev?1.0.31.0.21.0.1@1.0.0A!dev-master'-dev-inspector_ng2.1.x-dev2.0.x-dev(2.0.1   	0.0.2
    fWH9*jWC4%q_M;,whYJ;,rcTE6'	







z
f
W
H
9
*

										p	^	O	?	0	!		|m^O@1"whYJ;,~o`Q=.xiZK<+}n_P=)yeVG8)o]N>/              2.2.8%2.2.7%2.2.6%2.2.5%2.2.4%2.2.3%2.2.2%2.2.10%2.2.1%2.2.0rc3%2.2.0rc2& 2.2.0rc1&2.2.0%2.1.6&2.1.5&2.1.4&2.1.3&2.1.2&2.1.1&2.1.0&2.0.8&	2.0.7&
2.0.6&2.0.5&2.0.4&2.0.3&!dev-master%1.0.0-RC1$#1.0.0-BETA5%#1.0.0-BETA4%#1.0.0-BETA3%#1.0.0-BETA2%#1.0.0-BETA1%%1.0.0-ALPHA1%0.0.2%0.0.1%!dev-master"3.1.x-dev"3.0.2"3.0.1"3.0.0"2.0.0"1.1.0"1.0.0"0.1.5"0.1.4"0.1.3"0.1.2"0.1.1"0.1.0"!dev-master"A2.0.x-dev"B1.x-dev"C1.4.2"1.4.1#1.4.0$1.3.3"D1.2.3"E1.2.2"F1.2.1"G1.2.0"H1.1.0"I1.0.0"J0.x-dev"K0.2.0"L0.1.3"M0.1.2"N0.1.1"O0.1.0"P0.0.1"Q!dev-master"<0.1.2"=0.1.1">0.1.0"?0.0.1"@!dev-master!!dev-legacy!@#dev-develop!?2.6.x-dev!2.5.x-dev!2.5.2!2.5.1!2.5.0!	2.4.9#2.4.8!
2.4.7!2.4.6!2.4.5!2.4.4!2.4.3!2.4.2!2.4.1!2.4.0rc7!2.4.0rc6!2.4.0rc5!2.4.0rc4!2.4.0rc3!2.4.0rc2!2.4.0rc1!2.4.0!2.3.9!2.3.8!2.3.7!2.3.6!2.3.5!2.3.4!2.3.3! 2.3.2!!2.3.1!"2.3.0!#2.2.9!%2.2.8!&2.2.7!'2.2.6!(2.2.5!)2.2.4!*2.2.3!+2.2.2!,2.2.10!$2.2.1!-2.2.0rc3!/2.2.0rc2!02.2.0rc1!12.2.0!.2.1.6!22.1.5!32.1.4!42.1.3!52.1.2!62.1.1!72.1.0!82.0.8!92.0.7!:2.0.6!;2.0.5!<2.0.4!=2.0.3!>!dev-master !dev-legacy #dev-develop 3.0.x-dev2.6.x-dev 2.5.x-dev 2.5.1 2.5.0 2.4.92.4.8 2.4.7 2.4.6 2.4.5 2.4.4 2.4.3 2.4.2 2.4.1 2.4.0rc7 2.4.0rc6 2.4.0rc5 2.4.0rc4 2.4.0rc3 2.4.0rc2 2.4.0rc1 2.4.0 2.3.9 2.3.8 2.3.7 2.3.6 2.3.5 2.3.4 2.3.3 2.3.2 2.3.1 2.3.0 2.2.9 2.2.8 2.2.7 2.2.6 2.2.5 2.2.4 2.2.3 2.2.2 2.2.10 2.2.1 2.2.0rc3 2.2.0rc2 2.2.0rc1 2.2.0 2.1.6 2.1.5 2.1.4 2.1.3 2.1.2 2.1.1 2.1.0 2.0.8 2.0.7 2.0.6 2.0.5 2.0.4 2.0.3 !
dev-master<
1.5.x-dev=#
1.5.0-beta1>#
1.4.0-beta1@
1.4.0?
1.3.1A
1.3.0B
1.2.6C
1.2.5D
1.2.4E
1.2.3F
1.2.2G
1.2.1H
1.2.0I
1.1.2J
1.1.1K
1.1.0L
1.0.0M+	dev-zf2_release1	dev-single_fixture!	dev-master#	dev-issue_15	dev-add_purge_option	0.0.42.2.9%
    yj[I7%teVG8%|mXD5&rcTE6'{l]N?0!








y
j
[
L
=
.


									x	c	O	@	1	"		}n_PA2#~o`QB3$|m\G3$~o`Q@+rcTE6'	sdUF7(
vgXI:+     2.1.2(n2.1.10(f2.1.1(o2.1.0(p2.0.3)2.0.2)2.0.1)2.0.0)1.2.0)1.1.0)!dev-master)#dev-develop)2.x-dev)2.6.7(:2.6.6(;2.6.5(<2.6.4(=2.6.3(>2.6.2(?2.6.1(@2.6.0(A2.5.4(B2.5.3(C2.5.2(D2.5.1(E2.5.0(F2.4.1(G2.4.0(H2.3.4)2.3.3)2.3.2)2.3.1)2.3.0)2.2.3)2.2.2)2.2.1)2.2.0)2.1.7)2.1.6)2.1.5)2.1.4)2.1.3)2.1.2)2.1.1)2.1.0)2.0.6)2.0.5)2.0.4)2.0.3)2.0.2)2.0.1)2.0.0)1.2.0)1.1.1)!dev-master)#dev-develop)2.x-dev)2.2.0((2.1.0()2.0.9)2.0.8)2.0.7)2.0.6)2.0.5)2.0.4)2.0.3)2.0.2)2.0.10)2.0.1)2.0.0)1.0.2)1.0.0)!dev-master)t#dev-develop)2.x-dev)u2.5.9'2.5.8'2.5.7'2.5.6'2.5.5'2.5.4'2.5.3'2.5.2'2.5.12'2.5.11'2.5.10'2.5.1'2.5.0( 2.4.3(2.4.2(2.4.1(2.4.0(2.3.8)v2.3.7)w2.3.6)x2.3.5)y2.3.4)z2.3.3){2.3.2)|2.3.1)}2.3.0)~2.2.9)2.2.8)2.2.7)2.2.6)2.2.5)2.2.4)2.2.3)2.2.2)2.2.1)2.2.0)2.1.0)2.0.8)2.0.7)2.0.6)2.0.5)2.0.4)2.0.3)2.0.2)2.0.1)2.0.0)1.2.1)1.2.0)1.1.1)!dev-master)P#dev-develop)s2.x-dev)Q2.7.3'2.7.2'2.7.1'2.7.0'2.6.3'2.6.2'2.6.1'2.6.0'2.5.1'2.5.0'2.4.4'2.4.3'2.4.2'2.4.1'2.4.0'2.3.9'2.3.8'2.3.7'2.3.6'2.3.5'2.3.4'2.3.3'2.3.2'2.3.12'2.3.11'2.3.10'2.3.1'2.3.0'2.2.9)W2.2.8)X2.2.7)Y2.2.6)Z2.2.5)[2.2.4)\2.2.3)]2.2.2)^2.2.16'2.2.15'2.2.14)R2.2.13)S2.2.12)T2.2.11)U2.2.10)V2.2.1)_2.2.0)`2.1.4)a2.1.3)b2.1.2)c2.1.1)d2.1.0)e2.0.2)f2.0.1)g2.0.0)h1.2.4)i1.2.3)j1.2.2)k1.2.1)l1.2.0)m1.0.4)n1.0.3)o1.0.2)p1.0.1)q1.0.0)r!dev-master)M#dev-develop)O1.2.0'1.1.0'1.0.0)N!dev-master)I0.3)J0.2)K0.1)L!dev-master%!dev-legacy&#dev-develop&2.6.x-dev%2.5.x-dev%2.5.1%2.5.0%2.4.9$ 2.4.8%2.4.7%2.4.6%2.4.5%2.4.4%2.4.3%2.4.2%2.4.1%2.4.0rc7%2.4.0rc6%2.4.0rc5%2.4.0rc4%2.4.0rc3%2.4.0rc2%2.4.0rc1%2.4.0%2.3.9%2.3.8%2.3.7%2.3.6%2.3.5%2.3.4%2.3.3%2.3.2%2.3.1%2.1.3(m
    {l]N?0!~o`O:&yeVG8)o]N>/ {l]N?0!








v
g
X
I
:
+

								}	n	_	P	A	2	#		ueVG8)ufWH6$ paRC4%whYJ;,}n_PA2#~o]K9'yj[L9&        !dev-master.f!dev-legacy.#dev-develop.3.0.x-dev*2.6.x-dev.g2.5.x-dev.h2.5.1.i2.5.0.j2.4.9*2.4.8.k2.4.7.l2.4.6.m2.4.5.n2.4.4.o2.4.3.p2.4.2.q2.4.1.r2.4.0rc7.t2.4.0rc6.u2.4.0rc5.v2.4.0rc4.w2.4.0rc3.x2.4.0rc2.y2.4.0rc1.z2.4.0.s2.3.9.{2.3.8.|2.3.7.}2.3.6.~2.3.5.2.3.4.2.3.3.2.3.2.2.3.1.2.3.0.2.2.9.2.2.8.2.2.7.2.2.6.2.2.5.2.2.4.2.2.3.2.2.2.2.2.10.2.2.1.2.2.0rc3.2.2.0rc2.2.2.0rc1.2.2.0.2.1.6.2.1.5.2.1.4.2.1.3.2.1.2.2.1.1.2.1.0.2.0.8.2.0.7.2.0.6.2.0.5.2.0.4.2.0.3.!dev-master,!dev-legacy,#dev-develop,2.6.x-dev,2.5.x-dev,2.5.2)2.5.1,2.5.0,2.4.9)2.4.8,2.4.7,2.4.6,2.4.5,2.4.4,2.4.3,2.4.2,2.4.1,2.4.0rc7,2.4.0rc6,2.4.0rc5,2.4.0rc4,2.4.0rc3,2.4.0rc2,2.4.0rc1,2.4.0,2.3.9,2.3.8,2.3.7,2.3.6,2.3.5,2.3.4,2.3.3,2.3.2,2.3.1,2.3.0,2.2.9,2.2.8,2.2.7,2.2.6,2.2.5,2.2.4,2.2.3,2.2.2,2.2.10,2.2.1,2.2.0rc3,2.2.0rc2,2.2.0rc1,2.2.0,2.1.6,2.1.5,2.1.4,2.1.3,2.1.2,2.1.1,2.1.0,2.0.8,2.0.7,2.0.6,2.0.5,2.0.4,2.0.3,!dev-master,D!dev-legacy,#dev-develop,2.6.x-dev,E2.5.x-dev,F2.5.2,G2.5.1,H2.5.0,I2.4.9(2.4.8,J2.4.7,K2.4.6,L2.4.5,M2.4.4,N2.4.3,O2.4.2,P2.4.1,Q2.4.0rc7,S2.4.0rc6,T2.4.0rc5,U2.4.0rc4,V2.4.0rc3,W2.4.0rc2,X2.4.0rc1,Y2.4.0,R2.3.9,Z2.3.8,[2.3.7,\2.3.6,]2.3.5,^2.3.4,_2.3.3,`2.3.2,a2.3.1,b2.3.0,c2.2.9,e2.2.8,f2.2.7,g2.2.6,h2.2.5,i2.2.4,j2.2.3,k2.2.2,l2.2.10,d2.2.1,m2.2.0rc3,o2.2.0rc2,p2.2.0rc1,q2.2.0,n2.1.6,r2.1.5,s2.1.4,t2.1.3,u2.1.2,v2.1.1,w2.1.0,x2.0.8,y2.0.7,z2.0.6,{2.0.5,|2.0.4,}2.0.3,~!dev-master)#dev-develop)2.x-dev)2.1.1(2.1.0(2.0.4)2.0.3)2.0.2)2.0.1)2.0.0)1.2.0)1.1.0)!dev-master)#dev-develop)2.x-dev)2.1.0(2.0.4)2.0.3)2.0.2)2.0.1)2.0.0)1.2.0)1.0.0)!dev-master)#dev-develop)2.x-dev)2.0.3(z2.0.2)2.0.1)2.0.0)1.2.1)1.2.0)1.1.0)!dev-master)#dev-develop)2.x-dev)2.1.9(g2.1.8(h2.1.7(i2.1.6(j2.1.5(k
  yj[L=.
paRC4%tbP>/ whUB-~o`QB3$








u
f
W
H
9
*

										p	^	L	:	(		qbM9*vgUC1"|m^O@1"whYJ;,t`QB3$|jXI9*vgXI:+
#2.4.0rc42#2.4.0rc32#2.4.0rc22#2.4.0rc12#2.4.02#2.3.92#2.3.82#2.3.72#2.3.62#2.3.52#2.3.42#2.3.32#2.3.22#2.3.12#2.3.02#2.2.92#2.2.82#2.2.72#2.2.62#2.2.52#2.2.42#2.2.32#2.2.22#2.2.102#2.2.12#2.2.0rc32#2.2.0rc22#2.2.0rc12#2.2.02#2.1.62#2.1.52#2.1.42#2.1.32#2.1.22#2.1.12#2.1.02#2.0.82#2.0.72#2.0.62#2.0.52#2.0.42#2.0.32!"dev-master1!"dev-legacy27#"dev-develop26"2.6.x-dev1"2.5.x-dev1"2.5.21"2.5.11"2.5.02 "2.4.9-f"2.4.82"2.4.72"2.4.62"2.4.52"2.4.42"2.4.32"2.4.22"2.4.12"2.4.0rc72
"2.4.0rc62"2.4.0rc52"2.4.0rc42"2.4.0rc32"2.4.0rc22"2.4.0rc12"2.4.02	"2.3.92"2.3.82"2.3.72"2.3.62"2.3.52"2.3.42"2.3.32"2.3.22"2.3.12"2.3.02"2.2.92"2.2.82"2.2.72"2.2.62"2.2.52 "2.2.42!"2.2.32""2.2.22#"2.2.102"2.2.12$"2.2.0rc32&"2.2.0rc22'"2.2.0rc12("2.2.02%"2.1.62)"2.1.52*"2.1.42+"2.1.32,"2.1.22-"2.1.12."2.1.02/"2.0.820"2.0.721"2.0.622"2.0.523"2.0.424"2.0.325!!dev-master0#!dev-develop1!2.5.20!2.5.10!2.5.00!2.4.9,!2.4.80!2.4.70!2.4.60!2.4.50!2.4.40!2.4.30!2.4.20!2.4.10!2.4.0rc70!2.4.0rc60!2.4.0rc50!2.4.0rc40!2.4.0rc30!2.4.0rc20!2.4.0rc10!2.4.00!2.3.90!2.3.80!2.3.70!2.3.60!2.3.50!2.3.40!2.3.30!2.3.20!2.3.10!2.3.00!2.2.90!2.2.80!2.2.70!2.2.60!2.2.50!2.2.40!2.2.30!2.2.20!2.2.100!2.2.10!2.2.0rc30!2.2.0rc20!2.2.0rc10!2.2.00!2.1.60!2.1.50!2.1.40!2.1.30!2.1.20!2.1.10!2.1.00!2.0.80!2.0.70!2.0.60!2.0.50!2.0.40!2.0.30!2.0.21 !2.0.11!2.0.01! dev-master/Y! dev-legacy/# dev-develop/ 3.0.x-dev+ 2.6.x-dev/Z 2.6.0+ 2.5.x-dev/[ 2.5.2/\ 2.5.1/] 2.5.0/^ 2.4.9+ 2.4.8/_ 2.4.7/` 2.4.6/a 2.4.5/b 2.4.4/c 2.4.3/d 2.4.2/e 2.4.1/f 2.4.0rc7/h 2.4.0rc6/i 2.4.0rc5/j 2.4.0rc4/k 2.4.0rc3/l 2.4.0rc2/m 2.4.0rc1/n 2.4.0/g 2.3.9/o 2.3.8/p 2.3.7/q 2.3.6/r 2.3.5/s 2.3.4/t 2.3.3/u 2.3.2/v 2.3.1/w 2.3.0/x 2.2.9/z 2.2.8/{ 2.2.7/| 2.2.6/} 2.2.5/~ 2.2.4/ 2.2.3/ 2.2.2/ 2.2.10/y 2.2.1/ 2.2.0rc3/ 2.2.0rc2/ 2.2.0rc1/ 2.2.0/ 2.1.6/ 2.1.5/ 2.1.4/ 2.1.3/ 2.1.2/ 2.1.1/ 2.1.0/ 2.0.8/ 2.0.7/ 2.0.6/ 2.0.5/ 2.0.4/    2.0.3/
   paRC4%whYJ;,}n_PA2#~lZH6$ yj[H5 









q
b
S
D
5
&

									w	h	Y	J	;	,		~lZH6'	~kXC/vgXI:+|m^O@1"q_M;,p[G3$paO=+'2.2.54'2.2.44'2.2.34'2.2.24'2.2.104|'2.2.14'2.2.0rc34'2.2.0rc24'2.2.0rc14'2.2.04'2.1.64'2.1.54'2.1.44'2.1.34'2.1.24'2.1.14'2.1.04'2.0.84'2.0.74'2.0.64'2.0.54'2.0.44'2.0.34!&dev-master4!&dev-legacy4\#&dev-develop4[&2.6.x-dev4 &2.5.x-dev4!&2.5.14"&2.5.04#&2.4.90&2.4.84$&2.4.74%&2.4.64&&2.4.54'&2.4.44(&2.4.34)&2.4.24*&2.4.14+&2.4.0rc74-&2.4.0rc64.&2.4.0rc54/&2.4.0rc440&2.4.0rc341&2.4.0rc242&2.4.0rc143&2.4.04,&2.3.944&2.3.845&2.3.746&2.3.647&2.3.548&2.3.449&2.3.34:&2.3.24;&2.3.14<&2.3.04=&2.2.94?&2.2.84@&2.2.74A&2.2.64B&2.2.54C&2.2.44D&2.2.34E&2.2.24F&2.2.104>&2.2.14G&2.2.0rc34I&2.2.0rc24J&2.2.0rc14K&2.2.04H&2.1.64L&2.1.54M&2.1.44N&2.1.34O&2.1.24P&2.1.14Q&2.1.04R&2.0.74S&2.0.64T&2.0.54U&2.0.44V&2.0.34W&2.0.24X&2.0.14Y&2.0.04Z!%dev-master3k!%dev-legacy3#%dev-develop3%3.0.x-dev0%2.6.x-dev3l%2.5.x-dev3m%2.5.13n%2.5.03o%2.4.90%2.4.83p%2.4.73q%2.4.63r%2.4.53s%2.4.43t%2.4.33u%2.4.23v%2.4.13w%2.4.0rc73y%2.4.0rc63z%2.4.0rc53{%2.4.0rc43|%2.4.0rc33}%2.4.0rc23~%2.4.0rc13%2.4.03x%2.3.93%2.3.83%2.3.73%2.3.63%2.3.53%2.3.43%2.3.33%2.3.23%2.3.13%2.3.03%2.2.93%2.2.83%2.2.73%2.2.63%2.2.53%2.2.43%2.2.33%2.2.23%2.2.103%2.2.13%2.2.0rc33%2.2.0rc23%2.2.0rc13%2.2.03%2.1.63%2.1.53%2.1.43%2.1.33%2.1.23%2.1.13%2.1.03%2.0.83%2.0.73%2.0.63%2.0.53%2.0.43%2.0.33!$dev-master2!$dev-legacy2#$dev-develop2$2.6.x-dev2$2.5.x-dev2$2.5.12$2.5.02$2.4.9.$2.4.82$2.4.72$2.4.62$2.4.52$2.4.42$2.4.32$2.4.22$2.4.12$2.4.0rc72$2.4.0rc62$2.4.0rc52$2.4.0rc42$2.4.0rc32$2.4.0rc22$2.4.0rc12$2.4.02$2.3.92$2.3.82$2.3.72$2.3.62$2.3.52$2.3.42$2.3.32$2.3.22$2.3.12$2.3.02$2.2.92$2.2.82$2.2.72$2.2.62$2.2.52$2.2.42$2.2.32$2.2.22$2.2.102$2.2.12$2.2.0rc32$2.2.0rc22$2.2.0rc12$2.2.02$2.1.62$2.1.52$2.1.42$2.1.32$2.1.22$2.1.12$2.1.02$2.0.82$2.0.72$2.0.62$2.0.52$2.0.42$2.0.32!#dev-master2t!#dev-legacy2##dev-develop2#2.6.x-dev2u#2.5.x-dev2v#2.5.12w#2.5.02x#2.4.9/#2.4.82y#2.4.72z#2.4.62{#2.4.52|#2.4.42}#2.4.32~#2.4.22#2.4.12#2.4.0rc72#2.4.0rc62   '2.2.64
    yj[L=.
teVG8){l]N?0!rcTE6'	sdR@.









}
n
_
P
A
.

									q	b	S	D	5	&		whYJ;,xfTB0sdUB/zk\M>/ qbSD5&xfTB0!xeR=)           +2.0.67+2.0.57+2.0.47+2.0.37!*dev-master6
!*dev-legacy6E#*dev-develop6D*3.0.x-dev5*2.6.x-dev6*2.5.x-dev6*2.5.16*2.5.06*2.4.95*2.4.86*2.4.76*2.4.66*2.4.56*2.4.46*2.4.36*2.4.26*2.4.16*2.4.0rc76*2.4.0rc66*2.4.0rc56*2.4.0rc46*2.4.0rc36*2.4.0rc26*2.4.0rc16*2.4.06*2.3.96*2.3.86 *2.3.76!*2.3.66"*2.3.56#*2.3.46$*2.3.36%*2.3.26&*2.3.16'*2.3.06(*2.2.96**2.2.86+*2.2.76,*2.2.66-*2.2.56.*2.2.46/*2.2.360*2.2.261*2.2.106)*2.2.162*2.2.0rc364*2.2.0rc265*2.2.0rc166*2.2.063*2.1.667*2.1.568*2.1.469*2.1.36:*2.1.26;*2.1.16<*2.1.06=*2.0.86>*2.0.76?*2.0.66@*2.0.56A*2.0.46B*2.0.36C!)dev-master5!)dev-legacy5#)dev-develop5)2.6.x-dev5)2.5.x-dev5)2.5.15)2.5.05)2.4.93`)2.4.85)2.4.75)2.4.65)2.4.55)2.4.45)2.4.35)2.4.25)2.4.15)2.4.0rc75)2.4.0rc65)2.4.0rc55)2.4.0rc45)2.4.0rc35)2.4.0rc25)2.4.0rc15)2.4.05)2.3.95)2.3.85)2.3.75)2.3.65)2.3.55)2.3.45)2.3.35)2.3.25)2.3.15)2.3.05)2.2.95)2.2.85)2.2.75)2.2.65)2.2.55)2.2.45)2.2.35)2.2.25)2.2.105)2.2.15)2.2.0rc35)2.2.0rc25)2.2.0rc15)2.2.05)2.1.65)2.1.55)2.1.45)2.1.35)2.1.25)2.1.15)2.1.05)2.0.85)2.0.75)2.0.65)2.0.55)2.0.45)2.0.35!(dev-master4!(dev-legacy5#(dev-develop5(2.7.x-dev2(2.6.x-dev4(2.6.02(2.5.x-dev4(2.5.14(2.5.04(2.4.92(2.4.84(2.4.74(2.4.64(2.4.54(2.4.44(2.4.34(2.4.24(2.4.14(2.4.0rc74(2.4.0rc64(2.4.0rc54(2.4.0rc44(2.4.0rc34(2.4.0rc24(2.4.0rc14(2.4.04(2.3.94(2.3.84(2.3.74(2.3.64(2.3.54(2.3.44(2.3.34(2.3.24(2.3.14(2.3.04(2.2.94(2.2.84(2.2.74(2.2.64(2.2.54(2.2.44(2.2.34(2.2.24(2.2.104(2.2.14(2.2.0rc34(2.2.0rc25 (2.2.0rc15(2.2.04(2.1.65(2.1.55(2.1.45(2.1.35(2.1.25(2.1.15(2.1.05(2.0.85	(2.0.75
(2.0.65(2.0.55(2.0.45(2.0.35!'dev-master4]!'dev-legacy4#'dev-develop4'2.6.x-dev4^'2.5.x-dev4_'2.5.14`'2.5.04a'2.4.91W'2.4.84b'2.4.74c'2.4.64d'2.4.54e'2.4.44f'2.4.34g'2.4.24h'2.4.14i'2.4.0rc74k'2.4.0rc64l'2.4.0rc54m'2.4.0rc44n'2.4.0rc34o'2.4.0rc24p'2.4.0rc14q'2.4.04j'2.3.94r'2.3.84s'2.3.74t'2.3.64u'2.3.54v'2.3.44w'2.3.34x'2.3.24y'2.3.14z'2.3.04{'2.2.94}'2.2.84~+2.0.77
    ygUC4$paRC4%zk\M:'rcTE6&ueUE5$








r
b
R
B
2
"

									y	j	[	L	=	.			whYJ;,vgXH8(|m^O@1"zk\M>/  vgXG2 l]N?0!~o`QB3$   /2.1.47;/2.1.37</2.1.27=/2.1.17>/2.1.07?/2.0.78/2.0.68/2.0.58/2.0.48/2.0.38/2.0.28/2.0.18/2.0.08/1.2.08/1.1.08!.dev-master8#.dev-develop8.2.x-dev8.2.2.17..2.2.07/.2.1.170.2.1.071.2.0.28.2.0.18.2.0.08.1.0.08!-dev-master8#-dev-develop8-2.x-dev8-2.2.17#-2.2.07$-2.1.07%-2.0.28-2.0.18-2.0.08-1.2.08-1.0.08!,dev-master8=#,dev-develop8,2.x-dev8>,2.9.96,2.9.86,2.9.76,2.9.66,2.9.56,2.9.46,2.9.36,2.9.26,2.9.146,2.9.136,2.9.126,2.9.116,2.9.106,2.9.16,2.9.06,2.8.36,2.8.26,2.8.16,2.8.06,2.7.96,2.7.86,2.7.76,2.7.66,2.7.56,2.7.46,2.7.36,2.7.26,2.7.126,2.7.116,2.7.106,2.7.16,2.7.06,2.6.98G,2.6.88H,2.6.78I,2.6.68J,2.6.58K,2.6.48L,2.6.38M,2.6.28N,2.6.196,2.6.186,2.6.178?,2.6.168@,2.6.158A,2.6.148B,2.6.138C,2.6.128D,2.6.118E,2.6.108F,2.6.18O,2.6.08P,2.5.98S,2.5.88T,2.5.78U,2.5.68V,2.5.58W,2.5.48X,2.5.38Y,2.5.28Z,2.5.118Q,2.5.108R,2.5.18[,2.5.08\,2.4.98`,2.4.88a,2.4.78b,2.4.68c,2.4.58d,2.4.48e,2.4.38f,2.4.28g,2.4.128],2.4.118^,2.4.108_,2.4.18h,2.4.08i,2.3.58j,2.3.48k,2.3.38l,2.3.28m,2.3.18n,2.3.08o,2.2.98t,2.2.88u,2.2.78v,2.2.68w,2.2.58x,2.2.48y,2.2.38z,2.2.28{,2.2.138p,2.2.128q,2.2.118r,2.2.108s,2.2.18|,2.2.08},2.13.56,2.13.46,2.13.36,2.13.26,2.13.16,2.13.06,2.12.96,2.12.86,2.12.76,2.12.66,2.12.56,2.12.46,2.12.36,2.12.26,2.12.126,2.12.116,2.12.106,2.12.16,2.12.06,2.11.96,2.11.86,2.11.76,2.11.66,2.11.56,2.11.46,2.11.36,2.11.26,2.11.106,2.11.16,2.11.06,2.10.26,2.10.16,2.10.06,2.1.08~,2.0.68,2.0.58,2.0.48,2.0.38,2.0.28,2.0.18,2.0.08,1.2.18,1.2.08,1.1.28,1.1.18!+dev-master7!+dev-legacy7#+dev-develop7+2.6.x-dev7+2.5.x-dev7+2.5.17+2.5.07+2.4.27+2.4.17+2.4.0rc77+2.4.0rc67+2.4.0rc57+2.4.0rc47+2.4.0rc37+2.4.0rc27+2.4.0rc17+2.4.07+2.3.97+2.3.87+2.3.77+2.3.67+2.3.57+2.3.47+2.3.37+2.3.27+2.3.17+2.3.07+2.2.97+2.2.87+2.2.77+2.2.67+2.2.57+2.2.47+2.2.37+2.2.27+2.2.107+2.2.17+2.2.0rc37+2.2.0rc27+2.2.0rc17+2.2.07+2.1.67+2.1.57+2.1.47+2.1.37+2.1.27+2.1.17+2.1.07/2.1.57:
    vgXI:+whYJ;,u^G0wgWG7'xiZK<)









q
b
S
@
1
"

									w	h	Y	I	9	)			zjZJ:*
{l]N?0!vgXI:+	~o`QB3$zk\M>/ zk\M>/nZJ:*
  42.0.19Sn42.0.18So42.0.17Sp42.0.16Sq42.0.15Sr42.0.14Ss42.0.13St42.0.12Su42.0.10Sv!3dev-masterN33.1.x-devC33.0.x-devN33.0.1E#33.0.0-BETA1G33.0.0F32.8.x-devN32.8.2I32.8.1J#32.8.0-BETA1L32.8.0K32.7.x-devN32.7.9N32.7.8O32.7.7P32.7.6Q32.7.5N32.7.4N32.7.3N32.7.2N32.7.1N#32.7.0-BETA2N#32.7.0-BETA1N32.7.0N32.6.x-devN32.6.9N32.6.8N32.6.7N32.6.6N32.6.5N 32.6.4N!32.6.3N"32.6.2N#32.6.13[32.6.12\32.6.11N32.6.10N32.6.1N$#32.6.0-BETA2N&#32.6.0-BETA1N'32.6.0N%32.5.x-devN(32.5.9N,32.5.8N-32.5.7N.32.5.6N/32.5.5N032.5.4N132.5.3N232.5.2N332.5.12N)32.5.11N*32.5.10N+32.5.1N432.5.0-RC1N6#32.5.0-BETA2N7#32.5.0-BETA1N832.5.0N532.4.x-devN932.4.9N;32.4.8N<32.4.7N=32.4.6N>32.4.5N?32.4.4N@32.4.3NA32.4.2NB32.4.10N:32.4.1NC32.4.0-RC1NE#32.4.0-BETA2NF#32.4.0-BETA1NG32.4.0ND32.3.x-devNH32.3.9Na32.3.8Nb32.3.7Nc32.3.6Nd32.3.5Ne32.3.4Nf32.3.37׌32.3.36׍32.3.35׎32.3.34׏32.3.33NI32.3.32NJ32.3.31NK32.3.30NL32.3.3Ng32.3.29NM32.3.28NN32.3.27NO32.3.26NP32.3.25NQ32.3.24NR32.3.23NS32.3.22NT32.3.21NU32.3.20NV32.3.2Nh32.3.19NW32.3.18NX32.3.17NY32.3.16NZ32.3.15N[32.3.14N\32.3.13N]32.3.12N^32.3.11N_32.3.10N`32.3.1Ni32.3.0Nj32.2.x-devNk32.2.9Nn32.2.8No32.2.7Np32.2.6Nq32.2.5Nr32.2.4Ns32.2.3Nt32.2.2Nu32.2.11Nl32.2.10Nm32.2.1Nv32.2.0Nw32.1.x-devNx32.1.9N}32.1.8N~32.1.7N32.1.6N32.1.5N32.1.4N32.1.3N32.1.2N32.1.13Ny32.1.12Nz32.1.11N{32.1.10N|32.1.1N32.1.0N32.0.x-devN32.0.9N32.0.7N32.0.6N32.0.5N32.0.4N32.0.25N32.0.24N32.0.23N32.0.22N32.0.21N32.0.20N32.0.19N32.0.18N32.0.17N32.0.16N32.0.15N32.0.14N32.0.13N32.0.12N32.0.10N!2dev-master;"22.5:22.4;#22.3;$22.2;%22.1.x-dev;&22.1;'51dev-phing-phinx-task8!1dev-master871dev-i413-fluent-phinx8'1dev-0.5.x-dev7p'1dev-0.4.x-dev8'1dev-0.3.x-dev8'1dev-0.2.x-dev8'1dev-0.1.x-dev810.5.17L10.5.07M10.4.6810.4.5810.4.4810.4.3810.4.2.1810.4.2810.4.1810.4.0810.3.8810.3.7810.3.6810.3.5810.3.4810.3.3810.3.2810.3.1810.3.0810.2.9810.2.8810.2.7810.2.6810.2.5810.2.4810.2.3810.2.2810.2.1810.2.0810.1.7810.1.6810.1.5810.1.4810.1.3810.1.28!0dev-master8!/dev-master8#/dev-develop8/2.x-dev8
   o`QA1!whXH9*o_O?/p`PA1!vgTE0









q
^
O
:
%

									y	j	[	H	9	$		 ufWH5&ubS>/ bN/ ~o\M8)vaN?/ kXI9)
jUF6&          62.6.5X62.6.4X62.6.3X62.6.2X62.6.13֕62.6.12֖62.6.11X62.6.10X62.6.1X#62.6.0-BETA2X#62.6.0-BETA1X62.6.0X62.5.x-devX62.5.9X62.5.8X62.5.7X62.5.6X62.5.5X62.5.4X62.5.3X62.5.2X62.5.12X62.5.11X62.5.10X62.5.1X62.5.0-RC1X#62.5.0-BETA2X#62.5.0-BETA1X62.5.0X62.4.x-devX62.4.9X62.4.8X62.4.7X62.4.6X62.4.5X62.4.4X62.4.3X62.4.2X62.4.10X62.4.1X62.4.0-RC1X#62.4.0-BETA2X#62.4.0-BETA1X62.4.0X!5dev-masterS53.1.x-devc53.0.x-devS53.0.1e#53.0.0-BETA1g53.0.0f52.8.x-devS52.8.2i52.8.1j#52.8.0-BETA1l52.8.0k52.7.x-devS52.7.9n52.7.8o52.7.7p52.7.6q52.7.5S52.7.4S52.7.3S52.7.2S52.7.1S#52.7.0-BETA2S#52.7.0-BETA1S52.7.0S74dev-session-listenersSz!4dev-masterR,S4dev-fix-validator-legacy-dependencyS{$C4dev-better-bundle-exceptionSy43.1.x-devӝ43.0.x-devR43.0.1ӟ#43.0.0-BETA1ӡ43.0.0Ӡ42.8.x-devR42.8.2ӣ42.8.1Ӥ#42.8.0-BETA1Ӧ42.8.0ӥ42.7.x-devR42.7.9Ө42.7.8ө42.7.7Ӫ42.7.6ӫ42.7.5R42.7.4R42.7.3R42.7.2R42.7.1R#42.7.0-BETA2R#42.7.0-BETA1R42.7.0R42.6.x-devR42.6.9R42.6.8R42.6.7R42.6.6R42.6.5S 42.6.4S42.6.3S42.6.2S42.6.13ӵ42.6.12Ӷ42.6.11R42.6.10R42.6.1S#42.6.0-BETA2S#42.6.0-BETA1S42.6.0S42.5.x-devS42.5.9S42.5.8S42.5.7S42.5.6S42.5.5S42.5.4S42.5.3S42.5.2S42.5.12S	42.5.11S
42.5.10S42.5.1S42.5.0-RC1S#42.5.0-BETA2S#42.5.0-BETA1S42.5.0S42.4.x-devS42.4.9S42.4.8S42.4.7S42.4.6S42.4.5S42.4.4S 42.4.3S!42.4.2S"42.4.10S42.4.1S#42.4.0-RC1S%#42.4.0-BETA2S&#42.4.0-BETA1S'42.4.0S$42.3.x-devS(42.3.9SA42.3.8SB42.3.7SC42.3.6SD42.3.5SE42.3.4SF42.3.3742.3.3642.3.3542.3.3442.3.33S)42.3.32S*42.3.31S+42.3.30S,42.3.3SG42.3.29S-42.3.28S.42.3.27S/42.3.26S042.3.25S142.3.24S242.3.23S342.3.22S442.3.21S542.3.20S642.3.2SH42.3.19S742.3.18S842.3.17S942.3.16S:42.3.15S;42.3.14S<42.3.13S=42.3.12S>42.3.11S?42.3.10S@42.3.1SI42.3.0SJ42.2.x-devSK42.2.9SN42.2.8SO42.2.7SP42.2.6SQ42.2.5SR42.2.4SS42.2.3ST42.2.2SU42.2.11SL42.2.10SM42.2.1SV42.2.0SW42.1.x-devSX42.1.9S]42.1.8S^42.1.7S_42.1.6S`42.1.5Sa42.1.4Sb42.1.3Sc42.1.2Sd42.1.13SY42.1.12SZ42.1.11S[42.1.10S\42.1.1Se42.1.0Sf42.0.x-devSg42.0.9Sw42.0.7Sx42.0.25Sh42.0.24Si42.0.23Sj42.0.22Sk42.0.21Sl 62.6.6X
    xiZK<- teR?+~o\I6#vcP=*qbSB3 








i
T
?
.
										t	e	V	G	3	xdUF7(rcTE2#paM@,t_J5 rcTA-
sdUD5&zfWH9&             #J2.1.1-beta1J2.1.1J2.1.0-RC2J2.1.0J2.0.x-dev!Idev-masterI1.1.x-devI1.1.1I1.1.0I1.0.0!Hdev-masterH1.0.x-devH1.0.0	!Gdev-masterG1.2.x-devG1.2.0G1.1.0G1.0.1G1.0.0!Fdev-masterF4.1.x-dev@~F4.1.0@F4.0.0@F3.x-dev@F3.3.1@F3.3.0@F3.2.x-devF3.2.0@F3.1.1F3.1.0F3.0.0F2.0.1F2.0.0#F1.0.0-beta3#F1.0.0-beta2!F1.0.0-betaF1.0.0!Edev-masterpE2.3.x-devqE2.3.0@_E2.2.3rE2.2.2sE2.2.1tE2.2.0uE2.1.0vE2.0.0wE1.1.0xE1.0.2yE1.0.1zE1.0.0{!Ddev-masterD1.0.x-dev#D1.0.0-beta7@G#D1.0.0-beta6#D1.0.0-beta5#D1.0.0-beta4#D1.0.0-beta3#D1.0.0-beta2!D1.0.0-beta!Cdev-masterC0.1!Bdev-masterB0.3.2B0.3.1B0.3B0.2B0.1!Adev-masterA0.1!@dev-master~1@1.0.0~2!?dev-mastertK?3.1.x-dev@?3.0.x-devtL?3.0.1@#?3.0.0-BETA1@?3.0.0@?2.8.x-devtM?2.8.2@?2.8.1@#?2.8.0-BETA1@?2.8.0@?2.7.x-devtN?2.7.9@!?2.7.8@"?2.7.7@#?2.7.6?2.7.5tO?2.7.4tP?2.7.3tQ?2.7.2tR?2.7.1tS#?2.7.0-BETA2tU#?2.7.0-BETA1tV?2.7.0tT!>dev-mastert	>3.0.0t
>2.2.0t>2.1.0t>2.0.0t>1.0.0t!=dev-masterl!<dev-masterl!;dev-masterf;1.0.2f;1.0.1f!:dev-masterf:1.1.4f:1.1.3f:1.1.2f:1.1.1f$C9dev-phpunit_5_compatibility=!9dev-masterd92.0.0=91.4.2d91.4.1d91.4.0d91.3.3d91.3.2d91.3.1d91.3.0d91.2.9d91.2.12d91.2.11d91.2.10d-8dev-generatehost`%8dev-basepath`83.x-dev_#83.0.0-beta2` #83.0.0-beta1`%83.0.0-alpha2`%83.0.0-alpha1`83.0.0=d82.x-dev`82.3.0`82.2.2`82.2.1`82.2.0`82.1.2`	82.1.1`
82.1.0`#82.0.0-beta1`82.0.0`81.x-dev`81.2.0`81.1.1`81.1.0`81.0.0`#7dev-styleci:E!7dev-master]!%E7dev-drop-dynamicrouter-match]?71.4.x-dev]"71.4.0-RC2:'71.4.0-RC1:(71.3.x-dev]#71.3.0-RC4]%71.3.0-RC3]&71.3.0-RC2]'71.3.0-RC1](71.3.0]$71.2.x-dev])71.2.0-RC1]+71.2.0]*71.1.x-dev],#71.1.0-beta2]2#71.1.0-beta1]3%71.1.0-alpha2]4%71.1.0-alpha1]571.1.0-RC4].71.1.0-RC3]/71.1.0-RC2]071.1.0-RC1]171.1.0]-71.0.x-dev]671.0.2]771.0.1]8#71.0.0-beta1]:%71.0.0-alpha4];%71.0.0-alpha3]<%71.0.0-alpha2]=%71.0.0-alpha1]>71.0.0]9!6dev-masterX63.1.x-dev}63.0.x-devX63.0.1#63.0.0-BETA1#63.0.0ր62.8.x-devX62.8.2փ62.8.1ք#62.8.0-BETA1#62.8.0օ62.7.x-devX62.7.9ֈ62.7.8։62.7.7֊62.7.6#62.7.5X62.7.4X62.7.3X62.7.2X62.7.1X#62.7.0-BETA2X#62.7.0-BETA1X62.7.0X62.6.x-devX62.6.9X62.6.8XJ2.1.2
    teVG8%ycN?0!s_E&|mZK;+r_L=.







t
d
T
D
4
$

									x	i	Z	K	<	)		qaQB2"scSC4%xiZK<)taQA2#ubSD5&|mZK<,Y;'N2.0.x-devCN2.0.23DN2.0.22EN2.0.20FN2.0.19GN2.0.18HN2.0.17I!Mdev-master5Mdev-fix-404-doctrine'IMdev-configurationinterface-fixM3.0.x-devM3.0.9M3.0.8M3.0.7M3.0.6M3.0.5M3.0.4M3.0.3M3.0.2M3.0.12SFM3.0.11SGM3.0.10M3.0.1M3.0.0M2.3.x-devM2.3.4M2.3.3M2.3.2M2.3.1M2.3.0-RC1#M2.3.0-BETA2#M2.3.0-BETA1M2.3.0M2.2.x-devM2.2.6M2.2.5M2.2.4M2.2.3M2.2.2M2.2.1M2.2.0-RC3M2.2.0-RC2M2.2.0-RC1#M2.2.0-BETA2#M2.2.0-BETA1M2.2.0M2.1.x-devM2.1.9M2.1.8M2.1.7M2.1.5M2.1.4M2.1.3M2.1.11M2.1.10M2.1.0-RC2M2.1.0M2.0.x-devM2.0.23M2.0.22M2.0.20M2.0.19M2.0.18M2.0.177Ldev-newstruct-removal<!Ldev-masterL5.0.x-devL5.0.3LIL5.0.2LJL5.0.1LKL5.0.0LLL4.0.x-devL4.0.4LNL4.0.3LOL4.0.2LPL4.0.1L4.0.0L3.0.x-devL3.0.9L3.0.8L3.0.7L3.0.6L3.0.5L3.0.4L3.0.34LTL3.0.33LUL3.0.32LVL3.0.31L3.0.30L3.0.3L3.0.29L3.0.28L3.0.27L3.0.26L3.0.25L3.0.24L3.0.23L3.0.22L3.0.21L3.0.20L3.0.2L3.0.19L3.0.18L3.0.17L3.0.16L3.0.15L3.0.14L3.0.13L3.0.12L3.0.10L3.0.1#L3.0.0-BETA2#L3.0.0-BETA1L3.0.0L2.3.x-dev L2.3.9L2.3.8L2.3.7L2.3.6L2.3.5L2.3.4L2.3.3L2.3.22L2.3.21L2.3.20L2.3.2L2.3.19L2.3.18L2.3.17L2.3.16L2.3.15L2.3.14	L2.3.13
L2.3.12L2.3.11L2.3.10L2.3.1L2.3.0-RC1#L2.3.0-BETA2#L2.3.0-BETA1L2.3.0L2.2.x-devL2.2.6L2.2.5L2.2.4L2.2.3L2.2.2 L2.2.1!L2.2.0-RC3#L2.2.0-RC2$L2.2.0-RC1%#L2.2.0-BETA2&#L2.2.0-BETA1'L2.2.0"L2.1.x-dev(L2.1.9+L2.1.8,L2.1.7-L2.1.5.L2.1.4/L2.1.30L2.1.11)L2.1.10*L2.1.11L2.1.0-RC23L2.1.02L2.0.x-dev4L2.0.235L2.0.226L2.0.207L2.0.198L2.0.189L2.0.17:L1.0.x-dev;#AKdev-pipeline-asset-locator?7Kdev-output-collisionsC-Kdev-node-visitorA!Kdev-master,7Kdev-experimental/treeB/Kdev-asset-locator@K1.4.x-dev-K1.3.2@K1.3.1.K1.3.0/K1.2.10%K1.2.0-alpha12K1.2.01K1.1.33K1.1.24K1.1.15#K1.1.0-beta17%K1.1.0-alpha48%K1.1.0-alpha39%K1.1.0-alpha2:%K1.1.0-alpha1;K1.1.06K1.0.5<K1.0.4=K1.0.3>-Jdev-node-visitor!Jdev-masterJ2.7.x-devJ2.7.1@J2.7.0J2.6.1J2.6.0	J2.5.0
#J2.4.0-beta1J2.4.0J2.3.x-devJ2.3.1#J2.3.0-beta1J2.3.0J2.1.x-dev
    s`Q<'r]H5&}n_PA.zk\M:&
zk\O</  









l
_
L
?
,

									~	o	`	Q	B	3	$		cN$xiXA- xiZK<- ygZK<- yj[L=*k\M>/zk\M:+        V4.1.14YV4.1.13ZV4.1.12[V4.1.11\V4.1.10]V4.1.1fV4.1.0gV4.0.x-devhV4.0.9jV4.0.8kV4.0.7lV4.0.6mV4.0.5nV4.0.4oV4.0.3pV4.0.2qV4.0.10iV4.0.1r#V4.0.0-BETA4tV4.0.0s!Udev-master2U0.4.x-dev3U0.3.04U0.2.05U0.1.16U0.1.07/Tdev-wamp-sync-bugʏ'Tdev-rfc-splitʎ!Tdev-masterv/Tdev-handshake-fixʍ-Tdev-0.4-wip/psr7ʋ7Tdev-0.4-wip/comp-psr7j$CTdev-0.4-wip/comp-interfacesʌT0.4.x-devwT0.3.4iT0.3.3xT0.3.2yT0.3.1zT0.3.0{T0.2.8|T0.2.7}T0.2.6~T0.2.5T0.2.4ʀT0.2.3ʁT0.2.2ʂT0.2.1ʃT0.2.0ʄT0.1.5ʅT0.1.4ʆT0.1.3ʇT0.1.2ʈT0.1.1ʉT0.1ʊSdev-phar!Sdev-master+Sdev-exceptionalS1.2.0S1.1.63S1.1.5S1.1.4S1.1.3S1.1.2S1.1.1S1.1.0S1.0.9
S1.0.8
S1.0.7
S1.0.6
S1.0.5S1.0.4S1.0.3S1.0.2S1.0.10
S1.0.1S1.0.0S0.9.7S0.9.5S0.9.4S0.9.3S0.9.2S0.9.1S0.9.0!Rdev-master"'Rdev-laravel-4/R2.x-dev#R2.0.0$R1.x-dev%R1.6.0&R1.5.0'R1.4.0(R1.3.0)R1.2.0*R1.1.1+R1.1.0,R1.0.1-R1.0.0.!Qdev-master)MQdev-fix/updated-psl-breaks-testsi#Qdev-develop1Qdev-Saeven-developiQ3.0.0Q2.0.3Q2.0.2Q2.0.1Q2.0.0Q1.4.6Q1.4.5Q1.4.4Q1.4.3Q1.4.2Q1.4.1Q1.4.0Q1.3.1Q1.3.0Q1.2.1Q1.2.0Q1.1.0Q1.0.0Q0.0.8Q0.0.7Q0.0.6Q0.0.5Q0.0.4 Q0.0.3Q0.0.2Q0.0.1!Pdev-masterP2.0.x-devP1.4.x-devP1.4P1.3.x-devP1.3P1.2.x-devP1.2P1.1.x-devP1.1P1.0.x-devP1.0P0.9P0.8P0.7P0.6P0.5P0.4.x-devP0.4.1P0.4P0.3.x-devP0.3P0.2.3P0.2.2P0.2.1P0.2!P0.11.x-devP0.11!P0.10.x-devP0.10.3P0.10.2P0.10.1P0.10P0.1.1P0.1!Odev-masterO2.1.x-devO2.1.2i"O2.1.1O2.1.0O2.0.0O1.0.0!Ndev-master#Ndev-fix_377JN3.0.x-devN3.0.5]ZN3.0.4][N3.0.3]\N3.0.2]]N3.0.1]^N3.0.0]_N2.5.x-devN2.5.3N2.5.2N2.5.1N2.5.0N2.4.x-devN2.4.5N2.4.4N2.4.3N2.4.2N2.4.1 N2.4.0!N2.3.5"N2.3.4#N2.3.3$N2.3.2%N2.3.1&N2.3.0-RC1(#N2.3.0-BETA2)#N2.3.0-BETA1*N2.3.0'N2.2.x-dev+N2.2.6,N2.2.5-N2.2.4.N2.2.3/N2.2.20N2.2.11N2.2.0-RC33N2.2.0-RC24N2.2.0-RC15#N2.2.0-BETA26#N2.2.0-BETA17N2.2.02N2.1.x-dev8N2.1.9;N2.1.8<N2.1.7=N2.1.5>N2.1.4?N2.1.3@N2.1.119N2.1.10:N2.1.0-RC2B
   qaQA1!u`QA1"pcVI<- whYJ;+zk\M>/ 








{
l
]
N
?
0
!

							u	`	Q	>	)		zk\M:+yj[H9*nZG3 yj[2sdUF7(teVG8)wcK;,         e1.4.1e1.4.0e1.3.1e1.3.0e1.2.0e1.1.0e1.0.0e0.2.0ddev-r3)ddev-middleware!ddev-master3ddev-feature/restful#ddev-developd2.0.x-devd1.6.x-devd1.6.1d1.6.0d1.5.2d1.5.1d1.5.0d1.4.0d1.3.3d1.3.2d1.3.1d1.3.0d1.2.0d1.1.4d1.1.3d1.1.2d1.1.1d1.0.05cdev-resolved-objectsޖ#cdev-remotesޕ!cdev-masterދc1.0.x-devތc1.0.0t	c0.1.8t
c0.1.7ލc0.1.6ގc0.1.5ޏc0.1.4ސc0.1.3ޑc0.1.2ޒc0.1.1ޓc0.1.0ޔ/bdev-safe-divisions!bdev-masterރ7bdev-machadoit-patch-2s7bdev-machadoit-patch-1s%bdev-fix/docss(Kbdev-fix-invalid-index-exceptionsb1.0.3sb1.0.2ބb1.0.1ޅb1.0.0ކ!`dev-master`1.0.x-dev!_dev-master_1.0.x-dev!^dev-master^1.0.x-dev!]dev-master]1.0.x-dev!\dev-master\1.0.x-dev!Zdev-mastertZ3.5.x-devoZ3.5.0oZ3.4.0o	Z3.3.x-devuZ3.3.0vZ3.2.0wZ3.1.0xZ3.0.0yZ2.1.3zZ2.1.2{Z2.1.1|Z2.1.0}Z2.0.2~Z2.0.1Z2.0.0-RC1ׁZ2.0.0׀Z1.1.0ׂ#Z1.0.0-beta1ׅZ1.0.0-RC1ׄZ1.0.0׃#Z0.4.0-alpha׆#Z0.3.0-alphaׇ#Z0.2.0-alpha׈#Z0.1.0-alpha׉!Ydev-master/Y3.3.x-devnY3.3.0nY3.2.x-dev0Y3.2.11Y3.2.02Y3.1.03Y3.0.04Y2.1.35Y2.1.26Y2.1.17Y2.1.08Y2.0.0-RC1:Y2.0.09Y1.1.0;Y1.0.2<Y1.0.1=#Y1.0.0-beta2@#Y1.0.0-beta1AY1.0.0-RC1?Y1.0.0>#Y0.3.1-alphaB#Y0.2.0-alphaC#Y0.1.0-alphaD7Xdev-revert-303-masterj!Xdev-masterҙX2.1.x-devҚX2.1.2jX2.1.1jX2.1.0қX2.0.6ҜX2.0.5ҝX2.0.4ҞX2.0.3ҟX2.0.2ҠX2.0.1ҡX2.0.0ҢX1.9.3ҬX1.9.2ҭX1.9.1ҮX1.9.0үX1.8.1ҰX1.8.0ұX1.7.2ҲX1.7.1ҳX1.7.0ҴX1.6.1ҵX1.6.0ҶX1.5.2ҷX1.5.1ҸX1.5.0ҹX1.4.0ҺX1.3.2һX1.3.1ҼX1.3.0ҽX1.2.1ҾX1.2.0ҿ!X1.11.x-devңX1.11.6ҤX1.11.5ҥX1.11.4ҦX1.11.3ҧX1.11.2ҨX1.11.1ҩX1.11.0ҪX1.10.0ҫX1.1.3X1.1.2X1.1.1X1.1.0X1.0.4X1.0.3X1.0.2X1.0.1#X1.0.0-beta2#X1.0.0-beta1X1.0.0!Wdev-masterW1.3.4j
W1.3.3W1.3.2W1.3.1W1.3W1.2W1.1W1.0!Vdev-master8V5.0.x-dev9V5.0.0:V4.2.x-dev;V4.2.9>V4.2.8?V4.2.7@V4.2.6AV4.2.5BV4.2.4CV4.2.3DV4.2.2EV4.2.16<V4.2.12=V4.2.1F#V4.2.0-BETA1GV4.1.x-devHV4.1.9^V4.1.8_V4.1.7`V4.1.6aV4.1.5bV4.1.4cV4.1.30IV4.1.3dV4.1.29JV4.1.28KV4.1.27LV4.1.26MV4.1.25NV4.1.24OV4.1.23PV4.1.22QV4.1.21RV4.1.20SV4.1.2eV4.1.19TV4.1.18UV4.1.17VV4.1.16W e1.4.2
  o[K;'rcTE6'	~o`QB3${l]N; s`O@1"








}
n
_
P
A
2
#

								~	o	`	Q	B	3	$		|m^O@1"vgXI6#sdUF7(
t;'~o`Q=.ufS?0!yjVG6'	!pdev-masterp1.0.6p1.0.5p1.0.4p1.0.3p1.0.2p1.0.1p1.0.0b1p1.0.0!odev-mastero1.2.1o1.2.0o1.1.1o1.0.1o1.0.0!ndev-mastern1.2.2n1.2.1n1.2n1.1.1n1.0.3n1.0.2n1.0.1n1.0.0!mdev-masterm1.0.x-devm1.0.3m1.0.2m1.0.1m1.0.0!ldev-masterjl1.0.0kl0.1.5ll0.1.4ml0.1.3nl0.1.2ol0.1.1pl0.1.0ql0.0.2rl0.0.1s!kdev-masterNk1.1.1Ok1.1.0Pk1.0.9Rk1.0.8Sk1.0.7Tk1.0.6Uk1.0.5Vk1.0.4Wk1.0.3Xk1.0.2Yk1.0.10Qk1.0.1Zk1.0.0[jdev-php7w!jdev-master8kjdev-fonsecas72-look_for_a_yml_config_by_defaultj1.8.3wj1.8.2wj1.8.1wj1.8.0wj1.7.0wj1.6.3wj1.6.2wj1.6.1wj1.6.0wj1.5.2wj1.5.1wj1.5.0wj1.3.0j1.2.0j1.1.1	j1.1.0
j1.0.1j1.0.0j0.0.8j0.0.7j0.0.6j0.0.5j0.0.4j0.0.3j0.0.2j0.0.1!idev-masterc#idev-developni2.0.x-devdi1.8.x-devv%i1.7.2v&i1.7.1ei1.7.0fi1.6.0gi1.5.0hi1.4.0ii1.3.4ji1.3.3ki1.3.2li1.3.1m!hdev-master.9hdev-feature/value-typeKh2.2.4/h2.2.30h2.2.21h2.2.12h2.2.03h2.1.14h2.1.05h2.0.99h2.0.8:h2.0.7;h2.0.6<h2.0.5=h2.0.4>h2.0.3?h2.0.2@h2.0.126h2.0.117h2.0.108h2.0.1Ah2.0.0Bh1.2.8Ch1.2.7Dh1.2.6Eh1.2.5Fh1.2.4Gh1.2.3Hh1.2.2Ih1.2.1J!gdev-master+gdev-codegen-appvg2.7.0ug2.6.0g2.5.0g2.4.0g2.3.1g2.3.0g2.2.0g2.1.0g2.0.3g2.0.2g2.0.1 g2.0.0!g1.4.5"g1.4.4#g1.4.3$g1.4.2%g1.4.1&g1.4.0'g1.3.1(g1.3.0)g1.2.0*g1.1.0+g1.0.0,g0.2.0-fdev-webfdev-table%fdev-readline!fdev-master!=fdev-feature/console-info#fdev-develop!fdev-daemon/fdev-build-command3fdev-bash-completion/fdev-action-loggeruf3.0.x-devu]f2.8.1u^f2.8.0f2.7.2f2.7.1f2.7.0f2.6.x-devf2.6.3f2.6.2f2.6.1f2.6.0f2.5.5f2.5.4f2.5.3f2.5.2f2.5.1f2.5.0f2.4.1f2.4.0f2.3.0f2.2.0f2.1.0f2.0.x-devf2.0.4f2.0.3f2.0.2f2.0.1f2.0.0f1.9.0f1.8.1f1.8.0f1.7.8f1.7.7f1.7.6f1.7.5f1.7.4 f1.7.3f1.7.2f1.7.1f1.7.0f1.6.6f1.6.5f1.6.4f1.6.3f1.6.2	f1.6.1
f1.6.0f1.5.13f1.4.0!f1.10.x-devf1.10.2f1.10.1!edev-master#edev-codegene2.1.2e2.1.1e2.1.0e2.0.x-deve2.0.0e1.4.5e1.4.4   e1.4.3
    yjVG8)paRC4%{l]N?0!rcT@1"qbSD5! 








y
j
[
L
=
.


									u	h	Y	J	;	,			teVC/ sfWJ=0~dO9%xiTE6'	zkXD5&}l[J9(~m\K:)          6.0.042Ob6.0.041Oc6.0.040Od6.0.039Oe6.0.038Of6.0.037Og6.0.036Oh6.0.035Oi6.0.034Oj6.0.033Ok6.0.032Ol6.0.031Om6.0.030On6.0.029Oo6.0.028Op6.0.027Oq6.0.026Or6.0.025Os6.0.024Ot6.0.023Ou6.0.022Ov6.0.021Ow6.0.020Ox6.0.019Oy6.0.018Oz6.0.017O{6.0.016O|6.0.015O}6.0.014O~6.0.013O!dev-masterM2.0.x-devM2.0.1M2.0.0M1.2.0M1.1.0M1.0.0M!dev-masterM3.0.x-devM3.0.0{_2.1.x-devM2.1.5M2.1.4M2.1.3M2.1.2M2.1.1M2.1.0M2.0.x-devM2.0.6M2.0.5M2.0.4M2.0.3M2.0.2M2.0.1M#2.0.0-BETA1M2.0.0M1.7.4M1.7.3M!dev-master>0.4>0.3.1>0.3>0.2.2>0.2.1>0.2>0.1.1>)dev-tagged-pdf>!dev-master>%dev-encoding>#dev-develop>-dev-0.6.2-hotfix>0.7.x-dev>#0.7.0-beta3#0.7.0-beta2>!0.7.0-beta>0.6.20.6.1>0.6.0>!dev-master<2.4<2.3.x-dev<2.3<2.2<2.1<2.0.1<2.0<1.7<	1.6<
1.5<1.4<1.3<1.2<1.1<1.0.x-dev<1.0<!dev-master;2.1.1;2.1.0;2.0.1;!~dev-master&~1.1.x-dev&~1.1.0& ~1.0.0&!!}dev-master}1.0.3 }1.0.2}1.0.1}1.0.0!|dev-master|1.0.x-dev|1.0.1|1.0.0!{dev-master:{0.2.6{H{0.2.5;{0.2.4<{0.2.3={0.2.1>{0.2?{0.1.2@{0.1.1A{0.1.0B{0.0.1C!ydev-mastery7.0.1U)y7.0.0y6.0.1y6.0.0y5.2.0y5.1.2y5.1.1y5.1.0y5.0.8y5.0.7y5.0.6y5.0.5y5.0.4y5.0.3y5.0.2y5.0.1y5.0.0y4.0.0y3.0.0y2.0.0y1.0.0 ;xdev-scrutinizer-patch-1!xdev-master
x0.4.0x0.3.2x0.3.1x0.3.0x0.2.0x0.1.0!wdev-masterw1.1.2w1.1.1w1.1#w1.0.1-beta4#w1.0.1-beta3#w1.0.1-beta2#w1.0.1-beta1w1.0.1w1.0.0!vdev-masterv1.3.2v1.3.1v1.3.0v1.2.0v1.1.0v1.0.1!udev-masteru1.2.0u1.1.0u1.0.0!tdev-mastert1.2.5t1.2.4t1.2.3t1.2.2t1.2.1t1.2.0t1.1.0t1.0.4t1.0.3t1.0.2t1.0.1t1.0.0t0.1.1!sdev-masters1.3.5s1.3.4s1.3.3s1.3.2s1.3.1s1.3.0s1.2.1s1.1.1s1.1.0s1.0.7s1.0.6s1.0.5s1.0.4s1.0.3s1.0.2s1.0.1!rdev-masterr1.3.2r1.3.1r1.3.0r1.1.2r1.1.1r1.1.0r1.0.2r1.0.1!qdev-masterq1.3.2q1.3.1q1.3.0q1.2.0q1.1.1q1.1.0q1.0.4q1.0.3q1.0.2q1.0.1
   xgVE4#yhWF5$ziXG6%{jYH7(
rcN:+








}
j
Q
=

								w	d	T	D	4	$		s_O9)}n_PA.paRC4
zkXC0|m^O<-}cO@1"xiZK<-              2.2.0S2.1.1T2.1U2.0V1.1.5W1.1.4X1.1.3Y1.1.2Z1.1.1[1.1.0\1.0.3]1.0.2^1.0.1_1.0`!dev-master&3.x-dev'2.3.0(2.2.0)2.1.0*2.0.0+1.4.1,1.4.0-1.3.0.1.2.0/1.1.001.0.111.0.02!dev-master*-dev-fwrite-retry01.6~1.5+1.4,1.3-1.2.1.1/!dev-master/Ydev-feature/increasing_phpunit_version2.0.22.0.12.0.01.0.x-dev1.0.21.0.11.0.0!dev-masterk.Wdev-hotfix/athletic-performance-testsl:odev-hotfix/#210-temporary-hhvm-partial-compat-fixl5edev-experiment/better-reflection-integrationl2.0.x-devk#2.0.0-BETA1}#1.0.x-devk1.0.2k1.0.1k#1.0.0-beta3k#1.0.0-beta2k#1.0.0-beta1k1.0.0k0.5.2k0.5.1k#0.5.0-BETA3k#0.5.0-BETA2k#0.5.0-BETA1k0.5.0k0.4.1k0.4.0k0.3.6k0.3.5k0.3.4k0.3.3k0.3.2l 0.3.1l0.3.0l0.2.0l0.1.0l!dev-masterc0.5.2c!dev-masterQ0.5.0Q0.4.x-devQ0.4.0Q0.3.9Q0.3.8Q0.3.7Q0.3.6Q0.3.5Qdev-trunkQ1.2.1}!dev-masterQ1.0.x-devQ1.0.0Q1.0-beta1Q!dev-masterQ1.9.5Q1.10.1Q%1.10.0alpha2Q1.10.0Q!dev-masterQ1.4.1Q1.4.0Q1.3.1Q!dev-masterQ7dev-composer-pear-devQ1.4.x-devQ1.4.1Q1.4.0Q1.3.16Q1.3.15Q1.3.14Q1.3.13Q1.3.12Q1.3.11Qdev-trunkQ%Edev-topics/composer-for-pearQ!dev-master}1.3.0}1.2.1Q1.2.0Q1.1.6}1.1.5Q!dev-masterQ0.1.2Q5dev-style/formattingO!dev-masterO+dev-development|7.0.x-dev|6.1.x-dev|6.0.0O6.0-betaO5.7.4aO5.7.4O5.7.3aO5.7.3O5.7.2O5.7.1O5.7.0O5.6.1O5.5.1O!dev-masterO#dev-developO6.2.9O6.2.8O6.2.7O6.2.6O 6.2.5O!6.2.4O"6.2.3O#6.2.2O$6.2.11O6.2.10O6.2.1O%6.2.0O&6.1.1O'6.1.0O(6.0.099O)6.0.098O*6.0.097O+6.0.096O,6.0.095O-6.0.094O.6.0.093O/6.0.092O06.0.091O16.0.090O26.0.089O36.0.088O46.0.087O56.0.086O66.0.085O76.0.084O86.0.083O96.0.082O:6.0.081O;6.0.080O<6.0.079O=6.0.078O>6.0.077O?6.0.076O@6.0.075OA6.0.074OB6.0.073OC6.0.072OD6.0.071OE6.0.070OF6.0.069OG6.0.068OH6.0.067OI6.0.066OJ6.0.065OK6.0.064OL6.0.063OM6.0.062ON6.0.061OO6.0.060OP6.0.059OQ6.0.058OR6.0.057OS6.0.056OT6.0.055OU6.0.054OV6.0.053OW6.0.052OX6.0.051OY6.0.050OZ6.0.049O[6.0.048O\6.0.047O]6.0.046O^6.0.045O_6.0.044O`  2.2.1R
    teVG8)p[G:- gXI5&}n_PA2 taRC4








t
e
V
G
8
)
								{	^	J	;	,		yeVG8)zk\M>/ vbS@-{hYJ;,
wQ?{eO9$teVG8%      1.2.5/1.2.41.2.31.2.21.2.11.2.0-RC11.2.01.1.x-dev1.1.71.1.61.1.51.1.41.1.31.1.21.1.11.1.0-RC11.1.01.0.x-dev1.0.1#1.0.0-beta4#1.0.0-beta3#1.0.0-beta2#1.0.0-beta1%1.0.0-alpha4%1.0.0-alpha3%1.0.0-alpha2%1.0.0-alpha11.0.0-RC31.0.0-RC21.0.0-RC11.0.0)dev-versioningQ-dev-poc_phpbenchO!dev-master39dev-join-on-issamenodeRdev-hhvmP%Edev-cache_queries_node_typesS1.3.x-dev41.2.x-dev51.2.5~y1.2.461.2.371.2.281.2.191.2.0-RC1;1.2.0:1.1.x-dev<1.1.5=1.1.4>1.1.3?1.1.2@1.1.1A1.1.0-RC1C1.1.0B1.0.x-devD#1.0.0-beta4J#1.0.0-beta3K#1.0.0-beta2L#1.0.0-beta1M%1.0.0-alpha1N1.0.0-RC4F1.0.0-RC3G1.0.0-RC2H1.0.0-RC1I1.0.0E!dev-master1.0.0~i0.9.10.9.00.3.00.2.00.1.0!dev-master0.9.90.9.80.9.70.9.60.9.50.9.40.9.30.9.20.9.10.9.0!dev-tester!dev-master#dev-develop1.0.21.0.0-rc11.0.00.6.00.5.00.4.2!dev-master1.0.31.0.21.0.11.0.0!dev-master?dev-phar!dev-master1.1.61.1.51.1.41.1.31.1.21.1.1#1.1.0-beta11.1.01.0.21.0.11.0.0!dev-master3dev-AUTO_PHP_CS_FIX
1.0.71.0.61.0.51.0.41.0.31.0.2	 ;dev-scrutinizer-cleanup7dev-php-parallel-lint!dev-master1.1.71.1.61.1.51.1.41.1.31.1.21.1.11.1.01.0.11.0.0!dev-master!dev-let-fn'dev-expr-hash/dev-current_index/dev-and-not-unary~2.3.0r2.2.02.1.02.0.x-dev2.0.01.1.11.1.01.0.00.4.00.3.00.2.00.1.0!dev-masterP1.1.0Q1.0.1R!dev-masterB1.0.6C1.0.5D1.0.4E1.0.3F1.0.2G1.0.1H!dev-master?1.0.0@0.0.5A)dev-packagexml>!dev-master81.3.391.3.2:1.3.1;1.3.0<1.2.0=!dev-masterc1.3.1d1.3.0e9dev-standard_deviation8!dev-masterL$Cdev-class_token_replacement91.0.x-devM0.4.100.4.010.3.020.2.330.2.2N0.2.1O0.2P0.1Q!dev-master#dev-gettext2.1.22.1.12.1.02.0.01.0.0!dev-master@3.5.8~3.5.7~3.5.6~3.5.5~3.5.4A3.5.3B3.5.2C3.5.1D3.5.0E3.4.3F3.4.2G3.4.1H3.4I3.3J3.2K3.1.1L3.1M3.0N2.3.0O2.2.3P1.2.6.
    nU3zeP;&vYF3 mWB-{l]N?0!






l
V
@
+

								{	h	Y	F	7	(		rbRB2"}n_PA2#yeJ6|m^O@1"teVG4%paRC4% sdUH;,  2.0.122.0.112.0.102.0.12.01.3.51.3.41.3.31.3.21.3.11.31.21.1.31.1.21.1.11.11.0!dev-master}1.1.0~1.0.00.2.10.1.1!dev-master!dev-bug/291.x-dev1.1.11.1.01.0.11.0.00.1.10.1.0-dev-oo-internalsK!dev-master<3.0.1=3.0.0-rc2?3.0.0-rc1@3.0.0>2.x-devA!2.1.0-betaC2.1.0B2.0.5D2.0.4-rc1F2.0.4E2.0.3G2.0.2H2.0.1I2.0.0J!dev-masterv3.0.x-devw3.0.2M(3.0.1x3.0.0y2.0.5z2.0.4{2.0.3|2.0.2}2.0.1~2.0.01.3.4Ҁ1.3.3ҁ1.3.2҂1.3.1҃1.3҄1.2҅1.1҆1.0҇+dev-symfony_3_0z%dev-rollback{5dev-new-array-helperK-dev-minor_tweaksL7dev-mercurial-supportN!dev-master(/dev-improve-errorM!dev-fix-hg}&Gdev-build-phar-package-actionI-dev-add-handlersJ1.2.0W1.1.9)1.1.8*1.1.7+1.1.6,1.1.5-1.1.4.1.1.3/1.1.201.1.111.1.021.0.431.0.341.0.251.0.161.0.070.9.9?0.9.8@0.9.7A0.9.6B0.9.5C0.9.4D0.9.3E0.9.2F0.9.1680.9.1590.9.14:0.9.13;0.9.12<0.9.11=0.9.10>0.9.1G0.9.0H-dev-poc_phpbench#dev-oak-crxdev-oak !dev-masterdev-acl1.2.x-dev1.2.21.2.11.2.0-RC11.2.01.1.x-dev1.1.31.1.21.1.11.1.0-RC11.1.01.0.x-dev1.0.1#1.0.0-beta4#1.0.0-beta3#1.0.0-beta2#1.0.0-beta1%1.0.0-alpha3%1.0.0-alpha21.0.0-RC31.0.0-RC21.0.0-RC11.0.0!dev-master1'Idev-fix-parsing-dot-in-literalT1.2.x-dev21.2.831.2.741.2.651.2.561.2.471.2.381.2.291.2.1:1.2.0-RC2<1.2.0-RC1=1.2.0;1.1.x-dev>1.1.2?1.1.1@1.1.0-RC1B1.1.0A#1.0.0-beta9K#1.0.0-beta8L#1.0.0-beta7M#1.0.0-beta6N%1.0.0-beta14F%1.0.0-beta13G%1.0.0-beta12H%1.0.0-beta11I%1.0.0-beta10J1.0.0-RC2D1.0.0-RC1E1.0.0C1.0-beta5O1.0-beta4P1.0-beta3Q1.0-beta2R1.0-beta1S3dev-query_constants0!dev-master/dev-fix-typehintsdev-acl/2.1.x-dev2.1.22.1.1#2.1.0-beta9&#2.1.0-beta8'#2.1.0-beta7(#2.1.0-beta6)#2.1.0-beta5*#2.1.0-beta4+#2.1.0-beta3,#2.1.0-beta2-%2.1.0-beta12#%2.1.0-beta11$%2.1.0-beta10%#2.1.0-beta1.2.1.0-RC2!2.1.0-RC1"2.1.0 )dev-versioning!=dev-update_binary_length+dev-observation)dev-node_types!dev-master9dev-lazy_load_propertydev-acl1.3.x-dev+1.2.x-dev2.0.2
    {n_P</ |m^O@1"~o`QD0!whYE6'reVI8$ 







z
k
\
M
>
/
 

							w	h	Y	J	;	,		ufW4yj[L=.whT=.jVI<-
sdUF7(
kN:+whYJ;,     2.2.10-2.2.162.2.072.1.482.1.392.1.2:2.1.1;2.1.0<2.0.4=2.0.3>2.0.2?2.0.1@2.0.0A1.1.0B1.0.9C1.0.8D1.0.7E1.0.6F1.0.5G1.0.4H1.0.3I1.0.2J1.0.1K1.0.0L!dev-master
3dev-laravel-5-again"&Gdev-fix-65-escape-without-key1.6.31.6.21.6.11.6.01.5.11.5.01.4.21.4.11.4.01.3.01.2.11.2.01.1.11.1.01.0.91.0.81.0.71.0.61.0.51.0.41.0.31.0.21.0.101.0.1 1.0.0!!dev-masterW0.2.2X0.2.1Y0.2Z0.1[!dev-masterC-dev-0.4-selectorL0.3.2D0.3.1E0.3.0F0.2.1G0.2.0H0.1.2I0.1.1J0.1.0K!dev-master	]4.7.0	^4.6.0	_4.5.0	`'dev-master-l4	6!dev-master	/2.0.3	02.0.2	12.0.1	22.0.0	31.0.2	41.0.1	5!dev-master	(Kdev-feature-preserve-attributes	#3.x-dev	2.2.2	2.2.1	2.2.0	2.1.2	2.1.1	2.1.0	 2.0.1	!2.0.0	"!dev-master1.0.31.0.21.0.01dev-out-of-laravel!dev-master%dev-dry-save$Cdev-bexarcreativeinc-master"?dev-activerecord-patterns3.3.03.2.03.1.13.1.03.0.02.5.02.4.22.4.12.4.02.3.12.3.02.1.02.0.12.0.0-RC2.0.01.1.01.0.31.0.21.0.11.0.0-dev-moura137-327!dev-master'dev-laravel-5#dev-2.0-dev5.2.x-dev1.5.01.4.1 1.4.01.3.01.2.51.2.41.2.31.2.21.2.11.2.01.1.1	1.1.0
1.0.x-dev1.0.00.4.0beta0.3.0beta0.2beta0.2.1beta0.1beta!dev-master1.x-dev1.91.8.11.81.71.61.51.4.41.4.31.4.21.4.11.41.31.21.10.11.101.10.9.10.9.0!dev-mastert0.2.1u0.2.0v0.1.4w0.1.3x0.1.2y0.1.1z0.1.0{!dev-masterD1.0.5E1.0.4F1.0.3G1.0.2H1.0.1I1.0.0J!dev-master,1.3-1.2.2.1.2.1/1.2.001.1.211.1.121.131.0.241.0.151.06!dev-master1.4.31.4.21.4.11.41.3.91.3.81.3.71.3.61.3.51.3.41.3.31.3.21.3.101.3.11.3.01.2.11.2.01.1.21.1.11.11.0.31.0.11.0!dev-master2.3.22.3.12.32.1.22.1.12.12.0.92.0.82.0.72.0.62.0.52.0.4
    yj[L=.hL.!rcTE6"ufWH9*vgXI:+







{
l
]
N
9
%

							s	d	U	F	3			yiYI9)	qbSD5&xdUF7(
}n_PA2#~o`QB3$teVG8(
}hYJ;,
    5dev-feature/Compiler65.1.x-dev6#5.1.0-beta165.1.065.0.x-dev65.0.465.0.365.0.265.0.16#5.0.0-beta165.0.0-RC165.0.064.x-dev64.4.964.4.864.4.764.4.664.4.564.4.464.4.364.4.264.4.1064.4.164.4.064.3.064.2.264.2.16#4.2.0-beta164.2.064.1.16#4.1.0-beta164.1.06#4.0.0-beta26#4.0.0-beta164.0.063.x-dev63.5.163.5.063.4.063.3.063.2.063.1.163.1.063.0.663.0.563.0.463.0.363.0.263.0.163.0.062.1.062.0.162.0.061.1.061.0.361.0.261.0.161.0.060.9.06!dev-master41.1.041.0.04!dev-master4u-dev-keys-contain41.4.04v1.3.24w1.3.14x1.3.04y1.2.14z1.2.04{1.1.04|1.0.14}1.0.04~!dev-master31.2.031.1.031.0.03!dev-master3|2.0.x-dev3}1.9.031.8.531.8.431.8.331.8.231.8.131.8.031.7.131.7.031.6.131.6.031.5.031.4.031.3.131.3.031.2.331.2.231.2.131.2.031.16.03~1.15.231.15.131.15.031.14.031.13.031.12.031.11.131.11.031.10.031.1.731.1.631.1.431.1.331.1.131.1.031.0.331.0.231.0.131.0.03!dev-master.1.3.x-dev.1.3.0.1.2.1.1.2.0. 1.1.0.!1.0.0."0.5.0.#!dev-master%$Cdev-feature/removeSeparator%7dev-feature/addFilter%1.2.0%1.1.0%1.0.0%!dev-masterX#dev-develop]0.1.3Y0.1.2Z0.1.1[0.1.0\3.x-dev3.1.0h#3.0.0-beta23.0.0-RC3j3.0.0-RC23.0.0-RC13.0.0i3.0-beta12.x-dev2.6.2 2.6.1!2.6.0"2.5.0#2.4.3$2.4.2%2.4.1&2.4.0'2.3.5(2.3.4)2.3.3*2.3.2+2.3.1,2.3.0-2.2.0.2.1.0/2.0.001.6.711.6.621.6.531.6.441.6.351.6.261.6.171.6.08!dev-master0.0.x-dev!dev-master0.0.x-dev!dev-master,1.0.11.0.0-!dev-master!1.3.21.3.1"1.3.0#1.2.0$1.1.1%1.1.0&1.0.1'!0.0.4-beta(!0.0.3-beta)!0.0.2-beta*!0.0.1-beta+!dev-mastert1.0.21.0.1u1.0v5dev-silex-middlewareQ1dev-severity-fixesP!=dev-recoverable-severityO3dev-monolog-handlerN!dev-master#%dev-hostnameM ;dev-check-for-url-fopenR2.6.02.5.62.5.5$2.5.4%2.5.3&2.5.2'2.5.1(2.5.0)2.4.0*2.3.1+2.3.0,2.2.9.2.2.8/2.2.702.2.612.2.522.2.432.2.34
   zk\M>/sbPA0taRA/qaQA1!zk\M>/ 








{
l
]
N
?
+
										s	d	U	F	7	(		qaQ=)uf<(	{lXK7%{lXI5#vgXI:+~kWC4 paRC4!                   1.1.01.0.x-dev|1.0.1|1.0.0|!dev-masterzw2.0.x-devzx2.0.4zy2.0.3zz2.0.2z{2.0.1z|2.0.0-rcz~!2.0.0-betaz#2.0.0-alphaz2.0.0z}!dev-masterzX2.0.x-devzY2.0.3zZ2.0.2z[2.0.1z\2.0.0-rcz^!2.0.0-betaz_2.0.0z]!dev-traviszW!dev-masterzM2.0.x-devzN2.0.4zO2.0.3zP2.0.2zQ2.0.1zR2.0.0-rczT!2.0.0-betazU#2.0.0-alphazV2.0.0zS!dev-masterzB2.0.x-devzC2.0.5zD2.0.4zE2.0.3zF2.0.2zG2.0.1zH2.0.0-rczJ!2.0.0-betazK#2.0.0-alphazL2.0.0zI!dev-masterz92.0.x-devz:2.0.4z;2.0.3z<2.0.2z=2.0.1z>2.0.0-rcz@!2.0.0-betazA2.0.0z?!dev-masterz1.2.0z1.1.5z1.1.4z1.1.1z1.1.0z1.0.5z1.0.4z1.0.3z1.0.2z1.0.1z1.0.0z!dev-masterU$2.4.8-p4U%!dev-masterU 1.1U!!dev-masterTL1.0.0TM!dev-masterTH1.1.x-dev{t1.1.01.0.x-devTI1.0.1TJ1.0.0TK!dev-masterS1.0.x-devS7dev-reduce-complexityS!dev-masterR)Mdev-feature/resolve-parent-class@0.9.0R0.8.0R0.7.2R0.7.1R0.7.0R0.6.1R0.6.0R0.5.1R0.5.0R0.4.0R0.3.0R0.2.1R0.2.0R!0.14.x-dev(!0.13.x-devR0.13.0)0.12.0R0.11.3R0.11.2R0.11.1R0.11.0R0.10.0R0.1.2R0.1.1S 0.1.0S!dev-masterQ1.1.x-devQ1.0.x-devQ1.0.3Q1.0.2Q1.0.1Q1.0.0Q0.1.7Q0.1.6Q0.1.5Q0.1.4Q0.1.3Q0.1.2Q0.1.1Q0.1.0Q!dev-masterP1.3.1P1.1.1P3dev-wip/source-mapsP!dev-masterP0.6.30.6.2P0.6.1P0.6.0P0.5.1P0.5.0P0.4.0P0.3.3P0.3.2P0.3.1P0.3.0P0.2.1P0.2.0P0.1.9P0.1.8P0.1.7P0.1.6P0.1.5P0.1.4P0.1.3P0.1.2P0.1.10P0.1.1P0.1.0P0.0.9P0.0.8P0.0.7P0.0.5P0.0.4P0.0.3P0.0.2P0.0.15P0.0.14P0.0.13P0.0.12P0.0.11P0.0.10P0.0.1P!dev-masterPF1.7.x-devPG1.7.0.9PI1.7.0.8PJ1.7.0.7PK1.7.0.6PL1.7.0.5PM1.7.0.4PN1.7.0.3PO1.7.0.2PP1.7.0.10PH1.7.0.1PQ1.7.0PR1.6.x-devPS1.6.3.1PT1.6.3PU1.6.1rc2PW1.6.1rc1PX1.6.1PV1.5.1rc3P\1.5.1rc2P]1.5.1rc1P^1.5.1b2P_1.5.1b1P`1.5.1.2PY1.5.1.1PZ1.5.1P[1.4.2rc1Pd1.4.2b3Pe1.4.2b2Pf1.4.2.2Pa1.4.2.1Pb1.4.2Pc1.3.0Pg2.0.x-devO2.0.0O2.1.x-devO2.0.x-devO2.0.0O!dev-master7+1.4.17,1.4.07-1.3.27.1.3.17/1.3.0701.2.1711.2.0721.1.0731.0.1741.0.075&Gdev-simpler-definition-helper6 1.1.x-dev
  paRC0!teVG8)sdUF7$zk\M>+	{l]J;(








}
n
[
L
=
*

									|	m	^	O	@	1	"		{l]N?0!s`L=.u[F2~o`QB3$mY@1" ~o`QB3$viYE8)        0.7.x-dev0.7.00.60.50.30.2.20.2.10.2!0.10.x-dev0.10.00.1!dev-master1.0.x-dev0.1.0!dev-masterǡ0.0.3Ǣ0.0.2ǣ!dev-masterǞ0.0.2ǟ0.0.1Ǡ!dev-masterǄ0.1.3ǅ0.1.2ǆ0.1.1Ǉ0.0.9ǉ0.0.8Ǌ0.0.7ǋ0.0.6ǌ0.0.5Ǎ0.0.4ǎ0.0.2Ǐ0.0.10ǈ0.0.1ǐ!dev-masterĿ1.1.x-dev1.1.01.0.x-dev1.0.11.0.0+dev-refactoringQ!dev-masterA+dev-doc/localesS#dev-doc/faqR0.5.x-devB0.4.3C0.4.2D0.4.1E0.4F0.3.4G0.3.3H0.3.2I0.3.1J0.3.0K0.2.1L0.2.0M0.1.2N0.1.1O0.1.0P!dev-master40.12.2.150.12.160.12.07!0.11.0-RC18!dev-master/0.12.2.100.12.110.12.02!0.11.0-RC13!dev-master%#dev-engine2-dev-blendengine20.4}0.3&0.2'0.1.x-dev(0.1)!dev-master1.0.x-dev0.4.2l0.4.10.4.00.3.00.2.10.2.00.1.0!dev-master3.0.x-dev3.0.02.0.22.0.12.0.0!dev-master4.0.x-dev3.7.23.7.13.7.03.6.93.6.83.6.73.6.63.6.5 3.6.4!3.6.3"3.6.2#3.6.113.6.103.6.1$3.6.0%3.5.0&3.4.0'3.3.0(3.2.2)3.2.1*3.2.0+3.1.0,3.0.1-3.0.0.2.1.4/2.1.302.1.212.1.122.1.032.0.142.0.051.0.561.0.471.0.381.0.291.0.1:1.0.0;!dev-master5.3.x-dev5.2.x-dev5.2.15.2.05.1.x-dev5.1.95.1.85.1.7 5.1.65.1.55.1.45.1.35.1.25.1.105.1.15.1.0!dev-master1.1.x-dev81.1.01.0.x-dev1.0.11.0.0!dev-master1.1.x-dev41.1.01.0.x-dev1.0.11.0.0!dev-master3.3.x-dev3.2.x-dev3.2.03.1.x-dev3.1.93.1.83.1.73.1.63.1.53.1.43.1.33.1.23.1.143.1.133.1.123.1.113.1.103.1.13.1.03.0.x-dev3.0.43.0.33.0.23.0.13.0.0!dev-master3.3.x-dev3.2.x-dev3.2.2^3.2.1_3.2.03.1.x-dev3.1.73.1.63.1.53.1.43.1.33.1.23.1.13.1.03.0.x-dev3.0.73.0.63.0.53.0.43.0.33.0.23.0.13.0.02.2.x-dev2.2.12.2.02.1.x-dev2.1.22.1.12.1.02.0.x-dev2.0.62.0.52.0.42.0.32.0.22.0.12.0.0   0.8.0
  dA)xgS<nY8	p`P@0!~o`QB3$





y
j
[
L
=
.


								n	_	P	A	2	!		 teVB5(n[L=.xiUD5&rcTE6'	scSC3#zk\K<+paRC4%        4.0.11]4.0.10^4.0.1g4.0.0h3.6.9l3.6.8m3.6.7n3.6.6o3.6.5p3.6.4q3.6.3r3.6.2s3.6.12i3.6.11j3.6.10k3.6.1t3.6.0u3.5.1v3.5.0w3.4.6x3.4.5.1y3.4.5z3.4.4{3.4.3.2|3.4.3.1}3.4.3~3.4.2.13.4.23.4.13.4.03.3.93.3.83.3.73.3.63.3.53.3.43.3.33.3.23.3.15.13.3.153.3.143.3.133.3.123.3.113.3.103.3.13.3.03.2.03.1.03.0.33.0.23.0.13.0.02.2.22.2.12.2.02.1.02.0.62.0.52.0.42.0.32.0.22.0.12.0.01.5.01.4.41.4.31.4.21.4.11.4.01.3.51.3.41.3.31.3.21.3.11.3.0dev-sf2!dev-master3.1.03.0.02.x-dev2.5.02.4.12.4.02.3.02.2.02.1.12.1.02.0.12.0.01.3.11.3.01.2.11.2.01.2-alpha 1.1-alpha1.0-alpha!dev-master'1.0.01.0(! dev-master 1.0.x-dev 1.0.1 !dev-master0.40.30.20.1!dev-master2.0.22.0.12.0.01.0.61.0.51.0.41.0.31.0.21.0.11.0.0!dev-masterH1.0I!dev-master؄1.x-dev؅0.2.00.1.1؆0.1.0؇0.0.1؈!dev-masterՉ1.1.x-dev1.1.0H	1.0.x-devՊ1.0.1Ջ1.0.0Ռ!dev-master)dev-5.x-stable6.0.05.0.01.0.51.0.41.0.31.0.21.0.11.0.0#Adev-update_daterangepicker!dev-masterdev-bower/dev-angular-bower)dev-5.x-stable7.0.06.0.26.0.16.0.05.0.35.0.25.0.15.0.02.0.42.0.32.0.22.0.12.01.0.91.0.81.0.71.0.61.0.51.0.41.0.31.0.21.0.141.0.131.0.121.0.111.0.101.0.1!dev-master2.5.02.4.12.4.02.3.02.2.2/dev-use_classname+%dev-timeunit +dev-suite_model ;dev-string_concat_bench,#dev-storage!dev-sqlite!-dev-report_steps(9dev-refactoring_to_xml-1dev-profiling_fuck%dev-profiler!dev-master1dev-kernelestimate"5dev-interface_suffix&'dev-histogram$!dev-graphs#dev-faq%%dev-div_zero'7dev-concurrent_runner)+dev-column_spec*,Sdev-better_report_config_validation9dev-before_after_param%dev-baseline)dev-arg_params"?dev-allow_null_fname_xslt$Cdev-aggregation_refactoring1.0.x-dev0.9.x-dev0.9.2	0.9.1
0.9.00.8.1   4.0.12\
   vgXI8)~o`L=.o^M<,|l\M>/ zj[L=.








z
k
\
M
>
/
 
									w	h	Y	J	;	,		qbRC4%yiYI9)	zjZK;,zk\M>/ n_O?0  lXI:+sdUB5&0.0.1!dev-master5.2.x-dev5.2.35.2.25.2.15.25.1.x-dev5.1.95.1.85.1.75.1.65.1.55.1.45.1.35.1.25.1.15.1.05.0.x-dev5.0.55.0.45.0.35.0.25.0.15.0.0!dev-master\5.3.x-dev]5.2.x-dev^5.2.7_5.2.6`5.2.0a5.1.x-devb5.1.8i5.1.6j5.1.28c5.1.25d5.1.22e5.1.20f5.1.2k5.1.16g5.1.13h5.1.1l5.0.x-devm5.0.4s5.0.33n5.0.28o5.0.26p5.0.25q5.0.22r5.0.0t4.2.x-devu4.2.9y4.2.8z4.2.7{4.2.6|4.2.5}4.2.4~4.2.34.2.24.2.17v4.2.16w4.2.12x4.2.1#4.2.0-BETA14.1.x-dev4.1.94.1.84.1.74.1.64.1.54.1.44.1.304.1.34.1.294.1.284.1.274.1.264.1.254.1.244.1.234.1.224.1.214.1.204.1.24.1.194.1.184.1.174.1.164.1.154.1.144.1.134.1.124.1.114.1.104.1.14.1.04.0.x-dev4.0.94.0.84.0.74.0.64.0.54.0.44.0.34.0.24.0.104.0.1#4.0.0-BETA4#4.0.0-BETA3#4.0.0-BETA24.0.01.1.01.0.1!dev-master#dev-develop%dev-L5-DT1.9dev-L46.3.16.3.06.2.4=6.2.36.2.26.2.16.2.06.1.36.1.26.1.16.1.06.0.x-dev!6.0.0-beta#6.0.0-alpha6.0.0-RC16.0.0 5.9.25.9.15.9.05.8.65.8.55.8.45.8.3 5.8.2!5.8.1"5.8.0#5.7.0$5.6.1%5.6.0&5.5.9)5.5.8*5.5.7+5.5.6,5.5.5-5.5.4.5.5.3/5.5.205.5.11'5.5.10(5.5.115.5.025.4.535.4.445.4.355.4.265.4.175.4.085.3.295.3.1:5.3.0;5.2.2<5.2.1=5.2.0>5.12.55.12.45.12.35.12.25.12.15.12.0	5.11.95.11.85.11.75.11.65.11.55.11.45.11.35.11.25.11.14
5.11.135.11.125.11.115.11.105.11.15.11.05.10.05.1.2?5.1.1@5.1.0A5.0.x-devB5.0.5C5.0.4D5.0.3E5.0.2F5.0.1G!5.0.0-betaI5.0.0H4.3.3J4.3.2K4.3.1L4.3.0M4.2.1N4.2.0O4.1.6P4.1.5.1Q4.1.5R4.1.4S4.1.3.2T4.1.3.1U4.1.3V4.1.2.1W4.1.2X4.1.1Y4.1.0Z4.0.9_4.0.8`4.0.7a4.0.6b4.0.5c4.0.4d4.0.3e4.0.2f   0.1.0
    qbSD5&^JvgXI:+whYJ;,xiVG8)








|
m
^
N
?
0
!

									t	e	V	G	8	)		|hYJ;'	whUF7(
uaM9#}n^G0	tdM6~m]M=-whYC-      %1.4.0-beta.11.4.01.3.21.3.1%1.3.0-beta.4%1.3.0-beta.3%1.3.0-beta.2%1.3.0-beta.11.3.01.2.21.2.1%1.2.0-beta.4 %1.2.0-beta.3%1.2.0-beta.2%1.2.0-beta.11.2.01.13.91.13.81.13.71.13.61.13.51.13.41.13.31.13.21.13.131.13.121.13.111.13.101.13.1'1.13.0-beta.2'1.13.0-beta.11.13.01.12.21.12.1'1.12.0-beta.3'1.12.0-beta.2'1.12.0-beta.11.12.01.11.41.11.31.11.21.11.1'1.11.0-beta.5'1.11.0-beta.2'1.11.0-beta.11.11.01.10.1'1.10.0-beta.3'1.10.0-beta.2'1.10.0-beta.11.10.01.1.31.1.21.1.1%1.1.0-beta.4%1.1.0-beta.2	%1.1.0-beta.1
1.1.01.0.1!1.0.0-rc.8!1.0.0-rc.7%1.0.0-rc.6.1!1.0.0-rc.6!1.0.0-rc.5!1.0.0-rc.4!1.0.0-rc.3!1.0.0-rc.2!1.0.0-rc.11.0.0
dev-sdk3!
dev-master#A
dev-fix-remove-config_path
3.1.0
3.0.3
3.0.2
3.0.1
3.0.0
2.0.x-dev
2.0.1%
2.0.0-beta.1
2.0.0
1.1.2
1.1.1
1.1.0
1.0.x-dev
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0!	dev-master+	6.0.0,	4.0.5-	4.0.0.!dev-masterS2.0.x-devT1.5.x-devU1.5.5V1.5.4W1.5.3X1.5.2Y1.5.1Z1.5.0[1.4.4\1.4.3]1.4.2^1.4.1_1.4.0`1.3.0a1.2.1b1.2.0c1.1.0d1.0.6e2.1.x-dev2.1.12.1.02.0.x-dev2.0.92.0.82.0.72.0.62.0.52.0.4 2.0.32.0.22.0.102.0.12.0.01.3.x-dev1.3.71.3.61.3.51.3.4	1.3.3
1.3.21.3.11.3.01.2.x-dev1.2.31.2.21.2.11.2.01.1.x-dev1.1.91.1.81.1.71.1.61.1.51.1.41.1.31.1.21.1.11.1.01.0.91.0.81.0.7 1.0.6!1.0.5"1.0.4#1.0.3$1.0.2%1.0.1&1.0.0'0.3.4(0.3.3)0.3.2*0.3.1+0.3.0,0.2.8-0.2.7.0.2.6/0.2.500.2.410.2.320.2.230.2.140.2.050.1.960.1.870.1.780.1.690.1.5:0.1.4;0.1.3<0.1.2=0.1.1>0.1.0?+dev-scrutinizer3adev-mediaholding-improved-json-api-support!dev-master"?dev-improved-l4-paginator0.9.10.9.00.8.30.8.20.8.10.8.00.7.00.6.10.6.00.5.10.5.00.4.60.4.50.4.40.4.30.4.20.4.00.3.10.3.00.2.10.2.0!0.13.x-dev0.13.00.12.00.11.0
  mWA+kU?)xiS='	}n_I3kU?)






z
j
V
F
6
&

								|	m	^	O	@	1	"		{hTD4!}m]J6' q]P<*qbNA2	zk\M>/ sdUA2#yjWC4%         !3.0.2y!3.0.1z!3.0.0{!2.0.3|!2.0.2}!2.0.1~!2.0.0!1.0.2!1.0.1!1.0.0! dev-master 1.0.x-dev 1.0.2 1.0.1 1.0.0!dev-master0.1.50.1.40.1.30.1.20.1.10.1.00.0.40.0.30.0.20.0.1!dev-master1.0.21.0.11.0.00.0.40.0.30.0.20.0.1!dev-master#dev-bundled1.0.x-dev'1.0.0-alpha.10.4.40.4.30.4.20.4.10.4.00.3.00.2.00.1.0!dev-master1.0!dev-masterW1.3.11.3.0X1.2.0Y1.1.0Z1.0.0[!dev-master#dev-develop1.0.101.0!dev-master0.1.10.1.0%dev-userAuth!dev-rc-1.0!dev-master2.0-beta1.0.5&1.0.41.0.31.0.21.0.11.0.00.9-beta!dev-master1.0!dev-mastery1.0.x-devz1.0.4{!dev-masterv1.0.x-devw1.0.28x!dev-masters1.0.x-devt1.0.4u!dev-masterm1.0.x-devn1.0.5o!dev-masterj1.0.x-devk1.0.181.0.16l!dev-masterg1.0.x-devh1.0.461.0.43i!dev-masterc1.1.x-devd1.0.x-deve1.0.9f!dev-master`1.0.x-deva1.0.141.0.13b!dev-master]1.0.x-dev^1.0.2_!dev-master1.0.x-dev1.0.161.0.12!dev-master7dev-components-jquery2.2.02.1.42.1.32.1.12.1.02.0.32.0.22.0.12.0.01.9.x-dev1.9.11.9.01.8.x-dev1.8.3!1.12.x-dev1.12.0!1.11.x-dev1.11.31.11.21.11.11.11.0!1.10.x-dev1.10.21.10.11.10.0-dev-release-1-13#dev-releasedev-rc1!dev-master#dev-glimmer!dev-canarydev-beta%2.4.0-beta.1%2.3.0-beta.3%2.3.0-beta.2%2.3.0-beta.12.3.02.2.22.2.1%2.2.0-beta.2%2.2.0-beta.12.2.02.1.22.1.1%2.1.0-beta.4%2.1.0-beta.3%2.1.0-beta.2%2.1.0-beta.12.1.02.0.32.0.22.0.1%2.0.0-beta.5%2.0.0-beta.4%2.0.0-beta.3%2.0.0-beta.2%2.0.0-beta.12.0.01.9.1%1.9.0-beta.4%1.9.0-beta.3%1.9.0-beta.11.9.01.8.1%1.8.0-beta.5%1.8.0-beta.4%1.8.0-beta.3%1.8.0-beta.2%1.8.0-beta.11.8.01.7.1%1.7.0-beta.5%1.7.0-beta.4%1.7.0-beta.3%1.7.0-beta.2%1.7.0-beta.11.7.01.6.1%1.6.0-beta.5%1.6.0-beta.4%1.6.0-beta.3%1.6.0-beta.2%1.6.0-beta.11.6.01.5.1%1.5.0-beta.4%1.5.0-beta.3%1.5.0-beta.2%1.5.0-beta.11.5.0%1.4.0-beta.6%1.4.0-beta.5%1.4.0-beta.4%1.4.0-beta.3   !4.0.0x
    rcT@3$ueUE5%vfWH9*vgXI:+xiZK<-








o
_
K
;
'

									q	^	O	<	-		qbR>*zkXI6#ufWD1"ubM:'vfVF8+qbS?0!{k[K;+              )2.0.7)2.0.25)2.0.24)2.0.23)2.0.22)2.0.21)2.0.20)2.0.19)2.0.18)2.0.17)2.0.16)2.0.15)2.0.14)2.0.13)2.0.12)2.0.10#(dev-phpstan!(dev-master|(1.2.0}(1.1.0~(1.0.0(0.1.1(0.1.0!'dev-masterW'1.1.1X'1.1.0Y'1.0.0Z'0.2.0['0.1.0\!&dev-master/&1.96&1.87&1.78&1.6.29&1.6.1:&1.6;&1.5<&1.4=&1.3>&1.2?&1.13&1.12.4&1.12.30&1.12.21&1.12.12&1.123&1.114&1.105&1.1.1@&1.1A&1.0B%%dev-post-2.4!%dev-masterV%4.0.x-devW%3.x-devX%3.4.x-devY%3.3.x-devZ#%3.3.0.x-dev>%3.3.0-rc1?#%3.3.0-beta1[%3.2.x-dev\%3.2.1-rc2^%3.2.1-rc1_%3.2.1]%3.2.0-rc2a%3.2.0-rc1b#%3.2.0-beta2c#%3.2.0-beta1d%3.2.0`%3.1.x-deve%3.1.9-rc1t%3.1.9s%3.1.8u%3.1.7-rc1w%3.1.7v%3.1.6-rc3y%3.1.6-rc2z%3.1.6-rc1{%3.1.6x%3.1.5-rc1}%3.1.5|%3.1.4-rc1%3.1.4~%3.1.3-rc2%3.1.3-rc1%3.1.3%3.1.2-rc1%3.1.2!%3.1.16-rc1g%3.1.16f%3.1.15h!%3.1.14-rc1j%3.1.14i!%3.1.13-rc1l%3.1.13k%3.1.12m!%3.1.11-rc1o%3.1.11n!%3.1.10-rc2q!%3.1.10-rc1r%3.1.10p%3.1.1%3.1.0-rc3%3.1.0-rc2%3.1.0-rc1#%3.1.0-beta3#%3.1.0-beta2#%3.1.0-beta1%3.1.0%3.0.x-dev%3.0.9-rc1%3.0.9%3.0.8%3.0.7-rc1%3.0.7%3.0.6-rc2%3.0.6-rc1%3.0.6%3.0.5%3.0.4%3.0.3-rc2%3.0.3-rc1%3.0.3%3.0.2.1%3.0.14%3.0.13%3.0.12!%3.0.11-rc1%3.0.11!%3.0.10-rc1%3.0.10%2.5.x-dev%2.4.x-dev%2.4.9%2.4.13%2.4.12%2.4.11%2.4.10!$dev-master$2.0.x-dev $2.0.0!$1.1.x-dev"$1.1.8#$1.1.7$$1.1.6%$1.1.5&$1.1.4'$1.1.3($1.1.2)$1.1.1*$1.1.0+$1.0.x-dev,$1.0.0-#dev-php7!#dev-master#dev-dev#0.3.8#0.3.7#0.3.6#0.3.5#0.3.4#0.3.3#0.3.2#0.3.1#0.3.0#0.2.2#0.2.1#0.2.0-rc3#0.2.0-rc2#0.2.0-rc#0.2.0#0.1.x-dev#0.1.9#0.1.8#0.1.7#0.1.6#0.1.5#0.1.4#0.1.35#0.1.34#0.1.33#0.1.32#0.1.31#0.1.30#0.1.3#0.1.29#0.1.28#0.1.27#0.1.26#0.1.25 #0.1.24#0.1.23#0.1.22#0.1.21#0.1.20#0.1.2#0.1.19#0.1.18#0.1.17#0.1.16	#0.1.15
#0.1.14#0.1.13#0.1.12#0.1.11#0.1.10#0.1.1#0.1!"dev-master"0.1.1"0.1.0!!dev-masters-!dev-feature/php7#!dev-develop!6.0.0!5.0.2t!5.0.1u!5.0.0v)2.0.9
  qbSD5&{l]N;,}n^N>.o_O?0!wgXI:+








q
a
Q
B
3
$

								~	n	^	N	>	/	 		zk\M>/ |gXE2~n^N?0vgXE6!~o`QB3$}n_PA2#|m^O<-  !,dev-master,2.2.x-dev,2.2.1,2.2.0,2.1.x-dev,2.1.1,2.1.0,2.0.x-dev,2.0.6,2.0.5,2.0.4,2.0.3,2.0.2,2.0.1-rc1,2.0.1,2.0.0,1.0.x-dev!+dev-master5+dev-freeform_reports+2.3.x-dev+2.3.2+2.3.1+2.3.0+2.2.2+2.2.1+2.2.0+2.0.x-dev+1.1.x-dev+1.1.3+1.1.2+1.1.1!*dev-master*2.8.x-dev*2.8.2*2.8.1*2.8.0*2.7.1*2.7.0*2.6.1*2.6.0*2.5.1*2.5.0*2.4.1*2.4.0*2.3.x-dev*2.3.0-RC1#*2.3.0-BETA2*2.3.0*2.2.x-dev*2.2.0-RC2#*2.2.0-BETA2#*2.2.0-BETA1*2.2.0*2.1.x-dev*2.1.9*2.1.8*2.1.7*2.1.5*2.1.0-RC2*2.1.0-RC1#*2.1.0-BETA4#*2.1.0-BETA3#*2.1.0-BETA2#*2.1.0-BETA1*2.1.0*2.0.x-dev*2.0.9*2.0.7*2.0.23*2.0.22*2.0.21*2.0.20*2.0.19*2.0.18*2.0.17*2.0.16*2.0.15*2.0.14*2.0.13*2.0.12*2.0.10!)dev-master)3.1.x-dev)3.0.x-dev)3.0.1#)3.0.0-BETA1)3.0.0)2.8.x-dev)2.8.2)2.8.1 #)2.8.0-BETA1)2.8.0)2.7.x-dev)2.7.9)2.7.8)2.7.7)2.7.6)2.7.5)2.7.4	)2.7.3
)2.7.2)2.7.1#)2.7.0-BETA2#)2.7.0-BETA1)2.7.0)2.6.x-dev)2.6.9)2.6.8)2.6.7)2.6.6)2.6.5)2.6.4)2.6.3)2.6.2)2.6.13)2.6.12)2.6.11)2.6.10)2.6.1#)2.6.0-BETA2#)2.6.0-BETA1 )2.6.0)2.5.x-dev!)2.5.9%)2.5.8&)2.5.7')2.5.6()2.5.5))2.5.4*)2.5.3+)2.5.2,)2.5.12")2.5.11#)2.5.10$)2.5.1-)2.5.0-RC1/#)2.5.0-BETA20#)2.5.0-BETA11)2.5.0.)2.4.x-dev2)2.4.94)2.4.85)2.4.76)2.4.67)2.4.58)2.4.49)2.4.3:)2.4.2;)2.4.103)2.4.1<)2.4.0-RC1>#)2.4.0-BETA2?#)2.4.0-BETA1@)2.4.0=)2.3.x-devA)2.3.9^)2.3.8_)2.3.7`)2.3.6a)2.3.5b)2.3.4c)2.3.37B)2.3.36C)2.3.35D)2.3.34E)2.3.33F)2.3.32G)2.3.31H)2.3.30I)2.3.3d)2.3.29J)2.3.28K)2.3.27L)2.3.26M)2.3.25N)2.3.24O)2.3.23P)2.3.22Q)2.3.21R)2.3.20S)2.3.2e)2.3.19T)2.3.18U)2.3.17V)2.3.16W)2.3.15X)2.3.14Y)2.3.13Z)2.3.12[)2.3.11\)2.3.10])2.3.1f)2.3.0g)2.2.x-devh)2.2.9k)2.2.8l)2.2.7m)2.2.6n)2.2.5o)2.2.4p)2.2.3q)2.2.2r)2.2.11i)2.2.10j)2.2.1s)2.2.0t)2.1.x-devu)2.1.9z)2.1.8{)2.1.7|)2.1.6})2.1.5~)2.1.4)2.1.3)2.1.2)2.1.13v)2.1.12w)2.1.11x)2.1.10y)2.1.1)2.1.0   -1.0.0h
    qaQB2"ufWH9&q]I5$vbQ=.zk\M>/ 







q
\
M
>

									p	\	M	>	/	 		r^O@1"t`QA1!ufWH9*ufWH9&sdUF3ufWH9*ufWH9*              A1.2.3A1.2.2A1.2.1A1.1.7A1.1.6A1.1.5A1.1.4A1.1.3A1.1.2A1.1.1A1.1.0A1.0.4A1.0.3A1.0.2A1.0.0!@dev-master"?@dev-feature/major-changes#@dev-develop@0.9.1@0.9.0@0.8.2@0.8.1@0.8.0@0.7.1@0.7.0@0.6.0@0.5.0@0.4.0@0.3.0@0.2.1@0.2.0@0.1.0@0.0.1!?dev-master?0.2.1?0.2.0?0.1.0!>dev-master">0.3.x-dev#>0.2.0$>0.1.2%>0.1.1&>0.1.0'!=dev-master=1.5.x-dev=1.2.1=1.2.0=1.1.3=1.1.2=1.1.1=1.1.0 =1.0.0!!<dev-master
<0.2.x-dev<0.1.4<0.1.3<0.1.2<0.1.1<0.1.0!;dev-master!;dev-bug109	;1.1.0;1.0.2;1.0.1#;1.0.0-alpha;1.0.0;0.9.1;0.9.0;0.8.1;0.8.0;0.7.1 ;0.7.0;0.6.0;0.5.0;0.4.0;0.3.0;0.2.1;0.2.0;0.15.2;0.15.1;0.15.0;0.14.2;0.14.1;0.14.0;0.13.0;0.12.0;0.11.0;0.10.0;0.1.0!:dev-master:1.0.1:1.0.0:0.4.1:0.4.0:0.3.0:0.2.0:0.1.0!9dev-master91.2.x-dev91.1.491.1.391.1.291.1.191.1.091.0.0!8dev-master80.0.2 80.0.1!7dev-master72.6.072.5.x-dev72.5.672.5.572.5.472.5.372.5.272.5.072.4.072.3.372.3.2 72.3.1!!6dev-master}	61.6.1}
61.6.0}61.5.4}61.5.3}61.5.2}/5dev-new-injection!5dev-master51.0.151.0.0!4dev-master!=4dev-datetime-nanoseconds 43.1.0 43.0.1#43.0.0-beta1%43.0.0-alpha3%43.0.0-alpha2%43.0.0-alpha143.0.042.8.x-dev42.8.442.8.3	42.8.2
42.8.142.8.042.7.442.7.342.7.242.7.142.7.042.6.142.6.042.5.042.4.042.3.042.2.042.1.242.1.142.1.042.0.041.1.241.1.141.1.041.0.0!3dev-master31.x-dev!31.16.01.14!2dev-masterΒ21.x-devΓ!21.16.01.11Δ!20.16.01.06Ε!1dev-mastere11.x-devf!11.16.01.11g!10.15.11.23h!0dev-mastera01.x-devb!01.16.01.11c!00.15.11.23d!/dev-master\/1.x-dev]!/1.16.01.14^!/1.16.01.11_!/0.16.01.06`!.dev-master{o.1.1.x-dev{p.1.1.0S.1.0.1{q.1.0.0{r!-dev-masterh-1.0.x-devh-1.0.9h-1.0.8h-1.0.7h-1.0.6h-1.0.5h-1.0.4h-1.0.3h-1.0.29-1.0.28-1.0.27h-1.0.26h-1.0.25h-1.0.24h-1.0.23h-1.0.22h-1.0.21h-1.0.20h-1.0.2h-1.0.19h-1.0.18h-1.0.17h-1.0.16h-1.0.15h-1.0.14h-1.0.13h-1.0.12h-1.0.11h-1.0.10hA1.2.4
    scSD5&}m]M=-u\H;,wfWC-zk\M>-









~
o
_
P
A
2
#

									s	_	P	A	2	#		|fQ<'	vgXI:+whYJ;,q8#nR/sS.qL.  -Jdev-hotfix/2.3.8/+QJdev-fix-recursive-dependancy-errorH#AJdev-feature/vagrantplugins53aJdev-feature/user-file-backwards-compatibleF5Jdev-feature/timeouts6$CJdev-feature/switch-defaults>6gJdev-feature/stopInScreen-process-doesnt-exist3 ;Jdev-feature/ssh-commandD!=Jdev-feature/script-fixes@/Jdev-feature/rsync:'IJdev-feature/restricted-stories?$CJdev-feature/prose-namespace-9Jdev-feature/phar-fixes.#AJdev-feature/optional-proxy2*OJdev-feature/net-resiliant-installG!=Jdev-feature/multi-windowA(KJdev-feature/more-autocompletion=!=Jdev-feature/list-systemsB"?Jdev-feature/instagram-api<1Jdev-feature/iframe45Jdev-feature/http-fixC!=Jdev-feature/facebook-api;5Jdev-feature/env-fqdnE!=Jdev-feature/dependencies95Jdev-feature/composer7'Jdev-ds-stable8#Jdev-develop,8kJdev-bug/unable-to-have-json-in-test-environment*$CJdev-add-arraystringprose-ts+J2.3.8J2.3.7	J2.3.6
J2.3.5J2.3.4J2.3.3J2.3.2J2.3.1J2.3.0J2.2.1J2.2.0J2.1.2J2.1.1J2.1.0J2.0.2J2.0.1J2.0.0J1.5.8J1.5.7J1.5.6J1.5.5J1.5.4J1.5.3J1.5.2J1.5.1 J1.5.0!J1.4.3"J1.4.2#J1.4.1$J1.4.0%J1.3.3&J1.3.2'J1.3.1(J1.3.0)!Idev-masterI1.x-devI1.1.2I1.1.1I1.1.0I1.0.0 !Hdev-masterH2.1.0H2.0.1#H2.0.0-beta3#H2.0.0-beta2#H2.0.0-beta1%H2.0.0-alpha5%H2.0.0-alpha4%H2.0.0-alpha3%H2.0.0-alpha2%H2.0.0-alpha1H2.0.0H1.0.x-devH1.0.0H0.3.0H0.2.1H0.2.0H0.1.2H0.1.1H0.1.0!Gdev-masterG1.0.x-devG1.0.4G1.0.3G1.0.2G1.0.1G1.0.0!Fdev-masterhF1.2.8jF1.2.7kF1.2.6lF1.2.5.1mF1.2.5nF1.2.4oF1.2.3pF1.2.2qF1.2.10iF1.2.1rF1.2.0sF1.1.0tF1.0.5uF1.0.4vF1.0.3wF1.0.2xF1.0.1yF1.0.0z!Edev-masterfE2.0.0g!Ddev-masterD4.x-devD3.0.9D3.0.8D3.0.7D3.0.6D3.0.5D3.0.4D3.0.3D3.0.2D3.0.10D3.0.1%D3.0.0-beta.5%D3.0.0-beta.4%D3.0.0-beta.3%D3.0.0-beta.2%D3.0.0-beta.1!D3.0.0-betaD3.0.0D2.x-devD2.0.5D2.0.4D2.0.3D2.0.2D2.0.1D2.0.0!Cdev-masterC0.8.1C0.8C0.6C0.5.6C0.5.5C0.5.4C0.4!Bdev-mastere+Bdev-dev-prezireB1.2.9sB1.2.8tB1.2.7uB1.2.6vB1.2.5wB1.2.4xB1.2.3yB1.2.22fB1.2.21gB1.2.20hB1.2.2zB1.2.19iB1.2.18jB1.2.17kB1.2.16lB1.2.15mB1.2.14nB1.2.13oB1.2.12pB1.2.11qB1.2.10rB1.2.1{B1.2.0|B1.1.9B1.1.8B1.1.7B1.1.6B1.1.5B1.1.4B1.1.3B1.1.2B1.1.12}B1.1.11~B1.1.10B1.1.0B1.0.5B1.0.4B1.0.3B1.0.2B1.0.1B1.0.0!Jdev-master
    }hTE6'ufWH9*vfVF6&yQ3zk\M>/ 







t
e
V
G
8
)

 								|	l	\	L	<	,		ufWH3qbSD/zk\M8$nZK<'yj[L=(sdUF7$ufWH9*     c4.0.0Ϸb1.0.1>b1.0.0?!adev-master#adev-boolfix,a4.0.2a4.0.1a4.0.0 a3.2.1!a3.2.0"a3.1.1#a3.1.0$a3.0.0%a2.2.2&a2.2.1'a2.2.0(a2.1.0)a2.0.0*a1.0.0+!`dev-master`0.0.1!_dev-master_1.0.x-dev_0.5.0_0.4.3_0.4.2_0.4.1_0.4.0_0.3.2_0.3.1_0.3.0 _0.2.0!^dev-master#^dev-develop^1.1.0^1.0.1^1.0.0!]dev-masterY#]dev-develop^]4.2.0Z]4.1.0[]4.0.2\]4.0.1]!\dev-masterV#\dev-developX\1.0.0W/[dev-release/1.1.6U![dev-masterQ#[dev-developT[1.1.6R[1.1.5S!Zdev-masterM#Zdev-developPZ2.1.4NZ2.1.3O!Ydev-masterI#Ydev-developLY4.0.2JY4.0.1K!Xdev-masterA#Xdev-developHX4.2.0BX4.1.0CX4.0.1DX4.0.0EX3.0.2FX3.0.1G!Wdev-master7#Wdev-develop@W1.3.28W1.3.19W1.3.0:W1.2.1;W1.2.0<W1.1.1=W1.1.0>W1.0.0?!Vdev-master2#Vdev-develop6V4.3.33V4.3.24V4.3.15!Udev-master#Udev-developU1.4.0U1.3.0U1.2.1U1.2.0U1.1.2U1.1.1U1.1.0U1.0.0!Tdev-master#Tdev-developT1.0.1T1.0.01Sdev-release/2.16.0!Sdev-master#Sdev-developS2.9.0S2.8.0S2.7.0S2.6.2 S2.6.1S2.6.0S2.5.2S2.5.1S2.5.0S2.4.0S2.3.0S2.2.0S2.16.0S2.15.0S2.14.0S2.13.0S2.12.2S2.12.1S2.12.0S2.11.0S2.10.0S2.1.1	S2.1.0
S2.0.0S1.0.0!Rdev-master#Rdev-developR1.0.0!Qdev-master#Qdev-developQ1.3.1Q1.3.0Q1.2.0Q1.1.1Q1.1.0Q1.0.0!Pdev-master#Pdev-developP1.0.1P1.0.0!Odev-master#Odev-developO1.5.5O1.5.4O1.5.3O1.5.2O1.5.1O1.5.0O1.4.7O1.4.6O1.4.5O1.4.4O1.4.3O1.4.2O1.4.1O1.4.0O1.3.5O1.3.4O1.3.3O1.3.2O1.3.1O1.3.0!Ndev-masterV5Ndev-feature/DEV-3562ƀ'INdev-feature/CurlStreamConsumerƁ#Ndev-developN1.9.9`N1.9.8aN1.9.7bN1.9.6cN1.9.5dN1.9.4eN1.9.3fN1.9.2gN1.9.16YN1.9.15ZN1.9.14[N1.9.13\N1.9.12]N1.9.11^N1.9.10_N1.9.1hN1.9.0iN1.8.1jN1.8.0kN1.7.2lN1.7.1mN1.7.0nN1.6.9oN1.6.8pN1.6.7qN1.6.6rN1.6.5sN1.6.4tN1.6.3uN1.6.2vN1.6.1wN1.6.0xN1.5.5yN1.5.4zN1.5.3{N1.5.2|N1.5.1}N1.5.0~N1.10.1WN1.10.0X!Mdev-masterP#Mdev-developUM0.1.3QM0.1.2RM0.1.1SM0.1.0T!Ldev-masterM#Ldev-developOL0.1.0N!Kdev-masterI#Kdev-developLK0.1.1JK0.1.0K+Jdev-support/1.x1!bdev-master=
    }n_PA2#qbSD5&uh[L=.yiZK<- yj[L=.








z
f
Y
J
6

									}	n	_	P	A	2	#		{l]N?0!|m^O;,s`M>.vgXI:+}m^N>. yj[L8)qbS8$          %udev-style-ci+udev-mixin-merge+udev-mixin-attrs!udev-master/udev-code-coverageu1.6.0u1.5.1u1.5.0u1.4.0u1.3u1.2u1.1.1u1.1!tdev-mastert0.2.0t0.1.0!sdev-masters0.2.0s0.1.1s0.1.0!rdev-masternr1.1.2or1.1.1pr1.1.0qr1.0.3rr1.0.2sr1.0.1tr1.0.0ur0.8.0vr0.7.9ۅr0.7.7ۆr0.7.6ۇr0.7.5ۈr0.7.4ۉr0.7.3ۊr0.7.23wr0.7.22xr0.7.21yr0.7.20zr0.7.2ۋr0.7.19{r0.7.18|r0.7.17}r0.7.16~r0.7.15r0.7.14ۀr0.7.13ہr0.7.12ۂr0.7.11ۃr0.7.10ۄr0.7.1یr0.7.0ۍr0.6.4ێr0.6.3ۏr0.6.2ېr0.6.1ۑr0.6.0ےr0.5.9ۘr0.5.8ۙr0.5.7ۚr0.5.6ۛr0.5.5ۜr0.5.4۝r0.5.3۞r0.5.2۟r0.5.15ۓr0.5.14۔r0.5.12ەr0.5.11ۖr0.5.10ۗr0.5.1۠r0.5.0-rc2ۢr0.5.0-rc1ۣr0.5.0ۡr0.4.3ۤr0.4.2ۥr0.4.1ۦr0.4.0ۧr0.3.3ۨr0.3.2۩r0.3.1۪r0.3.0۫!qdev-masterq1.0.2q1.0.1q1.0.0!pdev-masterغp0.0.6ػp0.0.5ؼp0.0.4ؽp0.0.3ؾp0.0.2ؿp0.0.1!odev-masterظo0.0.4ع!ndev-masterضn0.0.1ط!mdev-masterآm3.5.1أm3.5.0ؤm3.4.0إm3.3.0ئm3.2.2اm3.2.1بm3.2.0ةm3.1.2تm3.1.1ث!ldev-master؞l0.0.5؟l0.0.2ؠl0.0.1ء!kdev-master_k2.4.x-dev`k2.3.x-devak2.3.8bk2.3.7ck2.3.6dk2.3.5ek2.3.4fk2.3.3gk2.3.2hk2.3.1ik2.3.0jk2.2.x-devkk2.2.5lk2.2.4mk2.2.3nk2.2.2ok2.2.1pk2.2.0q!jdev-masterGj1.0H1idev-old-cms-bundle!idev-masteri0.1.1i0.1!hdev-master֢h5.1.4֣h5.1.3֤h5.1.2֥h5.1.1֦h5.0.1֧h5.0.0֨h4.1.2֩h4.1.1֪h4.1.0֫h4.0.1֬h4.0֭h3.x-dev֮h3.0.6֯h3.0.5ְh3.0.4ֱh3.0.3ֲh3.0.2ֳh3.0.1ִh3.0ֵh2.x-devֶh2.0.4ַh2.0.3ָh2.0.2ֹh2.0.1ֺh2.0.0ֻh1.1.9ֽh1.1.8־h1.1.7ֿh1.1.6h1.1.5h1.1.4h1.1.3h1.1.2h1.1.10ּh1.1.1h1.1h1.0.2h1.0.1h1.0h0.2h0.1!gdev-master֎g1.0.x-dev֏g1.0.6֐g1.0.5֑g1.0.4֒g1.0.3֓g1.0.2֔g1.0.1֕g1.0֖g0.1֗!fdev-master|f2.0.4}f2.0.3~f2.0.2f2.0.1րf2.0.0ցf1.0.2ւf1.0.1փf1.0.0ք!edev-masterTe1.x-devUe1.2.2Ve1.2.1We1.2.0Xe1.1.2Ye1.1.1Ze1.1.0[e1.0.0\!ddev-masterddev-devd0.4.8d0.4.7#d0.4.6-patchd0.4.6d0.4.5d0.4.4d0.4.3d0.4.2d0.4.1d0.3.1d0.3.0d0.2.2d0.2.1d0.2.0d0.1.2d0.1.1!cdev-masterϲ#cdev-developϸc4.0.4ϳc4.0.3ϴc4.0.2ϵ
  }hS>/ rcTE6#zjZJ:*~m\L<,whYJ;,









x
i
Z
I
8
)

										s	d	S	B	/	 		scSC3#yj[J7$whU@1"sdU1|m^QB.whYJ;,lR>#     0.4.1[0.4.0\0.3.0]0.2.0^0.1.0_~dev-wip=/~dev-release-2.6.09!~dev-master%-~dev-hotfix-2.5.5:-~dev-hotfix-2.5.4;-~dev-hotfix-2.5.3<"?~dev-feature-wp-filesystem>~2.6.0&~2.5.5'~2.5.4(~2.5.3)~2.5.2*~2.5.1+~2.5.0,~2.4.6-~2.4.5.~2.4.4/~2.4.30~2.4.21~2.4.12~2.4.03~2.3.44~2.3.35~2.3.26~2.3.17~2.3.08!}dev-master}1.1.1}1.1}1.0.1}1.0.0!|dev-master|1.1.1|1.1|1.0.1|1.0.0!{dev-masterݰ{2.0.2ݱ{2.0.1ݲ{2.0.0ݳ{1.1.0ݴ{1.0.1ݵ{1.0.0ݶ/zdev-one-dot-three,!zdev-master()zdev-feed-class+#Azdev-cache-backwards-compat*z1.3.1)y3.5.6Fy3.5.5Gy3.5.4Hy3.5.3Iy3.5.2Jy3.5.1K#y3.5.0-beta1Ny3.5.0-RC1My3.5.0Ly3.4.5Oy3.4.4Py3.4.3Qy3.4.2Ry3.4.1S#y3.4.0-beta1Vy3.4.0-RC1Uy3.4.0Ty3.3.beta1ay3.3.RC2_y3.3.RC1`y3.3.7Wy3.3.6Xy3.3.5Yy3.3.4Zy3.3.3[y3.3.2\y3.3.1]y3.3.0^y3.2.beta2yy3.2.beta1zy3.2.RC1xy3.2.9ny3.2.8oy3.2.7py3.2.6qy3.2.5ry3.2.4sy3.2.3ty3.2.21by3.2.20cy3.2.2uy3.2.19dy3.2.18ey3.2.17fy3.2.16gy3.2.15hy3.2.14iy3.2.13jy3.2.12ky3.2.11ly3.2.10my3.2.1vy3.2.0wy3.1.beta1܂y3.1.RC1܁y3.1.5{y3.1.4|y3.1.3}y3.1.2~y3.1.1y3.1.0܀y3.0.beta1܌y3.0.RC2܊y3.0.RC1܋y3.0.6܃y3.0.5܄y3.0.4܅y3.0.3܆y3.0.2܇y3.0.1܈y3.0.0܉y2.9.RC1ܯy2.9.5ܩy2.9.4ܪy2.9.3ܫy2.9.2ܬy2.9.1ܭy2.9.0ܮy2.8.RC2ܵy2.8.RC1ܶy2.8.4ܰy2.8.3ܱy2.8.2ܲy2.8.1ܳy2.8.0ܴy2.7.7ܷy2.7.6ܸy2.7.5ܹy2.7.4ܺy2.7.3ܻy2.7.2ܼy2.7.1ܽy2.7.0ܾy2.6.8ܿy2.6.7y2.6.6y2.6.5y2.6.4y2.6.3y2.6.2y2.6.1y2.6.0!y2.11.beta1ܡy2.11.RC2ܟy2.11.RC1ܠy2.11.9ܕy2.11.8ܖy2.11.7ܗy2.11.6ܘy2.11.5ܙy2.11.4ܚy2.11.3ܛy2.11.2ܜy2.11.17܍y2.11.16܎y2.11.15܏y2.11.14ܐy2.11.13ܑy2.11.12ܒy2.11.11ܓy2.11.10ܔy2.11.1ܝy2.11.0ܞ!y2.10.beta1ܨy2.10.RC1ܧy2.10.4ܢy2.10.3ܣy2.10.2ܤy2.10.1ܥy2.10.0ܦ!xdev-masterDx0.12.2E/wdev-release/3.0.0B/wdev-release/2.4.0C!wdev-master&#wdev-developAw3.0.x-dev'w2.4.x-dev(w2.3.x-dev)w2.3.8*w2.3.7+w2.3.6,w2.3.5-w2.3.4.w2.3.3/w2.3.20w2.3.11w2.32w2.2.53w2.2.44w2.2.35w2.2.26w2.2.17w2.28w2.19w2.0.2:w2.0.1;#w2.0.0-beta4=#w2.0.0-beta3>#w2.0.0-beta2?#w2.0.0-beta1@w2.0.0<!vdev-master v5.0.0!v4.9.0"v4.8.0#v4.7.0$   0.5.0Z
   * ~n^N>.~jVF6&rcTE6'	vfVF6&|iTE6'	





g
7
"				s	K	,	pN"g9mT4%zm`SF9% vgXI:+t`Q>*                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !dev-master1.0.x-dev1.0.0!dev-master3dev-bornemix-master1.0.x-dev0.2.30.2.20.2.10.2.00.1.10.1.00.0.90.0.80.0.70.0.60.0.50.0.40.0.30.0.2'0.0.13-alpha2'0.0.13-alpha10.0.120.0.110.0.10%0.0.1-alpha3%0.0.1-alpha2%0.0.1-alpha10.0.1!dev-master0.50.40.30.20.1!dev-master0.70.6!dev-masterF1.2.0G1.1.4H1.1.3I1.1.2J1.1.1K1.1.0L1.0.1M1.0.0N9dev-view_default_param+dev-release/1.0/dev-query_builder!dev-masterg$Cdev-hotfix/system-user-sort-Udev-feature/webspace_throw_exception$Cdev-feature/webspace-import$Cdev-feature/webspace-export-Udev-feature/unsaved-changes-handling$Cdev-feature/storage-manager ;dev-feature/soft-delete+Qdev-feature/sitemap-multi-webspace ;dev-feature/platform-sh޿'Idev-feature/media-sync-service+Qdev-feature/json-schema-validation!=dev-feature/faster-behat ;dev-feature/enable-user(Kdev-feature/doctrine-dbal-tests+Qdev-feature/deep-link-content-form ;dev-feature/custom-urls$Cdev-feature/category-update7dev-feature/benchmark'Idev-feature/backbone-extension)Mdev-enhancement/z-index-handling)Mdev-enhancement/vendor-directory*Odev-enhancement/sort-system-users/Ydev-enhancement/moved_blame_subscriber#dev-develop޾/Ydev-bugfix/search-index-error-handling޽3dev-bugfix/postgres޺+Qdev-bugfix/get-image-url-exception޼+Qdev-bugfix/delete-referenced-pages޻1.1.8h1.1.7i1.1.6j1.1.5k1.1.4l1.1.3m1.1.2n1.1.1o#1.1.0-beta1s1.1.0-RC2q1.1.0-RC1r1.1.0p1.0.9z1.0.8{1.0.7|1.0.6}1.0.5~1.0.41.0.3ހ1.0.2ށ1.0.15t1.0.14u1.0.13v1.0.12w1.0.11x1.0.10y1.0.1ނ1.0.0-RC3ބ1.0.0-RC2ޅ1.0.0-RC1ކ1.0.0ރ0.9.0ޡ0.8.6ޢ0.8.5ޣ0.8.4ޤ0.8.3ޥ0.8.2ަ0.8.1ާ0.8.0ި0.7.1ީ0.7.0ު0.6.8ޫ0.6.7ެ0.6.6ޭ0.6.5ޮ0.6.4ޯ0.6.3ް0.6.2ޱ0.6.1޲0.6.0޳0.5.0޴0.4.0޵0.3.0޶0.2.0޷0.18.2އ0.18.1ވ0.18.0މ!0.17.0-RC2ދ!0.17.0-RC1ތ0.17.0ފ0.16.2ލ0.16.1ގ0.16.0ޏ0.15.3ސ0.15.2ޑ0.15.1ޒ0.15.0ޓ0.14.2ޔ0.14.1ޕ0.14.0ޖ0.13.2ޗ0.13.1ޘ0.13.0ޙ0.12.0ޚ0.11.2ޛ0.11.1ޜ0.11.0ޝ0.10.2ޞ0.10.1ޟ0.10.0ޠ0.1.1޸0.1.0޹!dev-masterYcontinents_en[] = 'Africa';
continents_en[] = 'Antartic';
continents_en[] = 'Asia';
continents_en[] = 'Europe';
continents_en[] = 'North America';
continents_en[] = 'Oceania';
continents_en[] = 'South America';
continents_en[] = 'America';
continents_en[] = 'Antartica';
   Bud1            %                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 @                                              @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   E   %                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       DSDB                             `                                                     @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              constants[] = 'FORCE_GZIP';
constants[] = 'FORCE_DEFLATE';

functions[] = readgzfile
functions[] = gzrewind
functions[] = gzclose
functions[] = gzeof
functions[] = gzgetc
functions[] = gzgets
functions[] = gzgetss
functions[] = gzread
functions[] = gzopen
functions[] = gzpassthru
functions[] = gzseek
functions[] = gztell
functions[] = gzwrite
functions[] = gzputs
functions[] = gzfile
functions[] = gzcompress
functions[] = gzuncompress
functions[] = gzdeflate
functions[] = gzinflate
functions[] = gzencode
functions[] = ob_gzhandler
functions[] = zlib_get_coding_type
functions[] = gzdecode

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

constants[] = 

functions[] = 

classes[] = Imagick
classes[] = ImagickException
classes[] = ImagickDraw
classes[] = ImagickDrawException
classes[] = ImagickPixel
classes[] = ImagickPixelException
classes[] = ImagickPixelIterator
classes[] = ImagickPixelIteratorException
classes[] = Imagick
classes[] = ImagickException
classes[] = ImagickDraw
classes[] = ImagickDrawException
classes[] = ImagickPixel
classes[] = ImagickPixelException
classes[] = ImagickPixelIterator
classes[] = ImagickPixelIteratorException
    
interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

ext[] = 'array';
ext[] = 'date';
ext[] = 'file';
ext[] = 'http';
ext[] = 'info';
ext[] = 'math';
ext[] = 'ob';
ext[] = 'standard';
ext[] = 'string';
ext[] = 'spl';
ext[] = 'xml';
ext[] = 'pcre';
functions[] = eio_init
functions[] = eio_poll
functions[] = eio_event_loop
functions[] = eio_get_last_error
functions[] = eio_open
functions[] = eio_truncate
functions[] = eio_chown
functions[] = eio_chmod
functions[] = eio_mkdir
functions[] = eio_rmdir
functions[] = eio_unlink
functions[] = eio_utime
functions[] = eio_mknod
functions[] = eio_link
functions[] = eio_symlink
functions[] = eio_rename
functions[] = eio_close
functions[] = eio_sync
functions[] = eio_fsync
functions[] = eio_fdatasync
functions[] = eio_futime
functions[] = eio_ftruncate
functions[] = eio_fchmod
functions[] = eio_fchown
functions[] = eio_dup2
functions[] = eio_read
functions[] = eio_write
functions[] = eio_readlink
functions[] = eio_realpath
functions[] = eio_stat
functions[] = eio_lstat
functions[] = eio_fstat
functions[] = eio_statvfs
functions[] = eio_fstatvfs
functions[] = eio_readdir
functions[] = eio_sendfile
functions[] = eio_readahead
functions[] = eio_seek
functions[] = eio_syncfs
functions[] = eio_sync_file_range
functions[] = eio_fallocate
functions[] = eio_custom
functions[] = eio_busy
functions[] = eio_nop
functions[] = eio_cancel
functions[] = eio_grp
functions[] = eio_grp_add
functions[] = eio_grp_cancel
functions[] = eio_grp_limit
functions[] = eio_set_max_poll_time
functions[] = eio_set_max_poll_reqs
functions[] = eio_set_min_parallel
functions[] = eio_set_max_parallel
functions[] = eio_set_max_idle
functions[] = eio_nthreads
functions[] = eio_nreqs
functions[] = eio_nready
functions[] = eio_npending
functions[] = eio_get_event_stream
functions[] = eio_init
functions[] = eio_get_last_error
functions[] = eio_event_loop
functions[] = eio_poll
functions[] = eio_open
functions[] = eio_truncate
functions[] = eio_chown
functions[] = eio_chmod
functions[] = eio_mkdir
functions[] = eio_rmdir
functions[] = eio_unlink
functions[] = eio_utime
functions[] = eio_mknod
functions[] = eio_link
functions[] = eio_symlink
functions[] = eio_rename
functions[] = eio_close
functions[] = eio_sync
functions[] = eio_fsync
functions[] = eio_fdatasync
functions[] = eio_futime
functions[] = eio_ftruncate
functions[] = eio_fchmod
functions[] = eio_fchown
functions[] = eio_dup2
functions[] = eio_read
functions[] = eio_write
functions[] = eio_readlink
functions[] = eio_realpath
functions[] = eio_stat
functions[] = eio_lstat
functions[] = eio_fstat
functions[] = eio_statvfs
functions[] = eio_fstatvfs
functions[] = eio_readdir
functions[] = eio_sendfile
functions[] = eio_readahead
functions[] = eio_seek
functions[] = eio_syncfs
functions[] = eio_sync_file_range
functions[] = eio_fallocate
functions[] = eio_custom
functions[] = eio_busy
functions[] = eio_nop
functions[] = eio_cancel
functions[] = eio_grp
functions[] = eio_grp_add
functions[] = eio_grp_limit
functions[] = eio_grp_cancel
functions[] = eio_set_max_poll_time
functions[] = eio_func
functions[] = eio_func
functions[] = eio_get_event_stream
functions[] = eio_init
functions[] = eio_poll
functions[] = eio_event_loop
functions[] = eio_get_last_error
functions[] = eio_open
functions[] = eio_truncate
functions[] = eio_chown
functions[] = eio_chmod
functions[] = eio_mkdir
functions[] = eio_rmdir
functions[] = eio_unlink
functions[] = eio_utime
functions[] = eio_mknod
functions[] = eio_link
functions[] = eio_symlink
functions[] = eio_rename
functions[] = eio_close
functions[] = eio_sync
functions[] = eio_fsync
functions[] = eio_fdatasync
functions[] = eio_futime
functions[] = eio_ftruncate
functions[] = eio_fchmod
functions[] = eio_fchown
functions[] = eio_dup2
functions[] = eio_read
functions[] = eio_write
functions[] = eio_readlink
functions[] = eio_realpath
functions[] = eio_stat
functions[] = eio_lstat
functions[] = eio_fstat
functions[] = eio_statvfs
functions[] = eio_fstatvfs
functions[] = eio_readdir
functions[] = eio_sendfile
functions[] = eio_readahead
functions[] = eio_seek
functions[] = eio_syncfs
functions[] = eio_sync_file_range
functions[] = eio_fallocate
functions[] = eio_custom
functions[] = eio_busy
functions[] = eio_nop
functions[] = eio_cancel
functions[] = eio_grp
functions[] = eio_grp_add
functions[] = eio_grp_cancel
functions[] = eio_grp_limit
functions[] = eio_set_max_poll_time
functions[] = eio_set_max_poll_reqs
functions[] = eio_set_min_parallel
functions[] = eio_set_max_parallel
functions[] = eio_set_max_idle
functions[] = eio_nthreads
functions[] = eio_nreqs
functions[] = eio_nready
functions[] = eio_npending
functions[] = eio_get_event_stream
functions[] = eio_init
functions[] = eio_get_last_error
functions[] = eio_event_loop
functions[] = eio_poll
functions[] = eio_open
functions[] = eio_truncate
functions[] = eio_chown
functions[] = eio_chmod
functions[] = eio_mkdir
functions[] = eio_rmdir
functions[] = eio_unlink
functions[] = eio_utime
functions[] = eio_mknod
functions[] = eio_link
functions[] = eio_symlink
functions[] = eio_rename
functions[] = eio_close
functions[] = eio_sync
functions[] = eio_fsync
functions[] = eio_fdatasync
functions[] = eio_futime
functions[] = eio_ftruncate
functions[] = eio_fchmod
functions[] = eio_fchown
functions[] = eio_dup2
functions[] = eio_read
functions[] = eio_write
functions[] = eio_readlink
functions[] = eio_realpath
functions[] = eio_stat
functions[] = eio_lstat
functions[] = eio_fstat
functions[] = eio_statvfs
functions[] = eio_fstatvfs
functions[] = eio_readdir
functions[] = eio_sendfile
functions[] = eio_readahead
functions[] = eio_seek
functions[] = eio_syncfs
functions[] = eio_sync_file_range
functions[] = eio_fallocate
functions[] = eio_custom
functions[] = eio_busy
functions[] = eio_nop
functions[] = eio_cancel
functions[] = eio_grp
functions[] = eio_grp_add
functions[] = eio_grp_limit
functions[] = eio_grp_cancel
functions[] = eio_set_max_poll_time
functions[] = eio_func
functions[] = eio_func
functions[] = eio_get_event_stream

constants[] = 

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = lzf_compress
functions[] = lzf_decompress
functions[] = lzf_optimized_for

constants[] = 

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = mssql_bind
functions[] = mssql_close
functions[] = mssql_connect
functions[] = mssql_data_seek
functions[] = mssql_execute
functions[] = mssql_fetch_array
functions[] = mssql_fetch_assoc
functions[] = mssql_fetch_batch
functions[] = mssql_fetch_field
functions[] = mssql_fetch_object
functions[] = mssql_fetch_row
functions[] = mssql_field_length
functions[] = mssql_field_name
functions[] = mssql_field_seek
functions[] = mssql_field_type
functions[] = mssql_free_result
functions[] = mssql_free_statement
functions[] = mssql_get_last_message
functions[] = mssql_guid_string
functions[] = mssql_init
functions[] = mssql_min_error_severity
functions[] = mssql_min_message_severity
functions[] = mssql_next_result
functions[] = mssql_num_fields
functions[] = mssql_num_rows
functions[] = mssql_pconnect
functions[] = mssql_query
functions[] = mssql_result
functions[] = mssql_rows_affected
functions[] = mssql_select_db

constants[] = 'MSSQL_ASSOC';
constants[] = 'MSSQL_BOTH';
constants[] = 'MSSQL_NUM';
constants[] = 'SQLBIT';
constants[] = 'SQLCHAR';
constants[] = 'SQLFLT4';
constants[] = 'SQLFLT8';
constants[] = 'SQLINT1';
constants[] = 'SQLINT2';
constants[] = 'SQLINT4';
constants[] = 'SQLTEXT';
constants[] = 'SQLVARCHAR';

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = enchant_broker_describe
functions[] = enchant_broker_dict_exists
functions[] = enchant_broker_free_dict
functions[] = enchant_broker_free
functions[] = enchant_broker_get_error
functions[] = enchant_broker_init
functions[] = enchant_broker_list_dicts
functions[] = enchant_broker_request_dict
functions[] = enchant_broker_request_pwl_dict
functions[] = enchant_broker_set_ordering
functions[] = enchant_dict_add_to_personal
functions[] = enchant_dict_add_to_session
functions[] = enchant_dict_check
functions[] = enchant_dict_describe
functions[] = enchant_dict_get_error
functions[] = enchant_dict_is_in_session
functions[] = enchant_dict_quick_check
functions[] = enchant_dict_store_replacement
functions[] = enchant_dict_suggest

classes[] = 

constants[] = 'ENCHANT_MYSPELL';
constants[] = 'ENCHANT_ISPELL';

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

;
ignore[] = '$1$2';
ignore[] = '00000000';
ignore[] = '0000000000000000';
ignore[] = '0123456789abcdef';
ignore[] = '1WVERIFY';
ignore[] = '2223003122003222'; //Mastercard (2-series)
ignore[] = '30569309025904'; //Diners Club
ignore[] = '31622400'; // one year in seconds
ignore[] = '3566002020360505'; //JCB
ignore[] = '371449635398431'; //American Express
ignore[] = '378282246310005'; //American Express
ignore[] = '38520000023237'; //Diners Club
ignore[] = '4000056655665556'; //Visa (debit)
ignore[] = '4242424242424242'; //Visa (from strip website)
ignore[] = '5105105105105100'; //Mastercard (prepaid)
ignore[] = '5200828282828210'; //Mastercard (debit)
ignore[] = '5555555555554444'; //Mastercard
ignore[] = '6011000990139424'; //Discover
ignore[] = '6011111111111117'; //Discover
ignore[] = '6200000000000005'; //UnionPay
ignore[] = '63072000'; // two years in seconds
ignore[] = 'A012345A';
ignore[] = 'A1234567';
ignore[] = 'ABAMPERE';
ignore[] = 'abcddcba';
ignore[] = 'ABCDEF1234567890';
ignore[] = 'ABDALLAH';
ignore[] = 'ABDULLAH';
ignore[] = 'ABORTRETRYIGNORE';
ignore[] = 'ABRAHAMS';
ignore[] = 'ABRAMSON';
ignore[] = 'ABSCISSA';
ignore[] = 'ABSOLUTE';
ignore[] = 'ABSTRACT';
ignore[] = 'ABUDHABI';
ignore[] = 'ACCEPTED';
ignore[] = 'ACCOUNTADDRESSES';
ignore[] = 'ACCOUNTS';
ignore[] = 'ACCRINTM';
ignore[] = 'ACCTTYPE';
ignore[] = 'ACKERMAN';
ignore[] = 'ACKERSON';
ignore[] = 'ACROFORM';
ignore[] = 'ACTIFSUB';
ignore[] = 'ACTIONS1';
ignore[] = 'ACTIONS2';
ignore[] = 'ACTIVADO';
ignore[] = 'ACTIVATE';
ignore[] = 'ACTIVITE';
ignore[] = 'ACTIVITY';
ignore[] = 'ADALANIU';
ignore[] = 'ADAMCZYK';
ignore[] = 'ADDITION';
ignore[] = 'ADDRESS1';
ignore[] = 'ADDRESS2';
ignore[] = 'ADDRESS3';
ignore[] = 'ADE426FA';
ignore[] = 'ADELAIDE';
ignore[] = 'ADERHOLT';
ignore[] = 'ADHESION';
ignore[] = 'ADKINSON';
ignore[] = 'ADKISSON';
ignore[] = 'ADMINDIR';
ignore[] = 'ADMINISTRATORTAL';
ignore[] = 'ADMINTAL';
ignore[] = 'ADRESSES';
ignore[] = 'ADRIENNE';
ignore[] = 'ADVANCED';
ignore[] = 'ADVARSEL';
ignore[] = 'AFILIADO';
ignore[] = 'AGAMAHIN';
ignore[] = 'AGAMAKAT';
ignore[] = 'AGOSTINI';
ignore[] = 'AGUILERA';
ignore[] = 'AHLSTROM';
ignore[] = 'AIRFORCE';
ignore[] = 'AIRPLANE';
ignore[] = 'AKTMAAND';
ignore[] = 'AL32UTF8';
ignore[] = 'ALAHADYANTOERANA';
ignore[] = 'ALATORRE';
ignore[] = 'ALBANESE';
ignore[] = 'ALBARADO';
ignore[] = 'ALBARRAN';
ignore[] = 'ALBRECHT';
ignore[] = 'ALBRIGHT';
ignore[] = 'ALCANTAR';
ignore[] = 'ALDERETE';
ignore[] = 'ALDERMAN';
ignore[] = 'ALDERSON';
ignore[] = 'ALDRIDGE';
ignore[] = 'ALEMANIA';
ignore[] = 'ALESHIRE';
ignore[] = 'ALICEPHP';
ignore[] = 'ALLENDER';
ignore[] = 'ALLIGOOD';
ignore[] = 'ALLOCATE';
ignore[] = 'ALLOWING';
ignore[] = 'ALLSTATE';
ignore[] = 'ALLWORDS';
ignore[] = 'ALMAGUER';
ignore[] = 'ALMANZAR';
ignore[] = 'ALPHABET';
ignore[] = 'ALPHANUM';
ignore[] = 'ALPHONSE';
ignore[] = 'ALPHONSO';
ignore[] = 'ALTERWAY';
ignore[] = 'ALVARADO';
ignore[] = 'ALVERSON';
ignore[] = 'AMARGRUB';
ignore[] = 'AMBURGEY';
ignore[] = 'AMENDOLA';
ignore[] = 'AMMERMAN';
ignore[] = 'AMORLINC';
ignore[] = 'AMQPLAIN';
ignore[] = 'AMUNDSEN';
ignore[] = 'AMUNDSON';
ignore[] = 'ANALISIS';
ignore[] = 'ANALYSEN';
ignore[] = 'ANALYSER';
ignore[] = 'ANALYZED';
ignore[] = 'ANCHONDO';
ignore[] = 'ANDERSEN';
ignore[] = 'ANDERSON';
ignore[] = 'ANDERTON';
ignore[] = 'ANDRESEN';
ignore[] = 'ANGELICA';
ignore[] = 'ANGELINA';
ignore[] = 'ANGELINE';
ignore[] = 'ANGELITA';
ignore[] = 'ANGSTROM';
ignore[] = 'ANGUIANO';
ignore[] = 'ANGUILLA';
ignore[] = 'ANNMARIE';
ignore[] = 'ANNONCES';
ignore[] = 'ANNUNCIO';
ignore[] = 'ANNUNCIU';
ignore[] = 'ANOATUAL';
ignore[] = 'ANOLOCAL';
ignore[] = 'ANSWERED';
ignore[] = 'ANTENNAS';
ignore[] = 'ANTILLAS';
ignore[] = 'ANTISPAM';
ignore[] = 'ANUNCIOS';
ignore[] = 'ANYTHING';
ignore[] = 'ANZALONE';
ignore[] = 'APACHEINSTALLDIR';
ignore[] = 'APARICIO';
ignore[] = 'APETAGEX';
ignore[] = 'APOSTILB';
ignore[] = 'APPELLER';
ignore[] = 'APPENDER';
ignore[] = 'APPERSON';
ignore[] = 'APPLETON';
ignore[] = 'APPLICATIONMODAL';
ignore[] = 'APPROVAL';
ignore[] = 'APPROVED';
ignore[] = 'APPROVER';
ignore[] = 'APPSPATH';
ignore[] = 'APPTITLE';
ignore[] = 'APPYNAME';
ignore[] = 'AQUARIUS';
ignore[] = 'ARAMBULA';
ignore[] = 'ARBOGAST';
ignore[] = 'ARBUCKLE';
ignore[] = 'ARCHIVED';
ignore[] = 'ARCHIVES';
ignore[] = 'ARECHIGA';
ignore[] = 'ARELLANO';
ignore[] = 'ARGUELLO';
ignore[] = 'ARGUMENT';
ignore[] = 'ARMITAGE';
ignore[] = 'ARMSTEAD';
ignore[] = 'ARRAYLEN';
ignore[] = 'ARRAYROW';
ignore[] = 'ARREGUIN';
ignore[] = 'ARRESTED';
ignore[] = 'ARROWOOD';
ignore[] = 'ARTICHOW';
ignore[] = 'ARTICLEPAGENAMEE';
ignore[] = 'ARTICLES';
ignore[] = 'ARTIKELZIEDNAAME';
ignore[] = 'ARTIKKELIAVARUUS';
ignore[] = 'ARTIKKELSIDENAVN';
ignore[] = 'ARTIKLAR';
ignore[] = 'ARTIKLER';
ignore[] = 'ARUTELUNIMERUUM1';
ignore[] = 'ARVIDSON';
ignore[] = 'ASBINARY';
ignore[] = 'ASCENCIO';
ignore[] = 'ASCIISTR';
ignore[] = 'ASHBAUGH';
ignore[] = 'ASHBROOK';
ignore[] = 'ASHCRAFT';
ignore[] = 'ASHCROFT';
ignore[] = 'ASHLEIGH';
ignore[] = 'ASHWORTH';
ignore[] = 'ASPKAT2L';
ignore[] = 'ASSEMBLY';
ignore[] = 'ASSETTAG';
ignore[] = 'ASSETURL';
ignore[] = 'ASSIGNED';
ignore[] = 'ASSIGNEE';
ignore[] = 'ASSIGNER';
ignore[] = 'ASTERISK';
ignore[] = 'ASUNCION';
ignore[] = 'ATCHISON';
ignore[] = 'ATEBERDE';
ignore[] = 'ATHERTON';
ignore[] = 'ATKINSON';
ignore[] = 'ATTA0001';
ignore[] = 'ATTA0002';
ignore[] = 'ATTACHED';
ignore[] = 'ATTEBERY';
ignore[] = 'ATTEMPTS';
ignore[] = 'ATTEMPTSEXCEEDED';
ignore[] = 'ATTEMTPS';
ignore[] = 'ATTENDEE';
ignore[] = 'ATTORNEY';
ignore[] = 'ATTOWATT';
ignore[] = 'AUBUCHON';
ignore[] = 'AUERBACH';
ignore[] = 'AUGUSTIN';
ignore[] = 'AUGUSTUS';
ignore[] = 'AUMILLER';
ignore[] = 'AUSWAEHR';
ignore[] = 'AUTHCODE';
ignore[] = 'AUTHENTIFICATION';
ignore[] = 'AUTHTYPE';
ignore[] = 'AUTOFAIL';
ignore[] = 'AUTOHIDE';
ignore[] = 'AUTOLOAD';
ignore[] = 'AUTOLOCK';
ignore[] = 'AUTONEXT';
ignore[] = 'AUTOREAK';
ignore[] = 'AUTORITE';
ignore[] = 'AUTORITE';
ignore[] = 'AUTOSAVEINTERVAL';
ignore[] = 'AUTOSIZE';
ignore[] = 'AVALLONE';
ignore[] = 'AVENDANO';
ignore[] = 'AVERAGEA';
ignore[] = 'AVERAGEBREAKTIME';
ignore[] = 'AVIDEMUX';
ignore[] = 'AVOGADRO';
ignore[] = 'AVSADDRESSRESULT';
ignore[] = 'BABINEAU';
ignore[] = 'BACHMANN';
ignore[] = 'BACKLINK';
ignore[] = 'BACKLUND';
ignore[] = 'BACKSCAN';
ignore[] = 'BACKTICK';
ignore[] = 'BACKWARD';
ignore[] = 'BADEABD7';
ignore[] = 'BADVALUE';
ignore[] = 'BAHTTEXT';
ignore[] = 'BALANCED';
ignore[] = 'BALBUENA';
ignore[] = 'BALDERAS';
ignore[] = 'BALDUCCI';
ignore[] = 'BALLANCE';
ignore[] = 'BALTAZAR';
ignore[] = 'BALTZELL';
ignore[] = 'BANCROFT';
ignore[] = 'BANDCAMP';
ignore[] = 'BANFIELD';
ignore[] = 'BANISTER';
ignore[] = 'BANKHEAD';
ignore[] = 'BANKISEL';
ignore[] = 'BANKSTON';
ignore[] = 'BANUELOS';
ignore[] = 'BAOSISPAGINANAAM';
ignore[] = 'BAPTISTA';
ignore[] = 'BAPTISTE';
ignore[] = 'BARAHONA';
ignore[] = 'BARBADOS';
ignore[] = 'BARBIERI';
ignore[] = 'BARCENAS';
ignore[] = 'BARCLAYS';
ignore[] = 'BARCODES';
ignore[] = 'BARDSLEY';
ignore[] = 'BARDWELL';
ignore[] = 'BAREFOOT';
ignore[] = 'BARFIELD';
ignore[] = 'BARGAINS';
ignore[] = 'BARHORST';
ignore[] = 'BARNETTE';
ignore[] = 'BARNHART';
ignore[] = 'BARNHILL';
ignore[] = 'BARNWELL';
ignore[] = 'BARRAGAN';
ignore[] = 'BARREIRO';
ignore[] = 'BARRERAS';
ignore[] = 'BARRETTE';
ignore[] = 'BARTLETT';
ignore[] = 'BARTLING';
ignore[] = 'BASALDUA';
ignore[] = 'BASEBALL';
ignore[] = 'BASELINE';
ignore[] = 'BASENAME';
ignore[] = 'BASEPATH';
ignore[] = 'BASINGER';
ignore[] = 'BASISPAGINANAAME';
ignore[] = 'BASNIGHT';
ignore[] = 'BATHROOM';
ignore[] = 'BATTISTA';
ignore[] = 'BATTISTE';
ignore[] = 'BAUGHMAN';
ignore[] = 'BAUMBACH';
ignore[] = 'BAUMGART';
ignore[] = 'BAUTISTA';
ignore[] = 'BAZEMORE';
ignore[] = 'BDISPMAX';
ignore[] = 'BEANDATA';
ignore[] = 'BEATRICE';
ignore[] = 'BEAUBIEN';
ignore[] = 'BEAUDOIN';
ignore[] = 'BEAUFORD';
ignore[] = 'BEAUFORT';
ignore[] = 'BEAULIEU';
ignore[] = 'BEAUMONT';
ignore[] = 'BEAUVAIS';
ignore[] = 'becaf9be';
ignore[] = 'BECHTOLD';
ignore[] = 'BECKFORD';
ignore[] = 'BECKMANN';
ignore[] = 'BECKWITH';
ignore[] = 'BEHRENDS';
ignore[] = 'BEHRENDT';
ignore[] = 'BEJARANO';
ignore[] = 'BELANGER';
ignore[] = 'BELGRAVE';
ignore[] = 'BELIVEAU';
ignore[] = 'BELMONTE';
ignore[] = 'BELVILLE';
ignore[] = 'BENEDICT';
ignore[] = 'BENEFIEL';
ignore[] = 'BENEFITS';
ignore[] = 'BENFIELD';
ignore[] = 'BENGTSON';
ignore[] = 'BENJAMIN';
ignore[] = 'BENNETTE';
ignore[] = 'BEQUETTE';
ignore[] = 'BERGERON';
ignore[] = 'BERGESON';
ignore[] = 'BERGEVIN';
ignore[] = 'BERGGREN';
ignore[] = 'BERGLUND';
ignore[] = 'BERGMANN';
ignore[] = 'BERINGER';
ignore[] = 'BERKELEY';
ignore[] = 'BERLANGA';
ignore[] = 'BERMUDES';
ignore[] = 'BERMUDEZ';
ignore[] = 'BERNARDI';
ignore[] = 'BERNARDO';
ignore[] = 'BERNHARD';
ignore[] = 'BERRYMAN';
ignore[] = 'BERTHOLD';
ignore[] = 'BERTRAND';
ignore[] = 'BESHEARS';
ignore[] = 'BESSETTE';
ignore[] = 'BETADIST';
ignore[] = 'BETANCES';
ignore[] = 'BETATAWI';
ignore[] = 'BEVEILIGINGSNIVO';
ignore[] = 'BEVERAGE';
ignore[] = 'BEVERLEY';
ignore[] = 'BEZANSON';
ignore[] = 'BGCOLOR1';
ignore[] = 'BGCOLOR2';
ignore[] = 'BGCOLOR3';
ignore[] = 'BGCOLOR4';
ignore[] = 'BGCOLOR5';
ignore[] = 'BGCOLOR6';
ignore[] = 'BICKFORD';
ignore[] = 'BICKNELL';
ignore[] = 'BIELECKI';
ignore[] = 'BIERMANN';
ignore[] = 'BILINEAR';
ignore[] = 'BILJESKA';
ignore[] = 'BILLINGFREQUENCY';
ignore[] = 'BILLINGS';
ignore[] = 'BILODEAU';
ignore[] = 'BIN2GRAY';
ignore[] = 'BINDINGS';
ignore[] = 'BINGAMAN';
ignore[] = 'BINTODEC';
ignore[] = 'BINTOHEX';
ignore[] = 'BINTOOCT';
ignore[] = 'BIRDSALL';
ignore[] = 'BIRDSELL';
ignore[] = 'BIRDSONG';
ignore[] = 'BIRDWELL';
ignore[] = 'BIRKHOLZ';
ignore[] = 'BIRKLAND';
ignore[] = 'BIRNBAUM';
ignore[] = 'BIRTHDAY';
ignore[] = 'BISCHOFF';
ignore[] = 'BISSETTE';
ignore[] = 'BITCOUNT';
ignore[] = 'BITFIELD';
ignore[] = 'BKGROUND';
ignore[] = 'BLACKMAN';
ignore[] = 'BLACKMER';
ignore[] = 'BLACKMON';
ignore[] = 'BLAKELEY';
ignore[] = 'BLAKEMAN';
ignore[] = 'BLAKENEY';
ignore[] = 'BLANDING';
ignore[] = 'BLANFORD';
ignore[] = 'BLANSETT';
ignore[] = 'BLAUVELT';
ignore[] = 'BLAYLOCK';
ignore[] = 'BLDINDEX';
ignore[] = 'BLESSING';
ignore[] = 'BLINKING';
ignore[] = 'BLIZZARD';
ignore[] = 'BLOBDATA';
ignore[] = 'BLOBEDIT';
ignore[] = 'BLOCKING';
ignore[] = 'BLODGETT';
ignore[] = 'BLOMBERG';
ignore[] = 'BLOWFISH';
ignore[] = 'BLUBAUGH';
ignore[] = 'BLUMBERG';
ignore[] = 'BLWYDDYNGYFREDOL';
ignore[] = 'BOARDMAN';
ignore[] = 'BODIFORD';
ignore[] = 'BODYTEXT';
ignore[] = 'BOHANNAN';
ignore[] = 'BOHANNON';
ignore[] = 'BOHNSACK';
ignore[] = 'BOISVERT';
ignore[] = 'BOLANDER';
ignore[] = 'BOLINGER';
ignore[] = 'BOLLOCKS';
ignore[] = 'BONNETTE';
ignore[] = 'BOOKINGS';
ignore[] = 'BOOKLAND';
ignore[] = 'BOOKLIST';
ignore[] = 'BOOKMARK';
ignore[] = 'BORCHERS';
ignore[] = 'BORCHERT';
ignore[] = 'BORDEAUX';
ignore[] = 'BORDELON';
ignore[] = 'BOROWSKI';
ignore[] = 'BORRELLI';
ignore[] = 'BOSHEARS';
ignore[] = 'BOSTWICK';
ignore[] = 'BOSWORTH';
ignore[] = 'BOTHWELL';
ignore[] = 'BOTSFORD';
ignore[] = 'BOTSWANA';
ignore[] = 'BOTTORFF';
ignore[] = 'BOUCHARD';
ignore[] = 'BOUDREAU';
ignore[] = 'BOUFFARD';
ignore[] = 'BOUGHNER';
ignore[] = 'BOUGHTON';
ignore[] = 'BOULWARE';
ignore[] = 'BOUNDARY';
ignore[] = 'BOUNDOPT';
ignore[] = 'BOURASSA';
ignore[] = 'BOURBEAU';
ignore[] = 'BOURDEAU';
ignore[] = 'BOURGOIN';
ignore[] = 'BOURLAND';
ignore[] = 'BOURQUIN';
ignore[] = 'BOUSQUET';
ignore[] = 'BOUTIQUE';
ignore[] = 'BOUTWELL';
ignore[] = 'BOWERMAN';
ignore[] = 'BOWERSOX';
ignore[] = 'BOYDSTON';
ignore[] = 'BRACKETS';
ignore[] = 'BRACKETT';
ignore[] = 'BRACKMAN';
ignore[] = 'BRADBURN';
ignore[] = 'BRADBURY';
ignore[] = 'BRADDOCK';
ignore[] = 'BRADESCO';
ignore[] = 'BRADFORD';
ignore[] = 'BRADSHAW';
ignore[] = 'BRADSHER';
ignore[] = 'BRADWELL';
ignore[] = 'BRAFFORD';
ignore[] = 'BRAINARD';
ignore[] = 'BRAINERD';
ignore[] = 'BRAMLETT';
ignore[] = 'BRANCHES';
ignore[] = 'BRANSCUM';
ignore[] = 'BRANTLEY';
ignore[] = 'BRANTNER';
ignore[] = 'BRASHEAR';
ignore[] = 'BRASSARD';
ignore[] = 'BRASSELL';
ignore[] = 'BRASWELL';
ignore[] = 'BRATCHER';
ignore[] = 'BREDIMAX';
ignore[] = 'BREEDING';
ignore[] = 'BRESSLER';
ignore[] = 'BREWSTER';
ignore[] = 'BRICKLEY';
ignore[] = 'BRICKNER';
ignore[] = 'BRIDGERS';
ignore[] = 'BRIDGETT';
ignore[] = 'BRIDWELL';
ignore[] = 'BRIGANCE';
ignore[] = 'BRIGANTI';
ignore[] = 'BRIGHTON';
ignore[] = 'BRIGITTE';
ignore[] = 'BRINDLEY';
ignore[] = 'BRINEGAR';
ignore[] = 'BRINKLEY';
ignore[] = 'BRINKMAN';
ignore[] = 'BRITTAIN';
ignore[] = 'BRITTANY';
ignore[] = 'BRITTNEY';
ignore[] = 'BROADDUS';
ignore[] = 'BROADNAX';
ignore[] = 'BROADWAY';
ignore[] = 'BROCKETT';
ignore[] = 'BROCKMAN';
ignore[] = 'BROCKWAY';
ignore[] = 'BRODBECK';
ignore[] = 'BROMBERG';
ignore[] = 'BROOKING';
ignore[] = 'BROOKINS';
ignore[] = 'BROOKLIN';
ignore[] = 'BROOKMAN';
ignore[] = 'BROSKEEP';
ignore[] = 'BROTHERS';
ignore[] = 'BROWNELL';
ignore[] = 'BROWNING';
ignore[] = 'BROWNLEE';
ignore[] = 'BROWNLOW';
ignore[] = 'BROWSERS';
ignore[] = 'BROWSING';
ignore[] = 'BRUBAKER';
ignore[] = 'BRUCKNER';
ignore[] = 'BRUENING';
ignore[] = 'BRUMBACK';
ignore[] = 'BRUMMETT';
ignore[] = 'BRUMMITT';
ignore[] = 'BRUNDAGE';
ignore[] = 'BRUNELLE';
ignore[] = 'BRUNETTE';
ignore[] = 'BRUNETTI';
ignore[] = 'BRUSSELS';
ignore[] = 'BRUTEFORCEACTIVE';
ignore[] = 'BUCHANAN';
ignore[] = 'BUCHANON';
ignore[] = 'BUCHHEIT';
ignore[] = 'BUCHHOLZ';
ignore[] = 'BUCKELEW';
ignore[] = 'BUCKLAND';
ignore[] = 'BUDAPEST';
ignore[] = 'BUETTNER';
ignore[] = 'BUFFERED';
ignore[] = 'BUFSPACE';
ignore[] = 'BUILDBOX';
ignore[] = 'BUILDERS';
ignore[] = 'BUILDING';
ignore[] = 'BUILDVER';
ignore[] = 'BUKOWSKI';
ignore[] = 'BULGARIA';
ignore[] = 'BULKMAIL';
ignore[] = 'BURCHARD';
ignore[] = 'BURCHELL';
ignore[] = 'BURCHETT';
ignore[] = 'BURCIAGA';
ignore[] = 'BURDETTE';
ignore[] = 'BURGOYNE';
ignore[] = 'BURKHART';
ignore[] = 'BURKHEAD';
ignore[] = 'BURLEIGH';
ignore[] = 'BURLESON';
ignore[] = 'BURLISON';
ignore[] = 'BURNETTE';
ignore[] = 'BURNSIDE';
ignore[] = 'BURROUGH';
ignore[] = 'BURROWES';
ignore[] = 'BUSHNELL';
ignore[] = 'BUSINESS';
ignore[] = 'BUSINESSCHECKING';
ignore[] = 'BUSINESSDECISION';
ignore[] = 'BUSSIERE';
ignore[] = 'BUSYTYPE';
ignore[] = 'BUTTONTEXTHIDDEN';
ignore[] = 'BVERSION';
ignore[] = 'BYINGTON';
ignore[] = 'BYMINUTE';
ignore[] = 'BYSECOND';
ignore[] = 'BYSETPOS';
ignore[] = 'BYTESIZE';
ignore[] = 'BYWEEKNO';
ignore[] = 'C0007841';
ignore[] = 'c00416b970f1aa6363b44965d4cf60ee99a6f065';
ignore[] = 'c0152c344e02e39edf14ce79cec3f852';
ignore[] = 'c016b2a364d20cf711af7e14c60a7921';
ignore[] = 'c018461604db38af48d1ca304cb592c6';
ignore[] = 'C028CEA2';
ignore[] = 'c054b152596745efa1d197b809fa7fc70ce586e5';
ignore[] = 'c05b26db575e93a73f2e4c8eaa6091b4fe8fc805f59620c2f7e1276cc206ba9d';
ignore[] = 'c05d88abd50357f935a63c59ee537623';
ignore[] = 'c085fe42c3917b972800b2ef689825d2';
ignore[] = 'c08ec40f165d56aabb030b122685eebe';
ignore[] = 'c0928fd2da3b3b37e57c0e9ebb0bed40';
ignore[] = 'c097e2247d665bac39aa939a333eb320';
ignore[] = 'c098ab612dbd454cd500ff8f30873586';
ignore[] = 'c09e1500c76beedccc3967e49e767ab54dc88788';
ignore[] = 'c0af45ee1b30127cc4d124d5d56a2b96';
ignore[] = 'c0b41af8646e25e9fb242fe0cea1a218';
ignore[] = 'c0ba9bfe3695f95c3f558bc5797eeba421d32483';
ignore[] = 'c0c04c53f92b114f87c41484a80f422d';
ignore[] = 'c0cc9d44790fa2a58078059bab1902a9';
ignore[] = 'c0cd116a853a4fbc4461257a235aa9b1';
ignore[] = 'c0d5fa4f2b90e5d8e967763cca787636';
ignore[] = 'c0d8f457';
ignore[] = 'c0dd402eb19ce0b61d6318012ae96fdd';
ignore[] = 'c0e95842db86665c6f78f394772c1472';
ignore[] = 'c0f23d34359ddc259ab70d3825f12788';
ignore[] = 'c0fd050987c803e7e587c58b48797f6c';
ignore[] = 'c101867555d5ca3f05bd46e1b8c761bd';
ignore[] = 'c109292b173f841b88e0ee49f13db8c0';
ignore[] = 'c10bb6ac52082ab3e669b4814b44a6f1';
ignore[] = 'c112db134b2898541ea913d9e75f0cb9';
ignore[] = 'c1232f10f62715fda06ae7c0a2037ca19b33cf103b727ba56d870c11f290a2ab106974c75607c8a3';
ignore[] = 'c12df1e05bb0c546722fe9c5221e3a1a91de504a66b5aeb6fe8ef8348a048d35';
ignore[] = 'c13ec02506182a8d0a0c5f6b135208c9';
ignore[] = 'c141ef19574fa1da9b7c11c975d3a02c';
ignore[] = 'c14c79e074412691821c3c6d58d6575c';
ignore[] = 'c1522fa0a15d3f176cc1a3c118203f34';
ignore[] = 'c1583238aa915ad7e56d544a3a5f8f4e';
ignore[] = 'c159daafd601cc4105b22426e9e8450c4787ff00f27e57593fe843e33d6d6bf4';
ignore[] = 'c15ea74fd873e6f5da9260a30cee452b';
ignore[] = 'c167b7157442d65887c24c3230b6fb73';
ignore[] = 'c172d3a413b789a31df1c0cc856c41c2';
ignore[] = 'c18307d55a1d35cd6b015263b467de09';
ignore[] = 'c1841e5f14f0861109a457253394931b';
ignore[] = 'c1853f42d0a110026453f8b94c9f623c';
ignore[] = 'c198d0a1ce93fc13f211855d6574b7ee';
ignore[] = 'c19b1e83b5119495b52baf942e829336';
ignore[] = 'c19bf174cf692694';
ignore[] = 'c1a5f1b3c0a6275face276d305854f9b';
ignore[] = 'c1a6a8e095c03c11d6a934f53009f54e';
ignore[] = 'c1b82528e4f86be64484097adb60fdf2';
ignore[] = 'c1b9e661a8e6e98bdd03aae7ac9534fe';
ignore[] = 'c1d3586ce7efb6f25f08083ee0e5ea6a';
ignore[] = 'c1d95b9713006acb491b44ff6c79099c';
ignore[] = 'c1f0837df20cd3bed149033924770deca3e7e2d18e2e7e81395096576f153fdc';
ignore[] = 'c1fa729b';
ignore[] = 'C2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F';
ignore[] = 'c2130b63c6fac3801f0344920fe5150a';
ignore[] = 'c215d7bf9d51c7805055239f66b957d9a72ff44b';
ignore[] = 'c229d22da6c23484c084e4f2febad2f1cb30e42b';
ignore[] = 'c24b8b70d0f89791';
ignore[] = 'c25303d9f0ed32be035828e458602a42';
ignore[] = 'c25a4c4eae558cc9899d2994813dd272eafff9466926f30821a83edaafe620a9';
ignore[] = 'c26462f34a64c4bf80c1fb7c40102eb0';
ignore[] = 'c26f22f82495887f87d4a429002765c5';
ignore[] = 'c28f0f64c871c3eabdc05d91527f04cc';
ignore[] = 'c2911246b612e7e7b903dfeda1dad866';
ignore[] = 'c293774cb62d1571f78ff01d21bfc9f8';
ignore[] = 'c2949770db351bc894ab5d715a3e9c9c97c4477e0c42cd90347160ddd228bbfa';
ignore[] = 'c2ad71934a9a2139cdf8213df35f4c91dcc0e643fabb883c38e3ffbdd313d608';
ignore[] = 'c2cdadc6402e8ee866e1f37bdb47e42c';
ignore[] = 'c2d2155e50bcbaa0ee7a63845862c894';
ignore[] = 'c2d820af4b9a2f8633f6f5a4e3de76bc';
ignore[] = 'C2F1B25DED428057096161322CA37A36F78F30D6';
ignore[] = 'c2f285a11f05fe0f4f8a5d36a6814781';
ignore[] = 'c322444fdf6d3ba26aa67d67ee32d1e815a877f35831351c83763431a80e3612';
ignore[] = 'c32faacba974e648a67e5e91ffd3d8e5';
ignore[] = 'c34108e77ec5372098e88f8a33073837';
ignore[] = 'c3511df85d21bc578faf71c6a19eeb3ff44af370';
ignore[] = 'c36cfe6e907df50754dc4f9cb817d64f';
ignore[] = 'c37e6449f12336a3bcf89bba5cc3eb91';
ignore[] = 'c38e25c01693a9c091141562722e8104';
ignore[] = 'C39E072D9FAC631D';
ignore[] = 'c3b1a88a19bf2613cdc2457d72af2391';
ignore[] = 'c3b6870ac3c5c5eaa5ff3cccd48b6aeb';
ignore[] = 'c3c1cdca88477b68b4e71c31cba301f3';
ignore[] = 'c3c77a5d34f72ac5755a3126fc6dd2d6';
ignore[] = 'c3cd4a29a9562309d36e2b128407d6eaa5c7dde590d2b1a464457383e517f4ed';
ignore[] = 'c3cee9ff231d54e2471b3eeda4490831';
ignore[] = 'c3d599119f05d37fae5fc59b8e04c2a4';
ignore[] = 'c3dcdc18f3fb0892982eda73293c07a7';
ignore[] = 'c3e36702ea068bafbfb622af8c37de5b';
ignore[] = 'c3f0c9b3bd7f345add109ef01601dcbb';
ignore[] = 'c40258d3586082c0f5f559941f3b3c4c';
ignore[] = 'c405a64a08328f78ac0e3f22a8365411';
ignore[] = 'c40ecf17d601036f92b419938617a51d64a92821cdb2171793b76f7abdd2c9ff';
ignore[] = 'c41497b2aae32a6ff975ca9b571d2455';
ignore[] = 'c41f1a03c24119c0dd9b741cdb67880486e64349fc33527767f6dc28d3803abb';
ignore[] = 'c427a0f2e4bc3f71eff2037fb8515f97';
ignore[] = 'c43c9bb4e199bf14be2bd03274266a0c';
ignore[] = 'c4438583c95d3ddf746929d7fcb61045';
ignore[] = 'c445c2491f9f55409b2e4dccee357961';
ignore[] = 'c449f0c2726f869e9a42156e366f1bf9';
ignore[] = 'c4693cc363b4bbc7224294cc94faf3598e616cbe8540dd6975f68c7d3c52682f';
ignore[] = 'c4754c12fdf0d1a435ce7628ead33bd0';
ignore[] = 'c488c0edcf4c1e6d7d8193d99a068904';
ignore[] = 'c48bd74b85809dd78d963e525e38f3b6dd7e12aa249f73bd6a20247a40d6713a';
ignore[] = 'c490b1ed4df596b48eb68f630d89ca512945e2650840e7dace1119cc7e600aa9';
ignore[] = 'c4942aba8311084cc8d4d8b35fcd242c';
ignore[] = 'c494cc9a08715449b52a271ae24aca069a9e2bd3ec7d2afcfe5c0dbb1c9e6923';
ignore[] = 'c4a348a07b52f6e177d8fdc75fe507b1';
ignore[] = 'c4b4c6a534c0ca67a9ae39bec4f51e52d13e820135dd016eae230e15337e1f70';
ignore[] = 'c4c0e7accab56ae45e8e1a4ff777c42b';
ignore[] = 'c4d521b8d54308532dce032713d4eec0';
ignore[] = 'c4d55105e07c9f75dcbacef8000f7992';
ignore[] = 'c4e1984f55fca5a06b1e7713460e4474';
ignore[] = 'c4f6055c5e07292307c2fc5891491b39';
ignore[] = 'c4ff873cb3e554e16e20b885dcfe9517';
ignore[] = 'c50c740cd04cbeded09faf64eda10ad9';
ignore[] = 'c51e9115263b4d63ef8f68935cefd7d4';
ignore[] = 'c51ffe0a00533daa9eee43831ffdb6cc';
ignore[] = 'c5338a4d9d0ffe06968a0226eff74acc';
ignore[] = 'c5491ab663972aa23ae2f917a0fc605a6136f02e1b207d3fc650ed1f251359ee';
ignore[] = 'c573c25d1a767d270fed504cd993e78aba936338';
ignore[] = 'c59cb6c8409d0e678b05628d92e423db';
ignore[] = 'c5b1c75c5671c239473eb611129f33ac432a55a1c341990b70009a2aa3b8dbc3';
ignore[] = 'c5b6b9003cc311ed364b415cd9b8af78';
ignore[] = 'c5b6ea78adeb135373d11aeaaea057d9fa8995faa4e8c0fec9b7c647f15cc4e0';
ignore[] = 'c5d4f4e5eb981b6839caa1c970f8428e';
ignore[] = 'c5dcacfce48b037c8c6e832f34bf4321';
ignore[] = 'c5e95574187f884340d6c740ea46bfe1';
ignore[] = 'c5ecf88de897fd57fed301701b82a259';
ignore[] = 'c61c945e0453c2145a819ca60e8faf09';
ignore[] = 'c6244fed6cd27178aef8eb474d570d9f';
ignore[] = 'c63dcfd8b318d12127ba6d39ecc8a444';
ignore[] = 'c64d17de360dc632ea63f3c230ac1836';
ignore[] = 'c65c7f3f87d62ad425c7a104a6018840';
ignore[] = 'c67178f2e372532b';
ignore[] = 'c681b96ce0362d35a191905d7ad38909';
ignore[] = 'c68c1d5c559a974123df1dbc52a43b89';
ignore[] = 'c69f4e04db4bdf07b9eca37fa38cd23c';
ignore[] = 'c6ae9cea26022b8e4a463c6c1c9fea2c';
ignore[] = 'c6b6d92c670b7f1b223798ace54102f9';
ignore[] = 'c6c91d1eff034d73b8974f7a3733dc92';
ignore[] = 'c6d0e273b5ce0e84d50a1c6294ece157';
ignore[] = 'c6d0e7b226259fa9023490b26167ad1d';
ignore[] = 'c6d24f278ec874a4b6abff8c359f80ba';
ignore[] = 'c6e00bf33da88fc2';
ignore[] = 'c6e12d33f52a8000532773bff1ddd205';
ignore[] = 'c6e872cc62bdc7cf1c5157fbfdb2dfd6';
ignore[] = 'c6f03ece30548a6a345afcfac920d85afc418596a19dc4cf43f994391c5050d9';
ignore[] = 'c7053f328b27709b529f2cd88513d85d';
ignore[] = 'c71441020206b1587dece7296cca306a9f0fbd6e8f04dae272efc15ed3a38383';
ignore[] = 'c71817851526064e738d5076dcd1bce1';
ignore[] = 'C7204VXR';
ignore[] = 'C7206VXR';
ignore[] = 'c726a86238017c2d9db0171b14d300e7';
ignore[] = 'c732fa84d0831927a6b23cb33b392a9a';
ignore[] = 'c74dcbb0b029cef001769ff1e5440df2';
ignore[] = 'c74fd8e9cad14645c20f807c7f84bfee';
ignore[] = 'c756b8b3f0c57494fd46a94e9abce029';
ignore[] = 'c75a07373f54c0fa31d18e360fcf26f6';
ignore[] = 'c76c51a30654be30';
ignore[] = 'c77bd5d8d9dedb6a3e61c477910a06b7';
ignore[] = 'c79732afb208c081b8249b8a36a57eb5';
ignore[] = 'c799b596738f6b018c76c74b1759bd90';
ignore[] = 'c79e374c61423beb64a69da1eb5526b7';
ignore[] = 'c7d2f9e7a2cc637f3cf9ac4d1cf97eca';
ignore[] = 'c7d8c6c194f8a4b89b0027bcefeefadb';
ignore[] = 'c7daf50ff1797060806da1d1faabbc3b';
ignore[] = 'c7df0cb28cfff4e277fd9cd9b73cebfb';
ignore[] = 'c7e5010114f58282858d7d78e6509cdc';
ignore[] = 'c7f02415660a5648349ec96de4cafb1c';
ignore[] = 'c830dd74bb502443cf12514c185ff174';
ignore[] = 'c8351f627333434d426db3b9ffe09d1c';
ignore[] = 'c8379f3875caf95ce14266ca8212eb4e';
ignore[] = 'c83bbb592e1f813e8a78b1060f61cb93';
ignore[] = 'c840d2fe89bdd2a093f431a344ce17bea5bfdeaa2eb9d384d02c512c4ecdf9d8';
ignore[] = 'c84ecf2b91b7e25bd07e221f73d1d68c';
ignore[] = 'c867a1d8cc947278946868aeb161f1fb';
ignore[] = 'c87b64536fc9ad8065fc7f83fe2c6996';
ignore[] = 'c87d514617ee768cf076fd4c42c81cfa';
ignore[] = 'c8812aa9e2f265e7bd8d31152ee17545';
ignore[] = 'c88c9e5d162958f8924849758486a0d83822ada06088f5cf71bfbe76932d8d84';
ignore[] = 'c88f21c9cbf1aae83393b26616908f8020c18fe378d76256c7ba192df2ec17af';
ignore[] = 'c894f86f493bbd5a5691e6105de8b852';
ignore[] = 'c89a1046ff06f6aff699057376e297b6';
ignore[] = 'c89b9154a6e9fcd63f987945ecf890e5';
ignore[] = 'c8a8728adf47c46bc9a42942c9b19059';
ignore[] = 'c8ad2a67b0e5d6de316c0d8995f6080e';
ignore[] = 'c8ae31c3485789714cf394a930340933';
ignore[] = 'c8b65407709821bcae0726cb91e32abd';
ignore[] = 'c8c5a1565522571010d9a72fb0aef297';
ignore[] = 'c8c9ad960bae0265054b5879423f7a75';
ignore[] = 'c8e1eda750819e6c8682f06d381f3971';
ignore[] = 'c8eba771bd5f9a58d4822f4a2dac57a2';
ignore[] = 'c8edf6b05fd8a69ebd88d90c5c0975ee168502204622ad5cfcd550bc222632d9';
ignore[] = 'c8eeefad9ad61c0cd2fe164ece83c71c';
ignore[] = 'c8f1f9173492498c50a828a1482cd5be';
ignore[] = 'c8fdb2b481625d58b0b228c897fda72f';
ignore[] = 'c8ffc52f513d2d2fd47fcc1536ff8ed6';
ignore[] = 'c9057ab26e13f69b05ff9efdb61ec804';
ignore[] = 'c90ad1cfb6c6bc1b013745fed8cfe02a';
ignore[] = 'c90c5e950de4f2caa7d004b0b31bf03b';
ignore[] = 'c9270fd515e76918a37edf3f573c6da2';
ignore[] = 'c9397f60bff139e0df441c5e2766108c5bc7ad690de136eb9f5b2f9bbf771240';
ignore[] = 'c958e172f69053dbe2210af1b70a49c4';
ignore[] = 'c95cb41671230a97395284737f8150b8';
ignore[] = 'c95cfe1dd86f5a56b00729b5c70a6b9b';
ignore[] = 'c964ee0ededf28c96ebd9db5099ef910';
ignore[] = 'c96980d7de1d66c821a4ee5809df0076f925b2fe0b8c362d234d92f2f0a178e2';
ignore[] = 'c972ba8e845b240f06d46d6fda749037';
ignore[] = 'c976f54d429a0e5214659b0098e44e37';
ignore[] = 'c998daba2886ff72529b1f2164ce2f18';
ignore[] = 'c999d29cb8861aa71574a11e8c635691';
ignore[] = 'c99e7339b7ffe81318ae84953e3c03a3';
ignore[] = 'c9aa0f4996d1b91ee9e45afcfaeb5d2e';
ignore[] = 'c9ade12392c25cb649a699ad3908b30d';
ignore[] = 'c9b5ccd0776758abeacafb5be6c85f29';
ignore[] = 'c9b8135ff1b5adc413dfd053b21bd96d';
ignore[] = 'c9ba8f8352cd71b5508af5161268619a';
ignore[] = 'c9dccc89cc89d39e84f6e6f0cf1c8a65';
ignore[] = 'c9e0092ac021131a4cce0ec2ce927c4f';
ignore[] = 'c9e2ff2d6f843a584179ce96e63e38f9';
ignore[] = 'c9ec1b952480da09b393ba672d9b13da';
ignore[] = 'c9ed4dfb07caf13fc21e0fec1572047eb8a7a4cb';
ignore[] = 'c9f222ae1694d76f12dfc75f6da8bbc6';
ignore[] = 'c9f275cd929b698ab353ffae69e5735f';
ignore[] = 'ca1fa5d37e993ac6d90798b4ff8e51c0';
ignore[] = 'ca273eceea26619c';
ignore[] = 'ca2a5d88209f501b2955f7aab894e405';
ignore[] = 'ca2eab9a9ffdab267a48eb7be48ccdc0';
ignore[] = 'CA3A2B036DBC8502';
ignore[] = 'ca45867a23cbaa7c6788d3cd2ba2793c';
ignore[] = 'ca539539bea3d2c070552f79dbae279e2872ba9d48af386c89ab6c1fc95488da';
ignore[] = 'ca54c851fc88322f8df6d4686cb026c0';
ignore[] = 'ca62b8dbf47b24df65c291a7b33ced62';
ignore[] = 'ca6df87a16af0d9dbd386c1c986e3098';
ignore[] = 'ca8dbd64adc016ff334d23cef9563ba9';
ignore[] = 'ca94159f5d8b229e0ef49722853936df';
ignore[] = 'caa4da8f25d5e840974ed8976d3ada46010100000000000030fa7e3c677bc301f5ce3d2401c8f6e90000000002000c0054004500530054004e00540001000c004d0045004d0042004500520003001e006d0065006d006200650072002e0074006500730074002e0063006f006d000000000000000000';
ignore[] = 'cabd836a038ebeabc37bd646ed9fea8e';
ignore[] = 'CABRALES';
ignore[] = 'cacd308e978b7cf9ba4993196612ccf7';
ignore[] = 'CACHEDIR';
ignore[] = 'cadd13afa26c8ac1271ff8de18fae47d';
ignore[] = 'cae0653aeb10659e8928839e1a2e0193';
ignore[] = 'caf0c5f213bb2c5105deb69c5b61c8d3';
ignore[] = 'caf4feda51bdf7ad62cf782bc23274d367154e51897f2732f07bd06982d85ab1';
ignore[] = 'caf7f4d86514a568fb3c8021b096a9f0';
ignore[] = 'cafa14d50ce6ecc1db1486017b364ce5';
ignore[] = 'cafd6b1caaed5c6d6a0e6a9d52b1e3f3';
ignore[] = 'CAFFC6AC4542DE31';
ignore[] = 'CAGGIANO';
ignore[] = 'CALABASH';
ignore[] = 'CALDERON';
ignore[] = 'CALDWELL';
ignore[] = 'CALENDAR';
ignore[] = 'CALLABLE';
ignore[] = 'CALLAHAM';
ignore[] = 'CALLAHAN';
ignore[] = 'CALLANAN';
ignore[] = 'CALLAWAY';
ignore[] = 'CALLBACK';
ignore[] = 'CALLERID';
ignore[] = 'CALLIHAN';
ignore[] = 'CALLISON';
ignore[] = 'CALLOWAY';
ignore[] = 'CALLSIGN';
ignore[] = 'CALLSORT';
ignore[] = 'CALSCALE';
ignore[] = 'CALVILLO';
ignore[] = 'CAMARENA';
ignore[] = 'CAMBODIA';
ignore[] = 'CAMEROON';
ignore[] = 'CAMINHODOARQUIVO';
ignore[] = 'CAMPAGNA';
ignore[] = 'CAMPAIGN';
ignore[] = 'CAMPBELL';
ignore[] = 'CANCELED';
ignore[] = 'CANCELLD';
ignore[] = 'CANCHOLA';
ignore[] = 'CANFIELD';
ignore[] = 'CANNADAY';
ignore[] = 'CANNELLA';
ignore[] = 'CANTIDAD';
ignore[] = 'CANTRELL';
ignore[] = 'CANTWELL';
ignore[] = 'CAOUETTE';
ignore[] = 'CAPACITY';
ignore[] = 'CAPEHART';
ignore[] = 'CAPERTON';
ignore[] = 'CAPETOWN';
ignore[] = 'CAPPELLO';
ignore[] = 'CAPSLOCK';
ignore[] = 'CAPTIONS';
ignore[] = 'CAPTURED';
ignore[] = 'CARACTERISTIQUES';
ignore[] = 'CARBAJAL';
ignore[] = 'CARBALLO';
ignore[] = 'CARBAUGH';
ignore[] = 'CARBERRY';
ignore[] = 'CARDCODE';
ignore[] = 'CARDELLA';
ignore[] = 'CARDELLO';
ignore[] = 'CARDENAS';
ignore[] = 'CARDILLO';
ignore[] = 'CARDINAL';
ignore[] = 'CARDNAME';
ignore[] = 'CARDTYPE';
ignore[] = 'CARDVALIDITYDATE';
ignore[] = 'CARDWELL';
ignore[] = 'CARIGNAN';
ignore[] = 'CARLBERG';
ignore[] = 'CARLETON';
ignore[] = 'CARLISLE';
ignore[] = 'CARLUCCI';
ignore[] = 'CARMELLA';
ignore[] = 'CARNAHAN';
ignore[] = 'CARNEGIE';
ignore[] = 'CAROLINA';
ignore[] = 'CAROLINE';
ignore[] = 'CARRANZA';
ignore[] = 'CARRASCO';
ignore[] = 'CARRAWAY';
ignore[] = 'CARREIRO';
ignore[] = 'CARRERAS';
ignore[] = 'CARRIERE';
ignore[] = 'CARRIGAN';
ignore[] = 'CARRILLO';
ignore[] = 'CARROZZA';
ignore[] = 'CARSTENS';
ignore[] = 'CARSWELL';
ignore[] = 'CARUCATE';
ignore[] = 'CARVAJAL';
ignore[] = 'CARVALHO';
ignore[] = 'CASANDRA';
ignore[] = 'CASANOVA';
ignore[] = 'CASAVANT';
ignore[] = 'CASCADED';
ignore[] = 'CASCADINGSOURCES';
ignore[] = 'CASEFUNC';
ignore[] = 'CASELESS';
ignore[] = 'CASERROR';
ignore[] = 'CASHWELL';
ignore[] = 'CASILLAS';
ignore[] = 'CASSELLA';
ignore[] = 'CASSETTE';
ignore[] = 'CASTAGNA';
ignore[] = 'CASTALDO';
ignore[] = 'CASTANON';
ignore[] = 'CASTELLI';
ignore[] = 'CASTELLO';
ignore[] = 'CASTILLE';
ignore[] = 'CASTILLO';
ignore[] = 'CATALANO';
ignore[] = 'CATALINA';
ignore[] = 'CATAYCAP';
ignore[] = 'CATEGORY';
ignore[] = 'CATENATE';
ignore[] = 'CATERING';
ignore[] = 'CATHCART';
ignore[] = 'CATHLEEN';
ignore[] = 'CATHOLIC';
ignore[] = 'CAUDILLO';
ignore[] = 'CAUFIELD';
ignore[] = 'CAULKINS';
ignore[] = 'CAVALIER';
ignore[] = 'CAVANAGH';
ignore[] = 'CAVENDER';
ignore[] = 'CAVINESS';
ignore[] = 'CBLOCKID';
ignore[] = 'CEBALLOS';
ignore[] = 'CEFFCE66';
ignore[] = 'CELESTIN';
ignore[] = 'CELLULAR';
ignore[] = 'CENDEJAS';
ignore[] = 'CENTERED';
ignore[] = 'CENTIARE';
ignore[] = 'CENTIBAR';
ignore[] = 'CENTIGAL';
ignore[] = 'CENTIOHM';
ignore[] = 'CENTROID';
ignore[] = 'CESPEDES';
ignore[] = 'CEVALLOS';
ignore[] = 'CFIGNORE';
ignore[] = 'CHADWELL';
ignore[] = 'CHADWICK';
ignore[] = 'CHAFFINS';
ignore[] = 'CHAINING';
ignore[] = 'CHAISSON';
ignore[] = 'CHALDRON';
ignore[] = 'CHALFANT';
ignore[] = 'CHALMERS';
ignore[] = 'CHAMBERS';
ignore[] = 'CHAMBLEE';
ignore[] = 'CHAMNESS';
ignore[] = 'CHAMORRO';
ignore[] = 'CHAMPINE';
ignore[] = 'CHAMPION';
ignore[] = 'CHAMPLIN';
ignore[] = 'CHANDLER';
ignore[] = 'CHANNELL';
ignore[] = 'CHAPARRO';
ignore[] = 'CHAPPELL';
ignore[] = 'CHARETTE';
ignore[] = 'CHARLAND';
ignore[] = 'CHARLENE';
ignore[] = 'CHARLTON';
ignore[] = 'CHARSLEN';
ignore[] = 'CHARTIER';
ignore[] = 'CHASTAIN';
ignore[] = 'CHASTEEN';
ignore[] = 'CHATROOM';
ignore[] = 'CHATTERS';
ignore[] = 'CHATTING';
ignore[] = 'CHAUDHRY';
ignore[] = 'CHAUNCEY';
ignore[] = 'CHEATHAM';
ignore[] = 'CHECKALL';
ignore[] = 'CHECKBOX';
ignore[] = 'CHECKDIV';
ignore[] = 'CHECKED1';
ignore[] = 'CHECKED2';
ignore[] = 'CHECKED3';
ignore[] = 'CHECKING';
ignore[] = 'CHECKLOGICALNAME';
ignore[] = 'CHECKMAP';
ignore[] = 'CHECKNUM';
ignore[] = 'CHECKOPPORTUNITY';
ignore[] = 'CHECKOUT';
ignore[] = 'CHECKSUM';
ignore[] = 'CHEESMAN';
ignore[] = 'CHENAULT';
ignore[] = 'CHERRIES';
ignore[] = 'CHESHIRE';
ignore[] = 'CHESTNUT';
ignore[] = 'CHEWNING';
ignore[] = 'CHIASSON';
ignore[] = 'CHICOINE';
ignore[] = 'CHILDERS';
ignore[] = 'CHILDREN';
ignore[] = 'CHINESES';
ignore[] = 'CHINESET';
ignore[] = 'CHIPMUNK';
ignore[] = 'CHISHOLM';
ignore[] = 'CHITWOOD';
ignore[] = 'CHRETIEN';
ignore[] = 'CHRISMAN';
ignore[] = 'CHRISTEN';
ignore[] = 'CHRISTIE';
ignore[] = 'CHRYSLER';
ignore[] = 'CHRYSTAL';
ignore[] = 'CHUMBLEY';
ignore[] = 'CHUNKING';
ignore[] = 'CINNAMON';
ignore[] = 'CIPRIANI';
ignore[] = 'CIPRIANO';
ignore[] = 'CIRCLECI';
ignore[] = 'CIRCULAR';
ignore[] = 'CISNEROS';
ignore[] = 'CITYEATS';
ignore[] = 'CIVILITE';
ignore[] = 'CKEDITOR';
ignore[] = 'CLAASSEN';
ignore[] = 'CLABAUGH';
ignore[] = 'CLARENCE';
ignore[] = 'CLARISSA';
ignore[] = 'CLARKSON';
ignore[] = 'CLASSDIR';
ignore[] = 'CLAUDINE';
ignore[] = 'CLAUSING';
ignore[] = 'CLAUSSEN';
ignore[] = 'CLAYBORN';
ignore[] = 'CLAYCOMB';
ignore[] = 'CLAYPOOL';
ignore[] = 'CLEANING';
ignore[] = 'CLEARGIF';
ignore[] = 'CLEGHORN';
ignore[] = 'CLEMENTE';
ignore[] = 'CLEMENTS';
ignore[] = 'CLEMMONS';
ignore[] = 'CLIENTID';
ignore[] = 'CLIENTIP';
ignore[] = 'CLIFFORD';
ignore[] = 'CLINGMAN';
ignore[] = 'CLINIQUE';
ignore[] = 'CLOSEDIR';
ignore[] = 'CLOSEOUT';
ignore[] = 'CLOSETAG';
ignore[] = 'CLOTHIER';
ignore[] = 'CLOTHING';
ignore[] = 'CLOUTIER';
ignore[] = 'CMPNEQPS';
ignore[] = 'CMPNEQSS';
ignore[] = 'CMPNLEPS';
ignore[] = 'CMPNLESS';
ignore[] = 'CMPNLTPS';
ignore[] = 'CMPNLTSS';
ignore[] = 'CMPORDPS';
ignore[] = 'CMPORDSS';
ignore[] = 'CNNMONEY';
ignore[] = 'COACHMAN';
ignore[] = 'COACTION';
ignore[] = 'COALESCE';
ignore[] = 'COALSECE';
ignore[] = 'COAUTHOR';
ignore[] = 'COBOL370';
ignore[] = 'COBOLDIR';
ignore[] = 'COCHRANE';
ignore[] = 'COCKBURN';
ignore[] = 'COCKRELL';
ignore[] = 'CODENAME';
ignore[] = 'CODEPAGE';
ignore[] = 'CODIFICAREANCORA';
ignore[] = 'COERCION';
ignore[] = 'COFFIELD';
ignore[] = 'COGSWELL';
ignore[] = 'COININFO';
ignore[] = 'COLCLASS';
ignore[] = 'COLDIRON';
ignore[] = 'COLDWELL';
ignore[] = 'COLISAGE';
ignore[] = 'COLLAPSE';
ignore[] = 'COLLETTE';
ignore[] = 'COLLETTI';
ignore[] = 'COLLIGAN';
ignore[] = 'COLLINGS';
ignore[] = 'COLLISON';
ignore[] = 'COLOMBIA';
ignore[] = 'COLORADO';
ignore[] = 'COLORBOX';
ignore[] = 'COLOSIMO';
ignore[] = 'COLQUITT';
ignore[] = 'COLSPAN2';
ignore[] = 'COLUMBUS';
ignore[] = 'COMBOBOX';
ignore[] = 'COMMANDS';
ignore[] = 'COMMBANK';
ignore[] = 'COMMENT1';
ignore[] = 'COMMENT2';
ignore[] = 'COMMENTFORCELEND';
ignore[] = 'COMMENTI';
ignore[] = 'COMMENTS';
ignore[] = 'COMMERCE';
ignore[] = 'COMPARECAMELCASE';
ignore[] = 'COMPILED';
ignore[] = 'COMPILER';
ignore[] = 'COMPLAIN';
ignore[] = 'COMPLETE';
ignore[] = 'COMPOSER';
ignore[] = 'COMPOUND';
ignore[] = 'COMPRESS';
ignore[] = 'COMPUTED';
ignore[] = 'COMPUTER';
ignore[] = 'COMSTOCK';
ignore[] = 'CONATSER';
ignore[] = 'CONCEPTS';
ignore[] = 'CONCEPTS';
ignore[] = 'CONCETTA';
ignore[] = 'CONFIGFOLDERLIST';
ignore[] = 'CONFLICT';
ignore[] = 'CONFORTI';
ignore[] = 'CONGRDAT';
ignore[] = 'CONGRLIE';
ignore[] = 'CONGRNUM';
ignore[] = 'CONGRTIT';
ignore[] = 'CONIGLIO';
ignore[] = 'CONKLING';
ignore[] = 'CONNALLY';
ignore[] = 'CONNELLY';
ignore[] = 'CONNOLLY';
ignore[] = 'CONSTANT';
ignore[] = 'CONSTRAINTDOMAIN';
ignore[] = 'CONSUELO';
ignore[] = 'CONTACTS';
ignore[] = 'CONTAINS';
ignore[] = 'CONTENTS';
ignore[] = 'CONTINUE';
ignore[] = 'CONTRACT';
ignore[] = 'CONTROLS';
ignore[] = 'CONVERSE';
ignore[] = 'COOLIDGE';
ignore[] = 'COPELAND';
ignore[] = 'COPPEDGE';
ignore[] = 'COPYLIST';
ignore[] = 'COPYPATH';
ignore[] = 'CORCHADO';
ignore[] = 'CORCORAN';
ignore[] = 'CORDEIRO';
ignore[] = 'COREPATH';
ignore[] = 'CORNELIA';
ignore[] = 'CORNETTE';
ignore[] = 'CORNWALL';
ignore[] = 'CORNWELL';
ignore[] = 'CORONADO';
ignore[] = 'CORRALES';
ignore[] = 'CORRIGAN';
ignore[] = 'CORTINAS';
ignore[] = 'COSGROVE';
ignore[] = 'COSSETTE';
ignore[] = 'COSTALES';
ignore[] = 'COSTANZA';
ignore[] = 'COSTANZO';
ignore[] = 'COSTELLO';
ignore[] = 'COSTIGAN';
ignore[] = 'COSTILLA';
ignore[] = 'COSTILLO';
ignore[] = 'COTTRELL';
ignore[] = 'COTTRILL';
ignore[] = 'COUGHLAN';
ignore[] = 'COUGHLIN';
ignore[] = 'COULOMBE';
ignore[] = 'COULSTON';
ignore[] = 'COUNTER0';
ignore[] = 'COUNTER1';
ignore[] = 'COUNTESS';
ignore[] = 'COUNTIFS';
ignore[] = 'COUPDAYS';
ignore[] = 'COURTNEY';
ignore[] = 'COURTOIS';
ignore[] = 'COVERART';
ignore[] = 'COWORKER';
ignore[] = 'CP866NAV';
ignore[] = 'CPSTREAM';
ignore[] = 'CRABTREE';
ignore[] = 'CRACRAFT';
ignore[] = 'CRADDOCK';
ignore[] = 'CRAMPTON';
ignore[] = 'CRANDALL';
ignore[] = 'CRANDELL';
ignore[] = 'CRANFORD';
ignore[] = 'CRANSTON';
ignore[] = 'CRAWFORD';
ignore[] = 'CRC16UNI';
ignore[] = 'CREASMAN';
ignore[] = 'CREATEDB';
ignore[] = 'CREATING';
ignore[] = 'CREATION';
ignore[] = 'CREMEANS';
ignore[] = 'CRENSHAW';
ignore[] = 'CRESWELL';
ignore[] = 'CRICHTON';
ignore[] = 'CRIMMINS';
ignore[] = 'CRISSMAN';
ignore[] = 'CRISTINA';
ignore[] = 'CRISWELL';
ignore[] = 'CRITERIA';
ignore[] = 'CRITICAL';
ignore[] = 'CRIVELLO';
ignore[] = 'CRNCYSTR';
ignore[] = 'CROCKETT';
ignore[] = 'CROMPTON';
ignore[] = 'CROMWELL';
ignore[] = 'CROSLAND';
ignore[] = 'CROSSETT';
ignore[] = 'CROSSLEY';
ignore[] = 'CROSSLIN';
ignore[] = 'CROSSMAN';
ignore[] = 'CROSSREF';
ignore[] = 'CROTHERS';
ignore[] = 'CROWTHER';
ignore[] = 'CRUMBLEY';
ignore[] = 'CRUMPLER';
ignore[] = 'CRUMPTON';
ignore[] = 'CRUMRINE';
ignore[] = 'CRUTCHER';
ignore[] = 'CSDECMCS';
ignore[] = 'CSGB2312';
ignore[] = 'CSIBM037';
ignore[] = 'CSIBM038';
ignore[] = 'CSIBM273';
ignore[] = 'CSIBM274';
ignore[] = 'CSIBM275';
ignore[] = 'CSIBM277';
ignore[] = 'CSIBM278';
ignore[] = 'CSIBM280';
ignore[] = 'CSIBM281';
ignore[] = 'CSIBM284';
ignore[] = 'CSIBM285';
ignore[] = 'CSIBM290';
ignore[] = 'CSIBM297';
ignore[] = 'CSIBM420';
ignore[] = 'CSIBM423';
ignore[] = 'CSIBM424';
ignore[] = 'CSIBM500';
ignore[] = 'CSIBM851';
ignore[] = 'CSIBM855';
ignore[] = 'CSIBM857';
ignore[] = 'CSIBM860';
ignore[] = 'CSIBM861';
ignore[] = 'CSIBM863';
ignore[] = 'CSIBM864';
ignore[] = 'CSIBM865';
ignore[] = 'CSIBM866';
ignore[] = 'CSIBM868';
ignore[] = 'CSIBM869';
ignore[] = 'CSIBM870';
ignore[] = 'CSIBM871';
ignore[] = 'CSIBM880';
ignore[] = 'CSIBM891';
ignore[] = 'CSIBM903';
ignore[] = 'CSIBM905';
ignore[] = 'CSIBM918';
ignore[] = 'CSISO150';
ignore[] = 'CSISO18GREEK7OLD';
ignore[] = 'CSISO86HUNGARIAN';
ignore[] = 'CSISOLATINARABIC';
ignore[] = 'CSISOLATINHEBREW';
ignore[] = 'CSKZ1048';
ignore[] = 'CSPC8CODEPAGE437';
ignore[] = 'CSPCP852';
ignore[] = 'CSSRULES';
ignore[] = 'CSTSTYLE';
ignore[] = 'CSUNICODEIBM1261';
ignore[] = 'CSUNICODEIBM1264';
ignore[] = 'CSUNICODEIBM1265';
ignore[] = 'CSUNICODEIBM1268';
ignore[] = 'CSUNICODEIBM1276';
ignore[] = 'CSVISCII';
ignore[] = 'CUADRADO';
ignore[] = 'CUARENTA';
ignore[] = 'CUBERANKEDMEMBER';
ignore[] = 'CUESHEET';
ignore[] = 'CULBRETH';
ignore[] = 'CULLIGAN';
ignore[] = 'CULLINAN';
ignore[] = 'CULLISON';
ignore[] = 'CULTURAL';
ignore[] = 'CUMMINGS';
ignore[] = 'CUMPRINC';
ignore[] = 'CURIFSUB';
ignore[] = 'CURLELOGINDENIED';
ignore[] = 'CURLEOUTOFMEMORY';
ignore[] = 'CURLEPARTIALFILE';
ignore[] = 'CURLESSH';
ignore[] = 'CURLETFTPILLEGAL';
ignore[] = 'CURLINFO';
ignore[] = 'CURRENCY';
ignore[] = 'CURRENTBLOCKHASH';
ignore[] = 'CURRENTMONTHNAME';
ignore[] = 'CURRENTTIMESTAMP';
ignore[] = 'CUSTCODE';
ignore[] = 'CUSTODIO';
ignore[] = 'CUSTOMER';
ignore[] = 'CUSUMANO';
ignore[] = 'CUTHBERT';
ignore[] = 'CUTRIGHT';
ignore[] = 'CUTSHALL';
ignore[] = 'CVTPI2PS';
ignore[] = 'CVTPS2PI';
ignore[] = 'CVTSI2SS';
ignore[] = 'CVTSS2SI';
ignore[] = 'CWARNING';
ignore[] = 'CYBULSKI';
ignore[] = 'CYRILLIC';
ignore[] = 'DACCDBSL';
ignore[] = 'DADDARIO';
ignore[] = 'DAHLBERG';
ignore[] = 'DAHLGREN';
ignore[] = 'DALESSIO';
ignore[] = 'DAMMATAN';
ignore[] = 'DANFORTH';
ignore[] = 'DANIELLE';
ignore[] = 'DANTONIO';
ignore[] = 'DANTZLER';
ignore[] = 'DARBONNE';
ignore[] = 'DASHIELL';
ignore[] = 'DATABASE';
ignore[] = 'DATABASEPROPERTY';
ignore[] = 'DATADASE';
ignore[] = 'DATAEHORAACTUAIS';
ignore[] = 'DATAFILE';
ignore[] = 'DATAFORM';
ignore[] = 'DATAPARTITIONNUM';
ignore[] = 'DATATYPE';
ignore[] = 'DATEDIFF';
ignore[] = 'DATEEDIT';
ignore[] = 'DATENAME';
ignore[] = 'DATEPART';
ignore[] = 'DATESAIS';
ignore[] = 'DATESYNC';
ignore[] = 'DATETEXT';
ignore[] = 'DATETIME';
ignore[] = 'DATEVALI';
ignore[] = 'DAUGHTRY';
ignore[] = 'DAVERAGE';
ignore[] = 'DAVIDSON';
ignore[] = 'DAVISSON';
ignore[] = 'DAYBLOCK';
ignore[] = 'DAYLIGHT';
ignore[] = 'DBCONFIG';
ignore[] = 'DBCSSOSI';
ignore[] = 'DBDRIVER';
ignore[] = 'DBOBJECT';
ignore[] = 'DBSQLSRV';
ignore[] = 'DBTASKID';
ignore[] = 'DCOBJECT';
ignore[] = 'DCOMPLEX';
ignore[] = 'DCREATED';
ignore[] = 'DCSEARCH';
ignore[] = 'DDMMYYYY';
ignore[] = 'DDSLOCAL';
ignore[] = 'de120495';
ignore[] = 'de95b43bceeb4b998aed4aed5cef1ae7';
ignore[] = 'DEADLINE';
ignore[] = 'DEANGELO';
ignore[] = 'DEARBORN';
ignore[] = 'DEARMOND';
ignore[] = 'DEASSIGN';
ignore[] = 'DEBELLIS';
ignore[] = 'DEBOUNCE';
ignore[] = 'DEBUGCSS';
ignore[] = 'DEBUGGEN';
ignore[] = 'DEBUGGER';
ignore[] = 'DEBUGPNG';
ignore[] = 'DEBUGTMP';
ignore[] = 'DECASTRO';
ignore[] = 'DECEASED';
ignore[] = 'DECEMBER';
ignore[] = 'DECESARE';
ignore[] = 'DECFLOAT';
ignore[] = 'DECIGRAM';
ignore[] = 'DECIMALS';
ignore[] = 'DECIMIAL';
ignore[] = 'DECITORR';
ignore[] = 'DECIVOLT';
ignore[] = 'DECIWATT';
ignore[] = 'DECLINED';
ignore[] = 'DECOTEAU';
ignore[] = 'DECPOINT';
ignore[] = 'DECTOBIN';
ignore[] = 'DECTOHEX';
ignore[] = 'DECTOOCT';
ignore[] = 'DEDEDATA';
ignore[] = 'DEDEROOT';
ignore[] = 'DEFAULT1';
ignore[] = 'DEFAULTS';
ignore[] = 'DEFELICE';
ignore[] = 'DEFERRED';
ignore[] = 'DEFOREST';
ignore[] = 'DEFRANCO';
ignore[] = 'DEGEORGE';
ignore[] = 'DEGRADED';
ignore[] = 'DEGTORAD';
ignore[] = 'DEGUZMAN';
ignore[] = 'DEKAGRAM';
ignore[] = 'DEKAVOLT';
ignore[] = 'DEKAWATT';
ignore[] = 'DELACRUZ';
ignore[] = 'DELAMORA';
ignore[] = 'DELANCEY';
ignore[] = 'DELAPENA';
ignore[] = 'DELARIVA';
ignore[] = 'DELAROSA';
ignore[] = 'DELAVEGA';
ignore[] = 'DELEGATE';
ignore[] = 'DELETEME';
ignore[] = 'DELETING';
ignore[] = 'DELIVERY';
ignore[] = 'DELMONTE';
ignore[] = 'DELOATCH';
ignore[] = 'DELOITTE';
ignore[] = 'DELOZIER';
ignore[] = 'DELPHOTO';
ignore[] = 'DELVALLE';
ignore[] = 'DEMANDES';
ignore[] = 'DEMARCUS';
ignore[] = 'DEMAREST';
ignore[] = 'DEMATTEO';
ignore[] = 'DEMOCRAT';
ignore[] = 'DEMPSTER';
ignore[] = 'DENNISON';
ignore[] = 'DENSMORE';
ignore[] = 'DEPLOYER';
ignore[] = 'DEPRIEST';
ignore[] = 'DEROSIER';
ignore[] = 'DESANTIS';
ignore[] = 'DESCHAMP';
ignore[] = 'DESCRIBE';
ignore[] = 'DESHOTEL';
ignore[] = 'DESILETS';
ignore[] = 'DESIMONE';
ignore[] = 'DESINSCP';
ignore[] = 'DETAILED';
ignore[] = 'DETAILFM';
ignore[] = 'DETAILVIEWWIDGET';
ignore[] = 'DETINSCP';
ignore[] = 'DETWILER';
ignore[] = 'DEUT12HH';
ignore[] = 'DEVAUGHN';
ignore[] = 'DEVICEID';
ignore[] = 'DEVINNEY';
ignore[] = 'DEWBERRY';
ignore[] = 'DEZPUNKT';
ignore[] = 'DIAATUAL';
ignore[] = 'DIADASEMANAATUAL';
ignore[] = 'DIADASEMANALOCAL';
ignore[] = 'DIADESEMANALOCAL';
ignore[] = 'DIAGNOSE';
ignore[] = 'DIALOCAL';
ignore[] = 'DIAMETER';
ignore[] = 'DIAMONDS';
ignore[] = 'DIANDIAN';
ignore[] = 'DICKISON';
ignore[] = 'DIDONATO';
ignore[] = 'DIEDRICH';
ignore[] = 'DIEHARD1';
ignore[] = 'DIEHARD2';
ignore[] = 'DIEHARD3';
ignore[] = 'DIERKING';
ignore[] = 'DIETRICH';
ignore[] = 'DIETRICK';
ignore[] = 'DIFFRINT';
ignore[] = 'DIFRANCO';
ignore[] = 'DIGIPORT';
ignore[] = 'DILWORTH';
ignore[] = 'DIMAGGIO';
ignore[] = 'DIMATTEO';
ignore[] = 'DIMATTIA';
ignore[] = 'DIMENSIONEPAGINA';
ignore[] = 'DINAPOLI';
ignore[] = 'DINSMORE';
ignore[] = 'DIONISIO';
ignore[] = 'DIPIETRO';
ignore[] = 'DIRECTOR';
ignore[] = 'DISABLED';
ignore[] = 'DISALLOW';
ignore[] = 'DISCOUNT';
ignore[] = 'DISCOVER';
ignore[] = 'DISIDEY2';
ignore[] = 'DISIYARI';
ignore[] = 'DISIYURU';
ignore[] = 'DISJOINT';
ignore[] = 'DISKCOMP';
ignore[] = 'DISKCOPY';
ignore[] = 'DISKFREE';
ignore[] = 'DISKPART';
ignore[] = 'DISKSIZE';
ignore[] = 'DISKUSSIONSRYMDE';
ignore[] = 'DISKUSSIONSSEITE';
ignore[] = 'DISKUTPAGXONOMOO';
ignore[] = 'DISMOUNT';
ignore[] = 'DISMUKES';
ignore[] = 'DISPATCH';
ignore[] = 'DISSEDAG';
ignore[] = 'DISSETIEDSTEMPEL';
ignore[] = 'DISTANCE';
ignore[] = 'DISTINCT';
ignore[] = 'DITASOT2';
ignore[] = 'DITTRICH';
ignore[] = 'DITULLIO';
ignore[] = 'DIVIDERS';
ignore[] = 'DIVISION';
ignore[] = 'DIWRNODYGOLYGIAD';
ignore[] = 'DJIBOUTI';
ignore[] = 'DOCTYPES';
ignore[] = 'DOCUMENT';
ignore[] = 'DOCUMENTCATEGORY';
ignore[] = 'DOEVENTS';
ignore[] = 'DOLIBARR';
ignore[] = 'DOLLARDE';
ignore[] = 'DOLLARFR';
ignore[] = 'DOLLARID';
ignore[] = 'DOMAINID';
ignore[] = 'DOMENECH';
ignore[] = 'DOMENICO';
ignore[] = 'DOMINANT';
ignore[] = 'DOMINGUE';
ignore[] = 'DOMINICA';
ignore[] = 'DOMINICK';
ignore[] = 'DOMINIOC';
ignore[] = 'DONALSON';
ignore[] = 'DONATION';
ignore[] = 'DONELSON';
ignore[] = 'DONMOYER';
ignore[] = 'DONNELLY';
ignore[] = 'DONOFRIO';
ignore[] = 'DONOGHUE';
ignore[] = 'DONOTCACHEOBJECT';
ignore[] = 'DONOTCDN';
ignore[] = 'DONTCALL';
ignore[] = 'DOPRAWEJ';
ignore[] = 'DOPTNAME';
ignore[] = 'DOROTHEA';
ignore[] = 'DORRANCE';
ignore[] = 'DORROUGH';
ignore[] = 'DOUBLEAT';
ignore[] = 'DOUCETTE';
ignore[] = 'DOUGHNUT';
ignore[] = 'DOUGLASS';
ignore[] = 'DOUTHITT';
ignore[] = 'DOUZIEME';
ignore[] = 'DOWNLOAD';
ignore[] = 'DOWNTIME';
ignore[] = 'DPRODUCT';
ignore[] = 'DRAINING';
ignore[] = 'DRECERES';
ignore[] = 'DREILING';
ignore[] = 'DRESSLER';
ignore[] = 'DRIGGERS';
ignore[] = 'DRINKARD';
ignore[] = 'DRISCOLL';
ignore[] = 'DRISKELL';
ignore[] = 'DRISKILL';
ignore[] = 'DROPDOWN';
ignore[] = 'DROPNOTE';
ignore[] = 'DROPZONE';
ignore[] = 'DRUMMOND';
ignore[] = 'DRYSDALE';
ignore[] = 'DSERVICE';
ignore[] = 'DSNAMEFM';
ignore[] = 'DSNAMEPQ';
ignore[] = 'DTP03009';
ignore[] = 'DTP03050';
ignore[] = 'DUBREUIL';
ignore[] = 'DUCHARME';
ignore[] = 'DUCHESNE';
ignore[] = 'DUFFIELD';
ignore[] = 'DUFRESNE';
ignore[] = 'DUMPFILE';
ignore[] = 'DUNAVANT';
ignore[] = 'DUNLEAVY';
ignore[] = 'DUNNIGAN';
ignore[] = 'DUQUETTE';
ignore[] = 'DURATION';
ignore[] = 'DUROCHER';
ignore[] = 'DUSSAULT';
ignore[] = 'DYNAMICS';
ignore[] = 'DYSKUSJA';
ignore[] = 'DZIEDZIC';
ignore[] = 'DZUCFULL';
ignore[] = 'EARNSHAW';
ignore[] = 'EASTERLY';
ignore[] = 'EASTLAND';
ignore[] = 'EASTWOOD';
ignore[] = 'EBERHARD';
ignore[] = 'EBERHART';
ignore[] = 'EBERSOLE';
ignore[] = 'ECKHARDT';
ignore[] = 'ECKSTEIN';
ignore[] = 'EDDLEMAN';
ignore[] = 'EDGERTON';
ignore[] = 'EDINGTON';
ignore[] = 'EDITABLE';
ignore[] = 'EDITEURS';
ignore[] = 'EDMISTON';
ignore[] = 'EDMONSON';
ignore[] = 'EHRHARDT';
ignore[] = 'EICHHORN';
ignore[] = 'EICKHOFF';
ignore[] = 'EILERMAN';
ignore[] = 'EISENMAN';
ignore[] = 'ELDREDGE';
ignore[] = 'ELDRIDGE';
ignore[] = 'ELECTRIC';
ignore[] = 'ELECTRON';
ignore[] = 'ELEMENTS';
ignore[] = 'ELEPHANT';
ignore[] = 'ELIMINAR';
ignore[] = 'ELIZALDE';
ignore[] = 'ELIZONDO';
ignore[] = 'ELLEFSON';
ignore[] = 'ELLENDER';
ignore[] = 'ELLERBEE';
ignore[] = 'ELLERMAN';
ignore[] = 'ELLINGER';
ignore[] = 'ELLIPSIS';
ignore[] = 'ELLISTON';
ignore[] = 'ELSBERRY';
ignore[] = 'EMAILMSG';
ignore[] = 'EMAILTEXTCREDITS';
ignore[] = 'EMBEDDED';
ignore[] = 'EMBERTON';
ignore[] = 'EMMANUEL';
ignore[] = 'EMMERICH';
ignore[] = 'EMNIMUEJITAKTUAL';
ignore[] = 'EMOTICON';
ignore[] = 'EMPHASIS';
ignore[] = 'EMPLOYEE';
ignore[] = 'EMRIIMUAJITLOKAL';
ignore[] = 'ENABLECW';
ignore[] = 'ENABLING';
ignore[] = 'ENBLDUMP';
ignore[] = 'ENCLOSED';
ignore[] = 'ENCODING';
ignore[] = 'ENCOTHER';
ignore[] = 'ENDGUARD';
ignore[] = 'ENDICOTT';
ignore[] = 'ENDLOCAL';
ignore[] = 'ENDMONTH';
ignore[] = 'ENDPOINT';
ignore[] = 'ENDPROPS';
ignore[] = 'ENDQUERY';
ignore[] = 'ENFORCED';
ignore[] = 'ENGELMAN';
ignore[] = 'ENGINEER';
ignore[] = 'ENGLEMAN';
ignore[] = 'ENGRAVED';
ignore[] = 'ENGSTROM';
ignore[] = 'ENRICHED';
ignore[] = 'ENRIQUEZ';
ignore[] = 'ENTCOBOL';
ignore[] = 'ENTITIES';
ignore[] = 'ENTITYID';
ignore[] = 'ENTNASAL';
ignore[] = 'ENTREKIN';
ignore[] = 'ENUMUSEGOOGLEDNS';
ignore[] = 'ENVELOPE';
ignore[] = 'ENWLLAWNTUDALENE';
ignore[] = 'ENWTUDALENSGWRSE';
ignore[] = 'EPPERSON';
ignore[] = 'EPPINGER';
ignore[] = 'EQUALITY';
ignore[] = 'EREIAMJH';
ignore[] = 'ERICKSEN';
ignore[] = 'ERICKSON';
ignore[] = 'ERICSSON';
ignore[] = 'ERRCLEAR';
ignore[] = 'ESCALERA';
ignore[] = 'ESCAPEDBACKSLASH';
ignore[] = 'ESCOBEDO';
ignore[] = 'ESCUDERO';
ignore[] = 'ESHELMAN';
ignore[] = 'ESHLEMAN';
ignore[] = 'ESHPB100';
ignore[] = 'ESHPB101';
ignore[] = 'ESHPB102';
ignore[] = 'ESHPB103';
ignore[] = 'ESHPB104';
ignore[] = 'ESHPB105';
ignore[] = 'ESHPB106';
ignore[] = 'ESHPB107';
ignore[] = 'ESHPB108';
ignore[] = 'ESHPB109';
ignore[] = 'ESHPB110';
ignore[] = 'ESHPB111';
ignore[] = 'ESHPC100';
ignore[] = 'ESHPC101';
ignore[] = 'ESHPC102';
ignore[] = 'ESHPC103';
ignore[] = 'ESHPC104';
ignore[] = 'ESHPC105';
ignore[] = 'ESHPC106';
ignore[] = 'ESHPC107';
ignore[] = 'ESHPC108';
ignore[] = 'ESHPC109';
ignore[] = 'ESHPC110';
ignore[] = 'ESHPC111';
ignore[] = 'ESHPC112';
ignore[] = 'ESHPC113';
ignore[] = 'ESHPC114';
ignore[] = 'ESHPC115';
ignore[] = 'ESHPC116';
ignore[] = 'ESHPC117';
ignore[] = 'ESHPC118';
ignore[] = 'ESHPC119';
ignore[] = 'ESHPF100';
ignore[] = 'ESHPF101';
ignore[] = 'ESHPF102';
ignore[] = 'ESHPF103';
ignore[] = 'ESHPF104';
ignore[] = 'ESHPF105';
ignore[] = 'ESHPF106';
ignore[] = 'ESHPF107';
ignore[] = 'ESHPF108';
ignore[] = 'ESHPF109';
ignore[] = 'ESHPF110';
ignore[] = 'ESHPF111';
ignore[] = 'ESHPF112';
ignore[] = 'ESHPF113';
ignore[] = 'ESHPF114';
ignore[] = 'ESHPF115';
ignore[] = 'ESHPF116';
ignore[] = 'ESHPF117';
ignore[] = 'ESHPF118';
ignore[] = 'ESHPF119';
ignore[] = 'ESHPF120';
ignore[] = 'ESHPF121';
ignore[] = 'ESHPF122';
ignore[] = 'ESHPF123';
ignore[] = 'ESHPF124';
ignore[] = 'ESHPF125';
ignore[] = 'ESHPF126';
ignore[] = 'ESHPF127';
ignore[] = 'ESHPF128';
ignore[] = 'ESHPF129';
ignore[] = 'ESHPF130';
ignore[] = 'ESHPF131';
ignore[] = 'ESHPF132';
ignore[] = 'ESHPF133';
ignore[] = 'ESHPF134';
ignore[] = 'ESHPF135';
ignore[] = 'ESHPF136';
ignore[] = 'ESHPF137';
ignore[] = 'ESHPF138';
ignore[] = 'ESHPF139';
ignore[] = 'ESHPF140';
ignore[] = 'ESHPF141';
ignore[] = 'ESHPF142';
ignore[] = 'ESHPF143';
ignore[] = 'ESHPF144';
ignore[] = 'ESHPF145';
ignore[] = 'ESHPF146';
ignore[] = 'ESHPF147';
ignore[] = 'ESHPF200';
ignore[] = 'ESHPF201';
ignore[] = 'ESHPF202';
ignore[] = 'ESHPF203';
ignore[] = 'ESHPF204';
ignore[] = 'ESHPF205';
ignore[] = 'ESHPF206';
ignore[] = 'ESHPF207';
ignore[] = 'ESHPI100';
ignore[] = 'ESHPI101';
ignore[] = 'ESHPI102';
ignore[] = 'ESHPI103';
ignore[] = 'ESHPP100';
ignore[] = 'ESHPP101';
ignore[] = 'ESHPP102';
ignore[] = 'ESKRIDGE';
ignore[] = 'ESLINGER';
ignore[] = 'ESPACEDISCUSSION';
ignore[] = 'ESPACIDISCUSSION';
ignore[] = 'ESPACINOMENATGEX';
ignore[] = 'ESPACIODEASUNTOC';
ignore[] = 'ESPACIODENOMBREC';
ignore[] = 'ESPACIODENOMBRES';
ignore[] = 'ESPAZODECONVERSA';
ignore[] = 'ESPECIAL';
ignore[] = 'ESPINOSA';
ignore[] = 'ESPINOZA';
ignore[] = 'ESPIRITU';
ignore[] = 'ESPOSITO';
ignore[] = 'ESQUIBEL';
ignore[] = 'ESQUIVEL';
ignore[] = 'ESR1000V';
ignore[] = 'ESTRELLA';
ignore[] = 'ESURANCE';
ignore[] = 'ETCHISON';
ignore[] = 'ETHERTON';
ignore[] = 'ETHIOPIA';
ignore[] = 'ETHRIDGE';
ignore[] = 'ETIQUETA';
ignore[] = 'ETISALAT';
ignore[] = 'ETTINGER';
ignore[] = 'EVALUATE';
ignore[] = 'EVENTWEB';
ignore[] = 'EVERBANK';
ignore[] = 'EVERETTE';
ignore[] = 'EVERHART';
ignore[] = 'EVERSOLE';
ignore[] = 'EVERYONE';
ignore[] = 'EXAJOULE';
ignore[] = 'EXAMETER';
ignore[] = 'EXAMPLES';
ignore[] = 'EXBIBYTE';
ignore[] = 'EXCHANGE';
ignore[] = 'EXCLUDED';
ignore[] = 'EXCLUDEOPERATORS';
ignore[] = 'EXECCODE';
ignore[] = 'EXEMPLAR';
ignore[] = 'EXISTAIT';
ignore[] = 'EXISTING';
ignore[] = 'EXPENSED';
ignore[] = 'EXPENSES';
ignore[] = 'EXPIREAT';
ignore[] = 'EXPLBULL';
ignore[] = 'EXPLMONO';
ignore[] = 'EXPLNUMS';
ignore[] = 'EXPLORER';
ignore[] = 'EXPONENT';
ignore[] = 'EXPORTRA';
ignore[] = 'EXTENDED';
ignore[] = 'EXTERNAL';
ignore[] = 'EXTHASCW';
ignore[] = 'EXTRARES';
ignore[] = 'EYROLLES';
ignore[] = 'EZEQUIEL';
ignore[] = 'FABRIZIO';
ignore[] = 'FACEBOOK';
ignore[] = 'FAGUNDES';
ignore[] = 'FAILLINK';
ignore[] = 'FAILOVER';
ignore[] = 'FAILURES';
ignore[] = 'FAIRBANK';
ignore[] = 'FALCONER';
ignore[] = 'FALGOUST';
ignore[] = 'FAMILIES';
ignore[] = 'FARQUHAR';
ignore[] = 'FARRELLY';
ignore[] = 'FARTHING';
ignore[] = 'FASCHING';
ignore[] = 'FASTCALL';
ignore[] = 'FASTINIT';
ignore[] = 'FASTLINK';
ignore[] = 'FASTSORT';
ignore[] = 'FATHATAN';
ignore[] = 'FAUCETTE';
ignore[] = 'FAULKNER';
ignore[] = 'FAUSTINO';
ignore[] = 'FAVORITE';
ignore[] = 'FAYLSONI';
ignore[] = 'FCOLSPAN';
ignore[] = 'FEATHERS';
ignore[] = 'FEBRUARY';
ignore[] = 'FEDERICO';
ignore[] = 'FEEDBACK';
ignore[] = 'FEEMSTER';
ignore[] = 'FEINBERG';
ignore[] = 'FEINGOLD';
ignore[] = 'FELDMANN';
ignore[] = 'FEMTOBAR';
ignore[] = 'FENIMORE';
ignore[] = 'FENTRESS';
ignore[] = 'FERGUSON';
ignore[] = 'FERNANDO';
ignore[] = 'FERRANTE';
ignore[] = 'FERRANTI';
ignore[] = 'FERREIRA';
ignore[] = 'FERRETTI';
ignore[] = 'FERRIERA';
ignore[] = 'FERRIGNO';
ignore[] = 'FETCHOBS';
ignore[] = 'FF000000';
ignore[] = 'FF000080';
ignore[] = 'ff0000ff';
ignore[] = 'FF003300';
ignore[] = 'FF003366';
ignore[] = 'FF0066CC';
ignore[] = 'FF008000';
ignore[] = 'FF008080';
ignore[] = 'FF0088FF';
ignore[] = 'FF0094FF';
ignore[] = 'FF00CCFF';
ignore[] = 'FF00FF00';
ignore[] = 'FF00FFFF';
ignore[] = 'FF333300';
ignore[] = 'FF333333';
ignore[] = 'FF333399';
ignore[] = 'FF3366FF';
ignore[] = 'FF339966';
ignore[] = 'FF33CCCC';
ignore[] = 'FFFFFFE1';
ignore[] = 'FIDELITY';
ignore[] = 'FIELDCOLLECTIONS';
ignore[] = 'FIELDING';
ignore[] = 'FIELDSET';
ignore[] = 'FIELDVAR';
ignore[] = 'FIGUEROA';
ignore[] = 'FILEABBREVIATION';
ignore[] = 'FILEATTR';
ignore[] = 'FILECOPY';
ignore[] = 'FILEDATA';
ignore[] = 'FILEDATE';
ignore[] = 'FILEFULL';
ignore[] = 'FILEINFO';
ignore[] = 'FILENAME';
ignore[] = 'FILEPATH';
ignore[] = 'FILESIZE';
ignore[] = 'FILESYSTEMOBJECT';
ignore[] = 'FILETIME';
ignore[] = 'FILETYPE';
ignore[] = 'FILLMORE';
ignore[] = 'FILTERED';
ignore[] = 'FILTRAGE';
ignore[] = 'FINISHED';
ignore[] = 'FINNEGAN';
ignore[] = 'FINNERTY';
ignore[] = 'FIORILLO';
ignore[] = 'FIPNAMEL';
ignore[] = 'FIPSTATE';
ignore[] = 'FIQUEROA';
ignore[] = 'FIRMDALE';
ignore[] = 'FIRSTROW';
ignore[] = 'FIRSTRUN';
ignore[] = 'FISHBACK';
ignore[] = 'FISHBURN';
ignore[] = 'FITCHETT';
ignore[] = 'FITZHUGH';
ignore[] = 'FJLBREYT';
ignore[] = 'FLAGRANT';
ignore[] = 'FLAHERTY';
ignore[] = 'FLANAGAN';
ignore[] = 'FLANDERS';
ignore[] = 'FLANIGAN';
ignore[] = 'FLANNERY';
ignore[] = 'FLAPPING';
ignore[] = 'FLATTRED';
ignore[] = 'FLAUGHER';
ignore[] = 'FLEISHER';
ignore[] = 'FLEMINGS';
ignore[] = 'FLEMMING';
ignore[] = 'FLESHMAN';
ignore[] = 'FLETCHER';
ignore[] = 'FLEXIBLE';
ignore[] = 'FLINCHUM';
ignore[] = 'FLOATING';
ignore[] = 'FLORENCE';
ignore[] = 'FLOURNOY';
ignore[] = 'FLUELLEN';
ignore[] = 'FLUHARTY';
ignore[] = 'FLUSHALL';
ignore[] = 'FMTDEBUG';
ignore[] = 'FNCWC16B';
ignore[] = 'FOERSTER';
ignore[] = 'FOGLEMAN';
ignore[] = 'FOLDERID';
ignore[] = 'FOLKERTS';
ignore[] = 'FONTAINE';
ignore[] = 'FONTANEZ';
ignore[] = 'FONTENOT';
ignore[] = 'FONTSIZE';
ignore[] = 'FONVILLE';
ignore[] = 'FOOLSCAP';
ignore[] = 'FOOOOOOO';
ignore[] = 'FOOTBALL';
ignore[] = 'FOOTNOTE';
ignore[] = 'FOOVALUE';
ignore[] = 'FOPTNAME';
ignore[] = 'FORECAST';
ignore[] = 'FOREHAND';
ignore[] = 'FORENAME';
ignore[] = 'FORESTER';
ignore[] = 'FORMATNR';
ignore[] = 'FORMBODY';
ignore[] = 'FORMDATA';
ignore[] = 'FORMFEED';
ignore[] = 'FORMHASH';
ignore[] = 'FORMNAME';
ignore[] = 'FORMONLY';
ignore[] = 'FORMTEXT';
ignore[] = 'FORSBERG';
ignore[] = 'FORSYTHE';
ignore[] = 'FOUNTAIN';
ignore[] = 'FOURNIER';
ignore[] = 'FOXWORTH';
ignore[] = 'FRACTION';
ignore[] = 'FRAGMENT';
ignore[] = 'FRAGOLLA';
ignore[] = 'FRAMESET';
ignore[] = 'FRAMPTON';
ignore[] = 'FRANCINE';
ignore[] = 'FRANCOIS';
ignore[] = 'FRANDSEN';
ignore[] = 'FRANKLIN';
ignore[] = 'FRANKLYN';
ignore[] = 'FREDERIC';
ignore[] = 'FREDETTE';
ignore[] = 'FREDRICK';
ignore[] = 'FREEBORN';
ignore[] = 'FREEBUSY';
ignore[] = 'FREECALL';
ignore[] = 'FREEDMAN';
ignore[] = 'FREEFILE';
ignore[] = 'FREELAND';
ignore[] = 'FREETEXT';
ignore[] = 'FRENETTE';
ignore[] = 'FREQUENC';
ignore[] = 'FRERICHS';
ignore[] = 'FRESHOUR';
ignore[] = 'FRESQUEZ';
ignore[] = 'FRETWELL';
ignore[] = 'FRICTION';
ignore[] = 'FRIEDMAN';
ignore[] = 'FRIERSON';
ignore[] = 'FRITSCHE';
ignore[] = 'FRIZZELL';
ignore[] = 'FROELICH';
ignore[] = 'FRONTEND';
ignore[] = 'FRONTIER';
ignore[] = 'FTPLOGIN';
ignore[] = 'FUJIFILM';
ignore[] = 'FUJIMOTO';
ignore[] = 'FUJIWARA';
ignore[] = 'FULLNAME';
ignore[] = 'FULLSTOP';
ignore[] = 'FULLTEXT';
ignore[] = 'FULLWOOD';
ignore[] = 'FUNCADDR';
ignore[] = 'FUNCHESS';
ignore[] = 'FUNCNAME';
ignore[] = 'FUNCTION';
ignore[] = 'FURGUSON';
ignore[] = 'FUSELIER';
ignore[] = 'GABALDON';
ignore[] = 'GABRIELA';
ignore[] = 'GABRIELE';
ignore[] = 'GADBERRY';
ignore[] = 'GAERTNER';
ignore[] = 'GAGLIANO';
ignore[] = 'GAILLARD';
ignore[] = 'GALDAMEZ';
ignore[] = 'GALIPEAU';
ignore[] = 'GALLAGER';
ignore[] = 'GALLAHER';
ignore[] = 'GALLARDO';
ignore[] = 'GALLAWAY';
ignore[] = 'GALLEGOS';
ignore[] = 'GALLIGAN';
ignore[] = 'GALLIHER';
ignore[] = 'GALLOWAY';
ignore[] = 'GALLUCCI';
ignore[] = 'GAMBLING';
ignore[] = 'GAMBRELL';
ignore[] = 'GAMESPOT';
ignore[] = 'GAMMAINV';
ignore[] = 'GANNAWAY';
ignore[] = 'GARDELLA';
ignore[] = 'GARDENER';
ignore[] = 'GARDINER';
ignore[] = 'GARFIELD';
ignore[] = 'GAROFALO';
ignore[] = 'GARRAWAY';
ignore[] = 'GARRISON';
ignore[] = 'GASSAWAY';
ignore[] = 'GASTELUM';
ignore[] = 'GATEWAYS';
ignore[] = 'GATEWOOD';
ignore[] = 'GAUDETTE';
ignore[] = 'GAUDREAU';
ignore[] = 'GAUSSIAN';
ignore[] = 'GAUTHIER';
ignore[] = 'GAUTREAU';
ignore[] = 'GB231280';
ignore[] = 'GEARHART';
ignore[] = 'GEBHARDT';
ignore[] = 'GEISSLER';
ignore[] = 'GENDREAU';
ignore[] = 'GENERATE';
ignore[] = 'GENOVESE';
ignore[] = 'GENTHNER';
ignore[] = 'GEOFFREY';
ignore[] = 'GEOMCOLLFROMTEXT';
ignore[] = 'GEOMETRY';
ignore[] = 'GEOMETRYFROMTEXT';
ignore[] = 'GEORGINA';
ignore[] = 'GERAGHTY';
ignore[] = 'GERHARDT';
ignore[] = 'GERMAINE';
ignore[] = 'GERSTNER';
ignore[] = 'GERTRUDE';
ignore[] = 'GETASYNCKEYSTATE';
ignore[] = 'GETATKBD';
ignore[] = 'GETATTRGETOBJECT';
ignore[] = 'GETCHELL';
ignore[] = 'GETDSTIP';
ignore[] = 'GETQUOTA';
ignore[] = 'GETRANGE';
ignore[] = 'GHOLSTON';
ignore[] = 'GIANCOLA';
ignore[] = 'GIANNINI';
ignore[] = 'GIANNONE';
ignore[] = 'GIARDINA';
ignore[] = 'GIBIBYTE';
ignore[] = 'GIDDINGS';
ignore[] = 'GIGABYTE';
ignore[] = 'GIGAELECTRONVOLT';
ignore[] = 'GIGAGRAM';
ignore[] = 'GIGAWATT';
ignore[] = 'GILBERTO';
ignore[] = 'GILLETTE';
ignore[] = 'GILLIARD';
ignore[] = 'GILLIGAN';
ignore[] = 'GILLISON';
ignore[] = 'GILLMORE';
ignore[] = 'GILREATH';
ignore[] = 'GILSTRAP';
ignore[] = 'GINGRICH';
ignore[] = 'GINSBERG';
ignore[] = 'GINSBURG';
ignore[] = 'GIORDANO';
ignore[] = 'GIOVANNI';
ignore[] = 'GIROUARD';
ignore[] = 'GIULIANI';
ignore[] = 'GIULIANO';
ignore[] = 'GIUSEPPE';
ignore[] = 'GLASSMAN';
ignore[] = 'GLBITMAP';
ignore[] = 'GLCDDATA';
ignore[] = 'GLCLAMPD';
ignore[] = 'GLCLAMPF';
ignore[] = 'GLCOPYTEXIMAGE1D';
ignore[] = 'GLCOPYTEXIMAGE2D';
ignore[] = 'GLDELETETEXTURES';
ignore[] = 'GLDOUBLE';
ignore[] = 'GLEDHILL';
ignore[] = 'GLENABLE';
ignore[] = 'GLESSNER';
ignore[] = 'GLFEEDBACKBUFFER';
ignore[] = 'GLFINISH';
ignore[] = 'GLGETPIXELMAPUIV';
ignore[] = 'GLGETPIXELMAPUSV';
ignore[] = 'GLICKMAN';
ignore[] = 'GLINDEXD';
ignore[] = 'GLINDEXF';
ignore[] = 'GLINDEXI';
ignore[] = 'GLINDEXS';
ignore[] = 'GLISLIST';
ignore[] = 'GLLIGHTF';
ignore[] = 'GLLIGHTI';
ignore[] = 'GLOWACKI';
ignore[] = 'GLPIXELTRANSFERF';
ignore[] = 'GLPIXELTRANSFERI';
ignore[] = 'GLPOLYGONSTIPPLE';
ignore[] = 'GLRECTDV';
ignore[] = 'GLRECTFV';
ignore[] = 'GLRECTIV';
ignore[] = 'GLRECTSV';
ignore[] = 'GLSCALED';
ignore[] = 'GLSCALEF';
ignore[] = 'GLTEXPARAMETERFV';
ignore[] = 'GLTEXPARAMETERIV';
ignore[] = 'GLUDELETEQUADRIC';
ignore[] = 'GLUNURBSCALLBACK';
ignore[] = 'GLUNURBSPROPERTY';
ignore[] = 'GLUSHORT';
ignore[] = 'GOEHRING';
ignore[] = 'GOFUNDME';
ignore[] = 'GOLDBERG';
ignore[] = 'GOLDFARB';
ignore[] = 'GOLDSTON';
ignore[] = 'GOLLIDAY';
ignore[] = 'GOLYGIADCYFREDOL';
ignore[] = 'GONSALES';
ignore[] = 'GONSALEZ';
ignore[] = 'GONZALAS';
ignore[] = 'GONZALES';
ignore[] = 'GONZALEZ';
ignore[] = 'GOODLETT';
ignore[] = 'GOODRICH';
ignore[] = 'GOODSELL';
ignore[] = 'GOODWILL';
ignore[] = 'GOODYEAR';
ignore[] = 'GORDILLO';
ignore[] = 'GOSSELIN';
ignore[] = 'GOTTLIEB';
ignore[] = 'GOUDREAU';
ignore[] = 'GOULDING';
ignore[] = 'GOULETTE';
ignore[] = 'GOURDINE';
ignore[] = 'GOVERNMENTLETTER';
ignore[] = 'GPRESULT';
ignore[] = 'GRACIELA';
ignore[] = 'GRAFTABL';
ignore[] = 'GRAINGER';
ignore[] = 'GRAMADEG';
ignore[] = 'GRANADOS';
ignore[] = 'GRANILLO';
ignore[] = 'GRANTHAM';
ignore[] = 'GRAPHICS';
ignore[] = 'GRAPHLCD';
ignore[] = 'GRAVATAR';
ignore[] = 'GRAVELLE';
ignore[] = 'GRAY2BIN';
ignore[] = 'GRAYBEAL';
ignore[] = 'GRAYBILL';
ignore[] = 'GRAYTEXT';
ignore[] = 'GRAZIANI';
ignore[] = 'GRAZIANO';
ignore[] = 'GREATEST';
ignore[] = 'GREENHAW';
ignore[] = 'GREENING';
ignore[] = 'GREENLAW';
ignore[] = 'GREENLEE';
ignore[] = 'GREENMAN';
ignore[] = 'GREENWAY';
ignore[] = 'GREETING';
ignore[] = 'GREGOIRE';
ignore[] = 'GREGORIO';
ignore[] = 'GRETCHEN';
ignore[] = 'GRIDLINE';
ignore[] = 'GRIFFETH';
ignore[] = 'GRIFFING';
ignore[] = 'GRIFFITH';
ignore[] = 'GRIJALVA';
ignore[] = 'GRIMALDI';
ignore[] = 'GRIMALDO';
ignore[] = 'GRIMMETT';
ignore[] = 'GRIMSHAW';
ignore[] = 'GRIMSLEY';
ignore[] = 'GRINNELL';
ignore[] = 'GRISSETT';
ignore[] = 'GRISWOLD';
ignore[] = 'GRIZZARD';
ignore[] = 'GROSSMAN';
ignore[] = 'GROUPING';
ignore[] = 'GROUPRDN';
ignore[] = 'GROUPUSE';
ignore[] = 'GRPATTRIBUTEUSER';
ignore[] = 'GRUNWALD';
ignore[] = 'GSADMINTHEMEFILE';
ignore[] = 'GSALLOWDOWNLOADS';
ignore[] = 'GSALLOWRESETPASS';
ignore[] = 'GSCOMMON';
ignore[] = 'GSCOMPONENTSFILE';
ignore[] = 'GSDATADRAFTSPATH';
ignore[] = 'GSDATAUPLOADPATH';
ignore[] = 'GSDATETIMEFORMAT';
ignore[] = 'GSDEBUGREDIRECTS';
ignore[] = 'GSERRORLOGENABLE';
ignore[] = 'GSEXTAPI';
ignore[] = 'GSHTMLEDITINLINE';
ignore[] = 'GSINSTALLPLUGINS';
ignore[] = 'GSLOGINQSALLOWED';
ignore[] = 'GSNOCSRF';
ignore[] = 'GSNOFRAMEDEFAULT';
ignore[] = 'GSSNIPPETSATTRIB';
ignore[] = 'GSSUPPRESSERRORS';
ignore[] = 'GUAJARDO';
ignore[] = 'GUARDADO';
ignore[] = 'GUARDIAN';
ignore[] = 'GUENTHER';
ignore[] = 'GUERNSEY';
ignore[] = 'GUERRERA';
ignore[] = 'GUERRERO';
ignore[] = 'GUERRIER';
ignore[] = 'GUILFORD';
ignore[] = 'GUILLORY';
ignore[] = 'GUINYARD';
ignore[] = 'GULLEDGE';
ignore[] = 'GULLETTE';
ignore[] = 'GURGANUS';
ignore[] = 'GUTIEREZ';
ignore[] = 'GUTIRREZ';
ignore[] = 'GUTOWSKI';
ignore[] = 'GUTSHALL';
ignore[] = 'GWALTNEY';
ignore[] = 'GWEINYDD';
ignore[] = 'HABERMAN';
ignore[] = 'HACIENDA';
ignore[] = 'HADFIELD';
ignore[] = 'HAGEDORN';
ignore[] = 'HAGEMANN';
ignore[] = 'HAGERMAN';
ignore[] = 'HAGGERTY';
ignore[] = 'HAGOPIAN';
ignore[] = 'HAIRSTON';
ignore[] = 'HALDEMAN';
ignore[] = 'HALDIKAT';
ignore[] = 'HALFACRE';
ignore[] = 'HALFYEAR';
ignore[] = 'HALLADAY';
ignore[] = 'HALLBERG';
ignore[] = 'HALLIDAY';
ignore[] = 'HALLIGAN';
ignore[] = 'HALLINAN';
ignore[] = 'HALLMARK';
ignore[] = 'HALLORAN';
ignore[] = 'HALLOWAY';
ignore[] = 'HALSTEAD';
ignore[] = 'HAMBRICK';
ignore[] = 'HAMILTON';
ignore[] = 'HAMMONDS';
ignore[] = 'HANCHETT';
ignore[] = 'HANDLING';
ignore[] = 'HANNEMAN';
ignore[] = 'HANNIGAN';
ignore[] = 'HANOWLEUNANFOLEN';
ignore[] = 'HANRAHAN';
ignore[] = 'HANSFORD';
ignore[] = 'HARALSON';
ignore[] = 'HARBAUGH';
ignore[] = 'HARBISON';
ignore[] = 'HARDAWAY';
ignore[] = 'HARDCHAR';
ignore[] = 'HARDEMAN';
ignore[] = 'HARDESTY';
ignore[] = 'HARDIMAN';
ignore[] = 'HARDISON';
ignore[] = 'HARDNETT';
ignore[] = 'HARDRICK';
ignore[] = 'HARDWARE';
ignore[] = 'HARDWICK';
ignore[] = 'HAREWOOD';
ignore[] = 'HARGRAVE';
ignore[] = 'HARGROVE';
ignore[] = 'HARIKINI';
ignore[] = 'HARKLESS';
ignore[] = 'HARKNESS';
ignore[] = 'HARPSTER';
ignore[] = 'HARRIETT';
ignore[] = 'HARRIGAN';
ignore[] = 'HARRIMAN';
ignore[] = 'HARRISON';
ignore[] = 'HARSHMAN';
ignore[] = 'HARTFORD';
ignore[] = 'HARTIGAN';
ignore[] = 'HARTLINE';
ignore[] = 'HARTMANN';
ignore[] = 'HARTNESS';
ignore[] = 'HARTNETT';
ignore[] = 'HARTSELL';
ignore[] = 'HARTSOCK';
ignore[] = 'HARTWELL';
ignore[] = 'HARTWICK';
ignore[] = 'HARTZELL';
ignore[] = 'HARTZLER';
ignore[] = 'HARVILLE';
ignore[] = 'HASEGAWA';
ignore[] = 'HASHABLE';
ignore[] = 'HASIMAGE';
ignore[] = 'HASTINGS';
ignore[] = 'HASVALUE';
ignore[] = 'HATCHELL';
ignore[] = 'HATCHETT';
ignore[] = 'HATFIELD';
ignore[] = 'HATHAWAY';
ignore[] = 'HATHCOCK';
ignore[] = 'HATMAKER';
ignore[] = 'HATTAWAY';
ignore[] = 'HAUBRICH';
ignore[] = 'HAUGHTON';
ignore[] = 'HAUGLAND';
ignore[] = 'HAUSMANN';
ignore[] = 'HAVAL128';
ignore[] = 'HAVAL160';
ignore[] = 'HAVAL192';
ignore[] = 'HAVAL256';
ignore[] = 'HAVILAND';
ignore[] = 'HAWTHORN';
ignore[] = 'HAYCRAFT';
ignore[] = 'HAYHURST';
ignore[] = 'HAYKALLAMKAPUSQA';
ignore[] = 'HAYSLETT';
ignore[] = 'HAYWORTH';
ignore[] = 'HAZELTON';
ignore[] = 'HCOLSPAN';
ignore[] = 'HDFCBANK';
ignore[] = 'HEADINGS';
ignore[] = 'HEADLINE';
ignore[] = 'HEADRICK';
ignore[] = 'HEAVENER';
ignore[] = 'HECTOBAR';
ignore[] = 'HEDSTROM';
ignore[] = 'HEIDEMAN';
ignore[] = 'HEIDRICK';
ignore[] = 'HEIMBACH';
ignore[] = 'HEINEMAN';
ignore[] = 'HEINRICH';
ignore[] = 'HEITMANN';
ignore[] = 'HEITZMAN';
ignore[] = 'HELEURLE';
ignore[] = 'HELFRICH';
ignore[] = 'HELGESON';
ignore[] = 'HELSINKI';
ignore[] = 'HELUAOAO';
ignore[] = 'HELUKAHU';
ignore[] = 'HELULOLI';
ignore[] = 'HELYINAP';
ignore[] = 'HEMENWAY';
ignore[] = 'HEMPHILL';
ignore[] = 'HENDRICK';
ignore[] = 'HENNESSY';
ignore[] = 'HENNIGAN';
ignore[] = 'HENNINGS';
ignore[] = 'HENRICKS';
ignore[] = 'HENTHORN';
ignore[] = 'HEPWORTH';
ignore[] = 'HEREFORD';
ignore[] = 'HERMINIA';
ignore[] = 'HERNADEZ';
ignore[] = 'HERRMANN';
ignore[] = 'HERSCHEL';
ignore[] = 'HERSHMAN';
ignore[] = 'HERTZLER';
ignore[] = 'HERZBERG';
ignore[] = 'HETKEAEG';
ignore[] = 'HETKEKUU';
ignore[] = 'HEXTOBIN';
ignore[] = 'HEXTODEC';
ignore[] = 'HEXTOOCT';
ignore[] = 'HEXTORAW';
ignore[] = 'HI345678';
ignore[] = 'HIBBITTS';
ignore[] = 'HIBISCUS';
ignore[] = 'HIDEBYCUSTOMNAME';
ignore[] = 'HIGHFILL';
ignore[] = 'HIGHLAND';
ignore[] = 'HILDRETH';
ignore[] = 'HILLIARD';
ignore[] = 'HILLIKER';
ignore[] = 'HILLYARD';
ignore[] = 'HINCKLEY';
ignore[] = 'HINERMAN';
ignore[] = 'HINOJOSA';
ignore[] = 'HINRICHS';
ignore[] = 'HIPOLITO';
ignore[] = 'HIRAGANA';
ignore[] = 'HISTORIA';
ignore[] = 'HITCHENS';
ignore[] = 'HOAGLAND';
ignore[] = 'HOCKADAY';
ignore[] = 'HODGKINS';
ignore[] = 'HOEKSTRA';
ignore[] = 'HOEPPNER';
ignore[] = 'HOFFMANN';
ignore[] = 'HOGSHEAD';
ignore[] = 'HOLBROOK';
ignore[] = 'HOLCOMBE';
ignore[] = 'HOLDINGS';
ignore[] = 'HOLDLOCK';
ignore[] = 'HOLIDAYS';
ignore[] = 'HOLLADAY';
ignore[] = 'HOLLAWAY';
ignore[] = 'HOLLEMAN';
ignore[] = 'HOLLERAN';
ignore[] = 'HOLLIDAY';
ignore[] = 'HOLLIMAN';
ignore[] = 'HOLLOMAN';
ignore[] = 'HOLLOMON';
ignore[] = 'HOLLOWAY';
ignore[] = 'HOLMBERG';
ignore[] = 'HOLMGREN';
ignore[] = 'HOLSTEIN';
ignore[] = 'HOLTHAUS';
ignore[] = 'HOLTZMAN';
ignore[] = 'HOMEIMG0';
ignore[] = 'HOMEIMG1';
ignore[] = 'HOMEPAGE';
ignore[] = 'HOMEPATH';
ignore[] = 'HONDURAS';
ignore[] = 'HONEYBEE';
ignore[] = 'HOOKABLE';
ignore[] = 'HOOKSDIR';
ignore[] = 'HOOKTYPE';
ignore[] = 'HORAMINUTOSLOCAL';
ignore[] = 'HORNBACK';
ignore[] = 'HORNBECK';
ignore[] = 'HOROWITZ';
ignore[] = 'HORROCKS';
ignore[] = 'HORSTMAN';
ignore[] = 'HOSPITAL';
ignore[] = 'HOSTCODE';
ignore[] = 'HOSTHELP';
ignore[] = 'HOSTMASK';
ignore[] = 'HOSTNAME';
ignore[] = 'HOTALING';
ignore[] = 'HOTSNEWS';
ignore[] = 'HOUCHENS';
ignore[] = 'HOUCHINS';
ignore[] = 'HOUGHTON';
ignore[] = 'HOULIHAN';
ignore[] = 'HOUSEMAN';
ignore[] = 'HOWERTON';
ignore[] = 'HP020410';
ignore[] = 'HP020504';
ignore[] = 'HP020927';
ignore[] = 'HP021408';
ignore[] = 'HP028704';
ignore[] = 'HP050206';
ignore[] = 'HP050467';
ignore[] = 'HP050953';
ignore[] = 'HP060204';
ignore[] = 'HP060209';
ignore[] = 'HP140267';
ignore[] = 'HP736704';
ignore[] = 'HP876702';
ignore[] = 'HR2450FT';
ignore[] = 'HR2470FT';
ignore[] = 'HR2611FT';
ignore[] = 'HR2811FT';
ignore[] = 'HR3541FC';
ignore[] = 'HTACCESS';
ignore[] = 'HTDOCDIR';
ignore[] = 'HTML2PDF';
ignore[] = 'HTML2TXT';
ignore[] = 'HTMLLANG';
ignore[] = 'HTTPENABLESTATIC';
ignore[] = 'HTTPSESSIONLIMIT';
ignore[] = 'HUCKABEE';
ignore[] = 'HUCKSTEP';
ignore[] = 'HUDSPETH';
ignore[] = 'HUFFAKER';
ignore[] = 'HUFNAGEL';
ignore[] = 'HUIDIGEMAANDNAAM';
ignore[] = 'HUIZENGA';
ignore[] = 'HULTGREN';
ignore[] = 'HUMBERTO';
ignore[] = 'HUMISTON';
ignore[] = 'HUMPHERY';
ignore[] = 'HUMPHREY';
ignore[] = 'HUNSAKER';
ignore[] = 'HUNTSMAN';
ignore[] = 'HUNZIKER';
ignore[] = 'HURLBERT';
ignore[] = 'HURLBURT';
ignore[] = 'HUTCHENS';
ignore[] = 'HUTCHINS';
ignore[] = 'I2CRBYTE';
ignore[] = 'I2CSLAVE';
ignore[] = 'I2CSTART';
ignore[] = 'I2CWBYTE';
ignore[] = 'I6K2L2Q4';
ignore[] = 'IBM00858';
ignore[] = 'IBM00924';
ignore[] = 'IBM01140';
ignore[] = 'IBM01141';
ignore[] = 'IBM01142';
ignore[] = 'IBM01143';
ignore[] = 'IBM01144';
ignore[] = 'IBM01145';
ignore[] = 'IBM01146';
ignore[] = 'IBM01147';
ignore[] = 'IBM01148';
ignore[] = 'IBM01149';
ignore[] = 'ICECREAM';
ignore[] = 'ICENHOUR';
ignore[] = 'ICONPATH';
ignore[] = 'IDCANCEL';
ignore[] = 'IDCLIENT';
ignore[] = 'IDENTITY';
ignore[] = 'IDEXPAND';
ignore[] = 'IDIGNORE';
ignore[] = 'IDIOMADOCONTEUDO';
ignore[] = 'IDIZMENE';
ignore[] = 'IDLETIME';
ignore[] = 'IDMEMBER';
ignore[] = 'IDPAGINA';
ignore[] = 'IDREVISI';
ignore[] = 'IDREVIZE';
ignore[] = 'IDSTRING';
ignore[] = 'IEDEREEN';
ignore[] = 'IFEXISTS';
ignore[] = 'IGBINARY';
ignore[] = 'IGLESIAS';
ignore[] = 'IGNOREME';
ignore[] = 'IGNORING';
ignore[] = 'ILNATIVE';
ignore[] = 'ILNATIVERESOURCE';
ignore[] = 'ILOUTPUT';
ignore[] = 'ILPRODUCTVERSION';
ignore[] = 'ILSOURCE';
ignore[] = 'ILSTATIC';
ignore[] = 'ILTARGET';
ignore[] = 'ILVERIFY';
ignore[] = 'IMASINCHIAMACHAY';
ignore[] = 'IMEBAZNESTRANICE';
ignore[] = 'IMENAPODSTRANICA';
ignore[] = 'IMENAPODSTRANICE';
ignore[] = 'IMESAJTA';
ignore[] = 'IMGWIDTH';
ignore[] = 'IMPAIRED';
ignore[] = 'IMPLICIT';
ignore[] = 'IMPORTED';
ignore[] = 'IMPORTER';
ignore[] = 'IMPORTES';
ignore[] = 'IMPORTRA';
ignore[] = 'INABINET';
ignore[] = 'INACTIVE';
ignore[] = 'INACTIVETITLEBAR';
ignore[] = 'INCLUDED';
ignore[] = 'INCLUDES';
ignore[] = 'INCOMING';
ignore[] = 'INDEXING';
ignore[] = 'INDEXINT';
ignore[] = 'INDEXINT';
ignore[] = 'INDICATE';
ignore[] = 'INDIRECT';
ignore[] = 'INDUSTRY';
ignore[] = 'INERRORS';
ignore[] = 'INFECTED';
ignore[] = 'INFINIDB';
ignore[] = 'INFINITE';
ignore[] = 'INFINITI';
ignore[] = 'INFINITY';
ignore[] = 'INFORMAT';
ignore[] = 'INFORMIX';
ignore[] = 'INFOTEXT';
ignore[] = 'INGRAHAM';
ignore[] = 'INHERITS';
ignore[] = 'INITCALL';
ignore[] = 'INITIATE';
ignore[] = 'INJECTOR';
ignore[] = 'INLINEJAVASCRIPT';
ignore[] = 'INNHOLDSSIDETALL';
ignore[] = 'INNOCENT';
ignore[] = 'INOAAOAO';
ignore[] = 'INOCTETS';
ignore[] = 'INPIVOTX';
ignore[] = 'INPUTBIN';
ignore[] = 'INPUTBOX';
ignore[] = 'INPUTHEX';
ignore[] = 'INSERTAUTHORIZED';
ignore[] = 'INSERTED';
ignore[] = 'INSTALLEDVERSION',;
ignore[] = 'INSTANCE';
ignore[] = 'INSTDATE';
ignore[] = 'INSTRREV';
ignore[] = 'INTERCAL';
ignore[] = 'INTERDIT';
ignore[] = 'INTEREST';
ignore[] = 'INTERGER';
ignore[] = 'INTERNAL';
ignore[] = 'INTERNET';
ignore[] = 'INTERNIM';
ignore[] = 'INTERVAL';
ignore[] = 'INTLEVEL';
ignore[] = 'INVERSEQ';
ignore[] = 'INVOICED';
ignore[] = 'INVOICES';
ignore[] = 'IPIRANGA';
ignore[] = 'IPPOLITO';
ignore[] = 'IPSECKEY';
ignore[] = 'IPSUBNET';
ignore[] = 'IRIZARRY';
ignore[] = 'ISAACSON';
ignore[] = 'ISABELLA';
ignore[] = 'ISABELLE';
ignore[] = 'ISBNISSN';
ignore[] = 'ISCLOSED';
ignore[] = 'ISENBERG';
ignore[] = 'ISENHOUR';
ignore[] = 'ISEVENBY';
ignore[] = 'ISFINITE';
ignore[] = 'ISIKANAN';
ignore[] = 'ISLANDIA';
ignore[] = 'ISMINDEX';
ignore[] = 'ISNOTODD';
ignore[] = 'ISNUMBER';
ignore[] = 'ISO88591';
ignore[] = 'ISO88599';
ignore[] = 'ISOBJECT';
ignore[] = 'ISSIMPLE';
ignore[] = 'ISTANBUL';
ignore[] = 'ISWINDOW';
ignore[] = 'ITEMBODY';
ignore[] = 'ITEMDATA';
ignore[] = 'ITERATOR';
ignore[] = 'IXNLSKEY';
ignore[] = 'IXNUMKEY';
ignore[] = 'IZLESENE';
ignore[] = 'JA16SJIS';
ignore[] = 'JACOBSEN';
ignore[] = 'JACOBSON';
ignore[] = 'JACTIONS';
ignore[] = 'JAMALANG';
ignore[] = 'JAMERSON';
ignore[] = 'JAMIESON';
ignore[] = 'JAMLOKAL';
ignore[] = 'JANDREAU';
ignore[] = 'JANOUSEK';
ignore[] = 'JAPANESE';
ignore[] = 'JARNAGIN';
ignore[] = 'JARNIGAN';
ignore[] = 'JASINSKI';
ignore[] = 'JAUREGUI';
ignore[] = 'JAWORSKI';
ignore[] = 'JCURRENT';
ignore[] = 'JDEFAULT';
ignore[] = 'JDEFAULTLANGUAGE';
ignore[] = 'JDETAILS';
ignore[] = 'JDSLOCAL';
ignore[] = 'JEANETTE';
ignore[] = 'JEANNINE';
ignore[] = 'JEFFCOAT';
ignore[] = 'JEFFEREY';
ignore[] = 'JEFFORDS';
ignore[] = 'JEFFREYS';
ignore[] = 'JEFFRIES';
ignore[] = 'JELLISON';
ignore[] = 'JENABLED';
ignore[] = 'JENNETTE';
ignore[] = 'JENNIFER';
ignore[] = 'JENNINGS';
ignore[] = 'JEPPESEN';
ignore[] = 'JEREMIAH';
ignore[] = 'JERMAINE';
ignore[] = 'JERNIGAN';
ignore[] = 'JEXPIRED';
ignore[] = 'JFEATURE';
ignore[] = 'JIMERSON';
ignore[] = 'JNOTPUBLISHEDYET';
ignore[] = 'JOBCOUNT';
ignore[] = 'JOBTITLE';
ignore[] = 'JOHANNES';
ignore[] = 'JOHANSEN';
ignore[] = 'JOHANSON';
ignore[] = 'JOHNSTON';
ignore[] = 'JOINTURE';
ignore[] = 'JONATHAN';
ignore[] = 'JONATHON';
ignore[] = 'JORDANIA';
ignore[] = 'JORIYKUN';
ignore[] = 'JORIYOY1';
ignore[] = 'JORIYOY2';
ignore[] = 'JORIYYIL';
ignore[] = 'JOSEFINA';
ignore[] = 'JOYSTICK';
ignore[] = 'JPEGTRAN';
ignore[] = 'JPMORGAN';
ignore[] = 'JSON1234';
ignore[] = 'JTRASHED';
ignore[] = 'JUERGENS';
ignore[] = 'JULDIPOK';
ignore[] = 'JULIANNE';
ignore[] = 'JULIETTE';
ignore[] = 'JUMLAHDIKELOMPOK';
ignore[] = 'JVERSION';
ignore[] = 'KAGNGARANESPASYO';
ignore[] = 'KALENDER';
ignore[] = 'KAMINSKI';
ignore[] = 'KAMINSKY';
ignore[] = 'KAMMERER';
ignore[] = 'KAPPLAND';
ignore[] = 'KASRATAN';
ignore[] = 'KATAKANA';
ignore[] = 'KATALOOG';
ignore[] = 'KATHERYN';
ignore[] = 'KATHLEEN';
ignore[] = 'KATHRINE';
ignore[] = 'KAUFFMAN';
ignore[] = 'KAUFMANN';
ignore[] = 'KAVANAGH';
ignore[] = 'KAWAKAMI';
ignore[] = 'KAWAMOTO';
ignore[] = 'KAWAMURA';
ignore[] = 'KAYPIPUNCHAWSUTI';
ignore[] = 'KAYPIURA';
ignore[] = 'KCFINDER';
ignore[] = 'KEIAHOLA';
ignore[] = 'KEIAPULE';
ignore[] = 'KEITHLEY';
ignore[] = 'KELLEHER';
ignore[] = 'KELLIHER';
ignore[] = 'KELLISON';
ignore[] = 'KEMMERER';
ignore[] = 'KENDRICK';
ignore[] = 'KENNAMER';
ignore[] = 'KENNELLY';
ignore[] = 'KENNEMER';
ignore[] = 'KENNISON';
ignore[] = 'KERBEROS';
ignore[] = 'KERRIGAN';
ignore[] = 'KERSHNER';
ignore[] = 'KETTERER';
ignore[] = 'KEYBOARD';
ignore[] = 'KEYCHECK';
ignore[] = 'KEYLABEL';
ignore[] = 'KEYWORDS';
ignore[] = 'KIBIBYTE';
ignore[] = 'KILKENNY';
ignore[] = 'KILLGORE';
ignore[] = 'KILLOUGH';
ignore[] = 'KILOBYTE';
ignore[] = 'KILOELECTRONVOLT';
ignore[] = 'KILOFOOT';
ignore[] = 'KILOGRAM';
ignore[] = 'KILOPOND';
ignore[] = 'KILOVOLT';
ignore[] = 'KILOWATT';
ignore[] = 'KILOYARD';
ignore[] = 'KIMBERLY';
ignore[] = 'KIMBRELL';
ignore[] = 'KINGSLEY';
ignore[] = 'KINGSTON';
ignore[] = 'KINNISON';
ignore[] = 'KINSELLA';
ignore[] = 'KIRCHNER';
ignore[] = 'KIRCHOFF';
ignore[] = 'KIRIBATI';
ignore[] = 'KIRKLAND';
ignore[] = 'KIRKWOOD';
ignore[] = 'KITCHENS';
ignore[] = 'KITTRELL';
ignore[] = 'KLECKNER';
ignore[] = 'KLEINMAN';
ignore[] = 'KLIEBERT';
ignore[] = 'KLINGLER';
ignore[] = 'KLUESNER';
ignore[] = 'KMGTPEZY';
ignore[] = 'KNEELAND';
ignore[] = 'KNIGHTEN';
ignore[] = 'KNIGHTON';
ignore[] = 'KNOWLTON';
ignore[] = 'KNUCKLES';
ignore[] = 'KNUDTSON';
ignore[] = 'KOHALIKAJATEMPEL';
ignore[] = 'KOHANIMI';
ignore[] = 'KOHATANI';
ignore[] = 'KOHATASH';
ignore[] = 'KONFLIKT';
ignore[] = 'KORHONEN';
ignore[] = 'KORNEGAY';
ignore[] = 'KOSINSKI';
ignore[] = 'KOWALSKI';
ignore[] = 'KOWALSKY';
ignore[] = 'KPITYPES';
ignore[] = 'KRAWCZYK';
ignore[] = 'KREHBIEL';
ignore[] = 'KREITZER';
ignore[] = 'KREUTZER';
ignore[] = 'KRISTINA';
ignore[] = 'KRISTINE';
ignore[] = 'KUHLMANN';
ignore[] = 'KUJAWSKI';
ignore[] = 'KULUVAKUUNIMIGEN';
ignore[] = 'KUNANMUSUQCHASQA';
ignore[] = 'KUNANPACHAQILLPA';
ignore[] = 'KUNANPUNCHAWSUTI';
ignore[] = 'KUNANURA';
ignore[] = 'KURTOSIS';
ignore[] = 'LABOUNTY';
ignore[] = 'LABRADOR';
ignore[] = 'LABRIOLA';
ignore[] = 'LACHANCE';
ignore[] = 'LACONICA';
ignore[] = 'LACOURSE';
ignore[] = 'LADEZEIT';
ignore[] = 'LAFFERTY';
ignore[] = 'LAFLAMME';
ignore[] = 'LAFOREST';
ignore[] = 'LAFRANCE';
ignore[] = 'LAGRANGE';
ignore[] = 'LAGUERRE';
ignore[] = 'LAGUNTZA';
ignore[] = 'LAKEISHA';
ignore[] = 'LALALALA';
ignore[] = 'LAMANTIA';
ignore[] = 'LAMARCHE';
ignore[] = 'LAMBERTH';
ignore[] = 'LAMPHEAR';
ignore[] = 'LAMPHERE';
ignore[] = 'LAMPKINS';
ignore[] = 'LANDEROS';
ignore[] = 'LANDGRAF';
ignore[] = 'LANDRETH';
ignore[] = 'LANDWEHR';
ignore[] = 'LANGEDIT';
ignore[] = 'LANGEVIN';
ignore[] = 'LANGFORD';
ignore[] = 'LANGLAIS';
ignore[] = 'LANGLOIS';
ignore[] = 'LANGMAIL';
ignore[] = 'LANGNAME';
ignore[] = 'LANGSHOW';
ignore[] = 'LANGSTAR';
ignore[] = 'LANGSTON';
ignore[] = 'LANGTYPE';
ignore[] = 'LANGUAGE';
ignore[] = 'LANKFORD';
ignore[] = 'LANPHEAR';
ignore[] = 'LANSFORD';
ignore[] = 'LANTIGUA';
ignore[] = 'LAPIERRE';
ignore[] = 'LAPINSKI';
ignore[] = 'LAPLANTE';
ignore[] = 'LAPOINTE';
ignore[] = 'LARIMORE';
ignore[] = 'LAROCQUE';
ignore[] = 'LARRABEE';
ignore[] = 'LARRISON';
ignore[] = 'LASHONDA';
ignore[] = 'LASSETER';
ignore[] = 'LASSITER';
ignore[] = 'LASTBLOCKSBYTIME';
ignore[] = 'LASTCOME';
ignore[] = 'LASTDATE';
ignore[] = 'LASTNAME';
ignore[] = 'LASTNODE';
ignore[] = 'LASTSAVE';
ignore[] = 'LATIMORE';
ignore[] = 'LATITUDE';
ignore[] = 'LATTIMER';
ignore[] = 'LAUGHLIN';
ignore[] = 'LAUGHTER';
ignore[] = 'LAUREANO';
ignore[] = 'LAURENCE';
ignore[] = 'LAVALLEE';
ignore[] = 'LAVALLEY';
ignore[] = 'LAVALLIE';
ignore[] = 'LAVENDER';
ignore[] = 'LAVERGNE';
ignore[] = 'LAWRENCE';
ignore[] = 'LAYFIELD';
ignore[] = 'LEACHMAN';
ignore[] = 'LEAPYEAR';
ignore[] = 'LEATHERS';
ignore[] = 'LEBOWITZ';
ignore[] = 'LECLAIRE';
ignore[] = 'LECOMPTE';
ignore[] = 'LEDERMAN';
ignore[] = 'LEFEBVRE';
ignore[] = 'LEFTLINE';
ignore[] = 'LEFTWICH';
ignore[] = 'LEGENDAS';
ignore[] = 'LEGENDES';
ignore[] = 'LEGENDRE';
ignore[] = 'LEIGHTON';
ignore[] = 'LEISHMAN';
ignore[] = 'LEITCODE';
ignore[] = 'LEMANSKI';
ignore[] = 'LEMASTER';
ignore[] = 'LEMBRETE';
ignore[] = 'LENHARDT';
ignore[] = 'LEONARDO';
ignore[] = 'LEONETTI';
ignore[] = 'LEOPOLDO';
ignore[] = 'LESSTHAN';
ignore[] = 'LETENDRE';
ignore[] = 'LEVEILLE';
ignore[] = 'LEVENSON';
ignore[] = 'LEVERETT';
ignore[] = 'LEVERING';
ignore[] = 'LEVESQUE';
ignore[] = 'LEVINSON';
ignore[] = 'LEWAINOA';
ignore[] = 'LEWALLEN';
ignore[] = 'LEWELLEN';
ignore[] = 'LEWELLYN';
ignore[] = 'LHEUREUX';
ignore[] = 'LIBTELCO';
ignore[] = 'LICENCES';
ignore[] = 'LICENSES';
ignore[] = 'LIENANNE';
ignore[] = 'LIFESIZE';
ignore[] = 'LIGHTBOX';
ignore[] = 'LIGHTING';
ignore[] = 'LIGHTMPS';
ignore[] = 'LIGHTNER';
ignore[] = 'LIGHTSEY';
ignore[] = 'LIMIT123';
ignore[] = 'LIMONADE';
ignore[] = 'LINAGORA';
ignore[] = 'LINDAUER';
ignore[] = 'LINDBERG';
ignore[] = 'LINDEMAN';
ignore[] = 'LINDGREN';
ignore[] = 'LINDHOLM';
ignore[] = 'LINDSLEY';
ignore[] = 'LINESIZE';
ignore[] = 'LININGER';
ignore[] = 'LINKABLE';
ignore[] = 'LINKEDID';
ignore[] = 'LINKEDTO';
ignore[] = 'LINKTAGS';
ignore[] = 'LINKTYPE';
ignore[] = 'LINNEMAN';
ignore[] = 'LINQUIST';
ignore[] = 'LINSCOTT';
ignore[] = 'LINVILLE';
ignore[] = 'LIPINSKI';
ignore[] = 'LIPSCOMB';
ignore[] = 'LIPSTICK';
ignore[] = 'LISTENEE';
ignore[] = 'LISTENER';
ignore[] = 'LISTITEM';
ignore[] = 'LISTPATH';
ignore[] = 'LISTVIEW';
ignore[] = 'LISTVIEWSETTINGS';
ignore[] = 'LITTERAL';
ignore[] = 'LITTRELL';
ignore[] = 'LITUANIA';
ignore[] = 'LIVELEAK';
ignore[] = 'LIVERMAN';
ignore[] = 'LLCOOPER';
ignore[] = 'LNKALIGN';
ignore[] = 'LOCALDAY';
ignore[] = 'LOCALDOW';
ignore[] = 'LOCALITY';
ignore[] = 'LOCALMONTHABBREV';
ignore[] = 'LOCASCIO';
ignore[] = 'LOCATION';
ignore[] = 'LOCATORS';
ignore[] = 'LOCKFILE';
ignore[] = 'LOCKHART';
ignore[] = 'LOCKLEAR';
ignore[] = 'LOCKSIZE';
ignore[] = 'LOCKTYPE';
ignore[] = 'LOCKWOOD';
ignore[] = 'LOEFFLER';
ignore[] = 'LOGEMENT';
ignore[] = 'LOGGEDIN';
ignore[] = 'LOGLEVEL';
ignore[] = 'LOISELLE';
ignore[] = 'LOJALIGO';
ignore[] = 'LOKAHORO';
ignore[] = 'LOKAJARO';
ignore[] = 'LOKALDAG';
ignore[] = 'LOKALGRE';
ignore[] = 'LOKALNIDANTJEDNA';
ignore[] = 'LOKALNIMJESECGEN';
ignore[] = 'LOKALNIMJESECIME';
ignore[] = 'LOKALNIMJESECROD';
ignore[] = 'LOKALNIMJESECSKR';
ignore[] = 'LOKALTID';
ignore[] = 'LOKALUKE';
ignore[] = 'LOKALURL';
ignore[] = 'LOKAMONATNOMOGEN';
ignore[] = 'LOKAMONATNOMOMAL';
ignore[] = 'LOKATAGO';
ignore[] = 'LOLLIPOP';
ignore[] = 'LOMBARDI';
ignore[] = 'LOMBARDO';
ignore[] = 'LOMONACO';
ignore[] = 'LONERGAN';
ignore[] = 'LONGACRE';
ignore[] = 'LONGBLOB';
ignore[] = 'LONGCARD';
ignore[] = 'LONGCHAR';
ignore[] = 'LONGLONG';
ignore[] = 'LONGMIRE';
ignore[] = 'LONGORIA';
ignore[] = 'LONGREAL';
ignore[] = 'LONGTEXT';
ignore[] = 'LONGWELL';
ignore[] = 'LOOKDOWN';
ignore[] = 'LOOPCNT2';
ignore[] = 'LOOPHOLE';
ignore[] = 'LOPRESTI';
ignore[] = 'LORANGER';
ignore[] = 'LORENZEN';
ignore[] = 'LORRAINE';
ignore[] = 'LOSTCARD';
ignore[] = 'LOUGHLIN';
ignore[] = 'LOUGHMAN';
ignore[] = 'LOUGHRAN';
ignore[] = 'LOUVIERE';
ignore[] = 'LOVELACE';
ignore[] = 'LOVELADY';
ignore[] = 'LOVELAND';
ignore[] = 'LOVELESS';
ignore[] = 'LOWLIGHT';
ignore[] = 'LOWRANCE';
ignore[] = 'LSLSLOPE';
ignore[] = 'LUCCHESI';
ignore[] = 'LUEBBERT';
ignore[] = 'LUMPKINS';
ignore[] = 'LUNACURENTAABREV';
ignore[] = 'LUNDBECK';
ignore[] = 'LUNDBERG';
ignore[] = 'LUNDGREN';
ignore[] = 'LUNSFORD';
ignore[] = 'LUTTRELL';
ignore[] = 'LVARCHAR';
ignore[] = 'LYBARGER';
ignore[] = 'LYNNETTE';
ignore[] = 'MACALUSO';
ignore[] = 'MACAULAY';
ignore[] = 'MACCENTRALEUROPE';
ignore[] = 'MACGREEK';
ignore[] = 'MACHTYPE';
ignore[] = 'MACOMBER';
ignore[] = 'MACROMAN';
ignore[] = 'MADDESAYFASIADIU';
ignore[] = 'MADDOCKS';
ignore[] = 'MADELINE';
ignore[] = 'MADEWELL';
ignore[] = 'MADRIGAL';
ignore[] = 'MAGALLON';
ignore[] = 'MAGFIELD';
ignore[] = 'MAGINNIS';
ignore[] = 'MAGIXCMS';
ignore[] = 'MAGLIONE';
ignore[] = 'MAGMDSTT';
ignore[] = 'MAGNUSON';
ignore[] = 'MAGRUDER';
ignore[] = 'MAHAFFEY';
ignore[] = 'MAILDATE';
ignore[] = 'MAILINGS';
ignore[] = 'MAILLOUX';
ignore[] = 'MAILPATH';
ignore[] = 'MAINCURR';
ignore[] = 'MAINMENU';
ignore[] = 'MAINTTUD';
ignore[] = 'MAIORANO';
ignore[] = 'MAISONET';
ignore[] = 'MAITLAND';
ignore[] = 'MAJEWSKI';
ignore[] = 'MAKEDATE';
ignore[] = 'MAKETIME';
ignore[] = 'MAKOWSKI';
ignore[] = 'MALAYSIA';
ignore[] = 'MALDIVES';
ignore[] = 'MALLETTE';
ignore[] = 'MALMBERG';
ignore[] = 'MALVEAUX';
ignore[] = 'MANCILLA';
ignore[] = 'MANFREDI';
ignore[] = 'MANIFEST';
ignore[] = 'MANIFEST';
ignore[] = 'MANNINGS';
ignore[] = 'MANQUANT';
ignore[] = 'MANRIQUE';
ignore[] = 'MANTOOTH';
ignore[] = 'MANUALLY';
ignore[] = 'MANZELLA';
ignore[] = 'MAPENTRY';
ignore[] = 'MARATHON';
ignore[] = 'MARCADEHORALOCAL';
ignore[] = 'MARCADIR';
ignore[] = 'MARCELLA';
ignore[] = 'MARCELLO';
ignore[] = 'MARCHAND';
ignore[] = 'MARCHANT';
ignore[] = 'MARCHESE';
ignore[] = 'MARCIANO';
ignore[] = 'MARCNAME';
ignore[] = 'MARCOTTE';
ignore[] = 'MARCTYPE';
ignore[] = 'MARCUCCI';
ignore[] = 'MARGARET';
ignore[] = 'MARGOLIS';
ignore[] = 'MARIANNE';
ignore[] = 'MARICELA';
ignore[] = 'MARIETTA';
ignore[] = 'MARIOTTI';
ignore[] = 'MARISCAL';
ignore[] = 'MARJORIE';
ignore[] = 'MARKLAND';
ignore[] = 'MARQUART';
ignore[] = 'MARQUITA';
ignore[] = 'MARRIOTT';
ignore[] = 'MARSHALL';
ignore[] = 'MARTELLI';
ignore[] = 'MARTELLO';
ignore[] = 'MARTINEK';
ignore[] = 'MARTINES';
ignore[] = 'MARTINEZ';
ignore[] = 'MARTUCCI';
ignore[] = 'MARYANNE';
ignore[] = 'MASCORRO';
ignore[] = 'MASERATI';
ignore[] = 'MASHBURN';
ignore[] = 'MASKMOVQ';
ignore[] = 'MASSMAIL';
ignore[] = 'MATCHALL';
ignore[] = 'MATCHEND';
ignore[] = 'MATCHETT';
ignore[] = 'MATCHING';
ignore[] = 'MATCHINTERACTION';
ignore[] = 'MATHENEY';
ignore[] = 'MATHERLY';
ignore[] = 'MATHERNE';
ignore[] = 'MATHESON';
ignore[] = 'MATHISON';
ignore[] = 'MATRANGA';
ignore[] = 'MATTESON';
ignore[] = 'MATTHEWS';
ignore[] = 'MATTHIAS';
ignore[] = 'MATTHIES';
ignore[] = 'MATTISON';
ignore[] = 'MATTOCKS';
ignore[] = 'MAULTSBY';
ignore[] = 'MAURICIO';
ignore[] = 'MAXCHARS';
ignore[] = 'MAXCOUNT';
ignore[] = 'MAXDOWNLOADLIMIT';
ignore[] = 'MAXFIELD';
ignore[] = 'MAXFRIENDDISPLAY';
ignore[] = 'MAXQUOTA';
ignore[] = 'MAXSCORE';
ignore[] = 'MAXTRACE';
ignore[] = 'MAXVALUE';
ignore[] = 'MAXWIDTH';
ignore[] = 'MAYBERRY';
ignore[] = 'MAYFIELD';
ignore[] = 'MAYSONET';
ignore[] = 'MAYVILLE';
ignore[] = 'MAZZELLA';
ignore[] = 'MBREQUAL';
ignore[] = 'MBSTRING';
ignore[] = 'MCALPINE';
ignore[] = 'MCANALLY';
ignore[] = 'MCANDREW';
ignore[] = 'MCANULTY';
ignore[] = 'MCARTHUR';
ignore[] = 'MCBRAYER';
ignore[] = 'MCBURNEY';
ignore[] = 'MCCALLUM';
ignore[] = 'MCCAMMON';
ignore[] = 'MCCARDLE';
ignore[] = 'MCCARLEY';
ignore[] = 'MCCARRON';
ignore[] = 'MCCARTER';
ignore[] = 'MCCARTHY';
ignore[] = 'MCCARVER';
ignore[] = 'MCCASLIN';
ignore[] = 'MCCAULEY';
ignore[] = 'MCCLAINE';
ignore[] = 'MCCLARAN';
ignore[] = 'MCCLEARY';
ignore[] = 'MCCLEERY';
ignore[] = 'MCCLUNEY';
ignore[] = 'MCCLUSKY';
ignore[] = 'MCCOLLOM';
ignore[] = 'MCCOLLUM';
ignore[] = 'MCCONKEY';
ignore[] = 'MCCORKLE';
ignore[] = 'MCCRANEY';
ignore[] = 'MCCRANIE';
ignore[] = 'MCCREADY';
ignore[] = 'MCCREARY';
ignore[] = 'MCCREERY';
ignore[] = 'MCCUBBIN';
ignore[] = 'MCCULLAR';
ignore[] = 'MCCULLEN';
ignore[] = 'MCCULLEY';
ignore[] = 'MCCULLUM';
ignore[] = 'MCCUMBER';
ignore[] = 'MCCURLEY';
ignore[] = 'MCCUSKER';
ignore[] = 'MCDANIEL';
ignore[] = 'MCDEVITT';
ignore[] = 'MCDONAGH';
ignore[] = 'MCDONALD';
ignore[] = 'MCDONELL';
ignore[] = 'MCDORMAN';
ignore[] = 'MCDOUGAL';
ignore[] = 'MCDOUGLE';
ignore[] = 'MCDOWELL';
ignore[] = 'MCDUFFIE';
ignore[] = 'MCEACHIN';
ignore[] = 'MCELRATH';
ignore[] = 'MCELVAIN';
ignore[] = 'MCELVEEN';
ignore[] = 'MCELWAIN';
ignore[] = 'MCENTIRE';
ignore[] = 'MCFADDEN';
ignore[] = 'MCFADDIN';
ignore[] = 'MCFARLIN';
ignore[] = 'MCFARREN';
ignore[] = 'MCFERREN';
ignore[] = 'MCGARITY';
ignore[] = 'MCGARVEY';
ignore[] = 'MCGEEHAN';
ignore[] = 'MCGEORGE';
ignore[] = 'MCGINLEY';
ignore[] = 'MCGINNIS';
ignore[] = 'MCGOVERN';
ignore[] = 'MCGREEVY';
ignore[] = 'MCGREGOR';
ignore[] = 'MCGRUDER';
ignore[] = 'MCGUFFIN';
ignore[] = 'MCGUIGAN';
ignore[] = 'MCILVAIN';
ignore[] = 'MCILWAIN';
ignore[] = 'MCINTIRE';
ignore[] = 'MCINTOSH';
ignore[] = 'MCINTYRE';
ignore[] = 'MCJUNKIN';
ignore[] = 'MCKEEHAN';
ignore[] = 'MCKEEVER';
ignore[] = 'MCKELLAR';
ignore[] = 'MCKELVEY';
ignore[] = 'MCKENNEY';
ignore[] = 'MCKENZIE';
ignore[] = 'MCKERNAN';
ignore[] = 'MCKIBBEN';
ignore[] = 'MCKILLIP';
ignore[] = 'MCKINLEY';
ignore[] = 'MCKINNEY';
ignore[] = 'MCKINNIE';
ignore[] = 'MCKINNIS';
ignore[] = 'MCKINNON';
ignore[] = 'MCKINSEY';
ignore[] = 'MCKINZIE';
ignore[] = 'MCKNIGHT';
ignore[] = 'MCLAURIN';
ignore[] = 'MCLELLAN';
ignore[] = 'MCLEMORE';
ignore[] = 'MCLENDON';
ignore[] = 'MCLENNAN';
ignore[] = 'MCMARTIN';
ignore[] = 'MCMASTER';
ignore[] = 'MCMILLAN';
ignore[] = 'MCMILLEN';
ignore[] = 'MCMILLER';
ignore[] = 'MCMILLIN';
ignore[] = 'MCMILLON';
ignore[] = 'MCMORRIS';
ignore[] = 'MCMORROW';
ignore[] = 'MCMULLAN';
ignore[] = 'MCMULLEN';
ignore[] = 'MCMULLIN';
ignore[] = 'MCMURRAY';
ignore[] = 'MCMURTRY';
ignore[] = 'MCNAMARA';
ignore[] = 'MCNEELEY';
ignore[] = 'MCNEILLY';
ignore[] = 'MCNERNEY';
ignore[] = 'MCPETERS';
ignore[] = 'MCQUEARY';
ignore[] = 'MCSHERRY';
ignore[] = 'MCUNIQUE';
ignore[] = 'MCVICKER';
ignore[] = 'MEBIBYTE';
ignore[] = 'MECHLING';
ignore[] = 'MEDEIROS';
ignore[] = 'MEDELLIN';
ignore[] = 'MEDIABOX';
ignore[] = 'MEDIANIF';
ignore[] = 'MEDICARE';
ignore[] = 'MEERVOUD';
ignore[] = 'MEGABYTE';
ignore[] = 'MEGAELECTRONVOLT';
ignore[] = 'MEGAGRAM';
ignore[] = 'MEGALERG';
ignore[] = 'MEGAPOND';
ignore[] = 'MEGAWATT';
ignore[] = 'MEHAFFEY';
ignore[] = 'MEISSNER';
ignore[] = 'MEJORADO';
ignore[] = 'MELANCON';
ignore[] = 'MELANSON';
ignore[] = 'MELCHIOR';
ignore[] = 'MELENDEZ';
ignore[] = 'MELISTAG';
ignore[] = 'MELVILLE';
ignore[] = 'MEMCACHE';
ignore[] = 'MEMORIAL';
ignore[] = 'MEMORIES';
ignore[] = 'MENCHACA';
ignore[] = 'MENDIETA';
ignore[] = 'MENDIOLA';
ignore[] = 'MENDIVIL';
ignore[] = 'MENDONCA';
ignore[] = 'MENENDEZ';
ignore[] = 'MENESTYS';
ignore[] = 'MENJIVAR';
ignore[] = 'MENSAGEM';
ignore[] = 'MENUITEM';
ignore[] = 'MENUITEMSELECTED';
ignore[] = 'MENUTEXT';
ignore[] = 'MENUTREE';
ignore[] = 'MERCEDES';
ignore[] = 'MERCHANT';
ignore[] = 'MERCURIO';
ignore[] = 'MEREDITH';
ignore[] = 'MERIDETH';
ignore[] = 'MERIDIAN';
ignore[] = 'MERRIMAN';
ignore[] = 'MERRYMAN';
ignore[] = 'MESATUAL';
ignore[] = 'MESELOCALEABBREV';
ignore[] = 'MESLOCAL';
ignore[] = 'MESLOCALCOMPLETO';
ignore[] = 'MESLOCALGENITIVO';
ignore[] = 'MESSAGE2';
ignore[] = 'MESSAGES';
ignore[] = 'MESSAGIU';
ignore[] = 'MESSATGE';
ignore[] = 'MESSERLY';
ignore[] = 'METACAFE';
ignore[] = 'METADATA';
ignore[] = 'METADATANOTFOUND';
ignore[] = 'METATAGS';
ignore[] = 'METCALFE';
ignore[] = 'METIVIER';
ignore[] = 'MEVCUTAY';
ignore[] = 'MEYERSON';
ignore[] = 'MICHAELA';
ignore[] = 'MICHAELS';
ignore[] = 'MICHALAK';
ignore[] = 'MICHALEC';
ignore[] = 'MICHALIK';
ignore[] = 'MICHEALS';
ignore[] = 'MICHELLE';
ignore[] = 'MICROBAR';
ignore[] = 'MIDDAUGH';
ignore[] = 'MIDGETTE';
ignore[] = 'MIDRANGE';
ignore[] = 'MIGLIORE';
ignore[] = 'MIKESELL';
ignore[] = 'MILAGROS';
ignore[] = 'MILBOURN';
ignore[] = 'MILEWSKI';
ignore[] = 'MILLETTE';
ignore[] = 'MILLIARE';
ignore[] = 'MILLIBAR';
ignore[] = 'MILLICAN';
ignore[] = 'MILLIGAL';
ignore[] = 'MILLIGAN';
ignore[] = 'MILLIKAN';
ignore[] = 'MILLIKEN';
ignore[] = 'MILLIKIN';
ignore[] = 'MILLIMAN';
ignore[] = 'MILLINER';
ignore[] = 'MILLIOHM';
ignore[] = 'MILLIRON';
ignore[] = 'MILLSAPS';
ignore[] = 'MILLWOOD';
ignore[] = 'MILSTEAD';
ignore[] = 'MIMETYPE';
ignore[] = 'MINIDISC';
ignore[] = 'MINIFIED';
ignore[] = 'MINIMIZEDNOFOCUS';
ignore[] = 'MINISITE';
ignore[] = 'MINJARES';
ignore[] = 'MINUTELY';
ignore[] = 'MINUTES2';
ignore[] = 'MINVALUE';
ignore[] = 'MINVERSE';
ignore[] = 'MINWIDTH';
ignore[] = 'MIRAGLIA';
ignore[] = 'MISSATGE';
ignore[] = 'MITCHELL';
ignore[] = 'MIXCLOUD';
ignore[] = 'MIYAMOTO';
ignore[] = 'MJESNIMJESECKRAT';
ignore[] = 'MKMATRIX';
ignore[] = 'MLSLABEL';
ignore[] = 'MMDDYYHHMMSSAMPM';
ignore[] = 'MMDDYYYY';
ignore[] = 'MMMDYYYY';
ignore[] = 'MMMMMMMM';
ignore[] = 'MNEMONIC';
ignore[] = 'MNETUSER';
ignore[] = 'MODELDIR';
ignore[] = 'MODELESS';
ignore[] = 'MODERATE';
ignore[] = 'MODIFICA';
ignore[] = 'MODIFIED';
ignore[] = 'MODIFIER';
ignore[] = 'MODIFIES';
ignore[] = 'MODRIGHT';
ignore[] = 'MOGENSEN';
ignore[] = 'MOHAMMAD';
ignore[] = 'MOHAMMED';
ignore[] = 'MOHCLASS';
ignore[] = 'MOLDOVIA';
ignore[] = 'MOLINARI';
ignore[] = 'MOLINARO';
ignore[] = 'MOLYNEUX';
ignore[] = 'MONAGHAN';
ignore[] = 'MONARREZ';
ignore[] = 'MONCRIEF';
ignore[] = 'MONGILLO';
ignore[] = 'MONGOLIA';
ignore[] = 'MONITORS';
ignore[] = 'MONMOUTH';
ignore[] = 'MONORAIL';
ignore[] = 'MONTAGNA';
ignore[] = 'MONTAGUE';
ignore[] = 'MONTALTO';
ignore[] = 'MONTALVO';
ignore[] = 'MONTANEZ';
ignore[] = 'MONTEIRO';
ignore[] = 'MONTEITH';
ignore[] = 'MONTFORD';
ignore[] = 'MONTHNOW';
ignore[] = 'MOORHEAD';
ignore[] = 'MOOTOOLS';
ignore[] = 'MORABITO';
ignore[] = 'MOREHEAD';
ignore[] = 'MORELAND';
ignore[] = 'MORELOCK';
ignore[] = 'MORGANTI';
ignore[] = 'MORIARTY';
ignore[] = 'MORRISEY';
ignore[] = 'MORRISON';
ignore[] = 'MORTGAGE';
ignore[] = 'MORTIMER';
ignore[] = 'MOSQUEDA';
ignore[] = 'MOSQUERA';
ignore[] = 'MOTOROLA';
ignore[] = 'MOTORWAY';
ignore[] = 'MOULTRIE';
ignore[] = 'MOUNTAIN';
ignore[] = 'MOUSEPTR';
ignore[] = 'MOUSSEAU';
ignore[] = 'MOVEFILE';
ignore[] = 'MOVISTAR';
ignore[] = 'MOVMSKPS';
ignore[] = 'MOYNIHAN';
ignore[] = 'MSFORMAT';
ignore[] = 'MSGBOXRTLREADING';
ignore[] = 'MSGCLASS';
ignore[] = 'MSGLEVEL';
ignore[] = 'MSGSUBID';
ignore[] = 'MTEXPORT';
ignore[] = 'MUHAMMAD';
ignore[] = 'MUIRHEAD';
ignore[] = 'MULLANEY';
ignore[] = 'MULLENAX';
ignore[] = 'MULLENIX';
ignore[] = 'MULLICAN';
ignore[] = 'MULLIGAN';
ignore[] = 'MULLIKIN';
ignore[] = 'MULLINAX';
ignore[] = 'MULLINGS';
ignore[] = 'MULLINIX';
ignore[] = 'MULTIPLE';
ignore[] = 'MULTIPLEOPERATOR';
ignore[] = 'MULTIPLY';
ignore[] = 'MULTISET';
ignore[] = 'MULVANEY';
ignore[] = 'MURAKAMI';
ignore[] = 'MURAWSKI';
ignore[] = 'MURPHREE';
ignore[] = 'MURRIETA';
ignore[] = 'MUSGRAVE';
ignore[] = 'MUSGROVE';
ignore[] = 'MUSHROOM';
ignore[] = 'MUSUQCHASQAKILLA';
ignore[] = 'MUSUQCHASQARURAQ';
ignore[] = 'MUTATION';
ignore[] = 'MUTCHLER';
ignore[] = 'MYANAMAR';
ignore[] = 'MYMETHOD';
ignore[] = 'MYMODULE';
ignore[] = 'MYPHPNET';
ignore[] = 'MYRIGHTS';
ignore[] = 'MYSERVER';
ignore[] = 'MYSQL323';
ignore[] = 'MYSQLERR';
ignore[] = 'NAAMRUIMTENUMMER';
ignore[] = 'NAAMRUUM';
ignore[] = 'NAAMRUUMTENUMMER';
ignore[] = 'NAKAGAWA';
ignore[] = 'NAKAMURA';
ignore[] = 'NAKAYAMA';
ignore[] = 'NAMADASARHALAMAN';
ignore[] = 'NAMAHALAMANDASAR';
ignore[] = 'NAMAHALAMANUTAMA';
ignore[] = 'NAMBUKIN';
ignore[] = 'NAMBULOK';
ignore[] = 'NAMELINK';
ignore[] = 'NAMENSRAUMNUMMER';
ignore[] = 'NAMHALOK';
ignore[] = 'NAMNEROM';
ignore[] = 'NAMNRYMD';
ignore[] = 'NAMUMANE';
ignore[] = 'NANOGRAM';
ignore[] = 'NANOWATT';
ignore[] = 'NAPOLEON';
ignore[] = 'NARCISSE';
ignore[] = 'NATIONAL';
ignore[] = 'NATURALN';
ignore[] = 'NAUGHTON';
ignore[] = 'NAVNEROM';
ignore[] = 'NAWROCKI';
ignore[] = 'NAZWAPRZESTRZENI';
ignore[] = 'NEGATIVE';
ignore[] = 'NELLIGAN';
ignore[] = 'NENPREKI';
ignore[] = 'NETSCAPE';
ignore[] = 'NETWORKS';
ignore[] = 'NEUBAUER';
ignore[] = 'NEW12345';
ignore[] = 'NEWBERRY';
ignore[] = 'NEWCOMBE';
ignore[] = 'NEWCOMER';
ignore[] = 'NEWEMAIL';
ignore[] = 'NEWHOUSE';
ignore[] = 'NEWQUIST';
ignore[] = 'NEWRATEE';
ignore[] = 'NEWVALUE';
ignore[] = 'NEXTPAGE';
ignore[] = 'NEXTSTEP';
ignore[] = 'NGARANLOKALALDAW';
ignore[] = 'NGARANLOKALBULAN';
ignore[] = 'NICASTRO';
ignore[] = 'NICENAME';
ignore[] = 'NICHOLAS';
ignore[] = 'NICHOLES';
ignore[] = 'NICHOLLS';
ignore[] = 'NICKNAME';
ignore[] = 'NICKOLAS';
ignore[] = 'NIEMEYER';
ignore[] = 'NIFERYDEFNYDDWYR';
ignore[] = 'NIFERYGOLYGIADAU';
ignore[] = 'NIFERYRERTHYGLAU';
ignore[] = 'NIMERUUM';
ignore[] = 'NIMERUUMITANIMI1';
ignore[] = 'NIVERARESTRENNOW';
ignore[] = 'NMTOKENS';
ignore[] = 'NOACCESS';
ignore[] = 'NOACUOPT';
ignore[] = 'NOADDRSV';
ignore[] = 'NOADDSYN';
ignore[] = 'NOANSWER';
ignore[] = 'NOASSIGN';
ignore[] = 'NOBINLIT';
ignore[] = 'NOBS2000';
ignore[] = 'NOCALLFH';
ignore[] = 'NOCANCEL';
ignore[] = 'NOCOBIDY';
ignore[] = 'NOCOMS85';
ignore[] = 'NODELETE';
ignore[] = 'NODENAME';
ignore[] = 'NODETAIL';
ignore[] = 'NODOMAIN';
ignore[] = 'NODOTNET';
ignore[] = 'NOEXPAND';
ignore[] = 'NOFCDCAT';
ignore[] = 'NOFCDREG';
ignore[] = 'NOFIXOPT';
ignore[] = 'NOFLAGAS';
ignore[] = 'NOFOLLOW';
ignore[] = 'NOHOSTARITHMETIC';
ignore[] = 'NOHOSTFD';
ignore[] = 'NOHOSTRW';
ignore[] = 'NOILICON';
ignore[] = 'NOILMAIN';
ignore[] = 'NOILSMARTLINKAGE';
ignore[] = 'NOIOCONV';
ignore[] = 'NOMBASADEPAGINAX';
ignore[] = 'NOMBREDANSGROUPE';
ignore[] = 'NOMBRODEDOSIEROJ';
ignore[] = 'NOMBRODEREDAKTOJ';
ignore[] = 'NOMEDAPAGINABASE';
ignore[] = 'NOMEDASUBPAGINAC';
ignore[] = 'NOMEGIORNOLOCALE';
ignore[] = 'NOMEMESECORRENTE';
ignore[] = 'NOMESITO';
ignore[] = 'NOMESOTTOPAGINAE';
ignore[] = 'NOMFSYNC';
ignore[] = 'NOMGENMESCORRENT';
ignore[] = 'NOMGENMOISACTUEL';
ignore[] = 'NOMODSEQ';
ignore[] = 'NOMPAGEX';
ignore[] = 'NOMPAGINAARTICLE';
ignore[] = 'NOMPAGINACOMPLET';
ignore[] = 'NOMSPACO';
ignore[] = 'NONATIVE';
ignore[] = 'NONBLANK';
ignore[] = 'NONFOUND';
ignore[] = 'NOOOCTRL';
ignore[] = 'NOPASSWD';
ignore[] = 'NORBERTO';
ignore[] = 'NORCROSS';
ignore[] = 'NORDBERG';
ignore[] = 'NOREMOVE';
ignore[] = 'NORESCAN';
ignore[] = 'NORESIZE';
ignore[] = 'NORFLEET';
ignore[] = 'NORMDIST';
ignore[] = 'NORMSINV';
ignore[] = 'NORTHERN';
ignore[] = 'NORTHROP';
ignore[] = 'NORTHRUP';
ignore[] = 'NOSCRIPT';
ignore[] = 'NOSEARCH';
ignore[] = 'NOSELECT';
ignore[] = 'NOSEQCHK';
ignore[] = 'NOSERIAL';
ignore[] = 'NOSPZERO';
ignore[] = 'NOSTDERR';
ignore[] = 'NOTATION';
ignore[] = 'NOTEBOOK';
ignore[] = 'NOTEMPTY';
ignore[] = 'NOTEQUAL';
ignore[] = 'NOTETEXT';
ignore[] = 'NOTFOUND';
ignore[] = 'NOTIFIED';
ignore[] = 'NOTSAVED';
ignore[] = 'NOUPDATE';
ignore[] = 'NOVEMBER';
ignore[] = 'NPERPASS';
ignore[] = 'NSXMLDTD';
ignore[] = 'NUCKOLLS';
ignore[] = 'NULLABLE';
ignore[] = 'NUMAPPEL';
ignore[] = 'NUMARLUNACURENTA';
ignore[] = 'NUMARZIUACURENTA';
ignore[] = 'NUMBEROFARTICLES';
ignore[] = 'NUMEDEBAZAPAGINA';
ignore[] = 'NUMERODEARCHIVOS';
ignore[] = 'NUMERODEARQUIVOS';
ignore[] = 'NUMERODENOMSPACO';
ignore[] = 'NUMERODEUSUARIOS';
ignore[] = 'NUMESITE';
ignore[] = 'NUMINTERIORRINGS';
ignore[] = 'NUMLINKS';
ignore[] = 'NUMPAGES';
ignore[] = 'NUMPARTS';
ignore[] = 'NUMRIREDAKTIMEVE';
ignore[] = 'NUMTEXOF';
ignore[] = 'NUMTRANS';
ignore[] = 'NUNAHORO';
ignore[] = 'NUNAJARO';
ignore[] = 'NUNAMONATNOMOGEN';
ignore[] = 'NUNAMONATNOMOMAL';
ignore[] = 'NUNATAGO';
ignore[] = 'NUNNALLY';
ignore[] = 'NUSSBAUM';
ignore[] = 'NUVARANDEVERSION';
ignore[] = 'NVARCHAR';
ignore[] = 'NXDOMAIN';
ignore[] = 'OBJECTID';
ignore[] = 'OBJECTIDENTIFIER';
ignore[] = 'OBJMEASUREGRTHAN';
ignore[] = 'OBJMEASURELSTHAN';
ignore[] = 'OBSERVER';
ignore[] = 'OBSOLETE';
ignore[] = 'OCEGUERA';
ignore[] = 'OCIROWID';
ignore[] = 'OCONNELL';
ignore[] = 'OCSESSID';
ignore[] = 'OCTTOBIN';
ignore[] = 'OCTTODEC';
ignore[] = 'OCTTOHEX';
ignore[] = 'ODBCALLOCCONNECT';
ignore[] = 'ODBCBINDCOLTOBIT';
ignore[] = 'ODBCCOLATTRIBUTE';
ignore[] = 'ODBCCOLPRECISION';
ignore[] = 'ODBCCOLTABLENAME';
ignore[] = 'ODBCCOLUMNSCOUNT';
ignore[] = 'ODBCCOLUPDATABLE';
ignore[] = 'ODBCCONFIGDRIVER';
ignore[] = 'ODBCDELETERECORD';
ignore[] = 'ODBCDRIVERSCOUNT';
ignore[] = 'ODBCGETASYNCMODE';
ignore[] = 'ODBCGETDESCFIELD';
ignore[] = 'ODBCGETDIAGFIELD';
ignore[] = 'ODBCGETDRIVERVER';
ignore[] = 'ODBCGETDROPTABLE';
ignore[] = 'ODBCGETERRORINFO';
ignore[] = 'ODBCGETFILEUSAGE';
ignore[] = 'ODBCGETFUNCTIONS';
ignore[] = 'ODBCGETIMPPARAMDESCFIELDNULLABLE';
ignore[] = 'ODBCGETINTEGRITY';
ignore[] = 'ODBCGETQUIETMODE';
ignore[] = 'ODBCGETSQL92FOREIGNKEYDELETERULE';
ignore[] = 'ODBCGETSQL92FOREIGNKEYUPDATERULE';
ignore[] = 'ODBCGETTABLETERM';
ignore[] = 'ODBCGETTRACEFILE';
ignore[] = 'ODBCMOVE';
ignore[] = 'ODBCMOVEPREVIOUS';
ignore[] = 'ODBCREMOVEDRIVER';
ignore[] = 'ODBCROLLBACKTRAN';
ignore[] = 'ODBCSETDESCFIELD';
ignore[] = 'ODBCSETQUIETMODE';
ignore[] = 'ODBCSETTRACEFILE';
ignore[] = 'ODBCUNLOCKRECORD';
ignore[] = 'ODBCUPDATERECORD';
ignore[] = 'ODBCWRITEFILEDSN';
ignore[] = 'ODEGAARD';
ignore[] = 'ODONNELL';
ignore[] = 'ODOSLIDE';
ignore[] = 'OFARRELL';
ignore[] = 'OFFLINER';
ignore[] = 'OGLETREE';
ignore[] = 'OKCANCEL';
ignore[] = 'OLDFIELD';
ignore[] = 'OLDINDEX';
ignore[] = 'OLDPHONE';
ignore[] = 'OLDVALUE';
ignore[] = 'OLDWIDTH';
ignore[] = 'OLIPHANT';
ignore[] = 'OLIVARES';
ignore[] = 'OLIVAREZ';
ignore[] = 'OLIVEIRA';
ignore[] = 'OLIVERAS';
ignore[] = 'OLIVERIO';
ignore[] = 'OLIVEROS';
ignore[] = 'OLIVIERI';
ignore[] = 'OLMSTEAD';
ignore[] = 'OMGVMCID';
ignore[] = 'ONCEONLY';
ignore[] = 'ONCHANGE';
ignore[] = 'ONDERWARPRUUMTEE';
ignore[] = 'ONDERWERPRUIMTEE';
ignore[] = 'ONELEVEL';
ignore[] = 'ONFORMAT';
ignore[] = 'ONSOURCE';
ignore[] = 'ONTOWIKI';
ignore[] = 'OPENCONF';
ignore[] = 'OPENLDAP';
ignore[] = 'OPERATOR';
ignore[] = 'OPPERMAN';
ignore[] = 'OPTDEREF';
ignore[] = 'OPTGROUP';
ignore[] = 'OPTIMIZE';
ignore[] = 'OPTIONAL';
ignore[] = 'ORDERING';
ignore[] = 'ORELLANA';
ignore[] = 'ORGANISM';
ignore[] = 'ORIGINAL';
ignore[] = 'ORLOWSKI';
ignore[] = 'ORMISTON';
ignore[] = 'ORNDORFF';
ignore[] = 'ORNELLAS';
ignore[] = 'OSBOURNE';
ignore[] = 'OSHIELDS';
ignore[] = 'OSTERMAN';
ignore[] = 'OTTERSON';
ignore[] = 'OTTINGER';
ignore[] = 'OUTBROADCASTPKTS';
ignore[] = 'OUTGOING';
ignore[] = 'OUTMULTICASTPKTS';
ignore[] = 'OUTPROPS';
ignore[] = 'OVERBECK';
ignore[] = 'OVERCASH';
ignore[] = 'OVERDUED';
ignore[] = 'OVERFLOW';
ignore[] = 'OVERHOLT';
ignore[] = 'OVERLAID';
ignore[] = 'OVERLAPS';
ignore[] = 'OVERLINE';
ignore[] = 'OVERLOCK';
ignore[] = 'OVERRIDE';
ignore[] = 'OVERSION';
ignore[] = 'OVERTURF';
ignore[] = 'OVERVIEW';
ignore[] = 'OXENDINE';
ignore[] = 'P10Y2M3D';
ignore[] = 'P10Y2M3DT16H5M6S';
ignore[] = 'P4PASSWD';
ignore[] = 'PACKAGES';
ignore[] = 'PACKSSDW';
ignore[] = 'PACKSSWB';
ignore[] = 'PACKUSWB';
ignore[] = 'PADALLIQ';
ignore[] = 'PADICHUQ';
ignore[] = 'PADLEMIN';
ignore[] = 'PADLLUQI';
ignore[] = 'PADRIGHT';
ignore[] = 'PAGEINFO';
ignore[] = 'PAGENAME';
ignore[] = 'PAGEPATH';
ignore[] = 'PAGEROOT';
ignore[] = 'PAGESIZE';
ignore[] = 'PAGINADECONTEUDO';
ignore[] = 'PAGINAID';
ignore[] = 'PAGINASNODOMINIO';
ignore[] = 'PAGXNOMO';
ignore[] = 'PAGXOJENNOMSPACO';
ignore[] = 'PAIEMENT';
ignore[] = 'PAIKALLINENTUNTI';
ignore[] = 'PAIKALLINENVUOSI';
ignore[] = 'PAKISTAN';
ignore[] = 'PALACIOS';
ignore[] = 'PALADINO';
ignore[] = 'PALMIERI';
ignore[] = 'PALOMINO';
ignore[] = 'PALVELIN';
ignore[] = 'PANCOAST';
ignore[] = 'PANGBURN';
ignore[] = 'PANIAGUA';
ignore[] = 'PANKRATZ';
ignore[] = 'PANVALET';
ignore[] = 'PAOLUCCI';
ignore[] = 'PAPINEAU';
ignore[] = 'PAPIOPOA';
ignore[] = 'PAPIRALEGIMNUMRO';
ignore[] = 'PAQUETTE';
ignore[] = 'PARADISE';
ignore[] = 'PARADISO';
ignore[] = 'PARAGUAY';
ignore[] = 'PARALLEL';
ignore[] = 'PARAMORE';
ignore[] = 'PARASANG';
ignore[] = 'PARISIEN';
ignore[] = 'PARKHILL';
ignore[] = 'PARKISON';
ignore[] = 'PARMELEE';
ignore[] = 'PARSHALL';
ignore[] = 'PARTNERS';
ignore[] = 'PARTSTAT';
ignore[] = 'PASCHALL';
ignore[] = 'PASILLAS';
ignore[] = 'PASQUALE';
ignore[] = 'PASSMORE';
ignore[] = 'PASSWORD';
ignore[] = 'PASTEBIN';
ignore[] = 'PASTRANA';
ignore[] = 'PATCHELL';
ignore[] = 'PATCHETT';
ignore[] = 'PATERSON';
ignore[] = 'PATHINFO';
ignore[] = 'PATHNAME';
ignore[] = 'PATHROOT';
ignore[] = 'PATINDEX';
ignore[] = 'PATNAUDE';
ignore[] = 'PATRICIA';
ignore[] = 'PATRICIO';
ignore[] = 'PATRIDGE';
ignore[] = 'PATTISON';
ignore[] = 'PAULETTE';
ignore[] = 'PAYMENTREQUESTID';
ignore[] = 'PAYMENTS';
ignore[] = 'PAYMENTSURCHARGE';
ignore[] = 'PCOMMAND';
ignore[] = 'PCONNECT';
ignore[] = 'PDECIMAL';
ignore[] = 'PEALKIRI';
ignore[] = 'PEARLMAN';
ignore[] = 'PEARSALL';
ignore[] = 'PEBIBYTE';
ignore[] = 'PECORARO';
ignore[] = 'PEDERSEN';
ignore[] = 'PEDERSON';
ignore[] = 'PEEBLESS';
ignore[] = 'PEERINFO';
ignore[] = 'PELLERIN';
ignore[] = 'PELNANAZWASTRONY';
ignore[] = 'PELOQUIN';
ignore[] = 'PENAFLOR';
ignore[] = 'PENALOZA';
ignore[] = 'PENELOPE';
ignore[] = 'PENNIMAN';
ignore[] = 'PERCIVAL';
ignore[] = 'PERRAULT';
ignore[] = 'PERREIRA';
ignore[] = 'PERRODIN';
ignore[] = 'PERROTTA';
ignore[] = 'PERRYMAN';
ignore[] = 'PERSONAL';
ignore[] = 'PETABYTE';
ignore[] = 'PETAGRAM';
ignore[] = 'PETAWATT';
ignore[] = 'PETERKIN';
ignore[] = 'PETERMAN';
ignore[] = 'PETERSEN';
ignore[] = 'PETERSON';
ignore[] = 'PETICIJA';
ignore[] = 'PETICION';
ignore[] = 'PETISYON';
ignore[] = 'PETITION';
ignore[] = 'PETRELLA';
ignore[] = 'PETRILLO';
ignore[] = 'PETROSKY';
ignore[] = 'PETRUCCI';
ignore[] = 'PETTAWAY';
ignore[] = 'PFEIFFER';
ignore[] = 'PFRCPIT1';
ignore[] = 'PFRCPIT2';
ignore[] = 'PFRSQIT1';
ignore[] = 'PHARMA2T';
ignore[] = 'PHARMACY';
ignore[] = 'PHILLIPS';
ignore[] = 'PHILPOTT';
ignore[] = 'PHONENUM';
ignore[] = 'PHONETIC';
ignore[] = 'PHOTODIR';
ignore[] = 'PHYSICAL';
ignore[] = 'PICCOLLO';
ignore[] = 'PICHARDO';
ignore[] = 'PICKEREL';
ignore[] = 'PICKRELL';
ignore[] = 'PICOGRAM';
ignore[] = 'PICOWATT';
ignore[] = 'PICTURES';
ignore[] = 'PIETRZAK';
ignore[] = 'PIMENTAL';
ignore[] = 'PIMENTEL';
ignore[] = 'PINCKNEY';
ignore[] = 'PINGBACK';
ignore[] = 'PINHEIRO';
ignore[] = 'PINKSTON';
ignore[] = 'PIPELINE';
ignore[] = 'PITCAIRN';
ignore[] = 'PLAATSELIJKEDAG2';
ignore[] = 'PLAATSELIJKEDVDW';
ignore[] = 'PLAATSELIJKETIJD';
ignore[] = 'PLAATSELIJKEWEEK';
ignore[] = 'PLAISTED';
ignore[] = 'PLATFORM';
ignore[] = 'PLEASANT';
ignore[] = 'PLEASENT';
ignore[] = 'PLEMMONS';
ignore[] = 'PLETCHER';
ignore[] = 'PLUGPATH';
ignore[] = 'PLUMBING';
ignore[] = 'PLUNKETT';
ignore[] = 'PMACHRIW';
ignore[] = 'PMMSGTONOTFRIEND';
ignore[] = 'PMOVMSKB';
ignore[] = 'PMULHRIW';
ignore[] = 'PMULHRWA';
ignore[] = 'PMULHRWC';
ignore[] = 'POLANSKY';
ignore[] = 'POLEGADA';
ignore[] = 'POLENORD';
ignore[] = 'PONCELET';
ignore[] = 'POOMMAIL';
ignore[] = 'POPOVICH';
ignore[] = 'POPPASSD';
ignore[] = 'PORFIRIO';
ignore[] = 'PORTABLE';
ignore[] = 'PORTILLO';
ignore[] = 'PORTRAIT';
ignore[] = 'PORTUGAL';
ignore[] = 'PORTWOOD';
ignore[] = 'POSHYTIP';
ignore[] = 'POSITION';
ignore[] = 'POSITIVE';
ignore[] = 'POSPISIL';
ignore[] = 'POSSIBLE';
ignore[] = 'POSTBODY';
ignore[] = 'POSTCODE';
ignore[] = 'POSTFORM';
ignore[] = 'POSTROLL';
ignore[] = 'POTTORFF';
ignore[] = 'POUNDERS';
ignore[] = 'POWEQUAL';
ignore[] = 'PPLNSROUNDSHARES';
ignore[] = 'PRAKARYA';
ignore[] = 'PRECIADO';
ignore[] = 'PREDEFINEDSEARCH';
ignore[] = 'PREDMORE';
ignore[] = 'PREENTRY';
ignore[] = 'PREFETCH';
ignore[] = 'PREFIXED';
ignore[] = 'PRENTICE';
ignore[] = 'PRENTISS';
ignore[] = 'PREORDER';
ignore[] = 'PREPARED';
ignore[] = 'PREPLIST';
ignore[] = 'PRESCOTT';
ignore[] = 'PRESENTV';
ignore[] = 'PRESERVE';
ignore[] = 'PRESIDEY';
ignore[] = 'PRESIMUN';
ignore[] = 'PRESITEN';
ignore[] = 'PRESNELL';
ignore[] = 'PRESSLER';
ignore[] = 'PRESSLEY';
ignore[] = 'PRESSMAN';
ignore[] = 'PRESTIGE';
ignore[] = 'PRETABLE';
ignore[] = 'PREUSSER';
ignore[] = 'PREVATTE';
ignore[] = 'PREVIOUS';
ignore[] = 'PREVISUALISATION';
ignore[] = 'PRICEMAT';
ignore[] = 'PRICHARD';
ignore[] = 'PRICKETT';
ignore[] = 'PRIDMORE';
ignore[] = 'PRIESTER';
ignore[] = 'PRIMEAUX';
ignore[] = 'PRINCESS';
ignore[] = 'PRINTBIN';
ignore[] = 'PRINTERS';
ignore[] = 'PRINTING';
ignore[] = 'PRIOLEAU';
ignore[] = 'PRIORITY';
ignore[] = 'PRIVETTE';
ignore[] = 'PROBBETA';
ignore[] = 'PROBBNML';
ignore[] = 'PROBHYPR';
ignore[] = 'PROBNEGB';
ignore[] = 'PROBNORM';
ignore[] = 'PROCESSASSERTION';
ignore[] = 'PROCOPIO';
ignore[] = 'PROCURVE';
ignore[] = 'PRODFICH';
ignore[] = 'PRODUCTS';
ignore[] = 'PROFFITT';
ignore[] = 'PROFILER';
ignore[] = 'PROFILEREFERENCE';
ignore[] = 'PROFILES';
ignore[] = 'PROFILESTARTDATE';
ignore[] = 'PROGRESS';
ignore[] = 'PROJECTS';
ignore[] = 'PROMPTTZ';
ignore[] = 'PROPERTY';
ignore[] = 'PROPFIND';
ignore[] = 'PROPINFO';
ignore[] = 'PROPNAME';
ignore[] = 'PROSPECT';
ignore[] = 'PROSTORISUBJEKTA';
ignore[] = 'PROSTORSTRANICEE';
ignore[] = 'PROTECTIONEXPIRY';
ignore[] = 'PROTOCOL';
ignore[] = 'PROVIDER';
ignore[] = 'PROVINCE';
ignore[] = 'PT0H0M0S';
ignore[] = 'PUBLTIME';
ignore[] = 'PUDOFOID';
ignore[] = 'PUGLIESE';
ignore[] = 'PULSEGEN';
ignore[] = 'PULSEOUT';
ignore[] = 'PUMPHREY';
ignore[] = 'PUNOIMESTRANICEE';
ignore[] = 'PURCHASE';
ignore[] = 'PVERSION';
ignore[] = 'PWARNING';
ignore[] = 'PYFLAKES';
ignore[] = 'Q3TSFUNC';
ignore[] = 'QCOMPARE';
ignore[] = 'QFZCWN5HZM8VBG7Q';
ignore[] = 'QIBOSOFT';
ignore[] = 'QILLQAPANQASUTIE';
ignore[] = 'QSTILLEX';
ignore[] = 'QSUCCESS';
ignore[] = 'QUADDEMY';
ignore[] = 'QUADRANT';
ignore[] = 'QUALPROC';
ignore[] = 'QUANTITE';
ignore[] = 'QUANTITY';
ignore[] = 'QUARTERN';
ignore[] = 'QUARTILE';
ignore[] = 'QUESTION';
ignore[] = 'QUINONES';
ignore[] = 'QUINONEZ';
ignore[] = 'QUINTANA';
ignore[] = 'QUINTERO';
ignore[] = 'QUOSHUNT';
ignore[] = 'QUOTIENT';
ignore[] = 'QWANTIFY';
ignore[] = 'RABIDEAU';
ignore[] = 'RACHELLE';
ignore[] = 'RADCLIFF';
ignore[] = 'RADTODEG';
ignore[] = 'RAFFAELE';
ignore[] = 'RAFFERTY';
ignore[] = 'RAGSDALE';
ignore[] = 'RAINBOLT';
ignore[] = 'RAKOWSKI';
ignore[] = 'RAMSDELL';
ignore[] = 'RANCOURT';
ignore[] = 'RANDAZZO';
ignore[] = 'RANDOLPH';
ignore[] = 'RANSDELL';
ignore[] = 'RASBERRY';
ignore[] = 'RATCLIFF';
ignore[] = 'RATHBONE';
ignore[] = 'RATHBURN';
ignore[] = 'RATZLAFF';
ignore[] = 'RAULSTON';
ignore[] = 'RAUSCHER';
ignore[] = 'RAWLINGS';
ignore[] = 'RAWTOHEX';
ignore[] = 'RAYFIELD';
ignore[] = 'RAYMUNDO';
ignore[] = 'RAZGOVOR';
ignore[] = 'RBACKEND';
ignore[] = 'RCAPTION';
ignore[] = 'RCOMMENT';
ignore[] = 'RDFFIELD';
ignore[] = 'READLINK';
ignore[] = 'READONLY';
ignore[] = 'READTEXT';
ignore[] = 'REALNAME';
ignore[] = 'REASONER';
ignore[] = 'REASSIGN';
ignore[] = 'RECEIVED';
ignore[] = 'RECEIVER';
ignore[] = 'RECEIVERBUSINESS';
ignore[] = 'RECEVING';
ignore[] = 'RECHNUNG';
ignore[] = 'RECORDID';
ignore[] = 'RECOVERY';
ignore[] = 'RECPNAME';
ignore[] = 'RECREATE';
ignore[] = 'REDACTED';
ignore[] = 'REDEFINE';
ignore[] = 'REDFIELD';
ignore[] = 'REDINGER';
ignore[] = 'REDIRECIONAMENTO';
ignore[] = 'REDIRECT';
ignore[] = 'REDIRECTREQUIRED';
ignore[] = 'REDOSLED';
ignore[] = 'REDSTONE';
ignore[] = 'REFCOUNT';
ignore[] = 'REFERRAL';
ignore[] = 'REFERRED';
ignore[] = 'REFERRER';
ignore[] = 'REFNOEXT';
ignore[] = 'REFTOHEX';
ignore[] = 'REFUNDED';
ignore[] = 'REFUSEUR';
ignore[] = 'REGALADO';
ignore[] = 'REGENMDP';
ignore[] = 'REGINALD';
ignore[] = 'REGIONEN';
ignore[] = 'REGISTER';
ignore[] = 'REGISTRY';
ignore[] = 'REGUSERS';
ignore[] = 'REICHARD';
ignore[] = 'REICHERT';
ignore[] = 'REICHMAN';
ignore[] = 'REINALDO';
ignore[] = 'REINDIRIZZAMENTO';
ignore[] = 'REINHARD';
ignore[] = 'REINHART';
ignore[] = 'REINHOLD';
ignore[] = 'REJECTED';
ignore[] = 'REKAMWAKTUREVISI';
ignore[] = 'RELATION';
ignore[] = 'RELATIVE';
ignore[] = 'RELEASED';
ignore[] = 'RELEASES';
ignore[] = 'RELIANCE';
ignore[] = 'RELIFORD';
ignore[] = 'RELOCATE';
ignore[] = 'REMEMBER';
ignore[] = 'REMINDED';
ignore[] = 'REMINDER';
ignore[] = 'REMOTEIP';
ignore[] = 'RENAMENX';
ignore[] = 'RENDERED';
ignore[] = 'RENDERER';
ignore[] = 'RENTERIA';
ignore[] = 'REOPENED';
ignore[] = 'REPAIRED';
ignore[] = 'REPEATED';
ignore[] = 'REPLACEB';
ignore[] = 'REPLACED';
ignore[] = 'REPLOGLE';
ignore[] = 'REPORTED';
ignore[] = 'REPORTER';
ignore[] = 'REQUETES';
ignore[] = 'REQUIRED';
ignore[] = 'RESELLER';
ignore[] = 'RESENDEZ';
ignore[] = 'RESENDIZ';
ignore[] = 'RESERVED';
ignore[] = 'RESETCAT';
ignore[] = 'RESETTOG';
ignore[] = 'RESIGNAL';
ignore[] = 'RESIZING';
ignore[] = 'RESOLVED';
ignore[] = 'RESOURCE';
ignore[] = 'RESPONSE';
ignore[] = 'RESTORED';
ignore[] = 'RESTREPO';
ignore[] = 'RESTRICT';
ignore[] = 'RESTROOM';
ignore[] = 'RETRIEVE';
ignore[] = 'RETURNED';
ignore[] = 'RETURNFMFDETAILS';
ignore[] = 'RETZLAFF';
ignore[] = 'REVERSAL';
ignore[] = 'REVERSED';
ignore[] = 'REVIEWER';
ignore[] = 'REVISION';
ignore[] = 'REYNALDO';
ignore[] = 'REYNOLDS';
ignore[] = 'REZENDES';
ignore[] = 'RH25921P';
ignore[] = 'RICCARDI';
ignore[] = 'RICHARDS';
ignore[] = 'RICHBURG';
ignore[] = 'RICHESON';
ignore[] = 'RICHMOND';
ignore[] = 'RICHTEXT';
ignore[] = 'RICKARDS';
ignore[] = 'RICKETTS';
ignore[] = 'RIDENOUR';
ignore[] = 'RIDGEWAY';
ignore[] = 'RIDINGER';
ignore[] = 'RIENDEAU';
ignore[] = 'RIGHTNAV';
ignore[] = 'RIJNDAEL';
ignore[] = 'RINEHART';
ignore[] = 'RINGGOLD';
ignore[] = 'RISINGER';
ignore[] = 'RITENOUR';
ignore[] = 'ROBERSON';
ignore[] = 'ROBIDOUX';
ignore[] = 'ROBINETT';
ignore[] = 'ROBINSON';
ignore[] = 'ROBOCOPY';
ignore[] = 'ROCHELLE';
ignore[] = 'ROCKWELL';
ignore[] = 'ROCKWOOD';
ignore[] = 'RODERICK';
ignore[] = 'RODIGUEZ';
ignore[] = 'RODRIGEZ';
ignore[] = 'RODRIGUE';
ignore[] = 'RODRIGUZ';
ignore[] = 'ROESSLER';
ignore[] = 'ROGALSKI';
ignore[] = 'ROGERSON';
ignore[] = 'ROGOWSKI';
ignore[] = 'ROHRBACH';
ignore[] = 'ROLLBACK';
ignore[] = 'ROLLINGS';
ignore[] = 'ROLLISON';
ignore[] = 'ROLLOVER';
ignore[] = 'ROMRIELL';
ignore[] = 'ROOTPATH';
ignore[] = 'ROSALIND';
ignore[] = 'ROSAMOND';
ignore[] = 'ROSEBORO';
ignore[] = 'ROSEMARY';
ignore[] = 'ROSEMOND';
ignore[] = 'ROSINSKI';
ignore[] = 'ROSSETTI';
ignore[] = 'ROSSITER';
ignore[] = 'ROTFLMAO';
ignore[] = 'ROTHROCK';
ignore[] = 'ROTHWELL';
ignore[] = 'ROUGHTON';
ignore[] = 'ROUNDING';
ignore[] = 'ROUNTREE';
ignore[] = 'ROUSSEAU';
ignore[] = 'ROUTINES';
ignore[] = 'ROWCLASS';
ignore[] = 'ROWCOUNT';
ignore[] = 'ROWLABEL';
ignore[] = 'ROWLANDS';
ignore[] = 'ROWVALUE';
ignore[] = 'ROXBURGH';
ignore[] = 'RSSFEEDS';
ignore[] = 'RUDISILL';
ignore[] = 'RUGGERIO';
ignore[] = 'RUGGIERI';
ignore[] = 'RUGGIERO';
ignore[] = 'RULEVIEW';
ignore[] = 'RUMBAUGH';
ignore[] = 'RUNNABLE';
ignore[] = 'RUNNAMED';
ignore[] = 'RUNTIMER';
ignore[] = 'RUPDATER';
ignore[] = 'RUTLEDGE';
ignore[] = 'SAARLAND';
ignore[] = 'SAAVEDRA';
ignore[] = 'SABATINI';
ignore[] = 'SABATINO';
ignore[] = 'SADOWSKI';
ignore[] = 'SAFEHTML';
ignore[] = 'SAFEMODE';
ignore[] = 'SAILBOAT';
ignore[] = 'SAJTNAMN';
ignore[] = 'SAKAMOTO';
ignore[] = 'SALADINO';
ignore[] = 'SALAMONE';
ignore[] = 'SALDIVAR';
ignore[] = 'SALESTAX';
ignore[] = 'SALGUERO';
ignore[] = 'SALMERON';
ignore[] = 'SALREADY';
ignore[] = 'SALSBURY';
ignore[] = 'SALTSMAN';
ignore[] = 'SALTZMAN';
ignore[] = 'SALVADOR';
ignore[] = 'SAMANTHA';
ignore[] = 'SAMBASID';
ignore[] = 'SAMETERM';
ignore[] = 'SAMSCLUB';
ignore[] = 'SANABRIA';
ignore[] = 'SANDBERG';
ignore[] = 'SANDEFUR';
ignore[] = 'SANDFORD';
ignore[] = 'SANDIDGE';
ignore[] = 'SANDIFER';
ignore[] = 'SANDOVAL';
ignore[] = 'SANDUSKY';
ignore[] = 'SANGSTER';
ignore[] = 'SANROMAN';
ignore[] = 'SANSBURY';
ignore[] = 'SANTIAGO';
ignore[] = 'SANTILLO';
ignore[] = 'SANTUCCI';
ignore[] = 'SAPIENZA';
ignore[] = 'SAPTAMANACURENTA';
ignore[] = 'SARAGOSA';
ignore[] = 'SARGEANT';
ignore[] = 'SATCHELL';
ignore[] = 'SATURDAY';
ignore[] = 'SAULTERS';
ignore[] = 'SAUNDERS';
ignore[] = 'SAVANNAH';
ignore[] = 'SAVARESE';
ignore[] = 'SAVECONF';
ignore[] = 'SAVEDATA';
ignore[] = 'SAYFAADI';
ignore[] = 'SCANNELL';
ignore[] = 'SCANNING';
ignore[] = 'SCARLETT';
ignore[] = 'SCENARIO';
ignore[] = 'SCHACHER';
ignore[] = 'SCHAEFER';
ignore[] = 'SCHAFFER';
ignore[] = 'SCHAIBLE';
ignore[] = 'SCHALLER';
ignore[] = 'SCHEDULE';
ignore[] = 'SCHEDULEDREPORTS';
ignore[] = 'SCHEERER';
ignore[] = 'SCHEFFEL';
ignore[] = 'SCHEFFER';
ignore[] = 'SCHEIBER';
ignore[] = 'SCHELLER';
ignore[] = 'SCHEMATA';
ignore[] = 'SCHENDEL';
ignore[] = 'SCHERRER';
ignore[] = 'SCHIFFER';
ignore[] = 'SCHILLER';
ignore[] = 'SCHIMMEL';
ignore[] = 'SCHIPPER';
ignore[] = 'SCHIRMER';
ignore[] = 'SCHISLER';
ignore[] = 'SCHLATER';
ignore[] = 'SCHLEGEL';
ignore[] = 'SCHMALTZ';
ignore[] = 'SCHNABEL';
ignore[] = 'SCHOLTEN';
ignore[] = 'SCHOOLER';
ignore[] = 'SCHOOLEY';
ignore[] = 'SCHRADER';
ignore[] = 'SCHRANTZ';
ignore[] = 'SCHREIER';
ignore[] = 'SCHRIVER';
ignore[] = 'SCHRODER';
ignore[] = 'SCHROYER';
ignore[] = 'SCHTASKS';
ignore[] = 'SCHUBERT';
ignore[] = 'SCHUELER';
ignore[] = 'SCHUELKE';
ignore[] = 'SCHUETTE';
ignore[] = 'SCHULLER';
ignore[] = 'SCHULMAN';
ignore[] = 'SCHUMANN';
ignore[] = 'SCHURMAN';
ignore[] = 'SCHUSTER';
ignore[] = 'SCHUYLER';
ignore[] = 'SCHWAGER';
ignore[] = 'SCHWANDT';
ignore[] = 'SCHWANKE';
ignore[] = 'SCHWARTZ';
ignore[] = 'SCHWINDT';
ignore[] = 'SCLAFANI';
ignore[] = 'SCOFIELD';
ignore[] = 'SCOGGINS';
ignore[] = 'SCOMPLEX';
ignore[] = 'SCORPION';
ignore[] = 'SCORPIUS';
ignore[] = 'SCOVILLE';
ignore[] = 'SCRANTON';
ignore[] = 'SCRIBNER';
ignore[] = 'SCRIPTED';
ignore[] = 'SCRIVNER';
ignore[] = 'SCURLOCK';
ignore[] = 'SEABROOK';
ignore[] = 'SEARCHES';
ignore[] = 'SEARFOSS';
ignore[] = 'SECHRIST';
ignore[] = 'SECOFDAY';
ignore[] = 'SECONDLY';
ignore[] = 'SECTIONS';
ignore[] = 'SECURITY';
ignore[] = 'SEDGWICK';
ignore[] = 'SEDLACEK';
ignore[] = 'SEEDLING';
ignore[] = 'SEEFELDT';
ignore[] = 'SEEMEILE';
ignore[] = 'SEITENID';
ignore[] = 'SELECTED';
ignore[] = 'SELECTEXPRESSION';
ignore[] = 'SELECTOR';
ignore[] = 'SELVIDGE';
ignore[] = 'SENDKEYS';
ignore[] = 'SENDMAIL';
ignore[] = 'SENDSCAN';
ignore[] = 'SENTENCE';
ignore[] = 'SENTINEL';
ignore[] = 'SEPARATE';
ignore[] = 'SEPERATE';
ignore[] = 'SEQUEIRA';
ignore[] = 'SEQUENCE';
ignore[] = 'SERIALIN';
ignore[] = 'SERRBUSY';
ignore[] = 'SERVICES';
ignore[] = 'SERVICESLEEPTIME';
ignore[] = 'SERVIDOR';
ignore[] = 'SERVIJER';
ignore[] = 'SESSIONS';
ignore[] = 'SETLOCAL';
ignore[] = 'SETPROPERTYNAMES';
ignore[] = 'SETQUOTA';
ignore[] = 'SETRANGE';
ignore[] = 'SETSCALE';
ignore[] = 'SETSPECS';
ignore[] = 'SETTINGS';
ignore[] = 'SETUPINC';
ignore[] = 'SEVERINO';
ignore[] = 'SEVERSON';
ignore[] = 'SF010000';
ignore[] = 'SF020000';
ignore[] = 'SF030000';
ignore[] = 'SF040000';
ignore[] = 'SF050000';
ignore[] = 'SF060000';
ignore[] = 'SF070000';
ignore[] = 'SF080000';
ignore[] = 'SF090000';
ignore[] = 'SF100000';
ignore[] = 'SF110000';
ignore[] = 'SF190000';
ignore[] = 'SF200000';
ignore[] = 'SF210000';
ignore[] = 'SF220000';
ignore[] = 'SF230000';
ignore[] = 'SF240000';
ignore[] = 'SF250000';
ignore[] = 'SF260000';
ignore[] = 'SF270000';
ignore[] = 'SF280000';
ignore[] = 'SF360000';
ignore[] = 'SF370000';
ignore[] = 'SF380000';
ignore[] = 'SF390000';
ignore[] = 'SF400000';
ignore[] = 'SF410000';
ignore[] = 'SF420000';
ignore[] = 'SF430000';
ignore[] = 'SF440000';
ignore[] = 'SF450000';
ignore[] = 'SF460000';
ignore[] = 'SF470000';
ignore[] = 'SF480000';
ignore[] = 'SF490000';
ignore[] = 'SF500000';
ignore[] = 'SF510000';
ignore[] = 'SF520000';
ignore[] = 'SF530000';
ignore[] = 'SF540000';
ignore[] = 'SHA1HASH';
ignore[] = 'SHADRICK';
ignore[] = 'SHADWICK';
ignore[] = 'SHAEFFER';
ignore[] = 'SHAMBLIN';
ignore[] = 'SHAMROCK';
ignore[] = 'SHANAHAN';
ignore[] = 'SHANKLIN';
ignore[] = 'SHARLENE';
ignore[] = 'SHARPTON';
ignore[] = 'SHATTUCK';
ignore[] = 'SHEAFFER';
ignore[] = 'SHECKLER';
ignore[] = 'SHELLMAN';
ignore[] = 'SHEPHARD';
ignore[] = 'SHEPHERD';
ignore[] = 'SHEPPARD';
ignore[] = 'SHERIDAN';
ignore[] = 'SHERLOCK';
ignore[] = 'SHERRARD';
ignore[] = 'SHERRELL';
ignore[] = 'SHERRICK';
ignore[] = 'SHERRILL';
ignore[] = 'SHERWOOD';
ignore[] = 'SHETLAND';
ignore[] = 'SHIFLETT';
ignore[] = 'SHIFTLCD';
ignore[] = 'SHIFTOUT';
ignore[] = 'SHILLING';
ignore[] = 'SHINAULT';
ignore[] = 'SHIPMENT';
ignore[] = 'SHIPPING';
ignore[] = 'SHIPPINGDISCOUNT';
ignore[] = 'SHNAMPSK';
ignore[] = 'SHOCKLEY';
ignore[] = 'SHOEMAKE';
ignore[] = 'SHOFFNER';
ignore[] = 'SHOPCART';
ignore[] = 'SHOPPING';
ignore[] = 'SHORTCUT';
ignore[] = 'SHORTINT';
ignore[] = 'SHOTWELL';
ignore[] = 'SHOWBUDS';
ignore[] = 'SHOWCOPY';
ignore[] = 'SHOWFILE';
ignore[] = 'SHOWMORE';
ignore[] = 'SHOWPICE';
ignore[] = 'SHOWPLAN';
ignore[] = 'SHOWTIME';
ignore[] = 'SHUFFLER';
ignore[] = 'SHUMAKER';
ignore[] = 'SHUMPERT';
ignore[] = 'SHUTDOWN';
ignore[] = 'SICKNESS';
ignore[] = 'SIDDIQUI';
ignore[] = 'SIDEBARS';
ignore[] = 'SIDENAMN';
ignore[] = 'SIDENAVN';
ignore[] = 'SIDNAMNE';
ignore[] = 'SIEGRIST';
ignore[] = 'SIETNAAM';
ignore[] = 'SIGWINCH';
ignore[] = 'SIKORSKI';
ignore[] = 'SILVEIRA';
ignore[] = 'SIMENTAL';
ignore[] = 'SIMMONDS';
ignore[] = 'SIMONEAU';
ignore[] = 'SIMONSEN';
ignore[] = 'SIMONSON';
ignore[] = 'SIMONTON';
ignore[] = 'SIMPKINS';
ignore[] = 'SINCLAIR';
ignore[] = 'SINDELAR';
ignore[] = 'SINGLEAT';
ignore[] = 'SINGULAR';
ignore[] = 'SIRIANNI';
ignore[] = 'SISEMORE';
ignore[] = 'SISFIELD';
ignore[] = 'SISNEROS';
ignore[] = 'SISTRUNK';
ignore[] = 'SITELANG';
ignore[] = 'SITEMENU';
ignore[] = 'SITENAAM';
ignore[] = 'SITENAME';
ignore[] = 'SITENAMN';
ignore[] = 'SIVUKOKO';
ignore[] = 'SIVUNIMI';
ignore[] = 'SIZEMORE';
ignore[] = 'SKELETON';
ignore[] = 'SKEWNESS';
ignore[] = 'SKIDMORE';
ignore[] = 'SKILLERN';
ignore[] = 'SKILLMAN';
ignore[] = 'SKOAZELL';
ignore[] = 'SLATTERY';
ignore[] = 'SLINKARD';
ignore[] = 'SLOSERVICEPARAMS';
ignore[] = 'SLOVAKEI';
ignore[] = 'SLOVAKIA';
ignore[] = 'SLOVENIA';
ignore[] = 'SMALLING';
ignore[] = 'SMALLINT';
ignore[] = 'SMARTYBLOCKCHILD';
ignore[] = 'SMASHING';
ignore[] = 'SMATHERS';
ignore[] = 'SMELTZER';
ignore[] = 'SMEMBERS';
ignore[] = 'SMINTOLD';
ignore[] = 'SMITHERS';
ignore[] = 'SMITHSON';
ignore[] = 'SMOTHERS';
ignore[] = 'SMTPUTF8';
ignore[] = 'SN34RD1A';
ignore[] = 'SNAPSHOT';
ignore[] = 'SNEDEKER';
ignore[] = 'SNELLING';
ignore[] = 'SNIPPETS';
ignore[] = 'SOFTBANK';
ignore[] = 'SOFTNAME';
ignore[] = 'SOFTWARE';
ignore[] = 'SOLUTION';
ignore[] = 'SOMECODE';
ignore[] = 'SOMMAIRE';
ignore[] = 'SONYSEND';
ignore[] = 'SORENSEN';
ignore[] = 'SORENSON';
ignore[] = 'SOROCRED';
ignore[] = 'SORRELLS';
ignore[] = 'SORTABLE';
ignore[] = 'SORTCODE';
ignore[] = 'SORTDATE';
ignore[] = 'SORTFROM';
ignore[] = 'SORTFUNC';
ignore[] = 'SORTSIZE';
ignore[] = 'SORTTYPE';
ignore[] = 'SOULIERE';
ignore[] = 'SOUTHALL';
ignore[] = 'SOUTHARD';
ignore[] = 'SOUTHERN';
ignore[] = 'SPAFFORD';
ignore[] = 'SPALDING';
ignore[] = 'SPAMLIST';
ignore[] = 'SPANGLER';
ignore[] = 'SPARKLES';
ignore[] = 'SPARKMAN';
ignore[] = 'SPARLING';
ignore[] = 'SPATIUDEDISCUTIE';
ignore[] = 'SPEAKMAN';
ignore[] = 'SPEARMAN';
ignore[] = 'SPECIALE';
ignore[] = 'SPECIFIC';
ignore[] = 'SPECIMEN';
ignore[] = 'SPEICHER';
ignore[] = 'SPEIGHTS';
ignore[] = 'SPELLMAN';
ignore[] = 'SPENGLER';
ignore[] = 'SPERLING';
ignore[] = 'SPIELMAN';
ignore[] = 'SPILLANE';
ignore[] = 'SPILLERS';
ignore[] = 'SPILLMAN';
ignore[] = 'SPINDLER';
ignore[] = 'SPINELLA';
ignore[] = 'SPINELLI';
ignore[] = 'SPRADLEY';
ignore[] = 'SPRADLIN';
ignore[] = 'SPRANKLE';
ignore[] = 'SPRENGER';
ignore[] = 'SPRINGER';
ignore[] = 'SPRINKLE';
ignore[] = 'SPSTATIC';
ignore[] = 'SPURGEON';
ignore[] = 'SPURLING';
ignore[] = 'SPURLOCK';
ignore[] = 'SPURRIER';
ignore[] = 'SQLBINDPARAMETER';
ignore[] = 'SQLBROWSECONNECT';
ignore[] = 'SQLBYTES';
ignore[] = 'SQLCOLATTRIBUTES';
ignore[] = 'SQLDESCRIBEPARAM';
ignore[] = 'SQLDRIVERCONNECT';
ignore[] = 'SQLDTIME';
ignore[] = 'SQLERROR';
ignore[] = 'SQLEXTENDEDFETCH';
ignore[] = 'SQLFETCH';
ignore[] = 'SQLFLOAT';
ignore[] = 'SQLGETCONFIGMODE';
ignore[] = 'SQLGETCURSORNAME';
ignore[] = 'SQLGETSTMTOPTION';
ignore[] = 'SQLGETTRANSLATOR';
ignore[] = 'SQLMONEY';
ignore[] = 'SQLNCHAR';
ignore[] = 'SQLNUMRESULTCOLS';
ignore[] = 'SQLOLEDB';
ignore[] = 'SQLPATCH';
ignore[] = 'SQLSETCONFIGMODE';
ignore[] = 'SQLSETCURSORNAME';
ignore[] = 'SQLSETSTMTOPTION';
ignore[] = 'SQLSMINT';
ignore[] = 'SQLSTATE';
ignore[] = 'SQLVCHAR';
ignore[] = 'SQLWRITEDSNTOINI';
ignore[] = 'SQMTRASH';
ignore[] = 'SSHORTAT';
ignore[] = 'SSLPWSTATUSCHECK';
ignore[] = 'STAFFORD';
ignore[] = 'STAGGERS';
ignore[] = 'STAHLMAN';
ignore[] = 'STALLARD';
ignore[] = 'STALLCUP';
ignore[] = 'STALLING';
ignore[] = 'STALLMAN';
ignore[] = 'STAMPLEY';
ignore[] = 'STANBACK';
ignore[] = 'STANDARD';
ignore[] = 'STANDISH';
ignore[] = 'STANDLEY';
ignore[] = 'STANFILL';
ignore[] = 'STANFORD';
ignore[] = 'STANHOPE';
ignore[] = 'STANNARD';
ignore[] = 'STANSELL';
ignore[] = 'STARBUCK';
ignore[] = 'STARCHER';
ignore[] = 'STARLING';
ignore[] = 'STARRETT';
ignore[] = 'STARSIZE';
ignore[] = 'STARTING';
ignore[] = 'STARTSAS';
ignore[] = 'STARTSAT';
ignore[] = 'STARTTLS';
ignore[] = 'STATICMETHODCALL';
ignore[] = 'STATMENT';
ignore[] = 'STATUSES';
ignore[] = 'STATUSID';
ignore[] = 'STAUFFER';
ignore[] = 'STCGROUP';
ignore[] = 'STDAGUR2';
ignore[] = 'STEADHAM';
ignore[] = 'STEADMAN';
ignore[] = 'STEBBINS';
ignore[] = 'STEELMAN';
ignore[] = 'STEFANIE';
ignore[] = 'STEFFENS';
ignore[] = 'STEINMAN';
ignore[] = 'STEMMING';
ignore[] = 'STEMMING';
ignore[] = 'STEMPELWAKTUKINI';
ignore[] = 'STENBERG';
ignore[] = 'STENNETT';
ignore[] = 'STEPHENS';
ignore[] = 'STERLING';
ignore[] = 'STERRETT';
ignore[] = 'STEVESON';
ignore[] = 'STGEORGE';
ignore[] = 'STICKLER';
ignore[] = 'STICKLES';
ignore[] = 'STICKLEY';
ignore[] = 'STICKNEY';
ignore[] = 'STIELPAD';
ignore[] = 'STIFFLER';
ignore[] = 'STIJLPAD';
ignore[] = 'STIKEOUT';
ignore[] = 'STILLMAN';
ignore[] = 'STILPFAD';
ignore[] = 'STILTNER';
ignore[] = 'STILVOJO';
ignore[] = 'STILWELL';
ignore[] = 'STIMPSON';
ignore[] = 'STINGLEY';
ignore[] = 'STINNETT';
ignore[] = 'STIRLING';
ignore[] = 'STITCHER';
ignore[] = 'STMARTIN';
ignore[] = 'STOCKARD';
ignore[] = 'STOCKING';
ignore[] = 'STOCKMAN';
ignore[] = 'STOCKTON';
ignore[] = 'STODDARD';
ignore[] = 'STOGROUP';
ignore[] = 'STONEMAN';
ignore[] = 'STOPPING';
ignore[] = 'STORABLE';
ignore[] = 'STORAGES';
ignore[] = 'STORCLAS';
ignore[] = 'STOUFFER';
ignore[] = 'STPIERRE';
ignore[] = 'STRACHAN';
ignore[] = 'STRADLEY';
ignore[] = 'STRAFTER';
ignore[] = 'STRAIGHT';
ignore[] = 'STRANICA';
ignore[] = 'STRANICE';
ignore[] = 'STRASSER';
ignore[] = 'STRATTON';
ignore[] = 'STRAUSER';
ignore[] = 'STRAWSER';
ignore[] = 'STREATER';
ignore[] = 'STRECKER';
ignore[] = 'STREETER';
ignore[] = 'STREQUAL';
ignore[] = 'STREZNIK';
ignore[] = 'STRFTIME';
ignore[] = 'STRICKER';
ignore[] = 'STRIEGEL';
ignore[] = 'STRINGER';
ignore[] = 'STRINGJS';
ignore[] = 'STRIPLIN';
ignore[] = 'STRIPOFF';
ignore[] = 'STROMAIN';
ignore[] = 'STRONYWKATEGORII';
ignore[] = 'STROTHER';
ignore[] = 'STROZIER';
ignore[] = 'STRUCTUREVERSION';
ignore[] = 'STTHOMAS';
ignore[] = 'STUDDARD';
ignore[] = 'STUMMRED';
ignore[] = 'STURGEON';
ignore[] = 'STURGILL';
ignore[] = 'STUTZMAN';
ignore[] = 'SUBARRAY';
ignore[] = 'SUBEMAIL';
ignore[] = 'SUBFIELD';
ignore[] = 'SUBFORUM';
ignore[] = 'SUBJECTPAGENAMEE';
ignore[] = 'SUBJEKTSIDENAVNE';
ignore[] = 'SUBNODES';
ignore[] = 'SUBPANEL';
ignore[] = 'SUBPANELFULLFORM';
ignore[] = 'SUBPIXEL';
ignore[] = 'SUBSTYLE';
ignore[] = 'SUBTITLE';
ignore[] = 'SUBTOTAL';
ignore[] = 'SUBTRACT';
ignore[] = 'SUBTRANS';
ignore[] = 'SUBVALUE';
ignore[] = 'SUCCESSO';
ignore[] = 'SUCCESUL';
ignore[] = 'SUGGESTS';
ignore[] = 'SULLIVAN';
ignore[] = 'SUMX2MY2';
ignore[] = 'SUMX2PY2';
ignore[] = 'SUNDBERG';
ignore[] = 'SUPESITE';
ignore[] = 'SUPPCODE';
ignore[] = 'SUPPLIER';
ignore[] = 'SUPPLIES';
ignore[] = 'SUPPRESS';
ignore[] = 'SURINAME';
ignore[] = 'SURTITRE';
ignore[] = 'SUSPENDU';
ignore[] = 'SUSTAITA';
ignore[] = 'SUTIKITI';
ignore[] = 'SVENDSEN';
ignore[] = 'SWAFFORD';
ignore[] = 'SWANIGAN';
ignore[] = 'SWARNING';
ignore[] = 'SWATZELL';
ignore[] = 'SWEATMAN';
ignore[] = 'SWEETING';
ignore[] = 'SWEETMAN';
ignore[] = 'SWEITZER';
ignore[] = 'SWINDELL';
ignore[] = 'SWINDLER';
ignore[] = 'SWINFORD';
ignore[] = 'SWOFFORD';
ignore[] = 'SYMANTEC';
ignore[] = 'SYMBOLIC';
ignore[] = 'SYNCLOCK';
ignore[] = 'SYNCSITE';
ignore[] = 'SYNCTIME';
ignore[] = 'SYNOPSIS';
ignore[] = 'SYSENTER';
ignore[] = 'SYSPRINT';
ignore[] = 'SYSPROCS';
ignore[] = 'SYSPUNCH';
ignore[] = 'SYVERSON';
ignore[] = 'T000000Z';
ignore[] = 'TABINDEX';
ignore[] = 'TABLEDEF';
ignore[] = 'TABLEKEY';
ignore[] = 'TABLEKEY';
ignore[] = 'TABSHEET';
ignore[] = 'TAGEOVER';
ignore[] = 'TAGTITLE';
ignore[] = 'TALARICO';
ignore[] = 'TALAVERA';
ignore[] = 'TALLYING';
ignore[] = 'TALMADGE';
ignore[] = 'TALQILAWBETATAWI';
ignore[] = 'TANKSLEY';
ignore[] = 'TANZANIA';
ignore[] = 'TAORMINA';
ignore[] = 'TAPSCOTT';
ignore[] = 'TAQIRIPBETATAWI2';
ignore[] = 'TARGETID';
ignore[] = 'TARLETON';
ignore[] = 'TARRANCE';
ignore[] = 'TARWATER';
ignore[] = 'TASHKEEL';
ignore[] = 'TASKKILL';
ignore[] = 'TASKLIST';
ignore[] = 'TATARAMONKANLAOG';
ignore[] = 'TAXONOMY';
ignore[] = 'TCPWRITE';
ignore[] = 'TEACHOUT';
ignore[] = 'TEAMCOCO';
ignore[] = 'TEAMPAGE';
ignore[] = 'TEASPOON';
ignore[] = 'TEBIBYTE';
ignore[] = 'TEDESCHI';
ignore[] = 'TEIXEIRA';
ignore[] = 'TELECITY';
ignore[] = 'TEMPLATE';
ignore[] = 'TEMPPATH';
ignore[] = 'TENNISON';
ignore[] = 'TENNYSON';
ignore[] = 'TERABYTE';
ignore[] = 'TERAELECTRONVOLT';
ignore[] = 'TERAGRAM';
ignore[] = 'TERAWATT';
ignore[] = 'TERMINAL';
ignore[] = 'TERMINFO';
ignore[] = 'TERMPAGE';
ignore[] = 'TERMSTAT';
ignore[] = 'TERMTRAC';
ignore[] = 'TERPSTRA';
ignore[] = 'TERRANCE';
ignore[] = 'TERRAZAS';
ignore[] = 'TERRENCE';
ignore[] = 'TERRONES';
ignore[] = 'TESTFILE';
ignore[] = 'TESTMAIL';
ignore[] = 'TESTMODE';
ignore[] = 'TESTSDIR';
ignore[] = 'TETRAULT';
ignore[] = 'TEXTAREA';
ignore[] = 'TEXTEDIT';
ignore[] = 'TEXTLINE';
ignore[] = 'TEXTSIZE';
ignore[] = 'THADDEUS';
ignore[] = 'THAILAND';
ignore[] = 'THATCHER';
ignore[] = 'THEBERGE';
ignore[] = 'THEDFORD';
ignore[] = 'THEMEURL';
ignore[] = 'THEOBALD';
ignore[] = 'THEODORE';
ignore[] = 'THEONION';
ignore[] = 'THERRIEN';
ignore[] = 'THETFORD';
ignore[] = 'THIBAULT';
ignore[] = 'THIESSEN';
ignore[] = 'THISDIAL';
ignore[] = 'THISPAGE';
ignore[] = 'THOMASON';
ignore[] = 'THOMPSON';
ignore[] = 'THORESON';
ignore[] = 'THORNELL';
ignore[] = 'THORNLEY';
ignore[] = 'THORNTON';
ignore[] = 'THRASHER';
ignore[] = 'THREADED';
ignore[] = 'THRESHER';
ignore[] = 'THURMOND';
ignore[] = 'THURSDAY';
ignore[] = 'THURSTON';
ignore[] = 'TIBBETTS';
ignore[] = 'TIBBITTS';
ignore[] = 'TICHENOR';
ignore[] = 'TICKETID';
ignore[] = 'TIEDEMAN';
ignore[] = 'TIGER128';
ignore[] = 'TIGER160';
ignore[] = 'TIJERINA';
ignore[] = 'TILGHMAN';
ignore[] = 'TILLISON';
ignore[] = 'TIMEDIFF';
ignore[] = 'TIMEDOUT';
ignore[] = 'TIMELINE';
ignore[] = 'TIMEPART';
ignore[] = 'TIMEZONE';
ignore[] = 'TIMEZONESELECTED';
ignore[] = 'TINE20LASTUSERID';
ignore[] = 'TINYBLOB';
ignore[] = 'TINYTEXT';
ignore[] = 'TITITITI';
ignore[] = 'TITLEROW';
ignore[] = 'TOCENTRY';
ignore[] = 'TOLLESON';
ignore[] = 'TOLLISON';
ignore[] = 'TOLLIVER';
ignore[] = 'TOMASINI';
ignore[] = 'TOMMOROW';
ignore[] = 'TOMORROW';
ignore[] = 'TOMPKINS';
ignore[] = 'TONDREAU';
ignore[] = 'TONELADA';
ignore[] = 'TONEZONE';
ignore[] = 'TOOLBAR1';
ignore[] = 'TOOLBAR2';
ignore[] = 'TOOLTIPS';
ignore[] = 'TOOTHMAN';
ignore[] = 'TOPICMOD';
ignore[] = 'TOPICSID';
ignore[] = 'TOPNTAIL';
ignore[] = 'TOPTABLE';
ignore[] = 'TORRANCE';
ignore[] = 'TORRENCE';
ignore[] = 'TOTALING';
ignore[] = 'TOTALREFUNDEDAMT';
ignore[] = 'TOTALXLS';
ignore[] = 'TOWNSEND';
ignore[] = 'TOWNSHIP';
ignore[] = 'TOWNSLEY';
ignore[] = 'TRACKURL';
ignore[] = 'TRAILING';
ignore[] = 'TRAINING';
ignore[] = 'TRAMMELL';
ignore[] = 'TRANSACTIONCLASS';
ignore[] = 'TRANSACTIONTYPES';
ignore[] = 'TRANSFER';
ignore[] = 'TRANSLIT';
ignore[] = 'TRANTHAM';
ignore[] = 'TRASHCAN';
ignore[] = 'TRAUTMAN';
ignore[] = 'TRAVERSO';
ignore[] = 'TREADWAY';
ignore[] = 'TREMAINE';
ignore[] = 'TREMBLAY';
ignore[] = 'TREMBLEY';
ignore[] = 'TRENDNAN';
ignore[] = 'TRENUTNIMESECGEN';
ignore[] = 'TRENUTNIMESECIME';
ignore[] = 'TRENUTNIMESECROD';
ignore[] = 'TRENUTNIMESECSKR';
ignore[] = 'TRESSLER';
ignore[] = 'TRIALAMT';
ignore[] = 'TRIANGLE';
ignore[] = 'TRIGAMMA';
ignore[] = 'TRIGGERS';
ignore[] = 'TRIMMEAN';
ignore[] = 'TRIMNONPRINTABLE';
ignore[] = 'TRINIDAD';
ignore[] = 'TRIPLETT';
ignore[] = 'TRIVETTE';
ignore[] = 'TROMBLEY';
ignore[] = 'TRONCOSO';
ignore[] = 'TROTTIER';
ignore[] = 'TROUTMAN';
ignore[] = 'TRUELOVE';
ignore[] = 'TRUJILLO';
ignore[] = 'TRUMBULL';
ignore[] = 'TRUNCATE';
ignore[] = 'TRUNCINC';
ignore[] = 'TRUSSELL';
ignore[] = 'TUDALENNAUYNYCAT';
ignore[] = 'TUNNLAND';
ignore[] = 'TUNSTALL';
ignore[] = 'TURCOTTE';
ignore[] = 'TURNBULL';
ignore[] = 'TVES2013';
ignore[] = 'TWISLAVE';
ignore[] = 'TXSTATUS';
ignore[] = 'TYPECASE';
ignore[] = 'TYPECAST';
ignore[] = 'TYPECODE';
ignore[] = 'TYPEHINT';
ignore[] = 'TYPEINFO';
ignore[] = 'TYPELIST';
ignore[] = 'TYPENAME';
ignore[] = 'TYPETEXT';
ignore[] = 'UACCOUNT';
ignore[] = 'UCONNECT';
ignore[] = 'UDPWRITE';
ignore[] = 'UINTEGER';
ignore[] = 'ULIBARRI';
ignore[] = 'UMBERGER';
ignore[] = 'UMBRELLA';
ignore[] = 'UNBANNED';
ignore[] = 'UNCLOSED';
ignore[] = 'UNDELETE';
ignore[] = 'UNFRAMED';
ignore[] = 'UNHIDABLECOLUMNS';
ignore[] = 'UNIQUEIDENTIFIER';
ignore[] = 'UNITTYPE';
ignore[] = 'UNKNOWNS';
ignore[] = 'UNLISTEN';
ignore[] = 'UNLOCKED';
ignore[] = 'UNLOGGED';
ignore[] = 'UNMOVABLECOLUMNS';
ignore[] = 'UNPARSED';
ignore[] = 'UNPCKHPS';
ignore[] = 'UNPCKLPS';
ignore[] = 'UNPOSTED';
ignore[] = 'UNRECENT';
ignore[] = 'UNSELECT';
ignore[] = 'UNSIGNED';
ignore[] = 'UNSIZABLECOLUMNS';
ignore[] = 'UNSORTED';
ignore[] = 'UNSTABLE';
ignore[] = 'UNSTAGED';
ignore[] = 'UNSTRING';
ignore[] = 'UNTAGGED';
ignore[] = 'UNTRACED';
ignore[] = 'UPCHURCH';
ignore[] = 'UPDATING';
ignore[] = 'UPDDISPO';
ignore[] = 'UPDPHONE';
ignore[] = 'UPDPHOTO';
ignore[] = 'UPLOADED';
ignore[] = 'UPPERENG';
ignore[] = 'URBANIAK';
ignore[] = 'URBANSKI';
ignore[] = 'URITITLU';
ignore[] = 'URLLOCAL';
ignore[] = 'URLLOKAL';
ignore[] = 'URQUHART';
ignore[] = 'USACTIVE';
ignore[] = 'USDOLLAR';
ignore[] = 'USECACHE';
ignore[] = 'USERDATA';
ignore[] = 'USERDEF1';
ignore[] = 'USERDEF2';
ignore[] = 'USERICON';
ignore[] = 'USERINFO';
ignore[] = 'USERLANG';
ignore[] = 'USERLIST';
ignore[] = 'USERMASQUERADING';
ignore[] = 'USERNAME';
ignore[] = 'USERTABS';
ignore[] = 'USERTYPE';
ignore[] = 'USHORTAT';
ignore[] = 'USLEDGER';
ignore[] = 'USLETTER';
ignore[] = 'USUARIODAREVISAO';
ignore[] = 'UTF7IMAP';
ignore[] = 'UYY3TLBUXIEON5NQVUUX6OMPWBZIQNFM';
ignore[] = 'VACATION';
ignore[] = 'VALDIVIA';
ignore[] = 'VALECARD';
ignore[] = 'VALENCIA';
ignore[] = 'VALENTIN';
ignore[] = 'VALIDATE';
ignore[] = 'VALLEJOS';
ignore[] = 'VALLETTA';
ignore[] = 'VALLIERE';
ignore[] = 'VALUEMAX';
ignore[] = 'VALUEMIN';
ignore[] = 'VALVERDE';
ignore[] = 'VANALLEN';
ignore[] = 'VANAUKEN';
ignore[] = 'VANBRUNT';
ignore[] = 'VANBUREN';
ignore[] = 'VANDIVER';
ignore[] = 'VANDOREN';
ignore[] = 'VANDUSEN';
ignore[] = 'VANETTEN';
ignore[] = 'VANFLEET';
ignore[] = 'VANGUARD';
ignore[] = 'VANGUNDY';
ignore[] = 'VANHOOSE';
ignore[] = 'VANHORNE';
ignore[] = 'VANISHED';
ignore[] = 'VANMATRE';
ignore[] = 'VANMETER';
ignore[] = 'VANNATTA';
ignore[] = 'VANSCYOC';
ignore[] = 'VANSLYKE';
ignore[] = 'VANZANDT';
ignore[] = 'VARCHAR2';
ignore[] = 'VARGHESE';
ignore[] = 'VARIABLE';
ignore[] = 'VARIADIC';
ignore[] = 'VARIANCE';
ignore[] = 'VARIANTE';
ignore[] = 'VARINFMT';
ignore[] = 'VARLABEL';
ignore[] = 'VAROITUS';
ignore[] = 'VASSALLO';
ignore[] = 'VBSCRIPT';
ignore[] = 'VCAPTION';
ignore[] = 'VCRSTART';
ignore[] = 'VEIKSMES';
ignore[] = 'VEILLEUX';
ignore[] = 'VEINTIUN';
ignore[] = 'VEKENRNO';
ignore[] = 'VELICINASTRANICE';
ignore[] = 'VENTURES';
ignore[] = 'VERBATIM';
ignore[] = 'VERDUZCO';
ignore[] = 'VERIFIED';
ignore[] = 'VERISIGN';
ignore[] = 'VERONICA';
ignore[] = 'VERSIEID';
ignore[] = 'VERSIOID';
ignore[] = 'VERSIONPUBLISHED';
ignore[] = 'VERSIONS';
ignore[] = 'VERSIONSBENUTZER';
ignore[] = 'VERTICAL';
ignore[] = 'VERVILLE';
ignore[] = 'VFORMATD';
ignore[] = 'VFORMATN';
ignore[] = 'VFORMATW';
ignore[] = 'VFORMATX';
ignore[] = 'VICKNAIR';
ignore[] = 'VICTIMES';
ignore[] = 'VICTORIA';
ignore[] = 'VIDAURRI';
ignore[] = 'VIDEOCON';
ignore[] = 'VIEPERIO';
ignore[] = 'VIEWABLE';
ignore[] = 'VIEWNAME';
ignore[] = 'VIEWPATH';
ignore[] = 'VIEWTYPE';
ignore[] = 'VILLALBA';
ignore[] = 'VILLALON';
ignore[] = 'VILLALTA';
ignore[] = 'VILLEGAS';
ignore[] = 'VILLINES';
ignore[] = 'VINARRAY';
ignore[] = 'VINCENZO';
ignore[] = 'VINEYARD';
ignore[] = 'VIOLETTE';
ignore[] = 'VIRGILIO';
ignore[] = 'VIRGINIA';
ignore[] = 'VISCONTI';
ignore[] = 'VISITING';
ignore[] = 'VITATERE';
ignore[] = 'VITIELLO';
ignore[] = 'VITRINES';
ignore[] = 'VIVEIROS';
ignore[] = 'VIZCAINO';
ignore[] = 'VIZCARRA';
ignore[] = 'VJOURNAL';
ignore[] = 'VLENGTHX';
ignore[] = 'VOLANAANTOERANA1';
ignore[] = 'VOLATILE';
ignore[] = 'VOORHEES';
ignore[] = 'VOORHIES';
ignore[] = 'VORSCHAU';
ignore[] = 'VOSBURGH';
ignore[] = 'VPADDING';
ignore[] = 'VREELAND';
ignore[] = 'VVERBOSE';
ignore[] = 'VVVVVVVV';
ignore[] = 'WAEHRUNG';
ignore[] = 'WAGGENER';
ignore[] = 'WAGGONER';
ignore[] = 'WAGSTAFF';
ignore[] = 'WAKELAND';
ignore[] = 'WALDROUP';
ignore[] = 'WALMSLEY';
ignore[] = 'WALRAVEN';
ignore[] = 'WALTHALL';
ignore[] = 'WANTTABS';
ignore[] = 'WARFIELD';
ignore[] = 'WARNINGS';
ignore[] = 'WARRANTY';
ignore[] = 'WARRINER';
ignore[] = 'WASHBURN';
ignore[] = 'WASINGER';
ignore[] = 'WATANABE';
ignore[] = 'WATCHDOG';
ignore[] = 'WATCHING';
ignore[] = 'WATCHMAN';
ignore[] = 'WATERMAN';
ignore[] = 'WATTHOUR';
ignore[] = 'WEATHERS';
ignore[] = 'WEBALERT';
ignore[] = 'WEBFORGE';
ignore[] = 'WECHSLER';
ignore[] = 'WEERGEGEVENTITEL';
ignore[] = 'WEHMEYER';
ignore[] = 'WEINBERG';
ignore[] = 'WEINMANN';
ignore[] = 'WEISBERG';
ignore[] = 'WEISHAAR';
ignore[] = 'WEISSMAN';
ignore[] = 'WEITZMAN';
ignore[] = 'WELLBORN';
ignore[] = 'WELLIVER';
ignore[] = 'WENDLAND';
ignore[] = 'WENDLING';
ignore[] = 'WERFNAAM';
ignore[] = 'WESTBERG';
ignore[] = 'WESTBURY';
ignore[] = 'WESTCOTT';
ignore[] = 'WESTFALL';
ignore[] = 'WESTGATE';
ignore[] = 'WESTHOFF';
ignore[] = 'WESTLAKE';
ignore[] = 'WESTLING';
ignore[] = 'WESTLUND';
ignore[] = 'WESTOVER';
ignore[] = 'WESTPHAL';
ignore[] = 'WESTRICK';
ignore[] = 'WETHERBY';
ignore[] = 'WEYMOUTH';
ignore[] = 'WHATSAPP';
ignore[] = 'WHATSNEW';
ignore[] = 'WHEATLEY';
ignore[] = 'WHEELOCK';
ignore[] = 'WHELCHEL';
ignore[] = 'WHENEVER';
ignore[] = 'WHISNANT';
ignore[] = 'WHISTLER';
ignore[] = 'WHITACRE';
ignore[] = 'WHITAKER';
ignore[] = 'WHITBECK';
ignore[] = 'WHITCHER';
ignore[] = 'WHITCOMB';
ignore[] = 'WHITELEY';
ignore[] = 'WHITEMAN';
ignore[] = 'WHITENER';
ignore[] = 'WHITESEL';
ignore[] = 'WHITFORD';
ignore[] = 'WHITLOCK';
ignore[] = 'WHITMIRE';
ignore[] = 'WHITMORE';
ignore[] = 'WHITSETT';
ignore[] = 'WHITTIER';
ignore[] = 'WICKLINE';
ignore[] = 'WICKLUND';
ignore[] = 'WIDEVINE';
ignore[] = 'WIEDEMAN';
ignore[] = 'WIGHTMAN';
ignore[] = 'WIKINEVE';
ignore[] = 'WILBANKS';
ignore[] = 'WILBOURN';
ignore[] = 'WILCOXEN';
ignore[] = 'WILCOXON';
ignore[] = 'WILDCARD';
ignore[] = 'WILFREDO';
ignore[] = 'WILHOITE';
ignore[] = 'WILLAIMS';
ignore[] = 'WILLETTE';
ignore[] = 'WILLHITE';
ignore[] = 'WILLIAMS';
ignore[] = 'WILLISON';
ignore[] = 'WIMBERLY';
ignore[] = 'WINBORNE';
ignore[] = 'WINCHELL';
ignore[] = 'WINDOWBACKGROUND';
ignore[] = 'WINFIELD';
ignore[] = 'WINIFRED';
ignore[] = 'WININGER';
ignore[] = 'WINSTEAD';
ignore[] = 'WINUSERS';
ignore[] = 'WISNESKI';
ignore[] = 'WITHDRAW';
ignore[] = 'WITHDRAWUNLOCKED';
ignore[] = 'WITTROCK';
ignore[] = 'WOLFGANG';
ignore[] = 'WOLFGRAM';
ignore[] = 'WONTWORK';
ignore[] = 'WOODBURN';
ignore[] = 'WOODBURY';
ignore[] = 'WOODCOCK';
ignore[] = 'WOODFORD';
ignore[] = 'WOODLAND';
ignore[] = 'WOODRING';
ignore[] = 'WOODRUFF';
ignore[] = 'WOODSIDE';
ignore[] = 'WOODWARD';
ignore[] = 'WOODYARD';
ignore[] = 'WOOLFOLK';
ignore[] = 'WOOLFORD';
ignore[] = 'WORDWRAP';
ignore[] = 'WORKAREA';
ignore[] = 'WORKBOOK';
ignore[] = 'WORKDAYS';
ignore[] = 'WORKFLOW';
ignore[] = 'WORLDMAP';
ignore[] = 'WORTHLEY';
ignore[] = 'WRITABLE';
ignore[] = 'WSTOPSIG';
ignore[] = 'WTERMSIG';
ignore[] = 'XEDITION';
ignore[] = 'XMLCDATA';
ignore[] = 'XMLPARSE';
ignore[] = 'XMLPATCH';
ignore[] = 'XMLQUERY';
ignore[] = 'XMLRPCI4';
ignore[] = 'XMLTABLE';
ignore[] = 'XVWA0987';
ignore[] = 'XVWA1672';
ignore[] = 'XVWA3671';
ignore[] = 'XVWA3876';
ignore[] = 'XVWA4276';
ignore[] = 'XVWA4589';
ignore[] = 'XVWA5642';
ignore[] = 'XVWA7569';
ignore[] = 'XVWA7619';
ignore[] = 'XVWA9680';
ignore[] = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
ignore[] = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
ignore[] = 'YAMAMOTO';
ignore[] = 'YAMASAKI';
ignore[] = 'YATIYAWI';
ignore[] = 'YAZARLAR';
ignore[] = 'YEARFRAC';
ignore[] = 'YEARWEEK';
ignore[] = 'YEARWOOD';
ignore[] = 'YERELAY1';
ignore[] = 'YERELAY2';
ignore[] = 'YERELYIL';
ignore[] = 'YGSOURCE';
ignore[] = 'YIELDING';
ignore[] = 'YIELDMAT';
ignore[] = 'YINGLING';
ignore[] = 'YOBIBYTE';
ignore[] = 'YOCTOBAR';
ignore[] = 'YOKOHAMA';
ignore[] = 'YOKOYAMA';
ignore[] = 'YORUMLAR';
ignore[] = 'YOSHIOKA';
ignore[] = 'YOTTABAR';
ignore[] = 'YOUNGMAN';
ignore[] = 'YOURNAME';
ignore[] = 'YYYYMMDD';
ignore[] = 'YYYYYYNYYNYYYYNN';
ignore[] = 'YYYYYYNYYNYYYYYN';
ignore[] = 'ZACARIAS';
ignore[] = 'ZALEWSKI';
ignore[] = 'ZAMBRANA';
ignore[] = 'ZAMBRANO';
ignore[] = 'ZAMORANO';
ignore[] = 'ZARAGOZA';
ignore[] = 'ZEBIBYTE';
ignore[] = 'ZENDEJAS';
ignore[] = 'ZEPTOBAR';
ignore[] = 'ZERANGUE';
ignore[] = 'ZERINGUE';
ignore[] = 'ZEROFILL';
ignore[] = 'ZETTABAR';
ignore[] = 'ZIEBARTH';
ignore[] = 'ZIEDNAAM';
ignore[] = 'ZIMBABWE';
ignore[] = 'ZIPNAMEL';
ignore[] = 'ZIPSTATE';
ignore[] = 'ZONEINFO';
ignore[] = 'ZREVRANK';
ignore[] = 'ZUKOWSKI';
ignore[] = 'ZUWESTEN';
ignore[] = 'ZWILLING';
ignore[] = 'ZZZAMAIL';
ignore[] = 'ZZZAPASS';
ignore[] = 'ZZZAUSER';
ignore[] = 'STEERING';
ignore[] = 'DAIHATSU';
ignore[] = 'EXTERIOR';
ignore[] = 'MCCXXXIV';
ignore[] = 'VARIANTS';
ignore[] = 'ITERABLE';
ignore[] = 'PASSTHRU';
ignore[] = 'REFTABLE';
ignore[] = 'GLOSSARY';
ignore[] = 'GRADABLE';
ignore[] = 'PIPEFILE';
ignore[] = 'TOPLIMIT';

SQLite format 3   @                                                                   -#   
 #uf
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Getabletraitstraits	CREATE TABLE "traits" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "trait" text,
	 "namespace_id" integer
)bFtablereleasesreleasesCREATE TABLE "releases" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "release" text,
	 "component_id" integer,
	CONSTRAINT "component" FOREIGN KEY ("component_id") REFERENCES "components" ("id")
)E!!qtablenamespacesnamespacesCREATE TABLE "namespaces" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "namespace" text,
	 "release_id" integer
)D!!utableinterfacesinterfacesCREATE TABLE "interfaces" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "interface" text,
	 "namespace_id" integer
)C!!ctabledeprecateddeprecatedCREATE TABLE "deprecated" (
	 "id" integer NOT NULL,
	 "namespace_id" integer,
	 "type" varchar,
	 "cit" varchar,
	 "name" varchar,
	PRIMARY KEY("id"),
	CONSTRAINT "release" FOREIGN KEY ("namespace_id") REFERENCES "namespaces" ("id")
)~B!!GtablecomponentscomponentsCREATE TABLE "components" (
	 "id" integer NOT NULL,
	 "component" text,
	PRIMARY KEY("id")
)P++Ytablesqlite_sequencesqlite_sequenceCREATE TABLE sqlite_sequence(name,seq)AgtableclassesclassesCREATE TABLE "classes" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "class" text,
	 "namespace_id" integer
)       kaSB0 ~qcTH;0vdQ@/sQ7 }rbSB1 







y
k
\
O
?
,

						m	T	@	1		ziWD6%iG-~kQ-p^L;*sZA'X3
~fM=.                     ? /SessionCookieTest> 5PrettyExceptionsTest= 1MethodOverrideTest< +CustomAppMethod; 'SlimFlashTest: -ContentTypesTest9 LogTest8 MyWriter7 /LogFileWriterTest6 -SlimHttpUtilTest5 %ResponseTest4 #RequestTest3 #HeadersTest2 Foo1 +EnvironmentTest0 Slim_View	/ Slim. #Slim_Router- !Slim_Route, +Slim_Middleware"+ GSlim_Middleware_SessionCookie%* MSlim_Middleware_PrettyExceptions#) ISlim_Middleware_MethodOverride( 7Slim_Middleware_Flash!' ESlim_Middleware_ContentTypes& 1Slim_LogFileWriter% Slim_Log$ )Slim_Http_Util# 1Slim_Http_Response" /Slim_Http_Request! /Slim_Http_Headers  3Slim_Exception_Stop  CSlim_Exception_RequestSlash 3Slim_Exception_Pass -Slim_Environment ViewTest SlimTest %CustomLogger !CustomView FlashTest RouteTest !RouterMock !RouterTest LogTest MyLogger !LoggerTest UriTest %ResponseTest #RequestTest !CookieTest Foo Slim_View	 Slim
 5Slim_Session_Handler!	 ESlim_Session_Handler_Cookies 1Slim_Session_Flash #Slim_Router !Slim_Route #Slim_Logger Slim_Log 'Slim_Http_Uri 1Slim_Http_Response /Slim_Http_Request  3Slim_Http_CookieJar -Slim_Http_Cookie~ 3Slim_Exception_Stop } CSlim_Exception_RequestSlash| 3Slim_Exception_Pass{ ViewTestz SlimTesty %CustomLoggerx !CustomVieww RouteTestv !RouterMocku !RouterTestt LogTests MyLoggerr !LoggerTestq !TestLoggerp UriTesto %ResponseTestn #RequestTestm !CookieTestl FlashTestk Slim_View	j Slimi 5Slim_Session_Handler!h ESlim_Session_Handler_Cookiesg 1Slim_Session_Flashf #Slim_Routere !Slim_Routed #Slim_Loggerc Slim_Logb 'Slim_Http_Uria 1Slim_Http_Response` /Slim_Http_Request_ 3Slim_Http_CookieJar^ -Slim_Http_Cookie] 3Slim_Exception_Stop \ CSlim_Exception_RequestSlash[ 3Slim_Exception_PassZ TwigViewY !SmartyViewX %MustacheViewW BlitzViewV xBlitzU ViewTestT UriTestS SlimTestR %CustomLoggerQ !CustomViewP RouteTestO !RouterMockN !RouterTestM %ResponseTestL #RequestTestK LogTestJ MyLoggerI !LoggerTestH !TestLoggerG !CookieTestF AllTestsE Slim_View	D SlimC #Slim_RouterB !Slim_RouteA #Slim_Logger@ Slim_Log? 'Slim_Http_Uri> 1Slim_Http_Response= /Slim_Http_Request< 3Slim_Http_CookieJar; -Slim_Http_Cookie: 3Slim_Exception_Stop 9 CSlim_Exception_RequestSlash8 3Slim_Exception_Pass7 TwigView6 !SmartyView5 %MustacheView4 BlitzView3 xBlitz2 ViewTest1 SlimTest0 %CustomLogger/ !CustomView. RouteTest- !RouterMock, !RouterTest+ %ResponseTest* #RequestTest) LogTest( MyLogger' !LoggerTest& !TestLogger% !CookieTest$ AllTests	# View" /SlimStopException! ?SlimRequestSlashException  /SlimPassException	 Slim Router
 Route Response Request Logger Log CookieJar Cookie 	TwigView !	SmartyView %	MustacheView 	ViewTest 	SlimTest !	CustomView 	RouteTest !	RouterMock !	RouterTest %	ResponseTest #	RequestTest 	AllTests
 	View	 /	SlimStopException ?	SlimRequestSlashException /	SlimPassException 	Slim
 	Router	 	Route 	Res   C   
   P      
?                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       !namespaces    traits   
traits!interfacesQclassesDreleases                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  slim                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 Q u_H-u^C,tYB"oX8nN4






d
J
(
						y	^	;	 	
kH-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           Q -HeadersInterface P 5EnvironmentInterface O -CookiesInterface N +RouterInterface M )RouteInterface L 3RouteGroupInterface !K CInvocationStrategyInterface J 3CollectionInterface I ?CallableResolverInterface H -HeadersInterface G 5EnvironmentInterface F -CookiesInterface E +RouterInterface D )RouteInterface C 3RouteGroupInterface !B CInvocationStrategyInterface A 3CollectionInterface @ ?CallableResolverInterface ? -HeadersInterfacew> 5EnvironmentInterfacew= -CookiesInterfacew< +RouterInterfacev; )RouteInterfacev: 3RouteGroupInterfacev 9 CInvocationStrategyInterfacev8 3CollectionInterfacev7 ?CallableResolverInterfacev6 -HeadersInterfacek5 5EnvironmentInterfacek4 -CookiesInterfacek3 +RouterInterfacej2 )RouteInterfacej1 3RouteGroupInterfacej 0 CInvocationStrategyInterfacej/ 3CollectionInterfacej. ?CallableResolverInterfacej- -HeadersInterface`, 5EnvironmentInterface`+ -CookiesInterface`* +RouterInterface_) )RouteInterface_( 3RouteGroupInterface_ ' CInvocationStrategyInterface_& 3CollectionInterface_% ?CallableResolverInterface_$ -HeadersInterfaceU# 5EnvironmentInterfaceU" -CookiesInterfaceU! +RouterInterfaceT  )RouteInterfaceT 3RouteGroupInterfaceT  CInvocationStrategyInterfaceT 3CollectionInterfaceT ?CallableResolverInterfaceT -HeadersInterfaceJ 5EnvironmentInterfaceJ -CookiesInterfaceJ +RouterInterfaceI )RouteInterfaceI 3RouteGroupInterfaceI  CInvocationStrategyInterfaceI 3CollectionInterfaceI ?CallableResolverInterfaceI -HeadersInterface? 5EnvironmentInterface? -CookiesInterface? +RouterInterface> )RouteInterface> 3RouteGroupInterface>  CInvocationStrategyInterface> 3CollectionInterface>
 ?CallableResolverInterface>	 -HeadersInterface4 5EnvironmentInterface4 -CookiesInterface4 +RouterInterface3 )RouteInterface3 3RouteGroupInterface3  CInvocationStrategyInterface3 3CollectionInterface3 ?CallableResolverInterface3   cs]L5.!~wjTA0wfOH;%hPD.qYM7"





z
b
V
@
+
							k	_	I	4		thR=uiS>vjT?naJ4|c                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    /\Slim\Tests\Mocks -\Slim\Tests\Http 5\Slim\Tests\Handlers   #\Slim\Tests 7\Slim\Interfaces\Http -\Slim\Interfaces !\Slim\Http ?\Slim\Handlers\Strategies )\Slim\Handlers
 +\Slim\Exception
	 \Slim /\Slim\Tests\Mocks -\Slim\Tests\Http 5\Slim\Tests\Handlers   #\Slim\Tests 7\Slim\Interfaces\Http -\Slim\Interfaces !\Slim\Http  ?\Slim\Handlers\Strategies )\Slim\Handlers~ +\Slim\Exception
} \Slim| /\Slim\Tests\Mocks{ -\Slim\Tests\Httpz 5\Slim\Tests\Handlers y x #\Slim\Testsw 7\Slim\Interfaces\Httpv -\Slim\Interfacesu !\Slim\Httpt ?\Slim\Handlers\Strategiess )\Slim\Handlersr +\Slim\Exception
q \Slimp /\Slim\Tests\Mockso -\Slim\Tests\Httpn 5\Slim\Tests\Handlers m l #\Slim\Testsk 7\Slim\Interfaces\Httpj -\Slim\Interfacesi !\Slim\Httph ?\Slim\Handlers\Strategiesg )\Slim\Handlersf +\Slim\Exception
e \Slimd /\Slim\Tests\Mocksc -\Slim\Tests\Httpb 5\Slim\Tests\Handlersa #\Slim\Tests` 7\Slim\Interfaces\Http_ -\Slim\Interfaces^ !\Slim\Http] ?\Slim\Handlers\Strategies\ )\Slim\Handlers[ +\Slim\Exception
Z \SlimY /\Slim\Tests\MocksX -\Slim\Tests\HttpW 5\Slim\Tests\HandlersV #\Slim\TestsU 7\Slim\Interfaces\HttpT -\Slim\InterfacesS !\Slim\HttpR ?\Slim\Handlers\StrategiesQ )\Slim\HandlersP +\Slim\Exception
O \SlimN /\Slim\Tests\MocksM -\Slim\Tests\HttpL 5\Slim\Tests\HandlersK #\Slim\TestsJ 7\Slim\Interfaces\HttpI -\Slim\InterfacesH !\Slim\HttpG ?\Slim\Handlers\StrategiesF )\Slim\HandlersE +\Slim\Exception
D \SlimC /\Slim\Tests\MocksB -\Slim\Tests\HttpA 5\Slim\Tests\Handlers@ #\Slim\Tests? 7\Slim\Interfaces\Http> -\Slim\Interfaces= !\Slim\Http< ?\Slim\Handlers\Strategies; )\Slim\Handlers: +\Slim\Exception
9 \Slim8 /\Slim\Tests\Mocks7 -\Slim\Tests\Http6 5\Slim\Tests\Handlers5 #\Slim\Tests4 7\Slim\Interfaces\Http3 -\Slim\Interfaces2 !\Slim\Http1 ?\Slim\Handlers\Strategies0 )\Slim\Handlers/ +\Slim\Exception
. \Slim - , -\Slim\Middleware+ !\Slim\Http* %\Slim\Helper) +\Slim\Exception
( \Slim ' & -\Slim\Middleware% !\Slim\Http$ %\Slim\Helper# +\Slim\Exception
" \Slim !   -\Slim\Middleware !\Slim\Http %\Slim\Helper +\Slim\Exception
 \Slim  
 -\Slim\Middleware
 !\Slim\Http
 %\Slim\Helper
 +\Slim\Exception

 \Slim
  	 -\Slim\Middleware	 !\Slim\Http	 +\Slim\Exception	
 \Slim	   -\Slim\Middleware !\Slim\Http +\Slim\Exception
 \Slim  
 -\Slim\Middleware	 !\Slim\Http +\Slim\Exception
 \Slim            	: /$~seZOA                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	 	3.7.0	 	3.3.0	 	2.6.0		 	2.2.0	 	1.5.0	 	1.0.0   	3	 	3.8.0   	 	3.6.0	 	3.5.0	 	3.4.0   	 	3.2.0	 	3.1.0	 	3.0.0   	 	2.5.0	 	2.4.0	
 	2.3.0   	 	2.1.0	 	2.0.0	 	1.6.0   	 	1.3.0	 	1.2.0	 	1.1.0    gL+w\;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        5MiddlewareAwareTrait   ACallableResolverAwareTrait  5MiddlewareAwareTrait} ACallableResolverAwareTrait} 5MiddlewareAwareTraitq ACallableResolverAwareTraitq 5MiddlewareAwareTraite ACallableResolverAwareTraite
 5MiddlewareAwareTraitZ	 ACallableResolverAwareTraitZ 5MiddlewareAwareTraitO ACallableResolverAwareTraitO 5MiddlewareAwareTraitD ACallableResolverAwareTraitD 5MiddlewareAwareTrait9 ACallableResolverAwareTrait9 5MiddlewareAwareTrait. ACallableResolverAwareTrait.    kaSB0 ~qcTH;0vdQ@/sQ7 }rbSB1 







y
k
\
O
?
,

						m	T	@	1		ziWD6%iG-~kQ-p^L;*sZA'X3
~fM=.                     ? /SessionCookieTest> 5PrettyExceptionsTest= 1MethodOverrideTest< +CustomAppMethod; 'SlimFlashTest: -ContentTypesTest9 LogTest8 MyWriter7 /LogFileWriterTest6 -SlimHttpUtilTest5 %ResponseTest4 #RequestTest3 #HeadersTest2 Foo1 +EnvironmentTest0 Slim_View	/ Slim. #Slim_Router- !Slim_Route, +Slim_Middleware"+ GSlim_Middleware_SessionCookie%* MSlim_Middleware_PrettyExceptions#) ISlim_Middleware_MethodOverride( 7Slim_Middleware_Flash!' ESlim_Middleware_ContentTypes& 1Slim_LogFileWriter% Slim_Log$ )Slim_Http_Util# 1Slim_Http_Response" /Slim_Http_Request! /Slim_Http_Headers  3Slim_Exception_Stop  CSlim_Exception_RequestSlash 3Slim_Exception_Pass -Slim_Environment ViewTest SlimTest %CustomLogger !CustomView FlashTest RouteTest !RouterMock !RouterTest LogTest MyLogger !LoggerTest UriTest %ResponseTest #RequestTest !CookieTest Foo Slim_View	 Slim
 5Slim_Session_Handler!	 ESlim_Session_Handler_Cookies 1Slim_Session_Flash #Slim_Router !Slim_Route #Slim_Logger Slim_Log 'Slim_Http_Uri 1Slim_Http_Response /Slim_Http_Request  3Slim_Http_CookieJar -Slim_Http_Cookie~ 3Slim_Exception_Stop } CSlim_Exception_RequestSlash| 3Slim_Exception_Pass{ ViewTestz SlimTesty %CustomLoggerx !CustomVieww RouteTestv !RouterMocku !RouterTestt LogTests MyLoggerr !LoggerTestq !TestLoggerp UriTesto %ResponseTestn #RequestTestm !CookieTestl FlashTestk Slim_View	j Slimi 5Slim_Session_Handler!h ESlim_Session_Handler_Cookiesg 1Slim_Session_Flashf #Slim_Routere !Slim_Routed #Slim_Loggerc Slim_Logb 'Slim_Http_Uria 1Slim_Http_Response` /Slim_Http_Request_ 3Slim_Http_CookieJar^ -Slim_Http_Cookie] 3Slim_Exception_Stop \ CSlim_Exception_RequestSlash[ 3Slim_Exception_PassZ TwigViewY !SmartyViewX %MustacheViewW BlitzViewV xBlitzU ViewTestT UriTestS SlimTestR %CustomLoggerQ !CustomViewP RouteTestO !RouterMockN !RouterTestM %ResponseTestL #RequestTestK LogTestJ MyLoggerI !LoggerTestH !TestLoggerG !CookieTestF AllTestsE Slim_View	D SlimC #Slim_RouterB !Slim_RouteA #Slim_Logger@ Slim_Log? 'Slim_Http_Uri> 1Slim_Http_Response= /Slim_Http_Request< 3Slim_Http_CookieJar; -Slim_Http_Cookie: 3Slim_Exception_Stop 9 CSlim_Exception_RequestSlash8 3Slim_Exception_Pass7 TwigView6 !SmartyView5 %MustacheView4 BlitzView3 xBlitz2 ViewTest1 SlimTest0 %CustomLogger/ !CustomView. RouteTest- !RouterMock, !RouterTest+ %ResponseTest* #RequestTest) LogTest( MyLogger' !LoggerTest& !TestLogger% !CookieTest$ AllTests	# View" /SlimStopException! ?SlimRequestSlashException  /SlimPassException	 Slim Router
 Route Response Request Logger Log CookieJar Cookie 	TwigView !	SmartyView %	MustacheView 	ViewTest 	SlimTest !	CustomView 	RouteTest !	RouterMock !	RouterTest %	ResponseTest #	RequestTest 	AllTests
 	View	 /	SlimStopException ?	SlimRequestSlashException /	SlimPassException 	Slim
 	Router	 	Route 	Response 	Request
 	Cookie   a aH3wcSC3gK8&
zfR:&v_L2 	






u
g
T
E
*
					{	c	U	B	1	 	wfWB6&	~bP9$~iV<,xa~kQ-p^L;*sZA'X3
~fM=.                     ? /SessionCookieTest> 5PrettyExceptionsTest= 1MethodOverrideTest< +CustomAppMethod; 'SlimFlashTest: -ContentTypesTest9 LogTest8 MyWriter7 /LogFileWriterTest6 -SlimHttpUtilTest5 %ResponseTest4 #RequestTest3 #HeadersTest2 Foo1 +EnvironmentTest0 Slim_View	/ Slim. #Slim_Router- !Slim_Route, +Slim_Middleware"+ GSlim_Middleware_SessionCookie%* MSlim_Middleware_PrettyExceptions#) ISlim_Middleware_MethodOverride( 7Slim_Middleware_Flash!' ESlim_Middleware_ContentTypes& 1Slim_LogFileWriter% Slim_Log$ )Slim_Http_Util# 1Slim_Http_Response" /Slim_Http_Request! /Slim_Http_Headers  3Slim_Exception_Stop  CSlim_Exception_RequestSlash 3Slim_Exception_Pass -Slim_Environment ViewTest SlimTest %CustomLogger !CustomView FlashTest RouteTest !RouterMockD )StaticCallable C Stackable B /SmallChunksStream A !MockAction @ )MiddlewareStub ? #MessageStub > 'InvokableTest = 9InvocationStrategyTest < %CallableTest ; UriTest : /UploadedFilesTest 9 !StreamTest 8 %ResponseTest 7 #RequestTest 6 +RequestBodyTest 5 #MessageTest 4 #HeadersTest 3 +EnvironmentTest 2 #CookiesTest 1 BodyTest 0 %PhpErrorTest / %NotFoundTest . )NotAllowedTest - ErrorTest , 3AbstractHandlerTest + RouteTest * !RouterTest ) 3MiddlewareAwareTest ( 5DeferredCallableTest ' 'ContainerTest & )CollectionTest % 5CallableResolverTest $ AppTest 	# Uri " %UploadedFile ! Stream   Response  #RequestBody  Request  Message  Headers  #Environment  Cookies 
 Body  3RequestResponseArgs  +RequestResponse  PhpError  NotFound  !NotAllowed  Error  +AbstractHandler  'AbstractError  'SlimException  /NotFoundException  ?MethodNotAllowedException  9InvalidMethodException % KContainerValueNotFoundException  1ContainerException 
 Router 	 !RouteGroup  Route  Routable  -DeferredCallable  ;DefaultServicesProvider  Container  !Collection  -CallableResolver 	 App   )StaticCallable  Stackable ~ /SmallChunksStream } !MockAction | )MiddlewareStub { #MessageStub z 'InvokableTest y 9InvocationStrategyTest x %CallableTest w UriTest v /UploadedFilesTest u !StreamTest t %ResponseTest s #RequestTest r +RequestBodyTest q #MessageTest p #HeadersTest o +EnvironmentTest n #CookiesTest m BodyTest l %PhpErrorTest k %NotFoundTest j )NotAllowedTest i ErrorTest h 3AbstractHandlerTest g RouteTest f !RouterTest e 3MiddlewareAwareTest d 5DeferredCallableTest c 'ContainerTest b )CollectionTest a 5CallableResolverTest ` AppTest 	_ Uri ^ %UploadedFile ] Stream \ Response [ #RequestBody Z Request Y Message X Headers W #Environment V Cookies 
U Body T 3RequestResponseArgs S +RequestResponse R PhpErrorQ NotFoundP !NotAllowed
O ErrorN +AbstractHandlerM 'AbstractErrorL 'SlimException~K /NotFoundException~J ?MethodNotAllowedException~$I KContainerValueNotFoundException~H 1ContainerException~G Router}F !RouteGroup}
E Route}D Routable}    |o]M6 {paE/~gTA*wfPE-
oN5 







r
c
T
A
1
#

						w	e	T	C	-			{bS?*cK;.yiYB'|mQ;&
nWD1q[I8"vhN'                 
 !NotAllowed\
	 Error\ +AbstractHandler\ 'AbstractError\ 'SlimException[ /NotFoundException[ ?MethodNotAllowedException[$ KContainerValueNotFoundException[ 1ContainerException[ RouterZ  !RouteGroupZ
 RouteZ~ RoutableZ} -DeferredCallableZ| ;DefaultServicesProviderZ{ ContainerZz !CollectionZy -CallableResolverZx AppZw )StaticCallableYv StackableYu !MockActionYt )MiddlewareStubYs #MessageStubYr 'InvokableTestYq 9InvocationStrategyTestYp %CallableTestYo UriTestXn /UploadedFilesTestXm %ResponseTestXl #RequestTestXk +RequestBodyTestXj #MessageTestXi #HeadersTestXh +EnvironmentTestXg #CookiesTestXf BodyTestXe %NotFoundTestWd )NotAllowedTestWc ErrorTestWb RouteTestVa !RouterTestV` 3MiddlewareAwareTestV_ 5DeferredCallableTestV^ 'ContainerTestV] )CollectionTestV\ 5CallableResolverTestV[ AppTestVZ UriSY %UploadedFileSX StreamSW ResponseSV #RequestBodySU RequestST MessageSS HeadersSR #EnvironmentSQ CookiesS	P BodySO 3RequestResponseArgsRN +RequestResponseRM PhpErrorQL NotFoundQK !NotAllowedQ
J ErrorQI 'SlimExceptionPH /NotFoundExceptionPG ?MethodNotAllowedExceptionP$F KContainerValueNotFoundExceptionPE RouterOD !RouteGroupO
C RouteOB RoutableOA -DeferredCallableO@ ;DefaultServicesProviderO? ContainerO> !CollectionO= -CallableResolverO< AppO; )StaticCallableN: StackableN9 !MockActionN8 )MiddlewareStubN7 #MessageStubN6 'InvokableTestN5 %CallableTestN4 UriTestM3 /UploadedFilesTestM2 %ResponseTestM1 #RequestTestM0 +RequestBodyTestM/ #MessageTestM. #HeadersTestM- +EnvironmentTestM, #CookiesTestM+ BodyTestM* %NotFoundTestL) )NotAllowedTestL( ErrorTestL' RouteTestK& !RouterTestK% 3MiddlewareAwareTestK$ 5DeferredCallableTestK# 'ContainerTestK" )CollectionTestK! 5CallableResolverTestK  AppTestK UriH %UploadedFileH StreamH ResponseH #RequestBodyH RequestH MessageH HeadersH #EnvironmentH CookiesH	 BodyH 3RequestResponseArgsG +RequestResponseG PhpErrorF NotFoundF !NotAllowedF
 ErrorF 'SlimExceptionE /NotFoundExceptionE ?MethodNotAllowedExceptionE$ KContainerValueNotFoundExceptionE
 RouterD	 !RouteGroupD
 RouteD RoutableD -DeferredCallableD ;DefaultServicesProviderD ContainerD !CollectionD -CallableResolverD AppD  )StaticCallableC StackableC~ !MockActionC} )MiddlewareStubC| #MessageStubC{ 'InvokableTestCz %CallableTestCy UriTestBx /UploadedFilesTestBw %ResponseTestBv #RequestTestBu +RequestBodyTestBt #MessageTestBs #HeadersTestBr +EnvironmentTestBq #CookiesTestBp BodyTestBo %NotFoundTestAn )NotAllowedTestAm ErrorTestAl RouteTest@k !RouterTest@j 3MiddlewareAwareTest@i 'ContainerTest@h )CollectionTest@g 5CallableResolverTest@f AppTest@e Uri=d %UploadedFile=c Stream=b Response=a #RequestBody=` Request=_ Message=^ Headers=] #Environment=\ Cookies=	[ Body=Z 3RequestResponseArgs<Y +RequestResponse<X NotFound;W !NotAllowed;
V Error;U 'SlimException:T /NotFoundException:S ?MethodNotAllowedException:$R KContainerValueNotFoundException:Q Router9    x`P@-"rfRE/~oZB-tcQ9)yj[K?+







g
W
H
3

						u	_	M	<	*		~rfWH8,lTD5 xbL:) xk]QE9-"u^SD1~gM1{k[H=,       Headers
 Cookies	 Set	 Stop	 Pass	 View	 Slim Router
 Route !Middleware LogWriter  Log #Environment~ ViewTest} SlimTest| -CustomMiddleware{ Derivedz +EchoErrorLoggery !CustomViewx RouteTestw !RouterTestv )MiddlewareTestu %MyMiddlewaret /SessionCookieTests 5PrettyExceptionsTestr 1MethodOverrideTestq +CustomAppMethodp 'SlimFlashTesto -ContentTypesTestn 'LogWriterTestm LogTestl MyWriterk -SlimHttpUtilTestj %ResponseTesti #RequestTesth #HeadersTestg #CookiesTestf SetTeste Food +EnvironmentTestc 'SessionCookieb -PrettyExceptionsa )MethodOverride
` Flash_ %ContentTypes	^ Util] Response\ Request[ HeadersZ CookiesY Set	X Stop	W Pass	V View	U SlimT Router
S RouteR !MiddlewareQ LogWriterP LogO #EnvironmentN ViewTestM SlimTestL -CustomMiddlewareK DerivedJ +EchoErrorLoggerI !CustomViewH RouteTestG !RouterTestF )MiddlewareTestE )My_ApplicationD 'My_MiddlewareC /SessionCookieTestB 5PrettyExceptionsTestA 1MethodOverrideTest@ +CustomAppMethod? 'SlimFlashTest> -ContentTypesTest= 'LogWriterTest< LogTest; MyWriter: -SlimHttpUtilTest9 %ResponseTest8 #RequestTest7 #HeadersTest6 Foo5 +EnvironmentTest4 'SessionCookie3 -PrettyExceptions2 )MethodOverride
1 Flash0 %ContentTypes	/ Util. Response- Request, Headers	+ Stop	* Pass	) View	( Slim' Router
& Route% !Middleware$ LogWriter# Log" #Environment! ViewTest  SlimTest -CustomMiddleware !CustomView RouteTest !RouterTest )MiddlewareTest )My_Application 'My_Middleware /SessionCookieTest 5PrettyExceptionsTest 1MethodOverrideTest +CustomAppMethod 'SlimFlashTest -ContentTypesTest 'LogWriterTest LogTest MyWriter -SlimHttpUtilTest %ResponseTest #RequestTest #HeadersTest Foo
 +EnvironmentTest	 'SessionCookie -PrettyExceptions )MethodOverride
 Flash %ContentTypes	 Util Response Request Headers	  Stop %RequestSlash	~ Pass	} View	| Slim{ Router
z Routey !Middlewarex LogWriterw Logv #Environmentu ViewTestt SlimTests -CustomMiddlewarer !CustomViewq RouteTestp !RouterTesto )MiddlewareTestn )My_Applicationm 'My_Middlewarel /SessionCookieTestk 5PrettyExceptionsTestj 1MethodOverrideTesti +CustomAppMethodh 'SlimFlashTestg -ContentTypesTestf 'LogWriterTeste LogTestd MyWriterc -SlimHttpUtilTestb %ResponseTesta #RequestTest` #HeadersTest_ Foo^ +EnvironmentTest] 'SessionCookie
\ -PrettyExceptions
[ )MethodOverride

Z Flash
Y %ContentTypes
	X Util	W Response	V Request	U Headers		T StopS %RequestSlash	R Pass	Q View	P SlimO Router
N RouteM !MiddlewareL LogWriterK LogJ #EnvironmentI ViewTestH SlimTestG -CustomMiddlewareF !CustomViewE RouteTestD !RouterMockC !RouterTestB )MiddlewareTestA )My_Application@ 'My_Middleware    qbS@0"vdSB,zaR> m[J+t[F1







{
l
]
N
;
+

								q	_	N	3	"	mZF4q`J?'vO. ~cWH5&wbF+{dQ>' lVD+             C -DeferredCallable}B ;DefaultServicesProvider}A Container}@ !Collection}? -CallableResolver}> App}= )StaticCallable|< Stackable|; /SmallChunksStream|: !MockAction|9 )MiddlewareStub|8 #MessageStub|7 'InvokableTest|6 9InvocationStrategyTest|5 %CallableTest|4 UriTest{3 /UploadedFilesTest{2 !StreamTest{1 %ResponseTest{0 #RequestTest{/ +RequestBodyTest{. #MessageTest{- #HeadersTest{, +EnvironmentTest{+ #CookiesTest{* BodyTest{) %PhpErrorTestz( %NotFoundTestz' )NotAllowedTestz& ErrorTestz% 3AbstractHandlerTestz$ RouteTestx# !RouterTestx" 3MiddlewareAwareTestx! 5DeferredCallableTestx  'ContainerTestx )CollectionTestx 5CallableResolverTestx AppTestx Uriu %UploadedFileu Streamu Responseu #RequestBodyu Requestu Messageu Headersu #Environmentu Cookiesu	 Bodyu 3RequestResponseArgst +RequestResponset PhpErrors NotFounds !NotAlloweds
 Errors +AbstractHandlers
 'AbstractErrors	 'SlimExceptionr /NotFoundExceptionr ?MethodNotAllowedExceptionr$ KContainerValueNotFoundExceptionr 1ContainerExceptionr Routerq !RouteGroupq
 Routeq Routableq  -DeferredCallableq ;DefaultServicesProviderq~ Containerq} !Collectionq| -CallableResolverq{ Appqz )StaticCallablepy Stackablepx /SmallChunksStreampw !MockActionpv )MiddlewareStubpu #MessageStubpt 'InvokableTestps 9InvocationStrategyTestpr %CallableTestpq UriTestop /UploadedFilesTestoo !StreamTeston %ResponseTestom #RequestTestol +RequestBodyTestok #MessageTestoj #HeadersTestoi +EnvironmentTestoh #CookiesTestog BodyTestof %PhpErrorTestne %NotFoundTestnd )NotAllowedTestnc ErrorTestnb 3AbstractHandlerTestna RouteTestl` !RouterTestl_ 3MiddlewareAwareTestl^ 5DeferredCallableTestl] 'ContainerTestl\ )CollectionTestl[ 5CallableResolverTestlZ AppTestlY UriiX %UploadedFileiW StreamiV ResponseiU #RequestBodyiT RequestiS MessageiR HeadersiQ #EnvironmentiP Cookiesi	O BodyiN 3RequestResponseArgshM +RequestResponsehL PhpErrorgK NotFoundgJ !NotAllowedg
I ErrorgH +AbstractHandlergG 'AbstractErrorgF 'SlimExceptionfE /NotFoundExceptionfD ?MethodNotAllowedExceptionf$C KContainerValueNotFoundExceptionfB 1ContainerExceptionfA Routere@ !RouteGroupe
? Routee> Routablee= -DeferredCallablee< ;DefaultServicesProvidere; Containere: !Collectione9 -CallableResolvere8 Appe7 )StaticCallabled6 Stackabled5 /SmallChunksStreamd4 !MockActiond3 )MiddlewareStubd2 #MessageStubd1 'InvokableTestd0 9InvocationStrategyTestd/ %CallableTestd. UriTestc- /UploadedFilesTestc, %ResponseTestc+ #RequestTestc* +RequestBodyTestc) #MessageTestc( #HeadersTestc' +EnvironmentTestc& #CookiesTestc% BodyTestc$ %NotFoundTestb# )NotAllowedTestb" ErrorTestb! RouteTesta  !RouterTesta 3MiddlewareAwareTesta 5DeferredCallableTesta 'ContainerTesta )CollectionTesta 5CallableResolverTesta AppTesta Uri^ %UploadedFile^ Stream^ Response^ #RequestBody^ Request^ Message^ Headers^ #Environment^ Cookies^	 Body^ 3RequestResponseArgs] +RequestResponse] PhpError\ NotFound\    qZO@-zcI- wgWD9(	wcV@(}m^I1





z
[
G
6
$
									x	j	^	R	F	:	/	 		k`Q>+tZ>%|mUE5* jQ</m]O;0!uaQ>'r_I7&         P !RouteGroup9
O Route9N Routable9M Container9L !Collection9K -CallableResolver9J App9I )StaticCallable8H Stackable8G !MockAction8F )MiddlewareStub8E #MessageStub8D 'InvokableTest8C %CallableTest8B UriTest7A /UploadedFilesTest7@ %ResponseTest7? #RequestTest7> +RequestBodyTest7= #MessageTest7< #HeadersTest7; +EnvironmentTest7: #CookiesTest79 BodyTest78 %NotFoundTest67 )NotAllowedTest66 ErrorTest65 RouteTest54 !RouterTest53 3MiddlewareAwareTest52 'ContainerTest51 )CollectionTest50 5CallableResolverTest5/ AppTest5. Uri2- %UploadedFile2, Stream2+ Response2* #RequestBody2) Request2( Message2' Headers2& #Environment2% Cookies2	$ Body2# 3RequestResponseArgs1" +RequestResponse1! NotFound0  !NotAllowed0
 Error0 'SlimException/ /NotFoundException/ ?MethodNotAllowedException/$ KContainerValueNotFoundException/ Router. !RouteGroup.
 Route. Routable. Container. !Collection. -CallableResolver. App. ViewTest- SlimTest- -CustomMiddleware- Derived- +EchoErrorLogger- !CustomView- RouteTest- %FooTestClass-
 ;LazyInitializeTestClass-	 !RouterTest- )MiddlewareTest- %MyMiddleware- /SessionCookieTest- 5PrettyExceptionsTest- 1MethodOverrideTest- +CustomAppMethod- 'SlimFlashTest- -ContentTypesTest-  'LogWriterTest- LogTest-~ MyWriter-} -SlimHttpUtilTest-| %ResponseTest-{ #RequestTest-z #HeadersTest-y #CookiesTest-x SetTest-w Foo-v +EnvironmentTest-u 'SessionCookie,t -PrettyExceptions,s )MethodOverride,
r Flash,q %ContentTypes,	p Util+o Response+n Request+m Headers+l Cookies+k Set*	j Stop)	i Pass)	h View(	g Slim(f Router(
e Route(d !Middleware(c LogWriter(b Log(a #Environment(` ViewTest'_ SlimTest'^ -CustomMiddleware'] Derived'\ +EchoErrorLogger'[ !CustomView'Z RouteTest'Y %FooTestClass'X ;LazyInitializeTestClass'W !RouterTest'V )MiddlewareTest'U %MyMiddleware'T /SessionCookieTest'S 5PrettyExceptionsTest'R 1MethodOverrideTest'Q +CustomAppMethod'P 'SlimFlashTest'O -ContentTypesTest'N 'LogWriterTest'M LogTest'L MyWriter'K -SlimHttpUtilTest'J %ResponseTest'I #RequestTest'H #HeadersTest'G #CookiesTest'F SetTest'E Foo'D +EnvironmentTest'C 'SessionCookie&B -PrettyExceptions&A )MethodOverride&
@ Flash&? %ContentTypes&	> Util%= Response%< Request%; Headers%: Cookies%9 Set$	8 Stop#	7 Pass#	6 View"	5 Slim"4 Router"
3 Route"2 !Middleware"1 LogWriter"0 Log"/ #Environment". ViewTest!- SlimTest!, -CustomMiddleware!+ Derived!* +EchoErrorLogger!) !CustomView!( RouteTest!' !RouterTest!& )MiddlewareTest!% %MyMiddleware!$ /SessionCookieTest!# 5PrettyExceptionsTest!" 1MethodOverrideTest!! +CustomAppMethod!  'SlimFlashTest! -ContentTypesTest! 'LogWriterTest! LogTest! MyWriter! -SlimHttpUtilTest! %ResponseTest! #RequestTest! #HeadersTest! #CookiesTest! SetTest! Foo! +EnvironmentTest! 'SessionCookie  -PrettyExceptions  )MethodOverride 
 Flash  %ContentTypes 	 Util Response Requestfunctions[] = preg_match
functions[] = preg_match_all
functions[] = preg_replace
functions[] = preg_replace_callback
functions[] = preg_filter
functions[] = preg_split
functions[] = preg_quote
functions[] = preg_grep
functions[] = preg_last_error
functions[] = preg_replace_callback_array

constants[] = 'PREG_PATTERN_ORDER';
constants[] = 'PREG_SET_ORDER';
constants[] = 'PREG_OFFSET_CAPTURE';
constants[] = 'PREG_SPLIT_NO_EMPTY';
constants[] = 'PREG_SPLIT_DELIM_CAPTURE';
constants[] = 'PREG_SPLIT_OFFSET_CAPTURE';
constants[] = 'PREG_GREP_INVERT';
constants[] = 'PREG_NO_ERROR';
constants[] = 'PREG_INTERNAL_ERROR';
constants[] = 'PREG_BACKTRACK_LIMIT_ERROR';
constants[] = 'PREG_RECURSION_LIMIT_ERROR';
constants[] = 'PREG_BAD_UTF8_ERROR';
constants[] = 'PREG_BAD_UTF8_OFFSET_ERROR';
constants[] = 'PCRE_VERSION';

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

SQLite format 3   @   "   f   
                                                     " .
> 		 u#f
		                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
qtablefunctionsfunctions)CREATE TABLE "functions" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "function" text,
	 "namespace_id" integer
)   ;;table_functions_old_20171212_functions_old_20171212!CREATE TABLE "_functions_old_20171212" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "class" text,
	 "namespace_id" integer
)etabletraitstraits	CREATE TABLE "traits" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "trait" text,
	 "namespace_id" integer
)btablereleasesreleasesCREATE TABLE "releases" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "release" text,
	 "component_id" integer,
	CONSTRAINT "component" FOREIGN KEY ("component_id") REFERENCES "components" ("id")
)!!qtablenamespacesnamespacesCREATE TABLE "namespaces" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "namespace" text,
	 "release_id" integer
)!!utableinterfacesinterfacesCREATE TABLE "interfaces" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "interface" text,
	 "namespace_id" integer
)!!ctabledeprecateddeprecatedCREATE TABLE "deprecated" (
	 "id" integer NOT NULL,
	 "namespace_id" integer,
	 "type" varchar,
	 "cit" varchar,
	 "name" varchar,
	PRIMARY KEY("id"),
	CONSTRAINT "release" FOREIGN KEY ("namespace_id") REFERENCES "namespaces" ("id")
)~!!GtablecomponentscomponentsCREATE TABLE "components" (
	 "id" integer NOT NULL,
	 "component" text,
	PRIMARY KEY("id")
)P++Ytablesqlite_sequencesqlite_sequenceCREATE TABLE sqlite_sequence(name,seq)gtableclassesclassesCREATE TABLE "classes" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "class" text,
	 "namespace_id" integer
)       jZG6#zk^I4hM<$xZ3






{
p
]
R
3

										t	g	V	F	;	/	!		q]J?.v\H2p\I6q_L9$iK.r`UJ:'vY=*	                                )/ UIncompleteLibraryDefinitionException). 9LibraryDiscoveryParser(- ?LibraryDiscoveryCollector(, -LibraryDiscovery(+ ?LibraryDependencyResolver(* #JsOptimizer() 5JsCollectionRenderer(( 7JsCollectionOptimizer(' 3JsCollectionGrouper(& %CssOptimizer(% 7CssCollectionRenderer($ 9CssCollectionOptimizer(# 5CssCollectionGrouper(" )AttachedAssets(! 'AssetResolver(  #AssetDumper( Archiver' Zip& Tar& !ArchiveTar& +ArchiverManager& /ArchiverException& #Translation% #QueueWorker%	 Mail% /ContextDefinition% Action% 5UpdateBuildIdCommand$ +SettingsCommand$ 7SetDialogTitleCommand$ 9SetDialogOptionCommand$ +RestripeCommand$ )ReplaceCommand$ 'RemoveCommand$ +RedirectCommand$ )PrependCommand$ 9OpenModalDialogCommand$
 /OpenDialogCommand$	 'InvokeCommand$ 'InsertCommand$ #HtmlCommand$ #DataCommand$ !CssCommand$ ;CloseModalDialogCommand$ 1CloseDialogCommand$ )ChangedCommand$ 'BeforeCommand$  #BaseCommand$ 'AppendCommand$~ %AlertCommand$%} MAjaxResponseAttachmentsProcessor$| %AjaxResponse${ %AfterCommand$z 'AddCssCommand$y 9ConfigurableActionBase#x 9ActionPluginCollection#w 'ActionManager#v !ActionBase#u 1RouteProcessorCsrf"t 1DefaultAccessCheck"s /CustomAccessCheck"r 1CsrfTokenGenerator"q +CsrfAccessCheck"p 'CheckProvider"o 3AccessResultNeutral"n 7AccessResultForbidden"m 3AccessResultAllowed"l %AccessResult"k 'AccessManager"j +AccessException"#i IAccessArgumentsResolverFactory"h Url!g +SitePathFactory!f !PrivateKey!	e Link!d %GeneratedUrl!c 'GeneratedLink!b %DrupalKernel!	a Cron!` 3CoreServiceProvider!_ )AppRootFactory!	^ Uuid ] Php 	\ Pecl [ Com Z XssY VariableX UserAgentW UrlHelperV Unicode
U Timer	T TagsS SortArrayR !SafeMarkupQ RandomP #OpCodeCacheO NumberN #NestedArray
M Image	L HtmlK #EnvironmentJ DiffArray
I Crypt
H Color
G BytesF /ArgumentsResolverE 1PhpTransliterationD =InvalidDataTypeException	C YamlB %PhpSerialize	A Json@ +PlainTextOutput? +HtmlEscapedText> /FormattableMarkup= %ProxyBuilder< /ReflectionFactory; )DefaultFactory: ;PluginNotFoundException9 +PluginException%8 MInvalidPluginDefinitionException7 ;InvalidDeriverException6 9InvalidDecoratedMethod5 -ContextException4 =StaticDiscoveryDecorator3 +StaticDiscovery!2 EDerivativeDiscoveryDecorator1 #DeriverBase0 Context/ /PluginManagerBase. !PluginBase- 5LazyPluginCollection, 9ContextAwarePluginBase+ ?MTimeProtectedFileStorage"* GMTimeProtectedFastFileStorage) #FileStorage( 3FileReadOnlyStorage' ;SecuredRedirectResponse
& Graph% )PoStreamWriter$ )PoStreamReader# )PoMemoryWriter" PoItem! PoHeader  'NullFileCache -FileCacheFactory FileCache 5ApcuFileCacheBackend" GContainerAwareEventDispatcher 'YamlDiscovery 5HWLDFWordAccumulator %DiffOpDelete !DiffOpCopy %DiffOpChange DiffOpAdd DiffOp !DiffEngine 'WordLevelDiff !MappedDiff 'DiffFormatter	 Diff )PhpArrayDumper
 ;OptimizedPhpArrayDumper
 /PhpArrayContainer	 Container	 %DateTimePlus"
 GZfExtensionManagerSfContainer	 Inspector Handle )AssertionError    0k   Y   f`   ^   Q   F   $D   I   "M   C   9   )      ep   &\   [   #?   /                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          functions% 	traits	releases 
traits-	classes
*   	name
!interfaces!namespaces                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               	 drupal         d&x1`!Q0x1


}
>
 			7n*g H{:l/o,Q=  wk_SGMB MIPfunctionDrupal\Core\Entity/EntityManageronFieldStorageDefinitionCreateAA M1PfunctionDrupal\Core\Entity/EntityManageronEntityTypeDeleteA@ M1PfunctionDrupal\Core\Entity/EntityManageronEntityTypeUpdateE? M9PfunctionDrupal\Core\Entity/EntityManagergetEntityTypeFromClassG> M=PfunctionDrupal\Core\Entity/EntityManagerloadEntityByConfigTarget?= M-PfunctionDrupal\Core\Entity/EntityManagerloadEntityByUuidC< M5PfunctionDrupal\Core\Entity/EntityManagerclearDisplayModeInfoI; MAPfunctionDrupal\Core\Entity/EntityManagergetFormModeOptionsByBundleI: MAPfunctionDrupal\Core\Entity/EntityManagergetViewModeOptionsByBundleA9 M1PfunctionDrupal\Core\Entity/EntityManagergetFormModeOptionsA8 M1PfunctionDrupal\Core\Entity/EntityManagergetViewModeOptions;7 M%PfunctionDrupal\Core\Entity/EntityManagergetFormModes>6 M+PfunctionDrupal\Core\Entity/EntityManagergetAllFormModes;5 M%PfunctionDrupal\Core\Entity/EntityManagergetViewModes>4 M+PfunctionDrupal\Core\Entity/EntityManagergetAllViewModesH3 M?PfunctionDrupal\Core\Entity/EntityManagergetTranslationFromContextB2 M3PfunctionDrupal\Core\Entity/EntityManagergetEntityTypeLabels?1 M-PfunctionDrupal\Core\Entity/EntityManagergetAllBundleInfo<0 M'PfunctionDrupal\Core\Entity/EntityManagergetBundleInfoA/ M1PfunctionDrupal\Core\Entity/EntityManagerclearCachedBundlesJ. MCPfunctionDrupal\Core\Entity/EntityManagerclearCachedFieldDefinitionsF- M;PfunctionDrupal\Core\Entity/EntityManageronFieldDefinitionDeleteF, M;PfunctionDrupal\Core\Entity/EntityManageronFieldDefinitionUpdateF+ M;PfunctionDrupal\Core\Entity/EntityManageronFieldDefinitionCreateE* M9PfunctionDrupal\Core\Entity/EntityManagergetFieldMapByFieldType:) M#PfunctionDrupal\Core\Entity/EntityManagergetFieldMap:( M#PfunctionDrupal\Core\Entity/EntityManagersetFieldMapI' MAPfunctionDrupal\Core\Entity/EntityManagergetFieldStorageDefinitionsB& M3PfunctionDrupal\Core\Entity/EntityManagergetFieldDefinitionsF% M;PfunctionDrupal\Core\Entity/EntityManagergetBaseFieldDefinitionsD$ M7PfunctionDrupal\Core\Entity/EntityManagercreateHandlerInstance9# M!PfunctionDrupal\Core\Entity/EntityManagergetHandlerF" M;PfunctionDrupal\Core\Entity/EntityManagergetAccessControlHandler=! M)PfunctionDrupal\Core\Entity/EntityManagergetViewBuilder@  M/PfunctionDrupal\Core\Entity/EntityManagergetRouteProviders< M'PfunctionDrupal\Core\Entity/EntityManagergetFormObject= M)PfunctionDrupal\Core\Entity/EntityManagergetListBuilder9 M!PfunctionDrupal\Core\Entity/EntityManagergetStorage9 M!PfunctionDrupal\Core\Entity/EntityManagerhasHandler< M'PfunctionDrupal\Core\Entity/EntityManagergetDefinitionE M9PfunctionDrupal\Core\Entity/EntityManagerclearCachedDefinitions 'PclassEntityManager; UPfunctionDrupal\Core\Entity/EntityListBuildergetLabel Pfunctionlink Pfunctionurl PfunctionurlInfo /PclassEntityHandlerBase -PfunctionsetEntityManager: G)PpropertyDrupal\Core\Entity/EntityForm$entityManager PfunctionuseCaches5 ?'PfunctionDrupal\Core\Entity/EntityentityManagerA W'=functionDrupal\Core\Controller/ControllerBaseentityManager= W6functionDrupal\Core\Config/FileStorageFactorygetActiveM m)6functionDrupal\Core\Config/BootstrapConfigStorageFactorygetFileStorage2 ;%0functionDrupal\Core\Cache/CachevalidateTagsL KI"functionDrupal\Core\Access/AccessResultcacheUntilConfigurationChangesE
 K;"functionDrupal\Core\Access/AccessResultcacheUntilEntityChanges'	 -!functionDrupal\Core/LinktoString$ -!propertyDrupal\Core/Link$text# 5!functionprepareLegacyRequest8 SfunctionDrupal\Component\Utility/SafeMarkupformat< S!functionDrupal\Component\Utility/SafeMarkupcheckPlain8 SfunctionDrupal\Component\Utility/SafeMarkupisSafe !classSafeMarkup 	'functionglobal/Drupalurl( 	''functionglobal/DrupalentityMa   eB       _G/e@ t[B#dP< hK5




h
M
/
					U	)	gG& fE!{^9mJ*oV=$
cD%nMW6                 %{ MEntityDisplayRepositoryInterfacePz AEntityDisplayModeInterfaceP+y YEntityDefinitionUpdateManagerInterfaceP+x YEntityConstraintViolationListInterfacePw 9EntityChangedInterfaceP"v GEntityBundleListenerInterfaceP(u SEntityAccessControlHandlerInterfaceP/t aDynamicallyFieldableEntityStorageInterfacePs AContentEntityTypeInterfaceP"r GContentEntityStorageInterfacePq 9ContentEntityInterfacePp AContentEntityFormInterfacePo -VariantInterfaceNn 5PageVariantInterfaceN!m EContextAwareVariantInterfaceNl =ServiceProviderInterfaceKk =ServiceModifierInterfaceK j CContainerInjectionInterfaceKi 9ClassResolverInterfaceKh 9DateFormatterInterfaceGg 3DateFormatInterfaceGf +SelectInterfaceFe 5PlaceholderInterfaceFd 3ExtendableInterfaceFc 1ConditionInterfaceFb 1AlterableInterfaceFa 1StatementInterface>` /DatabaseException>_ 9TitleResolverInterface= ^ CControllerResolverInterface=] 5TypedConfigInterface; \ CThirdPartySettingsInterface7%[ MImportableEntityStorageInterface7Z ?ConfigEntityTypeInterface7!Y EConfigEntityStorageInterface7X 7ConfigEntityInterface7 W CTypedConfigManagerInterface6V -StorageInterface6U =StorageComparerInterface6T 7StorageCacheInterface6S 9ConfigManagerInterface6R =ConfigInstallerInterface6#Q IConfigFactoryOverrideInterface6P 9ConfigFactoryInterface6O 1ConditionInterface4N ;CacheDecoratorInterface$M KCalculatedCacheContextInterface1L 7CacheContextInterface1*K WRefinableCacheableDependencyInterface0"J GCacheTagsInvalidatorInterface0I ACacheTagsChecksumInterface0H 7CacheFactoryInterface0G ;CacheCollectorInterface0F 7CacheBackendInterface0E ACacheableResponseInterface0!D ECacheableDependencyInterface0$C KChainBreadcrumbBuilderInterface/B ABreadcrumbBuilderInterface/A ?TitleBlockPluginInterface,!@ EMessagesBlockPluginInterface,$? KMainContentBlockPluginInterface,> 5BlockPluginInterface,= 7BlockManagerInterface,< 7BatchStorageInterface+$; KAuthenticationProviderInterface**: WAuthenticationProviderFilterInterface*-9 ]AuthenticationProviderChallengeInterface*%8 MAuthenticationCollectorInterface*7 ?LibraryDiscoveryInterface('6 QLibraryDependencyResolverInterface(5 ;AttachedAssetsInterface(4 9AssetResolverInterface(3 ;AssetOptimizerInterface(2 5AssetDumperInterface(%1 MAssetCollectionRendererInterface(&0 OAssetCollectionOptimizerInterface($/ KAssetCollectionGrouperInterface(. /ArchiverInterface&'- QCommandWithAttachedAssetsInterface$, -CommandInterface$+ +ActionInterface#* 9CheckProviderInterface") 7AccessResultInterface"( 9AccessManagerInterface"' 3AccessibleInterface"& 5AccessCheckInterface",% [AccessArgumentsResolverFactoryInterface"$ 7DrupalKernelInterface!# 7DestructableInterface!" 'CronInterface!! 'UuidInterface   AArgumentsResolverInterface =TransliterationInterface 9SerializationInterface ;OutputStrategyInterface +MarkupInterface +MapperInterface -FactoryInterface =MapperExceptionInterface 1ExceptionInterface 1DiscoveryInterface =CachedDiscoveryInterface -DeriverInterface ?PluginDefinitionInterface -ContextInterface AContextDefinitionInterface 9PluginManagerInterface ?PluginInspectionInterface# IFallbackPluginManagerInterface" GDerivativeInspectionInterface =DependentPluginInterface  CContextAwarePluginInterface  CConfigurablePluginInterface'
 QCategorizingPluginManagerInterface	 3PhpStorageInterface /PoWriterInterface /PoStreamInterface /PoReaderInterface 3PoMetadataInterface 1FileCacheInterface ?FileCacheBackendInterface 7DiscoverableInterface 3Ann   (i   q   {       '{[5xS+xT& pT:





m
I
-
						k	L	#hAdB"m?)nM.kC|^;rV;i6                              ,q ]	Drupal\Core\Field\Plugin\Field\FieldType1p g	Drupal\Core\Field\Plugin\Field\FieldFormatter-o _	Drupal\Core\Field\Plugin\DataType\Deriver%n O	Drupal\Core\Field\Plugin\DataTypem =	Drupal\Core\Field\Entity l E	Drupal\Core\Field\Annotationk /	Drupal\Core\Field#j K	Drupal\Core\Extension\Discoveryi 7	Drupal\Core\Extensionh 9	Drupal\Core\Executableg C	Drupal\Core\EventSubscriber f E	Drupal\Core\Entity\TypedDatae 9	Drupal\Core\Entity\Sqld A	Drupal\Core\Entity\Routing&c Q	Drupal\Core\Entity\Query\Sql\pgsql b E	Drupal\Core\Entity\Query\Sql!a G	Drupal\Core\Entity\Query\Null` =	Drupal\Core\Entity\Query3_ k	Drupal\Core\Entity\Plugin\Validation\Constraint6^ q	Drupal\Core\Entity\Plugin\EntityReferenceSelection(] U	Drupal\Core\Entity\Plugin\Derivative.\ a	Drupal\Core\Entity\Plugin\DataType\Deriver&[ Q	Drupal\Core\Entity\Plugin\DataType*Z Y	Drupal\Core\Entity\KeyValueStore\Query$Y M	Drupal\Core\Entity\KeyValueStore X E	Drupal\Core\Entity\ExceptionW =	Drupal\Core\Entity\Event/V c	Drupal\Core\Entity\EntityReferenceSelectionU ?	Drupal\Core\Entity\EntityT C	Drupal\Core\Entity\EnhancerS A	Drupal\Core\Entity\Element!R G	Drupal\Core\Entity\Controller!Q G	Drupal\Core\Entity\AnnotationP 1	Drupal\Core\Entity"O I	Drupal\Core\Display\AnnotationN 3	Drupal\Core\DisplayM -	Drupal\Core\Diff,L ]	Drupal\Core\DependencyInjection\Compiler#K K	Drupal\Core\DependencyInjection1J g	Drupal\Core\Datetime\Plugin\Field\FieldWidgetI C	Drupal\Core\Datetime\Entity H E	Drupal\Core\Datetime\ElementG 5	Drupal\Core\DatetimeF A	Drupal\Core\Database\Query E E	Drupal\Core\Database\Install.D a	Drupal\Core\Database\Driver\sqlite\Install&C Q	Drupal\Core\Database\Driver\sqlite-B _	Drupal\Core\Database\Driver\pgsql\Install%A O	Drupal\Core\Database\Driver\pgsql-@ _	Drupal\Core\Database\Driver\mysql\Install%? O	Drupal\Core\Database\Driver\mysql> 5	Drupal\Core\Database= 9	Drupal\Core\Controller< A	Drupal\Core\Config\Testing; ?	Drupal\Core\Config\Schema: C	Drupal\Core\Config\Importer#9 K	Drupal\Core\Config\Entity\Query'8 S	Drupal\Core\Config\Entity\Exception7 ?	Drupal\Core\Config\Entity6 1	Drupal\Core\Config$5 M	Drupal\Core\Condition\Annotation4 7	Drupal\Core\Condition3 5	Drupal\Core\Composer2 3	Drupal\Core\Command1 ?	Drupal\Core\Cache\Context0 /	Drupal\Core\Cache/ 9	Drupal\Core\Breadcrumb". I	Drupal\Core\Block\Plugin\Block - E	Drupal\Core\Block\Annotation, /	Drupal\Core\Block+ /	Drupal\Core\Batch* A	Drupal\Core\Authentication) C	Drupal\Core\Asset\Exception( /	Drupal\Core\Asset#' K	Drupal\Core\Archiver\Annotation& 5	Drupal\Core\Archiver% 9	Drupal\Core\Annotation$ -	Drupal\Core\Ajax# 1	Drupal\Core\Action" 1	Drupal\Core\Access! #	Drupal\Core  7	Drupal\Component\Uuid =	Drupal\Component\Utility$ M	Drupal\Component\Transliteration, ]	Drupal\Component\Serialization\Exception" I	Drupal\Component\Serialization ;	Drupal\Component\Render! G	Drupal\Component\ProxyBuilder# K	Drupal\Component\Plugin\Factory% O	Drupal\Component\Plugin\Exception% O	Drupal\Component\Plugin\Discovery& Q	Drupal\Component\Plugin\Derivative# K	Drupal\Component\Plugin\Context ;	Drupal\Component\Plugin C	Drupal\Component\PhpStorage# K	Drupal\Component\HttpFoundation 9	Drupal\Component\Graph =	Drupal\Component\Gettext A	Drupal\Component\FileCache$ M	Drupal\Component\EventDispatcher A	Drupal\Component\Discovery  E	Drupal\Component\Diff\Engine 7	Drupal\Component\Diff/
 c	Drupal\Component\DependencyInjection\Dumper(	 U	Drupal\Component\DependencyInjection ?	Drupal\Component\Datetime ;	Drupal\Component\Bridge A	Drupal\Component\Assertion 	* Y	Drupal\Component\Annotation\Reflection0 e	Drupal\Component\Annotation\Plugin\Discovery C	Drup         +,   H   b   q    {ri`WNE<3*!ync                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     	+ 	8.4.0	* 	8.3.0	) 	8.2.0	( 	8.1.0	' 	8.0.0& 	7.9% 	7.8$ 	7.7# 	7.6" 	7.5! 	7.4  	7.3 	7.2 	7.1 	7.0 	6.9 	6.8 	6.7 	6.6 	6.5 	6.4 	6.3 	6.2 	6.1 	6.0 	5.9 	5.8 	5.7 	5.6 	5.5 	5.4 	5.3 	5.2
 	5.1	 	5.0	 	4.7.0	 	4.6.0	 	4.5.0	 	4.4.0	 	4.3.0	 	4.2.0	 	4.1.0	 	4.0.0   -
 h@pM7xb<}V6nR2


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   - 'StubTestTrait, +DummyQueryTrait'+ OLanguageConfigCollectionNameTraita* -FieldUiTestTrait) =EntityReferenceTestTrait( 5SchemaCheckTestTraita#' GAssertConfigEntityImportTraita& -CommentTestTraitT% 1BasicAuthTestTrait"$ ETypedDataAwareValidatorTrait # )TypedDataTrait " 9StringTranslationTrait ! /UrlGeneratorTrait   =RedirectDestinationTrait % KLocalAwareRedirectResponseTrait  1LinkGeneratorTrait  ?CompositeFormElementTrait  -AttachmentsTrait $ IContextAwarePluginManagerTrait  7PluginDependencyTrait ' OContextAwarePluginAssignmentTrait $ ICategorizingPluginManagerTrait  )RfcLoggerTrait  3ConfigFormBaseTraity/ aFieldStorageDefinitionEventSubscriberTraitk 3AllowedTagsXssTraitk# IEntityTypeEventSubscriberTraitP 7EntityDeleteFormTraitP 1EntityChangedTraitP +DependencyTraitP! EDependencySerializationTraitK 3QueryConditionTraitF #InsertTraitF -SchemaCheckTrait;$ KConfigDependencyDeleteFormTrait7!
 EConditionAccessResolverTrait4	 5UseCacheBackendTrait0' QUnchangingCacheableDependencyTrait0& ORefinableCacheableDependencyTrait0 9CacheableResponseTrait0# ICommandWithAttachedAssetsTrait$ 'ToStringTrait #MarkupTrait )DiscoveryTrait 5DiscoveryCachedTrait          %   %      (   (         0   '      f                  $      +   "                        e   &      %

{
p
]
R
3

										t	g	V	F	;	/	!		q]J?.v\H2p\I6q_L9$iK.r`UJ:'vY=*	                                )/ UIncompleteLibraryDefinitionException). 9LibraryDiscoveryParser(- ?LibraryDiscoveryCollector(, -LibraryDiscovery(+ ?LibraryDependencyResolver(* #JsOptimizer() 5JsCollectionRenderer(( 7JsCollectionOptimizer(' 3JsCollectionGrouper(& %CssOptimizer(% 7CssCollectionRenderer($ 9CssCollectionOptimizer(# 5CssCollectionGrouper(" )AttachedAssets(! 'AssetResolver(  #AssetDumper( Archiver' Zip& Tar& !ArchiveTar& +ArchiverManager& /ArchiverException& #Translation% #QueueWorker%	 Mail% /ContextDefinition% Action% 5UpdateBuildIdCommand$ +SettingsCommand$ 7SetDialogTitleCommand$ 9SetDialogOptionCommand$ +RestripeCommand$ )ReplaceCommand$ 'RemoveCommand$ +RedirectCommand$ )PrependCommand$ 9OpenModalDialogCommand$
 /OpenDialogCommand$	 'InvokeCommand$ 'InsertCommand$ #HtmlCommand$ #DataCommand$ !CssCommand$ ;CloseModalDialogCommand$ 1CloseDialogCommand$ )ChangedCommand$ 'BeforeCommand$  #BaseCommand$ 'AppendCommand$~ %AlertCommand$%} MAjaxResponseAttachmentsProcessor$| %AjaxResponse${ %AfterCommand$z 'AddCssCommand$y 9ConfigurableActionBase#x 9ActionPluginCollection#w 'ActionManager#v !ActionBase#u 1RouteProcessorCsrf"t 1DefaultAccessCheck"s /CustomAccessCheck"r 1CsrfTokenGenerator"q +CsrfAccessCheck"p 'CheckProvider"o 3AccessResultNeutral"n 7AccessResultForbidden"m 3AccessResultAllowed"l %AccessResult"k 'AccessManager"j +AccessException"#i IAccessArgumentsResolverFactory"h Url!g +SitePathFactory!f !PrivateKey!	e Link!d %GeneratedUrl!c 'GeneratedLink!b %DrupalKernel!	a Cron!` 3CoreServiceProvider!_ )AppRootFactory!	^ Uuid ] Php 	\ Pecl [ Com Z XssY VariableX UserAgentW UrlHelperV Unicode
U Timer	T TagsS SortArrayR !SafeMarkupQ RandomP #OpCodeCacheO NumberN #NestedArray
M Image	L HtmlK #EnvironmentJ DiffArray
I Crypt
H Color
G BytesF /ArgumentsResolverE 1PhpTransliterationD =InvalidDataTypeException	C YamlB %PhpSerialize	A Json@ +PlainTextOutput? +HtmlEscapedText> /FormattableMarkup= %ProxyBuilder< /ReflectionFactory; )DefaultFactory: ;PluginNotFoundException9 +PluginException%8 MInvalidPluginDefinitionException7 ;InvalidDeriverException6 9InvalidDecoratedMethod5 -ContextException4 =StaticDiscoveryDecorator3 +StaticDiscovery!2 EDerivativeDiscoveryDecorator1 #DeriverBase0 Context/ /PluginManagerBase. !PluginBase- 5LazyPluginCollection, 9ContextAwarePluginBase+ ?MTimeProtectedFileStorage"* GMTimeProtectedFastFileStorage) #FileStorage( 3FileReadOnlyStorage' ;SecuredRedirectResponse
& Graph% )PoStreamWriter$ )PoStreamReader# )PoMemoryWriter" PoItem! PoHeader  'NullFileCache -FileCacheFactory FileCache 5ApcuFileCacheBackend" GContainerAwareEventDispatcher 'YamlDiscovery 5HWLDFWordAccumulator %DiffOpDelete !DiffOpCopy %DiffOpChange DiffOpAdd DiffOp !DiffEngine 'WordLevelDiff !MappedDiff 'DiffFormatter	 Diff )PhpArrayDumper
 ;OptimizedPhpArrayDumper
 /PhpArrayContainer	 Container	 %DateTimePlus"
 GZfExtensionManagerSfContainer	 Inspector Handle )AssertionError )MockFileFinder ;AnnotatedClassDiscovery PluginID Plugin )AnnotationBase
 	Drupal    eL4%|jVJ?* pYK6"tdOC2"~i]N4'






j
X
F
7
							z	e	N	A	5	(		
s^G/weUI)yk[NB*m_N;(	zm[Q@/hZM/gK6     __sleepP 7clearTranslationCacheP 7setValidationRequiredP 5isValidationRequiredP validateP +preSaveRevisionP preSaveP )isTranslatableP 'getRevisionIdP 5isDefaultTranslationP# IsetRevisionTranslationAffectedP" GisRevisionTranslationAffectedP /isDefaultRevisionP 'isNewRevisionP )setNewRevisionP !postCreateP %getLanguagesP #__constructP 9protectBundleIdElementP
 buildN accessN
 ;submitConfigurationFormN	 ?validateConfigurationFormN 9buildConfigurationFormN 7calculateDependenciesN 5defaultConfigurationN -setConfigurationN -getConfigurationN setWeightN getWeightN idN  !adminLabelN
 labelN~ #__constructN} setTitleN| )setMainContentN{ #setContextsNz #getContextsNy _changedMx _contextMw _deletedMv _addedMu emptyLineMt #contextLineMs #deletedLineMr addedLineMq _linesMp %_start_blockMo '_block_headerMn _end_diffMm #_start_diffMl #__constructMk processLj +resolveServicesKi validateKh loadFileKg +parseDefinitionKf -parseDefinitionsK	e loadK
d alterKc __wakeupKb createKa !callMethodK` %setParameterK_ registerK^ #__constructK] __sleepK\ setK[ ?getInstanceFromDefinitionKZ /massageFormValuesJY #formElementJX =getCacheTagsToInvalidateI	W sortIV isLockedIU !setPatternIT !getPatternIS 1getHtml5TimeFormatHR 1getHtml5DateFormatHQ 'formatExampleHP -validateDatetimeHO +processDatetimeHN )incrementRoundHM -checkEmptyInputsHL -validateDatelistHK +processDatelistHJ 'valueCallbackHI getInfoHH 1datetimeRangeYearsHG +prepareTimezoneGF 'dayOfWeekNameGE dayOfWeekGD !daysInYearGC #daysInMonthG	B ampmGA secondsG@ minutesG
? hoursG	> daysG
= yearsG< +weekDaysOrderedG; 'weekDaysAbbr1G: 'weekDaysAbbr2G9 %weekDaysAbbrG8 weekDaysG7 5weekDaysUntranslatedG6 )monthNamesAbbrG5 !monthNamesG4 AmonthNamesAbbrUntranslatedG3 9monthNamesUntranslatedG2 countryG1 !dateFormatG0 !formatDiffG/ 3formatTimeDiffSinceG. 3formatTimeDiffUntilG- 5getSampleDateFormatsG, )formatIntervalG+ formatG* #__constructG) isLockedG( !setPatternG' !getPatternG
& orderF% 1getQueryParametersF$ getSortF	# initF" 'orderByHeaderF! __callF  /prepareCountQueryF !countQueryF groupByF
 unionF
 rangeF #orderRandomF orderByF addJoinF rightJoinF leftJoinF innerJoinF	 joinF 'addExpressionF addFieldF distinctF !isPreparedF %getArgumentsF #escapeFieldF !escapeLikeF forUpdateF +havingNotExistsF %havingExistsF
 +havingIsNotNullF	 %havingIsNullF 'havingCompileF havingF +havingArgumentsF +havingConditionF commentF __wakeupF __sleepF +nextPlaceholderF  -uniqueIdentifierF elementF
~ limitF} 'getCountQueryF| 'setCountQueryF{ 'ensureElementFz keyF	y keysFx %insertFieldsFw !expressionFv %updateFieldsFu )conditionTableF!t EgetInsertPlaceholderFragmentFs #useDefaultsFr valuesFq fieldsFp !preExecuteF	o fromFn extendFm executeFl -orConditionGroupFk /andConditionGroupFj 7conditionGroupFactoryFi 5mapConditionOperatorFh __cloneFg !__toStringFf compiledFe compileFd argumentsFc notExistsF    {n^:'wjZG6#zk^I4hM<$xZ3






{
p
]
R
3

										t	g	V	F	;	/	!		q]J?.v\H2p\I6q_L9$iK.r`UJ:'vY=*	                                )/ UIncompleteLibraryDefinitionException). 9LibraryDiscoveryParser(- ?LibraryDiscoveryCollector(, -LibraryDiscovery(+ ?LibraryDependencyResolver(* #JsOptimizer() 5JsCollectionRenderer(( 7JsCollectionOptimizer(' 3JsCollectionGrouper(& %CssOptimizer(% 7CssCollectionRenderer($ 9CssCollectionOptimizer(# 5CssCollectionGrouper(" )AttachedAssets(! 'AssetResolver(  #AssetDumper( Archiver' Zip& Tar& !ArchiveTar& +ArchiverManager& /ArchiverException& #Translation% #QueueWorker%	 Mail% /ContextDefinition% Action% 5UpdateBuildIdCommand$ +SettingsCommand$ 7SetDialogTitleCommand$ 9SetDialogOptionCommand$ +RestripeCommand$ )ReplaceCommand$ 'RemoveCommand$ +RedirectCommand$ )PrependCommand$ 9OpenModalDialogCommand$
 /OpenDialogCommand$	 'InvokeCommand$ 'InsertCommand$ #HtmlCommand$ #DataCommand$ !CssCommand$ ;CloseModalDialogCommand$ 1CloseDialogCommand$ )ChangedCommand$ 'BeforeCommand$  #BaseCommand$ 'AppendCommand$~ %AlertCommand$%} MAjaxResponseAttachmentsProcessor$| %AjaxResponse${ %AfterCommand$z 'AddCssCommand$y 9ConfigurableActionBase#x 9ActionPluginCollection#w 'ActionManager#v !ActionBase#u 1RouteProcessorCsrf"t 1DefaultAccessCheck"s /CustomAccessCheck"r 1CsrfTokenGenerator"q +CsrfAccessCheck"p 'CheckProvider"o 3AccessResultNeutral"n 7AccessResultForbidden"m 3AccessResultAllowed"l %AccessResult"k 'AccessManager"j +AccessException"#i IAccessArgumentsResolverFactory"h Url!g +SitePathFactory!f !PrivateKey!	e Link!d %GeneratedUrl!c 'GeneratedLink!b %DrupalKernel!	a Cron!` 3CoreServiceProvider!_ )AppRootFactory!	^ Uuid ] Php 	\ Pecl [ Com Z XssY VariableX UserAgentW UrlHelperV Unicode
U Timer	T TagsS SortArrayR !SafeMarkupQ RandomP #OpCodeCacheO NumberN #NestedArray
M Image	L HtmlK #EnvironmentJ DiffArray
I Crypt
H Color
G BytesF /ArgumentsResolverE 1PhpTransliterationD =InvalidDataTypeException	C YamlB %PhpSerialize	A Json@ +PlainTextOutput? +HtmlEscapedText> /FormattableMarkup= %ProxyBuilder< /ReflectionFactory; )DefaultFactory: ;PluginNotFoundException9 +PluginException%8 MInvalidPluginDefinitionException7 ;InvalidDeriverException6 9InvalidDecoratedMethod5 -ContextException4 =StaticDiscoveryDecorator3 +StaticDiscovery!2 EDerivativeDiscoveryDecorator1 #DeriverBase0 Context/ /PluginManagerBase. !PluginBase- 5LazyPluginCollection, 9ContextAwarePluginBase+ ?MTimeProtectedFileStorage"* GMTimeProtectedFastFileStorage) #FileStorage( 3FileReadOnlyStorage' ;SecuredRedirectResponse
& Graph% )PoStreamWriter$ )PoStreamReader# )PoMemoryWriter" PoItem! PoHeader  'NullFileCache -FileCacheFactory FileCache 5ApcuFileCacheBackend" GContainerAwareEventDispatcher 'YamlDiscovery 5HWLDFWordAccumulator %DiffOpDelete !DiffOpCopy %DiffOpChange DiffOpAdd DiffOp !DiffEngine 'WordLevelDiff !MappedDiff 'DiffFormatter	 Diff )PhpArrayDumper
 ;OptimizedPhpArrayDumper
 /PhpArrayContainer	 Container	 %DateTimePlus"
 GZfExtensionManagerSfContainer	 Inspector Handle )AssertionError )MockFileFinder ;AnnotatedClassDiscovery PluginID Plugin )AnnotationBase
 	Drupal   q uoO2{[5xS+xT& pT:





m
I
-
						k	L	#hAdB"m?)nM.kC|^;rV;i6                              ,q ]	Drupal\Core\Field\Plugin\Field\FieldType1p g	Drupal\Core\Field\Plugin\Field\FieldFormatter-o _	Drupal\Core\Field\Plugin\DataType\Deriver%n O	Drupal\Core\Field\Plugin\DataTypem =	Drupal\Core\Field\Entity l E	Drupal\Core\Field\Annotationk /	Drupal\Core\Field#j K	Drupal\Core\Extension\Discoveryi 7	Drupal\Core\Extensionh 9	Drupal\Core\Executableg C	Drupal\Core\EventSubscriber f E	Drupal\Core\Entity\TypedDatae 9	Drupal\Core\Entity\Sqld A	Drupal\Core\Entity\Routing&c Q	Drupal\Core\Entity\Query\Sql\pgsql b E	Drupal\Core\Entity\Query\Sql!a G	Drupal\Core\Entity\Query\Null` =	Drupal\Core\Entity\Query3_ k	Drupal\Core\Entity\Plugin\Validation\Constraint6^ q	Drupal\Core\Entity\Plugin\EntityReferenceSelection(] U	Drupal\Core\Entity\Plugin\Derivative.\ a	Drupal\Core\Entity\Plugin\DataType\Deriver&[ Q	Drupal\Core\Entity\Plugin\DataType*Z Y	Drupal\Core\Entity\KeyValueStore\Query$Y M	Drupal\Core\Entity\KeyValueStore X E	Drupal\Core\Entity\ExceptionW =	Drupal\Core\Entity\Event/V c	Drupal\Core\Entity\EntityReferenceSelectionU ?	Drupal\Core\Entity\EntityT C	Drupal\Core\Entity\EnhancerS A	Drupal\Core\Entity\Element!R G	Drupal\Core\Entity\Controller!Q G	Drupal\Core\Entity\AnnotationP 1	Drupal\Core\Entity"O I	Drupal\Core\Display\AnnotationN 3	Drupal\Core\DisplayM -	Drupal\Core\Diff,L ]	Drupal\Core\DependencyInjection\Compiler#K K	Drupal\Core\DependencyInjection1J g	Drupal\Core\Datetime\Plugin\Field\FieldWidgetI C	Drupal\Core\Datetime\Entity H E	Drupal\Core\Datetime\ElementG 5	Drupal\Core\DatetimeF A	Drupal\Core\Database\Query E E	Drupal\Core\Database\Install.D a	Drupal\Core\Database\Driver\sqlite\Install&C Q	Drupal\Core\Database\Driver\sqlite-B _	Drupal\Core\Database\Driver\pgsql\Install%A O	Drupal\Core\Database\Driver\pgsql-@ _	Drupal\Core\Database\Driver\mysql\Install%? O	Drupal\Core\Database\Driver\mysql> 5	Drupal\Core\Database= 9	Drupal\Core\Controller< A	Drupal\Core\Config\Testing; ?	Drupal\Core\Config\Schema: C	Drupal\Core\Config\Importer#9 K	Drupal\Core\Config\Entity\Query'8 S	Drupal\Core\Config\Entity\Exception7 ?	Drupal\Core\Config\Entity6 1	Drupal\Core\Config$5 M	Drupal\Core\Condition\Annotation4 7	Drupal\Core\Condition3 5	Drupal\Core\Composer2 3	Drupal\Core\Command1 ?	Drupal\Core\Cache\Context0 /	Drupal\Core\Cache/ 9	Drupal\Core\Breadcrumb". I	Drupal\Core\Block\Plugin\Block - E	Drupal\Core\Block\Annotation, /	Drupal\Core\Block+ /	Drupal\Core\Batch* A	Drupal\Core\Authentication) C	Drupal\Core\Asset\Exception( /	Drupal\Core\Asset#' K	Drupal\Core\Archiver\Annotation& 5	Drupal\Core\Archiver% 9	Drupal\Core\Annotation$ -	Drupal\Core\Ajax# 1	Drupal\Core\Action" 1	Drupal\Core\Access! #	Drupal\Core  7	Drupal\Component\Uuid =	Drupal\Component\Utility$ M	Drupal\Component\Transliteration, ]	Drupal\Component\Serialization\Exception" I	Drupal\Component\Serialization ;	Drupal\Component\Render! G	Drupal\Component\ProxyBuilder# K	Drupal\Component\Plugin\Factory% O	Drupal\Component\Plugin\Exception% O	Drupal\Component\Plugin\Discovery& Q	Drupal\Component\Plugin\Derivative# K	Drupal\Component\Plugin\Context ;	Drupal\Component\Plugin C	Drupal\Component\PhpStorage# K	Drupal\Component\HttpFoundation 9	Drupal\Component\Graph =	Drupal\Component\Gettext A	Drupal\Component\FileCache$ M	Drupal\Component\EventDispatcher A	Drupal\Component\Discovery  E	Drupal\Component\Diff\Engine 7	Drupal\Component\Diff/
 c	Drupal\Component\DependencyInjection\Dumper(	 U	Drupal\Component\DependencyInjection ?	Drupal\Component\Datetime ;	Drupal\Component\Bridge A	Drupal\Component\Assertion 	* Y	Drupal\Component\Annotation\Reflection0 e	Drupal\Component\Annotation\Plugin\Discovery C	Drupal\Component\Annotation
 	global   y qD#h?yQ4W9 S6



{
^
>
					j	U	?	!	p?Z%q]H3nO5iK1[A(~gH/}`5                         Y ?LocaleUpdateInterfaceTest(X QLocaleUpdateDevelopmentReleaseTestW 5LocaleUpdateCronTestV -LocaleUpdateBaseU ;LocaleTranslationUiTest#T GLocaleTranslationProjectsTest#S GLocaleTranslateStringTourTest*R ULocaleTranslatedSchemaDefinitionTestQ -LocaleStringTestP 9LocalePluralFormatTestO )LocalePathTestN 9LocaleLocaleLookupTestM 9LocaleLibraryAlterTest%L KLocaleJavascriptTranslationTest K ALocaleImportFunctionalTestJ =LocaleFileSystemFormTestI -LocaleExportTestH /LocaleContentTest!G CLocaleConfigTranslationTest'F OLocaleConfigTranslationImportTest E ALocaleConfigSubscriberTest'D OLocaleConfigSubscriberForeignTestC ;LocaleConfigManagerTestB 1TranslationsStreamA /LocaleTranslation@ 7TranslationStatusForm? /TranslateFormBase> 3TranslateFilterForm= /TranslateEditForm< 1LocaleSettingsForm; !ImportForm: !ExportForm9 ?LocaleTranslationCacheTag8 -LocaleController7 /TranslationString6 9StringStorageException5 7StringDatabaseStorage4 !StringBase3 %SourceString2 -PoDatabaseWriter1 -PoDatabaseReader0 'PluralFormula/ /LocaleTranslation. 5LocaleProjectStorage- %LocaleLookup, %LocaleEvents+ #LocaleEvent * ALocaleDefaultConfigStorage) 9LocaleConfigSubscriber( 3LocaleConfigManager' Locale& Gettext4% iLinkNotExistingInternalConstraintValidatorTest2$ eLinkExternalProtocolsConstraintValidatorTest'# OLinkAccessConstraintValidatorTest" %LinkItemTest! +LinkFieldUITest  'LinkFieldTest 1LinkTypeConstraint0 aLinkNotExistingInternalConstraintValidator' OLinkNotExistingInternalConstraint. ]LinkExternalProtocolsConstraintValidator% KLinkExternalProtocolsConstraint# GLinkAccessConstraintValidator 5LinkAccessConstraint CckLink LinkField~ !LinkWidget} LinkItem| 7LinkSeparateFormatter{ 'LinkFormatter{ %LanguageTestz 9LanguageLocalTasksTesty  ALanguageConfigOverrideTestx  ALanguageNegotiationUrlTestw% KContentLanguageSettingsUnitTestw" EConfigurableLanguageUnitTestw ?LanguageNegotiationTestTsv ;LanguageNegotiationTestv
 5NoLanguageEntityTestu	 9LanguageTestControllert& MLanguageConfigurationElementTests" ELanguageConfigurationElements -LanguageTestBaser 1FilterLanguageTestr /FieldLanguageTestr 5ArgumentLanguageTestr, YMigrateLanguageNegotiationSettingsTestq 3MigrateLanguageTestp  7LanguageConditionTesto =LanguageUrlRewritingTestn'~ OLanguageUILanguageNegotiationTestn} -LanguageTourTestn| -LanguageTestBasen{ 7LanguageSwitchingTestn&z MLanguageSelectorTranslatableTestn!y CLanguagePathMonolingualTestn!x CLanguageNegotiationInfoTestn*w ULanguageNegotiationContentEntityTestnv -LanguageListTestn#u GLanguageListModuleInstallTestnt 5LanguageFallbackTestn%s KLanguageDependencyInjectionTestn-r [LanguageCustomLanguageConfigurationTestnq ?LanguageConfigurationTestn&p MLanguageConfigurationElementTestno =LanguageConfigSchemaTestn'n OLanguageConfigOverrideInstallTestn&m MLanguageConfigOverrideImportTestn"l ELanguageBrowserDetectionTestn)k SLanguageBlockSettingsVisibilityTestnj 7EntityUrlLanguageTestn'i OEntityTypeWithoutLanguageFormTestnh ?EntityDefaultLanguageTestng =ConfigurableLanguageTestn*f UAdminPathEntityConverterLanguageTestne /LanguageConvertermd Languagel$c ILanguageNegotiationUrlFallbackkb 9LanguageNegotiationUrlka 7LanguageNegotiationUIk    xN6y]F(eF,qT?x_C%





f
=
'
						n	R	5		fI%{X>)qO.lW.
_B,
zfK,iM@3w\K8  C /BreakpointManager6B !Breakpoint6A BookTest5@ 1BookLocalTasksTest4 ? ABookUninstallValidatorTest3> +BookManagerTest3= +MigrateBookTest2< 9MigrateBookConfigsTest2; /BookUninstallTest1: BookTest19 9BookUninstallValidator0
8 Book/
7 Book.6 3BookNavigationBlock-5 -BookSettingsForm,4 )BookRemoveForm,3 +BookOutlineForm,2 /BookAdminEditForm,1 )BookController+ 0 ABookNavigationCacheContext*$/ IBookNodeIsRemovableAccessCheck). 9BookUninstallValidator(- 1BookOutlineStorage(, #BookOutline(+ #BookManager(* !BookExport() 7BookBreadcrumbBuilder(( +BlockCustomTest'' BoxTest& & ABlockContentLocalTasksTest%% ?RevisionRelationshipsTest$$ 'FieldTypeTest$# 5BlockContentTestBase$!" CBlockContentIntegrationTest$!! CBlockContentFieldFilterTest$  9MigrateCustomBlockTest# ;MigrateBlockContentTest"! CMigrateBlockContentTypeTest!! CMigrateBlockContentStubTest!& MMigrateBlockContentBodyFieldTest! %PageEditTest   ABlockContentValidationTest  5BlockContentTypeTest # GBlockContentTranslationUITest  5BlockContentTestBase  5BlockContentSaveTest  ?BlockContentRevisionsTest  =BlockContentPageViewTest  ?BlockContentListViewsTest  5BlockContentListTest  =BlockContentCreationTest  ?BlockContentCacheTagsTest  %ListingEmpty #BlockCustom	 Box  ABlockContentAddLocalAction %BlockContent
 /BlockContentBlock 	 ABlockContentTypeDeleteForm 9BlockContentDeleteForm -BlockContentType %BlockContent 9BlockContentController 7BlockContentViewsData ;BlockContentViewBuilder! CBlockContentTypeListBuilder 5BlockContentTypeForm$  IBlockContentTranslationHandler ;BlockContentListBuilder~ -BlockContentForm&} MBlockContentAccessControlHandler| BlockTest{ 3BlockVisibilityTestz +BlockRegionTesty 5BlockPageVariantTestx 3BlockLocalTasksTestw =CategoryAutocompleteTestv 3BlockRepositoryTestu 'BlockFormTestt ?BlockConfigEntityUnitTests #BaloneySpamr /TestXSSTitleBlockq 'TestHtmlBlockp 'TestFormBlock&o MTestContextAwareUnsatisfiedBlockn 7TestContextAwareBlockm )TestCacheBlockl 9TestBlockInstantiationk +TestAccessBlockj TestFormi 9FavoriteAnimalTestForm h ATestMultipleFormControllerg 7MultipleStaticContextf 3AdminDemoNegotiatore -DisplayBlockTest
#d GBlockContextMappingUpdateTest	)c SBlockContextMappingUpdateFilledTest	b -MigrateBlockTesta -MigrateBlockTest` =NonDefaultBlockAdminTest_ ?NewDefaultThemeBlocksTest^ %BlockXssTest] 5BlockViewBuilderTest\ #BlockUiTest[ 'BlockTestBaseZ BlockTest"Y EBlockTemplateSuggestionsTestX ;BlockSystemBrandingTestW 5BlockStorageUnitTestV 5BlockRenderOrderTestU /BlockLanguageTestT 9BlockLanguageCacheTestS 9BlockInvalidRegionTestR 1BlockInterfaceTestQ -BlockInstallTestP 'BlockHtmlTestO 9BlockHookOperationTestN 7BlockHiddenRegionTestM 5BlockFormInBlockTestL 7BlockConfigSchemaTestK )BlockCacheTestJ 3BlockAdminThemeTestI BlockH +BlockVisibilityG !BlockThemeF 'BlockSettingsE #BlockRegionD 'BlockPluginIdC #EntityBlockB -BlockPageVariantA )ThemeLocalTask@ +BlockDeleteForm '? OBlockPageDisplayVariantSubscriber > Block $= ICategoryAutocompleteController < 3BlockListController ; 9BlockLibraryController : +BlockController    l tFsN0	L9w^:eI2





c
:
						}	`	?	f9eF`@`@%a5e<uO&zN                                        /	Drupal\link\Tests,  ]	Drupal\link\Plugin\Validation\Constraint) W	Drupal\link\Plugin\migrate\process\d6'~ S	Drupal\link\Plugin\migrate\cckfield(} U	Drupal\link\Plugin\Field\FieldWidget&| Q	Drupal\link\Plugin\Field\FieldType+{ [	Drupal\link\Plugin\Field\FieldFormatter&z Q	Drupal\Tests\language\Unit\Migrate#y K	Drupal\Tests\language\Unit\Menu%x O	Drupal\Tests\language\Unit\Configw A	Drupal\Tests\language\Unit3v k	Drupal\language_test\Plugin\LanguageNegotiationu C	Drupal\language_test\Entity#t K	Drupal\language_test\Controller&s Q	Drupal\language_elements_test\Formr C	Drupal\language\Tests\Views$q M	Drupal\language\Tests\Migrate\d7!p G	Drupal\language\Tests\Migrate#o K	Drupal\language\Tests\Conditionn 7	Drupal\language\Testsm A	Drupal\language\ProxyClass)l W	Drupal\language\Plugin\migrate\source.k a	Drupal\language\Plugin\LanguageNegotiation%j O	Drupal\language\Plugin\Derivative$i M	Drupal\language\Plugin\Condition h E	Drupal\language\Plugin\Blockg A	Drupal\language\HttpKernelf 5	Drupal\language\Forme ?	Drupal\language\Exception#d K	Drupal\language\EventSubscriberc 9	Drupal\language\Entityb ;	Drupal\language\Elementa 9	Drupal\language\Config` A	Drupal\language\Annotation_ +	Drupal\language(^ U	Drupal\Tests\inline_form_errors\Unit] ?	Drupal\inline_form_errors4\ m	Drupal\Tests\image\Unit\Plugin\migrate\source\d74[ m	Drupal\Tests\image\Unit\Plugin\migrate\source\d6%Z O	Drupal\Tests\image\Unit\PageCacheY ;	Drupal\Tests\image\Unit/X c	Drupal\image_module_test\Plugin\ImageEffectW =	Drupal\image\Tests\Views!V G	Drupal\image\Tests\Migrate\d7!U G	Drupal\image\Tests\Migrate\d6T 1	Drupal\image\TestsS 5	Drupal\image\Routing)R W	Drupal\image\Plugin\migrate\source\d7)Q W	Drupal\image\Plugin\migrate\source\d6*P Y	Drupal\image\Plugin\migrate\process\d6+O [	Drupal\image\Plugin\migrate\destination#N K	Drupal\image\Plugin\ImageEffect)M W	Drupal\image\Plugin\Field\FieldWidget'L S	Drupal\image\Plugin\Field\FieldType,K ]	Drupal\image\Plugin\Field\FieldFormatterJ A	Drupal\image\PathProcessorI 9	Drupal\image\PageCacheH /	Drupal\image\FormG 3	Drupal\image\EntityF ;	Drupal\image\ControllerE ;	Drupal\image\AnnotationD %	Drupal\imageC A	Drupal\history\Tests\ViewsB 5	Drupal\history\Tests&A Q	Drupal\history\Plugin\views\filter%@ O	Drupal\history\Plugin\views\field? ?	Drupal\history\Controller> -	Drupal\help_test= /	Drupal\help\Tests< =	Drupal\help\Plugin\Block; 9	Drupal\help\Controller: 7	Drupal\Tests\hal\Unit9 -	Drupal\hal\Tests8 7	Drupal\hal\Normalizer7 A	Drupal\hal\EventSubscriber6 1	Drupal\hal\Encoder5 !	Drupal\hal&4 Q	Drupal\Tests\forum\Unit\Breadcrumb3 ;	Drupal\Tests\forum\Unit2 =	Drupal\forum\Tests\Views!1 G	Drupal\forum\Tests\Migrate\d7!0 G	Drupal\forum\Tests\Migrate\d6/ 1	Drupal\forum\Tests. ;	Drupal\forum\ProxyClass-- _	Drupal\forum\Plugin\Validation\Constraint, ?	Drupal\forum\Plugin\Block+ /	Drupal\forum\Form* ;	Drupal\forum\Controller) ;	Drupal\forum\Breadcrumb( %	Drupal\forum5' o	Drupal\Tests\filter\Unit\Plugin\migrate\source\d75& o	Drupal\Tests\filter\Unit\Plugin\migrate\source\d6% =	Drupal\Tests\filter\Unit+$ [	Drupal\filter_test_plugin\Plugin\Filter$# M	Drupal\filter_test\Plugin\Filter" ;	Drupal\filter_test\Form"! I	Drupal\filter\Tests\Migrate\d7"  I	Drupal\filter\Tests\Migrate\d6 3	Drupal\filter\Tests 5	Drupal\filter\Render =	Drupal\filter\ProxyClass* Y	Drupal\filter\Plugin\migrate\source\d7* Y	Drupal\filter\Plugin\migrate\source\d6+ [	Drupal\filter\Plugin\migrate\process\d6( U	Drupal\filter\Plugin\migrate\process C	Drupal\filter\Plugin\Filter! G	Drupal\filter\Plugin\DataType 5	Drupal\filter\Plugin   Q xU( veO6#^8&
ugZF8*vcSE7*






l
Q
D
6
 
								w	g	U	6	!	h@$ a7jT:iP/!gH#weL3lN< 	iQ                 [ -ConfigEntityTypeQZ =HtmlEntityFormControllerPY /EntityViewBuilderPX 5EntityTypeRepositoryPW /EntityTypeManagerPV 1EntityTypeListenerPU -EntityTypeEventsPT +EntityTypeEventPS 5EntityTypeBundleInfoPR !EntityTypePQ 9EntityStorageExceptionPP /EntityStorageBasePO 7EntityResolverManagerPN -EntityRepositoryPM 'EntityManagerPL =EntityMalformedExceptionPK /EntityListBuilderP(J SEntityLastInstalledSchemaRepositoryPI /EntityHandlerBasePH /EntityFormBuilderPG !EntityFormPF 1EntityFieldManagerPE ;EntityDisplayRepositoryP"D GEntityDisplayPluginCollectionPC 7EntityDisplayModeBasePB /EntityDisplayBasePA -EntityDeleteFormP"@ GEntityDefinitionUpdateManagerP? ;EntityCreateAccessCheckP"> GEntityConstraintViolationListP= 7EntityConfirmFormBaseP< 5EntityBundleListenerP; ?EntityAutocompleteMatcherP: AEntityAccessControlHandlerP9 /EntityAccessCheckP8 EntityP7 ?ContentUninstallValidatorP6 /ContentEntityTypeP5 =ContentEntityStorageBaseP4 =ContentEntityNullStorageP3 /ContentEntityFormP2 ;ContentEntityDeleteFormP!1 EContentEntityConfirmFormBaseP0 /ContentEntityBaseP/ 5BundleEntityFormBaseP. 1PageDisplayVariantO- )DisplayVariantO, )VariantManagerN+ #VariantBaseN* 'DiffFormatterM) /TwigExtensionPassL( 1TaggedHandlersPassL' ?StackedSessionHandlerPassL& /StackedKernelPassL% ARegisterStreamWrappersPassL'$ QRegisterServicesForDestructionPassL# =RegisterLazyRouteFiltersL" ARegisterLazyRouteEnhancersL!! ERegisterEventSubscribersPassL  =RegisterAccessChecksPassL /ProxyServicesPassL! EModifyServiceDefinitionsPassL 5GuzzleMiddlewarePassL% MDependencySerializationTraitPassL 5ContextProvidersPassL 3BackendCompilerPassL )YamlFileLoaderK 3ServiceProviderBaseK% MContainerNotInitializedExceptionK -ContainerBuilderK ContainerK 'ClassResolverK ;TimestampDatetimeWidgetJ !DateFormatI DatetimeH DatelistH +DateElementBaseH )DrupalDateTimeG !DateHelperG 'DateFormatterG UpsertF
 UpdateF	 TruncateF /TableSortExtenderF )SelectExtenderF SelectF
 QueryF 3PagerSelectExtenderF 9NoUniqueFieldExceptionF /NoFieldsExceptionF
 MergeF  AInvalidMergeQueryExceptionF InsertF~ 9FieldsOverlapExceptionF} DeleteF| ConditionF
{ TasksE
z TasksDy UpsertCx UpdateCw TruncateCv #TransactionCu StatementCt SelectCs SchemaC
r MergeCq InsertCp DeleteCo !ConnectionC
n TasksBm UpsertAl UpdateAk TruncateAj #TransactionAi SelectAh SchemaAg %NativeUpsertA
f MergeAe InsertAd DeleteAc !ConnectionA
b Tasks@a Upsert?` Update?_ Truncate?^ #Transaction?] Select?\ Schema?
[ Merge?Z Insert?Y Delete?X !Connection?#W ITransactionOutOfOrderException>!V ETransactionNoActiveException>&U OTransactionNameNonUniqueException>1T eTransactionExplicitCommitNotAllowedException>S 5TransactionException>%R MTransactionCommitFailedException>Q #Transaction>P /StatementPrefetch>O )StatementEmpty>N Statement> M CSchemaObjectExistsException>&L OSchemaObjectDoesNotExistException>K +SchemaException>J Schema>I /RowCountException>H Log>G 7InvalidQueryException>*F WIntegrityConstraintViolationException> E CDriverNotSpecifiedException>D ?DatabaseNotFoundException>C =DatabaseExceptionWrapper>B Database>"A GConnectionNotDefinedException>@ !Connection>   { w_G/e@ t[B#dP< hK5




h
M
/
					U	)	gG& fE!{^9mJ*oV=$
cD%nMW6                 %{ MEntityDisplayRepositoryInterfacePz AEntityDisplayModeInterfaceP+y YEntityDefinitionUpdateManagerInterfaceP+x YEntityConstraintViolationListInterfacePw 9EntityChangedInterfaceP"v GEntityBundleListenerInterfaceP(u SEntityAccessControlHandlerInterfaceP/t aDynamicallyFieldableEntityStorageInterfacePs AContentEntityTypeInterfaceP"r GContentEntityStorageInterfacePq 9ContentEntityInterfacePp AContentEntityFormInterfacePo -VariantInterfaceNn 5PageVariantInterfaceN!m EContextAwareVariantInterfaceNl =ServiceProviderInterfaceKk =ServiceModifierInterfaceK j CContainerInjectionInterfaceKi 9ClassResolverInterfaceKh 9DateFormatterInterfaceGg 3DateFormatInterfaceGf +SelectInterfaceFe 5PlaceholderInterfaceFd 3ExtendableInterfaceFc 1ConditionInterfaceFb 1AlterableInterfaceFa 1StatementInterface>` /DatabaseException>_ 9TitleResolverInterface= ^ CControllerResolverInterface=] 5TypedConfigInterface; \ CThirdPartySettingsInterface7%[ MImportableEntityStorageInterface7Z ?ConfigEntityTypeInterface7!Y EConfigEntityStorageInterface7X 7ConfigEntityInterface7 W CTypedConfigManagerInterface6V -StorageInterface6U =StorageComparerInterface6T 7StorageCacheInterface6S 9ConfigManagerInterface6R =ConfigInstallerInterface6#Q IConfigFactoryOverrideInterface6P 9ConfigFactoryInterface6O 1ConditionInterface4N ;CacheDecoratorInterface$M KCalculatedCacheContextInterface1L 7CacheContextInterface1*K WRefinableCacheableDependencyInterface0"J GCacheTagsInvalidatorInterface0I ACacheTagsChecksumInterface0H 7CacheFactoryInterface0G ;CacheCollectorInterface0F 7CacheBackendInterface0E ACacheableResponseInterface0!D ECacheableDependencyInterface0$C KChainBreadcrumbBuilderInterface/B ABreadcrumbBuilderInterface/A ?TitleBlockPluginInterface,!@ EMessagesBlockPluginInterface,$? KMainContentBlockPluginInterface,> 5BlockPluginInterface,= 7BlockManagerInterface,< 7BatchStorageInterface+$; KAuthenticationProviderInterface**: WAuthenticationProviderFilterInterface*-9 ]AuthenticationProviderChallengeInterface*%8 MAuthenticationCollectorInterface*7 ?LibraryDiscoveryInterface('6 QLibraryDependencyResolverInterface(5 ;AttachedAssetsInterface(4 9AssetResolverInterface(3 ;AssetOptimizerInterface(2 5AssetDumperInterface(%1 MAssetCollectionRendererInterface(&0 OAssetCollectionOptimizerInterface($/ KAssetCollectionGrouperInterface(. /ArchiverInterface&'- QCommandWithAttachedAssetsInterface$, -CommandInterface$+ +ActionInterface#* 9CheckProviderInterface") 7AccessResultInterface"( 9AccessManagerInterface"' 3AccessibleInterface"& 5AccessCheckInterface",% [AccessArgumentsResolverFactoryInterface"$ 7DrupalKernelInterface!# 7DestructableInterface!" 'CronInterface!! 'UuidInterface   AArgumentsResolverInterface =TransliterationInterface 9SerializationInterface ;OutputStrategyInterface +MarkupInterface +MapperInterface -FactoryInterface =MapperExceptionInterface 1ExceptionInterface 1DiscoveryInterface =CachedDiscoveryInterface -DeriverInterface ?PluginDefinitionInterface -ContextInterface AContextDefinitionInterface 9PluginManagerInterface ?PluginInspectionInterface# IFallbackPluginManagerInterface" GDerivativeInspectionInterface =DependentPluginInterface  CContextAwarePluginInterface  CConfigurablePluginInterface'
 QCategorizingPluginManagerInterface	 3PhpStorageInterface /PoWriterInterface /PoStreamInterface /PoReaderInterface 3PoMetadataInterface 1FileCacheInterface ?FileCacheBackendInterface 7DiscoverableInterface 3AnnotationInterface   |	 x^E2fR:t[B#qT4lM,





c
D
(					s	X	9	^<l@#rZB*zF(tYA.Z0kJ&{iV-	         !I CConfigTranslationLocalTaskss&H MConfigTranslationContextualLinkssG !TextFormatrF TextfieldrE TextarearD )PluralVariantsrC #ListElementrB +FormElementBaserA !DateFormatr@ ?ConfigTranslationFormBaseq? ?ConfigTranslationEditFormq!> CConfigTranslationDeleteFormq= =ConfigTranslationAddFormq!< CConfigTranslationMapperListp%; KConfigTranslationListControllerp': OConfigTranslationFieldListBuilderp(9 QConfigTranslationEntityListBuilderp!8 CConfigTranslationControllerp'7 OConfigTranslationBlockListBuilderp%6 KConfigTranslationOverviewAccesso!5 CConfigTranslationFormAccesso4 /ConfigNamesMappern3 3ConfigMapperManagern2 /ConfigFieldMappern1 1ConfigEntityMappern0 5ConfigLocalTasksTestm/ !ConfigTestl. +ConfigQueryTestl- 1TestInstallStoragek, =SchemaListenerControllerk+ /ConfigTestStoragek* 7ConfigTestListBuilderk) )ConfigTestFormk( 5ConfigTestControllerk$' IConfigTestAccessControlHandlerk& 7PirateDayCacheContextj1% cPirateDayCacheabilityMetadataConfigOverridei $ AConfigOverriderLowPriorityi# +ConfigOverrideri/" _ConfigOverrideIntegrationTestCacheContexth(! QCacheabilityMetadataConfigOverrideg  +EventSubscriberf +EventSubscribere +ConfigOverriderd +EventSubscriberc +FileStorageTestb 3DatabaseStorageTestb 7ConfigStorageTestBaseb /CachedStorageTestb! CSchemaConfigListenerWebTesta =SchemaConfigListenerTesta 5SchemaCheckTraitTesta) SLanguageNegotiationFormOverrideTesta /DefaultConfigTesta 1ConfigSnapshotTesta" EConfigSingleImportExportTesta -ConfigSchemaTesta 1ConfigOverrideTesta! CConfigOverridesPriorityTesta 7ConfigOtherModuleTesta ?ConfigModuleOverridesTesta# GConfigLanguageOverrideWebTesta  AConfigLanguageOverrideTesta
 5ConfigInstallWebTesta	 /ConfigInstallTesta/ _ConfigInstallProfileUnmetDependenciesTesta& MConfigInstallProfileOverrideTesta 9ConfigImportUploadTesta 1ConfigImportUITesta& MConfigImportRenameValidationTesta =ConfigImportRecreateTesta$ IConfigImportInstallProfileTesta 1ConfigImporterTesta&  MConfigImporterMissingContentTesta 3ConfigImportAllTesta~ 9ConfigFormOverrideTesta} 7ConfigFileContentTesta| 1ConfigExportUITesta{ =ConfigExportImportUITestaz -ConfigEventsTestay 5ConfigEntityUnitTestax -ConfigEntityTestaw ;ConfigEntityStorageTestav =ConfigEntityStatusUITestau 9ConfigEntityStatusTesta!t CConfigEntityStaticCacheTestas ?ConfigEntityNormalizeTestar 5ConfigEntityListTesta&q MConfigEntityListMultilingualTesta"p EConfigEntityFormOverrideTestao )ConfigDiffTestan ;ConfigDependencyWebTestam 5ConfigDependencyTestal )ConfigCRUDTesta,k YCacheabilityMetadataConfigOverrideTesta7j oCacheabilityMetadataConfigOverrideIntegrationTestai !ConfigSync`h 9ConfigSingleImportForm`g 9ConfigSingleExportForm`f -ConfigImportForm`e -ConfigExportForm`d -ConfigController_c ?StorageReplaceDataWrapper^b -ConfigSubscriber^a +CommentTypeTest]` #CommentTest]_ 3CommentVariableTest\'^ OCommentVariablePerCommentTypeTest\] +CommentTestBase\\ #CommentTest\$[ ICommentSourceWithHighWaterTest\Z +CommentLockTest[Y ?CommentStatisticsUnitTestZX 1CommentManagerTestZW 9CommentLinkBuilderTestZV 7CommentTestControllerYU !WizardTestXT !RowRssTestXS -NodeCommentsTestXR /FilterUserUIDTestX#Q GDefaultViewRecentCommentsTestX!P CCommentViewsFieldAccessTestXO ?CommentViewKernelTestBaseXN 3CommentUserNameTestX   T xl^I:%iK-[A)kT3~hH3 





g
J
3

						j	Z	L	0		iN3v^H2}jQ0u`H2~cI3!u]O=)|cCrdT                    ) Updater ( Theme ' Module & 7UpdateServiceProvider % 7UpdateRegistryFactory $ )UpdateRegistry # %UpdateKernel " /TypedDataMetadata ! 1RecursiveValidator "  ERecursiveContextualValidator  ;ExecutionContextFactory  -ExecutionContext   AConstraintViolationBuilder 	 Uri  Timestamp  TimeSpan  !StringData 	 Map  /LanguageReference  Language  ItemList  #IntegerData  FloatData  Email  +DurationIso8601  +DateTimeIso8601  #BooleanData  !BinaryData 	 Any  /ReadOnlyException  5MissingDataException 
 DataType 	 -TypedDataManager  TypedData  'PrimitiveBase  /MapDataDefinition  1ListDataDefinition # GDataReferenceTargetDefinition  ;DataReferenceDefinition  /DataReferenceBase  )DataDefinition   ?ComplexDataDefinitionBase  1PhpTransliteration ~ 'ThemeSettings } +ThemeNegotiator | %ThemeManager { 3ThemeInitialization z -ThemeAccessCheck y Registry %x KMissingThemeDependencyException w /DefaultNegotiator v 9AjaxBasePageNegotiator u #ActiveTheme t =TestHttpClientMiddleware s -TestRunnerKernel r !TestKernel q 3ThemeRegistryLoader p %StringLoader o -FilesystemLoader n 5TwigTransTokenParser m /TwigSandboxPolicy l 3TwigPhpStorageCache k +TwigNodeVisitor j 'TwigNodeTrans i 'TwigExtension h +TwigEnvironment g 1AttributeValueBase f +AttributeString e -AttributeBoolean d )AttributeArray c Attribute b /StaticTranslation a +FileTranslation ` 'CustomStrings _ 1TranslationWrapper ^ 1TranslationManager ] 1TranslatableMarkup \ =PluralTranslatableMarkup [ +TemporaryStream Z 5StreamWrapperManager Y )ReadOnlyStream X %PublicStream W 'PrivateStream V #LocalStream U 3LocalReadOnlyStream T State S Session R 9ReverseProxyMiddleware Q 7NegotiationMiddleware P +KernelPreHandle O Settings N +MaintenanceMode M ;WriteSafeSessionHandler L #UserSession K )SessionManager J )SessionHandler I 5SessionConfiguration H =PermissionsHashGenerator G #MetadataBag F 5AnonymousUserSession E +AccountSwitcher D %AccountProxy C ;ParamConversionEnhancer B /FormRouteEnhancer A !UrlMatcher @ %UrlGenerator ? ;TrustedRedirectResponse > 'RoutingEvents = 3RouteSubscriberBase < 'RouteProvider ; )RoutePreloader : !RouteMatch 9 'RouteCompiler 8 +RouteBuildEvent 7 %RouteBuilder 6 'RequestHelper 5 =RequestFormatRouteFilter 4 )RequestContext 3 3RedirectDestination 2 )NullRouteMatch 1 /NullMatcherDumper 0 'NullGenerator $/ IMatchingRouteNotFoundException . 'MatcherDumper - 7LocalRedirectResponse , +LazyRouteFilter + /LazyRouteEnhancer &* MGeneratorNotInitializedException ) /CurrentRouteMatch ( =ContentTypeHeaderMatcher ' 'CompiledRoute && MCacheableSecuredRedirectResponse % %AdminContext $ /AccessAwareRouter # 7RouteProcessorManager " 7RouteProcessorCurrent ! /SimplePageVariant   3SingleFlushStrategy   AChainedPlaceholderStrategy  'ModalRenderer  =MainContentRenderersPass  %HtmlRenderer  )DialogRenderer  %AjaxRenderer  Weight  %VerticalTabs  Value 	 Url  Token  Textfield  Textarea 	 Tel  #Tableselect  Table  /SystemCompactLink  Submit    4 W$^+f= ]9qR1	




g
I
)

				s	R	(                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ' ONodeGrantDatabaseStorageInterface' ONodeAccessControlHandlerInterface =MigrateCckFieldInterface+ WRequirementsAwareDestinationInterface& MRequirementsAwareSourceInterface ?MigrateDumpAlterInterface 7RequirementsInterface 9MigrateSourceInterface ;MigrateProcessInterface 7MigrateIdMapInterface! CMigrateDestinationInterface ;MigrateBuilderInterface 1MigrationInterface ;MigrateMessageInterface  AMigrateExecutableInterface% KMigrateBuildDependencyInterface =MenuLinkContentInterface 9StringStorageInterface +StringInterface
 9PluralFormulaInterface#	 GLocaleProjectStorageInterface /LinkItemInterface, YLanguageConfigFactoryOverrideInterfacea ?LanguageSwitcherInterface_! CLanguageNegotiatorInterface_( QLanguageNegotiationMethodInterface_& MContentLanguageSettingsInterface_* UConfigurableLanguageManagerInterface_# GConfigurableLanguageInterface_  3ImageStyleInterfaceD 5ImageEffectInterfaceD&~ MConfigurableImageEffectInterfaceD} 7ForumManagerInterface( | AForumIndexStorageInterface({ +FilterInterfacez 7FilterFormatInterfacey 1FileUsageInterfacex 5FileStorageInterfacew 'FileInterface0v aFileAccessFormatterControlHandlerInterface!u CFieldStorageConfigInterfacet 5FieldConfigInterfaces 7EditorPluginInterfacer =EditorXssFilterInterfaceq +EditorInterface+p WFieldTranslationSynchronizerInterface0o aContentTranslationMetadataWrapperInterface(n QContentTranslationManagerInterface(m QContentTranslationHandlerInterfacel -MessageInterfaceyk 5MailHandlerInterfaceyj 5ContactFormInterfacey   f  d<nDgV@`0s[6



s
O
+
					k	F	s?$g4 ~U)l-j?"
rZ<vE,i8           +H [	Drupal\comment\Plugin\Field\FieldWidget)G W	Drupal\comment\Plugin\Field\FieldType.F a	Drupal\comment\Plugin\Field\FieldFormatter2E i	Drupal\comment\Plugin\EntityReferenceSelection D E	Drupal\comment\Plugin\ActionC 3	Drupal\comment\FormB 7	Drupal\comment\EntityA ?	Drupal\comment\Controller@ )	Drupal\comment? 1	Drupal\color\Tests.> a	Drupal\ckeditor_test\Plugin\CKEditorPlugin= 7	Drupal\ckeditor\Tests!< G	Drupal\ckeditor\Plugin\Editor); W	Drupal\ckeditor\Plugin\CKEditorPlugin: A	Drupal\ckeditor\Annotation9 +	Drupal\ckeditor 8 E	Drupal\Tests\breakpoint\Unit7 ;	Drupal\breakpoint\Tests6 /	Drupal\breakpoint35 k	Drupal\Tests\book\Unit\Plugin\migrate\source\d64 C	Drupal\Tests\book\Unit\Menu3 9	Drupal\Tests\book\Unit 2 E	Drupal\book\Tests\Migrate\d61 /	Drupal\book\Tests0 9	Drupal\book\ProxyClass(/ U	Drupal\book\Plugin\migrate\source\d6*. Y	Drupal\book\Plugin\migrate\destination- =	Drupal\book\Plugin\Block, -	Drupal\book\Form+ 9	Drupal\book\Controller* /	Drupal\book\Cache) 1	Drupal\book\Access( #	Drupal\book<' }	Drupal\Tests\block_content\Unit\Plugin\migrate\source\d7<& }	Drupal\Tests\block_content\Unit\Plugin\migrate\source\d6(% U	Drupal\Tests\block_content\Unit\Menu$$ M	Drupal\block_content\Tests\Views)# W	Drupal\block_content\Tests\Migrate\d7)" W	Drupal\block_content\Tests\Migrate\d6&! Q	Drupal\block_content\Tests\Migrate  A	Drupal\block_content\Tests* Y	Drupal\block_content\Plugin\views\area1 g	Drupal\block_content\Plugin\migrate\source\d71 g	Drupal\block_content\Plugin\migrate\source\d60 e	Drupal\block_content\Plugin\Menu\LocalAction* Y	Drupal\block_content\Plugin\Derivative% O	Drupal\block_content\Plugin\Block ?	Drupal\block_content\Form C	Drupal\block_content\Entity# K	Drupal\block_content\Controller 5	Drupal\block_content1 g	Drupal\Tests\block\Unit\Plugin\migrate\source2 i	Drupal\Tests\block\Unit\Plugin\migrate\process1 g	Drupal\Tests\block\Unit\Plugin\DisplayVariant  E	Drupal\Tests\block\Unit\Menu ;	Drupal\Tests\block\Unit& Q	Drupal\block_test\Plugin\Condition" I	Drupal\block_test\Plugin\Block 9	Drupal\block_test\Form  E	Drupal\block_test\Controller% O	Drupal\block_test\ContextProvider 1	Drupal\block\Theme
 =	Drupal\block\Tests\Views	 ?	Drupal\block\Tests\Update! G	Drupal\block\Tests\Migrate\d7! G	Drupal\block\Tests\Migrate\d6 1	Drupal\block\Tests& Q	Drupal\block\Plugin\migrate\source' S	Drupal\block\Plugin\migrate\process+ [	Drupal\block\Plugin\migrate\destination& Q	Drupal\block\Plugin\DisplayVariant" I	Drupal\block\Plugin\Derivative  /	Drupal\block\Form  E	Drupal\block\EventSubscriber~ 3	Drupal\block\Entity} ;	Drupal\block\Controller| %	Drupal\block*{ Y	Drupal\basic_auth\Tests\Authenticationz C	Drupal\basic_auth\PageCache-y _	Drupal\basic_auth\Authentication\Provider2x i	Drupal\Tests\ban\Unit\Plugin\migrate\source\d7w 7	Drupal\Tests\ban\Unitv C	Drupal\ban\Tests\Migrate\d7u -	Drupal\ban\Tests't S	Drupal\ban\Plugin\migrate\source\d7)s W	Drupal\ban\Plugin\migrate\destinationr +	Drupal\ban\Formq !	Drupal\ban)p W	Drupal\automated_cron\EventSubscriber9o w	Drupal\Tests\aggregator\Unit\Plugin\migrate\source\d79n w	Drupal\Tests\aggregator\Unit\Plugin\migrate\source\d66m q	Drupal\Tests\aggregator\Unit\Plugin\migrate\source'l S	Drupal\Tests\aggregator\Unit\Plugin%k O	Drupal\Tests\aggregator\Unit\Menu6j q	Drupal\aggregator_test\Plugin\aggregator\processor3i k	Drupal\aggregator_test\Plugin\aggregator\parser4h m	Drupal\aggregator_test\Plugin\aggregator\fetcher%g O	Drupal\aggregator_test\Controller!f G	Drupal\aggregator\Tests\Views&e Q	Drupal\aggregator\Tests\Migrate\d7&d Q	Drupal\aggregator\Tests\Migrate\d6#c K	Drupal\aggregator\Tests\Migrate   = tfI1a:"
yY0 |bD+sVC#





m
W
C
)
							t	X	D	/	gH1 v[; }dM-qL*sH0jO4	oU>,
qX=                     9 1BlockAddController 8 -BlockViewBuilder 7 +BlockRepository 6 7BlockPluginCollection 5 -BlockListBuilder 4 BlockForm 3 ?BlockAccessControlHandler 2 'BasicAuthTest 1 ?DisallowBasicAuthRequests 0 BasicAuth / )BlockedIpsTest . /BanMiddlewareTest - 7MigrateBlockedIPsTest , 7IpAddressBlockingTest + !BlockedIps * BlockedIP ) BanDelete ( BanAdmin ' 'BanMiddleware & %BanIpManager % 'AutomatedCron $ 1AggregatorFeedTest # 1AggregatorFeedTest " 1AggregatorItemTest &! MAggregatorPluginSettingsBaseTest   =AggregatorLocalTasksTest  'TestProcessor  !TestParser  #TestFetcher ! CAggregatorTestRssController  +IntegrationTest ( QAggregatorItemViewsFieldAccessTest ( QAggregatorFeedViewsFieldAccessTest # GMigrateAggregatorSettingsTest  ?MigrateAggregatorItemTest  ?MigrateAggregatorFeedTest  ?MigrateAggregatorItemTest  ?MigrateAggregatorFeedTest " EMigrateAggregatorConfigsTest  ?MigrateAggregatorStubTest  )UpdateFeedTest  1UpdateFeedItemTest  3ItemWithoutFeedTest  /ItemCacheTagsTest  )ImportOpmlTest  1FeedValidationTest  ;FeedProcessorPluginTest 
 )FeedParserTest 	 -FeedLanguageTest  7FeedFetcherPluginTest  /FeedCacheTagsTest  5FeedAdminDisplayTest  )DeleteFeedTest  1DeleteFeedItemTest  3AggregatorTitleTest  1AggregatorTestBase  ;AggregatorRenderingTest   1AggregatorCronTest  3AggregatorAdminTest ~ #AddFeedTest 	} Rss 	| Iid 	{ Fid z /FeedUrlConstraint y 3FeedTitleConstraint x /AggregatorRefresh w )AggregatorItem v )AggregatorFeed u 9AggregatorXSSFormatter t =AggregatorTitleFormatter s 3AggregatorFeedBlock r -DefaultProcessor q 'DefaultParser p )DefaultFetcher "o EAggregatorPluginSettingsBase n ;AggregatorPluginManager m %SettingsForm l #OpmlFeedAdd k 3FeedItemsDeleteForm j )FeedDeleteForm 
i Item 
h Feed g 5AggregatorController f 3AggregatorProcessor e -AggregatorParser d /AggregatorFetcher c +ItemViewBuilder b /ItemStorageSchema a #ItemStorage ` 'ItemsImporter _ +FeedViewBuilder ^ /FeedStorageSchema ] #FeedStorage \ 7FeedHtmlRouteProvider [ FeedForm Z =FeedAccessControlHandler Y ;AggregatorItemViewsData X ;AggregatorFeedViewsData W !ActionTest V 5ActionLocalTasksTest U =MigrateActionConfigsTest T /ConfigurationTest S %BulkFormTest R 3ActionUninstallTest Q Action P 'MessageAction O !GotoAction N #EmailAction M -ActionDeleteForm L 7ActionAdminManageForm K /ActionListBuilder J )ActionFormBase I )ActionEditForm H 'ActionAddForm G ?UniqueFieldValueValidator F 7UniqueFieldConstraint E +RegexConstraint D +RangeConstraint &C MPrimitiveTypeConstraintValidator B ;PrimitiveTypeConstraint  A ANotNullConstraintValidator @ /NotNullConstraint ? -LengthConstraint > ?IsNullConstraintValidator = -IsNullConstraint < +EmailConstraint ; +CountConstraint $: IComplexDataConstraintValidator 9 7ComplexDataConstraint &8 MAllowedValuesConstraintValidator 7 ;AllowedValuesConstraint 6 !Constraint 5 -DrupalTranslator  4 AConstraintValidatorFactory 3 /ConstraintManager 2 +UpdateException 1 5UnroutedUrlAssembler 0 Token / 'ThemeRegistry . #ProjectInfo - 'LinkGenerator , Error "+ EUpdaterFileTransferException * -UpdaterException    v gPx]:g@#}U2R-




r
T
4
					f	>	$	oP$	tL0tW1rX7}`@z`?!mI$fH(                       q 5PathMatcherInterface p ;AliasWhitelistInterface o 7AliasStorageInterface n 7AliasManagerInterface m /PasswordInterface $l IParamConverterManagerInterface k ;ParamConverterInterface j ;ResponsePolicyInterface i 9RequestPolicyInterface "h EChainResponsePolicyInterface !g CChainRequestPolicyInterface !f COperationsProviderInterfacee 7MenuLinkFormInterface &d MStaticMenuLinkOverridesInterface c =MenuTreeStorageInterface %b KMenuParentFormSelectorInterface a 7MenuLinkTreeInterface ` =MenuLinkManagerInterface _ /MenuLinkInterface ^ =MenuActiveTrailInterface ] ?LocalTaskManagerInterface \ 1LocalTaskInterface ![ CLocalActionManagerInterface Z 5LocalActionInterface $Y IContextualLinkManagerInterface X ;ContextualLinkInterface W 5MailManagerInterface V 'MailInterface U ?LogMessageParserInterface T 9LoggerChannelInterface #S GLoggerChannelFactoryInterface R 5LockBackendInterface Q ;CountryManagerInterface P =LanguageManagerInterface O /LanguageInterface N 9KeyValueStoreInterface %M KKeyValueStoreExpirableInterface L =KeyValueFactoryInterface 'K OKeyValueExpirableFactoryInterface *J WImageToolkitOperationManagerInterface~#I IImageToolkitOperationInterface~H 7ImageToolkitInterface~G )ImageInterface}F 9FormValidatorInterfaceyE 9FormSubmitterInterfaceyD 1FormStateInterfaceyC 'FormInterfaceyB ?FormErrorHandlerInterfaceyA 1FormCacheInterfacey@ 5FormBuilderInterfacey%? MFormAjaxResponseBuilderInterfacey> 5ConfirmFormInterfacey= 3BaseFormIdInterfacey< )FloodInterfacex; )ChmodInterfacev: 3FileSystemInterfacet9 +WidgetInterfacek8 3WidgetBaseInterfacek)7 UPreconfiguredFieldUiOptionsInterfacek6 ;PluginSettingsInterfacek5 1FormatterInterfacek$4 KFieldTypePluginManagerInterfacek,3 [FieldStorageDefinitionListenerInterfacek$2 KFieldStorageDefinitionInterfacek1 9FieldItemListInterfacek0 1FieldItemInterfacek%/ MFieldDefinitionListenerInterfacek. =FieldDefinitionInterfacek- 5FieldConfigInterfacek*, WEntityReferenceFieldItemListInterfacek+ ;ThemeInstallerInterfacei* 7ThemeHandlerInterfacei&) OModuleUninstallValidatorInterfacei( =ModuleInstallerInterfacei' 9ModuleHandlerInterfacei& 3InfoParserInterfacei% AExecutableManagerInterfaceh$ 3ExecutableInterfaceh"# GEntityDataDefinitionInterfacef" 7TableMappingInterfacee! ?SqlEntityStorageInterfacee"  EEntityStorageSchemaInterface6 mDynamicallyFieldableEntityStorageSchemaInterface! EEntityRouteProviderInterfaced +TablesInterfaceb )QueryInterface` 7QueryFactoryInterface` ;QueryAggregateInterface` 1ConditionInterface`  CConditionAggregateInterface`% MSelectionWithAutocreateInterfaceV$ KSelectionPluginManagerInterfaceV 1SelectionInterfaceV  AEntityViewDisplayInterface  AEntityFormDisplayInterface 9EntityDisplayInterface 7RevisionableInterfaceP$ KFieldableEntityStorageInterfaceP =FieldableEntityInterfaceP( SEntityWithPluginCollectionInterfaceP ;EntityViewModeInterfaceP AEntityViewBuilderInterfaceP" GEntityTypeRepositoryInterfaceP
 AEntityTypeManagerInterfaceP 	 CEntityTypeListenerInterfaceP 3EntityTypeInterfaceP" GEntityTypeBundleInfoInterfaceP 9EntityStorageInterfaceP ?EntityRepositoryInterfaceP 9EntityManagerInterfaceP AEntityListBuilderInterfaceP1 eEntityLastInstalledSchemaRepositoryInterfaceP +EntityInterfaceP  9EntityHandlerInterfaceP ;EntityFormModeInterfaceP~ 3EntityFormInterfaceP} AEntityFormBuilderInterfaceP | CEntityFieldManagerInterfaceP   q z\9"{R6pY@)i>tQ0




b
?
				{	W	2		rC"zZ6oM1
x^D'vI/
sP1^9wI                         b ;	Drupal\aggregator\Tests&a Q	Drupal\aggregator\Plugin\views\row+` [	Drupal\aggregator\Plugin\views\argument2_ i	Drupal\aggregator\Plugin\Validation\Constraint(^ U	Drupal\aggregator\Plugin\QueueWorker+] [	Drupal\aggregator\Plugin\migrate\source1\ g	Drupal\aggregator\Plugin\Field\FieldFormatter"[ I	Drupal\aggregator\Plugin\Block1Z g	Drupal\aggregator\Plugin\aggregator\processor.Y a	Drupal\aggregator\Plugin\aggregator\parser/X c	Drupal\aggregator\Plugin\aggregator\fetcherW =	Drupal\aggregator\PluginV 9	Drupal\aggregator\FormU =	Drupal\aggregator\Entity T E	Drupal\aggregator\Controller S E	Drupal\aggregator\AnnotationR /	Drupal\aggregator5Q o	Drupal\Tests\action\Unit\Plugin\migrate\source\d6!P G	Drupal\Tests\action\Unit\Menu"O I	Drupal\action\Tests\Migrate\d6N 3	Drupal\action\Tests*M Y	Drupal\action\Plugin\migrate\source\d6L C	Drupal\action\Plugin\ActionK 1	Drupal\action\FormJ '	Drupal\action7I s	Drupal\Core\Validation\Plugin\Validation\Constraint%H O	Drupal\Core\Validation\AnnotationG 9	Drupal\Core\ValidationF 3	Drupal\Core\UtilityE 3	Drupal\Core\UpdaterD 1	Drupal\Core\Update$C M	Drupal\Core\TypedData\Validation)B W	Drupal\Core\TypedData\Plugin\DataType#A K	Drupal\Core\TypedData\Exception$@ M	Drupal\Core\TypedData\Annotation? 7	Drupal\Core\TypedData> C	Drupal\Core\Transliteration= /	Drupal\Core\Theme)< W	Drupal\Core\Test\HttpClientMiddleware; -	Drupal\Core\Test: C	Drupal\Core\Template\Loader9 5	Drupal\Core\Template,8 ]	Drupal\Core\StringTranslation\Translator!7 G	Drupal\Core\StringTranslation6 ?	Drupal\Core\StreamWrapper5 /	Drupal\Core\State4 C	Drupal\Core\StackMiddleware3 -	Drupal\Core\Site2 3	Drupal\Core\Session 1 E	Drupal\Core\Routing\Enhancer0 3	Drupal\Core\Routing/ A	Drupal\Core\RouteProcessor,. ]	Drupal\Core\Render\Plugin\DisplayVariant"- I	Drupal\Core\Render\Placeholder", I	Drupal\Core\Render\MainContent+ A	Drupal\Core\Render\Element!* G	Drupal\Core\Render\Annotation) 1	Drupal\Core\Render( /	Drupal\Core\Queue"' I	Drupal\Core\ProxyClass\Routing!& G	Drupal\Core\ProxyClass\Render!% G	Drupal\Core\ProxyClass\Plugin)$ W	Drupal\Core\ProxyClass\ParamConverter$# M	Drupal\Core\ProxyClass\PageCache" C	Drupal\Core\ProxyClass\Lock(! U	Drupal\Core\ProxyClass\File\MimeType   E	Drupal\Core\ProxyClass\Field$ M	Drupal\Core\ProxyClass\Extension! G	Drupal\Core\ProxyClass\Entity! G	Drupal\Core\ProxyClass\Config  E	Drupal\Core\ProxyClass\Batch 9	Drupal\Core\ProxyClass =	Drupal\Core\ProxyBuilder A	Drupal\Core\Plugin\Factory  E	Drupal\Core\Plugin\Discovery A	Drupal\Core\Plugin\Context 1	Drupal\Core\Plugin 9	Drupal\Core\PhpStorage ?	Drupal\Core\PathProcessor -	Drupal\Core\Path 5	Drupal\Core\Password A	Drupal\Core\ParamConverter( U	Drupal\Core\PageCache\ResponsePolicy' S	Drupal\Core\PageCache\RequestPolicy 7	Drupal\Core\PageCache! G	Drupal\Core\Menu\Plugin\Block 7	Drupal\Core\Menu\Form -	Drupal\Core\Menu 
 E	Drupal\Core\Mail\Plugin\Mail	 -	Drupal\Core\Mail 1	Drupal\Core\Logger -	Drupal\Core\Lock 1	Drupal\Core\Locale( U	Drupal\Core\Language\ContextProvider 5	Drupal\Core\Language ?	Drupal\Core\KeyValueStore A	Drupal\Core\Installer\Form# K	Drupal\Core\Installer\Exception  7	Drupal\Core\Installer' S	Drupal\Core\ImageToolkit\Annotation~ =	Drupal\Core\ImageToolkit} /	Drupal\Core\Image| -	Drupal\Core\Http{ A	Drupal\Core\Form\Exception$z M	Drupal\Core\Form\EventSubscribery -	Drupal\Core\Formx /	Drupal\Core\Flood!w G	Drupal\Core\FileTransfer\Formv =	Drupal\Core\FileTransferu ?	Drupal\Core\File\MimeTypet -	Drupal\Core\Files C	Drupal\Core\Field\TypedData.r a	Drupal\Core\Field\Plugin\Field\FieldWidget    }aG(cG*yT.hF*qI$






j
E
#
					{	W	5	 	yW9jM5yeD0 qN1ybH.
oN$tZ<}Z>Q ;FileManagedUnitTestBaseP 3FileManagedTestBase O AFileManagedFileElementTestN 7FileManagedAccessTestM +FileListingTestL %FileItemTestK 3FileFieldWidgetTestJ 7FileFieldValidateTestI /FileFieldTestBaseH ;FileFieldRSSContentTestG 7FileFieldRevisionTestF /FileFieldPathTest"E EFileFieldFormatterAccessTestD 5FileFieldDisplayTestC %DownloadTestB !DeleteTestA CopyTest
@ File? Status 
> File	= Fid'< OFileValidationConstraintValidator; =FileValidationConstraint: 'FileUriUnique
9 File8 )UploadInstance7 Upload
6 File5 FileUri4 CckFile3 !EntityFile2 FileField1 !FileWidget0 FileItem/ /FileFieldItemList. /UrlPlainFormatter- )TableFormatter, 7RSSEnclosureFormatter+ 5GenericFileFormatter* -FileUriFormatter) FileSize( /FilemimeFormatter' /FileFormatterBase& 9FileExtensionFormatter% 5DefaultFileFormatter $ ABaseFieldFileFormatterBase# 'FileSelection" 'FileUsageBase! =DatabaseFileUsageBackend
  File #ManagedFile =FileWidgetAjaxController 'FileViewsData /FileStorageSchema #FileStorage =FileAccessControlHandler #FieldUiTest -ManageFieldsTest /ManageDisplayTest -FieldUIRouteTest /FieldUIDeleteTest 7EntityFormDisplayTest /EntityDisplayTest 7EntityDisplayModeTest +RouteSubscriber 5FieldUiRouteEnhancer -FieldUiLocalTask 1FieldUiLocalAction  AFieldStorageConfigEditForm 3FieldStorageAddForm 3FieldConfigEditForm
 7FieldConfigDeleteForm	 ?EntityViewDisplayEditForm 7EntityFormModeAddForm ?EntityFormDisplayEditForm ?EntityDisplayModeFormBase ?EntityDisplayModeEditForm! CEntityDisplayModeDeleteForm =EntityDisplayModeAddForm 7EntityDisplayFormBase %FieldUiTable  ?FieldConfigListController! CEntityDisplayModeController~ 3ViewModeAccessCheck} 3FormModeAccessCheck| 1FieldUiPermissions{ FieldUI#z GFieldStorageConfigListBuildery 9FieldConfigListBuilderx ?EntityFormModeListBuilder"w EEntityDisplayModeListBuilderv %ViewModeTestu FieldTestt /FieldInstanceTest"s EFieldInstancePerViewModeTest%r KFieldInstancePerFormDisplayTestq FieldTestp /FieldInstanceTest"o EFieldInstancePerViewModeTest%n KFieldInstancePerFormDisplayTestm /FieldSettingsTestl ?FieldInstanceSettingsTestk /FieldSettingsTest!j CFieldUninstallValidatorTesti 'TestFieldType&h MFieldStorageConfigEntityUnitTestg 3DependencyFieldItemf ?FieldConfigEntityUnitTeste 3TestFieldConstraintd ;TestFieldWidgetMultiplec +TestFieldWidget&b MTestItemWithPreconfiguredOptionsa =TestItemWithDependencies` TestItem_ )HiddenTestItem#^ GTestFieldPrepareViewFormatter"] ETestFieldNoSettingsFormatter \ ATestFieldMultipleFormatter$[ ITestFieldEmptySettingFormatterZ ;TestFieldEmptyFormatterY ?TestFieldDefaultFormatter"X ETestFieldApplicableFormatterW 5NestedEntityTestFormV 3TestTextfieldWidgetU =TestTextTrimmedFormatterT 7HandlerFieldFieldTestS #FieldUITestR 'FieldTestBaseQ #UriItemTestP +FieldUpdateTest-O [EntityReferenceHandlerSettingUpdateTestN 9TimestampFormatterTestM /UuidFormatterTestL 3StringFormatterTestK +StringFieldTestJ 9RawStringFormatterTestI )NumberItemTestH +NumberFieldTestG 5MigrateViewModesTest   H wY1gO:v^C'
hP0xdN-





f
B
%							o	O	!	lT2vP4xdN?"tYDkUD/xeWD3&|o[J;(}n_H       )StatusMessages  Select  Search 
 'RenderElement 	 Range  Radios  Radio  #PathElement  +PasswordConfirm  Password  PageTitle  Pager 
 Page   !Operations  Number ~ MoreLink } #MachineName 
| Link { )LanguageSelect z Label 
y Item x )InlineTemplate w #ImageButton v HtmlTag 
u Html t Hidden s #FormElement 
r Form 
q File p Fieldset o !Fieldgroup n Email m !Dropbutton l Details 
k Date j Container i Color h !Checkboxes g Checkbox f Button 
e Ajax d Actions c 'RenderElement b #FormElement a %RenderEvents ` Renderer _ 'RenderContext ^ #RenderCache ] ?PlaceholderingRenderCache \ 5PlaceholderGenerator &[ MPageDisplayVariantSelectionEvent "Z EMetadataBubblingUrlGenerator Y Markup &X MHtmlResponseAttachmentsProcessor W %HtmlResponse V 1ElementInfoManager U Element T 1BubbleableMetadata S 5BareHtmlPageRenderer R 7SuspendQueueException Q 1QueueWorkerManager P +QueueWorkerBase O %QueueFactory N 5QueueDatabaseFactory M Memory L 'DatabaseQueue K #BatchMemory J Batch I %RouteBuilder H 'MatcherDumper G 5BareHtmlPageRenderer F 9CachedDiscoveryClearer E ;MenuLinkPluginConverter $D IAdminPathConfigEntityConverter C 3ChainResponsePolicy #B GPersistentDatabaseLockBackend A 3DatabaseLockBackend @ +MimeTypeGuesser ? =ExtensionMimeTypeGuesser #> GFieldModuleUninstallValidator &= MRequiredModuleUninstallValidator < +ModuleInstaller ; ?ContentUninstallValidator : +ConfigInstaller 9 %BatchStorage 
8 Cron 7 %ProxyBuilder 6 -ContainerFactory 5 9YamlDiscoveryDecorator 4 'YamlDiscovery 3 /InfoHookDecorator 2 'HookDiscovery +1 WContainerDerivativeDiscoveryDecorator 0 ;AnnotatedClassDiscovery / 7LazyContextRepository . )ContextHandler - /ContextDefinition , Context + /PluginManagerPass * !PluginBase ') ODefaultSingleLazyPluginCollection ( 5DefaultPluginManager !' CDefaultLazyPluginCollection & 9ContextAwarePluginBase % 9CachedDiscoveryClearer $ /PhpStorageFactory # 5PathProcessorManager " 1PathProcessorFront ! 3PathProcessorDecode   1PathProcessorAlias  =NullPathProcessorManager  'PathValidator  #PathMatcher  -CurrentPathStack  )AliasWhitelist  %AliasStorage  %AliasManager  5PhpassHashedPassword   AParamNotConvertedException  7ParamConverterManager  ;MenuLinkPluginConverter  +EntityConverter $ IAdminPathConfigEntityConverter  'NoServerError  !KillSwitch  /DenyNoCacheRoutes  'NoSessionOpen  ?CommandLineOrUnsafeMethod  5DefaultRequestPolicy  3ChainResponsePolicy  1ChainRequestPolicy 
 +LocalTasksBlock 	 /LocalActionsBlock  3MenuLinkDefaultForm  ;StaticMenuLinkOverrides  +MenuTreeStorage  1MenuTreeParameters  9MenuParentFormSelector  3MenuLinkTreeElement  %MenuLinkTree  +MenuLinkManager   +MenuLinkDefault  %MenuLinkBase ~ +MenuActiveTrail } -LocalTaskManager | -LocalTaskDefault { 1LocalActionManager z 1LocalActionDefault y 5InaccessibleMenuLink %x KDefaultMenuLinkTreeManipulators w 7ContextualLinkManager v 7ContextualLinkDefault u /TestMailCollector t PhpMail s #MailManager r -MailFormatHelper q #RfcLogLevel     wT7j[J;!vZ<"zgQ-
c; 




|
U
7
						w	a	S	=	~^G%_9}T7!}]G2|_G0v>iA+vU& F -MigrateFieldTest,E YMigrateFieldInstanceWidgetSettingsTestD =MigrateFieldInstanceTest'C OMigrateFieldFormatterSettingsTest$B IMigrateFieldWidgetSettingsTestA -MigrateFieldTest@ =MigrateFieldInstanceTest'? OMigrateFieldFormatterSettingsTest> 'SelectionTest%= KEntityReferenceRelationshipTest< 9EntityReferenceXSSTest!; CEntityReferenceSettingsTest: ;EntityReferenceItemTest$9 IEntityReferenceIntegrationTest"8 EEntityReferenceFormatterTest#7 GEntityReferenceFileUploadTest56 kEntityReferenceFieldTranslatedReferenceViewTest*5 UEntityReferenceFieldDefaultValueTest#4 GEntityReferenceAutoCreateTest3 =EntityReferenceAdminTest-2 [SqlContentEntityStorageSchemaColumnTest1 'EmailItemTest0 )EmailFieldTest/ +BooleanItemTest. 5BooleanFormatterTest"- EBooleanFormatterSettingsTest, -BooleanFieldTest+ ;WidgetPluginManagerTest* 1TranslationWebTest) +TranslationTest"( ETestItemWithDependenciesTest' %TestItemTest& 'ShapeItemTest% ;reEnableModuleFieldTest$ )NestedFormTest# FormTest " AFormatterPluginManagerTest! 3FieldValidationTest  /FieldUnitTestBase  AFieldTypePluginManagerTest 'FieldTestBase 5FieldStorageCrudTest& MFieldImportDeleteUninstallUiTest$ IFieldImportDeleteUninstallTest 7FieldImportDeleteTest 7FieldImportCreateTest 7FieldImportChangeTest 'FieldHelpTest" EFieldDefinitionIntegrityTest# GFieldDefaultValueCallbackTest' OFieldDefaultValueCallbackProvider 1FieldDataCountTest 'FieldCrudTest 9FieldAttachStorageTest 5FieldAttachOtherTest +FieldAccessTest )DisplayApiTest ?ConfigFieldDefinitionTest )BulkDeleteTest ;FieldUninstallValidator
 ViewMode	 =FieldInstancePerViewMode! CFieldInstancePerFormDisplay 'FieldInstance Field =FieldInstancePerViewMode! CFieldInstancePerFormDisplay 'FieldInstance Field 'FieldSettings  7FieldInstanceSettings 7FieldInstanceDefaults~ /FieldTypeDefaults} FieldType| 'FieldSettings!{ CFieldInstanceWidgetSettingsz 7FieldInstanceSettingsy 7FieldInstanceDefaults$x IFieldFormatterSettingsDefaultsw 1FieldStorageConfigv #FieldConfigu ;FieldUninstallValidator0t aFieldStorageConfigUpdateForbiddenExceptions ?FieldStorageConfigStorager 1FieldConfigStorage%q KFieldConfigAccessControlHandlerp ?ConfigImporterFieldPurgero +EntityReferencen +EntityReferencem +EntityReference%l KConfigurableEntityReferenceItemk %StandardTest j AEditorConfigEntityUnitTest!i CEditorFilterIntegrationTesth 'UnicornEditorg !TRexEditorf Insecuree -EditorUpdateTestd =QuickEditIntegrationTest%c KQuickEditIntegrationLoadingTestb 1EditorSecurityTesta /EditorManagerTest` /EditorLoadingTest_ 7EditorImageDialogTest^ 3EditorFileUsageTest#] GEditorFileReferenceFilterTest\ +EditorAdminTest[ EditorZ 3EditorFileReferenceY 'EditorManagerX !EditorBaseW -EditorLinkDialogV /EditorImageDialogU EditorT StandardS Editor!R CGetUntransformedTextCommandQ -EditorDialogSaveP ElementO -EditorController$N IDynamicPageCacheTestController%M KDynamicPageCacheIntegrationTestL +DenyAdminRoutesK 5DefaultRequestPolicy J ADynamicPageCacheSubscriberI 5ViewsIntegrationTestH /DbLogResourceTestG ;MigrateDblogConfigsTestF ;MigrateDblogConfigsTestE DbLogTest   i  iD0c: o@"|b5yX9



r
R
2
				w	>	!X:\F)mL:nElAya?e@!~jK,     1	Drupal\filter\Form 5	Drupal\filter\Entity 7	Drupal\filter\Element =	Drupal\filter\Controller =	Drupal\filter\Annotation '	Drupal\filter3 k	Drupal\Tests\file\Unit\Plugin\migrate\source\d73 k	Drupal\Tests\file\Unit\Plugin\migrate\source\d64 m	Drupal\Tests\file\Unit\Plugin\migrate\process\d6 =	Drupal\Tests\file\Kernel" I	Drupal\file_test\StreamWrapper
 7	Drupal\file_test\Form	 -	Drupal\file_test  E	Drupal\file_module_test\Form ;	Drupal\file\Tests\Views  E	Drupal\file\Tests\Migrate\d7  E	Drupal\file\Tests\Migrate\d6 ?	Drupal\file\Tests\Migrate C	Drupal\file\Tests\Formatter /	Drupal\file\Tests# K	Drupal\file\Plugin\views\wizard#  K	Drupal\file\Plugin\views\filter" I	Drupal\file\Plugin\views\field%~ O	Drupal\file\Plugin\views\argument,} ]	Drupal\file\Plugin\Validation\Constraint(| U	Drupal\file\Plugin\migrate\source\d7({ U	Drupal\file\Plugin\migrate\source\d6)z W	Drupal\file\Plugin\migrate\process\d6*y Y	Drupal\file\Plugin\migrate\destination'x S	Drupal\file\Plugin\migrate\cckfield(w U	Drupal\file\Plugin\Field\FieldWidget&v Q	Drupal\file\Plugin\Field\FieldType+u [	Drupal\file\Plugin\Field\FieldFormatter/t c	Drupal\file\Plugin\EntityReferenceSelections 7	Drupal\file\FileUsager 1	Drupal\file\Entityq 3	Drupal\file\Elementp 9	Drupal\file\Controllero #	Drupal\filen A	Drupal\Tests\field_ui\Unitm 7	Drupal\field_ui\Testsl ;	Drupal\field_ui\Routing%k O	Drupal\field_ui\Plugin\Derivativej 5	Drupal\field_ui\Formi ;	Drupal\field_ui\Elementh A	Drupal\field_ui\Controllerg 9	Drupal\field_ui\Accessf +	Drupal\field_ui4e m	Drupal\Tests\field\Unit\Plugin\migrate\source\d74d m	Drupal\Tests\field\Unit\Plugin\migrate\source\d65c o	Drupal\Tests\field\Unit\Plugin\migrate\process\d75b o	Drupal\Tests\field\Unit\Plugin\migrate\process\d6a ;	Drupal\Tests\field\Unit2` i	Drupal\field_test\Plugin\Validation\Constraint._ a	Drupal\field_test\Plugin\Field\FieldWidget,^ ]	Drupal\field_test\Plugin\Field\FieldType1] g	Drupal\field_test\Plugin\Field\FieldFormatter\ 9	Drupal\field_test\Form6[ q	Drupal\field_plugins_test\Plugin\Field\FieldWidget9Z w	Drupal\field_plugins_test\Plugin\Field\FieldFormatterY =	Drupal\field\Tests\ViewsX 9	Drupal\field\Tests\UriW ?	Drupal\field\Tests\Update V E	Drupal\field\Tests\TimestampU ?	Drupal\field\Tests\StringT ?	Drupal\field\Tests\Number!S G	Drupal\field\Tests\Migrate\d7!R G	Drupal\field\Tests\Migrate\d6,Q ]	Drupal\field\Tests\EntityReference\Views&P Q	Drupal\field\Tests\EntityReference$O M	Drupal\field\Tests\Entity\UpdateN =	Drupal\field\Tests\EmailM A	Drupal\field\Tests\BooleanL 1	Drupal\field\TestsK ;	Drupal\field\ProxyClass)J W	Drupal\field\Plugin\migrate\source\d7)I W	Drupal\field\Plugin\migrate\source\d6*H Y	Drupal\field\Plugin\migrate\process\d7*G Y	Drupal\field\Plugin\migrate\process\d6F 3	Drupal\field\EntityE %	Drupal\field.D a	Drupal\entity_reference\Plugin\views\style,C ]	Drupal\entity_reference\Plugin\views\row0B e	Drupal\entity_reference\Plugin\views\displayA ;	Drupal\entity_reference,@ ]	Drupal\Tests\editor\Unit\EditorXssFilter? =	Drupal\Tests\editor\Unit> A	Drupal\Tests\editor\Kernel$= M	Drupal\editor_test\Plugin\Editor&< Q	Drupal\editor_test\EditorXssFilter; A	Drupal\editor\Tests\Update: 3	Drupal\editor\Tests&9 Q	Drupal\editor\Plugin\InPlaceEditor8 C	Drupal\editor\Plugin\Filter7 5	Drupal\editor\Plugin6 1	Drupal\editor\Form5 5	Drupal\editor\Entity!4 G	Drupal\editor\EditorXssFilter3 =	Drupal\editor\Annotation2 1	Drupal\editor\Ajax1 '	Drupal\editor"0 I	Drupal\dynamic_page_cache_test#/ K	Drupal\dynamic_page_cache\Tests6. q	Drupal\dynamic_page_cache\PageCache\ResponsePolicy5- o	Drupal\dynamic_page_cache\PageCache\RequestPolicy   ?	 wbO<#qYF1kK-aL1iD-






k
T
=
%
				                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          * 9RebuildPermissionsForm) 7NodeTypeDeleteConfirm'( ONodeRevisionRevertTranslationForm' 9NodeRevisionRevertForm& 9NodeRevisionDeleteForm% +NodePreviewForm$ )NodeDeleteForm# )DeleteMultiple" =NodeAdminRouteSubscriber! NodeType  /NodeRouteProvider
 Node 1NodeViewController 7NodePreviewController )NodeController -NodeRouteContext )NodeTypeMapper" ENodeAccessGrantsCacheContext ;NodeRevisionAccessCheck 9NodePreviewAccessCheck 1NodeAddAccessCheck =NodeGrantDatabaseStorage NodeForm =NodeAccessControlHandler 1TestDrupal6SqlBase 1Drupal6SqlBaseTest %VariableTest =VariableMultiRowTestBase 5VariableMultiRowTest- [VariableMultiRowSourceWithHighwaterTest ;MigrateDependenciesTest 9MigrateDrupal7TestBase
 9MigrateDrupal6TestBase	 7EntityContentBaseTest ;CckMigrationBuilderTest 7MigrateDrupalTestBase +FieldableEntity -VariableMultiRow Variable #EmptySource 'DrupalSqlBase =EntityFieldStorageConfig  1CckFieldPluginBase %CckMigration~ !CckBuilder} +MigrateCckField| 'StaticMapTest{ +SkipOnEmptyTestz 9MigrateProcessTestCasey +MachineNameTestx %IteratorTestw GetTestv #FlattenTestu #ExtractTestt -DedupeEntityTests !TestConcatr !ConcatTestq %TestCallbackp %CallbackTesto 7EntityTestDestinationn 7EntityContentBaseTestm ?RequirementsExceptionTestl 'MigrationTest   ' ^I8!dE-hH.pO4cG*




|
[
L
3


							u	b	F	-	iR:$]B'v]= oX3uO,d?lK.y^J'      ^ AExceptionHalJsonSubscriber7] #JsonEncoder6\ 1HalServiceProvider5$[ IForumNodeBreadcrumbBuilderTest4'Z OForumListingBreadcrumbBuilderTest4$Y IForumBreadcrumbBuilderBaseTest4!X CForumUninstallValidatorTest3W -ForumManagerTest3V 5ForumIntegrationTest2U =MigrateForumSettingsTest1T ;MigrateForumConfigsTest0S 3ForumValidationTest/R 1ForumUninstallTest/Q ForumTest/P 3ForumNodeAccessTest/O )ForumIndexTest/N )ForumBlockTest/M ;ForumUninstallValidator."L EForumLeafConstraintValidator-K 3ForumLeafConstraint-J )NewTopicsBlock,I )ForumBlockBase,H /ActiveTopicsBlock,G Overview+F ForumForm+E !DeleteForm+D 'ContainerForm+C +ForumController* B AForumNodeBreadcrumbBuilder)#A GForumListingBreadcrumbBuilder) @ AForumBreadcrumbBuilderBase)? ;ForumUninstallValidator(> /ForumSettingsForm(= %ForumManager(< /ForumIndexStorage(; -FilterFormatTest': -FilterFormatTest&"9 EFilterUninstallValidatorTest%8 )FilterHtmlTest%7 -FilterTestStatic$6 )FilterSparkles$)5 SFilterTestRestrictTagsAndAttributes#4 /FilterTestReplace#3 9FilterTestPlaceholders#2 3FilterTestCacheTags#1 5FilterTestCacheMerge#0 ;FilterTestCacheContexts#/ -FilterTestAssets#. 5FilterTestFormatForm"- ;MigrateFilterFormatTest!, ;MigrateFilterFormatTest + ?TextFormatElementFormTest* )FilterUnitTest) 1FilterSettingsTest( 1FilterSecurityTest' 1FilterNoFormatTest& ?FilterHtmlImageSecureTest% +FilterHooksTest$ )FilterFormTest# 9FilterFormatAccessTest" ;FilterDefaultFormatTest! ;FilterDefaultConfigTest  )FilterCrudTest 'FilterAPITest +FilterAdminTest )FilteredMarkup =FilterUninstallValidator %FilterFormat %FilterFormat 9FilterFormatPermission )FilterSettings FilterUrl !FilterNull 7FilterHtmlImageSecure -FilterHtmlEscape 3FilterHtmlCorrector !FilterHtml 'FilterCaption #FilterAutoP #FilterAlign %FilterFormat !FilterBase /FilterDisableForm %FilterFormat
 !TextFormat	 'ProcessedText -FilterController Filter =FilterUninstallValidator 3FilterProcessResult 3FilterPluginManager 9FilterPluginCollection /FilterPermissions ;FilterFormatListBuilder  5FilterFormatFormBase 5FilterFormatEditForm~ 3FilterFormatAddForm&} MFilterFormatAccessControlHandler| TestFile{ FileTestz !UploadTesty 1UploadInstanceTestx FileTestw #FileUriTestv #CckFileTestu 9FileItemValidationTestt 1DummyStreamWrappers =DummyRemoteStreamWrapper r ADummyReadOnlyStreamWrapperq %FileTestForm
"p EFileTestAccessControlHandler	o 1FileModuleTestForm"n ERelationshipUserFileDataTestm =FileViewsFieldAccessTestl /FileViewsDataTestk ;ExtensionViewsFieldTestj +MigrateFileTesti /MigrateUploadTesth ?MigrateUploadInstanceTestg 9MigrateUploadFieldTest(f QMigrateUploadEntityFormDisplayTest$e IMigrateUploadEntityDisplayTestd +MigrateFileTestc 9MigrateFileConfigsTestb 3MigrateFileStubTesta )TestEntityFile` )EntityFileTest_ ;FileEntityFormatterTest^ 'ValidatorTest] %ValidateTest\ UsageTest[ 'SpaceUsedTestZ )SaveUploadTestY SaveTestX %SaveDataTestW =RemoteFileSaveUploadTest'V OPrivateFileOnTranslatedEntityTestU MoveTestT LoadTestS 5FileTokenReplaceTestR +FilePrivateTest   v  gR/rY:&
~eK$kU7b>!




p
Z
?
						h	J	6	mYB1~eI\>kH,cB ]+jE$e7            5 o	hook_language_fallback_candidates_OPERATION_alter+ [	hook_language_fallback_candidates_alter( U	hook_language_negotiation_info_alter" I	hook_language_types_info_alter =	hook_language_types_info 9	hook_image_style_flush  E	hook_image_effect_info_alter 	hook_help A	hook_filter_format_disable" I	hook_filter_secure_image_alter 9	hook_filter_info_alter )	hook_file_move )	hook_file_copy 1	hook_file_validate, ]	hook_field_widget_settings_summary_alter/
 c	hook_field_formatter_settings_summary_alter/	 c	hook_field_widget_third_party_settings_form2 i	hook_field_formatter_third_party_settings_form6 q	field_post_update_entity_reference_handler_setting2 i	field_post_update_save_custom_storage_property 9	hook_field_purge_field" I	hook_field_purge_field_storage A	hook_field_info_max_weight# K	hook_field_formatter_info_alter, ]	hook_field_widget_WIDGET_TYPE_form_alter   E	hook_field_widget_form_alter  E	hook_field_widget_info_alter+~ [	hook_field_storage_config_update_forbid} 7	hook_field_info_alter | E	hook_editor_xss_filter_alter!{ G	hook_editor_js_settings_alterz 9	hook_editor_info_alter$y M	hook_contextual_links_view_alter&x Q	hook_config_translation_info_alter w E	hook_config_translation_infov =	hook_comment_links_alteru ;	hook_ckeditor_css_alter#t K	hook_ckeditor_plugin_info_alter:s y	block_post_update_disable_blocks_with_missing_contextsr /	hook_block_access(q U	hook_block_build_BASE_BLOCK_ID_alterp 9	hook_block_build_alter'o S	hook_block_view_BASE_BLOCK_ID_altern 7	hook_block_view_alterm 1	hook_action_deletel 7	hook_token_info_alterk +	hook_token_infoj /	hook_tokens_alteri #	hook_tokens4h m	hook_template_preprocess_default_variables_alterg ?	hook_theme_registry_alterf !	hook_themee -	hook_page_bottomd '	hook_page_topc C	hook_page_attachments_alterb 7	hook_page_attachmentsa )	hook_css_alter` ;	hook_library_info_alter_ 9	hook_js_settings_alter^ 9	hook_js_settings_build] ;	hook_library_info_build\ '	hook_js_alter[ ;	hook_element_info_alterZ 5	hook_render_templateY )	hook_extensionX ;	hook_themes_uninstalledW 7	hook_themes_installed%V O	hook_theme_suggestions_HOOK_alter U E	hook_theme_suggestions_alterT C	hook_theme_suggestions_HOOKS 5	hook_preprocess_HOOKR +	hook_preprocess)Q W	hook_form_system_theme_settings_alterP +	hook_link_alter O E	hook_system_breadcrumb_alter'N S	hook_contextual_links_plugins_alterM C	hook_contextual_links_alterL 9	hook_local_tasks_alter!K G	hook_menu_local_actions_alterJ C	hook_menu_local_tasks_alter$I M	hook_menu_links_discovered_alter(H U	hook_transliteration_overrides_alter$G M	hook_language_switch_links_alterF -	hook_batch_alter E E	hook_form_BASE_FORM_ID_alterD ;	hook_form_FORM_ID_alterC +	hook_form_alterB 9	hook_ajax_render_alterA ;	callback_batch_finished@ =	callback_batch_operation ? E	hook_filetransfer_info_alter> 9	hook_filetransfer_info= =	hook_archiver_info_alter$< M	hook_file_mimetype_mapping_alter; 3	hook_file_url_alter: 1	hook_file_download9 /	hook_requirements8 ;	hook_updater_info_alter7 /	hook_updater_info6 =	hook_update_last_removed5 =	hook_update_dependencies4 7	hook_post_update_NAME3 '	hook_update_N2 =	hook_install_tasks_alter1 1	hook_install_tasks0 )	hook_uninstall/ =	hook_modules_uninstalled. =	hook_module_preuninstall- %	hook_install, 9	hook_modules_installed+ 9	hook_module_preinstall* 9	hook_system_info_alter ) E	hook_module_implements_alter( )	hook_hook_info&' Q	hook_entity_extra_field_info_alter & E	hook_entity_extra_field_info&% Q	hook_ENTITY_TYPE_field_values_init!$ G	hook_entity_field_values_init   r m[G5!zl^O@.|ZF2$kT=/	t\D(






g
P
9
!
						w	j	_	T	F	1		zdN;(lYF4!}lM-~lU4&~hL8v\I7*x`K<-r =handleUnresolvedArgument %getReflector #getArgument %getArguments #__construct +readGenericData 7readLanguageOverrides /lookupReplacement  replace ordUTF8~ 'transliterate} -removeDiacritics| #__construct{ -getFileExtensionz decodey encodex )renderFromHtmlw createv /placeholderEscapeu /placeholderFormatt 'jsonSerialize
s countr !__toStringq #__constructp 1buildUseStatementso 9buildConstructorMethodn +buildMethodBodym )buildParameterl #buildMethodk ?buildLazyLoadItselfMethod
j buildi 3buildProxyNamespaceh 3buildProxyClassNameg #getInstancef 5getInstanceArgumentse )getPluginClassd )createInstancec #__constructb #getPluginIda #__construct` -deleteDefinition_ 'setDefinition^ +doGetDefinition] 'hasDefinition\ __call[ ?mergeDerivativeDefinitionZ +getDeriverClassY !getDeriverX )encodePluginIdW )decodePluginIdV )getDerivativesU )getDefinitionsT 'getDefinitionS #__constructR useCachesQ 9clearCachedDefinitionsP =getDerivativeDefinitionsO ;getDerivativeDefinitionN getClassM setClassL 'getConstraintK 'addConstraintJ )setConstraintsI +setDefaultValueH +getDefaultValueG #setRequiredF !isRequiredE #setMultipleD !isMultipleC #setDataTypeB #getDataTypeA )setDescription@ )getDescription? setLabel> getLabel= validate< )getConstraints; 5getContextDefinition: +hasContextValue9 +getContextValue8 #__construct7 #getInstance6 )createInstance5 )getDefinitions4 'getDefinition3 !getFactory2 %getDiscovery1 3getPluginDefinition0 #getPluginId
/ count. #getIterator- -removeInstanceId, )getInstanceIds+ 'addInstanceId* remove) set( has
' clear& -initializePlugin% 3getFallbackPluginId$ +getDerivativeId# getBaseId" 7calculateDependencies! /setContextMapping  /getContextMapping -validateContexts +setContextValue +getContextValue -getContextValues !setContext !getContext #getContexts 5getContextDefinition 7getContextDefinitions# IcreateContextFromConfiguration #__construct 5defaultConfiguration -setConfiguration -getConfiguration 7getGroupedDefinitions 5getSortedDefinitions 'getCategories getPath checkFile tempnam -getUncachedMTime#
 IgetContainingDirectoryFullPath	 unlink +createDirectory +ensureDirectory 'htaccessLines /garbageCollection listAll deleteAll writeable #getFullPath  delete	 save	~ load} exists| #__construct{ isSafez %setTargetUrly %fromResponsex AcreateFromRedirectResponsew -depthFirstSearchv 'searchAndSortu #__constructt #writeHeader
s writer +shortenCommentsq #parseQuotedp -setItemFromArrayo readLinen !readHeaderm getSeekl setSeekk setURIj getURI
i close	h openg readItemf setHeadere getHeaderd getDatac !writeItemsb writeItema %formatString` )formatSingular_ %formatPlural^ !formatItem] %setFromArray\ !setComment[ !getCommentZ isPluralY setPluralX )setTranslationW )getTranslationV setSourceU getSourceT !setContext   + yeJ7&rdP8hT8~_D+|iR>





i
S
9
)
						r	d	Q	;	'	{oM/ qZ-lL.gO2fK,c;aA&xZC+               M +CommentTestBaseXL )CommentRowTestXK 7CommentRestExportTestXJ 7CommentOperationsTestXI -CommentLinksTestXH 5CommentFieldNameTestXG 9CommentFieldFilterTestXF 3ArgumentUserUIDTestXE 9MigrateCommentTypeTestWD 1MigrateCommentTestWC ;MigrateCommentFieldTestW%B KMigrateCommentFieldInstanceTestW)A SMigrateCommentEntityFormDisplayTestW0@ aMigrateCommentEntityFormDisplaySubjectTestW%? KMigrateCommentEntityDisplayTestW(> QMigrateCommentVariableInstanceTestV%= KMigrateCommentVariableFieldTestV1< cMigrateCommentVariableEntityFormDisplayTestV8; qMigrateCommentVariableEntityFormDisplaySubjectTestV-: [MigrateCommentVariableEntityDisplayTestV'9 OMigrateCommentVariableDisplayBaseV8 9MigrateCommentTypeTestV7 1MigrateCommentTestV6 9MigrateCommentStubTestU5 7CommentValidationTestT4 5CommentUninstallTestT3 +CommentTypeTestT2 =CommentTranslationUITestT1 ;CommentTokenReplaceTestT0 -CommentTitleTestT/ 5CommentThreadingTestT. +CommentTestBaseT!- CCommentStringIdEntitiesTestT, 7CommentStatisticsTestT+ )CommentRssTestT* 1CommentPreviewTestT) -CommentPagerTestT( 1CommentNonNodeTestT' 9CommentNodeChangesTestT& 7CommentNodeAccessTestT% ;CommentNewIndicatorTestT$ -CommentLinksTestT# 7CommentLinksAlterTestT" 3CommentLanguageTestT! +CommentItemTestT  5CommentInterfaceTestT /CommentFieldsTestT 9CommentFieldAccessTestT* UCommentDefaultFormatterCacheTagsTestT )CommentCSSTestT 5CommentCacheTagsTestT +CommentBookTestT -CommentBlockTestT 5CommentAnonymousTestT -CommentAdminTestT 1CommentActionsTestT CommentS ThreadR 7StatisticsLastUpdatedR ?StatisticsLastCommentNameR	 RssQ UserUidP 7StatisticsLastUpdatedP #NodeCommentP 7StatisticsLastUpdatedO ?StatisticsLastCommentNameO +NodeNewCommentsO
 LinkReplyO	 #LinkApproveO 'LastTimestampO !EntityLinkO DepthO UserUidN$ ICommentNameConstraintValidatorM 7CommentNameConstraintM #CommentTypeL CommentL#  GCommentVariablePerCommentTypeK +CommentVariableK~ CommentK} /EntityCommentTypeJ| 'EntityCommentJ{ 1UnapprovedCommentsIz 'CommentWidgetHy #CommentItemGx ;CommentDefaultFormatterFw 3AuthorNameFormatterFv -CommentSelectionEu -UnpublishCommentDt ?UnpublishByKeywordCommentDs #SaveCommentDr )PublishCommentDq !DeleteFormCp 7ConfirmDeleteMultipleCo 7CommentTypeDeleteFormCn 5CommentAdminOverviewCm #CommentTypeBl CommentBk /CommentControllerAj +AdminControllerAi -CommentViewsData@h 1CommentViewBuilder@g 9CommentTypeListBuilder@f +CommentTypeForm@e ?CommentTranslationHandler@d 5CommentStorageSchema@c )CommentStorage@b /CommentStatistics@a )CommentManager@` 1CommentLinkBuilder@_ 3CommentLazyBuilders@^ #CommentForm@] 5CommentFieldItemList@\ =CommentBreadcrumbBuilder@![ CCommentAccessControlHandler@Z ColorTest?Y 5ColorSafePreviewTest?X 7ColorConfigSchemaTest?W =LlamaContextualAndButton>V +LlamaContextual>U #LlamaButton>T Llama>S ?CKEditorToolbarButtonTest=R %CKEditorTest=Q ?CKEditorPluginManagerTest=P 3CKEditorLoadingTest=O /CKEditorAdminTest=N CKEditor<M #StylesCombo;L Internal;K !DrupalLink;J 1DrupalImageCaption;I #DrupalImage;H )CKEditorPlugin:G 7CKEditorPluginManager9F 1CKEditorPluginBase9E )BreakpointTest8D ;BreakpointDiscoveryTest7   , sC$y`M3x\B!
eR8&dN/




~
Z
A
$
							q	T	?	&	rW6% t`I4}hF+pY9#i? z^9}iG*q[A,    ? 'TitleResolver=> 1HtmlFormController== )FormController=< 1ControllerResolver=; )ControllerBase=: 3ConfigSchemaChecker<9 Undefined;8 Sequence;7 ?SchemaIncompleteException;6 Mapping;5 Ignore;4 Element;3 7ConfigSchemaDiscovery;2 AConfigSchemaAlterException;1 %ArrayElement;0 3MissingContentEvent:"/ GFinalMissingContentSubscriber:. %QueryFactory9
- Query9, ?InvalidLookupKeyException9+ Condition9&* OConfigEntityStorageClassException8") GConfigEntityIdLengthException8( 5DraggableListBuilder7' -ConfigEntityType7& 3ConfigEntityStorage7% ;ConfigEntityListBuilder7$ 9ConfigEntityDependency7# 9ConfigEntityBundleBase7" -ConfigEntityBase7! ;ConfigDependencyManager7'  QUnsupportedDataTypeConfigException6 AUnmetDependenciesException6 1TypedConfigManager6 -StorageException6 +StorageComparer6 1StorableConfigBase6 APreExistingConfigException6 #NullStorage6 )InstallStorage6 =ImmutableConfigException6 +ImmutableConfig6 1FileStorageFactory6 #FileStorage6 ;ExtensionInstallStorage6 +DatabaseStorage6 5ConfigValueException6 /ConfigRenameEvent6  CConfigPrefixLengthException6 3ConfigNameException6 AConfigModuleOverridesEvent6 'ConfigManager6 +ConfigInstaller6,
 [ConfigImportValidateEventSubscriberBase6	 ;ConfigImporterException6 3ConfigImporterEvent6 )ConfigImporter6 ?ConfigFactoryOverrideBase6 'ConfigFactory6 +ConfigException6 %ConfigEvents6! EConfigDuplicateUUIDException6 +ConfigCrudEvent6  5ConfigCollectionInfo6 !ConfigBase6~ Config6} 'CachedStorage6"| GBootstrapConfigStorageFactory6{ Condition5z ?ConditionPluginCollection4y 3ConditionPluginBase4x -ConditionManager4w Composer3v ?GenerateProxyClassCommand2"u GGenerateProxyClassApplication2t 1DbToolsApplication2s +DbImportCommand2r 'DbDumpCommand2q /DbDumpApplication2p 'DbCommandBase2o 7UserRolesCacheContext1n 5UserCacheContextBase1m -UserCacheContext1l +UrlCacheContext1k 5TimeZoneCacheContext1j /ThemeCacheContext1i -SiteCacheContext1h 3SessionCacheContext1g 7RouteNameCacheContext1f /RouteCacheContext1!e ERequestStackCacheContextBase1d ?RequestFormatCacheContext1c 7QueryArgsCacheContext1b -PathCacheContext1a 1PagersCacheContext1!` EMenuActiveTrailsCacheContext1_ 7LanguagesCacheContext1^ ;IsSuperUserCacheContext1] )IpCacheContext1\ 3HeadersCacheContext1[ 3CookiesCacheContext1Z -ContextCacheKeys1Y /CacheContextsPass1X 5CacheContextsManager1#W IAccountPermissionsCacheContext1V /PhpBackendFactory0U !PhpBackend0T 1NullBackendFactory0S #NullBackend0R 5MemoryCounterBackend0Q 5MemoryBackendFactory0P 'MemoryBackend0O /ListCacheBinsPass0N ?DatabaseCacheTagsChecksum0M 9DatabaseBackendFactory0L +DatabaseBackend0K ?ChainedFastBackendFactory0J 1ChainedFastBackend0I 5CacheTagsInvalidator0H %CacheFactory0G )CacheCollector0F /CacheableResponse0E ?CacheableRedirectResponse0D /CacheableMetadata0C 7CacheableJsonResponse0
B Cache0A %BackendChain0@ 1ApcuBackendFactory0? #ApcuBackend0> /BreadcrumbManager/= !Breadcrumb/< )PageTitleBlock.; Broken.
: Block-9 %BlockManager,8 BlockBase,7 !Percentage+6 %BatchStorage+5 7AuthenticationManager*4 ;AuthenticationCollector*-3 ]LibraryDefinitionMissingLicenseException) 2 CInvalidLibraryFileException)31 iInvalidLibrariesOverrideSpecificationException)10 eInvalidLibrariesExtendSpecificationException)   { sQ,uV8yN:	~fR-^;





t
R
(
				_	:	_4^4nI$n>eL,z[="xXA&~iQ@"     D 9DbLogFormInjectionTestC 7ConnectionFailureTestB WatchdogA +DblogOperations@ %DblogMessage? 'DBLogResource> DbLog= +DblogFilterForm< /DblogClearLogForm; =DblogClearLogConfirmForm: +DbLogController9 -SortDateTimeTest8 1FilterDateTimeTest7 )FilterDateTest6 ;DateTimeHandlerTestBase5 5ArgumentDateTimeTest4 -DateTimeItemTest3 /DateTimeFieldTest
2 Date
1 Date0 YearDate/ MonthDate. DayDate
- Date, 1DateTimeWidgetBase+ 7DateTimeDefaultWidget* 9DateTimeDatelistWidget) %DateTimeItem( 7DateTimeFieldItemList' =DateTimeTimeAgoFormatter& 9DateTimePlainFormatter% 7DateTimeFormatterBase$ =DateTimeDefaultFormatter# ;DateTimeCustomFormatter" -DateTimeComputed! 1ContextualUnitTest"  EContextualDynamicContextTest +ContextualLinks  AContextualLinksPlaceholder +ContextualLinks 5ContextualController& MContentTranslationLocalTasksTest- [ContentTranslationManageAccessCheckTest" EEntityTestTranslatableUISkip$ IEntityTestTranslatableNoUISkip 3TranslationLinkTest# GContentTranslationViewsUITest% KContentTranslationWorkflowsTest" EContentTranslationUITestBase" EContentTranslationUISkipTest  AContentTranslationTestBase$ IContentTranslationSyncUnitTest% KContentTranslationSyncImageTest* UContentTranslationStandardFieldsTest$ IContentTranslationSettingsTest' OContentTranslationSettingsApiTest& MContentTranslationOperationsTest* UContentTranslationMetadataFieldsTest*
 UContentTranslationEntityBundleUITest"	 EContentTranslationEnableTest+ WContentTranslationContextualLinksTest( QContentTranslationConfigImportTest" EContentTestTranslationUITest' OContentTranslationRouteSubscriber +TranslationLink" EContentTranslationLocalTasks' OContentTranslationContextualLinks" EContentTranslationDeleteForm"  EContentTranslationController& MContentTranslationOverviewAccess)~ SContentTranslationManageAccessCheck"} EFieldTranslationSynchronizer&| MContentTranslationUpdatesManager#{ GContentTranslationPermissions'z OContentTranslationMetadataWrappery ?ContentTranslationManagerx ?ContentTranslationHandlerw 3ContactSettingsTestv 3ContactCategoryTestu +MailHandlerTestt +ContactLinkTests /ContactFieldsTest r AMigrateContactSettingsTest q AMigrateContactSettingsTest p AMigrateContactCategoryTest o AMigrateContactCategoryTestn /MessageEntityTestm 1ContactStorageTestl 3ContactSitewideTestk 3ContactPersonalTestj 3ContactLanguageTest"i EContactAuthenticatedUserTesth #ContactLink~g +ContactSettings}f +ContactCategory}e Message|d #ContactForm|c /ContactController{b /ContactPageAccessza 1MessageViewBuildery` #MessageFormy_ 5MailHandlerExceptiony^ #MailHandlery(] QContactMessageAccessControlHandlery\ 9ContactFormListBuildery[ 3ContactFormEditFormy%Z KContactFormAccessControlHandleryY 7TestConfigNamesMapperxX 7ConfigNamesMapperTestxW ;ConfigMapperManagerTestxV 7ConfigFieldMapperTestxU 9ConfigEntityMapperTestx%T KConfigTranslationViewListUiTestw"S EConfigTranslationUiThemeTestwR ;ConfigTranslationUiTestw#Q GConfigTranslationOverviewTestw!P CConfigTranslationListUiTestw"O EConfigTranslationInstallTestwN ?ConfigTranslationFormTestw'M OConfigTranslationDateFormatUiTestwL +RouteSubscriberv K AConfigTranslationLocalTasku%J KConfigTranslationContextualLinkt   VU oV/jK!~E^1uZ7"




i
=
				p	4	n3{Gb=lH&	iH'sU                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 W ;	Drupal\basic_auth\Tests V E	Drupal\migrate_drupal\PluginU #	Drupal\linkT A	Drupal\Core\TypedData\TypeS A	Drupal\Core\Routing\AccessR 9	Drupal\Core\OperationsQ ?	Drupal\Core\Entity\SchemaP A	Drupal\Core\Entity\DisplayO A	Drupal\Core\CacheDecorator"N I	Drupal\Component\Plugin\Mapper&M Q	Drupal\Component\Plugin\DefinitionL -	Drupal\node\FormK C	Drupal\node\EventSubscriberJ 1	Drupal\node\EntityI 9	Drupal\node\ControllerH C	Drupal\node\ContextProvider!G G	Drupal\node\ConfigTranslationF /	Drupal\node\CacheE 1	Drupal\node\AccessD #	Drupal\node.C a	Drupal\Tests\migrate_drupal\Unit\source\d6+B [	Drupal\Tests\migrate_drupal\Unit\source,A ]	Drupal\migrate_drupal\Tests\dependencies"@ I	Drupal\migrate_drupal\Tests\d7"? I	Drupal\migrate_drupal\Tests\d6> C	Drupal\migrate_drupal\Tests2= i	Drupal\migrate_drupal\Plugin\migrate\source\d7/< c	Drupal\migrate_drupal\Plugin\migrate\source4; m	Drupal\migrate_drupal\Plugin\migrate\destination1: g	Drupal\migrate_drupal\Plugin\migrate\cckfield39 k	Drupal\migrate_drupal\Plugin\migrate\builder\d608 e	Drupal\migrate_drupal\Plugin\migrate\builder$7 M	Drupal\migrate_drupal\Annotation%6 O	Drupal\Tests\migrate\Unit\process85 u	Drupal\Tests\migrate\Unit\Plugin\migrate\destination'4 S	Drupal\Tests\migrate\Unit\Exception$3 M	Drupal\Tests\migrate\Unit\Entity)2 W	Drupal\Tests\migrate\Unit\destination1 ?	Drupal\Tests\migrate\Unit&0 Q	Drupal\Tests\migrate\Kernel\Entity9/ w	Drupal\migrate_events_test\Plugin\migrate\destination. 5	Drupal\migrate\Tests(- U	Drupal\migrate\Plugin\migrate\source), W	Drupal\migrate\Plugin\migrate\process(+ U	Drupal\migrate\Plugin\migrate\id_map-* _	Drupal\migrate\Plugin\migrate\destination)) W	Drupal\migrate\Plugin\migrate\builder$( M	Drupal\migrate\Plugin\Derivative' 7	Drupal\migrate\Plugin& =	Drupal\migrate\Exception% 5	Drupal\migrate\Event$ 7	Drupal\migrate\Entity# ?	Drupal\migrate\Annotation" )	Drupal\migrate ! E	Drupal\menu_ui\Tests\Migrate  5	Drupal\menu_ui\Tests* Y	Drupal\menu_ui\Plugin\Menu\LocalAction 3	Drupal\menu_ui\Form ?	Drupal\menu_ui\Controller )	Drupal\menu_ui= 	Drupal\Tests\menu_link_content\Unit\Plugin\migrate\source* Y	Drupal\menu_link_content_dynamic_route- _	Drupal\menu_link_content\Tests\Migrate\d7- _	Drupal\menu_link_content\Tests\Migrate\d6* Y	Drupal\menu_link_content\Tests\Migrate" I	Drupal\menu_link_content\Tests2 i	Drupal\menu_link_content\Plugin\migrate\source6 q	Drupal\menu_link_content\Plugin\migrate\process\d6( U	Drupal\menu_link_content\Plugin\Menu+ [	Drupal\menu_link_content\Plugin\Deriver! G	Drupal\menu_link_content\Form# K	Drupal\menu_link_content\Entity' S	Drupal\menu_link_content\Controller =	Drupal\menu_link_content! G	Drupal\Tests\locale\Unit\Menu =	Drupal\Tests\locale\Unit! G	Drupal\early_translation_test
 C	Drupal\locale\Tests\Migrate	 3	Drupal\locale\Tests C	Drupal\locale\StreamWrapper$ M	Drupal\locale\Plugin\QueueWorker 1	Drupal\locale\Form! G	Drupal\locale\EventSubscriber =	Drupal\locale\Controller '	Drupal\locale7 s	Drupal\Tests\link\Unit\Plugin\Validation\Constraint   ! eK0mJ{^M@, }eD%|R2	





~
m
`
L
;
!
							y	^	?	|U5_=^;`?pH&z]@!saH-zd<!                       \ 3BaseFieldDefinitionk%[ MRecursiveExtensionFilterIteratorjZ )ThemeInstalleriY %ThemeHandleri%X MRequiredModuleUninstallValidatori&W OModuleUninstallValidatorExceptioniV +ModuleInstalleriU 'ModuleHandleriT AMissingDependencyExceptioniS 3InfoParserExceptioniR /InfoParserDynamiciQ !InfoParseri!P EExtensionNameLengthExceptioniO 1ExtensionDiscoveryiN ExtensioniM 5ExecutablePluginBasehL 3ExecutableExceptionh%K MSpecialAttributesRouteSubscribergJ ;RouterRebuildSubscribergI 7RouteMethodSubscribergH 7RouteFilterSubscribergG ;RouteEnhancerSubscriberg"F GRouteAccessResponseSubscriberg E CResponseGeneratorSubscribergD 9RequestCloseSubscriberg$C KReplicaDatabaseIgnoreSubscribergB ARedirectResponseSubscriberg%A MRedirectLeadingSlashesSubscriberg@ 7PsrResponseSubscriberg? )PathSubscriberg> 3PathRootsSubscriberg= =ParamConverterSubscriberg< 7ModuleRouteSubscriberg ; CMenuRouterRebuildSubscriberg: ?MaintenanceModeSubscriberg9 ?MainContentViewSubscriberg 8 CKernelDestructionSubscriberg 7 CHttpExceptionSubscriberBaseg6 9HtmlResponseSubscriberg.5 _HtmlResponsePlaceholderStrategySubscriberg4 =FinishResponseSubscriberg#3 IFast404ExceptionHtmlSubscriberg 2 CExceptionTestSiteSubscriberg1 AExceptionLoggingSubscriberg0 ;ExceptionJsonSubscriberg"/ GEntityRouteProviderSubscriberg. AEntityRouteAlterSubscriberg#- IEnforcedFormResponseSubscriberg., _EarlyRenderingControllerWrapperSubscriberg+ ADefaultExceptionSubscriberg#* IDefaultExceptionHtmlSubscriberg&) OCustomPageExceptionHtmlSubscriberg( =ConfigSnapshotSubscriberg' 9ConfigImportSubscriberg"& GClientErrorResponseSubscriberg!% ECacheRouterRebuildSubscriberg$ =AuthenticationSubscriberg$# KAnonymousUserResponseSubscriberg" 9AjaxResponseSubscriberg! =ActiveLinkResponseFilterg  5AcceptNegotiation406g 5EntityDataDefinitionf" GSqlContentEntityStorageSchemae% MSqlContentEntityStorageExceptione ;SqlContentEntityStoragee 3DefaultTableMappinge =DefaultHtmlRouteProviderd 9AdminHtmlRouteProviderd %QueryFactoryc Conditionc Tablesb %QueryFactoryb )QueryAggregateb
 Queryb 1ConditionAggregateb Conditionb %QueryFactorya
 Querya Conditiona %QueryFactory` )QueryException` QueryBase`
 7ConditionFundamentals`	 'ConditionBase` 9ConditionAggregateBase`& OValidReferenceConstraintValidator_ =ValidReferenceConstraint_' QReferenceAccessConstraintValidator_ ?ReferenceAccessConstraint_" GEntityTypeConstraintValidator_ 5EntityTypeConstraint_% MEntityChangedConstraintValidator_  ;EntityChangedConstraint_ ;CompositeConstraintBase_~ ?BundleConstraintValidator_} -BundleConstraint_| 'SelectionBase^{ %PhpSelection^z -DefaultSelection^y Broken^x ;DefaultSelectionDeriver]w 'EntityDeriver\v +EntityReference[u 'EntityAdapter[t %QueryFactoryZ
s QueryZr ConditionZq 7KeyValueEntityStorageY!p EKeyValueContentEntityStorageY#o IUndefinedLinkTemplateExceptionX(n SNoCorrespondingEntityClassExceptionX!m EInvalidLinkTemplateExceptionX3l iFieldStorageDefinitionUpdateForbiddenExceptionX k CEntityTypeIdLengthExceptionX"j GAmbiguousEntityClassExceptionXi ABundleConfigImportValidateWh 9SelectionPluginManagerVg )EntityViewModeUf /EntityViewDisplayUe )EntityFormModeUd /EntityFormDisplayUc 3EntityRouteEnhancerTb 1EntityAutocompleteSa 5EntityViewControllerR` 5EntityListControllerR_ -EntityControllerR^ !EntityTypeQ] =EntityReferenceSelectionQ\ /ContentEntityTypeQ   VU oV/jK!~E^1uZ7"




i
=
				p	4	n3{Gb=lH&	iH'sU                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 W ;	Drupal\basic_auth\Tests V E	Drupal\migrate_drupal\PluginU #	Drupal\linkT A	Drupal\Core\TypedData\TypeS A	Drupal\Core\Routing\AccessR 9	Drupal\Core\OperationsQ ?	Drupal\Core\Entity\SchemaP A	Drupal\Core\Entity\DisplayO A	Drupal\Core\CacheDecorator"N I	Drupal\Component\Plugin\Mapper&M Q	Drupal\Component\Plugin\DefinitionL -	Drupal\node\FormK C	Drupal\node\EventSubscriberJ 1	Drupal\node\EntityI 9	Drupal\node\ControllerH C	Drupal\node\ContextProvider!G G	Drupal\node\ConfigTranslationF /	Drupal\node\CacheE 1	Drupal\node\AccessD #	Drupal\node.C a	Drupal\Tests\migrate_drupal\Unit\source\d6+B [	Drupal\Tests\migrate_drupal\Unit\source,A ]	Drupal\migrate_drupal\Tests\dependencies"@ I	Drupal\migrate_drupal\Tests\d7"? I	Drupal\migrate_drupal\Tests\d6> C	Drupal\migrate_drupal\Tests2= i	Drupal\migrate_drupal\Plugin\migrate\source\d7/< c	Drupal\migrate_drupal\Plugin\migrate\source4; m	Drupal\migrate_drupal\Plugin\migrate\destination1: g	Drupal\migrate_drupal\Plugin\migrate\cckfield39 k	Drupal\migrate_drupal\Plugin\migrate\builder\d608 e	Drupal\migrate_drupal\Plugin\migrate\builder$7 M	Drupal\migrate_drupal\Annotation%6 O	Drupal\Tests\migrate\Unit\process85 u	Drupal\Tests\migrate\Unit\Plugin\migrate\destination'4 S	Drupal\Tests\migrate\Unit\Exception$3 M	Drupal\Tests\migrate\Unit\Entity)2 W	Drupal\Tests\migrate\Unit\destination1 ?	Drupal\Tests\migrate\Unit&0 Q	Drupal\Tests\migrate\Kernel\Entity9/ w	Drupal\migrate_events_test\Plugin\migrate\destination. 5	Drupal\migrate\Tests(- U	Drupal\migrate\Plugin\migrate\source), W	Drupal\migrate\Plugin\migrate\process(+ U	Drupal\migrate\Plugin\migrate\id_map-* _	Drupal\migrate\Plugin\migrate\destination)) W	Drupal\migrate\Plugin\migrate\builder$( M	Drupal\migrate\Plugin\Derivative' 7	Drupal\migrate\Plugin& =	Drupal\migrate\Exception% 5	Drupal\migrate\Event$ 7	Drupal\migrate\Entity# ?	Drupal\migrate\Annotation" )	Drupal\migrate ! E	Drupal\menu_ui\Tests\Migrate  5	Drupal\menu_ui\Tests* Y	Drupal\menu_ui\Plugin\Menu\LocalAction 3	Drupal\menu_ui\Form ?	Drupal\menu_ui\Controller )	Drupal\menu_ui= 	Drupal\Tests\menu_link_content\Unit\Plugin\migrate\source* Y	Drupal\menu_link_content_dynamic_route- _	Drupal\menu_link_content\Tests\Migrate\d7- _	Drupal\menu_link_content\Tests\Migrate\d6* Y	Drupal\menu_link_content\Tests\Migrate" I	Drupal\menu_link_content\Tests2 i	Drupal\menu_link_content\Plugin\migrate\source6 q	Drupal\menu_link_content\Plugin\migrate\process\d6( U	Drupal\menu_link_content\Plugin\Menu+ [	Drupal\menu_link_content\Plugin\Deriver! G	Drupal\menu_link_content\Form# K	Drupal\menu_link_content\Entity' S	Drupal\menu_link_content\Controller =	Drupal\menu_link_content! G	Drupal\Tests\locale\Unit\Menu =	Drupal\Tests\locale\Unit! G	Drupal\early_translation_test
 C	Drupal\locale\Tests\Migrate	 3	Drupal\locale\Tests C	Drupal\locale\StreamWrapper$ M	Drupal\locale\Plugin\QueueWorker 1	Drupal\locale\Form! G	Drupal\locale\EventSubscriber =	Drupal\locale\Controller '	Drupal\locale7 s	Drupal\Tests\link\Unit\Plugin\Validation\Constraint   x	 lD }\9 U/y\7~Y;




k
R
4
				z	Y	B	 	}_>nX7jP6|V:$iK4kO,vR2{V"	                 i -ElementInterfacer1h cConfigTranslationEntityListBuilderInterfacep"g EConfigMapperManagerInterfacenf 7ConfigMapperInterfacene 3ConfigTestInterfacekd 5CommentItemInterfaceGc 5CommentTypeInterface@b ;CommentStorageInterface@ a ACommentStatisticsInterface@` ;CommentManagerInterface@!_ CCommentLinkBuilderInterface@^ -CommentInterface@] ;CKEditorPluginInterface9'\ OCKEditorPluginContextualInterface9)[ SCKEditorPluginConfigurableInterface9$Z ICKEditorPluginButtonsInterface9 Y ABreakpointManagerInterface6X 3BreakpointInterface6!W CBookOutlineStorageInterface(V 5BookManagerInterface(U ?BlockContentTypeInterfaceT 7BlockContentInterface$S ITestContextAwareBlockInterfaceR =BlockRepositoryInterface Q )BlockInterface P 7BanIpManagerInterface O 1ProcessorInterface N +ParserInterface M -FetcherInterface L 5ItemStorageInterface K 9ItemsImporterInterface J 'ItemInterface I 5FeedStorageInterface H 'FeedInterface G 3TranslatorInterface #F GUnroutedUrlAssemblerInterface E 9LinkGeneratorInterface D -UpdaterInterface "C EContextualValidatorInterface B %UriInterfaceA +StringInterface@ -IntegerInterface? )FloatInterface> /DurationInterface= /DateTimeInterface< -BooleanInterface; +BinaryInterface: ?TypedDataManagerInterface 9 1TypedDataInterface #8 GTraversableTypedDataInterface 7 7TranslatableInterface 6 1PrimitiveInterface 5 =OptionsProviderInterface 4 'ListInterface !3 CListDataDefinitionInterface 2 9DataReferenceInterface &1 MDataReferenceDefinitionInterface 0 ;DataDefinitionInterface / 5ComplexDataInterface $. IComplexDataDefinitionInterface - =ThemeNegotiatorInterface , 7ThemeManagerInterface "+ EThemeInitializationInterface * 3TranslatorInterface ) 5TranslationInterface #( GStreamWrapperManagerInterface ' 9StreamWrapperInterface & ?PhpStreamWrapperInterface % )StateInterface $ =MaintenanceModeInterface &# MWriteSafeSessionHandlerInterface " ;SessionManagerInterface #! GSessionConfigurationInterface '  OPermissionsHashGeneratorInterface  =AccountSwitcherInterface  7AccountProxyInterface  -AccountInterface  9RouteEnhancerInterface  +AccessInterface 7UrlGeneratorInterface   AStackedRouteMatchInterface  9RouteProviderInterface  3RouteMatchInterface  5RouteFilterInterface  7RouteBuilderInterface " ERedirectDestinationInterface ' OPreloadableRouteProviderInterface  9MatcherDumperInterface   AAccessAwareRouterInterface % KOutboundRouteProcessorInterface " EPlaceholderStrategyInterface " EMainContentRendererInterface  5FormElementInterface  -ElementInterface  /RendererInterface 
 5RenderCacheInterface 	 3RenderableInterface # GPlaceholderGeneratorInterface ! CElementInfoManagerInterface # GBareHtmlPageRendererInterface + WAttachmentsResponseProcessorInterface  5AttachmentsInterface  9ReliableQueueInterface ! CQueueWorkerManagerInterface  5QueueWorkerInterface   )QueueInterface  ?ContainerDeriverInterface  ~ AContextRepositoryInterface } =ContextProviderInterface | -ContextInterface { ;ContextHandlerInterface  z AContextDefinitionInterface (y QContextAwarePluginManagerInterface x 3PluginFormInterface !w CContextAwarePluginInterface %v KContainerFactoryPluginInterface %u KCachedDiscoveryClearerInterface $t IOutboundPathProcessorInterface #s GInboundPathProcessorInterface r 9PathValidatorInterface    ;    d|vpjd^XRLF@:4.("
~n]J3%








{
p
]
G
<
*
!

									r	_	L	;		_C'kN8pX;xN2s\@#mH"pL"uP  "# I	hook_entity_field_access_alter" =	hook_entity_field_access! C	hook_entity_operation_alter  7	hook_entity_operation( U	hook_entity_field_storage_info_alter" I	hook_entity_field_storage_info' S	hook_entity_bundle_field_info_alter! G	hook_entity_bundle_field_info% O	hook_entity_base_field_info_alter C	hook_entity_base_field_info" I	hook_entity_form_display_alter! G	hook_ENTITY_TYPE_prepare_form =	hook_entity_prepare_form# K	hook_entity_display_build_alter" I	hook_entity_view_display_alter$ M	hook_entity_build_defaults_alter) W	hook_ENTITY_TYPE_build_defaults_alter C	hook_entity_view_mode_alter =	hook_entity_prepare_view C	hook_ENTITY_TYPE_view_alter 9	hook_entity_view_alter 7	hook_ENTITY_TYPE_view -	hook_entity_view ;	hook_entity_query_alter$ M	hook_ENTITY_TYPE_revision_delete
 C	hook_entity_revision_delete	 ;	hook_ENTITY_TYPE_delete 1	hook_entity_delete A	hook_ENTITY_TYPE_predelete 7	hook_entity_predelete' S	hook_ENTITY_TYPE_translation_delete" I	hook_entity_translation_delete' S	hook_ENTITY_TYPE_translation_insert" I	hook_entity_translation_insert' S	hook_ENTITY_TYPE_translation_create"  I	hook_entity_translation_create ;	hook_ENTITY_TYPE_update~ 1	hook_entity_update} ;	hook_ENTITY_TYPE_insert| 1	hook_entity_insert{ =	hook_ENTITY_TYPE_presavez 3	hook_entity_presave!y G	hook_ENTITY_TYPE_storage_loadx =	hook_entity_storage_loadw 7	hook_ENTITY_TYPE_loadv -	hook_entity_loadu ;	hook_ENTITY_TYPE_createt 1	hook_entity_creates ?	hook_entity_bundle_deleter ?	hook_entity_bundle_create!q G	hook_entity_bundle_info_alterp ;	hook_entity_bundle_info$o M	hook_entity_view_mode_info_altern 9	hook_entity_type_alterm 9	hook_entity_type_build"l I	hook_ENTITY_TYPE_create_accessk ?	hook_entity_create_accessj ;	hook_ENTITY_TYPE_accessi 1	hook_entity_accessh #	hook_schemag 5	hook_query_TAG_alterf -	hook_query_alter!e G	entityDefinitionUpdateManagerd #	destinationc '	accessManagerb '	pathValidatora 	menuTree
` 	logger_ +	isConfigSyncing	^ 	theme] #	formBuilder\ +	transliteration[ 	csrfTokenZ +	languageManagerY #	translationX 	lW '	linkGeneratorV 	urlU %	urlGenerator	T 	tokenS -	typedDataManagerR '	moduleHandler	Q 	floodP 5	entityQueryAggregateO #	entityQueryN !	httpClient	M 	stateL 	keyValue	K 	queueJ '	configFactory
I 	configH 	lockG /	keyValueExpirable	F 	cacheE 	databaseD /	entityTypeManagerC '	entityManagerB #	currentUserA !	routeMatch@ %	requestStack? 	request> !	hasRequest= 	root< !	hasService; 	service: %	hasContainer9 %	getContainer8 )	unsetContainer7 %	setContainer$6 M	hook_validation_constraint_alter!5 G	hook_config_schema_info_alter"4 I	hook_config_import_steps_alter3 %	hook_rebuild2 -	hook_cache_flush%1 O	hook_display_variant_plugin_alter0 5	hook_countries_alter / E	hook_mail_backend_info_alter. 	hook_mail- +	hook_mail_alter, 7	hook_queue_info_alter+ ?	hook_data_type_info_alter* 	hook_cron) =	authorize_access_allowed( #	update_info' #	update_page& #	update_data% !	update_sql$ +	update_upgrade3# 	update_31" 	update_30! 	update_29  	update_28 	update_27 	update_26 	update_25 	update_24 	update_23 	update_22 	update_21   cV   bE   a-   `   _b   ^f   ]?   \8   [   Z
   Y`   X@   W   V   Ue   TM   SJ   R.   Q   Pw   O[   NH   M%   L   K   JZ   I?   H    G
   Fb   E8   D   C`   B.   A{   @Z   ?2   >   =a   <0   ;   :f   9;   8,   7   6`   5I      3b   2-   1t   .E   -'   ,r   /A   !   4S       *#   P {m_QC4%qbSD5&tU:%gD~n]J3%








{
p
]
G
<
*
!

									r	_	L	;		_C'kN8pX;xN2s\@#mH"pL"uP  "# I	hook_entity_field_access_alter" =	hook_entity_field_access! C	hook_entity_operation_alter  7	hook_entity_operation( U	hook_entity_field_storage_info_alter" I	hook_entity_field_storage_info' S	hook_entity_bundle_field_info_alter! G	hook_entity_bundle_field_info% O	hook_entity_base_field_info_alter C	hook_entity_base_field_info" I	hook_entity_form_display_alter! G	hook_ENTITY_TYPE_prepare_form =	hook_entity_prepare_form# K	hook_entity_display_build_alter" I	hook_entity_view_display_alter$ M	hook_entity_build_defaults_alter) W	hook_ENTITY_TYPE_build_defaults_alter C	hook_entity_view_mode_alter =	hook_entity_prepare_view C	hook_ENTITY_TYPE_view_alter 9	hook_entity_view_alter 7	hook_ENTITY_TYPE_view -	hook_entity_view ;	hook_entity_query_alter$ M	hook_ENTITY_TYPE_revision_delete
 C	hook_entity_revision_delete	 ;	hook_ENTITY_TYPE_delete 1	hook_entity_delete A	hook_ENTITY_TYPE_predelete 7	hook_entity_predelete' S	hook_ENTITY_TYPE_translation_delete" I	hook_entity_translation_delete' S	hook_ENTITY_TYPE_translation_insert" I	hook_entity_translation_insert' S	hook_ENTITY_TYPE_translation_create"  I	hook_entity_translation_create ;	hook_ENTITY_TYPE_update~ 1	hook_entity_update} ;	hook_ENTITY_TYPE_insert| 1	hook_entity_insert{ =	hook_ENTITY_TYPE_presavez 3	hook_entity_presave!y G	hook_ENTITY_TYPE_storage_loadx =	hook_entity_storage_loadw 7	hook_ENTITY_TYPE_loadv -	hook_entity_loadu ;	hook_ENTITY_TYPE_createt 1	hook_entity_creates ?	hook_entity_bundle_deleter ?	hook_entity_bundle_create!q G	hook_entity_bundle_info_alterp ;	hook_entity_bundle_info$o M	hook_entity_view_mode_info_altern 9	hook_entity_type_alterm 9	hook_entity_type_build"l I	hook_ENTITY_TYPE_create_accessk ?	hook_entity_create_accessj ;	hook_ENTITY_TYPE_accessi 1	hook_entity_accessh #	hook_schemag 5	hook_query_TAG_alterf -	hook_query_alter!e G	entityDefinitionUpdateManagerd #	destinationc '	accessManagerb '	pathValidatora 	menuTree
` 	logger_ +	isConfigSyncing	^ 	theme] #	formBuilder\ +	transliteration[ 	csrfTokenZ +	languageManagerY #	translationX 	lW '	linkGeneratorV 	urlU %	urlGenerator	T 	tokenS -	typedDataManagerR '	moduleHandler	Q 	floodP 5	entityQueryAggregateO #	entityQueryN !	httpClient	M 	stateL 	keyValue	K 	queueJ '	configFactory
I 	configH 	lockG /	keyValueExpirable	F 	cacheE 	databaseD /	entityTypeManagerC '	entityManagerB #	currentUserA !	routeMatch@ %	requestStack? 	request> !	hasRequest= 	root< !	hasService; 	service: %	hasContainer9 %	getContainer8 )	unsetContainer7 %	setContainer$6 M	hook_validation_constraint_alter!5 G	hook_config_schema_info_alter"4 I	hook_config_import_steps_alter3 %	hook_rebuild2 -	hook_cache_flush%1 O	hook_display_variant_plugin_alter0 5	hook_countries_alter / E	hook_mail_backend_info_alter. 	hook_mail- +	hook_mail_alter, 7	hook_queue_info_alter+ ?	hook_data_type_info_alter* 	hook_cron) =	authorize_access_allowed( #	update_info' #	update_page& #	update_data% !	update_sql$ +	update_upgrade3# 	update_31" 	update_30! 	update_29  	update_28 	update_27 	update_26 	update_25 	update_24 	update_23 	update_22 	update_21 	update_20 	update_19 	update_18 	update_17 	update_16 	update_15 	update_14 	update_13 	update_12 	update_11 	update_10 	update_9 	update_8 	update_7
 	update_6	 	update_5 	update_4 	update_3 	update_2 	update_1 %	node_failure #	node_render !	admin_page
 	status   d wIuN%
zU5lR0i5




n
G
				^	(	 ~^BeD$l@c6	mB$T(zbH rT5                                                     -, _	Drupal\dynamic_page_cache\EventSubscriber+ =	Drupal\dblog\Tests\Views* ;	Drupal\dblog\Tests\Rest!) G	Drupal\dblog\Tests\Migrate\d7!( G	Drupal\dblog\Tests\Migrate\d6' 1	Drupal\dblog\Tests$& M	Drupal\dblog\Plugin\views\wizard#% K	Drupal\dblog\Plugin\views\field%$ O	Drupal\dblog\Plugin\rest\resource# 3	Drupal\dblog\Logger" /	Drupal\dblog\Form! ;	Drupal\dblog\Controller  C	Drupal\datetime\Tests\Views 7	Drupal\datetime\Tests% O	Drupal\datetime\Plugin\views\sort' S	Drupal\datetime\Plugin\views\filter) W	Drupal\datetime\Plugin\views\argument) W	Drupal\datetime\Plugin\views\Argument, ]	Drupal\datetime\Plugin\Field\FieldWidget* Y	Drupal\datetime\Plugin\Field\FieldType/ c	Drupal\datetime\Plugin\Field\FieldFormatter +	Drupal\datetime ;	Drupal\contextual\Tests( U	Drupal\contextual\Plugin\views\field ?	Drupal\contextual\Element /	Drupal\contextual. a	Drupal\Tests\content_translation\Unit\Menu0 e	Drupal\Tests\content_translation\Unit\Access* Y	Drupal\content_translation_test\Entity* Y	Drupal\content_translation\Tests\Views$ M	Drupal\content_translation\Tests& Q	Drupal\content_translation\Routing1 g	Drupal\content_translation\Plugin\views\field0 e	Drupal\content_translation\Plugin\Derivative#
 K	Drupal\content_translation\Form)	 W	Drupal\content_translation\Controller% O	Drupal\content_translation\Access A	Drupal\content_translation6 q	Drupal\Tests\contact\Unit\Plugin\migrate\source\d63 k	Drupal\Tests\contact\Unit\Plugin\migrate\source ?	Drupal\Tests\contact\Unit A	Drupal\contact\Tests\Views# K	Drupal\contact\Tests\Migrate\d7# K	Drupal\contact\Tests\Migrate\d6   E	Drupal\contact\Tests\Migrate 5	Drupal\contact\Tests%~ O	Drupal\contact\Plugin\views\field(} U	Drupal\contact\Plugin\migrate\source| 7	Drupal\contact\Entity{ ?	Drupal\contact\Controllerz 7	Drupal\contact\Accessy )	Drupal\contact(x U	Drupal\Tests\config_translation\Unit#w K	Drupal\config_translation\Tests%v O	Drupal\config_translation\Routing3u k	Drupal\config_translation\Plugin\Menu\LocalTask8t u	Drupal\config_translation\Plugin\Menu\ContextualLink/s c	Drupal\config_translation\Plugin\Derivative)r W	Drupal\config_translation\FormElement"q I	Drupal\config_translation\Form(p U	Drupal\config_translation\Controller$o M	Drupal\config_translation\Accessn ?	Drupal\config_translation!m G	Drupal\Tests\config\Unit\Menul ?	Drupal\config_test\Entityk 1	Drupal\config_test%j O	Drupal\config_override_test\Cachei C	Drupal\config_override_test1h g	Drupal\config_override_integration_test\Cache+g [	Drupal\config_override_integration_testf ?	Drupal\config_import_teste ?	Drupal\config_events_test*d Y	Drupal\config_entity_static_cache_test)c W	Drupal\config_collection_install_testb C	Drupal\config\Tests\Storagea 3	Drupal\config\Tests` 1	Drupal\config\Form_ =	Drupal\config\Controller^ '	Drupal\config(] U	Drupal\Tests\comment\Unit\Migrate\d7(\ U	Drupal\Tests\comment\Unit\Migrate\d6$[ M	Drupal\Tests\comment\Unit\EntityZ ?	Drupal\Tests\comment\Unit"Y I	Drupal\comment_test\ControllerX A	Drupal\comment\Tests\Views#W K	Drupal\comment\Tests\Migrate\d7#V K	Drupal\comment\Tests\Migrate\d6 U E	Drupal\comment\Tests\MigrateT 5	Drupal\comment\Tests&S Q	Drupal\comment\Plugin\views\wizard$R M	Drupal\comment\Plugin\views\sort#Q K	Drupal\comment\Plugin\views\row&P Q	Drupal\comment\Plugin\views\filter%O O	Drupal\comment\Plugin\views\field(N U	Drupal\comment\Plugin\views\argument/M c	Drupal\comment\Plugin\Validation\Constraint+L [	Drupal\comment\Plugin\migrate\source\d7+K [	Drupal\comment\Plugin\migrate\source\d6-J _	Drupal\comment\Plugin\migrate\destination(I U	Drupal\comment\Plugin\Menu\LocalTask   } yfQ:,rdQ:&udQ@(jD8+kT2





q
T
A
3
!
						q	Z	D	1	&		yfRA0o^H:(~fS9"
ueWF8,s_L9^E k^F.}                   r isGlobal*q #addProvider*p 7resolveThemeAssetPath(o -setOverrideValue(n !isValidUri(m %fileValidUri(l 'drupalGetPath(k 9applyLibrariesOverride(j -parseLibraryInfo(i -buildByExtension(
h reset(g 5applyLibrariesExtend(f 7getLibraryDefinitions(e -resolveCacheMiss(d getCid(c 9clearCachedDefinitions(b -getLibraryByName(a ;getLibrariesByExtension(#` IgetMinimalRepresentativeSubset(_ /doGetDependencies(!^ EgetLibrariesWithDependencies(] )rewriteFileURI(\ !processCss([ )loadNestedFile(Z loadFile(Y #processFile(X %generateHash(W ?setAlreadyLoadedLibraries(V ?getAlreadyLoadedLibraries(U #getSettings(T #setSettings(S %getLibraries(R %setLibraries(Q 7createFromRenderArray(	P sort(O #getJsAssets(N 3getJsSettingsAssets(M %getCssAssets(L 1getLibrariesToLoad(K #__construct(
J clean(	I dump(H render(G deleteAll(F getAll(E optimize(
D group(C !getArchive&B /_translateWinPath&A )_pathReduction&@ _dirCheck&? _append&> #_openAppend&= %_extractList&< -_extractInString&; +_readLongHeader&: 1_maliciousFilename&9 #_readHeader&8 -_writeLongHeader&7 /_writeHeaderBlock&6 %_writeHeader&5 !_addString&4 _addFile&3 _addList&2 %_writeFooter&1 !_jumpBlock&0 !_readBlock&/ #_writeBlock&. !_cleanFile&- _close&, )_openReadWrite&+ _openRead&* !_openWrite&) !_isArchive&( _warning&' _error&& 'setIgnoreList&% +setIgnoreRegexp&$ %setAttribute&# #extractList&" +extractInString&! 'extractModify&  addString& addModify& %createModify& #listContent& create& 'loadExtension& !__destruct& #getInstance& )createInstance& #__construct& %listContents& extract& remove& add& get% #__construct% )setDialogTitle$ +setDialogOption$ -setDialogOptions$ -getDialogOptions$ #setProperty$ 1getRenderedContent$
 /getAttachedAssets$	 =buildAttachmentsCommands$ 1processAttachments$ !addCommand$ render$ #__construct$ 7calculateDependencies# ?validateConfigurationForm# -setConfiguration# -getConfiguration#  5defaultConfiguration# 5getDefinitionsByType#~ #__construct#} access#| +executeMultiple#{ ArenderPlaceholderCsrfToken"z +processOutbound"y %computeToken"x validate"w get"v ?loadDynamicRequirementMap"u loadCheck"t setChecks"s 5getChecksNeedRequest"r +addCheckService"q 3inheritCacheability"
p andIf"	o orIf"#n IcacheUntilConfigurationChanges"m ;cacheUntilEntityChanges"l %cachePerUser"k 3cachePerPermissions"j )setCacheMaxAge"i )resetCacheTags"h 1resetCacheContexts"g )getCacheMaxAge"f %getCacheTags"e -getCacheContexts"d isNeutral"c #isForbidden"b isAllowed"a ;allowedIfHasPermissions"` 9allowedIfHasPermission"_ #forbiddenIf"^ allowedIf"] forbidden"\ allowed"[ neutral"Z %performCheck"
Y check"X %checkRequest"W +checkNamedRoute"V #__construct"U access"T applies"S 5getArgumentsResolver"R ;setUnroutedUrlAssembler!Q +setUrlGenerator!P 5unroutedUrlAssembler!O %urlGenerator!N 'accessManager!M %renderAccess!L access!K +getInternalPath!J 'toRenderArray!I #setAbsolute!H getUri!G setOption!F !setOptions!E getOption!D !getOptions!C /setRouteParameter!B 1setRouteParameters!    eP=(	rQ5uVC#xbRE4oVC1&







u
c
I
4

									q	Y	E	/		~bTI:"waK,rYJ4%s[K;(u_F7(iXB+t]G*                   ' #__construct4& 5setExecutableManager4% summary4$ evaluate4# isNegated4" /resolveConditions4! +deleteRecursive3  )findPackageKey3 7vendorTestCodeCleanup3 )ensureHtaccess3 +preAutoloadDump3 #__construct2 runScript2 )getTableScript2 #getTemplate2 'getFieldOrder2 %fieldSizeMap2 %fieldTypeMap2 %getTableData2 /getTableCollation2 +getTableIndexes2 )getTableSchema2 getTables2 )generateScript2 execute2 'getDefinition2 1getDefaultCommands2 )getCommandName2 7getDatabaseConnection2
 configure2	 !writeCache #setCacheKey getKeys1 process1 /assertValidTokens1 )validateTokens1 #parseTokens1 !getService1 )optimizeTokens1  3convertTokensToKeys1 getLabels1~ getAll1} 5getCacheableMetadata1| !getContext1{ getLabel1z #__construct1y cacheSet0x cacheGet0w -mergeCacheMaxAge0v %addCacheTags0u -addCacheContexts0t storage0s writeItem0r -invalidatebyHash0q getByHash0p %resetCounter0o !getCounter0n +increaseCounter0m __sleep0l )getRequestTime0k process0j /ensureTableExists0i /calculateChecksum0h -schemaDefinition0g %normalizeCid0f )catchException0e +ensureBinExists0d 'doSetMultiple0c )markAsOutdated0b 7getLastWriteTimestamp0a ;getInvalidatorCacheBins0` )addInvalidator0_ )resetChecksums0^ isValid0] 1getCurrentChecksum0\ +invalidateCache0[ 'lazyLoadCache0Z destruct0
Y clear0
X reset0W /normalizeLockName0V #updateCache0U -resolveCacheMiss0T persist0S has0R getCid0Q 5getCacheableMetadata0P 9addCacheableDependency0O -createFromObject0N 7createFromRenderArray0M applyTo0
L merge0K )setCacheMaxAge0J -setCacheContexts0I %setCacheTags0H )getCacheMaxAge0G %getCacheTags0F -getCacheContexts0E %keyFromQuery0D getBins0C buildTags0B %validateTags0A %mergeMaxAges0@ mergeTags0? 'mergeContexts0> )invalidateTags0= )prependBackend0< 'appendBackend0; 'invalidateAll0: 1invalidateMultiple09 !invalidate08 removeBin07 /garbageCollection06 deleteAll05 )deleteMultiple04 delete03 #setMultiple02 set01 #prepareItem00 getAll0/ #getMultiple0. get0- !getApcuKey0, #__construct0+ /getSortedBuilders/* !addBuilder/) #__construct/
( build/' applies/& %toRenderable/% addLink/$ setLinks/# getLinks/" 5defaultConfiguration.! setTitle.  'brokenMessage. blockForm.
 build. setTitle, )setMainContent,
 build, 3getFallbackPluginId, 7getGroupedDefinitions, 5getSortedDefinitions, /processDefinition, 1setTransliteration, +transliteration, =getMachineNameSuggestion, #blockSubmit, ;submitConfigurationForm, 'blockValidate, ?validateConfigurationForm, blockForm, 9buildConfigurationForm, #blockAccess, access, 7calculateDependencies,
 7setConfigurationValue,	 5defaultConfiguration, ?baseConfigurationDefaults, -setConfiguration, -getConfiguration, #__construct,
 label, format+ create+ cleanup+  update+ delete+	~ load+} #__construct+| 'defaultFilter*{ #applyFilter*z 'getChallenger*y 1challengeException*x 9appliesToRoutedRequest*w %authenticate*v applies*u #__construct*t 1getSortedProviders*s #getProvider*   P }eM1~j]OA3%zfK7(whYE1$q`M@,




~
j
T
9
&
							o	^	D	pS2oa@iW>)	v^F-
y]C"g[E4qR,	{hP            E -getFileExtension6D #getFilePath6C 'getAllFolders6B -schemaDefinition6A /ensureTableExists6@ doWrite6? !getOldName6> #setOverride6= %getOverrides6< #getLanguage6; getNames6#: IfindMissingContentDependencies69 ;callOnDependencyRemoval68 ;getConfigCollectionInfo617 egetConfigEntitiesToChangeOnDependencyRemoval6)6 UfindConfigEntityDependentsAsEntities65 AfindConfigEntityDependents64 AgetConfigDependencyManager63 uninstall62 )createSnapshot6	1 diff60 -getConfigFactory6/ -getEntityManager6. 9loadConfigEntityByName6- 7getEntityTypeIdByName6 , CdrupalInstallationAttempted6+ -drupalGetProfile6* 'drupalGetPath6) ?getDefaultConfigDirectory6( 1getProfileStorages6' 5getEnabledExtensions6& 5validateDependencies6+% YfindDefaultConfigWithUnmetDependencies6 $ CcheckConfigurationToInstall6!# EfindPreExistingConfiguration6" isSyncing6! !setSyncing6  /getActiveStorages6 -getSourceStorage6 -setSourceStorage6# IinstallCollectionDefaultConfig6 3createConfiguration6 /getConfigToCreate6 7installOptionalConfig6 5installDefaultConfig6 =onConfigImporterValidate6 'getChangelist6 /getConfigImporter6 !reInjectMe6 -alreadyImporting6 1importInvokeRename6 /importInvokeOwner6 %importConfig6 checkOp6 -processExtension6 5processConfiguration6 validate6" GgetNextConfigurationOperation6 ?getNextExtensionOperation6
 finish6	 7processMissingContent6 7processConfigurations6 /processExtensions6 !initialize6 !doSyncStep6 import6 =getUnprocessedExtensions6 9getExtensionChangelist6 ?createExtensionChangelist6  7setProcessedExtension6 9getProcessedExtensions6 ~ CgetUnprocessedConfiguration6} ?setProcessedConfiguration6| ?getProcessedConfiguration6'{ QhasUnprocessedConfigurationChanges6$z KgetEmptyExtensionsProcessedList6y 1getStorageComparer6x getErrors6w logError6v 5getCacheableMetadata6u )getCacheSuffix6t /filterNestedArray6s )filterOverride6r )onConfigRename6q )addCollections6p 1createConfigObject6o #addOverride6n 3getSubscribedEvents6m )onConfigDelete6l %onConfigSave6k -clearStaticCache6j 1getConfigCacheKeys6i /getConfigCacheKey6
h reset6(g SpropagateConfigOverrideCacheability6f 'loadOverrides6e )doLoadMultiple6d %loadMultiple6
c doGet6b #getEditable6a isChanged6` getConfig6_ 1getOverrideService6^ 1getCollectionNames6] 'addCollection6\ +castSafeStrings6[ )getCacheMaxAge6Z %getCacheTags6Y -getCacheContexts6
X merge6W %validateKeys6V %validateName6U setName6T getName6S #getOriginal6R !getRawData6	Q save6
P clear6O set6N 3resetOverriddenData6M /setOverriddenData6L /setModuleOverride6K 3setSettingsOverride6J setData6I %initWithData6H 3getCollectionPrefix6G %getCacheKeys6F #getCacheKey6E /getCollectionName6D 7getAllCollectionNames6C -createCollection6B )resetListCache6A deleteAll6@ %findByPrefix6? listAll6> decode6= encode6< rename6; delete6
: write69 %readMultiple6	8 read67 exists66 #__construct65 )getFileStorage64 1getDatabaseStorage63 get62 5getConditionContexts41 !addContext40 7calculateDependencies4/ 5defaultConfiguration4. -setConfiguration4- -getConfiguration4, ;submitConfigurationForm4+ ?validateConfigurationForm4* 9buildConfigurationForm4) execute4( )createInstance4    w^D,u_Q:*}qeWF4'vbSE6)ugUC4%







r
U
H
6
$
						q	c	U	B	5	#	mbK6wc?%u`D)rW@(mN,obK4iTE0                     A 1getRouteParameters!@ %getRouteName!? isRouted!> !isExternal!= #toUriString!< #setUnrouted!; %fromRouteUri!: +fromInternalUri!9 'fromEntityUri!8 fromUri!7 'fromUserInput!6 )fromRouteMatch!5 fromRoute!4 create!3 set!2 %toRenderable!1 toString!0 setUrl!/ getUrl!. setText!- getText!, )fromTextAndUrl!+ +createFromRoute!* +setGeneratedUrl!) +getGeneratedUrl!
( count!' 'jsonSerialize!& !__toString!% -setGeneratedLink!$ -getGeneratedLink!# +addServiceFiles!" /setupTrustedHosts!! -validateHostname!  9validateHostnameLength! AclassLoaderAddMultiplePsr4! ;getModuleNamespacesPsr4! 1getModuleFileNames! 3getModulesParameter! -getConfigStorage! 'getHttpKernel! 5cacheDrupalContainer! 3getContainerBuilder! AinitializeServiceProviders! -compileContainer! +attachSynthetic! 3invalidateContainer! -rebuildContainer! +persistServices! 5getServicesToPersist! =initializeRequestGlobals! 1initializeSettings! +bootEnvironment! 3initializeContainer! 3getKernelParameters! 5getContainerCacheKey!
 'updateModules!	 !moduleData! 5prepareLegacyRequest! +handleException! handle! terminate! 3getServiceProviders! =discoverServiceProviders! preHandle! 1loadLegacyIncludes!!  EgetCachedContainerDefinition! %setContainer!~ %getContainer!} shutdown!	| boot!{ !getAppRoot!z #getSitePath!y #setSitePath!x %findSitePath!w /createFromRequest!v destruct!u 1invokeCronHandlers!t 'processQueues!s +setCronLastTime!r run!q %registerTest!p %registerUuid!o register!n get!m #__construct!l isValid k generate j )getHtmlTagListi +getAdminTagListh %needsRemovalg !attributes
f splite #filterAdmind filterc exportb ;getBestMatchingLangcodea isValid` ;stripDangerousProtocols_ 3setAllowedProtocols^ 3getAllowedProtocols] /filterBadProtocol\ +externalIsLocal[ !isExternalZ !encodePath
Y parseX 7filterQueryParametersW !buildQueryV strposU %validateUtf8T caseFlipS -mimeHeaderDecodeR -mimeHeaderEncodeQ !strcasecmpP truncateO substrN ucwordsM lcfirstL ucfirstK !strtolowerJ !strtoupperI strlenH 'truncateBytesG 'convertToUtf8F +encodingFromBOM
E checkD setStatusC getStatusB render	A _die@ !__toString	? stop	> read
= start< implode; encode: explode9 %sortByKeyInt8 +sortByKeyString7 3sortByTitleProperty6 1sortByTitleElement5 5sortByWeightProperty4 3sortByWeightElement3 format2 !checkPlain1 isSafe
0 image/ !paragraphs. sentences- object	, word	+ name* string) !invalidate( /alphadecimalToInt' /intToAlphadecimal& validStep% )mergeDeepArray$ mergeDeep# keyExists" !unsetValue! setValue  +scaleDimensions escape )decodeEntities 1escapeCdataElement serialize	 load normalize %resetSeenIds
 getId #getUniqueId setIsAjax 1cleanCssIdentifier getClass -checkMemoryLimit 1diffAssocRecursive /randomBytesBase64 !hashEquals !hashBase64 !hmacBase64 #randomBytes rgbToHex hexToRgb
 #validateHex
	 toInt   0 kN"qYE4"`;r[B(mM4




n
T
H
-
						x	\	<		 iK7oN7 lWG7+}iP@,fN8$|c;p\H*Z0    'k OTestPerComponentEntityFormDisplay'j OPerComponentEntityFormDisplayTest#i GTestPerComponentEntityDisplay#h GPerComponentEntityDisplayTestg )EntityRevisionf 1EntityRevisionTeste !ConfigTestd %TestSqlIdMapc 7TestMigrateExecutableb #TestSqlBasea #SqlBaseTest` RowTest_ 'TestMigration^ 'MigrationTest] 5TestMigrationStorage\ 5MigrationStorageTest[ +MigrateTestCaseZ =MigrateSqlSourceTestCaseY 3MigrateSqlIdMapTest%X KMigrateSqlIdMapEnsureTablesTestW -StubSourcePluginV /MigrateSourceTestU 7MigrateExecutableTest)T SMigrateExecutableMemoryExceededTestS 'MigrationTestR -DummyDestinationQ %TemplateTestP #SqlBaseTestO 'MigrationTestN +MigrateTestBaseM /MigrateStatusTestL 1MigrateSkipRowTestK 3MigrateRollbackTestJ 1MigrateMessageTestI ;MigrateInterruptionTestH /MigrateEventsTestG ;MigrateEmbeddedDataTestF #TestSqlBaseE SqlBaseD -SourcePluginBaseC #EmptySourceB 1EmbeddedDataSourceA TestGet@ StaticMap? +SkipRowIfNotSet> #SkipOnEmpty= Route< Migration; #MachineName: Iterator	9 Get8 Flatten7 Extract6 %DefaultValue5 %DedupeEntity4 !DedupeBase3 Concat2 Callback	1 Sql#0 GPerComponentEntityFormDisplay/ ?PerComponentEntityDisplay. +NullDestination- )EntityViewMode, )EntityRevision+ =EntityFieldStorageConfig* 3EntityFieldInstance) /EntityContentBase( -EntityConfigBase' ;EntityBaseFieldOverride& Entity% +DestinationBase$ Config # AComponentEntityDisplayBase" #BuilderBase! 7MigrateEntityRevision  'MigrateEntity 5MigratePluginManager% KMigrateDestinationPluginManager 7RequirementsException 7MigrateRowDeleteEvent 5MigrateRollbackEvent 9MigratePreRowSaveEvent ;MigratePostRowSaveEvent 3MigrateMapSaveEvent 7MigrateMapDeleteEvent 1MigrateImportEvent =MigrateIdMapMessageEvent 'MigrateEvents Migration 'MigrateSource 5MigrateProcessPlugin 1MigrateDestination	 Row /ProcessPluginBase -MigrationStorage -MigrationBuilder 9MigrateTemplateStorage
 ;MigrateSkipRowException!	 CMigrateSkipProcessException )MigrateMessage /MigrateExecutable -MigrateException ;MigrateMenuSettingsTest +MenuWebTestBase /MenuUninstallTest MenuTest %MenuNodeTest  3MenuLinkReorderTest -MenuLanguageTest~ /MenuCacheTagsTest} #MenuLinkAdd| /MenuLinkResetForm{ -MenuLinkEditFormz )MenuDeleteFormy )MenuControllerx +MenuListBuilderw MenuFormv 1MenuLinkSourceTestu Routest 3MigrateMenuLinkTests 3MigrateMenuLinkTest$r IMigrateMenuLinkContentStubTest"q EPathAliasMenuLinkContentTest&p MMenuLinkContentTranslationUITesto ;MenuLinkContentFormTest n AMenuLinkContentDeriverTest#m GMenuLinkContentDeleteFormTest-l [MenuLinkContentCacheabilityBubblingTestk LinksTestj MenuLinki #InternalUrih +MenuLinkContentg 9MenuLinkContentDeriverf 3MenuLinkContentForme ?MenuLinkContentDeleteFormd +MenuLinkContentc )MenuController"b EMenuLinkContentStorageSchema)a SMenuLinkContentAccessControlHandler` 5LocaleLocalTasksTest_ )StringBaseTest^ 7LocaleTranslationTest] -LocaleLookupTest
\ Auth[ =MigrateLocaleConfigsTestZ -LocaleUpdateTest   | q]C.{cI4zhP4v_H0teS@+	








}
g
P
D
5

								t	U	>	#	vXG/	z^H4oYG,fO;wgYH4" |cXD(taH+|                      t 'createElement;s #getIterator;r onChange;q toArray;p isEmpty;o #getElements;n get;m 5getElementDefinition;
l parse;k !getAllKeys;j 7resolveMissingContent:i /getMissingContent:h #__construct:g 3getSubscribedEvents:f -onMissingContent:e 3getSubscribedEvents9d )onConfigDelete9c %onConfigSave9b getValues9a getKeys9` 5deleteConfigKeyStore9_ 5updateConfigKeyStore9^ %getAggregate9] get9\ /getConfigKeyStore9[ #loadRecords9Z execute9Y condition9X #__construct9
W match9V !matchArray9U notExists9T exists9S compile9R #formBuilder7Q !submitForm7P %validateForm7O buildForm7N render7M buildRow7L #buildHeader7K 'getLookupKeys7J 7getPropertiesToExport7I /checkStorageClass7H 9getConfigDependencyKey7G %getDataTable7F -getRevisionTable7E 5getRevisionDataTable7D %getBaseTable7C +getConfigPrefix7B =loadMultipleOverrideFree7A -loadOverrideFree7@ ;updateFromStorageRecord7? ;createFromStorageRecord7> %importRename7= %importDelete7< %importUpdate7; %importCreate7: 3getQueryServiceName79 !invokeHook78 )setStaticCache77 1getFromStaticCache76 has75 1mapToStorageRecord74 doSave73 doDelete72 doCreate71 )doLoadMultiple70 3getIDFromConfigName7/ getPrefix7. )deleteRevision7- %loadRevision7, )createInstance7+ 5getDefaultOperations7	* load7) 'hasDependency7( %loadDisplays7' !postDelete7& postSave7% )deleteDisplays7	$ save7# )hasTrustedData7" trustData7! 'isInstallable7  -getConfigManager7 preDelete7 9getThirdPartyProviders7 9unsetThirdPartySetting7 7getThirdPartySettings7 5getThirdPartySetting7 5setThirdPartySetting7 9invalidateTagsOnDelete7 5invalidateTagsOnSave7 3onDependencyRemoval7 +getConfigTarget7 ;getConfigDependencyName7 +getDependencies7 'addDependency7 =getCacheTagsToInvalidate7
 toUrl7	 link7 url7 urlInfo7 7calculateDependencies7 preSave7 )getTypedConfig7
 toArray7		 sort7 +createDuplicate7 )isUninstalling7 +setUninstalling7 isSyncing7 !setSyncing7 status7 setStatus7 disable7  enable7 set7~ get7
} isNew7| 'setOriginalId7{ 'getOriginalId7z #__construct7y !updateData7x setData7w getGraph7(v ScreateGraphConfigEntityDependencies7u sortGraph7t sortAll7s 5getDependentEntities7r =addDependencyListsToForm7q t7p 5getTranslatedMessage6o -alterDefinitions6n +hasConfigSchema6m +replaceVariable6l #replaceName6k +getFallbackName6j 9clearCachedDefinitions6i 'getDefinition6h 3buildDataDefinition6g %getDiscovery6f 1extractRenameNames6e -createRenameName6d 5getAndSortConfigData6c -validateSiteUuid6b !hasChanges6a 1moveRenameToUpdate6` 5removeFromChangelist6_ 3addChangelistRename6^ 3addChangelistUpdate6] 3addChangelistCreate6\ 3addChangelistDelete6[ -createChangelist6Z 'addChangeList6Y 1getEmptyChangelist6X -getTargetStorage6W castValue6V 'validateValue6U -getSchemaWrapper6T !getStorage6
S isNew6R 5flattenConfigObjects6Q create6P %getExtension6O -getConfigObjects6N 'getCoreFolder6M 1getComponentFolder6L %getCoreNames6K /getComponentNames6J getSync6I getActive6H 9getCollectionDirectory6 G CgetAllCollectionNamesHelper6F 'ensureStorage6    t[I6"zeR?(oZJ7+s_N=/!i[M@2$







j
R
B
+
							w	[	;	'	{aF+v_K'	~iS4!p]H2	q[K6!uhO;(
q[?1                      - )createTableSql?, ;buildTableNameCondition?+ 'getPrefixInfo?* !__toString?) execute?( ApopCommittableTransactions?' %nextIdDelete?& nextId?% 5mapConditionOperator?$ )createDatabase?# %databaseType?" driver?! )queryTemporary?  !queryRange? !__destruct? serialize?	 open?
 query? #__construct?	 name> !__destruct> #fetchColumn> %getStatement> /throwPDOException>
 valid>	 next> rewind> key> current> #fetchObject>
 fetch> fetchAll> %setFetchMode> rowCount> !fetchAssoc>
 !fetchField>	 'fetchAllKeyed> 'fetchAllAssoc> fetchCol> )getQueryString> execute> 1escapeDefaultValue> )prepareComment> !fieldNames> #createTable>  #changeField> dropIndex>~ addIndex>} 'dropUniqueKey>| %addUniqueKey>{ )dropPrimaryKey>z 'addPrimaryKey>y #indexExists>x /fieldSetNoDefault>w +fieldSetDefault>v dropField>u addField>t dropTable>s #renameTable>r +getFieldTypeMap>q #fieldExists>p !findTables>o #tableExists>n ;buildTableNameCondition>m )prefixNonTable>l 'getPrefixInfo>k +nextPlaceholder>j -uniqueIdentifier>i __clone>h !findCaller>g log>f end>
e clear>d get>
c start>b 9getConnectionInfoAsUrl>!a EconvertDbUrlToConnectionInfo>` %ignoreTarget>_ +closeConnection>^ )openConnection>] -removeConnection>\ -renameConnection>[ ?setMultipleConnectionInfo>Z 5getAllConnectionInfo>Y /getConnectionInfo>X /addConnectionInfo>W 3parseConnectionInfo>V 3setActiveConnection>U 1isActiveConnection>T 'getConnection>S getLog>R startLog>Q __sleep>
P quote>O prepare>N nextId>M commit>L 5mapConditionOperator>K )createDatabase>J %databaseType>I =supportsTransactionalDDL>H 5supportsTransactions>G 'clientVersion>F version>E driver>D )queryTemporary>C AgenerateTemporaryTableName>B !queryRange>A ApopCommittableTransactions>@ )popTransaction>? +pushTransaction>> rollback>= -startTransaction>< -transactionDepth>; 'inTransaction>: !escapeLike>9 #escapeAlias>8 #escapeField>7 #escapeTable>6 )escapeDatabase>5 schema>4 truncate>3 delete>2 update>1 upsert>
0 merge>/ insert>. select>- )getDriverClass>, +expandArguments>+ 5handleQueryException>
* query>) 'filterComment>( #makeComment>' -makeSequenceName>& getLogger>% setLogger>$ getKey># setKey>" getTarget>! setTarget>  %prepareQuery> ?getFullQualifiedTableName> 9getUnprefixedTablesMap> #tablePrefix> %prefixTables> setPrefix> 5getConnectionOptions> )defaultOptions> destroy>	 open> #__construct> getTitle= 'getFormObject= +getFormArgument= -getContentResult= )doGetArguments= -createController= 'getController=  CgetControllerFromDefinition= #__construct= container= +languageManager=
 #currentUser=	 #formBuilder= 'moduleHandler=
 state= keyValue= config=
 cache= /entityFormBuilder= /entityTypeManager= 'entityManager=  create= 3getSubscribedEvents<~ %onConfigSave<} #__construct<| !checkValue;{ /checkConfigSchema;z 3setTypedDataManager;y 3getTypedDataManager;x )getDefinitions;w #__construct;v !isNullable;u 3buildDataDefinition;    zfSB2!
ziV@.wdXK7%tS?' iS=)







s
Z
G
/

							}	k	Y	F	7	"		j=#w\@q]G+	u]I5n^K:&s]G8$tTF8&                  b existsFa isNotNullF` isNullF
_ whereF^ conditionF
] countF\ #__constructF[ #getMetaDataFZ #addMetaDataFY hasAnyTagFX !hasAllTagsFW hasTagFV addTagFU =validateDatabaseSettingsET )getFormOptionsES 1checkEngineVersionER %runTestQueryEQ connectEP runTasksEO )minimumVersionE	N nameEM #installableE	L passE	K failEJ %hasPdoDriverEI connectDH )getFormOptionsDG )minimumVersionD	F nameDE %getStatementCD forUpdateCC !findTablesCB /fieldSetNoDefaultCA +fieldSetDefaultC@ )dropPrimaryKeyC? 'addPrimaryKeyC> 'dropUniqueKeyC= %addUniqueKeyC< dropIndexC; #indexExistsC: addIndexC9 -mapKeyDefinitionC8 #changeFieldC7 dropFieldC6 -introspectSchemaC5 !alterTableC4 addFieldC3 dropTableC2 #renameTableC1 +getFieldTypeMapC0 )createFieldSqlC/ %processFieldC. %createKeySqlC- -createColumnsSqlC, )createIndexSqlC+ )createTableSqlC* #fieldExistsC) #tableExistsC( !__toStringC' executeC& ?getFullQualifiedTableNameC% nextIdC$ %prepareQueryC# 5mapConditionOperatorC" )createDatabaseC! %databaseTypeC  driverC )queryTemporaryC !queryRangeC 5handleQueryExceptionC prepareC 7sqlFunctionLikeBinaryC /sqlFunctionRegexpC +sqlFunctionRandC ?sqlFunctionSubstringIndexC 5sqlFunctionSubstringC 3sqlFunctionConcatWsC /sqlFunctionConcatC 3sqlFunctionGreatestC 'sqlFunctionIfC 5getAttachedDatabasesC !__destructC	 openC #__constructC )getFormOptionsB 1initializeDatabaseB* WcheckStandardConformingStringsSuccessB# IcheckStandardConformingStringsB
 =checkBinaryOutputSuccessB	 /checkBinaryOutputB 'checkEncodingB connectB )minimumVersionB	 nameB #__constructB 'addExpressionA orderByA #orderRandomA  !hashBase64A !getCommentA~ #_createKeysA} +_createIndexSqlA| #changeFieldA{ dropIndexAz addIndexAy 'dropUniqueKeyAx %addUniqueKeyAw )dropPrimaryKeyAv 'addPrimaryKeyAu -constraintExistsAt #indexExistsAs /fieldSetNoDefaultAr +fieldSetDefaultAq dropFieldAp addFieldAo dropTableAn #renameTableAm #tableExistsAl 3createPrimaryKeySqlAk '_createKeySqlAj +getFieldTypeMapAi %processFieldAh )createFieldSqlAg )createTableSqlAf 7queryFieldInformationAe 7resetTableInformationAd 7queryTableInformationAc ;ensureIdentifiersLengthAb !__toStringAa executeA` upsertA_ /rollbackSavepointA^ -releaseSavepointA] %addSavepointA\ ?getFullQualifiedTableNameA[ nextIdAZ 5mapConditionOperatorAY )createDatabaseAX %databaseTypeAW driverAV #escapeTableAU #escapeAliasAT #escapeFieldAS )queryTemporaryAR !queryRangeAQ %prepareQueryA
P queryA	O openAN #__constructAM 1checkEngineVersion@L 7ensureInnoDbAvailable@K )getFormOptions@J connect@I )minimumVersion@	H name@G #__construct@F #fieldExists?E #tableExists?D !getComment?C )prepareComment?B #changeField?A dropIndex?@ addIndex?? 'dropUniqueKey?> %addUniqueKey?= )dropPrimaryKey?< 'addPrimaryKey?; #indexExists?: /fieldSetNoDefault?9 +fieldSetDefault?8 dropField?7 addField?6 dropTable?5 #renameTable?4 %createKeySql?3 %shortenIndex?2 5getNormalizedIndexes?1 'createKeysSql?0 +getFieldTypeMap?/ %processField?. )createFieldSql?    ~Y<%xh]J=*|n`F2!lO7iVK@(







m
^
K
4

									w	b	W	L	8	$	r`P@+
s\F2peYJ=-vfXL:-
}m^K:'q^S@5(iS>,         S !getContextR #setLangcodeQ #getLangcodeP )evaluatePluralO +tokenizeFormulaN +parseArithmeticM #parseHeaderL -parsePluralFormsK !__toStringJ 'setFromStringI )getProjectNameH )setProjectNameG +getLanguageNameF +setLanguageNameE )getPluralFormsD #__constructC setPrefixB getPrefixA -setConfiguration@ -getConfiguration
? reset> set= #getMultiple< get; #__construct: delete
9 store
8 fetch7 -removeSubscriber6 'addSubscriber5 )removeListener4 #addListener3 %hasListeners2 %getListeners1 dispatch0 #__construct/ findFiles. #__construct- findAll, getLines+ addWords* !_flushLine) #_flushGroup( #__construct' nclosing
& norig% reverse$ /_shift_boundaries# #_compareseq" _lcs_pos
! _diag  !_line_hash	 diff _split _changed _deleted _added _context _lines !_end_block %_start_block '_block_header _end_diff #_start_diff _block format getEdits
 check closing	 orig lcs isEmpty reverse
 #__construct	 7supportsMachineFormat
 -getParameterCall
 )getServiceCall
 -getReferenceCall
 dumpValue
 7getPrivateServiceCall
 %dumpCallable
 )dumpCollection
 +dumpMethodCalls
  5getServiceDefinition
 escape
~ /prepareParameters
} 7getServiceDefinitions
| 'getParameters
{ !getAliases
z getArray
	y dump
x 'getServiceIds	w 'isScopeActive	v hasScope	u addScope	t !leaveScope	s !enterScope	r =getParameterAlternatives	q 9getServiceAlternatives	p +getAlternatives	!o EresolveServicesAndParameters	n #initialized	m %setParameter	l %hasParameter	k %getParameter	j has	i set	h 'createService	g get	f #__construct	e formatd datePadc !checkArrayb %prepareArraya !arrayToISO` getErrors_ hasErrors^ #checkErrors] 'prepareFormat\ +prepareTimezone[ #prepareTimeZ __cloneY %__callStaticX __callW renderV #__constructU -createFromFormatT 3createFromTimestampS +createFromArrayR 1createFromDateTimeQ %setContainerP -canonicalizeNameO hasN getM #__constructL -assertAllObjects$K KassertAllRegularExpressionMatchJ )assertAllMatchI -assertAllNumericH /assertAllNotEmptyG /assertAllCallableF )assertAllFloatE /assertAllIntegersD -assertAllHaveKeyC 7assertAllStrictArraysB /assertStrictArrayA +assertAllArrays@ -assertStringable? 3assertAllStringable> -assertAllStrings= assertAll< /assertTraversable; register: base_path9 %history_read8 1drupal_set_message7 gzseek6 gztell5 gzopen4 #__construct3 create2 findFile1 3getPluginNamespaces 0 CprepareAnnotationDefinition/ )getDefinitions. 3getAnnotationReader- #__construct
, parse+ #__construct* get) setClass( getClass
' getId& #setProvider% #getProvider$ 7	hook_node_links_alter# %	hook_ranking" 9	hook_node_update_index! ;	hook_node_search_result  -	hook_node_access 9	hook_node_grants_alter" I	hook_node_access_records_alter =	hook_node_access_records -	hook_node_grants =	hook_migrate_prepare_row* Y	hook_locale_translation_projects_alter   \ n[A&	iS;%sYE'
ui[G5!|cL/






|
h
R
:
*
					~	g	Y	N	8	)		gA"x[I0s_A(j[N7"rbJ* iR2|jT>(w\I 3filterByFieldAccessPH )filterByFieldsPG #getByFieldsPF !getByFieldPE 3getEntityViolationsPD 7groupViolationOffsetsP%C MgetChangedTimeAcrossTranslationsPB )setChangedTimePA )getChangedTimeP@ )onBundleDeleteP? )onBundleCreateP> !getMatchesP= -setModuleHandlerP< -checkFieldAccessP; #fieldAccessP: #prepareUserP9 /checkCreateAccessP8 %createAccessP7 setCacheP6 getCacheP5 #checkAccessP4 =processAccessHookResultsP3 +getConfigTargetP2 ;getConfigDependencyNameP1 %getTypedDataP0 'setOriginalIdP/ 'getOriginalIdP. 9invalidateTagsOnDeleteP- 5invalidateTagsOnSaveP, )getCacheMaxAgeP+ %getCacheTagsP* =getCacheTagsToInvalidateP) -getCacheContextsP( postLoadP' !postDeleteP& preDeleteP% preCreateP$ postSaveP# 'getEntityTypeP" -uriRelationshipsP! 1urlRouteParametersP  urlP toLinkP	 linkP 'linkTemplatesP +hasLinkTemplateP
 toUrlP urlInfoP +getEntityTypeIdP %enforceIsNewP
 isNewP 'uuidGeneratorP +languageManagerP /entityTypeManagerP 'entityManagerP +addDependenciesP 'addDependencyP /checkStorageClassP 9getConfigDependencyKeyP %buildCacheIdP !resetCacheP 1setPersistentCacheP 9getFromPersistentCacheP
 cleanIdsP)	 UpopulateAffectedRevisionTranslationsP 5hasFieldValueChangedP 3invokeFieldPostSaveP /invokeFieldMethodP !invokeHookP 7invokeStorageLoadHookP 9invokeTranslationHooksP !doPostSaveP doPreSaveP  'finalizePurgeP )purgeFieldDataP~ ;onFieldDefinitionDeleteP} ;onFieldDefinitionUpdateP| ;onFieldDefinitionCreateP#{ IonFieldStorageDefinitionDeleteP#z IonFieldStorageDefinitionUpdateP#y IonFieldStorageDefinitionCreatePx =FieldDefinitionInterfacePw /createTranslationPv +initFieldValuesPu doCreatePt )createInstancePs hasDataPr )countFieldDataPq hasPp doSavePo +purgeFieldItemsPn 7readFieldItemsToPurgePm AdoDeleteRevisionFieldItemsPl 1doDeleteFieldItemsPk -doSaveFieldItemsPj =doLoadRevisionFieldItemsPi 3getQueryServiceNamePh doDeletePg -loadByPropertiesPf )deleteRevisionPe %loadRevisionP	d loadPc )doLoadMultiplePb %loadMultiplePa /updateChangedTimeP` 1updateFormLangcodeP_ )setFormDisplayP^ )getFormDisplayP] 9copyFormValuesToEntityP\ 7isDefaultFormLangcodeP[ +getFormLangcodePZ /initFormLangcodesP	Y initPX )flagViolationsPW 3getEditedFieldNamesPV #buildEntityPU createPT #getQuestionPS 1logDeletionMessagePR 1getDeletionMessagePQ %getCancelUrlPP !submitFormPO %validateFormPN deleteP	M savePL actionsP	K formPJ buildFormPI #getFormNamePH 'getCancelTextPG )getConfirmTextPF )getDescriptionPE 'getBaseFormIdPD 7hasTranslationChangesPC 9bundleFieldDefinitionsPB %getEntityKeyPA 1referencedEntitiesP
@ labelP? __cloneP> +createDuplicateP= __unsetP< __issetP
; __setP: 5updateOriginalValuesP9 ;getTranslationLanguagesP8 /removeTranslationP7 )addTranslationP6 -isNewTranslationP5 )hasTranslationP4 7initializeTranslationP3 +getUntranslatedP2 )getTranslationP1 onChangeP0 5updateFieldLangcodesP/ 1setDefaultLangcodeP. languageP- accessP, toArrayP+ 3getFieldDefinitionsP* 1getFieldDefinitionP) #getIteratorP( 7getTranslatableFieldsP' getFieldsP& setP% 1getTranslatedFieldP$ getP# hasFieldP	" uuidP! bundleP  idP   B hP5yd:t]F)rN>-!{X>$




c
B
						r	a	K	7	&		zbF7n?yfV?1!cQ4y[A'hQ;&y`A2$pYB            ` +getStorageClassP_ +hasHandlerClassP^ +setHandlerClassP] +getHandlerClassP\ /getHandlerClassesP[ %isSubclassOfPZ setClassPY -getOriginalClassPX getClassPW #getProviderPV hasKeyPU getKeyPT getKeysPS ;isPersistentlyCacheablePR /isRenderCacheablePQ 7isStaticallyCacheablePP /getAggregateQueryPO getQueryPN 1buildPropertyQueryPM 7mapFromStorageRecordsPL )setStaticCachePK 1getFromStaticCachePJ 'loadUnchangedPI )getEntityTypesPH +setRouteOptionsP'G QsetParametersFromEntityInformationP F CsetParametersFromReflectionPE 1getControllerClassPD #getInstancePC 'hasDefinitionPB )getDefinitionsPA 1onEntityTypeDeleteP@ 1onEntityTypeUpdateP? 1onEntityTypeCreateP> 9getEntityTypeFromClassP= =loadEntityByConfigTargetP< -loadEntityByUuidP; ?getTranslationFromContextP: 3getEntityTypeLabelsP9 -getAllBundleInfoP8 'getBundleInfoP7 1clearCachedBundlesP6 7createHandlerInstanceP5 !getHandlerP4 ;getAccessControlHandlerP3 )getViewBuilderP2 /getRouteProvidersP1 'getFormObjectP0 )getListBuilderP/ !hasHandlerP. 'getDefinitionP- 9clearCachedDefinitionsP, getTitleP+ renderP* +buildOperationsP) buildRowP( #buildHeaderP' 5getDefaultOperationsP& 'getOperationsP% getLabelP$ %getEntityIdsP# !getStorageP." _deleteLastInstalledFieldStorageDefinitionP+! YsetLastInstalledFieldStorageDefinitionP,  [setLastInstalledFieldStorageDefinitionsP, [getLastInstalledFieldStorageDefinitionsP" GdeleteLastInstalledDefinitionP AsetLastInstalledDefinitionP AgetLastInstalledDefinitionP 'moduleHandlerP 5setStringTranslationP getFormP 5setEntityTypeManagerP -setEntityManagerP %getOperationP -prepareInvokeAllP 'prepareEntityP ;getEntityFromRouteMatchP setEntityP )actionsElementP !afterBuildP #processFormP getFormIdP %setOperationP )getExtraFieldsP useCachesP 
 CclearCachedFieldDefinitionsP!	 EbuildFieldStorageDefinitionsP 9getFieldMapByFieldTypeP #getFieldMapP #setFieldMapP AgetFieldStorageDefinitionsP  CbuildBundleFieldDefinitionsP ?buildBaseFieldDefinitionsP ;getBaseFieldDefinitionsP 5clearDisplayModeInfoP"  GgetDisplayModeOptionsByBundleP 7getDisplayModeOptionsP~ AgetFormModeOptionsByBundleP} AgetViewModeOptionsByBundleP| 1getFormModeOptionsP{ 1getViewModeOptionsP z CgetDisplayModesByEntityTypeP#y IgetAllDisplayModesByEntityTypePx %getFormModesPw +getAllFormModesPv %getViewModesPu +getAllViewModesPt 'setTargetTypePs 'getTargetTypeP	r sortPq getLoggerPp __wakeupP!o EgetPluginRemovedDependenciesPn 3onDependencyRemovalPm 9fieldHasDisplayOptionsPl -getHighestWeightPk +removeComponentPj %setComponentPi %getComponentPh 'getComponentsPg !createCopyPf 7calculateDependenciesPe +setTargetBundlePd +getTargetBundlePc +getOriginalModePb getModePa 7getTargetEntityTypeIdP` )getRedirectUrlP_ loggerP^ 9getConfigNamesToDeleteP] -getConfigManagerP&\ OrequiresFieldStorageSchemaChangesP'[ QrequiresEntityStorageSchemaChangesPZ 'getChangeListPY 'doFieldUpdatePX )doEntityUpdateP$W KuninstallFieldStorageDefinitionP!V EupdateFieldStorageDefinitionPU ?getFieldStorageDefinitionP"T GinstallFieldStorageDefinitionPS 3uninstallEntityTypePR -updateEntityTypePQ /installEntityTypePP %applyUpdatesPO -getChangeSummaryPN %needsUpdatesPM removePL addPK getEntityPJ 'getFieldNamesP   [ w\A&dL5~hL4 cM7"~jRE0





q
Z
O
<
.
!
									j	R	9	%	h@2XI:!pV/sQ,tL9tdXJ?$qbRA({[        =getDerivativeDefinitions\ ;getDerivativeDefinition\ create\ #__construct\ 3getTargetIdentifier[ getTarget[  #isTargetNew[ 3getTargetDefinition[~ #getIterator[} /applyDefaultValue[| getString[{ onChange[z isEmpty[y toArray[x 'getProperties[w set[v get[u setValue[t getValue[s -createFromEntity[r %getAggregateZq getZp executeZo #__constructZn 3getQueryServiceNameYm hasYl doSaveY	k saveYj doDeleteYi )deleteRevisionYh %loadRevisionYg )doLoadMultipleYf doCreateYe )createInstanceYd #__constructYc /createTranslationYb #__constructXa =onConfigImporterValidateW` #__constructW%_ MvalidateReferenceableNewEntitiesV^ +createNewEntityV] 3getFallbackPluginIdV\ 3getSelectionHandlerV[ 1getSelectionGroupsVZ #getPluginIdVY #getInstanceVX #__constructVW -entityQueryAlterV"V GvalidateReferenceableEntitiesVU AcountReferenceableEntitiesVT =getReferenceableEntitiesVS 'buildMultipleU
R buildUQ postSaveUP 7collectRenderDisplaysUO 5getPluginCollectionsU.N _movePropertyPathViolationsRelativeToFieldU$M KflagWidgetsErrorsFromViolationsUL 1validateFormValuesUK /extractFormValuesUJ #processFormUI buildFormUH #getRendererUG #__constructUF 5collectRenderDisplayUE /enhanceEntityViewTD /enhanceEntityListTC /enhanceEntityFormTB appliesTA enhanceT)@ UextractEntityIdFromAutocompleteInputS? +getEntityLabelsS> 1matchEntityByTitleS= AvalidateEntityAutocompleteS< ?processEntityAutocompleteS; 'valueCallbackS: getInfoS9 'buildMultiple8 build%7 KflagWidgetsErrorsFromViolations6 1validateFormValues5 /extractFormValues4 buildForm3 +setTargetBundle2 +getTargetBundle1 +getOriginalMode0 getMode/ 7getTargetEntityTypeId. #getRenderer- -getHighestWeight, +removeComponent+ %setComponent* %getComponent) 'getComponents( !createCopy	' viewR& !buildTitleR% listingR$ #doGetEntityR# #deleteTitleR" editTitleR
! titleR  createR #__constructR getQ +getFormArgumentP 5baseFieldDefinitionsP 5getPluginCollectionsP 7getSingleFieldDisplayP 'viewFieldItemP viewFieldP 3isViewModeCacheableP !alterBuildP +buildComponentsP 'buildMultipleP
 buildP -getBuildDefaultsP %viewMultipleP	 viewP +findDefinitionsP /processDefinitionP /onEntityTypeEventP 3getEntityTypeEventsP #getOriginalP
 ?getBundleConfigDependencyP	 'addConstraintP )setConstraintsP )getConstraintsP ;isCommonReferenceTargetP -getListCacheTagsP 5getListCacheContextsP 'getGroupLabelP getGroupP )setUriCallbackP  )getUriCallbackP /getLowercaseLabelP~ %getDataTableP} -getRevisionTableP| 5getRevisionDataTableP{ )isRevisionablePz %getBaseTablePy )getBundleLabelPx #getBundleOfPw 3getBundleEntityTypePv -hasLabelCallbackPu -setLabelCallbackPt -getLabelCallbackPs +setLinkTemplatePr +getLinkTemplatePq -getLinkTemplatesPp =getPermissionGranularityPo 1getAdminPermissionPn )setAccessClassPm 7getAccessControlClassPl ;getRouteProviderClassesPk 3hasViewBuilderClassPj 3setViewBuilderClassPi 3getViewBuilderClassPh 3hasListBuilderClassPg 3setListBuilderClassPf 3getListBuilderClassPe /hasRouteProvidersPd )hasFormClassesPc %setFormClassPb %getFormClassPa +setStorageClassP   Y aAeM9'rdSD1$o`I<oaSA0








}
n
W
=

								{	l	]	O	A	.		
vdL6+zbH5tI%u^G'fP.waK.|pXM3zY     , ?deleteFromDedicatedTablese+ 7saveToDedicatedTablese* ;loadFromDedicatedTablese) 3getQueryServiceNamee( %saveRevisione' 9mapToDataStorageRecorde& )isColumnSeriale% 1mapToStorageRecorde$ 1saveToSharedTablese# hase" -doSaveFieldItemse	! savee  1doDeleteFieldItemse deletee !buildQuerye 1buildPropertyQuerye AdoDeleteRevisionFieldItemse =doLoadRevisionFieldItemse 5loadFromSharedTablese 7mapFromStorageRecordse )getFromStoragee )doLoadMultiplee +getTableMappinge 'setEntityTypee -getStorageSchemae 5getRevisionDataTablee %getDataTablee -getRevisionTablee %getBaseTablee +initTableLayoute AgetFieldStorageDefinitionse )createInstancee 9generateFieldTableNamee" GgetDedicatedRevisionTableNamee
 ?getDedicatedDataTableNamee	 1getReservedColumnse 9getDedicatedTableNamese" GrequiresDedicatedTableStoragee =allowsSharedTableStoragee +setExtraColumnse +getExtraColumnse 'setFieldNamese 1getFieldColumnNamee )getColumnNamese  /getFieldTableNamee 'getFieldNamese~ 'getAllColumnse} 'getTableNamese| #__constructe!{ CrequiresEntityDataMigration(z QrequiresEntityStorageSchemaChangesy 'finalizePurge x ArequiresFieldDataMigration'w OrequiresFieldStorageSchemaChangesv 9getEntityTypeIdKeyTypedu /getCanonicalRoutedt getRoutesds )createInstancedr #__constructdq 1getDeleteFormRoutedp -getEditFormRoutedo 1translateConditioncn +getTableMappingbm addJoinbl -ensureFieldTablebk /ensureEntityTablebj 5isFieldCaseSensitivebi addFieldbh %getAggregatebg getbf )createSqlAliasbe -addSortAggregatebd !addGroupBybc -compileAggregatebb %addAggregateba 1notExistsAggregateb` +existsAggregateb#_ IconditionAggregateGroupFactoryb^ getTablesb] __cloneb\ 'isSimpleQueryb[ #getSqlFieldbZ resultbY finishbX addSortbW preparebV executebU #__constructbT 1translateConditionbS notExistsbR existsbQ compilebP %getAggregateaO getaN #__constructa#M IconditionAggregateGroupFactoryaL 1notExistsAggregateaK +existsAggregateaJ executeaI notExistsaH existsaG compileaF %getAggregate`E get`D getClass`C 'getNamespaces`B 3getAggregationAlias`A #getMetaData`@ #addMetaData`? hasAnyTag`> !hasAllTags`= hasTag`< addTag`; tableSort`: +initializePager`
9 pager`8 %allRevisions`7 +currentRevision`6 #accessCheck`	5 sort`4 -orConditionGroup`3 /andConditionGroup`2 7conditionGroupFactory`
1 range`0 +getEntityTypeId`/ execute`. 'sortAggregate`#- IconditionAggregateGroupFactory`, 1notExistsAggregate`+ +existsAggregate`* 1conditionAggregate`) groupBy`( aggregate`' __clone`
& count`% #__construct`$ compile`# notExists`" exists`! )getConjunction`  condition` create_ #__construct_ %coversFields_ validate_ 1getRequiredOptions_ -getDefaultOption_ +getBundleOption_ !matchLabel^ %reAlterQuery^ -buildEntityQuery^% MvalidateReferenceableNewEntities^ +createNewEntity^ 7elementValidateFilter^ create^ #__construct^ -entityQueryAlter^" GvalidateReferenceableEntities^ AcountReferenceableEntities^ =getReferenceableEntities^ ;submitConfigurationForm^ ?validateConfigurationForm^
 9buildConfigurationForm^	 =getDerivativeDefinitions] create] #__construct]   + a?%dE/zU4w]9uZ; 





y
Z
7
					t	S	2	iO6"
}jS<*b=scE2%sE,bF(u]J5`E+     ; 1checkReplicaServerg: 3sanitizeDestinationg 9 CgetDestinationAsAbsoluteUrlg8 -checkRedirectUrlg7 redirectg6 %onKernelViewg5 1onKernelControllerg4 +onRouteFinishedg3 %onRouteAlterg.2 _onRoutingRouteAlterSetParameterConvertersg1 'explodeStringg0 #alterRoutesg/ -menuLinksRebuildg. +onRouterRebuildg- -drupalSetMessageg, AonKernelRequestMaintenanceg+ /onViewRenderArrayg* /onKernelTerminateg) +registerServiceg( /setExpiresNoCacheg' 9setCacheControlNoCacheg& 5setResponseCacheableg% ;setResponseNotCacheableg$ =isCacheControlCustomizedg
# on500g" onErrorg
! on406g
  on405g 3onDynamicRouteEventg AonRoutingRouteAlterSetTypeg -onKernelResponseg /onKernelExceptiong+ YwrapControllerExecutionInRenderContextg %onControllerg getFormatg #onExceptiong onJsong onHtmlg 'getErrorLevelg )makeSubrequestg
 on401g /getHandledFormatsg
 on404g
 on403g #getPriorityg 9onConfigImporterImportg getNamesg 'getModuleDatag %getThemeDatag
 5validateDependenciesg	 )validateThemesg +validateModulesg =onConfigImporterValidateg -onRouterFinishedg =onExceptionSendChallengeg" GonKernelRequestFilterProviderg  ConKernelRequestAuthenticateg onRespondg onRequestg  1setLinkActiveClassg !onResponseg~ #__constructg} 3getSubscribedEventsg| +onViewDetect406g{ !setBundlesfz !getBundlesfy +setEntityTypeIdfx +getEntityTypeIdfw #getDataTypefv 9getPropertyDefinitionsfu 1createFromDataTypeft createfs %addUniqueKeyer addIndexe q CgetColumnSchemaRelevantKeysep -hasColumnChangeseo %isTableEmptyen /getFieldIndexNameem 1getEntityIndexNameel ;getDedicatedTableSchemae"k GaddSharedTableFieldForeignKeye!j EaddSharedTableFieldUniqueKeyei =addSharedTableFieldIndexeh ?getSharedTableFieldSchemaeg =hasNullFieldPropertyDataef ?deleteEntitySchemaIndexesee ?createEntitySchemaIndexesed ;updateSharedTableSchemaec AupdateDedicatedTableSchemaeb ;deleteSharedTableSchemaea AdeleteDedicatedTableSchemae` ;createSharedTableSchemae_ AcreateDedicatedTableSchemae ^ CperformFieldSchemaOperatione] ;processIdentifierSchemae\ =processRevisionDataTablee[ -processDataTableeZ 5processRevisionTableeY -processBaseTableeX -addTableDefaultse W CinitializeRevisionDataTableeV 3initializeDataTableeU ;initializeRevisionTableeT 3initializeBaseTableeS 7deleteFieldSchemaDataeR 3saveFieldSchemaDataeQ 3loadFieldSchemaDataeP 9deleteEntitySchemaDataeO 5saveEntitySchemaDataeN 5loadEntitySchemaDataeM 3getFieldForeignKeyse!L EgetFieldSchemaIdentifierNameeK 1getFieldSchemaDataeJ 1getFieldUniqueKeyseI +getFieldIndexeseH 3getEntitySchemaDataeG 7getEntitySchemaTableseF +getEntitySchemaeE +checkEntityTypee#D IgetSchemaFromStorageDefinitioneC ?hasSharedTableNameChangese"B GhasSharedTableStructureChangeeA 9installedStorageSchemae@ AstorageDefinitionIsDeletede? )countFieldDatae> 'finalizePurgee= +purgeFieldItemse< 7readFieldItemsToPurgee; )onBundleDeletee: )onBundleCreatee9 ;onFieldDefinitionDeletee8 3wrapSchemaExceptione#7 IonFieldStorageDefinitionDeletee#6 IonFieldStorageDefinitionUpdatee#5 IonFieldStorageDefinitionCreatee4 1onEntityTypeDeletee3 1onEntityTypeUpdatee2 1onEntityTypeCreatee1 ArequiresFieldDataMigratione 0 CrequiresEntityDataMigratione&/ OrequiresFieldStorageSchemaChangese'. QrequiresEntityStorageSchemaChangese&- OdeleteRevisionFromDedicatedTablese   y {jYF7(}qH+tfVA0
}hN< 
nR5&







p
`
M
@
(
							s	f	S	7	$		paRC0ycM;(kM. tY@1{cB g]@%xeWG2y                           f ;onFieldDefinitionUpdateke ;onFieldDefinitionCreatekd 1mapToStorageRecordkc 7mapFromStorageRecordskb 'addConstraintka )setConstraintsk` /getItemDefinitionk_ 'getConstraintk^ getClassk] isListk\ #getDataTypek[ 1createFromDataTypekZ #setRequiredkY !isRequiredkX )setDescriptionkW )getDescriptionkV setLabelkU getLabelkT postSavekS !postCreatekR 3onDependencyRemovalkQ 7calculateDependencieskP idkO ;defaultValuesFormSubmitkN 3processDefaultValuekM 1referencedEntitieskL )getConstraintskK 'defaultAccesskJ )createInstancekI #__constructkH getConfigkG AgetUniqueStorageIdentifierkF ?getFieldStorageDefinitionkE -setCustomStoragekD #isBaseFieldkC -hasCustomStoragekB !getColumnskA getSchemak@ +setTargetBundlek? +getTargetBundlek> 7setTargetEntityTypeIdk= 7getTargetEntityTypeIdk< __sleepk; /getFieldItemClassk: 3getMainPropertyNamek9 -getPropertyNamesk8 9getPropertyDefinitionsk7 7getPropertyDefinitionk6 1getOptionsProviderk5 ;setDefaultValueCallbackk4 +setDefaultValuek3 +getDefaultValuek2 ;getDefaultValueCallbackk1 9getDefaultValueLiteralk0 7isDisplayConfigurablek/ /getDisplayOptionsk. 9setDisplayConfigurablek- /setDisplayOptionsk, 9addPropertyConstraintsk+ 9setPropertyConstraintsk* %setQueryablek) #isQueryablek( !isMultiplek' )setCardinalityk& )getCardinalityk% +setRevisionablek$ )isRevisionablek# +setTranslatablek" )isTranslatablek! #setProviderk  #getProviderk !setSettingk !getSettingk #setSettingsk #getSettingsk getTypek setNamek getNamek 1createFromItemTypek% McreateFromFieldStorageDefinitionk createk 1displayAllowedTagsk #allowedTagsk )fieldFilterXssk acceptj #getChildrenj #acceptTestsj 5themeRegistryRebuildi #resetSystemi
 hasUii getThemei #themeExistsi
 3getThemeDirectoriesi	 +systemThemeListi +systemListReseti 7getExtensionDiscoveryi +doGetBaseThemesi 'getBaseThemesi -rebuildThemeDatai
 reseti #refreshInfoi addThemei  listInfoi !setDefaulti~ !getDefaulti} 7getModuleInfoByModulei| validatei{ /validateUninstalliz %updateKerneliy +removeCacheBinsix uninstalliw installiv 7addUninstallValidatoriu 5getModuleDirectoriesit +parseDependencyis 7verifyImplementationsir ;buildImplementationInfoiq 7getImplementationInfoi
p alterio invokeAllin invokeim )implementsHookil 5resetImplementationsik !writeCacheij 1getImplementationsii 'buildHookInfoih #getHookInfoig #loadIncludeif +loadAllIncludesie %moduleExistsid ;buildModuleDependenciesic addib !addProfileia addModulei` 'setModuleListi_ getModulei^ 'getModuleListi] isLoadedi\ reloadi[ loadAlliZ +getRequiredKeysi
Y parseiX 'getInfoParseriW 'scanDirectoryiV processi	U sortiT AfilterByProfileDirectoriesiS 7setProfileDirectoriesiR 7getProfileDirectoriesi&Q OsetProfileDirectoriesFromSettingsi	P scaniO #unserializeiN serializeiM __calli	L loadiK 5getExtensionFilenameiJ 5getExtensionPathnameiI #getFilenameiH #getPathnameiG getPathiF getNameiE getTypeiD #__constructiC setConfighB getConfighA 3getConfigDefinitionh@ 5getConfigDefinitionsh? executeh> 'onAlterRoutesg= +onRouteBuildingg< #onTerminateg   V ~kQA'za>vcK;-q^7nU4






z
f
R
?
#
						v	X	:		u_I,{Z=$ `@,pdQ:'nU; jZJ:bD0mV                 +settingsSummaryr %settingsFormr +defaultSettingsr +truncateDecimalq
 __setq
  __getq toArrayq~ ;getAllowedLanguageCodesq} ;getPreconfiguredOptionsq| 1settingsAjaxSubmitq{ %settingsAjaxqz 9formProcessMergeParentq$y KfieldSettingsAjaxProcessElementqx =fieldSettingsAjaxProcessqw 3onDependencyRemovalq!v EcalculateStorageDependenciesqu 7calculateDependenciesqt %hasNewEntityqs ?fieldSettingsFormValidateqr onChangeqq getValueqp setValueqo -mainPropertyNameqn isEmptyqm -getDecimalDigitsql )getConstraintsqk 3storageSettingsFormqj 9defaultStorageSettingsqi /applyDefaultValueqh preSaveqg 3generateSampleValueqf 1getSettableOptionsqe /getSettableValuesqd 1getPossibleOptionsqc /getPossibleValuesqb /fieldSettingsFormqa schemaq` 3propertyDefinitionsq_ 5defaultFieldSettingsq^ +formatTimestampp] viewValuep\ #checkAccessp[ +needsEntityLoadpZ #prepareViewp	Y viewpX /getEntitiesToViewpW %isApplicablepV +settingsSummarypU createpT #__constructpS %numberFormatpR %settingsFormpQ -getOutputFormatspP +defaultSettingspO %viewElementspN =getDerivativeDefinitionsoM ;getDerivativeDefinitionoL createoK #__constructoJ __sleepmI !loadByNamemH !postDeletemG preSavemF 9getBaseFieldDefinitionmE !isComputedmD !isReadOnlymC /getDisplayOptionsmB 7isDisplayConfigurablemA ?getFieldStorageDefinitionm@ #__constructm"? GcreateFromBaseFieldDefinitionm> #formElementk= 5isDefaultValueWidgetk< 7handlesMultipleValuesk; /massageFormValuesk: %errorElementk9 7getWidgetStateParentsk8 )setWidgetStatek7 )getWidgetStatek6 !flagErrorsk5 /extractFormValuesk4 /formSingleElementk3 #addMoreAjaxk2 'addMoreSubmitk1 !afterBuildk0 5formMultipleElementsk	/ formk. ;getPreconfiguredOptionsk- 9getThirdPartyProvidersk, 9unsetThirdPartySettingk+ 5setThirdPartySettingk* 5getThirdPartySettingk) 7getThirdPartySettingsk( 'mergeDefaultsk' +defaultSettingsk& 1getDefaultSettingsk% !getOptionsk$ 5prepareConfigurationk# #getInstancek" %viewElementsk! %isApplicablek  +getFieldSettingk -getFieldSettingsk #prepareViewk +settingsSummaryk %settingsFormk )getPluginClassk -getUiDefinitionsk ;getDefaultFieldSettingsk ?getDefaultStorageSettingsk /processDefinitionk +createFieldItemk 3createFieldItemListk# IonFieldStorageDefinitionDeletek# IonFieldStorageDefinitionUpdatek# IonFieldStorageDefinitionCreatek" GonFieldStorageDefinitionEventk$ KgetFieldStorageDefinitionEventsk #getOriginalk validatek equalsk 1defaultValueWidgetk ?defaultValuesFormValidatek
 /defaultValuesFormk	 3generateSampleItemsk )delegateMethodk /applyDefaultValuek accessk getValuek -filterEmptyItemsk #setLangcodek !createItemk schemak  3propertyDefinitionsk! EcalculateStorageDependenciesk ~ CfieldSettingsFromConfigDatak} ?fieldSettingsToConfigDatak"| GstorageSettingsFromConfigDatak { CstorageSettingsToConfigDatakz /fieldSettingsFormky 3storageSettingsFormkx )deleteRevisionkw 3generateSampleValuekv deleteku preSavek	t viewks __unsetkr __issetk
q __setk
p __getko 1writePropertyValuekn setValuekm 1getFieldDefinitionkl #getLangcodekk getEntitykj -mainPropertyNameki 5defaultFieldSettingskh 9defaultStorageSettingskg ;onFieldDefinitionDeletek   x dO:$kP6#vcPC1v_H8& iVH6%







q
L
8
%

								w	Y	C	-		vaM8 rbR?+yZ=)hP9!}eM;)oO>*v]H4x                          0 /setSubmitHandlersy/ !setStoragey. )addRebuildInfoy- )getRebuildInfoy, )setRebuildInfoy&+ OisBypassingProgrammedAccessChecksy#* IsetProgrammedBypassAccessChecky) %isProgrammedy( 'setProgrammedy' /isProcessingInputy& +setProcessInputy% 1isRedirectDisabledy$ +disableRedirecty# 5isValidationEnforcedy" 7setValidationEnforcedy! 3isRequestMethodSafey  -setRequestMethody %isMethodTypey setMethody =getLimitValidationErrorsy =setLimitValidationErrorsy )hasFileElementy /setHasFileElementy setGroupsy !isExecutedy #setExecutedy %disableCachey isCachedy setCachedy !getButtonsy !setButtonsy -getAlwaysProcessy -setAlwaysProcessy %setFormStatey 1processStatesArrayy 7rewriteStatesSelectory -drupalSetMessagey" GsetElementErrorsFromFormStatey
 5displayErrorMessagesy	 -handleFormErrorsy +getElementTitley -getElementByNamey 3loadCachedFormStatey 5getFileUploadMaxSizey -buttonWasClickedy' QelementTriggeredScriptedSubmissiony 1handleInputElementy 3valueCallableIsSafey  #doBuildFormy %doSubmitFormy~ 7executeSubmitHandlersy} ;executeValidateHandlersy| %redirectFormy{ 5setInvalidTokenErroryz +buildFormActionyy #prepareFormyx ArenderFormTokenPlaceholdery w CrenderPlaceholderFormActionyv #processFormyu %retrieveFormyt #deleteCacheys setCacheyr getCacheyq #rebuildFormyp getFormIdyo loggeryn containerym #currentUseryl +setRequestStackyk 'getRouteMatchyj !getRequestyi 1resetConfigFactoryyh -setConfigFactoryyg 'configFactoryyf %validateFormye 'buildResponseyd %getFormStateyc getFormyb #getResponseya 3createFromExceptiony` %getCancelUrly_ #getQuestiony^ +buildCancelLinky] #getFormNamey\ 'getCancelTexty[ )getConfirmTextyZ )getDescriptionyY 9getEditableConfigNamesyX configyW !submitFormyV buildFormyU createyT #__constructyS 'getBaseFormIdyR /garbageCollectionxQ isAllowedx
P clearxO registerxN #__constructxM %runOperationw"L GsetConnectionSettingsDefaultswK 7addConnectionSettingswJ +getFiletransferwI !submitFormwH %validateFormwG buildFormwF getFormIdwE createwD #__constructwC +getSettingsFormvB setChrootvA !findChrootv@ isFilev? #isDirectoryv> -removeFileJailedv= )copyFileJailedv< 7removeDirectoryJailedv; 7createDirectoryJailedv: 3copyDirectoryJailedv9 %sanitizePathv8 'fixRemotePathv7 checkPathv6 !removeFilev5 copyFilev4 +removeDirectoryv3 +createDirectoryv
2 chmodv1 'copyDirectoryv0 connectv
/ __getv. factoryv- #__constructv, #chmodJailedv+ AregisterWithSymfonyGuesseru* %sortGuessersu) !addGuesseru( !setMappingu
' guessu& #__constructu% #validSchemet$ uriSchemet# tempnamt
" rmdirt! mkdirCallt
  mkdirt basenamet dirnamet realpatht unlinkt
 chmodt -moveUploadedFilet #__constructt 1getFieldDefinitions 3getMainPropertyNames 9getPropertyDefinitionss 7getPropertyDefinitions creates 1createFromDataTypes 1getSelectedOptionsr !getOptionsr +validateElementr #__constructr )supportsGroupsr 'sanitizeLabelr 'getEmptyLabelr ;getMatchOperatorOptionsr
 AgetSelectionHandlerSettingr	 3getAutocreateBundler %errorElementr /massageFormValuesr #formElementr    fJ/nZF2!r^J4$pW?,iH"






w
_
L
=
*
								~	k	Z	F	4	(		
tVC" taN0}ZD(vbS4kJ, p^M@%u`E1                       a ;getStandardLanguageList ` 9getLanguageSwitchLinks _ 7getFallbackCandidates ^ -isLanguageLocked ] ?getDefaultLockedLanguages \ +getLanguageName [ #getLanguage Z 1getNativeLanguages Y %getLanguages X 1getDefaultLanguage W reset V 1getCurrentLanguage !U CgetDefinedLanguageTypesInfo T -getLanguageTypes S )isMultilingual 	R set 	Q get P 1getDefaultLangcode 
O sort N isLocked M isDefault L getWeight K %getDirection J getId I getName H #__construct G delete F #setMultiple E /getCollectionName D /garbageCollection 	C get B 7setMultipleWithExpire A =setWithExpireIfNotExists @ 'setWithExpire ? deleteAll > )deleteMultiple = rename < )setIfNotExists 	; set : getAll 9 #getMultiple 	8 has 7 #__construct 6 %validateForm 5 9getEditableConfigNames 4 create 3 #__construct 2 !submitForm 1 buildForm 0 getFormId / getTitle . #__construct - alter , register + 3getRouteDefinitions * 1resetConfigStorage ) 3initializeContainer ( )createInstance~ ' CgetToolkitOperationPluginId~& execute~% /validateArguments~$ -prepareArguments~# arguments~" !getToolkit~! 5getAvailableToolkits~  /getDefaultToolkit~ 3getDefaultToolkitId~ 9getSupportedExtensions~ #isAvailable~ #getMimeType~ getWidth~ getHeight~ parseFile~	 save~ isValid~
 apply~ 3getToolkitOperation~ +getRequirements~ getSource~ setSource~ ?validateConfigurationForm~ #__construct~ 9getSupportedExtensions} get} %setToolkitId}
 chmod}
 scale}
 %scaleAndCrop}	 rotate} resize} !desaturate}	 crop} convert} createNew}
 apply}	 save} !getToolkit}  %getToolkitId} getSource}~ #getMimeType}} #getFileSize}| getWidth}{ getHeight}z isValid}y #__construct}x 'createRequest|w configure|v 7initializeMiddlewares|u #fromOptions|t #__construct|s getSize{r #__construct{q -drupalSetMessagezp 3getSubscribedEventszo !formatSizezn 5getFormAjaxExceptionzm #onExceptionzl onViewzk #__constructzj -doFlattenOptionsyi )flattenOptionsy#h IdetermineLimitValidationErrorsyg ?performRequiredValidationyf )doValidateFormye 1finalizeValidationy&d OhandleErrorsWithLimitedValidationy c CdrupalInstallationAttemptedyb /moduleLoadIncludeya +hasInvalidTokeny` +setInvalidTokeny_ #cleanValuesy^ -addCleanValueKeyy] /setCleanValueKeysy\ /getCleanValueKeysy[ 'getFormObjectyZ 'setFormObjectyY +prepareCallbackyX %isRebuildingyW !setRebuildyV getErrorsyU getErroryT #clearErrorsyS setErroryR )setErrorByNameyQ %hasAnyErrorsyP %setAnyErrorsyO #getRedirectyN )setRedirectUrlyM #setRedirectyL #setResponseyK 1setValueForElementyJ %isValueEmptyyI hasValueyH !unsetValueyG setValueyF setValuesyE %setUserInputyD %addBuildInfoyC %getBuildInfoyB %setBuildInfoyA hasy@ sety? +setCompleteFormy> /getCacheableArrayy= #loadIncludey< 5isValidationCompletey; 7setValidationCompletey: 3getValidateHandlersy9 3setValidateHandlersy8 5setTriggeringElementy7 /hasTemporaryValuey6 /setTemporaryValuey5 %getTemporaryy4 %setTemporaryy3 #isSubmittedy2 %setSubmittedy1 /getSubmitHandlersy   e uXD,{cL9'{m[J7"}lWF3!{cJ.






h
M
;
)
							t	Z	>	(		 u`K4x^G.~hO% bF*pW?+taD0pL&~e      -serializedFields  /ensureTableExists  /treeDataRecursive 
 +doBuildTreeData 	 +loadAllChildren  )getAllChildIds  %getMenuNames  +loadSubtreeData # GdoCollectRoutesAndDefinitions ! CcollectRoutesAndDefinitions  loadLinks  %loadTreeData  'saveRecursive   )getRootPathIds  -loadFullMultiple ~ loadFull } %loadMultiple | #loadByRoute { -loadByProperties z #prepareLink y 5updateParentalStatus x !findParent w %moveChildren v !setParents !u CdoFindChildrenRelativeDepth t delete s preSave r doSave 
q save p /safeExecuteSelect o 'purgeMultiple n #excludeRoot m +setTopLevelOnly l -onlyEnabledLinks k %addCondition j )setActiveTrail i 1addExpandedParents h #setMaxDepth g #setMinDepth f setRoot e )getMenuOptions !d CparentSelectOptionsTreeWalk c 3getParentDepthLimit b 3parentSelectElement a 9getParentSelectOptions ` count _ #getExpanded ^ -getSubtreeHeight ] maxDepth \ !buildItems [ build Z transform Y +createInstances 
X load 'W OgetCurrentRouteMenuTreeParameters V -resetDefinitions U 'resetInstance T resetLink S -updateDefinition R 'addDefinition Q -loadLinksByRoute P #getChildIds O %getParentIds N )countMenuLinks M 'menuNameInUse L -removeDefinition K )deleteInstance J /deleteLinksInMenu I #getInstance H )createInstance G 'hasDefinition F 'getDefinition E rebuild D !getFactory C !deleteLink B /getTranslateRoute A %getEditRoute @ )getDeleteRoute ? %getFormClass > %getUrlObject = #getMetaData < #isDeletable ; )isTranslatable : %isResettable 9 !isExpanded 8 isEnabled 7 getParent 6 #getProvider 5 #getMenuName 4 'getActiveLink 3 3doGetActiveTrailIds 2 /getActiveTrailIds 1 -resolveCacheMiss 0 getCid / 'isRouteActive . 'getLocalTasks - 'getTasksBuild , 7getLocalTasksForRoute + )getDefinitions * 'routeProvider ) getActive ( setActive ' 1getActionsForRoute & 1getRouteParameters % create $ !updateLink # )getCacheMaxAge " %getCacheTags ! -getCacheContexts   )getDescription  flatten  5generateIndexAndSort  3menuLinkCheckAccess  -collectNodeLinks  +checkNodeAccess  #checkAccess $ IgetContextualLinksArrayByGroup % KgetContextualLinkPluginsByGroup  /processDefinition  %getDiscovery  #__construct  getWeight  !getOptions  getGroup  %getRouteName  getTitle 
 mail  format  #getInstance  #__construct 
 mail 
 format 	 'htmlToTextPad  +htmlToTextClean  )htmlToMailUrls  %wrapMailLine  !htmlToText  wrapMail  getLevels  debug 
 info   notice  warning ~ error } critical | alert { emergency z =parseMessagePlaceholders 	y get x #sortLoggers w addLogger v !setLoggers u )setCurrentUser t +setRequestStack 	s log r #__construct q getLockId 
p wait o !releaseAll n release m 1lockMayBeAvailable l acquire k #__construct j getList i +getStandardList h #__construct g 5getAvailableContexts f 1getRuntimeContexts e #__construct d +filterLanguages c ?getConfigOverrideLanguage b ?setConfigOverrideLanguage    Y r]=&jH(saM?1	kG:,q^G0







q
]
A

								m	Y	@	0	s`L8!rU7(~dJ,}dK*nT?,_O;#x_J3pY       2 )getDescription 1 setLabel 0 getLabel / #setDataType . #getDataType - create , )getDefinitions + )contextHandler * ?getDefinitionsForContexts ) /createFromContext ( )getCacheMaxAge ' %getCacheTags & -getCacheContexts % 9addCacheableDependency $ validate # 5getContextDefinition " )getContextData ! )getConstraints   +setContextValue  +hasContextValue  +getContextValue  #__construct  process  ;submitConfigurationForm  ?validateConfigurationForm  9buildConfigurationForm ! CcalculatePluginDependencies  )providerExists  -alterDefinitions  +findDefinitions  !getFactory  %getDiscovery  /processDefinition  useCaches  5setCachedDefinitions  5getCachedDefinitions  )getDefinitions  alterInfo  +setCacheBackend  -removeInstanceId 
 'addInstanceId 	 =setInstanceConfiguration  -setConfiguration  -getConfiguration  !sortHelper 
 sort  -initializePlugin  #__construct  )getCacheMaxAge  %getCacheTags   -getCacheContexts  5getContextDefinition ~ 7getContextDefinitions } /setContextMapping | /getContextMapping { +setContextValue z !setContext y !getContext $x IcreateContextFromConfiguration !w CaddContextAssignmentElement v )contextHandler u t t create s 7getGroupedDefinitions r 5getSortedDefinitions q 'getCategories p -getModuleHandler o +getProviderName n ?processDefinitionCategory m 9clearCachedDefinitions l 1addCachedDiscovery 	k get j )sortProcessors i #getOutbound h #addOutbound g !getInbound f !addInbound e #__construct d +processOutbound c )processInbound b /getPathAttributes a getUrl %` KgetUrlIfValidWithoutAccessCheck _ 'getUrlIfValid ^ isValid ] -getFrontPagePath \ #isFrontPage [ matchPath Z setPath Y getPath X clear W -resolveCacheMiss 	V get U /loadMenuPathRoots T 'lazyLoadCache S 5pathHasMatchingAlias R ?getAliasesForAdminListing Q 3languageAliasExists P #aliasExists O -lookupPathSource N +lookupPathAlias M -preloadPathAlias L delete 
K load 
J save I )getRequestTime H ?pathAliasWhitelistRebuild G !cacheClear F )getAliasByPath E )getPathByAlias D !writeCache C #setCacheKey B #__construct A %getCountLog2 @ crypt ? 7enforceLog2Boundaries > %generateSalt = %base64Encode < #__construct ; #needsRehash : check 
9 hash !8 CsetRouteParameterConverters 7 %getConverter 6 %addConverter 5 ?getEntityTypeFromDefaults 4 applies 3 convert 2 #__construct 1 trigger 0 check / #__construct . #__construct - isCli , check + #__construct * addPolicy ) check ( /getOperationLinks' #blockSubmit & blockForm % -getCacheContexts $ build # 5defaultConfiguration " create ! #__construct   ;submitConfigurationForm  ?validateConfigurationForm  /extractFormValues  9buildConfigurationForm  3setMenuLinkInstance  create  #__construct  encodeId  %saveOverride  7loadMultipleOverrides  )deleteOverride  ;deleteMultipleOverrides  %loadOverride  reload  getConfig  -doDeleteMultiple  ?findNoLongerExistingLinks  -schemaDefinition  -definitionFields    Y kU>(wZF*aJ/oX;{gP?"






o
[
D
3

							i	Y	>	.		vfR; ucJ:"s_S?%ueG.iYI1]J2x[G3sY Z /createPlaceholder $Y IshouldAutomaticallyPlaceholder X 5canCreatePlaceholder W #setContexts V #getContexts U 'getRouteMatch T 9getPluginConfiguration S 9setPluginConfiguration R #getPluginId Q #setPluginId P 5getRouteDebugMessage O supports N /generateFromRoute M generate L bubble K -getPathFromRoute J !getContext I !setContext H #processFeed G 3processHtmlHeadLink F +processHtmlHead E !setHeaders .D ]renderHtmlResponseAttachmentPlaceholders C 7processAssetLibraries B 1renderPlaceholders A !setContent @ getCid ? 9clearCachedDefinitions > )createInstance = buildInfo < +getInfoProperty ; getInfo : isEmpty 9 'setAttributes 8 -isVisibleElement 7 1getVisibleChildren 6 children 5 child 4 !properties 3 property 2 -mergeAttachments 1 9addCacheableDependency 0 -createFromObject / 7createFromRenderArray . applyTo - merge , )renderBarePage + #__construct * 1processAttachments ) )setAttachments ( )addAttachments ' )getAttachments & )createInstance % /processDefinition $ #processItem 	# get " #deleteQueue ! #createQueue   !deleteItem  #releaseItem  'numberOfItems  !createItem  #__construct  #getAllItems  claimItem  destruct  +rebuildIfNeeded  rebuild  -setRebuildNeeded  getRoutes 
 dump  addRoutes  )lazyLoadItself  #__construct  )renderBarePage  )lazyLoadItself  #__construct  9clearCachedDefinitions  1addCachedDiscovery  )lazyLoadItself 
 #__construct 	 applies  convert  )lazyLoadItself  #__construct  addPolicy  check  )lazyLoadItself  #__construct  getLockId 
  wait  !releaseAll ~ release } 1lockMayBeAvailable | acquire { )lazyLoadItself z #__construct  y AregisterWithSymfonyGuesser x !addGuesser w !setMapping v guess u )lazyLoadItself t #__construct s 5setStringTranslation r validate q )lazyLoadItself p #__construct o 5setStringTranslation n validate m /validateUninstall l uninstall k install j 7addUninstallValidator i )lazyLoadItself h #__construct g 5setStringTranslation f validate e )lazyLoadItself d #__construct !c CcheckConfigurationToInstall b isSyncing a !setSyncing ` -getSourceStorage _ -setSourceStorage $^ IinstallCollectionDefaultConfig ] 7installOptionalConfig \ 5installDefaultConfig [ )lazyLoadItself Z #__construct Y create X cleanup W update V delete 
U load T )lazyLoadItself S #__construct 	R run Q )lazyLoadItself P #__construct O 1buildUseStatements N )createInstance M ;addTranslatableProperty L __call K )getDefinitions J create I !getDeriver H 3getPluginNamespaces G =getProviderFromNamespace !F CprepareAnnotationDefinition E 3getAnnotationReader D #__construct C 5getAvailableContexts B 1getRuntimeContexts A 3applyContextMapping @ 3getMatchingContexts ? /checkRequirements '> OfilterPluginDefinitionsByContexts = /getDataDefinition < 'addConstraint ; )setConstraints : 'getConstraint 9 +setDefaultValue 8 +getDefaultValue 7 #setRequired 6 !isRequired 5 #setMultiple 4 !isMultiple 3 )setDescription    T pZ:+rR6|dN4lS7!gN)	





v
\
=

						t	_	G	1	jO:{bB2qYE1yhZE0!oZC. |[F1!{i\J9$sT          { 9setRedirectDestination z 9getRedirectDestination y 3getDestinationArray 	x set 	w get v !getAsArray u 'preLoadRoutes t #processPath s =getInternalPathFromRoute r %processRoute q getRoute p getRoutes 
o dump n addRoutes m /setRequestContext l /getRequestContext k isLocal j -setLinkGenerator i -getLinkGenerator h l g !getFilters f !setFilters e enhance d %getEnhancers c %setEnhancers b =getRouteMatchFromRequest a 3getParentRouteMatch ` 3getMasterRouteMatch _ 'getRouteMatch ^ 5getCurrentRouteMatch ] -getRawParameters \ +getRawParameter [ 'getParameters Z %getParameter Y )getRouteObject X %getRouteName W applies V filter U #unserialize T serialize S +getRequirements R #getDefaults Q !getOptions P /getPatternOutline O #getNumParts N getFit M %fromResponse L %isAdminRoute K match J generate I 1getRouteCollection H #checkAccess G %matchRequest F !getContext E !setContext D __call C #__construct B )sortProcessors A #getOutbound @ #addOutbound ? #__construct > +processOutbound = build < setTitle ; )setMainContent : 3processPlaceholders 9 9addPlaceholderStrategy 8 process 7 7buildPageTopAndBottom 6 ?invokePageAttachmentHooks 5 prepare 4 ;determineTargetSelector 3 -drupalRenderRoot 2 )renderResponse 1 #__construct 0 'processWeight / 3processVerticalTabs . 7preRenderVerticalTabs - %preRenderUrl , #validateUrl + 1preRenderTextfield * %preRenderTel ) 1processTableselect ( 5preRenderTableselect ' )preRenderTable & 'validateTable % %processTable $ 5preRenderCompactLink # )renderMessages " 3generatePlaceholder ! +preRenderSelect   'processSelect  +preRenderSearch  %processGroup  /preRenderAjaxForm  +processAjaxForm  )preRenderGroup  )preRenderRange  'processRadios  )preRenderRadio  3validateMatchedPath  ;validatePasswordConfirm  9processPasswordConfirm  /preRenderPassword  )preRenderPager  +preRenderNumber  )validateNumber  3validateMachineName  1processMachineName  'preRenderLink  ;preRenderInlineTemplate " EpreRenderConditionalComments  -preRenderHtmlTag 
 +preRenderHidden 	 3processAutocomplete  +validatePattern  )processPattern  'preRenderFile  #processFile  )preRenderEmail  'validateEmail  'setAttributes  3preRenderDropbutton   -preRenderDetails  'preRenderDate ~ #processDate } -processContainer #| GpreRenderCompositeFormElement { )preRenderColor z 'validateColor y /processCheckboxes x +processCheckbox w /preRenderCheckbox v 'valueCallback u +preRenderButton t 'processButton  s ApreRenderActionsDropbutton r )processActions q getInfo p 1ensureMarkupIsSafe o 9xssFilterAdminIfUnsafe n ;mergeBubbleableMetadata m 3replacePlaceholders l ;setCurrentRenderContext k ;getCurrentRenderContext j 9executeInRenderContext i -hasRenderContext h doRender g render f /renderPlaceholder e #renderPlain d !renderRoot c update b ;getCacheableRenderArray a 'createCacheID ` )maxAgeToExpire _ %toRenderable $^ IgetFromPlaceholderResultsCache "] EcreatePlaceholderAndRemember 	\ set 	[ get     qaI8x\7 r[D0sVJ9!	yn]G/






u
Y
F
3

 						{	j	W	J	7	$	wiXK8){aM=.
hQ4  jU=%lXE1	}gRB+~kRA.                 . 1getNumberOfPlurals - %formatPlural , t + )getPluralIndex * render  ) AcreateFromTranslatedString ( #__construct ' +registerWrapper & !unregister % register $ -addStreamWrapper # !getWrapper " getClass ! getViaUri   %getViaScheme  +getDescriptions  getNames  #getWrappers  baseUrl  basePath  )getExternalUrl  )getDescription  getName  %dir_closedir  'dir_rewinddir  #dir_readdir  #dir_opendir  url_stat  dirname  /stream_set_option  #stream_cast  %stream_close  #stream_stat  #stream_tell  #stream_seek  !stream_eof 
 #stream_read 	 %getLocalPath  realpath  getTarget  getUri  setUri  -getDirectoryPath  getType  rmdir  mkdir   rename  unlink ~ +stream_truncate } +stream_metadata | %stream_flush { %stream_write z #stream_lock y #stream_open x !resetCache w )deleteMultiple v delete u #setMultiple 	t set s #getMultiple 	r get q #__construct p 5setSettingsOnRequest o )getContentType n )registerFormat m handle l #__construct k 'getApcuPrefix j #getHashSalt i !initialize h getAll 	g get f __sleep e __clone d #getInstance c exempt b applies a #__construct ` /isSessionWritable _ 1setSessionWritable ^ )getRoleStorage ] 5migrateStoredSession \ 1getSessionDataMask [ /isSessionObsolete Z isCli Y 3setWriteSafeHandler X delete W !regenerate 
V save U startNow T start S gc R destroy Q close P write 
O read 
N open M /drupalValidTestUa L +getCookieDomain K /getUnprefixedName J getName I !getOptions H !hasSession 
G hash F !doGenerate E generate D 1clearCsrfTokenSeed C -getCsrfTokenSeed B -setCsrfTokenSeed A !switchBack @ switchTo ? #__construct > )loadUserEntity = 3setInitialAccountId < !getAccount ; !setAccount : 3getLastAccessedTime 9 #getTimeZone 8 getEmail 7 )getDisplayName 6 )getAccountName 5 #getUsername 4 ?getPreferredAdminLangcode 3 5getPreferredLangcode 2 #isAnonymous 1 +isAuthenticated 0 'hasPermission / getRoles . id - 3getSubscribedEvents , #onException + -copyRawVariables * #__construct ) enhance ( applies ' !finalMatch & +setUrlGenerator % +getUrlGenerator $ redirect 	# url " 5getRouteDebugMessage ! supports   /generateFromRoute  !doGenerate  -getPathFromRoute  5isStrictRequirements  7setStrictRequirements  isSafe  3setTrustedTargetUrl  #alterRoutes  )getRoutesCount  )getRoutesPaged  reset  %getAllRoutes  ?routeProviderRouteCompare  +getRoutesByPath  1getRoutesByPattern  5getCandidateOutlines  -getRoutesByNames  )getRouteByName " EgetRouteCollectionForRequest  3getSubscribedEvents  -onFinishedRoutes  'onAlterRoutes 
 onRequest 	 /getParameterNames  /createFromRequest  9getPathWithoutDefaults  compile  3getRouteDefinitions  destruct  +rebuildIfNeeded  rebuild  -setRebuildNeeded   !isCleanUrl  1setCompleteBaseUrl ~ 1getCompleteBaseUrl } #fromRequest | -fromRequestStack    l n^P>&vS>!oWC2ydN6~nW< 







~
j
V
B
5
'
							|	c	O	?	0		
xdTD2!yiL0hZI# fE,nYE'paF2
q]J6% l` 'addConstraint _ )setConstraints ^ 'getConstraint ] )getConstraints \ !setSetting [ !getSetting Z #setSettings Y #getSettings X setClass W getClass V #setRequired U !isRequired T #setComputed S !isComputed R #setReadOnly Q !isReadOnly P isList O )setDescription N )getDescription M setLabel L getLabel K #setDataType J #getDataType I #__construct H 1createFromDataType G create F isEmpty E toArray D 'getProperties 	C set 	B get A __sleep @ 3getMainPropertyName ? 7getPropertyDefinition > 9getPropertyDefinitions = 7readLanguageOverrides < #__construct ; %getCacheTags : getTheme 9 5getSortedNegotiators 8 'addNegotiator 7 alter 6 'alterForTheme 5 render 4 )setActiveTheme 3 -resetActiveTheme 2 )hasActiveTheme 1 -setThemeRegistry 0 =prepareStylesheetsRemove #/ GresolveStyleSheetPlaceholders . 'getExtensions - )getActiveTheme , +loadActiveTheme + 5getActiveThemeByName * initTheme ) #checkAccess ( access #' GgetPrefixGroupedUserFunctions & destruct % reset $ 5postProcessExtension # 1completeSuggestion " -processExtension ! build   #getBaseHook  setCache  !getRuntime 	 get 
 init  +setThemeManager  3getMissingThemeName  5determineActiveTheme  applies  1getLibrariesExtend  5getLibrariesOverride  !getRegions  'getBaseThemes  5getStyleSheetsRemove  %getLibraries  %getExtension  getOwner  getEngine  getPath  getName  #__construct  __invoke 
 =discoverServiceProviders 
	 boot  /createFromRequest  #__construct  %findTemplate  isFresh  #getCacheKey  getSource  exists  addPath   #__construct  -checkTransString ~ getTag } %decideForEnd | 'decideForFork { parse z 1checkMethodAllowed y 5checkPropertyAllowed x 'checkSecurity w %getTimestamp v write 
u load t #generateKey s #getPriority r #doLeaveNode q #doEnterNode p 'compileString o compile n safeJoin m renderVar l %escapeFilter k /escapePlaceholder j 'attachLibrary i 3isUrlGenerationSafe h 1getActiveThemePath g )getActiveTheme f getLink e getUrl d getPath c getName b +getTokenParsers a +getNodeVisitors ` !getFilters _ %getFunctions ^ -setDateFormatter ] +setThemeManager \ +setUrlGenerator [ 'setGenerators Z %renderInline Y -getTemplateClass X value W render V 'exchangeArray U 'jsonSerialize T storage S #getIterator R __clone Q toArray P !__toString O hasClass N #removeClass M +removeAttribute L %setAttribute K addClass J %offsetExists I #offsetUnset H 5createAttributeValue G offsetSet F offsetGet E #__construct D reset C 5getStringTranslation B %filesToArray  A AgetTranslationFilesPattern @ 5findTranslationFiles ? #getLanguage > #__construct = reset < 1setDefaultLangcode ; #doTranslate : +sortTranslators 9 'addTranslator 8 +translateString 7 translate 6 count 5 __sleep 4 %getArguments 3 !getOptions 2 getOption 1 7getUntranslatedString 0 5setStringTranslation / 5getStringTranslation    _ cG+{_E*w`H1 wfL9)lW0	




q
`
O
=
&
									z	f	T	B	/		y^H8
cK9)yiXF2!oR9dO=&aE(tR:#n_                create % KfilterOutInvokedUpdatesByModule & MscanExtensionsAndLoadUpdateFiles  =getModuleUpdateFunctions   9registerInvokedUpdates ! CgetPendingUpdateInformation ~ )loadUpdateFile } +loadUpdateFiles | ?getPendingUpdateFunctions !{ CgetAvailableUpdateFunctions z #__construct y %handleAccess x /setupRequestMatch w +shutdownSession v #bootSession u handleRaw t handle s 5cacheDrupalContainer r 3initializeContainer q =discoverServiceProviders p 5getCascadingStrategy o 5getTraversalStrategy n )getConstraints m +findConstraints l accept k %getTypedData j )hasMetadataFor i )getMetadataFor h inContext g %startContext f 7validatePropertyValue e -validateProperty d 3validateConstraints c %validateNode b 'createContext a 1getMetadataFactory ` 3isObjectInitialized _ ;markObjectAsInitialized ^ -isGroupValidated ] 5markGroupAsValidated \ 'validateValue [ 7isConstraintValidated Z ?markConstraintAsValidated Y )addViolationAt X +getPropertyPath W +getPropertyName V %getClassName U getGroup T #getMetadata S getObject R getValue Q getRoot P %getValidator O 'getViolations N )buildViolation M 'setConstraint L setGroup K setNode J validate I %addViolation H setCause G setCode F setPlural E +setInvalidValue D 5setTranslationDomain C 'setParameters B %setParameter A atPath @ #__construct ? #setDuration> #getDuration= #setDateTime< #getDateTime; /applyDefaultValue : toArray 9 'getProperties 8 1writePropertyValue 7 3getTargetIdentifier 6 id 5 __clone 4 onChange 3 filter 2 isEmpty 1 count 0 #getIterator / /getItemDefinition . !createItem - !appendItem , offsetSet + offsetGet * #offsetUnset ) %offsetExists ( first ' rekey & !removeItem 	% set 	$ get # #setDuration " #getDuration ! #setDateTime   #getDateTime  )getCastedValue  getString  setValue  getValue  3getTypedDataManager  3setTypedDataManager   AgetCanonicalRepresentation  9clearCachedDefinitions  7getDefaultConstraints $ IgetValidationConstraintManager $ IsetValidationConstraintManager  %getValidator  %setValidator  3getPropertyInstance  #getInstance  =createListDataDefinition  5createDataDefinition  getParent  +getPropertyPath  getRoot  getName 
 !setContext 	 /applyDefaultValue  validate  /getDataDefinition  3getPluginDefinition  #getPluginId  )createInstance  onChange  )isTranslatable  /removeTranslation   )addTranslation  )hasTranslation ~ +getUntranslated } )getTranslation | ;getTranslationLanguages { -isNewTranslation z 5isDefaultTranslation y language x )getCastedValue w 1getSettableOptions v /getSettableValues u 1getPossibleOptions t /getPossibleValues s 3setMainPropertyName r 7setPropertyDefinition q filter p !removeItem o !appendItem n first m /setItemDefinition l /getItemDefinition k 1createFromItemType j 3getTargetIdentifier i 3setTargetDefinition h 3getTargetDefinition g getString f setValue e getValue d getTarget c #offsetUnset b offsetSet a %offsetExists    | q_F-x`I:*
kS?&l\O8(tX>!







w
f
M
2


									q	d	S	?	"	qT5gY>0qbS<%
iXG7'p\E-	xhYI4$p^P<'|            8 'getQueuedTime 7 1getLastCheckedTime 6 )getRefreshRate 5 getUrl 4 5baseFieldDefinitions 3 !postDelete 2 preDelete 1 preCreate 0 %refreshItems / #deleteItems . label - feedTitle , pageLast + 'adminOverview * #feedRefresh ) 'buildPageList ( feedAdd ' create & #__construct % 5executeFeedItemQuery $ !loadByFeed # loadAll " %getItemCount ! refresh   delete  setGuid  getGuid  'setPostedTime  'getPostedTime  setAuthor  getAuthor  setLink  getLink  getTitle  setFeedId  getFeedId  +buildComponents  )createInstance  #__construct  ?getSharedTableFieldSchema  3getFeedIdsToRefresh  %refreshItems  #deleteItems  +setLastModified  +getLastModified  setEtag 
 getEtag 	 setHash  getHash  setImage  getImage  )setDescription  )getDescription  'setWebsiteUrl  'getWebsiteUrl  'setQueuedTime   'getQueuedTime  1setLastCheckedTime ~ 1getLastCheckedTime } )setRefreshRate | )getRefreshRate { setUrl z getUrl y setTitle x -getEditFormRoute w /getCanonicalRoute 
v save u /checkCreateAccess t #checkAccess s %getViewsData r setUp q 5testActionLocalTasks p setUp o 1testActionSettings n setUp m ;testActionConfiguration l %testBulkForm k 3testActionUninstall j getIds i fields h query g access f ;submitConfigurationForm e ?validateConfigurationForm d 9buildConfigurationForm c 5defaultConfiguration b execute a create ` #__construct _ %getCancelUrl ^ !submitForm ] buildForm \ getFormId [ create Z #__construct Y render X 5getDefaultOperations W #buildHeader V buildRow 
U load T )createInstance 
S save R !submitForm Q %validateForm P actions O exists 
N form M buildForm L create K #__construct J #validatedBy I 1getRequiredOptions H -getDefaultOption G validate F #__construct E create D !getOptions C /processParameters B getLocale A setLocale @ #transChoice ? trans > #getInstance = 5getDefinitionsByType < /processDefinition ; 3registerDefinitions : create 9 %getDiscovery 8 #__construct 7 /addOptionDefaults 6 'buildLocalUrl 5 -buildExternalUrl 4 assemble 3 resetInfo 2 setInfo 1 getInfo 0 )findWithPrefix 
/ scan . replace - #updateCache , -resolveCacheMiss 	+ get 	* has ) 1initializeRegistry ( /filterProjectInfo ' )getProjectName & +processInfoList % generate $ -generateFromLink # #__construct " +formatBacktrace ! 'getLastCaller   3renderExceptionSafe  +decodeException  !postUpdate  %getBackupDir  !makeBackup  /makeWorldReadable  ;prepareInstallDirectory  install  update  )getInstallArgs  +getProjectTitle  )getProjectName  -getExtensionInfo  %findInfoFile  ;getUpdaterFromDirectory  factory  #__construct  #postInstall  +postUpdateTasks  -postInstallTasks  -getSchemaUpdates  canUpdate 
 1canUpdateDirectory 	 #isInstalled " EgetRootDirectoryRelativePath  3getInstallDirectory  alter  register    u yjS8"wgWE3x]I2~a?!zfW8







q
T
@
.

								t	`	L	=	*		iTA.kT?'qT?-mU>'{fQC$zY8vVF7#
u                         $b ItestAggregatorSourceLocalTasks a =getAggregatorAdminRoutes #` GtestAggregatorAdminLocalTasks _ setUp ^ -setConfiguration ] -getConfiguration \ #postProcess [ delete Z process Y ;submitConfigurationForm X 9buildConfigurationForm W 9getEditableConfigNames V #__construct U create T parse S fetch R %testRedirect Q testFeed P 9testAggregatorItemView O =testAggregatorItemFields N =testAggregatorFeedFields M setUp L 'testMigration K 1testAggregatorItem J =testAggregatorFeedImport I setUp H 1testAggregatorItem G =testAggregatorFeedImport F 9testAggregatorSettings E setUp D %testItemStub C %testFeedStub B setUp A )testUpdateFeed @ 1testUpdateFeedItem ? 1testEntityCreation > )testOpmlImport = -submitImportForm < =validateImportFormFields ; )openImportForm : )testValidation 9 +testPostProcess 8 !testDelete 7 #testProcess 6 +testInvalidFeed 5 -testRedirectFeed 4 9testHtmlEntitiesSample 3 )testAtomSample 2 -testRSS091Sample 1 -testFeedLanguage 0 testfetch / %createEntity . 5testFeedUpdateFields - )testDeleteFeed , 1testDeleteFeedItem + 3testStringFormatter * /enableTestPlugins ) /createSampleNodes ( 7getHtmlEntitiesSample ' 'getAtomSample & +getRSS091Sample % %getEmptyOpml $ )getInvalidOpml # %getValidOpml " !uniqueFeed ! +updateAndDelete   +deleteFeedItems  +updateFeedItems  ;getDefaultFeedItemCount  /getFeedEditObject  -getFeedEditArray  !deleteFeed  !createFeed  %testFeedPage  )testBlockLinks  testCron  -testOverviewPage  -testSettingsPage  +testAddLongFeed  7testFeedLabelEscaping  #testAddFeed  setUp  render  !titleQuery  create  #__construct  #processItem  getIds 
 fields 	 query  %isApplicable  %viewElements  %settingsForm  +defaultSettings  %getCacheTags  build  #blockSubmit  blockForm   #blockAccess  5defaultConfiguration ~ create } #__construct | -setConfiguration { -getConfiguration z #postProcess y delete x process w ;submitConfigurationForm v 9buildConfigurationForm u 9getEditableConfigNames t create s #__construct r parse q -RequestInterface p fetch o create n #__construct m delete l #postProcess k process j parse i fetch h 7calculateDependencies g ?validateConfigurationForm f 5defaultConfiguration e #__construct d 9getEditableConfigNames c parseOpml b %validateForm a buildForm ` getFormId _ create ^ #__construct ] !submitForm \ )getConfirmText [ #getQuestion Z 1getDeletionMessage Y )getRedirectUrl X %getCancelUrl W buildUri V =getCacheTagsToInvalidate U postSave T setGuid S getGuid R 'setPostedTime Q 'getPostedTime P setAuthor O getAuthor N setLink M getLink L getTitle K setFeedId J getFeedId I +setLastModified H setEtag G setHash F setImage E )setDescription D 'setWebsiteUrl C 'setQueuedTime B 1setLastCheckedTime A )setRefreshRate @ setUrl ? setTitle > +getLastModified = getEtag < getHash ; getImage : )getDescription 9 'getWebsiteUrl    s yeI5$zgS<'}fXC,
q[7sdWC"






z
i
S
3
								r	Z	E	0	eQ?!oS6"qQ2~j[:& o`Q>'cJ'rNs                           
 /testDefaultBlocks	 #deleteTests loadTests #createTests 'testBlockCRUD 5testBlockRenderOrder ?testMultipleLanguageTypes/ _testLanguageBlockVisibilityLanguageDelete! CtestLanguageBlockVisibility )testBlockLinks  =testBlockInInvalidRegion 1testBlockInterface.~ ]testCacheTagInvalidationUponInstallation} testHtml| ;testBlockOperationAlter { AtestBlockNotInHiddenRegionz -testPlaceholdersy 7testBlockConfigSchemax -testCachePerPagew -testCachePerUserv #testNoCacheu 5testCachePermissionst -testCachePerRoles setUpr 3testSevenAdminThemeq )testAdminThemep !prepareRowo getIdsn fieldsm 1initializeIteratorl queryk transformj createi #__constructh #getEntityIdg buildf setTitlee )setMainContentd createc #__constructb =getDerivativeDefinitionsa create` #__construct_ %getCancelUrl ^ 3getSubscribedEvents  ] AonSelectPageDisplayVariant \ 5createDuplicateBlock [ setWeight Z setRegion Y 9conditionPluginManager X 9getVisibilityCondition W ;getVisibilityConditions V 3setVisibilityConfig U 'getVisibility T postSave S 7calculateDependencies 
R sort Q label P getWeight O getTheme N getRegion M #getPluginId L 5getPluginCollections K 3getPluginCollection J getPlugin I %autocomplete H listing G /buildLocalActions F !listBlocks E 7getVisibleRegionNames 
D demo C create B #__construct A 7blockAddConfigureForm @ preRender ? #lazyBuilder > ;buildPreRenderableBlock = %viewMultiple 
< view ; +buildComponents : ?getVisibleBlocksPerRegion 9 -initializePlugin 8 -systemRegionList 7 5getDefaultOperations 6 %getEntityIds 5 %getThemeName 4 +buildBlocksForm 3 buildForm 2 getFormId 1 render 0 5createDuplicateBlock / setWeight . setRegion - getWeight , 3setVisibilityConfig + 9getVisibilityCondition * ;getVisibilityConditions ) 'getVisibility ( getTheme ' getRegion & #getPluginId % getPlugin $ 5getUniqueMachineName # !submitForm " 1validateVisibility ! %validateForm   actions  =buildVisibilityInterface  #themeSwitch 
 form  create % KmergeCacheabilityFromConditions  #checkAccess  #__construct  )createInstance " EtestUnauthorizedErrorMessage  !testLocale " EtestPerUserLoginFloodControl ! CtestGlobalLoginFloodControl  'testBasicAuth  3getBasicAuthHeaders /basicAuthPostForm %basicAuthGet check  1challengeException  %authenticate  applies  #__construct 
 setUp 	 )testUnbannedIp  %testBannedIp  setUp  )testBlockedIPs  setUp  ;testIPAddressValidation  getIds  fields  query   import  fields ~ getIds } create | #__construct { %getCancelUrl z )getConfirmText y #getQuestion x !submitForm w %validateForm v buildForm u getFormId t create s #__construct r handle q findById p unbanIp o banIp n findAll m isBanned l #__construct k 3getSubscribedEvents j #onTerminate i #__construct h setUp g setUp f setUp e -testSettingsForm d setUp c ?getAggregatorSourceRoutes    ? yR@!mM1fK)jI2q\A3





l
Q
1

 					}	k	Y	F	1		yhXJ(oC5hV+~^=/yhS?.w^K6'gX;$}nQ?             blockForm 5defaultConfiguration create #__construct create #__construct buildForm ;shouldCreateNewRevision )getDescription )setRevisionLog setInfo )getRevisionLog 5baseFieldDefinitions delete +preSaveRevision %getInstances postSave getTheme setTheme +createDuplicate +getAddFormTitle addForm	
 add	 #__construct create %getViewsData !alterBuild -getBuildDefaults %viewMultiple
 view getTitle ;shouldCreateNewRevision  )getDescription +entityFormTitle~ +entityFormAlter} 5getDefaultOperations| buildRow{ #buildHeaderz %getInstancesy getThemex setThemew )setRevisionLogv setInfou )getRevisionLog
t save
s formr 'prepareEntityq createp #__constructo #checkAccessn setUpm =testTransformPhpDisabledl ;testTransformPhpEnabled)k StestTransformMultiplePagesWithFront&j MtestTransformSinglePageWithFronti 3testTransformNoDatah setUp+g WtestTransformSameThemeRegionNotExists(f QtestTransformSameThemeRegionExistse transform!d CtestBuildWithoutMainContentc testBuildb 'providerBuilda 3setUpDisplayVariant#` GproviderTestBlockAdminDisplay_ 7testBlockAdminDisplay^ =testBlockAdminLocalTasks] setUp)\ SproviderTestAutocompleteSuggestions![ CtestAutocompleteSuggestions.Z ]testGetVisibleBlocksPerRegionWithContextY 5providerBlocksConfig#X GtestGetVisibleBlocksPerRegionW =testGetUniqueMachineNameV ?testCalculateDependenciesU setUpT summaryS evaluateR -getCacheContextsQ #blockSubmitP blockFormO 5defaultConfigurationN )getCacheMaxAgeM buildL #blockAccessK createJ #__constructI %validateFormH !submitFormG buildFormF getFormIdE /testMultipleFormsD 5getAvailableContextsC 1getRuntimeContextsB #__constructA 5determineActiveTheme@ applies? =testBlockContextualLinks
> ;testBlockEmptyRendering
= 1testBlockRendering
< 1testViewsBlockForm
; 9testDeleteBlockDisplay
: /testBlockCategory
9 setUp
8 +testUpdateHookN	7 5setDatabaseDumpFiles	6 1testBlockMigration5 %assertEntity4 setUp3 1testBlockMigration2 %assertEntity1 setUp0 =testNonDefaultBlockAdmin/ ?testNewDefaultThemeBlocks. 1doBlockContentTest- !doMenuTest, !doViewTest+ %testBlockXss* /testXssInCategory) )testXssInTitle( =testNoUnexpectedEscaping' 3getBlockRenderArray1& cassertBlockRenderedWithExpectedCacheability$% ItestBlockViewBuilderBuildAlter#$ GtestBlockViewBuilderViewAlter# ?verifyRenderCacheHandling" ?testBlockViewBuilderCache! 1testBasicRendering!  CtestBlockPlacementIndicator ?testMachineNameSuggestion 9testContextAwareBlocks' OtestContextAwareUnsatisfiedBlocks 9testCandidateBlockList 5testBlockAdminUiPage 3testBlockDemoUiPage ;testBlockUserRoleDelete +testBlockAccess 1testUninstallTheme 1testThemeAdminLink 1testBlockCacheTags /moveBlockToRegion 1testHideBlockTitle 'testThemeName 9testBlockThemeSelector testBlock$ ItestBlockVisibilityListedEmpty ?testBlockToggleVisibility 3testBlockVisibility# GtestBlockThemeHookSuggestions  AtestSystemBrandingSettings   Y taSD5'	r`R1lWA.{`J+bK=






d
V
B
)
 					q	c	<			p^F*cH1nYD.kN,x_G8)s_N;
xcP9xY                   ? 9getEditableConfigNames,> %getCancelUrl,= #getQuestion,< )getConfirmText,; )getDescription,: delete,
9 save,8 actions,
7 form,6 'getBaseFormId,5 1bookAdminTableTree,4 )bookAdminTable,3 !submitForm,2 %validateForm,1 buildForm,0 getFormId,/ create,. #__construct,- !bookExport+, !bookRender++ 'adminOverview+* create+) #__construct+( 5getCacheableMetadata*' !getContext*& getLabel*% #__construct*$ access)# #__construct)" %hasBookNodes(! +hasBookOutlines(  validate( )getBookSubtree( ?countOriginalLinkChildren( 3updateMovedChildren( update( insert( +getBookMenuTree( -loadBookChildren( delete( 7getChildRelativeDepth( %loadMultiple( hasBooks( getBooks( 'childrenLinks( nextLink( prevLink( +bookSubtreeData( ?buildBookOutlineRecursive( 5buildBookOutlineData( /bookLinkTranslate( 7doBookTreeCheckAccess( 3bookTreeCheckAccess(
 !setParents(	 5updateOriginalParent( %updateParent( %moveChildren( %saveBookLink( 'loadBookLinks( %loadBookLink( %flatBookTree( +bookTreeGetFlat( =bookTreeCollectNodeLinks(  +doBookTreeBuild( 'bookTreeBuild(~ !buildItems(} )bookTreeOutput(| /getActiveTrailIds({ +bookTreeAllData(z )deleteFromBook(y 1getTableOfContents(x 9recurseTableOfContents(!w CaddParentSelectFormElements(v )getBookParents(u 'updateOutline(t 5checkNodeIsRemovable(s +addFormElements(r ?findChildrenRelativeDepth(q 3getParentDepthLimit(p +getLinkDefaults(o loadBooks(n #getAllBooks(m )bookNodeExport(l )exportTraverse(k )bookExportHtml(j build(i applies(h #__construct(g setUp'f setUp&"e EgetBlockContentListingRoutes%$d ItestBlockContentListLocalTasks%c setUp%*b UtestBlockContentRevisionRelationship$a 'testFieldType$` 9createBlockContentType$_ 1createBlockContent$^ assertIds$&] MtestBlockContentViewTypeArgument$\ -assertPageCounts$[ #testFilters$Z setUp$Y =testCustomBlockMigration#X setUp#W 1testBlockMigration"V setUp"#U GtestBlockContentTypeMigration!T +testStubSuccess!S +testStubFailure!(R QtestBlockContentBodyFieldMigration!Q setUp!P )testValidation O ?testsBlockContentAddTypes "N EtestBlockContentTypeDeletion !M CtestBlockContentTypeEditing "L EtestBlockContentTypeCreation K 7doTestTranslationEdit J 1testDisabledBundle I 9doTestBasicTranslation H 'getEditValues G 1getNewEntityValues F =getTranslatorPermissions E #setupBundle D 9createBlockContentType C 1createBlockContent "B EtestBlockContentSaveOnInsert A 9testDeterminingChanges @ !testImport ? 'testRevisions > %testPageEdit = #testListing < 9testConfigDependencies ; +testBlockDelete : ;testFailedBlockCreation %9 KtestDefaultBlockContentCreation /8 _testBlockContentCreationMultipleViewModes 7 =testBlockContentCreation 6 setUp 5 testBlock %4 KgetAdditionalCacheTagsForEntity %3 KgetAccessCacheContextsForEntity 2 %createEntity 1 render0 create/ #__construct. getIds- fields, query+ getIds* fields) query( !getOptions' =getDerivativeDefinitions& create% #__construct$ getEntity# build" #blockAccess! #blockSubmit   O s\D/!bL;%nU=$n]O4ykK0







t
`
K
1
							p	M	/		t_L4p`K9&kO3ydF$a;e;vcQ<.hO                 Z -checkFieldAccess@Y /checkCreateAccess@X #checkAccess@W ;testLogoSettingOverride?V )testValidColor?U !_testColor?T testColor?S -testColorPreview? R AtestValidColorConfigSchema?Q setUp?P %settingsForm>O isEnabled>N !getButtons>M getConfig>L getFile>K !isInternal>J %getLibraries>I +getDependencies>H 9testImageButtonDisplay=!G CgetDefaultContentsCssConfig=F ;getDefaultToolbarConfig='E OgetDefaultDisallowedContentConfig=$D IgetDefaultAllowedContentConfig=C =getDefaultInternalConfig=B 9assertCKEditorLanguage=A /testJSTranslation=@ 'testLanguages=? =testStylesComboGetConfig=> 7testInternalGetConfig=#= GtestBuildContentsCssJSSetting=< ?testBuildToolbarJSSetting=; /testGetJSSettings=: 1testEnabledPlugins=9 -getThingsToCheck=8 #testLoading=7 'testNewFormat=6 1testExistingFormat=5 setUp=4 ?buildContentsCssJSSetting<3 7buildToolbarJSSetting<2 %getLibraries<1 %getLangcodes<0 'getJSSettings</ 1settingsFormSubmit<. %settingsForm<- 1getDefaultSettings<, create<+ #__construct<* =generateStylesSetSetting;) 3validateStylesValue;( 3generateACFSettings;' ?generateFormatTagsSetting;& create;% #__construct;$ isEnabled;# +getDependencies;" !isInternal;!! CvalidateImageUploadSettings;  %settingsForm; !getButtons; getConfig; %getLibraries; getFile; =injectPluginSettingsForm9 7getEnabledPluginFiles9 #__construct9 getConfig9 getFile9 isEnabled9 %settingsForm9 !getButtons9 %getLibraries9 +getDependencies9 !isInternal9 %testGetGroup8 +testGetProvider8 1testGetMultipliers8 /testGetMediaQuery8 'testGetWeight8 %testGetLabel8
 +setupBreakpoint8	 setUp8 5testBreakpointGroups7 7testModuleBreakpoints7  AtestCustomBreakpointGroups7 5testThemeBreakpoints7 setUp7 'getGroupLabel6 9clearCachedDefinitions6 /getGroupProviders6  getGroups6 7getBreakpointsByGroup6~ )providerExists6} /processDefinition6| %getDiscovery6{ #__construct6z getGroup6y #getProvider6x )getMultipliers6w 'getMediaQuery6v getWeight6u getLabel6t setUp5s /getBookNodeRoutes4r 9testBookNodeLocalTasks4q 1getBookAdminRoutes4p ;testBookAdminLocalTasks4o setUp4 n AtestValidateOutlineStorage3(m QtestValidateEntityQueryWithResults3+l WtestValidateEntityQueryWithoutResults3k 3testValidateNotBook3 j AproviderTestGetBookParents3i 1testGetBookParents3h setUp3g testBook2f -testBookSettings2e setUp2d /testBookUninstall1c 9testHookNodeLoadAccess1b =testAdminBookNodeListing1a 5testAdminBookListing1` +testBookListing1_ -testSaveBookLink1^ +testBookOutline1] -testBookOrdering1\ )testBookDelete10[ atestNavigationBlockOnAccessModuleInstalled1Z ;testBookNavigationBlock1Y )testBookExport1X )createBookNode1W 9generateOutlinePattern1V 'checkBookNode1U testBook1T 'testEmptyBook1$S ItestBookNavigationCacheContext1R !createBook1Q setUp1P 5setStringTranslation0O validate0N )lazyLoadItself0M #__construct0L fields/K getIds/J query/I %updateEntity.H +getEntityTypeId.G )getCacheMaxAge-F -getCacheContexts-E build-D #blockSubmit-C blockForm-B 5defaultConfiguration-A create-@ #__construct-   l mQ:*}hUB,m[F4"lS7*yYD1





w
`
B
%

 							r	[	B	$	qVD'}hS@-lXF1sUA2 x]B2# sJ1cG8{l                   createI #__constructI /massageFormValuesH  #formElementH 3generateSampleValueG~ 3storageSettingsFormG} isEmptyG| -mainPropertyNameG{ /fieldSettingsFormGz schemaGy 3propertyDefinitionsGx 5defaultFieldSettingsGw 9defaultStorageSettingsGv +settingsSummaryFu %settingsFormFt #__constructFs createFr +defaultSettingsFq %isApplicableFp %viewElementsFo -entityQueryAlterE&n MvalidateReferenceableNewEntitiesEm +createNewEntityEl -buildEntityQueryEk ;submitConfigurationFormDj 9buildConfigurationFormDi 5defaultConfigurationDh createDg #__constructDf accessDe executeDd 1logDeletionMessageCc 1getDeletionMessageCb )getDescriptionCa )getRedirectUrlC` )getConfirmTextC_ %getCancelUrlC^ #getQuestionC] !submitFormC\ %validateFormC[ buildFormCZ getFormIdCY createCX #__constructCW 7getTargetEntityTypeIdBV )setDescriptionBU )getDescriptionBT getTypeIdBS setOwnerBR !setOwnerIdBQ !getOwnerIdBP getOwnerBO preCreateBN setThreadBM getThreadBL %setPublishedBK getStatusBJ #isPublishedBI )setCreatedTimeBH )getCreatedTimeBG #setHostnameBF #getHostnameBE #setHomepageBD #getHomepageBC )getAuthorEmailBB 'setAuthorNameBA 'getAuthorNameB@ !setSubjectB? !getSubjectB> %getFieldNameB= %setFieldNameB< =getCommentedEntityTypeIdB; 5getCommentedEntityIdB: 1getCommentedEntityB9 -getParentCommentB8 -hasParentCommentB7 9bundleFieldDefinitionsB6 5baseFieldDefinitionsB5 permalinkB4 1referencedEntitiesB3 !postDeleteB2 /releaseThreadLockB1 postSaveB0 preSaveB / ArenderNewCommentsNodeLinksA. +replyFormAccessA- %getReplyFormA, %redirectNodeA+ 7commentPermalinkTitleA* -commentPermalinkA) )commentApproveA( adminPageA' #__constructA& createA% %getViewsData@$ !alterBuild@# +buildComponents@" -getBuildDefaults@! buildRow@  #buildHeader@ 5getDefaultOperations@ 7getTargetEntityTypeId@ )setDescription@ )getDescription@ 7entityFormEntityBuild@ +entityFormTitle@ +entityFormAlter@ ?getSharedTableFieldSchema@ +getEntitySchema@ 1getUnapprovedCount@ !loadThread@ %getChildCids@ ;getNewCommentPageNumber@ /getDisplayOrdinal@ 7getMaxThreadPerThread@ %getMaxThread@ )createInstance@ update@ )getRankingInfo@ +getMaximumCount@ delete@

 read@	 3getCountNewComments@ -forbiddenMessage@ %addBodyField@ getFields@ ?buildCommentedEntityLinks@ access@ !buildLinks@ #renderLinks@ !renderForm@  getTypeId@ permalink@~ setThread@} getThread@| %setPublished@{ getStatus@z #isPublished@y )setCreatedTime@x )getCreatedTime@w #setHostname@v #getHostname@u #setHomepage@t #getHomepage@s )getAuthorEmail@r 'setAuthorName@q 'getAuthorName@p !setSubject@o !getSubject@n %getFieldName@m %setFieldName@l =getCommentedEntityTypeId@k 5getCommentedEntityId@j 1getCommentedEntity@i -getParentComment@h -hasParentComment@
g save@f preview@e )flagViolations@d 3getEditedFieldNames@c #buildEntity@b actions@
a form@` create@_ %offsetExists@	^ get@] build@\ applies@[ #__construct@   ; vgL>"
xg=)sdWD1rdL.qYC$




i
S
*
					r	U	7	_?&zX>`=&x\A&}Z6"dD%sbT?'mX;                  5testCommentMigrationW %assertEntityW 'testMigrationW 'assertDisplayW setUpW =testCommentFieldInstanceV -testCommentFieldV" EtestCommentEntityFormDisplayV =testCommentEntityDisplayV +testCommentTypeV
 %testCommentsV	 setUpV testStubU setUpU 7assertLengthViolationT )testValidationT& MtestCommentUninstallWithoutFieldT# GtestCommentUninstallWithFieldT ;testCommentTypeDeletionT 9testCommentTypeEditingT  ;testCommentTypeCreationT 7doTestTranslationEditT'~ OtestTranslateLinkCommentAdminPageT} 3doTestAuthoringInfoT| 7doTestPublishedStatusT{ 1getNewEntityValuesTz =getTranslatorPermissionsTy #setupBundleT!x CtestCommentTokenReplacementT w AtestCommentPopulatedTitlesTv 9testCommentEmptyTitlesTu 1assertNoParentLinkTt -assertParentLinkTs 5testCommentThreadingTr 9addDefaultCommentFieldTq /createCommentTypeTp 1setCommentSettingsTo 1setCommentsPerPageTn 3setCommentAnonymousTm )setCommentFormTl /setCommentPreviewTk /setCommentSubjectTj 'deleteCommentT!i CtestCommentFieldNonStringIdT&h MtestCommentNodeCommentStatisticsTg )testCommentRssT f AtestCommentEditPreviewSaveT+e WtestCommentPreviewDuplicateSubmissionTd 1testCommentPreviewTc 1clickLinkWithXPathTb 'testTwoPagersT!a CtestCommentNewPageIndicatorT` 1assertCommentOrderT"_ EtestCommentOrderingThreadingT^ /testCommentPagingT] ?testsNonIntegerIdEntitiesT\ =testCommentFunctionalityT[ 5getUnapprovedCommentTZ ;performCommentOperationT!Y CcommentContactInfoAvailableTX 'commentExistsTW #postCommentTV -testNodeDeletionTU ;testThreadedCommentViewT%T KtestCommentNewCommentsIndicatorT S ArenderNewCommentsNodeLinksTR -testCommentLinksTQ 7testCommentLinksAlterTP 3testCommentLanguageTO +testCommentItemTN ?testAutoFilledHtmlSubjectTM 7testAutoFilledSubjectTL 5testCommentInterfaceT*K UtestCommentInstallAfterContentModuleTJ 9testCommentFieldCreateT)I StestCommentFieldLinksNonDefaultNameTH 9testCommentFieldDeleteTG =testCommentDefaultFieldsT&F MtestAccessToAdministrativeFieldsTE 'testCacheTagsTD 1testCommentClassesT%C KgetAdditionalCacheTagsForEntityT)B SgetAdditionalCacheContextsForEntityTA /testCommentEntityT@ %createEntityT? 5testBookCommentPrintT> 9testRecentCommentBlockT= 'testAnonymousT< +testEditCommentT; -testCommentAdminT: ?testApprovalNodeInterfaceT 9 AtestApprovalAdminInterfaceT8 setUpT#7 GtestCommentUnpublishByKeywordT(6 QtestCommentPublishUnpublishActionsT5 7defaultDisplayOptionsS4 +rowStyleOptionsS3 queryR2 renderQ&1 MbuildOptionsForm_summary_optionsQ0 preRenderQ/ queryP. +getValueOptionsP- createO, #__constructO+ #usesGroupByO* +getDefaultLabelO) !renderLinkO( !getUrlInfoO
' initO& renderO% preRenderO$ queryO# -buildOptionsFormO" 'defineOptionsO! getItemsO  #getSortNameN queryN )defaultActionsN titleN createN #__constructN' OgetAnonymousContactDetailsSettingM validateM createM #__constructM %coversFieldsM 1initializeIteratorL getIdsL fieldsL !prepareRowL queryL +commentPrefixesK 3getCommentVariablesK countK 1initializeIteratorK getIdsK fieldsK
 !prepareRowK	 queryK )processStubRowJ importJ createJ #__constructJ getTitleI   L q[={eW8vZF7*rXD5!
nY?*





q
V
:
$
					t	H	7	q^C*iN9\-}X3lO$tbL-wbKpL                                  !% CtestInstallOtherModuleFirsta$ ?testSimpleModuleOverridesa# ;testSiteNameTranslationa " AtestConfigLanguageOverridea"! EtestUnmetDependenciesInstalla"  EtestPreExistingConfigInstalla) StestIntegrationModuleReinstallationa )installModulesa %testLanguagea 9testDependencyCheckinga6 mtestCollectionInstallationCollectionConfigEntitya+ WtestCollectionInstallationCollectionsa- [testCollectionInstallationNoCollectionsa 9testModuleInstallationa 'testInstalleda setUpSitea errora' OtestInstallProfileConfigOverwritea ;testExtensionValidationa 9testEntityBundleDeletea 1testImportErrorLoga 7prepareSiteNameUpdatea( QtestConfigUninstallConfigExceptiona 5testImportValidationa )testImportDiffa" EtestImportSiteUuidValidationa )testImportLocka
 !testImporta&	 MtestRenameSimpleConfigValidationa 5testRenameValidationa 1testRecreateEntitya" EtestInstallProfileValidationa" EtestConfigGetConfigDirectorya 1testInstallProfilea =testMissingCoreExtensiona 3testUnmetDependencya /testIsInstallablea  #testUpdateda' OtestSecondaryDeletedDeleteeSeconda,~ YtestSecondaryUpdateDeletedDeleteeFirsta,} YtestSecondaryUpdateDeletedDeleterFirsta&| MtestSecondaryWriteSecondaryFirsta${ ItestSecondaryWritePrimaryFirstaz testNeway #testDeletedax 5testSiteUuidValidateaw 5testEmptyImportFailsav %testNoImportau 1testMissingContentat 5testInstallUninstallas /testSerializationar 3testReadWriteConfigaq !testExporta!p CtestExportImportCollectionsao -testExportImportan 7testConfigRenameEventam -testConfigEventsal 1testStorageMethodsak !testCRUDUIaj -testUUIDConflictai testResetah %testCacheHitag 'testNormalizeaf testPagerae testListad !testListUIac 9testFormsWithOverridesab 1testCollectionDiffaa testDiffa)` StestConfigDependencyDeleteFormTraita_ +getDependentIdsa^ ;testContentEntityDeletea] 9testConfigEntityDeletea\ ?testConfigEntityUninstalla[ =testDependencyManagementaZ 'testNonEntityaY 'testDataTypesaX 3testValueValidationaW 1testNameValidationaV testCRUDaU =testConfigEntityOverrideaT 1testConfigOverrideaS setUpaR =assertConfigEntityImportaQ #finishBatch`P %processBatch`O #getQuestion`N %getCancelUrl`M /findConfiguration`L %updateExport`K ;updateConfigurationType`J %validateForm`I create`H #__construct`G !submitForm`F buildForm`E getFormId`
D diff_C )downloadExport_B #__construct_A create_@ #replaceData^? /getCollectionName^> 7getAllCollectionNames^= -createCollection^< deleteAll^; listAll^: decode^9 encode^8 rename^7 delete^6 write^5 %readMultiple^
4 read^3 exists^2 #__construct^1 3getSubscribedEvents^0 =onConfigImporterValidate^/ setUp]. setUp\- testLocks[, 3fetchObjectCallbackZ+ testReadZ* 'testGetFieldsZ) #getMockNodeZ( 3getLinkCombinationsZ' 9testCommentLinkBuilderZ& setUpZ% 'commentReportY$ /testCommentWizardX# !testRssRowX" +testNewCommentsX! -testBlockDisplayX  /testCommentFieldsX %testUsernameX )testCommentRowX 7testCommentRestExportX 7testCommentOperationsX 'testLinkReplyX +testLinkApproveX 5testCommentFieldNameX -assertPageCountsX #testFiltersX setUpX 9testCommentUserUIDTestX   S rY?yS>'tYL=.oYB'
_5 	





w
d
G
1
							d	P	6	$		nYD/"{Y<(r]G(v]E-r[D.u[?'rcRC-vbS     H createqG #__constructqF !submitFormqE buildFormqD getFormIdqC +buildOperationspB listingpA 'displayBundlep
@ loadp? 3setMapperDefinitionp> -sortRowsMultiplep= 'getOperationsp< renderp; itemPagep: createp9 sortRowsp8 #buildHeaderp7 buildRowp6 +getFilterLabelsp5 )createInstancep4 #__constructp3 #__constructo2 accesso1 -findTranslatablen0 +findDefinitionsn/ 3buildDataDefinitionn. /processDefinitionn- !getMappersn, %getDiscoveryn+ )hasTranslationn* +hasTranslatablen) hasScheman( #setLangcoden' #getLangcoden& 'getConfigDatan% getWeightn$ 'addConfigNamen# )getConfigNamesn" )getDeleteRouten! =getDeleteRouteParametersn  1getDeleteRouteNamen %getEditRouten 9getEditRouteParametersn -getEditRouteNamen #getAddRouten 7getAddRouteParametersn +getAddRouteNamen +getOverviewPathn -getOverviewRouten  AgetOverviewRouteParametersn #getBasePathn %getBaseRouten -getBaseRouteNamen 1setRouteCollectionn %processRouten 5getOverviewRouteNamen 9getContextualLinkGroupn 'getOperationsn %getTypeLabeln #getTypeNamen getTypen setTypen
 9getBaseRouteParametersn	 getTitlen setEntityn getEntityn 9populateFromRouteMatchn createn #__constructn 5getConfigAdminRoutesm ?testConfigAdminLocalTasksm setUpm  'isInstallablel ;setEnforcedDependenciesl~ 3onDependencyRemovall} !postDeletel| postSavel
{ sortlz 'getAllFoldersk
y testkx %importDeletekw %importUpdatekv %importCreateku buildRowkt #buildHeaderks existsk
r savekq !changeSizekp !updateSizek
o formkn createkm #__constructkl disablekk enablekj editTitleki /checkCreateAccesskh #checkAccesskg 5getCacheableMetadatajf #isPirateDayje !getContextjd getLabelj&c MisCacheabilityMetadataApplicableib 5getCacheableMetadataia 1createConfigObjecti` )getCacheSuffixi_ 'loadOverridesi^ 5getCacheableMetadatah] !getContexth\ getLabelh[ 5getCacheableMetadatagZ 1createConfigObjectgY )getCacheSuffixgX 'loadOverridesgW 3getSubscribedEventsfV )onConfigDeletefU %onConfigSavef'T OonConfigImporterMissingContentTwof'S OonConfigImporterMissingContentOnefR =onConfigImporterValidatefQ #__constructfP 3getSubscribedEventseO 3configEventRecordereN #__constructeM 5getCacheableMetadatadL 1createConfigObjectdK )getCacheSuffixdJ 'loadOverridesdI 3getSubscribedEventscH )addCollectionscG #__constructcF #testlistAllbE )testCollectionbD 'testDataTypesbC testCRUDbB )containerBuildbA deleteb@ updateb? insertb
> readb= 1testInvalidStorageb< setUpb; ;testConfigSchemaCheckera: testTraita9 =assertConfigSchemaByNamea8 1assertConfigSchemaa7 5testFormWithOverridea6 /testDefaultConfiga5 )containerBuilda4 %testSnapshota#3 GtestImportSimpleConfigurationa2 ?testConfigSchemaInfoAltera)1 StestColonsInSchemaTypeDeterminationa0 1testSchemaFallbacka/ =testConfigSaveWithSchemaa. )testSchemaDataa"- EtestSchemaMappingWithParentsa, /testSchemaMappinga+ -testConfOverridea* 9testOverridePrioritiesa) +uninstallModulea( 'installModulea' 'testUninstalla(& QtestInstallConfigEntityModuleFirsta   / rcG5!v`L8t]@tW5 c:



p
Q
#
					q	O	8	zX1|iP;pT2}bG-sP4iXF0~hR<& hPC/ [ #__constructz
Z viewyY +buildComponentsyX -getBuildDefaultsyW 5getPersonalRecipientyV !isPersonalyU 'setCopySenderyT !copySenderyS !setMessageyR !getMessageyQ !setSubjectyP !getSubjectyO 'setSenderMailyN 'getSenderMailyM 'setSenderNameyL 'getSenderNameyK )getContactFormyJ previewyI actionsyH -sendMailMessagesyG /checkCreateAccessyF buildRowyE #buildHeaderyD setWeightyC setReplyyB 'setRecipientsyA getWeighty@ getReplyy? 'getRecipientsy
> savey= %validateFormy
< formy; 9getEditableConfigNamesy: createy9 #__constructy8 #checkAccessy7 -setConfigFactoryx6 )setConfigNamesx5 3getInternalLangcodex 4 AproviderTestHasTranslationx3 1testHasTranslationx2 7providerTestHasSchemax1 'testHasSchemax0 /testGetConfigDatax/ +testGetLangcodex . AtestPopulateFromRouteMatchx- 'testGetWeightx, /testAddConfigNamex+ 1testGetConfigNamesx* 1testGetDeleteRoutex") EtestGetDeleteRouteParametersx( 9testGetDeleteRouteNamex' -testGetEditRoutex & AtestGetEditRouteParametersx% 5testGetEditRouteNamex$ +testGetAddRoutex# ?testGetAddRouteParametersx" 3testGetAddRouteNamex! 3testGetOverviewPathx  5testGetOverviewRoutex =testGetOverviewRouteNamex +testGetBasePathx -testGetBaseRoutex  AtestGetBaseRouteParametersx 5testGetBaseRouteNamex %testGetTitlex -getNestedElementx !getElementx! CproviderTestHasTranslatablex 3testHasTranslatablex 'testSetEntityx /testGetOperationsx -testGetTypeLabelx +testGetTypeNamex #testGetTypex$ ItestGetOverviewRouteParametersx ?testEntityGetterAndSetterx setUpx( QtestTranslateOperationInViewListUiw 1testThemeDiscoveryw getPoFilew
 9assertDisabledTextareaw	 7renderContextualLinksw 1setSiteInformationw )getTranslationw ?testTextFormatTranslationw ;testSequenceTranslationw 'testAlterInfow 5testSingleLanguageUIw 3testLocaleDBStoragew  AtestFieldConfigTranslationw  ;testPluralConfigStringsw+ WtestPluralConfigStringsSourceElementsw~ 9testViewsTranslationUIw!} CtestSourceAndTargetLanguagew1| ctestAccountSettingsConfigurationTranslationw{ ?testDateFormatTranslationw(z QtestContactConfigEntityTranslationw"y EtestSourceValueDuplicateSavew&x MtestSiteInformationTranslationUiw"w EtestListingPageWithOverrideswv 1testHiddenEntitieswu 1testMapperListPagew$t ItestTranslateOperationInListUiws 1doSettingsPageTestwr 5doDateFormatListTestwq +doFieldListTestwp ?doResponsiveImageListTestwo 5doImageStyleListTestwn 1doLanguageListTestwm 1doUserRoleListTestwl 1doShortcutListTestwk /doFormatsListTestwj 7doContentTypeListTestwi 9doContactFormsListTestw!h CdoCustomContentTypeListTestwg 5doVocabularyListTestwf )doMenuListTestwe +doBlockListTestwd 7testConfigTranslationwc getPowb 'setUpLanguagew$a ItestConfigTranslationFormAlterw` -testDateFormatUIw_ setUpw^ 3getSubscribedEventsv] #alterRoutesv\ #__constructv[ 'mapperManageruZ getTitleuY 'mapperManagertX getTitletW =getDerivativeDefinitionssV createsU #__constructsT 'getGroupTitlerS -getSourceElementrR #__constructrQ setConfigrP 3getTranslationBuildrO createrN 7getTranslationElementrM /createFormElementqL 'getBaseFormIdqK %getCancelUrlqJ )getConfirmTextqI #getQuestionq   M n]L:(mZG1q^F|cH*{`R=!






u
Z
L
/
						s	e	Q	:		|_E-|c?'wSA/v_<-yeVB3hP<(q^D%	dM             w )assertSettings#v GtestAccountLanguageSettingsUIu )testSettingsUIt +testSettingsApi*s UtestContentTranslationOverviewAccess r AtestOperationTranslateLinkq 3testSetTranslatablep 9testSkipUntranslatableo /testContentTypeUIn !testEnablem 7renderContextualLinks+l WtestContentTranslationContextualLinksk ;testConfigImportUpdatesj =getTranslatorPermissionsi setUph 3getSubscribedEventsg #alterRoutesf #__constructe +getDefaultLabeld 7getEntityLinkTemplatec =getDerivativeDefinitionsb createa #__construct` buildForm_ getFormId
^ edit	] add\ overview[ 1prepareTranslationZ createY #__constructX accessW #__constructV itemHashU -synchronizeItemsT /synchronizeFieldsS 3getSubscribedEventsR 9onConfigImporterImportQ /updateDefinitionsP 1contentPermissionsO create N AsetFieldOnlyIfTranslatableM )setChangedTimeL )getChangedTimeK )setCreatedTimeJ )getCreatedTimeI %setPublishedH #isPublishedG setAuthorF getAuthorE #setOutdatedD !isOutdatedC setSourceB getSource!A CloadContentLanguageSettings@ isEnabled? !setEnabled> ;getSupportedEntityTypes= #isSupported< 9getTranslationMetadata; 7getTranslationHandler: /getDefaultOwnerId9 +entityFormTitle!8 CentityFormDeleteTranslation7 -entityFormDelete6 9entityFormSourceChange5 -entityFormSubmit4 1entityFormValidate3 7entityFormEntityBuild2 9addTranslatabilityClue1 =entityFormSharedElements0 +entityFormAlter/ /getSourceLangcode. 5getTranslationAccess- #retranslate0, acheckFieldStorageDefinitionTranslatability+ )hasCreatedTime* )hasChangedTime) 1hasPublishedStatus( hasAuthor' 3getFieldDefinitions& )createInstance% #__construct$ setUp# setUp" 1getMockContactForm!! CgetAuthenticatedMockMessage  ;getAnonymousMockMessage 'getMockSender 3getSendMailMessages 5testSendMailMessages 5testInvalidRecipient setUp 1assertContactLinks +testContactLink 'testViewsData setUp 3testContactSettings setUp 3testContactSettings 3testContactCategory setUp 3testContactCategory %assertEntity setUp 1testMessageMethods 1testContactStorage 1deleteContactForms 'submitContact
 /updateContactForm	 )addContactForm 'testAutoReply 3testSiteWideContact 7submitPersonalContact 1checkContactAccess -testAdminContact =testPersonalContactFlood ?testPersonalContactAccess$ ItestSendPersonalContactMessage  3testContactLanguage setUp3~ gtestContactSiteWideTextfieldsLoggedInTestCase} +getDefaultLabel~| !renderLink~{ !getUrlInfo~z -buildOptionsForm~y 1initializeIterator}x getIds}w fields}v !prepareRow}u query}t 5baseFieldDefinitions|s 5getPersonalRecipient|r 'setCopySender|q !copySender|p !setMessage|o !getMessage|n !setSubject|m !getSubject|l 'setSenderMail|k 'getSenderMail|j 'setSenderName|i 'getSenderName|h )getContactForm|g !isPersonal|f setWeight|e getWeight|d setReply|c getReply|b 'setRecipients|a 'getRecipients|` 3contactPersonalPage{_ +contactSitePage{^ create{] #__construct{\ accessz   R lE-qR.eH*rV?.x`A-






i
Z
J
3
							~	p	b	A	jVE4v\:|l[C/weT?1sZA,~fK7"xbK7(uhR                       'defineOptions
 init	 get	 log #__construct resetForm %validateForm
 buildForm	 !submitForm %getCancelUrl #getQuestion getFormId create #__construct )topLogMessages 'formatMessage -buildFilterQuery  %eventDetails overview~ 3getLogLevelClassMap} #__construct| create{ -testDateTimeSortz !_testExacty %_testBetweenx #_testOffsetw 1testDatetimeFilterv +testDateOffsetsu ;testDatetimeArgumentAllt ;testDatetimeArgumentDays ?testDatetimeArgumentMonthr =testDatetimeArgumentYearq setUpp 5testSetValuePropertyo %testSetValuen -testDateTimeItemm -renderTestEntityl -testInvalidFieldk -testDefaultValuej 5datelistDataProvideri 1testDatelistWidgeth /testDatetimeFieldg 'testDateFieldf setUpe 'getDateFormatd queryc %getDateFieldb opSimplea opBetween` create_ #__construct^ 'getDateFormat] %getDateField\ /massageFormValues[ createZ #__constructY +settingsSummaryX %settingsFormW #formElementV +defaultSettingsU onChangeT isEmptyS 3generateSampleValueR 3storageSettingsFormQ schemaP 3propertyDefinitionsO 9defaultStorageSettingsN 3processDefaultValueM ;defaultValuesFormSubmitL ?defaultValuesFormValidateK /defaultValuesFormJ /getFormatSettingsI #setTimeZoneH createG #__constructF +settingsSummaryE %settingsFormD !formatDateC %viewElementsB +defaultSettingsA setValue@ getValue? #__construct> ;testContextualIdToLinks= ;testContextualLinksToId$< I_contextual_links_id_testcases; 7renderContextualLinks': OassertNoContextualLinkPlaceHolder%9 KassertContextualLinkPlaceHolder8 =testDifferentPermissions7 setUp6 query5 render4 preRender3 -buildOptionsForm2 'defineOptions1 #usesGroupBy0 5preRenderPlaceholder/ 'moduleHandler. 7contextualLinkManager- )preRenderLinks, getInfo+ render#* GproviderTestBlockAdminDisplay) 7testBlockAdminDisplay( setUp' -testCreateAccess& setUp% 3testTranslationLink$ =getTranslatorPermissions# setUp" #testViewsUI! 9assertNoSharedElements  +doTestWorkflows 'testWorkflows #setupEntity. ]doTestChangedTimeAfterSaveWithoutChanges =doTestTranslationChanged 7doTestTranslationEdit 3getChangedFieldName getValue )getTranslation 3getFormSubmitSuffix 3getFormSubmitAction* UgetFormSubmitActionForNewTranslation 'getEditValues 1getNewEntityValues ?doTestTranslationDeletion 3doTestAuthoringInfo 7doTestPublishedStatus 5doTestOutdatedStatus ?doTestTranslationOverview 9doTestBasicTranslation /testTranslationUI +testUICheckSkip
 %createEntity	 /enableTranslation #setupBundle !setupUsers! CgetAdministratorPermissions 9getTranslatePermission )setupLanguages  AtestDifferingSyncedColumns =testMultipleSyncedValues 'testFieldSync  !saveEntity 1testImageFieldSync~ 5getEditorPermissions} +setupTestFields$| ItestRevisionLogNotTranslatable"{ EtestFieldTranslatableArticlez 'entityManager.y ]testNonTranslatableTranslationSettingsUI%x KtestFieldTranslatableSettingsUI   ] m]K6#nYF+j[B( vbM: eT:-





d
L
:
(

 					~	o	]	=	&	sWE3sXC&~nYElO3xV=)oS>&lW5'w]                           . /initializeSandbox- process, ?providerTestBlackListMode+ /testBlacklistMode* 'testFilterXss) 7providerTestFilterXss( setUp' ?testCalculateDependencies& setUp% ?testTextFormatIntegration$ %getLibraries# 'getJSSettings" %settingsForm! 1getDefaultSettings  filterXss 5testEditorUpdate8001 5setDatabaseDumpFiles% KtestGetUntransformedTextCommand +testAttachments %testMetadata 3testEditorSelection /getSelectedEditor 9testUserWithPermission  AtestUsersWithoutPermission! CtestEditorXssFilterOverride 7testSwitchingSecurity 3testInitialSecurity #testManager -getThingsToCheck ?testSupportedElementTypes #testLoading 7testEditorImageDialog 7testEditorEntityHooks# GtestEditorFileReferenceFilter& MverifyUnicornEditorConfiguration 3selectUnicornEditor
 3enableUnicornEditor	 5addEditorToNewFormat! CtestDisableFormatWithEditor =testAddEditorToNewFormat# GtestAddEditorToExistingFormat 7testNoEditorAvailable setUp )getAttachments( QtextFormatHasTransformationFilters #getMetadata  %isCompatible process~ create} #__construct| %getLibraries{ 'getJSSettingsz )getAttachmentsy #listOptionsx #__constructw 1settingsFormSubmitv 5settingsFormValidateu %settingsFormt 1getDefaultSettingss !submitFormr buildFormq getFormIdp createo #__constructn 9setImageUploadSettingsm 9getImageUploadSettingsl #setSettingsk #getSettingsj setEditori getEditorh 3editorPluginManagerg +getFilterFormatf ?hasAssociatedFilterFormate 7calculateDependenciesd labelc #__constructb ida %needsRemoval` -getForbiddenTags_ )getAllowedTags^ ;filterXssDataAttributes] filterXss\ render[ #__constructZ 3preRenderTextFormatY #__constructX 9setImageUploadSettingsW 9getImageUploadSettingsV #setSettingsU #getSettingsT setEditorS getEditorR +getFilterFormatQ ?hasAssociatedFilterFormatP filterXssO 5getUntransformedTextN 3htmlUncacheableTagsM ;htmlUncacheableContextsL 7htmlUncacheableMaxAgeK 7htmlWithCacheContexts
J htmlI /cacheableResponseH responseG 5testDynamicPageCacheF setUpE checkD #__constructC #__constructB 3getSubscribedEventsA 7renderArrayToResponse@ 7responseToRenderArray? 3shouldCacheResponse> !onResponse= %onRouteMatch< #__construct; +testIntegration: setUp9 %testWatchdog8 setUp7 /testDblogSettings6 setUp5 -testBookSettings4 setUp3 /testOverviewLinks2 /testTemporaryUser1 -assertLogMessage0 asText/ 3getSeverityConstant. %getTypeCount- 'getLogEntries, !testFilter+ 5testDBLogAddAndClear* -getContentUpdate) !getContent( doNode' doUser& 1verifyLinkEscaping% !verifySort$ %verifyEvents# /verifyBreadcrumbs" 'verifyReports! 1generateLogEntries  !verifyCron )verifyRowLimit testDbLog ;testLoggerSerialization setUp !submitForm %validateForm buildForm process getFormId" EtestConnectionFailureLogging 7defaultDisplayOptions 'clickSortable render -buildOptionsForm   Y zaQ9&sU:)x]K)r`G3 pYA-






h
T
D
4

					r	X	D	1		wdU:,
y[M5 lT5]8nX@{P:!pK:&tY                         J 1testCreateInstanceI 3testDefaultSettingsH /assertFieldValuesG =_generateTestFieldValuesF -testUpdateForbidE !testUpdateD 3testUpdateFieldTypeC !testDeleteB #testIndexesA testRead"@ EtestCreateWithExplicitSchema? !testCreate'> OtestImportAlreadyDeletedUninstall= ?testImportDeleteUninstall< -testImportDelete; -testImportCreate: ;testImportCreateDefault9 -testImportChange8 'testFieldHelp(7 QtestFieldPluginDefinitionIntegrity"6 EtestDefaultValueCallbackForm5 7calculateDefaultValue4 3testCountWithIndex03 ?testEntityCountAndHasData2 9doFieldValidationTests"1 EtestDeleteFieldCrossDeletion0 +testUpdateField/ 'testReadField". EtestCreateFieldCustomStorage- +testCreateField, 9testEntityDeleteBundle+ 9testEntityCreateBundle* 7testFieldAttachDelete.) ]testFieldAttachSaveEmptyDataDefaultValue"( EtestFieldAttachSaveEmptyData!' CtestFieldAttachLoadMultiple& ;testFieldAttachSaveLoad,% YtestEntityFormDisplayExtractFormValues$$ ItestEntityFormDisplayBuildForm# +testEntityCache#" GtestEntityDisplayViewMultiple! 9testEntityDisplayBuild  +testFieldAccess )testFieldEmpty /testFieldItemView 7testFieldItemListView  AtestFieldStorageDefinition ?testBundleFieldDefinition 7testPurgeFieldStorage )testPurgeField +testDeleteField setUp 7checkHooksInvocations 5setStringTranslation validate )lazyLoadItself #__construct count 1initializeIterator getIds !prepareRow fields query 1initializeIterator
 getIds	 !prepareRow fields query transform create #__construct #getSettings +convertSizeUnit )numberSettings  transform !setIndexes~ !getIndexes} #isDeletable| /getFieldItemClass { AgetUniqueStorageIdentifierz 3getMainPropertyNamey -getPropertyNamesx 9getPropertyDefinitionsw 7getPropertyDefinitionv 'getConstraintu )getConstraintst __sleeps hasDatar #isQueryableq 7getTargetEntityTypeIdp setLockedo isLockedn !isMultiplem 1getOptionsProviderl )setCardinalityk )getCardinalityj )getDescriptioni getLabelh #getProviderg +setTranslatablef )isRevisionablee )isTranslatabled #setSettingsc !setSettingb !getSettinga #getSettings` getType_ +getTypeProvider^ getName] !getBundles\ !getColumns[ #isBaseFieldZ -hasCustomStorageY getSchemaX postSaveW )preSaveUpdatedV !preSaveNewU idT !loadByNameS !isComputedR !isReadOnlyQ /getDisplayOptionsP 7isDisplayConfigurableO ?getFieldStorageDefinitionN isDeletedM 1urlRouteParametersL 'linkTemplatesK !postDeleteJ preDeleteI 7calculateDependenciesH preSaveG !postCreateF #__constructE =getFieldStoragesByModuleD validateC 1mapToStorageRecordB 7mapFromStorageRecordsA !setIndexes@ !getIndexes? +setTranslatable> #setSettings= !setSetting< )setCardinality; setLocked: isLocked9 #isDeletable8 !getBundles7 +getTypeProvider6 getType5 -loadByProperties4 %importDelete3 )createInstance2 #__construct1 isDeleted0 #checkAccess/ ;getFieldStoragesToPurge   ( cF$|K,ycN*oJ/lL)




^
9
"
					\	?	(	hP)rQ*z]4&ydL+mP4rU7	dV:s_G(                          M 9_testSimpleFieldRenderL +testFieldRenderK #prepareViewJ =testHandlerUIAggregationI 'testHandlerUIH #setUpFieldsG 1setUpFieldStoragesF setUpE %testUriFieldD ?assertEntityRefDependencyC 3testFieldUpdate8002B 3testFieldUpdate8001A setUp)@ StestFieldPostUpdateERHandlerSetting? 5setDatabaseDumpFiles> ?testTimestampAgoFormatter= 9testTimestampFormatter< 1renderEntityFields; setUp: ;testUuidStringFormatter9 7_testTextfieldWidgets8 5testTextfieldWidgets7 3testStringFormatter6 1renderEntityFields5 setUp4 )testNumberItem3 7assertSetMinimumValue"2 EtestCreateNumberDecimalField 1 AtestCreateNumberFloatField0 3testNumberFormatter/ 5testNumberFloatField. 9testNumberIntegerField- 9testNumberDecimalField, setUp+ !testFields* 1testWidgetSettings) 1testFieldInstances( !createType' 'testMigration& =assertComponentNotExists% +assertComponent$ %assertEntity# setUp" 1testWidgetSettings! !testFields)  StestMigrateFieldIntoUnknownNodeType  AtestFieldInstanceMigration ?testEntityDisplaySettings setUp& MtestSelectionHandlerRelationship 5testSelectionHandler 'assertResults ?testDataTableRelationship! CtestNoDataTableRelationship setUp 9testEntityReferenceXSS$ ItestCustomTargetBundleDeletion$ ItestConfigTargetBundleDeletion =testAutocreateValidation" EtestSelectionHandlerSettings 3testEntitySaveOrder 5testEntityAutoCreate# GtestConfigEntityReferenceItem0 atestContentEntityReferenceItemWithStringId$ ItestContentEntityReferenceItem +getTestEntities /assertFieldValues(
 QtestSupportedEntityTypesAndWidgets	 -buildRenderArray 1testLabelFormatter 3testEntityFormatter +testIdFormatter !testAccess )testFileUpload 5createReferrerEntity) ScreateNotTranslatedReferencedEntity+ WcreateReferencedEntityWithTranslation  /setUpContentTypes ?setUpEntityReferenceField~ /enableTranslation} 'createContent| )setUpLanguages"{ EassertEntityReferenceDisplay z AtestEntityReferenceDisplay+y WtestEntityReferenceDefaultConfigValue%x KtestEntityReferenceDefaultValuew )testAutoCreatev /getAllOptionsListu =assertFieldSelectOptions t AcreateEntityReferenceFields ;testAvailableFormattersr 7testFieldAdminHandlerq setUpp -testColumnUpdateo setUpn 'testEmailItemm )testEmailFieldl setUpk +testBooleanItemj 5testBooleanFormatteri 1renderEntityFields"h EtestBooleanFormatterSettingsg -testBooleanFieldf setUpe ?testWidgetDefinitionAlterd ?checkTranslationRevisions'c OtestFieldFormTranslationRevisions#b GtestTranslatableFieldSaveLoad!a CtestTestItemWithDepenencies` %testTestItem_ 'testShapeItem^ 1testReEnabledField] 3testNestedFieldForm!\ CtestLabelOnMultiValueFields[ +testHiddenFieldZ 3testFieldFormAccess!Y CtestFieldFormMultipleWidgetX 9testFieldFormJSAddMore.W ]testFieldFormMultivalueWithRequiredRadio$V ItestFieldFormUnlimitedRequiredU 9testFieldFormUnlimited!T CtestFieldFormSingleRequiredS ?testFieldFormDefaultValueR 3testFieldFormSingleQ ?testNotApplicableFallbackP 5testFieldConstraintsO ?testCardinalityConstraintN 7entityValidateAndSaveM -entitySaveReloadL 9createFieldWithStorage"K EtestCreateInstanceWithConfig   G nYF1k\@& `B"
zaL1tV:





e
W
I
5


							r	R	C	*		xdP0vW?)yaC.oR@+ueTB+kWC4lO1gG               e ;testOnDependencyRemovald +testDeleteFieldc -testDeleteBundleb 9testBaseFieldComponenta 1testFieldComponent` ;testExtraFieldComponent_ 5testEntityGetDisplay^ ?testEntityDisplayCRUDSort] 7testEntityDisplayCRUD\ 5testEntityFormModeUI[ 5testEntityViewModeUIZ setUpY 3getSubscribedEventsX #alterRoutesW appliesV enhanceU #__constructT +alterLocalTasksS =getDerivativeDefinitionsR createQ #__constructP #buildEntityO +fieldNameExistsN 9getExistingFieldLabels$M IgetExistingFieldStorageOptions L AconfigureEntityViewDisplay K AconfigureEntityFormDisplayJ 3validateAddExistingI )validateAddNewH getFormIdG getTitleF actionsE %getCancelUrlD 9getConfigNamesToDeleteC 5getFieldLabelOptions
B saveA exists
@ init? create> )getDescription= 'prepareEntity< %validateForm; buildForm: 5alterSettingsSummary9 9thirdPartySettingsForm8 )getOverviewUrl7 )getTableHeader6 3saveDisplayStatuses5 1getDisplayStatuses4 #getDisplays$3 IgetExtraFieldVisibilityOptions2 %getRowRegion1 7getDisplayModeOptions0 +getDisplayModes/ -getDefaultPlugin. -getPluginOptions - AgetApplicablePluginOptions, -getEntityDisplay+ )getExtraFields* #reduceOrder) )tablePreRender( 'multistepAjax' +multistepSubmit& 9copyFormValuesToEntity% !submitForm$ 1buildExtraFieldRow# 'buildFieldRow
" form! =FieldDefinitionInterface  3getFieldDefinitions -getRegionOptions !getRegions ;getEntityFromRouteMatch #__construct #reduceOrder 3preRenderRegionRows )tablePreRender getInfo listing 7formModeTypeSelection 7viewModeTypeSelection access #__construct -fieldPermissions create ;getRouteBundleParameter 1getNextDestination 5getOverviewRouteInfo 5getDefaultOperations 'isValidEntity render

 load	 buildRow #buildHeader )createInstance #__construct setUp setUp  AtestTransformImageSettings 3getSettingsProvider +testGetSettings  7testValidateNoDeleted 3testValidateDeleted~ 9testValidateNoStorages"} EcalculateStorageDependencies| 3onDependencyRemoval{ 7calculateDependenciesz #testGetTypey #testToArrayx ;testOnDependencyRemoval.w ]testCalculateDependenciesIncorrectBundlev ?testCalculateDependenciesu setUpt #validatedBys 1getRequiredOptionsr %isApplicableq -multipleValidatep 3onDependencyRemovalo 7calculateDependenciesn %errorElementm #formElementl +settingsSummaryk %settingsFormj +defaultSettingsi ;getPreconfiguredOptionsh 7calculateDependencies!g CfieldSettingsFromConfigDataf ?fieldSettingsToConfigData#e GstorageSettingsFromConfigData!d CstorageSettingsToConfigDatac isEmptyb )getConstraintsa delete` /fieldSettingsForm_ 3storageSettingsForm^ schema] 3propertyDefinitions\ 5defaultFieldSettings[ 9defaultStorageSettingsZ #prepareViewY +settingsSummaryX %settingsFormW +defaultSettingsV %viewElementsU %isApplicableT !submitFormS %validateFormR buildFormQ getFormIdP =_testMultipleFieldRender%O K_testFormatterSimpleFieldRender"N E_testInaccessibleFieldRender   U v[<{cN3|[: 	]A)~^A&




y
_
K
7
$
								w	`	N	,		q_K7$o^J6!zaI q`Q:hL2oZB%r_E(
qU                    3isLocationUnchanged %getDirectory  -getOverwriteMode writeFile~ import} getEntity| create{ #__constructz %getFieldTypey 7processCckFieldValuesx 5getFieldFormatterMapw /getFieldWidgetMapv !flagErrorsu submitt ?getDescriptionFromElements +processMultipler processq 7validateMultipleCountp valueo /massageFormValuesn #formElementm 5formMultipleElementsl +settingsSummaryk %settingsFormj +defaultSettingsi createh #__constructg ;getPreconfiguredOptionsf #isDisplayede 3generateSampleValued 3getUploadValidatorsc 3doGetUploadLocationb /getUploadLocationa 3validateMaxFilesize` 1validateExtensions_ /validateDirectory^ /fieldSettingsForm] 3storageSettingsForm\ 3propertyDefinitions[ schemaZ 5defaultFieldSettingsY 9defaultStorageSettingsX )deleteRevisionW deleteV postSaveU /defaultValuesFormT #checkAccessS +needsEntityLoadR %isApplicableQ viewValueP %viewElementsO %settingsFormN +defaultSettings&M MvalidateReferenceableNewEntitiesL +createNewEntityK -buildEntityQueryJ listUsageI delete	H addG #__constructF 5baseFieldDefinitionsE preDeleteD preSaveC preCreateB %setTemporaryA %setPermanent@ #isTemporary? #isPermanent> setOwner= !setOwnerId< !getOwnerId; getOwner: )getCreatedTime9 setSize8 getSize7 #setMimeType6 #getMimeType	5 url4 !setFileUri3 !getFileUri2 #setFilename1 #getFilename0 fileUsage/ 3validateManagedFile. 5preRenderManagedFile- 1processManagedFile, 1uploadAjaxCallback+ 'valueCallback* getInfo) progress( %getViewsData' ?getSharedTableFieldSchema& spaceUsed% )getCreatedTime$ %setTemporary# %setPermanent" #isTemporary! #isPermanent  setSize getSize #setMimeType #getMimeType !setFileUri !getFileUri #setFilename #getFilename /getFileReferences #checkAccess% KtestGetNextDestinationRouteName! CtestGetNextDestinationEmpty 9testGetNextDestination setUp ;testPreconfiguredFields 1fieldListAdminPage 5testHelpDescriptions ;testDeleteTaxonomyField =testExternalDestinations 9testDuplicateFieldName -testHiddenFields +testLockedField
 =testDisallowedFieldNames	 -testDefaultValue +testFieldPrefix 3assertFieldSettings ?addPersistentFieldStorage #deleteField 3cardinalitySettings -addExistingField #updateField #createField  -manageFieldsPage )testCRUDFields~ /getAllOptionsList} =assertFieldSelectOptions| =assertNodeViewTextHelper{ 5assertNodeViewNoTextz 1assertNodeViewText!y CtestNoFieldsDisplayOverviewx 1testSingleViewModew =testNonInitializedFieldsv 9testViewModeLocalTasksu 1testViewModeCustomt %testWidgetUIs +testFormatterUIr 1fieldUIDeleteFieldq ;fieldUIAddExistingFieldp 1fieldUIAddNewFieldo )testAdminRouten -assertLocalTasksm /testFieldUIRoutesl =testEntityGetFromDisplayk 9assertDependencyHelperj 1assertNoDependencyi -assertDependencyh ?testComponentDependenciesg ?testGetDisplayModeOptions*f UtestEntityDisplayInvalidateCacheTags   A fSD5'reO6#zgUG(oX:#{cL4




s
^
F
,
					|	b	M	;		fJ3!	vaJ*
hS)wY7oaC&~\F)v]H6~iOA        setUp /testFileMigration %assertEntity setUp ;testUploadFieldInstance !testUpload! CtestUploadEntityFormDisplay ;testUploadEntityDisplay -migrateDumpAlter /getUniqueFilename testFiles %assertEntity -testFileSettings setUp testStub
 save getEntity
 #__construct	 doImport )testIsLocalUri ;testIsLocationUnchanged -testGetDirectory 5testGetOverwriteMode 'testWriteFile ?testNonExistentSourceFile 7localFileDataProvider 5testSuccessfulCopies  setUp 7testFormatterFileSize~ 7testFormatterFileMime } AtestFormatterFileExtension| 5testFormatterFileUri{ 7testFormatterFileLinkz setUpy 5testFileValidateSize x AtestFileValidateNameLength%w KtestFileValidateImageResolutionv ;testFileValidateIsImage u AtestFileValidateExtensionst 5testCallerValidations ?testTempFileCustomCleanupr 7testTempFileNoCleanup q AtestTempFileCleanupDefaultp +createTempFileso +testRemoveUsagen %testAddUsagem %testGetUsagel /testFileSpaceUsedk 1createFileWithSize'j OtestDrupalMovingUploadedFileErrori %testNoUploadh 3testHandleFileMungeg ;testHandleDangerousFilef 3testHandleExtensione %testFileSaved -testWithFilenamec 3testWithoutFilenameb ;testPrivateLanguageFilea ;testExistingReplaceSelf` )testUuidValues_ %testMultiple^ -testSingleValues] 7testLoadInvalidStatus\ ;testLoadMissingFilepath[ 1testLoadMissingFidZ =testFileTokenReplacementY +testPrivateFileX createUriW )assertSameFileV 3assertDifferentFileU 3assertFileUnchangedT 5assertFileHookCalledS 7assertFileHooksCalledR 9testManagedFileRemovedQ +testManagedFileP )testFileAccessO !createFileN 5testFileListingPagesM sumUsagesL %testFileItemK /testWidgetElementJ 5testWidgetValidationI 9testPrivateFileCommentH 9testPrivateFileSettingG 7testMultiValuedWidgetF 9testSingleValuedWidgetE +testFileRemovalD /testFileExtensionC +testFileMaxSizeB %testRequiredA 7assertFileIsPermanent@ =assertFileEntryNotExists? 3assertFileNotExists> 7assertFileEntryExists= -assertFileExists< +replaceNodeFile; )removeNodeFile: +uploadNodeFiles9 )uploadNodeFile8 +updateFileField7 +attachFileField6 +createFileField5 'getLastFileId4 #getTestFile3 ;testFileFieldRSSContent2 'testRevisions1 +assertPathMatch0 )testUploadPath/ 7testFileAccessHandler. )testDescToggle!- CtestDefaultFileFieldDisplay, +testNodeDisplay+ checkUrl* /testFileCreateUrl) ?doPrivateFileTransferTest-( [testPrivateFileTransferWithoutPageCache' 9testPublicFileTransfer& setUp% testInUse$ !testUnused# /testExistingError" 3testExistingReplace! 1testExistingRename  !testNormal 7defaultDisplayOptions +getValueOptions  render !renderLink -buildOptionsForm 'defineOptions
 init !titleQuery create #__construct validate #validatedBy getIds fields !prepareRow 1initializeIterator query count getIds fields !prepareRow
 1initializeIterator	 query transform create #__construct )processStubRow urlencode !isLocalUri   j saO<(n]O*uaSE/{fVF.}iX;)






l
S
9
(
							p	Z	D	0			rXA%yfR9 l_O5 aH)seVC4 	bG$ fH-j                        @ 7testFormatPermissions? /resetFilterCaches> 9testDefaultTextFormats= +testUpdateRoles< -testInstallation; -verifyTextFormat: ?testDisableFallbackFormat9 1testTextFormatCrud8 7testDependencyRemoval!7 CassertFilterFormatViolation6 ;testFilterFormatPreSave5 -testTypedDataAPI4 =testProcessedTextElement3 3testFilterFormatAPI!2 CtestCheckMarkupFilterSubset 1 AtestCheckMarkupFilterOrder0 1testDisabledFormat/ ;testFilterTipHtmlEscape. 1testUrlFilterAdmin- +testFilterAdmin, +testFormatAdmin+ setUp* 5setStringTranslation) validate( )lazyLoadItself' #__construct& getIds% !prepareRow$ fields# query" getIds! !prepareRow  fields query transform create #__construct transform #__construct 3getHTMLRestrictions 9prepareAttributeValues -findAllowedValue ;filterElementAttributes -filterAttributes -setConfiguration %settingsForm
 tips process 1getSettableOptions /getSettableValues 1getPossibleOptions /getPossibleValues process
 tips
 3getHTMLRestrictions	 prepare %settingsForm )getDescription getLabel getType 7calculateDependencies 5defaultConfiguration -getConfiguration -setConfiguration  #__construct !submitForm~ )getDescription} )getConfirmText| %getCancelUrl{ #getQuestion!z CcalculatePluginDependenciesy 3onDependencyRemovalx %removeFilterw 3getHtmlRestrictionsv )getFilterTypesu /getPermissionNamet -isFallbackFormats postSaver preSaveq disablep toArrayo +setFilterConfign 5getPluginCollectionsm filtersl idk #elementInfoj #currentUseri 'processFormath 'configFactoryg loggerf +FilterInterfacee 'preRenderTextd getInfoc getLabelb !filterTipsa ;getEnabledFilterFormats$` IgetFilterDefinitionsByProvider_ validate^ /createPlaceholder] -setProcessedText\ !__toString[ -getProcessedTextZ 3getFallbackPluginIdY -getConfigurationX !sortHelper
W sortV -initializePluginU getAllT #permissionsS buildFormR 5getDefaultOperationsQ buildRowP #buildHeader
O loadN getFormIdM )createInstanceL %removeFilterK 3getHtmlRestrictionsJ )getFilterTypesI /getPermissionNameH -isFallbackFormatG +setFilterConfigF filtersE actionsD %validateFormC existsB createA #__construct@ !submitForm
? form> #checkAccess= 7testFilteringByScheme< -testTemporaryUri; )testPrivateUri: 'testPublicUri9 setUp8 setUp7 #doTransform6 'testTemporary 5 AtestPrivateUnknownBasePath4 #testPrivate3 ?testPublicUnknownBasePath2 !testPublic1 7testTransformAltTitle0 %getFileTypes"/ EtestFileValidationConstraint. setUp- realpath, )getExternalUrl+ )getInternalUri* -getDirectoryPath) )getDescription( getName' !submitForm
& %validateForm
% buildForm
$ getFormId
# #checkAccess	" !submitForm! buildForm  getFormId. ]testViewsHandlerRelationshipUserFileData )testFileFields ?testRelationshipViewsData  AtestFileExtensionTarOption   H jS=iI.nX;~`QC*p`R5






h
Y
L
=
&

							r	^	M	:	'	t^@%w^Q=+{cU8$fX8dP<'
V?1	{fDn`H` +testConstructor4_ setUp4/^ _testValidateHasTermsForVocabularyNoAccess3-] [testValidateHasTermsForVocabularyAccess38\ qtestValidateHasTermsForVocabularyWithNodesNoAccess36[ mtestValidateHasTermsForVocabularyWithNodesAccess3Z ?testValidateHasForumNodes3Y %testValidate3X 5testValidateNotForum3W setUp3V %testGetIndex3U 5testForumIntegration2T setUp2 S AtestForumSettingsMigration1R setUp1Q /testForumSettings0P setUp0O )testValidation/+N WtestForumUninstallWithoutFieldStorage/!M CtestForumUninstallWithField/L 3generateForumTopics/K +verifyForumView/J %verifyForums/I -createForumTopic/H 5testForumWithNewPost/G %doBasicTests/F #deleteForum/E #createForum/D 3editForumVocabulary/C %doAdminTests/B 1testAddOrphanTopic/A testForum/@ 3testForumNodeAccess/? 5testForumIndexStatus/> /createForumTopics/ = AtestActiveForumTopicsBlock/< ;testNewForumTopicsBlock/; setUp/: 5setStringTranslation.9 validate.8 )lazyLoadItself.7 #__construct.6 validate-5 %getCacheTags,4 -getCacheContexts,3 #blockSubmit,2 blockForm,1 #blockAccess,0 5defaultConfiguration,/ build,. +buildForumQuery,- #__construct+, /forumParentSelect++ actions+
* save+) !submitForm+( buildForm+' )getConfirmText+& %getCancelUrl+% #getQuestion+$ getFormId+# #buildEntity+
" form+! -buildActionLinks*  %addContainer* addForum* build* !forumIndex* forumPage* create* #__construct* applies) build) #__construct) 1getForumVocabulary( 7hasTermsForVocabulary( 'hasForumNodes( validate( !submitForm( buildForm( 9getEditableConfigNames( getFormId( __wakeup( __sleep( %unreadTopics( 'checkNodeType(
 !getParents(	 !resetCache( getIndex( #getChildren( 1getForumStatistics( #getLastPost( lastVisit( 'getTopicOrder( getTopics( #deleteIndex(  #createIndex( #updateIndex(~ update(} )deleteRevision(| delete(
{ read(z create(y /getOriginalTermId(x #__construct(w setUp'v setUp&#u GtestValidateNoMatchingFormats%t 7testValidateNoFormats%s 7testValidateNoPlugins%r =providerFilterAttributes%q 5testfilterAttributes%p setUp%o process$n 3getHTMLRestrictions#m 1renderDynamicThing#l process#k !submitForm"j buildForm"i getFormId"h -testFilterFormat!g %assertEntity!f setUp!e -testFilterFormat d setUp c getUrlb 7testTextFormatElementa %validateForm` !submitForm_ buildForm^ getFormId] 1assertNoNormalized\ -assertNormalized[ ;testHtmlCorrectorFilterZ 5testUrlFilterContentY 5assertFilteredStringX 'testUrlFilterW 5testHtmlEscapeFilterV 1testNoFollowFilterU )testHtmlFilterT 3testLineBreakFilter S AtestAlignAndCaptionFiltersR /testCaptionFilterQ +testAlignFilterP 1testFilterDefaultsO ;testSkipSecurityFiltersN ;testDisableFilterModuleM ;testCheckMarkupNoFormatL +testImageSourceK +testFilterHooksJ 9assertDisabledTextareaI 7assertEnabledTextarea$H IassertRequiredSelectAndOptionsG 'assertOptionsF )assertNoSelect E AdoFilterFormTestAsNonAdminD ;doFilterFormTestAsAdminC )testFilterForm!B CtestFormatWidgetPermissionsA +testFormatRoles   l ~dP>*{[B!zdOm\H9#hUB1







j
Q
C
4
 
							y	e	P	.	m[B)}lWI0r^O?4#r]C1wcN8"xfS>.
jVG/l                
 3propertyDefinitionsL	 schemaL 5defaultFieldSettingsL 9defaultStorageSettingsL /getEntitiesToViewK %viewElementsK +settingsSummaryK %settingsFormK +defaultSettingsK createK  #__constructK )processInboundJ~ #__constructJ} checkI| #__constructI{ 3updateEffectWeightsH
z saveHy !effectSaveHx )effectValidateH
w formHv )getDescriptionHu actionsHt %validateFormHs !submitFormHr getFormIdHq %getCancelUrlHp )getConfirmTextHo #getQuestionHn 1prepareImageEffectHm buildFormHl createHk #__constructHj /fileDefaultSchemeGi 'fileUriTargetGh 'fileUriSchemeGg %addExtensionGf #getHashSaltGe 'getPrivateKeyG!d CgetImageEffectPluginManagerGc setNameGb getNameGa -getReplacementIDG` )addImageEffectG_ 5getPluginCollectionsG^ !getEffectsG] getEffectG\ /deleteImageEffectG[ %getPathTokenGZ 9getDerivativeExtensionGY 3transformDimensionsGX -createDerivativeGW flushGV buildUrlGU buildUriGT /replaceImageStyleGS !postDeleteGR postSaveGQ idGP deliverFO createFN #__constructFM renderDL 5getDefaultOperationsDK buildRowDJ #buildHeaderDI )createInstanceDH /deleteImageEffectDG )addImageEffectDF !getEffectsDE getEffectDD -createDerivativeDC flushDB %getPathTokenDA buildUrlD@ buildUriD? setNameD> getNameD= -getReplacementIDD< !sortHelperD; #applyEffectD: 7calculateDependenciesD9 5defaultConfigurationD8 -setConfigurationD7 -getConfigurationD6 getWeightD5 setWeightD4 getUuidD3 labelD2 !getSummaryD1 9getDerivativeExtensionD0 3transformDimensionsD/ createD. #__constructD- ;submitConfigurationFormD, ?validateConfigurationFormD+ %testHandlersC* #testHistoryB) )markNodeAsReadB( 7getNodeReadTimestampsB' setUpB& )getCacheMaxAgeA% %adminSummaryA$ queryA# valueFormA" +buildExposeFormA! #usesGroupByA  render@ query@ -buildOptionsForm@ 'defineOptions@
 init@ #usesGroupBy@ readNode? 7getNodeReadTimestamps? 5getRouteDebugMessage> supports> /generateFromRoute> -getPathFromRoute> generate> !getContext> !setContext> 1testMainPageNoHelp= 'getModuleList= !verifyHelp= testHelp= /testEmptyHookHelp= )containerBuild= setUp=
 -getCacheContexts<	 build< 'getActiveHelp< create< #__construct< helpPage; +helpLinksAsList; helpMain; create; #__construct;-  [providerNormalizerDenormalizeExceptions:. ]testFieldNormalizerDenormalizeExceptions:2~ etestFieldItemNormalizerDenormalizeExceptions:} %getEntityUri9| 'testNormalize9{ 3testFileDenormalize9z #testComment9y testTerm9x testNode9w setUp9v =testPatchDenormalization9#u GtestBasicFieldDenormalization9t =testMarkFieldForDeletion9s -testTypeHandling9r ;supportsDenormalization8q 7supportsNormalization8p 3normalizeFieldItems8o =createTranslatedInstance8n getUuid8m )constructValue8l +getTypedDataIds8k %getEntityUri8j #denormalize8i normalize8h #__construct8g /getHandledFormats7f -supportsDecoding6e -supportsEncoding6d alter5c 3providerTestApplies4b #testApplies4a testBuild4   - jI5wcD1vhYJ7)fT7 t\E+





b
;
					}	e	N	/		pB|`>0~]H&zlI4k]O;qdM4ycM8xV-     & MgetLanguageConfigOverrideStorage_ ?getLanguageConfigOverride_ ?getConfigOverrideLanguage_ ?setConfigOverrideLanguage_ 9getLanguageSwitchLinks_ 7getFallbackCandidates_! CupdateLockedLanguageWeights_ 1getNativeLanguages_ %getLanguages_ 'setNegotiator_ 'getNegotiator_ reset_ 1getCurrentLanguage_$ IsaveLanguageTypesConfiguration_! CgetDefinedLanguageTypesInfo_$ IloadLanguageTypesConfiguration_
 ;getDefinedLanguageTypes_	 -getLanguageTypes_ )isMultilingual_
 init_ #__construct_ +rebuildServices_ setWeight_ setName_' OtestSetElementErrorsFromFormState^$ ItestDisplayErrorMessagesInline^  alter] 5displayErrorMessages]~ #__construct]} setUp\| setUp[-{ [providerPrivateImageStyleDownloadPolicyZ)z StestPrivateImageStyleDownloadPolicyZy setUpZx /fileDefaultSchemeYw 'fileUriTargetYv 'fileUriSchemeYu -testGetPathTokenYt %testBuildUriY s AtestGetDerivativeExtensionYr setUpYq /getImageStyleMockYp ?getUriDependentDimensionsXo #applyEffectXn 3transformDimensionsX/m _testViewsHandlerRelationshipUserImageDataWl setUpWk ?testRelationshipViewsDataWj %assertEntityVi =testImageStylesMigrationVh 'testMigrationVg setUpVf /assertImageEffectUe 7testInvalidCropValuesUd ;testMissingEffectPluginUc 5testPassingMigrationUb -testMissingTableUa setUpU` ?testImageAltFunctionalityT_ 3testImageStyleThemeT^ ;testImageFormatterThemeT!] CdoImageStyleUrlAndPathTestsT,\ YtestImageStyleUrlForMissingSourceImageT![ CtestImageStyleUrlExtraSlashT,Z YtestImageStyleUrlAndPathPrivateUncleanT+Y WtestImageStyleUrlAndPathPublicUncleanT%X KtestImageStyleUrlAndPathPrivateT$W ItestImageStyleUrlAndPathPublicTV 1testImageStylePathTU testFlushTT 'testImageItemTS !testImportTR /testWidgetElementTQ 9testRequiredAttributesTP )testResolutionTO +uploadNodeImageTN -previewNodeImageTM -createImageFieldT L AtestImageFieldDefaultImageTK 9testImageFieldSettingsTJ ?_testImageFieldFormattersT%I KtestImageFieldFormattersPrivateT$H ItestImageFieldFormattersPublicTG ;testInvalidDefaultImageTF /testDefaultImagesTE /assertImageEffectTD ;testImageEffectsCachingTC -testRotateEffectTB 5testDesaturateEffectTA 9testScaleAndCropEffectT@ /testConvertEffectT? )testCropEffectT> +testScaleEffectT= -testResizeEffectT< setUpT; #getImageTagT: 3testImageDimensionsT9 5testImageStyleAccessT8 -testConfigImportT7 9testFlushUserInterfaceT6 )testEditEffectT5 5testStyleReplacementT4 testStyleT3 5testNumericStyleNameT2 'getImageCountT1 /createSampleImageT0 !testNormalT/ routesS. createS- #__constructS, !prepareRowR+ getIdsR* fieldsR) queryR( !prepareRowQ' getIdsQ& fieldsQ% queryQ$ transformP# importO" ?validateConfigurationFormN! 3transformDimensionsN  ;submitConfigurationFormN 9buildConfigurationFormN 5defaultConfigurationN !getSummaryN 9getDerivativeExtensionN #applyEffectN 9validateRequiredFieldsM processM #formElementM 5formMultipleElementsM +settingsSummaryM %settingsFormM +defaultSettingsM -getEntityManagerL #isDisplayedL =validateDefaultImageFormL -defaultImageFormL 1validateResolutionL 3generateSampleValueL preSaveL /fieldSettingsFormL 3storageSettingsFormL   R u]B'
j]K7&hQ3uZ>-wdM9%





p
S
F
7
#
						w	g	V	D	1		uW?'wcN-}mV;r]H}`R>/sV5!sC%yR              $8 ItestConfigUsingCurrentLanguagen7 setUpn6 appliesm5 convertm4 )lazyLoadItselfm3 #__constructm2 queryl1 getIdsl0 fieldsl/ )processInboundk. persistk- 7getContentEntityPathsk-, [getContentEntityTypeIdForCurrentRequestk'+ OmeetsContentEntityRoutesConditionk'* OhasLowerLanguageNegotiationWeightk) 9getLanguageSwitchLinksk( +processOutboundk' createk& #__constructk% #getLangcodek$ =getDerivativeDefinitionsj# 5defaultConfigurationi" evaluatei! summaryi  ;submitConfigurationFormi 9buildConfigurationFormi createi #__constructi )getCacheMaxAgeh buildh #blockAccessh createh #__constructh resetg 5initConfigSubscriberg )initProcessorsg +processOutboundg )processInboundg #__constructg ;disableLanguageSwitcherf 1configureFormTablef3 glanguage_get_browser_drupal_langcode_mappingsf %validateFormf %getCancelUrlf #getQuestionf 9getEditableConfigNamesf
 )validateCommonf	 !commonFormf 1logDeletionMessagef 1getDeletionMessagef )getDescriptionf 9copyFormValuesToEntityf 1validatePredefinedf )validateCustomf actionsf
 savef
  formf !submitFormf~ buildFormf} getFormIdf| createf{ #__constructfz ;onKernelRequestLanguagedy 3getSubscribedEventsdx =setPathProcessorLanguagedw %onConfigSavedv #__constructdu 7calculateDependenciesct 9loadByEntityTypeBundlecs 9isDefaultConfigurationcr 3isLanguageAlterablecq 5setLanguageAlterablecp 1setDefaultLangcodeco +setTargetBundlecn +getTargetBundlecm 7getTargetEntityTypeIdcl idck #__constructcj 1createFromLangcodeci setWeightch getWeightcg %getDirectioncf getIdce setNamecd getNamecc 1getDefaultLangcodecb !postDeleteca preDeletec` postSavec_ preSavec^ isLockedc] isDefaultc\ +languageManagerb[ /getDefaultOptionsb"Z EprocessLanguageConfigurationbY getInfobX ?getLanguageConfigOverrideaW #getLangcodeaV deletea
U saveaT 5getCacheableMetadataaS )onConfigDeleteaR )onConfigRenameaQ %onConfigSaveaP )addCollectionsaO 1createConfigObjectaN =installLanguageOverridesaM 9setLanguageFromDefaultaL #setLanguageaK #getLanguageaJ )getCacheSuffixaI !getStorageaH #getOverrideaG 'loadOverridesaF #__constructa#E GgetLangcodeFromCollectionNamea D AcreateConfigCollectionNameaC =getDefaultLanguageValues_B alter_A register_@ 3updateConfiguration_? 1purgeConfiguration_> /saveConfiguration_ = AisNegotiationMethodEnabled_!< CgetPrimaryNegotiationMethod_"; EgetNegotiationMethodInstance_: 7getNegotiationMethods_9 /negotiateLanguage_8 7getEnabledNegotiators_7 )initializeType_6 3initLanguageManager_5 #getLangcode_4 persist_3 )setCurrentUser_2 setConfig_1 1setLanguageManager_0 !submitForm_/ %validateForm_. buildForm_- buildRow_, #buildHeader_+ getFormId_
* load_) )createInstance_( applies_' convert_& #checkAccess_% /applyDefaultValue_$ 9isDefaultConfiguration_# 3isLanguageAlterable_" 5setLanguageAlterable_! 1getDefaultLangcode_  1setDefaultLangcode_ +setTargetBundle_ +getTargetBundle_ 7getTargetEntityTypeId_! CgetNegotiatedLanguageMethod_. ]getStandardLanguageListWithoutConfigured_   % tVb;pK)Q:ziM-




h
D
 
			y	Z	A	%	zV4#u`N;-iR5!eE'qZ;(fC0!vZK1]B%               ? 5validateTitleElement}> 1validateUriElement}= ?getUserEnteredStringAsUri}< ?getUriAsDisplayableString}; +defaultSettings}: setValue|9 getUrl|8 -mainPropertyName|7 !isExternal|6 isEmpty|5 3generateSampleValue|4 /fieldSettingsForm|3 schema|2 3propertyDefinitions|1 5defaultFieldSettings|0 buildUrl{/ %viewElements{. +settingsSummary{- %settingsForm{, +defaultSettings{+ #__construct{* create{) getUrl( !isExternal ' AtestLanguageEditLocalTasksy$& IgetLanguageAdminOverviewRoutesy!% CtestLanguageAdminLocalTasksy$ setUpy# !testDeletex" -testSaveExistingx! #testSaveNewx  setUpx 1providerTestDomainw !testDomainw 9providerTestPathPrefixw )testPathPrefixw$ IproviderLoadByEntityTypeBundlew  AtestLoadByEntityTypeBundlew$ IproviderIsDefaultConfigurationw  AtestIsDefaultConfigurationw ?providerLanguageAlterablew 7testLanguageAlterablew ;providerDefaultLangcodew 3testDefaultLangcodew -testTargetBundlew 9testTargetEntityTypeIdw testIdw ?testCalculateDependenciesw setUpw !testWeightw 'testDirectionw #getLangcodev 5baseFieldDefinitionsu
 )testSubRequestt	 3typeLinkActiveClasst !testEntityt createt #__constructt !submitForms buildForms getFormIds dataSetr viewsDatar  -schemaDefinitionr setUpr~ !testFilterr} testFieldr| %testArgumentr{ ;testLanguageNegotiationqz setUpqy 7testLanguageMigrationpx )assertLanguagepw )testConditionsov setUpo#u GtestDomainNameNegotiationPortnt checkUrlns ?testUrlRewritingEdgeCasesn!r CtestDisableLanguageSwitchernq =testContentCustomizationnp 1testLanguageDomainno ;testUrlLanguageFallbacknn runTestnm ?testUILanguageNegotiationnl 5testLanguageEditTournk 3testLanguageAddTournj -testLanguageTourni 9saveNativeLanguageNamen$h ItestLanguageSessionSwitchLinksn,g YdoTestLanguageLinkActiveClassAnonymousn0f adoTestLanguageLinkActiveClassAuthenticatedne 7testLanguageBodyClassn!d CtestLanguageLinkActiveClassn!c CtestLanguageBlockWithDomainn"b EdoTestLanguageBlockAnonymousn&a MdoTestLanguageBlockAuthenticatedn` /testLanguageBlockn _ AtestLanguageStringSelectorn!^ CgetAdministratorPermissionsn] 'testPageLinksn\ ;checkFixedLanguageTypesn[ 3testInfoAlterationsnZ stateSetnY +languageManagern*X UtestEnabledLanguageContentNegotiatornW =testDefaultConfigurationnV 1testLanguageStatesnU -testLanguageListn#T GtestModuleInstallLanguageListnS )testCandidatesn.R ]testDependencyInjectedNewDefaultLanguagen'Q OtestDependencyInjectedNewLanguagen*P UgetHighestConfigurableLanguageWeightn%O KcheckConfigurableLanguageWeightn%N KtestLanguageConfigurationWeightnM ?testLanguageConfigurationn"L EtestTaxonomyVocabularyUpdatenK 1testNodeTypeDeletenJ 1testNodeTypeUpdatenI 3testDefaultLangcoden&H MtestLanguageConfigurationElementn#G GtestValidLanguageConfigScheman'F OtestLanguageConfigOverrideInstalln$E ItestConfigOverrideImportEventsnD =testConfigOverrideImportn#C GtestUIBrowserLanguageMappingsn/B _testUnnecessaryLanguageSettingsVisibilitynA ?setCurrentRequestForRouten@ =createTranslatableEntityn5? ktestEntityUrlLanguageWithLanguageContentEnabledn> 7testEntityUrlLanguagen= /testEmptyLangcoden< !createNoden; /createContentTypen1: ctestEntityTranslationDefaultLanguageViaCoden9 testNamen   \ iV9}cH+iDaC!sR2





s
W
5

							w	c	W	C	4		
z_L7#{iWD/n[H6$oU>)t]F/k\J8%kR>/x\      f 3defaultLanguageDatae =testGetStringTranslationd 1testHasTranslationc )getExternalUrlb -getDirectoryPatha )getDescription` getName_ getType^ #processItem] create\ #__construct[ -createInfoStringZ /prepareUpdateDataY -translateFiltersX 7translateFilterValues W AtranslateFilterLoadStringsV resetFormU 9getEditableConfigNamesT %validateFormS !submitFormR buildFormQ getFormIdP createO #__constructN 3getSubscribedEventsM +saveTranslationL #__constructK 'translatePageJ -checkTranslationI 'setCustomizedH dbExecuteG dbDeleteF )dbStringUpdateE )dbStringInsertD )dbStringSelectC %dbStringLoadB %dbStringKeysA 'dbStringTable@ %dbFieldTable? /createTranslation> %createString= 1deleteTranslations< 'deleteStrings; %checkVersion: )updateLocation9 /countTranslations8 %countStrings7 +findTranslation6 !findString5 +getTranslations4 !getStrings
3 save2 #hasLocation1 #addLocation0 %getLocations/ getValues. setValues- !setStorage, !getStorage+ !setPlurals* !getPlurals) !setVersion( !getVersion' setId& getId% isNew$ setString# getString" 'isTranslation! isSource  %importString !writeItems writeItem setReport getReport readItem !readString #loadStrings setHeader getHeader !setOptions !getOptions #setLangcode #getLangcode %loadFormulae !getFormula 1getNumberOfPlurals -setPluralFormula destruct 3canTranslateEnglish getAll 'countProjects
 !disableAll	 deleteAll !resetCache )deleteMultiple delete #setMultiple	 set #getMultiple	 get -resolveCacheMiss  getCid getLids~ %getLangCodes#} GpredefinedConfiguredLanguages| listAll
{ readz ?saveCustomizedTranslationy ?resetExistingTranslationsx 3updateLocaleStoragew -onOverrideChangev %onConfigSaveu 3getSubscribedEventst )filterOverrides =updateConfigTranslations&r MisUpdatingTranslationsFromLocaleq #isSupportedp ;getActiveConfigLangcodeo =getDefaultConfigLangcoden )hasTranslationm 5getStringTranslationl resetk +translateString j AdeleteLanguageTranslationsi )getStringNamesh /getComponentNamesg ?deleteTranslationOverridef 7saveTranslationActivee ;saveTranslationOverrided ;processTranslatableDatac 3getTranslatableData"b EgetTranslatableDefaultConfiga #__construct` config_ )fileToDatabase%^ KtestValidateIgnoresInternalUrls"] EtestValidateWithMalformedUri\ -providerValidate[ %testValidateZ %testLinkItemY #testFieldUIX -renderTestEntityW ?testLinkSeparateFormatterV /testLinkFormatterU 'testLinkTitleT 5assertInvalidEntriesS 1assertValidEntriesR /testURLValidationQ setUpP #validatedByO validateN !initializeM createL #__constructK transformJ createI #__constructH 7processCckFieldValues~G 5getFieldFormatterMap~F !flagErrors}E /massageFormValues}D +settingsSummary}C %settingsForm}B 7supportsExternalLinks}A 7supportsInternalLinks}@ #formElement}   | eA|nQ3uX6fBsZ?





c
A
$
					n	W	B	'	rZ.kN,	tV<gE(lU*hG%
yM$qPB!     b 3getLocalePageRoutesa =testLocalePageLocalTasks` setUp_ =testDeleteWithoutStorage^ 9testSaveWithoutStorage] %testDestruct'\ OtestResolveCacheMissNoTranslation%[ KtestResolveCacheMissWithPersist*Z UresolveCacheMissWithFallbackProvider&Y MtestResolveCacheMissWithFallback)X StestResolveCacheMissWithoutFallbackW setUpV %authenticateU appliesT #__constructS 1testLocaleSettingsR setUpQ =testEnableCustomLanguageP 1testEnableLanguageO ?testEnableUninstallModuleN =testUpdateImportModeNone'M OtestUpdateImportModeNonCustomized!L CtestUpdateImportSourceLocal"K EtestUpdateImportSourceRemoteJ 7testUpdateCheckStatusI 1testUpdateProjectsH 'testInterface(G QtestLocaleUpdateDevelopmentReleaseF )testUpdateCronE 9setCurrentTranslationsD 3setTranslationFilesC !makePoFileB #addLanguageA =setTranslationsDirectory@ ;testUICustomizedStrings? -testStringSearch> 5testStringValidation= ?testJavaScriptTranslation< 7testStringTranslation; 9testEnglishTranslation-: [testLocaleTranslationClearCacheProjects!9 CtestTranslateStringTourTips8 5testTranslatedUpdate$7 ItestTranslatedSchemaDefinition6 /createTranslation5 7createAllTranslations4 /buildSourceString3 3testStringSearchAPI2 /testStringCRUDAPI1 ?getPoFileWithBrokenPlural 0 AgetPoFileWithMissingPlural / AgetPoFileWithComplexPlural. ?getPoFileWithSimplePlural- 5testPluralEditExport!, CtestPluralEditDateFormatter+ 3testGetPluralFormat#* GtestPathLanguageConfiguration") EtestLanguageFallbackDefaults( 9testCircularDependency' -testLibraryAlter)& StestLocaleTranslationJsDependencies% +testFileParsing$ 7getPoFileWithConfigDe# 3getPoFileWithConfig" 3getPoFileWithMsgstr! =getPoFileWithEmptyMsgstr  5getPoFileWithContext =getCustomOverwritePoFile 1getOverwritePoFile %getBadPoFile )getEmptyPoFile %importPoFile$ ItestCreatedLanguageTranslation* UtestConfigtranslationImportingPoFile -testConfigPoFile +testEmptyMsgstr 3testLanguageContext 5testStandalonePoFile ?testFileConfigurationPage 7getUntranslatedString +getCustomPoFile getPoFile' OtestExportTranslationTemplateFile 7testExportTranslation 9testContentTypeDirLang* UtestContentTypeLanguageConfiguration 1testMachineNameLTR -assertNodeConfig
 ?testOptionalConfiguration	 7testConfigTranslation0 atestLocaleRemovalAndConfigOverridePreserve. ]testLocaleRemovalAndConfigOverrideDelete( QtestConfigTranslationModuleInstall! CtestConfigTranslationImport /assertTranslation 3assertNoTranslation 1assertActiveConfig 5assertConfigOverride  9assertNoConfigOverride! CdeleteLocaleTranslationData~ 9deleteLanguageOverride} ?saveLocaleTranslationData| 5saveLanguageOverride{ -setUpTranslationz 1setUpNoTranslation!y CtestLocaleDeleteTranslation!x CtestLocaleUpdateTranslationw 7testUpdateTranslation!v CtestLocaleCreateTranslationu 7testCreateTranslationt 5setUpDefaultLanguages setUpr 1saveLanguageActiveq #testEnglish'p OtestLocaleDeleteActiveTranslation!o CtestDeleteActiveTranslationn 7testDeleteTranslation'm OtestLocaleUpdateActiveTranslation!l CtestUpdateActiveTranslation'k OtestLocaleCreateActiveTranslation!j CtestCreateActiveTranslationi ?testDefaultConfigLanguageh #setUpLocaleg )setUpLanguages   m oXD2pXG2zjYG*xhTG3$z`P=)








f
O
/
					V	5	|`RA3w`S9 saM>'gSD1qXD! oK4uYD,m                            getSource getStatus getLevel #__construct =buildDependencyMigration 'testMigration setUp  )assertMenuLink /testMenuUninstall~ +doTestMenuBlock} %verifyAccess| 3getStandardMenuLink{ ;testMenuParentsJsAccessz )enableMenuLinky +disableMenuLinkx )toggleMenuLinkw )deleteMenuLinkv 'resetMenuLinku )modifyMenuLinkt %moveMenuLinks )verifyMenuLink!r CcheckInvalidParentMenuLinksq 1addInvalidMenuLinkp #addMenuLinko =testBlockContextualLinks!n CtestUnpublishedNodeMenuItemm 5testSystemMenuRenamel =testMenuQueryAndFragment k AdoMenuLinkFormDefaultsTestj #doMenuTestsi -deleteCustomMenuh 'addCustomMenug /addCustomMenuCRUDf testMenue 9testMenuNodeFormWidget d AtestDefaultMenuLinkReorderc -testMenuLanguageb setUpa 'testMenuBlock` !getOptions_ create^ #__construct] -linkIsResettable\ )getConfirmText[ %getCancelUrlZ #getQuestionY %validateFormX buildFormW getFormIdV !submitFormU 1logDeletionMessageT )getDescriptionS createR #__constructQ menuTitleP -getParentOptionsO createN #__constructM renderL 5getDefaultOperationsK buildRowJ #buildHeaderI 1submitOverviewFormH 7buildOverviewTreeFormG /buildOverviewForm
F saveE )menuNameExists
D formC createB #__constructA setUp@ dynamic? 9testUndefinedLinkTitle> 'testMenuLinks= %assertEntity< setUp; 'testMenuLinks: setUp9 testStub8 setUp7 3testPathAliasChange6 )containerBuild5 7doTestTranslationEdit4 =testTranslationLinkTheme'3 OtestTranslationLinkOnMenuEditForm2 %createEntity!1 CgetAdministratorPermissions0 =getTranslatorPermissions'/ OtestMenuLinkContentFormValidation. ;testMenuLinkContentForm- )testRediscover#, GtestMenuLinkContentDeleteForm(+ QtestOutboundPathAndRouteProcessing$* ItestModuleUninstalledMenuLinks) ;testMenuLinkReparenting( )testCreateLink' 7assertMenuLinkParents& 3createLinkHierarchy% setUp$ getIds# !prepareRow" fields! query  transform !deleteLink )isTranslatable #isDeletable !updateLink getUuid /getTranslateRoute %getEditRoute )getDeleteRoute )getDescription getTitle getEntity create #__construct =getDerivativeDefinitions create #__construct
 save #buildEntity actions
 form create
 #__construct	 1getDeletionMessage )getRedirectUrl %getCancelUrl 9setRequiresRediscovery 3requiresRediscovery 5baseFieldDefinitions preDelete postSave preSave  preCreate 3getPluginDefinition~ getWeight} #getParentId| !isExpanded{ isEnabledz #getPluginIdy )getDescriptionx #getMenuNamew %getUrlObjectv getTitleu +setInsidePlugint addLinks ?getSharedTableFieldSchemar 9setRequiresRediscoveryq 3requiresRediscoveryp 3getPluginDefinitiono getWeightn #getParentIdm !isExpandedl isEnabledk #getPluginIdj )getDescriptioni #getMenuNameh %getUrlObjectg getTitlef +setInsidePlugine #checkAccessd )createInstancec #__construct   c mYB+pYD.xX9wgSC4pV=+





q
^
A
"
						d	P	;	!	nP8)uZD-iL5r_E1"vgI2gTG0wjWB+~c               - 1getMessageIterator, #saveMessage+ 'saveIdMapping* 3lookupDestinationId) )lookupSourceID( 5getRowsNeedingUpdate' 3getRowByDestination& )getRowBySource% )getFieldSchema$ %ensureTables# !setMessage
" init! #getDatabase  =getQualifiedMapTableName -messageTableName %mapTableName 3destinationIdFields )sourceIdFields create #__construct )processStubRow
 save !generateId 5updateEntityProperty %updateEntity getKey #getEntityId +getEntityTypeId /setRollbackAction -supportsRollback rollback /checkRequirements )rollbackAction 7calculateDependencies create
 #__construct	 getEntity fields getIds import +getSourcePlugin =getDerivativeDefinitions ;getDerivativeDefinition create #__construct  /checkRequirements !__toString~ !prepareRow} multiple| transform{ setUpdatez !setMessagey =getQualifiedMapTableNamex destroyw 1currentDestinationv 3lookupDestinationIdu )lookupSourceIDt 5getRowsNeedingUpdates 3getRowByDestinationr )getRowBySourceq 'clearMessagesp /deleteDestinationo deleten %messageCountm !errorCountl #updateCountk 'importedCountj )processedCounti 'prepareUpdateh 1getMessageIteratorg #saveMessagef 'saveIdMappinge )createInstanced #__constructc )rollbackActionb -supportsRollbacka rollback` import_ fields^ getIds] +buildMigrations\ 7getRequirementsString[ +getRequirementsZ #__constructY getRowX 9getDestinationIdValuesW getFieldsV #getSourceIdU getMapT getLevelS !getMessageR /getSourceIdValuesQ %getMigrationP #__constructO 7calculateDependenciesN trustDataM =getMigrationDependenciesL 5setTrackLastImportedK 3isTrackLastImportedJ /setSystemOfRecordI /getSystemOfRecordH 9mergeProcessOfPropertyG 5setProcessOfPropertyF !setProcessE !getProcess	D setC -allRowsProcessedB 1interruptMigrationA ;clearInterruptionResult@ 7getInterruptionResult? )getStatusLabel> getStatus= setStatus< -getEntityManager; /checkRequirements: 'saveHighWater9 %getHighWater8 3getHighWaterStorage7 getIdMap6 5getDestinationPlugin5 5getProcessNormalized4 /getProcessPlugins3 +getSourcePlugin2 isStub1 getHash0 #needsUpdate/ changed. rehash- getIdMap, setIdMap+ 9getDestinationProperty* /getRawDestination) )getDestination( ?removeDestinationProperty' 9setDestinationProperty& 9hasDestinationProperty% ;cloneWithoutDestination$ %freezeSource# /setSourceProperty" /getSourceProperty! /hasSourceProperty  /getSourceIdValues multiple transform 'addDependency 'getVariantIds %loadMultiple )createInstance -createMigrations +getAllTemplates /getTemplateByName 1findTemplatesByTag %getSaveToMap display !formatSize 5attemptMemoryReclaim )getMemoryUsage )memoryExceeded #checkStatus +handleException #saveMessage -currentSourceIds !processRow
 rollback	 import 1getEventDispatcher   @ m^D2vgVA-!jWC3'
sdO;"	mM-





|
i
G
6
						u	Y	=	'		kC%}?wI7`9x\L;%m>vV>nX@        E +testSourceCountD 'testRetrievalC -getIdMapContentsB 'testIterators$A ItestGetQualifiedMapTablePrefix@ #testDestroy? /testPrepareUpdate> 'testSetUpdate= )testErrorCount< 9errorCountDataProvider; +testUpdateCount: ;updateCountDataProvider9 1testProcessedCount8 /testImportedCount7 ?testLookupSourceIDMapping'6 OlookupSourceIDMappingDataProvider5 ;testGetRowByDestination$4 ItestLookupDestinationIdMapping,3 YlookupDestinationIdMappingDataProvider2 1testGetRowBySource1 +testMessageSave0 -testMessageCount/ =testGetRowsNeedingUpdate. /testClearMessages- )testSetMessage, /testSaveIdMapping+ 'idMapDefaults* getIdMap) saveMap( 3runEnsureTablesTest' 7testEnsureTablesExist& =testEnsureTablesNotExist% 1initializeIterator$ getIds# !__toString" fields! -setModuleHandler  5getMigrateExecutable$ ItestPrepareRowPrepareException& MtestPrepareRowMigratePrepareSkip% KtestPrepareRowGlobalPrepareSkip )testPrepareRow -testNewHighwater 7testOutdatedHighwater 3testNextNeedsUpdate 3testPrepareRowFalse testCount+ WtestHighwaterTrackChangesIncompatible getSource 'getMockSource! CtestProcessRowEmptyPipeline )testProcessRow) StestImportWithValidRowWithException6 mtestImportWithValidRowWithProcesMigrateException; wtestImportWithValidRowWithDestinationMigrateException/ _testImportWithValidRowNoDestinationValues0 atestImportWithValidRowWithoutDestinationId 9testImportWithValidRow! CtestImportWithFailingRewind
 7testMemoryNotExceeded%	 KtestMemoryExceededClearedEnough  AtestMemoryExceededNewBatch 7runMemoryExceededTest setUp ?testCalculateDependencies import fields getIds 7testGetTemplateByName  'testTemplates 3testConnectionTypes~ 3testSetInvalidation} #mockFailure| 9stopCollectingMessages{ ;startCollectingMessagesz /executeMigrationsy -executeMigrationx /prepareMigrationsw =cleanupMigrateConnectionv tearDownu ?createMigrationConnectiont !testStatuss 1testPrepareRowSkipr %testRollbackq displayp 1mapMessageRecordero -testMessagesTeedn 3testMessagesNotTeedm =postRowSaveEventRecorderl ;preRowSaveEventRecorderk ;postImportEventRecorderj 9preImportEventRecorderi 9mapDeleteEventRecorderh 5mapSaveEventRecorderg /testMigrateEventsf setUpe -testEmbeddedDatad -migrateDumpAlterc -setConfigurationb #mapJoinablea %prepareQuery` select_ 'setUpDatabase^ #getDatabase] create\ getCache[ 'getCurrentIdsZ !rowChangedY )aboveHighwater
X nextW rewindV valid	U keyT currentS #getIteratorR !prepareRowQ -getModuleHandlerP getIdsO !__toStringN 1initializeIteratorM fieldsL #__constructK countJ queryI setSourceH process	G rowF #skipOnEmptyE %transformKeyD multipleC createB #__constructA exists@ transform? valid
> next= 1currentDestination	< key; current: rewind9 destroy8 'clearMessages7 setUpdate6 /deleteDestination5 delete4 #countHelper3 %messageCount2 !errorCount1 #updateCount0 'importedCount/ )processedCount. 'prepareUpdate   7 }_9rL8 uV=$oS?*zcF/





t
P
/
							z	\	@	!	iE1nH-sR.{Y9jM2rZE(gS=.vgYJ7             V !prepareRowU getIdsT queryS fieldsR countQ valuesP 1initializeIteratorO 7calculateDependenciesN #variableGetM %moduleExistsL 9getModuleSchemaVersionK /checkRequirementsJ createI 'getSystemDataH #__constructG +getEntityTypeIdF 7calculateDependenciesE createD #__constructC %getFieldTypeB 7processFieldFormatterA /getFieldWidgetMap@ 1processFieldWidget? 5processFieldInstance> %processField= +buildMigrations< %getCckPlugin; create: #__construct9 %getFieldType8 7processCckFieldValues7 /getFieldWidgetMap6 5getFieldFormatterMap5 7processFieldFormatter4 1processFieldWidget3 5processFieldInstance2 %processField'1 OtestMapWithInvalidSourceAndBypass/0 _testMapWithInvalidSourceWithADefaultValue/ =testMapwithInvalidSource. 9testMapwithEmptySource- 7testMapWithSourceList, ;testMapWithSourceString+ ?testRowBypassesOnNonEmpty* 3testRowSkipsOnEmpty#) GtestProcessBypassesOnNonEmpty( ;testProcessSkipsOnEmpty' -testMachineNames& %testIterator % AtestTransformSourceArrayAt!$ CtestTransformSourceStringAt# =testTransformSourceArray" ?testTransformSourceString! #testFlatten  9testExtractFailDefault +testExtractFail 7testExtractFromString #testExtract 1entityQueryExpects 1providerTestDedupe# GtestDedupeEntityInvalidLength" EtestDedupeEntityInvalidStart !testDedupe %setDelimiter ;testConcatWithDelimiter 9testConcatWithNonArray  AtestConcatWithoutDelimiter #setCallable #__construct! CtestCallbackWithClassMethod =testCallbackWithFunction setUp getEntity setEntity! CtestImportEntityLoadFailure !testImport
 setUp	 ;getRequirementsProvider 9testGetExceptionString 3testGetRequirements 7testGetProcessPlugins 'getTestValues #__construct %updateEntity
 save getEntity"  EgetEntityRevisionDestination testSave~ =testGetEntityLoadFailure} =testGetEntityNewRevision!| CtestGetEntityUpdateRevision${ ItestGetEntityDestinationValuesz setUpy !testImportx )getFieldSchemaw !formatSizev 1setMemoryThresholdu )setMemoryLimitt )setMemoryUsages )getMemoryUsager 5attemptMemoryReclaimq )memoryExceededp +handleExceptiono /setSourceIdValuesn setSourcem 5setStringTranslationl 7calculateDependenciesk queryj setIdsi #mapJoinableh %setMigrationg #setDatabasef 3sqlBaseTestProvidere +testMapJoinabled ;testMultipleDestinationc +testDestinationb 7testGetSourcePropertya 1testSourceIdValues` +testGetSetIdMap_ #testHashing^ -testSetFrozenRow] -testSourceFreeze\ 9testRowWithInvalidData"[ EtestRowWithMultipleSourceIdsZ 5testRowWithBasicDataY 1testRowWithoutDataX -setEntityManagerW 5setDestinationPluginV +setSourcePluginU +setRequirementsT #__construct#S GtestRequirementsForMigrations*R UtestRequirementsForDestinationPlugin%Q KtestRequirementsForSourcePluginP 'getVariantIds5O ktestGetVariantIdsNoVariantsOrStaticDependencies!N CtestGetVariantIdsNoVariants#M GtestGetVariantIdsWithVariantsL 7retrievalAssertHelperK +queryResultTestJ 3createSchemaFromRowI #getDatabaseH %getMigrationG getValueF %testSourceId    p[M0qc>tfR9~jP7!l\I9,






x
i
U
D
1
							{	k	_	J	0		yjYH1p_?oX?#q]H1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       ^ ;prepareRevertedRevision] )getDescription\ 1logDeletionMessage[ 1getDeletionMessageZ !submitFormY buildFormX )getConfirmTextW %getCancelUrlV #getQuestionU getFormIdT createS #__constructR #alterRoutesQ #__constructP )getDescriptionO getHelpN )setPreviewModeM )getPreviewModeL 3setDisplaySubmittedK -displaySubmittedJ )setNewRevisionI 'isNewRevisionH isLockedG idF getRoutesE -getCurrentUserIdD 5baseFieldDefinitionsC 3setRevisionAuthorIdB /getRevisionAuthorA ;setRevisionCreationTime@ ;getRevisionCreationTime? setOwner> !setOwnerId= !getOwnerId< getOwner; %setPublished: #isPublished9 setSticky8 isSticky7 #setPromoted6 !isPromoted5 )setCreatedTime4 )getCreatedTime3 setTitle2 getTitle1 access0 getType/ !postDelete. preDelete- postSave, +preSaveRevision+ preSave* title
) view( %addPageTitle' -revisionOverview& /revisionPageTitle% %revisionShow	$ add# addPage" create! #__construct  5getAvailableContexts 1getRuntimeContexts #__construct setEntity 5getCacheableMetadata +checkNodeGrants !getContext getLabel #checkAccess access #__construct ?buildGrantsQueryCondition /deleteNodeRecords count %writeDefault delete write !alterQuery checkAll
 save preview !submitForm
 actions	 %updateStatus
 form 'prepareEntity create )checkAllGrants #countGrants %deleteGrants /writeDefaultGrant #writeGrants  'acquireGrants -checkFieldAccess~ /checkCreateAccess} #checkAccess| %createAccess{ accessz )createInstancey #__constructx getIdsw 1variableGetWrapper#v GgetModuleSchemaVersionWrapperu 3moduleExistsWrappert -setModuleHandlers #setDatabaser queryq fieldsp +testVariableGet o AtestGetModuleSchemaVersionn ;testDrupal6ModuleExistsm /testGetSystemDatal setUpk setUp'j OtestAggregatorMigrateDependencies"i EtestMigrateDependenciesOrderh setUpg +migrateTaxonomyf )migrateContente 'migrateFieldsd 3migrateContentTypesc %migrateUsersb ;testOverwriteProperties&a MtestOverwriteAllMappedProperties` 5testRequirementCheck_ setUp^ %validateStub] !createStub\ +performStubTest[ /installMigrationsZ #loadFixtureY setUpX )getFieldValuesW getFields   E kL6_A,tcK/nV=&
n[H5$	







o
Y
D
5
%
				|	h	L	1	}fR5*	kS2r]H8lQ0bG+aA ~mU={^E                     p -LogMessageParser o 5LoggerChannelFactory n 'LoggerChannel #m GPersistentDatabaseLockBackend l +NullLockBackend k 3LockBackendAbstract j 3DatabaseLockBackend i )CountryManager h 9CurrentLanguageContext g +LanguageManager f +LanguageDefault e Language d #StorageBase c 5NullStorageExpirable b 'MemoryStorage "a EKeyValueNullExpirableFactory ` 7KeyValueMemoryFactory _ +KeyValueFactory ^ =KeyValueExpirableFactory ] ;KeyValueDatabaseFactory &\ MKeyValueDatabaseExpirableFactory [ =DatabaseStorageExpirable Z +DatabaseStorage Y -SiteSettingsForm X /SiteConfigureForm W /SelectProfileForm V 1SelectLanguageForm U 3NoProfilesException T 1InstallerException S ?AlreadyInstalledException R =InstallerServiceProvider Q 7InstallerRouteBuilder P +InstallerKernel O 7ImageToolkitOperationN %ImageToolkit!M EImageToolkitOperationManager~L ?ImageToolkitOperationBase~K 3ImageToolkitManager~J -ImageToolkitBase~I %ImageFactory}
H Image}G ATrustedHostsRequestFactory|F =HandlerStackConfigurator|E 'ClientFactory|D ABrokenPostRequestException{C 1FormAjaxSubscriberzB OptGroupyA 'FormValidatory@ 'FormSubmittery? FormStatey> !FormHelpery= -FormErrorHandlery< /FormElementHelpery; FormCachey: #FormBuildery9 FormBasey8 ;FormAjaxResponseBuildery7 /FormAjaxExceptiony6 ?EnforcedResponseExceptiony5 -EnforcedResponsey4 /ConfirmFormHelpery3 +ConfirmFormBasey2 )ConfigFormBasey1 'MemoryBackendx0 +DatabaseBackendx/ ?FileTransferAuthorizeFormw. SSHv
- Localv, %FTPExtensionv+ FTPv* 7FileTransferExceptionv) %FileTransferv( +MimeTypeGuesseru' =ExtensionMimeTypeGuesseru& !FileSystemt% ;FieldItemDataDefinitions$ UriWidgetr# 7StringTextfieldWidgetr" 5StringTextareaWidgetr! /OptionsWidgetBaser  3OptionsSelectWidgetr 5OptionsButtonsWidgetr %NumberWidgetr 5LanguageSelectWidgetr& OEntityReferenceAutocompleteWidgetr* WEntityReferenceAutocompleteTagsWidgetr 1EmailDefaultWidgetr 7BooleanCheckboxWidgetr UuidItemq UriItemq 'TimestampItemq )StringLongItemq )StringItemBaseq !StringItemq %PasswordItemq +NumericItemBaseq MapItemq %LanguageItemq #IntegerItemq FloatItemq 3EntityReferenceItemq EmailItemq
 #DecimalItemq	 #CreatedItemq #ChangedItemq #BooleanItemq -UriLinkFormatterp 1TimestampFormatterp 7TimestampAgoFormatterp +StringFormatterp  CNumericUnformattedFormatterp 5NumericFormatterBasep  +MailToFormatterp /LanguageFormatterp~ -IntegerFormatterp"} GEntityReferenceLabelFormatterp| AEntityReferenceIdFormatterp!{ EEntityReferenceFormatterBasep#z IEntityReferenceEntityFormatterpy -DecimalFormatterpx -BooleanFormatterpw 5BasicStringFormatterpv -FieldItemDeriverou FieldItemnt /BaseFieldOverridems #FieldWidgetlr FieldTypelq )FieldFormatterlp 3WidgetPluginManagerko !WidgetBasekn 1PluginSettingsBasekm 9FormatterPluginManagerkl 'FormatterBasekk 9FieldTypePluginManagerk#j IFieldStorageDefinitionListenerk!i EFieldStorageDefinitionEventsk h CFieldStorageDefinitionEventk"g GFieldModuleUninstallValidatorkf 'FieldItemListke 'FieldItemBasekd 3FieldFilteredMarkupkc )FieldExceptionkb ;FieldDefinitionListenerka 9FieldConfigStorageBasek` +FieldConfigBasek!_ EEntityReferenceFieldItemListk^ 5ChangedFieldItemListk] =BaseFieldOverrideStoragek    iR:'ReH4~jE2oS8





~
f
H
.
						{	b	M	0	bJ4y^8{b:uY3
nF!dJ&}\<[7         ` ALanguageNegotiationSessionk!_ CLanguageNegotiationSelectedk&^ MLanguageNegotiationContentEntityk ] ALanguageNegotiationBrowserk\ 'LanguageBlockj[ LanguageiZ 'LanguageBlockhY 7PathProcessorLanguagegX 1NegotiationUrlFormfW 9NegotiationSessionFormfV ;NegotiationSelectedFormfU =NegotiationConfigureFormfT 9NegotiationBrowserFormf"S ENegotiationBrowserDeleteFormfR -LanguageFormBasefQ -LanguageEditFormfP 1LanguageDeleteFormfO +LanguageAddFormf!N CContentLanguageSettingsFormfM /LanguageExceptione$L IDeleteDefaultLanguageExceptioneK ?LanguageRequestSubscriberdJ -ConfigSubscriberdI ;ContentLanguageSettingscH 5ConfigurableLanguagecG 7LanguageConfigurationb"F ELanguageConfigOverrideEventsa%E KLanguageConfigOverrideCrudEventaD 9LanguageConfigOverridea#C GLanguageConfigFactoryOverrideaB 3LanguageNegotiation`A ;LanguageServiceProvider_@ 1LanguageNegotiator_&? MLanguageNegotiationMethodManager_#> GLanguageNegotiationMethodBase_= 3LanguageListBuilder_< /LanguageConverter_"; ELanguageAccessControlHandler_: 3DefaultLanguageItem_&9 MContentLanguageSettingsException_!8 CConfigurableLanguageManager_7 5FormErrorHandlerTest^%6 KInlineFormErrorsServiceProvider]5 -FormErrorHandler]4 9MigrateImageStylesTest\3 5ImageCachePresetTest['2 ODenyPrivateImageStyleDownloadTestZ1 )ImageStyleTestY!0 CUriDependentTestImageEffectX/ 3NullTestImageEffectX#. GRelationshipUserImageDataTestW- 1ImageViewsDataTestW, 9MigrateImageStylesTestV+ =MigrateImageSettingsTestV* 7MigrateImageCacheTestU) 9ImageThemeFunctionTestT( ?ImageStylesPathAndUrlTestT' 3ImageStyleFlushTestT& 'ImageItemTestT% +ImageImportTestT$ 5ImageFieldWidgetTestT# 9ImageFieldValidateTestT" 1ImageFieldTestBaseT! 7ImageFieldDisplayTestT!  CImageFieldDefaultImagesTestT -ImageEffectsTestT 3ImageDimensionsTestT 5ImageAdminStylesTestT %FileMoveTestT -ImageStyleRoutesS #ImageStylesR -ImageCachePresetQ /ImageCacheActionsP -EntityImageStyleO -ScaleImageEffectN ;ScaleAndCropImageEffectN /RotateImageEffectN /ResizeImageEffectN 7DesaturateImageEffectN +CropImageEffectN 1ConvertImageEffectN #ImageWidgetM ImageItemL 1ImageFormatterBaseK )ImageFormatterK =PathProcessorImageStylesJ#
 GDenyPrivateImageStyleDownloadI	 1ImageStyleFormBaseH 3ImageStyleFlushFormH 1ImageStyleEditFormH 5ImageStyleDeleteFormH /ImageStyleAddFormH 3ImageEffectFormBaseH 3ImageEffectEditFormH 7ImageEffectDeleteFormH 1ImageEffectAddFormH  !ImageStyleG" EImageStyleDownloadControllerF~ #ImageEffectE} 7ImageStyleListBuilderD!| CImageEffectPluginCollectionD{ 1ImageEffectManagerDz +ImageEffectBaseD!y CConfigurableImageEffectBaseDx 5HistoryTimestampTestCw #HistoryTestBv 5HistoryUserTimestampAu 5HistoryUserTimestamp@t /HistoryController?s 1SupernovaGenerator>r !NoHelpTest=q HelpTest=p /HelpEmptyPageTest=o HelpBlock<n )HelpController;1m cNormalizerDenormalizeExceptionsUnitTestBase:2l eFieldNormalizerDenormalizeExceptionsUnitTest:6k mFieldItemNormalizerDenormalizeExceptionsUnitTest:j 'NormalizeTest9i 1NormalizerTestBase9h /FileNormalizeTest9g 3FileDenormalizeTest9f !EntityTest9e +DenormalizeTest9d )NormalizerBase8c 5FileEntityNormalizer8b +FieldNormalizer8a 3FieldItemNormalizer8#` GEntityReferenceItemNormalizer8_ ;ContentEntityNormalizer8;.//class.eventbufferevent.html:     <code class="parameter">$port</code>
;.//class.eventhttp.html:     <code class="parameter">$port</code>
;.//class.eventhttpconnection.html:     <code class="parameter">$port</code>
;.//class.eventhttpconnection.html:     <code class="parameter reference">&$port</code>
;.//class.eventhttpconnection.html:     <code class="parameter">$port</code>
;.//class.eventlistener.html:     <code class="parameter reference">&$port</code>
;.//class.eventutil.html:     <code class="parameter reference">&$port</code>
;.//class.gearmanclient.html:   [, <span class="methodparam"><span class="type">int</span> <code class="parameter">$port</code><span class="initializer"> = 4730</span></span>
;.//class.gearmanworker.html:   [, <span class="methodparam"><span class="type">int</span> <code class="parameter">$port</code><span class="initializer"> = 4730</span></span>
;.//class.memcache.html:   [, <span class="methodparam"><span class="type">int</span> <code class="parameter">$port</code><span class="initializer"> = 11211</span></span>
;.//class.memcache.html:   [, <span class="methodparam"><span class="type">int</span> <code class="parameter">$port</code></span>
;.//class.memcache.html:   [, <span class="methodparam"><span class="type">int</span> <code class="parameter">$port</code><span class="initializer"> = 11211</span></span>
;.//class.memcache.html:   [, <span class="methodparam"><span class="type">int</span> <code class="parameter">$port</code></span>
;.//class.memcache.html:   [, <span class="methodparam"><span class="type">int</span> <code class="parameter">$port</code><span class="initializer"> = 11211</span></span>
;.//class.memcached.html:   , <span class="methodparam"><span class="type">int</span> <code class="parameter">$port</code></span>
;.//class.mysqli.html:   [, <span class="methodparam"><span class="type">int</span> <code class="parameter">$port</code><span class="initializer"> = ini_get(&quot;mysqli.default_port&quot;)</span></span>
;.//class.mysqli.html:   [, <span class="methodparam"><span class="type">int</span> <code class="parameter">$port</code></span>
;.//class.mysqlnduhconnection.html:   , <span class="methodparam"><span class="type">int</span> <code class="parameter">$port</code></span>
;.//class.sphinxclient.html:   , <span class="methodparam"><span class="type">int</span> <code class="parameter">$port</code></span>
;.//class.tokyotyrant.html:   [, <span class="methodparam"><span class="type">int</span> <code class="parameter">$port</code><span class="initializer"> = TokyoTyrant::RDBDEF_PORT</span></span>
;.//class.tokyotyrant.html:   [, <span class="methodparam"><span class="type">int</span> <code class="parameter">$port</code><span class="initializer"> = TokyoTyrant::RDBDEF_PORT</span></span>
;.//class.tokyotyrant.html:   , <span class="methodparam"><span class="type">int</span> <code class="parameter">$port</code></span>
;.//class.tokyotyrantiterator.html:   [, <span class="methodparam"><span class="type">int</span> <code class="parameter">$port</code><span class="initializer"> = TokyoTyrant::RDBDEF_PORT</span></span>
;.//class.tokyotyrantiterator.html:   [, <span class="methodparam"><span class="type">int</span> <code class="parameter">$port</code><span class="initializer"> = TokyoTyrant::RDBDEF_PORT</span></span>
;.//class.tokyotyrantiterator.html:   , <span class="methodparam"><span class="type">int</span> <code class="parameter">$port</code></span>
;.//class.tokyotyranttable.html:   [, <span class="methodparam"><span class="type">int</span> <code class="parameter">$port</code><span class="initializer"> = TokyoTyrant::RDBDEF_PORT</span></span>
;.//class.tokyotyranttable.html:   [, <span class="methodparam"><span class="type">int</span> <code class="parameter">$port</code><span class="initializer"> = TokyoTyrant::RDBDEF_PORT</span></span>
;.//class.tokyotyranttable.html:   , <span class="methodparam"><span class="type">int</span> <code class="parameter">$port</code></span>
;.//class.varnishadmin.html:    ( <span class="methodparam"><span class="type">int</span> <code class="parameter">$port</code></span>
;.//event.examples.html:<span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/*<br />&nbsp;*&nbsp;Simple&nbsp;echo&nbsp;server&nbsp;based&nbsp;on&nbsp;libevent's&nbsp;connection&nbsp;listener.<br />&nbsp;*<br />&nbsp;*&nbsp;Usage:<br />&nbsp;*&nbsp;1)&nbsp;In&nbsp;one&nbsp;terminal&nbsp;window&nbsp;run:<br />&nbsp;*<br />&nbsp;*&nbsp;$&nbsp;php&nbsp;listener.php&nbsp;9881<br />&nbsp;*<br />&nbsp;*&nbsp;2)&nbsp;In&nbsp;another&nbsp;terminal&nbsp;window&nbsp;open&nbsp;up&nbsp;connection,&nbsp;e.g.:<br />&nbsp;*<br />&nbsp;*&nbsp;$&nbsp;nc&nbsp;127.0.0.1&nbsp;9881<br />&nbsp;*<br />&nbsp;*&nbsp;3)&nbsp;start&nbsp;typing.&nbsp;The&nbsp;server&nbsp;should&nbsp;repeat&nbsp;the&nbsp;input.<br />&nbsp;*/<br /><br /></span><span style="color: #007700">class&nbsp;</span><span style="color: #0000BB">MyListenerConnection&nbsp;</span><span style="color: #007700">{<br />&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;</span><span style="color: #0000BB">$bev</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$base</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;</span><span style="color: #0000BB">__destruct</span><span style="color: #007700">()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">bev</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">free</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;</span><span style="color: #0000BB">__construct</span><span style="color: #007700">(</span><span style="color: #0000BB">$base</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$fd</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">base&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$base</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">bev&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">EventBufferEvent</span><span style="color: #007700">(</span><span style="color: #0000BB">$base</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$fd</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">EventBufferEvent</span><span style="color: #007700">::</span><span style="color: #0000BB">OPT_CLOSE_ON_FREE</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">bev</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">setCallbacks</span><span style="color: #007700">(array(</span><span style="color: #0000BB">$this</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"echoReadCallback"</span><span style="color: #007700">),&nbsp;</span><span style="color: #0000BB">NULL</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(</span><span style="color: #0000BB">$this</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"echoEventCallback"</span><span style="color: #007700">),&nbsp;</span><span style="color: #0000BB">NULL</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">bev</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">enable</span><span style="color: #007700">(</span><span style="color: #0000BB">Event</span><span style="color: #007700">::</span><span style="color: #0000BB">READ</span><span style="color: #007700">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Failed&nbsp;to&nbsp;enable&nbsp;READ\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;</span><span style="color: #0000BB">echoReadCallback</span><span style="color: #007700">(</span><span style="color: #0000BB">$bev</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$ctx</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Copy&nbsp;all&nbsp;the&nbsp;data&nbsp;from&nbsp;the&nbsp;input&nbsp;buffer&nbsp;to&nbsp;the&nbsp;output&nbsp;buffer<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Variant&nbsp;#1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$bev</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">output</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">addBuffer</span><span style="color: #007700">(</span><span style="color: #0000BB">$bev</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">input</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">/*&nbsp;Variant&nbsp;#2&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$input&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$bev_&gt;getInput();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$output&nbsp;=&nbsp;$bev_&gt;getOutput();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$output_&gt;addBuffer($input);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;</span><span style="color: #0000BB">echoEventCallback</span><span style="color: #007700">(</span><span style="color: #0000BB">$bev</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$events</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$ctx</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$events&nbsp;</span><span style="color: #007700">&amp;&nbsp;</span><span style="color: #0000BB">EventBufferEvent</span><span style="color: #007700">::</span><span style="color: #0000BB">ERROR</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Error&nbsp;from&nbsp;bufferevent\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$events&nbsp;</span><span style="color: #007700">&amp;&nbsp;(</span><span style="color: #0000BB">EventBufferEvent</span><span style="color: #007700">::</span><span style="color: #0000BB">EOF&nbsp;</span><span style="color: #007700">|&nbsp;</span><span style="color: #0000BB">EventBufferEvent</span><span style="color: #007700">::</span><span style="color: #0000BB">ERROR</span><span style="color: #007700">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//$bev_&gt;free();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">__destruct</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br />class&nbsp;</span><span style="color: #0000BB">MyListener&nbsp;</span><span style="color: #007700">{<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">$base</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$listener</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$socket</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;</span><span style="color: #0000BB">$conn&nbsp;</span><span style="color: #007700">=&nbsp;array();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;</span><span style="color: #0000BB">__destruct</span><span style="color: #007700">()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;(</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">conn&nbsp;</span><span style="color: #007700">as&nbsp;&amp;</span><span style="color: #0000BB">$c</span><span style="color: #007700">)&nbsp;</span><span style="color: #0000BB">$c&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">NULL</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;</span><span style="color: #0000BB">__construct</span><span style="color: #007700">(</span><span style="color: #0000BB">$port</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">base&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">EventBase</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">base</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Couldn't&nbsp;open&nbsp;event&nbsp;base"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Variant&nbsp;#1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this_&gt;socket&nbsp;=&nbsp;socket_create(AF_INET,&nbsp;SOCK_STREAM,&nbsp;SOL_TCP);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!socket_bind($this_&gt;socket,&nbsp;'0.0.0.0',&nbsp;$port))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;"Unable&nbsp;to&nbsp;bind&nbsp;socket\n";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this_&gt;listener&nbsp;=&nbsp;new&nbsp;EventListener($this_&gt;base,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array($this,&nbsp;"acceptConnCallback"),&nbsp;$this_&gt;base,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EventListener::OPT_CLOSE_ON_FREE&nbsp;|&nbsp;EventListener::OPT_REUSEABLE,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_1,&nbsp;$this_&gt;socket);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Variant&nbsp;#2<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">listener&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">EventListener</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">base</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(</span><span style="color: #0000BB">$this</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"acceptConnCallback"</span><span style="color: #007700">),&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">base</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">EventListener</span><span style="color: #007700">::</span><span style="color: #0000BB">OPT_CLOSE_ON_FREE&nbsp;</span><span style="color: #007700">|&nbsp;</span><span style="color: #0000BB">EventListener</span><span style="color: #007700">::</span><span style="color: #0000BB">OPT_REUSEABLE</span><span style="color: #007700">,&nbsp;_</span><span style="color: #0000BB">1</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">"0.0.0.0:</span><span style="color: #0000BB">$port</span><span style="color: #DD0000">"</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">listener</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Couldn't&nbsp;create&nbsp;listener"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">listener</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">setErrorCallback</span><span style="color: #007700">(array(</span><span style="color: #0000BB">$this</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"accept_error_cb"</span><span style="color: #007700">));<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;</span><span style="color: #0000BB">dispatch</span><span style="color: #007700">()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">base</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">dispatch</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;This&nbsp;callback&nbsp;is&nbsp;invoked&nbsp;when&nbsp;there&nbsp;is&nbsp;data&nbsp;to&nbsp;read&nbsp;on&nbsp;$bev<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">acceptConnCallback</span><span style="color: #007700">(</span><span style="color: #0000BB">$listener</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$fd</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$address</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$ctx</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;We&nbsp;got&nbsp;a&nbsp;new&nbsp;connection!&nbsp;Set&nbsp;up&nbsp;a&nbsp;bufferevent&nbsp;for&nbsp;it.&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$base&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">base</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">conn</span><span style="color: #007700">[]&nbsp;=&nbsp;new&nbsp;</span><span style="color: #0000BB">MyListenerConnection</span><span style="color: #007700">(</span><span style="color: #0000BB">$base</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$fd</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;</span><span style="color: #0000BB">accept_error_cb</span><span style="color: #007700">(</span><span style="color: #0000BB">$listener</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$ctx</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$base&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">base</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">fprintf</span><span style="color: #007700">(</span><span style="color: #0000BB">STDERR</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"Got&nbsp;an&nbsp;error&nbsp;%d&nbsp;(%s)&nbsp;on&nbsp;the&nbsp;listener.&nbsp;"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">.</span><span style="color: #DD0000">"Shutting&nbsp;down.\n"</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">EventUtil</span><span style="color: #007700">::</span><span style="color: #0000BB">getLastSocketErrno</span><span style="color: #007700">(),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">EventUtil</span><span style="color: #007700">::</span><span style="color: #0000BB">getLastSocketError</span><span style="color: #007700">());<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$base</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">exit</span><span style="color: #007700">(</span><span style="color: #0000BB">NULL</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br /></span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">9808</span><span style="color: #007700">;<br /><br />if&nbsp;(</span><span style="color: #0000BB">$argc&nbsp;</span><span style="color: #007700">&gt;&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">=&nbsp;(int)&nbsp;</span><span style="color: #0000BB">$argv</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">];<br />}<br />if&nbsp;(</span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">&lt;=&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #007700">||&nbsp;</span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">&gt;&nbsp;</span><span style="color: #0000BB">65535</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;exit(</span><span style="color: #DD0000">"Invalid&nbsp;port"</span><span style="color: #007700">);<br />}<br /><br /></span><span style="color: #0000BB">$l&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">MyListener</span><span style="color: #007700">(</span><span style="color: #0000BB">$port</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$l</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">dispatch</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">?&gt;</span>
;.//event.examples.html:<span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/*<br />&nbsp;*&nbsp;SSL&nbsp;echo&nbsp;server<br />&nbsp;*<br />&nbsp;*&nbsp;To&nbsp;test:<br />&nbsp;*&nbsp;1)&nbsp;Run:<br />&nbsp;*&nbsp;$&nbsp;php&nbsp;examples/ssl_echo_server/server.php&nbsp;9998<br />&nbsp;*<br />&nbsp;*&nbsp;2)&nbsp;in&nbsp;another&nbsp;terminal&nbsp;window&nbsp;run:<br />&nbsp;*&nbsp;$&nbsp;socat&nbsp;_&nbsp;SSL:127.0.0.1:9998,verify=1,cafile=examples/ssl_echo_server/cert.pem<br />&nbsp;*/<br /><br /></span><span style="color: #007700">class&nbsp;</span><span style="color: #0000BB">MySslEchoServer&nbsp;</span><span style="color: #007700">{<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">$port</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$base</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$bev</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$listener</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$ctx</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;</span><span style="color: #0000BB">__construct&nbsp;</span><span style="color: #007700">(</span><span style="color: #0000BB">$port</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$host&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"127.0.0.1"</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">port&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$port</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">ctx&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">init_ssl</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">ctx</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(</span><span style="color: #DD0000">"Failed&nbsp;creating&nbsp;SSL&nbsp;context\n"</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">base&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">EventBase</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">base</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(</span><span style="color: #DD0000">"Couldn't&nbsp;open&nbsp;event&nbsp;base\n"</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">listener&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">EventListener</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">base</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(</span><span style="color: #0000BB">$this</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"ssl_accept_cb"</span><span style="color: #007700">),&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">ctx</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">EventListener</span><span style="color: #007700">::</span><span style="color: #0000BB">OPT_CLOSE_ON_FREE&nbsp;</span><span style="color: #007700">|&nbsp;</span><span style="color: #0000BB">EventListener</span><span style="color: #007700">::</span><span style="color: #0000BB">OPT_REUSEABLE</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_</span><span style="color: #0000BB">1</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"</span><span style="color: #0000BB">$host</span><span style="color: #DD0000">:</span><span style="color: #0000BB">$port</span><span style="color: #DD0000">"</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">listener</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(</span><span style="color: #DD0000">"Couldn't&nbsp;create&nbsp;listener\n"</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">listener</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">setErrorCallback</span><span style="color: #007700">(array(</span><span style="color: #0000BB">$this</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"accept_error_cb"</span><span style="color: #007700">));<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;</span><span style="color: #0000BB">dispatch</span><span style="color: #007700">()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">base</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">dispatch</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;This&nbsp;callback&nbsp;is&nbsp;invoked&nbsp;when&nbsp;there&nbsp;is&nbsp;data&nbsp;to&nbsp;read&nbsp;on&nbsp;$bev.<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">ssl_read_cb</span><span style="color: #007700">(</span><span style="color: #0000BB">$bev</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$ctx</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$in&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$bev</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">input</span><span style="color: #007700">;&nbsp;</span><span style="color: #FF8000">//$bev_&gt;getInput();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">printf</span><span style="color: #007700">(</span><span style="color: #DD0000">"Received&nbsp;%zu&nbsp;bytes\n"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$in</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">length</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">printf</span><span style="color: #007700">(</span><span style="color: #DD0000">"_____&nbsp;data&nbsp;____\n"</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">printf</span><span style="color: #007700">(</span><span style="color: #DD0000">"%ld:\t%s\n"</span><span style="color: #007700">,&nbsp;(int)&nbsp;</span><span style="color: #0000BB">$in</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">length</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$in</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">pullup</span><span style="color: #007700">(_</span><span style="color: #0000BB">1</span><span style="color: #007700">));<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$bev</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">writeBuffer</span><span style="color: #007700">(</span><span style="color: #0000BB">$in</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;This&nbsp;callback&nbsp;is&nbsp;invoked&nbsp;when&nbsp;some&nbsp;even&nbsp;occurs&nbsp;on&nbsp;the&nbsp;event&nbsp;listener,<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;e.g.&nbsp;connection&nbsp;closed,&nbsp;or&nbsp;an&nbsp;error&nbsp;occured<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">ssl_event_cb</span><span style="color: #007700">(</span><span style="color: #0000BB">$bev</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$events</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$ctx</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$events&nbsp;</span><span style="color: #007700">&amp;&nbsp;</span><span style="color: #0000BB">EventBufferEvent</span><span style="color: #007700">::</span><span style="color: #0000BB">ERROR</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Fetch&nbsp;errors&nbsp;from&nbsp;the&nbsp;SSL&nbsp;error&nbsp;stack<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">while&nbsp;(</span><span style="color: #0000BB">$err&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$bev</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">sslError</span><span style="color: #007700">())&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">fprintf</span><span style="color: #007700">(</span><span style="color: #0000BB">STDERR</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"Bufferevent&nbsp;error&nbsp;%s.\n"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$err</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$events&nbsp;</span><span style="color: #007700">&amp;&nbsp;(</span><span style="color: #0000BB">EventBufferEvent</span><span style="color: #007700">::</span><span style="color: #0000BB">EOF&nbsp;</span><span style="color: #007700">|&nbsp;</span><span style="color: #0000BB">EventBufferEvent</span><span style="color: #007700">::</span><span style="color: #0000BB">ERROR</span><span style="color: #007700">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$bev</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">free</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;This&nbsp;callback&nbsp;is&nbsp;invoked&nbsp;when&nbsp;a&nbsp;client&nbsp;accepts&nbsp;new&nbsp;connection<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">ssl_accept_cb</span><span style="color: #007700">(</span><span style="color: #0000BB">$listener</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$fd</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$address</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$ctx</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;We&nbsp;got&nbsp;a&nbsp;new&nbsp;connection!&nbsp;Set&nbsp;up&nbsp;a&nbsp;bufferevent&nbsp;for&nbsp;it.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">bev&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">EventBufferEvent</span><span style="color: #007700">::</span><span style="color: #0000BB">sslSocket</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">base</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$fd</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">ctx</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">EventBufferEvent</span><span style="color: #007700">::</span><span style="color: #0000BB">SSL_ACCEPTING</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">EventBufferEvent</span><span style="color: #007700">::</span><span style="color: #0000BB">OPT_CLOSE_ON_FREE</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">bev</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Failed&nbsp;creating&nbsp;ssl&nbsp;buffer\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">base</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">exit</span><span style="color: #007700">(</span><span style="color: #0000BB">NULL</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">bev</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">enable</span><span style="color: #007700">(</span><span style="color: #0000BB">Event</span><span style="color: #007700">::</span><span style="color: #0000BB">READ</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">bev</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">setCallbacks</span><span style="color: #007700">(array(</span><span style="color: #0000BB">$this</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"ssl_read_cb"</span><span style="color: #007700">),&nbsp;</span><span style="color: #0000BB">NULL</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(</span><span style="color: #0000BB">$this</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"ssl_event_cb"</span><span style="color: #007700">),&nbsp;</span><span style="color: #0000BB">NULL</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;This&nbsp;callback&nbsp;is&nbsp;invoked&nbsp;when&nbsp;we&nbsp;failed&nbsp;to&nbsp;setup&nbsp;new&nbsp;connection&nbsp;for&nbsp;a&nbsp;client<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">accept_error_cb</span><span style="color: #007700">(</span><span style="color: #0000BB">$listener</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$ctx</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">fprintf</span><span style="color: #007700">(</span><span style="color: #0000BB">STDERR</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"Got&nbsp;an&nbsp;error&nbsp;%d&nbsp;(%s)&nbsp;on&nbsp;the&nbsp;listener.&nbsp;"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">.</span><span style="color: #DD0000">"Shutting&nbsp;down.\n"</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">EventUtil</span><span style="color: #007700">::</span><span style="color: #0000BB">getLastSocketErrno</span><span style="color: #007700">(),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">EventUtil</span><span style="color: #007700">::</span><span style="color: #0000BB">getLastSocketError</span><span style="color: #007700">());<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">base</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">exit</span><span style="color: #007700">(</span><span style="color: #0000BB">NULL</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Initialize&nbsp;SSL&nbsp;structures,&nbsp;create&nbsp;an&nbsp;EventSslContext<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Optionally&nbsp;create&nbsp;self_signed&nbsp;certificates<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">init_ssl</span><span style="color: #007700">()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;We&nbsp;*must*&nbsp;have&nbsp;entropy.&nbsp;Otherwise&nbsp;there's&nbsp;no&nbsp;point&nbsp;to&nbsp;crypto.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;(!</span><span style="color: #0000BB">EventUtil</span><span style="color: #007700">::</span><span style="color: #0000BB">sslRandPoll</span><span style="color: #007700">())&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(</span><span style="color: #DD0000">"EventUtil::sslRandPoll&nbsp;failed\n"</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$local_cert&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">__DIR__</span><span style="color: #007700">.</span><span style="color: #DD0000">"/cert.pem"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$local_pk&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">__DIR__</span><span style="color: #007700">.</span><span style="color: #DD0000">"/privkey.pem"</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!</span><span style="color: #0000BB">file_exists</span><span style="color: #007700">(</span><span style="color: #0000BB">$local_cert</span><span style="color: #007700">)&nbsp;||&nbsp;!</span><span style="color: #0000BB">file_exists</span><span style="color: #007700">(</span><span style="color: #0000BB">$local_pk</span><span style="color: #007700">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Couldn't&nbsp;read&nbsp;</span><span style="color: #0000BB">$local_cert</span><span style="color: #DD0000">&nbsp;or&nbsp;</span><span style="color: #0000BB">$local_pk</span><span style="color: #DD0000">&nbsp;file.&nbsp;&nbsp;To&nbsp;generate&nbsp;a&nbsp;key\n"</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">"and&nbsp;self_signed&nbsp;certificate,&nbsp;run:\n"</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">"&nbsp;&nbsp;openssl&nbsp;genrsa&nbsp;_out&nbsp;</span><span style="color: #0000BB">$local_pk</span><span style="color: #DD0000">&nbsp;2048\n"</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">"&nbsp;&nbsp;openssl&nbsp;req&nbsp;_new&nbsp;_key&nbsp;</span><span style="color: #0000BB">$local_pk</span><span style="color: #DD0000">&nbsp;_out&nbsp;cert.req\n"</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">"&nbsp;&nbsp;openssl&nbsp;x509&nbsp;_req&nbsp;_days&nbsp;365&nbsp;_in&nbsp;cert.req&nbsp;_signkey&nbsp;</span><span style="color: #0000BB">$local_pk</span><span style="color: #DD0000">&nbsp;_out&nbsp;</span><span style="color: #0000BB">$local_cert</span><span style="color: #DD0000">\n"</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">FALSE</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$ctx&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">EventSslContext</span><span style="color: #007700">(</span><span style="color: #0000BB">EventSslContext</span><span style="color: #007700">::</span><span style="color: #0000BB">SSLv3_SERVER_METHOD</span><span style="color: #007700">,&nbsp;array&nbsp;(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">EventSslContext</span><span style="color: #007700">::</span><span style="color: #0000BB">OPT_LOCAL_CERT&nbsp;&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">$local_cert</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">EventSslContext</span><span style="color: #007700">::</span><span style="color: #0000BB">OPT_LOCAL_PK&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">$local_pk</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//EventSslContext::OPT_PASSPHRASE&nbsp;&nbsp;=&gt;&nbsp;"echo&nbsp;server",<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">EventSslContext</span><span style="color: #007700">::</span><span style="color: #0000BB">OPT_VERIFY_PEER&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">EventSslContext</span><span style="color: #007700">::</span><span style="color: #0000BB">OPT_ALLOW_SELF_SIGNED&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">false</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;));<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$ctx</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br /></span><span style="color: #FF8000">//&nbsp;Allow&nbsp;to&nbsp;override&nbsp;the&nbsp;port<br /></span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">9999</span><span style="color: #007700">;<br />if&nbsp;(</span><span style="color: #0000BB">$argc&nbsp;</span><span style="color: #007700">&gt;&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">=&nbsp;(int)&nbsp;</span><span style="color: #0000BB">$argv</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">];<br />}<br />if&nbsp;(</span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">&lt;=&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #007700">||&nbsp;</span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">&gt;&nbsp;</span><span style="color: #0000BB">65535</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;exit(</span><span style="color: #DD0000">"Invalid&nbsp;port\n"</span><span style="color: #007700">);<br />}<br /><br /><br /></span><span style="color: #0000BB">$l&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">MySslEchoServer</span><span style="color: #007700">(</span><span style="color: #0000BB">$port</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$l</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">dispatch</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">?&gt;</span>
;.//event.examples.html:<span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/*<br />&nbsp;*&nbsp;Simple&nbsp;HTTP&nbsp;server.<br />&nbsp;*<br />&nbsp;*&nbsp;To&nbsp;test&nbsp;it:<br />&nbsp;*&nbsp;1)&nbsp;Run&nbsp;it&nbsp;on&nbsp;a&nbsp;port&nbsp;of&nbsp;your&nbsp;choice,&nbsp;e.g.:<br />&nbsp;*&nbsp;$&nbsp;php&nbsp;examples/http.php&nbsp;8010<br />&nbsp;*&nbsp;2)&nbsp;In&nbsp;another&nbsp;terminal&nbsp;connect&nbsp;to&nbsp;some&nbsp;address&nbsp;on&nbsp;this&nbsp;port<br />&nbsp;*&nbsp;and&nbsp;make&nbsp;GET&nbsp;or&nbsp;POST&nbsp;request(others&nbsp;are&nbsp;turned&nbsp;off&nbsp;here),&nbsp;e.g.:<br />&nbsp;*&nbsp;$&nbsp;nc&nbsp;_t&nbsp;127.0.0.1&nbsp;8010<br />&nbsp;*&nbsp;POST&nbsp;/about&nbsp;HTTP/1.0<br />&nbsp;*&nbsp;Content_Type:&nbsp;text/plain<br />&nbsp;*&nbsp;Content_Length:&nbsp;4<br />&nbsp;*&nbsp;Connection:&nbsp;close<br />&nbsp;*&nbsp;(press&nbsp;Enter)<br />&nbsp;*<br />&nbsp;*&nbsp;It&nbsp;will&nbsp;output<br />&nbsp;*&nbsp;a=12<br />&nbsp;*&nbsp;HTTP/1.0&nbsp;200&nbsp;OK<br />&nbsp;*&nbsp;Content_Type:&nbsp;text/html;&nbsp;charset=ISO_8859_1<br />&nbsp;*&nbsp;Connection:&nbsp;close<br />&nbsp;*<br />&nbsp;*&nbsp;$&nbsp;nc&nbsp;_t&nbsp;127.0.0.1&nbsp;8010<br />&nbsp;*&nbsp;GET&nbsp;/dump&nbsp;HTTP/1.0<br />&nbsp;*&nbsp;Content_Type:&nbsp;text/plain<br />&nbsp;*&nbsp;Content_Encoding:&nbsp;UTF_8<br />&nbsp;*&nbsp;Connection:&nbsp;close<br />&nbsp;*&nbsp;(press&nbsp;Enter)<br />&nbsp;*<br />&nbsp;*&nbsp;It&nbsp;will&nbsp;output:<br />&nbsp;*&nbsp;HTTP/1.0&nbsp;200&nbsp;OK<br />&nbsp;*&nbsp;Content_Type:&nbsp;text/html;&nbsp;charset=ISO_8859_1<br />&nbsp;*&nbsp;Connection:&nbsp;close<br />&nbsp;*&nbsp;(press&nbsp;Enter)<br />&nbsp;*<br />&nbsp;*&nbsp;$&nbsp;nc&nbsp;_t&nbsp;127.0.0.1&nbsp;8010<br />&nbsp;*&nbsp;GET&nbsp;/unknown&nbsp;HTTP/1.0<br />&nbsp;*&nbsp;Connection:&nbsp;close<br />&nbsp;*<br />&nbsp;*&nbsp;It&nbsp;will&nbsp;output:<br />&nbsp;*&nbsp;HTTP/1.0&nbsp;200&nbsp;OK<br />&nbsp;*&nbsp;Content_Type:&nbsp;text/html;&nbsp;charset=ISO_8859_1<br />&nbsp;*&nbsp;Connection:&nbsp;close<br />&nbsp;*<br />&nbsp;*&nbsp;3)&nbsp;See&nbsp;what&nbsp;the&nbsp;server&nbsp;outputs&nbsp;on&nbsp;the&nbsp;previous&nbsp;terminal&nbsp;window.<br />&nbsp;*/<br /><br /></span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">_http_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$data</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;</span><span style="color: #0000BB">$counter&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;</span><span style="color: #0000BB">$max_requests&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">2</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(++</span><span style="color: #0000BB">$counter&nbsp;</span><span style="color: #007700">&gt;=&nbsp;</span><span style="color: #0000BB">$max_requests</span><span style="color: #007700">)&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Counter&nbsp;reached&nbsp;max&nbsp;requests&nbsp;</span><span style="color: #0000BB">$max_requests</span><span style="color: #DD0000">.&nbsp;Exiting\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #0000BB">__METHOD__</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"&nbsp;called\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"request:"</span><span style="color: #007700">;&nbsp;</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"data:"</span><span style="color: #007700">;&nbsp;</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$data</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"\n=====&nbsp;DUMP&nbsp;=====\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Command:"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getCommand</span><span style="color: #007700">(),&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"URI:"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getUri</span><span style="color: #007700">(),&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Input&nbsp;headers:"</span><span style="color: #007700">;&nbsp;</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getInputHeaders</span><span style="color: #007700">());<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Output&nbsp;headers:"</span><span style="color: #007700">;&nbsp;</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getOutputHeaders</span><span style="color: #007700">());<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"\n&nbsp;&gt;&gt;&nbsp;Sending&nbsp;reply&nbsp;..."</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">sendReply</span><span style="color: #007700">(</span><span style="color: #0000BB">200</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"OK"</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"OK\n"</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"\n&nbsp;&gt;&gt;&nbsp;Reading&nbsp;input&nbsp;buffer&nbsp;...\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$buf&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getInputBuffer</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(</span><span style="color: #0000BB">$s&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$buf</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">readLine</span><span style="color: #007700">(</span><span style="color: #0000BB">EventBuffer</span><span style="color: #007700">::</span><span style="color: #0000BB">EOL_ANY</span><span style="color: #007700">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #0000BB">$s</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"No&nbsp;more&nbsp;data&nbsp;in&nbsp;the&nbsp;buffer\n"</span><span style="color: #007700">;<br />}<br /><br />function&nbsp;</span><span style="color: #0000BB">_http_about</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #0000BB">__METHOD__</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"URI:&nbsp;"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getUri</span><span style="color: #007700">(),&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"\n&nbsp;&gt;&gt;&nbsp;Sending&nbsp;reply&nbsp;..."</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">sendReply</span><span style="color: #007700">(</span><span style="color: #0000BB">200</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"OK"</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"OK\n"</span><span style="color: #007700">;<br />}<br /><br />function&nbsp;</span><span style="color: #0000BB">_http_default</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$data</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #0000BB">__METHOD__</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"URI:&nbsp;"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getUri</span><span style="color: #007700">(),&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"\n&nbsp;&gt;&gt;&nbsp;Sending&nbsp;reply&nbsp;..."</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">sendReply</span><span style="color: #007700">(</span><span style="color: #0000BB">200</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"OK"</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"OK\n"</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">8010</span><span style="color: #007700">;<br />if&nbsp;(</span><span style="color: #0000BB">$argc&nbsp;</span><span style="color: #007700">&gt;&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">=&nbsp;(int)&nbsp;</span><span style="color: #0000BB">$argv</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">];<br />}<br />if&nbsp;(</span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">&lt;=&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #007700">||&nbsp;</span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">&gt;&nbsp;</span><span style="color: #0000BB">65535</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;exit(</span><span style="color: #DD0000">"Invalid&nbsp;port"</span><span style="color: #007700">);<br />}<br /><br /></span><span style="color: #0000BB">$base&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">EventBase</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">$http&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">EventHttp</span><span style="color: #007700">(</span><span style="color: #0000BB">$base</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$http</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">setAllowedMethods</span><span style="color: #007700">(</span><span style="color: #0000BB">EventHttpRequest</span><span style="color: #007700">::</span><span style="color: #0000BB">CMD_GET&nbsp;</span><span style="color: #007700">|&nbsp;</span><span style="color: #0000BB">EventHttpRequest</span><span style="color: #007700">::</span><span style="color: #0000BB">CMD_POST</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$http</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">setCallback</span><span style="color: #007700">(</span><span style="color: #DD0000">"/dump"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"_http_dump"</span><span style="color: #007700">,&nbsp;array(</span><span style="color: #0000BB">4</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">8</span><span style="color: #007700">));<br /></span><span style="color: #0000BB">$http</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">setCallback</span><span style="color: #007700">(</span><span style="color: #DD0000">"/about"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"_http_about"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$http</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">setDefaultCallback</span><span style="color: #007700">(</span><span style="color: #DD0000">"_http_default"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"custom&nbsp;data&nbsp;value"</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$http</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">bind</span><span style="color: #007700">(</span><span style="color: #DD0000">"0.0.0.0"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">8010</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$base</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">loop</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">?&gt;</span>
;.//event.examples.html:<span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/*<br />&nbsp;*&nbsp;Simple&nbsp;HTTPS&nbsp;server.<br />&nbsp;*<br />&nbsp;*&nbsp;1)&nbsp;Run&nbsp;the&nbsp;server:&nbsp;`php&nbsp;examples/https.php&nbsp;9999`<br />&nbsp;*&nbsp;2)&nbsp;Test&nbsp;it:&nbsp;`php&nbsp;examples/ssl_connection.php&nbsp;9999`<br />&nbsp;*/<br /><br /></span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">_http_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$data</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;</span><span style="color: #0000BB">$counter&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;</span><span style="color: #0000BB">$max_requests&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">200</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(++</span><span style="color: #0000BB">$counter&nbsp;</span><span style="color: #007700">&gt;=&nbsp;</span><span style="color: #0000BB">$max_requests</span><span style="color: #007700">)&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Counter&nbsp;reached&nbsp;max&nbsp;requests&nbsp;</span><span style="color: #0000BB">$max_requests</span><span style="color: #DD0000">.&nbsp;Exiting\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #0000BB">__METHOD__</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"&nbsp;called\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"request:"</span><span style="color: #007700">;&nbsp;</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"data:"</span><span style="color: #007700">;&nbsp;</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$data</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"\n=====&nbsp;DUMP&nbsp;=====\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Command:"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getCommand</span><span style="color: #007700">(),&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"URI:"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getUri</span><span style="color: #007700">(),&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Input&nbsp;headers:"</span><span style="color: #007700">;&nbsp;</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getInputHeaders</span><span style="color: #007700">());<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Output&nbsp;headers:"</span><span style="color: #007700">;&nbsp;</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getOutputHeaders</span><span style="color: #007700">());<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"\n&nbsp;&gt;&gt;&nbsp;Sending&nbsp;reply&nbsp;..."</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">sendReply</span><span style="color: #007700">(</span><span style="color: #0000BB">200</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"OK"</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"OK\n"</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$buf&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getInputBuffer</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"\n&nbsp;&gt;&gt;&nbsp;Reading&nbsp;input&nbsp;buffer&nbsp;("</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$buf</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">length</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">")&nbsp;...\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(</span><span style="color: #0000BB">$s&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$buf</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">read</span><span style="color: #007700">(</span><span style="color: #0000BB">1024</span><span style="color: #007700">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #0000BB">$s</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"\nNo&nbsp;more&nbsp;data&nbsp;in&nbsp;the&nbsp;buffer\n"</span><span style="color: #007700">;<br />}<br /><br />function&nbsp;</span><span style="color: #0000BB">_http_about</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #0000BB">__METHOD__</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"URI:&nbsp;"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getUri</span><span style="color: #007700">(),&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"\n&nbsp;&gt;&gt;&nbsp;Sending&nbsp;reply&nbsp;..."</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">sendReply</span><span style="color: #007700">(</span><span style="color: #0000BB">200</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"OK"</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"OK\n"</span><span style="color: #007700">;<br />}<br /><br />function&nbsp;</span><span style="color: #0000BB">_http_default</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$data</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #0000BB">__METHOD__</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"URI:&nbsp;"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getUri</span><span style="color: #007700">(),&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"\n&nbsp;&gt;&gt;&nbsp;Sending&nbsp;reply&nbsp;..."</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">sendReply</span><span style="color: #007700">(</span><span style="color: #0000BB">200</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"OK"</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"OK\n"</span><span style="color: #007700">;<br />}<br /><br />function&nbsp;</span><span style="color: #0000BB">_http_400</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">sendError</span><span style="color: #007700">(</span><span style="color: #0000BB">400</span><span style="color: #007700">);<br />}<br /><br />function&nbsp;</span><span style="color: #0000BB">_init_ssl</span><span style="color: #007700">()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$local_cert&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">__DIR__</span><span style="color: #007700">.</span><span style="color: #DD0000">"/ssl_echo_server/cert.pem"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$local_pk&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">__DIR__</span><span style="color: #007700">.</span><span style="color: #DD0000">"/ssl_echo_server/privkey.pem"</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$ctx&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">EventSslContext</span><span style="color: #007700">(</span><span style="color: #0000BB">EventSslContext</span><span style="color: #007700">::</span><span style="color: #0000BB">SSLv3_SERVER_METHOD</span><span style="color: #007700">,&nbsp;array&nbsp;(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">EventSslContext</span><span style="color: #007700">::</span><span style="color: #0000BB">OPT_LOCAL_CERT&nbsp;&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">$local_cert</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">EventSslContext</span><span style="color: #007700">::</span><span style="color: #0000BB">OPT_LOCAL_PK&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">$local_pk</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//EventSslContext::OPT_PASSPHRASE&nbsp;&nbsp;=&gt;&nbsp;"test",<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">EventSslContext</span><span style="color: #007700">::</span><span style="color: #0000BB">OPT_ALLOW_SELF_SIGNED&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;));<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$ctx</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">9999</span><span style="color: #007700">;<br />if&nbsp;(</span><span style="color: #0000BB">$argc&nbsp;</span><span style="color: #007700">&gt;&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">=&nbsp;(int)&nbsp;</span><span style="color: #0000BB">$argv</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">];<br />}<br />if&nbsp;(</span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">&lt;=&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #007700">||&nbsp;</span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">&gt;&nbsp;</span><span style="color: #0000BB">65535</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;exit(</span><span style="color: #DD0000">"Invalid&nbsp;port"</span><span style="color: #007700">);<br />}<br /></span><span style="color: #0000BB">$ip&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'0.0.0.0'</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$base&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">EventBase</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">$ctx&nbsp;&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">_init_ssl</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">$http&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">EventHttp</span><span style="color: #007700">(</span><span style="color: #0000BB">$base</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$ctx</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$http</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">setAllowedMethods</span><span style="color: #007700">(</span><span style="color: #0000BB">EventHttpRequest</span><span style="color: #007700">::</span><span style="color: #0000BB">CMD_GET&nbsp;</span><span style="color: #007700">|&nbsp;</span><span style="color: #0000BB">EventHttpRequest</span><span style="color: #007700">::</span><span style="color: #0000BB">CMD_POST</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$http</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">setCallback</span><span style="color: #007700">(</span><span style="color: #DD0000">"/dump"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"_http_dump"</span><span style="color: #007700">,&nbsp;array(</span><span style="color: #0000BB">4</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">8</span><span style="color: #007700">));<br /></span><span style="color: #0000BB">$http</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">setCallback</span><span style="color: #007700">(</span><span style="color: #DD0000">"/about"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"_http_about"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$http</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">setCallback</span><span style="color: #007700">(</span><span style="color: #DD0000">"/err400"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"_http_400"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$http</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">setDefaultCallback</span><span style="color: #007700">(</span><span style="color: #DD0000">"_http_default"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"custom&nbsp;data&nbsp;value"</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$http</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">bind</span><span style="color: #007700">(</span><span style="color: #0000BB">$ip</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$port</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$base</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">dispatch</span><span style="color: #007700">();</span>
;.//event.examples.html:<span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/*<br />&nbsp;*&nbsp;Sample&nbsp;OpenSSL&nbsp;client.<br />&nbsp;*<br />&nbsp;*&nbsp;Usage:<br />&nbsp;*&nbsp;1)&nbsp;Launch&nbsp;a&nbsp;server,&nbsp;e.g.:<br />&nbsp;*&nbsp;$&nbsp;php&nbsp;examples/https.php&nbsp;9999<br />&nbsp;*<br />&nbsp;*&nbsp;2)&nbsp;Launch&nbsp;the&nbsp;client&nbsp;in&nbsp;another&nbsp;terminal:<br />&nbsp;*&nbsp;$&nbsp;php&nbsp;examples/ssl_connection.php&nbsp;9999<br />&nbsp;*/<br /><br /></span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">_request_handler</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$base</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #0000BB">__FUNCTION__</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">is_null</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Timed&nbsp;out\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$response_code&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getResponseCode</span><span style="color: #007700">();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$response_code&nbsp;</span><span style="color: #007700">==&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Connection&nbsp;refused\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;elseif&nbsp;(</span><span style="color: #0000BB">$response_code&nbsp;</span><span style="color: #007700">!=&nbsp;</span><span style="color: #0000BB">200</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Unexpected&nbsp;response:&nbsp;</span><span style="color: #0000BB">$response_code</span><span style="color: #DD0000">\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Success:&nbsp;</span><span style="color: #0000BB">$response_code</span><span style="color: #DD0000">\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$buf&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getInputBuffer</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Body:\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(</span><span style="color: #0000BB">$s&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$buf</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">readLine</span><span style="color: #007700">(</span><span style="color: #0000BB">EventBuffer</span><span style="color: #007700">::</span><span style="color: #0000BB">EOL_ANY</span><span style="color: #007700">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #0000BB">$s</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$base</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">exit</span><span style="color: #007700">(</span><span style="color: #0000BB">NULL</span><span style="color: #007700">);<br />}<br /><br />function&nbsp;</span><span style="color: #0000BB">_init_ssl</span><span style="color: #007700">()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$ctx&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">EventSslContext</span><span style="color: #007700">(</span><span style="color: #0000BB">EventSslContext</span><span style="color: #007700">::</span><span style="color: #0000BB">SSLv3_CLIENT_METHOD</span><span style="color: #007700">,&nbsp;array&nbsp;());<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$ctx</span><span style="color: #007700">;<br />}<br /><br /><br /></span><span style="color: #FF8000">//&nbsp;Allow&nbsp;to&nbsp;override&nbsp;the&nbsp;port<br /></span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">9999</span><span style="color: #007700">;<br />if&nbsp;(</span><span style="color: #0000BB">$argc&nbsp;</span><span style="color: #007700">&gt;&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">=&nbsp;(int)&nbsp;</span><span style="color: #0000BB">$argv</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">];<br />}<br />if&nbsp;(</span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">&lt;=&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #007700">||&nbsp;</span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">&gt;&nbsp;</span><span style="color: #0000BB">65535</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;exit(</span><span style="color: #DD0000">"Invalid&nbsp;port\n"</span><span style="color: #007700">);<br />}<br /></span><span style="color: #0000BB">$host&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'127.0.0.1'</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$ctx&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">_init_ssl</span><span style="color: #007700">();<br />if&nbsp;(!</span><span style="color: #0000BB">$ctx</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">trigger_error</span><span style="color: #007700">(</span><span style="color: #DD0000">"Failed&nbsp;creating&nbsp;SSL&nbsp;context"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">E_USER_ERROR</span><span style="color: #007700">);<br />}<br /><br /></span><span style="color: #0000BB">$base&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">EventBase</span><span style="color: #007700">();<br />if&nbsp;(!</span><span style="color: #0000BB">$base</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">trigger_error</span><span style="color: #007700">(</span><span style="color: #DD0000">"Failed&nbsp;to&nbsp;initialize&nbsp;event&nbsp;base"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">E_USER_ERROR</span><span style="color: #007700">);<br />}<br /><br /></span><span style="color: #0000BB">$conn&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">EventHttpConnection</span><span style="color: #007700">(</span><span style="color: #0000BB">$base</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">NULL</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$host</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$port</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$ctx</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$conn</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">setTimeout</span><span style="color: #007700">(</span><span style="color: #0000BB">50</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$req&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">EventHttpRequest</span><span style="color: #007700">(</span><span style="color: #DD0000">"_request_handler"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$base</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">addHeader</span><span style="color: #007700">(</span><span style="color: #DD0000">"Host"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$host</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">EventHttpRequest</span><span style="color: #007700">::</span><span style="color: #0000BB">OUTPUT_HEADER</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$buf&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getOutputBuffer</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">$buf</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">add</span><span style="color: #007700">(</span><span style="color: #DD0000">"&lt;html&gt;HTML&nbsp;TEST&lt;/html&gt;"</span><span style="color: #007700">);<br /></span><span style="color: #FF8000">//$req_&gt;addHeader("Content_Length",&nbsp;$buf_&gt;length,&nbsp;EventHttpRequest::OUTPUT_HEADER);<br />//$req_&gt;addHeader("Connection",&nbsp;"close",&nbsp;EventHttpRequest::OUTPUT_HEADER);<br /></span><span style="color: #0000BB">$conn</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">makeRequest</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">EventHttpRequest</span><span style="color: #007700">::</span><span style="color: #0000BB">CMD_POST</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"/dump"</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$base</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">dispatch</span><span style="color: #007700">();<br />echo&nbsp;</span><span style="color: #DD0000">"END\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span>
;.//event.examples.html:<span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">_request_handler</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$base</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #0000BB">__FUNCTION__</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">is_null</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Timed&nbsp;out\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$response_code&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getResponseCode</span><span style="color: #007700">();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$response_code&nbsp;</span><span style="color: #007700">==&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Connection&nbsp;refused\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;elseif&nbsp;(</span><span style="color: #0000BB">$response_code&nbsp;</span><span style="color: #007700">!=&nbsp;</span><span style="color: #0000BB">200</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Unexpected&nbsp;response:&nbsp;</span><span style="color: #0000BB">$response_code</span><span style="color: #DD0000">\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Success:&nbsp;</span><span style="color: #0000BB">$response_code</span><span style="color: #DD0000">\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$buf&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getInputBuffer</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Body:\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(</span><span style="color: #0000BB">$s&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$buf</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">readLine</span><span style="color: #007700">(</span><span style="color: #0000BB">EventBuffer</span><span style="color: #007700">::</span><span style="color: #0000BB">EOL_ANY</span><span style="color: #007700">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #0000BB">$s</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$base</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">exit</span><span style="color: #007700">(</span><span style="color: #0000BB">NULL</span><span style="color: #007700">);<br />}<br /><br /></span><span style="color: #0000BB">$address&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"127.0.0.1"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">80</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$base&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">EventBase</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">$conn&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">EventHttpConnection</span><span style="color: #007700">(</span><span style="color: #0000BB">$base</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">NULL</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$address</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$port</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$conn</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">setTimeout</span><span style="color: #007700">(</span><span style="color: #0000BB">5</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$req&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">EventHttpRequest</span><span style="color: #007700">(</span><span style="color: #DD0000">"_request_handler"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$base</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">addHeader</span><span style="color: #007700">(</span><span style="color: #DD0000">"Host"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$address</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">EventHttpRequest</span><span style="color: #007700">::</span><span style="color: #0000BB">OUTPUT_HEADER</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">addHeader</span><span style="color: #007700">(</span><span style="color: #DD0000">"Content_Length"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"0"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">EventHttpRequest</span><span style="color: #007700">::</span><span style="color: #0000BB">OUTPUT_HEADER</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$conn</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">makeRequest</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">EventHttpRequest</span><span style="color: #007700">::</span><span style="color: #0000BB">CMD_GET</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"/index.cphp"</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$base</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">loop</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">?&gt;</span>
;.//eventbufferevent.connecthost.html:     <code class="parameter">$port</code>
;.//eventhttp.accept.html:<span style="color: #0000BB">&lt;?php<br />$base&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">EventBase</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">$http&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">EventHttp</span><span style="color: #007700">(</span><span style="color: #0000BB">$base</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$addresses&nbsp;</span><span style="color: #007700">=&nbsp;array&nbsp;(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">8091&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">"127.0.0.1"</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">8092&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">"127.0.0.2"</span><span style="color: #007700">,<br />);<br /></span><span style="color: #0000BB">$i&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$socket&nbsp;</span><span style="color: #007700">=&nbsp;array();<br /><br />foreach&nbsp;(</span><span style="color: #0000BB">$addresses&nbsp;</span><span style="color: #007700">as&nbsp;</span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">$ip</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #0000BB">$ip</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"&nbsp;"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$port</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$socket</span><span style="color: #007700">[</span><span style="color: #0000BB">$i</span><span style="color: #007700">]&nbsp;=&nbsp;</span><span style="color: #0000BB">socket_create</span><span style="color: #007700">(</span><span style="color: #0000BB">AF_INET</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">SOCK_STREAM</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">SOL_TCP</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!</span><span style="color: #0000BB">socket_bind</span><span style="color: #007700">(</span><span style="color: #0000BB">$socket</span><span style="color: #007700">[</span><span style="color: #0000BB">$i</span><span style="color: #007700">],&nbsp;</span><span style="color: #0000BB">$ip</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$port</span><span style="color: #007700">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(</span><span style="color: #DD0000">"socket_bind&nbsp;failed\n"</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">socket_listen</span><span style="color: #007700">(</span><span style="color: #0000BB">$socket</span><span style="color: #007700">[</span><span style="color: #0000BB">$i</span><span style="color: #007700">],&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">socket_set_nonblock</span><span style="color: #007700">(</span><span style="color: #0000BB">$socket</span><span style="color: #007700">[</span><span style="color: #0000BB">$i</span><span style="color: #007700">]);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!</span><span style="color: #0000BB">$http</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">accept</span><span style="color: #007700">(</span><span style="color: #0000BB">$socket</span><span style="color: #007700">[</span><span style="color: #0000BB">$i</span><span style="color: #007700">]))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Accept&nbsp;failed\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;++</span><span style="color: #0000BB">$i</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #0000BB">$http</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">setCallback</span><span style="color: #007700">(</span><span style="color: #DD0000">"/some_page"</span><span style="color: #007700">,&nbsp;function()&nbsp;{<br />&nbsp;echo&nbsp;</span><span style="color: #DD0000">"(some_page)\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"URI:&nbsp;"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getUri</span><span style="color: #007700">(),&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">sendReply</span><span style="color: #007700">(</span><span style="color: #0000BB">200</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"OK"</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"OK\n"</span><span style="color: #007700">;<br />});<br /><br /></span><span style="color: #0000BB">$http</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">setDefaultCallback</span><span style="color: #007700">(function(</span><span style="color: #0000BB">$req</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"URI:&nbsp;"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getUri</span><span style="color: #007700">(),&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">sendReply</span><span style="color: #007700">(</span><span style="color: #0000BB">200</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"OK"</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"OK\n"</span><span style="color: #007700">;<br />});<br /><br /></span><span style="color: #0000BB">$signal&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">Event</span><span style="color: #007700">::</span><span style="color: #0000BB">signal</span><span style="color: #007700">(</span><span style="color: #0000BB">$base</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">SIGINT</span><span style="color: #007700">,&nbsp;function&nbsp;()&nbsp;use&nbsp;(</span><span style="color: #0000BB">$base</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Caught&nbsp;SIGINT.&nbsp;Stopping...\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$base</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">stop</span><span style="color: #007700">();<br />});<br /></span><span style="color: #0000BB">$signal</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">add</span><span style="color: #007700">();<br /><br /></span><span style="color: #0000BB">$base</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">dispatch</span><span style="color: #007700">();<br />echo&nbsp;</span><span style="color: #DD0000">"END\n"</span><span style="color: #007700">;<br /></span><span style="color: #FF8000">//&nbsp;We&nbsp;didn't&nbsp;close&nbsp;sockets,&nbsp;since&nbsp;Libevent&nbsp;already&nbsp;sets<br />//&nbsp;CLOSE_ON_FREE&nbsp;and&nbsp;CLOSE_ON_EXEC&nbsp;flags&nbsp;on&nbsp;the&nbsp;file&nbsp;<br />//&nbsp;descriptor&nbsp;associated&nbsp;with&nbsp;the&nbsp;sockets.<br /></span><span style="color: #0000BB">?&gt;</span>
;.//eventhttp.bind.html:     <code class="parameter">$port</code>
;.//eventhttp.construct.html:<span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/*<br />&nbsp;*&nbsp;Simple&nbsp;HTTP&nbsp;server.<br />&nbsp;*<br />&nbsp;*&nbsp;To&nbsp;test&nbsp;it:<br />&nbsp;*&nbsp;1)&nbsp;Run&nbsp;it&nbsp;on&nbsp;a&nbsp;port&nbsp;of&nbsp;your&nbsp;choice,&nbsp;e.g.:<br />&nbsp;*&nbsp;$&nbsp;php&nbsp;examples/http.php&nbsp;8010<br />&nbsp;*&nbsp;2)&nbsp;In&nbsp;another&nbsp;terminal&nbsp;connect&nbsp;to&nbsp;some&nbsp;address&nbsp;on&nbsp;this&nbsp;port<br />&nbsp;*&nbsp;and&nbsp;make&nbsp;GET&nbsp;or&nbsp;POST&nbsp;request(others&nbsp;are&nbsp;turned&nbsp;off&nbsp;here),&nbsp;e.g.:<br />&nbsp;*&nbsp;$&nbsp;nc&nbsp;_t&nbsp;127.0.0.1&nbsp;8010<br />&nbsp;*&nbsp;POST&nbsp;/about&nbsp;HTTP/1.0<br />&nbsp;*&nbsp;Content_Type:&nbsp;text/plain<br />&nbsp;*&nbsp;Content_Length:&nbsp;4<br />&nbsp;*&nbsp;Connection:&nbsp;close<br />&nbsp;*&nbsp;(press&nbsp;Enter)<br />&nbsp;*<br />&nbsp;*&nbsp;It&nbsp;will&nbsp;output<br />&nbsp;*&nbsp;a=12<br />&nbsp;*&nbsp;HTTP/1.0&nbsp;200&nbsp;OK<br />&nbsp;*&nbsp;Content_Type:&nbsp;text/html;&nbsp;charset=ISO_8859_1<br />&nbsp;*&nbsp;Connection:&nbsp;close<br />&nbsp;*<br />&nbsp;*&nbsp;$&nbsp;nc&nbsp;_t&nbsp;127.0.0.1&nbsp;8010<br />&nbsp;*&nbsp;GET&nbsp;/dump&nbsp;HTTP/1.0<br />&nbsp;*&nbsp;Content_Type:&nbsp;text/plain<br />&nbsp;*&nbsp;Content_Encoding:&nbsp;UTF_8<br />&nbsp;*&nbsp;Connection:&nbsp;close<br />&nbsp;*&nbsp;(press&nbsp;Enter)<br />&nbsp;*<br />&nbsp;*&nbsp;It&nbsp;will&nbsp;output:<br />&nbsp;*&nbsp;HTTP/1.0&nbsp;200&nbsp;OK<br />&nbsp;*&nbsp;Content_Type:&nbsp;text/html;&nbsp;charset=ISO_8859_1<br />&nbsp;*&nbsp;Connection:&nbsp;close<br />&nbsp;*&nbsp;(press&nbsp;Enter)<br />&nbsp;*<br />&nbsp;*&nbsp;$&nbsp;nc&nbsp;_t&nbsp;127.0.0.1&nbsp;8010<br />&nbsp;*&nbsp;GET&nbsp;/unknown&nbsp;HTTP/1.0<br />&nbsp;*&nbsp;Connection:&nbsp;close<br />&nbsp;*<br />&nbsp;*&nbsp;It&nbsp;will&nbsp;output:<br />&nbsp;*&nbsp;HTTP/1.0&nbsp;200&nbsp;OK<br />&nbsp;*&nbsp;Content_Type:&nbsp;text/html;&nbsp;charset=ISO_8859_1<br />&nbsp;*&nbsp;Connection:&nbsp;close<br />&nbsp;*<br />&nbsp;*&nbsp;3)&nbsp;See&nbsp;what&nbsp;the&nbsp;server&nbsp;outputs&nbsp;on&nbsp;the&nbsp;previous&nbsp;terminal&nbsp;window.<br />&nbsp;*/<br /><br /></span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">_http_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$data</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;</span><span style="color: #0000BB">$counter&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;</span><span style="color: #0000BB">$max_requests&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">2</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(++</span><span style="color: #0000BB">$counter&nbsp;</span><span style="color: #007700">&gt;=&nbsp;</span><span style="color: #0000BB">$max_requests</span><span style="color: #007700">)&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Counter&nbsp;reached&nbsp;max&nbsp;requests&nbsp;</span><span style="color: #0000BB">$max_requests</span><span style="color: #DD0000">.&nbsp;Exiting\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #0000BB">__METHOD__</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"&nbsp;called\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"request:"</span><span style="color: #007700">;&nbsp;</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"data:"</span><span style="color: #007700">;&nbsp;</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$data</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"\n=====&nbsp;DUMP&nbsp;=====\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Command:"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getCommand</span><span style="color: #007700">(),&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"URI:"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getUri</span><span style="color: #007700">(),&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Input&nbsp;headers:"</span><span style="color: #007700">;&nbsp;</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getInputHeaders</span><span style="color: #007700">());<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Output&nbsp;headers:"</span><span style="color: #007700">;&nbsp;</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getOutputHeaders</span><span style="color: #007700">());<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"\n&nbsp;&gt;&gt;&nbsp;Sending&nbsp;reply&nbsp;..."</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">sendReply</span><span style="color: #007700">(</span><span style="color: #0000BB">200</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"OK"</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"OK\n"</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"\n&nbsp;&gt;&gt;&nbsp;Reading&nbsp;input&nbsp;buffer&nbsp;...\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$buf&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getInputBuffer</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(</span><span style="color: #0000BB">$s&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$buf</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">readLine</span><span style="color: #007700">(</span><span style="color: #0000BB">EventBuffer</span><span style="color: #007700">::</span><span style="color: #0000BB">EOL_ANY</span><span style="color: #007700">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #0000BB">$s</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"No&nbsp;more&nbsp;data&nbsp;in&nbsp;the&nbsp;buffer\n"</span><span style="color: #007700">;<br />}<br /><br />function&nbsp;</span><span style="color: #0000BB">_http_about</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #0000BB">__METHOD__</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"URI:&nbsp;"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getUri</span><span style="color: #007700">(),&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"\n&nbsp;&gt;&gt;&nbsp;Sending&nbsp;reply&nbsp;..."</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">sendReply</span><span style="color: #007700">(</span><span style="color: #0000BB">200</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"OK"</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"OK\n"</span><span style="color: #007700">;<br />}<br /><br />function&nbsp;</span><span style="color: #0000BB">_http_default</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$data</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #0000BB">__METHOD__</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"URI:&nbsp;"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getUri</span><span style="color: #007700">(),&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"\n&nbsp;&gt;&gt;&nbsp;Sending&nbsp;reply&nbsp;..."</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">sendReply</span><span style="color: #007700">(</span><span style="color: #0000BB">200</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"OK"</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"OK\n"</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">8010</span><span style="color: #007700">;<br />if&nbsp;(</span><span style="color: #0000BB">$argc&nbsp;</span><span style="color: #007700">&gt;&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">=&nbsp;(int)&nbsp;</span><span style="color: #0000BB">$argv</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">];<br />}<br />if&nbsp;(</span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">&lt;=&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #007700">||&nbsp;</span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">&gt;&nbsp;</span><span style="color: #0000BB">65535</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;exit(</span><span style="color: #DD0000">"Invalid&nbsp;port"</span><span style="color: #007700">);<br />}<br /><br /></span><span style="color: #0000BB">$base&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">EventBase</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">$http&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">EventHttp</span><span style="color: #007700">(</span><span style="color: #0000BB">$base</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$http</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">setAllowedMethods</span><span style="color: #007700">(</span><span style="color: #0000BB">EventHttpRequest</span><span style="color: #007700">::</span><span style="color: #0000BB">CMD_GET&nbsp;</span><span style="color: #007700">|&nbsp;</span><span style="color: #0000BB">EventHttpRequest</span><span style="color: #007700">::</span><span style="color: #0000BB">CMD_POST</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$http</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">setCallback</span><span style="color: #007700">(</span><span style="color: #DD0000">"/dump"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"_http_dump"</span><span style="color: #007700">,&nbsp;array(</span><span style="color: #0000BB">4</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">8</span><span style="color: #007700">));<br /></span><span style="color: #0000BB">$http</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">setCallback</span><span style="color: #007700">(</span><span style="color: #DD0000">"/about"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"_http_about"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$http</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">setDefaultCallback</span><span style="color: #007700">(</span><span style="color: #DD0000">"_http_default"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"custom&nbsp;data&nbsp;value"</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$http</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">bind</span><span style="color: #007700">(</span><span style="color: #DD0000">"0.0.0.0"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">8010</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$base</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">loop</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">?&gt;</span>
;.//eventhttp.setcallback.html:<span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/*<br />&nbsp;*&nbsp;Simple&nbsp;HTTP&nbsp;server.<br />&nbsp;*<br />&nbsp;*&nbsp;To&nbsp;test&nbsp;it:<br />&nbsp;*&nbsp;1)&nbsp;Run&nbsp;it&nbsp;on&nbsp;a&nbsp;port&nbsp;of&nbsp;your&nbsp;choice,&nbsp;e.g.:<br />&nbsp;*&nbsp;$&nbsp;php&nbsp;examples/http.php&nbsp;8010<br />&nbsp;*&nbsp;2)&nbsp;In&nbsp;another&nbsp;terminal&nbsp;connect&nbsp;to&nbsp;some&nbsp;address&nbsp;on&nbsp;this&nbsp;port<br />&nbsp;*&nbsp;and&nbsp;make&nbsp;GET&nbsp;or&nbsp;POST&nbsp;request(others&nbsp;are&nbsp;turned&nbsp;off&nbsp;here),&nbsp;e.g.:<br />&nbsp;*&nbsp;$&nbsp;nc&nbsp;_t&nbsp;127.0.0.1&nbsp;8010<br />&nbsp;*&nbsp;POST&nbsp;/about&nbsp;HTTP/1.0<br />&nbsp;*&nbsp;Content_Type:&nbsp;text/plain<br />&nbsp;*&nbsp;Content_Length:&nbsp;4<br />&nbsp;*&nbsp;Connection:&nbsp;close<br />&nbsp;*&nbsp;(press&nbsp;Enter)<br />&nbsp;*<br />&nbsp;*&nbsp;It&nbsp;will&nbsp;output<br />&nbsp;*&nbsp;a=12<br />&nbsp;*&nbsp;HTTP/1.0&nbsp;200&nbsp;OK<br />&nbsp;*&nbsp;Content_Type:&nbsp;text/html;&nbsp;charset=ISO_8859_1<br />&nbsp;*&nbsp;Connection:&nbsp;close<br />&nbsp;*<br />&nbsp;*&nbsp;3)&nbsp;See&nbsp;what&nbsp;the&nbsp;server&nbsp;outputs&nbsp;on&nbsp;the&nbsp;previous&nbsp;terminal&nbsp;window.<br />&nbsp;*/<br /><br /></span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">_http_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$data</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;</span><span style="color: #0000BB">$counter&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;</span><span style="color: #0000BB">$max_requests&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">2</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(++</span><span style="color: #0000BB">$counter&nbsp;</span><span style="color: #007700">&gt;=&nbsp;</span><span style="color: #0000BB">$max_requests</span><span style="color: #007700">)&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Counter&nbsp;reached&nbsp;max&nbsp;requests&nbsp;</span><span style="color: #0000BB">$max_requests</span><span style="color: #DD0000">.&nbsp;Exiting\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #0000BB">__METHOD__</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"&nbsp;called\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"request:"</span><span style="color: #007700">;&nbsp;</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"data:"</span><span style="color: #007700">;&nbsp;</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$data</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"\n=====&nbsp;DUMP&nbsp;=====\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Command:"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getCommand</span><span style="color: #007700">(),&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"URI:"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getUri</span><span style="color: #007700">(),&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Input&nbsp;headers:"</span><span style="color: #007700">;&nbsp;</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getInputHeaders</span><span style="color: #007700">());<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Output&nbsp;headers:"</span><span style="color: #007700">;&nbsp;</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getOutputHeaders</span><span style="color: #007700">());<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"\n&nbsp;&gt;&gt;&nbsp;Sending&nbsp;reply&nbsp;..."</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">sendReply</span><span style="color: #007700">(</span><span style="color: #0000BB">200</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"OK"</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"OK\n"</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"\n&nbsp;&gt;&gt;&nbsp;Reading&nbsp;input&nbsp;buffer&nbsp;...\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$buf&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getInputBuffer</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(</span><span style="color: #0000BB">$s&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$buf</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">readLine</span><span style="color: #007700">(</span><span style="color: #0000BB">EventBuffer</span><span style="color: #007700">::</span><span style="color: #0000BB">EOL_ANY</span><span style="color: #007700">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #0000BB">$s</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"No&nbsp;more&nbsp;data&nbsp;in&nbsp;the&nbsp;buffer\n"</span><span style="color: #007700">;<br />}<br /><br />function&nbsp;</span><span style="color: #0000BB">_http_about</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #0000BB">__METHOD__</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"URI:&nbsp;"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getUri</span><span style="color: #007700">(),&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"\n&nbsp;&gt;&gt;&nbsp;Sending&nbsp;reply&nbsp;..."</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">sendReply</span><span style="color: #007700">(</span><span style="color: #0000BB">200</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"OK"</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"OK\n"</span><span style="color: #007700">;<br />}<br /><br />function&nbsp;</span><span style="color: #0000BB">_http_default</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$data</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #0000BB">__METHOD__</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"URI:&nbsp;"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getUri</span><span style="color: #007700">(),&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"\n&nbsp;&gt;&gt;&nbsp;Sending&nbsp;reply&nbsp;..."</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">sendReply</span><span style="color: #007700">(</span><span style="color: #0000BB">200</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"OK"</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"OK\n"</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">8010</span><span style="color: #007700">;<br />if&nbsp;(</span><span style="color: #0000BB">$argc&nbsp;</span><span style="color: #007700">&gt;&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">=&nbsp;(int)&nbsp;</span><span style="color: #0000BB">$argv</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">];<br />}<br />if&nbsp;(</span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">&lt;=&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #007700">||&nbsp;</span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">&gt;&nbsp;</span><span style="color: #0000BB">65535</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;exit(</span><span style="color: #DD0000">"Invalid&nbsp;port"</span><span style="color: #007700">);<br />}<br /><br /></span><span style="color: #0000BB">$base&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">EventBase</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">$http&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">EventHttp</span><span style="color: #007700">(</span><span style="color: #0000BB">$base</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$http</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">setAllowedMethods</span><span style="color: #007700">(</span><span style="color: #0000BB">EventHttpRequest</span><span style="color: #007700">::</span><span style="color: #0000BB">CMD_GET&nbsp;</span><span style="color: #007700">|&nbsp;</span><span style="color: #0000BB">EventHttpRequest</span><span style="color: #007700">::</span><span style="color: #0000BB">CMD_POST</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$http</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">setCallback</span><span style="color: #007700">(</span><span style="color: #DD0000">"/dump"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"_http_dump"</span><span style="color: #007700">,&nbsp;array(</span><span style="color: #0000BB">4</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">8</span><span style="color: #007700">));<br /></span><span style="color: #0000BB">$http</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">setCallback</span><span style="color: #007700">(</span><span style="color: #DD0000">"/about"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"_http_about"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$http</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">setDefaultCallback</span><span style="color: #007700">(</span><span style="color: #DD0000">"_http_default"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"custom&nbsp;data&nbsp;value"</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$http</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">bind</span><span style="color: #007700">(</span><span style="color: #DD0000">"0.0.0.0"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">8010</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$base</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">loop</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">?&gt;</span>
;.//eventhttpconnection.construct.html:     <code class="parameter">$port</code>
;.//eventhttpconnection.getpeer.html:     <code class="parameter reference">&$port</code>
;.//eventhttpconnection.makerequest.html:<span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">_request_handler</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$base</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #0000BB">__FUNCTION__</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">is_null</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Timed&nbsp;out\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$response_code&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getResponseCode</span><span style="color: #007700">();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$response_code&nbsp;</span><span style="color: #007700">==&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Connection&nbsp;refused\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;elseif&nbsp;(</span><span style="color: #0000BB">$response_code&nbsp;</span><span style="color: #007700">!=&nbsp;</span><span style="color: #0000BB">200</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Unexpected&nbsp;response:&nbsp;</span><span style="color: #0000BB">$response_code</span><span style="color: #DD0000">\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Success:&nbsp;</span><span style="color: #0000BB">$response_code</span><span style="color: #DD0000">\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$buf&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getInputBuffer</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Body:\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(</span><span style="color: #0000BB">$s&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$buf</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">readLine</span><span style="color: #007700">(</span><span style="color: #0000BB">EventBuffer</span><span style="color: #007700">::</span><span style="color: #0000BB">EOL_ANY</span><span style="color: #007700">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #0000BB">$s</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$base</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">exit</span><span style="color: #007700">(</span><span style="color: #0000BB">NULL</span><span style="color: #007700">);<br />}<br /><br /></span><span style="color: #0000BB">$address&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"127.0.0.1"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">80</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$base&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">EventBase</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">$conn&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">EventHttpConnection</span><span style="color: #007700">(</span><span style="color: #0000BB">$base</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">NULL</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$address</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$port</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$conn</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">setTimeout</span><span style="color: #007700">(</span><span style="color: #0000BB">5</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$req&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">EventHttpRequest</span><span style="color: #007700">(</span><span style="color: #DD0000">"_request_handler"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$base</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">addHeader</span><span style="color: #007700">(</span><span style="color: #DD0000">"Host"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$address</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">EventHttpRequest</span><span style="color: #007700">::</span><span style="color: #0000BB">OUTPUT_HEADER</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">addHeader</span><span style="color: #007700">(</span><span style="color: #DD0000">"Content_Length"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"0"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">EventHttpRequest</span><span style="color: #007700">::</span><span style="color: #0000BB">OUTPUT_HEADER</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$conn</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">makeRequest</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">EventHttpRequest</span><span style="color: #007700">::</span><span style="color: #0000BB">CMD_GET</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"/index.cphp"</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$base</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">loop</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">?&gt;</span>
;.//eventhttpconnection.setclosecallback.html:<span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/*<br />&nbsp;*&nbsp;Setting&nbsp;up&nbsp;close_connection&nbsp;callback<br />&nbsp;*<br />&nbsp;*&nbsp;The&nbsp;script&nbsp;handles&nbsp;closed&nbsp;connections&nbsp;using&nbsp;HTTP&nbsp;API.<br />&nbsp;*<br />&nbsp;*&nbsp;Usage:<br />&nbsp;*&nbsp;1)&nbsp;Launch&nbsp;the&nbsp;server:<br />&nbsp;*&nbsp;$&nbsp;php&nbsp;examples/http_closecb.php&nbsp;4242<br />&nbsp;*<br />&nbsp;*&nbsp;2)&nbsp;Launch&nbsp;a&nbsp;client&nbsp;in&nbsp;another&nbsp;terminal.&nbsp;Telnet_like<br />&nbsp;*&nbsp;session&nbsp;should&nbsp;look&nbsp;like&nbsp;the&nbsp;following:<br />&nbsp;*<br />&nbsp;*&nbsp;$&nbsp;nc&nbsp;_t&nbsp;127.0.0.1&nbsp;4242<br />&nbsp;*&nbsp;GET&nbsp;/&nbsp;HTTP/1.0<br />&nbsp;*&nbsp;Connection:&nbsp;close<br />&nbsp;*<br />&nbsp;*&nbsp;The&nbsp;server&nbsp;will&nbsp;output&nbsp;something&nbsp;similar&nbsp;to&nbsp;the&nbsp;following:<br />&nbsp;*<br />&nbsp;*&nbsp;HTTP/1.0&nbsp;200&nbsp;OK<br />&nbsp;*&nbsp;Content_Type:&nbsp;multipart/x_mixed_replace;boundary=boundarydonotcross<br />&nbsp;*&nbsp;Connection:&nbsp;close<br />&nbsp;*<br />&nbsp;*&nbsp;&lt;html&gt;<br />&nbsp;*<br />&nbsp;*&nbsp;3)&nbsp;Terminate&nbsp;the&nbsp;client&nbsp;connection&nbsp;abruptly,<br />&nbsp;*&nbsp;i.e.&nbsp;kill&nbsp;the&nbsp;process,&nbsp;or&nbsp;just&nbsp;press&nbsp;Ctrl_C.<br />&nbsp;*<br />&nbsp;*&nbsp;4)&nbsp;Check&nbsp;if&nbsp;the&nbsp;server&nbsp;called&nbsp;_close_callback.<br />&nbsp;*&nbsp;The&nbsp;script&nbsp;should&nbsp;output&nbsp;"_close_callback"&nbsp;string&nbsp;to&nbsp;standard&nbsp;output.<br />&nbsp;*<br />&nbsp;*&nbsp;5)&nbsp;Check&nbsp;if&nbsp;the&nbsp;server's&nbsp;process&nbsp;has&nbsp;no&nbsp;orphaned&nbsp;connections,<br />&nbsp;*&nbsp;e.g.&nbsp;with&nbsp;`lsof`&nbsp;utility.<br />&nbsp;*/<br /><br /></span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">_close_callback</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #0000BB">__FUNCTION__</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />}<br /><br />function&nbsp;</span><span style="color: #0000BB">_http_default</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$dummy</span><span style="color: #007700">)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$conn&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getConnection</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$conn</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">setCloseCallback</span><span style="color: #007700">(</span><span style="color: #DD0000">'_close_callback'</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">NULL</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">/*<br />&nbsp;&nbsp;&nbsp;&nbsp;By&nbsp;enabling&nbsp;Event::READ&nbsp;we&nbsp;protect&nbsp;the&nbsp;server&nbsp;against&nbsp;unclosed&nbsp;conections.<br />&nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;is&nbsp;a&nbsp;peculiarity&nbsp;of&nbsp;Libevent.&nbsp;The&nbsp;library&nbsp;disables&nbsp;Event::READ&nbsp;events<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;on&nbsp;this&nbsp;connection,&nbsp;and&nbsp;the&nbsp;server&nbsp;is&nbsp;not&nbsp;notified&nbsp;about&nbsp;terminated<br />&nbsp;&nbsp;&nbsp;&nbsp;connections.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;So&nbsp;each&nbsp;time&nbsp;client&nbsp;terminates&nbsp;connection&nbsp;abruptly,&nbsp;we&nbsp;get&nbsp;an&nbsp;orphaned<br />&nbsp;&nbsp;&nbsp;&nbsp;connection.&nbsp;For&nbsp;instance,&nbsp;the&nbsp;following&nbsp;is&nbsp;a&nbsp;part&nbsp;of&nbsp;`lsof&nbsp;_p&nbsp;$PID&nbsp;|&nbsp;grep&nbsp;TCP`<br />&nbsp;&nbsp;&nbsp;&nbsp;command&nbsp;after&nbsp;client&nbsp;has&nbsp;terminated&nbsp;connection:<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;57_php&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;15057&nbsp;ruslan&nbsp;&nbsp;6u&nbsp;&nbsp;unix&nbsp;0xffff8802fb59c780&nbsp;&nbsp;&nbsp;0t0&nbsp;&nbsp;125187&nbsp;socket<br />&nbsp;&nbsp;&nbsp;&nbsp;58:php&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;15057&nbsp;ruslan&nbsp;&nbsp;7u&nbsp;&nbsp;IPv4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;125189&nbsp;&nbsp;&nbsp;0t0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TCP&nbsp;*:4242&nbsp;(LISTEN)<br />&nbsp;&nbsp;&nbsp;&nbsp;59:php&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;15057&nbsp;ruslan&nbsp;&nbsp;8u&nbsp;&nbsp;IPv4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;124342&nbsp;&nbsp;&nbsp;0t0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TCP&nbsp;localhost:4242_&gt;localhost:37375&nbsp;(CLOSE_WAIT)<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;where&nbsp;$PID&nbsp;is&nbsp;our&nbsp;process&nbsp;ID.&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;following&nbsp;block&nbsp;of&nbsp;code&nbsp;fixes&nbsp;such&nbsp;kind&nbsp;of&nbsp;orphaned&nbsp;connections.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$bev&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getBufferEvent</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$bev</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">enable</span><span style="color: #007700">(</span><span style="color: #0000BB">Event</span><span style="color: #007700">::</span><span style="color: #0000BB">READ</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">addHeader</span><span style="color: #007700">(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'Content_Type'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'multipart/x_mixed_replace;boundary=boundarydonotcross'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">EventHttpRequest</span><span style="color: #007700">::</span><span style="color: #0000BB">OUTPUT_HEADER<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$buf&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">EventBuffer</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$buf</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">add</span><span style="color: #007700">(</span><span style="color: #DD0000">'&lt;html&gt;'</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">sendReply</span><span style="color: #007700">(</span><span style="color: #0000BB">200</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"OK"</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">sendReplyChunk</span><span style="color: #007700">(</span><span style="color: #0000BB">$buf</span><span style="color: #007700">);<br />}<br /><br /></span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">4242</span><span style="color: #007700">;<br />if&nbsp;(</span><span style="color: #0000BB">$argc&nbsp;</span><span style="color: #007700">&gt;&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">=&nbsp;(int)&nbsp;</span><span style="color: #0000BB">$argv</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">];<br />}<br />if&nbsp;(</span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">&lt;=&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #007700">||&nbsp;</span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">&gt;&nbsp;</span><span style="color: #0000BB">65535</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;exit(</span><span style="color: #DD0000">"Invalid&nbsp;port"</span><span style="color: #007700">);<br />}<br /><br /></span><span style="color: #0000BB">$base&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">EventBase</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">$http&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">EventHttp</span><span style="color: #007700">(</span><span style="color: #0000BB">$base</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$http</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">setDefaultCallback</span><span style="color: #007700">(</span><span style="color: #DD0000">"_http_default"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">NULL</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$http</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">bind</span><span style="color: #007700">(</span><span style="color: #DD0000">"0.0.0.0"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$port</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$base</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">loop</span><span style="color: #007700">();<br /><br /></span><span style="color: #0000BB">?&gt;</span>
;.//eventhttpconnection.setlocalport.html:     <code class="parameter">$port</code>
;.//eventhttprequest.construct.html:<span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">_request_handler</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$base</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #0000BB">__FUNCTION__</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">is_null</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Timed&nbsp;out\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$response_code&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getResponseCode</span><span style="color: #007700">();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$response_code&nbsp;</span><span style="color: #007700">==&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Connection&nbsp;refused\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;elseif&nbsp;(</span><span style="color: #0000BB">$response_code&nbsp;</span><span style="color: #007700">!=&nbsp;</span><span style="color: #0000BB">200</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Unexpected&nbsp;response:&nbsp;</span><span style="color: #0000BB">$response_code</span><span style="color: #DD0000">\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Success:&nbsp;</span><span style="color: #0000BB">$response_code</span><span style="color: #DD0000">\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$buf&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">getInputBuffer</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Body:\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(</span><span style="color: #0000BB">$s&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$buf</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">readLine</span><span style="color: #007700">(</span><span style="color: #0000BB">EventBuffer</span><span style="color: #007700">::</span><span style="color: #0000BB">EOL_ANY</span><span style="color: #007700">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #0000BB">$s</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$base</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">exit</span><span style="color: #007700">(</span><span style="color: #0000BB">NULL</span><span style="color: #007700">);<br />}<br /><br /><br /></span><span style="color: #0000BB">$address&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"127.0.0.1"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">80</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$base&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">EventBase</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">$conn&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">EventHttpConnection</span><span style="color: #007700">(</span><span style="color: #0000BB">$base</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">NULL</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$address</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$port</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$conn</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">setTimeout</span><span style="color: #007700">(</span><span style="color: #0000BB">5</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$req&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">EventHttpRequest</span><span style="color: #007700">(</span><span style="color: #DD0000">"_request_handler"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$base</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">addHeader</span><span style="color: #007700">(</span><span style="color: #DD0000">"Host"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$address</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">EventHttpRequest</span><span style="color: #007700">::</span><span style="color: #0000BB">OUTPUT_HEADER</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$req</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">addHeader</span><span style="color: #007700">(</span><span style="color: #DD0000">"Content_Length"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"0"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">EventHttpRequest</span><span style="color: #007700">::</span><span style="color: #0000BB">OUTPUT_HEADER</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$conn</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">makeRequest</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">EventHttpRequest</span><span style="color: #007700">::</span><span style="color: #0000BB">CMD_GET</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"/index.cphp"</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$base</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">loop</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">?&gt;</span>
;.//eventlistener.construct.html:<span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/*<br />&nbsp;*&nbsp;Simple&nbsp;echo&nbsp;server&nbsp;based&nbsp;on&nbsp;libevent's&nbsp;connection&nbsp;listener.<br />&nbsp;*<br />&nbsp;*&nbsp;Usage:<br />&nbsp;*&nbsp;1)&nbsp;In&nbsp;one&nbsp;terminal&nbsp;window&nbsp;run:<br />&nbsp;*<br />&nbsp;*&nbsp;$&nbsp;php&nbsp;listener.php&nbsp;9881<br />&nbsp;*<br />&nbsp;*&nbsp;2)&nbsp;In&nbsp;another&nbsp;terminal&nbsp;window&nbsp;open&nbsp;up&nbsp;connection,&nbsp;e.g.:<br />&nbsp;*<br />&nbsp;*&nbsp;$&nbsp;nc&nbsp;127.0.0.1&nbsp;9881<br />&nbsp;*<br />&nbsp;*&nbsp;3)&nbsp;start&nbsp;typing.&nbsp;The&nbsp;server&nbsp;should&nbsp;repeat&nbsp;the&nbsp;input.<br />&nbsp;*/<br /><br /></span><span style="color: #007700">class&nbsp;</span><span style="color: #0000BB">MyListenerConnection&nbsp;</span><span style="color: #007700">{<br />&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;</span><span style="color: #0000BB">$bev</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$base</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;</span><span style="color: #0000BB">__destruct</span><span style="color: #007700">()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">bev</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">free</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;</span><span style="color: #0000BB">__construct</span><span style="color: #007700">(</span><span style="color: #0000BB">$base</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$fd</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">base&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$base</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">bev&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">EventBufferEvent</span><span style="color: #007700">(</span><span style="color: #0000BB">$base</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$fd</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">EventBufferEvent</span><span style="color: #007700">::</span><span style="color: #0000BB">OPT_CLOSE_ON_FREE</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">bev</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">setCallbacks</span><span style="color: #007700">(array(</span><span style="color: #0000BB">$this</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"echoReadCallback"</span><span style="color: #007700">),&nbsp;</span><span style="color: #0000BB">NULL</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(</span><span style="color: #0000BB">$this</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"echoEventCallback"</span><span style="color: #007700">),&nbsp;</span><span style="color: #0000BB">NULL</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">bev</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">enable</span><span style="color: #007700">(</span><span style="color: #0000BB">Event</span><span style="color: #007700">::</span><span style="color: #0000BB">READ</span><span style="color: #007700">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Failed&nbsp;to&nbsp;enable&nbsp;READ\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;</span><span style="color: #0000BB">echoReadCallback</span><span style="color: #007700">(</span><span style="color: #0000BB">$bev</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$ctx</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Copy&nbsp;all&nbsp;the&nbsp;data&nbsp;from&nbsp;the&nbsp;input&nbsp;buffer&nbsp;to&nbsp;the&nbsp;output&nbsp;buffer<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Variant&nbsp;#1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$bev</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">output</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">addBuffer</span><span style="color: #007700">(</span><span style="color: #0000BB">$bev</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">input</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">/*&nbsp;Variant&nbsp;#2&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$input&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$bev_&gt;getInput();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$output&nbsp;=&nbsp;$bev_&gt;getOutput();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$output_&gt;addBuffer($input);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;</span><span style="color: #0000BB">echoEventCallback</span><span style="color: #007700">(</span><span style="color: #0000BB">$bev</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$events</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$ctx</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$events&nbsp;</span><span style="color: #007700">&amp;&nbsp;</span><span style="color: #0000BB">EventBufferEvent</span><span style="color: #007700">::</span><span style="color: #0000BB">ERROR</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Error&nbsp;from&nbsp;bufferevent\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$events&nbsp;</span><span style="color: #007700">&amp;&nbsp;(</span><span style="color: #0000BB">EventBufferEvent</span><span style="color: #007700">::</span><span style="color: #0000BB">EOF&nbsp;</span><span style="color: #007700">|&nbsp;</span><span style="color: #0000BB">EventBufferEvent</span><span style="color: #007700">::</span><span style="color: #0000BB">ERROR</span><span style="color: #007700">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//$bev_&gt;free();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">__destruct</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br />class&nbsp;</span><span style="color: #0000BB">MyListener&nbsp;</span><span style="color: #007700">{<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">$base</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$listener</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$socket</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;</span><span style="color: #0000BB">$conn&nbsp;</span><span style="color: #007700">=&nbsp;array();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;</span><span style="color: #0000BB">__destruct</span><span style="color: #007700">()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;(</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">conn&nbsp;</span><span style="color: #007700">as&nbsp;&amp;</span><span style="color: #0000BB">$c</span><span style="color: #007700">)&nbsp;</span><span style="color: #0000BB">$c&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">NULL</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;</span><span style="color: #0000BB">__construct</span><span style="color: #007700">(</span><span style="color: #0000BB">$port</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">base&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">EventBase</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">base</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Couldn't&nbsp;open&nbsp;event&nbsp;base"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Variant&nbsp;#1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this_&gt;socket&nbsp;=&nbsp;socket_create(AF_INET,&nbsp;SOCK_STREAM,&nbsp;SOL_TCP);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!socket_bind($this_&gt;socket,&nbsp;'0.0.0.0',&nbsp;$port))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;"Unable&nbsp;to&nbsp;bind&nbsp;socket\n";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this_&gt;listener&nbsp;=&nbsp;new&nbsp;EventListener($this_&gt;base,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array($this,&nbsp;"acceptConnCallback"),&nbsp;$this_&gt;base,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EventListener::OPT_CLOSE_ON_FREE&nbsp;|&nbsp;EventListener::OPT_REUSEABLE,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_1,&nbsp;$this_&gt;socket);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Variant&nbsp;#2<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">listener&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">EventListener</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">base</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(</span><span style="color: #0000BB">$this</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"acceptConnCallback"</span><span style="color: #007700">),&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">base</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">EventListener</span><span style="color: #007700">::</span><span style="color: #0000BB">OPT_CLOSE_ON_FREE&nbsp;</span><span style="color: #007700">|&nbsp;</span><span style="color: #0000BB">EventListener</span><span style="color: #007700">::</span><span style="color: #0000BB">OPT_REUSEABLE</span><span style="color: #007700">,&nbsp;_</span><span style="color: #0000BB">1</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">"0.0.0.0:</span><span style="color: #0000BB">$port</span><span style="color: #DD0000">"</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">listener</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Couldn't&nbsp;create&nbsp;listener"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">listener</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">setErrorCallback</span><span style="color: #007700">(array(</span><span style="color: #0000BB">$this</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"accept_error_cb"</span><span style="color: #007700">));<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;</span><span style="color: #0000BB">dispatch</span><span style="color: #007700">()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">base</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">dispatch</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;This&nbsp;callback&nbsp;is&nbsp;invoked&nbsp;when&nbsp;there&nbsp;is&nbsp;data&nbsp;to&nbsp;read&nbsp;on&nbsp;$bev<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">acceptConnCallback</span><span style="color: #007700">(</span><span style="color: #0000BB">$listener</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$fd</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$address</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$ctx</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;We&nbsp;got&nbsp;a&nbsp;new&nbsp;connection!&nbsp;Set&nbsp;up&nbsp;a&nbsp;bufferevent&nbsp;for&nbsp;it.&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$base&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">base</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">conn</span><span style="color: #007700">[]&nbsp;=&nbsp;new&nbsp;</span><span style="color: #0000BB">MyListenerConnection</span><span style="color: #007700">(</span><span style="color: #0000BB">$base</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$fd</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;</span><span style="color: #0000BB">accept_error_cb</span><span style="color: #007700">(</span><span style="color: #0000BB">$listener</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$ctx</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$base&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">base</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">fprintf</span><span style="color: #007700">(</span><span style="color: #0000BB">STDERR</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"Got&nbsp;an&nbsp;error&nbsp;%d&nbsp;(%s)&nbsp;on&nbsp;the&nbsp;listener.&nbsp;"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">.</span><span style="color: #DD0000">"Shutting&nbsp;down.\n"</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">EventUtil</span><span style="color: #007700">::</span><span style="color: #0000BB">getLastSocketErrno</span><span style="color: #007700">(),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">EventUtil</span><span style="color: #007700">::</span><span style="color: #0000BB">getLastSocketError</span><span style="color: #007700">());<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$base</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">exit</span><span style="color: #007700">(</span><span style="color: #0000BB">NULL</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br /></span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">9808</span><span style="color: #007700">;<br /><br />if&nbsp;(</span><span style="color: #0000BB">$argc&nbsp;</span><span style="color: #007700">&gt;&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">=&nbsp;(int)&nbsp;</span><span style="color: #0000BB">$argv</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">];<br />}<br />if&nbsp;(</span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">&lt;=&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #007700">||&nbsp;</span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">&gt;&nbsp;</span><span style="color: #0000BB">65535</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;exit(</span><span style="color: #DD0000">"Invalid&nbsp;port"</span><span style="color: #007700">);<br />}<br /><br /></span><span style="color: #0000BB">$l&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">MyListener</span><span style="color: #007700">(</span><span style="color: #0000BB">$port</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$l</span><span style="color: #007700">_&gt;</span><span style="color: #0000BB">dispatch</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">?&gt;</span>
;.//eventlistener.getsocketname.html:     <code class="parameter reference">&$port</code>
;.//eventutil.getsocketname.html:     <code class="parameter reference">&$port</code>
;
;.//function.apd_set_session_trace_socket.html:   , <span class="methodparam"><span class="type">int</span> <code class="parameter">$port</code></span>
;.//function.cubrid_connect.html:   , <span class="methodparam"><span class="type">int</span> <code class="parameter">$port</code></span>  
;.//function.cubrid_get_query_timeout.html:<span style="color: #0000BB">&lt;?php<br /><br />$host&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"localhost"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">33000</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$db&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"demodb"</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$conn&nbsp;</span><span style="color: #007700">=<br /></span><span style="color: #0000BB">cubrid_connect_with_url</span><span style="color: #007700">(</span><span style="color: #DD0000">"CUBRID:</span><span style="color: #0000BB">$host</span><span style="color: #DD0000">:</span><span style="color: #0000BB">$port</span><span style="color: #DD0000">:</span><span style="color: #0000BB">$db</span><span style="color: #DD0000">:::?login_timeout=50000&amp;query_timeout=5000&amp;disconnect_on_query_timeout=yes"</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$req&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">cubrid_prepare</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"SELECT&nbsp;*&nbsp;FROM&nbsp;code"</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$timeout&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">cubrid_get_query_timeout</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$timeout</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">cubrid_set_query_timeout</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">1000</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$timeout&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">cubrid_get_query_timeout</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$timeout</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">cubrid_close</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span>
;.//function.cubrid_pconnect.html:   , <span class="methodparam"><span class="type">int</span> <code class="parameter">$port</code></span>  
;.//function.cyrus_connect.html:   [, <span class="methodparam"><span class="type">string</span> <code class="parameter">$port</code></span>
;.//function.db2_connect.html:<span style="color: #0000BB">&lt;?php<br />$database&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'SAMPLE'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$user&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'db2inst1'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$password&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'ibmdb2'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$hostname&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'localhost'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">50000</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$conn_string&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"DRIVER={IBM&nbsp;DB2&nbsp;ODBC&nbsp;DRIVER};DATABASE=</span><span style="color: #0000BB">$database</span><span style="color: #DD0000">;"&nbsp;</span><span style="color: #007700">.<br />&nbsp;&nbsp;</span><span style="color: #DD0000">"HOSTNAME=</span><span style="color: #0000BB">$hostname</span><span style="color: #DD0000">;PORT=</span><span style="color: #0000BB">$port</span><span style="color: #DD0000">;PROTOCOL=TCPIP;UID=</span><span style="color: #0000BB">$user</span><span style="color: #DD0000">;PWD=</span><span style="color: #0000BB">$password</span><span style="color: #DD0000">;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$conn&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">db2_connect</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn_string</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">);<br /><br />if&nbsp;(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Connection&nbsp;succeeded."</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">db2_close</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">);<br />}<br />else&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Connection&nbsp;failed."</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span>
;.//function.db2_connect.html:<span style="color: #0000BB">&lt;?php<br /><br />$database&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"SAMPLE"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$hostname&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"localhost"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">50000</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$authID&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"db2inst1"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$auth_pass&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"ibmdb2"</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$tc_user&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"tcuser"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$tc_pass&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"tcpassword"</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$dsn&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"DATABASE=</span><span style="color: #0000BB">$database</span><span style="color: #DD0000">;HOSTNAME=</span><span style="color: #0000BB">$hostname</span><span style="color: #DD0000">;PORT=</span><span style="color: #0000BB">$port</span><span style="color: #DD0000">;<br />&nbsp;&nbsp;PROTOCOL=TCPIP;UID=</span><span style="color: #0000BB">$authID</span><span style="color: #DD0000">;PWD=</span><span style="color: #0000BB">$auth_pass</span><span style="color: #DD0000">;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$options&nbsp;</span><span style="color: #007700">=&nbsp;array&nbsp;(</span><span style="color: #DD0000">"trustedcontext"&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">DB2_TRUSTED_CONTEXT_ENABLE</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$tc_conn&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">db2_connect</span><span style="color: #007700">(</span><span style="color: #0000BB">$dsn</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">""</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">""</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$options</span><span style="color: #007700">);<br />if(</span><span style="color: #0000BB">$tc_conn</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Explicit&nbsp;trusted&nbsp;connection&nbsp;succeeded.\n"</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;if(</span><span style="color: #0000BB">db2_get_option</span><span style="color: #007700">(</span><span style="color: #0000BB">$tc_conn</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"trustedcontext"</span><span style="color: #007700">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$userBefore&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">db2_get_option</span><span style="color: #007700">(</span><span style="color: #0000BB">$tc_conn</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"trusted_user"</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Do&nbsp;some&nbsp;work&nbsp;as&nbsp;user&nbsp;1.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Switching&nbsp;to&nbsp;trusted&nbsp;user.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$parameters&nbsp;</span><span style="color: #007700">=&nbsp;array(</span><span style="color: #DD0000">"trusted_user"&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">$tc_user</span><span style="color: #007700">,&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">"trusted_password"&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">$tcuser_pass</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$res&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">db2_set_option&nbsp;</span><span style="color: #007700">(</span><span style="color: #0000BB">$tc_conn</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$parameters</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$userAfter&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">db2_get_option</span><span style="color: #007700">(</span><span style="color: #0000BB">$tc_conn</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"trusted_user"</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Do&nbsp;more&nbsp;work&nbsp;as&nbsp;trusted&nbsp;user.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if(</span><span style="color: #0000BB">$userBefore&nbsp;</span><span style="color: #007700">!=&nbsp;</span><span style="color: #0000BB">$userAfter</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"User&nbsp;has&nbsp;been&nbsp;switched."&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">db2_close</span><span style="color: #007700">(</span><span style="color: #0000BB">$tc_conn</span><span style="color: #007700">);<br />}<br />else&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Explicit&nbsp;trusted&nbsp;connection&nbsp;failed.\n"</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span>
;.//function.db2_pconnect.html:<span style="color: #0000BB">&lt;?php<br /><br />$database&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"SAMPLE"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$hostname&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"localhost"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">50000</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$authID&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"db2inst1"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$auth_pass&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"ibmdb2"</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$tc_user&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"tcuser"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$tc_pass&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"tcpassword"</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$dsn&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"DATABASE=</span><span style="color: #0000BB">$database</span><span style="color: #DD0000">;HOSTNAME=</span><span style="color: #0000BB">$hostname</span><span style="color: #DD0000">;PORT=</span><span style="color: #0000BB">$port</span><span style="color: #DD0000">;<br />&nbsp;&nbsp;PROTOCOL=TCPIP;UID=</span><span style="color: #0000BB">$authID</span><span style="color: #DD0000">;PWD=</span><span style="color: #0000BB">$auth_pass</span><span style="color: #DD0000">;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$options&nbsp;</span><span style="color: #007700">=&nbsp;array&nbsp;(</span><span style="color: #DD0000">"trustedcontext"&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">DB2_TRUSTED_CONTEXT_ENABLE</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$tc_conn&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">db2_pconnect</span><span style="color: #007700">(</span><span style="color: #0000BB">$dsn</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">""</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">""</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$options</span><span style="color: #007700">);<br />if(</span><span style="color: #0000BB">$tc_conn</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Explicit&nbsp;trusted&nbsp;connection&nbsp;succeeded.\n"</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;if(</span><span style="color: #0000BB">db2_get_option</span><span style="color: #007700">(</span><span style="color: #0000BB">$tc_conn</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"trustedcontext"</span><span style="color: #007700">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$userBefore&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">db2_get_option</span><span style="color: #007700">(</span><span style="color: #0000BB">$tc_conn</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"trusted_user"</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Do&nbsp;some&nbsp;work&nbsp;as&nbsp;user&nbsp;1.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Switching&nbsp;to&nbsp;trusted&nbsp;user.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$parameters&nbsp;</span><span style="color: #007700">=&nbsp;array(</span><span style="color: #DD0000">"trusted_user"&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">$tc_user</span><span style="color: #007700">,&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">"trusted_password"&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">$tcuser_pass</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$res&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">db2_set_option&nbsp;</span><span style="color: #007700">(</span><span style="color: #0000BB">$tc_conn</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$parameters</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$userAfter&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">db2_get_option</span><span style="color: #007700">(</span><span style="color: #0000BB">$tc_conn</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"trusted_user"</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Do&nbsp;more&nbsp;work&nbsp;as&nbsp;trusted&nbsp;user.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if(</span><span style="color: #0000BB">$userBefore&nbsp;</span><span style="color: #007700">!=&nbsp;</span><span style="color: #0000BB">$userAfter</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"User&nbsp;has&nbsp;been&nbsp;switched."&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">db2_close</span><span style="color: #007700">(</span><span style="color: #0000BB">$tc_conn</span><span style="color: #007700">);<br />}<br />else&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Explicit&nbsp;trusted&nbsp;connection&nbsp;failed.\n"</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span>
;.//function.db2_set_option.html:<span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/*&nbsp;Database&nbsp;Connection&nbsp;Parameters&nbsp;*/<br /></span><span style="color: #0000BB">$database&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'SAMPLE'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$hostname&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'localhost'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">50000</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$protocol&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'TCPIP'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$username&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'db2inst1'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$password&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'ibmdb2'</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">/*&nbsp;Connection&nbsp;String&nbsp;*/<br /></span><span style="color: #0000BB">$conn_string&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"DRIVER={IBM&nbsp;DB2&nbsp;ODBC&nbsp;DRIVER};DATABASE=</span><span style="color: #0000BB">$database</span><span style="color: #DD0000">;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$conn_string&nbsp;</span><span style="color: #007700">.=&nbsp;</span><span style="color: #DD0000">"HOSTNAME=</span><span style="color: #0000BB">$hostname</span><span style="color: #DD0000">;PORT=</span><span style="color: #0000BB">$port</span><span style="color: #DD0000">;PROTOCOL=</span><span style="color: #0000BB">$protocol</span><span style="color: #DD0000">;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$conn_string&nbsp;</span><span style="color: #007700">.=&nbsp;</span><span style="color: #DD0000">"UID=</span><span style="color: #0000BB">$username</span><span style="color: #DD0000">;PWD=</span><span style="color: #0000BB">$password</span><span style="color: #DD0000">;"</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">/*&nbsp;Obtain&nbsp;Connection&nbsp;Resource&nbsp;*/<br /></span><span style="color: #0000BB">$conn&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">db2_connect</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn_string</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/*&nbsp;Create&nbsp;the&nbsp;associative&nbsp;options&nbsp;array&nbsp;with&nbsp;valid&nbsp;key_value&nbsp;pairs&nbsp;*/<br /></span><span style="color: #0000BB">$options&nbsp;</span><span style="color: #007700">=&nbsp;array(</span><span style="color: #DD0000">'autocommit'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">DB2_AUTOCOMMIT_ON</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/*&nbsp;Call&nbsp;the&nbsp;function&nbsp;using&nbsp;the&nbsp;correct&nbsp;resource,&nbsp;options&nbsp;array,&nbsp;and&nbsp;type&nbsp;values&nbsp;*/<br /></span><span style="color: #0000BB">$result&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">db2_set_option</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$options</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/*&nbsp;Check&nbsp;if&nbsp;all&nbsp;options&nbsp;could&nbsp;be&nbsp;set&nbsp;correctly&nbsp;*/<br /></span><span style="color: #007700">if(</span><span style="color: #0000BB">$result</span><span style="color: #007700">)<br />{<br />&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">'Options&nbsp;Set&nbsp;Successfully'</span><span style="color: #007700">;<br />}<br />else<br />{<br />&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">'Could&nbsp;Not&nbsp;Set&nbsp;Options'</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span>
;.//function.db2_set_option.html:<span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/*&nbsp;Database&nbsp;Connection&nbsp;Parameters&nbsp;*/<br /></span><span style="color: #0000BB">$database&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'SAMPLE'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$hostname&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'localhost'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">50000</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$protocol&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'TCPIP'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$username&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'db2inst1'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$password&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'ibmdb2'</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">/*&nbsp;Connection&nbsp;String&nbsp;*/<br /></span><span style="color: #0000BB">$conn_string&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"DRIVER={IBM&nbsp;DB2&nbsp;ODBC&nbsp;DRIVER};DATABASE=</span><span style="color: #0000BB">$database</span><span style="color: #DD0000">;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$conn_string&nbsp;</span><span style="color: #007700">.=&nbsp;</span><span style="color: #DD0000">"HOSTNAME=</span><span style="color: #0000BB">$hostname</span><span style="color: #DD0000">;PORT=</span><span style="color: #0000BB">$port</span><span style="color: #DD0000">;PROTOCOL=</span><span style="color: #0000BB">$protocol</span><span style="color: #DD0000">;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$conn_string&nbsp;</span><span style="color: #007700">.=&nbsp;</span><span style="color: #DD0000">"UID=</span><span style="color: #0000BB">$username</span><span style="color: #DD0000">;PWD=</span><span style="color: #0000BB">$password</span><span style="color: #DD0000">;"</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">/*&nbsp;Obtain&nbsp;Connection&nbsp;Resource&nbsp;*/<br /></span><span style="color: #0000BB">$conn&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">db2_connect</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn_string</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/*&nbsp;Create&nbsp;the&nbsp;associative&nbsp;options&nbsp;array&nbsp;with&nbsp;valid&nbsp;key_value&nbsp;pairs&nbsp;*/<br /></span><span style="color: #0000BB">$options&nbsp;</span><span style="color: #007700">=&nbsp;array(</span><span style="color: #DD0000">'autocommit'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">DB2_AUTOCOMMIT_OFF</span><span style="color: #007700">,&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'binmode'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">DB2_PASSTHRU</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'db2_attr_case'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">DB2_CASE_UPPER</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'cursor'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">DB2_SCROLLABLE</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/*&nbsp;Call&nbsp;the&nbsp;function&nbsp;using&nbsp;the&nbsp;correct&nbsp;resource,&nbsp;options&nbsp;array,&nbsp;and&nbsp;type&nbsp;values&nbsp;*/<br /></span><span style="color: #0000BB">$result&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">db2_set_option</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$options</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/*&nbsp;Check&nbsp;if&nbsp;all&nbsp;options&nbsp;could&nbsp;be&nbsp;set&nbsp;correctly&nbsp;*/<br /></span><span style="color: #007700">if(</span><span style="color: #0000BB">$result</span><span style="color: #007700">)<br />{<br />&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">'Options&nbsp;Set&nbsp;Successfully'</span><span style="color: #007700">;<br />}<br />else<br />{<br />&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">'Could&nbsp;Not&nbsp;Set&nbsp;Options'</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span>
;.//function.db2_set_option.html:<span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/*&nbsp;Database&nbsp;Connection&nbsp;Parameters&nbsp;*/<br /></span><span style="color: #0000BB">$database&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'SAMPLE'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$hostname&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'localhost'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">50000</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$protocol&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'TCPIP'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$username&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'db2inst1'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$password&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'ibmdb2'</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">/*&nbsp;Connection&nbsp;String&nbsp;*/<br /></span><span style="color: #0000BB">$conn_string&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"DRIVER={IBM&nbsp;DB2&nbsp;ODBC&nbsp;DRIVER};DATABASE=</span><span style="color: #0000BB">$database</span><span style="color: #DD0000">;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$conn_string&nbsp;</span><span style="color: #007700">.=&nbsp;</span><span style="color: #DD0000">"HOSTNAME=</span><span style="color: #0000BB">$hostname</span><span style="color: #DD0000">;PORT=</span><span style="color: #0000BB">$port</span><span style="color: #DD0000">;PROTOCOL=</span><span style="color: #0000BB">$protocol</span><span style="color: #DD0000">;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$conn_string&nbsp;</span><span style="color: #007700">.=&nbsp;</span><span style="color: #DD0000">"UID=</span><span style="color: #0000BB">$username</span><span style="color: #DD0000">;PWD=</span><span style="color: #0000BB">$password</span><span style="color: #DD0000">;"</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">/*&nbsp;Obtain&nbsp;Connection&nbsp;Resource&nbsp;*/<br /></span><span style="color: #0000BB">$conn&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">db2_connect</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn_string</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/*&nbsp;Create&nbsp;the&nbsp;associative&nbsp;options&nbsp;array&nbsp;with&nbsp;valid&nbsp;key_value&nbsp;pairs&nbsp;*/<br /></span><span style="color: #0000BB">$options&nbsp;</span><span style="color: #007700">=&nbsp;array(</span><span style="color: #DD0000">'autocommit'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">DB2_AUTOCOMMIT_OFF</span><span style="color: #007700">,&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'MY_INVALID_KEY'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">DB2_PASSTHRU</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'db2_attr_case'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">DB2_CASE_UPPER</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'cursor'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">DB2_SCROLLABLE</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/*&nbsp;Call&nbsp;the&nbsp;function&nbsp;using&nbsp;the&nbsp;correct&nbsp;resource,&nbsp;options&nbsp;array,&nbsp;and&nbsp;type&nbsp;values&nbsp;*/<br /></span><span style="color: #0000BB">$result&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">db2_set_option</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$options</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/*&nbsp;Check&nbsp;if&nbsp;all&nbsp;options&nbsp;could&nbsp;be&nbsp;set&nbsp;correctly&nbsp;*/<br /></span><span style="color: #007700">if(</span><span style="color: #0000BB">$result</span><span style="color: #007700">)<br />{<br />&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">'Options&nbsp;Set&nbsp;Successfully'</span><span style="color: #007700">;<br />}<br />else<br />{<br />&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">'Could&nbsp;Not&nbsp;Set&nbsp;Options'</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span>
;.//function.db2_set_option.html:<span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/*&nbsp;Database&nbsp;Connection&nbsp;Parameters&nbsp;*/<br /></span><span style="color: #0000BB">$database&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'SAMPLE'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$hostname&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'localhost'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">50000</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$protocol&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'TCPIP'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$username&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'db2inst1'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$password&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'ibmdb2'</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">/*&nbsp;Connection&nbsp;String&nbsp;*/<br /></span><span style="color: #0000BB">$conn_string&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"DRIVER={IBM&nbsp;DB2&nbsp;ODBC&nbsp;DRIVER};DATABASE=</span><span style="color: #0000BB">$database</span><span style="color: #DD0000">;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$conn_string&nbsp;</span><span style="color: #007700">.=&nbsp;</span><span style="color: #DD0000">"HOSTNAME=</span><span style="color: #0000BB">$hostname</span><span style="color: #DD0000">;PORT=</span><span style="color: #0000BB">$port</span><span style="color: #DD0000">;PROTOCOL=</span><span style="color: #0000BB">$protocol</span><span style="color: #DD0000">;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$conn_string&nbsp;</span><span style="color: #007700">.=&nbsp;</span><span style="color: #DD0000">"UID=</span><span style="color: #0000BB">$username</span><span style="color: #DD0000">;PWD=</span><span style="color: #0000BB">$password</span><span style="color: #DD0000">;"</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">/*&nbsp;Obtain&nbsp;Connection&nbsp;Resource&nbsp;*/<br /></span><span style="color: #0000BB">$conn&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">db2_connect</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn_string</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/*&nbsp;Create&nbsp;the&nbsp;associative&nbsp;options&nbsp;array&nbsp;with&nbsp;valid&nbsp;key_value&nbsp;pairs&nbsp;*/<br /></span><span style="color: #0000BB">$options&nbsp;</span><span style="color: #007700">=&nbsp;array(</span><span style="color: #DD0000">'autocommit'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">DB2_AUTOCOMMIT_OFF</span><span style="color: #007700">,&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'binmode'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'INVALID_VALUE'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'db2_attr_case'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">DB2_CASE_UPPER</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'cursor'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">DB2_SCROLLABLE</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/*&nbsp;Call&nbsp;the&nbsp;function&nbsp;using&nbsp;the&nbsp;correct&nbsp;resource,&nbsp;options&nbsp;array,&nbsp;and&nbsp;type&nbsp;values&nbsp;*/<br /></span><span style="color: #0000BB">$result&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">db2_set_option</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$options</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/*&nbsp;Check&nbsp;if&nbsp;all&nbsp;options&nbsp;could&nbsp;be&nbsp;set&nbsp;correctly&nbsp;*/<br /></span><span style="color: #007700">if(</span><span style="color: #0000BB">$result</span><span style="color: #007700">)<br />{<br />&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">'Options&nbsp;Set&nbsp;Successfully'</span><span style="color: #007700">;<br />}<br />else<br />{<br />&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">'Could&nbsp;Not&nbsp;Set&nbsp;Options'</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span>
;.//function.db2_set_option.html:<span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/*&nbsp;Database&nbsp;Connection&nbsp;Parameters&nbsp;*/<br /></span><span style="color: #0000BB">$database&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'SAMPLE'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$hostname&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'localhost'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">50000</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$protocol&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'TCPIP'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$username&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'db2inst1'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$password&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'ibmdb2'</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">/*&nbsp;Connection&nbsp;String&nbsp;*/<br /></span><span style="color: #0000BB">$conn_string&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"DRIVER={IBM&nbsp;DB2&nbsp;ODBC&nbsp;DRIVER};DATABASE=</span><span style="color: #0000BB">$database</span><span style="color: #DD0000">;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$conn_string&nbsp;</span><span style="color: #007700">.=&nbsp;</span><span style="color: #DD0000">"HOSTNAME=</span><span style="color: #0000BB">$hostname</span><span style="color: #DD0000">;PORT=</span><span style="color: #0000BB">$port</span><span style="color: #DD0000">;PROTOCOL=</span><span style="color: #0000BB">$protocol</span><span style="color: #DD0000">;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$conn_string&nbsp;</span><span style="color: #007700">.=&nbsp;</span><span style="color: #DD0000">"UID=</span><span style="color: #0000BB">$username</span><span style="color: #DD0000">;PWD=</span><span style="color: #0000BB">$password</span><span style="color: #DD0000">;"</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">/*&nbsp;Obtain&nbsp;Connection&nbsp;Resource&nbsp;*/<br /></span><span style="color: #0000BB">$conn&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">db2_connect</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn_string</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/*&nbsp;Create&nbsp;the&nbsp;associative&nbsp;options&nbsp;array&nbsp;with&nbsp;valid&nbsp;key_value&nbsp;pairs&nbsp;*/<br /></span><span style="color: #0000BB">$options&nbsp;</span><span style="color: #007700">=&nbsp;array(</span><span style="color: #DD0000">'autocommit'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">DB2_AUTOCOMMIT_OFF</span><span style="color: #007700">,&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'binmode'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">DB2_PASSTHRU</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'db2_attr_case'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">DB2_CASE_UPPER</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'cursor'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">DB2_SCROLLABLE</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/*&nbsp;Call&nbsp;the&nbsp;function&nbsp;using&nbsp;the&nbsp;correct&nbsp;resource,&nbsp;options&nbsp;array,&nbsp;and&nbsp;the&nbsp;wrong&nbsp;type&nbsp;value&nbsp;*/<br /></span><span style="color: #0000BB">$result&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">db2_set_option</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$options</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">2</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/*&nbsp;Check&nbsp;if&nbsp;all&nbsp;options&nbsp;could&nbsp;be&nbsp;set&nbsp;correctly&nbsp;*/<br /></span><span style="color: #007700">if(</span><span style="color: #0000BB">$result</span><span style="color: #007700">)<br />{<br />&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">'Options&nbsp;Set&nbsp;Successfully'</span><span style="color: #007700">;<br />}<br />else<br />{<br />&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">'Could&nbsp;Not&nbsp;Set&nbsp;Options'</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span>
;.//function.db2_set_option.html:<span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/*&nbsp;Database&nbsp;Connection&nbsp;Parameters&nbsp;*/<br /></span><span style="color: #0000BB">$database&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'SAMPLE'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$hostname&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'localhost'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">50000</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$protocol&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'TCPIP'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$username&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'db2inst1'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$password&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'ibmdb2'</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">/*&nbsp;Connection&nbsp;String&nbsp;*/<br /></span><span style="color: #0000BB">$conn_string&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"DRIVER={IBM&nbsp;DB2&nbsp;ODBC&nbsp;DRIVER};DATABASE=</span><span style="color: #0000BB">$database</span><span style="color: #DD0000">;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$conn_string&nbsp;</span><span style="color: #007700">.=&nbsp;</span><span style="color: #DD0000">"HOSTNAME=</span><span style="color: #0000BB">$hostname</span><span style="color: #DD0000">;PORT=</span><span style="color: #0000BB">$port</span><span style="color: #DD0000">;PROTOCOL=</span><span style="color: #0000BB">$protocol</span><span style="color: #DD0000">;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$conn_string&nbsp;</span><span style="color: #007700">.=&nbsp;</span><span style="color: #DD0000">"UID=</span><span style="color: #0000BB">$username</span><span style="color: #DD0000">;PWD=</span><span style="color: #0000BB">$password</span><span style="color: #DD0000">;"</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">/*&nbsp;Obtain&nbsp;Connection&nbsp;Resource&nbsp;*/<br /></span><span style="color: #0000BB">$conn&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">db2_connect</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn_string</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/*&nbsp;Create&nbsp;the&nbsp;associative&nbsp;options&nbsp;array&nbsp;with&nbsp;valid&nbsp;key_value&nbsp;pairs&nbsp;*/<br /></span><span style="color: #0000BB">$options&nbsp;</span><span style="color: #007700">=&nbsp;array(</span><span style="color: #DD0000">'autocommit'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">DB2_AUTOCOMMIT_OFF</span><span style="color: #007700">,&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'binmode'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">DB2_PASSTHRU</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'db2_attr_case'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">DB2_CASE_UPPER</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'cursor'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">DB2_SCROLLABLE</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$stmt&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">db2_prepare</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'SELECT&nbsp;*&nbsp;FROM&nbsp;EMPLOYEE'</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/*&nbsp;Call&nbsp;the&nbsp;function&nbsp;using&nbsp;the&nbsp;wrong&nbsp;resource,&nbsp;and&nbsp;the&nbsp;correct&nbsp;options&nbsp;array,&nbsp;and&nbsp;type&nbsp;values&nbsp;*/<br /></span><span style="color: #0000BB">$result&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">db2_set_option</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$options</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/*&nbsp;Check&nbsp;if&nbsp;all&nbsp;options&nbsp;could&nbsp;be&nbsp;set&nbsp;correctly&nbsp;*/<br /></span><span style="color: #007700">if(</span><span style="color: #0000BB">$result</span><span style="color: #007700">)<br />{<br />&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">'Options&nbsp;Set&nbsp;Successfully'</span><span style="color: #007700">;<br />}<br />else<br />{<br />&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">'Could&nbsp;Not&nbsp;Set&nbsp;Options'</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span>
;.//function.db2_set_option.html:<span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/*&nbsp;Database&nbsp;Connection&nbsp;Parameters&nbsp;*/<br /></span><span style="color: #0000BB">$database&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'SAMPLE'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$hostname&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'localhost'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$port&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">50000</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$protocol&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'TCPIP'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$username&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'db2inst1'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$password&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'ibmdb2'</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">/*&nbsp;Connection&nbsp;String&nbsp;*/<br /></span><span style="color: #0000BB">$conn_string&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"DRIVER={IBM&nbsp;DB2&nbsp;ODBC&nbsp;DRIVER};DATABASE=</span><span style="color: #0000BB">$database</span><span style="color: #DD0000">;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$conn_string&nbsp;</span><span style="color: #007700">.=&nbsp;</span><span style="color: #DD0000">"HOSTNAME=</span><span style="color: #0000BB">$hostname</span><span style="color: #DD0000">;PORT=</span><span style="color: #0000BB">$port</span><span style="color: #DD0000">;PROTOCOL=</span><span style="color: #0000BB">$protocol</span><span style="color: #DD0000">;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$conn_string&nbsp;</span><span style="color: #007700">.=&nbsp;</span><span style="color: #DD0000">"UID=</span><span style="color: #0000BB">$username</span><span style="color: #DD0000">;PWD=</span><span style="color: #0000BB">$password</span><span style="color: #DD0000">;"</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">/*&nbsp;Obtain&nbsp;Connection&nbsp;Resource&nbsp;*/<br /></span><span style="color: #0000BB">$conn&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">db2_connect</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn_string</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/*&nbsp;Create&nbsp;the&nbsp;associative&nbsp;options&nbsp;array&nbsp;with&nbsp;valid&nbsp;key_value&nbsp;pairs&nbsp;*/<br /></span><span style="color: #0000BB">$options&nbsp;</span><span style="color: #007700">=&nbsp;array(</span><span style="color: #DD0000">'db2_attr_case'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">DB2_CASE_LOWER</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'cursor'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">DB2_SCROLLABLE</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$stmt&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">db2_prepare</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'SELECT&nbsp;*&nbsp;FROM&nbsp;EMPLOYEE&nbsp;WHERE&nbsp;EMPNO&nbsp;=&nbsp;?&nbsp;OR&nbsp;EMPNO&nbsp;=&nbsp;?'</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/*&nbsp;Call&nbsp;the&nbsp;function&nbsp;using&nbsp;the&nbsp;correct&nbsp;resource,&nbsp;options&nbsp;array,&nbsp;and&nbsp;type&nbsp;values&nbsp;*/<br /></span><span style="color: #0000BB">$option_result&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">db2_set_option</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$options</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">2</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$result&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">db2_execute</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">,&nbsp;array(</span><span style="color: #DD0000">'000130'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'000140'</span><span style="color: #007700">));<br /><br /></span><span style="color: #FF8000">/*&nbsp;Get&nbsp;Row&nbsp;2&nbsp;before&nbsp;Row&nbsp;1&nbsp;since&nbsp;Scrollable&nbsp;Cursor&nbsp;*/<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">db2_fetch_assoc</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">2</span><span style="color: #007700">));<br />print&nbsp;</span><span style="color: #DD0000">'&lt;br&nbsp;/&gt;&lt;br&nbsp;/&gt;'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">db2_fetch_assoc</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">));<br /><br /></span><span style="color: #0000BB">?&gt;</span>

; Those methods have a 'port' but it is used to collect information
;./function.socket_getpeername.html:
;./function.socket_getsockname.html:

functions0[] = socket_create_listen;
functions0[] = getservbyport

functions1[] = ssh2_connect;
functions1[] = pfsockopen
functions1[] = msession_connect
functions1[] = ftp_connect
functions1[] = ftp_ssl_connect
functions1[] = fsockopen
functions1[] = gupnp_context_new
functions1[] = hwapi_hgcsp
functions1[] = ldap_connect

functions2[] = ssh2_tunnel;
functions2[] = ssh2_bind;
functions2[] = ssh2_connect;
functions2[] = radius_add_server
functions2[] = m_setip
functions2[] = m_setssl

functions3[] = iis_add_server;

functions4[] = maxdb_real_connect;

functions5[] = socket_sendto;
functions5[] = socket_recvfrom;
functions5[] = maxdb_real_connect;
{}functions[] = constant
functions[] = bin2hex
functions[] = sleep
functions[] = usleep
functions[] = time_nanosleep
functions[] = time_sleep_until
functions[] = strptime
functions[] = flush
functions[] = wordwrap
functions[] = htmlspecialchars
functions[] = htmlentities
functions[] = html_entity_decode
functions[] = htmlspecialchars_decode
functions[] = get_html_translation_table
functions[] = sha1
functions[] = sha1_file
functions[] = md5
functions[] = md5_file
functions[] = crc32
functions[] = iptcparse
functions[] = iptcembed
functions[] = getimagesize
functions[] = image_type_to_mime_type
functions[] = image_type_to_extension
functions[] = phpinfo
functions[] = phpversion
functions[] = phpcredits
functions[] = php_logo_guid
functions[] = php_real_logo_guid
functions[] = php_egg_logo_guid
functions[] = zend_logo_guid
functions[] = php_sapi_name
functions[] = php_uname
functions[] = php_ini_scanned_files
functions[] = php_ini_loaded_file
functions[] = strnatcmp
functions[] = strnatcasecmp
functions[] = mb_substr_count
functions[] = strspn
functions[] = strcspn
functions[] = strtok
functions[] = mb_strtoupper
functions[] = mb_strtolower
functions[] = mb_strpos
functions[] = mb_stripos
functions[] = mb_strrpos
functions[] = mb_strripos
functions[] = strrev
functions[] = hebrev
functions[] = hebrevc
functions[] = nl2br
functions[] = basename
functions[] = dirname
functions[] = pathinfo
functions[] = stripslashes
functions[] = stripcslashes
functions[] = mb_strstr
functions[] = mb_stristr
functions[] = mb_strrchr
functions[] = str_shuffle
functions[] = str_word_count
functions[] = str_split
functions[] = strpbrk
functions[] = substr_compare
functions[] = strcoll
functions[] = money_format
functions[] = mb_substr
functions[] = substr_replace
functions[] = quotemeta
functions[] = ucfirst
functions[] = lcfirst
functions[] = ucwords
functions[] = strtr
functions[] = addslashes
functions[] = addcslashes
functions[] = rtrim
functions[] = str_replace
functions[] = str_ireplace
functions[] = str_repeat
functions[] = count_chars
functions[] = chunk_split
functions[] = trim
functions[] = ltrim
functions[] = strip_tags
functions[] = similar_text
functions[] = explode
functions[] = implode
functions[] = join
functions[] = setlocale
functions[] = localeconv
functions[] = nl_langinfo
functions[] = soundex
functions[] = levenshtein
functions[] = chr
functions[] = ord
functions[] = parse_str
functions[] = str_getcsv
functions[] = str_pad
functions[] = chop
functions[] = strchr
functions[] = sprintf
functions[] = printf
functions[] = vprintf
functions[] = vsprintf
functions[] = fprintf
functions[] = vfprintf
functions[] = sscanf
functions[] = fscanf
functions[] = parse_url
functions[] = urlencode
functions[] = urldecode
functions[] = rawurlencode
functions[] = rawurldecode
functions[] = http_build_query
functions[] = readlink
functions[] = linkinfo
functions[] = symlink
functions[] = link
functions[] = unlink
functions[] = exec
functions[] = system
functions[] = escapeshellcmd
functions[] = escapeshellarg
functions[] = passthru
functions[] = shell_exec
functions[] = proc_open
functions[] = proc_close
functions[] = proc_terminate
functions[] = proc_get_status
functions[] = proc_nice
functions[] = rand
functions[] = srand
functions[] = getrandmax
functions[] = mt_rand
functions[] = mt_srand
functions[] = mt_getrandmax
functions[] = getservbyname
functions[] = getservbyport
functions[] = getprotobyname
functions[] = getprotobynumber
functions[] = getmyuid
functions[] = getmygid
functions[] = getmypid
functions[] = getmyinode
functions[] = getlastmod
functions[] = base64_decode
functions[] = base64_encode
functions[] = convert_uuencode
functions[] = convert_uudecode
functions[] = abs
functions[] = ceil
functions[] = floor
functions[] = round
functions[] = sin
functions[] = cos
functions[] = tan
functions[] = asin
functions[] = acos
functions[] = atan
functions[] = atanh
functions[] = atan2
functions[] = sinh
functions[] = cosh
functions[] = tanh
functions[] = asinh
functions[] = acosh
functions[] = expm1
functions[] = log1p
functions[] = pi
functions[] = is_finite
functions[] = is_nan
functions[] = is_infinite
functions[] = pow
functions[] = exp
functions[] = log
functions[] = log10
functions[] = sqrt
functions[] = hypot
functions[] = deg2rad
functions[] = rad2deg
functions[] = bindec
functions[] = hexdec
functions[] = octdec
functions[] = decbin
functions[] = decoct
functions[] = dechex
functions[] = base_convert
functions[] = number_format
functions[] = fmod
functions[] = inet_ntop
functions[] = inet_pton
functions[] = ip2long
functions[] = long2ip
functions[] = getenv
functions[] = putenv
functions[] = getopt
functions[] = sys_getloadavg
functions[] = microtime
functions[] = gettimeofday
functions[] = getrusage
functions[] = uniqid
functions[] = quoted_printable_decode
functions[] = quoted_printable_encode
functions[] = convert_cyr_string
functions[] = get_current_user
functions[] = set_time_limit
functions[] = get_cfg_var
functions[] = magic_quotes_runtime
functions[] = set_magic_quotes_runtime
functions[] = get_magic_quotes_gpc
functions[] = get_magic_quotes_runtime
functions[] = import_request_variables
functions[] = error_log
functions[] = error_get_last
functions[] = call_user_func
functions[] = call_user_func_array
functions[] = call_user_method
functions[] = call_user_method_array
functions[] = forward_static_call
functions[] = forward_static_call_array
functions[] = serialize
functions[] = unserialize
functions[] = var_dump
functions[] = var_export
functions[] = debug_zval_dump
functions[] = print_r
functions[] = memory_get_usage
functions[] = memory_get_peak_usage
functions[] = register_shutdown_function
functions[] = register_tick_function
functions[] = unregister_tick_function
functions[] = highlight_file
functions[] = show_source
functions[] = highlight_string
functions[] = php_strip_whitespace
functions[] = ini_get
functions[] = ini_get_all
functions[] = ini_set
functions[] = ini_alter
functions[] = ini_restore
functions[] = get_include_path
functions[] = set_include_path
functions[] = restore_include_path
functions[] = setcookie
functions[] = setrawcookie
functions[] = header
functions[] = header_remove
functions[] = headers_sent
functions[] = headers_list
functions[] = connection_aborted
functions[] = connection_status
functions[] = ignore_user_abort
functions[] = parse_ini_file
functions[] = parse_ini_string
functions[] = is_uploaded_file
functions[] = move_uploaded_file
functions[] = gethostbyaddr
functions[] = gethostbyname
functions[] = gethostbynamel
functions[] = gethostname
functions[] = dns_check_record
functions[] = checkdnsrr
functions[] = dns_get_mx
functions[] = getmxrr
functions[] = dns_get_record
functions[] = intval
functions[] = floatval
functions[] = doubleval
functions[] = strval
functions[] = gettype
functions[] = settype
functions[] = is_null
functions[] = is_resource
functions[] = is_bool
functions[] = is_long
functions[] = is_float
functions[] = is_int
functions[] = is_integer
functions[] = is_double
functions[] = is_real
functions[] = is_numeric
functions[] = is_string
functions[] = is_array
functions[] = is_object
functions[] = is_scalar
functions[] = is_callable
functions[] = pclose
functions[] = popen
functions[] = readfile
functions[] = rewind
functions[] = rmdir
functions[] = umask
functions[] = fclose
functions[] = feof
functions[] = fgetc
functions[] = fgets
functions[] = fgetss
functions[] = fread
functions[] = fopen
functions[] = fpassthru
functions[] = ftruncate
functions[] = fstat
functions[] = fseek
functions[] = ftell
functions[] = fflush
functions[] = fwrite
functions[] = fputs
functions[] = mkdir
functions[] = rename
functions[] = copy
functions[] = tempnam
functions[] = tmpfile
functions[] = file
functions[] = file_get_contents
functions[] = file_put_contents
functions[] = stream_select
functions[] = stream_context_create
functions[] = stream_context_set_params
functions[] = stream_context_get_params
functions[] = stream_context_set_option
functions[] = stream_context_get_options
functions[] = stream_context_get_default
functions[] = stream_context_set_default
functions[] = stream_filter_prepend
functions[] = stream_filter_append
functions[] = stream_filter_remove
functions[] = stream_socket_client
functions[] = stream_socket_server
functions[] = stream_socket_accept
functions[] = stream_socket_get_name
functions[] = stream_socket_recvfrom
functions[] = stream_socket_sendto
functions[] = stream_socket_enable_crypto
functions[] = stream_socket_shutdown
functions[] = stream_socket_pair
functions[] = stream_copy_to_stream
functions[] = stream_get_contents
functions[] = stream_supports_lock
functions[] = stream_set_chunk_size
functions[] = fgetcsv
functions[] = fputcsv
functions[] = flock
functions[] = get_meta_tags
functions[] = stream_set_read_buffer
functions[] = stream_set_write_buffer
functions[] = set_file_buffer
functions[] = set_socket_blocking
functions[] = stream_set_blocking
functions[] = socket_set_blocking
functions[] = stream_get_meta_data
functions[] = stream_get_line
functions[] = stream_wrapper_register
functions[] = stream_register_wrapper
functions[] = stream_wrapper_unregister
functions[] = stream_wrapper_restore
functions[] = stream_get_wrappers
functions[] = stream_get_transports
functions[] = stream_resolve_include_path
functions[] = stream_is_local
functions[] = get_headers
functions[] = stream_set_timeout
functions[] = socket_set_timeout
functions[] = socket_get_status
functions[] = realpath
functions[] = fnmatch
functions[] = fsockopen
functions[] = pfsockopen
functions[] = pack
functions[] = unpack
functions[] = get_browser
functions[] = crypt
functions[] = opendir
functions[] = closedir
functions[] = chdir
functions[] = getcwd
functions[] = rewinddir
functions[] = readdir
functions[] = dir
functions[] = scandir
functions[] = glob
functions[] = fileatime
functions[] = filectime
functions[] = filegroup
functions[] = fileinode
functions[] = filemtime
functions[] = fileowner
functions[] = fileperms
functions[] = filesize
functions[] = filetype
functions[] = file_exists
functions[] = is_writable
functions[] = is_writeable
functions[] = is_readable
functions[] = is_executable
functions[] = is_file
functions[] = is_dir
functions[] = is_link
functions[] = stat
functions[] = lstat
functions[] = chown
functions[] = chgrp
functions[] = lchown
functions[] = lchgrp
functions[] = chmod
functions[] = touch
functions[] = clearstatcache
functions[] = disk_total_space
functions[] = disk_free_space
functions[] = diskfreespace
functions[] = realpath_cache_size
functions[] = realpath_cache_get
functions[] = mail
functions[] = ezmlm_hash
functions[] = openlog
functions[] = syslog
functions[] = closelog
functions[] = define_syslog_variables
functions[] = lcg_value
functions[] = metaphone
functions[] = ob_start
functions[] = ob_flush
functions[] = ob_clean
functions[] = ob_end_flush
functions[] = ob_end_clean
functions[] = ob_get_flush
functions[] = ob_get_clean
functions[] = ob_get_length
functions[] = ob_get_level
functions[] = ob_get_status
functions[] = ob_get_contents
functions[] = ob_implicit_flush
functions[] = ob_list_handlers
functions[] = ksort
functions[] = krsort
functions[] = natsort
functions[] = natcasesort
functions[] = asort
functions[] = arsort
functions[] = sort
functions[] = rsort
functions[] = usort
functions[] = uasort
functions[] = uksort
functions[] = shuffle
functions[] = array_walk
functions[] = array_walk_recursive
functions[] = count
functions[] = end
functions[] = prev
functions[] = next
functions[] = reset
functions[] = current
functions[] = key
functions[] = min
functions[] = max
functions[] = in_array
functions[] = array_search
functions[] = extract
functions[] = compact
functions[] = array_fill
functions[] = array_fill_keys
functions[] = range
functions[] = array_multisort
functions[] = array_push
functions[] = array_pop
functions[] = array_shift
functions[] = array_unshift
functions[] = array_splice
functions[] = array_slice
functions[] = array_merge
functions[] = array_merge_recursive
functions[] = array_replace
functions[] = array_replace_recursive
functions[] = array_keys
functions[] = array_values
functions[] = array_count_values
functions[] = array_reverse
functions[] = array_reduce
functions[] = array_pad
functions[] = array_flip
functions[] = array_change_key_case
functions[] = array_rand
functions[] = array_unique
functions[] = array_intersect
functions[] = array_intersect_key
functions[] = array_intersect_ukey
functions[] = array_uintersect
functions[] = array_intersect_assoc
functions[] = array_uintersect_assoc
functions[] = array_intersect_uassoc
functions[] = array_uintersect_uassoc
functions[] = array_diff
functions[] = array_diff_key
functions[] = array_diff_ukey
functions[] = array_udiff
functions[] = array_diff_assoc
functions[] = array_udiff_assoc
functions[] = array_diff_uassoc
functions[] = array_udiff_uassoc
functions[] = array_sum
functions[] = array_product
functions[] = array_filter
functions[] = array_map
functions[] = array_chunk
functions[] = array_combine
functions[] = array_key_exists
functions[] = pos
functions[] = sizeof
functions[] = key_exists
functions[] = assert
functions[] = assert_options
functions[] = version_compare
functions[] = ftok
functions[] = str_rot13
functions[] = stream_get_filters
functions[] = stream_filter_register
functions[] = stream_bucket_make_writeable
functions[] = stream_bucket_prepend
functions[] = stream_bucket_append
functions[] = stream_bucket_new
functions[] = output_add_rewrite_var
functions[] = output_reset_rewrite_vars
functions[] = sys_get_temp_dir
functions[] = define
functions[] = defined
functions[] = empty
functions[] = error_reporting
functions[] = unset
functions[] = func_get_args
functions[] = func_get_arg
functions[] = func_num_args
functions[] = function_exists
functions[] = print
functions[] = set_error_handler
functions[] = strpos
functions[] = strtoupper
functions[] = trigger_error
functions[] = debug_backtrace
functions[] = debug_print_backtrace
functions[] = method_exists
functions[] = property_exists
functions[] = strcasecmp
functions[] = strcmp
functions[] = each
functions[] = strtolower
functions[] = strtoupper
functions[] = stripos
functions[] = strrpos
functions[] = strripos
functions[] = is_a
functions[] = restore_error_handler
functions[] = set_exception_handler
functions[] = restore_exception_handler
functions[] = substr_count
functions[] = utf8_decode
functions[] = utf8_encode
functions[] = password_verify
functions[] = password_hash
functions[] = class_object
functions[] = apache_child_terminate
functions[] = apache_get_modules
functions[] = apache_get_version
functions[] = apache_getenv
functions[] = apache_lookup_uri
functions[] = apache_note
functions[] = apache_request_headers
functions[] = apache_reset_timeout
functions[] = apache_response_headers
functions[] = apache_setenv
functions[] = getallheaders
functions[] = virtual
functions[] = eval
functions[] = strstr
functions[] = get_resource_type
functions[] = get_parent_class
functions[] = create_function
functions[] = __lambda_func
functions[] = http_response_code
functions[] = token_get_all
functions[] = token_name
functions[] = array_column
functions[] = preg_replace
functions[] = preg_replace_callback
functions[] = preg_replace_callback_array
functions[] = iterator_to_array
keyword[]='__halt_compiler';
keyword[]='as';
keyword[]='break';
keyword[]='callable';
keyword[]='case';
keyword[]='catch';
keyword[]='class';
keyword[]='clone';
keyword[]='const';
keyword[]='continue';
keyword[]='declare';
keyword[]='default';
keyword[]='die';
keyword[]='do';
keyword[]='echo';
keyword[]='else';
keyword[]='elseif';
keyword[]='empty';
keyword[]='enddeclare';
keyword[]='endfor';
keyword[]='endforeach';
keyword[]='endif';
keyword[]='endswitch';
keyword[]='endwhile';
keyword[]='eval';
keyword[]='extends';
keyword[]='final';
keyword[]='finally';
keyword[]='for';
keyword[]='foreach';
keyword[]='function';
keyword[]='global';
keyword[]='goto';
keyword[]='if';
keyword[]='implements';
keyword[]='include';
keyword[]='include_once';
keyword[]='instanceof';
keyword[]='insteadof';
keyword[]='interface';
keyword[]='isset';
keyword[]='list';
keyword[]='new';
keyword[]='or';
keyword[]='print';
keyword[]='private';
keyword[]='protected';
keyword[]='public';
keyword[]='require';
keyword[]='require_once';
keyword[]='return';
keyword[]='static';
keyword[]='switch';
keyword[]='throw';
keyword[]='trait';
keyword[]='try';
keyword[]='unset';
keyword[]='use';
keyword[]='var';
keyword[]='while';
keyword[]='xor';
keyword[]='yield';
keyword[]='true';
keyword[]='false';
keyword[]='null';
keyword[]='exit';
keyword[]='parent';
keyword[]='int';
keyword[]='float';
keyword[]='bool';
keyword[]='string';
keyword[]='resource';
keyword[]='object';
keyword[]='mixed';
keyword[]='numeric';
{"\\iteratoraggregate":[{"name":"getiterator","count":0}],"\\iterator":[{"name":"current","count":0},{"name":"next","count":0},{"name":"key","count":0},{"name":"valid","count":0},{"name":"rewind","count":0}],"\\arrayaccess":[{"name":"offsetexists","count":1},{"name":"offsetget","count":1},{"name":"offsetset","count":2},{"name":"offsetunset","count":1}],"\\serializable":[{"name":"serialize","count":0},{"name":"unserialize","count":1}],"\\countable":[{"name":"count","count":0}],"\\throwable":[{"name":"getmessage","count":0},{"name":"getcode","count":0},{"name":"getfile","count":0},{"name":"getline","count":0},{"name":"gettrace","count":0},{"name":"getprevious","count":0},{"name":"gettraceasstring","count":0},{"name":"__tostring","count":0}],"\\datetimeinterface":[{"name":"format","count":1},{"name":"gettimezone","count":0},{"name":"getoffset","count":0},{"name":"gettimestamp","count":0},{"name":"diff","count":2},{"name":"__wakeup","count":0}],"\\recursiveiterator":[{"name":"haschildren","count":0},{"name":"getchildren","count":0},{"name":"current","count":0},{"name":"next","count":0},{"name":"key","count":0},{"name":"valid","count":0},{"name":"rewind","count":0}],"\\outeriterator":[{"name":"getinneriterator","count":0},{"name":"current","count":0},{"name":"next","count":0},{"name":"key","count":0},{"name":"valid","count":0},{"name":"rewind","count":0}],"\\seekableiterator":[{"name":"seek","count":1},{"name":"current","count":0},{"name":"next","count":0},{"name":"key","count":0},{"name":"valid","count":0},{"name":"rewind","count":0}],"\\splobserver":[{"name":"update","count":1}],"\\splsubject":[{"name":"attach","count":1},{"name":"detach","count":1},{"name":"notify","count":0}],"\\jsonserializable":[{"name":"jsonserialize","count":0}],"\\sessionhandlerinterface":[{"name":"open","count":2},{"name":"close","count":0},{"name":"read","count":1},{"name":"write","count":2},{"name":"destroy","count":1},{"name":"gc","count":1}],"\\sessionidinterface":[{"name":"create_sid","count":0}],"\\sessionupdatetimestamphandlerinterface":[{"name":"validateid","count":1},{"name":"updatetimestamp","count":2}],"\\reflector":[{"name":"export","count":0},{"name":"__tostring","count":0}],"\\couchbase\\viewqueryencodable":[{"name":"encode","count":0}]}functions[] = uopz_add_function
functions[] = uopz_allow_exit
functions[] = uopz_compose
functions[] = uopz_del_function
functions[] = uopz_extend
functions[] = uopz_flags
functions[] = uopz_get_exit_status
functions[] = uopz_get_hook
functions[] = uopz_get_mock
functions[] = uopz_get_property
functions[] = uopz_get_return
functions[] = uopz_get_static
functions[] = uopz_implement
functions[] = uopz_redefine
functions[] = uopz_set_hook
functions[] = uopz_set_mock
functions[] = uopz_set_property
functions[] = uopz_set_return
functions[] = uopz_set_static
functions[] = uopz_undefine
functions[] = uopz_unset_hook
functions[] = uopz_unset_mock
functions[] = uopz_unset_return
functions[] = uopz_backup
functions[] = uopz_copy
functions[] = uopz_delete
functions[] = uopz_function
functions[] = uopz_overload
functions[] = uopz_rename
functions[] = uopz_restore

constants[] = "ZEND_ACC_PUBLIC";
constants[] = "ZEND_ACC_PRIVATE";
constants[] = "ZEND_ACC_PROTECTED";
constants[] = "ZEND_ACC_PPP_MASK";
constants[] = "ZEND_ACC_STATIC";
constants[] = "ZEND_ACC_FINAL";
constants[] = "ZEND_ACC_ABSTRACT";

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

linux[] = '/dev/urandom';
linux[] = '/dev/random';

linux[] = '/proc/meminfo';
linux[] = '/proc/stat';

linux[] = '/etc/hosts';
linux[] = '/etc/group';
linux[] = '/etc/passwd';

windows[] = 'C:\WINDOWS';

constants[] = 

functions[] = shmop_open
functions[] = shmop_read
functions[] = shmop_close
functions[] = shmop_size
functions[] = shmop_write
functions[] = shmop_delete

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = dom_import_simplexml

constants[] = 'XML_ELEMENT_NODE';
constants[] = 'XML_ATTRIBUTE_NODE';
constants[] = 'XML_TEXT_NODE';
constants[] = 'XML_CDATA_SECTION_NODE';
constants[] = 'XML_ENTITY_REF_NODE';
constants[] = 'XML_ENTITY_NODE';
constants[] = 'XML_PI_NODE';
constants[] = 'XML_COMMENT_NODE';
constants[] = 'XML_DOCUMENT_NODE';
constants[] = 'XML_DOCUMENT_TYPE_NODE';
constants[] = 'XML_DOCUMENT_FRAG_NODE';
constants[] = 'XML_NOTATION_NODE';
constants[] = 'XML_HTML_DOCUMENT_NODE';
constants[] = 'XML_DTD_NODE';
constants[] = 'XML_ELEMENT_DECL_NODE';
constants[] = 'XML_ATTRIBUTE_DECL_NODE';
constants[] = 'XML_ENTITY_DECL_NODE';
constants[] = 'XML_NAMESPACE_DECL_NODE';
constants[] = 'XML_ATTRIBUTE_CDATA';
constants[] = 'XML_ATTRIBUTE_ID';
constants[] = 'XML_ATTRIBUTE_IDREF';
constants[] = 'XML_ATTRIBUTE_IDREFS';
constants[] = 'XML_ATTRIBUTE_ENTITY';
constants[] = 'XML_ATTRIBUTE_NMTOKEN';
constants[] = 'XML_ATTRIBUTE_NMTOKENS';
constants[] = 'XML_ATTRIBUTE_ENUMERATION';
constants[] = 'XML_ATTRIBUTE_NOTATION';
constants[] = 'DOM_PHP_ERR';
constants[] = 'DOM_INDEX_SIZE_ERR';
constants[] = 'DOMSTRING_SIZE_ERR';
constants[] = 'DOM_HIERARCHY_REQUEST_ERR';
constants[] = 'DOM_WRONG_DOCUMENT_ERR';
constants[] = 'DOM_INVALID_CHARACTER_ERR';
constants[] = 'DOM_NO_DATA_ALLOWED_ERR';
constants[] = 'DOM_NO_MODIFICATION_ALLOWED_ERR';
constants[] = 'DOM_NOT_FOUND_ERR';
constants[] = 'DOM_NOT_SUPPORTED_ERR';
constants[] = 'DOM_INUSE_ATTRIBUTE_ERR';
constants[] = 'DOM_INVALID_STATE_ERR';
constants[] = 'DOM_SYNTAX_ERR';
constants[] = 'DOM_INVALID_MODIFICATION_ERR';
constants[] = 'DOM_NAMESPACE_ERR';
constants[] = 'DOM_INVALID_ACCESS_ERR';
constants[] = 'DOM_VALIDATION_ERR';

classes[] = domattr
classes[] = domcdatasection
classes[] = domcharacterdata
classes[] = domcomment
classes[] = domdocument
classes[] = domdocumentfragment
classes[] = domdocumenttype
classes[] = domelement
classes[] = domentity
classes[] = domentityreference
classes[] = domexception
classes[] = domimplementation
classes[] = domnamednodemap
classes[] = domnode
classes[] = domnodelist
classes[] = domnotation
classes[] = domprocessinginstruction
classes[] = domtext
classes[] = domxpath

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = 'sqlsrv_begin_transaction';
functions[] = 'sqlsrv_cancel';
functions[] = 'sqlsrv_client_info';
functions[] = 'sqlsrv_close';
functions[] = 'sqlsrv_commit';
functions[] = 'sqlsrv_configure';
functions[] = 'sqlsrv_connect';
functions[] = 'sqlsrv_errors';
functions[] = 'sqlsrv_execute';
functions[] = 'sqlsrv_fetch_array';
functions[] = 'sqlsrv_fetch_object';
functions[] = 'sqlsrv_fetch';
functions[] = 'sqlsrv_field_metadata';
functions[] = 'sqlsrv_free_stmt';
functions[] = 'sqlsrv_get_config';
functions[] = 'sqlsrv_get_field';
functions[] = 'sqlsrv_has_rows';
functions[] = 'sqlsrv_next_result';
functions[] = 'sqlsrv_num_fields';
functions[] = 'sqlsrv_num_rows';
functions[] = 'sqlsrv_prepare';
functions[] = 'sqlsrv_query';
functions[] = 'sqlsrv_rollback';
functions[] = 'sqlsrv_rows_affected';
functions[] = 'sqlsrv_send_stream_data';
functions[] = 'sqlsrv_server_info';

constants[] = 'SQLSRV_CURSOR_BUFFERED';
constants[] = 'SQLSRV_CURSOR_DYNAMIC';
constants[] = 'SQLSRV_CURSOR_FORWARD';
constants[] = 'SQLSRV_CURSOR_KEYSET';
constants[] = 'SQLSRV_CURSOR_STATIC';
constants[] = 'SQLSRV_ENC_BINARY';
constants[] = 'SQLSRV_ENC_CHAR';
constants[] = 'SQLSRV_ERR_ALL';
constants[] = 'SQLSRV_ERR_ERRORS';
constants[] = 'SQLSRV_ERR_WARNINGS';
constants[] = 'SQLSRV_FETCH_ASSOC';
constants[] = 'SQLSRV_FETCH_BOTH';
constants[] = 'SQLSRV_FETCH_NUMERIC';
constants[] = 'SQLSRV_LOG_SEVERITY_ALL';
constants[] = 'SQLSRV_LOG_SEVERITY_ERROR';
constants[] = 'SQLSRV_LOG_SEVERITY_NOTICE';
constants[] = 'SQLSRV_LOG_SEVERITY_WARNING';
constants[] = 'SQLSRV_LOG_SYSTEM_ALL';
constants[] = 'SQLSRV_LOG_SYSTEM_CONN';
constants[] = 'SQLSRV_LOG_SYSTEM_INIT';
constants[] = 'SQLSRV_LOG_SYSTEM_OFF';
constants[] = 'SQLSRV_LOG_SYSTEM_STMT';
constants[] = 'SQLSRV_LOG_SYSTEM_UTIL';
constants[] = 'SQLSRV_NULLABLE_NO';
constants[] = 'SQLSRV_NULLABLE_UNKNOWN';
constants[] = 'SQLSRV_NULLABLE_YES';
constants[] = 'SQLSRV_PARAM_IN';
constants[] = 'SQLSRV_PARAM_INOUT';
constants[] = 'SQLSRV_PARAM_OUT';
constants[] = 'SQLSRV_PHPTYPE_DATETIME';
constants[] = 'SQLSRV_PHPTYPE_FLOAT';
constants[] = 'SQLSRV_PHPTYPE_INT';
constants[] = 'SQLSRV_PHPTYPE_STREAM';
constants[] = 'SQLSRV_PHPTYPE_STRING';
constants[] = 'SQLSRV_SCROLL_ABSOLUTE';
constants[] = 'SQLSRV_SCROLL_FIRST';
constants[] = 'SQLSRV_SCROLL_LAST';
constants[] = 'SQLSRV_SCROLL_NEXT';
constants[] = 'SQLSRV_SCROLL_PRIOR';
constants[] = 'SQLSRV_SCROLL_RELATIVE';
constants[] = 'SQLSRV_SQLTYPE_BIGINT';
constants[] = 'SQLSRV_SQLTYPE_BINARY';
constants[] = 'SQLSRV_SQLTYPE_BIT';
constants[] = 'SQLSRV_SQLTYPE_CHAR';
constants[] = 'SQLSRV_SQLTYPE_DATE';
constants[] = 'SQLSRV_SQLTYPE_DATETIME';
constants[] = 'SQLSRV_SQLTYPE_DATETIME2';
constants[] = 'SQLSRV_SQLTYPE_DATETIMEOFFSET';
constants[] = 'SQLSRV_SQLTYPE_DECIMAL';
constants[] = 'SQLSRV_SQLTYPE_FLOAT';
constants[] = 'SQLSRV_SQLTYPE_IMAGE';
constants[] = 'SQLSRV_SQLTYPE_INT';
constants[] = 'SQLSRV_SQLTYPE_MONEY';
constants[] = 'SQLSRV_SQLTYPE_NCHAR';
constants[] = 'SQLSRV_SQLTYPE_NTEXT';
constants[] = 'SQLSRV_SQLTYPE_NUMERIC';
constants[] = 'SQLSRV_SQLTYPE_NVARCHAR';
constants[] = 'SQLSRV_SQLTYPE_NVARCHAR('max')';
constants[] = 'SQLSRV_SQLTYPE_REAL';
constants[] = 'SQLSRV_SQLTYPE_SMALLDATETIME';
constants[] = 'SQLSRV_SQLTYPE_SMALLINT';
constants[] = 'SQLSRV_SQLTYPE_SMALLMONEY';
constants[] = 'SQLSRV_SQLTYPE_TEXT';
constants[] = 'SQLSRV_SQLTYPE_TIME';
constants[] = 'SQLSRV_SQLTYPE_TIMESTAMP';
constants[] = 'SQLSRV_SQLTYPE_TINYINT';
constants[] = 'SQLSRV_SQLTYPE_UDT';
constants[] = 'SQLSRV_SQLTYPE_UNIQUEIDENTIFIER';
constants[] = 'SQLSRV_SQLTYPE_VARBINARY';
constants[] = 'SQLSRV_SQLTYPE_VARBINARY('max')';
constants[] = 'SQLSRV_SQLTYPE_VARCHAR';
constants[] = 'SQLSRV_SQLTYPE_VARCHAR('max')';
constants[] = 'SQLSRV_SQLTYPE_XML';
constants[] = 'SQLSRV_TXN_READ_COMMITTED';
constants[] = 'SQLSRV_TXN_READ_SERIALIZABLE';
constants[] = 'SQLSRV_TXN_READ_UNCOMMITTED';
constants[] = 'SQLSRV_TXN_REPEATABLE_READ';
constants[] = 'SQLSRV_TXN_SNAPSHOT';

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = '\pcntl_wait';
functions[] = '\ftp_size';
functions[] = '\pg_field_num';
functions[] = '\pg_set_client_encoding';
functions[] = '\ldap_compare';
functions[] = '\pcntl_waitpid';
functions[] = '\odbc_num_fields';
functions[] = '\openssl_pkcs7_verify';
functions[] = '\openssl_x509_checkpurpose';
functions[] = '\event_base_loop';
functions[] = '\posix_setsid';
functions[] = '\openssl_verify';
functions[] = '\odbc_num_rows';
constants[] = 

functions[] = 

classes[] = ZMQ
classes[] = ZMQSocket
classes[] = ZMQPoll
classes[] = ZMQDevice

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 
interfaces[] = Traversable
interfaces[] = IteratorAggregate
interfaces[] = Iterator
interfaces[] = ArrayAccess
interfaces[] = Serializable
interfaces[] = Throwable
interfaces[] = DateTimeInterface
interfaces[] = RecursiveIterator
interfaces[] = OuterIterator
interfaces[] = Countable
interfaces[] = SeekableIterator
interfaces[] = SplObserver
interfaces[] = SplSubject
interfaces[] = JsonSerializable
interfaces[] = SessionHandlerInterface
interfaces[] = SessionIdInterface
interfaces[] = SessionUpdateTimestampHandlerInterface
interfaces[] = Reflectorfunctions[] = 

constants[] = 'FFMPEG_PHP_VERSION_STRING';
constants[] = 'FFMPEG_PHP_BUILD_DATE_STRING';
constants[] = 'LIBAVCODEC_VERSION_NUMBER';
constants[] = 'LIBAVCODEC_BUILD_NUMBER';

classes[] = ffmpeg_frame
classes[] = ffmpeg_movie

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

{
"0": ["\\fopen",
"\\file_get_contents",
"\\file_put_contents",
"\\getimagesize",
"\\gzopen",
"\\bzopen",
"\\zip_open",
"\\raropen",
"\\xattr_get",
"\\xattr_list",
"\\xattr_remove",
"\\xattr_set",
"\\xattr_supported",
"\\readfile"
],
"1": ["\\imagegif",
"\\imagepng",
"\\imagebmp",
"\\imagejpeg",
"\\imagewbmp",
"\\finfo_file"
]

}constants[] = 

functions[] = 

classes[] = Redis
classes[] = RedisException

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = cal_days_in_month
functions[] = cal_from_jd
functions[] = cal_info
functions[] = cal_to_jd
functions[] = easter_date
functions[] = easter_days
functions[] = FrenchToJD
functions[] = GregorianToJD
functions[] = JDDayOfWeek
functions[] = JDMonthName
functions[] = JDToFrench
functions[] = JDToGregorian
functions[] = jdtojewish
functions[] = JDToJulian
functions[] = jdtounix
functions[] = JewishToJD
functions[] = JulianToJD
functions[] = unixtojd

classes[] = 

constants[] = 'CAL_GREGORIAN';
constants[] = 'CAL_JULIAN';
constants[] = 'CAL_JEWISH';
constants[] = 'CAL_FRENCH';
constants[] = 'CAL_NUM_CALS';
constants[] = 'CAL_DOW_DAYNO';
constants[] = 'CAL_DOW_SHORT';
constants[] = 'CAL_DOW_LONG';
constants[] = 'CAL_MONTH_GREGORIAN_SHORT';
constants[] = 'CAL_MONTH_GREGORIAN_LONG';
constants[] = 'CAL_MONTH_JULIAN_SHORT';
constants[] = 'CAL_MONTH_JULIAN_LONG';
constants[] = 'CAL_MONTH_JEWISH';
constants[] = 'CAL_MONTH_FRENCH';
constants[] = 'CAL_EASTER_DEFAULT';
constants[] = 'CAL_EASTER_ROMAN';
constants[] = 'CAL_EASTER_ALWAYS_GREGORIAN';
constants[] = 'CAL_EASTER_ALWAYS_JULIAN';
constants[] = 'CAL_JEWISH_ADD_ALAFIM_GERESH';
constants[] = 'CAL_JEWISH_ADD_ALAFIM';
constants[] = 'CAL_JEWISH_ADD_GERESHAYIM';

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = inotify_add_watch
functions[] = inotify_init
functions[] = inotify_queue_len
functions[] = inotify_read
functions[] = inotify_rm_watch

constants[] = 'IN_ACCESS';
constants[] = 'IN_MODIFY';
constants[] = 'IN_ATTRIB';
constants[] = 'IN_CLOSE_WRITE';
constants[] = 'IN_CLOSE_NOWRITE';
constants[] = 'IN_OPEN';
constants[] = 'IN_MOVED_TO';
constants[] = 'IN_MOVED_FROM';
constants[] = 'IN_CREATE';
constants[] = 'IN_DELETE';
constants[] = 'IN_DELETE_SELF';
constants[] = 'IN_MOVE_SELF';
constants[] = 'IN_CLOSE';
constants[] = 'IN_MOVE';
constants[] = 'IN_ALL_EVENTS';
constants[] = 'IN_UNMOUNT';
constants[] = 'IN_Q_OVERFLOW';
constants[] = 'IN_IGNORED';
constants[] = 'IN_ISDIR';
constants[] = 'IN_ONLYDIR';
constants[] = 'IN_DONT_FOLLOW';
constants[] = 'IN_MASK_ADD';
constants[] = 'IN_ONESHOT';

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = filter_has_var
functions[] = filter_id
functions[] = filter_input_array
functions[] = filter_input
functions[] = filter_list
functions[] = filter_var_array
functions[] = filter_var

classes[] = 

constants[] = 'FILTER_FLAG_NONE';
constants[] = 'FILTER_REQUIRE_SCALAR';
constants[] = 'FILTER_REQUIRE_ARRAY';
constants[] = 'FILTER_FORCE_ARRAY';
constants[] = 'FILTER_NULL_ON_FAILURE';
constants[] = 'FILTER_VALIDATE_INT';
constants[] = 'FILTER_VALIDATE_BOOLEAN';
constants[] = 'FILTER_VALIDATE_FLOAT';
constants[] = 'FILTER_VALIDATE_REGEXP';
constants[] = 'FILTER_VALIDATE_URL';
constants[] = 'FILTER_VALIDATE_EMAIL';
constants[] = 'FILTER_VALIDATE_IP';
constants[] = 'FILTER_DEFAULT';
constants[] = 'FILTER_UNSAFE_RAW';
constants[] = 'FILTER_SANITIZE_STRING';
constants[] = 'FILTER_SANITIZE_STRIPPED';
constants[] = 'FILTER_SANITIZE_ENCODED';
constants[] = 'FILTER_SANITIZE_SPECIAL_CHARS';
constants[] = 'FILTER_SANITIZE_FULL_SPECIAL_CHARS';
constants[] = 'FILTER_SANITIZE_EMAIL';
constants[] = 'FILTER_SANITIZE_URL';
constants[] = 'FILTER_SANITIZE_NUMBER_INT';
constants[] = 'FILTER_SANITIZE_NUMBER_FLOAT';
constants[] = 'FILTER_SANITIZE_MAGIC_QUOTES';
constants[] = 'FILTER_CALLBACK';
constants[] = 'FILTER_FLAG_ALLOW_OCTAL';
constants[] = 'FILTER_FLAG_ALLOW_HEX';
constants[] = 'FILTER_FLAG_STRIP_LOW';
constants[] = 'FILTER_FLAG_STRIP_HIGH';
constants[] = 'FILTER_FLAG_STRIP_BACKTICK';
constants[] = 'FILTER_FLAG_ENCODE_LOW';
constants[] = 'FILTER_FLAG_ENCODE_HIGH';
constants[] = 'FILTER_FLAG_ENCODE_AMP';
constants[] = 'FILTER_FLAG_NO_ENCODE_QUOTES';
constants[] = 'FILTER_FLAG_EMPTY_STRING_NULL';
constants[] = 'FILTER_FLAG_ALLOW_FRACTION';
constants[] = 'FILTER_FLAG_ALLOW_THOUSAND';
constants[] = 'FILTER_FLAG_ALLOW_SCIENTIFIC';
constants[] = 'FILTER_FLAG_SCHEME_REQUIRED';
constants[] = 'FILTER_FLAG_HOST_REQUIRED';
constants[] = 'FILTER_FLAG_PATH_REQUIRED';
constants[] = 'FILTER_FLAG_QUERY_REQUIRED';
constants[] = 'FILTER_FLAG_IPV4';
constants[] = 'FILTER_FLAG_IPV6';
constants[] = 'FILTER_FLAG_NO_RES_RANGE';
constants[] = 'FILTER_FLAG_NO_PRIV_RANGE';

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[]='runkit_class_adopt';
functions[]='runkit_class_emancipate';
functions[]='runkit_constant_add';
functions[]='runkit_constant_redefine';
functions[]='runkit_constant_remove';
functions[]='runkit_function_add';
functions[]='runkit_function_copy';
functions[]='runkit_function_redefine';
functions[]='runkit_function_remove';
functions[]='runkit_function_rename';
functions[]='runkit_import';
functions[]='runkit_lint_file';
functions[]='runkit_lint';
functions[]='runkit_method_add';
functions[]='runkit_method_copy';
functions[]='runkit_method_redefine';
functions[]='runkit_method_remove';
functions[]='runkit_method_rename';
functions[]='runkit_return_value_used';
functions[]='runkit_sandbox_output_handler';
functions[]='runkit_superglobals';

constants[]='RUNKIT_IMPORT_FUNCTIONS';
constants[]='RUNKIT_IMPORT_CLASS_METHODS';
constants[]='RUNKIT_IMPORT_CLASS_CONSTS';
constants[]='RUNKIT_IMPORT_CLASS_PROPS';
constants[]='RUNKIT_IMPORT_CLASSES';
constants[]='RUNKIT_IMPORT_OVERRIDE ';
constants[]='RUNKIT_ACC_PUBLIC';
constants[]='RUNKIT_ACC_PROTECTED';
constants[]='RUNKIT_ACC_PRIVATE';
constants[]='RUNKIT_VERSION';

classes[] = Runkit_Sandbox
classes[] = Runkit_Sandbox_Parent

interfaces[] =

traits[] = 

namespaces[] = 

directives[] = 

functions[] = iconv_get_encoding
functions[] = iconv_mime_decode_headers
functions[] = iconv_mime_decode
functions[] = iconv_mime_encode
functions[] = iconv_set_encoding
functions[] = iconv_strlen
functions[] = iconv_strpos
functions[] = iconv_strrpos
functions[] = iconv_substr
functions[] = iconv
functions[] = ob_iconv_handler

classes[] = 

constants[] = 'ICONV_IMPL';
constants[] = 'ICONV_VERSION';
constants[] = 'ICONV_MIME_DECODE_STRICT';
constants[] = 'ICONV_MIME_DECODE_CONTINUE_ON_ERROR';

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = ctype_alnum
functions[] = ctype_alpha
functions[] = ctype_cntrl
functions[] = ctype_digit
functions[] = ctype_graph
functions[] = ctype_lower
functions[] = ctype_print
functions[] = ctype_punct
functions[] = ctype_space
functions[] = ctype_upper
functions[] = ctype_xdigit

constants[] = 

classes[] = 

interfaces[] = 

traits[] = 
namespaces[] = 

directives[] = 

functions[] = "cairo_append_path";
functions[] = "cairo_arc_negative";
functions[] = "cairo_arc";
functions[] = "cairo_available_fonts";
functions[] = "cairo_available_surfaces";
functions[] = "cairo_clip_extents";
functions[] = "cairo_clip_preserve";
functions[] = "cairo_clip_rectangle_list";
functions[] = "cairo_clip";
functions[] = "cairo_close_path";
functions[] = "cairo_copy_page";
functions[] = "cairo_copy_path_flat";
functions[] = "cairo_copy_path";
functions[] = "cairo_create";
functions[] = "cairo_curve_to";
functions[] = "cairo_device_to_user_distance";
functions[] = "cairo_device_to_user";
functions[] = "cairo_fill_extents";
functions[] = "cairo_fill_preserve";
functions[] = "cairo_fill";
functions[] = "cairo_font_extents";
functions[] = "cairo_font_face_get_type";
functions[] = "cairo_font_face_status";
functions[] = "cairo_font_options_create";
functions[] = "cairo_font_options_equal";
functions[] = "cairo_font_options_get_antialias";
functions[] = "cairo_font_options_get_hint_metrics";
functions[] = "cairo_font_options_get_hint_style";
functions[] = "cairo_font_options_get_subpixel_order";
functions[] = "cairo_font_options_hash";
functions[] = "cairo_font_options_merge";
functions[] = "cairo_font_options_set_antialias";
functions[] = "cairo_font_options_set_hint_metrics";
functions[] = "cairo_font_options_set_hint_style";
functions[] = "cairo_font_options_set_subpixel_order";
functions[] = "cairo_font_options_status";
functions[] = "cairo_get_antialias";
functions[] = "cairo_get_current_point";
functions[] = "cairo_get_dash_count";
functions[] = "cairo_get_dash";
functions[] = "cairo_get_fill_rule";
functions[] = "cairo_get_font_face";
functions[] = "cairo_get_font_matrix";
functions[] = "cairo_get_font_options";
functions[] = "cairo_get_group_target";
functions[] = "cairo_get_line_cap";
functions[] = "cairo_get_line_join";
functions[] = "cairo_get_line_width";
functions[] = "cairo_get_matrix";
functions[] = "cairo_get_miter_limit";
functions[] = "cairo_get_operator";
functions[] = "cairo_get_scaled_font";
functions[] = "cairo_get_source";
functions[] = "cairo_get_target";
functions[] = "cairo_get_tolerance";
functions[] = "cairo_glyph_path";
functions[] = "cairo_has_current_point";
functions[] = "cairo_identity_matrix";
functions[] = "cairo_image_surface_create_for_data";
functions[] = "cairo_image_surface_create_from_png";
functions[] = "cairo_image_surface_create";
functions[] = "cairo_image_surface_get_data";
functions[] = "cairo_image_surface_get_format";
functions[] = "cairo_image_surface_get_height";
functions[] = "cairo_image_surface_get_stride";
functions[] = "cairo_image_surface_get_width";
functions[] = "cairo_in_clip";
functions[] = "cairo_in_fill";
functions[] = "cairo_in_stroke";
functions[] = "cairo_line_to";
functions[] = "cairo_mask_surface";
functions[] = "cairo_mask";
functions[] = "cairo_matrix_init_identity";
functions[] = "cairo_matrix_init_rotate";
functions[] = "cairo_matrix_init_scale";
functions[] = "cairo_matrix_init_translate";
functions[] = "cairo_matrix_init";
functions[] = "cairo_matrix_invert";
functions[] = "cairo_matrix_multiply";
functions[] = "cairo_matrix_rotate";
functions[] = "cairo_matrix_scale";
functions[] = "cairo_matrix_transform_distance";
functions[] = "cairo_matrix_transform_point";
functions[] = "cairo_matrix_translate";
functions[] = "cairo_mesh_pattern_begin_patch";
functions[] = "cairo_mesh_pattern_curve_to";
functions[] = "cairo_mesh_pattern_end_patch";
functions[] = "cairo_mesh_pattern_get_control_point";
functions[] = "cairo_mesh_pattern_get_corner_color_rgba";
functions[] = "cairo_mesh_pattern_get_patch_count";
functions[] = "cairo_mesh_pattern_get_path";
functions[] = "cairo_mesh_pattern_line_to";
functions[] = "cairo_mesh_pattern_move_to";
functions[] = "cairo_mesh_pattern_set_control_point";
functions[] = "cairo_mesh_pattern_set_corner_color_rgb";
functions[] = "cairo_mesh_pattern_set_corner_color_rgba";
functions[] = "cairo_move_to";
functions[] = "cairo_new_path";
functions[] = "cairo_new_sub_path";
functions[] = "cairo_paint_with_alpha";
functions[] = "cairo_paint";
functions[] = "cairo_path_extents";
functions[] = "cairo_pattern_add_color_stop_rgb";
functions[] = "cairo_pattern_add_color_stop_rgba";
functions[] = "cairo_pattern_create_for_surface";
functions[] = "cairo_pattern_create_linear";
functions[] = "cairo_pattern_create_mesh";
functions[] = "cairo_pattern_create_radial";
functions[] = "cairo_pattern_create_rgb";
functions[] = "cairo_pattern_create_rgba";
functions[] = "cairo_pattern_get_color_stop_count";
functions[] = "cairo_pattern_get_color_stop_rgba";
functions[] = "cairo_pattern_get_extend";
functions[] = "cairo_pattern_get_filter";
functions[] = "cairo_pattern_get_linear_points";
functions[] = "cairo_pattern_get_matrix";
functions[] = "cairo_pattern_get_radial_circles";
functions[] = "cairo_pattern_get_rgba";
functions[] = "cairo_pattern_get_surface";
functions[] = "cairo_pattern_get_type";
functions[] = "cairo_pattern_set_extend";
functions[] = "cairo_pattern_set_filter";
functions[] = "cairo_pattern_set_matrix";
functions[] = "cairo_pattern_status";
functions[] = "cairo_pop_group_to_source";
functions[] = "cairo_pop_group";
functions[] = "cairo_push_group_with_content";
functions[] = "cairo_push_group";
functions[] = "cairo_rectangle";
functions[] = "cairo_rel_curve_to";
functions[] = "cairo_rel_line_to";
functions[] = "cairo_rel_move_to";
functions[] = "cairo_reset_clip";
functions[] = "cairo_restore";
functions[] = "cairo_rotate";
functions[] = "cairo_save";
functions[] = "cairo_scale";
functions[] = "cairo_scaled_font_create";
functions[] = "cairo_scaled_font_extents";
functions[] = "cairo_scaled_font_get_ctm";
functions[] = "cairo_scaled_font_get_font_face";
functions[] = "cairo_scaled_font_get_font_matrix";
functions[] = "cairo_scaled_font_get_font_options";
functions[] = "cairo_scaled_font_get_scale_matrix";
functions[] = "cairo_scaled_font_get_type";
functions[] = "cairo_scaled_font_glyph_extents";
functions[] = "cairo_scaled_font_status";
functions[] = "cairo_scaled_font_text_extents";
functions[] = "cairo_select_font_face";
functions[] = "cairo_set_antialias";
functions[] = "cairo_set_dash";
functions[] = "cairo_set_fill_rule";
functions[] = "cairo_set_font_face";
functions[] = "cairo_set_font_matrix";
functions[] = "cairo_set_font_options";
functions[] = "cairo_set_font_size";
functions[] = "cairo_set_line_cap";
functions[] = "cairo_set_line_join";
functions[] = "cairo_set_line_width";
functions[] = "cairo_set_matrix";
functions[] = "cairo_set_miter_limit";
functions[] = "cairo_set_operator";
functions[] = "cairo_set_scaled_font";
functions[] = "cairo_set_source_rgb";
functions[] = "cairo_set_source_rgba";
functions[] = "cairo_set_source_surface";
functions[] = "cairo_set_source";
functions[] = "cairo_set_tolerance";
functions[] = "cairo_show_page";
functions[] = "cairo_show_text";
functions[] = "cairo_status_to_string";
functions[] = "cairo_status";
functions[] = "cairo_stroke_extents";
functions[] = "cairo_stroke_preserve";
functions[] = "cairo_stroke";
functions[] = "cairo_surface_copy_page";
functions[] = "cairo_surface_create_for_rectangle";
functions[] = "cairo_surface_create_similar";
functions[] = "cairo_surface_finish";
functions[] = "cairo_surface_flush";
functions[] = "cairo_surface_get_content";
functions[] = "cairo_surface_get_device_offset";
functions[] = "cairo_surface_get_fallback_resolution";
functions[] = "cairo_surface_get_font_options";
functions[] = "cairo_surface_get_type";
functions[] = "cairo_surface_has_show_text_glyphs";
functions[] = "cairo_surface_mark_dirty_rectangle";
functions[] = "cairo_surface_mark_dirty";
functions[] = "cairo_surface_set_device_offset";
functions[] = "cairo_surface_set_fallback_resolution";
functions[] = "cairo_surface_show_page";
functions[] = "cairo_surface_status";
functions[] = "cairo_surface_write_to_png";
functions[] = "cairo_text_extents";
functions[] = "cairo_text_path";
functions[] = "cairo_toy_font_face_create";
functions[] = "cairo_toy_font_face_get_family";
functions[] = "cairo_toy_font_face_get_slant";
functions[] = "cairo_toy_font_face_get_weight";
functions[] = "cairo_transform";
functions[] = "cairo_translate";
functions[] = "cairo_user_to_device_distance";
functions[] = "cairo_user_to_device";
functions[] = "cairo_version_string";
functions[] = "cairo_version";

classes[] = 'Cairo';
classes[] = 'CairoContext';
classes[] = 'CairoException';
classes[] = 'CairoStatus';
classes[] = 'CairoSurface';
classes[] = 'CairoSvgSurface';
classes[] = 'CairoImageSurface';
classes[] = 'CairoPdfSurface';
classes[] = 'CairoPsSurface';
classes[] = 'CairoSurfaceType';
classes[] = 'CairoFontFace';
classes[] = 'CairoFontOptions';
classes[] = 'CairoFontSlant';
classes[] = 'CairoFontType';
classes[] = 'CairoFontWeight';
classes[] = 'CairoScaledFont';
classes[] = 'CairoToyFontFace';
classes[] = 'CairoPatternType';
classes[] = 'CairoPattern';
classes[] = 'CairoGradientPattern';
classes[] = 'CairoSolidPattern';
classes[] = 'CairoSurfacePattern';
classes[] = 'CairoLinearGradient';
classes[] = 'CairoRadialGradient';
classes[] = 'CairoAntialias';
classes[] = 'CairoContent';
classes[] = 'CairoExtend';
classes[] = 'CairoFormat';
classes[] = 'CairoFillRule';
classes[] = 'CairoFilter';
classes[] = 'CairoHintMetrics';
classes[] = 'CairoHintStyle';
classes[] = 'CairoLineCap';
classes[] = 'CairoLineJoin';
classes[] = 'CairoMatrix';
classes[] = 'CairoOperator';
classes[] = 'CairoPath';
classes[] = 'CairoPsLevel';
classes[] = 'CairoSubpixelOrder';
classes[] = 'CairoSvgVersion';

constants[] = 'CAIRO_STATUS_SUCCESS';
constants[] = 'CAIRO_STATUS_NO_MEMORY';
constants[] = 'CAIRO_STATUS_INVALID_RESTORE';
constants[] = 'CAIRO_STATUS_INVALID_POP_GROUP';
constants[] = 'CAIRO_STATUS_NO_CURRENT_POINT';
constants[] = 'CAIRO_STATUS_INVALID_MATRIX';
constants[] = 'CAIRO_STATUS_INVALID_STATUS';
constants[] = 'CAIRO_STATUS_NULL_POINTER';
constants[] = 'CAIRO_STATUS_INVALID_STRING';
constants[] = 'CAIRO_STATUS_INVALID_PATH_DATA';
constants[] = 'CAIRO_STATUS_READ_ERROR';
constants[] = 'CAIRO_STATUS_WRITE_ERROR';
constants[] = 'CAIRO_STATUS_SURFACE_FINISHED';
constants[] = 'CAIRO_STATUS_SURFACE_TYPE_MISMATCH';
constants[] = 'CAIRO_STATUS_PATTERN_TYPE_MISMATCH';
constants[] = 'CAIRO_STATUS_INVALID_CONTENT';
constants[] = 'CAIRO_STATUS_INVALID_FORMAT';
constants[] = 'CAIRO_STATUS_INVALID_VISUAL';
constants[] = 'CAIRO_STATUS_FILE_NOT_FOUND';
constants[] = 'CAIRO_STATUS_INVALID_DASH';
constants[] = 'CAIRO_STATUS_INVALID_DSC_COMMENT';
constants[] = 'CAIRO_STATUS_INVALID_INDEX';
constants[] = 'CAIRO_STATUS_CLIP_NOT_REPRESENTABLE';
constants[] = 'CAIRO_STATUS_TEMP_FILE_ERROR';
constants[] = 'CAIRO_STATUS_INVALID_STRIDE';
constants[] = 'CAIRO_ANTIALIAS_DEFAULT';
constants[] = 'CAIRO_ANTIALIAS_NONE';
constants[] = 'CAIRO_ANTIALIAS_GRAY';
constants[] = 'CAIRO_ANTIALIAS_SUBPIXEL';
constants[] = 'CAIRO_SUBPIXEL_ORDER_DEFAULT';
constants[] = 'CAIRO_SUBPIXEL_ORDER_RGB';
constants[] = 'CAIRO_SUBPIXEL_ORDER_BGR';
constants[] = 'CAIRO_SUBPIXEL_ORDER_VRGB';
constants[] = 'CAIRO_SUBPIXEL_ORDER_VBGR';
constants[] = 'CAIRO_FILL_RULE_WINDING';
constants[] = 'CAIRO_FILL_RULE_EVEN_ODD';
constants[] = 'CAIRO_LINE_CAP_BUTT';
constants[] = 'CAIRO_LINE_CAP_ROUND';
constants[] = 'CAIRO_LINE_CAP_SQUARE';
constants[] = 'CAIRO_LINE_JOIN_MITER';
constants[] = 'CAIRO_LINE_JOIN_ROUND';
constants[] = 'CAIRO_LINE_JOIN_BEVEL';
constants[] = 'CAIRO_OPERATOR_CLEAR';
constants[] = 'CAIRO_OPERATOR_SOURCE';
constants[] = 'CAIRO_OPERATOR_OVER';
constants[] = 'CAIRO_OPERATOR_IN';
constants[] = 'CAIRO_OPERATOR_OUT';
constants[] = 'CAIRO_OPERATOR_ATOP';
constants[] = 'CAIRO_OPERATOR_DEST';
constants[] = 'CAIRO_OPERATOR_DEST_OVER';
constants[] = 'CAIRO_OPERATOR_DEST_IN';
constants[] = 'CAIRO_OPERATOR_DEST_OUT';
constants[] = 'CAIRO_OPERATOR_DEST_ATOP';
constants[] = 'CAIRO_OPERATOR_XOR';
constants[] = 'CAIRO_OPERATOR_ADD';
constants[] = 'CAIRO_OPERATOR_SATURATE';
constants[] = 'CAIRO_PATTERN_TYPE_SOLID';
constants[] = 'CAIRO_PATTERN_TYPE_SURFACE';
constants[] = 'CAIRO_PATTERN_TYPE_LINEAR';
constants[] = 'CAIRO_PATTERN_TYPE_RADIAL';
constants[] = 'CAIRO_EXTEND_NONE';
constants[] = 'CAIRO_EXTEND_REPEAT';
constants[] = 'CAIRO_EXTEND_REFLECT';
constants[] = 'CAIRO_EXTEND_PAD';
constants[] = 'CAIRO_FILTER_FAST';
constants[] = 'CAIRO_FILTER_GOOD';
constants[] = 'CAIRO_FILTER_BEST';
constants[] = 'CAIRO_FILTER_NEAREST';
constants[] = 'CAIRO_FILTER_BILINEAR';
constants[] = 'CAIRO_FILTER_GAUSSIAN';
constants[] = 'CAIRO_HINT_STYLE_DEFAULT';
constants[] = 'CAIRO_HINT_STYLE_NONE';
constants[] = 'CAIRO_HINT_STYLE_SLIGHT';
constants[] = 'CAIRO_HINT_STYLE_MEDIUM';
constants[] = 'CAIRO_HINT_STYLE_FULL';
constants[] = 'CAIRO_HINT_METRICS_DEFAULT';
constants[] = 'CAIRO_HINT_METRICS_OFF';
constants[] = 'CAIRO_HINT_METRICS_ON';
constants[] = 'CAIRO_FONT_TYPE_TOY';
constants[] = 'CAIRO_FONT_TYPE_FT';
constants[] = 'CAIRO_FONT_TYPE_WIN32';
constants[] = 'CAIRO_FONT_TYPE_QUARTZ';
constants[] = 'CAIRO_FONT_SLANT_NORMAL';
constants[] = 'CAIRO_FONT_SLANT_ITALIC';
constants[] = 'CAIRO_FONT_SLANT_OBLIQUE';
constants[] = 'CAIRO_FONT_WEIGHT_NORMAL';
constants[] = 'CAIRO_FONT_WEIGHT_BOLD';
constants[] = 'CAIRO_CONTENT_COLOR';
constants[] = 'CAIRO_CONTENT_ALPHA';
constants[] = 'CAIRO_CONTENT_COLOR_ALPHA';
constants[] = 'CAIRO_SURFACE_TYPE_IMAGE';
constants[] = 'CAIRO_SURFACE_TYPE_PDF';
constants[] = 'CAIRO_SURFACE_TYPE_PS';
constants[] = 'CAIRO_SURFACE_TYPE_XLIB';
constants[] = 'CAIRO_SURFACE_TYPE_XCB';
constants[] = 'CAIRO_SURFACE_TYPE_GLITZ';
constants[] = 'CAIRO_SURFACE_TYPE_QUARTZ';
constants[] = 'CAIRO_SURFACE_TYPE_WIN32';
constants[] = 'CAIRO_SURFACE_TYPE_BEOS';
constants[] = 'CAIRO_SURFACE_TYPE_DIRECTFB';
constants[] = 'CAIRO_SURFACE_TYPE_SVG';
constants[] = 'CAIRO_SURFACE_TYPE_OS2';
constants[] = 'CAIRO_SURFACE_TYPE_WIN32_PRINTING';
constants[] = 'CAIRO_SURFACE_TYPE_QUARTZ_IMAGE';
constants[] = 'CAIRO_FORMAT_ARGB32';
constants[] = 'CAIRO_FORMAT_RGB24';
constants[] = 'CAIRO_FORMAT_A8';
constants[] = 'CAIRO_FORMAT_A1';
constants[] = 'CAIRO_PS_LEVEL_2';
constants[] = 'CAIRO_PS_LEVEL_3';
constants[] = 'CAIRO_SVG_VERSION_1_1';
constants[] = 'CAIRO_SVG_VERSION_1_2';

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

;Functions that output directly 
functions[] = echo
functions[] = print
functions[] = var_dump
functions[] = debug_print_backtrace
functions[] = fpassthru
functions[] = readfile
functions[] = ob_end_flush

;Functions that may return if 2nd argument is true 
functionsArg1[] = print_r
functionsArg1[] = var_export
functionsArg1[] = highlight_string
functionsArg1[] = highlight_file
functionsArg1[] = show_source

functions[] = 

classes[] = 'SQLite3'
classes[] = 'SQLite3Stmt'
classes[] = 'SQLite3Result'

constants[] = 'SQLITE3_ASSOC';
constants[] = 'SQLITE3_NUM';
constants[] = 'SQLITE3_BOTH';
constants[] = 'SQLITE3_INTEGER';
constants[] = 'SQLITE3_FLOAT';
constants[] = 'SQLITE3_TEXT';
constants[] = 'SQLITE3_BLOB';
constants[] = 'SQLITE3_NULL';
constants[] = 'SQLITE3_OPEN_READONLY';
constants[] = 'SQLITE3_OPEN_READWRITE';
constants[] = 'SQLITE3_OPEN_CREATE';

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

constants[] = 'T_REQUIRE_ONCE';
constants[] = 'T_REQUIRE';
constants[] = 'T_EVAL';
constants[] = 'T_INCLUDE_ONCE';
constants[] = 'T_INCLUDE';
constants[] = 'T_LOGICAL_OR';
constants[] = 'T_LOGICAL_XOR';
constants[] = 'T_LOGICAL_AND';
constants[] = 'T_PRINT';
constants[] = 'T_SR_EQUAL';
constants[] = 'T_SL_EQUAL';
constants[] = 'T_XOR_EQUAL';
constants[] = 'T_OR_EQUAL';
constants[] = 'T_AND_EQUAL';
constants[] = 'T_MOD_EQUAL';
constants[] = 'T_CONCAT_EQUAL';
constants[] = 'T_DIV_EQUAL';
constants[] = 'T_MUL_EQUAL';
constants[] = 'T_MINUS_EQUAL';
constants[] = 'T_PLUS_EQUAL';
constants[] = 'T_BOOLEAN_OR';
constants[] = 'T_BOOLEAN_AND';
constants[] = 'T_IS_NOT_IDENTICAL';
constants[] = 'T_IS_IDENTICAL';
constants[] = 'T_IS_NOT_EQUAL';
constants[] = 'T_IS_EQUAL';
constants[] = 'T_IS_GREATER_OR_EQUAL';
constants[] = 'T_IS_SMALLER_OR_EQUAL';
constants[] = 'T_SR';
constants[] = 'T_SL';
constants[] = 'T_INSTANCEOF';
constants[] = 'T_UNSET_CAST';
constants[] = 'T_BOOL_CAST';
constants[] = 'T_OBJECT_CAST';
constants[] = 'T_ARRAY_CAST';
constants[] = 'T_STRING_CAST';
constants[] = 'T_DOUBLE_CAST';
constants[] = 'T_INT_CAST';
constants[] = 'T_DEC';
constants[] = 'T_INC';
constants[] = 'T_CLONE';
constants[] = 'T_NEW';
constants[] = 'T_EXIT';
constants[] = 'T_IF';
constants[] = 'T_ELSEIF';
constants[] = 'T_ELSE';
constants[] = 'T_ENDIF';
constants[] = 'T_LNUMBER';
constants[] = 'T_DNUMBER';
constants[] = 'T_STRING';
constants[] = 'T_STRING_VARNAME';
constants[] = 'T_VARIABLE';
constants[] = 'T_NUM_STRING';
constants[] = 'T_INLINE_HTML';
constants[] = 'T_CHARACTER';
constants[] = 'T_BAD_CHARACTER';
constants[] = 'T_ENCAPSED_AND_WHITESPACE';
constants[] = 'T_CONSTANT_ENCAPSED_STRING';
constants[] = 'T_ECHO';
constants[] = 'T_DO';
constants[] = 'T_WHILE';
constants[] = 'T_ENDWHILE';
constants[] = 'T_FOR';
constants[] = 'T_ENDFOR';
constants[] = 'T_FOREACH';
constants[] = 'T_ENDFOREACH';
constants[] = 'T_DECLARE';
constants[] = 'T_ENDDECLARE';
constants[] = 'T_AS';
constants[] = 'T_SWITCH';
constants[] = 'T_ENDSWITCH';
constants[] = 'T_CASE';
constants[] = 'T_DEFAULT';
constants[] = 'T_BREAK';
constants[] = 'T_CONTINUE';
constants[] = 'T_GOTO';
constants[] = 'T_FUNCTION';
constants[] = 'T_CONST';
constants[] = 'T_RETURN';
constants[] = 'T_TRY';
constants[] = 'T_CATCH';
constants[] = 'T_THROW';
constants[] = 'T_USE';
constants[] = 'T_GLOBAL';
constants[] = 'T_PUBLIC';
constants[] = 'T_PROTECTED';
constants[] = 'T_PRIVATE';
constants[] = 'T_FINAL';
constants[] = 'T_ABSTRACT';
constants[] = 'T_STATIC';
constants[] = 'T_VAR';
constants[] = 'T_UNSET';
constants[] = 'T_ISSET';
constants[] = 'T_EMPTY';
constants[] = 'T_HALT_COMPILER';
constants[] = 'T_CLASS';
constants[] = 'T_INTERFACE';
constants[] = 'T_EXTENDS';
constants[] = 'T_IMPLEMENTS';
constants[] = 'T_OBJECT_OPERATOR';
constants[] = 'T_DOUBLE_ARROW';
constants[] = 'T_LIST';
constants[] = 'T_ARRAY';
constants[] = 'T_CLASS_C';
constants[] = 'T_METHOD_C';
constants[] = 'T_FUNC_C';
constants[] = 'T_LINE';
constants[] = 'T_FILE';
constants[] = 'T_COMMENT';
constants[] = 'T_DOC_COMMENT';
constants[] = 'T_OPEN_TAG';
constants[] = 'T_OPEN_TAG_WITH_ECHO';
constants[] = 'T_CLOSE_TAG';
constants[] = 'T_WHITESPACE';
constants[] = 'T_START_HEREDOC';
constants[] = 'T_END_HEREDOC';
constants[] = 'T_DOLLAR_OPEN_CURLY_BRACES';
constants[] = 'T_CURLY_OPEN';
constants[] = 'T_PAAMAYIM_NEKUDOTAYIM';
constants[] = 'T_NAMESPACE';
constants[] = 'T_NS_C';
constants[] = 'T_DIR';
constants[] = 'T_NS_SEPARATOR';
constants[] = 'T_DOUBLE_COLON';

functions[] = token_get_all
functions[] = token_name

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

alias['_'] = 'gettext';
alias['chop'] = 'rtrim';
alias['close'] = 'closedir';
alias['com_get'] = 'com_propget';
alias['com_propset'] = 'com_propput';
alias['com_set'] = 'com_propput';
alias['die'] = 'exit';
alias['diskfreespace'] = 'disk_free_space';
alias['doubleval'] = 'floatval';
alias['fbsql'] = 'fbsql_db_query';
alias['fputs'] = 'fwrite';
alias['gzputs'] = 'gzwrite';
alias['i18n_convert'] = 'mb_convert_encoding';
alias['i18n_discover_encoding'] = 'mb_detect_encoding';
alias['i18n_http_input'] = 'mb_http_input';
alias['i18n_http_output'] = 'mb_http_output';
alias['i18n_internal_encoding'] = 'mb_internal_encoding';
alias['i18n_ja_jp_hantozen'] = 'mb_convert_kana';
alias['i18n_mime_header_decode'] = 'mb_decode_mimeheader';
alias['i18n_mime_header_encode'] = 'mb_encode_mimeheader';
alias['imap_create'] = 'imap_createmailbox';
alias['imap_fetchtext'] = 'imap_body';
alias['imap_getmailboxes'] = 'imap_list_full';
alias['imap_getsubscribed'] = 'imap_lsub_full';
alias['imap_header'] = 'imap_headerinfo';
alias['imap_listmailbox'] = 'imap_list';
alias['imap_listsubscribed'] = 'imap_lsub';
alias['imap_rename'] = 'imap_renamemailbox';
alias['imap_scan'] = 'imap_listscan';
alias['imap_scanmailbox'] = 'imap_listscan';
alias['ini_alter'] = 'ini_set';
alias['is_double'] = 'is_float';
alias['is_integer'] = 'is_int';
alias['is_long'] = 'is_int';
alias['is_real'] = 'is_float';
alias['is_writeable'] = 'is_writable';
alias['join'] = 'implode';
alias['key_exists'] = 'array_key_exists';
alias['ldap_close'] = 'ldap_unbind';
alias['magic_quotes_runtime'] = 'set_magic_quotes_runtime';
alias['mbstrcut'] = 'mb_strcut';
alias['mbstrlen'] = 'mb_strlen';
alias['mbstrpos'] = 'mb_strpos';
alias['mbstrrpos'] = 'mb_strrpos';
alias['mbsubstr'] = 'mb_substr';
alias['msql'] = 'msql_db_query';
alias['msql_createdb'] = 'msql_create_db';
alias['msql_dbname'] = 'msql_result';
alias['msql_dropdb'] = 'msql_drop_db';
alias['msql_fieldflags'] = 'msql_field_flags';
alias['msql_fieldlen'] = 'msql_field_len';
alias['msql_fieldname'] = 'msql_field_name';
alias['msql_fieldtable'] = 'msql_field_table';
alias['msql_fieldtype'] = 'msql_field_type';
alias['msql_freeresult'] = 'msql_free_result';
alias['msql_listdbs'] = 'msql_list_dbs';
alias['msql_listfields'] = 'msql_list_fields';
alias['msql_listtables'] = 'msql_list_tables';
alias['msql_numfields'] = 'msql_num_fields';
alias['msql_numrows'] = 'msql_num_rows';
alias['msql_regcase'] = 'sql_regcase';
alias['msql_selectdb'] = 'msql_select_db';
alias['msql_tablename'] = 'msql_result';
alias['mssql_affected_rows'] = 'sybase_affected_rows';
alias['mssql_affected_rows'] = 'sybase_affected_rows';
alias['mssql_close'] = 'sybase_close';
alias['mssql_close'] = 'sybase_close';
alias['mssql_connect'] = 'sybase_connect';
alias['mssql_connect'] = 'sybase_connect';
alias['mssql_data_seek'] = 'sybase_data_seek';
alias['mssql_data_seek'] = 'sybase_data_seek';
alias['mssql_fetch_array'] = 'sybase_fetch_array';
alias['mssql_fetch_array'] = 'sybase_fetch_array';
alias['mssql_fetch_field'] = 'sybase_fetch_field';
alias['mssql_fetch_field'] = 'sybase_fetch_field';
alias['mssql_fetch_object'] = 'sybase_fetch_object';
alias['mssql_fetch_object'] = 'sybase_fetch_object';
alias['mssql_fetch_row'] = 'sybase_fetch_row';
alias['mssql_fetch_row'] = 'sybase_fetch_row';
alias['mssql_field_seek'] = 'sybase_field_seek';
alias['mssql_field_seek'] = 'sybase_field_seek';
alias['mssql_free_result'] = 'sybase_free_result';
alias['mssql_free_result'] = 'sybase_free_result';
alias['mssql_get_last_message'] = 'sybase_get_last_message';
alias['mssql_get_last_message'] = 'sybase_get_last_message';
alias['mssql_min_client_severity'] = 'sybase_min_client_severity';
alias['mssql_min_error_severity'] = 'sybase_min_error_severity';
alias['mssql_min_message_severity'] = 'sybase_min_message_severity';
alias['mssql_min_server_severity'] = 'sybase_min_server_severity';
alias['mssql_num_fields'] = 'sybase_num_fields';
alias['mssql_num_fields'] = 'sybase_num_fields';
alias['mssql_num_rows'] = 'sybase_num_rows';
alias['mssql_num_rows'] = 'sybase_num_rows';
alias['mssql_pconnect'] = 'sybase_pconnect';
alias['mssql_pconnect'] = 'sybase_pconnect';
alias['mssql_query'] = 'sybase_query';
alias['mssql_query'] = 'sybase_query';
alias['mssql_result'] = 'sybase_result';
alias['mssql_result'] = 'sybase_result';
alias['mssql_select_db'] = 'sybase_select_db';
alias['mssql_select_db'] = 'sybase_select_db';
alias['mysql'] = 'mysql_db_query';
alias['mysql_createdb'] = 'mysql_create_db';
alias['mysql_db_name'] = 'mysql_result';
alias['mysql_dbname'] = 'mysql_result';
alias['mysql_dropdb'] = 'mysql_drop_db';
alias['mysql_fieldflags'] = 'mysql_field_flags';
alias['mysql_fieldlen'] = 'mysql_field_len';
alias['mysql_fieldname'] = 'mysql_field_name';
alias['mysql_fieldtable'] = 'mysql_field_table';
alias['mysql_fieldtype'] = 'mysql_field_type';
alias['mysql_freeresult'] = 'mysql_free_result';
alias['mysql_listdbs'] = 'mysql_list_dbs';
alias['mysql_listfields'] = 'mysql_list_fields';
alias['mysql_listtables'] = 'mysql_list_tables';
alias['mysql_numfields'] = 'mysql_num_fields';
alias['mysql_numrows'] = 'mysql_num_rows';
alias['mysql_selectdb'] = 'mysql_select_db';
alias['mysql_tablename'] = 'mysql_result';
alias['ocibindbyname'] = 'oci_bind_by_name';
alias['ocicancel'] = 'oci_cancel';
alias['ocicolumnisnull'] = 'oci_field_is_null';
alias['ocicolumnname'] = 'oci_field_name';
alias['ocicolumnprecision'] = 'oci_field_precision';
alias['ocicolumnscale'] = 'oci_field_scale';
alias['ocicolumnsize'] = 'oci_field_size';
alias['ocicolumntype'] = 'oci_field_type';
alias['ocicolumntyperaw'] = 'oci_field_type_raw';
alias['ocicommit'] = 'oci_commit';
alias['ocidefinebyname'] = 'oci_define_by_name';
alias['ocierror'] = 'oci_error';
alias['ociexecute'] = 'oci_execute';
alias['ocifetch'] = 'oci_fetch';
alias['ocifetchinto'] = 'oci_fetch_array, oci_fetch_row, oci_fetch_assoc, oci_fetch_object';
alias['ocifetchstatement'] = 'oci_fetch_all';
alias['ocifreecursor'] = 'oci_free_statement';
alias['ocifreedesc'] = 'oci_free_descriptor';
alias['ocifreestatement'] = 'oci_free_statement';
alias['ociinternaldebug'] = 'oci_internal_debug';
alias['ocilogon'] = 'oci_connect';
alias['ocinewcollection'] = 'oci_new_collection';
alias['ocinewcursor'] = 'oci_new_cursor';
alias['ocinewdescriptor'] = 'oci_new_descriptor';
alias['ocinlogon'] = 'oci_new_connect';
alias['ocinumcols'] = 'oci_num_fields';
alias['ociparse'] = 'oci_parse';
alias['ocipasswordchange'] = 'oci_password_change';
alias['ociplogon'] = 'oci_pconnect';
alias['ociresult'] = 'oci_result';
alias['ocirollback'] = 'oci_rollback';
alias['ociserverversion'] = 'oci_server_version';
alias['ocisetprefetch'] = 'oci_set_prefetch';
alias['ocistatementtype'] = 'oci_statement_type';
alias['odbc_do'] = 'odbc_exec';
alias['odbc_field_precision'] = 'odbc_field_len';
alias['pdf_add_outline'] = 'pdf_add_bookmark';
alias['pg_clientencoding'] = 'pg_client_encoding';
alias['pg_setclientencoding'] = 'pg_set_client_encoding';
alias['pos'] = 'current';
alias['recode'] = 'recode_string';
alias['show_source'] = 'highlight_file';
alias['sizeof'] = 'count';
alias['snmpwalkoid'] = 'snmprealwalk';
alias['strchr'] = 'strstr';
alias['xptr_new_context'] = 'xpath_new_context';
alias['user_error'] = 'trigger_error';
{
 "Extensions/Extcurl":{"functions":["curl_init"]},
 "Extensions/Extftp":{"functions":["ftp_connect","ftp_ssl_connect"]},
 "Extensions/Extldap":{"functions":["ldap_connect"]},
 "Extensions/Extmail":{"functions":["mail"]},
 "Extensions/Extmysqli":{"functions":["mysqli_connect", "mysqli_pconnect"],"classes":["mysqli"]},
 "Extensions/Extpgsql":{"functions":["pg_connect", "pg_pconnect"]},
 "Extensions/Extsockets":{"functions":["socket_create", "socket_accept", "socket_connect", "socket_listen"]}
}functions[] = xdebug_get_stack_depth
functions[] = xdebug_get_function_stack
functions[] = xdebug_get_formatted_function_stack
functions[] = xdebug_print_function_stack
functions[] = xdebug_get_declared_vars
functions[] = xdebug_call_class
functions[] = xdebug_call_function
functions[] = xdebug_call_file
functions[] = xdebug_call_line
functions[] = xdebug_set_time_limit
functions[] = xdebug_var_dump
functions[] = xdebug_debug_zval
functions[] = xdebug_debug_zval_stdout
functions[] = xdebug_enable
functions[] = xdebug_disable
functions[] = xdebug_is_enabled
functions[] = xdebug_break
functions[] = xdebug_start_trace
functions[] = xdebug_stop_trace
functions[] = xdebug_get_tracefile_name
functions[] = xdebug_start_error_collection
functions[] = xdebug_stop_error_collection
functions[] = xdebug_get_collected_errors
functions[] = xdebug_get_profiler_filename
functions[] = xdebug_dump_aggr_profiling_data
functions[] = xdebug_clear_aggr_profiling_data
functions[] = xdebug_dump_superglobals
functions[] = xdebug_get_headers
functions[] = xdebug_memory_usage
functions[] = xdebug_peak_memory_usage
functions[] = xdebug_time_index
functions[] = xdebug_start_code_coverage
functions[] = xdebug_stop_code_coverage
functions[] = xdebug_get_code_coverage
functions[] = xdebug_get_function_count
functions[] = xdebug_code_coverage_started

constants[] = 

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 'xdebug.auto_trace';
directives[] = 'xdebug.cli_color';
directives[] = 'xdebug.collect_assignments';
directives[] = 'xdebug.collect_includes';
directives[] = 'xdebug.collect_params';
directives[] = 'xdebug.collect_return';
directives[] = 'xdebug.collect_vars';
directives[] = 'xdebug.coverage_enable';
directives[] = 'xdebug.default_enable';
directives[] = 'xdebug.dump_globals';
directives[] = 'xdebug.dump_once';
directives[] = 'xdebug.dump_undefined';
directives[] = 'xdebug.dump.*';
directives[] = 'xdebug.dump.GET';
directives[] = 'xdebug.dump.SERVER';
directives[] = 'xdebug.extended_info';
directives[] = 'xdebug.file_link_format';
directives[] = 'xdebug.filename_format';
directives[] = 'xdebug.force_display_errors';
directives[] = 'xdebug.force_error_reporting';
directives[] = 'xdebug.halt_level';
directives[] = 'xdebug.halt_level';
directives[] = 'xdebug.idekey';
directives[] = 'xdebug.manual_url';
directives[] = 'xdebug.max_nesting_level';
directives[] = 'xdebug.max_stack_frames';
directives[] = 'xdebug.overload_var_dump';
directives[] = 'xdebug.profiler_aggregate';
directives[] = 'xdebug.profiler_append';
directives[] = 'xdebug.profiler_enable';
directives[] = 'xdebug.profiler_enable_trigger';
directives[] = 'xdebug.profiler_enable_trigger_value';
directives[] = 'xdebug.profiler_output_dir';
directives[] = 'xdebug.profiler_output_name';
directives[] = 'xdebug.remote_addr_header';
directives[] = 'xdebug.remote_autostart';
directives[] = 'xdebug.remote_connect_back';
directives[] = 'xdebug.remote_cookie_expire_time';
directives[] = 'xdebug.remote_enable';
directives[] = 'xdebug.remote_handler';
directives[] = 'xdebug.remote_host';
directives[] = 'xdebug.remote_log';
directives[] = 'xdebug.remote_mode';
directives[] = 'xdebug.remote_port';
directives[] = 'xdebug.remote_timeout';
directives[] = 'xdebug.scream';
directives[] = 'xdebug.show_error_trace';
directives[] = 'xdebug.show_exception_trace';
directives[] = 'xdebug.show_local_vars';
directives[] = 'xdebug.show_mem_delta';
directives[] = 'xdebug.trace_enable_trigger';
directives[] = 'xdebug.trace_enable_trigger_value';
directives[] = 'xdebug.trace_format';
directives[] = 'xdebug.trace_options';
directives[] = 'xdebug.trace_output_dir';
directives[] = 'xdebug.trace_output_name';
directives[] = 'xdebug.var_display_max_children';
directives[] = 'xdebug.var_display_max_data';
directives[] = 'xdebug.var_display_max_depth';


functions[] = 

constants[] = 

classes[] = 'lapack'
classes[] = 'lapackException'

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

index[] = "PATH";
index[] = "USER";
index[] = "SSH_AUTH_SOCK";
index[] = "TMPDIR";
index[] = "TMP";
index[] = "TEMP";classes[] = "PEAR";
classes[] = "Console_Getopt";
classes[] = "MDB2";
classes[] = "Archive_Tar";
classes[] = "XML_RPC";
classes[] = "Date";
classes[] = "Structures_Graph";
classes[] = "HTTP_Upload";
classes[] = "Crypt_Blowfish";
classes[] = "VersionControl_Git";
classes[] = "XML_Util";
classes[] = "Net_SMTP";
classes[] = "DB";
classes[] = "Net_Socket";
classes[] = "PHP_CodeSniffer";
classes[] = "HTTP_Request";
classes[] = "Mail";
classes[] = "Net_URL";
classes[] = "Cache_Lite";
classes[] = "Mail_Mime";
classes[] = "Net_URL2";
classes[] = "HTTP_Request2";
classes[] = "Log";
classes[] = "XML_Parser";
classes[] = "OLE";
classes[] = "DB_DataObject";
classes[] = "File";
classes[] = "Auth_SASL";
classes[] = "MIME_Type";
classes[] = "File_Mogile";
classes[] = "Net_Gearman";
classes[] = "HTML_Template_IT";
classes[] = "HTML_QuickForm";
classes[] = "HTML_Common";
classes[] = "File_Util";
classes[] = "File_CSV";
classes[] = "Console_ProgressBar";
classes[] = "Image_Graph";
classes[] = "Net_DNSBL";
classes[] = "Mail_mimeDecode";
classes[] = "Console_Table";
classes[] = "MDB2_Driver_mysql";
classes[] = "SOAP";
classes[] = "Net_UserAgent_Detect";
classes[] = "Pager";
classes[] = "HTML_Table";
classes[] = "Auth";
classes[] = "Net_DNS";
classes[] = "HTTP_WebDAV_Server";
classes[] = "System_Daemon";
classes[] = "PEAR_Frontend_Web";
classes[] = "HTTP";
classes[] = "XML_Serializer";
classes[] = "Config";
classes[] = "Console_Getargs";
classes[] = "Spreadsheet_Excel_Writer";
classes[] = "Validate";
classes[] = "PhpDocumentor";
classes[] = "Cache";
classes[] = "XML_RPC2";
classes[] = "Image_Canvas";
classes[] = "Config_Lite";
classes[] = "VersionControl_SVN";
classes[] = "Console_GetoptPlus";
classes[] = "PHP_Compat";
classes[] = "MDB2_Driver_mysqli";
classes[] = "MDB";
classes[] = "HTML_Common2";
classes[] = "Event_Dispatcher";
classes[] = "XML_Beautifier";
classes[] = "File_Find";
classes[] = "Image_Color";
classes[] = "Numbers_Roman";
classes[] = "Text_Password";
classes[] = "MDB2_Driver_pgsql";
classes[] = "Net_IMAP";
classes[] = "Services_Weather";
classes[] = "Net_Sieve";
classes[] = "PHPUnit";
classes[] = "Net_DIME";
classes[] = "HTTP_Client";
classes[] = "HTML_QuickForm_Controller";
classes[] = "Numbers_Words";
classes[] = "Benchmark";
classes[] = "Var_Dump";
classes[] = "DB_DataObject_FormBuilder";
classes[] = "Image_Transform";
classes[] = "XML_Tree";
classes[] = "Net_Ping";
classes[] = "Net_POP3";
classes[] = "PHP_CompatInfo";
classes[] = "PEAR_PackageFileManager2";
classes[] = "PEAR_PackageFileManager_Plugins";
classes[] = "Net_LDAP2";
classes[] = "XML_Feed_Parser";
classes[] = "HTML_QuickForm_advmultiselect";
classes[] = "Crypt_CHAP";
classes[] = "HTML_CSS";
classes[] = "Image_GraphViz";
classes[] = "Console_CommandLine";
classes[] = "Crypt_HMAC";
classes[] = "HTML_Page2";
classes[] = "Net_DNS2";
classes[] = "File_Passwd";
classes[] = "Net_IPv4";
classes[] = "HTML_TreeMenu";
classes[] = "Net_FTP";
classes[] = "Console_Color";
classes[] = "MDB_QueryTool";
classes[] = "Net_Traceroute";
classes[] = "HTML_Template_Flexy";
classes[] = "XML_Parser2";
classes[] = "Auth_SASL2";
classes[] = "Text_CAPTCHA";
classes[] = "Services_Amazon_S3";
classes[] = "HTML_Progress2";
classes[] = "Image_Color2";
classes[] = "Auth_RADIUS";
classes[] = "Auth_HTTP";
classes[] = "DB_NestedSet";
classes[] = "HTML_AJAX";
classes[] = "HTTP_Header";
classes[] = "Net_Growl";
classes[] = "HTTP_Download";
classes[] = "HTML_Template_Sigma";
classes[] = "HTML_Javascript";
classes[] = "PEAR_Info";
classes[] = "Math_BigInteger";
classes[] = "PEAR_PackageFileManager";
classes[] = "Text_Figlet";
classes[] = "Text_Diff";
classes[] = "File_SMBPasswd";
classes[] = "Translation2";
classes[] = "System_Command";
classes[] = "HTML_QuickForm2";
classes[] = "Image_Text";
classes[] = "Mail_Queue";
classes[] = "HTML_Menu";
classes[] = "Image_Barcode";
classes[] = "Net_UserAgent_Mobile";
classes[] = "XML_SVG";
classes[] = "Archive_Zip";
classes[] = "HTML_Form";
classes[] = "Net_GeoIP";
classes[] = "Calendar";
classes[] = "DB_Pager";
classes[] = "Crypt_HMAC2";
classes[] = "Structures_DataGrid";
classes[] = "Text_Wiki";
classes[] = "DB_Table";
classes[] = "HTML_Progress";
classes[] = "HTML_BBCodeParser";
classes[] = "MDB2_Driver_mssql";
classes[] = "MP3_ID";
classes[] = "Net_IPv6";
classes[] = "Net_Curl";
classes[] = "DB_QueryTool";
classes[] = "Auth_PrefManager";
classes[] = "Crypt_CBC";
classes[] = "Net_CheckIP";
classes[] = "Crypt_RC4";
classes[] = "Contact_Vcard_Build";
classes[] = "XML_RSS";
classes[] = "MDB2_Driver_oci8";
classes[] = "HTML_Template_PHPLIB";
classes[] = "File_Archive";
classes[] = "DBA";
classes[] = "DB_ldap";
classes[] = "Net_NNTP";
classes[] = "Net_SmartIRC";
classes[] = "File_SearchReplace";
classes[] = "HTML_Crypt";
classes[] = "Contact_Vcard_Parse";
classes[] = "Net_Whois";
classes[] = "File_Fstab";
classes[] = "HTML_Select_Common";
classes[] = "FSM";
classes[] = "Text_Highlighter";
classes[] = "Math_Stats";
classes[] = "HTTP_OAuth";
classes[] = "File_HtAccess";
classes[] = "Net_Geo";
classes[] = "XML_HTMLSax";
classes[] = "Services_JSON";
classes[] = "Net_Portscan";
classes[] = "Translation";
classes[] = "Net_Vpopmaild";
classes[] = "Payment_DTA";
classes[] = "PHP_Beautifier";
classes[] = "Image_GIS";
classes[] = "Net_Dict";
classes[] = "HTML_Template_Xipe";
classes[] = "XML_fo2pdf";
classes[] = "Crypt_Xtea";
classes[] = "Pager_Sliding";
classes[] = "LiveUser";
classes[] = "Stream_Var";
classes[] = "Crypt_GPG";
classes[] = "XML_NITF";
classes[] = "Date_Holidays";
classes[] = "Net_Finger";
classes[] = "Text_Statistics";
classes[] = "Net_Server";
classes[] = "XML_Transformer";
classes[] = "Crypt_RSA";
classes[] = "DB_ado";
classes[] = "Structures_DataGrid_DataSource_Array";
classes[] = "HTML_Table_Matrix";
classes[] = "Structures_DataGrid_Renderer_Pager";
classes[] = "PHPDoc";
classes[] = "Structures_DataGrid_Renderer_HTMLTable";
classes[] = "Net_IDNA";
classes[] = "Math_Basex";
classes[] = "File_PDF";
classes[] = "Services_Twitter";
classes[] = "Math_RPN";
classes[] = "Science_Chemistry";
classes[] = "Math_Matrix";
classes[] = "Net_Dig";
classes[] = "Image_IPTC";
classes[] = "Net_Ident";
classes[] = "MDB2_Driver_sqlite";
classes[] = "Math_TrigOp";
classes[] = "Payment_Clieop";
classes[] = "Net_LMTP";
classes[] = "Net_SMS";
classes[] = "XML_image2svg";
classes[] = "System_Folders";
classes[] = "CodeGen";
classes[] = "Stream_SHM";
classes[] = "Net_LDAP";
classes[] = "Math_Finance";
classes[] = "HTML_Select";
classes[] = "XML_Wddx";
classes[] = "Math_Fibonacci";
classes[] = "Services_Facebook";
classes[] = "XML_CSSML";
classes[] = "XML_HTMLSax3";
classes[] = "Services_Amazon";
classes[] = "Mail_Mbox";
classes[] = "PHPUnit2";
classes[] = "Structures_DataGrid_DataSource_MDB2";
classes[] = "I18N";
classes[] = "HTTP_Session";
classes[] = "HTTP_Session2";
classes[] = "HTML_QuickForm_ElementGrid";
classes[] = "MDB2_Schema";
classes[] = "Tree";
classes[] = "Net_IDNA2";
classes[] = "CodeGen_PECL";
classes[] = "Services_W3C_HTMLValidator";
classes[] = "Gtk_FileDrop";
classes[] = "Testing_Selenium";
classes[] = "File_Gettext";
classes[] = "HTTP_WebDAV_Client";
classes[] = "XML_FastCreate";
classes[] = "XML_XPath";
classes[] = "I18Nv2";
classes[] = "Gtk_ScrollingLabel";
classes[] = "Validate_Finance_CreditCard";
classes[] = "System_Mount";
classes[] = "PEAR_Frontend_Gtk";
classes[] = "DB_odbtp";
classes[] = "Structures_DataGrid_Renderer_CSV";
classes[] = "XML_Query2XML";
classes[] = "File_Bittorrent";
classes[] = "Image_Remote";
classes[] = "HTML_Safe";
classes[] = "Services_Digg";
classes[] = "XML_DTD";
classes[] = "LiveUser_Admin";
classes[] = "PEAR_PackageFileManager_GUI_Gtk";
classes[] = "Games_Chess";
classes[] = "PHP_UML";
classes[] = "Structures_DataGrid_DataSource_DataObject";
classes[] = "Gtk_Styled";
classes[] = "Services_Amazon_SQS";
classes[] = "Math_Numerical_RootFinding";
classes[] = "PHP_Archive";
classes[] = "Text_CAPTCHA_Numeral";
classes[] = "VFS";
classes[] = "PHP_DocBlockGenerator";
classes[] = "PHP_Fork";
classes[] = "HTML_Page";
classes[] = "Structures_DataGrid_DataSource_DBQuery";
classes[] = "Net_CheckIP2";
classes[] = "Structures_DataGrid_DataSource_DBTable";
classes[] = "Structures_DataGrid_DataSource_DB";
classes[] = "PHP_Shell";
classes[] = "MDB2_Driver_ibase";
classes[] = "HTML_QuickForm_Renderer_Tableless";
classes[] = "Math_Combinatorics";
classes[] = "Services_ReCaptcha";
classes[] = "HTML_TagCloud";
classes[] = "I18N_UnicodeNormalizer";
classes[] = "Mail_IMAP";
classes[] = "pearweb_phars";
classes[] = "Mail_IMAPv2";
classes[] = "PEAR_PackageUpdate";
classes[] = "File_MARC";
classes[] = "pearweb_gopear";
classes[] = "SOAP_Interop";
classes[] = "Net_Wifi";
classes[] = "pearweb_channelxml";
classes[] = "PHP_Debug";
classes[] = "Services_Google";
classes[] = "System_WinDrives";
classes[] = "Net_Cyrus";
classes[] = "Gtk_VarDump";
classes[] = "Text_Wiki_Creole";
classes[] = "Console_Color2";
classes[] = "PEAR_Frontend_Gtk2";
classes[] = "File_Fortune";
classes[] = "Structures_DataGrid_Renderer_Smarty";
classes[] = "File_Bittorrent2";
classes[] = "File_IMC";
classes[] = "Structures_DataGrid_DataSource_CSV";
classes[] = "Image_Tools";
classes[] = "I18N_UnicodeString";
classes[] = "Net_URL_Mapper";
classes[] = "Text_LanguageDetect";
classes[] = "Structures_DataGrid_Renderer_HTMLSortForm";
classes[] = "Gtk2_FileDrop";
classes[] = "Image_3D";
classes[] = "XML_sql2xml";
classes[] = "Date_Holidays_USA";
classes[] = "MP3_Playlist";
classes[] = "Net_MPD";
classes[] = "Structures_DataGrid_Renderer_XML";
classes[] = "Math_Vector";
classes[] = "Gtk2_EntryDialog";
classes[] = "HTML_QuickForm_altselect";
classes[] = "QA_Peardoc_Coverage";
classes[] = "Validate_US";
classes[] = "Structures_DataGrid_Renderer_XLS";
classes[] = "Services_Blogging";
classes[] = "HTML_QuickForm_SelectFilter";
classes[] = "Net_Nmap";
classes[] = "Structures_DataGrid_Renderer_Console";
classes[] = "Payment_Process";
classes[] = "Structures_DataGrid_DataSource_XML";
classes[] = "DB_Sqlite_Tools";
classes[] = "Structures_LinkedList";
classes[] = "Date_Holidays_UNO";
classes[] = "Structures_DataGrid_Renderer_XUL";
classes[] = "SQL_Parser";
classes[] = "XML_XSLT_Wrapper";
classes[] = "Gtk2_IndexedComboBox";
classes[] = "Date_Holidays_Germany";
classes[] = "Structures_DataGrid_DataSource_PDO";
classes[] = "Services_Akismet";
classes[] = "DBA_Relational";
classes[] = "PHP_Parser";
classes[] = "Image_QRCode";
classes[] = "Structures_DataGrid_DataSource_RSS";
classes[] = "Services_Trackback";
classes[] = "HTTP_Server";
classes[] = "DB_ldap2";
classes[] = "Image_Barcode2";
classes[] = "Date_Holidays_Japan";
classes[] = "pearweb";
classes[] = "Services_GeoNames";
classes[] = "File_CSV_DataSource";
classes[] = "PHP_FunctionCallTracer";
classes[] = "Math_Fraction";
classes[] = "PEAR_PackageUpdate_Web";
classes[] = "HTML_QuickForm_Livesearch";
classes[] = "XML_svg2image";
classes[] = "Genealogy_Gedcom";
classes[] = "Gtk2_ExceptionDump";
classes[] = "System_ProcWatch";
classes[] = "Math_Complex";
classes[] = "Date_Holidays_EnglandWales";
classes[] = "XML_Statistics";
classes[] = "Net_Monitor";
classes[] = "Date_Holidays_Austria";
classes[] = "pearweb_index";
classes[] = "Date_Holidays_Netherlands";
classes[] = "Text_Wiki_Mediawiki";
classes[] = "Crypt_DiffieHellman";
classes[] = "Services_Ebay";
classes[] = "Services_YouTube";
classes[] = "UDDI";
classes[] = "PEAR_RemoteInstaller";
classes[] = "Gtk_MDB_Designer";
classes[] = "Date_Holidays_Sweden";
classes[] = "HTTP2";
classes[] = "Date_Holidays_Ireland";
classes[] = "Inline_C";
classes[] = "Date_Holidays_Brazil";
classes[] = "Validate_Finance";
classes[] = "Date_Holidays_Denmark";
classes[] = "Message";
classes[] = "Services_W3C_CSSValidator";
classes[] = "Date_Holidays_Norway";
classes[] = "Date_Holidays_Romania";
classes[] = "Date_Holidays_Ukraine";
classes[] = "Math_Quaternion";
classes[] = "Net_IRC";
classes[] = "Services_Delicious";
classes[] = "Date_Holidays_Slovenia";
classes[] = "Date_Holidays_Iceland";
classes[] = "Date_Holidays_Discordian";
classes[] = "Date_Holidays_PHPdotNet";
classes[] = "XML_XUL";
classes[] = "File_DNS";
classes[] = "Net_SMPP";
classes[] = "Services_ExchangeRates";
classes[] = "Services_Yahoo";
classes[] = "Services_Webservice";
classes[] = "PEAR_Command_Packaging";
classes[] = "Gtk2_VarDump";
classes[] = "PHP_ParserGenerator";
classes[] = "Services_Yadis";
classes[] = "Date_Holidays_Italy";
classes[] = "Math_Histogram";
classes[] = "Crypt_XXTEA";
classes[] = "Services_OpenSearch";
classes[] = "Net_MAC";
classes[] = "Net_CDDB";
classes[] = "Validate_IE";
classes[] = "MDB2_Driver_querysim";
classes[] = "HTML_BBCodeParser2";
classes[] = "URI_Template";
classes[] = "Payment_PayPal_SOAP";
classes[] = "Auth_PrefManager2";
classes[] = "Contact_AddressBook";
classes[] = "HTML_QuickForm_DHTMLRulesTableless";
classes[] = "File_DICOM";
classes[] = "Validate_FI";
classes[] = "Services_Pingback";
classes[] = "File_Ogg";
classes[] = "CodeGen_MySQL";
classes[] = "Crypt_MicroID";
classes[] = "Validate_PL";
classes[] = "XML_SaxFilters";
classes[] = "Net_UserAgent_Mobile_GPS";
classes[] = "Services_TinyURL";
classes[] = "HTML_QuickForm_CAPTCHA";
classes[] = "Services_SharedBook";
classes[] = "Text_Spell_Audio";
classes[] = "Text_Wiki_BBCode";
classes[] = "PHP_ArrayOf";
classes[] = "System_SharedMemory";
classes[] = "Math_Integer";
classes[] = "Services_Technorati";
classes[] = "Text_Wiki_Tiki";
classes[] = "System_Socket";
classes[] = "XML_RDDL";
classes[] = "PEAR_Delegator";
classes[] = "Image_XBM";
classes[] = "Math_BinaryUtils";
classes[] = "Net_GameServerQuery";
classes[] = "Services_urlTea";
classes[] = "CodeGen_MySQL_UDF";
classes[] = "Services_TwitPic";
classes[] = "XML_FOAF";
classes[] = "Structures_DataGrid_Renderer_Flexy";
classes[] = "MP3_IDv2";
classes[] = "Text_Huffman";
classes[] = "Structures_DataGrid_DataSource_Excel";
classes[] = "Text_Wiki_Doku";
classes[] = "File_Sitemap";
classes[] = "Validate_AU";
classes[] = "Math_Derivative";
classes[] = "Services_ShortURL";
classes[] = "Text_Wiki_Cowiki";
classes[] = "RDF";
classes[] = "Text_TeXHyphen";
classes[] = "Math_Polynomial";
classes[] = "Net_HL7";
classes[] = "Structures_BibTex";
classes[] = "PEAR_PackageUpdate_Gtk2";
classes[] = "pearweb_manual";
classes[] = "pearweb_pepr";
classes[] = "pearweb_qa";
classes[] = "pearweb_election";
classes[] = "PHP_LexerGenerator";
classes[] = "Validate_CA";
classes[] = "Validate_ISPN";
classes[] = "Validate_DE";
classes[] = "Services_DynDNS";
classes[] = "Validate_UK";
classes[] = "Mail2";
classes[] = "HTML_Entities";
classes[] = "Validate_ptBR";
classes[] = "XML_MXML";
classes[] = "PEAR_PackageFileManager_Cli";
classes[] = "ScriptReorganizer";
classes[] = "Validate_FR";
classes[] = "Event_SignalEmitter";
classes[] = "MDB2_TableBrowser";
classes[] = "Image_MonoBMP";
classes[] = "OpenDocument";
classes[] = "Image_Puzzle";
classes[] = "RDF_N3";
classes[] = "Validate_BE";
classes[] = "RDF_RDQL";
classes[] = "Image_JpegMarkerReader";
classes[] = "HTTP_SessionServer";
classes[] = "File_XSPF";
classes[] = "RDF_NTriple";
classes[] = "PEAR_PackageFileManager_Frontend";
classes[] = "XML_GRDDL";
classes[] = "CodeGen_MySQL_Plugin";
classes[] = "Validate_NL";
classes[] = "HTTP_FloodControl";
classes[] = "Crypt_RC42";
classes[] = "Validate_ES";
classes[] = "PEAR_Size";
classes[] = "Services_Compete";
classes[] = "Validate_AT";
classes[] = "Net_SMPP_Client";
classes[] = "Testing_FIT";
classes[] = "Validate_AR";
classes[] = "Testing_DocTest";
classes[] = "Validate_CH";
classes[] = "Validate_IS";
classes[] = "Date_Holidays_Spain";
classes[] = "Services_Hatena";
classes[] = "Validate_LV";
classes[] = "Structures_Form";
classes[] = "PEAR_PackageFileManager_Frontend_Web";
classes[] = "Text_PathNavigator";
classes[] = "File_DeliciousLibrary";
classes[] = "Validate_NZ";
classes[] = "File_Cabinet";
classes[] = "HTML_QuickForm_Rule_Spelling";
classes[] = "Validate_IN";
classes[] = "Services_Atlassian_Crowd";
classes[] = "Validate_DK";
classes[] = "Gtk2_PHPConfig";
classes[] = "Date_Holidays_Portugal";
classes[] = "Services_oEmbed";
classes[] = "Validate_IT";
classes[] = "Image_WBMP";
classes[] = "Date_Holidays_Australia";
classes[] = "Services_Akismet2";
classes[] = "Validate_ZA";
classes[] = "Date_Holidays_SanMarino";
classes[] = "Services_Mailman";
classes[] = "Validate_HU";
classes[] = "XML_Indexing";
classes[] = "Image_JpegXmpReader";
classes[] = "OpenID";
classes[] = "Date_Holidays_Finland";
classes[] = "Date_Holidays_Croatia";
classes[] = "Services_ProjectHoneyPot";
classes[] = "Services_Digg2";
classes[] = "Date_Holidays_Venezuela";
classes[] = "File_Infopath";
classes[] = "Gtk2_ScrollingLabel";
classes[] = "XML_Util2";
classes[] = "Services_Scribd";
classes[] = "Payment_PagamentoCerto";
classes[] = "Services_Yahoo_JP";
classes[] = "Search_Mnogosearch";
classes[] = "HTTP_Header2";
classes[] = "Validate_SE";
classes[] = "Date_Holidays_Turkey";
classes[] = "Validate_LU";
classes[] = "Validate_NO";
classes[] = "Payment_Process2";
classes[] = "Net_Socket2";
classes[] = "Validate_LI";
classes[] = "Services_UseKetchup";
classes[] = "Date_Holidays_Czech";
classes[] = "Date_Holidays_Serbia";
classes[] = "Services_Apns";
classes[] = "PEAR_Exception";
classes[] = "Image_GIS2";
classes[] = "MDB2_Driver_fbsql";
classes[] = "Validate_IR";
classes[] = "Date_HumanDiff";
classes[] = "Services_PageRank";
classes[] = "Net_SMTP2";
classes[] = "MDB2_Driver_odbc";
classes[] = "Services_Libravatar";
classes[] = "HTML_QuickForm2_Captcha";
classes[] = "Services_Twitter_Uploader";
classes[] = "Services_OpenStreetMap";
classes[] = "MDB2_Driver_sqlsrv";
classes[] = "System_Launcher";
classes[] = "XML_XRD";
classes[] = "PHP_Parser_DocblockParser";
classes[] = "Net_WebFinger";
classes[] = "PEAR_Manpages";
classes[] = "Structures_Form_Gtk2";
classes[] = "Date_Holidays_Chile";
classes[] = "Date_Holidays_France";
classes[] = "Date_Holidays_Russia";;filesystem
functions0[] = "unlink";
functions0[] = "rename";
functions1[] = "rename";
functions0[] = "copy";
functions1[] = "copy";
functions0[] = "fopen";
functions0[] = "file_get_contents";
functions0[] = "file_put_contents";
functions0[] = "move_uploaded_file";
functions1[] = "move_uploaded_file";
functions0[] = "bzread";
functions0[] = "bzflush";
functions0[] = "file";
functions0[] = "fdf_open";
functions0[] = "finfo_file";
functions0[] = "fflush";
functions0[] = "gzfile";
functions0[] = "finfo_file";
functions0[] = "highlight_file";
functions0[] = "imagecreatefrompng";
functions0[] = "imagecreatefromjpg";
functions0[] = "imagecreatefromgif";
functions0[] = "opendir";
functions0[] = "parse_ini_file";
functions0[] = "php_strip_whitespace";
functions0[] = "readlink";
functions0[] = "readgzfile";
functions0[] = "scandir";
functions0[] = "show_source";
functions0[] = "simplexml_load_file";
functions0[] = "stream_get_contents";
functions0[] = "stream_get_line";
functions0[] = "zip_open";
functions0[] = "yaml_parse_file";
functions0[] = "stream_get_contents";
functions0[] = "stream_get_contents";
functions0[] = "stream_get_contents";
functions0[] = "stream_get_contents";

; php code inclusion
functions0[] = "include";
functions0[] = "include_once";
functions0[] = "require";
functions0[] = "require_once";
functions0[] = "php_check_syntax";
functions0[] = "virtual";

;shell
functions0[] = "shell_exec";
functions0[] = "system";
functions0[] = "exec";
functions0[] = "passthru";
functions0[] = "expect_popen";
functions0[] = "mb_send_mail";
functions0[] = "proc_open";
functions0[] = "popen";
functions0[] = "pcntl_exec";

functions4[] = "mail";

;headers
functions0[] = "headers";

;xss
functions0[] = "printf";
functions0[] = "vprintf";

;debug
functions0[] = "print_r";
functions0[] = "var_dump";

;OS
functions0[] = "print_r";

;ldap
functions1[] = "ldap_add";
functions2[] = "ldap_add";
functions2[] = "ldap_read";
functions2[] = "ldap_search";
functions2[] = "ldap_list";

;xpath
functions1[] = "xpath_eval";
functions1[] = "xpath_eval_expression";
functions1[] = "xptr_eval";

;object injection


functions[] = mysqli_affected_rows
functions[] = mysqli_autocommit
functions[] = mysqli_change_user
functions[] = mysqli_character_set_name
functions[] = mysqli_close
functions[] = mysqli_commit
functions[] = mysqli_connect
functions[] = mysqli_connect_errno
functions[] = mysqli_connect_error
functions[] = mysqli_data_seek
functions[] = mysqli_dump_debug_info
functions[] = mysqli_debug
functions[] = mysqli_errno
functions[] = mysqli_error
functions[] = mysqli_stmt_execute
functions[] = mysqli_execute
functions[] = mysqli_fetch_field
functions[] = mysqli_fetch_fields
functions[] = mysqli_fetch_field_direct
functions[] = mysqli_fetch_lengths
functions[] = mysqli_fetch_all
functions[] = mysqli_fetch_array
functions[] = mysqli_fetch_assoc
functions[] = mysqli_fetch_object
functions[] = mysqli_fetch_row
functions[] = mysqli_field_count
functions[] = mysqli_field_seek
functions[] = mysqli_field_tell
functions[] = mysqli_free_result
functions[] = mysqli_get_cache_stats
functions[] = mysqli_get_connection_stats
functions[] = mysqli_get_client_stats
functions[] = mysqli_get_charset
functions[] = mysqli_get_client_info
functions[] = mysqli_get_client_version
functions[] = mysqli_get_host_info
functions[] = mysqli_get_proto_info
functions[] = mysqli_get_server_info
functions[] = mysqli_get_server_version
functions[] = mysqli_get_warnings
functions[] = mysqli_init
functions[] = mysqli_info
functions[] = mysqli_insert_id
functions[] = mysqli_kill
functions[] = mysqli_more_results
functions[] = mysqli_multi_query
functions[] = mysqli_next_result
functions[] = mysqli_num_fields
functions[] = mysqli_num_rows
functions[] = mysqli_options
functions[] = mysqli_ping
functions[] = mysqli_poll
functions[] = mysqli_prepare
functions[] = mysqli_report
functions[] = mysqli_query
functions[] = mysqli_real_connect
functions[] = mysqli_real_escape_string
functions[] = mysqli_real_query
functions[] = mysqli_reap_async_query
functions[] = mysqli_rollback
functions[] = mysqli_select_db
functions[] = mysqli_set_charset
functions[] = mysqli_stmt_affected_rows
functions[] = mysqli_stmt_attr_get
functions[] = mysqli_stmt_attr_set
functions[] = mysqli_stmt_bind_param
functions[] = mysqli_stmt_bind_result
functions[] = mysqli_stmt_close
functions[] = mysqli_stmt_data_seek
functions[] = mysqli_stmt_errno
functions[] = mysqli_stmt_error
functions[] = mysqli_stmt_fetch
functions[] = mysqli_stmt_field_count
functions[] = mysqli_stmt_free_result
functions[] = mysqli_stmt_get_result
functions[] = mysqli_stmt_get_warnings
functions[] = mysqli_stmt_init
functions[] = mysqli_stmt_insert_id
functions[] = mysqli_stmt_more_results
functions[] = mysqli_stmt_next_result
functions[] = mysqli_stmt_num_rows
functions[] = mysqli_stmt_param_count
functions[] = mysqli_stmt_prepare
functions[] = mysqli_stmt_reset
functions[] = mysqli_stmt_result_metadata
functions[] = mysqli_stmt_send_long_data
functions[] = mysqli_stmt_store_result
functions[] = mysqli_stmt_sqlstate
functions[] = mysqli_sqlstate
functions[] = mysqli_ssl_set
functions[] = mysqli_stat
functions[] = mysqli_store_result
functions[] = mysqli_thread_id
functions[] = mysqli_thread_safe
functions[] = mysqli_use_result
functions[] = mysqli_warning_count
functions[] = mysqli_refresh
functions[] = mysqli_bind_param
functions[] = mysqli_bind_result
functions[] = mysqli_client_encoding
functions[] = mysqli_escape_string
functions[] = mysqli_fetch
functions[] = mysqli_param_count
functions[] = mysqli_get_metadata
functions[] = mysqli_send_long_data
functions[] = mysqli_set_opt

constants[] = 'MYSQLI_READ_DEFAULT_GROUP';
constants[] = 'MYSQLI_READ_DEFAULT_FILE';
constants[] = 'MYSQLI_OPT_CONNECT_TIMEOUT';
constants[] = 'MYSQLI_OPT_LOCAL_INFILE';
constants[] = 'MYSQLI_INIT_COMMAND';
constants[] = 'MYSQLI_OPT_NET_CMD_BUFFER_SIZE';
constants[] = 'MYSQLI_OPT_NET_READ_BUFFER_SIZE';
constants[] = 'MYSQLI_OPT_INT_AND_FLOAT_NATIVE';
constants[] = 'MYSQLI_OPT_SSL_VERIFY_SERVER_CERT';
constants[] = 'MYSQLI_CLIENT_SSL';
constants[] = 'MYSQLI_CLIENT_COMPRESS';
constants[] = 'MYSQLI_CLIENT_INTERACTIVE';
constants[] = 'MYSQLI_CLIENT_IGNORE_SPACE';
constants[] = 'MYSQLI_CLIENT_NO_SCHEMA';
constants[] = 'MYSQLI_CLIENT_FOUND_ROWS';
constants[] = 'MYSQLI_STORE_RESULT';
constants[] = 'MYSQLI_USE_RESULT';
constants[] = 'MYSQLI_ASYNC';
constants[] = 'MYSQLI_ASSOC';
constants[] = 'MYSQLI_NUM';
constants[] = 'MYSQLI_BOTH';
constants[] = 'MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH';
constants[] = 'MYSQLI_STMT_ATTR_CURSOR_TYPE';
constants[] = 'MYSQLI_CURSOR_TYPE_NO_CURSOR';
constants[] = 'MYSQLI_CURSOR_TYPE_READ_ONLY';
constants[] = 'MYSQLI_CURSOR_TYPE_FOR_UPDATE';
constants[] = 'MYSQLI_CURSOR_TYPE_SCROLLABLE';
constants[] = 'MYSQLI_STMT_ATTR_PREFETCH_ROWS';
constants[] = 'MYSQLI_NOT_NULL_FLAG';
constants[] = 'MYSQLI_PRI_KEY_FLAG';
constants[] = 'MYSQLI_UNIQUE_KEY_FLAG';
constants[] = 'MYSQLI_MULTIPLE_KEY_FLAG';
constants[] = 'MYSQLI_BLOB_FLAG';
constants[] = 'MYSQLI_UNSIGNED_FLAG';
constants[] = 'MYSQLI_ZEROFILL_FLAG';
constants[] = 'MYSQLI_AUTO_INCREMENT_FLAG';
constants[] = 'MYSQLI_TIMESTAMP_FLAG';
constants[] = 'MYSQLI_SET_FLAG';
constants[] = 'MYSQLI_NUM_FLAG';
constants[] = 'MYSQLI_PART_KEY_FLAG';
constants[] = 'MYSQLI_GROUP_FLAG';
constants[] = 'MYSQLI_ENUM_FLAG';
constants[] = 'MYSQLI_BINARY_FLAG';
constants[] = 'MYSQLI_NO_DEFAULT_VALUE_FLAG';
constants[] = 'MYSQLI_ON_UPDATE_NOW_FLAG';
constants[] = 'MYSQLI_TYPE_DECIMAL';
constants[] = 'MYSQLI_TYPE_TINY';
constants[] = 'MYSQLI_TYPE_SHORT';
constants[] = 'MYSQLI_TYPE_LONG';
constants[] = 'MYSQLI_TYPE_FLOAT';
constants[] = 'MYSQLI_TYPE_DOUBLE';
constants[] = 'MYSQLI_TYPE_NULL';
constants[] = 'MYSQLI_TYPE_TIMESTAMP';
constants[] = 'MYSQLI_TYPE_LONGLONG';
constants[] = 'MYSQLI_TYPE_INT24';
constants[] = 'MYSQLI_TYPE_DATE';
constants[] = 'MYSQLI_TYPE_TIME';
constants[] = 'MYSQLI_TYPE_DATETIME';
constants[] = 'MYSQLI_TYPE_YEAR';
constants[] = 'MYSQLI_TYPE_NEWDATE';
constants[] = 'MYSQLI_TYPE_ENUM';
constants[] = 'MYSQLI_TYPE_SET';
constants[] = 'MYSQLI_TYPE_TINY_BLOB';
constants[] = 'MYSQLI_TYPE_MEDIUM_BLOB';
constants[] = 'MYSQLI_TYPE_LONG_BLOB';
constants[] = 'MYSQLI_TYPE_BLOB';
constants[] = 'MYSQLI_TYPE_VAR_STRING';
constants[] = 'MYSQLI_TYPE_STRING';
constants[] = 'MYSQLI_TYPE_CHAR';
constants[] = 'MYSQLI_TYPE_INTERVAL';
constants[] = 'MYSQLI_TYPE_GEOMETRY';
constants[] = 'MYSQLI_TYPE_NEWDECIMAL';
constants[] = 'MYSQLI_TYPE_BIT';
constants[] = 'MYSQLI_SET_CHARSET_NAME';
constants[] = 'MYSQLI_SET_CHARSET_DIR';
constants[] = 'MYSQLI_NO_DATA';
constants[] = 'MYSQLI_DATA_TRUNCATED';
constants[] = 'MYSQLI_REPORT_INDEX';
constants[] = 'MYSQLI_REPORT_ERROR';
constants[] = 'MYSQLI_REPORT_STRICT';
constants[] = 'MYSQLI_REPORT_ALL';
constants[] = 'MYSQLI_REPORT_OFF';
constants[] = 'MYSQLI_DEBUG_TRACE_ENABLED';
constants[] = 'MYSQLI_SERVER_QUERY_NO_GOOD_INDEX_USED';
constants[] = 'MYSQLI_SERVER_QUERY_NO_INDEX_USED';
constants[] = 'MYSQLI_SERVER_QUERY_WAS_SLOW';
constants[] = 'MYSQLI_SERVER_PS_OUT_PARAMS';
constants[] = 'MYSQLI_REFRESH_GRANT';
constants[] = 'MYSQLI_REFRESH_LOG';
constants[] = 'MYSQLI_REFRESH_TABLES';
constants[] = 'MYSQLI_REFRESH_HOSTS';
constants[] = 'MYSQLI_REFRESH_STATUS';
constants[] = 'MYSQLI_REFRESH_THREADS';
constants[] = 'MYSQLI_REFRESH_SLAVE';
constants[] = 'MYSQLI_REFRESH_MASTER';
constants[] = 'MYSQLI_REFRESH_BACKUP_LOG';
constants[] = 'MYSQLI_SERVER_PUBLIC_KEY';

classes[] = mysqli_sql_exception
classes[] = mysqli_driver
classes[] = mysqli
classes[] = mysqli_warning
classes[] = mysqli_result
classes[] = mysqli_stmt

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = "sodium_bin2hex";
functions[] = "sodium_compare";
functions[] = "sodium_crypto_aead_chacha20poly1305_decrypt";
functions[] = "sodium_crypto_aead_chacha20poly1305_encrypt";
functions[] = "sodium_crypto_aead_chacha20poly1305_ietf_decrypt";
functions[] = "sodium_crypto_aead_chacha20poly1305_ietf_encrypt";
functions[] = "sodium_crypto_aead_aes256gcm_decrypt";
functions[] = "sodium_crypto_aead_aes256gcm_encrypt";
functions[] = "sodium_crypto_aead_aes256gcm_is_available";
functions[] = "sodium_crypto_auth";
functions[] = "sodium_crypto_auth_verify";
functions[] = "sodium_crypto_box";
functions[] = "sodium_crypto_box_keypair";
functions[] = "sodium_crypto_box_keypair_from_secretkey_and_publickey";
functions[] = "sodium_crypto_box_open";
functions[] = "sodium_crypto_box_publickey";
functions[] = "sodium_crypto_box_publickey_from_secretkey";
functions[] = "sodium_crypto_box_seal";
functions[] = "sodium_crypto_box_seal_open";
functions[] = "sodium_crypto_box_seed_keypair";
functions[] = "sodium_crypto_box_secretkey";
functions[] = "sodium_crypto_kx";
functions[] = "sodium_crypto_generichash";
functions[] = "sodium_crypto_generichash_init";
functions[] = "sodium_crypto_generichash_update";
functions[] = "sodium_crypto_generichash_final";
functions[] = "sodium_crypto_pwhash";
functions[] = "sodium_crypto_pwhash_str";
functions[] = "sodium_crypto_pwhash_str_verify";
functions[] = "sodium_crypto_pwhash_scryptsalsa208sha256";
functions[] = "sodium_crypto_pwhash_scryptsalsa208sha256_str";
functions[] = "sodium_crypto_pwhash_scryptsalsa208sha256_str_verify";
functions[] = "sodium_crypto_scalarmult";
functions[] = "sodium_crypto_scalarmult_base";
functions[] = "sodium_crypto_secretbox";
functions[] = "sodium_crypto_secretbox_open";
functions[] = "sodium_crypto_shorthash";
functions[] = "sodium_crypto_sign";
functions[] = "sodium_crypto_sign_detached";
functions[] = "sodium_crypto_sign_ed25519_sk_to_curve25519";
functions[] = "sodium_crypto_sign_ed25519_pk_to_curve25519";
functions[] = "sodium_crypto_sign_keypair";
functions[] = "sodium_crypto_sign_keypair_from_secretkey_and_publickey";
functions[] = "sodium_crypto_sign_open";
functions[] = "sodium_crypto_sign_publickey";
functions[] = "sodium_crypto_sign_secretkey";
functions[] = "sodium_crypto_sign_seed_keypair";
functions[] = "sodium_crypto_sign_verify_detached";
functions[] = "sodium_crypto_stream";
functions[] = "sodium_crypto_stream_xor";
functions[] = "sodium_randombytes_buf";
functions[] = "sodium_randombytes_random16";
functions[] = "sodium_randombytes_uniform";
functions[] = "sodium_hex2bin";
functions[] = "sodium_increment";
functions[] = "sodium_library_version_major";
functions[] = "sodium_library_version_minor";
functions[] = "sodium_memcmp";
functions[] = "sodium_memzero";
functions[] = "sodium_version_string";

constants[] = "SODIUM_CRYPTO_AEAD_AES256GCM_KEYBYTES";
constants[] = "SODIUM_CRYPTO_AEAD_AES256GCM_NSECBYTES";
constants[] = "SODIUM_CRYPTO_AEAD_AES256GCM_NPUBBYTES";
constants[] = "SODIUM_CRYPTO_AEAD_AES256GCM_ABYTES";
constants[] = "SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_KEYBYTES";
constants[] = "SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_NSECBYTES";
constants[] = "SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_NPUBBYTES";
constants[] = "SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_ABYTES";
constants[] = "SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_KEYBYTES";
constants[] = "SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_NSECBYTES";
constants[] = "SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_NPUBBYTES";
constants[] = "SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_ABYTES";
constants[] = "SODIUM_CRYPTO_AUTH_BYTES";
constants[] = "SODIUM_CRYPTO_AUTH_KEYBYTES";
constants[] = "SODIUM_CRYPTO_BOX_SEALBYTES";
constants[] = "SODIUM_CRYPTO_BOX_SECRETKEYBYTES";
constants[] = "SODIUM_CRYPTO_BOX_PUBLICKEYBYTES";
constants[] = "SODIUM_CRYPTO_BOX_KEYPAIRBYTES";
constants[] = "SODIUM_CRYPTO_BOX_MACBYTES";
constants[] = "SODIUM_CRYPTO_BOX_NONCEBYTES";
constants[] = "SODIUM_CRYPTO_BOX_SEEDBYTES";
constants[] = "SODIUM_CRYPTO_KX_BYTES";
constants[] = "SODIUM_CRYPTO_KX_PUBLICKEYBYTES";
constants[] = "SODIUM_CRYPTO_KX_SECRETKEYBYTES";
constants[] = "SODIUM_CRYPTO_GENERICHASH_BYTES";
constants[] = "SODIUM_CRYPTO_GENERICHASH_BYTES_MIN";
constants[] = "SODIUM_CRYPTO_GENERICHASH_BYTES_MAX";
constants[] = "SODIUM_CRYPTO_GENERICHASH_KEYBYTES";
constants[] = "SODIUM_CRYPTO_GENERICHASH_KEYBYTES_MIN";
constants[] = "SODIUM_CRYPTO_GENERICHASH_KEYBYTES_MAX";
constants[] = "SODIUM_CRYPTO_PWHASH_SALTBYTES";
constants[] = "SODIUM_CRYPTO_PWHASH_STRPREFIX	$ARGON2I$";
constants[] = "SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE";
constants[] = "SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE";
constants[] = "SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE";
constants[] = "SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATE";
constants[] = "SODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE";
constants[] = "SODIUM_CRYPTO_PWHASH_MEMLIMIT_SENSITIVE";
constants[] = "SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_SALTBYTES";
constants[] = "SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_STRPREFIX";
constants[] = "SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_INTERACTIVE";
constants[] = "SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_INTERACTIVE";
constants[] = "SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_SENSITIVE";
constants[] = "SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_SENSITIVE";
constants[] = "SODIUM_CRYPTO_SCALARMULT_BYTES";
constants[] = "SODIUM_CRYPTO_SCALARMULT_SCALARBYTES";
constants[] = "SODIUM_CRYPTO_SHORTHASH_BYTES";
constants[] = "SODIUM_CRYPTO_SHORTHASH_KEYBYTES";
constants[] = "SODIUM_CRYPTO_SECRETBOX_KEYBYTES";
constants[] = "SODIUM_CRYPTO_SECRETBOX_MACBYTES";
constants[] = "SODIUM_CRYPTO_SECRETBOX_NONCEBYTES";
constants[] = "SODIUM_CRYPTO_SIGN_BYTES";
constants[] = "SODIUM_CRYPTO_SIGN_SEEDBYTES";
constants[] = "SODIUM_CRYPTO_SIGN_PUBLICKEYBYTES";
constants[] = "SODIUM_CRYPTO_SIGN_SECRETKEYBYTES";
constants[] = "SODIUM_CRYPTO_SIGN_KEYPAIRBYTES";
constants[] = "SODIUM_CRYPTO_STREAM_KEYBYTES";
constants[] = "SODIUM_CRYPTO_STREAM_NONCEBYTES";

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = 

constants[] = 

classes[] = "Parle\\ErrorInfo";
classes[] = "Parle\\Token";
classes[] = "Parle\\Lexer";
classes[] = "Parle\\RLexer";
classes[] = "Parle\\Parser";
classes[] = "Parle\\Stack";
classes[] = "Parle\\LexerException";
classes[] = "Parle\\ParserException";
classes[] = "Parle\\StackException";

interfaces[] = 

traits[] = 

namespaces[] = 'Parle';

directives[] = 

variables[] = '$_GET';
variables[] = '$_POST';
variables[] = '$_REQUEST';
variables[] = '$_COOKIE';
variables[] = '$_FILES';
functions[] = com_create_guid
functions[] = com_event_sink
functions[] = com_get_active_object
functions[] = com_load_typelib
functions[] = com_message_pump
functions[] = com_print_typeinfo
functions[] = variant_abs
functions[] = variant_add
functions[] = variant_and
functions[] = variant_cast
functions[] = variant_cat
functions[] = variant_cmp
functions[] = variant_date_from_timestamp
functions[] = variant_date_to_timestamp
functions[] = variant_div
functions[] = variant_eqv
functions[] = variant_fix
functions[] = variant_get_type
functions[] = variant_idiv
functions[] = variant_imp
functions[] = variant_int
functions[] = variant_mod
functions[] = variant_mul
functions[] = variant_neg
functions[] = variant_not
functions[] = variant_or
functions[] = variant_pow
functions[] = variant_round
functions[] = variant_set_type
functions[] = variant_set
functions[] = variant_sub
functions[] = variant_xor

constants[] = 'CLSCTX_INPROC_SERVER';
constants[] = 'CLSCTX_INPROC_HANDLER';
constants[] = 'CLSCTX_LOCAL_SERVER';
constants[] = 'CLSCTX_REMOTE_SERVER';
constants[] = 'CLSCTX_SERVER';
constants[] = 'CLSCTX_ALL';
constants[] = 'VT_NULL';
constants[] = 'VT_EMPTY';
constants[] = 'VT_UI1';
constants[] = 'VT_I2';
constants[] = 'VT_I4';
constants[] = 'VT_R4';
constants[] = 'VT_R8';
constants[] = 'VT_BOOL';
constants[] = 'VT_ERROR';
constants[] = 'VT_CY';
constants[] = 'VT_DATE';
constants[] = 'VT_BSTR';
constants[] = 'VT_DECIMAL';
constants[] = 'VT_UNKNOWN';
constants[] = 'VT_DISPATCH';
constants[] = 'VT_VARIANT';
constants[] = 'VT_I1';
constants[] = 'VT_UI2';
constants[] = 'VT_UI4';
constants[] = 'VT_INT';
constants[] = 'VT_UINT';
constants[] = 'VT_ARRAY';
constants[] = 'VT_BYREF';
constants[] = 'CP_ACP';
constants[] = 'CP_MACCP';
constants[] = 'CP_OEMCP';
constants[] = 'CP_UTF7';
constants[] = 'CP_UTF8';
constants[] = 'CP_SYMBOL';
constants[] = 'CP_THREAD_ACP';
constants[] = 'VARCMP_LT';
constants[] = 'VARCMP_EQ';
constants[] = 'VARCMP_GT';
constants[] = 'VARCMP_NULL';
constants[] = 'NORM_IGNORECASE';
constants[] = 'NORM_IGNORENONSPACE';
constants[] = 'NORM_IGNORESYMBOLS';
constants[] = 'NORM_IGNOREWIDTH';
constants[] = 'NORM_IGNOREKANATYPE';
constants[] = 'NORM_IGNOREKASHIDA';
constants[] = 'DISP_E_DIVBYZERO';
constants[] = 'DISP_E_OVERFLOW';
constants[] = 'MK_E_UNAVAILABLE';

classes[] = DotNet
classes[] = Variant
classes[] = Com

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = tmpfile
functions[] = opendir
functions[] = fopen
functions[] = pspell_new
functions[] = pspell_config_create
functions[] = pspell_new_config
functions[] = pspell_new_personal
functions[] = bz_open
functions[] = ftp_connect
functions[] = ftp_ssl_connect
functions[] = popen
functions[] = fsockopen
functions[] = pfsockopen
functions[] = sem_get
functions[] = shm_attach
functions[] = shmop_open
functions[] = gzopen
functions[] = xml_parser_create
functions[] = xml_parser_create_ns
functions[] = wddx_packet_start

; below, extensions are not checked in resource_usage.json 
functions[] = curl_copy_handle
functions[] = curl_init
functions[] = pg_connect
functions[] = pg_execute
functions[] = pg_get_result
functions[] = pg_lo_open
functions[] = pg_pconnect
functions[] = pg_query_params
functions[] = pg_query
functions[] = imagecreate
functions[] = imagecreatefromgd
functions[] = imagecreatefromgd2
functions[] = imagecreatefromgd2part
functions[] = imagecreatefromgif
functions[] = imagecreatefromjpeg
functions[] = imagecreatefrompng
functions[] = imagecreatefromstring
functions[] = imagecreatefromwbmp
functions[] = imagecreatefromxbm
functions[] = imagecreatefromxpm
functions[] = imagecreatetruecolor
functions[] = imageloadfont
functions[] = imagepsloadfont
functions[] = imagerotate

functions[] = cubrid_connect_with_url
functions[] = cubrid_connect
functions[] = cubrid_execute
functions[] = cubrid_fetch_array
functions[] = cubrid_fetch_assoc
functions[] = cubrid_fetch_object
functions[] = cubrid_fetch_row
functions[] = cubrid_fetch
functions[] = cubrid_lob_get
functions[] = cubrid_lob2_new
functions[] = cubrid_pconnect_with_url
functions[] = cubrid_pconnect
functions[] = cubrid_prepare
functions[] = cubrid_query
functions[] = cubrid_unbuffered_query
functions[] = dba_popen
functions[] = dbmopen
functions[] = dbx_connect
functions[] = dbx_query
functions[] = fbsql_change_user
functions[] = fbsql_connect
functions[] = fbsql_db_query
functions[] = fbsql_list_dbs
functions[] = fbsql_list_fields
functions[] = fbsql_list_tables
functions[] = fbsql_pconnect
functions[] = fbsql_query
functions[] = fbsql_tablename
functions[] = fdf_open
functions[] = ibase_connect
functions[] = ibase_pconnect
functions[] = ibase_prepare
functions[] = ibase_query
functions[] = ibase_trans
functions[] = icap_open
functions[] = imap_open
functions[] = ingres_connect
functions[] = ingres_pconnect
functions[] = ldap_connect
functions[] = ldap_read
functions[] = ldap_search
functions[] = mcal_open
functions[] = mcal_popen
functions[] = oci_connect
functions[] = oci_new_collection
functions[] = oci_new_connect
functions[] = oci_new_cursor
functions[] = oci_new_descriptor
functions[] = oci_parse
functions[] = oci_pconnect
functions[] = odbc_connect
functions[] = odbc_pconnect
functions[] = odbc_prepare
functions[] = openssl_get_privatekey
functions[] = openssl_get_publickey
functions[] = openssl_x509_read
functions[] = pdf_new
functions[] = pdf_open_image_file
functions[] = pdf_open_image
functions[] = pdf_open_memory_image
functions[] = sybase_connect
functions[] = sybase_pconnect
functions[] = sybase_query
functions[] = sybase_unbuffered_query

;dead extensions
;functions[] = cpdf_open
;functions[] = xslt_create
;functions[] = mysql_connect
;functions[] = mysql_db_query
;functions[] = mysql_list_dbs
;functions[] = mysql_list_fields
;functions[] = mysql_list_processes
;functions[] = mysql_list_tables
;functions[] = mysql_pconnect
;functions[] = mysql_query
;functions[] = mysql_unbuffered_query
;functions[] = msql_connect
;functions[] = msql_db_query
;functions[] = msql_list_dbs
;functions[] = msql_list_fields
;functions[] = msql_list_tables
;functions[] = msql_pconnect
;functions[] = msql_query
;functions[] = mssql_connect
;functions[] = mssql_pconnect
;functions[] = mssql_query

constants[] = 

classes[] = 

interfaces[] = 

traits[] = 

directives[] = 

namespaces[] = 

directives[] = 

port[20] = 'File Transfer Protocol (FTP)';
port[21] = 'File Transfer Protocol (FTP)';
port[22] = 'Secure Shell (SSH)';
port[23] = 'Telnet remote login service';
port[25] = 'Simple Mail Transfer Protocol (SMTP)';
port[53] = 'Domain Name System (DNS) service';
port[80] = 'Hypertext Transfer Protocol (HTTP) used in the World Wide Web';
port[81] = 'Hypertext Transfer Protocol (HTTP) used in the World Wide Web';
port[110] = 'Post Office Protocol (POP3)';
port[119] = 'Network News Transfer Protocol (NNTP)';
port[143] = 'Internet Message Access Protocol (IMAP)';
port[161] = 'Simple Network Management Protocol (SNMP)';
port[162] = 'Simple Network Management Protocol (SNMP)';
port[194] = 'Internet Relay Chat (IRC)';
port[389] = 'LDAP';
port[443] = 'HTTP Secure (HTTPS)';
port[465] = 'SMTP Secure (SMTPS)';
port[1433] = 'Microsoft SQL Server';
port[1434] = 'Microsoft SQL Server';
port[1521] = 'Oracle SQL';
port[1522] = 'Oracle SQL';
port[1525] = 'Oracle SQL';
port[1529] = 'Oracle SQL';
port[1819] = 'Radius';
port[1978] = 'Tokyo Tyrant';
port[2082] = 'Cpanel default port';
port[2083] = 'Cpanel over SSL';
port[2086] = 'Cpanel Webhost Manager (default)';
port[2087] = 'Cpanel Webhost Manager (with https)';
port[2095] = 'Cpanel Webmail';
port[2096] = 'Cpanel secure webmail over SSL';
port[2222] = 'DirectAdmin Server Control Panel';
port[2181] = 'HBase';
port[2424] = 'OrientDB';
port[3306] = 'MySQL';
port[4643] = 'Virtuosso Power Panel';
port[4730] = 'Gearman';
port[7000] = 'Cassandra';
port[7001] = 'Cassandra (over SSL)';
port[7003] = 'Gearman';
port[5432] = 'PostgreSQL';
port[5984] = 'CouchDB';
port[5672] = 'RabbitMQ';
port[7373] = 'Neo4j';
port[6379] = 'Redis';
port[8080] = 'Hypertext Transfer Protocol (HTTP) used in the World Wide Web';
port[8087] = 'Riak';
port[8182] = 'Gremlin server';
port[9000] = 'Ovrimos';
port[9999] = 'Urchin Web Analytics';
port[10000] = 'Webmin Server Control Panel';
port[11211] = 'Memcache';
port[27017] = 'Mongodb';
port[27018] = 'Mongodb';
port[21212] = 'VoltDB';
port[33000] = 'CUBRID';
port[38030] = 'Hypertable';
port[50000] = 'IBM db2';
functions[] = yaml_emit_file
functions[] = yaml_emit
functions[] = yaml_parse_file
functions[] = yaml_parse_url
functions[] = yaml_parse 

constants[] = 'YAML_ANY_BREAK';
constants[] = 'YAML_ANY_ENCODING';
constants[] = 'YAML_ANY_SCALAR_STYLE';
constants[] = 'YAML_BOOL_TAG';
constants[] = 'YAML_CR_BREAK';
constants[] = 'YAML_CRLN_BREAK';
constants[] = 'YAML_DOUBLE_QUOTED_SCALAR_STYLE';
constants[] = 'YAML_FLOAT_TAG';
constants[] = 'YAML_FOLDED_SCALAR_STYLE';
constants[] = 'YAML_INT_TAG';
constants[] = 'YAML_LITERAL_SCALAR_STYLE';
constants[] = 'YAML_LN_BREAK';
constants[] = 'YAML_MAP_TAG';
constants[] = 'YAML_NULL_TAG';
constants[] = 'YAML_PHP_TAG';
constants[] = 'YAML_PLAIN_SCALAR_STYLE';
constants[] = 'YAML_SEQ_TAG';
constants[] = 'YAML_SINGLE_QUOTED_SCALAR_STYLE';
constants[] = 'YAML_STR_TAG';
constants[] = 'YAML_TIMESTAMP_TAG';
constants[] = 'YAML_UTF8_ENCODING';
constants[] = 'YAML_UTF16BE_ENCODING';
constants[] = 'YAML_UTF16LE_ENCODING';

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

ext[] = bcmath
ext[] = bzip2
ext[] = calendar
ext[] = com
ext[] = ctype
ext[] = curl
ext[] = date
ext[] = dba
ext[] = dom
ext[] = enchant
ext[] = ereg
ext[] = exif
ext[] = fileinfo
ext[] = filter
ext[] = ftp
ext[] = gd
ext[] = gettext
ext[] = gmp
ext[] = hash
ext[] = iconv
ext[] = imap
ext[] = ibase
ext[] = intl
ext[] = json
ext[] = ldap
ext[] = libxml
ext[] = mbstring
ext[] = mcrypt
ext[] = mssql
ext[] = mysql
ext[] = mysqli
;ext[] = mysqlnd
ext[] = oci8
ext[] = odbc
ext[] = openssl
ext[] = pcntl
ext[] = pcre
ext[] = pdo
;ext[] = pdo_dblib
;ext[] = pdo_firebird
;ext[] = pdo_mysql
;ext[] = pdo_oci
;ext[] = pdo_odbc
;ext[] = pdo_pgsql
;ext[] = pdo_sqlite
ext[] = pgsql
ext[] = phar
ext[] = posix
ext[] = pspell
ext[] = readline
ext[] = recode
ext[] = reflection
ext[] = session
ext[] = shmop
ext[] = simplexml
ext[] = snmp
ext[] = soap
ext[] = sockets
ext[] = spl
ext[] = sqlite
ext[] = sqlite3
ext[] = standard
;ext[] = sybase_ct
;ext[] = sysvmsg
ext[] = sem
ext[] = shmop
ext[] = tidy
ext[] = tokenizer
ext[] = wddx
ext[] = xml
ext[] = xmlreader
ext[] = xmlrpc
ext[] = xmlwriter
ext[] = xsl
ext[] = zip
ext[] = zlib
names[] = 'Aaron'; # Bannert
names[] = 'Adam'; # Culp, Englander, Harvey, Wathan
names[] = 'Adrien'; #Gallou
names[] = 'Alessandro'; # Feitoza
names[] = 'Alex'; # Leigh, Plotnick, Schoenmaker, Waugh
names[] = 'Alexis'; # Van Glasow
names[] = 'Amanda'; # McNulty
names[] = 'Amitay'; # Isaacs
names[] = 'Anatol'; # Belski
names[] = 'Andi'; # Gutmans
names[] = 'Andreas'; # Heigl, Karajannis
names[] = 'Andrei'; # Nigmatulin, Zmievski
names[] = 'Andrew'; # Avdeev, Skalski
names[] = 'Andrey'; # Hristov
names[] = 'Andy'; # Sautins
names[] = 'Anna'; # Filina
names[] = 'Anthony'; #Maison
names[] = 'Antoni'; # Pamies Olive
names[] = 'Antony'; # Dovgal
names[] = 'Ard'; # Biesheuvel
names[] = 'Armel'; #Fauveau
names[] = 'Arnaud'; # Gadal, Le Blanc, Limbourg
names[] = 'Arne'; # Blankert
names[] = 'Bastian'; # Hofmann
names[] = 'Ben'; # Marks, Ramsey
names[] = 'Benjamin'; # Cremer, Eberlei
names[] = 'Bernhard'; # Breytenbach
names[] = 'Bob'; # Weinand
names[] = 'Boris'; # Lytochkin
names[] = 'Brad'; # Dewar, Lafountain
names[] = 'Brandon'; # Savage
names[] = 'Brian'; # Wang
names[] = 'Bruno'; # Skvorc
names[] = 'Cal'; # Evans
names[] = 'Cess-Jan'; # Kiewiet
names[] = 'Charlotte'; # Dumartin
names[] = 'Chris'; # Cornut, Hartje, Kings-Lynne, Riley, Tankerslay, Vandomelen
names[] = 'Christian'; # Cartus, Stocker
names[] = 'Christophe'; #Villeneuve
names[] = 'Christopher'; # Jones, Pitt
names[] = 'Chuck'; # Hagenbuch
names[] = 'Ciaran'; # Folson
names[] = 'Colin'; # O'Dell, Viebrock
names[] = 'Craig'; # McCreath
names[] = 'Cyril'; #Pascal
names[] = 'Cyrille'; #Grandval
names[] = 'Damian'; # Turner
names[] = 'Damien'; # Seguy
names[] = 'Dan'; # Libby
names[] = 'Daniel'; # Beulshausen, P. Brown, R Kalowsky
names[] = 'Davey'; # Shafik, Stokes
names[] = 'David'; # Benson, Hedbor, McKay, Negrier, Sklar, Soria Parra
names[] = 'Dennis'; # de Greef
names[] = 'Derick'; # Rethans
names[] = 'Dmitry'; # Lakhtyuk, Stogov
names[] = 'Dustin'; # Younse, Whittle
names[] = 'Ed'; # Barnard, Batutis
names[] = 'Edin'; # Kadribasic
names[] = 'Eli'; # White
names[] = 'Elizabeth'; # Baron, Marie Smith, Zagroba
names[] = 'Emily'; # Stamey
names[] = 'Enrico'; # Zimuel
names[] = 'Eric'; # Warnke
names[] = 'Erika'; # Heidi
names[] = 'Etienne'; # Kneuss
names[] = 'Fabien'; # Potencier, Villepinte
names[] = 'Felipe'; # Pena
names[] = 'Ferenc'; # Kovacs
names[] = 'Flavien'; # Metivier
names[] = 'Florian'; #Ferrière
names[] = 'Frank'; # de Jonge, M. Kromann
names[] = 'Frederic'; #Bouchery, Hardy
names[] = 'Friedhelm'; # Betz
names[] = 'Gabriela'; # d'Avila Ferrara
names[] = 'Gabriele'; # Santini, Somoza
names[] = 'Gary'; # Hockin
names[] = 'Geoffrey'; #Bachelet
names[] = 'Georg'; # Richter
names[] = 'George'; # Schlossnagle, Wang
names[] = 'Georgiana'; # Gligor
names[] = 'Gerrit'; # Thomson
names[] = 'Gregory'; # Beaver
names[] = 'Hamza'; #Amrouche.
names[] = 'Hannes'; # Magnusson
names[] = 'Hans-Christian'; # Otto
names[] = 'Harald'; # Radi
names[] = 'Harrie'; # Hazewinkel
names[] = 'Hartmut'; # Holzgraefe
names[] = 'Hayden'; # Chudy
names[] = 'Heather'; # White
names[] = 'Holger'; # Zimmermann
names[] = 'Hugo'; # Hamon
names[] = 'Hugues'; # Peccatte
names[] = 'Ian'; # Holsman, Littman
names[] = 'Ilia'; # Alshanetsky
names[] = 'Jaakko'; # Hyvätti
names[] = 'Jacques'; #Bodin-Hullin
names[] = 'Jade'; # Nicoletti
names[] = 'Jakub'; # Vrana, Zalas
names[] = 'James'; # Titcumb
names[] = 'Jani'; # Taskinen
names[] = 'Jason'; # Greene, Sweat, McCreary
names[] = 'Jasper'; # Brouwer
names[] = 'Jayakumar'; # Muthukumarasamy
names[] = 'Jean-Francois'; # Lepine
names[] = 'Jerome'; # Loyet
names[] = 'Jim'; # Winstead
names[] = 'Joe'; # Ferguson, Watkins
names[] = 'Joël'; #Wurtz
names[] = 'Joerg'; # Behrens
names[] = 'Johann'; # Hanne
names[] = 'Johannes'; # Dahse, Schlüter
names[] = 'John'; # Coggeshall, Stokes
names[] = 'Jonathan'; # Van Belle, Wage
names[] = 'Jordi'; # Boggiano
names[] = 'Josh'; # Holmes, Lockhart
names[] = 'Joshua'; # Thijssen
names[] = 'Jouni'; # Ahto
names[] = 'Julien'; # Pauli
names[] = 'Juliette'; #Reinders Folmer
names[] = 'Julka'; # Grodel
names[] = 'Justin'; # Erenkrantz
names[] = 'Kaj-Michael'; # Lang
names[] = 'Kalle'; # Sommer Nielsen
names[] = 'Keith'; # Casey
names[] = 'Kevin'; # Bruce, Dunglas, Gomez
names[] = 'Kirti'; # Velankar
names[] = 'Kore'; # Nordmann
names[] = 'Kristian'; # Koehntopp
names[] = 'Larry'; # Garfield
names[] = 'Laura'; # Thomson
names[] = 'Laurence'; #Hoizey
names[] = 'Levi'; # Morrison
names[] = 'Lorna'; # Mitchell
names[] = 'Louis-Philippe'; # Huberdeau
names[] = 'Lukas'; # Kahwe Smith, Schroeder
names[] = 'Magnus'; # Maatta
names[] = 'Manuel'; # Lemos
names[] = 'Marc'; # Delisle
names[] = 'Marco'; # Kaiser, Pivetta, Tabini
names[] = 'Marcus'; # Boerger
names[] = 'Mariusz'; # Gil
names[] = 'Mark'; # Baker, Musone
names[] = 'Martin'; # Legris
names[] = 'Matteo'; # Beccati
names[] = 'Matthew'; # Frost, O’Phinney
names[] = 'Matthieu'; # Napoli
names[] = 'Maxim'; # Maletsky
names[] = 'Maxime'; #Teneur
names[] = 'Mehdi'; # Achour
names[] = 'Melvyn'; # Sopacua
names[] = 'Michael'; # Cheng, Cullum, Heap, Wallner
names[] = 'Michaelangelo'; # Van Dam
names[] = 'Michal'; # Spacek
names[] = 'Michelle'; # Sanver
names[] = 'Mickaël'; #Perraud
names[] = 'Mike'; # Jackson
names[] = 'Mitchel'; # Verschoof
names[] = 'Module'; # Authors
names[] = 'Morgane'; #Tisserant
names[] = 'Moriyoshi'; # Koizumi
names[] = 'Muriel'; #Lusseau
names[] = 'Nathan'; # Johnson
names[] = 'Nicolas'; #Silberman, Grekas
names[] = 'Nikita'; # Popov
names[] = 'Nils'; # Alderman
names[] = 'Nuno'; # Lopes
names[] = 'Olivier'; #Dolbeau, Mansour
names[] = 'Omar'; # Kilani
names[] = 'Ondrej'; # Mirtes
names[] = 'Oracle'; # Corporation
names[] = 'Oscar'; # Merida
names[] = 'Pascal'; # de Vink, Martin
names[] = 'Patrick'; # Allaert
names[] = 'Paul'; # Dragoonis, Jones
names[] = 'Perrick'; #Penet-Avez
names[] = 'Peter'; # Breuls, Cowburn, MacIntyre
names[] = 'Phil'; # Sturgeon
names[] = 'Philip'; # Olson
names[] = 'Philippe'; # Gamache
names[] = 'Pierre-Alain'; # Joye
names[] = 'Pierre'; #Tachoire
names[] = 'Rafael'; # Dohms
names[] = 'Ralph'; # Schindler
names[] = 'Ramon'; # De la Fuente
names[] = 'Rasmus'; # Lerdorf
names[] = 'Remi'; # Collet
names[] = 'Renato'; # Mefi
names[] = 'Rex'; # Logan
names[] = 'Rob'; # Allen, Richards
names[] = 'Roberto'; # Gardernier
names[] = 'Rui'; # Hirokawa
names[] = 'Sam'; # Ruby
names[] = 'Samantha'; # Quiñones
names[] = 'Sammy'; # Kaye Powers
names[] = 'Sandy'; # Smith
names[] = 'Sara'; # Golemon, Haim-Lubczanki
names[] = 'Sascha'; # Kettler, Schumann
names[] = 'Scott'; # MacVicar
names[] = 'Sean'; # Coates
names[] = 'Sebastian'; # Bergmann, Heuer, Nohn
names[] = 'Shane'; # Caraveo
names[] = 'Simon'; # Holywell
names[] = 'Slava'; # Poliakov
names[] = 'Sophie'; # Beaupuis
names[] = 'Stanislav'; # Malyshev
names[] = 'Stefan'; # Esser, Roehrich, Koopmanschap, Priebsch
names[] = 'Stephan'; # Hochdoerfer
names[] = 'Stephen'; # Zarkos
names[] = 'Sterling'; # Hughes
names[] = 'Steven'; # Cooper, Lawrance
names[] = 'Stig'; # Bakken, Venaas
names[] = 'Taylor'; # Otwell
names[] = 'Terrence'; # Ryan
names[] = 'Tessa'; # Mero
names[] = 'Theo'; # Sauls
names[] = 'Thiago'; # Henrique Pojda
names[] = 'Thierry'; #Marianne
names[] = 'Thies'; # C. Arntzen
names[] = 'Thijs'; # Feryn
names[] = 'Thomas'; # Shone
names[] = 'Timm'; # Friebe
names[] = 'Tobias'; # Schlit
names[] = 'Tom'; # May
names[] = 'Tsukada'; # Takuya
names[] = 'Ulf'; # Wendel
names[] = 'Uwe'; # Schindler
names[] = 'Uwe'; # Tews
names[] = 'Vadim'; # Savchuk
names[] = 'Vincent'; # Pontier
names[] = 'Vlad'; # Krupin
names[] = 'Vladimir'; # Iordanov, Reznichenko
names[] = 'Wasseem'; # Khayrattee
names[] = 'Wez'; # Furlong
names[] = 'William'; # Durand
names[] = 'Wim'; # Godden
names[] = 'Xavier'; #Gorse, Lacot, Lejeune
names[] = 'Xinchen'; # Hui
names[] = 'Yann'; # Larrivée
names[] = 'Yasuo'; # Ohgaki
names[] = 'Zak'; # Greant
names[] = 'Zeev'; # Suraski


adjectives[] = 'able';
adjectives[] = 'acceptable';
adjectives[] = 'according';
adjectives[] = 'accurate';
adjectives[] = 'action';
adjectives[] = 'active';
adjectives[] = 'actual';
adjectives[] = 'additional';
adjectives[] = 'administrative';
adjectives[] = 'adult';
adjectives[] = 'afraid';
adjectives[] = 'after';
adjectives[] = 'aggressive';
adjectives[] = 'ago';
adjectives[] = 'alive';
adjectives[] = 'all';
adjectives[] = 'alone';
adjectives[] = 'alternative';
adjectives[] = 'amazing';
adjectives[] = 'angry';
adjectives[] = 'animal';
adjectives[] = 'annual';
adjectives[] = 'another';
adjectives[] = 'anxious';
adjectives[] = 'apart';
adjectives[] = 'appropriate';
adjectives[] = 'asleep';
adjectives[] = 'automatic';
adjectives[] = 'available';
adjectives[] = 'aware';
adjectives[] = 'away';
adjectives[] = 'background';
adjectives[] = 'basic';
adjectives[] = 'beautiful';
adjectives[] = 'beginning';
adjectives[] = 'berserk';
adjectives[] = 'best';
adjectives[] = 'better';
adjectives[] = 'big';
adjectives[] = 'bigoted';
adjectives[] = 'bitten';
adjectives[] = 'bitter';
adjectives[] = 'boring';
adjectives[] = 'born';
adjectives[] = 'both';
adjectives[] = 'brave';
adjectives[] = 'brief';
adjectives[] = 'bright';
adjectives[] = 'brilliant';
adjectives[] = 'broad';
adjectives[] = 'brown';
adjectives[] = 'budget';
adjectives[] = 'business';
adjectives[] = 'busy';
adjectives[] = 'calm';
adjectives[] = 'capable';
adjectives[] = 'capital';
adjectives[] = 'careful';
adjectives[] = 'certain';
adjectives[] = 'chance';
adjectives[] = 'character';
adjectives[] = 'cheap';
adjectives[] = 'chemical';
adjectives[] = 'chicken';
adjectives[] = 'choice';
adjectives[] = 'civil';
adjectives[] = 'classic';
adjectives[] = 'clean';
adjectives[] = 'clear';
adjectives[] = 'close';
adjectives[] = 'cold';
adjectives[] = 'comfortable';
adjectives[] = 'commercial';
adjectives[] = 'common';
adjectives[] = 'competitive';
adjectives[] = 'complete';
adjectives[] = 'complex';
adjectives[] = 'comprehensive';
adjectives[] = 'confident';
adjectives[] = 'connect';
adjectives[] = 'conscious';
adjectives[] = 'consistent';
adjectives[] = 'constant';
adjectives[] = 'content';
adjectives[] = 'cool';
adjectives[] = 'corner';
adjectives[] = 'correct';
adjectives[] = 'corybantic';
adjectives[] = 'crazed';
adjectives[] = 'crazy';
adjectives[] = 'creative';
adjectives[] = 'critical';
adjectives[] = 'cultural';
adjectives[] = 'curious';
adjectives[] = 'current';
adjectives[] = 'cute';
adjectives[] = 'dangerous';
adjectives[] = 'dark';
adjectives[] = 'day';
adjectives[] = 'dead';
adjectives[] = 'dear';
adjectives[] = 'deathlike';
adjectives[] = 'decent';
adjectives[] = 'deep';
adjectives[] = 'delirious';
adjectives[] = 'dependent';
adjectives[] = 'deranged';
adjectives[] = 'designer';
adjectives[] = 'desperate';
adjectives[] = 'different';
adjectives[] = 'difficult';
adjectives[] = 'direct';
adjectives[] = 'dirty';
adjectives[] = 'distinct';
adjectives[] = 'double';
adjectives[] = 'downtown';
adjectives[] = 'dramatic';
adjectives[] = 'dress';
adjectives[] = 'drunk';
adjectives[] = 'dry';
adjectives[] = 'due';
adjectives[] = 'east';
adjectives[] = 'eastern';
adjectives[] = 'easy';
adjectives[] = 'economy';
adjectives[] = 'educational';
adjectives[] = 'effective';
adjectives[] = 'efficient';
adjectives[] = 'electrical';
adjectives[] = 'electronic';
adjectives[] = 'embarrassed';
adjectives[] = 'emergency';
adjectives[] = 'emotional';
adjectives[] = 'empty';
adjectives[] = 'enough';
adjectives[] = 'enthusiastic';
adjectives[] = 'entire';
adjectives[] = 'environmental';
adjectives[] = 'equal';
adjectives[] = 'equivalent';
adjectives[] = 'even';
adjectives[] = 'evening';
adjectives[] = 'exact';
adjectives[] = 'excellent';
adjectives[] = 'exciting';
adjectives[] = 'existing';
adjectives[] = 'expensive';
adjectives[] = 'expert';
adjectives[] = 'express';
adjectives[] = 'extension';
adjectives[] = 'external';
adjectives[] = 'extra';
adjectives[] = 'extreme';
adjectives[] = 'extremist';
adjectives[] = 'fair';
adjectives[] = 'false';
adjectives[] = 'familiar';
adjectives[] = 'famous';
adjectives[] = 'fanatical';
adjectives[] = 'far';
adjectives[] = 'fast';
adjectives[] = 'fat';
adjectives[] = 'federal';
adjectives[] = 'feeling';
adjectives[] = 'female';
adjectives[] = 'fervent';
adjectives[] = 'final';
adjectives[] = 'financial';
adjectives[] = 'fine';
adjectives[] = 'firm';
adjectives[] = 'first';
adjectives[] = 'fit';
adjectives[] = 'flat';
adjectives[] = 'flipped';
adjectives[] = 'foreign';
adjectives[] = 'formal';
adjectives[] = 'former';
adjectives[] = 'forward';
adjectives[] = 'frantic';
adjectives[] = 'freaked out';
adjectives[] = 'free';
adjectives[] = 'frenetic';
adjectives[] = 'frenzied';
adjectives[] = 'frequent';
adjectives[] = 'fresh';
adjectives[] = 'friendly';
adjectives[] = 'front';
adjectives[] = 'full';
adjectives[] = 'fun';
adjectives[] = 'funny';
adjectives[] = 'furious';
adjectives[] = 'future';
adjectives[] = 'game';
adjectives[] = 'general';
adjectives[] = 'glad';
adjectives[] = 'glass';
adjectives[] = 'global';
adjectives[] = 'gold';
adjectives[] = 'good';
adjectives[] = 'grand';
adjectives[] = 'great';
adjectives[] = 'green';
adjectives[] = 'gross';
adjectives[] = 'guilty';
adjectives[] = 'happy';
adjectives[] = 'hard';
adjectives[] = 'head';
adjectives[] = 'healthy';
adjectives[] = 'heavy';
adjectives[] = 'hedonist';
adjectives[] = 'helpful';
adjectives[] = 'high';
adjectives[] = 'historical';
adjectives[] = 'holiday';
adjectives[] = 'home';
adjectives[] = 'honest';
adjectives[] = 'horror';
adjectives[] = 'hot';
adjectives[] = 'house';
adjectives[] = 'huge';
adjectives[] = 'human';
adjectives[] = 'hungry';
adjectives[] = 'hyperbolic';
adjectives[] = 'ideal';
adjectives[] = 'ill';
adjectives[] = 'illegal';
adjectives[] = 'immediate';
adjectives[] = 'important';
adjectives[] = 'impossible';
adjectives[] = 'impressive';
adjectives[] = 'incident';
adjectives[] = 'independent';
adjectives[] = 'individual';
adjectives[] = 'inevitable';
adjectives[] = 'informal';
adjectives[] = 'infuriated';
adjectives[] = 'initial';
adjectives[] = 'inner';
adjectives[] = 'insane';
adjectives[] = 'inside';
adjectives[] = 'intelligent';
adjectives[] = 'intemperate';
adjectives[] = 'interesting';
adjectives[] = 'internal';
adjectives[] = 'international';
adjectives[] = 'intolerant';
adjectives[] = 'irrational';
adjectives[] = 'joint';
adjectives[] = 'junior';
adjectives[] = 'just';
adjectives[] = 'keen';
adjectives[] = 'key';
adjectives[] = 'kind';
adjectives[] = 'kitchen';
adjectives[] = 'known';
adjectives[] = 'large';
adjectives[] = 'last';
adjectives[] = 'late';
adjectives[] = 'latter';
adjectives[] = 'leading';
adjectives[] = 'least';
adjectives[] = 'leather';
adjectives[] = 'left';
adjectives[] = 'legal';
adjectives[] = 'less';
adjectives[] = 'level';
adjectives[] = 'little';
adjectives[] = 'live';
adjectives[] = 'living';
adjectives[] = 'local';
adjectives[] = 'logical';
adjectives[] = 'lonely';
adjectives[] = 'long';
adjectives[] = 'loose';
adjectives[] = 'lost';
adjectives[] = 'loud';
adjectives[] = 'low';
adjectives[] = 'lower';
adjectives[] = 'lucky';
adjectives[] = 'mad-dog';
adjectives[] = 'mad';
adjectives[] = 'main';
adjectives[] = 'major';
adjectives[] = 'male';
adjectives[] = 'many';
adjectives[] = 'massive';
adjectives[] = 'master';
adjectives[] = 'material';
adjectives[] = 'maximum';
adjectives[] = 'mean';
adjectives[] = 'medical';
adjectives[] = 'medium';
adjectives[] = 'mental';
adjectives[] = 'metal';
adjectives[] = 'middle';
adjectives[] = 'minimum';
adjectives[] = 'minor';
adjectives[] = 'minute';
adjectives[] = 'mission';
adjectives[] = 'mobile';
adjectives[] = 'money';
adjectives[] = 'more';
adjectives[] = 'most';
adjectives[] = 'mother';
adjectives[] = 'motor';
adjectives[] = 'mountain';
adjectives[] = 'narrow-minded';
adjectives[] = 'narrow';
adjectives[] = 'nasty';
adjectives[] = 'national';
adjectives[] = 'native';
adjectives[] = 'natural';
adjectives[] = 'nearby';
adjectives[] = 'neat';
adjectives[] = 'necessary';
adjectives[] = 'negative';
adjectives[] = 'neither';
adjectives[] = 'nervous';
adjectives[] = 'new';
adjectives[] = 'next';
adjectives[] = 'nice';
adjectives[] = 'no';
adjectives[] = 'normal';
adjectives[] = 'north';
adjectives[] = 'novel';
adjectives[] = 'numerous';
adjectives[] = 'nutty';
adjectives[] = 'objective';
adjectives[] = 'obsessed';
adjectives[] = 'obvious';
adjectives[] = 'odd';
adjectives[] = 'official';
adjectives[] = 'ok';
adjectives[] = 'old';
adjectives[] = 'one';
adjectives[] = 'only';
adjectives[] = 'open';
adjectives[] = 'opening';
adjectives[] = 'opposite';
adjectives[] = 'ordinary';
adjectives[] = 'original';
adjectives[] = 'other';
adjectives[] = 'otherwise';
adjectives[] = 'outside';
adjectives[] = 'oval';
adjectives[] = 'over';
adjectives[] = 'overall';
adjectives[] = 'overboard';
adjectives[] = 'pacific';
adjectives[] = 'parabolic';
adjectives[] = 'parking';
adjectives[] = 'particular';
adjectives[] = 'party';
adjectives[] = 'past';
adjectives[] = 'patient';
adjectives[] = 'perfect';
adjectives[] = 'period';
adjectives[] = 'personal';
adjectives[] = 'physical';
adjectives[] = 'placid';
adjectives[] = 'plane';
adjectives[] = 'plastic';
adjectives[] = 'pleasant';
adjectives[] = 'plenty';
adjectives[] = 'plus';
adjectives[] = 'poisoned';
adjectives[] = 'political';
adjectives[] = 'poor';
adjectives[] = 'popular';
adjectives[] = 'positive';
adjectives[] = 'possible';
adjectives[] = 'potential';
adjectives[] = 'powerful';
adjectives[] = 'practical';
adjectives[] = 'pragmatic';
adjectives[] = 'present';
adjectives[] = 'pretend';
adjectives[] = 'pretty';
adjectives[] = 'previous';
adjectives[] = 'primary';
adjectives[] = 'prior';
adjectives[] = 'private';
adjectives[] = 'prize';
adjectives[] = 'professional';
adjectives[] = 'proof';
adjectives[] = 'proper';
adjectives[] = 'proud';
adjectives[] = 'psychological';
adjectives[] = 'public';
adjectives[] = 'pure';
adjectives[] = 'purple';
adjectives[] = 'quick';
adjectives[] = 'quiet';
adjectives[] = 'radical';
adjectives[] = 'raging';
adjectives[] = 'rare';
adjectives[] = 'raw';
adjectives[] = 'ready';
adjectives[] = 'real';
adjectives[] = 'realistic';
adjectives[] = 'reasonable';
adjectives[] = 'recent';
adjectives[] = 'red';
adjectives[] = 'regular';
adjectives[] = 'relevant';
adjectives[] = 'remarkable';
adjectives[] = 'remote';
adjectives[] = 'representative';
adjectives[] = 'resident';
adjectives[] = 'responsible';
adjectives[] = 'revolutionary';
adjectives[] = 'rich';
adjectives[] = 'right';
adjectives[] = 'rough';
adjectives[] = 'round';
adjectives[] = 'routine';
adjectives[] = 'royal';
adjectives[] = 'sad';
adjectives[] = 'safe';
adjectives[] = 'salmon';
adjectives[] = 'salt';
adjectives[] = 'same';
adjectives[] = 'savings';
adjectives[] = 'scared';
adjectives[] = 'sea';
adjectives[] = 'sealed';
adjectives[] = 'secret';
adjectives[] = 'secure';
adjectives[] = 'select';
adjectives[] = 'senior';
adjectives[] = 'sensitive';
adjectives[] = 'separate';
adjectives[] = 'serene';
adjectives[] = 'serious';
adjectives[] = 'several';
adjectives[] = 'severe';
adjectives[] = 'sexy';
adjectives[] = 'sharp';
adjectives[] = 'short';
adjectives[] = 'shot';
adjectives[] = 'sick';
adjectives[] = 'significant';
adjectives[] = 'silly';
adjectives[] = 'silver';
adjectives[] = 'similar';
adjectives[] = 'simple';
adjectives[] = 'single';
adjectives[] = 'sizzling';
adjectives[] = 'slight';
adjectives[] = 'slow';
adjectives[] = 'small';
adjectives[] = 'smart';
adjectives[] = 'smoking';
adjectives[] = 'smooth';
adjectives[] = 'soft';
adjectives[] = 'solid';
adjectives[] = 'some';
adjectives[] = 'sorry';
adjectives[] = 'south';
adjectives[] = 'southern';
adjectives[] = 'spare';
adjectives[] = 'special';
adjectives[] = 'specialist';
adjectives[] = 'specific';
adjectives[] = 'spiritual';
adjectives[] = 'square';
adjectives[] = 'stable';
adjectives[] = 'standard';
adjectives[] = 'star';
adjectives[] = 'status';
adjectives[] = 'steamed up';
adjectives[] = 'still';
adjectives[] = 'stock';
adjectives[] = 'straight';
adjectives[] = 'strange';
adjectives[] = 'strict';
adjectives[] = 'strong';
adjectives[] = 'stupid';
adjectives[] = 'subject';
adjectives[] = 'substantial';
adjectives[] = 'successful';
adjectives[] = 'such';
adjectives[] = 'sudden';
adjectives[] = 'sufficient';
adjectives[] = 'suitable';
adjectives[] = 'super';
adjectives[] = 'sure';
adjectives[] = 'suspicious';
adjectives[] = 'sweet';
adjectives[] = 'swimming';
adjectives[] = 'tall';
adjectives[] = 'technical';
adjectives[] = 'temporary';
adjectives[] = 'terrible';
adjectives[] = 'that';
adjectives[] = 'then';
adjectives[] = 'these';
adjectives[] = 'thick';
adjectives[] = 'thin';
adjectives[] = 'think';
adjectives[] = 'this';
adjectives[] = 'tight';
adjectives[] = 'time';
adjectives[] = 'tiny';
adjectives[] = 'top';
adjectives[] = 'total';
adjectives[] = 'tough';
adjectives[] = 'traditional';
adjectives[] = 'training';
adjectives[] = 'transactional';
adjectives[] = 'transcendental';
adjectives[] = 'transcriptional';
adjectives[] = 'transferable';
adjectives[] = 'transfusable';
adjectives[] = 'transgressing';
adjectives[] = 'transhumant';
adjectives[] = 'transistorized';
adjectives[] = 'translated';
adjectives[] = 'transliterated';
adjectives[] = 'transmogrified';
adjectives[] = 'transmutable';
adjectives[] = 'transpierced';
adjectives[] = 'transpiring';
adjectives[] = 'transported';
adjectives[] = 'transthoracic';
adjectives[] = 'transuranic';
adjectives[] = 'transvalues';
adjectives[] = 'tricky';
adjectives[] = 'tropologic';
adjectives[] = 'tropospheric';
adjectives[] = 'true';
adjectives[] = 'typical';
adjectives[] = 'ugly';
adjectives[] = 'ultra';
adjectives[] = 'ultraist';
adjectives[] = 'unable';
adjectives[] = 'unfair';
adjectives[] = 'unhappy';
adjectives[] = 'unique';
adjectives[] = 'united';
adjectives[] = 'unlikely';
adjectives[] = 'unusual';
adjectives[] = 'upper';
adjectives[] = 'upset';
adjectives[] = 'upstairs';
adjectives[] = 'used';
adjectives[] = 'useful';
adjectives[] = 'usual';
adjectives[] = 'valuable';
adjectives[] = 'various';
adjectives[] = 'vast';
adjectives[] = 'vegetable';
adjectives[] = 'violent';
adjectives[] = 'virulent';
adjectives[] = 'visible';
adjectives[] = 'visual';
adjectives[] = 'warm';
adjectives[] = 'waste';
adjectives[] = 'weak';
adjectives[] = 'weekly';
adjectives[] = 'weird';
adjectives[] = 'west';
adjectives[] = 'western';
adjectives[] = 'what';
adjectives[] = 'which';
adjectives[] = 'white';
adjectives[] = 'whole';
adjectives[] = 'wide';
adjectives[] = 'wild';
adjectives[] = 'willing';
adjectives[] = 'wine';
adjectives[] = 'winter';
adjectives[] = 'wise';
adjectives[] = 'wonderful';
adjectives[] = 'wooden';
adjectives[] = 'work';
adjectives[] = 'working';
adjectives[] = 'worth';
adjectives[] = 'wrong';
adjectives[] = 'yellow';
adjectives[] = 'young';
adjectives[] = 'zealous';
functions[] = 

constants[] = 

classes[] = \ds\Collection
classes[] = \ds\Hashable
classes[] = \ds\Sequence
classes[] = \ds\Vector
classes[] = \ds\Deque
classes[] = \ds\Map
classes[] = \ds\Pair
classes[] = \ds\Set
classes[] = \ds\Stack
classes[] = \ds\Queue
classes[] = \ds\PriorityQueue

interfaces[] = 

traits[] = 

namespaces[] = 'ds';

directives[] = 

functions[] = ;

constants[] = 'MEMCACHE_COMPRESSED';
constants[] = 'MEMCACHE_HAVE_SESSION';
constants[] = 'MEMCACHE_USER1';
constants[] = 'MEMCACHE_USER2';
constants[] = 'MEMCACHE_USER3';
constants[] = 'MEMCACHE_USER4';

classes[] = 'Memcached';
classes[] = 'MemcachedException';

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

keywords[] = 'abstract';
keywords[] = 'and';
keywords[] = 'array';
keywords[] = 'as';
keywords[] = 'break';
keywords[] = 'case';
keywords[] = 'catch';
keywords[] = 'class';
keywords[] = 'clone';
keywords[] = 'const';
keywords[] = 'continue';
keywords[] = 'declare';
keywords[] = 'default';
keywords[] = 'die';
keywords[] = 'do';
keywords[] = 'echo';
keywords[] = 'else';
keywords[] = 'elseif';
keywords[] = 'empty';
keywords[] = 'enddeclare';
keywords[] = 'endfor';
keywords[] = 'endforeach';
keywords[] = 'endif';
keywords[] = 'endswitch';
keywords[] = 'endwhile';
keywords[] = 'eval';
keywords[] = 'exit';
keywords[] = 'extends';
keywords[] = 'final';
keywords[] = 'finally';
keywords[] = 'for';
keywords[] = 'foreach';
keywords[] = 'function';
keywords[] = 'global';
keywords[] = 'goto';
keywords[] = 'if';
keywords[] = 'implements';
keywords[] = 'include';
keywords[] = 'include_once';
keywords[] = 'instanceof';
keywords[] = 'insteadof';
keywords[] = 'interface';
keywords[] = 'isset';
keywords[] = 'list';
keywords[] = 'namespace';
keywords[] = 'new';
keywords[] = 'or';
keywords[] = 'print';
keywords[] = 'private';
keywords[] = 'protected';
keywords[] = 'public';
keywords[] = 'require';
keywords[] = 'require_once';
keywords[] = 'return';
keywords[] = 'static';
keywords[] = 'switch';
keywords[] = 'then';
keywords[] = 'throw';
keywords[] = 'trait';
keywords[] = 'try';
keywords[] = 'unset';
keywords[] = 'use';
keywords[] = 'var';
keywords[] = 'while';
keywords[] = 'xor';
keywords[] = 'yield';functions[] = gnupg_adddecryptkey
functions[] = gnupg_addencryptkey
functions[] = gnupg_addsignkey
functions[] = gnupg_cleardecryptkeys
functions[] = gnupg_clearencryptkeys
functions[] = gnupg_clearsignkeys
functions[] = gnupg_decrypt
functions[] = gnupg_decryptverify
functions[] = gnupg_encrypt
functions[] = gnupg_encryptsign
functions[] = gnupg_export
functions[] = gnupg_geterror
functions[] = gnupg_getprotocol
functions[] = gnupg_import
functions[] = gnupg_init
functions[] = gnupg_keyinfo
functions[] = gnupg_setarmor
functions[] = gnupg_seterrormode
functions[] = gnupg_setsignmode
functions[] = gnupg_sign
functions[] = gnupg_verify

constants[] = 'GNUPG_SIG_MODE_NORMAL';
constants[] = 'GNUPG_SIG_MODE_DETACH';
constants[] = 'GNUPG_SIG_MODE_CLEAR';
constants[] = 'GNUPG_VALIDITY_UNKNOWN';
constants[] = 'GNUPG_VALIDITY_UNDEFINED';
constants[] = 'GNUPG_VALIDITY_NEVER';
constants[] = 'GNUPG_VALIDITY_MARGINAL';
constants[] = 'GNUPG_VALIDITY_FULL';
constants[] = 'GNUPG_VALIDITY_ULTIMATE';
constants[] = 'GNUPG_PROTOCOL_OpenPGP';
constants[] = 'GNUPG_PROTOCOL_CMS';
constants[] = 'GNUPG_SIGSUM_VALID';
constants[] = 'GNUPG_SIGSUM_GREEN';
constants[] = 'GNUPG_SIGSUM_RED';
constants[] = 'GNUPG_SIGSUM_KEY_REVOKED';
constants[] = 'GNUPG_SIGSUM_KEY_EXPIRED';
constants[] = 'GNUPG_SIGSUM_KEY_MISSING';
constants[] = 'GNUPG_SIGSUM_SIG_EXPIRED';
constants[] = 'GNUPG_SIGSUM_CRL_MISSING';
constants[] = 'GNUPG_SIGSUM_CRL_TOO_OLD';
constants[] = 'GNUPG_SIGSUM_BAD_POLICY';
constants[] = 'GNUPG_SIGSUM_SYS_ERROR';
constants[] = 'GNUPG_ERROR_WARNING';
constants[] = 'GNUPG_ERROR_EXCEPTION';
constants[] = 'GNUPG_ERROR_SILENT';

classes[] = gnupg

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

{
 "amqp":         {"analysis":"Extensions/Extamqp",
                  "activate":"--with-amqp",
                  "deactivate":"",
                  "others":["--with-librabbitmq-dir[=DIR]"],
                  "pecl":"https://pecl.php.net/package/amqp"},
 "apache":       {"analysis":"Extensions/Extapache",
                  "activate":"--with-apxs2",
                  "deactivate":"",
                  "others":[""]},
 "apc":          {"analysis":"Extensions/Extapc",
                  "activate":"--enable-apc",
                  "deactivate":"",
                  "others":["--enable-apc-debug"],
                  "pecl":"https://pecl.php.net/package/apc"},
 "apcu":         {"analysis":"Extensions/Extapcu",
                  "activate":"",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/APCu"},
 "ast":          {"analysis":"Extensions/Extast",
                  "activate":"--enable-ast",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://github.com/nikic/php-ast"},
 "argon2":       {"analysis":"Php/Argon2Usage",
                  "activate":"--with-password-argon2",
                  "deactivate":"",
                  "others":[]},
 "array":        {"analysis":"Extensions/Extarray",
                  "activate":"",
                  "deactivate":"",
                  "others":[]},
 "bcmath":       {"analysis":"Extensions/Extbcmath",
                  "activate":"--enable-bcmath",
                  "deactivate":"",
                  "others":[]},
 "bzip2":        {"analysis":"Extensions/Extbzip2",
                  "activate":"--with-bz2=DIR",
                  "deactivate":"",
                  "others":[]},
 "cairo":         {"analysis":"Extensions/Extcairo",
                  "activate":"--with-cairo ",
                  "deactivate":"",
                  "others":["https://pecl.php.net/package/cairo"]},
 "calendar":     {"analysis":"Extensions/Extcalendar",
                  "activate":"--enable-calendar",
                  "deactivate":"",
                  "others":[]},
 "cmark":        {"analysis":"Extensions/Extcmark",
                  "activate":"--with-cmark",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/cmark"},
 "crypto":       {"analysis":"Extensions/Extcrypto",
                  "activate":"--with-crypto",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/crypto"},
 "com":          {"analysis":"Extensions/Extcom",
                  "activate":"",
                  "deactivate":"",
                  "others":[],
                  "pecl":""},
 "csprng":       {"analysis":"Extensions/Extcsprng",
                  "activate":"",
                  "deactivate":"",
                  "others":[],
                  "pecl":"http://php.net/csprng"},
 "ctype":        {"analysis":"Extensions/Extctype",
                  "activate":"",
                  "deactivate":"--disable-ctype",
                  "others":[]},
 "curl":         {"analysis":"Extensions/Extcurl",
                  "activate":"--with-curl=DIR",
                  "deactivate":"",
                  "others":[]}, 
 "cyrus":        {"analysis":"Extensions/Extcyrus",
                  "activate":"--with-cyrus=DIR",
                  "deactivate":"",
                  "others":[]}, 
 "date":         {"analysis":"Extensions/Extdate",
                  "activate":"",
                  "deactivate":"",
                  "others":[]},
 "db2":          {"analysis":"Extensions/Extdb2",
                  "activate":"--with-IBM_DB2=[DIR]",
                  "deactivate":"",
                  "others":[],
                  "pecl":"http://git.php.net/?p=pecl/database/ibm_db2.git"},
 "dba":          {"analysis":"Extensions/Extdba",
                  "activate":"--enable-dba=shared",
                  "deactivate":"",
                  "others":["--with-dbm=DIR", "--with-ndbm=DIR", "--with-db2=DIR", "--with-db3=DIR", "--with-db4=DIR", "--with-cdb=DIR", "--with-flatfile", "--with-inifile", "--with-qdbm=DIR", "--with-tcadb=DIR"]},
 "decimal":      {"analysis":"Extensions/Extdecimal",
                  "activate":"--enable-decimal",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://github.com/php-decimal/ext-decimal"},
 "dio":          {"analysis":"Extensions/Extdio",
                  "activate":"--enable-dio=[DIR]",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/dio"},
 "dom":          {"analysis":"Extensions/Extdom",
                  "activate":"",
                  "deactivate":" --disable-dom",
                  "others":[]},
 "ds":           {"analysis":"Extensions/Extds",
                  "activate":"--enable-ds",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/ds"},
 "eaccelerator": {"analysis":"Extensions/Exteaccelerator",
                  "activate":"--enable-eaccelerator",
                  "deactivate":"",
                  "others":["--without-eaccelerator-crash-detection", "--without-eaccelerator-optimizer", "--without-eaccelerator-info", "--without-eaccelerator-doc-comment-inclusion", "--with-eaccelerator-disassembler", "--with-eaccelerator-debug", "--with-eaccelerator-userid"],
                  "pecl":"https://github.com/eaccelerator/eaccelerator"},
 "eio":          {"analysis":"Extensions/Exteio",
                  "activate":"--with-eio",
                  "deactivate":"",
                  "others":["--enable-eio-debug "],
                  "pecl":"https://github.com/rosmanov/pecl-eio"},
 "enchant":      {"analysis":"Extensions/Extenchant",
                  "activate":"--with-enchant[=dir]",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/enchant"},
 "ereg":         {"analysis":"Extensions/Extereg",
                  "activate":"",
                  "deactivate":"",
                  "others":[]},
 "ev":           {"analysis":"Extensions/Extev",
                  "activate":"--enable-ev",
                  "deactivate":"",
                  "others":["--enable-ev-debug"],
                  "pecl":"https://pecl.php.net/package/ev"},
 "event":        {"analysis":"Extensions/Extevent",
                  "activate":"--with-libevent=[DIR]",
                  "deactivate":"",
                  "others":[]},
 "exif":         {"analysis":"Extensions/Extereg",
                  "activate":"--enable-exif",
                  "deactivate":"",
                  "others":[]},
 "expect":       {"analysis":"Extensions/Extexpect",
                  "activate":"--with-expect=DIR",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/expect"},
 "fam":          {"analysis":"Extensions/Extfam",
                  "activate":"--with-fam",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/fam"},
 "fann":         {"analysis":"Extensions/Extfann",
                  "activate":"--with-fann",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/fann"},
 "fdf":          {"analysis":"Extensions/Extfdf",
                  "activate":"",
                  "deactivate":"",
                  "others":[]},
 "ffmpeg":       {"analysis":"Extensions/Extffmpeg",
                  "activate":"--with-ffmpeg[=DIR]",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://sourceforge.net/projects/ffmpeg-php/"},
 "ffi":          {"analysis":"Extensions/Extffi",
                  "activate":"--with-ffi[=DIR]",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://github.com/dstogov/php-ffi"},
 "file":         {"analysis":"Extensions/Extfile",
                  "activate":"",
                  "deactivate":"",
                  "others":[]},
 "fileinfo":     {"analysis":"Extensions/Extfileinfo",
                  "activate":"",
                  "deactivate":"--disable-fileinfo",
                  "others":[]},
 "filter":         {"analysis":"Extensions/Extfilter",
                  "activate":"",
                  "deactivate":"--disable-filter",
                  "others":[]},
 "fpm":          {"analysis":"Extensions/Extfpm",
                  "activate":"--enable-fpm",
                  "deactivate":"",
                  "others":["--with-fpm-user", "--with-fpm-group", "--with-fpm-systemd", "--with-fpm-acl"]},
 "ftp":          {"analysis":"Extensions/Extftp",
                  "activate":"--enable-ftp",
                  "deactivate":"",
                  "others":[]},
 "gd":           {"analysis":"Extensions/Extgd",
                  "activate":"--with-gd",
                  "deactivate":"",
                  "others":["--with-jpeg-dir=DIR", "--with-png-dir=DIR", "--with-xpm-dir=DIR", "--with-vpx-dir=DIR", "--with-freetype-dir=DIR","--enable-gd-native-ttf"]},
 "gearman":      {"analysis":"Extensions/Extgearman",
                  "activate":"--with-gearman=DIR",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/gearman"},
 "gender":        {"analysis":"Extensions/Extgender",
                  "activate":"--enable-gender",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/gender"},
 "geoip":        {"analysis":"Extensions/Extgeoip",
                  "activate":"--with-geoip=DIR",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/geoip"},
 "gettext":      {"analysis":"Extensions/Extgettext",
                  "activate":"--with-gettext=DIR",
                  "deactivate":"",
                  "others":[]},
 "gnupg":        {"analysis":"Extensions/Extgnupg",
                  "activate":"--with-gnupg=DIR",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/gnupg"},
 "gmagick":      {"analysis":"Extensions/Extgmagick",
                  "activate":"--with-gmagick=DIR",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/gmagick"},
 "gmp":          {"analysis":"Extensions/Extgmp",
                  "activate":"--with-gmp",
                  "deactivate":"",
                  "others":[]},
 "grpc":         {"analysis":"Extensions/Extgrpc",
                  "activate":"--enable-grpc",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/gRPC"},
 "hash":         {"analysis":"Extensions/Exthash",
                  "activate":"",
                  "deactivate":"--disable-hash",
                  "others":[]},
 "hrtime":       {"analysis":"Extensions/Exthrtime",
                  "activate":"--enable-hrtime",
                  "deactivate":"",
                  "others":[],
                  "pecl":"http://pecl.php.net/package/hrtime"},
 "http":         {"analysis":"Extensions/Exthttp",
                  "activate":"",
                  "deactivate":"",
                  "others":[]},
 "iconv":        {"analysis":"Extensions/Exticonv",
                  "activate":"",
                  "deactivate":"--without-iconv",
                  "others":["--with-iconv-dir"]},
 "igbinary":     {"analysis":"Extensions/Extigbinary",
                  "activate":"--with-igbinary",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/igbinary"},
 "iis":          {"analysis":"Extensions/Extiis",
                  "activate":"",
                  "deactivate":"",
                  "others":[],
                  "pecl":"http://svn.php.net/viewvc/pecl/iisfunc"},
 "imagick":      {"analysis":"Extensions/Extimagick",
                  "activate":"--with-imagick=DIR",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/imagick"},
 "imap":         {"analysis":"Extensions/Extimap",
                  "activate":"--with-imap=DIR",
                  "deactivate":"",
                  "others":["--with-imap-ssl=DIR", "--with-kerberos=DIR"]},
 "info":         {"analysis":"Extensions/Extinfo",
                  "activate":"",
                  "deactivate":"",
                  "others":[]},
 "inotify":      {"analysis":"Extensions/Extinotify",
                  "activate":"--with-inotify=DIR",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/inotify"},
 "intl":         {"analysis":"Extensions/Extintl",
                  "activate":"--enable-intl",
                  "deactivate":"",
                  "others":[]},
 "ibase":        {"analysis":"Extensions/Extibase",
                  "activate":"--with-interbase[=DIR]",
                  "deactivate":"",
                  "others":[]},
 "json":         {"analysis":"Extensions/Extjson",
                  "activate":"",
                  "deactivate":"--disable-json",
                  "others":[]},
 "judy":         {"analysis":"Extensions/Extjudy",
                  "activate":"--with-judy=[DIR]",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/judy"},
 "kdm5":         {"analysis":"Extensions/Extkdm5",
                  "activate":"--with-kadm5",
                  "deactivate":"",
                  "others":["--enable-kadm5"],
                  "pecl":"https://pecl.php.net/package/kadm5"},
 "lapack":       {"analysis":"Extensions/Extlapak",
                  "activate":"--with-lapak[=DIR]",
                  "deactivate":"",
                  "others":[]},
 "ldap":         {"analysis":"Extensions/Extldap",
                  "activate":"--with-ldap[=DIR]",
                  "deactivate":"",
                  "others":["--with-ldap-sasl[=DIR]"]},
 "leveldb":      {"analysis":"Extensions/Extleveldb",
                  "activate":"--with-leveldb[=DIR]",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://github.com/reeze/php-leveldb"},
 "libevent":     {"analysis":"Extensions/Extlibevent",
                  "activate":"--with-libevent",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/libevent"},
 "libsodium":    {"analysis":"Extensions/Extlibsodium",
                  "activate":"--with-libsodium[=DIR]",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/libsodium"},
 "libxml":       {"analysis":"Extensions/Extlibxml",
                  "activate":"",
                  "deactivate":"--disable-libxml",
                  "others":["--with-libxml-dir"]},
 "lua":          {"analysis":"Extensions/Extlua",
                  "activate":"--with-lua",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/lua"},
 "lzf":          {"analysis":"Extensions/Extlzf",
                  "activate":"--with-lua[=DIR]",
                  "deactivate":"",
                  "others":["--enable-lzf-better-compression"],
                  "pecl":"https://pecl.php.net/package/lzf"},
 "mail":         {"analysis":"Extensions/Extmail",
                  "activate":"",
                  "deactivate":"",
                  "others":[]},
 "mailparse":    {"analysis":"Extensions/Extmailparse",
                  "activate":"--enable-mailparse",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/mailparse"},
 "math":         {"analysis":"Extensions/Extmath",
                  "activate":"",
                  "deactivate":"",
                  "others":[]},
 "mbstring":     {"analysis":"Extensions/Extmbstring",
                  "activate":"--enable-mbstring",
                  "deactivate":"",
                  "others":["--with-libmbfl=DIR","--enable-mbstr-enc-trans", "--disable-mbregex"]},
 "mcrypt":       {"analysis":"Extensions/Extmcrypt",
                  "activate":" --with-mcrypt=[DIR]",
                  "deactivate":"",
                  "others":[]},
 "memcache":     {"analysis":"Extensions/Extmemcache",
                  "activate":"--enable-memcache",
                  "deactivate":"",
                  "others":["--disable-memcache-session"],
                  "pecl":"https://pecl.php.net/package/memcached"},
 "memcached":    {"analysis":"Extensions/Extmemcached",
                  "activate":"--with-libmemcached-dir=DIR",
                  "deactivate":"",
                  "others":["--with-zlib-dir=DIR", "--disable-memcached-session", "--enable-memcached-sasl"],
                  "pecl":"https://pecl.php.net/package/memcached"},
 "mhash":        {"analysis":"Extensions/Extmhash",
                  "activate":"--with-mhash=DIR",
                  "deactivate":"",
                  "others":[]},
 "ming":         {"analysis":"Extensions/Extming",
                  "activate":"--enable-ming=DIR",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/ming"},
 "mongo":        {"analysis":"Extensions/Extmongo",
                  "activate":"--enable-mongodb",
                  "deactivate":"",
                  "others":["--with-openssl-dir[=DIR]", "--with-system-ciphers"],
                  "pecl":"https://pecl.php.net/package/mongo"},
 "mongodb":      {"analysis":"Extensions/Extmongodb",
                  "activate":"--enable-mongodb",
                  "deactivate":"",
                  "others":["--with-openssl-dir[=DIR]", "--with-system-ciphers"],
                  "pecl":"https://pecl.php.net/package/mongodb"},
 "msgpack":      {"analysis":"Extensions/Extmsgpack",
                  "activate":"--with-msgpack=[DIR]",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/msgpack"},
 "mssql":        {"analysis":"Extensions/Extmssql",
                  "activate":"--with-mssql=[DIR]",
                  "deactivate":"",
                  "others":["--enable-msdblib"]},
 "mysql":        {"analysis":"Extensions/Extmysql",
                  "activate":"--with-mysql",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/mysql"},
 "mysqli":       {"analysis":"Extensions/Extmysqli",
                  "activate":"--with-mysqli",
                  "deactivate":"",
                  "others":[]},
 "newt":         {"analysis":"Extensions/Extnewt",
                  "activate":"--with-newt=DIR",
                  "deactivate":"",
                  "others":["--with-curses-dir=DIR", "--with-slang-dir=DIR"],
                  "pecl":"https://pecl.php.net/package/newt"},
 "ncurses":      {"analysis":"Extensions/Extncurses",
                  "activate":"--with-ncurses=DIR",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/ncurses"},
 "nsapi":        {"analysis":"Extensions/Extnsapi",
                  "activate":"--with-nsapi=DIR",
                  "deactivate":"",
                  "others":["--enable-libgcc"]},
 "ob":           {"analysis":"Extensions/Extob",
                  "activate":"",
                  "deactivate":"",
                  "others":[]},
 "oci8":         {"analysis":"Extensions/Extoci8",
                  "activate":"--with-oci8",
                  "deactivate":"",
                  "others":[]},
 "odbc":         {"analysis":"Extensions/Extodbc",
                  "activate":"--with-unixodbc[=DIR]",
                  "deactivate":"",
                  "others":["--with-adabas[=DIR]", "--with-sapdb[=DIR]", "--with-solid[=DIR]", "--with-ibm-db2[=DIR]", "--with-empress[=DIR]", "--with-empress-bcs[=DIR]", "--with-birdstep[=DIR]", "--with-custom-odbc[=DIR]", "--with-iodbc[=DIR]", "--with-esoob[=DIR]","--with-openlink[=DIR]","--with-dbmaker[=DIR]"]},
 "opcache":       {"analysis":"Extensions/Extopcache",
                  "activate":"--enable-opcache",
                  "deactivate":"",
                  "others":[]},
 "opencensus":   {"analysis":"Extensions/Extopencensus",
                  "activate":"--enable-opencensus",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://github.com/census-instrumentation/opencensus-php"},
 "openssl":      {"analysis":"Extensions/Extopenssl",
                  "activate":"--with-openssl[=DIR]",
                  "deactivate":"",
                  "others":[]},
 "parle":        {"analysis":"Extensions/Extparle",
                  "activate":"--enable-parle",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://github.com/weltling/parle"},
 "password":     {"analysis":"Extensions/Extpassword",
                  "activate":"",
                  "deactivate":"",
                  "others":["--with-password-argon2[=DIR]"],
                  "pecl":"https://www.php.net/manual/en/book.password.php"},
 "parsekit":     {"analysis":"Extensions/Extparsekit",
                  "activate":"--enable-parsekit",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/parsekit"},
 "pcntl":        {"analysis":"Extensions/Extpcntl",
                  "activate":"--enable-pcntl",
                  "deactivate":"",
                  "others":[]},
 "pcov":         {"analysis":"Extensions/Extpcov",
                  "activate":"--enable-pcov",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/pcov"},
 "pdo":          {"analysis":"Extensions/Extpdo",
                  "activate":"--enable-pdo",
                  "deactivate":"--disable-pdo",
                  "others":["--with-pdo-odbc", "--with-pdo-mysql", "--with-pdo-pgsql", "--with-pdo-oci", "--with-pdo-firebird", "--with-pdo-dblib", "--with-pdo-cubrid"]},
 "pcre":         {"analysis":"Extensions/Extpcre",
                  "activate":"",
                  "deactivate":"",
                  "others":[]},
 "pear":         {"analysis":"Php/PearUsage",
                  "activate":"",
                  "deactivate":"--without-pear",
                  "others":[]},
 "pgsql":        {"analysis":"Extensions/Extpgsql",
                  "activate":"--with-pgsql=[DIR]",
                  "deactivate":"",
                  "others":[]},
 "phalcon":      {"analysis":"Extensions/Extphalcon",
                  "activate":"--with-phalcon=DIR",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/phalcon"},
 "phar":         {"analysis":"Extensions/Extphar",
                  "activate":"",
                  "deactivate":"",
                  "others":[]},
 "posix":        {"analysis":"Extensions/Extposix",
                  "activate":"",
                  "deactivate":"--disable-posix",
                  "others":[]},
 "proctitle":    {"analysis":"Extensions/Extproctitle",
                  "activate":"--with-proctitle=DIR",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/proctitle"},
 "pspell":       {"analysis":"Extensions/Extpspell",
                  "activate":"--with-pspell[=dir]",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/pspell"},
 "psr":          {"analysis":"Extensions/Extpsr",
                  "activate":"--enable-psr",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://github.com/jbboehr/php-psr"},
 "rar":          {"analysis":"Extensions/Extrar",
                  "activate":"--with-rar=DIR",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/rar"},
 "rdkafka":      {"analysis":"Extensions/Extkafka",
                  "activate":"--with-rdkafka=DIR",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://github.com/arnaud-lb/php-rdkafka"},
 "readline":     {"analysis":"Extensions/Extreadline",
                  "activate":"--with-readline=[DIR]",
                  "deactivate":"",
                  "others":[]},
 "recode":       {"analysis":"Extensions/Extrecode",
                  "activate":"--with-recode=[DIR]",
                  "deactivate":"",
                  "others":[]},
 "redis":        {"analysis":"Extensions/Extredis",
                  "activate":"--enable-redis",
                  "deactivate":"",
                  "others":["--disable-redis-session", "--enable-redis-igbinary"],
                  "pecl":"https://pecl.php.net/package/redis"},
 "reflection":     {"analysis":"Extensions/Extreflection",
                  "activate":"",
                  "deactivate":"",
                  "others":[]},
 "runkit":       {"analysis":"Extensions/Extrunkit",
                  "activate":"--enable-runkit",
                  "deactivate":"",
                  "others":["--enable-runkit-modify", "--enable-runkit-super", "--enable-runkit-sandbox"],
                  "pecl":"https://pecl.php.net/package/runkit"},
 "sem":          {"analysis":"Extensions/Extsem",
                  "activate":"--enable-sysvsem",
                  "deactivate":"",
                  "others":[]},
 "seaslog":      {"analysis":"Extensions/Extseaslog",
                  "activate":"--with-seaslog",
                  "deactivate":"",
                  "others":[],
                  "pecl":"http://seasx.github.io/SeasLog/"},
 "session":      {"analysis":"Extensions/Extsession",
                  "activate":"",
                  "deactivate":"--disable-session",
                  "others":["--with-mm=DIR"]},
 "shmop":        {"analysis":"Extensions/Extshmop",
                  "activate":"--enable-shmop",
                  "deactivate":"",
                  "others":[]},
 "simplexml":    {"analysis":"Extensions/Extsimplexml",
                  "activate":"--enable-simplexml",
                  "deactivate":"",
                  "others":[]},
 "snmp":         {"analysis":"Extensions/Extsnmp",
                  "activate":"--with-snmp",
                  "deactivate":"",
                  "others":[]},
 "sockets":      {"analysis":"Extensions/Extsockets",
                  "activate":" --enable-sockets",
                  "deactivate":"",
                  "others":[]},
 "soap":         {"analysis":"Extensions/Extsoap",
                  "activate":"--enable-soap",
                  "deactivate":"",
                  "others":[]},
 "sphinx":       {"analysis":"Extensions/Extsphinx",
                  "activate":"--with-sphinx",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/sphinx"},
 "spl":          {"analysis":"Extensions/Extspl",
                  "activate":"",
                  "deactivate":"",
                  "others":[]},
 "sqlite":       {"analysis":"Extensions/Extsqlite",
                  "activate":"--with-sqlite=shared",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/sqlite"},
 "sqlite3":      {"analysis":"Extensions/Extsqlite3",
                  "activate":"",
                  "deactivate":"--without-sqlite3",
                  "others":[]},
 "sqlsrv":       {"analysis":"Extensions/Extsqlsrv",
                  "activate":"--with-sqlsrv=DIR",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/sqlsrv"},
 "ssh2":         {"analysis":"Extensions/Extssh2",
                  "activate":"--with-ssh2",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/ssh2"},
 "standard":     {"analysis":"Extensions/Extstandard",
                  "activate":"",
                  "deactivate":"",
                  "others":[]},
 "stats":       {"analysis":"Extensions/Extstats",
                  "activate":"--enable-stats",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/stats"},
 "string":       {"analysis":"Extensions/Extstring",
                  "activate":"",
                  "deactivate":"",
                  "others":[]},
 "suhosin":      {"analysis":"Extensions/Extsuhosin",
                  "activate":"--enable-suhosin",
                  "deactivate":"",
                  "others":["--enable-suhosin-experimental"],
                  "pecl":"https://suhosin.org/"},
 "swoole" :      {"analysis":"Extensions/Extswoole",
                  "activate":"--with-swoole",
                  "deactivate":"",
                  "others":["--enable-swoole-debug, --enable-sockets, --enable-ringbuffer, --enable-async-redis, --enable-openssl, --enable-http2, --enable-thread, --enable-hugepage, --enable-swoole, --enable-mysqlnd, --enable-coroutine, --enable-picohttpparser, --enable-timewheel"],
                  "pecl":"https://github.com/swoole/swoole-src"},
 "tidy":         {"analysis":"Extensions/Exttidy",
                  "activate":"--enable-tidy=[DIR]",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/tidy"},
 "tokenizer":    {"analysis":"Extensions/Exttokenizer",
                  "activate":"",
                  "deactivate":"--disable-tokenizer",
                  "others":[]},
 "tokyotyrant":  {"analysis":"Extensions/Exttokyotyrant",
                  "activate":"--with-tokyo-tyrant=DIR",
                  "deactivate":"",
                  "others":["--disable-tokyo-tyrant-session", "--with-tokyo-cabinet-dir=DIR"],
                  "pecl":"https://pecl.php.net/package/tokyo_tyrant"},
 "trader":       {"analysis":"Extensions/Exttrader",
                  "activate":"--with-trader=DIR",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/trader"},
 "uopz":         {"analysis":"Extensions/Extuopz",
                  "activate":"--enable-uopz",
                  "deactivate":"",
                  "others":["--with-uopz-sanitize"],
                  "pecl":"https://github.com/krakjoe/uopz"},
 "uuid":         {"analysis":"Extensions/Extuuid",
                  "activate":"--with-uuid=[DIR]",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://github.com/krakjoe/uopz"},
 "v8js":         {"analysis":"Extensions/Extv8js",
                  "activate":"--with-v8js=DIR",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/v8js"},
 "varnish":      {"analysis":"Extensions/Extvarnish",
                  "activate":"--with-varnish ",
                  "deactivate":"",
                  "others":[],
                  "pecl":"http://svn.php.net/viewvc/pecl/varnish/trunk/"},
 "vips":         {"analysis":"Extensions/Extv8js",
                  "activate":"--with-vips",
                  "deactivate":"",
                  "others":[],
                  "pecl":"http://pecl.php.net/package/vips"},
 "wddx":         {"analysis":"Extensions/Extwddx",
                  "activate":"--enable-wddx",
                  "deactivate":"",
                  "others":["--with-libexpat-dir"]},
 "weakref":      {"analysis":"Extensions/Extweakref",
                  "activate":"--enable-weakref",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/weakref"},
 "wikidiff2":    {"analysis":"Extensions/Extwikidiff2",
                  "activate":"--enable-wikidiff2",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://www.mediawiki.org/wiki/Extension:Wikidiff2"},
 "wincache":     {"analysis":"Extensions/Extwincache",
                  "activate":"",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://www.iis.net/downloads/microsoft/wincache-extension"},
 "xattr":        {"analysis":"Extensions/Extattr",
                  "activate":"--with-xattr",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/xattr"},
 "xdebug":       {"analysis":"Extensions/Extxdebug",
                  "activate":"--with-xdebug",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/xdebug"},
 "xdiff":        {"analysis":"Extensions/Extxdiff",
                  "activate":"--enable-xdiff=DIR",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/xdebug"},
 "xcache":       {"analysis":"Extensions/Extxcache",
                  "activate":"--enable-xcache",
                  "deactivate":"",
                  "others":["--enable-xcache-optimizer", "--enable-xcache-coverager", "--enable-xcache-assembler", "--enable-xcache-disassembler", "--enable-xcache-encoder", "--enable-xcache-decoder", "--enable-xcache-test" ],
                  "pecl":"https://xcache.lighttpd.net/"},
 "xhprof":       {"analysis":"Extensions/Extxhprof",
                  "activate":"--with-xhprof=DIR",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/xhprof"},
 "xml":          {"analysis":"Extensions/Extxml",
                  "activate":"",
                  "deactivate":"--disable-xml",
                  "others":["--with-expat-dir=DIR"]},
 "xmlreader":    {"analysis":"Extensions/Extxmlreader",
                  "activate":"",
                  "deactivate":"--disable-xmlreader",
                  "others":[]},
 "xmlrpc":       {"analysis":"Extensions/Extxmlrpc",
                  "activate":"",
                  "deactivate":"--with-xmlrpc[=DIR]",
                  "others":[]},
 "xmlwriter":    {"analysis":"Extensions/Extxmlwriter",
                  "activate":"",
                  "deactivate":"--disable-xmlwriter",
                  "others":[]},
 "xsl":          {"analysis":"Extensions/Extxsl",
                  "activate":"--with-xsl[=DIR]",
                  "deactivate":"",
                  "others":[]},
 "xxtea":        {"analysis":"Extensions/Extxxtea",
                  "activate":"--enable-xxtea[=DIR]",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://github.com/xxtea/xxtea-pecl"},
 "yaml":         {"analysis":"Extensions/Extyaml",
                  "activate":"--with-yaml[[=DIR]",
                  "deactivate":"",
                  "others":[],
                  "pecl":"https://pecl.php.net/package/yaml"},
 "yis":          {"analysis":"Extensions/Extyis",
                  "activate":"--with-yis[[=DIR]",
                  "deactivate":"",
                  "others":[],
                  "pecl":"http://svn.php.net/viewvc/pecl/yp"},
 "zip":          {"analysis":"Extensions/Extzip",
                  "activate":"--enable-zip",
                  "deactivate":"",
                  "others":["--with-libzip=DIR"]},
 "zbarcode":     {"analysis":"Extensions/Extzbarcode",
                  "activate":"--with-zbarcode=[DIR]",
                  "deactivate":"",
                  "others":["--with-zbarcode-imagemagick-dir[=DIR]", "--enable-zbarcode-imagick", "--enable-zbarcode-gd"],
                  "pecl":"https://pecl.php.net/package/zbarcode"},
 "zlib":         {"analysis":"Extensions/Extzlib",
                  "activate":"--with-zlib=DIR",
                  "deactivate":"",
                  "others":[]},
 "zmq":          {"analysis":"Extensions/Extzmq",
                  "activate":"--with-zmp=DIR",
                  "deactivate":"",
                  "others":["--with-czmq[=DIR]"],
                  "pecl":"https://pecl.php.net/package/zmp"},
 "zookeeper":    {"analysis":"Extensions/Extzookeeper",
                  "activate":"--enable-zookeeper",
                  "deactivate":"",
                  "others":["--disable-zookeeper-session", "--with-libzookeeper-dir[=DIR]"],
                  "pecl":"https://pecl.php.net/package/zookeeper"}
}constants[] = 

functions[] = simplexml_load_file
functions[] = simplexml_load_string
functions[] = simplexml_import_dom

classes[] = SimpleXMLElement
classes[] = SimpleXMLIterator

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = xxtea_encrypt;
functions[] = xxtea_decrypt;
functions[] = xxtea_info;

constants[] = 

classes[] = 

interfaces[] =

traits[] = 

namespaces[] = 

directives[] = 

{
"constants": [],
"functions": [],
"classes": ["\\xmlreader"],
"classconstants": {"\\xmlreader":["NONE",
                                "ELEMENT",
                                "ATTRIBUTE",
                                "TEXT",
                                "CDATA",
                                "ENTITY_REF",
                                "ENTITY",
                                "PI",
                                "COMMENT",
                                "DOC",
                                "DOC_TYPE",
                                "DOC_FRAGMENT",
                                "NOTATION",
                                "WHITESPACE",
                                "SIGNIFICANT_WHITESPACE",
                                "END_ELEMENT",
                                "END_ENTITY",
                                "XML_DECLARATION",
                                "LOADDTD",
                                "DEFAULTATTRS",
                                "VALIDATE",
                                "SUBST_ENTITIES"
                                ]},
"properties": {"\\xmlreader":["attributeCount",
                              "baseURI",
                              "depth",
                              "hasAttributes",
                              "hasValue",
                              "isDefault",
                              "isEmptyElement",
                              "localName",
                              "name",
                              "namespaceURI",
                              "nodeType",
                              "prefix",
                              "value",
                              "xmlLang"
                              ]},
"methods": {"\\xmlreader":["close",
                           "expand",
                           "getattribute",
                           "getattributeno",
                           "getattributens",
                           "getparserproperty",
                           "isvalid",
                           "lookupnamespace",
                           "movetoattribute",
                           "movetoattributeno",
                           "movetoattributens",
                           "movetoelement",
                           "movetofirstattribute",
                           "movetonextattribute",
                           "next",
                           "open",
                           "read",
                           "readinnerxml",
                           "readouterxml",
                           "readstring",
                           "setparserproperty",
                           "setrelaxngschema",
                           "setrelaxngschemasource",
                           "setschema",
                           "xml"
]},
"interfaces": [],
"traits": [],
"namespaces": [],
"directives": []
}

types[] = '\int';
types[] = '\float';
types[] = '\bool';
types[] = '\string';
types[] = '\array';
types[] = '\callable';
types[] = '\object';
types[] = '\mixed';
types[] = '\resource';
types[] = '\scalar';
types[] = '\numeric';
types[] = '\void';
functions[] = wikidiff2_inline_diff
functions[] = wikidiff2_do_diff

constants[] = 

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

{ "8":["adler32","crc32","crc32b","fnv132","fnv1a32","joaat"],
 "16":["fnv164","fnv1a64"],
 "32":["md2","md4","md5","ripemd128","tiger128,3","tiger128,4","haval128,3","haval128,4","haval128,5"],
 "40":["sha1","ripemd160","tiger160,3","tiger160,4","haval160,3","haval160,4","haval160,5"],
 "48":["tiger192,3","tiger192,4","haval192,3","haval192,4","haval192,5"],
 "56":["sha224","haval224,3","haval224,4","haval224,5"],
 "64":["sha256","ripemd256","snefru","snefru256","gost","gost-crypto","haval256,3","haval256,4","haval256,5"],
 "80":["ripemd320"],
 "96":["sha384"],
 "128":["sha512","whirlpool"]}constants[] = 'HTML_SPECIALCHARS';
constants[] = 'HTML_ENTITIES';
constants[] = 'ENT_COMPAT';
constants[] = 'ENT_QUOTES';
constants[] = 'ENT_NOQUOTES';
constants[] = 'ENT_IGNORE';
constants[] = 'CHAR_MAX';
constants[] = 'LC_CTYPE';
constants[] = 'LC_NUMERIC';
constants[] = 'LC_TIME';
constants[] = 'LC_COLLATE';
constants[] = 'LC_MONETARY';
constants[] = 'LC_ALL';
constants[] = 'LC_MESSAGES';

functions[] = addcslashes
functions[] = addslashes
functions[] = bin2hex
functions[] = chop
functions[] = chr
functions[] = chunk_split
functions[] = convert_cyr_string
functions[] = convert_uudecode
functions[] = convert_uuencode
functions[] = count_chars
functions[] = crc32
functions[] = crypt
functions[] = echo
functions[] = explode
functions[] = fprintf
functions[] = get_html_translation_table
functions[] = hebrev
functions[] = hebrevc
functions[] = hex2bin
functions[] = html_entity_decode
functions[] = htmlentities
functions[] = htmlspecialchars_decode
functions[] = htmlspecialchars
functions[] = implode
functions[] = join
functions[] = lcfirst
functions[] = levenshtein
functions[] = localeconv
functions[] = ltrim
functions[] = md5_file
functions[] = md5
functions[] = metaphone
functions[] = money_format
functions[] = nl_langinfo
functions[] = nl2br
functions[] = number_format
functions[] = ord
functions[] = parse_str
functions[] = print
functions[] = printf
functions[] = quoted_printable_decode
functions[] = quoted_printable_encode
functions[] = quotemeta
functions[] = rtrim
functions[] = setlocale
functions[] = sha1_file
functions[] = sha1
functions[] = similar_text
functions[] = soundex
functions[] = sprintf
functions[] = sscanf
functions[] = str_getcsv
functions[] = str_ireplace
functions[] = str_pad
functions[] = str_repeat
functions[] = str_replace
functions[] = str_rot13
functions[] = str_shuffle
functions[] = str_split
functions[] = str_word_count
functions[] = strcasecmp
functions[] = strchr
functions[] = strcmp
functions[] = strcoll
functions[] = strcspn
functions[] = strip_tags
functions[] = stripcslashes
functions[] = stripos
functions[] = stripslashes
functions[] = stristr
functions[] = strlen
functions[] = strnatcasecmp
functions[] = strnatcmp
functions[] = strncasecmp
functions[] = strncmp
functions[] = strpbrk
functions[] = strpos
functions[] = strrchr
functions[] = strrev
functions[] = strripos
functions[] = strrpos
functions[] = strspn
functions[] = strstr
functions[] = strtok
functions[] = strtolower
functions[] = strtoupper
functions[] = strtr
functions[] = substr_compare
functions[] = substr_count
functions[] = substr_replace
functions[] = substr
functions[] = trim
functions[] = ucfirst
functions[] = ucwords
functions[] = vfprintf
functions[] = vprintf
functions[] = vsprintf
functions[] = wordwrap

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = xhprof_disable
functions[] = xhprof_enable
functions[] = xhprof_sample_disable
functions[] = xhprof_sample_enable 

constants[] = 'XHPROF_FLAGS_NO_BUILTINS';
constants[] = 'XHPROF_FLAGS_CPU';
constants[] = 'XHPROF_FLAGS_MEMORY';

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

variables[] = '$_COOKIE';
variables[] = '$_ENV';
variables[] = '$_FILES';
variables[] = '$_GET';
variables[] = '$_POST';
variables[] = '$_REQUEST';
variables[] = '$_SERVER';
variables[] = '$_SESSION';
variables[] = '$argc'
variables[] = '$argv';
variables[] = '$GLOBALS';
variables[] = '$HTTP_COOKIE_VARS';
variables[] = '$HTTP_ENV_VARS';
variables[] = '$HTTP_GET_VARS';
variables[] = '$HTTP_POST_FILES';
variables[] = '$HTTP_POST_VARS';
variables[] = '$HTTP_RAW_POST_DATA';
variables[] = '$HTTP_SERVER_VARS';
variables[] = '$PHP_SELF';
variables[] = '$http_response_header';
thanks[] = "Thank you for making your code better!";
thanks[] = "A review a day keep the bug away";
thanks[] = "Another bug bites the dust";
thanks[] = "For it is in fixing that we code."
thanks[] = "Good code doesn’t result from what we write, but from what we review."
thanks[] = "Always feels better after a good review"
thanks[] = "And another one that won't come back"
thanks[] = "It's super timor for the code!"
thanks[] = "Thank you for squashing that bug"
thanks[] = "Do not argue with an bug. He will drag you down to his level and beat you with idiocy."
thanks[] = "If you think nobody cares if you’re fixing bugs, try leaving a couple of them in the code."
thanks[] = "Another day, another improvement"
thanks[] = "I say, a day well reviewed"
thanks[] = "There is always space for improvement, no matter how long you've been in the business."


constants[] = 'POSIX_F_OK';
constants[] = 'POSIX_X_OK';
constants[] = 'POSIX_W_OK';
constants[] = 'POSIX_R_OK';
constants[] = 'POSIX_S_IFREG';
constants[] = 'POSIX_S_IFCHR';
constants[] = 'POSIX_S_IFBLK';
constants[] = 'POSIX_S_IFIFO';
constants[] = 'POSIX_S_IFSOCK';

functions[] = posix_kill
functions[] = posix_getpid
functions[] = posix_getppid
functions[] = posix_getuid
functions[] = posix_setuid
functions[] = posix_geteuid
functions[] = posix_seteuid
functions[] = posix_getgid
functions[] = posix_setgid
functions[] = posix_getegid
functions[] = posix_setegid
functions[] = posix_getgroups
functions[] = posix_getlogin
functions[] = posix_getpgrp
functions[] = posix_setsid
functions[] = posix_setpgid
functions[] = posix_getpgid
functions[] = posix_getsid
functions[] = posix_uname
functions[] = posix_times
functions[] = posix_ctermid
functions[] = posix_ttyname
functions[] = posix_isatty
functions[] = posix_getcwd
functions[] = posix_mkfifo
functions[] = posix_mknod
functions[] = posix_access
functions[] = posix_getgrnam
functions[] = posix_getgrgid
functions[] = posix_getpwnam
functions[] = posix_getpwuid
functions[] = posix_getrlimit
functions[] = posix_get_last_error
functions[] = posix_errno
functions[] = posix_strerror
functions[] = posix_initgroups

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

encodings[] = "pass";
encodings[] = "none";
encodings[] = "wchar";
encodings[] = "byte2be";
encodings[] = "byte2le";
encodings[] = "byte4be";
encodings[] = "byte4le";
encodings[] = "base64";
encodings[] = "uuencode";
encodings[] = "html-entities";
encodings[] = "html";
encodings[] = "html";
encodings[] = "quoted-printable";
encodings[] = "qprint";
encodings[] = "7bit";
encodings[] = "8bit";
encodings[] = "binary";
encodings[] = "ucs-4";
encodings[] = "iso-10646-ucs-4";
encodings[] = "ucs4";
encodings[] = "ucs-4be";
encodings[] = "ucs-4le";
encodings[] = "ucs-2";
encodings[] = "iso-10646-ucs-2";
encodings[] = "ucs2";
encodings[] = "unicode";
encodings[] = "ucs-2be";
encodings[] = "ucs-2le";
encodings[] = "utf-32";
encodings[] = "utf32";
encodings[] = "utf-32be";
encodings[] = "utf-32le";
encodings[] = "utf-16";
encodings[] = "utf16";
encodings[] = "utf-16be";
encodings[] = "utf-16le";
encodings[] = "utf-8";
encodings[] = "utf8";
encodings[] = "utf-7";
encodings[] = "utf7";
encodings[] = "utf7-imap";
encodings[] = "ascii";
encodings[] = "ansi_x3.4-1968";
encodings[] = "iso-ir-6";
encodings[] = "ansi_x3.4-1986";
encodings[] = "iso_646.irv:1991";
encodings[] = "us-ascii";
encodings[] = "iso646-us";
encodings[] = "us";
encodings[] = "ibm367";
encodings[] = "ibm-367";
encodings[] = "cp367";
encodings[] = "csascii";
encodings[] = "euc-jp";
encodings[] = "euc";
encodings[] = "euc_jp";
encodings[] = "eucjp";
encodings[] = "x-euc-jp";
encodings[] = "sjis";
encodings[] = "x-sjis";
encodings[] = "shift-jis";
encodings[] = "eucjp-win";
encodings[] = "eucjp-open";
encodings[] = "eucjp-ms";
encodings[] = "euc-jp-2004";
encodings[] = "euc_jp-2004";
encodings[] = "sjis-win";
encodings[] = "sjis-open";
encodings[] = "sjis-ms";
encodings[] = "sjis-mobile#docomo";
encodings[] = "sjis-docomo";
encodings[] = "shift_jis-imode";
encodings[] = "x-sjis-emoji-docomo";
encodings[] = "sjis-mobile#kddi";
encodings[] = "sjis-kddi";
encodings[] = "shift_jis-kddi";
encodings[] = "x-sjis-emoji-kddi";
encodings[] = "sjis-mobile#softbank";
encodings[] = "sjis-softbank";
encodings[] = "shift_jis-softbank";
encodings[] = "x-sjis-emoji-softbank";
encodings[] = "sjis-mac";
encodings[] = "macjapanese";
encodings[] = "x-mac-japanese";
encodings[] = "sjis-2004";
encodings[] = "sjis2004";
encodings[] = "shift_jis-2004";
encodings[] = "utf-8-mobile#docomo";
encodings[] = "utf-8-docomo";
encodings[] = "utf8-docomo";
encodings[] = "utf-8-mobile#kddi-a";
encodings[] = "utf-8-mobile#kddi-b";
encodings[] = "utf-8-mobile#kddi";
encodings[] = "utf-8-kddi";
encodings[] = "utf8-kddi";
encodings[] = "utf-8-mobile#softbank";
encodings[] = "utf-8-softbank";
encodings[] = "utf8-softbank";
encodings[] = "cp932";
encodings[] = "ms932";
encodings[] = "windows-31j";
encodings[] = "ms_kanji";
encodings[] = "cp51932";
encodings[] = "cp51932";
encodings[] = "jis";
encodings[] = "iso-2022-jp";
encodings[] = "iso-2022-jp-ms";
encodings[] = "iso2022jpms";
encodings[] = "gb18030";
encodings[] = "gb-18030";
encodings[] = "gb-18030-2000";
encodings[] = "windows-1252";
encodings[] = "cp1252";
encodings[] = "windows-1254";
encodings[] = "cp1254";
encodings[] = "cp-1254";
encodings[] = "windows-1254";
encodings[] = "iso-8859-1";
encodings[] = "iso-8859-1";
encodings[] = "iso_8859-1";
encodings[] = "latin1";
encodings[] = "iso-8859-2";
encodings[] = "iso_8859-2";
encodings[] = "latin2";
encodings[] = "iso-8859-3";
encodings[] = "iso_8859-3";
encodings[] = "latin3";
encodings[] = "iso-8859-4";
encodings[] = "iso_8859-4";
encodings[] = "latin4";
encodings[] = "iso-8859-5";
encodings[] = "iso_8859-5";
encodings[] = "cyrillic";
encodings[] = "iso-8859-6";
encodings[] = "iso_8859-6";
encodings[] = "arabic";
encodings[] = "iso-8859-7";
encodings[] = "iso_8859-7";
encodings[] = "greek";
encodings[] = "iso-8859-8";
encodings[] = "iso_8859-8";
encodings[] = "hebrew";
encodings[] = "iso-8859-9";
encodings[] = "iso_8859-9";
encodings[] = "latin5";
encodings[] = "iso-8859-10";
encodings[] = "iso_8859-10";
encodings[] = "latin6";
encodings[] = "iso-8859-13";
encodings[] = "iso_8859-13";
encodings[] = "iso-8859-14";
encodings[] = "iso_8859-14";
encodings[] = "latin8";
encodings[] = "iso-8859-15";
encodings[] = "iso_8859-15";
encodings[] = "iso-8859-16";
encodings[] = "iso_8859-16";
encodings[] = "euc-cn";
encodings[] = "cn-gb";
encodings[] = "euc_cn";
encodings[] = "euccn";
encodings[] = "x-euc-cn";
encodings[] = "gb2312";
encodings[] = "cp936";
encodings[] = "cp-936";
encodings[] = "gbk";
encodings[] = "hz";
encodings[] = "euc-tw";
encodings[] = "euc_tw";
encodings[] = "euctw";
encodings[] = "x-euc-tw";
encodings[] = "big-5";
encodings[] = "cn-big5";
encodings[] = "big-five";
encodings[] = "bigfive";
encodings[] = "cp950";
encodings[] = "euc-kr";
encodings[] = "euc_kr";
encodings[] = "euckr";
encodings[] = "x-euc-kr";
encodings[] = "uhc";
encodings[] = "cp949";
encodings[] = "iso-2022-kr";
encodings[] = "windows-1251";
encodings[] = "cp1251";
encodings[] = "cp-1251";
encodings[] = "windows-1251";
encodings[] = "cp866";
encodings[] = "cp866";
encodings[] = "cp-866";
encodings[] = "ibm866";
encodings[] = "ibm-866";
encodings[] = "koi8-r";
encodings[] = "koi8-r";
encodings[] = "koi8r";
encodings[] = "koi8-u";
encodings[] = "koi8-u";
encodings[] = "koi8u";
encodings[] = "armscii-8";
encodings[] = "armscii-8";
encodings[] = "armscii8";
encodings[] = "armscii-8";
encodings[] = "armscii8";
encodings[] = "cp850";
encodings[] = "cp850";
encodings[] = "cp-850";
encodings[] = "ibm850";
encodings[] = "ibm-850";
encodings[] = "jis-ms";
encodings[] = "iso-2022-jp-2004";
encodings[] = "iso-2022-jp-mobile#kddi";
encodings[] = "iso-2022-jp-kddi";
encodings[] = "cp50220";
encodings[] = "cp50220raw";
encodings[] = "cp50221";
encodings[] = "cp50222";
functions[] = 

constants[] = 

classes[] = ZBarCodeImage
classes[] = ZBarCodeScanner

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = 

constants[] = 

classes[] = Ev
classes[] = EvCheck
classes[] = EvChild
classes[] = EvEmbed
classes[] = EvFork
classes[] = EvIdle
classes[] = EvIo
classes[] = EvLoop
classes[] = EvPeriodic
classes[] = EvPrepare
classes[] = EvSignal
classes[] = EvStat
classes[] = EvTimer
classes[] = EvWatcher

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = zookeeper_dispatch

constants[] = 

classes[] = Zookeeper
classes[] = ZookeeperException
classes[] = ZookeeperOperationTimeoutException
classes[] = ZookeeperConnectionException
classes[] = ZookeeperMarshallingException
classes[] = ZookeeperAuthenticationException
classes[] = ZookeeperSessionException
classes[] = ZookeeperNoNodeException

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = zookeeper.recv_timeout
directives[] = zookeeper.session_lock
directives[] = zookeeper.sess_lock_wait

functions[] = exif_imagetype
functions[] = exif_read_data
functions[] = exif_tagname
functions[] = exif_thumbnail
functions[] = read_exif_data

constants[] = 'EXIF_USE_MBSTRING';

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

[
{"begin":"0020", "end":"007F", "block":"Basic Latin"},
{"begin":"00A0", "end":"00FF", "block":"Latin-1 Supplement"},
{"begin":"0100", "end":"017F", "block":"Latin Extended-A"},
{"begin":"0180", "end":"024F", "block":"Latin Extended-B"},
{"begin":"0250", "end":"02AF", "block":"IPA Extensions"},
{"begin":"02B0", "end":"02FF", "block":"Spacing Modifier Letters"},
{"begin":"0300", "end":"036F", "block":"Combining Diacritical Marks"},
{"begin":"0370", "end":"03FF", "block":"Greek and Coptic"},
{"begin":"0400", "end":"04FF", "block":"Cyrillic"},
{"begin":"0500", "end":"052F", "block":"Cyrillic Supplementary"},
{"begin":"0530", "end":"058F", "block":"Armenian"},
{"begin":"0590", "end":"05FF", "block":"Hebrew"},
{"begin":"0600", "end":"06FF", "block":"Arabic"},
{"begin":"0700", "end":"074F", "block":"Syriac"},
{"begin":"0780", "end":"07BF", "block":"Thaana"},
{"begin":"0900", "end":"097F", "block":"Devanagari"},
{"begin":"0980", "end":"09FF", "block":"Bengali"},
{"begin":"0A00", "end":"0A7F", "block":"Gurmukhi"},
{"begin":"0A80", "end":"0AFF", "block":"Gujarati"},
{"begin":"0B00", "end":"0B7F", "block":"Oriya"},
{"begin":"0B80", "end":"0BFF", "block":"Tamil"},
{"begin":"0C00", "end":"0C7F", "block":"Telugu"},
{"begin":"0C80", "end":"0CFF", "block":"Kannada"},
{"begin":"0D00", "end":"0D7F", "block":"Malayalam"},
{"begin":"0D80", "end":"0DFF", "block":"Sinhala"},
{"begin":"0E00", "end":"0E7F", "block":"Thai"},
{"begin":"0E80", "end":"0EFF", "block":"Lao"},
{"begin":"0F00", "end":"0FFF", "block":"Tibetan"},
{"begin":"1000", "end":"109F", "block":"Myanmar"},
{"begin":"10000", "end":"1007F", "block":"Linear B Syllabary"},
{"begin":"10080", "end":"100FF", "block":"Linear B Ideograms"},
{"begin":"10100", "end":"1013F", "block":"Aegean Numbers"},
{"begin":"10300", "end":"1032F", "block":"Old Italic"},
{"begin":"10330", "end":"1034F", "block":"Gothic"},
{"begin":"10380", "end":"1039F", "block":"Ugaritic"},
{"begin":"10400", "end":"1044F", "block":"Deseret"},
{"begin":"10450", "end":"1047F", "block":"Shavian"},
{"begin":"10480", "end":"104AF", "block":"Osmanya"},
{"begin":"10800", "end":"1083F", "block":"Cypriot Syllabary"},
{"begin":"10A0", "end":"10FF", "block":"Georgian"},
{"begin":"1100", "end":"11FF", "block":"Hangul Jamo"},
{"begin":"1200", "end":"137F", "block":"Ethiopic"},
{"begin":"13A0", "end":"13FF", "block":"Cherokee"},
{"begin":"1400", "end":"167F", "block":"Unified Canadian Aboriginal Syllabics"},
{"begin":"1680", "end":"169F", "block":"Ogham"},
{"begin":"16A0", "end":"16FF", "block":"Runic"},
{"begin":"1700", "end":"171F", "block":"Tagalog"},
{"begin":"1720", "end":"173F", "block":"Hanunoo"},
{"begin":"1740", "end":"175F", "block":"Buhid"},
{"begin":"1760", "end":"177F", "block":"Tagbanwa"},
{"begin":"1780", "end":"17FF", "block":"Khmer"},
{"begin":"1800", "end":"18AF", "block":"Mongolian"},
{"begin":"1900", "end":"194F", "block":"Limbu"},
{"begin":"1950", "end":"197F", "block":"Tai Le"},
{"begin":"19E0", "end":"19FF", "block":"Khmer Symbols"},
{"begin":"1D00", "end":"1D7F", "block":"Phonetic Extensions"},
{"begin":"1D000", "end":"1D0FF", "block":"Byzantine Musical Symbols"},
{"begin":"1D100", "end":"1D1FF", "block":"Musical Symbols"},
{"begin":"1D300", "end":"1D35F", "block":"Tai Xuan Jing Symbols"},
{"begin":"1D400", "end":"1D7FF", "block":"Mathematical Alphanumeric Symbols"},
{"begin":"1E00", "end":"1EFF", "block":"Latin Extended Additional"},
{"begin":"1F00", "end":"1FFF", "block":"Greek Extended"},
{"begin":"2000", "end":"206F", "block":"General Punctuation"},
{"begin":"20000", "end":"2A6DF", "block":"CJK Unified Ideographs Extension B"},
{"begin":"2070", "end":"209F", "block":"Superscripts and Subscripts"},
{"begin":"20A0", "end":"20CF", "block":"Currency Symbols"},
{"begin":"20D0", "end":"20FF", "block":"Combining Diacritical Marks for Symbols"},
{"begin":"2100", "end":"214F", "block":"Letterlike Symbols"},
{"begin":"2150", "end":"218F", "block":"Number Forms"},
{"begin":"2190", "end":"21FF", "block":"Arrows"},
{"begin":"2200", "end":"22FF", "block":"Mathematical Operators"},
{"begin":"2300", "end":"23FF", "block":"Miscellaneous Technical"},
{"begin":"2400", "end":"243F", "block":"Control Pictures"},
{"begin":"2440", "end":"245F", "block":"Optical Character Recognition"},
{"begin":"2460", "end":"24FF", "block":"Enclosed Alphanumerics"},
{"begin":"2500", "end":"257F", "block":"Box Drawing"},
{"begin":"2580", "end":"259F", "block":"Block Elements"},
{"begin":"25A0", "end":"25FF", "block":"Geometric Shapes"},
{"begin":"2600", "end":"26FF", "block":"Miscellaneous Symbols"},
{"begin":"2700", "end":"27BF", "block":"Dingbats"},
{"begin":"27C0", "end":"27EF", "block":"Miscellaneous Mathematical Symbols-A"},
{"begin":"27F0", "end":"27FF", "block":"Supplemental Arrows-A"},
{"begin":"2800", "end":"28FF", "block":"Braille Patterns"},
{"begin":"2900", "end":"297F", "block":"Supplemental Arrows-B"},
{"begin":"2980", "end":"29FF", "block":"Miscellaneous Mathematical Symbols-B"},
{"begin":"2A00", "end":"2AFF", "block":"Supplemental Mathematical Operators"},
{"begin":"2B00", "end":"2BFF", "block":"Miscellaneous Symbols and Arrows"},
{"begin":"2E80", "end":"2EFF", "block":"CJK Radicals Supplement"},
{"begin":"2F00", "end":"2FDF", "block":"Kangxi Radicals"},
{"begin":"2F800", "end":"2FA1F", "block":"CJK Compatibility Ideographs Supplement"},
{"begin":"2FF0", "end":"2FFF", "block":"Ideographic Description Characters"},
{"begin":"3000", "end":"303F", "block":"CJK Symbols and Punctuation"},
{"begin":"3040", "end":"309F", "block":"Hiragana"},
{"begin":"30A0", "end":"30FF", "block":"Katakana"},
{"begin":"3100", "end":"312F", "block":"Bopomofo"},
{"begin":"3130", "end":"318F", "block":"Hangul Compatibility Jamo"},
{"begin":"3190", "end":"319F", "block":"Kanbun"},
{"begin":"31A0", "end":"31BF", "block":"Bopomofo Extended"},
{"begin":"31F0", "end":"31FF", "block":"Katakana Phonetic Extensions"},
{"begin":"3200", "end":"32FF", "block":"Enclosed CJK Letters and Months"},
{"begin":"3300", "end":"33FF", "block":"CJK Compatibility"},
{"begin":"3400", "end":"4DBF", "block":"CJK Unified Ideographs Extension A"},
{"begin":"4DC0", "end":"4DFF", "block":"Yijing Hexagram Symbols"},
{"begin":"4E00", "end":"9FFF", "block":"CJK Unified Ideographs"},
{"begin":"A000", "end":"A48F", "block":"Yi Syllables"},
{"begin":"A490", "end":"A4CF", "block":"Yi Radicals"},
{"begin":"AC00", "end":"D7AF", "block":"Hangul Syllables"},
{"begin":"D800", "end":"DB7F", "block":"High Surrogates"},
{"begin":"DB80", "end":"DBFF", "block":"High Private Use Surrogates"},
{"begin":"DC00", "end":"DFFF", "block":"Low Surrogates"},
{"begin":"E000", "end":"F8FF", "block":"Private Use Area"},
{"begin":"E0000", "end":"E007F", "block":"Tags"},
{"begin":"F900", "end":"FAFF", "block":"CJK Compatibility Ideographs"},
{"begin":"FB00", "end":"FB4F", "block":"Alphabetic Presentation Forms"},
{"begin":"FB50", "end":"FDFF", "block":"Arabic Presentation Forms-A"},
{"begin":"FE00", "end":"FE0F", "block":"Variation Selectors"},
{"begin":"FE20", "end":"FE2F", "block":"Combining Half Marks"},
{"begin":"FE30", "end":"FE4F", "block":"CJK Compatibility Forms"},
{"begin":"FE50", "end":"FE6F", "block":"Small Form Variants"},
{"begin":"FE70", "end":"FEFF", "block":"Arabic Presentation Forms-B"},
{"begin":"FF00", "end":"FFEF", "block":"Halfwidth and Fullwidth Forms"},
{"begin":"FFF0", "end":"FFFF", "block":"Specials"}
]
constants[] = 

functions[] = stats_absolute_deviation;
functions[] = stats_cdf_beta;
functions[] = stats_cdf_binomial;
functions[] = stats_cdf_cauchy;
functions[] = stats_cdf_chisquare;
functions[] = stats_cdf_exponential;
functions[] = stats_cdf_f;
functions[] = stats_cdf_gamma;
functions[] = stats_cdf_laplace;
functions[] = stats_cdf_logistic;
functions[] = stats_cdf_negative_binomial;
functions[] = stats_cdf_noncentral_chisquare;
functions[] = stats_cdf_noncentral_f;
functions[] = stats_cdf_poisson;
functions[] = stats_cdf_t;
functions[] = stats_cdf_uniform;
functions[] = stats_cdf_weibull;
functions[] = stats_covariance;
functions[] = stats_den_uniform;
functions[] = stats_dens_beta;
functions[] = stats_dens_cauchy;
functions[] = stats_dens_chisquare;
functions[] = stats_dens_exponential;
functions[] = stats_dens_f;
functions[] = stats_dens_gamma;
functions[] = stats_dens_laplace;
functions[] = stats_dens_logistic;
functions[] = stats_dens_negative_binomial;
functions[] = stats_dens_normal;
functions[] = stats_dens_pmf_binomial;
functions[] = stats_dens_pmf_hypergeometric;
functions[] = stats_dens_pmf_poisson;
functions[] = stats_dens_t;
functions[] = stats_dens_weibull;
functions[] = stats_harmonic_mean;
functions[] = stats_kurtosis;
functions[] = stats_rand_gen_beta;
functions[] = stats_rand_gen_chisquare;
functions[] = stats_rand_gen_exponential;
functions[] = stats_rand_gen_f;
functions[] = stats_rand_gen_funiform;
functions[] = stats_rand_gen_gamma;
functions[] = stats_rand_gen_ibinomial_negative;
functions[] = stats_rand_gen_ibinomial;
functions[] = stats_rand_gen_int;
functions[] = stats_rand_gen_ipoisson;
functions[] = stats_rand_gen_iuniform;
functions[] = stats_rand_gen_noncenral_chisquare;
functions[] = stats_rand_gen_noncentral_f;
functions[] = stats_rand_gen_noncentral_t;
functions[] = stats_rand_gen_normal;
functions[] = stats_rand_gen_t;
functions[] = stats_rand_get_seeds;
functions[] = stats_rand_phrase_to_seeds;
functions[] = stats_rand_ranf;
functions[] = stats_rand_setall;
functions[] = stats_skew;
functions[] = stats_standard_deviation;
functions[] = stats_stat_binomial_coef;
functions[] = stats_stat_correlation;
functions[] = stats_stat_gennch;
functions[] = stats_stat_independent_t;
functions[] = stats_stat_innerproduct;
functions[] = stats_stat_noncentral_t;
functions[] = stats_stat_paired_t;
functions[] = stats_stat_percentile;
functions[] = stats_stat_powersum;
functions[] = stats_variance;

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = ldap_8859_to_t61
functions[] = ldap_add
functions[] = ldap_bind
functions[] = ldap_close
functions[] = ldap_compare
functions[] = ldap_connect
functions[] = ldap_control_paged_result_response
functions[] = ldap_control_paged_result
functions[] = ldap_count_entries
functions[] = ldap_delete
functions[] = ldap_dn2ufn
functions[] = ldap_err2str
functions[] = ldap_errno
functions[] = ldap_error
functions[] = ldap_explode_dn
functions[] = ldap_first_attribute
functions[] = ldap_first_entry
functions[] = ldap_first_reference
functions[] = ldap_free_result
functions[] = ldap_get_attributes
functions[] = ldap_get_dn
functions[] = ldap_get_entries
functions[] = ldap_get_option
functions[] = ldap_get_values_len
functions[] = ldap_get_values
functions[] = ldap_list
functions[] = ldap_mod_add
functions[] = ldap_mod_del
functions[] = ldap_mod_replace
functions[] = ldap_modify
functions[] = ldap_next_attribute
functions[] = ldap_next_entry
functions[] = ldap_next_reference
functions[] = ldap_parse_reference
functions[] = ldap_parse_result
functions[] = ldap_read
functions[] = ldap_rename
functions[] = ldap_sasl_bind
functions[] = ldap_search
functions[] = ldap_set_option
functions[] = ldap_set_rebind_proc
functions[] = ldap_sort
functions[] = ldap_start_tls
functions[] = ldap_t61_to_8859
functions[] = ldap_unbind

classes[] = 

constants[] = 'LDAP_DEREF_NEVER';
constants[] = 'LDAP_DEREF_SEARCHING';
constants[] = 'LDAP_DEREF_FINDING';
constants[] = 'LDAP_DEREF_ALWAYS';
constants[] = 'LDAP_OPT_DEREF';
constants[] = 'LDAP_OPT_SIZELIMIT';
constants[] = 'LDAP_OPT_TIMELIMIT';
constants[] = 'LDAP_OPT_NETWORK_TIMEOUT';
constants[] = 'LDAP_OPT_PROTOCOL_VERSION';
constants[] = 'LDAP_OPT_ERROR_NUMBER';
constants[] = 'LDAP_OPT_REFERRALS';
constants[] = 'LDAP_OPT_RESTART';
constants[] = 'LDAP_OPT_HOST_NAME';
constants[] = 'LDAP_OPT_ERROR_STRING';
constants[] = 'LDAP_OPT_MATCHED_DN';
constants[] = 'LDAP_OPT_SERVER_CONTROLS';
constants[] = 'LDAP_OPT_CLIENT_CONTROLS';
constants[] = 'LDAP_OPT_DEBUG_LEVEL';
constants[] = 'LDAP_OPT_X_SASL_MECH';
constants[] = 'LDAP_OPT_X_SASL_REALM';
constants[] = 'LDAP_OPT_X_SASL_AUTHCID';
constants[] = 'LDAP_OPT_X_SASL_AUTHZID';

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

constants[] = 'SNMP_OID_OUTPUT_FULL';
constants[] = 'SNMP_OID_OUTPUT_NUMERIC';
constants[] = 'SNMP_VALUE_LIBRARY';
constants[] = 'SNMP_VALUE_PLAIN';
constants[] = 'SNMP_VALUE_OBJECT';
constants[] = 'SNMP_BIT_STR';
constants[] = 'SNMP_OCTET_STR';
constants[] = 'SNMP_OPAQUE';
constants[] = 'SNMP_NULL';
constants[] = 'SNMP_OBJECT_ID';
constants[] = 'SNMP_IPADDRESS';
constants[] = 'SNMP_COUNTER';
constants[] = 'SNMP_UNSIGNED';
constants[] = 'SNMP_TIMETICKS';
constants[] = 'SNMP_UINTEGER';
constants[] = 'SNMP_INTEGER';
constants[] = 'SNMP_COUNTER64';

functions[] = snmpget
functions[] = snmpgetnext
functions[] = snmpwalk
functions[] = snmprealwalk
functions[] = snmpwalkoid
functions[] = snmp_get_quick_print
functions[] = snmp_set_quick_print
functions[] = snmp_set_enum_print
functions[] = snmp_set_oid_output_format
functions[] = snmp_set_oid_numeric_print
functions[] = snmpset
functions[] = snmp2_get
functions[] = snmp2_getnext
functions[] = snmp2_walk
functions[] = snmp2_real_walk
functions[] = snmp2_set
functions[] = snmp3_get
functions[] = snmp3_getnext
functions[] = snmp3_walk
functions[] = snmp3_real_walk
functions[] = snmp3_set
functions[] = snmp_set_valueretrieval
functions[] = snmp_get_valueretrieval
functions[] = snmp_read_mib

classes[] = SNMP
classes[] = SNMPException

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = 

constants[] = 'SEARCHD_OK';
constants[] = 'SEARCHD_ERROR';
constants[] = 'SEARCHD_RETRY';
constants[] = 'SEARCHD_WARNING';
constants[] = 'SPH_MATCH_ALL';
constants[] = 'SPH_MATCH_ANY';
constants[] = 'SPH_MATCH_PHRASE';
constants[] = 'SPH_MATCH_BOOLEAN';
constants[] = 'SPH_MATCH_EXTENDED';
constants[] = 'SPH_MATCH_FULLSCAN';
constants[] = 'SPH_MATCH_EXTENDED2';
constants[] = 'SPH_RANK_PROXIMITY_BM25';
constants[] = 'SPH_RANK_BM25';
constants[] = 'SPH_RANK_NONE';
constants[] = 'SPH_RANK_WORDCOUNT';
constants[] = 'SPH_SORT_RELEVANCE';
constants[] = 'SPH_SORT_ATTR_DESC';
constants[] = 'SPH_SORT_ATTR_ASC';
constants[] = 'SPH_SORT_TIME_SEGMENTS';
constants[] = 'SPH_SORT_EXTENDED';
constants[] = 'SPH_SORT_EXPR';
constants[] = 'SPH_FILTER_VALUES';
constants[] = 'SPH_FILTER_RANGE';
constants[] = 'SPH_FILTER_FLOATRANGE';
constants[] = 'SPH_ATTR_INTEGER';
constants[] = 'SPH_ATTR_TIMESTAMP';
constants[] = 'SPH_ATTR_ORDINAL';
constants[] = 'SPH_ATTR_BOOL';
constants[] = 'SPH_ATTR_FLOAT';
constants[] = 'SPH_ATTR_MULTI';
constants[] = 'SPH_GROUPBY_DAY';
constants[] = 'SPH_GROUPBY_WEEK';
constants[] = 'SPH_GROUPBY_MONTH';
constants[] = 'SPH_GROUPBY_YEAR';
constants[] = 'SPH_GROUPBY_ATTR';
constants[] = 'SPH_GROUPBY_ATTRPAIR';

classes[] = Sphinx

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = openssl_cipher_iv_length
functions[] = openssl_csr_export_to_file
functions[] = openssl_csr_export
functions[] = openssl_csr_get_public_key
functions[] = openssl_csr_get_subject
functions[] = openssl_csr_new
functions[] = openssl_csr_sign
functions[] = openssl_decrypt
functions[] = openssl_dh_compute_key
functions[] = openssl_digest
functions[] = openssl_encrypt
functions[] = openssl_error_string
functions[] = openssl_free_key
functions[] = openssl_get_cipher_methods
functions[] = openssl_get_md_methods
functions[] = openssl_get_privatekey
functions[] = openssl_get_publickey
functions[] = openssl_open
functions[] = openssl_pbkdf2
functions[] = openssl_pkcs12_export_to_file
functions[] = openssl_pkcs12_export
functions[] = openssl_pkcs12_read
functions[] = openssl_pkcs7_decrypt
functions[] = openssl_pkcs7_encrypt
functions[] = openssl_pkcs7_sign
functions[] = openssl_pkcs7_verify
functions[] = openssl_pkey_export_to_file
functions[] = openssl_pkey_export
functions[] = openssl_pkey_free
functions[] = openssl_pkey_get_details
functions[] = openssl_pkey_get_private
functions[] = openssl_pkey_get_public
functions[] = openssl_pkey_new
functions[] = openssl_private_decrypt
functions[] = openssl_private_encrypt
functions[] = openssl_public_decrypt
functions[] = openssl_public_encrypt
functions[] = openssl_random_pseudo_bytes
functions[] = openssl_seal
functions[] = openssl_sign
functions[] = openssl_verify
functions[] = openssl_x509_check_private_key
functions[] = openssl_x509_checkpurpose
functions[] = openssl_x509_export_to_file
functions[] = openssl_x509_export
functions[] = openssl_x509_free
functions[] = openssl_x509_parse
functions[] = openssl_x509_read
functions[] = openssl_x509_fingerprint

constants[] = 'OPENSSL_ALGO_DSS1';
constants[] = 'OPENSSL_ALGO_MD2';
constants[] = 'OPENSSL_ALGO_MD4';
constants[] = 'OPENSSL_ALGO_MD5';
constants[] = 'OPENSSL_ALGO_RMD160';
constants[] = 'OPENSSL_ALGO_SHA1';
constants[] = 'OPENSSL_ALGO_SHA224';
constants[] = 'OPENSSL_ALGO_SHA256';
constants[] = 'OPENSSL_ALGO_SHA384';
constants[] = 'OPENSSL_ALGO_SHA512';
constants[] = 'OPENSSL_CIPHER_3DES';
constants[] = 'OPENSSL_CIPHER_AES_128_CBC';
constants[] = 'OPENSSL_CIPHER_AES_192_CBC';
constants[] = 'OPENSSL_CIPHER_AES_256_CBC';
constants[] = 'OPENSSL_CIPHER_DES';
constants[] = 'OPENSSL_CIPHER_RC2_128';
constants[] = 'OPENSSL_CIPHER_RC2_40';
constants[] = 'OPENSSL_CIPHER_RC2_64';
constants[] = 'OPENSSL_KEYTYPE_DH';
constants[] = 'OPENSSL_KEYTYPE_DSA';
constants[] = 'OPENSSL_KEYTYPE_EC';
constants[] = 'OPENSSL_KEYTYPE_RSA';
constants[] = 'OPENSSL_NO_PADDING';
constants[] = 'OPENSSL_PKCS1_OAEP_PADDING';
constants[] = 'OPENSSL_PKCS1_PADDING';
constants[] = 'OPENSSL_RAW_DATA';
constants[] = 'OPENSSL_SSLV23_PADDING';
constants[] = 'OPENSSL_TLSEXT_SERVER_NAME';
constants[] = 'OPENSSL_VERSION_NUMBER';
constants[] = 'OPENSSL_VERSION_TEXT';
constants[] = 'OPENSSL_ZERO_PADDING';
constants[] = 'PKCS7_BINARY';
constants[] = 'PKCS7_DETACHED';
constants[] = 'PKCS7_NOATTR';
constants[] = 'PKCS7_NOCERTS';
constants[] = 'PKCS7_NOCHAIN';
constants[] = 'PKCS7_NOINTERN';
constants[] = 'PKCS7_NOSIGS';
constants[] = 'PKCS7_NOVERIFY';
constants[] = 'PKCS7_TEXT';
constants[] = 'X509_PURPOSE_ANY';
constants[] = 'X509_PURPOSE_CRL_SIGN';
constants[] = 'X509_PURPOSE_NS_SSL_SERVER';
constants[] = 'X509_PURPOSE_SMIME_ENCRYPT';
constants[] = 'X509_PURPOSE_SMIME_SIGN';
constants[] = 'X509_PURPOSE_SSL_CLIENT';
constants[] = 'X509_PURPOSE_SSL_SERVER';

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

;php 7.1, 7.2, 7.3 (51 algorithm)
algos[] = 'md2';
algos[] = 'md4';
algos[] = 'md5';
algos[] = 'sha1';
algos[] = 'sha224';
algos[] = 'sha256';
algos[] = 'sha384';
algos[] = 'sha512';
algos[] = 'sha512/224';
algos[] = 'sha512/256';
algos[] = 'sha3-224';
algos[] = 'sha3-256';
algos[] = 'sha3-384';
algos[] = 'sha3-512';
algos[] = 'ripemd128';
algos[] = 'ripemd160';
algos[] = 'ripemd256';
algos[] = 'ripemd320';
algos[] = 'whirlpool';
algos[] = 'tiger128,3';
algos[] = 'tiger160,3';
algos[] = 'tiger192,3';
algos[] = 'tiger128,4';
algos[] = 'tiger160,4';
algos[] = 'tiger192,4';
algos[] = 'snefru';
algos[] = 'snefru256';
algos[] = 'gost';
algos[] = 'gost-crypto';
algos[] = 'adler32';
algos[] = 'crc32';
algos[] = 'crc32b';
algos[] = 'fnv132';
algos[] = 'fnv1a32';
algos[] = 'fnv164';
algos[] = 'fnv1a64';
algos[] = 'joaat';
algos[] = 'haval128,3';
algos[] = 'haval160,3';
algos[] = 'haval192,3';
algos[] = 'haval224,3';
algos[] = 'haval256,3';
algos[] = 'haval128,4';
algos[] = 'haval160,4';
algos[] = 'haval192,4';
algos[] = 'haval224,4';
algos[] = 'haval256,4';
algos[] = 'haval128,5';
algos[] = 'haval160,5';
algos[] = 'haval192,5';
algos[] = 'haval224,5';
algos[] = 'haval256,5';

;php 7.4 versus PHP 7.3/7.2/7.1/7.0
new74[] = 'crc32c';

;php 7.1 versus PHP 7.0/5.6
new71[] = 'sha512/224';
new71[] = 'sha512/256';
new71[] = 'sha3-224';
new71[] = 'sha3-256';
new71[] = 'sha3-384';
new71[] = 'sha3-512';

;php 5.4 versus PHP 5.3
new54[] = 'fnv132';
new54[] = 'fnv164';
new54[] = 'joaat';
removed54[] = 'salsa10';
removed54[] = 'salsa20';

;php 5.6 versus PHP 5.4 (no new in 5.5)
new56[] = 'gost-crypto';
new56[] = 'fnv1a32';
new56[] = 'fnv1a64';
functions[] = gmp_abs
functions[] = gmp_add
functions[] = gmp_and
functions[] = gmp_clrbit
functions[] = gmp_cmp
functions[] = gmp_com
functions[] = gmp_div_q
functions[] = gmp_div_qr
functions[] = gmp_div_r
functions[] = gmp_div
functions[] = gmp_divexact
functions[] = gmp_fact
functions[] = gmp_gcd
functions[] = gmp_gcdext
functions[] = gmp_hamdist
functions[] = gmp_init
functions[] = gmp_intval
functions[] = gmp_invert
functions[] = gmp_jacobi
functions[] = gmp_legendre
functions[] = gmp_mod
functions[] = gmp_mul
functions[] = gmp_neg
functions[] = gmp_nextprime
functions[] = gmp_or
functions[] = gmp_perfect_square
functions[] = gmp_popcount
functions[] = gmp_pow
functions[] = gmp_powm
functions[] = gmp_prob_prime
functions[] = gmp_random
functions[] = gmp_scan0
functions[] = gmp_scan1
functions[] = gmp_setbit
functions[] = gmp_sign
functions[] = gmp_sqrt
functions[] = gmp_sqrtrem
functions[] = gmp_strval
functions[] = gmp_sub
functions[] = gmp_testbit
functions[] = gmp_xor

classes[] = 

constants[] = 'GMP_ROUND_ZERO';
constants[] = 'GMP_ROUND_PLUSINF';
constants[] = 'GMP_ROUND_MINUSINF';
constants[] = 'GMP_VERSION';

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

files[] = "AUTHORS";
files[] = "ChangeLog";
files[] = "CHANGELOG";
files[] = "CHANGES";
files[] = "COPYING";
files[] = "COPYING-AGPL";
files[] = "COPYING-README";
files[] = "CREDITS";
files[] = "Dockerfile";
files[] = "favicon";
files[] = "htaccess";
files[] = "INSTALL";
files[] = "LICENCE";
files[] = "LICENSE-MIT";
files[] = "MIT-LICENSE";
files[] = "README";
files[] = "README_CS";
files[] = "version";
files[] = "VERSION";
functions[] = fastcgi_finish_request

constants[] = 

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = xattr_get
functions[] = xattr_list
functions[] = xattr_remove
functions[] = xattr_set
functions[] = xattr_supported

constants[] = 'XATTR_ROOT';
constants[] = 'XATTR_DONTFOLLOW';
constants[] = 'XATTR_CREATE';
constants[] = 'XATTR_REPLACE';

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

{
"constants": [],
"functions": ["\\xmlwriter_open_uri",
              "\\xmlwriter_open_memory",
              "\\xmlwriter_set_indent",
              "\\xmlwriter_set_indent_string",
              "\\xmlwriter_start_comment",
              "\\xmlwriter_end_comment",
              "\\xmlwriter_start_attribute",
              "\\xmlwriter_end_attribute",
              "\\xmlwriter_write_attribute",
              "\\xmlwriter_start_attribute_ns",
              "\\xmlwriter_write_attribute_ns",
              "\\xmlwriter_start_element",
              "\\xmlwriter_end_element",
              "\\xmlwriter_full_end_element",
              "\\xmlwriter_start_element_ns",
              "\\xmlwriter_write_element",
              "\\xmlwriter_write_element_ns",
              "\\xmlwriter_start_pi",
              "\\xmlwriter_end_pi",
              "\\xmlwriter_write_pi",
              "\\xmlwriter_start_cdata",
              "\\xmlwriter_end_cdata",
              "\\xmlwriter_write_cdata",
              "\\xmlwriter_text",
              "\\xmlwriter_write_raw",
              "\\xmlwriter_start_document",
              "\\xmlwriter_end_document",
              "\\xmlwriter_write_comment",
              "\\xmlwriter_start_dtd",
              "\\xmlwriter_end_dtd",
              "\\xmlwriter_write_dtd",
              "\\xmlwriter_start_dtd_element",
              "\\xmlwriter_end_dtd_element",
              "\\xmlwriter_write_dtd_element",
              "\\xmlwriter_start_dtd_attlist",
              "\\xmlwriter_end_dtd_attlist",
              "\\xmlwriter_write_dtd_attlist",
              "\\xmlwriter_start_dtd_entity",
              "\\xmlwriter_end_dtd_entity",
              "\\xmlwriter_write_dtd_entity",
              "\\xmlwriter_output_memory",
              "\\xmlwriter_flush"
],
"classes": ["\\xmlwriter"
           ],
"classconstants": [],
"properties": [],
"methods": {"\\xmlwriter":["endattribute",
                           "endattribute",
                           "endcdata",
                           "endcomment",
                           "enddocument",
                           "enddtdattlist",
                           "enddtdelement",
                           "enddtdentity",
                           "enddtd",
                           "endelement",
                           "endpi",
                           "flush",
                           "fullendelement",
                           "openmemory",
                           "openuri",
                           "outputmemory",
                           "setindentstring",
                           "setindent",
                           "startattributens",
                           "startattribute",
                           "startcdata",
                           "startcomment",
                           "startdocument",
                           "startdtdattlist",
                           "startdtdelement",
                           "startdtdentity",
                           "startdtd",
                           "startelementns",
                           "startelement",
                           "startpi",
                           "text",
                           "writeattributens",
                           "writeattribute",
                           "writecdata",
                           "writecomment",
                           "writedtdattlist",
                           "writedtdelement",
                           "writedtdentity",
                           "writedtd",
                           "writeelementns",
                           "writeelement",
                           "writepi",
                           "writeraw"
]},
"interfaces": [],
"traits": [],
"namespaces": [],
"directives": []
}
functions[] = xcache_asm
functions[] = xcache_clear_cache
functions[] = xcache_count
functions[] = xcache_list
functions[] = xcache_count
functions[] = xcache_get
functions[] = xcache_set
functions[] = xcache_isset
functions[] = xcache_unset
functions[] = xcache_unset_by_prefix
functions[] = xcache_inc
functions[] = xcache_dec
functions[] = xcache_info

constants[] = 'XC_TYPE_PHP'
constants[] = 'XC_TYPE_VAR'

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = vips_call
functions[] = vips_image_new_from_file
functions[] = vips_image_new_from_buffer
functions[] = vips_image_new_from_array
functions[] = vips_interpolate_new
functions[] = vips_image_write_to_file
functions[] = vips_image_write_to_buffer
functions[] = vips_image_copy_memory
functions[] = vips_foreign_find_load
functions[] = vips_foreign_find_load_buffer
functions[] = vips_image_get
functions[] = vips_image_get_typeof
functions[] = vips_image_set
functions[] = vips_image_remove
functions[] = vips_error_buffer
functions[] = vips_cache_set_max
functions[] = vips_cache_set_max_mem
functions[] = vips_cache_set_max_files
functions[] = vips_concurrency_set

constants[] = 

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = dio_close
functions[] = dio_fcntl
functions[] = dio_open
functions[] = dio_read
functions[] = dio_seek
functions[] = dio_stat
functions[] = dio_tcsetattr
functions[] = dio_truncate
functions[] = dio_write

constants[] = F_DUPFD
constants[] = F_GETFD
constants[] = F_GETFL
constants[] = F_GETLK
constants[] = F_GETOWN
constants[] = F_RDLCK
constants[] = F_SETFL
constants[] = F_SETLK
constants[] = F_SETLKW
constants[] = F_SETOWN
constants[] = F_UNLCK
constants[] = F_WRLCK
constants[] = O_APPEND
constants[] = O_ASYNC
constants[] = O_CREAT
constants[] = O_EXCL
constants[] = O_NDELAY
constants[] = O_NOCTTY
constants[] = O_NONBLOCK
constants[] = O_RDONLY
constants[] = O_RDWR
constants[] = O_SYNC
constants[] = O_TRUNC
constants[] = O_WRONLY
constants[] = S_IRGRP
constants[] = S_IROTH
constants[] = S_IRUSR
constants[] = S_IRWXG
constants[] = S_IRWXO
constants[] = S_IRWXU
constants[] = S_IWGRP
constants[] = S_IWOTH
constants[] = S_IWUSR
constants[] = S_IXGRP
constants[] = S_IXOTH
constants[] = S_IXUSR

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

SQLite format 3   @   c   u                                                          c -
    9                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                etabletraitstraitsCREATE TABLE "traits" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "trait" text,
	 "namespace_id" integer
)!!utableinterfacesinterfacesCREATE TABLE "interfaces" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "interface" text,
	 "namespace_id" integer
)gtableclassesclassesCREATE TABLE "classes" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "class" text,
	 "namespace_id" integer
)!!qtablenamespacesnamespacesCREATE TABLE "namespaces" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "namespace" text,
	 "release_id" integer
)P++Ytablesqlite_sequencesqlite_sequenceCREATE TABLE sqlite_sequence(name,seq)s9tablereleasesreleasesCREATE TABLE "releases" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "release" text
)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 'release-3.0.0 'release-2.5.0 'release-2.4.0 'release-2.3.0 'release-2.2.0 'release-2.1.0 'release-2.0.0                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
traits[!interfacesclasses/8!namespaces
Jreleases       <#hE!
y_M1




j
P
2

					q	N	.	uW@*~^M2yJ:-
|dR6c<&\,`2sB          2~ i	Zend\Feed\Writer\Extension\DublinCore\Renderer/} c	Zend\Feed\Writer\Extension\Content\Renderer,| ]	Zend\Feed\Writer\Extension\Atom\Renderer{ A	Zend\Feed\Writer\Extensionz A	Zend\Feed\Writer\Exceptiony -	Zend\Feed\Writerx A	Zend\Feed\Reader\Feed\Atomw 7	Zend\Feed\Reader\Feed,v ]	Zend\Feed\Reader\Extension\WellFormedWeb%u O	Zend\Feed\Reader\Extension\Thread*t Y	Zend\Feed\Reader\Extension\Syndication$s M	Zend\Feed\Reader\Extension\Slash&r Q	Zend\Feed\Reader\Extension\Podcast)q W	Zend\Feed\Reader\Extension\DublinCore.p a	Zend\Feed\Reader\Extension\CreativeCommons&o Q	Zend\Feed\Reader\Extension\Content#n K	Zend\Feed\Reader\Extension\Atomm A	Zend\Feed\Reader\Extensionl A	Zend\Feed\Reader\Exceptionk 9	Zend\Feed\Reader\Entryj C	Zend\Feed\Reader\Collectioni -	Zend\Feed\Reader%h O	Zend\Feed\PubSubHubbub\Subscriber g E	Zend\Feed\PubSubHubbub\Model$f M	Zend\Feed\PubSubHubbub\Exceptione 9	Zend\Feed\PubSubHubbubd 3	Zend\Feed\Exceptionc =	Zend\EventManager\Filterb C	Zend\EventManager\Exceptiona /	Zend\EventManager` 9	Zend\Escaper\Exception_ %	Zend\Escaper^ 1	Zend\Dom\Exception] 	Zend\Dom\ 9	Zend\Di\ServiceLocator[ /	Zend\Di\ExceptionZ +	Zend\Di\DisplayY A	Zend\Di\Definition\BuilderX 1	Zend\Di\Definition!W G	Zend\Di\Definition\AnnotationV 	Zend\DiU !	Zend\Debug-T _	Zend\Db\TableGateway\Feature\EventFeature S E	Zend\Db\TableGateway\Feature"R I	Zend\Db\TableGateway\ExceptionQ 5	Zend\Db\TableGatewayP 7	Zend\Db\Sql\Predicate"O I	Zend\Db\Sql\Platform\SqlServerN 5	Zend\Db\Sql\PlatformM 7	Zend\Db\Sql\ExceptionL #	Zend\Db\SqlK A	Zend\Db\RowGateway\Feature J E	Zend\Db\RowGateway\ExceptionI 1	Zend\Db\RowGatewayH C	Zend\Db\ResultSet\ExceptionG /	Zend\Db\ResultSetF ;	Zend\Db\Metadata\SourceE ;	Zend\Db\Metadata\ObjectD -	Zend\Db\MetadataC /	Zend\Db\ExceptionB =	Zend\Db\Adapter\PlatformA ?	Zend\Db\Adapter\Exception+@ [	Zend\Db\Adapter\Driver\Sqlsrv\Exception!? G	Zend\Db\Adapter\Driver\Sqlsrv > E	Zend\Db\Adapter\Driver\Pgsql&= Q	Zend\Db\Adapter\Driver\Pdo\Feature< A	Zend\Db\Adapter\Driver\Pdo!; G	Zend\Db\Adapter\Driver\Mysqli": I	Zend\Db\Adapter\Driver\Feature9 +	Zend\Db\Adapter 8 E	Zend\Crypt\Symmetric\Padding7 5	Zend\Crypt\Symmetric"6 I	Zend\Crypt\Symmetric\Exception&5 Q	Zend\Crypt\PublicKey\Rsa\Exception4 =	Zend\Crypt\PublicKey\Rsa3 5	Zend\Crypt\PublicKey!2 G	Zend\Crypt\Password\Exception1 3	Zend\Crypt\Password0 ?	Zend\Crypt\Key\Derivation'/ S	Zend\Crypt\Key\Derivation\Exception. 5	Zend\Crypt\Exception- !	Zend\Crypt, 3	Zend\Console\Prompt+ 9	Zend\Console\Exception* %	Zend\Console) 5	Zend\Console\Charset( 5	Zend\Console\Adapter' 1	Zend\Config\Writer& 1	Zend\Config\Reader% 7	Zend\Config\Processor$ 7	Zend\Config\Exception# #	Zend\Config" /	Zend\Code\Scanner"! I	Zend\Code\Reflection\Exception!  G	Zend\Code\Reflection\DocBlock% O	Zend\Code\Reflection\DocBlock\Tag 5	Zend\Code\Reflection 	Zend\Code! G	Zend\Code\Generator\Exception  E	Zend\Code\Generator\DocBlock$ M	Zend\Code\Generator\DocBlock\Tag 3	Zend\Code\Generator 3	Zend\Code\Exception C	Zend\Code\Annotation\Parser 5	Zend\Code\Annotation 9	Zend\Captcha\Exception %	Zend\Captcha ?	Zend\Cache\Storage\Plugin 1	Zend\Cache\Storage A	Zend\Cache\Storage\Adapter !	Zend\Cache 1	Zend\Cache\Pattern 5	Zend\Cache\Exception# K	Zend\Barcode\Renderer\Exception 7	Zend\Barcode\Renderer! G	Zend\Barcode\Object\Exception
 3	Zend\Barcode\Object	 9	Zend\Barcode\Exception %	Zend\Barcode C	Zend\Authentication\Storage! G	Zend\Authentication\Exception 3	Zend\Authentication$ M	Zend\Authentication\Adapter\Htt   <   =   A   I   L   I   V   X   X   e   f   d   p   r   p   z   |   z   
   	   ~   F\    d|vpjd^XRLF@:4.("
ztnhb\						|	c	N	D	2	!		uhTE/~cL6yW7rT4nW=$zcL2o^L.s                     + 3DerivedClassScanner"* %ClassScanner") 1CachingFileScanner"( /AnnotationScanner"' ?AggregateDirectoryScanner"& -RuntimeException!% =InvalidArgumentException!$ 9BadMethodCallException!# !TagManager " ReturnTag! #PropertyTag  ParamTag MethodTag !GenericTag 1PropertyReflection 3ParameterReflection -MethodReflection 1FunctionReflection )FileReflection 1DocBlockReflection +ClassReflection +NameInformation -RuntimeException =InvalidArgumentException Tag ReturnTag ParamTag !LicenseTag )ValueGenerator 9PropertyValueGenerator /PropertyGenerator 1ParameterGenerator +MethodGenerator
 7FileGeneratorRegistry	 'FileGenerator /DocBlockGenerator )ClassGenerator 'BodyGenerator ;AbstractMemberGenerator /AbstractGenerator -RuntimeException =InvalidArgumentException 9BadMethodCallException  ;GenericAnnotationParser =DoctrineAnnotationParser~ /AnnotationManager} 5AnnotationCollection| -RuntimeException{ ;NoFontProvidedExceptionz =InvalidArgumentExceptiony ?ImageNotLoadableException x CExtensionNotLoadedExceptionw +DomainExceptionv ReCaptcha
u Imaget Figlets Factory	r Dumbq %AbstractWordp +AbstractAdaptero !Serializern 'PluginOptionsm -OptimizeByFactorl +IgnoreUserAbortk -ExceptionHandlerj 5ClearExpiredByFactori )AbstractPluginh PostEventg 'PluginManagerf )ExceptionEvent
e Eventd %Capabilitiesc 5AdapterPluginManagerb 'ZendServerShma )ZendServerDisk` +WinCacheOptions_ WinCache^ 'MemoryOptions] Memory\ -MemcachedOptions[ MemcachedZ +KeyListIteratorY /FilesystemOptionsX 1FilesystemIteratorW !FilesystemV !DbaOptionsU #DbaIteratorT DbaS !ApcOptionsR #ApcIteratorQ ApcP )AdapterOptionsO 1AbstractZendServerN +AbstractAdapterM )StorageFactoryL 5PatternPluginManagerK )PatternFactoryJ )PatternOptionsI #OutputCacheH #ObjectCacheG !ClassCacheF %CaptureCacheE 'CallbackCacheD +AbstractPattern#C IUnsupportedMethodCallExceptionB =UnexpectedValueExceptionA -RuntimeException@ 3OutOfSpaceException? 3MissingKeyException> AMissingDependencyException= )LogicException< =InvalidArgumentException ; CExtensionNotLoadedException: 9BadMethodCallException9 =UnexpectedValueException8 -RuntimeException7 3OutOfRangeException6 =InvalidArgumentException5 Svg4 Pdf
3 Image2 -AbstractRenderer1 -RuntimeException0 3OutOfRangeException/ =InvalidArgumentException . CExtensionNotLoadedException- ABarcodeValidationException	, Upce
	+ Upca
* Royalmail
) Postnet
( Planet
' Leitcode

& Itf14
% Identcode

$ Error
	# Ean8
	" Ean5
	! Ean2

  Ean13
 Code39
 /Code25interleaved
 Code25
 Code128
 Codabar
 )AbstractObject
 =UnexpectedValueException	 -RuntimeException	 ?RendererCreationException	 3OutOfRangeException	 =InvalidArgumentException	 7Rende   c    bq   aV   `J   _-   ^   ]Y   \+   [|   ZI   Y   Xx   W9   V   U   T|   SG   R   Qb   P2   O   NU   M.   Lu   K\   JO   I.   H{   GJ   F   Eb   D1   C   B^   A-   @   ?   >W   =&   <n   ;?   :   9e   87   7   6f   5X   4-   3z   2B   1   0Y   /<   .   -V   ,;   +(   *t   )>   (   'Z   &-   %   $G   #)   "   !Y       g   +       u hO5w^E/u\D+





r
[
A
$
						w	^	D	+	rXD!
kO2hO(hCtS>$vW="dM.kP5              1PluginClassLocator  1ExceptionInterface  5ObjectClassInterface  9AttributeTypeInterface  1ExceptionInterface  1ExceptionInterface 
 1ExceptionInterface 	 1ExceptionInterface  1ExceptionInterface  9InputProviderInterface  )InputInterface " EInputFilterProviderInterface  5InputFilterInterface  ?InputFilterAwareInterface  1ExceptionInterface  =TranslatorAwareInterface   7RemoteLoaderInterface  3FileLoaderInterface ~ 1ExceptionInterface } ;MultipleHeaderInterface | +HeaderInterface { 1ExceptionInterface z 1ExceptionInterface y 1ExceptionInterface x 1ExceptionInterface w +StreamInterface v -AdapterInterface u 1ExceptionInterface t 'FormInterface s ?FormFactoryAwareInterface #r GFieldsetPrepareAwareInterface q /FieldsetInterface "p EElementPrepareAwareInterface o -ElementInterface n +FilterInterface m 1ExceptionInterface "l EEncryptionAlgorithmInterface #k GCompressionAlgorithmInterface j 1ExceptionInterface i 1ExceptionInterface h /RendererInterface g /RendererInterface{f 1ExceptionInterfaceze 'FeedInterfacewd 1ExceptionInterfacelc )EntryInterfacek%b MSubscriptionPersistenceInterfacega 1ExceptionInterfacef` /CallbackInterfacee_ 1ExceptionInterfaced^ +FilterInterfacec] 1ExceptionInterfaceb \ CSharedEventManagerInterfacea%[ MSharedEventManagerAwareInterfaceaZ AListenerAggregateInterfaceaY 9EventsCapableInterfaceaX 7EventManagerInterfaceaW AEventManagerAwareInterfaceaV )EventInterfaceaU 1ExceptionInterface`T 1ExceptionInterface^S 1ExceptionInterface[R ;ServiceLocatorInterfaceVQ -LocatorInterfaceV!P EDependencyInjectionInterfaceVO 'PartialMarkerXN 3DefinitionInterfaceXM 7TableGatewayInterfaceQL 1ExceptionInterfaceRK 1PredicateInterfacePJ APlatformDecoratorInterfaceNI %SqlInterfaceLH 9PreparableSqlInterfaceLG 3ExpressionInterfaceLF 1ExceptionInterfaceME 3RowGatewayInterfaceID 1ExceptionInterfaceJC 1ResultSetInterfaceGB 1ExceptionInterfaceHA /MetadataInterfaceD@ 1ExceptionInterfaceC? /PlatformInterfaceB> 1ExceptionInterfaceA= 1ExceptionInterface@< 9DriverFeatureInterface:; 1StatementInterfaceM: +ResultInterfaceM9 +DriverInterfaceM8 3ConnectionInterfaceM 7 CStatementContainerInterface96 7AdapterAwareInterface95 1SymmetricInterface74 -PaddingInterface83 1ExceptionInterface62 1ExceptionInterface51 /PasswordInterface10 1ExceptionInterface2/ 1ExceptionInterface/. 1ExceptionInterface.- +PromptInterface,, 1ExceptionInterface++ )ColorInterface** -CharsetInterface)) -AdapterInterface(( +WriterInterface'' +ReaderInterface&& 1ProcessorInterface%% 1ExceptionInterface$$ -ScannerInterface"# 3ReflectionInterface" 1ExceptionInterface!! %TagInterface  1GeneratorInterface 1ExceptionInterface 1ExceptionInterface +ParserInterface 3AnnotationInterface 1ExceptionInterface -AdapterInterface +PluginInterface ATotalSpaceCapableInterface /TaggableInterface -StorageInterface 5OptimizableInterface /IteratorInterface /IterableInterface 1FlushableInterface 7ClearExpiredInterface 9ClearByPrefixInterface ?ClearByNamespaceInterface# IAvailableSpaceCapableInterface -PatternInterface 1ExceptionInterface /RendererInterface
 1ExceptionInterface	 +ObjectInterface
 1ExceptionInterface 1ExceptionInterface	 -StorageInterface 1ExceptionInterface   tb   sb   rZ   qX   pS   oM   nI   mA   l@   k:   j3   i.   h%   g   f   e   [H eH0lO7x\?'mO1sS=




}
g
J
3
						e	N	8	iK$~fDzdH                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          [ 5TranslatorAwareTrait
,Z )NullGuardTrait
JY +EmptyGuardTrait
J"X EArrayOrTraversableGuardTrait
JW )AllGuardsTrait
JV 3ValidatorChainTrait
U =CommonPluginManagerTrait
IT /RouterConfigTrait	#S GConsoleViewManagerConfigTrait	 R AHttpViewManagerConfigTrait	Q -LoggerAwareTrait	P 7InputFilterAwareTrait	O 5TranslatorAwareTrait	N 1HydratorAwareTrait	wM +LabelAwareTrait	eL 7FormFactoryAwareTrait	eK ;FormElementManagerTrait	h%J KEventListenerIntrospectionTrait
HI 9ListenerAggregateTrait	.H 9EventManagerAwareTrait	.G -SapiEmitterTrait	(F 9InjectContentTypeTrait	(E %RequestTrait	%D %MessageTrait	%C /AdapterAwareTraitB =PluginManagerLookupTraitA 1HydratorAwareTraitx@ )NullGuardTraitw? +EmptyGuardTraitw"> EArrayOrTraversableGuardTraitw= )AllGuardsTraitw< =ServiceLocatorAwareTraitc!; CMutableCreationOptionsTraitc: -LoggerAwareTrait9 7InputFilterAwareTrait8 5TranslatorAwareTrait7 +LabelAwareTrait6 7FormFactoryAwareTrait5 )ProvidesEvents4 9ListenerAggregateTrait3 9EventManagerAwareTrait2 /AdapterAwareTraitn1 1HydratorAwareTrait0 )NullGuardTrait/ +EmptyGuardTrait". EArrayOrTraversableGuardTrait- )AllGuardsTrait, =ServiceLocatorAwareTrait!+ CMutableCreationOptionsTrait* -LoggerAwareTrait) 7InputFilterAwareTraitp( 5TranslatorAwareTraitk' +LabelAwareTraitX& 7FormFactoryAwareTraitX% )ProvidesEvents!$ 9ListenerAggregateTrait!# 9EventManagerAwareTrait!" /AdapterAwareTrait! 1HydratorAwareTraitq  )NullGuardTraitp +EmptyGuardTraitp" EArrayOrTraversableGuardTraitp )AllGuardsTraitp =ServiceLocatorAwareTrait] -LoggerAwareTrait
 7InputFilterAwareTrait 5TranslatorAwareTrait +LabelAwareTrait 7FormFactoryAwareTrait )ProvidesEvents 9ListenerAggregateTrait 9EventManagerAwareTrait /AdapterAwareTraitn =ServiceLocatorAwareTrait -LoggerAwareTrait 7InputFilterAwareTraits 5TranslatorAwareTraitn 7FormFactoryAwareTraitZ )ProvidesEvents$ 9ListenerAggregateTrait$ 9EventManagerAwareTrait$
 /AdapterAwareTrait	 =ServiceLocatorAwareTraitp -LoggerAwareTrait" 7InputFilterAwareTrait 5TranslatorAwareTrait 7FormFactoryAwareTrait )ProvidesEvents 9EventManagerAwareTrait /AdapterAwareTrait )ProvidesEventsa   ~ ^E"|W=%vU<#hE!
y_M1




j
P
2

					q	N	.	uW@*~^M2yJ:-
|dR6c<&\,`2sB          2~ i	Zend\Feed\Writer\Extension\DublinCore\Renderer/} c	Zend\Feed\Writer\Extension\Content\Renderer,| ]	Zend\Feed\Writer\Extension\Atom\Renderer{ A	Zend\Feed\Writer\Extensionz A	Zend\Feed\Writer\Exceptiony -	Zend\Feed\Writerx A	Zend\Feed\Reader\Feed\Atomw 7	Zend\Feed\Reader\Feed,v ]	Zend\Feed\Reader\Extension\WellFormedWeb%u O	Zend\Feed\Reader\Extension\Thread*t Y	Zend\Feed\Reader\Extension\Syndication$s M	Zend\Feed\Reader\Extension\Slash&r Q	Zend\Feed\Reader\Extension\Podcast)q W	Zend\Feed\Reader\Extension\DublinCore.p a	Zend\Feed\Reader\Extension\CreativeCommons&o Q	Zend\Feed\Reader\Extension\Content#n K	Zend\Feed\Reader\Extension\Atomm A	Zend\Feed\Reader\Extensionl A	Zend\Feed\Reader\Exceptionk 9	Zend\Feed\Reader\Entryj C	Zend\Feed\Reader\Collectioni -	Zend\Feed\Reader%h O	Zend\Feed\PubSubHubbub\Subscriber g E	Zend\Feed\PubSubHubbub\Model$f M	Zend\Feed\PubSubHubbub\Exceptione 9	Zend\Feed\PubSubHubbubd 3	Zend\Feed\Exceptionc =	Zend\EventManager\Filterb C	Zend\EventManager\Exceptiona /	Zend\EventManager` 9	Zend\Escaper\Exception_ %	Zend\Escaper^ 1	Zend\Dom\Exception] 	Zend\Dom\ 9	Zend\Di\ServiceLocator[ /	Zend\Di\ExceptionZ +	Zend\Di\DisplayY A	Zend\Di\Definition\BuilderX 1	Zend\Di\Definition!W G	Zend\Di\Definition\AnnotationV 	Zend\DiU !	Zend\Debug-T _	Zend\Db\TableGateway\Feature\EventFeature S E	Zend\Db\TableGateway\Feature"R I	Zend\Db\TableGateway\ExceptionQ 5	Zend\Db\TableGatewayP 7	Zend\Db\Sql\Predicate"O I	Zend\Db\Sql\Platform\SqlServerN 5	Zend\Db\Sql\PlatformM 7	Zend\Db\Sql\ExceptionL #	Zend\Db\SqlK A	Zend\Db\RowGateway\Feature J E	Zend\Db\RowGateway\ExceptionI 1	Zend\Db\RowGatewayH C	Zend\Db\ResultSet\ExceptionG /	Zend\Db\ResultSetF ;	Zend\Db\Metadata\SourceE ;	Zend\Db\Metadata\ObjectD -	Zend\Db\MetadataC /	Zend\Db\ExceptionB =	Zend\Db\Adapter\PlatformA ?	Zend\Db\Adapter\Exception+@ [	Zend\Db\Adapter\Driver\Sqlsrv\Exception!? G	Zend\Db\Adapter\Driver\Sqlsrv > E	Zend\Db\Adapter\Driver\Pgsql&= Q	Zend\Db\Adapter\Driver\Pdo\Feature< A	Zend\Db\Adapter\Driver\Pdo!; G	Zend\Db\Adapter\Driver\Mysqli": I	Zend\Db\Adapter\Driver\Feature9 +	Zend\Db\Adapter 8 E	Zend\Crypt\Symmetric\Padding7 5	Zend\Crypt\Symmetric"6 I	Zend\Crypt\Symmetric\Exception&5 Q	Zend\Crypt\PublicKey\Rsa\Exception4 =	Zend\Crypt\PublicKey\Rsa3 5	Zend\Crypt\PublicKey!2 G	Zend\Crypt\Password\Exception1 3	Zend\Crypt\Password0 ?	Zend\Crypt\Key\Derivation'/ S	Zend\Crypt\Key\Derivation\Exception. 5	Zend\Crypt\Exception- !	Zend\Crypt, 3	Zend\Console\Prompt+ 9	Zend\Console\Exception* %	Zend\Console) 5	Zend\Console\Charset( 5	Zend\Console\Adapter' 1	Zend\Config\Writer& 1	Zend\Config\Reader% 7	Zend\Config\Processor$ 7	Zend\Config\Exception# #	Zend\Config" /	Zend\Code\Scanner"! I	Zend\Code\Reflection\Exception!  G	Zend\Code\Reflection\DocBlock% O	Zend\Code\Reflection\DocBlock\Tag 5	Zend\Code\Reflection 	Zend\Code! G	Zend\Code\Generator\Exception  E	Zend\Code\Generator\DocBlock$ M	Zend\Code\Generator\DocBlock\Tag 3	Zend\Code\Generator 3	Zend\Code\Exception C	Zend\Code\Annotation\Parser 5	Zend\Code\Annotation 9	Zend\Captcha\Exception %	Zend\Captcha ?	Zend\Cache\Storage\Plugin 1	Zend\Cache\Storage A	Zend\Cache\Storage\Adapter !	Zend\Cache 1	Zend\Cache\Pattern 5	Zend\Cache\Exception# K	Zend\Barcode\Renderer\Exception 7	Zend\Barcode\Renderer! G	Zend\Barcode\Object\Exception
 3	Zend\Barcode\Object	 9	Zend\Barcode\Exception %	Zend\Barcode C	Zend\Authentication\Storage! G	Zend\Authentication\Exception 3	Zend\Authentication$ M	Zend\Authentication\Adapter\Http. a	Zend\Authentication\Adapter\Http\Exception) W	Zend\Authentication\Adapter\Exception C	Zend\Authentication\Adapter    xDvL<"~bK4rS*sT;!





u
`
I
(
						l	\	A	'	jN$waC3jH)	fC(eB xZ:	sX:hC               ! G	Zend\Permissions\Acl\Resource" I	Zend\Permissions\Acl\Exception  5	Zend\Permissions\Acl! G	Zend\Paginator\ScrollingStyle~ )	Zend\Paginator} =	Zend\Paginator\Exception$| M	Zend\Paginator\Adapter\Exception{ 9	Zend\Paginator\Adapterz 5	Zend\Navigation\Viewy ;	Zend\Navigation\Servicex 5	Zend\Navigation\Pagew ?	Zend\Navigation\Exceptionv +	Zend\Navigationu '	Zend\Mvc\Viewt 1	Zend\Mvc\View\Https 7	Zend\Mvc\View\Consoler -	Zend\Mvc\Serviceq +	Zend\Mvc\Routerp 5	Zend\Mvc\Router\Httpo ?	Zend\Mvc\Router\Exceptionn ;	Zend\Mvc\Router\Consolem 1	Zend\Mvc\Exceptionl A	Zend\Mvc\Controller\Plugink 3	Zend\Mvc\Controllerj 	Zend\Mvci 1	Zend\ModuleManager)h W	Zend\ModuleManager\Listener\Exceptiong C	Zend\ModuleManager\Listener f E	Zend\ModuleManager\Exceptione 3	Zend\Mime\Exceptiond 	Zend\Mimec #	Zend\Memoryb 7	Zend\Memory\Exceptiona 7	Zend\Memory\Container` 	Zend\Math_ 3	Zend\Math\Exception"^ I	Zend\Math\BigInteger\Exception] 5	Zend\Math\BigInteger \ E	Zend\Math\BigInteger\Adapter[ 3	Zend\Mail\Transport!Z G	Zend\Mail\Transport\ExceptionY A	Zend\Mail\Storage\WritableX 9	Zend\Mail\Storage\Part$W M	Zend\Mail\Storage\Part\ExceptionV ?	Zend\Mail\Storage\MessageU =	Zend\Mail\Storage\FolderT C	Zend\Mail\Storage\ExceptionS /	Zend\Mail\Storage R E	Zend\Mail\Protocol\Smtp\Auth Q E	Zend\Mail\Protocol\ExceptionP 1	Zend\Mail\ProtocolO A	Zend\Mail\Header\ExceptionN -	Zend\Mail\HeaderM 3	Zend\Mail\ExceptionL 	Zend\MailK ;	Zend\Log\Writer\FirePhpJ +	Zend\Log\WriterI 	Zend\LogH 1	Zend\Log\FormatterG +	Zend\Log\FilterF 1	Zend\Log\ExceptionE 7	Zend\Loader\ExceptionD #	Zend\Loader%C O	Zend\Ldap\Node\Schema\ObjectClass'B S	Zend\Ldap\Node\Schema\AttributeTypeA 7	Zend\Ldap\Node\Schema@ 9	Zend\Ldap\Node\RootDse? )	Zend\Ldap\Node> )	Zend\Ldap\Ldif= A	Zend\Ldap\Filter\Exception< -	Zend\Ldap\Filter; 3	Zend\Ldap\Exception!: G	Zend\Ldap\Converter\Exception9 3	Zend\Ldap\Converter8 5	Zend\Ldap\Collection7 	Zend\Ldap6 5	Zend\Json\Server\Smd5 ?	Zend\Json\Server\Response4 =	Zend\Json\Server\Request3 A	Zend\Json\Server\Exception2 -	Zend\Json\Server1 3	Zend\Json\Exception0 	Zend\Json/ A	Zend\InputFilter\Exception. -	Zend\InputFilter- )	Zend\I18n\View, 7	Zend\I18n\View\Helper+ 3	Zend\I18n\Validator* C	Zend\I18n\Translator\Plural) 5	Zend\I18n\Translator( C	Zend\I18n\Translator\Loader' -	Zend\I18n\Filter& 3	Zend\I18n\Exception% 1	Zend\Http\Response$ =	Zend\Http\PhpEnvironment# A	Zend\Http\Header\Exception*" Y	Zend\Http\Header\Accept\FieldValuePart! -	Zend\Http\Header  3	Zend\Http\Exception A	Zend\Http\Client\Exception -	Zend\Http\Client& Q	Zend\Http\Client\Adapter\Exception =	Zend\Http\Client\Adapter 	Zend\Http )	Zend\Form\View! G	Zend\Form\View\Helper\Captcha 7	Zend\Form\View\Helper 3	Zend\Form\Exception 	Zend\Form /	Zend\Form\Element 5	Zend\Form\Annotation -	Zend\Filter\Word -	Zend\Filter\File 7	Zend\Filter\Exception 3	Zend\Filter\Encrypt 5	Zend\Filter\Compress #	Zend\Filter 1	Zend\File\Transfer  E	Zend\File\Transfer\Exception A	Zend\File\Transfer\Adapter
 3	Zend\File\Exception	 	Zend\File' S	Zend\Feed\Writer\Renderer\Feed\Atom" I	Zend\Feed\Writer\Renderer\Feed# K	Zend\Feed\Writer\Renderer\Entry( U	Zend\Feed\Writer\Renderer\Entry\Atom ?	Zend\Feed\Writer\Renderer5 o	Zend\Feed\Writer\Extension\WellFormedWeb\Renderer1 g	Zend\Feed\Writer\Extension\Threading\Renderer- _	Zend\Feed\Writer\Extension\Slash\Renderer.  a	Zend\Feed\Writer\Extension\ITunes\Renderer% O	Zend\Feed\Writer\Extension\ITunes   $ w`B,gJ&VF/hI kK+





c
P
6

 				~	h	O	6		}bI&pCaM/ucI'{`E~Y3}aG3e@$                     5Zend\Crypt\PublicKey" GZend\Crypt\Password\Exception 3Zend\Crypt\Password ?Zend\Crypt\Key\Derivation( SZend\Crypt\Key\Derivation\Exception 5Zend\Crypt\Exception  !Zend\Crypt 3Zend\Console\Prompt~ 9Zend\Console\Exception} %Zend\Console| 1Zend\Console\Color{ 5Zend\Console\Charsetz 5Zend\Console\Adaptery 1Zend\Config\Writerx 1Zend\Config\Readerw 7Zend\Config\Processorv 7Zend\Config\Exceptionu #Zend\Configt /Zend\Code\Scanner#s IZend\Code\Reflection\Exception"r GZend\Code\Reflection\DocBlock&q OZend\Code\Reflection\DocBlock\Tagp 5Zend\Code\Reflectiono Zend\Code"n GZend\Code\Generator\Exception!m EZend\Code\Generator\DocBlock%l MZend\Code\Generator\DocBlock\Tagk 3Zend\Code\Generatorj 3Zend\Code\Exception i CZend\Code\Annotation\Parserh 5Zend\Code\Annotationg 9Zend\Captcha\Exceptionf %Zend\Captchae ?Zend\Cache\Storage\Plugind 1Zend\Cache\Storagec AZend\Cache\Storage\Adapterb 1Zend\Cache\Servicea !Zend\Cache` 1Zend\Cache\Pattern_ 5Zend\Cache\Exception$^ KZend\Barcode\Renderer\Exception] 7Zend\Barcode\Renderer"\ GZend\Barcode\Object\Exception[ 3Zend\Barcode\ObjectZ 9Zend\Barcode\ExceptionY %Zend\Barcode"X GZend\Authentication\Validator W CZend\Authentication\Storage"V GZend\Authentication\ExceptionU 3Zend\Authentication/T aZend\Authentication\Adapter\Http\Exception%S MZend\Authentication\Adapter\Http*R WZend\Authentication\Adapter\Exception Q CZend\Authentication\Adapter"P I	Zend\Permissions\Acl\AssertionO A	Zend\ModuleManager\FeatureN /	Zend\Mail\AddressM 9	Zend\Db\Adapter\DriverL /	Zend\XmlRpc\Value K E	Zend\XmlRpc\Server\ExceptionJ 1	Zend\XmlRpc\ServerI 5	Zend\XmlRpc\ResponseH 3	Zend\XmlRpc\RequestG 7	Zend\XmlRpc\GeneratorF 7	Zend\XmlRpc\ExceptionE 1	Zend\XmlRpc\Client D E	Zend\XmlRpc\Client\ExceptionC #	Zend\XmlRpcB 1	Zend\View\StrategyA 1	Zend\View\Resolver@ 1	Zend\View\Renderer? +	Zend\View\Model> 	Zend\View = E	Zend\View\Helper\Placeholder*< Y	Zend\View\Helper\Placeholder\Container; C	Zend\View\Helper\Navigation: =	Zend\View\Helper\Escaper9 -	Zend\View\Helper8 3	Zend\View\Exception7 %	Zend\Version6 9	Zend\Validator\Sitemap5 3	Zend\Validator\File4 =	Zend\Validator\Exception3 /	Zend\Validator\Db2 9	Zend\Validator\Barcode1 )	Zend\Validator0 	Zend\Uri/ 1	Zend\Uri\Exception. ?	Zend\Text\Table\Exception- ?	Zend\Text\Table\Decorator, +	Zend\Text\Table+ 	Zend\Text* -	Zend\Text\Figlet) A	Zend\Text\Figlet\Exception( 3	Zend\Text\Exception' 1	Zend\Tag\Exception& 	Zend\Tag% )	Zend\Tag\Cloud&$ Q	Zend\Tag\Cloud\Decorator\Exception# =	Zend\Tag\Cloud\Decorator!" G	Zend\Stdlib\Hydrator\Strategy! 5	Zend\Stdlib\Hydrator  7	Zend\Stdlib\Exception #	Zend\Stdlib& Q	Zend\Soap\Wsdl\ComplexTypeStrategy -	Zend\Soap\Server 3	Zend\Soap\Exception -	Zend\Soap\Client 	Zend\Soap, ]	Zend\Soap\AutoDiscover\DiscoveryStrategy 9	Zend\Session\Validator 5	Zend\Session\Storage =	Zend\Session\SaveHandler 9	Zend\Session\Exception 3	Zend\Session\Config %	Zend\Session! G	Zend\ServiceManager\Exception 9	Zend\ServiceManager\Di 3	Zend\ServiceManager$ M	Zend\Server\Reflection\Exception 9	Zend\Server\Reflection 1	Zend\Server\Method 7	Zend\Server\Exception #	Zend\Server
 ?	Zend\Serializer\Exception	 +	Zend\Serializer ;	Zend\Serializer\Adapter -	Zend\ProgressBar A	Zend\ProgressBar\Exception& Q	Zend\ProgressBar\Adapter\Exception =	Zend\ProgressBar\Adapter ?	Zend\Permissions\Acl\Role   t  tP9Z6hP1vcF*`<





r
Y
;
+
						h	J	"|Z8^6pX6{R `4nJ0}dS8cK)       z -Zend\Http\Headery 3Zend\Http\Exceptionx AZend\Http\Client\Exceptionw -Zend\Http\Client'v QZend\Http\Client\Adapter\Exceptionu =Zend\Http\Client\Adaptert Zend\Https )Zend\Form\Viewr AZend\Form\View\Helper\File"q GZend\Form\View\Helper\Captchap 7Zend\Form\View\Helpero 3Zend\Form\Exceptionn Zend\Formm /Zend\Form\Elementl 5Zend\Form\Annotationk -Zend\Filter\Wordj -Zend\Filter\Filei 7Zend\Filter\Exceptionh 3Zend\Filter\Encryptg 5Zend\Filter\Compressf #Zend\Filtere 1Zend\File\Transfer!d EZend\File\Transfer\Exceptionc AZend\File\Transfer\Adapterb 3Zend\File\Exceptiona Zend\File(` SZend\Feed\Writer\Renderer\Feed\Atom#_ IZend\Feed\Writer\Renderer\Feed$^ KZend\Feed\Writer\Renderer\Entry)] UZend\Feed\Writer\Renderer\Entry\Atom\ ?Zend\Feed\Writer\Renderer6[ oZend\Feed\Writer\Extension\WellFormedWeb\Renderer2Z gZend\Feed\Writer\Extension\Threading\Renderer.Y _Zend\Feed\Writer\Extension\Slash\Renderer/X aZend\Feed\Writer\Extension\ITunes\Renderer&W OZend\Feed\Writer\Extension\ITunes3V iZend\Feed\Writer\Extension\DublinCore\Renderer0U cZend\Feed\Writer\Extension\Content\Renderer-T ]Zend\Feed\Writer\Extension\Atom\RendererS AZend\Feed\Writer\ExtensionR AZend\Feed\Writer\ExceptionQ -Zend\Feed\WriterP AZend\Feed\Reader\Feed\AtomO 7Zend\Feed\Reader\Feed-N ]Zend\Feed\Reader\Extension\WellFormedWeb&M OZend\Feed\Reader\Extension\Thread+L YZend\Feed\Reader\Extension\Syndication%K MZend\Feed\Reader\Extension\Slash'J QZend\Feed\Reader\Extension\Podcast*I WZend\Feed\Reader\Extension\DublinCore/H aZend\Feed\Reader\Extension\CreativeCommons'G QZend\Feed\Reader\Extension\Content$F KZend\Feed\Reader\Extension\AtomE AZend\Feed\Reader\ExtensionD AZend\Feed\Reader\ExceptionC 9Zend\Feed\Reader\Entry B CZend\Feed\Reader\CollectionA -Zend\Feed\Reader&@ OZend\Feed\PubSubHubbub\Subscriber!? EZend\Feed\PubSubHubbub\Model%> MZend\Feed\PubSubHubbub\Exception= 9Zend\Feed\PubSubHubbub< 3Zend\Feed\Exception; =Zend\EventManager\Filter : CZend\EventManager\Exception9 /Zend\EventManager8 9Zend\Escaper\Exception7 %Zend\Escaper6 1Zend\Dom\Exception5 Zend\Dom4 9Zend\Di\ServiceLocator3 /Zend\Di\Exception2 +Zend\Di\Display1 AZend\Di\Definition\Builder0 1Zend\Di\Definition"/ GZend\Di\Definition\Annotation. Zend\Di- !Zend\Debug., _Zend\Db\TableGateway\Feature\EventFeature!+ EZend\Db\TableGateway\Feature#* IZend\Db\TableGateway\Exception) 5Zend\Db\TableGateway( 7Zend\Db\Sql\Predicate#' IZend\Db\Sql\Platform\SqlServer & CZend\Db\Sql\Platform\Oracle% AZend\Db\Sql\Platform\Mysql$ 5Zend\Db\Sql\Platform# 7Zend\Db\Sql\Exception" #Zend\Db\Sql! AZend\Db\RowGateway\Feature!  EZend\Db\RowGateway\Exception 1Zend\Db\RowGateway  CZend\Db\ResultSet\Exception /Zend\Db\ResultSet ;Zend\Db\Metadata\Source ;Zend\Db\Metadata\Object -Zend\Db\Metadata /Zend\Db\Exception =Zend\Db\Adapter\Profiler =Zend\Db\Adapter\Platform ?Zend\Db\Adapter\Exception, [Zend\Db\Adapter\Driver\Sqlsrv\Exception" GZend\Db\Adapter\Driver\Sqlsrv! EZend\Db\Adapter\Driver\Pgsql' QZend\Db\Adapter\Driver\Pdo\Feature AZend\Db\Adapter\Driver\Pdo  CZend\Db\Adapter\Driver\Oci8" GZend\Db\Adapter\Driver\Mysqli" GZend\Db\Adapter\Driver\IbmDb2# IZend\Db\Adapter\Driver\Feature +Zend\Db\Adapter! EZend\Crypt\Symmetric\Padding
 5Zend\Crypt\Symmetric#	 IZend\Crypt\Symmetric\Exception' QZend\Crypt\PublicKey\Rsa\Exception =Zend\Crypt\PublicKey\Rsa    v[C {YH-iN)mBt]<




y
U
<
					p	K	0	dQ@%lJ0iO:#e?)	}\?uV?sU0YH0         | 3Zend\Soap\Exception{ -Zend\Soap\Clientz Zend\Soap-y ]Zend\Soap\AutoDiscover\DiscoveryStrategyx 9Zend\Session\Validatorw 5Zend\Session\Storagev =Zend\Session\SaveHandleru 9Zend\Session\Exceptiont 3Zend\Session\Configs %Zend\Session"r GZend\ServiceManager\Exceptionq 9Zend\ServiceManager\Dip 3Zend\ServiceManager%o MZend\Server\Reflection\Exceptionn 9Zend\Server\Reflectionm 1Zend\Server\Methodl 7Zend\Server\Exceptionk #Zend\Serverj ?Zend\Serializer\Exceptioni +Zend\Serializerh ;Zend\Serializer\Adapterg ;Zend\ProgressBar\Uploadf -Zend\ProgressBare AZend\ProgressBar\Exception'd QZend\ProgressBar\Adapter\Exceptionc =Zend\ProgressBar\Adapter$b KZend\Permissions\Rbac\Exceptiona 7Zend\Permissions\Rbac` ?Zend\Permissions\Acl\Role"_ GZend\Permissions\Acl\Resource#^ IZend\Permissions\Acl\Exception] 5Zend\Permissions\Acl"\ GZend\Paginator\ScrollingStyle[ =Zend\Paginator\ExceptionZ )Zend\Paginator#Y IZend\Paginator\Adapter\Service%X MZend\Paginator\Adapter\ExceptionW 9Zend\Paginator\AdapterV 5Zend\Navigation\ViewU ;Zend\Navigation\ServiceT 5Zend\Navigation\PageS ?Zend\Navigation\ExceptionR +Zend\NavigationQ 'Zend\Mvc\ViewP 1Zend\Mvc\View\HttpO 7Zend\Mvc\View\ConsoleN -Zend\Mvc\ServiceM +Zend\Mvc\RouterL 5Zend\Mvc\Router\HttpK ?Zend\Mvc\Router\ExceptionJ ;Zend\Mvc\Router\ConsoleI ;Zend\Mvc\ResponseSenderH 1Zend\Mvc\ExceptionG AZend\Mvc\Controller\PluginF 3Zend\Mvc\ControllerE Zend\MvcD 1Zend\ModuleManager*C WZend\ModuleManager\Listener\Exception B CZend\ModuleManager\Listener!A EZend\ModuleManager\Exception@ 3Zend\Mime\Exception? Zend\Mime> #Zend\Memory= 7Zend\Memory\Exception< 7Zend\Memory\Container; Zend\Math: 3Zend\Math\Exception#9 IZend\Math\BigInteger\Exception8 5Zend\Math\BigInteger!7 EZend\Math\BigInteger\Adapter6 3Zend\Mail\Transport"5 GZend\Mail\Transport\Exception4 AZend\Mail\Storage\Writable3 9Zend\Mail\Storage\Part%2 MZend\Mail\Storage\Part\Exception1 ?Zend\Mail\Storage\Message0 =Zend\Mail\Storage\Folder / CZend\Mail\Storage\Exception. /Zend\Mail\Storage!- EZend\Mail\Protocol\Smtp\Auth!, EZend\Mail\Protocol\Exception+ 1Zend\Mail\Protocol* AZend\Mail\Header\Exception) -Zend\Mail\Header( 3Zend\Mail\Exception' Zend\Mail& ;Zend\Log\Writer\FirePhp% ?Zend\Log\Writer\ChromePhp$ +Zend\Log\Writer# 1Zend\Log\Processor" Zend\Log! 1Zend\Log\Formatter  +Zend\Log\Filter 1Zend\Log\Exception 7Zend\Loader\Exception #Zend\Loader& OZend\Ldap\Node\Schema\ObjectClass( SZend\Ldap\Node\Schema\AttributeType 7Zend\Ldap\Node\Schema 9Zend\Ldap\Node\RootDse )Zend\Ldap\Node )Zend\Ldap\Ldif AZend\Ldap\Filter\Exception -Zend\Ldap\Filter 3Zend\Ldap\Exception" GZend\Ldap\Converter\Exception 3Zend\Ldap\Converter 5Zend\Ldap\Collection Zend\Ldap 5Zend\Json\Server\Smd ?Zend\Json\Server\Response =Zend\Json\Server\Request AZend\Json\Server\Exception -Zend\Json\Server
 3Zend\Json\Exception	 Zend\Json AZend\InputFilter\Exception -Zend\InputFilter )Zend\I18n\View 7Zend\I18n\View\Helper 3Zend\I18n\Validator  CZend\I18n\Translator\Plural 5Zend\I18n\Translator  CZend\I18n\Translator\Loader  -Zend\I18n\Filter 3Zend\I18n\Exception~ 1Zend\Http\Response} =Zend\Http\PhpEnvironment| AZend\Http\Header\Exception+{ YZend\Http\Header\Accept\FieldValuePart   ~ rO*	[6w]M7 x`@iO5"





s
Y
5
					z	O	xS0|U9dH%
~mQ(w]C'vK*^BtR(!z EZend\Db\Adapter\Driver\Pgsql'y QZend\Db\Adapter\Driver\Pdo\Featurex AZend\Db\Adapter\Driver\Pdo w CZend\Db\Adapter\Driver\Oci8"v GZend\Db\Adapter\Driver\Mysqli"u GZend\Db\Adapter\Driver\IbmDb2#t IZend\Db\Adapter\Driver\Features +Zend\Db\Adapter!r EZend\Crypt\Symmetric\Paddingq 5Zend\Crypt\Symmetric#p IZend\Crypt\Symmetric\Exception'o QZend\Crypt\PublicKey\Rsa\Exceptionn =Zend\Crypt\PublicKey\Rsam 5Zend\Crypt\PublicKey"l GZend\Crypt\Password\Exceptionk 3Zend\Crypt\Passwordj ?Zend\Crypt\Key\Derivation(i SZend\Crypt\Key\Derivation\Exceptionh 5Zend\Crypt\Exceptiong !Zend\Cryptf 3Zend\Console\Prompte 9Zend\Console\Exceptiond %Zend\Consolec 1Zend\Console\Colorb 5Zend\Console\Charseta 5Zend\Console\Adapter` 1Zend\Config\Writer_ 1Zend\Config\Reader^ 7Zend\Config\Processor] 7Zend\Config\Exception\ #Zend\Config[ /Zend\Code\Scanner#Z IZend\Code\Reflection\Exception"Y GZend\Code\Reflection\DocBlock&X OZend\Code\Reflection\DocBlock\TagW 5Zend\Code\ReflectionV Zend\Code"U GZend\Code\Generator\Exception!T EZend\Code\Generator\DocBlock%S MZend\Code\Generator\DocBlock\TagR 3Zend\Code\GeneratorQ 3Zend\Code\Exception P CZend\Code\Annotation\ParserO 5Zend\Code\AnnotationN 9Zend\Captcha\ExceptionM %Zend\CaptchaL ?Zend\Cache\Storage\PluginK 1Zend\Cache\StorageJ AZend\Cache\Storage\AdapterI 1Zend\Cache\ServiceH !Zend\CacheG 1Zend\Cache\PatternF 5Zend\Cache\Exception$E KZend\Barcode\Renderer\ExceptionD 7Zend\Barcode\Renderer"C GZend\Barcode\Object\ExceptionB 3Zend\Barcode\ObjectA 9Zend\Barcode\Exception@ %Zend\Barcode"? GZend\Authentication\Validator > CZend\Authentication\Storage"= GZend\Authentication\Exception< 3Zend\Authentication/; aZend\Authentication\Adapter\Http\Exception%: MZend\Authentication\Adapter\Http*9 WZend\Authentication\Adapter\Exception28 gZend\Authentication\Adapter\DbTable\Exception(7 SZend\Authentication\Adapter\DbTable 6 CZend\Authentication\Adapter#5 IZend\Permissions\Acl\Assertion4 AZend\ModuleManager\Feature3 /Zend\Mail\Address2 9Zend\Db\Adapter\Driver1 /Zend\XmlRpc\Value!0 EZend\XmlRpc\Server\Exception/ 1Zend\XmlRpc\Server. 5Zend\XmlRpc\Response- 3Zend\XmlRpc\Request, 7Zend\XmlRpc\Generator+ 7Zend\XmlRpc\Exception* 1Zend\XmlRpc\Client!) EZend\XmlRpc\Client\Exception( #Zend\XmlRpc' 1Zend\View\Strategy& 1Zend\View\Resolver% 1Zend\View\Renderer$ +Zend\View\Model# Zend\View" =Zend\View\Helper\Service!! EZend\View\Helper\Placeholder+  YZend\View\Helper\Placeholder\Container  CZend\View\Helper\Navigation =Zend\View\Helper\Escaper -Zend\View\Helper 3Zend\View\Exception %Zend\Version 9Zend\Validator\Sitemap 3Zend\Validator\File =Zend\Validator\Exception /Zend\Validator\Db 9Zend\Validator\Barcode )Zend\Validator Zend\Uri 1Zend\Uri\Exception ?Zend\Text\Table\Exception ?Zend\Text\Table\Decorator +Zend\Text\Table Zend\Text -Zend\Text\Figlet AZend\Text\Figlet\Exception 3Zend\Text\Exception" GZend\Test\PHPUnit\Mvc\Service!
 EZend\Test\PHPUnit\Controller	 1Zend\Tag\Exception Zend\Tag )Zend\Tag\Cloud' QZend\Tag\Cloud\Decorator\Exception =Zend\Tag\Cloud\Decorator ?Zend\Stdlib\StringWrapper" GZend\Stdlib\Hydrator\Strategy  CZend\Stdlib\Hydrator\Filter 5Zend\Stdlib\Hydrator  7Zend\Stdlib\Exception #Zend\Stdlib'~ QZend\Soap\Wsdl\ComplexTypeStrategy} -Zend\Soap\Server   v  kK2b@-wU2XF7x^J,




o
K
"

					^	4	U,rP \+pI#lY="tW2eJ2uR6     p 3Zend\I18n\Validator o CZend\I18n\Translator\Pluraln 5Zend\I18n\Translator m CZend\I18n\Translator\Loaderl -Zend\I18n\Filterk 3Zend\I18n\Exceptionj 1Zend\Http\Responsei =Zend\Http\PhpEnvironmenth AZend\Http\Header\Exception+g YZend\Http\Header\Accept\FieldValuePartf -Zend\Http\Headere 3Zend\Http\Exceptiond AZend\Http\Client\Exceptionc -Zend\Http\Client'b QZend\Http\Client\Adapter\Exceptiona =Zend\Http\Client\Adapter` Zend\Http_ )Zend\Form\View^ AZend\Form\View\Helper\File"] GZend\Form\View\Helper\Captcha\ 7Zend\Form\View\Helper[ 3Zend\Form\ExceptionZ Zend\FormY /Zend\Form\ElementX 5Zend\Form\AnnotationW -Zend\Filter\WordV -Zend\Filter\FileU 7Zend\Filter\ExceptionT 3Zend\Filter\EncryptS 5Zend\Filter\CompressR #Zend\FilterQ 1Zend\File\Transfer!P EZend\File\Transfer\ExceptionO AZend\File\Transfer\AdapterN 3Zend\File\ExceptionM Zend\File(L SZend\Feed\Writer\Renderer\Feed\Atom#K IZend\Feed\Writer\Renderer\Feed$J KZend\Feed\Writer\Renderer\Entry)I UZend\Feed\Writer\Renderer\Entry\AtomH ?Zend\Feed\Writer\Renderer6G oZend\Feed\Writer\Extension\WellFormedWeb\Renderer2F gZend\Feed\Writer\Extension\Threading\Renderer.E _Zend\Feed\Writer\Extension\Slash\Renderer/D aZend\Feed\Writer\Extension\ITunes\Renderer&C OZend\Feed\Writer\Extension\ITunes3B iZend\Feed\Writer\Extension\DublinCore\Renderer0A cZend\Feed\Writer\Extension\Content\Renderer-@ ]Zend\Feed\Writer\Extension\Atom\Renderer? AZend\Feed\Writer\Extension> AZend\Feed\Writer\Exception= -Zend\Feed\Writer< Zend\Feed; AZend\Feed\Reader\Feed\Atom: 7Zend\Feed\Reader\Feed-9 ]Zend\Feed\Reader\Extension\WellFormedWeb&8 OZend\Feed\Reader\Extension\Thread+7 YZend\Feed\Reader\Extension\Syndication%6 MZend\Feed\Reader\Extension\Slash'5 QZend\Feed\Reader\Extension\Podcast*4 WZend\Feed\Reader\Extension\DublinCore/3 aZend\Feed\Reader\Extension\CreativeCommons'2 QZend\Feed\Reader\Extension\Content$1 KZend\Feed\Reader\Extension\Atom0 AZend\Feed\Reader\Extension/ AZend\Feed\Reader\Exception. 9Zend\Feed\Reader\Entry - CZend\Feed\Reader\Collection, -Zend\Feed\Reader&+ OZend\Feed\PubSubHubbub\Subscriber!* EZend\Feed\PubSubHubbub\Model%) MZend\Feed\PubSubHubbub\Exception( 9Zend\Feed\PubSubHubbub' 3Zend\Feed\Exception& =Zend\EventManager\Filter % CZend\EventManager\Exception$ /Zend\EventManager# 9Zend\Escaper\Exception" %Zend\Escaper! 1Zend\Dom\Exception  Zend\Dom 9Zend\Di\ServiceLocator /Zend\Di\Exception +Zend\Di\Display AZend\Di\Definition\Builder 1Zend\Di\Definition" GZend\Di\Definition\Annotation Zend\Di !Zend\Debug. _Zend\Db\TableGateway\Feature\EventFeature! EZend\Db\TableGateway\Feature# IZend\Db\TableGateway\Exception 5Zend\Db\TableGateway 7Zend\Db\Sql\Predicate# IZend\Db\Sql\Platform\SqlServer  CZend\Db\Sql\Platform\Oracle AZend\Db\Sql\Platform\Mysql# IZend\Db\Sql\Platform\Mysql\Ddl 5Zend\Db\Sql\Platform 7Zend\Db\Sql\Exception AZend\Db\Sql\Ddl\Constraint 9Zend\Db\Sql\Ddl\Column
 +Zend\Db\Sql\Ddl	 #Zend\Db\Sql AZend\Db\RowGateway\Feature! EZend\Db\RowGateway\Exception 1Zend\Db\RowGateway  CZend\Db\ResultSet\Exception /Zend\Db\ResultSet ;Zend\Db\Metadata\Source ;Zend\Db\Metadata\Object -Zend\Db\Metadata  /Zend\Db\Exception =Zend\Db\Adapter\Profiler~ =Zend\Db\Adapter\Platform} ?Zend\Db\Adapter\Exception,| [Zend\Db\Adapter\Driver\Sqlsrv\Exception"{ GZend\Db\Adapter\Driver\Sqlsrv    gO-cH0|S@#	vWF+vS3




j
F
*
						s	b	G	#	 lB(iL2pH"`?"wX9"qV8gK/mU+            r #Zend\Stdlib'q QZend\Soap\Wsdl\ComplexTypeStrategyp -Zend\Soap\Servero 3Zend\Soap\Exceptionn -Zend\Soap\Clientm Zend\Soap-l ]Zend\Soap\AutoDiscover\DiscoveryStrategyk 9Zend\Session\Validator-j ]Zend\Session\Storage\SessionArrayStoragei 5Zend\Session\Storageh 5Zend\Session\Serviceg =Zend\Session\SaveHandlerf 9Zend\Session\Exceptione 9Zend\Session\Containerd 3Zend\Session\Configc %Zend\Sessionb ?Zend\ServiceManager\Proxy"a GZend\ServiceManager\Exception` 9Zend\ServiceManager\Di_ 3Zend\ServiceManager%^ MZend\Server\Reflection\Exception] 9Zend\Server\Reflection\ 1Zend\Server\Method[ 7Zend\Server\ExceptionZ #Zend\ServerY ?Zend\Serializer\ExceptionX +Zend\SerializerW ;Zend\Serializer\AdapterV ;Zend\ProgressBar\UploadU -Zend\ProgressBarT AZend\ProgressBar\Exception'S QZend\ProgressBar\Adapter\ExceptionR =Zend\ProgressBar\Adapter$Q KZend\Permissions\Rbac\ExceptionP 7Zend\Permissions\RbacO ?Zend\Permissions\Acl\Role"N GZend\Permissions\Acl\Resource#M IZend\Permissions\Acl\ExceptionL 5Zend\Permissions\Acl"K GZend\Paginator\ScrollingStyleJ =Zend\Paginator\ExceptionI )Zend\Paginator#H IZend\Paginator\Adapter\Service%G MZend\Paginator\Adapter\ExceptionF 9Zend\Paginator\AdapterE 5Zend\Navigation\ViewD ;Zend\Navigation\ServiceC 5Zend\Navigation\PageB ?Zend\Navigation\ExceptionA +Zend\Navigation@ 'Zend\Mvc\View? 1Zend\Mvc\View\Http> 7Zend\Mvc\View\Console= -Zend\Mvc\Service< +Zend\Mvc\Router; 5Zend\Mvc\Router\Http: ?Zend\Mvc\Router\Exception9 ;Zend\Mvc\Router\Console8 ;Zend\Mvc\ResponseSender7 'Zend\Mvc\I18n6 1Zend\Mvc\Exception'5 QZend\Mvc\Controller\Plugin\Service4 AZend\Mvc\Controller\Plugin3 3Zend\Mvc\Controller2 Zend\Mvc1 1Zend\ModuleManager*0 WZend\ModuleManager\Listener\Exception / CZend\ModuleManager\Listener!. EZend\ModuleManager\Exception- 3Zend\Mime\Exception, Zend\Mime+ #Zend\Memory* 7Zend\Memory\Exception) 7Zend\Memory\Container( -Zend\Math\Source' Zend\Math& 3Zend\Math\Exception#% IZend\Math\BigInteger\Exception$ 5Zend\Math\BigInteger!# EZend\Math\BigInteger\Adapter" 3Zend\Mail\Transport"! GZend\Mail\Transport\Exception  AZend\Mail\Storage\Writable 9Zend\Mail\Storage\Part% MZend\Mail\Storage\Part\Exception ?Zend\Mail\Storage\Message =Zend\Mail\Storage\Folder  CZend\Mail\Storage\Exception /Zend\Mail\Storage! EZend\Mail\Protocol\Smtp\Auth! EZend\Mail\Protocol\Exception 1Zend\Mail\Protocol AZend\Mail\Header\Exception -Zend\Mail\Header 3Zend\Mail\Exception Zend\Mail ;Zend\Log\Writer\FirePhp ?Zend\Log\Writer\ChromePhp +Zend\Log\Writer 1Zend\Log\Processor Zend\Log 1Zend\Log\Formatter +Zend\Log\Filter 1Zend\Log\Exception
 7Zend\Loader\Exception	 #Zend\Loader& OZend\Ldap\Node\Schema\ObjectClass( SZend\Ldap\Node\Schema\AttributeType 7Zend\Ldap\Node\Schema 9Zend\Ldap\Node\RootDse )Zend\Ldap\Node )Zend\Ldap\Ldif AZend\Ldap\Filter\Exception -Zend\Ldap\Filter  3Zend\Ldap\Exception" GZend\Ldap\Converter\Exception~ 3Zend\Ldap\Converter} 5Zend\Ldap\Collection| Zend\Ldap{ 5Zend\Json\Server\Smdz ?Zend\Json\Server\Responsey =Zend\Json\Server\Requestx AZend\Json\Server\Exceptionw -Zend\Json\Serverv 3Zend\Json\Exceptionu Zend\Jsont AZend\InputFilter\Exceptions -Zend\InputFilterr )Zend\I18n\Viewq 7Zend\I18n\View\Helper   ~ _:kU: |lV8_<v\B(





f
L
(
					z	T	3	[)oT/gM,]9vP7$~dP2|a<  pY3          "p GZend\Db\Adapter\Driver\IbmDb2#o IZend\Db\Adapter\Driver\Featuren +Zend\Db\Adapter!m EZend\Crypt\Symmetric\Paddingl 5Zend\Crypt\Symmetric#k IZend\Crypt\Symmetric\Exception'j QZend\Crypt\PublicKey\Rsa\Exceptioni =Zend\Crypt\PublicKey\Rsah 5Zend\Crypt\PublicKey"g GZend\Crypt\Password\Exceptionf 3Zend\Crypt\Passworde ?Zend\Crypt\Key\Derivation(d SZend\Crypt\Key\Derivation\Exceptionc 5Zend\Crypt\Exceptionb !Zend\Crypta ?Zend\Console\RouteMatcher` 3Zend\Console\Prompt_ 9Zend\Console\Exception^ %Zend\Console] 1Zend\Console\Color\ 5Zend\Console\Charset[ 5Zend\Console\AdapterZ 1Zend\Config\WriterY 1Zend\Config\ReaderX 7Zend\Config\ProcessorW 7Zend\Config\ExceptionV #Zend\ConfigU /Zend\Code\Scanner#T IZend\Code\Reflection\Exception"S GZend\Code\Reflection\DocBlock&R OZend\Code\Reflection\DocBlock\TagQ 5Zend\Code\ReflectionP Zend\Code O CZend\Code\Generic\Prototype"N GZend\Code\Generator\Exception!M EZend\Code\Generator\DocBlock%L MZend\Code\Generator\DocBlock\TagK 3Zend\Code\GeneratorJ 3Zend\Code\Exception I CZend\Code\Annotation\ParserH 5Zend\Code\AnnotationG 9Zend\Captcha\ExceptionF %Zend\CaptchaE ?Zend\Cache\Storage\PluginD 1Zend\Cache\StorageC AZend\Cache\Storage\AdapterB 1Zend\Cache\ServiceA !Zend\Cache@ 1Zend\Cache\Pattern? 5Zend\Cache\Exception$> KZend\Barcode\Renderer\Exception= 7Zend\Barcode\Renderer"< GZend\Barcode\Object\Exception; 3Zend\Barcode\Object: 9Zend\Barcode\Exception9 %Zend\Barcode"8 GZend\Authentication\Validator 7 CZend\Authentication\Storage"6 GZend\Authentication\Exception5 3Zend\Authentication/4 aZend\Authentication\Adapter\Http\Exception%3 MZend\Authentication\Adapter\Http*2 WZend\Authentication\Adapter\Exception21 gZend\Authentication\Adapter\DbTable\Exception(0 SZend\Authentication\Adapter\DbTable / CZend\Authentication\Adapter. ?Zend\Validator\Translator#- IZend\Permissions\Acl\Assertion, AZend\ModuleManager\Feature+ /Zend\Mail\Address* 7Zend\Feed\Reader\Http) 9Zend\Db\Adapter\Driver( ;Zend\I18nTest\Validator' /Zend\XmlRpc\Value!& EZend\XmlRpc\Server\Exception% 1Zend\XmlRpc\Server$ 5Zend\XmlRpc\Response# 3Zend\XmlRpc\Request" 7Zend\XmlRpc\Generator! 7Zend\XmlRpc\Exception  1Zend\XmlRpc\Client! EZend\XmlRpc\Client\Exception #Zend\XmlRpc 1Zend\View\Strategy 1Zend\View\Resolver 1Zend\View\Renderer +Zend\View\Model Zend\View =Zend\View\Helper\Service! EZend\View\Helper\Placeholder+ YZend\View\Helper\Placeholder\Container) UZend\View\Helper\Navigation\Listener  CZend\View\Helper\Navigation =Zend\View\Helper\Escaper -Zend\View\Helper 3Zend\View\Exception %Zend\Version 9Zend\Validator\Sitemap 3Zend\Validator\File =Zend\Validator\Exception /Zend\Validator\Db 9Zend\Validator\Barcode
 )Zend\Validator	 Zend\Uri 1Zend\Uri\Exception ?Zend\Text\Table\Exception ?Zend\Text\Table\Decorator +Zend\Text\Table Zend\Text -Zend\Text\Figlet AZend\Text\Figlet\Exception 3Zend\Text\Exception  )Zend\Test\Util! EZend\Test\PHPUnit\Controller~ 1Zend\Tag\Exception} Zend\Tag| )Zend\Tag\Cloud'{ QZend\Tag\Cloud\Decorator\Exceptionz =Zend\Tag\Cloud\Decoratory ?Zend\Stdlib\StringWrapper"x GZend\Stdlib\Hydrator\Strategy w CZend\Stdlib\Hydrator\Filter#v IZend\Stdlib\Hydrator\Aggregateu 5Zend\Stdlib\Hydratort 7Zend\Stdlib\Exceptions ;Zend\Stdlib\ArrayObject   t  lH#zbC$u^@zP*vdU0





}
c
O
1
					t	P	'	c9Z1wU%a0uN(q^B'
y\7gO!                d AZend\Http\Header\Exception+c YZend\Http\Header\Accept\FieldValuePartb -Zend\Http\Headera 3Zend\Http\Exception` AZend\Http\Client\Exception'_ QZend\Http\Client\Adapter\Exception^ =Zend\Http\Client\Adapter] Zend\Http\ )Zend\Form\View[ AZend\Form\View\Helper\File"Z GZend\Form\View\Helper\CaptchaY 7Zend\Form\View\HelperX 3Zend\Form\ExceptionW Zend\FormV /Zend\Form\ElementU 5Zend\Form\AnnotationT -Zend\Filter\WordS -Zend\Filter\FileR 7Zend\Filter\ExceptionQ 3Zend\Filter\EncryptP 5Zend\Filter\CompressO #Zend\FilterN 1Zend\File\Transfer!M EZend\File\Transfer\ExceptionL AZend\File\Transfer\AdapterK 3Zend\File\ExceptionJ Zend\File(I SZend\Feed\Writer\Renderer\Feed\Atom#H IZend\Feed\Writer\Renderer\Feed$G KZend\Feed\Writer\Renderer\Entry)F UZend\Feed\Writer\Renderer\Entry\AtomE ?Zend\Feed\Writer\Renderer6D oZend\Feed\Writer\Extension\WellFormedWeb\Renderer2C gZend\Feed\Writer\Extension\Threading\Renderer.B _Zend\Feed\Writer\Extension\Slash\Renderer/A aZend\Feed\Writer\Extension\ITunes\Renderer&@ OZend\Feed\Writer\Extension\ITunes3? iZend\Feed\Writer\Extension\DublinCore\Renderer0> cZend\Feed\Writer\Extension\Content\Renderer-= ]Zend\Feed\Writer\Extension\Atom\Renderer< AZend\Feed\Writer\Extension; AZend\Feed\Writer\Exception: -Zend\Feed\Writer9 Zend\Feed8 AZend\Feed\Reader\Feed\Atom7 7Zend\Feed\Reader\Feed-6 ]Zend\Feed\Reader\Extension\WellFormedWeb&5 OZend\Feed\Reader\Extension\Thread+4 YZend\Feed\Reader\Extension\Syndication%3 MZend\Feed\Reader\Extension\Slash'2 QZend\Feed\Reader\Extension\Podcast*1 WZend\Feed\Reader\Extension\DublinCore/0 aZend\Feed\Reader\Extension\CreativeCommons'/ QZend\Feed\Reader\Extension\Content$. KZend\Feed\Reader\Extension\Atom- AZend\Feed\Reader\Extension, AZend\Feed\Reader\Exception+ 9Zend\Feed\Reader\Entry * CZend\Feed\Reader\Collection) -Zend\Feed\Reader&( OZend\Feed\PubSubHubbub\Subscriber!' EZend\Feed\PubSubHubbub\Model%& MZend\Feed\PubSubHubbub\Exception% 9Zend\Feed\PubSubHubbub$ 3Zend\Feed\Exception# =Zend\EventManager\Filter " CZend\EventManager\Exception! /Zend\EventManager  9Zend\Escaper\Exception %Zend\Escaper 1Zend\Dom\Exception /Zend\Dom\Document Zend\Dom 9Zend\Di\ServiceLocator /Zend\Di\Exception +Zend\Di\Display AZend\Di\Definition\Builder 1Zend\Di\Definition" GZend\Di\Definition\Annotation Zend\Di !Zend\Debug. _Zend\Db\TableGateway\Feature\EventFeature! EZend\Db\TableGateway\Feature# IZend\Db\TableGateway\Exception 5Zend\Db\TableGateway 7Zend\Db\Sql\Predicate# IZend\Db\Sql\Platform\SqlServer' QZend\Db\Sql\Platform\SqlServer\Ddl  CZend\Db\Sql\Platform\Oracle AZend\Db\Sql\Platform\Mysql#
 IZend\Db\Sql\Platform\Mysql\Ddl	 5Zend\Db\Sql\Platform 7Zend\Db\Sql\Exception AZend\Db\Sql\Ddl\Constraint 9Zend\Db\Sql\Ddl\Column +Zend\Db\Sql\Ddl #Zend\Db\Sql AZend\Db\RowGateway\Feature! EZend\Db\RowGateway\Exception 1Zend\Db\RowGateway   CZend\Db\ResultSet\Exception /Zend\Db\ResultSet~ ;Zend\Db\Metadata\Source} ;Zend\Db\Metadata\Object| -Zend\Db\Metadata{ /Zend\Db\Exceptionz =Zend\Db\Adapter\Profilery =Zend\Db\Adapter\Platformx ?Zend\Db\Adapter\Exception,w [Zend\Db\Adapter\Driver\Sqlsrv\Exception"v GZend\Db\Adapter\Driver\Sqlsrv!u EZend\Db\Adapter\Driver\Pgsql't QZend\Db\Adapter\Driver\Pdo\Features AZend\Db\Adapter\Driver\Pdo r CZend\Db\Adapter\Driver\Oci8"q GZend\Db\Adapter\Driver\Mysqli    pT1}eC#y^F$iV9m\A)




i
I
(
 					\	@	x]9X>)
bH3^8"kE qO7wY1eE) f 5Zend\Session\Storagee 5Zend\Session\Serviced =Zend\Session\SaveHandlerc 9Zend\Session\Exceptionb 3Zend\Session\Configa %Zend\Session` ?Zend\ServiceManager\Proxy"_ GZend\ServiceManager\Exception^ 9Zend\ServiceManager\Di] 3Zend\ServiceManager%\ MZend\Server\Reflection\Exception[ 9Zend\Server\ReflectionZ 1Zend\Server\MethodY 7Zend\Server\ExceptionX #Zend\ServerW ?Zend\Serializer\ExceptionV +Zend\SerializerU ;Zend\Serializer\AdapterT ;Zend\ProgressBar\UploadS -Zend\ProgressBarR AZend\ProgressBar\Exception'Q QZend\ProgressBar\Adapter\ExceptionP =Zend\ProgressBar\Adapter$O KZend\Permissions\Rbac\ExceptionN 7Zend\Permissions\RbacM ?Zend\Permissions\Acl\Role"L GZend\Permissions\Acl\Resource#K IZend\Permissions\Acl\Exception-J ]Zend\Permissions\Acl\Assertion\Exception#I IZend\Permissions\Acl\AssertionH 5Zend\Permissions\Acl"G GZend\Paginator\ScrollingStyleF =Zend\Paginator\ExceptionE )Zend\Paginator#D IZend\Paginator\Adapter\Service%C MZend\Paginator\Adapter\ExceptionB 9Zend\Paginator\AdapterA 5Zend\Navigation\View@ ;Zend\Navigation\Service? 5Zend\Navigation\Page> ?Zend\Navigation\Exception= +Zend\Navigation< 'Zend\Mvc\View; 1Zend\Mvc\View\Http: 7Zend\Mvc\View\Console9 -Zend\Mvc\Service8 +Zend\Mvc\Router7 5Zend\Mvc\Router\Http6 ?Zend\Mvc\Router\Exception5 ;Zend\Mvc\Router\Console4 ;Zend\Mvc\ResponseSender3 'Zend\Mvc\I18n2 1Zend\Mvc\Exception'1 QZend\Mvc\Controller\Plugin\Service0 AZend\Mvc\Controller\Plugin/ 3Zend\Mvc\Controller. Zend\Mvc- 1Zend\ModuleManager*, WZend\ModuleManager\Listener\Exception + CZend\ModuleManager\Listener!* EZend\ModuleManager\Exception) 3Zend\Mime\Exception( Zend\Mime' #Zend\Memory& 7Zend\Memory\Exception% 7Zend\Memory\Container$ -Zend\Math\Source# Zend\Math" 3Zend\Math\Exception#! IZend\Math\BigInteger\Exception  5Zend\Math\BigInteger! EZend\Math\BigInteger\Adapter 3Zend\Mail\Transport" GZend\Mail\Transport\Exception AZend\Mail\Storage\Writable 9Zend\Mail\Storage\Part% MZend\Mail\Storage\Part\Exception ?Zend\Mail\Storage\Message =Zend\Mail\Storage\Folder  CZend\Mail\Storage\Exception /Zend\Mail\Storage! EZend\Mail\Protocol\Smtp\Auth! EZend\Mail\Protocol\Exception 1Zend\Mail\Protocol AZend\Mail\Header\Exception -Zend\Mail\Header 3Zend\Mail\Exception Zend\Mail ;Zend\Log\Writer\FirePhp ?Zend\Log\Writer\ChromePhp +Zend\Log\Writer 1Zend\Log\Processor
 Zend\Log	 1Zend\Log\Formatter +Zend\Log\Filter 1Zend\Log\Exception 7Zend\Loader\Exception #Zend\Loader& OZend\Ldap\Node\Schema\ObjectClass( SZend\Ldap\Node\Schema\AttributeType 7Zend\Ldap\Node\Schema 9Zend\Ldap\Node\RootDse  )Zend\Ldap\Node )Zend\Ldap\Ldif~ AZend\Ldap\Filter\Exception} -Zend\Ldap\Filter| 3Zend\Ldap\Exception"{ GZend\Ldap\Converter\Exceptionz 3Zend\Ldap\Convertery 5Zend\Ldap\Collectionx Zend\Ldapw 5Zend\Json\Server\Smdv ?Zend\Json\Server\Responseu =Zend\Json\Server\Requestt AZend\Json\Server\Exceptions -Zend\Json\Serverr 3Zend\Json\Exceptionq Zend\Jsonp AZend\InputFilter\Exceptiono -Zend\InputFiltern )Zend\I18n\Viewm 7Zend\I18n\View\Helperl 3Zend\I18n\Validator k CZend\I18n\Translator\Pluralj 5Zend\I18n\Translator i CZend\I18n\Translator\Loaderh -Zend\I18n\Filterg 3Zend\I18n\Exceptionf 1Zend\Http\Responsee =Zend\Http\PhpEnvironment    nV,~S._I.p`J,sS0




j
P
6

						v	Z	@		pL+{S!gL'
_E$}U1nH/v\H*tY4                  e 5Zend\Crypt\PublicKey"d GZend\Crypt\Password\Exceptionc 3Zend\Crypt\Passwordb ?Zend\Crypt\Key\Derivation(a SZend\Crypt\Key\Derivation\Exception` 5Zend\Crypt\Exception_ !Zend\Crypt^ ?Zend\Console\RouteMatcher] 3Zend\Console\Prompt\ 9Zend\Console\Exception[ %Zend\ConsoleZ 1Zend\Console\ColorY 5Zend\Console\CharsetX 5Zend\Console\AdapterW 1Zend\Config\WriterV 1Zend\Config\ReaderU 7Zend\Config\ProcessorT 7Zend\Config\ExceptionS #Zend\ConfigR /Zend\Code\Scanner#Q IZend\Code\Reflection\Exception"P GZend\Code\Reflection\DocBlock&O OZend\Code\Reflection\DocBlock\TagN 5Zend\Code\ReflectionM Zend\Code L CZend\Code\Generic\Prototype"K GZend\Code\Generator\Exception!J EZend\Code\Generator\DocBlock%I MZend\Code\Generator\DocBlock\TagH 3Zend\Code\GeneratorG 3Zend\Code\Exception F CZend\Code\Annotation\ParserE 5Zend\Code\AnnotationD 9Zend\Captcha\ExceptionC %Zend\CaptchaB ?Zend\Cache\Storage\PluginA 1Zend\Cache\Storage@ AZend\Cache\Storage\Adapter? 1Zend\Cache\Service> !Zend\Cache= 1Zend\Cache\Pattern< 5Zend\Cache\Exception$; KZend\Barcode\Renderer\Exception: 7Zend\Barcode\Renderer"9 GZend\Barcode\Object\Exception8 3Zend\Barcode\Object7 9Zend\Barcode\Exception6 %Zend\Barcode"5 GZend\Authentication\Validator 4 CZend\Authentication\Storage"3 GZend\Authentication\Exception2 3Zend\Authentication/1 aZend\Authentication\Adapter\Http\Exception%0 MZend\Authentication\Adapter\Http*/ WZend\Authentication\Adapter\Exception2. gZend\Authentication\Adapter\DbTable\Exception(- SZend\Authentication\Adapter\DbTable , CZend\Authentication\Adapter+ ?Zend\Validator\Translator!* EZend\Stdlib\JsonSerializable) 7Zend\Stdlib\Extractor( AZend\ModuleManager\Feature' /Zend\Mail\Address& 7Zend\Feed\Reader\Http% 9Zend\Db\Adapter\Driver$ /Zend\XmlRpc\Value!# EZend\XmlRpc\Server\Exception" 1Zend\XmlRpc\Server! 5Zend\XmlRpc\Response  3Zend\XmlRpc\Request 7Zend\XmlRpc\Generator 7Zend\XmlRpc\Exception 1Zend\XmlRpc\Client! EZend\XmlRpc\Client\Exception #Zend\XmlRpc 1Zend\View\Strategy 1Zend\View\Resolver 1Zend\View\Renderer +Zend\View\Model Zend\View =Zend\View\Helper\Service! EZend\View\Helper\Placeholder+ YZend\View\Helper\Placeholder\Container) UZend\View\Helper\Navigation\Listener  CZend\View\Helper\Navigation =Zend\View\Helper\Escaper -Zend\View\Helper 3Zend\View\Exception %Zend\Version 9Zend\Validator\Sitemap 3Zend\Validator\File
 =Zend\Validator\Exception	 /Zend\Validator\Db 9Zend\Validator\Barcode )Zend\Validator Zend\Uri 1Zend\Uri\Exception ?Zend\Text\Table\Exception ?Zend\Text\Table\Decorator +Zend\Text\Table Zend\Text  -Zend\Text\Figlet AZend\Text\Figlet\Exception~ 3Zend\Text\Exception} )Zend\Test\Util!| EZend\Test\PHPUnit\Controller{ 1Zend\Tag\Exceptionz Zend\Tagy )Zend\Tag\Cloud'x QZend\Tag\Cloud\Decorator\Exceptionw =Zend\Tag\Cloud\Decoratorv ?Zend\Stdlib\StringWrapper"u GZend\Stdlib\Hydrator\Strategy(t SZend\Stdlib\Hydrator\NamingStrategy s CZend\Stdlib\Hydrator\Filter#r IZend\Stdlib\Hydrator\Aggregateq 5Zend\Stdlib\Hydratorp /Zend\Stdlib\Guardo 7Zend\Stdlib\Exceptionn #Zend\Stdlib'm QZend\Soap\Wsdl\ComplexTypeStrategyl -Zend\Soap\Serverk 3Zend\Soap\Exceptionj -Zend\Soap\Clienti Zend\Soap-h ]Zend\Soap\AutoDiscover\DiscoveryStrategyg 9Zend\Session\Validator   s tP9f<cJ2zXE.uO-





[
7
						m	T	6	&	eJ,|^<j@tRA)L#R1|a?jJ.                      X Zend\FormW /Zend\Form\ElementV 5Zend\Form\AnnotationU =Zend\Filter\Word\ServiceT -Zend\Filter\WordS -Zend\Filter\FileR 7Zend\Filter\ExceptionQ 3Zend\Filter\EncryptP 5Zend\Filter\CompressO #Zend\FilterN 1Zend\File\Transfer!M EZend\File\Transfer\ExceptionL AZend\File\Transfer\AdapterK 3Zend\File\ExceptionJ Zend\File(I SZend\Feed\Writer\Renderer\Feed\Atom#H IZend\Feed\Writer\Renderer\Feed$G KZend\Feed\Writer\Renderer\Entry)F UZend\Feed\Writer\Renderer\Entry\AtomE ?Zend\Feed\Writer\Renderer6D oZend\Feed\Writer\Extension\WellFormedWeb\Renderer2C gZend\Feed\Writer\Extension\Threading\Renderer.B _Zend\Feed\Writer\Extension\Slash\Renderer/A aZend\Feed\Writer\Extension\ITunes\Renderer&@ OZend\Feed\Writer\Extension\ITunes3? iZend\Feed\Writer\Extension\DublinCore\Renderer0> cZend\Feed\Writer\Extension\Content\Renderer-= ]Zend\Feed\Writer\Extension\Atom\Renderer< AZend\Feed\Writer\Extension; AZend\Feed\Writer\Exception: -Zend\Feed\Writer9 Zend\Feed8 AZend\Feed\Reader\Feed\Atom7 7Zend\Feed\Reader\Feed-6 ]Zend\Feed\Reader\Extension\WellFormedWeb&5 OZend\Feed\Reader\Extension\Thread+4 YZend\Feed\Reader\Extension\Syndication%3 MZend\Feed\Reader\Extension\Slash'2 QZend\Feed\Reader\Extension\Podcast*1 WZend\Feed\Reader\Extension\DublinCore/0 aZend\Feed\Reader\Extension\CreativeCommons'/ QZend\Feed\Reader\Extension\Content$. KZend\Feed\Reader\Extension\Atom- AZend\Feed\Reader\Extension, AZend\Feed\Reader\Exception+ 9Zend\Feed\Reader\Entry * CZend\Feed\Reader\Collection) -Zend\Feed\Reader&( OZend\Feed\PubSubHubbub\Subscriber!' EZend\Feed\PubSubHubbub\Model%& MZend\Feed\PubSubHubbub\Exception% 9Zend\Feed\PubSubHubbub$ 3Zend\Feed\Exception# =Zend\EventManager\Filter " CZend\EventManager\Exception! /Zend\EventManager  9Zend\Escaper\Exception %Zend\Escaper 1Zend\Dom\Exception /Zend\Dom\Document Zend\Dom 9Zend\Di\ServiceLocator /Zend\Di\Exception +Zend\Di\Display AZend\Di\Definition\Builder 1Zend\Di\Definition" GZend\Di\Definition\Annotation Zend\Di !Zend\Debug. _Zend\Db\TableGateway\Feature\EventFeature! EZend\Db\TableGateway\Feature# IZend\Db\TableGateway\Exception 5Zend\Db\TableGateway 7Zend\Db\Sql\Predicate# IZend\Db\Sql\Platform\SqlServer' QZend\Db\Sql\Platform\SqlServer\Ddl  CZend\Db\Sql\Platform\Oracle AZend\Db\Sql\Platform\Mysql#
 IZend\Db\Sql\Platform\Mysql\Ddl 	 CZend\Db\Sql\Platform\IbmDb2 5Zend\Db\Sql\Platform 7Zend\Db\Sql\Exception 7Zend\Db\Sql\Ddl\Index AZend\Db\Sql\Ddl\Constraint 9Zend\Db\Sql\Ddl\Column +Zend\Db\Sql\Ddl #Zend\Db\Sql AZend\Db\RowGateway\Feature!  EZend\Db\RowGateway\Exception 1Zend\Db\RowGateway ~ CZend\Db\ResultSet\Exception} /Zend\Db\ResultSet| ;Zend\Db\Metadata\Source{ ;Zend\Db\Metadata\Objectz -Zend\Db\Metadatay /Zend\Db\Exceptionx =Zend\Db\Adapter\Profilerw =Zend\Db\Adapter\Platformv ?Zend\Db\Adapter\Exception,u [Zend\Db\Adapter\Driver\Sqlsrv\Exception"t GZend\Db\Adapter\Driver\Sqlsrv!s EZend\Db\Adapter\Driver\Pgsql'r QZend\Db\Adapter\Driver\Pdo\Featureq AZend\Db\Adapter\Driver\Pdo p CZend\Db\Adapter\Driver\Oci8"o GZend\Db\Adapter\Driver\Mysqli"n GZend\Db\Adapter\Driver\IbmDb2#m IZend\Db\Adapter\Driver\Featurel 9Zend\Db\Adapter\Driverk +Zend\Db\Adapter!j EZend\Crypt\Symmetric\Paddingi 5Zend\Crypt\Symmetric#h IZend\Crypt\Symmetric\Exception'g QZend\Crypt\PublicKey\Rsa\Exceptionf =Zend\Crypt\PublicKey\Rsa   & kZ:kK1dN6mQ@$	ycE(





s
Y
I
/
						r	X	4	kM+jYA$T:*uV5fJ+mH,jM&{\=&                              X +Zend\SerializerW ;Zend\Serializer\AdapterV ;Zend\ProgressBar\UploadU -Zend\ProgressBarT AZend\ProgressBar\Exception'S QZend\ProgressBar\Adapter\ExceptionR =Zend\ProgressBar\Adapter$Q KZend\Permissions\Rbac\Exception$P KZend\Permissions\Rbac\AssertionO 7Zend\Permissions\RbacN ?Zend\Permissions\Acl\Role"M GZend\Permissions\Acl\Resource#L IZend\Permissions\Acl\Exception-K ]Zend\Permissions\Acl\Assertion\Exception#J IZend\Permissions\Acl\AssertionI 5Zend\Permissions\Acl"H GZend\Paginator\ScrollingStyleG =Zend\Paginator\ExceptionF )Zend\Paginator#E IZend\Paginator\Adapter\Service%D MZend\Paginator\Adapter\ExceptionC 9Zend\Paginator\AdapterB 5Zend\Navigation\ViewA ;Zend\Navigation\Service@ 5Zend\Navigation\Page? ?Zend\Navigation\Exception> +Zend\Navigation= 'Zend\Mvc\View< 1Zend\Mvc\View\Http; 7Zend\Mvc\View\Console: -Zend\Mvc\Service9 +Zend\Mvc\Router8 5Zend\Mvc\Router\Http7 ?Zend\Mvc\Router\Exception6 ;Zend\Mvc\Router\Console5 ;Zend\Mvc\ResponseSender4 'Zend\Mvc\I18n3 1Zend\Mvc\Exception'2 QZend\Mvc\Controller\Plugin\Service1 AZend\Mvc\Controller\Plugin0 3Zend\Mvc\Controller/ Zend\Mvc. 1Zend\ModuleManager*- WZend\ModuleManager\Listener\Exception , CZend\ModuleManager\Listener!+ EZend\ModuleManager\Exception* 3Zend\Mime\Exception) Zend\Mime( #Zend\Memory' 7Zend\Memory\Exception& 7Zend\Memory\Container% -Zend\Math\Source$ Zend\Math# 3Zend\Math\Exception#" IZend\Math\BigInteger\Exception! 5Zend\Math\BigInteger!  EZend\Math\BigInteger\Adapter" GZend\Mail\Transport\Exception 3Zend\Mail\Transport AZend\Mail\Storage\Writable 9Zend\Mail\Storage\Part% MZend\Mail\Storage\Part\Exception ?Zend\Mail\Storage\Message =Zend\Mail\Storage\Folder  CZend\Mail\Storage\Exception /Zend\Mail\Storage! EZend\Mail\Protocol\Smtp\Auth! EZend\Mail\Protocol\Exception 1Zend\Mail\Protocol AZend\Mail\Header\Exception -Zend\Mail\Header 3Zend\Mail\Exception Zend\Mail ;Zend\Log\Writer\FirePhp ?Zend\Log\Writer\ChromePhp +Zend\Log\Writer 1Zend\Log\Processor Zend\Log
 1Zend\Log\Formatter	 +Zend\Log\Filter 1Zend\Log\Exception 7Zend\Loader\Exception #Zend\Loader& OZend\Ldap\Node\Schema\ObjectClass( SZend\Ldap\Node\Schema\AttributeType 7Zend\Ldap\Node\Schema 9Zend\Ldap\Node\RootDse )Zend\Ldap\Node  )Zend\Ldap\Ldif AZend\Ldap\Filter\Exception~ -Zend\Ldap\Filter} 3Zend\Ldap\Exception"| GZend\Ldap\Converter\Exception{ 3Zend\Ldap\Converterz 5Zend\Ldap\Collectiony Zend\Ldapx 5Zend\Json\Server\Smdw ?Zend\Json\Server\Responsev =Zend\Json\Server\Requestu AZend\Json\Server\Exceptiont -Zend\Json\Servers 3Zend\Json\Exceptionr Zend\Jsonq AZend\InputFilter\Exceptionp -Zend\InputFiltero )Zend\I18n\Viewn 7Zend\I18n\View\Helperm 3Zend\I18n\Validator l CZend\I18n\Translator\Pluralk 5Zend\I18n\Translator j CZend\I18n\Translator\Loaderi -Zend\I18n\Filterh 3Zend\I18n\Exceptiong 1Zend\Http\Responsef =Zend\Http\PhpEnvironmente AZend\Http\Header\Exception+d YZend\Http\Header\Accept\FieldValuePartc -Zend\Http\Headerb 3Zend\Http\Exceptiona AZend\Http\Client\Exception'` QZend\Http\Client\Adapter\Exception_ =Zend\Http\Client\Adapter^ Zend\Http] )Zend\Form\View\ AZend\Form\View\Helper\File"[ GZend\Form\View\Helper\CaptchaZ 7Zend\Form\View\HelperY 3Zend\Form\Exception   ~ wO4cG+WD&	`;{a='





h
N
>
(

						i	Q	1	p_H.oT8lH'wOcH#}[A yQ-jD+                    V #Zend\ConfigU /Zend\Code\Scanner#T IZend\Code\Reflection\Exception"S GZend\Code\Reflection\DocBlock&R OZend\Code\Reflection\DocBlock\TagQ 5Zend\Code\ReflectionP Zend\Code O CZend\Code\Generic\Prototype"N GZend\Code\Generator\Exception!M EZend\Code\Generator\DocBlock%L MZend\Code\Generator\DocBlock\TagK 3Zend\Code\GeneratorJ 3Zend\Code\Exception I CZend\Code\Annotation\ParserH 5Zend\Code\AnnotationG 9Zend\Captcha\ExceptionF %Zend\CaptchaE ?Zend\Cache\Storage\PluginD 1Zend\Cache\StorageC AZend\Cache\Storage\AdapterB 1Zend\Cache\ServiceA !Zend\Cache@ 1Zend\Cache\Pattern? 5Zend\Cache\Exception$> KZend\Barcode\Renderer\Exception= 7Zend\Barcode\Renderer"< GZend\Barcode\Object\Exception; 3Zend\Barcode\Object: 9Zend\Barcode\Exception9 %Zend\Barcode"8 GZend\Authentication\Validator 7 CZend\Authentication\Storage"6 GZend\Authentication\Exception5 3Zend\Authentication/4 aZend\Authentication\Adapter\Http\Exception%3 MZend\Authentication\Adapter\Http*2 WZend\Authentication\Adapter\Exception21 gZend\Authentication\Adapter\DbTable\Exception(0 SZend\Authentication\Adapter\DbTable / CZend\Authentication\Adapter. ?Zend\Validator\Translator!- EZend\Stdlib\JsonSerializable, 7Zend\Stdlib\Extractor+ AZend\ModuleManager\Feature* /Zend\Mail\Address) 7Zend\Feed\Reader\Http( /Zend\XmlRpc\Value!' EZend\XmlRpc\Server\Exception& 1Zend\XmlRpc\Server% 5Zend\XmlRpc\Response$ 3Zend\XmlRpc\Request# 7Zend\XmlRpc\Generator" 7Zend\XmlRpc\Exception! 1Zend\XmlRpc\Client!  EZend\XmlRpc\Client\Exception #Zend\XmlRpc 1Zend\View\Strategy 1Zend\View\Resolver 1Zend\View\Renderer +Zend\View\Model Zend\View =Zend\View\Helper\Service! EZend\View\Helper\Placeholder+ YZend\View\Helper\Placeholder\Container) UZend\View\Helper\Navigation\Listener  CZend\View\Helper\Navigation =Zend\View\Helper\Escaper -Zend\View\Helper 3Zend\View\Exception %Zend\Version 9Zend\Validator\Sitemap 3Zend\Validator\File =Zend\Validator\Exception /Zend\Validator\Db 9Zend\Validator\Barcode )Zend\Validator
 Zend\Uri	 1Zend\Uri\Exception ?Zend\Text\Table\Exception ?Zend\Text\Table\Decorator +Zend\Text\Table Zend\Text -Zend\Text\Figlet AZend\Text\Figlet\Exception 3Zend\Text\Exception )Zend\Test\Util!  EZend\Test\PHPUnit\Controller 1Zend\Tag\Exception~ Zend\Tag} )Zend\Tag\Cloud'| QZend\Tag\Cloud\Decorator\Exception{ =Zend\Tag\Cloud\Decoratorz ?Zend\Stdlib\StringWrapper,y [Zend\Stdlib\Hydrator\Strategy\Exception"x GZend\Stdlib\Hydrator\Strategy(w SZend\Stdlib\Hydrator\NamingStrategy v CZend\Stdlib\Hydrator\Filter#u IZend\Stdlib\Hydrator\Aggregatet 5Zend\Stdlib\Hydrators /Zend\Stdlib\Guardr 7Zend\Stdlib\Exceptionq 9Zend\Stdlib\ArrayUtilsp #Zend\Stdlib'o QZend\Soap\Wsdl\ComplexTypeStrategyn -Zend\Soap\Serverm 3Zend\Soap\Exceptionl -Zend\Soap\Clientk Zend\Soap-j ]Zend\Soap\AutoDiscover\DiscoveryStrategyi 9Zend\Session\Validatorh 5Zend\Session\Storageg 5Zend\Session\Servicef =Zend\Session\SaveHandlere 9Zend\Session\Exceptiond 3Zend\Session\Configc %Zend\Sessionb ?Zend\ServiceManager\Proxy"a GZend\ServiceManager\Exception` 9Zend\ServiceManager\Di_ 3Zend\ServiceManager%^ MZend\Server\Reflection\Exception] 9Zend\Server\Reflection\ 1Zend\Server\Method[ 7Zend\Server\ExceptionZ #Zend\ServerY ?Zend\Serializer\Exception   s vZ@,yX=pL5Y7tT4




o
K
)
						i	F	 nR,wU>%yV6pM/h;bE#S\#                    I ?Zend\Feed\Writer\Renderer6H oZend\Feed\Writer\Extension\WellFormedWeb\Renderer2G gZend\Feed\Writer\Extension\Threading\Renderer.F _Zend\Feed\Writer\Extension\Slash\Renderer/E aZend\Feed\Writer\Extension\ITunes\Renderer&D OZend\Feed\Writer\Extension\ITunes3C iZend\Feed\Writer\Extension\DublinCore\Renderer0B cZend\Feed\Writer\Extension\Content\Renderer-A ]Zend\Feed\Writer\Extension\Atom\Renderer@ AZend\Feed\Writer\Extension? AZend\Feed\Writer\Exception> -Zend\Feed\Writer= Zend\Feed< AZend\Feed\Reader\Feed\Atom; 7Zend\Feed\Reader\Feed-: ]Zend\Feed\Reader\Extension\WellFormedWeb&9 OZend\Feed\Reader\Extension\Thread+8 YZend\Feed\Reader\Extension\Syndication%7 MZend\Feed\Reader\Extension\Slash'6 QZend\Feed\Reader\Extension\Podcast*5 WZend\Feed\Reader\Extension\DublinCore/4 aZend\Feed\Reader\Extension\CreativeCommons'3 QZend\Feed\Reader\Extension\Content$2 KZend\Feed\Reader\Extension\Atom1 AZend\Feed\Reader\Extension0 AZend\Feed\Reader\Exception/ 9Zend\Feed\Reader\Entry . CZend\Feed\Reader\Collection- -Zend\Feed\Reader&, OZend\Feed\PubSubHubbub\Subscriber!+ EZend\Feed\PubSubHubbub\Model%* MZend\Feed\PubSubHubbub\Exception) 9Zend\Feed\PubSubHubbub( 3Zend\Feed\Exception' =Zend\EventManager\Filter & CZend\EventManager\Exception% /Zend\EventManager$ 9Zend\Escaper\Exception# %Zend\Escaper" 1Zend\Dom\Exception! /Zend\Dom\Document  Zend\Dom 9Zend\Di\ServiceLocator /Zend\Di\Exception +Zend\Di\Display AZend\Di\Definition\Builder 1Zend\Di\Definition" GZend\Di\Definition\Annotation Zend\Di !Zend\Debug. _Zend\Db\TableGateway\Feature\EventFeature! EZend\Db\TableGateway\Feature# IZend\Db\TableGateway\Exception 5Zend\Db\TableGateway 7Zend\Db\Sql\Predicate# IZend\Db\Sql\Platform\SqlServer' QZend\Db\Sql\Platform\SqlServer\Ddl  CZend\Db\Sql\Platform\Oracle AZend\Db\Sql\Platform\Mysql# IZend\Db\Sql\Platform\Mysql\Ddl  CZend\Db\Sql\Platform\IbmDb2 5Zend\Db\Sql\Platform 7Zend\Db\Sql\Exception
 7Zend\Db\Sql\Ddl\Index	 AZend\Db\Sql\Ddl\Constraint 9Zend\Db\Sql\Ddl\Column +Zend\Db\Sql\Ddl #Zend\Db\Sql AZend\Db\RowGateway\Feature! EZend\Db\RowGateway\Exception 1Zend\Db\RowGateway  CZend\Db\ResultSet\Exception /Zend\Db\ResultSet  ;Zend\Db\Metadata\Source ;Zend\Db\Metadata\Object~ -Zend\Db\Metadata} /Zend\Db\Exception| =Zend\Db\Adapter\Profiler{ =Zend\Db\Adapter\Platformz ?Zend\Db\Adapter\Exception,y [Zend\Db\Adapter\Driver\Sqlsrv\Exception"x GZend\Db\Adapter\Driver\Sqlsrv!w EZend\Db\Adapter\Driver\Pgsql'v QZend\Db\Adapter\Driver\Pdo\Featureu AZend\Db\Adapter\Driver\Pdo(t SZend\Db\Adapter\Driver\Oci8\Feature s CZend\Db\Adapter\Driver\Oci8"r GZend\Db\Adapter\Driver\Mysqli"q GZend\Db\Adapter\Driver\IbmDb2#p IZend\Db\Adapter\Driver\Featureo 9Zend\Db\Adapter\Drivern +Zend\Db\Adapter!m EZend\Crypt\Symmetric\Paddingl 5Zend\Crypt\Symmetric#k IZend\Crypt\Symmetric\Exception'j QZend\Crypt\PublicKey\Rsa\Exceptioni =Zend\Crypt\PublicKey\Rsah 5Zend\Crypt\PublicKey"g GZend\Crypt\Password\Exceptionf 3Zend\Crypt\Passworde ?Zend\Crypt\Key\Derivation(d SZend\Crypt\Key\Derivation\Exceptionc 5Zend\Crypt\Exceptionb !Zend\Crypta ?Zend\Console\RouteMatcher` 3Zend\Console\Prompt_ 9Zend\Console\Exception^ %Zend\Console] 1Zend\Console\Color\ 5Zend\Console\Charset[ 5Zend\Console\AdapterZ 1Zend\Config\WriterY 1Zend\Config\ReaderX 7Zend\Config\ProcessorW 7Zend\Config\Exception    \K0iQ9vT>-`>oT7!	





a
@
$
						b	L	6	w]F,gE+f> ~X=,wT'|gH)qZ9v`@             "L GZend\Paginator\ScrollingStyleK =Zend\Paginator\ExceptionJ )Zend\Paginator#I IZend\Paginator\Adapter\Service%H MZend\Paginator\Adapter\ExceptionG 9Zend\Paginator\AdapterF 5Zend\Navigation\ViewE ;Zend\Navigation\ServiceD 5Zend\Navigation\PageC ?Zend\Navigation\ExceptionB +Zend\NavigationA 'Zend\Mvc\View@ 1Zend\Mvc\View\Http? 7Zend\Mvc\View\Console> -Zend\Mvc\Service= +Zend\Mvc\Router< 5Zend\Mvc\Router\Http; ?Zend\Mvc\Router\Exception: ;Zend\Mvc\Router\Console9 ;Zend\Mvc\ResponseSender8 'Zend\Mvc\I18n7 1Zend\Mvc\Exception'6 QZend\Mvc\Controller\Plugin\Service5 AZend\Mvc\Controller\Plugin4 3Zend\Mvc\Controller3 Zend\Mvc2 1Zend\ModuleManager*1 WZend\ModuleManager\Listener\Exception 0 CZend\ModuleManager\Listener!/ EZend\ModuleManager\Exception. 3Zend\Mime\Exception- Zend\Mime, #Zend\Memory+ 7Zend\Memory\Exception* 7Zend\Memory\Container) -Zend\Math\Source( Zend\Math' 3Zend\Math\Exception#& IZend\Math\BigInteger\Exception% 5Zend\Math\BigInteger!$ EZend\Math\BigInteger\Adapter"# GZend\Mail\Transport\Exception" 3Zend\Mail\Transport! AZend\Mail\Storage\Writable  9Zend\Mail\Storage\Part% MZend\Mail\Storage\Part\Exception ?Zend\Mail\Storage\Message =Zend\Mail\Storage\Folder  CZend\Mail\Storage\Exception /Zend\Mail\Storage! EZend\Mail\Protocol\Smtp\Auth! EZend\Mail\Protocol\Exception 1Zend\Mail\Protocol AZend\Mail\Header\Exception -Zend\Mail\Header 3Zend\Mail\Exception Zend\Mail ;Zend\Log\Writer\FirePhp ?Zend\Log\Writer\ChromePhp +Zend\Log\Writer 1Zend\Log\Processor Zend\Log 1Zend\Log\Formatter +Zend\Log\Filter 1Zend\Log\Exception 7Zend\Loader\Exception
 #Zend\Loader&	 OZend\Ldap\Node\Schema\ObjectClass( SZend\Ldap\Node\Schema\AttributeType 7Zend\Ldap\Node\Schema 9Zend\Ldap\Node\RootDse )Zend\Ldap\Node )Zend\Ldap\Ldif AZend\Ldap\Filter\Exception -Zend\Ldap\Filter 3Zend\Ldap\Exception"  GZend\Ldap\Converter\Exception 3Zend\Ldap\Converter~ 5Zend\Ldap\Collection} Zend\Ldap| 5Zend\Json\Server\Smd{ ?Zend\Json\Server\Responsez =Zend\Json\Server\Requesty AZend\Json\Server\Exceptionx -Zend\Json\Serverw 3Zend\Json\Exceptionv Zend\Jsonu AZend\InputFilter\Exceptiont -Zend\InputFilters )Zend\I18n\Viewr 7Zend\I18n\View\Helperq 3Zend\I18n\Validator p CZend\I18n\Translator\Pluralo 5Zend\I18n\Translator n CZend\I18n\Translator\Loaderm -Zend\I18n\Filterl 3Zend\I18n\Exceptionk 1Zend\Http\Responsej =Zend\Http\PhpEnvironmenti AZend\Http\Header\Exception+h YZend\Http\Header\Accept\FieldValuePartg -Zend\Http\Headerf 3Zend\Http\Exceptione AZend\Http\Client\Exception'd QZend\Http\Client\Adapter\Exceptionc =Zend\Http\Client\Adapterb Zend\Httpa )Zend\Form\View` AZend\Form\View\Helper\File"_ GZend\Form\View\Helper\Captcha^ 7Zend\Form\View\Helper] 3Zend\Form\Exception\ Zend\Form[ /Zend\Form\ElementZ 5Zend\Form\AnnotationY =Zend\Filter\Word\ServiceX -Zend\Filter\WordW -Zend\Filter\FileV 7Zend\Filter\ExceptionU 3Zend\Filter\EncryptT 5Zend\Filter\CompressS #Zend\FilterR 1Zend\File\Transfer!Q EZend\File\Transfer\ExceptionP AZend\File\Transfer\AdapterO 3Zend\File\ExceptionN Zend\File(M SZend\Feed\Writer\Renderer\Feed\Atom#L IZend\Feed\Writer\Renderer\Feed$K KZend\Feed\Writer\Renderer\Entry)J UZend\Feed\Writer\Renderer\Entry\Atom   } hC"mK3sU-aA%	w_5"




i
>
					i	Y	?		gF,vbG/nN=&jM2gJ)yQeJ%]C"            I %Zend\CaptchaH ?Zend\Cache\Storage\PluginG 1Zend\Cache\StorageF AZend\Cache\Storage\AdapterE 1Zend\Cache\ServiceD 1Zend\Cache\PatternC 5Zend\Cache\ExceptionB !Zend\Cache$A KZend\Barcode\Renderer\Exception@ 7Zend\Barcode\Renderer"? GZend\Barcode\Object\Exception> 3Zend\Barcode\Object= 9Zend\Barcode\Exception< %Zend\Barcode"; GZend\Authentication\Validator : CZend\Authentication\Storage"9 GZend\Authentication\Exception8 3Zend\Authentication/7 aZend\Authentication\Adapter\Http\Exception%6 MZend\Authentication\Adapter\Http*5 WZend\Authentication\Adapter\Exception24 gZend\Authentication\Adapter\DbTable\Exception(3 SZend\Authentication\Adapter\DbTable 2 CZend\Authentication\Adapter1 ?Zend\Validator\Translator0 7Zend\Stdlib\Extractor/ AZend\ModuleManager\Feature. /Zend\Mail\Address- 7Zend\Feed\Reader\Http, /Zend\XmlRpc\Value!+ EZend\XmlRpc\Server\Exception* 1Zend\XmlRpc\Server) 5Zend\XmlRpc\Response( 3Zend\XmlRpc\Request' 7Zend\XmlRpc\Generator& 7Zend\XmlRpc\Exception% 1Zend\XmlRpc\Client!$ EZend\XmlRpc\Client\Exception# #Zend\XmlRpc" 1Zend\View\Strategy! 1Zend\View\Resolver  1Zend\View\Renderer +Zend\View\Model Zend\View =Zend\View\Helper\Service! EZend\View\Helper\Placeholder+ YZend\View\Helper\Placeholder\Container) UZend\View\Helper\Navigation\Listener  CZend\View\Helper\Navigation =Zend\View\Helper\Escaper -Zend\View\Helper 3Zend\View\Exception %Zend\Version 9Zend\Validator\Sitemap 3Zend\Validator\File =Zend\Validator\Exception /Zend\Validator\Db 9Zend\Validator\Barcode )Zend\Validator Zend\Uri 1Zend\Uri\Exception ?Zend\Text\Table\Exception ?Zend\Text\Table\Decorator
 +Zend\Text\Table	 Zend\Text -Zend\Text\Figlet AZend\Text\Figlet\Exception 3Zend\Text\Exception )Zend\Test\Util! EZend\Test\PHPUnit\Controller 1Zend\Tag\Exception Zend\Tag )Zend\Tag\Cloud'  QZend\Tag\Cloud\Decorator\Exception =Zend\Tag\Cloud\Decorator~ ?Zend\Stdlib\StringWrapper,} [Zend\Stdlib\Hydrator\Strategy\Exception"| GZend\Stdlib\Hydrator\Strategy({ SZend\Stdlib\Hydrator\NamingStrategy z CZend\Stdlib\Hydrator\Filter#y IZend\Stdlib\Hydrator\Aggregatex 5Zend\Stdlib\Hydratorw /Zend\Stdlib\Guardv 7Zend\Stdlib\Exceptionu 9Zend\Stdlib\ArrayUtilst #Zend\Stdlib's QZend\Soap\Wsdl\ComplexTypeStrategyr -Zend\Soap\Serverq 3Zend\Soap\Exceptionp -Zend\Soap\Cliento Zend\Soap-n ]Zend\Soap\AutoDiscover\DiscoveryStrategym 9Zend\Session\Validatorl 5Zend\Session\Storagek 5Zend\Session\Servicej =Zend\Session\SaveHandleri 9Zend\Session\Exceptionh 3Zend\Session\Configg %Zend\Sessionf ?Zend\ServiceManager\Proxy"e GZend\ServiceManager\Exceptiond 9Zend\ServiceManager\Dic 3Zend\ServiceManager%b MZend\Server\Reflection\Exceptiona 9Zend\Server\Reflection` 1Zend\Server\Method_ 7Zend\Server\Exception^ #Zend\Server] ?Zend\Serializer\Exception\ +Zend\Serializer[ ;Zend\Serializer\AdapterZ ;Zend\ProgressBar\UploadY -Zend\ProgressBarX AZend\ProgressBar\Exception'W QZend\ProgressBar\Adapter\ExceptionV =Zend\ProgressBar\Adapter$U KZend\Permissions\Rbac\Exception$T KZend\Permissions\Rbac\AssertionS 7Zend\Permissions\RbacR ?Zend\Permissions\Acl\Role"Q GZend\Permissions\Acl\Resource#P IZend\Permissions\Acl\Exception-O ]Zend\Permissions\Acl\Assertion\Exception#N IZend\Permissions\Acl\AssertionM 5Zend\Permissions\Acl   x" mE!^8fL8dI$|XA#




e
C
					`	@	1		 lH&fCeH,kQ/n^E+d<tR+xP"                                          +A YZend\Feed\Reader\Extension\Syndication%@ MZend\Feed\Reader\Extension\Slash'? QZend\Feed\Reader\Extension\Podcast*> WZend\Feed\Reader\Extension\DublinCore/= aZend\Feed\Reader\Extension\CreativeCommons'< QZend\Feed\Reader\Extension\Content$; KZend\Feed\Reader\Extension\Atom: AZend\Feed\Reader\Extension9 AZend\Feed\Reader\Exception8 9Zend\Feed\Reader\Entry 7 CZend\Feed\Reader\Collection6 -Zend\Feed\Reader&5 OZend\Feed\PubSubHubbub\Subscriber!4 EZend\Feed\PubSubHubbub\Model%3 MZend\Feed\PubSubHubbub\Exception2 9Zend\Feed\PubSubHubbub1 3Zend\Feed\Exception0 =Zend\EventManager\Filter / CZend\EventManager\Exception. /Zend\EventManager- 9Zend\Escaper\Exception, %Zend\Escaper+ 1Zend\Dom\Exception* /Zend\Dom\Document) Zend\Dom( ;Zend\Diactoros\Response' 9Zend\Diactoros\Request& =Zend\Diactoros\Exception% )Zend\Diactoros$ 9Zend\Di\ServiceLocator# /Zend\Di\Exception" +Zend\Di\Display! AZend\Di\Definition\Builder  1Zend\Di\Definition" GZend\Di\Definition\Annotation Zend\Di !Zend\Debug. _Zend\Db\TableGateway\Feature\EventFeature! EZend\Db\TableGateway\Feature# IZend\Db\TableGateway\Exception 5Zend\Db\TableGateway 7Zend\Db\Sql\Predicate# IZend\Db\Sql\Platform\SqlServer' QZend\Db\Sql\Platform\SqlServer\Ddl  CZend\Db\Sql\Platform\Sqlite  CZend\Db\Sql\Platform\Oracle AZend\Db\Sql\Platform\Mysql# IZend\Db\Sql\Platform\Mysql\Ddl  CZend\Db\Sql\Platform\IbmDb2 5Zend\Db\Sql\Platform 7Zend\Db\Sql\Exception 7Zend\Db\Sql\Ddl\Index AZend\Db\Sql\Ddl\Constraint 9Zend\Db\Sql\Ddl\Column +Zend\Db\Sql\Ddl
 #Zend\Db\Sql	 AZend\Db\RowGateway\Feature! EZend\Db\RowGateway\Exception 1Zend\Db\RowGateway  CZend\Db\ResultSet\Exception /Zend\Db\ResultSet ;Zend\Db\Metadata\Source ;Zend\Db\Metadata\Object -Zend\Db\Metadata /Zend\Db\Exception  Zend\Db =Zend\Db\Adapter\Profiler~ =Zend\Db\Adapter\Platform} ?Zend\Db\Adapter\Exception,| [Zend\Db\Adapter\Driver\Sqlsrv\Exception"{ GZend\Db\Adapter\Driver\Sqlsrv!z EZend\Db\Adapter\Driver\Pgsql'y QZend\Db\Adapter\Driver\Pdo\Featurex AZend\Db\Adapter\Driver\Pdo(w SZend\Db\Adapter\Driver\Oci8\Feature v CZend\Db\Adapter\Driver\Oci8"u GZend\Db\Adapter\Driver\Mysqli"t GZend\Db\Adapter\Driver\IbmDb2#s IZend\Db\Adapter\Driver\Featurer 9Zend\Db\Adapter\Driverq +Zend\Db\Adapter!p EZend\Crypt\Symmetric\Paddingo 5Zend\Crypt\Symmetric#n IZend\Crypt\Symmetric\Exception'm QZend\Crypt\PublicKey\Rsa\Exceptionl =Zend\Crypt\PublicKey\Rsak 5Zend\Crypt\PublicKey"j GZend\Crypt\Password\Exceptioni 3Zend\Crypt\Passwordh ?Zend\Crypt\Key\Derivation(g SZend\Crypt\Key\Derivation\Exceptionf 5Zend\Crypt\Exceptione !Zend\Cryptd ?Zend\Console\RouteMatcherc 3Zend\Console\Promptb 9Zend\Console\Exceptiona %Zend\Console` 1Zend\Console\Color_ 5Zend\Console\Charset^ 5Zend\Console\Adapter] 1Zend\Config\Writer\ 1Zend\Config\Reader[ 7Zend\Config\ProcessorZ 7Zend\Config\ExceptionY #Zend\ConfigX /Zend\Code\Scanner#W IZend\Code\Reflection\Exception"V GZend\Code\Reflection\DocBlock&U OZend\Code\Reflection\DocBlock\TagT 5Zend\Code\ReflectionS Zend\Code R CZend\Code\Generic\Prototype"Q GZend\Code\Generator\Exception!P EZend\Code\Generator\DocBlock%O MZend\Code\Generator\DocBlock\TagN 3Zend\Code\GeneratorM 3Zend\Code\Exception L CZend\Code\Annotation\ParserK 5Zend\Code\AnnotationJ 9Zend\Captcha\Exception   |
 hK:" {EK*uZ8{cC'




|
Z
D
3
					f	D	$	
}Y;mR5_>"}fE&c?&|Z?kN;*qV4
          '= QZend\Mvc\Controller\Plugin\Service< AZend\Mvc\Controller\Plugin; 3Zend\Mvc\Controller: Zend\Mvc9 1Zend\ModuleManager*8 WZend\ModuleManager\Listener\Exception 7 CZend\ModuleManager\Listener!6 EZend\ModuleManager\Exception5 3Zend\Mime\Exception4 Zend\Mime3 #Zend\Memory2 7Zend\Memory\Exception1 7Zend\Memory\Container0 Zend\Math/ 3Zend\Math\Exception#. IZend\Math\BigInteger\Exception- 5Zend\Math\BigInteger!, EZend\Math\BigInteger\Adapter"+ GZend\Mail\Transport\Exception* 3Zend\Mail\Transport) AZend\Mail\Storage\Writable( 9Zend\Mail\Storage\Part%' MZend\Mail\Storage\Part\Exception& ?Zend\Mail\Storage\Message% =Zend\Mail\Storage\Folder $ CZend\Mail\Storage\Exception# /Zend\Mail\Storage!" EZend\Mail\Protocol\Smtp\Auth!! EZend\Mail\Protocol\Exception  1Zend\Mail\Protocol AZend\Mail\Header\Exception -Zend\Mail\Header 3Zend\Mail\Exception Zend\Mail ;Zend\Log\Writer\FirePhp ;Zend\Log\Writer\Factory ?Zend\Log\Writer\ChromePhp +Zend\Log\Writer 1Zend\Log\Processor 1Zend\Log\Formatter +Zend\Log\Filter 1Zend\Log\Exception Zend\Log 7Zend\Loader\Exception #Zend\Loader 5Zend\Json\Server\Smd ?Zend\Json\Server\Response =Zend\Json\Server\Request AZend\Json\Server\Exception -Zend\Json\Server 3Zend\Json\Exception
 Zend\Json	 AZend\InputFilter\Exception -Zend\InputFilter )Zend\I18n\View 7Zend\I18n\View\Helper 3Zend\I18n\Validator  CZend\I18n\Translator\Plural 5Zend\I18n\Translator  CZend\I18n\Translator\Loader -Zend\I18n\Filter  3Zend\I18n\Exception Zend\I18n%~ MZend\Hydrator\Strategy\Exception} 9Zend\Hydrator\Strategy!| EZend\Hydrator\NamingStrategy{ 9Zend\Hydrator\Iteratorz 5Zend\Hydrator\Filtery ;Zend\Hydrator\Exceptionx ;Zend\Hydrator\Aggregatew 'Zend\Hydratorv 1Zend\Http\Responseu =Zend\Http\PhpEnvironmentt AZend\Http\Header\Exception+s YZend\Http\Header\Accept\FieldValuePartr -Zend\Http\Headerq 3Zend\Http\Exceptionp AZend\Http\Client\Exception'o QZend\Http\Client\Adapter\Exceptionn =Zend\Http\Client\Adapterm Zend\Httpl )Zend\Form\Viewk AZend\Form\View\Helper\File"j GZend\Form\View\Helper\Captchai 7Zend\Form\View\Helper!h EZend\Form\FormElementManagerg 3Zend\Form\Exceptionf /Zend\Form\Elemente Zend\Formd 5Zend\Form\Annotationc =Zend\Filter\Word\Serviceb -Zend\Filter\Worda -Zend\Filter\File` 7Zend\Filter\Exception_ 3Zend\Filter\Encrypt^ 5Zend\Filter\Compress] #Zend\Filter\ 1Zend\File\Transfer![ EZend\File\Transfer\ExceptionZ AZend\File\Transfer\AdapterY 3Zend\File\ExceptionX Zend\File(W SZend\Feed\Writer\Renderer\Feed\Atom#V IZend\Feed\Writer\Renderer\Feed$U KZend\Feed\Writer\Renderer\Entry)T UZend\Feed\Writer\Renderer\Entry\AtomS ?Zend\Feed\Writer\Renderer6R oZend\Feed\Writer\Extension\WellFormedWeb\Renderer2Q gZend\Feed\Writer\Extension\Threading\Renderer.P _Zend\Feed\Writer\Extension\Slash\Renderer/O aZend\Feed\Writer\Extension\ITunes\Renderer&N OZend\Feed\Writer\Extension\ITunes3M iZend\Feed\Writer\Extension\DublinCore\Renderer0L cZend\Feed\Writer\Extension\Content\Renderer-K ]Zend\Feed\Writer\Extension\Atom\RendererJ AZend\Feed\Writer\ExtensionI AZend\Feed\Writer\ExceptionH -Zend\Feed\WriterG Zend\FeedF 7Zend\Feed\Reader\HttpE AZend\Feed\Reader\Feed\AtomD 7Zend\Feed\Reader\Feed-C ]Zend\Feed\Reader\Extension\WellFormedWeb&B OZend\Feed\Reader\Extension\Thread    }Z0vW;zY=`;~]@




n
O
8

						}	j	M	3	iK#~`0y\; {Q;+qZ9fK-]9o\8                        < 1Zend\XmlRpc\Client!; EZend\XmlRpc\Client\Exception: #Zend\XmlRpc9 'Zend\Xml2Json8 ;Zend\Xml2Json\Exception7 1Zend\View\Strategy6 1Zend\View\Resolver5 1Zend\View\Renderer4 +Zend\View\Model3 Zend\View2 =Zend\View\Helper\Service!1 EZend\View\Helper\Placeholder+0 YZend\View\Helper\Placeholder\Container)/ UZend\View\Helper\Navigation\Listener . CZend\View\Helper\Navigation- =Zend\View\Helper\Escaper, -Zend\View\Helper+ 3Zend\View\Exception* 9Zend\Validator\Sitemap) 3Zend\Validator\Isbn( 3Zend\Validator\File' =Zend\Validator\Exception& /Zend\Validator\Db% 9Zend\Validator\Barcode$ )Zend\Validator# Zend\Uri" 1Zend\Uri\Exception! ?Zend\Text\Table\Exception  ?Zend\Text\Table\Decorator +Zend\Text\Table Zend\Text -Zend\Text\Figlet AZend\Text\Figlet\Exception 3Zend\Text\Exception )Zend\Test\Util! EZend\Test\PHPUnit\Controller 1Zend\Tag\Exception Zend\Tag )Zend\Tag\Cloud' QZend\Tag\Cloud\Decorator\Exception =Zend\Tag\Cloud\Decorator! EZend\Stratigility\Middleware 9Zend\Stratigility\Http  CZend\Stratigility\Exception /Zend\Stratigility AZend\Stratigility\Delegate ?Zend\Stdlib\StringWrapper 7Zend\Stdlib\Exception 9Zend\Stdlib\ArrayUtils #Zend\Stdlib'
 QZend\Soap\Wsdl\ComplexTypeStrategy	 -Zend\Soap\Server 3Zend\Soap\Exception -Zend\Soap\Client Zend\Soap- ]Zend\Soap\AutoDiscover\DiscoveryStrategy 9Zend\Session\Validator 5Zend\Session\Storage 5Zend\Session\Service =Zend\Session\SaveHandler  9Zend\Session\Exception 3Zend\Session\Config~ %Zend\Session%} MZend\ServiceManager\Di\Exception| 9Zend\ServiceManager\Di{ ?Zend\ServiceManager\Proxy z CZend\ServiceManager\Factory"y GZend\ServiceManager\Exceptionx 3Zend\ServiceManager%w MZend\Server\Reflection\Exceptionv 9Zend\Server\Reflectionu 1Zend\Server\Methodt 7Zend\Server\Exceptions #Zend\Serverr ?Zend\Serializer\Exceptionq +Zend\Serializerp ;Zend\Serializer\Adaptero -Zend\Router\Httpn 7Zend\Router\Exceptionm #Zend\Routerl 5Zend\Psr7Bridge\Zendk +Zend\Psr7Bridgej ;Zend\ProgressBar\Uploadi -Zend\ProgressBarh AZend\ProgressBar\Exception'g QZend\ProgressBar\Adapter\Exceptionf =Zend\ProgressBar\Adapter$e KZend\Permissions\Rbac\Exception$d KZend\Permissions\Rbac\Assertionc 7Zend\Permissions\Rbacb ?Zend\Permissions\Acl\Role"a GZend\Permissions\Acl\Resource#` IZend\Permissions\Acl\Exception-_ ]Zend\Permissions\Acl\Assertion\Exception#^ IZend\Permissions\Acl\Assertion] 5Zend\Permissions\Acl"\ GZend\Paginator\ScrollingStyle[ =Zend\Paginator\ExceptionZ )Zend\Paginator#Y IZend\Paginator\Adapter\Service%X MZend\Paginator\Adapter\ExceptionW 9Zend\Paginator\AdapterV 5Zend\Navigation\ViewU ;Zend\Navigation\ServiceT 5Zend\Navigation\PageS ?Zend\Navigation\ExceptionR +Zend\NavigationQ 3Zend\Mvc\Plugin\PrgP =Zend\Mvc\Plugin\Identity'O QZend\Mvc\Plugin\Identity\Exception#N IZend\Mvc\Plugin\FlashMessengerM ;Zend\Mvc\Plugin\FilePrgL 5Zend\Mvc\I18n\RouterK ;Zend\Mvc\I18n\ExceptionJ 'Zend\Mvc\I18nI 7Zend\Mvc\Console\ViewH =Zend\Mvc\Console\ServiceG ;Zend\Mvc\Console\Router$F KZend\Mvc\Console\ResponseSenderE AZend\Mvc\Console\Exception'D QZend\Mvc\Console\Controller\Plugin C CZend\Mvc\Console\ControllerB -Zend\Mvc\ConsoleA 1Zend\Mvc\View\Http@ -Zend\Mvc\Service? ;Zend\Mvc\ResponseSender> 1Zend\Mvc\Exception   ^ uQ8w^                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          J /Zend\Stdlib\GuardI =Zend\ServiceManager\TestH 9Zend\EventManager\TestG ?Zend\Validator\Translator$F KZend\ServiceManager\InitializerE AZend\ModuleManager\FeatureD /Zend\Mail\AddressC /Zend\XmlRpc\Value!B EZend\XmlRpc\Server\ExceptionA 1Zend\XmlRpc\Server@ 5Zend\XmlRpc\Response? 3Zend\XmlRpc\Request> 7Zend\XmlRpc\Generator= 7Zend\XmlRpc\Exception   s ~_H5mQ2l_SH=2&
wX>'dB#





^
H
4
!
							|	c	N	D	2	!		uhTE/~cL6yW7rT4nW=$zcL2o^L.s                     + 3DerivedClassScanner"* %ClassScanner") 1CachingFileScanner"( /AnnotationScanner"' ?AggregateDirectoryScanner"& -RuntimeException!% =InvalidArgumentException!$ 9BadMethodCallException!# !TagManager " ReturnTag! #PropertyTag  ParamTag MethodTag !GenericTag 1PropertyReflection 3ParameterReflection -MethodReflection 1FunctionReflection )FileReflection 1DocBlockReflection +ClassReflection +NameInformation -RuntimeException =InvalidArgumentException Tag ReturnTag ParamTag !LicenseTag )ValueGenerator 9PropertyValueGenerator /PropertyGenerator 1ParameterGenerator +MethodGenerator
 7FileGeneratorRegistry	 'FileGenerator /DocBlockGenerator )ClassGenerator 'BodyGenerator ;AbstractMemberGenerator /AbstractGenerator -RuntimeException =InvalidArgumentException 9BadMethodCallException  ;GenericAnnotationParser =DoctrineAnnotationParser~ /AnnotationManager} 5AnnotationCollection| -RuntimeException{ ;NoFontProvidedExceptionz =InvalidArgumentExceptiony ?ImageNotLoadableException x CExtensionNotLoadedExceptionw +DomainExceptionv ReCaptcha
u Imaget Figlets Factory	r Dumbq %AbstractWordp +AbstractAdaptero !Serializern 'PluginOptionsm -OptimizeByFactorl +IgnoreUserAbortk -ExceptionHandlerj 5ClearExpiredByFactori )AbstractPluginh PostEventg 'PluginManagerf )ExceptionEvent
e Eventd %Capabilitiesc 5AdapterPluginManagerb 'ZendServerShma )ZendServerDisk` +WinCacheOptions_ WinCache^ 'MemoryOptions] Memory\ -MemcachedOptions[ MemcachedZ +KeyListIteratorY /FilesystemOptionsX 1FilesystemIteratorW !FilesystemV !DbaOptionsU #DbaIteratorT DbaS !ApcOptionsR #ApcIteratorQ ApcP )AdapterOptionsO 1AbstractZendServerN +AbstractAdapterM )StorageFactoryL 5PatternPluginManagerK )PatternFactoryJ )PatternOptionsI #OutputCacheH #ObjectCacheG !ClassCacheF %CaptureCacheE 'CallbackCacheD +AbstractPattern#C IUnsupportedMethodCallExceptionB =UnexpectedValueExceptionA -RuntimeException@ 3OutOfSpaceException? 3MissingKeyException> AMissingDependencyException= )LogicException< =InvalidArgumentException ; CExtensionNotLoadedException: 9BadMethodCallException9 =UnexpectedValueException8 -RuntimeException7 3OutOfRangeException6 =InvalidArgumentException5 Svg4 Pdf
3 Image2 -AbstractRenderer1 -RuntimeException0 3OutOfRangeException/ =InvalidArgumentException . CExtensionNotLoadedException- ABarcodeValidationException	, Upce
	+ Upca
* Royalmail
) Postnet
( Planet
' Leitcode

& Itf14
% Identcode

$ Error
	# Ean8
	" Ean5
	! Ean2

  Ean13
 Code39
 /Code25interleaved
 Code25
 Code128
 Codabar
 )AbstractObject
 =UnexpectedValueException	 -RuntimeException	 ?RendererCreationException	 3OutOfRangeException	 =InvalidArgumentException	 7RendererPluginManager 3ObjectPluginManager Barcode Session 'NonPersistent =UnexpectedValueException -RuntimeException =InvalidArgumentException Result 7AuthenticationService
 %FileResolver	 -RuntimeException =InvalidArgumentException =UnexpectedValueException -RuntimeException =InvalidArgumentException 	Ldap 	Http
 	Digest 	DbTable    zaUA*peYNB,!tg[J;-{m_L@4	zlL4





t
\
N
2
%
								o	]	R	D	3			rR&	pP8q\B,}kK3
}p^>&p_K/pY@'      g +ArrayDefinitionXf %InstantiatorWe InjectWd )ServiceLocatorVc +InstanceManagerVb DiVa )DefinitionListV` ConfigV
_ DebugU^ /TableGatewayEventT] /RowGatewayFeatureS\ +MetadataFeatureS[ 1MasterSlaveFeatureSZ 5GlobalAdapterFeatureSY !FeatureSetSX %EventFeatureSW +AbstractFeatureSV -RuntimeExceptionRU =InvalidArgumentExceptionRT %TableGatewayQS 5AbstractTableGatewayQR %PredicateSetPQ PredicatePP OperatorP	O LikePN IsNullPM IsNotNullPL InPK !ExpressionPJ BetweenPI SqlServerOH +SelectDecoratorOG PlatformNF -AbstractPlatformNE -RuntimeExceptionMD =InvalidArgumentExceptionMC !DeleteTestL
B WhereLA UpdateL@ +TableIdentifierL? SqlL> SelectL= InsertL< HavingL; !ExpressionL: DeleteL9 #AbstractSqlL8 !FeatureSetK7 +AbstractFeatureK6 -RuntimeExceptionJ5 =InvalidArgumentExceptionJ4 !RowGatewayI3 1AbstractRowGatewayI2 -RuntimeExceptionH1 =InvalidArgumentExceptionH0 ResultSetG/ 1HydratingResultSetG. /AbstractResultSetG- /SqlServerMetadataF, )SqliteMetadataF+ 1PostgresqlMetadataF* 'MysqlMetadataF) )AbstractSourceF( !ViewObjectE' 'TriggerObjectE& #TableObjectE% -ConstraintObjectE$ %ColumnObjectE# 3AbstractTableObjectE" MetadataD! =UnexpectedValueExceptionC  -RuntimeExceptionC =InvalidArgumentExceptionC )ErrorExceptionC SqlServerB SqliteB
 Sql92B !PostgresqlB
 MysqlB =UnexpectedValueExceptionA -RuntimeExceptionA 7InvalidQueryExceptionA) UInvalidConnectionParametersExceptionA =InvalidArgumentExceptionA )ErrorExceptionA )ErrorException@ Statement? Sqlsrv? Result? !Connection? Statement> Result>
 Pgsql>
 !Connection>	 -SqliteRowCounter= Statement< Result< Pdo< !Connection< Statement; Result; Mysqli; !Connection;  +AbstractFeature: 1StatementContainer9~ 1ParameterContainer9} 7AdapterServiceFactory9| Adapter9
{ Pkcs78z 5PaddingPluginManager7y Mcrypt7x -RuntimeException6w =InvalidArgumentException6v -RuntimeException5u =InvalidArgumentException5t PublicKey4s !PrivateKey4r #AbstractKey4q !RsaOptions3p Rsa3o 'DiffieHellman3n -RuntimeException2m =InvalidArgumentException2l Bcrypt1k SaltedS2k0j Pbkdf20i -RuntimeException/h =InvalidArgumentException/g -RuntimeException.f =InvalidArgumentException.
e Utils-d 9SymmetricPluginManager-	c Hmac-	b Hash-a #BlockCipher-` Select,_ Number,	^ Line,] Confirm,	\ Char,[ )AbstractPrompt,Z -RuntimeException+Y =InvalidArgumentException+X 9BadMethodCallException+W Response*V Request*U Getopt*T Console*S Utf8Heavy)	R Utf8)
Q DECSG)P 'AsciiExtended)
O Ascii)N )WindowsAnsicon(M Windows(L Virtual(
K Posix(J +AbstractAdapter(	I Yaml'H Xml'G PhpArray'	F Json'E Ini'D )AbstractWriter'	C Yaml&B Xml&	A Json&@ Ini&? !Translator%
> Token%
= Queue%< Filter%; Constant%: -RuntimeException$9 =InvalidArgumentException$8 3ReaderPluginManager#7 Factory#6 Config#5 +VariableScanner"4 %ValueScanner"	3 Util"2 /TokenArrayScanner"1 -ParameterScanner"0 'MethodScanner"/ +FunctionScanner". #FileScanner"- +DocBlockScanner", -DirectoryScanner"    iYJ'	hP-oWJ6#	dN0u]H4$







|
j
U
I
>
 
 									s	g	Z	N	A	5	(		{m_A!	}oaH8+xY8_F5uaE0vd?3(yX?/            7CamelCaseToUnderscore  5CamelCaseToSeparator  +CamelCaseToDash  /AbstractSeparator  UpperCase  Rename  LowerCase  Encrypt  Decrypt  -RuntimeException  =InvalidArgumentException ! CExtensionNotLoadedException  +DomainException  9BadMethodCallException  Openssl  #BlockCipher 	 Zip 	 Tar 	 Rar 	
 Lzf 	 Gz 	 Bz2 " EAbstractCompressionAlgorithm  StripTags  'StripNewlines  !StringTrim  'StringToUpper  'StringToLower  %StaticFilter   RealPath  #PregReplace 
~ Null 	} Int | Inflector { %HtmlEntities z 3FilterPluginManager y #FilterChain x Encrypt 	w Dir v Digits u Decrypt t !Decompress s Compress r Callback q Boolean p BaseName o +AbstractUnicode n )AbstractFilter m Transfer l -RuntimeException k ;PhpEnvironmentException j =InvalidArgumentException i 9BadMethodCallException h 9ValidatorPluginManager 
g Http f 3FilterPluginManager e +AbstractAdapter d -RuntimeException c =InvalidArgumentException b 9BadMethodCallException a %PhpClassFile ` -ClassFileLocator _ Source ^ %AbstractAtom 	] Rss \ !AtomSource 
[ Atom Z %AbstractAtom 	Y Rss X #AtomDeleted 
W Atom V Deleted U -AbstractRenderer T Entry S Entry R Entry 
Q Feed P Entry 	O Feed
N Entry	M Feed~
L Entry~
K Entry}	J Feed|I -AbstractRenderer{H -RuntimeExceptionzG =InvalidArgumentExceptionzF 9BadMethodCallExceptionzE WriteryD SourceyC #FeedFactoryy	B FeedyA -ExtensionManagery
@ Entryy? Deletedy> %AbstractFeedy= Sourcex< Rssw	; Atomw: %AbstractFeedw
9 Entryv
8 Entryu	7 Feedt
6 Entrys	5 Feedr
4 Entryr	3 Feedq
2 Entryq	1 Feedp
0 Entryp
/ Entryo	. Feedn
- Entryn, %AbstractFeedm+ 'AbstractEntrym* -RuntimeExceptionl) =InvalidArgumentExceptionl( 9BadMethodCallExceptionl' Rssk	& Atomk% 'AbstractEntryk$ !Collectionj# Categoryj" Authorj! 1AbstractCollectionj  Readeri FeedSeti -ExtensionManageri !Collectioni %AbstractFeedi 'AbstractEntryi Callbackh %Subscriptiong 'AbstractModelg -RuntimeExceptionf =InvalidArgumentExceptionf !Subscribere %PubSubHubbube Publishere %HttpResponsee -AbstractCallbacke -RuntimeExceptiond =InvalidArgumentExceptiond 9BadMethodCallExceptiond )FilterIteratorc =InvalidCallbackExceptionb =InvalidArgumentExceptionb
 +DomainExceptionb	 1StaticEventManagera 1SharedEventManagera 1ResponseCollectiona 1GlobalEventManagera #FilterChaina %EventManagera
 Eventa -RuntimeException` =InvalidArgumentException`  Escaper_ -RuntimeException^
~ Query]} NodeList]| Css2Xpath]{ /GeneratorInstance\z Generator\y ;DependencyInjectorProxy\ x CUndefinedReferenceException[w -RuntimeException[v =MissingPropertyException[u =InvalidPositionException[t ?InvalidParamNameException[s =InvalidCallbackException[r =InvalidArgumentException[q 9ClassNotFoundException[ p CCircularDependencyException[o ConsoleZn PhpClassYm +InjectionMethodYl /RuntimeDefinitionXk 7IntrospectionStrategyXj 1CompilerDefinitionXi +ClassDefinitionXh /BuilderDefinitionX    eG.~kT1p_R:(	{l^P:+|k^?'






n
\
K
6

								p	V	C	.		
yhXG2%p`OB4%yX<#ycL5 zbL4!reU=)oaQA.              Y Warning 	X Via 
W Vary V UserAgent U Upgrade T -TransferEncoding S Trailer R TE Q SetCookie P Server O !RetryAfter N Refresh M Referer L Range K 1ProxyAuthorization J /ProxyAuthenticate I Pragma H #MaxForwards G Location F %LastModified E KeepAlive D /IfUnmodifiedSince C IfRange B #IfNoneMatch A +IfModifiedSince @ IfMatch 
? Host > 1GenericMultiHeader = 'GenericHeader 
< From ; Expires : Expect 
9 Etag 
8 Date 7 Cookie 6 #ContentType 5 %ContentRange 4 !ContentMD5 3 +ContentLocation 2 'ContentLength 1 +ContentLanguage 0 +ContentEncoding / 1ContentDisposition . !Connection - %CacheControl , 'Authorization + 1AuthenticationInfo * Allow 	) Age ( %AcceptRanges ' )AcceptLanguage & )AcceptEncoding % 'AcceptCharset $ Accept # -AbstractLocation " %AbstractDate ! )AbstractAccept   -RuntimeException  3OutOfRangeException  =InvalidArgumentException  -RuntimeException  3OutOfRangeException  =InvalidArgumentException  Cookies  -TimeoutException  -RuntimeException  3OutOfRangeException  =InvalidArgumentException  ;InitializationException 
 Test  Socket  Proxy 
 Curl  Response  Request  Headers  %HeaderLoader  Cookies  %ClientStatic 
 Client 	 +AbstractMessage  %HelperConfig  ReCaptcha  Image  Figlet 
 Dumb  %AbstractWord  FormWeek  FormUrl   FormTime  %FormTextarea ~ FormText } FormTel | !FormSubmit { !FormSelect z !FormSearch y FormRow x FormReset w FormRange v FormRadio u %FormPassword t !FormNumber s /FormMultiCheckbox r FormMonth q FormLabel p FormInput o FormImage n !FormHidden m FormFile l FormEmail k /FormElementErrors j #FormElement i /FormDateTimeLocal h %FormDateTime g FormDate f FormColor e )FormCollection d %FormCheckbox c #FormCaptcha b !FormButton 
a Form ` )AbstractHelper _ =UnexpectedValueException ^ =InvalidArgumentException ] +DomainException \ 9BadMethodCallException 
[ Form Z Fieldset Y Factory X Element 
W Week 	V Url 
U Time T Textarea 
S Text R Submit Q Select P Range O Radio N Password M Number L 'MultiCheckbox K Month J Image I Hidden 
H File G Email F 'DateTimeLocal E DateTime 
D Date 
C Csrf B Color A !Collection @ Checkbox ? Captcha > Button = Validator < +ValidationGroup 
; Type : Required 9 Options 8 Object 
7 Name 6 #InputFilter 5 Input 4 Hydrator 3 ;FormAnnotationsListener 2 Flags 1 Filter 0 Exclude / %ErrorMessage  . AElementAnnotationsListener - )ComposedObject , !Attributes + /AnnotationBuilder * !AllowEmpty ) =AbstractStringAnnotation ( ;AbstractArrayAnnotation !' CAbstractAnnotationsListener & 7UnderscoreToSeparator % -UnderscoreToDash $ 7UnderscoreToCamelCase # 5SeparatorToSeparator " +SeparatorToDash ! 5SeparatorToCamelCase   -DashToUnderscore  +DashToSeparator  +DashToCamelCase    m oP/zaJ<.	yj\N@4#l\N: kRD5'






w
j
Z
H
5
*


					z	[	:	$	zjU<)
xgO>$	cFseN</$~bRE8(`H'
z_J7% m  -RuntimeException 
 =InvalidArgumentException 	 9BadMethodCallException  To  Subject  Sender  ReplyTo  Received  #MimeVersion  MessageId  !HeaderWrap   %HeaderLoader  1GenericMultiHeader ~ 'GenericHeader 
} From 
| Date { #ContentType z Cc 	y Bcc x 3AbstractAddressList w -RuntimeException v 5OutOfBoundsException u =InvalidArgumentException t +DomainException s 9BadMethodCallException r Storage q Message p Headers o #AddressList n Address m 'FirePhpBridge l #ZendMonitor k Syslog j Stream 
i Null h MongoDB 
g Mock 
f Mail e FirePhp d 3FilterPluginManager c Db b )AbstractWriter a 3WriterPluginManager ` Logger 	_ Xml ^ Simple ] FirePhp \ -ExceptionHandler [ %ErrorHandler Z Db 
Y Base X Validator W )SuppressFilter V Regex U Priority 
T Mock S -RuntimeException R =InvalidArgumentException Q /SecurityException P -RuntimeException O 7PluginLoaderException 'N OMissingResourceNamespaceException M 5InvalidPathException L =InvalidArgumentException K +DomainException J 9BadMethodCallException I 1StandardAutoloader H /PluginClassLoader G -ModuleAutoloader F 1ClassMapAutoloader E /AutoloaderFactory D OpenLdap C +ActiveDirectory B OpenLdap A +ActiveDirectory @ OpenLdap ? +ActiveDirectory > %AbstractItem = OpenLdap < !eDirectory ; +ActiveDirectory : Schema 9 RootDse 8 !Collection 7 -ChildrenIterator 6 %AbstractNode 5 Encoder 4 +FilterException 3 %StringFilter 2 OrFilter 1 NotFilter 0 !MaskFilter / AndFilter . 7AbstractLogicalFilter - )AbstractFilter , 'LdapException + =InvalidArgumentException * 9BadMethodCallException ) =UnexpectedValueException ( =InvalidArgumentException ' 1ConverterException & Converter % +DefaultIterator 
$ Node 
# Ldap " Filter ! Dn   !Collection  Attribute  Service 
 Http 
 Http  -RuntimeException  =InvalidArgumentException  'HttpException  )ErrorException 	 Smd  Server  Response  Request  Error  Client  Cache  -RuntimeException  1RecursionException  =InvalidArgumentException  9BadMethodCallException 
 Json 
 Expr 
 Encoder 	 Decoder  -RuntimeException  =InvalidArgumentException  #InputFilter  Input  Factory  +BaseInputFilter  %HelperConfig  +TranslatePlural   Translate  %NumberFormat ~ !DateFormat } )CurrencyFormat | =AbstractTranslatorHelper { PostCode 	z Int y Float x Alpha w Alnum v Symbol 
u Rule t Parser s =TranslatorServiceFactory r !Translator q !TextDomain p 3LoaderPluginManager o PhpArray n Gettext m %NumberFormat l Alpha k Alnum j )AbstractLocale i -RuntimeException h )RangeException g )ParseException f 5OutOfBoundsException e =InvalidArgumentException d Stream c Response b Request a -RuntimeException ` =InvalidArgumentException _ 9LanguageFieldValuePart ^ 9EncodingFieldValuePart ] 7CharsetFieldValuePart \ 5AcceptFieldValuePart [ 9AbstractFieldValuePart Z +WWWAuthenticate    N l\N@(n^QD#
t`QE(i\B)
sZ9 





d
E
)
							d	S	=		qbS;*jYF7xiYB1	aAycD'kO(_A-lN          ) 7RouteNotFoundStrategy ( ;InjectViewModelListener ' 9InjectTemplateListener $& IInjectRoutematchParamsListener % /ExceptionStrategy $ =DefaultRenderingStrategy # ;CreateViewModelListener " #ViewManager ! 7RouteNotFoundStrategy   ;InjectViewModelListener & MInjectNamedConsoleParamsListener  /ExceptionStrategy  =DefaultRenderingStrategy  ;CreateViewModelListener " EViewTemplatePathStackFactory $ IViewTemplateMapResolverFactory  3ViewResolverFactory  1ViewManagerFactory  ;ViewJsonStrategyFactory  ;ViewJsonRendererFactory  =ViewHelperManagerFactory  ;ViewFeedStrategyFactory  ;ViewFeedRendererFactory  5ServiceManagerConfig  9ServiceListenerFactory  'RouterFactory  +ResponseFactory  )RequestFactory  5ModuleManagerFactory  3EventManagerFactory $ IDiStrictAbstractServiceFactory 
 DiFactory $	 IControllerPluginManagerFactory  ;ControllerLoaderFactory  7ConsoleAdapterFactory  'ConfigFactory  1ApplicationFactory " EAbstractPluginManagerFactory  -SimpleRouteStack  1RoutePluginManager  !RouteMatch   %PriorityList  Wildcard ~ )TreeRouteStack } Segment | Scheme { !RouteMatch z Regex y Query 
x Part w Method v Literal u Hostname t -RuntimeException s =InvalidArgumentException r -SimpleRouteStack q Simple p !RouteMatch o Catchall n -RuntimeException m ;MissingLocatorException l 9InvalidPluginException  k AInvalidControllerException j =InvalidArgumentException i +DomainException 	h Url g Redirect f +PostRedirectGet e Params d Layout c Forward b )FlashMessenger a )AbstractPlugin ` 'PluginManager _ /ControllerManager ^ ?AbstractRestfulController ] 1AbstractController \ =AbstractActionController [ 'RouteListener Z MvcEvent Y 3ModuleRouteListener X -DispatchListener W #Application V 'ModuleManager U #ModuleEvent T -RuntimeException S =InvalidArgumentException R +ServiceListener Q 3OnBootstrapListener P 9ModuleResolverListener !O CLocatorRegistrationListener N +ListenerOptions M #InitTrigger L =DefaultListenerAggregate K )ConfigListener J 1AutoloaderListener I -AbstractListener H -RuntimeException G =InvalidArgumentException F -RuntimeException 
E Part 
D Mime C Message B Decode A Value @ 'MemoryManager ? -RuntimeException > =InvalidArgumentException = Movable < Locked ; -AccessController : /AbstractContainer 
9 Rand 8 -RuntimeException 7 =InvalidArgumentException 6 +DomainException 5 -RuntimeException 4 =InvalidArgumentException 3 ;DivisionByZeroException 2 !BigInteger 1 5AdapterPluginManager 	0 Gmp / Bcmath . #SmtpOptions 
- Smtp , Sendmail + #FileOptions 
* File ) -RuntimeException ( =InvalidArgumentException ' Maildir 
& File % -RuntimeException $ =InvalidArgumentException 
# File 
" Mbox ! Maildir   -RuntimeException  5OutOfBoundsException  =InvalidArgumentException 
 Pop3 
 Part  Message 
 Mbox  Maildir 
 Imap  Folder  +AbstractStorage  Plain  Login  Crammd5  -RuntimeException  =InvalidArgumentException  /SmtpPluginManager 
 Smtp 
 Pop3 
 Imap  -AbstractProtocol    K kJ- n]L?wS1%rZJ;,pYH;'






\
;
"
						~	m	Z	H	6		xY8e<pYB,ydM7$}Y8tbG/	u\K:wbK       G )ObjectProperty!F %ClassMethods!E /ArraySerializable!D -AbstractHydrator!C )LogicException B =InvalidCallbackException A =InvalidArgumentException @ +DomainException ? 9BadMethodCallException > SplStack= SplQueue< -SplPriorityQueue; Response: Request9 'PriorityQueue8 !Parameters7 Message
6 Glob5 %ErrorHandler4 +CallbackHandler3 !ArrayUtils2 !ArrayStack1 +AbstractOptions0 1DefaultComplexType/ Composite. 3ArrayOfTypeSequence- 1ArrayOfTypeComplex, AnyType!+ CAbstractComplexTypeStrategy* 9DocumentLiteralWrapper) =UnexpectedValueException( -RuntimeException' =InvalidArgumentException!& CExtensionNotLoadedException% 9BadMethodCallException$ Local# DotNet" Common
! Wsdl  Server Client %AutoDiscover 3ReflectionDiscovery !RemoteAddr 'HttpUserAgent )SessionStorage %ArrayStorage 7DbTableGatewayOptions )DbTableGateway Cache -RuntimeException =InvalidArgumentException 9BadMethodCallException )StandardConfig 'SessionConfig )ValidatorChain )SessionManager Container +AbstractManager =ServiceNotFoundException  AServiceNotCreatedException
 -RuntimeException!	 CInvalidServiceNameException =InvalidArgumentException& MCircularDependencyFoundException 5DiServiceInitializer -DiServiceFactory 9DiInstanceManagerProxy =DiAbstractServiceFactory )ServiceManager Config  7AbstractPluginManager -RuntimeException~ =InvalidArgumentException} 9BadMethodCallException| 7ReflectionReturnValue{ 3ReflectionParameterz -ReflectionMethody 1ReflectionFunctionx +ReflectionClassw Prototype
v Nodeu -AbstractFunctiont Prototypes Parameterr !Definitionq Callbackp -RuntimeExceptiono =InvalidArgumentExceptionn 9BadMethodCallExceptionm !Reflectionl !Definitionk Cachej )AbstractServeri -RuntimeException
h =InvalidArgumentException
!g CExtensionNotLoadedException
f !Serializer	e 5AdapterPluginManager	d #WddxOptions
c Wddxb 3PythonPickleOptionsa %PythonPickle` %PhpSerialize_ PhpCode^ #JsonOptions
] Json\ IgBinary[ )AdapterOptionsZ +AbstractAdapterY #ProgressBarX -RuntimeExceptionW 3OutOfRangeExceptionV =InvalidArgumentExceptionU -RuntimeExceptionT =InvalidArgumentExceptionS JsPushR JsPullQ ConsoleP +AbstractAdapterO RegistryN #GenericRoleM +GenericResourceL -RuntimeExceptionK =InvalidArgumentException	J Acl I Sliding H Jumping G Elastic 	F All E ?SerializableLimitIterator !D CScrollingStylePluginManager C Paginator B =UnexpectedValueException A -RuntimeException @ =InvalidArgumentException ? =UnexpectedValueException > -RuntimeException = =InvalidArgumentException 
< Null ; Iterator : DbSelect 9 %ArrayAdapter 8 %HelperConfig 7 =DefaultNavigationFactory "6 EConstructedNavigationFactory 5 ?AbstractNavigationFactory 	4 Uri 	3 Mvc 2 %AbstractPage 1 5OutOfBoundsException 0 =InvalidArgumentException / +DomainException . 9BadMethodCallException - !Navigation , /AbstractContainer + 5SendResponseListener * #ViewManager     hI;.nM,scB k^QB6#	vfRF5(








x
a
B
*


									u	g	Z	M	@	1	"		reR?,c=$p`TC1$oN/{dSA0zeXI6qZC/!                     Registry= Container= 1AbstractStandalone< /AbstractContainer<  Sitemap; 'PluginManager;
~ Menu;} Links;| #Breadcrumbs;{ )AbstractHelper;z )AbstractHelper:y Stub29x ViewModel9	w Url9v ServerUrl9u 3RenderToPlaceholder9t -RenderChildModel9s #Placeholder9r #PartialLoop9q Partial9p /PaginationControl9o !Navigation9n Layout9
m Json9l %InlineScript9k 'HtmlQuicktime9j HtmlPage9i !HtmlObject9h HtmlList9g HtmlFlash9f HeadTitle9e HeadStyle9d !HeadScript9c HeadMeta9b HeadLink9a Gravatar9` EscapeUrl9_ EscapeJs9^ )EscapeHtmlAttr9] !EscapeHtml9\ EscapeCss9[ Doctype9Z #DeclareVars9Y Cycle9X BasePath9W 3AbstractHtmlElement9V )AbstractHelper9U -RuntimeException8T 9InvalidHelperException8S =InvalidArgumentException8R +DomainException8Q 9BadMethodCallException8P Version7O Priority6	N Loc6M Lastmod6L !Changefreq6K WordCount5J Upload5
I Size5
H Sha15G NotExists5F MimeType5	E Md55D IsImage5C %IsCompressed5B ImageSize5
A Hash5@ FilesSize5? Extension5> Exists5= +ExcludeMimeType5< -ExcludeExtension5; Crc325: Count59 -RuntimeException4#8 GInvalidMagicMimeFileException47 =InvalidArgumentException4!6 CExtensionNotLoadedException45 9BadMethodCallException44 %RecordExists33 )NoRecordExists32 !AbstractDb31 !MyBarcode520 !MyBarcode42/ !MyBarcode32. !MyBarcode22- !MyBarcode12
, Upce2
+ Upca2
* Sscc2) Royalmail2( Postnet2' Planet2& Leitcode2% Itf142
$ Issn2# +Intelligentmail2" Identcode2! Gtin142  Gtin132 Gtin122
 Ean82
 Ean52
 Ean22 Ean182 Ean142 Ean132 Ean122 Code93ext2 Code932 Code39ext2 Code392 /Code25interleaved2 Code252 Code1282 Codabar2 +AbstractAdapter2 9ValidatorPluginManager1 )ValidatorChain1	 Uri1 %StringLength1

 Step1	 +StaticValidator1 Regex1 NotEmpty1 LessThan1
 Isbn1 Ip1 InArray1 Identical1
 Iban1  Hostname1	 Hex1~ #GreaterThan1} Explode1| %EmailAddress1{ Digits1z DateStep1
y Date1
x Csrf1w !CreditCard1v Callback1u Between1t Barcode1s /AbstractValidator1r !UriFactory0	q Uri0p Mailto0
o Http0
n File0m ;InvalidUriPartException/l 3InvalidUriException/k =InvalidArgumentException/j =UnexpectedValueException.i /OverflowException.h 5OutOfBoundsException.g ?InvalidDecoratorException.f =InvalidArgumentException.e Unicode-d Blank-c Ascii-b Table,	a Row,` -DecoratorManager,_ Column,^ MultiByte+] Figlet*\ =UnexpectedValueException)[ -RuntimeException)Z =InvalidArgumentException)Y =UnexpectedValueException(X -RuntimeException(W /OverflowException(V 5OutOfBoundsException(U =InvalidArgumentException(T 5OutOfBoundsException'S =InvalidArgumentException'R ItemList&
Q Item&P Cloud&O 9DecoratorPluginManager%N =InvalidArgumentException$M HtmlTag#L HtmlCloud#K #AbstractTag#J 'AbstractCloud#I +DefaultStrategy"H !Reflection!   n }kYA,mWH:*
kW8qcT5sdTH9*





~
g
R
1
							l	\	E	5	bK;+p`NA4~pdX7}fC'|gT@,{dXD1%sRC-n                    - 5AdapterPluginManagerd, 'ZendServerShmc+ )ZendServerDiskc* 'XCacheOptionsc) XCachec( +WinCacheOptionsc' WinCachec& )SessionOptionsc% Sessionc$ 'MemoryOptionsc# Memoryc" =MemcachedResourceManagerc! -MemcachedOptionsc  Memcachedc +KeyListIteratorc /FilesystemOptionsc 1FilesystemIteratorc !Filesystemc !DbaOptionsc #DbaIteratorc	 Dbac !ApcOptionsc #ApcIteratorc	 Apcc )AdapterOptionsc 1AbstractZendServerc +AbstractAdapterc 3StorageCacheFactoryb )StorageFactorya 5PatternPluginManagera )PatternFactorya )PatternOptions` #OutputCache` #ObjectCache` !ClassCache`
 %CaptureCache`	 'CallbackCache` +AbstractPattern`$ IUnsupportedMethodCallException_ =UnexpectedValueException_ -RuntimeException_ 3OutOfSpaceException_ 3MissingKeyException_  AMissingDependencyException_ )LogicException_  =InvalidArgumentException_! CExtensionNotLoadedException_~ 9BadMethodCallException_} =UnexpectedValueException^| -RuntimeException^{ 3OutOfRangeException^z =InvalidArgumentException^	y Svg]	x Pdf]w Image]v -AbstractRenderer]u -RuntimeException\t 3OutOfRangeException\s =InvalidArgumentException\!r CExtensionNotLoadedException\ q ABarcodeValidationException\
p Upce[
o Upca[n Royalmail[m Postnet[l Planet[k Leitcode[j Itf14[i Identcode[h Error[
g Ean8[
f Ean5[
e Ean2[d Ean13[c Code39[b /Code25interleaved[a Code25[` Code128[_ Codabar[^ )AbstractObject[] =UnexpectedValueExceptionZ\ -RuntimeExceptionZ[ ?RendererCreationExceptionZZ 3OutOfRangeExceptionZY =InvalidArgumentExceptionZX 7RendererPluginManagerYW 3ObjectPluginManagerYV BarcodeYU )AuthenticationXT SessionWS 'NonPersistentWR ChainWQ =UnexpectedValueExceptionVP -RuntimeExceptionVO =InvalidArgumentExceptionVN ResultUM 7AuthenticationServiceUL -RuntimeExceptionTK =InvalidArgumentExceptionTJ %FileResolverSI )ApacheResolverSH =UnexpectedValueExceptionRG -RuntimeExceptionRF =InvalidArgumentExceptionR
E LdapQ
D HttpQC DigestQB DbTableQA +AbstractAdapterQ@ StructL? StringL	> NilL= IntegerL< DoubleL; DateTimeL: BooleanL9 !BigIntegerL8 Base64L7 !ArrayValueL6 )AbstractScalarL5 1AbstractCollectionL4 -RuntimeExceptionK3 =InvalidArgumentExceptionK2 9BadMethodCallExceptionK1 SystemJ0 FaultJ/ CacheJ
. HttpI- StdinH
, HttpH+ XmlWriterG* #DomDocumentG) /AbstractGeneratorG( )ValueExceptionF' -RuntimeExceptionF& =InvalidArgumentExceptionF% 9BadMethodCallExceptionF$ #ServerProxyE# 3ServerIntrospectionE" -RuntimeExceptionD! =InvalidArgumentExceptionD  3IntrospectExceptionD 'HttpExceptionD )FaultExceptionD ServerC ResponseC RequestC FaultC ClientC 'AbstractValueC 3PhpRendererStrategyB %JsonStrategyB %FeedStrategyB /TemplatePathStackA 3TemplateMapResolverA /AggregateResolverA #PhpRenderer@ %JsonRenderer@ %FeedRenderer@ +ConsoleRenderer@ ViewModel? JsonModel? FeedModel?
 %ConsoleModel?	 ViewEvent>
 View> Variables> Stream> 3HelperPluginManager>   c jQ9 
~fB nN/t^@(uiH/





}
b
P
=
*

						|	c	A	'	~hO7jYJ<.wiYI2$ qP7 }\C"	k_L8%seU7uc Z StatementY ResultX MysqliW !ConnectionV StatementU ResultT IbmDb2S !ConnectionR +AbstractFeatureQ 1StatementContainerP 1ParameterContainerO 7AdapterServiceFactoryN AdapterM Pkcs7L 5PaddingPluginManagerK McryptJ -RuntimeExceptionI =InvalidArgumentExceptionH -RuntimeExceptionG =InvalidArgumentExceptionF PublicKeyE !PrivateKeyD #AbstractKeyC !RsaOptions	B RsaA 'DiffieHellman@ -RuntimeException? =InvalidArgumentException> Bcrypt= Apache< Scrypt; SaltedS2k: Pbkdf29 -RuntimeException8 =InvalidArgumentException7 -RuntimeException6 =InvalidArgumentException5 Utils4 9SymmetricPluginManager
3 Hmac
2 Hash1 #BlockCipher0 Select/ Number
. Line- Confirm
, Char+ )AbstractPrompt* -RuntimeException~) =InvalidArgumentException~( 9BadMethodCallException~' Response}& Request}% Getopt}$ Console}# Xterm256|" Utf8Heavy{
! Utf8{  DECSG{ 'AsciiExtended{ Ascii{ )WindowsAnsiconz Windowsz Virtualz Posixz +AbstractAdapterz
 Yamly	 Xmly PhpArrayy
 Jsony	 Iniy )AbstractWritery
 Yamlx	 Xmlx
 Jsonx	 Inix !Translatorw Tokenw Queuew Filterw
 Constantw	 -RuntimeExceptionv =InvalidArgumentExceptionv 3WriterPluginManageru 3ReaderPluginManageru Factoryu Configu %ValueScannert
 Utilt /TokenArrayScannert  +PropertyScannert -ParameterScannert~ 'MethodScannert} +FunctionScannert| #FileScannert{ +DocBlockScannertz -DirectoryScannerty 3DerivedClassScannertx %ClassScannertw 1CachingFileScannertv /AnnotationScannertu ?AggregateDirectoryScannertt -RuntimeExceptionss =InvalidArgumentExceptionsr 9BadMethodCallExceptionsq !TagManagerrp ThrowsTagqo ReturnTagqn #PropertyTagqm ParamTagql MethodTagqk !LicenseTagqj !GenericTagqi AuthorTagqh 1PropertyReflectionpg 3ParameterReflectionpf -MethodReflectionpe 1FunctionReflectionpd )FileReflectionpc 1DocBlockReflectionpb +ClassReflectionpa +NameInformationo` -RuntimeExceptionn_ =InvalidArgumentExceptionn	^ Tagm] ReturnTagl\ ParamTagl[ !LicenseTaglZ AuthorTaglY )ValueGeneratorkX 9PropertyValueGeneratorkW /PropertyGeneratorkV 1ParameterGeneratorkU +MethodGeneratorkT 7FileGeneratorRegistrykS 'FileGeneratorkR /DocBlockGeneratorkQ )ClassGeneratorkP 'BodyGeneratorkO ;AbstractMemberGeneratorkN /AbstractGeneratorkM -RuntimeExceptionjL =InvalidArgumentExceptionjK 9BadMethodCallExceptionjJ ;GenericAnnotationParseriI =DoctrineAnnotationParseriH /AnnotationManagerhG 5AnnotationCollectionhF -RuntimeExceptiongE ;NoFontProvidedExceptiongD =InvalidArgumentExceptiongC ?ImageNotLoadableExceptiong!B CExtensionNotLoadedExceptiongA +DomainExceptiong@ ReCaptchaf? Imagef> Figletf= Factoryf
< Dumbf; %AbstractWordf: +AbstractAdapterf9 !Serializere8 'PluginOptionse7 -OptimizeByFactore6 +IgnoreUserAborte5 -ExceptionHandlere4 5ClearExpiredByFactore3 )AbstractPlugine2 PostEventd1 'PluginManagerd0 )ExceptionEventd/ Eventd. %Capabilitiesd   j fM:,yL.u^=$~kT>#qVC"	







z
k
_
G
8
*
							~	f	N	<	,		mX7t\B4%~fK-vU3hVE7~cH-aH/{j                     Callback  %Subscription 'AbstractModel~ -RuntimeException} =InvalidArgumentException| !Subscriber{ %PubSubHubbubz Publishery %HttpResponsex -AbstractCallbackw -RuntimeExceptionv =InvalidArgumentExceptionu 9BadMethodCallExceptiont )FilterIterators =InvalidCallbackExceptionr =InvalidArgumentExceptionq +DomainExceptionp 1StaticEventManagero 1SharedEventManagern 1ResponseCollectionm 1GlobalEventManagerl #FilterChaink %EventManagerj Eventi -RuntimeExceptionh =InvalidArgumentExceptiong Escaperf -RuntimeExceptione 9BadMethodCallExceptiond Queryc NodeListb Css2Xpatha /GeneratorInstance` Generator_ ;DependencyInjectorProxy!^ CUndefinedReferenceException] -RuntimeException\ =MissingPropertyException[ =InvalidPositionExceptionZ ?InvalidParamNameExceptionY =InvalidCallbackExceptionX =InvalidArgumentExceptionW 9ClassNotFoundException!V CCircularDependencyExceptionU ConsoleT PhpClassS +InjectionMethodR /RuntimeDefinitionQ 7IntrospectionStrategyP 1CompilerDefinitionO +ClassDefinitionN /BuilderDefinitionM +ArrayDefinitionL %InstantiatorK InjectJ )ServiceLocatorI +InstanceManagerH DiG )DefinitionListF ConfigE DebugD /TableGatewayEventC +SequenceFeatureB /RowGatewayFeatureA +MetadataFeature@ 1MasterSlaveFeature? 5GlobalAdapterFeature> !FeatureSet= %EventFeature< +AbstractFeature; -RuntimeException: =InvalidArgumentException9 %TableGateway8 5AbstractTableGateway7 %PredicateSet6 Predicate5 Operator4 NotIn3 Literal
2 Like1 IsNull0 IsNotNull/ In. !Expression- Between, SqlServer+ +SelectDecorator* +SelectDecorator) Oracle( +SelectDecorator' Mysql& Platform% -AbstractPlatform$ -RuntimeException# =InvalidArgumentException" !DeleteTest! Where  Update +TableIdentifier	 Sql Select Literal Insert Having !Expression Delete #AbstractSql !FeatureSet +AbstractFeature -RuntimeException =InvalidArgumentException !RowGateway 1AbstractRowGateway -RuntimeException =InvalidArgumentException ResultSet 1HydratingResultSet /AbstractResultSet /SqlServerMetadata
 )SqliteMetadata	 1PostgresqlMetadata 'MysqlMetadata )AbstractSource !ViewObject 'TriggerObject #TableObject -ConstraintObject %ColumnObject 3AbstractTableObject  Metadata =UnexpectedValueException~ -RuntimeException} =InvalidArgumentException| )ErrorException{ Profilerz SqlServery Sqlitex Sql92w !Postgresqlv Oracleu Mysqlt IbmDb2s =UnexpectedValueExceptionr -RuntimeExceptionq 7InvalidQueryException*p UInvalidConnectionParametersExceptiono =InvalidArgumentExceptionn )ErrorExceptionm )ErrorExceptionl Statementk Sqlsrvj Resulti !Connectionh Statementg Resultf Pgsqle !Connectiond -SqliteRowCounterc -OracleRowCounterb Statementa Result	` Pdo_ !Connection^ Statement] Result
\ Oci8[ !Connection    o`O<&{n`RE7*vhOB.uhZM?2$}q\M4 





f
G
&
							{	j	W	G	8	,		r\F3{gW8 lZ@(oR4p]C0uaTE5$o^H1#   > Range= Radio< Password; Number: 'MultiCheckbox9 #MonthSelect8 Month7 Image6 Hidden
5 File4 Email3 )DateTimeSelect2 'DateTimeLocal1 DateTime0 !DateSelect
/ Date
. Csrf- Color, !Collection+ Checkbox* Captcha) Button( Validator' +ValidationGroup
& Type% Required$ Options# Object
" Name! #InputFilter  Input Hydrator ;FormAnnotationsListener Flags Filter Exclude %ErrorMessage  AElementAnnotationsListener )ComposedObject !Attributes /AnnotationBuilder !AllowEmpty =AbstractStringAnnotation% KAbstractArrayOrStringAnnotation ;AbstractArrayAnnotation! CAbstractAnnotationsListener 7UnderscoreToSeparator -UnderscoreToDash 7UnderscoreToCamelCase 5SeparatorToSeparator +SeparatorToDash 5SeparatorToCamelCase
 -DashToUnderscore	 +DashToSeparator +DashToCamelCase 7CamelCaseToUnderscore 5CamelCaseToSeparator +CamelCaseToDash /AbstractSeparator UpperCase %RenameUpload Rename  LowerCase Encrypt~ Decrypt} -RuntimeException| =InvalidArgumentException!{ CExtensionNotLoadedExceptionz +DomainExceptiony 9BadMethodCallExceptionx Opensslw #BlockCipher	v Zip	u Tart Snappy	s Rar	r Lzfq Gz	p Bz2"o EAbstractCompressionAlgorithmn %UriNormalizem StripTagsl 'StripNewlinesk !StringTrimj 'StringToUpperi 'StringToLowerh %StaticFilterg RealPathf #PregReplace
e Null	d Intc Inflectorb %HtmlEntitiesa 3FilterPluginManager` #FilterChain_ Encrypt	^ Dir] Digits\ Decrypt[ !DecompressZ CompressY CallbackX BooleanW BaseNameV +AbstractUnicodeU )AbstractFilterT TransferS -RuntimeExceptionR ;PhpEnvironmentExceptionQ =InvalidArgumentExceptionP 9BadMethodCallExceptionO 9ValidatorPluginManager
N HttpM 3FilterPluginManagerL +AbstractAdapterK -RuntimeExceptionJ =InvalidArgumentExceptionI 9BadMethodCallExceptionH %PhpClassFileG -ClassFileLocatorF SourceE %AbstractAtom	D RssC !AtomSource
B AtomA %AbstractAtom	@ Rss? #AtomDeleted
> Atom= Deleted< -AbstractRenderer; Entry: Entry9 Entry
8 Feed7 Entry
6 Feed5 Entry
4 Feed3 Entry2 Entry
1 Feed0 -AbstractRenderer/ -RuntimeException. =InvalidArgumentException- 9BadMethodCallException, Writer+ Source* #FeedFactory
) Feed( -ExtensionManager' Entry& Deleted% %AbstractFeed$ Source	# Rss
" Atom! %AbstractFeed  Entry Entry
 Feed Entry
 Feed Entry
 Feed Entry
 Feed Entry Entry
 Feed Entry %AbstractFeed 'AbstractEntry -RuntimeException =InvalidArgumentException 9BadMethodCallException	 Rss
 Atom 'AbstractEntry !Collection
 Category	 Author 1AbstractCollection Reader FeedSet -ExtensionManager !Collection %AbstractFeed 'AbstractEntry    ~m`E&uaL5#q`M;)ueR?,sW7







q
d
V
G
:
						z	^	E	$	nWB6(nVC.tgW?+qcSC0!xY<o`?"wfJ7$                             t PostCode	s Intr Floatq Alphap Alnumo Symbol
n Rulem Parserl =TranslatorServiceFactoryk !Translatorj !TextDomaini 3LoaderPluginManagerh PhpArray	g Inif Gettexte %NumberFormat d Alpha c Alnum b )AbstractLocale a -RuntimeException` )RangeException_ )ParseException^ 5OutOfBoundsException] =InvalidArgumentException\ Stream[ ResponseZ RequestY 'RemoteAddressX -RuntimeExceptionW =InvalidArgumentExceptionV 9LanguageFieldValuePartU 9EncodingFieldValuePartT 7CharsetFieldValuePartS 5AcceptFieldValuePartR 9AbstractFieldValuePartQ +WWWAuthenticateP Warning	O Via
N VaryM UserAgentL UpgradeK -TransferEncodingJ TrailerI TEH SetCookieG ServerF !RetryAfterE RefreshD RefererC RangeB 1ProxyAuthorizationA /ProxyAuthenticate@ Pragma? #MaxForwards> Location= %LastModified< KeepAlive; /IfUnmodifiedSince: IfRange9 #IfNoneMatch8 +IfModifiedSince7 IfMatch
6 Host5 1GenericMultiHeader4 'GenericHeader
3 From2 Expires1 Expect
0 Etag
/ Date. Cookie- #ContentType, ;ContentTransferEncoding+ %ContentRange* !ContentMD5) +ContentLocation( 'ContentLength' +ContentLanguage& +ContentEncoding% 1ContentDisposition$ !Connection# %CacheControl" 'Authorization! 1AuthenticationInfo  Allow	 Age %AcceptRanges )AcceptLanguage )AcceptEncoding 'AcceptCharset Accept -AbstractLocation %AbstractDate )AbstractAccept -RuntimeException 3OutOfRangeException =InvalidArgumentException -RuntimeException 3OutOfRangeException =InvalidArgumentException Cookies -TimeoutException -RuntimeException 3OutOfRangeException =InvalidArgumentException ;InitializationException

 Test	 Socket Proxy
 Curl Response Request Headers %HeaderLoader Cookies %ClientStatic  Client +AbstractMessage~ %HelperConfig} 9FormFileUploadProgress| ;FormFileSessionProgress{ 3FormFileApcProgressz ReCaptchay Imagex Figlet
w Dumbv %AbstractWordu FormWeekt FormUrls FormTimer %FormTextareaq FormTextp FormTelo !FormSubmitn !FormSelectm !FormSearchl FormRowk FormResetj FormRangei FormRadioh %FormPasswordg !FormNumberf /FormMultiCheckboxe +FormMonthSelectd FormMonthc FormLabelb FormInputa FormImage` !FormHidden_ FormFile^ FormEmail] /FormElementErrors\ #FormElement[ 1FormDateTimeSelectZ /FormDateTimeLocalY %FormDateTimeX )FormDateSelectW FormDateV FormColorU )FormCollectionT %FormCheckboxS #FormCaptchaR !FormButton
Q FormP )AbstractHelperO =UnexpectedValueExceptionN ;InvalidElementExceptionM =InvalidArgumentExceptionL +DomainExceptionK 9BadMethodCallExceptionJ 1FormElementManager
I FormH FieldsetG FactoryF Element
E Week	D Url
C TimeB Textarea
A Text@ Submit? Select   z gR:*
cB' zY@3&xW6tcN6&







u
]
L
4
#
						w	X	@		fM@/!
ufI*sTG:*yiJ2zdI4!pW>1$pcSF6)z          ( =InvalidArgumentException2
' File1
& Mbox0% Maildir0$ -RuntimeException/# 5OutOfBoundsException/" =InvalidArgumentException/
! Pop3.
  Part. Message.
 Mbox. Maildir.
 Imap. Folder. +AbstractStorage. Plain- Login- Crammd5- -RuntimeException, =InvalidArgumentException, /SmtpPluginManager+
 Smtp+
 Pop3+
 Imap+ -AbstractProtocol+ -RuntimeException* =InvalidArgumentException* 9BadMethodCallException* To) Subject)
 Sender)	 ReplyTo) Received) #MimeVersion) MessageId) !HeaderWrap) %HeaderLoader) 1GenericMultiHeader) 'GenericHeader)
 From)
  Date) #ContentType)~ Cc)	} Bcc)| 3AbstractAddressList){ -RuntimeException(z 5OutOfBoundsException(y =InvalidArgumentException(x +DomainException(w 9BadMethodCallException(v Storage'u Message't Headers's #AddressList'r Address'q 'FirePhpBridge&p +ChromePhpBridge%o #ZendMonitor$n Syslog$m Stream$
l Null$k MongoDB$
j Mock$
i Mail$h 9FormatterPluginManager$g FirePhp$f )FingersCrossed$e 3FilterPluginManager$d Db$c ChromePhp$b )AbstractWriter$a RequestId#` Backtrace#_ 3WriterPluginManager"^ 9ProcessorPluginManager"] 5LoggerServiceFactory"\ Logger"	[ Xml!Z Simple!Y FirePhp!X -ExceptionHandler!W %ErrorHandler!V Db!U ChromePhp!
T Base!S Validator R )SuppressFilter Q Regex P Priority 
O Mock N -RuntimeExceptionM =InvalidArgumentExceptionL /SecurityExceptionK -RuntimeExceptionJ 7PluginLoaderException'I OMissingResourceNamespaceExceptionH 5InvalidPathExceptionG =InvalidArgumentExceptionF +DomainExceptionE 9BadMethodCallExceptionD 1StandardAutoloaderC /PluginClassLoaderB -ModuleAutoloaderA 1ClassMapAutoloader@ /AutoloaderFactory? OpenLdap> +ActiveDirectory= OpenLdap< +ActiveDirectory; OpenLdap: +ActiveDirectory9 %AbstractItem8 OpenLdap7 !eDirectory6 +ActiveDirectory5 Schema4 RootDse3 !Collection2 -ChildrenIterator1 %AbstractNode0 Encoder/ +FilterException. %StringFilter- OrFilter, NotFilter+ !MaskFilter* AndFilter) 7AbstractLogicalFilter( )AbstractFilter' 'LdapException& =InvalidArgumentException% 9BadMethodCallException$ =UnexpectedValueException# =InvalidArgumentException" 1ConverterException! Converter  +DefaultIterator
 Node
 Ldap Filter Dn !Collection Attribute Service
 Http
 Http -RuntimeException =InvalidArgumentException 'HttpException )ErrorException	 Smd Server Response Request Error Client Cache -RuntimeException

 1RecursionException
	 =InvalidArgumentException
 9BadMethodCallException

 Json	
 Expr	 Encoder	 Decoder	 -RuntimeException =InvalidArgumentException #InputFilter  Input FileInput~ Factory} +BaseInputFilter| %HelperConfig{ +TranslatePluralz Translatey Pluralx %NumberFormatw !DateFormatv )CurrencyFormatu =AbstractTranslatorHelper   @ o^Q=."_F9zj]P7hT<_F2





n
S
1

						r	c	T	<	+		kL.	_F5%	~kP7|TBnQ+wZ:~b;rT@                  ; #ViewManagerO: 7RouteNotFoundStrategyO9 ;InjectViewModelListenerO&8 MInjectNamedConsoleParamsListenerO7 /ExceptionStrategyO6 =DefaultRenderingStrategyO5 ;CreateViewModelListenerO"4 EViewTemplatePathStackFactoryN$3 IViewTemplateMapResolverFactoryN2 3ViewResolverFactoryN1 1ViewManagerFactoryN0 ;ViewJsonStrategyFactoryN/ ;ViewJsonRendererFactoryN. =ViewHelperManagerFactoryN- ;ViewFeedStrategyFactoryN, ;ViewFeedRendererFactoryN+ ;ValidatorManagerFactoryN* 5ServiceManagerConfigN) 9ServiceListenerFactoryN+( WSerializerAdapterPluginManagerFactoryN' 'RouterFactoryN& ?RoutePluginManagerFactoryN% +ResponseFactoryN$ )RequestFactoryN## GPaginatorPluginManagerFactoryN" 5ModuleManagerFactoryN! ?FormElementManagerFactoryN  5FilterManagerFactoryN 3EventManagerFactoryN+ WDiStrictAbstractServiceFactoryFactoryN$ IDiStrictAbstractServiceFactoryN! CDiServiceInitializerFactoryN DiFactoryN% KDiAbstractServiceFactoryFactoryN$ IControllerPluginManagerFactoryN ;ControllerLoaderFactoryN 7ConsoleAdapterFactoryN 'ConfigFactoryN 1ApplicationFactoryN" EAbstractPluginManagerFactoryN -SimpleRouteStackM 1RoutePluginManagerM !RouteMatchM %PriorityListM WildcardL )TreeRouteStackL SegmentL SchemeL !RouteMatchL
 RegexL	 QueryL
 PartL MethodL LiteralL HostnameL -RuntimeExceptionK =InvalidArgumentExceptionK -SimpleRouteStackJ SimpleJ  !RouteMatchJ CatchallJ ~ ASimpleStreamResponseSenderI} /SendResponseEventI"| EPhpEnvironmentResponseSenderI{ 7ConsoleResponseSenderIz 9AbstractResponseSenderIy -RuntimeExceptionHx ;MissingLocatorExceptionHw 9InvalidPluginExceptionH v AInvalidControllerExceptionHu =InvalidArgumentExceptionHt +DomainExceptionH	s UrlGr RedirectGq +PostRedirectGetGp ParamsGo LayoutGn IdentityGm ForwardGl )FlashMessengerGk 3FilePostRedirectGetG!j CAcceptableViewModelSelectorGi )AbstractPluginGh 'PluginManagerFg /ControllerManagerFf ?AbstractRestfulControllerFe 1AbstractControllerFd =AbstractActionControllerFc 5SendResponseListenerEb 'RouteListenerEa MvcEventE` 3ModuleRouteListenerE_ -DispatchListenerE^ #ApplicationE] 'ModuleManagerD\ #ModuleEventD[ -RuntimeExceptionCZ =InvalidArgumentExceptionCY +ServiceListenerBX 3OnBootstrapListenerBW 9ModuleResolverListenerBV 5ModuleLoaderListenerB%U KModuleDependencyCheckerListenerB!T CLocatorRegistrationListenerBS +ListenerOptionsBR #InitTriggerBQ =DefaultListenerAggregateBP )ConfigListenerBO 1AutoloaderListenerBN -AbstractListenerBM -RuntimeExceptionA&L MMissingDependencyModuleExceptionAK =InvalidArgumentExceptionAJ -RuntimeException@
I Part?
H Mime?G Message?F Decode?E Value>D 'MemoryManager>C -RuntimeException=B =InvalidArgumentException=A Movable<@ Locked<? -AccessController<> /AbstractContainer<
= Rand;< -RuntimeException:; =InvalidArgumentException:: +DomainException:9 -RuntimeException98 =InvalidArgumentException97 ;DivisionByZeroException96 !BigInteger85 5AdapterPluginManager8	4 Gmp73 Bcmath72 #SmtpOptions6
1 Smtp60 Sendmail6/ #FileOptions6
. File6- -RuntimeException5, =InvalidArgumentException5+ Maildir4
* File3) -RuntimeException2   J ~_?!kN9-!~m`?&hG.s_N5 





~
e
D
(
						z	b	K	:	-			ub>y`O<*xZ;}dG|dR;$y[K4tgXI;~ZJ            V AnyType~!U CAbstractComplexTypeStrategy~T 9DocumentLiteralWrapper}S =UnexpectedValueException|R -RuntimeException|Q =InvalidArgumentException|!P CExtensionNotLoadedException|O 9BadMethodCallException|N Local{M DotNet{L Common{
K WsdlzJ ServerzI ClientzH %AutoDiscoverzG 3ReflectionDiscoveryyF !RemoteAddrxE 'HttpUserAgentxD )SessionStoragewC 3SessionArrayStoragewB %ArrayStoragewA )MongoDBOptionsv@ MongoDBv? 7DbTableGatewayOptionsv> )DbTableGatewayv= Cachev< -RuntimeExceptionu; =InvalidArgumentExceptionu: 9BadMethodCallExceptionu9 )StandardConfigt8 'SessionConfigt7 )ValidatorChains6 )SessionManagers5 Containers4 +AbstractManagers3 =ServiceNotFoundExceptionr 2 AServiceNotCreatedExceptionr1 -RuntimeExceptionr!0 CInvalidServiceNameExceptionr/ =InvalidArgumentExceptionr&. MCircularDependencyFoundExceptionr- 5DiServiceInitializerq, -DiServiceFactoryq+ 9DiInstanceManagerProxyq* =DiAbstractServiceFactoryq) )ServiceManagerp( Configp' 7AbstractPluginManagerp& -RuntimeExceptiono% =InvalidArgumentExceptiono$ 9BadMethodCallExceptiono# 7ReflectionReturnValuen" 3ReflectionParametern! -ReflectionMethodn  1ReflectionFunctionn +ReflectionClassn Prototypen
 Noden -AbstractFunctionn Prototypem Parameterm !Definitionm Callbackm -RuntimeExceptionl =InvalidArgumentExceptionl 9BadMethodCallExceptionl !Reflectionk !Definitionk Cachek )AbstractServerk -RuntimeExceptionj =InvalidArgumentExceptionj! CExtensionNotLoadedExceptionj !Serializeri 5AdapterPluginManageri #WddxOptionsh

 Wddxh	 3PythonPickleOptionsh %PythonPickleh %PhpSerializeh PhpCodeh MsgPackh #JsonOptionsh
 Jsonh IgBinaryh )AdapterOptionsh  +AbstractAdapterh )UploadProgressg~ +SessionProgressg} #ApcProgressg| 7AbstractUploadHandlerg{ #ProgressBarfz -RuntimeExceptioney ;PhpEnvironmentExceptionex 3OutOfRangeExceptionew =InvalidArgumentExceptionev -RuntimeExceptiondu =InvalidArgumentExceptiondt JsPushcs JsPullcr Consolecq +AbstractAdaptercp =InvalidArgumentExceptionb
o Rolea
n Rbacam %AbstractRoleal -AbstractIteratorak Registry`j #GenericRole`i +GenericResource_h -RuntimeException^g =InvalidArgumentException^	f Acl]e Sliding\d Jumping\c Elastic\	b All\a =UnexpectedValueException[` -RuntimeException[_ =InvalidArgumentException[^ ?SerializableLimitIteratorZ!] CScrollingStylePluginManagerZ\ PaginatorZ[ FactoryZZ 5AdapterPluginManagerZY +DbSelectFactoryYX =UnexpectedValueExceptionXW -RuntimeExceptionXV =InvalidArgumentExceptionX
U NullWT IteratorWS DbSelectWR %ArrayAdapterWQ %HelperConfigVP =DefaultNavigationFactoryU"O EConstructedNavigationFactoryUN ?AbstractNavigationFactoryU	M UriT	L MvcTK %AbstractPageTJ 5OutOfBoundsExceptionSI =InvalidArgumentExceptionSH +DomainExceptionSG 9BadMethodCallExceptionSF !NavigationRE /AbstractContainerRD 5SendResponseListenerQC #ViewManagerPB 7RouteNotFoundStrategyPA ;InjectViewModelListenerP@ 9InjectTemplateListenerP$? IInjectRoutematchParamsListenerP> /ExceptionStrategyP= =DefaultRenderingStrategyP< ;CreateViewModelListenerP   w q^F5 ~jK3jU>+tW9+wXJ=,



z
W
0
						i	H	/	^<zm^R?%nbQD2"
hI1!|naTG8)ylYF3 jD+w              %IsCompressed ImageSize
 Hash FilesSize Extension Exists +ExcludeMimeType  -ExcludeExtension Crc32~ Count} -RuntimeException#| GInvalidMagicMimeFileException{ =InvalidArgumentException!z CExtensionNotLoadedExceptiony 9BadMethodCallExceptionx %RecordExistsw )NoRecordExistsv !AbstractDbu !MyBarcode5t !MyBarcode4s !MyBarcode3r !MyBarcode2q !MyBarcode1
p Upce
o Upca
n Ssccm Royalmaill Postnetk Planetj Leitcodei Itf14
h Issng +Intelligentmailf Identcodee Gtin14d Gtin13c Gtin12
b Ean8
a Ean5
` Ean2_ Ean18^ Ean14] Ean13\ Ean12[ Code93extZ Code93Y Code39extX Code39W /Code25interleavedV Code25U Code128T CodabarS +AbstractAdapterR 9ValidatorPluginManagerQ )ValidatorChain	P UriO %StringLength
N StepM +StaticValidatorL RegexK NotEmptyJ LessThanI %IsInstanceOf
H IsbnG IpF InArrayE Identical
D IbanC Hostname	B HexA #GreaterThan@ Explode? %EmailAddress> Digits= DateStep
< Date
; Csrf: !CreditCard9 Callback8 Between7 Barcode6 /AbstractValidator5 !UriFactory	4 Uri3 Mailto
2 Http
1 File0 ;InvalidUriPartException/ 3InvalidUriException. =InvalidArgumentException- =UnexpectedValueException, /OverflowException+ 5OutOfBoundsException* ?InvalidDecoratorException) =InvalidArgumentException( Unicode' Blank& Ascii% Table	$ Row# -DecoratorManager" Column! MultiByte  Figlet =UnexpectedValueException -RuntimeException =InvalidArgumentException =UnexpectedValueException -RuntimeException /OverflowException 5OutOfBoundsException =InvalidArgumentException 9ServiceListenerFactory 'RouterFactory$ IAbstractHttpControllerTestCase  AAbstractControllerTestCase' OAbstractConsoleControllerTestCase 5OutOfBoundsException! CInvalidElementNameException# GInvalidAttributeNameException =InvalidArgumentException ItemList
 Item Cloud 9DecoratorPluginManager
 =InvalidArgumentException	 HtmlTag HtmlCloud #AbstractTag /AbstractDecorator 'AbstractCloud Native MbString
 Intl Iconv  7AbstractStringWrapper 5SerializableStrategy~ +DefaultStrategy} +ClosureStrategy| ;NumberOfParameterFilter{ /MethodMatchFilterz IsFiltery HasFilterx GetFilterw +FilterCompositev !Reflectionu )ObjectPropertyt %ClassMethodss /ArraySerializabler -AbstractHydratorq -RuntimeExceptionp )LogicExceptiono =InvalidCallbackExceptionn =InvalidArgumentException!m CExtensionNotLoadedExceptionl +DomainExceptionk 9BadMethodCallExceptionj #StringUtilsi SplStackh SplQueueg -SplPriorityQueuef Responsee Requestd 'PriorityQueuec !Parametersb Message
a Glob` %ErrorHandler_ DateTime^ +CallbackHandler] !ArrayUtils\ !ArrayStack[ +AbstractOptionsZ 1DefaultComplexType~Y Composite~X 3ArrayOfTypeSequence~W 1ArrayOfTypeComplex~   | s`PD3#|`OA-taO=+qaM9 viSC)







q
\
J
8
&
							k	V	:	$		mT8$tgYL>0!taQ@1!qN-lS5&pT6vfW=. |          
< Upca; Royalmail: Postnet9 Planet8 Leitcode7 Itf146 Identcode5 Error
4 Ean8
3 Ean5
2 Ean21 Ean130 Code39/ /Code25interleaved. Code25- Code128, Codabar+ )AbstractObject* =UnexpectedValueException) -RuntimeException( ?RendererCreationException' 3OutOfRangeException& =InvalidArgumentException% 7RendererPluginManager$ 3ObjectPluginManager# Barcode" )Authentication! Session  'NonPersistent Chain =UnexpectedValueException -RuntimeException =InvalidArgumentException Result 7AuthenticationService -RuntimeException =InvalidArgumentException %FileResolver )ApacheResolver =UnexpectedValueException -RuntimeException =InvalidArgumentException -RuntimeException =InvalidArgumentException  ACredentialTreatmentAdapter 5CallbackCheckAdapter +AbstractAdapter
 Ldap
 Http Digest
 DbTable	 +AbstractAdapter Struct String	 Nil Integer Double DateTime Boolean !BigInteger  Base64 !ArrayValue~ )AbstractScalar} 1AbstractCollection| -RuntimeException{ =InvalidArgumentExceptionz 9BadMethodCallExceptiony Systemx Faultw Cache
v Httpu Stdin
t Https XmlWriterr #DomDocumentq /AbstractGeneratorp )ValueExceptiono -RuntimeExceptionn =InvalidArgumentExceptionm 9BadMethodCallExceptionl #ServerProxyk 3ServerIntrospectionj -RuntimeExceptioni =InvalidArgumentExceptionh 3IntrospectExceptiong 'HttpExceptionf )FaultExceptione Serverd Responsec Requestb Faulta Client` 'AbstractValue_ 3PhpRendererStrategy^ %JsonStrategy] %FeedStrategy\ /TemplatePathStack[ 3TemplateMapResolverZ /AggregateResolverY #PhpRendererX %JsonRendererW %FeedRendererV +ConsoleRendererU ViewModelT JsonModelS FeedModelR %ConsoleModelQ ViewEvent
P ViewO VariablesN StreamM 3HelperPluginManagerL 7FlashMessengerFactoryK RegistryJ ContainerI 1AbstractStandaloneH /AbstractContainerG SitemapF 'PluginManager
E MenuD LinksC #BreadcrumbsB )AbstractHelperA )AbstractHelper@ Stub2? ViewModel	> Url= ServerUrl< 3RenderToPlaceholder; -RenderChildModel: #Placeholder9 #PartialLoop8 Partial7 /PaginationControl6 !Navigation5 Layout
4 Json3 %InlineScript2 Identity1 'HtmlQuicktime0 HtmlPage/ !HtmlObject. HtmlList- HtmlFlash, HeadTitle+ HeadStyle* !HeadScript) HeadMeta( HeadLink' Gravatar& )FlashMessenger% EscapeUrl$ EscapeJs# )EscapeHtmlAttr" !EscapeHtml! EscapeCss  Doctype #DeclareVars Cycle BasePath 3AbstractHtmlElement )AbstractHelper -RuntimeException 9InvalidHelperException =InvalidArgumentException +DomainException 9BadMethodCallException Version Priority	 Loc Lastmod !Changefreq WordCount !UploadFile Upload
 Size
 Sha1 NotExists
 MimeType		 Md5 IsImage   E oV=/#]<%iQ;&^B*dJ2 






q
Z
I
1
"
							r	`	I	,	o`R@(kQ0}gP6 mZI7+
t[?$~_>%lX@*fE   Y =InvalidArgumentExceptionX 3WriterPluginManagerW 3ReaderPluginManagerV FactoryU ConfigT %ValueScanner
S UtilR /TokenArrayScannerQ +PropertyScannerP -ParameterScannerO 'MethodScannerN +FunctionScannerM #FileScannerL +DocBlockScannerK -DirectoryScannerJ 3DerivedClassScannerI %ClassScannerH 1CachingFileScannerG /AnnotationScannerF ?AggregateDirectoryScannerE -RuntimeExceptionD =InvalidArgumentExceptionC 9BadMethodCallExceptionB !TagManagerA ThrowsTag@ ReturnTag? #PropertyTag> ParamTag= MethodTag< !LicenseTag; !GenericTag: AuthorTag9 1PropertyReflection8 3ParameterReflection7 -MethodReflection6 1FunctionReflection5 )FileReflection4 1DocBlockReflection3 +ClassReflection2 +NameInformation1 -RuntimeException0 =InvalidArgumentException	/ Tag. ReturnTag- ParamTag, !LicenseTag+ AuthorTag* )ValueGenerator) 9PropertyValueGenerator( /PropertyGenerator' 1ParameterGenerator& +MethodGenerator% 7FileGeneratorRegistry$ 'FileGenerator# /DocBlockGenerator" )ClassGenerator! 'BodyGenerator  ;AbstractMemberGenerator /AbstractGenerator -RuntimeException =InvalidArgumentException 9BadMethodCallException ;GenericAnnotationParser =DoctrineAnnotationParser /AnnotationManager 5AnnotationCollection -RuntimeException ;NoFontProvidedException =InvalidArgumentException ?ImageNotLoadableException! CExtensionNotLoadedException +DomainException ReCaptcha Image Figlet Factory
 Dumb %AbstractWord +AbstractAdapter
 !Serializer	 'PluginOptions -OptimizeByFactor +IgnoreUserAbort -ExceptionHandler 5ClearExpiredByFactor )AbstractPlugin PostEvent 'PluginManager )ExceptionEvent  Event %Capabilities~ 5AdapterPluginManager} 'ZendServerShm| )ZendServerDisk{ 'XCacheOptionsz XCachey +WinCacheOptionsx WinCachew )SessionOptionsv Sessionu 5RedisResourceManagert %RedisOptionss Redisr 'MemoryOptionsq Memoryp =MemcachedResourceManagero -MemcachedOptionsn Memcachedm +KeyListIteratorl /FilesystemOptionsk 1FilesystemIteratorj !Filesystemi !DbaOptionsh #DbaIterator	g Dbaf !ApcOptionse #ApcIterator	d Apcc )AdapterOptionsb 1AbstractZendServera +AbstractAdapter` 3StorageCacheFactory(_ QStorageCacheAbstractServiceFactory^ )StorageFactory] 5PatternPluginManager\ )PatternFactory[ )PatternOptionsZ #OutputCacheY #ObjectCacheX !ClassCacheW %CaptureCacheV 'CallbackCacheU +AbstractPattern$T IUnsupportedMethodCallExceptionS =UnexpectedValueExceptionR -RuntimeExceptionQ 3OutOfSpaceExceptionP 3MissingKeyException O AMissingDependencyExceptionN )LogicExceptionM =InvalidArgumentException!L CExtensionNotLoadedExceptionK 9BadMethodCallExceptionJ =UnexpectedValueExceptionI -RuntimeExceptionH 3OutOfRangeExceptionG =InvalidArgumentException	F Svg	E PdfD ImageC -AbstractRendererB -RuntimeExceptionA 3OutOfRangeException@ =InvalidArgumentException!? CExtensionNotLoadedException > ABarcodeValidationException
= Upce    sfOC6%}p^M=.sdUA4'weVG8oV5





s
X
@
-

									y	f	Z	K	9	 	kT3oaR@/{bN8%weD+ubSD4%{n_RB4$lSB%   In !Expression Between SqlServer +SelectDecorator +SelectDecorator Oracle +SelectDecorator Mysql 5CreateTableDecorator
 Platform	 -AbstractPlatform -RuntimeException =InvalidArgumentException UniqueKey !PrimaryKey !ForeignKey Check 1AbstractConstraint Varchar
  Time Integer~ Float} Decimal
| Date{ Column
z Chary Boolean
x Blobw DropTable
v #CreateTable
u !AlterTable
t !DeleteTest	s Where	r Update	q +TableIdentifier		p Sql	o Select	n Literal	m Insert	l Having	k !Expression	j Delete	i #AbstractSql	h !FeatureSetg +AbstractFeaturef -RuntimeExceptione =InvalidArgumentExceptiond !RowGatewayc 1AbstractRowGatewayb -RuntimeExceptiona =InvalidArgumentException` ResultSet_ 1HydratingResultSet^ /AbstractResultSet] /SqlServerMetadata\ )SqliteMetadata[ 1PostgresqlMetadataZ 'MysqlMetadataY )AbstractSourceX !ViewObjectW 'TriggerObjectV #TableObjectU -ConstraintObjectT %ColumnObjectS 3AbstractTableObjectR MetadataQ =UnexpectedValueException P -RuntimeException O =InvalidArgumentException N )ErrorException M ProfilerL SqlServerK SqliteJ Sql92I !PostgresqlH OracleG MysqlF IbmDb2E =UnexpectedValueExceptionD -RuntimeExceptionC 7InvalidQueryException*B UInvalidConnectionParametersExceptionA =InvalidArgumentException@ )ErrorException? )ErrorException> Statement= Sqlsrv< Result; !Connection: Statement9 Result8 Pgsql7 !Connection6 -SqliteRowCounter5 -OracleRowCounter4 Statement3 Result	2 Pdo1 !Connection0 Statement/ Result
. Oci8- !Connection, Statement+ Result* Mysqli) !Connection( Statement' Result& IbmDb2% !Connection$ +AbstractFeature# 1StatementContainer" 1ParameterContainer! 7AdapterServiceFactory#  GAdapterAbstractServiceFactory Adapter Pkcs7 5PaddingPluginManager Mcrypt -RuntimeException =InvalidArgumentException -RuntimeException =InvalidArgumentException PublicKey !PrivateKey #AbstractKey !RsaOptions	 Rsa 'DiffieHellman -RuntimeException =InvalidArgumentException Bcrypt Apache Scrypt SaltedS2k Pbkdf2
 -RuntimeException	 =InvalidArgumentException -RuntimeException =InvalidArgumentException Utils 9SymmetricPluginManager
 Hmac
 Hash #BlockCipher Select  Number
 Line~ Confirm
} Char| )AbstractPrompt{ -RuntimeExceptionz =InvalidArgumentExceptiony 9BadMethodCallExceptionx Responsew Requestv Getoptu Consolet Xterm256s Utf8Heavy
r Utf8q DECSGp 'AsciiExtendedo Asciin )WindowsAnsiconm Windowsl Virtualk Posixj +AbstractAdapter
i Yaml	h Xmlg PhpArray
f Json	e Inid )AbstractWriter
c Yaml	b Xml
a Json	` Ini_ !Translator^ Token] Queue\ Filter[ ConstantZ -RuntimeException   l |_J)fN4& pX=hG%tZH7)






w
b
N
3
						q	R	1	fP;*zkZG1$yk]PB5'ugN/"naSE8*m`MA,~bU6}l        B BaseNameRA +AbstractUnicodeR@ )AbstractFilterR? TransferQ> -RuntimeExceptionP= ;PhpEnvironmentExceptionP< =InvalidArgumentExceptionP; 9BadMethodCallExceptionP: 9ValidatorPluginManagerO
9 HttpO8 3FilterPluginManagerO7 +AbstractAdapterO6 -RuntimeExceptionN5 =InvalidArgumentExceptionN4 9BadMethodCallExceptionN3 %PhpClassFileM2 -ClassFileLocatorM1 SourceL0 %AbstractAtomL	/ RssK. !AtomSourceK
- AtomK, %AbstractAtomK	+ RssJ* #AtomDeletedJ
) AtomJ( DeletedI' -AbstractRendererH& EntryG% EntryF$ EntryE
# FeedD" EntryD
! FeedC  EntryC
 FeedB EntryB EntryA
 Feed@ -AbstractRenderer? -RuntimeException> =InvalidArgumentException> 9BadMethodCallException> Writer= Version= Source= #FeedFactory=
 Feed= 9ExtensionPluginManager= -ExtensionManager= Entry= Deleted= %AbstractFeed=	 Uri< Source;	 Rss:

 Atom:	 %AbstractFeed: Entry9 Entry8
 Feed7 Entry6
 Feed5 Entry5
 Feed4 Entry4
  Feed3 Entry3~ Entry2
} Feed1| Entry1{ %AbstractFeed0z 'AbstractEntry0y -RuntimeException/x =InvalidArgumentException/w 9BadMethodCallException/	v Rss.
u Atom.t 'AbstractEntry.s !Collection-r Category-q Author-p 1AbstractCollection-o Reader,n FeedSet,m 9ExtensionPluginManager,l -ExtensionManager,k !Collection,j %AbstractFeed,i 'AbstractEntry,h Callback+g %Subscription*f 'AbstractModel*e -RuntimeException)d =InvalidArgumentException)c Version(b !Subscriber(a %PubSubHubbub(` Publisher(_ %HttpResponse(^ -AbstractCallback(] -RuntimeException'\ =InvalidArgumentException'[ 9BadMethodCallException'Z )FilterIterator&Y =InvalidCallbackException%X =InvalidArgumentException%W +DomainException%V 1StaticEventManager$U 1SharedEventManager$T 1ResponseCollection$S 1GlobalEventManager$R #FilterChain$Q %EventManager$P Event$O ?AbstractListenerAggregate$N -RuntimeException#M =InvalidArgumentException#L Escaper"K -RuntimeException!J 9BadMethodCallException!I Query H NodeList G Css2Xpath F /GeneratorInstanceE GeneratorD ;DependencyInjectorProxy!C CUndefinedReferenceExceptionB -RuntimeExceptionA =MissingPropertyException@ =InvalidPositionException? ?InvalidParamNameException> =InvalidCallbackException= =InvalidArgumentException< 9ClassNotFoundException!; CCircularDependencyException: Console9 PhpClass8 +InjectionMethod7 /RuntimeDefinition6 7IntrospectionStrategy5 1CompilerDefinition4 +ClassDefinition3 /BuilderDefinition2 +ArrayDefinition1 %Instantiator0 Inject/ )ServiceLocator. +InstanceManager- Di, )DefinitionList+ Config* Debug) /TableGatewayEvent( +SequenceFeature' /RowGatewayFeature& +MetadataFeature% 1MasterSlaveFeature$ 5GlobalAdapterFeature# !FeatureSet" %EventFeature! +AbstractFeature  -RuntimeException =InvalidArgumentException %TableGateway 5AbstractTableGateway %PredicateSet Predicate Operator NotIn Literal
 Like IsNull IsNotNull    vfR6!}gU@jF%rU7~eG#




z
c
@
+

									n	a	I	7	(		{m`QC5!zm]M</uU4nT9%u[H3!~m]L7*sdO?*
         z =InvalidArgumentExceptionby ;InitializationExceptionb
x Testaw Socketav Proxya
u Curlat Response`s Request`r Headers`q %HeaderLoader`p Cookies`o %ClientStatic`n Client`m +AbstractMessage`l %HelperConfig_k 9FormFileUploadProgress^j ;FormFileSessionProgress^i 3FormFileApcProgress^h ReCaptcha]g Image]f Figlet]
e Dumb]d %AbstractWord]c FormWeek\b FormUrl\a FormTime\` %FormTextarea\_ FormText\^ FormTel\] !FormSubmit\\ !FormSelect\[ !FormSearch\Z FormRow\Y FormReset\X FormRange\W FormRadio\V %FormPassword\U !FormNumber\T /FormMultiCheckbox\S +FormMonthSelect\R FormMonth\Q FormLabel\P FormInput\O FormImage\N !FormHidden\M FormFile\L FormEmail\K /FormElementErrors\J #FormElement\I 1FormDateTimeSelect\H /FormDateTimeLocal\G %FormDateTime\F )FormDateSelect\E FormDate\D FormColor\C )FormCollection\B %FormCheckbox\A #FormCaptcha\@ !FormButton\
? Form\> )AbstractHelper\= =UnexpectedValueException[< ;InvalidElementException[; =InvalidArgumentException[!: CExtensionNotLoadedException[9 +DomainException[8 9BadMethodCallException[7 1FormElementManagerZ 6 AFormAbstractServiceFactoryZ
5 FormZ4 FieldsetZ3 FactoryZ2 ElementZ
1 WeekY	0 UrlY
/ TimeY. TextareaY
- TextY, SubmitY+ SelectY* RangeY) RadioY( PasswordY' NumberY& 'MultiCheckboxY% #MonthSelectY$ MonthY# ImageY" HiddenY
! FileY  EmailY )DateTimeSelectY 'DateTimeLocalY DateTimeY !DateSelectY
 DateY
 CsrfY ColorY !CollectionY CheckboxY CaptchaY ButtonY ValidatorX +ValidationGroupX
 TypeX RequiredX OptionsX ObjectX
 NameX #InputFilterX InputX HydratorX
 ;FormAnnotationsListenerX	 FlagsX FilterX ExcludeX %ErrorMessageX  AElementAnnotationsListenerX )ComposedObjectX !AttributesX /AnnotationBuilderX !AllowEmptyX  =AbstractStringAnnotationX% KAbstractArrayOrStringAnnotationX~ ;AbstractArrayAnnotationX!} CAbstractAnnotationsListenerX| 7UnderscoreToSeparatorW{ -UnderscoreToDashWz 7UnderscoreToCamelCaseWy 5SeparatorToSeparatorWx +SeparatorToDashWw 5SeparatorToCamelCaseWv -DashToUnderscoreWu +DashToSeparatorWt +DashToCamelCaseWs 7CamelCaseToUnderscoreWr 5CamelCaseToSeparatorWq +CamelCaseToDashWp /AbstractSeparatorWo UpperCaseVn %RenameUploadVm RenameVl LowerCaseVk EncryptVj DecryptVi -RuntimeExceptionUh =InvalidArgumentExceptionU!g CExtensionNotLoadedExceptionUf +DomainExceptionUe 9BadMethodCallExceptionUd OpensslTc #BlockCipherT	b ZipS	a TarS` SnappyS	_ RarS	^ LzfS] GzS	\ Bz2S"[ EAbstractCompressionAlgorithmSZ %UriNormalizeRY StripTagsRX 'StripNewlinesRW !StringTrimRV 'StringToUpperRU 'StringToLowerRT %StaticFilterRS RealPathRR #PregReplaceR
Q NullR	P IntRO InflectorRN %HtmlEntitiesRM 3FilterPluginManagerRL #FilterChainRK EncryptR	J DirRI DigitsRH DecryptRG !DecompressRF /DateTimeFormatterRE CompressRD CallbackRC BooleanR   r eL+u^I=/u]J5{n^F2"xjZJ7(








`
C
%
						v	g	C	"	vfZI-t`O.vXH6(`?$wV=0#uT3q`K3#r    - %AbstractItem, OpenLdap+ !eDirectory* +ActiveDirectory) Schema( RootDse' !Collection& -ChildrenIterator% %AbstractNode$ Encoder# +FilterException" %StringFilter! OrFilter  NotFilter !MaskFilter AndFilter 7AbstractLogicalFilter )AbstractFilter 'LdapException =InvalidArgumentException 9BadMethodCallException =UnexpectedValueException =InvalidArgumentException 1ConverterException Converter~ +DefaultIterator}
 Node|
 Ldap| Filter| Dn| !Collection| Attribute| Service{
 Httpz
 Httpy
 -RuntimeExceptionx	 =InvalidArgumentExceptionx 'HttpExceptionx )ErrorExceptionx	 Smdw Serverw Responsew Requestw Errorw Clientw  Cachew -RuntimeExceptionv~ 1RecursionExceptionv} =InvalidArgumentExceptionv| 9BadMethodCallExceptionv
{ Jsonu
z Expruy Encoderux Decoderuw -RuntimeExceptiontv =InvalidArgumentExceptiontu =InputFilterPluginManagerst #InputFilterss Inputsr FileInputsq Factorysp 7CollectionInputFilterso +BaseInputFiltersn !ArrayInputsm %HelperConfigrl +TranslatePluralqk Translateqj Pluralqi %NumberFormatqh !DateFormatqg )CurrencyFormatqf =AbstractTranslatorHelperqe PostCodepd #PhoneNumberp	c Intpb Floatpa DateTimep` Alphap_ Alnump^ Symbolo
] Ruleo\ Parsero[ =TranslatorServiceFactorynZ !TranslatornY !TextDomainnX 3LoaderPluginManagernW PhpArraym	V InimU GettextmT %NumberFormatlS AlphalR AlnumlQ )AbstractLocalelP -RuntimeExceptionkO )RangeExceptionkN )ParseExceptionkM 5OutOfBoundsExceptionkL =InvalidArgumentExceptionk!K CExtensionNotLoadedExceptionkJ StreamjI ResponseiH RequestiG 'RemoteAddressiF -RuntimeExceptionhE =InvalidArgumentExceptionhD 9LanguageFieldValuePartgC 9EncodingFieldValuePartgB 7CharsetFieldValuePartgA 5AcceptFieldValuePartg@ 9AbstractFieldValuePartg? +WWWAuthenticatef> Warningf	= Viaf
< Varyf; UserAgentf: Upgradef9 -TransferEncodingf8 Trailerf7 TEf6 SetCookief5 Serverf4 !RetryAfterf3 Refreshf2 Refererf1 Rangef0 1ProxyAuthorizationf/ /ProxyAuthenticatef. Pragmaf- #MaxForwardsf, Locationf+ %LastModifiedf* KeepAlivef) /IfUnmodifiedSincef( IfRangef' #IfNoneMatchf& +IfModifiedSincef% IfMatchf
$ Hostf# 1GenericMultiHeaderf" 'GenericHeaderf
! Fromf  Expiresf Expectf
 Etagf
 Datef Cookief #ContentTypef ;ContentTransferEncodingf %ContentRangef !ContentMD5f +ContentLocationf 'ContentLengthf +ContentLanguagef +ContentEncodingf 1ContentDispositionf !Connectionf %CacheControlf 'Authorizationf 1AuthenticationInfof Allowf	 Agef %AcceptRangesf )AcceptLanguagef
 )AcceptEncodingf	 'AcceptCharsetf Acceptf -AbstractLocationf %AbstractDatef )AbstractAcceptf -RuntimeExceptione 3OutOfRangeExceptione =InvalidArgumentExceptione -RuntimeExceptiond  3OutOfRangeExceptiond =InvalidArgumentExceptiond~ Cookiesc} -TimeoutExceptionb| -RuntimeExceptionb{ 3OutOfRangeExceptionb   y kP7cE,vdYD+ tbP9' teQ9#






w
Z
A
%

								u	a	P	@	1	!	}cB)aD+pcO>1x`?&zdVG7*mV5!	eM,y                           X 'RouteListenerW MvcEventV 3ModuleRouteListenerU -DispatchListenerT #ApplicationS 'ModuleManagerR #ModuleEventQ -RuntimeExceptionP =InvalidArgumentExceptionO +ServiceListenerN 3OnBootstrapListenerM 9ModuleResolverListenerL 5ModuleLoaderListener%K KModuleDependencyCheckerListener!J CLocatorRegistrationListenerI +ListenerOptionsH #InitTriggerG =DefaultListenerAggregateF )ConfigListenerE 1AutoloaderListenerD -AbstractListenerC -RuntimeException&B MMissingDependencyModuleExceptionA =InvalidArgumentException@ -RuntimeException
? Part
> Mime= Message< Decode; Value: 'MemoryManager9 -RuntimeException8 =InvalidArgumentException7 Movable6 Locked5 -AccessController4 /AbstractContainer3 !HashTiming
2 Rand1 -RuntimeException0 =InvalidArgumentException/ +DomainException. -RuntimeException- =InvalidArgumentException, ;DivisionByZeroException+ !BigInteger* 5AdapterPluginManager	) Gmp( Bcmath' #SmtpOptions
& Smtp% Sendmail$ #FileOptions
# File" -RuntimeException! =InvalidArgumentException  Maildir
 File -RuntimeException =InvalidArgumentException
 File
 Mbox Maildir -RuntimeException 5OutOfBoundsException =InvalidArgumentException
 Pop3
 Part Message
 Mbox Maildir
 Imap Folder +AbstractStorage Plain Login Crammd5 -RuntimeException
 =InvalidArgumentException	 /SmtpPluginManager
 Smtp
 Pop3
 Imap -AbstractProtocol -RuntimeException =InvalidArgumentException 9BadMethodCallException To  Subject Sender~ ReplyTo} Received| #MimeVersion{ MessageIdz !HeaderWrapy %HeaderLoaderx 1GenericMultiHeaderw 'GenericHeader
v From
u Datet #ContentTypes Cc	r Bccq 3AbstractAddressListp -RuntimeExceptiono 5OutOfBoundsExceptionn =InvalidArgumentExceptionm +DomainExceptionl 9BadMethodCallExceptionk Storagej Messagei Headersh #AddressListg Addressf 'FirePhpBridgee +ChromePhpBridged #ZendMonitorc Syslogb Stream
a Null` MongoDB
_ Mock
^ Mail] 9FormatterPluginManager\ FirePhp[ )FingersCrossedZ 3FilterPluginManagerY DbX ChromePhpW )AbstractWriterV RequestIdU BacktraceT 3WriterPluginManagerS 9ProcessorPluginManagerR 5LoggerServiceFactory"Q ELoggerAbstractServiceFactoryP Logger	O XmlN SimpleM FirePhpL -ExceptionHandlerK %ErrorHandlerJ DbI ChromePhp
H BaseG ValidatorF )SuppressFilterE RegexD Priority
C MockB -RuntimeExceptionA =InvalidArgumentException@ /SecurityException? -RuntimeException> 7PluginLoaderException'= OMissingResourceNamespaceException< 5InvalidPathException; =InvalidArgumentException: +DomainException9 9BadMethodCallException8 1StandardAutoloader7 /PluginClassLoader6 -ModuleAutoloader5 1ClassMapAutoloader4 /AutoloaderFactory3 OpenLdap2 +ActiveDirectory1 OpenLdap0 +ActiveDirectory/ OpenLdap. +ActiveDirectory   * kU>s\D,}^@% wV=/~gVA.





d
D
					j	N	1	lU=zZ:[6t`@mP6#_:oN6	wVJ:*      f Jumpinge Elastic	d Allc =UnexpectedValueExceptionb -RuntimeExceptiona =InvalidArgumentException` ?SerializableLimitIterator!_ CScrollingStylePluginManager^ Paginator] Factory\ 5AdapterPluginManager[ +DbSelectFactoryZ =UnexpectedValueExceptionY -RuntimeExceptionX =InvalidArgumentException
W NullV IteratorU )DbTableGatewayT DbSelectS %ArrayAdapterR %HelperConfigQ =DefaultNavigationFactory"P EConstructedNavigationFactoryO ?AbstractNavigationFactory	N Uri	M MvcL %AbstractPageK 5OutOfBoundsExceptionJ =InvalidArgumentExceptionI +DomainExceptionH 9BadMethodCallExceptionG !NavigationF /AbstractContainerE 5SendResponseListenerD #ViewManagerC 7RouteNotFoundStrategyB ;InjectViewModelListenerA 9InjectTemplateListener$@ IInjectRoutematchParamsListener? /ExceptionStrategy> =DefaultRenderingStrategy= ;CreateViewModelListener< #ViewManager; 7RouteNotFoundStrategy: ;InjectViewModelListener&9 MInjectNamedConsoleParamsListener8 /ExceptionStrategy7 =DefaultRenderingStrategy6 ;CreateViewModelListener"5 EViewTemplatePathStackFactory$4 IViewTemplateMapResolverFactory3 3ViewResolverFactory2 1ViewManagerFactory1 ;ViewJsonStrategyFactory0 ;ViewJsonRendererFactory/ =ViewHelperManagerFactory. ;ViewFeedStrategyFactory- ;ViewFeedRendererFactory, ;ValidatorManagerFactory+ =TranslatorServiceFactory* 5ServiceManagerConfig) 9ServiceListenerFactory+( WSerializerAdapterPluginManagerFactory' 'RouterFactory& ?RoutePluginManagerFactory% +ResponseFactory$ )RequestFactory## GPaginatorPluginManagerFactory" 5ModuleManagerFactory! ?InputFilterManagerFactory  9HydratorManagerFactory 9HttpViewManagerFactory ?FormElementManagerFactory 5FilterManagerFactory 3EventManagerFactory+ WDiStrictAbstractServiceFactoryFactory$ IDiStrictAbstractServiceFactory! CDiServiceInitializerFactory DiFactory% KDiAbstractServiceFactoryFactory$ IControllerPluginManagerFactory ;ControllerLoaderFactory ?ConsoleViewManagerFactory 7ConsoleAdapterFactory 'ConfigFactory 1ApplicationFactory" EAbstractPluginManagerFactory -SimpleRouteStack 1RoutePluginManager !RouteMatch %PriorityList Wildcard
 )TreeRouteStack#	 GTranslatorAwareTreeRouteStack Segment Scheme !RouteMatch Regex Query
 Part Method Literal  Hostname Chain~ -RuntimeException} =InvalidArgumentException| -SimpleRouteStack{ Simplez !RouteMatchy Catchall x ASimpleStreamResponseSenderw /SendResponseEvent"v EPhpEnvironmentResponseSenderu 1HttpResponseSendert 7ConsoleResponseSenders 9AbstractResponseSenderr !Translatorq -RuntimeExceptionp ;MissingLocatorExceptiono 9InvalidPluginException n AInvalidControllerExceptionm =InvalidArgumentExceptionl +DomainExceptionk +IdentityFactoryj )ForwardFactory	i Urlh Redirectg +PostRedirectGetf Paramse Layoutd Identityc Forwardb )FlashMessengera 3FilePostRedirectGet!` CAcceptableViewModelSelector_ )AbstractPlugin^ 'PluginManager] /ControllerManager\ ?AbstractRestfulController[ 1AbstractControllerZ =AbstractActionControllerY 5SendResponseListener   O ~mT?2%cG'jYL8(]<#n[I7





y
Z
9
 
						f	=	^D,~]D6w`<'}hYJ=.sT0 }jRA,vW5hO                -AbstractHydrator -RuntimeException  )LogicException =InvalidCallbackException~ =InvalidArgumentException!} CExtensionNotLoadedException| +DomainException{ 9BadMethodCallExceptionz ?PhpReferenceCompatibilityy 9PhpLegacyCompatibilityx #StringUtilsw SplStackv SplQueueu -SplPriorityQueuet Responses Requestr 'PriorityQueueq !Parametersp Message
o Globn %ErrorHandlerm DateTimel +CallbackHandlerk !ArrayUtilsj !ArrayStacki #ArrayObjecth +AbstractOptionsg 1DefaultComplexTypef Compositee 3ArrayOfTypeSequenced 1ArrayOfTypeComplexc AnyType!b CAbstractComplexTypeStrategya 9DocumentLiteralWrapper` =UnexpectedValueException_ -RuntimeException^ =InvalidArgumentException!] CExtensionNotLoadedException\ 9BadMethodCallException[ LocalZ DotNetY Common
X WsdlW ServerV ClientU %AutoDiscoverT 3ReflectionDiscoveryS !RemoteAddrR 'HttpUserAgentQ ?PhpReferenceCompatibilityP )SessionStorageO 3SessionArrayStorageN FactoryM %ArrayStorage!L CAbstractSessionArrayStorageK )StorageFactoryJ 7SessionManagerFactoryI 5SessionConfigFactory%H KContainerAbstractServiceFactoryG )MongoDBOptionsF MongoDBE 7DbTableGatewayOptionsD )DbTableGatewayC CacheB -RuntimeExceptionA =InvalidArgumentException@ 9BadMethodCallException? ?PhpReferenceCompatibility> )StandardConfig= 'SessionConfig< )ValidatorChain; )SessionManager: Container9 +AbstractManager8 /AbstractContainer7 ?LazyServiceFactoryFactory6 1LazyServiceFactory5 =ServiceNotFoundException 4 AServiceNotCreatedException3 -RuntimeException!2 CInvalidServiceNameException1 =InvalidArgumentException&0 MCircularDependencyFoundException/ 5DiServiceInitializer. -DiServiceFactory- 9DiInstanceManagerProxy, =DiAbstractServiceFactory+ )ServiceManager* Config) 7AbstractPluginManager( -RuntimeException' =InvalidArgumentException& 9BadMethodCallException% 7ReflectionReturnValue$ 3ReflectionParameter# -ReflectionMethod" 1ReflectionFunction! +ReflectionClass  Prototype
 Node -AbstractFunction Prototype Parameter !Definition Callback -RuntimeException =InvalidArgumentException 9BadMethodCallException !Reflection !Definition Cache )AbstractServer -RuntimeException =InvalidArgumentException! CExtensionNotLoadedException !Serializer 5AdapterPluginManager #WddxOptions
 Wddx 3PythonPickleOptions
 %PythonPickle	 %PhpSerialize PhpCode MsgPack #JsonOptions
 Json IgBinary )AdapterOptions +AbstractAdapter )UploadProgress  +SessionProgress #ApcProgress~ 7AbstractUploadHandler} #ProgressBar| -RuntimeException{ ;PhpEnvironmentExceptionz 3OutOfRangeExceptiony =InvalidArgumentExceptionx -RuntimeExceptionw =InvalidArgumentExceptionv JsPushu JsPullt Consoles +AbstractAdapterr =InvalidArgumentException
q Role
p Rbaco %AbstractRolen -AbstractIteratorm Registryl #GenericRolek +GenericResourcej -RuntimeExceptioni =InvalidArgumentException	h Aclg Sliding   y oZE,uX:,xYK>-{X1iP/ 








]
@
&
							s	`	F	6	&		reSC8+jRB2#	uhYJ;)zgTA.eL>0|kYL?0cD+y       7 )EscapeHtmlAttr6 !EscapeHtml5 EscapeCss4 Doctype3 #DeclareVars2 Cycle1 BasePath0 3AbstractHtmlElement/ )AbstractHelper. -RuntimeException- 9InvalidHelperException, =InvalidArgumentException+ +DomainException* 9BadMethodCallException) Version( Priority	' Loc& Lastmod% !Changefreq$ WordCount# !UploadFile" Upload
! Size
  Sha1 NotExists MimeType	 Md5 IsImage %IsCompressed ImageSize
 Hash FilesSize Extension Exists +ExcludeMimeType -ExcludeExtension Crc32 Count -RuntimeException# GInvalidMagicMimeFileException =InvalidArgumentException! CExtensionNotLoadedException 9BadMethodCallException %RecordExists )NoRecordExists
 !AbstractDb	 !MyBarcode5 !MyBarcode4 !MyBarcode3 !MyBarcode2 !MyBarcode1
 Upce
 Upca
 Sscc Royalmail  Postnet Planet~ Leitcode} Itf14
| Issn{ +Intelligentmailz Identcodey Gtin14x Gtin13w Gtin12
v Ean8
u Ean5
t Ean2s Ean18r Ean14q Ean13p Ean12o Code93extn Code93m Code39extl Code39k /Code25interleavedj Code25i Code128h Codabarg +AbstractAdapterf 9ValidatorPluginManager
e )ValidatorChain
	d Uri
c %StringLength

b Step
a +StaticValidator
` Regex
_ NotEmpty
^ LessThan
] %IsInstanceOf

\ Isbn
[ Ip
Z InArray
Y Identical

X Iban
W Hostname
	V Hex
U #GreaterThan
T Explode
S %EmailAddress
R Digits
Q DateStep

P Date

O Csrf
N !CreditCard
M Callback
L Between
K Barcode
J /AbstractValidator
I !UriFactory		H Uri	G Mailto	
F Http	
E File	D ;InvalidUriPartExceptionC 3InvalidUriExceptionB =InvalidArgumentExceptionA =UnexpectedValueException@ /OverflowException? 5OutOfBoundsException> ?InvalidDecoratorException= =InvalidArgumentException< Unicode; Blank: Ascii9 Table	8 Row7 -DecoratorManager6 Column5 MultiByte4 Figlet3 =UnexpectedValueException2 -RuntimeException1 =InvalidArgumentException0 =UnexpectedValueException/ -RuntimeException. /OverflowException- 5OutOfBoundsException, =InvalidArgumentException+ %ModuleLoader $* IAbstractHttpControllerTestCase ) AAbstractControllerTestCase'( OAbstractConsoleControllerTestCase' 5OutOfBoundsException!& CInvalidElementNameException#% GInvalidAttributeNameException$ =InvalidArgumentException# ItemList
" Item! Cloud  9DecoratorPluginManager =InvalidArgumentException HtmlTag HtmlCloud #AbstractTag /AbstractDecorator 'AbstractCloud Native MbString
 Intl Iconv 7AbstractStringWrapper 5SerializableStrategy +DefaultStrategy +ClosureStrategy ;NumberOfParameterFilter /MethodMatchFilter IsFilter HasFilter GetFilter +FilterComposite -HydratorListener
 %HydrateEvent	 %ExtractEvent /AggregateHydrator !Reflection )ObjectProperty 7HydratorPluginManager %ClassMethods /ArraySerializable   | n\J9&lX?#rbN4vdO=+s^I-







`
G
+
						y	g	Z	L	?	1	#	vgTD3$iL)}hG.r[K/xaQA2	vdWJ'znM1|                        e )LogicException?d =InvalidArgumentException?!c CExtensionNotLoadedException?b 9BadMethodCallException?a =UnexpectedValueException>` -RuntimeException>_ 3OutOfRangeException>^ =InvalidArgumentException>	] Svg=	\ Pdf=[ Image=Z -AbstractRenderer=Y -RuntimeException<X 3OutOfRangeException<W =InvalidArgumentException<!V CExtensionNotLoadedException< U ABarcodeValidationException<
T Upce;
S Upca;R Royalmail;Q Postnet;P Planet;O Leitcode;N Itf14;M Identcode;L Error;
K Ean8;
J Ean5;
I Ean2;H Ean13;G Code39;F /Code25interleaved;E Code25;D Code128;C Codabar;B )AbstractObject;A =UnexpectedValueException:@ -RuntimeException:? ?RendererCreationException:> 3OutOfRangeException:= =InvalidArgumentException:< 7RendererPluginManager9; 3ObjectPluginManager9: Barcode99 )Authentication88 Session77 'NonPersistent76 Chain75 =UnexpectedValueException64 -RuntimeException63 =InvalidArgumentException62 Result51 7AuthenticationService50 -RuntimeException4/ =InvalidArgumentException4. %FileResolver3- )ApacheResolver3, =UnexpectedValueException2+ -RuntimeException2* =InvalidArgumentException2) -RuntimeException1( =InvalidArgumentException1 ' ACredentialTreatmentAdapter0& 5CallbackCheckAdapter0% +AbstractAdapter0
$ Ldap/
# Http/" Digest/! DbTable/  +AbstractAdapter/ +PhoneNumberTest( Struct' String'	 Nil' Integer' Double' DateTime' Boolean' !BigInteger' Base64' !ArrayValue' )AbstractScalar' 1AbstractCollection' -RuntimeException& =InvalidArgumentException& 9BadMethodCallException& System% Fault% Cache%
 Http$ Stdin#

 Http#	 XmlWriter" #DomDocument" /AbstractGenerator" )ValueException! -RuntimeException! =InvalidArgumentException! 9BadMethodCallException! #ServerProxy  3ServerIntrospection   -RuntimeException =InvalidArgumentException~ 3IntrospectException} 'HttpException| )FaultException{ Serverz Responsey Requestx Faultw Clientv 'AbstractValueu 3PhpRendererStrategyt %JsonStrategys %FeedStrategyr /TemplatePathStackq 3TemplateMapResolverp /AggregateResolvero #PhpRenderern %JsonRendererm %FeedRendererl +ConsoleRendererk ViewModelj JsonModeli FeedModelh %ConsoleModelg ViewEvent
f Viewe Variablesd Streamc 3HelperPluginManagerb +IdentityFactorya 7FlashMessengerFactory` Registry_ Container^ 1AbstractStandalone] /AbstractContainer\ #AclListener[ SitemapZ 'PluginManager
Y MenuX LinksW #BreadcrumbsV )AbstractHelperU )AbstractHelperT Stub2S ViewModel	R UrlQ ServerUrlP 3RenderToPlaceholderO -RenderChildModelN #PlaceholderM #PartialLoopL PartialK /PaginationControlJ !NavigationI Layout
H JsonG %InlineScriptF IdentityE 'HtmlQuicktimeD HtmlPageC !HtmlObjectB HtmlListA HtmlFlash@ HeadTitle? HeadStyle> !HeadScript= HeadMeta< HeadLink; Gravatar: )FlashMessenger9 EscapeUrl8 EscapeJs   S kD,{d9n[H-fWA3u_B-





{
b
L
9
!
								b	A	!	qP7jO5tbPD1w\C'yfG&mT<(o`P4l_S       	 XmlY
 JsonY )JavaPropertiesY	 IniY !TranslatorX TokenX QueueX  FilterX ConstantX~ -RuntimeExceptionW} =InvalidArgumentExceptionW| 3WriterPluginManagerV{ 3ReaderPluginManagerVz FactoryVy ConfigVx 7AbstractConfigFactoryVw %ValueScannerU
v UtilUu /TokenArrayScannerUt +PropertyScannerUs -ParameterScannerUr 'MethodScannerUq +FunctionScannerUp #FileScannerUo +DocBlockScannerUn -DirectoryScannerUm 3DerivedClassScannerUl +ConstantScannerUk %ClassScannerUj 1CachingFileScannerUi /AnnotationScannerUh ?AggregateDirectoryScannerUg -RuntimeExceptionTf =InvalidArgumentExceptionTe 9BadMethodCallExceptionTd !TagManagerSc ThrowsTagRb ReturnTagRa #PropertyTagR` ParamTagR_ MethodTagR^ !LicenseTagR] !GenericTagR\ AuthorTagR[ 1PropertyReflectionQZ 3ParameterReflectionQY -MethodReflectionQX 1FunctionReflectionQW )FileReflectionQV 1DocBlockReflectionQU +ClassReflectionQT +NameInformationPS 7PrototypeClassFactoryOR -RuntimeExceptionNQ =InvalidArgumentExceptionNP !TagManagerM	O TagMN ThrowsTagLM ReturnTagLL #PropertyTagLK ParamTagLJ MethodTagLI !LicenseTagLH !GenericTagLG AuthorTagLF 3AbstractTypeableTagLE )ValueGeneratorKD 9PropertyValueGeneratorKC /PropertyGeneratorKB 1ParameterGeneratorKA +MethodGeneratorK@ 7FileGeneratorRegistryK? 'FileGeneratorK> /DocBlockGeneratorK= )ClassGeneratorK< 'BodyGeneratorK; ;AbstractMemberGeneratorK: /AbstractGeneratorK9 -RuntimeExceptionJ8 =InvalidArgumentExceptionJ7 9BadMethodCallExceptionJ6 ;GenericAnnotationParserI5 =DoctrineAnnotationParserI4 /AnnotationManagerH3 5AnnotationCollectionH2 -RuntimeExceptionG1 ;NoFontProvidedExceptionG0 =InvalidArgumentExceptionG/ ?ImageNotLoadableExceptionG!. CExtensionNotLoadedExceptionG- +DomainExceptionG, ReCaptchaF+ ImageF* FigletF) FactoryF
( DumbF' %AbstractWordF& +AbstractAdapterF% !SerializerE$ 'PluginOptionsE# -OptimizeByFactorE" +IgnoreUserAbortE! -ExceptionHandlerE  5ClearExpiredByFactorE )AbstractPluginE PostEventD 'PluginManagerD )ExceptionEventD EventD %CapabilitiesD 5AdapterPluginManagerD 'ZendServerShmC )ZendServerDiskC 'XCacheOptionsC XCacheC +WinCacheOptionsC WinCacheC )SessionOptionsC SessionC 5RedisResourceManagerC %RedisOptionsC RedisC 'MemoryOptionsC MemoryC ;MemcacheResourceManagerC
 +MemcacheOptionsC	 =MemcachedResourceManagerC -MemcachedOptionsC MemcachedC MemcacheC +KeyListIteratorC /FilesystemOptionsC 1FilesystemIteratorC !FilesystemC !DbaOptionsC  #DbaIteratorC	 DbaC~ BlackHoleC} !ApcOptionsC| #ApcIteratorC	{ ApcCz )AdapterOptionsCy 1AbstractZendServerCx +AbstractAdapterCw 3StorageCacheFactoryB(v QStorageCacheAbstractServiceFactoryBu )StorageFactoryAt 5PatternPluginManagerAs )PatternFactoryAr )PatternOptions@q #OutputCache@p #ObjectCache@o !ClassCache@n %CaptureCache@m 'CallbackCache@l +AbstractPattern@$k IUnsupportedMethodCallException?j =UnexpectedValueException?i -RuntimeException?h 3OutOfSpaceException?g 3MissingKeyException? f AMissingDependencyException?    scS<.
{ZA* ykJ1oYM:&~aSC







n
[
L
=
+

								x	e	W	H	6	#		wY@hO.zcM6iN;rcW?0"rbUH8sVH0!	          ? IsNotNull> In= !Expression< Between; SqlServer: +SelectDecorator9 5CreateTableDecorator8 +SelectDecorator7 Oracle6 +SelectDecorator5 Mysql4 5CreateTableDecorator3 Platform2 -AbstractPlatform1 -RuntimeException0 =InvalidArgumentException/ UniqueKey. !PrimaryKey- !ForeignKey, Check+ 1AbstractConstraint* Varchar
) Time
( Text' Integer& Float% Decimal
$ Date# Column
" Char! Boolean
  Blob !BigInteger DropTable #CreateTable !AlterTable Where Update +TableIdentifier	 Sql Select Literal Insert Having !Expression Delete #AbstractSql !FeatureSet +AbstractFeature -RuntimeException =InvalidArgumentException !RowGateway 1AbstractRowGateway
 -RuntimeException	 =InvalidArgumentException ResultSet 1HydratingResultSet /AbstractResultSet /SqlServerMetadata~ )SqliteMetadata~ 1PostgresqlMetadata~ )OracleMetadata~ 'MysqlMetadata~  )AbstractSource~ !ViewObject}~ 'TriggerObject}} #TableObject}| -ConstraintObject}{ 3ConstraintKeyObject}z %ColumnObject}y 3AbstractTableObject}x Metadata|w =UnexpectedValueException{v -RuntimeException{u =InvalidArgumentException{t )ErrorException{s Profilerzr SqlServeryq Sqliteyp Sql92yo !Postgresqlyn Oracleym Mysqlyl IbmDb2yk =UnexpectedValueExceptionxj -RuntimeExceptionxi 7InvalidQueryExceptionx*h UInvalidConnectionParametersExceptionxg =InvalidArgumentExceptionxf )ErrorExceptionxe )ErrorExceptionwd Statementvc Sqlsrvvb Resultva !Connectionv` Statementu_ Resultu^ Pgsqlu] !Connectionu\ -SqliteRowCountert[ -OracleRowCountertZ StatementsY Results	X PdosW !ConnectionsV StatementrU Resultr
T Oci8rS !ConnectionrR StatementqQ ResultqP MysqliqO !ConnectionqN StatementpM ResultpL IbmDb2pK !ConnectionpJ +AbstractFeatureoI 1StatementContainernH 1ParameterContainernG 7AdapterServiceFactoryn#F GAdapterAbstractServiceFactorynE AdapternD Pkcs7mC 5PaddingPluginManagerlB McryptlA -RuntimeExceptionk@ =InvalidArgumentExceptionk? -RuntimeExceptionj> =InvalidArgumentExceptionj= PublicKeyi< !PrivateKeyi; #AbstractKeyi: !RsaOptionsh	9 Rsah8 'DiffieHellmanh7 -RuntimeExceptiong6 =InvalidArgumentExceptiong5 Bcryptf4 Apachef3 Scrypte2 SaltedS2ke1 Pbkdf2e0 -RuntimeExceptiond/ =InvalidArgumentExceptiond. -RuntimeExceptionc- =InvalidArgumentExceptionc, Utilsb+ 9SymmetricPluginManagerb
* Hmacb
) Hashb( #BlockCipherb' 3DefaultRouteMatchera& Select`% Number`
$ Line`# Confirm`
" Char`! )AbstractPrompt`  -RuntimeException_ =InvalidArgumentException_ 9BadMethodCallException_ Response^ Request^ Getopt^ Console^ Xterm256] Utf8Heavy\
 Utf8\ DECSG\ 'AsciiExtended\ Ascii\ )WindowsAnsicon[ Windows[ Virtual[ Posix[ +AbstractAdapter[
 YamlZ	 XmlZ PhpArrayZ
 JsonZ	
 IniZ	 )AbstractWriterZ
 YamlY   m ~aL+hP6(rZ?!jI'v\J9(	






h
F
8
#
						j	I	2	qa@'ueV;,jUG:,vg[F6(aH/"pcOC.!pW?#~m       n Transferm -RuntimeExceptionl ;PhpEnvironmentExceptionk =InvalidArgumentExceptionj 9BadMethodCallExceptioni 9ValidatorPluginManager
h Httpg 3FilterPluginManagerf +AbstractAdaptere -RuntimeExceptiond =InvalidArgumentExceptionc 9BadMethodCallExceptionb %PhpClassFilea -ClassFileLocator` Source_ %AbstractAtom	^ Rss] !AtomSource
\ Atom[ %AbstractAtom	Z RssY #AtomDeleted
X AtomW DeletedV -AbstractRendererU EntryT EntryS Entry
R FeedQ Entry
P FeedO Entry
N FeedM EntryL Entry
K FeedJ -AbstractRendererI -RuntimeExceptionH =InvalidArgumentExceptionG 9BadMethodCallExceptionF WriterE VersionD SourceC #FeedFactory
B FeedA 9ExtensionPluginManager@ -ExtensionManager? Entry> Deleted= %AbstractFeed	< Uri; Source	: Rss
9 Atom8 %AbstractFeed7 Entry6 Entry
5 Feed4 Entry
3 Feed2 Entry
1 Feed0 Entry
/ Feed. Entry- Entry
, Feed+ Entry* %AbstractFeed) 'AbstractEntry( -RuntimeException' =InvalidArgumentException& 9BadMethodCallException	% Rss
$ Atom# 'AbstractEntry" !Collection! Category  Author 1AbstractCollection Reader FeedSet 9ExtensionPluginManager -ExtensionManager !Collection %AbstractFeed 'AbstractEntry Callback %Subscription 'AbstractModel -RuntimeException =InvalidArgumentException Version !Subscriber %PubSubHubbub Publisher %HttpResponse -AbstractCallback -RuntimeException =InvalidArgumentException
 9BadMethodCallException	 )FilterIterator =InvalidCallbackException =InvalidArgumentException +DomainException 1StaticEventManager 1SharedEventManager 1ResponseCollection 1GlobalEventManager #FilterChain  %EventManager Event~ ?AbstractListenerAggregate} -RuntimeException| =InvalidArgumentException{ Escaperz -RuntimeExceptiony 9BadMethodCallExceptionx Queryw NodeListv Queryu NodeListt DOMXPaths Documentr Css2Xpathq /GeneratorInstancep Generatoro ;DependencyInjectorProxy!n CUndefinedReferenceExceptionm -RuntimeExceptionl =MissingPropertyExceptionk =InvalidPositionExceptionj ?InvalidParamNameExceptioni =InvalidCallbackExceptionh =InvalidArgumentExceptiong 9ClassNotFoundException!f CCircularDependencyExceptione Consoled PhpClassc +InjectionMethodb /RuntimeDefinitiona 7IntrospectionStrategy` 1CompilerDefinition_ +ClassDefinition^ /BuilderDefinition] +ArrayDefinition\ %Instantiator[ InjectZ )ServiceLocatorY +InstanceManagerX DiW )DefinitionListV ConfigU DebugT /TableGatewayEventS +SequenceFeatureR /RowGatewayFeatureQ +MetadataFeatureP 1MasterSlaveFeatureO 5GlobalAdapterFeatureN !FeatureSetM %EventFeatureL +AbstractFeatureK -RuntimeExceptionJ =InvalidArgumentExceptionI %TableGatewayH 5AbstractTableGatewayG %PredicateSetF PredicateE OperatorD NotLikeC NotInB Literal
A Like@ IsNull   z taQB6&|fP=' qaB*vdJ2y\>%



z
g
M
:
#
 								k	^	O	?	.	!		yhR;- qdSF:-nV2pYG6
q_M;)vcP@/	{[<' z  & Proxy
% Curl$ Response# Request" Headers! %HeaderLoader  Cookies %ClientStatic Client +AbstractMessage %HelperConfig 9FormFileUploadProgress ;FormFileSessionProgress 3FormFileApcProgress ReCaptcha Image Figlet
 Dumb %AbstractWord FormWeek FormUrl FormTime %FormTextarea FormText FormTel !FormSubmit !FormSelect !FormSearch
 FormRow	 FormReset FormRange FormRadio %FormPassword !FormNumber /FormMultiCheckbox +FormMonthSelect FormMonth FormLabel  FormInput FormImage~ !FormHidden} FormFile| FormEmail{ /FormElementErrorsz #FormElementy 1FormDateTimeSelectx /FormDateTimeLocalw %FormDateTimev )FormDateSelectu FormDatet FormColors )FormCollectionr %FormCheckboxq #FormCaptchap !FormButton
o Formn )AbstractHelperm =UnexpectedValueExceptionl ;InvalidElementExceptionk =InvalidArgumentException!j CExtensionNotLoadedExceptioni +DomainExceptionh 9BadMethodCallException!g CInputFilterProviderFieldsetf 1FormElementManager e AFormAbstractServiceFactory
d Formc Fieldsetb Factorya Element
` Week	_ Url
^ Time] Textarea
\ Text[ SubmitZ SelectY RangeX RadioW PasswordV NumberU 'MultiCheckboxT #MonthSelectS MonthR ImageQ Hidden
P FileO EmailN )DateTimeSelectM 'DateTimeLocalL DateTimeK !DateSelect
J Date
I CsrfH ColorG !CollectionF CheckboxE CaptchaD ButtonC ValidatorB +ValidationGroup
A Type@ Required? Options> Object
= Name< #InputFilter; Input: Hydrator9 ;FormAnnotationsListener8 Flags7 Filter6 Exclude5 %ErrorMessage 4 AElementAnnotationsListener3 )ComposedObject2 !Attributes1 /AnnotationBuilder0 !AllowEmpty/ =AbstractStringAnnotation%. KAbstractArrayOrStringAnnotation- ;AbstractArrayAnnotation!, CAbstractAnnotationsListener+ 7UnderscoreToSeparator* -UnderscoreToDash) 7UnderscoreToCamelCase( 5SeparatorToSeparator' +SeparatorToDash& 5SeparatorToCamelCase% -DashToUnderscore$ +DashToSeparator# +DashToCamelCase" 7CamelCaseToUnderscore! 5CamelCaseToSeparator  +CamelCaseToDash /AbstractSeparator UpperCase %RenameUpload Rename LowerCase Encrypt Decrypt -RuntimeException =InvalidArgumentException! CExtensionNotLoadedException +DomainException 9BadMethodCallException Openssl #BlockCipher	 Zip	 Tar Snappy	 Rar	 Lzf Gz	 Bz2"
 EAbstractCompressionAlgorithm	 %UriNormalize StripTags 'StripNewlines !StringTrim 'StringToUpper 'StringToLower %StaticFilter RealPath #PregReplace
  Null	 Int~ Inflector} %HtmlEntities| 3FilterPluginManager{ #FilterChainz Encrypt	y Dirx Digitsw Decryptv !Decompressu /DateTimeFormattert Compresss Callbackr Booleanq BaseNamep +AbstractUnicodeo )AbstractFilter   s nU4}dU?(nV>(zm^NA+veQB3









h
X
F
9
-

					m	U	4		s\E,qUB/wV?,p^P<gL3%~eXK;)|[<s         W %StringFilterV OrFilterU NotFilterT !MaskFilterS AndFilterR 7AbstractLogicalFilterQ )AbstractFilterP 'LdapExceptionO =InvalidArgumentExceptionN 9BadMethodCallExceptionM =UnexpectedValueExceptionL =InvalidArgumentExceptionK 1ConverterExceptionJ ConverterI +DefaultIterator
H Node
G LdapF FilterE DnD !CollectionC AttributeB Service
A Http
@ Http? -RuntimeException> =InvalidArgumentException= 'HttpException< )ErrorException	; Smd: Server9 Response8 Request7 Error6 Client5 Cache4 -RuntimeException3 1RecursionException2 =InvalidArgumentException1 9BadMethodCallException
0 Json
/ Expr. Encoder- Decoder, -RuntimeException+ =InvalidArgumentException* =InputFilterPluginManager) #InputFilter( Input' FileInput& Factory% 7CollectionInputFilter$ +BaseInputFilter# !ArrayInput" %HelperConfig! +TranslatePlural  Translate Plural %NumberFormat !DateFormat )CurrencyFormat =AbstractTranslatorHelper PostCode #PhoneNumber	 Int Float DateTime Alpha Alnum Symbol
 Rule Parser =TranslatorServiceFactory !Translator !TextDomain 3LoaderPluginManager )PhpMemoryArray PhpArray	
 Ini	 Gettext 1AbstractFileLoader #NumberParse %NumberFormat Alpha Alnum )AbstractLocale -RuntimeException )RangeException  )ParseException 5OutOfBoundsException~ =InvalidArgumentException!} CExtensionNotLoadedException| Stream{ Responsez Requesty 'RemoteAddressx -RuntimeExceptionw =InvalidArgumentExceptionv +DomainExceptionu 9LanguageFieldValuePartt 9EncodingFieldValueParts 7CharsetFieldValuePartr 5AcceptFieldValuePartq 9AbstractFieldValuePartp +WWWAuthenticateo Warning	n Via
m Varyl UserAgentk Upgradej -TransferEncodingi Trailerh TEg SetCookief Servere !RetryAfterd Refreshc Refererb Rangea 1ProxyAuthorization` /ProxyAuthenticate_ Pragma^ Origin] #MaxForwards\ Location[ %LastModifiedZ KeepAliveY /IfUnmodifiedSinceX IfRangeW #IfNoneMatchV +IfModifiedSinceU IfMatch
T HostS 1GenericMultiHeaderR 'GenericHeader
Q FromP ExpiresO Expect
N Etag
M DateL CookieK #ContentTypeJ ;ContentTransferEncodingI 7ContentSecurityPolicyH %ContentRangeG !ContentMD5F +ContentLocationE 'ContentLengthD +ContentLanguageC +ContentEncodingB 1ContentDispositionA !Connection@ %CacheControl? 'Authorization> 1AuthenticationInfo= Allow	< Age; %AcceptRanges: )AcceptLanguage9 )AcceptEncoding8 'AcceptCharset7 Accept6 -AbstractLocation5 %AbstractDate4 )AbstractAccept3 -RuntimeException2 3OutOfRangeException1 =InvalidArgumentException0 -RuntimeException/ 3OutOfRangeException. =InvalidArgumentException- -TimeoutException, -RuntimeException+ 3OutOfRangeException* =InvalidArgumentException) ;InitializationException
( Test' Socket    x`M<'w^D)
lS9|q\C3$	zhQ?4







}
i
Q
;
+

						r	Y	=	1	&	mYH8)u[:!zY<#iP@3uT;#wV='
}dK0                            % KModuleDependencyCheckerListener+! CLocatorRegistrationListener+ +ListenerOptions+ #InitTrigger+ =DefaultListenerAggregate+  )ConfigListener+ 1AutoloaderListener+~ -AbstractListener+} -RuntimeException*&| MMissingDependencyModuleException*{ =InvalidArgumentException*z -RuntimeException)
y Part(
x Mime(w Message(v Decode(u Value't 'MemoryManager's -RuntimeException&r =InvalidArgumentException&q Movable%p Locked%o -AccessController%n /AbstractContainer%m !HashTiming$
l Rand#k -RuntimeException"j =InvalidArgumentException"i +DomainException"h -RuntimeException!g =InvalidArgumentException!f ;DivisionByZeroException!e !BigInteger d 5AdapterPluginManager 	c Gmpb Bcmatha #SmtpOptions
` Smtp_ Sendmail
^ Null] #FileOptions
\ File[ FactoryZ -RuntimeExceptionY =InvalidArgumentExceptionX +DomainExceptionW Maildir
V FileU -RuntimeExceptionT =InvalidArgumentException
S File
R MboxQ MaildirP -RuntimeExceptionO 5OutOfBoundsExceptionN =InvalidArgumentException
M Pop3
L PartK Message
J MboxI Maildir
H ImapG FolderF +AbstractStorageE PlainD LoginC Crammd5B -RuntimeExceptionA =InvalidArgumentException@ /SmtpPluginManager
? Smtp
> Pop3
= Imap< -AbstractProtocol; -RuntimeException: =InvalidArgumentException9 9BadMethodCallException8 To7 Subject6 Sender5 ReplyTo4 Received3 #MimeVersion2 MessageId1 !HeaderWrap0 %HeaderLoader/ 1GenericMultiHeader. 'GenericHeader
- From
, Date+ #ContentType* ;ContentTransferEncoding) Cc	( Bcc' 3AbstractAddressList& -RuntimeException% 5OutOfBoundsException$ =InvalidArgumentException# +DomainException" 9BadMethodCallException! Storage  Message Headers #AddressList Address 'FirePhpBridge +ChromePhpBridge #ZendMonitor Syslog Stream
 Null MongoDB
 Mock
 Mail 9FormatterPluginManager FirePhp )FingersCrossed 3FilterPluginManager Db ChromePhp )AbstractWriter RequestId Backtrace
 3WriterPluginManager
	 9ProcessorPluginManager
 5LoggerServiceFactory
" ELoggerAbstractServiceFactory
 Logger
	 Xml	 Simple	 FirePhp	 -ExceptionHandler	 %ErrorHandler	  Db	 ChromePhp	
~ Base	} Validator| )SuppressFilter{ Samplez Regexy Priority
x Mockw -RuntimeExceptionv =InvalidArgumentExceptionu /SecurityExceptiont -RuntimeExceptions 7PluginLoaderException'r OMissingResourceNamespaceExceptionq 5InvalidPathExceptionp =InvalidArgumentExceptiono +DomainExceptionn 9BadMethodCallExceptionm 1StandardAutoloaderl /PluginClassLoaderk -ModuleAutoloaderj 1ClassMapAutoloaderi /AutoloaderFactoryh OpenLdapg +ActiveDirectoryf OpenLdape +ActiveDirectoryd OpenLdapc +ActiveDirectoryb %AbstractItema OpenLdap` !eDirectory_ +ActiveDirectory^ Schema ] RootDse \ !Collection [ -ChildrenIterator Z %AbstractNode Y EncoderX +FilterException   $ oVB,~\Aq`QB*cD$cI&






q
b
U
G
9
&

						v	]	8		XF"rS4u];%zZ:{V6`?%pVC$Z9$     %HelperConfigA =DefaultNavigationFactory@" EConstructedNavigationFactory@ ?AbstractNavigationFactory@	 Uri?	 Mvc? %AbstractPage?
 5OutOfBoundsException>	 =InvalidArgumentException> +DomainException> 9BadMethodCallException> !Navigation= /AbstractContainer= 5SendResponseListener< #ViewManager; 7RouteNotFoundStrategy; ;InjectViewModelListener;  9InjectTemplateListener;$ IInjectRoutematchParamsListener;~ /ExceptionStrategy;} =DefaultRenderingStrategy;| ;CreateViewModelListener;{ #ViewManager:z 7RouteNotFoundStrategy:y ;InjectViewModelListener:&x MInjectNamedConsoleParamsListener:w /ExceptionStrategy:v =DefaultRenderingStrategy:u ;CreateViewModelListener:"t EViewTemplatePathStackFactory9$s IViewTemplateMapResolverFactory9r 3ViewResolverFactory9q 1ViewManagerFactory9p ;ViewJsonStrategyFactory9o ;ViewJsonRendererFactory9n =ViewHelperManagerFactory9m ;ViewFeedStrategyFactory9l ;ViewFeedRendererFactory9k ;ValidatorManagerFactory9j =TranslatorServiceFactory9i 5ServiceManagerConfig9h 9ServiceListenerFactory9+g WSerializerAdapterPluginManagerFactory9f 'RouterFactory9e ?RoutePluginManagerFactory9d +ResponseFactory9c )RequestFactory9#b GPaginatorPluginManagerFactory9a 5ModuleManagerFactory9` ;LogWriterManagerFactory9 _ ALogProcessorManagerFactory9^ ?InputFilterManagerFactory9] 9HydratorManagerFactory9\ 9HttpViewManagerFactory9[ ?FormElementManagerFactory9Z 5FilterManagerFactory9Y 3EventManagerFactory9+X WDiStrictAbstractServiceFactoryFactory9$W IDiStrictAbstractServiceFactory9!V CDiServiceInitializerFactory9U DiFactory9%T KDiAbstractServiceFactoryFactory9$S IControllerPluginManagerFactory9R ;ControllerLoaderFactory9Q ?ConsoleViewManagerFactory9P 7ConsoleAdapterFactory9O 'ConfigFactory9N 1ApplicationFactory9"M EAbstractPluginManagerFactory9L -SimpleRouteStack8K 1RoutePluginManager8J !RouteMatch8I %PriorityList8H Wildcard7G )TreeRouteStack7#F GTranslatorAwareTreeRouteStack7E Segment7D Scheme7C !RouteMatch7B Regex7A Query7
@ Part7? Method7> Literal7= Hostname7< Chain7; -RuntimeException6: =InvalidArgumentException69 -SimpleRouteStack58 Simple57 !RouteMatch56 Catchall5 5 ASimpleStreamResponseSender44 /SendResponseEvent4"3 EPhpEnvironmentResponseSender42 1HttpResponseSender41 7ConsoleResponseSender40 9AbstractResponseSender4/ !Translator3. +DummyTranslator3- -RuntimeException2, ;MissingLocatorException2+ 9InvalidPluginException2 * AInvalidControllerException2) =InvalidArgumentException2( +DomainException2' 9BadMethodCallException2& +IdentityFactory1% )ForwardFactory1	$ Url0# Redirect0" +PostRedirectGet0! Params0  Layout0 Identity0 Forward0 )FlashMessenger0 3FilePostRedirectGet0! CAcceptableViewModelSelector0 )AbstractPlugin0 'PluginManager/ /ControllerManager/ ?AbstractRestfulController/ 1AbstractController/ ?AbstractConsoleController/ =AbstractActionController/ 5SendResponseListener. 'RouteListener. MvcEvent. 3ModuleRouteListener. -DispatchListener. #Application. 'ModuleManager- #ModuleEvent- -RuntimeException,
 =InvalidArgumentException,	 +ServiceListener+ 3OnBootstrapListener+ 9ModuleResolverListener+ 5ModuleLoaderListener+   J sZ9!{bA5%iQ=,}\C"oX@)







p
S
@
							x	W	>	-		rV8z[B%{X7r[<pS5y]H9*tS4 p]J          - !ArrayUtilsn, !ArrayStackn+ #ArrayObjectn* +AbstractOptionsn) 1DefaultComplexTypem( Compositem' 3ArrayOfTypeSequencem& 1ArrayOfTypeComplexm% AnyTypem!$ CAbstractComplexTypeStrategym# 9DocumentLiteralWrapperl" =UnexpectedValueExceptionk! -RuntimeExceptionk  =InvalidArgumentExceptionk! CExtensionNotLoadedExceptionk 9BadMethodCallExceptionk Localj DotNetj Commonj
 Wsdli Serveri Clienti %AutoDiscoveri 3ReflectionDiscoveryh !RemoteAddrg 'HttpUserAgentg )SessionStoragef 3SessionArrayStoragef Factoryf %ArrayStoragef! CAbstractSessionArrayStoragef )StorageFactorye 7SessionManagerFactorye 5SessionConfigFactorye% KContainerAbstractServiceFactorye
 )MongoDBOptionsd	 MongoDBd 7DbTableGatewayOptionsd )DbTableGatewayd Cached -RuntimeExceptionc =InvalidArgumentExceptionc 9BadMethodCallExceptionc )StandardConfigb 'SessionConfigb  )ValidatorChaina )SessionManagera~ Containera} +AbstractManagera| /AbstractContainera{ ?LazyServiceFactoryFactory`z 1LazyServiceFactory`y =ServiceNotFoundException_ x AServiceNotCreatedException_w -RuntimeException_!v CInvalidServiceNameException_u =InvalidArgumentException_ t ACircularReferenceException_&s MCircularDependencyFoundException_r 5DiServiceInitializer^q -DiServiceFactory^p 9DiInstanceManagerProxy^o =DiAbstractServiceFactory^n )ServiceManager]m Config]l 7AbstractPluginManager]k -RuntimeException\j =InvalidArgumentException\i 9BadMethodCallException\h 7ReflectionReturnValue[g 3ReflectionParameter[f -ReflectionMethod[e 1ReflectionFunction[d +ReflectionClass[c Prototype[
b Node[a -AbstractFunction[` PrototypeZ_ ParameterZ^ !DefinitionZ] CallbackZ\ -RuntimeExceptionY[ =InvalidArgumentExceptionYZ 9BadMethodCallExceptionYY !ReflectionXX !DefinitionXW CacheXV )AbstractServerXU -RuntimeExceptionWT =InvalidArgumentExceptionW!S CExtensionNotLoadedExceptionWR !SerializerVQ 5AdapterPluginManagerVP #WddxOptionsU
O WddxUN 3PythonPickleOptionsUM %PythonPickleUL %PhpSerializeUK PhpCodeUJ MsgPackUI #JsonOptionsU
H JsonUG IgBinaryUF )AdapterOptionsUE +AbstractAdapterUD )UploadProgressTC +SessionProgressTB #ApcProgressTA 7AbstractUploadHandlerT@ #ProgressBarS? -RuntimeExceptionR> ;PhpEnvironmentExceptionR= 3OutOfRangeExceptionR< =InvalidArgumentExceptionR; -RuntimeExceptionQ: =InvalidArgumentExceptionQ9 JsPushP8 JsPullP7 ConsoleP6 +AbstractAdapterP5 =InvalidArgumentExceptionO
4 RoleN
3 RbacN2 %AbstractRoleN1 -AbstractIteratorN0 RegistryM/ #GenericRoleM. +GenericResourceL- -RuntimeExceptionK, =InvalidArgumentExceptionK+ ?InvalidAssertionExceptionJ* -AssertionManagerI) 1AssertionAggregateI	( AclH' SlidingG& JumpingG% ElasticG	$ AllG# =UnexpectedValueExceptionF" -RuntimeExceptionF! =InvalidArgumentExceptionF  ?SerializableLimitIteratorE! CScrollingStylePluginManagerE PaginatorE FactoryE 5AdapterPluginManagerE +DbSelectFactoryD =UnexpectedValueExceptionC -RuntimeExceptionC =InvalidArgumentExceptionC
 NullB IteratorB )DbTableGatewayB DbSelectB CallbackB %ArrayAdapterB   k }gWF-{ZC*mXC* aI1weU4




~
a
7
						g	F	%	zl\;dWJ;/t_O;/zmXL5seWI;.!r`SF9& |X7xk 
^ Hash] FilesSize\ Extension[ ExistsZ +ExcludeMimeTypeY -ExcludeExtensionX Crc32W CountV -RuntimeException#U GInvalidMagicMimeFileExceptionT =InvalidArgumentException!S CExtensionNotLoadedExceptionR 9BadMethodCallExceptionQ %RecordExistsP )NoRecordExistsO !AbstractDbN !MyBarcode5M !MyBarcode4L !MyBarcode3K !MyBarcode2J !MyBarcode1
I Upce
H Upca
G SsccF RoyalmailE PostnetD PlanetC LeitcodeB Itf14
A Issn@ +Intelligentmail? Identcode> Gtin14= Gtin13< Gtin12
; Ean8
: Ean5
9 Ean28 Ean187 Ean146 Ean135 Ean124 Code93ext3 Code932 Code39ext1 Code390 /Code25interleaved/ Code25. Code128- Codabar, +AbstractAdapter+ 9ValidatorPluginManager* )ValidatorChain	) Uri( %StringLength
' Step& +StaticValidator% Regex$ NotEmpty# LessThan" %IsInstanceOf
! Isbn  Ip InArray Identical
 Iban Hostname	 Hex #GreaterThan Explode %EmailAddress Digits DateStep
 Date
 Csrf !CreditCard Callback Bitwise Between Barcode /AbstractValidator !UriFactory	 Uri Mailto

 Http
	 File ;InvalidUriPartException 3InvalidUriException =InvalidArgumentException =UnexpectedValueException /OverflowException 5OutOfBoundsException ?InvalidDecoratorException =InvalidArgumentException  Unicode Blank~ Ascii} Table	| Row{ -DecoratorManagerz Columny MultiBytex Figletw =UnexpectedValueExceptionv -RuntimeExceptionu =InvalidArgumentExceptiont =UnexpectedValueException~s -RuntimeException~r /OverflowException~q 5OutOfBoundsException~p =InvalidArgumentException~o %ModuleLoader}$n IAbstractHttpControllerTestCase| m AAbstractControllerTestCase|'l OAbstractConsoleControllerTestCase|k 5OutOfBoundsException{!j CInvalidElementNameException{#i GInvalidAttributeNameException{h =InvalidArgumentException{g ItemListz
f Itemze Cloudzd 9DecoratorPluginManageryc =InvalidArgumentExceptionxb HtmlTagwa HtmlCloudw` #AbstractTagw_ /AbstractDecoratorw^ 'AbstractCloudw] Nativev\ MbStringv
[ IntlvZ IconvvY 7AbstractStringWrappervX 5SerializableStrategyuW +DefaultStrategyuV +ClosureStrategyuU =UnderscoreNamingStrategytT =OptionalParametersFiltersS ;NumberOfParameterFiltersR /MethodMatchFiltersQ IsFiltersP HasFiltersO GetFiltersN +FilterCompositesM -HydratorListenerrL %HydrateEventrK %ExtractEventrJ /AggregateHydratorrI !ReflectionqH )ObjectPropertyqG 7HydratorPluginManagerqF %ClassMethodsqE /ArraySerializableqD -AbstractHydratorqC !GuardUtilspB -RuntimeExceptionoA )LogicExceptiono@ =InvalidCallbackExceptiono? =InvalidArgumentExceptiono!> CExtensionNotLoadedExceptiono= +DomainExceptiono< 9BadMethodCallExceptiono; #StringUtilsn: SplStackn9 SplQueuen8 -SplPriorityQueuen7 Responsen6 Requestn5 'PriorityQueuen4 %PriorityListn3 !Parametersn2 Messagen
1 Globn0 %ErrorHandlern/ DateTimen. +CallbackHandlern   t q^L9)lK4v_N=,reVC)u^J</	






g
K
<
*

							~	j	P	4		qZD(~eN4 {bG0yhXI</|cB+uTF0 	`G&t       Error
 Ean8
 Ean5
 Ean2 Ean13 Code39 /Code25interleaved
 Code25	 Code128 Codabar )AbstractObject =UnexpectedValueException -RuntimeException ?RendererCreationException 3OutOfRangeException =InvalidArgumentException 7RendererPluginManager  3ObjectPluginManager Barcode~ )Authentication} Session| 'NonPersistent{ Chainz =UnexpectedValueExceptiony -RuntimeExceptionx =InvalidArgumentExceptionw Resultv 7AuthenticationServiceu -RuntimeExceptiont =InvalidArgumentExceptions %FileResolverr )ApacheResolverq =UnexpectedValueExceptionp -RuntimeExceptiono =InvalidArgumentExceptionn -RuntimeExceptionm =InvalidArgumentException l ACredentialTreatmentAdapterk 5CallbackCheckAdapterj +AbstractAdapter
i Ldap
h Httpg Digestf DbTablee Callbackd +AbstractAdapterc Structb String	a Nil` Integer_ Double^ DateTime] Boolean\ !BigInteger[ Base64Z !ArrayValueY )AbstractScalarX 1AbstractCollectionW -RuntimeExceptionV =InvalidArgumentExceptionU 9BadMethodCallExceptionT SystemS FaultR Cache
Q HttpP Stdin
O HttpN XmlWriterM #DomDocumentL /AbstractGeneratorK )ValueExceptionJ -RuntimeExceptionI =InvalidArgumentExceptionH 9BadMethodCallExceptionG #ServerProxyF 3ServerIntrospectionE -RuntimeExceptionD =InvalidArgumentExceptionC 3IntrospectExceptionB 'HttpExceptionA )FaultException@ Server? Response> Request= Fault< Client; 'AbstractValue: 3PhpRendererStrategy9 %JsonStrategy8 %FeedStrategy7 /TemplatePathStack6 3TemplateMapResolver5 /AggregateResolver4 #PhpRenderer3 %JsonRenderer2 %FeedRenderer1 +ConsoleRenderer0 ViewModel/ JsonModel. FeedModel- %ConsoleModel, ViewEvent
+ View* Variables) Stream( 3HelperPluginManager' +IdentityFactory& 7FlashMessengerFactory% Registry$ Container# 1AbstractStandalone" /AbstractContainer! #AclListener  Sitemap 'PluginManager
 Menu Links #Breadcrumbs )AbstractHelper )AbstractHelper ViewModel	 Url ServerUrl 3RenderToPlaceholder -RenderChildModel #Placeholder #PartialLoop Partial /PaginationControl !Navigation Layout
 Json %InlineScript Identity 'HtmlQuicktime
 HtmlPage	 !HtmlObject HtmlList HtmlFlash HeadTitle HeadStyle !HeadScript HeadMeta HeadLink Gravatar  )FlashMessenger EscapeUrl~ EscapeJs} )EscapeHtmlAttr| !EscapeHtml{ EscapeCssz Doctypey #DeclareVarsx Cyclew BasePathv 3AbstractHtmlElementu )AbstractHelpert =UnexpectedValueExceptions -RuntimeExceptionr 9InvalidHelperExceptionq =InvalidArgumentExceptionp +DomainExceptiono 9BadMethodCallExceptionn Versionm Priority	l Lock Lastmodj !Changefreqi WordCounth !UploadFileg Upload
f Size
e Sha1d NotExistsc MimeType	b Md5a IsImage` %IsCompressed_ ImageSize   J a= kR1w[B!|eN1}iVD8$






u
T
<

							q	a	J	9	!	xbP9|o_PB0x[A  mW@&oS< nM4dI7$cJ  1 -RuntimeException0 =InvalidArgumentException/ 9BadMethodCallException. !TagManager- ThrowsTag, ReturnTag+ #PropertyTag* ParamTag) MethodTag( !LicenseTag' !GenericTag& AuthorTag% 1PropertyReflection$ 3ParameterReflection# -MethodReflection" 1FunctionReflection! )FileReflection  1DocBlockReflection +ClassReflection +NameInformation 7PrototypeClassFactory -RuntimeException =InvalidArgumentException !TagManager	 Tag ThrowsTag ReturnTag #PropertyTag ParamTag MethodTag !LicenseTag !GenericTag AuthorTag 3AbstractTypeableTag )ValueGenerator 3TraitUsageGenerator )TraitGenerator 9PropertyValueGenerator /PropertyGenerator
 1ParameterGenerator	 +MethodGenerator 7FileGeneratorRegistry 'FileGenerator /DocBlockGenerator )ClassGenerator 'BodyGenerator ;AbstractMemberGenerator /AbstractGenerator -RuntimeException  =InvalidArgumentException 9BadMethodCallException~ ;GenericAnnotationParser} =DoctrineAnnotationParser| /AnnotationManager{ 5AnnotationCollectionz -RuntimeExceptiony ;NoFontProvidedExceptionx =InvalidArgumentExceptionw ?ImageNotLoadableException!v CExtensionNotLoadedExceptionu +DomainExceptiont ReCaptchas Imager Figletq Factory
p Dumbo %AbstractWordn +AbstractAdapterm !Serializerl 'PluginOptionsk -OptimizeByFactorj +IgnoreUserAborti -ExceptionHandlerh 5ClearExpiredByFactorg )AbstractPluginf PostEvente 'PluginManagerd )ExceptionEventc Eventb %Capabilitiesa 5AdapterPluginManager` 'ZendServerShm_ )ZendServerDisk^ 'XCacheOptions] XCache\ +WinCacheOptions[ WinCacheZ )SessionOptionsY SessionX 5RedisResourceManagerW %RedisOptionsV RedisU 9MongoDbResourceManagerT )MongoDbOptionsS MongoDbR 'MemoryOptionsQ MemoryP ;MemcacheResourceManagerO +MemcacheOptionsN =MemcachedResourceManagerM -MemcachedOptionsL MemcachedK MemcacheJ +KeyListIteratorI /FilesystemOptionsH 1FilesystemIteratorG !FilesystemF !DbaOptionsE #DbaIterator	D DbaC BlackHoleB !ApcOptionsA #ApcIterator	@ Apc? )AdapterOptions> 1AbstractZendServer= +AbstractAdapter< 3StorageCacheFactory(; QStorageCacheAbstractServiceFactory: )StorageFactory9 5PatternPluginManager8 )PatternFactory7 )PatternOptions6 #OutputCache5 #ObjectCache4 !ClassCache3 %CaptureCache2 'CallbackCache1 +AbstractPattern$0 IUnsupportedMethodCallException/ =UnexpectedValueException. -RuntimeException- 3OutOfSpaceException, 3MissingKeyException + AMissingDependencyException* )LogicException) =InvalidArgumentException!( CExtensionNotLoadedException' 9BadMethodCallException& =UnexpectedValueException% -RuntimeException$ 3OutOfRangeException# =InvalidArgumentException	" Svg	! Pdf  Image -AbstractRenderer -RuntimeException 3OutOfRangeException =InvalidArgumentException! CExtensionNotLoadedException  ABarcodeValidationException
 Upce
 Upca Royalmail Postnet Planet Leitcode Itf14 Identcode   t |`G/bSC'v_RF9"	t^PC1 pcRB5&






|
[
B
!
								n	X	L	9	%		 }`N@0
paR@-|cJ7)vI+|jYB!p\F3n\;"t          b 1AbstractExpressiona !FeatureSet` +AbstractFeature_ -RuntimeException ^ =InvalidArgumentException ] !RowGateway\ 1AbstractRowGateway[ -RuntimeExceptionZ =InvalidArgumentExceptionY ResultSetX 1HydratingResultSetW /AbstractResultSetV /SqlServerMetadataU )SqliteMetadataT 1PostgresqlMetadataS )OracleMetadataR 'MysqlMetadataQ )AbstractSourceP !ViewObjectO 'TriggerObjectN #TableObjectM -ConstraintObjectL 3ConstraintKeyObjectK %ColumnObjectJ 3AbstractTableObjectI MetadataH =UnexpectedValueExceptionG -RuntimeExceptionF =InvalidArgumentExceptionE )ErrorExceptionD ProfilerC SqlServerB SqliteA Sql92@ !Postgresql? Oracle> Mysql= IbmDb2< -AbstractPlatform; =UnexpectedValueException: -RuntimeException9 7InvalidQueryException*8 UInvalidConnectionParametersException7 =InvalidArgumentException6 )ErrorException5 )ErrorException4 Statement3 Sqlsrv2 Result1 !Connection0 Statement/ Result. Pgsql- !Connection, -SqliteRowCounter+ -OracleRowCounter* Statement) Result	( Pdo' !Connection& Statement% Result
$ Oci8# !Connection" Statement! Result  Mysqli !Connection Statement Result IbmDb2 !Connection +AbstractFeature 1AbstractConnection 1StatementContainer 1ParameterContainer 7AdapterServiceFactory# GAdapterAbstractServiceFactory Adapter Pkcs7 NoPadding 5PaddingPluginManager Mcrypt -RuntimeException =InvalidArgumentException -RuntimeException =InvalidArgumentException PublicKey
 !PrivateKey	 #AbstractKey !RsaOptions	 Rsa 'DiffieHellman -RuntimeException =InvalidArgumentException BcryptSha Bcrypt Apache  Scrypt SaltedS2k~ Pbkdf2} -RuntimeException| =InvalidArgumentException{ -RuntimeExceptionz =InvalidArgumentExceptiony Utilsx 9SymmetricPluginManager
w Hmac
v Hashu !FileCiphert #BlockCiphers 3DefaultRouteMatcherr Selectq Passwordp Number
o Linen Confirmm Checkbox
l Chark )AbstractPromptj -RuntimeExceptioni =InvalidArgumentExceptionh 9BadMethodCallExceptiong Responsef Requeste Getoptd Consolec Xterm256b Utf8Heavy
a Utf8` DECSG_ 'AsciiExtended^ Ascii] )WindowsAnsicon\ Windows[ VirtualZ PosixY +AbstractAdapter
X Yaml	W XmlV PhpArray
U Json	T IniS )AbstractWriter
R Yaml	Q Xml
P JsonO )JavaProperties	N IniM !TranslatorL TokenK QueueJ FilterI ConstantH -RuntimeExceptionG =InvalidArgumentExceptionF 3WriterPluginManagerE 3ReaderPluginManagerD FactoryC ConfigB 7AbstractConfigFactoryA %ValueScanner
@ Util? /TokenArrayScanner> +PropertyScanner= -ParameterScanner< 'MethodScanner; +FunctionScanner: #FileScanner9 +DocBlockScanner8 -DirectoryScanner7 3DerivedClassScanner6 +ConstantScanner5 %ClassScanner4 1CachingFileScanner3 /AnnotationScanner2 ?AggregateDirectoryScanner   n ~n_S;,ufYI<- gYF3!rV9+weVI9+






w
_
J
7
							~	g	\	D	-			lTC3kJ1|n]O0tY>#xW>%vaP:%}n]J4'|n             Entry/
 Feed. Entry. %AbstractFeed- 'AbstractEntry-
 -RuntimeException,	 =InvalidArgumentException, 9BadMethodCallException,	 Rss+
 Atom+ 'AbstractEntry+ !Collection* Category* Author* 1AbstractCollection*   AStandaloneExtensionManager) Reader)~ FeedSet)} 9ExtensionPluginManager)| -ExtensionManager){ !Collection)z %AbstractFeed)y 'AbstractEntry)x Callback(w %Subscription'v 'AbstractModel'u -RuntimeException&t =InvalidArgumentException&s Version%r !Subscriber%q %PubSubHubbub%p Publisher%o %HttpResponse%n -AbstractCallback%m -RuntimeException$l =InvalidArgumentException$k 9BadMethodCallException$j )FilterIterator#i =InvalidCallbackException"h =InvalidArgumentException"g +DomainException"f 1StaticEventManager!e 1SharedEventManager!d 1ResponseCollection!c 1GlobalEventManager!b #FilterChain!a %EventManager!` Event!_ ?AbstractListenerAggregate!^ -RuntimeException ] =InvalidArgumentException \ Escaper[ -RuntimeExceptionZ 9BadMethodCallExceptionY QueryX NodeListW QueryV NodeListU DOMXPathT DocumentS Css2XpathR /GeneratorInstanceQ GeneratorP ;DependencyInjectorProxy!O CUndefinedReferenceExceptionN -RuntimeExceptionM =MissingPropertyExceptionL =InvalidPositionExceptionK ?InvalidParamNameExceptionJ =InvalidCallbackExceptionI =InvalidArgumentExceptionH 9ClassNotFoundException!G CCircularDependencyExceptionF ConsoleE PhpClassD +InjectionMethodC /RuntimeDefinitionB 7IntrospectionStrategyA 1CompilerDefinition@ +ClassDefinition? /BuilderDefinition> +ArrayDefinition= %Instantiator< Inject; )ServiceLocator: +InstanceManager9 Di8 )DefinitionList7 Config6 Debug5 /TableGatewayEvent4 +SequenceFeature3 /RowGatewayFeature2 +MetadataFeature1 1MasterSlaveFeature0 5GlobalAdapterFeature/ !FeatureSet. %EventFeature- +AbstractFeature, -RuntimeException+ =InvalidArgumentException* %TableGateway) 5AbstractTableGateway( %PredicateSet' Predicate& Operator% NotLike$ NotIn# Literal
" Like! IsNull  IsNotNull In !Expression Between SqlServer +SelectDecorator 5CreateTableDecorator +SelectDecorator Oracle +SelectDecorator Mysql 5CreateTableDecorator
 3AlterTableDecorator
 +SelectDecorator	 IbmDb2	 Platform -AbstractPlatform -RuntimeException =InvalidArgumentException Index 'AbstractIndex UniqueKey
 !PrimaryKey	 !ForeignKey Check 1AbstractConstraint Varchar Varbinary Timestamp
 Time
 Text Integer  Floating Float~ Decimal} Datetime
| Date{ Column
z Chary Boolean
x Blobw Binaryv !BigIntegeru ;AbstractTimestampColumnt ;AbstractPrecisionColumns 5AbstractLengthColumnr DropTableq #CreateTablep !AlterTableo Wheren Updatem +TableIdentifier	l Sqlk Selectj Literali Inserth Havingg !Expressionf Deletee Combined #AbstractSqlc 7AbstractPreparableSql    xcVJ;/
uV5{mTD7#eD+kRA$







s
Y
B
/


							}	p	\	K	6	 	
tOC8, zY@0 kS;"{\8~kT<sfWG6)pZC5(          J SelectWI RangeWH RadioWG PasswordWF NumberWE 'MultiCheckboxWD #MonthSelectWC MonthWB ImageWA HiddenW
@ FileW? EmailW> )DateTimeSelectW= 'DateTimeLocalW< DateTimeW; !DateSelectW
: DateW
9 CsrfW8 ColorW7 !CollectionW6 CheckboxW5 CaptchaW4 ButtonW3 ValidatorV2 +ValidationGroupV
1 TypeV0 RequiredV/ OptionsV. ObjectV
- NameV, InstanceV+ #InputFilterV* InputV) HydratorV( ;FormAnnotationsListenerV' FlagsV& FilterV% ExcludeV$ %ErrorMessageV # AElementAnnotationsListenerV" +ContinueIfEmptyV! )ComposedObjectV  !AttributesV /AnnotationBuilderV !AllowEmptyV =AbstractStringAnnotationV% KAbstractArrayOrStringAnnotationV ;AbstractArrayAnnotationV! CAbstractAnnotationsListenerV! CSeparatorToSeparatorFactoryU 9UnderscoreToStudlyCaseT 7UnderscoreToSeparatorT -UnderscoreToDashT 7UnderscoreToCamelCaseT 5SeparatorToSeparatorT +SeparatorToDashT 5SeparatorToCamelCaseT -DashToUnderscoreT +DashToSeparatorT +DashToCamelCaseT 7CamelCaseToUnderscoreT 5CamelCaseToSeparatorT +CamelCaseToDashT /AbstractSeparatorT
 UpperCaseS	 %RenameUploadS RenameS LowerCaseS EncryptS DecryptS -RuntimeExceptionR =InvalidArgumentExceptionR! CExtensionNotLoadedExceptionR +DomainExceptionR  9BadMethodCallExceptionR OpensslQ~ #BlockCipherQ	} ZipP	| TarP{ SnappyP	z RarP	y LzfPx GzP	w Bz2P"v EAbstractCompressionAlgorithmPu WhitelistOt %UriNormalizeOs )UpperCaseWordsOr ToNullOq ToIntOp StripTagsOo 'StripNewlinesOn !StringTrimOm 'StringToUpperOl 'StringToLowerOk %StaticFilterOj RealPathOi #PregReplaceO
h NullOg #MonthSelectO	f IntOe InflectorOd %HtmlEntitiesOc 3FilterPluginManagerOb #FilterChainOa EncryptO	` DirO_ DigitsO^ DecryptO] !DecompressO\ )DateTimeSelectO[ /DateTimeFormatterOZ !DateSelectOY /DataUnitFormatterOX CompressOW CallbackOV BooleanOU BlacklistOT BaseNameOS +AbstractUnicodeOR )AbstractFilterOQ 5AbstractDateDropdownOP TransferNO -RuntimeExceptionMN ;PhpEnvironmentExceptionMM =InvalidArgumentExceptionML 9BadMethodCallExceptionMK 9ValidatorPluginManagerL
J HttpLI 3FilterPluginManagerLH +AbstractAdapterLG -RuntimeExceptionKF =InvalidArgumentExceptionKE 9BadMethodCallExceptionKD %PhpClassFileJC -ClassFileLocatorJB SourceIA %AbstractAtomI	@ RssH? !AtomSourceH
> AtomH= %AbstractAtomH	< RssG; #AtomDeletedG
: AtomG9 DeletedF8 -AbstractRendererE7 EntryD6 EntryC5 EntryB
4 FeedA3 EntryA
2 Feed@1 Entry@
0 Feed?/ Entry?. Entry>
- Feed=, -AbstractRenderer<+ -RuntimeException;* =InvalidArgumentException;) 9BadMethodCallException;( Writer:' Version:& Source:% #FeedFactory:
$ Feed:# 9ExtensionPluginManager:" -ExtensionManager:! Entry:  Deleted: %AbstractFeed:	 Uri9 Source8	 Rss7
 Atom7 %AbstractFeed7 Entry6 Entry5
 Feed4 Entry3
 Feed2 Entry2
 Feed1 Entry1
 Feed0 Entry0    |oL1qP9,pUA'wdO=+	yhSF7)






k
[
F
6
&

							h	O	.	w^O9"hP8"
tgXH;%
p_K<-{bR@3'gO.mV?&                        { PhpArrayj	z Inijy Gettextjx 1AbstractFileLoaderjw #NumberParseiv %NumberFormatiu Alphait Alnumis )AbstractLocaleir -RuntimeExceptionhq )RangeExceptionhp )ParseExceptionho 5OutOfBoundsExceptionhn =InvalidArgumentExceptionh!m CExtensionNotLoadedExceptionhl Streamgk Responsefj Requestfi 'RemoteAddressfh -RuntimeExceptioneg =InvalidArgumentExceptionef +DomainExceptionee 9LanguageFieldValuePartdd 9EncodingFieldValuePartdc 7CharsetFieldValuePartdb 5AcceptFieldValuePartda 9AbstractFieldValuePartd` +WWWAuthenticatec_ Warningc	^ Viac
] Varyc\ UserAgentc[ UpgradecZ -TransferEncodingcY TrailercX TEcW SetCookiecV ServercU !RetryAftercT RefreshcS ReferercR RangecQ 1ProxyAuthorizationcP /ProxyAuthenticatecO PragmacN OrigincM #MaxForwardscL LocationcK %LastModifiedcJ KeepAlivecI /IfUnmodifiedSincecH IfRangecG #IfNoneMatchcF +IfModifiedSincecE IfMatchc
D HostcC 1GenericMultiHeadercB 'GenericHeaderc
A Fromc@ Expiresc? Expectc
> Etagc
= Datec< Cookiec; #ContentTypec: ;ContentTransferEncodingc9 7ContentSecurityPolicyc8 %ContentRangec7 !ContentMD5c6 +ContentLocationc5 'ContentLengthc4 +ContentLanguagec3 +ContentEncodingc2 1ContentDispositionc1 !Connectionc0 %CacheControlc/ 'Authorizationc. 1AuthenticationInfoc- Allowc	, Agec+ %AcceptRangesc* )AcceptLanguagec) )AcceptEncodingc( 'AcceptCharsetc' Acceptc& -AbstractLocationc% %AbstractDatec$ )AbstractAcceptc# -RuntimeExceptionb" 3OutOfRangeExceptionb! =InvalidArgumentExceptionb  -RuntimeExceptiona 3OutOfRangeExceptiona =InvalidArgumentExceptiona -TimeoutException` -RuntimeException` 3OutOfRangeException` =InvalidArgumentException` ;InitializationException`
 Test_ Socket_ Proxy_
 Curl_ Response^ Request^ Headers^ %HeaderLoader^ Cookies^ %ClientStatic^ Client^ +AbstractMessage^ %HelperConfig] 9FormFileUploadProgress\
 ;FormFileSessionProgress\	 3FormFileApcProgress\ ReCaptcha[ Image[ Figlet[
 Dumb[ %AbstractWord[ FormWeekZ FormUrlZ FormTimeZ  %FormTextareaZ FormTextZ~ FormTelZ} !FormSubmitZ| !FormSelectZ{ !FormSearchZz FormRowZy FormResetZx FormRangeZw FormRadioZv %FormPasswordZu !FormNumberZt /FormMultiCheckboxZs +FormMonthSelectZr FormMonthZq FormLabelZp FormInputZo FormImageZn !FormHiddenZm FormFileZl FormEmailZk /FormElementErrorsZj #FormElementZi 1FormDateTimeSelectZh /FormDateTimeLocalZg %FormDateTimeZf )FormDateSelectZe FormDateZd FormColorZc )FormCollectionZb %FormCheckboxZa #FormCaptchaZ` !FormButtonZ
_ FormZ^ )AbstractHelperZ] =UnexpectedValueExceptionY\ ;InvalidElementExceptionY[ =InvalidArgumentExceptionY!Z CExtensionNotLoadedExceptionYY +DomainExceptionYX 9BadMethodCallExceptionY!W CInputFilterProviderFieldsetXV 1FormElementManagerX U AFormAbstractServiceFactoryX
T FormXS FieldsetXR FactoryXQ ElementX
P WeekW	O UrlW
N TimeWM TextareaW
L TextWK SubmitW   r wj[M?. qbP8#lK*|cUF8({kYF;,





l
K
5

 							{	f	M	:	*		x`O5tW-vgP>,uX9~nOB5%wgP@!	_K>1 r    . Subject- Sender, ReplyTo+ Received* #MimeVersion) MessageId( !HeaderWrap' %HeaderLoader& 1GenericMultiHeader% 'GenericHeader
$ From
# Date" #ContentType! ;ContentTransferEncoding  Cc	 Bcc 3AbstractAddressList -RuntimeException 5OutOfBoundsException =InvalidArgumentException +DomainException 9BadMethodCallException Storage )MessageFactory Message Headers #AddressList Address 'FirePhpBridge +ChromePhpBridge #ZendMonitor Syslog Stream
 Null
 Noop MongoDB

 Mock
	 Mail 9FormatterPluginManager FirePhp )FingersCrossed 3FilterPluginManager Db ChromePhp )AbstractWriter RequestId  #ReferenceId Backtrace~ 3WriterPluginManager} 9ProcessorPluginManager| 5LoggerServiceFactory"{ ELoggerAbstractServiceFactoryz Logger	y Xmlx Simplew FirePhpv -ExceptionHandleru %ErrorHandlert Dbs ChromePhp
r Baseq Validatorp Timestampo )SuppressFiltern Samplem Regexl Priority
k Mockj -RuntimeExceptioni =InvalidArgumentExceptionh /SecurityExceptiong -RuntimeExceptionf 7PluginLoaderException'e OMissingResourceNamespaceExceptiond 5InvalidPathExceptionc =InvalidArgumentExceptionb +DomainExceptiona 9BadMethodCallException` 1StandardAutoloader_ /PluginClassLoader^ -ModuleAutoloader] 1ClassMapAutoloader\ /AutoloaderFactory[ OpenLdapZ +ActiveDirectoryY OpenLdapX +ActiveDirectoryW OpenLdapV +ActiveDirectoryU %AbstractItemT OpenLdapS !eDirectoryR +ActiveDirectoryQ SchemaP RootDseO !CollectionN -ChildrenIteratorM %AbstractNodeL EncoderK +FilterExceptionJ %StringFilter~I OrFilter~H NotFilter~G !MaskFilter~F AndFilter~E 7AbstractLogicalFilter~D )AbstractFilter~C 'LdapException}B =InvalidArgumentException}A 9BadMethodCallException}@ =UnexpectedValueException|? =InvalidArgumentException|> 1ConverterException|= Converter{< +DefaultIteratorz
; Nodey
: Ldapy9 Filtery8 Dny7 !Collectiony6 Attributey5 Servicex
4 Httpw
3 Httpv2 -RuntimeExceptionu1 =InvalidArgumentExceptionu0 'HttpExceptionu/ )ErrorExceptionu	. Smdt- Servert, Responset+ Requestt* Errort) Clientt( Cachet' -RuntimeExceptions& 1RecursionExceptions% =InvalidArgumentExceptions$ 9BadMethodCallExceptions
# Jsonr
" Exprr! Encoderr  Decoderr -RuntimeExceptionq =InvalidArgumentExceptionq =InputFilterPluginManagerp' OInputFilterAbstractServiceFactoryp #InputFilterp Inputp FileInputp Factoryp 7CollectionInputFilterp +BaseInputFilterp !ArrayInputp %HelperConfigo +TranslatePluraln Translaten Pluraln %NumberFormatn !DateFormatn )CurrencyFormatn =AbstractTranslatorHelpern PostCodem #PhoneNumberm
 IsIntm	 IsFloatm	 Intm Floatm DateTimem Alpham Alnumm Symboll
 Rulel Parserl  =TranslatorServiceFactoryk !Translatork~ !TextDomaink} 3LoaderPluginManagerk| )PhpMemoryArrayj   m vi\B!{na@#
xh[G6)mZ: t[L<







k
J
!
						p	L	$	zfP<#eJ(z^G7&mL)
iN)fXG7(jW<#m                                   O ;ControllerLoaderFactoryN ?ConsoleViewManagerFactoryM 7ConsoleAdapterFactoryL 'ConfigFactoryK 1ApplicationFactory"J EAbstractPluginManagerFactoryI -SimpleRouteStackH 1RoutePluginManagerG !RouteMatchF %PriorityListE WildcardD )TreeRouteStack#C GTranslatorAwareTreeRouteStackB SegmentA Scheme@ !RouteMatch? Regex> Query
= Part< Method; Literal: Hostname9 Chain8 -RuntimeException7 =InvalidArgumentException6 -SimpleRouteStack5 Simple4 !RouteMatch3 Catchall 2 ASimpleStreamResponseSender1 /SendResponseEvent"0 EPhpEnvironmentResponseSender/ 1HttpResponseSender. 7ConsoleResponseSender- 9AbstractResponseSender, !Translator+ +DummyTranslator* -RuntimeException) ;MissingLocatorException( 9InvalidPluginException ' AInvalidControllerException& =InvalidArgumentException% +DomainException$ 9BadMethodCallException# +IdentityFactory" )ForwardFactory	! Url  Redirect +PostRedirectGet Params Layout Identity Forward )FlashMessenger 3FilePostRedirectGet ;CreateHttpNotFoundModel  ACreateConsoleNotFoundModel! CAcceptableViewModelSelector )AbstractPlugin 'PluginManager /ControllerManager ?AbstractRestfulController 1AbstractController ?AbstractConsoleController =AbstractActionController 5SendResponseListener 'RouteListener MvcEvent 3ModuleRouteListener
 1HttpMethodListener	 -DispatchListener #Application 'ModuleManager #ModuleEvent -RuntimeException =InvalidArgumentException +ServiceListener 3OnBootstrapListener 9ModuleResolverListener  5ModuleLoaderListener% KModuleDependencyCheckerListener!~ CLocatorRegistrationListener} +ListenerOptions| #InitTrigger{ =DefaultListenerAggregatez )ConfigListenery 1AutoloaderListenerx -AbstractListenerw -RuntimeException&v MMissingDependencyModuleExceptionu =InvalidArgumentExceptiont -RuntimeExceptions =InvalidArgumentException
r Part
q Mimep Messageo Decoden Valuem 'MemoryManagerl -RuntimeExceptionk =InvalidArgumentExceptionj Movablei Lockedh -AccessControllerg /AbstractContainerf !HashTiming
e Randd -RuntimeExceptionc =InvalidArgumentExceptionb +DomainExceptiona -RuntimeException` =InvalidArgumentException_ ;DivisionByZeroException^ !BigInteger] 5AdapterPluginManager	\ Gmp[ BcmathZ -RuntimeExceptionY =InvalidArgumentExceptionX +DomainExceptionW #SmtpOptions
V SmtpU Sendmail
T NullS InMemoryR #FileOptions
Q FileP FactoryO EnvelopeN Maildir
M FileL -RuntimeExceptionK =InvalidArgumentException
J File
I MboxH MaildirG -RuntimeExceptionF 5OutOfBoundsExceptionE =InvalidArgumentException
D Pop3
C PartB Message
A Mbox@ Maildir
? Imap> Folder= +AbstractStorage< Plain; Login: Crammd59 -RuntimeException8 =InvalidArgumentException7 /SmtpPluginManager
6 Smtp
5 Pop3
4 Imap3 -AbstractProtocol2 -RuntimeException1 =InvalidArgumentException0 9BadMethodCallException/ To   " {T&
eF xaI'_?|U0




n
Z
:
					{	g	J	0	{Y4viX7pV2ymR9mXK>$bF&iXK7'\;"\ -RuntimeException[ =InvalidArgumentException!Z CExtensionNotLoadedExceptionY !SerializerX 5AdapterPluginManagerW #WddxOptions
V WddxU 3PythonPickleOptionsT %PythonPickleS %PhpSerializeR PhpCodeQ MsgPackP #JsonOptions
O JsonN IgBinaryM )AdapterOptionsL +AbstractAdapterK )UploadProgressJ +SessionProgressI #ApcProgressH 7AbstractUploadHandlerG #ProgressBarF -RuntimeExceptionE ;PhpEnvironmentExceptionD 3OutOfRangeExceptionC =InvalidArgumentExceptionB -RuntimeExceptionA =InvalidArgumentException@ JsPush? JsPull> Console= +AbstractAdapter< =InvalidArgumentException; /CallbackAssertion
: Role
9 Rbac8 %AbstractRole7 -AbstractIterator6 Registry5 #GenericRole4 +GenericResource3 -RuntimeException2 =InvalidArgumentException1 ?InvalidAssertionException0 /CallbackAssertion/ -AssertionManager. 1AssertionAggregate	- Acl, Sliding+ Jumping* Elastic	) All( =UnexpectedValueException' -RuntimeException& =InvalidArgumentException% ?SerializableLimitIterator!$ CScrollingStylePluginManager# /PaginatorIterator" Paginator! Factory  5AdapterPluginManager 7DbTableGatewayFactory +DbSelectFactory +CallbackFactory =UnexpectedValueException -RuntimeException =InvalidArgumentException NullFill
 Null Iterator )DbTableGateway DbSelect Callback %ArrayAdapter %HelperConfig& MNavigationAbstractServiceFactory =DefaultNavigationFactory" EConstructedNavigationFactory ?AbstractNavigationFactory	 Uri	 Mvc %AbstractPage
 5OutOfBoundsException	 =InvalidArgumentException +DomainException 9BadMethodCallException !Navigation /AbstractContainer 5SendResponseListener #ViewManager 7RouteNotFoundStrategy ;InjectViewModelListener  9InjectTemplateListener$ IInjectRoutematchParamsListener~ /ExceptionStrategy} =DefaultRenderingStrategy| ;CreateViewModelListener{ #ViewManagerz 7RouteNotFoundStrategyy ;InjectViewModelListener&x MInjectNamedConsoleParamsListenerw /ExceptionStrategyv =DefaultRenderingStrategyu ;CreateViewModelListener"t EViewTemplatePathStackFactory$s IViewTemplateMapResolverFactoryr 3ViewResolverFactory(q QViewPrefixPathStackResolverFactoryp 1ViewManagerFactoryo ;ViewJsonStrategyFactoryn =ViewHelperManagerFactorym ;ViewFeedStrategyFactoryl ;ValidatorManagerFactoryk =TranslatorServiceFactory$j ITranslatorPluginManagerFactoryi 5ServiceManagerConfigh 9ServiceListenerFactory+g WSerializerAdapterPluginManagerFactoryf 'RouterFactorye ?RoutePluginManagerFactoryd +ResponseFactoryc )RequestFactory#b GPaginatorPluginManagerFactorya 5ModuleManagerFactory` ;LogWriterManagerFactory _ ALogProcessorManagerFactory^ ?InputFilterManagerFactory#] GInjectTemplateListenerFactory\ 9HydratorManagerFactory[ 9HttpViewManagerFactoryZ ?HttpMethodListenerFactoryY ?FormElementManagerFactory"X EFormAnnotationBuilderFactoryW 5FilterManagerFactoryV 3EventManagerFactory+U WDiStrictAbstractServiceFactoryFactory$T IDiStrictAbstractServiceFactory!S CDiServiceInitializerFactoryR DiFactory%Q KDiAbstractServiceFactoryFactory$P IControllerPluginManagerFactory   M u\K8&tV7y`CtQ0kT5






i
L
.
							r	V	A	2	#		mL-	}iVC+p_N:#nW>+q^D/zY:nV>!{aM                   u #AbstractTagt /AbstractDecorators 'AbstractCloudr Nativeq MbString
p Intlo Iconvn 7AbstractStringWrapperm =InvalidArgumentExceptionl 'StrategyChaink 5SerializableStrategyj +ExplodeStrategyi +DefaultStrategyh ?DateTimeFormatterStrategyg +ClosureStrategyf +BooleanStrategye =UnderscoreNamingStrategyd /MapNamingStrategyc 9IdentityNamingStrategyb ;CompositeNamingStrategya 9ArrayMapNamingStrategy` =OptionalParametersFilter_ ;NumberOfParameterFilter^ /MethodMatchFilter] IsFilter\ HasFilter[ GetFilterZ +FilterCompositeY -HydratorListenerX %HydrateEventW %ExtractEventV /AggregateHydratorU !ReflectionT )ObjectPropertyS 7HydratorPluginManagerR ?DelegatingHydratorFactoryQ 1DelegatingHydratorP %ClassMethodsO /ArraySerializableN -AbstractHydratorM !GuardUtilsL -RuntimeExceptionK )LogicExceptionJ =InvalidCallbackExceptionI =InvalidArgumentException!H CExtensionNotLoadedExceptionG +DomainExceptionF 9BadMethodCallExceptionE +MergeReplaceKeyD )MergeRemoveKeyC #StringUtilsB SplStackA SplQueue@ -SplPriorityQueue? Response> Request= 'PriorityQueue< %PriorityList; !Parameters: Message
9 Glob8 %ErrorHandler7 DateTime6 +CallbackHandler5 !ArrayUtils4 !ArrayStack3 #ArrayObject2 +AbstractOptions1 1DefaultComplexType0 Composite/ 3ArrayOfTypeSequence. 1ArrayOfTypeComplex- AnyType!, CAbstractComplexTypeStrategy+ 9DocumentLiteralWrapper* =UnexpectedValueException) -RuntimeException( =InvalidArgumentException!' CExtensionNotLoadedException& 9BadMethodCallException% Local$ DotNet# Common
" Wsdl! Server  Client %AutoDiscover 3ReflectionDiscovery !RemoteAddr 'HttpUserAgent )SessionStorage 3SessionArrayStorage Factory %ArrayStorage! CAbstractSessionArrayStorage )StorageFactory 7SessionManagerFactory 5SessionConfigFactory% KContainerAbstractServiceFactory )MongoDBOptions MongoDB 7DbTableGatewayOptions )DbTableGateway Cache -RuntimeException =InvalidArgumentException 9BadMethodCallException
 )StandardConfig	 'SessionConfig )ValidatorChain )SessionManager Container +AbstractManager /AbstractContainer ?LazyServiceFactoryFactory 1LazyServiceFactory =ServiceNotFoundException   AServiceNotCreatedException" EServiceLocatorUsageException~ -RuntimeException!} CInvalidServiceNameException| =InvalidArgumentException { ACircularReferenceException&z MCircularDependencyFoundExceptiony 5DiServiceInitializerx -DiServiceFactoryw 9DiInstanceManagerProxyv =DiAbstractServiceFactoryu )ServiceManagert Configs 7AbstractPluginManagerr -RuntimeExceptionq =InvalidArgumentExceptionp 9BadMethodCallExceptiono 7ReflectionReturnValuen 3ReflectionParameterm -ReflectionMethodl 1ReflectionFunctionk +ReflectionClassj Prototype
i Nodeh -AbstractFunctiong Prototypef Parametere !Definitiond Callbackc -RuntimeExceptionb =InvalidArgumentExceptiona 9BadMethodCallException` !Reflection_ !Definition^ Cache] )AbstractServer   } rQ+va@#	teSD+kJ){k[J7*








x
m
`
K
:
)

							v	f	V	G	-		}n_M5(	xeR?(pbT;#}pcTA/ hO.|kYB1 {kZE8)}   . ServerUrl- 3RenderToPlaceholder, -RenderChildModel+ #Placeholder* #PartialLoop) Partial( /PaginationControl' !Navigation& Layout
% Json$ %InlineScript# Identity" HtmlTag! 'HtmlQuicktime  HtmlPage !HtmlObject HtmlList HtmlFlash HeadTitle HeadStyle !HeadScript HeadMeta HeadLink Gravatar )FlashMessenger EscapeUrl EscapeJs )EscapeHtmlAttr !EscapeHtml EscapeCss Doctype #DeclareVars Cycle BasePath 3AbstractHtmlElement )AbstractHelper
 =UnexpectedValueException	 -RuntimeException 9InvalidHelperException =InvalidArgumentException +DomainException 9BadMethodCallException Version Priority	 Loc Lastmod  !Changefreq WordCount~ !UploadFile} Upload
| Size
{ Sha1z NotExistsy MimeType	x Md5w IsImagev %IsCompressedu ImageSize
t Hashs FilesSizer Extensionq Existsp +ExcludeMimeTypeo -ExcludeExtensionn Crc32m Countl -RuntimeException#k GInvalidMagicMimeFileExceptionj =InvalidArgumentException!i CExtensionNotLoadedExceptionh 9BadMethodCallExceptiong %RecordExistsf )NoRecordExistse !AbstractDbd !MyBarcode5c !MyBarcode4b !MyBarcode3a !MyBarcode2` !MyBarcode1
_ Upce
^ Upca
] Sscc\ Royalmail[ PostnetZ PlanetY LeitcodeX Itf14
W IssnV +IntelligentmailU IdentcodeT Gtin14S Gtin13R Gtin12
Q Ean8
P Ean5
O Ean2N Ean18M Ean14L Ean13K Ean12J Code93extI Code93H Code39extG Code39F /Code25interleavedE Code25D Code128C CodabarB +AbstractAdapterA 9ValidatorPluginManager@ )ValidatorChain	? Uri> Timezone= %StringLength
< Step; +StaticValidator: Regex9 NotEmpty8 LessThan7 %IsInstanceOf
6 Isbn5 Ip4 InArray3 Identical
2 Iban1 Hostname	0 Hex/ #GreaterThan. Explode- %EmailAddress, Digits+ DateStep
* Date
) Csrf( !CreditCard' Callback& Bitwise% Between$ Barcode# /AbstractValidator" !UriFactory
	! Uri
  Mailto

 Http

 File
 ;InvalidUriPartException	 3InvalidUriException	 =InvalidArgumentException	 =UnexpectedValueException /OverflowException 5OutOfBoundsException ?InvalidDecoratorException =InvalidArgumentException Unicode Blank Ascii Table	 Row -DecoratorManager Column MultiByte Figlet =UnexpectedValueException -RuntimeException
 =InvalidArgumentException	 =UnexpectedValueException -RuntimeException /OverflowException 5OutOfBoundsException =InvalidArgumentException %ModuleLoader$ IAbstractHttpControllerTestCase   AAbstractControllerTestCase ' OAbstractConsoleControllerTestCase   5OutOfBoundsException! CInvalidElementNameException#~ GInvalidAttributeNameException} =InvalidArgumentException| ItemList
{ Itemz Cloudy 9DecoratorPluginManagerx =InvalidArgumentExceptionw HtmlTagv HtmlCloud   ^ o_K1saL:(eI/oY=zcI5#






w
\
E
2
#

 									o	`	S	F	.	zYB-k]G7 w^=&ykZK;)rYK?3yXAmWB/z^        U 3StorageCacheFactoryB(T QStorageCacheAbstractServiceFactoryBS )StorageFactoryAR 5PatternPluginManagerAQ )PatternFactoryAP )PatternOptions@O #OutputCache@N #ObjectCache@M !ClassCache@L %CaptureCache@K 'CallbackCache@J +AbstractPattern@$I IUnsupportedMethodCallException?H =UnexpectedValueException?G -RuntimeException?F 3OutOfSpaceException?E 3MissingKeyException? D AMissingDependencyException?C )LogicException?B =InvalidArgumentException?!A CExtensionNotLoadedException?@ 9BadMethodCallException?? =UnexpectedValueException>> -RuntimeException>= 3OutOfRangeException>< =InvalidArgumentException>	; Svg=	: Pdf=9 Image=8 -AbstractRenderer=7 -RuntimeException<6 3OutOfRangeException<5 =InvalidArgumentException<!4 CExtensionNotLoadedException< 3 ABarcodeValidationException<
2 Upce;
1 Upca;0 Royalmail;/ Postnet;. Planet;- Leitcode;, Itf14;+ Identcode;* Error;
) Ean8;
( Ean5;
' Ean2;& Ean13;% Code39;$ /Code25interleaved;# Code25;" Code128;! Codabar;  )AbstractObject; =UnexpectedValueException: -RuntimeException: ?RendererCreationException: 3OutOfRangeException: =InvalidArgumentException: 7RendererPluginManager9 3ObjectPluginManager9 Barcode9 )Authentication8 Session7 'NonPersistent7 Chain7 =UnexpectedValueException6 -RuntimeException6 =InvalidArgumentException6 Result5 7AuthenticationService5 -RuntimeException4 =InvalidArgumentException4 %FileResolver3 )ApacheResolver3
 =UnexpectedValueException2	 -RuntimeException2 =InvalidArgumentException2 -RuntimeException1 =InvalidArgumentException1  ACredentialTreatmentAdapter0 5CallbackCheckAdapter0 +AbstractAdapter0
 Ldap/
 Http/  Digest/ DbTable/~ Callback/} +AbstractAdapter/
| Text({ Struct(	z Nil(y Integer(x Double(w DateTime(v Boolean(u !BigInteger(t Base64(s !ArrayValue(r )AbstractScalar(q 1AbstractCollection(p -RuntimeException'o =InvalidArgumentException'n 9BadMethodCallException'm System&l Fault&k Cache&
j Http%i Stdin$
h Http$g XmlWriter#f #DomDocument#e /AbstractGenerator#d )ValueException"c -RuntimeException"b =InvalidArgumentException"a 9BadMethodCallException"` #ServerProxy!_ 3ServerIntrospection!^ -RuntimeException ] =InvalidArgumentException \ 3IntrospectException [ 'HttpException Z )FaultException Y ServerX ResponseW RequestV FaultU ClientT 'AbstractValueS 3PhpRendererStrategyR %JsonStrategyQ %FeedStrategyP /TemplatePathStackO 3TemplateMapResolverN =RelativeFallbackResolverM ;PrefixPathStackResolverL /AggregateResolverK #PhpRendererJ %JsonRendererI %FeedRendererH +ConsoleRendererG ViewModelF JsonModelE FeedModelD %ConsoleModelC ViewEvent
B ViewA Variables@ Stream? 3HelperPluginManager> +IdentityFactory= 7FlashMessengerFactory< Registry; Container: 1AbstractStandalone9 /AbstractContainer8 #AclListener7 Sitemap6 'PluginManager
5 Menu4 Links3 #Breadcrumbs2 )AbstractHelper1 )AbstractHelper0 ViewModel	/ Url   h qeQ>+iI:$wfN?)}fI0}o]E!





n
M
-
						m	S	=		iM;(zaC+vdQ>,wU; zdK3aH7(ocV>0 xh             Request^~ Getopt^} Console^| Xterm256]{ Utf8Heavy\
z Utf8\y DECSG\x 'AsciiExtended\w Ascii\v )WindowsAnsicon[u Windows[t Virtual[s Posix[r +AbstractAdapter[
q YamlZ	p XmlZo PhpArrayZ
n JsonZ	m IniZl )AbstractWriterZ
k YamlY	j XmlY
i JsonYh )JavaPropertiesY	g IniYf !TranslatorXe TokenXd QueueXc FilterXb ConstantXa -RuntimeExceptionW` =InvalidArgumentExceptionW_ 3WriterPluginManagerV^ 3ReaderPluginManagerV] FactoryV\ ConfigV[ 7AbstractConfigFactoryVZ %ValueScannerU
Y UtilUX /TokenArrayScannerUW +PropertyScannerUV -ParameterScannerUU 'MethodScannerUT +FunctionScannerUS #FileScannerUR +DocBlockScannerUQ -DirectoryScannerUP 3DerivedClassScannerUO +ConstantScannerUN %ClassScannerUM 1CachingFileScannerUL /AnnotationScannerUK ?AggregateDirectoryScannerUJ -RuntimeExceptionTI =InvalidArgumentExceptionTH 9BadMethodCallExceptionTG !TagManagerSF ThrowsTagRE ReturnTagRD #PropertyTagRC ParamTagRB MethodTagRA !LicenseTagR@ !GenericTagR? AuthorTagR> 1PropertyReflectionQ= 3ParameterReflectionQ< -MethodReflectionQ; 1FunctionReflectionQ: )FileReflectionQ9 1DocBlockReflectionQ8 +ClassReflectionQ7 +NameInformationP6 7PrototypeClassFactoryO5 -RuntimeExceptionN4 =InvalidArgumentExceptionN3 !TagManagerM	2 TagM1 ThrowsTagL0 ReturnTagL/ #PropertyTagL. ParamTagL- MethodTagL, !LicenseTagL+ !GenericTagL* AuthorTagL) 3AbstractTypeableTagL( )ValueGeneratorK' 3TraitUsageGeneratorK& )TraitGeneratorK% 9PropertyValueGeneratorK$ /PropertyGeneratorK# 1ParameterGeneratorK" +MethodGeneratorK! 7FileGeneratorRegistryK  'FileGeneratorK /DocBlockGeneratorK )ClassGeneratorK 'BodyGeneratorK ;AbstractMemberGeneratorK /AbstractGeneratorK -RuntimeExceptionJ =InvalidArgumentExceptionJ 9BadMethodCallExceptionJ ;GenericAnnotationParserI =DoctrineAnnotationParserI /AnnotationManagerH 5AnnotationCollectionH -RuntimeExceptionG ;NoFontProvidedExceptionG =InvalidArgumentExceptionG ?ImageNotLoadableExceptionG! CExtensionNotLoadedExceptionG +DomainExceptionG ReCaptchaF ImageF FigletF
 FactoryF
	 DumbF %AbstractWordF +AbstractAdapterF !SerializerE 'PluginOptionsE -OptimizeByFactorE +IgnoreUserAbortE -ExceptionHandlerE 5ClearExpiredByFactorE  )AbstractPluginE PostEventD~ 'PluginManagerD} )ExceptionEventD| EventD{ %CapabilitiesDz 5AdapterPluginManagerDy 'ZendServerShmCx )ZendServerDiskCw 'XCacheOptionsCv XCacheCu +WinCacheOptionsCt WinCacheCs )SessionOptionsCr SessionCq 5RedisResourceManagerCp %RedisOptionsCo RedisCn 9MongoDbResourceManagerCm )MongoDbOptionsCl MongoDbCk 'MemoryOptionsCj MemoryCi ;MemcacheResourceManagerCh +MemcacheOptionsCg =MemcachedResourceManagerCf -MemcachedOptionsCe MemcachedCd MemcacheCc +KeyListIteratorCb /FilesystemOptionsCa 1FilesystemIteratorC` !FilesystemC_ !DbaOptionsC^ #DbaIteratorC	] DbaC\ BlackHoleC[ !ApcOptionsCZ #ApcIteratorC	Y ApcCX )AdapterOptionsCW 1AbstractZendServerCV +AbstractAdapterC   t raQD5$jQ0}g[H4!o]O?paO<-








x
_
F
3
%

							r	E	'	xfU>lXB/jX7pR>.{gU8oaP@3&{mL3	t      2 Oracle1 +SelectDecorator0 Mysql/ 5CreateTableDecorator. 3AlterTableDecorator- +SelectDecorator, IbmDb2+ Platform* -AbstractPlatform) -RuntimeException( =InvalidArgumentException' Index& 'AbstractIndex% UniqueKey$ !PrimaryKey# !ForeignKey" Check! 1AbstractConstraint  Varchar Varbinary Timestamp
 Time
 Text Integer Floating Float Decimal Datetime
 Date Column
 Char Boolean
 Blob Binary !BigInteger ;AbstractTimestampColumn ;AbstractPrecisionColumn 5AbstractLengthColumn DropTable #CreateTable
 !AlterTable	 Where Update +TableIdentifier	 Sql Select Literal Insert Having !Expression  Delete Combine~ #AbstractSql} 7AbstractPreparableSql| 1AbstractExpression{ !FeatureSetz +AbstractFeaturey -RuntimeExceptionx =InvalidArgumentExceptionw !RowGatewayv 1AbstractRowGatewayu -RuntimeExceptiont =InvalidArgumentExceptions ResultSetr 1HydratingResultSetq /AbstractResultSetp /SqlServerMetadatao )SqliteMetadatan 1PostgresqlMetadatam )OracleMetadatal 'MysqlMetadatak )AbstractSourcej !ViewObjecti 'TriggerObjecth #TableObjectg -ConstraintObjectf 3ConstraintKeyObjecte %ColumnObjectd 3AbstractTableObjectc Metadata~b =UnexpectedValueException}a -RuntimeException}` =InvalidArgumentException}_ )ErrorException}^ Profiler|] SqlServer{\ Sqlite{[ Sql92{Z !Postgresql{Y Oracle{X Mysql{W IbmDb2{V -AbstractPlatform{U =UnexpectedValueExceptionzT -RuntimeExceptionzS 7InvalidQueryExceptionz*R UInvalidConnectionParametersExceptionzQ =InvalidArgumentExceptionzP )ErrorExceptionzO )ErrorExceptionyN StatementxM SqlsrvxL ResultxK !ConnectionxJ StatementwI ResultwH PgsqlwG !ConnectionwF -SqliteRowCountervE -OracleRowCountervD StatementuC Resultu	B PdouA !Connectionu@ !RowCountert? Statements> Results
= Oci8s< !Connections; Statementr: Resultr9 Mysqlir8 !Connectionr7 Statementq6 Resultq5 IbmDb2q4 !Connectionq3 +AbstractFeaturep2 1AbstractConnectiono1 1StatementContainern0 1ParameterContainern/ 7AdapterServiceFactoryn#. GAdapterAbstractServiceFactoryn- Adaptern, Pkcs7m+ NoPaddingm* 5PaddingPluginManagerl) Mcryptl( -RuntimeExceptionk' =InvalidArgumentExceptionk& -RuntimeExceptionj% =InvalidArgumentExceptionj$ PublicKeyi# !PrivateKeyi" #AbstractKeyi! !RsaOptionsh	  Rsah 'DiffieHellmanh -RuntimeExceptiong =InvalidArgumentExceptiong BcryptShaf Bcryptf Apachef Scrypte SaltedS2ke Pbkdf2e -RuntimeExceptiond =InvalidArgumentExceptiond -RuntimeExceptionc =InvalidArgumentExceptionc Utilsb 9SymmetricPluginManagerb
 Hmacb
 Hashb !FileCipherb #BlockCipherb 3DefaultRouteMatchera Select`
 Password`	 Number`
 Line` Confirm` Checkbox`
 Char` )AbstractPrompt` -RuntimeException_ =InvalidArgumentException_ 9BadMethodCallException_  Response^   } ~saRE5's[F3zcX@)hP?/gF-	






x
j
Y
K
,

						p	U	:		tS:!r]L6!yjYF0#xj\OA4&tfM.!m`RD7)l_L@+}                     b +AbstractAdaptera -RuntimeException` =InvalidArgumentException_ 9BadMethodCallException^ %PhpClassFile] -ClassFileLocator\ Source[ %AbstractAtom	Z RssY !AtomSource
X AtomW %AbstractAtom	V RssU #AtomDeleted
T AtomS DeletedR -AbstractRendererQ EntryP EntryO Entry
N FeedM Entry
L FeedK Entry
J FeedI EntryH Entry
G FeedF -AbstractRendererE -RuntimeExceptionD =InvalidArgumentExceptionC 9BadMethodCallExceptionB WriterA Version@ Source? #FeedFactory
> Feed= 9ExtensionPluginManager< -ExtensionManager; Entry: Deleted9 %AbstractFeed	8 Uri7 Source	6 Rss
5 Atom4 %AbstractFeed3 Entry2 Entry
1 Feed0 Entry
/ Feed. Entry
- Feed, Entry
+ Feed* Entry) Entry
( Feed' Entry& %AbstractFeed% 'AbstractEntry$ -RuntimeException# =InvalidArgumentException" 9BadMethodCallException	! Rss
  Atom 'AbstractEntry !Collection Category Author 1AbstractCollection  AStandaloneExtensionManager Reader FeedSet 9ExtensionPluginManager -ExtensionManager !Collection %AbstractFeed 'AbstractEntry Callback %Subscription 'AbstractModel -RuntimeException =InvalidArgumentException Version !Subscriber %PubSubHubbub
 Publisher	 %HttpResponse -AbstractCallback -RuntimeException =InvalidArgumentException 9BadMethodCallException )FilterIterator =InvalidCallbackException =InvalidArgumentException +DomainException  1StaticEventManager 1SharedEventManager~ 1ResponseCollection} 1GlobalEventManager| #FilterChain{ %EventManagerz Eventy ?AbstractListenerAggregatex -RuntimeExceptionw =InvalidArgumentExceptionv Escaperu -RuntimeExceptiont 9BadMethodCallExceptions Queryr NodeListq Queryp NodeListo DOMXPathn Documentm Css2Xpathl /GeneratorInstancek Generatorj ;DependencyInjectorProxy!i CUndefinedReferenceExceptionh -RuntimeExceptiong =MissingPropertyExceptionf =InvalidPositionExceptione ?InvalidParamNameExceptiond =InvalidCallbackExceptionc =InvalidArgumentExceptionb 9ClassNotFoundException!a CCircularDependencyException` Console_ PhpClass^ +InjectionMethod] /RuntimeDefinition\ 7IntrospectionStrategy[ 1CompilerDefinitionZ +ClassDefinitionY /BuilderDefinitionX +ArrayDefinitionW %InstantiatorV InjectU )ServiceLocatorT +InstanceManagerS DiR )DefinitionListQ ConfigP DebugO /TableGatewayEventN +SequenceFeatureM /RowGatewayFeatureL +MetadataFeatureK 1MasterSlaveFeatureJ 5GlobalAdapterFeatureI !FeatureSetH %EventFeatureG +AbstractFeatureF -RuntimeExceptionE =InvalidArgumentExceptionD %TableGatewayC 5AbstractTableGatewayB %PredicateSetA Predicate@ Operator? NotLike> NotIn= Literal
< Like; IsNull: IsNotNull9 In8 !Expression7 Between6 SqlServer5 +SelectDecorator4 5CreateTableDecorator3 +SelectDecorator   ~ xX?.s`F/~j]I8#sa<0%gF-






v
X
@
(
						h	I	%	kXA)q`SD4#n]G0"ufYH;/"cK'zeN<+yfTB0~                   FormRow FormReset FormRange FormRadio %FormPassword !FormNumber /FormMultiCheckbox +FormMonthSelect FormMonth FormLabel
 FormInput	 FormImage !FormHidden FormFile FormEmail /FormElementErrors #FormElement 1FormDateTimeSelect /FormDateTimeLocal %FormDateTime  )FormDateSelect FormDate~ FormColor} )FormCollection| %FormCheckbox{ #FormCaptchaz !FormButton
y Formx )AbstractHelperw =UnexpectedValueExceptionv ;InvalidElementExceptionu =InvalidArgumentException!t CExtensionNotLoadedExceptions +DomainExceptionr 9BadMethodCallException!q CInputFilterProviderFieldsetp 1FormElementManager o AFormAbstractServiceFactory
n Formm Fieldsetl Factoryk Element
j Week	i Url
h Timeg Textarea
f Texte Submitd Selectc Rangeb Radioa Password` Number_ 'MultiCheckbox^ #MonthSelect] Month\ Image[ Hidden
Z FileY EmailX )DateTimeSelectW 'DateTimeLocalV DateTimeU !DateSelect
T Date
S CsrfR ColorQ !CollectionP CheckboxO CaptchaN ButtonM ValidatorL +ValidationGroup
K TypeJ RequiredI OptionsH Object
G NameF InstanceE #InputFilterD InputC HydratorB ;FormAnnotationsListenerA Flags@ Filter? Exclude> %ErrorMessage = AElementAnnotationsListener< +ContinueIfEmpty; )ComposedObject: !Attributes9 /AnnotationBuilder8 !AllowEmpty7 =AbstractStringAnnotation%6 KAbstractArrayOrStringAnnotation5 ;AbstractArrayAnnotation!4 CAbstractAnnotationsListener!3 CSeparatorToSeparatorFactory2 9UnderscoreToStudlyCase1 7UnderscoreToSeparator0 -UnderscoreToDash/ 7UnderscoreToCamelCase. 5SeparatorToSeparator- +SeparatorToDash, 5SeparatorToCamelCase+ -DashToUnderscore* +DashToSeparator) +DashToCamelCase( 7CamelCaseToUnderscore' 5CamelCaseToSeparator& +CamelCaseToDash% /AbstractSeparator$ UpperCase# %RenameUpload" Rename! LowerCase  Encrypt Decrypt -RuntimeException =InvalidArgumentException! CExtensionNotLoadedException +DomainException 9BadMethodCallException Openssl #BlockCipher	 Zip	 Tar Snappy	 Rar	 Lzf Gz	 Bz2" EAbstractCompressionAlgorithm Whitelist %UriNormalize )UpperCaseWords ToNull ToInt
 StripTags	 'StripNewlines !StringTrim 'StringToUpper 'StringToLower %StaticFilter RealPath #PregReplace
 Null #MonthSelect	  Int Inflector~ %HtmlEntities} 3FilterPluginManager| #FilterChain{ Encrypt	z Diry Digitsx Decryptw !Decompressv )DateTimeSelectu /DateTimeFormattert !DateSelects /DataUnitFormatterr Compressq Callbackp Booleano Blacklistn BaseNamem +AbstractUnicodel )AbstractFilterk 5AbstractDateDropdownj Transferi -RuntimeExceptionh ;PhpEnvironmentExceptiong =InvalidArgumentExceptionf 9BadMethodCallExceptione 9ValidatorPluginManager
d Httpc 3FilterPluginManager   { p_J=. wbR=-x_F%	nUF0z_G/





x
k
^
O
?
2

							z	h	S	B	.		yn^E5#
iJ2mP9"	veN2sgWI5$vcK-}dTD7*{             G RequestF ErrorE ClientD CacheC -RuntimeExceptionB 1RecursionExceptionA =InvalidArgumentException@ 9BadMethodCallException
? Json
> Expr= Encoder< Decoder; -RuntimeException: =InvalidArgumentException9 =InputFilterPluginManager'8 OInputFilterAbstractServiceFactory7 #InputFilter6 Input5 FileInput4 Factory3 7CollectionInputFilter2 +BaseInputFilter1 !ArrayInput0 %HelperConfig/ +TranslatePlural. Translate- Plural, %NumberFormat+ !DateFormat* )CurrencyFormat) =AbstractTranslatorHelper( PostCode' #PhoneNumber& IsInt% IsFloat	$ Int# Float" DateTime! Alpha  Alnum Symbol
 Rule Parser Resources =TranslatorServiceFactory !Translator !TextDomain 3LoaderPluginManager )PhpMemoryArray PhpArray	 Ini Gettext 1AbstractFileLoader #NumberParse %NumberFormat Alpha Alnum )AbstractLocale -RuntimeException )RangeException )ParseException
 5OutOfBoundsException	 =InvalidArgumentException! CExtensionNotLoadedException Stream Response Request 'RemoteAddress -RuntimeException =InvalidArgumentException +DomainException  9LanguageFieldValuePart 9EncodingFieldValuePart~ 7CharsetFieldValuePart} 5AcceptFieldValuePart| 9AbstractFieldValuePart{ +WWWAuthenticatez Warning	y Via
x Varyw UserAgentv Upgradeu -TransferEncodingt Trailers TEr SetCookieq Serverp !RetryAftero Refreshn Refererm Rangel 1ProxyAuthorizationk /ProxyAuthenticatej Pragmai Originh #MaxForwardsg Locationf %LastModifiede KeepAlived /IfUnmodifiedSincec IfRangeb #IfNoneMatcha +IfModifiedSince` IfMatch
_ Host^ #HeaderValue] 1GenericMultiHeader\ 'GenericHeader
[ FromZ ExpiresY Expect
X Etag
W DateV CookieU #ContentTypeT ;ContentTransferEncodingS 7ContentSecurityPolicyR %ContentRangeQ !ContentMD5P +ContentLocationO 'ContentLengthN +ContentLanguageM +ContentEncodingL 1ContentDispositionK !ConnectionJ %CacheControlI 'AuthorizationH 1AuthenticationInfoG Allow	F AgeE %AcceptRangesD )AcceptLanguageC )AcceptEncodingB 'AcceptCharsetA Accept@ -AbstractLocation? %AbstractDate> )AbstractAccept= -RuntimeException< 3OutOfRangeException; =InvalidArgumentException: -RuntimeException9 3OutOfRangeException8 =InvalidArgumentException7 -TimeoutException6 -RuntimeException5 3OutOfRangeException4 =InvalidArgumentException3 ;InitializationException
2 Test1 Socket0 Proxy
/ Curl. Response- Request, Headers+ %HeaderLoader* Cookies) %ClientStatic( Client' +AbstractMessage& %HelperConfig% 9FormFileUploadProgress$ ;FormFileSessionProgress# 3FormFileApcProgress" ReCaptcha! Image  Figlet
 Dumb %AbstractWord FormWeek FormUrl FormTime %FormTextarea FormText FormTel !FormSubmit !FormSelect !FormSearch   } m`SC1cD#{cS>%yaP8'mL/




z
m
\
N
?
(

									r	M	0	mVF's_O?(nbW7#	wcRB3#eD+cF-~jYL;.}           | !BigInteger%{ 5AdapterPluginManager%	z Gmp$y Bcmath$x -RuntimeException#w =InvalidArgumentException#v +DomainException#u #SmtpOptions"
t Smtp"s Sendmail"
r Null"q InMemory"p #FileOptions"
o File"n Factory"m Envelope"l Maildir!
k File j -RuntimeExceptioni =InvalidArgumentException
h File
g Mboxf Maildire -RuntimeExceptiond 5OutOfBoundsExceptionc =InvalidArgumentException
b Pop3
a Part` Message
_ Mbox^ Maildir
] Imap\ Folder[ +AbstractStorageZ PlainY LoginX Crammd5W -RuntimeExceptionV =InvalidArgumentExceptionU /SmtpPluginManager
T Smtp
S Pop3
R ImapQ -AbstractProtocolP -RuntimeExceptionO =InvalidArgumentExceptionN 9BadMethodCallExceptionM ToL SubjectK SenderJ ReplyToI ReceivedH #MimeVersionG MessageIdF !HeaderWrapE #HeaderValueD !HeaderNameC %HeaderLoaderB 1GenericMultiHeaderA 'GenericHeader
@ From
? Date> #ContentType= ;ContentTransferEncoding< Cc	; Bcc: 3AbstractAddressList9 -RuntimeException8 5OutOfBoundsException7 =InvalidArgumentException6 +DomainException5 9BadMethodCallException4 Storage3 )MessageFactory2 Message1 Headers0 #AddressList/ Address. 'FirePhpBridge- +ChromePhpBridge, #ZendMonitor+ Syslog* Stream
) Null
( Noop' MongoDB
& Mock
% Mail$ 9FormatterPluginManager# FirePhp" )FingersCrossed! 3FilterPluginManager  Db ChromePhp )AbstractWriter RequestId #ReferenceId Backtrace 3WriterPluginManager 9ProcessorPluginManager 5LoggerServiceFactory" ELoggerAbstractServiceFactory Logger	 Xml Simple FirePhp -ExceptionHandler %ErrorHandler Db ChromePhp
 Base Validator Timestamp )SuppressFilter
 Sample	 Regex Priority
 Mock -RuntimeException =InvalidArgumentException /SecurityException -RuntimeException 7PluginLoaderException' OMissingResourceNamespaceException  5InvalidPathException =InvalidArgumentException~ +DomainException} 9BadMethodCallException| 1StandardAutoloader
{ /PluginClassLoader
z -ModuleAutoloader
y 1ClassMapAutoloader
x /AutoloaderFactory
w OpenLdap	v +ActiveDirectory	u OpenLdapt +ActiveDirectorys OpenLdapr +ActiveDirectoryq %AbstractItemp OpenLdapo !eDirectoryn +ActiveDirectorym Schemal RootDsek !Collectionj -ChildrenIteratori %AbstractNodeh Encoderg +FilterExceptionf %StringFiltere OrFilterd NotFilterc !MaskFilterb AndFiltera 7AbstractLogicalFilter` )AbstractFilter_ 'LdapException^ =InvalidArgumentException] 9BadMethodCallException\ =UnexpectedValueException [ =InvalidArgumentException Z 1ConverterException Y ConverterX +DefaultIterator
W Node
V LdapU FilterT DnS !CollectionR AttributeQ Service
P Http
O HttpN -RuntimeExceptionM =InvalidArgumentExceptionL 'HttpExceptionK )ErrorException	J SmdI ServerH Response   2 mTG4ueXK*zcB.rZ9 kN-





c
@
 
								y	b	J	+	w_L-n_F%sM6%sU3g9 xY3t\:$rR2             ;ViewFeedStrategyFactory>
 ;ValidatorManagerFactory>	 =TranslatorServiceFactory>$ ITranslatorPluginManagerFactory> 5ServiceManagerConfig> 9ServiceListenerFactory>+ WSerializerAdapterPluginManagerFactory> 'RouterFactory> ?RoutePluginManagerFactory> +ResponseFactory> )RequestFactory>#  GPaginatorPluginManagerFactory> 5ModuleManagerFactory>~ ;LogWriterManagerFactory> } ALogProcessorManagerFactory>| ?InputFilterManagerFactory>#{ GInjectTemplateListenerFactory>z 9HydratorManagerFactory>y 9HttpViewManagerFactory>x ?HttpMethodListenerFactory>w ?FormElementManagerFactory>"v EFormAnnotationBuilderFactory>u 5FilterManagerFactory>t 3EventManagerFactory>+s WDiStrictAbstractServiceFactoryFactory>$r IDiStrictAbstractServiceFactory>!q CDiServiceInitializerFactory>p DiFactory>%o KDiAbstractServiceFactoryFactory>$n IControllerPluginManagerFactory>m ;ControllerLoaderFactory>l ?ConsoleViewManagerFactory>k 7ConsoleAdapterFactory>j 'ConfigFactory>i 1ApplicationFactory>"h EAbstractPluginManagerFactory>g -SimpleRouteStack=f 1RoutePluginManager=e !RouteMatch=d %PriorityList=c Wildcard<b )TreeRouteStack<#a GTranslatorAwareTreeRouteStack<` Segment<_ Scheme<^ !RouteMatch<] Regex<\ Query<
[ Part<Z Method<Y Literal<X Hostname<W Chain<V -RuntimeException;U =InvalidArgumentException;T -SimpleRouteStack:S Simple:R !RouteMatch:Q Catchall: P ASimpleStreamResponseSender9O /SendResponseEvent9"N EPhpEnvironmentResponseSender9M 1HttpResponseSender9L 7ConsoleResponseSender9K 9AbstractResponseSender9J !Translator8I +DummyTranslator8H -RuntimeException7G ;MissingLocatorException7F 9InvalidPluginException7 E AInvalidControllerException7D =InvalidArgumentException7C +DomainException7B 9BadMethodCallException7A +IdentityFactory6@ )ForwardFactory6	? Url5> Redirect5= +PostRedirectGet5< Params5; Layout5: Identity59 Forward58 )FlashMessenger57 3FilePostRedirectGet56 ;CreateHttpNotFoundModel5 5 ACreateConsoleNotFoundModel5!4 CAcceptableViewModelSelector53 )AbstractPlugin52 'PluginManager41 /ControllerManager40 ?AbstractRestfulController4/ 1AbstractController4. ?AbstractConsoleController4- =AbstractActionController4, 5SendResponseListener3+ 'RouteListener3* MvcEvent3) 3ModuleRouteListener3( 1HttpMethodListener3' -DispatchListener3& #Application3% 'ModuleManager2$ #ModuleEvent2# -RuntimeException1" =InvalidArgumentException1! +ServiceListener0  3OnBootstrapListener0 9ModuleResolverListener0 5ModuleLoaderListener0% KModuleDependencyCheckerListener0! CLocatorRegistrationListener0 +ListenerOptions0 #InitTrigger0 =DefaultListenerAggregate0 )ConfigListener0 1AutoloaderListener0 -AbstractListener0 -RuntimeException/& MMissingDependencyModuleException/ =InvalidArgumentException/ -RuntimeException. =InvalidArgumentException.
 Part-
 Mime- Message- Decode- Value, 'MemoryManager,
 -RuntimeException+	 =InvalidArgumentException+ Movable* Locked* -AccessController* /AbstractContainer* !HashTiming)
 Rand( -RuntimeException' =InvalidArgumentException'  +DomainException' -RuntimeException&~ =InvalidArgumentException&} ;DivisionByZeroException&   3 y]6mO;z\H+th\:hWJ9





s
c
Q
7
						z	j	Z	N	3		 xgN9,}dC'yaJ9,ta=x_N;)wY: |cFwT3    =ServiceNotFoundExceptione  AServiceNotCreatedExceptione" EServiceLocatorUsageExceptione -RuntimeExceptione! CInvalidServiceNameExceptione =InvalidArgumentExceptione  ACircularReferenceExceptione& MCircularDependencyFoundExceptione 5DiServiceInitializerd -DiServiceFactoryd 9DiInstanceManagerProxyd =DiAbstractServiceFactoryd )ServiceManagerc Configc 7AbstractPluginManagerc -RuntimeExceptionb =InvalidArgumentExceptionb 9BadMethodCallExceptionb 7ReflectionReturnValuea 3ReflectionParametera -ReflectionMethoda
 1ReflectionFunctiona	 +ReflectionClassa Prototypea
 Nodea -AbstractFunctiona Prototype` Parameter` !Definition` Callback` -RuntimeException_  =InvalidArgumentException_ 9BadMethodCallException_~ !Reflection^} !Definition^| Cache^{ )AbstractServer^z -RuntimeException]y =InvalidArgumentException]!x CExtensionNotLoadedException]w !Serializer\v 5AdapterPluginManager\u #WddxOptions[
t Wddx[s 3PythonPickleOptions[r %PythonPickle[q %PhpSerialize[p PhpCode[o MsgPack[n #JsonOptions[
m Json[l IgBinary[k )AdapterOptions[j +AbstractAdapter[i )UploadProgressZh +SessionProgressZg #ApcProgressZf 7AbstractUploadHandlerZe #ProgressBarYd -RuntimeExceptionXc ;PhpEnvironmentExceptionXb 3OutOfRangeExceptionXa =InvalidArgumentExceptionX` -RuntimeExceptionW_ =InvalidArgumentExceptionW^ JsPushV] JsPullV\ ConsoleV[ +AbstractAdapterVZ =InvalidArgumentExceptionUY /CallbackAssertionT
X RoleS
W RbacSV %AbstractRoleSU -AbstractIteratorST RegistryRS #GenericRoleRR +GenericResourceQQ -RuntimeExceptionPP =InvalidArgumentExceptionPO ?InvalidAssertionExceptionON /CallbackAssertionNM -AssertionManagerNL 1AssertionAggregateN	K AclMJ SlidingLI JumpingLH ElasticL	G AllLF =UnexpectedValueExceptionKE -RuntimeExceptionKD =InvalidArgumentExceptionKC ?SerializableLimitIteratorJ!B CScrollingStylePluginManagerJA /PaginatorIteratorJ@ PaginatorJ? FactoryJ> 5AdapterPluginManagerJ= 7DbTableGatewayFactoryI< +DbSelectFactoryI; +CallbackFactoryI: =UnexpectedValueExceptionH9 -RuntimeExceptionH8 =InvalidArgumentExceptionH7 NullFillG
6 NullG5 IteratorG4 )DbTableGatewayG3 DbSelectG2 CallbackG1 %ArrayAdapterG0 %HelperConfigF&/ MNavigationAbstractServiceFactoryE. =DefaultNavigationFactoryE"- EConstructedNavigationFactoryE, ?AbstractNavigationFactoryE	+ UriD	* MvcD) %AbstractPageD( 5OutOfBoundsExceptionC' =InvalidArgumentExceptionC& +DomainExceptionC% 9BadMethodCallExceptionC$ !NavigationB# /AbstractContainerB" 5SendResponseListenerA! #ViewManager@  7RouteNotFoundStrategy@ ;InjectViewModelListener@ 9InjectTemplateListener@$ IInjectRoutematchParamsListener@ /ExceptionStrategy@ =DefaultRenderingStrategy@ ;CreateViewModelListener@ #ViewManager? 7RouteNotFoundStrategy? ;InjectViewModelListener?& MInjectNamedConsoleParamsListener? /ExceptionStrategy? =DefaultRenderingStrategy? ;CreateViewModelListener?" EViewTemplatePathStackFactory>$ IViewTemplateMapResolverFactory> 3ViewResolverFactory>( QViewPrefixPathStackResolverFactory> 1ViewManagerFactory> ;ViewJsonStrategyFactory> =ViewHelperManagerFactory>   F hQ;$xa9kUB&wV=eM9&







z
j
Y
@
/


						_	>	'	vXA.jJ)
x`>&paK1nH$~]@&paH<. gF          9 =InvalidArgumentException8 =UnexpectedValueException7 /OverflowException6 5OutOfBoundsException5 ?InvalidDecoratorException4 =InvalidArgumentException3 Unicode2 Blank1 Ascii0 Table	/ Row. -DecoratorManager- Column, MultiByte+ Figlet* =UnexpectedValueException) -RuntimeException( =InvalidArgumentException' =UnexpectedValueException& -RuntimeException% /OverflowException$ 5OutOfBoundsException# =InvalidArgumentException" %ModuleLoader$! IAbstractHttpControllerTestCase   AAbstractControllerTestCase' OAbstractConsoleControllerTestCase 5OutOfBoundsException! CInvalidElementNameException# GInvalidAttributeNameException =InvalidArgumentException ItemList
 Item Cloud 9DecoratorPluginManager =InvalidArgumentException HtmlTag HtmlCloud #AbstractTag /AbstractDecorator 'AbstractCloud Native~ MbString~
 Intl~ Iconv~ 7AbstractStringWrapper~ =InvalidArgumentException}
 'StrategyChain|	 5SerializableStrategy| +ExplodeStrategy| +DefaultStrategy| ?DateTimeFormatterStrategy| +ClosureStrategy| +BooleanStrategy| =UnderscoreNamingStrategy{ /MapNamingStrategy{ 9IdentityNamingStrategy{  ;CompositeNamingStrategy{ 9ArrayMapNamingStrategy{~ =OptionalParametersFilterz} ;NumberOfParameterFilterz| /MethodMatchFilterz{ IsFilterzz HasFilterzy GetFilterzx +FilterCompositezw -HydratorListeneryv %HydrateEventyu %ExtractEventyt /AggregateHydratorys !Reflectionxr )ObjectPropertyxq 7HydratorPluginManagerxp ?DelegatingHydratorFactoryxo 1DelegatingHydratorxn %ClassMethodsxm /ArraySerializablexl -AbstractHydratorxk !GuardUtilswj -RuntimeExceptionvi )LogicExceptionvh =InvalidCallbackExceptionvg =InvalidArgumentExceptionv!f CExtensionNotLoadedExceptionve +DomainExceptionvd 9BadMethodCallExceptionvc +MergeReplaceKeyub )MergeRemoveKeyua #StringUtilst` SplStackt_ SplQueuet^ -SplPriorityQueuet] Responset\ Requestt[ 'PriorityQueuetZ %PriorityListtY !ParameterstX Messaget
W GlobtV %ErrorHandlertU DateTimetT +CallbackHandlertS !ArrayUtilstR !ArrayStacktQ #ArrayObjecttP +AbstractOptionstO 1DefaultComplexTypesN CompositesM 3ArrayOfTypeSequencesL 1ArrayOfTypeComplexsK AnyTypes!J CAbstractComplexTypeStrategysI 9DocumentLiteralWrapperrH =UnexpectedValueExceptionqG -RuntimeExceptionqF =InvalidArgumentExceptionq!E CExtensionNotLoadedExceptionqD 9BadMethodCallExceptionqC LocalpB DotNetpA Commonp
@ Wsdlo? Servero> Cliento= %AutoDiscovero< 3ReflectionDiscoveryn; !RemoteAddrm: 'HttpUserAgentm9 )SessionStoragel8 3SessionArrayStoragel7 Factoryl6 %ArrayStoragel!5 CAbstractSessionArrayStoragel4 )StorageFactoryk3 7SessionManagerFactoryk2 5SessionConfigFactoryk%1 KContainerAbstractServiceFactoryk0 )MongoDBOptionsj/ MongoDBj. 7DbTableGatewayOptionsj- )DbTableGatewayj, Cachej+ -RuntimeExceptioni* =InvalidArgumentExceptioni) 9BadMethodCallExceptioni( )StandardConfigh' 'SessionConfigh& )ValidatorChaing% )SessionManagerg$ Containerg# +AbstractManagerg" /AbstractContainerg! ?LazyServiceFactoryFactoryf  1LazyServiceFactoryf    |bRB2!~q_OD7" eM=-}pcTE6$u^I*





q
Y
J
8
&

									w	e	R	B	6	%	dM1 xgVE2 {n_L2"~gSE8"pTE3&sY9wiYH9"                    x 3ServerIntrospectionw -RuntimeExceptionv =InvalidArgumentExceptionu 3IntrospectExceptiont 'HttpExceptions )FaultExceptionr Serverq Responsep Requesto Faultn Clientm 'AbstractValuel 3PhpRendererStrategyk %JsonStrategyj %FeedStrategyi /TemplatePathStackh 3TemplateMapResolverg =RelativeFallbackResolverf ;PrefixPathStackResolvere /AggregateResolverd #PhpRendererc %JsonRendererb %FeedRenderera +ConsoleRenderer` ViewModel_ JsonModel^ FeedModel] %ConsoleModel\ ViewEvent
[ ViewZ VariablesY StreamX 3HelperPluginManagerW +IdentityFactoryV 7FlashMessengerFactoryU RegistryT ContainerS 1AbstractStandaloneR /AbstractContainerQ #AclListenerP SitemapO 'PluginManager
N MenuM LinksL #BreadcrumbsK )AbstractHelperJ )AbstractHelperI ViewModel	H UrlG ServerUrlF 3RenderToPlaceholderE -RenderChildModelD #PlaceholderC #PartialLoopB PartialA /PaginationControl@ !Navigation? Layout
> Json= %InlineScript< Identity; HtmlTag: 'HtmlQuicktime9 HtmlPage8 !HtmlObject7 HtmlList6 HtmlFlash5 HeadTitle4 HeadStyle3 !HeadScript2 HeadMeta1 HeadLink0 Gravatar/ )FlashMessenger. EscapeUrl- EscapeJs, )EscapeHtmlAttr+ !EscapeHtml* EscapeCss) Doctype( #DeclareVars' Cycle& BasePath% 3AbstractHtmlElement$ )AbstractHelper# =UnexpectedValueException" -RuntimeException! 9InvalidHelperException  =InvalidArgumentException +DomainException 9BadMethodCallException Version Priority	 Loc Lastmod !Changefreq WordCount !UploadFile Upload
 Size
 Sha1 NotExists MimeType	 Md5 IsImage %IsCompressed ImageSize
 Hash FilesSize Extension
 Exists	 +ExcludeMimeType -ExcludeExtension Crc32 Count -RuntimeException# GInvalidMagicMimeFileException =InvalidArgumentException! CExtensionNotLoadedException 9BadMethodCallException  %RecordExists )NoRecordExists~ !AbstractDb
} Upce
| Upca
{ Ssccz Royalmaily Postnetx Planetw Leitcodev Itf14
u Issnt +Intelligentmails Identcoder Gtin14q Gtin13p Gtin12
o Ean8
n Ean5
m Ean2l Ean18k Ean14j Ean13i Ean12h Code93extg Code93f Code39exte Code39d /Code25interleavedc Code25b Code128a Codabar` +AbstractAdapter_ 9ValidatorPluginManager^ )ValidatorChain	] Uri\ Timezone[ %StringLength
Z StepY +StaticValidatorX RegexW NotEmptyV LessThanU %IsInstanceOf
T IsbnS IpR InArrayQ Identical
P IbanO Hostname	N HexM #GreaterThanL ExplodeK %EmailAddressJ DigitsI DateStep
H Date
G CsrfF !CreditCardE CallbackD BitwiseC BetweenB BarcodeA /AbstractValidator@ !UriFactory	? Uri> Mailto
= Http
< File; ;InvalidUriPartException: 3InvalidUriException   d |bN</!u^K<)yl_G*r[F%v`P9)




w
V
?
/

										s	d	T	B	5	(	rdXL+{dE! uT-tItaT?+ucJ)xcF6rd                   Event %Capabilities 5AdapterPluginManager 'ZendServerShm )ZendServerDisk 'XCacheOptions XCache +WinCacheOptions WinCache )SessionOptions Session 5RedisResourceManager %RedisOptions Redis 9MongoDbResourceManager )MongoDbOptions MongoDb 'MemoryOptions Memory
 ;MemcacheResourceManager	 +MemcacheOptions =MemcachedResourceManager -MemcachedOptions Memcached Memcache +KeyListIterator /FilesystemOptions 1FilesystemIterator !Filesystem  !DbaOptions #DbaIterator	~ Dba} BlackHole| #ApcuOptions{ %ApcuIterator
z Apcuy !ApcOptionsx #ApcIterator	w Apcv )AdapterOptionsu 1AbstractZendServert +AbstractAdapter!s CStoragePluginManagerFactoryr 3StorageCacheFactory(q QStorageCacheAbstractServiceFactory(p QStorageAdapterPluginManagerFactory!o CPatternPluginManagerFactoryn )PatternOptionsm #OutputCachel #ObjectCachek !ClassCachej %CaptureCachei 'CallbackCacheh +AbstractPattern$g IUnsupportedMethodCallExceptionf =UnexpectedValueExceptione -RuntimeExceptiond 3OutOfSpaceExceptionc 3MissingKeyException b AMissingDependencyExceptiona )LogicException` =InvalidArgumentException!_ CExtensionNotLoadedException^ 9BadMethodCallException] )StorageFactory\ 5PatternPluginManager[ )PatternFactoryZ ModuleY )ConfigProviderX =UnexpectedValueExceptionW -RuntimeExceptionV 3OutOfRangeExceptionU =InvalidArgumentException	T Svg	S PdfR ImageQ -AbstractRendererP -RuntimeExceptionO 3OutOfRangeExceptionN =InvalidArgumentException!M CExtensionNotLoadedException L ABarcodeValidationException
K Upce
J UpcaI RoyalmailH PostnetG PlanetF LeitcodeE Itf14D IdentcodeC Error
B Ean8
A Ean5
@ Ean2? Ean13> Code39= /Code25interleaved< Code25; Code128: Codabar9 )AbstractObject8 =UnexpectedValueException7 -RuntimeException6 ?RendererCreationException5 3OutOfRangeException4 =InvalidArgumentException3 7RendererPluginManager2 3ObjectPluginManager1 Barcode0 )Authentication/ Session. 'NonPersistent- Chain, =UnexpectedValueException+ -RuntimeException* =InvalidArgumentException) Result( 7AuthenticationService' -RuntimeException& =InvalidArgumentException% %FileResolver$ )ApacheResolver# =UnexpectedValueException" -RuntimeException! =InvalidArgumentException  -RuntimeException =InvalidArgumentException  ACredentialTreatmentAdapter 5CallbackCheckAdapter +AbstractAdapter
 Ldap
 Http Digest DbTable Callback +AbstractAdapter
 Text Struct	 Nil Integer Double DateTime Boolean !BigInteger Base64 !ArrayValue )AbstractScalar
 1AbstractCollection	 -RuntimeException =InvalidArgumentException 9BadMethodCallException System Fault Cache
 Http Stdin
 Http  XmlWriter #DomDocument~ /AbstractGenerator} )ValueException| -RuntimeException{ =InvalidArgumentExceptionz 9BadMethodCallExceptiony #ServerProxy   a t\C-eC"qR1cH0|`N;(






t
V
>
&
						w	d	Q	?	.		hN3w^F,
t[J;- viQC3#{jK*t`M@3$iZH9*	sa I PublicKeyH !PrivateKeyG #AbstractKeyF !RsaOptions	E RsaD 'DiffieHellmanC -RuntimeExceptionB =InvalidArgumentExceptionA BcryptSha@ Bcrypt? Apache> Scrypt= SaltedS2k< Pbkdf2; -RuntimeException: =InvalidArgumentException9 -RuntimeException8 /NotFoundException7 =InvalidArgumentException6 Utils5 9SymmetricPluginManager4 Hybrid
3 Hmac
2 Hash1 !FileCipher0 #BlockCipher/ 3DefaultRouteMatcher. Select- Password, Number
+ Line* Confirm) Checkbox
( Char' )AbstractPrompt& -RuntimeException% =InvalidArgumentException$ 9BadMethodCallException# Response" Request! Getopt  Console Xterm256 Utf8Heavy
 Utf8 DECSG 'AsciiExtended Ascii )WindowsAnsicon Windows Virtual Posix +AbstractAdapter
 Yaml	 Xml PhpArray
 Json	 Ini )AbstractWriter
 Yaml	 Xml
 Json )JavaProperties	
 Ini	 !Translator Token Queue Filter Constant -RuntimeException =InvalidArgumentException 3WriterPluginManager 3ReaderPluginManager  Factory Config~ 7AbstractConfigFactory} %ValueScanner
| Util{ /TokenArrayScannerz +PropertyScannery -ParameterScannerx 'MethodScannerw +FunctionScannerv #FileScanneru +DocBlockScannert -DirectoryScanners 3DerivedClassScannerr +ConstantScannerq %ClassScannerp 1CachingFileScannero /AnnotationScannern ?AggregateDirectoryScannerm -RuntimeExceptionl =InvalidArgumentExceptionk 9BadMethodCallExceptionj !TagManageri ThrowsTagh ReturnTagg #PropertyTagf ParamTage MethodTagd !LicenseTagc !GenericTagb AuthorTaga 1PropertyReflection` 3ParameterReflection_ -MethodReflection^ 1FunctionReflection] )FileReflection\ 1DocBlockReflection[ +ClassReflectionZ +NameInformationY 7PrototypeClassFactoryX -RuntimeExceptionW =InvalidArgumentExceptionV !TagManager	U TagT ThrowsTagS ReturnTagR #PropertyTagQ ParamTagP MethodTagO !LicenseTagN !GenericTagM AuthorTagL 3AbstractTypeableTagK )ValueGeneratorJ 'TypeGeneratorI 3TraitUsageGeneratorH )TraitGeneratorG 9PropertyValueGeneratorF /PropertyGeneratorE 1ParameterGeneratorD +MethodGeneratorC 1InterfaceGeneratorB 7FileGeneratorRegistryA 'FileGenerator@ /DocBlockGenerator? )ClassGenerator> 'BodyGenerator= ;AbstractMemberGenerator< /AbstractGenerator; -RuntimeException: =InvalidArgumentException9 9BadMethodCallException8 ;GenericAnnotationParser7 =DoctrineAnnotationParser6 /AnnotationManager5 5AnnotationCollection4 -RuntimeException3 ;NoFontProvidedException2 =InvalidArgumentException1 ?ImageNotLoadableException!0 CExtensionNotLoadedException/ +DomainException. ReCaptcha- Image, Figlet+ Factory
* Dumb) %AbstractWord( +AbstractAdapter' !Serializer& 'PluginOptions% -OptimizeByFactor$ +IgnoreUserAbort# -ExceptionHandler" 5ClearExpiredByFactor! )AbstractPlugin  PostEvent 'PluginManager )ExceptionEvent   o rcS6$qYF7(l`Q?&qZ9~o\N?-





s
W
B
&
							|	a	J	0	`G/rbSG/ |iZM=0!v[M:'~fJ-rbOD2#kJ1o | +SequenceFeature	{ /RowGatewayFeature	z +MetadataFeature	y 1MasterSlaveFeature	x 5GlobalAdapterFeature	w !FeatureSet	v %EventFeature	u +AbstractFeature	t -RuntimeException	s =InvalidArgumentException	r %TableGateway	q 5AbstractTableGateway	p %PredicateSet	o Predicate	n Operator	m NotLike	l NotIn	k !NotBetween	j Literal	
i Like	h IsNull	g IsNotNull	f In	e !Expression	d Between	c SqlServer	b +SelectDecorator	a 5CreateTableDecorator	` Sqlite	_ +SelectDecorator	^ +SelectDecorator	] Oracle	\ +SelectDecorator	[ Mysql	Z 5CreateTableDecorator	Y 3AlterTableDecorator	X +SelectDecorator	W IbmDb2	V Platform	U -AbstractPlatform	T -RuntimeException	S =InvalidArgumentException	R Index	Q 'AbstractIndex	P UniqueKey	O !PrimaryKey	N !ForeignKey	M Check	L 1AbstractConstraint	K Varchar	J Varbinary	I Timestamp	
H Time	
G Text	F Integer	E Floating	D Float	C Decimal	B Datetime	
A Date	@ Column	
? Char	> Boolean	
= Blob	< Binary	; !BigInteger	: ;AbstractTimestampColumn	9 ;AbstractPrecisionColumn	8 5AbstractLengthColumn	7 DropTable	6 #CreateTable	5 !AlterTable	4 Where	
3 Update	
2 +TableIdentifier	
	1 Sql	
0 Select	
/ Literal	

. Join	
- Insert	
, Having	
+ !Expression	
* Delete	
) Combine	
( #AbstractSql	
' 7AbstractPreparableSql	
& 1AbstractExpression	
% !FeatureSet		$ +AbstractFeature		# -RuntimeException	" =InvalidArgumentException	! !RowGateway	  1AbstractRowGateway	 -RuntimeException	 =InvalidArgumentException	 ResultSet	 1HydratingResultSet	 /AbstractResultSet	 /SqlServerMetadata	 )SqliteMetadata	 1PostgresqlMetadata	 )OracleMetadata	 'MysqlMetadata	 Factory	 )AbstractSource	 !ViewObject	 'TriggerObject	 #TableObject	 -ConstraintObject	 3ConstraintKeyObject	 %ColumnObject	 3AbstractTableObject	 Metadata	 =UnexpectedValueException	
 -RuntimeException		 =InvalidArgumentException	 )ErrorException	 Module	  )ConfigProvider	  Profiler SqlServer Sqlite Sql92 !Postgresql  Oracle Mysql~ IbmDb2} -AbstractPlatform| =UnexpectedValueException{ -RuntimeExceptionz 7InvalidQueryException*y UInvalidConnectionParametersExceptionx =InvalidArgumentExceptionw )ErrorExceptionv )ErrorExceptionu Statementt Sqlsrvs Resultr !Connectionq Statementp Resulto Pgsqln !Connectionm -SqliteRowCounterl -OracleRowCounterk Statementj Result	i Pdoh !Connectiong !RowCounterf Statemente Result
d Oci8c !Connectionb Statementa Result` Mysqli_ !Connection^ Statement] Result\ IbmDb2[ !ConnectionZ +AbstractFeatureY 1AbstractConnectionX 1StatementContainerW 1ParameterContainerV 7AdapterServiceFactory#U GAdapterAbstractServiceFactoryT AdapterS Pkcs7R NoPaddingQ 5PaddingPluginManagerP OpensslO McryptN -RuntimeExceptionM /NotFoundExceptionL =InvalidArgumentExceptionK -RuntimeExceptionJ =InvalidArgumentException   k xiT<"
~Z;|X8&teO2#t`F3







t
d
C
*
							i	N	6	kR=+}gR?&waTH)xj]OB4'dXC3%{\;"	sZJ=)k     + 9BadMethodCallException	Y* %PhpClassFile	X) -ClassFileLocator	X( Source	W' %AbstractAtom	W	& Rss	V% !AtomSource	V
$ Atom	V# %AbstractAtom	V	" Rss	U! #AtomDeleted	U
  Atom	U Deleted	T -AbstractRenderer	S Entry	R Entry	Q Entry	P
 Feed	O Entry	O
 Feed	N Entry	N
 Feed	M Entry	M Entry	L
 Feed	K -AbstractRenderer	J -RuntimeException	I =InvalidArgumentException	I 9BadMethodCallException	I Writer	H Version	H  AStandaloneExtensionManager	H Source	H
 #FeedFactory	H
	 Feed	H 9ExtensionPluginManager	H -ExtensionManager	H Entry	H Deleted	H %AbstractFeed	H	 Uri	G ;ZendHttpClientDecorator	F Response	F  7Psr7ResponseDecorator	F Source	E	~ Rss	D
} Atom	D| %AbstractFeed	D{ Entry	Cz Entry	B
y Feed	Ax Entry	@
w Feed	?v Entry	?
u Feed	>t Entry	>
s Feed	=r Entry	=q Entry	<
p Feed	;o Entry	;n %AbstractFeed	:m 'AbstractEntry	:l -RuntimeException	9 k AInvalidHttpClientException	9j =InvalidArgumentException	9i 9BadMethodCallException	9	h Rss	8
g Atom	8f 'AbstractEntry	8e !Collection	7d Category	7c Author	7b 1AbstractCollection	7 a AStandaloneExtensionManager	6` Reader	6_ FeedSet	6^ 9ExtensionPluginManager	6] -ExtensionManager	6\ !Collection	6[ %AbstractFeed	6Z 'AbstractEntry	6Y Callback	5X %Subscription	4W 'AbstractModel	4V -RuntimeException	3U =InvalidArgumentException	3T Version	2S !Subscriber	2R %PubSubHubbub	2Q Publisher	2P %HttpResponse	2O -AbstractCallback	2N -RuntimeException	1M =InvalidArgumentException	1L 9BadMethodCallException	1K )FilterIterator	0J -RuntimeException	/I =InvalidCallbackException	/H =InvalidArgumentException	/G +DomainException	/F 1SharedEventManager	.E 1ResponseCollection	.D 7LazyListenerAggregate	.C %LazyListener	.B /LazyEventListener	.A #FilterChain	.@ %EventManager	.? Event	.> ?AbstractListenerAggregate	.= -RuntimeException	-< =InvalidArgumentException	-; Escaper	,: -RuntimeException	+9 9BadMethodCallException	+8 Query	*7 NodeList	*6 Query	)5 NodeList	)4 DOMXPath	)3 Document	)2 Css2Xpath	)1 %TextResponse	(0 !Serializer	(/ /SapiStreamEmitter	(. #SapiEmitter	(- -RedirectResponse	(, %JsonResponse	(+ %HtmlResponse	(* 'EmptyResponse	() !Serializer	'( ?DeprecatedMethodException	&	' Uri	%& %UploadedFile	%% Stream	%$ 5ServerRequestFactory	%# 'ServerRequest	%" Server	%! Response	%  Request	% )RelativeStream	% )PhpInputStream	% )HeaderSecurity	% )CallbackStream	% 1AbstractSerializer	% /GeneratorInstance	$ Generator	$ ;DependencyInjectorProxy	$! CUndefinedReferenceException	# -RuntimeException	# =MissingPropertyException	# =InvalidPositionException	# ?InvalidParamNameException	# =InvalidCallbackException	# =InvalidArgumentException	# 9ClassNotFoundException	#! CCircularDependencyException	# Console	" PhpClass	! +InjectionMethod	! /RuntimeDefinition	 
 7IntrospectionStrategy	 	 1CompilerDefinition	  +ClassDefinition	  /BuilderDefinition	  +ArrayDefinition	  %Instantiator	 Inject	 )ServiceLocator	 +InstanceManager	 Di	  )DefinitionList	 Config	~ Debug	} /TableGatewayEvent	    fG&m]L;$
xdH%r\I3!~rcWK7'





r
`
Q
<
*
						t	W	?	"	fFmJ5%xgZB0	[L=-	ufXJ6  tgH0`I<)                             Y /FormDateTimeLocal	iX %FormDateTime	iW )FormDateSelect	iV FormDate	iU FormColor	iT )FormCollection	iS %FormCheckbox	iR #FormCaptcha	iQ !FormButton	i
P Form	iO )AbstractHelper	i"N EFormElementManagerV3Polyfill	h"M EFormElementManagerV2Polyfill	hL =UnexpectedValueException	gK ;InvalidElementException	gJ =InvalidArgumentException	g!I CExtensionNotLoadedException	gH +DomainException	gG 9BadMethodCallException	g
F Week	f	E Url	f
D Time	fC Textarea	f
B Text	f	A Tel	f@ Submit	f? Select	f> Search	f= Range	f< Radio	f; Password	f: Number	f9 'MultiCheckbox	f8 #MonthSelect	f7 Month	f6 Image	f5 Hidden	f
4 File	f3 Email	f2 )DateTimeSelect	f1 'DateTimeLocal	f0 DateTime	f/ !DateSelect	f
. Date	f
- Csrf	f, Color	f+ !Collection	f* Checkbox	f) Captcha	f( Button	f' Module	e!& CInputFilterProviderFieldset	e% ?FormElementManagerFactory	e $ AFormAbstractServiceFactory	e
# Form	e" Fieldset	e! Factory	e  )ElementFactory	e Element	e )ConfigProvider	e Validator	d +ValidationGroup	d
 Type	d Required	d Options	d Object	d
 Name	d Instance	d #InputFilter	d Input	d Hydrator	d ;FormAnnotationsListener	d Flags	d Filter	d Exclude	d %ErrorMessage	d  AElementAnnotationsListener	d +ContinueIfEmpty	d )ComposedObject	d
 !Attributes	d	 =AnnotationBuilderFactory	d /AnnotationBuilder	d !AllowEmpty	d =AbstractStringAnnotation	d% KAbstractArrayOrStringAnnotation	d ;AbstractArrayAnnotation	d! CAbstractAnnotationsListener	d! CSeparatorToSeparatorFactory	c 9UnderscoreToStudlyCase	b  7UnderscoreToSeparator	b -UnderscoreToDash	b~ 7UnderscoreToCamelCase	b} 5SeparatorToSeparator	b| +SeparatorToDash	b{ 5SeparatorToCamelCase	bz -DashToUnderscore	by +DashToSeparator	bx +DashToCamelCase	bw 7CamelCaseToUnderscore	bv 5CamelCaseToSeparator	bu +CamelCaseToDash	bt /AbstractSeparator	bs UpperCase	ar %RenameUpload	aq Rename	ap LowerCase	ao Encrypt	an Decrypt	am -RuntimeException	`l =InvalidArgumentException	`!k CExtensionNotLoadedException	`j +DomainException	`i 9BadMethodCallException	`h Openssl	_g #BlockCipher	_	f Zip	^	e Tar	^d Snappy	^	c Rar	^	b Lzf	^a Gz	^	` Bz2	^"_ EAbstractCompressionAlgorithm	^^ Whitelist	]] %UriNormalize	]\ )UpperCaseWords	][ ToNull	]Z ToInt	]Y StripTags	]X 'StripNewlines	]W !StringTrim	]V 'StringToUpper	]U 'StringToLower	]T %StaticFilter	]S RealPath	]R #PregReplace	]
Q Null	]P #MonthSelect	]O Module	]	N Int	]M Inflector	]L %HtmlEntities	] K AFilterPluginManagerFactory	]J 3FilterPluginManager	]I #FilterChain	]H Encrypt	]	G Dir	]F Digits	]E Decrypt	]D !Decompress	]C )DateTimeSelect	]B /DateTimeFormatter	]A !DateSelect	]@ /DataUnitFormatter	]? )ConfigProvider	]> Compress	]= Callback	]< Boolean	]; Blacklist	]: BaseName	]9 +AbstractUnicode	]8 )AbstractFilter	]7 5AbstractDateDropdown	]6 Transfer	\5 -RuntimeException	[4 ;PhpEnvironmentException	[3 =InvalidArgumentException	[2 9BadMethodCallException	[1 9ValidatorPluginManager	Z
0 Http	Z/ 3FilterPluginManager	Z. +AbstractAdapter	Z- -RuntimeException	Y, =InvalidArgumentException	Y   o o]K9!s`P?*	kL7{nN-hL3






z
l
Q
;
&
							r	T	4	 		yiQ=-tfVF3${\?!{kZK2l]F3{Z9"	aB o                    +BooleanStrategy	} =UnderscoreNamingStrategy	| /MapNamingStrategy	|  9IdentityNamingStrategy	| ;CompositeNamingStrategy	|~ 9ArrayMapNamingStrategy	|} ?HydratingIteratorIterator	{| 9HydratingArrayIterator	{{ =OptionalParametersFilter	zz ;NumberOfParameterFilter	zy /MethodMatchFilter	zx IsFilter	zw HasFilter	zv GetFilter	zu +FilterComposite	zt -RuntimeException	ys )LogicException	yr =InvalidCallbackException	yq =InvalidArgumentException	y!p CExtensionNotLoadedException	yo +DomainException	yn 9BadMethodCallException	ym -HydratorListener	xl %HydrateEvent	xk %ExtractEvent	xj /AggregateHydrator	xi !Reflection	wh )ObjectProperty	wg Module	w"f EHydratorPluginManagerFactory	we 7HydratorPluginManager	wd ?DelegatingHydratorFactory	wc 1DelegatingHydrator	wb )ConfigProvider	wa %ClassMethods	w` /ArraySerializable	w_ -AbstractHydrator	w^ Stream	v] Response	u\ Request	u[ 'RemoteAddress	uZ -RuntimeException	tY =InvalidArgumentException	tX +DomainException	tW 9LanguageFieldValuePart	sV 9EncodingFieldValuePart	sU 7CharsetFieldValuePart	sT 5AcceptFieldValuePart	sS 9AbstractFieldValuePart	sR +WWWAuthenticate	rQ Warning	r	P Via	r
O Vary	rN UserAgent	rM Upgrade	rL -TransferEncoding	rK Trailer	rJ TE	rI SetCookie	rH Server	rG !RetryAfter	rF Refresh	rE Referer	rD Range	rC 1ProxyAuthorization	rB /ProxyAuthenticate	rA Pragma	r@ Origin	r? #MaxForwards	r> Location	r= %LastModified	r< KeepAlive	r; /IfUnmodifiedSince	r: IfRange	r9 #IfNoneMatch	r8 +IfModifiedSince	r7 IfMatch	r
6 Host	r5 #HeaderValue	r4 1GenericMultiHeader	r3 'GenericHeader	r
2 From	r1 Expires	r0 Expect	r
/ Etag	r
. Date	r- Cookie	r, #ContentType	r+ ;ContentTransferEncoding	r* 7ContentSecurityPolicy	r) %ContentRange	r( !ContentMD5	r' +ContentLocation	r& 'ContentLength	r% +ContentLanguage	r$ +ContentEncoding	r# 1ContentDisposition	r" !Connection	r! %CacheControl	r  'Authorization	r 1AuthenticationInfo	r Allow	r	 Age	r %AcceptRanges	r )AcceptLanguage	r )AcceptEncoding	r 'AcceptCharset	r Accept	r -AbstractLocation	r %AbstractDate	r )AbstractAccept	r -RuntimeException	q 3OutOfRangeException	q =InvalidArgumentException	q -RuntimeException	p 3OutOfRangeException	p =InvalidArgumentException	p -TimeoutException	o -RuntimeException	o 3OutOfRangeException	o =InvalidArgumentException	o
 ;InitializationException	o
	 Test	n Socket	n Proxy	n
 Curl	n Response	m Request	m Headers	m %HeaderLoader	m Cookies	m  %ClientStatic	m Client	m~ +AbstractMessage	m} %HelperConfig	l| 9FormFileUploadProgress	k{ ;FormFileSessionProgress	kz 3FormFileApcProgress	ky ReCaptcha	jx Image	jw Figlet	j
v Dumb	ju %AbstractWord	jt FormWeek	is FormUrl	ir FormTime	iq %FormTextarea	ip FormText	io FormTel	in !FormSubmit	im !FormSelect	il !FormSearch	ik FormRow	ij FormReset	ii FormRange	ih FormRadio	ig %FormPassword	if !FormNumber	ie /FormMultiCheckbox	id +FormMonthSelect	ic FormMonth	ib FormLabel	ia FormInput	i` FormImage	i_ !FormHidden	i^ FormFile	i] FormEmail	i\ /FormElementErrors	i[ #FormElement	iZ 1FormDateTimeSelect	i   ^ ycB+s\N@+yfS2 |kJ3 t]M;-




v
]
M
=
0
#
							t	c	T	H	)	~cJ0vX?%{V9*iH/"zaQB6$pQD7)}mYB2"w^  - -RuntimeException	, 5OutOfBoundsException	+ =InvalidArgumentException	* +DomainException	) 9BadMethodCallException	( Storage	' Module	& )MessageFactory	% Message	$ Headers	# )ConfigProvider	" #AddressList	! Address	  'FirePhpBridge	 'WriterFactory	 +ChromePhpBridge	 #ZendMonitor	 Syslog	 Stream		 Psr	
 Null	
 Noop	 MongoDB	 Mongo	
 Mock	
 Mail	 9FormatterPluginManager	 FirePhp	 )FingersCrossed	 3FilterPluginManager	 Db	 ChromePhp	 )AbstractWriter	 RequestId	 #ReferenceId	
 )PsrPlaceholder		 Backtrace		 Xml	 Simple	 FirePhp	 -ExceptionHandler	 %ErrorHandler	 Db	 ChromePhp	
 Base	  Validator	 Timestamp	~ )SuppressFilter	} Sample	| Regex	{ Priority	
z Mock	y -RuntimeException	x =InvalidArgumentException	!w CExtensionNotLoadedException	 v AWriterPluginManagerFactory	u 3WriterPluginManager	t -PsrLoggerAdapter	#s GProcessorPluginManagerFactory	r 9ProcessorPluginManager	q Module	p 5LoggerServiceFactory	"o ELoggerAbstractServiceFactory	n Logger	#m GFormatterPluginManagerFactory	l 9FormatterPluginManager	 k AFilterPluginManagerFactory	j 3FilterPluginManager	i )ConfigProvider	h /SecurityException	g -RuntimeException	f 7PluginLoaderException	'e OMissingResourceNamespaceException	d 5InvalidPathException	c =InvalidArgumentException	b +DomainException	a 9BadMethodCallException	` 1StandardAutoloader	_ /PluginClassLoader	^ -ModuleAutoloader	] 1ClassMapAutoloader	\ /AutoloaderFactory	[ Service	
Z Http	
Y Http	X -RuntimeException	W =InvalidArgumentException	V 'HttpException	U )ErrorException	T 9BadMethodCallException		S Smd	R Server	Q Response	P Request	O Error	N Client	M Cache	L -RuntimeException	K 1RecursionException	J =InvalidArgumentException	I 9BadMethodCallException	
H Json	
G Expr	F Encoder	E Decoder	D -RuntimeException	C =InvalidArgumentException	B Module	%A KInputFilterPluginManagerFactory	@ =InputFilterPluginManager	'? OInputFilterAbstractServiceFactory	> #InputFilter	= Input	< FileInput	; Factory	: )ConfigProvider	9 7CollectionInputFilter	8 +BaseInputFilter	7 !ArrayInput	6 %HelperConfig	5 +TranslatePlural	4 Translate	3 Plural	2 %NumberFormat	1 !DateFormat	0 )CurrencyFormat	/ =AbstractTranslatorHelper	. PostCode	- #PhoneNumber	, IsInt	+ IsFloat		* Int	) Float	( DateTime	' Alpha	& Alnum	% Symbol	
$ Rule	# Parser	" Resources	! =TranslatorServiceFactory	  !Translator	 !TextDomain	  ALoaderPluginManagerFactory	 3LoaderPluginManager	 )PhpMemoryArray	 PhpArray		 Ini	 Gettext	 1AbstractFileLoader	 #NumberParse	 %NumberFormat	 Alpha	 Alnum	 )AbstractLocale	 -RuntimeException	 )RangeException	 )ParseException	 5OutOfBoundsException	 =InvalidArgumentException	! CExtensionNotLoadedException	 Module	 )ConfigProvider	
 =InvalidArgumentException	~	 'StrategyChain	} 5SerializableStrategy	} +ExplodeStrategy	} +DefaultStrategy	} ?DateTimeFormatterStrategy	} +ClosureStrategy	}   W iN9&oN5pbT<- reX7oW6




}
\
C
6

							w	g	Z	M	,	|eD0t\;"yhR5jF&lI*
xU0{O*}W                     #J GPaginatorPluginManagerFactory	I 5ModuleManagerFactory	#H GInjectTemplateListenerFactory	G 9HttpViewManagerFactory	&F MHttpRouteNotFoundStrategyFactory	E ?HttpMethodListenerFactory	"D EHttpExceptionStrategyFactory	)C SHttpDefaultRenderingStrategyFactory	B 3EventManagerFactory	A ;DispatchListenerFactory	$@ IControllerPluginManagerFactory	? =ControllerManagerFactory	> 'ConfigFactory	= 1ApplicationFactory	"< EAbstractPluginManagerFactory	 ; ASimpleStreamResponseSender	: /SendResponseEvent	"9 EPhpEnvironmentResponseSender	8 1HttpResponseSender	7 9AbstractResponseSender	6 -RuntimeException	5 ;MissingLocatorException	4 9InvalidPluginException	 3 AInvalidControllerException	2 =InvalidArgumentException	1 +DomainException	0 9BadMethodCallException	/ )ForwardFactory		. Url	- Redirect	, Params	+ Layout	* Forward	) ;CreateHttpNotFoundModel	!( CAcceptableViewModelSelector	' )AbstractPlugin	& 'PluginManager	#% GLazyControllerAbstractFactory	$ /ControllerManager	# ?AbstractRestfulController	" 1AbstractController	! =AbstractActionController	  5SendResponseListener	 'RouteListener	 MvcEvent	 3ModuleRouteListener	 1MiddlewareListener	 1HttpMethodListener	 -DispatchListener	 #Application	 'ModuleManager	 #ModuleEvent	 -RuntimeException	 =InvalidArgumentException	 +ServiceListener	 3OnBootstrapListener	 9ModuleResolverListener	 5ModuleLoaderListener	% KModuleDependencyCheckerListener	! CLocatorRegistrationListener	 +ListenerOptions	 #InitTrigger	 =DefaultListenerAggregate	 )ConfigListener	
 1AutoloaderListener		 -AbstractListener	 -RuntimeException	& MMissingDependencyModuleException	 =InvalidArgumentException	 -RuntimeException	 =InvalidArgumentException	
 Part	
 Mime	 Message	  Decode	 Value	~ 'MemoryManager	} -RuntimeException	| =InvalidArgumentException	{ Movable	z Locked	y -AccessController	x /AbstractContainer	
w Rand	v -RuntimeException	u =InvalidArgumentException	t +DomainException	s -RuntimeException	r =InvalidArgumentException	q ;DivisionByZeroException	p !BigInteger		o Gmp	n Bcmath	m -RuntimeException	l =InvalidArgumentException	k +DomainException	j #SmtpOptions	
i Smtp	h Sendmail	
g Null	f InMemory	e #FileOptions	
d File	c Factory	b Envelope	a Maildir	
` File	_ -RuntimeException	^ =InvalidArgumentException	
] File	
\ Mbox	[ Maildir	Z -RuntimeException	Y 5OutOfBoundsException	X =InvalidArgumentException	
W Pop3	
V Part	U Message	
T Mbox	S Maildir	
R Imap	Q Folder	P +AbstractStorage	O Plain	N Login	M Crammd5	L -RuntimeException	K =InvalidArgumentException	J =SmtpPluginManagerFactory	I /SmtpPluginManager	
H Smtp	
G Pop3	
F Imap	E -AbstractProtocol	D -RuntimeException	C =InvalidArgumentException	B 9BadMethodCallException	A To	@ Subject	? Sender	> ReplyTo	= Received	< #MimeVersion	; MessageId	: !HeaderWrap	9 #HeaderValue	8 !HeaderName	7 %HeaderLoader	6 1GenericMultiHeader	5 'GenericHeader	
4 From	
3 Date	2 #ContentType	1 ;ContentTransferEncoding	0 Cc		/ Bcc	. 3AbstractAddressList	   ( q]=pT-gG)pRAzR+


x
V
,
					\	<	+	|]:rcK1nbV4fQ@/v^@(a6}qV=#q\OB(        V /CallbackAssertion	
U Role	
T Rbac	S %AbstractRole	R -AbstractIterator	Q Registry	P #GenericRole	O +GenericResource	N -RuntimeException	M =InvalidArgumentException	L ?InvalidAssertionException	K /CallbackAssertion	J -AssertionManager	I 1AssertionAggregate		H Acl	G Sliding	F Jumping	E Elastic		D All	C =UnexpectedValueException	B -RuntimeException	A =InvalidArgumentException	@ ?SerializableLimitIterator	(? QScrollingStylePluginManagerFactory	!> CScrollingStylePluginManager	= /PaginatorIterator	< Paginator	; Module	: Factory	9 )ConfigProvider	!8 CAdapterPluginManagerFactory	7 5AdapterPluginManager	6 +IteratorFactory	5 7DbTableGatewayFactory	4 +DbSelectFactory	3 +CallbackFactory	2 =UnexpectedValueException	1 -RuntimeException	0 =InvalidArgumentException	/ NullFill	
. Null	- Iterator	, )DbTableGateway	+ DbSelect	* Callback	) %ArrayAdapter	'( OViewHelperManagerDelegatorFactory	' ;NavigationHelperFactory	& %HelperConfig	&% MNavigationAbstractServiceFactory	$ =DefaultNavigationFactory	"# EConstructedNavigationFactory	" ?AbstractNavigationFactory		! Uri		  Mvc	 %AbstractPage	 5OutOfBoundsException	 =InvalidArgumentException	 +DomainException	 9BadMethodCallException	 !Navigation	 Module	 )ConfigProvider	 /AbstractContainer	 +PostRedirectGet	 Module	 Module	 +IdentityFactory	 Identity	 -RuntimeException	 Module	 )FlashMessenger	 Module	 3FilePostRedirectGet	# GTranslatorAwareTreeRouteStack	  AHttpRouterDelegatorFactory	
 9BadMethodCallException		 /TranslatorFactory	 !Translator	 Module	 +DummyTranslator	 )ConfigProvider	 ViewModel	 #ViewManager	 7RouteNotFoundStrategy	 Renderer	  ;InjectViewModelListener	& MInjectNamedConsoleParamsListener	~ /ExceptionStrategy	} =DefaultRenderingStrategy	| ;CreateViewModelListener	!{ CViewManagerDelegatorFactory	%z KDefaultRenderingStrategyFactory	'y OControllerManagerDelegatorFactory	x ?ConsoleViewManagerFactory	.w ]ConsoleViewHelperManagerDelegatorFactory	)v SConsoleRouteNotFoundStrategyFactory	+u WConsoleResponseSenderDelegatorFactory	%t KConsoleResponseDelegatorFactory	$s IConsoleRequestDelegatorFactory	%r KConsoleExceptionStrategyFactory	(q QConsoleApplicationDelegatorFactory	p 7ConsoleAdapterFactory	o -SimpleRouteStack	n Simple	m !RouteMatch	l 5ConsoleRouterFactory	#k GConsoleRouterDelegatorFactory	j Catchall	i 7ConsoleResponseSender	h -RuntimeException	g =InvalidArgumentException	 f ACreateConsoleNotFoundModel	e ?AbstractConsoleController	d Module	c )ConfigProvider	b #ViewManager	a 7RouteNotFoundStrategy	` ;InjectViewModelListener	_ 9InjectTemplateListener	$^ IInjectRoutematchParamsListener	] /ExceptionStrategy	\ =DefaultRenderingStrategy	[ ;CreateViewModelListener	"Z EViewTemplatePathStackFactory	$Y IViewTemplateMapResolverFactory	X 3ViewResolverFactory	(W QViewPrefixPathStackResolverFactory	$V IViewPhpRendererStrategyFactory	U 9ViewPhpRendererFactory	T 1ViewManagerFactory	S ;ViewJsonStrategyFactory	R =ViewHelperManagerFactory	Q ;ViewFeedStrategyFactory	P #ViewFactory	O 5ServiceManagerConfig	N 9ServiceListenerFactory	!M CSendResponseListenerFactory	L +ResponseFactory	K )RequestFactory	   K x_>"t_E5v]<#~XA0i\H+





p
Y
K
8
%
							k	^	L	4		 mO@)vU<!
wZ6q_P9"wYI2
oS<uhYJ<[K             q AnyType

!p CAbstractComplexTypeStrategy

o 9DocumentLiteralWrapper
	n =UnexpectedValueException
m -RuntimeException
l =InvalidArgumentException
!k CExtensionNotLoadedException
j 9BadMethodCallException
i Local
h DotNet
g Common

f Wsdl
e Server
d Client
c %AutoDiscover
b 3ReflectionDiscovery
a !RemoteAddr
` Id
_ 'HttpUserAgent
^ ?AbstractValidatorChainEM3
] ?AbstractValidatorChainEM2
\ )SessionStorage
[ 3SessionArrayStorage
Z Factory
Y %ArrayStorage
!X CAbstractSessionArrayStorage
W )StorageFactory
V 7SessionManagerFactory
U 5SessionConfigFactory
%T KContainerAbstractServiceFactory
S )MongoDBOptions
R MongoDB
Q 7DbTableGatewayOptions
P )DbTableGateway
O Cache
N -RuntimeException
 M =InvalidArgumentException
 L 9BadMethodCallException
 K )StandardConfig	J 'SessionConfig	I )ValidatorChain	H )SessionManager	G Module	F Container	E )ConfigProvider	D +AbstractManager	C /AbstractContainer	B +DomainException	A Module	+@ WDiStrictAbstractServiceFactoryFactory	$? IDiStrictAbstractServiceFactory	!> CDiServiceInitializerFactory	= 5DiServiceInitializer	< -DiServiceFactory	; 9DiInstanceManagerProxy	: DiFactory	%9 KDiAbstractServiceFactoryFactory	8 =DiAbstractServiceFactory	7 )ConfigProvider	6 1LazyServiceFactory	5 -InvokableFactory	4 =ServiceNotFoundException	 3 AServiceNotCreatedException	2 ;InvalidServiceException	1 =InvalidArgumentException	0 5CyclicAliasException	// _ContainerModificationsNotAllowedException	. )ServiceManager	- Config	, 7AbstractPluginManager	+ -RuntimeException	* =InvalidArgumentException	) 9BadMethodCallException	( 7ReflectionReturnValue	' 3ReflectionParameter	& -ReflectionMethod	% 1ReflectionFunction	$ +ReflectionClass	# Prototype	
" Node	! -AbstractFunction	  Prototype	 Parameter	 !Definition	 Callback	 -RuntimeException	 =InvalidArgumentException	 9BadMethodCallException	 !Reflection	 !Definition	 Cache	 )AbstractServer	 -RuntimeException	 =InvalidArgumentException	! CExtensionNotLoadedException	 !Serializer	 Module	 )ConfigProvider	! CAdapterPluginManagerFactory	 5AdapterPluginManager	 #WddxOptions	
 Wddx	 3PythonPickleOptions	
 %PythonPickle		 %PhpSerialize	 PhpCode	 MsgPack	 #JsonOptions	
 Json	 IgBinary	 )AdapterOptions	 +AbstractAdapter	 Wildcard	  )TreeRouteStack	# GTranslatorAwareTreeRouteStack	~ Segment	} Scheme	| !RouteMatch	{ Regex	
z Part	y Method	x Literal	w /HttpRouterFactory	v Hostname	u Chain	t -RuntimeException	s =InvalidArgumentException	r -SimpleRouteStack	q 'RouterFactory	p ?RoutePluginManagerFactory	o 1RoutePluginManager	n !RouteMatch	m 7RouteInvokableFactory	l %PriorityList	k Module	j )ConfigProvider	i Request	h /Psr7ServerRequest	g %Psr7Response	f )UploadProgress	e +SessionProgress	d #ApcProgress	c 7AbstractUploadHandler	b #ProgressBar	a -RuntimeException	` ;PhpEnvironmentException	_ 3OutOfRangeException	^ =InvalidArgumentException	] -RuntimeException	\ =InvalidArgumentException	[ JsPush	Z JsPull	Y Console	X +AbstractAdapter	W =InvalidArgumentException	   j p]J4p_N:#x_A3&seBuL*






o
_
>


					k	A	qP/vfE#naTE9&vgRB1 seM@+}m^D5#vdL?1 j      9BadMethodCallException
' %RecordExists
& )NoRecordExists
& !AbstractDb
&
 Upce
%
 Upca
%
 Sscc
% Royalmail
% Postnet
% Planet
% Leitcode
% Itf14
%
 Issn
% +Intelligentmail
% Identcode
% Gtin14
% Gtin13
% Gtin12
%
 Ean8
%
 Ean5
%
 Ean2
% Ean18
%
 Ean14
%	 Ean13
% Ean12
% Code93ext
% Code93
% Code39ext
% Code39
% /Code25interleaved
% Code25
% Code128
%  Codabar
% +AbstractAdapter
%#~ GValidatorPluginManagerFactory
$} 9ValidatorPluginManager
$| )ValidatorChain
$
{ Uuid
$	z Uri
$y Timezone
$x %StringLength
$
w Step
$v +StaticValidator
$u Regex
$t NotEmpty
$s Module
$r LessThan
$q %IsInstanceOf
$
p Isbn
$o Ip
$n InArray
$m Identical
$
l Iban
$k Hostname
$	j Hex
$i #GreaterThan
$h GpsPoint
$g Explode
$f %EmailAddress
$e Digits
$d DateStep
$
c Date
$
b Csrf
$a !CreditCard
$` )ConfigProvider
$_ Callback
$^ Bitwise
$] Between
$\ Barcode
$[ /AbstractValidator
$Z !UriFactory
#	Y Uri
#X Mailto
#
W Http
#
V File
#U ;InvalidUriPartException
"T 3InvalidUriException
"S =InvalidArgumentException
"R =UnexpectedValueException
!Q /OverflowException
!P 5OutOfBoundsException
!O ?InvalidDecoratorException
!N =InvalidArgumentException
!M Unicode
 L Blank
 K Ascii
 J Table
	I Row
H -DecoratorManager
G Column
F MultiByte
E Figlet
D =UnexpectedValueException
C -RuntimeException
B =InvalidArgumentException
A =UnexpectedValueException
@ -RuntimeException
? /OverflowException
> 5OutOfBoundsException
= =InvalidArgumentException
< %ModuleLoader
$; IAbstractHttpControllerTestCase
 : AAbstractControllerTestCase
'9 OAbstractConsoleControllerTestCase
8 5OutOfBoundsException
!7 CInvalidElementNameException
#6 GInvalidAttributeNameException
5 =InvalidArgumentException
4 ItemList

3 Item
2 Cloud
1 9DecoratorPluginManager
0 =InvalidArgumentException
/ HtmlTag
. HtmlCloud
- #AbstractTag
, /AbstractDecorator
+ 'AbstractCloud
* -OriginalMessages
) +NotFoundHandler
( 9ErrorResponseGenerator
' %ErrorHandler
& ?CallableMiddlewareWrapper
&% MCallableInteropMiddlewareWrapper
$ Response
# Request
'" OMissingResponsePrototypeException
! =MissingResponseException
  =MissingDelegateException
 3MiddlewareException
! CInvalidRequestTypeException
  AInvalidMiddlewareException
 Utils
 Route
 -NoopFinalHandler

 Next
 )MiddlewarePipe
 %FinalHandler
 Dispatch
 ?CallableDelegateDecorator
 Native
 MbString

 Intl
 Iconv
 7AbstractStringWrapper
 -RuntimeException
 )LogicException
 =InvalidArgumentException
! CExtensionNotLoadedException
 +DomainException

 9BadMethodCallException
	 +MergeReplaceKey
 )MergeRemoveKey
 #StringUtils
 SplStack
 SplQueue
 -SplPriorityQueue
 Response
 Request
 'PriorityQueue
  %PriorityList
 !Parameters
~ Message

} Glob
| /FastPriorityQueue
{ %ErrorHandler
z 'ConsoleHelper
y !ArrayUtils
x !ArrayStack
w #ArrayObject
v +AbstractOptions
u 1DefaultComplexType

t Composite

s 3ArrayOfTypeSequence

r 1ArrayOfTypeComplex

    |n`G/ |o`M;,
fM,ziW@/yiXC6'






{
o
]
F
/


 							n	P	8		ydO;!dI0	sR9	kYL>1#{hYF6%                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
8 Text
C7 Struct
C	6 Nil
C5 Integer
C4 Double
C3 DateTime
C2 Boolean
C1 !BigInteger
C0 Base64
C/ !ArrayValue
C. )AbstractScalar
C- 1AbstractCollection
C, -RuntimeException
B+ =InvalidArgumentException
B* 9BadMethodCallException
B) System
A( Fault
A' Cache
A
& Http
@% Stdin
?
$ Http
?# XmlWriter
>" #DomDocument
>! /AbstractGenerator
>  )ValueException
= -RuntimeException
= =InvalidArgumentException
= 9BadMethodCallException
= #ServerProxy
< 3ServerIntrospection
< -RuntimeException
; =InvalidArgumentException
; 3IntrospectException
; 'HttpException
; )FaultException
; Server
: Response
: Request
: Fault
: Client
: 'AbstractValue
: Xml2Json
9 -RuntimeException
8 1RecursionException
8 3PhpRendererStrategy
7 %JsonStrategy
7
 %FeedStrategy
7	 /TemplatePathStack
6 3TemplateMapResolver
6 =RelativeFallbackResolver
6 ;PrefixPathStackResolver
6 /AggregateResolver
6 #PhpRenderer
5 %JsonRenderer
5 %FeedRenderer
5 +ConsoleRenderer
5  ViewModel
4 JsonModel
4~ FeedModel
4} %ConsoleModel
4| ViewEvent
3
{ View
3z Variables
3y Stream
3x 3HelperPluginManager
3w +IdentityFactory
2v 7FlashMessengerFactory
2u Registry
1t Container
1s 1AbstractStandalone
0r /AbstractContainer
0q #AclListener
/p Sitemap
.o 'PluginManager
.
n Menu
.m Links
.l #Breadcrumbs
.k )AbstractHelper
.j )AbstractHelper
-i ViewModel
,	h Url
,g ServerUrl
,f 3RenderToPlaceholder
,e -RenderChildModel
,d #Placeholder
,c #PartialLoop
,b Partial
,a /PaginationControl
,` !Navigation
,_ Layout
,
^ Json
,] %InlineScript
,\ Identity
,[ HtmlTag
,Z 'HtmlQuicktime
,Y HtmlPage
,X !HtmlObject
,W HtmlList
,V HtmlFlash
,U HeadTitle
,T HeadStyle
,S !HeadScript
,R HeadMeta
,Q HeadLink
,P Gravatar
,O )FlashMessenger
,N EscapeUrl
,M EscapeJs
,L )EscapeHtmlAttr
,K !EscapeHtml
,J EscapeCss
,I Doctype
,H #DeclareVars
,G Cycle
,F BasePath
,E 3AbstractHtmlElement
,D )AbstractHelper
,C =UnexpectedValueException
+B -RuntimeException
+A 9InvalidHelperException
+@ =InvalidArgumentException
+? +DomainException
+> 9BadMethodCallException
+= Priority
*	< Loc
*; Lastmod
*: !Changefreq
*9 Isbn13
)8 Isbn10
)7 WordCount
(6 !UploadFile
(5 Upload
(
4 Size
(
3 Sha1
(2 NotExists
(1 MimeType
(	0 Md5
(/ IsImage
(. %IsCompressed
(- ImageSize
(
, Hash
(+ FilesSize
(* Extension
() Exists
(( +ExcludeMimeType
(' -ExcludeExtension
(& Crc32
(% Count
($ -RuntimeException
'## GInvalidMagicMimeFileException
'" =InvalidArgumentException
'!! CExtensionNotLoadedException
'   5 pW>(eI0 hO5w^E/u\D+





r
[
A
$
						w	^	D	+	rXD!
kO2hO(hCtS>$vW="dM.kP5              1PluginClassLocator  1ExceptionInterface  5ObjectClassInterface  9AttributeTypeInterface  1ExceptionInterface  1ExceptionInterface 
 1ExceptionInterface 	 1ExceptionInterface  1ExceptionInterface  9InputProviderInterface  )InputInterface " EInputFilterProviderInterface  5InputFilterInterface  ?InputFilterAwareInterface  1ExceptionInterface  =TranslatorAwareInterface   7RemoteLoaderInterface  3FileLoaderInterface ~ 1ExceptionInterface } ;MultipleHeaderInterface | +HeaderInterface { 1ExceptionInterface z 1ExceptionInterface y 1ExceptionInterface x 1ExceptionInterface w +StreamInterface v -AdapterInterface u 1ExceptionInterface t 'FormInterface s ?FormFactoryAwareInterface #r GFieldsetPrepareAwareInterface q /FieldsetInterface "p EElementPrepareAwareInterface o -ElementInterface n +FilterInterface m 1ExceptionInterface "l EEncryptionAlgorithmInterface #k GCompressionAlgorithmInterface j 1ExceptionInterface i 1ExceptionInterface h /RendererInterface g /RendererInterface{f 1ExceptionInterfaceze 'FeedInterfacewd 1ExceptionInterfacelc )EntryInterfacek%b MSubscriptionPersistenceInterfacega 1ExceptionInterfacef` /CallbackInterfacee_ 1ExceptionInterfaced^ +FilterInterfacec] 1ExceptionInterfaceb \ CSharedEventManagerInterfacea%[ MSharedEventManagerAwareInterfaceaZ AListenerAggregateInterfaceaY 9EventsCapableInterfaceaX 7EventManagerInterfaceaW AEventManagerAwareInterfaceaV )EventInterfaceaU 1ExceptionInterface`T 1ExceptionInterface^S 1ExceptionInterface[R ;ServiceLocatorInterfaceVQ -LocatorInterfaceV!P EDependencyInjectionInterfaceVO 'PartialMarkerXN 3DefinitionInterfaceXM 7TableGatewayInterfaceQL 1ExceptionInterfaceRK 1PredicateInterfacePJ APlatformDecoratorInterfaceNI %SqlInterfaceLH 9PreparableSqlInterfaceLG 3ExpressionInterfaceLF 1ExceptionInterfaceME 3RowGatewayInterfaceID 1ExceptionInterfaceJC 1ResultSetInterfaceGB 1ExceptionInterfaceHA /MetadataInterfaceD@ 1ExceptionInterfaceC? /PlatformInterfaceB> 1ExceptionInterfaceA= 1ExceptionInterface@< 9DriverFeatureInterface:; 1StatementInterfaceM: +ResultInterfaceM9 +DriverInterfaceM8 3ConnectionInterfaceM 7 CStatementContainerInterface96 7AdapterAwareInterface95 1SymmetricInterface74 -PaddingInterface83 1ExceptionInterface62 1ExceptionInterface51 /PasswordInterface10 1ExceptionInterface2/ 1ExceptionInterface/. 1ExceptionInterface.- +PromptInterface,, 1ExceptionInterface++ )ColorInterface** -CharsetInterface)) -AdapterInterface(( +WriterInterface'' +ReaderInterface&& 1ProcessorInterface%% 1ExceptionInterface$$ -ScannerInterface"# 3ReflectionInterface" 1ExceptionInterface!! %TagInterface  1GeneratorInterface 1ExceptionInterface 1ExceptionInterface +ParserInterface 3AnnotationInterface 1ExceptionInterface -AdapterInterface +PluginInterface ATotalSpaceCapableInterface /TaggableInterface -StorageInterface 5OptimizableInterface /IteratorInterface /IterableInterface 1FlushableInterface 7ClearExpiredInterface 9ClearByPrefixInterface ?ClearByNamespaceInterface# IAvailableSpaceCapableInterface -PatternInterface 1ExceptionInterface /RendererInterface
 1ExceptionInterface	 +ObjectInterface
 1ExceptionInterface 1ExceptionInterface	 -StorageInterface 1ExceptionInterface /ResolverInterface 1ExceptionInterface 1ExceptionInterface -	AdapterInterface   % fN5y[@%sZ?$	qQ*uT0




r
Z
?
(
						t	R	7	{bG8)_?}b?$hO5 tZ?$	oT<$jO6sX@%            1ExceptionInterface^ +ObjectInterface[ 1ExceptionInterface\ 1ExceptionInterfaceZ -StorageInterfaceW 1ExceptionInterfaceV /ResolverInterfaceS 1ExceptionInterfaceT 1ExceptionInterfaceR! CValidatableAdapterInterfaceQ -AdapterInterfaceQ 1ExceptionInterfaceK 1GeneratorInterfaceG 1ExceptionInterfaceF 1ExceptionInterfaceD
 /ResolverInterfaceA	 7TreeRendererInterface@ /RendererInterface@ )ModelInterface? +HelperInterface; +HelperInterface9 1ExceptionInterface8 1ValidatorInterface1 1ExceptionInterface4 -AdapterInterface2  %UriInterface0 1ExceptionInterface/~ 1ExceptionInterface.} 1DecoratorInterface-| 1ExceptionInterface){ 1ExceptionInterface(z /TaggableInterface&y 1ExceptionInterface'x 1ExceptionInterface$w 1DecoratorInterface#v /StrategyInterface"u =StrategyEnabledInterface!t /HydratorInterface!s 1ExceptionInterface r /ResponseInterfaceq -RequestInterfacep 3ParametersInterfaceo =ParameterObjectInterfacen -MessageInterfacem 7DispatchableInterface l AArraySerializableInterface"k EComplexTypeStrategyInterfacej 1ExceptionInterface i ADiscoveryStrategyInterfaceh 1ValidatorInterfaceg -StorageInterfacef 5SaveHandlerInterfacee -ManagerInterfaced 1ExceptionInterfacec +ConfigInterfaceb 1ExceptionInterface"a EServiceManagerAwareInterface` ;ServiceLocatorInterface"_ EServiceLocatorAwareInterface^ 5InitializerInterface] -FactoryInterface\ +ConfigInterface[ =AbstractFactoryInterfaceZ 1ExceptionInterfaceY 1ExceptionInterfaceX ServerW ClientV 1ExceptionInterface
U -AdapterInterfaceT 1ExceptionInterfaceS 1ExceptionInterfaceR 'RoleInterfaceQ /ResourceInterfaceP 1ExceptionInterfaceO 1AssertionInterfacePN ;ScrollingStyleInterface M 1ExceptionInterface L ?AdapterAggregateInterface K 1ExceptionInterface J -AdapterInterface I 1ExceptionInterface H 3RouteStackInterface G )RouteInterface F )RouteInterface E 1ExceptionInterface D )RouteInterface C 1ExceptionInterface B +PluginInterface %A KInjectApplicationEventInterface @ 5ApplicationInterface ? 9ModuleManagerInterface > 1ExceptionInterface = =ServiceListenerInterface < 7ConfigMergerInterface !; CViewHelperProviderInterfaceO: =ServiceProviderInterfaceO 9 ALocatorRegisteredInterfaceO8 7InitProviderInterfaceO!7 CControllerProviderInterfaceO'6 OControllerPluginProviderInterfaceO#5 GConsoleUsageProviderInterfaceO$4 IConsoleBannerProviderInterfaceO3 ;ConfigProviderInterfaceO 2 ABootstrapListenerInterfaceO!1 CAutoloaderProviderInterfaceO0 1ExceptionInterface / 1ExceptionInterface . 1ExceptionInterface - 1ContainerInterface , 1ExceptionInterface + 1ExceptionInterface * -AdapterInterface ) 1TransportInterface ( 1ExceptionInterface ' /WritableInterface & 'PartInterface % 1ExceptionInterface $ -MessageInterface # +FolderInterface " 1ExceptionInterface ! 1ExceptionInterface   7UnstructuredInterface  3StructuredInterface  =MultipleHeadersInterface  +HeaderInterface  1ExceptionInterface  1ExceptionInterface  -AddressInterfaceN +WriterInterface  -FirePhpInterface  +LoggerInterface  5LoggerAwareInterface  1FormatterInterface  +FilterInterface  1ExceptionInterface  'SplAutoloader  -ShortNameLocator    ! iJ,jR9ydI-|eJ2x]?&




|
a
F
,
						m	Q	6	oS=wT6|S8 u_D*t\3}bI1rV8b<!              1ExceptionInterface
# GUnknownInputsCapableInterface 9InputProviderInterface )InputInterface" EInputFilterProviderInterface 5InputFilterInterface ?InputFilterAwareInterface 1ExceptionInterface =TranslatorAwareInterface 7RemoteLoaderInterface 3FileLoaderInterface 1ExceptionInterface ;MultipleHeaderInterface +HeaderInterface 1ExceptionInterface 1ExceptionInterface 1ExceptionInterface 1ExceptionInterface +StreamInterface -AdapterInterface 1ExceptionInterface
 'FormInterface	 ?FormFactoryAwareInterface# GFieldsetPrepareAwareInterface /FieldsetInterface" EElementPrepareAwareInterface -ElementInterface& MElementAttributeRemovalInterface +FilterInterface 1ExceptionInterface" EEncryptionAlgorithmInterface#  GCompressionAlgorithmInterface 1ExceptionInterface~ 1ExceptionInterface} /RendererInterface| /RendererInterface{ 1ExceptionInterfacez 'FeedInterfacey 1ExceptionInterfacex )EntryInterface&w MSubscriptionPersistenceInterfacev 1ExceptionInterfaceu /CallbackInterfacet 1ExceptionInterfaces +FilterInterfacer 1ExceptionInterface&q MSharedListenerAggregateInterface!p CSharedEventManagerInterface&o MSharedEventManagerAwareInterface(n QSharedEventAggregateAwareInterface m AListenerAggregateInterfacel 9EventsCapableInterfacek 7EventManagerInterface j AEventManagerAwareInterfacei )EventInterfaceh 1ExceptionInterfaceg 1ExceptionInterfacef 1ExceptionInterfacee ;ServiceLocatorInterfaced -LocatorInterface"c EDependencyInjectionInterfaceb 'PartialMarkera 3DefinitionInterface` 7TableGatewayInterface_ 1ExceptionInterface^ 1PredicateInterface ] APlatformDecoratorInterface\ %SqlInterface[ 9PreparableSqlInterfaceZ 3ExpressionInterfaceY 1ExceptionInterfaceX 3RowGatewayInterfaceW 1ExceptionInterfaceV 1ResultSetInterfaceU 1ExceptionInterfaceT /MetadataInterfaceS 1ExceptionInterfaceR /ProfilerInterfaceQ 9ProfilerAwareInterfaceP /PlatformInterfaceO 1ExceptionInterfaceN 1ExceptionInterfaceM 9DriverFeatureInterfaceL 1StatementInterfaceK +ResultInterfaceJ +DriverInterfaceI 3ConnectionInterface!H CStatementContainerInterfaceG -AdapterInterfaceF 7AdapterAwareInterfaceE 1SymmetricInterfaceD -PaddingInterfaceC 1ExceptionInterfaceB 1ExceptionInterfaceA /PasswordInterface@ 1ExceptionInterface? 1ExceptionInterface> 1ExceptionInterface= +PromptInterface< 1ExceptionInterface~; )ColorInterface}: -CharsetInterface{9 -AdapterInterfacez8 +WriterInterfacey7 +ReaderInterfacex6 1ProcessorInterfacew5 1ExceptionInterfacev4 -ScannerInterfacet3 3ReflectionInterfacep2 1ExceptionInterfaces1 %TagInterfaceq0 ;PhpDocTypedTagInterfaceq/ 1GeneratorInterfacek. 1ExceptionInterfacen- 1ExceptionInterfacej, +ParserInterfacei+ 3AnnotationInterfaceh* 1ExceptionInterfaceg) -AdapterInterfacef( +PluginInterfacee ' ATotalSpaceCapableInterfaced& /TaggableInterfaced% -StorageInterfaced$ 5OptimizableInterfaced# /IteratorInterfaced" /IterableInterfaced! 1FlushableInterfaced  7ClearExpiredInterfaced 9ClearByPrefixInterfaced ?ClearByNamespaceInterfaced$ IAvailableSpaceCapableInterfaced -PatternInterface` 1ExceptionInterface_ /RendererInterface]   $ uX="	pU:!	eG,z_F+]=



}
]
8
					p	L	.	v[;$	pN3}gL1oN6 {cH/{X:w_?%tY?$                % 1ExceptionInterface$ /TaggableInterface# 1ExceptionInterface" 1ExceptionInterface! 1DecoratorInterface  9StringWrapperInterface /StrategyInterface =StrategyEnabledInterface =HydratorOptionsInterface /HydratorInterface ;FilterProviderInterface +FilterInterface 1ExceptionInterface /ResponseInterface -RequestInterface 3ParametersInterface =ParameterObjectInterface -MessageInterface 9InitializableInterface 7DispatchableInterface  AArraySerializableInterface" EComplexTypeStrategyInterface~ 1ExceptionInterface|  ADiscoveryStrategyInterfacey 1ValidatorInterfacex -StorageInterfacew 5SaveHandlerInterfacev
 -ManagerInterfaces	 1ExceptionInterfaceu +ConfigInterfacet 1ExceptionInterfacer" EServiceManagerAwareInterfacep ;ServiceLocatorInterfacep" EServiceLocatorAwareInterfacep 5InitializerInterfacep -FactoryInterfacep +ConfigInterfacep  =AbstractFactoryInterfacep 1ExceptionInterfaceo~ 1ExceptionInterfacel} Serverk| Clientk{ 1ExceptionInterfacejz -AdapterInterfacehy 9UploadHandlerInterfacegx 1ExceptionInterfaceew 1ExceptionInterfacedv 1ExceptionInterfacebu 'RoleInterfaceat 1AssertionInterfaceas 'RoleInterface`r /ResourceInterface_q 1ExceptionInterface^p 1AssertionInterfaceo %AclInterface]n ;ScrollingStyleInterface\m 1ExceptionInterface[l ?AdapterAggregateInterfaceZk 1ExceptionInterfaceXj -AdapterInterfaceWi 1ExceptionInterfaceSh 3RouteStackInterfaceMg )RouteInterfaceMf )RouteInterfaceLe 1ExceptionInterfaceKd )RouteInterfaceJc ;ResponseSenderInterfaceIb 1ExceptionInterfaceHa +PluginInterfaceG%` KInjectApplicationEventInterfaceE_ 5ApplicationInterfaceE^ 9ModuleManagerInterfaceD] 1ExceptionInterfaceC\ =ServiceListenerInterfaceB[ 7ConfigMergerInterfaceB!Z CViewHelperProviderInterface Y AValidatorProviderInterfaceX =ServiceProviderInterface!W CSerializerProviderInterfaceV 9RouteProviderInterface U ALocatorRegisteredInterfaceT 7InitProviderInterface"S EFormElementProviderInterfaceR ;FilterProviderInterface"Q EDependencyIndicatorInterface!P CControllerProviderInterface'O OControllerPluginProviderInterface#N GConsoleUsageProviderInterface$M IConsoleBannerProviderInterfaceL ;ConfigProviderInterface K ABootstrapListenerInterface!J CAutoloaderProviderInterfaceI 1ExceptionInterfaceAH 1ExceptionInterface@G 1ExceptionInterface=F 1ContainerInterface<E 1ExceptionInterface:D 1ExceptionInterface9C -AdapterInterface7B 1TransportInterface6A 1ExceptionInterface5@ /WritableInterface4? 'PartInterface3> 1ExceptionInterface2= -MessageInterface1< +FolderInterface0; 1ExceptionInterface/: 1ExceptionInterface,9 7UnstructuredInterface)8 3StructuredInterface)7 =MultipleHeadersInterface)6 +HeaderInterface)5 1ExceptionInterface*4 1ExceptionInterface(3 -AddressInterface2 +WriterInterface$1 -FirePhpInterface&0 1ChromePhpInterface%/ 1ProcessorInterface#. +LoggerInterface"- 5LoggerAwareInterface", 1FormatterInterface!+ +FilterInterface * 1ExceptionInterface) 'SplAutoloader( -ShortNameLocator' 1PluginClassLocator& 1ExceptionInterface% 5ObjectClassInterface$ 9AttributeTypeInterface# 1ExceptionInterface" 1ExceptionInterface! 1ExceptionInterface  1ExceptionInterface   8 fK0v\A&}bH-v]6kR8





z
_
D
$
						q	Y	@	'	rW<#yaF'iN3|]H%
zaA&yV+gM2	mR8                              . /RendererInterface?- 1ExceptionInterface>, /ResponseInterface*+ +ClientInterface** 'FeedInterface:) ?ExtensionManagerInterface,( 1ExceptionInterface/' )EntryInterface.&& MSubscriptionPersistenceInterface*% 1ExceptionInterface)$ /CallbackInterface(# 1ExceptionInterface'" +FilterInterface&! 1ExceptionInterface%&  MSharedListenerAggregateInterface$! CSharedEventManagerInterface$& MSharedEventManagerAwareInterface$( QSharedEventAggregateAwareInterface$  AListenerAggregateInterface$ 9EventsCapableInterface$ 7EventManagerInterface$  AEventManagerAwareInterface$ )EventInterface$ 1ExceptionInterface# 1ExceptionInterface! 1ExceptionInterface ;ServiceLocatorInterface -LocatorInterface" EDependencyInjectionInterface 'PartialMarker 3DefinitionInterface 7TableGatewayInterface 1ExceptionInterface 1PredicateInterface  APlatformDecoratorInterface %SqlInterface	
 9PreparableSqlInterface		 3ExpressionInterface	 1ExceptionInterface %SqlInterface
 3ConstraintInterface +ColumnInterface 3RowGatewayInterface 1ExceptionInterface 1ResultSetInterface 1ExceptionInterface  /MetadataInterface 1ExceptionInterface ~ /ProfilerInterface} 9ProfilerAwareInterface| /PlatformInterface{ 1ExceptionInterfacez 1ExceptionInterfacey 9DriverFeatureInterfacex 1StatementInterface)w +ResultInterface)v +DriverInterface)u 3ConnectionInterface)!t CStatementContainerInterfaces -AdapterInterfacer 7AdapterAwareInterfaceq 1SymmetricInterfacep -PaddingInterfaceo 1ExceptionInterfacen 1ExceptionInterfacem /PasswordInterfacel 1ExceptionInterfacek 1ExceptionInterfacej 1ExceptionInterfacei +PromptInterfaceh 1ExceptionInterfaceg )ColorInterfacef -CharsetInterfacee -AdapterInterfaced +WriterInterfacec +ReaderInterfaceb 1ProcessorInterfacea 1ExceptionInterface` -ScannerInterface_ 3ReflectionInterface^ 1ExceptionInterface] %TagInterface\ ;PhpDocTypedTagInterface[ 1GeneratorInterfaceZ 1ExceptionInterfaceY 1ExceptionInterfaceX +ParserInterfaceW 3AnnotationInterfaceV 1ExceptionInterfaceU -AdapterInterfaceT +PluginInterface S ATotalSpaceCapableInterfaceR /TaggableInterfaceQ -StorageInterfaceP 5OptimizableInterfaceO /IteratorInterfaceN /IterableInterfaceM 1FlushableInterfaceL 7ClearExpiredInterfaceK 9ClearByPrefixInterfaceJ ?ClearByNamespaceInterface$I IAvailableSpaceCapableInterfaceH -PatternInterfaceG 1ExceptionInterfaceF /RendererInterfaceE 1ExceptionInterfaceD +ObjectInterfaceC 1ExceptionInterfaceB 1ExceptionInterfaceA -StorageInterface@ 1ExceptionInterface? /ResolverInterface> 1ExceptionInterface= 1ExceptionInterface< 1ExceptionInterface!; CValidatableAdapterInterface: -AdapterInterface9 1ExceptionInterface8 1GeneratorInterface7 1ExceptionInterface6 1ExceptionInterface5 /ResolverInterface4 7TreeRendererInterface3 /RendererInterface2 )ModelInterface1 ;ClearableModelInterface0 +HelperInterface/ +HelperInterface. 1ExceptionInterface- 1ValidatorInterface, 1ExceptionInterface+ -AdapterInterface* %UriInterface) 1ExceptionInterface( 1ExceptionInterface' 1DecoratorInterface& 1ExceptionInterface    hC(iG1yaA&
nI2fK,





w
\
?
'
						q	Y	8	|fL1v[7}Y4gH$}bC&ybK/nS8gN3$   3 Server2 Client1 1ExceptionInterface0 -AdapterInterface/ 9UploadHandlerInterface. 1ExceptionInterface- 1ExceptionInterface, 1ExceptionInterface+ 'RoleInterface* 1AssertionInterface) 'RoleInterface( /ResourceInterface' 1ExceptionInterface& 1AssertionInterface-% %AclInterface$ ;ScrollingStyleInterface# 1ExceptionInterface" ?AdapterAggregateInterface! 1ExceptionInterface  -AdapterInterface 1ExceptionInterface 3RouteStackInterface )RouteInterface )RouteInterface 1ExceptionInterface )RouteInterface ;ResponseSenderInterface 1ExceptionInterface +PluginInterface% KInjectApplicationEventInterface 5ApplicationInterface 9ModuleManagerInterface 1ExceptionInterface =ServiceListenerInterface 7ConfigMergerInterface! CViewHelperProviderInterface,  AValidatorProviderInterface, =ServiceProviderInterface,! CSerializerProviderInterface, 9RouteProviderInterface,  ALocatorRegisteredInterface,"
 EInputFilterProviderInterface,	 7InitProviderInterface, ?HydratorProviderInterface," EFormElementProviderInterface, ;FilterProviderInterface," EDependencyIndicatorInterface,! CControllerProviderInterface,' OControllerPluginProviderInterface,# GConsoleUsageProviderInterface,$ IConsoleBannerProviderInterface,  ;ConfigProviderInterface,  ABootstrapListenerInterface,!~ CAutoloaderProviderInterface,} 1ExceptionInterface| 1ExceptionInterface{ 1ExceptionInterfacez 1ContainerInterfacey 1ExceptionInterfacex 1ExceptionInterfacew -AdapterInterfacev 1TransportInterfaceu 1ExceptionInterfacet /WritableInterfaces 'PartInterfacer 1ExceptionInterfaceq -MessageInterfacep +FolderInterfaceo 1ExceptionInterfacen 1ExceptionInterfacem 7UnstructuredInterfacel 3StructuredInterfacek =MultipleHeadersInterfacej +HeaderInterfacei 1ExceptionInterfaceh 1ExceptionInterfaceg -AddressInterface+f +WriterInterfacee -FirePhpInterfaced 1ChromePhpInterfacec 1ProcessorInterfaceb +LoggerInterfacea 5LoggerAwareInterface` 1FormatterInterface_ +FilterInterface^ 1ExceptionInterface] 'SplAutoloader\ -ShortNameLocator[ 1PluginClassLocatorZ 1ExceptionInterfaceY 5ObjectClassInterfaceX 9AttributeTypeInterfaceW 1ExceptionInterfaceV 1ExceptionInterfaceU 1ExceptionInterfaceT 1ExceptionInterfacexS 1ExceptionInterfacevR 1ExceptionInterfacet#Q GUnknownInputsCapableInterfacesP 9InputProviderInterfacesO )InputInterfaces"N EInputFilterProviderInterfacesM 5InputFilterInterfacesL ?InputFilterAwareInterfacesK 7EmptyContextInterfacesJ =TranslatorAwareInterfacenI 7RemoteLoaderInterfacemH 3FileLoaderInterfacemG 1ExceptionInterfacekF ;MultipleHeaderInterfacefE +HeaderInterfacefD 1ExceptionInterfacehC 1ExceptionInterfaceeB 1ExceptionInterfacedA 1ExceptionInterfaceb@ +StreamInterfacea? -AdapterInterfacea> 1ExceptionInterface[= 'FormInterfaceZ< ?FormFactoryAwareInterfaceZ#; GFieldsetPrepareAwareInterfaceZ: /FieldsetInterfaceZ"9 EElementPrepareAwareInterfaceZ8 -ElementInterfaceZ&7 MElementAttributeRemovalInterfaceZ6 +FilterInterfaceR5 1ExceptionInterfaceU"4 EEncryptionAlgorithmInterfaceT#3 GCompressionAlgorithmInterfaceS2 1ExceptionInterfaceP1 1ExceptionInterfaceN0 /RendererInterfaceH/ ?ExtensionManagerInterface=   4 oV9tY@#eB$|aI)
uZ?$






n
U
:
						j	J	3	u\8rW<$	rS5 s[B'kP0 }eL3z`E*gO4                              : 1StatementInterface9 +ResultInterface8 +DriverInterface7 3ConnectionInterface!6 CStatementContainerInterfacen5 -AdapterInterfacen4 7AdapterAwareInterfacen3 1SymmetricInterfacel2 -PaddingInterfacem1 1ExceptionInterfacek0 1ExceptionInterfacej/ /PasswordInterfacef. 1ExceptionInterfaceg- 1ExceptionInterfaced, 1ExceptionInterfacec+ 7RouteMatcherInterfacea* +PromptInterface`) 1ExceptionInterface_( )ColorInterface^' -CharsetInterface\& -AdapterInterface[% +WriterInterfaceZ$ +ReaderInterfaceY# 1ProcessorInterfaceX" 1ExceptionInterfaceW! -ScannerInterfaceU  3ReflectionInterfaceQ 1ExceptionInterfaceT %TagInterfaceR ;PhpDocTypedTagInterfaceR 1PrototypeInterfaceO ?PrototypeGenericInterfaceO 1GeneratorInterfaceK 1ExceptionInterfaceN %TagInterfaceL 1ExceptionInterfaceJ +ParserInterfaceI 3AnnotationInterfaceH 1ExceptionInterfaceG -AdapterInterfaceF +PluginInterfaceE  ATotalSpaceCapableInterfaceD /TaggableInterfaceD -StorageInterfaceD 5OptimizableInterfaceD /IteratorInterfaceD /IterableInterfaceD 1FlushableInterfaceD
 7ClearExpiredInterfaceD	 9ClearByPrefixInterfaceD ?ClearByNamespaceInterfaceD$ IAvailableSpaceCapableInterfaceD -PatternInterface@ 1ExceptionInterface? /RendererInterface= 1ExceptionInterface> +ObjectInterface; 1ExceptionInterface<  1ExceptionInterface: -StorageInterface7~ 1ExceptionInterface6$} IAuthenticationServiceInterface5| /ResolverInterface3{ 1ExceptionInterface4z 1ExceptionInterface2y 1ExceptionInterface1!x CValidatableAdapterInterface/w -AdapterInterface/v 1ExceptionInterface&u 1GeneratorInterface"t 1ExceptionInterface!s 1ExceptionInterfacer /ResolverInterfaceq 7TreeRendererInterfacep /RendererInterfaceo )ModelInterfacen ;ClearableModelInterfacem +HelperInterfacel +HelperInterfacek 1ExceptionInterface*j UValidatorPluginManagerAwareInterface
i 1ValidatorInterface
h 3TranslatorInterface.g =TranslatorAwareInterface.f 1ExceptionInterfacee -AdapterInterfaced %UriInterface	c 1ExceptionInterfaceb 1ExceptionInterfacea 1DecoratorInterface` 1ExceptionInterface_ 1ExceptionInterface^ /TaggableInterface] 1ExceptionInterface\ 1ExceptionInterface[ 1DecoratorInterfaceZ 9StringWrapperInterfaceY /StrategyInterfaceX =StrategyEnabledInterfaceW =HydratorOptionsInterfaceV /HydratorInterfaceU 9HydratorAwareInterfaceT ;FilterProviderInterfaceS +FilterInterfaceR 1ExceptionInterfaceQ /ResponseInterfaceP -RequestInterfaceO 3ParametersInterfaceN =ParameterObjectInterfaceM -MessageInterfaceL 9InitializableInterfaceK 7DispatchableInterface J AArraySerializableInterface"I EComplexTypeStrategyInterfaceH 1ExceptionInterface G ADiscoveryStrategyInterfaceF 1ValidatorInterfaceE -StorageInterface$D IStorageInitializationInterfaceC 5SaveHandlerInterfaceB -ManagerInterfaceA 1ExceptionInterface@ +ConfigInterface? 1ExceptionInterface"> EServiceManagerAwareInterface= ;ServiceLocatorInterface"< EServiceLocatorAwareInterface%; KMutableCreationOptionsInterface: 5InitializerInterface9 -FactoryInterface8 ?DelegatorFactoryInterface7 +ConfigInterface6 =AbstractFactoryInterface5 1ExceptionInterface4 1ExceptionInterface   ) rX=#mR6oY4pR3oT<!




o
Y
A
'
						Z	5		[9#jO7gE(jO4qXB'pX?$	{`H/z_D)                     @ 1ExceptionInterface&? 1ContainerInterface%> 1ExceptionInterface"= 1ExceptionInterface!< -AdapterInterface; 1TransportInterface: 1ExceptionInterface9 /WritableInterface8 'PartInterface7 1ExceptionInterface6 -MessageInterface5 +FolderInterface4 1ExceptionInterface3 1ExceptionInterface2 7UnstructuredInterface1 3StructuredInterface0 =MultipleHeadersInterface/ +HeaderInterface. 1ExceptionInterface- 1ExceptionInterface, -AddressInterface+ +WriterInterface* -FirePhpInterface) 1ChromePhpInterface( 1ProcessorInterface' +LoggerInterface
& 5LoggerAwareInterface
% 1FormatterInterface	$ +FilterInterface# 1ExceptionInterface" 'SplAutoloader! -ShortNameLocator  1PluginClassLocator 1ExceptionInterface 5ObjectClassInterface 9AttributeTypeInterface 1ExceptionInterface 1ExceptionInterface 1ExceptionInterface 1ExceptionInterface 1ExceptionInterface 1ExceptionInterface# GUnknownInputsCapableInterface ?ReplaceableInputInterface 9InputProviderInterface )InputInterface" EInputFilterProviderInterface 5InputFilterInterface ?InputFilterAwareInterface 7EmptyContextInterface 3TranslatorInterface =TranslatorAwareInterface 7RemoteLoaderInterface 3FileLoaderInterface
 1ExceptionInterface	 ;MultipleHeaderInterface +HeaderInterface 1ExceptionInterface 1ExceptionInterface 1ExceptionInterface 1ExceptionInterface +StreamInterface -AdapterInterface 1ExceptionInterface  3LabelAwareInterface 'FormInterface~ ?FormFactoryAwareInterface#} GFieldsetPrepareAwareInterface| /FieldsetInterface"{ EElementPrepareAwareInterfacez -ElementInterface&y MElementAttributeRemovalInterfacex +FilterInterfacew 1ExceptionInterface"v EEncryptionAlgorithmInterface#u GCompressionAlgorithmInterfacet 1ExceptionInterfaces 1ExceptionInterfacer /RendererInterfaceq ?ExtensionManagerInterfacep /RendererInterfaceo 1ExceptionInterfacen /ResponseInterfacem +ClientInterfacel 'FeedInterfacek ?ExtensionManagerInterfacej 1ExceptionInterfacei )EntryInterface&h MSubscriptionPersistenceInterfaceg 1ExceptionInterfacef /CallbackInterfacee 1ExceptionInterfaced +FilterInterfacec 1ExceptionInterface&b MSharedListenerAggregateInterface!a CSharedEventManagerInterface&` MSharedEventManagerAwareInterface(_ QSharedEventAggregateAwareInterface ^ AListenerAggregateInterface] 9EventsCapableInterface\ 7EventManagerInterface [ AEventManagerAwareInterfaceZ )EventInterfaceY 1ExceptionInterfaceX 1ExceptionInterfaceW 1ExceptionInterfaceV ;ServiceLocatorInterfaceU -LocatorInterface"T EDependencyInjectionInterfaceS 'PartialMarkerR 3DefinitionInterfaceQ 7TableGatewayInterfaceP 1ExceptionInterfaceO 1PredicateInterface N APlatformDecoratorInterfaceM %SqlInterfaceL 9PreparableSqlInterfaceK 3ExpressionInterfaceJ 1ExceptionInterfaceI %SqlInterfaceH 3ConstraintInterfaceG +ColumnInterfaceF 3RowGatewayInterfaceE 1ExceptionInterfaceD 1ResultSetInterfaceC 1ExceptionInterfaceB /MetadataInterface|A 1ExceptionInterface{@ /ProfilerInterfacez? 9ProfilerAwareInterfacez> /PlatformInterfacey= 1ExceptionInterfacex< 1ExceptionInterfacew; 9DriverFeatureInterfaceo   " c<^<nJ)iL$qU:!




y
^
D
.
						t	Y	J	;	 	tL'{^7}_@'gO/tS3pU:cH tZ<"                        A /ResolverInterface@ 7TreeRendererInterface? /RendererInterface"> ERetrievableChildrenInterface= )ModelInterface< ;ClearableModelInterface; +HelperInterface: +HelperInterface9 1ExceptionInterface*8 UValidatorPluginManagerAwareInterface7 1ValidatorInterface6 3TranslatorInterface5 =TranslatorAwareInterface4 1ExceptionInterface3 -AdapterInterface2 %UriInterface1 1ExceptionInterface0 1ExceptionInterface/ 1DecoratorInterface. 1ExceptionInterface- 1ExceptionInterface~, /TaggableInterfacez+ 1ExceptionInterface{* 1ExceptionInterfacex) 1DecoratorInterfacew( 9StringWrapperInterfacev' 9PhpLegacyCompatibility& /StrategyInterfaceu% ;NamingStrategyInterfacet$ =StrategyEnabledInterfaceq$# INamingStrategyEnabledInterfaceq" =HydratorOptionsInterfaceq! /HydratorInterfaceq  9HydratorAwareInterfaceq 1HydrationInterfaceq 9FilterEnabledInterfaceq ;FilterProviderInterfaces +FilterInterfaces 3ExtractionInterface 1ExceptionInterfaceo /ResponseInterfacen -RequestInterfacen 3ParametersInterfacen =ParameterObjectInterfacen -MessageInterfacen -JsonSerializablen 9InitializableInterfacen 7DispatchableInterfacen  AArraySerializableInterfacen" EComplexTypeStrategyInterfacem 1ExceptionInterfacek  ADiscoveryStrategyInterfaceh 1ValidatorInterfaceg -StorageInterfacef$ IStorageInitializationInterfacef
 5SaveHandlerInterfaced	 -ManagerInterfacea 1ExceptionInterfacec +ConfigInterfaceb 1ExceptionInterface_" EServiceManagerAwareInterface] ;ServiceLocatorInterface]" EServiceLocatorAwareInterface]% KMutableCreationOptionsInterface] 5InitializerInterface]  -FactoryInterface] ?DelegatorFactoryInterface]~ +ConfigInterface]} =AbstractFactoryInterface]| 1ExceptionInterface\{ 1ExceptionInterfaceYz ServerXy ClientXx 1ExceptionInterfaceWw -AdapterInterfaceUv 9UploadHandlerInterfaceTu 1ExceptionInterfaceRt 1ExceptionInterfaceQs 1ExceptionInterfaceOr 'RoleInterfaceNq 1AssertionInterfaceNp 'RoleInterfaceMo /ResourceInterfaceLn 1ExceptionInterfaceKm 1AssertionInterfaceIl %AclInterfaceHk ;ScrollingStyleInterfaceGj 1ExceptionInterfaceFi ?AdapterAggregateInterfaceEh 1ExceptionInterfaceCg -AdapterInterfaceBf 1ExceptionInterface>e 3RouteStackInterface8d )RouteInterface8c )RouteInterface7b 1ExceptionInterface6a )RouteInterface5` ;ResponseSenderInterface4_ 1ExceptionInterface2^ +PluginInterface0%] KInjectApplicationEventInterface.\ 5ApplicationInterface.[ 9ModuleManagerInterface-Z 1ExceptionInterface,Y =ServiceListenerInterface+X 7ConfigMergerInterface+!W CViewHelperProviderInterface V AValidatorProviderInterfaceU =ServiceProviderInterface!T CSerializerProviderInterfaceS 9RouteProviderInterface R ALogWriterProviderInterface#Q GLogProcessorProviderInterface P ALocatorRegisteredInterface"O EInputFilterProviderInterfaceN 7InitProviderInterfaceM ?HydratorProviderInterface"L EFormElementProviderInterfaceK ;FilterProviderInterface"J EDependencyIndicatorInterface!I CControllerProviderInterface'H OControllerPluginProviderInterface#G GConsoleUsageProviderInterface$F IConsoleBannerProviderInterfaceE ;ConfigProviderInterface D ABootstrapListenerInterface!C CAutoloaderProviderInterfaceB 1ExceptionInterface*A 1ExceptionInterface)    {W<!v[C(rT9zaF*nS3





h
O
6

					}	c	H	-	jR7tZ?$	mN9kR2jGsX>#rZ@%sN3   I +FilterInterfaceOH 1ExceptionInterfaceR"G EEncryptionAlgorithmInterfaceQ#F GCompressionAlgorithmInterfacePE 1ExceptionInterfaceMD 1ExceptionInterfaceKC /RendererInterfaceEB ?ExtensionManagerInterface:A /RendererInterface<@ 1ExceptionInterface;? /ResponseInterface)> +ClientInterface)= 'FeedInterface7< 7ReaderImportInterface); ?ExtensionManagerInterface): 1ExceptionInterface,9 )EntryInterface+&8 MSubscriptionPersistenceInterface'7 1ExceptionInterface&6 /CallbackInterface%5 1ExceptionInterface$4 +FilterInterface#3 1ExceptionInterface"&2 MSharedListenerAggregateInterface!!1 CSharedEventManagerInterface!&0 MSharedEventManagerAwareInterface!(/ QSharedEventAggregateAwareInterface! . AListenerAggregateInterface!- 9EventsCapableInterface!, 7EventManagerInterface! + AEventManagerAwareInterface!* )EventInterface!) 1ExceptionInterface ( 1ExceptionInterface' 1ExceptionInterface& ;ServiceLocatorInterface% -LocatorInterface"$ EDependencyInjectionInterface# 'PartialMarker" 3DefinitionInterface! 7TableGatewayInterface  1ExceptionInterface 1PredicateInterface  APlatformDecoratorInterface %SqlInterface 9PreparableSqlInterface 3ExpressionInterface 1ExceptionInterface %SqlInterface 3ConstraintInterface +ColumnInterface 3RowGatewayInterface 1ExceptionInterface  1ResultSetInterface 1ExceptionInterface /MetadataInterface 1ExceptionInterface /ProfilerInterface 9ProfilerAwareInterface /PlatformInterface 1ExceptionInterface 1ExceptionInterface 9DriverFeatureInterface
 1StatementInterface	 +ResultInterface +DriverInterface 3ConnectionInterface! CStatementContainerInterface -AdapterInterface 7AdapterAwareInterface 1SymmetricInterface -PaddingInterface 1ExceptionInterface  1ExceptionInterface /PasswordInterface~ 1ExceptionInterface} 1ExceptionInterface| 1ExceptionInterface{ 7RouteMatcherInterfacez +PromptInterfacey 1ExceptionInterfacex )ColorInterfacew -CharsetInterfacev -AdapterInterfaceu +WriterInterfacet +ReaderInterfaces 1ProcessorInterfacer 1ExceptionInterfaceq -ScannerInterfacep 3ReflectionInterfaceo 1ExceptionInterfacen %TagInterfacem ;PhpDocTypedTagInterfacel 1PrototypeInterfacek ?PrototypeGenericInterfacej 3TraitUsageInterfacei 1GeneratorInterfaceh 1ExceptionInterfaceg %TagInterfacef 1ExceptionInterfacee +ParserInterfaced 3AnnotationInterfacec 1ExceptionInterfaceb -AdapterInterfacea +PluginInterface ` ATotalSpaceCapableInterface_ /TaggableInterface^ -StorageInterface] 5OptimizableInterface\ /IteratorInterface[ /IterableInterfaceZ 1FlushableInterfaceY 7ClearExpiredInterfaceX 9ClearByPrefixInterfaceW ?ClearByNamespaceInterface$V IAvailableSpaceCapableInterfaceU -PatternInterfaceT 1ExceptionInterfaceS /RendererInterfaceR 1ExceptionInterfaceQ +ObjectInterfaceP 1ExceptionInterfaceO 1ExceptionInterfaceN -StorageInterfaceM 1ExceptionInterface$L IAuthenticationServiceInterfaceK /ResolverInterfaceJ 1ExceptionInterfaceI 1ExceptionInterfaceH 1ExceptionInterface!G CValidatableAdapterInterfaceF -AdapterInterfaceE 1ExceptionInterfaceD 1GeneratorInterfaceC 1ExceptionInterfaceB 1ExceptionInterface    Y7!hM5eC&hM2oV@%





n
V
=
"
					y	^	F	-	x]B'c=cE qP&fI!	nR7v[A+qVG8             M 1ExceptionInterfaceL ServerK ClientJ 1ExceptionInterfaceI -AdapterInterfaceH 9UploadHandlerInterfaceG 1ExceptionInterfaceF 1ExceptionInterfaceE 1ExceptionInterfaceD 'RoleInterfaceC 1AssertionInterfaceB 'RoleInterfaceA /ResourceInterface@ 1ExceptionInterface? 1AssertionInterface> %AclInterface= ;ScrollingStyleInterface< 1ExceptionInterface; ?AdapterAggregateInterface: 1ExceptionInterface9 -AdapterInterface8 1ExceptionInterface7 3RouteStackInterface6 )RouteInterface5 )RouteInterface4 1ExceptionInterface3 )RouteInterface2 ;ResponseSenderInterface1 1ExceptionInterface0 +PluginInterface%/ KInjectApplicationEventInterface. 5ApplicationInterface- 9ModuleManagerInterface, 1ExceptionInterface+ =ServiceListenerInterface* 7ConfigMergerInterface!) CViewHelperProviderInterface+ ( AValidatorProviderInterface+'' OTranslatorPluginProviderInterface+& =ServiceProviderInterface+!% CSerializerProviderInterface+$ 9RouteProviderInterface+ # ALogWriterProviderInterface+#" GLogProcessorProviderInterface+ ! ALocatorRegisteredInterface+"  EInputFilterProviderInterface+ 7InitProviderInterface+ ?HydratorProviderInterface+" EFormElementProviderInterface+ ;FilterProviderInterface+" EDependencyIndicatorInterface+! CControllerProviderInterface+' OControllerPluginProviderInterface+# GConsoleUsageProviderInterface+$ IConsoleBannerProviderInterface+ ;ConfigProviderInterface+  ABootstrapListenerInterface+! CAutoloaderProviderInterface+ 1ExceptionInterface 1ExceptionInterface 1ExceptionInterface 1ContainerInterface 1ExceptionInterface 1ExceptionInterface -AdapterInterface 1TransportInterface 1ExceptionInterface
 /WritableInterface	 'PartInterface 1ExceptionInterface -MessageInterface +FolderInterface 1ExceptionInterface 1ExceptionInterface 7UnstructuredInterface 3StructuredInterface =MultipleHeadersInterface  +HeaderInterface 1ExceptionInterface~ 1ExceptionInterface} -AddressInterface*| +WriterInterface{ -FirePhpInterfacez 1ChromePhpInterfacey 1ProcessorInterfacex +LoggerInterfacew 5LoggerAwareInterfacev 1FormatterInterfaceu +FilterInterfacet 1ExceptionInterfaces 'SplAutoloaderr -ShortNameLocatorq 1PluginClassLocatorp 1ExceptionInterfaceo 5ObjectClassInterfacen 9AttributeTypeInterfacem 1ExceptionInterfacel 1ExceptionInterface}k 1ExceptionInterface|j 1ExceptionInterfaceui 1ExceptionInterfacesh 1ExceptionInterfaceq#g GUnknownInputsCapableInterfacepf ?ReplaceableInputInterfacepe 9InputProviderInterfacepd )InputInterfacep"c EInputFilterProviderInterfacepb 5InputFilterInterfacepa ?InputFilterAwareInterfacep` 7EmptyContextInterfacep_ 3TranslatorInterfacek^ =TranslatorAwareInterfacek] 7RemoteLoaderInterfacej\ 3FileLoaderInterfacej[ 1ExceptionInterfacehZ ;MultipleHeaderInterfacecY +HeaderInterfacecX 1ExceptionInterfaceeW 1ExceptionInterfacebV 1ExceptionInterfaceaU 1ExceptionInterface`T +StreamInterface_S -AdapterInterface_R 1ExceptionInterfaceYQ 3LabelAwareInterfaceXP 'FormInterfaceXO ?FormFactoryAwareInterfaceX#N GFieldsetPrepareAwareInterfaceXM /FieldsetInterfaceX"L EElementPrepareAwareInterfaceXK -ElementInterfaceX&J MElementAttributeRemovalInterfaceX   ) qT,t[>]? ~]B&{Z3





d
I
.
						x	_	D	#	tT=uZApW<!	yW8{X@'rV4y^F.y^C)                     S /PasswordInterfacefR 1ExceptionInterfacegQ 1ExceptionInterfacedP 1ExceptionInterfacecO 7RouteMatcherInterfaceaN +PromptInterface`M 1ExceptionInterface_L )ColorInterface^K -CharsetInterface\J -AdapterInterface[I +WriterInterfaceZH +ReaderInterfaceYG 1ProcessorInterfaceXF 1ExceptionInterfaceWE -ScannerInterfaceUD 3ReflectionInterfaceQC 1ExceptionInterfaceTB %TagInterfaceRA ;PhpDocTypedTagInterfaceR@ 1PrototypeInterfaceO? ?PrototypeGenericInterfaceO> 3TraitUsageInterfaceK= 1GeneratorInterfaceK< 1ExceptionInterfaceN; %TagInterfaceL: 1ExceptionInterfaceJ9 +ParserInterfaceI8 3AnnotationInterfaceH7 1ExceptionInterfaceG6 -AdapterInterfaceF5 +PluginInterfaceE 4 ATotalSpaceCapableInterfaceD3 /TaggableInterfaceD2 -StorageInterfaceD1 5OptimizableInterfaceD0 /IteratorInterfaceD/ /IterableInterfaceD. 1FlushableInterfaceD- 7ClearExpiredInterfaceD, 9ClearByPrefixInterfaceD+ ?ClearByNamespaceInterfaceD$* IAvailableSpaceCapableInterfaceD) -PatternInterface@( 1ExceptionInterface?' /RendererInterface=& 1ExceptionInterface>% +ObjectInterface;$ 1ExceptionInterface<# 1ExceptionInterface:" -StorageInterface7! 1ExceptionInterface6$  IAuthenticationServiceInterface5 /ResolverInterface3 1ExceptionInterface4 1ExceptionInterface2 1ExceptionInterface1! CValidatableAdapterInterface/ -AdapterInterface/ 1ExceptionInterface' 1GeneratorInterface# 1ExceptionInterface" 1ExceptionInterface  /ResolverInterface 7TreeRendererInterface /RendererInterface" ERetrievableChildrenInterface )ModelInterface ;ClearableModelInterface +HelperInterface +HelperInterface 1ExceptionInterface* UValidatorPluginManagerAwareInterface 1ValidatorInterface
 3TranslatorInterface.	 =TranslatorAwareInterface. 1ExceptionInterface -AdapterInterface %UriInterface
 1ExceptionInterface	 1ExceptionInterface 1DecoratorInterface 1ExceptionInterface 1ExceptionInterface  /TaggableInterface 1ExceptionInterface~ 1ExceptionInterface} 1DecoratorInterface| 9StringWrapperInterface{ 9PhpLegacyCompatibility-z /StrategyInterfacey 1ExceptionInterfacex ;NamingStrategyInterfacew =StrategyEnabledInterface$v INamingStrategyEnabledInterfaceu =HydratorOptionsInterfacet /HydratorInterfaces 9HydratorAwareInterfacer 1HydrationInterfaceq 9FilterEnabledInterfacep ;FilterProviderInterfaceo +FilterInterfacen 3ExtractionInterface,m 1ExceptionInterfacel =MergeReplaceKeyInterfacek /ResponseInterfacej -RequestInterfacei 3ParametersInterfaceh =ParameterObjectInterfaceg -MessageInterfacef -JsonSerializablee 9InitializableInterfaced 7DispatchableInterface c AArraySerializableInterface"b EComplexTypeStrategyInterfacea 1ExceptionInterface ` ADiscoveryStrategyInterface_ 1ValidatorInterface^ -StorageInterface$] IStorageInitializationInterface\ 5SaveHandlerInterface[ -ManagerInterfaceZ 1ExceptionInterfaceY +ConfigInterfaceX 1ExceptionInterface"W EServiceManagerAwareInterfaceV ;ServiceLocatorInterface"U EServiceLocatorAwareInterface%T KMutableCreationOptionsInterfaceS 5InitializerInterfaceR -FactoryInterfaceQ ?DelegatorFactoryInterfaceP +ConfigInterfaceO =AbstractFactoryInterfaceN 1ExceptionInterface   ( x_;eF,rVA&
}Y;	uZC 



l
H

					s	\	A		bH-kR-~eM2rT3~_=uV9iQ6bF(                      X 7UnstructuredInterfaceW 3StructuredInterfaceV =MultipleHeadersInterfaceU +HeaderInterfaceT 1ExceptionInterfaceS 1ExceptionInterfaceR -AddressInterfaceQ +WriterInterfaceP -FirePhpInterfaceO 1ChromePhpInterfaceN 1ProcessorInterfaceM +LoggerInterfaceL 5LoggerAwareInterfaceK 1FormatterInterfaceJ +FilterInterfaceI 1ExceptionInterfaceH 'SplAutoloader
G -ShortNameLocator
F 1PluginClassLocator
E 1ExceptionInterfaceD 5ObjectClassInterface	C 9AttributeTypeInterfaceB 1ExceptionInterfaceA 1ExceptionInterface@ 1ExceptionInterface ? 1ExceptionInterface> 1ExceptionInterface= 1ExceptionInterface#< GUnknownInputsCapableInterface; ?ReplaceableInputInterface: 9InputProviderInterface9 )InputInterface"8 EInputFilterProviderInterface7 5InputFilterInterface6 ?InputFilterAwareInterface5 7EmptyContextInterface4 3TranslatorInterface3 =TranslatorAwareInterface2 7RemoteLoaderInterface1 3FileLoaderInterface0 1ExceptionInterface/ ;MultipleHeaderInterface. +HeaderInterface- 1ExceptionInterface, 1ExceptionInterface+ 1ExceptionInterface* 1ExceptionInterface) +StreamInterface( -AdapterInterface' 1ExceptionInterface& 3LabelAwareInterface% 'FormInterface$ ?FormFactoryAwareInterface## GFieldsetPrepareAwareInterface" /FieldsetInterface"! EElementPrepareAwareInterface  -ElementInterface& MElementAttributeRemovalInterface +FilterInterface 1ExceptionInterface" EEncryptionAlgorithmInterface# GCompressionAlgorithmInterface 1ExceptionInterface 1ExceptionInterface /RendererInterface ?ExtensionManagerInterface /RendererInterface 1ExceptionInterface /ResponseInterface +ClientInterface 'FeedInterface 7ReaderImportInterface ?ExtensionManagerInterface 1ExceptionInterface )EntryInterface& MSubscriptionPersistenceInterface 1ExceptionInterface /CallbackInterface
 1ExceptionInterface	 +FilterInterface 1ExceptionInterface& MSharedListenerAggregateInterface! CSharedEventManagerInterface& MSharedEventManagerAwareInterface( QSharedEventAggregateAwareInterface  AListenerAggregateInterface 9EventsCapableInterface 7EventManagerInterface   AEventManagerAwareInterface )EventInterface~ 1ExceptionInterface} 1ExceptionInterface| 1ExceptionInterface{ ;ServiceLocatorInterfacez -LocatorInterface"y EDependencyInjectionInterfacex 'PartialMarkerw 3DefinitionInterfacev 7TableGatewayInterface!u CEventFeatureEventsInterfacet 1ExceptionInterfaces 1PredicateInterface r APlatformDecoratorInterfaceq %SqlInterfacep 9PreparableSqlInterfaceo 3ExpressionInterfacen 1ExceptionInterfacem %SqlInterfacel 3ConstraintInterfacek +ColumnInterfacej 3RowGatewayInterfacei 1ExceptionInterfaceh 1ResultSetInterfaceg 1ExceptionInterfacef /MetadataInterface~e 1ExceptionInterface}d /ProfilerInterface|c 9ProfilerAwareInterface|b /PlatformInterface{a 1ExceptionInterfacez` 1ExceptionInterfacey_ 9DriverFeatureInterfacep^ 1StatementInterfaceo] +ResultInterfaceo\ +DriverInterfaceo[ 3ConnectionInterfaceo!Z CStatementContainerInterfacenY -AdapterInterfacenX 7AdapterAwareInterfacenW 1SymmetricInterfacelV -PaddingInterfacemU 1ExceptionInterfacekT 1ExceptionInterfacej     ~hN3x]9[6iC oK-




u
Z
:
#
						o	M	2	|fK0nM5pK0lI.	wV:!wX={`F'kP5                     Z %UriInterfaceY 1ExceptionInterfaceX 1ExceptionInterfaceW 1DecoratorInterfaceV 1ExceptionInterfaceU 1ExceptionInterfaceT /TaggableInterfaceS 1ExceptionInterfaceR 1ExceptionInterfaceQ 1DecoratorInterfaceP 9StringWrapperInterface~O /StrategyInterface|N 1ExceptionInterface}M ;NamingStrategyInterface{L =StrategyEnabledInterfacex$K INamingStrategyEnabledInterfacexJ =HydratorOptionsInterfacexI /HydratorInterfacexH 9HydratorAwareInterfacexG 1HydrationInterfacexF 9FilterEnabledInterfacexE ;FilterProviderInterfacezD +FilterInterfacezC 3ExtractionInterfaceB 1ExceptionInterfacevA =MergeReplaceKeyInterfaceu@ /ResponseInterfacet? -RequestInterfacet> 3ParametersInterfacet= =ParameterObjectInterfacet< -MessageInterfacet; -JsonSerializablet: 9InitializableInterfacet9 7DispatchableInterfacet 8 AArraySerializableInterfacet"7 EComplexTypeStrategyInterfaces6 1ExceptionInterfaceq 5 ADiscoveryStrategyInterfacen4 1ValidatorInterfacem3 -StorageInterfacel$2 IStorageInitializationInterfacel1 5SaveHandlerInterfacej0 -ManagerInterfaceg/ 1ExceptionInterfacei. +ConfigInterfaceh- 1ExceptionInterfacee", EServiceManagerAwareInterfacec+ ;ServiceLocatorInterfacec"* EServiceLocatorAwareInterfacec%) KMutableCreationOptionsInterfacec( 5InitializerInterfacec' -FactoryInterfacec& ?DelegatorFactoryInterfacec% +ConfigInterfacec$ =AbstractFactoryInterfacec# 1ExceptionInterfaceb" 1ExceptionInterface_! Server^  Client^ 1ExceptionInterface] -AdapterInterface[ 9UploadHandlerInterfaceZ 1ExceptionInterfaceX 1ExceptionInterfaceW 1ExceptionInterfaceU 'RoleInterfaceS 1AssertionInterfaceS 'RoleInterfaceR /ResourceInterfaceQ 1ExceptionInterfaceP 1AssertionInterfaceN %AclInterfaceM ;ScrollingStyleInterfaceL 1ExceptionInterfaceK ?AdapterAggregateInterfaceJ 1ExceptionInterfaceH -AdapterInterfaceG 1ExceptionInterfaceC 3RouteStackInterface= )RouteInterface=
 )RouteInterface<	 1ExceptionInterface; )RouteInterface: ;ResponseSenderInterface9 1ExceptionInterface7 +PluginInterface5% KInjectApplicationEventInterface3 5ApplicationInterface3 9ModuleManagerInterface2 1ExceptionInterface1  =ServiceListenerInterface0 7ConfigMergerInterface0!~ CViewHelperProviderInterface } AValidatorProviderInterface'| OTranslatorPluginProviderInterface{ =ServiceProviderInterface!z CSerializerProviderInterfacey 9RouteProviderInterface x ALogWriterProviderInterface#w GLogProcessorProviderInterface v ALocatorRegisteredInterface"u EInputFilterProviderInterfacet 7InitProviderInterfaces ?HydratorProviderInterface"r EFormElementProviderInterfaceq ;FilterProviderInterface"p EDependencyIndicatorInterface!o CControllerProviderInterface'n OControllerPluginProviderInterface#m GConsoleUsageProviderInterface$l IConsoleBannerProviderInterfacek ;ConfigProviderInterface j ABootstrapListenerInterface!i CAutoloaderProviderInterfaceh 1ExceptionInterface/g 1ExceptionInterface.f 1ExceptionInterface+e 1ContainerInterface*d 1ExceptionInterface'c 1ExceptionInterface&b -AdapterInterface$a 1TransportInterface"` 1ExceptionInterface#_ /WritableInterface!^ 'PartInterface ] 1ExceptionInterface\ -MessageInterface[ +FolderInterfaceZ 1ExceptionInterfaceY 1ExceptionInterface   1 tG,hN3oT:v\A(mS6




x
`
E
0
						l	Q	5		mR:{bG)fK0rW;#dI.
|\A&`=qH1                         b )EntryInterface	8&a MSubscriptionPersistenceInterface	4` 1ExceptionInterface	3_ /CallbackInterface	2^ 1ExceptionInterface	1] +FilterInterface	0\ 1ExceptionInterface	/"[ ESharedEventsCapableInterface	.!Z CSharedEventManagerInterface	. Y AListenerAggregateInterface	.X 9EventsCapableInterface	.W 7EventManagerInterface	. V AEventManagerAwareInterface	.U )EventInterface	.T 1ExceptionInterface	-S 1ExceptionInterface	+R -EmitterInterface	(Q 1ExceptionInterface	&P 1ExceptionInterface	#O ;ServiceLocatorInterface	N -LocatorInterface	"M EDependencyInjectionInterface	L 'PartialMarker	 K 3DefinitionInterface	 J 7TableGatewayInterface	!I CEventFeatureEventsInterface	H 1ExceptionInterface	G 1PredicateInterface	 F APlatformDecoratorInterface	E %SqlInterface	
D 9PreparableSqlInterface	
C 3ExpressionInterface	
B 1ExceptionInterface	A %SqlInterface	@ 3ConstraintInterface	? +ColumnInterface	> 3RowGatewayInterface	= 1ExceptionInterface	< 1ResultSetInterface	; 1ExceptionInterface	: /MetadataInterface	9 1ExceptionInterface	8 /ProfilerInterface7 9ProfilerAwareInterface6 /PlatformInterface5 1ExceptionInterface4 1ExceptionInterface3 9DriverFeatureInterface2 1StatementInterface1 +ResultInterface0 +DriverInterface/ 3ConnectionInterface!. CStatementContainerInterface- -AdapterInterface, 7AdapterAwareInterface+ 1SymmetricInterface* -PaddingInterface) 1ExceptionInterface( 1ExceptionInterface' /PasswordInterface& 1ExceptionInterface% 1ExceptionInterface$ 1ExceptionInterface# 7RouteMatcherInterface" +PromptInterface! 1ExceptionInterface  )ColorInterface -CharsetInterface -AdapterInterface +WriterInterface +ReaderInterface 1ProcessorInterface 1ExceptionInterface -ScannerInterface 3ReflectionInterface 1ExceptionInterface %TagInterface ;PhpDocTypedTagInterface 1PrototypeInterface ?PrototypeGenericInterface 3TraitUsageInterface 1GeneratorInterface 1ExceptionInterface %TagInterface 1ExceptionInterface +ParserInterface 3AnnotationInterface 1ExceptionInterface
 -AdapterInterface	 +PluginInterface  ATotalSpaceCapableInterface /TaggableInterface -StorageInterface 5OptimizableInterface /IteratorInterface /IterableInterface 1FlushableInterface 7ClearExpiredInterface  9ClearByPrefixInterface ?ClearByNamespaceInterface$~ IAvailableSpaceCapableInterface} -PatternInterface| 1ExceptionInterface{ /RendererInterfacez 1ExceptionInterfacey +ObjectInterfacex 1ExceptionInterfacew 1ExceptionInterfacev -StorageInterfaceu 1ExceptionInterface$t IAuthenticationServiceInterfaces /ResolverInterfacer 1ExceptionInterfaceq 1ExceptionInterfacep 1ExceptionInterface!o CValidatableAdapterInterfacen -AdapterInterfacem 1ExceptionInterfacel 1GeneratorInterfacek 1ExceptionInterfacej 1ExceptionInterfacei /ResolverInterfaceh 7TreeRendererInterfaceg /RendererInterface"f ERetrievableChildrenInterfacee )ModelInterfaced ;ClearableModelInterfacec +HelperInterfaceb +HelperInterfacea 1ExceptionInterface*` UValidatorPluginManagerAwareInterface_ 1ValidatorInterface^ 3TranslatorInterface] =TranslatorAwareInterface\ 1ExceptionInterface[ -AdapterInterface    wT/nH#oI'sX=%u[:




w
\
B
'
					p	S	.	z_D)cF.x`?#mS8}b>`;nH%tP2         b =ServiceListenerInterface	a 7ConfigMergerInterface	!` CViewHelperProviderInterface
E _ AValidatorProviderInterface
E'^ OTranslatorPluginProviderInterface
E] =ServiceProviderInterface
E!\ CSerializerProviderInterface
E[ 9RouteProviderInterface
E Z ALogWriterProviderInterface
E#Y GLogProcessorProviderInterface
E X ALocatorRegisteredInterface
E"W EInputFilterProviderInterface
EV 7InitProviderInterface
EU ?HydratorProviderInterface
E"T EFormElementProviderInterface
ES ;FilterProviderInterface
E"R EDependencyIndicatorInterface
E!Q CControllerProviderInterface
E'P OControllerPluginProviderInterface
E#O GConsoleUsageProviderInterface
E$N IConsoleBannerProviderInterface
EM ;ConfigProviderInterface
E L ABootstrapListenerInterface
E!K CAutoloaderProviderInterface
EJ 1ExceptionInterface	I 1ExceptionInterface	H 1ExceptionInterface	G 1ContainerInterface	F 1ExceptionInterface	E 1ExceptionInterface	D -AdapterInterface	C 1TransportInterface	B 1ExceptionInterface	A /WritableInterface	@ 'PartInterface	? 1ExceptionInterface	> -MessageInterface	= +FolderInterface	< 1ExceptionInterface	; 1ExceptionInterface	: 7UnstructuredInterface	9 3StructuredInterface	8 =MultipleHeadersInterface	7 +HeaderInterface	6 1ExceptionInterface	5 1ExceptionInterface	4 -AddressInterface
D3 +WriterInterface	2 -FirePhpInterface	1 1ChromePhpInterface	0 1ProcessorInterface	/ +LoggerInterface	. 5LoggerAwareInterface	#- GLogFormatterProviderInterface	, 1FormatterInterface	 + ALogFilterProviderInterface	* +FilterInterface	) 1ExceptionInterface	( 'SplAutoloader	' -ShortNameLocator	& 1PluginClassLocator	% 1ExceptionInterface	$ 1ExceptionInterface	# 1ExceptionInterface	" 1ExceptionInterface	#! GUnknownInputsCapableInterface	  ?ReplaceableInputInterface	 9InputProviderInterface	 )InputInterface	" EInputFilterProviderInterface	 5InputFilterInterface	 ?InputFilterAwareInterface	 7EmptyContextInterface	 3TranslatorInterface	 =TranslatorAwareInterface	 7RemoteLoaderInterface	 3FileLoaderInterface	 1ExceptionInterface	 /StrategyInterface	} 1ExceptionInterface	~ ;NamingStrategyInterface	|  AHydratingIteratorInterface	{ ;FilterProviderInterface	z +FilterInterface	z =StrategyEnabledInterface	w$ INamingStrategyEnabledInterface	w =HydratorOptionsInterface	w /HydratorInterface	w
 9HydratorAwareInterface	w	 1HydrationInterface	w 9FilterEnabledInterface	w 3ExtractionInterface	w 1ExceptionInterface	y ;MultipleHeaderInterface	r +HeaderInterface	r 1ExceptionInterface	t 1ExceptionInterface	q 1ExceptionInterface	p  1ExceptionInterface	o +StreamInterface	n~ -AdapterInterface	n} 1ExceptionInterface	g| 3LabelAwareInterface	e{ 'FormInterface	ez ?FormFactoryAwareInterface	e#y GFieldsetPrepareAwareInterface	ex /FieldsetInterface	e"w EElementPrepareAwareInterface	ev -ElementInterface	e&u MElementAttributeRemovalInterface	et +FilterInterface	]s 1ExceptionInterface	`"r EEncryptionAlgorithmInterface	_#q GCompressionAlgorithmInterface	^p 1ExceptionInterface	[o 1ExceptionInterface	Yn /RendererInterface	Sm ?ExtensionManagerInterface	Hl /RendererInterface	Jk 1ExceptionInterface	Ij /ResponseInterface	F"i EHeaderAwareResponseInterface	F h AHeaderAwareClientInterface	Fg +ClientInterface	Ff 'FeedInterface	De 7ReaderImportInterface	6d ?ExtensionManagerInterface	6c 1ExceptionInterface	9   kT iN.wU:nS8eVG,aA&




z
_
F
)
					k	H	*	iH-fL1|[?$iR-oT                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      M 1ExceptionInterface
BL 1GeneratorInterface
>K 1ExceptionInterface
=J 1ExceptionInterface
;I 1ExceptionInterface
8H /ResolverInterface
6G 7TreeRendererInterface
5F /RendererInterface
5"E ERetrievableChildrenInterface
4D )ModelInterface
4C ;ClearableModelInterface
4B +HelperInterface
.A +HelperInterface
,@ 1ExceptionInterface
+ ? AValidatorProviderInterface
$*> UValidatorPluginManagerAwareInterface
$= 1ValidatorInterface
$< 3TranslatorInterface
G; =TranslatorAwareInterface
G: 1ExceptionInterface
'9 -AdapterInterface
%8 %UriInterface
#7 1ExceptionInterface
"6 1ExceptionInterface
!5 1DecoratorInterface
 4 1ExceptionInterface
3 1ExceptionInterface
2 /TaggableInterface
1 1ExceptionInterface
0 1ExceptionInterface
/ 1DecoratorInterface
. /ResponseInterface
- 3MiddlewareInterface
, =ErrorMiddlewareInterface
+ 9StringWrapperInterface
* 1ExceptionInterface
) =MergeReplaceKeyInterface
( /ResponseInterface
' -RequestInterface
& 3ParametersInterface
% =ParameterObjectInterface
$ -MessageInterface
# -JsonSerializable
" 9InitializableInterface
! 7DispatchableInterface
   AArraySerializableInterface
" EComplexTypeStrategyInterface

 1ExceptionInterface
  ADiscoveryStrategyInterface
 1ValidatorInterface
 -StorageInterface
$ IStorageInitializationInterface
 5SaveHandlerInterface
 -ManagerInterface	 1ExceptionInterface
  +ConfigInterface	 1ExceptionInterface	 5InitializerInterface
F -FactoryInterface	 ?DelegatorFactoryInterface	 =AbstractFactoryInterface	 1ExceptionInterface	 ;ServiceLocatorInterface	 9PluginManagerInterface	 5InitializerInterface	 -FactoryInterface	 ?DelegatorFactoryInterface	
 +ConfigInterface		 =AbstractFactoryInterface	 1ExceptionInterface	 1ExceptionInterface	 Server	 Client	 1ExceptionInterface	 -AdapterInterface	 3RouteStackInterface	 )RouteInterface	  )RouteInterface	 1ExceptionInterface	~ 9UploadHandlerInterface	} 1ExceptionInterface	| 1ExceptionInterface	{ 1ExceptionInterface	z 'RoleInterface	y 1AssertionInterface	x 'RoleInterface	w /ResourceInterface	v 1ExceptionInterface	u 1AssertionInterface	t %AclInterface	s ;ScrollingStyleInterface	r 1ExceptionInterface	q ?AdapterAggregateInterface	p 1ExceptionInterface	o -AdapterInterface	n 1ExceptionInterface	m 1ExceptionInterface	l 1ExceptionInterface	k )RouteInterface	j 1ExceptionInterface	i ;ResponseSenderInterface	h 1ExceptionInterface	g +PluginInterface	%f KInjectApplicationEventInterface	e 5ApplicationInterface	d 9ModuleManagerInterface	c 1ExceptionInterface	functions[]='bind_textdomain_codeset';
functions[]='bindtextdomain';
functions[]='dcgettext';
functions[]='dcngettext';
functions[]='dgettext';
functions[]='dngettext';
functions[]='gettext';
functions[]='ngettext';
functions[]='textdomain';
functions[]='_';

constants[]=

classes[] = 

interfaces[] =

traits[] = 

namespaces[] = 

directives[] = 

functions[] = 'fann_cascadetrain_on_data';
functions[] = 'fann_cascadetrain_on_file';
functions[] = 'fann_clear_scaling_params';
functions[] = 'fann_copy';
functions[] = 'fann_create_from_file';
functions[] = 'fann_create_shortcut_array';
functions[] = 'fann_create_shortcut';
functions[] = 'fann_create_sparse_array';
functions[] = 'fann_create_sparse';
functions[] = 'fann_create_standard_array';
functions[] = 'fann_create_standard';
functions[] = 'fann_create_train_from_callback';
functions[] = 'fann_create_train';
functions[] = 'fann_descale_input';
functions[] = 'fann_descale_output';
functions[] = 'fann_descale_train';
functions[] = 'fann_destroy_train';
functions[] = 'fann_destroy';
functions[] = 'fann_duplicate_train_data';
functions[] = 'fann_get_activation_function';
functions[] = 'fann_get_activation_steepness';
functions[] = 'fann_get_bias_array';
functions[] = 'fann_get_bit_fail_limit';
functions[] = 'fann_get_bit_fail';
functions[] = 'fann_get_cascade_activation_functions_count';
functions[] = 'fann_get_cascade_activation_functions';
functions[] = 'fann_get_cascade_activation_steepnesses_count';
functions[] = 'fann_get_cascade_activation_steepnesses';
functions[] = 'fann_get_cascade_candidate_change_fraction';
functions[] = 'fann_get_cascade_candidate_limit';
functions[] = 'fann_get_cascade_candidate_stagnation_epochs';
functions[] = 'fann_get_cascade_max_cand_epochs';
functions[] = 'fann_get_cascade_max_out_epochs';
functions[] = 'fann_get_cascade_min_cand_epochs';
functions[] = 'fann_get_cascade_min_out_epochs';
functions[] = 'fann_get_cascade_num_candidate_groups';
functions[] = 'fann_get_cascade_num_candidates';
functions[] = 'fann_get_cascade_output_change_fraction';
functions[] = 'fann_get_cascade_output_stagnation_epochs';
functions[] = 'fann_get_cascade_weight_multiplier';
functions[] = 'fann_get_connection_array';
functions[] = 'fann_get_connection_rate';
functions[] = 'fann_get_errno';
functions[] = 'fann_get_errstr';
functions[] = 'fann_get_layer_array';
functions[] = 'fann_get_learning_momentum';
functions[] = 'fann_get_learning_rate';
functions[] = 'fann_get_MSE';
functions[] = 'fann_get_network_type';
functions[] = 'fann_get_num_input';
functions[] = 'fann_get_num_layers';
functions[] = 'fann_get_num_output';
functions[] = 'fann_get_quickprop_decay';
functions[] = 'fann_get_quickprop_mu';
functions[] = 'fann_get_rprop_decrease_factor';
functions[] = 'fann_get_rprop_delta_max';
functions[] = 'fann_get_rprop_delta_min';
functions[] = 'fann_get_rprop_delta_zero';
functions[] = 'fann_get_rprop_increase_factor';
functions[] = 'fann_get_sarprop_step_error_shift';
functions[] = 'fann_get_sarprop_step_error_threshold_factor';
functions[] = 'fann_get_sarprop_temperature';
functions[] = 'fann_get_sarprop_weight_decay_shift';
functions[] = 'fann_get_total_connections';
functions[] = 'fann_get_total_neurons';
functions[] = 'fann_get_train_error_function';
functions[] = 'fann_get_train_stop_function';
functions[] = 'fann_get_training_algorithm';
functions[] = 'fann_init_weights';
functions[] = 'fann_length_train_data';
functions[] = 'fann_merge_train_data';
functions[] = 'fann_num_input_train_data';
functions[] = 'fann_num_output_train_data';
functions[] = 'fann_print_error';
functions[] = 'fann_randomize_weights';
functions[] = 'fann_read_train_from_file';
functions[] = 'fann_reset_errno';
functions[] = 'fann_reset_errstr';
functions[] = 'fann_reset_MSE';
functions[] = 'fann_run';
functions[] = 'fann_save_train';
functions[] = 'fann_save';
functions[] = 'fann_scale_input_train_data';
functions[] = 'fann_scale_input';
functions[] = 'fann_scale_output_train_data';
functions[] = 'fann_scale_output';
functions[] = 'fann_scale_train_data';
functions[] = 'fann_scale_train';
functions[] = 'fann_set_activation_function_hidden';
functions[] = 'fann_set_activation_function_layer';
functions[] = 'fann_set_activation_function_output';
functions[] = 'fann_set_activation_function';
functions[] = 'fann_set_activation_steepness_hidden';
functions[] = 'fann_set_activation_steepness_layer';
functions[] = 'fann_set_activation_steepness_output';
functions[] = 'fann_set_activation_steepness';
functions[] = 'fann_set_bit_fail_limit';
functions[] = 'fann_set_callback';
functions[] = 'fann_set_cascade_activation_functions';
functions[] = 'fann_set_cascade_activation_steepnesses';
functions[] = 'fann_set_cascade_candidate_change_fraction';
functions[] = 'fann_set_cascade_candidate_limit';
functions[] = 'fann_set_cascade_candidate_stagnation_epochs';
functions[] = 'fann_set_cascade_max_cand_epochs';
functions[] = 'fann_set_cascade_max_out_epochs';
functions[] = 'fann_set_cascade_min_cand_epochs';
functions[] = 'fann_set_cascade_min_out_epochs';
functions[] = 'fann_set_cascade_num_candidate_groups';
functions[] = 'fann_set_cascade_output_change_fraction';
functions[] = 'fann_set_cascade_output_stagnation_epochs';
functions[] = 'fann_set_cascade_weight_multiplier';
functions[] = 'fann_set_error_log';
functions[] = 'fann_set_input_scaling_params';
functions[] = 'fann_set_learning_momentum';
functions[] = 'fann_set_learning_rate';
functions[] = 'fann_set_output_scaling_params';
functions[] = 'fann_set_quickprop_decay';
functions[] = 'fann_set_quickprop_mu';
functions[] = 'fann_set_rprop_decrease_factor';
functions[] = 'fann_set_rprop_delta_max';
functions[] = 'fann_set_rprop_delta_min';
functions[] = 'fann_set_rprop_delta_zero';
functions[] = 'fann_set_rprop_increase_factor';
functions[] = 'fann_set_sarprop_step_error_shift';
functions[] = 'fann_set_sarprop_step_error_threshold_factor';
functions[] = 'fann_set_sarprop_temperature';
functions[] = 'fann_set_sarprop_weight_decay_shift';
functions[] = 'fann_set_scaling_params';
functions[] = 'fann_set_train_error_function';
functions[] = 'fann_set_train_stop_function';
functions[] = 'fann_set_training_algorithm';
functions[] = 'fann_set_weight_array';
functions[] = 'fann_set_weight';
functions[] = 'fann_shuffle_train_data';
functions[] = 'fann_subset_train_data';
functions[] = 'fann_test_data';
functions[] = 'fann_test';
functions[] = 'fann_train_epoch';
functions[] = 'fann_train_on_data';
functions[] = 'fann_train_on_file';
functions[] = 'fann_train';

constants[] = 'FANN_COS';
constants[] = 'FANN_COS_SYMMETRIC';
constants[] = 'FANN_E_CANT_ALLOCATE_MEM';
constants[] = 'FANN_E_CANT_OPEN_CONFIG_R';
constants[] = 'FANN_E_CANT_OPEN_CONFIG_W';
constants[] = 'FANN_E_CANT_OPEN_TD_R';
constants[] = 'FANN_E_CANT_OPEN_TD_W';
constants[] = 'FANN_E_CANT_READ_CONFIG';
constants[] = 'FANN_E_CANT_READ_CONNECTIONS';
constants[] = 'FANN_E_CANT_READ_NEURON';
constants[] = 'FANN_E_CANT_READ_TD';
constants[] = 'FANN_E_CANT_TRAIN_ACTIVATION';
constants[] = 'FANN_E_CANT_USE_ACTIVATION';
constants[] = 'FANN_E_CANT_USE_TRAIN_ALG';
constants[] = 'FANN_E_INDEX_OUT_OF_BOUND';
constants[] = 'FANN_E_INPUT_NO_MATCH';
constants[] = 'FANN_E_NO_ERROR';
constants[] = 'FANN_E_OUTPUT_NO_MATCH';
constants[] = 'FANN_E_SCALE_NOT_PRESENT';
constants[] = 'FANN_E_TRAIN_DATA_MISMATCH';
constants[] = 'FANN_E_TRAIN_DATA_SUBSET';
constants[] = 'FANN_E_WRONG_CONFIG_VERSION';
constants[] = 'FANN_E_WRONG_NUM_CONNECTIONS';
constants[] = 'FANN_ELLIOT';
constants[] = 'FANN_ELLIOT_SYMMETRIC';
constants[] = 'FANN_ERRORFUNC_LINEAR';
constants[] = 'FANN_ERRORFUNC_TANH';
constants[] = 'FANN_GAUSSIAN';
constants[] = 'FANN_GAUSSIAN_STEPWISE';
constants[] = 'FANN_GAUSSIAN_SYMMETRIC';
constants[] = 'FANN_LINEAR';
constants[] = 'FANN_LINEAR_PIECE';
constants[] = 'FANN_LINEAR_PIECE_SYMMETRIC';
constants[] = 'FANN_NETTYPE_LAYER';
constants[] = 'FANN_NETTYPE_SHORTCUT';
constants[] = 'FANN_SIGMOID';
constants[] = 'FANN_SIGMOID_STEPWISE';
constants[] = 'FANN_SIGMOID_SYMMETRIC';
constants[] = 'FANN_SIGMOID_SYMMETRIC_STEPWISE';
constants[] = 'FANN_SIN';
constants[] = 'FANN_SIN_SYMMETRIC';
constants[] = 'FANN_STOPFUNC_BIT';
constants[] = 'FANN_STOPFUNC_MSE';
constants[] = 'FANN_THRESHOLD';
constants[] = 'FANN_THRESHOLD_SYMMETRIC';
constants[] = 'FANN_TRAIN_BATCH';
constants[] = 'FANN_TRAIN_INCREMENTAL';
constants[] = 'FANN_TRAIN_QUICKPROP';
constants[] = 'FANN_TRAIN_RPROP';
constants[] = 'FANN_TRAIN_SARPROP';

classes[] = FANNConnection

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = msgpack_unserialize
functions[] = msgpack_serialize
functions[] = msgpack_pack
functions[] = msgpack_unpack

constants[] = MESSAGEPACK_OPT_PHPONLY

classes[] = MessagePackUnpacker
classes[] = MessagePack

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

files[] = 'LICENSE.TXT';
files[] = 'LICENSE.txt';
files[] = 'LICENSE';
files[] = 'LICENSE.md';


{
 "A1":         {"code":"A1:2017",
                "name":"Injection",
                "description":"Injection flaws, such as SQL, NoSQL, OS, and LDAP injection, occur when untrusted data is sent to an interpreter as part of a command or query. The attacker's hostile data can trick the interpreter into executing unintended commands or accessing data without proper authorization.",
                "url":"https://www.owasp.org/index.php/Top_10-2017_A1-Injection"
               },
 "A2":         {"code":"A2:2017",
                "name":"Broken Authentication",
                "description":"Injection flaws, such as SQL, NoSQL, OS, and LDAP injection, occur when untrusted data is sent to an interpreter as part of a command or query. The attacker's hostile data can trick the interpreter into executing unintended commands or accessing data without proper authorization.",
                "url":"https://www.owasp.org/index.php/Top_10-2017_A2-Broken_Authentication"
               },
 "A3":         {"code":"A3:2017",
                "name":"Sensitive Data Exposure",
                "description":"Many web applications and APIs do not properly protect sensitive data, such as financial, healthcare, and PII. Attackers may steal or modify such weakly protected data to conduct credit card fraud, identity theft, or other crimes. Sensitive data may be compromised without extra protection, such as encryption at rest or in transit, and requires special precautions when exchanged with the browser.",
                "url":"https://www.owasp.org/index.php/Top_10-2017_A3-Sensitive_Data_Exposure"
               },
 "A4":         {"code":"A4:2017",
                "name":"XML External Entities (XXE)",
                "description":"Many older or poorly configured XML processors evaluate external entity references within XML documents. External entities can be used to disclose internal files using the file URI handler, internal file shares, internal port scanning, remote code execution, and denial of service attacks.",
                "url":"https://www.owasp.org/index.php/Top_10-2017_A3-Sensitive_Data_Exposure"
               },
 "A5":         {"code":"A5:2017",
                "name":"Security Misconfiguration",
                "description":"Restrictions on what authenticated users are allowed to do are often not properly enforced. Attackers can exploit these flaws to access unauthorized functionality and/or data, such as access other users' accounts, view sensitive files, modify other users' data, change access rights, etc.",
                "url":"https://www.owasp.org/index.php/Top_10-2017_A3-Sensitive_Data_Exposure"
               },
 "A6":         {"code":"A6:2017",
                "name":"Broken Access Control",
                "description":"Security misconfiguration is the most commonly seen issue. This is commonly a result of insecure default configurations, incomplete or ad hoc configurations, open cloud storage, misconfigured HTTP headers, and verbose error messages containing sensitive information. Not only must all operating systems, frameworks, libraries, and applications be securely configured, but they must be patched/upgraded in a timely fashion.",
                "url":"https://www.owasp.org/index.php/Top_10-2017_A3-Sensitive_Data_Exposure"
               },
 "A7":         {"code":"A7:2017",
                "name":"Cross-Site Scripting (XSS)",
                "description":"XSS flaws occur whenever an application includes untrusted data in a new web page without proper validation or escaping, or updates an existing web page with user-supplied data using a browser API that can create HTML or JavaScript. XSS allows attackers to execute scripts in the victim's browser which can hijack user sessions, deface web sites, or redirect the user to malicious sites.",
                "url":"https://www.owasp.org/index.php/Top_10-2017_A3-Sensitive_Data_Exposure"
               },
 "A8":         {"code":"A8:2017",
                "name":"Insecure Deserialization",
                "description":"Insecure deserialization often leads to remote code execution. Even if deserialization flaws do not result in remote code execution, they can be used to perform attacks, including replay attacks, injection attacks, and privilege escalation attacks.",
                "url":"https://www.owasp.org/index.php/Top_10-2017_A3-Sensitive_Data_Exposure"
               },
 "A9":         {"code":"A9:2017",
                "name":"Using Components with Known Vulnerabilities",
                "description":"Components, such as libraries, frameworks, and other software modules, run with the same privileges as the application. If a vulnerable component is exploited, such an attack can facilitate serious data loss or server takeover. Applications and APIs using components with known vulnerabilities may undermine application defenses and enable various attacks and impacts.",
                "url":"https://www.owasp.org/index.php/Top_10-2017_A3-Sensitive_Data_Exposure"
               },
 "A10":         {"code":"A10:2017",
                "name":"Insufficient Logging & Monitoring",
                "description":"Insufficient logging and monitoring, coupled with missing or ineffective integration with incident response, allows attackers to further attack systems, maintain persistence, pivot to more systems, and tamper, extract, or destroy data. Most breach studies show time to detect a breach is over 200 days, typically detected by external parties rather than internal processes or monitoring.",
                "url":"https://www.owasp.org/index.php/Top_10-2017_A3-Sensitive_Data_Exposure"
               },
 "Extra":      {"code":"Extra",
                "name":"This goes to eleven",
                "description":"The OWASP does a critical job at categorizing security threat on a web application. Yet, we found some extra analysis that are worth mentioning, but don't fit into OWASP Top 10.",
                "url":""
               }
}
functions[] = eaccelerator_cached_scripts
functions[] = eaccelerator_caching
functions[] = eaccelerator_clean
functions[] = eaccelerator_clear
functions[] = eaccelerator_dasm_file
functions[] = eaccelerator_info
functions[] = eaccelerator_list_keys
functions[] = eaccelerator_optimizer
functions[] = eaccelerator_purge
functions[] = eaccelerator_put
functions[] = eaccelerator_removed_scripts
functions[] = eaccelerator_rm
functions[] = accelerator_get_configuration
functions[] = accelerator_license_info
functions[] = eaccelerator_gc
functions[] = eaccelerator_get
functions[] = eaccelerator_lock

constants[] = 

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = checkdate
functions[] = date_add
functions[] = date_create_from_format
functions[] = date_create_immutable_from_format
functions[] = date_create_immutable
functions[] = date_create
functions[] = date_date_set
functions[] = date_default_timezone_get
functions[] = date_default_timezone_set
functions[] = date_diff
functions[] = date_format
functions[] = date_get_last_errors
functions[] = date_interval_create_from_date_string
functions[] = date_interval_format
functions[] = date_isodate_set
functions[] = date_modify
functions[] = date_offset_get
functions[] = date_parse_from_format
functions[] = date_parse
functions[] = date_sub
functions[] = date_sun_info
functions[] = date_sunrise
functions[] = date_sunset
functions[] = date_time_set
functions[] = date_timestamp_get
functions[] = date_timestamp_set
functions[] = date_timezone_get
functions[] = date_timezone_set
functions[] = date
functions[] = getdate
functions[] = gettimeofday
functions[] = gmdate
functions[] = gmmktime
functions[] = gmstrftime
functions[] = idate
functions[] = localtime
functions[] = microtime
functions[] = mktime
functions[] = strftime
functions[] = strptime
functions[] = strtotime
functions[] = time
functions[] = timezone_abbreviations_list
functions[] = timezone_identifiers_list
functions[] = timezone_location_get
functions[] = timezone_name_from_abbr
functions[] = timezone_name_get
functions[] = timezone_offset_get
functions[] = timezone_open
functions[] = timezone_transitions_get
functions[] = timezone_version_get

constants[] = 'SUNFUNCS_RET_TIMESTAMP';
constants[] = 'SUNFUNCS_RET_STRING';
constants[] = 'SUNFUNCS_RET_DOUBLE';

classes[] = DateTime
classes[] = DateTimeImmutable 
classes[] = DateTimeZone
classes[] = DateInterval 
classes[] = DatePeriod

interfaces[] = DateTimeInterface

traits[] = 

namespaces[] = 

directives[] = 

functions[] = mysql_affected_rows
functions[] = mysql_client_encoding
functions[] = mysql_close
functions[] = mysql_connect
functions[] = mysql_create_db
functions[] = mysql_data_seek
functions[] = mysql_db_name
functions[] = mysql_db_query
functions[] = mysql_drop_db
functions[] = mysql_errno
functions[] = mysql_error
functions[] = mysql_escape_string
functions[] = mysql_fetch_array
functions[] = mysql_fetch_assoc
functions[] = mysql_fetch_field
functions[] = mysql_fetch_lengths
functions[] = mysql_fetch_object
functions[] = mysql_fetch_row
functions[] = mysql_field_flags
functions[] = mysql_field_len
functions[] = mysql_field_name
functions[] = mysql_field_seek
functions[] = mysql_field_table
functions[] = mysql_field_type
functions[] = mysql_free_result
functions[] = mysql_get_client_info
functions[] = mysql_get_host_info
functions[] = mysql_get_proto_info
functions[] = mysql_get_server_info
functions[] = mysql_info
functions[] = mysql_insert_id
functions[] = mysql_list_dbs
functions[] = mysql_list_fields
functions[] = mysql_list_processes
functions[] = mysql_list_tables
functions[] = mysql_num_fields
functions[] = mysql_num_rows
functions[] = mysql_pconnect
functions[] = mysql_ping
functions[] = mysql_query
functions[] = mysql_real_escape_string
functions[] = mysql_result
functions[] = mysql_select_db
functions[] = mysql_set_charset
functions[] = mysql_stat
functions[] = mysql_tablename
functions[] = mysql_thread_id
functions[] = mysql_unbuffered_query

constants[] = 'MYSQL_ASSOC';
constants[] = 'MYSQL_NUM';
constants[] = 'MYSQL_BOTH';
constants[] = 'MYSQL_CLIENT_COMPRESS';
constants[] = 'MYSQL_CLIENT_SSL';
constants[] = 'MYSQL_CLIENT_INTERACTIVE';
constants[] = 'MYSQL_CLIENT_IGNORE_SPACE';

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = abs;
functions[] = acos;
functions[] = acosh;
functions[] = asin;
functions[] = asinh;
functions[] = atan2;
functions[] = atan;
functions[] = atanh;
functions[] = base_convert;
functions[] = bindec;
functions[] = ceil;
functions[] = cos;
functions[] = cosh;
functions[] = decbin;
functions[] = dechex;
functions[] = decoct;
functions[] = deg2rad;
functions[] = exp;
functions[] = expm1;
functions[] = floor;
functions[] = fmod;
functions[] = getrandmax;
functions[] = hexdec;
functions[] = hypot;
functions[] = is_finite;
functions[] = is_infinite;
functions[] = is_nan;
functions[] = lcg_value;
functions[] = log10;
functions[] = log1p;
functions[] = log;
functions[] = max;
functions[] = min;
functions[] = mt_getrandmax;
functions[] = mt_rand;
functions[] = mt_srand;
functions[] = octdec;
functions[] = pi;
functions[] = pow;
functions[] = rad2deg;
functions[] = rand;
functions[] = round;
functions[] = sin;
functions[] = sinh;
functions[] = sqrt;
functions[] = srand;
functions[] = tan;
functions[] = tanh;
functions[] = intdiv

constants[] = 

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = 

constants[] = 

classes[] = v8js
classes[] = v8jsexception
classes[] = v8jsscriptexception
classes[] = v8jstimelimitexception
classes[] = v8jsmemorylimitexception
classes[] = v8object
classes[] = v8function

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

namespaces[] = 

directives[] = 

functions[] = password_get_info
functions[] = password_hash
functions[] = password_needs_rehash
functions[] = password_verify

classes[] = 

constants[] = 'PASSWORD_BCRYPT';
constants[] = 'PASSWORD_ARGON2I';
constants[] = 'PASSWORD_ARGON2ID';
constants[] = 'PASSWORD_ARGON2_DEFAULT_MEMORY_COST';
constants[] = 'PASSWORD_ARGON2_DEFAULT_TIME_COST';
constants[] = 'PASSWORD_ARGON2_DEFAULT_THREADS';
constants[] = 'PASSWORD_DEFAULT';

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

constants[] = 'MSG_IPC_NOWAIT';
constants[] = 'MSG_EAGAIN';
constants[] = 'MSG_ENOMSG';
constants[] = 'MSG_NOERROR';
constants[] = 'MSG_EXCEPT';

functions[] = msg_get_queue
functions[] = msg_send
functions[] = msg_receive
functions[] = msg_remove_queue
functions[] = msg_stat_queue
functions[] = msg_set_queue
functions[] = msg_queue_exists
functions[] = sem_get
functions[] = sem_acquire
functions[] = sem_release
functions[] = sem_remove
functions[] = shm_attach
functions[] = shm_remove
functions[] = shm_detach
functions[] = shm_put_var
functions[] = shm_has_var
functions[] = shm_get_var
functions[] = shm_remove_var
functions[] = ftok

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

traits[] = 
functions[] = apache_child_terminate
functions[] = apache_get_modules
functions[] = apache_get_version
functions[] = apache_getenv
functions[] = apache_lookup_uri
functions[] = apache_note
functions[] = apache_request_headers
functions[] = apache_reset_timeout
functions[] = apache_response_headers
functions[] = apache_setenv
functions[] = getallheaders
functions[] = virtual

constants[] = 

classes[] = 

interfaces[] = 

traits[] = 

directives[] = "engine";
directives[] = "child_terminate";
directives[] = "last_modified";
directives[] = "xbithack";

namespaces[] = 

directives[] = 

functions[] = ibase_add_user
functions[] = ibase_affected_rows
functions[] = ibase_backup
functions[] = ibase_blob_add
functions[] = ibase_blob_cancel
functions[] = ibase_blob_close
functions[] = ibase_blob_create
functions[] = ibase_blob_echo
functions[] = ibase_blob_get
functions[] = ibase_blob_import
functions[] = ibase_blob_info
functions[] = ibase_blob_open
functions[] = ibase_close
functions[] = ibase_commit_ret
functions[] = ibase_commit
functions[] = ibase_connect
functions[] = ibase_db_info
functions[] = ibase_delete_user
functions[] = ibase_drop_db
functions[] = ibase_errcode
functions[] = ibase_errmsg
functions[] = ibase_execute
functions[] = ibase_fetch_assoc
functions[] = ibase_fetch_object
functions[] = ibase_fetch_row
functions[] = ibase_field_info
functions[] = ibase_free_event_handler
functions[] = ibase_free_query
functions[] = ibase_free_result
functions[] = ibase_gen_id
functions[] = ibase_maintain_db
functions[] = ibase_modify_user
functions[] = ibase_name_result
functions[] = ibase_num_fields
functions[] = ibase_num_params
functions[] = ibase_param_info
functions[] = ibase_pconnect
functions[] = ibase_prepare
functions[] = ibase_query
functions[] = ibase_restore
functions[] = ibase_rollback_ret
functions[] = ibase_rollback
functions[] = ibase_server_info
functions[] = ibase_service_attach
functions[] = ibase_service_detach
functions[] = ibase_set_event_handler
functions[] = ibase_trans
functions[] = ibase_wait_event

constants[] = 'IBASE_DEFAULT';
constants[] = 'IBASE_READ';
constants[] = 'IBASE_WRITE';
constants[] = 'IBASE_CONSISTENCY';
constants[] = 'IBASE_CONCURRENCY';
constants[] = 'IBASE_COMMITTED';
constants[] = 'IBASE_WAIT';
constants[] = 'IBASE_NOWAIT';
constants[] = 'IBASE_FETCH_BLOBS';
constants[] = 'IBASE_FETCH_ARRAYS';
constants[] = 'IBASE_UNIXTIME';

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = judy_type
functions[] = judy_version

constants[] = 

classes[] = Judy

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = fdf_add_doc_javascript
functions[] = fdf_add_template
functions[] = fdf_close
functions[] = fdf_create
functions[] = fdf_enum_values
functions[] = fdf_errno
functions[] = fdf_error
functions[] = fdf_get_ap
functions[] = fdf_get_attachment
functions[] = fdf_get_encoding
functions[] = fdf_get_file
functions[] = fdf_get_flags
functions[] = fdf_get_opt
functions[] = fdf_get_status
functions[] = fdf_get_value
functions[] = fdf_get_version
functions[] = fdf_header
functions[] = fdf_next_field_name
functions[] = fdf_open_string
functions[] = fdf_open
functions[] = fdf_remove_item
functions[] = fdf_save_string
functions[] = fdf_save
functions[] = fdf_set_ap
functions[] = fdf_set_encoding
functions[] = fdf_set_file
functions[] = fdf_set_flags
functions[] = fdf_set_javascript_action
functions[] = fdf_set_on_import_javascript
functions[] = fdf_set_opt
functions[] = fdf_set_status
functions[] = fdf_set_submit_form_action
functions[] = fdf_set_target_frame
functions[] = fdf_set_value
functions[] = fdf_set_version

constants[] = 'FDFValue';
constants[] = 'FDFStatus';
constants[] = 'FDFFile';
constants[] = 'FDFID';
constants[] = 'FDFFf';
constants[] = 'FDFSetFf';
constants[] = 'FDFClearFf';
constants[] = 'FDFFlags';
constants[] = 'FDFSetF';
constants[] = 'FDFClrF';
constants[] = 'FDFAP';
constants[] = 'FDFAS';
constants[] = 'FDFAction';
constants[] = 'FDFAA';
constants[] = 'FDFAPRef';
constants[] = 'FDFIF';
constants[] = 'FDFEnter';
constants[] = 'FDFExit';
constants[] = 'FDFDown';
constants[] = 'FDFUp';
constants[] = 'FDFFormat';
constants[] = 'FDFValidate';
constants[] = 'FDFKeystroke';
constants[] = 'FDFCalculate';
constants[] = 'FDFNormalAP';
constants[] = 'FDFRolloverAP';
constants[] = 'FDFDownAP';

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = bson_decode
functions[] = bson_encode

constants[] = 

classes[] = MongoClient
classes[] = MongoDB
classes[] = MongoCollection
classes[] = MongoCursor
classes[] = MongoId
classes[] = MongoCode
classes[] = MongoDate
classes[] = MongoRegex
classes[] = MongoBinData
classes[] = MongoInt32
classes[] = MongoInt64
classes[] = MongoDBRef
classes[] = MongoMinKey
classes[] = MongoMaxKey
classes[] = MongoTimestamp
classes[] = MongoGridFS
classes[] = MongoGridFSFile
classes[] = MongoGridFSCursor
classes[] = MongoLog
classes[] = MongoPool
classes[] = Mongo
classes[] = MongoException
classes[] = MongoResultException
classes[] = MongoCursorException
classes[] = MongoCursorTimeoutException
classes[] = MongoConnectionException
classes[] = MongoGridFSException

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

constants[] = 

functions[] = spl_classes
functions[] = spl_autoload
functions[] = spl_autoload_extensions
functions[] = spl_autoload_register
functions[] = spl_autoload_unregister
functions[] = spl_autoload_functions
functions[] = spl_autoload_call
functions[] = class_parents
functions[] = class_implements
functions[] = spl_object_hash
functions[] = spl_object_id
functions[] = iterator_to_array
functions[] = iterator_count
functions[] = iterator_apply
functions[] = class_uses

classes[] = LogicException
classes[] = BadFunctionCallException
classes[] = BadMethodCallException
classes[] = DomainException
classes[] = InvalidArgumentException
classes[] = LengthException
classes[] = OutOfRangeException
classes[] = RuntimeException
classes[] = OutOfBoundsException
classes[] = OverflowException
classes[] = RangeException
classes[] = UnderflowException
classes[] = UnexpectedValueException
classes[] = RecursiveIteratorIterator
classes[] = IteratorIterator
classes[] = FilterIterator
classes[] = RecursiveFilterIterator
classes[] = ParentIterator
classes[] = LimitIterator
classes[] = CachingIterator
classes[] = RecursiveCachingIterator
classes[] = NoRewindIterator
classes[] = AppendIterator
classes[] = InfiniteIterator
classes[] = RegexIterator
classes[] = RecursiveRegexIterator
classes[] = EmptyIterator
classes[] = RecursiveTreeIterator
classes[] = ArrayObject
classes[] = ArrayIterator
classes[] = RecursiveArrayIterator
classes[] = SplFileInfo
classes[] = DirectoryIterator
classes[] = FilesystemIterator
classes[] = RecursiveDirectoryIterator
classes[] = GlobIterator
classes[] = SplFileObject
classes[] = SplTempFileObject
classes[] = SplDoublyLinkedList
classes[] = SplQueue
classes[] = SplStack
classes[] = SplHeap
classes[] = SplMinHeap
classes[] = SplMaxHeap
classes[] = SplPriorityQueue
classes[] = SplFixedArray
classes[] = SplObjectStorage
classes[] = MultipleIterator

interfaces[] = RecursiveIterator
interfaces[] = OuterIterator
interfaces[] = Countable
interfaces[] = SeekableIterator
interfaces[] = SplObserver
interfaces[] = SplSubject

traits[] = 

namespaces[] = 

directives[] = 

constants[] = "RAR_HOST_MSDOS";
constants[] = "RAR_HOST_OS2";
constants[] = "RAR_HOST_WIN32";
constants[] = "RAR_HOST_UNIX";
constants[] = "RAR_HOST_BEOS";

functions[] = "rar_wrapper_cache_stats";
functions[] = "rar_open";
functions[] = "rar_comment_get";
functions[] = "rar_list";
functions[] = "rar_broken_is";
functions[] = "rar_entry_get";
functions[] = "rar_solid_is";
functions[] = "rar_allow_broken_set";
functions[] = "rar_close"

classes[] = "rarentry";
classes[] = "rararchive";
classes[] = "rarexception";

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

{"functions":{
 "mysql_connect":2,
 "mysqli_connect":2,
 "ftp_login":2,
 "mssql_connect":2,
 "oci_connect":1,
 "imap_open":2,
 "ingres_connect":2,
 "cyrus_authenticate":7,
 "ssh2_auth_password":2,
 "hash_hmac":2,
 "hash_hmac_file":2,
 "hash_pbkdf2":1,
 "kadm5_create_principal":2,
 "kadm5_chpass_principal":2,
 "kadm5_init_with_password":3,
 "ldap_bind":2,
 "ssh2_auth_hostbased_file":5,
 "sybase_connect":2,
 "db2_connect":2,
 "db2_pconnect":2,
 "ibase_connect":2,
 "password_hash":1,
 "openssl_decrypt":2,
 "openssl_encrypt":2,
 "fbsql_password":1,
 "hash_pbkdf2":1,
 "openssl_pbkdf2":0,
 "cubrid_connect":4,
 "cubrid_connect_with_url":2,
 "cubrid_pconnect":4,
 "cubrid_pconnect_with_url":2,
 "openssl_pkcs12_export_to_file":3,
 "openssl_pkcs12_export":3,
 "openssl_pkcs12_read":2,
 "openssl_encrypt":2,
 "openssl_decrypt":2,
 "openssl_open":2,
 "openssl_sign":2,
 "openssl_verify":2,
 "sodium_crypto_sign":1
 },
 "methods":[
 {"class":"\\ziparchive", "method":"setPassword", "position":0 },
 {"class":"\\ziparchive", "method":"setEncryptionName", "position":2 },
 {"class":"\\pdo", "method":"__construct", "position":2 },
 {"class":"\\memcached", "method":"setSaslAuthData", "position":1 },
 {"class":"\\mongodb", "method":"authenticate", "position":1 },
 {"class":"\\rararchive", "method":"open", "position":1 },
 {"class":"\\stomp", "method":"__construct", "position":2 }
 ]
}constants[] = 'YPERR_ACCESS;';
constants[] = 'YPERR_BADARGS;';
constants[] = 'YPERR_BADDB;';
constants[] = 'YPERR_BUSY;';
constants[] = 'YPERR_DOMAIN;';
constants[] = 'YPERR_KEY;';
constants[] = 'YPERR_MAP;';
constants[] = 'YPERR_NODOM;';
constants[] = 'YPERR_NOMORE;';
constants[] = 'YPERR_PMAP;';
constants[] = 'YPERR_RESRC;';
constants[] = 'YPERR_RPC;';
constants[] = 'YPERR_VERS;';
constants[] = 'YPERR_YPBIND;';
constants[] = 'YPERR_YPERR;';
constants[] = 'YPERR_YPSERV;';

functions[] = yp_all;
functions[] = yp_cat;
functions[] = yp_err_string;
functions[] = yp_errno;
functions[] = yp_first;
functions[] = yp_get_default_domain;
functions[] = yp_master;
functions[] = yp_match;
functions[] = yp_next;
functions[] = yp_order;

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

{
    "Php\/IsnullVsEqualNull": {
        "is_null": true
    },
    "Structures\/ElseIfElseif": {
        "elseif": true
    },
    "Structures\/MultipleUnset": {
        "combine_consecutive_unsets": true
    },
    "Classes\/DontUnsetProperties": {
        "no_unset_on_property": true
    },
    "Structures\/UseConstant": {
        "function_to_constant": true
    },
    "Structures\/PHP7Dirname": {
        "combine_nested_dirname": true
    },
    "Structures\/CouldUseDir": {
        "dir_constant": true
    },
    "Php\/IssetMultipleArgs": {
        "combine_consecutive_issets": true
    },
    "Php\/LogicalInLetters": {
        "logical_operators": true
    },
    "Structures\/NotNot": {
        "no_short_bool_cast": true
    },
    "Php\/NewExponent": {
        "pow_to_exponentiation": {
			"style": "pre"
		}
    },
    "Performances\/PrePostIncrement": {
        "increment_style": true
    },
    "Structures\/ShouldUseOperator": {
        "is_null": true
    },
    "Php\/ImplodeOneArg": {
        "implode_call": true
    }
}functions[] = kadm5_chpass_principal
functions[] = kadm5_create_principal
functions[] = kadm5_delete_principal
functions[] = kadm5_destroy
functions[] = kadm5_flush
functions[] = kadm5_get_policies
functions[] = kadm5_get_principal
functions[] = kadm5_get_principals
functions[] = kadm5_init_with_password
functions[] = kadm5_modify_principal

constants[] = KRB5_KDB_DISALLOW_POSTDATED
constants[] = KRB5_KDB_DISALLOW_FORWARDABLE
constants[] = KRB5_KDB_DISALLOW_TGT_BASED
constants[] = KRB5_KDB_DISALLOW_RENEWABLE
constants[] = KRB5_KDB_DISALLOW_PROXIABLE
constants[] = KRB5_KDB_DISALLOW_DUP_SKEY
constants[] = KRB5_KDB_DISALLOW_ALL_TIX
constants[] = KRB5_KDB_REQUIRES_PRE_AUTH
constants[] = KRB5_KDB_REQUIRES_HW_AUTH
constants[] = KRB5_KDB_REQUIRES_PWCHANGE
constants[] = KRB5_KDB_DISALLOW_SVR
constants[] = KRB5_KDB_PWCHANGE_SERVER
constants[] = KRB5_KDB_SUPPORT_DESMD5
constants[] = KRB5_KDB_NEW_PRINC
constants[] = KADM5_PRINCIPAL
constants[] = KADM5_PRINC_EXPIRE_TIME
constants[] = KADM5_LAST_PW_CHANGE
constants[] = KADM5_PW_EXPIRATION
constants[] = KADM5_MAX_LIFE
constants[] = KADM5_MAX_RLIFE
constants[] = KADM5_MOD_NAME
constants[] = KADM5_MOD_TIME
constants[] = KADM5_KVNO
constants[] = KADM5_POLICY
constants[] = KADM5_CLEARPOLICY
constants[] = KADM5_LAST_SUCCESS
constants[] = KADM5_LAST_FAILED
constants[] = KADM5_FAIL_AUTH_COUNT
constants[] = KADM5_RANDKEY
constants[] = KADM5_ATTRIBUTES

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = utf8_decode
functions[] = utf8_encode
functions[] = xml_error_string
functions[] = xml_get_current_byte_index
functions[] = xml_get_current_column_number
functions[] = xml_get_current_line_number
functions[] = xml_get_error_code
functions[] = xml_parse_into_struct
functions[] = xml_parse
functions[] = xml_parser_create_ns
functions[] = xml_parser_create
functions[] = xml_parser_free
functions[] = xml_parser_get_option
functions[] = xml_parser_set_option
functions[] = xml_set_character_data_handler
functions[] = xml_set_default_handler
functions[] = xml_set_element_handler
functions[] = xml_set_end_namespace_decl_handler
functions[] = xml_set_external_entity_ref_handler
functions[] = xml_set_notation_decl_handler
functions[] = xml_set_object
functions[] = xml_set_processing_instruction_handler
functions[] = xml_set_start_namespace_decl_handler
functions[] = xml_set_unparsed_entity_decl_handler

constants[] = 'XML_ERROR_NONE';
constants[] = 'XML_ERROR_NO_MEMORY';
constants[] = 'XML_ERROR_SYNTAX';
constants[] = 'XML_ERROR_NO_ELEMENTS';
constants[] = 'XML_ERROR_INVALID_TOKEN';
constants[] = 'XML_ERROR_UNCLOSED_TOKEN';
constants[] = 'XML_ERROR_PARTIAL_CHAR';
constants[] = 'XML_ERROR_TAG_MISMATCH';
constants[] = 'XML_ERROR_DUPLICATE_ATTRIBUTE';
constants[] = 'XML_ERROR_JUNK_AFTER_DOC_ELEMENT';
constants[] = 'XML_ERROR_PARAM_ENTITY_REF';
constants[] = 'XML_ERROR_UNDEFINED_ENTITY';
constants[] = 'XML_ERROR_RECURSIVE_ENTITY_REF';
constants[] = 'XML_ERROR_ASYNC_ENTITY';
constants[] = 'XML_ERROR_BAD_CHAR_REF';
constants[] = 'XML_ERROR_BINARY_ENTITY_REF';
constants[] = 'XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF';
constants[] = 'XML_ERROR_MISPLACED_XML_PI';
constants[] = 'XML_ERROR_UNKNOWN_ENCODING';
constants[] = 'XML_ERROR_INCORRECT_ENCODING';
constants[] = 'XML_ERROR_UNCLOSED_CDATA_SECTION';
constants[] = 'XML_ERROR_EXTERNAL_ENTITY_HANDLING';
constants[] = 'XML_OPTION_CASE_FOLDING';
constants[] = 'XML_OPTION_TARGET_ENCODING';
constants[] = 'XML_OPTION_SKIP_TAGSTART';
constants[] = 'XML_OPTION_SKIP_WHITE';
constants[] = 'XML_SAX_IMPL';

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = 

classes[] = Reflection
classes[] = ReflectionClass
classes[] = ReflectionZendExtension
classes[] = ReflectionExtension
classes[] = ReflectionFunction
classes[] = ReflectionFunctionAbstract
classes[] = ReflectionMethod
classes[] = ReflectionObject
classes[] = ReflectionParameter
classes[] = ReflectionProperty
classes[] = Reflector
classes[] = ReflectionException

constants[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = "\\pcov\\start";
functions[] = "\\pcov\\stop";
functions[] = "\\pcov\\collect";
functions[] = "\\pcov\\clear";
functions[] = "\\pcov\\waiting";
functions[] = "\\pcov\\memory";

constants[] = 

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = "pcov";

directives[] = 

functions[] = http_cache_etag
functions[] = http_cache_last_modified
functions[] = http_chunked_decode
functions[] = http_deflate
functions[] = http_inflate
functions[] = http_build_cookie
functions[] = http_date
functions[] = http_get_request_body_stream
functions[] = http_get_request_body
functions[] = http_get_request_headers
functions[] = http_match_etag
functions[] = http_match_modified
functions[] = http_match_request_header
functions[] = http_support
functions[] = http_negotiate_charset
functions[] = http_negotiate_content_type
functions[] = http_negotiate_language
functions[] = ob_deflatehandler
functions[] = ob_etaghandler
functions[] = ob_inflatehandler
functions[] = http_parse_cookie
functions[] = http_parse_headers
functions[] = http_parse_message
functions[] = http_parse_params
functions[] = http_persistent_handles_clean
functions[] = http_persistent_handles_count
functions[] = http_persistent_handles_ident
functions[] = http_get
functions[] = http_head
functions[] = http_post_data
functions[] = http_post_fields
functions[] = http_put_data
functions[] = http_put_file
functions[] = http_put_stream
functions[] = http_request_body_encode
functions[] = http_request_method_exists
functions[] = http_request_method_name
functions[] = http_request_method_register
functions[] = http_request_method_unregister
functions[] = http_request
functions[] = http_redirect
functions[] = http_send_content_disposition
functions[] = http_send_content_type
functions[] = http_send_data
functions[] = http_send_file
functions[] = http_send_last_modified
functions[] = http_send_status
functions[] = http_send_stream
functions[] = http_throttle
functions[] = http_build_str
functions[] = http_build_url

constants[] = 'HTTP_AUTH_ANY';
constants[] = 'HTTP_AUTH_BASIC';
constants[] = 'HTTP_AUTH_DIGEST';
constants[] = 'HTTP_AUTH_GSSNEG';
constants[] = 'HTTP_AUTH_NTLM';
constants[] = 'HTTP_COOKIE_HTTPONLY';
constants[] = 'HTTP_COOKIE_PARSE_RAW';
constants[] = 'HTTP_COOKIE_SECURE';
constants[] = 'HTTP_DEFLATE_LEVEL_DEF';
constants[] = 'HTTP_DEFLATE_LEVEL_MAX';
constants[] = 'HTTP_DEFLATE_LEVEL_MIN';
constants[] = 'HTTP_DEFLATE_STRATEGY_DEF';
constants[] = 'HTTP_DEFLATE_STRATEGY_FILT';
constants[] = 'HTTP_DEFLATE_STRATEGY_FIXED';
constants[] = 'HTTP_DEFLATE_STRATEGY_HUFF';
constants[] = 'HTTP_DEFLATE_STRATEGY_RLE';
constants[] = 'HTTP_DEFLATE_TYPE_GZIP';
constants[] = 'HTTP_DEFLATE_TYPE_RAW';
constants[] = 'HTTP_DEFLATE_TYPE_ZLIB';
constants[] = 'HTTP_E_ENCODING';
constants[] = 'HTTP_E_HEADER';
constants[] = 'HTTP_E_INVALID_PARAM';
constants[] = 'HTTP_E_MALFORMED_HEADERS';
constants[] = 'HTTP_E_MESSAGE_TYPE';
constants[] = 'HTTP_E_QUERYSTRING';
constants[] = 'HTTP_E_REQUEST';
constants[] = 'HTTP_E_REQUEST_METHOD';
constants[] = 'HTTP_E_REQUEST_POOL';
constants[] = 'HTTP_E_RESPONSE';
constants[] = 'HTTP_E_RUNTIME';
constants[] = 'HTTP_E_SOCKET';
constants[] = 'HTTP_E_URL';
constants[] = 'HTTP_ENCODING_STREAM_FLUSH_FULL';
constants[] = 'HTTP_ENCODING_STREAM_FLUSH_NONE';
constants[] = 'HTTP_ENCODING_STREAM_FLUSH_SYNC';
constants[] = 'HTTP_IPRESOLVE_ANY';
constants[] = 'HTTP_IPRESOLVE_V4';
constants[] = 'HTTP_IPRESOLVE_V6';
constants[] = 'HTTP_METH_ACL';
constants[] = 'HTTP_METH_BASELINE_CONTROL';
constants[] = 'HTTP_METH_CHECKIN';
constants[] = 'HTTP_METH_CHECKOUT';
constants[] = 'HTTP_METH_CONNECT';
constants[] = 'HTTP_METH_COPY';
constants[] = 'HTTP_METH_DELETE';
constants[] = 'HTTP_METH_GET';
constants[] = 'HTTP_METH_HEAD';
constants[] = 'HTTP_METH_LABEL';
constants[] = 'HTTP_METH_LOCK';
constants[] = 'HTTP_METH_MERGE';
constants[] = 'HTTP_METH_MKACTIVITY';
constants[] = 'HTTP_METH_MKCOL';
constants[] = 'HTTP_METH_MKWORKSPACE';
constants[] = 'HTTP_METH_MOVE';
constants[] = 'HTTP_METH_OPTIONS';
constants[] = 'HTTP_METH_POST';
constants[] = 'HTTP_METH_PROPFIND';
constants[] = 'HTTP_METH_PROPPATCH';
constants[] = 'HTTP_METH_PUT';
constants[] = 'HTTP_METH_REPORT';
constants[] = 'HTTP_METH_TRACE';
constants[] = 'HTTP_METH_UNCHECKOUT';
constants[] = 'HTTP_METH_UNLOCK';
constants[] = 'HTTP_METH_UPDATE';
constants[] = 'HTTP_METH_VERSION_CONTROL';
constants[] = 'HTTP_MSG_NONE';
constants[] = 'HTTP_MSG_REQUEST';
constants[] = 'HTTP_MSG_RESPONSE';
constants[] = 'HTTP_PARAMS_ALLOW_COMMA';
constants[] = 'HTTP_PARAMS_ALLOW_FAILURE';
constants[] = 'HTTP_PARAMS_DEFAULT';
constants[] = 'HTTP_PARAMS_RAISE_ERROR';
constants[] = 'HTTP_PROXY_HTTP';
constants[] = 'HTTP_PROXY_SOCKS4';
constants[] = 'HTTP_PROXY_SOCKS5';
constants[] = 'HTTP_QUERYSTRING_TYPE_ARRAY';
constants[] = 'HTTP_QUERYSTRING_TYPE_BOOL';
constants[] = 'HTTP_QUERYSTRING_TYPE_FLOAT';
constants[] = 'HTTP_QUERYSTRING_TYPE_INT';
constants[] = 'HTTP_QUERYSTRING_TYPE_OBJECT';
constants[] = 'HTTP_QUERYSTRING_TYPE_STRING';
constants[] = 'HTTP_REDIRECT';
constants[] = 'HTTP_REDIRECT_FOUND';
constants[] = 'HTTP_REDIRECT_PERM';
constants[] = 'HTTP_REDIRECT_POST';
constants[] = 'HTTP_REDIRECT_PROXY';
constants[] = 'HTTP_REDIRECT_TEMP';
constants[] = 'HTTP_SSL_VERSION_ANY';
constants[] = 'HTTP_SSL_VERSION_SSLv2';
constants[] = 'HTTP_SSL_VERSION_SSLv3';
constants[] = 'HTTP_SSL_VERSION_TLSv1';
constants[] = 'HTTP_SUPPORT';
constants[] = 'HTTP_SUPPORT_ENCODINGS';
constants[] = 'HTTP_SUPPORT_MAGICMIME';
constants[] = 'HTTP_SUPPORT_REQUESTS';
constants[] = 'HTTP_SUPPORT_SSLREQUESTS';
constants[] = 'HTTP_URL_JOIN_PATH';
constants[] = 'HTTP_URL_JOIN_QUERY';
constants[] = 'HTTP_URL_REPLACE';
constants[] = 'HTTP_URL_STRIP_ALL';
constants[] = 'HTTP_URL_STRIP_AUTH';
constants[] = 'HTTP_URL_STRIP_FRAGMENT';
constants[] = 'HTTP_URL_STRIP_PASS';
constants[] = 'HTTP_URL_STRIP_PATH';
constants[] = 'HTTP_URL_STRIP_PORT';
constants[] = 'HTTP_URL_STRIP_QUERY';
constants[] = 'HTTP_URL_STRIP_USER';
constants[] = 'HTTP_VERSION_1_0';
constants[] = 'HTTP_VERSION_1_1';
constants[] = 'HTTP_VERSION_ANY';
constants[] = '';

classes[] = HttpResponse 
classes[] = HttpRequestPool
classes[] = HttpRequest 
classes[] = HttpQueryString 
classes[] = HttpMessage
classes[] = HttpInflateStream
classes[] = HttpDeflateStream

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

directives[] = "allow_call_time_pass_reference";
directives[] = "allow_url_fopen";
directives[] = "allow_url_include";
directives[] = "always_populate_raw_post_data";
directives[] = "apc.cache_by_default";
directives[] = "apc.enable_cli";
directives[] = "apc.enabled";
directives[] = "apc.file_update_protection";
directives[] = "apc.filters";
directives[] = "apc.gc_ttl";
directives[] = "apc.include_once_override";
directives[] = "apc.localcache.size";
directives[] = "apc.localcache";
directives[] = "apc.max_file_size";
directives[] = "apc.mmap_file_mask";
directives[] = "apc.num_files_hint";
directives[] = "apc.optimization";
directives[] = "apc.report_autofilter";
directives[] = "apc.rfc1867_freq";
directives[] = "apc.rfc1867_name";
directives[] = "apc.rfc1867_prefix";
directives[] = "apc.rfc1867";
directives[] = "apc.serializer";
directives[] = "apc.shm_segments";
directives[] = "apc.shm_size";
directives[] = "apc.slam_defense";
directives[] = "apc.stat_ctime";
directives[] = "apc.stat";
directives[] = "apc.ttl";
directives[] = "apc.use_request_time";
directives[] = "apc.user_entries_hint";
directives[] = "apc.user_ttl";
directives[] = "apc.write_lock";
directives[] = "apd.bitmask";
directives[] = "apd.dumpdir";
directives[] = "apd.statement_tracing";
directives[] = "arg_separator.input";
directives[] = "arg_separator.output";
directives[] = "arg_separator";
directives[] = "asp_tags";
directives[] = "assert.active";
directives[] = "assert.bail";
directives[] = "assert.callback";
directives[] = "assert.exception";
directives[] = "assert.quiet_eval";
directives[] = "assert.warning";
directives[] = "async_send";
directives[] = "auto_append_file";
directives[] = "auto_detect_line_endings";
directives[] = "auto_globals_jit";
directives[] = "auto_prepend_file";
directives[] = "axis2.client_home";
directives[] = "axis2.enable_exception";
directives[] = "axis2.enable_trace";
directives[] = "axis2.log_path";
directives[] = "bcmath.scale";
directives[] = "bcompiler.enabled";
directives[] = "blenc.key_file";
directives[] = "browscap";
directives[] = "cgi.check_shebang_line";
directives[] = "cgi.discard_path";
directives[] = "cgi.fix_pathinfo";
directives[] = "cgi.force_redirect";
directives[] = "cgi.nph";
directives[] = "cgi.redirect_status_env";
directives[] = "cgi.rfc2616_headers";
directives[] = "child_terminate";
directives[] = "cli_server.color";
directives[] = "cli.pager";
directives[] = "cli.prompt";
directives[] = "coin_acceptor.auto_initialize";
directives[] = "coin_acceptor.auto_reset";
directives[] = "coin_acceptor.autoreset";
directives[] = "coin_acceptor.command_function";
directives[] = "coin_acceptor.delay_coins";
directives[] = "coin_acceptor.delay_prom";
directives[] = "coin_acceptor.delay";
directives[] = "coin_acceptor.device";
directives[] = "coin_acceptor.lock_on_close";
directives[] = "coin_acceptor.start_unlocked";
directives[] = "com.allow_dcom";
directives[] = "com.autoregister_casesensitive";
directives[] = "com.autoregister_typelib";
directives[] = "com.autoregister_verbose";
directives[] = "com.code_page";
directives[] = "com.typelib_file";
directives[] = "curl.cainfo";
directives[] = "daffodildb.default_host";
directives[] = "daffodildb.default_password";
directives[] = "daffodildb.default_socket";
directives[] = "daffodildb.default_user";
directives[] = "daffodildb.port";
directives[] = "date.default_latitude";
directives[] = "date.default_longitude";
directives[] = "date.sunrise_zenith";
directives[] = "date.sunset_zenith";
directives[] = "date.timezone";
directives[] = "dba.default_handler";
directives[] = "dbx.colnames_case";
directives[] = "default_charset";
directives[] = "default_mimetype";
directives[] = "default_socket_timeout";
directives[] = "define_syslog_variables";
directives[] = "detect_unicode";
directives[] = "disable_classes";
directives[] = "disable_functions";
directives[] = "display_errors";
directives[] = "display_startup_errors";
directives[] = "doc_root";
directives[] = "docref_ext";
directives[] = "docref_root";
directives[] = "eaccelerator.allowed_admin_path";
directives[] = "eaccelerator.cache_dir";
directives[] = "eaccelerator.check_mtime";
directives[] = "eaccelerator.debug";
directives[] = "eaccelerator.enable";
directives[] = "eaccelerator.filter";
directives[] = "eaccelerator.optimizer";
directives[] = "eaccelerator.shm_max";
directives[] = "eaccelerator.shm_only";
directives[] = "eaccelerator.shm_prune_period";
directives[] = "eaccelerator.shm_size";
directives[] = "eaccelerator.shm_ttl";
directives[] = "enable_dl";
directives[] = "enable_post_data_reading";
directives[] = "engine";
directives[] = "error_append_string";
directives[] = "error_log";
directives[] = "error_prepend_string";
directives[] = "error_reporting";
directives[] = "exif.decode_jis_intel";
directives[] = "exif.decode_jis_motorola";
directives[] = "exif.decode_unicode_intel";
directives[] = "exif.decode_unicode_motorola";
directives[] = "exif.encode_jis";
directives[] = "exif.encode_unicode";
directives[] = "exit_on_timeout";
directives[] = "expect.logfile";
directives[] = "expect.loguser";
directives[] = "expect.timeout";
directives[] = "expose_php";
directives[] = "extension_dir";
directives[] = "extension";
directives[] = "fastcgi.impersonate";
directives[] = "fastcgi.logging";
directives[] = "fbsql.allow_persistant";
directives[] = "fbsql.allow_persistent";
directives[] = "fbsql.autocommit";
directives[] = "fbsql.batchsize";
directives[] = "fbsql.default_database_password";
directives[] = "fbsql.default_database";
directives[] = "fbsql.default_host";
directives[] = "fbsql.default_password";
directives[] = "fbsql.default_user";
directives[] = "fbsql.generate_warnings";
directives[] = "fbsql.max_connections";
directives[] = "fbsql.max_links";
directives[] = "fbsql.max_persistent";
directives[] = "fbsql.max_results";
directives[] = "fbsql.mbatchSize";
directives[] = "fbsql.show_timestamp_decimals";
directives[] = "file_uploads";
directives[] = "filter.default_flags";
directives[] = "filter.default";
directives[] = "from";
directives[] = "gd.jpeg_ignore_warning";
directives[] = "geoip.custom_directory";
directives[] = "geoip.database_standard";
directives[] = "hhvm.server.max_post_size";
directives[] = "hhvm.server.upload.upload_max_file_size";
directives[] = "hidef.ini_path";
directives[] = "highlight.bg";
directives[] = "highlight.comment";
directives[] = "highlight.default";
directives[] = "highlight.html";
directives[] = "highlight.keyword";
directives[] = "highlight.string";
directives[] = "html_errors";
directives[] = "htscanner.config_file";
directives[] = "htscanner.default_docroot";
directives[] = "htscanner.default_ttl";
directives[] = "htscanner.stop_on_error";
directives[] = "http.allowed_methods_log";
directives[] = "http.allowed_methods";
directives[] = "http.cache_log";
directives[] = "http.composite_log";
directives[] = "http.etag_mode";
directives[] = "http.etag.mode";
directives[] = "http.force_exit";
directives[] = "http.log.allowed_methods";
directives[] = "http.log.cache";
directives[] = "http.log.composite";
directives[] = "http.log.not_found";
directives[] = "http.log.redirect";
directives[] = "http.ob_deflate_auto";
directives[] = "http.ob_deflate_flags";
directives[] = "http.ob_inflate_auto";
directives[] = "http.ob_inflate_flags";
directives[] = "http.only_exceptions";
directives[] = "http.persistent.handles.ident";
directives[] = "http.persistent.handles.limit";
directives[] = "http.redirect_log";
directives[] = "http.request.datashare.connect";
directives[] = "http.request.datashare.cookie";
directives[] = "http.request.datashare.dns";
directives[] = "http.request.datashare.ssl";
directives[] = "http.request.methods.allowed";
directives[] = "http.request.methods.custom";
directives[] = "http.send.deflate.start_auto";
directives[] = "http.send.deflate.start_flags";
directives[] = "http.send.inflate.start_auto";
directives[] = "http.send.inflate.start_flags";
directives[] = "http.send.not_found_404";
directives[] = "ibase.allow_persistent";
directives[] = "ibase.dateformat";
directives[] = "ibase.default_charset";
directives[] = "ibase.default_db";
directives[] = "ibase.default_password";
directives[] = "ibase.default_user";
directives[] = "ibase.max_links";
directives[] = "ibase.max_persistent";
directives[] = "ibase.timeformat";
directives[] = "ibase.timestampformat";
directives[] = "ibm_db2.binmode";
directives[] = "ibm_db2.i5_all_pconnect";
directives[] = "ibm_db2.i5_allow_commit";
directives[] = "ibm_db2.i5_dbcs_alloc";
directives[] = "ibm_db2.i5_ignore_userid";
directives[] = "ibm_db2.instance_name";
directives[] = "iconv.input_encoding";
directives[] = "iconv.internal_encoding";
directives[] = "iconv.output_encoding";
directives[] = "ifx.allow_persistent";
directives[] = "ifx.blobinfile";
directives[] = "ifx.byteasvarchar";
directives[] = "ifx.charasvarchar";
directives[] = "ifx.default_host";
directives[] = "ifx.default_password";
directives[] = "ifx.default_user";
directives[] = "ifx.max_links";
directives[] = "ifx.max_persistent";
directives[] = "ifx.nullformat";
directives[] = "ifx.textasvarchar";
directives[] = "ignore_repeated_errors";
directives[] = "ignore_repeated_source";
directives[] = "ignore_user_abort";
directives[] = "imlib2.font_cache_max_size";
directives[] = "imlib2.font_path";
directives[] = "implicit_flush";
directives[] = "include_path";
directives[] = "ingres.allow_persistent";
directives[] = "ingres.array_index_start";
directives[] = "ingres.auto";
directives[] = "ingres.blob_segment_length";
directives[] = "ingres.cursor_mode";
directives[] = "ingres.default_database";
directives[] = "ingres.default_password";
directives[] = "ingres.default_user";
directives[] = "ingres.describe";
directives[] = "ingres.fetch_buffer_size";
directives[] = "ingres.max_links";
directives[] = "ingres.max_persistent";
directives[] = "ingres.reuse_connection";
directives[] = "ingres.scrollable";
directives[] = "ingres.trace_connect";
directives[] = "ingres.trace";
directives[] = "ingres.utf8";
directives[] = "input_encoding"";
directives[] = "intl.default_locale";
directives[] = "intl.error_level";
directives[] = "intl.use_exceptions";
directives[] = "last_modified";
directives[] = "ldap.base_dn";
directives[] = "ldap.max_links";
directives[] = "log_errors_max_len";
directives[] = "log_errors";
directives[] = "log.dbm_dir";
directives[] = "magic_quotes_gpc";
directives[] = "magic_quotes_runtime";
directives[] = "magic_quotes_sybase";
directives[] = "mail.add_x_header";
directives[] = "mail.force_extra_parameters";
directives[] = "mail.log";
directives[] = "mailparse.def_charset";
directives[] = "max_execution_time";
directives[] = "max_file_uploads";
directives[] = "max_input_nesting_level";
directives[] = "max_input_time";
directives[] = "max_input_vars";
directives[] = "maxdb.default_db";
directives[] = "maxdb.default_host";
directives[] = "maxdb.default_pw";
directives[] = "maxdb.default_user";
directives[] = "maxdb.long_readlen";
directives[] = "mbstring.detect_order";
directives[] = "mbstring.encoding_translation";
directives[] = "mbstring.func_overload";
directives[] = "mbstring.func_override";
directives[] = "mbstring.http_input";
directives[] = "mbstring.http_output_conv_mimetype";
directives[] = "mbstring.http_output_conv_mimetypes";
directives[] = "mbstring.http_output";
directives[] = "mbstring.internal_encoding";
directives[] = "mbstring.language";
directives[] = "mbstring.script_encoding";
directives[] = "mbstring.strict_detection";
directives[] = "mbstring.substitute_character";
directives[] = "mcrypt.algorithms_dir";
directives[] = "mcrypt.modes_dir";
directives[] = "memcache.allow_failover";
directives[] = "memcache.chunk_size";
directives[] = "memcache.default_port";
directives[] = "memcache.hash_function";
directives[] = "memcache.hash_strategy";
directives[] = "memcache.max_failover_attempts";
directives[] = "memcached.compression_threshold";
directives[] = "memcached.sess_binary_protocol";
directives[] = "memcached.sess_locking";
directives[] = "memcached.sess_prefix";
directives[] = "memcached.use_sasl";
directives[] = "memory_limit";
directives[] = "mime_magic.debug";
directives[] = "mime_magic.magicfile";
directives[] = "mongo.allow_empty_keys";
directives[] = "mongo.allow_persistent";
directives[] = "mongo.chunk_size";
directives[] = "mongo.cmd";
directives[] = "mongo.default_host";
directives[] = "mongo.default_port";
directives[] = "mongo.is_master_interval";
directives[] = "mongo.long_as_object";
directives[] = "mongo.native_long";
directives[] = "mongo.ping_interval";
directives[] = "mongo.utf8";
directives[] = "msql.allow_persistent";
directives[] = "msql.max_links";
directives[] = "msql.max_persistent";
directives[] = "mssql.allow_persistent";
directives[] = "mssql.batchsize";
directives[] = "mssql.charset";
directives[] = "mssql.compatability_mode";
directives[] = "mssql.connect_timeout";
directives[] = "mssql.datetimeconvert";
directives[] = "mssql.max_links";
directives[] = "mssql.max_persistent";
directives[] = "mssql.max_procs";
directives[] = "mssql.min_error_severity";
directives[] = "mssql.min_message_severity";
directives[] = "mssql.secure_connection";
directives[] = "mssql.textlimit";
directives[] = "mssql.textsize";
directives[] = "mssql.timeout";
directives[] = "mysql.allow_local_infile";
directives[] = "mysql.allow_persistent";
directives[] = "mysql.connect_timeout";
directives[] = "mysql.default_host";
directives[] = "mysql.default_password";
directives[] = "mysql.default_port";
directives[] = "mysql.default_socket";
directives[] = "mysql.default_user";
directives[] = "mysql.max_links";
directives[] = "mysql.max_persistent";
directives[] = "mysql.trace_mode";
directives[] = "mysqli.allow_local_infile";
directives[] = "mysqli.allow_persistent";
directives[] = "mysqli.cache_size";
directives[] = "mysqli.default_host";
directives[] = "mysqli.default_port";
directives[] = "mysqli.default_pw";
directives[] = "mysqli.default_socket";
directives[] = "mysqli.default_user";
directives[] = "mysqli.max_links";
directives[] = "mysqli.max_persistent";
directives[] = "mysqli.reconnect";
directives[] = "mysqli.rollback_on_cached_plink";
directives[] = "mysqlnd_memcache.enable";
directives[] = "mysqlnd_ms.collect_statistics";
directives[] = "mysqlnd_ms.config_file";
directives[] = "mysqlnd_ms.disable_rw_split";
directives[] = "mysqlnd_ms.enable";
directives[] = "mysqlnd_ms.force_config_usage";
directives[] = "mysqlnd_ms.ini_file";
directives[] = "mysqlnd_ms.multi_master";
directives[] = "mysqlnd_mux.enable";
directives[] = "mysqlnd_qc.apc_prefix";
directives[] = "mysqlnd_qc.cache_by_default";
directives[] = "mysqlnd_qc.cache_no_table";
directives[] = "mysqlnd_qc.collect_normalized_query_trace";
directives[] = "mysqlnd_qc.collect_query_trace";
directives[] = "mysqlnd_qc.collect_statistics_log_file";
directives[] = "mysqlnd_qc.collect_statistics";
directives[] = "mysqlnd_qc.enable_qc";
directives[] = "mysqlnd_qc.ignore_sql_comments";
directives[] = "mysqlnd_qc.memc_port";
directives[] = "mysqlnd_qc.memc_server";
directives[] = "mysqlnd_qc.query_trace_bt_depth";
directives[] = "mysqlnd_qc.slam_defense_ttl";
directives[] = "mysqlnd_qc.slam_defense";
directives[] = "mysqlnd_qc.sqlite_data_file";
directives[] = "mysqlnd_qc.std_data_copy";
directives[] = "mysqlnd_qc.time_statistics";
directives[] = "mysqlnd_qc.ttl";
directives[] = "mysqlnd_qc.use_request_time";
directives[] = "mysqlnd_uh.enable";
directives[] = "mysqlnd_uh.report_wrong_types";
directives[] = "mysqlnd.collect_memory_statistics";
directives[] = "mysqlnd.collect_statistics";
directives[] = "mysqlnd.debug";
directives[] = "mysqlnd.log_mask";
directives[] = "mysqlnd.mempool_default_size";
directives[] = "mysqlnd.net_cmd_buffer_size";
directives[] = "mysqlnd.net_read_buffer_size";
directives[] = "mysqlnd.net_read_timeout";
directives[] = "mysqlnd.sha256_server_public_key";
directives[] = "mysqlnd.trace_alloc";
directives[] = "nsapi.read_timeout";
directives[] = "oci8.connection_class";
directives[] = "oci8.default_prefetch";
directives[] = "oci8.events";
directives[] = "oci8.max_persistent";
directives[] = "oci8.old_oci_close_semantics";
directives[] = "oci8.persistent_timeout";
directives[] = "oci8.ping_interval";
directives[] = "oci8.privileged_connect";
directives[] = "oci8.statement_cache_size";
directives[] = "odbc.allow_persistent";
directives[] = "odbc.check_persistent";
directives[] = "odbc.default_cursortype";
directives[] = "odbc.default_db";
directives[] = "odbc.default_pw";
directives[] = "odbc.default_user";
directives[] = "odbc.defaultbinmode";
directives[] = "odbc.defaultlrl";
directives[] = "odbc.max_links";
directives[] = "odbc.max_persistent";
directives[] = "odbtp.datetime_format";
directives[] = "odbtp.detach_default_queries";
directives[] = "odbtp.guid_format";
directives[] = "odbtp.interface_file";
directives[] = "odbtp.truncation_errors";
directives[] = "opcache.blacklist_filename";
directives[] = "opcache.consistency_checks";
directives[] = "opcache.dups_fix";
directives[] = "opcache.enable_cli";
directives[] = "opcache.enable_file_override";
directives[] = "opcache.enable";
directives[] = "opcache.error_log";
directives[] = "opcache.fast_shutdown";
directives[] = "opcache.force_restart_timeout";
directives[] = "opcache.inherited_hack";
directives[] = "opcache.interned_strings_buffer";
directives[] = "opcache.load_comments";
directives[] = "opcache.log_verbosity_level";
directives[] = "opcache.max_accelerated_files";
directives[] = "opcache.max_file_size";
directives[] = "opcache.max_wasted_percentage";
directives[] = "opcache.memory_consumption";
directives[] = "opcache.mmap_base";
directives[] = "opcache.optimization_level";
directives[] = "opcache.preferred_memory_model";
directives[] = "opcache.protect_memory";
directives[] = "opcache.restrict_api";
directives[] = "opcache.revalidate_freq";
directives[] = "opcache.revalidate_path";
directives[] = "opcache.save_comments";
directives[] = "opcache.use_cwd";
directives[] = "opcache.validate_timestamps";
directives[] = "open_basedir";
directives[] = "opendirectory.default_separator";
directives[] = "opendirectory.max_refs";
directives[] = "opendirectory.separator";
directives[] = "openssl.cafile";
directives[] = "openssl.capath";
directives[] = "oracle.allow_persistent";
directives[] = "oracle.max_links";
directives[] = "oracle.max_persistent";
directives[] = "output_buffering";
directives[] = "output_encoding";
directives[] = "output_handler";
directives[] = "pam.servicename";
directives[] = "pcre.backtrack_limit";
directives[] = "pcre.recursion_limit";
directives[] = "pdo_mysql.default_socket";
directives[] = "pdo_odbc.connection_pooling";
directives[] = "pdo_odbc.db2_instance_name";
directives[] = "pfpro.defaulthost";
directives[] = "pfpro.defaultport";
directives[] = "pfpro.defaulttimeout";
directives[] = "pfpro.proxyaddress";
directives[] = "pfpro.proxylogon";
directives[] = "pfpro.proxypassword";
directives[] = "pfpro.proxyport";
directives[] = "pgsql.allow_persistent";
directives[] = "pgsql.auto_reset_persistent";
directives[] = "pgsql.ignore_notice";
directives[] = "pgsql.log_notice";
directives[] = "pgsql.max_links";
directives[] = "pgsql.max_persistent";
directives[] = "phar.cache_list";
directives[] = "phar.extract_list";
directives[] = "phar.readonly";
directives[] = "phar.require_hash";
directives[] = "post_max_size";
directives[] = "precision";
directives[] = "printer.default_printer";
directives[] = "python.append_path";
directives[] = "python.prepend_path";
directives[] = "realpath_cache_size";
directives[] = "realpath_cache_ttl";
directives[] = "register_argc_argv";
directives[] = "register_globals";
directives[] = "register_long_arrays";
directives[] = "report_memleaks";
directives[] = "report_zend_debug";
directives[] = "request_order";
directives[] = "runkit.internal_override";
directives[] = "runkit.superglobal";
directives[] = "safe_mode_allowed_env_vars";
directives[] = "safe_mode_exec_dir";
directives[] = "safe_mode_gid";
directives[] = "safe_mode_include_dir";
directives[] = "safe_mode_protected_env_vars";
directives[] = "safe_mode";
directives[] = "sendmail_from";
directives[] = "sendmail_path";
directives[] = "serialize_precision";
directives[] = "session_pgsql.create_table";
directives[] = "session_pgsql.db";
directives[] = "session_pgsql.disable";
directives[] = "session_pgsql.failover_mode";
directives[] = "session_pgsql.gc_interval";
directives[] = "session_pgsql.keep_expired";
directives[] = "session_pgsql.sem_file_name";
directives[] = "session_pgsql.serializable";
directives[] = "session_pgsql.short_circuit";
directives[] = "session_pgsql.use_app_vars";
directives[] = "session_pgsql.vacuum_interval";
directives[] = "session.auto_start";
directives[] = "session.bug_compat_42";
directives[] = "session.bug_compat_warn";
directives[] = "session.cache_expire";
directives[] = "session.cache_limiter";
directives[] = "session.cookie_domain";
directives[] = "session.cookie_httponly";
directives[] = "session.cookie_lifetime";
directives[] = "session.cookie_path";
directives[] = "session.cookie_secure";
directives[] = "session.entropy_file";
directives[] = "session.entropy_length";
directives[] = "session.gc_dividend";
directives[] = "session.gc_divisor";
directives[] = "session.gc_maxlifetime";
directives[] = "session.gc_probability";
directives[] = "session.hash_bits_per_character";
directives[] = "session.hash_function";
directives[] = "session.lazy_write";
directives[] = "session.name";
directives[] = "session.referer_check";
directives[] = "session.save_handler";
directives[] = "session.save_path";
directives[] = "session.serialize_handler";
directives[] = "session.sid_bits_per_character";
directives[] = "session.sid_length";
directives[] = "session.upload_progress.cleanup";
directives[] = "session.upload_progress.enabled";
directives[] = "session.upload_progress.freq";
directives[] = "session.upload_progress.min_freq";
directives[] = "session.upload_progress.name";
directives[] = "session.upload_progress.prefix";
directives[] = "session.use_cookies";
directives[] = "session.use_only_cookies";
directives[] = "session.use_strict_mode";
directives[] = "session.use_trans_sid";
directives[] = "short_open_tag";
directives[] = "smtp_port";
directives[] = "SMTP";
directives[] = "soap.wsdl_cache_dir";
directives[] = "soap.wsdl_cache_enabled";
directives[] = "soap.wsdl_cache_limit";
directives[] = "soap.wsdl_cache_ttl";
directives[] = "soap.wsdl_cache";
directives[] = "sql.safe_mode";
directives[] = "sqlite.assoc_case";
directives[] = "sqlite3.extension_dir";
directives[] = "suhosin.executor.disable_eval";
directives[] = "suhosin.executor.include.blacklist";
directives[] = "suhosin.executor.include.whitelist";
directives[] = "suhosin.get.max_value_length";
directives[] = "suhosin.memory_limit";
directives[] = "suhosin.perdir";
directives[] = "suhosin.post.max_array_depth";
directives[] = "suhosin.post.max_array_depth"";
directives[] = "suhosin.post.max_vars";
directives[] = "suhosin.request.max_array_de";
directives[] = "suhosin.request.max_array_dep";
directives[] = "suhosin.request.max_vars";
directives[] = "suhosin.session.encrypt";
directives[] = "sybase.allow_persistent";
directives[] = "sybase.hostname";
directives[] = "sybase.interface_file";
directives[] = "sybase.login_timeout";
directives[] = "sybase.max_links";
directives[] = "sybase.max_persistent";
directives[] = "sybase.min_client_severity";
directives[] = "sybase.min_error_severity";
directives[] = "sybase.min_message_severity";
directives[] = "sybase.min_server_severity";
directives[] = "sybase.timeout";
directives[] = "sybct.allow_persistent";
directives[] = "sybct.deadlock_retry_count";
directives[] = "sybct.hostname";
directives[] = "sybct.login_timeout";
directives[] = "sybct.max_links";
directives[] = "sybct.max_persistent";
directives[] = "sybct.min_client_severity";
directives[] = "sybct.min_server_severity";
directives[] = "sybct.packet_size";
directives[] = "sybct.timeout";
directives[] = "sys_temp_dir";
directives[] = "sysvshm.init_mem";
directives[] = "tidy.clean_output";
directives[] = "tidy.default_config";
directives[] = "track_errors";
directives[] = "unserialize_callback_func";
directives[] = "upload_max_filesize";
directives[] = "upload_progress_meter.file.filename_template";
directives[] = "upload_progress_meter.store_method";
directives[] = "upload_tmp_dir";
directives[] = "uploadprogress.file.filename_template";
directives[] = "url_rewriter.tags";
directives[] = "user_agent";
directives[] = "user_dir";
directives[] = "user_ini.cache_ttl";
directives[] = "user_ini.filename";
directives[] = "valkyrie.auto_validate";
directives[] = "valkyrie.config_path";
directives[] = "variables_order";
directives[] = "vld.active";
directives[] = "vld.execute";
directives[] = "vld.skip_append";
directives[] = "vld.skip_prepend";
directives[] = "wincache.chkinterval";
directives[] = "wincache.enablecli";
directives[] = "wincache.fcachesize";
directives[] = "wincache.fcenabled";
directives[] = "wincache.fcenabledfilter";
directives[] = "wincache.fcndetect";
directives[] = "wincache.filecount";
directives[] = "wincache.filemapdir";
directives[] = "wincache.ignorelist";
directives[] = "wincache.maxfilesize";
directives[] = "wincache.namesalt";
directives[] = "wincache.ocachesize";
directives[] = "wincache.ocenabled";
directives[] = "wincache.ocenabledfilter";
directives[] = "wincache.reroute_enabled";
directives[] = "wincache.rerouteini";
directives[] = "wincache.scachesize";
directives[] = "wincache.srwlocks";
directives[] = "wincache.ttlmax";
directives[] = "wincache.ucachesize";
directives[] = "wincache.ucenabled";
directives[] = "windows_show_crt_warning";
directives[] = "windows.show_crt_warning";
directives[] = "xbithack";
directives[] = "xcache.admin.enable_auth";
directives[] = "xcache.admin.pass";
directives[] = "xcache.admin.user";
directives[] = "xcache.cacher";
directives[] = "xcache.coredump_directory";
directives[] = "xcache.disable_on_crash";
directives[] = "xcache.size";
directives[] = "xcache.stat";
directives[] = "xcache.test";
directives[] = "xcache.ttl";
directives[] = "xcache.var_maxttl";
directives[] = "xcache.var_size";
directives[] = "xdebug.auto_profile_mode";
directives[] = "xdebug.auto_profile";
directives[] = "xdebug.auto_trace";
directives[] = "xdebug.cli_color";
directives[] = "xdebug.collect_includes";
directives[] = "xdebug.collect_params";
directives[] = "xdebug.collect_return";
directives[] = "xdebug.collect_vars";
directives[] = "xdebug.coverage_enable";
directives[] = "xdebug.default_enable";
directives[] = "xdebug.dump_globals";
directives[] = "xdebug.dump_once";
directives[] = "xdebug.dump_undefined";
directives[] = "xdebug.dump.COOKIE";
directives[] = "xdebug.dump.ENV";
directives[] = "xdebug.dump.FILES";
directives[] = "xdebug.dump.GET";
directives[] = "xdebug.dump.POST";
directives[] = "xdebug.dump.REQUEST";
directives[] = "xdebug.dump.SERVER";
directives[] = "xdebug.dump.SESSION";
directives[] = "xdebug.extended_info";
directives[] = "xdebug.file_link_format";
directives[] = "xdebug.idekey";
directives[] = "xdebug.manual_url";
directives[] = "xdebug.max_nesting_level";
directives[] = "xdebug.output_dir";
directives[] = "xdebug.overload_var_dump";
directives[] = "xdebug.profiler_aggregate";
directives[] = "xdebug.profiler_append";
directives[] = "xdebug.profiler_enable_trigger";
directives[] = "xdebug.profiler_enable";
directives[] = "xdebug.profiler_output_dir";
directives[] = "xdebug.profiler_output_name";
directives[] = "xdebug.remote_autostart";
directives[] = "xdebug.remote_enable";
directives[] = "xdebug.remote_handler";
directives[] = "xdebug.remote_host";
directives[] = "xdebug.remote_log";
directives[] = "xdebug.remote_mode";
directives[] = "xdebug.remote_port";
directives[] = "xdebug.show_exception_trace";
directives[] = "xdebug.show_local_vars";
directives[] = "xdebug.show_mem_delta";
directives[] = "xdebug.trace_format";
directives[] = "xdebug.trace_options";
directives[] = "xdebug.trace_output_dir";
directives[] = "xdebug.trace_output_name";
directives[] = "xdebug.var_display_max_children";
directives[] = "xdebug.var_display_max_data";
directives[] = "xdebug.var_display_max_depth";
directives[] = "xhprof.output_dir";
directives[] = "xmlrpc_error_number";
directives[] = "xmlrpc_errors";
directives[] = "xmms.path";
directives[] = "xmms.session";
directives[] = "xsl.security_prefs";
directives[] = "y2k_compliance";
directives[] = "yami.response.timeout";
directives[] = "yaml.decode_binary";
directives[] = "yaml.decode_php";
directives[] = "yaml.output_indent";
directives[] = "yaml.output_width";
directives[] = "yaz.keepalive";
directives[] = "yaz.log_mask";
directives[] = "yaz.max_links";
directives[] = "zend_accelerator.output_cache_dir";
directives[] = "zend_datacache.disk.save_path";
directives[] = "zend_datacache.shm.memory_cac";
directives[] = "zend_extension_debug_ts";
directives[] = "zend_extension_debug";
directives[] = "zend_extension_ts";
directives[] = "zend_extension";
directives[] = "zend_optimizerplus.enable";
directives[] = "zend_optimizerplus.load_comments";
directives[] = "zend_optimizerplus.memory_consumption";
directives[] = "zend_optimizerplus.save_comments";
directives[] = "zend_optimizerplus.validate_timestamps";
directives[] = "zend.assertions";
directives[] = "zend.detect_unicode";
directives[] = "zend.enable_gc";
directives[] = "zend.multibyte";
directives[] = "zend.script_encoding";
directives[] = "zend.signal_check";
directives[] = "zend.ze1_compatibility_mode";
directives[] = "zlib.output_compression_level";
directives[] = "zlib.output_compression";
directives[] = "zlib.output_handler";
directives[] = "ffi.enable"
ipv4[] = '127.0.0.1';
ipv4[] = '88.88.88.88';
ipv4[] = '8.8.8.8';
ipv4[] = '123.45.67.89';
ipv4[] = '1.2.3.4';
ipv4[] = '0.0.0.0';

ipv6[] = '::1';
ipv6[] = '::0';
ipv6[] = '::';
ipv6[] = '0:0:0:0:0:0:0:0';
ipv6[] = 'fe80::1'constants[] = 

functions[] = readline
functions[] = readline_info
functions[] = readline_add_history
functions[] = readline_clear_history
functions[] = readline_read_history
functions[] = readline_write_history
functions[] = readline_completion_function

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = curl_close
functions[] = curl_copy_handle
functions[] = curl_errno
functions[] = curl_error
functions[] = curl_escape
functions[] = curl_exec
functions[] = curl_file_create
functions[] = curl_getinfo
functions[] = curl_init
functions[] = curl_multi_add_handle
functions[] = curl_multi_close
functions[] = curl_multi_exec
functions[] = curl_multi_getcontent
functions[] = curl_multi_info_read
functions[] = curl_multi_init
functions[] = curl_multi_remove_handle
functions[] = curl_multi_select
functions[] = curl_multi_setopt
functions[] = curl_multi_strerror
functions[] = curl_pause
functions[] = curl_reset
functions[] = curl_setopt_array
functions[] = curl_setopt
functions[] = curl_share_close
functions[] = curl_share_init
functions[] = curl_share_setopt
functions[] = curl_strerror
functions[] = curl_unescape
functions[] = curl_version

classes[] = curlfile

constants[] = 'CURL_HTTP_VERSION_1_0';
constants[] = 'CURL_HTTP_VERSION_1_1';
constants[] = 'CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE';
constants[] = 'CURL_HTTP_VERSION_2TLS';
constants[] = 'CURL_HTTP_VERSION_NONE';
constants[] = 'CURL_IPRESOLVE_V4';
constants[] = 'CURL_IPRESOLVE_V6';
constants[] = 'CURL_IPRESOLVE_WHATEVER';
constants[] = 'CURL_NETRC_IGNORED';
constants[] = 'CURL_NETRC_OPTIONAL';
constants[] = 'CURL_NETRC_REQUIRED';
constants[] = 'CURL_PUSH_DENY';
constants[] = 'CURL_PUSH_OK';
constants[] = 'CURL_TIMECOND_IFMODSINCE';
constants[] = 'CURL_TIMECOND_IFUNMODSINCE';
constants[] = 'CURL_TIMECOND_LASTMOD';
constants[] = 'CURL_VERSION_IPV6';
constants[] = 'CURL_VERSION_KERBEROS4';
constants[] = 'CURL_VERSION_LIBZ';
constants[] = 'CURL_VERSION_SSL';
constants[] = 'CURLAUTH_ANY';
constants[] = 'CURLAUTH_ANYSAFE';
constants[] = 'CURLAUTH_BASIC';
constants[] = 'CURLAUTH_DIGEST';
constants[] = 'CURLAUTH_GSSNEGOTIATE';
constants[] = 'CURLAUTH_NTLM';
constants[] = 'CURLCLOSEPOLICY_CALLBACK';
constants[] = 'CURLCLOSEPOLICY_LEAST_RECENTLY_USED';
constants[] = 'CURLCLOSEPOLICY_LEAST_TRAFFIC';
constants[] = 'CURLCLOSEPOLICY_OLDEST';
constants[] = 'CURLCLOSEPOLICY_SLOWEST';
constants[] = 'CURLE_ABORTED_BY_CALLBACK';
constants[] = 'CURLE_BAD_CALLING_ORDER';
constants[] = 'CURLE_BAD_CONTENT_ENCODING';
constants[] = 'CURLE_BAD_FUNCTION_ARGUMENT';
constants[] = 'CURLE_BAD_PASSWORD_ENTERED';
constants[] = 'CURLE_COULDNT_CONNECT';
constants[] = 'CURLE_COULDNT_RESOLVE_HOST';
constants[] = 'CURLE_COULDNT_RESOLVE_PROXY';
constants[] = 'CURLE_FAILED_INIT';
constants[] = 'CURLE_FILE_COULDNT_READ_FILE';
constants[] = 'CURLE_FILESIZE_EXCEEDED';
constants[] = 'CURLE_FTP_ACCESS_DENIED';
constants[] = 'CURLE_FTP_BAD_DOWNLOAD_RESUME';
constants[] = 'CURLE_FTP_CANT_GET_HOST';
constants[] = 'CURLE_FTP_CANT_RECONNECT';
constants[] = 'CURLE_FTP_COULDNT_GET_SIZE';
constants[] = 'CURLE_FTP_COULDNT_RETR_FILE';
constants[] = 'CURLE_FTP_COULDNT_SET_ASCII';
constants[] = 'CURLE_FTP_COULDNT_SET_BINARY';
constants[] = 'CURLE_FTP_COULDNT_STOR_FILE';
constants[] = 'CURLE_FTP_COULDNT_USE_REST';
constants[] = 'CURLE_FTP_PORT_FAILED';
constants[] = 'CURLE_FTP_QUOTE_ERROR';
constants[] = 'CURLE_FTP_SSL_FAILED';
constants[] = 'CURLE_FTP_USER_PASSWORD_INCORRECT';
constants[] = 'CURLE_FTP_WEIRD_227_FORMAT';
constants[] = 'CURLE_FTP_WEIRD_PASS_REPLY';
constants[] = 'CURLE_FTP_WEIRD_PASV_REPLY';
constants[] = 'CURLE_FTP_WEIRD_SERVER_REPLY';
constants[] = 'CURLE_FTP_WEIRD_USER_REPLY';
constants[] = 'CURLE_FTP_WRITE_ERROR';
constants[] = 'CURLE_FUNCTION_NOT_FOUND';
constants[] = 'CURLE_GOT_NOTHING';
constants[] = 'CURLE_HTTP_NOT_FOUND';
constants[] = 'CURLE_HTTP_PORT_FAILED';
constants[] = 'CURLE_HTTP_POST_ERROR';
constants[] = 'CURLE_HTTP_RANGE_ERROR';
constants[] = 'CURLE_LDAP_CANNOT_BIND';
constants[] = 'CURLE_LDAP_INVALID_URL';
constants[] = 'CURLE_LDAP_SEARCH_FAILED';
constants[] = 'CURLE_LIBRARY_NOT_FOUND';
constants[] = 'CURLE_MALFORMAT_USER';
constants[] = 'CURLE_OBSOLETE';
constants[] = 'CURLE_OK';
constants[] = 'CURLE_OPERATION_TIMEOUTED';
constants[] = 'CURLE_OUT_OF_MEMORY';
constants[] = 'CURLE_PARTIAL_FILE';
constants[] = 'CURLE_READ_ERROR';
constants[] = 'CURLE_RECV_ERROR';
constants[] = 'CURLE_SEND_ERROR';
constants[] = 'CURLE_SHARE_IN_USE';
constants[] = 'CURLE_SSH';
constants[] = 'CURLE_SSL_CACERT';
constants[] = 'CURLE_SSL_CERTPROBLEM';
constants[] = 'CURLE_SSL_CIPHER';
constants[] = 'CURLE_SSL_CONNECT_ERROR';
constants[] = 'CURLE_SSL_ENGINE_NOTFOUND';
constants[] = 'CURLE_SSL_ENGINE_SETFAILED';
constants[] = 'CURLE_SSL_PEER_CERTIFICATE';
constants[] = 'CURLE_TELNET_OPTION_SYNTAX';
constants[] = 'CURLE_TOO_MANY_REDIRECTS';
constants[] = 'CURLE_UNKNOWN_TELNET_OPTION';
constants[] = 'CURLE_UNSUPPORTED_PROTOCOL';
constants[] = 'CURLE_URL_MALFORMAT_USER';
constants[] = 'CURLE_URL_MALFORMAT';
constants[] = 'CURLE_WRITE_ERROR';
constants[] = 'CURLFTPAUTH_DEFAULT';
constants[] = 'CURLFTPAUTH_SSL';
constants[] = 'CURLFTPAUTH_TLS';
constants[] = 'CURLFTPMETHOD_MULTICWD';
constants[] = 'CURLFTPMETHOD_NOCWD';
constants[] = 'CURLFTPMETHOD_SINGLECWD';
constants[] = 'CURLFTPSSL_ALL';
constants[] = 'CURLFTPSSL_CONTROL';
constants[] = 'CURLFTPSSL_NONE';
constants[] = 'CURLFTPSSL_TRY';
constants[] = 'CURLINFO_CERTINFO';
constants[] = 'CURLINFO_CONNECT_TIME';
constants[] = 'CURLINFO_CONTENT_LENGTH_DOWNLOAD';
constants[] = 'CURLINFO_CONTENT_LENGTH_UPLOAD';
constants[] = 'CURLINFO_CONTENT_TYPE';
constants[] = 'CURLINFO_EFFECTIVE_URL';
constants[] = 'CURLINFO_FILETIME';
constants[] = 'CURLINFO_HEADER_OUT';
constants[] = 'CURLINFO_HEADER_SIZE';
constants[] = 'CURLINFO_HTTP_CODE';
constants[] = 'CURLINFO_NAMELOOKUP_TIME';
constants[] = 'CURLINFO_PRETRANSFER_TIME';
constants[] = 'CURLINFO_PRIVATE';
constants[] = 'CURLINFO_REDIRECT_COUNT';
constants[] = 'CURLINFO_REDIRECT_TIME';
constants[] = 'CURLINFO_REDIRECT_URL';
constants[] = 'CURLINFO_REQUEST_SIZE';
constants[] = 'CURLINFO_SIZE_DOWNLOAD';
constants[] = 'CURLINFO_SIZE_UPLOAD';
constants[] = 'CURLINFO_SPEED_DOWNLOAD';
constants[] = 'CURLINFO_SPEED_UPLOAD';
constants[] = 'CURLINFO_SSL_VERIFYRESULT';
constants[] = 'CURLINFO_STARTTRANSFER_TIME';
constants[] = 'CURLINFO_TOTAL_TIME';
constants[] = 'CURLM_BAD_EASY_HANDLE';
constants[] = 'CURLM_BAD_HANDLE';
constants[] = 'CURLM_CALL_MULTI_PERFORM';
constants[] = 'CURLM_INTERNAL_ERROR';
constants[] = 'CURLM_OK';
constants[] = 'CURLM_OUT_OF_MEMORY';
constants[] = 'CURLMOPT_PUSHFUNCTION';
constants[] = 'CURLMSG_DONE';
constants[] = 'CURLOPT_AUTOREFERER';
constants[] = 'CURLOPT_BINARYTRANSFER';
constants[] = 'CURLOPT_BUFFERSIZE';
constants[] = 'CURLOPT_CAINFO';
constants[] = 'CURLOPT_CAPATH';
constants[] = 'CURLOPT_CERTINFO';
constants[] = 'CURLOPT_CLOSEPOLICY';
constants[] = 'CURLOPT_CONNECT_TO';
constants[] = 'CURLOPT_CONNECTTIMEOUT_MS';
constants[] = 'CURLOPT_CONNECTTIMEOUT';
constants[] = 'CURLOPT_COOKIE';
constants[] = 'CURLOPT_COOKIEFILE';
constants[] = 'CURLOPT_COOKIEJAR';
constants[] = 'CURLOPT_COOKIESESSION';
constants[] = 'CURLOPT_CRLF';
constants[] = 'CURLOPT_CUSTOMREQUEST';
constants[] = 'CURLOPT_DEFAULT_PROTOCOL';
constants[] = 'CURLOPT_DNS_CACHE_TIMEOUT';
constants[] = 'CURLOPT_DNS_USE_GLOBAL_CACHE';
constants[] = 'CURLOPT_EGDSOCKET';
constants[] = 'CURLOPT_ENCODING';
constants[] = 'CURLOPT_FAILONERROR';
constants[] = 'CURLOPT_FILE';
constants[] = 'CURLOPT_FILETIME';
constants[] = 'CURLOPT_FOLLOWLOCATION';
constants[] = 'CURLOPT_FORBID_REUSE';
constants[] = 'CURLOPT_FRESH_CONNECT';
constants[] = 'CURLOPT_FTP_CREATE_MISSING_DIRS';
constants[] = 'CURLOPT_FTP_FILEMETHOD';
constants[] = 'CURLOPT_FTP_SKIP_PASV_IP';
constants[] = 'CURLOPT_FTP_SSL';
constants[] = 'CURLOPT_FTP_USE_EPRT';
constants[] = 'CURLOPT_FTP_USE_EPSV';
constants[] = 'CURLOPT_FTPAPPEND';
constants[] = 'CURLOPT_FTPLISTONLY';
constants[] = 'CURLOPT_FTPPORT';
constants[] = 'CURLOPT_FTPSSLAUTH';
constants[] = 'CURLOPT_HEADER';
constants[] = 'CURLOPT_HEADERFUNCTION';
constants[] = 'CURLOPT_HTTP_VERSION';
constants[] = 'CURLOPT_HTTP200ALIASES';
constants[] = 'CURLOPT_HTTPAUTH';
constants[] = 'CURLOPT_HTTPGET';
constants[] = 'CURLOPT_HTTPHEADER';
constants[] = 'CURLOPT_HTTPPROXYTUNNEL';
constants[] = 'CURLOPT_INFILE';
constants[] = 'CURLOPT_INFILESIZE';
constants[] = 'CURLOPT_INTERFACE';
constants[] = 'CURLOPT_IPRESOLVE';
constants[] = 'CURLOPT_KEYPASSWD';
constants[] = 'CURLOPT_KRB4LEVEL';
constants[] = 'CURLOPT_LOW_SPEED_LIMIT';
constants[] = 'CURLOPT_LOW_SPEED_TIME';
constants[] = 'CURLOPT_MAX_RECV_SPEED_LARGE';
constants[] = 'CURLOPT_MAX_SEND_SPEED_LARGE';
constants[] = 'CURLOPT_MAXCONNECTS';
constants[] = 'CURLOPT_MAXREDIRS';
constants[] = 'CURLOPT_NETRC';
constants[] = 'CURLOPT_NOBODY';
constants[] = 'CURLOPT_NOPROGRESS';
constants[] = 'CURLOPT_NOSIGNAL';
constants[] = 'CURLOPT_PORT';
constants[] = 'CURLOPT_POST';
constants[] = 'CURLOPT_POSTFIELDS';
constants[] = 'CURLOPT_POSTQUOTE';
constants[] = 'CURLOPT_POSTREDIR';
constants[] = 'CURLOPT_PRIVATE';
constants[] = 'CURLOPT_PROGRESSFUNCTION';
constants[] = 'CURLOPT_PROTOCOLS';
constants[] = 'CURLOPT_PROXY';
constants[] = 'CURLOPT_PROXYAUTH';
constants[] = 'CURLOPT_PROXYPORT';
constants[] = 'CURLOPT_PROXYTYPE';
constants[] = 'CURLOPT_PROXYUSERPWD';
constants[] = 'CURLOPT_PUSHFUNCTION';
constants[] = 'CURLOPT_PUT';
constants[] = 'CURLOPT_QUOTE';
constants[] = 'CURLOPT_RANDOM_FILE';
constants[] = 'CURLOPT_RANGE';
constants[] = 'CURLOPT_READDATA';
constants[] = 'CURLOPT_READFUNCTION';
constants[] = 'CURLOPT_REDIR_PROTOCOLS';
constants[] = 'CURLOPT_REFERER';
constants[] = 'CURLOPT_RESUME_FROM';
constants[] = 'CURLOPT_RETURNTRANSFER';
constants[] = 'CURLOPT_SSH_AUTH_TYPES';
constants[] = 'CURLOPT_SSH_HOST_PUBLIC_KEY_MD5';
constants[] = 'CURLOPT_SSH_PRIVATE_KEYFILE';
constants[] = 'CURLOPT_SSH_PUBLIC_KEYFILE';
constants[] = 'CURLOPT_SSL_CIPHER_LIST';
constants[] = 'CURLOPT_SSL_VERIFYHOST';
constants[] = 'CURLOPT_SSL_VERIFYPEER';
constants[] = 'CURLOPT_SSLCERT';
constants[] = 'CURLOPT_SSLCERTPASSWD';
constants[] = 'CURLOPT_SSLCERTTYPE';
constants[] = 'CURLOPT_SSLENGINE_DEFAULT';
constants[] = 'CURLOPT_SSLENGINE';
constants[] = 'CURLOPT_SSLKEY';
constants[] = 'CURLOPT_SSLKEYPASSWD';
constants[] = 'CURLOPT_SSLKEYTYPE';
constants[] = 'CURLOPT_SSLVERSION';
constants[] = 'CURLOPT_STDERR';
constants[] = 'CURLOPT_STREAM_WEIGHT';
constants[] = 'CURLOPT_TCP_FASTOPEN';
constants[] = 'CURLOPT_TCP_NODELAY';
constants[] = 'CURLOPT_TFTP_NO_OPTIONS';
constants[] = 'CURLOPT_TIMECONDITION';
constants[] = 'CURLOPT_TIMEOUT_MS';
constants[] = 'CURLOPT_TIMEOUT';
constants[] = 'CURLOPT_TIMEVALUE';
constants[] = 'CURLOPT_TRANSFERTEXT';
constants[] = 'CURLOPT_UNRESTRICTED_AUTH';
constants[] = 'CURLOPT_UPLOAD';
constants[] = 'CURLOPT_URL';
constants[] = 'CURLOPT_USERAGENT';
constants[] = 'CURLOPT_USERPWD';
constants[] = 'CURLOPT_VERBOSE';
constants[] = 'CURLOPT_WRITEFUNCTION';
constants[] = 'CURLOPT_WRITEHEADER';
constants[] = 'CURLPROTO_ALL';
constants[] = 'CURLPROTO_DICT';
constants[] = 'CURLPROTO_FILE';
constants[] = 'CURLPROTO_FTP';
constants[] = 'CURLPROTO_FTPS';
constants[] = 'CURLPROTO_HTTP';
constants[] = 'CURLPROTO_HTTPS';
constants[] = 'CURLPROTO_LDAP';
constants[] = 'CURLPROTO_LDAPS';
constants[] = 'CURLPROTO_SCP';
constants[] = 'CURLPROTO_SFTP';
constants[] = 'CURLPROTO_TELNET';
constants[] = 'CURLPROTO_TFTP';
constants[] = 'CURLPROXY_HTTP';
constants[] = 'CURLPROXY_SOCKS4';
constants[] = 'CURLPROXY_SOCKS5';
constants[] = 'CURLSSH_AUTH_DEFAULT';
constants[] = 'CURLSSH_AUTH_HOST';
constants[] = 'CURLSSH_AUTH_KEYBOARD';
constants[] = 'CURLSSH_AUTH_NONE';
constants[] = 'CURLSSH_AUTH_PASSWORD';
constants[] = 'CURLSSH_AUTH_PUBLICKEY';
constants[] = 'CURLSSLOPT_NO_REVOKE';
constants[] = 'CURLVERSION_NOW';
constants[] = 'CURLAUTH_BEARER';
constants[] = 'CURLAUTH_GSSAPI';
constants[] = 'CURLE_WEIRD_SERVER_REPLY';
constants[] = 'CURLINFO_APPCONNECT_TIME_T';
constants[] = 'CURLINFO_CONNECT_TIME_T';
constants[] = 'CURLINFO_CONTENT_LENGTH_DOWNLOAD_T';
constants[] = 'CURLINFO_CONTENT_LENGTH_UPLOAD_T';
constants[] = 'CURLINFO_FILETIME_T';
constants[] = 'CURLINFO_HTTP_VERSION';
constants[] = 'CURLINFO_NAMELOOKUP_TIME_T';
constants[] = 'CURLINFO_PRETRANSFER_TIME_T';
constants[] = 'CURLINFO_PROTOCOL';
constants[] = 'CURLINFO_PROXY_SSL_VERIFYRESULT';
constants[] = 'CURLINFO_REDIRECT_TIME_T';
constants[] = 'CURLINFO_SCHEME';
constants[] = 'CURLINFO_SIZE_DOWNLOAD_T';
constants[] = 'CURLINFO_SIZE_UPLOAD_T';
constants[] = 'CURLINFO_SPEED_DOWNLOAD_T';
constants[] = 'CURLINFO_SPEED_UPLOAD_T';
constants[] = 'CURLINFO_STARTTRANSFER_TIME_T';
constants[] = 'CURLINFO_TOTAL_TIME_T';
constants[] = 'CURL_LOCK_DATA_CONNECT';
constants[] = 'CURL_LOCK_DATA_PSL';
constants[] = 'CURL_MAX_READ_SIZE';
constants[] = 'CURLOPT_ABSTRACT_UNIX_SOCKET';
constants[] = 'CURLOPT_DISALLOW_USERNAME_IN_URL';
constants[] = 'CURLOPT_DNS_SHUFFLE_ADDRESSES';
constants[] = 'CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS';
constants[] = 'CURLOPT_HAPROXYPROTOCOL';
constants[] = 'CURLOPT_KEEP_SENDING_ON_ERROR';
constants[] = 'CURLOPT_PRE_PROXY';
constants[] = 'CURLOPT_PROXY_CAINFO';
constants[] = 'CURLOPT_PROXY_CAPATH';
constants[] = 'CURLOPT_PROXY_CRLFILE';
constants[] = 'CURLOPT_PROXY_KEYPASSWD';
constants[] = 'CURLOPT_PROXY_PINNEDPUBLICKEY';
constants[] = 'CURLOPT_PROXY_SSLCERT';
constants[] = 'CURLOPT_PROXY_SSLCERTTYPE';
constants[] = 'CURLOPT_PROXY_SSL_CIPHER_LIST';
constants[] = 'CURLOPT_PROXY_SSLKEY';
constants[] = 'CURLOPT_PROXY_SSLKEYTYPE';
constants[] = 'CURLOPT_PROXY_SSL_OPTIONS';
constants[] = 'CURLOPT_PROXY_SSL_VERIFYHOST';
constants[] = 'CURLOPT_PROXY_SSL_VERIFYPEER';
constants[] = 'CURLOPT_PROXY_SSLVERSION';
constants[] = 'CURLOPT_PROXY_TLS13_CIPHERS';
constants[] = 'CURLOPT_PROXY_TLSAUTH_PASSWORD';
constants[] = 'CURLOPT_PROXY_TLSAUTH_TYPE';
constants[] = 'CURLOPT_PROXY_TLSAUTH_USERNAME';
constants[] = 'CURLOPT_REQUEST_TARGET';
constants[] = 'CURLOPT_SOCKS5_AUTH';
constants[] = 'CURLOPT_SSH_COMPRESSION';
constants[] = 'CURLOPT_SUPPRESS_CONNECT_HEADERS';
constants[] = 'CURLOPT_TIMEVALUE_LARGE';
constants[] = 'CURLOPT_TLS13_CIPHERS';
constants[] = 'CURLPROXY_HTTPS';
constants[] = 'CURLSSH_AUTH_GSSAPI';
constants[] = 'CURL_SSLVERSION_MAX_DEFAULT';
constants[] = 'CURL_SSLVERSION_MAX_NONE';
constants[] = 'CURL_SSLVERSION_MAX_TLSv1_0';
constants[] = 'CURL_SSLVERSION_MAX_TLSv1_1';
constants[] = 'CURL_SSLVERSION_MAX_TLSv1_2';
constants[] = 'CURL_SSLVERSION_MAX_TLSv1_3';
constants[] = 'CURL_SSLVERSION_TLSv1_3';
constants[] = 'CURL_VERSION_ASYNCHDNS';
constants[] = 'CURL_VERSION_BROTLI';
constants[] = 'CURL_VERSION_CONV';
constants[] = 'CURL_VERSION_DEBUG';
constants[] = 'CURL_VERSION_GSSAPI';
constants[] = 'CURL_VERSION_GSSNEGOTIATE';
constants[] = 'CURL_VERSION_HTTPS_PROXY';
constants[] = 'CURL_VERSION_IDN';
constants[] = 'CURL_VERSION_KERBEROS5';
constants[] = 'CURL_VERSION_LARGEFILE';
constants[] = 'CURL_VERSION_MULTI_SSL';
constants[] = 'CURL_VERSION_NTLM';
constants[] = 'CURL_VERSION_NTLM_WB';
constants[] = 'CURL_VERSION_SPNEGO';
constants[] = 'CURL_VERSION_SSPI';
constants[] = 'CURL_VERSION_TLSAUTH_SRP';
constants[] = 'CURL_VERSION_UNIX_SOCKETS';
constants[] = 'CURLOPT_CONNECTIONTIMEOUT';
constants[] = 'CURLOPT_MAX_RECV_SPEED_LARGE';
constants[] = 'CURLOPT_MAX_SEND_SPEED_LARGE';
constants[] = 'CURLMOPT_MAXCONNECTS';
constants[] = 'CURLOPT_SAFE_UPLOAD';
constants[] = 'CURLMOPT_PIPELINING';
constants[] = 'CURLMOPT_MAXCONNECTS';
constants[] = 'CURL_SSLVERSION_DEFAULT';
constants[] = 'CURL_SSLVERSION_TLSv1';
constants[] = 'CURL_SSLVERSION_SSLv2';
constants[] = 'CURL_SSLVERSION_SSLv3';
constants[] = 'CURL_SSLVERSION_TLSv1_0';
constants[] = 'CURL_SSLVERSION_TLSv1_1';
constants[] = 'CURL_SSLVERSION_TLSv1_2';
constants[] = 'CURL_PROXY_SERVER_DETAILS';
constants[] = 'CURL_PROXY_TUNNEL_FLAG';
constants[] = 'CURL_PROXY_REQUIRED';


interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

[
{"class":"Reflection", "method":"__construct", "throw":["ReflectionException"]},
{"class":"ReflectionClass", "method":"__construct", "throw":["ReflectionException"]},
{"class":"ReflectionZendExtension", "method":"__construct", "throw":["ReflectionException"]},
{"class":"ReflectionExtension", "method":"__construct", "throw":["ReflectionException"]},
{"class":"ReflectionFunction", "method":"__construct", "throw":["ReflectionException"]},
{"class":"ReflectionFunctionAbstract", "method":"__construct", "throw":["ReflectionException"]},
{"class":"ReflectionMethod", "method":"__construct", "throw":["ReflectionException"]},
{"class":"ReflectionObject", "method":"__construct", "throw":["ReflectionException"]},
{"class":"ReflectionParameter", "method":"__construct", "throw":["ReflectionException"]},
{"class":"ReflectionProperty", "method":"__construct", "throw":["ReflectionException"]},
{"class":"Reflector", "method":"__construct", "throw":["ReflectionException"]},
{"class":"ReflectionException", "method":"__construct", "throw":["ReflectionException"]},

{"class":"Phar", "method":"mungServer", "throw":["UnexpectedValueException"]},
{"class":"Phar", "method":"webPhar", "throw":["PharException", "UnexpectedValueException"]},

{"class":"Closure", "method":"fromcallable", "throw":["Typerror"]},
{"class":"ArrayIterator", "method":"__construct", "throw":["InvalidArgumentException"]},
{"class":"DateTimeZone", "method":"__construct", "throw":["Exception"]},

{"class":"ImagickPixel", "method":"getColorCount", "throw":["ImagickPixelException"]},
{"class":"Imagick", "method":"getimagegreenprimary", "throw":["ImagickException"]},

{"class":"simplexmlelement", "method":"__construct", "throw":["Exception"]},

{"class":"snmp", "method":"__construct", "throw":["Exception"]},
{"class":"svm", "method":"setoptions", "throw":["SVMException"]},


{"function":"timezone_open", "throw":["Exception"]},
{"function":"sodium-crypto-kx-keypair", "throw":["Exception"]},
{"function":"uopz_add_function", "throw":["Exception"]},
{"function":"uopz_del_function", "throw":["Exception"]}
]functions[] = "seaslog_get_version";
functions[] = "seaslog_get_author";

constants[] = "SEASLOG_DETAIL_ORDER_ASC";
constants[] = "SEASLOG_DETAIL_ORDER_DESC";
constants[] = "SEASLOG_APPENDER_FILE";
constants[] = "SEASLOG_APPENDER_TCP";
constants[] = "SEASLOG_APPENDER_UDP";
constants[] = "SEASLOG_CLOSE_LOGGER_STREAM_MOD_ALL";
constants[] = "SEASLOG_CLOSE_LOGGER_STREAM_MOD_ASSIGN";

classes[] = "Seaslog";

interfaces[] = 

traits[] = 

directives[] = "seaslog.appender";
directives[] = "seaslog.appender_retry";
directives[] = "seaslog.buffer_size";
directives[] = "seaslog.default_datetime_format";
directives[] = "seaslog.default_logger";
directives[] = "seaslog.default_template";
directives[] = "seaslog.disting_by_hour";
directives[] = "seaslog.disting_folder";
directives[] = "seaslog.disting_type";
directives[] = "seaslog.ignore_warning";
directives[] = "seaslog.level";
directives[] = "seaslog.recall_depth";
directives[] = "seaslog.remote_host";
directives[] = "seaslog.remote_port";
directives[] = "seaslog.throw_exception";
directives[] = "seaslog.trace_error";
directives[] = "seaslog.trace_exception";
directives[] = "seaslog.trace_notice";
directives[] = "seaslog.trace_warning";
directives[] = "seaslog.trim_wrap";
directives[] = "seaslog.use_buffer";
directives[] = "seaslog.default_basepath";

namespaces[] = 

functions[] = trader_acos
functions[] = trader_ad
functions[] = trader_add
functions[] = trader_adosc
functions[] = trader_adx
functions[] = trader_adxr
functions[] = trader_apo
functions[] = trader_aroon
functions[] = trader_aroonosc
functions[] = trader_asin
functions[] = trader_atan
functions[] = trader_atr
functions[] = trader_avgprice
functions[] = trader_bbands
functions[] = trader_beta
functions[] = trader_bop
functions[] = trader_cci
functions[] = trader_cdl2crows
functions[] = trader_cdl3blackcrows
functions[] = trader_cdl3inside
functions[] = trader_cdl3linestrike
functions[] = trader_cdl3outside
functions[] = trader_cdl3starsinsouth
functions[] = trader_cdl3whitesoldiers
functions[] = trader_cdlabandonedbaby
functions[] = trader_cdladvanceblock
functions[] = trader_cdlbelthold
functions[] = trader_cdlbreakaway
functions[] = trader_cdlclosingmarubozu
functions[] = trader_cdlconcealbabyswall
functions[] = trader_cdlcounterattack
functions[] = trader_cdldarkcloudcover
functions[] = trader_cdldoji
functions[] = trader_cdldojistar
functions[] = trader_cdldragonflydoji
functions[] = trader_cdlengulfing
functions[] = trader_cdleveningdojistar
functions[] = trader_cdleveningstar
functions[] = trader_cdlgapsidesidewhite
functions[] = trader_cdlgravestonedoji
functions[] = trader_cdlhammer
functions[] = trader_cdlhangingman
functions[] = trader_cdlharami
functions[] = trader_cdlharamicross
functions[] = trader_cdlhighwave
functions[] = trader_cdlhikkake
functions[] = trader_cdlhikkakemod
functions[] = trader_cdlhomingpigeon
functions[] = trader_cdlidentical3crows
functions[] = trader_cdlinneck
functions[] = trader_cdlinvertedhammer
functions[] = trader_cdlkicking
functions[] = trader_cdlkickingbylength
functions[] = trader_cdlladderbottom
functions[] = trader_cdllongleggeddoji
functions[] = trader_cdllongline
functions[] = trader_cdlmarubozu
functions[] = trader_cdlmatchinglow
functions[] = trader_cdlmathold
functions[] = trader_cdlmorningdojistar
functions[] = trader_cdlmorningstar
functions[] = trader_cdlonneck
functions[] = trader_cdlpiercing
functions[] = trader_cdlrickshawman
functions[] = trader_cdlrisefall3methods
functions[] = trader_cdlseparatinglines
functions[] = trader_cdlshootingstar
functions[] = trader_cdlshortline
functions[] = trader_cdlspinningtop
functions[] = trader_cdlstalledpattern
functions[] = trader_cdlsticksandwich
functions[] = trader_cdltakuri
functions[] = trader_cdltasukigap
functions[] = trader_cdlthrusting
functions[] = trader_cdltristar
functions[] = trader_cdlunique3river
functions[] = trader_cdlupsidegap2crows
functions[] = trader_cdlxsidegap3methods
functions[] = trader_ceil
functions[] = trader_cmo
functions[] = trader_correl
functions[] = trader_cos
functions[] = trader_cosh
functions[] = trader_dema
functions[] = trader_div
functions[] = trader_dx
functions[] = trader_ema
functions[] = trader_errno
functions[] = trader_exp
functions[] = trader_floor
functions[] = trader_get_compat
functions[] = trader_get_unstable_period
functions[] = trader_ht_dcperiod
functions[] = trader_ht_dcphase
functions[] = trader_ht_phasor
functions[] = trader_ht_sine
functions[] = trader_ht_trendline
functions[] = trader_ht_trendmode
functions[] = trader_kama
functions[] = trader_linearreg_angle
functions[] = trader_linearreg_intercept
functions[] = trader_linearreg_slope
functions[] = trader_linearreg
functions[] = trader_ln
functions[] = trader_log10
functions[] = trader_ma
functions[] = trader_macd
functions[] = trader_macdext
functions[] = trader_macdfix
functions[] = trader_mama
functions[] = trader_mavp
functions[] = trader_max
functions[] = trader_maxindex
functions[] = trader_medprice
functions[] = trader_mfi
functions[] = trader_midpoint
functions[] = trader_midprice
functions[] = trader_min
functions[] = trader_minindex
functions[] = trader_minmax
functions[] = trader_minmaxindex
functions[] = trader_minus_di
functions[] = trader_minus_dm
functions[] = trader_mom
functions[] = trader_mult
functions[] = trader_natr
functions[] = trader_obv
functions[] = trader_plus_di
functions[] = trader_plus_dm
functions[] = trader_ppo
functions[] = trader_roc
functions[] = trader_rocp
functions[] = trader_rocr100
functions[] = trader_rocr
functions[] = trader_rsi
functions[] = trader_sar
functions[] = trader_sarext
functions[] = trader_set_compat
functions[] = trader_set_unstable_period
functions[] = trader_sin
functions[] = trader_sinh
functions[] = trader_sma
functions[] = trader_sqrt
functions[] = trader_stddev
functions[] = trader_stoch
functions[] = trader_stochf
functions[] = trader_stochrsi
functions[] = trader_sub
functions[] = trader_sum
functions[] = trader_t3
functions[] = trader_tan
functions[] = trader_tanh
functions[] = trader_tema
functions[] = trader_trange
functions[] = trader_trima
functions[] = trader_trix
functions[] = trader_tsf
functions[] = trader_typprice
functions[] = trader_ultosc
functions[] = trader_var
functions[] = trader_wclprice
functions[] = trader_willr
functions[] = trader_wma

constants[] = 'TRADER_MA_TYPE_SMA';
constants[] = 'TRADER_MA_TYPE_EMA';
constants[] = 'TRADER_MA_TYPE_WMA';
constants[] = 'TRADER_MA_TYPE_DEMA';
constants[] = 'TRADER_MA_TYPE_TEMA';
constants[] = 'TRADER_MA_TYPE_TRIMA';
constants[] = 'TRADER_MA_TYPE_KAMA';
constants[] = 'TRADER_MA_TYPE_MAMA';
constants[] = 'TRADER_MA_TYPE_T3';
constants[] = 'TRADER_REAL_MIN (double)';
constants[] = 'TRADER_REAL_MAX (double)';
constants[] = 'TRADER_FUNC_UNST_ADX';
constants[] = 'TRADER_FUNC_UNST_ADXR';
constants[] = 'TRADER_FUNC_UNST_ATR';
constants[] = 'TRADER_FUNC_UNST_CMO';
constants[] = 'TRADER_FUNC_UNST_DX';
constants[] = 'TRADER_FUNC_UNST_EMA';
constants[] = 'TRADER_FUNC_UNST_HT_DCPERIOD';
constants[] = 'TRADER_FUNC_UNST_HT_DCPHASE';
constants[] = 'TRADER_FUNC_UNST_HT_PHASOR';
constants[] = 'TRADER_FUNC_UNST_HT_SINE';
constants[] = 'TRADER_FUNC_UNST_HT_TRENDLINE';
constants[] = 'TRADER_FUNC_UNST_HT_TRENDMODE';
constants[] = 'TRADER_FUNC_UNST_KAMA';
constants[] = 'TRADER_FUNC_UNST_MAMA';
constants[] = 'TRADER_FUNC_UNST_MFI';
constants[] = 'TRADER_FUNC_UNST_MINUS_DI';
constants[] = 'TRADER_FUNC_UNST_MINUS_DM';
constants[] = 'TRADER_FUNC_UNST_NATR';
constants[] = 'TRADER_FUNC_UNST_PLUS_DI';
constants[] = 'TRADER_FUNC_UNST_PLUS_DM';
constants[] = 'TRADER_FUNC_UNST_RSI';
constants[] = 'TRADER_FUNC_UNST_STOCHRSI';
constants[] = 'TRADER_FUNC_UNST_T3';
constants[] = 'TRADER_FUNC_UNST_ALL';
constants[] = 'TRADER_FUNC_UNST_NONE';
constants[] = 'TRADER_COMPATIBILITY_DEFAULT';
constants[] = 'TRADER_COMPATIBILITY_METASTOCK';
constants[] = 'TRADER_ERR_SUCCESS';
constants[] = 'TRADER_ERR_LIB_NOT_INITIALIZE';
constants[] = 'TRADER_ERR_BAD_PARAM';
constants[] = 'TRADER_ERR_ALLOC_ERR';
constants[] = 'TRADER_ERR_GROUP_NOT_FOUND';
constants[] = 'TRADER_ERR_FUNC_NOT_FOUND';
constants[] = 'TRADER_ERR_INVALID_HANDLE';
constants[] = 'TRADER_ERR_INVALID_PARAM_HOLDER';
constants[] = 'TRADER_ERR_INVALID_PARAM_HOLDER_TYPE';
constants[] = 'TRADER_ERR_INVALID_PARAM_FUNCTION';
constants[] = 'TRADER_ERR_INPUT_NOT_ALL_INITIALIZE';
constants[] = 'TRADER_ERR_OUTPUT_NOT_ALL_INITIALIZE';
constants[] = 'TRADER_ERR_OUT_OF_RANGE_START_INDEX';
constants[] = 'TRADER_ERR_OUT_OF_RANGE_END_INDEX';
constants[] = 'TRADER_ERR_INVALID_LIST_TYPE';
constants[] = 'TRADER_ERR_BAD_OBJECT';
constants[] = 'TRADER_ERR_NOT_SUPPORTED';
constants[] = 'TRADER_ERR_INTERNAL_ERROR';
constants[] = 'TRADER_ERR_UNKNOWN_ERROR';

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = 

constants[] = 

classes[] = \Phalcon\Acl
classes[] = \Phalcon\Acl\Adapter
classes[] = \Phalcon\Acl\Adapter\Memory
classes[] = \Phalcon\Acl\Exception
classes[] = \Phalcon\Acl\Resource
classes[] = \Phalcon\Acl\Role
classes[] = \Phalcon\Annotations\Adapter
classes[] = \Phalcon\Annotations\Adapter\Apc
classes[] = \Phalcon\Annotations\Adapter\Files
classes[] = \Phalcon\Annotations\Adapter\Memory
classes[] = \Phalcon\Annotations\Adapter\Xcache
classes[] = \Phalcon\Annotations\Annotation
classes[] = \Phalcon\Annotations\Collection
classes[] = \Phalcon\Annotations\Exception
classes[] = \Phalcon\Annotations\Reader
classes[] = \Phalcon\Annotations\Reflection
classes[] = \Phalcon\Assets\Collection
classes[] = \Phalcon\Assets\Exception
classes[] = \Phalcon\Assets\Filters\Cssmin
classes[] = \Phalcon\Assets\Filters\Jsmin
classes[] = \Phalcon\Assets\Filters\None
classes[] = \Phalcon\Assets\Manager
classes[] = \Phalcon\Assets\Resource
classes[] = \Phalcon\Assets\Resource\Css
classes[] = \Phalcon\Assets\Resource\Js
classes[] = \Phalcon\CLI\Console
classes[] = \Phalcon\CLI\Console\Exception
classes[] = \Phalcon\CLI\Dispatcher
classes[] = \Phalcon\CLI\Dispatcher\Exception
classes[] = \Phalcon\CLI\Router
classes[] = \Phalcon\CLI\Router\Exception
classes[] = \Phalcon\CLI\Task
classes[] = \Phalcon\Cache\Backend
classes[] = \Phalcon\Cache\Backend\Apc
classes[] = \Phalcon\Cache\Backend\File
classes[] = \Phalcon\Cache\Backend\Libmemcached
classes[] = \Phalcon\Cache\Backend\Memcache
classes[] = \Phalcon\Cache\Backend\Memory
classes[] = \Phalcon\Cache\Backend\Mongo
classes[] = \Phalcon\Cache\Backend\Xcache
classes[] = \Phalcon\Cache\Exception
classes[] = \Phalcon\Cache\Frontend\Base64
classes[] = \Phalcon\Cache\Frontend\Data
classes[] = \Phalcon\Cache\Frontend\Igbinary
classes[] = \Phalcon\Cache\Frontend\Json
classes[] = \Phalcon\Cache\Frontend\None
classes[] = \Phalcon\Cache\Frontend\Output
classes[] = \Phalcon\Cache\Multiple
classes[] = \Phalcon\Config
classes[] = \Phalcon\Config\Adapter\Ini
classes[] = \Phalcon\Config\Adapter\Json
classes[] = \Phalcon\Config\Adapter\Php
classes[] = \Phalcon\Config\Exception
classes[] = \Phalcon\Crypt
classes[] = \Phalcon\Crypt\Exception
classes[] = \Phalcon\DI
classes[] = \Phalcon\DI\Exception
classes[] = \Phalcon\DI\FactoryDefault
classes[] = \Phalcon\DI\FactoryDefault\CLI
classes[] = \Phalcon\DI\Injectable
classes[] = \Phalcon\DI\Service
classes[] = \Phalcon\DI\Service\Builder
classes[] = \Phalcon\Db
classes[] = \Phalcon\Db\Adapter
classes[] = \Phalcon\Db\Adapter\Pdo
classes[] = \Phalcon\Db\Adapter\Pdo\Mysql
classes[] = \Phalcon\Db\Adapter\Pdo\Oracle
classes[] = \Phalcon\Db\Adapter\Pdo\Postgresql
classes[] = \Phalcon\Db\Adapter\Pdo\Sqlite
classes[] = \Phalcon\Db\Column
classes[] = \Phalcon\Db\Dialect
classes[] = \Phalcon\Db\Dialect\Mysql
classes[] = \Phalcon\Db\Dialect\Oracle
classes[] = \Phalcon\Db\Dialect\Postgresql
classes[] = \Phalcon\Db\Dialect\Sqlite
classes[] = \Phalcon\Db\Exception
classes[] = \Phalcon\Db\Index
classes[] = \Phalcon\Db\Profiler
classes[] = \Phalcon\Db\Profiler\Item
classes[] = \Phalcon\Db\RawValue
classes[] = \Phalcon\Db\Reference
classes[] = \Phalcon\Db\Result\Pdo
classes[] = \Phalcon\Debug
classes[] = \Phalcon\Dispatcher
classes[] = \Phalcon\Escaper
classes[] = \Phalcon\Escaper\Exception
classes[] = \Phalcon\Events\Event
classes[] = \Phalcon\Events\Exception
classes[] = \Phalcon\Events\Manager
classes[] = \Phalcon\Exception
classes[] = \Phalcon\Filter
classes[] = \Phalcon\Filter\Exception
classes[] = \Phalcon\Flash
classes[] = \Phalcon\Flash\Direct
classes[] = \Phalcon\Flash\Exception
classes[] = \Phalcon\Flash\Session
classes[] = \Phalcon\Forms\Element
classes[] = \Phalcon\Forms\Element\Check
classes[] = \Phalcon\Forms\Element\Date
classes[] = \Phalcon\Forms\Element\Email
classes[] = \Phalcon\Forms\Element\File
classes[] = \Phalcon\Forms\Element\Hidden
classes[] = \Phalcon\Forms\Element\Numeric
classes[] = \Phalcon\Forms\Element\Password
classes[] = \Phalcon\Forms\Element\Radio
classes[] = \Phalcon\Forms\Element\Select
classes[] = \Phalcon\Forms\Element\Submit
classes[] = \Phalcon\Forms\Element\Text
classes[] = \Phalcon\Forms\Element\TextArea
classes[] = \Phalcon\Forms\Exception
classes[] = \Phalcon\Forms\Form
classes[] = \Phalcon\Forms\Manager
classes[] = \Phalcon\Http\Cookie
classes[] = \Phalcon\Http\Cookie\Exception
classes[] = \Phalcon\Http\Request
classes[] = \Phalcon\Http\Request\Exception
classes[] = \Phalcon\Http\Request\File
classes[] = \Phalcon\Http\Response
classes[] = \Phalcon\Http\Response\Cookies
classes[] = \Phalcon\Http\Response\Exception
classes[] = \Phalcon\Http\Response\Headers
classes[] = \Phalcon\Image
classes[] = \Phalcon\Image\Adapter
classes[] = \Phalcon\Image\Adapter\GD
classes[] = \Phalcon\Image\Adapter\Imagick
classes[] = \Phalcon\Image\Exception
classes[] = \Phalcon\Kernel
classes[] = \Phalcon\Loader
classes[] = \Phalcon\Loader\Exception
classes[] = \Phalcon\Logger
classes[] = \Phalcon\Logger\Adapter
classes[] = \Phalcon\Logger\Adapter\File
classes[] = \Phalcon\Logger\Adapter\Firephp
classes[] = \Phalcon\Logger\Adapter\Stream
classes[] = \Phalcon\Logger\Adapter\Syslog
classes[] = \Phalcon\Logger\Exception
classes[] = \Phalcon\Logger\Formatter
classes[] = \Phalcon\Logger\Formatter\Firephp
classes[] = \Phalcon\Logger\Formatter\Json
classes[] = \Phalcon\Logger\Formatter\Line
classes[] = \Phalcon\Logger\Formatter\Syslog
classes[] = \Phalcon\Logger\Item
classes[] = \Phalcon\Logger\Multiple
classes[] = \Phalcon\Mvc\Application
classes[] = \Phalcon\Mvc\Application\Exception
classes[] = \Phalcon\Mvc\Collection
classes[] = \Phalcon\Mvc\Collection\Document
classes[] = \Phalcon\Mvc\Collection\Exception
classes[] = \Phalcon\Mvc\Collection\Manager
classes[] = \Phalcon\Mvc\Controller
classes[] = \Phalcon\Mvc\Dispatcher
classes[] = \Phalcon\Mvc\Dispatcher\Exception
classes[] = \Phalcon\Mvc\Micro
classes[] = \Phalcon\Mvc\Micro\Collection
classes[] = \Phalcon\Mvc\Micro\Exception
classes[] = \Phalcon\Mvc\Micro\LazyLoader
classes[] = \Phalcon\Mvc\Model
classes[] = \Phalcon\Mvc\Model\Behavior
classes[] = \Phalcon\Mvc\Model\Behavior\SoftDelete
classes[] = \Phalcon\Mvc\Model\Behavior\Timestampable
classes[] = \Phalcon\Mvc\Model\Criteria
classes[] = \Phalcon\Mvc\Model\Exception
classes[] = \Phalcon\Mvc\Model\Manager
classes[] = \Phalcon\Mvc\Model\Message
classes[] = \Phalcon\Mvc\Model\MetaData
classes[] = \Phalcon\Mvc\Model\MetaData\Apc
classes[] = \Phalcon\Mvc\Model\MetaData\Files
classes[] = \Phalcon\Mvc\Model\MetaData\Memory
classes[] = \Phalcon\Mvc\Model\MetaData\Session
classes[] = \Phalcon\Mvc\Model\MetaData\Strategy\Annotations
classes[] = \Phalcon\Mvc\Model\MetaData\Strategy\Introspection
classes[] = \Phalcon\Mvc\Model\MetaData\Xcache
classes[] = \Phalcon\Mvc\Model\Query
classes[] = \Phalcon\Mvc\Model\Query\Builder
classes[] = \Phalcon\Mvc\Model\Query\Lang
classes[] = \Phalcon\Mvc\Model\Query\Status
classes[] = \Phalcon\Mvc\Model\Relation
classes[] = \Phalcon\Mvc\Model\Resultset
classes[] = \Phalcon\Mvc\Model\Resultset\Complex
classes[] = \Phalcon\Mvc\Model\Resultset\Simple
classes[] = \Phalcon\Mvc\Model\Row
classes[] = \Phalcon\Mvc\Model\Transaction
classes[] = \Phalcon\Mvc\Model\Transaction\Exception
classes[] = \Phalcon\Mvc\Model\Transaction\Failed
classes[] = \Phalcon\Mvc\Model\Transaction\Manager
classes[] = \Phalcon\Mvc\Model\ValidationFailed
classes[] = \Phalcon\Mvc\Model\Validator
classes[] = \Phalcon\Mvc\Model\Validator\Email
classes[] = \Phalcon\Mvc\Model\Validator\Exclusionin
classes[] = \Phalcon\Mvc\Model\Validator\Inclusionin
classes[] = \Phalcon\Mvc\Model\Validator\Numericality
classes[] = \Phalcon\Mvc\Model\Validator\PresenceOf
classes[] = \Phalcon\Mvc\Model\Validator\Regex
classes[] = \Phalcon\Mvc\Model\Validator\StringLength
classes[] = \Phalcon\Mvc\Model\Validator\Uniqueness
classes[] = \Phalcon\Mvc\Model\Validator\Url
classes[] = \Phalcon\Mvc\Router
classes[] = \Phalcon\Mvc\Router\Annotations
classes[] = \Phalcon\Mvc\Router\Exception
classes[] = \Phalcon\Mvc\Router\Group
classes[] = \Phalcon\Mvc\Router\Route
classes[] = \Phalcon\Mvc\Url
classes[] = \Phalcon\Mvc\Url\Exception
classes[] = \Phalcon\Mvc\User\Component
classes[] = \Phalcon\Mvc\User\Module
classes[] = \Phalcon\Mvc\User\Plugin
classes[] = \Phalcon\Mvc\View
classes[] = \Phalcon\Mvc\View\Engine
classes[] = \Phalcon\Mvc\View\Engine\Php
classes[] = \Phalcon\Mvc\View\Engine\Volt
classes[] = \Phalcon\Mvc\View\Engine\Volt\Compiler
classes[] = \Phalcon\Mvc\View\Exception
classes[] = \Phalcon\Mvc\View\Simple
classes[] = \Phalcon\Paginator\Adapter\Model
classes[] = \Phalcon\Paginator\Adapter\NativeArray
classes[] = \Phalcon\Paginator\Adapter\QueryBuilder
classes[] = \Phalcon\Paginator\Exception
classes[] = \Phalcon\Queue\Beanstalk
classes[] = \Phalcon\Queue\Beanstalk\Job
classes[] = \Phalcon\Registry
classes[] = \Phalcon\Security
classes[] = \Phalcon\Security\Exception
classes[] = \Phalcon\Session\Adapter
classes[] = \Phalcon\Session\Adapter\Files
classes[] = \Phalcon\Session\Bag
classes[] = \Phalcon\Session\Exception
classes[] = \Phalcon\Tag
classes[] = \Phalcon\Tag\Exception
classes[] = \Phalcon\Tag\Select
classes[] = \Phalcon\Text
classes[] = \Phalcon\Translate\Adapter
classes[] = \Phalcon\Translate\Adapter\NativeArray
classes[] = \Phalcon\Translate\Exception
classes[] = \Phalcon\Validation
classes[] = \Phalcon\Validation\Exception
classes[] = \Phalcon\Validation\Message
classes[] = \Phalcon\Validation\Message\Group
classes[] = \Phalcon\Validation\Validator
classes[] = \Phalcon\Validation\Validator\Between
classes[] = \Phalcon\Validation\Validator\Confirmation
classes[] = \Phalcon\Validation\Validator\Email
classes[] = \Phalcon\Validation\Validator\ExclusionIn
classes[] = \Phalcon\Validation\Validator\Identical
classes[] = \Phalcon\Validation\Validator\InclusionIn
classes[] = \Phalcon\Validation\Validator\PresenceOf
classes[] = \Phalcon\Validation\Validator\Regex
classes[] = \Phalcon\Validation\Validator\StringLength
classes[] = \Phalcon\Validation\Validator\Url
classes[] = \Phalcon\Version

interfaces[] = \Phalcon\Acl\AdapterInterface
interfaces[] = \Phalcon\Acl\ResourceInterface
interfaces[] = \Phalcon\Acl\RoleInterface
interfaces[] = \Phalcon\Annotations\AdapterInterface
interfaces[] = \Phalcon\Annotations\ReaderInterface
interfaces[] = \Phalcon\Assets\FilterInterface
interfaces[] = \Phalcon\Cache\BackendInterface
interfaces[] = \Phalcon\Cache\FrontendInterface
interfaces[] = \Phalcon\CryptInterface
interfaces[] = \Phalcon\DI\InjectionAwareInterface
interfaces[] = \Phalcon\DI\ServiceInterface
interfaces[] = \Phalcon\Db\AdapterInterface
interfaces[] = \Phalcon\Db\ColumnInterface
interfaces[] = \Phalcon\Db\DialectInterface
interfaces[] = \Phalcon\Db\IndexInterface
interfaces[] = \Phalcon\Db\ReferenceInterface
interfaces[] = \Phalcon\Db\ResultInterface
interfaces[] = \Phalcon\DiInterface
interfaces[] = \Phalcon\DispatcherInterface
interfaces[] = \Phalcon\EscaperInterface
interfaces[] = \Phalcon\Events\EventsAwareInterface
interfaces[] = \Phalcon\Events\ManagerInterface
interfaces[] = \Phalcon\FilterInterface
interfaces[] = \Phalcon\Filter\UserFilterInterface
interfaces[] = \Phalcon\FlashInterface
interfaces[] = \Phalcon\Forms\ElementInterface
interfaces[] = \Phalcon\Http\RequestInterface
interfaces[] = \Phalcon\Http\Request\FileInterface
interfaces[] = \Phalcon\Http\ResponseInterface
interfaces[] = \Phalcon\Http\Response\CookiesInterface
interfaces[] = \Phalcon\Http\Response\HeadersInterface
interfaces[] = \Phalcon\Image\AdapterInterface
interfaces[] = \Phalcon\Logger\AdapterInterface
interfaces[] = \Phalcon\Logger\FormatterInterface
interfaces[] = \Phalcon\Mvc\CollectionInterface
interfaces[] = \Phalcon\Mvc\Collection\ManagerInterface
interfaces[] = \Phalcon\Mvc\ControllerInterface
interfaces[] = \Phalcon\Mvc\DispatcherInterface
interfaces[] = \Phalcon\Mvc\Micro\CollectionInterface
interfaces[] = \Phalcon\Mvc\Micro\MiddlewareInterface
interfaces[] = \Phalcon\Mvc\ModelInterface
interfaces[] = \Phalcon\Mvc\Model\BehaviorInterface
interfaces[] = \Phalcon\Mvc\Model\CriteriaInterface
interfaces[] = \Phalcon\Mvc\Model\ManagerInterface
interfaces[] = \Phalcon\Mvc\Model\MessageInterface
interfaces[] = \Phalcon\Mvc\Model\MetaDataInterface
interfaces[] = \Phalcon\Mvc\Model\QueryInterface
interfaces[] = \Phalcon\Mvc\Model\Query\BuilderInterface
interfaces[] = \Phalcon\Mvc\Model\Query\StatusInterface
interfaces[] = \Phalcon\Mvc\Model\RelationInterface
interfaces[] = \Phalcon\Mvc\Model\ResultInterface
interfaces[] = \Phalcon\Mvc\Model\ResultsetInterface
interfaces[] = \Phalcon\Mvc\Model\TransactionInterface
interfaces[] = \Phalcon\Mvc\Model\Transaction\ManagerInterface
interfaces[] = \Phalcon\Mvc\Model\ValidatorInterface
interfaces[] = \Phalcon\Mvc\ModuleDefinitionInterface
interfaces[] = \Phalcon\Mvc\RouterInterface
interfaces[] = \Phalcon\Mvc\Router\RouteInterface
interfaces[] = \Phalcon\Mvc\UrlInterface
interfaces[] = \Phalcon\Mvc\ViewInterface
interfaces[] = \Phalcon\Mvc\View\EngineInterface
interfaces[] = \Phalcon\Paginator\AdapterInterface
interfaces[] = \Phalcon\Session\AdapterInterface
interfaces[] = \Phalcon\Session\BagInterface
interfaces[] = \Phalcon\Translate\AdapterInterface
interfaces[] = \Phalcon\Validation\ValidatorInterface

traits[] = 

namespaces[] = 

directives[] = 

{
 "opendir":{"function0":["readdir","rewinddir","closedir"]},

 "fopen":      {"function0":["fclose", "foef", "fflush", "fgetcsv", "fgets", "fgetss", "flock", "fputcsv", "fputs", "fread", "fscanf", "fseek", "fstat", "ftell", "ftruncate", "fwrite", "rewind"]},
 "tmpfile":    {"function0":["fclose", "foef", "fflush", "fgetcsv", "fgets", "fgetss", "flock", "fputcsv", "fputs", "fread", "fscanf", "fseek", "fstat", "ftell", "ftruncate", "fwrite", "rewind"]},
 "popen":      {"function0":["pclose", "foef", "fflush", "fgetcsv", "fgets", "fgetss",          "fputcsv", "fputs", "fread",                    "fstat",                       "fwrite" ]},
 "fsockopen":  {"function0":["fclose", "foef", "fflush", "fgetcsv", "fgets", "fgetss",          "fputcsv", "fputs", "fread",                    "fstat",                       "fwrite" ]},
 "pfsockopen": {"function0":["fclose", "foef", "fflush", "fgetcsv", "fgets", "fgetss",          "fputcsv", "fputs", "fread",                    "fstat",                       "fwrite" ]},

 "pspell_new":         {"function0":["pspell_add_to_personal","pspell_add_to_session","pspell_check","pspell_clear_session","pspell_save_wordlist","pspell_store_replacement","pspell_suggest"]},
 "pspell_new_config":  {"function0":["pspell_add_to_personal","pspell_add_to_session","pspell_check","pspell_clear_session","pspell_save_wordlist","pspell_store_replacement","pspell_suggest"]},
 "pspell_new_personal":{"function0":["pspell_add_to_personal","pspell_add_to_session","pspell_check","pspell_clear_session","pspell_save_wordlist","pspell_store_replacement","pspell_suggest"]},

 "pspell_config_create":{"function0":["pspell_config_data_dir","pspell_config_dict_dir","pspell_config_ignore","pspell_config_mode","pspell_config_personal","pspell_config_repl","pspell_config_runtogether","pspell_config_save_repl","pspell_new_config"]},

 "bzopen":{"function0":["bzclose","bzerrno","bzerror","bzerrstr","bzflush","bzwrite","bzread"]},
 
 "ftp_connect":    {"function0":["ftp_alloc","ftp_cdup","ftp_chdir","ftp_chmod","ftp_close","ftp_delete","ftp_exec","ftp_fget","ftp_fput","ftp_get_option","ftp_get","ftp_login","ftp_mdtm","ftp_mkdir","ftp_nb_continue","ftp_nb_fget","ftp_nb_fput","ftp_nb_get","ftp_nb_put","ftp_nlist","ftp_pasv","ftp_put","ftp_pwd","ftp_quit","ftp_raw","ftp_rawlist","ftp_rename","ftp_rmdir","ftp_set_option","ftp_site","ftp_size","ftp_systype"]},
 "ftp_ssl_connect":{"function0":["ftp_alloc","ftp_cdup","ftp_chdir","ftp_chmod","ftp_close","ftp_delete","ftp_exec","ftp_fget","ftp_fput","ftp_get_option","ftp_get","ftp_login","ftp_mdtm","ftp_mkdir","ftp_nb_continue","ftp_nb_fget","ftp_nb_fput","ftp_nb_get","ftp_nb_put","ftp_nlist","ftp_pasv","ftp_put","ftp_pwd","ftp_quit","ftp_raw","ftp_rawlist","ftp_rename","ftp_rmdir","ftp_set_option","ftp_site","ftp_size","ftp_systype"]},

 "sem_get": {"function0":["sem_release","sem_remove"]},
 "shm_attach": {"function0":["shm_detach","shm_get_var","shm_has_var","shm_put_var","shm_remove","shm_remove_var"]},
 "msg_get_queue": {"function0":["msg_queue_exists","msg_receive","msg_remove_queue","msg_send","msg_set_queue","msg_stat_queue"]},

 "gzopen": {"function0":["gzclose","gzeof","gzgetc","gzgets","gzgetss","gzpassthru","gzputs","gzread","gzrewind","gzseek","gztell","gzwrite"]},

 "xml_parser_create":    {"function0":["xml_parser_free","xml_parser_get_option","xml_parser_set_option","xml_set_character_data_handler","xml_set_default_handler","xml_set_element_handler","xml_set_end_namespace_decl_handler","xml_set_external_entity_ref_handler","xml_set_notation_decl_handler","xml_set_object","xml_set_processing_instruction_handler","xml_set_start_namespace_decl_handler","xml_set_unparsed_entity_decl_handler","xml_get_current_byte_index","xml_get_current_column_number","xml_get_current_line_number","xml_get_error_code","xml_parse_into_struct"]},
 "xml_parser_create_ns": {"function0":["xml_parser_free","xml_parser_get_option","xml_parser_set_option","xml_set_character_data_handler","xml_set_default_handler","xml_set_element_handler","xml_set_end_namespace_decl_handler","xml_set_external_entity_ref_handler","xml_set_notation_decl_handler","xml_set_object","xml_set_processing_instruction_handler","xml_set_start_namespace_decl_handler","xml_set_unparsed_entity_decl_handler","xml_get_current_byte_index","xml_get_current_column_number","xml_get_current_line_number","xml_get_error_code","xml_parse_into_struct"]},

 "wddx_packet_start ": {"function0":["wddx_packet_end","wddx_add_vars","wddx_add_vars"]}
}functions[] = 

constants[] = 

classes[] = TokyoTyrant
classes[] = TokyoTyrantTable
classes[] = TokyoTyrantQuery
classes[] = TokyoTyrantIterator
classes[] = TokyoTyrantException

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

classes[] = '\krumo';
classes[] = '\kint';
classes[] = '\symfony\component\debug\debug';
classes[] = '\debugkit\debugtimer';
classes[] = '\debugkit\debugmemory';
classes[] = '\debugkit\debugpanel';
classes[] = '\debugkit\toolbarservice';
classes[] = '\debugbar\debugbar';
classes[] = '\tracy\bar';
classes[] = '\tracy\dumper';
classes[] = '\tracy\logger';
classes[] = '\d';
classes[] = '\zend\debug\debug';

functions[] = '\xdebug_get_stack_depth';
functions[] = '\xdebug_get_function_stack';
functions[] = '\xdebug_get_formatted_function_stack';
functions[] = '\xdebug_print_function_stack';
functions[] = '\xdebug_get_declared_vars';
functions[] = '\xdebug_call_class';
functions[] = '\xdebug_call_function';
functions[] = '\xdebug_call_file';
functions[] = '\xdebug_call_line';
functions[] = '\xdebug_set_time_limit';
functions[] = '\xdebug_var_dump';
functions[] = '\xdebug_debug_zval';
functions[] = '\xdebug_debug_zval_stdout';
functions[] = '\xdebug_enable';
functions[] = '\xdebug_disable';
functions[] = '\xdebug_is_enabled';
functions[] = '\xdebug_break';
functions[] = '\xdebug_start_trace';
functions[] = '\xdebug_stop_trace';
functions[] = '\xdebug_get_tracefile_name';
functions[] = '\xdebug_start_error_collection';
functions[] = '\xdebug_stop_error_collection';
functions[] = '\xdebug_get_collected_errors';
functions[] = '\xdebug_get_profiler_filename';
functions[] = '\xdebug_dump_aggr_profiling_data';
functions[] = '\xdebug_clear_aggr_profiling_data';
functions[] = '\xdebug_dump_superglobals';
functions[] = '\xdebug_get_headers';
functions[] = '\xdebug_memory_usage';
functions[] = '\xdebug_peak_memory_usage';
functions[] = '\xdebug_time_index';
functions[] = '\xdebug_start_code_coverage';
functions[] = '\xdebug_stop_code_coverage';
functions[] = '\xdebug_get_code_coverage';
functions[] = '\xdebug_get_function_count';
functions[] = '\xdebug_code_coverage_started';
functions[] = '\var_dump';
functions[] = '\print_r';
functions[] = '\debug_zval_dump';
functions[] = '\debug_backtrace';
functions[] = '\debug_print_backtrace';
functions[] = '\krumo';
functions[] = '\k';
functions[] = '\kd';


constants[] = 'WP_DEBUG';constants[] = 'INTL_MAX_LOCALE_LEN';
constants[] = 'IDNA_DEFAULT';
constants[] = 'IDNA_ALLOW_UNASSIGNED';
constants[] = 'IDNA_USE_STD3_RULES';
constants[] = 'IDNA_CHECK_BIDI';
constants[] = 'IDNA_CHECK_CONTEXTJ';
constants[] = 'IDNA_NONTRANSITIONAL_TO_ASCII';
constants[] = 'IDNA_NONTRANSITIONAL_TO_UNICODE';
constants[] = 'INTL_IDNA_VARIANT_2003';
constants[] = 'INTL_IDNA_VARIANT_UTS46';
constants[] = 'IDNA_ERROR_EMPTY_LABEL';
constants[] = 'IDNA_ERROR_LABEL_TOO_LONG';
constants[] = 'IDNA_ERROR_DOMAIN_NAME_TOO_LONG';
constants[] = 'IDNA_ERROR_LEADING_HYPHEN';
constants[] = 'IDNA_ERROR_TRAILING_HYPHEN';
constants[] = 'IDNA_ERROR_HYPHEN_3_4';
constants[] = 'IDNA_ERROR_LEADING_COMBINING_MARK';
constants[] = 'IDNA_ERROR_DISALLOWED';
constants[] = 'IDNA_ERROR_PUNYCODE';
constants[] = 'IDNA_ERROR_LABEL_HAS_DOT';
constants[] = 'IDNA_ERROR_INVALID_ACE_LABEL';
constants[] = 'IDNA_ERROR_BIDI';
constants[] = 'IDNA_ERROR_CONTEXTJ';
constants[] = 'INTL_ICU_VERSION';

functions[] = 'grapheme_extract';
functions[] = 'grapheme_stripos';
functions[] = 'grapheme_stristr';
functions[] = 'grapheme_strlen';
functions[] = 'grapheme_strpos';
functions[] = 'grapheme_strripos';
functions[] = 'grapheme_strrpos';
functions[] = 'grapheme_strstr';
functions[] = 'grapheme_substr';
functions[] = 'idn_to_ascii';
functions[] = 'idn_to_unicode';
functions[] = 'idn_to_utf8';
functions[] = 'intl_error_name';
functions[] = 'intl_get_error_code';
functions[] = 'intl_get_error_message';
functions[] = 'intl_is_failure';
functions[] = 'collator_asort';
functions[] = 'collator_compare';
functions[] = 'collator_create';
functions[] = 'collator_get_attribute';
functions[] = 'collator_get_error_code';
functions[] = 'collator_get_error_message';
functions[] = 'collator_get_locale';
functions[] = 'collator_get_sortkey';
functions[] = 'collator_get_strength';
functions[] = 'collator_set_attribute';
functions[] = 'collator_set_strength';
functions[] = 'collator_sort_with_sort_keys';
functions[] = 'collator_sort';
functions[] = 'collator_get_sort_key';
functions[] = 'numfmt_create';
functions[] = 'numfmt_format_currency';
functions[] = 'numfmt_format';
functions[] = 'numfmt_get_attribute';
functions[] = 'numfmt_get_error_code';
functions[] = 'numfmt_get_error_message';
functions[] = 'numfmt_get_locale';
functions[] = 'numfmt_get_pattern';
functions[] = 'numfmt_get_symbol';
functions[] = 'numfmt_get_text_attribute';
functions[] = 'numfmt_parsecurrency';
functions[] = 'numfmt_parse';
functions[] = 'numfmt_set_attribute';
functions[] = 'numfmt_set_pattern';
functions[] = 'numfmt_set_symbol';
functions[] = 'numfmt_set_text_attribute';
functions[] = 'locale_accept_from_http';
functions[] = 'locale_canonicalize';
functions[] = 'locale_compose_locale';
functions[] = 'locale_filter_matches';
functions[] = 'locale_get_allvariants';
functions[] = 'locale_get_default';
functions[] = 'locale_get_displaylanguage';
functions[] = 'locale_get_displayname';
functions[] = 'locale_get_displayregion';
functions[] = 'locale_get_displayscript';
functions[] = 'locale_get_displayvariant';
functions[] = 'locale_get_keywords';
functions[] = 'locale_get_primarylanguage';
functions[] = 'locale_get_region';
functions[] = 'locale_get_script';
functions[] = 'locale_lookup';
functions[] = 'locale_parse';
functions[] = 'locale_set_default';
functions[] = 'normalizer_is_normalized';
functions[] = 'normalizer_normalize';
functions[] = 'msgfmt_create';
functions[] = 'msgfmt_format_message';
functions[] = 'msgfmt_format';
functions[] = 'msgfmt_get_errorcode';
functions[] = 'msgfmt_get_errormessage';
functions[] = 'msgfmt_get_locale';
functions[] = 'msgfmt_get_pattern';
functions[] = 'msgfmt_parse_message';
functions[] = 'msgfmt_parse';
functions[] = 'msgfmt_set_pattern';
functions[] = 'intlcal_add';
functions[] = 'intlcal_after';
functions[] = 'intlcal_before';
functions[] = 'intlcal_clear';
functions[] = 'intlcal_createinstance';
functions[] = 'intlcal_equals';
functions[] = 'intlcal_fielddifference';
functions[] = 'intlcal_fromdatetime';
functions[] = 'intlcal_get_';
functions[] = 'intlcal_get_actual_maximum';
functions[] = 'intlcal_get_actual_minimum';
functions[] = 'intlcal_get_available_locales';
functions[] = 'intlcal_get_day_of_week_type';
functions[] = 'intlcal_get_error_code';
functions[] = 'intlcal_get_error_message';
functions[] = 'intlcal_get_first_day_of_week';
functions[] = 'intlcal_get_greatest_minimum';
functions[] = 'intlcal_get_keyword_values_for_locale';
functions[] = 'intlcal_get_least_maximum';
functions[] = 'intlcal_get_locale';
functions[] = 'intlcal_get_maximum';
functions[] = 'intlcal_get_minimal_days_in_first_week';
functions[] = 'intlcal_get_minimum';
functions[] = 'intlcal_get_now';
functions[] = 'intlcal_get_repeated_wall_time_option';
functions[] = 'intlcal_get_skipped_wall_time_option';
functions[] = 'intlcal_get_time';
functions[] = 'intlcal_get_time_zone';
functions[] = 'intlcal_get_type';
functions[] = 'intlcal_get_weekend_transition';
functions[] = 'intlcal_in_daylight_time';
functions[] = 'intlcal_is_equivalent_to';
functions[] = 'intlcal_is_lenient';
functions[] = 'intlcal_is_set';
functions[] = 'intlcal_is_weekend';
functions[] = 'intlcal_roll';
functions[] = 'intlcal_set';
functions[] = 'intlcal_set_first_day_of_week';
functions[] = 'intlcal_set_lenient';
functions[] = 'intlcal_set_minimal_days_in_first_week';
functions[] = 'intlcal_set_repeated_wall_timeo_ption';
functions[] = 'intlcal_set_skipped_wall_time_option';
functions[] = 'intlcal_settime';
functions[] = 'intlcal_set_time_zone';
functions[] = 'intlcal_to_date_time';
functions[] = 'intltimezone_count_equivalent_ids';
functions[] = 'intltimezone_create_default';
functions[] = 'intltimezone_create_enumeration';
functions[] = 'intltimezone_create_time_zone';
functions[] = 'intltimezone_from_date_time_zone';
functions[] = 'intltimezone_get_canonical_id';
functions[] = 'intltimezone_get_display_name';
functions[] = 'intltimezone_get_dst_savings';
functions[] = 'intltimezone_get_equivalent_id';
functions[] = 'intltimezone_get_error_code';
functions[] = 'intltimezone_get_error_message';
functions[] = 'intltimezone_get_gmt';
functions[] = 'intltimezone_get_id';
functions[] = 'intltimezone_get_offset';
functions[] = 'intltimezone_get_raw_offset';
functions[] = 'intltimezone_get_tz_data_version';
functions[] = 'intltimezone_has_same_rules';
functions[] = 'intltimezone_to_date_time_zone';
functions[] = 'intltimezone_use_daylight_time';
functions[] = 'datefmt_create';
functions[] = 'datefmt_format';
functions[] = 'datefmt_format_object';
functions[] = 'datefmt_get_calendar';
functions[] = 'datefmt_get_date_type';
functions[] = 'datefmt_get_error_code';
functions[] = 'datefmt_get_error_message';
functions[] = 'datefmt_get_locale';
functions[] = 'datefmt_get_pattern';
functions[] = 'datefmt_get_time_type';
functions[] = 'datefmt_get_timezone_id';
functions[] = 'datefmt_get_calendar_object';
functions[] = 'datefmt_get_timezone';
functions[] = 'datefmt_is_lenient';
functions[] = 'datefmt_local_time';
functions[] = 'datefmt_parse';
functions[] = 'datefmt_set_calendar';
functions[] = 'datefmt_set_lenient';
functions[] = 'datefmt_set_pattern';
functions[] = 'datefmt_set_time_zone_id';
functions[] = 'datefmt_set_time_zone';
functions[] = 'resourcebundle_count';
functions[] = 'resourcebundle_create';
functions[] = 'resourcebundle_get_error_code';
functions[] = 'resourcebundle_get_error_message';
functions[] = 'resourcebundle_get';
functions[] = 'resourcebundle_get_locales';
functions[] = 'spoofchecker_are_confusable';
functions[] = 'spoofchecker_is_suspicious';
functions[] = 'spoofchecker_set_allowed_locales';
functions[] = 'spoofchecker_set_checks';
functions[] = 'transliterator_create';
functions[] = 'transliterator_create_from_rules';
functions[] = 'transliterator_create_inverse';
functions[] = 'transliterator_get_error_code';
functions[] = 'transliterator_get_error_message';
functions[] = 'transliterator_list_ids';
functions[] = 'transliterator_transliterate';
functions[] = 'intlbreakiterator_create_character_instance';
functions[] = 'intlbreakiterator_create_code_point_instance';
functions[] = 'intlbreakiterator_create_line_instance';
functions[] = 'intlbreakiterator_create_sentence_instance';
functions[] = 'intlbreakiterator_create_title_instance';
functions[] = 'intlbreakiterator_create_word_instance';
functions[] = 'intlbreakiterator_current';
functions[] = 'intlbreakiterator_first';
functions[] = 'intlbreakiterator_following';
functions[] = 'intlbreakiterator_get_errorcode';
functions[] = 'intlbreakiterator_get_errormessage';
functions[] = 'intlbreakiterator_get_locale';
functions[] = 'intlbreakiterator_get_partsiterator';
functions[] = 'intlbreakiterator_get_text';
functions[] = 'intlbreakiterator_is_boundary';
functions[] = 'intlbreakiterator_last';
functions[] = 'intlbreakiterator_next';
functions[] = 'intlbreakiterator_preceding';
functions[] = 'intlbreakiterator_previous';
functions[] = 'intlbreakiterator_set_text';
functions[] = 'intlrulebasedbreakiterator_get_binary_rules';
functions[] = 'intlrulebasedbreakiterator_get_rules';
functions[] = 'intlrulebasedbreakiterator_get_rule_status';
functions[] = 'intlrulebasedbreakiterator_get_rule_status_vec';
functions[] = 'intlcodepointbreakiterator_get_last_code_point';
functions[] = 'intlpartsiterator_get_break_iterator';
functions[] = 'uconverter_convert';
functions[] = 'uconverter_fromucallback';
functions[] = 'uconverter_get_aliases';
functions[] = 'uconverter_get_available';
functions[] = 'uconverter_get_destinationencoding';
functions[] = 'uconverter_get_destinationtype';
functions[] = 'uconverter_get_errorcode';
functions[] = 'uconverter_get_errormessage';
functions[] = 'uconverter_get_sourceencoding';
functions[] = 'uconverter_get_sourcetype';
functions[] = 'uconverter_get_standards';
functions[] = 'uconverter_get_substchars';
functions[] = 'uconverter_reasontext';
functions[] = 'uconverter_setdestinationencoding';
functions[] = 'uconverter_setsourceencoding';
functions[] = 'uconverter_setsubstchars';
functions[] = 'uconverter_toucallback';
functions[] = 'uconverter_transcode';

classes[] = 'Collator';
classes[] = 'NumberFormatter';
classes[] = 'Locale';
classes[] = 'Normalizer';
classes[] = 'MessageFormatter';
classes[] = 'IntlCalendar';
classes[] = 'IntlTimeZone';
classes[] = 'IntlDateFormatter';
classes[] = 'ResourceBundle';
classes[] = 'Spoofchecker';
classes[] = 'Transliterator';
classes[] = 'IntlBreakIterator';
classes[] = 'IntlRuleBasedBreakIterator';
classes[] = 'IntlCodePointBreakIterator';
classes[] = 'IntlPartsIterator';
classes[] = 'UConverter';
classes[] = 'IntlException';
classes[] = 'IntlIterator';
    
interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

superglobal[] = '$GLOBALS'
superglobal[] = '$_SERVER'
superglobal[] = '$_GET'
superglobal[] = '$_POST'
superglobal[] = '$_FILES'
superglobal[] = '$_COOKIE'
superglobal[] = '$_SESSION'
superglobal[] = '$_REQUEST'
superglobal[] = '$_ENV'
functions[] = 

constants[] = 'Grpc\CALL_OK';
constants[] = 'Grpc\CALL_ERROR';
constants[] = 'Grpc\CALL_ERROR_NOT_ON_SERVER';
constants[] = 'Grpc\CALL_ERROR_NOT_ON_CLIENT';
constants[] = 'Grpc\CALL_ERROR_ALREADY_INVOKED';
constants[] = 'Grpc\CALL_ERROR_NOT_INVOKED';
constants[] = 'Grpc\CALL_ERROR_ALREADY_FINISHED';
constants[] = 'Grpc\CALL_ERROR_TOO_MANY_OPERATIONS';
constants[] = 'Grpc\CALL_ERROR_INVALID_FLAGS';
constants[] = 'Grpc\WRITE_BUFFER_HINT';
constants[] = 'Grpc\WRITE_NO_COMPRESS';
constants[] = 'Grpc\STATUS_OK';
constants[] = 'Grpc\STATUS_CANCELLED';
constants[] = 'Grpc\STATUS_UNKNOWN';
constants[] = 'Grpc\STATUS_INVALID_ARGUMENT';
constants[] = 'Grpc\STATUS_DEADLINE_EXCEEDED';
constants[] = 'Grpc\STATUS_NOT_FOUND';
constants[] = 'Grpc\STATUS_ALREADY_EXISTS';
constants[] = 'Grpc\STATUS_PERMISSION_DENIED';
constants[] = 'Grpc\STATUS_UNAUTHENTICATED';
constants[] = 'Grpc\STATUS_RESOURCE_EXHAUSTED';
constants[] = 'Grpc\STATUS_FAILED_PRECONDITION';
constants[] = 'Grpc\STATUS_ABORTED';
constants[] = 'Grpc\STATUS_OUT_OF_RANGE';
constants[] = 'Grpc\STATUS_UNIMPLEMENTED';
constants[] = 'Grpc\STATUS_INTERNAL';
constants[] = 'Grpc\STATUS_UNAVAILABLE';
constants[] = 'Grpc\STATUS_DATA_LOSS';
constants[] = 'Grpc\OP_SEND_INITIAL_METADATA';
constants[] = 'Grpc\OP_SEND_MESSAGE';
constants[] = 'Grpc\OP_SEND_CLOSE_FROM_CLIENT';
constants[] = 'Grpc\OP_SEND_STATUS_FROM_SERVER';
constants[] = 'Grpc\OP_RECV_INITIAL_METADATA';
constants[] = 'Grpc\OP_RECV_MESSAGE';
constants[] = 'Grpc\OP_RECV_STATUS_ON_CLIENT';
constants[] = 'Grpc\OP_RECV_CLOSE_ON_SERVER';
constants[] = 'Grpc\CHANNEL_IDLE';
constants[] = 'Grpc\CHANNEL_CONNECTING';
constants[] = 'Grpc\CHANNEL_READY';
constants[] = 'Grpc\CHANNEL_TRANSIENT_FAILURE';
constants[] = 'Grpc\CHANNEL_FATAL_FAILURE';

classes[] = 'Grpc\Call';
classes[] = 'Grpc\CallCredentials';
classes[] = 'Grpc\Channel';
classes[] = 'Grpc\ChannelCredentials';
classes[] = 'Grpc\Server';
classes[] = 'Grpc\ServerCredentials';
classes[] = 'Grpc\Timeval';

interfaces[] = 

traits[] = 

namespaces[] = 'Grpc'

directives[] = 

constants[] = 'SID';
constants[] = 'PHP_SESSION_DISABLED';
constants[] = 'PHP_SESSION_NONE';
constants[] = 'PHP_SESSION_ACTIVE';

functions[] = session_cache_expire;
functions[] = session_cache_limiter;
functions[] = session_commit;
functions[] = session_decode;
functions[] = session_destroy;
functions[] = session_encode;
functions[] = session_get_cookie_params;
functions[] = session_id;
functions[] = session_is_registered;
functions[] = session_module_name;
functions[] = session_name;
functions[] = session_regenerate_id;
functions[] = session_register_shutdown;
functions[] = session_register;
functions[] = session_save_path;
functions[] = session_set_cookie_params;
functions[] = session_set_save_handler;
functions[] = session_start;
functions[] = session_status;
functions[] = session_unregister;
functions[] = session_unset;
functions[] = session_write_close;

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = wincache_fcache_fileinfo
functions[] = wincache_fcache_meminfo
functions[] = wincache_lock
functions[] = wincache_ocache_fileinfo
functions[] = wincache_ocache_meminfo
functions[] = wincache_refresh_if_changed
functions[] = wincache_rplist_fileinfo
functions[] = wincache_rplist_meminfo
functions[] = wincache_scache_info
functions[] = wincache_scache_meminfo
functions[] = wincache_ucache_add
functions[] = wincache_ucache_cas
functions[] = wincache_ucache_clear
functions[] = wincache_ucache_dec
functions[] = wincache_ucache_delete
functions[] = wincache_ucache_exists
functions[] = wincache_ucache_get
functions[] = wincache_ucache_inc
functions[] = wincache_ucache_info
functions[] = wincache_ucache_meminfo
functions[] = wincache_ucache_set
functions[] = wincache_unlock

constants[] = 

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

namespaces[] = 

directives[] = 

functions[] = gd_info
functions[] = getimagesize
functions[] = getimagesizefromstring
functions[] = image_type_to_extension
functions[] = image_type_to_mime_type
functions[] = image2wbmp
functions[] = imageaffine
functions[] = imageaffinematrixconcat
functions[] = imageaffinematrixget
functions[] = imagealphablending
functions[] = imageantialias
functions[] = imagearc
functions[] = imagechar
functions[] = imagecharup
functions[] = imagecolorallocate
functions[] = imagecolorallocatealpha
functions[] = imagecolorat
functions[] = imagecolorclosest
functions[] = imagecolorclosestalpha
functions[] = imagecolorclosesthwb
functions[] = imagecolordeallocate
functions[] = imagecolorexact
functions[] = imagecolorexactalpha
functions[] = imagecolormatch
functions[] = imagecolorresolve
functions[] = imagecolorresolvealpha
functions[] = imagecolorset
functions[] = imagecolorsforindex
functions[] = imagecolorstotal
functions[] = imagecolortransparent
functions[] = imageconvolution
functions[] = imagecopy
functions[] = imagecopymerge
functions[] = imagecopymergegray
functions[] = imagecopyresampled
functions[] = imagecopyresized
functions[] = imagecreate
functions[] = imagecreatefromgd2
functions[] = imagecreatefromgd2part
functions[] = imagecreatefromgd
functions[] = imagecreatefromgif
functions[] = imagecreatefromjpeg
functions[] = imagecreatefrompng
functions[] = imagecreatefromstring
functions[] = imagecreatefromwbmp
functions[] = imagecreatefromwebp
functions[] = imagecreatefromxbm
functions[] = imagecreatefromxpm
functions[] = imagecreatetruecolor
functions[] = imagecrop
functions[] = imagecropauto
functions[] = imagedashedline
functions[] = imagedestroy
functions[] = imageellipse
functions[] = imagefill
functions[] = imagefilledarc
functions[] = imagefilledellipse
functions[] = imagefilledpolygon
functions[] = imagefilledrectangle
functions[] = imagefilltoborder
functions[] = imagefilter
functions[] = imageflip
functions[] = imagefontheight
functions[] = imagefontwidth
functions[] = imageftbbox
functions[] = imagefttext
functions[] = imagegammacorrect
functions[] = imagegd2
functions[] = imagegd
functions[] = imagegif
functions[] = imagegrabscreen
functions[] = imagegrabwindow
functions[] = imageinterlace
functions[] = imageistruecolor
functions[] = imagejpeg
functions[] = imagelayereffect
functions[] = imageline
functions[] = imageloadfont
functions[] = imagepalettecopy
functions[] = imagepalettetotruecolor
functions[] = imagepng
functions[] = imagepolygon
functions[] = imagepsbbox
functions[] = imagepsencodefont
functions[] = imagepsextendfont
functions[] = imagepsfreefont
functions[] = imagepsloadfont
functions[] = imagepsslantfont
functions[] = imagepstext
functions[] = imagerectangle
functions[] = imagerotate
functions[] = imagesavealpha
functions[] = imagescale
functions[] = imagesetbrush
functions[] = imagesetinterpolation
functions[] = imagesetpixel
functions[] = imagesetstyle
functions[] = imagesetthickness
functions[] = imagesettile
functions[] = imagestring
functions[] = imagestringup
functions[] = imagesx
functions[] = imagesy
functions[] = imagetruecolortopalette
functions[] = imagettfbbox
functions[] = imagettftext
functions[] = imagetypes
functions[] = imagewbmp
functions[] = imagewebp
functions[] = imagexbm
functions[] = iptcembed
functions[] = iptcparse
functions[] = jpeg2wbmp
functions[] = png2wbmp

classes[] = 

constants[] = 'IMG_GIF';
constants[] = 'IMG_JPG';
constants[] = 'IMG_JPEG';
constants[] = 'IMG_PNG';
constants[] = 'IMG_WBMP';
constants[] = 'IMG_XPM';
constants[] = 'IMG_COLOR_TILED';
constants[] = 'IMG_COLOR_STYLED';
constants[] = 'IMG_COLOR_BRUSHED';
constants[] = 'IMG_COLOR_STYLEDBRUSHED';
constants[] = 'IMG_COLOR_TRANSPARENT';
constants[] = 'IMG_ARC_ROUNDED';
constants[] = 'IMG_ARC_PIE';
constants[] = 'IMG_ARC_CHORD';
constants[] = 'IMG_ARC_NOFILL';
constants[] = 'IMG_ARC_EDGED';
constants[] = 'IMG_GD2_RAW';
constants[] = 'IMG_GD2_COMPRESSED';
constants[] = 'IMG_EFFECT_REPLACE';
constants[] = 'IMG_EFFECT_ALPHABLEND';
constants[] = 'IMG_EFFECT_NORMAL';
constants[] = 'IMG_EFFECT_OVERLAY';
constants[] = 'GD_BUNDLED';
constants[] = 'IMG_FILTER_NEGATE';
constants[] = 'IMG_FILTER_GRAYSCALE';
constants[] = 'IMG_FILTER_BRIGHTNESS';
constants[] = 'IMG_FILTER_CONTRAST';
constants[] = 'IMG_FILTER_COLORIZE';
constants[] = 'IMG_FILTER_EDGEDETECT';
constants[] = 'IMG_FILTER_GAUSSIAN_BLUR';
constants[] = 'IMG_FILTER_SELECTIVE_BLUR';
constants[] = 'IMG_FILTER_EMBOSS';
constants[] = 'IMG_FILTER_MEAN_REMOVAL';
constants[] = 'IMG_FILTER_SMOOTH';
constants[] = 'IMG_FILTER_PIXELATE';
constants[] = 'GD_VERSION';
constants[] = 'GD_MAJOR_VERSION';
constants[] = 'GD_MINOR_VERSION';
constants[] = 'GD_RELEASE_VERSION';
constants[] = 'GD_EXTRA_VERSION';
constants[] = 'PNG_NO_FILTER';
constants[] = 'PNG_FILTER_NONE';
constants[] = 'PNG_FILTER_SUB';
constants[] = 'PNG_FILTER_UP';
constants[] = 'PNG_FILTER_AVG';
constants[] = 'PNG_FILTER_PAETH';
constants[] = 'PNG_ALL_FILTERS';
constants[] = 'IMAGETYPE_GIF';
constants[] = 'IMAGETYPE_JPEG';
constants[] = 'IMAGETYPE_PNG';
constants[] = 'IMAGETYPE_SWF';
constants[] = 'IMAGETYPE_PSD';
constants[] = 'IMAGETYPE_BMP';
constants[] = 'IMAGETYPE_TIFF_II';
constants[] = 'IMAGETYPE_TIFF_MM';
constants[] = 'IMAGETYPE_JPC';
constants[] = 'IMAGETYPE_JP2';
constants[] = 'IMAGETYPE_JPX';
constants[] = 'IMAGETYPE_JB2';
constants[] = 'IMAGETYPE_SWC';
constants[] = 'IMAGETYPE_IFF';
constants[] = 'IMAGETYPE_WBMP';
constants[] = 'IMAGETYPE_JPEG2000';
constants[] = 'IMAGETYPE_XBM';
constants[] = 'IMAGETYPE_ICO';
constants[] = 'IMAGETYPE_UNKNOWN';
constants[] = 'IMAGETYPE_COUNT';

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = 'glob';
functions[] = 'parse_ini_file';
functions[] = 'parse_ini_string';
functions[] = 'file';
functions[] = 'getimagesize'
functions[] = 'getimagesizefromstring'
functions[] = 'opendir'
functions[] = 'sqrt'constants[] = 'TIDY_TAG_UNKNOWN';
constants[] = 'TIDY_TAG_A';
constants[] = 'TIDY_TAG_ABBR';
constants[] = 'TIDY_TAG_ACRONYM';
constants[] = 'TIDY_TAG_ADDRESS';
constants[] = 'TIDY_TAG_ALIGN';
constants[] = 'TIDY_TAG_APPLET';
constants[] = 'TIDY_TAG_AREA';
constants[] = 'TIDY_TAG_B';
constants[] = 'TIDY_TAG_BASE';
constants[] = 'TIDY_TAG_BASEFONT';
constants[] = 'TIDY_TAG_BDO';
constants[] = 'TIDY_TAG_BGSOUND';
constants[] = 'TIDY_TAG_BIG';
constants[] = 'TIDY_TAG_BLINK';
constants[] = 'TIDY_TAG_BLOCKQUOTE';
constants[] = 'TIDY_TAG_BODY';
constants[] = 'TIDY_TAG_BR';
constants[] = 'TIDY_TAG_BUTTON';
constants[] = 'TIDY_TAG_CAPTION';
constants[] = 'TIDY_TAG_CENTER';
constants[] = 'TIDY_TAG_CITE';
constants[] = 'TIDY_TAG_CODE';
constants[] = 'TIDY_TAG_COL';
constants[] = 'TIDY_TAG_COLGROUP';
constants[] = 'TIDY_TAG_COMMENT';
constants[] = 'TIDY_TAG_DD';
constants[] = 'TIDY_TAG_DEL';
constants[] = 'TIDY_TAG_DFN';
constants[] = 'TIDY_TAG_DIR';
constants[] = 'TIDY_TAG_DIV';
constants[] = 'TIDY_TAG_DL';
constants[] = 'TIDY_TAG_DT';
constants[] = 'TIDY_TAG_EM';
constants[] = 'TIDY_TAG_EMBED';
constants[] = 'TIDY_TAG_FIELDSET';
constants[] = 'TIDY_TAG_FONT';
constants[] = 'TIDY_TAG_FORM';
constants[] = 'TIDY_TAG_FRAME';
constants[] = 'TIDY_TAG_FRAMESET';
constants[] = 'TIDY_TAG_H1';
constants[] = 'TIDY_TAG_H2';
constants[] = 'TIDY_TAG_H3';
constants[] = 'TIDY_TAG_H4';
constants[] = 'TIDY_TAG_H5';
constants[] = 'TIDY_TAG_H6';
constants[] = 'TIDY_TAG_HEAD';
constants[] = 'TIDY_TAG_HR';
constants[] = 'TIDY_TAG_HTML';
constants[] = 'TIDY_TAG_I';
constants[] = 'TIDY_TAG_IFRAME';
constants[] = 'TIDY_TAG_ILAYER';
constants[] = 'TIDY_TAG_IMG';
constants[] = 'TIDY_TAG_INPUT';
constants[] = 'TIDY_TAG_INS';
constants[] = 'TIDY_TAG_ISINDEX';
constants[] = 'TIDY_TAG_KBD';
constants[] = 'TIDY_TAG_KEYGEN';
constants[] = 'TIDY_TAG_LABEL';
constants[] = 'TIDY_TAG_LAYER';
constants[] = 'TIDY_TAG_LEGEND';
constants[] = 'TIDY_TAG_LI';
constants[] = 'TIDY_TAG_LINK';
constants[] = 'TIDY_TAG_LISTING';
constants[] = 'TIDY_TAG_MAP';
constants[] = 'TIDY_TAG_MARQUEE';
constants[] = 'TIDY_TAG_MENU';
constants[] = 'TIDY_TAG_META';
constants[] = 'TIDY_TAG_MULTICOL';
constants[] = 'TIDY_TAG_NOBR';
constants[] = 'TIDY_TAG_NOEMBED';
constants[] = 'TIDY_TAG_NOFRAMES';
constants[] = 'TIDY_TAG_NOLAYER';
constants[] = 'TIDY_TAG_NOSAVE';
constants[] = 'TIDY_TAG_NOSCRIPT';
constants[] = 'TIDY_TAG_OBJECT';
constants[] = 'TIDY_TAG_OL';
constants[] = 'TIDY_TAG_OPTGROUP';
constants[] = 'TIDY_TAG_OPTION';
constants[] = 'TIDY_TAG_P';
constants[] = 'TIDY_TAG_PARAM';
constants[] = 'TIDY_TAG_PLAINTEXT';
constants[] = 'TIDY_TAG_PRE';
constants[] = 'TIDY_TAG_Q';
constants[] = 'TIDY_TAG_RB';
constants[] = 'TIDY_TAG_RBC';
constants[] = 'TIDY_TAG_RP';
constants[] = 'TIDY_TAG_RT';
constants[] = 'TIDY_TAG_RTC';
constants[] = 'TIDY_TAG_RUBY';
constants[] = 'TIDY_TAG_S';
constants[] = 'TIDY_TAG_SAMP';
constants[] = 'TIDY_TAG_SCRIPT';
constants[] = 'TIDY_TAG_SELECT';
constants[] = 'TIDY_TAG_SERVER';
constants[] = 'TIDY_TAG_SERVLET';
constants[] = 'TIDY_TAG_SMALL';
constants[] = 'TIDY_TAG_SPACER';
constants[] = 'TIDY_TAG_SPAN';
constants[] = 'TIDY_TAG_STRIKE';
constants[] = 'TIDY_TAG_STRONG';
constants[] = 'TIDY_TAG_STYLE';
constants[] = 'TIDY_TAG_SUB';
constants[] = 'TIDY_TAG_SUP';
constants[] = 'TIDY_TAG_TABLE';
constants[] = 'TIDY_TAG_TBODY';
constants[] = 'TIDY_TAG_TD';
constants[] = 'TIDY_TAG_TEXTAREA';
constants[] = 'TIDY_TAG_TFOOT';
constants[] = 'TIDY_TAG_TH';
constants[] = 'TIDY_TAG_THEAD';
constants[] = 'TIDY_TAG_TITLE';
constants[] = 'TIDY_TAG_TR';
constants[] = 'TIDY_TAG_TT';
constants[] = 'TIDY_TAG_U';
constants[] = 'TIDY_TAG_UL';
constants[] = 'TIDY_TAG_VAR';
constants[] = 'TIDY_TAG_WBR';
constants[] = 'TIDY_TAG_XMP';
constants[] = 'TIDY_NODETYPE_ROOT';
constants[] = 'TIDY_NODETYPE_DOCTYPE';
constants[] = 'TIDY_NODETYPE_COMMENT';
constants[] = 'TIDY_NODETYPE_PROCINS';
constants[] = 'TIDY_NODETYPE_TEXT';
constants[] = 'TIDY_NODETYPE_START';
constants[] = 'TIDY_NODETYPE_END';
constants[] = 'TIDY_NODETYPE_STARTEND';
constants[] = 'TIDY_NODETYPE_CDATA';
constants[] = 'TIDY_NODETYPE_SECTION';
constants[] = 'TIDY_NODETYPE_ASP';
constants[] = 'TIDY_NODETYPE_JSTE';
constants[] = 'TIDY_NODETYPE_PHP';
constants[] = 'TIDY_NODETYPE_XMLDECL';

functions[] = tidy_getopt
functions[] = tidy_parse_string
functions[] = tidy_parse_file
functions[] = tidy_get_output
functions[] = tidy_get_error_buffer
functions[] = tidy_clean_repair
functions[] = tidy_repair_string
functions[] = tidy_repair_file
functions[] = tidy_diagnose
functions[] = tidy_get_release
functions[] = tidy_get_config
functions[] = tidy_get_status
functions[] = tidy_get_html_ver
functions[] = tidy_is_xhtml
functions[] = tidy_is_xml
functions[] = tidy_error_count
functions[] = tidy_warning_count
functions[] = tidy_access_count
functions[] = tidy_config_count
functions[] = tidy_get_opt_doc
functions[] = tidy_get_root
functions[] = tidy_get_head
functions[] = tidy_get_html
functions[] = tidy_get_body
functions[] = ob_tidyhandler

classes[] = tidy
classes[] = tidyNode

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

constants[] = 'SEEK_SET';
constants[] = 'SEEK_CUR';
constants[] = 'SEEK_END';
constants[] = 'LOCK_SH';
constants[] = 'LOCK_EX';
constants[] = 'LOCK_UN';
constants[] = 'LOCK_NB';
constants[] = 'STREAM_NOTIFY_CONNECT';
constants[] = 'STREAM_NOTIFY_AUTH_REQUIRED';
constants[] = 'STREAM_NOTIFY_AUTH_RESULT';
constants[] = 'STREAM_NOTIFY_MIME_TYPE_IS';
constants[] = 'STREAM_NOTIFY_FILE_SIZE_IS';
constants[] = 'STREAM_NOTIFY_REDIRECTED';
constants[] = 'STREAM_NOTIFY_PROGRESS';
constants[] = 'STREAM_NOTIFY_FAILURE';
constants[] = 'STREAM_NOTIFY_COMPLETED';
constants[] = 'STREAM_NOTIFY_RESOLVE';
constants[] = 'STREAM_NOTIFY_SEVERITY_INFO';
constants[] = 'STREAM_NOTIFY_SEVERITY_WARN';
constants[] = 'STREAM_NOTIFY_SEVERITY_ERR';
constants[] = 'STREAM_FILTER_READ';
constants[] = 'STREAM_FILTER_WRITE';
constants[] = 'STREAM_FILTER_ALL';
constants[] = 'STREAM_CLIENT_PERSISTENT';
constants[] = 'STREAM_CLIENT_ASYNC_CONNECT';
constants[] = 'STREAM_CLIENT_CONNECT';
constants[] = 'STREAM_CRYPTO_METHOD_SSLv2_CLIENT';
constants[] = 'STREAM_CRYPTO_METHOD_SSLv3_CLIENT';
constants[] = 'STREAM_CRYPTO_METHOD_SSLv23_CLIENT';
constants[] = 'STREAM_CRYPTO_METHOD_TLS_CLIENT';
constants[] = 'STREAM_CRYPTO_METHOD_SSLv2_SERVER';
constants[] = 'STREAM_CRYPTO_METHOD_SSLv3_SERVER';
constants[] = 'STREAM_CRYPTO_METHOD_SSLv23_SERVER';
constants[] = 'STREAM_CRYPTO_METHOD_TLS_SERVER';
constants[] = 'STREAM_SHUT_RD';
constants[] = 'STREAM_SHUT_WR';
constants[] = 'STREAM_SHUT_RDWR';
constants[] = 'STREAM_PF_INET';
constants[] = 'STREAM_PF_INET6';
constants[] = 'STREAM_PF_UNIX';
constants[] = 'STREAM_IPPROTO_IP';
constants[] = 'STREAM_IPPROTO_TCP';
constants[] = 'STREAM_IPPROTO_UDP';
constants[] = 'STREAM_IPPROTO_ICMP';
constants[] = 'STREAM_IPPROTO_RAW';
constants[] = 'STREAM_SOCK_STREAM';
constants[] = 'STREAM_SOCK_DGRAM';
constants[] = 'STREAM_SOCK_RAW';
constants[] = 'STREAM_SOCK_SEQPACKET';
constants[] = 'STREAM_SOCK_RDM';
constants[] = 'STREAM_PEEK';
constants[] = 'STREAM_OOB';
constants[] = 'STREAM_SERVER_BIND';
constants[] = 'STREAM_SERVER_LISTEN';
constants[] = 'FILE_USE_INCLUDE_PATH';
constants[] = 'FILE_IGNORE_NEW_LINES';
constants[] = 'FILE_SKIP_EMPTY_LINES';
constants[] = 'FILE_APPEND';
constants[] = 'FILE_NO_DEFAULT_CONTEXT';
constants[] = 'FILE_TEXT';
constants[] = 'FILE_BINARY';
constants[] = 'DIRECTORY_SEPARATOR';
constants[] = 'PATH_SEPARATOR';
constants[] = 'SCANDIR_SORT_ASCENDING';
constants[] = 'SCANDIR_SORT_DESCENDING';
constants[] = 'SCANDIR_SORT_NONE';

functions[] = basename;
functions[] = chgrp;
functions[] = chmod;
functions[] = chown;
functions[] = clearstatcache;
functions[] = copy;
functions[] = delete;
functions[] = dirname;
functions[] = disk_free_space;
functions[] = disk_total_space;
functions[] = diskfreespace;
functions[] = fclose;
functions[] = feof;
functions[] = fflush;
functions[] = fgetc;
functions[] = fgetcsv;
functions[] = fgets;
functions[] = fgetss;
functions[] = file_exists;
functions[] = file_get_contents;
functions[] = file_put_contents;
functions[] = file;
functions[] = fileatime;
functions[] = filectime;
functions[] = filegroup;
functions[] = fileinode;
functions[] = filemtime;
functions[] = fileowner;
functions[] = fileperms;
functions[] = filesize;
functions[] = filetype;
functions[] = flock;
functions[] = fnmatch;
functions[] = fopen;
functions[] = fpassthru;
functions[] = fputcsv;
functions[] = fputs;
functions[] = fread;
functions[] = fscanf;
functions[] = fseek;
functions[] = fstat;
functions[] = ftell;
functions[] = ftruncate;
functions[] = fwrite;
functions[] = glob;
functions[] = is_dir;
functions[] = is_executable;
functions[] = is_file;
functions[] = is_link;
functions[] = is_readable;
functions[] = is_uploaded_file;
functions[] = is_writable;
functions[] = is_writeable;
functions[] = lchgrp;
functions[] = lchown;
functions[] = link;
functions[] = linkinfo;
functions[] = lstat;
functions[] = mkdir;
functions[] = move_uploaded_file;
functions[] = parse_ini_file;
functions[] = parse_ini_string;
functions[] = pathinfo;
functions[] = pclose;
functions[] = popen;
functions[] = readfile;
functions[] = readlink;
functions[] = realpath_cache_get;
functions[] = realpath_cache_size;
functions[] = realpath;
functions[] = rename;
functions[] = rewind;
functions[] = rmdir;
functions[] = set_file_buffer;
functions[] = stat;
functions[] = symlink;
functions[] = tempnam;
functions[] = tmpfile;
functions[] = touch;
functions[] = umask;
functions[] = unlink;
functions[] = chdir
functions[] = chroot
functions[] = closedir
functions[] = dir
functions[] = getcwd
functions[] = opendir
functions[] = readdir
functions[] = rewinddir
functions[] = scandir

classes[] = Directory

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = ereg_replace
functions[] = ereg
functions[] = eregi_replace
functions[] = eregi
functions[] = split
functions[] = spliti
functions[] = sql_regcase

constants[] = 

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] =   rd_kafka_err2str
functions[] =   rd_kafka_errno
functions[] =   rd_kafka_errno2err
functions[] =   rd_kafka_offset_tail

constants[] = 'RD_KAFKA_CONF_INVALID';
constants[] = 'RD_KAFKA_CONF_OK';
constants[] = 'RD_KAFKA_CONF_UNKNOWN';
constants[] = 'RD_KAFKA_CONSUMER';
constants[] = 'RD_KAFKA_LOG_PRINT';
constants[] = 'RD_KAFKA_LOG_SYSLOG';
constants[] = 'RD_KAFKA_LOG_SYSLOG_PRINT';
constants[] = 'RD_KAFKA_MSG_PARTITIONER_CONSISTENT';
constants[] = 'RD_KAFKA_MSG_PARTITIONER_RANDOM';
constants[] = 'RD_KAFKA_OFFSET_BEGINNING';
constants[] = 'RD_KAFKA_OFFSET_END';
constants[] = 'RD_KAFKA_OFFSET_STORED';
constants[] = 'RD_KAFKA_PARTITION_UA';
constants[] = 'RD_KAFKA_PRODUCER';
constants[] = 'RD_KAFKA_RESP_ERR__ALL_BROKERS_DOWN';
constants[] = 'RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS';
constants[] = 'RD_KAFKA_RESP_ERR__AUTHENTICATION';
constants[] = 'RD_KAFKA_RESP_ERR__BAD_COMPRESSION';
constants[] = 'RD_KAFKA_RESP_ERR__BAD_MSG';
constants[] = 'RD_KAFKA_RESP_ERR__BEGIN';
constants[] = 'RD_KAFKA_RESP_ERR__CONFLICT';
constants[] = 'RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE';
constants[] = 'RD_KAFKA_RESP_ERR__DESTROY';
constants[] = 'RD_KAFKA_RESP_ERR__END';
constants[] = 'RD_KAFKA_RESP_ERR__EXISTING_SUBSCRIPTION';
constants[] = 'RD_KAFKA_RESP_ERR__FAIL';
constants[] = 'RD_KAFKA_RESP_ERR__FS';
constants[] = 'RD_KAFKA_RESP_ERR__IN_PROGRESS';
constants[] = 'RD_KAFKA_RESP_ERR__INVALID_ARG';
constants[] = 'RD_KAFKA_RESP_ERR__ISR_INSUFF';
constants[] = 'RD_KAFKA_RESP_ERR__MSG_TIMED_OUT';
constants[] = 'RD_KAFKA_RESP_ERR__NO_OFFSET';
constants[] = 'RD_KAFKA_RESP_ERR__NODE_UPDATE';
constants[] = 'RD_KAFKA_RESP_ERR__NOT_IMPLEMENTED';
constants[] = 'RD_KAFKA_RESP_ERR__PARTITION_EOF';
constants[] = 'RD_KAFKA_RESP_ERR__PREV_IN_PROGRESS';
constants[] = 'RD_KAFKA_RESP_ERR__QUEUE_FULL';
constants[] = 'RD_KAFKA_RESP_ERR__RESOLVE';
constants[] = 'RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS';
constants[] = 'RD_KAFKA_RESP_ERR__SSL';
constants[] = 'RD_KAFKA_RESP_ERR__STATE';
constants[] = 'RD_KAFKA_RESP_ERR__TIMED_OUT';
constants[] = 'RD_KAFKA_RESP_ERR__TRANSPORT';
constants[] = 'RD_KAFKA_RESP_ERR__UNKNOWN_GROUP';
constants[] = 'RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION';
constants[] = 'RD_KAFKA_RESP_ERR__UNKNOWN_PROTOCOL';
constants[] = 'RD_KAFKA_RESP_ERR__UNKNOWN_TOPIC';
constants[] = 'RD_KAFKA_RESP_ERR__WAIT_COORD';
constants[] = 'RD_KAFKA_RESP_ERR_BROKER_NOT_AVAILABLE';
constants[] = 'RD_KAFKA_RESP_ERR_CLUSTER_AUTHORIZATION_FAILED';
constants[] = 'RD_KAFKA_RESP_ERR_GROUP_AUTHORIZATION_FAILED';
constants[] = 'RD_KAFKA_RESP_ERR_GROUP_COORDINATOR_NOT_AVAILABLE';
constants[] = 'RD_KAFKA_RESP_ERR_GROUP_LOAD_IN_PROGRESS';
constants[] = 'RD_KAFKA_RESP_ERR_ILLEGAL_GENERATION';
constants[] = 'RD_KAFKA_RESP_ERR_INCONSISTENT_GROUP_PROTOCOL';
constants[] = 'RD_KAFKA_RESP_ERR_INVALID_COMMIT_OFFSET_SIZE';
constants[] = 'RD_KAFKA_RESP_ERR_INVALID_GROUP_ID';
constants[] = 'RD_KAFKA_RESP_ERR_INVALID_MSG';
constants[] = 'RD_KAFKA_RESP_ERR_INVALID_MSG_SIZE';
constants[] = 'RD_KAFKA_RESP_ERR_INVALID_REQUIRED_ACKS';
constants[] = 'RD_KAFKA_RESP_ERR_INVALID_SESSION_TIMEOUT';
constants[] = 'RD_KAFKA_RESP_ERR_LEADER_NOT_AVAILABLE';
constants[] = 'RD_KAFKA_RESP_ERR_MSG_SIZE_TOO_LARGE';
constants[] = 'RD_KAFKA_RESP_ERR_NETWORK_EXCEPTION';
constants[] = 'RD_KAFKA_RESP_ERR_NOT_COORDINATOR_FOR_GROUP';
constants[] = 'RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS';
constants[] = 'RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND';
constants[] = 'RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION';
constants[] = 'RD_KAFKA_RESP_ERR_OFFSET_METADATA_TOO_LARGE';
constants[] = 'RD_KAFKA_RESP_ERR_OFFSET_OUT_OF_RANGE';
constants[] = 'RD_KAFKA_RESP_ERR_REBALANCE_IN_PROGRESS';
constants[] = 'RD_KAFKA_RESP_ERR_RECORD_LIST_TOO_LARGE';
constants[] = 'RD_KAFKA_RESP_ERR_REPLICA_NOT_AVAILABLE';
constants[] = 'RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT';
constants[] = 'RD_KAFKA_RESP_ERR_STALE_CTRL_EPOCH';
constants[] = 'RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED';
constants[] = 'RD_KAFKA_RESP_ERR_TOPIC_EXCEPTION';
constants[] = 'RD_KAFKA_RESP_ERR_UNKNOWN';
constants[] = 'RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID';
constants[] = 'RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART';
constants[] = 'RD_KAFKA_VERSION';

classes[] = 'RdKafka\KafkaConsumer';
classes[] = 'RdKafka\KafkaConsumerTopic';
classes[] = 'RdKafka';
classes[] = 'RdKafka\Consumer';
classes[] = 'RdKafka\Producer';
classes[] = 'RdKafka\Topic';
classes[] = 'RdKafka\ConsumerTopic';
classes[] = 'RdKafka\ProducerTopic';
classes[] = 'RdKafka\Queue';
classes[] = 'RdKafka\Message';
classes[] = 'RdKafka\Conf';
classes[] = 'RdKafka\TopicConf';
classes[] = 'RdKafka\Exception';
classes[] = 'RdKafka\TopicPartition';
classes[] = 'RdKafka\Metadata';
classes[] = 'RdKafka\Metadata\Collection';

interfaces[] = 

traits[] = 

namespaces[] = RdKafka

directives[] = 

{}functions[] = 

constants[] = 

classes[] = hrtime\unit
classes[] = hrtime\stopwatch
classes[] = hrtime\performancecounter

interfaces[] = 

traits[] = 

namespaces[] = hrtime

directives[] = 

;power of 2
code[9223372036854775807] = "2 ^ 63 - 1";
code[9007199254740992] = "2 ^ 53";
code[9007199254740991] = "2 ^ 53 - 1";
code[4294967295] = "2 ^ 32 - 1";
code[4294967296] = "2 ^ 32";
code[2147483647] = "2 ^ 31 - 1";
code[2147483648] = "2 ^ 31";
code[2147483649] = "2 ^ 31 + 1";
code[1073741824] = "2 ^ 30";
code[1073741823] = "2 ^ 30 - 1";
code[16777216] = "2 ^ 24";
code[16777215] = "2 ^ 24 - 1";
code[1048576] = "2 ^ 20";
code[1048576] = "2 ^ 20";
code[131072] = "2 ^ 17";
code[65536] = "2 ^ 16";
code[65535] = "2 ^ 16 - 1";
code[4096] = "2 ^ 12";
code[1024] = "2 ^ 10";
code[512] = "2 ^ 9";
code[256] = "2 ^ 8";
code[128] = "2 ^ 7";

;time and duration
code[365] = "1 year in days (rounded)";
code[31557600] = "1 year in seconds (365.2500 days)";
code[2592000] = "1 month in seconds (30 days)";
code[2629800] = "1 month in seconds (30.4375 days)";
code[2592000] = "30 days in seconds";
code[31536000] = "1 year in seconds";
code[604800] = "seconds in a week";
code[172800] = "2 days in seconds";
code[86400] = "1 day in seconds";
code[14400] = "4 hours in seconds";
code[10800] = "3 hours in seconds";
code[7200] = "2 hours in seconds";
code[3600] = "1 hour in seconds";
code[60] = "seconds in a minut, minuts in an hour";
code[24] = "hours in a day";

// Years
code[2038] = 'Year 2038';
code[2018] = 'Year 2018';
code[2017] = 'Year 2017';
code[2016] = 'Year 2016';
code[2015] = 'Year 2015';
code[2014] = 'Year 2014';
code[2013] = 'Year 2013';
code[2012] = 'Year 2012';
code[1970] = 'Year 1970';

;dates
code[2116333333] = "23/1/2037";

; various
;code[86400] = "9223372036854775806";
code[0x6162797A] = 'The string "abyz". Used to check if the system is little or big endian'
code[1337] = 'leet, for elite speak';
code[1234567890] = 'All digits in one number';
code[666] = 'Number of the beast';

;factorial
code[6] = '3!'
code[24] = '4!'
code[120] = '5!'
code[720] = '6!'
code[5040] = '7!'
code[40320] = '8!'
code[362880] = '9!'
code[3628800] = '10!'

// Ascii  codes
code[97] = 'code ASCII for a'
code[123] = 'code ASCII for z'
code[65] = 'code ASCII for A'
code[90] = 'code ASCII for Z'

// PHP versions
code[50301] = 'PHP version 5.3.1';
code[50306] = 'PHP version 5.3.6';
code[50307] = 'PHP version 5.3.7';
code[50316] = 'PHP version 5.3.16';
code[50400] = 'PHP version 5.4.0';
code[50407] = 'PHP version 5.4.7';
constants[] = 

functions[] = wddx_serialize_value
functions[] = wddx_serialize_vars
functions[] = wddx_packet_start
functions[] = wddx_packet_end
functions[] = wddx_add_vars
functions[] = wddx_deserialize

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = 

constants[] = 

classes[] = ffi
classes[] = ffi\cdata
classes[] = ffi\ctype
classes[] = ffi\exception
classes[] = ffi\parserexception

interfaces[] = 

traits[] = 

namespaces[] = '\ffi';

directives[] = 

constants[] = 'PSPELL_FAST';
constants[] = 'PSPELL_NORMAL';
constants[] = 'PSPELL_BAD_SPELLERS';
constants[] = 'PSPELL_PSPELL_RUN_TOGETHERFAST';

functions[] = 'pspell_add_to_personal';
functions[] = 'pspell_add_to_session';
functions[] = 'pspell_check';
functions[] = 'pspell_clear_session';
functions[] = 'pspell_config_create';
functions[] = 'pspell_config_data_dir';
functions[] = 'pspell_config_dict_dir';
functions[] = 'pspell_config_ignore';
functions[] = 'pspell_config_mode';
functions[] = 'pspell_config_personal';
functions[] = 'pspell_config_repl';
functions[] = 'pspell_config_runtogether';
functions[] = 'pspell_config_save_repl';
functions[] = 'pspell_new_config';
functions[] = 'pspell_new_personal';
functions[] = 'pspell_new';
functions[] = 'pspell_save_wordlist';
functions[] = 'pspell_store_replacement';
functions[] = 'pspell_suggest';

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] =   asyncsleep
functions[] =   asyncgethostbyname
functions[] =   asyncgethostbynamel

constants[] = 

classes[] = "Concurrent\\Network\\TlsClientEncryption";
classes[] = "Concurrent\\Network\\TlsServerEncryption";
classes[] = "Concurrent\\Timer";
classes[] = "Concurrent\\Process\\ProcessBuilder";
classes[] = "Concurrent\\Process\\Process";
classes[] = "Concurrent\\Process\\ReadablePipe";
classes[] = "Concurrent\\Process\\WritablePipe";
classes[] = "Concurrent\\Network\\UdpSocket";
classes[] = "Concurrent\\Network\\UdpDatagram";
classes[] = "Concurrent\\Fiber";
classes[] = "Concurrent\\Network\\Socket";
classes[] = "Concurrent\\Network\\SocketStream";
classes[] = "Concurrent\\Network\\Server";
classes[] = "Concurrent\\Network\\SocketException";
classes[] = "Concurrent\\Task";
classes[] = "Concurrent\\Awaitable";
classes[] = "Concurrent\\Network\\TcpSocket";
classes[] = "Concurrent\\Network\\TcpSocketReader";
classes[] = "Concurrent\\Network\\TcpSocketWriter";
classes[] = "Concurrent\\Network\\TcpServer";
classes[] = "Concurrent\\Deferred";
classes[] = "Concurrent\\DeferredAwaitable";
classes[] = "Concurrent\\TaskScheduler";
classes[] = "Concurrent\\StreamWatcher";
classes[] = "Concurrent\\Context";
classes[] = "Concurrent\\ContextVar";
classes[] = "Concurrent\\CancellationHandler";
classes[] = "Concurrent\\CancellationToken";
classes[] = "Concurrent\\SignalWatcher";
classes[] = "Concurrent\\Stream\\ReadableStream";
classes[] = "Concurrent\\Stream\\WritableStream";
classes[] = "Concurrent\\Stream\\DuplexStream";
classes[] = "Concurrent\\Stream\\StreamException";
classes[] = "Concurrent\\Stream\\StreamClosedException";
classes[] = "Concurrent\\Stream\\PendingReadException";

interfaces[] = 

traits[] = 

namespaces[] = "Concurrent";

directives[] = 

constants[] = 'MB_OVERLOAD_MAIL';
constants[] = 'MB_OVERLOAD_STRING';
constants[] = 'MB_OVERLOAD_REGEX';
constants[] = 'MB_CASE_UPPER';
constants[] = 'MB_CASE_LOWER';
constants[] = 'MB_CASE_TITLE';
constants[] = 'MB_CASE_FOLD';
constants[] = 'MB_CASE_LOWER_SIMPLE';
constants[] = 'MB_CASE_UPPER_SIMPLE';
constants[] = 'MB_CASE_TITLE_SIMPLE';
constants[] = 'MB_CASE_FOLD_SIMPLE';


functions[] = mb_convert_case
functions[] = mb_strtoupper
functions[] = mb_strtolower
functions[] = mb_language
functions[] = mb_internal_encoding
functions[] = mb_http_input
functions[] = mb_http_output
functions[] = mb_detect_order
functions[] = mb_substitute_character
functions[] = mb_parse_str
functions[] = mb_output_handler
functions[] = mb_preferred_mime_name
functions[] = mb_strlen
functions[] = mb_strpos
functions[] = mb_strrpos
functions[] = mb_stripos
functions[] = mb_strripos
functions[] = mb_strstr
functions[] = mb_strrchr
functions[] = mb_stristr
functions[] = mb_strrichr
functions[] = mb_substr_count
functions[] = mb_substr
functions[] = mb_strcut
functions[] = mb_strwidth
functions[] = mb_strimwidth
functions[] = mb_convert_encoding
functions[] = mb_detect_encoding
functions[] = mb_list_encodings
functions[] = mb_encoding_aliases
functions[] = mb_convert_kana
functions[] = mb_encode_mimeheader
functions[] = mb_decode_mimeheader
functions[] = mb_convert_variables
functions[] = mb_encode_numericentity
functions[] = mb_decode_numericentity
functions[] = mb_send_mail
functions[] = mb_get_info
functions[] = mb_check_encoding
functions[] = mb_regex_encoding
functions[] = mb_regex_set_options
functions[] = mb_ereg
functions[] = mb_eregi
functions[] = mb_ereg_replace
functions[] = mb_eregi_replace
functions[] = mb_split
functions[] = mb_ereg_match
functions[] = mb_ereg_search
functions[] = mb_ereg_search_pos
functions[] = mb_ereg_search_regs
functions[] = mb_ereg_search_init
functions[] = mb_ereg_search_getregs
functions[] = mb_ereg_search_getpos
functions[] = mb_ereg_search_setpos
functions[] = mbregex_encoding
functions[] = mbereg
functions[] = mberegi
functions[] = mbereg_replace
functions[] = mberegi_replace
functions[] = mbsplit
functions[] = mbereg_match
functions[] = mbereg_search
functions[] = mbereg_search_pos
functions[] = mbereg_search_regs
functions[] = mbereg_search_init
functions[] = mbereg_search_getregs
functions[] = mbereg_search_getpos
functions[] = mbereg_search_setpos

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = "mbstring.detect_order";
directives[] = "mbstring.encoding_translation";
directives[] = "mbstring.func_overload";
directives[] = "mbstring.http_input";
directives[] = "mbstring.http_output";
directives[] = "mbstring.internal_encoding";
directives[] = "mbstring.language";
directives[] = "mbstring.script_encoding";
directives[] = "mbstring.http_output_conv_mimetypes";
directives[] = "mbstring.strict_detection";
directives[] = "mbstring.substitute_character";
functions[] = 'SDL_ShowMessageBox';
functions[] = 'SDL_ShowSimpleMessageBox';
functions[] = 'SDL_GetPrefPath';
functions[] = 'SDL_GetBasePath';
functions[] = 'SDL_SetError';
functions[] = 'SDL_GetError';
functions[] = 'SDL_ClearError';
functions[] = 'SDL_RectEmpty';
functions[] = 'SDL_RectEquals';
functions[] = 'SDL_HasIntersection';
functions[] = 'SDL_IntersectRect';
functions[] = 'SDL_UnionRect';
functions[] = 'SDL_EnclosePoints';
functions[] = 'SDL_IntersectRectAndLine';
functions[] = 'SDL_GetPowerInfo';
functions[] = 'SDL_CreateCursor';
functions[] = 'SDL_CreateSystemCursor';
functions[] = 'SDL_CreateColorCursor';
functions[] = 'SDL_FreeCursor';
functions[] = 'SDL_SetCursor';
functions[] = 'SDL_GetCursor';
functions[] = 'SDL_GetDefaultCursor';
functions[] = 'SDL_ShowCursor';
functions[] = 'SDL_GetMouseFocus';
functions[] = 'SDL_GetMouseState';
functions[] = 'SDL_GetRelativeMouseState';
functions[] = 'SDL_WarpMouseInWindow';
functions[] = 'SDL_SetRelativeMouseMode';
functions[] = 'SDL_GetRelativeMouseMode';
functions[] = 'SDL_Delay';
functions[] = 'SDL_GetRevision';
functions[] = 'SDL_GetRevisionNumber';
functions[] = 'SDL_GetVersion';
functions[] = 'SDL_VERSION';
functions[] = 'SDL_VERSIONNUM';
functions[] = 'SDL_VERSION_ATLEAST';
functions[] = 'SDL_AllocRW';
functions[] = 'SDL_RWFromFile';
functions[] = 'SDL_RWFromConstMem';
functions[] = 'SDL_RWFromMem';
functions[] = 'SDL_RWFromFP';
functions[] = 'SDL_FreeRW';
functions[] = 'SDL_RWsize';
functions[] = 'SDL_RWseek';
functions[] = 'SDL_RWtell';
functions[] = 'SDL_RWclose';
functions[] = 'SDL_RWread';
functions[] = 'SDL_RWwrite';
functions[] = 'SDL_ReadU8';
functions[] = 'SDL_ReadLE16';
functions[] = 'SDL_ReadBE16';
functions[] = 'SDL_ReadLE32';
functions[] = 'SDL_ReadBE32';
functions[] = 'SDL_ReadLE64';
functions[] = 'SDL_ReadBE64';
functions[] = 'SDL_WriteU8';
functions[] = 'SDL_WriteLE16';
functions[] = 'SDL_WriteBE16';
functions[] = 'SDL_WriteLE32';
functions[] = 'SDL_WriteBE32';
functions[] = 'SDL_WriteLE64';
functions[] = 'SDL_WriteBE64';
functions[] = 'SDL_GetPixelFormatName';
functions[] = 'SDL_PixelFormatEnumToMasks';
functions[] = 'SDL_MasksToPixelFormatEnum';
functions[] = 'SDL_AllocFormat';
functions[] = 'SDL_FreeFormat';
functions[] = 'SDL_AllocPalette';
functions[] = 'SDL_SetPixelFormatPalette';
functions[] = 'SDL_SetPaletteColors';
functions[] = 'SDL_FreePalette';
functions[] = 'SDL_MapRGB';
functions[] = 'SDL_MapRGBA';
functions[] = 'SDL_GetRGB';
functions[] = 'SDL_GetRGBA';
functions[] = 'SDL_CalculateGammaRamp';
functions[] = 'SDL_GetNumVideoDrivers';
functions[] = 'SDL_GetVideoDriver';
functions[] = 'SDL_VideoInit';
functions[] = 'SDL_VideoQuit';
functions[] = 'SDL_GetCurrentVideoDriver';
functions[] = 'SDL_GetNumVideoDisplays';
functions[] = 'SDL_GetDisplayName';
functions[] = 'SDL_GetDisplayBounds';
functions[] = 'SDL_GetNumDisplayModes';
functions[] = 'SDL_GetDisplayMode';
functions[] = 'SDL_GetDesktopDisplayMode';
functions[] = 'SDL_GetCurrentDisplayMode';
functions[] = 'SDL_GetClosestDisplayMode';
functions[] = 'SDL_IsScreenSaverEnabled';
functions[] = 'SDL_EnableScreenSaver';
functions[] = 'SDL_DisableScreenSaver';
functions[] = 'SDL_CreateRGBSurface';
functions[] = 'SDL_LoadBMP_RW';
functions[] = 'SDL_LoadBMP';
functions[] = 'SDL_SaveBMP_RW';
functions[] = 'SDL_SaveBMP';
functions[] = 'SDL_FreeSurface';
functions[] = 'SDL_FillRect';
functions[] = 'SDL_FillRects';
functions[] = 'SDL_MUSTLOCK';
functions[] = 'SDL_LockSurface';
functions[] = 'SDL_UnlockSurface';
functions[] = 'SDL_UpperBlit';
functions[] = 'SDL_LowerBlit';
functions[] = 'SDL_UpperBlitScaled';
functions[] = 'SDL_LowerBlitScaled';
functions[] = 'SDL_SoftStretch';
functions[] = 'SDL_SetSurfaceRLE';
functions[] = 'SDL_SetColorKey';
functions[] = 'SDL_GetColorKey';
functions[] = 'SDL_SetSurfaceColorMod';
functions[] = 'SDL_GetSurfaceColorMod';
functions[] = 'SDL_SetSurfaceAlphaMod';
functions[] = 'SDL_GetSurfaceAlphaMod';
functions[] = 'SDL_SetSurfaceBlendMode';
functions[] = 'SDL_GetSurfaceBlendMode';
functions[] = 'SDL_SetClipRect';
functions[] = 'SDL_GetClipRect';
functions[] = 'SDL_ConvertSurface';
functions[] = 'SDL_ConvertSurfaceFormat';
functions[] = 'SDL_ConvertPixels';
functions[] = 'SDL_GetKeyboardFocus';
functions[] = 'SDL_GetKeyboardState';
functions[] = 'SDL_GetModState';
functions[] = 'SDL_SetModState';
functions[] = 'SDL_GetKeyFromScancode';
functions[] = 'SDL_GetScancodeFromKey';
functions[] = 'SDL_GetScancodeName';
functions[] = 'SDL_GetScancodeFromName';
functions[] = 'SDL_GetKeyName';
functions[] = 'SDL_GetKeyFromName';
functions[] = 'SDL_StartTextInput';
functions[] = 'SDL_IsTextInputActive';
functions[] = 'SDL_StopTextInput';
functions[] = 'SDL_SetTextInputRect';
functions[] = 'SDL_HasScreenKeyboardSupport';
functions[] = 'SDL_IsScreenKeyboardShown';
functions[] = 'SDL_PollEvent';
functions[] = 'SDL_WaitEvent';
functions[] = 'SDL_CreateMutex';
functions[] = 'SDL_LockMutex';
functions[] = 'SDL_TryLockMutex';
functions[] = 'SDL_UnlockMutex';
functions[] = 'SDL_DestroyMutex';
functions[] = 'SDL_CreateSemaphore';
functions[] = 'SDL_SemWait';
functions[] = 'SDL_SemTryWait';
functions[] = 'SDL_SemPost';
functions[] = 'SDL_SemValue';
functions[] = 'SDL_SemWaitTimeout';
functions[] = 'SDL_DestroySemaphore';
functions[] = 'SDL_CreateCond';
functions[] = 'SDL_CondWait';
functions[] = 'SDL_CondSignal';
functions[] = 'SDL_CondBroadcast';
functions[] = 'SDL_CondWaitTimeout';
functions[] = 'SDL_DestroyCond';
functions[] = 'SDL_GetWindowDisplayIndex';
functions[] = 'SDL_SetWindowDisplayMode';
functions[] = 'SDL_GetWindowDisplayMode';
functions[] = 'SDL_GetWindowPixelFormat';
functions[] = 'SDL_GetWindowID';
functions[] = 'SDL_GetWindowFromID';
functions[] = 'SDL_GetWindowFlags';
functions[] = 'SDL_SetWindowIcon';
functions[] = 'SDL_SetWindowPosition';
functions[] = 'SDL_WINDOWPOS_CENTERED_DISPLAY';
functions[] = 'SDL_WINDOWPOS_UNDEFINED_DISPLAY';
functions[] = 'SDL_GetWindowPosition';
functions[] = 'SDL_SetWindowSize';
functions[] = 'SDL_GetWindowSize';
functions[] = 'SDL_SetWindowMinimumSize';
functions[] = 'SDL_GetWindowMinimumSize';
functions[] = 'SDL_SetWindowMaximumSize';
functions[] = 'SDL_GetWindowMaximumSize';
functions[] = 'SDL_SetWindowBordered';
functions[] = 'SDL_ShowWindow';
functions[] = 'SDL_HideWindow';
functions[] = 'SDL_RaiseWindow';
functions[] = 'SDL_MaximizeWindow';
functions[] = 'SDL_MinimizeWindow';
functions[] = 'SDL_RestoreWindow';
functions[] = 'SDL_SetWindowFullscreen';
functions[] = 'SDL_GetWindowSurface';
functions[] = 'SDL_UpdateWindowSurfaceRects';
functions[] = 'SDL_SetWindowGrab';
functions[] = 'SDL_GetWindowGrab';
functions[] = 'SDL_SetWindowBrightness';
functions[] = 'SDL_GetWindowBrightness';
functions[] = 'SDL_SetWindowGammaRamp';
functions[] = 'SDL_GetWindowGammaRamp';
functions[] = 'SDL_CreateShapedWindow';
functions[] = 'SDL_CreateWindow';
functions[] = 'SDL_UpdateWindowSurface';
functions[] = 'SDL_DestroyWindow';
functions[] = 'SDL_GetWindowTitle';
functions[] = 'SDL_SetWindowTitle';
functions[] = 'SDL_IsShapedWindow';
functions[] = 'SDL_SetWindowShape';
functions[] = 'SDL_GetShapedWindowMode';
functions[] = 'SDL_GetCPUCount';
functions[] = 'SDL_GetCPUCacheLineSize';
functions[] = 'SDL_HasRDTSC';
functions[] = 'SDL_HasAltiVec';
functions[] = 'SDL_HasMMX';
functions[] = 'SDL_Has3DNow';
functions[] = 'SDL_HasSSE';
functions[] = 'SDL_HasSSE2';
functions[] = 'SDL_HasSSE3';
functions[] = 'SDL_HasSSE41';
functions[] = 'SDL_HasSSE42';
functions[] = 'SDL_GetSystemRAM';
functions[] = 'SDL_SetRenderDrawColor';
functions[] = 'SDL_RenderClear';
functions[] = 'SDL_DestroyRenderer';
functions[] = 'SDL_DestroyTexture';
functions[] = 'SDL_RenderFillRect';
functions[] = 'SDL_RenderPresent';
functions[] = 'SDL_RenderDrawPoint';
functions[] = 'SDL_CreateTextureFromSurface';
functions[] = 'SDL_CreateRenderer';
functions[] = 'SDL_RenderCopy';
functions[] = 'SDL_GetPlatform';
functions[] = 'SDL_GL_CreateContext';
functions[] = 'SDL_GL_MakeCurrent';
functions[] = 'SDL_GL_GetCurrentWindow';
functions[] = 'SDL_GL_GetDrawableSize';
functions[] = 'SDL_GL_SwapWindow';
functions[] = 'SDL_GL_ExtensionSupported';
functions[] = 'SDL_GL_SetAttribute';
functions[] = 'SDL_GL_GetAttribute';
functions[] = 'SDL_GL_DeleteContext';
functions[] = 'SDL_GL_GetCurrentContext';
functions[] = 'SDL_GL_SetSwapInterval';
functions[] = 'SDL_GL_GetSwapInterval';
functions[] = 'SDL_Init';
functions[] = 'SDL_InitSubSystem';
functions[] = 'SDL_Quit';
functions[] = 'SDL_QuitSubSystem';
functions[] = 'SDL_WasInit';
functions[] = 'SDL_CreateCursor';
functions[] = 'SDL_CreateSystemCursor';
functions[] = 'SDL_CreateColorCursor';
functions[] = 'SDL_FreeCursor';
functions[] = 'SDL_SetCursor';
functions[] = 'SDL_GetCursor';
functions[] = 'SDL_GetDefaultCursor';
functions[] = 'SDL_ShowCursor';
functions[] = 'SDL_GetMouseFocus';
functions[] = 'SDL_GetMouseState';
functions[] = 'SDL_GetRelativeMouseState';
functions[] = 'SDL_WarpMouseInWindow';
functions[] = 'SDL_SetRelativeMouseMode';
functions[] = 'SDL_GetRelativeMouseMode';
functions[] = 'SDL_Delay';
functions[] = 'SDL_GetPowerInfo';
functions[] = 'SDL_RectEmpty';
functions[] = 'SDL_RectEquals';
functions[] = 'SDL_HasIntersection';
functions[] = 'SDL_IntersectRect';
functions[] = 'SDL_UnionRect';
functions[] = 'SDL_EnclosePoints';
functions[] = 'SDL_IntersectRectAndLine';
functions[] = 'SDL_ShowMessageBox';
functions[] = 'SDL_ShowSimpleMessageBox';
functions[] = 'SDL_SetError';
functions[] = 'SDL_GetError';
functions[] = 'SDL_ClearError';
functions[] = 'SDL_GetPrefPath';
functions[] = 'SDL_GetBasePath';
functions[] = 'SDL_PollEvent';
functions[] = 'SDL_WaitEvent';
functions[] = 'SDL_GetKeyboardFocus';
functions[] = 'SDL_GetKeyboardState';
functions[] = 'SDL_GetModState';
functions[] = 'SDL_SetModState';
functions[] = 'SDL_GetKeyFromScancode';
functions[] = 'SDL_GetScancodeFromKey';
functions[] = 'SDL_GetScancodeName';
functions[] = 'SDL_GetScancodeFromName';
functions[] = 'SDL_GetKeyName';
functions[] = 'SDL_GetKeyFromName';
functions[] = 'SDL_StartTextInput';
functions[] = 'SDL_IsTextInputActive';
functions[] = 'SDL_StopTextInput';
functions[] = 'SDL_SetTextInputRect';
functions[] = 'SDL_HasScreenKeyboardSupport';
functions[] = 'SDL_IsScreenKeyboardShown';
functions[] = 'SDL_CreateRGBSurface';
functions[] = 'SDL_LoadBMP_RW';
functions[] = 'SDL_LoadBMP';
functions[] = 'SDL_SaveBMP_RW';
functions[] = 'SDL_SaveBMP';
functions[] = 'SDL_FreeSurface';
functions[] = 'SDL_FillRect';
functions[] = 'SDL_FillRects';
functions[] = 'SDL_MUSTLOCK';
functions[] = 'SDL_LockSurface';
functions[] = 'SDL_UnlockSurface';
functions[] = 'SDL_UpperBlit';
functions[] = 'SDL_LowerBlit';
functions[] = 'SDL_UpperBlitScaled';
functions[] = 'SDL_LowerBlitScaled';
functions[] = 'SDL_SoftStretch';
functions[] = 'SDL_SetSurfaceRLE';
functions[] = 'SDL_SetColorKey';
functions[] = 'SDL_GetColorKey';
functions[] = 'SDL_SetSurfaceColorMod';
functions[] = 'SDL_GetSurfaceColorMod';
functions[] = 'SDL_SetSurfaceAlphaMod';
functions[] = 'SDL_GetSurfaceAlphaMod';
functions[] = 'SDL_SetSurfaceBlendMode';
functions[] = 'SDL_GetSurfaceBlendMode';
functions[] = 'SDL_SetClipRect';
functions[] = 'SDL_GetClipRect';
functions[] = 'SDL_ConvertSurface';
functions[] = 'SDL_ConvertSurfaceFormat';
functions[] = 'SDL_ConvertPixels';
functions[] = 'SDL_GetNumVideoDrivers';
functions[] = 'SDL_GetVideoDriver';
functions[] = 'SDL_VideoInit';
functions[] = 'SDL_VideoQuit';
functions[] = 'SDL_GetCurrentVideoDriver';
functions[] = 'SDL_GetNumVideoDisplays';
functions[] = 'SDL_GetDisplayName';
functions[] = 'SDL_GetDisplayBounds';
functions[] = 'SDL_GetNumDisplayModes';
functions[] = 'SDL_GetDisplayMode';
functions[] = 'SDL_GetDesktopDisplayMode';
functions[] = 'SDL_GetCurrentDisplayMode';
functions[] = 'SDL_GetClosestDisplayMode';
functions[] = 'SDL_IsScreenSaverEnabled';
functions[] = 'SDL_EnableScreenSaver';
functions[] = 'SDL_DisableScreenSaver';
functions[] = 'SDL_GetPixelFormatName';
functions[] = 'SDL_PixelFormatEnumToMasks';
functions[] = 'SDL_MasksToPixelFormatEnum';
functions[] = 'SDL_AllocFormat';
functions[] = 'SDL_FreeFormat';
functions[] = 'SDL_AllocPalette';
functions[] = 'SDL_SetPixelFormatPalette';
functions[] = 'SDL_SetPaletteColors';
functions[] = 'SDL_FreePalette';
functions[] = 'SDL_MapRGB';
functions[] = 'SDL_MapRGBA';
functions[] = 'SDL_GetRGB';
functions[] = 'SDL_GetRGBA';
functions[] = 'SDL_CalculateGammaRamp';
functions[] = 'SDL_AllocRW';
functions[] = 'SDL_RWFromFile';
functions[] = 'SDL_RWFromConstMem';
functions[] = 'SDL_RWFromMem';
functions[] = 'SDL_RWFromFP';
functions[] = 'SDL_FreeRW';
functions[] = 'SDL_RWsize';
functions[] = 'SDL_RWseek';
functions[] = 'SDL_RWtell';
functions[] = 'SDL_RWclose';
functions[] = 'SDL_RWread';
functions[] = 'SDL_RWwrite';
functions[] = 'SDL_ReadU8';
functions[] = 'SDL_ReadLE16';
functions[] = 'SDL_ReadBE16';
functions[] = 'SDL_ReadLE32';
functions[] = 'SDL_ReadBE32';
functions[] = 'SDL_ReadLE64';
functions[] = 'SDL_ReadBE64';
functions[] = 'SDL_WriteU8';
functions[] = 'SDL_WriteLE16';
functions[] = 'SDL_WriteBE16';
functions[] = 'SDL_WriteLE32';
functions[] = 'SDL_WriteBE32';
functions[] = 'SDL_WriteLE64';
functions[] = 'SDL_WriteBE64';
functions[] = 'SDL_GetRevision';
functions[] = 'SDL_GetRevisionNumber';
functions[] = 'SDL_GetVersion';
functions[] = 'SDL_VERSION';
functions[] = 'SDL_VERSIONNUM';
functions[] = 'SDL_VERSION_ATLEAST';
functions[] = 'SDL_CreateMutex';
functions[] = 'SDL_LockMutex';
functions[] = 'SDL_TryLockMutex';
functions[] = 'SDL_UnlockMutex';
functions[] = 'SDL_DestroyMutex';
functions[] = 'SDL_CreateSemaphore';
functions[] = 'SDL_SemWait';
functions[] = 'SDL_SemTryWait';
functions[] = 'SDL_SemPost';
functions[] = 'SDL_SemValue';
functions[] = 'SDL_SemWaitTimeout';
functions[] = 'SDL_DestroySemaphore';
functions[] = 'SDL_CreateCond';
functions[] = 'SDL_CondWait';
functions[] = 'SDL_CondSignal';
functions[] = 'SDL_CondBroadcast';
functions[] = 'SDL_CondWaitTimeout';
functions[] = 'SDL_DestroyCond';
functions[] = 'SDL_Init';
functions[] = 'SDL_InitSubSystem';
functions[] = 'SDL_QuitSubSystem';
functions[] = 'SDL_WasInit';
functions[] = 'SDL_Quit';
functions[] = 'SDL_GL_ExtensionSupported';
functions[] = 'SDL_GL_SetAttribute';
functions[] = 'SDL_GL_GetAttribute';
functions[] = 'SDL_GL_CreateContext';
functions[] = 'SDL_GL_DeleteContext';
functions[] = 'SDL_GL_MakeCurrent';
functions[] = 'SDL_GL_GetCurrentWindow';
functions[] = 'SDL_GL_GetCurrentContext';
functions[] = 'SDL_GL_GetDrawableSize';
functions[] = 'SDL_GL_SwapWindow';
functions[] = 'SDL_GL_SetSwapInterval';
functions[] = 'SDL_GL_GetSwapInterval';
functions[] = 'SDL_GetPlatform';
functions[] = 'SDL_SetRenderDrawColor';
functions[] = 'SDL_RenderClear';
functions[] = 'SDL_DestroyRenderer';
functions[] = 'SDL_DestroyTexture';
functions[] = 'SDL_RenderFillRect';
functions[] = 'SDL_RenderPresent';
functions[] = 'SDL_RenderDrawPoint';
functions[] = 'SDL_CreateTextureFromSurface';
functions[] = 'SDL_CreateRenderer';
functions[] = 'SDL_RenderCopy';
functions[] = 'SDL_GetWindowDisplayIndex';
functions[] = 'SDL_SetWindowDisplayMode';
functions[] = 'SDL_GetWindowDisplayMode';
functions[] = 'SDL_GetWindowPixelFormat';
functions[] = 'SDL_GetWindowID';
functions[] = 'SDL_GetWindowFromID';
functions[] = 'SDL_GetWindowFlags';
functions[] = 'SDL_SetWindowIcon';
functions[] = 'SDL_SetWindowPosition';
functions[] = 'SDL_WINDOWPOS_CENTERED_DISPLAY';
functions[] = 'SDL_WINDOWPOS_UNDEFINED_DISPLAY';
functions[] = 'SDL_GetWindowPosition';
functions[] = 'SDL_SetWindowSize';
functions[] = 'SDL_GetWindowSize';
functions[] = 'SDL_SetWindowMinimumSize';
functions[] = 'SDL_GetWindowMinimumSize';
functions[] = 'SDL_SetWindowMaximumSize';
functions[] = 'SDL_GetWindowMaximumSize';
functions[] = 'SDL_SetWindowBordered';
functions[] = 'SDL_ShowWindow';
functions[] = 'SDL_HideWindow';
functions[] = 'SDL_RaiseWindow';
functions[] = 'SDL_MaximizeWindow';
functions[] = 'SDL_MinimizeWindow';
functions[] = 'SDL_RestoreWindow';
functions[] = 'SDL_SetWindowFullscreen';
functions[] = 'SDL_GetWindowSurface';
functions[] = 'SDL_UpdateWindowSurfaceRects';
functions[] = 'SDL_SetWindowGrab';
functions[] = 'SDL_GetWindowGrab';
functions[] = 'SDL_SetWindowBrightness';
functions[] = 'SDL_GetWindowBrightness';
functions[] = 'SDL_SetWindowGammaRamp';
functions[] = 'SDL_GetWindowGammaRamp';
functions[] = 'SDL_CreateShapedWindow';
functions[] = 'SDL_CreateWindow';
functions[] = 'SDL_UpdateWindowSurface';
functions[] = 'SDL_DestroyWindow';
functions[] = 'SDL_GetWindowTitle';
functions[] = 'SDL_SetWindowTitle';
functions[] = 'SDL_IsShapedWindow';
functions[] = 'SDL_SetWindowShape';
functions[] = 'SDL_GetShapedWindowMode';
functions[] = 'SDL_GetCPUCount';
functions[] = 'SDL_GetCPUCacheLineSize';
functions[] = 'SDL_HasRDTSC';
functions[] = 'SDL_HasAltiVec';
functions[] = 'SDL_HasMMX';
functions[] = 'SDL_Has3DNow';
functions[] = 'SDL_HasSSE';
functions[] = 'SDL_HasSSE2';
functions[] = 'SDL_HasSSE3';
functions[] = 'SDL_HasSSE41';
functions[] = 'SDL_HasSSE42';
functions[] = 'SDL_GetSystemRAM';

constants[] = 'SDL_SYSTEM_CURSOR_'
constants[] = 'SDL_NUM_SYSTEM_CURSORS'
constants[] = 'SDL_BUTTON_LEFT'
constants[] = 'SDL_BUTTON_MIDDLE'
constants[] = 'SDL_BUTTON_RIGHT'
constants[] = 'SDL_BUTTON_X1'
constants[] = 'SDL_BUTTON_X2'
constants[] = 'SDL_BUTTON_LMASK'
constants[] = 'SDL_BUTTON_MMASK'
constants[] = 'SDL_BUTTON_RMASK'
constants[] = 'SDL_BUTTON_X1MASK'
constants[] = 'SDL_BUTTON_X2MASK'
constants[] = 'SDL_'
constants[] = 'RW_SEEK_SET'
constants[] = 'RW_SEEK_CUR'
constants[] = 'RW_SEEK_END'
constants[] = 'SDL_PIXELTYPE_UNKNOWN'
constants[] = 'SDL_PIXELTYPE_INDEX1'
constants[] = 'SDL_PIXELTYPE_INDEX4'
constants[] = 'SDL_PIXELTYPE_INDEX8'
constants[] = 'SDL_PIXELTYPE_PACKED8'
constants[] = 'SDL_PIXELTYPE_PACKED16'
constants[] = 'SDL_PIXELTYPE_PACKED32'
constants[] = 'SDL_PIXELTYPE_ARRAYU8'
constants[] = 'SDL_PIXELTYPE_ARRAYU16'
constants[] = 'SDL_PIXELTYPE_ARRAYU32'
constants[] = 'SDL_PIXELTYPE_ARRAYF16'
constants[] = 'SDL_PIXELTYPE_ARRAYF32'
constants[] = 'SDL_BITMAPORDER_NONE'
constants[] = 'SDL_BITMAPORDER_4321'
constants[] = 'SDL_BITMAPORDER_1234'
constants[] = 'SDL_PACKEDORDER_NONE'
constants[] = 'SDL_PACKEDORDER_XRGB'
constants[] = 'SDL_PACKEDORDER_RGBX'
constants[] = 'SDL_PACKEDORDER_ARGB'
constants[] = 'SDL_PACKEDORDER_RGBA'
constants[] = 'SDL_PACKEDORDER_XBGR'
constants[] = 'SDL_PACKEDORDER_BGRX'
constants[] = 'SDL_PACKEDORDER_ABGR'
constants[] = 'SDL_PACKEDORDER_BGRA'
constants[] = 'SDL_PACKEDLAYOUT_NONE'
constants[] = 'SDL_PACKEDLAYOUT_332'
constants[] = 'SDL_PACKEDLAYOUT_4444'
constants[] = 'SDL_PACKEDLAYOUT_1555'
constants[] = 'SDL_PACKEDLAYOUT_5551'
constants[] = 'SDL_PACKEDLAYOUT_565'
constants[] = 'SDL_PACKEDLAYOUT_8888'
constants[] = 'SDL_PACKEDLAYOUT_2101010'
constants[] = 'SDL_PACKEDLAYOUT_1010102'
constants[] = 'SDL_PIXELFORMAT_UNKNOWN'
constants[] = 'SDL_PIXELFORMAT_INDEX1LSB'
constants[] = 'SDL_PIXELFORMAT_INDEX1MSB'
constants[] = 'SDL_PIXELFORMAT_INDEX4LSB'
constants[] = 'SDL_PIXELFORMAT_INDEX4MSB'
constants[] = 'SDL_PIXELFORMAT_INDEX8'
constants[] = 'SDL_PIXELFORMAT_RGB332'
constants[] = 'SDL_PIXELFORMAT_RGB444'
constants[] = 'SDL_PIXELFORMAT_RGB555'
constants[] = 'SDL_PIXELFORMAT_BGR555'
constants[] = 'SDL_PIXELFORMAT_ARGB4444'
constants[] = 'SDL_PIXELFORMAT_RGBA4444'
constants[] = 'SDL_PIXELFORMAT_ABGR4444'
constants[] = 'SDL_PIXELFORMAT_BGRA4444'
constants[] = 'SDL_PIXELFORMAT_ARGB1555'
constants[] = 'SDL_PIXELFORMAT_RGBA5551'
constants[] = 'SDL_PIXELFORMAT_ABGR1555'
constants[] = 'SDL_PIXELFORMAT_BGRA5551'
constants[] = 'SDL_PIXELFORMAT_RGB565'
constants[] = 'SDL_PIXELFORMAT_BGR565'
constants[] = 'SDL_PIXELFORMAT_RGB24'
constants[] = 'SDL_PIXELFORMAT_BGR24'
constants[] = 'SDL_PIXELFORMAT_RGB888'
constants[] = 'SDL_PIXELFORMAT_RGBX8888'
constants[] = 'SDL_PIXELFORMAT_BGR888'
constants[] = 'SDL_PIXELFORMAT_BGRX8888'
constants[] = 'SDL_PIXELFORMAT_ARGB8888'
constants[] = 'SDL_PIXELFORMAT_RGBA8888'
constants[] = 'SDL_PIXELFORMAT_ABGR8888'
constants[] = 'SDL_PIXELFORMAT_BGRA8888'
constants[] = 'SDL_PIXELFORMAT_ARGB2101010'
constants[] = 'SDL_PIXELFORMAT_YV12'
constants[] = 'SDL_PIXELFORMAT_IYUV'
constants[] = 'SDL_PIXELFORMAT_YUY2'
constants[] = 'SDL_PIXELFORMAT_UYVY'
constants[] = 'SDL_PIXELFORMAT_YVYU'
constants[] = 'SDL_SCANCODE_UNKNOWN'
constants[] = 'SDL_SCANCODE_A'
constants[] = 'SDL_SCANCODE_B'
constants[] = 'SDL_SCANCODE_C'
constants[] = 'SDL_SCANCODE_D'
constants[] = 'SDL_SCANCODE_E'
constants[] = 'SDL_SCANCODE_F'
constants[] = 'SDL_SCANCODE_G'
constants[] = 'SDL_SCANCODE_H'
constants[] = 'SDL_SCANCODE_I'
constants[] = 'SDL_SCANCODE_J'
constants[] = 'SDL_SCANCODE_K'
constants[] = 'SDL_SCANCODE_L'
constants[] = 'SDL_SCANCODE_M'
constants[] = 'SDL_SCANCODE_N'
constants[] = 'SDL_SCANCODE_O'
constants[] = 'SDL_SCANCODE_P'
constants[] = 'SDL_SCANCODE_Q'
constants[] = 'SDL_SCANCODE_R'
constants[] = 'SDL_SCANCODE_S'
constants[] = 'SDL_SCANCODE_T'
constants[] = 'SDL_SCANCODE_U'
constants[] = 'SDL_SCANCODE_V'
constants[] = 'SDL_SCANCODE_W'
constants[] = 'SDL_SCANCODE_X'
constants[] = 'SDL_SCANCODE_Y'
constants[] = 'SDL_SCANCODE_Z'
constants[] = 'SDL_SCANCODE_1'
constants[] = 'SDL_SCANCODE_2'
constants[] = 'SDL_SCANCODE_3'
constants[] = 'SDL_SCANCODE_4'
constants[] = 'SDL_SCANCODE_5'
constants[] = 'SDL_SCANCODE_6'
constants[] = 'SDL_SCANCODE_7'
constants[] = 'SDL_SCANCODE_8'
constants[] = 'SDL_SCANCODE_9'
constants[] = 'SDL_SCANCODE_0'
constants[] = 'SDL_SCANCODE_RETURN'
constants[] = 'SDL_SCANCODE_ESCAPE'
constants[] = 'SDL_SCANCODE_BACKSPACE'
constants[] = 'SDL_SCANCODE_TAB'
constants[] = 'SDL_SCANCODE_SPACE'
constants[] = 'SDL_SCANCODE_MINUS'
constants[] = 'SDL_SCANCODE_EQUALS'
constants[] = 'SDL_SCANCODE_LEFTBRACKET'
constants[] = 'SDL_SCANCODE_RIGHTBRACKET'
constants[] = 'SDL_SCANCODE_BACKSLASH'
constants[] = 'SDL_SCANCODE_NONUSHASH'
constants[] = 'SDL_SCANCODE_SEMICOLON'
constants[] = 'SDL_SCANCODE_APOSTROPHE'
constants[] = 'SDL_SCANCODE_GRAVE'
constants[] = 'SDL_SCANCODE_COMMA'
constants[] = 'SDL_SCANCODE_PERIOD'
constants[] = 'SDL_SCANCODE_SLASH'
constants[] = 'SDL_SCANCODE_CAPSLOCK'
constants[] = 'SDL_SCANCODE_F1'
constants[] = 'SDL_SCANCODE_F2'
constants[] = 'SDL_SCANCODE_F3'
constants[] = 'SDL_SCANCODE_F4'
constants[] = 'SDL_SCANCODE_F5'
constants[] = 'SDL_SCANCODE_F6'
constants[] = 'SDL_SCANCODE_F7'
constants[] = 'SDL_SCANCODE_F8'
constants[] = 'SDL_SCANCODE_F9'
constants[] = 'SDL_SCANCODE_F10'
constants[] = 'SDL_SCANCODE_F11'
constants[] = 'SDL_SCANCODE_F12'
constants[] = 'SDL_SCANCODE_PRINTSCREEN'
constants[] = 'SDL_SCANCODE_SCROLLLOCK'
constants[] = 'SDL_SCANCODE_PAUSE'
constants[] = 'SDL_SCANCODE_INSERT'
constants[] = 'SDL_SCANCODE_HOME'
constants[] = 'SDL_SCANCODE_PAGEUP'
constants[] = 'SDL_SCANCODE_DELETE'
constants[] = 'SDL_SCANCODE_END'
constants[] = 'SDL_SCANCODE_PAGEDOWN'
constants[] = 'SDL_SCANCODE_RIGHT'
constants[] = 'SDL_SCANCODE_LEFT'
constants[] = 'SDL_SCANCODE_DOWN'
constants[] = 'SDL_SCANCODE_UP'
constants[] = 'SDL_SCANCODE_NUMLOCKCLEAR'
constants[] = 'SDL_SCANCODE_KP_DIVIDE'
constants[] = 'SDL_SCANCODE_KP_MULTIPLY'
constants[] = 'SDL_SCANCODE_KP_MINUS'
constants[] = 'SDL_SCANCODE_KP_PLUS'
constants[] = 'SDL_SCANCODE_KP_ENTER'
constants[] = 'SDL_SCANCODE_KP_1'
constants[] = 'SDL_SCANCODE_KP_2'
constants[] = 'SDL_SCANCODE_KP_3'
constants[] = 'SDL_SCANCODE_KP_4'
constants[] = 'SDL_SCANCODE_KP_5'
constants[] = 'SDL_SCANCODE_KP_6'
constants[] = 'SDL_SCANCODE_KP_7'
constants[] = 'SDL_SCANCODE_KP_8'
constants[] = 'SDL_SCANCODE_KP_9'
constants[] = 'SDL_SCANCODE_KP_0'
constants[] = 'SDL_SCANCODE_KP_PERIOD'
constants[] = 'SDL_SCANCODE_NONUSBACKSLASH'
constants[] = 'SDL_SCANCODE_APPLICATION'
constants[] = 'SDL_SCANCODE_POWER'
constants[] = 'SDL_SCANCODE_KP_EQUALS'
constants[] = 'SDL_SCANCODE_F13'
constants[] = 'SDL_SCANCODE_F14'
constants[] = 'SDL_SCANCODE_F15'
constants[] = 'SDL_SCANCODE_F16'
constants[] = 'SDL_SCANCODE_F17'
constants[] = 'SDL_SCANCODE_F18'
constants[] = 'SDL_SCANCODE_F19'
constants[] = 'SDL_SCANCODE_F20'
constants[] = 'SDL_SCANCODE_F21'
constants[] = 'SDL_SCANCODE_F22'
constants[] = 'SDL_SCANCODE_F23'
constants[] = 'SDL_SCANCODE_F24'
constants[] = 'SDL_SCANCODE_EXECUTE'
constants[] = 'SDL_SCANCODE_HELP'
constants[] = 'SDL_SCANCODE_MENU'
constants[] = 'SDL_SCANCODE_SELECT'
constants[] = 'SDL_SCANCODE_STOP'
constants[] = 'SDL_SCANCODE_AGAIN'
constants[] = 'SDL_SCANCODE_UNDO'
constants[] = 'SDL_SCANCODE_CUT'
constants[] = 'SDL_SCANCODE_COPY'
constants[] = 'SDL_SCANCODE_PASTE'
constants[] = 'SDL_SCANCODE_FIND'
constants[] = 'SDL_SCANCODE_MUTE'
constants[] = 'SDL_SCANCODE_VOLUMEUP'
constants[] = 'SDL_SCANCODE_VOLUMEDOWN'
constants[] = 'SDL_SCANCODE_KP_COMMA'
constants[] = 'SDL_SCANCODE_KP_EQUALSAS400'
constants[] = 'SDL_SCANCODE_INTERNATIONAL1'
constants[] = 'SDL_SCANCODE_INTERNATIONAL2'
constants[] = 'SDL_SCANCODE_INTERNATIONAL3'
constants[] = 'SDL_SCANCODE_INTERNATIONAL4'
constants[] = 'SDL_SCANCODE_INTERNATIONAL5'
constants[] = 'SDL_SCANCODE_INTERNATIONAL6'
constants[] = 'SDL_SCANCODE_INTERNATIONAL7'
constants[] = 'SDL_SCANCODE_INTERNATIONAL8'
constants[] = 'SDL_SCANCODE_INTERNATIONAL9'
constants[] = 'SDL_SCANCODE_LANG1'
constants[] = 'SDL_SCANCODE_LANG2'
constants[] = 'SDL_SCANCODE_LANG3'
constants[] = 'SDL_SCANCODE_LANG4'
constants[] = 'SDL_SCANCODE_LANG5'
constants[] = 'SDL_SCANCODE_LANG6'
constants[] = 'SDL_SCANCODE_LANG7'
constants[] = 'SDL_SCANCODE_LANG8'
constants[] = 'SDL_SCANCODE_LANG9'
constants[] = 'SDL_SCANCODE_ALTERASE'
constants[] = 'SDL_SCANCODE_SYSREQ'
constants[] = 'SDL_SCANCODE_CANCEL'
constants[] = 'SDL_SCANCODE_CLEAR'
constants[] = 'SDL_SCANCODE_PRIOR'
constants[] = 'SDL_SCANCODE_RETURN2'
constants[] = 'SDL_SCANCODE_SEPARATOR'
constants[] = 'SDL_SCANCODE_OUT'
constants[] = 'SDL_SCANCODE_OPER'
constants[] = 'SDL_SCANCODE_CLEARAGAIN'
constants[] = 'SDL_SCANCODE_CRSEL'
constants[] = 'SDL_SCANCODE_EXSEL'
constants[] = 'SDL_SCANCODE_KP_00'
constants[] = 'SDL_SCANCODE_KP_000'
constants[] = 'SDL_SCANCODE_THOUSANDSSEPARATOR'
constants[] = 'SDL_SCANCODE_DECIMALSEPARATOR'
constants[] = 'SDL_SCANCODE_CURRENCYUNIT'
constants[] = 'SDL_SCANCODE_CURRENCYSUBUNIT'
constants[] = 'SDL_SCANCODE_KP_LEFTPAREN'
constants[] = 'SDL_SCANCODE_KP_RIGHTPAREN'
constants[] = 'SDL_SCANCODE_KP_LEFTBRACE'
constants[] = 'SDL_SCANCODE_KP_RIGHTBRACE'
constants[] = 'SDL_SCANCODE_KP_TAB'
constants[] = 'SDL_SCANCODE_KP_BACKSPACE'
constants[] = 'SDL_SCANCODE_KP_A'
constants[] = 'SDL_SCANCODE_KP_B'
constants[] = 'SDL_SCANCODE_KP_C'
constants[] = 'SDL_SCANCODE_KP_D'
constants[] = 'SDL_SCANCODE_KP_E'
constants[] = 'SDL_SCANCODE_KP_F'
constants[] = 'SDL_SCANCODE_KP_XOR'
constants[] = 'SDL_SCANCODE_KP_POWER'
constants[] = 'SDL_SCANCODE_KP_PERCENT'
constants[] = 'SDL_SCANCODE_KP_LESS'
constants[] = 'SDL_SCANCODE_KP_GREATER'
constants[] = 'SDL_SCANCODE_KP_AMPERSAND'
constants[] = 'SDL_SCANCODE_KP_DBLAMPERSAND'
constants[] = 'SDL_SCANCODE_KP_VERTICALBAR'
constants[] = 'SDL_SCANCODE_KP_DBLVERTICALBAR'
constants[] = 'SDL_SCANCODE_KP_COLON'
constants[] = 'SDL_SCANCODE_KP_HASH'
constants[] = 'SDL_SCANCODE_KP_SPACE'
constants[] = 'SDL_SCANCODE_KP_AT'
constants[] = 'SDL_SCANCODE_KP_EXCLAM'
constants[] = 'SDL_SCANCODE_KP_MEMSTORE'
constants[] = 'SDL_SCANCODE_KP_MEMRECALL'
constants[] = 'SDL_SCANCODE_KP_MEMCLEAR'
constants[] = 'SDL_SCANCODE_KP_MEMADD'
constants[] = 'SDL_SCANCODE_KP_MEMSUBTRACT'
constants[] = 'SDL_SCANCODE_KP_MEMMULTIPLY'
constants[] = 'SDL_SCANCODE_KP_MEMDIVIDE'
constants[] = 'SDL_SCANCODE_KP_PLUSMINUS'
constants[] = 'SDL_SCANCODE_KP_CLEAR'
constants[] = 'SDL_SCANCODE_KP_CLEARENTRY'
constants[] = 'SDL_SCANCODE_KP_BINARY'
constants[] = 'SDL_SCANCODE_KP_OCTAL'
constants[] = 'SDL_SCANCODE_KP_DECIMAL'
constants[] = 'SDL_SCANCODE_KP_HEXADECIMAL'
constants[] = 'SDL_SCANCODE_LCTRL'
constants[] = 'SDL_SCANCODE_LSHIFT'
constants[] = 'SDL_SCANCODE_LALT'
constants[] = 'SDL_SCANCODE_LGUI'
constants[] = 'SDL_SCANCODE_RCTRL'
constants[] = 'SDL_SCANCODE_RSHIFT'
constants[] = 'SDL_SCANCODE_RALT'
constants[] = 'SDL_SCANCODE_RGUI'
constants[] = 'SDL_SCANCODE_MODE'
constants[] = 'SDL_SCANCODE_AUDIONEXT'
constants[] = 'SDL_SCANCODE_AUDIOPREV'
constants[] = 'SDL_SCANCODE_AUDIOSTOP'
constants[] = 'SDL_SCANCODE_AUDIOPLAY'
constants[] = 'SDL_SCANCODE_AUDIOMUTE'
constants[] = 'SDL_SCANCODE_MEDIASELECT'
constants[] = 'SDL_SCANCODE_WWW'
constants[] = 'SDL_SCANCODE_MAIL'
constants[] = 'SDL_SCANCODE_CALCULATOR'
constants[] = 'SDL_SCANCODE_COMPUTER'
constants[] = 'SDL_SCANCODE_AC_SEARCH'
constants[] = 'SDL_SCANCODE_AC_HOME'
constants[] = 'SDL_SCANCODE_AC_BACK'
constants[] = 'SDL_SCANCODE_AC_FORWARD'
constants[] = 'SDL_SCANCODE_AC_STOP'
constants[] = 'SDL_SCANCODE_AC_REFRESH'
constants[] = 'SDL_SCANCODE_AC_BOOKMARKS'
constants[] = 'SDL_SCANCODE_BRIGHTNESSDOWN'
constants[] = 'SDL_SCANCODE_BRIGHTNESSUP'
constants[] = 'SDL_SCANCODE_DISPLAYSWITCH'
constants[] = 'SDL_SCANCODE_KBDILLUMTOGGLE'
constants[] = 'SDL_SCANCODE_KBDILLUMDOWN'
constants[] = 'SDL_SCANCODE_KBDILLUMUP'
constants[] = 'SDL_SCANCODE_EJECT'
constants[] = 'SDL_SCANCODE_SLEEP'
constants[] = 'SDL_SCANCODE_APP1'
constants[] = 'SDL_SCANCODE_APP2'
constants[] = 'SDL_NUM_SCANCODES'
constants[] = 'SDLK_UNKNOWN'
constants[] = 'SDLK_RETURN'
constants[] = 'SDLK_ESCAPE'
constants[] = 'SDLK_BACKSPACE'
constants[] = 'SDLK_TAB'
constants[] = 'SDLK_SPACE'
constants[] = 'SDLK_EXCLAIM'
constants[] = 'SDLK_QUOTEDBL'
constants[] = 'SDLK_HASH'
constants[] = 'SDLK_PERCENT'
constants[] = 'SDLK_DOLLAR'
constants[] = 'SDLK_AMPERSAND'
constants[] = 'SDLK_QUOTE'
constants[] = 'SDLK_LEFTPAREN'
constants[] = 'SDLK_RIGHTPAREN'
constants[] = 'SDLK_ASTERISK'
constants[] = 'SDLK_PLUS'
constants[] = 'SDLK_COMMA'
constants[] = 'SDLK_MINUS'
constants[] = 'SDLK_PERIOD'
constants[] = 'SDLK_SLASH'
constants[] = 'SDLK_0'
constants[] = 'SDLK_1'
constants[] = 'SDLK_2'
constants[] = 'SDLK_3'
constants[] = 'SDLK_4'
constants[] = 'SDLK_5'
constants[] = 'SDLK_6'
constants[] = 'SDLK_7'
constants[] = 'SDLK_8'
constants[] = 'SDLK_9'
constants[] = 'SDLK_COLON'
constants[] = 'SDLK_SEMICOLON'
constants[] = 'SDLK_LESS'
constants[] = 'SDLK_EQUALS'
constants[] = 'SDLK_GREATER'
constants[] = 'SDLK_QUESTION'
constants[] = 'SDLK_AT'
constants[] = 'SDLK_LEFTBRACKET'
constants[] = 'SDLK_BACKSLASH'
constants[] = 'SDLK_RIGHTBRACKET'
constants[] = 'SDLK_CARET'
constants[] = 'SDLK_UNDERSCORE'
constants[] = 'SDLK_BACKQUOTE'
constants[] = 'SDLK_a'
constants[] = 'SDLK_b'
constants[] = 'SDLK_c'
constants[] = 'SDLK_d'
constants[] = 'SDLK_e'
constants[] = 'SDLK_f'
constants[] = 'SDLK_g'
constants[] = 'SDLK_h'
constants[] = 'SDLK_i'
constants[] = 'SDLK_j'
constants[] = 'SDLK_k'
constants[] = 'SDLK_l'
constants[] = 'SDLK_m'
constants[] = 'SDLK_n'
constants[] = 'SDLK_o'
constants[] = 'SDLK_p'
constants[] = 'SDLK_q'
constants[] = 'SDLK_r'
constants[] = 'SDLK_s'
constants[] = 'SDLK_t'
constants[] = 'SDLK_u'
constants[] = 'SDLK_v'
constants[] = 'SDLK_w'
constants[] = 'SDLK_x'
constants[] = 'SDLK_y'
constants[] = 'SDLK_z'
constants[] = 'SDLK_CAPSLOCK'
constants[] = 'SDLK_F1'
constants[] = 'SDLK_F2'
constants[] = 'SDLK_F3'
constants[] = 'SDLK_F4'
constants[] = 'SDLK_F5'
constants[] = 'SDLK_F6'
constants[] = 'SDLK_F7'
constants[] = 'SDLK_F8'
constants[] = 'SDLK_F9'
constants[] = 'SDLK_F10'
constants[] = 'SDLK_F11'
constants[] = 'SDLK_F12'
constants[] = 'SDLK_PRINTSCREEN'
constants[] = 'SDLK_SCROLLLOCK'
constants[] = 'SDLK_PAUSE'
constants[] = 'SDLK_INSERT'
constants[] = 'SDLK_HOME'
constants[] = 'SDLK_PAGEUP'
constants[] = 'SDLK_DELETE'
constants[] = 'SDLK_END'
constants[] = 'SDLK_PAGEDOWN'
constants[] = 'SDLK_RIGHT'
constants[] = 'SDLK_LEFT'
constants[] = 'SDLK_DOWN'
constants[] = 'SDLK_UP'
constants[] = 'SDLK_NUMLOCKCLEAR'
constants[] = 'SDLK_KP_DIVIDE'
constants[] = 'SDLK_KP_MULTIPLY'
constants[] = 'SDLK_KP_MINUS'
constants[] = 'SDLK_KP_PLUS'
constants[] = 'SDLK_KP_ENTER'
constants[] = 'SDLK_KP_1'
constants[] = 'SDLK_KP_2'
constants[] = 'SDLK_KP_3'
constants[] = 'SDLK_KP_4'
constants[] = 'SDLK_KP_5'
constants[] = 'SDLK_KP_6'
constants[] = 'SDLK_KP_7'
constants[] = 'SDLK_KP_8'
constants[] = 'SDLK_KP_9'
constants[] = 'SDLK_KP_0'
constants[] = 'SDLK_KP_PERIOD'
constants[] = 'SDLK_APPLICATION'
constants[] = 'SDLK_POWER'
constants[] = 'SDLK_KP_EQUALS'
constants[] = 'SDLK_F13'
constants[] = 'SDLK_F14'
constants[] = 'SDLK_F15'
constants[] = 'SDLK_F16'
constants[] = 'SDLK_F17'
constants[] = 'SDLK_F18'
constants[] = 'SDLK_F19'
constants[] = 'SDLK_F20'
constants[] = 'SDLK_F21'
constants[] = 'SDLK_F22'
constants[] = 'SDLK_F23'
constants[] = 'SDLK_F24'
constants[] = 'SDLK_EXECUTE'
constants[] = 'SDLK_HELP'
constants[] = 'SDLK_MENU'
constants[] = 'SDLK_SELECT'
constants[] = 'SDLK_STOP'
constants[] = 'SDLK_AGAIN'
constants[] = 'SDLK_UNDO'
constants[] = 'SDLK_CUT'
constants[] = 'SDLK_COPY'
constants[] = 'SDLK_PASTE'
constants[] = 'SDLK_FIND'
constants[] = 'SDLK_MUTE'
constants[] = 'SDLK_VOLUMEUP'
constants[] = 'SDLK_VOLUMEDOWN'
constants[] = 'SDLK_KP_COMMA'
constants[] = 'SDLK_KP_EQUALSAS400'
constants[] = 'SDLK_ALTERASE'
constants[] = 'SDLK_SYSREQ'
constants[] = 'SDLK_CANCEL'
constants[] = 'SDLK_CLEAR'
constants[] = 'SDLK_PRIOR'
constants[] = 'SDLK_RETURN2'
constants[] = 'SDLK_SEPARATOR'
constants[] = 'SDLK_OUT'
constants[] = 'SDLK_OPER'
constants[] = 'SDLK_CLEARAGAIN'
constants[] = 'SDLK_CRSEL'
constants[] = 'SDLK_EXSEL'
constants[] = 'SDLK_KP_00'
constants[] = 'SDLK_KP_000'
constants[] = 'SDLK_THOUSANDSSEPARATOR'
constants[] = 'SDLK_DECIMALSEPARATOR'
constants[] = 'SDLK_CURRENCYUNIT'
constants[] = 'SDLK_CURRENCYSUBUNIT'
constants[] = 'SDLK_KP_LEFTPAREN'
constants[] = 'SDLK_KP_RIGHTPAREN'
constants[] = 'SDLK_KP_LEFTBRACE'
constants[] = 'SDLK_KP_RIGHTBRACE'
constants[] = 'SDLK_KP_TAB'
constants[] = 'SDLK_KP_BACKSPACE'
constants[] = 'SDLK_KP_A'
constants[] = 'SDLK_KP_B'
constants[] = 'SDLK_KP_C'
constants[] = 'SDLK_KP_D'
constants[] = 'SDLK_KP_E'
constants[] = 'SDLK_KP_F'
constants[] = 'SDLK_KP_XOR'
constants[] = 'SDLK_KP_POWER'
constants[] = 'SDLK_KP_PERCENT'
constants[] = 'SDLK_KP_LESS'
constants[] = 'SDLK_KP_GREATER'
constants[] = 'SDLK_KP_AMPERSAND'
constants[] = 'SDLK_KP_DBLAMPERSAND'
constants[] = 'SDLK_KP_VERTICALBAR'
constants[] = 'SDLK_KP_DBLVERTICALBAR'
constants[] = 'SDLK_KP_COLON'
constants[] = 'SDLK_KP_HASH'
constants[] = 'SDLK_KP_SPACE'
constants[] = 'SDLK_KP_AT'
constants[] = 'SDLK_KP_EXCLAM'
constants[] = 'SDLK_KP_MEMSTORE'
constants[] = 'SDLK_KP_MEMRECALL'
constants[] = 'SDLK_KP_MEMCLEAR'
constants[] = 'SDLK_KP_MEMADD'
constants[] = 'SDLK_KP_MEMSUBTRACT'
constants[] = 'SDLK_KP_MEMMULTIPLY'
constants[] = 'SDLK_KP_MEMDIVIDE'
constants[] = 'SDLK_KP_PLUSMINUS'
constants[] = 'SDLK_KP_CLEAR'
constants[] = 'SDLK_KP_CLEARENTRY'
constants[] = 'SDLK_KP_BINARY'
constants[] = 'SDLK_KP_OCTAL'
constants[] = 'SDLK_KP_DECIMAL'
constants[] = 'SDLK_KP_HEXADECIMAL'
constants[] = 'SDLK_LCTRL'
constants[] = 'SDLK_LSHIFT'
constants[] = 'SDLK_LALT'
constants[] = 'SDLK_LGUI'
constants[] = 'SDLK_RCTRL'
constants[] = 'SDLK_RSHIFT'
constants[] = 'SDLK_RALT'
constants[] = 'SDLK_RGUI'
constants[] = 'SDLK_MODE'
constants[] = 'SDLK_AUDIONEXT'
constants[] = 'SDLK_AUDIOPREV'
constants[] = 'SDLK_AUDIOSTOP'
constants[] = 'SDLK_AUDIOPLAY'
constants[] = 'SDLK_AUDIOMUTE'
constants[] = 'SDLK_MEDIASELECT'
constants[] = 'SDLK_WWW'
constants[] = 'SDLK_MAIL'
constants[] = 'SDLK_CALCULATOR'
constants[] = 'SDLK_COMPUTER'
constants[] = 'SDLK_AC_SEARCH'
constants[] = 'SDLK_AC_HOME'
constants[] = 'SDLK_AC_BACK'
constants[] = 'SDLK_AC_FORWARD'
constants[] = 'SDLK_AC_STOP'
constants[] = 'SDLK_AC_REFRESH'
constants[] = 'SDLK_AC_BOOKMARKS'
constants[] = 'SDLK_BRIGHTNESSDOWN'
constants[] = 'SDLK_BRIGHTNESSUP'
constants[] = 'SDLK_DISPLAYSWITCH'
constants[] = 'SDLK_KBDILLUMTOGGLE'
constants[] = 'SDLK_KBDILLUMDOWN'
constants[] = 'SDLK_KBDILLUMUP'
constants[] = 'SDLK_EJECT'
constants[] = 'SDLK_SLEEP'
constants[] = 'KMOD_NONE'
constants[] = 'KMOD_LSHIFT'
constants[] = 'KMOD_RSHIFT'
constants[] = 'KMOD_LCTRL'
constants[] = 'KMOD_RCTRL'
constants[] = 'KMOD_LALT'
constants[] = 'KMOD_RALT'
constants[] = 'KMOD_LGUI'
constants[] = 'KMOD_RGUI'
constants[] = 'KMOD_NUM'
constants[] = 'KMOD_CAPS'
constants[] = 'KMOD_MODE'
constants[] = 'KMOD_RESERVED'
constants[] = 'KMOD_CTRL'
constants[] = 'KMOD_SHIFT'
constants[] = 'KMOD_ALT'
constants[] = 'KMOD_GUI'
constants[] = 'SDL_BLENDMODE_NONE'
constants[] = 'SDL_BLENDMODE_BLEND'
constants[] = 'SDL_BLENDMODE_ADD'
constants[] = 'SDL_BLENDMODE_MOD'
constants[] = 'SDL_MUTEX_'
constants[] = 'SDL_RENDERER_SOFTWARE'
constants[] = 'SDL_RENDERER_ACCELERATED'
constants[] = 'SDL_RENDERER_PRESENTVSYNC'
constants[] = 'SDL_RENDERER_TARGETTEXTURE'
constants[] = 'SDL_INIT_TIMER'
constants[] = 'SDL_INIT_AUDIO'
constants[] = 'SDL_INIT_VIDEO'
constants[] = 'SDL_INIT_JOYSTICK'
constants[] = 'SDL_INIT_HAPTIC'
constants[] = 'SDL_INIT_GAMECONTROLLER'
constants[] = 'SDL_INIT_EVENTS'
constants[] = 'SDL_INIT_NOPARACHUTE'
constants[] = 'SDL_INIT_EVERYTHING'
constants[] = 'SDL_POWERSTATE_UNKNOWN'
constants[] = 'SDL_POWERSTATE_ON_BATTERY'
constants[] = 'SDL_POWERSTATE_NO_BATTERY'
constants[] = 'SDL_POWERSTATE_CHARGING'
constants[] = 'SDL_POWERSTATE_CHARGED'
constants[] = 'SDL_MESSAGEBOX_'
constants[] = 'SDL_QUIT'
constants[] = 'SDL_APP_TERMINATING'
constants[] = 'SDL_APP_LOWMEMORY'
constants[] = 'SDL_APP_WILLENTERBACKGROUND'
constants[] = 'SDL_APP_DIDENTERBACKGROUND'
constants[] = 'SDL_APP_WILLENTERFOREGROUND'
constants[] = 'SDL_APP_DIDENTERFOREGROUND'
constants[] = 'SDL_WINDOWEVENT'
constants[] = 'SDL_SYSWMEVENT'
constants[] = 'SDL_KEYDOWN'
constants[] = 'SDL_KEYUP'
constants[] = 'SDL_TEXTEDITING'
constants[] = 'SDL_TEXTINPUT'
constants[] = 'SDL_MOUSEMOTION'
constants[] = 'SDL_MOUSEBUTTONDOWN'
constants[] = 'SDL_MOUSEBUTTONUP'
constants[] = 'SDL_MOUSEWHEEL'
constants[] = 'SDL_'
constants[] = 'SDL_COMPILEDVERSION'
constants[] = 'SDL_MAJOR_VERSION'
constants[] = 'SDL_MINOR_VERSION'
constants[] = 'SDL_PATCHLEVEL'
constants[] = 'SDL_GL_'
constants[] = 'SDL_GL_CONTEXT_'
constants[] = 'ShapeMode'
constants[] = 'SDL_NONSHAPEABLE_WINDOW'
constants[] = 'SDL_INVALID_SHAPE_ARGUMENT'
constants[] = 'SDL_WINDOW_LACKS_SHAPE'
constants[] = 'SDL_WINDOW_'
constants[] = 'SDL_WINDOWPOS_';

classes[] = 'SDL_Rect';
classes[] = 'SDL_Point';
classes[] = 'SDL_Cursor';
classes[] = 'SDL_RWops';
classes[] = 'SDL_Color';
classes[] = 'SDL_Palette';
classes[] = 'SDL_PixelFormat';
classes[] = 'SDL_Pixels';
classes[] = 'SDL_DisplayMode';
classes[] = 'SDL_mutex';
classes[] = 'SDL_sem';
classes[] = 'SDL_cond';
classes[] = 'SDL_MessageBoxColor';
classes[] = 'SDL_MessageBoxButtonData';
classes[] = 'SDL_MessageBoxData';
classes[] = 'SDL_Event';
classes[] = 'SDL_Surface';
classes[] = 'SDL_GLContext';
classes[] = 'SDL_WindowShapeMode';
classes[] = 'SDL_Window';

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = functions[] = event_add
functions[] = event_base_free
functions[] = event_base_loop
functions[] = event_base_loopbreak
functions[] = event_base_loopexit
functions[] = event_base_new
functions[] = event_base_priority_init
functions[] = event_base_reinit
functions[] = event_base_set
functions[] = event_buffer_base_set
functions[] = event_buffer_disable
functions[] = event_buffer_enable
functions[] = event_buffer_fd_set
functions[] = event_buffer_free
functions[] = event_buffer_new
functions[] = event_buffer_priority_set
functions[] = event_buffer_read
functions[] = event_buffer_set_callback
functions[] = event_buffer_timeout_set
functions[] = event_buffer_watermark_set
functions[] = event_buffer_write
functions[] = event_del
functions[] = event_free
functions[] = event_new
functions[] = event_priority_set
functions[] = event_set
functions[] = event_timer_add
functions[] = event_timer_del
functions[] = event_timer_new
functions[] = event_timer_set

constants[] = 'EV_TIMEOUT';
constants[] = 'EV_READ';
constants[] = 'EV_WRITE';
constants[] = 'EV_SIGNAL';
constants[] = 'EV_PERSIST';
constants[] = 'EVLOOP_NONBLOCK';
constants[] = 'EVLOOP_ONCE';

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = 'uuid_compare'
functions[] = 'uuid_create'
functions[] = 'uuid_is_null'
functions[] = 'uuid_is_valid'
functions[] = 'uuid_mac'
functions[] = 'uuid_parse'
functions[] = 'uuid_time'
functions[] = 'uuid_type'
functions[] = 'uuid_unparse'
functions[] = 'uuid_variant'

constants[] = 'UUID_TYPE_DEFAULT';
constants[] = 'UUID_TYPE_TIME';
constants[] = 'UUID_TYPE_DCE';
constants[] = 'UUID_TYPE_NAME';
constants[] = 'UUID_TYPE_RANDOM';
constants[] = 'UUID_TYPE_NULL';
constants[] = 'UUID_TYPE_INVALID';

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

constants[] = 'ABDAY_1'
constants[] = 'ABDAY_2'
constants[] = 'ABDAY_3'
constants[] = 'ABDAY_4'
constants[] = 'ABDAY_5'
constants[] = 'ABDAY_6'
constants[] = 'ABDAY_7'
constants[] = 'ABMON_1'
constants[] = 'ABMON_10'
constants[] = 'ABMON_11'
constants[] = 'ABMON_12'
constants[] = 'ABMON_2'
constants[] = 'ABMON_3'
constants[] = 'ABMON_4'
constants[] = 'ABMON_5'
constants[] = 'ABMON_6'
constants[] = 'ABMON_7'
constants[] = 'ABMON_8'
constants[] = 'ABMON_9'
constants[] = 'AF_INET'
constants[] = 'AF_INET6'
constants[] = 'AF_UNIX'
constants[] = 'AI_ADDRCONFIG'
constants[] = 'AI_ALL'
constants[] = 'AI_CANONNAME'
constants[] = 'AI_NUMERICHOST'
constants[] = 'AI_NUMERICSERV'
constants[] = 'AI_PASSIVE'
constants[] = 'AI_V4MAPPED'
constants[] = 'ALT_DIGITS'
constants[] = 'AM_STR'
constants[] = 'ARRAY_FILTER_USE_BOTH'
constants[] = 'ARRAY_FILTER_USE_KEY'
constants[] = 'ASSERT_ACTIVE'
constants[] = 'ASSERT_BAIL'
constants[] = 'ASSERT_CALLBACK'
constants[] = 'ASSERT_EXCEPTION'
constants[] = 'ASSERT_QUIET_EVAL'
constants[] = 'ASSERT_WARNING'
constants[] = 'CAL_EASTER_ALWAYS_GREGORIAN';
constants[] = 'CAL_EASTER_ALWAYS_JULIAN'
constants[] = 'CAL_EASTER_DEFAULT';
constants[] = 'CAL_EASTER_ROMAN';
constants[] = 'CAL_JEWISH_ADD_ALAFIM_GERESH';
constants[] = 'CAL_JEWISH_ADD_ALAFIM';
constants[] = 'CAL_JEWISH_ADD_GERESHAYI'
constants[] = 'CASE_LOWER'
constants[] = 'CASE_UPPER'
constants[] = 'CHAR_MAX'
constants[] = 'CODESET'
constants[] = 'CONNECTION_ABORTED'
constants[] = 'CONNECTION_NORMAL'
constants[] = 'CONNECTION_TIMEOUT'
constants[] = 'COUNT_NORMAL'
constants[] = 'COUNT_RECURSIVE'
constants[] = 'CREDITS_ALL'
constants[] = 'CREDITS_DOCS'
constants[] = 'CREDITS_FULLPAGE'
constants[] = 'CREDITS_GENERAL'
constants[] = 'CREDITS_GROUP'
constants[] = 'CREDITS_MODULES'
constants[] = 'CREDITS_QA'
constants[] = 'CREDITS_SAPI'
constants[] = 'CRNCYSTR'
constants[] = 'CRYPT_BLOWFISH'
constants[] = 'CRYPT_EXT_DES'
constants[] = 'CRYPT_MD5'
constants[] = 'CRYPT_SALT_LENGTH'
constants[] = 'CRYPT_SHA256'
constants[] = 'CRYPT_SHA512'
constants[] = 'CRYPT_STD_DES'
constants[] = 'D_FMT'
constants[] = 'D_T_FMT'
constants[] = 'DATE_ATOM'
constants[] = 'DATE_COOKIE'
constants[] = 'DATE_ISO8601'
constants[] = 'DATE_RFC1036'
constants[] = 'DATE_RFC1123'
constants[] = 'DATE_RFC2822'
constants[] = 'DATE_RFC3339_EXTENDED'
constants[] = 'DATE_RFC3339'
constants[] = 'DATE_RFC7231'
constants[] = 'DATE_RFC822'
constants[] = 'DATE_RFC850'
constants[] = 'DATE_RSS'
constants[] = 'DATE_W3C'
constants[] = 'DAY_1'
constants[] = 'DAY_2'
constants[] = 'DAY_3'
constants[] = 'DAY_4'
constants[] = 'DAY_5'
constants[] = 'DAY_6'
constants[] = 'DAY_7'
constants[] = 'DEBUG_BACKTRACE_IGNORE_ARGS'
constants[] = 'DEBUG_BACKTRACE_PROVIDE_OBJECT'
constants[] = 'DEFAULT_INCLUDE_PATH'
constants[] = 'DIRECTORY_SEPARATOR'
constants[] = 'DNS_A'
constants[] = 'DNS_A6'
constants[] = 'DNS_AAAA'
constants[] = 'DNS_ALL'
constants[] = 'DNS_ANY.'
constants[] = 'DNS_ANY'
constants[] = 'DNS_CAA'
constants[] = 'DNS_CNAME'
constants[] = 'DNS_HINFO'
constants[] = 'DNS_MX'
constants[] = 'DNS_NAPTR'
constants[] = 'DNS_NS'
constants[] = 'DNS_PTR'
constants[] = 'DNS_SOA'
constants[] = 'DNS_SRV'
constants[] = 'DNS_TXT'
constants[] = 'E_ALL'
constants[] = 'E_COMPILE_ERROR'
constants[] = 'E_COMPILE_WARNING'
constants[] = 'E_CORE_ERROR'
constants[] = 'E_CORE_WARNING'
constants[] = 'E_DEPRECATED'
constants[] = 'E_ERROR'
constants[] = 'E_NOTICE'
constants[] = 'E_PARSE'
constants[] = 'E_RECOVERABLE_ERROR'
constants[] = 'E_STRICT'
constants[] = 'E_USER_DEPRECATED'
constants[] = 'E_USER_ERROR'
constants[] = 'E_USER_NOTICE'
constants[] = 'E_USER_WARNING'
constants[] = 'E_WARNING'
constants[] = 'ENT_COMPAT'
constants[] = 'ENT_DISALLOWED'
constants[] = 'ENT_HTML401'
constants[] = 'ENT_HTML5'
constants[] = 'ENT_IGNORE'
constants[] = 'ENT_NOQUOTES'
constants[] = 'ENT_QUOTES'
constants[] = 'ENT_SUBSTITUTE'
constants[] = 'ENT_XHTML'
constants[] = 'ENT_XML1'
constants[] = 'ERA_D_FMT'
constants[] = 'ERA_D_T_FMT'
constants[] = 'ERA_T_FMT'
constants[] = 'ERA'
constants[] = 'EXTR_IF_EXISTS'
constants[] = 'EXTR_OVERWRITE'
constants[] = 'EXTR_PREFIX_ALL'
constants[] = 'EXTR_PREFIX_IF_EXISTS'
constants[] = 'EXTR_PREFIX_INVALID'
constants[] = 'EXTR_PREFIX_SAME'
constants[] = 'EXTR_REFS'
constants[] = 'EXTR_SKIP'
constants[] = 'FALSE'
constants[] = 'FILE_APPEND'
constants[] = 'FILE_BINARY'
constants[] = 'FILE_IGNORE_NEW_LINES'
constants[] = 'FILE_NO_DEFAULT_CONTEXT'
constants[] = 'FILE_SKIP_EMPTY_LINES'
constants[] = 'FILE_TEXT'
constants[] = 'FILE_USE_INCLUDE_PATH'
constants[] = 'FILTER_CALLBACK'
constants[] = 'FILTER_FLAG_ALLOW_FRACTION';
constants[] = 'FILTER_FLAG_ALLOW_HEX';
constants[] = 'FILTER_FLAG_ALLOW_OCTAL';
constants[] = 'FILTER_FLAG_ALLOW_SCIENTIFIC';
constants[] = 'FILTER_FLAG_ALLOW_THOUSAND';
constants[] = 'FILTER_FLAG_ENCODE_AMP';
constants[] = 'FILTER_FLAG_ENCODE_HIGH';
constants[] = 'FILTER_FLAG_ENCODE_LOW';
constants[] = 'FILTER_FLAG_IPV4';
constants[] = 'FILTER_FLAG_IPV6';
constants[] = 'FILTER_FLAG_NO_ENCODE_QUOTES';
constants[] = 'FILTER_FLAG_NO_PRIV_RANGE';
constants[] = 'FILTER_FLAG_NO_RES_RANGE';
constants[] = 'FILTER_FLAG_PATH_REQUIRED';
constants[] = 'FILTER_FLAG_QUERY_REQUIRED'
constants[] = 'FILTER_FLAG_STRIP_HIGH';
constants[] = 'FILTER_FLAG_STRIP_LOW';
constants[] = 'FILTER_NULL_ON_FAILURE';
constants[] = 'FILTER_SANITIZE_EMAIL'
constants[] = 'FILTER_SANITIZE_ENCODED'
constants[] = 'FILTER_SANITIZE_FULL_SPECIAL_CHARS'
constants[] = 'FILTER_SANITIZE_MAGIC_QUOTES'
constants[] = 'FILTER_SANITIZE_NUMBER_FLOAT'
constants[] = 'FILTER_SANITIZE_NUMBER_INT'
constants[] = 'FILTER_SANITIZE_SPECIAL_CHARS'
constants[] = 'FILTER_SANITIZE_STRING'
constants[] = 'FILTER_SANITIZE_STRIPPED'
constants[] = 'FILTER_SANITIZE_URL'
constants[] = 'FILTER_UNSAFE_RAW'
constants[] = 'FILTER_VALIDATE_BOOLEAN'
constants[] = 'FILTER_VALIDATE_EMAIL'
constants[] = 'FILTER_VALIDATE_FLOAT'
constants[] = 'FILTER_VALIDATE_INT'
constants[] = 'FILTER_VALIDATE_IP'
constants[] = 'FILTER_VALIDATE_MAC'
constants[] = 'FILTER_VALIDATE_REGEXP'
constants[] = 'FILTER_VALIDATE_URL'
constants[] = 'FNM_CASEFOLD'
constants[] = 'FNM_NOESCAPE'
constants[] = 'FNM_PATHNAME'
constants[] = 'FNM_PERIOD'
constants[] = 'GLOB_AVAILABLE_FLAGS'
constants[] = 'GLOB_BRACE'
constants[] = 'GLOB_ERR'
constants[] = 'GLOB_MARK'
constants[] = 'GLOB_NOCHECK'
constants[] = 'GLOB_NOESCAPE'
constants[] = 'GLOB_NOSORT'
constants[] = 'GLOB_ONLYDIR'
constants[] = 'GMP_ROUND_MINUSINF'
constants[] = 'GMP_ROUND_PLUSINF';
constants[] = 'GMP_ROUND_ZERO';
constants[] = 'HTML_ENTITIES'
constants[] = 'HTML_SPECIALCHARS'
constants[] = 'HTTP_COOKIE_HTTPONLY'
constants[] = 'HTTP_COOKIE_PARSE_RAW';
constants[] = 'HTTP_COOKIE_SECURE';
constants[] = 'HTTP_PARAMS_ALLOW_COMMA';
constants[] = 'HTTP_PARAMS_ALLOW_FAILURE';
constants[] = 'HTTP_PARAMS_DEFAULT';
constants[] = 'HTTP_PARAMS_RAISE_ERROR';
constants[] = 'HTTP_REDIRECT_FOUND';
constants[] = 'HTTP_REDIRECT_PERM';
constants[] = 'HTTP_REDIRECT_POST';
constants[] = 'HTTP_REDIRECT_PROXY';
constants[] = 'HTTP_REDIRECT_TEMP'
constants[] = 'HTTP_REDIRECT';
constants[] = 'HTTP_SUPPORT_ENCODINGS';
constants[] = 'HTTP_SUPPORT_MAGICMIME';
constants[] = 'HTTP_SUPPORT_REQUESTS';
constants[] = 'HTTP_SUPPORT_SSLREQUESTS'
constants[] = 'HTTP_SUPPORT';
constants[] = 'HTTP_URL_JOIN_PATH';
constants[] = 'HTTP_URL_JOIN_QUERY';
constants[] = 'HTTP_URL_REPLACE';
constants[] = 'HTTP_URL_STRIP_ALL'
constants[] = 'HTTP_URL_STRIP_AUTH';
constants[] = 'HTTP_URL_STRIP_FRAGMENT';
constants[] = 'HTTP_URL_STRIP_PASS';
constants[] = 'HTTP_URL_STRIP_PATH';
constants[] = 'HTTP_URL_STRIP_PORT';
constants[] = 'HTTP_URL_STRIP_QUERY';
constants[] = 'HTTP_URL_STRIP_USER';
constants[] = 'IMAGETYPE_BMP'
constants[] = 'IMAGETYPE_COUNT'
constants[] = 'IMAGETYPE_GIF'
constants[] = 'IMAGETYPE_ICO'
constants[] = 'IMAGETYPE_IFF'
constants[] = 'IMAGETYPE_JB2'
constants[] = 'IMAGETYPE_JP2'
constants[] = 'IMAGETYPE_JPC'
constants[] = 'IMAGETYPE_JPEG'
constants[] = 'IMAGETYPE_JPEG2000'
constants[] = 'IMAGETYPE_JPX'
constants[] = 'IMAGETYPE_PNG'
constants[] = 'IMAGETYPE_PSD'
constants[] = 'IMAGETYPE_SWC'
constants[] = 'IMAGETYPE_SWF'
constants[] = 'IMAGETYPE_TIFF_II'
constants[] = 'IMAGETYPE_TIFF_MM'
constants[] = 'IMAGETYPE_UNKNOWN'
constants[] = 'IMAGETYPE_WBMP'
constants[] = 'IMAGETYPE_WEBP'
constants[] = 'IMAGETYPE_XBM'
constants[] = 'INF'
constants[] = 'INFO_ALL'
constants[] = 'INFO_CONFIGURATION'
constants[] = 'INFO_CREDITS'
constants[] = 'INFO_ENVIRONMENT'
constants[] = 'INFO_GENERAL'
constants[] = 'INFO_LICENSE'
constants[] = 'INFO_MODULES'
constants[] = 'INFO_VARIABLES'
constants[] = 'INI_ALL'
constants[] = 'INI_PERDIR'
constants[] = 'INI_SCANNER_NORMAL'
constants[] = 'INI_SCANNER_RAW'
constants[] = 'INI_SCANNER_TYPED'
constants[] = 'INI_SYSTEM'
constants[] = 'INI_USER'
constants[] = 'IPPROTO_IP'
constants[] = 'IPPROTO_IPV6'
constants[] = 'IPV6_RECVTCLASS'
constants[] = 'IPV6_TCLASS'
constants[] = 'IPV6_UNICAST_HOPS'
constants[] = 'JSON_PRETTY_PRINT'
constants[] = 'LC_ALL'
constants[] = 'LC_COLLATE'
constants[] = 'LC_CTYPE'
constants[] = 'LC_MESSAGES'
constants[] = 'LC_MONETARY'
constants[] = 'LC_NUMERIC'
constants[] = 'LC_TIME'
constants[] = 'LIBXML_COMPACT'
constants[] = 'LIBXML_DOTTED_VERSION'
constants[] = 'LIBXML_DTDATTR'
constants[] = 'LIBXML_DTDLOAD'
constants[] = 'LIBXML_DTDVALID'
constants[] = 'LIBXML_ERR_ERROR'
constants[] = 'LIBXML_ERR_FATAL'
constants[] = 'LIBXML_ERR_NONE'
constants[] = 'LIBXML_ERR_WARNING'
constants[] = 'LIBXML_HTML_NODEFDTD'
constants[] = 'LIBXML_HTML_NOIMPLIED'
constants[] = 'LIBXML_NOBLANKS'
constants[] = 'LIBXML_NOCDATA'
constants[] = 'LIBXML_NOEMPTYTAG'
constants[] = 'LIBXML_NOENT'
constants[] = 'LIBXML_NOERROR'
constants[] = 'LIBXML_NONET'
constants[] = 'LIBXML_NOWARNING'
constants[] = 'LIBXML_NOXMLDECL'
constants[] = 'LIBXML_NSCLEAN'
constants[] = 'LIBXML_PARSEHUGE'
constants[] = 'LIBXML_PEDANTIC'
constants[] = 'LIBXML_SCHEMA_CREATE'
constants[] = 'LIBXML_VERSION'
constants[] = 'LIBXML_XINCLUDE'
constants[] = 'LOCK_EX'
constants[] = 'LOCK_NB'
constants[] = 'LOCK_SH'
constants[] = 'LOCK_UN'
constants[] = 'LOG_ALERT'
constants[] = 'LOG_AUTH'
constants[] = 'LOG_AUTHPRIV'
constants[] = 'LOG_CONS'
constants[] = 'LOG_CRIT'
constants[] = 'LOG_CRON'
constants[] = 'LOG_DAEMON'
constants[] = 'LOG_DEBUG'
constants[] = 'LOG_EMERG'
constants[] = 'LOG_ERR'
constants[] = 'LOG_INFO'
constants[] = 'LOG_KERN'
constants[] = 'LOG_LOCAL0'
constants[] = 'LOG_LOCAL1'
constants[] = 'LOG_LOCAL2'
constants[] = 'LOG_LOCAL3'
constants[] = 'LOG_LOCAL4'
constants[] = 'LOG_LOCAL5'
constants[] = 'LOG_LOCAL6'
constants[] = 'LOG_LOCAL7'
constants[] = 'LOG_LPR'
constants[] = 'LOG_MAIL'
constants[] = 'LOG_NDELAY'
constants[] = 'LOG_NEWS'
constants[] = 'LOG_NOTICE'
constants[] = 'LOG_NOWAIT'
constants[] = 'LOG_ODELAY'
constants[] = 'LOG_PERROR'
constants[] = 'LOG_PID'
constants[] = 'LOG_SYSLOG'
constants[] = 'LOG_USER'
constants[] = 'LOG_UUCP'
constants[] = 'LOG_WARNING'
constants[] = 'M_1_PI'
constants[] = 'M_2_PI'
constants[] = 'M_2_SQRTPI'
constants[] = 'M_E'
constants[] = 'M_EULER'
constants[] = 'M_LN10'
constants[] = 'M_LN2'
constants[] = 'M_LNPI'
constants[] = 'M_LOG10E'
constants[] = 'M_LOG2E'
constants[] = 'M_PI_2'
constants[] = 'M_PI_4'
constants[] = 'M_PI'
constants[] = 'M_SQRT1_2'
constants[] = 'M_SQRT2'
constants[] = 'M_SQRT3'
constants[] = 'M_SQRTPI'
constants[] = 'MON_1'
constants[] = 'MON_10'
constants[] = 'MON_11'
constants[] = 'MON_12'
constants[] = 'MON_2'
constants[] = 'MON_3'
constants[] = 'MON_4'
constants[] = 'MON_5'
constants[] = 'MON_6'
constants[] = 'MON_7'
constants[] = 'MON_8'
constants[] = 'MON_9'
constants[] = 'MSG_CTRUNC'
constants[] = 'MSG_DONTROUTE'
constants[] = 'MSG_DONTWAIT'
constants[] = 'MSG_EOF'
constants[] = 'MSG_EOR'
constants[] = 'MSG_OOB'
constants[] = 'MSG_PEEK'
constants[] = 'MSG_TRUNC'
constants[] = 'MSG_WAITALL'
constants[] = 'MT_RAND_MT19937'
constants[] = 'MT_RAND_PHP'
constants[] = 'NAN'
constants[] = 'NOEXPR'
constants[] = 'NOSTR'
constants[] = 'NULL'
constants[] = 'ODBC_TYPE'
constants[] = 'PASSWORD_ARGON2_DEFAULT_MEMORY_COST'
constants[] = 'PASSWORD_ARGON2_DEFAULT_THREADS'
constants[] = 'PASSWORD_ARGON2_DEFAULT_TIME_COST'
constants[] = 'PASSWORD_ARGON2I'
constants[] = 'PASSWORD_BCRYPT_DEFAULT_COST'
constants[] = 'PASSWORD_BCRYPT'
constants[] = 'PASSWORD_DEFAULT'
constants[] = 'PATH_SEPARATOR'
constants[] = 'PATHINFO_BASENAME'
constants[] = 'PATHINFO_DIRNAME'
constants[] = 'PATHINFO_EXTENSION'
constants[] = 'PATHINFO_FILENAME'
constants[] = 'PEAR_EXTENSION_DIR'
constants[] = 'PEAR_INSTALL_DIR'
constants[] = 'PGSQL_BAD_RESPONSE';
constants[] = 'PGSQL_COMMAND_OK';
constants[] = 'PGSQL_CONV_FORCE_NULL';
constants[] = 'PGSQL_COPY_IN';
constants[] = 'PGSQL_COPY_OUT';
constants[] = 'PGSQL_DML_ASYNC';
constants[] = 'PGSQL_DML_ESCAPE';
constants[] = 'PGSQL_DML_EXEC';
constants[] = 'PGSQL_DML_NO_CONV';
constants[] = 'PGSQL_DML_STRING'
constants[] = 'PGSQL_EMPTY_QUERY';
constants[] = 'PGSQL_FATAL_ERROR'
constants[] = 'PGSQL_NONFATAL_ERROR';
constants[] = 'PGSQL_TUPLES_OK';
constants[] = 'PHP_BINARY_READ';
constants[] = 'PHP_BINARY'
constants[] = 'PHP_BINDIR'
constants[] = 'PHP_CONFIG_FILE_PATH'
constants[] = 'PHP_CONFIG_FILE_SCAN_DIR'
constants[] = 'PHP_DATADIR'
constants[] = 'PHP_DEBUG'
constants[] = 'PHP_EOL'
constants[] = 'PHP_EXTENSION_DIR'
constants[] = 'PHP_EXTRA_VERSION'
constants[] = 'PHP_FD_SETSIZE'
constants[] = 'PHP_FLOAT_DIG'
constants[] = 'PHP_FLOAT_EPSILON'
constants[] = 'PHP_FLOAT_MAX'
constants[] = 'PHP_FLOAT_MIN'
constants[] = 'PHP_INT_MAX'
constants[] = 'PHP_INT_MIN'
constants[] = 'PHP_INT_SIZE'
constants[] = 'PHP_LIBDIR'
constants[] = 'PHP_LOCALSTATEDIR'
constants[] = 'PHP_MAJOR_VERSION'
constants[] = 'PHP_MANDIR'
constants[] = 'PHP_MAXPATHLEN'
constants[] = 'PHP_MINOR_VERSION'
constants[] = 'PHP_NORMAL_READ'
constants[] = 'PHP_OS_FAMILY'
constants[] = 'PHP_OS'
constants[] = 'PHP_OUTPUT_HANDLER_CLEAN'
constants[] = 'PHP_OUTPUT_HANDLER_CLEANABLE'
constants[] = 'PHP_OUTPUT_HANDLER_CONT'
constants[] = 'PHP_OUTPUT_HANDLER_DISABLED'
constants[] = 'PHP_OUTPUT_HANDLER_END'
constants[] = 'PHP_OUTPUT_HANDLER_FINAL'
constants[] = 'PHP_OUTPUT_HANDLER_FLUSH'
constants[] = 'PHP_OUTPUT_HANDLER_FLUSHABLE'
constants[] = 'PHP_OUTPUT_HANDLER_REMOVABLE'
constants[] = 'PHP_OUTPUT_HANDLER_START'
constants[] = 'PHP_OUTPUT_HANDLER_STARTED'
constants[] = 'PHP_OUTPUT_HANDLER_STDFLAGS'
constants[] = 'PHP_OUTPUT_HANDLER_WRITE'
constants[] = 'PHP_PREFIX'
constants[] = 'PHP_QUERY_RFC1738';
constants[] = 'PHP_QUERY_RFC3986'
constants[] = 'PHP_RELEASE_VERSION'
constants[] = 'PHP_ROUND_HALF_DOWN'
constants[] = 'PHP_ROUND_HALF_EVEN'
constants[] = 'PHP_ROUND_HALF_ODD'
constants[] = 'PHP_ROUND_HALF_UP'
constants[] = 'PHP_SAPI'
constants[] = 'PHP_SESSION_ACTIVE'
constants[] = 'PHP_SESSION_DISABLED'
constants[] = 'PHP_SESSION_NONE'
constants[] = 'PHP_SHLIB_SUFFIX'
constants[] = 'PHP_SYSCONFDIR'
constants[] = 'PHP_URL_FRAGMENT'
constants[] = 'PHP_URL_HOST'
constants[] = 'PHP_URL_PASS'
constants[] = 'PHP_URL_PATH'
constants[] = 'PHP_URL_PORT'
constants[] = 'PHP_URL_QUERY'
constants[] = 'PHP_URL_SCHEME'
constants[] = 'PHP_URL_USER'
constants[] = 'PHP_VERSION_ID'
constants[] = 'PHP_VERSION'
constants[] = 'PHP_ZTS'
constants[] = 'PM_STR'
constants[] = 'POSIX_F_OK';
constants[] = 'POSIX_R_OK';
constants[] = 'POSIX_W_OK';
constants[] = 'POSIX_X_OK'
constants[] = 'PREG_GREP_INVERT'
constants[] = 'PREG_SPLIT_DELIM_CAPTURE';
constants[] = 'PREG_SPLIT_NO_EMPTY';
constants[] = 'PREG_SPLIT_OFFSET_CAPTURE'
constants[] = 'PSFS_ERR_FATAL'
constants[] = 'PSFS_FEED_ME'
constants[] = 'PSFS_FLAG_FLUSH_CLOSE'
constants[] = 'PSFS_FLAG_FLUSH_INC'
constants[] = 'PSFS_FLAG_NORMAL'
constants[] = 'PSFS_PASS_ON'
constants[] = 'RADIXCHAR'
constants[] = 'RUNKIT_IMPORT_CLASS_CONSTS';
constants[] = 'RUNKIT_IMPORT_CLASS_METHODS';
constants[] = 'RUNKIT_IMPORT_CLASS_PROPS';
constants[] = 'RUNKIT_IMPORT_CLASSES';
constants[] = 'RUNKIT_IMPORT_FUNCTIONS';
constants[] = 'RUNKIT_IMPORT_OVERRIDE'
constants[] = 'SCANDIR_SORT_ASCENDING';
constants[] = 'SCANDIR_SORT_DESCENDING';
constants[] = 'SCANDIR_SORT_NONE'
constants[] = 'SCM_RIGHTS'
constants[] = 'SEEK_CUR'
constants[] = 'SEEK_END'
constants[] = 'SEEK_SET'
constants[] = 'SOCK_DGRAM'
constants[] = 'SOCK_RAW'
constants[] = 'SOCK_RDM'
constants[] = 'SOCK_SEQPACKET'
constants[] = 'SOCK_STREAM'
constants[] = 'SOL_TCP'
constants[] = 'SOL_UDP'
constants[] = 'SORT_ASC'
constants[] = 'SORT_DESC'
constants[] = 'SORT_FLAG_CASE'
constants[] = 'SORT_LOCALE_STRING'
constants[] = 'SORT_NATURAL';
constants[] = 'SORT_NUMERIC'
constants[] = 'SORT_REGULAR'
constants[] = 'SORT_STRING'
constants[] = 'STDERR';
constants[] = 'STDIN'
constants[] = 'STDOUT'
constants[] = 'STR_PAD_BOTH'
constants[] = 'STR_PAD_LEFT'
constants[] = 'STR_PAD_RIGHT'
constants[] = 'STREAM_BUFFER_FULL'
constants[] = 'STREAM_BUFFER_LINE'
constants[] = 'STREAM_BUFFER_NONE'
constants[] = 'STREAM_CAST_AS_STREAM'
constants[] = 'STREAM_CAST_FOR_SELECT'
constants[] = 'STREAM_CLIENT_ASYNC_CONNECT'
constants[] = 'STREAM_CLIENT_CONNECT'
constants[] = 'STREAM_CLIENT_PERSISTENT'
constants[] = 'STREAM_CRYPTO_METHOD_ANY_CLIENT'
constants[] = 'STREAM_CRYPTO_METHOD_ANY_SERVER'
constants[] = 'STREAM_CRYPTO_METHOD_SSLv2_CLIENT'
constants[] = 'STREAM_CRYPTO_METHOD_SSLv2_SERVER'
constants[] = 'STREAM_CRYPTO_METHOD_SSLv23_CLIENT'
constants[] = 'STREAM_CRYPTO_METHOD_SSLv23_SERVER'
constants[] = 'STREAM_CRYPTO_METHOD_SSLv3_CLIENT'
constants[] = 'STREAM_CRYPTO_METHOD_SSLv3_SERVER'
constants[] = 'STREAM_CRYPTO_METHOD_TLS_CLIENT'
constants[] = 'STREAM_CRYPTO_METHOD_TLS_SERVER'
constants[] = 'STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT'
constants[] = 'STREAM_CRYPTO_METHOD_TLSv1_0_SERVER'
constants[] = 'STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT'
constants[] = 'STREAM_CRYPTO_METHOD_TLSv1_1_SERVER'
constants[] = 'STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT'
constants[] = 'STREAM_CRYPTO_METHOD_TLSv1_2_SERVER'
constants[] = 'STREAM_ENFORCE_SAFE_MODE'
constants[] = 'STREAM_FILTER_ALL'
constants[] = 'STREAM_FILTER_READ'
constants[] = 'STREAM_FILTER_WRITE'
constants[] = 'STREAM_IGNORE_URL'
constants[] = 'STREAM_IPPROTO_ICMP'
constants[] = 'STREAM_IPPROTO_IP'
constants[] = 'STREAM_IPPROTO_RAW'
constants[] = 'STREAM_IPPROTO_TCP'
constants[] = 'STREAM_IPPROTO_UDP'
constants[] = 'STREAM_IS_URL'
constants[] = 'STREAM_META_ACCESS'
constants[] = 'STREAM_META_GROUP_NAME'
constants[] = 'STREAM_META_GROUP'
constants[] = 'STREAM_META_OWNER_NAME'
constants[] = 'STREAM_META_OWNER'
constants[] = 'STREAM_META_TOUCH'
constants[] = 'STREAM_MKDIR_RECURSIVE'
constants[] = 'STREAM_MUST_SEEK'
constants[] = 'STREAM_NOTIFY_AUTH_REQUIRED'
constants[] = 'STREAM_NOTIFY_AUTH_RESULT'
constants[] = 'STREAM_NOTIFY_COMPLETED'
constants[] = 'STREAM_NOTIFY_CONNECT'
constants[] = 'STREAM_NOTIFY_FAILURE'
constants[] = 'STREAM_NOTIFY_FILE_SIZE_IS'
constants[] = 'STREAM_NOTIFY_MIME_TYPE_IS'
constants[] = 'STREAM_NOTIFY_PROGRESS'
constants[] = 'STREAM_NOTIFY_REDIRECTED'
constants[] = 'STREAM_NOTIFY_RESOLVE'
constants[] = 'STREAM_NOTIFY_SEVERITY_ERR'
constants[] = 'STREAM_NOTIFY_SEVERITY_INFO'
constants[] = 'STREAM_NOTIFY_SEVERITY_WARN'
constants[] = 'STREAM_OOB'
constants[] = 'STREAM_OPTION_BLOCKING'
constants[] = 'STREAM_OPTION_READ_BUFFER'
constants[] = 'STREAM_OPTION_READ_TIMEOUT'
constants[] = 'STREAM_OPTION_WRITE_BUFFER'
constants[] = 'STREAM_PEEK'
constants[] = 'STREAM_PF_INET'
constants[] = 'STREAM_PF_INET6'
constants[] = 'STREAM_PF_UNIX'
constants[] = 'STREAM_REPORT_ERRORS'
constants[] = 'STREAM_SERVER_BIND'
constants[] = 'STREAM_SERVER_LISTEN'
constants[] = 'STREAM_SHUT_RD'
constants[] = 'STREAM_SHUT_RDWR'
constants[] = 'STREAM_SHUT_WR'
constants[] = 'STREAM_SOCK_DGRAM'
constants[] = 'STREAM_SOCK_RAW'
constants[] = 'STREAM_SOCK_RDM'
constants[] = 'STREAM_SOCK_SEQPACKET'
constants[] = 'STREAM_SOCK_STREAM'
constants[] = 'STREAM_URL_STAT_LINK'
constants[] = 'STREAM_URL_STAT_QUIET'
constants[] = 'STREAM_USE_PATH'
constants[] = 'SUNFUNCS_RET_DOUBLE'
constants[] = 'SUNFUNCS_RET_STRING'
constants[] = 'SUNFUNCS_RET_TIMESTAMP'
constants[] = 'T_ABSTRACT'
constants[] = 'T_AND_EQUAL'
constants[] = 'T_ARRAY_CAST'
constants[] = 'T_ARRAY'
constants[] = 'T_AS'
constants[] = 'T_BAD_CHARACTER'
constants[] = 'T_BOOL_CAST'
constants[] = 'T_BOOLEAN_AND'
constants[] = 'T_BOOLEAN_OR'
constants[] = 'T_BREAK'
constants[] = 'T_CALLABLE'
constants[] = 'T_CASE'
constants[] = 'T_CATCH'
constants[] = 'T_CHARACTER'
constants[] = 'T_CLASS_C'
constants[] = 'T_CLASS'
constants[] = 'T_CLONE'
constants[] = 'T_CLOSE_TAG'
constants[] = 'T_COALESCE'
constants[] = 'T_COMMENT'
constants[] = 'T_CONCAT_EQUAL'
constants[] = 'T_CONST'
constants[] = 'T_CONSTANT_ENCAPSED_STRING'
constants[] = 'T_CONTINUE'
constants[] = 'T_CURLY_OPEN'
constants[] = 'T_DEC'
constants[] = 'T_DECLARE'
constants[] = 'T_DEFAULT'
constants[] = 'T_DIR'
constants[] = 'T_DIV_EQUAL'
constants[] = 'T_DNUMBER'
constants[] = 'T_DO'
constants[] = 'T_DOC_COMMENT'
constants[] = 'T_DOLLAR_OPEN_CURLY_BRACES'
constants[] = 'T_DOUBLE_ARROW'
constants[] = 'T_DOUBLE_CAST'
constants[] = 'T_DOUBLE_COLON'
constants[] = 'T_ECHO'
constants[] = 'T_ELLIPSIS'
constants[] = 'T_ELSE'
constants[] = 'T_ELSEIF'
constants[] = 'T_EMPTY'
constants[] = 'T_ENCAPSED_AND_WHITESPACE'
constants[] = 'T_END_HEREDOC'
constants[] = 'T_ENDDECLARE'
constants[] = 'T_ENDFOR'
constants[] = 'T_ENDFOREACH'
constants[] = 'T_ENDIF'
constants[] = 'T_ENDSWITCH'
constants[] = 'T_ENDWHILE'
constants[] = 'T_EVAL'
constants[] = 'T_EXIT'
constants[] = 'T_EXTENDS'
constants[] = 'T_FILE'
constants[] = 'T_FINAL'
constants[] = 'T_FINALLY'
constants[] = 'T_FMT_AMPM'
constants[] = 'T_FMT'
constants[] = 'T_FOR'
constants[] = 'T_FOREACH'
constants[] = 'T_FUNC_C'
constants[] = 'T_FUNCTION'
constants[] = 'T_GLOBAL'
constants[] = 'T_GOTO'
constants[] = 'T_HALT_COMPILER'
constants[] = 'T_IF'
constants[] = 'T_IMPLEMENTS'
constants[] = 'T_INC'
constants[] = 'T_INCLUDE_ONCE'
constants[] = 'T_INCLUDE'
constants[] = 'T_INLINE_HTML'
constants[] = 'T_INSTANCEOF'
constants[] = 'T_INSTEADOF'
constants[] = 'T_INT_CAST'
constants[] = 'T_INTERFACE'
constants[] = 'T_IS_EQUAL'
constants[] = 'T_IS_GREATER_OR_EQUAL'
constants[] = 'T_IS_IDENTICAL'
constants[] = 'T_IS_NOT_EQUAL'
constants[] = 'T_IS_NOT_IDENTICAL'
constants[] = 'T_IS_SMALLER_OR_EQUAL'
constants[] = 'T_ISSET'
constants[] = 'T_LINE'
constants[] = 'T_LIST'
constants[] = 'T_LNUMBER'
constants[] = 'T_LOGICAL_AND'
constants[] = 'T_LOGICAL_OR'
constants[] = 'T_LOGICAL_XOR'
constants[] = 'T_METHOD_C'
constants[] = 'T_MINUS_EQUAL'
constants[] = 'T_MOD_EQUAL'
constants[] = 'T_MUL_EQUAL'
constants[] = 'T_NAMESPACE'
constants[] = 'T_NEW'
constants[] = 'T_NS_C'
constants[] = 'T_NS_SEPARATOR'
constants[] = 'T_NUM_STRING'
constants[] = 'T_OBJECT_CAST'
constants[] = 'T_OBJECT_OPERATOR'
constants[] = 'T_OPEN_TAG_WITH_ECHO'
constants[] = 'T_OPEN_TAG'
constants[] = 'T_OR_EQUAL'
constants[] = 'T_PAAMAYIM_NEKUDOTAYIM'
constants[] = 'T_PLUS_EQUAL'
constants[] = 'T_POW_EQUAL'
constants[] = 'T_POW'
constants[] = 'T_PRINT'
constants[] = 'T_PRIVATE'
constants[] = 'T_PROTECTED'
constants[] = 'T_PUBLIC'
constants[] = 'T_REQUIRE_ONCE'
constants[] = 'T_REQUIRE'
constants[] = 'T_RETURN'
constants[] = 'T_SL_EQUAL'
constants[] = 'T_SL'
constants[] = 'T_SPACESHIP'
constants[] = 'T_SR_EQUAL'
constants[] = 'T_SR'
constants[] = 'T_START_HEREDOC'
constants[] = 'T_STATIC'
constants[] = 'T_STRING_CAST'
constants[] = 'T_STRING_VARNAME'
constants[] = 'T_STRING'
constants[] = 'T_SWITCH'
constants[] = 'T_THROW'
constants[] = 'T_TRAIT_C'
constants[] = 'T_TRAIT'
constants[] = 'T_TRY'
constants[] = 'T_UNSET_CAST'
constants[] = 'T_UNSET'
constants[] = 'T_USE'
constants[] = 'T_VAR'
constants[] = 'T_VARIABLE'
constants[] = 'T_WHILE'
constants[] = 'T_WHITESPACE'
constants[] = 'T_XOR_EQUAL'
constants[] = 'T_YIELD_FROM'
constants[] = 'T_YIELD'
constants[] = 'THOUSEP'
constants[] = 'TOKEN_PARSE'
constants[] = 'TRUE'
constants[] = 'UPLOAD_ERR_CANT_WRITE'
constants[] = 'UPLOAD_ERR_EXTENSION'
constants[] = 'UPLOAD_ERR_FORM_SIZE'
constants[] = 'UPLOAD_ERR_INI_SIZE'
constants[] = 'UPLOAD_ERR_NO_FILE'
constants[] = 'UPLOAD_ERR_NO_TMP_DIR'
constants[] = 'UPLOAD_ERR_OK'
constants[] = 'UPLOAD_ERR_PARTIAL'
constants[] = 'YESEXPR'
constants[] = 'YESSTR'
constants[] = 'ZEND_DEBUG_BUILD'
constants[] = 'ZEND_MULTIBYTE'
constants[] = 'ZEND_THREAD_SAFE'
constants[] = 'INPUT_GET';
constants[] = 'INPUT_POST';
constants[] = 'INPUT_COOKIE';
constants[] = 'INPUT_SERVER';
constants[] = 'INPUT_ENV';
constants[] = 'FILTER_FLAG_HOST_REQUIRED';
constants[] = 'FILTER_FLAG_SCHEME_REQUIRED';
constants[] = 'FILTER_REQUIRE_SCALAR';
constants[] = 'FILTER_REQUIRE_ARRAY';
constants[] = 'FILTER_FORCE_ARRAY'
constants[] = 'PREG_OFFSET_CAPTURE'
constants[] = 'PHP_WINDOWS_VERSION_MAJOR';
constants[] = 'PHP_WINDOWS_VERSION_MINOR';
constants[] = 'PHP_WINDOWS_VERSION_BUILD';
constants[] = 'PHP_WINDOWS_VERSION_PLATFORM';
constants[] = 'PHP_WINDOWS_VERSION_SP_MAJOR';
constants[] = 'PHP_WINDOWS_VERSION_SP_MINOR';
constants[] = 'PHP_WINDOWS_VERSION_SUITEMASK';
constants[] = 'PHP_WINDOWS_VERSION_PRODUCTTYPE';
constants[] = 'PHP_WINDOWS_NT_DOMAIN_CONTROLLER';
constants[] = 'PHP_WINDOWS_NT_SERVER';
constants[] = 'PHP_WINDOWS_NT_WORKSTATION';
constants[] = 'PREG_UNMATCHED_AS_NULL';
constants[] = 'JSON_OBJECT_AS_ARRAY';
functions[] = 'ming_keypress';
functions[] = 'ming_setcubicthreshold';
functions[] = 'ming_setscale';
functions[] = 'ming_setswfcompression';
functions[] = 'ming_useconstants';
functions[] = 'ming_useswfversion';

constants[] = 'MING_NEW';
constants[] = 'MING_ZLIB';
constants[] = 'SWFBUTTON_HIT';
constants[] = 'SWFBUTTON_DOWN';
constants[] = 'SWFBUTTON_OVER';
constants[] = 'SWFBUTTON_UP';
constants[] = 'SWFBUTTON_MOUSEUPOUTSIDE';
constants[] = 'SWFBUTTON_DRAGOVER';
constants[] = 'SWFBUTTON_DRAGOUT';
constants[] = 'SWFBUTTON_MOUSEUP';
constants[] = 'SWFBUTTON_MOUSEDOWN';
constants[] = 'SWFBUTTON_MOUSEOUT';
constants[] = 'SWFBUTTON_MOUSEOVER';
constants[] = 'SWFFILL_RADIAL_GRADIENT';
constants[] = 'SWFFILL_LINEAR_GRADIENT';
constants[] = 'SWFFILL_TILED_BITMAP';
constants[] = 'SWFFILL_CLIPPED_BITMAP';
constants[] = 'SWFTEXTFIELD_HASLENGTH';
constants[] = 'SWFTEXTFIELD_NOEDIT';
constants[] = 'SWFTEXTFIELD_PASSWORD';
constants[] = 'SWFTEXTFIELD_MULTILINE';
constants[] = 'SWFTEXTFIELD_WORDWRAP';
constants[] = 'SWFTEXTFIELD_DRAWBOX';
constants[] = 'SWFTEXTFIELD_NOSELECT';
constants[] = 'SWFTEXTFIELD_HTML';
constants[] = 'SWFTEXTFIELD_ALIGN_LEFT';
constants[] = 'SWFTEXTFIELD_ALIGN_RIGHT';
constants[] = 'SWFTEXTFIELD_ALIGN_CENTER';
constants[] = 'SWFTEXTFIELD_ALIGN_JUSTIFY';
constants[] = 'SWFACTION_ONLOAD';
constants[] = 'SWFACTION_ENTERFRAME';
constants[] = 'SWFACTION_UNLOAD';
constants[] = 'SWFACTION_MOUSEMOVE';
constants[] = 'SWFACTION_MOUSEDOWN';
constants[] = 'SWFACTION_MOUSEUP';
constants[] = 'SWFACTION_KEYDOWN';
constants[] = 'SWFACTION_KEYUP';
constants[] = 'SWFACTION_DATA';

classes[] = 'SWFAction';
classes[] = 'SWFBitmap';
classes[] = 'SWFButton';
classes[] = 'SWFDisplayItem';
classes[] = 'SWFFill';
classes[] = 'SWFFont';
classes[] = 'SWFFontChar';
classes[] = 'SWFGradient';
classes[] = 'SWFMorph';
classes[] = 'SWFMovie';
classes[] = 'SWFPrebuiltClip';
classes[] = 'SWFShape';
classes[] = 'SWFSound';
classes[] = 'SWFSoundInstance';
classes[] = 'SWFSprite';
classes[] = 'SWFText';
classes[] = 'SWFTextField';

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = sha256
functions[] = sha256_file

constants[] = 

classes[] = 

interfaces[] = 

traits[] = 

directives[] = suhosin.log.syslog
directives[] = suhosin.log.syslog.facility
directives[] = suhosin.log.syslog.priority
directives[] = suhosin.log.sapi
directives[] = suhosin.log.stdout
directives[] = suhosin.log.file
directives[] = suhosin.log.file.name
directives[] = suhosin.log.file.time
directives[] = suhosin.log.script
directives[] = suhosin.log.script.name
directives[] = suhosin.log.phpscript
directives[] = suhosin.log.phpscript.name
directives[] = suhosin.log.phpscript.is_safe
directives[] = suhosin.log.use-x-forwarded-for
directives[] = suhosin.executor.max_depth
directives[] = suhosin.executor.include.max_traversal
directives[] = suhosin.executor.include.whitelist
directives[] = suhosin.executor.include.blacklist
directives[] = suhosin.executor.include.allow_writable_files
directives[] = suhosin.executor.func.whitelist
directives[] = suhosin.executor.func.blacklist
directives[] = suhosin.executor.eval.whitelist
directives[] = suhosin.executor.eval.blacklist
directives[] = suhosin.executor.disable_eval
directives[] = suhosin.executor.disable_emodifier
directives[] = suhosin.executor.allow_symlink
directives[] = suhosin.simulation
directives[] = suhosin.perdir
directives[] = suhosin.protectkey
directives[] = suhosin.coredump
directives[] = suhosin.stealth
directives[] = suhosin.apc_bug_workaround
directives[] = suhosin.disable.display_errors
directives[] = suhosin.multiheader
directives[] = suhosin.mail.protect
directives[] = suhosin.memory_limit
directives[] = suhosin.sql.bailout_on_error
directives[] = suhosin.sql.user_match
directives[] = suhosin.sql.user_prefix
directives[] = suhosin.sql.user_postfix
directives[] = suhosin.sql.comment
directives[] = suhosin.sql.opencomment
directives[] = suhosin.sql.multiselect
directives[] = suhosin.sql.union
directives[] = suhosin.session.encrypt
directives[] = suhosin.session.cryptkey
directives[] = suhosin.session.cryptua
directives[] = suhosin.session.cryptdocroot
directives[] = suhosin.session.cryptraddr
directives[] = suhosin.session.checkraddr
directives[] = suhosin.cookie.encrypt
directives[] = suhosin.cookie.cryptkey
directives[] = suhosin.cookie.cryptua
directives[] = suhosin.cookie.cryptdocroot
directives[] = suhosin.cookie.cryptraddr
directives[] = suhosin.cookie.checkraddr
directives[] = suhosin.cookie.cryptlist
directives[] = suhosin.cookie.plainlist
directives[] = suhosin.filter.action
directives[] = suhosin.cookie.max_array_depth
directives[] = suhosin.cookie.max_array_index_length
directives[] = suhosin.cookie.max_name_length
directives[] = suhosin.cookie.max_totalname_length
directives[] = suhosin.cookie.max_value_length
directives[] = suhosin.cookie.max_vars
directives[] = suhosin.cookie.disallow_nul
directives[] = suhosin.cookie.disallow_ws
directives[] = suhosin.get.max_array_depth
directives[] = suhosin.get.max_array_index_length
directives[] = suhosin.get.max_name_length
directives[] = suhosin.get.max_totalname_length
directives[] = suhosin.get.max_value_length
directives[] = suhosin.get.max_vars
directives[] = suhosin.get.disallow_nul
directives[] = suhosin.get.disallow_ws
directives[] = suhosin.post.max_array_depth
directives[] = suhosin.post.max_array_index_length
directives[] = suhosin.post.max_name_length
directives[] = suhosin.post.max_totalname_length
directives[] = suhosin.post.max_value_length
directives[] = suhosin.post.max_vars
directives[] = suhosin.post.disallow_nul
directives[] = suhosin.post.disallow_ws
directives[] = suhosin.request.array_index_blacklist
directives[] = suhosin.request.array_index_whitelist
directives[] = suhosin.request.max_array_depth
directives[] = suhosin.request.max_array_index_length
directives[] = suhosin.request.max_totalname_length
directives[] = suhosin.request.max_value_length
directives[] = suhosin.request.max_vars
directives[] = suhosin.request.max_varname_length
directives[] = suhosin.request.disallow_nul
directives[] = suhosin.request.disallow_ws
directives[] = suhosin.upload.max_uploads
directives[] = suhosin.upload.max_newlines
directives[] = suhosin.upload.disallow_elf
directives[] = suhosin.upload.disallow_binary
directives[] = suhosin.upload.remove_binary
directives[] = suhosin.upload.allow_utf8
directives[] = suhosin.upload.verification_script
directives[] = suhosin.session.max_id_length
directives[] = suhosin.server.encode
directives[] = suhosin.server.strip
directives[] = suhosin.rand.seedingkey
directives[] = suhosin.rand.reseed_every_request
directives[] = suhosin.srand.ignore
directives[] = suhosin.mt_srand.ignore

namespaces[] = 

directives[] = 

functions[] = apcu_cache_info
functions[] = apcu_clear_cache
functions[] = apcu_sma_info
functions[] = apcu_key_info
functions[] = apcu_store
functions[] = apcu_fetch
functions[] = apcu_delete
functions[] = apcu_add
functions[] = apcu_inc
functions[] = apcu_dec
functions[] = apcu_cas
functions[] = apcu_exists
functions[] = apcu_bin_dump
functions[] = apcu_bin_load
functions[] = apcu_bin_dumpfile
functions[] = apcu_bin_loadfile

constants[] = 'APC_BIN_VERIFY_CRC32'
constants[] = 'APC_BIN_VERIFY_MD5'
constants[] = 'APC_ITER_ALL'
constants[] = 'APC_ITER_ATIME'
constants[] = 'APC_ITER_CTIME'
constants[] = 'APC_ITER_DEVICE'
constants[] = 'APC_ITER_DTIME'
constants[] = 'APC_ITER_FILENAME'
constants[] = 'APC_ITER_INODE'
constants[] = 'APC_ITER_KEY'
constants[] = 'APC_ITER_MD5'
constants[] = 'APC_ITER_MEM_SIZE'
constants[] = 'APC_ITER_MTIME'
constants[] = 'APC_ITER_NONE'
constants[] = 'APC_ITER_NUM_HITS'
constants[] = 'APC_ITER_REFCOUNT'
constants[] = 'APC_ITER_TTL'
constants[] = 'APC_ITER_TYPE'
constants[] = 'APC_ITER_VALUE'
constants[] = 'APC_LIST_ACTIVE'
constants[] = 'APC_LIST_DELETED'

classes[] = APCIterator

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

constants[] = 'AF_UNIX';
constants[] = 'AF_INET';
constants[] = 'AF_INET6';
constants[] = 'SOCK_STREAM';
constants[] = 'SOCK_DGRAM';
constants[] = 'SOCK_RAW';
constants[] = 'SOCK_SEQPACKET';
constants[] = 'SOCK_RDM';
constants[] = 'MSG_OOB';
constants[] = 'MSG_WAITALL';
constants[] = 'MSG_DONTWAIT';
constants[] = 'MSG_PEEK';
constants[] = 'MSG_DONTROUTE';
constants[] = 'MSG_EOR';
constants[] = 'MSG_EOF';
constants[] = 'SO_DEBUG';
constants[] = 'SO_REUSEADDR';
constants[] = 'SO_KEEPALIVE';
constants[] = 'SO_DONTROUTE';
constants[] = 'SO_LINGER';
constants[] = 'SO_BROADCAST';
constants[] = 'SO_OOBINLINE';
constants[] = 'SO_SNDBUF';
constants[] = 'SO_RCVBUF';
constants[] = 'SO_SNDLOWAT';
constants[] = 'SO_RCVLOWAT';
constants[] = 'SO_SNDTIMEO';
constants[] = 'SO_RCVTIMEO';
constants[] = 'SO_TYPE';
constants[] = 'SO_ERROR';
constants[] = 'SOL_SOCKET';
constants[] = 'SOMAXCONN';
constants[] = 'TCP_NODELAY';
constants[] = 'PHP_NORMAL_READ';
constants[] = 'PHP_BINARY_READ';
constants[] = 'SOCKET_EPERM';
constants[] = 'SOCKET_ENOENT';
constants[] = 'SOCKET_EINTR';
constants[] = 'SOCKET_EIO';
constants[] = 'SOCKET_ENXIO';
constants[] = 'SOCKET_E2BIG';
constants[] = 'SOCKET_EBADF';
constants[] = 'SOCKET_EAGAIN';
constants[] = 'SOCKET_ENOMEM';
constants[] = 'SOCKET_EACCES';
constants[] = 'SOCKET_EFAULT';
constants[] = 'SOCKET_ENOTBLK';
constants[] = 'SOCKET_EBUSY';
constants[] = 'SOCKET_EEXIST';
constants[] = 'SOCKET_EXDEV';
constants[] = 'SOCKET_ENODEV';
constants[] = 'SOCKET_ENOTDIR';
constants[] = 'SOCKET_EISDIR';
constants[] = 'SOCKET_EINVAL';
constants[] = 'SOCKET_ENFILE';
constants[] = 'SOCKET_EMFILE';
constants[] = 'SOCKET_ENOTTY';
constants[] = 'SOCKET_ENOSPC';
constants[] = 'SOCKET_ESPIPE';
constants[] = 'SOCKET_EROFS';
constants[] = 'SOCKET_EMLINK';
constants[] = 'SOCKET_EPIPE';
constants[] = 'SOCKET_ENAMETOOLONG';
constants[] = 'SOCKET_ENOLCK';
constants[] = 'SOCKET_ENOSYS';
constants[] = 'SOCKET_ENOTEMPTY';
constants[] = 'SOCKET_ELOOP';
constants[] = 'SOCKET_EWOULDBLOCK';
constants[] = 'SOCKET_ENOMSG';
constants[] = 'SOCKET_EIDRM';
constants[] = 'SOCKET_ENOSTR';
constants[] = 'SOCKET_ENODATA';
constants[] = 'SOCKET_ETIME';
constants[] = 'SOCKET_ENOSR';
constants[] = 'SOCKET_EREMOTE';
constants[] = 'SOCKET_ENOLINK';
constants[] = 'SOCKET_EPROTO';
constants[] = 'SOCKET_EMULTIHOP';
constants[] = 'SOCKET_EBADMSG';
constants[] = 'SOCKET_EUSERS';
constants[] = 'SOCKET_ENOTSOCK';
constants[] = 'SOCKET_EDESTADDRREQ';
constants[] = 'SOCKET_EMSGSIZE';
constants[] = 'SOCKET_EPROTOTYPE';
constants[] = 'SOCKET_ENOPROTOOPT';
constants[] = 'SOCKET_EPROTONOSUPPORT';
constants[] = 'SOCKET_ESOCKTNOSUPPORT';
constants[] = 'SOCKET_EOPNOTSUPP';
constants[] = 'SOCKET_EPFNOSUPPORT';
constants[] = 'SOCKET_EAFNOSUPPORT';
constants[] = 'SOCKET_EADDRINUSE';
constants[] = 'SOCKET_EADDRNOTAVAIL';
constants[] = 'SOCKET_ENETDOWN';
constants[] = 'SOCKET_ENETUNREACH';
constants[] = 'SOCKET_ENETRESET';
constants[] = 'SOCKET_ECONNABORTED';
constants[] = 'SOCKET_ECONNRESET';
constants[] = 'SOCKET_ENOBUFS';
constants[] = 'SOCKET_EISCONN';
constants[] = 'SOCKET_ENOTCONN';
constants[] = 'SOCKET_ESHUTDOWN';
constants[] = 'SOCKET_ETOOMANYREFS';
constants[] = 'SOCKET_ETIMEDOUT';
constants[] = 'SOCKET_ECONNREFUSED';
constants[] = 'SOCKET_EHOSTDOWN';
constants[] = 'SOCKET_EHOSTUNREACH';
constants[] = 'SOCKET_EALREADY';
constants[] = 'SOCKET_EINPROGRESS';
constants[] = 'SOCKET_EDQUOT';
constants[] = 'SOL_TCP';
constants[] = 'SOL_UDP';

functions[] = socket_accept
functions[] = socket_addrinfo_bind
functions[] = socket_addrinfo_connect
functions[] = socket_addrinfo_explain
functions[] = socket_addrinfo_lookup
functions[] = socket_bind
functions[] = socket_clear_error
functions[] = socket_close
functions[] = socket_cmsg_space
functions[] = socket_connect
functions[] = socket_create_listen
functions[] = socket_create_pair
functions[] = socket_create
functions[] = socket_export_stream
functions[] = socket_get_option
functions[] = socket_getopt
functions[] = socket_getpeername
functions[] = socket_getsockname
functions[] = socket_import_stream
functions[] = socket_last_error
functions[] = socket_listen
functions[] = socket_read
functions[] = socket_recv
functions[] = socket_recvfrom
functions[] = socket_recvmsg
functions[] = socket_select
functions[] = socket_send
functions[] = socket_sendmsg
functions[] = socket_sendto
functions[] = socket_set_block
functions[] = socket_set_nonblock
functions[] = socket_set_option
functions[] = socket_setopt
functions[] = socket_shutdown
functions[] = socket_strerror
functions[] = socket_write









classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = array_change_key_case;
functions[] = array_chunk;
functions[] = array_column;
functions[] = array_combine;
functions[] = array_count_values;
functions[] = array_diff_assoc;
functions[] = array_diff_key;
functions[] = array_diff_uassoc;
functions[] = array_diff_ukey;
functions[] = array_diff;
functions[] = array_fill_keys;
functions[] = array_fill;
functions[] = array_filter;
functions[] = array_flip;
functions[] = array_intersect_assoc;
functions[] = array_intersect_key;
functions[] = array_intersect_uassoc;
functions[] = array_intersect_ukey;
functions[] = array_intersect;
functions[] = array_key_exists;
functions[] = array_keys;
functions[] = array_map;
functions[] = array_merge_recursive;
functions[] = array_merge;
functions[] = array_multisort;
functions[] = array_pad;
functions[] = array_pop;
functions[] = array_product;
functions[] = array_push;
functions[] = array_rand;
functions[] = array_reduce;
functions[] = array_replace_recursive;
functions[] = array_replace;
functions[] = array_reverse;
functions[] = array_search;
functions[] = array_shift;
functions[] = array_slice;
functions[] = array_splice;
functions[] = array_sum;
functions[] = array_udiff_assoc;
functions[] = array_udiff_uassoc;
functions[] = array_udiff;
functions[] = array_uintersect_assoc;
functions[] = array_uintersect_uassoc;
functions[] = array_uintersect;
functions[] = array_unique;
functions[] = array_unshift;
functions[] = array_values;
functions[] = array_walk_recursive;
functions[] = array_walk;
functions[] = array;
functions[] = arsort;
functions[] = asort;
functions[] = compact;
functions[] = count;
functions[] = current;
functions[] = each;
functions[] = end;
functions[] = extract;
functions[] = in_array;
functions[] = key_exists;
functions[] = key;
functions[] = krsort;
functions[] = ksort;
functions[] = list;
functions[] = natcasesort;
functions[] = natsort;
functions[] = next;
functions[] = pos;
functions[] = prev;
functions[] = range;
functions[] = reset;
functions[] = rsort;
functions[] = shuffle;
functions[] = sizeof;
functions[] = sort;
functions[] = uasort;
functions[] = uksort;
functions[] = usort;

constants[] = 

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = CommonMark\Parse
functions[] = CommonMark\Render
functions[] = CommonMark\Render\HTML
functions[] = CommonMark\Render\Latex
functions[] = CommonMark\Render\Man
functions[] = CommonMark\Render\XML

constants[] = 

classes[] = CommonMark\Node\Document
classes[] = CommonMark\Node\Heading
classes[] = CommonMark\Node\Paragraph
classes[] = CommonMark\Node\BlockQuote
classes[] = CommonMark\Node\BulletList
classes[] = CommonMark\Node\OrderedList
classes[] = CommonMark\Node\Item
classes[] = CommonMark\Node\Text
classes[] = CommonMark\Node\Text\Strong
classes[] = CommonMark\Node\Text\Emphasis
classes[] = CommonMark\Node\ThematicBreak
classes[] = CommonMark\Node\SoftBreak
classes[] = CommonMark\Node\LineBreak
classes[] = CommonMark\Node\Code
classes[] = CommonMark\Node\CodeBlock
classes[] = CommonMark\Node\HTMLBlock
classes[] = CommonMark\Node\HTMLInline
classes[] = CommonMark\Node\Image
classes[] = CommonMark\Node\Link
classes[] = CommonMark\Node\CustomBlock
classes[] = CommonMark\Node\CustomInline
classes[] = CommonMark\Node
classes[] = CommonMark\Interfaces\IVisitor
classes[] = CommonMark\Interfaces\IVisitable
classes[] = CommonMark\Parser
classes[] = CommonMark\CQL

interfaces[] = 

traits[] = 

namespaces[] = 'CommonMark'

directives[] = 

constants[] = 

functions[] = xmlrpc_encode
functions[] = xmlrpc_decode
functions[] = xmlrpc_decode_request
functions[] = xmlrpc_encode_request
functions[] = xmlrpc_get_type
functions[] = xmlrpc_set_type
functions[] = xmlrpc_is_fault
functions[] = xmlrpc_server_create
functions[] = xmlrpc_server_destroy
functions[] = xmlrpc_server_register_method
functions[] = xmlrpc_server_call_method
functions[] = xmlrpc_parse_method_descriptions
functions[] = xmlrpc_server_add_introspection_data
functions[] = xmlrpc_server_register_introspection_callback

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = 

constants[] = 'VARNISH_STATUS_SYNTAX';
constants[] = 'VARNISH_STATUS_UNKNOWN';
constants[] = 'VARNISH_STATUS_UNIMPL';
constants[] = 'VARNISH_STATUS_TOOFEW';
constants[] = 'VARNISH_STATUS_TOOMANY';
constants[] = 'VARNISH_STATUS_PARAM';
constants[] = 'VARNISH_STATUS_AUTH';
constants[] = 'VARNISH_STATUS_OK';
constants[] = 'VARNISH_STATUS_CANT';
constants[] = 'VARNISH_STATUS_COMMS';
constants[] = 'VARNISH_STATUS_CLOSE';
constants[] = 'VARNISH_CONFIG_IDENT';
constants[] = 'VARNISH_CONFIG_HOST';
constants[] = 'VARNISH_CONFIG_PORT';
constants[] = 'VARNISH_CONFIG_TIMEOUT';
constants[] = 'VARNISH_CONFIG_SECRET';
constants[] = 'VARNISH_CONFIG_COMPAT';
constants[] = 'VARNISH_COMPAT_2';
constants[] = 'VARNISH_COMPAT_3';


classes[] = 'VarnishAdmin';
classes[] = 'VarnishStat';
classes[] = 'VarnishLog';

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = "newt_bell";
functions[] = "newt_button_bar";
functions[] = "newt_button";
functions[] = "newt_centered_window";
functions[] = "newt_checkbox_get_value";
functions[] = "newt_checkbox_set_flags";
functions[] = "newt_checkbox_set_value";
functions[] = "newt_checkbox_tree_add_item";
functions[] = "newt_checkbox_tree_find_item";
functions[] = "newt_checkbox_tree_get_current";
functions[] = "newt_checkbox_tree_get_entry_value";
functions[] = "newt_checkbox_tree_get_multi_selection";
functions[] = "newt_checkbox_tree_get_selection";
functions[] = "newt_checkbox_tree_multi";
functions[] = "newt_checkbox_tree_set_current";
functions[] = "newt_checkbox_tree_set_entry_value";
functions[] = "newt_checkbox_tree_set_entry";
functions[] = "newt_checkbox_tree_set_width";
functions[] = "newt_checkbox_tree";
functions[] = "newt_checkbox";
functions[] = "newt_clear_key_buffer";
functions[] = "newt_cls";
functions[] = "newt_compact_button";
functions[] = "newt_component_add_callback";
functions[] = "newt_component_takes_focus";
functions[] = "newt_create_grid";
functions[] = "newt_cursor_off";
functions[] = "newt_cursor_on";
functions[] = "newt_delay";
functions[] = "newt_draw_form";
functions[] = "newt_draw_root_text";
functions[] = "newt_entry_get_value";
functions[] = "newt_entry_set_filter";
functions[] = "newt_entry_set_flags";
functions[] = "newt_entry_set";
functions[] = "newt_entry";
functions[] = "newt_finished";
functions[] = "newt_form_add_component";
functions[] = "newt_form_add_components";
functions[] = "newt_form_add_hot_key";
functions[] = "newt_form_destroy";
functions[] = "newt_form_get_current";
functions[] = "newt_form_run";
functions[] = "newt_form_set_background";
functions[] = "newt_form_set_height";
functions[] = "newt_form_set_size";
functions[] = "newt_form_set_timer";
functions[] = "newt_form_set_width";
functions[] = "newt_form_watch_fd";
functions[] = "newt_form";
functions[] = "newt_get_screen_size";
functions[] = "newt_grid_add_components_to_form";
functions[] = "newt_grid_basic_window";
functions[] = "newt_grid_free";
functions[] = "newt_grid_get_size";
functions[] = "newt_grid_h_close_stacked";
functions[] = "newt_grid_h_stacked";
functions[] = "newt_grid_place";
functions[] = "newt_grid_set_field";
functions[] = "newt_grid_simple_window";
functions[] = "newt_grid_v_close_stacked";
functions[] = "newt_grid_v_stacked";
functions[] = "newt_grid_wrapped_window_at";
functions[] = "newt_grid_wrapped_window";
functions[] = "newt_init";
functions[] = "newt_label_set_text";
functions[] = "newt_label";
functions[] = "newt_listbox_append_entry";
functions[] = "newt_listbox_clear_selection";
functions[] = "newt_listbox_clear";
functions[] = "newt_listbox_delete_entry";
functions[] = "newt_listbox_get_current";
functions[] = "newt_listbox_get_selection";
functions[] = "newt_listbox_insert_entry";
functions[] = "newt_listbox_item_count";
functions[] = "newt_listbox_select_item";
functions[] = "newt_listbox_set_current_by_key";
functions[] = "newt_listbox_set_current";
functions[] = "newt_listbox_set_data";
functions[] = "newt_listbox_set_entry";
functions[] = "newt_listbox_set_width";
functions[] = "newt_listbox";
functions[] = "newt_listitem_get_data";
functions[] = "newt_listitem_set";
functions[] = "newt_listitem";
functions[] = "newt_open_window";
functions[] = "newt_pop_help_line";
functions[] = "newt_pop_window";
functions[] = "newt_push_help_line";
functions[] = "newt_radio_get_current";
functions[] = "newt_radiobutton";
functions[] = "newt_redraw_help_line";
functions[] = "newt_reflow_text";
functions[] = "newt_refresh";
functions[] = "newt_resize_screen";
functions[] = "newt_resume";
functions[] = "newt_run_form";
functions[] = "newt_scale_set";
functions[] = "newt_scale";
functions[] = "newt_scrollbar_set";
functions[] = "newt_set_help_callback";
functions[] = "newt_set_suspend_callback";
functions[] = "newt_suspend";
functions[] = "newt_textbox_get_num_lines";
functions[] = "newt_textbox_reflowed";
functions[] = "newt_textbox_set_height";
functions[] = "newt_textbox_set_text";
functions[] = "newt_textbox";
functions[] = "newt_vertical_scrollbar";
functions[] = "newt_wait_for_key";
functions[] = "newt_win_choice";
functions[] = "newt_win_entries";
functions[] = "newt_win_menu";
functions[] = "newt_win_message";
functions[] = "newt_win_messagev";
functions[] = "newt_win_ternary";

constants[] = "NEWT_GRID_FLAG_GROWX";
constants[] = "NEWT_GRID_FLAG_GROWY";
constants[] = "NEWT_GRID_EMPTY";
constants[] = "NEWT_GRID_COMPONENT";
constants[] = "NEWT_GRID_SUBGRID";
constants[] = "NEWT_ANCHOR_LEFT";
constants[] = "NEWT_ANCHOR_RIGHT";
constants[] = "NEWT_ANCHOR_TOP";
constants[] = "NEWT_ANCHOR_BOTTOM";
constants[] = "NEWT_KEY_TAB";
constants[] = "NEWT_KEY_ENTER";
constants[] = "NEWT_KEY_SUSPEND";
constants[] = "NEWT_KEY_ESCAPE";
constants[] = "NEWT_KEY_RETURN";
constants[] = "NEWT_KEY_EXTRA_BASE";
constants[] = "NEWT_KEY_UP";
constants[] = "NEWT_KEY_DOWN";
constants[] = "NEWT_KEY_LEFT";
constants[] = "NEWT_KEY_RIGHT";
constants[] = "NEWT_KEY_BKSPC";
constants[] = "NEWT_KEY_DELETE";
constants[] = "NEWT_KEY_HOME";
constants[] = "NEWT_KEY_END";
constants[] = "NEWT_KEY_UNTAB";
constants[] = "NEWT_KEY_PGUP";
constants[] = "NEWT_KEY_PGDN";
constants[] = "NEWT_KEY_INSERT";
constants[] = "NEWT_KEY_F1";
constants[] = "NEWT_KEY_F2";
constants[] = "NEWT_KEY_F3";
constants[] = "NEWT_KEY_F4";
constants[] = "NEWT_KEY_F5";
constants[] = "NEWT_KEY_F6";
constants[] = "NEWT_KEY_F7";
constants[] = "NEWT_KEY_F8";
constants[] = "NEWT_KEY_F9";
constants[] = "NEWT_KEY_F10";
constants[] = "NEWT_KEY_F11";
constants[] = "NEWT_KEY_F12";
constants[] = "NEWT_KEY_RESIZE";
constants[] = "NEWT_FORM_NOF12";
constants[] = "NEWT_TEXTBOX_WRAP";
constants[] = "NEWT_TEXTBOX_SCROLL";
constants[] = "NEWT_LISTBOX_RETURNEXIT";
constants[] = "NEWT_ENTRY_SCROLL";
constants[] = "NEWT_ENTRY_HIDDEN";
constants[] = "NEWT_ENTRY_RETURNEXIT";
constants[] = "NEWT_ENTRY_DISABLED";
constants[] = "NEWT_CHECKBOXTREE_UNSELECTABLE";
constants[] = "NEWT_CHECKBOXTREE_HIDE_BOX";
constants[] = "NEWT_CHECKBOXTREE_COLLAPSED";
constants[] = "NEWT_CHECKBOXTREE_EXPANDED";
constants[] = "NEWT_CHECKBOXTREE_UNSELECTED";
constants[] = "NEWT_CHECKBOXTREE_SELECTED";
constants[] = "NEWT_FD_READ";
constants[] = "NEWT_FD_WRITE";
constants[] = "NEWT_FD_EXCEPT";
constants[] = "NEWT_FLAG_RETURNEXIT";
constants[] = "NEWT_FLAG_HIDDEN";
constants[] = "NEWT_FLAG_SCROLL";
constants[] = "NEWT_FLAG_DISABLED";
constants[] = "NEWT_FLAG_BORDER";
constants[] = "NEWT_FLAG_WRAP";
constants[] = "NEWT_FLAG_NOF12";
constants[] = "NEWT_FLAG_MULTIPLE";
constants[] = "NEWT_FLAG_SELECTED";
constants[] = "NEWT_FLAG_CHECKBOX";
constants[] = "NEWT_FLAG_PASSWORD";
constants[] = "NEWT_FLAG_SHOWCURSOR";
constants[] = "NEWT_FLAGS_SET";
constants[] = "NEWT_FLAGS_RESET";
constants[] = "NEWT_FLAGS_TOGGLE";
constants[] = "NEWT_ARG_LAST";
constants[] = "NEWT_ARG_APPEND";
constants[] = "NEWT_COLORSET_ROOT";
constants[] = "NEWT_COLORSET_BORDER";
constants[] = "NEWT_COLORSET_WINDOW";
constants[] = "NEWT_COLORSET_SHADOW";
constants[] = "NEWT_COLORSET_TITLE";
constants[] = "NEWT_COLORSET_BUTTON";
constants[] = "NEWT_COLORSET_ACTBUTTON";
constants[] = "NEWT_COLORSET_CHECKBOX";
constants[] = "NEWT_COLORSET_ACTCHECKBOX";
constants[] = "NEWT_COLORSET_ENTRY";
constants[] = "NEWT_COLORSET_LABEL";
constants[] = "NEWT_COLORSET_LISTBOX";
constants[] = "NEWT_COLORSET_ACTLISTBOX";
constants[] = "NEWT_COLORSET_TEXTBOX";
constants[] = "NEWT_COLORSET_ACTTEXTBOX";
constants[] = "NEWT_COLORSET_HELPLINE";
constants[] = "NEWT_COLORSET_ROOTTEXT";
constants[] = "NEWT_COLORSET_EMPTYSCALE";
constants[] = "NEWT_COLORSET_FULLSCALE";
constants[] = "NEWT_COLORSET_DISENTRY";
constants[] = "NEWT_COLORSET_COMPACTBUTTON";
constants[] = "NEWT_COLORSET_ACTSELLISTBOX";
constants[] = "NEWT_COLORSET_SELLISTBOX";
constants[] = "NEWT_EXIT_HOTKEY";
constants[] = "NEWT_EXIT_COMPONENT";
constants[] = "NEWT_EXIT_FDREADY";
constants[] = "NEWT_EXIT_TIMER";

classes[] = 

interfaces[] = 

traits[] = 

directives[] = 

namespaces[] = 

functions[] = mcrypt_cbc
functions[] = mcrypt_cfb
functions[] = mcrypt_create_iv
functions[] = mcrypt_decrypt
functions[] = mcrypt_ecb
functions[] = mcrypt_enc_get_algorithms_name
functions[] = mcrypt_enc_get_block_size
functions[] = mcrypt_enc_get_iv_size
functions[] = mcrypt_enc_get_key_size
functions[] = mcrypt_enc_get_modes_name
functions[] = mcrypt_enc_get_supported_key_sizes
functions[] = mcrypt_enc_is_block_algorithm_mode
functions[] = mcrypt_enc_is_block_algorithm
functions[] = mcrypt_enc_is_block_mode
functions[] = mcrypt_enc_self_test
functions[] = mcrypt_encrypt
functions[] = mcrypt_generic_deinit
functions[] = mcrypt_generic_end
functions[] = mcrypt_generic_init
functions[] = mcrypt_generic
functions[] = mcrypt_get_block_size
functions[] = mcrypt_get_cipher_name
functions[] = mcrypt_get_iv_size
functions[] = mcrypt_get_key_size
functions[] = mcrypt_list_algorithms
functions[] = mcrypt_list_modes
functions[] = mcrypt_module_close
functions[] = mcrypt_module_get_algo_block_size
functions[] = mcrypt_module_get_algo_key_size
functions[] = mcrypt_module_get_supported_key_sizes
functions[] = mcrypt_module_is_block_algorithm_mode
functions[] = mcrypt_module_is_block_algorithm
functions[] = mcrypt_module_is_block_mode
functions[] = mcrypt_module_open
functions[] = mcrypt_module_self_test
functions[] = mcrypt_ofb
functions[] = mdecrypt_generic

constants[] = 'MCRYPT_MODE_CBC';
constants[] = 'MCRYPT_ENCRYPT';
constants[] = 'MCRYPT_DECRYPT';
constants[] = 'MCRYPT_DEV_RANDOM';
constants[] = 'MCRYPT_DEV_URANDOM';
constants[] = 'MCRYPT_RAND';
constants[] = 'MCRYPT_MODE_ECB';
constants[] = 'MCRYPT_MODE_CBC';
constants[] = 'MCRYPT_MODE_CFB';
constants[] = 'MCRYPT_MODE_OFB';
constants[] = 'MCRYPT_MODE_NOFB';
constants[] = 'MCRYPT_MODE_STREAM';
constants[] = 'MCRYPT_3DES';
constants[] = 'MCRYPT_ARCFOUR_IV';
constants[] = 'MCRYPT_ARCFOUR';
constants[] = 'MCRYPT_BLOWFISH';
constants[] = 'MCRYPT_CAST_128';
constants[] = 'MCRYPT_CAST_256';
constants[] = 'MCRYPT_CRYPT';
constants[] = 'MCRYPT_DES';
constants[] = 'MCRYPT_DES_COMPAT';
constants[] = 'MCRYPT_ENIGMA';
constants[] = 'MCRYPT_GOST';
constants[] = 'MCRYPT_IDEA';
constants[] = 'MCRYPT_LOKI97';
constants[] = 'MCRYPT_MARS';
constants[] = 'MCRYPT_PANAMA';
constants[] = 'MCRYPT_RIJNDAEL_128';
constants[] = 'MCRYPT_RIJNDAEL_192';
constants[] = 'MCRYPT_RIJNDAEL_256';
constants[] = 'MCRYPT_RC2';
constants[] = 'MCRYPT_RC4';
constants[] = 'MCRYPT_RC6';
constants[] = 'MCRYPT_RC6_128';
constants[] = 'MCRYPT_RC6_192';
constants[] = 'MCRYPT_RC6_256';
constants[] = 'MCRYPT_SAFER64';
constants[] = 'MCRYPT_SAFER128';
constants[] = 'MCRYPT_SAFERPLUS';
constants[] = 'MCRYPT_SERPENT';
constants[] = 'MCRYPT_SERPENT_128';
constants[] = 'MCRYPT_SERPENT_192';
constants[] = 'MCRYPT_SERPENT_256';
constants[] = 'MCRYPT_SKIPJACK';
constants[] = 'MCRYPT_TEAN';
constants[] = 'MCRYPT_THREEWAY';
constants[] = 'MCRYPT_TRIPLEDES';
constants[] = 'MCRYPT_TWOFISH';
constants[] = 'MCRYPT_TWOFISH128';
constants[] = 'MCRYPT_TWOFISH192';
constants[] = 'MCRYPT_TWOFISH256';
constants[] = 'MCRYPT_WAKE';
constants[] = 'MCRYPT_XTEA';

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

{
    "interfaces": [
        {
            "name": "ContainerInterface",
            "namespace": "Psr\\Container",
            "methods": [
                {
                    "name": "get",
                    "parameters": [
                        {
                            "name": "$id"
                        }
                    ]
                },
                {
                    "name": "has",
                    "parameters": [
                        {
                            "name": "$id"
                        }
                    ]
                }
            ]
        },
        {
            "name": "ContainerExceptionInterface",
            "namespace": "Psr\\Container",
            "methods": []
        },
        {
            "name": "NotFoundExceptionInterface",
            "namespace": "Psr\\Container",
            "methods": [],
            "extends": [
                "Psr\\Container\\ContainerExceptionInterface"
            ]
        }
    ]
}{
    "interfaces": [
        {
            "name": "CacheInterface",
            "namespace": "Psr\\SimpleCache",
            "methods": [
                {
                    "name": "get",
                    "arguments": [
                        {
                            "name": "$key"
                        },
                        {
                            "name": "$default",
                            "default": "null"
                        }
                    ]
                },
                {
                    "name": "set",
                    "arguments": [
                        {
                            "name": "$key"
                        },
                        {
                            "name": "$value"
                        },
                        {
                            "name": "$type",
                            "default": "null"
                        }
                    ]
                },
                {
                    "name": "delete",
                    "arguments": [
                        {
                            "name": "$key"
                        }
                    ]
                },
                {
                    "name": "clear",
                    "arguments": []
                },
                {
                    "name": "setMultiple",
                    "arguments": [
                        {
                            "name": "$values"
                        },
                        {
                            "name": "$ttl",
                            "default": "null"
                        }
                    ]
                },
                {
                    "name": "deleteMultiple",
                    "arguments": [
                        {
                            "name": "$keys"
                        }
                    ]
                },
                {
                    "name": "has",
                    "arguments": [
                        {
                            "name": "$key"
                        }
                    ]
                }
            ]
        },
        {
            "name": "CacheException",
            "namespace": "Psr\\SimpleCache",
            "methods": []
        },
        {
            "name": "InvalidArgumentException",
            "namespace": "Psr\\SimpleCache",
            "extends": "Psr\\SimpleCache\\CacheException",
            "methods": []
        }
    ]
}{
    "interfaces": [
        {
            "name": "MessageInterface",
            "namespace": "Psr\\Http\\Message",
            "methods": [
                {
                    "name": "getProtocolVersion",
                    "parameters": []
                },
                {
                    "name": "withProtocolVersion",
                    "parameters": [
                        {
                            "name": "$version"
                        }
                    ]
                },
                {
                    "name": "getHeaders",
                    "parameters": []
                },
                {
                    "name": "hasHeader",
                    "parameters": [
                        {
                            "name": "$name"
                        }
                    ]
                },
                {
                    "name": "getHeader",
                    "parameters": [
                        {
                            "name": "$name"
                        }
                    ]
                },
                {
                    "name": "getHeaderLine",
                    "parameters": [
                        {
                            "name": "$name"
                        }
                    ]
                },
                {
                    "name": "withHeader",
                    "parameters": [
                        {
                            "name": "$name"
                        },
                        {
                            "name": "$value"
                        }
                    ]
                },
                {
                    "name": "withAddedHeader",
                    "parameters": [
                        {
                            "name": "$name"
                        },
                        {
                            "name": "$value"
                        }
                    ]
                },
                {
                    "name": "withoutHeader",
                    "parameters": [
                        {
                            "name": "$name"
                        }
                    ]
                },
                {
                    "name": "getBody",
                    "parameters": []
                },
                {
                    "name": "withBody",
                    "parameters": [
                        {
                            "name": "$body",
                            "type": "Psr\\Http\\Message\\StreamInterface"
                        }
                    ]
                }
            ]
        },
        {
            "name": "RequestInterface",
            "namespace": "Psr\\Http\\Message",
            "methods": [
                {
                    "name": "getRequestTarget",
                    "parameters": []
                },
                {
                    "name": "withRequestTarget",
                    "parameters": [
                        {
                            "name": "$requestTarget"
                        }
                    ]
                },
                {
                    "name": "getMethod",
                    "parameters": []
                },
                {
                    "name": "withMethod",
                    "parameters": [
                        {
                            "name": "$method"
                        }
                    ]
                },
                {
                    "name": "getUri",
                    "parameters": []
                },
                {
                    "name": "withUri",
                    "parameters": [
                        {
                            "name": "$uri",
                            "type": "Psr\\Http\\Message\\UriInterface"
                        },
                        {
                            "name": "$preserveHost",
                            "default": false
                        }
                    ]
                },
                {
                    "name": "getProtocolVersion",
                    "parameters": []
                },
                {
                    "name": "withProtocolVersion",
                    "parameters": [
                        {
                            "name": "$version"
                        }
                    ]
                },
                {
                    "name": "getHeaders",
                    "parameters": []
                },
                {
                    "name": "hasHeader",
                    "parameters": [
                        {
                            "name": "$name"
                        }
                    ]
                },
                {
                    "name": "getHeader",
                    "parameters": [
                        {
                            "name": "$name"
                        }
                    ]
                },
                {
                    "name": "getHeaderLine",
                    "parameters": [
                        {
                            "name": "$name"
                        }
                    ]
                },
                {
                    "name": "withHeader",
                    "parameters": [
                        {
                            "name": "$name"
                        },
                        {
                            "name": "$value"
                        }
                    ]
                },
                {
                    "name": "withAddedHeader",
                    "parameters": [
                        {
                            "name": "$name"
                        },
                        {
                            "name": "$value"
                        }
                    ]
                },
                {
                    "name": "withoutHeader",
                    "parameters": [
                        {
                            "name": "$name"
                        }
                    ]
                },
                {
                    "name": "getBody",
                    "parameters": []
                },
                {
                    "name": "withBody",
                    "parameters": [
                        {
                            "name": "$body",
                            "type": "Psr\\Http\\Message\\StreamInterface"
                        }
                    ]
                }
            ],
            "extends": [
                "Psr\\Http\\Message\\MessageInterface"
            ]
        },
        {
            "name": "ServerRequestInterface",
            "namespace": "Psr\\Http\\Message",
            "methods": [
                {
                    "name": "getServerParams",
                    "parameters": []
                },
                {
                    "name": "getCookieParams",
                    "parameters": []
                },
                {
                    "name": "withCookieParams",
                    "parameters": [
                        {
                            "name": "$cookies",
                            "type": "array"
                        }
                    ]
                },
                {
                    "name": "getQueryParams",
                    "parameters": []
                },
                {
                    "name": "withQueryParams",
                    "parameters": [
                        {
                            "name": "$query",
                            "type": "array"
                        }
                    ]
                },
                {
                    "name": "getUploadedFiles",
                    "parameters": []
                },
                {
                    "name": "withUploadedFiles",
                    "parameters": [
                        {
                            "name": "$uploadedFiles",
                            "type": "array"
                        }
                    ]
                },
                {
                    "name": "getParsedBody",
                    "parameters": []
                },
                {
                    "name": "withParsedBody",
                    "parameters": [
                        {
                            "name": "$data"
                        }
                    ]
                },
                {
                    "name": "getAttributes",
                    "parameters": []
                },
                {
                    "name": "getAttribute",
                    "parameters": [
                        {
                            "name": "$name"
                        },
                        {
                            "name": "$default",
                            "default": null
                        }
                    ]
                },
                {
                    "name": "withAttribute",
                    "parameters": [
                        {
                            "name": "$name"
                        },
                        {
                            "name": "$value"
                        }
                    ]
                },
                {
                    "name": "withoutAttribute",
                    "parameters": [
                        {
                            "name": "$name"
                        }
                    ]
                },
                {
                    "name": "getRequestTarget",
                    "parameters": []
                },
                {
                    "name": "withRequestTarget",
                    "parameters": [
                        {
                            "name": "$requestTarget"
                        }
                    ]
                },
                {
                    "name": "getMethod",
                    "parameters": []
                },
                {
                    "name": "withMethod",
                    "parameters": [
                        {
                            "name": "$method"
                        }
                    ]
                },
                {
                    "name": "getUri",
                    "parameters": []
                },
                {
                    "name": "withUri",
                    "parameters": [
                        {
                            "name": "$uri",
                            "type": "Psr\\Http\\Message\\UriInterface"
                        },
                        {
                            "name": "$preserveHost",
                            "default": false
                        }
                    ]
                },
                {
                    "name": "getProtocolVersion",
                    "parameters": []
                },
                {
                    "name": "withProtocolVersion",
                    "parameters": [
                        {
                            "name": "$version"
                        }
                    ]
                },
                {
                    "name": "getHeaders",
                    "parameters": []
                },
                {
                    "name": "hasHeader",
                    "parameters": [
                        {
                            "name": "$name"
                        }
                    ]
                },
                {
                    "name": "getHeader",
                    "parameters": [
                        {
                            "name": "$name"
                        }
                    ]
                },
                {
                    "name": "getHeaderLine",
                    "parameters": [
                        {
                            "name": "$name"
                        }
                    ]
                },
                {
                    "name": "withHeader",
                    "parameters": [
                        {
                            "name": "$name"
                        },
                        {
                            "name": "$value"
                        }
                    ]
                },
                {
                    "name": "withAddedHeader",
                    "parameters": [
                        {
                            "name": "$name"
                        },
                        {
                            "name": "$value"
                        }
                    ]
                },
                {
                    "name": "withoutHeader",
                    "parameters": [
                        {
                            "name": "$name"
                        }
                    ]
                },
                {
                    "name": "getBody",
                    "parameters": []
                },
                {
                    "name": "withBody",
                    "parameters": [
                        {
                            "name": "$body",
                            "type": "Psr\\Http\\Message\\StreamInterface"
                        }
                    ]
                }
            ],
            "extends": [
                "Psr\\Http\\Message\\RequestInterface",
                "Psr\\Http\\Message\\MessageInterface"
            ]
        },
        {
            "name": "ResponseInterface",
            "namespace": "Psr\\Http\\Message",
            "methods": [
                {
                    "name": "getStatusCode",
                    "parameters": []
                },
                {
                    "name": "withStatus",
                    "parameters": [
                        {
                            "name": "$code"
                        },
                        {
                            "name": "$reasonPhrase",
                            "default": ""
                        }
                    ]
                },
                {
                    "name": "getReasonPhrase",
                    "parameters": []
                },
                {
                    "name": "getProtocolVersion",
                    "parameters": []
                },
                {
                    "name": "withProtocolVersion",
                    "parameters": [
                        {
                            "name": "$version"
                        }
                    ]
                },
                {
                    "name": "getHeaders",
                    "parameters": []
                },
                {
                    "name": "hasHeader",
                    "parameters": [
                        {
                            "name": "$name"
                        }
                    ]
                },
                {
                    "name": "getHeader",
                    "parameters": [
                        {
                            "name": "$name"
                        }
                    ]
                },
                {
                    "name": "getHeaderLine",
                    "parameters": [
                        {
                            "name": "$name"
                        }
                    ]
                },
                {
                    "name": "withHeader",
                    "parameters": [
                        {
                            "name": "$name"
                        },
                        {
                            "name": "$value"
                        }
                    ]
                },
                {
                    "name": "withAddedHeader",
                    "parameters": [
                        {
                            "name": "$name"
                        },
                        {
                            "name": "$value"
                        }
                    ]
                },
                {
                    "name": "withoutHeader",
                    "parameters": [
                        {
                            "name": "$name"
                        }
                    ]
                },
                {
                    "name": "getBody",
                    "parameters": []
                },
                {
                    "name": "withBody",
                    "parameters": [
                        {
                            "name": "$body",
                            "type": "Psr\\Http\\Message\\StreamInterface"
                        }
                    ]
                }
            ],
            "extends": [
                "Psr\\Http\\Message\\MessageInterface"
            ]
        },
        {
            "name": "StreamInterface",
            "namespace": "Psr\\Http\\Message",
            "methods": [
                {
                    "name": "__toString",
                    "parameters": []
                },
                {
                    "name": "close",
                    "parameters": []
                },
                {
                    "name": "detach",
                    "parameters": []
                },
                {
                    "name": "getSize",
                    "parameters": []
                },
                {
                    "name": "tell",
                    "parameters": []
                },
                {
                    "name": "eof",
                    "parameters": []
                },
                {
                    "name": "isSeekable",
                    "parameters": []
                },
                {
                    "name": "seek",
                    "parameters": [
                        {
                            "name": "$offset"
                        },
                        {
                            "name": "$whence",
                            "default": 0
                        }
                    ]
                },
                {
                    "name": "rewind",
                    "parameters": []
                },
                {
                    "name": "isWritable",
                    "parameters": []
                },
                {
                    "name": "write",
                    "parameters": [
                        {
                            "name": "$string"
                        }
                    ]
                },
                {
                    "name": "isReadable",
                    "parameters": []
                },
                {
                    "name": "read",
                    "parameters": [
                        {
                            "name": "$length"
                        }
                    ]
                },
                {
                    "name": "getContents",
                    "parameters": []
                },
                {
                    "name": "getMetadata",
                    "parameters": [
                        {
                            "name": "$key",
                            "default": null
                        }
                    ]
                }
            ]
        },
        {
            "name": "UriInterface",
            "namespace": "Psr\\Http\\Message",
            "methods": [
                {
                    "name": "getScheme",
                    "parameters": []
                },
                {
                    "name": "getAuthority",
                    "parameters": []
                },
                {
                    "name": "getUserInfo",
                    "parameters": []
                },
                {
                    "name": "getHost",
                    "parameters": []
                },
                {
                    "name": "getPort",
                    "parameters": []
                },
                {
                    "name": "getPath",
                    "parameters": []
                },
                {
                    "name": "getQuery",
                    "parameters": []
                },
                {
                    "name": "getFragment",
                    "parameters": []
                },
                {
                    "name": "withScheme",
                    "parameters": [
                        {
                            "name": "$scheme"
                        }
                    ]
                },
                {
                    "name": "withUserInfo",
                    "parameters": [
                        {
                            "name": "$user"
                        },
                        {
                            "name": "$password",
                            "default": null
                        }
                    ]
                },
                {
                    "name": "withHost",
                    "parameters": [
                        {
                            "name": "$host"
                        }
                    ]
                },
                {
                    "name": "withPort",
                    "parameters": [
                        {
                            "name": "$port"
                        }
                    ]
                },
                {
                    "name": "withPath",
                    "parameters": [
                        {
                            "name": "$path"
                        }
                    ]
                },
                {
                    "name": "withQuery",
                    "parameters": [
                        {
                            "name": "$query"
                        }
                    ]
                },
                {
                    "name": "withFragment",
                    "parameters": [
                        {
                            "name": "$fragment"
                        }
                    ]
                },
                {
                    "name": "__toString",
                    "parameters": []
                }
            ]
        },
        {
            "name": "UploadedFileInterface",
            "namespace": "Psr\\Http\\Message",
            "methods": [
                {
                    "name": "getStream",
                    "parameters": []
                },
                {
                    "name": "moveTo",
                    "parameters": [
                        {
                            "name": "$targetPath"
                        }
                    ]
                },
                {
                    "name": "getSize",
                    "parameters": []
                },
                {
                    "name": "getError",
                    "parameters": []
                },
                {
                    "name": "getClientFilename",
                    "parameters": []
                },
                {
                    "name": "getClientMediaType",
                    "parameters": []
                }
            ]
        }
    ]
}{
    "interfaces": [
        {
            "name": "CacheItemInterface",
            "namespace": "Psr\\Cache",
            "methods": [
                {
                    "name": "getKey",
                    "parameters": []
                },
                {
                    "name": "get",
                    "parameters": []
                },
                {
                    "name": "isHit",
                    "parameters": []
                },
                {
                    "name": "set",
                    "parameters": [
                        {
                            "name": "$value"
                        }
                    ]
                },
                {
                    "name": "expiresAt",
                    "parameters": [
                        {
                            "name": "$expiration"
                        }
                    ]
                },
                {
                    "name": "expiresAfter",
                    "parameters": [
                        {
                            "name": "$time"
                        }
                    ]
                }
            ]
        },
        {
            "name": "CacheItemPoolInterface",
            "namespace": "Psr\\Cache",
            "methods": [
                {
                    "name": "getItem",
                    "parameters": [
                        {
                            "name": "$key"
                        }
                    ]
                },
                {
                    "name": "getItems",
                    "parameters": [
                        {
                            "name": "$keys",
                            "default": [],
                            "type": "array"
                        }
                    ]
                },
                {
                    "name": "hasItem",
                    "parameters": [
                        {
                            "name": "$key"
                        }
                    ]
                },
                {
                    "name": "clear",
                    "parameters": []
                },
                {
                    "name": "deleteItem",
                    "parameters": [
                        {
                            "name": "$key"
                        }
                    ]
                },
                {
                    "name": "deleteItems",
                    "parameters": [
                        {
                            "name": "$keys",
                            "type": "array"
                        }
                    ]
                },
                {
                    "name": "save",
                    "parameters": [
                        {
                            "name": "$item",
                            "type": "Psr\\Cache\\CacheItemInterface"
                        }
                    ]
                },
                {
                    "name": "saveDeferred",
                    "parameters": [
                        {
                            "name": "$item",
                            "type": "Psr\\Cache\\CacheItemInterface"
                        }
                    ]
                },
                {
                    "name": "commit",
                    "parameters": []
                }
            ]
        },
        {
            "name": "CacheException",
            "namespace": "Psr\\Cache",
            "methods": []
        },
        {
            "name": "InvalidArgumentException",
            "namespace": "Psr\\Cache",
            "methods": [],
            "extends": [
                "Psr\\Cache\\CacheException"
            ]
        }
    ]
}{
    "interfaces": [
        {
            "name": "LoggerInterface",
            "namespace": "Psr\\Log",
            "methods": [
                {
                    "name": "emergency",
                    "parameters": [
                        {
                            "name": "$message"
                        },
                        {
                            "name": "$context",
                            "default": [],
                            "type": "array"
                        }
                    ]
                },
                {
                    "name": "alert",
                    "parameters": [
                        {
                            "name": "$message"
                        },
                        {
                            "name": "$context",
                            "default": [],
                            "type": "array"
                        }
                    ]
                },
                {
                    "name": "critical",
                    "parameters": [
                        {
                            "name": "$message"
                        },
                        {
                            "name": "$context",
                            "default": [],
                            "type": "array"
                        }
                    ]
                },
                {
                    "name": "error",
                    "parameters": [
                        {
                            "name": "$message"
                        },
                        {
                            "name": "$context",
                            "default": [],
                            "type": "array"
                        }
                    ]
                },
                {
                    "name": "warning",
                    "parameters": [
                        {
                            "name": "$message"
                        },
                        {
                            "name": "$context",
                            "default": [],
                            "type": "array"
                        }
                    ]
                },
                {
                    "name": "notice",
                    "parameters": [
                        {
                            "name": "$message"
                        },
                        {
                            "name": "$context",
                            "default": [],
                            "type": "array"
                        }
                    ]
                },
                {
                    "name": "info",
                    "parameters": [
                        {
                            "name": "$message"
                        },
                        {
                            "name": "$context",
                            "default": [],
                            "type": "array"
                        }
                    ]
                },
                {
                    "name": "debug",
                    "parameters": [
                        {
                            "name": "$message"
                        },
                        {
                            "name": "$context",
                            "default": [],
                            "type": "array"
                        }
                    ]
                },
                {
                    "name": "log",
                    "parameters": [
                        {
                            "name": "$level"
                        },
                        {
                            "name": "$message"
                        },
                        {
                            "name": "$context",
                            "default": [],
                            "type": "array"
                        }
                    ]
                }
            ]
        },
        {
            "name": "LoggerAwareInterface",
            "namespace": "Psr\\Log",
            "methods": [
                {
                    "name": "setLogger",
                    "parameters": [
                        {
                            "name": "$logger",
                            "type": "Psr\\Log\\LoggerInterface"
                        }
                    ]
                }
            ]
        }
    ]
}{
    "interfaces": [
        {
            "name": "LinkInterface",
            "namespace": "Psr\\Link",
            "methods": [
                {
                    "name": "getHref",
                    "arguments": []
                },
                {
                    "name": "isTemplated",
                    "arguments": []
                },
                {
                    "name": "getRels",
                    "arguments": []
                },
                {
                    "name": "getAttributes",
                    "arguments": []
                }
            ]
        },
        {
            "name": "EvolvableLinkInterface",
            "namespace": "Psr\\Link",
            "extends": "Psr\\Link\\LinkInterface",
            "methods": [
                {
                    "name": "getHref",
                    "arguments": [
                        {
                            "name": "$withHref"
                        }
                    ]
                },
                {
                    "name": "withRel",
                    "arguments": [
                        {
                            "name": "$rel"
                        }
                    ]
                },
                {
                    "name": "withoutRel",
                    "arguments": [
                        {
                            "name": "$rel"
                        }
                    ]
                },
                {
                    "name": "withAttribute",
                    "arguments": [
                        {
                            "name": "$attribute"
                        },
                        {
                            "name": "$value"
                        }
                    ]
                },
                {
                    "name": "withoutAttribute",
                    "arguments": [
                        {
                            "name": "$attribute"
                        }
                    ]
                }
            ]
        },
        {
            "name": "LinkProviderInterface",
            "namespace": "Psr\\Link",
            "methods": [
                {
                    "name": "getLinks",
                    "arguments": []
                },
                {
                    "name": "getLinkByRel",
                    "arguments": [
                        {
                            "name": "$rel"
                        }
                    ]
                }
            ]
        },
        {
            "name": "EvolvableLinkProviderInterface",
            "namespace": "Psr\\Link",
            "methods": [
                {
                    "name": "withLink",
                    "arguments": [
                        {
                            "name": "$link",
                            "typehint": "Psr\\Link\\LinkInterface"
                        }
                    ]
                },
                {
                    "name": "withoutLink",
                    "arguments": [
                        {
                            "name": "$link",
                            "typehint": "Psr\\Link\\LinkInterface"
                        }
                    ]
                },
                {
                    "name": "getLinkByRel",
                    "arguments": [
                        {
                            "name": "$rel"
                        }
                    ]
                }
            ]
        }
    ]
}functions[] =   igbinary_unserialize
functions[] =   igbinary_serialize
functions[] =   igbinary_serialize
functions[] =   igbinary_unserialize
functions[] =   igbinary_unserialize
functions[] =   igbinary_serialize
functions[] =   igbinary_serialize
functions[] =   igbinary_unserialize

constants[] = 

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = 

constants[] = 'AMQP_NOPARAM';
constants[] = 'AMQP_DURABLE';
constants[] = 'AMQP_PASSIVE';
constants[] = 'AMQP_EXCLUSIVE';
constants[] = 'AMQP_AUTODELETE';
constants[] = 'AMQP_INTERNAL';
constants[] = 'AMQP_NOLOCAL';
constants[] = 'AMQP_AUTOACK';
constants[] = 'AMQP_IFEMPTY';
constants[] = 'AMQP_IFUNUSED';
constants[] = 'AMQP_MANDATORY';
constants[] = 'AMQP_IMMEDIATE';
constants[] = 'AMQP_MULTIPLE';
constants[] = 'AMQP_NOWAIT';
constants[] = 'AMQP_EX_TYPE_DIRECT';
constants[] = 'AMQP_EX_TYPE_FANOUT';
constants[] = 'AMQP_EX_TYPE_TOPIC';
constants[] = 'AMQP_EX_TYPE_HEADER';

classes[] = AMQPConnection
classes[] = AMQPChannel
classes[] = AMQPExchange
classes[] = AMQPQueue
classes[] = AMQPEnvelope

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = bcadd
functions[] = bccomp
functions[] = bcdiv
functions[] = bcmod
functions[] = bcmul
functions[] = bcpow
functions[] = bcpowmod
functions[] = bcscale
functions[] = bcsqrt
functions[] = bcsub

constants[] = 

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

function[AppendIterator.getIteratorIndex()] = "AppendIterator::getIteratorIndex"
function[cairo_status_to_string] = "Cairo::statusToString"
function[cairo_version] = "Cairo::version"
function[cairo_append_path] = "CairoContext::appendPath"
function[cairo_arc_negative] = "CairoContext::arcNegative"
function[cairo_clip_extents] = "CairoContext::clipExtents"
function[cairo_copy_path] = "CairoContext::copyPath"
function[cairo_copy_path_flat] = "CairoContext::copyPathFlat"
function[cairo_device_to_user] = "CairoContext::deviceToUser"
function[cairo_device_to_user_distance] = "CairoContext::deviceToUserDistance"
function[cairo_get_current_point] = "CairoContext::getCurrentPoint"
function[Classname::Method()] = "CairoContext::getFontFace"
function[Classname::Method()] = "CairoContext::getFontMatrix"
function[Classname::Method()] = "CairoContext::getFontOptions"
function[Classname::Method()] = "CairoContext::getMatrix"
function[cairo_has_current_point] = "CairoContext::hasCurrentPoint"
function[cairo_new_path] = "CairoContext::newPath"
function[Classname::Method()] = "CairoContext::rotate"
function[Classname::Method()] = "CairoContext::setAntialias"
function[cairo_set_font_face] = "CairoContext::setFontFace"
function[Classname::Method()] = "CairoContext::setMatrix"
function[Classname::Method()] = "CairoContext::setSource"
function[Classname::Method()] = "CairoContext::setSourceRGB"
function[Classname::Method()] = "CairoContext::showPage"
function[Classname::Method()] = "CairoContext::status"
function[Classname::Method()] = "CairoContext::textExtents"
function[Classname::Method()] = "CairoContext::translate"
function[Classname::Method()] = "CairoFontOptions::status"
function[cairo_matrix_init] = "CairoMatrix::__construct"
function[cairo_matrix_init_identity] = "CairoMatrix::initIdentity"
function[cairo_matrix_init_rotate] = "CairoMatrix::initRotate"
function[cairo_matrix_init_scale] = "CairoMatrix::initScale"
function[cairo_matrix_init_translate] = "CairoMatrix::initTranslate"
function[Classname::Method()] = "CairoScaledFont::status"
function[Classname::Method()] = "CairoSurface::getFontOptions"
function[Classname::Method()] = "CairoSurface::status"
function[collator_asort] = "Collator::asort"
function[collator_compare] = "Collator::compare"
function[collator_create] = "Collator::create"
function[collator_get_error_code] = "Collator::getErrorCode"
function[collator_get_error_message] = "Collator::getErrorMessage"
function[collator_get_sort_key] = "Collator::getSortKey"
function[collator_sort] = "Collator::sort"
function[collator_sort_with_sort_keys] = "Collator::sortWithSortKeys"
function[curl_file_create] = "CURLFile::__construct"
function[callback] = "EventHttp::setCallback"
function[callback] = "EventHttp::setDefaultCallback"
function[callback] = "EventHttpRequest::__construct"
function[callback] = "EventListener::setCallback"
function[callback] = "EventListener::setErrorCallback"
function[EvPrepare()] = "EvLoop::prepare"
function[finfo_buffer] = "finfo::buffer"
function[finfo_file] = "finfo::file"
function[finfo_open] = "finfo::__construct"
function[finfo_set_flags] = "finfo::set_flags"
function[maxdb_autocommit] = "maxdb::auto_commit"
function[maxdb_change_user] = "maxdb::change_user"
function[maxdb_character_set_name] = "maxdb::character_set_name"
function[maxdb_close] = "maxdb::close"
function[maxdb_commit] = "maxdb::commit"
function[maxdb_connect] = "maxdb::__construct"
function[maxdb_data_seek] = "maxdb_result::data_seek"
function[maxdb_disable_reads_from_master] = "maxdb::disable_reads_from_master"
function[maxdb_fetch_array] = "maxdb_result::fetch_array"
function[maxdb_fetch_assoc] = "maxdb_result::fetch_assoc"
function[maxdb_fetch_field_direct] = "maxdb_result::fetch_field_direct"
function[maxdb_fetch_field] = "maxdb_result::fetch_field"
function[maxdb_fetch_fields] = "maxdb_result::fetch_fields"
function[maxdb_fetch_object] = "maxdb_result::fetch_object"
function[maxdb_fetch_row] = "maxdb_result::fetch_row"
function[maxdb_field_count] = "maxdb::field_count"
function[maxdb_field_seek] = "maxdb_result::field_seek"
function[maxdb_free_result] = "maxdb_result::free"
function[maxdb_kill] = "maxdb::kill"
function[maxdb_multi_query] = "maxdb::multi_query"
function[maxdb_options] = "maxdb::options"
function[maxdb_ping] = "maxdb::ping"
function[maxdb_prepare] = "maxdb::prepare"
function[maxdb_query] = "maxdb::query"
function[maxdb_real_connect] = "maxdb::real_connect"
function[maxdb_real_escape_string] = "maxdb::real_escape_string"
function[maxdb_real_query] = "maxdb::real_query"
function[maxdb_rollback] = "maxdb::rollback"
function[maxdb_rpl_query_type] = "maxdb::rpl_query_type"
function[maxdb_send_query] = "maxdb::send_query"
function[maxdb_ssl_set] = "maxdb::ssl_set"
function[maxdb_stat] = "maxdb::stat"
function[maxdb_stmt_bind_result] = "maxdb_stmt::bind_result"
function[maxdb_stmt_close_long_data] = "maxdb_stmt::close_long_data"
function[maxdb_stmt_close] = "maxdb_stmt::close"
function[maxdb_stmt_data_seek] = "maxdb_stmt::data_seek"
function[maxdb_stmt_execute] = "maxdb_stmt::execute"
function[maxdb_stmt_fetch] = "maxdb_stmt::fetch"
function[maxdb_stmt_free_result] = "maxdb_stmt::free_result"
function[maxdb_stmt_init] = "maxdb::stmt_init"
function[maxdb_stmt_prepare] = "maxdb_stmt::prepare"
function[maxdb_stmt_reset] = "maxdb_stmt::reset"
function[maxdb_stmt_result_metadata] = "maxdb_stmt::result_metadata"
function[maxdb_stmt_send_long_data] = "maxdb_stmt::stmt_send_long_data"
function[maxdb_stmt_store_result] = "maxdb_stmt::store_result"
function[maxdb_store_result] = "maxdb::store_result"
function[maxdb_use_result] = "maxdb::use_result"
function[mysqli_disable_reads_from_master] = "mysqli::disable_reads_from_master"
function[sqlite_busy_timeout] = "SQLiteDatabase::busyTimeout"
function[sqlite_changes] = "SQLiteDatabase::changes"
function[sqlite_create_aggregate] = "SQLiteDatabase::createAggregate"
function[sqlite_create_function] = "SQLiteDatabase::createFunction"
function[sqlite_fetch_column_types] = "SQLiteDatabase::fetchColumnTypes"
function[sqlite_has_prev] = "SQLiteResult::hasPrev"
function[sqlite_last_error] = "SQLiteDatabase::lastError"
function[sqlite_last_insert_rowid] = "SQLiteDatabase::lastInsertRowid"
function[sqlite_num_rows] = "SQLiteResult::numRows"
function[sqlite_open] = "SQLiteDatabase::__construct"
function[sqlite_prev] = "SQLiteResult::prev"
function[sqlite_rewind] = "SQLiteResult::rewind"
function[sqlite_seek] = "SQLiteResult::seek"
function[sqlite_single_query] = "SQLiteDatabase::singleQuery"
function[xmlwriter_end_dtd_attlist] = "XMLWriter::endDTDAttlist"
function[xmlwriter_end_dtd_element] = "XMLWriter::endDTDElement"
function[xmlwriter_end_dtd_entity] = "XMLWriter::endDTDEntity"
function[xmlwriter_flush] = "XMLWriter::flush"
function[xmlwriter_full_end_element] = "XMLWriter::fullEndElement"
function[xmlwriter_set_indent_string] = "XMLWriter::setIndentString"
function[xmlwriter_start_attribute_ns] = "XMLWriter::startAttributeNS"
function[xmlwriter_start_dtd_attlist] = "XMLWriter::startDTDAttlist"
function[xmlwriter_start_dtd_element] = "XMLWriter::startDTDElement"
function[xmlwriter_start_dtd_entity] = "XMLWriter::startDTDEntity"
function[xmlwriter_start_element_ns] = "XMLWriter::startElementNS"
function[xmlwriter_text] = "XMLWriter::text"
function[xmlwriter_write_attribute_ns] = "XMLWriter::writeAttributeNS"
function[xmlwriter_write_dtd_attlist] = "XMLWriter::writeDTDAttlist"
function[xmlwriter_write_dtd_element] = "XMLWriter::writeDTDElement"
function[xmlwriter_write_dtd_entity] = "XMLWriter::writeDTDEntity"
function[xmlwriter_write_element_ns] = "XMLWriter::writeElementNS"
function[addTaskBackground()] = "GearmanClient::addTaskBackground"
function[GearmanCient::setContext()] = "GearmanClient::setData"
function[HaruPage::setCurrentFont()] = "HaruDoc::getFont"
function[HttpResponse::getCachel()] = "HttpResponse::setCache"
function[intlcal_add] = "IntlCalendar::add"
function[intlcal_after] = "IntlCalendar::after"
function[intlcal_before] = "IntlCalendar::before"
function[intlcal_clear] = "IntlCalendar::clear"
function[intlcal_equals] = "IntlCalendar::equals"
function[intlcal_field_difference] = "IntlCalendar::fieldDifference"
function[intlcal_from_date_time] = "IntlCalendar::fromDateTime"
function[intlcal_get] = "IntlCalendar::get"
function[intlcal_get_actual_maximum] = "IntlCalendar::getActualMaximum"
function[intlcal_get_actual_minimum] = "IntlCalendar::getActualMinimum"
function[intlcal_get_available_locales] = "IntlCalendar::getAvailableLocales"
function[intlcal_get_day_of_week_type] = "IntlCalendar::getDayOfWeekType"
function[intlcal_get_error_code] = "IntlCalendar::getErrorCode"
function[intlcal_get_error_message] = "IntlCalendar::getErrorMessage"
function[intlcal_get_first_day_of_week] = "IntlCalendar::getFirstDayOfWeek"
function[intlcal_get_greatest_minimum] = "IntlCalendar::getGreatestMinimum"
function[intlcal_get_keyword_values_for_locale] = "IntlCalendar::getKeywordValuesForLocale"
function[intlcal_get_least_maximum] = "IntlCalendar::getLeastMaximum"
function[intlcal_get_locale] = "IntlCalendar::getLocale"
function[intlcal_get_maximum] = "IntlCalendar::getMaximum"
function[intlcal_get_minimal_days_in_first_week] = "IntlCalendar::getMinimalDaysInFirstWeek"
function[intlcal_get_minimum] = "IntlCalendar::getMinimum"
function[intlcal_get_now] = "IntlCalendar::getNow"
function[intlcal_get_repeated_wall_time_option] = "IntlCalendar::getRepeatedWallTimeOption"
function[intlcal_get_skipped_wall_time_option] = "IntlCalendar::getSkippedWallTimeOption"
function[intlcal_get_time] = "IntlCalendar::getTime"
function[intlcal_get_type] = "IntlCalendar::getType"
function[intlcal_get_weekend_transition] = "IntlCalendar::getWeekendTransition"
function[intlcal_in_daylight_time] = "IntlCalendar::inDaylightTime"
function[intlcal_is_equivalent_to] = "IntlCalendar::isEquivalentTo"
function[intlcal_is_lenient] = "IntlCalendar::isLenient"
function[intlcal_is_set] = "IntlCalendar::isSet"
function[intlcal_is_weekend] = "IntlCalendar::isWeekend"
function[intlcal_roll] = "IntlCalendar::roll"
function[intlcal_set_first_day_of_week] = "IntlCalendar::setFirstDayOfWeek"
function[intlcal_set_lenient] = "IntlCalendar::setLenient"
function[intlcal_get_minimal_days_in_first_week] = "IntlCalendar::setMinimalDaysInFirstWeek"
function[intlcal_set_repeated_wall_time_option] = "IntlCalendar::setRepeatedWallTimeOption"
function[intlcal_set_skipped_wall_time_option] = "IntlCalendar::setSkippedWallTimeOption"
function[intlcal_set_time] = "IntlCalendar::setTime"
function[intlcal_set_time_zone] = "IntlCalendar::setTimeZone"
function[datefmt_format] = "IntlDateFormatter::format"
function[datefmt_format_object] = "IntlDateFormatter::formatObject"
function[datefmt_get_calendar] = "IntlDateFormatter::getCalendar"
function[datefmt_get_calendar_object] = "IntlDateFormatter::getCalendarObject"
function[datefmt_get_datetype] = "IntlDateFormatter::getDateType"
function[datefmt_get_error_code] = "IntlDateFormatter::getErrorCode"
function[datefmt_get_error_message] = "IntlDateFormatter::getErrorMessage"
function[datefmt_get_locale] = "IntlDateFormatter::getLocale"
function[datefmt_get_pattern] = "IntlDateFormatter::getPattern"
function[datefmt_get_timetype] = "IntlDateFormatter::getTimeType"
function[datefmt_get_timezone] = "IntlDateFormatter::getTimeZone"
function[datefmt_get_timezone_id] = "IntlDateFormatter::getTimeZoneId"
function[datefmt_is_lenient] = "IntlDateFormatter::isLenient"
function[datefmt_localtime] = "IntlDateFormatter::localtime"
function[datefmt_parse] = "IntlDateFormatter::parse"
function[datefmt_set_calendar] = "IntlDateFormatter::setCalendar"
function[datefmt_set_lenient] = "IntlDateFormatter::setLenient"
function[datefmt_set_pattern] = "IntlDateFormatter::setPattern"
function[datefmt_set_timezone] = "IntlDateFormatter::setTimeZone"
function[datefmt_set_timezone_id] = "IntlDateFormatter::setTimeZoneId"
function[intltz_get_error_code] = "IntlTimeZone::getErrorCode"
function[intltz_get_error_message] = "IntlTimeZone::getErrorMessage"
function[locale_accept_from_http] = "Locale::acceptFromHttp"
function[locale_compose] = "Locale::composeLocale"
function[locale_get_all_variants] = "Locale::getAllVariants"
function[locale_get_display_language] = "Locale::getDisplayLanguage"
function[locale_get_display_name] = "Locale::getDisplayName"
function[locale_get_display_region] = "Locale::getDisplayRegion"
function[locale_get_display_script] = "Locale::getDisplayScript"
function[locale_get_display_variant] = "Locale::getDisplayVariant"
function[locale_get_primary_language] = "Locale::getPrimaryLanguage"
function[locale_lookup] = "Locale::lookup"
function[locale_parse] = "Locale::parseLocale"
function[Lua::__call] = "Lua::call"
function[Memcached::get*()] = "Memcached::cas"
function[msgfmt_format] = "MessageFormatter::format"
function[msgfmt_format_message] = "MessageFormatter::formatMessage"
function[msgfmt_get_error_code] = "MessageFormatter::getErrorCode"
function[msgfmt_get_error_message] = "MessageFormatter::getErrorMessage"
function[msgfmt_get_locale] = "MessageFormatter::getLocale"
function[msgfmt_get_pattern] = "MessageFormatter::getPattern"
function[msgfmt_parse] = "MessageFormatter::parse"
function[msgfmt_parse_message] = "MessageFormatter::parseMessage"
function[msgfmt_set_pattern] = "MessageFormatter::setPattern"
function[mysqli_embedded_server_end] = "mysqli_driver::embedded_server_end"
function[mysqli_embedded_server_start] = "mysqli_driver::embedded_server_start"
function[mysqli_data_seek] = "mysqli_result::data_seek"
function[mysqli_fetch_all] = "mysqli_result::fetch_all"
function[mysqli_fetch_array] = "mysqli_result::fetch_array"
function[mysqli_fetch_assoc] = "mysqli_result::fetch_assoc"
function[mysqli_fetch_field_direct] = "mysqli_result::fetch_field_direct"
function[mysqli_fetch_field] = "mysqli_result::fetch_field"
function[mysqli_fetch_fields] = "mysqli_result::fetch_fields"
function[mysqli_fetch_object] = "mysqli_result::fetch_object"
function[mysqli_fetch_row] = "mysqli_result::fetch_row"
function[mysqli_field_seek] = "mysqli_result::field_seek"
function[mysqli_stmt_attr_get] = "mysqli_stmt::attr_get"
function[mysqli_stmt_attr_set] = "mysqli_stmt::attr_set"
function[mysqli_stmt_bind_param] = "mysqli_stmt::bind_param"
function[mysqli_stmt_bind_result] = "mysqli_stmt::bind_result"
function[mysqli_stmt_close] = "mysqli_stmt::close"
function[mysqli_stmt_data_seek] = "mysqli_stmt::data_seek"
function[mysqli_stmt_execute] = "mysqli_stmt::execute"
function[mysqli_stmt_fetch] = "mysqli_stmt::fetch"
function[mysqli_stmt_free_result] = "mysqli_stmt::free_result"
function[mysqli_stmt_get_result] = "mysqli_stmt::get_result"
function[mysqli_stmt_get_warnings] = "mysqli_stmt::get_warnings"
function[mysqli_stmt_more_results] = "mysqli_stmt::more_results"
function[mysqli_stmt_prepare] = "mysqli_stmt::prepare"
function[mysqli_stmt_reset] = "mysqli_stmt::reset"
function[mysqli_stmt_result_metadata] = "mysqli_stmt::result_metadata"
function[mysqli_stmt_send_long_data] = "mysqli_stmt::send_long_data"
function[mysqli_stmt_store_result] = "mysqli_stmt::store_result"
function[mysqli_begin_transaction] = "mysqli::begin_transaction"
function[mysqli_close] = "mysqli::close"
function[mysqli_debug] = "mysqli::debug"
function[mysqli_dump_debug_info] = "mysqli::dump_debug_info"
function[mysqli_get_client_info] = "mysqli::get_client_info"
function[mysqli_get_connection_stats] = "mysqli::get_connection_stats"
function[mysqli_get_warnings] = "mysqli::get_warnings"
function[mysqli_init] = "mysqli::init"
function[mysqli_more_results] = "mysqli::more_results"
function[mysqli_next_result] = "mysqli::next_result"
function[mysqli_options] = "mysqli::options"
function[mysqli_poll] = "mysqli::poll"
function[mysqli_result::more-results()] = "mysqli_result::next-result()"
function[mysqli_result::more-results()] = "mysqli_result::next-result()"
function[mysqli_real_query] = "mysqli::real_query"
function[mysqli_reap_async_query] = "mysqli::reap_async_query"
function[mysqli_refresh] = "mysqli::refresh"
function[mysqli_release_savepoint] = "mysqli::release_savepoint"
function[mysqli_rpl_query_type] = "mysqli::rpl_query_type"
function[mysqli_savepoint] = "mysqli::savepoint"
function[mysqli_send_query] = "mysqli::send_query"
function[mysqli_ssl_set] = "mysqli::ssl_set"
function[mysqli_stmt_init] = "mysqli::stmt_init"
function[mysqli_store_result] = "mysqli::store_result"
function[normalizer_normalize] = "Normalizer::normalize"
function[numfmt_format] = "NumberFormatter::format"
function[numfmt_format_currency] = "NumberFormatter::formatCurrency"
function[numfmt_get_attribute] = "NumberFormatter::getAttribute"
function[numfmt_get_error_code] = "NumberFormatter::getErrorCode"
function[numfmt_get_error_message] = "NumberFormatter::getErrorMessage"
function[numfmt_get_locale] = "NumberFormatter::getLocale"
function[numfmt_get_pattern] = "NumberFormatter::getPattern"
function[numfmt_get_symbol] = "NumberFormatter::getSymbol"
function[numfmt_get_text_attribute] = "NumberFormatter::getTextAttribute"
function[numfmt_parse] = "NumberFormatter::parse"
function[numfmt_parse_currency] = "NumberFormatter::parseCurrency"
function[numfmt_set_attribute] = "NumberFormatter::setAttribute"
function[numfmt_set_pattern] = "NumberFormatter::setPattern"
function[numfmt_set_symbol] = "NumberFormatter::setSymbol"
function[numfmt_set_text_attribute] = "NumberFormatter::setTextAttribute"
function[pdo_drivers] = "PDO::getAvailableDrivers"
function[filter()] = "php_user_filter::filter"
function[filter()] = "php_user_filter::onCreate"
function[rar_close] = "RarArchive::close"
function[rar_comment_get] = "RarArchive::getComment"
function[rar_list] = "RarArchive::getEntries"
function[rar_entry_get] = "RarArchive::getEntry"
function[rar_broken_is] = "RarArchive::isBroken"
function[rar_solid_is] = "RarArchive::isSolid"
function[rar_open] = "RarArchive::open"
function[rar_allow_broken_set] = "RarArchive::setAllowBroken"
function[RecursiveCachingIterator::__toString()] = "RecursiveCachingIterator::__construct"
function[RecursiveDirectoryIterator()] = "RecursiveDirectoryIterator::__construct"
function[RecursiveIteratorIterator::getChildren()] = "RecursiveIteratorIterator::beginChildren"
function[RecursiveIterator()] = "RecursiveIteratorIterator::callGetChildren"
function[ReflectionFunctionAbstract::()] = "ReflectionFunctionAbstract::isClosure"
function[ReflectionClass::clone()] = "ReflectionFunctionAbstract::__toString"
function[ReflectionParameter::toString()] = "ReflectionParameter::__clone"
function[ReflectionParameter::toString()] = "ReflectionParameter::export"
function[ReflectionParameter::getValue()] = "ReflectionParameter::getName"
function[ReflectionProperty::toString()] = "ReflectionProperty::export"
function[ReflectionProperty::()] = "ReflectionProperty::__toString"
function[Reflection::__toString()] = "Reflector::export"
function[resourcebundle_count] = "ResourceBundle::count"
function[resourcebundle_get] = "ResourceBundle::get"
function[resourcebundle_get_error_code] = "ResourceBundle::getErrorCode"
function[resourcebundle_get_error_message] = "ResourceBundle::getErrorMessage"
function[resourcebundle_locales] = "ResourceBundle::getLocales"
function[SolrQuery::deleteByQuery()] = "SolrClient::deleteByQuery"
function[SplTempFileObject()] = "SplTempFileObject::__construct"
function[stomp_abort] = "Stomp::abort"
function[stomp_ack] = "Stomp::ack"
function[stomp_begin] = "Stomp::begin"
function[stomp_commit] = "Stomp::commit"
function[stomp_connect] = "Stomp::__construct"
function[stomp_close] = "Stomp::__destruct"
function[stomp_error] = "Stomp::error"
function[stomp_get_read_timeout] = "Stomp::getReadTimeout"
function[stomp_get_session_id] = "Stomp::getSessionId"
function[stomp_send] = "Stomp::send"
function[stomp_set_read_timeout] = "Stomp::setReadTimeout"
function[stomp_subscribe] = "Stomp::subscribe"
function[stomp_unsubscribe] = "Stomp::unsubscribe"
function[SVM::predict()] = "SVMModel::predict_probability"
function[setLeftFill] = "SWFShape::setLeftFill"
function[setLine] = "SWFShape::setLine"
function[setRightFill] = "SWFShape::setRightFill"
function[tidy_get_body] = "tidy::body"
function[tidy_diagnose] = "tidy::diagnose"
function[tidy_get_html_ver] = "tidy::getHtmlVer"
function[tidy_getopt] = "tidy::getOpt"
function[tidy_get_opt_doc] = "tidy::getOptDoc"
function[tidy_get_head] = "tidy::head"
function[tidy_get_html] = "tidy::html"
function[tidy_get_root] = "tidy::root"
function[transliterator_create] = "Transliterator::create"
function[transliterator_create_from_rules] = "Transliterator::createFromRules"
function[transliterator_get_error_code] = "Transliterator::getErrorCode"
function[transliterator_get_error_message] = "Transliterator::getErrorMessage"
function[transliterator_transliterate] = "Transliterator::transliterate"
function[Yaf_Route_Regex::_construct()] = "Yaf_Route_Regex::route"
function[Yaf_View_Interface::clear()] = "Yaf_View_Simple::assign"
functions[] = mail
functions[] = ezmlm_hash

constants[] = 

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = bzclose
functions[] = bzcompress
functions[] = bzdecompress
functions[] = bzerrno
functions[] = bzerror
functions[] = bzerrstr
functions[] = bzflush
functions[] = bzopen
functions[] = bzread
functions[] = bzwrite

constants[] = 

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions0[] = setlocale;
functions0[] = finfo_open;
functions0[] = get_html_translation_table;
functions0[] = ldap_escape;
functions0[] = mysqli_begin_transaction;
functions0[] = mysqli_report;
functions0[] = phpcredits
functions0[] = http_support

functions1[] = glob;
functions1[] = pathinfo;
functions1[] = file;
functions1[] = dio_open;
functions1[] = finfo_set_flags;
functions1[] = extract;
functions1[] = file;
functions1[] = get_html_translation_table;
functions1[] = htmlentities;
functions1[] = htmlspecialchars_decode;
functions1[] = htmlspecialchars;
functions1[] = html_entity_decode;
functions1[] = openssl_pkcs7_sign;
functions1[] = ssh2_fingerprint;
functions1[] = mysqli_rollback;
functions1[] = mysqli_commit;
functions1[] = http_deflate;
functions1[] = http_parse_params;
functions1[] = http_parse_cookie;
functions1[] = runkit_import;
functions1[] = yaml_emit;
functions1[] = pg_result_status
functions1[] = sort
functions1[] = asort
functions1[] = rsort
functions1[] = ksort
functions1[] = arsort
functions1[] = krsort
functions1[] = count
functions1[] = array_unique
functions1[] = array_multisort
functions1[] = trigger_error
functions1[] = scandir
functions1[] = posix_access
functions1[] = easter_days

functions2[] = file_put_contents;
functions2[] = fseek;
functions2[] = flock;
functions2[] = parse_ini_file;
functions2[] = parse_ini_string;
functions2[] = fnmatch;
functions2[] = dio_seek;
functions2[] = finfo_buffer;
functions2[] = finfo_file;
functions2[] = ldap_escape;
functions2[] = imap_undelete;
functions2[] = ob_start;
functions2[] = preg_grep;
functions2[] = cyrus_connect;
functions2[] = socket_recvmsg;
functions2[] = socket_send;
functions2[] = stream_socket_recvfrom;
functions2[] = stream_socket_sendto;
functions2[] = stream_wrapper_register;
functions2[] = http_build_url;
functions2[] = yaml_emit;
functions2[] = yaml_emit_file;
functions2[] = stream_socket_server
functions2[] = socket_read
functions2[] = round
functions2[] = jdtojewish
functions2[] = parse_ini_file
functions2[] = parse_ini_string

functions3[] = apc_bin_dumpfile;
functions3[] = preg_match_all;
functions3[] = preg_match;
functions3[] = preg_split;
functions3[] = socket_recv;
functions3[] = socket_recvfrom;
functions3[] = socket_sendmsg;
functions3[] = socket_sendto;
functions3[] = stream_socket_server;
functions3[] = yaml_emit_file;
functions3[] = pg_select
functions3[] = str_pad
functions3[] = http_redirect

functions4[] = openssl_pkcs7_encrypt;
functions4[] = oci_fetch_all;
functions4[] = stream_socket_client;
functions4[] = fdf_set_submit_form_action;
functions4[] = runkit_method_add;
functions4[] = runkit_method_redefine;
functions4[] = stream_socket_client

functions5[] = openssl_pkcs7_encrypt;
functions5[] = openssl_pkcs7_sign;

functions6[] = mysqli_real_connect;
functions6[] = msg_receive;type[]='int';
type[]='float';
type[]='bool';
type[]='string';
type[]='true';
type[]='false';
type[]='null';
type[]='object';
type[]='mixed';
type[]='numeric';
type[]='void';
type[]='callable';
type[]='array';classes[] = '\swift'
classes[] = '\phpmailer';
classes[] = '\simplemail';
classes[] = '\smail';

functions[] = '\mail';
functions[] = '\wp_mail';
headers[] = 'Accept';
headers[] = 'Accept-Charset';
headers[] = 'Accept-Encoding';
headers[] = 'Accept-Language';
headers[] = 'Accept-Ranges';
headers[] = 'Age';
headers[] = 'Allow';
headers[] = 'Authorization';
headers[] = 'Cache-Control';
headers[] = 'Connection';
headers[] = 'Content-Encoding';
headers[] = 'Content-Language';
headers[] = 'Content-Length';
headers[] = 'Content-Location';
headers[] = 'Content-MD5';
headers[] = 'Content-Range';
headers[] = 'Content-Type';
headers[] = 'Date';
headers[] = 'ETag';
headers[] = 'Expect';
headers[] = 'Expires';
headers[] = 'From';
headers[] = 'Host';
headers[] = 'If-Match';
headers[] = 'If-Modified-Since';
headers[] = 'If-None-Match';
headers[] = 'If-Range';
headers[] = 'If-Unmodified-Since';
headers[] = 'Last-Modified';
headers[] = 'Location';
headers[] = 'Max-Forwards';
headers[] = 'Pragma';
headers[] = 'Proxy-Authenticate';
headers[] = 'Proxy-Authorization';
headers[] = 'Range';
headers[] = 'Byte Ranges';
headers[] = 'Range Retrieval Requests';
headers[] = 'Referer';
headers[] = 'Retry-After';
headers[] = 'Server';
headers[] = 'TE';
headers[] = 'Trailer';
headers[] = 'Transfer-Encoding';
headers[] = 'Upgrade';
headers[] = 'User-Agent';
headers[] = 'Vary';
headers[] = 'Via';
headers[] = 'Warning';
headers[] = 'WWW-Authenticate';functions[] = "ncurses_addch";
functions[] = "ncurses_addchnstr";
functions[] = "ncurses_addchstr";
functions[] = "ncurses_addnstr";
functions[] = "ncurses_addstr";
functions[] = "ncurses_assume_default_colors";
functions[] = "ncurses_attroff";
functions[] = "ncurses_attron";
functions[] = "ncurses_attrset";
functions[] = "ncurses_baudrate";
functions[] = "ncurses_beep";
functions[] = "ncurses_bkgd";
functions[] = "ncurses_bkgdset";
functions[] = "ncurses_border";
functions[] = "ncurses_bottom_panel";
functions[] = "ncurses_can_change_color";
functions[] = "ncurses_cbreak";
functions[] = "ncurses_clear";
functions[] = "ncurses_clrtobot";
functions[] = "ncurses_clrtoeol";
functions[] = "ncurses_color_content";
functions[] = "ncurses_color_set";
functions[] = "ncurses_curs_set";
functions[] = "ncurses_def_prog_mode";
functions[] = "ncurses_def_shell_mode";
functions[] = "ncurses_define_key";
functions[] = "ncurses_del_panel";
functions[] = "ncurses_delay_output";
functions[] = "ncurses_delch";
functions[] = "ncurses_deleteln";
functions[] = "ncurses_delwin";
functions[] = "ncurses_doupdate";
functions[] = "ncurses_echo";
functions[] = "ncurses_echochar";
functions[] = "ncurses_end";
functions[] = "ncurses_erase";
functions[] = "ncurses_erasechar";
functions[] = "ncurses_filter";
functions[] = "ncurses_flash";
functions[] = "ncurses_flushinp";
functions[] = "ncurses_getch";
functions[] = "ncurses_getmaxyx";
functions[] = "ncurses_getmouse";
functions[] = "ncurses_getyx";
functions[] = "ncurses_halfdelay";
functions[] = "ncurses_has_colors";
functions[] = "ncurses_has_ic";
functions[] = "ncurses_has_il";
functions[] = "ncurses_has_key";
functions[] = "ncurses_hide_panel";
functions[] = "ncurses_hline";
functions[] = "ncurses_inch";
functions[] = "ncurses_init_color";
functions[] = "ncurses_init_pair";
functions[] = "ncurses_init";
functions[] = "ncurses_insch";
functions[] = "ncurses_insdelln";
functions[] = "ncurses_insertln";
functions[] = "ncurses_insstr";
functions[] = "ncurses_instr";
functions[] = "ncurses_isendwin";
functions[] = "ncurses_keyok";
functions[] = "ncurses_keypad";
functions[] = "ncurses_killchar";
functions[] = "ncurses_longname";
functions[] = "ncurses_meta";
functions[] = "ncurses_mouse_trafo";
functions[] = "ncurses_mouseinterval";
functions[] = "ncurses_mousemask";
functions[] = "ncurses_move_panel";
functions[] = "ncurses_move";
functions[] = "ncurses_mvaddch";
functions[] = "ncurses_mvaddchnstr";
functions[] = "ncurses_mvaddchstr";
functions[] = "ncurses_mvaddnstr";
functions[] = "ncurses_mvaddstr";
functions[] = "ncurses_mvcur";
functions[] = "ncurses_mvdelch";
functions[] = "ncurses_mvgetch";
functions[] = "ncurses_mvhline";
functions[] = "ncurses_mvinch";
functions[] = "ncurses_mvvline";
functions[] = "ncurses_mvwaddstr";
functions[] = "ncurses_napms";
functions[] = "ncurses_new_panel";
functions[] = "ncurses_newpad";
functions[] = "ncurses_newwin";
functions[] = "ncurses_nl";
functions[] = "ncurses_nocbreak";
functions[] = "ncurses_noecho";
functions[] = "ncurses_nonl";
functions[] = "ncurses_noqiflush";
functions[] = "ncurses_noraw";
functions[] = "ncurses_pair_content";
functions[] = "ncurses_panel_above";
functions[] = "ncurses_panel_below";
functions[] = "ncurses_panel_window";
functions[] = "ncurses_pnoutrefresh";
functions[] = "ncurses_prefresh";
functions[] = "ncurses_putp";
functions[] = "ncurses_qiflush";
functions[] = "ncurses_raw";
functions[] = "ncurses_refresh";
functions[] = "ncurses_replace_panel";
functions[] = "ncurses_reset_prog_mode";
functions[] = "ncurses_reset_shell_mode";
functions[] = "ncurses_resetty";
functions[] = "ncurses_savetty";
functions[] = "ncurses_scr_dump";
functions[] = "ncurses_scr_init";
functions[] = "ncurses_scr_restore";
functions[] = "ncurses_scr_set";
functions[] = "ncurses_scrl";
functions[] = "ncurses_show_panel";
functions[] = "ncurses_slk_attr";
functions[] = "ncurses_slk_attroff";
functions[] = "ncurses_slk_attron";
functions[] = "ncurses_slk_attrset";
functions[] = "ncurses_slk_clear";
functions[] = "ncurses_slk_color";
functions[] = "ncurses_slk_init";
functions[] = "ncurses_slk_noutrefresh";
functions[] = "ncurses_slk_refresh";
functions[] = "ncurses_slk_restore";
functions[] = "ncurses_slk_set";
functions[] = "ncurses_slk_touch";
functions[] = "ncurses_standend";
functions[] = "ncurses_standout";
functions[] = "ncurses_start_color";
functions[] = "ncurses_termattrs";
functions[] = "ncurses_termname";
functions[] = "ncurses_timeout";
functions[] = "ncurses_top_panel";
functions[] = "ncurses_typeahead";
functions[] = "ncurses_ungetch";
functions[] = "ncurses_ungetmouse";
functions[] = "ncurses_update_panels";
functions[] = "ncurses_use_default_colors";
functions[] = "ncurses_use_env";
functions[] = "ncurses_use_extended_names";
functions[] = "ncurses_vidattr";
functions[] = "ncurses_vline";
functions[] = "ncurses_waddch";
functions[] = "ncurses_waddstr";
functions[] = "ncurses_wattroff";
functions[] = "ncurses_wattron";
functions[] = "ncurses_wattrset";
functions[] = "ncurses_wborder";
functions[] = "ncurses_wclear";
functions[] = "ncurses_wcolor_set";
functions[] = "ncurses_werase";
functions[] = "ncurses_wgetch";
functions[] = "ncurses_whline";
functions[] = "ncurses_wmouse_trafo";
functions[] = "ncurses_wmove";
functions[] = "ncurses_wnoutrefresh";
functions[] = "ncurses_wrefresh";
functions[] = "ncurses_wstandend";
functions[] = "ncurses_wstandout";
functions[] = "ncurses_wvline";

constants[] = "NCURSES_BUTTON1_RELEASED";
constants[] = "NCURSES_BUTTON1_PRESSED";
constants[] = "NCURSES_BUTTON1_CLICKED";
constants[] = "NCURSES_BUTTON1_DOUBLE_CLICKED";
constants[] = "NCURSES_BUTTON1_TRIPLE_CLICKED";
constants[] = "NCURSES_BUTTON_CTRL";
constants[] = "NCURSES_BUTTON_SHIFT";
constants[] = "NCURSES_BUTTON_ALT";
constants[] = "NCURSES_ALL_MOUSE_EVENTS";
constants[] = "NCURSES_REPORT_MOUSE_POSITION";
constants[] = "NCURSES_KEY_F0";
constants[] = "NCURSES_KEY_DOWN";
constants[] = "NCURSES_KEY_UP";
constants[] = "NCURSES_KEY_LEFT";
constants[] = "NCURSES_KEY_RIGHT";
constants[] = "NCURSES_KEY_HOME";
constants[] = "NCURSES_KEY_BACKSPACE";
constants[] = "NCURSES_KEY_DL";
constants[] = "NCURSES_KEY_IL";
constants[] = "NCURSES_KEY_DC";
constants[] = "NCURSES_KEY_IC";
constants[] = "NCURSES_KEY_EIC";
constants[] = "NCURSES_KEY_CLEAR";
constants[] = "NCURSES_KEY_EOS";
constants[] = "NCURSES_KEY_EOL";
constants[] = "NCURSES_KEY_SF";
constants[] = "NCURSES_KEY_SR";
constants[] = "NCURSES_KEY_NPAGE";
constants[] = "NCURSES_KEY_PPAGE";
constants[] = "NCURSES_KEY_STAB";
constants[] = "NCURSES_KEY_CTAB";
constants[] = "NCURSES_KEY_CATAB";
constants[] = "NCURSES_KEY_SRESET";
constants[] = "NCURSES_KEY_RESET";
constants[] = "NCURSES_KEY_PRINT";
constants[] = "NCURSES_KEY_LL";
constants[] = "NCURSES_KEY_A1";
constants[] = "NCURSES_KEY_A3";
constants[] = "NCURSES_KEY_B2";
constants[] = "NCURSES_KEY_C1";
constants[] = "NCURSES_KEY_C3";
constants[] = "NCURSES_KEY_BTAB";
constants[] = "NCURSES_KEY_BEG";
constants[] = "NCURSES_KEY_CANCEL";
constants[] = "NCURSES_KEY_CLOSE";
constants[] = "NCURSES_KEY_COMMAND";
constants[] = "NCURSES_KEY_COPY";
constants[] = "NCURSES_KEY_CREATE";
constants[] = "NCURSES_KEY_END";
constants[] = "NCURSES_KEY_EXIT";
constants[] = "NCURSES_KEY_FIND";
constants[] = "NCURSES_KEY_HELP";
constants[] = "NCURSES_KEY_MARK";
constants[] = "NCURSES_KEY_MESSAGE";
constants[] = "NCURSES_KEY_MOVE";
constants[] = "NCURSES_KEY_NEXT";
constants[] = "NCURSES_KEY_OPEN";
constants[] = "NCURSES_KEY_OPTIONS";
constants[] = "NCURSES_KEY_PREVIOUS";
constants[] = "NCURSES_KEY_REDO";
constants[] = "NCURSES_KEY_REFERENCE";
constants[] = "NCURSES_KEY_REFRESH";
constants[] = "NCURSES_KEY_REPLACE";
constants[] = "NCURSES_KEY_RESTART";
constants[] = "NCURSES_KEY_RESUME";
constants[] = "NCURSES_KEY_SAVE";
constants[] = "NCURSES_KEY_SBEG";
constants[] = "NCURSES_KEY_SCANCEL";
constants[] = "NCURSES_KEY_SCOMMAND";
constants[] = "NCURSES_KEY_SCOPY";
constants[] = "NCURSES_KEY_SCREATE";
constants[] = "NCURSES_KEY_SDC";
constants[] = "NCURSES_KEY_SDL";
constants[] = "NCURSES_KEY_SELECT";
constants[] = "NCURSES_KEY_SEND";
constants[] = "NCURSES_KEY_SEOL";
constants[] = "NCURSES_KEY_SEXIT";
constants[] = "NCURSES_KEY_SFIND";
constants[] = "NCURSES_KEY_SHELP";
constants[] = "NCURSES_KEY_SHOME";
constants[] = "NCURSES_KEY_SIC";
constants[] = "NCURSES_KEY_SLEFT";
constants[] = "NCURSES_KEY_SMESSAGE";
constants[] = "NCURSES_KEY_SMOVE";
constants[] = "NCURSES_KEY_SNEXT";
constants[] = "NCURSES_KEY_SOPTIONS";
constants[] = "NCURSES_KEY_SPREVIOUS";
constants[] = "NCURSES_KEY_SPRINT";
constants[] = "NCURSES_KEY_SREDO";
constants[] = "NCURSES_KEY_SREPLACE";
constants[] = "NCURSES_KEY_SRIGHT";
constants[] = "NCURSES_KEY_SRSUME";
constants[] = "NCURSES_KEY_SSAVE";
constants[] = "NCURSES_KEY_SSUSPEND";
constants[] = "NCURSES_KEY_UNDO";
constants[] = "NCURSES_KEY_MOUSE";
constants[] = "NCURSES_KEY_MAX";
constants[] = "NCURSES_COLOR_BLACK";
constants[] = "NCURSES_COLOR_WHITE";
constants[] = "NCURSES_COLOR_RED";
constants[] = "NCURSES_COLOR_GREEN";
constants[] = "NCURSES_COLOR_YELLOW";
constants[] = "NCURSES_COLOR_BLUE";
constants[] = "NCURSES_COLOR_CYAN";
constants[] = "NCURSES_COLOR_MAGENTA";

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = xdiff_file_bdiff_size
functions[] = xdiff_file_bdiff
functions[] = xdiff_file_bpatch
functions[] = xdiff_file_diff_binary
functions[] = xdiff_file_diff
functions[] = xdiff_file_merge3
functions[] = xdiff_file_patch_binary
functions[] = xdiff_file_patch
functions[] = xdiff_file_rabdiff
functions[] = xdiff_string_bdiff_size
functions[] = xdiff_string_bdiff
functions[] = xdiff_string_bpatch
functions[] = xdiff_string_diff_binary
functions[] = xdiff_string_diff
functions[] = xdiff_string_merge3
functions[] = xdiff_string_patch_binary
functions[] = xdiff_string_patch
functions[] = xdiff_string_rabdiff

constants[] = 'XDIFF_PATCH_NORMAL';
constants[] = 'XDIFF_PATCH_REVERSE';

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = 'db2_connect';
functions[] = 'db2_pconnect';
functions[] = 'db2_autocommit';
functions[] = 'db2_bind_param';
functions[] = 'db2_close';
functions[] = 'db2_pclose';
functions[] = 'db2_column_privileges';
functions[] = 'db2_columns';
functions[] = 'db2_foreign_keys';
functions[] = 'db2_primary_keys';
functions[] = 'db2_procedure_columns';
functions[] = 'db2_procedures';
functions[] = 'db2_special_columns';
functions[] = 'db2_statistics';
functions[] = 'db2_table_privileges';
functions[] = 'db2_tables';
functions[] = 'db2_commit';
functions[] = 'db2_exec';
functions[] = 'db2_free_result';
functions[] = 'db2_prepare';
functions[] = 'db2_execute';
functions[] = 'db2_conn_errormsg';
functions[] = 'db2_stmt_errormsg';
functions[] = 'db2_conn_error';
functions[] = 'db2_stmt_error';
functions[] = 'db2_next_result';
functions[] = 'db2_num_fields';
functions[] = 'db2_num_rows';
functions[] = 'db2_field_name';
functions[] = 'db2_field_display_size';
functions[] = 'db2_field_num';
functions[] = 'db2_field_precision';
functions[] = 'db2_field_scale';
functions[] = 'db2_field_type';
functions[] = 'db2_field_width';
functions[] = 'db2_cursor_type';
functions[] = 'db2_rollback';
functions[] = 'db2_free_stmt';
functions[] = 'db2_result';
functions[] = 'db2_fetch_row';
functions[] = 'db2_fetch_assoc';
functions[] = 'db2_fetch_object';
functions[] = 'db2_fetch_array';
functions[] = 'db2_fetch_both';
functions[] = 'db2_set_option';
functions[] = 'db2_server_info';
functions[] = 'db2_client_info';
functions[] = 'db2_escape_string';
functions[] = 'db2_lob_read';
functions[] = 'db2_get_option';
functions[] = 'db2_last_insert_id';
functions[] = 'db2_connect';
functions[] = 'db2_commit';
functions[] = 'db2_pconnect';
functions[] = 'db2_autocommit';
functions[] = 'db2_bind_param';
functions[] = 'db2_close';
functions[] = 'db2_pclose';
functions[] = 'db2_columnprivileges';
functions[] = 'db2_column_privileges';
functions[] = 'db2_columns';
functions[] = 'db2_foreignkeys';
functions[] = 'db2_foreign_keys';
functions[] = 'db2_primarykeys';
functions[] = 'db2_primary_keys';
functions[] = 'db2_procedure_columns';
functions[] = 'db2_procedures';
functions[] = 'db2_specialcolumns';
functions[] = 'db2_special_columns';
functions[] = 'db2_statistics';
functions[] = 'db2_tableprivileges';
functions[] = 'db2_table_privileges';
functions[] = 'db2_tables';
functions[] = 'db2_commit';
functions[] = 'db2_exec';
functions[] = 'db2_prepare';
functions[] = 'db2_execute';
functions[] = 'db2_execute_many';
functions[] = 'db2_conn_errormsg';
functions[] = 'db2_stmt_errormsg';
functions[] = 'db2_conn_error';
functions[] = 'db2_stmt_error';
functions[] = 'db2_next_result';
functions[] = 'db2_num_fields';
functions[] = 'db2_num_rows';
functions[] = 'db2_field_name';
functions[] = 'db2_field_display_size';
functions[] = 'db2_field_num';
functions[] = 'db2_field_precision';
functions[] = 'db2_field_scale';
functions[] = 'db2_field_type';
functions[] = 'db2_field_width';
functions[] = 'db2_cursor_type';
functions[] = 'db2_rollback';
functions[] = 'db2_free_stmt';
functions[] = 'db2_result';
functions[] = 'db2_fetch_row';
functions[] = 'db2_fetch_assoc';
functions[] = 'db2_fetch_array';
functions[] = 'db2_fetch_both';
functions[] = 'db2_result_all';
functions[] = 'db2_free_result';
functions[] = 'db2_set_option';
functions[] = 'db2_setoption';
functions[] = 'db2_fetch_object';
functions[] = 'db2_server_info';
functions[] = 'db2_client_info';
functions[] = 'db2_escape_string';
functions[] = 'db2_lob_read';
functions[] = 'db2_get_option';
functions[] = 'db2_getoption';
functions[] = 'db2_last_insert_id';

constants[] = 'DB2_I5_NAMING_ON';
constants[] = 'DB2_I5_NAMING_OFF';
constants[] = 'DB2_I5_TXN_NO_COMMIT';
constants[] = 'DB2_I5_TXN_READ_UNCOMMITTED';
constants[] = 'DB2_I5_TXN_READ_COMMITTED';
constants[] = 'DB2_I5_TXN_REPEATABLE_READ';
constants[] = 'DB2_I5_TXN_SERIALIZABLE';
constants[] = 'DB2_I5_FMT_ISO';
constants[] = 'DB2_I5_FMT_USA';
constants[] = 'DB2_I5_FMT_EUR';
constants[] = 'DB2_I5_FMT_JIS';
constants[] = 'DB2_I5_FMT_MDY';
constants[] = 'DB2_I5_FMT_DMY';
constants[] = 'DB2_I5_FMT_YMD';
constants[] = 'DB2_I5_FMT_JUL';
constants[] = 'DB2_I5_FMT_JOB';
constants[] = 'DB2_I5_FMT_HMS';
constants[] = 'DB2_I5_SEP_SLASH';
constants[] = 'DB2_I5_SEP_DASH';
constants[] = 'DB2_I5_SEP_PERIOD';
constants[] = 'DB2_I5_SEP_COMMA';
constants[] = 'DB2_I5_SEP_BLANK';
constants[] = 'DB2_I5_SEP_COLON';
constants[] = 'DB2_I5_SEP_JOB';
constants[] = 'DB2_I5_FETCH_ON';
constants[] = 'DB2_I5_FETCH_OFF';
constants[] = 'DB2_I5_JOB_SORT_ON';
constants[] = 'DB2_I5_JOB_SORT_OFF';
constants[] = 'DB2_I5_DBCS_ALLOC_ON';
constants[] = 'DB2_I5_DBCS_ALLOC_OFF';
constants[] = 'DB2_FIRST_IO';
constants[] = 'DB2_ALL_IO';
constants[] = 'DB2_BINARY';
constants[] = 'DB2_CONVERT';
constants[] = 'DB2_PASSTHRU';
constants[] = 'DB2_SCROLLABLE';
constants[] = 'DB2_FORWARD_ONLY';
constants[] = 'DB2_PARAM_IN';
constants[] = 'DB2_PARAM_OUT';
constants[] = 'DB2_PARAM_INOUT';
constants[] = 'DB2_PARAM_FILE';
constants[] = 'DB2_TRUSTED_CONTEXT_ENABLE';
constants[] = 'DB2_AUTOCOMMIT_ON';
constants[] = 'DB2_AUTOCOMMIT_OFF';
constants[] = 'DB2_ROWCOUNT_PREFETCH_ON';
constants[] = 'DB2_ROWCOUNT_PREFETCH_OFF';
constants[] = 'DB2_DEFERRED_PREPARE_ON';
constants[] = 'DB2_DEFERRED_PREPARE_OFF';
constants[] = 'DB2_DOUBLE';
constants[] = 'DB2_LONG';
constants[] = 'DB2_CHAR';
constants[] = 'DB2_XML';
constants[] = 'DB2_CASE_NATURAL';
constants[] = 'DB2_CASE_LOWER';
constants[] = 'DB2_CASE_UPPER';

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

constants[] = 

functions[] = zip_open
functions[] = zip_close
functions[] = zip_read
functions[] = zip_entry_open
functions[] = zip_entry_close
functions[] = zip_entry_read
functions[] = zip_entry_filesize
functions[] = zip_entry_name
functions[] = zip_entry_compressedsize
functions[] = zip_entry_compressionmethod

classes[] = ZipArchive

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 
functions0[] = "\array_map";
functions0[] = "\assert";
functions0[] = "\call_user_func_array";
functions0[] = "\call_user_func";
functions0[] = "\forward_static_call_array";
functions0[] = "\forward_static_call";
functions0[] = "\ob_start";
functions0[] = "\register_shutdown_function";
functions0[] = "\register_tick_function";
functions0[] = "\session_set_save_handler";
functions0[] = "\set_error_handler";
functions0[] = "\set_exception_handler";
functions0[] = "\spl_autoload_register";
functions0[] = "\readline_completion_function";

functions1[] = "\array_filter";
functions1[] = "\array_reduce";
functions1[] = "\array_walk_recursive";
functions1[] = "\array_walk";
functions1[] = "\assert_options"; 
functions1[] = "\iterator_apply";
functions1[] = "\session_set_save_handler";
functions1[] = "\uasort";
functions1[] = "\uksort";
functions1[] = "\usort";
functions1[] = "\preg_replace_callback";
functions1[] = "\readline_completion_function";
functions1[] = "\xml_set_character_data_handler";
functions1[] = "\xml_set_default_handler";
functions1[] = "\xml_set_element_handler";
functions1[] = "\xml_set_end_namespace_decl_handler";
functions1[] = "\xml_set_external_entity_ref_handler";
functions1[] = "\xml_set_notation_decl_handler";
functions1[] = "\xml_set_processing_instruction_handler";
functions1[] = "\xml_set_start_namespace_decl_handler";
functions1[] = "\xml_set_unparsed_entity_decl_handler";

functions2[] = "\sqlite_create_function";
functions2[] = "\sqlite_create_aggregate";
functions2[] = "\session_set_save_handler";
functions2[] = "\xml_set_element_handler";

functions3[] = "\sqlite_create_aggregate";
functions3[] = "\session_set_save_handler";

functions4[] = "\session_set_save_handler";

functions5[] = "\session_set_save_handler";

functions6[] = "\session_set_save_handler";

functions7[] = "\session_set_save_handler";

functions_2last[] = "\array_udiff_uassoc";
functions_2last[] = "\array_uintersect_uassoc";

functions_last[] = "\array_diff_uassoc";
functions_last[] = "\array_diff_ukey";
functions_last[] = "\array_intersect_uassoc";
functions_last[] = "\array_intersect_ukey";
functions_last[] = "\array_udiff_assoc";
functions_last[] = "\array_udiff_uassoc";
functions_last[] = "\array_udiff";
functions_last[] = "\array_uintersect_assoc";
functions_last[] = "\array_uintersect_uassoc";
functions_last[] = "\array_uintersect";
functions_last[] = "\yaml_parse";
functions_last[] = "\yaml_parse_file";
functions_last[] = "\yaml_parse_url";
functions_last[] = "\yaml_emit";
functions_last[] = "\yaml_emit_file";functions[] = libxml_clear_errors
functions[] = libxml_disable_entity_loader
functions[] = libxml_get_errors
functions[] = libxml_get_last_error
functions[] = libxml_set_external_entity_loader
functions[] = libxml_set_streams_context
functions[] = libxml_use_internal_errors

classes[] = libXMLError 

constants[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

classes[] = 'exception';
classes[] = 'errorexception';
classes[] = 'closedgeneratorexception';
classes[] = 'jsonexception';
classes[] = 'reflectionexception';
classes[] = 'logicexception';
classes[] = 'badfunctioncallexception';
classes[] = 'badmethodcallexception';
classes[] = 'domainexception';
classes[] = 'invalidargumentexception';
classes[] = 'lengthexception';
classes[] = 'outofrangeexception';
classes[] = 'runtimeexception';
classes[] = 'outofboundsexception';
classes[] = 'overflowexception';
classes[] = 'rangeexception';
classes[] = 'underflowexception';
classes[] = 'unexpectedvalueexception';sapi[] = 'apache2handler';
sapi[] = 'aolserver';
sapi[] = 'apache';
sapi[] = 'apache2filter';
sapi[] = 'caudium';
sapi[] = 'cgi';
sapi[] = 'cgi-fcgi';
sapi[] = 'cli';
sapi[] = 'cli-server';
sapi[] = 'continuity';
sapi[] = 'embed';
sapi[] = 'fpm-fcgi';
sapi[] = 'fpm';
sapi[] = 'isapi';
sapi[] = 'litespeed';
sapi[] = 'milter';
sapi[] = 'nsapi';
sapi[] = 'phttpd';
sapi[] = 'pi3web';
sapi[] = 'roxen';
sapi[] = 'thttpd';
sapi[] = 'tux';
sapi[] = 'webjames';
sapi[] = 'phpdbg';functions[] = memcache_debug
functions[] = memcache_pconnect
functions[] = memcache_add
functions[] = memcache_add_server
functions[] = memcache_close
functions[] = memcache_connect
functions[] = memcache_decrement
functions[] = memcache_delete
functions[] = memcache_flush
functions[] = memcache_get
functions[] = memcache_get_server_status
functions[] = memcache_get_stats
functions[] = memcache_increment
functions[] = memcache_init
functions[] = memcache_set
functions[] = memcache_set_compress_threshold

constants[] = 'MEMCACHE_COMPRESSED';
constants[] = 'MEMCACHE_HAVE_SESSION';
constants[] = 'MEMCACHE_USER1';
constants[] = 'MEMCACHE_USER2';
constants[] = 'MEMCACHE_USER3';
constants[] = 'MEMCACHE_USER4';

classes[] = 'Memcache';

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = json_decode
functions[] = json_encode
functions[] = json_last_error_msg
functions[] = json_last_error

classes[] = 'JsonException'

constants[] = 'JSON_HEX_TAG';
constants[] = 'JSON_HEX_AMP';
constants[] = 'JSON_HEX_APOS';
constants[] = 'JSON_HEX_QUOT';
constants[] = 'JSON_FORCE_OBJECT';
constants[] = 'JSON_NUMERIC_CHECK';
constants[] = 'JSON_ERROR_NONE';
constants[] = 'JSON_ERROR_DEPTH';
constants[] = 'JSON_ERROR_STATE_MISMATCH';
constants[] = 'JSON_ERROR_CTRL_CHAR';
constants[] = 'JSON_ERROR_SYNTAX';
constants[] = 'JSON_ERROR_UTF8';
constants[] = 'JSON_UNESCAPED_UNICODE';
constants[] = 'JSON_BIGINT_AS_STRING';
constants[] = 'JSON_UNESCAPED_SLASHES';
constants[] = 'JSON_PARTIAL_OUTPUT_ON_ERROR';
constants[] = 'JSON_ERROR_INF_OR_NAN';
constants[] = 'JSON_ERROR_RECURSION';
constants[] = 'JSON_ERROR_UNSUPPORTED_TYPE';
constants[] = 'JSON_LOOSE_TYPE';
constants[] = 'JSON_PRESERVE_ZERO_FRACTION';
constants[] = 'JSON_PRETTY_PRINT';


interfaces[] = 'JsonSerializable'

traits[] = 

namespaces[] = 

directives[] = 

functions[] = geoip_asnum_by_name
functions[] = geoip_continent_code_by_name
functions[] = geoip_country_code_by_name
functions[] = geoip_country_code3_by_name
functions[] = geoip_country_name_by_name
functions[] = geoip_database_info
functions[] = geoip_db_avail
functions[] = geoip_db_filename
functions[] = geoip_db_get_all_info
functions[] = geoip_domain_by_name
functions[] = geoip_id_by_name
functions[] = geoip_isp_by_name
functions[] = geoip_netspeedcell_by_name
functions[] = geoip_org_by_name
functions[] = geoip_record_by_name
functions[] = geoip_region_by_name
functions[] = geoip_region_name_by_code
functions[] = geoip_setup_custom_directory
functions[] = geoip_time_zone_by_country_and_region 

constants[] = 'GEOIP_COUNTRY_EDITION';
constants[] = 'GEOIP_REGION_EDITION_REV0';
constants[] = 'GEOIP_CITY_EDITION_REV0';
constants[] = 'GEOIP_ORG_EDITION';
constants[] = 'GEOIP_ISP_EDITION';
constants[] = 'GEOIP_CITY_EDITION_REV1';
constants[] = 'GEOIP_REGION_EDITION_REV1';
constants[] = 'GEOIP_PROXY_EDITION';
constants[] = 'GEOIP_ASNUM_EDITION';
constants[] = 'GEOIP_NETSPEED_EDITION';
constants[] = 'GEOIP_DOMAIN_EDITION';
constants[] = 'GEOIP_UNKNOWN_SPEED';
constants[] = 'GEOIP_DIALUP_SPEED';
constants[] = 'GEOIP_CABLEDSL_SPEED';
constants[] = 'GEOIP_CORPORATE_SPEED';

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = 'isset';
functions[] = 'htmlentities';
functions[] = 'md5';
functions[] = 'empty';
functions[] = 'intval';
functions[] = 'tempnam';
functions[] = 'basename';
{"passwords":["username", "user_name", "user", "name", "account", 
              "password", "pass", "pwd", "pswd", "agent", "passwd",
              "secret", "token", "appkey", "app_key", "agent", "access", "accesskey", "accesssecret",
              "awskey", "aws_key", 
              "baidu_akey", "baidu_skey", "BAIDU_AIP_APPID", "BAIDU_AIP_APPKEY", "BAIDU_AIP_SECRETKEY"
              ]
}functions[] = 

constants[] = 

classes[] = svm
classes[] = svmmodel

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

constants[] = 'CONNECTION_ABORTED';
constants[] = 'CONNECTION_NORMAL';
constants[] = 'CONNECTION_TIMEOUT';
constants[] = 'INI_USER';
constants[] = 'INI_PERDIR';
constants[] = 'INI_SYSTEM';
constants[] = 'INI_ALL';
constants[] = 'INI_SCANNER_NORMAL';
constants[] = 'INI_SCANNER_RAW';
constants[] = 'PHP_URL_SCHEME';
constants[] = 'PHP_URL_HOST';
constants[] = 'PHP_URL_PORT';
constants[] = 'PHP_URL_USER';
constants[] = 'PHP_URL_PASS';
constants[] = 'PHP_URL_PATH';
constants[] = 'PHP_URL_QUERY';
constants[] = 'PHP_URL_FRAGMENT';
constants[] = 'M_E';
constants[] = 'M_LOG2E';
constants[] = 'M_LOG10E';
constants[] = 'M_LN2';
constants[] = 'M_LN10';
constants[] = 'M_PI';
constants[] = 'M_PI_2';
constants[] = 'M_PI_4';
constants[] = 'M_1_PI';
constants[] = 'M_2_PI';
constants[] = 'M_SQRTPI';
constants[] = 'M_2_SQRTPI';
constants[] = 'M_LNPI';
constants[] = 'M_EULER';
constants[] = 'M_SQRT2';
constants[] = 'M_SQRT1_2';
constants[] = 'M_SQRT3';
constants[] = 'INF';
constants[] = 'NAN';
constants[] = 'PHP_ROUND_HALF_UP';
constants[] = 'PHP_ROUND_HALF_DOWN';
constants[] = 'PHP_ROUND_HALF_EVEN';
constants[] = 'PHP_ROUND_HALF_ODD';
constants[] = 'INFO_GENERAL';
constants[] = 'INFO_CREDITS';
constants[] = 'INFO_CONFIGURATION';
constants[] = 'INFO_MODULES';
constants[] = 'INFO_ENVIRONMENT';
constants[] = 'INFO_VARIABLES';
constants[] = 'INFO_LICENSE';
constants[] = 'INFO_ALL';
constants[] = 'CREDITS_GROUP';
constants[] = 'CREDITS_GENERAL';
constants[] = 'CREDITS_SAPI';
constants[] = 'CREDITS_MODULES';
constants[] = 'CREDITS_DOCS';
constants[] = 'CREDITS_FULLPAGE';
constants[] = 'CREDITS_QA';
constants[] = 'CREDITS_ALL';
constants[] = 'HTML_SPECIALCHARS';
constants[] = 'HTML_ENTITIES';
constants[] = 'ENT_COMPAT';
constants[] = 'ENT_QUOTES';
constants[] = 'ENT_NOQUOTES';
constants[] = 'ENT_IGNORE';
constants[] = 'PATHINFO_DIRNAME';
constants[] = 'PATHINFO_BASENAME';
constants[] = 'PATHINFO_EXTENSION';
constants[] = 'PATHINFO_FILENAME';
constants[] = 'CHAR_MAX';
constants[] = 'LC_CTYPE';
constants[] = 'LC_NUMERIC';
constants[] = 'LC_TIME';
constants[] = 'LC_COLLATE';
constants[] = 'LC_MONETARY';
constants[] = 'LC_ALL';
constants[] = 'LC_MESSAGES';
constants[] = 'SEEK_SET';
constants[] = 'SEEK_CUR';
constants[] = 'SEEK_END';
constants[] = 'LOCK_SH';
constants[] = 'LOCK_EX';
constants[] = 'LOCK_UN';
constants[] = 'LOCK_NB';
constants[] = 'STREAM_NOTIFY_CONNECT';
constants[] = 'STREAM_NOTIFY_AUTH_REQUIRED';
constants[] = 'STREAM_NOTIFY_AUTH_RESULT';
constants[] = 'STREAM_NOTIFY_MIME_TYPE_IS';
constants[] = 'STREAM_NOTIFY_FILE_SIZE_IS';
constants[] = 'STREAM_NOTIFY_REDIRECTED';
constants[] = 'STREAM_NOTIFY_PROGRESS';
constants[] = 'STREAM_NOTIFY_FAILURE';
constants[] = 'STREAM_NOTIFY_COMPLETED';
constants[] = 'STREAM_NOTIFY_RESOLVE';
constants[] = 'STREAM_NOTIFY_SEVERITY_INFO';
constants[] = 'STREAM_NOTIFY_SEVERITY_WARN';
constants[] = 'STREAM_NOTIFY_SEVERITY_ERR';
constants[] = 'STREAM_FILTER_READ';
constants[] = 'STREAM_FILTER_WRITE';
constants[] = 'STREAM_FILTER_ALL';
constants[] = 'STREAM_CLIENT_PERSISTENT';
constants[] = 'STREAM_CLIENT_ASYNC_CONNECT';
constants[] = 'STREAM_CLIENT_CONNECT';
constants[] = 'STREAM_SHUT_RD';
constants[] = 'STREAM_SHUT_WR';
constants[] = 'STREAM_SHUT_RDWR';
constants[] = 'STREAM_PF_INET';
constants[] = 'STREAM_PF_INET6';
constants[] = 'STREAM_PF_UNIX';
constants[] = 'STREAM_IPPROTO_IP';
constants[] = 'STREAM_IPPROTO_TCP';
constants[] = 'STREAM_IPPROTO_UDP';
constants[] = 'STREAM_IPPROTO_ICMP';
constants[] = 'STREAM_IPPROTO_RAW';
constants[] = 'STREAM_SOCK_STREAM';
constants[] = 'STREAM_SOCK_DGRAM';
constants[] = 'STREAM_SOCK_RAW';
constants[] = 'STREAM_SOCK_SEQPACKET';
constants[] = 'STREAM_SOCK_RDM';
constants[] = 'STREAM_PEEK';
constants[] = 'STREAM_OOB';
constants[] = 'STREAM_SERVER_BIND';
constants[] = 'STREAM_SERVER_LISTEN';
constants[] = 'FILE_USE_INCLUDE_PATH';
constants[] = 'FILE_IGNORE_NEW_LINES';
constants[] = 'FILE_SKIP_EMPTY_LINES';
constants[] = 'FILE_APPEND';
constants[] = 'FILE_NO_DEFAULT_CONTEXT';
constants[] = 'FILE_TEXT';
constants[] = 'FILE_BINARY';
constants[] = 'FNM_NOESCAPE';
constants[] = 'FNM_PATHNAME';
constants[] = 'FNM_PERIOD';
constants[] = 'FNM_CASEFOLD';
constants[] = 'PSFS_PASS_ON';
constants[] = 'PSFS_FEED_ME';
constants[] = 'PSFS_ERR_FATAL';
constants[] = 'PSFS_FLAG_NORMAL';
constants[] = 'PSFS_FLAG_FLUSH_INC';
constants[] = 'PSFS_FLAG_FLUSH_CLOSE';
constants[] = 'ABDAY_1';
constants[] = 'ABDAY_2';
constants[] = 'ABDAY_3';
constants[] = 'ABDAY_4';
constants[] = 'ABDAY_5';
constants[] = 'ABDAY_6';
constants[] = 'ABDAY_7';
constants[] = 'DAY_1';
constants[] = 'DAY_2';
constants[] = 'DAY_3';
constants[] = 'DAY_4';
constants[] = 'DAY_5';
constants[] = 'DAY_6';
constants[] = 'DAY_7';
constants[] = 'ABMON_1';
constants[] = 'ABMON_2';
constants[] = 'ABMON_3';
constants[] = 'ABMON_4';
constants[] = 'ABMON_5';
constants[] = 'ABMON_6';
constants[] = 'ABMON_7';
constants[] = 'ABMON_8';
constants[] = 'ABMON_9';
constants[] = 'ABMON_10';
constants[] = 'ABMON_11';
constants[] = 'ABMON_12';
constants[] = 'MON_1';
constants[] = 'MON_2';
constants[] = 'MON_3';
constants[] = 'MON_4';
constants[] = 'MON_5';
constants[] = 'MON_6';
constants[] = 'MON_7';
constants[] = 'MON_8';
constants[] = 'MON_9';
constants[] = 'MON_10';
constants[] = 'MON_11';
constants[] = 'MON_12';
constants[] = 'AM_STR';
constants[] = 'PM_STR';
constants[] = 'D_T_FMT';
constants[] = 'D_FMT';
constants[] = 'T_FMT';
constants[] = 'T_FMT_AMPM';
constants[] = 'ERA';
constants[] = 'ERA_D_T_FMT';
constants[] = 'ERA_D_FMT';
constants[] = 'ERA_T_FMT';
constants[] = 'ALT_DIGITS';
constants[] = 'CRNCYSTR';
constants[] = 'RADIXCHAR';
constants[] = 'THOUSEP';
constants[] = 'YESEXPR';
constants[] = 'NOEXPR';
constants[] = 'YESSTR';
constants[] = 'NOSTR';
constants[] = 'CODESET';
constants[] = 'DIRECTORY_SEPARATOR';
constants[] = 'PATH_SEPARATOR';
constants[] = 'GLOB_BRACE';
constants[] = 'GLOB_MARK';
constants[] = 'GLOB_NOSORT';
constants[] = 'GLOB_NOCHECK';
constants[] = 'GLOB_NOESCAPE';
constants[] = 'GLOB_ERR';
constants[] = 'GLOB_ONLYDIR';
constants[] = 'GLOB_AVAILABLE_FLAGS';
constants[] = 'LOG_EMERG';
constants[] = 'LOG_ALERT';
constants[] = 'LOG_CRIT';
constants[] = 'LOG_ERR';
constants[] = 'LOG_WARNING';
constants[] = 'LOG_NOTICE';
constants[] = 'LOG_INFO';
constants[] = 'LOG_DEBUG';
constants[] = 'LOG_KERN';
constants[] = 'LOG_USER';
constants[] = 'LOG_MAIL';
constants[] = 'LOG_DAEMON';
constants[] = 'LOG_AUTH';
constants[] = 'LOG_SYSLOG';
constants[] = 'LOG_LPR';
constants[] = 'LOG_NEWS';
constants[] = 'LOG_UUCP';
constants[] = 'LOG_CRON';
constants[] = 'LOG_AUTHPRIV';
constants[] = 'LOG_LOCAL0';
constants[] = 'LOG_LOCAL1';
constants[] = 'LOG_LOCAL2';
constants[] = 'LOG_LOCAL3';
constants[] = 'LOG_LOCAL4';
constants[] = 'LOG_LOCAL5';
constants[] = 'LOG_LOCAL6';
constants[] = 'LOG_LOCAL7';
constants[] = 'LOG_PID';
constants[] = 'LOG_CONS';
constants[] = 'LOG_ODELAY';
constants[] = 'LOG_NDELAY';
constants[] = 'LOG_NOWAIT';
constants[] = 'LOG_PERROR';
constants[] = 'EXTR_OVERWRITE';
constants[] = 'EXTR_SKIP';
constants[] = 'EXTR_PREFIX_SAME';
constants[] = 'EXTR_PREFIX_ALL';
constants[] = 'EXTR_PREFIX_INVALID';
constants[] = 'EXTR_PREFIX_IF_EXISTS';
constants[] = 'EXTR_IF_EXISTS';
constants[] = 'EXTR_REFS';
constants[] = 'SORT_ASC';
constants[] = 'SORT_DESC';
constants[] = 'SORT_REGULAR';
constants[] = 'SORT_NUMERIC';
constants[] = 'SORT_STRING';
constants[] = 'SORT_LOCALE_STRING';
constants[] = 'CASE_LOWER';
constants[] = 'CASE_UPPER';
constants[] = 'COUNT_NORMAL';
constants[] = 'COUNT_RECURSIVE';
constants[] = 'ASSERT_ACTIVE';
constants[] = 'ASSERT_CALLBACK';
constants[] = 'ASSERT_BAIL';
constants[] = 'ASSERT_WARNING';
constants[] = 'ASSERT_QUIET_EVAL';
constants[] = 'STREAM_USE_PATH';
constants[] = 'STREAM_IGNORE_URL';
constants[] = 'STREAM_ENFORCE_SAFE_MODE';
constants[] = 'STREAM_REPORT_ERRORS';
constants[] = 'STREAM_MUST_SEEK';
constants[] = 'STREAM_URL_STAT_LINK';
constants[] = 'STREAM_URL_STAT_QUIET';
constants[] = 'STREAM_MKDIR_RECURSIVE';
constants[] = 'STREAM_IS_URL';
constants[] = 'STREAM_OPTION_BLOCKING';
constants[] = 'STREAM_OPTION_READ_TIMEOUT';
constants[] = 'STREAM_OPTION_READ_BUFFER';
constants[] = 'STREAM_OPTION_WRITE_BUFFER';
constants[] = 'STREAM_BUFFER_NONE';
constants[] = 'STREAM_BUFFER_LINE';
constants[] = 'STREAM_BUFFER_FULL';
constants[] = 'STREAM_CAST_AS_STREAM';
constants[] = 'STREAM_CAST_FOR_SELECT';
constants[] = 'IMAGETYPE_GIF';
constants[] = 'IMAGETYPE_JPEG';
constants[] = 'IMAGETYPE_PNG';
constants[] = 'IMAGETYPE_SWF';
constants[] = 'IMAGETYPE_PSD';
constants[] = 'IMAGETYPE_BMP';
constants[] = 'IMAGETYPE_TIFF_II';
constants[] = 'IMAGETYPE_TIFF_MM';
constants[] = 'IMAGETYPE_JPC';
constants[] = 'IMAGETYPE_JP2';
constants[] = 'IMAGETYPE_JPX';
constants[] = 'IMAGETYPE_JB2';
constants[] = 'IMAGETYPE_SWC';
constants[] = 'IMAGETYPE_IFF';
constants[] = 'IMAGETYPE_WBMP';
constants[] = 'IMAGETYPE_JPEG2000';
constants[] = 'IMAGETYPE_XBM';
constants[] = 'IMAGETYPE_ICO';
constants[] = 'IMAGETYPE_UNKNOWN';
constants[] = 'IMAGETYPE_COUNT';
constants[] = 'DNS_A';
constants[] = 'DNS_NS';
constants[] = 'DNS_CNAME';
constants[] = 'DNS_SOA';
constants[] = 'DNS_PTR';
constants[] = 'DNS_HINFO';
constants[] = 'DNS_MX';
constants[] = 'DNS_TXT';
constants[] = 'DNS_SRV';
constants[] = 'DNS_NAPTR';
constants[] = 'DNS_AAAA';
constants[] = 'DNS_A6';
constants[] = 'DNS_ANY';
constants[] = 'DNS_ALL';
constants[] = 'LIBXML_COMPACT';
constants[] = 'LIBXML_DOTTED_VERSION';
constants[] = 'LIBXML_DTDATTR';
constants[] = 'LIBXML_DTDLOAD';
constants[] = 'LIBXML_DTDVALID';
constants[] = 'LIBXML_ERR_ERROR';
constants[] = 'LIBXML_ERR_FATAL';
constants[] = 'LIBXML_ERR_NONE';
constants[] = 'LIBXML_ERR_WARNING';
constants[] = 'LIBXML_HTML_NODEFDTD';
constants[] = 'LIBXML_HTML_NOIMPLIED';
constants[] = 'LIBXML_NOBLANKS';
constants[] = 'LIBXML_NOCDATA';
constants[] = 'LIBXML_NOEMPTYTAG';
constants[] = 'LIBXML_NOENT';
constants[] = 'LIBXML_NOERROR';
constants[] = 'LIBXML_NONET';
constants[] = 'LIBXML_NOWARNING';
constants[] = 'LIBXML_NOXMLDECL';
constants[] = 'LIBXML_NSCLEAN';
constants[] = 'LIBXML_PARSEHUGE';
constants[] = 'LIBXML_PEDANTIC';
constants[] = 'LIBXML_SCHEMA_CREATE';
constants[] = 'LIBXML_VERSION';
constants[] = 'LIBXML_XINCLUDE';
constants[] = 'E_ERROR';
constants[] = 'E_WARNING';
constants[] = 'E_PARSE';
constants[] = 'E_NOTICE';
constants[] = 'E_CORE_ERROR';
constants[] = 'E_CORE_WARNING';
constants[] = 'E_COMPILE_ERROR';
constants[] = 'E_COMPILE_WARNING';
constants[] = 'E_USER_ERROR';
constants[] = 'E_USER_WARNING';
constants[] = 'E_USER_NOTICE';
constants[] = 'E_STRICT';
constants[] = 'E_RECOVERABLE_ERROR';
constants[] = 'E_DEPRECATED';
constants[] = 'E_USER_DEPRECATED';
constants[] = 'E_ALL';
constants[] = 'PASSWORD_ARGON2ID';
constants[] = 'LIBXML_LOADED_VERSION';
constants[] = 'UPLOAD_ERR_CANT_WRITE';
constants[] = 'UPLOAD_ERR_EXTENSION';
constants[] = 'UPLOAD_ERR_FORM_SIZE';
constants[] = 'UPLOAD_ERR_INI_SIZE';
constants[] = 'UPLOAD_ERR_NO_FILE';
constants[] = 'UPLOAD_ERR_NO_TMP_DIR';
constants[] = 'UPLOAD_ERR_OK';
constants[] = 'UPLOAD_ERR_PARTIAL';

functions[] = constant
functions[] = sleep
functions[] = usleep
functions[] = time_nanosleep
functions[] = time_sleep_until
functions[] = strptime
functions[] = phpinfo
functions[] = phpversion
functions[] = phpcredits
functions[] = php_logo_guid
functions[] = php_real_logo_guid
functions[] = php_egg_logo_guid
functions[] = zend_logo_guid
functions[] = php_sapi_name
functions[] = php_uname
functions[] = php_ini_scanned_files
functions[] = php_ini_loaded_file
functions[] = basename
functions[] = dirname
functions[] = pathinfo
functions[] = fscanf
functions[] = parse_url
functions[] = urlencode
functions[] = urldecode
functions[] = rawurlencode
functions[] = rawurldecode
functions[] = http_build_query
functions[] = readlink
functions[] = linkinfo
functions[] = symlink
functions[] = exec
functions[] = system
functions[] = escapeshellcmd
functions[] = escapeshellarg
functions[] = passthru
functions[] = shell_exec
functions[] = proc_open
functions[] = proc_close
functions[] = proc_terminate
functions[] = proc_get_status
functions[] = proc_nice
functions[] = getservbyname
functions[] = getservbyport
functions[] = getprotobyname
functions[] = getprotobynumber
functions[] = getmyuid
functions[] = getmygid
functions[] = getmypid
functions[] = getmyinode
functions[] = getlastmod
functions[] = base64_decode
functions[] = base64_encode
functions[] = fmod
functions[] = inet_ntop
functions[] = inet_pton
functions[] = ip2long
functions[] = long2ip
functions[] = getenv
functions[] = putenv
functions[] = getopt
functions[] = sys_getloadavg
functions[] = microtime
functions[] = gettimeofday
functions[] = getrusage
functions[] = uniqid
functions[] = get_current_user
functions[] = set_time_limit
functions[] = get_cfg_var
functions[] = magic_quotes_runtime
functions[] = set_magic_quotes_runtime
functions[] = get_magic_quotes_gpc
functions[] = get_magic_quotes_runtime
functions[] = import_request_variables
functions[] = error_reporting
functions[] = error_log
functions[] = error_get_last
functions[] = error_clear_last
functions[] = call_user_func
functions[] = call_user_func_array
functions[] = call_user_method
functions[] = call_user_method_array
functions[] = forward_static_call
functions[] = forward_static_call_array
functions[] = serialize
functions[] = unserialize
functions[] = var_dump
functions[] = var_export
functions[] = debug_zval_dump
functions[] = memory_get_usage
functions[] = memory_get_peak_usage
functions[] = register_shutdown_function
functions[] = register_tick_function
functions[] = unregister_tick_function
functions[] = highlight_file
functions[] = show_source
functions[] = highlight_string
functions[] = php_strip_whitespace
functions[] = ini_get
functions[] = ini_get_all
functions[] = ini_set
functions[] = ini_alter
functions[] = ini_restore
functions[] = get_include_path
functions[] = set_include_path
functions[] = restore_include_path
functions[] = setcookie
functions[] = setrawcookie
functions[] = header
functions[] = header_remove
functions[] = headers_sent
functions[] = headers_list
functions[] = connection_aborted
functions[] = connection_status
functions[] = ignore_user_abort
functions[] = parse_ini_file
functions[] = parse_ini_string
functions[] = is_uploaded_file
functions[] = move_uploaded_file
functions[] = gethostbyaddr
functions[] = gethostbyname
functions[] = gethostbynamel
functions[] = gethostname
functions[] = checkdnsrr
functions[] = dns_get_mx
functions[] = getmxrr
functions[] = intval
functions[] = floatval
functions[] = doubleval
functions[] = strval
functions[] = gettype
functions[] = settype
functions[] = is_null
functions[] = is_resource
functions[] = is_bool
functions[] = is_long
functions[] = is_float
functions[] = is_int
functions[] = is_integer
functions[] = is_double
functions[] = is_real
functions[] = is_numeric
functions[] = is_string
functions[] = is_array
functions[] = is_object
functions[] = is_scalar
functions[] = is_callable
functions[] = stream_select
functions[] = stream_context_create
functions[] = stream_context_set_params
functions[] = stream_context_get_params
functions[] = stream_context_set_option
functions[] = stream_context_get_options
functions[] = stream_context_get_default
functions[] = stream_context_set_default
functions[] = stream_filter_prepend
functions[] = stream_filter_append
functions[] = stream_filter_remove
functions[] = stream_socket_client
functions[] = stream_socket_server
functions[] = stream_socket_accept
functions[] = stream_socket_get_name
functions[] = stream_socket_recvfrom
functions[] = stream_socket_sendto
functions[] = stream_socket_shutdown
functions[] = stream_socket_pair
functions[] = stream_copy_to_stream
functions[] = stream_get_contents
functions[] = stream_supports_lock
functions[] = fgetcsv
functions[] = fputcsv
functions[] = flock
functions[] = get_meta_tags
functions[] = stream_set_read_buffer
functions[] = stream_set_write_buffer
functions[] = set_file_buffer
functions[] = set_socket_blocking
functions[] = stream_set_blocking
functions[] = stream_get_meta_data
functions[] = stream_get_line
functions[] = stream_wrapper_register
functions[] = stream_register_wrapper
functions[] = stream_wrapper_unregister
functions[] = stream_wrapper_restore
functions[] = stream_get_wrappers
functions[] = stream_get_transports
functions[] = stream_resolve_include_path
functions[] = stream_is_local
functions[] = get_headers
functions[] = stream_set_timeout
functions[] = pack
functions[] = unpack
functions[] = get_browser
functions[] = openlog
functions[] = syslog
functions[] = closelog
functions[] = define_syslog_variables
functions[] = lcg_value
functions[] = assert
functions[] = assert_options
functions[] = version_compare
functions[] = stream_get_filters
functions[] = stream_filter_register
functions[] = stream_bucket_make_writeable
functions[] = stream_bucket_prepend
functions[] = stream_bucket_append
functions[] = stream_bucket_new
functions[] = sys_get_temp_dir
functions[] = get_called_class
functions[] = get_class
functions[] = class_exists
functions[] = unset
functions[] = exit
functions[] = die
functions[] = define
functions[] = defined
functions[] = empty
functions[] = func_get_args
functions[] = func_get_arg
functions[] = func_num_args
functions[] = function_exists
functions[] = set_error_handler
functions[] = trigger_error
functions[] = debug_backtrace
functions[] = method_exists
functions[] = property_exists
functions[] = each
functions[] = is_a
functions[] = restore_error_handler
functions[] = set_exception_handler
functions[] = restore_exception_handler
functions[] = utf8_decode
functions[] = class_alias
functions[] = get_class_methods
functions[] = get_class_vars
functions[] = get_declared_classes
functions[] = get_declared_interfaces
functions[] = get_declared_traits
functions[] = get_object_vars
functions[] = get_parent_class
functions[] = interface_exists
functions[] = is_subclass_of
functions[] = trait_exists
functions[] = eval
functions[] = get_resource_type
functions[] = create_function
functions[] = __lambda_func
functions[] = user_error
functions[] = get_defined_vars
functions[] = get_defined_functions
functions[] = http_response_code
functions[] = mb_ord
functions[] = mb_chr
functions[] = mb_scrub
functions[] = stream_isatty
functions[] = is_iterable
functions[] = hrtime
functions[] = boolval

classes[] = __PHP_Incomplete_Class
classes[] = php_user_filter
classes[] = Directory
classes[] = Stdclass
classes[] = Generator

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = dba_close
functions[] = dba_delete
functions[] = dba_exists
functions[] = dba_fetch
functions[] = dba_firstkey
functions[] = dba_handlers
functions[] = dba_insert
functions[] = dba_key_split
functions[] = dba_list
functions[] = dba_nextkey
functions[] = dba_open
functions[] = dba_optimize
functions[] = dba_popen
functions[] = dba_replace
functions[] = dba_sync

constants[] = 

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = 

constants[] = 

classes[] = Phar
classes[] = PharData
classes[] = PharFileInfo
classes[] = PharException

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = "nsapi_request_headers";
functions[] = "nsapi_response_headers";
functions[] = "nsapi_virtual";

constants[] = 

classes[] = 

interfaces[] = 

traits[] = 

directives[] = "nsapi.read_timeout";

namespaces[] = 

functions[] = hash_algos
functions[] = hash_copy
functions[] = hash_equals
functions[] = hash_file
functions[] = hash_final
functions[] = hash_hkdf
functions[] = hash_hmac_algos
functions[] = hash_hmac_file
functions[] = hash_hmac
functions[] = hash_init
functions[] = hash_pbkdf2
functions[] = hash_update_file
functions[] = hash_update_stream
functions[] = hash_update
functions[] = hash

classes[] = 

constants[] = 'HASH_HMAC';

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = opencensus_version
functions[] = opencensus_trace_function
functions[] = opencensus_trace_method
functions[] = opencensus_trace_list
functions[] = opencensus_trace_begin
functions[] = opencensus_trace_finish
functions[] = opencensus_trace_clear
functions[] = opencensus_trace_set_context
functions[] = opencensus_trace_context
functions[] = opencensus_trace_add_attribute
functions[] = opencensus_trace_add_annotation
functions[] = opencensus_trace_add_link
functions[] = opencensus_trace_add_message_event

constants[] = 

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

[
    {
        "function": "\\preg_match",
        "position": 2,
        "name": "$matches"
    },
    {
        "function": "\\preg_match_all",
        "position": 2,
        "name": "$matches"
    },
    {
        "function": "\\fsockopen",
        "position": 2,
        "name": "$errno"
    },
    {
        "function": "\\fsockopen",
        "position": 3,
        "name": "$errstr"
    },
    {
        "function": "\\pfsockopen",
        "position": 2,
        "name": "$errno"
    },
    {
        "function": "\\pfsockopen",
        "position": 3,
        "name": "$errstr"
    },
    {
        "function": "\\parse_str",
        "position": 1,
        "name": "$results"
    }
]SQLite format 3   @                                                                .?       _ `      G	[5 indexsqlite_autoindex_analyzers_popularity_1analyzers_popularity
!!otablecategoriescategoriesCREATE TABLE "categories" (
	 "id" integer,
	 "name" text,
	PRIMARY KEY("id"),
	CONSTRAINT "id" UNIQUE (id ASC)
)3G! indexsqlite_autoindex_categories_1categoriesG]tableanalyzersanalyzersCREATE TABLE "analyzers" (
	 "id" integer,
	 "folder" text,
	 "name" text,
	 "severity" text,
	 "timetofix" text,
	PRIMARY KEY("id"),
	CONSTRAINT "id" UNIQUE (id ASC)
)1E indexsqlite_autoindex_analyzers_1analyzersK%%[tablesqlite_stat1sqlite_stat1CREATE TABLE sqlite_stat1(tbl,idx,stat)M55=tableanalyzers_categoriesanalyzers_categoriesCREATE TABLE "analyzers_categories" (
	 "id_analyzer" integer,
	 "id_categories" integer,
	CONSTRAINT "id" UNIQUE (id_analyzer ASC, id_categories ASC)
)G[5 indexsqlite_autoindex_analyzers_categories_1analyzers_categories         +    8|vpjd^XRLF@:4.("
|ung`YRKD=6/(!yrkd]VNF>6.&               q
x	 	 	 	 	 	 |}p|^{]z\y[xZwYvXuWtVsUrTqSpRoQnPmOlNkMjLiKhJgIfHeGdFcEbDaC`B_A^@]?\>[=Z<Y;X:W9V8U7T6S5R4Q3P2O1N0M/L.K-J,I+H*G)F(E'D&C%B   70   6:   5;   47   3   2#   1#   0    /"   .%   -(   ,#   +v   *y   )f   (i   'V   &c   %   $[   #8   "   !"       I      s      2   Q   t      5   P   H   =   ~      *   7   D   A      /s    hyk]OA3%	}oaSE7)sQH?6-$	 zqh_VMD;2)             !&@!? &? >&>;&= &< &;&:&9j(X&8:   g	H   f	u   e	=   d	gB`   c	:=   b	&X   a	   `	
.   _		   ^	(   ]	{   \	V&   [	!&c   Z	   Y	&B   X	&j   W	.   V	e   U	#&{   T	&   S	&E   R	P
g   Q	)   P		3   O	&   N	   M	*   L	*   K	e&a   J	O   I	3&/   H	&   G	   F	>   E	&   D	&   C	x   B	R   A	68   @	0   ?	    >	 &   =	    <	 &   ;}&   :Pn   9"@   W W                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         F5[analyzers_categoriessqlite_autoindex_analyzers_categories_1898 2 1.Eanalyzerssqlite_autoindex_analyzers_1563 1/!Gcategoriessqlite_autoindex_categories_133 1   4    ztnhb\VPJD>82,& CaughtExceptions -  ConstantsPhpConstantUsage! 1  ConstantsMagicConstantUsage- -ConstantsInconsistantCaseS_MINORT_QUICK) 'ConstantsConstantnamesS_MINORT_SLOW '  ConstantsConstantUsage0 5ConstantsConstantStrangeNamesS_MINORT_SLOW -  ClassesStaticProperties8 GClassesStaticMethodsCalledFromObjectS_MINORT_QUICK '  ClassesStaticMethods 1  ClassesPropertyDefinition. 3ClassesOldStyleConstructorS_MINORT_QUICK7 EClassesNonStaticMethodsCalledStaticS_MINORT_QUICK# ClassesNonPppS_MINORT_INSTANT #  ClassesMagicMethod% !ClassesEmptyClassS_M   K   .      t   [   A   !      b   B   +          g   N      V   0      {   a   _   8         ]   F   (      m   ~U   }=   |!   {   zg   yP   x4   w   v   uf   tN   s2   r   q    pi   oU   n:   m   l}   ka   j>   i   p    |p~xrlf`ZTNHB<60*$ |vpjd^XRLF@:4.("
ztnhb\VPJD>82,&          ~~}}||{{zzyyxxwwvvuuttssrrqqppnnmmllkkjjiihhggffeeddccbbaa``^^]]\\[[ZZYYXXWWVVUUTTSSRRQQPPOONNMMLLKKJJIIHHGGFFEEDDCCBBAA@@??>>==<<;;::99887766554433221100//..--,,++**))((''&&%%$$##""!!        FF      qq      MM      NN      dd             6  whYB*nfUE:.}iYB8!                                                                  H TypehintsG None	F RectorE SOLIDD !TypechecksC SemanticsB DumpA Complete@ )php-cs-fixable? 1CompatibilityPHP80> Top10= 1CompatibilityPHP74< #ClassReview; +LintButWontExec: Stats
9 Level 58 First5 !Under Work
4 Level 4
3 Level 3
2 Level 21 9DefensiveProgrammingTM
0 Level 1/ #Newfeatures. #Suggestions- 1CompatibilityPHP73
, Dismell	* Simple( #Preferences' %RadwellCodes& All$ 1CompatibilityPHP72" 1CompatibilityPHP71 %Calisthenics ClearPHP 1CompatibilityPHP70	 Custom
 OneFile 1CompatibilityPHP53 Dead code Internal #Portability 3PHP recommendations 1Coding Conventions !Appcontent
 !Unassigned	 %Performances 1CompatibilityPHP56 1CompatibilityPHP55 1CompatibilityPHP54 Security
 Appinfo
 Analyze Inventory
   6 ~xrlf`ZTNHB<60*$                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           HHGGFFEEDDCCBBAA@@??>>==<<;;::9988554433221100//..--,,**((''&&$$""

				   +    ysmga[UOIC=71+%sionsExtbzip2  !ExtensionsExtbcmath !ExtensionsExtapc! !-ExceptionsThrownExceptions " !/ExceptionsDefinedExceptions  !-ExceptionsCaughtExceptions  -ConstantsPhpConstantUsage#" 1ConstantsMagicConstantUsage!  -ConstantsInconsistantCase 'ConstantsConstantnamesb 'ConstantsConstantUsage&_$ 5ConstantsConstantStrangeNames  -ClassesStaticPropertiesg+ GClassesStaticMethodsCalledFromObject 'ClassesStaticMethods!5 1ClassesPropertyDefinition! 3ClassesOldStyleConstructor* EClassesNonStaticMethodsCalledStatic ClassesNonPpp #ClassesMagicMethod#) !ClassesEmptyClass 
    Ջa   ԋA   Ӌ%   ҋ   ъk   ЊH   ϊ!   Ή{   ͉@   ̉"   ˉ   ʈf   ɈB   Ȉ   Ǉx   Ƈ0   Ň   ĆP   Æ4      u   Q   3      p   Q   2      l   N   )      j   L   +   	   m   P   -      f   D   !   p    |p~xrlf`ZTNHB<60*$ |vpjd^XRLF@:4.("
ztnhb\VPJD>82,&          ~~}}||{{zzyyxxwwvvuuttssrrqqppnnmmllkkjjiihhggffeeddccbbaa``^^]]\\[[ZZYYXXWWVVUUTTSSRRQQPPOONNMMLLKKJJIIHHGGFFEEDDCCBBAA@@??>>==<<;;::99887766554433221100//..--,,++**))((''&&%%$$##""!!              ''      &&      EE      bb          _  _ `      G	[5 indexsqlite_autoindex_analyzers_popularity_1analyzers_popularity
!!otablecatego      _[5 indexsqlite_autoindex_analyzers_popularity_1analyzers_popularity
_ !!otablecategoriescategoriesCREATE TABLE "categories" (
	 "id" integer,
	 "name" text,
	PRIMARY KEY("id"),
	CONSTRAINT "id" UNIQUE (id ASC)
)3G! indexsqlite_autoindex_categories_1categoriesG]tableanalyzersanalyzersCREATE TABLE "analyzers" (
	 "id" integer,
	 "folder" text,
	 "name" text,
	 "severity" text,
	 "timetofix" text,
	PRIMARY KEY("id"),
	CONSTRAINT "id" UNIQUE (id ASC)
) 3E indexsqlite_autoindex_analyzers_1analyzersK%%[tablesqlite_stat1sqlite_stat1CREATE TABLE sqlite_stat1(tbl,idx,stat)M55=tableanalyzers_categoriesanalyzers_categoriesCREATE TABLE "analyzers_categories" (
	 "id_analyzer" integer,
	 "id_categories" integer,
	CONSTRAINT "id" UNIQUE (id_analyzer ASC, id_categories ASC)
)G[5 indexsqlite_autoindex_analyzers_categories_1analyzers_categories           8(                                                                                                                                                                                                                                                                                                                                                                                                                                                                             G	[5 indexsqlite_autoindex_analyzers_popularity_1analyzers_popularity
X55Stableanalyzers_popularityanalyzers_popularity	CREATE TABLE "analyzers_popularity" (
	 "id" integer,
	 "folder" text,
	 "name" text,
	 "frequence" integer,
	PRIMARY KEY("id"),
	CONSTRAINT "id" UNIQUE (id ASC)
)3G! indexsqlite_autoindex_categories_1categories!!otablecategoriescategoriesCREATE TABLE "categories" (
	 "id" integer,
	 "name" text,
	PRIMARY KEY("id"),
	CONSTRAINT "id" UNIQUE (id ASC)
)1E indexsqlite_autoindex_analyzers_1analyzers   m  ~vnf_XQIA:3,%|ung`YRKD=6/(!yrkd]VNF>6.&               q
x	 	 	 	 	 	 |}p|^{]z\y[xZwYvXuWtVsUrTqSpRoQnPmOlNkMjLiKhJgIfHeGdFcEbDaC`B_A^@]?\>[=Z<Y;X:W9V8U7T6S5R4Q3P2O1N0M/L.K-J,I+H*G)F(E'D&C%B$A#@"?!> = <;:i8a6 4 .	 ,	          ~ 
}	|{qh		   ^  zrjbZQI@80(  zqh_VMD;2) ~ulcZQH?6-$	             A@?>=<7543	2
1 /,+*)( ' & % # !             
        ~ } | z y x t s p n m l	h g f e d c b a Z UtSQeN	 LKICdA ?w> ;98v6	 5 4	 1	 0 . ,y* ('% ! 	 zf}    \  ypg^ULC:1(}tkbYPG?6-$	 ypg^ULC:1(            DpCgBfAe@d>a=b<`3V2V1W0U/U.U-T,S+ *P)+('&% $N#R"R!R QOL  '' JJJDD
C	CIBB | { z y x w vutsrqpGoFn lAk@j@i?h:g3f;d6c2b5a4`9_0^>]=\<[1Z/Y#X.W,V-S%Q(N!FEDCB   ]  ypg^ULC<4,#	 {rjaXOF=4+"wne\TKB90'         76410/.,+*)('&%$"s! 
	~}{zut s
r q	ponmlkjigfeGdEcba `_ ^|]{\	[ZY~X}W{VzUyTxR QvPvOuMtLrKmJlIkHjGiFhEn   ^  ypg^ULC:1(xph_VMD;2) }tld\TKB90'       *)('&%#" =c`  	 tn   K>~| {;z y x wtv?u=t9s q pmoknem]lBji h g fuerdcb^\[ZYXWVPONSMLKJIH|GFEDCB	A@>=<	;:98	   \  ypg^ULC:1(vmd[RI@7.%
{rjaXOF=4+"                 r    

	}   ~}|{Nz ywv utsrqponlk}jriPhNgfed c b a ` _ ^ ]\g[W
VUTSRwQ^PNMLKJIHGFDCB8 	7 	6543210/. ,+   \  }tkbYPG>5,#ypg^ULC:1(}tkbYPG>5,#                ~H|G	{F	zFy>xDwEvCuCtCsCrAqBpAoAl?k?j=i<h<g;f;e:d9ba `8_7^6]5\4[3Z1Y2X0
W/V.U-T,S+R*Q)P(	O(N'M&L%K
J I HG$F#E*D$?">"="<";"9 8!7	6543210/.-, +G* )(t'&% $ #	"! (     \  ypg^ULC:1(~uld[RI@7.%
zqh_VMD;2)              =u<t;s9r8r7r6r5m3p2o1n/:-l,j+k)i'h&h%g$f^"["O"e"}exdvctboanamalak`f_e^d^c^b]aZ`Z_Z^Z]\\[XU DqBXAX@X?X>O=H<H;H:H9M8M7M6M5Y4Y3Y2Y0{/.-R)W(W'W&W%V#T"SRQQQQPPPPNNNNLKKI   \  {ri`WNE<3*!vmd[RI@7.%
zqh_VMD;2)              HGFEDCB>=<; :50/.-,+*)('&$#" ! v
	  ~	}X|{zywutsrponhgcba^]\XVTSRO~N~M}L K|IzHyG,F'E Dx	CwBw@u?u>u   `  ypg^ULC:1(}tkbYPG>7/'wog_WOG?7/'              P1&O0&N/&M.&L-&K,&J+&I*&H)&G(&F'&E&&D%&C$&B#&A"&@!&? &>&=&<&;&:&9&8&7&6&5&4&3&2&0&/&.&-&+&*&)
&(	&'&&&%&$&#&"&!	& 
 	~}|zyxwvutsrql"j"edcba`_]\	XUTSRQPONKI   c  xph`XPH@80(  xph`XPH@80(  |sjaXOF=4+"         5 &3 &2 &1 &0 &/ &. &- &, &+ &* &) &( &' && &% &$ &# &" &! &  & & &&~&}&|&{&z&y&x&w&v&u&t&s&r&q&p&n&m&
l&	k&j&i&h&g&f&e&d&c& b&a&~`&}^&|]&{\&z[&yZ&xY&wX&vW&uV&tU&sT&rS&qR&pQ&oP&nO&mN&lM&kL&jK&iJ&hI&gH&fG&eF&dE&cD&bC&aB&`A&_@&^?&]>&\=&[<&Z;&Y:&X9&W8&V7&U6&T5&S4&R3&Q2&   \  ypg^ULC:1(}tkbYPG>5,#xof]TKB90'            & & & & & & & & & &
 &	 & & & & & & & & &  & &~ &} &| &{ &z &y &x &w &v &u &t &s &r &q &p &o &n &m &l &k &j &i &h &g &f &e &d &c &b &a &` &_ &^ &] &\ &Z &Y &X &W &V &U &T &S &R &Q &P &O &N &M &K &J &I &H &G &F &E &D &C &B &A &? &> &= &< &; &: &9 &8 &7 &6 &   \  ypg^ULC:1(}tkbYPG>5,#xof]TKB90'           tb&sa&r`&q_&p^&o]&n\&m[&lZ&kY&jX&iW&hV&gT&fS&eR&dQ&cP&bO&aN&`M&_L&^K&]J&\H&[G&ZF&YE&XD&WC&VB&UA&T@&S?&R>&Q=&P<&O;&N:&M9&K6&J5&I4&H2&G1&F0&E/&D.&C-&B,&A+&@)&?(&>'&=%&<$&;#&9!&8 &7&6&5&2&1&0&/&.&-&,&+&*&)&(&'&&&%&$
&#	&"&!& &&&&&& & & & & & &   \  ypg^ULC:1(}tkbYPG>5,#xof]TKB90'           Q&P&O&N&M&L&K&J&I&H&G&F&E&D&C&B&A&@&?&>&=&<&;&:&9&8&7&6&5&4&3&2&1&0&/&.&-&,&+&*&)&(&'&&&%&$&#&"&!& &&&&&&&&&&&&&&&&&&~&}&|&
z&	y&x&w&v&u&t&r&p&o& n&m&~l&}k&|j&{i&zh&yg&xf&we&vd&uc&   \  ypg^ULC:1(}tkbYPG>5,#xof]TKB90'           26&15&04&/3&.2&-1&,/&+.&*-&),&(+&'*&&)&%(&$'&#&&"%&!$& #&"&!& &&&&&&&&&&&&&&&&	&&&& &&&&& &&~&}&|&{&z&y&x&w&u&t&s&r&q&p&o&n&m&l&k&j&i&h&g&f&e&d&c&b&a&`&_&^&]&\&[&Z&Y&X&W&V&U&T&S&R&   \  ypg^ULC:1(}tkbYPG>5,#xof]TKB90'           &&&&&&&
&	&&&&&&& &&~&}&|&{&z~&y}&x|&w{&vz&uy&tx&sw&rv&qu&pt&os&nr&mq&lp&ko&jn&im&hl&gk&fj&ei&dh&cg&bf&ae&`d&_c&^b&]a&\`&[_&Z^&Y]&X\&W[&VZ&UY&TX&SW&RV&QU&PT&OS&NR&MQ&LP&KO&JN&IM&HL&GK&EI&DH&CG&BF&AE&@D&?C&>B&=A&<@&;?&:>&9=&8<&7;&6:&59&48&37&   \  ypg^ULC:1(}tkbYPG>5,#xof]TKB90'           s&qpo&ml&j&i&h&g&f&e&d&c&b&a&`&_&^&]&\&[&Z&Y&X&W&V&U&T&S&R&Q&P&O&N&M&L&K&J&I&H&G&F&E&D&C&B&A&@&?&>&=&<&;&:&9&8&7&6&5&4&3&2&1&0&/&.&-&,&+&*&(&'&&&%&$&#&"&!& &&&&&&&&&&&&&   \  ypg^ULC:1(}tkbYPG>5,#ypg^ULC:1(             &&F""":" &~&|&s&q&o&m&k&i&g&ed	c&a&_^&["Z&X(V&T
(S
&Q (P	(O	&M (LKJ&HG&ED&@>=<&:&8 '7 '6 '5 '4'3	2'10&.'-,+* ') ( ' &&$ &"]'!' '&&	&&&
&& 
|{zy&u&   \  ypg^ULC:1(}tkbYPG>5,#xog_VNE<3*!              IH&GG&EF&CEBE&@D	>D&<=;C:C&7B&5A4A&0@&.?&,	>+>&)	(	e=&<&;;&:&}9$|9&z8$y8&w7(v7&t6s6&q5(p5&n	m4k4&h3&f2&d1	c1&a0	`0&^/]/\/[/Z/&X.	W.&U-(T-&R,	Q,&O+N+&L*K*&G)C)B)A)&?(>(&<';':'&8&(7&&5%(4%&1$&/.-,#+#*#&("('"&%!$!&" !  &&&&	&"   \  ypg^ULC:1(}tkbYPG>5,#xof]TKB90'                  * * * * * * **~**
	*&&& &}|&z&x&v&t&r&p&n&l&j&h&f~&d}&b|&`{&^z&\y&Zx&Xw&Vv&Tu&Rt&PsNs&Lr&JpIqHq&Fp&DoCo&=n&;m&9l&7k&0j&,h&*g&(f&%e&#ad&c&b&a&`&_&uV&sU&pT&nSlS&jR&hOgPfQ(eQ&cP&aO&_K^N]N&[GZMYM&UL&SK&QJPJ&NHMFLIKI&   ]  {ri`WNE<3*!vmd[RI@7.%
zqh_VMD;2)            "*!***************
*	***** **z*y}*xw*wr*td*rb*p^*oP*nQ*mN*kI*jG*iF*h0*g1*f/*e#*d.*c,*b+*a%*`(*]*\*[*Z*Y*X*W*R
*Q*P*O*M *H *G *F *E *D *C *A *@ *= *< *: *9 *7 *6 *5 *4 *3 *2 *0 */ *. *-t*,*+e***)*(*'*$*#*" *! *i*a* *   \  ypg^ULC:1(}tkbYPG>5,#xof]TKB90'           ******************* **~*|*{*z*w*v*u*t*s*r*p*o*n*m *k*j*i*e*d*b*a*`}*_t*^q*]o*\n*[h*X_*W^*V]*RF*Q>*O=*N<*M;*L)*K(*J'*I"*H *G*F*E*B*A*@*?*>*=*<*;*:*9*7*6*3*2*1*0*/*.*-*,***)*(S*'*&*%*$*#*   \  ypg^ULC:1(}tkbYPG>5,#xof]TKB90'           8+7+6+5+4+3+2+1+0+/+.+-+,+++*+)+(+'&%&#&!&&&&&&&&&&&&	&&&&&&}&{&y&w&u&s&q&o&m&k&i&g&e&c&a&_&]&[&Y&W&U&S&Q&O&M&K&I&G&E&C&A&?&<&:9&7&5&3&1&/&-&+&)&'&%&##* ***** ***   \  ypg^ULC:1(}tkbYPG>5,#xof]TKB90'           [&Y&W&U&RQ&O&ML&JIHGF$E+DC&A@?r>=&;
&9	&7&5&3&1&/&-&+&)&' &%&#&!&&&&&&&&&&&&	&&&&&&}&{&y&w&u&s&q&o&m&k&i&g&e&c&a&_&]&[&Y&W&U&S&Q&O&M&K$J&H&F&D+C&A+@>A=+<+;+:+9+   \  ypg^ULC:1(}tkbYPG>5,#xof]TKB90'           d&
c&bb&aa&``&_(~_&|^{^&y](x]&v\u\&s[r[&pZoZnZ&lY&jX&hW&fV&dU&bT&`S&^R&\Q&ZP&XO&VN&TM&RL&PK&NJ&LI&JH&HG&FF&DE&BD&@C&>B&<A&:@&8?&6>&4=&2<&0;&.:&,9&*8&(7&&6&$5&"4& 33&11&0&/&.&-&,&+&	*&)&(&'&&&%&}$&{#&y"&w!&u &s&q&o&m&k&i&g&e&c&a&_&]&   \  ypg^ULC:1(}tkbYPG>5,#xof]TKB90'              c 0b 0a0`	0_0^~.]0\0[0Z0Y X W V U 0T S R Q PONML&J&H&F&DC&A&?   
  " " qp&n~m~&i}&g|&ey,d{,b{&`y_z^z&\y&Qx&Jw(Iw&Gv,Fv&Cu&At@t?t&=s<s&:r9r&7q6q&4p3p&1o0o&.n-n&*m&(l'l&%d$g#k"k&j&ii&hh&fg&f&ece&   \  ypg^ULC:1(}tkbYPG>5,#xof]TKB90'           VUTS"RQP&N&LK&IH&FEDC&A@&>(=(<&:(9&76&4(32&0&.K-K,K+*&('&%$#"{! &&|}u&&&&&
	&{" &}.{.z&xw&uts0r0q.p.or.n0m0l0k0j[0i10h 0g 0f .e 0d 0   \  ypg^ULC:1(}tkbYPG>5,# {ri`WNE<3*!              i2h.g.f2e.dQ2cN3bN.aF3`F._#3^3]F3\\3[2Z3Y2X 3W 2V 2U2T2SRQ&O&ML&JI&GF&DC	B&@	?&=<&:9	8&65&2&/&,&)&&&$#"& (&&&&&&}1|&z	y&wv&tsrq"poj&g$f&dc&a._&](\&ZY&W   \  ypg^ULC:1(}tkbYPG>5,#{ri`WNE<3*!               f&db&`&^	]&[Z&X	WV&P&N&L&J&H&F&D&B&@&=	<	;	:&8&6&4&2&0&.&,&*&(&&&$#&!
4 b4b.r4434'4(4b4g4g.4.4D4D.4.4444
4	4.4 433333 23~2}3|3{t3z_3yF2x2w2v.u2t2s.r3q2p2o.n2m2l2k3j.   \  ypg^ULC:1(}tkbYPG>5,#xof^VNE<3*!              yxw&u>t s r qpo&m$l $k &i&g^$]\[Z Y X W V $U$T$R$Q&ONML"KJI&GFED"CBA@?>"=<;:&8&6.5&321&/&,&*)(&&%&#"!&&	&&&&&&&&
&&&&& &~&|&z&x&v&t&r&p&n&lk&i&   \  zqh_VNF>5,#xof]TKB90'|sjaXOF=4+"               v+
u*&t*
s)&r)
q(&p(
o'&n'
m&&k%&j%
i$&g#&e"&c!&a &` 
_&^
]&\
[&Z
Y&X
W&V
U&T
S&R
Q&O&N
ML&JI&F&C&A .@.?&=<&:b.9	.8.7.6.5F.4E.2./5.5-+&)(&&%&#&! &&

&	 				&&&	
& _& &~	}&{z   \  ypg^ULC:1(}tkbYPG>5,#xof]TKB90'           #]"]& \\& 8ZZ&XWWWW$W"WWY.
Y&X&W&VV& TU.~U&|T&zRxS&vR&tQ	sQ&qP.pP&nOmO&kNjN&hAgJfL7dM7bK7aM&_L&]K&[I7ZJ&XI&UH&SGRG&PFOF&LE7KC7HE&DC&BB&@A&>@&<>;?:?9?&7>&5=4=&2.<-<& ;&:&9&8&7&6&5&	4&3&2&1&0&/&}.&|.
{-&z-
y,&x,
w+&   \  ypg^ULC:1(}tkbYPG>5,#zqh_VME<3*"               ('&%~$~&"z:!y: A::<:9:: : ::
:}}&$.||&{{&zz&
y	x.y&x&w.w&v9 v*~v}v&{z	y@xu	wu&up.ttst&q5psos&mrlr&jq.iq&gp&eo(do&bn7an&_m7^m&[l&W.Vk.UiTk&Rj.Qj&Oi&Mh7Lh&JfIgHg&Ef&C.Be.A.@e&>d=d&;c.:c&7b&5x4x3x2x$1x"0x/x.a-a&)^(_'_&%^&   \  ypg^ULC:1(}tkbYPG>5,#xof]TKB90'           %$#"! $$&&&;&&;&	 ;;&& &~&|5{&y(x&r(q&o.n-mUlUkUjUibhbgbfb$eb"dbcbbx-a `5_&]&[ZYXWVUTSRQ&ON&LKJI$H"GFE&C	B.A@?&=&;&9	87&5&3&10&.	-&+*&   \  ypg^ULC:1(}tkbYPG>5,#xof]TKB90'           ";! &;;&&&2<<<<<f<<<<
< ~}$|"{zyx&v-u&s-rqpo$n"mlkj&hg&e;dG;ba&_-^.](\&Z(Y&W.V&T&RQ.P&N&LK&IH&FE&C;B=;A@&>=<;":9876543210/&-&+&).('&   \  ypg^ULC:1(}tkbYPG>5,#zqh_VMD;2)               <&.&&&&&&.&	.&==&	 	~&|&z-yx&vuts$r"qpo&ml&jihgf&dc&a.`&^<]2\[&YX&VUTSR&M ;L <K ;J <I<H<<G;FE&C.B&@?>&<-;-9&76&4	3.2&0</.&,_.*8)(.'&%68$ 8# 8   \  ypg^ULC:1(~ulcZQH?6-$	 ypg^ULC:1(            #& >>> >>>>>F>>>>>>>s>[>'>>>
>	=&& &{"z&x&vu&s&onml-k$j"ihgf&dc&a	`._&]\&ZY&W&U T.R&P<ON&LK&IH&FED&B&@	?.>&<;&9;87&5u43.2	1&/&.
-&+*&&.%&#<"&   \  ypg^ULC:1(}tkbYPG>5,#xof]TKB90'           #="!- $"&&


&	;		&&
c5	&&&< &}.|&y&wv&t &rq&o@n.ml&j @h@gs@f @e@d@c@b@a.`&^@]r@\([&Y{5XW&UT;S5R5Q P;ONM&K;JI&GF.E .DC&A.@.>=&;&9;87&43&1&/?.?-&+&'&&   \  ypg^ULC:1(}tkbYPG>5,#xof]TKB91(            ))&Q;'<'(((((&'&;h<;&<&&&$$&#&"&! !&~=| &z.y&w<vu&sX5r=q=p&n&l&j.i&g	f&d	c&a<`_.^&\	[&Y 	X&V	U&S=<R<Q<PO&MLKJ-I$H"GFE BA@?>=&;.:&8>7>6>5>4 >3>2>10/&-&+=*&).(&&%$?   \  ypg^ULC:1(}tkbYPG>5,#xof]TKB90'           7a&5`&3_&1^&/]&-\&+[&)Z(Z&&Y%S$Y&"X!X&WW&V=V&U=U&R=T=T&S&R&LQ&P&	O&N&M&L&K&J&}I&{H&yG&wF&uE&sD&qC=pC&nBmB&kA=jA&h@&f?&b=&^;];&[9Z:=Y:X8<W8V4U4=T:&R9&P8&N7-M7&K6=J5=I6&G5&E4&C2=B3=A3&?2&<1;1&908070&5/(4/&2.<1.&.---,-&*,.)+.(,&&+&$*.#*&!" #   \  ypg^ULC:1(}tkbYPG>5,#ypg^VMD;2)              ;&9B8&6.5&3&1~<0~/~&- C,}B+}&)|B%|&#{	"{& 	zz&yy&;C CxCx&w&m	uv<vv&u&
t	t&qs<ss&rr&q&}p|p&zlxowo&un-tn&rm&pl&nkBmk&kj=jjij&gifi&dfchBbh&`gB_g&]f&[eZ7Ye&VcAUbATaAS`AR_AQ^AP]AO\AN[AMQALPAKOAJNAIMAHJAGIAFGAEFADEACDAB@AA=A@KA?HA>?A;c&9b&   \  ypg^ULC:1(}tkbYPG>5,#xof]TKB90'           :&8C76&4&2B1&/&-<,&)B(A'A&D%D$&"!&&_DDDD&&&DDjDmDDDCD
&&& &~&|{z&x&v5uv.tBs&qp=n&l&j&hFgFfFeBd&ba&_*^]&[DZDYDXDW<VS5U <TBCS&QP&NCM&KwJ;I;HG&EDD&B_CA&?.>&<   \  |sjaXOF=4+"wne\SJA8/&{ri`WNE<3*!               0</&-	,&*<)(B'<&%=$-#$"& &C&<&=-$"&<;&<&=-$" =~-}$|"{zy&w&ut&r=q&on=m&kBj&h 5g5f5edc&ba`_-^$]"\[Z&YX&V&TDS<R&PDO&MCLK&JwBIBH&FBE&C<BBA&?&=<<&   4, ypg^ULC:1(}tkbYPG>5,                                                                                                                                                                                                                                                                                                                                                                                                                                                            {&z
y<xw&u<ts&q5poBnAmHlHkj&h&f&d&bHaH`H_&]&[&YX&V.U&SBRBQ&O&MBL&J.I&G.F&D.C&A@&>C=&;:&8&65&32&
   ^  zqh_VMD;2) ~ulcZQH?6-$	 zqh_VMD;2)             !&@!? &? >&>;&= &< &;&:&9j(X&8:&7	z&6 *#&5 &4 *'&3 &2&0L**&/! *(&. 0*)&- &+*$&* 
:
&)
	&(	&'&&*,&% &$&#2*&" }
|	{qh*	0	*
	&!	#				
   `  wof]ULD;2*!wof^UMD;3*"wof^UMD<3+"	            O&nOmN&mNlM&lMkL&kLjK&jKiJ&iJhI&hIgH&gHfG&fGeF&eFdE&dEcD&cDbC&bCaB&aB`A&`A_@&_@^?&^?]>&]>\=&\==[<&[<Z;&Z;Y:&Y:":X9&X9W8&W8V7&V7U6&U6T5&T5S4&S4R3&R3Q2&Q2P1&P1O0&O0N/&N/M.&M.L-&L-K,&K,G,J+&J+I*&I*E*H)&H)G(&G(F'&F'F'E&&E&D%&D%C$&C$B#&B#A"&A
   ^  xog^VME<4+#	 zqh_VNE<3*!wne\SJA8/&       } |&||{&{{z&z y&y x&x w&w v&v u&uft*-t&t(tt s&s"r&rreq&qq p&p}n&nm&mpl&k&koj&i*i&i:h&hg&gf&f e*+e&ene d&d c&cb&a*a&a8`&~`^&}^|]&|]{\&{\z[&z[yZ&yZxY&xYwX&wXvW&vWuV&uVtU&tUsT&sTrS&rSqR&qRpQ&pQoP&o
   W  {qg]SI?5+"zpg]SI?5+!zpg]SIA7-#           	 &	  	 &	 |	 	 &	 y	 &	 	 .	 &	 &	 	 x	 ,	 *	 &	  	 &	 	  	 *	 & 	 >	 2	 *	 &	 %	  	 &	 h	 &	 	 	 *	 &	 I	 	 &	  	 *	 &	  	 &	 *	 	Y	 g	 	 0	 *	 &	 $	  	 &	 	 & 	 >4	 0	 *	 &	 	 		 &	 	  = *&	 <~*~&~	  
   U  vlcYPF=3) yoe[QG=3)wmcYOE;1'	               	 &	 i	 &	 s	 &	  	 &	  	 *"	 &	  	 :	 &	  	 &	 	 	 <	 ;	 &	 <	 ;	 &	 &	 q	 & 6	 	 & 4	 	 :	 &	  	 >	 *!	 &	 J	  	 &	 	 &	 C	 &	 &	  	 &	 U	 &	  	 &	  	 &	 &	 &	 	  	 &	  	 &	  	 &	  	  	 	  	 &	  	 &	  	 &	  	 &	 z	 &	  	 &	 	  	 &	 	 	 	 	 
   T  ~tj`VLB8.$zpf\RH>4* vlbXND:0&                	 &	  	 (M	 &	  	 @	 *7	 '5	 &	 	  	 (Q	 &	 n	 *6	 &	 	 a	 	 	 	 	 0	 *5	 &	  	 *3	 &	  	 *4	 &	  	 &	 &	 z	 |	 {	 &	 *2	 &	  	 0	 *0	 &	 	 	  	 &	 x	 y	 &	 w	 &	  	 '6	 &	  	 &	  	 L	 &	  	 &	  	 &	  	 &	  	 &	 *.	 &	  	  	  	 */	 &	 	 	 &	  	 &	  	 &	  
   T  ~tj`VLB8.$zpf\RH>4* vlbXND:0&                	 &	 	 &	 	 <	 ;		 &	 *H	 &	 	 &	 *F	 &	 $	 	 *G	 &
	 	 *E	 &		 ,	 	 	 	 	 0	 *D	 &	 	 	 *C	 &	 	 &	 .	 &	 *A	 &	 	 	 0	 *@	 &	 	 	 	 C	 &	 	 &	 	 2	 .	 *=	 & 	 	 		 
	 &	 	 0	 *<	 &	 	 	 *:	 &	 	 &	 	 &	 	 &	 	 	 &	 	 *9	 '8	 &	 	 &	 	 3
   T  ~tj`VLB8.$zpf\RH>4* vlbXND:0&                	&-	"		C	>	0	*X	&,		@	&+	?	&*	>	>	0	*W	&)	&	<	=	&(		&'	7	&&	5	&%	4	
4!	
*R	
&$	
	
K	
2		&#		3	*Q	&"		*P	&!			& 	/	&	,	*O	&			&	+	&	*	&	)	 *M	 &	 (	 8	 &	 %	 8	 &	 '	 8	 &	 &	 &	 #	 &	 E	 !	 *	 '7	 &	 1	 &	 &	 	 &	*[
   T  ~tj`VLB8.$zpf\RH>4* vlbXND:0&                	6d	5&J	5b	4&I	4a	3g	2&H	2c	1*g	1&G	1[	0*h	0&F	0_	/*f	/&E	/Z	.*d	.&D	.X	-&C	-V	,*c	,&B	,W	+*b	+&A	+	)&@	(*`	(&?	(	(Q	'>	'&>	'	'	%*a	%&=	%S	$.	$&<	#3	#*e	#&;	#Y	!&9	!N	 @	 .A	 &8	&7	q	s	r	&6	t	v	u	~	&5	F	5/	&2	3	*]	&1			E	*\	&0	b	D	*Z	&/	B	0	*Y	&.		0	A	6&K
   T  ~tj`VLB8.$zpf\RH>4* vlbXND:0&                	Q;	Q2	Q*n	Q&d	Q	P*o	P&c	P	P	O&b	O	N3	N.	N*m	N&a	N	N	N	M&`	L&_	L	K&^	K,	K.	K-	K	J&]	J	J	J	I*k	I	H&\	G*j	G&[	G+	G	Gp	F3	F.	F*i	F&Z	Fo	E.4	E&Y	E	D&X	D	D	C&W	C	C	B&V	B	B	Bl	A&U	Al	@&T	@j	@k	?&S	?i	?v	>&R	>^	>	=&Q	=]	=u	<:	<&P	<\	;&O	;f	;{	:&N	:h	:/	9:	9&M	9`	9t	R
   T  ~tj`VLB8.$zpf\RH>4* vlbXND:0&                	w&	w	w	v.	v&	v	v	u&	u	t&	t	tw	r4	r*w	r&	r	r	p&	p	o&	n&	n	m&	m	l&~	l	k&}	k	j&|	j	i&{	i	h&z	h	g&y	g	f&x	f	e&w	e	d*t	d&v	d	c5
	c&u	b4 	b.	b*r	b&t	b	a&s	a	`&r	`	_C	_&q	^*p	^&p	^	]&o	]m	\&n	[&m	Z&l	Y&k	X5s	X&j	W&i	W	V&h	V	V	U	U	U	T&g	T	S*	S&f	S	SN	R&e	R	w*x
   T  ~tj`VLB8.$zpf\RH>4* vlbXND:0&                	@	>	2	.	*	&	)			*	&		&				&		&			D	&	&		&		4	*	&		2	.	*	&		*	&		&		&		&		&			&		*z	&			&		&		5	&	&		&		&		&		~&	~	}*y	}&	}	}	}	|&	|H	{	z&	z	y&	y	x&	
   T  ~tj`VLB8.$zpf\RH>4* vlbXND:0&                	&	'	&	&	&	%	*	&	'	$	&	>	2	*	&	!	&		*	&		&		&		*	&		&		*	&		<	&	>	2	*	&		H		*	&		>	3	.	*	&		.W	&	&		&	{	*	&		*	&			&		&			&		*	&			&				
	&	<R	3	.	*	+
   T  ~tj`VLB8.$zpf\RH>4* vlbXND:0&                	&			I	:	&			&	G	&	F	&	E	*	&	D	>	2	*	&			B	A	&	&	@	2	*	&			>	&	C	@	&	;		*	&			=	&	1		<	F	&	:	2	*	&		9	*	&	7	.	*	&		8		*	&	6	2	&	4	&	1	&	.	/	&	,	&	0	(	&	)	&	*	*
   T  ~tj`VLB8.$zpf\RH>4* vlbXND:0&                		&		2	*	&			&		&	*	&			*	&	d	&	c	*	&			b	&		*	&		^	*	&	\	2	.	*	'!	&		[	&	Z	&	X	4	&	W	*	&	Y	3	*	&	V	*	&		8	&	P		&	O	0	*	&		L	*	&			M	*	&				K	*	&		J	&
   T  ~tj`VLB8.$zpf\RH>4* vlbXND:0&                	&					*	&	 			&	 		&		&		&		&					2	*	&			*	&		&	$	"					 &	 $	 "	 	 	 	 	 	&		*	&			*	&		&		;e	*	& 		&		D	<	*	&	
		2	.	*	&		&		*	&		&			&	
   T  ~tj`VLB8.$zpf\RH>4* vlbXND:0&                	2&.	2Y	1&-	1Z	0
X	/&,	/W	.&+	.V	-&*	-U	,&)	,T	+&(	+S	*&'	*R	)*	)&&	)Q	(4	(*	(&%	(	P	(O	'4	'*	'&$	'N	&&#	&M	%&"	%L	$&!	$D	$G	#& 	#F	"*	"&	"<	";	"?	">	"=	!&	!8	 *	 &	 9	*	&	6		7	5	*	&	4	3	2	&	/	.	*	&	-	<	&			<	&	
	*	&				&		F	@	*	3[
   T  ~tj`VLB8.$zpf\RH>4* vlbXND:0&                	N	N	N	N	M&I	M	M	M	M	L&H	L	K&G	K	K	I&E	I	H&D	H	H	H	H	H~	G&C	G	|	F>	F2	F.5	F*	F&B	F"	F	{	Fz	E&A	Ew	D&@	Dx	C&?	Cs	Cv	Cu	Ct	B&>	Bq	A:	A&=	Ao	Ap	Ar	@&<	@y	?&;	?l	?k	>*	>&:	>y	=<S	=;B	=*	=&9	=j	<*	<&8	<i	<h	;*	;&7	;g	;f	:&6	:e	9&5	9d	8&4	8`	7&3	7_	6&2	6^	5&1	5]	4&0	4\	N&J
   T  ~tj`VLB8.$zpf\RH>4* vlbXND:0&                 	e	e
(	d&`	d	c&_	c	b&^	b	a&]	a	a	a	a	`&\	`	_3	_*	_&[	_	_	^*	^&Z	^$	^"	^	^	^	]*	]'"	]&Y	]	\&X	\	[&W	["	[	Z&V	Z	Z	Z	Z	Y&U	Y	Y	Y	Y	X&T	X}	X	X	X	X	W&S	W	W	W	W	V&R	V	U&Q	U	U	U	U	T&P	T	S&O	S	R&N	R	R	Q&M	Q	Q	Q	Q	P&L	P	P	P	P	O&K	O"	e"
   T  ~tj`VLB8.$zpf\RH>4* vlbXND:0&                	X	&~	V	<	&}	*	&|	T	S	*	'4	&{	R	~&z	~N	~O	}*	}&y	}M	|&x	|K	{5	{&w	z:	z&v	zI	y:	y&u	yH	x&t	x	D	w&s	wC	wB	v&r	v	u&q	u=	u@	u?	u>	u5	t3	t*	t&p	t<	s&o	s;	r@	r.	r&n	r6	r9	r8	r7	q*	q&m	p&l	p3	o*	o&k	o2	n*	n&j	n1	m&i	m5	l&h	l-	k&g	k+	j&f	j,	i&e	i)	h*	h&d	h'	h&	g&c	g%	f&b	f$	&
   T  ~tj`VLB8.$zpf\RH>4* vlbXND:0&                			&	&	&	&	&	;	&		&			&			&			&		&		&		~	;C	*	&	"	|	3	*	&	{	*	&	z	y	&	w	&	s	t	2	*	&	"	p	o	&	>	&	3	.6	&	r	3	*	&	h	g	&	u	.A	*	&	&	b	c	&	a	n	5q	&	&		&	^	*	&	]	&	\	&
   T  ~tj`VLB8.$zpf\RH>4* vlbXND:0&                		*	&		&								* 	&		&	&	3	.	*	&		@	3	.	*	&		&	&	&	*	&		&	&	&		&		0	*	&		&						*	&		&		&		&		&		&		0	*	&		*	&		>	2 	*	&		&		*	&		*	&		&
   T  ~tj`VLB8.$zpf\RH>4* vlbXND:0&                	
	&	&	&	&	&	&	&		 	&	&		3	*	&		&		&	*	&		*	&		&		&							&	"	&	"	*	&		&		&		&						%	*	&		&							$	&		&		&			*	&		&			&			0	*	&		&	
   T  ~tj`VLB8.$zpf\RH>4* vlbXND:0&                	*	'.	&&	-	+	,	 4	 *	 '*	 &$	 )	 '	 (	0	*	&			&		*	&				4	.	*	&			*	&			*	&
			&	
 	*	&				&	&	*	&			>	3	*	&		0	*	&	 		' 	&		*	&		*	&			*	&			.	&		*	&			3	4
   T  ~tj`VLB8.$zpf\RH>4* wmcYOE;1'	                 	(	'&	'	'	&(	&&	%(	%&	$&	#*#	#&	#	#	"(	"&	!&	!	 &	 	&		&		&		&				&	"	
)	.	&	4	* 	&			&~	&|	&s	&q	&o	&m	&k	&i	&g	&c	e	&a		d	&^	_	&Z	"[	&V	
(T	
&S		(P		&O	4
	*	&J	L	K	&G	H	&D	E	>	4		.	*	&<	@	0	*	&:	>	=	'2	&0	1	(&
   T  ~tj`VLB8.$zpf\RH>4+!wmcYOE;1'	                 	O
h	N&
]	N
^	M&
Y	M
Z	L&
U	K&
S	K
_	J&
P	J
Q	I&
K	I
L	H&
I	H
N	G;d	G&
G	G
[	F3	F&
E	F
M	E&
B	E
C	D4	D.	D&
>	D	
@	C&
:	C
;	BC	B&
7	A&
4	A
5	A	@&
0	?&
.	>&
+	>	>
,	=&		=
<	<<	<;	<&		;&		;		:&	9&	9$	8&	8$	7(	7&	6&	6	5(	5&	4&	4	3&	2<	2&	1&	1		0&	0		/&	/	/	/	/	.&	.		-(	-&	,&	,		+&	+	*&	*	)&	)	)	O&
a
   T  ~tj`VLB8.$zpf\RH>4* vlbXND:0&                	&A	&?	&<	&9	:	&7	&5	&3	&1	&/	&-	&+	&)	&'	&%	&	&		&		&
	 	&
	
	A	&
	&
	&
	&
	&
	&
	&
	&
	&
	&
	~&
	}&
	|&
	{&
	z&
	y&
	x&
	w&
	v&
	u&
	t&
	s&
	s
	r&
	r?	q&
	q
	p&
	p
	o&
	o
	n&
	m&
	l&
	k&
	j&
	h&
	g&
	f&
	e&
	d&
	c&
	b&
	a&
	a
	`&
	_D	_.	_&
	V&
u	U&
s	T&
p	S&
l	S
n	R&
j	Q(
f	Q&
e	P&
c	&C
   T  ~tj`VLB8.$zpf\RH>4* vlbXND:0&                	&	&	$	&	$F	+E	&	+	&	+	&	+	&	+	&	+	&	+	&	+	&	+	&	+	&	+	&	+	&	+	&	+	&	+	&	+	&	+	&	+	&	+	&	+	&	+	&	+	&	+	&	+	&}	&{		+	&y	@	&w	&u	&s	&q	&o	&m	&k	&i	&g	&e	&c	&a	&_	&]	&[	&Y	&W	&U	&S	&Q	&O	&M	&K	&I	&G	&
   T  ~tj`VLB8.$zpf\RH>4* vlbXND:0&                	!&w	 &u	&s	&q	&o	&m	&k	&i	&g	&e	&c	&a	&_	&]	&[	&Y	&W	&U	&Q	R	&O	&L	M	&C	G	J	I	H	D	&=	
&;		&9	&7	&5	&3	&1	&/	&-	&+	&)	 &'	&%	&#	&!	&	&	&	&	&	&	&	&	&	&	&	&		&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	"&y
   T  ~tj`VLB8.$zpf\RH>4* vlbXND:0&                	d%	c&
	c	b4	b.:	b&	b	a&	a	`&	`	_(	_&	^&	^	](	]&	\3	\&	\	[>	[0	[&	[	Z&	Z	Z	Y&	X&	W&	V&	U&	T&	S&	R&	Q&	P&	O&	N&	M&	L&	K&	J&	I&	H&	G&	F&	E&	D&	C&	B&	A&	@&	?&	>&	=&	<&	;&	:&	9&	8&	7&	6&	5&	4&	3&	3	10	1&	1	0&	/&	.&	-&	,&	+&	*&	)&	(&	'&	&&	%&	$&}	d&
   T  ~tj`VLB8.$zpf\RH>4* vlbXND:0&                	&		&		&		&			&		&			&		&p	q	~.	~&m	~n	}&i	}	|&g	|	{,d	{&b	{	{"	z&^	z_	y,e	y&\	y`	x-	x&Q	x$2	x"1	x0	x/	x5	x4	x3	w(J	w&I	v,G	v&F	u&C	u	t&?	t@	tA	s&<	s=	r&9	r:	q&6	q7	p&3	p4	o&0	o1	n&-	n.	mD	m&*	l&'	l(	k&"	k#	jD	j&	i&	i	h&	h	g4	g.	g&	g$	f&	f	e&	&
   T  ~tj`VLB8.$zpf\RH>4* vlbXND:0&                	p	o	t	s	r	&f	$g	;	4	&c	d	@	.a	&_	>7	(]	&\	&Y	Z	&P	"S	R	Q	V	U	T	&N	W	D	&K	L	D	&H	I	&C	D	4	.	&@	A	(=	&<		(:	&9	F	(>	&6	7	(4	&2	E	&0	3	&*	+	&'	(	&	!	&	 	&		&		&		&		&		#	&			
	&	"		 				"q
   U  ~tj`VLB8.$zpf\RH>4*!xndZPF=3*          	&:	&8	&6	&4	&2	&0	&.	&,		&*	=	&(	<	&&	;	&#	$	3	&		2	&		4	&		&		&		:	&			&				&			&			4	&		<	&	<	&	&	<	&	<	&	&		(	&	&			&		4	.C	&	2	&		&						1}	&|	>2	&y		z	&v	w	D	&@
   T  ukaWMC9/%{qg]SI?5+!wmcYOE;1'	                 	$	"							&	"						&			&			&		>	.	&	&			&		&		&		>5	.7	&			&	&	&	&	&	&	&	&	&	&	&	&	&	&~	&|	&z	&x	&v	&t	&r	&p	&n	&k	l	&i	&f	&b	>	&`	d	&]		^	&Z	[	&V	W	&P	X	&N	&L	&J	&H	&F	&D	&
   T  ~tj`VLB8.%|rh^TJ@6,"xndZPF<2(
                  	 
`	&_	
^	&]	
\	&[	
Z	&Y	
X	&W	
V	&U	
T	&S	
R	&Q	&O	
N	&L	M	&I	J	&F		D	&C	.@	&?	&<	=		.2	&+	-	&(	)	&%	&	5.	&#	&		&	
&	
		.9		&			&		&	 	!	.8	&
			&				& 			&			-	&		&		 &	 $	&	$	&	$	&	$	"					 &a
   T  ~tj`VLB8.$zpf\RH>4* vlbXND:0&                	U.	U&	T&	T 	S5	S&	R&	R	Q&	Q		P.	P&	O&	O	N&	N	M7	M&	L7	L&	K7	K&	J&	J	I7	I&	H&	G&	G	F&	F	E7	E&	C7	C&	B&	A&	A	@&	?&	?	?	>&	>	=&	=	<&	<	;&	:&	9&	8&	7&	6&	5&	4&	3&	2&	1&	0&	/&	.&}	.
|	-&{	-
z	,&y	,
x	+&w	+
v	*&u	*
t	)&s	)
r	(&q	(
p	'&o	'
n	&&m	%&k	%
j	$&i	#&g	"&e	V
   T  ~tj`VLB8.$zpf\RH>4* vlbXND:0&                	z	y&	y	x.	x&	w.	w&	v9	v*	v&}	v~	u&w	u	x	t&s	tt	s@	s>	s&o	sp	r&l	rm	q.j	q&i	p.u	p&g	o(e	o&d	n7b	n&a	m7_	m&^	l&[	k.V	k&T	j.R	j&Q	i&O	iU	h7M	h&L	g&H	gI	f<	f&E	fJ	e.B	e&@	d&=	d>	c.;	c&:	b&7	b$	b"	b	b	b	b	b	a&-	a.	_&'	_(	^&%	^)	]&"	]#	\&	\ 	Z&	Z	Y.	Y&
	X&	X	W&	W$	W"	W	W	W	W	W	z&
   T  ~tj`VLB8.$zpf\RH>4* vlbXND:0&                	"	!	%	$	#	&		&		;	&		&		;	&		;	&		&		& 		.)	&	5	&	(	&	(	&	5	&	.	&	&						&		&	$	"						D	;	&		;	&		.	-	&	&		&			&			&		&			&		&		~&	~	}&	}	|&	|	{&	&
   T  ~tj`VLB8.$zpf\RH>4* vlbXND:0&                	&		.	&	;	&		;	&		&		&		&x	$}	"|	z	y			~	{	-v	&u	-	&j	$o	"n	m	l	r	q	p	k	<	&g	h	-s	&a	b	(]	&\	(Z	&Y	>8	.W	&V	=	.^	&T	.Q	&P	&N	R	-_	&K	L	&H	I	&E	F	&@	A	&/	";	:	9	>	=	<	&-	5	4	8	7	6	&+	0	3	2	1	&'	<
   T  ~tj`VLB8.$zpf\RH>4* xndZPF<2(
                  	&-		2	&*	+	.&	&%	<#	&"	< 	&	&	4	.	&	>	&		&		&		&		.	&	.		&	=	&	&	 		&			=	-	&		&	$	"						;	&		&					&		.	&	<	2	&		&		&					;	&		.	&	&		&	1	&		.	&	>3
   T  ~tj`VLB8.$zpf\RH>4* vlbXND:0&                	&		.	&	5	&	;	&		&		5	&	?	&	?	&	&		D	&	D	&		&		&		&z	"{	&x		&u	v	&s		-l	&f	$k	"j	i	h	o	n	m	g	&c	d	.`	&_		a	>	&\	]	&Y	Z	.	&W	5f	&R	<P	&N	O	.T	&K	<Q	&H	I	&D	F	&B	E	.?	&>		@	&;	<	;9	&7	8	.3	&1	&/	;
   T  ~tj`VLB8.$zpf\RH>4* vlbXND:0&                	&U		V	&O	P	5g	&=	.;	&:	&/	0	-J	&-	$I	"H	G	F	M	L	K	=+	&*	.)	&(	?$	>6	=#	-!	&	$ 	"			&	%	"		&			
&	
	
		;		&			&		&		>	&	B	&		A	&		@	<	&	 	.	&	&		?	 &	 E	&		@	.	&		@	.	&	(	&	&		&		&	`
   T  ~tj`VLB8.$zpf\RH>4* vlbXND:0&                	:	9&	9	8<	8&	8	7-	7&	7Z	6=	6&	5=	5&	4=	4&	4	3=	3&	2=	2&	1&	1	0&	0	0	/(	/&	.<	.&	-&	-	-	,.	,&	+.	+&	*.	*&	)&	)	(&	(	(	(	(	'<	'&	'	&<	&&	&	$&	$	#&	#	"&	"	!&	!	 5h	 &|	.z	&y	<w	&u	v	=r	&p	=q	&n	=~	&l	.j	&i	&f		g	&c		d	._	&^	&[		\	<a	:&
   T  ~tj`VLB8.$zpf\RH>4* vlbXND:0&                	f&]	fd	e&Y	e[	cAV	c&;	bAU	b&9	aAT	a&7	`AS	`&5	_AR	_&3	^AQ	^&1	]AP	]&/	\AO	\&-	[AN	[&+	Z&(	Z)	Y&$	Y&	X&!	X"	W&	W	V=	V&	U=	U&	T=	T&	S&	S%	R=	R&	QAM	Q&	PAL	P&	OAK	O&		NAJ	N&	MAI	M&	L&	L	KA@	K&	JAH	J&	IAG	I&	HA?	H&	GAF	G&	FAE	F&	EAD	E&	DAC	D&	C=	C&	B&	B	A=	A&	@AB	@&	?A>	?&	=AA	=&	;C	;&	;	g&_
   T  ~tj`VLB8.${qh^TJ@6,"xndZPF<2(
                  	C	&	B	&	&		F	*	&		&		&		C	&	;	&		B)	&	A(	&	.	&	&		B	&	.	&	5	&	~<	~&	~	}B	}&	|B	|&	{&	{		z&	z	y&	y	xC	x&	wBJ	w&	v<	v&	v	u&	u	t&	t	s<	s&	s	r&	r	q&	q	p&|	p}	o&w	ox	n-u	n&t	m&r	m	l&p	lz	kBn	k&m	j=k	j&i	jj	i&f	ig	hBc	h&b	&
   T  ~tj`VLB8.$zpf\RH>4* vlbXND:0&                	&q	=n	&m	o	Bk	&j	&c	d	-_	&Z	$^	"]	\	[	b	a	`	&X	Y	<	&V		DT	<S	&R	DP	&O	CM	&K	BI	&H	BF	&E	BB	&A	<C	&?	<=	&<	&:	e	C8	&6	7	B	&4	B	&1	B2	&/	<-	&,	D%	&$	&!	"	D&	&	D	&	D	&	D	&	D	&
		&		&		A'	& 	&		&		&		B	&	&		=r
 S  ~tj`VLB8.$zpf]SI?5+!wmcYOE;1'	                 	&	H	&	A	&	H	&	H	&	H	&	&		.	&	B	&	B	&	B	&	.	&	.	&	.	&	&		C	&	&		&		&		&		<	&	&		=	-	&	$	<	&		C	&		<	&		=	-	&	$	"	<	;	&		<	&	=	-	&y	$	"			=	-~	&w	$}	"|	z		{	&t   
H
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           L	&	
	<	&		<	&		&	    ? xE*q8r@"     b ?   ! !/  ExceptionsDefinedExceptions  !-  ExceptionsCaughtExceptions -  ConstantsPhpConstantUsage! 1  ConstantsMagicConstantUsage- -ConstantsInconsistantCaseS_MINORT_QUICK) 'ConstantsConstantnamesS_MINORT_SLOW '  ConstantsConstantUsage0 5ConstantsConstantStrangeNamesS_MINORT_SLOW -  ClassesStaticProperties8 GClassesStaticMethodsCalledFromObjectS_MINORT_QUICK '  ClassesStaticMethods 1  ClassesPropertyDefinition. 3ClassesOldStyleConstructorS_MINORT_QUICK7 EClassesNonStaticMethodsCalledStaticS_MINORT_QUICK# ClassesNonPppS_MINORT_INSTANT #  ClassesMagicMethod% !ClassesEmptyClassS_MINORT_QUICK
 1  ClassesConstantDefinition	 !  ClassesClassnames !  ClassesClassUsage '  ArraysPhparrayindex1 7ArraysMultipleIdenticalKeysS_MINORT_INSTANT -  ArraysMultidimensional !  ArraysArrayindex' 'ArraysAmbiguousKeysS_MINORT_QUICK' !StructuresAddZeroS_MINORT_INSTANT   ! U gL2 gB%
v]D+     p U           > !  ExtensionsExtmysqli%= !ExtensionsExtmysqlS_MAJORT_SLOW< !  ExtensionsExtmssql; !  ExtensionsExtmongo&: !ExtensionsExtmcryptS_MAJORT_SLOW9 !#  ExtensionsExtmbstring8 !  ExtensionsExtlibxml7 !  ExtensionsExtldap6 !  ExtensionsExtkdm55 !  ExtensionsExtjson4 !  ExtensionsExticonv3 !  ExtensionsExthash2 !  ExtensionsExtgnupg1 !  ExtensionsExtgmp0 !  ExtensionsExtgd/ !  ExtensionsExtftp. !  ExtensionsExtfilter- !#  ExtensionsExtfileinfo#, !ExtensionsExtfdfS_MAJORT_SLOW+ !  ExtensionsExtexif%* !ExtensionsExteregS_MAJORT_QUICK) !!  ExtensionsExtenchant( !  ExtensionsExtdom#' !ExtensionsExtdbaS_MAJORT_SLOW& !  ExtensionsExtdate% !  ExtensionsExtcurl$ !  ExtensionsExtctype# !  ExtensionsExtcrypto" !#  ExtensionsExtcalendar! !  ExtensionsExtbzip2  !  ExtensionsExtbcmath# !ExtensionsExtapcS_MAJORT_SLOW  !-  ExceptionsThrownExceptions   " \ gM0sW?uZ<!      \                *a 'FunctionsEmptyFunctionS_MINORT_QUICK`   FunctionsClosures^ !  ExtensionsExtzlib] !  ExtensionsExtzip\ !  ExtensionsExtyaml[ !  ExtensionsExtxslZ !%  ExtensionsExtxmlwriterY !  ExtensionsExtxmlrpcX !%  ExtensionsExtxmlreaderW !  ExtensionsExtxdebugV !  ExtensionsExtwddxU !%  ExtensionsExttokenizerT !  ExtensionsExttidyS !#  ExtensionsExtstandardR !  ExtensionsExtssh2Q !!  ExtensionsExtsqlite3&P !ExtensionsExtsqliteS_MAJORT_SLOWO !  ExtensionsExtsplN !!  ExtensionsExtsocketsM !  ExtensionsExtsoapL !  ExtensionsExtsnmpK !%  ExtensionsExtsimplexmlJ !  ExtensionsExtshmopI !!  ExtensionsExtsessionH !  ExtensionsExtsemG !'  ExtensionsExtreflectionF !#  ExtensionsExtreadlineE !  ExtensionsExtposixD !  ExtensionsExtpharC !  ExtensionsExtpgsqlB !  ExtensionsExtpdoA !  ExtensionsExtpcre@ !!  ExtensionsExtopenssl? !  ExtensionsExtodbc    b iO oX7e7"    b                                    5} !;StructuresCalltimePassByReferenceS_MINORT_QUICK-| !+StructuresBreakNonIntegerS_MINORT_QUICK${ !StructuresBreak0S_MINORT_QUICKz '  PhpTryCatchUsagey /  PhpTriggerErrorUsagex !  PhpThrowUsage,w 7PhpPhp55RemovedFunctionsS_MAJORT_QUICK,v 7PhpPhp54RemovedFunctionsS_MAJORT_QUICKu !  PhpLabelnames%t %!PhpIncompilableS_CRITICALT_SLOWs %  PhpHaltcompilerr   PhpGotonames#q !PhpCaseForPSSS_MINORT_INSTANTp '  PhpAutoloadUsagen !+  NamespacesNamespacesnamesm !  NamespacesAliasl !  InterfacesPhpk !)  InterfacesInterfacenamesj !)  InterfacesInterfaceUsage.i !)InterfacesEmptyInterfaceS_MINORT_INSTANT*h 'FunctionsWithoutReturnS_MINORT_QUICK-g -FunctionsUnsetOnArgumentsS_MINORT_QUICKf   FunctionsTypehints1e 7FunctionsRedeclaredPhpFunctionS_MINORT_SLOWd   FunctionsRecursivec '  FunctionsFunctionnames*b C  FunctionsFunctionCalledWithOtherCase    > r?	[1~L      l U >       !  TypeHttpStatus !  TypeHttpHeader #  TypeHexadecimal   TypeHeredoc   TypeEmail !  TypeContinents TypeBinaryS_MAJORT_QUICK5 !;StructurestoStringThrowsExceptionS_MAJORT_QUICK/ !%!StructuresVardumpUsageS_CRITICALT_INSTANT/ !+StructuresThrowsAndAssignS_MINORT_INSTANT+ !'StructuresStrposCompareS_MAJORT_QUICK) !StructuresShortTagsS_MINORT_INSTANT)
 !#StructuresPlusEgalOneS_MINORT_QUICK*	 !%StructuresPhpinfoUsageS_MAJORT_QUICK' !StructuresOnceUsageS_MINORT_QUICK& !StructuresNotNotS_MINORT_INSTANT& !StructuresNoscreamS_MINORT_QUICK- !'StructuresMultiplyByOneS_MINORT_INSTANT) !#StructuresIffectationS_MINORT_QUICK3 !3StructuresForgottenWhiteSpaceS_MINORT_INSTANT0 !3StructuresForWithFunctioncallS_MINORT_SLOW'  !StructuresExitUsageS_MAJORT_QUICK' !StructuresEvalUsageS_MAJORT_QUICK9~ !?StructuresErrorReportingWithIntegerS_MINORT_INSTANT     J tbF/pA|_@$
    u c J  : !  TraitsTraitUsage9   TraitsPhp&8 !TraitsEmptyTraitS_MINORT_INSTANT7 -  ConstantsVariableConstant,6 -ConstantsBadConstantnamesS_MINORT_SLOW5 #  ClassesFinalmethod4 !  ClassesFinalclass3 %  ClassesCloningUsage2 +  ClassesAbstractmethods1 '  ClassesAbstractclass / /  VariablesVariableVariables/. -VariablesVariableUsedOnceS_MINORT_INSTANT-- /VariablesVariableUppercaseS_MINORT_SLOW, #  VariablesVariablePhp + /  VariablesVariableOneLetter,* -VariablesVariableNonasciiS_MINORT_SLOW) %  VariablesVariableLong( +  VariablesStaticVariables' !  VariablesReferences!& 1  VariablesInterfaceArguments%   VariablesBlind#   TypeUrl" %  TypeUnicodeBlock! !  TypeCharString  +  TypeSpecialIntegers   TypePorts   TypePcre   TypeOctal   TypeNowdoc   TypeMimeType   TypeMd5String( )TypeMalformedOctalS_MINORT_INSTANT    [ e9}T(\:    [                                 3U 9FunctionsWrongOptionalParameterS_MINORT_QUICK7T AConstantsMultipleConstantDefinitionS_MINORT_QUICK(S #ConstantsInvalidNameS_MAJORT_QUICKR #  TraitsTraitMethod'Q /PhpPhp56NewFunctionsS_MAJORT_SLOWP !+  InterfacesInterfaceMethod)N )ClassesAbstractStaticS_MINORT_QUICK0M !1StructuresUselessInstructionS_MINORT_QUICK'L /PhpPhp55NewFunctionsS_MAJORT_SLOW'K /PhpPhp54NewFunctionsS_MAJORT_SLOWJ !  ExtensionsExtyis)I -PhpUpperCaseKeywordS_MINORT_INSTANT&H -PhpRawPostDataUsageS_MAJORT_SLOWG !  ExtensionsExtmathF !  ExtensionsExtinfoE !  ExtensionsExtffmpegD !  ExtensionsExtarrayC !  NamespacesUsedUse4B !;NamespacesUseWithFullyQualifiedNSS_MINORT_SLOW)A !NamespacesUnusedUseS_MAJORT_INSTANT@ !  ExtensionsExtfile> !%  StructuresIncludeUsage)= %!ArraysArrayNSUsageS_CRITICALT_QUICK< /  PhpAlternativeSyntax; !  TraitsTraitnames    ` i+o8d4    `                                                2i !5StructuresSwitchWithoutDefaultS_MAJORT_QUICK1h !3StructuresMultipleDefinedCaseS_MINORT_QUICK/g 1FunctionsOneLetterFunctionsS_MINORT_QUICK6f !9StructuresOneLineTwoInstructionsS_MAJORT_INSTANT-e !'StructuresWhileListEachS_MINORT_INSTANT)d 1PhpClosureThisSupportS_MINORT_QUICK-c 1ClassesStaticContainsThisS_MAJORT_QUICK%b %PhpEchoTagUsageS_MINORT_INSTANT"a PhpCloseTagsS_MINORT_INSTANT(` !#StructuresNestedLoopsS_MINORT_SLOW4_ !5StructuresFunctionSubscriptingS_MINORT_INSTANT^ %  PhpCastingUsage,] 1TypeOneVariableStringsS_MINORT_INSTANT+\ -ClassesThisIsNotAnArrayS_MAJORT_QUICK[ )  PhpAssertionUsage*Z #PortabilityFopenModeS_MINORT_INSTANT;Y !GStructuresConstantComparisonConsistanceS_MINORT_QUICK(X /PhpIsnullVsEqualNullS_MINORT_QUICK2W !5StructuresEchoPrintConsistanceS_MINORT_QUICK4V 7FunctionsMultipleSameArgumentsS_MAJORT_INSTANT    Y b4t<pV-     Y                                     0  !-StructuresHtmlentitiescallS_MAJORT_INSTANT '  ConstantsIsExtConstant~ !)  InterfacesIsExtInterface} '  FunctionsIsExtFunction| !  ExtensionsExtredis${ !ExtensionsExtmingS_MAJORT_SLOW&z ClassesWrongCaseS_MINORT_INSTANTy !  ClassesIsExtClass*x -ClassesUndefinedClassesS_MAJORT_SLOWw !  ExtensionsExtpcntl+v !'StructuresEmptyTryCatchS_MINORT_QUICK&u #ClassesCitSameNameS_MINORT_QUICK*t +ClassesMutualExtensionS_MAJORT_QUICK5s AClassesInstantiatingAbstractClassS_MAJORT_QUICK"r 3  ConstantsCustomConstantUsage/q 1ConstantsUndefinedConstantsS_MINORT_QUICK,p -ArraysNonConstantArrayS_MINORT_INSTANT7o !?StructuresSwitchWithMultipleDefaultS_MINORT_QUICK+n !'StructuresNestedTernaryS_MAJORT_QUICK+m -ClassesThisIsForClassesS_MAJORT_QUICK3l 9ClassesPropertyUsedInternallyS_MINORT_INSTANT7j !;StructuresFunctionPreSubscriptingS_MINORT_INSTANT    W O,~E~D)    W                                     1 5FunctionsUsesDefaultArgumentsS_MINORT_QUICK) %FunctionsAliasesUsageS_MINORT_QUICK& #ClassesOldStyleVarS_MINORT_QUICK* !'StructuresQueriesInLoopS_MAJORT_SLOW !  ExtensionsExtsqlsrv !  ExtensionsExtcyrus7 !;StructuresDanglingArrayReferencesS_MAJORT_INSTANT; !CStructuresMcryptcreateivWithoutOptionS_MINORT_INSTANT0 !-StructuresCryptWithoutSaltS_MINORT_INSTANT! !PhpDeprecatedS_MAJORT_QUICK/ 1FunctionsUndefinedFunctionsS_MAJORT_QUICK6
 ?VariablesVariableUsedOnceByContextS_MINORT_QUICK*	 'FunctionsUsedFunctionsS_MINORT_QUICK, +FunctionsUnusedFunctionsS_MINORT_QUICK. 3ClassesUnusedPrivateMethodS_MINORT_QUICK /  ClassesUsedPrivateMethod  3  ClassesUsedPrivateProperty0 7ClassesUnusedPrivatePropertyS_MINORT_QUICK- 1ClassesUndefinedConstantsS_MAJORT_QUICK -  ClassesDefinedConstants+ !#StructuresBracketlessS_MINORT_INSTANT    Q o@V!l=    j Q                             2 !  ExtensionsExtzmq*1 +ClassesPssWithoutClassS_MAJORT_QUICK*0 +ClassesAccessProtectedS_MAJORT_QUICK(/ 'ClassesAccessPrivateS_MAJORT_QUICK,. /ClassesUndefinedStaticMPS_MINORT_QUICK- +  ClassesDefinedStaticMP,, /ClassesUndefinedParentMPS_MINORT_QUICK.+ +ConstantsUnusedConstantsS_MINORT_INSTANT%) !7  StructuresConditionalStructures*( !'NamespacesUnresolvedUseS_MAJORT_SLOW,' -ConstantsConstRecommendedS_MINORT_SLOW2% ;ClassesImplementIsForInterfaceS_MINORT_QUICK)$ +ClassesTooManyChildrenS_MINORT_SLOW,# 1ClassesUselessConstructorS_MINORT_SLOW! #  ClassesConstructor"  #PhpNewExponentS_MINORT_QUICK& 'PhpExponentUsageS_MAJORT_INSTANT# 'PhpEllipsisUsageS_MAJORT_SLOW, /ClassesUnresolvedClassesS_MAJORT_QUICK' #FunctionsLoopCallingS_MINORT_SLOW. 1FunctionsHardcodedPasswordsS_MAJORT_SLOW3 9FunctionsWrongNumberOfArgumentsS_MAJORT_QUICK    F jJ+R)r@   x F              /N !+StructuresUnreachableCodeS_MAJORT_INSTANT*M )FunctionsMultipleReturnS_MINORT_SLOW*L /PhpUpperCaseFunctionS_MINORT_INSTANT6K !=StructuresConstantScalarExpressionS_MAJORT_QUICK2J !7NamespacesUseFunctionsConstantsS_MAJORT_SLOW/H !1StructuresConstantConditionsS_MINORT_SLOW#G !StructuresOrDieS_MINORT_QUICK+F !'StructuresListOmissionsS_MINORT_QUICK1E !3StructuresEmptyWithExpressionS_MAJORT_QUICK,D !+StructuresForeachWithListS_MINORT_SLOW&C -PhpStaticclassUsageS_MAJORT_SLOW-B !+StructuresDereferencingASS_MAJORT_QUICK A !PhpPassword55S_MAJORT_SLOW@ !!  StructuresTryFinally? #  FunctionsIsGenerator#> 5  ConstantsConditionedConstants#= 5  FunctionsConditionedFunctions< +  ClassesVariableClasses; !'  StructuresMultipleCatch : /  FunctionsVariableArguments9 #  FunctionsDynamiccall6 !  TraitsIsExtTrait5 !%  ExtensionsExtmemcached4 !#  ExtensionsExtmemcache    P c6}[7y_D   } P                          *f -ClassesOverwrittenConstS_MAJORT_SLOWe !  ExtensionsExtimap;d !GStructuresForeachReferenceIsNotModifiedS_MINORT_QUICK9c !CStructuresForeachNeedReferencedSourceS_MINORT_QUICK0b !1ExceptionsOverwriteExceptionS_MINORT_QUICKa #  ClassesUsedMethods` !  ExtensionsExtoci86_ !?StructuresPropertyVariableConfusionS_MINORT_SLOW'^ 'ClassesUnusedMethodsS_MINORT_SLOW] !!  ExtensionsExtimagick\ #  PhpSetHandlers$[ 7  FunctionsHasNotFluentInterface!Z 1  FunctionsHasFluentInterfaceY 1  ClassesHasFluentInterface:X GFunctionsWrongNumberOfArgumentsMethodsS_MAJORT_QUICK&W !ArraysEmptySlotsS_MINORT_INSTANT"V ArraysMixedKeysS_MINORT_SLOW+T 3TypeStringInterpolationS_MINORT_QUICK*S !!StructuresEmptyLinesS_MINORT_INSTANT$R )PhpdebugInfoUsageS_MINORT_SLOW'Q !FunctionsMustReturnS_MAJORT_QUICK/P 3VariablesWrittenOnlyVariableS_MINORT_SLOWO   FunctionsKillsApp    G tQwHfK-      a G              FunctionsIsGlobal /  SecuritySensitiveArgument '  ConstantsIsPhpConstant  !!  ExtensionsExtopcache !)  StructuresNoDirectAccess~ !  ExtensionsExtpspell.} !)StructuresUnpreprocessedS_MINORT_INSTANT| !#  StructuresDynamicCodez !  ExtensionsExtcairoy !  ExtensionsExtintlx   ClassesUsedClass&w #ClassesUnusedClassS_MAJORT_QUICK.v 7PhpReturnWithParenthesisS_MINORT_INSTANTu !+  StructuresFileUploadUsage0t 7ClassesMultipleClassesInFileS_MINORT_QUICK,r 'FunctionsUselessReturnS_MINORT_INSTANT0p !1StructuresComparedComparisonS_MAJORT_QUICK*o !!StructuresReturnVoidS_MINORT_INSTANTn %  ClassesDynamicClass"m 5  SecuritySuperGlobalContagion6l !?StructuresNoChangeIncomingVariablesS_MINORT_SLOW k 3  ClassesDynamicPropertyCallj !  ClassesDynamicNewi /  ClassesDynamicMethodCall h 3  ClassesDynamicConstantCall+g +SecurityDirectInjectionS_MAJORT_QUICK    X hL.c3e>    X                                  4 !5StructuresCatchShadowsVariableS_MINORT_INSTANT$ )PhpConstWithArrayS_MAJORT_SLOW, !)StructuresImplicitGlobalS_MINORT_QUICK* 'ClassesShouldUseSelfS_MINORT_INSTANT) -PhpLogicalInLettersS_MINORT_INSTANT$ 'PhpReservedNamesS_MAJORT_QUICK( !#StructuresGlobalUsageS_MINORT_SLOW -  PhpSuperGlobalUsage- 3TypeShouldBeSingleQuoteS_MINORT_INSTANT. 1FunctionsShouldBeTypehintedS_MINORT_SLOW# SecurityNoSleepS_MINORT_QUICK- 1ClassesThisIsNotForStaticS_MAJORT_QUICK) !StructuresLoneBlockS_MINORT_INSTANT5 !;StructuresBooleanStrictComparisonS_MINORT_QUICK+ 5PhpShortOpenTagRequiredS_MAJORT_QUICK !!  ExtensionsExtgettext
 !  ExtensionsExtrunkit	 !#  ExtensionsExtparsekit !  ExtensionsExtrecode -  ClassesHasMagicProperty, /ClassesUndefinedPropertyS_MAJORT_QUICK* +ClassesDefinedPropertyS_MINORT_QUICK !  ExtensionsExtexpect    J Y/S n5    x J                        +4 !'StructuresSequenceInForS_MINORT_QUICK(3 -TypeNoRealComparisonS_MAJORT_QUICK+0 !)StructuresYodaComparisonS_MINORT_SLOW+/ /ClassesPropertyNeverUsedS_MINORT_SLOW3. !9NamespacesConstantFullyQualifiedS_MINORT_SLOW6, AConstantsCreatedOutsideItsNamespaceS_MINORT_SLOW++ )VariablesLostReferencesS_MAJORT_QUICK * 3  ClassesLocallyUsedProperty/) 7ClassesLocallyUnusedPropertyS_MINORT_SLOW,( /ClassesRedefinedPropertyS_MINORT_QUICK0' !-StructuresObjectReferencesS_MINORT_INSTANT5& !;StructuresPrintWithoutParenthesisS_MINORT_QUICK+$ !'StructuresRepeatedPrintS_MAJORT_QUICK*# -ArraysShouldPreprocessS_MINORT_QUICK" )  FilesGlobalCodeOnly*! 1FilesNotDefinitionsOnlyS_MINORT_SLOW'  'ClassesConstantClassS_MINORT_SLOW+ +FunctionsDeepDefinitionsS_MAJORT_SLOW' +FilesDefinitionsOnlyS_MAJORT_SLOW+ !'StructuresNoArrayUniqueS_MINORT_QUICK !)  NamespacesNamespaceUsage    ` lP.V&i9    `                                          .P !/StructuresBuriedAssignationS_MINORT_SLOW*O !%StructuresUselessUnsetS_MAJORT_QUICKN !)  StructuresResourcesUsage+M !#StructuresUseConstantS_MINORT_INSTANT)L %ClassesUselessFinalS_MINORT_INSTANT-K %'PerformancesSlowFunctionsS_MAJORT_QUICK0J !-StructuresShouldPreprocessS_MINORT_INSTANT+I !'StructuresUselessGlobalS_MINORT_QUICK*H !%StructuresUnusedGlobalS_MINORT_QUICK,F !)StructuresEchoWithConcatS_MINORT_QUICK-E 3TypeStringHoldAVariableS_MINORT_INSTANT2B ;ClassesDirectCallToMagicMethodS_MAJORT_QUICK4A ?SecurityparseUrlWithoutParametersS_MAJORT_SLOW@ !#  ExtensionsExtwincache? !  ExtensionsExtxcache> !  ExtensionsExtiis= !  ExtensionsExtfpm< !+  ExtensionsExteaccelerator; !  ExtensionsExtapache$: !ClassesAvoidUsingS_MAJORT_SLOW9 +  ClassesClassAliasUsage!6 ClassesUseThisS_MINORT_SLOW'5 'ClassesShouldUseThisS_MINORT_SLOW    \ iL0e9f4    \                                        )g !#StructuresUnusedLabelS_MINORT_QUICK?f !OStructuresNoParenthesisForLanguageConstructS_MINORT_QUICKe !  ExtensionsExtdio,d -SecurityAvoidThoseCryptoS_MAJORT_QUICKc PhpHashAlgosS_MAJORT_SLOW/b 1FunctionsShouldUseConstantsS_MINORT_QUICK"a #PhpUsePathinfoS_MINORT_QUICK&` #ClassestoStringPssS_MAJORT_QUICK)_ %FunctionsMarkCallableS_MINORT_QUICK]   ClassesTestClass=\ !KStructuresAlteringForeachWithoutReferenceS_MAJORT_QUICK)[ -PhpoldAutoloadUsageS_MAJORT_INSTANT&Z !ExceptionsUnthrownS_MINORT_QUICK"Y %PhpUseObjectApiS_MINORT_SLOW1X 5ClassesUnresolvedInstanceofS_MAJORT_INSTANT*W !%StructuresDynamicCallsS_MINORT_QUICKV !  StructuresMailUsageU !  StructuresFileUsageT !!  StructuresShellUsage2S !1StructuresUselessParenthesisS_MINORT_INSTANT1R %/PerformancesArrayMergeInLoopsS_MAJORT_QUICK+Q !)StructuresDuplicateCallsS_MINORT_SLOW    J x[%mQ8Z&    k J                       /  ClassesIsInterfaceMethod5~ ASecurityShouldUsePreparedStatementS_MAJORT_SLOW1} !/StructuresDoubleInstructionS_MINORT_INSTANT| !  ExtensionsExtapcu2{ !1InterfacesConcreteVisibilityS_MAJORT_INSTANT1z !3InterfacesUndefinedInterfacesS_MAJORT_QUICK/y !/InterfacesUselessInterfacesS_MINORT_QUICK0x !-InterfacesUnusedInterfacesS_MINORT_INSTANTw !)  InterfacesUsedInterfaces4v !5StructuresShouldChainExceptionS_MINORT_INSTANTu -  ComposerIsComposerNsnamet   ComposerAutoloads #  ComposerUseComposer)r )ClassesNoPublicAccessS_MINORT_QUICK(p #ClassesMakeDefaultS_MINORT_INSTANT2o 3VariablesOverwrittenLiteralsS_MAJORT_INSTANT)m !StructuresImpliedIfS_MAJORT_INSTANT3l 9FunctionsUseConstantAsArgumentsS_MAJORT_QUICKk !!  ExtensionsExtphalcon-j !+StructuresNoHardcodedPortS_MINORT_QUICK&i +PhpMethodCallOnNewS_MAJORT_QUICK,h !+StructuresNoHardcodedPathS_MAJORT_SLOW    P X)zKe3	   q P                            ! /  ClassesOnlyStaticMethods)  +ClassesUselessAbstractS_MINORT_SLOW8 !=StructuresCouldUseShortAssignationS_MINORT_INSTANT. !)NamespacesEmptyNamespaceS_MINORT_INSTANT' #SecurityCompareHashS_MAJORT_QUICK/ 5ClassesMultipleDeclarationsS_MAJORT_QUICK+ !'StructuresCouldBeStaticS_MAJORT_QUICK/ 5ClassesCouldBeClassConstantS_MINORT_QUICK, !)StructuresUnsetInForeachS_MAJORT_QUICK' /PhpReservedKeywords7S_MAJORT_SLOW* !%StructuresElseIfElseifS_MINORT_QUICK, !)StructuresVariableGlobalS_MINORT_QUICK* !'StructuresNoHardcodedIpS_MINORT_SLOW* +ClassesUnresolvedCatchS_MAJORT_QUICK !  ExtensionsExtmail !%  ExtensionsExtmailparse !  ExtensionsExttrader, 3!PhpClassConstWithArrayS_CRITICALT_SLOW/ !1StructuresUncheckedResourcesS_MAJORT_SLOW+ !#StructuresPrintAndDieS_MINORT_INSTANT! #PhpHashAlgos54S_MAJORT_SLOW!  #PhpHashAlgos53S_MAJORT_SLOW    i sT*gJ1eM4    i                                           4= ?ClassesNoSelfReferencingConstantS_MINORT_QUICK&< )TypeShouldTypecastS_MINORT_QUICK3; !7StructuresIndicesAreIntOrStringS_MAJORT_QUICK: !  ExtensionsExtxhprof9 !  ExtensionsExtxml8 !  ExtensionsExtast7 !  ExtensionsExtev6 !#  ExtensionsExtlibevent5 !  ExtensionsExtxdiff4 !%  ExtensionsExtwikidiff23 !%  ExtensionsExtproctitle2 !!  ExtensionsExtinotify1 !  ExtensionsExtibase/ !!  ExtensionsExtgmagick. !  ExtensionsExtcom- !!  ExtensionsExtgearman, !  ExtensionsExtamqp+ !  ExtensionsExtevent* !  ExtensionsExtgeoip=) !KStructuresOnlyVariableReturnedByReferenceS_MAJORT_QUICK0( %-PerformancesPrePostIncrementS_MINORT_QUICK'' !!StructuresStaticLoopS_MINORT_SLOW& !%  NamespacesGlobalImport% !  ExtensionsExtob$ 3  PhpReturnTypehintUsage*# 3PhpScalarTypehintUsageS_MAJORT_QUICK&" ClassesNullOnNewS_MAJORT_INSTANT    D iM%[5wI!    t D              -U 9PhpParenthesisAsParameterS_MAJORT_QUICK4T C!PhpGlobalWithoutSimpleVariableS_CRITICALT_SLOW%S +PhpListWithAppendsS_MINORT_SLOW R PhpEmptyListS_MAJORT_QUICK(Q 1PhpPhp70NewInterfacesS_MAJORT_SLOW%P +PhpPhp70NewClassesS_MAJORT_SLOW+O 7PhpPhp70RemovedFunctionsS_MAJORT_SLOW'N /PhpPhp70NewFunctionsS_MAJORT_SLOW)M 3PhpUnicodeEscapeSyntaxS_MAJORT_SLOW/L !/StructuresDoubleAssignationS_MAJORT_QUICKK   PhpCoalesceI -  ConstantsIsGlobalConstant#H ClassesAnonymousS_MAJORT_SLOW!G !/  StructuresGlobalOutsideLoop+F !#StructuresNoSubstrOneS_MINORT_INSTANT!E 3  ComposerIsComposerInterfaceD +  ComposerIsComposerClass1C !/StructuresIssetWithConstantS_MAJORT_INSTANT%B =  ClassesOneObjectOperatorPerLineA !  StructuresElseUsage7@ !?StructuresInconsistentConcatenationS_MINORT_QUICK-? !-StructuresBreakOutsideLoopS_MAJORT_SLOW*> !'StructuresNoDirectUsageS_MAJORT_SLOW    @ e7e3lA      V @        m   FilesServices-l +!SecurityRegisterGlobalsS_CRITICALT_SLOWk   TypeSapij   PhpUseClii   PhpUseWeb/h 1FunctionsfuncGetArgModifiedS_MAJORT_QUICK*g 'FunctionsRelayFunctionS_MAJORT_QUICK$f !ExtensionsExtfannS_MAJORT_SLOW(e /TypeHexadecimalStringS_MAJORT_SLOW"d %PhpUsortSortingS_MAJORT_SLOWc !)  StructuresGlobalInGlobal7b !;StructuresSetlocaleNeedsConstantsS_MAJORT_INSTANT)a -PhpNoListWithStringS_MAJORT_INSTANT` #  ClassesIsNotFamily/_ !)!StructuresEvalWithoutTryS_CRITICALT_QUICK)^ !#StructurespregOptionES_MAJORT_QUICK/] !+StructuresUselessBracketsS_MINORT_INSTANT\ +  PhpDirectivesUsage+[ 7PhpPhp70RemovedDirectiveS_MAJORT_SLOW(Z +!PhpDefineWithArrayS_CRITICALT_SLOW+Y 5PhpUnicodeEscapePartialS_MAJORT_QUICK2X 9VariablesPhp7IndirectExpressionS_MAJORT_SLOW2W 9VariablesPhp5IndirectExpressionS_MAJORT_SLOW.V =PhpForeachDontChangePointerS_MAJORT_SLOW    O e9X9n?    r O                       PhpFopenModeS_MAJORT_QUICK* -ClassesRedefinedDefaultS_MAJORT_SLOW #  FilesIsComponent, 1ClassesRedefinedConstantsS_MINORT_SLOW* -ClassesRedefinedMethodsS_MINORT_SLOW( )ClassesCouldBePrivateS_MINORT_SLOW,  7PhpInternalParameterTypeS_MAJORT_QUICK, !)StructuresSwitchToSwitchS_MINORT_QUICK~   PhpUsesEnv,} +FunctionsUnusedArgumentsS_MAJORT_QUICK| '  ClassesNormalMethods{ )  ClassesNormalPropertyz '  FunctionsRealFunctionsy '  VariablesRealVariables(x %PerformancesJoinFileS_MINORT_QUICKw !  ExtensionsExthttpv )  ClassesSameNameAsFile(u 1PhpPhp7RelaxedKeywordS_MAJORT_SLOW0t !3StructuresTimestampDifferenceS_MAJORT_SLOWs !'  StructuresErrorMessages)r !#StructuresPHP7DirnameS_MINORT_QUICK$q #TraitsUnusedTraitS_MINORT_SLOWp   TraitsUsedTrait+o 3TypeSilentlyCastIntegerS_MINORT_QUICK+n !'StructuresUseInstanceofS_MINORT_QUICK    Q }S)a1hG-     Q                           4( !3!StructuresIdenticalConditionsS_CRITICALT_QUICK/' !+!StructuresNoHardcodedHashS_CRITICALT_SLOW+! )!TraitsUndefinedTraitS_CRITICALT_QUICK    PhpPearUsage )  PhpYieldFromUsage !  PhpYieldUsage !  ExtensionsExtv8js !)  ExtensionsExttokyotyrant( !!StructuresSimplePregS_MAJORT_QUICK6 9!ClassesUsingThisOutsideAClassS_CRITICALT_INSTANT0 !+!StructuresTernaryInConcatS_CRITICALT_QUICK/ +!ClassesCantExtendFinalS_CRITICALT_INSTANT- ;PhpSetExceptionHandlerPHP7S_MAJORT_SLOW7 MPhpCantUseReturnValueInWriteContextS_MAJORT_QUICK# !PhpBetterRandS_MAJORT_INSTANT7 !;InterfacesAlreadyParentsInterfaceS_MINORT_INSTANT+ !#StructuresNegativePowS_MAJORT_INSTANT' #SecurityCurlOptionsS_MAJORT_QUICK' -PhpPregMatchAllFlagS_MINORT_QUICK '  PhpMiddleVersion #  FilesIsCliScript'
 #VariablesCloseNamingS_MINORT_SLOW$	 'PhpDirectiveNameS_MINORT_QUICK    8 p;wEb7    U 8    F !!  ExtensionsExtsuhosin2E !5StructuresIfWithSameConditionsS_MAJORT_QUICK#D %PhpListWithKeysS_MAJORT_QUICK-C 3ClassesMakeGlobalAPropertyS_MINORT_SLOW(@ /PhpShouldUseCoalesceS_MAJORT_QUICK)? !#StructuresCouldUseDirS_MAJORT_QUICK(= #VariablesOverwritingS_MAJORT_QUICK-; !'StructuresUselessSwitchS_MAJORT_INSTANT/8 /!SecurityIndirectInjectionS_CRITICALT_SLOW&7 !SecurityGPRAliasesS_MAJORT_QUICK-6 !+StructuresReturnTrueFalseS_MAJORT_QUICK%5 +PhpPhp71NewClassesS_MAJORT_SLOW/4 !)!StructuresSameConditionsS_CRITICALT_QUICK"3 !1  ExceptionsCaughtButNotThrown02 !1ExceptionsUncaughtExceptionsS_MINORT_QUICK1 !  ExtensionsExtlua0 !'  ExceptionsAlreadyCaught0. !+!StructuresLogicalMistakesS_CRITICALT_QUICK2, !1StructuresCommonAlternativesS_MAJORT_INSTANT(+ !StructuresNoChoiceS_MAJORT_INSTANT1* !-!StructuresRandomWithoutTryS_CRITICALT_QUICK.) !/StructuresUnknownPregOptionS_MAJORT_SLOW    S rIxE\.    S                               0] 9ClassesUnusedProtectedMethodsS_MAJORT_SLOW-\ 3ClassesUsedProtectedMethodS_MINORT_SLOW*[ +ClassesThrowInDestructS_MAJORT_QUICK+Z !#StructuresEmptyBlocksS_MINORT_INSTANTY '  ClassesIsUpperFamily+X !'ExceptionsMultipleCatchS_MAJORT_QUICK'W /PhpPhp71NewFunctionsS_MAJORT_SLOW+V 7PhpPhp71RemovedDirectiveS_MAJORT_SLOW-U !'StructuresNeverNegativeS_MAJORT_INSTANTT   VariablesGlobalsS +  ClassesDefinedParentMP&R +PhpUseNullableTypeS_MAJORT_QUICK0Q !1StructuresResultMayBeMissingS_MAJORT_QUICK&P +PhpListShortSyntaxS_MAJORT_QUICK+O /ClassesPropertyUsedBelowS_MINORT_SLOWN /  ClassesPropertyUsedAbove+M %#PerformancesMakeOneCallS_MAJORT_QUICK(K 'ClassesUseInstanceofS_MAJORT_QUICK&J ;  FunctionsFunctionsUsingReference!I 3  SecurityCantDisableFunction1H !/ExceptionsThrowFunctioncallS_MAJORT_INSTANT3G 5!SecurityUnserializeSecondArgS_CRITICALT_QUICK    @ tJM O#    q @                . '!SecurityDontEchoErrorS_CRITICALT_INSTANT~ !  ExtensionsExtrar-} -ClassesUseClassOperatorS_MINORT_INSTANT1| !3StructuresDropElseAfterReturnS_MINORT_QUICK2{ !5StructuresUsePositiveConditionS_MINORT_QUICK)z !#StructuresModernEmptyS_MINORT_QUICK0u 3FunctionsUnusedReturnedValueS_MINORT_QUICK1r !/StructuresShouldMakeTernaryS_MINORT_INSTANT7q !;StructuresFailingSubstrComparisonS_MAJORT_INSTANT-p !'StructuresCastToBooleanS_MINORT_INSTANT*o !%StructuresNestedIfthenS_MAJORT_QUICK8n !=NamespacesMultipleAliasDefinitionsS_MINORT_INSTANT5m =ClassesMultipleTraitOrInterfaceS_MINORT_INSTANT-l !+NamespacesShouldMakeAliasS_MINORT_QUICK+k !'NamespacesCouldUseAliasS_MINORT_QUICK)j !NamespacesHiddenUseS_MINORT_INSTANT'i )TraitsDependantTraitS_MINORT_SLOW.a %%PerformancesNotCountNullS_MINORT_INSTANT,_ #)PortabilityLinuxOnlyFilesS_MAJORT_SLOW)^ !%StructuresUseSystemTmpS_MAJORT_SLOW    S h9f1|S/     p S                                  !!  ExtensionsExtncurses !  ExtensionsExtnewt !  ExtensionsExtnsapi0 %)PerformancesAvoidArrayPushS_MINORT_INSTANT% 'TypeOctalInStringS_MAJORT_QUICK, +FunctionsCouldReturnVoidS_MINORT_QUICK! #PhpUseStdclassS_MINORT_SLOW& !ExceptionsRethrownS_MINORT_QUICK. 1ArraysGettingLastElementS_MINORT_INSTANT0 !1StructuresDontChangeBlindKeyS_MINORT_QUICK( /PhpPhp71microsecondsS_MAJORT_QUICK#
 ;  ArraysArrayBracketConsistence2	 !1StructuresDieExitConsistanceS_MINORT_INSTANT* !%StructuresBailOutEarlyS_MINORT_QUICK; !GStructuresOneDotOrObjectOperatorPerLineS_MINORT_QUICK2 !7StructuresOneLevelOfIndentationS_MINORT_SLOW0 7ClassesUnitializedPropertiesS_MAJORT_QUICK, !%StructuresUselessCheckS_MINORT_INSTANT1 %+PerformancestimeVsstrtotimeS_MINORT_INSTANT0 !-StructuresNoIssetWithEmptyS_MINORT_INSTANT.  !)StructuresUselessCastingS_MINORT_INSTANT    C uO8mCN    l C             &8 -PhpPhp72DeprecationS_MAJORT_SLOW7 !%  StructuresNewLineStyle06 3VariablesAssignedTwiceOrMoreS_MINORT_QUICK*5 G  ClassesNewOnFunctioncallOrIdentifier+4 !'StructuresLongArgumentsS_MINORT_QUICK22 =ClassesCouldBeProtectedPropertyS_MINORT_SLOW41 !;StructuresNoAssignationInFunctionS_MINORT_SLOW&0 %PerformancesNoGlobS_MAJORT_QUICK)/ 1PhpNoStringWithAppendS_MAJORT_QUICK3. %/PerformancesFetchOneRowFormatS_MINORT_INSTANT0- !M  StructuresOneExpressionBracketsConsistency', /PhpShouldUseFunctionS_MINORT_SLOW+ !!  ExtensionsExtmongodb* !#  ExtensionsExtzbarcode%) !ExtensionsExtmhashS_MAJORT_SLOW)( +ClassesFinalByOcramiusS_MINORT_SLOW' !  ExtensionsExtstring& 5  PhpCloseTagsConsistency% #  PhpUnsetOrCast## ClassesWrongNameS_MAJORT_SLOW&" +PhpGlobalsVsGlobalS_MINORT_QUICK1! 7FunctionsTooManyLocalVariablesS_MINORT_SLOW+  +ComposerUseComposerLockS_MINORT_QUICK    K UEo1oW)    z K                       ,_ +FunctionsCouldBeCallableS_MINORT_QUICKQ !)  StructuresRegexDelimiter'P #ConstantsStrangeNameS_MINORT_SLOW'O #VariablesStrangeNameS_MINORT_SLOW7N ESecurityShouldUseSessionRegenerateIdS_MAJORT_SLOW+M !'StructuresNoNeedForElseS_MINORT_QUICKJ !  ExtensionsExtds5I CClassesPropertyUsedInOneMethodOnlyS_MINORT_SLOW*H -ClassesUsedOncePropertyS_MINORT_SLOW+G /ClassesNoPSSOutsideClassS_MAJORT_SLOW,F !%StructuresDirThenSlashS_MAJORT_INSTANT;E !INamespacesMultipleAliasDefinitionPerFileS_MINORT_SLOW+D 5PhpShouldUseArrayColumnS_MINORT_QUICK/C !+ExceptionsForgottenThrownS_MAJORT_INSTANT,B 9PhpClassFunctionConfusionS_MINORT_SLOWA !%  ExtensionsExtlibsodium%@ #ClassesStrangeNameS_MAJORT_SLOW>   TypeSql/= 1FunctionsNoBooleanAsDefaultS_MINORT_QUICK/< /!ClassesRaisedAccessLevelS_CRITICALT_QUICK; '  PhpErrorLogUsage+9 7PhpPhp72RemovedFunctionsS_MAJORT_SLOW    F wO!sD![$    F                :a !EStructuresAlternativeConsistenceByFileS_MAJORT_QUICK-` !%!StructuresNoEmptyRegexS_CRITICALT_QUICK$_ !5  StructuresDifferencePreference.^ 9TypeStringWithStrangeSpaceS_MINORT_QUICK] !  ArraysEmptyFinal4\ !5StructuresSuspiciousComparisonS_MAJORT_INSTANT.[ !/StructuresCouldUseStrrepeatS_MINORT_SLOW*Z 5PhpCrc32MightBeNegativeS_MAJORT_SLOW%3 +PhpNoClassInGlobalS_MINORT_SLOW+1 !'StructuresRepeatedRegexS_MINORT_QUICK   PhpPrints  3  ClassesMethodIsOverwritten, 3PhpGroupUseDeclarationS_MINORT_INSTANT'R /PhpPhp72NewConstantsS_MAJORT_SLOW'Q /PhpPhp72NewFunctionsS_MAJORT_SLOW) !%StructuresMissingCasesS_MINORT_SLOW+ !'StructuresCheckAllTypesS_MAJORT_QUICK+ 'SecuritySetCookieArgsS_MAJORT_INSTANT%
 %PhpUseSetCookieS_MAJORT_INSTANT	 !  PhpUseCookies&q %ClassesTooManyFindsS_MINORT_SLOWp )  CommonInterfaceUsage*o )SecurityEncodedLettersS_MINORT_QUICK    = |=z?X=    a = !{ 3  PatternsCourrierAntiPattern!z 3  PatternsDependencyInjection+y /ClassesTooManyInjectionsS_MINORT_SLOW(x /PhpPhp73NewFunctionsS_MAJORT_QUICK2w !Q  StructuresConcatenationInterpolationFavorite'v A  ClassesTypehintCyclicDependenciesu !  ExtensionsExtstats6t !=StructuresMixedConcatInterpolationS_MINORT_QUICKs !  PsrPsr13Usager !  PsrPsr11Usageq   PsrPsr3Usagep   PsrPsr6Usageo   PsrPsr7Usagen !  PsrPsr16Usage*m 'FunctionsCouldTypehintS_MINORT_QUICK8l CClassesImplementedMethodsArePublicS_MAJORT_INSTANT2k !/!StructuresNoReferenceOnLeftS_CRITICALT_QUICK.j /FunctionsNoClassAsTypehintS_MAJORT_QUICKi !  StructuresUseDebugh #  PhpUseBrowscap(g %FunctionsNoReturnUsedS_MINORT_SLOW<f G!FunctionsOnlyVariablePassedByReferenceS_CRITICALT_SLOWe !  ExtensionsExtgrpcd -  PhpTryMultipleCatchc !  ExtensionsExtsphinx/b 9ArraysRandomlySortedLiteralsS_MINORT_SLOW    Y jH5eO$dE     q Y                          %  PhpDeclareTicks +  PhpDeclareEncoding /  PhpDeclareStrictType '  PhpDeclareStrict( %SecurityMkdirDefaultS_MAJORT_QUICK# !3  StructuresConstDefineFavorite/ !/StructuresNoReturnInFinallyS_MAJORT_QUICK PhpIsINFS_MINORT_QUICK PhpIsNANS_MINORT_QUICK !  ExtensionsExtswoole( !=  StructuresHeredocDelimiterFavorite1 ;ClassesAvoidOptionalPropertiesS_MAJORT_SLOW# 5  FunctionsMultipleDeclarations(
 !=  StructuresNonBreakableSpaceInNames	   VendorsJoomla7 ?!ClassesCantInheritAbstractMethodS_CRITICALT_QUICK 9  PhpUseSessionStartOptions   VendorsEz   VendorsWordpress   VendorsSymfony   VendorsLaravel #  VendorsCodeigniter   VendorsYii  1  ClassesOrderOfDeclaration/ !/InterfacesCouldUseInterfaceS_MINORT_QUICK+~ +FunctionsCouldCentralizeS_MINORT_SLOW} !  ExtensionsExtjudy| !  ExtensionsExtgender    ? xFyL W$     t ?         20 ;ClassesCouldBePrivateConstanteS_MINORT_QUICK+/ /ClassesConstantUsedBelowS_MINORT_SLOW. '  PhpShellFavorite- !  ExtensionsExtfam, !!  ExtensionsExtrdkafka0+ !-StructuresShouldUseForeachS_MINORT_INSTANT0* %-PerformancesLogicalToInArrayS_MINORT_QUICK') -PhpNoSubstrMinusOneS_MAJORT_QUICK ( /  FunctionsOptionalParameter-' %)PerformancesNoConcatInLoopS_MAJORT_SLOW& !  ExtensionsExtxattr.# 3ClassesChildRemoveTypehintS_MAJORT_QUICK)" 1PhpPhp72ObjectKeywordS_MAJORT_QUICK*! -ClassesNoMagicWithArrayS_MAJORT_SLOW  /  PhpIssetMultipleArgs# A  PhpLetterCharsLogicalFavorite# !PhpAssignAndS_CRITICALT_QUICK. 7PhpGroupUseTrailingCommaS_MAJORT_INSTANT0 9ClassesScalarOrObjectPropertyS_MINORT_SLOW/ 1FunctionsMismatchedTypehintS_MAJORT_QUICK7 AFunctionsMismatchedDefaultArgumentsS_MINORT_QUICK !  ExtensionsExtlapack/ !/StructuresMismatchedTernaryS_MAJORT_QUICK    J k7R&eI,    y J                    ,V %%PerformancesSimpleSwitchS_MAJORT_QUICK+U !#StructuresCouldBeElseS_MINORT_INSTANTT -  ClassesIsaMagicPropertyS #  PhpDateFormats/C !/StructuresComplexExpressionS_MINORT_QUICKB -  PhpCookiesVariablesA /  PhpIncomingVariables@ -  PhpSessionVariables+? -SecuritySessionLazyWriteS_MAJORT_SLOW2> !5StructuresUnconditionLoopBreakS_MAJORT_QUICK&= !StructuresIsZeroS_MINORT_INSTANT2< !5StructuresMultipleTypeVariableS_MINORT_QUICK); #SecurityAnchorRegexS_MAJORT_INSTANT5: ;SecurityUploadFilenameInjectionS_MAJORT_INSTANT+9 !#StructuresFallthroughS_MINORT_INSTANT8   TypeRegex7 !  ExtensionsExtparle&6 +PhpUsePathinfoArgsS_MINORT_QUICK&5 +PhpPathinfoReturnsS_MINORT_QUICK14 9ClassesCouldBeProtectedMethodS_MINORT_QUICK/3 5ClassesCouldBePrivateMethodS_MINORT_QUICK*2 +ClassesMethodUsedBelowS_MINORT_QUICK31 =ClassesCouldBeProtectedConstantS_MINORT_QUICK    V nX,j<N      i V                               PhpDlUsage !  ExtensionsExtvips !  ArraysSliceFirst   TypeGPCIndex !  TypeArrayIndex% %3  PerformancesPHP7EncapsedStrings+ 1PhpUnknownPcre2OptionS_MINORT_INSTANT- !!!StructuresMissingNewS_CRITICALT_INSTANT2  !5StructuresCanCountNonCountableS_MAJORT_QUICK& +PhpHashUsesObjectsS_MAJORT_QUICK4~ IPhpAvoidSetErrorHandlerContextArgS_MAJORT_SLOW%} +PhpPhp72NewClassesS_MAJORT_SLOW.| !)StructuresNoGetClassNullS_MAJORT_INSTANT+{ /ClassesIntegerAsPropertyS_MAJORT_SLOWz #  PhpCryptoUsagey #  PhpArgon2Usage3x ?ClassesDontSendThisInConstructorS_MINORT_SLOW0w !1StructuresUseListWithForeachS_MINORT_QUICKv   VendorsFuelu   VendorsPhalcon)t +ClassesAmbiguousStaticS_MINORT_SLOWs   VendorsDrupal-r %#PerformancesSubstrFirstS_MINORT_INSTANT/[ !+StructuresPrintfArgumentsS_MINORT_INSTANT-W !'StructuresNextMonthTrapS_MAJORT_INSTANT    2 d1 ['T'    i 24N =FunctionsUselessReferenceArgumentS_MINORT_SLOW(H %VariablesLocalGlobalsS_MINORT_SLOW,G )!FilesMissingIncludeS_CRITICALT_INSTANT*F 1FilesInclusionWrongCaseS_MAJORT_SLOW4? ;FunctionsUnusedInheritedVariableS_MAJORT_QUICK*> +SecurityNoNetForXmlLoadS_MAJORT_SLOW6= CSecuritySqlite3RequiresSingleQuotesS_MAJORT_SLOW+< 7PhpNoReferenceForTernaryS_MAJORT_SLOW4 !5StructuresIdenticalConsecutiveS_MINORT_INSTANT2 !5StructuresIdenticalOnBothSidesS_MAJORT_QUICK1 7ArraysMistakenConcatenationS_MAJORT_INSTANT& 'PhpNotScalarTypeS_MAJORT_INSTANT* 5PhpShouldUseArrayFilterS_MINORT_SLOW !#  ExtensionsExtigbinary. 1FunctionsNeverUsedParameterS_MINORT_SLOW. !-StructuresAutoUnsetForeachS_MINORT_QUICK0 5FunctionsAvoidBooleanArgumentS_MINORT_SLOW# !3  StructuresAssignedInOneBranch* !%StructuresInvalidRegexS_MAJORT_QUICK
 )  VariablesUncommonEnvVar&	 #ClassesParentFirstS_MINORT_QUICK    R S!sDyR    k R                            g !  ExtensionsExtdb2.f 5ClassesPropertyCouldBeLocalS_MINORT_SLOW.e !/StructuresUseCountRecursiveS_MINORT_SLOWd !!  ExtensionsExtleveldb2c !7StructuresCouldUseArrayFillKeysS_MINORT_SLOW0b 9!PhpPHP73LastEmptyArgumentS_CRITICALT_QUICK$a SecurityDynamicDlS_MAJORT_SLOW_ !'  ExtensionsExtopencensus^ !!  ExtensionsExtvarnish] !  ExtensionsExtuopz\ !  ExtensionsExtxxtea&Z 'PhpForeachObjectS_MAJORT_INSTANT-Y !+StructuresCouldUseCompactS_MINORT_QUICK,X !%StructuresTestThenCastS_MAJORT_INSTANT'W /PhpListWithReferenceS_MAJORT_SLOWV !  ExtensionsExthrtime-U !'StructuresShouldUseMathS_MINORT_INSTANT5T !5!StructuresPossibleInfiniteLoopS_CRITICALT_QUICK/S !+StructuresGoToKeyDirectlyS_MAJORT_INSTANT)R !%ExceptionsUselessCatchS_MINORT_SLOW/Q %+PerformancesDoubleArrayFlipS_MAJORT_QUICK*P !'StructuresReuseVariableS_MINORT_SLOWO -  FunctionsFallbackFunction    8 mJY'W*    n 8    3  5FunctionsTypehintedReferencesS_MINORT_INSTANT/ %'PerformancesStrposTooMuchS_MINORT_INSTANT2~ 5!ClassesCantInstantiateClassS_CRITICALT_QUICK} +  PhpFailingAnalysis| !  ExtensionsExtcmark{ !%  ExtensionsExtzookeeper*z !!StructuresWrongRangeS_MAJORT_INSTANT2y 3FunctionsCallbackNeedsReturnS_MAJORT_INSTANT1x !3StructuresCouldUseArrayUniqueS_MINORT_QUICK/w !/StructuresOneIfIsSufficientS_MINORT_QUICK2v !1StructuresMissingParenthesisS_MAJORT_INSTANT/u %-PerformancesRegexOnCollectorS_MINORT_SLOW't )PhpStrtrArgumentsS_MAJORT_INSTANT-s 3ClassesDontUnsetPropertiesS_MAJORT_SLOW2r =ClassesRedefinedPrivatePropertyS_MAJORT_SLOW+q !'StructuresSubstrLastArgS_MINORT_QUICK1p !/StructuresPossibleIncrementS_MINORT_INSTANT o 3  ClassesPPPDeclarationStylek -  PhpShouldPreprocess j /  FunctionsTooManyParameters)i 1PhpTooManyNativeCallsS_MINORT_QUICK%h %ArraysMassCreationS_MINORT_SLOW    ` P|N$oN    `                                                & !ExceptionsCantThrowS_MINORT_SLOW/ !+StructuresDontMixPlusPlusS_MINORT_INSTANT, -SecurityMoveUploadedFileS_MAJORT_QUICK1 5FunctionsCouldBeStaticClosureS_MINORT_QUICK- !G  StructuresComparedButNotAssignedStrings !)  StructuresGtOrLtFavorite" !1  StructuresComparisonFavorite( #VariablesUniqueUsageS_MINORT_QUICK1 !/StructuresShouldUseOperatorS_MINORT_INSTANT. 5ClassesConstVisibilityUsageS_MINORT_SLOW'
 !StructuresCheckJsonS_MAJORT_QUICK+	 +!PhpFlexibleHeredocS_CRITICALT_INSTANT5 9!FunctionsMismatchTypeAndDefaultS_CRITICALT_SLOW= K!ClassesMethodSignatureMustBeCompatibleS_CRITICALT_QUICK( /PhpCompactInexistantS_MAJORT_QUICK. -SecurityConfigureExtractS_MINORT_INSTANT- %#PerformancesUseBlindVarS_MINORT_INSTANT* %=  PerformancesCacheVariableOutsideLoop% ClassesWeakTypeS_MINORT_INSTANT( %PerformancesDoInBaseS_MAJORT_QUICK    O M1yH&|^;    O                         /+ !/StructuresContinueIsForLoopS_MINORT_QUICK/* 5ClassesCouldBeAbstractClassS_MINORT_QUICK1) =!PhpAssertFunctionIsReservedS_CRITICALT_SLOW*( C  ConstantsDefineInsensitivePreference$' 7  ConstantsConstDefinePreference & PhpAvoidRealS_MINORT_QUICK% 1  PhpDetectCurrentClass$ 3  PhpCouldUseIsCountable# %  ArraysWithCallback7" =!ConstantsCaseInsensitiveConstantsS_CRITICALT_SLOW! !!  ExtensionsExtmsgpack  !  ExtensionsExtlzf 3  TraitsLocallyUsedProperty. 5!PhpPHP72scalartypehintsS_CRITICALT_QUICK. 5!PhpPHP71scalartypehintsS_CRITICALT_QUICK. 5!PhpPHP70scalartypehintsS_CRITICALT_QUICK/ 5ClassesUndefinedStaticclassS_MAJORT_QUICK! #PhpHashAlgos71S_MAJORT_SLOW !  ExtensionsExtcsprng/ 7ClassesAmbiguousVisibilitiesS_MINORT_SLOW3 7!ClassesIncompatibleSignatureS_CRITICALT_QUICK !  ExtensionsExteio/ 5ClassesAbstractOrImplementsS_MAJORT_QUICK    K uDW%oB      s K                       %B E  PhpNoReferenceForStaticProperty!A !/  InterfacesRepeatedInterface@ 5  PhpNoReturnForGenerator!? !/  StructuresInvalidPackFormat> !!  StructuresNamedRegex%= =  ClassesUndeclaredStaticProperty< /  SecurityFilterInputSource*; /!PhpDirectCallToCloneS_CRITICALT_SLOW8: =!FunctionsOnlyVariableForReferenceS_CRITICALT_QUICK,9 +FunctionsAddDefaultValueS_MINORT_QUICK8 !!  ExtensionsExtseaslog,7 -SecurityCantDisableClassS_MINORT_QUICK/6 !1StructuresInconsistentElseifS_MAJORT_SLOW+5 )FunctionsClosure2StringS_MINORT_QUICK'4 %ClassesCouldBeFinalS_MINORT_QUICK,3 !)StructuresJsonWithOptionS_MAJORT_QUICK22 7!TraitsMethodCollisionTraitsS_CRITICALT_QUICK.1 1TraitsUndefinedInsteadofS_MAJORT_INSTANT.0 /VariablesUndefinedVariableS_MINORT_QUICK0/ ?PhpMustCallParentConstructorS_MAJORT_QUICK$- 'PhpTrailingCommaS_MINORT_QUICK., 7!PhpPhp73RemovedFunctionsS_CRITICALT_SLOW    ] xW6 nG#jO5      ]                         'b %7  PerformancesArrayKeyExistsSpeedupa /  PhpMissingSubpattern`   TypePath'^ =  FunctionsMultipleIdenticalClosure] '  ClassesCouldBeStatic\ '  TraitsMultipleUsage[ )  TraitsSelfUsingTraitZ !  ExtensionsExtwasmY !  ExtensionsExtasync!X %+  PerformancesIssetWholeArrayW !  ExtensionsExtsdlV %  TraitsUselessAliasU !+  StructuresDirectlyUseFileS %!  PerformancesCsvInLoopsR +  SecuritySafeHttpHeaders!Q 5  ClassesShouldHaveDestructor$P !5  InterfacesAvoidSelfInInterface O 3  ClassesUnreachableConstant&N !9  StructuresVariableMayBeNonGlobalM !+  StructuresDontLoopOnYield!L 1  FunctionsShouldYieldWithKeyK !  ExtensionsExtpsrJ !!  ExtensionsExtdecimalI !)  ExceptionsIsPhpExceptionH !)  StructuresBasenameSuffixG !#  ExceptionsCouldUseTryF   PhpIdnUts46E   TypePrintfD   TypePack/C !K  StructuresDontReadAndWriteInOneExpression    S Y6uU;#xX;"     t S                /  ClassesAvoidOptionArrays )  FunctionsUselessDefault !  ExtensionsExtsvm  )  PhpIncomingValues /  SecurityIntegerConversion~ '  PhpImplodeOneArg} !'  StructuresMultipleUnset| !  ExceptionsCatchE{ /  PhpOveriddenFunctionz -  ClassesCheckOnCallUsagey '  VariablesSelfTransformx 1  ClassesCloneWithNonObjectw +  ClassesShouldDeepClone v /  VariablesInconsistentUsage%u 9  FunctionsTypehintMustBeReturnedt   PatternsFactorys !  ClassesDemeterLawr 5  PhpPhp80RemovedConstantq 7  PhpPhp80RemovedFunctionso +  ConstantsDynamicCreationn -  FunctionsBadTypehintRelay#l 5  FunctionsInsufficientTypehintk !  ExtensionsExtpcovj !!  ExtensionsExtweakref i 5  ArraysStringInitialization&h !9  StructuresNoVariableIsAConditiong !+  StructuresDontBeTooManualf )  ExtDefinedClassesd 1  PhpTypedPropertyUsage!c !/  StructuresAssigneAndCompare    F lP/uT4kC      j F  !! !/  StructuresInfiniteRecursion  '  TraitsCouldUseTrait +  ConstantsCouldBeConstant )  ClassesUnusedConstant /  PhpPhp74NewConstants +  PhpPhp74NewClasses !)  StructuresCurlVersionNow" 3  VariablesComplexDynamicNames% %3  PerformancesPhp74ArrayKeyExists %'  PerformancesRegexOnArrays !%  StructuresSubstrToTrim /  ClassesMakeMagicConcrete" %-  PerformancesMemoizeMagicCall %!  PerformancesAutoappend  !-  StructuresNoAppendOnSource -  ClassesIdenticalMethods !)  StructuresNoNeedGetClass +  SecurityMinusOneOnError 7  PhpUnpackingInsideArrays /PhpPhp74NewFunctions +  FunctionsUselessArgument /  PhpConcatAndAddition !#  StructuresConcatEmpty
 !)  StructuresCastingTernary	 '  TraitsTraitNotFound 3  TraitsAlreadyParentsTrait !  ExtensionsExtuuid !)  ExtensionsExtzendmonitor !#  ExtensionsExtpassword !  ExtensionsExtffi    O `9  |a<iH0     o O             A 5  PhpPhp74ReservedKeyword @ 1  CompletePropagateConstants$? 9  CompleteCreateCompactVariables = 1  CompletePhpNativeReference; +  TypeSimilarIntegers: 1  PhpScalarAreNotArrays9 )  PhpSerializeMagic8   ClassesNoParent7 7  PhpIntegerSeparatorUsage 6 /  FunctionsUnbindingClosures%5 E  PhpReflectionExportIsDeprecated"4 ?  PhpArrayKeyExistsWithObjects3 5  PhpPhp74mbstrrpos3rdArg2 7  PhpPhp74RemovedFunctions1 9  PhpAvoidMbDectectEncoding"0 !1  StructuresForeachSourceValue/ !  StructuresNotOrNot . 3  ClassesDisconnectedClasses- -  FunctionsUselessTypeCheck!, !/  StructuresUseArrayFunctions+ !  StructuresSetAside* 5  PhpUseDateTimeImmutable)   FunctionsCantUse$( 7  FunctionsGeneratorCannotReturn ' /  FunctionsWrongReturnedType#& 9  ClassesDependantAbstractClass$ #  ArraysNullBoolean# %  ModulesIncomingData" /  ModulesNativeReplacement    G ~Y<~V*kJ3      G           8[ a  CompleteSetClassRemoteDefinitionWithReturnTypehintZ /  PhpUseContravarianceY '  PhpUseCovarianceX +  ArraysNoSpreadForHash'W !;  StructuresStripTagsSkipsClosedTag0V !M  StructuresOpensslRandomPseudoByteSecondArgU #  PhpHashAlgos74T 7  PhpPhp74RemovedDirective S !-  StructuresImplodeArgsOrderR -  PhpPhp74Deprecation%Q ;  CompleteFollowClosureDefinitionP /  CompleteSolveTraitMethods3O W  CompleteSetClassRemoteDefinitionWithInjection)N C  CompleteMakeClassConstantDefinition%M ;  CompleteSetClassAliasDefinition%L !7  StructuresArrayMergeAndVariadic!K 3  CompleteCreateDefaultValues'J ?  CompleteMakeClassMethodDefinition!I 3  CompleteSetParentDefinition!H 3  CompleteCreateMagicPropertyG %  CompleteSetCloneLink"F 5  CompleteOverwrittenConstants E 1  CompleteOverwrittenMethods#D 7  CompleteOverwrittenPropertiesC /  PhpNoMoreCurlyArraysB #  SecurityNoEntIgnore    A c+sP)zS1     h A         $t 7  FunctionsNoLiteralForReference s !-  InterfacesIsNotImplemented$r ;  ClassesIncompatibleSignature74q !#  StructuresAlwaysFalse!p !/  StructuresCoalesceAndConcato /  ArraysTooManyDimensionsn /  PhpPhp74NewDirectivem %'  PerformancesUseArraySlice$l !5  StructuresShouldUseExplodeArgsk 5  DumpCyclomaticComplexity(j K  PhpNestedTernaryWithoutParenthesisi 9  PhpSpreadOperatorForArrayh /  DumpIndentationLevels g 9  DumpEnvironnementVariables$f !5  StructuresMaxLevelOfIdentation e /  FunctionsUseArrowFunctions,c I  CompleteSetClassMethodRemoteDefinition'b ?  CompleteSetStringMethodDefinition%a ;  CompleteSetArrayClassDefinition4` Y  CompleteSetClassPropertyDefinitionWithTypehint5_ [  CompleteSetClassRemoteDefinitionWithParenthesis0^ Q  CompleteSetClassRemoteDefinitionWithGlobal2] U  CompleteSetClassRemoteDefinitionWithTypehint2\ U  CompleteSetClassRemoteDefinitionWithLocalNew    V xXAwW3oT5     s V                       -  DumpTypehintingStats  !-  StructuresMbstringThirdArg 1  PhpFilterToAddSlashes !  ArraysWeirdIndex" =  DumpCollectMbstringEncodings' !;  StructuresMbstringUnknownEncoding
 '  PhpIsAWithString	 )  CompletePropagateCalls   FunctionsWrongCase +  FunctionsParameterHiding( !=  InterfacesCantImplementTraversable  9  DumpCollectForeachFavorite+ G  CompleteMakeFunctioncallWithReference$ !5  StructuresUseUrlQueryFunctions! 5  ClassesTooManyDereferencing 3  DumpDereferencingLevels  !%  StructuresUseCaseValue '  CustomNotInThisList~ 1  ClassesNonNullableSetters$} A  DumpCollectLocalVariableCounts | 9  DumpCollectParameterCounts { %)  PerformancesMbStringInLoopz !  TypeUdpDomainsy +  SecurityNoWeakSSLCryptox -  TypeDuplicateLiteralw +  DumpCollectLiterals-v !G  InterfacesNoGaranteeForPropertyConstantu +  ClassesMagicProperties    _ oQ._3[3     x _                             . '  PhpCoalesceEqual- !  StructuresNotEqual+ -  ClassesFossilizedMethod* +  FunctionsMissingTypehint) )  FunctionsSemanticTyping( 5  DumpCollectClassChildren' /  DumpCollectClassDepth%& C  DumpCollectClassInterfaceCounts#% 5  FunctionsNullableWithoutCheck $ /  FunctionsExceedingTypehint!# ;  DumpParameterArgumentsLinks"" 3  FunctionsWrongTypehintedName!   DumpNewOrder  '  DumpTypehintorder !  DumpInclusions) E  ClassesInsufficientPropertyTypehint$ 7  FunctionsCouldTypeWithIterable '  TypeShellcommands  /  FunctionsCouldTypeWithBool! 1  FunctionsCouldTypeWithArray" 3  FunctionsCouldTypeWithString -  FunctionsCouldTypeWithInt  /  FunctionsWrongTypeWithCall !#  StructuresMergeIfThen 1  ClassesImmutableSignature" 5  CompleteCreateForeachDefault !  NamespacesWrongCase   VendorsConcrete5   VendorsTypo3    C hJ,yT4pR1     d C K +  FunctionsTooMuchIndented$J A  DumpCollectClassConstantCountsI 3  DumpCollectMethodCountsH 7  DumpCollectPropertyCountsG !)  NamespacesAliasConfusion$F !5  StructuresSGVariablesConfusionE !  StructuresLongBlockD +  FunctionsUsingDeprecatedC %  FunctionsPrefixToTypeB -  ClassesDynamicSelfCalls$A 7  VariablesUndefinedConstantName@ +  SecurityCryptoKeyLength!? 3  SecurityKeepFilesRestricted> -  TraitsUnusedClassTrait= '  TypeOpensslCipher< 5  PhpThrowWasAnExpression"; 7  ClassesMissingAbstractMethod*: C  FunctionsFnArgumentVariableConfusion9 )  ClassesHiddenNullable8 9  PhpSignatureTrailingComma#7 9  ClassesWrongTypedPropertyInit6 -  ClassesUninitedProperty5 1  PhpPhp80UnionTypehint4 1  PhpPhp80OnlyTypeHints3 #  FunctionsDontUseVoid2 /  PhpPhp80NewFunctions1 3  PhpPhp80VariableSyntax0 '  DumpConstantOrder"/ !1  InterfacesPossibleInterfaces    kM1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     V %  TypehintsCouldNotType'U !;  StructuresDoubleObjectAssignationT -  ClassesCyclicReferencesS   TypeProtocolsR !  TypehintsCouldBeCITQ %  TypehintsCouldBeArrayP /  CompleteExtendedTypehintsO #  TypehintsCouldBeVoidN )  TypehintsCouldBeBooleanM '  TypehintsCouldBeStringL #  PhpSafePhpvars
   ~ ~xrlf`ZTNHB<60*$ |vpjd^XRLF@:4.("
ztnhb\VPJD>82,&          ~~}}||{{zzyyxxwwvvuuttssrrqqppnnmmllkkjjiihhggffeeddccbbaa``^^]]\\[[ZZYYXXWWVVUUTTSSRRQQPPOONNMMLLKKJJIIHHGGFFEEDDCCBBAA@@??>>==<<;;::99887766554433221100//..--,,++**))((''&&%%$$##""!!  

				
   e  xph`XPH@80(  xph`XPH@80(  xph`XPH@80(                                                                                                                                                                                                                       
   e  xph`XPH@80(  xph`XPH@80(  xph`XPH@80(             bbaa``__^^]]\\[[ZZYYXXWWVVTTSSRRQQPPOONNMMLLKKJJHHGGFFEEDDCCBBAA@@??>>==<<;;::99665544221100//..--,,++))((''%%$$##!!  

		                            cc
   e  xph`XPH@80(  xph`XPH@80(  xph`XPH@80(             ~~}}||zzyyxxwwvvuuttrrppoonnmmllkkjjiihhggffee
   e  xph`XPH@80(  xph`XPH@80(  xph`XPH@80(             LLKKIIHHGGFFEEDDCCBBAA@@??>>==<<;;::998877665544332211//..--,,++**))((''&&%%$$##""!!    MM
   e  xph`XPH@80(  xph`XPH@80(  xph`XPH@80(             ~~}}||{{zzyyxxwwvvuuttssrrqqppoonnmmllkkjjiihhggffeeddccbbaa``__^^]]\\[[ZZYYXXWWVVUUTTSSRRQQPPOO
   e  xph`XPH@80(  xph`XPH@80(  xph`XPH@80(             IIHHGGFFEEDDCCBBAA@@>>==<<;;998877665544221100//..--,,++**))((''&&%%##""!!  

		  JJ
   e  xph`XPH@80(  xph`XPH@80(  xph`XPH@80(             ~~}}||{{zzyyxxwwvvuuttssrrqqppoonnmmllkkjjiihhggffeeddccbbaa``__^^]]\\[[ZZ3311qqppoo__QQPPOONN
   e  xph`XPH@80(  xph`XPH@80(  xph`XPH@80(             ookkjjiihhggffeeddccbbaa__^^]]\\ZZYYXXWWVVUUTTSSRRQQPPOONNHHGGFF??>>==<<

		  pp
   e  xph`XPH@80(  xph`XPH@80(  xph`XPH@80(             ~~}}||{{zzyyxxwwvvuuttssrr
   e  xph`XPH@80(  xph`XPH@80(  xph`XPH@80(             DDCCBBAA@@??==;;::99887766554433221100//..--,,++**))((''&&$$##""!!  

		  EE
 d  xph`XPH@80(  xph`XPH@80(  xph`XPH@80(             ~~}}||{{zzyyxxwwvvuuttssrrqqppoonnmmllkkjjiihhggffeeccbbaa``__^^]]\\[[ZZYYXXWWVVUUTTSSRRQQPPOONNMMLLKKJJIIHHGG   
   ) xph`XPH@80(                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    V nR9cC&uS/     q V                  ! !ExtensionsExtbzip2  !ExtensionsExtbcmath !ExtensionsExtapc! !-ExceptionsThrownExceptions " !/ExceptionsDefinedExceptions  !-ExceptionsCaughtExceptions  -ConstantsPhpConstantUsage#" 1ConstantsMagicConstantUsage!  -ConstantsInconsistantCase 'ConstantsConstantnamesb 'ConstantsConstantUsage&_$ 5ConstantsConstantStrangeNames  -ClassesStaticPropertiesg+ GClassesStaticMethodsCalledFromObject 'ClassesStaticMethods!5 1ClassesPropertyDefinition! 3ClassesOldStyleConstructor* EClassesNonStaticMethodsCalledStatic ClassesNonPpp #ClassesMagicMethod#) !ClassesEmptyClass 
 1ClassesConstantDefinition	 !ClassesClassnames% !ClassesClassUsage 'ArraysPhparrayindex$" 7ArraysMultipleIdenticalKeys	 -ArraysMultidimensional") !ArraysArrayindex&@ 'ArraysAmbiguousKeys !StructuresAddZero   # a y`G+u\C)kP5      { a                   D !ExtensionsExtpharC !ExtensionsExtpgsqlB !ExtensionsExtpdoA !ExtensionsExtpcre )@ !!ExtensionsExtopenssl	.? !ExtensionsExtodbc > !ExtensionsExtmysqli#= !ExtensionsExtmysql< !ExtensionsExtmssql0; !ExtensionsExtmongo: !ExtensionsExtmcrypt9 !#ExtensionsExtmbstring8 !ExtensionsExtlibxml

7 !ExtensionsExtldap6 !ExtensionsExtkdm55 !ExtensionsExtjson 4 !ExtensionsExticonv3 !ExtensionsExthash2 !ExtensionsExtgnupg1 !ExtensionsExtgmp00 !ExtensionsExtgd!/ !ExtensionsExtftp. !ExtensionsExtfilter&- !#ExtensionsExtfileinfo	, !ExtensionsExtfdf+ !ExtensionsExtexifB* !ExtensionsExtereg) !!ExtensionsExtenchant$( !ExtensionsExtdom' !ExtensionsExtdba & !ExtensionsExtdate<% !ExtensionsExtcurl$ !ExtensionsExtctypev# !ExtensionsExtcrypto" !#ExtensionsExtcalendarU   ! O qV7{]C$|bI/     j O     f FunctionsTypehints"%e 7FunctionsRedeclaredPhpFunction	d FunctionsRecursivec 'FunctionsFunctionnames)b CFunctionsFunctionCalledWithOtherCasea 'FunctionsEmptyFunction` FunctionsClosures$^ !ExtensionsExtzlib	] !ExtensionsExtzipr\ !ExtensionsExtyaml [ !ExtensionsExtxsl Z !%ExtensionsExtxmlwriterY !ExtensionsExtxmlrpc X !%ExtensionsExtxmlreaderW !ExtensionsExtxdebugfV !ExtensionsExtwddxBU !%ExtensionsExttokenizerT !ExtensionsExttidyS !#ExtensionsExtstandard%R !ExtensionsExtssh2 Q !!ExtensionsExtsqlite3aP !ExtensionsExtsqliteO !ExtensionsExtsplN !!ExtensionsExtsockets0M !ExtensionsExtsoapmL !ExtensionsExtsnmpK !%ExtensionsExtsimplexmlFJ !ExtensionsExtshmopI !!ExtensionsExtsessionH !ExtensionsExtsemHG !'ExtensionsExtreflection>F !#ExtensionsExtreadlineE !ExtensionsExtposix	     ] aM5mN8w[>     z ]                      !StructuresOnceUsage !StructuresNotNot# !StructuresNoscream !'StructuresMultiplyByOne !#StructuresIffectation`$ !3StructuresForgottenWhiteSpace$ !3StructuresForWithFunctioncall  !StructuresExitUsage !StructuresEvalUsage*~ !?StructuresErrorReportingWithInteger &} !;StructuresCalltimePassByReference| !+StructuresBreakNonInteger{ !StructuresBreak0z 'PhpTryCatchUsageOy /PhpTriggerErrorUsageWx !PhpThrowUsage w 7PhpPhp55RemovedFunctionsv 7PhpPhp54RemovedFunctionsu !PhpLabelnamest %PhpIncompilables %PhpHaltcompiler r PhpGotonamesq !PhpCaseForPSSp 'PhpAutoloadUsage n !+NamespacesNamespacesnames[m !NamespacesAlias{l !InterfacesPhpk !)InterfacesInterfacenamesUj !)InterfacesInterfaceUsagei !)InterfacesEmptyInterface'h 'FunctionsWithoutReturng -FunctionsUnsetOnArguments   " p dD~dM7#uQ4     p                                    - /VariablesVariableUppercase, #VariablesVariablePhp+ /VariablesVariableOneLetter * -VariablesVariableNonascii) %VariablesVariableLong( +VariablesStaticVariables' !VariablesReferences>!& 1VariablesInterfaceArguments% VariablesBlind# TypeUrl" %TypeUnicodeBlock&! !TypeCharString&  +TypeSpecialIntegers TypePorts TypePcre" TypeOctal TypeNowdocx TypeMimeType TypeMd5String )TypeMalformedOctal !TypeHttpStatusT !TypeHttpHeader #TypeHexadecimal TypeHeredoc TypeEmailQ !TypeContinents TypeBinary( !;StructurestoStringThrowsException !%StructuresVardumpUsage  !+StructuresThrowsAndAssignH !'StructuresStrposCompare& !StructuresShortTags
 !#StructuresPlusEgalOne	 !%StructuresPhpinfoUsage     N {^C'dH(sX=      o N      P !+InterfacesInterfaceMethodN )ClassesAbstractStatic#M !1StructuresUselessInstructionL /PhpPhp55NewFunctionsK /PhpPhp54NewFunctionsJ !ExtensionsExtyisI -PhpUpperCaseKeywordH -PhpRawPostDataUsageG !ExtensionsExtmathF !ExtensionsExtinfoE !ExtensionsExtffmpegD !ExtensionsExtarray%4C !NamespacesUsedUse(B !;NamespacesUseWithFullyQualifiedNSZA !NamespacesUnusedUseJ@ !ExtensionsExtfile"~> !%StructuresIncludeUsage= %ArraysArrayNSUsage=< /PhpAlternativeSyntax	; !TraitsTraitnames: !TraitsTraitUsage9 TraitsPhp8 !TraitsEmptyTrait 7 -ConstantsVariableConstant 6 -ConstantsBadConstantnames5 #ClassesFinalmethod:4 !ClassesFinalclass3 %ClassesCloningUsage2 +ClassesAbstractmethods1 'ClassesAbstractclasst!/ /VariablesVariableVariables . -VariablesVariableUsedOnce"    E X2
cC*vU+    f E     m -ClassesThisIsForClasses	(#l 9ClassesPropertyUsedInternally(j !;StructuresFunctionPreSubscripting[%i !5StructuresSwitchWithoutDefault$h !3StructuresMultipleDefinedCaseH"g 1FunctionsOneLetterFunctions
'f !9StructuresOneLineTwoInstructionsne !'StructuresWhileListEach
d 1PhpClosureThisSupport c 1ClassesStaticContainsThis*b %PhpEchoTagUsagea PhpCloseTags` !#StructuresNestedLoops!%_ !5StructuresFunctionSubscripting^ %PhpCastingUsage"l] 1TypeOneVariableStrings_\ -ClassesThisIsNotAnArray[[ )PhpAssertionUsageZ #PortabilityFopenMode.Y !GStructuresConstantComparisonConsistance3X /PhpIsnullVsEqualNull]%W !5StructuresEchoPrintConsistance#V 7FunctionsMultipleSameArguments&U 9FunctionsWrongOptionalParameter*T AConstantsMultipleConstantDefinitionS #ConstantsInvalidNamegR #TraitsTraitMethodQ /PhpPhp56NewFunctions    g oJkQ7xX5     g                                       	 'FunctionsUsedFunctions +FunctionsUnusedFunctions! 3ClassesUnusedPrivateMethod /ClassesUsedPrivateMethod  3ClassesUsedPrivateProperty# 7ClassesUnusedPrivateProperty  1ClassesUndefinedConstants -ClassesDefinedConstants !#StructuresBracketless!  !-StructuresHtmlentitiescallR 'ConstantsIsExtConstant#~ !)InterfacesIsExtInterfaceJ} 'FunctionsIsExtFunction&| !ExtensionsExtredis{ !ExtensionsExtmingz ClassesWrongCasey !ClassesIsExtClassx -ClassesUndefinedClasses#w !ExtensionsExtpcntlv !'StructuresEmptyTryCatchu #ClassesCitSameNamet +ClassesMutualExtension0(s AClassesInstantiatingAbstractClass"r 3ConstantsCustomConstantUsage"q 1ConstantsUndefinedConstants{p -ArraysNonConstantArray
@(o !?StructuresSwitchWithMultipleDefaultn !'StructuresNestedTernary    E vId;pX=     g E   + +ConstantsUnusedConstants$) !7StructuresConditionalStructures( !'NamespacesUnresolvedUse ' -ConstantsConstRecommendedD%% ;ClassesImplementIsForInterface$ +ClassesTooManyChildren$5 # 1ClassesUselessConstructor! #ClassesConstructor  #PhpNewExponent 'PhpExponentUsage 'PhpEllipsisUsage /ClassesUnresolvedClasses! VariablesIsRead !VariablesIsModified #FunctionsLoopCalling" 1FunctionsHardcodedPasswords & 9FunctionsWrongNumberOfArguments$ 5FunctionsUsesDefaultArguments& %FunctionsAliasesUsage #ClassesOldStyleVar !'StructuresQueriesInLoop !ExtensionsExtsqlsrv !ExtensionsExtcyrus( !;StructuresDanglingArrayReferences* !CStructuresMcryptcreateivWithoutOption !-StructuresCryptWithoutSalt !PhpDeprecated" 1FunctionsUndefinedFunctions)
 ?VariablesVariableUsedOnceByContext%~    U `@'mM&nK$    q U                   L /PhpUpperCaseFunction)K !=StructuresConstantScalarExpression$;&J !7NamespacesUseFunctionsConstants<!H !1StructuresConstantConditionsG !StructuresOrDie5F !'StructuresListOmissions$E !3StructuresEmptyWithExpression D !+StructuresForeachWithListC -PhpStaticclassUsageB !+StructuresDereferencingASA !PhpPassword55@ !!StructuresTryFinally
? #FunctionsIsGenerator$> 5ConstantsConditionedConstants$= 5FunctionsConditionedFunctions< +ClassesVariableClasses ; !'StructuresMultipleCatch3!: /FunctionsVariableArguments9 #FunctionsDynamiccall=6 !TraitsIsExtTrait5 !%ExtensionsExtmemcachedx4 !#ExtensionsExtmemcache2 !ExtensionsExtzmq1 +ClassesPssWithoutClass 0 +ClassesAccessProtected/ 'ClassesAccessPrivateH. /ClassesUndefinedStaticMP@- +ClassesDefinedStaticMP, /ClassesUndefinedParentMP    G bG)
e?)d5     b G     j !ClassesDynamicNewi /ClassesDynamicMethodCall!h 3ClassesDynamicConstantCallg +SecurityDirectInjectionWf -ClassesOverwrittenConstIe !ExtensionsExtimap.d !GStructuresForeachReferenceIsNotModified	,c !CStructuresForeachNeedReferencedSource #b !1ExceptionsOverwriteExceptiona #ClassesUsedMethods` !ExtensionsExtoci8*_ !?StructuresPropertyVariableConfusionZ^ 'ClassesUnusedMethods%M] !!ExtensionsExtimagickN\ #PhpSetHandlers#[ 7FunctionsHasNotFluentInterface Z 1FunctionsHasFluentInterfaceY 1ClassesHasFluentInterface-X GFunctionsWrongNumberOfArgumentsMethods$W !ArraysEmptySlotsV ArraysMixedKeysT 3TypeStringInterpolationS !!StructuresEmptyLinesR )PhpdebugInfoUsageQ !FunctionsMustReturn#P 3VariablesWrittenOnlyVariableO FunctionsKillsApp N !+StructuresUnreachableCodeWM )FunctionsMultipleReturn    T nR-pU:~\C(	     r T                 !!ExtensionsExtgettext
 !ExtensionsExtrunkitI	 !#ExtensionsExtparsekit !ExtensionsExtrecodem -ClassesHasMagicProperty /ClassesUndefinedProperty +ClassesDefinedProperty !ExtensionsExtexpect FunctionsIsGlobal /SecuritySensitiveArgument 'ConstantsIsPhpConstant  !!ExtensionsExtopcache !)StructuresNoDirectAccess~ !ExtensionsExtpspellO} !)StructuresUnpreprocessed| !#StructuresDynamicCode!z !ExtensionsExtcairoy !ExtensionsExtintl	x ClassesUsedClassw #ClassesUnusedClassmv 7PhpReturnWithParenthesis u !+StructuresFileUploadUsage#t 7ClassesMultipleClassesInFile{r 'FunctionsUselessReturnk"p !1StructuresComparedComparisono !!StructuresReturnVoidn %ClassesDynamicClass!m 5SecuritySuperGlobalContagion*l !?StructuresNoChangeIncomingVariables|!k 3ClassesDynamicPropertyCall    V ]D oM2
jI.    | V                    #) 7ClassesLocallyUnusedProperty( /ClassesRedefinedProperty]!' !-StructuresObjectReferences.(& !;StructuresPrintWithoutParenthesis$ !'StructuresRepeatedPrintW# -ArraysShouldPreprocessD" )FilesGlobalCodeOnly! 1FilesNotDefinitionsOnly   'ClassesConstantClasso +FunctionsDeepDefinitions +FilesDefinitionsOnly !'StructuresNoArrayUnique !)NamespacesNamespaceUsage[% !5StructuresCatchShadowsVariable	
 )PhpConstWithArray !)StructuresImplicitGlobal 'ClassesShouldUseSelfn -PhpLogicalInLetters 'PhpReservedNames## !#StructuresGlobalUsageP -PhpSuperGlobalUsage 3TypeShouldBeSingleQuote" 1FunctionsShouldBeTypehinted SecurityNoSleepE  1ClassesThisIsNotForStatic* #ArraysCurlyArrays !StructuresLoneBlock( !;StructuresBooleanStrictComparison 5PhpShortOpenTagRequired    Q hF&y\9xW5     s Q               N !)StructuresResourcesUsageM !#StructuresUseConstantL %ClassesUselessFinal  K %'PerformancesSlowFunctions#S!J !-StructuresShouldPreprocess!I !'StructuresUselessGlobal	H !%StructuresUnusedGlobalSF !)StructuresEchoWithConcatE 3TypeStringHoldAVariable%B ;ClassesDirectCallToMagicMethod(A ?SecurityparseUrlWithoutParameters @ !#ExtensionsExtwincache? !ExtensionsExtxcache> !ExtensionsExtiis= !ExtensionsExtfpmN < !+ExtensionsExteaccelerator ; !ExtensionsExtapache: !ClassesAvoidUsing9 +ClassesClassAliasUsage)6 ClassesUseThis5 'ClassesShouldUseThis%4 !'StructuresSequenceInFor3 -TypeNoRealComparison0 !)StructuresYodaComparison/ /ClassesPropertyNeverUsed$%. !9NamespacesConstantFullyQualified), AConstantsCreatedOutsideItsNamespace<+ )VariablesLostReferences * 3ClassesLocallyUsedProperty    Q tN0|_,eL     z Q               &l 9FunctionsUseConstantAsArguments	k !!ExtensionsExtphalcon j !+StructuresNoHardcodedPorti +PhpMethodCallOnNewR h !+StructuresNoHardcodedPath!g !#StructuresUnusedLabely2f !OStructuresNoParenthesisForLanguageConstructe !ExtensionsExtdiod -SecurityAvoidThoseCryptotc PhpHashAlgos"b 1FunctionsShouldUseConstants	a #PhpUsePathinfo)` #ClassestoStringPss_ %FunctionsMarkCallable!f] ClassesTestClassZ0\ !KStructuresAlteringForeachWithoutReference[ -PhpoldAutoloadUsageZ !ExceptionsUnthrown&Y %PhpUseObjectApi	:"X 5ClassesUnresolvedInstanceofW !%StructuresDynamicCalls `V !StructuresMailUsage_U !StructuresFileUsageT !!StructuresShellUsage#S !1StructuresUselessParenthesis$R %/PerformancesArrayMergeInLoopsQ !)StructuresDuplicateCalls"P !/StructuresBuriedAssignation ZO !%StructuresUselessUnset    F |]@&sL(oP*
      g F   !'StructuresNoHardcodedIp	q +ClassesUnresolvedCatch !ExtensionsExtmailr !%ExtensionsExtmailparse !ExtensionsExttrader !ArraysIsModified
 ArraysIsRead 3PhpClassConstWithArray# !1StructuresUncheckedResources> !#StructuresPrintAndDiew #PhpHashAlgos54  #PhpHashAlgos53 /ClassesIsInterfaceMethod)~ ASecurityShouldUsePreparedStatement"} !/StructuresDoubleInstructionb| !ExtensionsExtapcu!{ !1InterfacesConcreteVisibility$z !3InterfacesUndefinedInterfaces7"y !/InterfacesUselessInterfacesD!x !-InterfacesUnusedInterfaces
w !)InterfacesUsedInterfaces%v !5StructuresShouldChainException-u -ComposerIsComposerNsnameCt ComposerAutoloads #ComposerUseComposer6r )ClassesNoPublicAccessp #ClassesMakeDefault]#o 3VariablesOverwrittenLiterals"n 5WordpressNoGlobalModificationm !StructuresImpliedIfk    V hR-|\;#h5      s V                  2 !!ExtensionsExtinotify1 !ExtensionsExtibase / !!ExtensionsExtgmagick[. !ExtensionsExtcom- !!ExtensionsExtgearman6, !ExtensionsExtamqp + !ExtensionsExtevent * !ExtensionsExtgeoip0) !KStructuresOnlyVariableReturnedByReference<#( %-PerformancesPrePostIncrement$' !!StructuresStaticLoopz& !%NamespacesGlobalImport% !ExtensionsExtob$ 3PhpReturnTypehintUsage# 3PhpScalarTypehintUsage" ClassesNullOnNew! /ClassesOnlyStaticMethods  +ClassesUselessAbstract) !=StructuresCouldUseShortAssignation !)NamespacesEmptyNamespacea #SecurityCompareHash" 5ClassesMultipleDeclarations !'StructuresCouldBeStatic" 5ClassesCouldBeClassConstant ClassesIsRead !ClassesIsModified !)StructuresUnsetInForeach /PhpReservedKeywords7 !%StructuresElseIfElseif !)StructuresVariableGlobal    H oV< pE(yT:     f H    Q 1PhpPhp70NewInterfacesP +PhpPhp70NewClassesO 7PhpPhp70RemovedFunctions[N /PhpPhp70NewFunctionsM 3PhpUnicodeEscapeSyntaxO"L !/StructuresDoubleAssignationK PhpCoalesceI -ConstantsIsGlobalConstantH ClassesAnonymous"G !/StructuresGlobalOutsideLoopTF !#StructuresNoSubstrOne!E 3ComposerIsComposerInterfaceD +ComposerIsComposerClass"C !/StructuresIssetWithConstants$B =ClassesOneObjectOperatorPerLineA !StructuresElseUsage#(@ !?StructuresInconsistentConcatenation? !-StructuresBreakOutsideLoop> !'StructuresNoDirectUsagej%= ?ClassesNoSelfReferencingConstant< )TypeShouldTypecast&; !7StructuresIndicesAreIntOrString: !ExtensionsExtxhprofI9 !ExtensionsExtxml48 !ExtensionsExtast7 !ExtensionsExtev*6 !#ExtensionsExtlibevent5 !ExtensionsExtxdiff 4 !%ExtensionsExtwikidiff23 !%ExtensionsExtproctitle    ] e>z[9~eE"      t ]                       p TraitsUsedTraito 3TypeSilentlyCastIntegerNn !'StructuresUseInstanceofm FilesServicesl +SecurityRegisterGlobalsHk TypeSapij PhpUseClii PhpUseWeb h 1FunctionsfuncGetArgModifiedg 'FunctionsRelayFunction f !ExtensionsExtfanne /TypeHexadecimalStringfd %PhpUsortSortingQc !)StructuresGlobalInGlobal(b !;StructuresSetlocaleNeedsConstants a -PhpNoListWithString` #ClassesIsNotFamily_ !)StructuresEvalWithoutTryd^ !#StructurespregOptionEs ] !+StructuresUselessBrackets\ +PhpDirectivesUsageI[ 7PhpPhp70RemovedDirective Z +PhpDefineWithArrayY 5PhpUnicodeEscapePartial&X 9VariablesPhp7IndirectExpression$W 9VariablesPhp5IndirectExpression V =PhpForeachDontChangePointerU 9PhpParenthesisAsParameterB#T CPhpGlobalWithoutSimpleVariableS +PhpListWithAppends R PhpEmptyList    \ aD)lX6xbH,     v \                       #ZendFZendClasses:( !;InterfacesAlreadyParentsInterface !#StructuresNegativePow #SecurityCurlOptions -PhpPregMatchAllFlag 'PhpMiddleVersion&w #FilesIsCliScript/
 #VariablesCloseNaming	 'PhpDirectiveNamei PhpFopenMode~ -ClassesRedefinedDefault
q #FilesIsComponent  1ClassesRedefinedConstants# -ClassesRedefinedMethods )ClassesCouldBePrivate   7PhpInternalParameterType !)StructuresSwitchToSwitch~ PhpUsesEnv} +FunctionsUnusedArguments"| 'ClassesNormalMethods%M{ )ClassesNormalProperty$~z 'FunctionsRealFunctionsy 'VariablesRealVariables&x %PerformancesJoinFilew !ExtensionsExthttp v )ClassesSameNameAsFileu 1PhpPhp7RelaxedKeyword	$t !3StructuresTimestampDifferences !'StructuresErrorMessages"r !#StructuresPHP7Dirnameq #TraitsUnusedTrait    _ yV1sT5lH,     _                             #3 !1ExceptionsCaughtButNotThrown#2 !1ExceptionsUncaughtExceptions1 !ExtensionsExtlua0 !'ExceptionsAlreadyCaughtI . !+StructuresLogicalMistakes4#, !1StructuresCommonAlternatives + !StructuresNoChoice!* !-StructuresRandomWithoutTryM!) !/StructuresUnknownPregOptionI$( !3StructuresIdenticalConditions
 ' !+StructuresNoHardcodedHash|& -ZendFUndefinedClass18% -ZendFUndefinedClass19$ /ZendFUndefinedClass110# /ZendFUndefinedClass111" /ZendFUndefinedClass112! )TraitsUndefinedTraitG  PhpPearUsage	k )PhpYieldFromUsages !PhpYieldUsage !ExtensionsExtv8js !)ExtensionsExttokyotyrant !!StructuresSimplePreg" 9ClassesUsingThisOutsideAClass  !+StructuresTernaryInConcatU +ClassesCantExtendFinal   ;PhpSetExceptionHandlerPHP7I* MPhpCantUseReturnValueInWriteContext	A !PhpBetterRandb    R cD#mR2d?     x R                #Q !1StructuresResultMayBeMissingYP +PhpListShortSyntaxHO /ClassesPropertyUsedBelowN /ClassesPropertyUsedAboveM %#PerformancesMakeOneCalliK 'ClassesUseInstanceof'J ;FunctionsFunctionsUsingReference"I 3SecurityCantDisableFunction"H !/ExceptionsThrowFunctioncally#G 5SecurityUnserializeSecondArg]F !!ExtensionsExtsuhosins%E !5StructuresIfWithSameConditionsD %PhpListWithKeys!C 3ClassesMakeGlobalAProperty:B 1ZendFActionInControllerA 'ZendFNotInThatPath@ /PhpShouldUseCoalesce? !#StructuresCouldUseDir%> !WordpressUseWpdbApi= #VariablesOverwriting#< 'WordpressWpdbBestUsage; !'StructuresUselessSwitch: +WordpressUnverifiedNonce9 'WordpressNonceCreation 8 /SecurityIndirectInjectionx7 !SecurityGPRAliases 6 !+StructuresReturnTrueFalse5 +PhpPhp71NewClasses4 !)StructuresSameConditionso    F jL+gF" Y-     l F    #u 3FunctionsUnusedReturnedValuet ZendFIsHelpers %ZendFIsController"r !/StructuresShouldMakeTernary!(q !;StructuresFailingSubstrComparisonp !'StructuresCastToBooleano !%StructuresNestedIfthen"A)n !=NamespacesMultipleAliasDefinitions%m =ClassesMultipleTraitOrInterface l !+NamespacesShouldMakeAlias?k !'NamespacesCouldUseAliasj !NamespacesHiddenUse	}i )TraitsDependantTrait
@a %%PerformancesNotCountNull!` 1WordpressUnescapedVariables_ #)PortabilityLinuxOnlyFiles^ !%StructuresUseSystemTmp $] 9ClassesUnusedProtectedMethods6 \ 3ClassesUsedProtectedMethod[ +ClassesThrowInDestruct6Z !#StructuresEmptyBlockshY 'ClassesIsUpperFamilyX !'ExceptionsMultipleCatchW /PhpPhp71NewFunctions V 7PhpPhp71RemovedDirective U !'StructuresNeverNegativeaT VariablesGlobalsS +ClassesDefinedParentMPR +PhpUseNullableType    P qW8`1`>"     n P                 -ZendFUndefinedClass30 -ZendFUndefinedClass25 -ZendFUndefinedClass24 -ZendFUndefinedClass23 -ZendFUndefinedClass22 -ZendFUndefinedClass21 -ZendFUndefinedClass20 !ExceptionsRethrown5 1ArraysGettingLastElement# !1StructuresDontChangeBlindKey< /PhpPhp71microseconds )WordpressUseWpFunctions$
 ;ArraysArrayBracketConsistence#	 !1StructuresDieExitConsistance !%StructuresBailOutEarly#, !GStructuresOneDotOrObjectOperatorPerLine$ !7StructuresOneLevelOfIndentation# 7ClassesUnitializedProperties#G !%StructuresUselessCheck" %+PerformancestimeVsstrtotime! !-StructuresNoIssetWithEmpty:  !)StructuresUselessCasting 'SecurityDontEchoError~ !ExtensionsExtrar } -ClassesUseClassOperator$$| !3StructuresDropElseAfterReturn%{ !5StructuresUsePositiveConditionz !#StructuresModernEmpty    W {W=$hQ0~J#    x W                   4 !'StructuresLongArgumentsC3 +ZendFZendTypehinting&2 =ClassesCouldBeProtectedProperty(1 !;StructuresNoAssignationInFunctionu0 %PerformancesNoGlob/ 1PhpNoStringWithAppend$. %/PerformancesFetchOneRowFormat1- !MStructuresOneExpressionBracketsConsistency, /PhpShouldUseFunction&e+ !!ExtensionsExtmongodb* !#ExtensionsExtzbarcode) !ExtensionsExtmhash( +ClassesFinalByOcramius' !ExtensionsExtstring%& 5PhpCloseTagsConsistency	e% #PhpUnsetOrCast6$ -WordpressWpdbPrepareOrNot# ClassesWrongName" +PhpGlobalsVsGlobal%! 7FunctionsTooManyLocalVariablesh  +ComposerUseComposerLock& !!ExtensionsExtncurses !ExtensionsExtnewt !ExtensionsExtnsapi! %)PerformancesAvoidArrayPush 'TypeOctalInString +FunctionsCouldReturnVoid #PhpUseStdclass )ZendFZendInterfaces ZendFZendTrait    Q oM%wW5}\0    n Q                 P #ConstantsStrangeNameO #VariablesStrangeName
+N ESecurityShouldUseSessionRegenerateId <M !'StructuresNoNeedForElseH#L ?ZendFShouldRegenerateSessionIdK !ZendFUseSessionJ !ExtensionsExtds6)I CClassesPropertyUsedInOneMethodOnly!H -ClassesUsedOncePropertyyG /ClassesNoPSSOutsideClassgF !%StructuresDirThenSlash//E !INamespacesMultipleAliasDefinitionPerFileND 5PhpShouldUseArrayColumn C !+ExceptionsForgottenThrownB 9PhpClassFunctionConfusion0A !%ExtensionsExtlibsodium @ #ClassesStrangeName ? /WordpressAvoidOtherGlobals> TypeSql"= 1FunctionsNoBooleanAsDefault < /ClassesRaisedAccessLevely; 'PhpErrorLogUsage%: ;WordpressWpdbPrepareForVariables9 7PhpPhp72RemovedFunctions 8 -PhpPhp72Deprecation 7 !%StructuresNewLineStyle#6 3VariablesAssignedTwiceOrMore+5 GClassesNewOnFunctioncallOrIdentifier   % _ mK/zdN6~fN6!
      ~ _              'SecuritySetCookieArgs	(
 %PhpUseSetCookie	 !PhpUseCookies ZendFZf3View29 ZendFZf3View28 ZendFZf3View27 ZendFZf3View26 ZendFZf3View25 ZendFZf3View !ZendFZf3Cache27  !ZendFZf3Cache26 !ZendFZf3Cache25~ ZendFZf3Cacheq %ClassesTooManyFindsp )CommonInterfaceUsageo )SecurityEncodedLettersn #ZendFZf3Config31m #ZendFZf3Config30l #ZendFZf3Config26k #ZendFZf3Config25j ZendFZf3Mvc30h ZendFZf3Mvc27g ZendFZf3Mvc26f ZendFZf3Mvc25e ZendFZf3Uri25d )ZendFZf3Validator28c )ZendFZf3Validator27b )ZendFZf3Validator26a 3ZendFZf3ComponentMissing` )ZendFZf3Validator25_ +FunctionsCouldBeCallableV %ZendFZf3ValidatorU ZendFZf3UriT ZendFZf3MvcS %ZendFZf3ComponentR ZendFZf3ConfigQ !)StructuresRegexDelimiter3   % X vbL6`L6 
{\=       n X      0 ZendFZf3Test26/ ZendFZf3Test25. ZendFZf3Test- %ZendFZf3Session27, %ZendFZf3Session26+ %ZendFZf3Session25* !ZendFZf3Session
) /ZendFZf3Eventmanager31
( /ZendFZf3Eventmanager30
' /ZendFZf3Eventmanager26
& /ZendFZf3Eventmanager25
% +ZendFZf3Eventmanager
$ %ZendFZf3Escaper25# !ZendFZf3Escaper" ZendFZf3Http26! ZendFZf3Http25  ZendFZf3Http ZendFZf3Feed27 ZendFZf3Feed26 ZendFZf3Feed25 ZendFZf3Feed 3ZendFZf3Authentication25 /ZendFZf3Authentication !ZendFDontUseGPC( !%StructuresMissingCases #ZendFZf3Filter27 #ZendFZf3Filter26 #ZendFZf3Filter25 ZendFZf3Filter ZendFZf3Text26 ZendFZf3Text25 ZendFZf3Text %ZendFZf3Barcode26 %ZendFZf3Barcode25 !ZendFZf3Barcode 1ZendFZf3DeprecatedUsage( !'StructuresCheckAllTypes   ) l iM6gN5nZF3	       l                  x ZendFZf3Filew ZendFZf3Form29v ZendFZf3Form28
u ZendFZf3Form27
t ZendFZf3Form26
s ZendFZf3Form25
r ZendFZf3Form
q ZendFZf3Dom26p ZendFZf3Dom25o ZendFZf3Domi ZendFZf3Di26h ZendFZf3Di25g ZendFZf3Dif !ZendFZf3Debug25e ZendFZf3Debugd !ZendFZf3Crypt32c !ZendFZf3Crypt31b !ZendFZf3Crypt30a !ZendFZf3Crypt26` !ZendFZf3Crypt25_ ZendFZf3Crypt^ %ZendFZf3Console26] %ZendFZf3Console25\ !ZendFZf3Console
[ ZendFZf3Code31Z ZendFZf3Code30Y ZendFZf3Code26X ZendFZf3Code25W ZendFZf3CodeV %ZendFZf3Captcha27U %ZendFZf3Captcha26T %ZendFZf3Captcha25S !ZendFZf3CaptchaR /PhpPhp72NewConstantsQ /PhpPhp72NewFunctions 6 ZendFZf3Db285 ZendFZf3Db274 ZendFZf3Db263 ZendFZf3Db252 ZendFZf3Db1 ZendFZf3Test30   ' ] }gI)z\E-{eO9$       s ]        ZendFZf3Memory ZendFZf3Math30 ZendFZf3Math27 ZendFZf3Math26 ZendFZf3Math25 ZendFZf3Math ZendFZf3Mail27 ZendFZf3Mail26 ZendFZf3Mail25 ZendFZf3Mail
 ZendFZf3Log29 ZendFZf3Log28 ZendFZf3Log27 ZendFZf3Log26 ZendFZf3Log25 ZendFZf3Log PhpPrints -ZendFThrownExceptions(  3ClassesMethodIsOverwritten 3PhpGroupUseDeclaration #ZendFZf3Loader25
 ZendFZf3Loader	 -ZendFZf3Inputfilter27 -ZendFZf3Inputfilter26 -ZendFZf3Inputfilter25 )ZendFZf3Inputfilter ZendFZf3Json30 ZendFZf3Json26 ZendFZf3Json25 ZendFZf3Json
 3ZendFZf3I18n_resources25  /ZendFZf3I18n_resources ZendFZf3I18n27~ ZendFZf3I18n26} ZendFZf3I18n25| ZendFZf3I18n{ ZendFZf3File27z ZendFZf3File26y ZendFZf3File25   " T pT8iN3lP4     u T        B 3ZendFZf3Servicemanager27A 3ZendFZf3Servicemanager26@ 3ZendFZf3Servicemanager25? /ZendFZf3Servicemanager> #ZendFZf3Server27= #ZendFZf3Server26< #ZendFZf3Server25; ZendFZf3Server: +ZendFZf3Serializer289 +ZendFZf3Serializer278 +ZendFZf3Serializer267 +ZendFZf3Serializer256 'ZendFZf3Serializer5 -ZendFZf3Progressbar254 )ZendFZf3Progressbar3 +PhpNoClassInGlobal1 !'StructuresRepeatedRegexi0 )ZendFZf3Paginator27/ )ZendFZf3Paginator26. )ZendFZf3Paginator25- %ZendFZf3Paginator, 1ZendFZf3Modulemanager27+ 1ZendFZf3Modulemanager26* 1ZendFZf3Modulemanager25) -ZendFZf3Modulemanager
( +ZendFZf3Navigation28' +ZendFZf3Navigation27& +ZendFZf3Navigation26% +ZendFZf3Navigation25$ 'ZendFZf3Navigation# ZendFZf3Mime26" ZendFZf3Mime25! ZendFZf3Mime
  #ZendFZf3Memory25     Y |hR<)pW>%yQ1     Y                 -f GFunctionsOnlyVariablePassedByReferencee !ExtensionsExtgrpcd -PhpTryMultipleCatch3c !ExtensionsExtsphinxB#b 9ArraysRandomlySortedLiterals-a !EStructuresAlternativeConsistenceByFile` !%StructuresNoEmptyRegex %_ !5StructuresDifferencePreferenceT!^ 9TypeStringWithStrangeSpace/] !ArraysEmptyFinal%\ !5StructuresSuspiciousComparison"[ !/StructuresCouldUseStrrepeatZ 5PhpCrc32MightBeNegativegY #ZendFZf3Stdlib31
X #ZendFZf3Stdlib30
W #ZendFZf3Stdlib27V #ZendFZf3Stdlib26U #ZendFZf3Stdlib25T ZendFZf3StdlibS #ZendFZf3Xmlrpc26R #ZendFZf3Xmlrpc25Q ZendFZf3XmlrpcL ZendFZf3Tag26K ZendFZf3Tag25J ZendFZf3TagI ZendFZf3Soap26H ZendFZf3Soap25G ZendFZf3SoapF 3ZendFZf3Servicemanager33E 3ZendFZf3Servicemanager32D 3ZendFZf3Servicemanager31C 3ZendFZf3Servicemanager30    R e;iN%gL3      l R             VendorsWordpress  VendorsSymfony VendorsLaravel #VendorsCodeigniterm VendorsYii   1ClassesOrderOfDeclaration" !/InterfacesCouldUseInterface]~ +FunctionsCouldCentralize} !ExtensionsExtjudy| !ExtensionsExtgender"{ 3PatternsCourrierAntiPattern("z 3PatternsDependencyInjectiony /ClassesTooManyInjectionsx /PhpPhp73NewFunctions 3w !QStructuresConcatenationInterpolationFavorite&v AClassesTypehintCyclicDependenciesu !ExtensionsExtstats)t !=StructuresMixedConcatInterpolations !PsrPsr13Usager !PsrPsr11Usageq PsrPsr3Usage~p PsrPsr6Usageo PsrPsr7Usagen !PsrPsr16Usagem 'FunctionsCouldTypehint'l CClassesImplementedMethodsArePublic!k !/StructuresNoReferenceOnLeft*!j /FunctionsNoClassAsTypehinti !StructuresUseDebugh #PhpUseBrowscap g %FunctionsNoReturnUsed'    ` `9\>$fA     } `                              " 1PhpPhp72ObjectKeyword! -ClassesNoMagicWithArray  /PhpIssetMultipleArgs$ APhpLetterCharsLogicalFavorite! PhpAssignAndf 7PhpGroupUseTrailingCommaI$ 9ClassesScalarOrObjectProperty	k" 1FunctionsMismatchedTypehint* AFunctionsMismatchedDefaultArguments !ExtensionsExtlapack" !/StructuresMismatchedTernary %PhpDeclareTicksm +PhpDeclareEncoding6 /PhpDeclareStrictType 'PhpDeclareStrict %SecurityMkdirDefault$ !3StructuresConstDefineFavorite6! !/StructuresNoReturnInFinally[ PhpIsINF PhpIsNANN !ExtensionsExtswoole' !=StructuresHeredocDelimiterFavorite% ;ClassesAvoidOptionalProperties $ 5FunctionsMultipleDeclarations(
 !=StructuresNonBreakableSpaceInNames	 VendorsJoomla& ?ClassesCantInheritAbstractMethod  9PhpUseSessionStartOptions  VendorsEzO    U {Y<[2vcD     r U                   @ -PhpSessionVariables? -SecuritySessionLazyWrite%> !5StructuresUnconditionLoopBreak5= !StructuresIsZero%< !5StructuresMultipleTypeVariable; #SecurityAnchorRegex&: ;SecurityUploadFilenameInjection9 !#StructuresFallthrough8 TypeRegexS7 !ExtensionsExtparle6 +PhpUsePathinfoArgs
*5 +PhpPathinfoReturns$4 9ClassesCouldBeProtectedMethod%("3 5ClassesCouldBePrivateMethod%e2 +ClassesMethodUsedBelow&1 =ClassesCouldBeProtectedConstant%0 ;ClassesCouldBePrivateConstante/ /ClassesConstantUsedBelow. 'PhpShellFavoritey- !ExtensionsExtfam, !!ExtensionsExtrdkafka!+ !-StructuresShouldUseForeach3#* %-PerformancesLogicalToInArray) -PhpNoSubstrMinusOne( /FunctionsOptionalParameter!' %)PerformancesNoConcatInLoop& !ExtensionsExtxattr$ 9PhpPhp72RemovedInterfaces#!# 3ClassesChildRemoveTypehint      _ tXB#oP.cL,     _                       { /ClassesIntegerAsPropertyz #PhpCryptoUsage/y #PhpArgon2Usage 'x ?ClassesDontSendThisInConstructorT#w !1StructuresUseListWithForeach
v VendorsFuelu VendorsPhalcont +ClassesAmbiguousStatic`s VendorsDrupalr %#PerformancesSubstrFirst [ !+StructuresPrintfArgumentsZ 'WordpressDoublePrepare Y 1WordpressPreparePlaceholder!X 3WordpressNoDirectInputToWpdbW !'StructuresNextMonthTrapV %%PerformancesSimpleSwitchU !#StructuresCouldBeElseT -ClassesIsaMagicPropertyS #PhpDateFormatsR %ZendFZf3Session28Q 1ZendFZf3Modulemanager28P ZendFZf3Mail28O ZendFZf3Http27N ZendFZf3Feed28M /ZendFZf3Eventmanager32
L ZendFZf3Test31K )ZendFZf3Validator29J ZendFZf3Mvc31H ZendFZf3Code32"C !/StructuresComplexExpressionMB -PhpCookiesVariables
A /PhpIncomingVariablesN    b Y;~bA!lM,     b                                ! 1SymfonySymfony34Undefined %SymfonySymfonyUsage% !5StructuresIdenticalConsecutive% !5StructuresIdenticalOnBothSides" 7ArraysMistakenConcatenation 'PhpNotScalarType 5PhpShouldUseArrayFilter) !#ExtensionsExtigbinary6" 1FunctionsNeverUsedParameter! !-StructuresAutoUnsetForeach$ 5FunctionsAvoidBooleanArgument " !3StructuresAssignedInOneBranch !%StructuresInvalidRegex< 1ZendFZf3DbAlwaysPrepare
 )VariablesUncommonEnvVarl	 #ClassesParentFirst PhpDlUsagea !ExtensionsExtvips !ArraysSliceFirstU TypeGPCIndex !TypeArrayIndex$Y& %3PerformancesPHP7EncapsedStrings$ 1PhpUnknownPcre2Option !!StructuresMissingNew#  !5StructuresCanCountNonCountable +PhpHashUsesObjects(~ IPhpAvoidSetErrorHandlerContextArg} +PhpPhp72NewClasses| !)StructuresNoGetClassNull    \ |\7a<V5     { \                              H %VariablesLocalGlobals5G )FilesMissingIncludeF 1FilesInclusionWrongCaseB 3ZendFDefinedViewProperty
A -ZendFUsedViewProperty@ ZendFIsView'? ;FunctionsUnusedInheritedVariable> +SecurityNoNetForXmlLoadH*= CSecuritySqlite3RequiresSingleQuotes < 7PhpNoReferenceForTernaryO#; 5WordpressWordpress40Undefined#: 5WordpressWordpress41Undefined#9 5WordpressWordpress42Undefined#8 5WordpressWordpress43Undefined"7 5WordpressWordpress44Undefined"6 5WordpressWordpress45Undefined5 1SymfonySymfony30Undefined4 1SymfonySymfony40Undefined"3 5WordpressWordpress46Undefined"2 5WordpressWordpress47Undefined"1 5WordpressWordpress48Undefined"0 5WordpressWordpress49Undefined/ )WordpressWordpressUsage& 1SymfonySymfony28Undefined$ 1SymfonySymfony31Undefined# 1SymfonySymfony32Undefined" 1SymfonySymfony33Undefined    ] rM-
kH/X;     z ]                           k -PhpShouldPreprocess#!j /FunctionsTooManyParametersi 1PhpTooManyNativeCallsh %ArraysMassCreationg !ExtensionsExtdb20"f 5ClassesPropertyCouldBeLocal
"e !/StructuresUseCountRecursiveNd !!ExtensionsExtleveldb&c !7StructuresCouldUseArrayFillKeysA b 9PhpPHP73LastEmptyArgumentBa SecurityDynamicDl_ !'ExtensionsExtopencensus^ !!ExtensionsExtvarnish] !ExtensionsExtuopz$\ !ExtensionsExtxxtea<Z 'PhpForeachObject Y !+StructuresCouldUseCompactX !%StructuresTestThenCastW /PhpListWithReferenceV !ExtensionsExthrtimeU !'StructuresShouldUseMathU$T !5StructuresPossibleInfiniteLoop* S !+StructuresGoToKeyDirectly/R !%ExceptionsUselessCatch~"Q %+PerformancesDoubleArrayFlipP !'StructuresReuseVariable!q O -FunctionsFallbackFunction
(N =FunctionsUselessReferenceArgumentlM /ZendFNoEchoOutsideView3    M qH$	qK-kN5    v M               & 9FunctionsMismatchTypeAndDefault- KClassesMethodSignatureMustBeCompatible /PhpCompactInexistant  -SecurityConfigureExtract %#PerformancesUseBlindVar+ %=PerformancesCacheVariableOutsideLoopM ClassesWeakType< %PerformancesDoInBasey$  5FunctionsTypehintedReferences  %'PerformancesStrposTooMuchN"~ 5ClassesCantInstantiateClass} +PhpFailingAnalysis| !ExtensionsExtcmark{ !%ExtensionsExtzookeeperz !!StructuresWrongRange#y 3FunctionsCallbackNeedsReturnN$x !3StructuresCouldUseArrayUnique"w !/StructuresOneIfIsSufficient#v !1StructuresMissingParenthesis#u %-PerformancesRegexOnCollectort )PhpStrtrArguments!s 3ClassesDontUnsetProperties&r =ClassesRedefinedPrivatePropertyq !'StructuresSubstrLastArg"p !/StructuresPossibleIncrement !o 3ClassesPPPDeclarationStyle"l 5WordpressPrivateFunctionUsage    F c=d?& aA!      e F    % 1PhpDetectCurrentClassr$ 3PhpCouldUseIsCountable# %ArraysWithCallbackA(" =ConstantsCaseInsensitiveConstants ! !!ExtensionsExtmsgpack  !ExtensionsExtlzfs 3TraitsLocallyUsedProperty 5PhpPHP72scalartypehintsC 5PhpPHP71scalartypehintsO 5PhpPHP70scalartypehintsl" 5ClassesUndefinedStaticclass #PhpHashAlgos71 !ExtensionsExtcsprng	# 7ClassesAmbiguousVisibilitiesr# 7ClassesIncompatibleSignature !ExtensionsExteio" 5ClassesAbstractOrImplements !ExceptionsCantThrow$  !+StructuresDontMixPlusPlus -SecurityMoveUploadedFileB$ 5FunctionsCouldBeStaticClosure, !GStructuresComparedButNotAssignedStrings !)StructuresGtOrLtFavorite0# !1StructuresComparisonFavorite	N #VariablesUniqueUsage" !/StructuresShouldUseOperator!" 5ClassesConstVisibilityUsage
 !StructuresCheckJson/	 +PhpFlexibleHeredoc    ^ rM(`>! zO1     ^                                !A !/InterfacesRepeatedInterface@ 5PhpNoReturnForGenerator!? !/StructuresInvalidPackFormat> !!StructuresNamedRegex&= =ClassesUndeclaredStaticPropertys < /SecurityFilterInputSourceg; /PhpDirectCallToClone(: =FunctionsOnlyVariableForReference	9 +FunctionsAddDefaultValue8 !!ExtensionsExtseaslog7 -SecurityCantDisableClass#6 !1StructuresInconsistentElseif5 )FunctionsClosure2String)4 %ClassesCouldBeFinal%S3 !)StructuresJsonWithOption"2 7TraitsMethodCollisionTraits 1 1TraitsUndefinedInsteadof!0 /VariablesUndefinedVariableG"/ ?PhpMustCallParentConstructor- 'PhpTrailingComma, 7PhpPhp73RemovedFunctions"+ !/StructuresContinueIsForLoop	"* 5ClassesCouldBeAbstractClass ) =PhpAssertFunctionIsReserved+( CConstantsDefineInsensitivePreference %' 7ConstantsConstDefinePreference6& PhpAvoidRealm    Q jK)c?t[6     o Q             a /PhpMissingSubpattern` TypePath!(^ =FunctionsMultipleIdenticalClosure] 'ClassesCouldBeStatic%Y\ 'TraitsMultipleUsage[ )TraitsSelfUsingTraitZ !ExtensionsExtwasmY !ExtensionsExtasync"X %+PerformancesIssetWholeArrayW !ExtensionsExtsdlV %TraitsUselessAlias U !+StructuresDirectlyUseFile<S %!PerformancesCsvInLoopsgR +SecuritySafeHttpHeaders6"Q 5ClassesShouldHaveDestructor $P !5InterfacesAvoidSelfInInterface!O 3ClassesUnreachableConstant%N !9StructuresVariableMayBeNonGlobal M !+StructuresDontLoopOnYieldN!L 1FunctionsShouldYieldWithKeyK !ExtensionsExtpsrJ !!ExtensionsExtdecimalI !)ExceptionsIsPhpExceptionH !)StructuresBasenameSuffixG !#ExceptionsCouldUseTry%F PhpIdnUts46E TypePrintfD TypePack0C !KStructuresDontReadAndWriteInOneExpression%B EPhpNoReferenceForStaticProperty*   I |Y/iI*gI                                                                                                                                                                                                                                                                                       y 'VariablesSelfTransformx 1ClassesCloneWithNonObject*w +ClassesShouldDeepClones!v /VariablesInconsistentUsage&u 9FunctionsTypehintMustBeReturnedt PatternsFactorys !ClassesDemeterLawr 5PhpPhp80RemovedConstantq 7PhpPhp80RemovedFunctionso +ConstantsDynamicCreation	Bn -FunctionsBadTypehintRelayI$l 5FunctionsInsufficientTypehint	k !ExtensionsExtpcovj !!ExtensionsExtweakref!i 5ArraysStringInitialization'h !9StructuresNoVariableIsAConditionx g !+StructuresDontBeTooManual[f )ExtDefinedClassesd 1PhpTypedPropertyUsage"c !/StructuresAssigneAndCompare&b %7PerformancesArrayKeyExistsSpeedup
   ~ ~xrlf`ZTNHB<60*$ |vpjd^XRLF@:4.("
ztnhb\VPJD>82,&          ~~}}||{{zzyyxxwwvvuuttssrrqqppnnmmllkkjjiihhggffeeddccbbaa``^^]]\\[[ZZYYXXWWVVUUTTSSRRQQPPOONNMMLLKKJJIIHHGGFFEEDDCCBBAA@@??>>==<<;;::99887766554433221100//..--,,++**))((''&&%%$$##""!!  

				
   e  xph`XPH@80(  xph`XPH@80(  xph`XPH@80(                                                                                                                                                                                                                       
   e  xph`XPH@80(  xph`XPH@80(  xph`XPH@80(             ``__^^]]\\[[ZZYYXXWWVVTTSSRRQQPPOONNMMLLKKJJHHGGFFEEDDCCBBAA@@??>>==<<;;::99665544221100//..--,,++))((''%%$$##!!  

		                            aa
   e  xph`XPH@80(  xph`XPH@80(  xph`XPH@80(             ~~}}||zzyyxxwwvvuuttrrppoonnmmllkkjjiihhggffeeddcc
   e  xph`XPH@80(  xph`XPH@80(  xph`XPH@80(             CCBBAA@@??>>==<<;;::998877665544332211//..--,,++**))((''&&%%$$##""!!  

  DD
   e  xph`XPH@80(  xph`XPH@80(  xph`XPH@80(             ~~}}||{{zzyyxxwwvvuuttssrrqqppoonnmmllkkjjiihhggffeeddccbbaa``__^^]]\\[[ZZYYXXWWVVUUTTSSRRQQPPOONNMMLLKKIIHHGGFF
   e  xph`XPH@80(  xph`XPH@80(  xph`XPH@80(             $$##""!!  

		  %%
   e  xph`XPH@80(  xph`XPH@80(  xph`XPH@80(             ~~qqppoonnmmllkkjjhhggffeeddccbbaa``__VVUUTTSSRRQQPPOONNMMLLKKJJIIHHGGFFEEDDCCBBAA@@??>>==<<;;::99887766554433221100//..--,,++**))((''
   e  xph`XPH@80(  xph`XPH@80(  xph`XPH@80(             %%$$##""!!  

		  &&
   e  xph`XPH@80(  xph`XPH@80(  xph`XPH@80(             ~~}}||{{zzyyxxwwvvuuttssrrqqppoonnmmllkkjjiihhggffeeddccbbaa``__^^]]\\[[ZZYYXXWWVVUUTTSSRRQQLLKKJJIIHHGGFFEEDDCCBBAA@@??>>==<<;;::998877665544331100//..--,,++**))((
   e  xph`XPH@80(  xph`XPH@80(  xph`XPH@80(             

		  
 d  xph`XPH@80(  xph`XPH@80(  xph`XPH@80(             ~~}}||{{zzyyxxwwvvuuttssrrqqppoollkkjjiihhggffeeddccbbaa__^^]]\\ZZYYXXWWVVUUTTSSRRQQPPOONNMMHHGGFFBBAA@@??>>==<<;;::99887766554433221100//&&$$##""!!   
   ] xph`XPH@80(  xph`XPH@80(  xph`XPH@80(                                                                                       functions[] = 'action_activer_plugins';
functions[] = 'action_ajouter_lien';
functions[] = 'action_annuler_job';
functions[] = 'action_auth';
functions[] = 'action_calculer_taille_cache';
functions[] = 'action_confirmer_email';
functions[] = 'action_confirmer_inscription';
functions[] = 'action_converser';
functions[] = 'action_cookie';
functions[] = 'action_debloquer_edition';
functions[] = 'action_desinstaller_plugin';
functions[] = 'action_editer_article';
functions[] = 'action_editer_auteur';
functions[] = 'action_editer_objet';
functions[] = 'action_editer_rubrique';
functions[] = 'action_etre_webmestre';
functions[] = 'action_forcer_job';
functions[] = 'action_iconifier';
functions[] = 'action_inscrire_auteur';
functions[] = 'action_instituer_langue_objet';
functions[] = 'action_instituer_langue_rubrique';
functions[] = 'action_instituer_objet';
functions[] = 'action_logout';
functions[] = 'action_menu_rubriques';
functions[] = 'action_preferer';
functions[] = 'action_purger';
functions[] = 'action_purger_queue';
functions[] = 'action_redirect';
functions[] = 'action_referencer_traduction';
functions[] = 'action_reorganiser';
functions[] = 'action_session';
functions[] = 'action_spip_image_ajouter';
functions[] = 'action_spip_image_effacer';
functions[] = 'action_super_cron';
functions[] = 'action_supprimer_lien';
functions[] = 'action_supprimer_rubrique';
functions[] = 'action_tester';
functions[] = 'action_tester_taille';
functions[] = 'auth_ldap';
functions[] = 'auth_spip';
functions[] = 'autoriser_article_creer';
functions[] = 'autoriser_article_modifier';
functions[] = 'autoriser_article_voir';
functions[] = 'autoriser_articlecreer_menu';
functions[] = 'autoriser_articles_menu';
functions[] = 'autoriser_associerauteurs';
functions[] = 'autoriser_auteur_creer';
functions[] = 'autoriser_auteur_iconifier';
functions[] = 'autoriser_auteur_modifier';
functions[] = 'autoriser_auteur_previsualiser';
functions[] = 'autoriser_auteurcreer_menu';
functions[] = 'autoriser_auteurs_menu';
functions[] = 'autoriser_base_reparer';
functions[] = 'autoriser_changerlangue';
functions[] = 'autoriser_chargerftp';
functions[] = 'autoriser_configurer';
functions[] = 'autoriser_configurerlangage_onglet';
functions[] = 'autoriser_configurerpreferences_onglet';
functions[] = 'autoriser_creer';
functions[] = 'autoriser_dater';
functions[] = 'autoriser_debug';
functions[] = 'autoriser_defaut';
functions[] = 'autoriser_detruire';
functions[] = 'autoriser';
functions[] = 'autoriser_echafauder';
functions[] = 'autoriser_ecrire';
functions[] = 'autoriser_iconifier';
functions[] = 'autoriser_infosperso_onglet';
functions[] = 'autoriser_inscrireauteur';
functions[] = 'autoriser_instituer';
functions[] = 'autoriser_modifierurl';
functions[] = 'autoriser_niet';
functions[] = 'autoriser_ok';
functions[] = 'autoriser_previsualiser';
functions[] = 'autoriser_queue_purger';
functions[] = 'autoriser_rubrique_creer';
functions[] = 'autoriser_rubrique_creerarticledans';
functions[] = 'autoriser_rubrique_creerrubriquedans';
functions[] = 'autoriser_rubrique_iconifier';
functions[] = 'autoriser_rubrique_modifier';
functions[] = 'autoriser_rubrique_previsualiser';
functions[] = 'autoriser_rubrique_publierdans';
functions[] = 'autoriser_rubrique_supprimer';
functions[] = 'autoriser_rubriques_menu';
functions[] = 'autoriser_sauvegarder';
functions[] = 'autoriser_suiviedito_menu';
functions[] = 'autoriser_synchro_menu';
functions[] = 'autoriser_voir';
functions[] = 'autoriser_webmestre';
functions[] = 'balise_aider';
functions[] = 'balise_ancre_pagination';
functions[] = 'balise_array';
functions[] = 'balise_autoriser';
functions[] = 'balise_boite_fermer';
functions[] = 'balise_boite_ouvrir';
functions[] = 'balise_boite_pied';
functions[] = 'balise_bouton_action';
functions[] = 'balise_cache';
functions[] = 'balise_champ_sql';
functions[] = 'balise_charset';
functions[] = 'balise_chemin';
functions[] = 'balise_chemin_image';
functions[] = 'balise_compteur_articles';
functions[] = 'balise_compteur_boucle';
functions[] = 'balise_config';
functions[] = 'balise_configurer_metas';
functions[] = 'balise_connect';
functions[] = 'balise_date';
functions[] = 'balise_date_modif';
functions[] = 'balise_date_nouveautes';
functions[] = 'balise_date_redac';
functions[] = 'balise_debut_surligne';
functions[] = 'balise_descriptif_site_spip';
functions[] = 'balise_dossier_squelette';
functions[] = 'balise_doublons';
functions[] = 'balise_edit';
functions[] = 'balise_email_webmaster';
functions[] = 'balise_env';
functions[] = 'balise_eval';
functions[] = 'balise_expose';
functions[] = 'balise_filtre';
functions[] = 'balise_fin_surligne';
functions[] = 'balise_formulaire_';
functions[] = 'balise_get';
functions[] = 'balise_grand_total';
functions[] = 'balise_html5';
functions[] = 'balise_http_header';
functions[] = 'balise_include';
functions[] = 'balise_inclure';
functions[] = 'balise_info_';
functions[] = 'balise_insert_head_css';
functions[] = 'balise_insert_head';
functions[] = 'balise_introduction';
functions[] = 'balise_lang_dir';
functions[] = 'balise_lang';
functions[] = 'balise_lang_left';
functions[] = 'balise_lang_right';
functions[] = 'balise_largeur_ecran';
functions[] = 'balise_lesauteurs';
functions[] = 'balise_liste';
functions[] = 'balise_logo_';
functions[] = 'balise_modele';
functions[] = 'balise_nom_site';
functions[] = 'balise_nom_site_spip';
functions[] = 'balise_noop';
functions[] = 'balise_notes';
functions[] = 'balise_pagination';
functions[] = 'balise_pipeline';
functions[] = 'balise_plugin';
functions[] = 'balise_points';
functions[] = 'balise_popularite_absolue';
functions[] = 'balise_popularite';
functions[] = 'balise_popularite_max';
functions[] = 'balise_popularite_site';
functions[] = 'balise_produire';
functions[] = 'balise_publie';
functions[] = 'balise_puce';
functions[] = 'balise_rang';
functions[] = 'balise_recherche';
functions[] = 'balise_rem';
functions[] = 'balise_sauter';
functions[] = 'balise_self';
functions[] = 'balise_session';
functions[] = 'balise_session_set';
functions[] = 'balise_set';
functions[] = 'balise_slogan_site_spip';
functions[] = 'balise_spip_version';
functions[] = 'balise_squelette';
functions[] = 'balise_total_boucle';
functions[] = 'balise_total_unique';
functions[] = 'balise_tri';
functions[] = 'balise_url_';
functions[] = 'balise_url_action_auteur';
functions[] = 'balise_url_article';
functions[] = 'balise_url_ecrire';
functions[] = 'balise_url_page';
functions[] = 'balise_url_site';
functions[] = 'balise_url_site_spip';
functions[] = 'balise_val';
functions[] = 'balise_valeur';
functions[] = 'base_delete_all';
functions[] = 'base_etre_webmestre';
functions[] = 'base_repair';
functions[] = 'base_trouver_table';
functions[] = 'base_upgrade';
functions[] = 'boucle_boucle';
functions[] = 'boucle_defaut';
functions[] = 'boucle_hierarchie';
functions[] = 'calculer_balise_defaut';
functions[] = 'calculer_critere_defaut';
functions[] = 'critere_agenda';
functions[] = 'critere_branche';
functions[] = 'critere_collecte';
functions[] = 'critere_compteur_articles_filtres';
functions[] = 'critere_data_datacache';
functions[] = 'critere_data_datapath';
functions[] = 'critere_data_datasource';
functions[] = 'critere_data_enum';
functions[] = 'critere_data_liste';
functions[] = 'critere_data_source';
functions[] = 'critere_debut';
functions[] = 'critere_doublons';
functions[] = 'critere_exclus';
functions[] = 'critere_feuille';
functions[] = 'critere_fusion';
functions[] = 'critere_in';
functions[] = 'critere_inverse';
functions[] = 'critere_lang_select';
functions[] = 'critere_logo';
functions[] = 'critere_meme_parent';
functions[] = 'critere_noeud';
functions[] = 'critere_origine_traduction';
functions[] = 'critere_pagination';
functions[] = 'critere_par';
functions[] = 'critere_php_args';
functions[] = 'critere_pour_tableau';
functions[] = 'critere_racine';
functions[] = 'critere_recherche';
functions[] = 'critere_si';
functions[] = 'critere_traduction';
functions[] = 'critere_tri';
functions[] = 'critere_where';
functions[] = 'ecrire_config_metapack';
functions[] = 'envoyer_inscription';
functions[] = 'exec_403';
functions[] = 'exec_404';
functions[] = 'exec_admin_plugin';
functions[] = 'exec_base_delete_all';
functions[] = 'exec_base_repair';
functions[] = 'exec_demande_mise_a_jour';
functions[] = 'exec_fond';
functions[] = 'exec_fond_monobloc';
functions[] = 'exec_info';
functions[] = 'exec_info_plugin';
functions[] = 'exec_informer';
functions[] = 'exec_install';
functions[] = 'exec_plonger';
functions[] = 'exec_puce_statut';
functions[] = 'exec_rechercher';
functions[] = 'exec_selectionner';
functions[] = 'exec_test_ajax';
functions[] = 'exec_upgrade';
functions[] = 'exec_valider_xml';
functions[] = 'filtre_afficher_enfant_rub';
functions[] = 'filtre_application';
functions[] = 'filtre_audio';
functions[] = 'filtre_balise_img';
functions[] = 'filtre_bornes_pagination';
functions[] = 'filtre_bouton_action_horizontal';
functions[] = 'filtre_chercher_rubrique';
functions[] = 'filtre_compacte';
functions[] = 'filtre_explode';
functions[] = 'filtre_foreach';
functions[] = 'filtre_icone';
functions[] = 'filtre_icone_horizontale';
functions[] = 'filtre_icone_verticale';
functions[] = 'filtre_identite';
functions[] = 'filtre_image';
functions[] = 'filtre_implode';
functions[] = 'filtre_info_plugin';
functions[] = 'filtre_introduction';
functions[] = 'filtre_message';
functions[] = 'filtre_multipart';
functions[] = 'filtre_nettoyer_titre_email';
functions[] = 'filtre_pagination';
functions[] = 'filtre_print';
functions[] = 'filtre_puce_statut';
functions[] = 'filtre_text_csv';
functions[] = 'filtre_text';
functions[] = 'filtre_text_html';
functions[] = 'filtre_video';
functions[] = 'formulaires_configurer_annonces_charger';
functions[] = 'formulaires_configurer_annonces_traiter';
functions[] = 'formulaires_configurer_annonces_verifier';
functions[] = 'formulaires_configurer_articles_charger';
functions[] = 'formulaires_configurer_articles_traiter';
functions[] = 'formulaires_configurer_avertisseur_charger';
functions[] = 'formulaires_configurer_avertisseur_traiter';
functions[] = 'formulaires_configurer_flux_charger';
functions[] = 'formulaires_configurer_flux_traiter';
functions[] = 'formulaires_configurer_identite_charger';
functions[] = 'formulaires_configurer_identite_traiter';
functions[] = 'formulaires_configurer_identite_verifier';
functions[] = 'formulaires_configurer_langage_charger';
functions[] = 'formulaires_configurer_langage_traiter';
functions[] = 'formulaires_configurer_langue_charger';
functions[] = 'formulaires_configurer_langue_traiter';
functions[] = 'formulaires_configurer_logos_charger';
functions[] = 'formulaires_configurer_logos_traiter';
functions[] = 'formulaires_configurer_metas_charger';
functions[] = 'formulaires_configurer_metas_traiter';
functions[] = 'formulaires_configurer_metas_verifier';
functions[] = 'formulaires_configurer_moderniseur_charger';
functions[] = 'formulaires_configurer_moderniseur_traiter';
functions[] = 'formulaires_configurer_multilinguisme_charger';
functions[] = 'formulaires_configurer_multilinguisme_traiter';
functions[] = 'formulaires_configurer_preferences_charger';
functions[] = 'formulaires_configurer_preferences_traiter';
functions[] = 'formulaires_configurer_previsualiseur_charger';
functions[] = 'formulaires_configurer_previsualiseur_traiter';
functions[] = 'formulaires_configurer_redacteurs_charger';
functions[] = 'formulaires_configurer_redacteurs_traiter';
functions[] = 'formulaires_configurer_reducteur_charger';
functions[] = 'formulaires_configurer_reducteur_traiter';
functions[] = 'formulaires_configurer_relayeur_charger';
functions[] = 'formulaires_configurer_relayeur_traiter';
functions[] = 'formulaires_configurer_relayeur_verifier';
functions[] = 'formulaires_configurer_rubriques_charger';
functions[] = 'formulaires_configurer_rubriques_traiter';
functions[] = 'formulaires_configurer_transcodeur_charger';
functions[] = 'formulaires_configurer_transcodeur_traiter';
functions[] = 'formulaires_configurer_transcodeur_verifier';
functions[] = 'formulaires_configurer_visiteurs_charger';
functions[] = 'formulaires_configurer_visiteurs_traiter';
functions[] = 'formulaires_dater_charger';
functions[] = 'formulaires_dater_identifier';
functions[] = 'formulaires_dater_traiter';
functions[] = 'formulaires_dater_verifier';
functions[] = 'formulaires_declarer_bases_charger';
functions[] = 'formulaires_declarer_bases_traiter';
functions[] = 'formulaires_declarer_bases_verifier_1';
functions[] = 'formulaires_declarer_bases_verifier_2';
functions[] = 'formulaires_declarer_bases_verifier_3';
functions[] = 'formulaires_editer_article_charger';
functions[] = 'formulaires_editer_article_identifier';
functions[] = 'formulaires_editer_article_traiter';
functions[] = 'formulaires_editer_article_verifier';
functions[] = 'formulaires_editer_auteur_charger';
functions[] = 'formulaires_editer_auteur_identifier';
functions[] = 'formulaires_editer_auteur_traiter';
functions[] = 'formulaires_editer_auteur_verifier';
functions[] = 'formulaires_editer_liens_charger';
functions[] = 'formulaires_editer_liens_traiter';
functions[] = 'formulaires_editer_logo_charger';
functions[] = 'formulaires_editer_logo_identifier';
functions[] = 'formulaires_editer_logo_traiter';
functions[] = 'formulaires_editer_logo_verifier';
functions[] = 'formulaires_editer_rubrique_charger';
functions[] = 'formulaires_editer_rubrique_identifier';
functions[] = 'formulaires_editer_rubrique_traiter';
functions[] = 'formulaires_editer_rubrique_verifier';
functions[] = 'formulaires_instituer_objet_charger';
functions[] = 'formulaires_instituer_objet_traiter';
functions[] = 'formulaires_instituer_objet_verifier';
functions[] = 'formulaires_login_charger';
functions[] = 'formulaires_login_traiter';
functions[] = 'formulaires_login_verifier';
functions[] = 'formulaires_recherche_ecrire_charger';
functions[] = 'formulaires_rediriger_article_charger';
functions[] = 'formulaires_rediriger_article_traiter';
functions[] = 'formulaires_rediriger_article_verifier';
functions[] = 'formulaires_traduire_charger';
functions[] = 'formulaires_traduire_traiter';
functions[] = 'formulaires_traduire_verifier';
functions[] = 'genie_invalideur';
functions[] = 'genie_mail';
functions[] = 'genie_maintenance';
functions[] = 'genie_mise_a_jour';
functions[] = 'genie_optimiser';
functions[] = 'genie_queue_watch';
functions[] = 'inc_admin';
functions[] = 'inc_aider';
functions[] = 'inc_atom_to_array';
functions[] = 'inc_auth';
functions[] = 'inc_bandeau';
functions[] = 'inc_calcul_branche_in';
functions[] = 'inc_calcul_hierarchie_in';
functions[] = 'inc_charger_php_extension';
functions[] = 'inc_chercher_logo';
functions[] = 'inc_chercher_rubrique';
functions[] = 'inc_commencer_page';
functions[] = 'inc_config';
functions[] = 'inc_couleurs';
functions[] = 'inc_csv_to_array';
functions[] = 'inc_envoyer_mail';
functions[] = 'inc_file_to_array';
functions[] = 'inc_genie';
functions[] = 'inc_glob_to_array';
functions[] = 'inc_icone_renommer';
functions[] = 'inc_iconifier';
functions[] = 'inc_informer';
functions[] = 'inc_journal';
functions[] = 'inc_json_to_array';
functions[] = 'inc_lien';
functions[] = 'inc_lister_objets';
functions[] = 'inc_log';
functions[] = 'inc_ls_to_array';
functions[] = 'inc_meta';
functions[] = 'inc_notifications';
functions[] = 'inc_plonger';
functions[] = 'inc_plugins_to_array';
functions[] = 'inc_precharger_article';
functions[] = 'inc_precharger_traduction_article';
functions[] = 'inc_pregfiles_to_array';
functions[] = 'inc_prepare_recherche';
functions[] = 'inc_preselectionner_parent_nouvel_objet';
functions[] = 'inc_puce_statut';
functions[] = 'inc_recherche_to_array';
functions[] = 'inc_rss_to_array';
functions[] = 'inc_securiser_action';
functions[] = 'inc_selectionner';
functions[] = 'inc_session';
functions[] = 'inc_simplexml_to_array';
functions[] = 'inc_sql_to_array';
functions[] = 'inc_titrer_contenu';
functions[] = 'inc_traduire';
functions[] = 'inc_xml_to_array';
functions[] = 'inc_yaml_to_array';
functions[] = 'inc_yql_to_array';
functions[] = 'install_etape_';
functions[] = 'install_etape_1';
functions[] = 'install_etape_2';
functions[] = 'install_etape_3';
functions[] = 'install_etape_3b';
functions[] = 'install_etape_4';
functions[] = 'install_etape_chmod';
functions[] = 'install_etape_fin';
functions[] = 'install_etape_ldap1';
functions[] = 'install_etape_ldap2';
functions[] = 'install_etape_ldap3';
functions[] = 'install_etape_ldap4';
functions[] = 'install_etape_ldap5';
functions[] = 'iterateur_condition';
functions[] = 'iterateur_data';
functions[] = 'iterateur_php';
functions[] = 'iterateur_pour';
functions[] = 'liens_implicite_glose';
functions[] = 'lire_config_metapack';
functions[] = 'maj_v009';
functions[] = 'maj_v010';
functions[] = 'maj_v011';
functions[] = 'maj_v012';
functions[] = 'maj_v013';
functions[] = 'maj_v014';
functions[] = 'maj_v015';
functions[] = 'maj_v016';
functions[] = 'maj_v017';
functions[] = 'maj_v018';
functions[] = 'notifications_instituerarticle';
functions[] = 'plugins_afficher_liste';
functions[] = 'plugins_afficher_nom_plugin';
functions[] = 'plugins_afficher_plugin';
functions[] = 'plugins_afficher_repertoires';
functions[] = 'plugins_extraire_boutons';
functions[] = 'plugins_extraire_pipelines';
functions[] = 'plugins_get_infos';
functions[] = 'plugins_installer';
functions[] = 'plugins_verifie_conformite';
functions[] = 'prive_echafauder';
functions[] = 'public_cacher';
functions[] = 'public_compiler';
functions[] = 'public_composer';
functions[] = 'public_debusquer';
functions[] = 'public_parametrer';
functions[] = 'public_phraser_html';
functions[] = 'public_produire_page';
functions[] = 'public_styliser';
functions[] = 'public_styliser_par_z';
functions[] = 'puce_statut_auteur';
functions[] = 'puce_statut_rubrique';
functions[] = 'req_mysql';
functions[] = 'req_pg';
functions[] = 'req_sqlite';
functions[] = 'req_sqlite2';
functions[] = 'req_sqlite3';
functions[] = 'requeteur_data';
functions[] = 'requeteur_php';
functions[] = 'test_inscription';
functions[] = 'traiter_echap_cadre';
functions[] = 'traiter_echap_code';
functions[] = 'traiter_echap_frame';
functions[] = 'traiter_echap_html';
functions[] = 'traiter_echap_math';
functions[] = 'traiter_echap_script';
functions[] = 'typographie_en';
functions[] = 'typographie_fr';
functions[] = 'urls_connect';
functions[] = 'urls_page';
functions[] = 'xml_indenter';
functions[] = 'xml_sax';
functions[] = 'xml_valider';
code[100] = "Continue";
code[101] = "Switching Protocols";
code[102] = "Processing";
code[200] = "OK";
code[201] = "Created";
code[202] = "Accepted";
code[203] = "Non-Authoritative Information";
code[204] = "No Content";
code[205] = "Reset Content";
code[206] = "Partial Content";
code[207] = "Multi-Status";
code[300] = "Multiple Choices";
code[301] = "Moved Permanently";
code[302] = "Found";
code[303] = "See Other";
code[304] = "Not Modified";
code[305] = "Use Proxy";
code[306] = "Switch Proxy";
code[307] = "Temporary Redirect";
code[400] = "Bad Request";
code[401] = "Unauthorized";
code[402] = "Payment Required";
code[403] = "Forbidden";
code[404] = "Not Found";
code[405] = "Method Not Allowed";
code[406] = "Not Acceptable";
code[407] = "Proxy Authentication Required";
code[408] = "Request Timeout";
code[409] = "Conflict";
code[410] = "Gone";
code[411] = "Length Required";
code[412] = "Precondition Failed";
code[413] = "Request Entity Too Large";
code[414] = "Request-URI Too Long";
code[415] = "Unsupported Media Type";
code[416] = "Requested Range Not Satisfiable";
code[417] = "Expectation Failed";
code[418] = "I'm a teapot";
code[421] = "There are too many connections from your internet address";
code[422] = "Unprocessable Entity";
code[423] = "Locked";
code[424] = "Failed Dependency";
code[425] = "Unordered Collection";
code[426] = "Upgrade Required";
code[449] = "Retry With";
code[500] = "Internal Server Error";
code[501] = "Not Implemented";
code[502] = "Bad Gateway";
code[503] = "Service Unavailable";
code[504] = "Gateway Timeout";
code[505] = "HTTP Version Not Supported";
code[506] = "Variant Also Negotiates";
code[507] = "Insufficient Storage";
code[509] = "Bandwidth Limit Exceeded";
code[510] = "Not Extended";
functions[] = 

constants[] = 'LUA_OK'
constants[] = 'LUA_YIELD'
constants[] = 'LUA_ERRRUN'
constants[] = 'LUA_ERRSYNTAX'
constants[] = 'LUA_ERRMEM'
constants[] = 'LUA_ERRGCMM'
constants[] = 'LUA_ERRERR'
constants[] = 'LUA_ERRFILE'

classes[] = Lua
classes[] = LuaException
classes[] = LuaClosure

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

constants[] = 'ENT_COMPAT';
constants[] = 'ENT_QUOTES';
constants[] = 'ENT_NOQUOTES';
constants[] = 'ENT_IGNORE';
constants[] = 'ENT_SUBSTITUTE';
constants[] = 'ENT_DISALLOWED';
constants[] = 'ENT_HTML401';
constants[] = 'ENT_XML1';
constants[] = 'ENT_XHTML';
constants[] = 'ENT_HTML5';

encoding[] = 'ISO-8859-1';
encoding[] = 'ISO8859-1';
encoding[] = 'ISO-8859-5';
encoding[] = 'ISO8859-5';
encoding[] = 'ISO-8859-15';
encoding[] = 'ISO8859-15';
encoding[] = 'UTF-8';
encoding[] = 'cp866',;
encoding[] = 'ibm866';
encoding[] = '866';
encoding[] = 'cp1251';
encoding[] = 'Windows-1251';
encoding[] = 'win-1251';
encoding[] = '1251';
encoding[] = 'cp1252';
encoding[] = 'Windows-1252';
encoding[] = '1252';
encoding[] = 'KOI8-R',;
encoding[] = 'koi8-ru';
encoding[] = 'koi8r';
encoding[] = 'BIG5';
encoding[] = '950';
encoding[] = 'GB2312';
encoding[] = '936';
encoding[] = 'BIG5-HKSCS';
encoding[] = 'Shift_JIS';
encoding[] = 'SJIS';
encoding[] = 'SJIS-win';
encoding[] = 'cp932',;
encoding[] = '932';
encoding[] = 'EUC-JP';
encoding[] = 'EUCJP';
encoding[] = 'eucJP-win';
encoding[] = 'MacRoman';
encoding[] = '';{
 "Apache":{"homepage":"http://www.apache.org/",
           "file":[".htaccess", "htaccess.txt"]},
 "Apple":{"homepage":"http://www.apple.com/",
           "file":[".DS_Store"]},
 "appveyor":{"homepage":"http://www.appveyor.com/",
           "file":["appveyor.yml", ".appveyor.yml"]},
 "ant":{"homepage":"https://ant.apache.org/",
           "file":["build.xml"]},
 "apigen":{"homepage":"http://apigen.github.io/ApiGen/",
           "file":["apigen.yml", "apigen.neon"]},
 "arcunit":{"homepage":"https://www.archunit.org/",
           "file":[".arcunit"]},
 "artisan":{"homepage":"http://laravel.com/docs/5.1/artisan",
           "file":["artisan"]},
 "atoum":{"homepage":"http://atoum.org/",
           "file":[".bootstrap.atoum.php", ".atoum.php", ".atoum.bootstrap.php"]},
 "arcanist":{"homepage":"https://secure.phabricator.com/book/phabricator/article/arcanist_lint/",
           "file":[".arclint",".arcconfig"]},
 "bazaar":{"homepage":"http://bazaar.canonical.com/en/",
           "file":[".bzr"]},
 "babeljs":{"homepage":"https://babeljs.io/",
           "file":[".babel.rc", ".babel.js", ".babelrc"]},
 "behat":{"homepage":"http://docs.behat.org/en/v2.5/",
           "file":["behat.yml.dist", "behat.yml"]},
 "box2":{"homepage":"https://github.com/box-project/box2",
           "file":["box.json", "box.json.dist"]},
 "bower":{"homepage":"http://bower.io/",
           "file":["bower.json",".bowerrc"]},
 "circleCI":{"homepage":"https://circleci.com/",
                "file":["circle.yml", ".circleci"]},
 "codacy":{"homepage":"http://www.codacy.com/",
                "file":[".codacy.json"]},
 "codeception":{"homepage":"https://codeception.com/",
                "file":["codeception.yml", "codeception.dist.yml"]},
 "codecov":{"homepage":"https://codecov.io/",
           "file":[".codecov.yml", "codecov.yml"]},
 "codeclimate":{"homepage":"http://www.codeclimate.com/",
           "file":[".codeclimate.yml"]},
 "composer":{"homepage":"https://getcomposer.org/",
             "file":["composer.json", "composer.lock", "vendor"]},
 "couscous":{"homepage":"http://couscous.io/",
             "file":["couscous.yml"]},
 "Code Sniffer":{"homepage":"https://github.com/squizlabs/PHP_CodeSniffer",
             "file":[".php_cs", ".php_cs.dist", ".phpcs.xml", "php_cs.dist", "phpcs.xml", "phpcs.xml.dist"]},
 "coveralls":{"homepage":"https://coveralls.zendesk.com/",
           "file":[".coveralls.yml"]},
 "crowdin":{"homepage":"https://crowdin.com/",
           "file":["crowdin.yml"]},
 "cvs":{"homepage":"http://savannah.nongnu.org/projects/cvs",
           "file":["CVS"]},
 "docker":{"homepage":"http://www.docker.com/",
           "file":[".dockerignore", ".docker", "docker-compose.yml", "Dockerfile"]},
 "dotenv":{"homepage":"https://symfony.com/doc/current/components/dotenv.htmls",
           "file":[".env.dist", ".env", ".env.example"]},
 "drone":{"homepage":"http://docs.drone.io/",
           "file":[".dockerignore", ".docker"]},
 "drupalci":{"homepage":"https://www.drupal.org/project/drupalci",
           "file":["drupalci.yml"]},
 "drush":{"homepage":"https://www.drupal.org/project/drupalci",
           "file":["drush.services.yml"]},
 "editorconfig":{"homepage":"https://editorconfig.org/",
           "file":[".editorconfig"]},
 "eslint":{"homepage":"http://eslint.org/",
           "file":[".eslintrc", ".eslintignore", "eslintrc.js", ".eslintrc.js", ".eslintrc.json"]},
 "Exakat":{"homepage":"https://www.exakat.io/",
           "file":[".exakat.yaml", ".exakat.yml", ".exakat.ini"]},
 "flintci":{"homepage":"https://flintci.io/",
           "file":[".flintci.yml"]},
 "git":{"homepage":"https://git-scm.com/",
            "file":[".git", ".gitignore", ".gitattributes",".gitmodules", ".mailmap", ".githooks"]},
 "github":{"homepage":"https://www.github.com/",
            "file":[".github"]},
 "gitlab":{"homepage":"https://www.gitlab.com/",
            "file":[".gitlab-ci.yml"]},
 "gulpfile":{"homepage":"http://gulpjs.com/",
            "file":["gulpfile.js"]},
 "grumphp":{"homepage":"https://github.com/phpro/grumphp",
            "file":["grumphp.yml.dist", "grumphp.yml"]},
 "gush":{"homepage":"https://github.com/gushphp/gush",
         "file":[".gush.yml"]},
 "gruntjs":{"homepage":"https://gruntjs.com/",
         "file":["Gruntfile.js"]},
 "humbug":{"homepage":"https://github.com/humbug/box.git",
           "file":["humbug.json.dist", "humbug.json"]},
 "infection":{"homepage":"https://infection.github.io/",
           "file":["infection.yml", ".infection.yml", "infection.json.dist"]},
 "insight":{"homepage":"https://insight.sensiolabs.com/",
           "file":[".sensiolabs.yml"]},
 "jetbrains":{"homepage":"https://www.jetbrains.com/phpstorm/",
           "file":[".idea"]},
 "jshint":{"homepage":"http://jshint.com/",
           "file":[".jshintrc", ".jshintignore"]},
 "mercurial":{"homepage":"https://www.mercurial-scm.org/",
         "file":[".hg", ".hgtags", ".hgignore", ".hgeol"]},
 "mkdocs":{"homepage":"http://www.mkdocs.org",
         "file":["mkdocs.yml"]},
 "npm":{"homepage":"https://www.npmjs.com/",
           "file":["package.json", ".npmignore", ".npmrc", "package-lock.json"]},
 "openshift":{"homepage":"https://www.openshift.com/",
           "file":[".openshift"]},
 "phan":{"homepage":"https://github.com/etsy/phan",
         "file":[".phan"]},
 "pharcc":{"homepage":"https://github.com/cbednarski/pharcc",
           "file":[".pharcc.yml"]},
 "phalcon":{"homepage":"https://phalconphp.com/",
           "file":[".phalcon"]},
 "phpbench":{"homepage":"https://github.com/phpbench/phpbench",
           "file":["phpbench.json"]},
 "phpci":{"homepage":"https://www.phptesting.org/",
           "file":["phpci.yml"]},
 "Phpdocumentor":{"homepage":"https://www.phpdoc.org/",
           "file":[".phpdoc.xml", "phpdoc.dist.xml"]},
 "phpdox":{"homepage":"https://github.com/theseer/phpdox",
           "file":["phpdox.xml.dist", "phpdox.xml"]},
 "phinx":{"homepage":"https://phinx.org/",
                 "file":["phinx.yml"]},
 "phpformatter":{"homepage":"https://github.com/mmoreram/php-formatter",
                 "file":[".formatter.yml"]},
 "phpmetrics":{"homepage":"http://www.phpmetrics.org/",
               "file":[".phpmetrics.yml.dist"]},
 "phpsa":{"homepage":"https://github.com/ovr/phpsa",
                 "file":[".phpsa.yml"]},
 "phpspec":{"homepage":"http://www.phpspec.net/en/latest/",
            "file":["phpspec.yml", ".phpspec", "phpspec.yml.dist"]},
 "phpstan":{"homepage":"https://github.com/phpstan",
              "file":["phpstan.neon", ".phpstan.neon", "phpstan.neon.dist"]},
 "phpswitch":{"homepage":"https://github.com/jubianchi/phpswitch",
              "file":[".phpswitch.yml"]},
 "PHPUnit":{"homepage":"https://www.phpunit.de/",
           "file":["phpunit.xml.dist", "phpunit.xml"]},
 "prettier":{"homepage":"https://prettier.io/",
           "file":[".prettierrc", ".prettierignore"]},
 "psalm":{"homepage":"https://getpsalm.org/",
           "file":["psalm.xml"]},
 "puppet":{"homepage":"https://puppet.com/",
           "file":[".puppet"]},
 "rmt":{"homepage":"https://github.com/liip/RMT",
         "file":[".rmt.yml"]},
 "robo":{"homepage":"https://robo.li/",
         "file":["RoboFile.php"]},
 "scrutinizer":{"homepage":"https://scrutinizer-ci.com/",
                "file":[".scrutinizer.yml"]},
 "semantic versioning":{"homepage":"http://semver.org/",
                        "file":[".semver"]},
 "SPIP":{"homepage":"https://www.spip.net/",
           "file":["paquet.xml"]},
 "stickler":{"homepage":"https://stickler-ci.com/docs",
           "file":[".stickler.yml"]},
 "storyplayer":{"homepage":"https://datasift.github.io/storyplayer/",
           "file":["storyplayer.json.dist"]},
 "styleci":{"homepage":"https://styleci.io/",
            "file":[".styleci.yml"]},
 "stylelint":{"homepage":"https://stylelint.io/",
            "file":[".stylelintrc"]},
 "sublimelinter":{"homepage":"http://www.sublimelinter.com/en/latest/",
            "file":[".csslintrc"]},
 "svn":{"homepage":"https://subversion.apache.org/",
           "file":["svn.revision",".svn", ".svnignore"]},
 "transifex":{"homepage":"https://www.transifex.com/",
           "file":[".tx"]},
 "Robots.txt":{"homepage":"http://www.robotstxt.org/",
           "file":["robots.txt"]},
 "travis":{"homepage":"https://travis-ci.org/",
           "file":[".travis.yml", ".env.travis", ".travis", ".travis.php.ini", ".travis.coverage.sh", ".travis.ini"]},
 "varci":{"homepage":"https://var.ci/",
           "file":[".varci", ".varci.yml"]},
 "Vagrant":{"homepage":"https://www.vagrantup.com/",
           "file":["Vagrantfile"]},
 "visualstudio":{"homepage":"https://code.visualstudio.com/",
           "file":[".vscode"]},
 "webpack":{"homepage":"https://webpack.js.org/",
           "file":["webpack.mix.js", "webpack.config.js"]},
 "yarn":{"homepage":"https://yarnpkg.com/lang/en/",
           "file":["yarn.lock"]},
 "Zend_Tool":{"homepage":"https://framework.zend.com/",
           "file":["zfproject.xml"]}
}functions[] = mhash_count
functions[] = mhash_get_block_size
functions[] = mhash_get_hash_name
functions[] = mhash_keygen_s2k
functions[] = mhash

classes[] = 

constants[] = 'MHASH_ADLER32';
constants[] = 'MHASH_CRC32';
constants[] = 'MHASH_CRC32B';
constants[] = 'MHASH_GOST';
constants[] = 'MHASH_HAVAL128';
constants[] = 'MHASH_HAVAL160';
constants[] = 'MHASH_HAVAL192';
constants[] = 'MHASH_HAVAL224';
constants[] = 'MHASH_HAVAL256';
constants[] = 'MHASH_MD2';
constants[] = 'MHASH_MD4';
constants[] = 'MHASH_MD5';
constants[] = 'MHASH_RIPEMD128';
constants[] = 'MHASH_RIPEMD256';
constants[] = 'MHASH_RIPEMD320';
constants[] = 'MHASH_SHA1';
constants[] = 'MHASH_SHA192';
constants[] = 'MHASH_SHA224';
constants[] = 'MHASH_SHA256';
constants[] = 'MHASH_SHA384';
constants[] = 'MHASH_SHA512';
constants[] = 'MHASH_SNEFRU128';
constants[] = 'MHASH_SNEFRU256';
constants[] = 'MHASH_TIGER';
constants[] = 'MHASH_TIGER128';
constants[] = 'MHASH_TIGER160';
constants[] = 'MHASH_WHIRLPOOL';

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = 'pcntl_alarm';
functions[] = 'pcntl_async_signals';
functions[] = 'pcntl_errno';
functions[] = 'pcntl_exec';
functions[] = 'pcntl_fork';
functions[] = 'pcntl_get_last_error';
functions[] = 'pcntl_getpriority';
functions[] = 'pcntl_setpriority';
functions[] = 'pcntl_signal_dispatch';
functions[] = 'pcntl_signal_get_handler';
functions[] = 'pcntl_signal';
functions[] = 'pcntl_sigprocmask';
functions[] = 'pcntl_sigtimedwait';
functions[] = 'pcntl_sigwaitinfo';
functions[] = 'pcntl_strerror';
functions[] = 'pcntl_wait';
functions[] = 'pcntl_waitpid';
functions[] = 'pcntl_wexitstatus';
functions[] = 'pcntl_wifexited';
functions[] = 'pcntl_wifsignaled';
functions[] = 'pcntl_wifstopped';
functions[] = 'pcntl_wstopsig';
functions[] = 'pcntl_wtermsig';

constants[] = 'BUS_ADRALN';
constants[] = 'BUS_ADRERR';
constants[] = 'BUS_OBJERR';
constants[] = 'CLD_CONTINUED';
constants[] = 'CLD_DUMPED';
constants[] = 'CLD_EXITED';
constants[] = 'CLD_KILLED';
constants[] = 'CLD_STOPPED';
constants[] = 'CLD_TRAPPED';
constants[] = 'FPE_FLTDIV';
constants[] = 'FPE_FLTINV';
constants[] = 'FPE_FLTOVF';
constants[] = 'FPE_FLTRES';
constants[] = 'FPE_FLTSUB';
constants[] = 'FPE_FLTUND';
constants[] = 'FPE_INTDIV';
constants[] = 'FPE_INTOVF';
constants[] = 'ILL_BADSTK';
constants[] = 'ILL_COPROC';
constants[] = 'ILL_ILLADR';
constants[] = 'ILL_ILLOPC';
constants[] = 'ILL_ILLOPN';
constants[] = 'ILL_ILLTRP';
constants[] = 'ILL_PRVOPC';
constants[] = 'ILL_PRVREG';
constants[] = 'POLL_ERR';
constants[] = 'POLL_HUP';
constants[] = 'POLL_IN';
constants[] = 'POLL_MSG';
constants[] = 'POLL_OUT';
constants[] = 'POLL_PRI';
constants[] = 'SEGV_ACCERR';
constants[] = 'SEGV_MAPERR';
constants[] = 'SI_ASYNCIO';
constants[] = 'SI_KERNEL';
constants[] = 'SI_MSGGQ';
constants[] = 'SI_NOINFO';
constants[] = 'SI_QUEUE';
constants[] = 'SI_SIGIO';
constants[] = 'SI_TIMER';
constants[] = 'SI_TKILL';
constants[] = 'SI_USER';
constants[] = 'SIG_BLOCK';
constants[] = 'SIG_DFL';
constants[] = 'SIG_ERR';
constants[] = 'SIG_IGN';
constants[] = 'SIG_SETMASK';
constants[] = 'SIG_UNBLOCK';
constants[] = 'SIGABRT';
constants[] = 'SIGALRM';
constants[] = 'SIGBABY';
constants[] = 'SIGBUS';
constants[] = 'SIGCHLD';
constants[] = 'SIGCLD';
constants[] = 'SIGCONT';
constants[] = 'SIGFPE';
constants[] = 'SIGHUP';
constants[] = 'SIGILL';
constants[] = 'SIGINT';
constants[] = 'SIGIO';
constants[] = 'SIGIOT';
constants[] = 'SIGKILL';
constants[] = 'SIGPIPE';
constants[] = 'SIGPOLL';
constants[] = 'SIGPROF';
constants[] = 'SIGPWR';
constants[] = 'SIGQUIT';
constants[] = 'SIGSEGV';
constants[] = 'SIGSTKFLT';
constants[] = 'SIGSTOP';
constants[] = 'SIGSYS';
constants[] = 'SIGTERM';
constants[] = 'SIGTRAP';
constants[] = 'SIGTSTP';
constants[] = 'SIGTTIN';
constants[] = 'SIGTTOU';
constants[] = 'SIGURG';
constants[] = 'SIGUSR1';
constants[] = 'SIGUSR2';
constants[] = 'SIGVTALRM';
constants[] = 'SIGWINCH';
constants[] = 'SIGXCPU';
constants[] = 'SIGXFSZ';
constants[] = 'TRAP_BRKPT';
constants[] = 'TRAP_TRACE';
constants[] = 'WNOHANG';
constants[] = 'WUNTRACED';

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = parsekit_compile_file
functions[] = parsekit_compile_string
functions[] = parsekit_func_arginfo

constants[]='PARSEKIT_QUIET';
constants[]='PARSEKIT_SIMPLE';
constants[]='PARSEKIT_EXTENDED_VALUE';
constants[]='PARSEKIT_RESULT_CONST';
constants[]='PARSEKIT_RESULT_EA_TYPE';
constants[]='PARSEKIT_RESULT_JMP_ADDR';
constants[]='PARSEKIT_RESULT_OPARRAY';
constants[]='PARSEKIT_RESULT_OPLINE';
constants[]='PARSEKIT_RESULT_VAR';
constants[]='PARSEKIT_USAGE_UNKNOWN';
constants[]='PARSEKIT_ZEND_INTERNAL_CLASS';
constants[]='PARSEKIT_ZEND_USER_CLASS';
constants[]='PARSEKIT_ZEND_EVAL_CODE';
constants[]='PARSEKIT_ZEND_INTERNAL_FUNCTION';
constants[]='PARSEKIT_ZEND_OVERLOADED_FUNCTION';
constants[]='PARSEKIT_ZEND_OVERLOADED_FUNCTION_TEMPORARY';
constants[]='PARSEKIT_ZEND_USER_FUNCTION';
constants[]='PARSEKIT_IS_CONST';
constants[]='PARSEKIT_IS_TMP_VAR';
constants[]='PARSEKIT_IS_UNUSED';
constants[]='PARSEKIT_IS_VAR';
constants[]='PARSEKIT_ZEND_ADD';
constants[]='PARSEKIT_ZEND_ADD_ARRAY_ELEMENT';
constants[]='PARSEKIT_ZEND_ADD_CHAR';
constants[]='PARSEKIT_ZEND_ADD_INTERFACE';
constants[]='PARSEKIT_ZEND_ADD_STRING';
constants[]='PARSEKIT_ZEND_ADD_VAR';
constants[]='PARSEKIT_ZEND_ASSIGN';
constants[]='PARSEKIT_ZEND_ASSIGN_ADD';
constants[]='PARSEKIT_ZEND_ASSIGN_BW_AND';
constants[]='PARSEKIT_ZEND_ASSIGN_BW_OR';
constants[]='PARSEKIT_ZEND_ASSIGN_BW_XOR';
constants[]='PARSEKIT_ZEND_ASSIGN_CONCAT';
constants[]='PARSEKIT_ZEND_ASSIGN_DIM';
constants[]='PARSEKIT_ZEND_ASSIGN_DIV';
constants[]='PARSEKIT_ZEND_ASSIGN_MOD';
constants[]='PARSEKIT_ZEND_ASSIGN_MUL';
constants[]='PARSEKIT_ZEND_ASSIGN_OBJ';
constants[]='PARSEKIT_ZEND_ASSIGN_REF';
constants[]='PARSEKIT_ZEND_ASSIGN_SL';
constants[]='PARSEKIT_ZEND_ASSIGN_SR';
constants[]='PARSEKIT_ZEND_ASSIGN_SUB';
constants[]='PARSEKIT_ZEND_BEGIN_SILENCE';
constants[]='PARSEKIT_ZEND_BOOL';
constants[]='PARSEKIT_ZEND_BOOL_NOT';
constants[]='PARSEKIT_ZEND_BOOL_XOR';
constants[]='PARSEKIT_ZEND_BRK';
constants[]='PARSEKIT_ZEND_BW_AND';
constants[]='PARSEKIT_ZEND_BW_NOT';
constants[]='PARSEKIT_ZEND_BW_OR';
constants[]='PARSEKIT_ZEND_BW_XOR';
constants[]='PARSEKIT_ZEND_CASE';
constants[]='PARSEKIT_ZEND_CAST';
constants[]='PARSEKIT_ZEND_CATCH';
constants[]='PARSEKIT_ZEND_CLONE';
constants[]='PARSEKIT_ZEND_CONCAT';
constants[]='PARSEKIT_ZEND_CONT';
constants[]='PARSEKIT_ZEND_DECLARE_CLASS';
constants[]='PARSEKIT_ZEND_DECLARE_FUNCTION';
constants[]='PARSEKIT_ZEND_DECLARE_INHERITED_CLASS';
constants[]='PARSEKIT_ZEND_DIV';
constants[]='PARSEKIT_ZEND_DO_FCALL';
constants[]='PARSEKIT_ZEND_DO_FCALL_BY_NAME';
constants[]='PARSEKIT_ZEND_ECHO';
constants[]='PARSEKIT_ZEND_END_SILENCE';
constants[]='PARSEKIT_ZEND_EXIT';
constants[]='PARSEKIT_ZEND_EXT_FCALL_BEGIN';
constants[]='PARSEKIT_ZEND_EXT_FCALL_END';
constants[]='PARSEKIT_ZEND_EXT_NOP';
constants[]='PARSEKIT_ZEND_EXT_STMT';
constants[]='PARSEKIT_ZEND_FETCH_CLASS';
constants[]='PARSEKIT_ZEND_FETCH_CONSTANT';
constants[]='PARSEKIT_ZEND_FETCH_DIM_FUNC_ARG';
constants[]='PARSEKIT_ZEND_FETCH_DIM_IS';
constants[]='PARSEKIT_ZEND_FETCH_DIM_R';
constants[]='PARSEKIT_ZEND_FETCH_DIM_RW';
constants[]='PARSEKIT_ZEND_FETCH_DIM_TMP_VAR';
constants[]='PARSEKIT_ZEND_FETCH_DIM_UNSET';
constants[]='PARSEKIT_ZEND_FETCH_DIM_W';
constants[]='PARSEKIT_ZEND_FETCH_FUNC_ARG';
constants[]='PARSEKIT_ZEND_FETCH_IS';
constants[]='PARSEKIT_ZEND_FETCH_OBJ_FUNC_ARG';
constants[]='PARSEKIT_ZEND_FETCH_OBJ_IS';
constants[]='PARSEKIT_ZEND_FETCH_OBJ_R';
constants[]='PARSEKIT_ZEND_FETCH_OBJ_RW';
constants[]='PARSEKIT_ZEND_FETCH_OBJ_UNSET';
constants[]='PARSEKIT_ZEND_FETCH_OBJ_W';
constants[]='PARSEKIT_ZEND_FETCH_R';
constants[]='PARSEKIT_ZEND_FETCH_RW';
constants[]='PARSEKIT_ZEND_FETCH_UNSET';
constants[]='PARSEKIT_ZEND_FETCH_W';
constants[]='PARSEKIT_ZEND_FE_FETCH';
constants[]='PARSEKIT_ZEND_FE_RESET';
constants[]='PARSEKIT_ZEND_FREE';
constants[]='PARSEKIT_ZEND_HANDLE_EXCEPTION';
constants[]='PARSEKIT_ZEND_IMPORT_CLASS';
constants[]='PARSEKIT_ZEND_IMPORT_CONST';
constants[]='PARSEKIT_ZEND_IMPORT_FUNCTION';
constants[]='PARSEKIT_ZEND_INCLUDE_OR_EVAL';
constants[]='PARSEKIT_ZEND_INIT_ARRAY';
constants[]='PARSEKIT_ZEND_INIT_CTOR_CALL';
constants[]='PARSEKIT_ZEND_INIT_FCALL_BY_NAME';
constants[]='PARSEKIT_ZEND_INIT_METHOD_CALL';
constants[]='PARSEKIT_ZEND_INIT_STATIC_METHOD_CALL';
constants[]='PARSEKIT_ZEND_INIT_STRING';
constants[]='PARSEKIT_ZEND_INSTANCEOF';
constants[]='PARSEKIT_ZEND_ISSET_ISEMPTY';
constants[]='PARSEKIT_ZEND_ISSET_ISEMPTY_DIM_OBJ';
constants[]='PARSEKIT_ZEND_ISSET_ISEMPTY_PROP_OBJ';
constants[]='PARSEKIT_ZEND_ISSET_ISEMPTY_VAR';
constants[]='PARSEKIT_ZEND_IS_EQUAL';
constants[]='PARSEKIT_ZEND_IS_IDENTICAL';
constants[]='PARSEKIT_ZEND_IS_NOT_EQUAL';
constants[]='PARSEKIT_ZEND_IS_NOT_IDENTICAL';
constants[]='PARSEKIT_ZEND_IS_SMALLER';
constants[]='PARSEKIT_ZEND_IS_SMALLER_OR_EQUAL';
constants[]='PARSEKIT_ZEND_JMP';
constants[]='PARSEKIT_ZEND_JMPNZ';
constants[]='PARSEKIT_ZEND_JMPNZ_EX';
constants[]='PARSEKIT_ZEND_JMPZ';
constants[]='PARSEKIT_ZEND_JMPZNZ';
constants[]='PARSEKIT_ZEND_JMPZ_EX';
constants[]='PARSEKIT_ZEND_JMP_NO_CTOR';
constants[]='PARSEKIT_ZEND_MOD';
constants[]='PARSEKIT_ZEND_MUL';
constants[]='PARSEKIT_ZEND_NEW';
constants[]='PARSEKIT_ZEND_NOP';
constants[]='PARSEKIT_ZEND_OP_DATA';
constants[]='PARSEKIT_ZEND_POST_DEC';
constants[]='PARSEKIT_ZEND_POST_DEC_OBJ';
constants[]='PARSEKIT_ZEND_POST_INC';
constants[]='PARSEKIT_ZEND_POST_INC_OBJ';
constants[]='PARSEKIT_ZEND_PRE_DEC';
constants[]='PARSEKIT_ZEND_PRE_DEC_OBJ';
constants[]='PARSEKIT_ZEND_PRE_INC';
constants[]='PARSEKIT_ZEND_PRE_INC_OBJ';
constants[]='PARSEKIT_ZEND_PRINT';
constants[]='PARSEKIT_ZEND_QM_ASSIGN';
constants[]='PARSEKIT_ZEND_RAISE_ABSTRACT_ERROR';
constants[]='PARSEKIT_ZEND_RECV';
constants[]='PARSEKIT_ZEND_RECV_INIT';
constants[]='PARSEKIT_ZEND_RETURN';
constants[]='PARSEKIT_ZEND_SEND_REF';
constants[]='PARSEKIT_ZEND_SEND_VAL';
constants[]='PARSEKIT_ZEND_SEND_VAR';
constants[]='PARSEKIT_ZEND_SEND_VAR_NO_REF';
constants[]='PARSEKIT_ZEND_SL';
constants[]='PARSEKIT_ZEND_SR';
constants[]='PARSEKIT_ZEND_SUB';
constants[]='PARSEKIT_ZEND_SWITCH_FREE';
constants[]='PARSEKIT_ZEND_THROW';
constants[]='PARSEKIT_ZEND_TICKS';
constants[]='PARSEKIT_ZEND_UNSET_DIM_OBJ';
constants[]='PARSEKIT_ZEND_UNSET_VAR';
constants[]='PARSEKIT_ZEND_VERIFY_ABSTRACT_CLASS';

classes[] = 

interfaces[] =

traits[] = 

namespaces[] = 

directives[] = 

SQLite format 3   @   Y   O           X                                               Y .   
 jm
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             !!ctabledeprecateddeprecated	CREATE TABLE "deprecated" (
	 "id" integer NOT NULL,
	 "namespace_id" integer,
	 "type" varchar,
	 "cit" varchar,
	 "name" varchar,
	PRIMARY KEY("id"),
	CONSTRAINT "release" FOREIGN KEY ("namespace_id") REFERENCES "namespaces" ("id")
)btablereleasesreleasesCREATE TABLE "releases" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "release" text,
	 "component_id" integer,
	CONSTRAINT "component" FOREIGN KEY ("component_id") REFERENCES "components" ("id")
)~!!GtablecomponentscomponentsCREATE TABLE "components" (
	 "id" integer NOT NULL,
	 "component" text,
	PRIMARY KEY("id")
)etabletraitstraitsCREATE TABLE "traits" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "trait" text,
	 "namespace_id" integer
)!!utableinterfacesinterfacesCREATE TABLE "interfaces" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "interface" text,
	 "namespace_id" integer
)gtableclassesclassesCREATE TABLE "classes" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "class" text,
	 "namespace_id" integer
)P++Ytablesqlite_sequencesqlite_sequenceCREATE TABLE sqlite_sequence(name,seq)!!qtablenamespacesnamespacesCREATE TABLE "namespaces" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "namespace" text,
	 "release_id" integer
)       dH"jY>%mT;






j
Z
?

				{	Y	>	hN4e= \5cK; \:kI/jFz`=                  %~ MZend\Code\Generator\DocBlock\Tag!} EZend\Code\Generator\DocBlock| 3Zend\Code\Generator{ 3Zend\Code\Exception z CZend\Code\Annotation\Parsery 5Zend\Code\Annotationx Zend\Codew /Zend\Code\Scanner#v IZend\Code\Reflection\Exception&u OZend\Code\Reflection\DocBlock\Tag"t GZend\Code\Reflection\DocBlocks 5Zend\Code\Reflection r CZend\Code\Generic\Prototype"q GZend\Code\Generator\Exception%p MZend\Code\Generator\DocBlock\Tag!o EZend\Code\Generator\DocBlockn 3Zend\Code\Generatorm 3Zend\Code\Exception l CZend\Code\Annotation\Parserk 5Zend\Code\Annotationj Zend\Codei /Zend\Code\Scanner#h IZend\Code\Reflection\Exception&g OZend\Code\Reflection\DocBlock\Tag"f GZend\Code\Reflection\DocBlocke 5Zend\Code\Reflection d CZend\Code\Generic\Prototype"c GZend\Code\Generator\Exception%b MZend\Code\Generator\DocBlock\Tag!a EZend\Code\Generator\DocBlock` 3Zend\Code\Generator_ 3Zend\Code\Exception ^ CZend\Code\Annotation\Parser] 5Zend\Code\Annotation\ Zend\Code[ /Zend\Code\Scanner#Z IZend\Code\Reflection\Exception&Y OZend\Code\Reflection\DocBlock\Tag"X GZend\Code\Reflection\DocBlockW 5Zend\Code\Reflection V CZend\Code\Generic\Prototype"U GZend\Code\Generator\Exception%T MZend\Code\Generator\DocBlock\Tag!S EZend\Code\Generator\DocBlockR 3Zend\Code\GeneratorQ 3Zend\Code\Exception P CZend\Code\Annotation\ParserO 5Zend\Code\AnnotationN Zend\CodeM /Zend\Code\Scanner#L IZend\Code\Reflection\Exception&K OZend\Code\Reflection\DocBlock\Tag"J GZend\Code\Reflection\DocBlockI 5Zend\Code\Reflection H CZend\Code\Generic\Prototype"G GZend\Code\Generator\Exception%F MZend\Code\Generator\DocBlock\Tag!E EZend\Code\Generator\DocBlockD 3Zend\Code\GeneratorC 3Zend\Code\Exception B CZend\Code\Annotation\ParserA 5Zend\Code\Annotation@ Zend\Code? /Zend\Code\Scanner
#> IZend\Code\Reflection\Exception
&= OZend\Code\Reflection\DocBlock\Tag
"< GZend\Code\Reflection\DocBlock
; 5Zend\Code\Reflection
 : CZend\Code\Generic\Prototype
"9 GZend\Code\Generator\Exception
%8 MZend\Code\Generator\DocBlock\Tag
!7 EZend\Code\Generator\DocBlock
6 3Zend\Code\Generator
5 3Zend\Code\Exception
 4 CZend\Code\Annotation\Parser
3 5Zend\Code\Annotation
2 Zend\Code
1 9Zend\Captcha\Exception	0 %Zend\Captcha	/ 9Zend\Captcha\Exception. %Zend\Captcha- 9Zend\Captcha\Exception, %Zend\Captcha+ ?Zend\Cache\Storage\Plugin* AZend\Cache\Storage\Adapter) 1Zend\Cache\Storage( 1Zend\Cache\Service' 1Zend\Cache\Pattern& 5Zend\Cache\Exception% !Zend\Cache$ ?Zend\Cache\Storage\Plugin# AZend\Cache\Storage\Adapter" 1Zend\Cache\Storage! 1Zend\Cache\Service  1Zend\Cache\Pattern 5Zend\Cache\Exception !Zend\Cache ?Zend\Cache\Storage\Plugin AZend\Cache\Storage\Adapter 1Zend\Cache\Storage 1Zend\Cache\Service 1Zend\Cache\Pattern 5Zend\Cache\Exception !Zend\Cache$ KZend\Barcode\Renderer\Exception 7Zend\Barcode\Renderer" GZend\Barcode\Object\Exception 3Zend\Barcode\Object 9Zend\Barcode\Exception %Zend\Barcode$ KZend\Barcode\Renderer\Exception 7Zend\Barcode\Renderer" GZend\Barcode\Object\Exception 3Zend\Barcode\Object 9Zend\Barcode\Exception %Zend\Barcode!
 G	Zend\Authentication\Validator	 C	Zend\Authentication\Storage! G	Zend\Authentication\Exception. a	Zend\Authentication\Adapter\Http\Exception$ M	Zend\Authentication\Adapter\Http) W	Zend\Authentication\Adapter\Exception1 g	Zend\Authentication\Adapter\DbTable\Exception' S	Zend\Authentication\Adapter\   @   H   G   N   K   C   E   a   l   y   
~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
traits7!interfacesclasses!namespacesMreleases    (    >|vpjd^XRLF@:4.("cXMA1%	sYB+





t
X
9
								s	f	Z	O	D	9	-			~_E.sXC&{dE 
oT8$vdSH5#nW8*p`I;&m   1 'PluginOptions0 -OptimizeByFactor/ +IgnoreUserAbort. -ExceptionHandler- 5ClearExpiredByFactor, )AbstractPlugin+ 'ZendServerShm* )ZendServerDisk) 'XCacheOptions( XCache' +WinCacheOptions& WinCache% )SessionOptions$ Session# 5RedisResourceManager" %RedisOptions
! Redis  9MongoDbResourceManager )MongoDbOptions MongoDb 'MemoryOptions Memory ;MemcacheResourceManager +MemcacheOptions =MemcachedResourceManager -MemcachedOptions Memcached Memcache +KeyListIterator /FilesystemOptions 1FilesystemIterator !Filesystem !DbaOptions #DbaIterator Dba BlackHole !ApcOptions #ApcIterator Apc
 )AdapterOptions	 1AbstractZendServer +AbstractAdapter PostEvent 'PluginManager )ExceptionEvent
 Event %Capabilities 5AdapterPluginManager 3StorageCacheFactory'  QStorageCacheAbstractServiceFactory )PatternOptions~ #OutputCache} #ObjectCache| !ClassCache{ %CaptureCachez 'CallbackCachey +AbstractPattern#x IUnsupportedMethodCallExceptionw =UnexpectedValueExceptionv -RuntimeExceptionu 3OutOfSpaceExceptiont 3MissingKeyExceptions AMissingDependencyExceptionr )LogicExceptionq =InvalidArgumentException p CExtensionNotLoadedExceptiono 9BadMethodCallExceptionn )StorageFactorym 5PatternPluginManagerl )PatternFactoryk =UnexpectedValueExceptionj -RuntimeExceptioni 3OutOfRangeExceptionh =InvalidArgumentExceptiong Svgf Pdf
e Imaged -AbstractRendererc -RuntimeExceptionb 3OutOfRangeExceptiona =InvalidArgumentException ` CExtensionNotLoadedException_ ABarcodeValidationException	^ Upce	] Upca\ Royalmail[ PostnetZ PlanetY Leitcode
X Itf14W Identcode
V Error	U Ean8	T Ean5	S Ean2
R Ean13Q Code39P /Code25interleavedO Code25N Code128M CodabarL )AbstractObjectK =UnexpectedValueExceptionJ -RuntimeExceptionI ?RendererCreationExceptionH 3OutOfRangeExceptionG =InvalidArgumentExceptionF 7RendererPluginManagerE 3ObjectPluginManagerD BarcodeC =UnexpectedValueExceptionB -RuntimeExceptionA 3OutOfRangeException@ =InvalidArgumentException? Svg> Pdf
= Image< -AbstractRenderer; -RuntimeException: 3OutOfRangeException9 =InvalidArgumentException 8 CExtensionNotLoadedException7 ABarcodeValidationException	6 Upce	5 Upca4 Royalmail3 Postnet2 Planet1 Leitcode
0 Itf14/ Identcode
. Error	- Ean8	, Ean5	+ Ean2
* Ean13) Code39( /Code25interleaved' Code25& Code128% Codabar$ )AbstractObject# =UnexpectedValueException" -RuntimeException! ?RendererCreationException  3OutOfRangeException =InvalidArgumentException 7RendererPluginManager 3ObjectPluginManager Barcode )Authentication
 Session	 'NonPersistent	
 Chain	 =UnexpectedValueException -RuntimeException =InvalidArgumentException -RuntimeException =InvalidArgumentException %FileResolver )ApacheResolver =UnexpectedValueException -RuntimeException =InvalidArgumentException -RuntimeExceptio   =   <p   ;>   :   9P   8   74   6   5   4x   3S   2>   1?   09   /0   .'   -   ,U   +   *k   );   (   'T   &   %g   $-   #   "P   !    h   F      \   ,   }   B      y   W   1   	    H~hO7pW?'vQ1}eD.





g
O
7

						o	V	?	&	~^E+hN;"nT>%sUB)jJ1mT9%hP5dH                           3ReflectionInterface  1PrototypeInterface  ?PrototypeGenericInterface  1ExceptionInterface %TagInterface~ 3TraitUsageInterface| 1GeneratorInterface| 1ExceptionInterface{ +ParserInterfacez
 3AnnotationInterfacey	 -ScannerInterfacew 1ExceptionInterfacev %TagInterfaceu ;PhpDocTypedTagInterfaceu 3ReflectionInterfaces 1PrototypeInterfacer ?PrototypeGenericInterfacer 1ExceptionInterfaceq %TagInterfacep  3TraitUsageInterfacen 1GeneratorInterfacen~ 1ExceptionInterfacem} +ParserInterfacel| 3AnnotationInterfacek{ -ScannerInterfaceiz 1ExceptionInterfacehy %TagInterfacegx ;PhpDocTypedTagInterfacegw 3ReflectionInterfaceev 1PrototypeInterfacedu ?PrototypeGenericInterfacedt 1ExceptionInterfacecs %TagInterfacebr 3TraitUsageInterface`q 1GeneratorInterface`p 1ExceptionInterface_o +ParserInterface^n 3AnnotationInterface]m -ScannerInterface[l 1ExceptionInterfaceZk %TagInterfaceYj ;PhpDocTypedTagInterfaceYi 3ReflectionInterfaceWh 1PrototypeInterfaceVg ?PrototypeGenericInterfaceVf 1ExceptionInterfaceUe %TagInterfaceTd 3TraitUsageInterfaceRc 1GeneratorInterfaceRb 1ExceptionInterfaceQa +ParserInterfaceP` 3AnnotationInterfaceO_ -ScannerInterfaceM^ 1ExceptionInterfaceL] %TagInterfaceK\ ;PhpDocTypedTagInterfaceK[ 3ReflectionInterfaceIZ 1PrototypeInterfaceHY ?PrototypeGenericInterfaceHX 1ExceptionInterfaceGW %TagInterfaceFV 3TraitUsageInterfaceDU 1GeneratorInterfaceDT 1ExceptionInterfaceCS +ParserInterfaceBR 3AnnotationInterfaceAQ -ScannerInterface?P 1ExceptionInterface>O %TagInterface=N ;PhpDocTypedTagInterface=M 3ReflectionInterface;L 1PrototypeInterface:K ?PrototypeGenericInterface:J 1ExceptionInterface9I %TagInterface8H 3TraitUsageInterface6G 1GeneratorInterface6F 1ExceptionInterface5E +ParserInterface4D 3AnnotationInterface3C 1ExceptionInterface1B -AdapterInterface0A 1ExceptionInterface/@ -AdapterInterface.? 1ExceptionInterface-> -AdapterInterface,= +PluginInterface+< ATotalSpaceCapableInterface); /TaggableInterface): -StorageInterface)9 5OptimizableInterface)8 /IteratorInterface)7 /IterableInterface)6 1FlushableInterface)5 7ClearExpiredInterface)4 9ClearByPrefixInterface)3 ?ClearByNamespaceInterface)#2 IAvailableSpaceCapableInterface)1 -PatternInterface'0 1ExceptionInterface&/ +PluginInterface$. ATotalSpaceCapableInterface"- /TaggableInterface", -StorageInterface"+ 5OptimizableInterface"* /IteratorInterface") /IterableInterface"( 1FlushableInterface"' 7ClearExpiredInterface"& 9ClearByPrefixInterface"% ?ClearByNamespaceInterface"#$ IAvailableSpaceCapableInterface"# -PatternInterface " 1ExceptionInterface! +PluginInterface  ATotalSpaceCapableInterface /TaggableInterface -StorageInterface 5OptimizableInterface /IteratorInterface /IterableInterface 1FlushableInterface 7ClearExpiredInterface 9ClearByPrefixInterface ?ClearByNamespaceInterface# IAvailableSpaceCapableInterface -PatternInterface 1ExceptionInterface 1ExceptionInterface /RendererInterface 1ExceptionInterface +ObjectInterface 1ExceptionInterface 1ExceptionInterface /RendererInterface 1ExceptionInterface +ObjectInterface
 1ExceptionInterface	 -StorageInterface	 1ExceptionInterface 1ExceptionInterface /ResolverInterface 1ExceptionInterface 1ExceptionInterface  CValidatableAdapterInterface -   G/   F+   E'   D)   C,   B#   A"   @    ?   7
: gD-rX>$
eK3eK1u\C*




v
X
:                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    7 9StringWrapperInterfaceM6 9StringWrapperInterfaceH5 9StringWrapperInterface;4 9StringWrapperInterface:3 9StringWrapperInterface.2 9StringWrapperInterface-1 9StringWrapperInterface!0 9StringWrapperInterface / /ResolverInterface. /ResolverInterface- /ResolverInterface, 1ValidatorInterfacer+ 1ValidatorInterfacek* 1ValidatorInterfaced) 5InitializerInterfaceV( 5InitializerInterfaceN' 5InitializerInterfaceF& 1ExceptionInterface7% 1ExceptionInterface3$ 1ExceptionInterface/# ;ResponseSenderInterface" ;ResponseSenderInterface! )RouteInterface  1ExceptionInterfaceV -FirePhpInterface -FirePhpInterface -FirePhpInterface -FirePhpInterface -FirePhpInterface 1ExceptionInterface 1ExceptionInterface 1ExceptionInterface 7RemoteLoaderInterface 7RemoteLoaderInterface 7RemoteLoaderInterface 1ExceptionInterface 1ExceptionInterface 1ExceptionInterface 1ExceptionInterface 1ExceptionInterface 1ExceptionInterface} +FilterInterface +FilterInterface +FilterInterface +FilterInterface
 +FilterInterface	 +FilterInterface +FilterInterface +FilterInterface! CDependencyResolverInterface! CEventFeatureEventsInterfaceb! CEventFeatureEventsInterface7! CEventFeatureEventsInterface 1ExceptionInterface  +PluginInterface(   = ym^R?2!vaSC6(
vcJ0{n`RE2$                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
= zendxml< #zend-stdlib; #zend-xmlrpc: 'zend-xml2json9 zend-view8 )zend-validator7 zend-uri6 zend-text5 zend-test4 zend-tag3 /zend-stratigility2 zend-soap1 %zend-session0 3zend-servicemanager/ 9zend-servicemanager_di. #zend-server- +zend-serializer, +zend-psr7bridge+ -zend-progressbar* 7zend-permissions_rbac) 5zend-permissions_acl( )zend-paginator' +zend-navigation& zend-mvc% -zend-mvc_plugins$ 'zend-mvc_i18n# 'zend-mvc_form" -zend-mvc_console! 1zend-modulemanager  zend-mime #zend-memory zend-math zend-mail zend-log #zend-loader zend-json -zend-json_server -zend-inputfilter zend-i18n 3zend-i18n_resources 'zend-hydrator zend-http zend-form #zend-filter zend-file zend-feed /zend-eventmanager %zend-escaper zend-dom )zend-diactoros
 zend-di
 !zend-debug
	 zend-db !zend-crypt %zend-console #zend-config zend-code %zend-captcha !zend-cache %zend-barcode 3zend-authentication    uaM9%q]I5!mYE1	}iUA-yeQ=)






u
a
M
9
%
								q	]	I	5	!	mYE1	}iUA-yeQ=) mXC.q\G2                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            'release-3.1.0< 'release-3.0.0< 'release-2.7.0< 'release-2.6.0< 'release-2.5.0< 'release-2.6.0; 'release-2.5.0; 'release-2.9.09 'release-2.8.09 'release-2.7.09 'release-2.6.09 'release-2.5.09 'release-2.9.08 'release-2.8.08 'release-2.7.08 'release-2.6.08 'release-2.5.08
 'release-2.5.07	 'release-2.6.06 'release-2.5.06 'release-3.1.05 'release-3.0.05 'release-2.6.05 'release-2.5.05 'release-2.6.04 'release-2.5.04 'release-2.6.02  'release-2.5.02 'release-2.8.01~ 'release-2.7.01} 'release-2.6.01| 'release-2.5.01{ 'release-3.3.00z 'release-3.2.00y 'release-3.1.00x 'release-3.0.00w 'release-2.7.00v 'release-2.6.00u 'release-2.5.00t 'release-2.7.0.s 'release-2.6.0.r 'release-2.5.0.q 'release-2.8.0-p 'release-2.7.0-o 'release-2.6.0-n 'release-2.5.0-m 'release-2.5.0+l 'release-2.5.0*k 'release-2.6.0)j 'release-2.5.0)i 'release-2.8.0(h 'release-2.7.0(g 'release-2.6.0(f 'release-2.5.0(e 'release-2.8.0'd 'release-2.7.0'c 'release-2.6.0'b 'release-2.5.0'a 'release-3.1.0&` 'release-3.0.0&_ 'release-2.7.0&^ 'release-2.6.0&] 'release-2.5.0&\ 'release-2.8.0![ 'release-2.7.0!Z 'release-2.6.0!Y 'release-2.5.0!X 'release-2.7.0 W 'release-2.6.0 V 'release-2.5.0 U 'release-2.5.0T 'release-3.0.0S 'release-2.7.0R 'release-2.6.0Q 'release-2.5.0P 'release-2.8.0O 'release-2.7.0N 'release-2.6.0M 'release-2.5.0L 'release-2.9.0K 'release-2.8.0J 'release-2.7.0I 'release-2.6.0H 'release-2.5.0G 'release-2.5.0F 'release-3.0.0E 'release-2.6.0D 'release-2.5.0C 'release-2.7.0B 'release-2.6.0A 'release-2.5.0@ 'release-2.7.0? 'release-2.6.0> 'release-2.5.0= 'release-2.5.0< 'release-2.7.0; 'release-2.6.0: 'release-2.5.09 'release-2.9.08 'release-2.8.07 'release-2.7.06 'release-2.6.05 'release-2.5.04 'release-2.7.03 'release-2.6.02 'release-2.5.01 'release-2.7.00 'release-2.6.0/ 'release-2.5.0. 'release-2.8.0- 'release-2.7.0, 'release-2.6.0+ 'release-2.5.0* 'release-3.2.0) 'release-3.1.0( 'release-3.0.0' 'release-2.6.0& 'release-2.5.0% 'release-2.5.0$ 'release-2.6.0# 'release-2.5.0" 'release-3.0.0! 'release-2.6.0  'release-2.5.0 'release-2.5.0
 'release-2.8.0	 'release-2.7.0	 'release-2.6.0	 'release-2.5.0	 'release-3.2.0 'release-3.1.0 'release-3.0.0 'release-2.6.0 'release-2.5.0 'release-2.6.0 'release-2.5.0 'release-3.1.0 'release-3.0.0 'release-2.6.0 'release-2.5.0 'release-3.3.0 'release-3.2.0 'release-3.1.0 'release-3.0.0 'release-2.6.0
 'release-2.5.0	 'release-2.7.0 'release-2.6.0 'release-2.5.0 'release-2.7.0 'release-2.6.0 'release-2.5.0 'release-2.6.0 'release-2.5.0 '	release-2.5.0       OFq"=


^
-					L	;i#N}8b#Q	9d                       @; aKfunctionZend\Code\Reflection\DocBlock\Tag/ParamTaggetTypeG: c'KfunctionZend\Code\Reflection\DocBlock\Tag/MethodTaggetReturnTypeD9 a#FfunctionZend\Code\Generator\DocBlock\Tag/ReturnTaggetDatatypeD8 a#FfunctionZend\Code\Generator\DocBlock\Tag/ReturnTagsetDatatypeG7 a)FfunctionZend\Code\Generator\DocBlock\Tag/ReturnTagfromReflectionD6 _%FfunctionZend\Code\Generator\DocBlock\Tag/ParamTaggetParamNameD5 _%FfunctionZend\Code\Generator\DocBlock\Tag/ParamTagsetParamNameC4 _#FfunctionZend\Code\Generator\DocBlock\Tag/ParamTaggetDatatypeC3 _#FfunctionZend\Code\Generator\DocBlock\Tag/ParamTagsetDatatypeF2 _)FfunctionZend\Code\Generator\DocBlock\Tag/ParamTagfromReflectionH1 c)FfunctionZend\Code\Generator\DocBlock\Tag/LicenseTagfromReflectionG0 a)FfunctionZend\Code\Generator\DocBlock\Tag/AuthorTagfromReflection=/ M)EfunctionZend\Code\Generator\DocBlock/TaggetDescription=. M)EfunctionZend\Code\Generator\DocBlock/TagsetDescription=- M)EfunctionZend\Code\Generator\DocBlock/TagfromReflection, EclassTagA+ c=functionZend\Code\Reflection\DocBlock\Tag/ThrowsTaggetTypeA* c=functionZend\Code\Reflection\DocBlock\Tag/ReturnTaggetTypeC) g=functionZend\Code\Reflection\DocBlock\Tag/PropertyTaggetType@( a=functionZend\Code\Reflection\DocBlock\Tag/ParamTaggetTypeG' c'=functionZend\Code\Reflection\DocBlock\Tag/MethodTaggetReturnTypeD& a#8functionZend\Code\Generator\DocBlock\Tag/ReturnTaggetDatatypeD% a#8functionZend\Code\Generator\DocBlock\Tag/ReturnTagsetDatatypeG$ a)8functionZend\Code\Generator\DocBlock\Tag/ReturnTagfromReflectionD# _%8functionZend\Code\Generator\DocBlock\Tag/ParamTaggetParamNameD" _%8functionZend\Code\Generator\DocBlock\Tag/ParamTagsetParamNameC! _#8functionZend\Code\Generator\DocBlock\Tag/ParamTaggetDatatypeC  _#8functionZend\Code\Generator\DocBlock\Tag/ParamTagsetDatatypeF _)8functionZend\Code\Generator\DocBlock\Tag/ParamTagfromReflectionH c)8functionZend\Code\Generator\DocBlock\Tag/LicenseTagfromReflectionG a)8functionZend\Code\Generator\DocBlock\Tag/AuthorTagfromReflection= M)7functionZend\Code\Generator\DocBlock/TaggetDescription= M)7functionZend\Code\Generator\DocBlock/TagsetDescription= M)7functionZend\Code\Generator\DocBlock/TagfromReflection 7classTag. 90functionZend\Captcha/ReCaptchasetPubKey/ 9!0functionZend\Captcha/ReCaptchasetPrivKey. 90functionZend\Captcha/ReCaptchagetPubKey/ 9!0functionZend\Captcha/ReCaptchagetPrivKeyM k+*functionZend\Cache\Storage\Adapter/RedisResourceManagergetMayorVersionF c%*functionZend\Cache\Storage\Adapter/MemcachedOptionsgetLibOptionF c%*functionZend\Cache\Storage\Adapter/MemcachedOptionssetLibOptionC c*functionZend\Cache\Storage\Adapter/MemcachedOptionsaddServerN c5*functionZend\Cache\Storage\Adapter/MemcachedOptionsgetMemcachedResourceN c5*functionZend\Cache\Storage\Adapter/MemcachedOptionssetMemcachedResourceM k+#functionZend\Cache\Storage\Adapter/RedisResourceManagergetMayorVersionF c%#functionZend\Cache\Storage\Adapter/MemcachedOptionsgetLibOptionF c%#functionZend\Cache\Storage\Adapter/MemcachedOptionssetLibOptionC c#functionZend\Cache\Storage\Adapter/MemcachedOptionsaddServerN
 c5#functionZend\Cache\Storage\Adapter/MemcachedOptionsgetMemcachedResourceN	 c5#functionZend\Cache\Storage\Adapter/MemcachedOptionssetMemcachedResourceM k+functionZend\Cache\Storage\Adapter/RedisResourceManagergetMayorVersionF c%functionZend\Cache\Storage\Adapter/MemcachedOptionsgetLibOptionF c%functionZend\Cache\Storage\Adapter/MemcachedOptionssetLibOptionC cfunctionZend\Cache\Storage\Adapter/MemcachedOptionsaddServerN c5functionZend\Cache\Storage\Adapter/MemcachedOptionsgetMemcachedResourceN c5functionZend\Cache\Storage\Adapter/MemcachedOptionssetMemcachedResource? M-functionZend\Authentication\Adapter/Http_ch   NB   Ml   L   K<   Jv   I;   ~ j?oR8dH"jY>%mT;






j
Z
?

				{	Y	>	hN4e= \5cK; \:kI/jFz`=                  %~ MZend\Code\Generator\DocBlock\Tag!} EZend\Code\Generator\DocBlock| 3Zend\Code\Generator{ 3Zend\Code\Exception z CZend\Code\Annotation\Parsery 5Zend\Code\Annotationx Zend\Codew /Zend\Code\Scanner#v IZend\Code\Reflection\Exception&u OZend\Code\Reflection\DocBlock\Tag"t GZend\Code\Reflection\DocBlocks 5Zend\Code\Reflection r CZend\Code\Generic\Prototype"q GZend\Code\Generator\Exception%p MZend\Code\Generator\DocBlock\Tag!o EZend\Code\Generator\DocBlockn 3Zend\Code\Generatorm 3Zend\Code\Exception l CZend\Code\Annotation\Parserk 5Zend\Code\Annotationj Zend\Codei /Zend\Code\Scanner#h IZend\Code\Reflection\Exception&g OZend\Code\Reflection\DocBlock\Tag"f GZend\Code\Reflection\DocBlocke 5Zend\Code\Reflection d CZend\Code\Generic\Prototype"c GZend\Code\Generator\Exception%b MZend\Code\Generator\DocBlock\Tag!a EZend\Code\Generator\DocBlock` 3Zend\Code\Generator_ 3Zend\Code\Exception ^ CZend\Code\Annotation\Parser] 5Zend\Code\Annotation\ Zend\Code[ /Zend\Code\Scanner#Z IZend\Code\Reflection\Exception&Y OZend\Code\Reflection\DocBlock\Tag"X GZend\Code\Reflection\DocBlockW 5Zend\Code\Reflection V CZend\Code\Generic\Prototype"U GZend\Code\Generator\Exception%T MZend\Code\Generator\DocBlock\Tag!S EZend\Code\Generator\DocBlockR 3Zend\Code\GeneratorQ 3Zend\Code\Exception P CZend\Code\Annotation\ParserO 5Zend\Code\AnnotationN Zend\CodeM /Zend\Code\Scanner#L IZend\Code\Reflection\Exception&K OZend\Code\Reflection\DocBlock\Tag"J GZend\Code\Reflection\DocBlockI 5Zend\Code\Reflection H CZend\Code\Generic\Prototype"G GZend\Code\Generator\Exception%F MZend\Code\Generator\DocBlock\Tag!E EZend\Code\Generator\DocBlockD 3Zend\Code\GeneratorC 3Zend\Code\Exception B CZend\Code\Annotation\ParserA 5Zend\Code\Annotation@ Zend\Code? /Zend\Code\Scanner
#> IZend\Code\Reflection\Exception
&= OZend\Code\Reflection\DocBlock\Tag
"< GZend\Code\Reflection\DocBlock
; 5Zend\Code\Reflection
 : CZend\Code\Generic\Prototype
"9 GZend\Code\Generator\Exception
%8 MZend\Code\Generator\DocBlock\Tag
!7 EZend\Code\Generator\DocBlock
6 3Zend\Code\Generator
5 3Zend\Code\Exception
 4 CZend\Code\Annotation\Parser
3 5Zend\Code\Annotation
2 Zend\Code
1 9Zend\Captcha\Exception	0 %Zend\Captcha	/ 9Zend\Captcha\Exception. %Zend\Captcha- 9Zend\Captcha\Exception, %Zend\Captcha+ ?Zend\Cache\Storage\Plugin* AZend\Cache\Storage\Adapter) 1Zend\Cache\Storage( 1Zend\Cache\Service' 1Zend\Cache\Pattern& 5Zend\Cache\Exception% !Zend\Cache$ ?Zend\Cache\Storage\Plugin# AZend\Cache\Storage\Adapter" 1Zend\Cache\Storage! 1Zend\Cache\Service  1Zend\Cache\Pattern 5Zend\Cache\Exception !Zend\Cache ?Zend\Cache\Storage\Plugin AZend\Cache\Storage\Adapter 1Zend\Cache\Storage 1Zend\Cache\Service 1Zend\Cache\Pattern 5Zend\Cache\Exception !Zend\Cache$ KZend\Barcode\Renderer\Exception 7Zend\Barcode\Renderer" GZend\Barcode\Object\Exception 3Zend\Barcode\Object 9Zend\Barcode\Exception %Zend\Barcode$ KZend\Barcode\Renderer\Exception 7Zend\Barcode\Renderer" GZend\Barcode\Object\Exception 3Zend\Barcode\Object 9Zend\Barcode\Exception %Zend\Barcode!
 G	Zend\Authentication\Validator	 C	Zend\Authentication\Storage! G	Zend\Authentication\Exception. a	Zend\Authentication\Adapter\Http\Exception$ M	Zend\Authentication\Adapter\Http) W	Zend\Authentication\Adapter\Exception1 g	Zend\Authentication\Adapter\DbTable\Exception' S	Zend\Authentication\Adapter\DbTable C	Zend\Authentication\Adapter 3	Zend\Authentication   { xO)|_B(z]@&mL8 z^=




l
P
*
					q	L	0	nR1`De@$tbF%~T8nI&bA!yV<                          !y EZend\Db\RowGateway\Exceptionx 1Zend\Db\RowGateway w CZend\Db\ResultSet\Exceptionv /Zend\Db\ResultSetu ;Zend\Db\Metadata\Sourcet ;Zend\Db\Metadata\Objects -Zend\Db\Metadatar /Zend\Db\Exceptionq =Zend\Db\Adapter\Profilerp =Zend\Db\Adapter\Platformo ?Zend\Db\Adapter\Exception,n [Zend\Db\Adapter\Driver\Sqlsrv\Exception"m GZend\Db\Adapter\Driver\Sqlsrv!l EZend\Db\Adapter\Driver\Pgsql'k QZend\Db\Adapter\Driver\Pdo\Featurej AZend\Db\Adapter\Driver\Pdo i CZend\Db\Adapter\Driver\Oci8"h GZend\Db\Adapter\Driver\Mysqli"g GZend\Db\Adapter\Driver\IbmDb2#f IZend\Db\Adapter\Driver\Featuree 9Zend\Db\Adapter\Driverd +Zend\Db\Adapter!c EZend\Crypt\Symmetric\Padding#b IZend\Crypt\Symmetric\Exceptiona 5Zend\Crypt\Symmetric'` QZend\Crypt\PublicKey\Rsa\Exception_ =Zend\Crypt\PublicKey\Rsa^ 5Zend\Crypt\PublicKey"] GZend\Crypt\Password\Exception\ 3Zend\Crypt\Password([ SZend\Crypt\Key\Derivation\ExceptionZ ?Zend\Crypt\Key\DerivationY 5Zend\Crypt\ExceptionX !Zend\Crypt!W EZend\Crypt\Symmetric\Padding#V IZend\Crypt\Symmetric\ExceptionU 5Zend\Crypt\Symmetric'T QZend\Crypt\PublicKey\Rsa\ExceptionS =Zend\Crypt\PublicKey\RsaR 5Zend\Crypt\PublicKey"Q GZend\Crypt\Password\ExceptionP 3Zend\Crypt\Password(O SZend\Crypt\Key\Derivation\ExceptionN ?Zend\Crypt\Key\DerivationM 5Zend\Crypt\ExceptionL !Zend\Crypt!K EZend\Crypt\Symmetric\Padding#J IZend\Crypt\Symmetric\ExceptionI 5Zend\Crypt\Symmetric'H QZend\Crypt\PublicKey\Rsa\ExceptionG =Zend\Crypt\PublicKey\RsaF 5Zend\Crypt\PublicKey"E GZend\Crypt\Password\ExceptionD 3Zend\Crypt\Password(C SZend\Crypt\Key\Derivation\ExceptionB ?Zend\Crypt\Key\DerivationA 5Zend\Crypt\Exception@ !Zend\Crypt!? EZend\Crypt\Symmetric\Padding#> IZend\Crypt\Symmetric\Exception= 5Zend\Crypt\Symmetric'< QZend\Crypt\PublicKey\Rsa\Exception; =Zend\Crypt\PublicKey\Rsa: 5Zend\Crypt\PublicKey"9 GZend\Crypt\Password\Exception8 3Zend\Crypt\Password(7 SZend\Crypt\Key\Derivation\Exception6 ?Zend\Crypt\Key\Derivation5 5Zend\Crypt\Exception4 !Zend\Crypt!3 EZend\Crypt\Symmetric\Padding#2 IZend\Crypt\Symmetric\Exception1 5Zend\Crypt\Symmetric'0 QZend\Crypt\PublicKey\Rsa\Exception/ =Zend\Crypt\PublicKey\Rsa. 5Zend\Crypt\PublicKey"- GZend\Crypt\Password\Exception, 3Zend\Crypt\Password(+ SZend\Crypt\Key\Derivation\Exception* ?Zend\Crypt\Key\Derivation) 5Zend\Crypt\Exception( !Zend\Crypt' ?Zend\Console\RouteMatcher& 3Zend\Console\Prompt% 9Zend\Console\Exception$ 1Zend\Console\Color# 5Zend\Console\Charset" 5Zend\Console\Adapter! %Zend\Console  ?Zend\Console\RouteMatcher 3Zend\Console\Prompt 9Zend\Console\Exception 1Zend\Console\Color 5Zend\Console\Charset 5Zend\Console\Adapter %Zend\Console 1Zend\Config\Writer 1Zend\Config\Reader 7Zend\Config\Processor 7Zend\Config\Exception #Zend\Config 1Zend\Config\Writer 1Zend\Config\Reader 7Zend\Config\Processor 7Zend\Config\Exception #Zend\Config 1Zend\Config\Writer 1Zend\Config\Reader 7Zend\Config\Processor 7Zend\Config\Exception #Zend\Config
 1Zend\Config\Writer	 1Zend\Config\Reader 7Zend\Config\Processor 7Zend\Config\Exception #Zend\Config /Zend\Code\Scanner# IZend\Code\Reflection\Exception& OZend\Code\Reflection\DocBlock\Tag" GZend\Code\Reflection\DocBlock 5Zend\Code\Reflection   CZend\Code\Generic\Prototype" GZend\Code\Generator\Exception   s tW:j@#uW1wM)t[C$




i
V
?
!						d	>	lH rO$`?wT:mP4V9|^8~T0                             "l GZend\Db\Adapter\Driver\Sqlsrv!k EZend\Db\Adapter\Driver\Pgsql'j QZend\Db\Adapter\Driver\Pdo\Featurei AZend\Db\Adapter\Driver\Pdo(h SZend\Db\Adapter\Driver\Oci8\Feature g CZend\Db\Adapter\Driver\Oci8"f GZend\Db\Adapter\Driver\Mysqli"e GZend\Db\Adapter\Driver\IbmDb2#d IZend\Db\Adapter\Driver\Featurec 9Zend\Db\Adapter\Driverb +Zend\Db\Adaptera Zend\Db.` _Zend\Db\TableGateway\Feature\EventFeature!_ EZend\Db\TableGateway\Feature#^ IZend\Db\TableGateway\Exception] 5Zend\Db\TableGateway\ 7Zend\Db\Sql\Predicate'[ QZend\Db\Sql\Platform\SqlServer\Ddl#Z IZend\Db\Sql\Platform\SqlServer Y CZend\Db\Sql\Platform\Oracle#X IZend\Db\Sql\Platform\Mysql\DdlW AZend\Db\Sql\Platform\Mysql V CZend\Db\Sql\Platform\IbmDb2U 5Zend\Db\Sql\PlatformT 7Zend\Db\Sql\ExceptionS 7Zend\Db\Sql\Ddl\IndexR AZend\Db\Sql\Ddl\ConstraintQ 9Zend\Db\Sql\Ddl\ColumnP +Zend\Db\Sql\DdlO #Zend\Db\SqlN AZend\Db\RowGateway\Feature!M EZend\Db\RowGateway\ExceptionL 1Zend\Db\RowGateway K CZend\Db\ResultSet\ExceptionJ /Zend\Db\ResultSetI ;Zend\Db\Metadata\SourceH ;Zend\Db\Metadata\ObjectG -Zend\Db\MetadataF /Zend\Db\ExceptionE =Zend\Db\Adapter\ProfilerD =Zend\Db\Adapter\PlatformC ?Zend\Db\Adapter\Exception,B [Zend\Db\Adapter\Driver\Sqlsrv\Exception"A GZend\Db\Adapter\Driver\Sqlsrv!@ EZend\Db\Adapter\Driver\Pgsql'? QZend\Db\Adapter\Driver\Pdo\Feature> AZend\Db\Adapter\Driver\Pdo(= SZend\Db\Adapter\Driver\Oci8\Feature < CZend\Db\Adapter\Driver\Oci8"; GZend\Db\Adapter\Driver\Mysqli": GZend\Db\Adapter\Driver\IbmDb2#9 IZend\Db\Adapter\Driver\Feature8 9Zend\Db\Adapter\Driver7 +Zend\Db\Adapter.6 _Zend\Db\TableGateway\Feature\EventFeature!5 EZend\Db\TableGateway\Feature#4 IZend\Db\TableGateway\Exception3 5Zend\Db\TableGateway2 7Zend\Db\Sql\Predicate'1 QZend\Db\Sql\Platform\SqlServer\Ddl#0 IZend\Db\Sql\Platform\SqlServer / CZend\Db\Sql\Platform\Oracle#. IZend\Db\Sql\Platform\Mysql\Ddl- AZend\Db\Sql\Platform\Mysql , CZend\Db\Sql\Platform\IbmDb2+ 5Zend\Db\Sql\Platform* 7Zend\Db\Sql\Exception) 7Zend\Db\Sql\Ddl\Index( AZend\Db\Sql\Ddl\Constraint' 9Zend\Db\Sql\Ddl\Column& +Zend\Db\Sql\Ddl% #Zend\Db\Sql$ AZend\Db\RowGateway\Feature!# EZend\Db\RowGateway\Exception" 1Zend\Db\RowGateway ! CZend\Db\ResultSet\Exception  /Zend\Db\ResultSet ;Zend\Db\Metadata\Source ;Zend\Db\Metadata\Object -Zend\Db\Metadata /Zend\Db\Exception =Zend\Db\Adapter\Profiler =Zend\Db\Adapter\Platform ?Zend\Db\Adapter\Exception, [Zend\Db\Adapter\Driver\Sqlsrv\Exception" GZend\Db\Adapter\Driver\Sqlsrv! EZend\Db\Adapter\Driver\Pgsql' QZend\Db\Adapter\Driver\Pdo\Feature AZend\Db\Adapter\Driver\Pdo( SZend\Db\Adapter\Driver\Oci8\Feature  CZend\Db\Adapter\Driver\Oci8" GZend\Db\Adapter\Driver\Mysqli" GZend\Db\Adapter\Driver\IbmDb2# IZend\Db\Adapter\Driver\Feature 9Zend\Db\Adapter\Driver +Zend\Db\Adapter. _Zend\Db\TableGateway\Feature\EventFeature! EZend\Db\TableGateway\Feature#
 IZend\Db\TableGateway\Exception	 5Zend\Db\TableGateway 7Zend\Db\Sql\Predicate' QZend\Db\Sql\Platform\SqlServer\Ddl# IZend\Db\Sql\Platform\SqlServer  CZend\Db\Sql\Platform\Oracle# IZend\Db\Sql\Platform\Mysql\Ddl AZend\Db\Sql\Platform\Mysql  CZend\Db\Sql\Platform\IbmDb2 5Zend\Db\Sql\Platform  7Zend\Db\Sql\Exception 7Zend\Db\Sql\Ddl\Index~ AZend\Db\Sql\Ddl\Constraint} 9Zend\Db\Sql\Ddl\Column| +Zend\Db\Sql\Ddl{ #Zend\Db\Sqlz AZend\Db\RowGateway\Feature   u pW? eR;`:hDzaC4





v
Y
@
							e	U	<	"	{X8bD+X4nGl>lJV%oC                                           #a IZend\Feed\Writer\Renderer\Feed+)` UZend\Feed\Writer\Renderer\Entry\Atom+$_ KZend\Feed\Writer\Renderer\Entry+^ ?Zend\Feed\Writer\Renderer+6] oZend\Feed\Writer\Extension\WellFormedWeb\Renderer+2\ gZend\Feed\Writer\Extension\Threading\Renderer+.[ _Zend\Feed\Writer\Extension\Slash\Renderer+/Z aZend\Feed\Writer\Extension\ITunes\Renderer+&Y OZend\Feed\Writer\Extension\ITunes+3X iZend\Feed\Writer\Extension\DublinCore\Renderer+0W cZend\Feed\Writer\Extension\Content\Renderer+-V ]Zend\Feed\Writer\Extension\Atom\Renderer+U AZend\Feed\Writer\Extension+T AZend\Feed\Writer\Exception+S -Zend\Feed\Writer+R AZend\Feed\Reader\Feed\Atom+Q 7Zend\Feed\Reader\Feed+-P ]Zend\Feed\Reader\Extension\WellFormedWeb+&O OZend\Feed\Reader\Extension\Thread++N YZend\Feed\Reader\Extension\Syndication+%M MZend\Feed\Reader\Extension\Slash+'L QZend\Feed\Reader\Extension\Podcast+*K WZend\Feed\Reader\Extension\DublinCore+/J aZend\Feed\Reader\Extension\CreativeCommons+'I QZend\Feed\Reader\Extension\Content+$H KZend\Feed\Reader\Extension\Atom+G AZend\Feed\Reader\Extension+F AZend\Feed\Reader\Exception+E 9Zend\Feed\Reader\Entry+ D CZend\Feed\Reader\Collection+C -Zend\Feed\Reader+&B OZend\Feed\PubSubHubbub\Subscriber+!A EZend\Feed\PubSubHubbub\Model+%@ MZend\Feed\PubSubHubbub\Exception+? 9Zend\Feed\PubSubHubbub+> 3Zend\Feed\Exception+= Zend\Feed+< 9Zend\EventManager\Test*; =Zend\EventManager\Filter* : CZend\EventManager\Exception*9 /Zend\EventManager*8 9Zend\EventManager\Test)7 =Zend\EventManager\Filter) 6 CZend\EventManager\Exception)5 /Zend\EventManager)4 9Zend\EventManager\Test(3 =Zend\EventManager\Filter( 2 CZend\EventManager\Exception(1 /Zend\EventManager(0 =Zend\EventManager\Filter' / CZend\EventManager\Exception'. /Zend\EventManager'- =Zend\EventManager\Filter& , CZend\EventManager\Exception&+ /Zend\EventManager&* 9Zend\Escaper\Exception%) %Zend\Escaper%( 1Zend\Dom\Exception$' /Zend\Dom\Document$& Zend\Dom$% 1Zend\Dom\Exception#$ /Zend\Dom\Document## Zend\Dom#" -Zend\Di\Resolver"! /Zend\Di\Exception""  GZend\Di\Definition\Reflection" 1Zend\Di\Definition"% MZend\Di\Container\ServiceManager" /Zend\Di\Container" 7Zend\Di\CodeGenerator" Zend\Di" 9Zend\Di\ServiceLocator! /Zend\Di\Exception! +Zend\Di\Display! AZend\Di\Definition\Builder!" GZend\Di\Definition\Annotation! 1Zend\Di\Definition! Zend\Di! 9Zend\Di\ServiceLocator  /Zend\Di\Exception  +Zend\Di\Display  AZend\Di\Definition\Builder " GZend\Di\Definition\Annotation  1Zend\Di\Definition  Zend\Di  !Zend\Debug. _Zend\Db\TableGateway\Feature\EventFeature!
 EZend\Db\TableGateway\Feature#	 IZend\Db\TableGateway\Exception 5Zend\Db\TableGateway 7Zend\Db\Sql\Predicate' QZend\Db\Sql\Platform\SqlServer\Ddl# IZend\Db\Sql\Platform\SqlServer  CZend\Db\Sql\Platform\Oracle# IZend\Db\Sql\Platform\Mysql\Ddl AZend\Db\Sql\Platform\Mysql  CZend\Db\Sql\Platform\IbmDb2  5Zend\Db\Sql\Platform 7Zend\Db\Sql\Exception~ 7Zend\Db\Sql\Ddl\Index} AZend\Db\Sql\Ddl\Constraint| 9Zend\Db\Sql\Ddl\Column{ +Zend\Db\Sql\Ddlz #Zend\Db\Sqly AZend\Db\RowGateway\Feature!x EZend\Db\RowGateway\Exceptionw 1Zend\Db\RowGateway v CZend\Db\ResultSet\Exceptionu /Zend\Db\ResultSett ;Zend\Db\Metadata\Sources ;Zend\Db\Metadata\Objectr -Zend\Db\Metadataq /Zend\Db\Exceptionp =Zend\Db\Adapter\Profilero =Zend\Db\Adapter\Platformn ?Zend\Db\Adapter\Exception,m [Zend\Db\Adapter\Driver\Sqlsrv\Exception   d  nF"~\5Z,w_=Y'



g
@
					y	Q	-	g@e7jH&d2rK\8rK!pB                          -E ]Zend\Feed\Reader\Extension\WellFormedWeb.&D OZend\Feed\Reader\Extension\Thread.+C YZend\Feed\Reader\Extension\Syndication.%B MZend\Feed\Reader\Extension\Slash.'A QZend\Feed\Reader\Extension\Podcast.*@ WZend\Feed\Reader\Extension\DublinCore./? aZend\Feed\Reader\Extension\CreativeCommons.'> QZend\Feed\Reader\Extension\Content.$= KZend\Feed\Reader\Extension\Atom.< AZend\Feed\Reader\Extension.; AZend\Feed\Reader\Exception.: 9Zend\Feed\Reader\Entry. 9 CZend\Feed\Reader\Collection.8 -Zend\Feed\Reader.&7 OZend\Feed\PubSubHubbub\Subscriber.!6 EZend\Feed\PubSubHubbub\Model.%5 MZend\Feed\PubSubHubbub\Exception.4 9Zend\Feed\PubSubHubbub.3 3Zend\Feed\Exception.2 Zend\Feed.(1 SZend\Feed\Writer\Renderer\Feed\Atom-#0 IZend\Feed\Writer\Renderer\Feed-)/ UZend\Feed\Writer\Renderer\Entry\Atom-$. KZend\Feed\Writer\Renderer\Entry-- ?Zend\Feed\Writer\Renderer-6, oZend\Feed\Writer\Extension\WellFormedWeb\Renderer-2+ gZend\Feed\Writer\Extension\Threading\Renderer-.* _Zend\Feed\Writer\Extension\Slash\Renderer-/) aZend\Feed\Writer\Extension\ITunes\Renderer-&( OZend\Feed\Writer\Extension\ITunes-3' iZend\Feed\Writer\Extension\DublinCore\Renderer-0& cZend\Feed\Writer\Extension\Content\Renderer--% ]Zend\Feed\Writer\Extension\Atom\Renderer-$ AZend\Feed\Writer\Extension-# AZend\Feed\Writer\Exception-" -Zend\Feed\Writer-! 7Zend\Feed\Reader\Http-  AZend\Feed\Reader\Feed\Atom- 7Zend\Feed\Reader\Feed-- ]Zend\Feed\Reader\Extension\WellFormedWeb-& OZend\Feed\Reader\Extension\Thread-+ YZend\Feed\Reader\Extension\Syndication-% MZend\Feed\Reader\Extension\Slash-' QZend\Feed\Reader\Extension\Podcast-* WZend\Feed\Reader\Extension\DublinCore-/ aZend\Feed\Reader\Extension\CreativeCommons-' QZend\Feed\Reader\Extension\Content-$ KZend\Feed\Reader\Extension\Atom- AZend\Feed\Reader\Extension- AZend\Feed\Reader\Exception- 9Zend\Feed\Reader\Entry-  CZend\Feed\Reader\Collection- -Zend\Feed\Reader-& OZend\Feed\PubSubHubbub\Subscriber-! EZend\Feed\PubSubHubbub\Model-% MZend\Feed\PubSubHubbub\Exception- 9Zend\Feed\PubSubHubbub- 3Zend\Feed\Exception- Zend\Feed-(
 SZend\Feed\Writer\Renderer\Feed\Atom,#	 IZend\Feed\Writer\Renderer\Feed,) UZend\Feed\Writer\Renderer\Entry\Atom,$ KZend\Feed\Writer\Renderer\Entry, ?Zend\Feed\Writer\Renderer,6 oZend\Feed\Writer\Extension\WellFormedWeb\Renderer,2 gZend\Feed\Writer\Extension\Threading\Renderer,. _Zend\Feed\Writer\Extension\Slash\Renderer,/ aZend\Feed\Writer\Extension\ITunes\Renderer,& OZend\Feed\Writer\Extension\ITunes,3  iZend\Feed\Writer\Extension\DublinCore\Renderer,0 cZend\Feed\Writer\Extension\Content\Renderer,-~ ]Zend\Feed\Writer\Extension\Atom\Renderer,} AZend\Feed\Writer\Extension,| AZend\Feed\Writer\Exception,{ -Zend\Feed\Writer,z 7Zend\Feed\Reader\Http,y AZend\Feed\Reader\Feed\Atom,x 7Zend\Feed\Reader\Feed,-w ]Zend\Feed\Reader\Extension\WellFormedWeb,&v OZend\Feed\Reader\Extension\Thread,+u YZend\Feed\Reader\Extension\Syndication,%t MZend\Feed\Reader\Extension\Slash,'s QZend\Feed\Reader\Extension\Podcast,*r WZend\Feed\Reader\Extension\DublinCore,/q aZend\Feed\Reader\Extension\CreativeCommons,'p QZend\Feed\Reader\Extension\Content,$o KZend\Feed\Reader\Extension\Atom,n AZend\Feed\Reader\Extension,m AZend\Feed\Reader\Exception,l 9Zend\Feed\Reader\Entry, k CZend\Feed\Reader\Collection,j -Zend\Feed\Reader,&i OZend\Feed\PubSubHubbub\Subscriber,!h EZend\Feed\PubSubHubbub\Model,%g MZend\Feed\PubSubHubbub\Exception,f 9Zend\Feed\PubSubHubbub,e 3Zend\Feed\Exception,d Zend\Feed,c 7Zend\Feed\Reader\Http+(b SZend\Feed\Writer\Renderer\Feed\Atom+   ~ jHT#mAdS8pL9





f
K
.
						w	_	G	'	nL;q`D+iP5uZ6 a?$qQ'bH7jH(          C 1Zend\Http\Response<B =Zend\Http\PhpEnvironment<A AZend\Http\Header\Exception<+@ YZend\Http\Header\Accept\FieldValuePart<? -Zend\Http\Header<> 3Zend\Http\Exception<= AZend\Http\Client\Exception<'< QZend\Http\Client\Adapter\Exception<; =Zend\Http\Client\Adapter<: Zend\Http<9 1Zend\Http\Response;8 =Zend\Http\PhpEnvironment;7 AZend\Http\Header\Exception;+6 YZend\Http\Header\Accept\FieldValuePart;5 -Zend\Http\Header;4 3Zend\Http\Exception;3 AZend\Http\Client\Exception;'2 QZend\Http\Client\Adapter\Exception;1 =Zend\Http\Client\Adapter;0 Zend\Http;/ 1Zend\Http\Response:. =Zend\Http\PhpEnvironment:- AZend\Http\Header\Exception:+, YZend\Http\Header\Accept\FieldValuePart:+ -Zend\Http\Header:* 3Zend\Http\Exception:) AZend\Http\Client\Exception:'( QZend\Http\Client\Adapter\Exception:' =Zend\Http\Client\Adapter:& Zend\Http:% AZend\Form\View\Helper\File9"$ GZend\Form\View\Helper\Captcha9# 7Zend\Form\View\Helper9" )Zend\Form\View9!! EZend\Form\FormElementManager9  3Zend\Form\Exception9 /Zend\Form\Element9 5Zend\Form\Annotation9 Zend\Form9 AZend\Form\View\Helper\File8" GZend\Form\View\Helper\Captcha8 7Zend\Form\View\Helper8 )Zend\Form\View8 3Zend\Form\Exception8 /Zend\Form\Element8 5Zend\Form\Annotation8 Zend\Form8 AZend\Form\View\Helper\File7" GZend\Form\View\Helper\Captcha7 7Zend\Form\View\Helper7 )Zend\Form\View7 3Zend\Form\Exception7 /Zend\Form\Element7 5Zend\Form\Annotation7 Zend\Form7 AZend\Form\View\Helper\File6" GZend\Form\View\Helper\Captcha6
 7Zend\Form\View\Helper6	 )Zend\Form\View6 3Zend\Form\Exception6 /Zend\Form\Element6 5Zend\Form\Annotation6 Zend\Form6 AZend\Form\View\Helper\File5" GZend\Form\View\Helper\Captcha5 7Zend\Form\View\Helper5 )Zend\Form\View5  3Zend\Form\Exception5 /Zend\Form\Element5~ 5Zend\Form\Annotation5} Zend\Form5| =Zend\Filter\Word\Service4{ -Zend\Filter\Word4z -Zend\Filter\File4y 7Zend\Filter\Exception4x 3Zend\Filter\Encrypt4w 5Zend\Filter\Compress4v #Zend\Filter4u =Zend\Filter\Word\Service3t -Zend\Filter\Word3s -Zend\Filter\File3r 7Zend\Filter\Exception3q 3Zend\Filter\Encrypt3p 5Zend\Filter\Compress3o #Zend\Filter3n =Zend\Filter\Word\Service2m -Zend\Filter\Word2l -Zend\Filter\File2k 7Zend\Filter\Exception2j 3Zend\Filter\Encrypt2i 5Zend\Filter\Compress2h #Zend\Filter2!g EZend\File\Transfer\Exception1f AZend\File\Transfer\Adapter1e 1Zend\File\Transfer1d 3Zend\File\Exception1c Zend\File1!b EZend\File\Transfer\Exception0a AZend\File\Transfer\Adapter0` 1Zend\File\Transfer0_ 3Zend\File\Exception0^ Zend\File0!] EZend\File\Transfer\Exception/\ AZend\File\Transfer\Adapter/[ 1Zend\File\Transfer/Z 3Zend\File\Exception/Y Zend\File/(X SZend\Feed\Writer\Renderer\Feed\Atom.#W IZend\Feed\Writer\Renderer\Feed.)V UZend\Feed\Writer\Renderer\Entry\Atom.$U KZend\Feed\Writer\Renderer\Entry.T ?Zend\Feed\Writer\Renderer.6S oZend\Feed\Writer\Extension\WellFormedWeb\Renderer.2R gZend\Feed\Writer\Extension\Threading\Renderer..Q _Zend\Feed\Writer\Extension\Slash\Renderer./P aZend\Feed\Writer\Extension\ITunes\Renderer.&O OZend\Feed\Writer\Extension\ITunes.3N iZend\Feed\Writer\Extension\DublinCore\Renderer.0M cZend\Feed\Writer\Extension\Content\Renderer.-L ]Zend\Feed\Writer\Extension\Atom\Renderer.K AZend\Feed\Writer\Extension.J AZend\Feed\Writer\Exception.I -Zend\Feed\Writer.H 7Zend\Feed\Reader\Http.G AZend\Feed\Reader\Feed\Atom.F 7Zend\Feed\Reader\Feed.   . rO4lQ;x]G*|kP8uS3






p
Y
?
%
						s	Y	B	!	vU6&jZ@)nS;{[:yhM5uU4sbG/oO.                      K ?Zend\Mail\Storage\MessageOJ =Zend\Mail\Storage\FolderO I CZend\Mail\Storage\ExceptionOH /Zend\Mail\StorageO!G EZend\Mail\Protocol\Smtp\AuthO!F EZend\Mail\Protocol\ExceptionOE 1Zend\Mail\ProtocolOD AZend\Mail\Header\ExceptionOC -Zend\Mail\HeaderOB 3Zend\Mail\ExceptionOA Zend\MailO@ /Zend\Mail\AddressN"? GZend\Mail\Transport\ExceptionN> 3Zend\Mail\TransportN= AZend\Mail\Storage\WritableN%< MZend\Mail\Storage\Part\ExceptionN; 9Zend\Mail\Storage\PartN: ?Zend\Mail\Storage\MessageN9 =Zend\Mail\Storage\FolderN 8 CZend\Mail\Storage\ExceptionN7 /Zend\Mail\StorageN!6 EZend\Mail\Protocol\Smtp\AuthN!5 EZend\Mail\Protocol\ExceptionN4 1Zend\Mail\ProtocolN3 AZend\Mail\Header\ExceptionN2 -Zend\Mail\HeaderN1 3Zend\Mail\ExceptionN0 Zend\MailN/ /Zend\Mail\AddressM". GZend\Mail\Transport\ExceptionM- 3Zend\Mail\TransportM, AZend\Mail\Storage\WritableM%+ MZend\Mail\Storage\Part\ExceptionM* 9Zend\Mail\Storage\PartM) ?Zend\Mail\Storage\MessageM( =Zend\Mail\Storage\FolderM ' CZend\Mail\Storage\ExceptionM& /Zend\Mail\StorageM!% EZend\Mail\Protocol\Smtp\AuthM!$ EZend\Mail\Protocol\ExceptionM# 1Zend\Mail\ProtocolM" AZend\Mail\Header\ExceptionM! -Zend\Mail\HeaderM  3Zend\Mail\ExceptionM Zend\MailM ;Zend\Log\Writer\FirePhpL ;Zend\Log\Writer\FactoryL ?Zend\Log\Writer\ChromePhpL +Zend\Log\WriterL 1Zend\Log\ProcessorL 1Zend\Log\FormatterL +Zend\Log\FilterL 1Zend\Log\ExceptionL Zend\LogL ;Zend\Log\Writer\FirePhpK ?Zend\Log\Writer\ChromePhpK +Zend\Log\WriterK 1Zend\Log\ProcessorK 1Zend\Log\FormatterK +Zend\Log\FilterK 1Zend\Log\ExceptionK Zend\LogK ;Zend\Log\Writer\FirePhpJ ?Zend\Log\Writer\ChromePhpJ +Zend\Log\WriterJ
 1Zend\Log\ProcessorJ	 1Zend\Log\FormatterJ +Zend\Log\FilterJ 1Zend\Log\ExceptionJ Zend\LogJ ;Zend\Log\Writer\FirePhpI ?Zend\Log\Writer\ChromePhpI +Zend\Log\WriterI 1Zend\Log\ProcessorI 1Zend\Log\FormatterI  +Zend\Log\FilterI 1Zend\Log\ExceptionI~ Zend\LogI} ;Zend\Log\Writer\FirePhpH| ?Zend\Log\Writer\ChromePhpH{ +Zend\Log\WriterHz 1Zend\Log\ProcessorHy 1Zend\Log\FormatterHx +Zend\Log\FilterHw 1Zend\Log\ExceptionHv Zend\LogHu 7Zend\Loader\ExceptionGt #Zend\LoaderGs 3Zend\Json\ExceptionFr Zend\JsonFq 5Zend\Json\Server\SmdEp ?Zend\Json\Server\ResponseEo =Zend\Json\Server\RequestEn AZend\Json\Server\ExceptionEm -Zend\Json\ServerEl 3Zend\Json\ExceptionEk Zend\JsonEj 5Zend\Json\Server\SmdDi ?Zend\Json\Server\ResponseDh =Zend\Json\Server\RequestDg AZend\Json\Server\ExceptionDf -Zend\Json\ServerDe 3Zend\Json\ExceptionDd Zend\JsonDc AZend\InputFilter\ExceptionCb -Zend\InputFilterCa AZend\InputFilter\ExceptionB` -Zend\InputFilterB_ AZend\InputFilter\ExceptionA^ -Zend\InputFilterA] 7Zend\I18n\View\Helper@\ )Zend\I18n\View@[ 3Zend\I18n\Validator@ Z CZend\I18n\Translator\Plural@ Y CZend\I18n\Translator\Loader@X 5Zend\I18n\Translator@W -Zend\I18n\Filter@V 3Zend\I18n\Exception@U Zend\I18n@T 7Zend\I18n\View\Helper?S )Zend\I18n\View?R 3Zend\I18n\Validator? Q CZend\I18n\Translator\Plural? P CZend\I18n\Translator\Loader?O 5Zend\I18n\Translator?N -Zend\I18n\Filter?M 3Zend\I18n\Exception?L 7Zend\I18n\View\Helper>K )Zend\I18n\View>J 3Zend\I18n\Validator> I CZend\I18n\Translator\Plural> H CZend\I18n\Translator\Loader>G 5Zend\I18n\Translator>F -Zend\I18n\Filter>E 3Zend\I18n\Exception>D 5Zend\I18n\Translator=    }X?.w^;wR9(~b>nS;*




y
\
K
0

					w	J	(	x^:g:rS<|lQ/`D,iO:{^D4|bR7       N AZend\Mvc\Controller\PluginaM 3Zend\Mvc\ControlleraL Zend\MvcaK 1Zend\Mvc\View\Http`J -Zend\Mvc\Service`I ;Zend\Mvc\ResponseSender`H 1Zend\Mvc\Exception`'G QZend\Mvc\Controller\Plugin\Service`F AZend\Mvc\Controller\Plugin`E 3Zend\Mvc\Controller`D Zend\Mvc`C 1Zend\Mvc\View\Http_B 7Zend\Mvc\View\Console_A 'Zend\Mvc\View_@ -Zend\Mvc\Service_? 5Zend\Mvc\Router\Http_> ?Zend\Mvc\Router\Exception_= ;Zend\Mvc\Router\Console_< +Zend\Mvc\Router_; ;Zend\Mvc\ResponseSender_: 'Zend\Mvc\I18n_9 1Zend\Mvc\Exception_'8 QZend\Mvc\Controller\Plugin\Service_7 AZend\Mvc\Controller\Plugin_6 3Zend\Mvc\Controller_5 Zend\Mvc_4 1Zend\Mvc\View\Http^3 7Zend\Mvc\View\Console^2 'Zend\Mvc\View^1 -Zend\Mvc\Service^0 5Zend\Mvc\Router\Http^/ ?Zend\Mvc\Router\Exception^. ;Zend\Mvc\Router\Console^- +Zend\Mvc\Router^, ;Zend\Mvc\ResponseSender^+ 'Zend\Mvc\I18n^* 1Zend\Mvc\Exception^') QZend\Mvc\Controller\Plugin\Service^( AZend\Mvc\Controller\Plugin^' 3Zend\Mvc\Controller^& Zend\Mvc^% 1Zend\Mvc\View\Http]$ 7Zend\Mvc\View\Console]# 'Zend\Mvc\View]" -Zend\Mvc\Service]! 5Zend\Mvc\Router\Http]  ?Zend\Mvc\Router\Exception] ;Zend\Mvc\Router\Console] +Zend\Mvc\Router] ;Zend\Mvc\ResponseSender] 'Zend\Mvc\I18n] 1Zend\Mvc\Exception]' QZend\Mvc\Controller\Plugin\Service] AZend\Mvc\Controller\Plugin] 3Zend\Mvc\Controller] Zend\Mvc] AZend\ModuleManager\Feature\* WZend\ModuleManager\Listener\Exception\  CZend\ModuleManager\Listener\! EZend\ModuleManager\Exception\ 1Zend\ModuleManager\ AZend\ModuleManager\Feature[* WZend\ModuleManager\Listener\Exception[  CZend\ModuleManager\Listener[! EZend\ModuleManager\Exception[ 1Zend\ModuleManager[ AZend\ModuleManager\FeatureZ* WZend\ModuleManager\Listener\ExceptionZ 
 CZend\ModuleManager\ListenerZ!	 EZend\ModuleManager\ExceptionZ 1Zend\ModuleManagerZ AZend\ModuleManager\FeatureY* WZend\ModuleManager\Listener\ExceptionY  CZend\ModuleManager\ListenerY! EZend\ModuleManager\ExceptionY 1Zend\ModuleManagerY 3Zend\Mime\ExceptionX Zend\MimeX  3Zend\Mime\ExceptionW Zend\MimeW~ 3Zend\Mime\ExceptionV} Zend\MimeV| 7Zend\Memory\ExceptionU{ 7Zend\Memory\ContainerUz #Zend\MemoryUy 3Zend\Math\ExceptionT#x IZend\Math\BigInteger\ExceptionT!w EZend\Math\BigInteger\AdapterTv 5Zend\Math\BigIntegerTu Zend\MathTt -Zend\Math\SourceSs 3Zend\Math\ExceptionS#r IZend\Math\BigInteger\ExceptionS!q EZend\Math\BigInteger\AdapterSp 5Zend\Math\BigIntegerSo Zend\MathSn -Zend\Math\SourceRm 3Zend\Math\ExceptionR#l IZend\Math\BigInteger\ExceptionR!k EZend\Math\BigInteger\AdapterRj 5Zend\Math\BigIntegerRi Zend\MathRh -Zend\Math\SourceQg 3Zend\Math\ExceptionQ#f IZend\Math\BigInteger\ExceptionQ!e EZend\Math\BigInteger\AdapterQd 5Zend\Math\BigIntegerQc Zend\MathQb /Zend\Mail\AddressP"a GZend\Mail\Transport\ExceptionP` 3Zend\Mail\TransportP_ AZend\Mail\Storage\WritableP%^ MZend\Mail\Storage\Part\ExceptionP] 9Zend\Mail\Storage\PartP\ ?Zend\Mail\Storage\MessageP[ =Zend\Mail\Storage\FolderP Z CZend\Mail\Storage\ExceptionPY /Zend\Mail\StorageP!X EZend\Mail\Protocol\Smtp\AuthP!W EZend\Mail\Protocol\ExceptionPV 1Zend\Mail\ProtocolPU AZend\Mail\Header\ExceptionPT -Zend\Mail\HeaderPS 3Zend\Mail\ExceptionPR Zend\MailPQ /Zend\Mail\AddressO"P GZend\Mail\Transport\ExceptionOO 3Zend\Mail\TransportON AZend\Mail\Storage\WritableO%M MZend\Mail\Storage\Part\ExceptionOL 9Zend\Mail\Storage\PartO   y kT3iM6jK/hR4mE




~
X
8
				{	V	5	xW:hI2eD-]J-e="`?$]:nG'                  G 3Zend\ServiceManagerzF =Zend\ServiceManager\Testy$E KZend\ServiceManager\InitializeryD ?Zend\ServiceManager\Proxyy C CZend\ServiceManager\Factoryy"B GZend\ServiceManager\ExceptionyA 3Zend\ServiceManagery$@ KZend\ServiceManager\Initializerx? ?Zend\ServiceManager\Proxyx > CZend\ServiceManager\Factoryx"= GZend\ServiceManager\Exceptionx< 3Zend\ServiceManagerx; ?Zend\ServiceManager\Proxyw : CZend\ServiceManager\Factoryw"9 GZend\ServiceManager\Exceptionw8 9Zend\ServiceManager\Diw7 3Zend\ServiceManagerw6 ?Zend\ServiceManager\Proxyv"5 GZend\ServiceManager\Exceptionv4 9Zend\ServiceManager\Div3 3Zend\ServiceManagerv2 ?Zend\ServiceManager\Proxyu"1 GZend\ServiceManager\Exceptionu0 9Zend\ServiceManager\Diu/ 3Zend\ServiceManageru%. MZend\Server\Reflection\Exceptiont- 9Zend\Server\Reflectiont, 1Zend\Server\Methodt+ 7Zend\Server\Exceptiont* #Zend\Servert%) MZend\Server\Reflection\Exceptions( 9Zend\Server\Reflections' 1Zend\Server\Methods& 7Zend\Server\Exceptions% #Zend\Servers%$ MZend\Server\Reflection\Exceptionr# 9Zend\Server\Reflectionr" 1Zend\Server\Methodr! 7Zend\Server\Exceptionr  #Zend\Serverr ?Zend\Serializer\Exceptionq ;Zend\Serializer\Adapterq +Zend\Serializerq ?Zend\Serializer\Exceptionp ;Zend\Serializer\Adapterp +Zend\Serializerp ?Zend\Serializer\Exceptiono ;Zend\Serializer\Adaptero +Zend\Serializero ?Zend\Serializer\Exceptionn ;Zend\Serializer\Adaptern +Zend\Serializern ;Zend\ProgressBar\Uploadm AZend\ProgressBar\Exceptionm' QZend\ProgressBar\Adapter\Exceptionm =Zend\ProgressBar\Adapterm -Zend\ProgressBarm$ KZend\Permissions\Rbac\Exceptionl$ KZend\Permissions\Rbac\Assertionl 7Zend\Permissions\Rbacl ?Zend\Permissions\Acl\Rolek"
 GZend\Permissions\Acl\Resourcek#	 IZend\Permissions\Acl\Exceptionk- ]Zend\Permissions\Acl\Assertion\Exceptionk# IZend\Permissions\Acl\Assertionk 5Zend\Permissions\Aclk ?Zend\Permissions\Acl\Rolej" GZend\Permissions\Acl\Resourcej# IZend\Permissions\Acl\Exceptionj- ]Zend\Permissions\Acl\Assertion\Exceptionj# IZend\Permissions\Acl\Assertionj  5Zend\Permissions\Aclj" GZend\Paginator\ScrollingStylei~ =Zend\Paginator\Exceptioni#} IZend\Paginator\Adapter\Servicei%| MZend\Paginator\Adapter\Exceptioni{ 9Zend\Paginator\Adapteriz )Zend\Paginatori"y GZend\Paginator\ScrollingStylehx =Zend\Paginator\Exceptionh#w IZend\Paginator\Adapter\Serviceh%v MZend\Paginator\Adapter\Exceptionhu 9Zend\Paginator\Adapterht )Zend\Paginatorh"s GZend\Paginator\ScrollingStylegr =Zend\Paginator\Exceptiong#q IZend\Paginator\Adapter\Serviceg%p MZend\Paginator\Adapter\Exceptiongo 9Zend\Paginator\Adaptergn )Zend\Paginatorg"m GZend\Paginator\ScrollingStylefl =Zend\Paginator\Exceptionf#k IZend\Paginator\Adapter\Servicef%j MZend\Paginator\Adapter\Exceptionfi 9Zend\Paginator\Adapterfh )Zend\Paginatorfg 5Zend\Navigation\Viewef ;Zend\Navigation\Serviceee 5Zend\Navigation\Pageed ?Zend\Navigation\Exceptionec +Zend\Navigationeb 5Zend\Navigation\Viewda ;Zend\Navigation\Serviced` 5Zend\Navigation\Paged_ ?Zend\Navigation\Exceptiond^ +Zend\Navigationd] 5Zend\Navigation\Viewc\ ;Zend\Navigation\Servicec[ 5Zend\Navigation\PagecZ ?Zend\Navigation\ExceptioncY +Zend\NavigationcX 5Zend\Navigation\ViewbW ;Zend\Navigation\ServicebV 5Zend\Navigation\PagebU ?Zend\Navigation\ExceptionbT +Zend\NavigationbS 1Zend\Mvc\View\HttpaR -Zend\Mvc\ServiceaQ ;Zend\Mvc\ResponseSenderaP 1Zend\Mvc\Exceptiona'O QZend\Mvc\Controller\Plugin\Servicea    lL%wV6fJ,iU:wY9




k
R
'
					k	Z	C	"hM(t]K/iP-oU4fJ.|`D%vZ;pQ/                   H Zend\View G ?Zend\Validator\Translator F 9Zend\Validator\Sitemap E 3Zend\Validator\Isbn D 3Zend\Validator\File C =Zend\Validator\Exception B /Zend\Validator\Db A 9Zend\Validator\Barcode @ )Zend\Validator ? ?Zend\Validator\Translator > 9Zend\Validator\Sitemap = 3Zend\Validator\Isbn < 3Zend\Validator\File ; =Zend\Validator\Exception : /Zend\Validator\Db 9 9Zend\Validator\Barcode 8 )Zend\Validator 7 ?Zend\Validator\Translator 6 9Zend\Validator\Sitemap 5 3Zend\Validator\Isbn 4 3Zend\Validator\File 3 =Zend\Validator\Exception 2 /Zend\Validator\Db 1 9Zend\Validator\Barcode 0 )Zend\Validator / ?Zend\Validator\Translator . 9Zend\Validator\Sitemap - 3Zend\Validator\Isbn , 3Zend\Validator\File + =Zend\Validator\Exception * /Zend\Validator\Db ) 9Zend\Validator\Barcode ( )Zend\Validator ' ?Zend\Validator\Translator & 9Zend\Validator\Sitemap % 3Zend\Validator\File $ =Zend\Validator\Exception # /Zend\Validator\Db " 9Zend\Validator\Barcode ! )Zend\Validator   1Zend\Uri\Exception  Zend\Uri  ?Zend\Text\Table\Exception  ?Zend\Text\Table\Decorator  +Zend\Text\Table   AZend\Text\Figlet\Exception  -Zend\Text\Figlet  3Zend\Text\Exception  Zend\Text  ?Zend\Text\Table\Exception  ?Zend\Text\Table\Decorator  +Zend\Text\Table   AZend\Text\Figlet\Exception  -Zend\Text\Figlet  3Zend\Text\Exception  Zend\Text  )Zend\Test\Util " EZend\Test\PHPUnit\Controller  )Zend\Test\Util " EZend\Test\PHPUnit\Controller  )Zend\Test\Util " EZend\Test\PHPUnit\Controller 
 )Zend\Test\Util "	 EZend\Test\PHPUnit\Controller  1Zend\Tag\Exception ( QZend\Tag\Cloud\Decorator\Exception  =Zend\Tag\Cloud\Decorator  )Zend\Tag\Cloud  Zend\Tag  1Zend\Tag\Exception ( QZend\Tag\Cloud\Decorator\Exception  =Zend\Tag\Cloud\Decorator   )Zend\Tag\Cloud  Zend\Tag (~ QZend\Soap\Wsdl\ComplexTypeStrategy } -Zend\Soap\Server | 3Zend\Soap\Exception { -Zend\Soap\Client .z ]Zend\Soap\AutoDiscover\DiscoveryStrategy y Zend\Soap (x QZend\Soap\Wsdl\ComplexTypeStrategy w -Zend\Soap\Server v 3Zend\Soap\Exception u -Zend\Soap\Client .t ]Zend\Soap\AutoDiscover\DiscoveryStrategy s Zend\Soap r 9Zend\Session\Validatorq 5Zend\Session\Storagep 5Zend\Session\Serviceo =Zend\Session\SaveHandlern 9Zend\Session\Exceptionm 3Zend\Session\Configl %Zend\Sessionk 9Zend\Session\Validator~j 5Zend\Session\Storage~i 5Zend\Session\Service~h =Zend\Session\SaveHandler~g 9Zend\Session\Exception~f 3Zend\Session\Config~e %Zend\Session~d 9Zend\Session\Validator}c 5Zend\Session\Storage}b 5Zend\Session\Service}a =Zend\Session\SaveHandler}` 9Zend\Session\Exception}_ 3Zend\Session\Config}^ %Zend\Session}] 9Zend\Session\Validator|\ 5Zend\Session\Storage|[ 5Zend\Session\Service|Z =Zend\Session\SaveHandler|Y 9Zend\Session\Exception|X 3Zend\Session\Config|W %Zend\Session|V =Zend\ServiceManager\Test{$U KZend\ServiceManager\Initializer{T =Zend\ServiceManager\Tool{S ?Zend\ServiceManager\Proxy{ R CZend\ServiceManager\Factory{"Q GZend\ServiceManager\Exception{(P SZend\ServiceManager\AbstractFactory{O 3Zend\ServiceManager{N =Zend\ServiceManager\Testz$M KZend\ServiceManager\InitializerzL =Zend\ServiceManager\ToolzK ?Zend\ServiceManager\Proxyz J CZend\ServiceManager\Factoryz"I GZend\ServiceManager\Exceptionz(H SZend\ServiceManager\AbstractFactoryz   x Y4{iM4nM5|X+hM;



o
@

						o	N	*pU:sV;lP3nQ*bDpL&dP1k?                                 #@ GZend\Stdlib\Hydrator\Strategy )? SZend\Stdlib\Hydrator\NamingStrategy #> GZend\Stdlib\Hydrator\Iterator != CZend\Stdlib\Hydrator\Filter $< IZend\Stdlib\Hydrator\Aggregate ; 5Zend\Stdlib\Hydrator : /Zend\Stdlib\Guard 9 7Zend\Stdlib\Exception 8 9Zend\Stdlib\ArrayUtils 7 #Zend\Stdlib 6 7Zend\Stdlib\Extractor 5 ?Zend\Stdlib\StringWrapper -4 [Zend\Stdlib\Hydrator\Strategy\Exception #3 GZend\Stdlib\Hydrator\Strategy )2 SZend\Stdlib\Hydrator\NamingStrategy #1 GZend\Stdlib\Hydrator\Iterator !0 CZend\Stdlib\Hydrator\Filter $/ IZend\Stdlib\Hydrator\Aggregate . 5Zend\Stdlib\Hydrator - /Zend\Stdlib\Guard , 7Zend\Stdlib\Exception + 9Zend\Stdlib\ArrayUtils * #Zend\Stdlib ") EZend\Stdlib\JsonSerializable ( 7Zend\Stdlib\Extractor ' ?Zend\Stdlib\StringWrapper -& [Zend\Stdlib\Hydrator\Strategy\Exception #% GZend\Stdlib\Hydrator\Strategy )$ SZend\Stdlib\Hydrator\NamingStrategy !# CZend\Stdlib\Hydrator\Filter $" IZend\Stdlib\Hydrator\Aggregate ! 5Zend\Stdlib\Hydrator   /Zend\Stdlib\Guard  7Zend\Stdlib\Exception  9Zend\Stdlib\ArrayUtils  #Zend\Stdlib  /Zend\XmlRpc\Value " EZend\XmlRpc\Server\Exception  1Zend\XmlRpc\Server  5Zend\XmlRpc\Response  3Zend\XmlRpc\Request  7Zend\XmlRpc\Generator  7Zend\XmlRpc\Exception " EZend\XmlRpc\Client\Exception  1Zend\XmlRpc\Client  #Zend\XmlRpc  /Zend\XmlRpc\Value " EZend\XmlRpc\Server\Exception  1Zend\XmlRpc\Server  5Zend\XmlRpc\Response  3Zend\XmlRpc\Request  7Zend\XmlRpc\Generator  7Zend\XmlRpc\Exception " EZend\XmlRpc\Client\Exception 
 1Zend\XmlRpc\Client 	 #Zend\XmlRpc  1Zend\View\Strategy  1Zend\View\Resolver  1Zend\View\Renderer  +Zend\View\Model  =Zend\View\Helper\Service , YZend\View\Helper\Placeholder\Container " EZend\View\Helper\Placeholder * UZend\View\Helper\Navigation\Listener !  CZend\View\Helper\Navigation  =Zend\View\Helper\Escaper ~ -Zend\View\Helper } 3Zend\View\Exception | Zend\View { 1Zend\View\Strategy z 1Zend\View\Resolver y 1Zend\View\Renderer x +Zend\View\Model w =Zend\View\Helper\Service ,v YZend\View\Helper\Placeholder\Container "u EZend\View\Helper\Placeholder *t UZend\View\Helper\Navigation\Listener !s CZend\View\Helper\Navigation r =Zend\View\Helper\Escaper q -Zend\View\Helper p 3Zend\View\Exception o Zend\View n 1Zend\View\Strategy m 1Zend\View\Resolver l 1Zend\View\Renderer k +Zend\View\Model j =Zend\View\Helper\Service ,i YZend\View\Helper\Placeholder\Container "h EZend\View\Helper\Placeholder *g UZend\View\Helper\Navigation\Listener !f CZend\View\Helper\Navigation e =Zend\View\Helper\Escaper d -Zend\View\Helper c 3Zend\View\Exception b Zend\View a 1Zend\View\Strategy ` 1Zend\View\Resolver _ 1Zend\View\Renderer ^ +Zend\View\Model ] =Zend\View\Helper\Service ,\ YZend\View\Helper\Placeholder\Container "[ EZend\View\Helper\Placeholder *Z UZend\View\Helper\Navigation\Listener !Y CZend\View\Helper\Navigation X =Zend\View\Helper\Escaper W -Zend\View\Helper V 3Zend\View\Exception U Zend\View T 1Zend\View\Strategy S 1Zend\View\Resolver R 1Zend\View\Renderer Q +Zend\View\Model P =Zend\View\Helper\Service ,O YZend\View\Helper\Placeholder\Container "N EZend\View\Helper\Placeholder *M UZend\View\Helper\Navigation\Listener !L CZend\View\Helper\Navigation K =Zend\View\Helper\Escaper J -Zend\View\Helper I 3Zend\View\Exception    v |]?v                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    M /Zend\Stdlib\Guard L ?Zend\Stdlib\StringWrapper K 7Zend\Stdlib\Exception J 9Zend\Stdlib\ArrayUtils I #Zend\Stdlib H /Zend\Stdlib\Guard G ?Zend\Stdlib\StringWrapper F 7Zend\Stdlib\Exception E 9Zend\Stdlib\ArrayUtils D #Zend\Stdlib C 7Zend\Stdlib\Extractor B ?Zend\Stdlib\StringWrapper -A [Zend\Stdlib\Hydrator\Strategy\Exception    m mR1~_H)lM3zncXMA1%	sYB+





t
X
9
								s	f	Z	O	D	9	-			~_E.sXC&{dE 
oT8$vdSH5#nW8*p`I;&m   1 'PluginOptions0 -OptimizeByFactor/ +IgnoreUserAbort. -ExceptionHandler- 5ClearExpiredByFactor, )AbstractPlugin+ 'ZendServerShm* )ZendServerDisk) 'XCacheOptions( XCache' +WinCacheOptions& WinCache% )SessionOptions$ Session# 5RedisResourceManager" %RedisOptions
! Redis  9MongoDbResourceManager )MongoDbOptions MongoDb 'MemoryOptions Memory ;MemcacheResourceManager +MemcacheOptions =MemcachedResourceManager -MemcachedOptions Memcached Memcache +KeyListIterator /FilesystemOptions 1FilesystemIterator !Filesystem !DbaOptions #DbaIterator Dba BlackHole !ApcOptions #ApcIterator Apc
 )AdapterOptions	 1AbstractZendServer +AbstractAdapter PostEvent 'PluginManager )ExceptionEvent
 Event %Capabilities 5AdapterPluginManager 3StorageCacheFactory'  QStorageCacheAbstractServiceFactory )PatternOptions~ #OutputCache} #ObjectCache| !ClassCache{ %CaptureCachez 'CallbackCachey +AbstractPattern#x IUnsupportedMethodCallExceptionw =UnexpectedValueExceptionv -RuntimeExceptionu 3OutOfSpaceExceptiont 3MissingKeyExceptions AMissingDependencyExceptionr )LogicExceptionq =InvalidArgumentException p CExtensionNotLoadedExceptiono 9BadMethodCallExceptionn )StorageFactorym 5PatternPluginManagerl )PatternFactoryk =UnexpectedValueExceptionj -RuntimeExceptioni 3OutOfRangeExceptionh =InvalidArgumentExceptiong Svgf Pdf
e Imaged -AbstractRendererc -RuntimeExceptionb 3OutOfRangeExceptiona =InvalidArgumentException ` CExtensionNotLoadedException_ ABarcodeValidationException	^ Upce	] Upca\ Royalmail[ PostnetZ PlanetY Leitcode
X Itf14W Identcode
V Error	U Ean8	T Ean5	S Ean2
R Ean13Q Code39P /Code25interleavedO Code25N Code128M CodabarL )AbstractObjectK =UnexpectedValueExceptionJ -RuntimeExceptionI ?RendererCreationExceptionH 3OutOfRangeExceptionG =InvalidArgumentExceptionF 7RendererPluginManagerE 3ObjectPluginManagerD BarcodeC =UnexpectedValueExceptionB -RuntimeExceptionA 3OutOfRangeException@ =InvalidArgumentException? Svg> Pdf
= Image< -AbstractRenderer; -RuntimeException: 3OutOfRangeException9 =InvalidArgumentException 8 CExtensionNotLoadedException7 ABarcodeValidationException	6 Upce	5 Upca4 Royalmail3 Postnet2 Planet1 Leitcode
0 Itf14/ Identcode
. Error	- Ean8	, Ean5	+ Ean2
* Ean13) Code39( /Code25interleaved' Code25& Code128% Codabar$ )AbstractObject# =UnexpectedValueException" -RuntimeException! ?RendererCreationException  3OutOfRangeException =InvalidArgumentException 7RendererPluginManager 3ObjectPluginManager Barcode )Authentication
 Session	 'NonPersistent	
 Chain	 =UnexpectedValueException -RuntimeException =InvalidArgumentException -RuntimeException =InvalidArgumentException %FileResolver )ApacheResolver =UnexpectedValueException -RuntimeException =InvalidArgumentException -RuntimeException =InvalidArgumentException ACredentialTreatmentAdapter
 5CallbackCheckAdapter	 +AbstractAdapter	 Ldap	 Http Digest DbTable Callback +AbstractAdapter
 	Result 7	AuthenticationService   V eE/ybM9'viS>-ucI0	|gXB$






x
b
M
7

							s	W	A	#	 rZ:c9~iXA'm[A(t_P:pZE/zn_QD3jV  W %AbstractWord.V +AbstractAdapter.U -RuntimeException-T ;NoFontProvidedException-S =InvalidArgumentException-R ?ImageNotLoadableException- Q CExtensionNotLoadedException-P +DomainException-O ReCaptcha,
N Image,M Figlet,L Factory,	K Dumb,J %AbstractWord,I +AbstractAdapter,H !Serializer+G 'PluginOptions+F -OptimizeByFactor+E +IgnoreUserAbort+D -ExceptionHandler+C 5ClearExpiredByFactor+B )AbstractPlugin+A 'ZendServerShm*@ )ZendServerDisk*? 'XCacheOptions*> XCache*= +WinCacheOptions*< WinCache*; )SessionOptions*: Session*9 5RedisResourceManager*8 %RedisOptions*
7 Redis*6 9MongoDbResourceManager*5 )MongoDbOptions*4 MongoDb*3 'MemoryOptions*2 Memory*1 ;MemcacheResourceManager*0 +MemcacheOptions*/ =MemcachedResourceManager*. -MemcachedOptions*- Memcached*, Memcache*+ +KeyListIterator** /FilesystemOptions*) 1FilesystemIterator*( !Filesystem*' !DbaOptions*& #DbaIterator*% Dba*$ BlackHole*# #ApcuOptions*" %ApcuIterator*	! Apcu*  !ApcOptions* #ApcIterator* Apc* )AdapterOptions* 1AbstractZendServer* +AbstractAdapter* PostEvent) 'PluginManager) )ExceptionEvent)
 Event) %Capabilities) 5AdapterPluginManager)  CStoragePluginManagerFactory( 3StorageCacheFactory(' QStorageCacheAbstractServiceFactory(' QStorageAdapterPluginManagerFactory(  CPatternPluginManagerFactory( )PatternOptions' #OutputCache' #ObjectCache' !ClassCache' %CaptureCache'
 'CallbackCache'	 +AbstractPattern'# IUnsupportedMethodCallException& =UnexpectedValueException& -RuntimeException& 3OutOfSpaceException& 3MissingKeyException& AMissingDependencyException& )LogicException& =InvalidArgumentException&   CExtensionNotLoadedException& 9BadMethodCallException&~ )StorageFactory%} 5PatternPluginManager%| )PatternFactory%{ Module%z )ConfigProvider%y !Serializer$x 'PluginOptions$w -OptimizeByFactor$v +IgnoreUserAbort$u -ExceptionHandler$t 5ClearExpiredByFactor$s )AbstractPlugin$r 'ZendServerShm#q )ZendServerDisk#p 'XCacheOptions#o XCache#n +WinCacheOptions#m WinCache#l )SessionOptions#k Session#j 5RedisResourceManager#i %RedisOptions#
h Redis#g 9MongoDbResourceManager#f )MongoDbOptions#e MongoDb#d 'MemoryOptions#c Memory#b ;MemcacheResourceManager#a +MemcacheOptions#` =MemcachedResourceManager#_ -MemcachedOptions#^ Memcached#] Memcache#\ +KeyListIterator#[ /FilesystemOptions#Z 1FilesystemIterator#Y !Filesystem#X !DbaOptions#W #DbaIterator#V Dba#U BlackHole#T !ApcOptions#S #ApcIterator#R Apc#Q )AdapterOptions#P 1AbstractZendServer#O +AbstractAdapter#N PostEvent"M 'PluginManager"L )ExceptionEvent"
K Event"J %Capabilities"I 5AdapterPluginManager"H 3StorageCacheFactory!'G QStorageCacheAbstractServiceFactory!F )PatternOptions E #OutputCache D #ObjectCache C !ClassCache B %CaptureCache A 'CallbackCache @ +AbstractPattern #? IUnsupportedMethodCallException> =UnexpectedValueException= -RuntimeException< 3OutOfSpaceException; 3MissingKeyException: AMissingDependencyException9 )LogicException8 =InvalidArgumentException 7 CExtensionNotLoadedException6 9BadMethodCallException5 )StorageFactory4 5PatternPluginManager3 )PatternFactory2 !Serializer   c ^>~[:wX:qT=#
m\J8'





v
\
F
,
								w	d	S	B	$	mR:#|eI0cN8
kU:$raA)x^L;)kJ1xc                       y 'MethodScannerMx +FunctionScannerMw #FileScannerMv +DocBlockScannerMu -DirectoryScannerMt 3DerivedClassScannerMs +ConstantScannerMr %ClassScannerMq 1CachingFileScannerMp /AnnotationScannerMo ?AggregateDirectoryScannerMn -RuntimeExceptionLm =InvalidArgumentExceptionLl 9BadMethodCallExceptionLk ThrowsTagKj ReturnTagKi #PropertyTagKh ParamTagKg MethodTagKf !LicenseTagKe !GenericTagKd AuthorTagKc !TagManagerJb 1PropertyReflectionIa 3ParameterReflectionI` -MethodReflectionI_ 1FunctionReflectionI^ )FileReflectionI] 1DocBlockReflectionI\ +ClassReflectionI[ 7PrototypeClassFactoryHZ -RuntimeExceptionGY =InvalidArgumentExceptionGX ThrowsTagFW ReturnTagFV #PropertyTagFU ParamTagFT MethodTagFS !LicenseTagFR !GenericTagFQ AuthorTagFP 3AbstractTypeableTagFO !TagManagerEN TagEM )ValueGeneratorDL 3TraitUsageGeneratorDK )TraitGeneratorDJ 9PropertyValueGeneratorDI /PropertyGeneratorDH 1ParameterGeneratorDG +MethodGeneratorDF 1InterfaceGeneratorDE 7FileGeneratorRegistryDD 'FileGeneratorDC /DocBlockGeneratorDB )ClassGeneratorDA 'BodyGeneratorD@ ;AbstractMemberGeneratorD? /AbstractGeneratorD> -RuntimeExceptionC= =InvalidArgumentExceptionC< 9BadMethodCallExceptionC; ;GenericAnnotationParserB: =DoctrineAnnotationParserB9 /AnnotationManagerA8 5AnnotationCollectionA7 +NameInformation@6 %ValueScanner?	5 Util?4 /TokenArrayScanner?3 +PropertyScanner?2 -ParameterScanner?1 'MethodScanner?0 +FunctionScanner?/ #FileScanner?. +DocBlockScanner?- -DirectoryScanner?, 3DerivedClassScanner?+ +ConstantScanner?* %ClassScanner?) 1CachingFileScanner?( /AnnotationScanner?' ?AggregateDirectoryScanner?& -RuntimeException>% =InvalidArgumentException>$ 9BadMethodCallException># ThrowsTag=" ReturnTag=! #PropertyTag=  ParamTag= MethodTag= !LicenseTag= !GenericTag= AuthorTag= !TagManager< 1PropertyReflection; 3ParameterReflection; -MethodReflection; 1FunctionReflection; )FileReflection; 1DocBlockReflection; +ClassReflection; 7PrototypeClassFactory: -RuntimeException9 =InvalidArgumentException9 ThrowsTag8 ReturnTag8 #PropertyTag8 ParamTag8 MethodTag8 !LicenseTag8
 !GenericTag8	 AuthorTag8 3AbstractTypeableTag8 !TagManager7 Tag7 )ValueGenerator6 3TraitUsageGenerator6 )TraitGenerator6 9PropertyValueGenerator6 /PropertyGenerator6  1ParameterGenerator6 +MethodGenerator6~ 7FileGeneratorRegistry6} 'FileGenerator6| /DocBlockGenerator6{ )ClassGenerator6z 'BodyGenerator6y ;AbstractMemberGenerator6x /AbstractGenerator6w -RuntimeException5v =InvalidArgumentException5u 9BadMethodCallException5t ;GenericAnnotationParser4s =DoctrineAnnotationParser4r /AnnotationManager3q 5AnnotationCollection3p +NameInformation2o -RuntimeException1n ;NoFontProvidedException1m =InvalidArgumentException1l ?ImageNotLoadableException1 k CExtensionNotLoadedException1j +DomainException1i ReCaptcha0
h Image0g Figlet0f Factory0	e Dumb0d %AbstractWord0c +AbstractAdapter0b -RuntimeException/a ;NoFontProvidedException/` =InvalidArgumentException/_ ?ImageNotLoadableException/ ^ CExtensionNotLoadedException/] +DomainException/\ ReCaptcha.
[ Image.Z Figlet.Y Factory.	X Dumb.   S eL,jT;&	qVA+ yhH0eSB0






r
Q
8


							j	R	;	"		wY9!sYB(x]L:(}fL6wgTC2t]B* lU9  rS          ;AbstractMemberGeneratorn /AbstractGeneratorn -RuntimeExceptionm =InvalidArgumentExceptionm 9BadMethodCallExceptionm ;GenericAnnotationParserl =DoctrineAnnotationParserl /AnnotationManagerk 5AnnotationCollectionk +NameInformationj %ValueScanneri	 Utili /TokenArrayScanneri +PropertyScanneri -ParameterScanneri 'MethodScanneri
 +FunctionScanneri	 #FileScanneri +DocBlockScanneri -DirectoryScanneri 3DerivedClassScanneri +ConstantScanneri %ClassScanneri 1CachingFileScanneri /AnnotationScanneri ?AggregateDirectoryScanneri  -RuntimeExceptionh =InvalidArgumentExceptionh~ 9BadMethodCallExceptionh} ThrowsTagg| ReturnTagg{ #PropertyTaggz ParamTaggy MethodTaggx !LicenseTaggw !GenericTaggv AuthorTaggu !TagManagerft 1PropertyReflectiones 3ParameterReflectioner -MethodReflectioneq 1FunctionReflectionep )FileReflectioneo 1DocBlockReflectionen +ClassReflectionem 7PrototypeClassFactorydl -RuntimeExceptionck =InvalidArgumentExceptioncj ThrowsTagbi ReturnTagbh #PropertyTagbg ParamTagbf MethodTagbe !LicenseTagbd !GenericTagbc AuthorTagbb 3AbstractTypeableTagba !TagManagera` Taga_ )ValueGenerator`^ 'TypeGenerator`] 3TraitUsageGenerator`\ )TraitGenerator`[ 9PropertyValueGenerator`Z /PropertyGenerator`Y 1ParameterGenerator`X +MethodGenerator`W 1InterfaceGenerator`V 7FileGeneratorRegistry`U 'FileGenerator`T /DocBlockGenerator`S )ClassGenerator`R 'BodyGenerator`Q ;AbstractMemberGenerator`P /AbstractGenerator`O -RuntimeException_N =InvalidArgumentException_M 9BadMethodCallException_L ;GenericAnnotationParser^K =DoctrineAnnotationParser^J /AnnotationManager]I 5AnnotationCollection]H +NameInformation\G %ValueScanner[	F Util[E /TokenArrayScanner[D +PropertyScanner[C -ParameterScanner[B 'MethodScanner[A +FunctionScanner[@ #FileScanner[? +DocBlockScanner[> -DirectoryScanner[= 3DerivedClassScanner[< +ConstantScanner[; %ClassScanner[: 1CachingFileScanner[9 /AnnotationScanner[8 ?AggregateDirectoryScanner[7 -RuntimeExceptionZ6 =InvalidArgumentExceptionZ5 9BadMethodCallExceptionZ4 ThrowsTagY3 ReturnTagY2 #PropertyTagY1 ParamTagY0 MethodTagY/ !LicenseTagY. !GenericTagY- AuthorTagY, !TagManagerX+ 1PropertyReflectionW* 3ParameterReflectionW) -MethodReflectionW( 1FunctionReflectionW' )FileReflectionW& 1DocBlockReflectionW% +ClassReflectionW$ 7PrototypeClassFactoryV# -RuntimeExceptionU" =InvalidArgumentExceptionU! ThrowsTagT  ReturnTagT #PropertyTagT ParamTagT MethodTagT !LicenseTagT !GenericTagT AuthorTagT 3AbstractTypeableTagT !TagManagerS TagS )ValueGeneratorR 'TypeGeneratorR 3TraitUsageGeneratorR )TraitGeneratorR 9PropertyValueGeneratorR /PropertyGeneratorR 1ParameterGeneratorR +MethodGeneratorR 1InterfaceGeneratorR 7FileGeneratorRegistryR 'FileGeneratorR /DocBlockGeneratorR
 )ClassGeneratorR	 'BodyGeneratorR ;AbstractMemberGeneratorR /AbstractGeneratorR -RuntimeExceptionQ =InvalidArgumentExceptionQ 9BadMethodCallExceptionQ ;GenericAnnotationParserP =DoctrineAnnotationParserP /AnnotationManagerO  5AnnotationCollectionO +NameInformationN~ %ValueScannerM	} UtilM| /TokenArrayScannerM{ +PropertyScannerMz -ParameterScannerM   z pY?&tcQ?.oU?%p]L;-oX=%






{
g
P
4
						m	N	9	#	
tV@%|lYH7)	nU9xiJ)pW?+rcS7obVI2&z                                  B 3WriterPluginManager A 3ReaderPluginManager @ Factory ? Config > 7AbstractConfigFactory 
= Yaml 	< Xml ; PhpArray 
: Json 	9 Ini 8 )AbstractWriter 
7 Yaml 	6 Xml 
5 Json 4 )JavaProperties 	3 Ini 2 !Translator 1 Token 0 Queue / Filter . Constant - -RuntimeException , =InvalidArgumentException + 3WriterPluginManager * 3ReaderPluginManager ) Factory ( Config ' 7AbstractConfigFactory & %ValueScanner 
% Util $ /TokenArrayScanner # +PropertyScanner " -ParameterScanner ! 'MethodScanner   +FunctionScanner  #FileScanner  +DocBlockScanner  -DirectoryScanner  3DerivedClassScanner  +ConstantScanner  %ClassScanner  1CachingFileScanner  /AnnotationScanner  ?AggregateDirectoryScanner  -RuntimeException  =InvalidArgumentException  9BadMethodCallException  VarTag  ThrowsTag  ReturnTag  #PropertyTag  ParamTag  MethodTag  !LicenseTag  !GenericTag  AuthorTag 
 !TagManager 	 1PropertyReflection  3ParameterReflection  -MethodReflection  1FunctionReflection  )FileReflection  1DocBlockReflection  +ClassReflection  7PrototypeClassFactory  -RuntimeException  =InvalidArgumentException VarTag~~ ThrowsTag~} ReturnTag~| #PropertyTag~{ ParamTag~z MethodTag~y !LicenseTag~x !GenericTag~w AuthorTag~v 3AbstractTypeableTag~u !TagManager}t Tag}s )ValueGenerator|r 'TypeGenerator|q 3TraitUsageGenerator|p )TraitGenerator|o 9PropertyValueGenerator|n /PropertyGenerator|m 1ParameterGenerator|l +MethodGenerator|k 1InterfaceGenerator|j 7FileGeneratorRegistry|i 'FileGenerator|h /DocBlockGenerator|g )ClassGenerator|f 'BodyGenerator|e ;AbstractMemberGenerator|d /AbstractGenerator|c -RuntimeException{b =InvalidArgumentException{a 9BadMethodCallException{` ;GenericAnnotationParserz_ =DoctrineAnnotationParserz^ /AnnotationManagery] 5AnnotationCollectiony\ +NameInformationx[ %ValueScannerw	Z UtilwY /TokenArrayScannerwX +PropertyScannerwW -ParameterScannerwV 'MethodScannerwU +FunctionScannerwT #FileScannerwS +DocBlockScannerwR -DirectoryScannerwQ 3DerivedClassScannerwP +ConstantScannerwO %ClassScannerwN 1CachingFileScannerwM /AnnotationScannerwL ?AggregateDirectoryScannerwK -RuntimeExceptionvJ =InvalidArgumentExceptionvI 9BadMethodCallExceptionvH VarTaguG ThrowsTaguF ReturnTaguE #PropertyTaguD ParamTaguC MethodTaguB !LicenseTaguA !GenericTagu@ AuthorTagu? !TagManagert> 1PropertyReflections= 3ParameterReflections< -MethodReflections; 1FunctionReflections: )FileReflections9 1DocBlockReflections8 +ClassReflections7 7PrototypeClassFactoryr6 -RuntimeExceptionq5 =InvalidArgumentExceptionq4 VarTagp3 ThrowsTagp2 ReturnTagp1 #PropertyTagp0 ParamTagp/ MethodTagp. !LicenseTagp- !GenericTagp, AuthorTagp+ 3AbstractTypeableTagp* !TagManagero) Tago( )ValueGeneratorn' 'TypeGeneratorn& 3TraitUsageGeneratorn% )TraitGeneratorn$ 9PropertyValueGeneratorn# /PropertyGeneratorn" 1ParameterGeneratorn! +MethodGeneratorn  1InterfaceGeneratorn 7FileGeneratorRegistryn 'FileGeneratorn /DocBlockGeneratorn )ClassGeneratorn 'BodyGeneratorn    wkTG;.{U/}j^G:.!
nH"~p]Q:-!









z
b
T
D
4

							{	b	K	>	-			m_O?(mVI8(pbA(mT>2_F4&~o]N-uaN<            } NoPadding | -RuntimeException { =InvalidArgumentException z 5PaddingPluginManager y Mcrypt x -RuntimeException w =InvalidArgumentException v PublicKey u !PrivateKey t #AbstractKey s !RsaOptions 	r Rsa q 'DiffieHellman p -RuntimeException o =InvalidArgumentException n BcryptSha m Bcrypt l Apache k -RuntimeException j =InvalidArgumentException i Scrypt h SaltedS2k g Pbkdf2 f -RuntimeException e =InvalidArgumentException d Utils c 9SymmetricPluginManager 
b Hmac 
a Hash ` !FileCipher _ #BlockCipher ^ Pkcs7 ] NoPadding \ -RuntimeException [ =InvalidArgumentException Z 5PaddingPluginManager Y Mcrypt X -RuntimeException W =InvalidArgumentException V PublicKey U !PrivateKey T #AbstractKey S !RsaOptions 	R Rsa Q 'DiffieHellman P -RuntimeException O =InvalidArgumentException N BcryptSha M Bcrypt L Apache K -RuntimeException J =InvalidArgumentException I Scrypt H SaltedS2k G Pbkdf2 F -RuntimeException E =InvalidArgumentException D Utils C 9SymmetricPluginManager 
B Hmac 
A Hash @ !FileCipher ? #BlockCipher > 3DefaultRouteMatcher = Select < Password ; Number 
: Line 9 Confirm 8 Checkbox 
7 Char 6 )AbstractPrompt 5 -RuntimeException 4 =InvalidArgumentException 3 9BadMethodCallException 2 Xterm256 1 Utf8Heavy 
0 Utf8 / DECSG . 'AsciiExtended - Ascii , )WindowsAnsicon + Windows * Virtual ) Posix ( +AbstractAdapter ' Response & Request % Getopt $ Console # 3DefaultRouteMatcher " Select ! Password   Number 
 Line  Confirm  Checkbox 
 Char  )AbstractPrompt  -RuntimeException  =InvalidArgumentException  9BadMethodCallException  Xterm256  Utf8Heavy 
 Utf8  DECSG  'AsciiExtended  Ascii  )WindowsAnsicon  Windows  Virtual  Posix  +AbstractAdapter  Response  Request 
 Getopt 	 Console 
 Yaml 	 Xml  PhpArray 
 Json 	 Ini  )AbstractWriter 
 Yaml 	 Xml 
  Json  )JavaProperties 	~ Ini } !Translator | Token { Queue z Filter y Constant x -RuntimeException w ;PluginNotFoundException v =InvalidArgumentException u 3WriterPluginManager #t GStandaloneWriterPluginManager #s GStandaloneReaderPluginManager r 3ReaderPluginManager q Factory p Config o 7AbstractConfigFactory 
n Yaml 	m Xml l PhpArray 
k Json 	j Ini i )AbstractWriter 
h Yaml 	g Xml 
f Json e )JavaProperties 	d Ini c !Translator b Token a Queue ` Filter _ Constant ^ -RuntimeException ] ;PluginNotFoundException \ =InvalidArgumentException [ 3WriterPluginManager #Z GStandaloneWriterPluginManager #Y GStandaloneReaderPluginManager X 3ReaderPluginManager W Factory V Config U 7AbstractConfigFactory 
T Yaml 	S Xml R PhpArray 
Q Json 	P Ini O )AbstractWriter 
N Yaml 	M Xml 
L Json K )JavaProperties 	J Ini I !Translator H Token G Queue F Filter E Constant D -RuntimeException C =InvalidArgumentException    m cI0! u\F:' xW=$fL3$x_I=*





{
Z
@
'

								i	O	6	'		{bL@-~]C*
eM:+
sgXF-xa@vcUF4#oS:&m       , /SqlServerMetadata + )SqliteMetadata * 1PostgresqlMetadata ) )OracleMetadata ( 'MysqlMetadata ' )AbstractSource & !ViewObject % 'TriggerObject $ #TableObject # -ConstraintObject " 3ConstraintKeyObject ! %ColumnObject   3AbstractTableObject  Metadata  =UnexpectedValueException  -RuntimeException  =InvalidArgumentException  )ErrorException  Profiler  SqlServer  Sqlite  Sql92  !Postgresql  Oracle  Mysql  IbmDb2  -AbstractPlatform  =UnexpectedValueException  -RuntimeException  7InvalidQueryException * UInvalidConnectionParametersException  =InvalidArgumentException  )ErrorException  )ErrorException 
 Statement 	 Sqlsrv  Result  !Connection  Statement  Result  Pgsql  !Connection  -SqliteRowCounter  -OracleRowCounter   Statement  Result 	~ Pdo } !Connection | Statement { Result 
z Oci8 y !Connection x Statement w Result v Mysqli u !Connection t Statement s Result r IbmDb2 q !Connection p +AbstractFeature o 1AbstractConnection n 1StatementContainer m 1ParameterContainer l 7AdapterServiceFactory #k GAdapterAbstractServiceFactory j Adapter i Pkcs7 h NoPadding g -RuntimeException f /NotFoundException e =InvalidArgumentException d 5PaddingPluginManager c Openssl b Mcrypt a -RuntimeException ` =InvalidArgumentException _ PublicKey ^ !PrivateKey ] #AbstractKey \ !RsaOptions 	[ Rsa Z 'DiffieHellman Y -RuntimeException X =InvalidArgumentException W BcryptSha V Bcrypt U Apache T -RuntimeException S =InvalidArgumentException R Scrypt Q SaltedS2k P Pbkdf2 O -RuntimeException N /NotFoundException M =InvalidArgumentException L Utils K 9SymmetricPluginManager J Hybrid 
I Hmac 
H Hash G !FileCipher F #BlockCipher E Pkcs7 D NoPadding C -RuntimeException B /NotFoundException A =InvalidArgumentException @ 5PaddingPluginManager ? Openssl > Mcrypt = -RuntimeException < =InvalidArgumentException ; PublicKey : !PrivateKey 9 #AbstractKey 8 !RsaOptions 	7 Rsa 6 'DiffieHellman 5 -RuntimeException 4 =InvalidArgumentException 3 BcryptSha 2 Bcrypt 1 Apache 0 -RuntimeException / =InvalidArgumentException . Scrypt - SaltedS2k , Pbkdf2 + -RuntimeException * /NotFoundException ) =InvalidArgumentException ( Utils ' 9SymmetricPluginManager & Hybrid 
% Hmac 
$ Hash # !FileCipher " #BlockCipher ! Pkcs7   NoPadding  -RuntimeException  /NotFoundException  =InvalidArgumentException  5PaddingPluginManager  Openssl  Mcrypt  -RuntimeException  =InvalidArgumentException  PublicKey  !PrivateKey  #AbstractKey  !RsaOptions 	 Rsa  'DiffieHellman  -RuntimeException  =InvalidArgumentException  BcryptSha  Bcrypt  Apache  -RuntimeException  =InvalidArgumentException 
 Scrypt 	 SaltedS2k  Pbkdf2  -RuntimeException  /NotFoundException  =InvalidArgumentException  Utils  9SymmetricPluginManager 
 Hmac 
 Hash   !FileCipher  #BlockCipher ~ Pkcs7    } dQ0m^O?0$yYF7*ucS8*{j[C5





v
f
S
H
6
'


								a	H	0		l\6~lYJ;)	|cPB3!bD+
r[:! u_L5%weD+}                     \ 1AbstractExpression%[ !FeatureSet$Z +AbstractFeature$Y -RuntimeException#X =InvalidArgumentException#W !RowGateway"V 1AbstractRowGateway"U -RuntimeException!T =InvalidArgumentException!S ResultSet R 1HydratingResultSet Q /AbstractResultSet P /SqlServerMetadataO )SqliteMetadataN 1PostgresqlMetadataM )OracleMetadataL 'MysqlMetadataK FactoryJ )AbstractSourceI !ViewObjectH 'TriggerObjectG #TableObjectF -ConstraintObjectE 3ConstraintKeyObjectD %ColumnObjectC 3AbstractTableObjectB MetadataA =UnexpectedValueException@ -RuntimeException? =InvalidArgumentException> )ErrorException= Profiler< SqlServer; Sqlite: Sql929 !Postgresql8 Oracle7 Mysql6 IbmDb25 -AbstractPlatform4 =UnexpectedValueException3 -RuntimeException2 7InvalidQueryException*1 UInvalidConnectionParametersException0 =InvalidArgumentException/ )ErrorException. )ErrorException- Statement, Sqlsrv+ Result* !Connection) Statement( Result' Pgsql& !Connection% -SqliteRowCounter$ -OracleRowCounter# Statement" Result	! Pdo  !Connection !RowCounter Statement Result
 Oci8 !Connection Statement Result Mysqli !Connection Statement Result IbmDb2 !Connection +AbstractFeature 1AbstractConnection 1StatementContainer 1ParameterContainer 7AdapterServiceFactory# GAdapterAbstractServiceFactory Adapter /TableGatewayEvent
 +SequenceFeature	 /RowGatewayFeature +MetadataFeature 1MasterSlaveFeature 5GlobalAdapterFeature !FeatureSet %EventFeature +AbstractFeature -RuntimeException
 =InvalidArgumentException
  %TableGateway	 5AbstractTableGateway	~ %PredicateSet} Predicate| Operator{ NotLikez NotIny Literal
x Likew IsNullv IsNotNullu Int !Expressions Betweenr 5CreateTableDecoratorq SqlServerp +SelectDecoratoro +SelectDecoratorn Oraclem 5CreateTableDecoratorl 3AlterTableDecoratork +SelectDecoratorj Mysqli +SelectDecoratorh IbmDb2g Platformf -AbstractPlatforme -RuntimeException d =InvalidArgumentException c Index b 'AbstractIndex a UniqueKey ` !PrimaryKey _ !ForeignKey ^ Check ] 1AbstractConstraint \ Varchar [ Varbinary Z Timestamp 
Y Time 
X Text W Integer V Floating U Float T Decimal S Datetime 
R Date Q Column 
P Char O Boolean 
N Blob M Binary L !BigInteger K ;AbstractTimestampColumn J ;AbstractPrecisionColumn I 5AbstractLengthColumn H DropTable G #CreateTable F !AlterTable E Where D Update C +TableIdentifier 	B Sql A Select @ Literal ? Insert > Having = !Expression < Delete ; Combine : #AbstractSql 9 7AbstractPreparableSql 8 1AbstractExpression 7 !FeatureSet 6 +AbstractFeature 5 -RuntimeException 4 =InvalidArgumentException 3 !RowGateway 2 1AbstractRowGateway 1 -RuntimeException 0 =InvalidArgumentException / ResultSet . 1HydratingResultSet - /AbstractResultSet    ~ ~n_S;,ufYI<- gYF3!rdL0weVI9&





}
d
L
7
$
						x	R	4	ufWE2%l^O=*~`G&wV={hQA+`G,{gWH5&~             DropTableP #CreateTableP !AlterTableP WhereO UpdateO +TableIdentifierO	 SqlO
 SelectO	 LiteralO InsertO HavingO !ExpressionO DeleteO CombineO #AbstractSqlO 7AbstractPreparableSqlO 1AbstractExpressionO  !FeatureSetN +AbstractFeatureN~ -RuntimeExceptionM} =InvalidArgumentExceptionM| !RowGatewayL{ 1AbstractRowGatewayLz -RuntimeExceptionKy =InvalidArgumentExceptionKx ResultSetJw 1HydratingResultSetJv /AbstractResultSetJu /SqlServerMetadataIt )SqliteMetadataIs 1PostgresqlMetadataIr )OracleMetadataIq 'MysqlMetadataIp FactoryIo )AbstractSourceIn !ViewObjectHm 'TriggerObjectHl #TableObjectHk -ConstraintObjectHj 3ConstraintKeyObjectHi %ColumnObjectHh 3AbstractTableObjectHg MetadataGf =UnexpectedValueExceptionFe -RuntimeExceptionFd =InvalidArgumentExceptionFc )ErrorExceptionFb ProfilerEa SqlServerD` SqliteD_ Sql92D^ !PostgresqlD] OracleD\ MysqlD[ IbmDb2DZ -AbstractPlatformDY =UnexpectedValueExceptionCX -RuntimeExceptionCW 7InvalidQueryExceptionC*V UInvalidConnectionParametersExceptionCU =InvalidArgumentExceptionCT )ErrorExceptionCS )ErrorExceptionBR StatementAQ SqlsrvAP ResultAO !ConnectionAN Statement@M Result@L Pgsql@K !Connection@J -SqliteRowCounter?I -OracleRowCounter?H Statement>G Result>	F Pdo>E !Connection>D !RowCounter=C Statement<B Result<
A Oci8<@ !Connection<? Statement;> Result;= Mysqli;< !Connection;; Statement:: Result:9 IbmDb2:8 !Connection:7 +AbstractFeature96 1AbstractConnection85 1StatementContainer74 1ParameterContainer73 7AdapterServiceFactory7#2 GAdapterAbstractServiceFactory71 Adapter70 /TableGatewayEvent6/ +SequenceFeature5. /RowGatewayFeature5- +MetadataFeature5, 1MasterSlaveFeature5+ 5GlobalAdapterFeature5* !FeatureSet5) %EventFeature5( +AbstractFeature5' -RuntimeException4& =InvalidArgumentException4% %TableGateway3$ 5AbstractTableGateway3# %PredicateSet2" Predicate2! Operator2  NotLike2 NotIn2 !NotBetween2 Literal2
 Like2 IsNull2 IsNotNull2 In2 !Expression2 Between2 5CreateTableDecorator1 SqlServer0 +SelectDecorator0 +SelectDecorator/ Oracle/ 5CreateTableDecorator. 3AlterTableDecorator. +SelectDecorator- Mysql- +SelectDecorator, IbmDb2, Platform+
 -AbstractPlatform+	 -RuntimeException* =InvalidArgumentException* Index) 'AbstractIndex) UniqueKey( !PrimaryKey( !ForeignKey( Check( 1AbstractConstraint(  Varchar' Varbinary'~ Timestamp'
} Time'
| Text'{ Integer'z Floating'y Float'x Decimal'w Datetime'
v Date'u Column'
t Char's Boolean'
r Blob'q Binary'p !BigInteger'o ;AbstractTimestampColumn'n ;AbstractPrecisionColumn'm 5AbstractLengthColumn'l DropTable&k #CreateTable&j !AlterTable&i Where%h Update%g +TableIdentifier%	f Sql%e Select%d Literal%c Insert%b Having%a !Expression%` Delete%_ Combine%^ #AbstractSql%] 7AbstractPreparableSql%   r tdWH;*taN<&gK.qdTA3# gR?"





}
m
G
)
							}	j	[	L	:	'		taSD2sU<lK2 p]F6 	vU<!p\L=*xfI)	rF Float|E Decimal|D Datetime|
C Date|B Column|
A Char|@ Boolean|
? Blob|> Binary|= !BigInteger|< ;AbstractTimestampColumn|; ;AbstractPrecisionColumn|: 5AbstractLengthColumn|9 DropTable{8 #CreateTable{7 !AlterTable{6 Wherez5 Updatez4 +TableIdentifierz	3 Sqlz2 Selectz1 Literalz
0 Joinz/ Insertz. Havingz- !Expressionz, Deletez+ Combinez* #AbstractSqlz) 7AbstractPreparableSqlz( 1AbstractExpressionz' !FeatureSety& +AbstractFeaturey% -RuntimeExceptionx$ =InvalidArgumentExceptionx# !RowGatewayw" 1AbstractRowGatewayw! -RuntimeExceptionv  =InvalidArgumentExceptionv ResultSetu 1HydratingResultSetu /AbstractResultSetu /SqlServerMetadatat )SqliteMetadatat 1PostgresqlMetadatat )OracleMetadatat 'MysqlMetadatat Factoryt )AbstractSourcet !ViewObjects 'TriggerObjects #TableObjects -ConstraintObjects 3ConstraintKeyObjects %ColumnObjects 3AbstractTableObjects Metadatar =UnexpectedValueExceptionq -RuntimeExceptionq =InvalidArgumentExceptionq
 )ErrorExceptionq	 Profilerp SqlServero Sqliteo Sql92o !Postgresqlo Oracleo Mysqlo IbmDb2o -AbstractPlatformo  =UnexpectedValueExceptionn -RuntimeExceptionn~ 7InvalidQueryExceptionn*} UInvalidConnectionParametersExceptionn| =InvalidArgumentExceptionn{ )ErrorExceptionnz )ErrorExceptionmy Statementlx Sqlsrvlw Resultlv !Connectionlu Statementkt Resultks Pgsqlkr !Connectionkq -SqliteRowCounterjp -OracleRowCounterjo Statementin Resulti	m Pdoil !Connectionik !RowCounterhj Statementgi Resultg
h Oci8gg !Connectiongf Statementfe Resultfd Mysqlifc !Connectionfb Statementea Resulte` IbmDb2e_ !Connectione^ +AbstractFeatured] 1AbstractConnectionc\ 1StatementContainerb[ 1ParameterContainerbZ 7AdapterServiceFactoryb#Y GAdapterAbstractServiceFactorybX AdapterbW ModuleaV )ConfigProvideraU /TableGatewayEvent`T +SequenceFeature_S /RowGatewayFeature_R +MetadataFeature_Q 1MasterSlaveFeature_P 5GlobalAdapterFeature_O !FeatureSet_N %EventFeature_M +AbstractFeature_L -RuntimeException^K =InvalidArgumentException^J %TableGateway]I 5AbstractTableGateway]H %PredicateSet\G Predicate\F Operator\E NotLike\D NotIn\C !NotBetween\B Literal\
A Like\@ IsNull\? IsNotNull\> In\= !Expression\< Between\; 5CreateTableDecorator[: SqlServerZ9 +SelectDecoratorZ8 +SelectDecoratorY7 OracleY6 5CreateTableDecoratorX5 3AlterTableDecoratorX4 +SelectDecoratorW3 MysqlW2 +SelectDecoratorV1 IbmDb2V0 PlatformU/ -AbstractPlatformU. -RuntimeExceptionT- =InvalidArgumentExceptionT, IndexS+ 'AbstractIndexS* UniqueKeyR) !PrimaryKeyR( !ForeignKeyR' CheckR& 1AbstractConstraintR% VarcharQ$ VarbinaryQ# TimestampQ
" TimeQ
! TextQ  IntegerQ FloatingQ FloatQ DecimalQ DatetimeQ
 DateQ ColumnQ
 CharQ BooleanQ
 BlobQ BinaryQ !BigIntegerQ ;AbstractTimestampColumnQ ;AbstractPrecisionColumnQ 5AbstractLengthColumnQ   \ vhUB0s[?"teXH5's[F3zcX@)





}
h
P
?
/
					g	F	-		t]E+sc? za=}dJ1uQ2xW>tcRD3%{\                h 9BadMethodCallExceptiong Queryf NodeListe Queryd NodeListc DOMXPathb Documenta Css2Xpath` -RuntimeException_ 9BadMethodCallException^ Query] NodeList\ Query[ NodeListZ DOMXPathY DocumentX Css2XpathW )ValueInjectionV 'TypeInjectionU 1DependencyResolverT /AbstractInjectionS =UnexpectedValueException!R CUndefinedReferenceExceptionQ -RuntimeExceptionP =MissingPropertyExceptionO )LogicExceptionN =InvalidPositionExceptionM ?InvalidParamNameExceptionL =InvalidCallbackExceptionK =InvalidArgumentExceptionJ 7GenerateCodeExceptionI 9ClassNotFoundException!H CCircularDependencyExceptionG ParameterF +ClassDefinitionE /RuntimeDefinitionD +AutowireFactoryC +InjectorFactoryB 'ConfigFactoryA +AutowireFactory@ /InjectorGenerator? -FactoryGenerator> /AutoloadGenerator= -AbstractInjector< Module; %LegacyConfig: Injector9 -DefaultContainer8 )ConfigProvider7 Config6 /GeneratorInstance5 Generator4 ;DependencyInjectorProxy!3 CUndefinedReferenceException2 -RuntimeException1 =MissingPropertyException0 =InvalidPositionException/ ?InvalidParamNameException. =InvalidCallbackException- =InvalidArgumentException, 9ClassNotFoundException!+ CCircularDependencyException* Console) PhpClass( +InjectionMethod' %Instantiator& Inject% /RuntimeDefinition$ 7IntrospectionStrategy# 1CompilerDefinition" +ClassDefinition! /BuilderDefinition  +ArrayDefinition )ServiceLocator +InstanceManager Di )DefinitionList Config /GeneratorInstance Generator ;DependencyInjectorProxy! CUndefinedReferenceException -RuntimeException =MissingPropertyException =InvalidPositionException ?InvalidParamNameException =InvalidCallbackException =InvalidArgumentException 9ClassNotFoundException! CCircularDependencyException Console PhpClass +InjectionMethod %Instantiator
 Inject	 /RuntimeDefinition 7IntrospectionStrategy 1CompilerDefinition +ClassDefinition /BuilderDefinition +ArrayDefinition )ServiceLocator +InstanceManager Di  )DefinitionList Config~ Debug} /TableGatewayEvent| +SequenceFeature{ /RowGatewayFeaturez +MetadataFeaturey 1MasterSlaveFeaturex 5GlobalAdapterFeaturew !FeatureSetv %EventFeatureu +AbstractFeaturet -RuntimeExceptions =InvalidArgumentExceptionr %TableGatewayq 5AbstractTableGatewayp %PredicateSeto Predicaten Operatorm NotLikel NotInk !NotBetweenj Literal
i Likeh IsNullg IsNotNullf Ine !Expressiond Betweenc 5CreateTableDecoratorb SqlServera +SelectDecorator` +SelectDecorator_ Oracle^ 5CreateTableDecorator] 3AlterTableDecorator\ +SelectDecorator[ MysqlZ +SelectDecoratorY IbmDb2X PlatformW -AbstractPlatformV -RuntimeExceptionU =InvalidArgumentExceptionT Index~S 'AbstractIndex~R UniqueKey}Q !PrimaryKey}P !ForeignKey}O Check}N 1AbstractConstraint}M Varchar|L Varbinary|K Timestamp|
J Time|
I Text|H Integer|G Floating|   q {mXD)~gE7"iH1pU=rXC%





|
e
C
5
 
						q	P	/	lZE2"nU6&wX7yk^PB- yjZK,zm_QC*	|]<#
q                      -RuntimeException =InvalidArgumentException Version !Subscriber %PubSubHubbub Publisher %HttpResponse -AbstractCallback
 -RuntimeException	 =InvalidArgumentException 9BadMethodCallException	 Uri Source %AbstractAtom	 Rss !AtomSource
 Atom %AbstractAtom  Deleted	 Rss~ #AtomDeleted
} Atom| -AbstractRenderer{ Entryz Entryy Entry
x Feedw Entry
v Feedu Entry
t Feeds Entryr Entry
q Feedp -AbstractRenderero -RuntimeExceptionn =InvalidArgumentExceptionm 9BadMethodCallExceptionl Writerk Versionj Sourcei #FeedFactory
h Feedg 9ExtensionPluginManagerf -ExtensionManagere Entryd Deletedc %AbstractFeedb Source	a Rss
` Atom_ %AbstractFeed^ Entry] Entry
\ Feed[ Entry
Z FeedY Entry
X FeedW Entry
V FeedU EntryT Entry
S FeedR EntryQ %AbstractFeedP 'AbstractEntryO -RuntimeExceptionN =InvalidArgumentExceptionM 9BadMethodCallException	L Rss
K AtomJ 'AbstractEntryI !CollectionH CategoryG AuthorF 1AbstractCollection E AStandaloneExtensionManagerD ReaderC FeedSetB 9ExtensionPluginManagerA -ExtensionManager@ !Collection? %AbstractFeed> 'AbstractEntry= Callback< %Subscription; 'AbstractModel: -RuntimeException9 =InvalidArgumentException8 Version7 !Subscriber6 %PubSubHubbub5 Publisher4 %HttpResponse3 -AbstractCallback2 -RuntimeException1 =InvalidArgumentException0 9BadMethodCallException	/ Uri. )FilterIterator- -RuntimeException, =InvalidCallbackException+ =InvalidArgumentException* +DomainException) 1SharedEventManager( 1ResponseCollection' 7LazyListenerAggregate& %LazyListener% /LazyEventListener$ #FilterChain# %EventManager" Event! ?AbstractListenerAggregate  )FilterIterator -RuntimeException =InvalidCallbackException =InvalidArgumentException +DomainException 1SharedEventManager 1ResponseCollection 7LazyListenerAggregate %LazyListener /LazyEventListener #FilterChain %EventManager Event ?AbstractListenerAggregate )FilterIterator -RuntimeException =InvalidCallbackException =InvalidArgumentException +DomainException 1SharedEventManager 1ResponseCollection 7LazyListenerAggregate
 %LazyListener	 /LazyEventListener #FilterChain %EventManager Event ?AbstractListenerAggregate )FilterIterator =InvalidCallbackException =InvalidArgumentException +DomainException  1StaticEventManager 1SharedEventManager~ 1ResponseCollection} 1GlobalEventManager| #FilterChain{ %EventManagerz Eventy ?AbstractListenerAggregatex )FilterIteratorw =InvalidCallbackExceptionv =InvalidArgumentExceptionu +DomainExceptiont 1StaticEventManagers 1SharedEventManagerr 1ResponseCollectionq 1GlobalEventManagerp #FilterChaino %EventManagern Eventm ?AbstractListenerAggregatel -RuntimeExceptionk =InvalidArgumentExceptionj Escaperi -RuntimeException    mN>/pO,{n`SE7"	x_@3u\OA3&









p
[
N
;
/

						x	f	Q	>	.	zaB2# dC }obTG9+	zlS4'iPC5'tdOB/#lZE2"                  P 'AbstractEntry8O Callback7N %Subscription6M 'AbstractModel6L -RuntimeException5K =InvalidArgumentException5J Version4I !Subscriber4H %PubSubHubbub4G Publisher4F %HttpResponse4E -AbstractCallback4D -RuntimeException3C =InvalidArgumentException3B 9BadMethodCallException3	A Uri2@ Source1? %AbstractAtom1	> Rss0= !AtomSource0
< Atom0; %AbstractAtom0: Deleted/	9 Rss.8 #AtomDeleted.
7 Atom.6 -AbstractRenderer-5 Entry,4 Entry+3 Entry*
2 Feed)1 Entry)
0 Feed(/ Entry(
. Feed'- Entry', Entry&
+ Feed%* -AbstractRenderer$) -RuntimeException#( =InvalidArgumentException#' 9BadMethodCallException#& Writer"% Version" $ AStandaloneExtensionManager"# Source"" #FeedFactory"
! Feed"  9ExtensionPluginManager" -ExtensionManager" Entry" Deleted" %AbstractFeed" ;ZendHttpClientDecorator! Response! 7Psr7ResponseDecorator! Source 	 Rss
 Atom %AbstractFeed Entry Entry
 Feed Entry
 Feed Entry
 Feed Entry
 Feed Entry
 Entry
	 Feed Entry %AbstractFeed 'AbstractEntry -RuntimeException  AInvalidHttpClientException =InvalidArgumentException 9BadMethodCallException	 Rss
  Atom 'AbstractEntry~ !Collection} Category| Author{ 1AbstractCollection z AStandaloneExtensionManagery Readerx FeedSetw 9ExtensionPluginManagerv -ExtensionManageru !Collectiont %AbstractFeeds 'AbstractEntryr Callbackq %Subscriptionp 'AbstractModelo -RuntimeExceptionn =InvalidArgumentExceptionm Versionl !Subscriberk %PubSubHubbubj Publisheri %HttpResponseh -AbstractCallbackg -RuntimeExceptionf =InvalidArgumentExceptione 9BadMethodCallException	d Uric Source
b %AbstractAtom
	a Rss	` !AtomSource	
_ Atom	^ %AbstractAtom	] Deleted	\ Rss[ #AtomDeleted
Z AtomY -AbstractRendererX EntryW EntryV Entry
U FeedT Entry
S FeedR Entry
Q Feed P Entry O Entry
N FeedM -AbstractRendererL -RuntimeExceptionK =InvalidArgumentExceptionJ 9BadMethodCallExceptionI WriterH Version G AStandaloneExtensionManagerF SourceE #FeedFactory
D FeedC 9ExtensionPluginManagerB -ExtensionManagerA Entry@ Deleted? %AbstractFeed> ;ZendHttpClientDecorator= Response< 7Psr7ResponseDecorator; Source	: Rss
9 Atom8 %AbstractFeed7 Entry6 Entry
5 Feed4 Entry
3 Feed2 Entry
1 Feed0 Entry
/ Feed. Entry- Entry
, Feed+ Entry* %AbstractFeed) 'AbstractEntry( -RuntimeException ' AInvalidHttpClientException& =InvalidArgumentException% 9BadMethodCallException	$ Rss
# Atom" 'AbstractEntry! !Collection  Category Author 1AbstractCollection  AStandaloneExtensionManager Reader FeedSet 9ExtensionPluginManager -ExtensionManager !Collection %AbstractFeed 'AbstractEntry Callback %Subscription 'AbstractModel   o ^C4#~eO:,tg[L.qb?/ xj]OB4&









l
]
D
/
							e	F	%	~eT< {bM.dC#
ziO<"xfZF9%{dO=gC"	o  +CamelCaseToDashm /AbstractSeparatorm UpperCasel  %RenameUploadl Renamel~ LowerCasel} Encryptl| Decryptl{ -RuntimeExceptionkz =InvalidArgumentExceptionk!y CExtensionNotLoadedExceptionkx +DomainExceptionkw 9BadMethodCallExceptionkv Opensslju #BlockCipherj	t Zipi	s Tarir Snappyi	q Rari	p Lzfio Gzi	n Bz2i"m EAbstractCompressionAlgorithmil Whitelisthk %UriNormalizehj )UpperCaseWordshi ToNullhh ToInthg StripTagshf 'StripNewlineshe !StringTrimhd 'StringToUpperhc 'StringToLowerhb %StaticFilterha RealPathh` #PregReplaceh
_ Nullh^ #MonthSelecth	] Inth\ Inflectorh[ %HtmlEntitieshZ 3FilterPluginManagerhY #FilterChainhX Encrypth	W DirhV DigitshU DecrypthT !DecompresshS )DateTimeSelecthR /DateTimeFormatterhQ !DateSelecthP /DataUnitFormatterhO CompresshN CallbackhM BooleanhL BlacklisthK BaseNamehJ +AbstractUnicodehI )AbstractFilterhH 5AbstractDateDropdownhG -RuntimeExceptiongF ;PhpEnvironmentExceptiongE =InvalidArgumentExceptiongD 9BadMethodCallExceptiongC 9ValidatorPluginManagerf
B HttpfA 3FilterPluginManagerf@ +AbstractAdapterf? Transfere> -RuntimeExceptiond= =InvalidArgumentExceptiond< 9BadMethodCallExceptiond; %PhpClassFilec: -ClassFileLocatorc9 -RuntimeExceptionb8 ;PhpEnvironmentExceptionb7 =InvalidArgumentExceptionb6 9BadMethodCallExceptionb5 9ValidatorPluginManagera
4 Httpa3 3FilterPluginManagera2 +AbstractAdaptera1 Transfer`0 -RuntimeException_/ =InvalidArgumentException_. 9BadMethodCallException_- %PhpClassFile^, -ClassFileLocator^+ -RuntimeException]* ;PhpEnvironmentException]) =InvalidArgumentException]( 9BadMethodCallException]' 9ValidatorPluginManager\
& Http\% 3FilterPluginManager\$ +AbstractAdapter\# Transfer[" -RuntimeExceptionZ! =InvalidArgumentExceptionZ  9BadMethodCallExceptionZ %PhpClassFileY -ClassFileLocatorY SourceX %AbstractAtomX	 RssW !AtomSourceW
 AtomW %AbstractAtomW DeletedV	 RssU #AtomDeletedU
 AtomU -AbstractRendererT EntryS EntryR EntryQ
 FeedP EntryP
 FeedO EntryO
 FeedN
 EntryN	 EntryM
 FeedL -AbstractRendererK -RuntimeExceptionJ =InvalidArgumentExceptionJ 9BadMethodCallExceptionJ WriterI VersionI  AStandaloneExtensionManagerI  SourceI #FeedFactoryI
~ FeedI} 9ExtensionPluginManagerI| -ExtensionManagerI{ EntryIz DeletedIy %AbstractFeedIx ;ZendHttpClientDecoratorHw ResponseHv 7Psr7ResponseDecoratorHu SourceG	t RssF
s AtomFr %AbstractFeedFq EntryEp EntryD
o FeedCn EntryB
m FeedAl EntryA
k Feed@j Entry@
i Feed?h Entry?g Entry>
f Feed=e Entry=d %AbstractFeed<c 'AbstractEntry<b -RuntimeException; a AInvalidHttpClientException;` =InvalidArgumentException;_ 9BadMethodCallException;	^ Rss:
] Atom:\ 'AbstractEntry:[ !Collection9Z Category9Y Author9X 1AbstractCollection9 W AStandaloneExtensionManager8V Reader8U FeedSet8T 9ExtensionPluginManager8S -ExtensionManager8R !Collection8Q %AbstractFeed8   s |_G*u^F5#paUE1 q[H2 }qbVJ6&





q
_
P
;
)
						s	V	>	!	lU=,
s`PA5%|o[J5	sNB7+yX?/jR:!z[7's                       !- CAbstractAnnotationsListener~!, CInputFilterProviderFieldset}+ 1FormElementManager} * AFormAbstractServiceFactory}
) Form}( Fieldset}' Factory}& Element}!% CSeparatorToSeparatorFactory|$ 9UnderscoreToStudlyCase{# 7UnderscoreToSeparator{" -UnderscoreToDash{! 7UnderscoreToCamelCase{  5SeparatorToSeparator{ +SeparatorToDash{ 5SeparatorToCamelCase{ -DashToUnderscore{ +DashToSeparator{ +DashToCamelCase{ 7CamelCaseToUnderscore{ 5CamelCaseToSeparator{ +CamelCaseToDash{ /AbstractSeparator{ UpperCasez %RenameUploadz Renamez LowerCasez Encryptz Decryptz -RuntimeExceptiony =InvalidArgumentExceptiony! CExtensionNotLoadedExceptiony +DomainExceptiony 9BadMethodCallExceptiony Opensslx
 #BlockCipherx		 Zipw	 Tarw Snappyw	 Rarw	 Lzfw Gzw	 Bz2w" EAbstractCompressionAlgorithmw Whitelistv  %UriNormalizev )UpperCaseWordsv~ ToNullv} ToIntv| StripTagsv{ 'StripNewlinesvz !StringTrimvy 'StringToUppervx 'StringToLowervw %StaticFiltervv RealPathvu #PregReplacev
t Nullvs #MonthSelectvr Modulev	q Intvp Inflectorvo %HtmlEntitiesv n AFilterPluginManagerFactoryvm 3FilterPluginManagervl #FilterChainvk Encryptv	j Dirvi Digitsvh Decryptvg !Decompressvf )DateTimeSelectve /DateTimeFormattervd !DateSelectvc /DataUnitFormattervb )ConfigProviderva Compressv` Callbackv_ Booleanv^ Blacklistv] BaseNamev\ +AbstractUnicodev[ )AbstractFiltervZ 5AbstractDateDropdownv!Y CSeparatorToSeparatorFactoryuX 9UnderscoreToStudlyCasetW 7UnderscoreToSeparatortV -UnderscoreToDashtU 7UnderscoreToCamelCasetT 5SeparatorToSeparatortS +SeparatorToDashtR 5SeparatorToCamelCasetQ -DashToUnderscoretP +DashToSeparatortO +DashToCamelCasetN 7CamelCaseToUnderscoretM 5CamelCaseToSeparatortL +CamelCaseToDashtK /AbstractSeparatortJ UpperCasesI %RenameUploadsH RenamesG LowerCasesF EncryptsE DecryptsD -RuntimeExceptionrC =InvalidArgumentExceptionr!B CExtensionNotLoadedExceptionrA +DomainExceptionr@ 9BadMethodCallExceptionr? Opensslq> #BlockCipherq	= Zipp	< Tarp; Snappyp	: Rarp	9 Lzfp8 Gzp	7 Bz2p"6 EAbstractCompressionAlgorithmp5 Whitelisto4 %UriNormalizeo3 )UpperCaseWordso2 ToNullo1 ToInto0 StripTagso/ 'StripNewlineso. !StringTrimo- 'StringToUppero, 'StringToLowero+ %StaticFiltero* RealPatho) #PregReplaceo
( Nullo' #MonthSelecto	& Into% Inflectoro$ %HtmlEntitieso# 3FilterPluginManagero" #FilterChaino! Encrypto	  Diro Digitso Decrypto !Decompresso )DateTimeSelecto /DateTimeFormattero !DateSelecto /DataUnitFormattero Compresso Callbacko Booleano Blacklisto BaseNameo +AbstractUnicodeo )AbstractFiltero 5AbstractDateDropdowno! CSeparatorToSeparatorFactoryn 9UnderscoreToStudlyCasem 7UnderscoreToSeparatorm -UnderscoreToDashm 7UnderscoreToCamelCasem 5SeparatorToSeparatorm
 +SeparatorToDashm	 5SeparatorToCamelCasem -DashToUnderscorem +DashToSeparatorm +DashToCamelCasem 7CamelCaseToUnderscorem 5CamelCaseToSeparatorm    jW@(p_RC3"m\F/!teXG:.!dO8+






o
T
@
&

							v	c	N	<	*		xgRE6(}Z?{aN7{gVI:*wdS=&zk\O>1%|[F/"    g %FormDateTimef )FormDateSelecte FormDated FormColorc )FormCollectionb %FormCheckboxa #FormCaptcha` !FormButton
_ Form^ )AbstractHelper] %HelperConfig\ =UnexpectedValueException[ ;InvalidElementExceptionZ =InvalidArgumentException!Y CExtensionNotLoadedExceptionX +DomainExceptionW 9BadMethodCallException
V Week	U Url
T TimeS Textarea
R TextQ SubmitP SelectO RangeN RadioM PasswordL NumberK 'MultiCheckboxJ #MonthSelectI MonthH ImageG Hidden
F FileE EmailD )DateTimeSelectC 'DateTimeLocalB DateTimeA !DateSelect
@ Date
? Csrf> Color= !Collection< Checkbox; Captcha: Button9 Validator8 +ValidationGroup
7 Type6 Required5 Options4 Object
3 Name2 Instance1 #InputFilter0 Input/ Hydrator. ;FormAnnotationsListener- Flags, Filter+ Exclude* %ErrorMessage ) AElementAnnotationsListener( +ContinueIfEmpty' )ComposedObject& !Attributes% /AnnotationBuilder$ !AllowEmpty# =AbstractStringAnnotation%" KAbstractArrayOrStringAnnotation! ;AbstractArrayAnnotation!  CAbstractAnnotationsListener! CInputFilterProviderFieldset 1FormElementManager  AFormAbstractServiceFactory
 Form Fieldset Factory Element 9FormFileUploadProgress ;FormFileSessionProgress 3FormFileApcProgress ReCaptcha Image Figlet
 Dumb %AbstractWord FormWeek FormUrl FormTime %FormTextarea FormText FormTel
 !FormSubmit	 !FormSelect !FormSearch FormRow FormReset FormRange FormRadio %FormPassword !FormNumber /FormMultiCheckbox  +FormMonthSelect FormMonth~ FormLabel} FormInput| FormImage{ !FormHiddenz FormFiley FormEmailx /FormElementErrorsw #FormElementv 1FormDateTimeSelectu /FormDateTimeLocalt %FormDateTimes )FormDateSelectr FormDateq FormColorp )FormCollectiono %FormCheckboxn #FormCaptcham !FormButton
l Formk )AbstractHelperj %HelperConfigi =UnexpectedValueExceptionh ;InvalidElementExceptiong =InvalidArgumentException!f CExtensionNotLoadedExceptione +DomainExceptiond 9BadMethodCallException
c Week	b Url
a Time` Textarea
_ Text^ Submit] Select\ Range[ RadioZ PasswordY NumberX 'MultiCheckboxW #MonthSelectV MonthU ImageT Hidden
S FileR EmailQ )DateTimeSelectP 'DateTimeLocalO DateTimeN !DateSelect
M Date
L CsrfK ColorJ !CollectionI CheckboxH CaptchaG ButtonF Validator~E +ValidationGroup~
D Type~C Required~B Options~A Object~
@ Name~? Instance~> #InputFilter~= Input~< Hydrator~; ;FormAnnotationsListener~: Flags~9 Filter~8 Exclude~7 %ErrorMessage~ 6 AElementAnnotationsListener~5 +ContinueIfEmpty~4 )ComposedObject~3 !Attributes~2 /AnnotationBuilder~1 !AllowEmpty~0 =AbstractStringAnnotation~%/ KAbstractArrayOrStringAnnotation~. ;AbstractArrayAnnotation~   q zgUC1lYF6%qQ2"{W7\G7(








y
l
T
B
3
#
									x	k	\	N	@	,		xYAo[F/}kZG5#o_L9&mQ1hF"sY8%q    ;FormAnnotationsListener Flags Filter Exclude %ErrorMessage  AElementAnnotationsListener +ContinueIfEmpty )ComposedObject !Attributes =AnnotationBuilderFactory /AnnotationBuilder !AllowEmpty =AbstractStringAnnotation% KAbstractArrayOrStringAnnotation ;AbstractArrayAnnotation! CAbstractAnnotationsListener
 Module!	 CInputFilterProviderFieldset ?FormElementManagerFactory 1FormElementManager  AFormAbstractServiceFactory
 Form Fieldset Factory )ElementFactory Element  )ConfigProvider 9FormFileUploadProgress~ ;FormFileSessionProgress} 3FormFileApcProgress| ReCaptcha{ Imagez Figlet
y Dumbx %AbstractWordw FormWeekv FormUrlu FormTimet %FormTextareas FormTextr FormTelq !FormSubmitp !FormSelecto !FormSearchn FormRowm FormResetl FormRangek FormRadioj %FormPasswordi !FormNumberh /FormMultiCheckboxg +FormMonthSelectf FormMonthe FormLabeld FormInputc FormImageb !FormHiddena FormFile` FormEmail_ /FormElementErrors^ #FormElement] 1FormDateTimeSelect\ /FormDateTimeLocal[ %FormDateTimeZ )FormDateSelectY FormDateX FormColorW )FormCollectionV %FormCheckboxU #FormCaptchaT !FormButton
S FormR )AbstractHelperQ %HelperConfigP =UnexpectedValueExceptionO ;InvalidElementExceptionN =InvalidArgumentException!M CExtensionNotLoadedExceptionL +DomainExceptionK 9BadMethodCallException
J Week	I Url
H TimeG Textarea
F TextE SubmitD SelectC RangeB RadioA Password@ Number? 'MultiCheckbox> #MonthSelect= Month< Image; Hidden
: File9 Email8 )DateTimeSelect7 'DateTimeLocal6 DateTime5 !DateSelect
4 Date
3 Csrf2 Color1 !Collection0 Checkbox/ Captcha. Button- Validator, +ValidationGroup
+ Type* Required) Options( Object
' Name& Instance% #InputFilter$ Input# Hydrator" ;FormAnnotationsListener! Flags  Filter Exclude %ErrorMessage  AElementAnnotationsListener +ContinueIfEmpty )ComposedObject !Attributes /AnnotationBuilder !AllowEmpty =AbstractStringAnnotation% KAbstractArrayOrStringAnnotation ;AbstractArrayAnnotation! CAbstractAnnotationsListener! CInputFilterProviderFieldset 1FormElementManager  AFormAbstractServiceFactory
 Form Fieldset Factory )ElementFactory Element 9FormFileUploadProgress
 ;FormFileSessionProgress	 3FormFileApcProgress ReCaptcha Image Figlet
 Dumb %AbstractWord FormWeek FormUrl FormTime  %FormTextarea FormText~ FormTel} !FormSubmit| !FormSelect{ !FormSearchz FormRowy FormResetx FormRangew FormRadiov %FormPasswordu !FormNumbert /FormMultiCheckboxs +FormMonthSelectr FormMonthq FormLabelp FormInputo FormImagen !FormHiddenm FormFilel FormEmailk /FormElementErrorsj #FormElementi 1FormDateTimeSelecth /FormDateTimeLocal    rZH9)~qbTF2~_G#uaL5#q`M;)






u
e
R
?
,

									s	W	7		gC4zYF/s_NA2"|o\K5rcTE9,yY8ybP?(                 T FormFileS FormEmailR /FormElementErrorsQ #FormElementP 1FormDateTimeSelectO /FormDateTimeLocalN %FormDateTimeM )FormDateSelectL FormDateK FormColorJ )FormCollectionI %FormCheckboxH #FormCaptchaG !FormButton
F FormE )AbstractHelperD %HelperConfig"C EFormElementManagerV3Polyfill"B EFormElementManagerV2PolyfillA =UnexpectedValueException@ ;InvalidElementException? =InvalidArgumentException!> CExtensionNotLoadedException= +DomainException< 9BadMethodCallException
; Week	: Url
9 Time8 Textarea
7 Text	6 Tel5 Submit4 Select3 Search2 Range1 Radio0 Password/ Number. 'MultiCheckbox- #MonthSelect, Month+ Image* Hidden
) File( Email' )DateTimeSelect& 'DateTimeLocal% DateTime$ !DateSelect
# Date
" Csrf! Color  !Collection Checkbox Captcha Button Validator +ValidationGroup
 Type Required Options Object
 Name Instance #InputFilter Input Hydrator ;FormAnnotationsListener Flags Filter Exclude %ErrorMessage  AElementAnnotationsListener +ContinueIfEmpty
 )ComposedObject	 !Attributes =AnnotationBuilderFactory /AnnotationBuilder !AllowEmpty =AbstractStringAnnotation% KAbstractArrayOrStringAnnotation ;AbstractArrayAnnotation! CAbstractAnnotationsListener Module!  CInputFilterProviderFieldset ?FormElementManagerFactory ~ AFormAbstractServiceFactory
} Form| Fieldset{ Factoryz )ElementFactoryy Elementx )ConfigProviderw 9FormFileUploadProgressv ;FormFileSessionProgressu 3FormFileApcProgresst ReCaptchas Imager Figlet
q Dumbp %AbstractWordo FormWeekn FormUrlm FormTimel %FormTextareak FormTextj FormTeli !FormSubmith !FormSelectg !FormSearchf FormRowe FormResetd FormRangec FormRadiob %FormPassworda !FormNumber` /FormMultiCheckbox_ +FormMonthSelect^ FormMonth] FormLabel\ FormInput[ FormImageZ !FormHiddenY FormFileX FormEmailW /FormElementErrorsV #FormElementU 1FormDateTimeSelectT /FormDateTimeLocalS %FormDateTimeR )FormDateSelectQ FormDateP FormColorO )FormCollectionN %FormCheckboxM #FormCaptchaL !FormButton
K FormJ )AbstractHelperI %HelperConfigH =UnexpectedValueExceptionG ;InvalidElementExceptionF =InvalidArgumentException!E CExtensionNotLoadedExceptionD +DomainExceptionC 9BadMethodCallException
B Week	A Url
@ Time? Textarea
> Text= Submit< Select; Range: Radio9 Password8 Number7 'MultiCheckbox6 #MonthSelect5 Month4 Image3 Hidden
2 File1 Email0 )DateTimeSelect/ 'DateTimeLocal. DateTime- !DateSelect
, Date
+ Csrf* Color) !Collection( Checkbox' Captcha& Button% Validator$ +ValidationGroup
# Type" Required! Options  Object
 Name Instance #InputFilter Input Hydrator   } s`K9'udOB3%|lWG7&y`?#
o`J3






y
a
I
3

							x	i	Y	L	6		m\H9*x_O=0$dL+k[K:-tS7t^G0u]G/}                  Expect
 Etag
 Date Cookie #ContentType ;ContentTransferEncoding  7ContentSecurityPolicy %ContentRange~ !ContentMD5} +ContentLocation| 'ContentLength{ +ContentLanguagez +ContentEncodingy 1ContentDispositionx !Connectionw %CacheControlv 'Authorizationu 1AuthenticationInfot Allow	s Ager %AcceptRangesq )AcceptLanguagep )AcceptEncodingo 'AcceptCharsetn Acceptm -AbstractLocationl %AbstractDatek )AbstractAcceptj -RuntimeExceptioni 3OutOfRangeExceptionh =InvalidArgumentExceptiong -RuntimeExceptionf 3OutOfRangeExceptione =InvalidArgumentExceptiond -TimeoutExceptionc -RuntimeExceptionb 3OutOfRangeExceptiona =InvalidArgumentException` ;InitializationException
_ Test^ Socket] Proxy
\ Curl[ ResponseZ RequestY HeadersX %HeaderLoaderW CookiesV %ClientStaticU ClientT +AbstractMessageS StreamR ResponseQ RequestP 'RemoteAddressO -RuntimeExceptionN =InvalidArgumentExceptionM +DomainExceptionL 9LanguageFieldValuePartK 9EncodingFieldValuePartJ 7CharsetFieldValuePartI 5AcceptFieldValuePartH 9AbstractFieldValuePartG +WWWAuthenticateF Warning	E Via
D VaryC UserAgentB UpgradeA -TransferEncoding@ Trailer? TE> SetCookie= Server< !RetryAfter; Refresh: Referer9 Range8 1ProxyAuthorization7 /ProxyAuthenticate6 Pragma5 Origin4 #MaxForwards3 Location2 %LastModified1 KeepAlive0 /IfUnmodifiedSince/ IfRange. #IfNoneMatch- +IfModifiedSince, IfMatch
+ Host* #HeaderValue) 1GenericMultiHeader( 'GenericHeader
' From& Expires% Expect
$ Etag
# Date" Cookie! #ContentType  ;ContentTransferEncoding 7ContentSecurityPolicy %ContentRange !ContentMD5 +ContentLocation 'ContentLength +ContentLanguage +ContentEncoding 1ContentDisposition !Connection %CacheControl 'Authorization 1AuthenticationInfo Allow	 Age %AcceptRanges )AcceptLanguage )AcceptEncoding 'AcceptCharset Accept -AbstractLocation %AbstractDate
 )AbstractAccept	 -RuntimeException 3OutOfRangeException =InvalidArgumentException -RuntimeException 3OutOfRangeException =InvalidArgumentException -TimeoutException -RuntimeException 3OutOfRangeException  =InvalidArgumentException ;InitializationException
~ Test} Socket| Proxy
{ Curlz Responsey Requestx Headersw %HeaderLoaderv Cookiesu %ClientStatict Clients +AbstractMessager 9FormFileUploadProgressq ;FormFileSessionProgressp 3FormFileApcProgresso ReCaptchan Imagem Figlet
l Dumbk %AbstractWordj FormWeeki FormUrlh FormTimeg %FormTextareaf FormTexte FormTeld !FormSubmitc !FormSelectb !FormSearcha FormRow` FormReset_ FormRange^ FormRadio] %FormPassword\ !FormNumber[ /FormMultiCheckboxZ +FormMonthSelectY FormMonthX FormLabelW FormInputV FormImageU !FormHidden   t iUE+~n^K<*tW9rcK<'zY=$




x
_
H
3

							}	g	R	?	$	`L=0#}iY?-r_P>3#
kM.weA t`D1seWF8,t  ; %NumberFormat: !DateFormat9 )CurrencyFormat8 =AbstractTranslatorHelper7 %HelperConfig6 PostCode5 #PhoneNumber4 IsInt3 IsFloat	2 Int1 Float0 DateTime/ Alpha. Alnum- Symbol
, Rule+ Parser* )PhpMemoryArray) PhpArray	( Ini' Gettext& 1AbstractFileLoader% =TranslatorServiceFactory$ !Translator# !TextDomain" 3LoaderPluginManager! #NumberParse  %NumberFormat Alpha Alnum )AbstractLocale -RuntimeException )RangeException )ParseException 5OutOfBoundsException =InvalidArgumentException! CExtensionNotLoadedException Resources Stream Response Request 'RemoteAddress -RuntimeException =InvalidArgumentException +DomainException 9LanguageFieldValuePart 9EncodingFieldValuePart 7CharsetFieldValuePart 5AcceptFieldValuePart
 9AbstractFieldValuePart	 +WWWAuthenticate Warning	 Via
 Vary UserAgent Upgrade -TransferEncoding Trailer TE  SetCookie Server~ !RetryAfter} Refresh| Referer{ Rangez 1ProxyAuthorizationy /ProxyAuthenticatex Pragmaw Originv #MaxForwardsu Locationt %LastModifieds KeepAliver /IfUnmodifiedSinceq IfRangep #IfNoneMatcho +IfModifiedSincen IfMatch
m Hostl #HeaderValuek 1GenericMultiHeaderj 'GenericHeader
i Fromh Expiresg Expect
f Etag
e Dated Cookiec #ContentTypeb ;ContentTransferEncodinga 7ContentSecurityPolicy` %ContentRange_ !ContentMD5^ +ContentLocation] 'ContentLength\ +ContentLanguage[ +ContentEncodingZ 1ContentDispositionY !ConnectionX %CacheControlW 'AuthorizationV 1AuthenticationInfoU Allow	T AgeS %AcceptRangesR )AcceptLanguageQ )AcceptEncodingP 'AcceptCharsetO AcceptN -AbstractLocationM %AbstractDateL )AbstractAcceptK -RuntimeExceptionJ 3OutOfRangeExceptionI =InvalidArgumentExceptionH -RuntimeExceptionG 3OutOfRangeExceptionF =InvalidArgumentExceptionE -TimeoutExceptionD -RuntimeExceptionC 3OutOfRangeExceptionB =InvalidArgumentExceptionA ;InitializationException
@ Test? Socket> Proxy
= Curl< Response; Request: Headers9 %HeaderLoader8 Cookies7 %ClientStatic6 Client5 +AbstractMessage4 Stream3 Response2 Request1 'RemoteAddress0 -RuntimeException/ =InvalidArgumentException. +DomainException- 9LanguageFieldValuePart, 9EncodingFieldValuePart+ 7CharsetFieldValuePart* 5AcceptFieldValuePart) 9AbstractFieldValuePart( +WWWAuthenticate' Warning	& Via
% Vary$ UserAgent# Upgrade" -TransferEncoding! Trailer  TE SetCookie Server !RetryAfter Refresh Referer Range 1ProxyAuthorization /ProxyAuthenticate Pragma Origin #MaxForwards Location %LastModified KeepAlive /IfUnmodifiedSince IfRange #IfNoneMatch +IfModifiedSince IfMatch
 Host #HeaderValue
 1GenericMultiHeader	 'GenericHeader
 From Expires   w eN7_D4( ~p\K6wS2rV3 






~
q
b
T
F
5
'

							x	c	T	B	*	sR1a@vb8ylM,zdC* kRD5'wjZJ:- w               k 1ClassMapAutoloaderj /AutoloaderFactoryi -RuntimeExceptionh 1RecursionExceptiong =InvalidArgumentExceptionf 9BadMethodCallException
e Json
d Exprc Encoderb Decodera Service
` Http
_ Http^ -RuntimeException] =InvalidArgumentException\ 'HttpException[ )ErrorException	Z SmdY ServerX ResponseW RequestV ErrorU ClientT CacheS -RuntimeExceptionR 1RecursionExceptionQ =InvalidArgumentExceptionP 9BadMethodCallException
O Json
N ExprM EncoderL DecoderK Service
J Http
I HttpH -RuntimeExceptionG =InvalidArgumentExceptionF 'HttpExceptionE )ErrorException	D SmdC ServerB ResponseA Request@ Error? Client> Cache= -RuntimeException< 1RecursionException; =InvalidArgumentException: 9BadMethodCallException
9 Json
8 Expr7 Encoder6 Decoder5 -RuntimeException4 =InvalidArgumentException3 Module%2 KInputFilterPluginManagerFactory1 =InputFilterPluginManager'0 OInputFilterAbstractServiceFactory/ #InputFilter. Input- FileInput, Factory+ )ConfigProvider* 7CollectionInputFilter) +BaseInputFilter( !ArrayInput' -RuntimeException& =InvalidArgumentException% =InputFilterPluginManager'$ OInputFilterAbstractServiceFactory# #InputFilter" Input! FileInput  Factory 7CollectionInputFilter +BaseInputFilter !ArrayInput -RuntimeException =InvalidArgumentException =InputFilterPluginManager' OInputFilterAbstractServiceFactory #InputFilter Input FileInput Factory 7CollectionInputFilter +BaseInputFilter !ArrayInput +TranslatePlural Translate Plural %NumberFormat !DateFormat )CurrencyFormat =AbstractTranslatorHelper
 %HelperConfig	 PostCode #PhoneNumber IsInt IsFloat	 Int Float DateTime Alpha Alnum  Symbol
 Rule~ Parser} )PhpMemoryArray| PhpArray	{ Iniz Gettexty 1AbstractFileLoaderx =TranslatorServiceFactoryw !Translatorv !TextDomain u ALoaderPluginManagerFactoryt 3LoaderPluginManagers #NumberParser %NumberFormatq Alphap Alnumo )AbstractLocalen -RuntimeExceptionm )RangeExceptionl )ParseExceptionk 5OutOfBoundsExceptionj =InvalidArgumentException!i CExtensionNotLoadedExceptionh Moduleg )ConfigProviderf +TranslatePlurale Translated Pluralc %NumberFormatb !DateFormata )CurrencyFormat` =AbstractTranslatorHelper_ %HelperConfig^ PostCode] #PhoneNumber\ IsInt[ IsFloat	Z IntY FloatX DateTimeW AlphaV AlnumU Symbol
T RuleS ParserR )PhpMemoryArrayQ PhpArray	P IniO GettextN 1AbstractFileLoaderM =TranslatorServiceFactoryL !TranslatorK !TextDomainJ 3LoaderPluginManagerI #NumberParseH %NumberFormatG AlphaF AlnumE )AbstractLocaleD -RuntimeExceptionC )RangeExceptionB )ParseExceptionA 5OutOfBoundsException@ =InvalidArgumentException!? CExtensionNotLoadedException> +TranslatePlural= Translate< Plural   t {Z=qR6yg\G.{dT5(]@!






w
`
N
<
/

								|	j	S	A	6		ufR:$y`D#
ujU<,r[K,|eI&b<#~oXF4'
t       #ReferenceId )PsrPlaceholder Backtrace	 Xml Simple FirePhp -ExceptionHandler %ErrorHandler Db ChromePhp
 Base Validator Timestamp )SuppressFilter Sample Regex Priority
 Mock -RuntimeException =InvalidArgumentException 
 AWriterPluginManagerFactory	 3WriterPluginManager -PsrLoggerAdapter# GProcessorPluginManagerFactory 9ProcessorPluginManager Module 5LoggerServiceFactory" ELoggerAbstractServiceFactory Logger# GFormatterPluginManagerFactory  9FormatterPluginManager  AFilterPluginManagerFactory~ 3FilterPluginManager} )ConfigProvider| 'FirePhpBridge{ +ChromePhpBridgez #ZendMonitory Syslogx Stream	w Psr
v Null
u Noopt MongoDB
s Mock
r Mailq 9FormatterPluginManagerp FirePhpo )FingersCrossedn 3FilterPluginManagerm Dbl ChromePhpk )AbstractWriterj RequestId
i #ReferenceId
h )PsrPlaceholder
g Backtrace
	f Xml	e Simple	d FirePhp	c -ExceptionHandler	b %ErrorHandler	a Db	` ChromePhp	
_ Base	^ Validator] Timestamp\ )SuppressFilter[ SampleZ RegexY Priority
X MockW -RuntimeExceptionV =InvalidArgumentExceptionU 3WriterPluginManagerT -PsrLoggerAdapterS 9ProcessorPluginManagerR 5LoggerServiceFactory"Q ELoggerAbstractServiceFactoryP LoggerO 9FormatterPluginManagerN 3FilterPluginManagerM 'FirePhpBridgeL +ChromePhpBridgeK #ZendMonitorJ SyslogI Stream	H Psr
G Null
F NoopE MongoDB
D Mock
C MailB 9FormatterPluginManagerA FirePhp@ )FingersCrossed? 3FilterPluginManager> Db= ChromePhp< )AbstractWriter; RequestId: #ReferenceId9 )PsrPlaceholder8 Backtrace	7 Xml6 Simple5 FirePhp4 -ExceptionHandler3 %ErrorHandler2 Db1 ChromePhp
0 Base/ Validator . Timestamp - )SuppressFilter , Sample + Regex * Priority 
) Mock ( -RuntimeException' =InvalidArgumentException& 3WriterPluginManager% -PsrLoggerAdapter$ 9ProcessorPluginManager# 5LoggerServiceFactory"" ELoggerAbstractServiceFactory! Logger  'FirePhpBridge +ChromePhpBridge #ZendMonitor Syslog Stream
 Null
 Noop MongoDB
 Mock
 Mail 9FormatterPluginManager FirePhp )FingersCrossed 3FilterPluginManager Db ChromePhp )AbstractWriter RequestId #ReferenceId Backtrace	 Xml Simple
 FirePhp	 -ExceptionHandler %ErrorHandler Db ChromePhp
 Base Validator Timestamp )SuppressFilter Sample  Regex Priority
~ Mock} -RuntimeException| =InvalidArgumentException{ 3WriterPluginManagerz 9ProcessorPluginManagery 5LoggerServiceFactory"x ELoggerAbstractServiceFactoryw Loggerv /SecurityExceptionu -RuntimeExceptiont 7PluginLoaderException's OMissingResourceNamespaceExceptionr 5InvalidPathExceptionq =InvalidArgumentExceptionp +DomainExceptiono 9BadMethodCallExceptionn 1StandardAutoloaderm /PluginClassLoaderl -ModuleAutoloader    wXK>.!uR3hO3w`N</|jSA6








v
g
X
D
,

 							v	^	=	 	pU@-vU<#	|dUH8+sR9)^E5!eL0$r^K9%           U -RuntimeException3T =InvalidArgumentException3S 9BadMethodCallException3R To2Q Subject2P Sender2O ReplyTo2N Received2M #MimeVersion2L MessageId2K !HeaderWrap2J #HeaderValue2I !HeaderName2H %HeaderLoader2G 1GenericMultiHeader2F 'GenericHeader2
E From2
D Date2C #ContentType2B ;ContentTransferEncoding2A Cc2	@ Bcc2? 3AbstractAddressList2> -RuntimeException1= 5OutOfBoundsException1< =InvalidArgumentException1; +DomainException1: 9BadMethodCallException19 Storage08 )MessageFactory07 Message06 Headers05 #AddressList04 Address03 -RuntimeException.2 =InvalidArgumentException.1 +DomainException.0 #SmtpOptions-
/ Smtp-. Sendmail-
- Null-, InMemory-+ #FileOptions-
* File-) Factory-( Envelope-' Maildir,& -RuntimeException+% =InvalidArgumentException+
$ File*
# File)
" Mbox(! Maildir(  -RuntimeException' 5OutOfBoundsException' =InvalidArgumentException'
 Pop3&
 Part& Message&
 Mbox& Maildir&
 Imap& Folder& +AbstractStorage& Plain% Login% Crammd5% -RuntimeException$ =InvalidArgumentException$ /SmtpPluginManager#
 Smtp#
 Pop3#
 Imap# -AbstractProtocol# -RuntimeException"
 =InvalidArgumentException"	 9BadMethodCallException" To! Subject! Sender! ReplyTo! Received! #MimeVersion! MessageId! !HeaderWrap!  #HeaderValue! !HeaderName!~ %HeaderLoader!} 1GenericMultiHeader!| 'GenericHeader!
{ From!
z Date!y #ContentType!x ;ContentTransferEncoding!w Cc!	v Bcc!u 3AbstractAddressList!t -RuntimeException s 5OutOfBoundsException r =InvalidArgumentException q +DomainException p 9BadMethodCallException o Storagen )MessageFactorym Messagel Headersk #AddressListj Addressi 'FirePhpBridgeh 'WriterFactoryg +ChromePhpBridgef #ZendMonitore Syslogd Stream	c Psr
b Null
a Noop` MongoDB_ Mongo
^ Mock
] Mail\ 9FormatterPluginManager[ FirePhpZ )FingersCrossedY 3FilterPluginManagerX DbW ChromePhpV )AbstractWriterU RequestIdT #ReferenceIdS )PsrPlaceholderR Backtrace	Q XmlP SimpleO FirePhpN -ExceptionHandlerM %ErrorHandlerL DbK ChromePhp
J BaseI ValidatorH TimestampG )SuppressFilterF SampleE RegexD Priority
C MockB -RuntimeExceptionA =InvalidArgumentException!@ CExtensionNotLoadedException ? AWriterPluginManagerFactory> 3WriterPluginManager= -PsrLoggerAdapter#< GProcessorPluginManagerFactory; 9ProcessorPluginManager: Module9 5LoggerServiceFactory"8 ELoggerAbstractServiceFactory7 Logger#6 GFormatterPluginManagerFactory5 9FormatterPluginManager 4 AFilterPluginManagerFactory3 3FilterPluginManager2 )ConfigProvider1 'FirePhpBridge0 +ChromePhpBridge/ #ZendMonitor. Syslog- Stream	, Psr
+ Null
* Noop) MongoDB
( Mock
' Mail& 9FormatterPluginManager% FirePhp$ )FingersCrossed# 3FilterPluginManager" Db! ChromePhp  )AbstractWriter RequestId    l\N@(n^QD7|o[C"	xYA viS8#








x
Y
8

							j	Z	L	>	&		
l\OB5zmYA vW?tgQ6!vW6hXJ<$jZM@3         
 Null` InMemory` #FileOptions`
 File` Factory` Envelope` Maildir_
 -RuntimeException^	 =InvalidArgumentException^
 File]
 File\
 Mbox[ Maildir[ -RuntimeExceptionZ 5OutOfBoundsExceptionZ =InvalidArgumentExceptionZ
 Pop3Y
  PartY MessageY
~ MboxY} MaildirY
| ImapY{ FolderYz +AbstractStorageYy PlainXx LoginXw Crammd5Xv -RuntimeExceptionWu =InvalidArgumentExceptionWt =SmtpPluginManagerFactoryVs /SmtpPluginManagerV
r SmtpV
q Pop3V
p ImapVo -AbstractProtocolVn -RuntimeExceptionUm =InvalidArgumentExceptionUl 9BadMethodCallExceptionUk ToTj SubjectTi SenderTh ReplyToTg ReceivedTf #MimeVersionTe MessageIdTd !HeaderWrapTc #HeaderValueTb !HeaderNameTa %HeaderLoaderT` 1GenericMultiHeaderT_ 'GenericHeaderT
^ FromT
] DateT\ #ContentTypeT[ ;ContentTransferEncodingTZ CcT	Y BccTX 3AbstractAddressListTW -RuntimeExceptionSV 5OutOfBoundsExceptionSU =InvalidArgumentExceptionST +DomainExceptionSS 9BadMethodCallExceptionSR StorageRQ ModuleRP )MessageFactoryRO MessageRN HeadersRM )ConfigProviderRL #AddressListRK AddressRJ -RuntimeExceptionPI =InvalidArgumentExceptionPH +DomainExceptionPG #SmtpOptionsO
F SmtpOE SendmailO
D NullOC InMemoryOB #FileOptionsO
A FileO@ FactoryO? EnvelopeO> MaildirN= -RuntimeExceptionM< =InvalidArgumentExceptionM
; FileL
: FileK
9 MboxJ8 MaildirJ7 -RuntimeExceptionI6 5OutOfBoundsExceptionI5 =InvalidArgumentExceptionI
4 Pop3H
3 PartH2 MessageH
1 MboxH0 MaildirH
/ ImapH. FolderH- +AbstractStorageH, PlainG+ LoginG* Crammd5G) -RuntimeExceptionF( =InvalidArgumentExceptionF' =SmtpPluginManagerFactoryE& /SmtpPluginManagerE
% SmtpE
$ Pop3E
# ImapE" -AbstractProtocolE! -RuntimeExceptionD  =InvalidArgumentExceptionD 9BadMethodCallExceptionD ToC SubjectC SenderC ReplyToC ReceivedC #MimeVersionC MessageIdC !HeaderWrapC #HeaderValueC !HeaderNameC %HeaderLoaderC 1GenericMultiHeaderC 'GenericHeaderC
 FromC
 DateC #ContentTypeC ;ContentTransferEncodingC CcC	 BccC 3AbstractAddressListC
 -RuntimeExceptionB	 5OutOfBoundsExceptionB =InvalidArgumentExceptionB +DomainExceptionB 9BadMethodCallExceptionB StorageA ModuleA )MessageFactoryA MessageA HeadersA  )ConfigProviderA #AddressListA~ AddressA} -RuntimeException?| =InvalidArgumentException?{ +DomainException?z #SmtpOptions>
y Smtp>x Sendmail>
w Null>v InMemory>u #FileOptions>
t File>s Factory>r Envelope>q Maildir=p -RuntimeException<o =InvalidArgumentException<
n File;
m File:
l Mbox9k Maildir9j -RuntimeException8i 5OutOfBoundsException8h =InvalidArgumentException8
g Pop37
f Part7e Message7
d Mbox7c Maildir7
b Imap7a Folder7` +AbstractStorage7_ Plain6^ Login6] Crammd56\ -RuntimeException5[ =InvalidArgumentException5Z /SmtpPluginManager4
Y Smtp4
X Pop34
W Imap4V -AbstractProtocol4   O |oR?0$xeXE6*
~k^K<0qdQB6tfL3$







g
X
H
;
.
								m	W	6	t\8fR<mYAdK7! sR>&jI0oX7#gO                           ' +ServiceListener& 3OnBootstrapListener% 9ModuleResolverListener$ 5ModuleLoaderListener%# KModuleDependencyCheckerListener!" CLocatorRegistrationListener! +ListenerOptions  #InitTrigger =DefaultListenerAggregate )ConfigListener 1AutoloaderListener -AbstractListener -RuntimeException& MMissingDependencyModuleException =InvalidArgumentException 'ModuleManager #ModuleEvent -RuntimeException =InvalidArgumentException +ServiceListener 3OnBootstrapListener 9ModuleResolverListener 5ModuleLoaderListener% KModuleDependencyCheckerListener! CLocatorRegistrationListener +ListenerOptions #InitTrigger =DefaultListenerAggregate )ConfigListener
 1AutoloaderListener	 -AbstractListener -RuntimeException& MMissingDependencyModuleException =InvalidArgumentException 'ModuleManager #ModuleEvent -RuntimeException =InvalidArgumentException +ServiceListener  3OnBootstrapListener 9ModuleResolverListener~ 5ModuleLoaderListener%} KModuleDependencyCheckerListener!| CLocatorRegistrationListener{ +ListenerOptionsz #InitTriggery =DefaultListenerAggregatex )ConfigListenerw 1AutoloaderListenerv -AbstractListeneru -RuntimeException&t MMissingDependencyModuleExceptions =InvalidArgumentExceptionr 'ModuleManagerq #ModuleEventp -RuntimeExceptiono =InvalidArgumentExceptionn +ServiceListenerm 3OnBootstrapListenerl 9ModuleResolverListenerk 5ModuleLoaderListener%j KModuleDependencyCheckerListener!i CLocatorRegistrationListenerh +ListenerOptionsg #InitTriggerf =DefaultListenerAggregatee )ConfigListenerd 1AutoloaderListenerc -AbstractListenerb -RuntimeException&a MMissingDependencyModuleException` =InvalidArgumentException_ 'ModuleManager^ #ModuleEvent] -RuntimeException\ =InvalidArgumentException
[ Part
Z MimeY MessageX DecodeW -RuntimeExceptionV =InvalidArgumentException
U Part
T MimeS MessageR DecodeQ -RuntimeException~P =InvalidArgumentException~
O Part}
N Mime}M Message}L Decode}K -RuntimeException|J =InvalidArgumentException|I Movable{H Locked{G -AccessController{F /AbstractContainer{E ValuezD 'MemoryManagerzC -RuntimeExceptionyB =InvalidArgumentExceptionyA +DomainExceptiony@ -RuntimeExceptionx? =InvalidArgumentExceptionx> ;DivisionByZeroExceptionx	= Gmpw< Bcmathw; !BigIntegerv
: Randu9 !HashTimingt8 -RuntimeExceptions7 =InvalidArgumentExceptions6 +DomainExceptions5 -RuntimeExceptionr4 =InvalidArgumentExceptionr3 ;DivisionByZeroExceptionr	2 Gmpq1 Bcmathq0 !BigIntegerp
/ Rando. !HashTimingn- -RuntimeExceptionm, =InvalidArgumentExceptionm+ +DomainExceptionm* -RuntimeExceptionl) =InvalidArgumentExceptionl( ;DivisionByZeroExceptionl	' Gmpk& Bcmathk% !BigIntegerj
$ Randi# !HashTimingh" -RuntimeExceptiong! =InvalidArgumentExceptiong  +DomainExceptiong -RuntimeExceptionf =InvalidArgumentExceptionf ;DivisionByZeroExceptionf	 Gmpe Bcmathe !BigIntegerd 5AdapterPluginManagerd
 Randc -RuntimeExceptiona =InvalidArgumentExceptiona +DomainExceptiona #SmtpOptions`
 Smtp` Sendmail`   ' ~bQ;nW3~fUI2`G/bM:






r
a
Q
B
5
'

						t	Y	C	%	^7	gH)[D,
cB"{_8rR4  _A- dB'             0 1AbstractController/ ?AbstractConsoleController. =AbstractActionController- 5SendResponseListener, 'RouteListener+ MvcEvent* 3ModuleRouteListener) 1HttpMethodListener( -DispatchListener' #Application& #ViewManager% 7RouteNotFoundStrategy$ ;InjectViewModelListener# 9InjectTemplateListener$" IInjectRoutematchParamsListener! /ExceptionStrategy  =DefaultRenderingStrategy ;CreateViewModelListener #ViewManager 7RouteNotFoundStrategy ;InjectViewModelListener& MInjectNamedConsoleParamsListener /ExceptionStrategy =DefaultRenderingStrategy ;CreateViewModelListener 5SendResponseListener" EViewTemplatePathStackFactory$ IViewTemplateMapResolverFactory 3ViewResolverFactory( QViewPrefixPathStackResolverFactory 1ViewManagerFactory ;ViewJsonStrategyFactory =ViewHelperManagerFactory ;ViewFeedStrategyFactory ;ValidatorManagerFactory =TranslatorServiceFactory$ ITranslatorPluginManagerFactory 5ServiceManagerConfig
 9ServiceListenerFactory+	 WSerializerAdapterPluginManagerFactory 'RouterFactory ?RoutePluginManagerFactory +ResponseFactory )RequestFactory# GPaginatorPluginManagerFactory 5ModuleManagerFactory ;LogWriterManagerFactory  ALogProcessorManagerFactory  ?InputFilterManagerFactory# GInjectTemplateListenerFactory~ 9HydratorManagerFactory} 9HttpViewManagerFactory| ?HttpMethodListenerFactory{ ?FormElementManagerFactory"z EFormAnnotationBuilderFactoryy 5FilterManagerFactoryx 3EventManagerFactory+w WDiStrictAbstractServiceFactoryFactory$v IDiStrictAbstractServiceFactory!u CDiServiceInitializerFactoryt DiFactory%s KDiAbstractServiceFactoryFactory$r IControllerPluginManagerFactoryq ;ControllerLoaderFactoryp ?ConsoleViewManagerFactoryo 7ConsoleAdapterFactoryn 'ConfigFactorym 1ApplicationFactory"l EAbstractPluginManagerFactoryk Wildcardj )TreeRouteStack#i GTranslatorAwareTreeRouteStackh Segmentg Schemef !RouteMatche Regexd Query
c Partb Methoda Literal` Hostname_ Chain^ -RuntimeException] =InvalidArgumentException\ -SimpleRouteStack[ SimpleZ !RouteMatchY CatchallX -SimpleRouteStackW 1RoutePluginManagerV !RouteMatchU %PriorityList T ASimpleStreamResponseSenderS /SendResponseEvent"R EPhpEnvironmentResponseSenderQ 1HttpResponseSenderP 7ConsoleResponseSenderO 9AbstractResponseSenderN !TranslatorM +DummyTranslatorL -RuntimeExceptionK ;MissingLocatorExceptionJ 9InvalidPluginException I AInvalidControllerExceptionH =InvalidArgumentExceptionG +DomainExceptionF 9BadMethodCallExceptionE +IdentityFactoryD )ForwardFactory	C UrlB RedirectA +PostRedirectGet@ Params? Layout> Identity= Forward< )FlashMessenger; 3FilePostRedirectGet: ;CreateHttpNotFoundModel 9 ACreateConsoleNotFoundModel!8 CAcceptableViewModelSelector7 )AbstractPlugin6 'PluginManager5 /ControllerManager4 ?AbstractRestfulController3 1AbstractController2 ?AbstractConsoleController1 =AbstractActionController0 5SendResponseListener/ 'RouteListener. MvcEvent- 3ModuleRouteListener, 1HttpMethodListener+ -DispatchListener* #Application) -RuntimeException( =InvalidArgumentException   ( sP0rZ;#o\=z_F5"ugYF7'





e
C
#					w	I	-	iC!lJ4bB!xS6t`@mY@%
gL*|`I9(              9 Identity8 Forward7 )FlashMessenger6 3FilePostRedirectGet5 ;CreateHttpNotFoundModel 4 ACreateConsoleNotFoundModel!3 CAcceptableViewModelSelector2 )AbstractPlugin1 'PluginManager0 /ControllerManager/ ?AbstractRestfulController. 1AbstractController- ?AbstractConsoleController, =AbstractActionController+ 5SendResponseListener* 'RouteListener) MvcEvent( 3ModuleRouteListener' 1MiddlewareListener& 1HttpMethodListener% -DispatchListener$ #Application# #ViewManager" 7RouteNotFoundStrategy! ;InjectViewModelListener  9InjectTemplateListener$ IInjectRoutematchParamsListener /ExceptionStrategy =DefaultRenderingStrategy ;CreateViewModelListener #ViewManager 7RouteNotFoundStrategy ;InjectViewModelListener& MInjectNamedConsoleParamsListener /ExceptionStrategy =DefaultRenderingStrategy ;CreateViewModelListener 5SendResponseListener" EViewTemplatePathStackFactory$ IViewTemplateMapResolverFactory 3ViewResolverFactory( QViewPrefixPathStackResolverFactory 1ViewManagerFactory ;ViewJsonStrategyFactory =ViewHelperManagerFactory ;ViewFeedStrategyFactory ;ValidatorManagerFactory
 =TranslatorServiceFactory$	 ITranslatorPluginManagerFactory 5ServiceManagerConfig 9ServiceListenerFactory+ WSerializerAdapterPluginManagerFactory 'RouterFactory ?RoutePluginManagerFactory +ResponseFactory )RequestFactory# GPaginatorPluginManagerFactory  5ModuleManagerFactory ;LogWriterManagerFactory ~ ALogProcessorManagerFactory} ?InputFilterManagerFactory#| GInjectTemplateListenerFactory{ 9HydratorManagerFactoryz 9HttpViewManagerFactoryy ?HttpMethodListenerFactoryx ?FormElementManagerFactory"w EFormAnnotationBuilderFactoryv 5FilterManagerFactoryu 3EventManagerFactory+t WDiStrictAbstractServiceFactoryFactory$s IDiStrictAbstractServiceFactory!r CDiServiceInitializerFactoryq DiFactory%p KDiAbstractServiceFactoryFactory$o IControllerPluginManagerFactoryn ;ControllerLoaderFactorym ?ConsoleViewManagerFactoryl 7ConsoleAdapterFactoryk 'ConfigFactoryj 1ApplicationFactory"i EAbstractPluginManagerFactoryh Wildcardg )TreeRouteStack#f GTranslatorAwareTreeRouteStacke Segmentd Schemec !RouteMatchb Regexa Query
` Part_ Method^ Literal] Hostname\ Chain[ -RuntimeExceptionZ =InvalidArgumentExceptionY -SimpleRouteStackX SimpleW !RouteMatchV CatchallU -SimpleRouteStackT 1RoutePluginManagerS !RouteMatchR %PriorityList Q ASimpleStreamResponseSenderP /SendResponseEvent"O EPhpEnvironmentResponseSenderN 1HttpResponseSenderM 7ConsoleResponseSenderL 9AbstractResponseSenderK !TranslatorJ +DummyTranslatorI -RuntimeExceptionH ;MissingLocatorExceptionG 9InvalidPluginException F AInvalidControllerExceptionE =InvalidArgumentExceptionD +DomainExceptionC 9BadMethodCallExceptionB +IdentityFactoryA )ForwardFactory	@ Url? Redirect> +PostRedirectGet= Params< Layout; Identity: Forward9 )FlashMessenger8 3FilePostRedirectGet7 ;CreateHttpNotFoundModel 6 ACreateConsoleNotFoundModel!5 CAcceptableViewModelSelector4 )AbstractPlugin3 'PluginManager2 /ControllerManager1 ?AbstractRestfulController    ~_G&aC(eL;( {m_L=-kC




p
H
6
					d	?	gH)[D,
cB"sL!|[AkD%pTC-kG'   ? Forward> ;CreateHttpNotFoundModel!= CAcceptableViewModelSelector< )AbstractPlugin; 'PluginManager: /ControllerManager9 ?AbstractRestfulController8 1AbstractController7 =AbstractActionController6 5SendResponseListener5 'RouteListener4 MvcEvent3 3ModuleRouteListener2 1MiddlewareListener1 1HttpMethodListener0 -DispatchListener/ #Application. #ViewManager- 7RouteNotFoundStrategy, ;InjectViewModelListener+ 9InjectTemplateListener$* IInjectRoutematchParamsListener) /ExceptionStrategy( =DefaultRenderingStrategy' ;CreateViewModelListener& #ViewManager% 7RouteNotFoundStrategy$ ;InjectViewModelListener&# MInjectNamedConsoleParamsListener" /ExceptionStrategy! =DefaultRenderingStrategy  ;CreateViewModelListener 5SendResponseListener" EViewTemplatePathStackFactory$ IViewTemplateMapResolverFactory 3ViewResolverFactory( QViewPrefixPathStackResolverFactory$ IViewPhpRendererStrategyFactory 9ViewPhpRendererFactory 1ViewManagerFactory ;ViewJsonStrategyFactory =ViewHelperManagerFactory ;ViewFeedStrategyFactory #ViewFactory ;ValidatorManagerFactory =TranslatorServiceFactory$ ITranslatorPluginManagerFactory 5ServiceManagerConfig 9ServiceListenerFactory+ WSerializerAdapterPluginManagerFactory 'RouterFactory ?RoutePluginManagerFactory +ResponseFactory
 )RequestFactory#	 GPaginatorPluginManagerFactory 5ModuleManagerFactory ;LogWriterManagerFactory  ALogProcessorManagerFactory ?InputFilterManagerFactory# GInjectTemplateListenerFactory 9HydratorManagerFactory 9HttpViewManagerFactory /HttpRouterFactory&  MHttpRouteNotFoundStrategyFactory ?HttpMethodListenerFactory"~ EHttpExceptionStrategyFactory)} SHttpDefaultRenderingStrategyFactory| ?FormElementManagerFactory"{ EFormAnnotationBuilderFactoryz 5FilterManagerFactoryy 3EventManagerFactory+x WDiStrictAbstractServiceFactoryFactory$w IDiStrictAbstractServiceFactoryv ;DispatchListenerFactory!u CDiServiceInitializerFactoryt DiFactory%s KDiAbstractServiceFactoryFactory$r IControllerPluginManagerFactoryq =ControllerManagerFactoryp ;ControllerLoaderFactoryo ?ConsoleViewManagerFactoryn 5ConsoleRouterFactory)m SConsoleRouteNotFoundStrategyFactory%l KConsoleExceptionStrategyFactoryk 7ConsoleAdapterFactoryj 'ConfigFactoryi 1ApplicationFactory"h EAbstractPluginManagerFactoryg Wildcardf )TreeRouteStack#e GTranslatorAwareTreeRouteStackd Segmentc Schemeb !RouteMatcha Regex` Query
_ Part^ Method] Literal\ Hostname[ ChainZ -RuntimeExceptionY =InvalidArgumentExceptionX -SimpleRouteStackW SimpleV !RouteMatchU CatchallT -SimpleRouteStackS 1RoutePluginManagerR !RouteMatchQ 7RouteInvokableFactoryP %PriorityList O ASimpleStreamResponseSenderN /SendResponseEvent"M EPhpEnvironmentResponseSenderL 1HttpResponseSenderK 7ConsoleResponseSenderJ 9AbstractResponseSenderI !TranslatorH +DummyTranslatorG -RuntimeExceptionF ;MissingLocatorExceptionE 9InvalidPluginException D AInvalidControllerExceptionC =InvalidArgumentExceptionB +DomainExceptionA 9BadMethodCallException@ +IdentityFactory? )ForwardFactory	> Url= Redirect< +PostRedirectGet; Params: Layout   ! wV3|b?e9gA*aF' 



m
M
,
					z	f	M	2	{Y?{l]L@)
lL'rM2lG%t]E!pU6|\;!                           > /ExceptionStrategy= =DefaultRenderingStrategy< ;CreateViewModelListener"; EViewTemplatePathStackFactory$: IViewTemplateMapResolverFactory9 3ViewResolverFactory(8 QViewPrefixPathStackResolverFactory$7 IViewPhpRendererStrategyFactory6 9ViewPhpRendererFactory5 1ViewManagerFactory4 ;ViewJsonStrategyFactory3 =ViewHelperManagerFactory2 ;ViewFeedStrategyFactory1 #ViewFactory0 5ServiceManagerConfig/ 9ServiceListenerFactory!. CSendResponseListenerFactory- +ResponseFactory, )RequestFactory#+ GPaginatorPluginManagerFactory* 5ModuleManagerFactory#) GInjectTemplateListenerFactory( 9HttpViewManagerFactory&' MHttpRouteNotFoundStrategyFactory& ?HttpMethodListenerFactory"% EHttpExceptionStrategyFactory)$ SHttpDefaultRenderingStrategyFactory# 3EventManagerFactory" ;DispatchListenerFactory$! IControllerPluginManagerFactory  =ControllerManagerFactory 'ConfigFactory 1ApplicationFactory" EAbstractPluginManagerFactory  ASimpleStreamResponseSender /SendResponseEvent" EPhpEnvironmentResponseSender 1HttpResponseSender 9AbstractResponseSender -RuntimeException" EReachedFinalHandlerException ;MissingLocatorException 9InvalidPluginException  AInvalidMiddlewareException  AInvalidControllerException =InvalidArgumentException +DomainException 9BadMethodCallException )ForwardFactory	 Url Redirect Params
 Layout	 Forward ;CreateHttpNotFoundModel! CAcceptableViewModelSelector )AbstractPlugin 'PluginManager 5MiddlewareController# GLazyControllerAbstractFactory /ControllerManager ?AbstractRestfulController  1AbstractController =AbstractActionController~ 5SendResponseListener} 'RouteListener| MvcEvent{ 3ModuleRouteListenerz 1MiddlewareListenery 1HttpMethodListenerx -DispatchListenerw #Applicationv #ViewManageru 7RouteNotFoundStrategyt ;InjectViewModelListeners 9InjectTemplateListener$r IInjectRoutematchParamsListenerq /ExceptionStrategyp =DefaultRenderingStrategyo ;CreateViewModelListener"n EViewTemplatePathStackFactory$m IViewTemplateMapResolverFactoryl 3ViewResolverFactory(k QViewPrefixPathStackResolverFactory$j IViewPhpRendererStrategyFactoryi 9ViewPhpRendererFactoryh 1ViewManagerFactoryg ;ViewJsonStrategyFactoryf =ViewHelperManagerFactorye ;ViewFeedStrategyFactoryd #ViewFactoryc 5ServiceManagerConfigb 9ServiceListenerFactorya +ResponseFactory` )RequestFactory#_ GPaginatorPluginManagerFactory^ 5ModuleManagerFactory#] GInjectTemplateListenerFactory\ 9HttpViewManagerFactory&[ MHttpRouteNotFoundStrategyFactoryZ ?HttpMethodListenerFactory"Y EHttpExceptionStrategyFactory)X SHttpDefaultRenderingStrategyFactoryW 3EventManagerFactoryV ;DispatchListenerFactory$U IControllerPluginManagerFactoryT =ControllerManagerFactoryS 'ConfigFactoryR 1ApplicationFactory"Q EAbstractPluginManagerFactory P ASimpleStreamResponseSenderO /SendResponseEvent"N EPhpEnvironmentResponseSenderM 1HttpResponseSenderL 9AbstractResponseSenderK -RuntimeExceptionJ ;MissingLocatorExceptionI 9InvalidPluginException H AInvalidControllerExceptionG =InvalidArgumentExceptionF +DomainExceptionE 9BadMethodCallExceptionD )ForwardFactory	C UrlB RedirectA Params@ Layout   8 |hN;wR1nQ<0$~^D-uiG"



y
_
H
9
&
							b	=	wgU;xW>thXH8sbK:-s[:! l\M;!ybQD3rQ8      S -RuntimeExceptionR =InvalidArgumentExceptionQ +IteratorFactoryP 7DbTableGatewayFactoryO +DbSelectFactoryN +CallbackFactoryM =UnexpectedValueExceptionL -RuntimeExceptionK =InvalidArgumentExceptionJ NullFill
I NullH IteratorG )DbTableGatewayF DbSelectE CallbackD %ArrayAdapterC ?SerializableLimitIterator(B QScrollingStylePluginManagerFactory!A CScrollingStylePluginManager@ /PaginatorIterator? Paginator> Module= Factory< )ConfigProvider!; CAdapterPluginManagerFactory: 5AdapterPluginManager9 Sliding8 Jumping7 Elastic	6 All5 =UnexpectedValueException4 -RuntimeException3 =InvalidArgumentException2 +IteratorFactory1 7DbTableGatewayFactory0 +DbSelectFactory/ +CallbackFactory. =UnexpectedValueException- -RuntimeException, =InvalidArgumentException+ NullFill
* Null) Iterator( )DbTableGateway' DbSelect& Callback% %ArrayAdapter$ ?SerializableLimitIterator!# CScrollingStylePluginManager" /PaginatorIterator! Paginator  Factory 5AdapterPluginManager Sliding Jumping Elastic	 All =UnexpectedValueException -RuntimeException =InvalidArgumentException 7DbTableGatewayFactory +DbSelectFactory +CallbackFactory =UnexpectedValueException -RuntimeException =InvalidArgumentException NullFill
 Null Iterator )DbTableGateway DbSelect Callback %ArrayAdapter
 ?SerializableLimitIterator!	 CScrollingStylePluginManager /PaginatorIterator Paginator Factory 5AdapterPluginManager' OViewHelperManagerDelegatorFactory ;NavigationHelperFactory %HelperConfig& MNavigationAbstractServiceFactory  =DefaultNavigationFactory" EConstructedNavigationFactory~ ?AbstractNavigationFactory	} Uri	| Mvc{ %AbstractPagez 5OutOfBoundsExceptiony =InvalidArgumentExceptionx +DomainExceptionw 9BadMethodCallExceptionv !Navigationu Modulet )ConfigProviders /AbstractContainer'r OViewHelperManagerDelegatorFactoryq ;NavigationHelperFactoryp %HelperConfig&o MNavigationAbstractServiceFactoryn =DefaultNavigationFactory"m EConstructedNavigationFactoryl ?AbstractNavigationFactory	k Uri	j Mvci %AbstractPageh 5OutOfBoundsExceptiong =InvalidArgumentExceptionf +DomainExceptione 9BadMethodCallExceptiond !Navigationc Moduleb )ConfigProvidera /AbstractContainer` ;NavigationHelperFactory_ %HelperConfig&^ MNavigationAbstractServiceFactory] =DefaultNavigationFactory"\ EConstructedNavigationFactory[ ?AbstractNavigationFactory	Z Uri	Y MvcX %AbstractPageW 5OutOfBoundsExceptionV =InvalidArgumentExceptionU +DomainExceptionT 9BadMethodCallExceptionS !NavigationR /AbstractContainerQ %HelperConfig&P MNavigationAbstractServiceFactoryO =DefaultNavigationFactory"N EConstructedNavigationFactoryM ?AbstractNavigationFactory	L Uri	K MvcJ %AbstractPageI 5OutOfBoundsExceptionH =InvalidArgumentExceptionG +DomainExceptionF 9BadMethodCallExceptionE !NavigationD /AbstractContainerC #ViewManagerB 7RouteNotFoundStrategyA ;InjectViewModelListener@ 9InjectTemplateListener$? IInjectRoutematchParamsListener   V bK;, ziXA0#iQ0z`>mK*







r
Q
=
%

						`	G	)	viUE5 pS@( ylX4hQ@3tS:s_O?*zcUB/uhV    x Prototype#
w Node#v -AbstractFunction#u Prototype"t Parameter"s !Definition"r Callback"q -RuntimeException!p =InvalidArgumentException!o 9BadMethodCallException!n !Reflection m !Definition l Cache k )AbstractServer j -RuntimeExceptioni =InvalidArgumentException!h CExtensionNotLoadedExceptiong #WddxOptions
f Wddxe 3PythonPickleOptionsd %PythonPicklec %PhpSerializeb PhpCodea MsgPack` #JsonOptions
_ Json^ IgBinary] )AdapterOptions\ +AbstractAdapter[ !SerializerZ ModuleY )ConfigProvider!X CAdapterPluginManagerFactoryW 5AdapterPluginManagerV -RuntimeExceptionU =InvalidArgumentException!T CExtensionNotLoadedExceptionS #WddxOptions
R WddxQ 3PythonPickleOptionsP %PythonPickleO %PhpSerializeN PhpCodeM MsgPackL #JsonOptions
K JsonJ IgBinaryI )AdapterOptionsH +AbstractAdapterG !SerializerF ModuleE )ConfigProvider!D CAdapterPluginManagerFactoryC 5AdapterPluginManagerB -RuntimeExceptionA =InvalidArgumentException!@ CExtensionNotLoadedException? #WddxOptions
> Wddx= 3PythonPickleOptions< %PythonPickle; %PhpSerialize: PhpCode9 MsgPack8 #JsonOptions
7 Json6 IgBinary5 )AdapterOptions4 +AbstractAdapter3 !Serializer2 5AdapterPluginManager1 -RuntimeException0 =InvalidArgumentException!/ CExtensionNotLoadedException. #WddxOptions
- Wddx, 3PythonPickleOptions+ %PythonPickle* %PhpSerialize) PhpCode( MsgPack' #JsonOptions
& Json% IgBinary$ )AdapterOptions# +AbstractAdapter" !Serializer! 5AdapterPluginManager  )UploadProgress +SessionProgress #ApcProgress 7AbstractUploadHandler -RuntimeException ;PhpEnvironmentException 3OutOfRangeException =InvalidArgumentException -RuntimeException =InvalidArgumentException JsPush JsPull Console +AbstractAdapter #ProgressBar =InvalidArgumentException /CallbackAssertion
 Role
 Rbac %AbstractRole -AbstractIterator Registry
 #GenericRole	 +GenericResource
 -RuntimeException	 =InvalidArgumentException	 ?InvalidAssertionException /CallbackAssertion -AssertionManager 1AssertionAggregate	 Acl Registry  #GenericRole +GenericResource~ -RuntimeException} =InvalidArgumentException| ?InvalidAssertionException{ /CallbackAssertionz -AssertionManagery 1AssertionAggregate	x Acl w Slidingv Jumpingu Elastic	t Alls =UnexpectedValueExceptionr -RuntimeExceptionq =InvalidArgumentExceptionp +IteratorFactoryo 7DbTableGatewayFactoryn +DbSelectFactorym +CallbackFactoryl =UnexpectedValueExceptionk -RuntimeExceptionj =InvalidArgumentExceptioni NullFill
h Nullg Iteratorf )DbTableGatewaye DbSelectd Callbackc %ArrayAdapterb ?SerializableLimitIterator(a QScrollingStylePluginManagerFactory!` CScrollingStylePluginManager_ /PaginatorIterator^ Paginator] Module\ Factory[ )ConfigProvider!Z CAdapterPluginManagerFactoryY 5AdapterPluginManagerX SlidingW JumpingV Elastic	U AllT =UnexpectedValueException   - z[:!
}lYG5wX7ziVD2tU4





~
a
8
					o	N	3	tW.eD)jM$~[:!nM-
q?"iK<%pP-                         AServiceNotCreatedExceptionI~ ;InvalidServiceExceptionI} =InvalidArgumentExceptionI| 5CyclicAliasExceptionI/{ _ContainerModificationsNotAllowedExceptionI$z IReflectionBasedAbstractFactoryHy 7ConfigAbstractFactoryHx )ServiceManagerGw ConfigGv 7AbstractPluginManagerGu 1LazyServiceFactoryDt -InvokableFactoryCs =ServiceNotFoundExceptionB r AServiceNotCreatedExceptionBq ;InvalidServiceExceptionBp =InvalidArgumentExceptionBo 5CyclicAliasExceptionB/n _ContainerModificationsNotAllowedExceptionBm )ServiceManagerAl ConfigAk 7AbstractPluginManagerAj 1LazyServiceFactory?i -InvokableFactory>h =ServiceNotFoundException= g AServiceNotCreatedException=f ;InvalidServiceException=e =InvalidArgumentException=/d _ContainerModificationsNotAllowedException=c )ServiceManager<b Config<a 7AbstractPluginManager<` ?LazyServiceFactoryFactory;_ 1LazyServiceFactory;^ -InvokableFactory:] =ServiceNotFoundException9 \ AServiceNotCreatedException9"[ EServiceLocatorUsageException9Z -RuntimeException9!Y CInvalidServiceNameException9X =InvalidArgumentException9 W ACircularReferenceException9&V MCircularDependencyFoundException9U 5DiServiceInitializer8T -DiServiceFactory8S 9DiInstanceManagerProxy8R =DiAbstractServiceFactory8Q )ServiceManager7P Config7O 7AbstractPluginManager7N ?LazyServiceFactoryFactory6M 1LazyServiceFactory6L =ServiceNotFoundException5 K AServiceNotCreatedException5"J EServiceLocatorUsageException5I -RuntimeException5!H CInvalidServiceNameException5G =InvalidArgumentException5 F ACircularReferenceException5&E MCircularDependencyFoundException5D 5DiServiceInitializer4C -DiServiceFactory4B 9DiInstanceManagerProxy4A =DiAbstractServiceFactory4@ )ServiceManager3? Config3> 7AbstractPluginManager3= ?LazyServiceFactoryFactory2< 1LazyServiceFactory2; =ServiceNotFoundException1 : AServiceNotCreatedException1"9 EServiceLocatorUsageException18 -RuntimeException1!7 CInvalidServiceNameException16 =InvalidArgumentException1 5 ACircularReferenceException1&4 MCircularDependencyFoundException13 5DiServiceInitializer02 -DiServiceFactory01 9DiInstanceManagerProxy00 =DiAbstractServiceFactory0/ )ServiceManager/. Config/- 7AbstractPluginManager/, -RuntimeException.+ =InvalidArgumentException.* 9BadMethodCallException.) 7ReflectionReturnValue-( 3ReflectionParameter-' -ReflectionMethod-& 1ReflectionFunction-% +ReflectionClass-$ Prototype-
# Node-" -AbstractFunction-! Prototype,  Parameter, !Definition, Callback, -RuntimeException+ =InvalidArgumentException+ 9BadMethodCallException+ !Reflection* !Definition* Cache* )AbstractServer* -RuntimeException) =InvalidArgumentException) 9BadMethodCallException) 7ReflectionReturnValue( 3ReflectionParameter( -ReflectionMethod( 1ReflectionFunction( +ReflectionClass( Prototype(
 Node( -AbstractFunction( Prototype'
 Parameter'	 !Definition' Callback' -RuntimeException& =InvalidArgumentException& 9BadMethodCallException& !Reflection% !Definition% Cache% )AbstractServer%  -RuntimeException$ =InvalidArgumentException$~ 9BadMethodCallException$} 7ReflectionReturnValue#| 3ReflectionParameter#{ -ReflectionMethod#z 1ReflectionFunction#y +ReflectionClass#   > zcE'mL,	lN4
oVH1rN9)






r
\
E
&
							Z	=		vcI/jK*bD-	mWL9tU4lN7waVC.xW>         -RuntimeExceptionv =InvalidArgumentExceptionv! CExtensionNotLoadedExceptionv 9BadMethodCallExceptionv Localu DotNetu Commonu 3ReflectionDiscoveryt
 Wsdls Servers Clients %AutoDiscovers
 !RemoteAddrr	 Idr 'HttpUserAgentr ?AbstractValidatorChainEM3r ?AbstractValidatorChainEM2r )SessionStorageq 3SessionArrayStorageq Factoryq %ArrayStorageq! CAbstractSessionArrayStorageq  )StorageFactoryp 7SessionManagerFactoryp~ 5SessionConfigFactoryp%} KContainerAbstractServiceFactoryp| )MongoDBOptionso{ MongoDBoz 7DbTableGatewayOptionsoy )DbTableGatewayox Cacheow -RuntimeExceptionnv =InvalidArgumentExceptionnu 9BadMethodCallExceptionnt )StandardConfigms 'SessionConfigmr )ValidatorChainlq )SessionManagerlp Modulelo Containerln )ConfigProviderlm +AbstractManagerll /AbstractContainerlk !RemoteAddrkj Idki 'HttpUserAgentkh ?AbstractValidatorChainEM3kg ?AbstractValidatorChainEM2kf )SessionStorageje 3SessionArrayStoragejd Factoryjc %ArrayStoragej!b CAbstractSessionArrayStorageja )StorageFactoryi` 7SessionManagerFactoryi_ 5SessionConfigFactoryi%^ KContainerAbstractServiceFactoryi] )MongoDBOptionsh\ MongoDBh[ 7DbTableGatewayOptionshZ )DbTableGatewayhY CachehX -RuntimeExceptiongW =InvalidArgumentExceptiongV 9BadMethodCallExceptiongU )StandardConfigfT 'SessionConfigfS )ValidatorChaineR )SessionManagereQ ModuleeP ContainereO )ConfigProvidereN +AbstractManagereM /AbstractContainereL /ValidatorChainEM3dK /ValidatorChainEM2dJ !RemoteAddrdI 'HttpUserAgentdH )SessionStoragecG 3SessionArrayStoragecF FactorycE %ArrayStoragec!D CAbstractSessionArrayStoragecC )StorageFactorybB 7SessionManagerFactorybA 5SessionConfigFactoryb%@ KContainerAbstractServiceFactoryb? )MongoDBOptionsa> MongoDBa= 7DbTableGatewayOptionsa< )DbTableGatewaya; Cachea: -RuntimeException`9 =InvalidArgumentException`8 9BadMethodCallException`7 )StandardConfig_6 'SessionConfig_5 )SessionManager^4 Container^3 +AbstractManager^2 /AbstractContainer^1 !RemoteAddr]0 'HttpUserAgent]/ )SessionStorage\. 3SessionArrayStorage\- Factory\, %ArrayStorage\!+ CAbstractSessionArrayStorage\* )StorageFactory[) 7SessionManagerFactory[( 5SessionConfigFactory[%' KContainerAbstractServiceFactory[& )MongoDBOptionsZ% MongoDBZ$ 7DbTableGatewayOptionsZ# )DbTableGatewayZ" CacheZ! -RuntimeExceptionY  =InvalidArgumentExceptionY 9BadMethodCallExceptionY )StandardConfigX 'SessionConfigX )ValidatorChainW )SessionManagerW ContainerW +AbstractManagerW /AbstractContainerW 7FactoryCreatorCommandT )FactoryCreatorT 3ConfigDumperCommandT %ConfigDumperT 1LazyServiceFactoryS -InvokableFactoryR =ServiceNotFoundExceptionQ  AServiceNotCreatedExceptionQ ;InvalidServiceExceptionQ =InvalidArgumentExceptionQ 5CyclicAliasExceptionQ/ _ContainerModificationsNotAllowedExceptionQ$ IReflectionBasedAbstractFactoryP
 7ConfigAbstractFactoryP	 )ServiceManagerO ConfigO 7AbstractPluginManagerO 7FactoryCreatorCommandL )FactoryCreatorL 3ConfigDumperCommandL %ConfigDumperL 1LazyServiceFactoryK -InvokableFactoryJ  =ServiceNotFoundExceptionI   Q qUC(]<#xfK=0 yX2vbP@




m
J
#
					[	8	sa@#	eV=1#}\J)oN?&fE8+vfVE2%sh[F5$qaQ             4 Code1283 Codabar2 +AbstractAdapter1 9ValidatorPluginManager0 )ValidatorChain	/ Uri. Timezone- %StringLength
, Step+ +StaticValidator* Regex) NotEmpty( LessThan' %IsInstanceOf
& Isbn% Ip$ InArray# Identical
" Iban! Hostname	  Hex #GreaterThan Explode %EmailAddress Digits DateStep
 Date
 Csrf !CreditCard Callback Bitwise Between Barcode /AbstractValidator ;InvalidUriPartException 3InvalidUriException =InvalidArgumentException !UriFactory	 Uri Mailto
 Http
 File
 =UnexpectedValueException	 /OverflowException 5OutOfBoundsException ?InvalidDecoratorException =InvalidArgumentException Unicode Blank Ascii Table	 Row  -DecoratorManager Column~ =UnexpectedValueException} -RuntimeException| =InvalidArgumentException{ Figletz =UnexpectedValueExceptiony -RuntimeExceptionx /OverflowExceptionw 5OutOfBoundsExceptionv =InvalidArgumentExceptionu MultiBytet =UnexpectedValueExceptions /OverflowExceptionr 5OutOfBoundsExceptionq ?InvalidDecoratorExceptionp =InvalidArgumentExceptiono Unicoden Blankm Asciil Table	k Rowj -DecoratorManageri Columnh =UnexpectedValueExceptiong -RuntimeExceptionf =InvalidArgumentExceptione Figletd =UnexpectedValueExceptionc -RuntimeExceptionb /OverflowExceptiona 5OutOfBoundsException` =InvalidArgumentException_ MultiByte^ %ModuleLoader$] IAbstractHttpControllerTestCase \ AAbstractControllerTestCase'[ OAbstractConsoleControllerTestCaseZ %ModuleLoader$Y IAbstractHttpControllerTestCase X AAbstractControllerTestCase'W OAbstractConsoleControllerTestCaseV %ModuleLoader$U IAbstractHttpControllerTestCase T AAbstractControllerTestCase'S OAbstractConsoleControllerTestCaseR %ModuleLoader$Q IAbstractHttpControllerTestCase P AAbstractControllerTestCase'O OAbstractConsoleControllerTestCaseN 5OutOfBoundsException!M CInvalidElementNameException#L GInvalidAttributeNameExceptionK =InvalidArgumentExceptionJ =InvalidArgumentExceptionI HtmlTagH HtmlCloudG #AbstractTagF /AbstractDecoratorE 'AbstractCloudD 9DecoratorPluginManagerC ItemList
B ItemA Cloud@ 5OutOfBoundsException!? CInvalidElementNameException#> GInvalidAttributeNameException= =InvalidArgumentException< =InvalidArgumentException; HtmlTag: HtmlCloud9 #AbstractTag8 /AbstractDecorator7 'AbstractCloud6 9DecoratorPluginManager5 ItemList
4 Item3 Cloud2 1DefaultComplexType~1 Composite~0 3ArrayOfTypeSequence~/ 1ArrayOfTypeComplex~. AnyType~!- CAbstractComplexTypeStrategy~, 9DocumentLiteralWrapper}+ =UnexpectedValueException|* -RuntimeException|) =InvalidArgumentException|!( CExtensionNotLoadedException|' 9BadMethodCallException|& Local{% DotNet{$ Common{# 3ReflectionDiscoveryz
" Wsdly! Servery  Clienty %AutoDiscovery 1DefaultComplexTypex Compositex 3ArrayOfTypeSequencex 1ArrayOfTypeComplexx AnyTypex! CAbstractComplexTypeStrategyx 9DocumentLiteralWrapperw =UnexpectedValueExceptionv    yk]PC6'	uh[H5"zY3{fVJ9'o_O>+ 







}
k
[
P
C
.

								q	Y	I	9	*		|o`QB0n[H5"lSE7r`SF7$zjYB/"o_TG2!f@(            Code93 Code39ext  Code39 /Code25interleaved~ Code25} Code128| Codabar{ +AbstractAdapter#z GValidatorPluginManagerFactoryy 9ValidatorPluginManagerx )ValidatorChain	w Uriv Timezoneu %StringLength
t Steps +StaticValidatorr Regexq NotEmptyp Moduleo LessThann %IsInstanceOf
m Isbnl Ipk InArrayj Identical
i Ibanh Hostname	g Hexf #GreaterThane GpsPointd Explodec %EmailAddressb Digitsa DateStep
` Date
_ Csrf^ !CreditCard] )ConfigProvider\ Callback[ BitwiseZ BetweenY BarcodeX /AbstractValidatorW Priority	V LocU LastmodT !ChangefreqS Isbn13R Isbn10Q WordCountP !UploadFileO Upload
N Size
M Sha1L NotExistsK MimeType	J Md5I IsImageH %IsCompressedG ImageSize
F HashE FilesSizeD ExtensionC ExistsB +ExcludeMimeTypeA -ExcludeExtension@ Crc32? Count> -RuntimeException#= GInvalidMagicMimeFileException< =InvalidArgumentException!; CExtensionNotLoadedException: 9BadMethodCallException9 %RecordExists8 )NoRecordExists7 !AbstractDb6 !MyBarcode55 !MyBarcode44 !MyBarcode33 !MyBarcode22 !MyBarcode1
1 Upce
0 Upca
/ Sscc. Royalmail- Postnet, Planet+ Leitcode* Itf14
) Issn( +Intelligentmail' Identcode& Gtin14% Gtin13$ Gtin12
# Ean8
" Ean5
! Ean2  Ean18 Ean14 Ean13 Ean12 Code93ext Code93 Code39ext Code39 /Code25interleaved Code25 Code128 Codabar +AbstractAdapter 9ValidatorPluginManager )ValidatorChain	 Uri Timezone %StringLength
 Step +StaticValidator Regex NotEmpty
 LessThan	 %IsInstanceOf
 Isbn Ip InArray Identical
 Iban Hostname	 Hex #GreaterThan  GpsPoint Explode~ %EmailAddress} Digits| DateStep
{ Date
z Csrfy !CreditCardx Callbackw Bitwisev Betweenu Barcodet /AbstractValidators Priority	r Locq Lastmodp !Changefreqo WordCountn !UploadFilem Upload
l Size
k Sha1j NotExistsi MimeType	h Md5g IsImagef %IsCompressede ImageSize
d Hashc FilesSizeb Extensiona Exists` +ExcludeMimeType_ -ExcludeExtension^ Crc32] Count\ -RuntimeException#[ GInvalidMagicMimeFileExceptionZ =InvalidArgumentException!Y CExtensionNotLoadedExceptionX 9BadMethodCallExceptionW %RecordExistsV )NoRecordExistsU !AbstractDbT !MyBarcode5S !MyBarcode4R !MyBarcode3Q !MyBarcode2P !MyBarcode1
O Upce
N Upca
M SsccL RoyalmailK PostnetJ PlanetI LeitcodeH Itf14
G IssnF +IntelligentmailE IdentcodeD Gtin14C Gtin13B Gtin12
A Ean8
@ Ean5
? Ean2> Ean18= Ean14< Ean13; Ean12: Code93ext9 Code938 Code39ext7 Code396 /Code25interleaved5 Code25    qbP8+{hUB+seW>&sfWD2#ybOB5$ 








t
g
R
A
2
!
								y	S	;	+		xk^QB3$vcP=*tN5' qeTB5(|l\L;$pcQA6)~qZ; P Code39O /Code25interleavedN Code25M Code128L CodabarK +AbstractAdapter#J GValidatorPluginManagerFactoryI 9ValidatorPluginManagerH )ValidatorChain
G Uuid	F UriE TimezoneD %StringLength
C StepB +StaticValidatorA Regex@ NotEmpty? Module> LessThan= %IsInstanceOf
< Isbn; Ip: InArray9 Identical
8 Iban7 Hostname	6 Hex5 #GreaterThan4 GpsPoint3 Explode2 %EmailAddress1 Digits0 DateStep
/ Date
. Csrf- !CreditCard, )ConfigProvider+ Callback* Bitwise) Between( Barcode' /AbstractValidator& Priority	% Loc$ Lastmod# !Changefreq" Isbn13! Isbn10  WordCount !UploadFile Upload
 Size
 Sha1 NotExists MimeType	 Md5 IsImage %IsCompressed ImageSize
 Hash FilesSize Extension Exists +ExcludeMimeType -ExcludeExtension Crc32 Count -RuntimeException# GInvalidMagicMimeFileException =InvalidArgumentException!
 CExtensionNotLoadedException	 9BadMethodCallException %RecordExists )NoRecordExists !AbstractDb !MyBarcode5 !MyBarcode4 !MyBarcode3 !MyBarcode2 !MyBarcode1
  Upce
 Upca
~ Sscc} Royalmail| Postnet{ Planetz Leitcodey Itf14
x Issnw +Intelligentmailv Identcodeu Gtin14t Gtin13s Gtin12
r Ean8
q Ean5
p Ean2o Ean18n Ean14m Ean13l Ean12k Code93extj Code93i Code39exth Code39g /Code25interleavedf Code25e Code128d Codabarc +AbstractAdapter#b GValidatorPluginManagerFactorya 9ValidatorPluginManager` )ValidatorChain
_ Uuid	^ Uri] Timezone\ %StringLength
[ StepZ +StaticValidatorY RegexX NotEmptyW ModuleV LessThanU %IsInstanceOf
T IsbnS IpR InArrayQ Identical
P IbanO Hostname	N HexM #GreaterThanL GpsPointK ExplodeJ %EmailAddressI DigitsH DateStep
G Date
F CsrfE !CreditCardD )ConfigProviderC CallbackB BitwiseA Between@ Barcode? /AbstractValidator> Priority	= Loc< Lastmod; !Changefreq: Isbn139 Isbn108 WordCount7 !UploadFile6 Upload
5 Size
4 Sha13 NotExists2 MimeType	1 Md50 IsImage/ %IsCompressed. ImageSize
- Hash, FilesSize+ Extension* Exists) +ExcludeMimeType( -ExcludeExtension' Crc32& Count% -RuntimeException#$ GInvalidMagicMimeFileException# =InvalidArgumentException!" CExtensionNotLoadedException! 9BadMethodCallException  %RecordExists )NoRecordExists !AbstractDb !MyBarcode5 !MyBarcode4 !MyBarcode3 !MyBarcode2 !MyBarcode1
 Upce
 Upca
 Sscc Royalmail Postnet Planet Leitcode Itf14
 Issn +Intelligentmail Identcode Gtin14 Gtin13 Gtin12

 Ean8
	 Ean5
 Ean2 Ean18 Ean14 Ean13 Ean12 Code93ext    {n_PA/
mZG4!
kRD6q_RE6#viW8 





s
b
T
@
0

								t	b	P	>	-			tdP<#zdT@.ygO:%kV:gN-{jXA0zjYD7(                 3RenderToPlaceholder
 -RenderChildModel	 #Placeholder #PartialLoop Partial /PaginationControl !Navigation Layout
 Json %InlineScript Identity  HtmlTag 'HtmlQuicktime~ HtmlPage} !HtmlObject| HtmlList{ HtmlFlashz HeadTitley HeadStylex !HeadScriptw HeadMetav HeadLinku Gravatart )FlashMessengers EscapeUrlr EscapeJsq )EscapeHtmlAttrp !EscapeHtmlo EscapeCssn Doctypem #DeclareVarsl Cyclek BasePathj 3AbstractHtmlElementi )AbstractHelperh =UnexpectedValueExceptiong -RuntimeExceptionf 9InvalidHelperExceptione =InvalidArgumentExceptiond +DomainExceptionc 9BadMethodCallExceptionb ViewEvent
a View` Variables_ Stream^ 3HelperPluginManager] 3PhpRendererStrategy\ %JsonStrategy[ %FeedStrategyZ /TemplatePathStackY 3TemplateMapResolverX =RelativeFallbackResolverW ;PrefixPathStackResolverV /AggregateResolverU #PhpRendererT %JsonRendererS %FeedRendererR +ConsoleRendererQ ViewModelP JsonModelO FeedModelN %ConsoleModelM +IdentityFactoryL 7FlashMessengerFactoryK 1AbstractStandaloneJ /AbstractContainerI RegistryH ContainerG #AclListenerF SitemapE 'PluginManager
D MenuC LinksB #BreadcrumbsA )AbstractHelper@ )AbstractHelper? ViewModel	> Url= ServerUrl< 3RenderToPlaceholder; -RenderChildModel: #Placeholder9 #PartialLoop8 Partial7 /PaginationControl6 !Navigation5 Layout
4 Json3 %InlineScript2 Identity1 HtmlTag0 'HtmlQuicktime/ HtmlPage. !HtmlObject- HtmlList, HtmlFlash+ HeadTitle* HeadStyle) !HeadScript( HeadMeta' HeadLink& Gravatar% )FlashMessenger$ EscapeUrl# EscapeJs" )EscapeHtmlAttr! !EscapeHtml  EscapeCss Doctype #DeclareVars Cycle BasePath 3AbstractHtmlElement )AbstractHelper =UnexpectedValueException -RuntimeException 9InvalidHelperException =InvalidArgumentException +DomainException 9BadMethodCallException ViewEvent
 View Variables Stream 3HelperPluginManager Priority	 Loc Lastmod !Changefreq
 Isbn13	 Isbn10 WordCount !UploadFile Upload
 Size
 Sha1 NotExists MimeType	 Md5  IsImage %IsCompressed~ ImageSize
} Hash| FilesSize{ Extensionz Existsy +ExcludeMimeTypex -ExcludeExtensionw Crc32v Countu -RuntimeException#t GInvalidMagicMimeFileExceptions =InvalidArgumentException!r CExtensionNotLoadedExceptionq 9BadMethodCallExceptionp %RecordExistso )NoRecordExistsn !AbstractDbm !MyBarcode5l !MyBarcode4k !MyBarcode3j !MyBarcode2i !MyBarcode1
h Upce
g Upca
f Sscce Royalmaild Postnetc Planetb Leitcodea Itf14
` Issn_ +Intelligentmail^ Identcode] Gtin14\ Gtin13[ Gtin12
Z Ean8
Y Ean5
X Ean2W Ean18V Ean14U Ean13T Ean12S Code93extR Code93Q Code39ext   n s]M9'r`H3
ydO3`G&tcQ:)







s
c
R
=
0
!
							u	i	W	@	)		hJ2wW6 }p^?'zi[G7%{iWE4!{kWC*k[G5$
n> ViewModel= JsonModel< FeedModel; %ConsoleModel: +IdentityFactory9 7FlashMessengerFactory8 1AbstractStandalone7 /AbstractContainer6 Registry5 Container4 #AclListener3 Sitemap2 'PluginManager
1 Menu0 Links/ #Breadcrumbs. )AbstractHelper- )AbstractHelper, ViewModel	+ Url* ServerUrl) 3RenderToPlaceholder( -RenderChildModel' #Placeholder& #PartialLoop% Partial$ /PaginationControl# !Navigation" Layout
! Json  %InlineScript Identity HtmlTag 'HtmlQuicktime HtmlPage !HtmlObject HtmlList HtmlFlash HeadTitle HeadStyle !HeadScript HeadMeta HeadLink Gravatar )FlashMessenger EscapeUrl EscapeJs )EscapeHtmlAttr !EscapeHtml EscapeCss Doctype #DeclareVars
 Cycle	 BasePath 3AbstractHtmlElement )AbstractHelper =UnexpectedValueException -RuntimeException 9InvalidHelperException =InvalidArgumentException +DomainException 9BadMethodCallException  ViewEvent
 View~ Variables} Stream| 3HelperPluginManager{ 3PhpRendererStrategyz %JsonStrategyy %FeedStrategyx /TemplatePathStackw 3TemplateMapResolverv =RelativeFallbackResolveru ;PrefixPathStackResolvert /AggregateResolvers #PhpRendererr %JsonRendererq %FeedRendererp +ConsoleRenderero ViewModeln JsonModelm FeedModell %ConsoleModelk +IdentityFactoryj 7FlashMessengerFactoryi 1AbstractStandaloneh /AbstractContainerg Registryf Containere #AclListenerd Sitemapc 'PluginManager
b Menua Links` #Breadcrumbs_ )AbstractHelper^ )AbstractHelper] ViewModel	\ Url[ ServerUrlZ 3RenderToPlaceholderY -RenderChildModelX #PlaceholderW #PartialLoopV PartialU /PaginationControlT !NavigationS Layout
R JsonQ %InlineScriptP IdentityO HtmlTagN 'HtmlQuicktimeM HtmlPageL !HtmlObjectK HtmlListJ HtmlFlashI HeadTitleH HeadStyleG !HeadScriptF HeadMetaE HeadLinkD GravatarC )FlashMessengerB EscapeUrlA EscapeJs@ )EscapeHtmlAttr? !EscapeHtml> EscapeCss= Doctype< #DeclareVars; Cycle: BasePath9 3AbstractHtmlElement8 )AbstractHelper7 =UnexpectedValueException6 -RuntimeException5 9InvalidHelperException4 =InvalidArgumentException3 +DomainException2 9BadMethodCallException1 ViewEvent
0 View/ Variables. Stream- 3HelperPluginManager, 3PhpRendererStrategy+ %JsonStrategy* %FeedStrategy) /TemplatePathStack( 3TemplateMapResolver' =RelativeFallbackResolver& ;PrefixPathStackResolver% /AggregateResolver$ #PhpRenderer# %JsonRenderer" %FeedRenderer! +ConsoleRenderer  ViewModel JsonModel FeedModel %ConsoleModel +IdentityFactory 7FlashMessengerFactory 1AbstractStandalone /AbstractContainer Registry Container #AclListener Sitemap 'PluginManager
 Menu Links #Breadcrumbs )AbstractHelper )AbstractHelper ViewModel	 Url ServerUrl   v pO3wX@ tfRB0tbP?,vbN5







v
f
R
@
/
							v	d	L	7	"	}hS7!w[:!qdVI;-q^N=.wcL6pVB0#iR?0v          p !ArrayStacko #ArrayObjectn +AbstractOptions
m Textl Struct	k Nilj Integeri Doubleh DateTimeg Booleanf !BigIntegere Base64d !ArrayValuec )AbstractScalarb 1AbstractCollectiona -RuntimeException` =InvalidArgumentException_ 9BadMethodCallException^ System] Fault\ Cache
[ HttpZ Stdin
Y HttpX XmlWriterW #DomDocumentV /AbstractGeneratorU )ValueExceptionT -RuntimeExceptionS =InvalidArgumentExceptionR 9BadMethodCallExceptionQ -RuntimeExceptionP =InvalidArgumentExceptionO 3IntrospectExceptionN 'HttpExceptionM )FaultExceptionL #ServerProxyK 3ServerIntrospectionJ ServerI ResponseH RequestG FaultF ClientE 'AbstractValue
D TextC Struct	B NilA Integer@ Double? DateTime> Boolean= !BigInteger< Base64; !ArrayValue: )AbstractScalar9 1AbstractCollection8 -RuntimeException7 =InvalidArgumentException6 9BadMethodCallException5 System4 Fault3 Cache
2 Http1 Stdin
0 Http/ XmlWriter. #DomDocument- /AbstractGenerator, )ValueException+ -RuntimeException* =InvalidArgumentException) 9BadMethodCallException( -RuntimeException' =InvalidArgumentException& 3IntrospectException% 'HttpException$ )FaultException# #ServerProxy
" 3ServerIntrospection
! Server	  Response	 Request	 Fault	 Client	 'AbstractValue	 3PhpRendererStrategy %JsonStrategy %FeedStrategy /TemplatePathStack 3TemplateMapResolver =RelativeFallbackResolver ;PrefixPathStackResolver /AggregateResolver #PhpRenderer %JsonRenderer %FeedRenderer +ConsoleRenderer ViewModel JsonModel FeedModel %ConsoleModel +IdentityFactory
 7FlashMessengerFactory	 %AssetFactory 1AbstractStandalone /AbstractContainer Registry Container #AclListener Sitemap  'PluginManager 
 Menu   Links  #Breadcrumbs ~ )AbstractHelper } )AbstractHelper| ViewModel	{ Urlz ServerUrly 3RenderToPlaceholderx -RenderChildModelw #Placeholderv #PartialLoopu Partialt /PaginationControls !Navigationr Layout
q Jsonp %InlineScripto Identityn HtmlTagm 'HtmlQuicktimel HtmlPagek !HtmlObjectj HtmlListi HtmlFlashh HeadTitleg HeadStylef !HeadScripte HeadMetad HeadLinkc Gravatarb )FlashMessengera EscapeUrl` EscapeJs_ )EscapeHtmlAttr^ !EscapeHtml] EscapeCss\ Doctype[ #DeclareVarsZ CycleY BasePathX AssetW 3AbstractHtmlElementV )AbstractHelperU =UnexpectedValueExceptionT -RuntimeExceptionS 9InvalidHelperExceptionR =InvalidArgumentExceptionQ +DomainExceptionP 9BadMethodCallExceptionO ViewEvent
N ViewM VariablesL StreamK 3HelperPluginManagerJ 3PhpRendererStrategyI %JsonStrategyH %FeedStrategyG /TemplatePathStackF 3TemplateMapResolverE =RelativeFallbackResolverD ;PrefixPathStackResolverC /AggregateResolverB #PhpRendererA %JsonRenderer@ %FeedRenderer? +ConsoleRenderer   Y jTD3	~Z9rP2o^D$jR: 




v
h
[
J
;
#
								{	f	P	@	/		zV5nL.}kZ@ `F%pO1#{fL?/jR3rY                    -AbstractHydrator; !GuardUtils: -RuntimeException9 )LogicException9 =InvalidCallbackException9
 =InvalidArgumentException9!	 CExtensionNotLoadedException9 +DomainException9 9BadMethodCallException9 +MergeReplaceKey8 )MergeRemoveKey8 #StringUtils7 SplStack7 SplQueue7 -SplPriorityQueue7  Response7 Request7~ 'PriorityQueue7} %PriorityList7| !Parameters7{ Message7
z Glob7y /FastPriorityQueue7x %ErrorHandler7w DateTime7v +CallbackHandler7u !ArrayUtils7t !ArrayStack7s #ArrayObject7r +AbstractOptions7q Native5p MbString5
o Intl5n Iconv5m 7AbstractStringWrapper5l =InvalidArgumentException4k 'StrategyChain3j 5SerializableStrategy3i +ExplodeStrategy3h +DefaultStrategy3g ?DateTimeFormatterStrategy3f +ClosureStrategy3e +BooleanStrategy3d =UnderscoreNamingStrategy2c /MapNamingStrategy2b 9IdentityNamingStrategy2a ;CompositeNamingStrategy2` 9ArrayMapNamingStrategy2_ ?HydratingIteratorIterator1^ 9HydratingArrayIterator1] =OptionalParametersFilter0\ ;NumberOfParameterFilter0[ /MethodMatchFilter0Z IsFilter0Y HasFilter0X GetFilter0W +FilterComposite0V -HydratorListener/U %HydrateEvent/T %ExtractEvent/S /AggregateHydrator/R !Reflection.Q )ObjectProperty.P 7HydratorPluginManager.O ?DelegatingHydratorFactory.N 1DelegatingHydrator.M %ClassMethods.L /ArraySerializable.K -AbstractHydrator.J !GuardUtils-I -RuntimeException,H )LogicException,G =InvalidCallbackException,F =InvalidArgumentException,!E CExtensionNotLoadedException,D +DomainException,C 9BadMethodCallException,B +MergeReplaceKey+A )MergeRemoveKey+@ #StringUtils*? SplStack*> SplQueue*= -SplPriorityQueue*< Response*; Request*: 'PriorityQueue*9 %PriorityList*8 !Parameters*7 Message*
6 Glob*5 %ErrorHandler*4 DateTime*3 +CallbackHandler*2 !ArrayUtils*1 !ArrayStack*0 #ArrayObject*/ +AbstractOptions*. Native'- MbString'
, Intl'+ Iconv'* 7AbstractStringWrapper') =InvalidArgumentException&( 'StrategyChain%' 5SerializableStrategy%& +ExplodeStrategy%% +DefaultStrategy%$ ?DateTimeFormatterStrategy%# +ClosureStrategy%" +BooleanStrategy%! =UnderscoreNamingStrategy$  /MapNamingStrategy$ 9IdentityNamingStrategy$ ;CompositeNamingStrategy$ 9ArrayMapNamingStrategy$ =OptionalParametersFilter# ;NumberOfParameterFilter# /MethodMatchFilter# IsFilter# HasFilter# GetFilter# +FilterComposite# -HydratorListener" %HydrateEvent" %ExtractEvent" /AggregateHydrator" !Reflection! )ObjectProperty! 7HydratorPluginManager! ?DelegatingHydratorFactory! 1DelegatingHydrator! %ClassMethods! /ArraySerializable!
 -AbstractHydrator!	 !GuardUtils  -RuntimeException )LogicException =InvalidCallbackException =InvalidArgumentException! CExtensionNotLoadedException +DomainException 9BadMethodCallException +MergeReplaceKey  )MergeRemoveKey #StringUtils~ SplStack} SplQueue| -SplPriorityQueue{ Responsez Requesty 'PriorityQueuex %PriorityListw !Parametersv Message
u Globt %ErrorHandlers DateTimer +CallbackHandlerq !ArrayUtils   c( v_L2hG(mU=yk^M>&xbRA(





h
G
0
									l	V	A	'		
p\E-cUH7(                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          r NativeLq MbStringL
p IntlLo IconvLn 7AbstractStringWrapperLm -RuntimeExceptionKl )LogicExceptionKk =InvalidArgumentExceptionK!j CExtensionNotLoadedExceptionKi +DomainExceptionKh 9BadMethodCallExceptionKg +MergeReplaceKeyJf )MergeRemoveKeyJe #StringUtilsId SplStackIc SplQueueIb -SplPriorityQueueIa ResponseI` RequestI_ 'PriorityQueueI^ %PriorityListI] !ParametersI\ MessageI
[ GlobIZ /FastPriorityQueueIY %ErrorHandlerIX 'ConsoleHelperIW !ArrayUtilsIV !ArrayStackIU #ArrayObjectIT +AbstractOptionsIS NativeGR MbStringG
Q IntlGP IconvGO 7AbstractStringWrapperGN -RuntimeExceptionFM )LogicExceptionFL =InvalidArgumentExceptionF!K CExtensionNotLoadedExceptionFJ +DomainExceptionFI 9BadMethodCallExceptionFH +MergeReplaceKeyEG )MergeRemoveKeyEF #StringUtilsDE SplStackDD SplQueueDC -SplPriorityQueueDB ResponseDA RequestD@ 'PriorityQueueD? %PriorityListD> !ParametersD= MessageD
< GlobD; /FastPriorityQueueD: %ErrorHandlerD9 !ArrayUtilsD8 !ArrayStackD7 #ArrayObjectD6 +AbstractOptionsD5 NativeB4 MbStringB
3 IntlB2 IconvB1 7AbstractStringWrapperB0 =InvalidArgumentExceptionA/ 'StrategyChain@. 5SerializableStrategy@- +ExplodeStrategy@, +DefaultStrategy@+ ?DateTimeFormatterStrategy@* +ClosureStrategy@) +BooleanStrategy@( =UnderscoreNamingStrategy?' /MapNamingStrategy?& 9IdentityNamingStrategy?% ;CompositeNamingStrategy?$ 9ArrayMapNamingStrategy?# ?HydratingIteratorIterator>" 9HydratingArrayIterator>! =OptionalParametersFilter=  ;NumberOfParameterFilter= /MethodMatchFilter= IsFilter= HasFilter= GetFilter= +FilterComposite= -HydratorListener< %HydrateEvent< %ExtractEvent< /AggregateHydrator< !Reflection; )ObjectProperty; 7HydratorPluginManager; ?DelegatingHydratorFactory; 1DelegatingHydrator; %ClassMethods; /ArraySerializable;   H qY@'~hO7pW?'vQ1}eD.





g
O
7

						o	V	?	&	~^E+hN;"nT>%sUB)jJ1mT9%hP5dH                           3ReflectionInterface  1PrototypeInterface  ?PrototypeGenericInterface  1ExceptionInterface %TagInterface~ 3TraitUsageInterface| 1GeneratorInterface| 1ExceptionInterface{ +ParserInterfacez
 3AnnotationInterfacey	 -ScannerInterfacew 1ExceptionInterfacev %TagInterfaceu ;PhpDocTypedTagInterfaceu 3ReflectionInterfaces 1PrototypeInterfacer ?PrototypeGenericInterfacer 1ExceptionInterfaceq %TagInterfacep  3TraitUsageInterfacen 1GeneratorInterfacen~ 1ExceptionInterfacem} +ParserInterfacel| 3AnnotationInterfacek{ -ScannerInterfaceiz 1ExceptionInterfacehy %TagInterfacegx ;PhpDocTypedTagInterfacegw 3ReflectionInterfaceev 1PrototypeInterfacedu ?PrototypeGenericInterfacedt 1ExceptionInterfacecs %TagInterfacebr 3TraitUsageInterface`q 1GeneratorInterface`p 1ExceptionInterface_o +ParserInterface^n 3AnnotationInterface]m -ScannerInterface[l 1ExceptionInterfaceZk %TagInterfaceYj ;PhpDocTypedTagInterfaceYi 3ReflectionInterfaceWh 1PrototypeInterfaceVg ?PrototypeGenericInterfaceVf 1ExceptionInterfaceUe %TagInterfaceTd 3TraitUsageInterfaceRc 1GeneratorInterfaceRb 1ExceptionInterfaceQa +ParserInterfaceP` 3AnnotationInterfaceO_ -ScannerInterfaceM^ 1ExceptionInterfaceL] %TagInterfaceK\ ;PhpDocTypedTagInterfaceK[ 3ReflectionInterfaceIZ 1PrototypeInterfaceHY ?PrototypeGenericInterfaceHX 1ExceptionInterfaceGW %TagInterfaceFV 3TraitUsageInterfaceDU 1GeneratorInterfaceDT 1ExceptionInterfaceCS +ParserInterfaceBR 3AnnotationInterfaceAQ -ScannerInterface?P 1ExceptionInterface>O %TagInterface=N ;PhpDocTypedTagInterface=M 3ReflectionInterface;L 1PrototypeInterface:K ?PrototypeGenericInterface:J 1ExceptionInterface9I %TagInterface8H 3TraitUsageInterface6G 1GeneratorInterface6F 1ExceptionInterface5E +ParserInterface4D 3AnnotationInterface3C 1ExceptionInterface1B -AdapterInterface0A 1ExceptionInterface/@ -AdapterInterface.? 1ExceptionInterface-> -AdapterInterface,= +PluginInterface+< ATotalSpaceCapableInterface); /TaggableInterface): -StorageInterface)9 5OptimizableInterface)8 /IteratorInterface)7 /IterableInterface)6 1FlushableInterface)5 7ClearExpiredInterface)4 9ClearByPrefixInterface)3 ?ClearByNamespaceInterface)#2 IAvailableSpaceCapableInterface)1 -PatternInterface'0 1ExceptionInterface&/ +PluginInterface$. ATotalSpaceCapableInterface"- /TaggableInterface", -StorageInterface"+ 5OptimizableInterface"* /IteratorInterface") /IterableInterface"( 1FlushableInterface"' 7ClearExpiredInterface"& 9ClearByPrefixInterface"% ?ClearByNamespaceInterface"#$ IAvailableSpaceCapableInterface"# -PatternInterface " 1ExceptionInterface! +PluginInterface  ATotalSpaceCapableInterface /TaggableInterface -StorageInterface 5OptimizableInterface /IteratorInterface /IterableInterface 1FlushableInterface 7ClearExpiredInterface 9ClearByPrefixInterface ?ClearByNamespaceInterface# IAvailableSpaceCapableInterface -PatternInterface 1ExceptionInterface 1ExceptionInterface /RendererInterface 1ExceptionInterface +ObjectInterface 1ExceptionInterface 1ExceptionInterface /RendererInterface 1ExceptionInterface +ObjectInterface
 1ExceptionInterface	 -StorageInterface	 1ExceptionInterface 1ExceptionInterface /ResolverInterface 1ExceptionInterface 1ExceptionInterface  CValidatableAdapterInterface -AdapterInterface" I	AuthenticationServiceInterface   / |aI1}eJ/eN5{`E*pU:!





e
L
1
						w	\	A	'	kG+qR8z[F1kM4oT:z_C$mO4iN/               9DriverFeatureInterface9 1StatementInterface8 +ResultInterface8 +DriverInterface8 3ConnectionInterface8! CStatementContainerInterface7 -AdapterInterface7 7AdapterAwareInterface7! CEventFeatureEventsInterface5 1ExceptionInterface4 7TableGatewayInterface3 1PredicateInterface2  APlatformDecoratorInterface+ 1ExceptionInterface* 3ConstraintInterface( +ColumnInterface' %SqlInterface& %SqlInterface% 9PreparableSqlInterface% 3ExpressionInterface% 1ExceptionInterface# 3RowGatewayInterface"
 1ExceptionInterface!	 1ResultSetInterface  /MetadataInterface 1ExceptionInterface /ProfilerInterface 9ProfilerAwareInterface /PlatformInterface 1ExceptionInterface 1ExceptionInterface 9DriverFeatureInterface  1StatementInterface +ResultInterface~ +DriverInterface} 3ConnectionInterface!| CStatementContainerInterface{ -AdapterInterfacez 7AdapterAwareInterfacey 1ExceptionInterface
x 7TableGatewayInterface	w 1PredicateInterface v APlatformDecoratorInterfaceu 1ExceptionInterface t 3ConstraintInterface s +ColumnInterface r %SqlInterface q %SqlInterface p 9PreparableSqlInterface o 3ExpressionInterface n 1ExceptionInterface m 3RowGatewayInterface l 1ExceptionInterface k 1ResultSetInterface j /MetadataInterface i 1ExceptionInterface h /ProfilerInterface g 9ProfilerAwareInterface f /PlatformInterface e 1ExceptionInterface d 1ExceptionInterface c 9DriverFeatureInterface b 1StatementInterface a +ResultInterface ` +DriverInterface _ 3ConnectionInterface !^ CStatementContainerInterface ] -AdapterInterface \ 7AdapterAwareInterface [ -PaddingInterface Z 1ExceptionInterface Y 1SymmetricInterface X 1ExceptionInterface W 1ExceptionInterface V /PasswordInterface U 1ExceptionInterface T 1ExceptionInterface S -PaddingInterface R 1ExceptionInterface Q 1SymmetricInterface P 1ExceptionInterface O 1ExceptionInterface N /PasswordInterface M 1ExceptionInterface L 1ExceptionInterface K -PaddingInterface J 1ExceptionInterface I 1SymmetricInterface H 1ExceptionInterface G 1ExceptionInterface F /PasswordInterface E 1ExceptionInterface D 1ExceptionInterface C -PaddingInterface B 1ExceptionInterface A 1SymmetricInterface @ 1ExceptionInterface ? 1ExceptionInterface > /PasswordInterface = 1ExceptionInterface < 1ExceptionInterface ; -PaddingInterface : 1ExceptionInterface 9 1SymmetricInterface 8 1ExceptionInterface 7 1ExceptionInterface 6 /PasswordInterface 5 1ExceptionInterface 4 1ExceptionInterface 3 7RouteMatcherInterface 2 +PromptInterface 1 1ExceptionInterface 0 -CharsetInterface / -AdapterInterface . )ColorInterface - 7RouteMatcherInterface , +PromptInterface + 1ExceptionInterface * -CharsetInterface ) -AdapterInterface ( )ColorInterface ' +WriterInterface & +ReaderInterface % 1ProcessorInterface $ 1ExceptionInterface # +WriterInterface " +ReaderInterface ! 1ProcessorInterface   1ExceptionInterface  +WriterInterface  +ReaderInterface  1ProcessorInterface  1ExceptionInterface  +WriterInterface  +ReaderInterface  1ProcessorInterface  1ExceptionInterface  -ScannerInterface  1ExceptionInterface  %TagInterface  ;PhpDocTypedTagInterface     w\B'pX<!hO+oU6z^?*





j
O
+
						[	B	"	iM2hJ+gL4oF"gI*tQ3u^;w_D*   " 1ExceptionInterface! /CallbackInterface  1ExceptionInterface +FilterInterface 1ExceptionInterface" ESharedEventsCapableInterface! CSharedEventManagerInterface  AListenerAggregateInterface 9EventsCapableInterface 7EventManagerInterface  AEventManagerAwareInterface )EventInterface +FilterInterface 1ExceptionInterface" ESharedEventsCapableInterface! CSharedEventManagerInterface  AListenerAggregateInterface 9EventsCapableInterface 7EventManagerInterface  AEventManagerAwareInterface )EventInterface +FilterInterface 1ExceptionInterface" ESharedEventsCapableInterface!
 CSharedEventManagerInterface 	 AListenerAggregateInterface 9EventsCapableInterface 7EventManagerInterface  AEventManagerAwareInterface )EventInterface +FilterInterface 1ExceptionInterface& MSharedListenerAggregateInterface" ESharedEventsCapableInterface!  CSharedEventManagerInterface& MSharedEventManagerAwareInterface(~ QSharedEventAggregateAwareInterface } AListenerAggregateInterface| 9EventsCapableInterface{ 7EventManagerInterface z AEventManagerAwareInterfacey )EventInterfacex +FilterInterfacew 1ExceptionInterface&v MSharedListenerAggregateInterface!u CSharedEventManagerInterface&t MSharedEventManagerAwareInterface(s QSharedEventAggregateAwareInterface r AListenerAggregateInterfaceq 9EventsCapableInterfacep 7EventManagerInterface o AEventManagerAwareInterfacen )EventInterfacem 1ExceptionInterfacel 1ExceptionInterfacek 1ExceptionInterface!j CDependencyResolverInterfacei 1ExceptionInterfaceh 1ParameterInterfaceg 3DefinitionInterfacef =ClassDefinitionInterfacee -FactoryInterfaced /InjectorInterfacec +ConfigInterfaceb 1ExceptionInterfacea 'PartialMarker` 3DefinitionInterface_ ;ServiceLocatorInterface^ -LocatorInterface"] EDependencyInjectionInterface\ 1ExceptionInterface[ 'PartialMarkerZ 3DefinitionInterfaceY ;ServiceLocatorInterfaceX -LocatorInterface"W EDependencyInjectionInterface!V CEventFeatureEventsInterfaceU 1ExceptionInterfaceT 7TableGatewayInterfaceS 1PredicateInterface R APlatformDecoratorInterfaceQ 1ExceptionInterfaceP 3ConstraintInterface}O +ColumnInterface|N %SqlInterface{M %SqlInterfacezL 9PreparableSqlInterfacezK 3ExpressionInterfacezJ 1ExceptionInterfacexI 3RowGatewayInterfacewH 1ExceptionInterfacevG 1ResultSetInterfaceuF /MetadataInterfacerE 1ExceptionInterfaceqD /ProfilerInterfacepC 9ProfilerAwareInterfacepB /PlatformInterfaceoA 1ExceptionInterfacen@ 1ExceptionInterfacem? 9DriverFeatureInterfaced> 1StatementInterfacec= +ResultInterfacec< +DriverInterfacec; 3ConnectionInterfacec!: CStatementContainerInterfaceb9 -AdapterInterfaceb8 7AdapterAwareInterfaceb!7 CEventFeatureEventsInterface_6 1ExceptionInterface^5 7TableGatewayInterface]4 1PredicateInterface\ 3 APlatformDecoratorInterfaceU2 1ExceptionInterfaceT1 3ConstraintInterfaceR0 +ColumnInterfaceQ/ %SqlInterfaceP. %SqlInterfaceO- 9PreparableSqlInterfaceO, 3ExpressionInterfaceO+ 1ExceptionInterfaceM* 3RowGatewayInterfaceL) 1ExceptionInterfaceK( 1ResultSetInterfaceJ' /MetadataInterfaceG& 1ExceptionInterfaceF% /ProfilerInterfaceE$ 9ProfilerAwareInterfaceE# /PlatformInterfaceD" 1ExceptionInterfaceC! 1ExceptionInterfaceB    eO7w\3pK1pG%_E#





[
9

					s	Y	7		|aF.eJ2eK%tO5w^9aH#	tK2y^E-        # 1ExceptionInterface" +StreamInterface! -AdapterInterface  1ExceptionInterface 3LabelAwareInterface 'FormInterface ?FormFactoryAwareInterface# GFieldsetPrepareAwareInterface /FieldsetInterface" EElementPrepareAwareInterface -ElementInterface& MElementAttributeRemovalInterface 1ExceptionInterface 3LabelAwareInterface 'FormInterface ?FormFactoryAwareInterface# GFieldsetPrepareAwareInterface /FieldsetInterface" EElementPrepareAwareInterface -ElementInterface& MElementAttributeRemovalInterface 1ExceptionInterface 3LabelAwareInterface 'FormInterface ?FormFactoryAwareInterface#
 GFieldsetPrepareAwareInterface	 /FieldsetInterface" EElementPrepareAwareInterface -ElementInterface& MElementAttributeRemovalInterface 1ExceptionInterface 3LabelAwareInterface 'FormInterface ?FormFactoryAwareInterface# GFieldsetPrepareAwareInterface  /FieldsetInterface" EElementPrepareAwareInterface~ -ElementInterface&} MElementAttributeRemovalInterface| 1ExceptionInterface{ 3LabelAwareInterface}z 'FormInterface}y ?FormFactoryAwareInterface}#x GFieldsetPrepareAwareInterface}w /FieldsetInterface}"v EElementPrepareAwareInterface}u -ElementInterface}&t MElementAttributeRemovalInterface}s 1ExceptionInterfacey"r EEncryptionAlgorithmInterfacex#q GCompressionAlgorithmInterfacewp +FilterInterfacevo 1ExceptionInterfacer"n EEncryptionAlgorithmInterfaceq#m GCompressionAlgorithmInterfacepl +FilterInterfaceok 1ExceptionInterfacek"j EEncryptionAlgorithmInterfacej#i GCompressionAlgorithmInterfaceih +FilterInterfacehg 1ExceptionInterfacegf 1ExceptionInterfacede 1ExceptionInterfacebd 1ExceptionInterface_c 1ExceptionInterface]b 1ExceptionInterfaceZa /RendererInterfaceT` /RendererInterfaceK_ 1ExceptionInterfaceJ^ ?ExtensionManagerInterfaceI] /ResponseInterfaceH"\ EHeaderAwareResponseInterfaceH [ AHeaderAwareClientInterfaceHZ +ClientInterfaceHY 'FeedInterfaceFX 1ExceptionInterface;W )EntryInterface:V 7ReaderImportInterface8U ?ExtensionManagerInterface8&T MSubscriptionPersistenceInterface6S 1ExceptionInterface5R /CallbackInterface4Q 1ExceptionInterface3P /RendererInterface-O /RendererInterface$N 1ExceptionInterface#M ?ExtensionManagerInterface"L /ResponseInterface!"K EHeaderAwareResponseInterface! J AHeaderAwareClientInterface!I +ClientInterface!H 'FeedInterfaceG 1ExceptionInterfaceF )EntryInterfaceE 7ReaderImportInterfaceD ?ExtensionManagerInterface&C MSubscriptionPersistenceInterfaceB 1ExceptionInterfaceA /CallbackInterface@ 1ExceptionInterface? /RendererInterface> /RendererInterface= 1ExceptionInterface< ?ExtensionManagerInterface; /ResponseInterface": EHeaderAwareResponseInterface 9 AHeaderAwareClientInterface8 +ClientInterface7 'FeedInterface6 1ExceptionInterface5 )EntryInterface4 7ReaderImportInterface3 ?ExtensionManagerInterface&2 MSubscriptionPersistenceInterface1 1ExceptionInterface0 /CallbackInterface/ 1ExceptionInterface. /RendererInterface- /RendererInterface, 1ExceptionInterface+ ?ExtensionManagerInterface* /ResponseInterface) +ClientInterface( 'FeedInterface' 1ExceptionInterface& )EntryInterface% 7ReaderImportInterface$ ?ExtensionManagerInterface&# MSubscriptionPersistenceInterface   ! w^F+qV; uY; mQ5~_=




z
c
D
"						_	H	)	uZ?$rW<$	mR:hP5~fK2fK3vX="pU<!       , 1ExceptionInterface1+ -AddressInterface@* 1ExceptionInterface.) 1TransportInterface-( /WritableInterface,' 1ExceptionInterface+& 'PartInterface*% -MessageInterface)$ +FolderInterface(# 1ExceptionInterface'" 1ExceptionInterface$! 1ExceptionInterface"  7UnstructuredInterface! 3StructuredInterface! =MultipleHeadersInterface! +HeaderInterface! 1ExceptionInterface  -AddressInterface/ -FirePhpInterface 1ChromePhpInterface +WriterInterface 1ProcessorInterface# GLogFormatterProviderInterface 1FormatterInterface  ALogFilterProviderInterface +FilterInterface 1ExceptionInterface +LoggerInterface 5LoggerAwareInterface -FirePhpInterface 1ChromePhpInterface +WriterInterface 1ProcessorInterface 1FormatterInterface
 +FilterInterface	 1ExceptionInterface +LoggerInterface 5LoggerAwareInterface -FirePhpInterface 1ChromePhpInterface +WriterInterface 1ProcessorInterface
 1FormatterInterface	 +FilterInterface  1ExceptionInterface +LoggerInterface~ 5LoggerAwareInterface} -FirePhpInterface| 1ChromePhpInterface{ +WriterInterfacez 1ProcessorInterfacey 1FormatterInterfacex +FilterInterface w 1ExceptionInterfacev +LoggerInterfaceu 5LoggerAwareInterfacet -FirePhpInterfaces 1ChromePhpInterfacer +WriterInterfaceq 1ProcessorInterfacep 1FormatterInterfaceo +FilterInterfacen 1ExceptionInterfacem +LoggerInterfacel 5LoggerAwareInterfacek 1ExceptionInterfacej 'SplAutoloaderi -ShortNameLocatorh 1PluginClassLocatorg 1ExceptionInterfacef 1ExceptionInterfacee 1ExceptionInterfaced 1ExceptionInterfacec 1ExceptionInterfaceb 1ExceptionInterface#a GUnknownInputsCapableInterface` ?ReplaceableInputInterface_ 9InputProviderInterface^ )InputInterface"] EInputFilterProviderInterface\ 5InputFilterInterface[ ?InputFilterAwareInterfaceZ 7EmptyContextInterfaceY 1ExceptionInterface#X GUnknownInputsCapableInterfaceW ?ReplaceableInputInterfaceV 9InputProviderInterfaceU )InputInterface"T EInputFilterProviderInterfaceS 5InputFilterInterfaceR ?InputFilterAwareInterfaceQ 7EmptyContextInterfaceP 1ExceptionInterface#O GUnknownInputsCapableInterfaceN ?ReplaceableInputInterfaceM 9InputProviderInterfaceL )InputInterface"K EInputFilterProviderInterfaceJ 5InputFilterInterfaceI ?InputFilterAwareInterfaceH 7EmptyContextInterfaceG 7RemoteLoaderInterfaceF 3FileLoaderInterfaceE 3TranslatorInterfaceD =TranslatorAwareInterfaceC 1ExceptionInterfaceB 7RemoteLoaderInterfaceA 3FileLoaderInterface@ 3TranslatorInterface? =TranslatorAwareInterface> 1ExceptionInterface= 7RemoteLoaderInterface< 3FileLoaderInterface; 3TranslatorInterface: =TranslatorAwareInterface9 1ExceptionInterface8 1ExceptionInterface7 ;MultipleHeaderInterface6 +HeaderInterface5 1ExceptionInterface4 1ExceptionInterface3 1ExceptionInterface2 +StreamInterface1 -AdapterInterface0 1ExceptionInterface/ ;MultipleHeaderInterface. +HeaderInterface- 1ExceptionInterface, 1ExceptionInterface+ 1ExceptionInterface* +StreamInterface) -AdapterInterface( 1ExceptionInterface' ;MultipleHeaderInterface& +HeaderInterface% 1ExceptionInterface$ 1ExceptionInterface   } rW<$qV>zaK0sW9lQ6





d
I
0
						s	T	9	[7hEnK'	oL,lL'yV7cB'_9             ') OControllerPluginProviderInterface#( GConsoleUsageProviderInterface$' IConsoleBannerProviderInterface& ;ConfigProviderInterface % ABootstrapListenerInterface!$ CAutoloaderProviderInterface# 1ExceptionInterface" 9ModuleManagerInterface! 1ExceptionInterface  =ServiceListenerInterface 7ConfigMergerInterface! CViewHelperProviderInterface  AValidatorProviderInterface' OTranslatorPluginProviderInterface =ServiceProviderInterface! CSerializerProviderInterface 9RouteProviderInterface  ALogWriterProviderInterface# GLogProcessorProviderInterface  ALocatorRegisteredInterface" EInputFilterProviderInterface 7InitProviderInterface ?HydratorProviderInterface" EFormElementProviderInterface ;FilterProviderInterface" EDependencyIndicatorInterface! CControllerProviderInterface' OControllerPluginProviderInterface# GConsoleUsageProviderInterface$ IConsoleBannerProviderInterface ;ConfigProviderInterface 
 ABootstrapListenerInterface!	 CAutoloaderProviderInterface 1ExceptionInterface 9ModuleManagerInterface 1ExceptionInterface =ServiceListenerInterface 7ConfigMergerInterface! CViewHelperProviderInterface  AValidatorProviderInterface' OTranslatorPluginProviderInterface  =ServiceProviderInterface! CSerializerProviderInterface~ 9RouteProviderInterface } ALogWriterProviderInterface#| GLogProcessorProviderInterface { ALocatorRegisteredInterface"z EInputFilterProviderInterfacey 7InitProviderInterfacex ?HydratorProviderInterface"w EFormElementProviderInterfacev ;FilterProviderInterface"u EDependencyIndicatorInterface!t CControllerProviderInterface's OControllerPluginProviderInterface#r GConsoleUsageProviderInterface$q IConsoleBannerProviderInterfacep ;ConfigProviderInterface o ABootstrapListenerInterface!n CAutoloaderProviderInterfacem 1ExceptionInterfacel 9ModuleManagerInterfacek 1ExceptionInterfacej 1ExceptionInterfacei 1ExceptionInterface~h 1ExceptionInterface|g 1ContainerInterface{f 1ExceptionInterfaceye 1ExceptionInterfacexd -AdapterInterfacewc 1ExceptionInterfacesb 1ExceptionInterfacera -AdapterInterfaceq` 1ExceptionInterfacem_ 1ExceptionInterfacel^ -AdapterInterfacek] 1ExceptionInterfaceg\ 1ExceptionInterfacef[ -AdapterInterfaceeZ 1ExceptionInterfaceaY 1TransportInterface`X /WritableInterface_W 1ExceptionInterface^V 'PartInterface]U -MessageInterface\T +FolderInterface[S 1ExceptionInterfaceZR 1ExceptionInterfaceWQ 1ExceptionInterfaceUP 7UnstructuredInterfaceTO 3StructuredInterfaceTN =MultipleHeadersInterfaceTM +HeaderInterfaceTL 1ExceptionInterfaceSK -AddressInterfacebJ 1ExceptionInterfacePI 1TransportInterfaceOH /WritableInterfaceNG 1ExceptionInterfaceMF 'PartInterfaceLE -MessageInterfaceKD +FolderInterfaceJC 1ExceptionInterfaceIB 1ExceptionInterfaceFA 1ExceptionInterfaceD@ 7UnstructuredInterfaceC? 3StructuredInterfaceC> =MultipleHeadersInterfaceC= +HeaderInterfaceC< 1ExceptionInterfaceB; -AddressInterfaceQ: 1ExceptionInterface?9 1TransportInterface>8 /WritableInterface=7 1ExceptionInterface<6 'PartInterface;5 -MessageInterface:4 +FolderInterface93 1ExceptionInterface82 1ExceptionInterface51 1ExceptionInterface30 7UnstructuredInterface2/ 3StructuredInterface2. =MultipleHeadersInterface2- +HeaderInterface2   ~ rP2^=rS8Z6gD




m
J
&
					o	T	4		s[@ 	_G,sK3`E*cA(|aAeK5 nS8                     ' 9UploadHandlerInterface& 1ExceptionInterface% 1ExceptionInterface$ 1ExceptionInterface# 'RoleInterface" 1AssertionInterface! 'RoleInterface  /ResourceInterface
 1ExceptionInterface	 1AssertionInterface %AclInterface 'RoleInterface /ResourceInterface 1ExceptionInterface 1AssertionInterface %AclInterface  ;ScrollingStyleInterface 1ExceptionInterface 1ExceptionInterface -AdapterInterface ?AdapterAggregateInterface ;ScrollingStyleInterface 1ExceptionInterface 1ExceptionInterface -AdapterInterface ?AdapterAggregateInterface ;ScrollingStyleInterface 1ExceptionInterface 1ExceptionInterface
 -AdapterInterface	 ?AdapterAggregateInterface ;ScrollingStyleInterface 1ExceptionInterface 1ExceptionInterface -AdapterInterface ?AdapterAggregateInterface 1ExceptionInterface 1ExceptionInterface 1ExceptionInterface  1ExceptionInterface ;ResponseSenderInterface~ 1ExceptionInterface} +PluginInterface%| KInjectApplicationEventInterface{ 5ApplicationInterfacez ;ResponseSenderInterfacey 1ExceptionInterfacex +PluginInterface%w KInjectApplicationEventInterfacev 5ApplicationInterfaceu )RouteInterfacet 1ExceptionInterfaces )RouteInterfacer 3RouteStackInterfaceq )RouteInterfacep ;ResponseSenderInterfaceo 1ExceptionInterfacen +PluginInterface%m KInjectApplicationEventInterfacel 5ApplicationInterfacek )RouteInterfacej 1ExceptionInterfacei )RouteInterfaceh 3RouteStackInterfaceg )RouteInterfacef ;ResponseSenderInterfacee 1ExceptionInterfaced +PluginInterface%c KInjectApplicationEventInterfaceb 5ApplicationInterfacea )RouteInterface` 1ExceptionInterface_ )RouteInterface^ 3RouteStackInterface] )RouteInterface\ ;ResponseSenderInterface[ 1ExceptionInterfaceZ +PluginInterface%Y KInjectApplicationEventInterfaceX 5ApplicationInterfaceW 1ExceptionInterfaceV =ServiceListenerInterfaceU 7ConfigMergerInterface!T CViewHelperProviderInterface S AValidatorProviderInterface'R OTranslatorPluginProviderInterfaceQ =ServiceProviderInterface!P CSerializerProviderInterfaceO 9RouteProviderInterface N ALogWriterProviderInterface#M GLogProcessorProviderInterface L ALocatorRegisteredInterface"K EInputFilterProviderInterfaceJ 7InitProviderInterfaceI ?HydratorProviderInterface"H EFormElementProviderInterfaceG ;FilterProviderInterface"F EDependencyIndicatorInterface!E CControllerProviderInterface'D OControllerPluginProviderInterface#C GConsoleUsageProviderInterface$B IConsoleBannerProviderInterfaceA ;ConfigProviderInterface @ ABootstrapListenerInterface!? CAutoloaderProviderInterface> 1ExceptionInterface= 9ModuleManagerInterface< 1ExceptionInterface; =ServiceListenerInterface: 7ConfigMergerInterface!9 CViewHelperProviderInterface 8 AValidatorProviderInterface'7 OTranslatorPluginProviderInterface6 =ServiceProviderInterface!5 CSerializerProviderInterface4 9RouteProviderInterface 3 ALogWriterProviderInterface#2 GLogProcessorProviderInterface 1 ALocatorRegisteredInterface"0 EInputFilterProviderInterface/ 7InitProviderInterface. ?HydratorProviderInterface"- EFormElementProviderInterface, ;FilterProviderInterface"+ EDependencyIndicatorInterface!* CControllerProviderInterface    dK0!yjO4{V6e=]D'




z
Y
A

					n	L	3	fF+
yW>!kN-~cB ZA&}bI1mR5wT9    "+ EComplexTypeStrategyInterface~* 1ExceptionInterface| ) ADiscoveryStrategyInterfacez"( EComplexTypeStrategyInterfacex' 1ExceptionInterfacev & ADiscoveryStrategyInterfacet% 1ValidatorInterfacer$ -StorageInterfaceq$# IStorageInitializationInterfaceq" 5SaveHandlerInterfaceo! 1ExceptionInterfacen  +ConfigInterfacem -ManagerInterfacel 1ValidatorInterfacek -StorageInterfacej$ IStorageInitializationInterfacej 5SaveHandlerInterfaceh 1ExceptionInterfaceg +ConfigInterfacef -ManagerInterfacee 1ValidatorInterfaced -StorageInterfacec$ IStorageInitializationInterfacec 5SaveHandlerInterfacea 1ExceptionInterface` +ConfigInterface_ -ManagerInterface^ 1ValidatorInterface] -StorageInterface\$ IStorageInitializationInterface\ 5SaveHandlerInterfaceZ 1ExceptionInterfaceY +ConfigInterfaceX
 -ManagerInterfaceW	 5InitializerInterfaceU -FactoryInterfaceR ?DelegatorFactoryInterfaceR =AbstractFactoryInterfaceR 1ExceptionInterfaceQ ;ServiceLocatorInterfaceO 9PluginManagerInterfaceO 5InitializerInterfaceO -FactoryInterfaceO  ?DelegatorFactoryInterfaceO +ConfigInterfaceO~ =AbstractFactoryInterfaceO} 5InitializerInterfaceM| -FactoryInterfaceJ{ ?DelegatorFactoryInterfaceJz =AbstractFactoryInterfaceJy 1ExceptionInterfaceIx ;ServiceLocatorInterfaceGw 9PluginManagerInterfaceGv 5InitializerInterfaceGu -FactoryInterfaceGt ?DelegatorFactoryInterfaceGs +ConfigInterfaceGr =AbstractFactoryInterfaceGq 5InitializerInterfaceEp -FactoryInterfaceCo ?DelegatorFactoryInterfaceCn =AbstractFactoryInterfaceCm 1ExceptionInterfaceBl ;ServiceLocatorInterfaceAk 9PluginManagerInterfaceAj 5InitializerInterfaceAi -FactoryInterfaceAh ?DelegatorFactoryInterfaceAg +ConfigInterfaceAf =AbstractFactoryInterfaceAe 5InitializerInterface@d -FactoryInterface>c ?DelegatorFactoryInterface>b =AbstractFactoryInterface>a 1ExceptionInterface=` ;ServiceLocatorInterface<_ 9PluginManagerInterface<^ 5InitializerInterface<] -FactoryInterface<\ ?DelegatorFactoryInterface<[ +ConfigInterface<Z =AbstractFactoryInterface<Y 1ExceptionInterface9"X EServiceManagerAwareInterface7W ;ServiceLocatorInterface7"V EServiceLocatorAwareInterface7%U KMutableCreationOptionsInterface7T 5InitializerInterface7S -FactoryInterface7R ?DelegatorFactoryInterface7Q +ConfigInterface7P =AbstractFactoryInterface7O 1ExceptionInterface5"N EServiceManagerAwareInterface3M ;ServiceLocatorInterface3"L EServiceLocatorAwareInterface3%K KMutableCreationOptionsInterface3J 5InitializerInterface3I -FactoryInterface3H ?DelegatorFactoryInterface3G +ConfigInterface3F =AbstractFactoryInterface3E 1ExceptionInterface1"D EServiceManagerAwareInterface/C ;ServiceLocatorInterface/"B EServiceLocatorAwareInterface/%A KMutableCreationOptionsInterface/@ 5InitializerInterface/? -FactoryInterface/> ?DelegatorFactoryInterface/= +ConfigInterface/< =AbstractFactoryInterface/; 1ExceptionInterface.: 1ExceptionInterface+9 Server*8 Client*7 1ExceptionInterface)6 1ExceptionInterface&5 Server%4 Client%3 1ExceptionInterface$2 1ExceptionInterface!1 Server 0 Client / 1ExceptionInterface. -AdapterInterface- 1ExceptionInterface, -AdapterInterface+ 1ExceptionInterface* -AdapterInterface) 1ExceptionInterface( -AdapterInterface   ) {`E*mR="iN!hO4sX7 



|
[
?
$
					~	`	F	+	gM2nT9!	u[@(|bG,gI*gL0uT<fH)                         / 9InitializableInterface*. 7DispatchableInterface* - AArraySerializableInterface*, 9StringWrapperInterface'+ 9PhpLegacyCompatibility)* 1ExceptionInterface&) /StrategyInterface%( ;NamingStrategyInterface$' ;FilterProviderInterface#& +FilterInterface#% =StrategyEnabledInterface!$$ INamingStrategyEnabledInterface!# =HydratorOptionsInterface!" /HydratorInterface!! 9HydratorAwareInterface!  1HydrationInterface! 9FilterEnabledInterface! 3ExtractionInterface( 1ExceptionInterface =MergeReplaceKeyInterface /ResponseInterface -RequestInterface 3ParametersInterface =ParameterObjectInterface -MessageInterface -JsonSerializable 9InitializableInterface 7DispatchableInterface  AArraySerializableInterface 1ExceptionInterface 1GeneratorInterface 1ExceptionInterface 1ExceptionInterface 1ExceptionInterface 1GeneratorInterface 1ExceptionInterface 1ExceptionInterface
 /ResolverInterface	 7TreeRendererInterface /RendererInterface" ERetrievableChildrenInterface )ModelInterface ;ClearableModelInterface +HelperInterface  +HelperInterface 1ExceptionInterface /ResolverInterface  7TreeRendererInterface /RendererInterface"~ ERetrievableChildrenInterface} )ModelInterface| ;ClearableModelInterface{ +HelperInterfacez +HelperInterfacey 1ExceptionInterfacex /ResolverInterfacew 7TreeRendererInterfacev /RendererInterface"u ERetrievableChildrenInterfacet )ModelInterfaces ;ClearableModelInterfacer +HelperInterfaceq +HelperInterfacep 1ExceptionInterfaceo /ResolverInterfacen 7TreeRendererInterfacem /RendererInterface"l ERetrievableChildrenInterfacek )ModelInterfacej ;ClearableModelInterfacei +HelperInterfaceh +HelperInterfaceg 1ExceptionInterfacef /ResolverInterfacee 7TreeRendererInterfaced /RendererInterface"c ERetrievableChildrenInterfaceb )ModelInterfacea ;ClearableModelInterface` +HelperInterface_ +HelperInterface^ 1ExceptionInterface] 3TranslatorInterface\ =TranslatorAwareInterface[ 1ExceptionInterfaceZ -AdapterInterface Y AValidatorProviderInterface*X UValidatorPluginManagerAwareInterfaceW 1ValidatorInterfaceV 3TranslatorInterfaceU =TranslatorAwareInterfaceT 1ExceptionInterfaceS -AdapterInterface R AValidatorProviderInterface*Q UValidatorPluginManagerAwareInterfaceP 1ValidatorInterfaceO 3TranslatorInterfaceN =TranslatorAwareInterfaceM 1ExceptionInterfaceL -AdapterInterface*K UValidatorPluginManagerAwareInterfaceJ 1ValidatorInterfaceI 3TranslatorInterfaceH =TranslatorAwareInterfaceG 1ExceptionInterfaceF -AdapterInterface*E UValidatorPluginManagerAwareInterfaceD 1ValidatorInterfaceC 3TranslatorInterfaceB =TranslatorAwareInterfaceA 1ExceptionInterface@ -AdapterInterface*? UValidatorPluginManagerAwareInterface> 1ValidatorInterface= 1ExceptionInterface< %UriInterface; 1ExceptionInterface: 1DecoratorInterface9 1ExceptionInterface8 1ExceptionInterface7 1ExceptionInterface6 1DecoratorInterface5 1ExceptionInterface4 1ExceptionInterface3 1ExceptionInterface2 1ExceptionInterface1 1DecoratorInterface0 /TaggableInterface/ 1ExceptionInterface. 1ExceptionInterface- 1DecoratorInterface, /TaggableInterface   I x^="rK*z[8sY8mF%




u
V
3
						n	T	3	gF*                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  x 9StringWrapperInterfaceLw 1ExceptionInterfaceKv =MergeReplaceKeyInterfaceJu /ResponseInterfaceIt -RequestInterfaceIs 3ParametersInterfaceIr =ParameterObjectInterfaceIq -MessageInterfaceIp -JsonSerializableIo 9InitializableInterfaceIn 7DispatchableInterfaceI m AArraySerializableInterfaceIl 9StringWrapperInterfaceGk 1ExceptionInterfaceFj =MergeReplaceKeyInterfaceEi /ResponseInterfaceDh -RequestInterfaceDg 3ParametersInterfaceDf =ParameterObjectInterfaceDe -MessageInterfaceDd -JsonSerializableDc 9InitializableInterfaceDb 7DispatchableInterfaceD a AArraySerializableInterfaceD` 9StringWrapperInterfaceB_ 1ExceptionInterfaceA^ /StrategyInterface@] ;NamingStrategyInterface? \ AHydratingIteratorInterface>[ ;FilterProviderInterface=Z +FilterInterface=Y =StrategyEnabledInterface;$X INamingStrategyEnabledInterface;W =HydratorOptionsInterface;V /HydratorInterface;U 9HydratorAwareInterface;T 1HydrationInterface;S 9FilterEnabledInterface;R 3ExtractionInterfaceCQ 1ExceptionInterface9P =MergeReplaceKeyInterface8O /ResponseInterface7N -RequestInterface7M 3ParametersInterface7L =ParameterObjectInterface7K -MessageInterface7J -JsonSerializable7I 9InitializableInterface7H 7DispatchableInterface7 G AArraySerializableInterface7F 9StringWrapperInterface5E 1ExceptionInterface4D /StrategyInterface3C ;NamingStrategyInterface2 B AHydratingIteratorInterface1A ;FilterProviderInterface0@ +FilterInterface0? =StrategyEnabledInterface.$> INamingStrategyEnabledInterface.= =HydratorOptionsInterface.< /HydratorInterface.; 9HydratorAwareInterface.: 1HydrationInterface.9 9FilterEnabledInterface.8 3ExtractionInterface67 1ExceptionInterface,6 =MergeReplaceKeyInterface+5 /ResponseInterface*4 -RequestInterface*3 3ParametersInterface*2 =ParameterObjectInterface*1 -MessageInterface*0 -JsonSerializable*   ;  Z
}5Fq"=


^
-					L	;i#N}8b#Q	9d                       @; aKfunctionZend\Code\Reflection\DocBlock\Tag/ParamTaggetTypeG: c'KfunctionZend\Code\Reflection\DocBlock\Tag/MethodTaggetReturnTypeD9 a#FfunctionZend\Code\Generator\DocBlock\Tag/ReturnTaggetDatatypeD8 a#FfunctionZend\Code\Generator\DocBlock\Tag/ReturnTagsetDatatypeG7 a)FfunctionZend\Code\Generator\DocBlock\Tag/ReturnTagfromReflectionD6 _%FfunctionZend\Code\Generator\DocBlock\Tag/ParamTaggetParamNameD5 _%FfunctionZend\Code\Generator\DocBlock\Tag/ParamTagsetParamNameC4 _#FfunctionZend\Code\Generator\DocBlock\Tag/ParamTaggetDatatypeC3 _#FfunctionZend\Code\Generator\DocBlock\Tag/ParamTagsetDatatypeF2 _)FfunctionZend\Code\Generator\DocBlock\Tag/ParamTagfromReflectionH1 c)FfunctionZend\Code\Generator\DocBlock\Tag/LicenseTagfromReflectionG0 a)FfunctionZend\Code\Generator\DocBlock\Tag/AuthorTagfromReflection=/ M)EfunctionZend\Code\Generator\DocBlock/TaggetDescription=. M)EfunctionZend\Code\Generator\DocBlock/TagsetDescription=- M)EfunctionZend\Code\Generator\DocBlock/TagfromReflection, EclassTagA+ c=functionZend\Code\Reflection\DocBlock\Tag/ThrowsTaggetTypeA* c=functionZend\Code\Reflection\DocBlock\Tag/ReturnTaggetTypeC) g=functionZend\Code\Reflection\DocBlock\Tag/PropertyTaggetType@( a=functionZend\Code\Reflection\DocBlock\Tag/ParamTaggetTypeG' c'=functionZend\Code\Reflection\DocBlock\Tag/MethodTaggetReturnTypeD& a#8functionZend\Code\Generator\DocBlock\Tag/ReturnTaggetDatatypeD% a#8functionZend\Code\Generator\DocBlock\Tag/ReturnTagsetDatatypeG$ a)8functionZend\Code\Generator\DocBlock\Tag/ReturnTagfromReflectionD# _%8functionZend\Code\Generator\DocBlock\Tag/ParamTaggetParamNameD" _%8functionZend\Code\Generator\DocBlock\Tag/ParamTagsetParamNameC! _#8functionZend\Code\Generator\DocBlock\Tag/ParamTaggetDatatypeC  _#8functionZend\Code\Generator\DocBlock\Tag/ParamTagsetDatatypeF _)8functionZend\Code\Generator\DocBlock\Tag/ParamTagfromReflectionH c)8functionZend\Code\Generator\DocBlock\Tag/LicenseTagfromReflectionG a)8functionZend\Code\Generator\DocBlock\Tag/AuthorTagfromReflection= M)7functionZend\Code\Generator\DocBlock/TaggetDescription= M)7functionZend\Code\Generator\DocBlock/TagsetDescription= M)7functionZend\Code\Generator\DocBlock/TagfromReflection 7classTag. 90functionZend\Captcha/ReCaptchasetPubKey/ 9!0functionZend\Captcha/ReCaptchasetPrivKey. 90functionZend\Captcha/ReCaptchagetPubKey/ 9!0functionZend\Captcha/ReCaptchagetPrivKeyM k+*functionZend\Cache\Storage\Adapter/RedisResourceManagergetMayorVersionF c%*functionZend\Cache\Storage\Adapter/MemcachedOptionsgetLibOptionF c%*functionZend\Cache\Storage\Adapter/MemcachedOptionssetLibOptionC c*functionZend\Cache\Storage\Adapter/MemcachedOptionsaddServerN c5*functionZend\Cache\Storage\Adapter/MemcachedOptionsgetMemcachedResourceN c5*functionZend\Cache\Storage\Adapter/MemcachedOptionssetMemcachedResourceM k+#functionZend\Cache\Storage\Adapter/RedisResourceManagergetMayorVersionF c%#functionZend\Cache\Storage\Adapter/MemcachedOptionsgetLibOptionF c%#functionZend\Cache\Storage\Adapter/MemcachedOptionssetLibOptionC c#functionZend\Cache\Storage\Adapter/MemcachedOptionsaddServerN
 c5#functionZend\Cache\Storage\Adapter/MemcachedOptionsgetMemcachedResourceN	 c5#functionZend\Cache\Storage\Adapter/MemcachedOptionssetMemcachedResourceM k+functionZend\Cache\Storage\Adapter/RedisResourceManagergetMayorVersionF c%functionZend\Cache\Storage\Adapter/MemcachedOptionsgetLibOptionF c%functionZend\Cache\Storage\Adapter/MemcachedOptionssetLibOptionC cfunctionZend\Cache\Storage\Adapter/MemcachedOptionsaddServerN c5functionZend\Cache\Storage\Adapter/MemcachedOptionsgetMemcachedResourceN c5functionZend\Cache\Storage\Adapter/MemcachedOptionssetMemcachedResource? M-functionZend\Authentication\Adapter/Http_challengeClient classDbTable   ;  x5$gGv-X


K
:			}	4]Cn,aPJ s.YB                                                              Av cufunctionZend\Code\Reflection\DocBlock\Tag/ReturnTaggetTypeCu gufunctionZend\Code\Reflection\DocBlock\Tag/PropertyTaggetType@t aufunctionZend\Code\Reflection\DocBlock\Tag/ParamTaggetTypeGs c'ufunctionZend\Code\Reflection\DocBlock\Tag/MethodTaggetReturnTypeDr a#pfunctionZend\Code\Generator\DocBlock\Tag/ReturnTaggetDatatypeDq a#pfunctionZend\Code\Generator\DocBlock\Tag/ReturnTagsetDatatypeGp a)pfunctionZend\Code\Generator\DocBlock\Tag/ReturnTagfromReflectionDo _%pfunctionZend\Code\Generator\DocBlock\Tag/ParamTaggetParamNameDn _%pfunctionZend\Code\Generator\DocBlock\Tag/ParamTagsetParamNameCm _#pfunctionZend\Code\Generator\DocBlock\Tag/ParamTaggetDatatypeCl _#pfunctionZend\Code\Generator\DocBlock\Tag/ParamTagsetDatatypeFk _)pfunctionZend\Code\Generator\DocBlock\Tag/ParamTagfromReflectionHj c)pfunctionZend\Code\Generator\DocBlock\Tag/LicenseTagfromReflectionGi a)pfunctionZend\Code\Generator\DocBlock\Tag/AuthorTagfromReflection=h M)ofunctionZend\Code\Generator\DocBlock/TaggetDescription=g M)ofunctionZend\Code\Generator\DocBlock/TagsetDescription=f M)ofunctionZend\Code\Generator\DocBlock/TagfromReflectione oclassTagAd cgfunctionZend\Code\Reflection\DocBlock\Tag/ThrowsTaggetTypeAc cgfunctionZend\Code\Reflection\DocBlock\Tag/ReturnTaggetTypeCb ggfunctionZend\Code\Reflection\DocBlock\Tag/PropertyTaggetType@a agfunctionZend\Code\Reflection\DocBlock\Tag/ParamTaggetTypeG` c'gfunctionZend\Code\Reflection\DocBlock\Tag/MethodTaggetReturnTypeD_ a#bfunctionZend\Code\Generator\DocBlock\Tag/ReturnTaggetDatatypeD^ a#bfunctionZend\Code\Generator\DocBlock\Tag/ReturnTagsetDatatypeG] a)bfunctionZend\Code\Generator\DocBlock\Tag/ReturnTagfromReflectionD\ _%bfunctionZend\Code\Generator\DocBlock\Tag/ParamTaggetParamNameD[ _%bfunctionZend\Code\Generator\DocBlock\Tag/ParamTagsetParamNameCZ _#bfunctionZend\Code\Generator\DocBlock\Tag/ParamTaggetDatatypeCY _#bfunctionZend\Code\Generator\DocBlock\Tag/ParamTagsetDatatypeFX _)bfunctionZend\Code\Generator\DocBlock\Tag/ParamTagfromReflectionHW c)bfunctionZend\Code\Generator\DocBlock\Tag/LicenseTagfromReflectionGV a)bfunctionZend\Code\Generator\DocBlock\Tag/AuthorTagfromReflection=U M)afunctionZend\Code\Generator\DocBlock/TaggetDescription=T M)afunctionZend\Code\Generator\DocBlock/TagsetDescription=S M)afunctionZend\Code\Generator\DocBlock/TagfromReflectionR aclassTagAQ cYfunctionZend\Code\Reflection\DocBlock\Tag/ThrowsTaggetTypeAP cYfunctionZend\Code\Reflection\DocBlock\Tag/ReturnTaggetTypeCO gYfunctionZend\Code\Reflection\DocBlock\Tag/PropertyTaggetType@N aYfunctionZend\Code\Reflection\DocBlock\Tag/ParamTaggetTypeGM c'YfunctionZend\Code\Reflection\DocBlock\Tag/MethodTaggetReturnTypeDL a#TfunctionZend\Code\Generator\DocBlock\Tag/ReturnTaggetDatatypeDK a#TfunctionZend\Code\Generator\DocBlock\Tag/ReturnTagsetDatatypeGJ a)TfunctionZend\Code\Generator\DocBlock\Tag/ReturnTagfromReflectionDI _%TfunctionZend\Code\Generator\DocBlock\Tag/ParamTaggetParamNameDH _%TfunctionZend\Code\Generator\DocBlock\Tag/ParamTagsetParamNameCG _#TfunctionZend\Code\Generator\DocBlock\Tag/ParamTaggetDatatypeCF _#TfunctionZend\Code\Generator\DocBlock\Tag/ParamTagsetDatatypeFE _)TfunctionZend\Code\Generator\DocBlock\Tag/ParamTagfromReflectionHD c)TfunctionZend\Code\Generator\DocBlock\Tag/LicenseTagfromReflectionGC a)TfunctionZend\Code\Generator\DocBlock\Tag/AuthorTagfromReflection=B M)SfunctionZend\Code\Generator\DocBlock/TaggetDescription=A M)SfunctionZend\Code\Generator\DocBlock/TagsetDescription=@ M)SfunctionZend\Code\Generator\DocBlock/TagfromReflection? SclassTagA> cKfunctionZend\Code\Reflection\DocBlock\Tag/ThrowsTaggetTypeA= cKfunctionZend\Code\Reflection\DocBlock\Tag/ReturnTaggetTypeC< gKfunctionZend\Code\Reflection\DocBlock\Tag/PropertyTaggetType   F  m.\Bj#M


]
1				Z	GoBB R!Rh4oBB                                   1< 9#zfunctionZend\Db\Sql/Expression__construct; rclassMetadata?: ;=bfunctionZend\Db\Adapter/AdaptercreatePlatformFromDriverA9 ;AbfunctionZend\Db\Adapter/AdaptercreateDriverFromParameters8 QclassFloat47 COfunctionZend\Db\Sql/TableIdentifiersetSchema36 COfunctionZend\Db\Sql/TableIdentifiersetTable75 +=OfunctionZend\Db\Sql/SqlgetSqlStringForSqlObject*4 +#OfunctionZend\Db\Sql/Sql__construct/3 1-OconstZend\Db\Sql/SelectJOIN_OUTER_RIGHT.2 1+OconstZend\Db\Sql/SelectJOIN_OUTER_LEFT.1 9OfunctionZend\Db\Sql/ExpressiongetTypes.0 9OfunctionZend\Db\Sql/ExpressionsetTypes1/ 9#OfunctionZend\Db\Sql/Expression__construct. GclassMetadata?- ;=7functionZend\Db\Adapter/AdaptercreatePlatformFromDriverA, ;A7functionZend\Db\Adapter/AdaptercreateDriverFromParameters+ 'classFloat4* C%functionZend\Db\Sql/TableIdentifiersetSchema3) C%functionZend\Db\Sql/TableIdentifiersetTable7( +=%functionZend\Db\Sql/SqlgetSqlStringForSqlObject*' +#%functionZend\Db\Sql/Sql__construct/& 1-%constZend\Db\Sql/SelectJOIN_OUTER_RIGHT.% 1+%constZend\Db\Sql/SelectJOIN_OUTER_LEFT.$ 9%functionZend\Db\Sql/ExpressiongetTypes.# 9%functionZend\Db\Sql/ExpressionsetTypes1" 9#%functionZend\Db\Sql/Expression__construct! classMetadata?  ;=functionZend\Db\Adapter/AdaptercreatePlatformFromDriverA ;AfunctionZend\Db\Adapter/AdaptercreateDriverFromParameters  classFloat4 C functionZend\Db\Sql/TableIdentifiersetSchema3 C functionZend\Db\Sql/TableIdentifiersetTable7 += functionZend\Db\Sql/SqlgetSqlStringForSqlObject* +# functionZend\Db\Sql/Sql__construct. 9 functionZend\Db\Sql/ExpressiongetTypes. 9 functionZend\Db\Sql/ExpressionsetTypes1 9# functionZend\Db\Sql/Expression__construct? ;= functionZend\Db\Adapter/AdaptercreatePlatformFromDriverA ;A functionZend\Db\Adapter/AdaptercreateDriverFromParametersB A= functionZend\Crypt\Password/BcryptgetBackwardCompatibilityB A= functionZend\Crypt\Password/BcryptsetBackwardCompatibilityB A= functionZend\Crypt\Password/BcryptgetBackwardCompatibilityB A= functionZend\Crypt\Password/BcryptsetBackwardCompatibility) 7 functionZend\Console/Responsesend0 7# functionZend\Console/ResponsesendContent0 7# functionZend\Console/ResponsecontentSent) 7 functionZend\Console/Responsesend0 7# functionZend\Console/ResponsesendContent0 7# functionZend\Console/ResponsecontentSentB
 c functionZend\Code\Reflection\DocBlock\Tag/ThrowsTaggetTypeB	 c functionZend\Code\Reflection\DocBlock\Tag/ReturnTaggetTypeD g functionZend\Code\Reflection\DocBlock\Tag/PropertyTaggetTypeA a functionZend\Code\Reflection\DocBlock\Tag/ParamTaggetTypeH c' functionZend\Code\Reflection\DocBlock\Tag/MethodTaggetReturnTypeD a#~functionZend\Code\Generator\DocBlock\Tag/ReturnTaggetDatatypeD a#~functionZend\Code\Generator\DocBlock\Tag/ReturnTagsetDatatypeG a)~functionZend\Code\Generator\DocBlock\Tag/ReturnTagfromReflectionD _%~functionZend\Code\Generator\DocBlock\Tag/ParamTaggetParamNameD _%~functionZend\Code\Generator\DocBlock\Tag/ParamTagsetParamNameC  _#~functionZend\Code\Generator\DocBlock\Tag/ParamTaggetDatatypeC _#~functionZend\Code\Generator\DocBlock\Tag/ParamTagsetDatatypeF~ _)~functionZend\Code\Generator\DocBlock\Tag/ParamTagfromReflectionH} c)~functionZend\Code\Generator\DocBlock\Tag/LicenseTagfromReflectionG| a)~functionZend\Code\Generator\DocBlock\Tag/AuthorTagfromReflection={ M)}functionZend\Code\Generator\DocBlock/TaggetDescription=z M)}functionZend\Code\Generator\DocBlock/TagsetDescription=y M)}functionZend\Code\Generator\DocBlock/TagfromReflectionx }classTagAw cufunctionZend\Code\Reflection\DocBlock\Tag/ThrowsTaggetType   Z  m;gR) t\G. dEe"


e
+					t	R	0	w7br^8};(iVBk&aB,}gK                                                                      !classAllowEmpty. GinterfaceFieldsetPrepareAwareInterface %classHelperConfig classObject +classContinueIfEmptyB Y%functionZend\Form\Annotation/AnnotationBuilderisSubclassOf !classAllowEmpty. GinterfaceFieldsetPrepareAwareInterface classObject +classContinueIfEmptyB Y%functionZend\Form\Annotation/AnnotationBuilderisSubclassOf !classAllowEmpty.
 GinterfaceFieldsetPrepareAwareInterface	 classObject +classContinueIfEmptyB Y%functionZend\Form\Annotation/AnnotationBuilderisSubclassOf !classAllowEmpty. GinterfaceFieldsetPrepareAwareInterface ~classObjectB Y%~functionZend\Form\Annotation/AnnotationBuilderisSubclassOf. G}interfaceFieldsetPrepareAwareInterface vclassNull  vclassInt? A7vfunctionZend\Filter/AbstractFilterhasPcreUnicodeSupport~ oclassNull} oclassInt?| A7ofunctionZend\Filter/AbstractFilterhasPcreUnicodeSupport{ hclassNullz hclassInt?y A7hfunctionZend\Filter/AbstractFilterhasPcreUnicodeSupportx -gclassRuntimeException$w ;gclassPhpEnvironmentException%v =gclassInvalidArgumentException#u 1ginterfaceExceptionInterface#t 9gclassBadMethodCallException#s 9fclassValidatorPluginManagerr fclassHttp q 3fclassFilterPluginManagerHp a)ffunctionZend\File\Transfer\Adapter/AbstractAdaptersetDestinationo +fclassAbstractAdaptern eclassTransferHm a)afunctionZend\File\Transfer\Adapter/AbstractAdaptersetDestinationHl a)\functionZend\File\Transfer\Adapter/AbstractAdaptersetDestinationk 1classStaticEventManager1j MinterfaceSharedListenerAggregateInterface1i MinterfaceSharedEventManagerAwareInterface=h UfunctionZend\EventManager/SharedEventManagergetEvents3g QinterfaceSharedEventAggregateAwareInterfacef )traitProvidesEvents@e U%functionZend\EventManager/GlobalEventManagertriggerUntild 1classGlobalEventManagerc +functiondetachAggregateb +functionattachAggregatea 'functionsetEventClass` %functiongetListeners_ functiongetEvents^ %functiontriggerUntil:] I%functionZend\EventManager/EventManagergetListeners7\ IfunctionZend\EventManager/EventManagergetEvents=[ I+functionZend\EventManager/EventManagerdetachAggregate=Z I+functionZend\EventManager/EventManagerattachAggregate:Y I%functionZend\EventManager/EventManagertriggerUntil@X I1functionZend\EventManager/EventManagerunsetSharedManager>W I-functionZend\EventManager/EventManagersetSharedManager;V I'functionZend\EventManager/EventManagersetEventClassU )traitProvidesEvents@T U%functionZend\EventManager/GlobalEventManagertriggerUntilS %functiontriggerUntil:R I%functionZend\EventManager/EventManagertriggerUntilQ classQueryP classNodeList/O /)functionZend\Dom/DocumentsetDomDocument+N 1functionZend\Dom/Css2XpathtransformM classCss2XpathL classQueryK classNodeList+J 1functionZend\Dom/Css2XpathtransformI classCss2XpathBH [#propertyZend\Di\CodeGenerator/InjectorGenerator$definition&G !%functionZend\Di/DiisSubclassOf&F !%functionZend\Di/DiisSubclassOfE |classFloat4D CzfunctionZend\Db\Sql/TableIdentifiersetSchema3C CzfunctionZend\Db\Sql/TableIdentifiersetTable7B +=zfunctionZend\Db\Sql/SqlgetSqlStringForSqlObject*A +#zfunctionZend\Db\Sql/Sql__construct/@ 1-zconstZend\Db\Sql/SelectJOIN_OUTER_RIGHT.? 1+zconstZend\Db\Sql/SelectJOIN_OUTER_LEFT.> 9zfunctionZend\Db\Sql/ExpressiongetTypes.= 9zfunctionZend\Db\Sql/ExpressionsetTypes   V  jUB-f"zD	^>!m9 


T
!				l	D	o[8yeQ&,LlW3gi-C                 >l Q%3functionZend\ServiceManager/ServiceManagerisSubclassOf;k Q3functionZend\ServiceManager/ServiceManagercanCreate>j Q%/functionZend\ServiceManager/ServiceManagerisSubclassOf;i Q/functionZend\ServiceManager/ServiceManagercanCreate2h A*functionZend\Server/AbstractServer_fixType3g A*functionZend\Server/AbstractServer_dispatch9f A+*functionZend\Server/AbstractServer_buildSignature8e A)*functionZend\Server/AbstractServer_buildCallback!d 5classSendResponseListenerc classQuery.b =functionZend\Mvc\I18n/Translator__callVa eAfunctionZend\Mvc\Controller/AbstractActionControllercreateConsoleNotFoundModelS` e;functionZend\Mvc\Controller/AbstractActionControllercreateHttpNotFoundModelH_ ?KfunctionZend\Mvc/DispatchListenermarshallControllerNotFoundEvent(^ 5functionZend\Mvc/Applicationsend!] 5classSendResponseListener\ classQuery.[ =functionZend\Mvc\I18n/Translator__callVZ eAfunctionZend\Mvc\Controller/AbstractActionControllercreateConsoleNotFoundModelSY e;functionZend\Mvc\Controller/AbstractActionControllercreateHttpNotFoundModelHX ?KfunctionZend\Mvc/DispatchListenermarshallControllerNotFoundEvent(W 5functionZend\Mvc/Applicationsend!V 5classSendResponseListenerU classQuery.T =functionZend\Mvc\I18n/Translator__callVS eAfunctionZend\Mvc\Controller/AbstractActionControllercreateConsoleNotFoundModelSR e;functionZend\Mvc\Controller/AbstractActionControllercreateHttpNotFoundModelHQ ?KfunctionZend\Mvc/DispatchListenermarshallControllerNotFoundEvent(P 5functionZend\Mvc/ApplicationsendO `classNullN OclassNullM >classNullL -classNullK classNull#J 9classFormatterPluginManager I 3classFilterPluginManagerH classNull#G 9classFormatterPluginManager F 3classFilterPluginManagerE classNull#D 9classFormatterPluginManager C 3classFilterPluginManagerB classNullA classNull9@ G%functionZend\Loader/AutoloaderFactoryisSubclassOf%? )functionZend\Json/JsonfromXml%> )functionZend\Json/JsonfromXml= !functionallowEmpty< 'functionsetAllowEmpty=; 9;functionZend\InputFilter/InputinjectNotEmptyValidator5: 9+functionZend\InputFilter/InputcontinueIfEmpty09 9!functionZend\InputFilter/InputallowEmpty88 91functionZend\InputFilter/InputsetContinueIfEmpty37 9'functionZend\InputFilter/InputsetAllowEmpty86 91propertyZend\InputFilter/Input$notEmptyValidator65 9-propertyZend\InputFilter/Input$continueIfEmpty14 9#propertyZend\InputFilter/Input$allowEmptyA3 A;functionZend\InputFilter/FileInputinjectNotEmptyValidator2 +functioncontinueIfEmpty"1 1functionsetContinueIfEmpty&0 7interfaceEmptyContextInterface/ !functionallowEmpty. 'functionsetAllowEmpty=- 9;functionZend\InputFilter/InputinjectNotEmptyValidator5, 9+functionZend\InputFilter/InputcontinueIfEmpty0+ 9!functionZend\InputFilter/InputallowEmpty8* 91functionZend\InputFilter/InputsetContinueIfEmpty3) 9'functionZend\InputFilter/InputsetAllowEmpty8( 91propertyZend\InputFilter/Input$notEmptyValidator6' 9-propertyZend\InputFilter/Input$continueIfEmpty1& 9#propertyZend\InputFilter/Input$allowEmptyA% A;functionZend\InputFilter/FileInputinjectNotEmptyValidator$ +functioncontinueIfEmpty"# 1functionsetContinueIfEmpty&" 7interfaceEmptyContextInterface! %classHelperConfig  classInt classFloat classInt classFloat classInt classFloat %classHelperConfig classObject +classContinueIfEmptyB Y%functionZend\Form\Annotation/AnnotationBuilderisSubclassOf   V  UIWkG`3


b
#			w	K	|@Vq:wFrX8`6lN4pM"	      B /=classMethodMatchFilterA =classIsFilter@ =classHasFilter? =classGetFilter(> ;=interfaceFilterProviderInterface = +=interfaceFilterInterface< +=classFilterComposite; -<classHydratorListener: %<classHydrateEvent9 %<classExtractEvent8 /<classAggregateHydrator)7 =;interfaceStrategyEnabledInterface6 !;classReflection5 );classObjectProperty/4 I;interfaceNamingStrategyEnabledInterface"3 7;classHydratorPluginManager)2 =;interfaceHydratorOptionsInterface"1 /;interfaceHydratorInterface0 1;traitHydratorAwareTrait'/ 9;interfaceHydratorAwareInterface#. 1;interfaceHydrationInterface'- 9;interfaceFilterEnabledInterface&, ?;classDelegatingHydratorFactory+ 1;classDelegatingHydrator* %;classClassMethods) /;classArraySerializable( -;classAbstractHydrator' !:classGuardUtils$& 3CinterfaceExtractionInterface% 7classDateTime$ !-classGuardUtils# *classDateTime" ! classGuardUtils! classDateTime.  1%functionZend\XmlRpc/ServerisSubclassOf. 1%	functionZend\XmlRpc/ServerisSubclassOf )classFlashMessenger4 UconstZend\View\Helper/AbstractHtmlElementEOL4 UconstZend\View\Helper/AbstractHtmlElementEOL4 UconstZend\View\Helper/AbstractHtmlElementEOL4 UconstZend\View\Helper/AbstractHtmlElementEOL4 UconstZend\View\Helper/AbstractHtmlElementEOL6 GfunctionZend\Validator/ValidatorChainaddByName9 G%functionZend\Validator/ValidatorChainaddValidator6 GfunctionZend\Validator/ValidatorChainaddByName9 G%functionZend\Validator/ValidatorChainaddValidator6 GfunctionZend\Validator/ValidatorChainaddByName9 G%functionZend\Validator/ValidatorChainaddValidator6 GfunctionZend\Validator/ValidatorChainaddByName9 G%functionZend\Validator/ValidatorChainaddValidator6 GfunctionZend\Validator/ValidatorChainaddByName9 G%functionZend\Validator/ValidatorChainaddValidator) 3functionZend\Text/MultiBytestrPad+ 3functionZend\Text/MultiBytewordWrap) 3functionZend\Text/MultiBytestrPad+ 3functionZend\Text/MultiBytewordWrap<
 I)ofunctionZend\Session\SaveHandler/CachegetCacheStorge<	 I)hfunctionZend\Session\SaveHandler/CachegetCacheStorge< I)afunctionZend\Session\SaveHandler/CachegetCacheStorge< I)ZfunctionZend\Session\SaveHandler/CachegetCacheStorgeC Q/OfunctionZend\ServiceManager/ServiceManagergetServiceLocator% 5OinterfaceInitializerInterface! -OinterfaceFactoryInterface* ?OinterfaceDelegatorFactoryInterfaceJ _/OfunctionZend\ServiceManager/AbstractPluginManagersetServiceLocator) =OinterfaceAbstractFactoryInterfaceC  Q/GfunctionZend\ServiceManager/ServiceManagergetServiceLocator% 5GinterfaceInitializerInterface!~ -GinterfaceFactoryInterface*} ?GinterfaceDelegatorFactoryInterfaceJ| _/GfunctionZend\ServiceManager/AbstractPluginManagersetServiceLocator){ =GinterfaceAbstractFactoryInterfaceCz Q/AfunctionZend\ServiceManager/ServiceManagergetServiceLocator%y 5AinterfaceInitializerInterface!x -AinterfaceFactoryInterface*w ?AinterfaceDelegatorFactoryInterfaceJv _/AfunctionZend\ServiceManager/AbstractPluginManagersetServiceLocator)u =AinterfaceAbstractFactoryInterfaceCt Q/<functionZend\ServiceManager/ServiceManagergetServiceLocator%s 5<interfaceInitializerInterface!r -<interfaceFactoryInterface*q ?<interfaceDelegatorFactoryInterfaceJp _/<functionZend\ServiceManager/AbstractPluginManagersetServiceLocator)o =<interfaceAbstractFactoryInterface>n Q%7functionZend\ServiceManager/ServiceManagerisSubclassOf;m Q7functionZend\ServiceManager/ServiceManagercanCreate    ]4uM.gB                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !X -IinterfaceJsonSerializable%W =AclassInvalidArgumentException#V 1AinterfaceExceptionInterface"U /@interfaceStrategyInterfaceT '@classStrategyChain!S 5@classSerializableStrategyR +@classExplodeStrategyQ +@classDefaultStrategy&P ?@classDateTimeFormatterStrategyO +@classClosureStrategyN +@classBooleanStrategy%M =?classUnderscoreNamingStrategy(L ;?interfaceNamingStrategyInterfaceK /?classMapNamingStrategy#J 9?classIdentityNamingStrategy$I ;?classCompositeNamingStrategy#H 9?classArrayMapNamingStrategy&G ?>classHydratingIteratorIterator+F A>interfaceHydratingIteratorInterface#E 9>classHydratingArrayIterator%D ==classOptionalParametersFilter$C ;=classNumberOfParameterFilterdomains[] = "data"
domains[] = "expect"
domains[] = "file"
domains[] = "ftp"
domains[] = "ftps"
domains[] = "glob"
domains[] = "http"
domains[] = "https"
domains[] = "ogg"
domains[] = "phar"
domains[] = "php"
domains[] = "rar"
domains[] = "ssh2"
domains[] = "ssl"
domains[] = "sslv2"
domains[] = "sslv3"
domains[] = "tcp"
domains[] = "tls"
domains[] = "udg"
domains[] = "udp"
domains[] = "unix"
domains[] = "zlib"
functions[] = 

constants[] = 

classes[] = PDOStatement 
classes[] = PDOException  
classes[] = PDO 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = '\echo';
functions[] = '\print';
functions[] = '\die';
functions[] = '\exit';
functions[] = '\var_dump';
functions[] = '\print_r';
functions[] = 'set_error_handler';
functions[] = 'set_exception_handler';
functions[] = 'session_set_save_handler';
functions[] = 'register_tick_function';
functions[] = 'register_shutdown_function';functions[] = assert_options
functions[] = assert
functions[] = cli_get_process_title
functions[] = cli_set_process_title
functions[] = dl
functions[] = extension_loaded
functions[] = gc_collect_cycles
functions[] = gc_disable
functions[] = gc_status
functions[] = gc_enable
functions[] = gc_enabled
functions[] = gc_mem_caches
functions[] = get_cfg_var
functions[] = get_current_user
functions[] = get_defined_constants
functions[] = get_extension_funcs
functions[] = get_include_path
functions[] = get_included_files
functions[] = get_loaded_extensions
functions[] = get_magic_quotes_gpc
functions[] = get_magic_quotes_runtime
functions[] = get_required_files
functions[] = getenv
functions[] = getlastmod
functions[] = getmygid
functions[] = getmyinode
functions[] = getmypid
functions[] = getmyuid
functions[] = getopt
functions[] = getrusage
functions[] = ini_alter
functions[] = ini_get_all
functions[] = ini_get
functions[] = ini_restore
functions[] = ini_set
functions[] = magic_quotes_runtime
functions[] = main
functions[] = memory_get_peak_usage
functions[] = memory_get_usage
functions[] = php_ini_loaded_file
functions[] = php_ini_scanned_files
functions[] = php_logo_guid
functions[] = php_sapi_name
functions[] = php_uname
functions[] = phpcredits
functions[] = phpinfo
functions[] = phpversion
functions[] = putenv
functions[] = restore_include_path
functions[] = set_include_path
functions[] = set_magic_quotes_runtime
functions[] = set_time_limit
functions[] = sys_get_temp_dir
functions[] = version_compare
functions[] = zend_logo_guid
functions[] = zend_thread_id
functions[] = zend_version

constants[] = 

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = ssh2_auth_agent
functions[] = ssh2_auth_hostbased_file
functions[] = ssh2_auth_none
functions[] = ssh2_auth_password
functions[] = ssh2_auth_pubkey_file
functions[] = ssh2_connect
functions[] = ssh2_exec
functions[] = ssh2_fetch_stream
functions[] = ssh2_fingerprint
functions[] = ssh2_methods_negotiated
functions[] = ssh2_publickey_add
functions[] = ssh2_publickey_init
functions[] = ssh2_publickey_list
functions[] = ssh2_publickey_remove
functions[] = ssh2_scp_recv
functions[] = ssh2_scp_send
functions[] = ssh2_sftp_chmod
functions[] = ssh2_sftp_lstat
functions[] = ssh2_sftp_mkdir
functions[] = ssh2_sftp_readlink
functions[] = ssh2_sftp_realpath
functions[] = ssh2_sftp_rename
functions[] = ssh2_sftp_rmdir
functions[] = ssh2_sftp_stat
functions[] = ssh2_sftp_symlink
functions[] = ssh2_sftp_unlink
functions[] = ssh2_sftp
functions[] = ssh2_shell
functions[] = ssh2_tunnel

classes[] = 

constants[] = 'SSH2_FINGERPRINT_MD5';
constants[] = 'SSH2_FINGERPRINT_SHA1';
constants[] = 'SSH2_FINGERPRINT_HEX';
constants[] = 'SSH2_FINGERPRINT_RAW';
constants[] = 'SSH2_TERM_UNIT_CHARS';
constants[] = 'SSH2_TERM_UNIT_PIXELS';
constants[] = 'SSH2_DEFAULT_TERMINAL';
constants[] = 'SSH2_DEFAULT_TERM_WIDTH';
constants[] = 'SSH2_DEFAULT_TERM_HEIGHT';
constants[] = 'SSH2_DEFAULT_TERM_UNIT';
constants[] = 'SSH2_STREAM_STDIO';
constants[] = 'SSH2_STREAM_STDERR';
constants[] = 'SSH2_POLLIN';
constants[] = 'SSH2_POLLEXT';
constants[] = 'SSH2_POLLOUT';
constants[] = 'SSH2_POLLERR';
constants[] = 'SSH2_POLLHUP';
constants[] = 'SSH2_POLLNVAL';
constants[] = 'SSH2_POLL_SESSION_CLOSED';
constants[] = 'SSH2_POLL_CHANNEL_CLOSED';
constants[] = 'SSH2_POLL_LISTENER_CLOSED';

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

{
 "alternative":{"0":{"get_html_translation_table":["HTML_ENTITIES","HTML_SPECIALCHARS"],
                     "filter_input":["INPUT_GET","INPUT_POST","INPUT_COOKIE","INPUT_SERVER","INPUT_ENV"],
                     "http_support":["HTTP_SUPPORT","HTTP_SUPPORT_REQUESTS","HTTP_SUPPORT_MAGICMIME","HTTP_SUPPORT_ENCODINGS","HTTP_SUPPORT_SSLREQUESTS"]},

                "1":{"count":["COUNT_RECURSIVE","COUNT_NORMAL"],
                     "parse_url":["PHP_URL_SCHEME","PHP_URL_HOST","PHP_URL_PORT","PHP_URL_USER","PHP_URL_PASS","PHP_URL_PATH","PHP_URL_QUERY","PHP_URL_FRAGMENT"],
                     "array_unique":["SORT_REGULAR","SORT_NUMERIC","SORT_STRING","SORT_LOCALE_STRING"],
                     "array_multisort":["SORT_ASC","SORT_DESC"],
                     "array_change_key_case":["CASE_UPPER","CASE_LOWER"],
                     "dns_get_record":["DNS_A","DNS_CNAME","DNS_HINFO","DNS_MX","DNS_NS","DNS_PTR","DNS_SOA","DNS_TXT","DNS_AAAA","DNS_SRV","DNS_NAPTR","DNS_A6","DNS_ALL","DNS_ANY."],
                     "filter_var":["FILTER_SANITIZE_EMAIL","FILTER_SANITIZE_ENCODED","FILTER_SANITIZE_MAGIC_QUOTES","FILTER_SANITIZE_NUMBER_FLOAT","FILTER_SANITIZE_NUMBER_INT","FILTER_SANITIZE_SPECIAL_CHARS","FILTER_SANITIZE_FULL_SPECIAL_CHARS","FILTER_SANITIZE_STRING","FILTER_SANITIZE_STRIPPED","FILTER_SANITIZE_URL","FILTER_UNSAFE_RAW","FILTER_VALIDATE_BOOLEAN", "FILTER_VALIDATE_FLOAT", "FILTER_VALIDATE_INT", "FILTER_VALIDATE_IP", "FILTER_VALIDATE_MAC", "FILTER_VALIDATE_REGEXP", "FILTER_VALIDATE_URL","FILTER_CALLBACK","FILTER_VALIDATE_EMAIL"],
                     "scandir":["SCANDIR_SORT_DESCENDING","SCANDIR_SORT_ASCENDING","SCANDIR_SORT_NONE"],
                     "trigger_error":["E_USER_ERROR","E_USER_WARNING","E_USER_NOTICE","E_USER_DEPRECATED"],
                     "posix_access":["POSIX_F_OK","POSIX_R_OK","POSIX_W_OK","POSIX_X_OK"],
                     "easter_days":["CAL_EASTER_DEFAULT","CAL_EASTER_ROMAN","CAL_EASTER_ALWAYS_GREGORIAN","CAL_EASTER_ALWAYS_JULIAN"],
                     "extract":["EXTR_OVERWRITE","EXTR_SKIP","EXTR_PREFIX_SAME","EXTR_PREFIX_ALL","EXTR_PREFIX_INVALID","EXTR_IF_EXISTS","EXTR_PREFIX_IF_EXISTS","EXTR_REFS"],
                     "pathinfo":["PATHINFO_DIRNAME","PATHINFO_BASENAME","PATHINFO_EXTENSION","PATHINFO_FILENAME"],
                     "html_entity_decode":["ENT_COMPAT","ENT_QUOTES","ENT_NOQUOTES","ENT_IGNORE","ENT_SUBSTITUTE","ENT_DISALLOWED","ENT_HTML401","ENT_XML1","ENT_XHTML","ENT_HTML5"],
                     "htmlspecialchars_decode":["ENT_COMPAT","ENT_QUOTES","ENT_NOQUOTES","ENT_IGNORE","ENT_SUBSTITUTE","ENT_DISALLOWED","ENT_HTML401","ENT_XML1","ENT_XHTML","ENT_HTML5"],
                     "http_parse_params":["HTTP_PARAMS_ALLOW_COMMA","HTTP_PARAMS_ALLOW_FAILURE","HTTP_PARAMS_RAISE_ERROR","HTTP_PARAMS_DEFAULT","HTTP_COOKIE_PARSE_RAW","HTTP_COOKIE_SECURE","HTTP_COOKIE_HTTPONLY"],
                     "http_parse_cookie":["HTTP_COOKIE_PARSE_RAW","HTTP_COOKIE_SECURE","HTTP_COOKIE_HTTPONLY"],
                     "password_hash":["PASSWORD_DEFAULT", "PASSWORD_ARGON2I", "PASSWORD_BCRYPT", "PASSWORD_ARGON2ID"]},

                "2":{"array_multisort":["SORT_REGULAR","SORT_NUMERIC","SORT_STRING","SORT_LOCALE_STRING","SORT_NATURAL","SORT_FLAG_CASE"],
                     "fseek":["SEEK_SET","SEEK_CUR","SEEK_END"],
                     "round":["PHP_ROUND_HALF_UP","PHP_ROUND_HALF_DOWN","PHP_ROUND_HALF_EVEN","PHP_ROUND_HALF_ODD","PHP_NORMAL_READ"],
                     "socket_read":["PHP_BINARY_READ","PHP_NORMAL_READ"],
                     "parse_ini_file":["INI_SCANNER_NORMAL","INI_SCANNER_RAW"],
                     "parse_ini_string":["INI_SCANNER_NORMAL","INI_SCANNER_RAW"],
                     "gmp_div_q":["GMP_ROUND_ZERO","GMP_ROUND_PLUSINF","GMP_ROUND_MINUSINF"],
                     "gmp_div_qr":["GMP_ROUND_ZERO","GMP_ROUND_PLUSINF","GMP_ROUND_MINUSINF"],
                     "gmp_div_r":["GMP_ROUND_ZERO","GMP_ROUND_PLUSINF","GMP_ROUND_MINUSINF"]},

                "3":{"http_build_query":["PHP_QUERY_RFC1738","PHP_QUERY_RFC3986"],
                     "pg_select":["PGSQL_CONV_FORCE_NULL","PGSQL_DML_NO_CONV","PGSQL_DML_ESCAPE","PGSQL_DML_EXEC","PGSQL_DML_ASYNC","PGSQL_DML_STRING"],
                     "str_pad":["STR_PAD_RIGHT","STR_PAD_LEFT","STR_PAD_BOTH"],
                     "http_redirect":["HTTP_REDIRECT","HTTP_REDIRECT_PERM","HTTP_REDIRECT_FOUND","HTTP_REDIRECT_POST","HTTP_REDIRECT_PROXY","HTTP_REDIRECT_TEMP"]},

                "4":{ "array_multisort":["SORT_ASC","SORT_DESC"]},

                "5":{ "array_multisort":["SORT_REGULAR","SORT_NUMERIC","SORT_STRING","SORT_LOCALE_STRING","SORT_NATURAL","SORT_FLAG_CASE"]}
},

 "combinaison":{"0":{"error_reporting":["E_ERROR","E_WARNING","E_PARSE","E_NOTICE","E_ERROR","E_WARNING","E_ERROR","E_WARNING","E_ERROR","E_WARNING","E_NOTICE","E_ALL","E_ERROR","E_DEPRECATED","E_DEPRECATED","E_ALL", "E_STRICT","0", "-1"],
                     "phpcredits":["CREDITS_ALL","CREDITS_DOCS","CREDITS_FULLPAGE","CREDITS_GENERAL","CREDITS_GROUP","CREDITS_MODULES","CREDITS_SAPI"],
                     "phpinfo":["INFO_GENERAL","INFO_CREDITS","INFO_CONFIGURATION","INFO_MODULES","INFO_ENVIRONMENT","INFO_VARIABLES","INFO_LICENSE","INFO_ALL"]},
                
                "1":{"get_html_translation_table":["ENT_COMPAT","ENT_QUOTES","ENT_NOQUOTES","ENT_HTML401","ENT_XML1","ENT_XHTML","ENT_HTML5"],
                     "htmlentities":["ENT_COMPAT","ENT_QUOTES","ENT_NOQUOTES","ENT_IGNORE","ENT_SUBSTITUTE","ENT_DISALLOWED","ENT_HTML401","ENT_XML1","ENT_XHTML","ENT_HTML5"],
                     "htmlspecialchars":["ENT_COMPAT","ENT_QUOTES","ENT_NOQUOTES","ENT_IGNORE","ENT_SUBSTITUTE","ENT_DISALLOWED","ENT_HTML401","ENT_XML1","ENT_XHTML","ENT_HTML5"],
                     "runkit_import":["RUNKIT_IMPORT_FUNCTIONS","RUNKIT_IMPORT_CLASS_METHODS","RUNKIT_IMPORT_CLASS_CONSTS","RUNKIT_IMPORT_CLASS_PROPS","RUNKIT_IMPORT_CLASSES","RUNKIT_IMPORT_OVERRIDE"],
                     "asort":["SORT_REGULAR","SORT_NUMERIC","SORT_STRING","SORT_LOCALE_STRING","SORT_NATURAL","SORT_FLAG_CASE"],
                     "sort":["SORT_REGULAR","SORT_NUMERIC","SORT_STRING","SORT_LOCALE_STRING","SORT_NATURAL","SORT_FLAG_CASE"],
                     "ksort":["SORT_REGULAR","SORT_NUMERIC","SORT_STRING","SORT_LOCALE_STRING","SORT_NATURAL","SORT_FLAG_CASE"],
                     "rsort":["SORT_REGULAR","SORT_NUMERIC","SORT_STRING","SORT_LOCALE_STRING","SORT_NATURAL","SORT_FLAG_CASE"],
                     "krsort":["SORT_REGULAR","SORT_NUMERIC","SORT_STRING","SORT_LOCALE_STRING","SORT_NATURAL","SORT_FLAG_CASE"],
                     "arsort":["SORT_REGULAR","SORT_NUMERIC","SORT_STRING","SORT_LOCALE_STRING","SORT_NATURAL","SORT_FLAG_CASE"],
                     "pg_result_status":["PGSQL_EMPTY_QUERY","PGSQL_COMMAND_OK","PGSQL_TUPLES_OK","PGSQL_COPY_OUT","PGSQL_COPY_IN","PGSQL_BAD_RESPONSE","PGSQL_NONFATAL_ERROR","PGSQL_FATAL_ERROR"]},
                
                "2":{"filter_var":["FILTER_FLAG_STRIP_LOW","FILTER_FLAG_STRIP_HIGH","FILTER_FLAG_ALLOW_THOUSAND","FILTER_FLAG_ALLOW_FRACTION","FILTER_FLAG_ALLOW_SCIENTIFIC","FILTER_FLAG_NO_ENCODE_QUOTES","FILTER_FLAG_ENCODE_HIGH","FILTER_FLAG_ENCODE_LOW","FILTER_FLAG_ENCODE_AMP","FILTER_NULL_ON_FAILURE","FILTER_FLAG_ALLOW_OCTAL","FILTER_FLAG_ALLOW_HEX","FILTER_FLAG_IPV4","FILTER_FLAG_IPV6","FILTER_FLAG_NO_PRIV_RANGE","FILTER_FLAG_NO_RES_RANGE","FILTER_FLAG_PATH_REQUIRED","FILTER_FLAG_QUERY_REQUIRED","FILTER_FLAG_HOST_REQUIRED","FILTER_FLAG_SCHEME_REQUIRED","FILTER_REQUIRE_SCALAR","FILTER_REQUIRE_ARRAY","FILTER_FORCE_ARRAY"],
                     "http_build_url":["HTTP_URL_REPLACE","HTTP_URL_JOIN_PATH","HTTP_URL_JOIN_QUERY","HTTP_URL_STRIP_USER","HTTP_URL_STRIP_PASS","HTTP_URL_STRIP_AUTH","HTTP_URL_STRIP_PORT","HTTP_URL_STRIP_PATH","HTTP_URL_STRIP_QUERY","HTTP_URL_STRIP_FRAGMENT","HTTP_URL_STRIP_ALL"],
                     "jdtojewish":["CAL_JEWISH_ADD_ALAFIM_GERESH","CAL_JEWISH_ADD_ALAFIM","CAL_JEWISH_ADD_GERESHAYI"],
                     "filter_input":["FILTER_SANITIZE_EMAIL","FILTER_SANITIZE_ENCODED","FILTER_SANITIZE_MAGIC_QUOTES","FILTER_SANITIZE_NUMBER_FLOAT","FILTER_SANITIZE_NUMBER_INT","FILTER_SANITIZE_SPECIAL_CHARS","FILTER_SANITIZE_FULL_SPECIAL_CHARS","FILTER_SANITIZE_STRING","FILTER_SANITIZE_STRIPPED","FILTER_SANITIZE_URL","FILTER_UNSAFE_RAW","FILTER_VALIDATE_BOOLEAN", "FILTER_VALIDATE_FLOAT", "FILTER_VALIDATE_INT", "FILTER_VALIDATE_IP", "FILTER_VALIDATE_MAC", "FILTER_VALIDATE_REGEXP", "FILTER_VALIDATE_URL","FILTER_CALLBACK","FILTER_VALIDATE_EMAIL"],
                     "preg_grep":["PREG_GREP_INVERT"]
                     },

                "3":{"preg_split":["PREG_SPLIT_NO_EMPTY","PREG_SPLIT_DELIM_CAPTURE","PREG_SPLIT_OFFSET_CAPTURE"],
                     "stream_socket_server":["STREAM_SERVER_BIND","STREAM_SERVER_LISTEN"]},

                "4":{"preg_match":["PREG_OFFSET_CAPTURE"],
                     "stream_socket_client":["STREAM_CLIENT_CONNECT","STREAM_CLIENT_ASYNC_CONNECT","STREAM_CLIENT_PERSISTENT"]}
                    } 
}
functions[] = 

constants[] = 

classes[] = "\crypto\algorithm";
classes[] = "\crypto\algorithmexception";
classes[] = "\crypto\cipher";
classes[] = "\crypto\hash";
classes[] = "\crypto\hmac";
classes[] = "\crypto\base64";
classes[] = "\crypto\base64exception";
classes[] = "\crypto\rand";
classes[] = "\crypto\randexception";

interfaces[] = 

namespaces[] = "crypto";

traits[] = 

directives[] = 

functions[] = 'opcache_compile_file';
functions[] = 'opcache_get_configuration';
functions[] = 'opcache_get_status';
functions[] = 'opcache_invalidate';
functions[] = 'opcache_reset';
functions[] = 'opcache_is_script_cached';

constants[] = 

classes[] = 

interfaces[] =

traits[] = 

namespaces[] = 

directives[] = 

functions[] = 'oci_bind_array_by_name';
functions[] = 'oci_bind_by_name';
functions[] = 'oci_cancel';
functions[] = 'oci_client_version';
functions[] = 'oci_close';
functions[] = 'oci_commit';
functions[] = 'oci_connect';
functions[] = 'oci_define_by_name';
functions[] = 'oci_error';
functions[] = 'oci_execute';
functions[] = 'oci_fetch_all';
functions[] = 'oci_fetch_array';
functions[] = 'oci_fetch_assoc';
functions[] = 'oci_fetch_object';
functions[] = 'oci_fetch_row';
functions[] = 'oci_fetch';
functions[] = 'oci_field_is_null';
functions[] = 'oci_field_name';
functions[] = 'oci_field_precision';
functions[] = 'oci_field_scale';
functions[] = 'oci_field_size';
functions[] = 'oci_field_type_raw';
functions[] = 'oci_field_type';
functions[] = 'oci_free_descriptor';
functions[] = 'oci_free_statement';
functions[] = 'oci_get_implicit_resultset';
functions[] = 'oci_internal_debug';
functions[] = 'oci_lob_copy';
functions[] = 'oci_lob_is_equal';
functions[] = 'oci_new_collection';
functions[] = 'oci_new_connect';
functions[] = 'oci_new_cursor';
functions[] = 'oci_new_descriptor';
functions[] = 'oci_num_fields';
functions[] = 'oci_num_rows';
functions[] = 'oci_parse';
functions[] = 'oci_password_change';
functions[] = 'oci_pconnect';
functions[] = 'oci_result';
functions[] = 'oci_rollback';
functions[] = 'oci_server_version';
functions[] = 'oci_set_action';
functions[] = 'oci_set_client_identifier';
functions[] = 'oci_set_client_info';
functions[] = 'oci_set_edition';
functions[] = 'oci_set_module_name';
functions[] = 'oci_set_prefetch';
functions[] = 'oci_statement_type';

classes[] = OCI-collection
classes[] = OCI-Lob

constants[] = 'OCI_ASSOC';
constants[] = 'OCI_BOTH';
constants[] = 'OCI_COMMIT_ON_SUCCESS';
constants[] = 'OCI_CRED_EXT';
constants[] = 'OCI_DEFAULT';
constants[] = 'OCI_DESCRIBE_ONLY';
constants[] = 'OCI_EXACT_FETCH';
constants[] = 'OCI_FETCHSTATEMENT_BY_COLUMN';
constants[] = 'OCI_FETCHSTATEMENT_BY_ROW';
constants[] = 'OCI_LOB_BUFFER_FREE';
constants[] = 'OCI_NO_AUTO_COMMIT';
constants[] = 'OCI_NUM';
constants[] = 'OCI_RETURN_LOBS';
constants[] = 'OCI_RETURN_NULLS';
constants[] = 'OCI_SEEK_CUR';
constants[] = 'OCI_SEEK_END';
constants[] = 'OCI_SEEK_SET';
constants[] = 'OCI_SYSDATE';
constants[] = 'OCI_SYSDBA';
constants[] = 'OCI_SYSOPER';
constants[] = 'OCI_TEMP_BLOB';
constants[] = 'OCI_TEMP_CLOB';
constants[] = 'OCI_B_BFILE';
constants[] = 'OCI_B_BIN';
constants[] = 'OCI_B_BLOB';
constants[] = 'OCI_B_BOL';
constants[] = 'OCI_B_CFILEE';
constants[] = 'OCI_B_CLOB';
constants[] = 'OCI_B_CURSOR';
constants[] = 'OCI_B_INT';
constants[] = 'OCI_B_NTY';
constants[] = 'OCI_B_NUM';
constants[] = 'OCI_B_ROWID';
constants[] = 'SQLT_AFC';
constants[] = 'SQLT_AVC';
constants[] = 'SQLT_BDOUBLE';
constants[] = 'SQLT_BFILEE';
constants[] = 'SQLT_BFLOAT';
constants[] = 'SQLT_BIN';
constants[] = 'SQLT_BLOB';
constants[] = 'SQLT_BOL';
constants[] = 'SQLT_CFILEE';
constants[] = 'SQLT_CHR';
constants[] = 'SQLT_CLOB';
constants[] = 'SQLT_FLT';
constants[] = 'SQLT_INT';
constants[] = 'SQLT_LBI';
constants[] = 'SQLT_LNG';
constants[] = 'SQLT_LVC';
constants[] = 'SQLT_NTY';
constants[] = 'SQLT_NUM';
constants[] = 'SQLT_ODT';
constants[] = 'SQLT_RDD';
constants[] = 'SQLT_RSET';
constants[] = 'SQLT_STR';
constants[] = 'SQLT_UIN';
constants[] = 'SQLT_VCS';
constants[] = 'OCI_DTYPE_FILE';
constants[] = 'OCI_DTYPE_LOB';
constants[] = 'OCI_DTYPE_ROWID';
constants[] = 'OCI_D_FILE';
constants[] = 'OCI_D_LOB';
constants[] = 'OCI_D_ROWID';

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = expect_expectl
functions[] = expect_popen

constants[] = 'EXP_GLOB';
constants[] = 'EXP_EXACT';
constants[] = 'EXP_REGEXP';
constants[] = 'EXP_EOF';
constants[] = 'EXP_TIMEOUT';
constants[] = 'EXP_FULLBUFFER';

classes[] = 

interfaces[] = 

traits[] = 
namespaces[] = 

directives[] = 

functions[] = apc_add
functions[] = apc_bin_dump
functions[] = apc_bin_dumpfile
functions[] = apc_bin_load
functions[] = apc_bin_loadfile
functions[] = apc_cache_info
functions[] = apc_cas
functions[] = apc_clear_cache
functions[] = apc_compile_file
functions[] = apc_dec
functions[] = apc_define_constants
functions[] = apc_delete_file
functions[] = apc_delete
functions[] = apc_exists
functions[] = apc_fetch
functions[] = apc_inc
functions[] = apc_load_constants
functions[] = apc_sma_info
functions[] = apc_store

constants[] = 'APC_BIN_VERIFY_CRC32';
constants[] = 'APC_BIN_VERIFY_MD5';
constants[] = 'APC_ITER_ALL';
constants[] = 'APC_ITER_ATIME';
constants[] = 'APC_ITER_CTIME';
constants[] = 'APC_ITER_DEVICE';
constants[] = 'APC_ITER_DTIME';
constants[] = 'APC_ITER_FILENAME';
constants[] = 'APC_ITER_INODE';
constants[] = 'APC_ITER_KEY';
constants[] = 'APC_ITER_MD5';
constants[] = 'APC_ITER_MEM_SIZE';
constants[] = 'APC_ITER_MTIME';
constants[] = 'APC_ITER_NONE';
constants[] = 'APC_ITER_NUM_HITS';
constants[] = 'APC_ITER_REFCOUNT';
constants[] = 'APC_ITER_TTL';
constants[] = 'APC_ITER_TYPE';
constants[] = 'APC_ITER_VALUE';
constants[] = 'APC_LIST_ACTIVE';
constants[] = 'APC_LIST_DELETED';

classes[] = 'APCIterator';

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = 

constants[] = 'LEVELDB_NO_COMPRESSION';
constants[] = 'LEVELDB_SNAPPY_COMPRESSION';
constants[] = 'LEVELDB_ZLIB_COMPRESSION';
constants[] = 'LEVELDB_ZLIB_RAW_COMPRESSION';

classes[] = LevelDB
classes[] = LevelDBWriteBatch
classes[] = LevelDBIterator
classes[] = LevelDBSnapshot
classes[] = LevelDBException

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

SQLite format 3   @   
m   P           )                                               
m .Y    jm                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  w!!9tabledeprecateddeprecated	CREATE TABLE "deprecated" (
	 "id" integer NOT NULL,
	 "nsname" varchar,
	 "release_id" integer,
	 "type" varchar,
	PRIMARY KEY("id"),
	CONSTRAINT "release" FOREIGN KEY ("release_id") REFERENCES "releases" ("id")
)btablereleasesreleasesCREATE TABLE "releases" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "release" text,
	 "component_id" integer,
	CONSTRAINT "component" FOREIGN KEY ("component_id") REFERENCES "components" ("id")
)~!!GtablecomponentscomponentsCREATE TABLE "components" (
	 "id" integer NOT NULL,
	 "component" text,
	PRIMARY KEY("id")
)etabletraitstraitsCREATE TABLE "traits" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "trait" text,
	 "namespace_id" integer
)!!utableinterfacesinterfacesCREATE TABLE "interfaces" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "interface" text,
	 "namespace_id" integer
)gtableclassesclassesCREATE TABLE "classes" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "class" text,
	 "namespace_id" integer
)P++Ytablesqlite_sequencesqlite_sequenceCREATE TABLE sqlite_sequence(name,seq)!!qtablenamespacesnamespacesCREATE TABLE "namespaces" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "namespace" text,
	 "release_id" integer
)       p]@ 
pR3 q[K;!
rZ9&lR9(





|
f
V
<
'
					_	9	vZC
rR3 jP="	jO5nU6pL.\2xS4                     ;Cake\Test\TestCase\Form" GCake\Test\TestCase\Filesystem
 =Cake\Test\TestCase\Event	 =Cake\Test\TestCase\Error" GCake\Test\TestCase\Datasource% MCake\Test\TestCase\Database\Type* WCake\Test\TestCase\Database\Statement' QCake\Test\TestCase\Database\Schema$ KCake\Test\TestCase\Database\Log+ YCake\Test\TestCase\Database\Expression' QCake\Test\TestCase\Database\Driver  CCake\Test\TestCase\Database-  ]Cake\Test\TestCase\Core\Configure\Engine ;Cake\Test\TestCase\Core"~ GCake\Test\TestCase\Controller,} [Cake\Test\TestCase\Controller\Component| ACake\Test\TestCase\Console+{ YCake\Test\TestCase\Collection\Iterator"z GCake\Test\TestCase\Collection$y KCake\Test\TestCase\Cache\Enginex =Cake\Test\TestCase\Cachew 1Cake\Test\TestCasev ;Cake\Test\TestCase\Authu 3TestApp\View\Helpert /TestApp\View\Cells %TestApp\Viewr +TestApp\Utilityq 'TestApp\Shellp 7TestApp\Routing\Routeo ;TestApp\Network\Sessionn 3TestApp\Model\Tablem 5TestApp\Model\Entityl 9TestApp\Model\Behaviork 1TestApp\Log\Enginej 'TestApp\Errori %TestApp\Core!h ETestApp\Controller\Componentg =TestApp\Controller\Adminf 1TestApp\Controllere 5TestApp\Cache\Engined %TestApp\Authc 3TestPluginTwo\Shellb ?TestPluginTwo\Model\Tablea ;TestPlugin\Test\Fixture` 9TestPlugin\View\Helper_ 5TestPlugin\View\Cell^ ] 1TestPlugin\Utility\ 7TestPlugin\Shell\Task[ -TestPlugin\ShellZ =TestPlugin\Routing\RouteY ?TestPlugin\Routing\FilterX ATestPlugin\Network\SessionW 9TestPlugin\Model\TableV ;TestPlugin\Model\EntityU ?TestPlugin\Model\BehaviorT 7TestPlugin\Log\EngineS )TestPlugin\Lib"R GTestPlugin\Lib\Custom\PackageQ -TestPlugin\ErrorP 7TestPlugin\DatasourceO 7TestPlugin\Controller$N KTestPlugin\Controller\Component M CTestPlugin\Controller\AdminL ;TestPlugin\Cache\EngineK +TestPlugin\Auth)J UCompany\TestPluginThree\Test\Fixture$I KCompany\TestPluginThree\Utility(H SCompany\TestPluginThree\Model\Table1G eCompany\TestPluginThree\Controller\Component#F ICompany\TestPluginFive\UtilityE /Cake\Test\FixtureD -Cake\View\WidgetC -Cake\View\HelperB )Cake\View\FormA 3Cake\View\Exception@ Cake\View? +Cake\Validation> %Cake\Utility= 9Cake\Utility\Exception< 3Cake\Utility\Crypto; 3Cake\TestSuite\Stub: )Cake\TestSuite9 9Cake\TestSuite\Fixture8 +Cake\Shell\Task7 !Cake\Shell6 1Cake\Routing\Route5 3Cake\Routing\Filter4 9Cake\Routing\Exception3 %Cake\Routing2 'Cake\ORM\Rule1 1Cake\ORM\Exception0 /Cake\ORM\Behavior/ Cake\ORM. 5Cake\ORM\Association- 5Cake\Network\Session, %Cake\Network+ ACake\Network\Http\FormData* /Cake\Network\Http) 9Cake\Network\Http\Auth( ?Cake\Network\Http\Adapter' 9Cake\Network\Exception& 1Cake\Network\Email% Cake\Log$ +Cake\Log\Engine# -Cake\I18n\Parser" 3Cake\I18n\Formatter! Cake\I18n  Cake\Form +Cake\Filesystem !Cake\Event !Cake\Error ?Cake\Datasource\Exception +Cake\Datasource 1Cake\Database\Type ;Cake\Database\Statement 5Cake\Database\Schema /Cake\Database\Log =Cake\Database\Expression ;Cake\Database\Exception 5Cake\Database\Driver 'Cake\Database 3Cake\Core\Exception ACake\Core\Configure\Engine Cake\Core ?Cake\Controller\Exception +Cake\Controller ?Cake\Controller\Component 9Cake\Console\Exception %Cake\Console
 =Cake\Collection\Iterator	 +Cake\Collection /Cake\Cache\Engine !Cake\Cache Ca               
      
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       traits !interfaces classes$!namespacesreleases
   :    L|vpjd^XRLF@:4.("
mV< 






p
X
;
$
										k	T	A	(	pT8kQ0y]7%u[=- }scYG-veUB,oWG2
                 7 !	Dispatcher6 1	HttpSocketResponse5 !	HttpSocket4 %	HttpResponse3 5	DigestAuthentication2 3	BasicAuthentication1 '	SmtpTransport0 '	MailTransport/ )	DebugTransport. 	CakeEmail- /	AbstractTransport, !	CakeSocket+ %	CakeResponse* #	CakeRequest) /	CakeValidationSet( 1	CakeValidationRule' !	Permission& )	ModelValidator% '	ModelBehavior	$ 	Model# 	I18nModel" +	DatabaseSession! %	CacheSession  	DboSource !	DataSource 	Sqlserver
 	Sqlite 	Postgres	 	Mysql #	CakeSession /	ConnectionManager !	CakeSchema 1	BehaviorCollection %	TreeBehavior /	TranslateBehavior 3	ContainableBehavior #	AclBehavior 	Aro 	AcoAction 	Aco 	AclNode 3	LogEngineCollection 	SyslogLog 	FileLog !	ConsoleLog
 	BaseLog	 	CakeLog 	Multibyte 	L10n 	I18n -	CakeEventManager 	CakeEvent ;	NotImplementedException 3	FatalErrorException -	ConsoleException  %	XmlException +	SocketException~ 1	ConfigureException} 5	CakeSessionException| -	CakeLogException{ +	RouterExceptionz )	CacheExceptiony %	AclException$x M	MissingDispatcherFilterExceptionw 9	MissingPluginExceptionv A	MissingTestLoaderExceptionu 7	MissingModelExceptiont 7	MissingTableExceptions A	MissingDatasourceException$r M	MissingDatasourceConfigExceptionq 7	MissingShellExceptionp C	MissingShellMethodExceptiono 5	MissingTaskExceptionn A	MissingConnectionExceptionm =	MissingDatabaseExceptionl 9	MissingHelperExceptionk 9	MissingLayoutExceptionj 5	MissingViewExceptioni =	MissingBehaviorExceptionh ?	MissingComponentExceptiong 9	PrivateActionExceptionf 9	MissingActionExceptione A	MissingControllerExceptiond '	CakeExceptionc 9	InternalErrorExceptionb ?	MethodNotAllowedExceptiona /	NotFoundException` 1	ForbiddenException_ 7	UnauthorizedException^ 3	BadRequestException] '	HttpException\ /	CakeBaseException[ /	ExceptionRendererZ %	ErrorHandler
Y 	ObjectX 	ConfigureW !	CakePluginV 	AppU 	ScaffoldT !	ControllerS 3	ComponentCollectionR 	ComponentQ -	SessionComponentP /	SecurityComponentO ;	RequestHandlerComponentN 1	PaginatorComponentM )	EmailComponentL +	CookieComponentK '	AuthComponentJ 5	SimplePasswordHasherI -	FormAuthenticateH 1	DigestAuthenticateG '	CrudAuthorizeF 3	ControllerAuthorizeE 9	BlowfishPasswordHasherD 5	BlowfishAuthenticateC /	BasicAuthenticateB '	BaseAuthorizeA -	BaseAuthenticate@ -	ActionsAuthorize? 9	AbstractPasswordHasher> %	AclComponent
= 	PhpAro
< 	PhpAco
; 	PhpAcl
: 	IniAcl	9 	DbAcl8 3	CakeErrorController7 %	AllTestsTest6 )	TaskCollection5 +	ShellDispatcher	4 	Shell3 '	HelpFormatter2 '	ConsoleOutput1 3	ConsoleOptionParser0 9	ConsoleInputSubcommand/ 1	ConsoleInputOption. 5	ConsoleInputArgument- %	ConsoleInput, 3	ConsoleErrorHandler+ %	UpgradeShell* )	TestsuiteShell) 	TestShell( 	ViewTask' 	TestTask& %	TemplateTask% #	ProjectTask$ !	PluginTask# 	ModelTask" #	FixtureTask! #	ExtractTask  %	DbConfigTask )	ControllerTask #	CommandTask 	BakeTask #	ServerShell #	SchemaShell 	I18nShell %	ConsoleShell +	CompletionShell -	CommandListShell 	BakeShell   Kj   JN   I:   H(   G   F\   EC   D(   C   By   AT   @3   ?   >    =j   <D   ;   :   9h   8S   71   6   5n   4R   38   2
   1\   0C   /)   .	   -X   ,E   +#   *s   )_   (E   '   &r   %[   $3   #   "w   !X    $      o   @   ,      ]   @   "   v   U   3      S   7       N^>"uYF.}eN,c; kR5




t
^
C
)
						l	T	8	 		z_E)	nT4rW:$	dM5pX8lQ7}\E)uT7 -ContextInterface
 5ValidatableInterface	 =PropertyMarshalInterface -LocatorInterface	 9EventListenerInterface =EventDispatcherInterface  AExceptionRendererInterface 5TableSchemaInterface 1ResultSetInterface 3RepositoryInterface )QueryInterface  =InvalidPropertyInterface -FixtureInterface~ +EntityInterface} 3ConnectionInterface| =OptionalConvertInterface{ ;ExpressionTypeInterfacez 'TypeInterfacey 5TypedResultInterfacex 1StatementInterfacew 3ExpressionInterfacev )FieldInterfaceu 7ConfigEngineInterfacet 3CollectionInterfaces -StorageInterfacer 3InterfaceController~q +WidgetInterfaceWp -ContextInterfaceUo 5ValidatableInterfaceRn =PropertyMarshalInterface>m -LocatorInterfaceAl 9EventListenerInterface*k =EventDispatcherInterface*j 5TableSchemaInterface%i 1ResultSetInterface%h 3RepositoryInterface%g )QueryInterface%f =InvalidPropertyInterface%e -FixtureInterface%d +EntityInterface%c 3ConnectionInterface%b =OptionalConvertInterface$a ;ExpressionTypeInterface$` 'TypeInterface_ 5TypedResultInterface^ 1StatementInterface] 3ExpressionInterface\ )FieldInterface [ 7ConfigEngineInterfaceZ 3CollectionInterfaceY -StorageInterface'X ODispatcherTestInterfaceControllerW +WidgetInterfaceV -ContextInterfaceU 5ValidatableInterfaceT -LocatorInterfaceS 9EventListenerInterfacevR =EventDispatcherInterfacevQ 1ResultSetInterfacesP 3RepositoryInterfacesO )QueryInterfacesN =InvalidPropertyInterfacesM -FixtureInterfacesL +EntityInterfacesK 3ConnectionInterfacesJ =OptionalConvertInterfacerI 5TypedResultInterfacekH 1StatementInterfacekG 3ExpressionInterfacekF )FieldInterfacenE 7ConfigEngineInterfaceD 3CollectionInterfaceaC -StorageInterface^'B ODispatcherTestInterfaceControllerKA +WidgetInterface @ -ContextInterface ? 5ValidatableInterface > -LocatorInterface = 9EventListenerInterface < =EventDispatcherInterface ; 1ResultSetInterface : 3RepositoryInterface 9 -FixtureInterface 8 +EntityInterface 7 3ConnectionInterface 6 1StatementInterface 5 3ExpressionInterface 4 )FieldInterface 3 7ConfigEngineInterfaceZ2 3CollectionInterface 1 -StorageInterface '0 ODispatcherTestInterfaceController / +WidgetInterfaceD. -ContextInterfaceB- 5ValidatableInterface?, 9EventListenerInterface+ 1ResultSetInterface* 3RepositoryInterface) +EntityInterface( 1StatementInterface' 3ExpressionInterface& )FieldInterface% 7ConfigEngineInterface $ 3CollectionInterface	# AClassRegistryInterfaceTest&" ODispatcherTestInterfaceController ! CCakeSessionHandlerInterface  -CakeLogInterface /CakeEventListener %AclInterface 7ConfigReaderInterface AClassRegistryInterfaceTest& ODispatcherTestInterfaceController  CCakeSessionHandlerInterface -CakeLogInterface /CakeEventListener %AclInterface 7ConfigReaderInterface AClassRegistryInterfaceTest& ODispatcherTestInterfaceController  CCakeSessionHandlerInterface -CakeLogInterface /CakeEventListener %AclInterface 7ConfigReaderInterface AClassRegistryInterfaceTest& ODispatcherTestInterfaceController  CCakeSessionHandlerInterface -CakeLogInterface
 /CakeEventListener	 %AclInterface 7ConfigReaderInterface A	ClassRegistryInterfaceTest% O	DispatcherTestInterfaceController C	CakeSessionHandlerInterface -	CakeLogInterface /	CakeEventListener %	AclInterface 7	ConfigReaderInt   M       Pw^B(}dR<+qX?%v[B)qWC)






y
]
=
						z	_	N	3		x_C)uaG4dD"iN="~cJ1v[B-|bJ9 jO                          1RequestActionTraitC /LocatorAwareTraitA )TranslateTrait! CAssociationsNormalizerTrait>  ASelectableAssociationTrait= =ExternalAssociationTrait= 5DependentDeleteTrait= -MailerAwareTrait7 LogTrait6 +DateFormatTrait1 /EventManagerTrait* 5EventDispatcherTrait* +RulesAwareTrait%
 !QueryTrait%	 +ModelAwareTrait% #EntityTrait% ?ExpressionTypeCasterTrait$ 1BufferResultsTrait# %TypeMapTrait -TypedResultTrait 1TypeConverterTrait +SqlDialectTrait !FieldTrait   )PDODriverTrait$ ITupleComparisonTranslatorTrait~ 7SqlserverDialectTrait} 1SqliteDialectTrait| 5PostgresDialectTrait{ /MysqlDialectTraitz /StaticConfigTraity 3InstanceConfigTraitx -ConventionsTraitw +FileConfigTraitv %ExtractTraitu +CollectionTraitt 7SecureFieldTokenTraits -IdGeneratorTraitr 'ViewVarsTraitq 3StringTemplateTraitp CellTraito 3ValidatorAwareTraitn 3MergeVariablesTraitm -CookieCryptTraitl 1StringCompareTraitk 1RequestActionTraitj /LocatorAwareTraiti )TranslateTrait!h CAssociationsNormalizerTrait g ASelectableAssociationTraitf =ExternalAssociationTraite 5DependentDeleteTraitd -MailerAwareTrait~c LogTrait}b +DateFormatTraitya /EventManagerTraitv` 5EventDispatcherTraitv_ +RulesAwareTraits^ !QueryTraits] +ModelAwareTraits\ #EntityTraits[ 1BufferResultsTraitqZ %TypeMapTraitkY -TypedResultTraitkX 1TypeConverterTraitkW +SqlDialectTraitkV !FieldTraitnU )PDODriverTraitl$T ITupleComparisonTranslatorTraitS 7SqlserverDialectTraitR 1SqliteDialectTraitQ 5PostgresDialectTraitP /MysqlDialectTraitO /StaticConfigTraithN 3InstanceConfigTraithM -ConventionsTraithL +FileConfigTraitK %ExtractTraitaJ +CollectionTraitaI -IdGeneratorTrait H 'ViewVarsTrait G 3StringTemplateTrait F CellTrait E 3ValidatorAwareTrait D 3MergeVariablesTrait C 1StringCompareTrait B 1RequestActionTrait A /LocatorAwareTrait @ )TranslateTrait\!? CAssociationsNormalizerTrait  > ASelectableAssociationTrait = =ExternalAssociationTrait < 5DependentDeleteTrait ; -MailerAwareTrait : LogTrait 9 /EventManagerTrait 8 5EventDispatcherTrait 7 +RulesAwareTrait 6 !QueryTrait 5 +ModelAwareTrait 4 #EntityTrait 3 1BufferResultsTrait 2 %TypeMapTrait 1 1TypeConverterTrait 0 +SqlDialectTrait / !FieldTrait . )PDODriverTrait $- ITupleComparisonTranslatorTrait[, 7SqlserverDialectTrait[+ 1SqliteDialectTrait[* 5PostgresDialectTrait[) /MysqlDialectTrait[( /StaticConfigTrait ' 3InstanceConfigTrait & -ConventionsTrait % +FileConfigTraitZ$ %ExtractTrait # +CollectionTrait " -IdGeneratorTraitC! 'ViewVarsTrait@  3StringTemplateTrait@ CellTrait@ 3MergeVariablesTrait> 1StringCompareTrait: 1RequestActionTrait3 )TranslateTrait   CAssociationsNormalizerTrait/ ASelectableAssociationTrait. =ExternalAssociationTrait. 5DependentDeleteTrait. LogTrait% /EventManagerTrait !QueryTrait +ModelAwareTrait #EntityTrait 1BufferResultsTrait %TypeMapTrait 1TypeConverterTrait +SqlDialectTrait !FieldTrait )PDODriverTrait$ ITupleComparisonTranslatorTrait 
 7SqlserverDialectTrait 	 1SqliteDialectTrait  5PostgresDialectTrait  /MysqlDialectTrait  /StaticConfigTrait 3InstanceConfigTrait -ConventionsTrait +FileConfigTrait  %ExtractTrait	 +Collection   O                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
 cakephp   
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       	
 	3.4.0		 	3.3.0	 	3.2.0	 	3.1.0	 	3.0.0	 	2.9.0	 	2.8.0	 	2.7.0	 	2.6.0	 	2.5.0                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 4 p]@ 
pR3 q[K;!
rZ9&lR9(





|
f
V
<
'
					_	9	vZC
rR3 jP="	jO5nU6pL.\2xS4                     ;Cake\Test\TestCase\Form" GCake\Test\TestCase\Filesystem
 =Cake\Test\TestCase\Event	 =Cake\Test\TestCase\Error" GCake\Test\TestCase\Datasource% MCake\Test\TestCase\Database\Type* WCake\Test\TestCase\Database\Statement' QCake\Test\TestCase\Database\Schema$ KCake\Test\TestCase\Database\Log+ YCake\Test\TestCase\Database\Expression' QCake\Test\TestCase\Database\Driver  CCake\Test\TestCase\Database-  ]Cake\Test\TestCase\Core\Configure\Engine ;Cake\Test\TestCase\Core"~ GCake\Test\TestCase\Controller,} [Cake\Test\TestCase\Controller\Component| ACake\Test\TestCase\Console+{ YCake\Test\TestCase\Collection\Iterator"z GCake\Test\TestCase\Collection$y KCake\Test\TestCase\Cache\Enginex =Cake\Test\TestCase\Cachew 1Cake\Test\TestCasev ;Cake\Test\TestCase\Authu 3TestApp\View\Helpert /TestApp\View\Cells %TestApp\Viewr +TestApp\Utilityq 'TestApp\Shellp 7TestApp\Routing\Routeo ;TestApp\Network\Sessionn 3TestApp\Model\Tablem 5TestApp\Model\Entityl 9TestApp\Model\Behaviork 1TestApp\Log\Enginej 'TestApp\Errori %TestApp\Core!h ETestApp\Controller\Componentg =TestApp\Controller\Adminf 1TestApp\Controllere 5TestApp\Cache\Engined %TestApp\Authc 3TestPluginTwo\Shellb ?TestPluginTwo\Model\Tablea ;TestPlugin\Test\Fixture` 9TestPlugin\View\Helper_ 5TestPlugin\View\Cell^ ] 1TestPlugin\Utility\ 7TestPlugin\Shell\Task[ -TestPlugin\ShellZ =TestPlugin\Routing\RouteY ?TestPlugin\Routing\FilterX ATestPlugin\Network\SessionW 9TestPlugin\Model\TableV ;TestPlugin\Model\EntityU ?TestPlugin\Model\BehaviorT 7TestPlugin\Log\EngineS )TestPlugin\Lib"R GTestPlugin\Lib\Custom\PackageQ -TestPlugin\ErrorP 7TestPlugin\DatasourceO 7TestPlugin\Controller$N KTestPlugin\Controller\Component M CTestPlugin\Controller\AdminL ;TestPlugin\Cache\EngineK +TestPlugin\Auth)J UCompany\TestPluginThree\Test\Fixture$I KCompany\TestPluginThree\Utility(H SCompany\TestPluginThree\Model\Table1G eCompany\TestPluginThree\Controller\Component#F ICompany\TestPluginFive\UtilityE /Cake\Test\FixtureD -Cake\View\WidgetC -Cake\View\HelperB )Cake\View\FormA 3Cake\View\Exception@ Cake\View? +Cake\Validation> %Cake\Utility= 9Cake\Utility\Exception< 3Cake\Utility\Crypto; 3Cake\TestSuite\Stub: )Cake\TestSuite9 9Cake\TestSuite\Fixture8 +Cake\Shell\Task7 !Cake\Shell6 1Cake\Routing\Route5 3Cake\Routing\Filter4 9Cake\Routing\Exception3 %Cake\Routing2 'Cake\ORM\Rule1 1Cake\ORM\Exception0 /Cake\ORM\Behavior/ Cake\ORM. 5Cake\ORM\Association- 5Cake\Network\Session, %Cake\Network+ ACake\Network\Http\FormData* /Cake\Network\Http) 9Cake\Network\Http\Auth( ?Cake\Network\Http\Adapter' 9Cake\Network\Exception& 1Cake\Network\Email% Cake\Log$ +Cake\Log\Engine# -Cake\I18n\Parser" 3Cake\I18n\Formatter! Cake\I18n  Cake\Form +Cake\Filesystem !Cake\Event !Cake\Error ?Cake\Datasource\Exception +Cake\Datasource 1Cake\Database\Type ;Cake\Database\Statement 5Cake\Database\Schema /Cake\Database\Log =Cake\Database\Expression ;Cake\Database\Exception 5Cake\Database\Driver 'Cake\Database 3Cake\Core\Exception ACake\Core\Configure\Engine Cake\Core ?Cake\Controller\Exception +Cake\Controller ?Cake\Controller\Component 9Cake\Console\Exception %Cake\Console
 =Cake\Collection\Iterator	 +Cake\Collection /Cake\Cache\Engine !Cake\Cache Cake\Auth     	   $ xP!X:oO*{\8gU<%




z
i
G
,
						h	N	7		o_L/zfJ.qWE,ybQ6 }R+bE-wU4dE$                         ?TestPluginTwo\Model\Table ;TestPlugin\Test\Fixture 9TestPlugin\View\Helper 5TestPlugin\View\Cell
 	 1TestPlugin\Utility 7TestPlugin\Shell\Task ;TestPlugin\Shell\Helper -TestPlugin\Shell =TestPlugin\Routing\Route ?TestPlugin\Routing\Filter ATestPlugin\Network\Session 9TestPlugin\Model\Table ;TestPlugin\Model\Entity  ?TestPlugin\Model\Behavior 7TestPlugin\Log\Engine~ )TestPlugin\Lib"} GTestPlugin\Lib\Custom\Package| -TestPlugin\Error{ 7TestPlugin\Datasourcez 7TestPlugin\Controller$y KTestPlugin\Controller\Component x CTestPlugin\Controller\Adminw ;TestPlugin\Cache\Enginev +TestPlugin\Auth)u UCompany\TestPluginThree\Test\Fixture$t KCompany\TestPluginThree\Utility(s SCompany\TestPluginThree\Model\Table1r eCompany\TestPluginThree\Controller\Component#q ICompany\TestPluginFive\Utilityp /Cake\Test\Fixtureo -Cake\View\Widgetn -Cake\View\Helperm )Cake\View\Forml 3Cake\View\Exceptionk Cake\Viewj +Cake\Validationi %Cake\Utilityh 9Cake\Utility\Exceptiong 3Cake\Utility\Cryptof 3Cake\TestSuite\Stube )Cake\TestSuited 9Cake\TestSuite\Fixturec +Cake\Shell\Taskb /Cake\Shell\Helpera !Cake\Shell` 1Cake\Routing\Route_ 3Cake\Routing\Filter^ 9Cake\Routing\Exception] %Cake\Routing\ 'Cake\ORM\Rule[ -Cake\ORM\LocatorZ 1Cake\ORM\ExceptionY /Cake\ORM\BehaviorX Cake\ORMW 5Cake\ORM\AssociationV 5Cake\Network\SessionU %Cake\NetworkT ACake\Network\Http\FormDataS /Cake\Network\HttpR 9Cake\Network\Http\AuthQ ?Cake\Network\Http\AdapterP 9Cake\Network\ExceptionO 7Cake\Mailer\TransportN 7Cake\Mailer\ExceptionM #Cake\MailerL Cake\LogK +Cake\Log\EngineJ -Cake\I18n\ParserI 3Cake\I18n\FormatterH Cake\I18nG Cake\FormF +Cake\FilesystemE !Cake\EventD !Cake\ErrorC ?Cake\Datasource\ExceptionB +Cake\DatasourceA 1Cake\Database\Type@ ;Cake\Database\Statement? 5Cake\Database\Schema> /Cake\Database\Log= =Cake\Database\Expression< ;Cake\Database\Exception; 5Cake\Database\Driver: 'Cake\Database9 3Cake\Core\Exception8 ACake\Core\Configure\Engine7 Cake\Core6 ?Cake\Controller\Exception5 +Cake\Controller4 ?Cake\Controller\Component3 9Cake\Console\Exception2 %Cake\Console1 =Cake\Collection\Iterator0 +Cake\Collection/ /Cake\Cache\Engine. !Cake\Cache- /Cake\Auth\Storage, Cake\Auth + CCake\ORM\Behavior\Translate* 7Cake\Database\Dialect) 3Cake\Core\Configure#( ICake\Test\TestCase\View\Widget#' ICake\Test\TestCase\View\Helper!& ECake\Test\TestCase\View\Form% ;Cake\Test\TestCase\View"$ GCake\Test\TestCase\Validation# ACake\Test\TestCase\Utility&" OCake\Test\TestCase\Utility\Crypto!! ECake\Test\TestCase\TestSuite  3Cake\Test\TestSuite" GCake\Test\TestCase\Shell\Task =Cake\Test\TestCase\Shell% MCake\Test\TestCase\Routing\Route& OCake\Test\TestCase\Routing\Filter ACake\Test\TestCase\Routing. _Cake\Test\TestCase\ORM\Behavior\Translate$ KCake\Test\TestCase\ORM\Behavior 9Cake\Test\TestCase\ORM' QCake\Test\TestCase\ORM\Association' QCake\Test\TestCase\Network\Session ACake\Test\TestCase\Network$ KCake\Test\TestCase\Network\Http) UCake\Test\TestCase\Network\Http\Auth, [Cake\Test\TestCase\Network\Http\Adapter% MCake\Test\TestCase\Network\Email 9Cake\Test\TestCase\Log" GCake\Test\TestCase\Log\Engine# ICake\Test\TestCase\I18n\Parser ;Cake\Test\TestCase\I18n   | {WC.mQ<%]8
uE"yL$




{
\
6
				x	L	%	j9Y4fBq_F/sQ6!rXA yiV9pT8(               
 /Cake\ORM\Behavior	 Cake\ORM 5Cake\ORM\Association 5Cake\Network\Session ACake\Network\Http\FormData /Cake\Network\Http 9Cake\Network\Http\Auth ?Cake\Network\Http\Adapter 9Cake\Network\Exception %Cake\Network  7Cake\Mailer\Transport 7Cake\Mailer\Exception~ #Cake\Mailer} Cake\Log| +Cake\Log\Engine{ -Cake\I18n\Parserz 3Cake\I18n\Formattery Cake\I18nx Cake\Formw +Cake\Filesystemv !Cake\Eventu !Cake\Errort ?Cake\Datasource\Exceptions +Cake\Datasourcer 1Cake\Database\Typeq ;Cake\Database\Statementp 5Cake\Database\Schemao /Cake\Database\Logn =Cake\Database\Expressionm ;Cake\Database\Exceptionl 5Cake\Database\Driverk 'Cake\Databasej 3Cake\Core\Exceptioni ACake\Core\Configure\Engineh Cake\Coreg ?Cake\Controller\Exceptionf +Cake\Controllere ?Cake\Controller\Componentd 9Cake\Console\Exceptionc %Cake\Consoleb =Cake\Collection\Iteratora +Cake\Collection` /Cake\Cache\Engine_ !Cake\Cache^ /Cake\Auth\Storage] Cake\Auth \ CCake\ORM\Behavior\Translate[ 7Cake\Database\DialectZ 3Cake\Core\Configure#Y ICake\Test\TestCase\View\Widget#X ICake\Test\TestCase\View\Helper!W ECake\Test\TestCase\View\FormV ;Cake\Test\TestCase\View"U GCake\Test\TestCase\ValidationT ACake\Test\TestCase\Utility&S OCake\Test\TestCase\Utility\Crypto!R ECake\Test\TestCase\TestSuiteQ 3Cake\Test\TestSuite"P GCake\Test\TestCase\Shell\Task$O KCake\Test\TestCase\Shell\HelperN =Cake\Test\TestCase\Shell%M MCake\Test\TestCase\Routing\Route&L OCake\Test\TestCase\Routing\FilterK ACake\Test\TestCase\Routing#J ICake\Test\TestCase\ORM\Locator.I _Cake\Test\TestCase\ORM\Behavior\Translate$H KCake\Test\TestCase\ORM\BehaviorG 9Cake\Test\TestCase\ORM'F QCake\Test\TestCase\ORM\Association'E QCake\Test\TestCase\Network\SessionD ACake\Test\TestCase\Network$C KCake\Test\TestCase\Network\Http)B UCake\Test\TestCase\Network\Http\Auth,A [Cake\Test\TestCase\Network\Http\Adapter(@ SCake\Test\TestCase\Mailer\Transport? ?Cake\Test\TestCase\Mailer> 9Cake\Test\TestCase\Log"= GCake\Test\TestCase\Log\Engine#< ICake\Test\TestCase\I18n\Parser; ;Cake\Test\TestCase\I18n: ;Cake\Test\TestCase\Form"9 GCake\Test\TestCase\Filesystem8 =Cake\Test\TestCase\Event7 =Cake\Test\TestCase\Error"6 GCake\Test\TestCase\Datasource%5 MCake\Test\TestCase\Database\Type*4 WCake\Test\TestCase\Database\Statement'3 QCake\Test\TestCase\Database\Schema$2 KCake\Test\TestCase\Database\Log+1 YCake\Test\TestCase\Database\Expression'0 QCake\Test\TestCase\Database\Driver / CCake\Test\TestCase\Database-. ]Cake\Test\TestCase\Core\Configure\Engine- ;Cake\Test\TestCase\Core", GCake\Test\TestCase\Controller,+ [Cake\Test\TestCase\Controller\Component* ACake\Test\TestCase\Console+) YCake\Test\TestCase\Collection\Iterator"( GCake\Test\TestCase\Collection$' KCake\Test\TestCase\Cache\Engine& =Cake\Test\TestCase\Cache% 1Cake\Test\TestCase$ ;Cake\Test\TestCase\Auth# 3TestApp\View\Helper" /TestApp\View\Cell! %TestApp\View  +TestApp\Utility 'TestApp\Shell 5TestApp\Shell\Helper 7TestApp\Routing\Route ;TestApp\Network\Session 3TestApp\Model\Table 5TestApp\Model\Entity 9TestApp\Model\Behavior )TestApp\Mailer 1TestApp\Log\Engine 'TestApp\Error %TestApp\Core! ETestApp\Controller\Component =TestApp\Controller\Admin 1TestApp\Controller 5TestApp\Cache\Engine %TestApp\Auth 3TestPluginTwo\Shell   y lR@'t]L1xM&z]@(rP/





}
_
@

					v	b	M	3	p[A*b=zJ'~Q)a;[/o>^9                                     3Cake\Test\TestSuite" GCake\Test\TestCase\Shell\Task$ KCake\Test\TestCase\Shell\Helper  =Cake\Test\TestCase\Shell% MCake\Test\TestCase\Routing\Route&~ OCake\Test\TestCase\Routing\Filter} ACake\Test\TestCase\Routing#| ICake\Test\TestCase\ORM\Locator.{ _Cake\Test\TestCase\ORM\Behavior\Translate$z KCake\Test\TestCase\ORM\Behaviory 9Cake\Test\TestCase\ORM'x QCake\Test\TestCase\ORM\Association'w QCake\Test\TestCase\Network\Session$v KCake\Test\TestCase\Network\Http)u UCake\Test\TestCase\Network\Http\Auth,t [Cake\Test\TestCase\Network\Http\Adapters ACake\Test\TestCase\Network(r SCake\Test\TestCase\Mailer\Transportq ?Cake\Test\TestCase\Mailerp 9Cake\Test\TestCase\Log"o GCake\Test\TestCase\Log\Engine#n ICake\Test\TestCase\I18n\Parserm ;Cake\Test\TestCase\I18nl ;Cake\Test\TestCase\Form"k GCake\Test\TestCase\Filesystemj =Cake\Test\TestCase\Eventi =Cake\Test\TestCase\Error"h GCake\Test\TestCase\Datasource%g MCake\Test\TestCase\Database\Type*f WCake\Test\TestCase\Database\Statement'e QCake\Test\TestCase\Database\Schema$d KCake\Test\TestCase\Database\Log+c YCake\Test\TestCase\Database\Expression'b QCake\Test\TestCase\Database\Driver a CCake\Test\TestCase\Database-` ]Cake\Test\TestCase\Core\Configure\Engine_ ;Cake\Test\TestCase\Core"^ GCake\Test\TestCase\Controller,] [Cake\Test\TestCase\Controller\Component\ ACake\Test\TestCase\Console+[ YCake\Test\TestCase\Collection\Iterator"Z GCake\Test\TestCase\Collection$Y KCake\Test\TestCase\Cache\EngineX =Cake\Test\TestCase\CacheW 1Cake\Test\TestCaseV ;Cake\Test\TestCase\AuthU 3TestApp\View\HelperT /TestApp\View\CellS %TestApp\ViewR +TestApp\UtilityQ 1TestApp\Shell\TaskP 'TestApp\ShellO 5TestApp\Shell\HelperN 7TestApp\Routing\RouteM ;TestApp\Network\SessionL 3TestApp\Model\TableK 5TestApp\Model\EntityJ 9TestApp\Model\BehaviorI )TestApp\MailerH 1TestApp\Log\EngineG 'TestApp\ErrorF %TestApp\Core!E ETestApp\Controller\ComponentD =TestApp\Controller\AdminC 1TestApp\ControllerB 5TestApp\Cache\EngineA %TestApp\Auth@ 3TestPluginTwo\Shell? ?TestPluginTwo\Model\Table> ;TestPlugin\Test\Fixture= 9TestPlugin\View\Helper< 5TestPlugin\View\Cell; : 1TestPlugin\Utility9 7TestPlugin\Shell\Task8 ;TestPlugin\Shell\Helper7 -TestPlugin\Shell6 =TestPlugin\Routing\Route5 ?TestPlugin\Routing\Filter4 ATestPlugin\Network\Session3 9TestPlugin\Model\Table2 ;TestPlugin\Model\Entity1 ?TestPlugin\Model\Behavior0 7TestPlugin\Log\Engine/ )TestPlugin\Lib". GTestPlugin\Lib\Custom\Package- -TestPlugin\Error, 7TestPlugin\Datasource+ 7TestPlugin\Controller$* KTestPlugin\Controller\Component ) CTestPlugin\Controller\Admin( ;TestPlugin\Cache\Engine' +TestPlugin\Auth)& UCompany\TestPluginThree\Test\Fixture$% KCompany\TestPluginThree\Utility($ SCompany\TestPluginThree\Model\Table1# eCompany\TestPluginThree\Controller\Component#" ICompany\TestPluginFive\Utility! /Cake\Test\Fixture  -Cake\View\Widget -Cake\View\Helper )Cake\View\Form 3Cake\View\Exception Cake\View +Cake\Validation %Cake\Utility 9Cake\Utility\Exception 3Cake\Utility\Crypto 3Cake\TestSuite\Stub )Cake\TestSuite 9Cake\TestSuite\Fixture +Cake\Shell\Task /Cake\Shell\Helper !Cake\Shell 1Cake\Routing\Route 3Cake\Routing\Filter 9Cake\Routing\Exception %Cake\Routing 'Cake\ORM\Rule -Cake\ORM\Locator 1Cake\ORM\Exception   0 lM)qXF-kZ8xY?(qQ4






e
H
4
							n	Z	<	!	gQ6x`G!qE.iQ,yX8 fG&nJ6jO0                       ;TestApp\Network\Session	 3TestApp\Model\Table	
 5TestApp\Model\Entity		 9TestApp\Model\Behavior	 1TestApp\Middleware	 )TestApp\Mailer	 1TestApp\Log\Engine	 %TestApp\Http	 'TestApp\Error	 ;TestApp\Database\Driver	 %TestApp\Core	! ETestApp\Controller\Component	!  ETestApp\Controller\Admin\Sub	 =TestApp\Controller\Admin	~ 1TestApp\Controller	} 5TestApp\Cache\Engine	| %TestApp\Auth	{ TestApp	z 3TestPluginTwo\Shell	y ?TestPluginTwo\Model\Table	x ;TestPlugin\Test\Fixture	w 9TestPlugin\View\Helper	v 5TestPlugin\View\Cell	u ATestPlugin\View\Cell\Admin	t 	s 1TestPlugin\Utility	r 7TestPlugin\Shell\Task	q ;TestPlugin\Shell\Helper	p -TestPlugin\Shell	o =TestPlugin\Routing\Route	n ?TestPlugin\Routing\Filter	m ATestPlugin\Network\Session	l 9TestPlugin\Model\Table	k ;TestPlugin\Model\Entity	j ?TestPlugin\Model\Behavior	i 7TestPlugin\Log\Engine	h )TestPlugin\Lib	"g GTestPlugin\Lib\Custom\Package	f -TestPlugin\Error	e 7TestPlugin\Datasource	d ATestPlugin\Database\Driver	c 7TestPlugin\Controller	$b KTestPlugin\Controller\Component	 a CTestPlugin\Controller\Admin	` ;TestPlugin\Cache\Engine	_ +TestPlugin\Auth	)^ UCompany\TestPluginThree\Test\Fixture	$] KCompany\TestPluginThree\Utility	(\ SCompany\TestPluginThree\Model\Table	'[ QCompany\TestPluginThree\Controller	1Z eCompany\TestPluginThree\Controller\Component	#Y ICompany\TestPluginFive\Utility	X /Cake\Test\Fixture	W -Cake\View\Widget	V -Cake\View\Helper	U )Cake\View\Form	T 3Cake\View\Exception	S Cake\View	R +Cake\Validation	Q %Cake\Utility	P 9Cake\Utility\Exception	O 3Cake\Utility\Crypto	N 3Cake\TestSuite\Stub	M )Cake\TestSuite	L 9Cake\TestSuite\Fixture	K ?Cake\TestSuite\Constraint	J +Cake\Shell\Task	I /Cake\Shell\Helper	H !Cake\Shell	G 1Cake\Routing\Route	F ;Cake\Routing\Middleware	E 3Cake\Routing\Filter	D 9Cake\Routing\Exception	C %Cake\Routing	B 'Cake\ORM\Rule	A -Cake\ORM\Locator	@ 1Cake\ORM\Exception	? /Cake\ORM\Behavior	> Cake\ORM	= 5Cake\ORM\Association	< 5Cake\Network\Session	; 9Cake\Network\Exception	: %Cake\Network	9 7Cake\Mailer\Transport	8 7Cake\Mailer\Exception	7 #Cake\Mailer	6 Cake\Log	5 +Cake\Log\Engine	4 -Cake\I18n\Parser	3 5Cake\I18n\Middleware	2 3Cake\I18n\Formatter	1 Cake\I18n	0 -Cake\Http\Client	/ 7Cake\Http\Client\Auth	. =Cake\Http\Client\Adapter	- Cake\Http	, Cake\Form	+ +Cake\Filesystem	* !Cake\Event	) 5Cake\Event\Decorator	( 7Cake\Error\Middleware	' !Cake\Error	& ?Cake\Datasource\Exception	% +Cake\Datasource	$ 1Cake\Database\Type	# ;Cake\Database\Statement	" 5Cake\Database\Schema	! /Cake\Database\Log	  =Cake\Database\Expression	 ;Cake\Database\Exception	 5Cake\Database\Driver	 'Cake\Database	 3Cake\Core\Exception	 ACake\Core\Configure\Engine	 Cake\Core	 ?Cake\Controller\Exception	 +Cake\Controller	 ?Cake\Controller\Component	 9Cake\Console\Exception	 %Cake\Console	 =Cake\Collection\Iterator	 +Cake\Collection	 /Cake\Cache\Engine	 !Cake\Cache	 /Cake\Auth\Storage	 Cake\Auth	  CCake\ORM\Behavior\Translate 7Cake\Database\Dialect 3Cake\Core\Configure# ICake\Test\TestCase\View\Widget#
 ICake\Test\TestCase\View\Helper!	 ECake\Test\TestCase\View\Form ;Cake\Test\TestCase\View" GCake\Test\TestCase\Validation ACake\Test\TestCase\Utility& OCake\Test\TestCase\Utility\Crypto! ECake\Test\TestCase\TestSuite   x mN5sN {\,	`3{V7




f
E
				v	L	"	d;zK0}Y3v]F&hM8oX7%dL; xdF*                       5Cake\ORM\Association
 5Cake\Network\Session
 9Cake\Network\Exception
 %Cake\Network
  7Cake\Mailer\Transport
 7Cake\Mailer\Exception
~ #Cake\Mailer
} Cake\Log
| +Cake\Log\Engine
{ -Cake\I18n\Parser
z 5Cake\I18n\Middleware
y 3Cake\I18n\Formatter
x Cake\I18n
w -Cake\Http\Client
v 7Cake\Http\Client\Auth
u =Cake\Http\Client\Adapter
t Cake\Http
s Cake\Form
r +Cake\Filesystem
q !Cake\Event
p 5Cake\Event\Decorator
o 7Cake\Error\Middleware
n !Cake\Error
m ?Cake\Datasource\Exception
l +Cake\Datasource
k 1Cake\Database\Type
j ;Cake\Database\Statement
i 5Cake\Database\Schema
h /Cake\Database\Log
g =Cake\Database\Expression
f ;Cake\Database\Exception
e 5Cake\Database\Driver
d 'Cake\Database
c 3Cake\Core\Exception
b ACake\Core\Configure\Engine
a Cake\Core
` ?Cake\Controller\Exception
_ +Cake\Controller
^ ?Cake\Controller\Component
] 9Cake\Console\Exception
\ %Cake\Console
[ =Cake\Collection\Iterator
Z +Cake\Collection
Y /Cake\Cache\Engine
X !Cake\Cache
W /Cake\Auth\Storage
V Cake\Auth
 U CCake\ORM\Behavior\Translate	T 7Cake\Database\Dialect	S 3Cake\Core\Configure	#R ICake\Test\TestCase\View\Widget	#Q ICake\Test\TestCase\View\Helper	!P ECake\Test\TestCase\View\Form	O ;Cake\Test\TestCase\View	"N GCake\Test\TestCase\Validation	M ACake\Test\TestCase\Utility	&L OCake\Test\TestCase\Utility\Crypto	!K ECake\Test\TestCase\TestSuite	J 3Cake\Test\TestSuite	,I [Cake\Test\TestCase\TestSuite\Constraint	"H GCake\Test\TestCase\Shell\Task	$G KCake\Test\TestCase\Shell\Helper	F =Cake\Test\TestCase\Shell	%E MCake\Test\TestCase\Routing\Route	*D WCake\Test\TestCase\Routing\Middleware	&C OCake\Test\TestCase\Routing\Filter	B ACake\Test\TestCase\Routing	#A ICake\Test\TestCase\ORM\Locator	.@ _Cake\Test\TestCase\ORM\Behavior\Translate	$? KCake\Test\TestCase\ORM\Behavior	> 9Cake\Test\TestCase\ORM	'= QCake\Test\TestCase\ORM\Association	'< QCake\Test\TestCase\Network\Session	$; KCake\Test\TestCase\Network\Http	): UCake\Test\TestCase\Network\Http\Auth	,9 [Cake\Test\TestCase\Network\Http\Adapter	8 ACake\Test\TestCase\Network	(7 SCake\Test\TestCase\Mailer\Transport	6 ?Cake\Test\TestCase\Mailer	5 9Cake\Test\TestCase\Log	"4 GCake\Test\TestCase\Log\Engine	#3 ICake\Test\TestCase\I18n\Parser	'2 QCake\Test\TestCase\I18n\Middleware	1 ;Cake\Test\TestCase\I18n	0 ;Cake\Test\TestCase\Http	/ ;Cake\Test\TestCase\Form	". GCake\Test\TestCase\Filesystem	- =Cake\Test\TestCase\Event	(, SCake\Test\TestCase\Error\Middleware	+ =Cake\Test\TestCase\Error	"* GCake\Test\TestCase\Datasource	%) MCake\Test\TestCase\Database\Type	*( WCake\Test\TestCase\Database\Statement	'' QCake\Test\TestCase\Database\Schema	$& KCake\Test\TestCase\Database\Log	+% YCake\Test\TestCase\Database\Expression	'$ QCake\Test\TestCase\Database\Driver	 # CCake\Test\TestCase\Database	-" ]Cake\Test\TestCase\Core\Configure\Engine	! ;Cake\Test\TestCase\Core	,  [Cake\Test\TestCase\Controller\Exception	" GCake\Test\TestCase\Controller	, [Cake\Test\TestCase\Controller\Component	 ACake\Test\TestCase\Console	+ YCake\Test\TestCase\Collection\Iterator	" GCake\Test\TestCase\Collection	$ KCake\Test\TestCase\Cache\Engine	 =Cake\Test\TestCase\Cache	 1Cake\Test\TestCase	$ KCake\Test\TestCase\Auth\Storage	 ;Cake\Test\TestCase\Auth	 3TestApp\View\Helper	 /TestApp\View\Cell	 ;TestApp\View\Cell\Admin	 %TestApp\View	 +TestApp\Utility	 1TestApp\Shell\Task	 'TestApp\Shell	 5TestApp\Shell\Helper	 7TestApp\Routing\Route	   } mY; fP5w_F2\0qT<




d
C
#
						o	Q	2	}Y5!qU:~jK2pKxY)]0xS4wM'" GCake\Test\TestCase\Log\Engine
#  ICake\Test\TestCase\I18n\Parser
' QCake\Test\TestCase\I18n\Middleware
~ ;Cake\Test\TestCase\I18n
#} ICake\Test\TestCase\Http\Client
(| SCake\Test\TestCase\Http\Client\Auth
+{ YCake\Test\TestCase\Http\Client\Adapter
z ;Cake\Test\TestCase\Http
y ;Cake\Test\TestCase\Form
"x GCake\Test\TestCase\Filesystem
w =Cake\Test\TestCase\Event
(v SCake\Test\TestCase\Error\Middleware
u =Cake\Test\TestCase\Error
"t GCake\Test\TestCase\Datasource
%s MCake\Test\TestCase\Database\Type
*r WCake\Test\TestCase\Database\Statement
'q QCake\Test\TestCase\Database\Schema
$p KCake\Test\TestCase\Database\Log
+o YCake\Test\TestCase\Database\Expression
'n QCake\Test\TestCase\Database\Driver
 m CCake\Test\TestCase\Database
-l ]Cake\Test\TestCase\Core\Configure\Engine
k ;Cake\Test\TestCase\Core
,j [Cake\Test\TestCase\Controller\Exception
"i GCake\Test\TestCase\Controller
,h [Cake\Test\TestCase\Controller\Component
g ACake\Test\TestCase\Console
+f YCake\Test\TestCase\Collection\Iterator
"e GCake\Test\TestCase\Collection
$d KCake\Test\TestCase\Cache\Engine
c =Cake\Test\TestCase\Cache
b 1Cake\Test\TestCase
$a KCake\Test\TestCase\Auth\Storage
` ;Cake\Test\TestCase\Auth
_ 3TestApp\View\Helper
^ /TestApp\View\Cell
] ;TestApp\View\Cell\Admin
\ %TestApp\View
[ +TestApp\Utility
Z 1TestApp\Shell\Task
Y 'TestApp\Shell
X 5TestApp\Shell\Helper
W 7TestApp\Routing\Route
V 9TestApp\Routing\Filter
U ;TestApp\Network\Session
T 3TestApp\Model\Table
S 5TestApp\Model\Entity
R 9TestApp\Model\Behavior
Q 1TestApp\Middleware
P )TestApp\Mailer
O 1TestApp\Log\Engine
N %TestApp\Http
M 'TestApp\Error
L ;TestApp\Database\Driver
K %TestApp\Core
!J ETestApp\Controller\Component
!I ETestApp\Controller\Admin\Sub
H =TestApp\Controller\Admin
G 1TestApp\Controller
F 5TestApp\Cache\Engine
E %TestApp\Auth
D TestApp
C 3TestPluginTwo\Shell
B ?TestPluginTwo\Model\Table
A ;TestPlugin\Test\Fixture
@ 9TestPlugin\View\Helper
? 5TestPlugin\View\Cell
> ATestPlugin\View\Cell\Admin
= 
< 1TestPlugin\Utility
; 7TestPlugin\Shell\Task
: ;TestPlugin\Shell\Helper
9 -TestPlugin\Shell
8 =TestPlugin\Routing\Route
7 ?TestPlugin\Routing\Filter
6 ATestPlugin\Network\Session
5 9TestPlugin\Model\Table
4 ;TestPlugin\Model\Entity
3 ?TestPlugin\Model\Behavior
2 7TestPlugin\Log\Engine
1 )TestPlugin\Lib
"0 GTestPlugin\Lib\Custom\Package
/ -TestPlugin\Error
. 7TestPlugin\Datasource
- ATestPlugin\Database\Driver
, 7TestPlugin\Controller
$+ KTestPlugin\Controller\Component
 * CTestPlugin\Controller\Admin
) ;TestPlugin\Cache\Engine
( +TestPlugin\Auth
)' UCompany\TestPluginThree\Test\Fixture
$& KCompany\TestPluginThree\Utility
(% SCompany\TestPluginThree\Model\Table
'$ QCompany\TestPluginThree\Controller
1# eCompany\TestPluginThree\Controller\Component
#" ICompany\TestPluginFive\Utility
! %Cake\PHPStan
  /Cake\Test\Fixture
 -Cake\View\Widget
 -Cake\View\Helper
 )Cake\View\Form
 3Cake\View\Exception
 Cake\View
 +Cake\Validation
 %Cake\Utility
 9Cake\Utility\Exception
 3Cake\Utility\Crypto
 3Cake\TestSuite\Stub
 )Cake\TestSuite
 9Cake\TestSuite\Fixture
 ?Cake\TestSuite\Constraint
 +Cake\Shell\Task
 /Cake\Shell\Helper
 !Cake\Shell
 1Cake\Routing\Route
 ;Cake\Routing\Middleware
 3Cake\Routing\Filter
 9Cake\Routing\Exception
 %Cake\Routing

 'Cake\ORM\Rule
	 -Cake\ORM\Locator
 1Cake\ORM\Exception
 /Cake\ORM\Behavior
 Cake\ORM
  CCake\ORM\Association\Loader
    tJ b9xI%
{W1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              CCake\ORM\Behavior\Translate
 7Cake\Database\Dialect
 3Cake\Core\Configure
# ICake\Test\TestCase\View\Widget
# ICake\Test\TestCase\View\Helper
! ECake\Test\TestCase\View\Form
 ;Cake\Test\TestCase\View
" GCake\Test\TestCase\Validation
 ACake\Test\TestCase\Utility
& OCake\Test\TestCase\Utility\Crypto
 3Cake\Test\TestSuite
! ECake\Test\TestCase\TestSuite
, [Cake\Test\TestCase\TestSuite\Constraint
" GCake\Test\TestCase\Shell\Task
$ KCake\Test\TestCase\Shell\Helper
 =Cake\Test\TestCase\Shell
% MCake\Test\TestCase\Routing\Route
* WCake\Test\TestCase\Routing\Middleware
& OCake\Test\TestCase\Routing\Filter
 ACake\Test\TestCase\Routing
# ICake\Test\TestCase\ORM\Locator
.
 _Cake\Test\TestCase\ORM\Behavior\Translate
$	 KCake\Test\TestCase\ORM\Behavior
 9Cake\Test\TestCase\ORM
' QCake\Test\TestCase\ORM\Association
' QCake\Test\TestCase\Network\Session
 ACake\Test\TestCase\Network
( SCake\Test\TestCase\Mailer\Transport
 ?Cake\Test\TestCase\Mailer
 9Cake\Test\TestCase\Log
    xm\M=(~iWH7&}oaR>,tiT@.
mV< 






p
X
;
$
										k	T	A	(	pT8kQ0y]7%u[=- }scYG-veUB,oWG2
                 7 !	Dispatcher6 1	HttpSocketResponse5 !	HttpSocket4 %	HttpResponse3 5	DigestAuthentication2 3	BasicAuthentication1 '	SmtpTransport0 '	MailTransport/ )	DebugTransport. 	CakeEmail- /	AbstractTransport, !	CakeSocket+ %	CakeResponse* #	CakeRequest) /	CakeValidationSet( 1	CakeValidationRule' !	Permission& )	ModelValidator% '	ModelBehavior	$ 	Model# 	I18nModel" +	DatabaseSession! %	CacheSession  	DboSource !	DataSource 	Sqlserver
 	Sqlite 	Postgres	 	Mysql #	CakeSession /	ConnectionManager !	CakeSchema 1	BehaviorCollection %	TreeBehavior /	TranslateBehavior 3	ContainableBehavior #	AclBehavior 	Aro 	AcoAction 	Aco 	AclNode 3	LogEngineCollection 	SyslogLog 	FileLog !	ConsoleLog
 	BaseLog	 	CakeLog 	Multibyte 	L10n 	I18n -	CakeEventManager 	CakeEvent ;	NotImplementedException 3	FatalErrorException -	ConsoleException  %	XmlException +	SocketException~ 1	ConfigureException} 5	CakeSessionException| -	CakeLogException{ +	RouterExceptionz )	CacheExceptiony %	AclException$x M	MissingDispatcherFilterExceptionw 9	MissingPluginExceptionv A	MissingTestLoaderExceptionu 7	MissingModelExceptiont 7	MissingTableExceptions A	MissingDatasourceException$r M	MissingDatasourceConfigExceptionq 7	MissingShellExceptionp C	MissingShellMethodExceptiono 5	MissingTaskExceptionn A	MissingConnectionExceptionm =	MissingDatabaseExceptionl 9	MissingHelperExceptionk 9	MissingLayoutExceptionj 5	MissingViewExceptioni =	MissingBehaviorExceptionh ?	MissingComponentExceptiong 9	PrivateActionExceptionf 9	MissingActionExceptione A	MissingControllerExceptiond '	CakeExceptionc 9	InternalErrorExceptionb ?	MethodNotAllowedExceptiona /	NotFoundException` 1	ForbiddenException_ 7	UnauthorizedException^ 3	BadRequestException] '	HttpException\ /	CakeBaseException[ /	ExceptionRendererZ %	ErrorHandler
Y 	ObjectX 	ConfigureW !	CakePluginV 	AppU 	ScaffoldT !	ControllerS 3	ComponentCollectionR 	ComponentQ -	SessionComponentP /	SecurityComponentO ;	RequestHandlerComponentN 1	PaginatorComponentM )	EmailComponentL +	CookieComponentK '	AuthComponentJ 5	SimplePasswordHasherI -	FormAuthenticateH 1	DigestAuthenticateG '	CrudAuthorizeF 3	ControllerAuthorizeE 9	BlowfishPasswordHasherD 5	BlowfishAuthenticateC /	BasicAuthenticateB '	BaseAuthorizeA -	BaseAuthenticate@ -	ActionsAuthorize? 9	AbstractPasswordHasher> %	AclComponent
= 	PhpAro
< 	PhpAco
; 	PhpAcl
: 	IniAcl	9 	DbAcl8 3	CakeErrorController7 %	AllTestsTest6 )	TaskCollection5 +	ShellDispatcher	4 	Shell3 '	HelpFormatter2 '	ConsoleOutput1 3	ConsoleOptionParser0 9	ConsoleInputSubcommand/ 1	ConsoleInputOption. 5	ConsoleInputArgument- %	ConsoleInput, 3	ConsoleErrorHandler+ %	UpgradeShell* )	TestsuiteShell) 	TestShell( 	ViewTask' 	TestTask& %	TemplateTask% #	ProjectTask$ !	PluginTask# 	ModelTask" #	FixtureTask! #	ExtractTask  %	DbConfigTask )	ControllerTask #	CommandTask 	BakeTask #	ServerShell #	SchemaShell 	I18nShell %	ConsoleShell +	CompletionShell -	CommandListShell 	BakeShell 	ApiShell 	AclShell 	PhpReader 	IniReader %	XcacheEngine )	WincacheEngine #	RedisEngine )	MemcacheEngine +	MemcachedEngine !	FileEngine 	ApcEngine
 #	CacheEngine		 	Cache 	AppHelper 	AppModel +	PagesController '	AppController 	AppShell )	SessionsSchema !	I18nSchema #	DbAclSchema   T u^K3tZI4nT;"taN8$o]D-






l
V
5
"
						y	[	=	%	v\C*y]> w_;!bA+~aB&
{]H2}eF$	ycT                    S 	NameTestR +	ControllerAliasQ /	ControllerComment P E	ControllerCommentsControllerO )	ControllerPostN C	ControllerTestAppControllerM ;	ControllerMergeVarsTestL 5	MergePostsControllerK C	MergeVarPluginAppControllerJ =	MergeVariablesControllerI /	MergeVarComponentH 9	MergeVarsAppControllerG '	ComponentTestF C	SomethingWithEmailComponent#E K	MutuallyReferencingTwoComponent#D K	MutuallyReferencingOneComponentC +	BananaComponentB +	OrangeComponentA )	AppleComponent@ ;	ComponentTestController? 1	ParamTestComponent> ;	ComponentCollectionTest= 5	CookieAliasComponent< 5	SessionComponentTest; C	OrangeSessionTestController: 7	SessionTestController9 7	SecurityComponentTest8 =	BrokenCallbackController7 9	SecurityTestController6 7	TestSecurityComponent5 C	RequestHandlerComponentTest4 )	CustomJsonView 3 E	RequestHandlerTestController2 9	PaginatorComponentTest1 3	PaginatorCustomPost0 +	PaginatorAuthor/ A	PaginatorControllerComment. ;	ControllerPaginateModel- ;	PaginatorControllerPost, ;	PaginatorTestController+ 1	EmailComponentTest* 3	EmailTestController) 1	DebugCompTransport( 1	EmailTestComponent' 3	CookieComponentTest!& G	CookieComponentTestController% /	AuthComponentTest$ 1	AjaxAuthController# 1	AuthTestController" 	AuthUser! /	TestAuthComponent  5	FormAuthenticateTest 9	DigestAuthenticateTest /	CrudAuthorizeTest ;	ControllerAuthorizeTest =	BlowfishAuthenticateTest 7	BasicAuthenticateTest 5	ActionsAuthorizeTest -	AclComponentTest !	PhpAclTest !	IniAclTest 	DbAclTest %	DbAclTwoTest /	PermissionTwoTest !	AcoTwoTest !	AroTwoTest 1	AclNodeTwoTestBase 1	TaskCollectionTest 3	DbConfigAliasedTask 	ShellTest )	TestBananaTask '	TestAppleTask )	TestMergeShell
 )	ShellTestShell	 3	ShellDispatcherTest 3	TestShellDispatcher /	HelpFormatterTest /	ConsoleOutputTest ;	ConsoleOptionParserTest ;	ConsoleErrorHandlerTest '	TestShellTest '	TestTestShell %	ViewTaskTest  A	ViewTaskArticlesController A	ViewTaskCommentsController~ +	ViewTaskArticle} +	ViewTaskComment| %	TestTaskTest{ A	TestTaskCommentsControllerz +	TestTaskCommenty -	TestTaskAppModelx #	TestTaskTagw +	TestTaskArticlev -	TemplateTaskTestu +	ProjectTaskTestt )	PluginTaskTests '	ModelTaskTestr +	FixtureTaskTestq +	ExtractTaskTestp -	DbConfigTaskTesto 1	ControllerTaskTestn #	BakeArticlem +	CommandTaskTestl +	SchemaShellTestk 7	SchemaShellTestSchemaj 3	CompletionShellTesti A	TestCompletionStringOutputh 5	CommandListShellTestg -	TestStringOutputf '	BakeShellTeste +	UsersControllerd %	ApiShellTestc %	AclShellTestb %	AllTasksTesta '	AllShellsTest` 1	AllConsoleLibsTest_ '	PhpReaderTest^ '	IniReaderTest] -	XcacheEngineTest\ 1	WincacheEngineTest[ +	RedisEngineTestZ 1	MemcacheEngineTestY 1	TestMemcacheEngineX 3	MemcachedEngineTestW 3	TestMemcachedEngineV )	FileEngineTestU '	ApcEngineTestT 	CacheTestS !	BasicsTestR #	AllViewTestQ )	AllUtilityTestP -	AllTestSuiteTestO 	AllTestsN )	AllRoutingTestM )	AllNetworkTestL !	AllLogTestK 3	AllLocalizationTestJ )	AllHelpersTestI %	AllEventTestH %	AllErrorTestG -	AllDbRelatedTestF +	AllDatabaseTestE #	AllCoreTestD 1	AllControllersTestC )	AllConsoleTestB -	AllConfigureTestA /	AllComponentsTest@ %	AllCacheTest? -	AllBehaviorsTest
> 	Router= '	RedirectRoute< -	PluginShortRoute; 	CakeRoute: +	CacheDispatcher9 +	AssetDispatcher8 -	DispatcherFilter   u wZ3	udM5jO;,	aI9)fJ.






s
_
K
7

							~	j	Z	E	2	~dN>&hF2!y_?) vfPA7%ziPA, j\H.ydWK:!u   	 	JoinC	 	JoinB	 	JoinA )	SecondaryModel %	PrimaryModel /	DocumentDirectory
 	Device 	Document  5	ExteriorTypeCategory !	FeatureSet~ 1	DeviceTypeCategory} !	DeviceType	| 	Image
{ 	Syfilez )	ItemsPortfolioy 	Itemx 	Portfoliow 	JoinThingv '	SomethingElseu 	Something
t 	ModelD
s 	ModelC
r 	ModelB
q 	ModelAp !	Dependencyo 	Noden +	NodeNoAfterFindm 3	NodeAfterFindSamplel '	NodeAfterFindk 	Biddingj )	BiddingMessagei 	Bidh 	Message
g 	Threadf 	Projecte )	ModifiedAuthor
d 	Authorc 	Postb 	Homea '	Advertisement` )	AnotherArticle
_ 	Sample	^ 	Apple] )	CategoryThread\ 	Category[ 1	ModifiedAttachmentZ !	AttachmentY 7	MergeVarPluginCommentX 1	MergeVarPluginPostW 9	MergeVarPluginAppModelV 5	AgainModifiedCommentU +	ModifiedCommentT 	CommentS 3	ArticleFeaturedsTagR #	ArticlesTagQ 	TagP 	FeaturedO +	ArticleFeaturedN 	Article10M )	NumericArticleL 3	BeforeDeleteCommentK 	ArticleJ 	UserI %	TestValidateH 	TestAliasG 	TestF '	ModelReadTestE 5	ModelIntegrationTestD 	DboMockC +	ModelDeleteTestB ?	ModelCrossSchemaHabtmTestA 3	DatabaseSessionTest@ -	SessionTestModel? -	CacheSessionTest> '	DboSourceTest= 3	DboSecondTestSource< '	DboTestSource; )	MockDataSource: 	MockPDO9 )	DataSourceTest8 !	TestSource7 '	SqlserverTest6 C	SqlserverTestResultIterator5 =	SqlserverClientTestModel4 1	SqlserverTestModel3 +	SqlserverTestDb2 !	SqliteTest1 +	DboSqliteTestDb0 %	PostgresTest/ ;	PostgresClientTestModel. /	PostgresTestModel- /	DboPostgresTestDb, 	MysqlTest+ +	CakeSessionTest* 3	TestDatabaseSession) -	TestCacheSession( +	TestCakeSession' 7	ConnectionManagerTest& )	CakeSchemaTest% 5	SchemaPrefixAuthUser$ A	SchemaCrossDatabaseFixture# 3	SchemaCrossDatabase" %	Testdescribe! )	SchemaDatatype  	SchemaTag '	SchemaComment !	SchemaPost '	TestAppSchema #	MyAppSchema 9	BehaviorCollectionTest 	Orangutan '	ThirdBehavior )	SecondBehavior '	FirstBehavior /	TestAliasBehavior '	Test7Behavior '	Test6Behavior '	Test5Behavior '	Test4Behavior '	Test3Behavior '	Test2Behavior %	TestBehavior 5	TreeBehaviorUuidTest -	TreeBehaviorTest 9	TreeBehaviorScopedTest 9	TreeBehaviorNumberTest
 7	TreeBehaviorAfterTest	 7	TranslateBehaviorTest ;	ContainableBehaviorTest +	AclBehaviorTest 	AclPost 	AclUser 	AclPerson #	AclNodeTest 	TestDbAcl '	DbAroUserTest  +	DbAcoActionTest -	DbPermissionTest~ 	DbAcoTest} 	DbAroTest| /	DbAclNodeTestBase{ ;	LogEngineCollectionTestz +	LoggerEngineLogy '	SyslogLogTestx #	FileLogTestw )	ConsoleLogTestv #	TestCakeLogu )	TestConsoleLogt #	CakeLogTests '	MultibyteTestr 	L10nTestq 	I18nTestp '	CakeEventTesto 5	CakeEventManagerTestn ;	CustomTestEventListenerm 7	CakeEventTestListenerl 7	ExceptionRendererTestk C	MissingWidgetThingExceptionj ?	MyCustomExceptionRendereri 3	TestErrorControllerh 1	BlueberryComponentg /	AuthBlueberryUserf -	ErrorHandlerTeste !	ObjectTestd +	ObjectTestModelc !	TestObjectb ;	RequestActionControllera /	RequestActionPost` '	ConfigureTest_ )	CakePluginTest^ 	AppTest] %	ScaffoldTest\ -	TestScaffoldMock$[ M	ScaffoldMockControllerWithFieldsZ 9	ScaffoldMockControllerY 3	PagesControllerTestX )	ControllerTestW 7	AnotherTestControllerV )	Test2ComponentU '	TestComponentT )	TestController   b qcM7*m\H9 lXI,nV?(vbK6








u
d
S
B
1
%

								u	W	D	1			lO>/u_I5iR9$hN3dO5!sP&	eH+b    3 ;	TestRegistryPluginModel2 9	RegistryPluginAppModel1 1	RegisterArticleTag0 ;	RegisterArticleFeatured/ +	RegisterArticle. 1	ClassRegisterModel- %	CakeTimeTest, )	CakeNumberTest+ 9	HtmlCoverageReportTest* 9	CakeFixtureManagerTest) 9	ControllerTestCaseTest$( M	ControllerTestCaseTestController' +	PostsController& /	CakeTestSuiteTest% 3	CakeTestFixtureTest$ /	FixturePrefixTest# 9	FixtureImportTestModel'" S	CakeTestFixtureDefaultImportFixture ! E	CakeTestFixtureImportFixture  1	InvalidTestFixture 1	StringsTestFixture A	CakeTestFixtureTestFixture -	CakeTestCaseTest !	RouterTest /	RedirectRouteTest 5	PluginShortRouteTest '	CakeRouteTest 3	AssetDispatcherTest )	DispatcherTest 5	TestFilterDispatcher 5	TimesheetsController ?	TestCachedPagesController 3	SomePostsController 9	ArticlesTestController ?	ArticlesTestAppController C	TestDispatchPagesController 5	OtherPagesController 3	SomePagesController 1	MyPluginController$ M	DispatcherTestAbstractController 7	MyPluginAppController
 )	TestDispatcher	 A	DispatcherMockCakeResponse )	HttpSocketTest )	TestHttpSocket )	CustomResponse 1	TestAuthentication -	HttpResponseTest -	TestHttpResponse =	DigestAuthenticationTest -	DigestHttpSocket  ;	BasicAuthenticationTest /	SmtpTransportTest~ /	SmtpTestTransport} /	MailTransportTest| 1	DebugTransportTest{ '	CakeEmailTestz +	ExtendTransporty +	TestEmailConfigx '	TestCakeEmailw )	CakeSocketTestv -	CakeResponseTestu +	CakeRequestTestt +	TestCakeRequests 7	CakeValidationSetTestr 9	CakeValidationRuleTestq )	ModelWriteTestp 	TestPosto !	TestAuthorn 9	ValidationRuleBehaviorm 3	ModelValidationTestl '	BaseModelTestk 	ModelTestj '	CustomArticlei %	ArmorsPlayer	h 	Armorg %	GuildsPlayer	f 	Guild
e 	Playerd #	ScaffoldTagc +	ScaffoldCommentb %	ScaffoldUsera %	ScaffoldMock` ;	PrefixTestUseTableModel_ +	PrefixTestModel^ )	MysqlTestModel] -	ArticleFeatured2\ 	Comment2[ 	Featured2Z /	CategoryFeatured2Y 	Article2X 	Category2	W 	User2	V 	Group	U 	LevelT !	TestModel9S !	TestModel8R !	TestModel7Q !	TestModel6P !	TestModel5O 5	TestModel4TestModel7N !	TestModel4M !	TestModel3L !	TestModel2K 	TestModel
J 	DomainI 	SiteH =	TransactionManyTestModelG 5	TransactionTestModelF )	GroupUpdateAllE -	ProductUpdateAllD '	UuidTagNoWithC #	FruitNoWithB 	UuidTagA '	FruitsUuidTag	@ 	Fruit? 	TagB> 	ArticleB)= W	CounterCachePostNonstandardPrimaryKey)< W	CounterCacheUserNonstandardPrimaryKey; -	CounterCachePost: -	CounterCacheUser9 /	TranslatedArticle8 7	TranslateArticleModel7 ;	TranslatedItemWithTable6 +	TranslatedItem25 )	TranslatedItem4 3	TranslateWithPrefix3 1	TranslateTestModel#2 K	UuiditemsUuidportfolioNumericid1 9	UuiditemsUuidportfolio0 	Uuiditem/ '	Uuidportfolio. /	TestPluginComment- /	TestPluginArticle
, 	Basket+ 	FilmFile* )	ContentAccount) 	Account( 	Content' 	AfterTree& 	Ad% 	Campaign$ 	UuidTree# 1	UnconventionalTree" 	FlagTree! '	NumberTreeTwo  !	NumberTree 7	MyCategoriesMyProduct 1	MyCategoriesMyUser 	MyProduct !	MyCategory
 	MyUser +	OverallFavorite 	Book 	Cd	 	Story 	Product +	UnderscoreField
 	Person +	ValidationTest2 +	ValidationTest1 	TheVoid 	DataTest 	Uuid 7	CallbackPostTestModel 	Callback -	AssociationTest2 -	AssociationTest1

 	Monkey	 	ThePaper   T xeVE6"r\I6(waE7sWB,dO8






v
c
N
8

							z	c	B	+	rU5&eR?%fM5! nY=,o_J.waK3cM5ygT        U %	ImageFixtureT #	HomeFixtureS 3	GuildsPlayerFixtureR %	GuildFixtureQ 7	GroupUpdateAllFixtureP 5	FruitsUuidTagFixtureO %	FruitFixtureN +	FlagTreeFixtureM 1	FixturizedTestCaseL +	FilmFileFixtureK /	FeatureSetFixtureJ +	FeaturedFixtureI C	ExteriorTypeCategoryFixtureH 1	DomainsSiteFixtureG '	DomainFixtureF +	DocumentFixtureE =	DocumentDirectoryFixtureD /	DeviceTypeFixtureC ?	DeviceTypeCategoryFixtureB '	DeviceFixtureA /	DependencyFixture@ +	DatatypeFixture? +	DataTestFixture0> e	CounterCacheUserNonstandardPrimaryKeyFixture= ;	CounterCacheUserFixture0< e	CounterCachePostNonstandardPrimaryKeyFixture; ;	CounterCachePostFixture: )	ContentFixture9 7	ContentAccountFixture8 )	CommentFixture7 	CdFixture6 7	CategoryThreadFixture5 +	CategoryFixture4 +	CampaignFixture3 +	CallbackFixture2 1	CakeSessionFixture1 7	CacheTestModelFixture0 #	BookFixture/ /	BinaryTestFixture. !	BidFixture- 7	BiddingMessageFixture, )	BiddingFixture+ '	BasketFixture* )	BakeTagFixture) 1	BakeCommentFixture( A	BakeArticlesBakeTagFixture' 1	BakeArticleFixture& +	AuthUserFixture% A	AuthUserCustomFieldFixture$ '	AuthorFixture# /	AttachmentFixture" 1	AssertTagsTestCase! 1	ArticlesTagFixture  )	ArticleFixture C	ArticleFeaturedsTagsFixture 9	ArticleFeaturedFixture '	AroTwoFixture /	ArosAcoTwoFixture )	ArosAcoFixture !	AroFixture 3	ArmorsPlayerFixture %	ArmorFixture %	AppleFixture 7	AnotherArticleFixture -	AfterTreeFixture 5	AdvertisementFixture 	AdFixture '	AcoTwoFixture !	AcoFixture -	AcoActionFixture )	AccountFixture #	XmlViewTest 	ViewTest ?	TestObjectWithoutToString 9	TestObjectWithToString
 7	TestBeforeAfterHelper	 	TestView '	TestThemeView 5	ThemePostsController 3	ViewPostsController '	ThemeViewTest )	TestTheme2View 7	ThemePosts2Controller -	ScaffoldViewTest A	ScaffoldViewMockController  -	TestScaffoldView '	MediaViewTest~ %	JsonViewTest} !	HelperTest| !	TestHelper{ 1	HelperTestPostsTagz '	HelperTestTagy /	HelperTestCommentx )	HelperTestPostw 5	HelperCollectionTestv +	HtmlAliasHelperu )	TimeHelperTestt %	CakeTimeMocks 5	TimeHelperTestObjectr )	TextHelperTestq !	StringMockp 5	TextHelperTestObjecto /	SessionHelperTestn '	RssHelperTestm ?	PrototypeEngineHelperTestl 3	PaginatorHelperTestk -	NumberHelperTestj )	CakeNumberMocki 9	NumberHelperTestObjecth =	MootoolsEngineHelperTestg -	JsBaseEngineTestf %	JsHelperTeste 1	OptionEngineHelperd -	JsEncodingObjectc 9	JqueryEngineHelperTestb )	HtmlHelperTesta +	Html5TestHelper` )	TestHtmlHelper_ 7	TheHtmlTestController^ )	FormHelperTest] 	TestMail\ %	ValidateItem[ +	ValidateProfileZ %	ValidateUserY 	OpenidUrlX 	UserFormW !	ContactTagV 5	ContactNonStandardPkU 1	ContactTagsContactT 	ContactS 7	ContactTestControllerR +	CacheHelperTestQ 3	CacheTestControllerP 	XmlTestO 	XmlUserN !	XmlArticleM )	ValidationTestL -	TestDeValidationK -	TestNlValidationJ +	CustomValidatorI !	StringTestH 	SetTestG %	SecurityTestF %	SanitizeTestE +	SanitizeArticleD -	SanitizeDataTestC 5	ObjectCollectionTestB ;	GenericObjectCollectionA 1	ThirdGenericObject@ 3	SecondGenericObject? 1	FirstGenericObject> '	GenericObject= '	InflectorTest< 	HashTest; !	FolderTest: 	FileTest9 %	DebuggerTest8 =	DebuggerTestCaseDebugger7 /	ClassRegistryTest6 A	ClassRegistryAbstractModel5 1	RegisterPrefixedDs4 -	RegisterCategory   e r_H3fJ-aL8sT5xW7




y
^
I
3
!
					u	g	V	?	nTA-y]H&qL=,sS;!p\A#jT@)n_PF9({e                           v +	PaginatorHelperu %	NumberHelpert 5	MootoolsEngineHelpers 	JsHelperr 1	JsBaseEngineHelperq 1	JqueryEngineHelperp !	HtmlHelpero !	FormHelpern #	CacheHelperm 	Xmll !	Validation
k 	Stringj 	Seti 	Securityh 	Sanitizeg -	ObjectCollectionf 	Inflectore 	Hash
d 	Folderc 	Fileb 	Debuggera '	ClassRegistry` 	CakeTime_ !	CakeNumber^ -	CakeTextReporter] -	CakeHtmlReporter\ -	CakeBaseReporter[ '	CakeTestModelZ +	CakeTestFixtureY 1	CakeFixtureManagerX 1	TextCoverageReportW 1	HtmlCoverageReportV 1	BaseCoverageReportU 1	ControllerTestCaseT 9	InterceptContentHelperS =	ControllerTestDispatcherR ;	CakeTestSuiteDispatcherQ 5	CakeTestSuiteCommandP '	CakeTestSuiteO )	CakeTestRunnerN )	CakeTestLoaderM %	CakeTestCaseL %	BananaHelperK ?	ConfigureTestVendorSampleJ '	TestAppEngineI %	WelcomeShellH 3	TestPluginAppHelperG 3	PluggedHelperHelperF /	OtherHelperHelperE ?	SamplePluginClassTestNameD )	ExampleExampleC -	TestPluginEngineB )	TestPluginPostA 1	TestPluginAuthUser@ /	TestPluginAuthors? 1	TestPluginAppModel> +	TestOtherSource= /	TestPluginSession< !	TestDriver; 	DboDummy": I	TestPluginPersisterTwoBehavior"9 I	TestPluginPersisterOneBehavior8 9	TestPluginOtherLibrary7 /	TestPluginLibrary6 	TestRoute5 5	TestDispatcherFilter4 7	Test2DispatcherFilter3 '	TestPluginLog2 C	TestPluginExceptionRenderer1 )	CustomLibClass0 7	TestPluginCacheEngine/ +	TestsController. 5	TestPluginController- ;	TestPluginAppController, =	TestPluginOtherComponent+ 3	TestPluginComponent* -	PluginsComponent) )	OtherComponent( '	OtherTaskTask' %	ExampleShell& 3	TestPluginAppSchema% %	PersisterTwo$ %	PersisterOne# 	Extract" #	Test2Source! -	Test2OtherSource  /	TestAppLibSession +	TestLocalDriver  E	PersisterTwoBehaviorBehavior  E	PersisterOneBehaviorBehavior -	TestUtilityClass !	TestAppLog 	Library 1	TestAppCacheEngine ?	TestAppsExceptionRenderer =	TestsAppsPostsController 3	TestsAppsController 7	TestConfigsController ;	TestAppsErrorController #	SampleShell +	UuidTreeFixture )	UuidTagFixture 5	UuidportfolioFixture* Y	UuiditemsUuidportfolioNumericidFixture! G	UuiditemsUuidportfolioFixture +	UuiditemFixture #	UuidFixture #	UserFixture
 +	UnsignedFixture	 9	UnderscoreFieldFixture ?	UnconventionalTreeFixture A	TranslateWithPrefixFixture 7	TranslateTableFixture -	TranslateFixture 7	TranslatedItemFixture =	TranslatedArticleFixture ;	TranslateArticleFixture '	ThreadFixture  9	ThePaperMonkiesFixture =	TestPluginCommentFixture~ =	TestPluginArticleFixture} !	TagFixture| '	SyfileFixture{ %	StoryFixturez /	StoriesTagFixturey -	SomethingFixturex 5	SomethingElseFixturew #	SiteFixturev )	SessionFixtureu 7	SecondaryModelFixturet '	SampleFixtures )	ProjectFixturer ;	ProductUpdateAllFixtureq )	ProductFixturep 3	PrimaryModelFixtureo /	PrefixTestFixturen +	PostsTagFixturem #	PostFixturel -	PortfolioFixturek '	PlayerFixturej '	PersonFixturei 9	OverallFavoriteFixtureh 7	NumericArticleFixtureg 5	NumberTreeTwoFixturef /	NumberTreeFixturee #	NodeFixtured '	MyUserFixturec -	MyProductFixtureb /	MyCategoryFixturea A	MyCategoriesMyUsersFixture!` G	MyCategoriesMyProductsFixture_ )	MessageFixture^ -	JoinThingFixture] %	JoinCFixture\ %	JoinBFixture[ %	JoinAFixtureZ '	JoinACFixtureY '	JoinABFixtureX 7	ItemsPortfolioFixtureW #	ItemFixtureV #	InnoFixture   h zk[H8-wjWF4w_H4#ygT@0 bG2







}
o
[
=
%
						u	[	C	'	{jO=-"{^D+
yX8_B~VB,iJ9!	~sbWD)yh        " Sqlserver! Sqlite  Postgres
 Mysql #CakeSession /ConnectionManager !CakeSchema 1BehaviorCollection %TreeBehavior /TranslateBehavior 3ContainableBehavior #AclBehavior Aro AcoAction Aco AclNode 3LogEngineCollection SyslogLog FileLog !ConsoleLog BaseLog CakeLog Multibyte	 L10n	
 I18n	 -CakeEventManager CakeEvent ;NotImplementedException 3FatalErrorException -ConsoleException %XmlException +SocketException 1ConfigureException 5CakeSessionException  -CakeLogException +RouterException~ )CacheException} %AclException%| MMissingDispatcherFilterException{ 9MissingPluginExceptionz AMissingTestLoaderExceptiony 7MissingModelExceptionx 7MissingTableExceptionw AMissingDatasourceException%v MMissingDatasourceConfigExceptionu 7MissingShellException t CMissingShellMethodExceptions 5MissingTaskExceptionr AMissingConnectionExceptionq =MissingDatabaseExceptionp 9MissingHelperExceptiono 9MissingLayoutExceptionn 5MissingViewExceptionm =MissingBehaviorExceptionl ?MissingComponentExceptionk 9PrivateActionExceptionj 9MissingActionExceptioni AMissingControllerExceptionh 'CakeExceptiong 9InternalErrorExceptionf ?MethodNotAllowedExceptione /NotFoundExceptiond 1ForbiddenExceptionc 7UnauthorizedExceptionb 3BadRequestExceptiona 'HttpException` /CakeBaseException_ /ExceptionRenderer^ %ErrorHandler] Object\ Configure[ !CakePluginZ AppY ScaffoldX !ControllerW 3ComponentCollectionV ComponentU -SessionComponentT /SecurityComponentS ;RequestHandlerComponentR 1PaginatorComponentQ )EmailComponentP +CookieComponentO 'AuthComponentN 5SimplePasswordHasherM -FormAuthenticateL 1DigestAuthenticateK 'CrudAuthorizeJ 3ControllerAuthorizeI 9BlowfishPasswordHasherH 5BlowfishAuthenticateG /BasicAuthenticateF 'BaseAuthorizeE -BaseAuthenticateD -ActionsAuthorizeC 9AbstractPasswordHasherB %AclComponentA PhpAro@ PhpAco? PhpAcl> IniAcl
= DbAcl< 3CakeErrorController; %AllTestsTest: )TaskCollection9 +ShellDispatcher
8 Shell7 'HelpFormatter6 'ConsoleOutput5 3ConsoleOptionParser4 9ConsoleInputSubcommand3 1ConsoleInputOption2 5ConsoleInputArgument1 %ConsoleInput0 3ConsoleErrorHandler/ %UpgradeShell. )TestsuiteShell- TestShell, ViewTask+ TestTask* %TemplateTask) #ProjectTask( !PluginTask' ModelTask& #FixtureTask% #ExtractTask$ %DbConfigTask# )ControllerTask" #CommandTask! BakeTask  #ServerShell #SchemaShell I18nShell %ConsoleShell +CompletionShell -CommandListShell BakeShell ApiShell AclShell PhpReader IniReader %XcacheEngine )WincacheEngine #RedisEngine )MemcacheEngine +MemcachedEngine !FileEngine ApcEngine #CacheEngine
 Cache AppHelper AppModel
 +PagesController	 'AppController AppShell )SessionsSchema !I18nSchema #DbAclSchema 	XmlView 	ViewBlock 	View 	ThemeView  %	ScaffoldView 	MediaView~ 	JsonView} -	HelperCollection
| 	Helper{ !	TimeHelperz !	TextHelpery '	SessionHelperx 	RssHelperw 7	PrototypeEngineHelper   F iW=$fJ6$
tfN:!	oY>, waF+






j
U
A
-

					|	_	H	1		|dM:"cO:%iS>(wfTB*{_C* pV<!qV8cF  @ 7SessionTestController? 7SecurityComponentTest> =BrokenCallbackController= 9SecurityTestController< 7TestSecurityComponent ; CRequestHandlerComponentTest: )CustomJsonView!9 ERequestHandlerTestController8 9PaginatorComponentTest7 3PaginatorCustomPost6 +PaginatorAuthor5 APaginatorControllerComment4 ;ControllerPaginateModel3 ;PaginatorControllerPost2 ;PaginatorTestController1 1EmailComponentTest0 3EmailTestController/ 1DebugCompTransport. 1EmailTestComponent- 3CookieComponentTest", GCookieComponentTestController+ /AuthComponentTest* 7AuthEventTestListener) 1AjaxAuthController( 1AuthTestController' AuthUser& /TestAuthComponent% 5TestBaseAuthenticate$ 5FormAuthenticateTest# 9DigestAuthenticateTest" /CrudAuthorizeTest! ;ControllerAuthorizeTest  =BlowfishAuthenticateTest 7BasicAuthenticateTest 5ActionsAuthorizeTest -AclComponentTest !PhpAclTest !IniAclTest DbAclTest %DbAclTwoTest /PermissionTwoTest !AcoTwoTest !AroTwoTest 1AclNodeTwoTestBase 1TaskCollectionTest 3DbConfigAliasedTask ShellTest )TestBananaTask 'TestAppleTask )TestMergeShell )ShellTestShell 3ShellDispatcherTest 3TestShellDispatcher /HelpFormatterTest
 /ConsoleOutputTest	 ;ConsoleOptionParserTest ;ConsoleErrorHandlerTest 'TestShellTest 'TestTestShell %ViewTaskTest AViewTaskArticlesController AViewTaskCommentsController +ViewTaskArticle +ViewTaskComment  %TestTaskTest ATestTaskCommentsController~ +TestTaskComment} -TestTaskAppModel| #TestTaskTag{ +TestTaskArticlez -TemplateTaskTesty +ProjectTaskTestx )PluginTaskTestw 'ModelTaskTestv +FixtureTaskTestu +ExtractTaskTestt -DbConfigTaskTests 1ControllerTaskTestr #BakeArticleq +CommandTaskTestp +SchemaShellTesto 7SchemaShellTestScheman 3CompletionShellTestm ATestCompletionStringOutputl 5CommandListShellTestk -TestStringOutputj 'BakeShellTesti +UsersControllerh %ApiShellTestg %AclShellTestf %AllTasksTeste 'AllShellsTestd 1AllConsoleLibsTestc 'PhpReaderTestb 'IniReaderTesta -XcacheEngineTest` 1WincacheEngineTest_ +RedisEngineTest^ 1MemcacheEngineTest] 1TestMemcacheEngine\ 3MemcachedEngineTest[ 3TestMemcachedEngineZ )FileEngineTestY 'ApcEngineTestX CacheTestW !BasicsTestV #AllViewTestU )AllUtilityTestT -AllTestSuiteTestS AllTestsR )AllRoutingTestQ )AllNetworkTestP !AllLogTestO 3AllLocalizationTestN )AllHelpersTestM %AllEventTestL %AllErrorTestK -AllDbRelatedTestJ +AllDatabaseTestI #AllCoreTestH 1AllControllersTestG )AllConsoleTestF -AllConfigureTestE /AllComponentsTestD %AllCacheTestC -AllBehaviorsTestB RouterA 'RedirectRoute@ -PluginShortRoute? CakeRoute> +CacheDispatcher= +AssetDispatcher< -DispatcherFilter; !Dispatcher: 1HttpSocketResponse9 !HttpSocket8 %HttpResponse7 5DigestAuthentication6 3BasicAuthentication5 'SmtpTransport4 'MailTransport3 )DebugTransport2 CakeEmail1 /AbstractTransport0 !CakeSocket/ %CakeResponse. #CakeRequest- /CakeValidationSet, 1CakeValidationRule+ !Permission* )ModelValidator) 'ModelBehavior
( Model' I18nModel& +DatabaseSession% %CacheSession$ DboSource# !DataSource   S lM7 	eL,	qXA1\5	n\D+




x
Y
=
(

							y	b	C	*		qZ;}hS>)wdO=(~aJ2 saJ0v[F.wfRF7oS                 ] 5AgainModifiedComment\ +ModifiedComment[ CommentZ 3ArticleFeaturedsTagY #ArticlesTagX TagW FeaturedV +ArticleFeaturedU Article10T )NumericArticleS 3BeforeDeleteCommentR Article	Q UserP %TestValidateO TestAlias	N TestM 'ModelReadTestL 5ModelIntegrationTestK DboMockJ +ModelDeleteTestI ?ModelCrossSchemaHabtmTestH 3DatabaseSessionTestG -SessionTestModelF -CacheSessionTestE 'DboSourceTestD 3DboSecondTestSourceC 'DboTestSourceB )MockDataSourceA MockPDO@ )DataSourceTest? !TestSource> 'SqlserverTest = CSqlserverTestResultIterator< =SqlserverClientTestModel; 1SqlserverTestModel: +SqlserverTestDb9 !SqliteTest8 +DboSqliteTestDb7 %PostgresTest6 ;PostgresClientTestModel5 /PostgresTestModel4 /DboPostgresTestDb3 MysqlTest2 +CakeSessionTest1 3TestDatabaseSession0 -TestCacheSession/ +TestCakeSession. 7ConnectionManagerTest- )CakeSchemaTest, 5SchemaPrefixAuthUser+ ASchemaCrossDatabaseFixture* 3SchemaCrossDatabase) %Testdescribe( )SchemaDatatype' SchemaTag& 'SchemaComment% !SchemaPost$ 'TestAppSchema# #MyAppSchema" 9BehaviorCollectionTest! Orangutan  'ThirdBehavior )SecondBehavior 'FirstBehavior /TestAliasBehavior 'Test7Behavior 'Test6Behavior 'Test5Behavior 'Test4Behavior 'Test3Behavior 'Test2Behavior %TestBehavior 5TreeBehaviorUuidTest -TreeBehaviorTest 9TreeBehaviorScopedTest 9TreeBehaviorNumberTest 7TreeBehaviorAfterTest 7TranslateBehaviorTest ;ContainableBehaviorTest +AclBehaviorTest AclPost AclUser AclPerson
 #AclNodeTest	 TestDbAcl 'DbAroUserTest +DbAcoActionTest -DbPermissionTest DbAcoTest DbAroTest /DbAclNodeTestBase ;LogEngineCollectionTest +LoggerEngineLog  'SyslogLogTest #FileLogTest~ )ConsoleLogTest} #TestCakeLog| )TestConsoleLog{ #CakeLogTestz 'MultibyteTesty L10nTestx I18nTestw 'CakeEventTestv 5CakeEventManagerTestu ;CustomTestEventListenert 7CakeEventTestListeners 7ExceptionRendererTest r CMissingWidgetThingExceptionq ?MyCustomExceptionRendererp 3TestErrorControllero 1BlueberryComponentn /AuthBlueberryUserm -ErrorHandlerTestl !ObjectTestk +ObjectTestModelj !TestObjecti ;RequestActionControllerh /RequestActionPostg 'ConfigureTestf )CakePluginTeste AppTestd %ScaffoldTestc -TestScaffoldMock$b KScaffoldMockControllerWithError%a MScaffoldMockControllerWithFields` 9ScaffoldMockController_ 3PagesControllerTest^ )ControllerTest] 7AnotherTestController\ )Test2Component[ 'TestComponentZ )TestControllerY NameTestX +ControllerAliasW /ControllerComment!V EControllerCommentsControllerU )ControllerPost T CControllerTestAppControllerS ;ControllerMergeVarsTestR 5MergePostsController Q CMergeVarPluginAppControllerP =MergeVariablesControllerO /MergeVarComponentN 9MergeVarsAppControllerM 'ComponentTest L CSomethingWithEmailComponent$K KMutuallyReferencingTwoComponent$J KMutuallyReferencingOneComponentI +BananaComponentH +OrangeComponentG )AppleComponentF ;ComponentTestControllerE 1ParamTestComponentD ;ComponentCollectionTestC 5CookieAliasComponentB 5SessionComponentTest A COrangeSessionTestController   t oYL>({fK4(tfYG-wgYA)~obXL5'





|
l
\
R
A
2
#
							z	S	9		l?oS3'n\OB5$vbN7$	~`N>(
|eN9}eM3t% MDispatcherTestAbstractController 7MyPluginAppController )TestDispatcher ADispatcherMockCakeResponse )HttpSocketTest )TestHttpSocket )CustomResponse 1TestAuthentication -HttpResponseTest
 -TestHttpResponse	 =DigestAuthenticationTest -DigestHttpSocket ;BasicAuthenticationTest /SmtpTransportTest /SmtpTestTransport /MailTransportTest 1DebugTransportTest 'CakeEmailTest +ExtendTransport  +TestEmailConfig 'TestCakeEmail~ )CakeSocketTest} -CakeResponseTest| +CakeRequestTest{ +TestCakeRequestz 7CakeValidationSetTesty 9CakeValidationRuleTestx )ModelWriteTestw TestPostv !TestAuthoru 9ValidationRuleBehaviort 3ModelValidationTests 'BaseModelTestr ModelTestq 'CustomArticlep %ArmorsPlayer
o Armorn %GuildsPlayer
m Guildl Playerk #ScaffoldTagj +ScaffoldCommenti %ScaffoldUserh %ScaffoldMockg ;PrefixTestUseTableModelf +PrefixTestModele )MysqlTestModeld -ArticleFeatured2c Comment2b Featured2a /CategoryFeatured2` Article2_ Category2
^ User2
] Group
\ Level[ !TestModel9Z !TestModel8Y !TestModel7X !TestModel6W !TestModel5V 5TestModel4TestModel7U !TestModel4T !TestModel3S !TestModel2R TestModelQ Domain	P SiteO =TransactionManyTestModelN 5TransactionTestModelM )GroupUpdateAllL -ProductUpdateAllK 'UuidTagNoWithJ #FruitNoWithI UuidTagH 'FruitsUuidTag
G Fruit	F TagBE ArticleB*D WCounterCachePostNonstandardPrimaryKey*C WCounterCacheUserNonstandardPrimaryKeyB -CounterCachePostA -CounterCacheUser@ /TranslatedArticle? 7TranslateArticleModel> ;TranslatedItemWithTable= +TranslatedItem2< )TranslatedItem; 3TranslateWithPrefix: 1TranslateTestModel$9 KUuiditemsUuidportfolioNumericid8 9UuiditemsUuidportfolio7 Uuiditem6 'Uuidportfolio5 /TestPluginComment4 /TestPluginArticle3 Basket2 FilmFile1 )ContentAccount0 Account/ Content. AfterTree- Ad, Campaign+ UuidTree* 1UnconventionalTree) FlagTree( 'NumberTreeTwo' !NumberTree& 7MyCategoriesMyProduct% 1MyCategoriesMyUser$ MyProduct# !MyCategory" MyUser! +OverallFavorite	  Book Cd
 Story Product +UnderscoreField Person +ValidationTest2 +ValidationTest1 TheVoid DataTest	 Uuid 7CallbackPostTestModel Callback -AssociationTest2 -AssociationTest1 Monkey ThePaper
 JoinC
 JoinB
 JoinA )SecondaryModel %PrimaryModel
 /DocumentDirectory	 Device Document 5ExteriorTypeCategory !FeatureSet 1DeviceTypeCategory !DeviceType
 Image Syfile )ItemsPortfolio	  Item Portfolio~ JoinThing} 'SomethingElse| Something{ ModelDz ModelCy ModelBx ModelAw !Dependency	v Nodeu +NodeNoAfterFindt 3NodeAfterFindSamples 'NodeAfterFindr Biddingq )BiddingMessagep Bido Messagen Threadm Projectl )ModifiedAuthork Author	j Post	i Homeh 'Advertisementg )AnotherArticlef Sample
e Appled )CategoryThreadc Categoryb 1ModifiedAttachmenta !Attachment` 7MergeVarPluginComment_ 1MergeVarPluginPost^ 9MergeVarPluginAppModel   M kM2w^L7z\C(v`L2sQ8






s
Y
:

							w	_	I	7	(	scR>'oW=)iT;~hO: dN9dTA+vbG5fM                   , /AttachmentFixture+ 1AssertTagsTestCase* 1ArticlesTagFixture) )ArticleFixture ( CArticleFeaturedsTagsFixture' 9ArticleFeaturedFixture& 'AroTwoFixture% /ArosAcoTwoFixture$ )ArosAcoFixture# !AroFixture" 3ArmorsPlayerFixture! %ArmorFixture  %AppleFixture 7AnotherArticleFixture -AfterTreeFixture 5AdvertisementFixture AdFixture 'AcoTwoFixture !AcoFixture -AcoActionFixture )AccountFixture #XmlViewTest ViewTest 7TestViewEventListener ?TestObjectWithoutToString 9TestObjectWithToString 7TestBeforeAfterHelper TestView 'TestThemeView 5ThemePostsController 3ViewPostsController 'ThemeViewTest )TestTheme2View 7ThemePosts2Controller
 -ScaffoldViewTest	 AScaffoldViewMockController -TestScaffoldView 'MediaViewTest %JsonViewTest !HelperTest !TestHelper 1HelperTestPostsTag 'HelperTestTag /HelperTestComment  )HelperTestPost 5HelperCollectionTest~ +HtmlAliasHelper} )TimeHelperTest| %CakeTimeMock{ 5TimeHelperTestObjectz )TextHelperTesty !StringMockx 5TextHelperTestObjectw /SessionHelperTestv 'RssHelperTestu ?PrototypeEngineHelperTestt 3PaginatorHelperTests -NumberHelperTestr )CakeNumberMockq 9NumberHelperTestObjectp =MootoolsEngineHelperTesto -JsBaseEngineTestn %JsHelperTestm 1OptionEngineHelperl -JsEncodingObjectk 9JqueryEngineHelperTestj )HtmlHelperTesti +Html5TestHelperh )TestHtmlHelperg 7TheHtmlTestControllerf )FormHelperTeste TestMaild %ValidateItemc +ValidateProfileb %ValidateUsera OpenidUrl` UserForm_ !ContactTag^ 5ContactNonStandardPk] 1ContactTagsContact\ Contact[ 7ContactTestControllerZ +CacheHelperTestY 3CacheTestControllerX XmlTestW XmlUserV !XmlArticleU )ValidationTestT -TestDeValidationS -TestNlValidationR +CustomValidatorQ !StringTestP SetTestO %SecurityTestN %SanitizeTestM +SanitizeArticleL -SanitizeDataTestK 5ObjectCollectionTestJ ;GenericObjectCollectionI 1ThirdGenericObjectH 3SecondGenericObjectG 1FirstGenericObjectF 'GenericObjectE 'InflectorTestD HashTestC !FolderTestB FileTestA %DebuggerTest@ =DebuggerTestCaseDebugger? /ClassRegistryTest> AClassRegistryAbstractModel= 1RegisterPrefixedDs< -RegisterCategory; ;TestRegistryPluginModel: 9RegistryPluginAppModel9 1RegisterArticleTag8 ;RegisterArticleFeatured7 +RegisterArticle6 1ClassRegisterModel5 %CakeTimeTest4 )CakeNumberTest3 9HtmlCoverageReportTest2 9CakeFixtureManagerTest1 9ControllerTestCaseTest%0 MControllerTestCaseTestController/ +PostsController. /CakeTestSuiteTest- 3CakeTestFixtureTest, /FixturePrefixTest+ 9FixtureImportTestModel(* SCakeTestFixtureDefaultImportFixture!) ECakeTestFixtureImportFixture( 1InvalidTestFixture' 1StringsTestFixture& ACakeTestFixtureTestFixture% -CakeTestCaseTest$ 'SecondaryPost# !RouterTest" /RedirectRouteTest! 5PluginShortRouteTest  'CakeRouteTest 3AssetDispatcherTest )DispatcherTest 5TestFilterDispatcher 5TimesheetsController ?TestCachedPagesController 3SomePostsController 9ArticlesTestController ?ArticlesTestAppController  CTestDispatchPagesController 5OtherPagesController 3SomePagesController 1MyPluginController   > v\F1r[D' z['qZE+|`C/






l
X
D
,
						v	]	A	$	fP1s_J8iQ4Z,yY8mUB3~^?#hW>              @ /TestPluginLibrary? TestRoute> 5TestDispatcherFilter= 7Test2DispatcherFilter< 'TestPluginLog ; CTestPluginExceptionRenderer: )CustomLibClass9 7TestPluginCacheEngine8 +TestsController7 5TestPluginController6 ;TestPluginAppController5 =TestPluginOtherComponent4 3TestPluginComponent3 -PluginsComponent2 )OtherComponent1 'OtherTaskTask0 %ExampleShell/ 3TestPluginAppSchema. %PersisterTwo- %PersisterOne, Extract+ #Test2Source* -Test2OtherSource) /TestAppLibSession( +TestLocalDriver!' EPersisterTwoBehaviorBehavior!& EPersisterOneBehaviorBehavior% -TestUtilityClass$ !TestAppLog# Library" 1TestAppCacheEngine! ?TestAppsExceptionRenderer  =TestsAppsPostsController 3TestsAppsController 7TestConfigsController ;TestAppsErrorController #SampleShell +UuidTreeFixture )UuidTagFixture 5UuidportfolioFixture+ YUuiditemsUuidportfolioNumericidFixture" GUuiditemsUuidportfolioFixture +UuiditemFixture #UuidFixture #UserFixture +UnsignedFixture 9UnderscoreFieldFixture ?UnconventionalTreeFixture ATranslateWithPrefixFixture 7TranslateTableFixture -TranslateFixture 7TranslatedItemFixture =TranslatedArticleFixture ;TranslateArticleFixture
 'ThreadFixture	 9ThePaperMonkiesFixture =TestPluginCommentFixture =TestPluginArticleFixture !TagFixture 'SyfileFixture %StoryFixture /StoriesTagFixture -SomethingFixture 5SomethingElseFixture  #SiteFixture )SessionFixture~ 7SecondaryModelFixture} 'SampleFixture| )ProjectFixture{ ;ProductUpdateAllFixturez )ProductFixturey 3PrimaryModelFixturex /PrefixTestFixturew +PostsTagFixturev #PostFixtureu -PortfolioFixturet 'PlayerFixtures 'PersonFixturer 9OverallFavoriteFixtureq 7NumericArticleFixturep 5NumberTreeTwoFixtureo /NumberTreeFixturen #NodeFixturem 'MyUserFixturel -MyProductFixturek /MyCategoryFixturej AMyCategoriesMyUsersFixture"i GMyCategoriesMyProductsFixtureh )MessageFixtureg -JoinThingFixturef %JoinCFixturee %JoinBFixtured %JoinAFixturec 'JoinACFixtureb 'JoinABFixturea 7ItemsPortfolioFixture` #ItemFixture_ #InnoFixture^ %ImageFixture] #HomeFixture\ 3GuildsPlayerFixture[ %GuildFixtureZ 7GroupUpdateAllFixtureY 5FruitsUuidTagFixtureX %FruitFixtureW +FlagTreeFixtureV 1FixturizedTestCaseU +FilmFileFixtureT /FeatureSetFixtureS +FeaturedFixture R CExteriorTypeCategoryFixtureQ 1DomainsSiteFixtureP 'DomainFixtureO +DocumentFixtureN =DocumentDirectoryFixtureM /DeviceTypeFixtureL ?DeviceTypeCategoryFixtureK 'DeviceFixtureJ /DependencyFixtureI +DatatypeFixtureH +DataTestFixture1G eCounterCacheUserNonstandardPrimaryKeyFixtureF ;CounterCacheUserFixture1E eCounterCachePostNonstandardPrimaryKeyFixtureD ;CounterCachePostFixtureC )ContentFixtureB 7ContentAccountFixtureA )CommentFixture@ CdFixture? 7CategoryThreadFixture> +CategoryFixture= +CampaignFixture< +CallbackFixture; 1CakeSessionFixture: 7CacheTestModelFixture9 #BookFixture8 /BinaryTestFixture7 !BidFixture6 7BiddingMessageFixture5 )BiddingFixture4 'BasketFixture3 )BakeTagFixture2 1BakeCommentFixture1 ABakeArticlesBakeTagFixture0 1BakeArticleFixture/ +AuthUserFixture. AAuthUserCustomFieldFixture- 'AuthorFixture   z t[D*y^C/tU5~iQ9!{k`R@5"






s
V
E
0

									t	a	O	9	)	lYC/ubR?)t^J/u^H4r]D(
w`J4|q_N@,z                    o /NotFoundExceptionn 1ForbiddenExceptionm 7UnauthorizedExceptionl 3BadRequestExceptionk 'HttpExceptionj /CakeBaseExceptioni /ExceptionRendererh %ErrorHandlerg Objectf Configuree !CakePlugind Appc Scaffoldb !Controllera 3ComponentCollection` Component_ -SessionComponent^ /SecurityComponent] ;RequestHandlerComponent\ 1PaginatorComponent[ )FlashComponentZ )EmailComponentY +CookieComponentX 'AuthComponentW 5SimplePasswordHasherV -FormAuthenticateU 1DigestAuthenticateT 'CrudAuthorizeS 3ControllerAuthorizeR 9BlowfishPasswordHasherQ 5BlowfishAuthenticateP /BasicAuthenticateO 'BaseAuthorizeN -BaseAuthenticateM -ActionsAuthorizeL 9AbstractPasswordHasherK %AclComponentJ PhpAroI PhpAcoH PhpAclG IniAcl
F DbAclE 3CakeErrorControllerD %AllTestsTestC )TaskCollectionB +ShellDispatcher
A Shell@ 'HelpFormatter? 'ConsoleOutput> 3ConsoleOptionParser= 9ConsoleInputSubcommand< 1ConsoleInputOption; 5ConsoleInputArgument: %ConsoleInput9 3ConsoleErrorHandler8 %UpgradeShell7 )TestsuiteShell6 TestShell5 ViewTask4 TestTask3 %TemplateTask2 #ProjectTask1 !PluginTask0 ModelTask/ #FixtureTask. #ExtractTask- %DbConfigTask, )ControllerTask+ #CommandTask* BakeTask) #ServerShell( #SchemaShell' I18nShell& %ConsoleShell% +CompletionShell$ -CommandListShell# BakeShell" ApiShell! AclShell  PhpReader IniReader %XcacheEngine )WincacheEngine #RedisEngine )MemcacheEngine +MemcachedEngine !FileEngine ApcEngine #CacheEngine
 Cache AppHelper AppModel +PagesController 'AppController AppShell )SessionsSchema !I18nSchema #DbAclSchema XmlView ViewBlock	 View
 ThemeView	 %ScaffoldView MediaView JsonView -HelperCollection Helper !TimeHelper !TextHelper 'SessionHelper RssHelper  7PrototypeEngineHelper +PaginatorHelper~ %NumberHelper} 5MootoolsEngineHelper| JsHelper{ 1JsBaseEngineHelperz 1JqueryEngineHelpery !HtmlHelperx !FormHelperw #CacheHelperv Xmlu !Validationt Strings Setr Securityq Sanitizep -ObjectCollectiono Inflector	n Hashm Folder	l Filek Debuggerj 'ClassRegistryi CakeTimeh !CakeNumberg -CakeTextReporterf -CakeHtmlReportere -CakeBaseReporterd 'CakeTestModelc +CakeTestFixtureb 1CakeFixtureManagera 1TextCoverageReport` 1HtmlCoverageReport_ 1BaseCoverageReport^ 1ControllerTestCase] 9InterceptContentHelper\ =ControllerTestDispatcher[ ;CakeTestSuiteDispatcherZ 5CakeTestSuiteCommandY 'CakeTestSuiteX )CakeTestRunnerW )CakeTestLoaderV %CakeTestCaseU %BananaHelperT ?ConfigureTestVendorSampleS 'TestAppEngineR %WelcomeShellQ 3TestPluginAppHelperP 3PluggedHelperHelperO /OtherHelperHelperN ?SamplePluginClassTestNameM )ExampleExampleL -TestPluginEngineK )TestPluginPostJ 1TestPluginAuthUserI /TestPluginAuthorsH 1TestPluginAppModelG +TestOtherSourceF /TestPluginSessionE !TestDriverD DboDummy#C ITestPluginPersisterTwoBehavior#B ITestPluginPersisterOneBehaviorA 9TestPluginOtherLibrary   b lN-sW4qS+qY>}bSH7,






y
l
\
N
=
+

							z	a	N	:	(	saG5w^F0{iS=-hN4~jV?*n[A)w_H&wb                       'TestShellTest 'TestTestShell %ViewTaskTest AViewTaskArticlesController AViewTaskCommentsController +ViewTaskArticle +ViewTaskComment
 %TestTaskTest	 ATestTaskCommentsController +TestTaskComment -TestTaskAppModel #TestTaskTag +TestTaskArticle -TemplateTaskTest +ProjectTaskTest )PluginTaskTest 'ModelTaskTest  +FixtureTaskTest +ExtractTaskTest~ -DbConfigTaskTest} 1ControllerTaskTest| #BakeArticle{ +CommandTaskTestz +SchemaShellTesty 7SchemaShellTestSchemax 3CompletionShellTestw ATestCompletionStringOutputv 5CommandListShellTestu -TestStringOutputt 'BakeShellTests +UsersControllerr %ApiShellTestq %AclShellTestp %AllTasksTesto 'AllShellsTestn 1AllConsoleLibsTestm 'PhpReaderTestl 'IniReaderTestk -XcacheEngineTestj 1WincacheEngineTesti +RedisEngineTesth 1MemcacheEngineTestg 1TestMemcacheEnginef 3MemcachedEngineTeste 3TestMemcachedEngined )FileEngineTestc 'ApcEngineTestb CacheTesta !BasicsTest` #AllViewTest_ )AllUtilityTest^ -AllTestSuiteTest] AllTests\ )AllRoutingTest[ )AllNetworkTestZ !AllLogTestY 3AllLocalizationTestX )AllHelpersTestW %AllEventTestV %AllErrorTestU -AllDbRelatedTestT +AllDatabaseTestS #AllCoreTestR 1AllControllersTestQ )AllConsoleTestP -AllConfigureTestO /AllComponentsTestN %AllCacheTestM -AllBehaviorsTestL RouterK 'RedirectRouteJ -PluginShortRouteI CakeRouteH +CacheDispatcherG +AssetDispatcherF -DispatcherFilterE !DispatcherD 1HttpSocketResponseC !HttpSocketB %HttpResponseA 5DigestAuthentication@ 3BasicAuthentication? 'SmtpTransport> 'MailTransport= )DebugTransport< CakeEmail; /AbstractTransport: !CakeSocket9 %CakeResponse8 #CakeRequest7 /CakeValidationSet6 1CakeValidationRule5 !Permission4 )ModelValidator3 'ModelBehavior
2 Model1 I18nModel0 +DatabaseSession/ %CacheSession. DboSource- !DataSource, Sqlserver+ Sqlite* Postgres
) Mysql( #CakeSession' /ConnectionManager& !CakeSchema% 1BehaviorCollection$ %TreeBehavior# /TranslateBehavior" 3ContainableBehavior! #AclBehavior  Aro AcoAction Aco AclNode 3LogEngineCollection SyslogLog FileLog !ConsoleLog BaseLog CakeLog Multibyte	 L10n	 I18n -CakeEventManager CakeEvent ;NotImplementedException 3FatalErrorException -ConsoleException %XmlException +SocketException 1ConfigureException 5CakeSessionException
 -CakeLogException	 +RouterException )CacheException %AclException% MMissingDispatcherFilterException 9MissingPluginException AMissingTestLoaderException 7MissingModelException 7MissingTableException AMissingDatasourceException%  MMissingDatasourceConfigException 7MissingShellException ~ CMissingShellMethodException} 5MissingTaskException| AMissingConnectionException{ =MissingDatabaseExceptionz 9MissingHelperExceptiony 9MissingLayoutExceptionx 5MissingViewExceptionw =MissingBehaviorExceptionv ?MissingComponentExceptionu 9PrivateActionExceptiont 9MissingActionExceptions AMissingControllerExceptionr 'CakeExceptionq 9InternalErrorExceptionp ?MethodNotAllowedException   ; uZD.fRA/tV:fK1kI2





a
A
$
					s	T	>	'	lS3x_H8"c<$ucD,}`A% vaJ+whYB#yeP;             $ 'Test3Behavior# 'Test2Behavior" %TestBehavior! 5TreeBehaviorUuidTest  -TreeBehaviorTest 9TreeBehaviorScopedTest 9TreeBehaviorNumberTest 7TreeBehaviorAfterTest 7TranslateBehaviorTest ;ContainableBehaviorTest +AclBehaviorTest AclPost AclUser AclPerson #AclNodeTest TestDbAcl 'DbAroUserTest +DbAcoActionTest -DbPermissionTest DbAcoTest DbAroTest /DbAclNodeTestBase ;LogEngineCollectionTest +LoggerEngineLog 'SyslogLogTest #FileLogTest
 )ConsoleLogTest	 #TestCakeLog )TestConsoleLog #CakeLogTest 'MultibyteTest L10nTest I18nTest 'CakeEventTest 5CakeEventManagerTest ;CustomTestEventListener  7CakeEventTestListener 7ExceptionRendererTest ~ CMissingWidgetThingException} ?MyCustomExceptionRenderer| 3TestErrorController{ 1BlueberryComponentz /AuthBlueberryUsery -ErrorHandlerTestx ;FaultyExceptionRendererw !ObjectTestv +ObjectTestModelu !TestObjectt ;RequestActionControllers /RequestActionPostr 'ConfigureTestq )CakePluginTestp AppTesto %ScaffoldTestn -TestScaffoldMock$m KScaffoldMockControllerWithError%l MScaffoldMockControllerWithFieldsk 9ScaffoldMockControllerj 3PagesControllerTesti )ControllerTesth 7AnotherTestControllerg )Test2Componentf 'TestComponente )TestControllerd NameTestc +ControllerAliasb /ControllerComment!a EControllerCommentsController` )ControllerPost _ CControllerTestAppController^ ;ControllerMergeVarsTest] 5MergePostsController \ CMergeVarPluginAppController[ =MergeVariablesControllerZ /MergeVarComponentY 9MergeVarsAppControllerX 'ComponentTest W CSomethingWithEmailComponent$V KMutuallyReferencingTwoComponent$U KMutuallyReferencingOneComponentT +BananaComponentS +OrangeComponentR )AppleComponentQ ;ComponentTestControllerP 1ParamTestComponentO ;ComponentCollectionTestN 5CookieAliasComponentM 5SessionComponentTest L COrangeSessionTestControllerK 7SessionTestControllerJ 7SecurityComponentTestI =BrokenCallbackControllerH 9SecurityTestControllerG 7TestSecurityComponent F CRequestHandlerComponentTestE )CustomJsonView!D ERequestHandlerTestControllerC 9PaginatorComponentTestB 3PaginatorCustomPostA +PaginatorAuthor@ APaginatorControllerComment? ;ControllerPaginateModel> ;PaginatorControllerPost= ;PaginatorTestController< 1FlashComponentTest; 1EmailComponentTest: 3EmailTestController9 1DebugCompTransport8 1EmailTestComponent7 3CookieComponentTest"6 GCookieComponentTestController5 /AuthComponentTest4 7AuthEventTestListener3 1AjaxAuthController2 1AuthTestController1 AuthUser0 /TestAuthComponent/ 5TestBaseAuthenticate. 5FormAuthenticateTest- 9DigestAuthenticateTest, /CrudAuthorizeTest+ ;ControllerAuthorizeTest* =BlowfishAuthenticateTest) 7BasicAuthenticateTest( 5ActionsAuthorizeTest' -AclComponentTest& !PhpAclTest% !IniAclTest$ DbAclTest# %DbAclTwoTest" /PermissionTwoTest! !AcoTwoTest  !AroTwoTest 1AclNodeTwoTestBase 1TaskCollectionTest 3DbConfigAliasedTask ShellTest )TestBananaTask 'TestAppleTask )TestMergeShell )ShellTestShell 3ShellDispatcherTest 3TestShellDispatcher /HelpFormatterTest /ConsoleOutputTest ;ConsoleOptionParserTest ;ConsoleErrorHandlerTest    ~hSB$]A+jK7 s]N8#paE0$







{
p
]
B
3

 						o	Y	L	>	(		{fK4(tfYG-wgYA)~obXL5'|l\RA2#zS9l?                     X -ProductUpdateAllW 'UuidTagNoWithV #FruitNoWithU UuidTagT 'FruitsUuidTag
S Fruit	R TagBQ ArticleB*P WCounterCachePostNonstandardPrimaryKey*O WCounterCacheUserNonstandardPrimaryKeyN -CounterCachePostM -CounterCacheUserL /TranslatedArticleK 7TranslateArticleModelJ ;TranslatedItemWithTableI +TranslatedItem2H )TranslatedItemG 3TranslateWithPrefixF 1TranslateTestModel$E KUuiditemsUuidportfolioNumericidD 9UuiditemsUuidportfolioC UuiditemB 'UuidportfolioA /TestPluginComment@ /TestPluginArticle? Basket> FilmFile= )ContentAccount< Account; Content: AfterTree9 Ad8 Campaign7 UuidTree6 1UnconventionalTree5 FlagTree4 'NumberTreeTwo3 !NumberTree2 7MyCategoriesMyProduct1 1MyCategoriesMyUser0 MyProduct/ !MyCategory. MyUser- +OverallFavorite	, Book+ Cd
* Story) Product( +UnderscoreField' Person& +ValidationTest2% +ValidationTest1$ TheVoid# DataTest	" Uuid! 7CallbackPostTestModel  Callback -AssociationTest2 -AssociationTest1 Monkey ThePaper
 JoinC
 JoinB
 JoinA )SecondaryModel %PrimaryModel /DocumentDirectory Device Document 5ExteriorTypeCategory !FeatureSet 1DeviceTypeCategory !DeviceType
 Image Syfile )ItemsPortfolio	 Item Portfolio
 JoinThing	 'SomethingElse Something ModelD ModelC ModelB ModelA !Dependency	 Node +NodeNoAfterFind  3NodeAfterFindSample 'NodeAfterFind~ Bidding} )BiddingMessage| Bid{ Messagez Thready Projectx )ModifiedAuthorw Author	v Post	u Homet 'Advertisements )AnotherArticler Sample
q Applep )CategoryThreado Categoryn 1ModifiedAttachmentm !Attachmentl 7MergeVarPluginCommentk 1MergeVarPluginPostj 9MergeVarPluginAppModeli 5AgainModifiedCommenth +ModifiedCommentg Commentf 3ArticleFeaturedsTage #ArticlesTagd Tagc Featuredb +ArticleFeatureda Article10` )NumericArticle_ 3BeforeDeleteComment^ Article	] User\ %TestValidate[ TestAlias	Z TestY 'ModelReadTestX 5ModelIntegrationTestW DboMockV +ModelDeleteTestU ?ModelCrossSchemaHabtmTestT 3DatabaseSessionTestS -SessionTestModelR -CacheSessionTestQ 'DboSourceTestP 3DboSecondTestSourceO 'DboTestSourceN )MockDataSourceM MockPDOL )DataSourceTestK !TestSourceJ 'SqlserverTest I CSqlserverTestResultIteratorH =SqlserverClientTestModelG 1SqlserverTestModelF +SqlserverTestDbE !SqliteTestD +DboSqliteTestDbC %PostgresTestB ;PostgresClientTestModelA /PostgresTestModel@ /DboPostgresTestDb? MysqlTest> +CakeSessionTest= 3TestDatabaseSession< -TestCacheSession; +TestCakeSession: 7ConnectionManagerTest9 )CakeSchemaTest8 5SchemaPrefixAuthUser7 ASchemaCrossDatabaseFixture6 3SchemaCrossDatabase5 %Testdescribe4 )SchemaDatatype3 SchemaTag2 'SchemaComment1 !SchemaPost0 'TestAppSchema/ #MyAppSchema. 9BehaviorCollectionTest- Orangutan, 'ThirdBehavior+ )SecondBehavior* 'FirstBehavior) /TestAliasBehavior( 'Test7Behavior' 'Test6Behavior& 'Test5Behavior% 'Test4Behavior   [ q_M1veU='pcO:+~nX:~iO6




}
c
M
7
!						o	S	0	}gL7mI tV8rT5rbM8kWH1rUF,x[                     w 7TheHtmlTestControllerv )FormHelperTestu TestMailt %ValidateItems +ValidateProfiler %ValidateUserq OpenidUrlp UserFormo !ContactTagn 5ContactNonStandardPkm 1ContactTagsContactl Contactk 7ContactTestControllerj +FlashHelperTesti +CacheHelperTesth 3CacheTestControllerg XmlTestf XmlUsere !XmlArticled )ValidationTestc -TestDeValidationb -TestNlValidationa +CustomValidator` SetTest_ %SecurityTest^ %SanitizeTest] +SanitizeArticle\ -SanitizeDataTest[ 5ObjectCollectionTestZ ;GenericObjectCollectionY 1ThirdGenericObjectX 3SecondGenericObjectW 1FirstGenericObjectV 'GenericObjectU 'InflectorTestT HashTestS !FolderTestR FileTestQ %DebuggerTestP =DebuggerTestCaseDebuggerO /ClassRegistryTestN AClassRegistryAbstractModelM 1RegisterPrefixedDsL -RegisterCategoryK ;TestRegistryPluginModelJ 9RegistryPluginAppModelI 1RegisterArticleTagH ;RegisterArticleFeaturedG +RegisterArticleF 1ClassRegisterModelE %CakeTimeTestD %CakeTextTestC )CakeNumberTestB 9HtmlCoverageReportTestA 9CakeFixtureManagerTest@ 9ControllerTestCaseTest%? MControllerTestCaseTestController> +PostsController= /CakeTestSuiteTest< 3CakeTestFixtureTest; /FixturePrefixTest: 9FixtureImportTestModel(9 SCakeTestFixtureDefaultImportFixture!8 ECakeTestFixtureImportFixture7 1InvalidTestFixture6 1StringsTestFixture5 ACakeTestFixtureTestFixture4 -CakeTestCaseTest3 'SecondaryPost2 !RouterTest1 /RedirectRouteTest0 5PluginShortRouteTest/ 'CakeRouteTest. 3AssetDispatcherTest- )DispatcherTest, 5TestFilterDispatcher+ 5TimesheetsController* ?TestCachedPagesController) 3SomePostsController( 9ArticlesTestController' ?ArticlesTestAppController & CTestDispatchPagesController% 5OtherPagesController$ 3SomePagesController# 1MyPluginController%" MDispatcherTestAbstractController! 7MyPluginAppController  )TestDispatcher ADispatcherMockCakeResponse )HttpSocketTest )TestHttpSocket )CustomResponse 1TestAuthentication -HttpResponseTest -TestHttpResponse =DigestAuthenticationTest -DigestHttpSocket ;BasicAuthenticationTest /SmtpTransportTest /SmtpTestTransport /MailTransportTest 1DebugTransportTest 'CakeEmailTest +ExtendTransport +TestEmailConfig 'TestCakeEmail )CakeSocketTest -CakeResponseTest +CakeRequestTest
 +TestCakeRequest	 7CakeValidationSetTest 9CakeValidationRuleTest )ModelWriteTest TestPost !TestAuthor 9ValidationRuleBehavior 3ModelValidationTest 'BaseModelTest ModelTest   CArticlesTagBelongsToArticle /UserHasOneArticle~ Example} 'CustomArticle| %ArmorsPlayer
{ Armorz %GuildsPlayer
y Guildx Playerw #ScaffoldTagv +ScaffoldCommentu %ScaffoldUsert %ScaffoldMocks ;PrefixTestUseTableModelr +PrefixTestModelq )MysqlTestModelp -ArticleFeatured2o Comment2n Featured2m /CategoryFeatured2l Article2k Category2
j User2
i Group
h Levelg !TestModel9f !TestModel8e !TestModel7d !TestModel6c !TestModel5b 5TestModel4TestModel7a !TestModel4` !TestModel3_ !TestModel2^ TestModel] Domain	\ Site[ =TransactionManyTestModelZ 5TransactionTestModelY )GroupUpdateAll   ; mYA!kO;%	}hN<*|gL0oYA/	





u
c
M
4

					{	f	D	-	ygN;{^H)t[F%lS<"|hUB%lJ1lW?,dN;  #SiteFixture )SessionFixture 7SecondaryModelFixture 'SampleFixture )ProjectFixture ;ProductUpdateAllFixture
 )ProductFixture	 3PrimaryModelFixture /PrefixTestFixture +PostsTagFixture #PostFixture -PortfolioFixture 'PlayerFixture 'PersonFixture 9OverallFavoriteFixture 7NumericArticleFixture  5NumberTreeTwoFixture /NumberTreeFixture~ #NodeFixture} 'MyUserFixture| -MyProductFixture{ /MyCategoryFixturez AMyCategoriesMyUsersFixture"y GMyCategoriesMyProductsFixturex )MessageFixturew -JoinThingFixturev %JoinCFixtureu %JoinBFixturet %JoinAFixtures 'JoinACFixturer 'JoinABFixtureq 7ItemsPortfolioFixturep #ItemFixtureo #InnoFixturen %ImageFixturem #HomeFixturel 3GuildsPlayerFixturek %GuildFixturej 7GroupUpdateAllFixturei 5FruitsUuidTagFixtureh %FruitFixtureg +FlagTreeFixturef 1FixturizedTestCasee +FilmFileFixtured /FeatureSetFixturec +FeaturedFixture b CExteriorTypeCategoryFixturea 1DomainsSiteFixture` 'DomainFixture_ +DocumentFixture^ =DocumentDirectoryFixture] /DeviceTypeFixture\ ?DeviceTypeCategoryFixture[ 'DeviceFixtureZ /DependencyFixtureY +DatatypeFixtureX +DataTestFixture1W eCounterCacheUserNonstandardPrimaryKeyFixtureV ;CounterCacheUserFixture1U eCounterCachePostNonstandardPrimaryKeyFixtureT ;CounterCachePostFixtureS )ContentFixtureR 7ContentAccountFixtureQ )CommentFixtureP CdFixtureO 7CategoryThreadFixtureN +CategoryFixtureM +CampaignFixtureL +CallbackFixtureK 1CakeSessionFixtureJ 7CacheTestModelFixtureI #BookFixtureH /BinaryTestFixtureG !BidFixtureF 7BiddingMessageFixtureE )BiddingFixtureD 'BasketFixtureC )BakeTagFixtureB 1BakeCommentFixtureA ABakeArticlesBakeTagFixture@ 1BakeArticleFixture? +AuthUserFixture> AAuthUserCustomFieldFixture= 'AuthorFixture< /AttachmentFixture; 1AssertTagsTestCase: 1ArticlesTagFixture9 )ArticleFixture 8 CArticleFeaturedsTagsFixture7 9ArticleFeaturedFixture6 'AroTwoFixture5 /ArosAcoTwoFixture4 )ArosAcoFixture3 !AroFixture2 3ArmorsPlayerFixture1 %ArmorFixture0 %AppleFixture/ 7AnotherArticleFixture. -AfterTreeFixture- 5AdvertisementFixture, AdFixture+ 'AcoTwoFixture* !AcoFixture) -AcoActionFixture( )AccountFixture' #XmlViewTest& ViewTest% 7TestViewEventListener$ ?TestObjectWithoutToString# 9TestObjectWithToString" 7TestBeforeAfterHelper! TestView  'TestThemeView 5ThemePostsController 3ViewPostsController 'ThemeViewTest )TestTheme2View 7ThemePosts2Controller -ScaffoldViewTest AScaffoldViewMockController -TestScaffoldView 'MediaViewTest %JsonViewTest !HelperTest !TestHelper 1HelperTestPostsTag 'HelperTestTag /HelperTestComment )HelperTestPost 5HelperCollectionTest +HtmlAliasHelper )TimeHelperTest %CakeTimeMock 5TimeHelperTestObject
 )TextHelperTest	 %CakeTextMock 5TextHelperTestObject /SessionHelperTest 'RssHelperTest ?PrototypeEngineHelperTest 3PaginatorHelperTest -NumberHelperTest )CakeNumberMock 9NumberHelperTestObject  =MootoolsEngineHelperTest -JsBaseEngineTest~ %JsHelperTest} 1OptionEngineHelper| -JsEncodingObject{ 9JqueryEngineHelperTestz )HtmlHelperTesty +Html5TestHelperx )TestHtmlHelper   Q xX8tR1lP:#x^O=%s_K0





h
L
5

						g	I	#x^H0`L8"~dJ0vfVA1%yfTB(tbPB*	}mXA1  sbQ   3 PhpReader2 IniReader1 %XcacheEngine0 )WincacheEngine/ #RedisEngine. )MemcacheEngine- +MemcachedEngine, !FileEngine+ ApcEngine* #CacheEngine
) Cache( AppHelper' AppModel& +PagesController% 'AppController$ AppShell# )SessionsSchema" !I18nSchema! #DbAclSchema  XmlView ViewBlock	 View ThemeView %ScaffoldView MediaView JsonView -HelperCollection Helper !TimeHelper !TextHelper 'SessionHelper RssHelper 7PrototypeEngineHelper +PaginatorHelper %NumberHelper 5MootoolsEngineHelper JsHelper 1JsBaseEngineHelper 1JqueryEngineHelper !HtmlHelper !FormHelper
 #FlashHelper	 #CacheHelper Xml !Validation String Set Security Sanitize -ObjectCollection Inflector	  Hash Folder	~ File} Debugger| 'ClassRegistry{ CakeTimez CakeTexty !CakeNumberx -CakeTextReporterw -CakeHtmlReporterv -CakeBaseReporteru 'CakeTestModelt +CakeTestFixtures 1CakeFixtureManagerr 1TextCoverageReportq 1HtmlCoverageReportp 1BaseCoverageReporto 1ControllerTestCasen 9InterceptContentHelperm =ControllerTestDispatcherl ;CakeTestSuiteDispatcherk 5CakeTestSuiteCommandj 'CakeTestSuitei )CakeTestRunnerh )CakeTestLoaderg %CakeTestCasef %BananaHelpere ?ConfigureTestVendorSampled 'TestAppEnginec %WelcomeShellb 3TestPluginAppHelpera 3PluggedHelperHelper` /OtherHelperHelper_ ?SamplePluginClassTestName^ )ExampleExample] -TestPluginEngine\ )TestPluginPost[ 1TestPluginAuthUserZ /TestPluginAuthorsY 1TestPluginAppModelX +TestOtherSourceW /TestPluginSessionV !TestDriverU DboDummy#T ITestPluginPersisterTwoBehavior#S ITestPluginPersisterOneBehaviorR 9TestPluginOtherLibraryQ /TestPluginLibraryP TestRouteO 5TestDispatcherFilterN 7Test2DispatcherFilterM 'TestPluginLog L CTestPluginExceptionRendererK )CustomLibClassJ 7TestPluginCacheEngineI +TestsControllerH 5TestPluginControllerG ;TestPluginAppControllerF =TestPluginOtherComponentE 3TestPluginComponentD -PluginsComponentC )OtherComponentB +TestPluginShellA 'OtherTaskTask@ %ExampleShell? 3TestPluginAppSchema> %PersisterTwo= %PersisterOne< Extract; #Test2Source: -Test2OtherSource9 /TestAppLibSession8 +TestLocalDriver!7 EPersisterTwoBehaviorBehavior!6 EPersisterOneBehaviorBehavior5 -TestUtilityClass4 !TestAppLog3 Library2 1TestAppCacheEngine1 ?TestAppsExceptionRenderer0 =TestsAppsPostsController/ 3TestsAppsController. 7TestConfigsController- ;TestAppsErrorController, #SampleShell+ +UuidTreeFixture* )UuidTagFixture) 5UuidportfolioFixture+( YUuiditemsUuidportfolioNumericidFixture"' GUuiditemsUuidportfolioFixture& +UuiditemFixture% #UuidFixture$ #UserFixture# +UnsignedFixture" 9UnderscoreFieldFixture! ?UnconventionalTreeFixture  ATranslateWithPrefixFixture 7TranslateTableFixture -TranslateFixture 7TranslatedItemFixture =TranslatedArticleFixture ;TranslateArticleFixture 'ThreadFixture 9ThePaperMonkiesFixture =TestPluginCommentFixture =TestPluginArticleFixture !TagFixture 'SyfileFixture %StoryFixture /StoriesTagFixture -SomethingFixture 5SomethingElseFixture   X {hUE2xgQ="sX@+}iK3iQ5 	





s
b
G
5
%

							s	V	<	#	qP0zW:vN:$|aB1vkZO<!q`N=)q]K2!jX[ !DispatcherZ 1HttpSocketResponseY !HttpSocketX %HttpResponseW 5DigestAuthenticationV 3BasicAuthenticationU 'SmtpTransportT 'MailTransportS )DebugTransportR CakeEmailQ /AbstractTransportP !CakeSocketO %CakeResponseN #CakeRequestM /CakeValidationSetL 1CakeValidationRuleK !PermissionJ )ModelValidatorI 'ModelBehavior
H ModelG I18nModelF +DatabaseSessionE %CacheSessionD DboSourceC !DataSourceB SqlserverA Sqlite@ Postgres
? Mysql> #CakeSession= /ConnectionManager< !CakeSchema; 1BehaviorCollection: %TreeBehavior9 /TranslateBehavior8 3ContainableBehavior7 #AclBehavior6 Aro5 AcoAction4 Aco3 AclNode2 3LogEngineCollection1 SyslogLog0 FileLog/ !ConsoleLog. BaseLog- CakeLog, Multibyte	+ L10n	* I18n) -CakeEventManager( CakeEvent' ;NotImplementedException& 3FatalErrorException% -ConsoleException$ %XmlException# +SocketException" 1ConfigureException! 5CakeSessionException  -CakeLogException +RouterException )CacheException %AclException% MMissingDispatcherFilterException 9MissingPluginException AMissingTestLoaderException 7MissingModelException 7MissingTableException AMissingDatasourceException% MMissingDatasourceConfigException 7MissingShellException  CMissingShellMethodException 5MissingTaskException AMissingConnectionException =MissingDatabaseException 9MissingHelperException 9MissingLayoutException 5MissingViewException =MissingBehaviorException ?MissingComponentException 9PrivateActionException
 9MissingActionException	 AMissingControllerException 'CakeException 9InternalErrorException ?MethodNotAllowedException /NotFoundException 1ForbiddenException 7UnauthorizedException 3BadRequestException 'HttpException  /CakeBaseException /ExceptionRenderer~ %ErrorHandler} Object| Configure{ !CakePluginz Appy Scaffoldx !Controllerw 3ComponentCollectionv Componentu -SessionComponentt /SecurityComponents ;RequestHandlerComponentr 1PaginatorComponentq )FlashComponentp )EmailComponento +CookieComponentn 'AuthComponentm 5SimplePasswordHasherl -FormAuthenticatek 1DigestAuthenticatej 'CrudAuthorizei 3ControllerAuthorizeh 9BlowfishPasswordHasherg 5BlowfishAuthenticatef /BasicAuthenticatee 'BaseAuthorized -BaseAuthenticatec -ActionsAuthorizeb 9AbstractPasswordHashera %AclComponent` PhpAro_ PhpAco^ PhpAcl] IniAcl
\ DbAcl[ 3CakeErrorControllerZ %AllTestsTestY )TaskCollectionX +ShellDispatcher
W ShellV 'HelpFormatterU -TableShellHelperT 3ProgressShellHelperS +BaseShellHelperR 'ConsoleOutputQ 3ConsoleOptionParserP 9ConsoleInputSubcommandO 1ConsoleInputOptionN 5ConsoleInputArgumentM %ConsoleInputL 3ConsoleErrorHandlerK %UpgradeShellJ )TestsuiteShellI TestShellH ViewTaskG TestTaskF %TemplateTaskE #ProjectTaskD !PluginTaskC ModelTaskB #FixtureTaskA #ExtractTask@ %DbConfigTask? )ControllerTask> #CommandTask= BakeTask< #ServerShell; #SchemaShell: I18nShell9 %ConsoleShell8 +CompletionShell7 -CommandListShell6 BakeShell5 ApiShell4 AclShell   E |nVB)waF4iN3r]I5!
gP9&






l
U
B
*
						k	W	B	-	gL6 qXD3!fH,}X=#	|];$	qS3eF0|^E               r /MergeVarComponentq 9MergeVarsAppControllerp 'ComponentTest o CSomethingWithEmailComponent$n KMutuallyReferencingTwoComponent$m KMutuallyReferencingOneComponentl +BananaComponentk +OrangeComponentj )AppleComponenti ;ComponentTestControllerh 1ParamTestComponentg ;ComponentCollectionTestf 5CookieAliasComponente 5SessionComponentTest d COrangeSessionTestControllerc 7SessionTestControllerb 7SecurityComponentTesta =BrokenCallbackController` 9SecurityTestController_ 7TestSecurityComponent ^ CRequestHandlerComponentTest] )CustomJsonView!\ ERequestHandlerTestController[ 9PaginatorComponentTestZ 3PaginatorCustomPostY +PaginatorAuthorX APaginatorControllerCommentW ;ControllerPaginateModelV ;PaginatorControllerPostU ;PaginatorTestControllerT 1FlashComponentTestS 1EmailComponentTestR 3EmailTestControllerQ 1DebugCompTransportP 1EmailTestComponentO 3CookieComponentTest"N GCookieComponentTestControllerM /AuthComponentTestL 7AuthEventTestListenerK 1AjaxAuthControllerJ 1AuthTestControllerI AuthUserH /TestAuthComponentG 5TestBaseAuthenticateF 5FormAuthenticateTestE 9DigestAuthenticateTestD /CrudAuthorizeTestC ;ControllerAuthorizeTestB =BlowfishAuthenticateTestA 7BasicAuthenticateTest@ 5ActionsAuthorizeTest? -AclComponentTest> !PhpAclTest= !IniAclTest< DbAclTest; %DbAclTwoTest: /PermissionTwoTest9 !AcoTwoTest8 !AroTwoTest7 1AclNodeTwoTestBase6 1TaskCollectionTest5 3DbConfigAliasedTask4 ShellTest3 )TestBananaTask2 'TestAppleTask1 )TestMergeShell0 )ShellTestShell/ 3ShellDispatcherTest. 3TestShellDispatcher- /HelpFormatterTest, 5TableShellHelperTest+ ;ProgressShellHelperTest* /ConsoleOutputTest) ;ConsoleOptionParserTest( ;ConsoleErrorHandlerTest' 'TestShellTest& 'TestTestShell% %ViewTaskTest$ AViewTaskArticlesController# AViewTaskCommentsController" +ViewTaskArticle! +ViewTaskComment  %TestTaskTest ATestTaskCommentsController +TestTaskComment -TestTaskAppModel #TestTaskTag +TestTaskArticle -TemplateTaskTest +ProjectTaskTest )PluginTaskTest 'ModelTaskTest +FixtureTaskTest +ExtractTaskTest -DbConfigTaskTest 1ControllerTaskTest #BakeArticle +CommandTaskTest +SchemaShellTest 7SchemaShellTestSchema 3CompletionShellTest ATestCompletionStringOutput 5CommandListShellTest -TestStringOutput
 'BakeShellTest	 +UsersController %ApiShellTest %AclShellTest %AllTasksTest 'AllShellsTest 1AllConsoleLibsTest 'PhpReaderTest 'IniReaderTest -XcacheEngineTest  1WincacheEngineTest +RedisEngineTest~ 1MemcacheEngineTest} 1TestMemcacheEngine| 3MemcachedEngineTest{ 3TestMemcachedEnginez )FileEngineTesty 'ApcEngineTestx CacheTestw !BasicsTestv #AllViewTestu )AllUtilityTestt -AllTestSuiteTests AllTestsr )AllRoutingTestq )AllNetworkTestp !AllLogTesto 3AllLocalizationTestn )AllHelpersTestm %AllEventTestl %AllErrorTestk -AllDbRelatedTestj +AllDatabaseTesti #AllCoreTesth 1AllControllersTestg )AllConsoleTestf -AllConfigureTeste /AllComponentsTestd %AllCacheTestc -AllBehaviorsTestb Routera 'RedirectRoute` -PluginShortRoute_ CakeRoute^ +CacheDispatcher] +AssetDispatcher\ -DispatcherFilter   c _I%qV8jK9"jG*u_L6#






n
Y
H
5
$

					x	Z	B	&	{fP;*gE)kR3m[E6 oXI-scXE*gWA4&rc                    Bidding )BiddingMessage Bid Message Thread Project )ModifiedAuthor Author	 Post	 Home 'Advertisement )AnotherArticle
 Sample
	 Apple )CategoryThread Category 1ModifiedAttachment !Attachment 7MergeVarPluginComment 1MergeVarPluginPost 9MergeVarPluginAppModel 5AgainModifiedComment  +ModifiedComment Comment~ 3ArticleFeaturedsTag} #ArticlesTag| Tag{ Featuredz +ArticleFeaturedy Article10x )NumericArticlew 3BeforeDeleteCommentv Article	u Usert %TestValidates TestAlias	r Testq 'ModelReadTestp 5ModelIntegrationTesto DboMockn +ModelDeleteTestm ?ModelCrossSchemaHabtmTestl 3DatabaseSessionTestk -SessionTestModelj -CacheSessionTesti 'DboSourceTesth 3DboSecondTestSourceg 'DboTestSourcef )MockDataSourcee MockPDOd )DataSourceTestc !TestSourceb 'SqlserverTest a CSqlserverTestResultIterator` =SqlserverClientTestModel_ 1SqlserverTestModel^ +SqlserverTestDb] !SqliteTest\ +DboSqliteTestDb[ %PostgresTestZ ;PostgresClientTestModelY /PostgresTestModelX /DboPostgresTestDbW MysqlTestV +CakeSessionTestU 3TestDatabaseSessionT -TestCacheSessionS +TestCakeSessionR 7ConnectionManagerTestQ )CakeSchemaTestP 5SchemaPrefixAuthUserO ASchemaCrossDatabaseFixtureN 3SchemaCrossDatabaseM %TestdescribeL )SchemaDatatypeK SchemaTagJ 'SchemaCommentI !SchemaPostH 'TestAppSchemaG #MyAppSchemaF 9BehaviorCollectionTestE OrangutanD 'ThirdBehaviorC )SecondBehaviorB 'FirstBehaviorA /TestAliasBehavior@ 'Test7Behavior? 'Test6Behavior> 'Test5Behavior= 'Test4Behavior< 'Test3Behavior; 'Test2Behavior: %TestBehavior9 5TreeBehaviorUuidTest8 -TreeBehaviorTest7 9TreeBehaviorScopedTest6 9TreeBehaviorNumberTest5 7TreeBehaviorAfterTest4 7TranslateBehaviorTest3 ;ContainableBehaviorTest2 +AclBehaviorTest1 AclPost0 AclUser/ AclPerson. #AclNodeTest- TestDbAcl, 'DbAroUserTest+ +DbAcoActionTest* -DbPermissionTest) DbAcoTest( DbAroTest' /DbAclNodeTestBase& ;LogEngineCollectionTest% +LoggerEngineLog$ 'SyslogLogTest# #FileLogTest" )ConsoleLogTest! #TestCakeLog  )TestConsoleLog #CakeLogTest 'MultibyteTest L10nTest I18nTest 'CakeEventTest 5CakeEventManagerTest ;CustomTestEventListener 7CakeEventTestListener 7ExceptionRendererTest  CMissingWidgetThingException ?MyCustomExceptionRenderer 3TestErrorController 1BlueberryComponent /AuthBlueberryUser -ErrorHandlerTest ;FaultyExceptionRenderer !ObjectTest +ObjectTestModel !TestObject ;RequestActionController /RequestActionPost
 'ConfigureTest	 )CakePluginTest AppTest %ScaffoldTest -TestScaffoldMock$ KScaffoldMockControllerWithError% MScaffoldMockControllerWithFields 9ScaffoldMockController 3PagesControllerTest )ControllerTest  7AnotherTestController )Test2Component~ 'TestComponent} )TestController| NameTest{ +ControllerAliasz /ControllerComment!y EControllerCommentsControllerx )ControllerPost w CControllerTestAppControllerv ;ControllerMergeVarsTestu 5MergePostsController t CMergeVarPluginAppControllers =MergeVariablesController   n qcR=,tfM9#	ueV?(oR@+t[B-





v
W
:
!
						{	n	Y	J	7	"	
{iW;)o_G1zmYD5xbD'sY@'nT>({`D! n        E 5TestFilterDispatcherD 5TimesheetsControllerC ?TestCachedPagesControllerB 3SomePostsControllerA 9ArticlesTestController@ ?ArticlesTestAppController ? CTestDispatchPagesController> 5OtherPagesController= 3SomePagesController< 1MyPluginController%; MDispatcherTestAbstractController: 7MyPluginAppController9 )TestDispatcher8 ADispatcherMockCakeResponse7 )HttpSocketTest6 )TestHttpSocket5 )CustomResponse4 1TestAuthentication3 -HttpResponseTest2 -TestHttpResponse1 =DigestAuthenticationTest0 -DigestHttpSocket/ ;BasicAuthenticationTest. /TestSslHttpSocket- /SmtpTransportTest, /SmtpTestTransport+ /MailTransportTest* 1DebugTransportTest) 'CakeEmailTest( +ExtendTransport' +TestEmailConfig& 'TestCakeEmail% )CakeSocketTest$ -CakeResponseTest# +CakeRequestTest" +TestCakeRequest! 7CakeValidationSetTest  9CakeValidationRuleTest )ModelWriteTest TestPost !TestAuthor 9ValidationRuleBehavior 3ModelValidationTest 'BaseModelTest ModelTest  CArticlesTagBelongsToArticle /UserHasOneArticle Example 'CustomArticle %ArmorsPlayer
 Armor %GuildsPlayer
 Guild Player #ScaffoldTag +ScaffoldComment %ScaffoldUser %ScaffoldMock ;PrefixTestUseTableModel
 +PrefixTestModel	 )MysqlTestModel -ArticleFeatured2 Comment2 Featured2 /CategoryFeatured2 Article2 Category2
 User2
 Group
  Level !TestModel9~ !TestModel8} !TestModel7| !TestModel6{ !TestModel5z 5TestModel4TestModel7y !TestModel4x !TestModel3w !TestModel2v TestModelu Domain	t Sites =TransactionManyTestModelr 5TransactionTestModelq )GroupUpdateAllp -ProductUpdateAllo 'UuidTagNoWithn #FruitNoWithm UuidTagl 'FruitsUuidTag
k Fruit	j TagBi ArticleB*h WCounterCachePostNonstandardPrimaryKey*g WCounterCacheUserNonstandardPrimaryKeyf -CounterCachePoste -CounterCacheUserd /TranslatedArticlec 7TranslateArticleModelb ;TranslatedItemWithTablea +TranslatedItem2` )TranslatedItem_ 3TranslateWithPrefix^ 1TranslateTestModel$] KUuiditemsUuidportfolioNumericid\ 9UuiditemsUuidportfolio[ UuiditemZ 'UuidportfolioY /TestPluginCommentX /TestPluginArticleW BasketV FilmFileU )ContentAccountT AccountS ContentR AfterTreeQ AdP CampaignO UuidTreeN 1UnconventionalTreeM FlagTreeL 'NumberTreeTwoK !NumberTreeJ 7MyCategoriesMyProductI 1MyCategoriesMyUserH MyProductG !MyCategoryF MyUserE +OverallFavorite	D BookC Cd
B StoryA Product@ +UnderscoreField? Person> +ValidationTest2= +ValidationTest1< TheVoid; DataTest	: Uuid9 7CallbackPostTestModel8 Callback7 -AssociationTest26 -AssociationTest15 Monkey4 ThePaper
3 JoinC
2 JoinB
1 JoinA0 )SecondaryModel/ %PrimaryModel. /DocumentDirectory- Device, Document+ 5ExteriorTypeCategory* !FeatureSet) 1DeviceTypeCategory( !DeviceType
' Image& Syfile% )ItemsPortfolio	$ Item# Portfolio" JoinThing! 'SomethingElse  Something ModelD ModelC ModelB ModelA !Dependency	 Node +NodeNoAfterFind 3NodeAfterFindSample 'NodeAfterFind   W s^F$
jO6jVB(iG.iO0







g
Q
?
0
!
						v	d	T	C	/		~`H.{ZE,mW>)pS=(pSC0yeQ6$oU<'mW                           _ )BiddingFixture^ 'BasketFixture] )BakeTagFixture\ 1BakeCommentFixture[ ABakeArticlesBakeTagFixtureZ 1BakeArticleFixtureY +AuthUserFixtureX AAuthUserCustomFieldFixtureW 'AuthorFixtureV /AttachmentFixtureU 1AssertTagsTestCaseT 1ArticlesTagFixtureS )ArticleFixture R CArticleFeaturedsTagsFixtureQ 9ArticleFeaturedFixtureP 'AroTwoFixtureO /ArosAcoTwoFixtureN )ArosAcoFixtureM !AroFixtureL 3ArmorsPlayerFixtureK %ArmorFixtureJ %AppleFixtureI 7AnotherArticleFixtureH -AfterTreeFixtureG 5AdvertisementFixtureF AdFixtureE 'AcoTwoFixtureD !AcoFixtureC -AcoActionFixtureB )AccountFixtureA #XmlViewTest@ ViewTest? 7TestViewEventListener> ?TestObjectWithoutToString= 9TestObjectWithToString< 7TestBeforeAfterHelper; TestView: 'TestThemeView9 5ThemePostsController8 3ViewPostsController7 'ThemeViewTest6 )TestTheme2View5 7ThemePosts2Controller4 -ScaffoldViewTest3 AScaffoldViewMockController2 -TestScaffoldView1 'MediaViewTest0 %JsonViewTest/ !HelperTest. !TestHelper- 1HelperTestPostsTag, 'HelperTestTag+ /HelperTestComment* )HelperTestPost) 5HelperCollectionTest( +HtmlAliasHelper' )TimeHelperTest& %CakeTimeMock% 5TimeHelperTestObject$ )TextHelperTest# %CakeTextMock" 5TextHelperTestObject! /SessionHelperTest  'RssHelperTest ?PrototypeEngineHelperTest 3PaginatorHelperTest -NumberHelperTest )CakeNumberMock 9NumberHelperTestObject =MootoolsEngineHelperTest -JsBaseEngineTest %JsHelperTest 1OptionEngineHelper -JsEncodingObject 9JqueryEngineHelperTest )HtmlHelperTest +Html5TestHelper )TestHtmlHelper 7TheHtmlTestController )FormHelperTest TestMail %ValidateItem +ValidateProfile %ValidateUser OpenidUrl
 UserForm	 !ContactTag 5ContactNonStandardPk 1ContactTagsContact Contact 7ContactTestController +FlashHelperTest +CacheHelperTest 3CacheTestController XmlTest  XmlUser !XmlArticle~ )ValidationTest} -TestDeValidation| -TestNlValidation{ +CustomValidatorz SetTesty %SecurityTestx %SanitizeTestw +SanitizeArticlev -SanitizeDataTestu 5ObjectCollectionTestt ;GenericObjectCollections 1ThirdGenericObjectr 3SecondGenericObjectq 1FirstGenericObjectp 'GenericObjecto 'InflectorTestn HashTestm !FolderTestl FileTestk %DebuggerTestj =DebuggerTestCaseDebuggeri /ClassRegistryTesth AClassRegistryAbstractModelg 1RegisterPrefixedDsf -RegisterCategorye ;TestRegistryPluginModeld 9RegistryPluginAppModelc 1RegisterArticleTagb ;RegisterArticleFeatureda +RegisterArticle` 1ClassRegisterModel_ %CakeTimeTest^ %CakeTextTest] )CakeNumberTest\ 7ConsoleOutputStubTest[ 9HtmlCoverageReportTestZ 9CakeFixtureManagerTestY 9ControllerTestCaseTest%X MControllerTestCaseTestControllerW +PostsControllerV /CakeTestSuiteTestU 3CakeTestFixtureTestT /FixturePrefixTestS 9FixtureImportTestModel(R SCakeTestFixtureDefaultImportFixture!Q ECakeTestFixtureImportFixtureP 1InvalidTestFixtureO 1StringsTestFixtureN ACakeTestFixtureTestFixtureM -CakeTestCaseTestL 'SecondaryPostK !RouterTestJ /RedirectRouteTestI 5PluginShortRouteTestH 'CakeRouteTestG 3AssetDispatcherTestF )DispatcherTest   6 nW@)_@vV?*uaE(zeQ=)





n
[
B
&
								f	K	5		 qXD/kN6{d?y^>kR:'gL,oR6%gP6      s 1TestPluginAppModelr +TestOtherSourceq /TestPluginSessionp !TestDrivero DboDummy#n ITestPluginPersisterTwoBehavior#m ITestPluginPersisterOneBehaviorl 9TestPluginOtherLibraryk /TestPluginLibraryj TestRoutei 5TestDispatcherFilterh 7Test2DispatcherFilterg 'TestPluginLog f CTestPluginExceptionRenderere )CustomLibClassd 7TestPluginCacheEnginec +TestsControllerb 5TestPluginControllera ;TestPluginAppController` =TestPluginOtherComponent_ 3TestPluginComponent^ -PluginsComponent] )OtherComponent\ +TestPluginShell[ 'OtherTaskTaskZ %ExampleShellY 3TestPluginAppSchemaX %PersisterTwoW %PersisterOneV ExtractU #Test2SourceT -Test2OtherSourceS /TestAppLibSessionR +TestLocalDriver!Q EPersisterTwoBehaviorBehavior!P EPersisterOneBehaviorBehaviorO -TestUtilityClassN !TestAppLogM LibraryL 1TestAppCacheEngineK ?TestAppsExceptionRendererJ =TestsAppsPostsControllerI 3TestsAppsControllerH 7TestConfigsControllerG ;TestAppsErrorControllerF #SampleShellE +UuidTreeFixtureD )UuidTagFixtureC 5UuidportfolioFixture+B YUuiditemsUuidportfolioNumericidFixture"A GUuiditemsUuidportfolioFixture@ +UuiditemFixture? #UuidFixture> #UserFixture= +UnsignedFixture< 9UnderscoreFieldFixture; ?UnconventionalTreeFixture: ATranslateWithPrefixFixture9 7TranslateTableFixture8 -TranslateFixture7 7TranslatedItemFixture6 =TranslatedArticleFixture5 ;TranslateArticleFixture4 'ThreadFixture3 9ThePaperMonkiesFixture2 =TestPluginCommentFixture1 =TestPluginArticleFixture0 !TagFixture/ 'SyfileFixture. %StoryFixture- /StoriesTagFixture, -SomethingFixture+ 5SomethingElseFixture* #SiteFixture) )SessionFixture( 7SecondaryModelFixture' 'SampleFixture& )ProjectFixture% ;ProductUpdateAllFixture$ )ProductFixture# 3PrimaryModelFixture" /PrefixTestFixture! +PostsTagFixture  #PostFixture -PortfolioFixture 'PlayerFixture 'PersonFixture 9OverallFavoriteFixture 7NumericArticleFixture 5NumberTreeTwoFixture /NumberTreeFixture #NodeFixture 'MyUserFixture -MyProductFixture /MyCategoryFixture AMyCategoriesMyUsersFixture" GMyCategoriesMyProductsFixture )MessageFixture -JoinThingFixture %JoinCFixture %JoinBFixture %JoinAFixture 'JoinACFixture 'JoinABFixture 7ItemsPortfolioFixture
 #ItemFixture	 #InnoFixture %ImageFixture #HomeFixture 3GuildsPlayerFixture %GuildFixture 7GroupUpdateAllFixture 5FruitsUuidTagFixture %FruitFixture +FlagTreeFixture  1FixturizedTestCase +FilmFileFixture~ /FeatureSetFixture} +FeaturedFixture | CExteriorTypeCategoryFixture{ 1DomainsSiteFixturez 'DomainFixturey +DocumentFixturex =DocumentDirectoryFixturew /DeviceTypeFixturev ?DeviceTypeCategoryFixtureu 'DeviceFixturet /DependencyFixtures +DatatypeFixturer +DataTestFixture1q eCounterCacheUserNonstandardPrimaryKeyFixturep ;CounterCacheUserFixture1o eCounterCachePostNonstandardPrimaryKeyFixturen ;CounterCachePostFixturem )ContentFixturel 7ContentAccountFixturek )CommentFixturej CdFixturei 7CategoryThreadFixtureh +CategoryFixtureg +CampaignFixturef +CallbackFixturee 1CakeSessionFixtured 7CacheTestModelFixturec #BookFixtureb /BinaryTestFixturea !BidFixture` 7BiddingMessageFixture   r hO4{fJ+kT?'{maP8(~dT8$







p
_
K
:
.

								v	i	V	E	3		v^G3"xfS?/aF1i\N@2$xZ?*jK2	x_F1r          # 'CakeException" 9InternalErrorException! ?MethodNotAllowedException  /NotFoundException 1ForbiddenException 7UnauthorizedException 3BadRequestException 'HttpException /CakeBaseException /ExceptionRenderer %ErrorHandler Configure !CakePlugin !CakeObject App Scaffold !Controller 3ComponentCollection Component -SessionComponent /SecurityComponent ;RequestHandlerComponent 1PaginatorComponent )FlashComponent )EmailComponent
 +CookieComponent	 'AuthComponent 5SimplePasswordHasher -FormAuthenticate 1DigestAuthenticate 'CrudAuthorize 3ControllerAuthorize 9BlowfishPasswordHasher 5BlowfishAuthenticate /BasicAuthenticate  'BaseAuthorize -BaseAuthenticate~ -ActionsAuthorize} 9AbstractPasswordHasher| %AclComponent{ PhpAroz PhpAcoy PhpAclx IniAcl
w DbAclv 3CakeErrorControlleru %AllTestsTestt )TaskCollections +ShellDispatcher
r Shellq 'HelpFormatterp -TableShellHelpero 3ProgressShellHelpern +BaseShellHelperm 'ConsoleOutputl 3ConsoleOptionParserk 9ConsoleInputSubcommandj 1ConsoleInputOptioni 5ConsoleInputArgumenth %ConsoleInputg 3ConsoleErrorHandlerf %UpgradeShelle )TestsuiteShelld TestShellc ViewTaskb TestTaska %TemplateTask` #ProjectTask_ !PluginTask^ ModelTask] #FixtureTask\ #ExtractTask[ %DbConfigTaskZ )ControllerTaskY #CommandTaskX BakeTaskW #ServerShellV #SchemaShellU I18nShellT %ConsoleShellS +CompletionShellR -CommandListShellQ BakeShellP ApiShellO AclShellN PhpReaderM IniReaderL %XcacheEngineK )WincacheEngineJ #RedisEngineI )MemcacheEngineH +MemcachedEngineG !FileEngineF ApcEngineE #CacheEngine
D CacheC AppHelperB AppModelA +PagesController@ 'AppController? AppShell> )SessionsSchema= !I18nSchema< #DbAclSchema; XmlView: ViewBlock	9 View8 ThemeView7 %ScaffoldView6 MediaView5 JsonView4 -HelperCollection3 Helper2 !TimeHelper1 !TextHelper0 'SessionHelper/ RssHelper. 7PrototypeEngineHelper- +PaginatorHelper, %NumberHelper+ 5MootoolsEngineHelper* JsHelper) 1JsBaseEngineHelper( 1JqueryEngineHelper' !HtmlHelper& !FormHelper% #FlashHelper$ #CacheHelper# Xml" !Validation! String  Set Security Sanitize -ObjectCollection Inflector	 Hash Folder	 File Debugger 'ClassRegistry CakeTime CakeText !CakeNumber /ConsoleOutputStub -CakeTextReporter -CakeHtmlReporter -CakeBaseReporter 'CakeTestModel +CakeTestFixture 1CakeFixtureManager 1TextCoverageReport 1HtmlCoverageReport
 1BaseCoverageReport	 1ControllerTestCase 9InterceptContentHelper =ControllerTestDispatcher ;CakeTestSuiteDispatcher 5CakeTestSuiteCommand 'CakeTestSuite )CakeTestRunner )CakeTestLoader %CakeTestCase  %BananaHelper ?ConfigureTestVendorSample~ 'TestAppEngine} %WelcomeShell| 3TestPluginAppHelper{ 3PluggedHelperHelperz /OtherHelperHelpery ?SamplePluginClassTestNamex )ExampleExamplew -TestPluginEnginev )TestPluginPostu 1TestPluginAuthUsert /TestPluginAuthors   _ aE'	kC!kU>&
sbJ>2!mR9%








n
Z
C
2
%
							|	c	R	<	'	qZC2jW@( iS@.qW?*~fJ(}fO:$zfO8x_                   E /ConsoleOutputTestD ;ConsoleOptionParserTestC ;ConsoleErrorHandlerTestB 'TestShellTestA 'TestTestShell@ %ViewTaskTest? AViewTaskArticlesController> AViewTaskCommentsController= +ViewTaskArticle< +ViewTaskComment; %TestTaskTest: ATestTaskCommentsController9 +TestTaskComment8 -TestTaskAppModel7 #TestTaskTag6 +TestTaskArticle5 -TemplateTaskTest4 +ProjectTaskTest3 )PluginTaskTest2 'ModelTaskTest1 +FixtureTaskTest0 +ExtractTaskTest/ -DbConfigTaskTest. 1ControllerTaskTest- #BakeArticle, +CommandTaskTest+ +SchemaShellTest* 7SchemaShellTestSchema) 3CompletionShellTest( ATestCompletionStringOutput' 5CommandListShellTest& -TestStringOutput% 'BakeShellTest$ +UsersController# %ApiShellTest" %AclShellTest! %AllTasksTest  'AllShellsTest 1AllConsoleLibsTest 'PhpReaderTest 'IniReaderTest -XcacheEngineTest 1WincacheEngineTest +RedisEngineTest 1MemcacheEngineTest 1TestMemcacheEngine 3MemcachedEngineTest 3TestMemcachedEngine )FileEngineTest 'ApcEngineTest CacheTest !BasicsTest #AllViewTest )AllUtilityTest -AllTestSuiteTest AllTests )AllRoutingTest )AllNetworkTest !AllLogTest
 3AllLocalizationTest	 )AllHelpersTest %AllEventTest %AllErrorTest -AllDbRelatedTest +AllDatabaseTest #AllCoreTest 1AllControllersTest )AllConsoleTest -AllConfigureTest  /AllComponentsTest %AllCacheTest~ -AllBehaviorsTest} Router| 'RedirectRoute{ -PluginShortRoutez CakeRoutey +CacheDispatcherx +AssetDispatcherw -DispatcherFilterv !Dispatcheru 1HttpSocketResponset !HttpSockets %HttpResponser 5DigestAuthenticationq 3BasicAuthenticationp 'SmtpTransporto 'MailTransportn )DebugTransportm CakeEmaill /AbstractTransportk !CakeSocketj %CakeResponsei #CakeRequesth /CakeValidationSetg 1CakeValidationRulef !Permissione )ModelValidatord 'ModelBehavior
c Modelb I18nModela +DatabaseSession` %CacheSession_ DboSource^ !DataSource] Sqlserver\ Sqlite[ Postgres
Z MysqlY #CakeSessionX /ConnectionManagerW !CakeSchemaV 1BehaviorCollectionU %TreeBehaviorT /TranslateBehaviorS 3ContainableBehaviorR #AclBehaviorQ AroP AcoActionO AcoN AclNodeM 3LogEngineCollectionL SyslogLogK FileLogJ !ConsoleLogI BaseLogH CakeLogG Multibyte	F L10n	E I18nD -CakeEventManagerC CakeEventB ;NotImplementedExceptionA 3FatalErrorException@ -ConsoleException? %XmlException> +SocketException= 1ConfigureException< 5CakeSessionException; -CakeLogException: +RouterException9 )CacheException8 %AclException%7 MMissingDispatcherFilterException6 9MissingPluginException5 AMissingTestLoaderException4 7MissingModelException3 7MissingTableException2 AMissingDatasourceException%1 MMissingDatasourceConfigException0 7MissingShellException / CMissingShellMethodException. 5MissingTaskException- AMissingConnectionException, =MissingDatabaseException+ 9MissingHelperException* 9MissingLayoutException) 5MissingViewException( =MissingBehaviorException' ?MissingComponentException& 9PrivateActionException% 9MissingActionException$ AMissingControllerException   > v`J5n]K9!rV:!gM3eN3




}
]
@
#
 					p	Z	C	,	oO,{dT>)X@,{\D+xY=(ybC*qZ;}hS>                X 'Test4BehaviorW 'Test3BehaviorV 'Test2BehaviorU %TestBehaviorT 5TreeBehaviorUuidTestS -TreeBehaviorTestR 9TreeBehaviorScopedTestQ 9TreeBehaviorNumberTestP 7TreeBehaviorAfterTestO 7TranslateBehaviorTestN ;ContainableBehaviorTestM +AclBehaviorTestL AclPostK AclUserJ AclPersonI #AclNodeTestH TestDbAclG 'DbAroUserTestF +DbAcoActionTestE -DbPermissionTestD DbAcoTestC DbAroTestB /DbAclNodeTestBaseA ;LogEngineCollectionTest@ +LoggerEngineLog? 'SyslogLogTest> #FileLogTest= )ConsoleLogTest< #TestCakeLog; )TestConsoleLog: #CakeLogTest9 'MultibyteTest8 L10nTest7 I18nTest6 'CakeEventTest5 5CakeEventManagerTest4 ;CustomTestEventListener3 7CakeEventTestListener2 7ExceptionRendererTest 1 CMissingWidgetThingException0 ?MyCustomExceptionRenderer/ 3TestErrorController. 1BlueberryComponent- /AuthBlueberryUser, -ErrorHandlerTest+ ;FaultyExceptionRenderer* 'ConfigureTest) )CakePluginTest( !ObjectTest' +ObjectTestModel& )TestCakeObject% ;RequestActionController$ /RequestActionPost# AppTest" %ScaffoldTest! -TestScaffoldMock$  KScaffoldMockControllerWithError% MScaffoldMockControllerWithFields 9ScaffoldMockController 3PagesControllerTest )ControllerTest 7AnotherTestController )Test2Component 'TestComponent )TestController NameTest +ControllerAlias /ControllerComment! EControllerCommentsController )ControllerPost  CControllerTestAppController ;ControllerMergeVarsTest 5MergePostsController  CMergeVarPluginAppController =MergeVariablesController /MergeVarComponent 9MergeVarsAppController 'ComponentTest 
 CSomethingWithEmailComponent$	 KMutuallyReferencingTwoComponent$ KMutuallyReferencingOneComponent +BananaComponent +OrangeComponent )AppleComponent ;ComponentTestController 1ParamTestComponent ;ComponentCollectionTest 5CookieAliasComponent  5SessionComponentTest  COrangeSessionTestController~ 7SessionTestController} 7SecurityComponentTest| =BrokenCallbackController{ 9SecurityTestControllerz 7TestSecurityComponent y CRequestHandlerComponentTestx )CustomJsonView!w ERequestHandlerTestControllerv 9PaginatorComponentTestu 3PaginatorCustomPostt +PaginatorAuthors APaginatorControllerCommentr ;ControllerPaginateModelq ;PaginatorControllerPostp ;PaginatorTestControllero 1FlashComponentTestn 1EmailComponentTestm 3EmailTestControllerl 1DebugCompTransportk 1EmailTestComponentj 3CookieComponentTest"i GCookieComponentTestControllerh /AuthComponentTestg 7AuthEventTestListenerf 1AjaxAuthControllere 1AuthTestControllerd AuthUserc /TestAuthComponentb 5TestBaseAuthenticatea 5FormAuthenticateTest` 9DigestAuthenticateTest_ /CrudAuthorizeTest^ ;ControllerAuthorizeTest] =BlowfishAuthenticateTest\ 7BasicAuthenticateTest[ 5ActionsAuthorizeTestZ -AclComponentTestY !PhpAclTestX !IniAclTestW DbAclTestV %DbAclTwoTestU /PermissionTwoTestT !AcoTwoTestS !AroTwoTestR 1AclNodeTwoTestBaseQ 1TaskCollectionTestP 3DbConfigAliasedTaskO ShellTestN )TestBananaTaskM 'TestAppleTaskL )TestMergeShellK )ShellTestShellJ 3ShellDispatcherTestI 3TestShellDispatcherH /HelpFormatterTestG 5TableShellHelperTestF ;ProgressShellHelperTest   w }hW9&rV@#`L5#rcM8vZE9(







r
W
H
1
							n	a	S	=	(			{`I=+{n\B0|nV>.re[O8*o_UD5& }V;%}fG*w             	 ArticleB* WCounterCachePostNonstandardPrimaryKey* WCounterCacheUserNonstandardPrimaryKey -CounterCachePost -CounterCacheUser /TranslatedArticle 7TranslateArticleModel ;TranslatedItemWithTable +TranslatedItem2  )TranslatedItem 3TranslateWithPrefix~ 1TranslateTestModel0} cUuidnativeitemsUuidnativeportfolioNumericid'| QUuidnativeitemsUuidnativeportfolio{ )Uuidnativeitemz 3Uuidnativeportfolio$y KUuiditemsUuidportfolioNumericidx 9UuiditemsUuidportfoliow Uuiditemv 'Uuidportfoliou /TestPluginCommentt /TestPluginArticles Basketr FilmFileq )ContentAccountp Accounto Contentn AfterTreem Adl Campaignk UuidTreej 1UnconventionalTreei FlagTreeh 'NumberTreeTwog !NumberTreef 7MyCategoriesMyProducte 1MyCategoriesMyUserd MyProductc !MyCategoryb MyUsera +OverallFavorite	` Book_ Cd
^ Story] Product\ +UnderscoreField[ PersonZ +ValidationTest2Y +ValidationTest1X TheVoidW DataTestV !UuidNative	U UuidT 7CallbackPostTestModelS CallbackR -AssociationTest2Q -AssociationTest1P MonkeyO ThePaper
N JoinC
M JoinB
L JoinAK )SecondaryModelJ %PrimaryModelI /DocumentDirectoryH DeviceG DocumentF 5ExteriorTypeCategoryE !FeatureSetD 1DeviceTypeCategoryC !DeviceType
B ImageA Syfile@ )ItemsPortfolio	? Item> Portfolio= JoinThing< 'SomethingElse; Something: ModelD9 ModelC8 ModelB7 ModelA6 !Dependency	5 Node4 +NodeNoAfterFind3 3NodeAfterFindSample2 'NodeAfterFind1 Bidding0 )BiddingMessage/ Bid. Message- Thread, Project+ )ModifiedAuthor* Author	) Post	( Home' 'Advertisement& )AnotherArticle% Sample
$ Apple# )CategoryThread" Category! 1ModifiedAttachment  !Attachment 7MergeVarPluginComment 1MergeVarPluginPost 9MergeVarPluginAppModel 5AgainModifiedComment +ModifiedComment Comment 3ArticleFeaturedsTag #ArticlesTag Tag Featured +ArticleFeatured Article10 )NumericArticle 3BeforeDeleteComment Article	 User %TestValidate TestAlias	 Test 'ModelReadTest 5ModelIntegrationTest
 DboMock	 +ModelDeleteTest ?ModelCrossSchemaHabtmTest 3DatabaseSessionTest -SessionTestModel -CacheSessionTest 'DboSourceTest 3DboSecondTestSource 'DboTestSource )MockDataSource  MockPDO )DataSourceTest~ !TestSource} 'SqlserverTest | CSqlserverTestResultIterator{ =SqlserverClientTestModelz 1SqlserverTestModely +SqlserverTestDbx !SqliteTestw +DboSqliteTestDbv %PostgresTestu ;PostgresClientTestModelt /PostgresTestModels /DboPostgresTestDbr MysqlTestq +CakeSessionTestp 3TestDatabaseSessiono -TestCacheSessionn +TestCakeSessionm 7ConnectionManagerTestl )CakeSchemaTestk 5SchemaPrefixAuthUserj ASchemaCrossDatabaseFixturei 3SchemaCrossDatabaseh %Testdescribeg )SchemaDatatypef SchemaTage 'SchemaCommentd !SchemaPostc 'TestAppSchemab #MyAppSchemaa 9BehaviorCollectionTest` Orangutan_ 'ThirdBehavior^ )SecondBehavior] 'FirstBehavior\ /TestAliasBehavior[ 'Test7BehaviorZ 'Test6BehaviorY 'Test5Behavior   L mQ1%~lZM@3"t`L5"raL1rZD/





n
O
7
							i	S	6	y[@lZE.qS:mP:&kS9nT9 ~gO7!ufL    ) 1ContactTagsContact( Contact' 7ContactTestController& +FlashHelperTest% +CacheHelperTest$ 3CacheTestController# XmlTest" XmlUser! !XmlArticle  )ValidationTest )ValidationStub -TestDeValidation -TestNlValidation +CustomValidator SetTest %SecurityTest %SanitizeTest +SanitizeArticle -SanitizeDataTest 5ObjectCollectionTest ;GenericObjectCollection 1ThirdGenericObject 3SecondGenericObject 1FirstGenericObject 'GenericObject 'InflectorTest HashTest !FolderTest FileTest %DebuggerTest =DebuggerTestCaseDebugger
 /ClassRegistryTest	 AClassRegistryAbstractModel 1RegisterPrefixedDs -RegisterCategory ;TestRegistryPluginModel 9RegistryPluginAppModel 1RegisterArticleTag ;RegisterArticleFeatured +RegisterArticle 1ClassRegisterModel  %CakeTimeTest %CakeTextTest~ )CakeNumberTest} 7ConsoleOutputStubTest| 9HtmlCoverageReportTest{ 9CakeFixtureManagerTestz 9ControllerTestCaseTest%y MControllerTestCaseTestControllerx +PostsControllerw /CakeTestSuiteTestv 3CakeTestFixtureTestu /FixturePrefixTestt 9FixtureImportTestModel(s SCakeTestFixtureDefaultImportFixture!r ECakeTestFixtureImportFixtureq 1InvalidTestFixturep 1StringsTestFixtureo ACakeTestFixtureTestFixturen -CakeTestCaseTestm +ConstructorPostl 'SecondaryPostk !RouterTestj /RedirectRouteTesti 5PluginShortRouteTesth 'CakeRouteTestg 3AssetDispatcherTestf )DispatcherTeste 5TestFilterDispatcherd 5TimesheetsControllerc ?TestCachedPagesControllerb 3SomePostsControllera 9ArticlesTestController` ?ArticlesTestAppController _ CTestDispatchPagesController^ 5OtherPagesController] 3SomePagesController\ 1MyPluginController%[ MDispatcherTestAbstractControllerZ 7MyPluginAppControllerY )TestDispatcherX ADispatcherMockCakeResponseW )HttpSocketTestV )TestHttpSocketU )CustomResponseT 1TestAuthenticationS -HttpResponseTestR -TestHttpResponseQ =DigestAuthenticationTestP -DigestHttpSocketO ;BasicAuthenticationTestN /TestSslHttpSocketM /SmtpTransportTestL /SmtpTestTransportK /MailTransportTestJ 1DebugTransportTestI 'CakeEmailTestH +ExtendTransportG +TestEmailConfigF 'TestCakeEmailE )CakeSocketTestD -CakeResponseTestC +CakeRequestTestB +TestCakeRequestA 7CakeValidationSetTest@ 9CakeValidationRuleTest? )ModelWriteTest> TestPost= !TestAuthor< 9ValidationRuleBehavior; 3ModelValidationTest: 'BaseModelTest9 ModelTest 8 CArticlesTagBelongsToArticle7 /UserHasOneArticle6 Example5 'CustomArticle4 %ArmorsPlayer
3 Armor2 %GuildsPlayer
1 Guild0 Player/ #ScaffoldTag. +ScaffoldComment- %ScaffoldUser, %ScaffoldMock+ ;PrefixTestUseTableModel* +PrefixTestModel) )MysqlTestModel( -ArticleFeatured2' Comment2& Featured2% /CategoryFeatured2$ Article2# Category2
" User2
! Group
  Level !TestModel9 !TestModel8 !TestModel7 !TestModel6 !TestModel5 5TestModel4TestModel7 !TestModel4 !TestModel3 !TestModel2 TestModel Domain	 Site =TransactionManyTestModel 5TransactionTestModel )GroupUpdateAll -ProductUpdateAll 'UuidTagNoWith #FruitNoWith UuidTag 'FruitsUuidTag
 Fruit	
 TagB   D rbL/pP2~jT8$}kYE0{_J:






p
^
I
8

						|	c	N	0	s\B }jM3wX$uT;kQ:&
qT?*y`H3 n[D        C +PostsTagFixtureB #PostFixtureA -PortfolioFixture@ 'PlayerFixture? 'PersonFixture> 9OverallFavoriteFixture= 7NumericArticleFixture< 5NumberTreeTwoFixture; /NumberTreeFixture: #NodeFixture9 'MyUserFixture8 -MyProductFixture7 /MyCategoryFixture6 AMyCategoriesMyUsersFixture"5 GMyCategoriesMyProductsFixture4 )MessageFixture3 -JoinThingFixture2 %JoinCFixture1 %JoinBFixture0 %JoinAFixture/ 'JoinACFixture. 'JoinABFixture- 7ItemsPortfolioFixture, #ItemFixture+ #InnoFixture* %ImageFixture) #HomeFixture( 3GuildsPlayerFixture' %GuildFixture& 7GroupUpdateAllFixture% 5FruitsUuidTagFixture$ %FruitFixture# +FlagTreeFixture" 1FixturizedTestCase! +FilmFileFixture  /FeatureSetFixture +FeaturedFixture  CExteriorTypeCategoryFixture 1DomainsSiteFixture 'DomainFixture +DocumentFixture =DocumentDirectoryFixture /DeviceTypeFixture ?DeviceTypeCategoryFixture 'DeviceFixture /DependencyFixture +DatatypeFixture +DataTestFixture1 eCounterCacheUserNonstandardPrimaryKeyFixture ;CounterCacheUserFixture1 eCounterCachePostNonstandardPrimaryKeyFixture ;CounterCachePostFixture )ContentFixture 7ContentAccountFixture )CommentFixture CdFixture 7CategoryThreadFixture
 +CategoryFixture	 +CampaignFixture +CallbackFixture 1CakeSessionFixture 7CacheTestModelFixture #BookFixture /BinaryTestFixture !BidFixture 7BiddingMessageFixture )BiddingFixture  'BasketFixture )BakeTagFixture~ 1BakeCommentFixture} ABakeArticlesBakeTagFixture| 1BakeArticleFixture{ +AuthUserFixturez AAuthUserCustomFieldFixturey 'AuthorFixturex /AttachmentFixturew 1AssertTagsTestCasev 1ArticlesTagFixtureu )ArticleFixture t CArticleFeaturedsTagsFixtures 9ArticleFeaturedFixturer 'AroTwoFixtureq /ArosAcoTwoFixturep )ArosAcoFixtureo !AroFixturen 3ArmorsPlayerFixturem %ArmorFixturel %AppleFixturek 7AnotherArticleFixturej -AfterTreeFixturei 5AdvertisementFixtureh AdFixtureg 'AcoTwoFixturef !AcoFixturee -AcoActionFixtured )AccountFixturec #XmlViewTestb ViewTesta 7TestViewEventListener` ?TestObjectWithoutToString_ 9TestObjectWithToString^ 7TestBeforeAfterHelper] TestView\ 'TestThemeView[ 5ThemePostsControllerZ 3ViewPostsControllerY 'ThemeViewTestX )TestTheme2ViewW 7ThemePosts2ControllerV -ScaffoldViewTestU AScaffoldViewMockControllerT -TestScaffoldViewS 'MediaViewTestR %JsonViewTestQ !HelperTestP !TestHelperO 1HelperTestPostsTagN 'HelperTestTagM /HelperTestCommentL )HelperTestPostK 5HelperCollectionTestJ +HtmlAliasHelperI )TimeHelperTestH %CakeTimeMockG 5TimeHelperTestObjectF )TextHelperTestE %CakeTextMockD 5TextHelperTestObjectC /SessionHelperTestB 'RssHelperTestA ?PrototypeEngineHelperTest@ 3PaginatorHelperTest? -NumberHelperTest> )CakeNumberMock= 9NumberHelperTestObject< =MootoolsEngineHelperTest; -JsBaseEngineTest: %JsHelperTest9 1OptionEngineHelper8 -JsEncodingObject7 9JqueryEngineHelperTest6 )HtmlHelperTest5 +Html5TestHelper4 )TestHtmlHelper3 7TheHtmlTestController2 )FormHelperTest1 TestMail0 %ValidateItem/ +ValidateProfile. %ValidateUser- OpenidUrl, UserForm+ !ContactTag* 5ContactNonStandardPk   S lO9&
~^@+xW9"y\+zdM:





y
g
O
+
							u	Z	F	1		v_B,	sM'rZD#
vbL6!tZ@&wgRB6(weS9saS                         \ Helper[ !TimeHelperZ !TextHelperY 'SessionHelperX RssHelperW 7PrototypeEngineHelperV +PaginatorHelperU %NumberHelperT 5MootoolsEngineHelperS JsHelperR 1JsBaseEngineHelperQ 1JqueryEngineHelperP !HtmlHelperO !FormHelperN #FlashHelperM #CacheHelperL XmlK !ValidationJ StringI SetH SecurityG SanitizeF -ObjectCollectionE Inflector	D HashC Folder	B FileA Debugger@ 'ClassRegistry? CakeTime> CakeText= !CakeNumber< /ConsoleOutputStub; -CakeTextReporter: -CakeHtmlReporter9 -CakeBaseReporter8 'CakeTestModel7 +CakeTestFixture6 1CakeFixtureManager5 1TextCoverageReport4 1HtmlCoverageReport3 1BaseCoverageReport2 1ControllerTestCase1 9InterceptContentHelper0 =ControllerTestDispatcher/ ;CakeTestSuiteDispatcher. 5CakeTestSuiteCommand- 'CakeTestSuite, )CakeTestRunner+ )CakeTestLoader* %CakeTestCase) %BananaHelper( ?ConfigureTestVendorSample' 'TestAppEngine& %WelcomeShell% 3TestPluginAppHelper$ 3PluggedHelperHelper# /OtherHelperHelper" ?SamplePluginClassTestName! )ExampleExample  -TestPluginEngine )TestPluginPost 1TestPluginAuthUser /TestPluginAuthors 1TestPluginAppModel +TestOtherSource /TestPluginSession !TestDriver DboDummy# ITestPluginPersisterTwoBehavior# ITestPluginPersisterOneBehavior 9TestPluginOtherLibrary /TestPluginLibrary TestRoute 5TestDispatcherFilter 7Test2DispatcherFilter 'TestPluginLog  CTestPluginExceptionRenderer )CustomLibClass 7TestPluginCacheEngine +TestsController 5TestPluginController
 ;TestPluginAppController	 =TestPluginOtherComponent 3TestPluginComponent -PluginsComponent )OtherComponent +TestPluginShell 'OtherTaskTask %ExampleShell 3TestPluginAppSchema %PersisterTwo  %PersisterOne Extract~ #Test2Source} -Test2OtherSource| /TestAppLibSession{ +TestLocalDriver!z EPersisterTwoBehaviorBehavior!y EPersisterOneBehaviorBehaviorx -TestUtilityClassw !TestAppLogv Libraryu 1TestAppCacheEnginet ?TestAppsExceptionRenderers =TestsAppsPostsControllerr 3TestsAppsControllerq 7TestConfigsControllerp ;TestAppsErrorControllero #SampleShelln +UuidTreeFixturem )UuidTagFixturel 5UuidportfolioFixturek 7UuidNativeTreeFixturej 5UuidNativeTagFixturei AUuidnativeportfolioFixture7h qUuidnativeitemsUuidnativeportfolioNumericidFixture.g _UuidnativeitemsUuidnativeportfolioFixturef 7UuidnativeitemFixturee /UuidNativeFixture+d YUuiditemsUuidportfolioNumericidFixture"c GUuiditemsUuidportfolioFixtureb +UuiditemFixturea #UuidFixture` #UserFixture_ +UnsignedFixture^ 9UnderscoreFieldFixture] ?UnconventionalTreeFixture\ ATranslateWithPrefixFixture[ 7TranslateTableFixtureZ -TranslateFixtureY 7TranslatedItemFixtureX =TranslatedArticleFixtureW ;TranslateArticleFixtureV 'ThreadFixtureU 9ThePaperMonkiesFixtureT =TestPluginCommentFixtureS =TestPluginArticleFixtureR !TagFixtureQ 'SyfileFixtureP %StoryFixtureO /StoriesTagFixtureN -SomethingFixtureM 5SomethingElseFixtureL #SiteFixtureK )SessionFixtureJ 7SecondaryModelFixtureI 'SampleFixtureH )ProjectFixtureG ;ProductUpdateAllFixtureF )ProductFixtureE 3PrimaryModelFixtureD /PrefixTestFixture   e vX@+mSF3kT>(~hM9kW?"






r
S
:
)
							y	c	U	D	2	!	oY@4%u\F4u]J8 {eQ: sYF,
l\H/~p]Q7#~e 
 /AbstractTransport&	 /LogEngineRegistry% Log% SyslogLog$ FileLog$ !ConsoleLog$ BaseLog$ %PoFileParser# %MoFileParser# -SprintfFormatter"  %IcuFormatter" 1TranslatorRegistry!	~ Time!} #PluralRules!| Number!{ 1MessagesFileLoader!	z I18n!y 3ChainMessagesLoader!x Schema 	w Form v Folder	u Filet %EventManager
s Eventr 3FatalErrorExceptionq /ExceptionRendererp %ErrorHandlero Debuggern -BaseErrorHandlerm ;RecordNotFoundExceptionl 7MissingModelExceptionk AMissingDatasourceException%j MMissingDatasourceConfigExceptioni AInvalidPrimaryKeyExceptionh 1ResultSetDecoratorg #QueryCacherf 1ConnectionRegistrye /ConnectionManagerd UuidTypec TimeTypeb #IntegerTypea FloatType` DateType_ %DateTimeType^ !BinaryType] 1StatementDecorator\ 1SqlserverStatement[ +SqliteStatementZ %PDOStatementY )MysqlStatementX /CallbackStatementW /BufferedStatement
V TableU +SqlserverSchemaT %SqliteSchemaS )PostgresSchemaR #MysqlSchemaQ !CollectionP -CachedCollectionO !BaseSchemaN #QueryLoggerM -LoggingStatementL #LoggedQueryK -ValuesExpressionJ +UnaryExpressionI +TupleComparisonH +QueryExpressionG /OrderByExpressionF 5IdentifierExpressionE 1FunctionExpressionD !ComparisonC )CaseExpressionB /BetweenExpressionA ?MissingExtensionException@ 9MissingDriverException? AMissingConnectionException> Sqlserver= Sqlite< Postgres
; Mysql: #ValueBinder9 TypeMap	8 Type7 /SqlserverCompiler6 )SqliteCompiler5 'QueryCompiler
4 Query3 -IdentifierQuoter2 -FunctionsBuilder1 Exception0 Driver/ !Connection. 9MissingPluginException- Exception, PhpConfig+ !JsonConfig* IniConfig) Plugin( )ObjectRegistry' Configure& #ClassLoader% App$ ?MissingComponentException# 9MissingActionException" +ErrorController! !Controller  /ComponentRegistry Component /SecurityComponent ;RequestHandlerComponent 1PaginatorComponent )FlashComponent 'CsrfComponent +CookieComponent 'AuthComponent 5MissingTaskException  CMissingShellMethodException 7MissingShellException -ConsoleException %TaskRegistry +ShellDispatcher
 Shell 'HelpFormatter 'ConsoleOutput 3ConsoleOptionParser ConsoleIo 9ConsoleInputSubcommand 1ConsoleInputOption
 5ConsoleInputArgument	 %ConsoleInput 3ConsoleErrorHandler )UnfoldIterator
 #TreePrinter
 %TreeIterator
 /StoppableIterator
 %SortIterator
 +ReplaceIterator
 1NoChildrenIterator
  %NestIterator
 MapReduce
~ )InsertIterator
} )FilterIterator
| +ExtractIterator
{ -BufferedIterator
z !Collection	y %XcacheEnginex )WincacheEnginew #RedisEnginev !NullEngineu +MemcachedEnginet !FileEngines ApcEnginer 'CacheRegistryq #CacheEngine
p Cacheo 1WeakPasswordHashern 7PasswordHasherFactorym -FormAuthenticatel 9FallbackPasswordHasherk 1DigestAuthenticatej 7DefaultPasswordHasheri 3ControllerAuthorizeh /BasicAuthenticateg 'BaseAuthorizef -BaseAuthenticatee 9AbstractPasswordHasherd XmlViewc ViewBlock	b Viewa ThemeView` %ScaffoldView_ MediaView^ JsonView] -HelperCollection   m ~iK*zbRC4$	|n[>.z^E,mUA*





g
R
?
)
								t	b	O	<	,		q]Q@0$vfPD3$mQ=(zhVE2nXB+sX?(kQ=&m         8 ?TestPluginCommentsFixtureE7 #TagsFixtureE6 1SpecialTagsFixtureE5 +SiteTagsFixtureE4 1SiteAuthorsFixtureE3 ;SiteArticlesTagsFixtureE2 3SiteArticlesFixtureE1 +SessionsFixtureE0 %PostsFixtureE/ 1NumberTreesFixtureE. 5MenuLinkTreesFixtureE- 1FixturizedTestCaseE, =CounterCacheUsersFixtureE+ =CounterCachePostsFixtureE"* GCounterCacheCategoriesFixtureE) ACompositeIncrementsFixtureE( +CommentsFixtureE' /CategoriesFixtureE& 3CakeSessionsFixtureE% -AuthUsersFixtureE$ 1AuthorsTagsFixtureE# )AuthorsFixtureE" 1AttachmentsFixtureE! ?AssertIntegrationTestCaseE  1AssertHtmlTestCaseE 3ArticlesTagsFixtureE +ArticlesFixtureE )WidgetRegistryD )TextareaWidgetD +SelectBoxWidgetD #RadioWidgetD 1NestingLabelWidgetD 3MultiCheckboxWidgetD #LabelWidgetD !FileWidgetD )DateTimeWidgetD )CheckboxWidgetD %ButtonWidgetD #BasicWidgetD UrlHelperC !TimeHelperC !TextHelperC 'SessionHelperC RssHelperC +PaginatorHelperC %NumberHelperC
 !HtmlHelperC	 !FormHelperC #FlashHelperC #NullContextB #FormContextB 'EntityContextB %ArrayContextB 5MissingViewExceptionA =MissingTemplateExceptionA 9MissingLayoutExceptionA  9MissingHelperExceptionA ;MissingElementExceptionA~ =MissingCellViewExceptionA} 5MissingCellExceptionA| XmlView@{ ViewBlock@	z View@y )StringTemplate@x JsonView@w )HelperRegistry@v Helper@	u Cell@t AjaxView@s Validator?r 'ValidationSet?q )ValidationRule?p !Validation?o 'RulesProvider?n Xml>	m Text>l Security>k Inflector>	j Hash>i %XmlException=h OpenSsl<g Mcrypt<f Response;e TestSuite:d TestCase:c 3IntegrationTestCase:b #TestFixture9a )FixtureManager9` +FixtureInjector9_ !UnloadTask8^ LoadTask8] #ExtractTask8\ #CommandTask8[ !AssetsTask8Z #ServerShell7Y #PluginShell7X 'OrmCacheShell7W I18nShell7V +CompletionShell7U -CommandListShell7
T Route6S 'RedirectRoute6R -PluginShortRoute6Q )InflectedRoute6P #DashedRoute6O 'RoutingFilter5N 5LocaleSelectorFilter5M ;ControllerFactoryFilter5L #AssetFilter5K 7MissingRouteException4%J MMissingDispatcherFilterException4I AMissingControllerException4H Router3G +RouteCollection3F %RouteBuilder3E -DispatcherFilter3D /DispatcherFactory3C !Dispatcher3B IsUnique2A ExistsIn2@ AMissingTableClassException1? 9MissingEntityException1> =MissingBehaviorException1= %TreeBehavior0< /TranslateBehavior0; /TimestampBehavior0: 5CounterCacheBehavior09 'TableRegistry/
8 Table/7 %RulesChecker/6 ResultSet/
5 Query/4 !Marshaller/3 Entity/2 #EagerLoader/1 'EagerLoadable/0 -BehaviorRegistry// Behavior/. 7AssociationCollection/- #Association/, HasOne.+ HasMany.* 'BelongsToMany.) BelongsTo.( +DatabaseSession-' %CacheSession-& Socket,% Session,$ Response,# Request,	" Part+! Response*  Request* Message* FormData* -CookieCollection* Client*
 Oauth) Digest)
 Basic) Stream( 7UnauthorizedException' +SocketException' ;NotImplementedException' /NotFoundException' ?MethodNotAllowedException' 9InternalErrorException' 'HttpException' 1ForbiddenException' 3BadRequestException' 'SmtpTransport& 'MailTransport&
 Email& )DebugTransport&   G |b>1~^?#uYK<(}jU='nYE1






i
J
&
						t	M	&	v]D5"yhM;*xY<aO:)iM2jK2iN5cG           R 5CookieAliasComponent~Q 7SecurityComponentTest}P 9SecurityTestController}O 7TestSecurityComponent} N CRequestHandlerComponentTest}M 9PaginatorComponentTest}L ;PaginatorTestController}K 1FlashComponentTest}J /CsrfComponentTest}I 3CookieComponentTest}H /AuthComponentTest}G -TaskRegistryTest|F ShellTest|E )TestBananaTask|D 'TestAppleTask|C )ShellTestShell|B !MergeShell|A 3ShellDispatcherTest|@ /HelpFormatterTest|? /ConsoleOutputTest|> ;ConsoleOptionParserTest|= 'ConsoleIoTest|< ;ConsoleErrorHandlerTest|; -TreeIteratorTest{: -SortIteratorTest{9 3ReplaceIteratorTest{8 'MapReduceTest{7 1InsertIteratorTest{6 1FilterIteratorTest{5 3ExtractIteratorTest{4 5BufferedIteratorTest{3 )CollectionTestz2 -XcacheEngineTesty1 1WincacheEngineTesty0 +RedisEngineTesty/ 3MemcachedEngineTesty. 3TestMemcachedEnginey- )FileEngineTesty, 'ApcEngineTesty+ CacheTestx* 'DatabaseSuitew) !BasicsTestw( 9WeakPasswordHasherTestv' ?PasswordHasherFactoryTestv& 5FormAuthenticateTestv% AFallbackPasswordHasherTestv$ 9DigestAuthenticateTestv# ?DefaultPasswordHasherTestv" ;ControllerAuthorizeTestv! 7BasicAuthenticateTestv  ;EventListenerTestHelperu %BananaHelperu CelloCellt %ArticlesCellt )CustomJsonViews AppViews 'TestAppEnginer #SampleShellq #DashedRoutep /TestAppLibSessiono TagsTablen !PostsTablen 3PaginatorPostsTablen I18nTablen )AuthUsersTablen %AuthorsTablen /ArticlesTagsTablen 'ArticlesTablen #VirtualUserm Tagm %NonExtendingm Extendingm
 Authorm	 #ArticlesTagm Articlem /SluggableBehaviorl /DuplicateBehaviorl !TestAppLogk ?TestAppsExceptionRendererj TestAppi /TestAuthComponenth! ESomethingWithCookieComponenth  1ParamTestComponenth +OrangeComponenth$~ KMutuallyReferencingTwoComponenth$} KMutuallyReferencingOneComponenth| /MergeVarComponenth{ +BananaComponenthz )AppleComponenthy +PostsControllergx 3TestsAppsControllerfw ;TestAppsErrorControllerfv 3SomePagesControllerf!u ERequestHandlerTestControllerft ;RequestActionControllerfs +PostsControllerfr +PagesControllerfq ;ComponentTestControllerfp 1AuthTestControllerfo 'AppControllerfn 1AbstractControllerfm 1TestAppCacheEngineel -TestAuthenticatedk %WelcomeShellcj %ExampleShellci 'CommentsTablebh +ArticlesFixtureag 3TestPluginAppHelper`f 3PluggedHelperHelper`e /OtherHelperHelper`d DummyCell_c ?ConfigureTestVendorSample^b ?SamplePluginClassTestName^a )ExampleExample^` -TestPluginEngine]_ 'OtherTaskTask\^ #SampleShell[] %ExampleShell[\ TestRouteZ[ 5TestDispatcherFilterYZ 7Test2DispatcherFilterYY /TestPluginSessionXX ;TestPluginCommentsTableWW 'CommentsTableWV %AuthorsTableWU CommentVT AuthorVS 5PersisterOneBehaviorUR 'TestPluginLogTQ 9TestPluginOtherLibrarySP /TestPluginLibrarySO )CustomLibClassR N CTestPluginExceptionRendererQM !TestSourcePL +TestsControllerOK 5TestPluginControllerOJ ;TestPluginAppControllerOI =TestPluginOtherComponentNH 3TestPluginComponentNG -PluginsComponentNF )OtherComponentNE 1CommentsControllerMD 7TestPluginCacheEngineLC 5LegacyPasswordHasherKB +ArticlesFixtureJ
A HelloI!@ ETestPluginThreeCommentsTableH? 1SomethingComponentG
> HelloF= 7UuidportfoliosFixtureE< -UuiditemsFixtureE; %UsersFixtureE: /TranslatesFixtureE9 'ThingsFixtureE   T cM2#x[>#}m\J5"}`H1iT>&






g
F
.

 					j	O	1	p]D'r]J6 n[H6#jVC*xfN1}jQ5tbL9oT                    n 1TranslateTraitTest m !TestEntity l -TreeBehaviorTest k 7TranslateBehaviorTest j Article i 7TimestampBehaviorTest h =CounterCacheBehaviorTest g PostTable f 9BehaviorRegressionTest e !NumberTree d 'TableUuidTest c TableTest b !UsersTable a /TableRegistryTest ` %MyUsersTable !_ CRulesCheckerIntegrationTest ^ 'ResultSetTest ] QueryTest \ 3QueryRegressionTest [ )MarshallerTest Z 3GreedyCommentsTable Y -ProtectedArticle X !OpenEntity W !EntityTest V +EagerLoaderTest U -CompositeKeyTest T /OpenArticleEntity S %BehaviorTest R 'Test3Behavior Q 'Test2Behavior P %TestBehavior O 5BehaviorRegistryTest N +AssociationTest M TestTable L 5AssociationProxyTest K ?AssociationCollectionTest J !HasOneTest I #HasManyTest H 'BelongsToTest G /BelongsToManyTest F 3DatabaseSessionTest E -CacheSessionTest D !SocketTest C #SessionTest B 3TestDatabaseSession A -TestCacheSession @ %ResponseTest ? #RequestTest > %ResponseTest = #RequestTest < %FormDataTest ; 5CookieCollectionTest : !ClientTest 9 OauthTest 8 !DigestTest 7 !StreamTest 6 /SmtpTransportTest 5 /SmtpTestTransport 4 /MailTransportTest 3 EmailTest 2 TestEmail 1 1DebugTransportTest 0 %LogTraitTest / LogTest . 'SyslogLogTest - #FileLogTest , !JsonObject + %StringObject * )ConsoleLogTest ) -PoFileParserTest ( -MoFileParserTest ' TimeTest & +PluralRulesTest % !NumberTest $ 9MessagesFileLoaderTest # I18nTest " 5SprintfFormatterTest ! -IcuFormatterTest   !SchemaTest  FormTest  !FolderTest  FileTest  EventTest  7EventManagerTraitTest  -EventManagerTest & MCustomTestEventListenerInterface  /EventTestListener  7ExceptionRendererTest  1MissingWidgetThing ! CMissingWidgetThingException  ?MyCustomExceptionRenderer  3TestErrorController  1BlueberryComponent  -ErrorHandlerTest  -TestErrorHandler  %DebuggerTest  +DebuggableThing  =DebuggerTestCaseDebugger  9ResultSetDecoratorTest  +QueryCacherTest 
 3ModelAwareTraitTest 
	 Stub  7ConnectionManagerTest  )FakeConnection  %UuidTypeTest  %TimeTypeTest  +IntegerTypeTest  'FloatTypeTest  %DateTypeTest  -DateTimeTypeTest   )BinaryTypeTest  7StatemetDecoratorTest ~ TableTest } 3SqlserverSchemaTest | -SqliteSchemaTest { 1PostgresSchemaTest z +MysqlSchemaTest y )CollectionTest x +QueryLoggerTest w 5LoggingStatementTest v +LoggedQueryTest u 3TupleComparisonTest t =IdentifierExpressionTest s 9FunctionExpressionTest r 1CaseExpressionTest q 'SqlserverTest p !SqliteTest o %PostgresTest n MysqlTest m TypeTest l FooType k QueryTest j 5FunctionsBuilderTest i )ConnectionTest h 'PhpConfigTest g )JsonConfigTest f 'IniConfigTest e 7StaticConfigTraitTestd 3TestLogStaticConfigc 7TestEmailStaticConfigb 7TestCacheStaticConfig&a OTestConnectionManagerStaticConfig` !PluginTest_ ;InstanceConfigTraitTest^ AReadOnlyTestInstanceConfig] 1TestInstanceConfig\ 'ConfigureTest[ AppTestZ 3PagesControllerTest~Y )ControllerTest~X 7AnotherTestController~W 'TestComponent~V )TestController~ U CControllerTestAppController~T 'ComponentTest~S 7ComponentRegistryTest~   O qV9zbA'mQ7 pX<%{[F5%






j
R
7
$
						m	\	>	~nT<$jN8tYB*
}dN4nXA3	yfM5~iU>*t^O                    Helper  'ConsoleOutput  3ConsoleOptionParser  ConsoleIo  9ConsoleInputSubcommand  1ConsoleInputOption  5ConsoleInputArgument  %ConsoleInput   3ConsoleErrorHandler  #ZipIterator ~ )UnfoldIterator } #TreePrinter | %TreeIterator { /StoppableIterator z %SortIterator y +ReplaceIterator x 1NoChildrenIterator w %NestIterator v MapReduce u )InsertIterator t )FilterIterator s +ExtractIterator r -BufferedIterator q !Collection p %XcacheEngine o )WincacheEngine n #RedisEngine m !NullEngine l +MemcachedEngine k !FileEngine j ApcEngine i 'CacheRegistry h #CacheEngine g Cache f )SessionStorage e 'MemoryStorage d 1WeakPasswordHasher c 7PasswordHasherFactory b -FormAuthenticate a 9FallbackPasswordHasher ` 1DigestAuthenticate _ 7DefaultPasswordHasher ^ 3ControllerAuthorize ] /BasicAuthenticate \ 'BaseAuthorize [ -BaseAuthenticate Z 9AbstractPasswordHasher Y 9WidgetRegistryTestCase X 1TextareaWidgetTest W 3SelectBoxWidgetTest V +RadioWidgetTest U ;MultiCheckboxWidgetTest T +LabelWidgetTest S )FileWidgetTest R 1DateTimeWidgetTest Q 1CheckboxWidgetTest P -ButtonWidgetTest O +BasicWidgetTest N )TimeHelperTest M )TextHelperTest L !StringMock K 5TextHelperTestObject J /SessionHelperTest I 'RssHelperTest H 3PaginatorHelperTest G -NumberHelperTest F !NumberMock E 9NumberHelperTestObject D )HtmlHelperTest C )FormHelperTest B 1ValidateUsersTable A 'ContactsTable @ Article ? +FlashHelperTest > +FormContextTest = /EntityContextTest < Article ; -ArrayContextTest : #XmlViewTest 9 /ViewVarsTraitTest 8 ViewTest $7 ITestViewEventListenerInterface 6 ?TestObjectWithoutToString 5 9TestObjectWithToString 4 7TestBeforeAfterHelper 3 TestView 2 5ThemePostsController 1 3ViewPostsController 0 ;StringTemplateTraitTest / 1TestStringTemplate . 1StringTemplateTest - %JsonViewTest , !HelperTest + !TestHelper * 1HelperRegistryTest ) +HtmlAliasHelper ( 'UrlHelperTest ' CellTest & 'ValidatorTest % )ValidationTest $ +CustomValidator # /ValidationSetTest " 1ValidationRuleTest ! /RulesProviderTest   XmlTest  TextTest  %SecurityTest  ;MergeVariablesTraitTest  !Grandchild  Child 
 Base  'InflectorTest  HashTest  #OpenSslTest  !McryptTest  'TestSuiteTest  +TestFixtureTest  )ImportsFixture  3StringsTestsFixture  +ArticlesFixture  %TestCaseTest  3SecondaryPostsTable  ;IntegrationTestCaseTest  1FixtureManagerTest  )UnloadTaskTest  %LoadTaskTest 
 +ExtractTaskTest 	 )AssetsTaskTest  /OrmCacheShellTest  3CompletionShellTest   ATestCompletionStringOutput  5CommandListShellTest  -TestStringOutput  RouteTest  /RedirectRouteTest  5PluginShortRouteTest   +DashedRouteTest  /RoutingFilterTest ~ =LocaleSelectorFilterTest } +AssetFilterTest | !RouterTest { 3RouteCollectionTest z -RouteBuilderTest y 9RequestActionTraitTest x )DispatcherTest w 9ArticlesTestController v ?ArticlesTestAppController u 5OtherPagesController t 1MyPluginController s 7MyPluginAppController r )TestDispatcher q 9DispatcherMockResponse p 5DispatcherFilterTest o 7DispatcherFactoryTest    ^ `BkQ?%paO<*oX>1!iO8%






m
T
@
'

 						|	n	T	:	#	uaP?%
zW9 teXI- wbR?/kU?#uU={n^M=.w^    1 -BehaviorRegistry 0 Behavior / 7AssociationCollection . #Association - HasOne , HasMany + 'BelongsToMany * BelongsTo ) +DatabaseSession ( %CacheSession ' Socket & Session % Response $ Request 
# Part " Response ! Request   Message  FormData  -CookieCollection  Client  Oauth  Digest  Basic  Stream  7UnauthorizedException  +SocketException  ;NotImplementedException  /NotFoundException  ?MethodNotAllowedException  ?InvalidCsrfTokenException  9InternalErrorException  'HttpException  1ForbiddenException  3BadRequestException  'SmtpTransport  'MailTransport  )DebugTransport  9MissingMailerException 
 9MissingActionException 	 Mailer  Email  /AbstractTransport  /LogEngineRegistry 	 Log  SyslogLog  FileLog  !ConsoleLog  BaseLog   %PoFileParser  %MoFileParser ~ -SprintfFormatter } %IcuFormatter | 1TranslatorRegistry 
{ Time z #PluralRules y Number x 1MessagesFileLoader 
w I18n v 3ChainMessagesLoader u Schema 
t Form s Folder 
r File q %EventManager p Event o 3FatalErrorException n /ExceptionRenderer m %ErrorHandler l Debugger k -BaseErrorHandler j ;RecordNotFoundException i 7MissingModelException  h AMissingDatasourceException &g MMissingDatasourceConfigException  f AInvalidPrimaryKeyException e %RulesChecker d 1ResultSetDecorator c #QueryCacher b 1ConnectionRegistry a /ConnectionManager ` UuidType _ TimeType ^ #IntegerType ] FloatType \ DateType [ %DateTimeType Z !BinaryType Y 1StatementDecorator X 1SqlserverStatement W +SqliteStatement V %PDOStatement U )MysqlStatement T /CallbackStatement S /BufferedStatement R Table Q +SqlserverSchema P %SqliteSchema O )PostgresSchema N #MysqlSchema M !Collection L -CachedCollection K !BaseSchema J #QueryLogger I -LoggingStatement H #LoggedQuery G -ValuesExpression F +UnaryExpression E +TupleComparison D +QueryExpression C 7OrderClauseExpression B /OrderByExpression A 5IdentifierExpression @ 1FunctionExpression ? !Comparison > )CaseExpression = /BetweenExpression < ?MissingExtensionException ; 9MissingDriverException  : AMissingConnectionException 9 Sqlserver 8 Sqlite 7 Postgres 6 Mysql 5 #ValueBinder 4 TypeMap 
3 Type 2 /SqlserverCompiler 1 )SqliteCompiler 0 'QueryCompiler / Query . -IdentifierQuoter - -FunctionsBuilder , Exception + Driver * !Connection ) 9MissingPluginException ( Exception ' PhpConfig & !JsonConfig % IniConfig $ Plugin # )ObjectRegistry " Configure ! #ClassLoader 	  App  ?MissingComponentException  9MissingActionException  +ErrorController  !Controller  /ComponentRegistry  Component  /SecurityComponent  ;RequestHandlerComponent  1PaginatorComponent  )FlashComponent  'CsrfComponent  +CookieComponent  'AuthComponent  5MissingTaskException ! CMissingShellMethodException  7MissingShellException  9MissingHelperException  -ConsoleException  %TaskRegistry  +ShellDispatcher  Shell 
 'HelpFormatter 	 )HelperRegistry    ] |gYC&zeTC0uWC#oWE/|iQ:&









m
\
O
C
-

								o	X	K	9	%	yX;&oYF3!lX@)oT;bF+r]E-oM7u]                 S +ArticlesFixture R Hello "Q ETestPluginThreeCommentsTable P 1SomethingComponent O Hello N 7UuidportfoliosFixture M -UuiditemsFixture L %UsersFixture K /TranslatesFixture J 'ThingsFixture I ?TestPluginCommentsFixture H ;TagsTranslationsFixture G #TagsFixture F 1SpecialTagsFixture E +SiteTagsFixture D 1SiteAuthorsFixture C ;SiteArticlesTagsFixture B 3SiteArticlesFixture A +SessionsFixture @ +ProductsFixture ? %PostsFixture > =PolymorphicTaggedFixture = 'OrdersFixture < 1NumberTreesFixture ; 5MenuLinkTreesFixture : )MembersFixture 9 5GroupsMembersFixture 8 'GroupsFixture 7 1FixturizedTestCase 6 3FeaturedTagsFixture 5 =CounterCacheUsersFixture 4 =CounterCachePostsFixture #3 GCounterCacheCategoriesFixture  2 ACompositeIncrementsFixture 1 +CommentsFixture 0 /CategoriesFixture / 3CakeSessionsFixture . -AuthUsersFixture - 1AuthorsTagsFixture , )AuthorsFixture + 1AttachmentsFixture * ?AssertIntegrationTestCase ) 1AssertHtmlTestCase ( 3ArticlesTagsFixture ' +ArticlesFixture & )WidgetRegistry % )TextareaWidget $ +SelectBoxWidget # #RadioWidget " 1NestingLabelWidget ! 3MultiCheckboxWidget   #LabelWidget  !FileWidget  )DateTimeWidget  )CheckboxWidget  %ButtonWidget  #BasicWidget  UrlHelper  !TimeHelper  !TextHelper  'SessionHelper  RssHelper  +PaginatorHelper  %NumberHelper  !HtmlHelper  !FormHelper  #FlashHelper  #NullContext  #FormContext  'EntityContext  %ArrayContext  5MissingViewException  =MissingTemplateException 
 9MissingLayoutException 	 9MissingHelperException  ;MissingElementException  =MissingCellViewException  5MissingCellException  XmlView  #ViewBuilder  ViewBlock 
 View  )StringTemplate   )SerializedView  JsonView ~ )HelperRegistry } Helper 
| Cell { AjaxView z Validator y 'ValidationSet x )ValidationRule w !Validation v 'RulesProvider 	u Xml 
t Text s Security r Inflector 
q Hash p %XmlException o OpenSsl n Mcrypt m Response l 'ConsoleOutput k TestSuite j TestCase i 3IntegrationTestCase h #TestFixture g )FixtureManager f +FixtureInjector e !UnloadTask d LoadTask c #ExtractTask b #CommandTask a !AssetsTask ` #TableHelper _ )ProgressHelper ^ #ServerShell ] #RoutesShell \ #PluginShell [ 'OrmCacheShell Z I18nShell Y +CompletionShell X -CommandListShell W Route V 'RedirectRoute U -PluginShortRoute T )InflectedRoute S #DashedRoute R 'RoutingFilter Q 5LocaleSelectorFilter P ;ControllerFactoryFilter O #AssetFilter N 7MissingRouteException &M MMissingDispatcherFilterException  L AMissingControllerException K Router J +RouteCollection I %RouteBuilder H -DispatcherFilter G /DispatcherFactory F !Dispatcher E IsUnique D ExistsIn C %TableLocator  B AMissingTableClassException A 9MissingEntityException @ =MissingBehaviorException ? %TreeBehavior > /TranslateBehavior = /TimestampBehavior < 5CounterCacheBehavior ; 'TableRegistry : Table 9 %RulesChecker 8 ResultSet 7 Query 6 !Marshaller 5 +LazyEagerLoader 4 Entity 3 #EagerLoader 2 'EagerLoadable    B z^= aK.o]H4hL0sX8 




k
S
<
$

					b	H	8		wbVB,yePC/y[;}^K5#r[D'qQ;pYG.`B                h 7TestSecurityComponent+!g CRequestHandlerComponentTest+f 9PaginatorComponentTest+e ;PaginatorTestController+d 1FlashComponentTest+c /CsrfComponentTest+b 3CookieComponentTest+a /AuthComponentTest+` -TaskRegistryTest*_ ShellTest*^ )TestBananaTask*] 'TestAppleTask*\ )ShellTestShell*[ !MergeShell*Z 3ShellDispatcherTest*Y /HelpFormatterTest*X 1HelperRegistryTest*W /ConsoleOutputTest*V ;ConsoleOptionParserTest*U 'ConsoleIoTest*T ;ConsoleErrorHandlerTest*S -TreeIteratorTest)R -SortIteratorTest)Q 3ReplaceIteratorTest)P 'MapReduceTest)O 1InsertIteratorTest)N 1FilterIteratorTest)M 3ExtractIteratorTest)L 5BufferedIteratorTest)K )CollectionTest(J )TestCollection(I -XcacheEngineTest'H 1WincacheEngineTest'G +RedisEngineTest'F 3MemcachedEngineTest'E 3TestMemcachedEngine'D )FileEngineTest'C 'ApcEngineTest'B CacheTest&A 'DatabaseSuite%@ !BasicsTest%? 9WeakPasswordHasherTest$> 1SessionStorageTest$= ?PasswordHasherFactoryTest$< 5FormAuthenticateTest$ ; AFallbackPasswordHasherTest$: 9DigestAuthenticateTest$9 ?DefaultPasswordHasherTest$8 ;ControllerAuthorizeTest$7 7BasicAuthenticateTest$6 ;EventListenerTestHelper#5 %BananaHelper#4 CelloCell"3 %ArticlesCell"2 )CustomJsonView!1 AppView!0 'TestAppEngine / 5TestingDispatchShell. #SampleShell
- I18m, %SimpleHelper+ #DashedRoute* /TestAppLibSession) TagsTable( !PostsTable' 3PaginatorPostsTable& I18nTable% )AuthUsersTable$ %AuthorsTable# /ArticlesTagsTable" 'ArticlesTable! #VirtualUser	  Tag %NonExtending Extending Author #ArticlesTag Article /SluggableBehavior /DuplicateBehavior !TestMailer !TestAppLog ?TestAppsExceptionRenderer TestApp /TestAuthComponent" ESomethingWithCookieComponent 1ParamTestComponent +OrangeComponent% KMutuallyReferencingTwoComponent% KMutuallyReferencingOneComponent /MergeVarComponent +BananaComponent )AppleComponent +PostsController
 3TestsAppsController	 ;TestAppsErrorController 3SomePagesController" ERequestHandlerTestController ;RequestActionController +PostsController +PagesController ;ComponentTestController 1AuthTestController 'AppController  1AbstractController 1TestAppCacheEngine~ -TestAuthenticate} %WelcomeShell| %ExampleShell{ 'CommentsTablez +ArticlesFixturey 3TestPluginAppHelperx 3PluggedHelperHelperw /OtherHelperHelperv DummyCellu ?ConfigureTestVendorSample
t ?SamplePluginClassTestName
s )ExampleExample
r -TestPluginEngine	q 'OtherTaskTaskp 'ExampleHelpero #SampleShelln %ExampleShellm TestRoutel 5TestDispatcherFilterk 7Test2DispatcherFilterj /TestPluginSessioni ;TestPluginCommentsTableh 'CommentsTableg %AuthorsTablef Commente Authord 5PersisterOneBehavior c 'TestPluginLog b 9TestPluginOtherLibrary a /TestPluginLibrary ` )CustomLibClass !_ CTestPluginExceptionRenderer ^ !TestSource ] +TestsController \ 5TestPluginController [ ;TestPluginAppController Z =TestPluginOtherComponent Y 3TestPluginComponent X -PluginsComponent W )OtherComponent V 1CommentsController U 7TestPluginCacheEngine T 5LegacyPasswordHasher    L rN7!lL9lV?" eD(u\@0 





x
c
L
.
!
					|	g	N	5	^DraB/k[F4"|iVD1xdQ8t\?*taU< 	tbL             'TableUuidTestG TableTestG !UsersTableG /TableRegistryTestG!  CRulesCheckerIntegrationTestG 'ResultSetTestG~ QueryTestG} 3QueryRegressionTestG| )MarshallerTestG{ 3GreedyCommentsTableGz -ProtectedArticleG	y TagGx !OpenEntityGw !EntityTestGv +EagerLoaderTestGu -CompositeKeyTestGt /OpenArticleEntityGs )BindingKeyTestGr %BehaviorTestGq 'Test3BehaviorGp 'Test2BehaviorGo %TestBehaviorGn 5BehaviorRegistryTestGm +AssociationTestGl TestTableGk 5AssociationProxyTestGj ?AssociationCollectionTestGi !HasOneTestFh #HasManyTestFg 'BelongsToTestFf /BelongsToManyTestFe 3DatabaseSessionTestEd -CacheSessionTestEc !SocketTestDb #SessionTestDa 3TestDatabaseSessionD` -TestCacheSessionD_ %ResponseTestD^ #RequestTestD] %ResponseTestC\ #RequestTestC[ %FormDataTestCZ 5CookieCollectionTestCY !ClientTestCX OauthTestBW !DigestTestBV !StreamTestAU /SmtpTransportTest@T /SmtpTestTransport@S /MailTransportTest@R 1DebugTransportTest@Q !MailerTest?P 5MailerAwareTraitTest?
O Stub?N EmailTest?M TestEmail?L %LogTraitTest>K LogTest>J 'SyslogLogTest=I #FileLogTest=H !JsonObject=G %StringObject=F )ConsoleLogTest=E -PoFileParserTest<D -MoFileParserTest<C TimeTest;B +PluralRulesTest;A !NumberTest;@ 9MessagesFileLoaderTest;? I18nTest;> 5SprintfFormatterTest;= -IcuFormatterTest;< !SchemaTest:; FormTest:: !FolderTest99 FileTest98 EventTest87 -EventManagerTest8&6 MCustomTestEventListenerInterface85 /EventTestListener84 =EventDispatcherTraitTest83 7ExceptionRendererTest72 1MissingWidgetThing7!1 CMissingWidgetThingException70 ?MyCustomExceptionRenderer7/ 3TestErrorController7. 1BlueberryComponent7- -ErrorHandlerTest7, -TestErrorHandler7+ %DebuggerTest7* +DebuggableThing7) =DebuggerTestCaseDebugger7( -RulesCheckerTest6' 9ResultSetDecoratorTest6& +QueryCacherTest6% 3ModelAwareTraitTest6
$ Stub6# 7ConnectionManagerTest6" )FakeConnection6! %UuidTypeTest5  %TimeTypeTest5 +IntegerTypeTest5 'FloatTypeTest5 %DateTypeTest5 -DateTimeTypeTest5 )BinaryTypeTest5 7StatemetDecoratorTest4 TableTest3 FooType3 3SqlserverSchemaTest3 -SqliteSchemaTest3 1PostgresSchemaTest3 +MysqlSchemaTest3 )CollectionTest3 +QueryLoggerTest2 5LoggingStatementTest2 +LoggedQueryTest2 3TupleComparisonTest1 3QueryExpressionTest1 =IdentifierExpressionTest1 9FunctionExpressionTest1 1CaseExpressionTest1
 'SqlserverTest0	 !SqliteTest0 %PostgresTest0 MysqlTest0 TypeTest/ FooType/ QueryTest/ 5FunctionsBuilderTest/ )ConnectionTest/ 'PhpConfigTest.  )JsonConfigTest. 'IniConfigTest.~ 7StaticConfigTraitTest-} 3TestLogStaticConfig-| 7TestEmailStaticConfig-{ 7TestCacheStaticConfig-'z OTestConnectionManagerStaticConfig-y !PluginTest-x ;InstanceConfigTraitTest- w AReadOnlyTestInstanceConfig-v 1TestInstanceConfig-u 'ConfigureTest-t AppTest-s 3PagesControllerTest,r )ControllerTest,q 7AnotherTestController,p 'TestComponent,o )TestController,!n CControllerTestAppController,m 'ComponentTest,l 7ComponentRegistryTest,k 5CookieAliasComponent,j 7SecurityComponentTest+i 9SecurityTestController+   S }mO6#bK-~eI6eB&|gP5






k
X
D
3


							d	J	3		mR2qJ9rW@)
|eN6dI*mN5rZG3nS                          1NoChildrenIteratorb %NestIteratorb MapReduceb )InsertIteratorb )FilterIteratorb +ExtractIteratorb -BufferedIteratorb !Collectiona %XcacheEngine` )WincacheEngine` #RedisEngine` !NullEngine` +MemcachedEngine` !FileEngine` ApcEngine` 'CacheRegistry_ #CacheEngine_ Cache_ )SessionStorage^
 'MemoryStorage^	 1WeakPasswordHasher] 7PasswordHasherFactory] -FormAuthenticate] 9FallbackPasswordHasher] 1DigestAuthenticate] 7DefaultPasswordHasher] 3ControllerAuthorize] /BasicAuthenticate] 'BaseAuthorize]  -BaseAuthenticate] 9AbstractPasswordHasher]~ 9WidgetRegistryTestCaseY} 1TextareaWidgetTestY| 3SelectBoxWidgetTestY{ +RadioWidgetTestYz ;MultiCheckboxWidgetTestYy +LabelWidgetTestYx )FileWidgetTestYw 1DateTimeWidgetTestYv 1CheckboxWidgetTestYu -ButtonWidgetTestYt +BasicWidgetTestYs )TimeHelperTestXr )TextHelperTestXq !StringMockXp 5TextHelperTestObjectXo 'RssHelperTestXn 3PaginatorHelperTestXm -NumberHelperTestXl !NumberMockXk 9NumberHelperTestObjectXj )HtmlHelperTestXi )FormHelperTestXh 1ValidateUsersTableXg 'ContactsTableXf ArticleXe +FlashHelperTestXd +FormContextTestWc /EntityContextTestWb ArticleWa -ArrayContextTestW` #XmlViewTestV_ /ViewVarsTraitTestV^ ViewTestV$] ITestViewEventListenerInterfaceV\ ?TestObjectWithoutToStringV[ 9TestObjectWithToStringVZ 7TestBeforeAfterHelperVY TestViewVX 5ThemePostsControllerVW 3ViewPostsControllerVV +ViewBuilderTestVU ;StringTemplateTraitTestVT 1TestStringTemplateVS 1StringTemplateTestVR %JsonViewTestVQ !HelperTestVP !TestHelperVO 1HelperRegistryTestVN +HtmlAliasHelperVM 'UrlHelperTestVL CellTestVK 'ValidatorTestUJ )ValidationTestUI /ValidationSetTestUH 1ValidationRuleTestUG /RulesProviderTestUF XmlTestTE TextTestTD %SecurityTestTC ;MergeVariablesTraitTestTB !GrandchildTA ChildT
@ BaseT? 'InflectorTestT> HashTestT= #OpenSslTestS< !McryptTestS; 'TestSuiteTestR: +TestFixtureTestR9 )ImportsFixtureR8 3StringsTestsFixtureR7 +ArticlesFixtureR6 %TestCaseTestR5 3SecondaryPostsTableR4 ;IntegrationTestCaseTestR3 1FixtureManagerTestQ2 )UnloadTaskTestP1 %LoadTaskTestP0 +ExtractTaskTestP/ )AssetsTaskTestP. +TableHelperTestO- 1ProgressHelperTestO, +RoutesShellTestN+ /OrmCacheShellTestN* 'I18nShellTestN) 3CompletionShellTestN ( ATestCompletionStringOutputN' 5CommandListShellTestN& RouteTestM% /RedirectRouteTestM$ 5PluginShortRouteTestM# +DashedRouteTestM" /RoutingFilterTestL! =LocaleSelectorFilterTestL  +AssetFilterTestL !RouterTestK 3RouteCollectionTestK -RouteBuilderTestK 9RequestActionTraitTestK )DispatcherTestK 9ArticlesTestControllerK ?ArticlesTestAppControllerK 5OtherPagesControllerK 1MyPluginControllerK 7MyPluginAppControllerK )TestDispatcherK 9DispatcherMockResponseK 5DispatcherFilterTestK 7DispatcherFactoryTestK -TableLocatorTestJ %MyUsersTableJ 7LocatorAwareTraitTestJ 1TranslateTraitTestI !TestEntityI -TreeBehaviorTestH 7TranslateBehaviorTestH
 ArticleH	 7TimestampBehaviorTestH =CounterCacheBehaviorTestH PostTableH 9BehaviorRegressionTestH !NumberTreeH   c yeI4s]O7"	u_G1nO-!mZK9






z
f
X
G
8
&
					~	c	F	,	lY@-|gO4tZ?+nN5$rcG:'nU@+jK4~c             D 1ForbiddenExceptionC /ConflictExceptionB 3BadRequestExceptionA Socket@ Session? Response> Request= #CorsBuilder< 'SmtpTransport; 'MailTransport: )DebugTransport9 9MissingMailerException8 9MissingActionException7 Mailer~6 Email~5 /AbstractTransport~4 /LogEngineRegistry}	3 Log}2 SyslogLog|1 FileLog|0 !ConsoleLog|/ BaseLog|. %PoFileParser{- %MoFileParser{, -SprintfFormatterz+ %IcuFormatterz* 1TranslatorRegistryy
) Timey( 7RelativeTimeFormattery' #PluralRulesy& Numbery% 1MessagesFileLoadery
$ I18ny# !FrozenTimey" !FrozenDatey
! Datey  3ChainMessagesLoadery Schemax
 Formx Folderw
 Filew %EventManagerv Eventv 1PHP7ErrorExceptionu 3FatalErrorExceptionu /ExceptionRendereru %ErrorHandleru Debuggeru -BaseErrorHandleru ;RecordNotFoundExceptiont 7MissingModelExceptiont  AMissingDatasourceExceptiont& MMissingDatasourceConfigExceptiont  AInvalidPrimaryKeyExceptiont %RulesCheckers 1ResultSetDecorators #QueryCachers 1ConnectionRegistrys
 /ConnectionManagers	 UuidTyper TimeTyper !StringTyper #IntegerTyper FloatTyper DateTyper %DateTimeTyper BoolTyper !BinaryTyper  1StatementDecoratorq 1SqlserverStatementq~ +SqliteStatementq} %PDOStatementq| )MysqlStatementq{ /CallbackStatementqz /BufferedStatementqy Tablepx +SqlserverSchemapw %SqliteSchemapv )PostgresSchemapu #MysqlSchemapt !Collectionps -CachedCollectionpr !BaseSchemapq #QueryLoggerop -LoggingStatementoo #LoggedQueryon -ValuesExpressionnm +UnaryExpressionnl +TupleComparisonnk +QueryExpressionnj 7OrderClauseExpressionni /OrderByExpressionnh 5IdentifierExpressionng 1FunctionExpressionnf !Comparisonne )CaseExpressionnd /BetweenExpressionnc ?MissingExtensionExceptionmb 9MissingDriverExceptionm a AMissingConnectionExceptionm` Sqlserverl_ Sqlitel^ Postgresl] Mysqll\ #ValueBinderk[ TypeMapk
Z TypekY /SqlserverCompilerkX )SqliteCompilerkW 'QueryCompilerkV QuerykU -IdentifierQuoterkT -FunctionsBuilderkS 1FieldTypeConverterkR ExceptionkQ DriverkP !ConnectionkO 9MissingPluginExceptionjN ExceptionjM PhpConfigiL !JsonConfigiK IniConfigiJ PluginhI )ObjectRegistryhH ConfigurehG #ClassLoaderh	F ApphE ?MissingComponentExceptiongD 9MissingActionExceptiongC +ErrorControllerfB !ControllerfA /ComponentRegistryf@ Componentf? /SecurityComponente> ;RequestHandlerComponente= 1PaginatorComponente< )FlashComponente; 'CsrfComponente: +CookieComponente9 'AuthComponente8 'StopExceptiond7 5MissingTaskExceptiond!6 CMissingShellMethodExceptiond5 7MissingShellExceptiond4 9MissingHelperExceptiond3 -ConsoleExceptiond2 %TaskRegistryc1 +ShellDispatcherc0 Shellc/ 'HelpFormatterc. )HelperRegistryc- Helperc, 'ConsoleOutputc+ 3ConsoleOptionParserc* ConsoleIoc) 9ConsoleInputSubcommandc( 1ConsoleInputOptionc' 5ConsoleInputArgumentc& %ConsoleInputc% 3ConsoleErrorHandlerc$ #ZipIteratorb# )UnfoldIteratorb" #TreePrinterb! %TreeIteratorb  /StoppableIteratorb %SortIteratorb +ReplaceIteratorb   X qR8u\K;+gV='cI/mS:%




z
f
F
)
							z	h	R	>	*	t]I-
rfP=&{n\H8{^I3|iVD0{cL5w^B(yX    j =CounterCacheUsersFixture*i UCounterCacheUserCategoryPostsFixtureh =CounterCachePostsFixture#g GCounterCacheCategoriesFixture f ACompositeIncrementsFixturee +CommentsFixtured /CategoriesFixturec 3CakeSessionsFixtureb -AuthUsersFixturea 1AuthorsTagsFixture` )AuthorsFixture_ 1AttachmentsFixture^ ?AssertIntegrationTestCase] 1AssertHtmlTestCase\ 3ArticlesTagsFixture[ +ArticlesFixtureZ )WidgetRegistryY )TextareaWidgetX +SelectBoxWidgetW #RadioWidgetV 1NestingLabelWidgetU 3MultiCheckboxWidgetT #LabelWidgetS !FileWidgetR )DateTimeWidgetQ )CheckboxWidgetP %ButtonWidgetO #BasicWidgetN UrlHelperM !TimeHelperL !TextHelperK 'SessionHelperJ RssHelperI +PaginatorHelperH %NumberHelperG !HtmlHelperF !FormHelperE #FlashHelperD #NullContextC #FormContextB 'EntityContextA %ArrayContext@ 5MissingViewException? =MissingTemplateException> 9MissingLayoutException= 9MissingHelperException< ;MissingElementException; =MissingCellViewException: 5MissingCellException9 XmlView8 #ViewBuilder7 ViewBlock
6 View5 )StringTemplate4 )SerializedView3 JsonView2 )HelperRegistry1 Helper
0 Cell/ AjaxView. Validator- 'ValidationSet, )ValidationRule+ !Validation* 'RulesProvider	) Xml
( Text' Security& Inflector
% Hash$ %XmlException# OpenSsl" Mcrypt! Response  'ConsoleOutput TestSuite TestCase 3IntegrationTestCase #TestFixture )FixtureManager +FixtureInjector !UnloadTask LoadTask #ExtractTask #CommandTask !AssetsTask #TableHelper )ProgressHelper #ServerShell #RoutesShell #PluginShell 'OrmCacheShell I18nShell +CompletionShell -CommandListShell Route
 'RedirectRoute	 -PluginShortRoute )InflectedRoute #DashedRoute 'RoutingFilter 5LocaleSelectorFilter ;ControllerFactoryFilter #AssetFilter /RedirectException 7MissingRouteException&  MMissingDispatcherFilterException  AMissingControllerException~ Router} +RouteCollection| %RouteBuilder{ -DispatcherFilterz /DispatcherFactoryy !Dispatcherx IsUniquew ExistsInv %TableLocator u AMissingTableClassExceptiont 9MissingEntityExceptions =MissingBehaviorExceptionr %TreeBehaviorq /TranslateBehaviorp /TimestampBehavioro 5CounterCacheBehaviorn 'TableRegistrym Tablel %RulesCheckerk ResultSetj Queryi !Marshallerh +LazyEagerLoaderg Entityf #EagerLoadere 'EagerLoadabled -BehaviorRegistryc Behaviorb 7AssociationCollectiona #Association` HasOne_ HasMany^ 'BelongsToMany] BelongsTo\ +DatabaseSession[ %CacheSession
Z PartY ResponseX RequestW MessageV FormDataU -CookieCollectionT ClientS OauthR DigestQ BasicP StreamO 7UnauthorizedExceptionN +SocketException!M CServiceUnavailableExceptionL ;NotImplementedExceptionK /NotFoundExceptionJ 9NotAcceptableExceptionI ?MethodNotAllowedExceptionH ?InvalidCsrfTokenExceptionG 9InternalErrorExceptionF 'HttpExceptionE 'GoneException   9 bG1t\A-oaF!uY8{\F)






j
X
C
/

					}	c	G	+	pZ?hH,{cH#	}mYJ8#yfT:&n\G'	hF+lT9       1WincacheEngineTest +RedisEngineTest~ 3MemcachedEngineTest} 3TestMemcachedEngine| )FileEngineTest{ 'ApcEngineTestz CacheTesty 'DatabaseSuitex !BasicsTestw 9WeakPasswordHasherTestv 1SessionStorageTestu ?PasswordHasherFactoryTestt 5FormAuthenticateTest s AFallbackPasswordHasherTestr 9DigestAuthenticateTestq ?DefaultPasswordHasherTestp ;ControllerAuthorizeTesto 7BasicAuthenticateTestn ;EventListenerTestHelperm %BananaHelperl CelloCellk %ArticlesCellj )CustomJsonViewi AppViewh 'TestAppEngineg !SampleTaskf 5TestingDispatchShelle #SampleShell
d I18mc %SimpleHelperb #DashedRoutea /TestAppLibSession` TagsTable_ !PostsTable^ 3PaginatorPostsTable] I18nTable\ )AuthUsersTable[ %AuthorsTableZ /ArticlesTagsTableY 'ArticlesTableX #VirtualUser	W TagV %NonExtendingU ExtendingT AuthorS #ArticlesTagR ArticleQ /SluggableBehaviorP /DuplicateBehaviorO !TestMailerN !TestAppLogM ?TestAppsExceptionRendererL TestAppK /TestAuthComponent"J ESomethingWithCookieComponentI 1ParamTestComponentH +OrangeComponent%G KMutuallyReferencingTwoComponent%F KMutuallyReferencingOneComponentE /MergeVarComponentD +BananaComponentC )AppleComponentB +PostsControllerA 3TestsAppsController@ ;TestAppsErrorController? 3SomePagesController"> ERequestHandlerTestController= ;RequestActionController< +PostsController; +PagesController#: GCookieComponentTestController9 ;ComponentTestController8 1AuthTestController7 'AppController6 1AbstractController5 1TestAppCacheEngine4 -TestAuthenticate3 %WelcomeShell2 #UniqueShell1 %ExampleShell0 'CommentsTable/ +ArticlesFixture. 3TestPluginAppHelper- 3PluggedHelperHelper, /OtherHelperHelper+ DummyCell* ?ConfigureTestVendorSample) ?SamplePluginClassTestName( )ExampleExample' -TestPluginEngine& 'OtherTaskTask% 'ExampleHelper$ #SampleShell# %ExampleShell" TestRoute! 5TestDispatcherFilter  7Test2DispatcherFilter /TestPluginSession ;TestPluginCommentsTable 'CommentsTable %AuthorsTable Comment Author 5PersisterOneBehavior 'TestPluginLog 9TestPluginOtherLibrary /TestPluginLibrary )CustomLibClass! CTestPluginExceptionRenderer !TestSource +TestsController 5TestPluginController ;TestPluginAppController =TestPluginOtherComponent 3TestPluginComponent -PluginsComponent )OtherComponent 1CommentsController
 7TestPluginCacheEngine	 5LegacyPasswordHasher +ArticlesFixture Hello" ETestPluginThreeCommentsTable 1SomethingComponent Hello 7UuidportfoliosFixture -UuiditemsFixture %UsersFixture  /TranslatesFixture 'ThingsFixture~ ?TestPluginCommentsFixture} ;TagsTranslationsFixture| #TagsFixture{ 1SpecialTagsFixturez +SiteTagsFixturey 1SiteAuthorsFixturex ;SiteArticlesTagsFixturew 3SiteArticlesFixturev +SessionsFixtureu +ProductsFixturet %PostsFixtures =PolymorphicTaggedFixturer 'OrdersFixtureq 1NumberTreesFixturep 5MenuLinkTreesFixtureo )MembersFixturen 5GroupsMembersFixturem 'GroupsFixturel 1FixturizedTestCasek 3FeaturedTagsFixture   G eJ4v[A%mS8z]?)xhR<!





e
I
+
								o	Z	G	1	iQ:"{fM8"
kS4dBhVE2!l[B)wjM:w[G                  #SessionTest 3TestDatabaseSession -TestCacheSession %ResponseTest #RequestTest +CorsBuilderTest /SmtpTransportTest /SmtpTestTransport /MailTransportTest 1DebugTransportTest !MailerTest 5MailerAwareTraitTest
 Stub
 EmailTest	 TestEmail %LogTraitTest LogTest 'SyslogLogTest #FileLogTest !JsonObject %StringObject )ConsoleLogTest -PoFileParserTest  -MoFileParserTest TimeTest~ +PluralRulesTest} !NumberTest| 9MessagesFileLoaderTest{ I18nTestz 5SprintfFormatterTesty -IcuFormatterTestx DateTestw !SchemaTestv FormTestu !FolderTestt FileTests EventTestr -EventManagerTest&q MCustomTestEventListenerInterfacep /EventTestListenero =EventDispatcherTraitTestn 7ExceptionRendererTestm 1MissingWidgetThing!l CMissingWidgetThingExceptionk ?MyCustomExceptionRendererj 3TestErrorControlleri 1BlueberryComponenth -ErrorHandlerTestg -TestErrorHandlerf %DebuggerTeste +DebuggableThingd =DebuggerTestCaseDebuggerc -RulesCheckerTestb 9ResultSetDecoratorTesta +QueryCacherTest` 3ModelAwareTraitTest
_ Stub^ 7ConnectionManagerTest] )FakeConnection\ %UuidTypeTest[ %TimeTypeTestZ )StringTypeTestY +IntegerTypeTestX 'FloatTypeTestW %DateTypeTestV -DateTimeTypeTestU %BoolTypeTestT )BinaryTypeTestS 7StatemetDecoratorTestR TableTestQ FooTypeP 3SqlserverSchemaTestO -SqliteSchemaTestN 1PostgresSchemaTestM +MysqlSchemaTestL )CollectionTestK +QueryLoggerTestJ 5LoggingStatementTestI +LoggedQueryTestH 3TupleComparisonTestG 3QueryExpressionTestF =IdentifierExpressionTestE 9FunctionExpressionTestD 1CaseExpressionTestC 'SqlserverTestB !SqliteTestA %PostgresTest@ MysqlTest? TypeTest> FooType= QueryTest< 5FunctionsBuilderTest; )ConnectionTest: 'PhpConfigTest9 )JsonConfigTest8 'IniConfigTest7 7StaticConfigTraitTest6 3TestLogStaticConfig5 7TestEmailStaticConfig4 7TestCacheStaticConfig'3 OTestConnectionManagerStaticConfig2 !PluginTest1 ;InstanceConfigTraitTest 0 AReadOnlyTestInstanceConfig/ 1TestInstanceConfig. 'FunctionsTest- 'ConfigureTest, AppTest(+ QCookieEncryptedUsingControllerTest* )ControllerTest) 7AnotherTestController( 'TestComponent' )TestController!& CControllerTestAppController% 'ComponentTest$ 7ComponentRegistryTest# 5CookieAliasComponent" 7SecurityComponentTest! 9SecurityTestController  7TestSecurityComponent! CRequestHandlerComponentTest 9PaginatorComponentTest ;PaginatorTestController 1FlashComponentTest /CsrfComponentTest 3CookieComponentTest /AuthComponentTest -TaskRegistryTest ShellTest )TestBananaTask 'TestAppleTask )ShellTestShell !MergeShell 3ShellDispatcherTest /HelpFormatterTest 1HelperRegistryTest /ConsoleOutputTest ;ConsoleOptionParserTest 'ConsoleIoTest ;ConsoleErrorHandlerTest -TreeIteratorTest
 -SortIteratorTest	 3ReplaceIteratorTest 'MapReduceTest 1InsertIteratorTest 1FilterIteratorTest 3ExtractIteratorTest 5BufferedIteratorTest )CollectionTest )TestCollection -XcacheEngineTest   H p\G.|jR5 
}jWK2}jXB/xeJ,





o
T
7
						x	`	?	%	hR8 ybG'}jVE/"v\E/dD,\K1iR;	w`H        3 +BasicWidgetTest2 )TimeHelperTest
1 )TextHelperTest
0 !StringMock
/ 5TextHelperTestObject
. 'RssHelperTest
- 3PaginatorHelperTest
, -NumberHelperTest
+ !NumberMock
* 9NumberHelperTestObject
) )HtmlHelperTest
( )FormHelperTest
' 1ValidateUsersTable
& 'ContactsTable
% Article
$ +FlashHelperTest
# +FormContextTest	" /EntityContextTest	! Article	  -ArrayContextTest	 #XmlViewTest /ViewVarsTraitTest ViewTest$ ITestViewEventListenerInterface ?TestObjectWithoutToString 9TestObjectWithToString 7TestBeforeAfterHelper TestView 5ThemePostsController 3ViewPostsController +ViewBuilderTest ;StringTemplateTraitTest 1TestStringTemplate 1StringTemplateTest %JsonViewTest !HelperTest !TestHelper 1HelperRegistryTest +HtmlAliasHelper 'UrlHelperTest CellTest
 'ValidatorTest	 )ValidationTest /ValidationSetTest 1ValidationRuleTest /RulesProviderTest XmlTest TextTest %SecurityTest ;MergeVariablesTraitTest !Grandchild  Child
 Base~ 'InflectorTest} HashTest| #OpenSslTest{ !McryptTestz 'TestSuiteTesty +TestFixtureTestx )ImportsFixturew 3StringsTestsFixturev +ArticlesFixtureu %TestCaseTestt 3SecondaryPostsTables ;IntegrationTestCaseTestr 1FixtureManagerTestq )UnloadTaskTestp %LoadTaskTesto +ExtractTaskTestn )AssetsTaskTestm +TableHelperTestl 1ProgressHelperTestk +ServerShellTest j +RoutesShellTest i +PluginShellTest h /OrmCacheShellTest g 'I18nShellTest f 3CompletionShellTest  e ATestCompletionStringOutput d 5CommandListShellTest c RouteTestb /RedirectRouteTesta 5PluginShortRouteTest` +DashedRouteTest_ /RoutingFilterTest^ =LocaleSelectorFilterTest] +AssetFilterTest\ !RouterTest[ 3RouteCollectionTestZ -RouteBuilderTestY 9RequestActionTraitTestX )DispatcherTestW 9ArticlesTestControllerV ?ArticlesTestAppControllerU 5OtherPagesControllerT 1MyPluginControllerS 7MyPluginAppControllerR )TestDispatcherQ 9DispatcherMockResponseP 5DispatcherFilterTestO 7DispatcherFactoryTestN -TableLocatorTestM %MyUsersTableL 7LocatorAwareTraitTestK 1TranslateTraitTestJ !TestEntityI -TreeBehaviorTestH 7TranslateBehaviorTestG ArticleF 7TimestampBehaviorTestE =CounterCacheBehaviorTestD PostTableC 9BehaviorRegressionTestB !NumberTreeA 'TableUuidTest@ TableTest? !UsersTable> /TableRegistryTest!= CRulesCheckerIntegrationTest< 'ResultSetTest; QueryTest: 3QueryRegressionTest9 )MarshallerTest8 3GreedyCommentsTable7 -ProtectedArticle	6 Tag5 !OpenEntity4 !EntityTest3 +EagerLoaderTest2 -CompositeKeyTest1 /OpenArticleEntity0 )BindingKeyTest/ %BehaviorTest. 'Test3Behavior- 'Test2Behavior, %TestBehavior+ 5BehaviorRegistryTest* +AssociationTest) TestTable( 5AssociationProxyTest' ?AssociationCollectionTest& !HasOneTest% #HasManyTest$ 'BelongsToTest# /BelongsToManyTest" 3DatabaseSessionTest! -CacheSessionTest  %ResponseTest #RequestTest %FormDataTest 5CookieCollectionTest !ClientTest OauthTest !DigestTest !StreamTest !SocketTest   ^ bJ.pR7waO<$v_M8fQ4






z
l
T
?
&
					|	d	N	7	mN,qR?0|o_K=,vc@%o[B.oU>)kZG6%^                     T AInvalidPrimaryKeyException&S %RulesChecker%R #RuleInvoker%Q 1ResultSetDecorator%P #QueryCacher%O )FactoryLocator%N 1ConnectionRegistry%M /ConnectionManager%L UuidType$K TimeType$J !StringType$I JsonType$H #IntegerType$G FloatType$F DateType$E %DateTimeType$D BoolType$C !BinaryType$B 1StatementDecorator#A 1SqlserverStatement#@ +SqliteStatement#? %PDOStatement#> )MysqlStatement#= /CallbackStatement#< /BufferedStatement#; Table": +SqlserverSchema"9 %SqliteSchema"8 )PostgresSchema"7 #MysqlSchema"6 !Collection"5 -CachedCollection"4 !BaseSchema"3 #QueryLogger!2 -LoggingStatement!1 #LoggedQuery!0 -ValuesExpression / +UnaryExpression . +TupleComparison - +QueryExpression , 7OrderClauseExpression + /OrderByExpression * 5IdentifierExpression ) 1FunctionExpression  ( ACrossSchemaTableExpression ' !Comparison & )CaseExpression % /BetweenExpression $ ?MissingExtensionException# 9MissingDriverException " AMissingConnectionException! Sqlserver  Sqlite Postgres Mysql #ValueBinder TypeMap
 Type /SqlserverCompiler )SqliteCompiler 'QueryCompiler Query -IdentifierQuoter -FunctionsBuilder 1FieldTypeConverter Exception Driver !Connection 9MissingPluginException Exception PhpConfig !JsonConfig IniConfig Plugin
 )ObjectRegistry	 Configure #ClassLoader	 App /SecurityException ?MissingComponentException 9MissingActionException 7AuthSecurityException +ErrorController !Controller  /ComponentRegistry Component~ /SecurityComponent} ;RequestHandlerComponent| 1PaginatorComponent{ )FlashComponentz 'CsrfComponenty +CookieComponentx 'AuthComponentw 'StopExceptionv 5MissingTaskException!u CMissingShellMethodExceptiont 7MissingShellExceptions 9MissingHelperExceptionr -ConsoleExceptionq %TaskRegistryp +ShellDispatchero Shelln 'HelpFormatterm )HelperRegistryl Helperk 'ConsoleOutputj 3ConsoleOptionParseri ConsoleIoh 9ConsoleInputSubcommandg 1ConsoleInputOptionf 5ConsoleInputArgumente %ConsoleInputd 3ConsoleErrorHandlerc #ZipIteratorb )UnfoldIteratora #TreePrinter` %TreeIterator_ /StoppableIterator^ %SortIterator] +ReplaceIterator\ 1NoChildrenIterator[ %NestIteratorZ MapReduceY )InsertIteratorX )FilterIteratorW +ExtractIteratorV -BufferedIteratorU !CollectionT %XcacheEngineS )WincacheEngineR #RedisEngineQ !NullEngineP +MemcachedEngineO !FileEngineN ApcEngineM 'CacheRegistryL #CacheEngineK CacheJ )SessionStorageI 'MemoryStorageH 1WeakPasswordHasherG 7PasswordHasherFactoryF -FormAuthenticateE 9FallbackPasswordHasherD 1DigestAuthenticateC 7DefaultPasswordHasherB 3ControllerAuthorizeA /BasicAuthenticate@ 'BaseAuthorize? -BaseAuthenticate> 9AbstractPasswordHasher= 9WidgetRegistryTestCase< 1TextareaWidgetTest; 3SelectBoxWidgetTest: +RadioWidgetTest9 ;MultiCheckboxWidgetTest8 +LabelWidgetTest7 )FileWidgetTest6 1DateTimeWidgetTest5 1CheckboxWidgetTest4 -ButtonWidgetTest   ` v]L7seS>1"y]N?"x\O<)jI4







}
^
?
(
								r	W	A	+	oK3uaC2r\?%lWF5"}T6oX?)s\H5!|`              y 3IntegrationTestCaseMx #TestFixtureLw )FixtureManagerLv +FixtureInjectorLu )EventFiredWithKt !EventFiredKs !UnloadTaskJr LoadTaskJq #ExtractTaskJp #CommandTaskJo !AssetsTaskJn #TableHelperIm )ProgressHelperIl #ServerShellHk #RoutesShellHj #PluginShellHi 'OrmCacheShellHh I18nShellHg +CompletionShellHf -CommandListShellHe !CacheShellHd RouteGc 'RedirectRouteGb -PluginShortRouteGa )InflectedRouteG` #DashedRouteG_ /RoutingMiddlewareF^ +AssetMiddlewareF] 'RoutingFilterE\ 5LocaleSelectorFilterE[ ;ControllerFactoryFilterEZ #AssetFilterEY /RedirectExceptionDX 7MissingRouteExceptionD&W MMissingDispatcherFilterExceptionD V AMissingControllerExceptionDU RouterCT +RouteCollectionCS %RouteBuilderCR -DispatcherFilterCQ /DispatcherFactoryCP !DispatcherCO !ValidCountBN IsUniqueBM ExistsInBL %TableLocatorA$K IRolledbackTransactionException@ J AMissingTableClassException@I 9MissingEntityException@H =MissingBehaviorException@G %TreeBehavior?F /TranslateBehavior?E /TimestampBehavior?D 5CounterCacheBehavior?C 'TableRegistry>B Table>A %RulesChecker>@ ResultSet>? Query>> !Marshaller>= +LazyEagerLoader>< Entity>; #EagerLoader>: 'EagerLoadable>9 -BehaviorRegistry>8 Behavior>7 7AssociationCollection>6 #Association>5 HasOne=4 HasMany=3 'BelongsToMany=2 BelongsTo=1 +DatabaseSession<0 %CacheSession<)/ SUnavailableForLegalReasonsException;. 7UnauthorizedException;- +SocketException;!, CServiceUnavailableException;+ ;NotImplementedException;* /NotFoundException;) 9NotAcceptableException;( ?MethodNotAllowedException;' ?InvalidCsrfTokenException;& 9InternalErrorException;% 'HttpException;$ 'GoneException;# 1ForbiddenException;" /ConflictException;! 3BadRequestException;  Socket: Session: Response: Request: #CorsBuilder: 'SmtpTransport9 'MailTransport9 )DebugTransport9 9MissingMailerException8 9MissingActionException8 Mailer7 Email7 /AbstractTransport7 /LogEngineRegistry6	 Log6 SyslogLog5 FileLog5 !ConsoleLog5 BaseLog5 %PoFileParser4 %MoFileParser4 =LocaleSelectorMiddleware3
 -SprintfFormatter2	 %IcuFormatter2 1TranslatorRegistry1
 Time1 7RelativeTimeFormatter1 #PluralRules1 Number1 1MessagesFileLoader1
 I18n1 !FrozenTime1  !FrozenDate1
 Date1~ 3ChainMessagesLoader1} Response0| Request0{ Message0z %FormDataPart0y FormData0x -CookieCollection0w Oauth/v Digest/u Basic/t Stream.s 5ServerRequestFactory-r Server-q Runner-p 3ResponseTransformer-o 1RequestTransformer-n +MiddlewareQueue-m /ControllerFactory-l Client-k +BaseApplication-j -ActionDispatcher-i Schema,
h Form,g Folder+
f File+e %EventManager*d EventList*c Event*b 9SubjectFilterDecorator)a 1ConditionDecorator)` /AbstractDecorator)_ 9ErrorHandlerMiddleware(^ 1PHP7ErrorException'] 3FatalErrorException'\ /ExceptionRenderer'[ %ErrorHandler'Z Debugger'Y -BaseErrorHandler'X ;RecordNotFoundException&W 7MissingModelException& V AMissingDatasourceException&&U MMissingDatasourceConfigException&   Q yjZE8&vgP?(pQ2zgR:(p\@%





|
Z
?
(
						]	<	mP5}]B*t[=/v[D+sO8bH*vT2!zfQ                  %WelcomeShellz #UniqueShellz %ExampleShellz 'CommentsTabley +ArticlesFixturex 3TestPluginAppHelperw 3PluggedHelperHelperw /OtherHelperHelperw DummyCellv MenuCellu ?ConfigureTestVendorSamplet
 ?SamplePluginClassTestNamet	 )ExampleExamplet -TestPluginEngines 'OtherTaskTaskr 'ExampleHelperq #SampleShellp %ExampleShellp TestRouteo 5TestDispatcherFiltern 7Test2DispatcherFiltern  /TestPluginSessionm ;TestPluginCommentsTablel~ 'CommentsTablel} %AuthorsTablel| Commentk{ Authorkz 5PersisterOneBehaviorjy 'TestPluginLogix 9TestPluginOtherLibraryhw /TestPluginLibraryhv )CustomLibClassg!u CTestPluginExceptionRendererft !TestSourcees !TestDriverdr +TestsControllercq 5TestPluginControllercp ;TestPluginAppControllerco =TestPluginOtherComponentbn 3TestPluginComponentbm -PluginsComponentbl )OtherComponentbk 1CommentsControlleraj 7TestPluginCacheEngine`i 5LegacyPasswordHasher_h +ArticlesFixture^g Hello]"f ETestPluginThreeCommentsTable\e +OvensController[d 1SomethingComponentZc HelloYb 7UuidportfoliosFixtureXa -UuiditemsFixtureX` %UsersFixtureX_ /TranslatesFixtureX^ 'ThingsFixtureX] ?TestPluginCommentsFixtureX\ ;TagsTranslationsFixtureX[ #TagsFixtureXZ 1SpecialTagsFixtureXY +SiteTagsFixtureXX 1SiteAuthorsFixtureXW ;SiteArticlesTagsFixtureXV 3SiteArticlesFixtureXU +SessionsFixtureXT +ProductsFixtureXS %PostsFixtureXR =PolymorphicTaggedFixtureXQ 'OrdersFixtureXP ;OrderedUuidItemsFixtureXO 1NumberTreesFixtureXN 5MenuLinkTreesFixtureXM )MembersFixtureXL 5GroupsMembersFixtureXK 'GroupsFixtureXJ 1FixturizedTestCaseXI 3FeaturedTagsFixtureXH =CounterCacheUsersFixtureX*G UCounterCacheUserCategoryPostsFixtureXF =CounterCachePostsFixtureX#E GCounterCacheCategoriesFixtureX D ACompositeIncrementsFixtureXC +CommentsFixtureXB /CategoriesFixtureXA 3CakeSessionsFixtureX@ -AuthUsersFixtureX? 1AuthorsTagsFixtureX> )AuthorsFixtureX= 1AttachmentsFixtureX< ?AssertIntegrationTestCaseX; 1AssertHtmlTestCaseX: 3ArticlesTagsFixtureX9 +ArticlesFixtureX8 )WidgetRegistryW7 )TextareaWidgetW6 +SelectBoxWidgetW5 #RadioWidgetW4 1NestingLabelWidgetW3 3MultiCheckboxWidgetW2 #LabelWidgetW1 !FileWidgetW0 )DateTimeWidgetW/ )CheckboxWidgetW. %ButtonWidgetW- #BasicWidgetW, UrlHelperV+ !TimeHelperV* !TextHelperV) 'SessionHelperV( RssHelperV' +PaginatorHelperV& %NumberHelperV% !HtmlHelperV$ !FormHelperV# #FlashHelperV" #NullContextU! #FormContextU  'EntityContextU %ArrayContextU 5MissingViewExceptionT =MissingTemplateExceptionT 9MissingLayoutExceptionT 9MissingHelperExceptionT ;MissingElementExceptionT =MissingCellViewExceptionT 5MissingCellExceptionT XmlViewS #ViewBuilderS ViewBlockS
 ViewS )StringTemplateS )SerializedViewS JsonViewS )HelperRegistryS HelperS
 CellS AjaxViewS ValidatorR 'ValidationSetR
 )ValidationRuleR	 !ValidationR 'RulesProviderR	 XmlQ
 TextQ SecurityQ InflectorQ
 HashQ %XmlExceptionP OpenSslO  McryptO ResponseN~ 'ConsoleOutputN} TestSuiteM| TestCaseM{ 5MiddlewareDispatcherMz ;LegacyRequestDispatcherM   1 lT4}]A)x`E jL9&s_I/






m
`
L
/

							r	T	4	rX=*w[C(r\@'iM:#{`@!gQ- ~`P:$	kM1   ( 3TestLogStaticConfig' 7TestEmailStaticConfig& 7TestCacheStaticConfig'% OTestConnectionManagerStaticConfig$ !PluginTest# ;InstanceConfigTraitTest " AReadOnlyTestInstanceConfig! 1TestInstanceConfig  'FunctionsTest 'ConfigureTest AppTest 7SecurityExceptionTest ?AuthSecurityExceptionTest( QCookieEncryptedUsingControllerTest )ControllerTest 7AnotherTestController 'TestComponent )TestController! CControllerTestAppController 'ComponentTest 7ComponentRegistryTest 5CookieAliasComponent 7SecurityComponentTest 9SecurityTestController 7TestSecurityComponent! CRequestHandlerComponentTest 9PaginatorComponentTest ;PaginatorTestController 1FlashComponentTest /CsrfComponentTest
 3CookieComponentTest	 /AuthComponentTest -TaskRegistryTest ShellTest )TestBananaTask 'TestAppleTask )ShellTestShell !MergeShell 3ShellDispatcherTest /HelpFormatterTest  1HelperRegistryTest /ConsoleOutputTest~ ;ConsoleOptionParserTest} 'ConsoleIoTest| ;ConsoleErrorHandlerTest{ -TreeIteratorTestz -SortIteratorTesty 3ReplaceIteratorTestx 'MapReduceTestw 1InsertIteratorTestv 1FilterIteratorTestu 3ExtractIteratorTestt 5BufferedIteratorTests )CollectionTestr )TestCollectionq -XcacheEngineTestp 1WincacheEngineTesto +RedisEngineTestn 3MemcachedEngineTestm 3TestMemcachedEnginel )FileEngineTestk 'ApcEngineTestj CacheTesti !ServerTesth !RunnerTestg 3BaseApplicationTestf 'DatabaseSuitee !BasicsTestd 1SessionStorageTestc /MemoryStorageTestb 9WeakPasswordHasherTesta ?PasswordHasherFactoryTest` 5FormAuthenticateTest _ AFallbackPasswordHasherTest^ 9DigestAuthenticateTest] ?DefaultPasswordHasherTest\ ;ControllerAuthorizeTest[ 7BasicAuthenticateTestZ ;EventListenerTestHelperY %BananaHelperX CelloCellW %ArticlesCellV MenuCellU )CustomJsonViewT AppViewS 'TestAppEngineR !SampleTaskQ 5TestingDispatchShellP #SampleShell
O I18mN %SimpleHelperM #DashedRouteL /TestAppLibSessionK TagsTableJ !PostsTableI 3PaginatorPostsTableH I18nTableG )AuthUsersTableF %AuthorsTableE /ArticlesTagsTableD 'ArticlesTableC #VirtualUser	B TagA %NonExtending@ Extending? Author> #ArticlesTag= Article< /SluggableBehavior; /DuplicateBehavior: -SampleMiddleware9 !TestMailer8 !TestAppLog7 7MiddlewareApplication"6 EInvalidMiddlewareApplication5 !CompatAuth4 9BadResponseApplication3 ?TestAppsExceptionRenderer2 !TestDriver1 TestApp0 /TestAuthComponent"/ ESomethingWithCookieComponent. 1ParamTestComponent- +OrangeComponent%, KMutuallyReferencingTwoComponent%+ KMutuallyReferencingOneComponent* /MergeVarComponent) +BananaComponent( )AppleComponent' +PostsController& +PostsController% 3TestsAppsController~$ ;TestAppsErrorController~# 3SomePagesController~"" ERequestHandlerTestController~! ;RequestActionController~  +PostsController~ +PagesController~# GCookieComponentTestController~ ;ComponentTestController~ +CakesController~ 1AuthTestController~ 'AppController~ 1AbstractController~ 1TestAppCacheEngine} -TestAuthenticate| #Application{   U ucKtaK0	y\D-nY@+rWJ.





w
^
C
'
					f	C	"	{jW: vYH)jWC-rX>&taO<
|hU3ybH/}kU                       C 'ResultSetTestB QueryTestA 3QueryRegressionTest@ )MarshallerTest? 3GreedyCommentsTable> -ProtectedArticle	= Tag< !OpenEntity; !EntityTest: +EagerLoaderTest9 -CompositeKeyTest8 /OpenArticleEntity7 )BindingKeyTest6 %BehaviorTest5 'Test3Behavior4 'Test2Behavior3 %TestBehavior2 5BehaviorRegistryTest1 +AssociationTest0 TestTable/ 5AssociationProxyTest. ?AssociationCollectionTest- !HasOneTest, #HasManyTest+ 'BelongsToTest* /BelongsToManyTest) 3DatabaseSessionTest( -CacheSessionTest' %ResponseTest& #RequestTest% %FormDataTest$ 5CookieCollectionTest# !ClientTest" OauthTest! !DigestTest  !StreamTest /CakeStreamWrapper !SocketTest #SessionTest 3TestDatabaseSession -TestCacheSession %ResponseTest #RequestTest +CorsBuilderTest /SmtpTransportTest /SmtpTestTransport /MailTransportTest 1DebugTransportTest !MailerTest 5MailerAwareTraitTest
 Stub EmailTest TestEmail %LogTraitTest LogTest 'SyslogLogTest #FileLogTest
 !JsonObject	 %StringObject )ConsoleLogTest -PoFileParserTest -MoFileParserTest" ELocaleSelectorMiddlewareTest TimeTest +PluralRulesTest !NumberTest 9MessagesFileLoaderTest  I18nTest 5SprintfFormatterTest~ -IcuFormatterTest} DateTest| =ServerRequestFactoryTest{ ;ResponseTransformerTestz 9RequestTransformerTesty 3MiddlewareQueueTestx 7ControllerFactoryTestw 5ActionDispatcherTestv !SchemaTestu FormTestt !FolderTests FileTestr EventTestq -EventManagerTest&p MCustomTestEventListenerInterfaceo /EventTestListenern %EvenListTestm =EventDispatcherTraitTest l ASubjectFilterDecoratorTestk 9ConditionDecoratorTest j AErrorHandlerMiddlewareTesti 7ExceptionRendererTesth 1MissingWidgetThing!g CMissingWidgetThingExceptionf ?MyCustomExceptionRenderere 3TestErrorControllerd 1BlueberryComponentc -ErrorHandlerTestb -TestErrorHandlera %DebuggerTest` +DebuggableThing_ =DebuggerTestCaseDebugger^ -RulesCheckerTest] 9ResultSetDecoratorTest\ +QueryCacherTest[ 3ModelAwareTraitTest
Z StubY 1FactoryLocatorTestX 7ConnectionManagerTestW )FakeConnectionV %UuidTypeTestU %TimeTypeTestT )StringTypeTestS %JsonTypeTestR +IntegerTypeTestQ 'FloatTypeTestP %DateTypeTestO -DateTimeTypeTestN %BoolTypeTestM )BinaryTypeTestL 7StatemetDecoratorTestK TableTestJ FooTypeI 3SqlserverSchemaTestH -SqliteSchemaTestG 1PostgresSchemaTestF +MysqlSchemaTestE )CollectionTestD +QueryLoggerTestC 5LoggingStatementTestB +LoggedQueryTestA 3TupleComparisonTest@ 3QueryExpressionTest? =IdentifierExpressionTest> 9FunctionExpressionTest$= ICrossSchemaTableExpressionTest< 1CaseExpressionTest; 'SqlserverTest: !SqliteTest9 %PostgresTest8 MysqlTest7 TypeTest6 FooType5 QueryTest4 5FunctionsBuilderTest3 ?ExpressionTypeCastingTest2 TestType*1 UExpressionTypeCastingIntegrationTest0 +OrderedUuidType/ UuidValue. !DriverTest- )ConnectionTest, 'PhpConfigTest+ )JsonConfigTest* 'IniConfigTest) 7StaticConfigTraitTest   K kX9'sU@'	nV2mSA*nV;#





{
[
?
*
							s	b	L	?	1	ybL;%aI-yhN:!oX9&}eL1xY:!}dF+vbK                 \ )WincacheEngine[ #RedisEngineZ !NullEngineY +MemcachedEngineX !FileEngineW ApcEngineV 'CacheRegistryU #CacheEngineT CacheS )SessionStorageR 'MemoryStorageQ 1WeakPasswordHasherP 7PasswordHasherFactoryO -FormAuthenticateN 9FallbackPasswordHasherM 1DigestAuthenticateL 7DefaultPasswordHasherK 3ControllerAuthorizeJ /BasicAuthenticateI 'BaseAuthorizeH -BaseAuthenticateG 9AbstractPasswordHasherF 9WidgetRegistryTestCaseE 1TextareaWidgetTestD 3SelectBoxWidgetTestC +RadioWidgetTestB ;MultiCheckboxWidgetTestA +LabelWidgetTest@ )FileWidgetTest? 1DateTimeWidgetTest> 1CheckboxWidgetTest= -ButtonWidgetTest< +BasicWidgetTest; )TimeHelperTest: )TextHelperTest9 !StringMock8 5TextHelperTestObject7 'RssHelperTest6 3PaginatorHelperTest5 -NumberHelperTest4 !NumberMock3 9NumberHelperTestObject2 )HtmlHelperTest1 )FormHelperTest0 1ValidateUsersTable/ 'ContactsTable. Article- +FlashHelperTest, +FormContextTest+ /EntityContextTest* Article) -ArrayContextTest( #XmlViewTest' /ViewVarsTraitTest& ViewTest$% ITestViewEventListenerInterface$ ?TestObjectWithoutToString# 9TestObjectWithToString" 7TestBeforeAfterHelper! TestView  5ThemePostsController 3ViewPostsController +ViewBuilderTest ;StringTemplateTraitTest 1TestStringTemplate 1StringTemplateTest %JsonViewTest !HelperTest !TestHelper 1HelperRegistryTest +HtmlAliasHelper 'UrlHelperTest CellTest 'ValidatorTest )ValidationTest /ValidationSetTest 1ValidationRuleTest /RulesProviderTest XmlTest TextTest %SecurityTest ;MergeVariablesTraitTest
 !Grandchild	 Child
 Base 'InflectorTest HashTest #OpenSslTest !McryptTest 'TestSuiteTest +TestFixtureTest )LettersFixture  )ImportsFixture 3StringsTestsFixture~ +ArticlesFixture} %TestCaseTest| 3SecondaryPostsTable{ ;IntegrationTestCaseTestz 1FixtureManagerTesty 1EventFiredWithTestx )EventFiredTestw )UnloadTaskTestv %LoadTaskTestu +ExtractTaskTestt )AssetsTaskTests +TableHelperTestr 1ProgressHelperTestq +ServerShellTestp +RoutesShellTesto +PluginShellTestn /OrmCacheShellTestm 'I18nShellTestl 3CompletionShellTest k ATestCompletionStringOutputj 5CommandListShellTesti )CacheShellTesth RouteTestg /RedirectRouteTestf 5PluginShortRouteTeste 1InflectedRouteTestd +DashedRouteTestc 7RoutingMiddlewareTestb 3AssetMiddlewareTesta /RoutingFilterTest` =LocaleSelectorFilterTest!_ CControllerFactoryFilterTest^ +AssetFilterTest] !RouterTest\ 3RouteCollectionTest[ -RouteBuilderTestZ 9RequestActionTraitTestY )DispatcherTestX 5DispatcherFilterTestW 7DispatcherFactoryTestV -TableLocatorTestU %MyUsersTableT 7LocatorAwareTraitTestS 1TranslateTraitTestR !TestEntityQ -TreeBehaviorTestP 7TranslateBehaviorTestO ArticleN 7TimestampBehaviorTestM =CounterCacheBehaviorTestL PostTableK 9BehaviorRegressionTestJ !NumberTreeI 'TableUuidTestH TableTestG !UsersTableF 3TableRegressionTestE /TableRegistryTest!D CRulesCheckerIntegrationTest   j ygR7
kN3nY@!~hQ6hF, 







l
Y
J
8

							y	e	W	F	7	%	}bE+kX?,u`H-}jYH.X5gH.nV?0j                             'ServerRequest~ Server} Runner| 3ResponseTransformer{ +ResponseEmitterz Responsey 1RequestTransformerx +MiddlewareQueuew /ControllerFactoryv Clientu )CallbackStreamt +BaseApplications -ActionDispatcherr Schema
q Formp Folder
o Filen %EventManagerm EventListl Eventk 9SubjectFilterDecoratorj 1ConditionDecoratori /AbstractDecoratorh 9ErrorHandlerMiddlewareg 1PHP7ErrorExceptionf 3FatalErrorExceptione /ExceptionRendererd %ErrorHandlerc Debuggerb -BaseErrorHandlera ;RecordNotFoundException` 7MissingModelException _ AMissingDatasourceException&^ MMissingDatasourceConfigException ] AInvalidPrimaryKeyException\ %RulesChecker[ #RuleInvokerZ 1ResultSetDecoratorY #QueryCacherX )FactoryLocatorW 1ConnectionRegistryV /ConnectionManagerU UuidTypeT TimeTypeS !StringTypeR JsonTypeQ #IntegerTypeP FloatTypeO #DecimalTypeN DateTypeM %DateTimeTypeL BoolTypeK !BinaryTypeJ 1StatementDecoratorI 1SqlserverStatementH +SqliteStatementG %PDOStatementF )MysqlStatementE /CallbackStatementD /BufferedStatementC #TableSchemaB +SqlserverSchemaA %SqliteSchema@ )PostgresSchema? #MysqlSchema> !Collection= -CachedCollection< !BaseSchema; #QueryLogger: -LoggingStatement9 #LoggedQuery8 -ValuesExpression7 +UnaryExpression6 +TupleComparison5 +QueryExpression4 7OrderClauseExpression3 /OrderByExpression2 5IdentifierExpression1 1FunctionExpression0 !Comparison/ )CaseExpression. /BetweenExpression- ?MissingExtensionException, 9MissingDriverException + AMissingConnectionException* Sqlserver) Sqlite( Postgres' Mysql& #ValueBinder% TypeMap
$ Type# /SqlserverCompiler" )SqliteCompiler! 'QueryCompiler  Query -IdentifierQuoter -FunctionsBuilder 1FieldTypeConverter Exception Driver !Connection 9MissingPluginException Exception PhpConfig !JsonConfig IniConfig Plugin )ObjectRegistry Configure #ClassLoader	 App /SecurityException ?MissingComponentException 9MissingActionException 7AuthSecurityException +ErrorController
 !Controller	 /ComponentRegistry Component /SecurityComponent ;RequestHandlerComponent 1PaginatorComponent )FlashComponent 'CsrfComponent +CookieComponent 'AuthComponent  'StopException 5MissingTaskException!~ CMissingShellMethodException} 7MissingShellException| 9MissingHelperException{ -ConsoleExceptionz %TaskRegistryy +ShellDispatcherx Shellw 'HelpFormatterv )HelperRegistryu Helpert 'ConsoleOutputs 3ConsoleOptionParserr ConsoleIoq 9ConsoleInputSubcommandp 1ConsoleInputOptiono 5ConsoleInputArgumentn %ConsoleInputm 3ConsoleErrorHandlerl #ZipIteratork )UnfoldIteratorj #TreePrinteri %TreeIteratorh /StoppableIteratorg %SortIteratorf +ReplaceIteratore 1NoChildrenIteratord %NestIteratorc MapReduceb )InsertIteratora )FilterIterator` +ExtractIterator_ -BufferedIterator^ !Collection] %XcacheEngine   p jZJ9taG,nbH. |l]A'}^D$ 




q
_
I
9
*
							q	b	J	7	)		r]<v\C.x^J*k]J1wcO>+eTB,u^H6%	p                      ( XmlView' #ViewBuilder& ViewBlock
% View$ )StringTemplate# )SerializedView" JsonView! )HelperRegistry  Helper
 Cell AjaxView Validator 'ValidationSet )ValidationRule !Validation 'RulesProvider	 Xml
 Text Security Inflector
 Hash %XmlException OpenSsl Mcrypt Response 'ConsoleOutput TestSuite TestCase 5MiddlewareDispatcher ;LegacyRequestDispatcher
 3IntegrationTestCase	 #TestFixture )FixtureManager +FixtureInjector )EventFiredWith !EventFired !UnloadTask LoadTask #ExtractTask #CommandTask  !AssetsTask #TableHelper~ )ProgressHelper} #ServerShell| #RoutesShell{ #PluginShellz 'OrmCacheShelly I18nShellx +CompletionShellw -CommandListShellv !CacheShellu Routet 'RedirectRoutes -PluginShortRouter )InflectedRouteq #DashedRoutep /RoutingMiddlewareo +AssetMiddlewaren 'RoutingFilterm 5LocaleSelectorFilterl ;ControllerFactoryFilterk #AssetFilterj /RedirectExceptioni 7MissingRouteException&h MMissingDispatcherFilterException g AMissingControllerException"f EDuplicateNamedRouteExceptione Routerd +RouteCollectionc %RouteBuilderb -DispatcherFiltera /DispatcherFactory` !Dispatcher_ !ValidCount
^ IsUnique
] ExistsIn
\ %TableLocator	$[ IRolledbackTransactionException Z AMissingTableClassExceptionY 9MissingEntityExceptionX =MissingBehaviorExceptionW %TreeBehaviorV /TranslateBehaviorU /TimestampBehaviorT 5CounterCacheBehaviorS 'TableRegistryR TableQ 1SaveOptionsBuilderP %RulesCheckerO ResultSetN QueryM !MarshallerL +LazyEagerLoaderK EntityJ #EagerLoaderI 'EagerLoadableH -BehaviorRegistryG BehaviorF 7AssociationCollectionE #AssociationD 7SelectWithPivotLoaderC %SelectLoaderB HasOneA HasMany@ 'BelongsToMany? BelongsTo> +DatabaseSession= %CacheSession)< SUnavailableForLegalReasonsException; 7UnauthorizedException: +SocketException!9 CServiceUnavailableException8 ;NotImplementedException7 /NotFoundException6 9NotAcceptableException5 ?MethodNotAllowedException4 ?InvalidCsrfTokenException3 9InternalErrorException2 'HttpException1 'GoneException0 1ForbiddenException/ /ConflictException. 3BadRequestException- Socket, Session+ #CorsBuilder* 'SmtpTransport ) 'MailTransport ( )DebugTransport ' 9MissingMailerException& 9MissingActionException% Mailer$ Email# /AbstractTransport" /LogEngineRegistry	! Log  SyslogLog FileLog !ConsoleLog BaseLog %PoFileParser %MoFileParser =LocaleSelectorMiddleware -SprintfFormatter %IcuFormatter 1TranslatorRegistry /TranslatorFactory !Translator
 Time 7RelativeTimeFormatter #PluralRules Number 1MessagesFileLoader
 I18n !FrozenTime !FrozenDate
 Date 3ChainMessagesLoader
 Response	 Request Message %FormDataPart FormData -CookieCollection Oauth Digest Basic Stream  5ServerRequestFactory   7 dC&jR@*tX=)r[@'lK





z
c
F
+
						s	S	8	 	jQ3rZ=wZB/ufVA+{eO6fN8#fN.sW7           : ;TestAppsErrorControllerG9 3SomePagesControllerG"8 ERequestHandlerTestControllerG7 ;RequestActionControllerG6 +PostsControllerG5 +PagesControllerG#4 GCookieComponentTestControllerG3 ;ComponentTestControllerG2 ;CellTraitTestControllerG1 +CakesControllerG0 1AuthTestControllerG/ 'AppControllerG. 1AbstractControllerG- 1TestAppCacheEngineF, -TestAuthenticateE+ #ApplicationD* %WelcomeShellC) #UniqueShellC( %ExampleShellC' 'CommentsTableB& +ArticlesFixtureA% 3TestPluginAppHelper@$ 3PluggedHelperHelper@# /OtherHelperHelper@" DummyCell?! MenuCell>  ?ConfigureTestVendorSample= ?SamplePluginClassTestName= )ExampleExample= -TestPluginEngine< 'OtherTaskTask; 'ExampleHelper: #SampleShell9 %ExampleShell9 TestRoute8 5TestDispatcherFilter7 7Test2DispatcherFilter7 /TestPluginSession6 ;TestPluginCommentsTable5 'CommentsTable5 %AuthorsTable5 Comment4 Author4 5PersisterOneBehavior3 'TestPluginLog2 9TestPluginOtherLibrary1 /TestPluginLibrary1 )CustomLibClass0!
 CTestPluginExceptionRenderer/	 !TestSource. !TestDriver- +TestsController, 5TestPluginController, ;TestPluginAppController, =TestPluginOtherComponent+ 3TestPluginComponent+ -PluginsComponent+ )OtherComponent+  1CommentsController* 7TestPluginCacheEngine)~ 5LegacyPasswordHasher(} +ArticlesFixture'| Hello&"{ ETestPluginThreeCommentsTable%z +OvensController$y 1SomethingComponent#x Hello"3w gAssociationTableMixinClassReflectionExtension!v )AssertHtmlTest u 7UuidportfoliosFixture t -UuiditemsFixture s %UsersFixture r /TranslatesFixture q 'ThingsFixture p ?TestPluginCommentsFixture o ;TagsTranslationsFixture n #TagsFixture m 1SpecialTagsFixture l +SiteTagsFixture k 1SiteAuthorsFixture j ;SiteArticlesTagsFixture i 3SiteArticlesFixture h +SessionsFixture g +ProductsFixture f %PostsFixture e =PolymorphicTaggedFixture d 'OrdersFixture c ;OrderedUuidItemsFixture b 1NumberTreesFixture a 5MenuLinkTreesFixture ` )MembersFixture _ 5GroupsMembersFixture ^ 'GroupsFixture ] 1FixturizedTestCase \ 3FeaturedTagsFixture [ -DatatypesFixture Z =CounterCacheUsersFixture *Y UCounterCacheUserCategoryPostsFixture X =CounterCachePostsFixture !W CCounterCacheCommentsFixture #V GCounterCacheCategoriesFixture  U ACompositeIncrementsFixture T +CommentsFixture S /CategoriesFixture R 3CakeSessionsFixture Q -AuthUsersFixture P 1AuthorsTagsFixture O )AuthorsFixture N 1AttachmentsFixture M ?AssertIntegrationTestCase L 3ArticlesTagsFixture K +ArticlesFixture J )WidgetRegistryI )TextareaWidgetH +SelectBoxWidgetG #RadioWidgetF 1NestingLabelWidgetE 3MultiCheckboxWidgetD #LabelWidgetC !FileWidgetB )DateTimeWidgetA )CheckboxWidget@ %ButtonWidget? #BasicWidget> UrlHelper= !TimeHelper< !TextHelper; 'SessionHelper: RssHelper9 +PaginatorHelper8 %NumberHelper7 !HtmlHelper6 !FormHelper5 #FlashHelper4 /BreadcrumbsHelper3 #NullContext2 #FormContext1 'EntityContext0 %ArrayContext/ 5MissingViewException. =MissingTemplateException- 9MissingLayoutException, 9MissingHelperException+ ;MissingElementException* =MissingCellViewException) 5MissingCellException   D iO'}jH)fL2"s\J.	s`J:#





x
V
7
						n	X	<	 	kP7 	hO6 ubK5hI%yU>(
xbL1uY;%wfD                    N ?ExpressionTypeCastingTestmM TestTypem*L UExpressionTypeCastingIntegrationTestmK +OrderedUuidTypemJ UuidValuemI !DriverTestmH )ConnectionTestmG 'PhpConfigTestlF )JsonConfigTestlE 'IniConfigTestlD 7StaticConfigTraitTestkC 3TestLogStaticConfigkB 7TestEmailStaticConfigkA 7TestCacheStaticConfigk'@ OTestConnectionManagerStaticConfigk? !PluginTestk> ;InstanceConfigTraitTestk = AReadOnlyTestInstanceConfigk< 1TestInstanceConfigk; 'FunctionsTestk: 'ConfigureTestk9 AppTestk8 7SecurityExceptionTestj7 ?AuthSecurityExceptionTestj(6 QCookieEncryptedUsingControllerTesti5 )ControllerTesti4 7AnotherTestControlleri3 'TestComponenti2 )TestControlleri!1 CControllerTestAppControlleri0 'ComponentTesti/ 7ComponentRegistryTesti. 5CookieAliasComponenti- 7SecurityComponentTesth, 9SecurityTestControllerh+ 7TestSecurityComponenth!* CRequestHandlerComponentTesth) 9PaginatorComponentTesth( ;PaginatorTestControllerh' 1FlashComponentTesth& /CsrfComponentTesth% 3CookieComponentTesth$ /AuthComponentTesth# -TaskRegistryTestg" ShellTestg! )TestBananaTaskg  'TestAppleTaskg )ShellTestShellg !MergeShellg 3ShellDispatcherTestg /HelpFormatterTestg 1HelperRegistryTestg /ConsoleOutputTestg ;ConsoleOptionParserTestg 'ConsoleIoTestg ;ConsoleErrorHandlerTestg -TreeIteratorTestf -SortIteratorTestf 3ReplaceIteratorTestf 'MapReduceTestf 1InsertIteratorTestf 1FilterIteratorTestf 3ExtractIteratorTestf 5BufferedIteratorTestf )CollectionTeste )TestCollectione -XcacheEngineTestd 1WincacheEngineTestd
 +RedisEngineTestd	 3MemcachedEngineTestd 3TestMemcachedEngined )FileEngineTestd 'ApcEngineTestd CacheTestc !ServerTestb !RunnerTestb 3ResponseEmitterTestb 3BaseApplicationTestb  'DatabaseSuiteb !BasicsTestb~ 1SessionStorageTesta} /MemoryStorageTesta| 9WeakPasswordHasherTest`{ ?PasswordHasherFactoryTest`z 5FormAuthenticateTest` y AFallbackPasswordHasherTest`x 9DigestAuthenticateTest`w ?DefaultPasswordHasherTest`v ;ControllerAuthorizeTest`u 7BasicAuthenticateTest`t ;EventListenerTestHelper_s %BananaHelper_r CelloCell^q %ArticlesCell^p MenuCell]o )CustomJsonView\n AppView\m 'TestAppEngine[l !SampleTaskZk 5TestingDispatchShellYj #SampleShellY
i I18mYh %SimpleHelperXg #DashedRouteWf %AppendFilterVe /TestAppLibSessionUd TagsTableTc !PostsTableTb 3PaginatorPostsTableTa I18nTableT` )AuthUsersTableT_ %AuthorsTableT^ /ArticlesTagsTableT] 'ArticlesTableT\ #VirtualUserS	[ TagSZ %NonExtendingSY ExtendingSX AuthorSW #ArticlesTagSV ArticleSU /SluggableBehaviorRT /DuplicateBehaviorRS -SampleMiddlewareQR )DumbMiddleWareQQ )TestUserMailerPP !TestMailerPO !TestAppLogON 7MiddlewareApplicationN"M EInvalidMiddlewareApplicationNL !CompatAuthNK 9BadResponseApplicationNJ ?TestAppsExceptionRendererMI !TestDriverLH TestAppKG /TestAuthComponentJ"F ESomethingWithCookieComponentJE 1ParamTestComponentJD +OrangeComponentJ%C KMutuallyReferencingTwoComponentJ%B KMutuallyReferencingOneComponentJA /MergeVarComponentJ@ 3ConfiguredComponentJ? +BananaComponentJ> )AppleComponentJ= +PostsControllerI< +PostsControllerH; 3TestsAppsControllerG   F q^H-hQ9|cN6 }bU9!lS8




z
[
8

						p	_	L	/	hUB0}^K3"nZD4oU=)iS?,
{eP9pTB,xeF      j 9BehaviorRegressionTesti !NumberTreeh 'TableUuidTestg TableTestf !UsersTablee 3TableRegressionTestd /TableRegistryTestc 9SaveOptionsBuilderTest!b CRulesCheckerIntegrationTesta 'ResultSetTest` QueryTest_ 3QueryRegressionTest^ )MarshallerTest] 3GreedyCommentsTable\ -ProtectedArticle	[ TagZ !OpenEntityY !EntityTestX +EagerLoaderTestW -CompositeKeyTestV /OpenArticleEntityU )BindingKeyTestT %BehaviorTestS 'Test3BehaviorR 'Test2BehaviorQ %TestBehaviorP 5BehaviorRegistryTestO +AssociationTestN TestTableM 5AssociationProxyTestL ?AssociationCollectionTestK !HasOneTestJ #HasManyTestI 'BelongsToTestH /BelongsToManyTestG 3DatabaseSessionTestF -CacheSessionTestE !SocketTestD #SessionTestC 3TestDatabaseSessionB -TestCacheSessionA %ResponseTest@ #RequestTest? +CorsBuilderTest> /SmtpTransportTest= /SmtpTestTransport< /MailTransportTest; 1DebugTransportTest: !MailerTest9 5MailerAwareTraitTest
8 Stub7 EmailTest6 TestEmail5 %LogTraitTest4 LogTest3 'SyslogLogTest2 #FileLogTest1 !JsonObject0 %StringObject/ )ConsoleLogTest. -PoFileParserTest- -MoFileParserTest", ELocaleSelectorMiddlewareTest+ 7TranslatorFactoryTest~* TimeTest~) +PluralRulesTest~( !NumberTest~' 9MessagesFileLoaderTest~& I18nTest~% 5SprintfFormatterTest~$ -IcuFormatterTest~# DateTest~" %ResponseTest}! #RequestTest}  %FormDataTest} 5CookieCollectionTest} OauthTest| !DigestTest| !StreamTest{ /CakeStreamWrapper{ =ServerRequestFactoryTestz ;ResponseTransformerTestz 9RequestTransformerTestz 3MiddlewareQueueTestz 7ControllerFactoryTestz !ClientTestz 5ActionDispatcherTestz !SchemaTesty FormTesty !FolderTestx FileTestx EventTestw -EventManagerTestw& MCustomTestEventListenerInterfacew /EventTestListenerw %EvenListTestw
 =EventDispatcherTraitTestw 	 ASubjectFilterDecoratorTestw 9ConditionDecoratorTestw  AErrorHandlerMiddlewareTestv 7ExceptionRendererTestu 1MissingWidgetThingu! CMissingWidgetThingExceptionu ?MyCustomExceptionRendereru 3TestErrorControlleru 1BlueberryComponentu  -ErrorHandlerTestu -TestErrorHandleru~ %DebuggerTestu} 'SecurityThingu| +DebuggableThingu{ =DebuggerTestCaseDebuggeruz -RulesCheckerTestty 9ResultSetDecoratorTesttx +QueryCacherTesttw 3ModelAwareTraitTestt
v Stubtu 1FactoryLocatorTesttt 7ConnectionManagerTestts )FakeConnectiontr %UuidTypeTestsq %TimeTypeTestsp )StringTypeTestso %JsonTypeTestsn +IntegerTypeTestsm 'FloatTypeTestsl +DecimalTypeTestsk %DateTypeTestsj -DateTimeTypeTestsi %BoolTypeTestsh )BinaryTypeTestsg 9StatementDecoratorTestrf TableTestqe FooTypeqd 3SqlserverSchemaTestqc -SqliteSchemaTestqb 1PostgresSchemaTestqa +MysqlSchemaTestq` )CollectionTestq_ +QueryLoggerTestp^ 5LoggingStatementTestp] +LoggedQueryTestp\ 3TupleComparisonTesto[ 3QueryExpressionTestoZ =IdentifierExpressionTestoY 9FunctionExpressionTestoX 1CaseExpressionTestoW 'SqlserverTestnV !SqliteTestnU %PostgresTestnT MysqlTestnS +ValueBinderTestmR TypeTestmQ FooTypemP QueryTestmO 5FunctionsBuilderTestm   ~ hU:}dH5lQ4~hN6xaF)	





v
^
H
-

							|	k	[	A	&	r_J/tU3rT<,fP3 	t\<$                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          h 9WidgetRegistryTestCaseg 1TextareaWidgetTestf 3SelectBoxWidgetTeste +RadioWidgetTestd ;MultiCheckboxWidgetTestc +LabelWidgetTestb )FileWidgetTesta 1DateTimeWidgetTest` 1CheckboxWidgetTest_ -ButtonWidgetTest^ +BasicWidgetTest] )TimeHelperTest\ )TextHelperTest[ !StringMockZ 5TextHelperTestObjectY 'RssHelperTestX 3PaginatorHelperTestW -NumberHelperTestV !NumberMockU 9NumberHelperTestObjectT )HtmlHelperTestS )FormHelperTestR 1ValidateUsersTableQ 'ContactsTableP ArticleO +FlashHelperTestN 7BreadcrumbsHelperTestM +FormContextTestL /EntityContextTestK ArticleJ -ArrayContextTestI #XmlViewTestH /ViewVarsTraitTestG ViewTest$F ITestViewEventListenerInterfaceE ?TestObjectWithoutToStringD 9TestObjectWithToStringC 7TestBeforeAfterHelperB TestViewA 5ThemePostsController@ 3ViewPostsController? +ViewBuilderTest> ;StringTemplateTraitTest= 1TestStringTemplate< 1StringTemplateTest; %JsonViewTest: !HelperTest9 !TestHelper8 1HelperRegistryTest7 +HtmlAliasHelper6 'UrlHelperTest5 CellTest4 'ValidatorTest3 )ValidationTest2 /ValidationSetTest1 1ValidationRuleTest0 /RulesProviderTest/ XmlTest. TextTest- %SecurityTest, ;MergeVariablesTraitTest+ !Grandchild* Child
) Base( 'InflectorTest' HashTest& #OpenSslTest% !McryptTest$ 1FixtureManagerTest# 'TestSuiteTest" +TestFixtureTest! )LettersFixture  )ImportsFixture 3StringsTestsFixture +ArticlesFixture %TestCaseTest 3SecondaryPostsTable ;IntegrationTestCaseTest 5EmailAssertTraitTest 1EventFiredWithTest )EventFiredTest )UnloadTaskTest %LoadTaskTest +ExtractTaskTest )AssetsTaskTest +TableHelperTest 1ProgressHelperTest +ServerShellTest +RoutesShellTest +PluginShellTest /OrmCacheShellTest 'I18nShellTest 3CompletionShellTest  ATestCompletionStringOutput
 5CommandListShellTest	 )CacheShellTest RouteTest )RouteProtected /RedirectRouteTest 5PluginShortRouteTest 1InflectedRouteTest +DashedRouteTest 7RoutingMiddlewareTest 3AssetMiddlewareTest  /RoutingFilterTest =LocaleSelectorFilterTest!~ CControllerFactoryFilterTest} +AssetFilterTest| !RouterTest{ 3RouteCollectionTestz -RouteBuilderTesty 9RequestActionTraitTestx )DispatcherTestw 5DispatcherFilterTestv 7DispatcherFactoryTestu -TableLocatorTestt %MyUsersTables 7LocatorAwareTraitTestr 1TranslateTraitTestq !TestEntityp -TreeBehaviorTesto 7TranslateBehaviorTestn Articlem 7TimestampBehaviorTestl =CounterCacheBehaviorTestk PostTable    ^>"uYF.}eN,c; kR5




t
^
C
)
						l	T	8	 		z_E)	nT4rW:$	dM5pX8lQ7}\E)uT7 -ContextInterface
 5ValidatableInterface	 =PropertyMarshalInterface -LocatorInterface	 9EventListenerInterface =EventDispatcherInterface  AExceptionRendererInterface 5TableSchemaInterface 1ResultSetInterface 3RepositoryInterface )QueryInterface  =InvalidPropertyInterface -FixtureInterface~ +EntityInterface} 3ConnectionInterface| =OptionalConvertInterface{ ;ExpressionTypeInterfacez 'TypeInterfacey 5TypedResultInterfacex 1StatementInterfacew 3ExpressionInterfacev )FieldInterfaceu 7ConfigEngineInterfacet 3CollectionInterfaces -StorageInterfacer 3InterfaceController~q +WidgetInterfaceWp -ContextInterfaceUo 5ValidatableInterfaceRn =PropertyMarshalInterface>m -LocatorInterfaceAl 9EventListenerInterface*k =EventDispatcherInterface*j 5TableSchemaInterface%i 1ResultSetInterface%h 3RepositoryInterface%g )QueryInterface%f =InvalidPropertyInterface%e -FixtureInterface%d +EntityInterface%c 3ConnectionInterface%b =OptionalConvertInterface$a ;ExpressionTypeInterface$` 'TypeInterface_ 5TypedResultInterface^ 1StatementInterface] 3ExpressionInterface\ )FieldInterface [ 7ConfigEngineInterfaceZ 3CollectionInterfaceY -StorageInterface'X ODispatcherTestInterfaceControllerW +WidgetInterfaceV -ContextInterfaceU 5ValidatableInterfaceT -LocatorInterfaceS 9EventListenerInterfacevR =EventDispatcherInterfacevQ 1ResultSetInterfacesP 3RepositoryInterfacesO )QueryInterfacesN =InvalidPropertyInterfacesM -FixtureInterfacesL +EntityInterfacesK 3ConnectionInterfacesJ =OptionalConvertInterfacerI 5TypedResultInterfacekH 1StatementInterfacekG 3ExpressionInterfacekF )FieldInterfacenE 7ConfigEngineInterfaceD 3CollectionInterfaceaC -StorageInterface^'B ODispatcherTestInterfaceControllerKA +WidgetInterface @ -ContextInterface ? 5ValidatableInterface > -LocatorInterface = 9EventListenerInterface < =EventDispatcherInterface ; 1ResultSetInterface : 3RepositoryInterface 9 -FixtureInterface 8 +EntityInterface 7 3ConnectionInterface 6 1StatementInterface 5 3ExpressionInterface 4 )FieldInterface 3 7ConfigEngineInterfaceZ2 3CollectionInterface 1 -StorageInterface '0 ODispatcherTestInterfaceController / +WidgetInterfaceD. -ContextInterfaceB- 5ValidatableInterface?, 9EventListenerInterface+ 1ResultSetInterface* 3RepositoryInterface) +EntityInterface( 1StatementInterface' 3ExpressionInterface& )FieldInterface% 7ConfigEngineInterface $ 3CollectionInterface	# AClassRegistryInterfaceTest&" ODispatcherTestInterfaceController ! CCakeSessionHandlerInterface  -CakeLogInterface /CakeEventListener %AclInterface 7ConfigReaderInterface AClassRegistryInterfaceTest& ODispatcherTestInterfaceController  CCakeSessionHandlerInterface -CakeLogInterface /CakeEventListener %AclInterface 7ConfigReaderInterface AClassRegistryInterfaceTest& ODispatcherTestInterfaceController  CCakeSessionHandlerInterface -CakeLogInterface /CakeEventListener %AclInterface 7ConfigReaderInterface AClassRegistryInterfaceTest& ODispatcherTestInterfaceController  CCakeSessionHandlerInterface -CakeLogInterface
 /CakeEventListener	 %AclInterface 7ConfigReaderInterface A	ClassRegistryInterfaceTest% O	DispatcherTestInterfaceController C	CakeSessionHandlerInterface -	CakeLogInterface /	CakeEventListener %	AclInterface 7	ConfigReaderInterface                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     3InterfaceControllerG +WidgetInterface   O w^B(}dR<+qX?%v[B)qWC)






y
]
=
						z	_	N	3		x_C)uaG4dD"iN="~cJ1v[B-|bJ9 jO                          1RequestActionTraitC /LocatorAwareTraitA )TranslateTrait! CAssociationsNormalizerTrait>  ASelectableAssociationTrait= =ExternalAssociationTrait= 5DependentDeleteTrait= -MailerAwareTrait7 LogTrait6 +DateFormatTrait1 /EventManagerTrait* 5EventDispatcherTrait* +RulesAwareTrait%
 !QueryTrait%	 +ModelAwareTrait% #EntityTrait% ?ExpressionTypeCasterTrait$ 1BufferResultsTrait# %TypeMapTrait -TypedResultTrait 1TypeConverterTrait +SqlDialectTrait !FieldTrait   )PDODriverTrait$ ITupleComparisonTranslatorTrait~ 7SqlserverDialectTrait} 1SqliteDialectTrait| 5PostgresDialectTrait{ /MysqlDialectTraitz /StaticConfigTraity 3InstanceConfigTraitx -ConventionsTraitw +FileConfigTraitv %ExtractTraitu +CollectionTraitt 7SecureFieldTokenTraits -IdGeneratorTraitr 'ViewVarsTraitq 3StringTemplateTraitp CellTraito 3ValidatorAwareTraitn 3MergeVariablesTraitm -CookieCryptTraitl 1StringCompareTraitk 1RequestActionTraitj /LocatorAwareTraiti )TranslateTrait!h CAssociationsNormalizerTrait g ASelectableAssociationTraitf =ExternalAssociationTraite 5DependentDeleteTraitd -MailerAwareTrait~c LogTrait}b +DateFormatTraitya /EventManagerTraitv` 5EventDispatcherTraitv_ +RulesAwareTraits^ !QueryTraits] +ModelAwareTraits\ #EntityTraits[ 1BufferResultsTraitqZ %TypeMapTraitkY -TypedResultTraitkX 1TypeConverterTraitkW +SqlDialectTraitkV !FieldTraitnU )PDODriverTraitl$T ITupleComparisonTranslatorTraitS 7SqlserverDialectTraitR 1SqliteDialectTraitQ 5PostgresDialectTraitP /MysqlDialectTraitO /StaticConfigTraithN 3InstanceConfigTraithM -ConventionsTraithL +FileConfigTraitK %ExtractTraitaJ +CollectionTraitaI -IdGeneratorTrait H 'ViewVarsTrait G 3StringTemplateTrait F CellTrait E 3ValidatorAwareTrait D 3MergeVariablesTrait C 1StringCompareTrait B 1RequestActionTrait A /LocatorAwareTrait @ )TranslateTrait\!? CAssociationsNormalizerTrait  > ASelectableAssociationTrait = =ExternalAssociationTrait < 5DependentDeleteTrait ; -MailerAwareTrait : LogTrait 9 /EventManagerTrait 8 5EventDispatcherTrait 7 +RulesAwareTrait 6 !QueryTrait 5 +ModelAwareTrait 4 #EntityTrait 3 1BufferResultsTrait 2 %TypeMapTrait 1 1TypeConverterTrait 0 +SqlDialectTrait / !FieldTrait . )PDODriverTrait $- ITupleComparisonTranslatorTrait[, 7SqlserverDialectTrait[+ 1SqliteDialectTrait[* 5PostgresDialectTrait[) /MysqlDialectTrait[( /StaticConfigTrait ' 3InstanceConfigTrait & -ConventionsTrait % +FileConfigTraitZ$ %ExtractTrait # +CollectionTrait " -IdGeneratorTraitC! 'ViewVarsTrait@  3StringTemplateTrait@ CellTrait@ 3MergeVariablesTrait> 1StringCompareTrait: 1RequestActionTrait3 )TranslateTrait   CAssociationsNormalizerTrait/ ASelectableAssociationTrait. =ExternalAssociationTrait. 5DependentDeleteTrait. LogTrait% /EventManagerTrait !QueryTrait +ModelAwareTrait #EntityTrait 1BufferResultsTrait %TypeMapTrait 1TypeConverterTrait +SqlDialectTrait !FieldTrait )PDODriverTrait$ ITupleComparisonTranslatorTrait 
 7SqlserverDialectTrait 	 1SqliteDialectTrait  5PostgresDialectTrait  /MysqlDialectTrait  /StaticConfigTrait 3InstanceConfigTrait -ConventionsTrait +FileConfigTrait  %ExtractTrait	 +CollectionTrait	   4
 fP7kN3xcH&oV9|`D2 

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         K 7SecureFieldTokenTraitJ -IdGeneratorTraitI 'ViewVarsTraitH 3StringTemplateTraitG CellTraitF 3ValidatorAwareTraitE 3MergeVariablesTraitD -CookieCryptTraitC 1StringCompareTraitB -EmailAssertTraitA 1RequestActionTrait@ /LocatorAwareTrait	? )TranslateTrait!> CAssociationsNormalizerTrait= 5DependentDeleteTrait< -MailerAwareTrait; LogTrait: +DateFormatTrait9 /EventManagerTrait8 5EventDispatcherTrait7 +RulesAwareTrait6 !QueryTrait5 +ModelAwareTrait4 #EntityTrait3 ?ExpressionTypeCasterTrait2 1BufferResultsTrait1 %TypeMapTrait0 -TypedResultTrait/ 1TypeConverterTrait. +SqlDialectTrait- !FieldTrait, )PDODriverTrait$+ ITupleComparisonTranslatorTrait* 7SqlserverDialectTrait) 1SqliteDialectTrait( 5PostgresDialectTrait' /MysqlDialectTrait& /StaticConfigTrait% 3InstanceConfigTrait$ -ConventionsTrait# +FileConfigTrait" %ExtractTrait! +CollectionTrait  7SecureFieldTokenTraitV -IdGeneratorTraitV 'ViewVarsTraitS 3StringTemplateTraitS CellTraitS 3ValidatorAwareTraitR 3MergeVariablesTraitQ -CookieCryptTraitQ 1StringCompareTraitMfunctions[] = 

constants[] = 

classes[] = "\Psr\Cache\CacheException";
classes[] = "\Psr\Cache\InvalidArgumentException";
classes[] = "\Psr\Log\InvalidArgumentException";
classes[] = "\Psr\Log\LogLevel";
classes[] = "\Psr\Log\AbstractLogger";
classes[] = "\Psr\Log\NullLogger";
classes[] = "\Psr\Log\LoggerTrait";
classes[] = "\Psr\Log\LoggerAwareTrait";
classes[] = "\Psr\SimpleCache\CacheException";
classes[] = "\Psr\SimpleCache\InvalidArgumentException";
classes[] = "\Psr\Cache\CacheItemInterface";

interfaces[] = "\Psr\Cache\CacheItemPoolInterface";
interfaces[] = "\Psr\Container\ContainerExceptionInterface";
interfaces[] = "\Psr\Container\ContainerInterface";
interfaces[] = "\Psr\Container\NotFoundExceptionInterface";
interfaces[] = "\Psr\Http\Message\MessageInterface";
interfaces[] = "\Psr\Http\Message\RequestFactoryInterface";
interfaces[] = "\Psr\Http\Message\RequestInterface";
interfaces[] = "\Psr\Http\Message\ResponseFactoryInterface";
interfaces[] = "\Psr\Http\Message\ResponseInterface";
interfaces[] = "\Psr\Http\Message\ServerRequestFactoryInterface";
interfaces[] = "\Psr\Http\Message\ServerRequestInterface";
interfaces[] = "\Psr\Http\Message\StreamFactoryInterface";
interfaces[] = "\Psr\Http\Message\StreamInterface";
interfaces[] = "\Psr\Http\Message\UploadedFileFactoryInterface";
interfaces[] = "\Psr\Http\Message\UploadedFileInterface";
interfaces[] = "\Psr\Http\Message\UriFactoryInterface";
interfaces[] = "\Psr\Http\Message\UriInterface";
interfaces[] = "\Psr\Http\Server\MiddlewareInterface";
interfaces[] = "\Psr\Http\Server\RequestHandlerInterface";
interfaces[] = "\Psr\Link\EvolvableLinkInterface";
interfaces[] = "\Psr\Link\EvolvableLinkProviderInterface";
interfaces[] = "\Psr\Link\LinkInterface";
interfaces[] = "\Psr\Link\LinkProviderInterface";
interfaces[] = "\Psr\Log\LoggerAwareInterface";
interfaces[] = "\Psr\Log\LoggerInterface";
interfaces[] = "\Psr\SimpleCache\CacheInterface";

traits[] = 

namespaces[] = 'Psr'

directives[] = 



SQLite format 3   @                                                                   -#    H                                                                                                                                 ??7table_libraries_old_20141112_1_libraries_old_20141112_1CREATE TABLE "_libraries_old_20141112_1" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "name" char(100,0),
	 "homepage" char(200,0),
	 "download" char(200,0),
	 "vcs" char(200,0),
	 "versionP++Ytablesqlite_sequencesqlite_sequenceCREATE TABLE sqlite_sequence(name,seq).3tableclassesclassesCREATE TABLE "classes" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "id_libraries" integer,
	 "namespace" char(100,0),
	 "classname" char(100,0)
)WtablelibrarieslibrariesCREATE TABLE "libraries" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "name" char(100,0),
	 "homepage" char(200,0),
	 "download" char(200,0),
	 "vcs" char(200,0),
	 "version_in_code" char(200,0),
	 "current_version" char(10,0)
)    p                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        z Y YIPHPMailerhttps://github.com/PHPMailer/PHPMailerhttps://github.com/PHPMailer/PHPMailerPHPMailer::$Version = '5.2.9'; asS phpcashttps://wiki.jasig.org/display/casc/phpcashttp://downloads.jasig.org/cas-clients/php/current/https://github.com/Jasig/phpCAS.git                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               <_libraries_old_20141112_1 _libraries_old_20141112classes   librarilibraries                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Html2Text
  SMTP
  POP3  PHPMailer 	 phpCAS                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                [ Y YPHPMailerhttps://github.com/PHPMailer/PHPMailerhttps://github.com/PHPMailer/PHPMailer asSphpcashttps://wiki.jasig.org/display/casc/phpcashttp://downloads.jasig.org/cas-clients/php/current/https://github.com/Jasig/phpCAS.gito 3 3                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     6 asSSphpcashttps://wiki.jasig.org/display/casc/phpcashttp://downloads.jasig.org/cas-clients/php/current/https://github.com/Jasig/phpCAS.gitdefine('PHPCAS_VERSION', '1.3.3+');1.3.3  Y YIPHPMailerhttps://github.com/PHPMailer/PHPMailerhttps://github.com/PHPMailer/PHPMailerPHPMailer::$Version = '5.2.9';5.2.9   A asS  phpcashttps://wiki.jasig.org/display/casc/phpcashttp:/N 5] FPDFhttp://www.fpdf.org/TGZhttp://www.fpdf.org/fr/dl.php?v=17&f=tgz1.7    H                                                                                                                                                                                                                                     P++Ytablesqlite_sequencesqlite_sequenceCREATE TABLE sqlite_sequence(name,seq).3tableclassesclassesCREATE TABLE "classes" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "id_libraries" integer,
	 "namespace" char(100,0),
	 "classname" char(100,0)
)   ;;qtable_libraries_old_20141112_libraries_old_20141112CREATE TABLE "_libraries_old_20141112" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "name" char(100,0),
	 "homepage" char(200,0),
	 "download" char(200,0),
	 "vcs" char(200,0)
)??7table_libraries_old_20141112_1_libraries_old_20141112_1CREATE TABLE "_libraries_old_20141112_1" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "name" char(100,0),
	 "homepage" char(200,0),
	 "download" char(200,0),
	 "vcs" char(200,0),
	 "version_in_code" char(200,0)
)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   WtablelibrarieslibrariesCREATE TABLE "libraries" (
	 "id" integer PRIMARY KEY AUTOINCREMENT,
	 "name" char(100,0),
	 "homepage" char(200,0),
	 "download" char(200,0),
	 "vcs" char(200,0),
	 "version_in_code" char(200,0),
	 "current_version" char(10,0)
)functions[] = "cyrus_authenticate";
functions[] = "cyrus_bind";
functions[] = "cyrus_close";
functions[] = "cyrus_connect";
functions[] = "cyrus_query";
functions[] = "cyrus_unbind";

constants[] = 'CYRUS_CONN_NONSYNCLITERAL';
constants[] = 'CYRUS_CONN_INITIALRESPONSE';
constants[] = 'CYRUS_CALLBACK_NUMBERED';
constants[] = 'CYRUS_CALLBACK_NOLITERAL';

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

magicMethod[] = '__construct';
magicMethod[] = '__destruct';
magicMethod[] = '__call';
magicMethod[] = '__callStatic';
magicMethod[] = '__get';
magicMethod[] = '__set';
magicMethod[] = '__isset';
magicMethod[] = '__unset';
magicMethod[] = '__sleep';
magicMethod[] = '__wakeup';
magicMethod[] = '__toString';
magicMethod[] = '__invoke';
magicMethod[] = '__set_state';
magicMethod[] = '__clone';
magicMethod[] = '__debugInfo';
magicMethod[] = '__serialize';
magicMethod[] = '__unserialize';
functions[] = 

constants[] = 

classes[] = Gmagick
classes[] = GmagickDraw
classes[] = GmagickPixel

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = mailparse_determine_best_xfer_encoding
functions[] = mailparse_msg_create
functions[] = mailparse_msg_extract_part_file
functions[] = mailparse_msg_extract_part
functions[] = mailparse_msg_extract_whole_part_file
functions[] = mailparse_msg_free
functions[] = mailparse_msg_get_part_data
functions[] = mailparse_msg_get_part
functions[] = mailparse_msg_get_structure
functions[] = mailparse_msg_parse_file
functions[] = mailparse_msg_parse
functions[] = mailparse_rfc822_parse_addresses
functions[] = mailparse_stream_encode
functions[] = mailparse_uudecode_all

constants[] = 'MAILPARSE_EXTRACT_OUTPUT';
constants[] = 'MAILPARSE_EXTRACT_STREAM';
constants[] = 'MAILPARSE_EXTRACT_RETURN';

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

functions[] = 'fam_open';
functions[] = 'fam_close';
functions[] = 'fam_monitor_directory';
functions[] = 'fam_monitor_file';
functions[] = 'fam_monitor_collection';
functions[] = 'fam_suspend_monitor';
functions[] = 'fam_resume_monitor';
functions[] = 'fam_cancel_monitor';
functions[] = 'fam_pending';
functions[] = 'fam_next_event';
functions[] = 'fam_next_event_timeout';
functions[] = 'fam_open';
functions[] = 'fam_close';
functions[] = 'fam_monitor_directory';
functions[] = 'fam_monitor_file';
functions[] = 'fam_monitor_collection';
functions[] = 'fam_suspend_monitor';
functions[] = 'fam_resume_monitor';
functions[] = 'fam_cancel_monitor';
functions[] = 'fam_pending';
functions[] = 'fam_next_event';
functions[] = 'fam_next_event_timeout';

constants[] = 'FAMChanged';
constants[] = 'FAMDeleted';
constants[] = 'FAMStartExecuting';
constants[] = 'FAMStopExecuting';
constants[] = 'FAMCreated';
constants[] = 'FAMMoved';
constants[] = 'FAMAcknowledge';
constants[] = 'FAMExists';
constants[] = 'FAMEndExist';

classes[] = 

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 
functions[] = 

constants[] = 

classes[] = Event
classes[] = EventBase
classes[] = EventBuffer
classes[] = EventBufferEvent
classes[] = EventConfig
classes[] = EventDnsBase
classes[] = EventHttp
classes[] = EventHttpConnection
classes[] = EventHttpRequest
classes[] = EventListener
classes[] = EventSslContext
classes[] = EventUtil

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

directives[] = 'allow_call_time_pass_reference';
directives[] = 'allow_url_fopen';
directives[] = 'allow_url_include';
directives[] = 'always_populate_raw_post_data';
directives[] = 'apc.cache_by_default';
directives[] = 'apc.enable_cli';
directives[] = 'apc.enabled';
directives[] = 'apc.file_update_protection';
directives[] = 'apc.filters';
directives[] = 'apc.gc_ttl';
directives[] = 'apc.include_once_override';
directives[] = 'apc.localcache.size';
directives[] = 'apc.localcache';
directives[] = 'apc.max_file_size';
directives[] = 'apc.mmap_file_mask';
directives[] = 'apc.num_files_hint';
directives[] = 'apc.optimization';
directives[] = 'apc.report_autofilter';
directives[] = 'apc.rfc1867_freq';
directives[] = 'apc.rfc1867_name';
directives[] = 'apc.rfc1867_prefix';
directives[] = 'apc.rfc1867';
directives[] = 'apc.shm_segments';
directives[] = 'apc.shm_size';
directives[] = 'apc.slam_defense';
directives[] = 'apc.stat_ctime';
directives[] = 'apc.stat';
directives[] = 'apc.ttl';
directives[] = 'apc.user_entries_hint';
directives[] = 'apc.user_ttl';
directives[] = 'apc.write_lock';
directives[] = 'apd.bitmask';
directives[] = 'apd.dumpdir';
directives[] = 'apd.statement_tracing';
directives[] = 'arg_separator.input';
directives[] = 'arg_separator.output';
directives[] = 'arg_separator';
directives[] = 'asp_tags';
directives[] = 'assert.active';
directives[] = 'assert.bail';
directives[] = 'assert.callback';
directives[] = 'assert.exception';
directives[] = 'assert.quiet_eval';
directives[] = 'assert.warning';
directives[] = 'async_send';
directives[] = 'auto_append_file';
directives[] = 'auto_detect_line_endings';
directives[] = 'auto_globals_jit';
directives[] = 'auto_prepend_file';
directives[] = 'axis2.client_home';
directives[] = 'axis2.enable_exception';
directives[] = 'axis2.enable_trace';
directives[] = 'axis2.log_path';
directives[] = 'bcmath.scale';
directives[] = 'bcompiler.enabled';
directives[] = 'blenc.key_file';
directives[] = 'browscap';
directives[] = 'cgi.check_shebang_line';
directives[] = 'cgi.discard_path';
directives[] = 'cgi.fix_pathinfo';
directives[] = 'cgi.force_redirect';
directives[] = 'cgi.nph';
directives[] = 'cgi.redirect_status_env';
directives[] = 'cgi.rfc2616_headers';
directives[] = 'child_terminate';
directives[] = 'cli_server.color';
directives[] = 'cli.pager';
directives[] = 'cli.prompt';
directives[] = 'coin_acceptor.auto_initialize';
directives[] = 'coin_acceptor.auto_reset';
directives[] = 'coin_acceptor.autoreset';
directives[] = 'coin_acceptor.command_function';
directives[] = 'coin_acceptor.delay_coins';
directives[] = 'coin_acceptor.delay_prom';
directives[] = 'coin_acceptor.delay';
directives[] = 'coin_acceptor.device';
directives[] = 'coin_acceptor.lock_on_close';
directives[] = 'coin_acceptor.start_unlocked';
directives[] = 'com.allow_dcom';
directives[] = 'com.autoregister_casesensitive';
directives[] = 'com.autoregister_typelib';
directives[] = 'com.autoregister_verbose';
directives[] = 'com.code_page';
directives[] = 'com.typelib_file';
directives[] = 'curl.cainfo';
directives[] = 'daffodildb.default_host';
directives[] = 'daffodildb.default_password';
directives[] = 'daffodildb.default_socket';
directives[] = 'daffodildb.default_user';
directives[] = 'daffodildb.port';
directives[] = 'date.default_latitude';
directives[] = 'date.default_longitude';
directives[] = 'date.sunrise_zenith';
directives[] = 'date.sunset_zenith';
directives[] = 'date.timezone';
directives[] = 'dba.default_handler';
directives[] = 'dbx.colnames_case';
directives[] = 'default_charset';
directives[] = 'default_mimetype';
directives[] = 'default_socket_timeout';
directives[] = 'define_syslog_variables';
directives[] = 'detect_unicode';
directives[] = 'disable_classes';
directives[] = 'disable_functions';
directives[] = 'display_errors';
directives[] = 'display_startup_errors';
directives[] = 'doc_root';
directives[] = 'docref_ext';
directives[] = 'docref_root';
directives[] = 'enable_dl';
directives[] = 'enable_post_data_reading';
directives[] = 'engine';
directives[] = 'error_append_string';
directives[] = 'error_log';
directives[] = 'error_prepend_string';
directives[] = 'error_reporting';
directives[] = 'exif.decode_jis_intel';
directives[] = 'exif.decode_jis_motorola';
directives[] = 'exif.decode_unicode_intel';
directives[] = 'exif.decode_unicode_motorola';
directives[] = 'exif.encode_jis';
directives[] = 'exif.encode_unicode';
directives[] = 'exit_on_timeout';
directives[] = 'expect.logfile';
directives[] = 'expect.loguser';
directives[] = 'expect.timeout';
directives[] = 'expose_php';
directives[] = 'extension_dir';
directives[] = 'extension';
directives[] = 'fastcgi.impersonate';
directives[] = 'fastcgi.logging';
directives[] = 'fbsql.allow_persistant';
directives[] = 'fbsql.allow_persistent';
directives[] = 'fbsql.autocommit';
directives[] = 'fbsql.batchsize';
directives[] = 'fbsql.default_database_password';
directives[] = 'fbsql.default_database';
directives[] = 'fbsql.default_host';
directives[] = 'fbsql.default_password';
directives[] = 'fbsql.default_user';
directives[] = 'fbsql.generate_warnings';
directives[] = 'fbsql.max_connections';
directives[] = 'fbsql.max_links';
directives[] = 'fbsql.max_persistent';
directives[] = 'fbsql.max_results';
directives[] = 'fbsql.mbatchSize';
directives[] = 'fbsql.show_timestamp_decimals';
directives[] = 'file_uploads';
directives[] = 'filter.default_flags';
directives[] = 'filter.default';
directives[] = 'from';
directives[] = 'gd.jpeg_ignore_warning';
directives[] = 'geoip.custom_directory';
directives[] = 'geoip.database_standard';
directives[] = 'hidef.ini_path';
directives[] = 'highlight.bg';
directives[] = 'highlight.comment';
directives[] = 'highlight.default';
directives[] = 'highlight.html';
directives[] = 'highlight.keyword';
directives[] = 'highlight.string';
directives[] = 'html_errors';
directives[] = 'htscanner.config_file';
directives[] = 'htscanner.default_docroot';
directives[] = 'htscanner.default_ttl';
directives[] = 'htscanner.stop_on_error';
directives[] = 'http.allowed_methods_log';
directives[] = 'http.allowed_methods';
directives[] = 'http.cache_log';
directives[] = 'http.composite_log';
directives[] = 'http.etag_mode';
directives[] = 'http.etag.mode';
directives[] = 'http.force_exit';
directives[] = 'http.log.allowed_methods';
directives[] = 'http.log.cache';
directives[] = 'http.log.composite';
directives[] = 'http.log.not_found';
directives[] = 'http.log.redirect';
directives[] = 'http.ob_deflate_auto';
directives[] = 'http.ob_deflate_flags';
directives[] = 'http.ob_inflate_auto';
directives[] = 'http.ob_inflate_flags';
directives[] = 'http.only_exceptions';
directives[] = 'http.persistent.handles.ident';
directives[] = 'http.persistent.handles.limit';
directives[] = 'http.redirect_log';
directives[] = 'http.request.datashare.connect';
directives[] = 'http.request.datashare.cookie';
directives[] = 'http.request.datashare.dns';
directives[] = 'http.request.datashare.ssl';
directives[] = 'http.request.methods.allowed';
directives[] = 'http.request.methods.custom';
directives[] = 'http.send.deflate.start_auto';
directives[] = 'http.send.deflate.start_flags';
directives[] = 'http.send.inflate.start_auto';
directives[] = 'http.send.inflate.start_flags';
directives[] = 'http.send.not_found_404';
directives[] = 'ibase.allow_persistent';
directives[] = 'ibase.dateformat';
directives[] = 'ibase.default_charset';
directives[] = 'ibase.default_db';
directives[] = 'ibase.default_password';
directives[] = 'ibase.default_user';
directives[] = 'ibase.max_links';
directives[] = 'ibase.max_persistent';
directives[] = 'ibase.timeformat';
directives[] = 'ibase.timestampformat';
directives[] = 'ibm_db2.binmode';
directives[] = 'ibm_db2.i5_all_pconnect';
directives[] = 'ibm_db2.i5_allow_commit';
directives[] = 'ibm_db2.i5_dbcs_alloc';
directives[] = 'ibm_db2.i5_ignore_userid';
directives[] = 'ibm_db2.instance_name';
directives[] = 'iconv.input_encoding';
directives[] = 'iconv.internal_encoding';
directives[] = 'iconv.output_encoding';
directives[] = 'ifx.allow_persistent';
directives[] = 'ifx.blobinfile';
directives[] = 'ifx.byteasvarchar';
directives[] = 'ifx.charasvarchar';
directives[] = 'ifx.default_host';
directives[] = 'ifx.default_password';
directives[] = 'ifx.default_user';
directives[] = 'ifx.max_links';
directives[] = 'ifx.max_persistent';
directives[] = 'ifx.nullformat';
directives[] = 'ifx.textasvarchar';
directives[] = 'ignore_repeated_errors';
directives[] = 'ignore_repeated_source';
directives[] = 'ignore_user_abort';
directives[] = 'imagick.locale_fix';
directives[] = 'imagick.progress_monitor';
directives[] = 'imagick.skip_version_check';
directives[] = 'imlib2.font_cache_max_size';
directives[] = 'imlib2.font_path';
directives[] = 'implicit_flush';
directives[] = 'include_path';
directives[] = 'ingres.allow_persistent';
directives[] = 'ingres.array_index_start';
directives[] = 'ingres.auto';
directives[] = 'ingres.blob_segment_length';
directives[] = 'ingres.cursor_mode';
directives[] = 'ingres.default_database';
directives[] = 'ingres.default_password';
directives[] = 'ingres.default_user';
directives[] = 'ingres.describe';
directives[] = 'ingres.fetch_buffer_size';
directives[] = 'ingres.max_links';
directives[] = 'ingres.max_persistent';
directives[] = 'ingres.reuse_connection';
directives[] = 'ingres.scrollable';
directives[] = 'ingres.trace_connect';
directives[] = 'ingres.trace';
directives[] = 'ingres.utf8';
directives[] = 'intl.default_locale';
directives[] = 'intl.error_level';
directives[] = 'intl.use_exceptions';
directives[] = 'last_modified';
directives[] = 'ldap.base_dn';
directives[] = 'ldap.max_links';
directives[] = 'log_errors_max_len';
directives[] = 'log_errors';
directives[] = 'log.dbm_dir';
directives[] = 'magic_quotes_gpc';
directives[] = 'magic_quotes_runtime';
directives[] = 'magic_quotes_sybase';
directives[] = 'mail.add_x_header';
directives[] = 'mail.force_extra_parameters';
directives[] = 'mail.log';
directives[] = 'mailparse.def_charset';
directives[] = 'max_execution_time';
directives[] = 'max_file_uploads';
directives[] = 'max_input_nesting_level';
directives[] = 'max_input_time';
directives[] = 'max_input_vars';
directives[] = 'maxdb.default_db';
directives[] = 'maxdb.default_host';
directives[] = 'maxdb.default_pw';
directives[] = 'maxdb.default_user';
directives[] = 'maxdb.long_readlen';
directives[] = 'mbstring.detect_order';
directives[] = 'mbstring.encoding_translation';
directives[] = 'mbstring.func_overload';
directives[] = 'mbstring.http_input';
directives[] = 'mbstring.http_output_conv_mimetypes';
directives[] = 'mbstring.http_output';
directives[] = 'mbstring.internal_encoding';
directives[] = 'mbstring.language';
directives[] = 'mbstring.script_encoding';
directives[] = 'mbstring.strict_detection';
directives[] = 'mbstring.substitute_character';
directives[] = 'mcrypt.algorithms_dir';
directives[] = 'mcrypt.modes_dir';
directives[] = 'memcache.allow_failover';
directives[] = 'memcache.chunk_size';
directives[] = 'memcache.default_port';
directives[] = 'memcache.hash_function';
directives[] = 'memcache.hash_strategy';
directives[] = 'memcache.max_failover_attempts';
directives[] = 'memcached.compression_factor';
directives[] = 'memcached.compression_threshold';
directives[] = 'memcached.compression_type';
directives[] = 'memcached.serializer';
directives[] = 'memcached.sess_binary';
directives[] = 'memcached.sess_consistent_hash';
directives[] = 'memcached.sess_lock_wait';
directives[] = 'memcached.sess_locking';
directives[] = 'memcached.sess_number_of_replicas';
directives[] = 'memcached.sess_prefix';
directives[] = 'memcached.sess_randomize_replica_read';
directives[] = 'memcached.sess_remove_failed';
directives[] = 'memcached.use_sasl';
directives[] = 'memory_limit';
directives[] = 'mime_magic.debug';
directives[] = 'mime_magic.magicfile';
directives[] = 'mongo.allow_empty_keys';
directives[] = 'mongo.allow_persistent';
directives[] = 'mongo.chunk_size';
directives[] = 'mongo.cmd';
directives[] = 'mongo.default_host';
directives[] = 'mongo.default_port';
directives[] = 'mongo.is_master_interval';
directives[] = 'mongo.long_as_object';
directives[] = 'mongo.native_long';
directives[] = 'mongo.ping_interval';
directives[] = 'mongo.utf8';
directives[] = 'msql.allow_persistent';
directives[] = 'msql.max_links';
directives[] = 'msql.max_persistent';
directives[] = 'mssql.allow_persistent';
directives[] = 'mssql.batchsize';
directives[] = 'mssql.charset';
directives[] = 'mssql.compatability_mode';
directives[] = 'mssql.connect_timeout';
directives[] = 'mssql.datetimeconvert';
directives[] = 'mssql.max_links';
directives[] = 'mssql.max_persistent';
directives[] = 'mssql.max_procs';
directives[] = 'mssql.min_error_severity';
directives[] = 'mssql.min_message_severity';
directives[] = 'mssql.secure_connection';
directives[] = 'mssql.textlimit';
directives[] = 'mssql.textsize';
directives[] = 'mssql.timeout';
directives[] = 'mysql.allow_local_infile';
directives[] = 'mysql.allow_persistent';
directives[] = 'mysql.connect_timeout';
directives[] = 'mysql.default_host';
directives[] = 'mysql.default_password';
directives[] = 'mysql.default_port';
directives[] = 'mysql.default_socket';
directives[] = 'mysql.default_user';
directives[] = 'mysql.max_links';
directives[] = 'mysql.max_persistent';
directives[] = 'mysql.trace_mode';
directives[] = 'mysqli.allow_local_infile';
directives[] = 'mysqli.allow_persistent';
directives[] = 'mysqli.cache_size';
directives[] = 'mysqli.default_host';
directives[] = 'mysqli.default_port';
directives[] = 'mysqli.default_pw';
directives[] = 'mysqli.default_socket';
directives[] = 'mysqli.default_user';
directives[] = 'mysqli.max_links';
directives[] = 'mysqli.max_persistent';
directives[] = 'mysqli.reconnect';
directives[] = 'mysqli.rollback_on_cached_plink';
directives[] = 'mysqlnd_memcache.enable';
directives[] = 'mysqlnd_ms.collect_statistics';
directives[] = 'mysqlnd_ms.config_file';
directives[] = 'mysqlnd_ms.disable_rw_split';
directives[] = 'mysqlnd_ms.enable';
directives[] = 'mysqlnd_ms.force_config_usage';
directives[] = 'mysqlnd_ms.ini_file';
directives[] = 'mysqlnd_ms.multi_master';
directives[] = 'mysqlnd_mux.enable';
directives[] = 'mysqlnd_qc.apc_prefix';
directives[] = 'mysqlnd_qc.cache_by_default';
directives[] = 'mysqlnd_qc.cache_no_table';
directives[] = 'mysqlnd_qc.collect_normalized_query_trace';
directives[] = 'mysqlnd_qc.collect_query_trace';
directives[] = 'mysqlnd_qc.collect_statistics_log_file';
directives[] = 'mysqlnd_qc.collect_statistics';
directives[] = 'mysqlnd_qc.enable_qc';
directives[] = 'mysqlnd_qc.ignore_sql_comments';
directives[] = 'mysqlnd_qc.memc_port';
directives[] = 'mysqlnd_qc.memc_server';
directives[] = 'mysqlnd_qc.query_trace_bt_depth';
directives[] = 'mysqlnd_qc.slam_defense_ttl';
directives[] = 'mysqlnd_qc.slam_defense';
directives[] = 'mysqlnd_qc.sqlite_data_file';
directives[] = 'mysqlnd_qc.std_data_copy';
directives[] = 'mysqlnd_qc.time_statistics';
directives[] = 'mysqlnd_qc.ttl';
directives[] = 'mysqlnd_qc.use_request_time';
directives[] = 'mysqlnd_uh.enable';
directives[] = 'mysqlnd_uh.report_wrong_types';
directives[] = 'mysqlnd.collect_memory_statistics';
directives[] = 'mysqlnd.collect_statistics';
directives[] = 'mysqlnd.debug';
directives[] = 'mysqlnd.log_mask';
directives[] = 'mysqlnd.mempool_default_size';
directives[] = 'mysqlnd.net_cmd_buffer_size';
directives[] = 'mysqlnd.net_read_buffer_size';
directives[] = 'mysqlnd.net_read_timeout';
directives[] = 'mysqlnd.sha256_server_public_key';
directives[] = 'mysqlnd.trace_alloc';
directives[] = 'newrelic.appname (HIGHLY RECOMMENDED)';
directives[] = 'newrelic.capture_params';
directives[] = 'newrelic.enabled';
directives[] = 'newrelic.framework';
directives[] = 'newrelic.high_security';
directives[] = 'newrelic.ignored_params';
directives[] = 'newrelic.labels';
directives[] = 'newrelic.license (REQUIRED)';
directives[] = 'newrelic.loglevel';
directives[] = 'newrelic.process_host.display_name';
directives[] = 'newrelic.transaction_tracer.detail';
directives[] = 'nsapi.read_timeout';
directives[] = 'oci8.connection_class';
directives[] = 'oci8.default_prefetch';
directives[] = 'oci8.events';
directives[] = 'oci8.max_persistent';
directives[] = 'oci8.old_oci_close_semantics';
directives[] = 'oci8.persistent_timeout';
directives[] = 'oci8.ping_interval';
directives[] = 'oci8.privileged_connect';
directives[] = 'oci8.statement_cache_size';
directives[] = 'odbc.allow_persistent';
directives[] = 'odbc.check_persistent';
directives[] = 'odbc.default_cursortype';
directives[] = 'odbc.default_db';
directives[] = 'odbc.default_pw';
directives[] = 'odbc.default_user';
directives[] = 'odbc.defaultbinmode';
directives[] = 'odbc.defaultlrl';
directives[] = 'odbc.max_links';
directives[] = 'odbc.max_persistent';
directives[] = 'odbtp.datetime_format';
directives[] = 'odbtp.detach_default_queries';
directives[] = 'odbtp.guid_format';
directives[] = 'odbtp.interface_file';
directives[] = 'odbtp.truncation_errors';
directives[] = 'open_basedir';
directives[] = 'opendirectory.default_separator';
directives[] = 'opendirectory.max_refs';
directives[] = 'opendirectory.separator';
directives[] = 'oracle.allow_persistent';
directives[] = 'oracle.max_links';
directives[] = 'oracle.max_persistent';
directives[] = 'output_buffering';
directives[] = 'output_handler';
directives[] = 'pam.servicename';
directives[] = 'pcre.backtrack_limit';
directives[] = 'pcre.jit';
directives[] = 'pcre.recursion_limit';
directives[] = 'pdo_mysql.default_socket';
directives[] = 'pdo_odbc.connection_pooling';
directives[] = 'pdo_odbc.db2_instance_name';
directives[] = 'pdo.dsn.*';
directives[] = 'pfpro.defaulthost';
directives[] = 'pfpro.defaultport';
directives[] = 'pfpro.defaulttimeout';
directives[] = 'pfpro.proxyaddress';
directives[] = 'pfpro.proxylogon';
directives[] = 'pfpro.proxypassword';
directives[] = 'pfpro.proxyport';
directives[] = 'pgsql.allow_persistent';
directives[] = 'pgsql.auto_reset_persistent';
directives[] = 'pgsql.ignore_notice';
directives[] = 'pgsql.log_notice';
directives[] = 'pgsql.max_links';
directives[] = 'pgsql.max_persistent';
directives[] = 'phar.cache_list';
directives[] = 'phar.extract_list';
directives[] = 'phar.readonly';
directives[] = 'phar.require_hash';
directives[] = 'post_max_size';
directives[] = 'precision';
directives[] = 'printer.default_printer';
directives[] = 'python.append_path';
directives[] = 'python.prepend_path';
directives[] = 'realpath_cache_size';
directives[] = 'realpath_cache_ttl';
directives[] = 'register_argc_argv';
directives[] = 'register_globals';
directives[] = 'register_long_arrays';
directives[] = 'report_memleaks';
directives[] = 'report_zend_debug';
directives[] = 'request_order';
directives[] = 'request_terminate_timeout';
directives[] = 'runkit.internal_override';
directives[] = 'runkit.superglobal';
directives[] = 'safe_mode_allowed_env_vars';
directives[] = 'safe_mode_exec_dir';
directives[] = 'safe_mode_gid';
directives[] = 'safe_mode_include_dir';
directives[] = 'safe_mode_protected_env_vars';
directives[] = 'safe_mode';
directives[] = 'scream.enabled';
directives[] = 'sendmail_from';
directives[] = 'sendmail_path';
directives[] = 'serialize_precision';
directives[] = 'session_pgsql.create_table';
directives[] = 'session_pgsql.db';
directives[] = 'session_pgsql.disable';
directives[] = 'session_pgsql.failover_mode';
directives[] = 'session_pgsql.gc_interval';
directives[] = 'session_pgsql.keep_expired';
directives[] = 'session_pgsql.sem_file_name';
directives[] = 'session_pgsql.serializable';
directives[] = 'session_pgsql.short_circuit';
directives[] = 'session_pgsql.use_app_vars';
directives[] = 'session_pgsql.vacuum_interval';
directives[] = 'session.auto_start';
directives[] = 'session.bug_compat_42';
directives[] = 'session.bug_compat_warn';
directives[] = 'session.cache_expire';
directives[] = 'session.cache_limiter';
directives[] = 'session.cookie_domain';
directives[] = 'session.cookie_httponly';
directives[] = 'session.cookie_lifetime';
directives[] = 'session.cookie_path';
directives[] = 'session.cookie_secure';
directives[] = 'session.entropy_file';
directives[] = 'session.entropy_length';
directives[] = 'session.gc_dividend';
directives[] = 'session.gc_divisor';
directives[] = 'session.gc_maxlifetime';
directives[] = 'session.gc_probability';
directives[] = 'session.hash_bits_per_character';
directives[] = 'session.hash_function';
directives[] = 'session.lazy_write';
directives[] = 'session.name';
directives[] = 'session.referer_check';
directives[] = 'session.save_handler';
directives[] = 'session.save_path';
directives[] = 'session.serialize_handler';
directives[] = 'session.sid_bits_per_character';
directives[] = 'session.sid_length';
directives[] = 'session.trans_sid_hosts';
directives[] = 'session.upload_progress.cleanup';
directives[] = 'session.upload_progress.enabled';
directives[] = 'session.upload_progress.freq';
directives[] = 'session.upload_progress.min_freq';
directives[] = 'session.upload_progress.name';
directives[] = 'session.upload_progress.prefix';
directives[] = 'session.use_cookies';
directives[] = 'session.use_only_cookies';
directives[] = 'session.use_strict_mode';
directives[] = 'session.use_trans_sid';
directives[] = 'short_open_tag';
directives[] = 'smtp_port';
directives[] = 'SMTP';
directives[] = 'soap.wsdl_cache_dir';
directives[] = 'soap.wsdl_cache_enabled';
directives[] = 'soap.wsdl_cache_limit';
directives[] = 'soap.wsdl_cache_ttl';
directives[] = 'soap.wsdl_cache';
directives[] = 'sql.safe_mode';
directives[] = 'sqlite.assoc_case';
directives[] = 'sqlite3.extension_dir';
directives[] = 'suhosin.apc_bug_workaround';
directives[] = 'suhosin.cookie.checkraddr';
directives[] = 'suhosin.cookie.cryptdocroot';
directives[] = 'suhosin.cookie.cryptkey';
directives[] = 'suhosin.cookie.cryptlist';
directives[] = 'suhosin.cookie.cryptraddr';
directives[] = 'suhosin.cookie.cryptua';
directives[] = 'suhosin.cookie.disallow_nul';
directives[] = 'suhosin.cookie.disallow_ws';
directives[] = 'suhosin.cookie.encrypt';
directives[] = 'suhosin.cookie.max_array_depth';
directives[] = 'suhosin.cookie.max_array_index_leng';
directives[] = 'suhosin.cookie.max_name_length';
directives[] = 'suhosin.cookie.max_totalname_length';
directives[] = 'suhosin.cookie.max_value_length';
directives[] = 'suhosin.cookie.max_vars';
directives[] = 'suhosin.cookie.plainlist';
directives[] = 'suhosin.coredump';
directives[] = 'suhosin.disable.display_errors';
directives[] = 'suhosin.executor.allow_symlink';
directives[] = 'suhosin.executor.disable_emodifier';
directives[] = 'suhosin.executor.disable_eval';
directives[] = 'suhosin.executor.eval.blacklist';
directives[] = 'suhosin.executor.eval.whitelist';
directives[] = 'suhosin.executor.func.blacklist';
directives[] = 'suhosin.executor.func.whitelist';
directives[] = 'suhosin.executor.include.allow_writelist';
directives[] = 'suhosin.executor.include.blacklist';
directives[] = 'suhosin.executor.include.max_traversal';
directives[] = 'suhosin.executor.include.whitelist';
directives[] = 'suhosin.executor.max_depth';
directives[] = 'suhosin.filter.action';
directives[] = 'suhosin.get.disallow_nul';
directives[] = 'suhosin.get.disallow_ws';
directives[] = 'suhosin.get.max_array_depth';
directives[] = 'suhosin.get.max_array_index_length';
directives[] = 'suhosin.get.max_name_length';
directives[] = 'suhosin.get.max_totalname_length';
directives[] = 'suhosin.get.max_value_length';
directives[] = 'suhosin.get.max_vars';
directives[] = 'suhosin.log.file.name';
directives[] = 'suhosin.log.file.time';
directives[] = 'suhosin.log.file';
directives[] = 'suhosin.log.phpscript.is_safe';
directives[] = 'suhosin.log.phpscript.name';
directives[] = 'suhosin.log.phpscript';
directives[] = 'suhosin.log.sapi';
directives[] = 'suhosin.log.script.name';
directives[] = 'suhosin.log.script';
directives[] = 'suhosin.log.stdout';
directives[] = 'suhosin.log.syslog.facility';
directives[] = 'suhosin.log.syslog.priority';
directives[] = 'suhosin.log.syslog'
directives[] = 'suhosin.log.use-x-forwarded-for';
directives[] = 'suhosin.mail.protect';
directives[] = 'suhosin.memory_limit';
directives[] = 'suhosin.mt_srand.ignore';
directives[] = 'suhosin.multiheader';
directives[] = 'suhosin.perdir';
directives[] = 'suhosin.post.disallow_nul';
directives[] = 'suhosin.post.disallow_ws';
directives[] = 'suhosin.post.max_array_depth';
directives[] = 'suhosin.post.max_array_index_length';
directives[] = 'suhosin.post.max_name_length';
directives[] = 'suhosin.post.max_totalname_length';
directives[] = 'suhosin.post.max_value_length';
directives[] = 'suhosin.post.max_vars';
directives[] = 'suhosin.protectkey';
directives[] = 'suhosin.rand.reseed_every_request';
directives[] = 'suhosin.rand.seedingkey';
directives[] = 'suhosin.request.array_index_blacklist';
directives[] = 'suhosin.request.array_index_whitelist';
directives[] = 'suhosin.request.disallow_nul';
directives[] = 'suhosin.request.disallow_ws';
directives[] = 'suhosin.request.max_array_depth';
directives[] = 'suhosin.request.max_array_index_length';
directives[] = 'suhosin.request.max_totalname_length';
directives[] = 'suhosin.request.max_value_length';
directives[] = 'suhosin.request.max_varname_length';
directives[] = 'suhosin.request.max_vars';
directives[] = 'suhosin.server.encode';
directives[] = 'suhosin.server.strip';
directives[] = 'suhosin.session.checkraddr';
directives[] = 'suhosin.session.cryptdocroot';
directives[] = 'suhosin.session.cryptkey';
directives[] = 'suhosin.session.cryptraddr';
directives[] = 'suhosin.session.cryptua';
directives[] = 'suhosin.session.encrypt';
directives[] = 'suhosin.session.max_id_length';
directives[] = 'suhosin.simulation';
directives[] = 'suhosin.sql.bailout_on_error';
directives[] = 'suhosin.sql.comment';
directives[] = 'suhosin.sql.multiselect';
directives[] = 'suhosin.sql.opencomment';
directives[] = 'suhosin.sql.union';
directives[] = 'suhosin.sql.user_match';
directives[] = 'suhosin.sql.user_postfix';
directives[] = 'suhosin.sql.user_prefix';
directives[] = 'suhosin.srand.ignore';
directives[] = 'suhosin.stealth';
directives[] = 'suhosin.upload.allow_utf8';
directives[] = 'suhosin.upload.disallow_binary';
directives[] = 'suhosin.upload.disallow_elf';
directives[] = 'suhosin.upload.max_newlines';
directives[] = 'suhosin.upload.max_uploads';
directives[] = 'suhosin.upload.remove_binary';
directives[] = 'suhosin.upload.verification_script';
directives[] = 'sybase.allow_persistent';
directives[] = 'sybase.hostname';
directives[] = 'sybase.interface_file';
directives[] = 'sybase.login_timeout';
directives[] = 'sybase.max_links';
directives[] = 'sybase.max_persistent';
directives[] = 'sybase.min_client_severity';
directives[] = 'sybase.min_error_severity';
directives[] = 'sybase.min_message_severity';
directives[] = 'sybase.min_server_severity';
directives[] = 'sybase.timeout';
directives[] = 'sybct.allow_persistent';
directives[] = 'sybct.deadlock_retry_count';
directives[] = 'sybct.hostname';
directives[] = 'sybct.login_timeout';
directives[] = 'sybct.max_links';
directives[] = 'sybct.max_persistent';
directives[] = 'sybct.min_client_severity';
directives[] = 'sybct.min_server_severity';
directives[] = 'sybct.packet_size';
directives[] = 'sybct.timeout';
directives[] = 'sys_temp_dir';
directives[] = 'sysvshm.init_mem';
directives[] = 'tidy.clean_output';
directives[] = 'tidy.default_config';
directives[] = 'track_errors';
directives[] = 'unserialize_callback_func';
directives[] = 'upload_max_filesize';
directives[] = 'upload_tmp_dir';
directives[] = 'uploadprogress.file.filename_template';
directives[] = 'url_rewriter.tags';
directives[] = 'user_agent';
directives[] = 'user_dir';
directives[] = 'user_ini.cache_ttl';
directives[] = 'user_ini.filename';
directives[] = 'valkyrie.auto_validate';
directives[] = 'valkyrie.config_path';
directives[] = 'variables_order';
directives[] = 'vld.active';
directives[] = 'vld.execute';
directives[] = 'vld.skip_append';
directives[] = 'vld.skip_prepend';
directives[] = 'windows_show_crt_warning';
directives[] = 'windows.show_crt_warning';
directives[] = 'xbithack';
directives[] = 'xcache.cacher';
directives[] = 'xcache.optimizer';
directives[] = 'xcache.size';
directives[] = 'xcache.stat';
directives[] = 'xcache.var_maxttl';
directives[] = 'xcache.var_size';
directives[] = 'xdebug.auto_profile_mode';
directives[] = 'xdebug.auto_profile';
directives[] = 'xdebug.auto_trace';
directives[] = 'xdebug.cli_color';
directives[] = 'xdebug.collect_includes';
directives[] = 'xdebug.collect_params';
directives[] = 'xdebug.collect_return';
directives[] = 'xdebug.collect_vars';
directives[] = 'xdebug.coverage_enable';
directives[] = 'xdebug.default_enable';
directives[] = 'xdebug.dump_globals';
directives[] = 'xdebug.dump_once';
directives[] = 'xdebug.dump_undefined';
directives[] = 'xdebug.dump.COOKIE';
directives[] = 'xdebug.dump.ENV';
directives[] = 'xdebug.dump.FILES';
directives[] = 'xdebug.dump.GET';
directives[] = 'xdebug.dump.POST';
directives[] = 'xdebug.dump.REQUEST';
directives[] = 'xdebug.dump.SERVER';
directives[] = 'xdebug.dump.SESSION';
directives[] = 'xdebug.extended_info';
directives[] = 'xdebug.file_link_format';
directives[] = 'xdebug.idekey';
directives[] = 'xdebug.manual_url';
directives[] = 'xdebug.max_nesting_level';
directives[] = 'xdebug.output_dir';
directives[] = 'xdebug.overload_var_dump';
directives[] = 'xdebug.profiler_aggregate';
directives[] = 'xdebug.profiler_append';
directives[] = 'xdebug.profiler_enable_trigger';
directives[] = 'xdebug.profiler_enable';
directives[] = 'xdebug.profiler_enabled';
directives[] = 'xdebug.profiler_output_dir';
directives[] = 'xdebug.profiler_output_name';
directives[] = 'xdebug.remote_autostart';
directives[] = 'xdebug.remote_enable';
directives[] = 'xdebug.remote_handler';
directives[] = 'xdebug.remote_host';
directives[] = 'xdebug.remote_log';
directives[] = 'xdebug.remote_mode';
directives[] = 'xdebug.remote_port';
directives[] = 'xdebug.scream';
directives[] = 'xdebug.show_error_trace';
directives[] = 'xdebug.show_exception_trace';
directives[] = 'xdebug.show_local_vars';
directives[] = 'xdebug.show_mem_delta';
directives[] = 'xdebug.trace_format';
directives[] = 'xdebug.trace_options';
directives[] = 'xdebug.trace_output_dir';
directives[] = 'xdebug.trace_output_name';
directives[] = 'xdebug.var_display_max_children';
directives[] = 'xdebug.var_display_max_data';
directives[] = 'xdebug.var_display_max_depth';
directives[] = 'xhprof.output_dir';
directives[] = 'xmlrpc_error_number';
directives[] = 'xmlrpc_errors';
directives[] = 'xmms.path';
directives[] = 'xmms.session';
directives[] = 'xsl.security_prefs';
directives[] = 'y2k_compliance';
directives[] = 'yami.response.timeout';
directives[] = 'yaz.keepalive';
directives[] = 'yaz.log_mask';
directives[] = 'yaz.max_links';
directives[] = 'zend_accelerator.compress_all';
directives[] = 'zend_accelerator.output_cache_dir';
directives[] = 'zend_datacache.disk.save_path';
directives[] = 'zend_datacache.shm.memory_cache_size';
directives[] = 'zend_extension_debug_ts';
directives[] = 'zend_extension_debug';
directives[] = 'zend_extension_ts';
directives[] = 'zend_extension';
directives[] = 'zend_monitor.enable';
directives[] = 'zend_optimizer.optimization_level';
directives[] = 'zend_optimizerplus.enable';
directives[] = 'zend_optimizerplus.load_comments';
directives[] = 'zend_optimizerplus.optimization_level';
directives[] = 'zend_optimizerplus.save_comments';
directives[] = 'zend.assertions';
directives[] = 'zend.detect_unicode';
directives[] = 'zend.enable_gc';
directives[] = 'zend.multibyte';
directives[] = 'zend.script_encoding';
directives[] = 'zend.signal_check';
directives[] = 'zend.ze1_compatibility_mode';
directives[] = 'zlib.output_compression_level';
directives[] = 'zlib.output_compression';
directives[] = 'zlib.output_handler';
constants[] = 'XSL_CLONE_AUTO';
constants[] = 'XSL_CLONE_NEVER';
constants[] = 'XSL_CLONE_ALWAYS';
constants[] = 'XSL_SECPREF_NONE';
constants[] = 'XSL_SECPREF_READ_FILE';
constants[] = 'XSL_SECPREF_WRITE_FILE';
constants[] = 'XSL_SECPREF_CREATE_DIRECTORY';
constants[] = 'XSL_SECPREF_READ_NETWORK';
constants[] = 'XSL_SECPREF_WRITE_NETWORK';
constants[] = 'XSL_SECPREF_DEFAULT';
constants[] = 'LIBXSLT_VERSION';
constants[] = 'LIBXSLT_DOTTED_VERSION';
constants[] = 'LIBEXSLT_VERSION';
constants[] = 'LIBEXSLT_DOTTED_VERSION';

functions[] = 

classes[] = XSLTProcessor

interfaces[] = 

traits[] = 

namespaces[] = 

directives[] = 

   Bud1                                                                     blob   bpli                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          @                                              @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  e nbwspblob   bplist00	
			]ShowStatusBar_SidebarWidthTenElevenOrLater[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar[ShowPathbar	#@j     		_{{-1677, 178}, {770, 436}}	'FR^u                                e nlsvCblob  bplist00	
HIJKL_viewOptionsVersion_showIconPreview_calculateAllSizesWcolumns_scrollPositionYXtextSize_scrollPositionXZsortColumnXiconSize_useRelativeDates 	"&+05:?DZidentifierUwidthYascendingWvisibleTname		#Xubiquity\dateModified	#[dateCreated'(Tsizea	,-Tkinds		12Ulabeld	67WversionK	;<Xcomments,	@A^dateLastOpenedGYdateAdded#@m@     #@(      #        Tname#@0      	   2 D X ` r {                 &()*3?@AJOQRS\acdentvwx             N                  e nlsvpblob  bplist00	
GHIJK_viewOptionsVersion_showIconPreview_calculateAllSizesWcolumns_scrollPositionYXtextSize_scrollPositionXZsortColumnXiconSize_useRelativeDates 	!&+/49>CXcomments^dateLastOpened\dateModified[dateCreatedTsizeUlabelTkindWversionTname WvisibleUwidthYascendingUindex,	#%(*	(.13	a68d	;=	s	@BK	E		#@m@     #@(      #        Tname#@0      	   2 D X ` r {            "*0:@ADEGPQSTV_`bcenopr{|~             M                  e nvSrnlong                                                                                                                                                                                                                                                                                                                                                                     E                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         DSDB                                 `                                                  @                                                @                                                @       abelTkindWversionTname WvisibleUwidthYascendingUindex,	#%(*	(.13	a68d	;=	s	@BK	E		#@m@     #@(      #        Tname#@0      	   2 D X ` r {            "*0:@ADEGPQSTV_`bcenopr{|~             M                  e nvSrnlong                                                                                                                                                                                                                                                                                                                                                         name = "Memoize MagicCall";
description = "Cache calls to magic methods in local variable. Local cache is faster than calling again the magic method as soon as the second call, provided that the value hasn't changed.

``__get`` is slower, as it turns a simple member access into a full method call. 

<?php

class x {
    private $values = array();
    
    function __get($name) {
        return $this->values[$name];
    }
    // more code to set values to this class
}

function foo(x $b) {
    $a = $b->a; 
    $c = $b->c;
    
    $d = $c;     // using local cache, no new access to $b->__get($name)
    $e = $b->a;  // Second access to $b->a, through __get
}

function bar(x $b) {
    $a = $b->a; 
    $c = $b->c;
    
    $b->bar2(); // this changes $b->a and $b->c, but we don't see it
    
    $d = $b->c; 
    $e = $b->a;  // Second access to $b->a, through __get
}

?>

The caching is not possible if the processing of the object changes the value of the property. 

See also `__get performance questions with PHP <https://stackoverflow.com/questions/3330852/get-set-call-performance-questions-with-php>`_,
         Classes/MakeMagicConcrete and 
         `Benchmarking magic <https://www.garfieldtech.com/blog/benchmarking-magic>`_.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.8.3";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Cache the value in a local variable, and reuse that variable"
modifications[] = "Make the property concrete in the class, so as to avoid __get() altogether"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Use array_slice()";
description = "Array_slice is de equivalent of substr() for arrays.

array_splice() is also possible, to remove a portion of array inside the array, not at the ends. This has no equivalent for strings.

<?php

$array = range(0, 9);

// Extract the 5 first elements
print_r(array_slice($array, 0, 5));

// Extract the 4 last elements
print_r(array_slice($array, -4));

// Extract the 2 central elements : 4 and 5
print_r(array_splice($array, 4, 2));

// slow way to remove the last elementst of an array
for($i = 0; $i < 4) {
    array_pop($array);
}

?>

See also `array_slice <http://www.php.net/array_slice>`_ and 
         `array_splice <http://www.php.net/array_splice>`_.
         
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.5";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Simple Switch";
description = "Switches are faster when relying only on integers or strings.

Since PHP 7.2, simple switches that use only strings or integers are optimized. The gain is as great as the switch is big. 

<?php

// Optimized switch. 
switch($b) {
    case \"a\":
        break;
    case \"b\":
        break;
    case \"c\":
        break;
    case \"d\":
        break;
    default :
        break;
}

// Unoptimized switch. 
// Try moving the foo() call in the default, to keep the rest of the switch optimized.
switch($c) {
    case \"a\":
        break;
    case foo($b):
        break;
    case \"c\":
        break;
    case \"d\":
        break;
    default :
        break;
}

?>

See also `PHP 7.2's \"switch\" optimisations <https://derickrethans.nl/php7.2-switch.html>`_.
";
clearphp = "";
phpversion = "7.2+";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "1.0.1";

modifications[] = "Split the switch between literal and dynamic cases"
modifications[] = "Remove the dynamic cases from the switch"name = "time() Vs strtotime()";
description = "time() is actually faster than strtotime() with 'now' key string.

<?php

// Faster version
$a = time();

// Slower version
$b = strtotime('now');

?>

This is a micro-optimisation. Relative gain is real, but small unless the function is used many times.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.7";
modifications[] = "Replace strtotime() with time(). Do not change strtotime() with other value than 'now'."
[example1]
project="Woocommerce"
file="includes/class-wc-webhook.php"
line="384"
code="	public function get_new_delivery_id() {
		// Since we no longer use comments to store delivery logs, we generate a unique hash instead based on current time and webhook ID.
		return wp_hash( $this->get_id() . strtotime( 'now' ) );
	}
";
explain="time() would be faster here, as an entropy generator. Yet, it would still be better to use an actual secure entropy generator, like random_byte or random_int. In case of older version, microtime() would yield better entropy. "
name = "Substring First";
description = "Always start by reducing a string before applying some transformation on it. The shorter string will be processed faster. 

<?php

// fast version
$result = strtolower(substr($string, $offset, $length));

// slower version
$result = substr(strtolower($string), $offset, $length);
?>

The gain produced here is greater with longer strings, or greater reductions. They may also be used in loops. This is a micro-optimisation when used on short strings and single string reductions.

This works with any reduction function instead of substr(), like trim(), iconv(), etc. 

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "1.0.1";

modifications[] = "Always reduce the string first, then apply some transformation"

[example1]
project="SPIP"
file="ecrire/inc/filtres.php"
line="1694"
code="function filtre_initiale($nom) {
	return spip_substr(trim(strtoupper(extraire_multi($nom))), 0, 1);
}
";
explain="The code first makes everything uppercase, including the leading and trailing spaces, and then, removes them : it would be best to swap those operations. Note that spip_substr() is not considered in this analysis, but with SPIP knowledge, it could be moved inside the calls. "

[example2]
project="PrestaShop"
file="admin-dev/filemanager/include/utils.php"
line="197"
code="dirname(str_replace(' ', '~', $str))

";
explain="dirname() reduces the string (or at least, keeps it the same size), so it more efficient to have it first."
name = "Double array_flip()";
description = "Avoid double array_flip() to gain speed. While array_flip() alone is usually useful, a double call to array_flip() is made to make values and keys unique. 

<?php

// without array_flip
function foo($array, $value) {
    $key = array_search($array, $value);
    
    if ($key !== false) {
        unset($array[$key]);
    }
    
    return $array;
}

// double array_flip
// array_flip() usage means that $array's values are all unique
function foo($array, $value) {
    $flipped = array_flip($value);
    unset($flipped[$value]);
    return array_flip($flipped);
}

?>

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "1.1.4";
modifications[] = "use array_unique() or array_count_values"
modifications[] = "use array_flip() once, and let PHP garbage collect it later"
modifications[] = "Keep the original values in a separate variable"


[example1]
project="NextCloud"
file="lib/public/AppFramework/Http/EmptyContentSecurityPolicy.php"
line="372"
code="			if(is_string($this->useJsNonce)) {
				$policy .= '\'nonce-'.base64_encode($this->useJsNonce).'\'';
				$allowedScriptDomains = array_flip($this->allowedScriptDomains);
				unset($allowedScriptDomains['\'self\'']);
				$this->allowedScriptDomains = array_flip($allowedScriptDomains);
				if(count($allowedScriptDomains) !== 0) {
					$policy .= ' ';
				}
			}
";
explain="The array $allowedScriptDomains is flipped, to unset 'self', then, unflipped (or flipped again), to restore its initial state. Using array_keys() or array_search() would yield the needed keys for unsetting, at a lower cost."
name = "Cache Variable Outside Loop";
description = "Avoid recalculating constant values inside the loop.

Do the calculation once, outside the loops, and then reuse the value each time. 

One of the classic example if doing ``count($array)`` in a ``for`` loop : since the source is constant during the loop, the result of count() is always the same. 

<?php

$path = '/some/path';
$fullpath = realpath(\"$path/more/dirs/\");
foreach($files as $file) {
    // Only moving parts are used in the loop
    copy($file, $fullpath.$file);
}

$path = '/some/path';
foreach($files as $file) {
    // $fullpath is calculated each loop
    $fullpath = realpath(\"$path/more/dirs/\");
    copy($file, $fullpath.$file);
}

?>

Depending on the load of the called method, this may increase the speed of the loop from little to enormously.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.2.8";

modifications[] = "Avoid using blind variables outside loops."
modifications[] = "Store blind variables in local variables or properties for later reuse."
name = "Do In Base";
description = "Use SQL expression to compute aggregates. 

<?php

// Efficient way
$res = $db->query('SELECT sum(e) AS sumE FROM table WHERE condition');

// The sum is already done
$row = $res->fetchArray();
$c += $row['sumE'];

// Slow way
$res = $db->query('SELECT e FROM table WHERE condition');

// This aggregates the column e in a slow way
while($row = $res->fetchArray()) { 
    $c += $row['e'];
}

?>

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "1.2.8";

modifications[] = "Rework the query to move the calculations in the database"name = "Use The Blind Var";
description = "When in a loop, it is faster to rely on the blind var, rather than the original source.

When the key is referenced in the foreach loop, it is faster to use the available container to access a value for reading.

Note that it is also faster to use the value with a reference to handle the writings.

<?php

// Reaching $source[$key] via $value is faster
foreach($source as $key => $value) {
    $coordinates = array('x' => $value[0],
                         'y' => $value[1]);
}

// Reaching $source[$key] via $source is slow
foreach($source as $key => $value) {
    $coordinates = array('x' => $source[$key][0],
                         'y' => $source[$key][1]);
}

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "1.2.9";

modifications[] = "Use the blind var"name = "Joining file()";
description = "Use file() to read lines separately. 

Applying join('', ) or implode('', ) to the result of file() provides the same results than using file_get_contents(), but at a higher cost of memory and processing.

If the delimiter is not '', then implode() and file() are a better solution than file_get_contents() and str_replace() or nl2br().

<?php

// memory intensive
$content = file_get_contents('path/to/file.txt');

// memory and CPU intensive
$content = join('', file('path/to/file.txt'));

// Consider reading the data line by line and processing it along the way, 
// to save memory 
$fp = fopen('path/to/file.txt', 'r');
while($line = fget($fp)) {
    // process a line
}
fclose($fp);

?>

Always use file_get_contents() to get the content of a file as a string. Consider using readfile() to echo the content directly to the output.

See also `file_get_contents <http://php.net/file_get_contents>`_ and 
         `file <http://php.net/file>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
modifications[] = "Use file_get_contents() instead of implode(file()) to read the whole file at once."
modifications[] = "Use readfile() to echo the content to stdout at once."
modifications[] = "Use fopen() to read the lines one by one, generator style."
[example1]
project="WordPress"
file="wp-admin/includes/misc.php"
line="74"
code="$markerdata = explode( \"\n\", implode( '', file( $filename ) ) );";
explain="This code actually loads the file, join it, then split it again. file() would be sufficient. "
[example2]
project="SPIP"
file="ecrire/inc/install.php"
line="109"
code="$s = @join('', file($file));";
explain="When the file is not accessible, file() returns null, and can't be processed by join(). "
[example3]
project="ExpressionEngine"
file="ExpressionEngine_Core2.9.2/system/expressionengine/libraries/simplepie/idn/idna_convert.class.php"
line="100"
code="if (function_exists('file_get_contents')) {
    $this->NP = unserialize(file_get_contents(dirname(__FILE__).'/npdata.ser'));
} else {
    $this->NP = unserialize(join('', file(dirname(__FILE__).'/npdata.ser')));
}";
explain="join('', ) is used as a replacement for file_get_contents(), which was introduced in PHP 4.3.0."
[example4]
project="PrestaShop"
file="classes/module/Module.php"
line="2972"
code="$override_file = file($override_path);

eval(preg_replace(array('#^\s*<\?(?:php)?#', '#class\s+'.$classname.'\s+extends\s+([a-z0-9_]+)(\s+implements\s+([a-z0-9_]+))?#i'), array(' ', 'class '.$classname.'OverrideOriginal_remove'.$uniq), implode('', $override_file)));
$override_class = new ReflectionClass($classname.'OverrideOriginal_remove'.$uniq);

$module_file = file($this->getLocalPath().'override/'.$path);
eval(preg_replace(array('#^\s*<\?(?:php)?#', '#class\s+'.$classname.'(\s+extends\s+([a-z0-9_]+)(\s+implements\s+([a-z0-9_]+))?)?#i'), array(' ', 'class '.$classname.'Override_remove'.$uniq), implode('', $module_file)));";
explain="implode('', ) is probably not the slowest part in these lines."
name = "Fetch One Row Format";
description = "When reading results with ext/Sqlite3, it is recommended to explicitly request SQLITE3_NUM or SQLITE3_ASSOC, while avoiding the default value and SQLITE3_BOTH.

<?php

$res = $database->query($query);

// Fastest version, but less readable
$row = $res->fetchArray(\SQLITE3_NUM);
// Almost the fastest version, and more readable
$row = $res->fetchArray(\SQLITE3_ASSOC);

// Default version. Quite slow
$row = $res->fetchArray();

// Worse case
$row = $res->fetchArray(\SQLITE3_BOTH);

?>

This is a micro-optimisation. The difference may be visible with 200k rows fetches, and measurable with 10k.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.9.6";

modifications[] = "Specify the result format when reading rows from a Sqlite3 database"name = "array_key_exists() Speedup";
description = "isset() used to be the fastest, but array_key_exists() is. Since PHP 7.4, array_key_exists() has its own opcode, leading to better features and speed.

isset() is faster for all non-empty values, but is limited when the value is NULL or empty : then, array_key_exists() has the good features.

``This change makes array_key_exists() actually faster than isset() by ~25% (tested with GCC 8, -O3, march=native, mtune=native).``.

<?php

$foo = [123 => 456];

// This is sufficient and efficient since PHP 7.4
if (array_search_key($foo[123])) {
    // do something
}

// taking advantages of performances for PHP 7.4 and older
if (isset($foo[123]) || array_search_key($foo[123])) {
    // do something
}

?>

See also `Implement ZEND_ARRAY_KEY_EXISTS opcode to speed up array_key_exists() <https://github.com/php/php-src/pull/3360>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.6.1";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Remove the logical test and the isset() call"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "No Count With 0";
description = "Comparing count(), strlen() or mb_strlen() to 0 is a waste of resources. There are three distinct situations.

When comparing count() with 0, with ===, ==, !==, !=, it is more efficient to use empty(). empty() is a language construct that checks if a value is present, while count() actually load the number of element.

<?php

// Checking if an array is empty
if (count($array) == 0) {
    // doSomething();
}
// This may be replaced with 
if (empty($array)) {
    // doSomething();
}

?>

When comparing count() strictly with 0 and ``>``, it is more efficient to use ``!(empty(  ))``

<?php

// Checking if an array is empty
if (count($array) > 0) {
    // doSomething();
}
// This may be replaced with 
if (!empty($array)) {
    // doSomething();
}

Of course comparing count() with negative values, or with >= is useless.

<?php

// Checking if an array is empty
if (count($array) < 0) {
    // This never happens
    // doSomething();
}

?>

Comparing count(), strlen() or mb_strlen() with other values than 0 cannot be replaced with a comparison with empty().

Note that this is a micro-optimisation : since PHP keeps track of the number of elements in arrays (or number of chars in strings), the total computing time of both operations is often lower than a ms. However, both functions tends to be heavily used, and may even be used inside loops. 

See also `count <http://php.net/count>`_,
         `strlen <http://php.net/strlen>`_ and 
         `mb_strlen <http://php.net/mb_strlen>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
modifications[] = "Use empty() on the data"
modifications[] = "Compare the variable with a default value, such as an empty array"
[example1]
project="Contao"
file="system/modules/repository/classes/RepositoryManager.php"
line="1148"
code="$ext->found = count($elist)>0;";
explain="If $elist contains at least one element, then it is not empty()."
[example2]
project="WordPress"
file="wp-admin/includes/misc.php"
line="74"
code="    // Check for zero length, although unlikely here
    if (strlen($built) == 0 || strlen($signature) == 0) {
      return false;
    }
";
explain="$build or $signature are empty at that point, no need to calculate their respective length. "
name = "fputcsv() In Loops";
description = "fputcsv() is slow when called on each row. It actually flushes the data to the disk each time, and that results in a inefficient dump to the disk, each call.

To speed up this process, it is recommended to dump the csv to memory first, then dump the memory to the disk, in larger chunks. Since fputcsv() works only on stream, it is necessary to use a memory stream.

<?php

// Speedy yet memory intensive version
$f = fopen('php://memory', 'w+');
foreach($data_source as $row) {
    // You may configure fputcsv as usual
    fputcsv($f, $row);
}
rewind($f); // Important
$fp = fopen('final.csv', 'w+');
fputs($fp, stream_get_contents($f));
fclose($fp);
fclose($f);

// Slower version
$fp = fopen('final.csv', 'w+');
foreach($data_source as $row) {
    // You may configure fputcsv as usual
    fputcsv($fp, $row);
}
fclose($fp);
?>

The speed improvement is significant on small rows, while it may be less significant on larger rows : with more data in the rows, the file buffer may fill up more efficiently. On small rows, the speed gain is up to 7 times. 

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.5.5";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Use fputcsv() on a memory stream, and flush it on the disk once"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Slow Functions";
description = "Avoid using those slow native PHP functions, and replace them with alternatives.

<?php

$array = source();

// Slow extraction of distinct values
$array = array_unique($array);

// Much faster extraction of distinct values
$array = array_keys(array_count_values($array));

?>

+---------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------+
| Slow Function                                                 |  Faster                                                                                                                    | 
+---------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------+
| array_diff()              |  foreach()                                                | 
| array_intersect()    |  foreach()                                                | 
| array_key_exists()  |  isset() and array_key_exists()                | 
| array_map()                |  foreach()                                                | 
| array_search()          |  array_flip() and isset()                            | 
| array_udiff()            |  Use another way                                                                                                           | 
| array_uintersect()  |  Use another way                                                                                                           | 
| array_unshift()        |  Use another way                                                                                                           | 
| array_walk()              |  foreach()                                                | 
| in_array()                  |  isset()                                                                                 | 
| preg_replace()          |  strpos()                                                                                  | 
| strstr()                      |  strpos()                                                                                  | 
| uasort()                      |  Use another way                                                                                                           | 
| uksort()                      |  Use another way                                                                                                           | 
| usort()                        |  Use another way                                                                                                           | 
| array_unique()          |  array_keys() and array_count_values()     | 
+---------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------+

array_unique() has been accelerated in PHP 7.2 and may be used directly from this version on : `Optimize array_unique() <https://github.com/php/php-src/commit/6c2c7a023da4223e41fea0225c51a417fc8eb10d>`_.

array_key_exists() has been accelerated in PHP 7.4 and may be used directly from this version on : `Implement ZEND_ARRAY_KEY_EXISTS opcode to speed up array_key_exists() <https://github.com/php/php-src/pull/3360>`_.

";
clearphp = "avoid-those-slow-functions";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
modifications[] = "Replace the slow function with a faster version"
modifications[] = "Remove the usage of the slow function"
[example1]
project="ChurchCRM"
file="src/Reports/PrintDeposit.php"
line="35"
code="array_key_exists(\"report_type\", $_POST);";
explain="You may replace this with a isset() : $_POST can't contain a NULL value, unless it was set by the script itself."
[example2]
project="SuiteCrm"
file= "include/json_config.php"
line="242"
code="preg_replace(\"/\r\n/\", \"<BR>\", $focus->$field)";
explain="This is a equivalent for nl2br()"
name = "Use PHP7 Encapsed Strings";
description = "PHP 7 has optimized the handling of double-quoted strings. In particular, double-quoted strings are much less memory hungry than classic concatenations. 

PHP allocates memory at the end of the double-quoted string, making only one call to the allocator. On the other hand, concatenations are allocated each time they include dynamic content, leading to higher memory consumption. 

<?php

$bar = 'bar';
 
/* PHP 7 optimized this */
$a = \"foo and $bar\";
 
/* This is PHP 5 code (aka, don't use it) */
$a = 'foo and ' . $bar;

// Constants can't be used with double quotes
$a = 'foo and ' . __DIR__;
$a = "foo and __DIR__"; // __DIR__ is not interpolated

?>

Concatenations are still needed with constants, static constants, magic constants, functions, static properties or static methods. 

See also `PHP 7 performance improvements (3/5): Encapsed strings optimization <https://blog.blackfire.io/php-7-performance-improvements-encapsed-strings-optimization.html>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.0.4";name = "Pre-increment";
description = "When possible, use the pre-increment operator (``++$i`` or ``--$i``) instead of the post-increment operator (``$i++`` or ``$i--``).

The latter needs an extra memory allocation that costs about 10% of performances. 

<?php

// ++$i should be preferred over $i++, as current value is not important
for($i = 0; $i <10; ++$i) {
    // do Something
}

// ++$b and $b++ have different impact here, since $a will collect $b + 1 or $b, respectively.
$a = $b++;

?>

This is a micro-optimisation. However, its usage is so widespread, including within loops, that it may eventually have an significant impact on execution time. As such, it is recommended to adopt this rule, and only consider changing legacy code as they are refactored for other reasons.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Use the pre increment when the new value is not reused."

[example1]
project="ExpressionEngine"
file="system/ee/EllisLab/ExpressionEngine/Controller/Utilities/Communicate.php"
line="650"
code="		for ($x = 0; $x < $number_to_send; $x++)
		{
			$email_address = array_shift($recipient_array);

			if ( ! $this->deliverEmail($email, $email_address))
			{
				$email->delete();

				$debug_msg = ee()->email->print_debugger(array());

				show_error(lang('error_sending_email').BR.BR.$debug_msg);
			}
			$email->total_sent++;
		}
";
explain="Using preincrement in for() loops is safe and straightforward. "

[example2]
project="Traq"
file="src/Controllers/Tickets.php"
line="84"
code="            TimelineModel::newTicketEvent($this->currentUser, $ticket)->save();

            $this->currentProject->next_ticket_id++;
            $this->currentProject->save();

";
explain="$this->currentProject->next_ticket_id value is ignored by the code. It may be turned into a preincrement."
name = "Processing Collector";
description = "When accumulating data in a variable, within a loop, it is slow to apply repeatedly a function to the variable.

The example below illustrate the problem : ``$collector`` is build with element from ``$array``. ``$collector`` actually gets larger and larger, slowing the in_array() call each time. 

It is better to apply the preg_replace() to ``$a``, a short variable, and then, add ``$a`` to the collector.

<?php

// Fast way
$collector = '';
foreach($array as $a){
    $a = preg_replace('/__(.*?)__/', '<b>$1</b>', $a);
    $collector .= $a;
}

// Slow way
$collector = '';
foreach($array as $a){
    $collector .= $a;
    $collector = preg_replace('/__(.*?)__/', '<b>$1</b>', $collector);
}

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "1.2.4";

modifications[] = "Avoid applying the checks on the whole data, rather on the diff only."name = "Avoid glob() Usage";
description = "glob() and scandir() sorts results by default. When that kind of sorting is not needed, save some time by requesting ``NOSORT`` with those functions.

Besides, whenever possible, use scandir() instead of glob(). 

<?php

// Scandir without sorting is the fastest. 
scandir('docs/', SCANDIR_SORT_NONE);

// Scandir sorts files by default. Same as above, but with sorting
scandir('docs/');

// glob sorts files by default. Same as below, but no sorting
glob('docs/*', GLOB_NOSORT);

// glob sorts files by default. This is the slowest version
glob('docs/*');

?>

Using opendir() and a while loop may be even faster. 

This analysis skips scandir() and glob() if they are expliciely configured with flags (aka, sorting is explicitly needed).

glob() accepts wildchar, such as ``*``, that may not easily replaced with scandir() or opendir().

See also `Putting glob to the test <https://www.phparch.com/2010/04/putting-glob-to-the-test/>`_ and 
         `glob:// <https://www.php.net/manual/en/wrappers.glob.php>`_.

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.9.6";
modifications[] = "Use FilesystemIterator, DirectoryIterator classes."
modifications[] = "Use ``RegexIterator`` to filter any unwanted results from ``FilesystemIterator``."
modifications[] = "Use ``glob`` protocol for files : $it = new DirectoryIterator('glob://path/to/examples/*.php');"

[example1]
project="Phinx"
file="src/Phinx/Migration/Manager.php"
line="362"
code="            $phpFiles = glob($config->getMigrationPath() . DIRECTORY_SEPARATOR . '*.php');

            // filter the files to only get the ones that match our naming scheme
            $fileNames = array();
            /** @var AbstractMigration[] $versions */
            $versions = array();

            foreach ($phpFiles as $filePath) {
                if (preg_match('/([0-9]+)_([_a-z0-9]*).php/', basename($filePath))) {";
explain="glob() searches for a list of files in the migration folder. Those files are not known, but they have a format, as checked later with the regex : a combinaison of ``FilesystemIterator`` and ``RegexIterator`` would do the trick too."
[example2]
project="NextCloud"
file="lib/private/legacy/helper.php"
line="185"
code="	static function copyr($src, $dest) {
		if (is_dir($src)) {
			if (!is_dir($dest)) {
				mkdir($dest);
			}
			$files = scandir($src);
			foreach ($files as $file) {
				if ($file != \".\" && $file != \"..\") {
					self::copyr(\"$src/$file\", \"$dest/$file\");
				}
			}
		} elseif (file_exists($src) && !\OC\Files\Filesystem::isFileBlacklisted($src)) {
			copy($src, $dest);
		}
	}";
explain="Recursive copy of folders, based on scandir(). ``DirectoryIterator`` and ``FilesystemIterator`` would do the same without the recursion."
name = "Always Use Function With array_key_exists()";
description = "array_key_exists() has been granted a special VM opcode, and is much faster. This applies to PHP 7.4 and more recent. 

It requires that array_key_exists() is statically resolved, either with an initial ``\``, or a ``use function`` expression. This doesn't affect the global namespace.

<?php

namespace my/name/space;

// do not forget the 'function' keyword, or it will apply to classes.
use function array_key_exists as foo; // the alias is not necessary, and may be omitted.

// array_key_exists is aliased to foo : 
$c = foo($a, $b);

// This call requires a fallback to global, and will be slow.
$c = array_key_exists($a, $b);

?>

This analysis is related to Php/ShouldUseFunction, and is a special case, that only concerns array_key_exists().

See also `Add array_key_exists to the list of specialy compiled functions <https://bugs.php.net/bug.php?id=76148>`_.";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.8.4";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Use the `use` command for arrray_key_exists(), at the beginning of the script"
modifications[] = "Use an initial \ before array_key_exists()"
modifications[] = "Remove the namespace"


; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Regex On Arrays";
description = "Avoid using a loop with arrays of regex or values. There are several PHP function which work directly on arrays, and much faster.

preg_grep() is able to extract all matching strings from an array, or non-matching strings. This usually saves a loop over the strings.

preg_filter() is able to extract all strings from an array, matching at least one regex in an array. This usually saves a double loop over the strings and the regex. The trick here is to provide '$0' as replacement, leading preg_filter() to replace the found string by itself.

Finally, preg_replace_callback() an preg_replace_callback_array() are also able to apply an array of regex to an array of strings, and then, apply callbacks to the found values. 

<?php

$regexs = ['/ab+c/', '/abd+/', '/abe+/'];
$strings = ['/abbbbc/', '/abd/', '/abeee/'];

// Directly extract all strings that match one regex
foreach($regexs as $regex) {
    $results[] = preg_grep($regex, $strings);
}

// extract all matching regex, by string
foreach($strings as $string) {
    $results[] = preg_filter($regexs, array_fill(0, count($regexs), '$0'), $string);
}

// very slow way to get all the strings that match a regex
foreach($regexs as $regex) {
    foreach($strings as $string) {
        if (preg_match($regex, $string)) {
            $results[] = $string;
        }
    }
}

?>

See also `preg_filter <https://php.net/preg_filter>`_. ";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.8.4";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Apply preg_match() to an array of string or regex, via preg_filter() or preg_grep()."
modifications[] = "Apply preg_match() to an array of string or regex, via preg_replace_callback() or preg_replace_callback_array()."

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Logical To in_array";
description = "Multiples exclusive comparisons may be replaced by in_array().

in_array() makes the alternatives more readable, especially when the number of alternatives is large. In fact, the list of alternative may even be set in a variable, and centralized for easier management.

Even two 'or' comparisons are slower than using a in_array() call. More calls are even slower than just two. This is a micro-optimisation : speed gain is low, and marginal. Code centralisation is a more significant advantage.

<?php

// Set the list of alternative in a variable, property or constant. 
$valid_values = array(1, 2, 3, 4);
if (in_array($a, $valid_values) ) {
    // doSomething()
}

if ($a == 1 || $a == 2 || $a == 3 || $a == 4) {
    // doSomething()
}

// in_array also works with strict comparisons
if (in_array($a, $valid_values, true) ) {
    // doSomething()
}

if ($a === 1 || $a === 2 || $a === 3 || $a === 4) {
    // doSomething()
}

?>

See also `in_array() <https://www.php.net/in_array>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.12.5";

modifications[] = "Replace the list of comparisons with a in_array() call"

[example1]
project=Zencart
file=admin/users.php
line=32
code="// if needed, check that a valid user id has been passed
if (($action == 'update' || $action == 'reset') && isset($_POST['user']))
{
  $user = $_POST['user'];
}
elseif (($action == 'edit' || $action == 'password' || $action == 'delete' || $action == 'delete_confirm') && $_GET['user'])
{
  $user = $_GET['user'];
}
elseif(($action=='delete' || $action=='delete_confirm') && isset($_POST['user']))
{
  $user = $_POST['user'];
}
";
explain="Long list of == are harder to read. Using an in_array() call gathers all the strings together, in an array. In turn, this helps readability and possibility, reusability by making that list an constant. "
name = "strpos() Too Much";
description = "strpos() covers the whole string before reporting 0. If the expected string is expected be at the beginning, or a fixed place, it is more stable to use substr() for comparison.

The longer the haystack (the searched string), the more efficient is that trick. The string has to be 10k or more to have impact, unless it is in a loop. 

<?php

// This always reads the same amount of string
if (substr($html, 0, 6) === '<html>') {

}

// When searching for a single character, checking with a known position ($string[$position]) is even faster
if ($html[0] === '<') {

}

// With strpos(), the best way is to search for something that exist, and use absence as worst case scenario 
if (strpos($html, '<html>') > 0) {

} else {
    // 
}

// When the search fails, the whole string has been read
if (strpos($html, '<html>') === 0) {

}

?>

This applies to stripos() too.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "1.2.8";

modifications[] = "Check for presence, and not for absence"
modifications[] = "use substr() and compare the extracted string"
modifications[] = "For single chars, try using the position in the string"



[example1]
project="WordPress"
file="core/traits/Request/Server.php"
line="127"
code="			if (strpos($header, 'HTTP_') === 0) {
				$header = substr($header, 5);
			} elseif (strpos($header, 'CONTENT_') !== 0) {
				continue;
			}
";
explain="Instead of searching for ``HTTP_``, it is faster to compare the first 5 chars to the literal ``HTTP_``. In case of absence, this solution returns faster."
name = "No mb_substr In Loop";
description = "Do not use loops on mb_substr(). 

mb_substr() always starts at the beginning of the string ot search for the nth char, and recalculate everything. This means that the first iterations are as fast as substr() (for comparison), while the longer the string, the slower mb_substr().

The recommendation is to use preg_split() with the `u` option, to split the string into an array. This save multiple recalculations.

<?php

// Split the string by characters
$array = preg_split('//u', $string, -1, PREG_SPLIT_NO_EMPTY);
foreach($array as $c) {
    doSomething($c);
}

// Slow version
$nb = mb_strlen($mb);
for($i = 0; $i < $nb; ++$i) {
    // Fetch a character
    $c = mb_substr($string, $i, 1);
    doSomething($c);
}

?>

See also `Optimization: How I made my PHP code run 100 times faster <https://mike42.me/blog/2018-06-how-i-made-my-php-code-run-100-times-faster>`_ and 
        `How to iterate UTF-8 string in PHP? <https://stackoverflow.com/questions/3666306/how-to-iterate-utf-8-string-in-php>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.6";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Use preg_split() and loop on its results."

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "No array_merge() In Loops";
description = "array_merge() is memory intensive : every call will duplicate the arguments in memory, before merging them. 

To handle arrays that may be quite big, it is recommended to avoid using array_merge() in a loop. Instead, one should use array_merge() with as many arguments as possible, making the merge a on time call.

<?php

// A large multidimensional array
$source = ['a' => ['a', 'b', /*...*/],
           'b' => ['b', 'c', 'd', /*...*/],
           /*...*/
           ];

// Faster way
$b = array();
foreach($source as $key => $values) {
    //Collect in an array
    $b[] = $values;
}

// One call to array_merge
$b = call_user_func_array('array_merge', $b);
// or with variadic
$b = call_user_func('array_merge', ..$b);

// Fastest way (with above example, without checking nor data pulling)
$b = call_user_func_array('array_merge', array_values($source))
// or
$b = call_user_func('array_merge', ...array_values($source))

// Slow way to merge it all
$b = array();
foreach($source as $key => $values) {
    $b = array_merge($b, $values);
}

?>

Note that array_merge_recursive() and file_put_contents() are affected and reported the same way.

";
clearphp = "no-array_merge-in-loop";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Store all intermediate arrays in a temporary variable, and use array_merge() once, with ellipsis or call_user_func_array().";

[example1]
project=Tine20
file=tine20/Tinebase/User/Ldap.php
line=670
code="        $attributes = array_values($this->_rowNameMapping);
        foreach ($this->_ldapPlugins as $plugin) {
            $attributes = array_merge($attributes, $plugin->getSupportedAttributes());
        }

        $attributes = array_merge($attributes, $this->_additionalLdapAttributesToFetch);
";
explain="Classic example of array_merge() in loop : here, the attributures should be collected in a local variable, and then merged in one operation, at the end. That includes the attributes provided before the loop, and the array provided after the loop. 
Note that the order of merge will be the same when merging than when collecting the arrays."
name = "Avoid Concat In Loop";
description = "Concatenations inside a loop generate a lot of temporary variables. They are accumulated and tend to raise the memory usage, leading to slower performances.

It is recommended to store the values in an array, and then use implode() on that array to make the concatenation at once. The effect is positive when the source array has at least 50 elements. 

<?php

// Concatenation in one operation
$tmp = array();
foreach(data_source() as $data) {
    $tmp[] = $data;
}
$final = implode('', $tmp);

// Concatenation in many operations
foreach(data_source() as $data) {
    $final .= $data;
}

?>

The same doesn't apply to addition and multiplication, with array_sum() and array_multiply(), as those operations work on the current memory allocation, and don't need to allocate new memory at each step. 

See also `PHP 7 performance improvements (3/5): Encapsed strings optimization <https://blog.blackfire.io/php-7-performance-improvements-encapsed-strings-optimization.html>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.12.4";
modifications[] = "Collect all pieces in an array, then implode() the array in one call."
[example1]
project="SuiteCrm"
file="include/export_utils.php"
line="433"
code="        foreach($records as $record)
        {
            $line = implode(\"\\"\" . getDelimiter() . \"\\"\", $record);
            $line = \"\\"\" . $line;
            $line .= \"\\"\r\n\";
            $line = parseRelateFields($line, $record, $customRelateFields);
            $content .= $line;
        }
";
explain="$line is build in several steps, then then final version is added to $content. It would be much faster to make $content an array, and implode it once after the loop. "

[example2]
project="ThinkPHP"
file="ThinkPHP/Common/functions.php"
line="720"
code="    if (!C('APP_USE_NAMESPACE')) {
        $class = parse_name($name, 1);
        import($module . '/' . $layer . '/' . $class . $layer);
    } else {
        $class = $module . '\\' . $layer;
        foreach ($array as $name) {
            $class .= '\\' . parse_name($name, 1);
        }
        // 导入资源类库
        if ($extend) {
            // 扩展资源
            $class = $extend . '\\' . $class;
        }
    }
    return $class . $layer;

";
explain="The foreach loop appends the $name and builds a fully qualified name. "
name = "Isset() On The Whole Array";
description = "Isset() works quietly on a whole array. There is no need to test all previous index before testing for the target index.

<?php

// Straight to the point
if (isset($a[1]['source'])) {
    // Do something with $a[1]['source']
}

// Doing too much work
if (isset($a) && isset($a[1]) && isset($a[1]['source'])) {
    // Do something with $a[1]['source']
}

?>

There is a gain in readability, by avoiding long and hard to read logical expression, and reducing them in one simple isset call.

There is a gain in performances by using one call to isset, instead of several, but it is a micro-optimization. 

See also `Isset <http://www.php.net/isset>`_.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "1.5.6";

modifications[] = "Remove all unnecessary calls to isset()"

[example1]
project="Tine20"
file="tine20/Crm/Model/Lead.php"
line="208"
code="isset($relation['related_record']) && isset($relation['related_record']['n_fileas'])";
explain="Only the second call is necessary : it also includes the first one."

[example2]
project="ExpressionEngine"
file="system/ee/legacy/libraries/Form_validation.php"
line="1487"
code="!isset($this->_field_data[$field]) OR !isset($this->_field_data[$field]['postdata'])";
explain="This is equivalent to `isset($this->_field_data[$field], $this->_field_data[$field]['postdata'])`, and the second call may be skipped."
name = "Autoappend";
description = "Appending a variable to itself leads to enormous usage of memory.

<?php

// Always append a value to a distinct variable
foreach($a as $b) {
    $c[] = $b;
}

// This copies the array to itself, and double the size each loop
foreach($a as $b) {
    $c[] = $c;
}
?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.8.3";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Change the variable in the append, on the left"
modifications[] = "Change the variable in the append, on the right"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Make One Call With Array";
description = "Avoid calling the same function several times by batching the calls with arrays.

Calling the same function to chain modifications tends to be slower than calling the same function with all the transformations at the same time. Some PHP functions accept scalars or arrays, and using the later is more efficient.

<?php

$string = 'abcdef'; 

//str_replace() accepts arrays as arguments
$string = str_replace( ['a', 'b', 'c'],
                       ['A', 'B', 'C'],
                       $string);

// Too many calls to str_replace
$string = str_replace( 'a', 'A', $string);
$string = str_replace( 'b', 'B', $string);
$string = str_replace( 'c', 'C', $string);

// Too many nested calls to str_replace
$string = str_replace( 'a', 'A', str_replace( 'b', 'B', str_replace( 'c', 'C', $string)));

?>

Potential replacements : 

+--------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
| Function                                                                 | Replacement                                                                         |
+--------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
| str_replace()                       | str_replace()                                  |
| str_ireplace()                     | str_replace()                                  |
| substr_replace()                 | substr_replace()                            |
| preg_replace()                     | preg_replace()                                |
| preg_replace_callback()   | preg_replace_callback_array()  |
+--------------------------------------------------------------------------+-------------------------------------------------------------------------------------+

<?php
$subject = 'Aaaaaa Bbb';


//preg_replace_callback_array() is better than multiple preg_replace_callback : 
preg_replace_callback_array(
    [
        '~[a]+~i' => function ($match) {
            echo strlen($match[0]), ' matches for a found', PHP_EOL;
        },
        '~[b]+~i' => function ($match) {
            echo strlen($match[0]), ' matches for b found', PHP_EOL;
        }
    ],
    $subject
);

$result = preg_replace_callback('~[a]+~i', function ($match) {
            echo strlen($match[0]), ' matches for a found', PHP_EOL;
        }, $subject);

$result = preg_replace_callback('~[b]+~i', function ($match) {
            echo strlen($match[0]), ' matches for b found', PHP_EOL;
        }, $subject);

//str_replace() accepts arrays as arguments
$string = str_replace( ['a', 'b', 'c'],
                       ['A', 'B', 'C'],
                       $string);

// Too many calls to str_replace
$string = str_replace( 'a', 'A');
$string = str_replace( 'b', 'B');
$string = str_replace( 'c', 'C');

?>

 ";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
modifications[] = "use str_replace() with arrays as arguments."
modifications[] = "use preg_replace() with arrays as arguments."
modifications[] = "use preg_replace_callback() for merging multiple complex calls."
[example1]
project="HuMo-Gen"
file="admin/include/kcfinder/lib/helper_text.php"
line="47"
code="    static function jsValue($string) {
        return
            preg_replace('/\r?\n/', \"\\n\",
            str_replace('\"', \"\\\\"\",
            str_replace(\"'\", \"\\'\",
            str_replace(\"\\\", \"\\\\\",
        $string))));
    }
";
explain="The three calls to str_replace() could be replaced by one, using array arguments. Nesting the calls doesn't reduce the number of calls."
[example2]
project="Edusoho"
file="src/AppBundle/Common/StringToolkit.php"
line="55"
code="        $text = strip_tags($text);

        $text = str_replace(array("\n", "\r", "\t"), '', $text);
        $text = str_replace('&nbsp;', ' ', $text);
        $text = trim($text);

";
explain="Since str_replace is already using an array, the second argument must also be an array, with repeated empty strings. That syntax allows adding the '&nbsp;' and ' ' to those arrays. Note also that trim() should be be called early, but since some of the replacing may generate terminal spaces, it should be kept as is."
name = "Avoid array_push()";
description = "array_push() is slower than the [] operator.

This is also true if the [] operator is called several times, while array_push() may be called only once. 
And using count after the push is also faster than collecting array_push() return value. 

<?php

$a = [1,2,3];
// Fast version
$a[] = 4;

$a[] = 5;
$a[] = 6;
$a[] = 7;
$count = count($a);

// Slow version
array_push($a, 4);
$count = array_push($a, 5,6,7);

// Multiple version : 
$a[] = 1;
$a[] = 2;
$a[] = 3;
array_push($a, 1, 2, 3);


?>

This is a micro-optimisation. 

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.9.1";

modifications[] = "Use the [] operator"name = "Laravel usage";
description = "This analysis reports usage of the Laravel framework.

<?php

namespace App\Http\Controllers;

use App\User;
use App\Http\Controllers\Controller;

class UserController extends Controller
{
    /**
     * Show the profile for the given user.
     *
     * @param  int  $id
     * @return Response
     */
    public function show($id)
    {
        return view('user.profile', ['user' => User::findOrFail($id)]);
    }
}

?>

See also `Laravel <http://www.lavarel.com/>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.11.8";name = "Codeigniter usage";
description = "This analysis reports usage of the Codeigniter framework.

<?php

// A code igniter controller
class Blog extends CI_Controller {

        public function index()
        {
                echo 'Hello World!';
        }
}

?>

See also `Codeigniter <https://codeigniter.com/>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.11.8";name = "Typo 3 usage";
description = "This analysis reports usage of the Typo 3 CMS.

<?php

namespace MyVendor\SjrOffers\Controller;

use TYPO3\CMS\Extbase\Mvc\Controller\ActionController;

class OfferController extends ActionController
{
   // Action methods will be following here
}
?>

See also `Typo3 <https://typo3.org/>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.9.9";name = "Wordpress usage";
description = "This analysis reports usage of the Wordress platform.

<?php

//Usage of the WP_http class from Wordpress
$rags = array(
   'x' => '1',
   'y' => '2'
);
$url = 'http://www.example.com/';
$request = new WP_Http();
$result = $request->request( $url, array( 'method' => 'POST', 'body' => $body) );

?>

See also `Wordpress <https://www.wordpress.org/>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.11.8";name = "Yii usage";
description = "This analysis reports usage of the Yii framework.

<?php

// A Yii controller
class SiteController extends CController
{
    public function actionIndex()
    {
        // ...
    }
 
    public function actionContact()
    {
        // ...
    }
}

?>

See also `Yii <http://www.yiiframework.com/>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.11.8";name = "Drupal Usage";
description = "This analysis reports usage of the Drupal CMS. The report is based on the usage of Drupal namespace.

<?php

namespace Drupal\example\Controller;

use Drupal\Core\Controller\ControllerBase;

/**
 * An example controller.
 */
class ExampleController extends ControllerBase {

  /**
   * {@inheritdoc}
   */
  public function content() {
    $build = array(
      '#type' => 'markup',
      '#markup' => t('Hello World!'),
    );
    return $build;
  }

}

?>

See also `Drupal <http://www.drupal.org/>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.0.3";name = "Phalcon Usage";
description = "This analysis reports usage of the Phalcon Framework. The report is based on the usage of Phalcon namespace, which may be provided by PHP code inclusion or the PHP extension.

<?php

use Phalcon\Mvc\Application;

// Register autoloaders

// Register services

// Handle the request
$application = new Application($di);

try {
    $response = $application->handle();

    $response->send();
} catch (\Exception $e) {
    echo 'Exception: ', $e->getMessage();
}

?>

See also `Phalcon <https://phalconphp.com/>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.0.3";name = "Joomla usage";
description = "This analysis reports usage of the Joomla CMS.

<?php

// no direct access
defined('_JEXEC') or die('Restricted access');

jimport('joomla.application.component.controller');
JLoader::import('KBIntegrator', JPATH_PLUGINS . DS . 'kbi');

class MyController extends JController {
	function display($message) {
        echo $message;
    }
}

?>

See also `Joomla <http://www.joomla.org/>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.11.8";name = "FuelPHP Usage";
description = "This analysis reports usage of the Fuel PHP Framework. The report is based on the usage of Fuel namespace.

<?php
// file located in APPPATH/classes/presenter.php
class Presenter extends \Fuel\Core\Presenter
{
    // namespace prefix
    protected static $ns_prefix = 'Presenter\\';
}
?>

See also `FuelPHP <https://fuelphp.com>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.0.3";name = "Ez cms usage";
description = "This analysis reports usage of the Ez cms.

<?php
namespace My\Bundle\With\Controller;

use eZ\Bundle\EzPublishCoreBundle\Controller;
use Symfony\Component\HttpFoundation\Request;

class DemoController extends Controller {
    public function demoCreateContentAction(Request $request) {
        //
    }
}

?>

See also `Ez <https://ez.no/>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.11.8";name = "Concrete usage";
description = "This analysis reports usage of the Concrete 5 framework.

<?php
namespace Application\Controller\PageType;

use Concrete\Core\Page\Controller\PageTypeController;

class BlogEntry extends PageTypeController
{

    public function view()
    {
    }
}
?>

See also `Concrete 5 <https://www.concrete5.org/>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.9.9";name = "Symfony usage";
description = "This analysis reports usage of the Symfony framework.

<?php

// src/AppBundle/Controller/LuckyController.php
namespace AppBundle\Controller;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Component\HttpFoundation\Response;

class LuckyController
{
    /**
     * @Route("/lucky/number")
     */
    public function numberAction()
    {
        $number = mt_rand(0, 100);

        return new Response(
            '<html><body>Lucky number: '.$number.'</body></html>'
        );
    }
}

?>

See also `Symfony <http://www.symfony.com/>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.11.8";name = "Dump/DereferencingLevels";
description = "";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.6";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Collect Property Counts";
description = "This analysis collects the number of properties per class or trait. 

The count applies to classes, anonymous classes and traits. They are considered distinct one from another. 

Properties may be ``static`` or not. Visibility, default values and typehints are omitted.

<?php

class foo {
    // 3 properties
    private $p1, $p2, $p3;
}

trait foo {
    // 3 properties
    protected $p1;
    public $p2 = 1, $p3;
}

?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.1.2";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Links Between Parameter And Argument";
description = "Collect various stats about arguments and parameter usage. 

A parameter is one slot in the method definition. An argument is a slot in the method call. Both are linked by the method and their respective position in the argument list.

+ Total number of argument usage, linked to a parameter : this excludes arguments from external libraries and native PHP functions. For reference.
+ Number of identical parameter : cases where argument and parameter have the same name. 
+ Number of different parameter : cases where argument and parameter have the different name. 
+ Number of expression argument : cases where argument is an expression
+ Number of constant argument : cases where the argument is a constant

<?php

function foo($a, $b) {
    // some code
}

// $a is the same as the parameter
// $c is different from the paramter $b
foo($a, $c);

const C = 1;

// Foo is called with a constant (1rst argument)
// Foo is called with a expression (2nd argument)
foo(C, 1+3);

?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.0.6";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

; This is a safe guard, to find quickly missed docs
inited="Not yet";
name = "Typehinting Stats";
description = "This module collects statistics about typehinting usage.";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.9";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Collect Parameter Counts";
description = "This analysis collects the number of parameter per method. 

The count applies to functions, methods, closures and arrow functions.

<?php

// parameter count on function : 1
function foo($a) { }

// parameter count on closure : 2
function ($b, $c = 2) {}

// parameter count on method : 0 (none)
class x {
    function moo() { }
}
?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.6";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Cyclomatic Complexity";
description = "Calculate cyclomatic complexity for each methods, function, and closures.";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.4";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Environnement Variable Usage";
description = "Collects all environnement variable in the application, for inventory purposes.";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.5";

; Alternative to make this code go away. 
; One by possible solution
;modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Collect Class Depth";
description = "Count the number of level of extends for classes.

<?php

class a {}

class b extends a {}

class c extends b {}

class d extends a {}
?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.0.3";

; Alternative to make this code go away. 
; One by possible solution
;modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Collect Class Interface Counts";
description = "Collect the number of interfaces implemented per class.

<?php

// This class implements 3 interfaces
class x implements i, j, k {
    // Some code
}

?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.0.3";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Foreach() Favorite";
description = "Collect the name used in foreach() loops. Then, sorts them in order of popularity.";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.7";

; Alternative to make this code go away. 
; One by possible solution
;modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Collect Class Constant Counts";
description = "This analysis collects the number of class constants per class or interface. 

The count applies to classes, anonymous classes and interfaces. They are considered distinct one from another. 

<?php

class foo {
    // 3 constant
    const A =1, B =2;
}

interface bar {
    // 3 properties
    const A=1, B=2, C=3;
}

?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.1.2";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Collect Mbstring Encodings";
description = "This analysis collects the encoding names, used by ext/mb functions. 

<?php

mb_stotolower('PHP', 'iso-8859-1');

mb_stotolower('PHP', 'iso-8859-1');

?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.9";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Collect Literals";
description = "Collects all literals in the application, for inventory purposes.";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.5";

; Alternative to make this code go away. 
; One by possible solution
;modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Dump/Inclusions";
description = "";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.0.2";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

; This is a safe guard, to find quickly missed docs
inited="Not yet";
name = "Typehint Order";
description = "Topological order, based on typehints. 

Each function, method that use typehint is a link between a type of data and another one. The argument typehint acts as a filter, and the returned type hint is the next step.

<?php

// This library imposes the following order : A -> B -> C 
function foo(A $a) : B { }
function bar(B $b) : C { }

?>
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.0.2";

; Alternative to make this code go away. 
; One by possible solution
;modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Dump/NewOrder";
description = "";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.0.2";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

; This is a safe guard, to find quickly missed docs
inited="Not yet";
name = "Constant Order";
description = "Order of dependency of constants. 

Constants, either global or class, may be built using static expression. In turn, this means that constants have now a build order. For example : 

<?php

// A is an independant global constant
const A = 1;
// B is an dependant global constant : it is built with A
const B = A + 1;

class x {
    // x::C is an dependant class constant : it is built with A 
    const C = A + 3;
}

?>

The code above leads to the following order : ``A`` - ``B``, ``C``. ``A`` can be built without constraints, while ``B`` and ``C`` must be build when ``A`` is available. Note that ``B`` and ``C`` are both dependant on ``A``, but are not dependant on each other.

The resulting tree displays the different relationship between the constants. 

Note : ``define``constants are not considered here. Only ``const`` constants, global or class. 

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.0.7";

; Alternative to make this code go away. 
; One by possible solution
;modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

; Optional parameters
;[parameter1]
;name="parametersCount";
;default="8";
;type="integer";
;description="Minimal number of parameters to report.";
name = "Collect Local Variable Counts";
description = "This analysis collects the number of local variables used in a method or a function. 

The count applies to functions, methods, closures and arrow functions. 

Arguments and global variables are not counted. Static variables are. 

<?php

function foo($arg) {
    global $w;
    
    // This is a local variable
    $x = rand(1, 2);
    
    return $x + $arg + $w;
}

?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.1.2";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Indentation Levels";
description = "Collect all level of nesting for methods and functions.";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.3";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Environment Variables";
description = "Collect all used Environment variables";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.3";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Collect Method Counts";
description = "This analysis collects the number of methods per class, trait or interface. 

The count applies to classes, anonymous classes, traits and interfaces. They are considered distinct one from another. 

<?php

class foo {
    // 2 methods
    function __construct() {}
    function foo() {}
}

interface bar {
    // 1 method
    function a() ;
}

class barbar {
    // 3 methods
    function __construct() {}
    function foo() {}
    function a() {}
}

?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.1.2";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Collect Class Children Count";
description = "Count the number of class children for each class.

<?php

// 2 children
class a {}

// 1 children
class b extends a {}

// no children
class c extends b {}

// no children
class d extends a {}
?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.0.3";

; Alternative to make this code go away. 
; One by possible solution
;modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
   Bud1  0      0                                                           pvSrnlong                                               P h pvSrnlong   st00	
			]ShowStat                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          @                                              @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  R e p o r t sbwspblob   bplist00	
			]ShowStatusBar_SidebarWidthTenElevenOrLater[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar[ShowPathbar	#@k`     		_{{-771, 591}, {770, 436}}	'FR^u                                R e p o r t slsvCblob  bplist00	
KLMNPXiconSize_showIconPreview_calculateAllSizesWcolumns_scrollPositionYXtextSize_scrollPositionXZsortColumn_useRelativeDates_viewOptionsVersion#@0      	 %).38=BGZidentifierYascendingUwidthWvisibleTname		UwidthYascendingWvisibleXubiquity#!#\dateModified	&#[dateCreated*,Tsizea	/1Tkind	s	46Ulabel	d9;Wversion	K>@Xcomments	,CE^dateLastOpenedH#YdateAdded#@{     #@(      #        Tname	    & 8 L T f o                 	!*,-.7DEGHQ]^_hmnpqz             Q                  R e p o r t slsvpblob  bplist00	
HIJKCXiconSize_showIconPreview_calculateAllSizesWcolumns_scrollPositionYXtextSize_scrollPositionXZsortColumn_useRelativeDates_viewOptionsVersion#@0      	!&+05:?DXcomments^dateLastOpened[dateCreatedTsizeUlabelTkindWversionTname\dateModified WvisibleYascendingUwidthUindex	,$%)*./	a34	d89		s=>	KBC		 )G	#@{     #@(      #        Tname	   & 8 L T f o             )1;AGHILNWXY[]fghjluvwy{             M                  R e p o r t svSrnlong       R u l e s e t sbwspblob   bplist00	
			]ShowStatusBar_SidebarWidthTenElevenOrLater[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar[ShowPathbar	#@k`     		_{{-1345, 110}, {1054, 761}}	'FR^u                                R u l e s e t slsvCblob  bplist00		HIJK_useRelativeDates_showIconPreview_calculateAllSizesWcolumnsXtextSizeZsortColumnXiconSize_viewOptionsVersion		#',16;@D		ZidentifierUwidthYascendingWvisibleTname		WvisibleUwidthYascending#Xubiquity 	\dateModified	$ [dateCreated()	Tsizea	-.		Tkinds		23	Ulabeld	78	WversionK	<=	Xcomments,	A ^dateLastOpened GYdateAdded#@(      Tname#@0          , > R Z c n w                      "./09>@ABKPRST]cefgpxz{|             L                  R u l e s e t slsvpblob  Zbplist00		EFG@_useRelativeDates_showIconPreview_calculateAllSizesWcolumnsXtextSizeZsortColumnXiconSize_viewOptionsVersion		$(-27<AXcomments^dateLastOpened[dateCreatedTsizeUlabelTkindWversionTname\dateModified	WvisibleUwidthYascendingUindex,	!#!'	*,	a/	1d		4	6	s	9	;K		>	@		 	!D	#@(      Tname#@0         , > R Z c n w               '(*+-678:CDFGIRSUVXabdegpqstv             H                  R u l e s e t svSrnlong       T y p edsclbool    	 T y p e h i n t sbwspblob   bplist00		]ShowStatusBar[ShowPathbar[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar			_{{-1677, 178}, {770, 436}}	%1=I`myz{|}~                               	 T y p e h i n t svSrnlong                                                                                                                                                                                                                                                                                                                                                                                                                        D S Lbwspblob   bplist00	
			]ShowStatusBar_SidebarWidthTenElevenOrLater[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar[ShowPathbar	#@c     		_{{-854, 161}, {770, 436}}	'FR^u                                D S LlsvCblob  bplist00	
HIJKM_viewOptionsVersion_showIconPreview_calculateAllSizesWcolumns_scrollPositionYXtextSize_scrollPositionXZsortColumn_useRelativeDatesXiconSize 	"&+05:?DWvisibleUwidthYascendingZidentifier		TnameXubiquity#!	\dateModified%[dateCreated(*	aTsize-/	s	Tkind24d	Ulabel79K	Wversion<>,	XcommentsAC^dateLastOpenedEYdateAdded#@     #@(      #        Tsize	#@0         2 D X ` r {                 )234@IJLMR[\^_dmnpqw             N                  D S Llsvpblob  bplist00	
GHIJL_viewOptionsVersion_showIconPreview_calculateAllSizesWcolumns_scrollPositionYXtextSize_scrollPositionXZsortColumn_useRelativeDatesXiconSize 	!&+/49>CXcomments^dateLastOpened\dateModified[dateCreatedTsizeUlabelTkindWversionTnameUindexUwidthYascendingWvisible,	"#'(	,(01a	56d	:;s		?@K	D		#@     #@(      #        Tsize	#@0         2 D X ` r {            "(.8@BEFGPRTUV_acdenpqr{}             M                  D S LvSrnlong       D u m pbwspblob   bplist00	
			]ShowStatusBar_SidebarWidthTenElevenOrLater[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar[ShowPathbar	#@k`     		_{{-1345, 435}, {770, 436}}	'FR^u                                D u m pvSrnlong       P h plsvCblob  bplist00	
JKLMNO_useRelativeDates_showIconPreview_calculateAllSizesWcolumns_scrollPositionYXtextSize_scrollPositionXZsortColumnXiconSize_viewOptionsVersion		 %).38=AFWvisibleUwidthYascendingZidentifier	,	TnameUwidthYascendingWvisibleXubiquity#"$	\dateModified"([dateCreated+-	aTsize02	s	Tkind57d	Ulabel:<K	Wversion@	XcommentsCE^dateLastOpenedG"YdateAdded#@     #@(      #        Tname#@0          0 B V ^ p y                 #%&'0134AJKLXabdejstvw|	             P                  P h plsvpblob  bplist00	
GHIJK@_useRelativeDates_showIconPreview_calculateAllSizesWcolumns_scrollPositionYXtextSize_scrollPositionXZsortColumnXiconSize_viewOptionsVersion		!&+05:?CXcomments^dateLastOpened[dateCreatedTsizeUlabelTkindWversionTname\dateModifiedUindexUwidthYascendingWvisible,	"#'(,-a	12d	67s		;<K	@ 		D(	#@     #@(      #        Tname#@0         0 B V ^ p y              !'-7?ADEFOQSTU^`bcdmoqrs|~             L               e h i n t sbwspblob   bplist00		]ShowStatusBar[ShowPathbar[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar			_{{-1677, 178}, {770, 436}}	%1=I`myz{|}~                               	 T y p e h i n t svSrnlong                                                                                                                                                                                                                                                                                                                                                                                                                      0   E                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       DSDB                                 `                                    8              @                                                @                                                @       zeUlabelTkindWversionTnameUindexUwidthYascendingWvisible,	"#'(	,(01a	56d	:;s		?@K	D		#@     #@(      #        Tsize	#@0         2 D X ` r {            "(.8@BEFGPRTUV_acdenpqr{}             M                  D S LvSrnlong       D u m pbwspblob   bplist00	
			]ShowStatusBar_SidebarWidthTenElevenOrLater[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar[ShowPathbar	#@k`     		_{{-1345, 435}, {770, 436}}	'FR^u                                D u m pvSrnlong       P h plsvCblob  bplist00	
name = "Courier Anti-Pattern";
description = "The courier anti-pattern is the storage of a dependency by a class, in order to create an instance that requires this dependency.

The class itself doesn't actually need this dependency, but has a dependency to a class that requires it. 

<?php

// The foo class requires bar
class Foo {
    public function __construct(Bar $b) {
    }
}

// Class A doesn't depends on Bar, but depends on Foo
// Class A never uses Bar, but only uses Foo.
class A {
    private $courier;

    public function __construct(Bar $courier) {
        $this->courier = $courier;       
    }

    public function Afoo() {
        $b = new Foo($this->courier);
    }

}

?>

The alternative here is to inject Foo instead of Bar. 

See also `Courier Anti-pattern <https://r.je/oop-courier-anti-pattern.html>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.11.6";name = "Dependency Injection";
description = "A dependency injection is a typehinted argument, that is stored in a property by the constructor. 

<?php

// Classic dependency injection 
class foo {
    private $bar;

    public function __construct(Bar $bar) {
        $this->bar = $bar;
    }

    public function doSomething($args) {
        return $this->bar->barbar($args);
    }
}

// Without typehint, this is not a dependency injection
class foo {
    private $bar;

    public function __construct($bar) {
        $this->bar = $bar;
    }
}

?>

See also `Understanding Dependency Injection <http://php-di.org/doc/understanding-di.html>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.11.6";name = "An OOP Factory";
description = "A method or function that implements a factory. A factory is a class that handles the creation of an object, based on parameters. The factory hides the logic that leads to the creation of the object. 

<?php
    class AutomobileFactory {
        public static function create($make, $model) {
            $className = "\\Automaker\\Brand\\$make";
            return new $className($model);
        }
    }
    
    // The factory is able to build any car, based on their 
    $fuego = AutomobileFactory::create('Renault', 'Fuego');
    
    print_r($fuego->getMakeAndModel()); // outputs "Renault Fuego"
?>

See also `Factory (object-oriented programming) <https://en.wikipedia.org/wiki/Factory_(object-oriented_programming)>`_ and 
         `Factory <https://phptherightway.com/pages/Design-Patterns.html#factory>`_.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.6.7";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Not Equal Is Not !==";
description = "Not and Equal operators, used separately, don't amount to the different operator ``!==``.

``!$a == $b`` first turns ``$a``into the opposite boolean, then compares this boolean value to ``$b``. On the other hand, ``$a !== $b`` compares the two variables for type and value, and returns a boolean. 

<?php

if ($string != 'abc') {
    // doSomething()
}

// Here, string will be an boolean, leading 
if (!$string == 'abc') {
    // doSomething()
}

// operator priority may be confusing
if (!$object instanceof OneClass) {
    // doSomething()
}
?>

Note that the ``instanceof`` operator may be use with this syntax, due to operator precedence.

See also `Operator Precedence <http://php.net/manual/en/language.operators.precedence.php>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.0.6";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Use the != or !=="
modifications[] = "Use parenthesis"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

; Optional parameters
;[parameter1]
;name="parametersCount";
;default="8";
;type="integer";
;description="Minimal number of parameters to report.";

name = "array_merge() And Variadic";
description = "Always check value in variadic before using it with array_merge() and array_merge_recursive().

Before PHP 7.4, array_merge() and array_merge_recursive() would complain when no argument was provided. As such, using the spread operator `...` on an empty array() would yield no argument, and an error.

<?php

// 
$b = array_merge(...$x);



?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.2";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Add a check to the spread variable to ensure it is not empty"
modifications[] = "Append an empty array to to the spread variable to ensure it is not empty"

; A PHP error that may be emitted by the target faulty code
phpError[] = " array_merge() expects at least 1 parameter, 0 given"
name = "Unused Global";
description = "A global keyword is used in a method, yet the variable is not actually used. This makes PHP import values for nothing, or may create interference

<?php
    function foo() {
        global bar;
        
        return 1;
    }
?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Remove the global declaration"
modifications[] = "Remove the global variable altogether"

[example1]
project="Dolphin"
file="Dolphin-v.7.3.5/modules/boonex/forum/classes/DbForum.php"
line="548"
code="

    function getUserPostsList ($user, $sort, $limit = 10)
    {
        global $gConf;

        switch ($sort) {
            case 'top':
                $order_by = \" t1.`votes` DESC \";
                break;
            case 'rnd':
                $order_by = \" RAND() \";
                break;
            default:
                $order_by = \" t1.`when` DESC \";
        }

        $sql =  \" 
        SELECT t1.`forum_id`, t1.`topic_id`, t2.`topic_uri`, t2.`topic_title`, t1.`post_id`, t1.`user`, `post_text`, t1.`when`
            FROM \" . TF_FORUM_POST . \" AS t1
        INNER JOIN \" . TF_FORUM_TOPIC . \" AS t2
            ON (t1.`topic_id` = t2.`topic_id`)
        WHERE  t1.`user` = '$user' AND `t2`.`topic_hidden` = '0'
        ORDER BY \" . $order_by . \" 
        LIMIT $limit\";

        $a = $this->getAll ($sql);
        $this->_cutPostText($a);
        return $a;
    }

";
explain="$gConf is not used in this method, and may be safely avoided."

name = "Don't Change Incomings";
description = "PHP hands over a lot of information using special variables like $_GET, $_POST, etc... Modifying those variables and those values inside variables means that the original content is lost, while it will still look like raw data, and, as such, will be untrustworthy.

<?php

// filtering and keeping the incoming value. 
$_DATA'id'] = (int) $_GET['id'];

// filtering and changing the incoming value. 
$_GET['id'] = strtolower($_GET['id']);

?>

It is recommended to put the modified values in another variable, and keep the original one intact.";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Timestamp Difference";
description = "``time()`` and ``microtime()`` shouldn't be used to calculate duration. 

``time()`` and ``microtime()`` are subject to variations, depending on system clock variations, such as daylight saving time difference (every spring and fall, one hour variation), or leap seconds, happening on ``June, 30th`` or ``December 31th``, as announced by `IERS <https://www.iers.org/IERS/EN/Home/home_node.html>`_.

<?php

// Calculating tomorow, same hour, the wrong way
// tomorrow is not always in 86400s, especially in countries with daylight saving 
$tomorrow = time()  + 86400; 

// Good way to calculate tomorrow
$datetime = new DateTime('tomorrow');

?>

When the difference may be rounded to a larger time unit (rounding the difference to days, or several hours), the variation may be ignored safely.

When the difference is very small, it requires a better way to measure time difference, such as `Ticks <http://php.net/manual/en/control-structures.declare.php#control-structures.declare.ticks>'_, 
`ext/hrtime <http://php.net/manual/en/book.hrtime.php>'_, or including a check on the actual time zone (``ini_get()`` with 'date.timezone'). 

See also `PHP DateTime difference – it’s a trap! <http://blog.codebusters.pl/en/php-datetime-difference-trap/>`_ and 
           `PHP Daylight savings bug? <https://stackoverflow.com/questions/22519091/php-daylight-savings-bug>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";

modifications[] = "For small time intervals, use hrtime() functions";
modifications[] = "For larger time intervals, use add() method with ``DateTime``";


[example1]
project=Zurmo
file=app/protected/modules/import/jobs/ImportCleanupJob.php
line=73
code="        /**
         * Get all imports where the modifiedDateTime was more than 1 week ago.  Then
         * delete the imports.
         * (non-PHPdoc)
         * @see BaseJob::run()
         */
        public function run()
        {
            $oneWeekAgoTimeStamp = DateTimeUtil::convertTimestampToDbFormatDateTime(time() - 60 * 60 *24 * 7);
";
explain="This is wrong twice a year, in countries that has day-ligth saving time. One of the weeks will be too short, and the other will be too long. "
[example2]
project=shopware
file=engine/Shopware/Controllers/Backend/Newsletter.php
line=150
code="            // Check lock time. Add a buffer of 30 seconds to the lock time (default request time)
            if (!empty($mailing['locked']) && strtotime($mailing['locked']) > time() - 30) {
                echo \"Current mail: '\" . $subjectCurrentMailing . \"'\n\";
                echo \"Wait \" . (strtotime($mailing['locked']) + 30 - time()) . \" seconds ...\n\";
                return;
            }
";
explain="When daylight saving strike, the email may suddenly be locked for 1 hour minus 30 seconds ago. The lock will be set for the rest of the hour, until the server catch up. "
name = "Repeated Regex";
description = "Repeated regex should be centralized. 

When a regex is repeatedly used in the code, it is getting harder to update. 

<?php

// Regex used several times, at least twice.
preg_match('/^abc_|^square$/i', $_GET['x']);

//.......

preg_match('/^abc_|^square$/i', $row['name']);

// This regex is dynamically built, so it is not reported.
preg_match('/^circle|^'.$x.'$/i', $string);

// This regex is used once, so it is not reported.
preg_match('/^circle|^square$/i', $string);

?>

Regex that are repeated at least once (aka, used twice or more) are reported. Regex that are dynamically build are not reported.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.10.9";

modifications[] = "Create a central library of regex";
modifications[] = "Use the regex inventory to spot other regex that are close, and should be identical.";

[example1]
project="Vanilla"
file="library/core/class.pluginmanager.php"
line="1200"
code="'`^https?://`'";
explain="This regex is actually repeated 4 times across the Vanilla database, including this variation : '#^(https?:)?//#i'."


[example2]
project="Tikiwiki"
file="tiki-login.php"
line="369"
code="preg_match('/(tiki-register|tiki-login_validate|tiki-login_scr)\.php/', $url)";
explain="This regex is use twice, identically, in the same file, with a few line of distance. It may be federated at the file level."


name = "Strpos()-like Comparison";
description = "The result of that function may be mistaken with an error.

strpos(), along with several PHP native functions, returns a string position, starting at 0, or false, in case of failure. 

<?php

// This is the best comparison
if (strpos($string, 'a') === false) { }

// This is OK, as 2 won't be mistaken with false
if (strpos($string, 'a') == 2) { }

// strpos is one of the 26 functions that may behave this way
if (preg_match($regex, $string)) { } 

// This works like above, catching the value for later reuse
if ($a = strpos($string, 'a')) { }

// This misses the case where 'a' is the first char of the string
if (strpos($string, 'a')) { }

// This misses the case where 'a' is the first char of the string, just like above
if (strpos($string, 'a') == 0) { }

?>

It is recommended to check the result of strpos() with === or !==, so as to avoid confusing 0 and false. 

This analyzer list all the strpos()-like functions that are directly compared with == or !=. preg_match(), when its first argument is a literal, is omitted : this function only returns NULL in case of regex error. 

The full list is the following : 


* array_search()
* collator_compare()
* collator_get_sort_key()
* current()
* fgetc()
* file_get_contents()
* file_put_contents()
* fread()
* iconv_strpos()
* iconv_strrpos()
* imagecolorallocate()
* imagecolorallocatealpha()
* mb_strlen()
* next()
* pcntl_getpriority()
* preg_match()
* prev()
* readdir()
* stripos()
* strpos()
* strripos()
* strrpos()
* strtok()
* curl_exec()

In PHP 8.0, str_contains() will do the expected job of strpos(), with less confusion. 

See also `strpos not working correctly <https://bugs.php.net/bug.php?id=52198>`_.

";
clearphp = "strict-comparisons";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Use identity comparisons, for 0 values : === instead of ==, etc."
modifications[] = "Compare with other exact values than 0 : strpos() == 2"
modifications[] = "Use str_contains()"

[example1]
project="Piwigo"
file="admin/include/functions.php"
line="2585"
code="function clear_derivative_cache_rec($path, $pattern)
{
  $rmdir = true;
  $rm_index = false;

  if ($contents = opendir($path))
  {
    while (($node = readdir($contents)) !== false)
    {
      if ($node == '.' or $node == '..')
        continue;
      if (is_dir($path.'/'.$node))
      {
        $rmdir &= clear_derivative_cache_rec($path.'/'.$node, $pattern);
      }
      else
      {
        if (preg_match($pattern, $node))
";
explain="preg_match may return 0 if not found, and null if the $pattern is erroneous. While hardcoded regex may be checked at compile time, dynamically built regex may fail at execution time. This is particularly important here, since the function may be called with incoming data for maintenance : 'clear_derivative_cache($_GET['type']);' is in the /admin/maintenance.php."
[example2]
project="Thelia"
file="core/lib/Thelia/Controller/Admin/FileController.php"
line="198"
code="
        if (!empty($extBlackList)) {
            $regex = \"#^(.+)\.(\".implode(\"|\", $extBlackList).\")$#i\";

            if (preg_match($regex, $realFileName)) {
                $message = $this->getTranslator()
                    ->trans(
                        'Files with the following extension are not allowed: %extension, please do an archive of the file if you want to upload it',
                        [
                            '%extension' => $fileBeingUploaded->getClientOriginalExtension(),
                        ]
                    );
            }
        }

";
explain="preg_match is used here to identify files with a forbidden extension. The actual list of extension is provided to the method via the parameter $extBlackList, which is an array. In case of mis-configuration by the user of this array, preg_match may fail : for example, when regex special characters are provided. At that point, the whole filter becomes invalid, and can't distinguish good files (returning false) and other files (returning NULL). It is safe to use === false in this situation."
name = "Wrong Range Check";
description = "The interval check should use && and not ||. 

<?php

//interval correctly checked a is between 2 and 999
if ($a > 1 && $a < 1000) {}

//interval incorrectly checked : a is 2 or more ($a < 1000 is never checked)
if ($a > 1 || $a < 1000) {}

?>
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "1.2.5";

modifications[] = "Make the interval easy to read and understand"
modifications[] = "Check the truth table for the logical operation"

[example1]
project="Dolibarr"
file="htdocs/includes/phpoffice/PhpSpreadsheet/Spreadsheet.php"
line="1484"
code="
    public function setTabRatio($tabRatio)
    {
        if ($tabRatio >= 0 || $tabRatio <= 1000) {
            $this->tabRatio = (int) $tabRatio;
        } else {
            throw new Exception('Tab ratio must be between 0 and 1000.');
        }
    }
";
explain="When $tabRatio is 1001, then the condition is valid, and the ratio accepted. The right part of the condition is not executed."

[example2]
project="WordPress"
file="wp-includes/formatting.php"
line="3634"
code="
	} elseif ( $diff < MONTH_IN_SECONDS && $diff >= WEEK_IN_SECONDS ) {
		$weeks = round( $diff / WEEK_IN_SECONDS );
		if ( $weeks <= 1 ) {
			$weeks = 1;
		}
		/* translators: Time difference between two dates, in weeks. %s: Number of weeks */
		$since = sprintf( _n( '%s week', '%s weeks', $weeks ), $weeks );
";
explain="This condition may be easier to read as `$diff >= WEEK_IN_SECONDS && $diff < MONTH_IN_SECONDS`. When testing for outside this interval, using not is also more readable : `!($diff >= WEEK_IN_SECONDS && $diff < MONTH_IN_SECONDS)`."

name = "Echo With Concat";
description = "Optimize your ``echo``'s by not concatenating at ``echo`` time, but serving all argument separated. This will save PHP a memory copy.

If values, literals and variables, are small enough, this won't have visible impact. Otherwise, this is less work and less memory waste.

<?php
  echo $a, ' b ', $c;
?>

instead of

<?php
  echo  $a . ' b ' . $c;
  echo $a b $c;
?>

";
clearphp = "no-unnecessary-string-concatenation";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Turn the concatenation into a list of argument, by replacing the dots by commas."

[example1]
project="Phpdocumentor"
file="src/phpDocumentor/Bootstrap.php"
line="76"
code="echo 'PROFILING ENABLED' . PHP_EOL";
explain="Simply replace the dot by a comma."

[example2]
project="TeamPass"
file="includes/libraries/Authentication/Yubico/PEAR.php"
line="162"
code="print \"PEAR constructor called, class=$classname\n\";";
explain="This is less obvious, but turning print to echo, and the double-quoted string to single quoted string will yield the same optimisation."
name = "Switch Without Default";
description = "Always use a default statement in switch().

Switch statements hold a number of 'case' that cover all known situations, and a 'default' one which is executed when all other options are exhausted. 

<?php

// Missing default
switch($format) {
    case 'gif' : 
        processGif();
        break 1;
    
    case 'jpeg' : 
        processJpeg();
        break 1;
        
    case 'bmp' :
        throw new UnsupportedFormat($format);
}
// In case $format is not known, then switch is ignored and no processing happens, leading to preparation errors


// switch with default
switch($format) {
    case 'text' : 
        processText();
        break 1;
    
    case 'jpeg' : 
        processJpeg();
        break 1;
        
    case 'rtf' :
        throw new UnsupportedFormat($format);
        
    default :
        throw new UnknownFileFormat($format);
}
// In case $format is not known, an exception is thrown for processing 

?>

Most of the time, switch() do need a default case, so as to catch the odd situation where the 'value is not what it was expected'. This is a good place to catch unexpected values, to set a default behavior. 
";
clearphp = "no-switch-without-default";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Add a default case"

[example1]
project="Zencart"
file="admin/tax_rates.php"
line="15"
code="  $action = (isset($_GET['action']) ? $_GET['action'] : '');

  if (zen_not_null($action)) {
    switch ($action) {
      case 'insert':
        // PHP code 
        break;
      case 'save':
        // PHP code 
        break;
      case 'deleteconfirm':
        // PHP code
        break;
    }
  }
?> .... HTML code";
explain="The 'action' is collected from $_GET and then, compared with various strings to handle the different actions to be taken. The default behavior is implicit here : if no 'action', display the initial form for taxes to be changed. This has to be understood as a general philosophy of ZenCart project, or by reading the rest of the HTML code. Adding a 'default' case here would help understand what happens in case 'action' is absent or unrecognized. "
[example2]
project="Traq"
file="src/Helpers/Ticketlist.php"
line="311"
code="    public static function dataFor($column, $ticket)
    {
        switch ($column) {
            // Ticket ID column
            case 'ticket_id':
                return $ticket['ticket_id'];
                break;

            // Status column
            case 'status':
            case 'type':
            case 'component':
            case 'priority':
            case 'severity':
                return $ticket["{$column}_name"];
                break;

            // Votes
            case 'votes':
                return $ticket['votes'];
                break;
        }

        // If we're still here, it may be a custom field
        if ($value = $ticket->customFieldValue($column)) {
            return $value->value;
        }

        // Nothing!
        return '';
    }";
explain="The default case is actually processed after the switch, by the next if/then structure. The structure deals with the customFields, while the else deals with any unknown situations. This if/then could be wrapped in the 'default' case of switch, for consistent processing. The if/then condition would be hard to use as a 'case' (possible, though). "
name = "array_merge With Ellipsis";
description = "Ellipsis, or ..., returns a null when the operand array is empty. This doesn't suit array_merge(). 

It is recommended to use a coalesce operator, to handle graciously an empty array : use an empty array as default value.

This applies to the following PHP functions : 

* array_merge()
* array_merge_recursive()
* array_diff()
* array_diff_assoc()
* array_diff_key()
* array_diff_uassoc()

<?php

// Correct usage of array_merge and ellipsis
$a = [ [1,2], [3,4]];
$b = array_merge(...$a);

// Notee the nested array
$a = [ ];
$b = array_merge(...$a ?: [[]] );

// Yield an error because $a is empty
$a = [ ];
$b = array_merge(...$a);

?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.7.6";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Use one of the coalesce operator to default to an empty array, avoiding a runtime warning."
modifications[] = "Check the content of the expanded array before using it"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Lone Blocks";
description = "Any grouped code without a commanding structure is useless. 

Blocks are compulsory when defining a structure, such as a class or a function. They are most often used with flow control instructions, like if then or switch. 

Blocks are also valid syntax that group several instructions together, though they have no effect at all, except confuse the reader. Most often, it is a ruin from a previous flow control instruction, whose condition was removed or commented. They should be removed. 

<?php

    // Lone block
    //foreach($a as $b) 
    {
        $b++;
    }
?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Remove the useless curly brackets"

[example1]
project="ThinkPHP"
file="ThinkPHP/Library/Vendor/Hprose/HproseReader.php"
line="163"
code="        for ($i = 0; $i < $len; ++$i) {
            switch (ord($this->stream->getc()) >> 4) {
                case 0:
                case 1:
                case 2:
                case 3:
                case 4:
                case 5:
                case 6:
                case 7: {
                    // 0xxx xxxx
                    $utf8len++;
                    break;
                }
                case 12:
                case 13: {
                    // 110x xxxx   10xx xxxx
                    $this->stream->skip(1);
                    $utf8len += 2;
                    break;
                }";
explain="There is no need for block in a case/default clause. PHP executes all command in order, until a break or the end of the switch. There is another occurrence of that situation in this code : it seems to be a coding convention, while only applied to a few switch statements."

[example2]
project="Tine20"
file="tine20/Addressbook/Convert/Contact/VCard/Abstract.php"
line="199"
code="                     switch ( $property['TYPE'] ) {
                        case 'JPG' : {}
                        case 'jpg' : {}
                        case 'Jpg' : {}
                        case 'Jpeg' : {}
                        case 'jpeg' : {}
                        case 'PNG' : {}
                        case 'png' : {}
                        case 'JPEG' : {
                            if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) 
                                Tinebase_Core::getLogger()->warn(__METHOD__ . '::' . __LINE__ . ' Photo: passing on invalid ' . $property['TYPE'] . ' image as is (' . strlen($property->getValue()) .')' );
                            $jpegphoto = $property->getValue();
                            break;
                        }
";
explain="A case of empty case, with empty blocks. This is useless code. Event the curly brackets with the final case are useless."
name = "Multiples Identical Case";
description = "Some cases are defined multiple times, but only one will be processed. Check the list of cases, and remove the extra one.

Exakat tries to find the value of the case as much as possible, and ignore any dynamic cases (using variables).

<?php

const A = 1;

case ($x) {
    case 1 : 
        break;
    case true:    // This is a duplicate of the previous
        break; 
    case 1 + 0:   // This is a duplicate of the previous
        break; 
    case 1.0 :    // This is a duplicate of the previous
        break; 
    case A :      // The A constant is actually 1
        break; 
    case $y  :    // This is not reported.
        break; 
    default:
        
}
?>
";
clearphp = "no-duplicate-case";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
modifications[] = "Remove the double case";
modifications[] = "Change the case to another and rightful value";
[example1]
project="SugarCrm"
file="modules/ModuleBuilder/MB/MBPackage.php"
line="439"
code="switch ($col) {
    case 'custom_module':
    	$installdefs['custom_fields'][$name]['module'] = $res;
    	break;
    case 'required':
    	$installdefs['custom_fields'][$name]['require_option'] = $res;
    	break;
    case 'vname':
    	$installdefs['custom_fields'][$name]['label'] = $res;
    	break;
    case 'required':
    	$installdefs['custom_fields'][$name]['require_option'] = $res;
    	break;
    case 'massupdate':
    	$installdefs['custom_fields'][$name]['mass_update'] = $res;
    	break;
    case 'comments':
    	$installdefs['custom_fields'][$name]['comments'] = $res;
    	break;
    case 'help':
    	$installdefs['custom_fields'][$name]['help'] = $res;
    	break;
    case 'len':
    	$installdefs['custom_fields'][$name]['max_size'] = $res;
    	break;
    default:
    	$installdefs['custom_fields'][$name][$col] = $res;
}//switch";
explain="It takes a while to find the double 'required' case, but the executed code is actually the same, so this is dead code at worst. "
[example2]
project="ExpressionEngine"
file="ExpressionEngine_Core2.9.2/system/expressionengine/controllers/cp/admin_content.php"
line="577"
code="    										switch ($key){
								case 'cat_group':
								    //PHP code
									break;
								case 'status_group':
								case 'field_group':
								    //PHP code
									break;
								case 'deft_status':
								case 'deft_status':
								    //PHP code
									break;
								case 'search_excerpt':
								    //PHP code
									break;
								case 'deft_category':
								    //PHP code
									break;
								case 'blog_url':
								case 'comment_url':
								case 'search_results_url':
								case 'rss_url':
								    //PHP code
									break;
								default :
								    //PHP code
									break;
							}";
explain="'deft_status' is doubled, with a fallthrough. This looks like some forgotten copy/paste. "
name = "Simplify Regex";
description = "Avoid using regex when the searched string or the replacement are simple enough.

PRCE regex are a powerful way to search inside strings, but they also come at the price of performance. When the query is simple enough, try using strpos() or stripos() instead.

<?php

// simple preg calls
if (preg_match('/a/', $string))  {}
if (preg_match('/b/i', $string)) {} // case insensitive

// light replacements
if( strpos('a', $string)) {}
if( stripos('b', $string)) {}       // case insensitive

?>
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Use str_replace(), strtr() or even strpos()"

[example1]
project="Zurmo"
file="app/protected/core/components/Browser.php"
line="73"
code="preg_match('/opera/', $userAgent)";
explain="Here, strpos() or stripos() is a valid replacement."

[example2]
project="OpenConf"
file="openconf/include.php"
line="964"
code="		$conv = iconv($cp, 'utf-8', strftime(preg_replace(\"/\%e/\", '%#d', $format), $time));";
explain="`\\%e` is not a special char for PCRE regex, although it look like it. It is a special char for date() or printf(). This preg_replace() may be upgraded to str_replace()"
name = "File Usage";
description = "The application makes usage of files on the system (read, write, delete, etc.).

Files usage is based on the usage of file functions.

<?php
    $fp = fopen('/tmp/file.txt', 'w+');
    // ....
?>

See also `filesystem <http://www.php.net/manual/en/book.filesystem.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "No Need For get_class()";
description = "There is no need to call get_class() to build a static call. The argument of get_class() may be used directly. 

<?php

// 
$a->b::$c

// This is too much code
get_class($a->b)::$c

?>

See also `Scope Resolution Operator (::) <http://php.net/manual/en/language.oop5.paamayim-nekudotayim.php>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.8.1";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Use get_called_class(), which may carry different class names"
modifications[] = "Use self, static or parent keywords, if you are already in the current class"
modifications[] = "Use the argument of get_class() directly"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Use Url Query Functions";
description = "PHP features several functions dedicated to processing URL's query string. 

+ parse_str()
+ parse_url()
+ http_build_query()

Those functions include extra checks : for example, http_build_query() adds urlencode() call on the values, and allow for choosing the separator and the Query string format.

<?php
$data = array(
    'foo' => 'bar',
    'baz' => 'boom',
    'cow' => 'milk',
    'php' => 'hypertext processor'
);

// safe and efficient way to build a query string
echo http_build_query($data, '', '&') . PHP_EOL;

// slow way to produce a query string
foreach($data as $name => &$value) {
    $value = $name.'='.$value;
}
echo implode('&', $data) . PHP_EOL;

?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.7";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "isset() With Constant";
description = "Until PHP 7, it was possible to use arrays as constants, but it was not possible to test them with isset.

<?php
const X = [1,2,3];

if (isset(X[4])) {}
?>

This would yield an error : ``Cannot use isset() on the result of an expression (you can use \"null !== expression\" instead)``. This is a backward incompatibility.

";
clearphp = "";
phpversion = "7.0+";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
phpError[] = "Cannot use isset() on the result of an expression (you can use \"null !== expression\" instead)"name = "Useless Casting";
description = "There is no need to overcast returned values.

<?php

// trim always returns a string : cast is useless
$a = (string) trim($b);

// strpos doesn't always returns an integer : cast is useful
$a = (boolean) strpos($b, $c);

// comparison don't need casting, nor parenthesis
$c = (bool) ($b > 2);

?>

See also `Type juggling <http://php.net/manual/en/language.types.type-juggling.php>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.7";

modifications[] = "Remove the type cast"

[example1]
project="FuelCMS"
file="fuel/codeigniter/core/URI.php"
line="214"
code="		if (isset($_SERVER['SCRIPT_NAME'][0]))
		{
			if (strpos($uri, $_SERVER['SCRIPT_NAME']) === 0)
			{
				$uri = (string) substr($uri, strlen($_SERVER['SCRIPT_NAME']));
			}
			elseif (strpos($uri, dirname($_SERVER['SCRIPT_NAME'])) === 0)
			{
				$uri = (string) substr($uri, strlen(dirname($_SERVER['SCRIPT_NAME'])));
			}
		}
";
explain="substr() always returns a string, so there is no need to enforce this."

[example2]
project="ThinkPHP"
file="ThinkPHP/Library/Think/Db/Driver/Sqlsrv.class.php"
line="67"
code="            foreach ($result as $key => $val) {
                $info[$val['column_name']] = array(
                    'name'    => $val['column_name'],
                    'type'    => $val['data_type'],
                    'notnull' => (bool) ('' === $val['is_nullable']), // not null is empty, null is yes
                    'default' => $val['column_default'],
                    'primary' => false,
                    'autoinc' => false,
                );
            }
";
explain="A comparison always returns a boolean, except for the spaceship operator."
name = "Unused Label";
description = "Some labels have been defined in the code, but they are not used. They may be removed as they are dead code.

<?php

$a = 0;
A: 

    ++$a;
    
    // A loop. A: is used
    if ($a < 10) { goto A; }

// B is never called explicitely. This is useless.
B: 

?>

There is no analysis for undefined goto call, as PHP checks that goto has a destination label at compile time : 

See also `Goto <http://php.net/manual/en/control-structures.goto.php>`_.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Remove the unused label"
modifications[] = "Add a goto call to this label"
modifications[] = "Check for spelling mistakes"

name = "Avoid Parenthesis";
description = "Avoid Parenthesis for language construct. Languages constructs are a few PHP native elements, that looks like functions but are not. 

Among other distinction, those elements cannot be directly used as variable function call, and they may be used with or without parenthesis.

<?php

// normal usage of include
include 'file.php';

// This looks like a function and is not
include('file2.php');

?>

The usage of parenthesis actually give some feeling of comfort, it won't prevent PHP from combining those argument with any later operators, leading to unexpected results.

Even if most of the time, usage of parenthesis is legit, it is recommended to avoid them. ";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Negative Power";
description = "The power operator ** has higher precedence than the sign operators + and -.

This means that -2 ** 2 == -4. It is in fact, -(2 ** 2). 

When using negative power, it is clearer to add parenthesis or to use the pow() function, which has no such ambiguity : 

<?php

// -2 to the power of 2 (a square)
pow(-2, 2) == 4;

// minus 2 to the power of 2 (a negative square)
-2 ** 2 == -(2 ** 2) == 4;

?>";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Avoid negative number, as operands of **"
modifications[] = "Use parenthesis with negative numbers and **"
name = "Use Constant";
description = "The following functioncall have a constant equivalent, that is faster to use than calling the functions. 

This applies to the following functions : 

* pi() : replace with `M_PI`
* phpversion() : replace with `PHP_VERSION`
* php_sapi_name() : replace with `PHP_SAPI_NAME`

<?php

// recommended way 
echo PHP_VERSION;

// slow version
echo php_version();

?>

See also `PHP why pi() and M_PI <https://stackoverflow.com/questions/42021176/php-why-pi-and-m-pi>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Use the constant version, not the function."name = "Break With Non Integer";
description = "When using a break, the argument of the operator must be a positive non-null integer literal or be omitted.

Other values were acceptable in PHP 5.3 and previous version, but this is now reported as an error.

<?php
    // Can't break $a, even if it contains an integer.
    $a = 1;
    for($i = 0; $i < 10; $i++) {
        break $a;
    }

    // can't break on float
    for($i = 0; $i < 10; $i++) {
        for($j = 0; $j < 10; $j++) {
            break 2.2;
        }
    }

?>

";
clearphp = "";
phpversion = "5.4-";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Compared Comparison";
description = "Usually, comparison are sufficient, and it is rare to have to compare the result of comparison. Check if this two-stage comparison is really needed.

<?php

if ($a === strpos($string, $needle) > 2) {}

// the expression above apply precedence : 
// it is equivalent to : 
if (($a === strpos($string, $needle)) > 2) {}

?>

See also `Operators Precedence <http://php.net/manual/en/language.operators.precedence.php>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Use Coalesce Equal";
description = "Usage of coalesce equal operator. It was introduced in PHP 7.4.

<?php

$a ??= 'value';

// The folloving lines are doing the same
$a = $a ?? 'value';

?>

See also `Null Coalescing Assignment Operator <https://wiki.php.net/rfc/null_coalesce_equal_operator>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.6.4";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Use the short assignation syntax"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Adding Zero";
description = "Adding 0 is useless, as 0 is the neutral element for addition. Besides, when one of the argument is an integer, PHP triggers a cast to integer. 

It is recommended to make the cast explicit with ``(int)``. 

<?php

// Explicit cast
$a = (int) foo();

// Useless addition
$a = foo() + 0;
$a = 0 + foo();

// Also works with minus
$b = 0 - $c; // drop the 0, but keep the minus
$b = $c - 0; // drop the 0 and the minus

$a += 0;
$a -= 0;

?>

Adding zero is also reported when the zero is a defined constants. 

If it is used to type cast a value to integer, then casting with ``(int)`` is clearer. 

";
clearphp = "no-useless-math";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Remove the +/- 0, may be the whole assignation"
modifications[] = "Use an explicit type casting operator (int)"

[example1]
project="Thelia";
file="core/lib/Thelia/Model/Map/ProfileResourceTableMap.php";
line="250";
code="        return serialize(array((string) $row[TableMap::TYPE_NUM == $indexType ? 0 + $offset : static::translateFieldName('ProfileId', TableMap::TYPE_PHPNAME, $indexType)], (string) $row[TableMap::TYPE_NUM == $indexType ? 1 + $offset : static::translateFieldName('ResourceId', TableMap::TYPE_PHPNAME, $indexType)]));";
explain="This return statement is doing quite a lot, including a buried '0 + $offset'. This call is probably an echo to '1 + $offset', which is a little later in the expression."
[example2]
project="OpenEMR"
file="interface/forms/fee_sheet/new.php:466";
line="534";
code="if (!$alertmsg && ($_POST['bn_save'] || $_POST['bn_save_close'] || $_POST['bn_save_stay'])) {
    $main_provid = 0 + $_POST['ProviderID'];
    $main_supid  = 0 + (int)$_POST['SupervisorID'];
    //.....
";
explain="$main_provid is filtered as an integer. $main_supid is then filtered twice : one with the sufficent (int) and then, added with 0."
name = "Implode() Arguments Order";
description = "implode() accepted two signatures, but is only recommending one. Both types orders of string then array, and array then string have been possible until PHP 7.4.

In PHP 7.4, the order array then string is deprecated, and emits a warning. It will be removed in PHP 8.0.

<?php

$glue = ',';
$pieces = range(0, 4);

// documented argument order
$s = implode($glue, $pieces);

// Pre 7.4 argument order
$s = implode($pieces, $glue);

// both produces 0,1,2,3,4

?>

See also implode().
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.2";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Always use the array as the second argument"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Nested Ternary";
description = "Ternary operators should not be nested too deep.

They are a convenient instruction to apply some condition, and avoid a if() structure. It works best when it is simple, like in a one liner. 

However, ternary operators tends to make the syntax very difficult to read when they are nested. It is then recommended to use an if() structure, and make the whole code readable.

<?php

// Simple ternary expression
echo ($a == 1 ? $b : $c) ;

// Nested ternary expressions
echo ($a === 1 ? $d === 2 ? $b : $d : $d === 3 ? $e : $c) ;
echo ($a === 1 ? $d === 2 ? $f ===4 ? $g : $h : $d : $d === 3 ? $e : $i === 5 ? $j : $k) ;

//Previous expressions, written as a if / Then expression
if ($a === 1) {
    if ($d === 2) {
        echo $b;
    } else {
        echo $d;
    }
} else {
    if ($d === 3) {
        echo $e;
    } else {
        echo $c;
    }
}

if ($a === 1) {
    if ($d === 2) {
        if ($f === 4) {
            echo $g;
        } else {
            echo $h;
        }
    } else {
        echo $d;
    }
} else {
    if ($d === 3) {
        echo $e;
    } else {
        if ($i === 5) {
            echo $j;
        } else {
            echo $k;
        }
    }
}

?>

See also `Nested Ternaries are Great <https://medium.com/javascript-scene/nested-ternaries-are-great-361bddd0f340>`_.

";
clearphp = "no-nested-ternary";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
modifications[] = "Replace ternaries by if/then structures."
modifications[] = "Replace ternaries by a functioncall : this provides more readability, offset the actual code, and gives room for making it different."
[example1]
project="SPIP"
file="ecrire/inc/utils.php"
line="2648"
code="	// le script de l'espace prive
	// Mettre a \"index.php\" si DirectoryIndex ne le fait pas ou pb connexes:
	// les anciens IIS n'acceptent pas les POST sur ecrire/ (#419)
	// meme pb sur thttpd cf. http://forum.spip.net/fr_184153.html
	if (!defined('_SPIP_ECRIRE_SCRIPT')) {
		define('_SPIP_ECRIRE_SCRIPT', (empty($_SERVER['SERVER_SOFTWARE']) ? '' :
			preg_match(',IIS|thttpd,', $_SERVER['SERVER_SOFTWARE']) ?
				'index.php' : ''));
	}
";
explain="Interesting usage of both if/then, for the flow control, and ternary, for data process. Even on multiple lines, nested ternaries are quite hard to read. "
[example2]
project="Zencart"
file="app/library/zencart/ListingQueryAndOutput/src/formatters/TabularProduct.php"
line="143"
code="        $lc_text .= '<br />' . (zen_get_show_product_switch($listing->fields['products_id'], 'ALWAYS_FREE_SHIPPING_IMAGE_SWITCH') ? (zen_get_product_is_always_free_shipping($listing->fields['products_id']) ? TEXT_PRODUCT_FREE_SHIPPING_ICON . '<br />' : '') : '');";
explain="No more than one level of nesting for this ternary call, yet it feels a lot more, thanks to the usage of arrayed properties, constants, and functioncalls. "
name = "Exit() Usage";
description = "Using exit or die() in the code makes the code untestable (it will break unit tests). Moreover, if there is no reason or string to display, it may take a long time to spot where the application is stuck. 

<?php

// Throw an exception, that may be caught somewhere
throw new \Exception('error');

// Dying with error message. 
die('error');

function foo() {
    //exiting the function but not dying
    if (somethingWrong()) {
        return true;
    }
}
?>

Try exiting the function/class with return, or throw exception that may be caught later in the code.
";
clearphp = "no-exit";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Avoid exit and die. Let the script finish.";
modifications[] = "Throw an exception and let it be handled before finishing";

[example1]
project="Traq"
file="src/Controllers/attachments.php"
line="75"
code="    /**
     * View attachment page
     *
     * @param integer $attachment_id
     */
    public function action_view($attachment_id)
    {
        // Don't try to load a view
        $this->render['view'] = false;

        header("Content-type: {$this->attachment->type}");
        $content_type = explode('/', $this->attachment->type);

        // Check what type of file we're dealing with.
        if($content_type[0] == 'text' or $content_type[0] == 'image') {
            // If the mime-type is text, we can just display it
            // as plain text. I hate having to download files.
            if ($content_type[0] == 'text') {
                header("Content-type: text/plain");
            }
            header(\"Content-Disposition: filename=\\"{$this->attachment->name}\\"\");
        }
        // Anything else should be downloaded
        else {
            header(\"Content-Disposition: attachment; filename=\\"{$this->attachment->name}\\"\");
        }

        // Decode the contents and display it
        print(base64_decode($this->attachment->contents));
        exit;
    }
";
explain="This acts as a view. The final 'exit' is meant to ensure that no other piece of data is emitted, potentially polluting the view. This also prevent any code cleaning to happen."

[example2]
project="ThinkPHP"
file="ThinkPHP/Library/Vendor/EaseTemplate/template.core.php"
line="60"
code="		$this->version		= (trim($_GET['EaseTemplateVer']))?die('Ease Templae E3!'):'';";
explain="Here, exit is used as a rudimentary error management. When the version is not correctly provided via EaseTemplateVer, the application stop totally."
name = "Global In Global";
description = "List of global variables. There are the global variables, defined with the global keyword, and the implicit global variables, defined in the global scope.

<?php
    global $explicitGlobal; // in global namespace
    
    $implicitGlobal = 1; // in global namespace, variables are automatically global
    
    function foo() {
        global $explicitGlobalInFoo; // in functions, globals must be declared with global
    }
?>

See also `Variable Scope <http://php.net/manual/en/language.variables.scope.php>`_.
 ";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Multiple Catch";
description = "Indicates if a try structure have several catch statement.

<?php

// This try has several catch
try {
    doSomething();
} catch (RuntimeException $e) {
    processRuntimeException();
} catch (OtherException $e) {
    processOtherException();
}

?>
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Multiple Unset()";
description = "Unset() accepts multiple arguments, unsetting them one after each other. It is more efficient to call unset() once, than multiple times.

<?php

// One call to unset only
unset($a, $b, $c, $d);

// Too many calls to unset
unset($a);
unset($b);
unset($c);
unset($d);

?>

See also `unset <http://php.net/unset>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.7.6";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Merge all unset into one call"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Cast To Boolean";
description = "This expression may be reduced by casting to boolean type. 

<?php

$variable = $condition == 'met' ? 1 : 0;
// Same as 
$variable = (bool) $condition == 'met';

$variable = $condition == 'met' ? 0 : 1;
// Same as (Note the condition inversion)
$variable = (bool) $condition != 'met';
// also, with an indentical condition
$variable = !(bool) $condition == 'met';

// This also works with straight booleans expressions
$variable = $condition == 'met' ? true : false;
// Same as 
$variable = $condition == 'met';

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
modifications[] = "Remove the old expression and use ``(bool)`` operator instead"
modifications[] = "Change the target values from true/false, or 0/1 to non-binary values, like strings or integers beyond 0 and 1."
modifications[] = "Complete the current branches with other commands"
[example1]
project=MediaWiki
file=includes/page/WikiPage.php
line=2274
code="
		$edits = $options['changed'] ? 1 : 0;
		$pages = $options['created'] ? 1 : 0;
		

		DeferredUpdates::addUpdate( SiteStatsUpdate::factory(
			[ 'edits' => $edits, 'articles' => $good, 'pages' => $pages ]
		) );
";
explain="$options['changed'] and $options['created'] are documented and used as boolean. Yet, SiteStatsUpdate may require integers, for correct storage in the database, hence the type casting. ``(int) (bool)`` may be an alternative here."
[example2]
project=Dolibarr
file=htdocs/societe/class/societe.class.php
line=2777
code="			case 3:
				$ret=(!$conf->global->SOCIETE_IDPROF3_UNIQUE?false:true);
				break;

";
explain="Several cases are built on the same pattern there. Each of the expression may be replaced by a cast to ``(bool)``."

name = "Else Usage";
description = "Else should be avoided by various means. For example, defaulting values before, or short-circuiting the method as soon as the condition is not met.

<?php

// $a is always set
$a = 'default';
if ($condition) {
    $a = foo($condition);
}

// Don't use else for default : set default before
if ($condition) {
    $a = foo($condition);
} else {
    $a = 'default';
}

// Use then to exit 
if ( ! $condition) {
    return;
}
$a = foo($condition);

// don't use else to return
if ($condition) {
    $a = foo($condition);
} else {
    return;
}

?>

See also `Avoid Else, Return Early <http://blog.timoxley.com/post/47041269194/avoid-else-return-early>`_ and 
         `Why does clean code forbid else expression <https://stackoverflow.com/questions/32677046/why-does-clean-code-forbid-else-expression>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Modernize Empty With Expression";
description = "empty() accepts expressions as argument. This feature was added in PHP 5.5. 

There is no need to store the expression in a variable before testing, unless it is reused later.

<?php

// PHP 5.5+ empty() usage
if (empty(foo($b . $c))) {
    doSomethingWithoutA();
}

// Compatible empty() usage
$a = foo($b . $c);
if (empty($a)) {
    doSomethingWithoutA();
}

// $a2 is reused, storage is legit
$a2 = strtolower($b . $c);
if (empty($a2)) {
    doSomething();
} else {
    echo $a2;
}

?>

See also `empty() <https://www.php.net/empty>`_ and 
         `empty() supports arbitrary expressions <https://www.php.net/manual/en/migration55.new-features.php#migration55.new-features.empty>`_.
";
clearphp = "";
phpversion = "5.5+";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.6";

modifications[] = "Avoid the temporary variable, and use directly empty()"name = "Switch Fallthrough";
description = "A switch with fallthrough is prone to errors. 

A fallthrough happens when a case or default clause in a switch statement is not finished by a break (or equivalent);
CWE report this as a security concern, unless well documented.

A fallthrough may be used as a feature. Then, it is indistinguishable from an error. 

When the case block is empty, this analysis doesn't report it : the case is then used as an alias.

<?php
switch($variable) {
    case 1 :   // case 1 is not reported, as it actually shares the same body as case 33
    case 33 :  
        break ;
    case 2 : 
        break ;
    default: 
        ++$a;
    case 4 : 
        break ;
}
?>

This analysis doesn't take into account comments about the fallthrough. 

See also `CWE-484: Omitted Break Statement in Switch <https://cwe.mitre.org/data/definitions/484.html>`_ and 
         `Rule: no-switch-case-fall-through <https://palantir.github.io/tslint/rules/no-switch-case-fall-through/>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.12.14";

modifications[] = "Make separate code for each case. Always use break at the end of a case or default."name = "Use Array Functions";
description = "There are a lot of native PHP functions for arrays. It is often faster to take advantage of them than write a loop.

* array_push() : use array_merge()
* array_slice() : use array_chunk()
* index access : use array_column()
* append `[]`: use array_merge()
* addition : use array_sum()
* multiplication : use array_product()
* concatenation : use implode()
* ifthen : use array_filter()

<?php

$all = implode('-', $s).'-';

// same as above
$all = '';
foreach($array as $s) {
    $all .= $s . '-';
}

?>

See also `Array Functions <https://www.php.net/manual/en/ref.array.php>`_ and
        Performances/ArrayMergeInLoops.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.8.8";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Remove the loop and use a native PHP function"
modifications[] = "Add more expressions to the loop : batching multiple operations in one loop makes it more interesting than running separates loops."

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Switch To Switch";
description = "The following structures are based on if / elseif / else. Since they have more than three conditions (not withstanding the final else), it is recommended to use the switch structure, so as to make this more readable.

On the other hand, switch() structures with less than 3 elements should be expressed as a if / else structure.

Note that if condition that uses strict typing (=== or !==) can't be converted to switch() as the latter only performs == or != comparisons.

<?php

if ($a == 1) {

} elseif ($a == 2) {

} elseif ($a == 3) {

} elseif ($a == 4) {

} else {

}

// Better way to write long if/else lists
switch ($a) {
    case 1 : 
        doSomething(1);
        break 1;
    
    case 2 : 
        doSomething(2);
        break 1;

    case 3 : 
        doSomething(3);
        break 1;

    case 4 : 
        doSomething(4);
        break 1;
    
    default :
        doSomething();
        break 1;
}

?>

Note that simple switch statement, which compare a variable to a literal are optimised in PHP 7.2 and more recent. This gives a nice performance boost, and keep code readable.

See also `PHP 7.2's switch optimisations <https://derickrethans.nl/php7.2-switch.html>`_ and 
         `Is Your Code Readable By Humans? Cognitive Complexity Tells You <https://www.tomasvotruba.cz/blog/2018/05/21/is-your-code-readable-by-humans-cognitive-complexity-tells-you/>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Use a simple switch statement, rather than a long string of if/else"

[example1]
project="Thelia"
file="core/lib/Thelia/Controller/Admin/TranslationsController.php"
line="100"
code="if($modulePart == 'core') { /**/ } elseif($modulePart == 'admin-includes') { /**/ } elseif(!empty($modulePart)) { /**/ }";
explain="The two first comparison may be turned into a case, and the last one could be default, or default with a check on empty(). "

[example2]
project="XOOPS"
file="htdocs/search.php"
line="74"
code="if($action === 'results') { /**/ } elseif($action === 'showall') { /**/ } elseif($action === 'showallbyuser') { /**/ } ";
explain="Here, converting this structure to switch requires to drop the === usage. Also, no default usage here. "
name = "Don't Be Too Manual";
description = "Adapt the examples from the PHP manual to your code. Don't reuse directly the same names in your code : be more specific about what to expect in those variables.

<?php

// Search for phone numbers in a text
preg_match_all('/((\d{3})-(\d{3})-(\d{4}))/', $string, $phoneNumber);

// Search for phone numbers in a text
preg_match_all('/(\d{3})-(\d{3})-(\d{4})/', $string, $matches);

?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.6.4";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Use precise name with your variables"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Could Be Else";
description = "Merge opposition conditions into one if/then structure.

When two if/then structures follow each other, using a condition and its opposite, they may be merged into one.

<?php

// Short version
if ($a == 1) {
    $b = 2;
} else {
    $b = 1;
}

// Long version
if ($a == 1) {
    $b = 2;
}

if ($a != 1) {
    $b = 3;
}

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "1.0.1";

modifications[] = "Merge the two conditions into one structure"
modifications[] = "Check if the second condition is still applicable"

[example1]
project="SugarCrm"
file="SugarCE-Full-6.5.26/modules/Emails/ListViewGroup.php"
line="79"
code="if(!isset($_REQUEST['query'])){
	//_pp('loading: '.$currentModule.'Group');
	//_pp($current_user->user_preferences[$currentModule.'GroupQ']);
	$storeQuery->loadQuery($currentModule.'Group');
	$storeQuery->populateRequest();
} else {
	//_pp($current_user->user_preferences[$currentModule.'GroupQ']);
	//_pp('saving: '.$currentModule.'Group');
	$storeQuery->saveFromGet($currentModule.'Group');
}

if(isset($_REQUEST['query'])) {
	// we have a query
	if(isset($_REQUEST['email_type']))				$email_type = $_REQUEST['email_type'];
	if(isset($_REQUEST['assigned_to']))				$assigned_to = $_REQUEST['assigned_to'];
	if(isset($_REQUEST['status']))					$status = $_REQUEST['status'];
	// More code
}
	";
explain="The first condition makes different checks if 'query' is in $_REQUEST or not. The second only applies to $_REQUEST['query'], as there is no else. There is also no visible sign that the first condition may change $_REQUEST or not"

[example2]
project="OpenEMR"
file="library/log.inc"
line="653"
code="    $success = 1;
    $checksum = """";
    if ($outcome === false) {
        $success = 0;
    }

    if ($outcome !== false) {
        // Should use the $statement rather than the processed
        // variables, which includes the binded stuff. If do
        // indeed need the binded values, then will need
        // to include this as a separate array.

        //error_log(""STATEMENT: "".$statement,0);
        //error_log(""BINDS: "".$processed_binds,0);
        $checksum = sql_checksum_of_modified_row($statement);
        //error_log(""CHECKSUM: "".$checksum,0);
    }";
explain="Those two if structure may definitely merged into one single instruction."

name = "Strict Comparison With Booleans";
description = "Strict comparisons prevent from mistaking an error with a false. 

Boolean values may be easily mistaken with other values, especially when the function may return integer or boolean as a normal course of action. 

It is encouraged to use strict comparison === or !== when booleans are involved in a comparison.

<?php

// distinguish between : $b isn't in $a, and, $b is at the beginning of $a 
if (strpos($a, $b) === 0) {
    doSomething();
}

// DOES NOT distinguish between : $b isn't in $a, and, $b is at the beginning of $a 
if (strpos($a, $b)) {
    doSomething();
}

// will NOT mistake 1 and true
$a = array(0, 1, 2, true);
if (in_array($a, true, true)) {
    doSomething();
}

// will mistake 1 and true
$a = array(0, 1, 2, true);
if (in_array($a, true)) {
    doSomething();
}

?>

switch() structures always uses == comparisons. 

Native function in_array() has a third parameter to make it use strict comparisons.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Use strict comparison whenever possible"

[example1]
project="Phinx"
file="src/Phinx/Db/Adapter/MysqlAdapter.php"
line="1131"
code="$column->isNull( ) == false";
explain="`ìsNull( )`` always returns a boolean : it may be only be ``true`` or ``false``. Until typehinted properties or return typehint are used, isNull() may return anything else. "

[example2]
project="Typo3"
file="typo3/sysext/lowlevel/Classes/Command/FilesWithMultipleReferencesCommand.php"
line="90"
code="$input->getOption('dry-run') != false";
explain="When ``dry-run`` is not defined, the getOption() method actually returns a ``null`` value. So, comparing the result of getOption() to false is actually wrong : using a constant to prevent values to be inconsistent is recommended here."
name = "mcrypt_create_iv() With Default Values";
description = "Avoid using `mcrypt_create_iv() <http://php.net/manual/en/function.mcrypt-create-iv.php>`_ default values.

`mcrypt_create_iv() <http://php.net/manual/en/function.mcrypt-create-iv.php>`_ used to have ``MCRYPT_DEV_RANDOM`` as default values, and in PHP 5.6, it now uses ``MCRYPT_DEV_URANDOM``.

<?php
    $size = mcrypt_get_iv_size(MCRYPT_CAST_256, MCRYPT_MODE_CFB);
    // mcrypt_create_iv is missing the second argument
    $iv = mcrypt_create_iv($size);

// Identical to the line below
//    $iv = mcrypt_create_iv($size, MCRYPT_DEV_RANDOM);

?>

If the code doesn't have a second argument, it relies on the default value. It is recommended to set explicitly the value, so has to avoid problems while migrating.

See also `mcrypt_create_iv() <http://php.net/manual/en/function.mcrypt-create-iv.php>`_.
";
clearphp = "";
phpversion = "5.6-";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
name = "Variable Global";
description = "Variable global such are valid in PHP 5.6, but no in PHP 7.0. They should be replaced with \${\$foo->bar}.

<?php

// Forbidden in PHP 7
global $normalGlobal;

// Forbidden in PHP 7
global \$\$variable->global ;

// Tolerated in PHP 7
global \${\$variable->global};

?>

";
clearphp = "";
phpversion = "7.0-";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.3";name = "Const Or Define";
description = "``const`` and ``define()`` have the same functional use : create constants. 

The analyzed code has less than 10% of one of them : for consistency reasons, it is recommended to make them all the same. 

They are almost interchangeable, though not totally : ``define()`` allows the creation of case-insensitive constants, while ``Const`` won\'t. 

<?php

// be consistent
const A1  = 1 ;
const A2  = 2 ;
const A3  = 3 ;
const A4  = 4 ;
const A5  = 5 ;
const A6  = 6 ;
const A7  = 7 ;
const A8  = 8 ;
const A9  = 9 ;
const A10 = 10;
const A11 = 11;

define('A12', 12); // Be consistent, always use the same. 

?>

See also `define <http://php.net/manual/en/function.define.php>`_ and 
         `const <http://www.php.net/manual/en/language.constants.php>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.12.1";
name = "Avoid Substr() One";
description = "Use array notation ``$string[$position]`` to reach a single byte in a string.

There are two ways to access a byte in a string : substr() and ``$v[$pos]``.

The second style is more readable. It may be up to four times faster, though it is a micro-optimization. It is recommended to use it. 

PHP 7.1 also introduces the support of negative offsets as string index : negative offset are also reported.

<?php

$string = 'ab人cde';

echo substr($string, $pos, 1);
echo $string[$pos];

echo mb_substr($string, $pos, 1);

// when $pos = 1
// displays bbb
// when $pos = 2
// displays ??人

?>

Beware that substr() and ``$v[$pos]`` are similar, while mb_substr() is not. The first function works on bytes, while the latter works on characters.";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Replace substr() with the array notations for strings."
modifications[] = "Replace substr() with a call to mb_substr()."

[example1]
project="ChurchCRM"
file="src/Login.php"
line="141"
code="if (substr($LocationFromGet, 0, 1) == \"/\") {
    $LocationFromGet = substr($LocationFromGet, 1);
}
";
explain="No need to call substr() to get only one char. "

[example2]
project="LiveZilla"
file="livezilla/_lib/objects.global.inc.php"
line="2243"
code="        $_hex = str_replace(\"#\", \"\", $_hex);
            if(strlen($_hex) == 3) {
            $r = hexdec(substr($_hex,0,1).substr($_hex,0,1));
            $g = hexdec(substr($_hex,1,1).substr($_hex,1,1));
            $b = hexdec(substr($_hex,2,1).substr($_hex,2,1));
        } else {
            $r = hexdec(substr($_hex,0,2));
            $g = hexdec(substr($_hex,2,2));
            $b = hexdec(substr($_hex,4,2));
        }
        $rgb = array($r, $g, $b);
        return $rgb;
";
explain="No need to call substr() to get only one char. "

name = "Named Regex";
description = "Captured subpatterns may be named, for easier reference. 

From the manual : It is possible to name a subpattern using the syntax ``(?P<name>pattern)``. This subpattern will then be indexed in the matches array by its normal numeric position and also by name. PHP 5.2.2 introduced two alternative syntaxes ``(?<name>pattern)`` and ``(?'name'pattern)``.

Naming subpatterns makes it easier to know what is read from the results of the subpattern : for example, ``$r['name']`` has more meaning than ``$r[1]``. 

Named subpatterns may also be shifted in the regex without impact on the resulting array. 

<?php

$x = 'abc';
preg_match_all('/(?<name>a)/', $x, $r);
print_r($r[1]);
print_r($r['name']);

preg_match(\"/(?<name>a)(?'sub'b)/\", $x, $s);
print $s[2];
print $s['sub'];

?>

See also `Subpatterns <http://php.net/manual/en/regexp.reference.subpatterns.php>`_.

 ";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.4.9";
modifications[] = "Use named regex, and stop using integer-named subpatterns"
[example1]
project="Phinx"
file="src/Phinx/Util/Util.php"
line="127"
code="
    const MIGRATION_FILE_NAME_PATTERN = '/^\d+_([\w_]+).php$/i';
//.... More code with class definition
    public static function mapFileNameToClassName($fileName)
    {
        $matches = [];
        if (preg_match(static::MIGRATION_FILE_NAME_PATTERN, $fileName, $matches)) {
            $fileName = $matches[1];
        }

        return str_replace(' ', '', ucwords(str_replace('_', ' ', $fileName)));
    }
";
explain="$matches[1] could be renamed by $matches['filename'], if the capturing subpattern was named 'filename'. "
[example2]
project="shopware"
file="engine/Library/Enlight/Components/Snippet/Resource.php"
line="207"
code="            if (!preg_match(\"!(.?)(name=)(.*?)(?=(\s|$))!\", $_block_args, $_match) && empty($_block_default)) {
                throw new SmartyException('\"' . $_block_tag . '\" missing name attribute');
            }
            $_block_force = (bool) preg_match('#[\s]force#', $_block_args);
            $_block_json = (bool) preg_match('#[\s]json=[\"\']true[\"\']\W#', $_block_args);
            $_block_name = !empty($_match[3]) ? trim($_match[3], '\'\"') : $_block_default;

";
explain="$_match[3] is actually extracted two preg_match() before : by the time we read its usage, the first regex has been forgotten. A named subpattern would be useful here to remember what was captured."
name = "Inconsistent Concatenation";
description = "Concatenations happens within a string or using the dot operator. Using both is an inconsistent way of writing concatenations.

Switching methods of concatenation, sometimes in the same expression, is error prone. The reader gets confused, and may miss important information. 

<?php

    //Concatenation
  $consistent = $a . 'b'. $c;

    //Interpolation
  $consistentToo = \"{$a}b$c\";

    // Concatenation and interpolation
  $inconsistent = $a . \"b$c\";

    // Concatenation and interpolation too
  $consistentThree = <<<CONSISTENT
{$a}b$c
CONSISTENT;

    // Concatenation and interpolation collisions
  $collision = theClass::CONSTANTE . \"b{$c}\".number_format($t, 2).' $CAD'."\n";

?>

There are some situations where using concatenation are compulsory : when calling a constant, or a function, or make use of the escape sequence. Those are ignored in this analysis.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
[example1]
project=FuelCMS
file=wp-admin/includes/misc.php
line=74
code="$markerdata = explode( \"\n\", implode( '', file( $filename ) ) );";
explain="This code actually loads the file, join it, then split it again. file() would be sufficient. "
name = "Concat Empty String";
description = "Using a concatenation to make a value a string should be replaced with a type cast.

Type cast to a string is done with ``(string)`` operator. There is also the function strval(), although it is less recommended.

<?php

$a = 3;

// explicite way to cast a value
$b = (string) $a; // $b is a string with the content 3

// Wrong way to cast a value
$c = $a . ''; // $c is a string with the content 3
$c = '' . $a; // $c is a string with the content 3
$a .= '';     // $a is a string with the content 3

// Wrong way to cast a value
$c = $a . '' . $b; // This is not reported. The empty string is useless, but not meant to type cast

?>

See also `Type Casting <https://php.net/manual/en/language.types.type-juggling.php#language.types.typecasting>`_ and 
        `PHP Type Casting <https://developer.hyvor.com/tutorials/php/type-casting>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.8.0";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Avoid concatenating with empty strings"
modifications[] = "Use (string) operator to cast to string"
modifications[] = "Remove any concatenated empty string"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Invalid Pack Format";
description = "Some characters are invalid in a pack() format string.

pack() and unpack() accept the following format specifiers : ``aAhHcCsSnviIlLNVqQJPfgGdeExXZ``. 

unpack() also accepts a name after the format specifier and an optional quantifier. 

All other situations is not a valid, and produces a warning : ``pack(): Type t: unknown format code``

<?php
    $binarydata = pack("nvc*", 0x1234, 0x5678, 65, 66);
    
    // the first unsigned short is stored as 'first'. The next matches are names with numbers.
    $res = unpack('nfirst/vc*', $binarydata);
?>

Check pack() documentation for format specifiers that were introduced in various PHP version, namely 7.0, 7.1 and 7.2.

See also `pack <http://php.net/pack>`_ and 
         `unpack <http://php.net/pack>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "1.4.9";
phpError[] = "pack(): Type t: unknown format code"
phpError[] = "unpack(): Type t: unknown format code"
modifications[] = "Fix the packing format with correct values"name = "Dont Change The Blind Var";
description = "When using a foreach(), the blind variables hold a copy of the original value. It is confusing to modify them, as it seems that the original value may be changed.

When actually changing the original value, use the reference in the foreach definition to make it obvious, and save the final reassignation.

When the value has to be prepared before usage, then save the filtered value in a separate variable. This makes the clean value obvious, and preserve the original value for a future usage.

<?php

// $bar is duplicated and kept 
$foo = [1, 2, 3];
foreach($foo as $bar) {
    // $bar is updated but its original value is kept
    $nextBar = $bar + 1;
    print $bar . ' => ' . ($nextBar) . PHP_EOL;
    foobar($nextBar);
}

// $bar is updated and lost
$foo = [1, 2, 3];
foreach($foo as $bar) {
    // $bar is updated but its final value is lost
    print $bar . ' => ' . (++$bar) . PHP_EOL;
    // Now that $bar is reused, it is easy to confuse its value
    foobar($bar);
}

// $bar is updated and kept
$foo = [1, 2, 3];
foreach($foo as &$bar) {
    // $bar is updated and keept
    print $bar . ' => ' . (++$bar) . PHP_EOL;
    foobar($bar);
}

?>
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.9";
name = "Use List With Foreach";
description = "Foreach() structures accepts list() as blind key. If the loop-value is an array with a fixed structure, it is possible to extract the values directly into variables with explicit names.

<?php

// Short way to assign variables
// Works on PHP 7.1, where list() accepts keys.
foreach($names as list('first' => $first, 'last' => $last)) {
    doSomething($first, $last);
}

// Short way to assign variables
// Works on all PHP versions with numerically indexed arrays.
foreach($names as list($first, $last)) {
    doSomething($first, $last);
}

// Long way to assign variables
foreach($names as $name) {
    $first = $name['first'];
    $last = $name['last'];
    
    doSomething($first, $last);
}

?>

See also `list <http://php.net/manual/en/function.list.php>`_ and `foreach <http://php.net/manual/en/control-structures.foreach.php>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "1.0.4";

modifications[] = "Use the list keyword (or the short syntax), and simplify the array calls in the loop."

[example1]
project="MediaWiki"
file="includes/parser/LinkHolderArray.php"
line="372"
code="			foreach ( $entries as $index => $entry ) {
				$pdbk = $entry['pdbk'];
				$title = $entry['title'];
				$query = isset( $entry['query'] ) ? $entry['query'] : [];
				$key = \"$ns:$index\";
				$searchkey = \"<!--LINK'\\" $key-->\";
				$displayText = $entry['text'];
				if ( isset( $entry['selflink'] ) ) {
					$replacePairs[$searchkey] = Linker::makeSelfLinkObj( $title, $displayText, $query );
					continue;
				}
				if ( $displayText === '' ) {
					$displayText = null;
				} else {
					$displayText = new HtmlArmor( $displayText );
				}
				if ( !isset( $colours[$pdbk] ) ) {
					$colours[$pdbk] = 'new';
				}
				$attribs = [];
				if ( $colours[$pdbk] == 'new' ) {
					$linkCache->addBadLinkObj( $title );
					$output->addLink( $title, 0 );
					$link = $linkRenderer->makeBrokenLink(
						$title, $displayText, $attribs, $query
					);
				} else {
					$link = $linkRenderer->makePreloadedLink(
						$title, $displayText, $colours[$pdbk], $attribs, $query
					);
				}

				$replacePairs[$searchkey] = $link;
			}";
explain="This foreach reads each element from $entries into entry. $entry, in turn, is written into $pdbk, $title and $displayText for easier reuse. 5 elements are read from $entry, and they could be set in their respective variable in the foreach() with a list call. The only on that can't be set is 'query' which has to be tested."name = "Use Positive Condition";
description = "Whenever possible, use a positive condition. 

Positive conditions are easier to understand, and lead to less understanding problems.
Negative conditions are not reported when else is not present. 

<?php

// This is a positive condition
if ($a == 'b') {
    doSomething();
} else {
    doSomethingElse();
}

if (!empty($a)) {
    doSomething();
} else {
    doSomethingElse();
}

// This is a negative condition
if ($a == 'b') {
    doSomethingElse();
} else {
    doSomething();
}

// No need to force $a == 'b' with empty else
if ($a != 'b') {
    doSomethingElse();
} 


?>
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.6";

modifications[] = "Invert the code in the if branches, and the condition"
[example1]
project="SPIP"
file="ecrire/inc/utils.php"
line="925"
code="	if (!isset($time[$t])) {
		$time[$t] = $a + $b;
	} else {
		$p = ($a + $b - $time[$t]) * 1000;
		unset($time[$t]);
#			echo \"'$p'\";exit;
		if ($raw) {
			return $p;
		}
		if ($p < 1000) {
			$s = '';
		} else {
			$s = sprintf(\"%d \", $x = floor($p / 1000));
			$p -= ($x * 1000);
		}

		return $s . sprintf($s ? \"%07.3f ms\" : \"%.3f ms\", $p);
	}
";
explain="if (isset($time[$t])) { } else { } would put the important case in first place, and be more readable."
[example2]
project="ExpressionEngine"
file="system/ee/EllisLab/Addons/forum/mod.forum_core.php"
line="9138"
code="						if ($topic != '')
						{
							$sql .= '('.substr($topic, 0, -3).') OR ';
							$sql .= '('.substr($tbody, 0, -3).') ';
						}
						else
						{
							$sql = substr($sql, 0, -3);
						}

";
explain="Let's be positive, and start processing the presence of $topic first. And let's call it empty(),  not == ''."

name = "Inclusions";
description = "List of all inclusions. Inclusions are made with include(), include_once(), require() and require_once().

<?php

include 'library.php';

// display is a function defined in 'library.php';
display('Message');

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Unchecked Resources";
description = "Resources are created, but never checked before being used. This is not safe.

Always check that resources are correctly created before using them.

<?php

// always check that the resource is created correctly
$fp = fopen($d,'r');
if ($fp === false) {
    throw new Exception('File not found');
} 
$firstLine = fread($fp);

// This directory is not checked : the path may not exist and return false
$uncheckedDir = opendir($pathToDir);
while(readdir($uncheckedDir)) {
    // do something()
}

// This file is not checked : the path may not exist or be unreadable and return false
$fp = fopen($pathToFile);
while($line = freads($fp)) {
    $text .= $line;
}

// unsafe one-liner : using bzclose on an unchecked resource
bzclose(bzopen('file'));

?>

See also `resources <http://php.net/manual/en/language.types.resource.php>`_.
";
clearphp = "no-unchecked-resources";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "For Using Functioncall";
description = "It is recommended to avoid functioncall in the for() statement. 

<?php

// Fastest way
$nb = count($array); 
for($i = 0; $i < $nb; ++$i) {
    doSomething($i);
} 

// Same as above, but slow
for($i = 0; $i < count($array); ++$i) {
    doSomething($i);
} 

// Same as above, but slow
foreach($portions as &$portion) {
    // here, array_sum() doesn't depends on the $grade. It should be out of the loop
    $portion = $portion / array_sum($portions);
} 

$total = array_sum($portion);
foreach($portion as &$portion) {
    $portion = $portion / $total;
} 

?>

This is true with any kind of functioncall that returns the same value throughout the loop. 

";
clearphp = "no-functioncall-in-loop";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Directly Use File";
description = "Some PHP functions have a close cousin that work directly on files : use them. This is faster and less code to write.

* md5() => md5_file()
* highlight_string() => highlight_file(), show_source()
* parsekit_compile_string() => parsekit_compile_file()
* parse_ini_string() => parse_ini_file()
* sha1() => sha1_file()
* simplexml_load_string() => simplexml_load_file()
* yaml_parse() => yaml_parse_file()
* hash() => hash_file()
* hash_hmac() => hash_mac_file()
* hash_update() => hash_update_file()
* recode() => recode_file()
* recode_string() => recode_file()


<?php

// Good way
$file_hash = hash_file('sha512', 'example.txt');

// Slow way
$file_hash = hash('sha512', file_get_contents('example.txt'));

?>

See also `hash_file <http://php.net/manual/en/function.hash-file.php>`_. 
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_INSTANT";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.5.5";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Use the _file() version of those functions"
name = "Resources Usage";
description = "List of situations that are creating resources.

<?php
    // This functioncall creates a resource to use
    $fp = fopen('/tmp/file.txt', 'r');
    
    if (!is_resource($fp)){
        thrown new RuntimeException('Could not open file.txt');
    }
?>
    
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Catch Overwrite Variable";
description = "The try/catch structure uses some variables that are also in use in this scope. In case of a caught exception, the exception will be put in the catch variable, and overwrite the current value, loosing some data.

<?php

// variables and caught exceptions are distinct
$argument = 1;
try {
    methodThatMayRaiseException($argument);
} (Exception $e) {
    // here, $e has been changed to an exception.
}

// variables and caught exceptions are overlapping
$e = 1;
try {
    methodThatMayRaiseException();
} (Exception $e) {
    // here, $e has been changed to an exception.
}

?>

It is recommended to use another name for these catch variables.";
clearphp = "no-catch-overwrite";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
modifications[] = "Use a standard : only use $e (or else) to catch exceptions. Avoid using them for anything else, parameter, property or local variable."
modifications[] = "Change the variable, and keep the caught exception"
[example1]
project="PhpIPAM"
file="app/subnets/scan/subnet-scan-snmp-route.php"
line="58"
code="    try {
        $res = $Snmp->get_query("get_routing_table");
        // remove those not in subnet
        if (sizeof($res)>0) {
           // save for debug
           $debug[$d->hostname][$q] = $res;

           // save result
           $found[$d->id][$q] = $res;
        }
    } catch (Exception $e) {
       // save for debug
       $debug[$d->hostname][$q] = $res;
       $errors[] = $e->getMessage();
	}

// lots of code
// on line 132
    // print errors
    if (isset($errors)) {
        print "<hr>";
        foreach ($errors as $e) {
            print $Result->show ("warning", $e, false, false, true);
        }
    }

";

explain="$e is used both as 'local' variable : it is local to the catch clause, and it is a blind variable in a foreach(). There is little overlap between the two occurrences, but one reader may wonder why the caught exception is shown later on. "
[example2]
project="SuiteCrm"
file="modules/Emails/EmailUIAjax.php"
line="1082"
code="
// On line 900, $e is a Email
        case "getMultipleMessagesFromSugar":
            $GLOBALS['log']->debug("********** EMAIL 2.0 - Asynchronous - at: getMultipleMessagesFromSugar");
            if (isset($_REQUEST['uid']) && !empty($_REQUEST['uid'])) {
                $exIds = explode(",", $_REQUEST['uid']);
                $out = array();

                foreach ($exIds as $id) {
                    $e = new Email();
                    $e->retrieve($id);
                    $e->description_html = from_html($e->description_html);
                    $ie->email = $e;
                    $out[] = $ie->displayOneEmail($id, $_REQUEST['mbox']);
                }

                echo $json->encode($out);
            }

            break;


// lots of code
// on line 1082
        case "refreshSugarFolders":
            try {
                $GLOBALS['log']->debug("********** EMAIL 2.0 - Asynchronous - at: refreshSugarFolders");
                $rootNode = new ExtNode('', '');
                $folderOpenState = $current_user->getPreference('folderOpenState', 'Emails');
                $folderOpenState = (empty($folderOpenState)) ? "" : $folderOpenState;
                $ret = $email->et->folder->getUserFolders(
                    $rootNode,
                    sugar_unserialize($folderOpenState),
                    $current_user,
                    true
                );
                $out = $json->encode($ret);
                echo $out;
            } catch (SugarFolderEmptyException $e) {
                $GLOBALS['log']->warn($e);
                $out = $json->encode(array(
                    'message' => 'No folder selected warning message here...',
                ));
                echo $out;
            }
            break;

";
explain="$e starts as an Email(), in the 'getMultipleMessagesFromSugar' case, while a few lines later, in 'refreshSugarFolders', $e is now an exception. Breaks are in place, so both occurrences are separated, yet, one may wonder why an email is a warning, or a mail is a warning. "

name = "Useless Unset";
description = "There are situations where trying to remove a variable is actually useless. 

PHP ignores any command that tries to unset a global variable, a static variable, or a blind variable from a foreach loop. 

This is different from the garbage collector, which is run on its own schedule. It is also different from an explicit unset, aimed at freeing memory early : those are useful.

<?php

function foo($a) {
    // unsetting arguments is useless
    unset($a);
    
    global $b;
    // unsetting global variable has no effect 
    unset($b);

    static $c;
    // unsetting static variable has no effect 
    unset($c);
    
    foreach($d as &$e){
        // unsetting a blind variable is useless
        (unset) $e;
    }
    // Unsetting a blind variable AFTER the loop is good.
    unset($e);
}

?>

See also `unset <http://php.net/unset>`_.
";
clearphp = "no-useless-unset";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
modifications[] = "Remove the unset"
modifications[] = "Set the variable to null : the effect is the same on memory, but the variable keeps its existence."
modifications[] = "Omit unsetting variables, and wait for the end of the scope. That way, PHP free memory en mass."
[example1]
project="Tine20"
file="tine20/Felamimail/Controller/Message.php"
line="542"
code="    protected function _createMimePart($_rawContent, $_partStructure)
    {
        if (Tinebase_Core::isLogLevel(Zend_Log::TRACE)) Tinebase_Core::getLogger()->trace(__METHOD__ . '::' . __LINE__ . ' Content: ' . $_rawContent);
        
        $stream = fopen("php://temp", 'r+');
        fputs($stream, $_rawContent);
        rewind($stream);
        
        unset($_rawContent);
        //..... More code, no usage of $_rawContent
    }
";
explain="$_rawContent is unset after being sent to the stream. The variable is a parameter, and will be freed at the end of the call of the method. No need to do it explicitly."
[example2]
project="Typo3"
file="typo3/sysext/frontend/Classes/Page/PageRepository.php"
line="708"
code="    public function getRecordOverlay($table, $row, $sys_language_content, $OLmode = '')
    {
//....  a lot more code, with usage of $row, and several unset($row)
//...... Reduced for simplicity
                    } else {
                        // When default language is displayed, we never want to return a record carrying
                        // another language!
                        if ($row[$GLOBALS['TCA'][$table]['ctrl']['languageField']] > 0) {
                            unset($row);
                        }
                    }
                }
            }
        }
        foreach ($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_page.php']['getRecordOverlay'] ?? [] as $className) {
            $hookObject = GeneralUtility::makeInstance($className);
            if (!$hookObject instanceof PageRepositoryGetRecordOverlayHookInterface) {
                throw new \UnexpectedValueException($className . ' must implement interface ' . PageRepositoryGetRecordOverlayHookInterface::class, 1269881659);
            }
            $hookObject->getRecordOverlay_postProcess($table, $row, $sys_language_content, $OLmode, $this);
        }
        return $row;
    }
";
explain="$row is unset under certain conditions : here, we can read it in the comments. Eventually, the $row will be returned, and turned into a NULL, by default. This will also create a notice in the logs. Here, the best would be to set a null value, instead of unsetting the variable."
name = "Invalid Regex";
description = "The PCRE regex doesn't compile. It isn't a valid regex.

Several reasons may lead to this situation : syntax error, Unknown modifier, missing parenthesis or reference.

<?php

// valid regex
preg_match('/[abc]/', $string);

// invalid regex (missing terminating ] for character class 
preg_match('/[abc/', $string);

?>

Regex are check with the Exakat version of PHP. 

Dynamic regex are only checked for simple values. Dynamic values may eventually generate a compilation error.

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "1.0.5";

modifications[] = "Fix the regex before running it";

[example1]
project="SugarCrm"
file="SugarCE-Full-6.5.26/include/utils/file_utils.php"
line="513"
code="preg_replace('/[^\w-._]+/i', '', $name)";
explain="This yields an error at execution time : ``Compilation failed: invalid range in character class at offset 4 ``."
name = "Use Count Recursive";
description = "The code could use the recursive version of count.

The second argument of count, when set to ``COUNT_RECURSIVE``, count recursively the elements. It also counts the elements themselves. 

<?php

$array = array( array(1,2,3), array(4,5,6));

print (count($array, COUNT_RECURSIVE) - count($array, COUNT_NORMAL));

$count = 0;
foreach($array as $a) {
    $count += count($a);
}
print $count;

?>

See also `count <http://php.net/count>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "1.1.7";

modifications[] = "Drop the loop and use the 2nd argument of count()"

[example1]
project="WordPress"
file="wp-admin/includes/misc.php"
line="74"
code="$markerdata = explode( \"\n\", implode( '', file( $filename ) ) );";
explain="This code actually loads the file, join it, then split it again. file() would be sufficient. "

[example2]
project="PrestaShop"
file="controllers/admin/AdminSearchController.php"
line="342"
code="            $nb_results = 0;
            foreach ($this->_list as $list) {
                if ($list != false) {
                    $nb_results += count($list);
                }
            }
";
explain="This could be improved with count() recursive and a array_filter call, to remove empty $list."
name = "Results May Be Missing";
description = "preg_match() may return empty values, if the search fails. It is important to check for the existence of results before assigning them to another variable, or using it.

<?php
    preg_match('/PHP ([0-9\.]+) /', $res, $r);
    $s = $r[1];
    // $s may end up null if preg_match fails.
?>
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Nested Loops";
description = "Nested loops happens when a loop (while, do..while, for, foreach), is used inside another loop. 

<?php

// Nested loops
foreach($array as $a) {
    foreach ($letters as $b) {
        // This is performed count($array) * count($letters) times. 
        doSomething();
    }
}

?>

Such structure tends to require a lot of processing, as the size of both loops have to be multiplied to estimate the actual payload. They should be avoided as much as possible. This may no be always possible, though.

Nested loops are worth a check for performances reasons, as they will process a lot of times the same instructions.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "list() May Omit Variables";
description = "Simply omit any unused variable in a list() call. 

list() is the only PHP function that accepts to have omitted arguments. If the following code makes no usage of a listed variable, just omit it. 

<?php
    // No need for '2', so no assignation
    list ($a, , $b) = array(1, 2, 3);
        // works with PHP 7.1 short syntax
         [$a, , $b] = array(1, 2, 3);

    // No need for '2', so no assignation
    list ($a, $c, $b) = array(1, 2, 3);
?>

See also `list <http://php.net/manual/en/function.list.php>`_.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Remove the unused variables from the list call"
modifications[] = "When the ignored values are at the beginning or the end of the array, array_slice() may be used to shorten the array."

[example1]
project="OpenConf"
file="openconf/author/privacy.php"
line="29"
code="list($none, $OC_privacy_policy) = oc_getTemplate('privacy_policy');";
explain="The first variable in the list(), $none, isn't reused anywhere in the script. In fact, its name convey the meaning that is it useless, but is in the array nonetheless. "

[example2]
project="FuelCMS"
file="wp-admin/includes/misc.php"
line="74"
code="list($b, $a) = array(reset($params->me), key($params->me));";
explain="$a is never reused again. $b, on the other hand is. Not assigning any value to $a saves some memory, and avoid polluting the local variable space. "
name = "Implied If";
description = "It is confusing to emulate if/then with boolean operators.

It is possible to emulate a if/then structure by using the operators 'and' and 'or'. Since optimizations will be applied to them : 
when the left operand of 'and' is false, the right one is not executed, as its result is useless; 
when the left operand of 'or' is true, the right one is not executed, as its result is useless; 

However, such structures are confusing. It is easy to misread them as conditions, and ignore an important logic step. 

<?php

// Either connect, or die
mysql_connect('localhost', $user, $pass) or die();

// Defines a constant if not found. 
defined('SOME_CONSTANT') and define('SOME_CONSTANT', 1);

// Defines a default value if provided is empty-ish 
// Warning : this is 
$user = $_GET['user'] || 'anonymous';

?>

It is recommended to use a real 'if then' structures, to make the condition readable.
";
clearphp = "no-implied-if";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
name = "File Uploads";
description = "This code makes usage of file upload features of PHP.

Upload file feature is detected through the usage of specific functions : 

<?php
$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo 'File is valid, and was successfully uploaded.'.PHP_EOL;
} else {
    echo 'Possible file upload attack!'.PHP_EOL;
}

echo 'Here is some more debugging info:';
print_r($_FILES);

print '</pre>';

?>

See also `Handling file uploads <http://php.net/manual/en/features.file-upload.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Global Usage";
description = "List usage of globals variables, with global keywords or direct access to $GLOBALS.

<?php
$a = 1; /* global scope */ 

function test()
{ 
    echo $a; /* reference to local scope variable */ 
} 

test();

?>
It is recommended to avoid using global variables, at it makes it very difficult to track changes in values across the whole application. 

See also `Variable scope <http://php.net/manual/en/language.variables.scope.php>`_.
";
clearphp = "no-global";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Multiply By One";
description = "Multiplying by 1 is a fancy type cast. 

If it is used to type cast a value to number, then casting (integer) or (real) is clearer. This behavior may change with PHP 7.1, which has unified the behavior of all hidden casts. 

<?php

// Still the same value than $m, but now cast to integer or real
$m = $m * 1; 

// Still the same value than $m, but now cast to integer or real
$n *= 1; 

// make typecasting clear, and merge it with the producing call.
$n = (int) $n;

?>

See also `Type Juggling <http://php.net/manual/en/language.types.type-juggling.php>`_

";
clearphp = "no-useless-math";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
modifications[] = "Typecast to (int) or (float) for better readability"
modifications[] = "Skip useless math operation altogether"
[example1]
project="SugarCrm"
file="SugarCE-Full-6.5.26/modules/Relationships/views/view.editfields.php"
line="74"
code="        $count = 0;
        foreach($this->fields as $def)
        {
            if (!empty($def['relationship_field'])) {
                $label = !empty($def['vname']) ? $def['vname'] : $def['name'];
                echo ""<td>"" . translate($label, $this->module) . "":</td>""
                   . ""<td><input id='{$def['name']}' name='{$def['name']}'>""  ;

                if ($count%1)
                    echo ""</tr><tr>"";
                $count++;
            }
        }
        echo ""</tr></table></form>"";
";
explain="Here, '$count % 1' is always true, after the first loop of the foreach. There is no need for % usage."
[example2]
project="Edusoho"
file="wp-admin/includes/misc.php"
line="74"
code="            'yesterdayStart' => date('Y-m-d', strtotime(date('Y-m-d', time())) - 1 * 24 * 3600),

";
explain="1 is useless here, since 24 * 3600 is already an integer. And, of course, a day is not 24 * 3600... at least every day."
name = "One Dot Or Object Operator Per Line";
description = "Rule #4 of Object Calisthenics : Only one -> or . per line.

<?php

// Those should be on different lines for readability
$a->foo()->bar()->getFinal();

$a->foo()
  ->bar()
  ->getFinal();

// Those should be on different lines for readability
$concatenation = 'a' . 'b' . $c . 'd';

$concatenation = 'a' . 
                 'b' . 
                 $c .
                 'd';

?>

This analysis will also catch the following cases : 

<?php
    // set of multiples (concatenations or properties or methodcalls)
    foo('a' . 'b', 'c'. 'd');
    foo('a' . 'b', $c->d);

?>

When kept, simple, this rule has some edge cases which are left to the reader.

<?php

$a = 'a' . 'b'
     . 
     'c' . 'd';
$c = $f->g('e' . 'f');

$e = A::B::D;

?>
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.9";
name = "Same Variables Foreach";
description = "A foreach which uses its own source as a blind variable is actually broken.

Actually, PHP makes a copy of the source before it starts the loop. As such, the same variable may be used for both source and blind value. 

Of course, this is very confusing, to see the same variables used in very different ways. 

The source will also be destroyed immediately after the blind variable has been turned into a reference.

<?php

$array = range(0, 10);
foreach($array as $array) {
    print $array.PHP_EOL;
}

print_r($array); // display number from 0 to 10.

$array = range(0, 10);
foreach($array as &$array) {
    print $array.PHP_EOL;
}

print_r($array); // display 10

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "1.0.5";name = "Don't Read And Write In One Expression";
description = "Avoid giving value and using it at the same time, in one expression. This is an undefined behavior of PHP, and may change without warning.

One of those changes happens between PHP 7.2 and 7.3 : 

<?php

$arr = [1];
$ref =& $arr[0];
var_dump($arr[0] + ($arr[0] = 2));
// PHP 7.2: int(4)
// PHP 7.3: int(3)

?>

See also `UPGRADING 7.3 <https://github.com/php/php-src/blob/PHP-7.3/UPGRADING#L83-L95>`_.
";
clearphp = "";
severity = "S_CRITICAL";
timetofix = "T_QUICK";
exakatSince = "1.4.9";
modifications[] = "Split the expression in two separate expressions"
name = "Unkown Regex Options";
description = "Regex support in PHP accepts the following list of options : ``eimsuxADJSUX``. 

All other letter used as option are not supported : depending on the situation, they may be ignored or raise an error.

<?php

// all options are available
if (preg_match('/\d+/isA', $string, $results)) { }

// p and h are not regex options, p is double
if (preg_match('/\d+/php', $string, $results)) { }

?>

See also `Pattern Modifiers <http://php.net/manual/en/reference.pcre.pattern.modifiers.php>`_
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Continue Is For Loop";
description = "break and continue are very similar in PHP : they both break out of loop or switch. Yet, continue should be reserved for loops.

Since PHP 7.3, the execution will emit a warning when finding a continue inside a switch inside a loop : '\"continue\" targeting switch is equivalent to \"break\". Did you mean to use \"continue 2\"?'

<?php

while ($foo) {
    switch ($bar) {
        case 'baz':
            continue; // In PHP: Behaves like 'break;'
                      // In C:   Behaves like 'continue 2;'
    }
}

?>

See also `Deprecate and remove continue targeting switch <https://wiki.php.net/rfc/continue_on_switch_deprecation>`_.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "1.3.9";

phpError[] = "\"continue\" targeting switch is equivalent to \"break\". Did you mean to use \"continue 2\"?";

modifications[] = "Replace break by continue"

[example1]
project="XOOPS"
file="htdocs/kernel/object.php"
line="711"
code="        foreach ($this->vars as $k => $v) {
            $cleanv = $v['value'];
            if (!$v['changed']) {
            } else {
                $cleanv = is_string($cleanv) ? trim($cleanv) : $cleanv;
                switch ($v['data_type']) {
                    case XOBJ_DTYPE_TIMESTAMP:
                        $cleanv = !is_string($cleanv) && is_numeric($cleanv) ? date(_DBTIMESTAMPSTRING, $cleanv) : date(_DBTIMESTAMPSTRING, strtotime($cleanv));
                        break;
                    case XOBJ_DTYPE_TIME:
                        $cleanv = !is_string($cleanv) && is_numeric($cleanv) ? date(_DBTIMESTRING, $cleanv) : date(_DBTIMESTRING, strtotime($cleanv));
                        break;
                    case XOBJ_DTYPE_DATE:
                        $cleanv = !is_string($cleanv) && is_numeric($cleanv) ? date(_DBDATESTRING, $cleanv) : date(_DBDATESTRING, strtotime($cleanv));
                        break;
                    case XOBJ_DTYPE_TXTBOX:
                        if ($v['required'] && $cleanv != '0' && $cleanv == '') {
                            $this->setErrors(sprintf(_XOBJ_ERR_REQUIRED, $k));
                            continue 2;
                        }
                        if (isset($v['maxlength']) && strlen($cleanv) > (int)$v['maxlength']) {
                            $this->setErrors(sprintf(_XOBJ_ERR_SHORTERTHAN, $k, (int)$v['maxlength']));
                            continue 2;
                        }";
explain="break is used here for cases, unless the case includes a if/then structures, in which it becomes a continue. It really should be a break."

name = "Reuse Variable";
description = "A variable is already holding the content that is calculated multiple times over. 

It is recommended to use the cached value. This saves some computation, in particular when used in a loop, and speeds up the process.

<?php

function foo($a) {
    $b = strtolower($a);
    
    // strtolower($a) is already calculated in $b. Just reuse the value.
    if (strtolower($a) === 'c') {
        doSomething();
    }
}

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "1.1.4";

modifications[] = "Reuse the variable";name = "__DIR__ Then Slash";
description = "__DIR__ must be concatenated with a string starting with /.

The magic constant __DIR__ holds the name of the current directory, without final /. When it is used to build path, then the following path fragment must start with /. Otherwise, two directories names will be merged together. 

<?php

// __DIR__ = /a/b/c
// $filePath = /a/b/c/g.php

// /a/b/c/d/e/f.txt : correct path
echo __DIR__.'/d/e/f.txt';
echo dirname($filePath).'/d/e/f.txt';

// /a/b/cd/e/f.txt : most probably incorrect path
echo __DIR__.'d/e/f.txt';
echo dirname($filePath).'d/e/f.txt';

?>

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "0.10.3";

modifications[] = "Add a check on __DIR__, as it may be '/' when run at the root of the server"
modifications[] = "Add a '/' at the beginning of the path after __DIR__."
modifications[] = "Add a call to realpath() or file_exists(), before accessing the file."

[example1]
project="Traq"
file="src/Kernel.php"
line="60"
code="static::$loader = require __DIR__.'../../vendor/autoload.php';";
explain="When executed in a path '/a/b/c', this code will require '/a../../vendor/autoload.php."
name = "Use Debug";
description = "The code source includes calls to debug functions.

The following debug functions and libraries are reported : 

* `Aronduby Dump <https://github.com/aronduby/dump>`_
* `Cakephp Debug Toolbar <https://github.com/cakephp/debug_kit>`_
* `Kint <https://github.com/kint-php/kint>`_
* `Krumo <https://github.com/mmucklo/krumo>`_
* `Nette tracy <https://tracy.nette.org/>`_
* `php-debugbar <https://github.com/maximebf/php-debugbar>`_
* PHP native functions : print_r(), var_dump(), debug_backtrace(), debug_print_backtrace(), debug_zval_dump()
* `Symfony debug <https://symfony.com/doc/current/components/debug.html>`_
* `Wordpress debug <https://codex.wordpress.org/Debugging_in_WordPress>`_
* `Xdebug <https://xdebug.org/>`_
* `Zend debug <https://github.com/zendframework/zend-debug>`_

<?php

// Example with Zend Debug
Zend\Debug\Debug::dump($var, $label = null, $echo = true);

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.11.4";name = "Use Case Value";
description = "When switch() has branched to the right case, the value of the switched variable is know : it is the case.

This doesn't work with complex expression cases, nor with default. 

<?php

switch($a) {
    case 'a' : 
        // $a == 'a';
        echo $a;
        break;
        
    case 'b' : 
        // $a == 'b';
        echo 'b';
        break;
}

?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.6";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Use the literal value in the case, to avoid unnecessary computation."

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Assign And Compare";
description = "Assignation has a lower precedence than comparison. As such, the assignation always happens after the comparison. This leads to the comparison being stored in the variable, and not the value being compared.

<?php

if ($id = strpos($string, $needle) !== false) { 
    // $id now contains a boolean (true or false), but not the position of the $needle.
}

// probably valid comparison, as $found will end up being a boolean
if ($found = strpos($string, $needle) === false) { 
    doSomething();
}

// always valid comparison, with parenthesis
if (($id = strpos($string, $needle)) !== false) { 
    // $id now contains a boolean (true or false), but not the position of the $needle.
}

// Being a lone instruction, this is always valid : there is no double usage with if condition
$isFound = strpos($string, $needle) !== false;


?>

See also `Operator Precedence <http://php.net/manual/en/language.operators.precedence.php>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.6.3";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Use parenthesis"
modifications[] = "Separate assignation and comparison"
modifications[] = "Drop assignation or comparison"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Useless Global";
description = "Global are useless in two cases. First, on super-globals, which are always globals, like $_GET; secondly, on variables that are not used.

<?php

// $_POST is already a global : it is in fact a global everywhere
global $_POST;

// $unused is useless
function foo() {
    global $used, $unused;
    
    ++$used;
}

?>

Also, PHP has superglobals, a special team of variables that are always available, whatever the context. 
They are : $GLOBALS, $_SERVER, $_GET, $_POST, $_FILES, $_COOKIE, $_SESSION, $_REQUEST and $_ENV. 
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
modifications[] = "Drop the global expression"

[example1]
project="Zencart"
file="admin/includes/modules/newsletters/newsletter.php"
line="25"
code="function choose_audience() {
        global $_GET;
";
explain="$_GET is always a global variable. There is no need to declare it global in any scope."

[example2]
project="HuMo-Gen"
file="relations.php"
line="332"
code="function calculate_ancestor($pers) {
    global $db_functions, $reltext, $sexe, $sexe2, $spouse, $special_spouseY, $language, $ancestortext, $dutchtext, $selected_language, $spantext, $generY, $foundY_nr, $rel_arrayY;
";
explain="It is hard to spot that $generY is useless, but this is the only occurrence where $generY is refered to as a global. It is not accessed anywhere else as a global (there are occurrences of $generY being an argument), and it is not even assigned within that function. "
name = "Switch With Too Many Default";
description = "Switch statements should only hold one default, not more. Check the code and remove the extra default.  

PHP 7.0 won't compile a script that allows for several default cases. 

Multiple default happens often with large switch().

<?php

switch($a) {
    case 1 : 
        break;
    default : 
        break;
    case 2 : 
        break;
    default :  // This default is never reached
        break;
}

?>

";
clearphp = "";
phpversion = "7.0-";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
modifications[] = "Remove the useless default : it may be the first, or the last. In case of ambiguity, keep the first, as it is the one being used at the moment."name = "Constant Scalar Expressions";
description = "Define constant with the result of static expressions. This means that constants may be defined with the const keyword, with the help of various operators but without any functioncalls. 

This feature was introduced in PHP 5.6. It also supports array(), and expressions in arrays.

Those expressions (using simple operators) may only manipulate other constants, and all values must be known at compile time. 

<?php

// simple definition
const A = 1;

// constant scalar expression
const B = A * 3;

// constant scalar expression
const C = [A ** 3, '3' => B];

?>

See also `Constant Scalar Expressions <https://wiki.php.net/rfc/const_scalar_exprs>`_.
";
clearphp = "";
phpversion = "5.6+";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "> Or < Comparisons";
description = "Maths has two comparisons styles : ``>`` or ``<``. Both may include equality : ``<=`` and ``>=``.

The analyzed code has less than 10% of one of them : for consistency reasons, it is recommended to make them all the same. 

It is recommended to always use the same comparison style. 

<?php

// Always compare in the same direction
if ($a > $c) {

} elseif ($c > $b) {

} else {
    // equality case
}

// Alterning comparison style lead to harder to read code
if ($b > 3) {

} elseif ($b < 3) {

}

?>

See also `Comparison Operators <http://php.net/manual/en/language.operators.comparison.php>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.3.2";name = "Unset In Foreach";
description = "Unset applied to the variables of a ``foreach`` loop are useless. Those variables are copies and not the actual value. Even if the value is a reference, unsetting it has no effect on the original array : the only effect may be indirect, on elements inside an array, or on properties inside an object.

<?php

// When unset is useless
$array = [1, 2, 3];
foreach($array as $a) {
    unset($a);
}

print_r($array); // still [1, 2, 3]

foreach($array as $b => &$a) {
    unset($a);
}

print_r($array); // still [1, 2, 3]

// When unset is useful
$array = [ [ 'c' => 1] ]; // Array in array
foreach($array as &$a) {
    unset(&$a['c']);
}

print_r($array); // now [ ['c' => null] ]

?>

See also `foreach <http://php.net/manual/en/control-structures.foreach.php>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Drop the unset"name = "Dereferencing String And Arrays";
description = "PHP allows the direct dereferencing of strings and arrays. 

This was added in PHP 5.5. There is no need anymore for an intermediate variable between a string and array (or any expression generating such value) and accessing an index.

<?php
$x = array(4,5,6); 
$y = $x[2] ; // is 6

May be replaced by 
$y = array(4,5,6)[2];
$y = [4,5,6][2];
?>

";
clearphp = "";
phpversion = "5.3-";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Echo Or Print";
description = "Echo and print have the same functional use. <?= and printf() are also considered in this analysis. 

There seems to be a choice that is not enforced : one form is dominant, (> 90%) while the others are rare. 

The analyzed code has less than 10% of one of the three : for consistency reasons, it is recommended to make them all the same. 

It happens that print, echo or <?= are used depending on coding style and files. One file may be consistently using print, while the others are all using echo. 

<?php

echo 'a';
echo 'b';
echo 'c';
echo 'd';
echo 'e';
echo 'f';
echo 'g';
echo 'h';
echo 'i';
echo 'j';
echo 'k';

// This should probably be written 'echo';
print 'l';

?>
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Next Month Trap";
description = "Avoid using +1 month with strtotime(). 

strtotime() calculates the next month by incrementing the month number. For day number that do not exist from one month to the next, strtotime() fixes them by setting them in the next-next month. 

This happens to January, March, May, July, August and October. January is also vulnerable for 29 (not every year), 30 and 31. 

Avoid using '+1 month', and rely on 'first day of next month' or 'last day of next month' to extract the next month's name.

<?php

// Base date is October 31 => 10/31
// +1 month adds +1 to 10 => 11/31 
// Since November 31rst doesn't exists, it is corrected to 12/01. 
echo date('F', strtotime('+1 month',mktime(0,0,0,$i,31,2017))).PHP_EOL;

// Base date is October 31 => 10/31
echo date('F', strtotime('first day of next month',mktime(0,0,0,$i,31,2017))).PHP_EOL;

?>

See also `It is the 31st again <https://twitter.com/rasmus/status/925431734128197632>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "1.0.1";

modifications[] = "Review strtotime() usage for month additions"
modifications[] = "Use datetime() and other classes, not PHP native functions"
modifications[] = "Use a external library, like carbon, to handle dates"

[example1]
project="Contao"
file="system/modules/calendar/classes/Events.php"
line="515"
code="			case 'past_180':
				return array(strtotime('-6 months'), time(), $GLOBALS['TL_LANG']['MSC']['cal_empty']);
";
explain="This code is wrong on August 29,th 30th and 31rst : 6 months before is caculated here as February 31rst, so march 2. Of course, this depends on the leap years."

[example2]
project="Edusoho"
file="src/AppBundle/Controller/Admin/AnalysisController.php"
line="1426"
code="            'lastMonthStart' => date('Y-m-d', strtotime(date('Y-m', strtotime('-1 month')))),
            'lastMonthEnd' => date('Y-m-d', strtotime(date('Y-m', time())) - 24 * 3600),
            'lastThreeMonthsStart' => date('Y-m-d', strtotime(date('Y-m', strtotime('-2 month')))),
";
explain="The last month is wrong 8 times a year : on 31rst, and by the end of March. ";

name = "Random Without Try";
description = "random_int() and random_bytes() require a try/catch structure around them.

random_int() and random_bytes() emit Exceptions if they meet a problem. This way, failure can't be mistaken with returning an empty value, which leads to lower security. 

<?php

try {
    $salt = random_bytes($length);
} catch (TypeError $e) {
    // Error while reading the provided parameter
} catch (Exception $e) {
    // Insufficient random data generated
} catch (Error $e) {
    // Error with the provided parameter : <= 0
}

?>

Since PHP 7.4, openssl_random_pseudo_bytes() has adopted the same behavior. It is included in this analysis : check your PHP version for actual application.

";
clearphp = "";
phpversion = "7.0+";
severity = "S_CRITICAL";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Should Use Math";
description = "Use math operators to make the operation readable.

<?php

// Adding one to self
$a *= 2;
// same as above
$a += $a;

// Squaring oneself
$a **= 2;
// same as above
$a *= $a;

// Removing oneself
$a = 0;
// same as above
$a -= $a;

// Dividing oneself
$a = 1;
// same as above
$a /= $a;

// Divisition remainer
$a = 0;
// same as above
$a %= $a;

?>

See also `Mathematical Functions <http://php.net/manual/en/book.math.php>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "1.1.5";

modifications[] = "Use explicit math assignation"

[example1]
project="OpenEMR"
file="controllers/C_Prescription.class.php"
line="638"
code="    function multiprint_body(& $pdf, $p)
    {
        $pdf->ez['leftMargin'] += $pdf->ez['leftMargin'];
        $pdf->ez['rightMargin'] += $pdf->ez['rightMargin'];
        $d = $this->get_prescription_body_text($p);
        if ($pdf->ezText($d, 10, array(), 1)) {
            $pdf->ez['leftMargin'] -= $pdf->ez['leftMargin'];
            $pdf->ez['rightMargin'] -= $pdf->ez['rightMargin'];
            $this->multiprint_footer($pdf);
            $pdf->ezNewPage();
            $this->multiprint_header($pdf, $p);
";
explain="$pdf->ez['leftMargin'] is now 0."

name = "Non Breakable Space In Names";
description = "PHP allows non-breakable spaces in structures names, such as class, interfaces, traits, and variables.

This may be a nice trick to make names more readable outside code context, like long-named methods for tests. 

<?php

class class with non breakable spaces {}

class ClassWithoutNonBreakableSpaces {}

?>

See also the original post by ``Matthieu Napoli`` : `Using non-breakable spaces in test method names <http://mnapoli.fr/using-non-breakable-spaces-in-test-method-names/>`_ and 
`PHP Variable Names <http://schappo.blogspot.nl/2015/06/php-variable-names.html>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.12.0";name = "Return True False";
description = "These conditional expressions return true/false, depending on the condition. This may be simplified by dropping the control structure altogether.

<?php

if (version_compare($a, $b) >= 0) {
    return true;
} else {
    return false;
}

?>

This may be simplified with : 

<?php

return version_compare($a, $b) >= 0;

?>

This may be applied to assignations and ternary operators too.

<?php

if (version_compare($a, $b) >= 0) {
    $a = true;
} else {
    $a = false;
}

$a = version_compare($a, $b) >= 0 ? false : true;

?>

 ";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Return directly the comparison, without using the if/then structure"
modifications[] = "Cast the value to (boolean) and use it instead of the ternary"

[example1]
project="Mautic"
file="app/bundles/LeadBundle/Model/ListModel.php"
line="125"
code="$isNew = ($entity->getId()) ? false : true;";
explain="$isNew could be a typecast."

[example2]
project="FuelCMS"
file="fuel/modules/fuel/helpers/validator_helper.php"
line="254"
code="	function length_min($str, $limit = 1)
	{
		if (strlen(strval($str)) < $limit)
		{
			return FALSE;
		}
		else
		{
			return TRUE;
		}
	}
";
explain="If/then is a lot of code to produce a boolean."

name = "Test Then Cast";
description = "A test is run on the value, but the cast value is later used. 

The cast may introduce a distortion to the value, and still lead to the unwanted situation. For example, comparing to 0, then later casting to an int. The comparison to 0 is done without casting, and as such, 0.1 is different from 0. Yet, (int) 0.1 is actually 0, leading to a Division by 0 error.

<?php

// Here. $x may be different from 0, but (int) $x may be 0
$x = 0.1;

if ($x != 0) {
    $y = 4 / (int) $x;
}

// Safe solution : check the cast value.
if ( (int) $x != 0) {
    $y = 4 / (int) $x;
}

?>

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "1.1.6";

modifications[] = "Test with the cast value"

[example1]
project="Dolphin"
file="wp-admin/includes/misc.php"
line="74"
code="        if (isset($aLimits['per_page']) && $aLimits['per_page'] !== false)
            $this->aCurrent['paginate']['perPage'] = (int)$aLimits['per_page'];
";
explain="$aLimits['per_page'] is tested for existence and not false. Later, it is cast from string to int : yet, a '0.1' string value would pass the test, and end up filling $aLimits['per_page'] with 0. "
[example2]
project="SuiteCrm"
file="modules/jjwg_Maps/controller.php"
line="1035"
code="        if ($marker['lat'] != '0' && $marker['lng'] != '0') {

            // Check to see if marker point already exists and apply offset if needed
            // This often occurs when an address is only defined by city, state, zip.
            $i = 0;
            while (isset($this->map_marker_data_points[(string) $marker['lat']][(string) $marker['lng']]) &&
            $i < $this->settings['map_markers_limit']) {
                $marker['lat'] = (float) $marker['lat'] + (float) $this->settings['map_duplicate_marker_adjustment'];
                $marker['lng'] = (float) $marker['lng'] + (float) $this->settings['map_duplicate_marker_adjustment'];
                $i++;
            }
";
explain="$marker['lat'] is compared to the string '0', which actually transtype it to integer, then it is cast to string for map_marker_data_points() needs and finally, it is cast to float, in case of a correction. It would be safer to test it in its string type, since floats are not used as array indices. "
name = "No Choice";
description = "A conditional structure is being used, but both alternatives are the same, leading to the illusion of choice. 

Either the condition is useless, and may be removed, or the alternatives need to be distinguished.

<?php

if ($condition == 2) {
    doSomething();
} else {
    doSomething();
}

$condition == 2 ?     doSomething() :     doSomething();

?>


";
modifications[] = "Remove the conditional, and call the expression directly";
modifications[] = "Replace one of the alternative with a distinct call";
modifications[] = "Remove the whole conditional : it may end up being useless";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
[example1]
project="NextCloud"
file="build/integration/features/bootstrap/FilesDropContext.php"
line="71"
code="public function creatingFolderInDrop($folder) {
		$client = new Client();
		$options = [];
		if (count($this->lastShareData->data->element) > 0){
			$token = $this->lastShareData->data[0]->token;
		} else {
			$token = $this->lastShareData->data[0]->token;
		}
		$base = substr($this->baseUrl, 0, -4);
		$fullUrl = $base . '/public.php/webdav/' . $folder;

		$options['auth'] = [$token, ''];
";
explain="Token is checked, but processed in the same way each time. This actual check is done twice, in the same class, in the method droppingFileWith(). "
[example2]
project="Zencart"
file="admin/includes/functions/html_output.php"
line="179"
code="      if ($usessl) {
        $form .= zen_href_link($action, $parameters, 'NONSSL');
      } else {
        $form .= zen_href_link($action, $parameters, 'NONSSL');
      }
";
explain="At least, it always choose the most secure way : use SSL."
name = "Unconditional Break In Loop";
description = "An unconditional break in a loop creates dead code. Since the break is directly in the body of the loop, it is always executed, creating a strange loop that can only run once. 

Here, break may also be a return, a goto or a continue. They all branch out of the loop. Such statement are valid, but should be moderated with a condition. 

<?php

// return in loop should be in 
function summAll($array) {
    $sum = 0;
    
    foreach($array as $a) {
        // Stop at the first error
        if (is_string($a)) {
            return $sum;
        }
        $sum += $a;
    }
    
    return $sum;
}

// foreach loop used to collect first element in array
function getFirst($array) {
    foreach($array as $a) {
        return $a;
    }
}

?>

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.12.16";

modifications[] = "Remove the loop and call the content of the loop once."
[example1]
project="LiveZilla"
file="wp-admin/includes/misc.php"
line="74"
code="        $result = DBManager::Execute(true, \"SELECT * FROM `\" . DB_PREFIX . DATABASE_STATS_AGGS . \"` WHERE `month`>0 AND ((`year`='\" . DBManager::RealEscape(date(\"Y\")) . \"' AND `month`<'\" . DBManager::RealEscape(date(\"n\")) . \"') OR (`year`<'\" . DBManager::RealEscape(date(\"Y\")) . \"')) AND (`aggregated`=0 OR `aggregated`>\" . (time() - 300) . \") AND `day`=0 ORDER BY `year` ASC,`month` ASC LIMIT 1;\");
        if ($result)
            while ($row = DBManager::FetchArray($result)) {
                if (empty($row[\"aggregated\"])) {
                    DBManager::Execute(true, \"UPDATE `\" . DB_PREFIX . DATABASE_STATS_AGGS . \"` SET `aggregated`=\" . time() . \" WHERE `year`=\" . $row[\"year\"] . \" AND `month`=\" . $row[\"month\"] . \" AND `day`=0 LIMIT 1;\");
                    $this->AggregateMonth($row[\"year\"], $row[\"month\"]);
                }
                return false;
            }
";
explain="Only one row is read from the DBManager, and the rest is ignored. The result has no more than one result, basedd on the `LIMIT 1` clause in the SQL. The while loop may be removed."

[example2]
project="MediaWiki"
file="includes/htmlform/HTMLFormField.php"
line="138"
code="		for ( $i = count( $thisKeys ) - 1; $i >= 0; $i-- ) {
			$keys = array_merge( array_slice( $thisKeys, 0, $i ), $nameKeys );
			$data = $alldata;
			foreach ( $keys as $key ) {
				if ( !is_array( $data ) || !array_key_exists( $key, $data ) ) {
					continue 2;
				}
				$data = $data[$key];
			}
			$testValue = (string)$data;
			break;
		}
";
explain="The final break is useless : the execution has already reached the end of the loop."
name = "Variable May Be Non-Global";
description = "Static and global keywords should be used as early as possible in a method. 

Performance wise, it is better to call ``global`` or ``static`` only before using the variable. 

Human-wise, it is recommended to put ``global`` or ``static`` at the beginning of the method, for better readability.

<?php 

function foo() {
    // $a is not global yet. It is a local variable
    $a = 1;
    // Same for static variables
    $s = 5;

    // Now $a is global
    global $a;
    $a = 3;

    // Now $s is static
    static $s;
    $s = 55;
}

?>

See also `Using static variables <http://php.net/manual/en/language.variables.scope.php#language.variables.scope.static>`_ and 
         `The global keyword <http://php.net/manual/en/language.variables.scope.php#language.variables.scope.global>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "1.5.3";

modifications[] = "Use static and global at the beginning of the method"
modifications[] = "Move static and global to the first usage of the variable"
modifications[] = "Remove any access to the variable before static and global"
name = "Use Basename Suffix";
description = "basename() will remove extension when it is provided as argument. The second argument will be removed from the name of the file.

<?php

$path = 'phar:///path/to/file.php';

// Don't forget the . 
$filename = basename($path, '.php');

// Too much work for this
$filename = substr(basename($path), 0, -4);

?>

Using basename() instead of substr() or else, makes the intention clear.

See also `basename <http://www.php.net/basename>`_.
";
clearphp = "";
exakatSince = "1.5.1";

modifications[] = "Use basename(), remove more complex code based on substr() or str_replace()"

[example1]
project="NextCloud"
file="lib/private/URLGenerator.php"
line="176"
code="substr(basename($image), 0, -4)";
explain="This code removes the 4 last letters from the images. It may be 'png', 'jpg' or 'txt'. "

[example2]
project="Dolibarr"
file="htdocs/core/website.inc.php"
line="42"
code="str_replace(array('.tpl.php', 'page'), array('', ''), basename($websitepagefile))";
explain="The extension '.tpl.php' is dropped from the file name, unless it appears somewhere else in the $websitepagefile variable."
name = "Casting Ternary";
description = "Type casting has a precedence over ternary operator, and is applied first. When this happens, the condition is cast, although it is often useless as PHP will do it if needed.

This applies to the ternary operator, the coalesce operator ?: and the null-coalesce operator ??.

<?php
    $a = (string) $b ? 3 : 4;
    $a = (string) $b ?: 4;
    $a = (string) $b ?? 4;
?>

The last example generates first an error `Undefined variable: b`, since $b is first cast to a string. The result is then an empty string, which leads to an empty string to be stored into $a. Multiple errors cascade.

See also `Operators Precedence <http://php.net/manual/en/language.operators.precedence.php>`_.
";
clearphp = "";
severity = "S_MAJOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.8.0";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Add parenthesis around the ternary operator"
modifications[] = "Skip the casting"
modifications[] = "Cast in another expression"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Set Aside Code";
description = "Setting aside code should be made into a method. 

Setting aside code happens when one variable or member is stored locally, to be temporarily replaced by another value. Once the new value has been processed, the original value is reverted.

The temporary change of the value makes the code hard to read. 

It is a good example of a piece of code that could be moved to a separate method or function. Using the temporary value as a parameter makes the change visible, and avoid local pollution.

<?php

// Setting aside database
class cache extends Storage {
    private $database = null;
    
    function __construct($database) {
        $this->database = $database;
    }
    
    function foo($values) {
        // handling storage with sqlite3 
        $secondary = new cache(new Sqlite3(':memory:'));
        $secondary->store($values);

        $this->store($values);      // handling storage with injection 
    }
}

// Setting aside database to cache data in two distinct backend
class cache extends Storage {
    private $database = null;
    
    function __construct(\Pdo $database) {
        $this->database = $database;
    }
    
    function foo($values) {
        // $this->database is set aside for secondary configuration
        $side = $this->database;
        $this->database = new Sqlite3(':memory:');
        $this->store($values);      // handling storage with sqlite3 
        $this->database = $side;
        // $this->database is restored
        $this->store($values);      // handling storage with injection 
    }
}

?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.8.8";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Extract the code that run with the temporary value to a separate method. "

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Eval() Usage";
description = "Using eval() is evil. 

Using eval() is bad for performances (compilation time), for caches (it won't be compiled), and for security (if it includes external data).

<?php
    // Avoid using incoming data to build the eval() expression : any filtering error leads to PHP injection
    $mathExpression = $_GET['mathExpression']; 
    $mathExpression = preg_replace('#[^0-9+\-*/\(/)]#is', '', $mathExpression); // expecting 1+2
    $literalCode = '$a = '.$mathExpression.';';
    eval($literalCode);
    echo $a;

    // If the code code given to eval() is known at compile time, it is best to put it inline
    $literalCode = 'phpinfo();';
    eval($literalCode);

?>

Most of the time, it is possible to replace the code by some standard PHP, like variable variable for accessing a variable for which you have the name.
At worse, including a pregenerated file is faster and cacheable. 

There are several situations where eval() is actually the only solution : 

For PHP 7.0 and later, it is important to put eval() in a try..catch expression.

See also `eval <http://www.php.net/eval>`_ and 
         `The Land Where PHP  Uses eval() <https://www.exakat.io/land-where-php-uses-eval/>`_.
";
clearphp = "no-eval";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Use a dynamic feature of PHP to replace the dynamic code"
modifications[] = "Store the code on the disk, and use include"
modifications[] = "Replace create_function() with a closure!"


[example1]
project="XOOPS"
file="htdocs/modules/system/class/block.php"
line="266"
code="                    ob_start();
                    echo eval($this->getVar('content', 'n'));
                    $content = ob_get_contents();
                    ob_end_clean();
";
explain="eval() execute code that was arbitrarily stored in $this, in one of the properties. Then, it is sent to output, but collected before reaching the browser, and put again in $content. May be the echo/ob_get_contents() could have been skipped."
[example2]
project="Mautic"
file="app/bundles/InstallBundle/Configurator/Step/CheckStep.php"
line="238"
code="create_function('$cfgValue', 'return $cfgValue > 100;')";
explain="create_function() is actually an eval() in disguise : replace it with a closure for code modernization"
name = "Check JSON";
description = "Check errors whenever JSON is encoded or decoded. 

In particular, ``NULL`` is a valid decoded JSON response. If you want to avoid mistaking NULL for an error, it is recommended to call ``json_last_error``.

<?php

$encoded = json_encode($incoming);
// Unless JSON must contains some non-null data, this mistakes NULL and error
if(json_last_error() != JSON_ERROR_NONE) {
    die('Error when encoding JSON');
}

$decoded = json_decode($incoming);
// Unless JSON must contains some non-null data, this mistakes NULL and error
if($decoded === null) {
    die('ERROR');
}

?>

See also `Option to make json_encode and json_decode throw exceptions on errors <https://ayesh.me/Upgrade-PHP-7.3#json-exceptions>`_, 
         `json_last_error <http://php.net/json_last_error>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "1.3.0";

modifications[] = "Always check after JSON operation : encoding or decoding."
modifications[] = "Add a call to json_last_error()"
modifications[] = "Configure operations to throw an exception upon error (``JSON_THROW_ON_ERROR``), and catch it."

[example1]
project="Woocommerce"
file="includes/admin/helper/class-wc-helper-plugin-info.php"
line="66"
code="		$results = json_decode( wp_remote_retrieve_body( $request ), true );
		if ( ! empty( $results ) ) {
			$response = (object) $results;
		}

		return $response;
";
explain="In case the body is an empty string, this will be correctly decoded, but will yield an object with an empty-named property."
name = "Function Subscripting";
description = "It is possible to use the result of a methodcall directly as an array, without storing the result in a temporary variable.

This works, given that the method actually returns an array. 

This syntax was not possible until PHP 5.4. Until then, it was compulsory to store the result in a variable first. Although this is now superfluous, it has been a standard syntax in PHP, and is still being used.

<?php

function foo() {
    return array(1 => 'a', 'b', 'c');
}

echo foo()[1]; // displays 'a';

// Function subscripting, the old way
function foo() {
    return array(1 => 'a', 'b', 'c');
}

$x = foo();
echo $x[1]; // displays 'a';

?>

Storing the result in a variable is still useful if the result is actually used more than once. 

";
clearphp = "";
phpversion = "5.4+";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
name = "Indices Are Int Or String";
description = "Indices in an array notation such as ``$array['indice']`` may only be integers or string.

Boolean, Null or float will be converted to their integer or string equivalent.

<?php
    $a = [true => 1,
          1.0  => 2,
          1.2  => 3,
          1    => 4,
          '1'  => 5,
          0.8  => 6,
          0x1  => 7,
          01   => 8,
          
          null  => 1,
          ''    => 2,
          
          false => 1,
          0     => 2,

          '0.8' => 3,
          '01'  => 4,
          '2a'  => 5
          ];
          
    print_r($a);

/*
The above displays
Array
(
    [1] => 8
    [0] => 2
    [] => 2
    [0.8] => 3
    [01] => 4
    [2a] => 5
)
*/
?>

Decimal numbers are rounded to the closest integer; Null is transtyped to '' (empty string); true is 1 and false is 0; Integers in strings are transtyped, while partial numbers or decimals are not analyzed in strings. 

As a general rule of thumb, only use integers or strings that don\'t look like integers. 

This analyzer may find constant definitions, when available.

Note also that PHP detects integer inside strings, and silently turn them into integers. Partial and octal numbers are not transformed.

<?php
    $a = [1      => 1,
          '2'    => 2,
          '011'  => 9, // octal number
          '11d'  => 11, // partial number 
          ];
          
    var_dump($a);

/*
The above displays
array(4) {
  [1]=>
  int(1)
  [2]=>
  int(2)
  ["011"]=>
  int(9)
  ["11d"]=>
  int(11)
}*/
?>

See also `Arrays syntax <http://php.net/manual/en/language.types.array.php>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";


modifications[] = "Do not use any type but string or integer"
modifications[] = "Force typecast the keys when building an array";

[example1]
project="Zencart"
file="includes/modules/payment/paypaldp.php"
line="2523"
code="    // Build Currency format table
    $curFormat = Array();
    $curFormat["036"]=2;
    $curFormat["124"]=2;
    $curFormat["203"]=2;
    $curFormat["208"]=2;
    $curFormat["348"]=2;
    $curFormat["392"]=0;
    $curFormat["554"]=2;
    $curFormat["578"]=2;
    $curFormat["702"]=2;
    $curFormat["752"]=2;
    $curFormat["756"]=2;
    $curFormat["826"]=2;
    $curFormat["840"]=2;
    $curFormat["978"]=2;
    $curFormat["985"]=2;
";
explain="All those strings ends up as integers."

[example2]
project="Mautic"
file="app/bundles/CoreBundle/Entity/CommonRepository.php"
line="315"
code="                foreach ($metadata->getAssociationMappings() as $field => $association) {
                    if (in_array($association['type'], [ClassMetadataInfo::ONE_TO_ONE, ClassMetadataInfo::MANY_TO_ONE])) {
                        $baseCols[true][$entityClass][]  = $association['joinColumns'][0]['name'];
                        $baseCols[false][$entityClass][] = $field;
                    }
                }

";
explain="$baseCols has 1 and 0 (respectively) for index."
name = "Overwritten Source And Value";
description = "In a foreach(), it is best to keep source and values distinct. Otherwise, they overwrite each other.

Since PHP 7.0, PHP makes a copy of the original source, then works on it. This makes possible to use the same name for the source and the values.

<?php

// displays 0-1-2-3-3
$array = range(0, 3);
foreach($array as $array) {
    print $array . '-';
}
print_r($array);


/* displays 0-1-2-3-Array
(
    [0] => 0
    [1] => 1
    [2] => 2
    [3] => 3
)
*/
$array = range(0, 3);
foreach($array as $v) {
    print $v . '-';
}
print_r($array);

?>

When the source is used as the value, the elements in the array are successively assigned to itself. After the loop, the original array has been replaced by its last element.

The same applies to the index, or to any variable in a list() structure, used in a foreach().

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.8.9";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Keep the source, the index and the values distinct"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""


[example1]
project="ChurchCRM"
file="edusoho/vendor/symfony/symfony/src/Symfony/Component/VarDumper/Dumper/CliDumper.php"
line="194"
code="            foreach ($str as $str) {
                if ($i < $m) {
                    $str .= "\n";
                }
                if (0 < $this->maxStringWidth && $this->maxStringWidth < $len = mb_strlen($str, 'UTF-8')) {
                    $str = mb_substr($str, 0, $this->maxStringWidth, 'UTF-8');
                    $lineCut = $len - $this->maxStringWidth;
                }
                //.... More code
";
explain="$str is actually processed as an array (string of characters), and it is also modified along the way."

[example2]
project="ExpressionEngine"
file="system/ee/EllisLab/ExpressionEngine/Service/Theme/ThemeInstaller.php"
line="595"
code="			foreach (directory_map($to_dir) as $directory => $filename)
			{
				if (is_string($directory))
				{
					foreach ($filename as $filename)
					{
						unlink($to_dir.$directory.'/'.$filename);
					}

					@rmdir($to_dir.$directory);
				}
				else
				{
					unlink($to_dir.$filename);
				}
			}
";
explain="Looping over $filename. "
name = "Mismatched Ternary Alternatives";
description = "A ternary operator should yield the same type on both branches.

Ternary operator applies a condition, and yield two different results. Those results will then be processed by code that expects the same types. It is recommended to match the types on both branches of the ternary operator.

<?php

// $object may end up in a very unstable state
$object = ($type == 'Type') ? new $type() : null;

//same result are provided by both alternative, though process is very different
$result = ($type == 'Addition') ? $a + $b : $a * $b;

//Currently, this is omitted
$a = 1;
$result = empty($condition) ? $a : 'default value';
$result = empty($condition) ? $a : getDefaultValue();

?>

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.12.1";
modifications[] = "Use compatible data type in both branch of the alternative"
modifications[] = "Turn the ternary into a if/then, with different processing"
[example1]
project="phpadsnew"
file="phpAdsNew-2.0/admin/lib-misc-stats.inc.php"
line="219"
code="	$bgcolor = "#FFFFFF";
	$i % 2 ? 0 : $bgcolor = "#F6F6F6";
";
explain="This is an unusual way to apply a condition. $bgcolor is '#FFFFFF' by default, and if $i % 2, then $bcolor is '#F6F6F6';. A more readable ternary option would be '$bgcolor =  = 	$i % 2 ? \"#FFFFFF\" : \"#F6F6F6\";', and make a matched alternative branches."
[example2]
project="OpenEMR"
file="portal/messaging/messages.php"
line="132"
code="
// In two distinct if/then branch
l:29) define('IS_DASHBOARD', false);
l:41) define('IS_DASHBOARD', $_SESSION['authUser']);

l:132) echo IS_DASHBOARD ? IS_DASHBOARD : 0;
?>" ;
explain="IS_DASHBOARD is defined as a boolean or a string. Later, it is tested as a boolean, and displayed as a integer, which will be cast to string by echo. Lots of transtyping are happening here."
name = "Assigned In One Branch";
description = "Report variables that are assigned in one branch, and not in the other.

<?php

if ($condition) {
    // $assigned_in_this_branch is assigned in only one of the branches
    $assigned_in_this_branch = 1;
    $also_assigned = 1;
} else {
    // $also_assigned is assigned in the two branches
    $also_assigned = 1;
}

?>
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.0.5";name = "Try With Finally";
description = "Indicates if a try use a finally statement.

<?php

try {
    $a = doSomething();
} catch (Throwable $e) {
    // Fix the problem
} finally {
    // remove $a anyway
    unset($a);
}

?>

See also `Exceptions <http://php.net/manual/en/language.exceptions.php>`_, to learn about catching an exception.
";
clearphp = "";
phpversion = "5.5+";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Dynamic Calls";
description = "List of dynamic calls. They will probably need to be review manually.

<?php

$a = 'b';

// Dynamic call of a constant
echo constant($a);

// Dynamic variables
$$a = 2;
echo $b;

// Dynamic call of a function
$a('b'); 

// Dynamic call of a method
$object->$a('b'); 

// Dynamic call of a static method
A::$a('b'); 

?>

See also `Variable functions <http://php.net/manual/en/functions.variable-functions.php>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Identical Consecutive Expression";
description = "Identical consecutive expressions are worth being checked. 

They may be a copy/paste with unmodified content. When the content has to be duplicated, it is recommended to avoid executing the expression again, and just access the cached result.

<?php

$current  = $array[$i];
$next     = $array[$i + 1];
$nextnext = $array[$i + 1]; // OOps, nextnext is wrong.

// Initialization
$previous = foo($array[1]); // previous is initialized with the first value on purpose
$next     = foo($array[1]); // the second call to foo() with the same arguments should be avoided
// the above can be rewritten as : 
$next     = $previous; // save the processing.

for($i = 1; $i < 200; ++$i) {
    $next = doSomething();
}
?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "1.0.8";name = "Queries In Loops";
description = "Avoid querying databases in a loop. 

Querying an external database in a loop usually leads to performances problems. This is also called the 'n + 1 problem'. 

This problem applies also to prepared statement : when such statement are called in a loop, they are slower than one-time large queries.

It is recommended to reduce the number of queries by making one query, and dispatching the results afterwards. This is true with SQL databases, graph queries, LDAP queries, etc. 

<?php

// Typical N = 1 problem : there will be as many queries as there are elements in $array
$ids = array(1,2,3,5,6,10);

$db = new SQLite3('mysqlitedb.db');

// all the IDS are merged into the query at once
$results = $db->query('SELECT bar FROM foo WHERE id  in ('.implode(',', $id).')');
while ($row = $results->fetchArray()) {
    var_dump($row);
}


// Typical N = 1 problem : there will be as many queries as there are elements in $array
$ids = array(1,2,3,5,6,10);

$db = new SQLite3('mysqlitedb.db');

foreach($ids as $id) {
    $results = $db->query('SELECT bar FROM foo WHERE id = '.$id);
    while ($row = $results->fetchArray()) {
        var_dump($row);
    }
}

?>

This optimisation is not always possible : for example, some SQL queries may not be prepared, like ``DROP TABLE`` or ``DESC``. ``UPDATE`` commands often update one row at a time, and grouping such queries may be counter-productive or unsafe. 

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";

modifications[] = "Batch calls by using WHERE clauses and applying the same operation to all similar data"
modifications[] = "Use native commands to avoid double query : REPLACE instead of SELECT-(UPDATE/INSERT), or UPSERT, for example"

[example1]
project="TeamPass"
file="install/install.queries.php"
line="551"
code="
foreach ($aMiscVal as $elem) {
    //Check if exists before inserting
    $tmp = mysqli_num_rows(
        mysqli_query(
            $dbTmp,
            ""SELECT * FROM `"".$var['tbl_prefix'].""misc`
            WHERE type='"".$elem[0].""' AND intitule='"".$elem[1].""'""
        )
    );
    if (intval($tmp) === 0) {
        $queryRes = mysqli_query(
            $dbTmp,
            ""INSERT INTO `"".$var['tbl_prefix'].""misc`
            (`type`, `intitule`, `valeur`) VALUES
            ('"".$elem[0].""', '"".$elem[1].""', '"".
            str_replace(""'"", """", $elem[2]).""');""
        ); // or die(mysqli_error($dbTmp))
    }

    // append new setting in config file
    $config_text .= ""'"".$elem[1].""' => '"".str_replace(""'"", """", $elem[2]).""',"";
                        }";
explain="The value is SELECTed first in the database, and it is INSERTed if not. This may be done in one call in most databases."

[example2]
project="OpenEMR"
file="contrib/util/deidentification/deidentification.php"
line="287"
code="
$query = ""select * from facility"";
$result = mysqli_query($con, $query);
while ($row = mysqli_fetch_array($result)) {
    $string = ""update facility set 
      
          `name`    = 'Facility_{$row['id']}',
          `phone`   = '(000) 000-0000'

        where `id` = {$row['id']}"";

    mysqli_query($con, $string) or print ""Error altering facility table \n"";
    $string = '';
}
";
explain="The value is SELECTed first in the database, and it is INSERTed if not. This may be done in one call in most databases."

name = "Logical Mistakes";
description = "Avoid logical mistakes within long expressions. 

Sometimes, the logic is not what it seems. It is important to check the actual impact of every part of the logical expression. Do not hesitate to make a table with all possible cases. If those cases are too numerous, it may be time to rethink the whole expression. 

<?php 

// Always true
if ($a != 1 || $a != 2) { } 

// $a == 1 is useless
if ($a == 1 || $a != 2) {}

// Always false
if ($a == 1 && $a == 2) {}

// $a != 2 is useless
if ($a == 1 && $a != 2) {}

?>

Based on article from ``Andrey Karpov``  `Logical Expressions in C/C++. Mistakes Made by Professionals <http://www.viva64.com/en/b/0390/>`_

";
clearphp = "";
severity = "S_CRITICAL";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Change the expressions for them to have a real meaning"

[example1]
project="Dolibarr"
file="htdocs/core/lib/admin.lib.php"
line="1165"
code="$nbtablib != $nbtabsql || $nbtabsql != $nbtabsqlsort";
explain="This expression is always true. When `$nbtabsql` is `$nbtablib`, the left part is true; When `$nbtabsql` is `$nbtabsqlsort`, the right part is true; When any other value is provided, both operands are true. "

[example2]
project="Cleverstyle"
file="modules/HybridAuth/Hybrid/Providers/DigitalOcean.php"
line="123"
code="TRUE == $data->account->email_verified and $data->account->email == $data->account->email_verified";
explain="This expression is always false. When `$data->account->email_verified` is `true`, the right part is false; When `$data->account->email_verified` is `$data->account->email`, the right part is false; The only viable solution is to have ` $data->account->email`true : this is may be the intend it, though it is not easy to understand. "
name = "Drop Substr Last Arg";
description = "Substr() works till the end of the string when the last argument is omitted. There is no need to calculate string size to make this work.

<?php

$string = 'abcdef';

// Extract the end of the string
$cde = substr($string, 2);

// Too much work
$cde = substr($string, 2, strlen($string));

?>

See also `substr <http://www.php.net/substr>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "1.2.2";
modifications[] = "Use negative length"
modifications[] = "Omit the last argument to get the string till its end"

[example1]
project="SuiteCrm"
file="modules/UpgradeWizard/uw_utils.php"
line="2422"
code="substr($relativeFile, 1, strlen($relativeFile))";
explain="substr() is even trying to go beyond the end of the string. "
[example2]
project="Tine20"
file="tine20/Calendar/Frontend/Cli.php"
line="95"
code="substr($opt, 18, strlen($opt))";
explain="Omitting the last character would yield the same result."
name = "Not Not";
description = "Double not makes a boolean, not a ``true``.

This is a wrong casting to boolean. PHP supports ``(boolean)`` to do the same, faster and cleaner.

<?php
    // Explicit code
    $b = (boolean) $x; 
    $b = (bool) $x; 

    // Wrong type casting
    $b = !!$x; 

?>

See also `Logical Operators <http://php.net/manual/en/language.operators.logical.php>`_ and 
         `Type Juggling <http://php.net/manual/en/language.types.type-juggling.php>`_.
";
clearphp = "no-implied-cast";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
modifications[] = "Use ``(bool)`` casting operator for that";
modifications[] = "Don't typecast, and let PHP handle it. This works in situations where the boolean is immediately used.";
[example1]
project="Cleverstyle"
file="modules/OAuth2/OAuth2.php"
line="190"
code="		$result = $this->db_prime()->q(
			[
				""DELETE FROM `[prefix]oauth2_clients`
				WHERE `id` = '%s'"",
				""DELETE FROM `[prefix]oauth2_clients_grant_access`
				WHERE `id`	= '%s'"",
				""DELETE FROM `[prefix]oauth2_clients_sessions`
				WHERE `id`	= '%s'""
			],
			$id
		);
		unset($this->cache->{'/'});
		return !!$result;
";
explain="This double-call returns ``$results`` as a boolean, preventing a spill of data to the calling method. The ``(bool)`` operator would be clearer here."
[example2]
project="Tine20"
file="tine20/Calendar/Controller/MSEventFacade.php"
line="392"
code="            foreach ($exceptions as $exception) {
                $exception->assertAttendee($this->getCalendarUser());
                $this->_prepareException($savedEvent, $exception);
                $this->_preserveMetaData($savedEvent, $exception, true);
                $this->_eventController->createRecurException($exception, !!$exception->is_deleted);
            }

";
explain="It seems that !! is almost superfluous, as a property called 'is_deleted' should already be a boolean."
name = "Shell Usage";
description = "List of shell calls to system.

<?php
    // Using backtick operator
    $a = `ls -hla`;
    
    // Using one of PHP native or extension functions
    $a = shell_exec('ls -hla');
    $b = \pcntl_exec('/path/to/command');
    
?>

See also `shell_exec <http://www.php.net/shell_exec>`_ and 
         `Execution Operators <http://www.php.net/manual/en/language.operators.execution.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "No Direct Access";
description = "This expression protects files against direct access. It will kill the process if it realizes this is not supposed to be directly accessed.

Those expressions are used in applications and framework, to prevent direct access to definition files. 

<?php

  // CONSTANT_EXEC is defined in the main file of the application
  defined('CONSTANT_EXEC') or die('Access not allowed'); : Constant used!

?>
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Useless Check";
description = "Situation where the condition is useless. Foreach() will apply a test on the source, and skip all the loops if no element was found.

<?php

// Checking for type is good. 
if (is_array($array)) {
    foreach($array as $a) {
        doSomething($a);
    }
}

// Foreach on empty arrays doesn't start. Checking is useless
if (!empty($array)) {
    foreach($array as $a) {
        doSomething($a);
    }
}

?>

See also `foreach <http://php.net/manual/en/control-structures.foreach.php>`_.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.9";

modifications[] = "Drop the condition and the check"
modifications[] = "Turn the condition into isset(), empty() and is_array()"

[example1]
project="Magento"
file="wp-admin/includes/misc.php"
line="74"
code="        if (!empty($delete)) {
            foreach ($delete as $categoryId) {
                $where = array(
                    'product_id = ?'  => (int)$object->getId(),
                    'category_id = ?' => (int)$categoryId,
                );

                $write->delete($this->_productCategoryTable, $where);
            }
        }
";
explain="This code assumes that $delete is an array, then checks if it empty. Foreach will take care of the empty check."

[example2]
project="Phinx"
file="src/Phinx/Migration/Manager.php"
line="828"
code="    private function getSeedDependenciesInstances(AbstractSeed $seed)
    {
        $dependenciesInstances = [];
        $dependencies = $seed->getDependencies();
        if (!empty($dependencies)) {
            foreach ($dependencies as $dependency) {
                foreach ($this->seeds as $seed) {
                    if (get_class($seed) === $dependency) {
                        $dependenciesInstances[get_class($seed)] = $seed;
                    }
                }
            }
        }

        return $dependenciesInstances;
    }
";
explain="If $dependencies is not empty, foreach() skips the loops."

name = "Only Variable Returned By Reference";
description = "Function can't return literals by reference.

When a function returns a reference, it is only possible to return variables, properties or static properties. 

Anything else, like literals or static expressions, yield a warning at execution time.

<?php

// Can't return a literal number
function &foo() {
    return 3 + rand();
}

// bar must return values that are stored in a 
function &bar() {
    $a = 3 + rand();
    return $a;
}

?>
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Strict Or Relaxed Comparison";
description = "PHP has two comparison styles : strict and relaxed. 

The analyzed code has less than 10% of one of them : for consistency reasons, it is recommended to make them all the same. 

It is recommended to always use the strict comparison by default, and use the relaxed in case of specific situations. 

<?php

// This compares $strict both in terms of value and type
if ($strict === 3) {

} elseif ($strict == 3) {
    // This compares $strict after an possible type casting. 
    // '3', 3.0 or 3 would all be possible solutions.
}

?>

See also `Comparison Operators <http://php.net/manual/en/language.operators.comparison.php>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.3.2";name = "Avoid get_class()";
description = "``get_class()`` should be replaced with the ``instanceof`` operator to check the class of an object. 

``get_class()`` only compares the full namespace name of the object's class, while ``instanceof`` actually resolves the name, using the local namespace and aliases.

<?php

    use Stdclass as baseClass;
    
    function foo($arg) {
        // Slow and prone to namespace errors
        if (get_class($arg) === 'Stdclass') {
            // doSomething()
        }
    }

    function bar($arg) {
        // Faster, and uses aliases.
        if ($arg instanceof baseClass) {
            // doSomething()
        }
    }
?>

See also `get_class <http://php.net/get_class>`_ and 
         `Instanceof <http://php.net/manual/en/language.operators.type.php>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Useless Brackets";
description = "Standalone brackets have no use. Brackets are used to delimit a block of code, and are used by control statements. They may also be used to protect variables in strings. 

Standalone brackets may be a left over of an old instruction, or a misunderstanding of the alternative syntax.

<?php

// The following brackets are useless : they are a leftover from an older instruction
// if (DEBUG) 
{
    $a = 1;
}

// Here, the extra brackets are useless
for($a = 2; $a < 5; $a++) : {
    $b++;
} endfor;

?>
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Remove the brackets"
modifications[] = "Restore the flow-control operation that was there and removed"
modifications[] = "Move the block into a method or function, and call it"

[example1]
project="ChurchCRM"
file="src/Menu.php"
line="72"
code="        $new_row = false;
        $count_people = 0;

        {
            foreach ($peopleWithBirthDays as $peopleWithBirthDay) {
                if ($new_row == false) {
                    ?>

                    <div class="row">
                <?php
                    $new_row = true;
                } ?>
                <div class="col-sm-3">
";
explain="Difficut to guess what was before the block here. It doesn't have any usage for control flow."
[example2]
project="Piwigo"
file="picture.php"
line="342"
code="    case 'rate' :
    {
      include_once(PHPWG_ROOT_PATH.'include/functions_rate.inc.php');
      rate_picture($page['image_id'], $_POST['rate']);
      redirect($url_self);
    }
";
explain="There is no need for block braces with case. In fact, it does give a false sense of break, while the case will still fall over to the next one. "
name = "Using Short Tags";
description = "The code makes use of short tags. Short tags are the following : ``<?`` . A full scripts looks like that : ``<? /* php code */ ?>`` .

It is recommended to not use short tags, and use standard PHP tags. This makes PHP code compatible with XML standards. Short tags used to be popular, but have lost it.

See also `PHP Tags <http://php.net/manual/en/language.basic-syntax.phptags.php>`_.
";
clearphp = "no-short-tags";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
name = "Missing Cases In Switch";
description = "It seems that some cases are missing in this switch structure.

When comparing two different switch() structures, it appears that some cases are missing in one of them. The set of cases are almost identical, but one of the values are missing. 

Switch() structures using strings as literals are compared in this analysis. When the discrepancy between two lists is below 25%, both switches are reported.

<?php

// This switch operates on a, b, c, d and default 
switch($a) {
    case 'a': doSomethingA(); break 1;
    case 'b': doSomethingB(); break 1;
    case 'c': doSomethingC(); break 1;
    case 'd': doSomethingD(); break 1;
    default: doNothing();
}

// This switch operates on a, b, d and default 
switch($o->p) {
    case 'a': doSomethingA(); break 1;
    case 'b': doSomethingB(); break 1;

    case 'd': doSomethingD(); break 1;
    default: doNothing();
}

?>

In the example, one may argue that the 'c' case is actually handled by the 'default' case. Otherwise, business logic may request that omission. 

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.10.7";

modifications[] = "Add the missing cases"
modifications[] = "Add comments to mention that missing cases are processed in the default case"

[example1]
project="Tikiwiki"
file="lib/articles/artlib.php"
line="1075"
code="		switch ($image_type) {
			case 'article':
				$image_cache_prefix = 'article';
				break;
			case 'submission':
				$image_cache_prefix = 'article_submission';
				break;
			case 'preview':
				$image_cache_prefix = 'article_preview';
				break;
			default:
				return false;
		}";
explain="This switch handles 3 cases, plus the default for all others. There are other switch structures which also handle the '' case. There may be a missing case here. In particular, projects/tikiwiki/code//article_image.php host another switch with the same case, plus another 'topic' case."
name = "Htmlentities Calls";
description = "htmlentities() and htmlspecialchars() are used to prevent injecting special characters in HTML code. As a bare minimum, they take a string and encode it for HTML.

The second argument of the functions is the type of protection. The protection may apply to quotes or not, to HTML 4 or 5, etc. It is highly recommended to set it explicitly.

The third argument of the functions is the encoding of the string. In PHP 5.3, it is ``ISO-8859-1``, in 5.4, was ``UTF-8``, and in 5.6, it is now default_charset, a ``php.ini`` configuration that has the default value of ``UTF-8``. It is highly recommended to set this argument too, to avoid distortions from the configuration.

<?php
$str = 'A quote is <b>bold</b>';

// Outputs, without depending on the php.ini: A &#039;quote&#039; is &lt;b&gt;bold&lt;/b&gt; 
echo htmlentities($str, ENT_QUOTES, 'UTF-8');

// Outputs, while depending on the php.ini: A quote is &lt;b&gt;bold&lt;/b&gt;
echo htmlentities($str);

?>

Also, note that arguments 2 and 3 are constants and string, respectively, and should be issued from the list of values available in the manual. Other values than those will make PHP use the default values. 

See also `htmlentities <https://www.php.net/htmlentities>`_ and `htmlspecialchars <https://www.php.net/htmlspecialchars>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Always use the third argument with htmlentities()"

name = "Possible Increment";
description = "This expression looks like a typo : a missing + would change the behavior.

The same pattern is not reported with -, as it is legit expression. + sign is usually understated, rather than explicit.

<?php

// could it be a ++$b ? 
$a = +$b;

?>

See also `Incrementing/Decrementing Operators <http://php.net/manual/en/language.operators.increment.php>`_ and 
         `Arithmetic Operators <http://php.net/manual/en/language.operators.arithmetic.php>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "1.2.1";
modifications[] = "Drop the whole assignation"
modifications[] = "Complete the addition with another value : $a = 1 + $b"
modifications[] = "Make this a ++ operator : ++$b"
modifications[] = "Make this a negative operator : -$b"
modifications[] = "Make the casting explicit : (int) $b"
[example1]
project="Zurmo"
file="app/protected/modules/workflows/utils/SavedWorkflowsUtil.php"
line="196"
code="$timeStamp =  + $workflow->getTimeTrigger()->resolveNewTimeStampForDuration(time());";
explain="There are suspicious extra spaces around the +, that give the hint that there used to be something else, like a constant, there. From the name of the methods, it seems that this code was refactored from an addition to a simple method call. "
[example2]
project="MediaWiki"
file="includes/filerepo/file/LocalFile.php"
line="613"
code="$decoded[$field] = +$decoded[$field]";
explain="That is a useless assignation, except for the transtyping to integer that PHP does silently. May be that should be a +=, or completely dropped."
name = "No get_class() With Null";
description = "It is not possible to pass explicitly null to get_class() to get the current's class name. Since PHP 7.2, one must call get_class() without arguments to achieve that result.

<?php

class A {
  public function f() {
    // Gets the classname
    $classname = get_class();

    // Gets the classname and a warning
    $classname = get_class(null);
  }
}

$a = new A();
$a->f('get_class');

?>

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "1.0.4";name = "Identical On Both Sides";
description = "Operands should be different when comparing or making a logical combination. Of course, the value each operand holds may be identical. When the same operand appears on both sides of the expression, the result is know before execution. 

<?php

// Trying to confirm consistency
if ($login == $login) {
    doSomething();
}

// Works with every operators
if ($object->login( ) !== $object->login()) {
    doSomething();
}

if ($sum >= $sum) {
    doSomething();
}

//
if ($mask && $mask) {
    doSomething();
}

if ($mask || $mask) {
    doSomething();
}

?>

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "1.0.8";

modifications[] = "Remove one of the alternative, and remove the logical link"
modifications[] = "Modify one of the alternative, and make it different from the other"

[example1]
project="phpMyAdmin"
file="libraries/classes/DatabaseInterface.php"
line="323"
code="if ($options & DatabaseInterface::QUERY_STORE == DatabaseInterface::QUERY_STORE) {
    $tmp = $this->_extension->realQuery('
        SHOW COUNT(*) WARNINGS', $this->_links[$link], DatabaseInterface::QUERY_STORE
    );
    $warnings = $this->fetchRow($tmp);
} else {
    $warnings = 0;
}";
explain="This code looks like ``($options & DatabaseInterface::QUERY_STORE) == DatabaseInterface::QUERY_STORE``, which would make sense. But PHP precedence is actually executing ``$options & (DatabaseInterface::QUERY_STORE == DatabaseInterface::QUERY_STORE)``, which then doesn't depends on QUERY_STORE but only on $options."

[example2]
project="HuMo-Gen"
file="include/person_cls.php"
line="73"
code="			// *** Filter person's WITHOUT any date's ***
			if ($user["group_filter_date"]=='j'){
				if ($personDb->pers_birth_date=='' AND $personDb->pers_bapt_date==''
				AND $personDb->pers_death_date=='' AND $personDb->pers_buried_date==''
				AND $personDb->pers_cal_date=='' AND $personDb->pers_cal_date==''
				){
					$privacy_person='';
				}
			}
";
explain="In that long logical expression, $personDb->pers_cal_date is tested twice"
name = "No isset() With empty()";
description = "empty() actually does the job of isset() too. 

From the manual : ``No warning is generated if the variable does not exist. That means empty() is essentially the concise equivalent to !isset($var) || $var == false.`` The main difference is that isset() only works with variables, while empty() works with other structures, such as constants.

<?php


// Enough validation
if (!empty($a)) {
    doSomething();
}

// Too many tests
if (isset($a) && !empty($a)) {
    doSomething();
}

?>

See also `Isset <http://www.php.net/isset>`_ and 
         `empty <http://www.php.net/empty>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.7";
modifications[] = "Only use isset(), just drop the empty()"
modifications[] = "Only use empty(), just drop the empty()"
modifications[] = "Use a null value, so the variable is always set"
[example1]
project="XOOPS"
file="htdocs/class/tree.php"
line="297"
code="isset($this->tree[$key]['child']) && !empty($this->tree[$key]['child']);";
explain="Too much vlaidation"
name = "Possible Infinite Loop";
description = "Loops on files that can't be open results in infinite loop.

fgets(), and functions like fgetss(), fgetcsv(), fread(), return false when they finish reading, or can't access the file. 

In case the file is not accessible, comparing the result of the reading to something that is falsy, leads to a permanent valid condition. The execution will only finish when the ``max_execution_time`` is reached. 

<?php

$file = fopen('/path/to/file.txt', 'r');
// when fopen() fails, the next loops is infinite
// fgets() will always return false, and while will always be true. 
while($line = fgets($file) != 'a') {
    doSomething();
}

?>

It is recommended to check the file resources when they are opened, and always use === or !== to compare readings. feof() is also a reliable function here.

";
clearphp = "";
severity = "S_CRITICAL";
timetofix = "T_QUICK";
exakatSince = "1.1.5";name = "No Hardcoded Ip";
description = "Do not leave hard coded IP in your code.

It is recommended to move such configuration in external files or databases, for each update. 
This may also come handy when testing. 

<?php

// This IPv4 is hardcoded. 
$ip = '183.207.224.50';
// This IPv6 is hardcoded. 
$ip = '2001:0db8:85a3:0000:0000:8a2e:0370:7334';

// This looks like an IP
$thisIsNotAnIP = '213.187.99.50';
$thisIsNotAnIP = '2133:1387:9393:5330';

?>

``127.0.0.1``, ``::1`` and ``::0`` are omitted, and not considered as a violation.

See also `Use of Hardcoded IPv4 Addresses <https://docs.microsoft.com/en-us/windows/desktop/winsock/use-of-hardcoded-ipv4-addresses-2>`_ and 
         `Never hard code sensitive information <https://wiki.sei.cmu.edu/confluence/display/java/MSC03-J.+Never+hard+code+sensitive+information>`_.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";

modifications[] = "Move the hardcoded IP to an external source : environment variable, configuration file, database."
modifications[] = "Remove the hardcoded IP and ask for it at execution."
modifications[] = "Use a literal value for default messages in form.";

[example1]
project="OpenEMR"
file="wp-admin/includes/misc.php"
line="74"
code=" // FTP parameters that you must customize.  If you are not sending
 // then set $FTP_SERVER to an empty string.
 //
 $FTP_SERVER = "192.168.0.30";
 $FTP_USER   = "openemr";
 $FTP_PASS   = "secret";
 $FTP_DIR    = "";
";
explain="Although they are commented just above, the values provided here are suspicious."


[example2]
project="NextCloud"
file="config/config.sample.php"
line="1561"
code="/**
 * List of trusted proxy servers
 *
 * You may set this to an array containing a combination of
 * - IPv4 addresses, e.g. `192.168.2.123`
 * - IPv4 ranges in CIDR notation, e.g. `192.168.2.0/24`
 * - IPv6 addresses, e.g. `fd9e:21a7:a92c:2323::1`
 *
 * _(CIDR notation for IPv6 is currently work in progress and thus not
 * available as of yet)_
 *
 * When an incoming request's `REMOTE_ADDR` matches any of the IP addresses
 * specified here, it is assumed to be a proxy instead of a client. Thus, the
 * client IP will be read from the HTTP header specified in
 * `forwarded_for_headers` instead of from `REMOTE_ADDR`.
 *
 * So if you configure `trusted_proxies`, also consider setting
 * `forwarded_for_headers` which otherwise defaults to `HTTP_X_FORWARDED_FOR`
 * (the `X-Forwarded-For` header).
 *
 * Defaults to an empty array.
 */
'trusted_proxies' => array('203.0.113.45', '198.51.100.128', '192.168.2.0/24'),
";
explain="Although they are documented as empty array, 3 values are provided as examples. They do not responds, at the time of writing, but they may."

name = "Else If Versus Elseif";
description = "Always use elseif instead of else and if. 

\"The keyword elseif SHOULD be used instead of else if so that all control keywords look like single words\". Quoted from the PHP-FIG documentation

<?php

// Using elseif 
if ($a == 1) { doSomething(); }
elseif ($a == 2) { doSomethingElseIf(); }
else { doSomethingElse(); }

// Using else if 
if ($a == 1) { doSomething(); }
else if ($a == 2) { doSomethingElseIf(); }
else { doSomethingElse(); }

// Using else if, no {}
if ($a == 1)  doSomething(); 
else if ($a == 2) doSomethingElseIf(); 
else  doSomethingElse(); 

?>

See also `elseif/else if <http://php.net/manual/en/control-structures.elseif.php>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Merge else and if into elseif"
modifications[] = "Turn the else expression into a block, and have more than the second if in this block"
modifications[] = "Turn the if / else if / else into a switch structure"

[example1]
project="TeamPass"
file="items.php"
line="819"
code="            if ($field[3] === 'text') {
                echo '
                        <input type="text" id="edit_field_'.$field[0].'_'.$elem[0].'" class="edit_item_field input_text text ui-widget-content ui-corner-all" size="40" data-field-type="'.$field[3].'" data-field-masked="'.$field[4].'" data-field-is-mandatory="'.$field[5].'" data-template-id="'.$templateID.'">';
            } else if ($field[3] === 'textarea') {
                echo '
                        <textarea id="edit_field_'.$field[0].'_'.$elem[0].'" class="edit_item_field input_text text ui-widget-content ui-corner-all" colums="40" rows="5" data-field-type="'.$field["3"].'" data-field-masked="'.$field[4].'" data-field-is-mandatory="'.$field[5].'" data-template-id="'.$templateID.'"></textarea>';
            }
";
explain="This code could be turned into a switch() structure."

[example2]
project="Phpdocumentor"
file="src/phpDocumentor/Plugin/Core/Transformer/Writer/Xsl.php"
line="112"
code="        if ($transformation->getQuery() !== '') {
/** Long then block **/
        } else {
            if (substr($transformation->getArtifact(), 0, 1) == '$') {
                // not a file, it must become a variable!
                $variable_name = substr($transformation->getArtifact(), 1);
                $this->xsl_variables[$variable_name] = $proc->transformToXml($structure);
            } else {
                $relativeFileName = substr($artifact, strlen($transformation->getTransformer()->getTarget()) + 1);
                $proc->setParameter('', 'root', str_repeat('../', substr_count($relativeFileName, '/')));

                $this->writeToFile($artifact, $proc, $structure);
            }
        }";
explain="The first then block is long and complex. The else block, on the other hand, only contains a single if/then/else. Both conditions are distinct at first sight, so a if / elseif / then structure would be the best."

name = "Foreach Reference Is Not Modified";
description = "Foreach statement may loop using a reference, especially when the loop has to change values of the array it is looping on. 

In the spotted loop, reference are used but never modified. They may be removed.

<?php

$letters = range('a', 'z');

// $letter is not used here
foreach($letters as &$letter) {
    $alphabet .= $letter;
}

// $letter is actually used here
foreach($letters as &$letter) {
    $letter = strtoupper($letter);
}

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Remove the reference from the foreach"
modifications[] = "Actually modify the content of the reference"

[example1]
project="Dolibarr"
file="htdocs/product/reassort.php"
line="364"
code="
if($nb_warehouse>1) {
    foreach($warehouses_list as &$wh) {

        print '<td class="right">';
        print empty($product->stock_warehouse[$wh['id']]->real) ? '0' : $product->stock_warehouse[$wh['id']]->real;
        print '</td>';
    }
}
";
explain="$wh is an array, and is read for its index 'id', but it is not modified. The reference sign is too much."


[example2]
project="Vanilla"
file="applications/vanilla/models/class.discussionmodel.php"
line="944"
code="
foreach ($result as $key => &$discussion) {
    if (isset($this->_AnnouncementIDs)) {
        if (in_array($discussion->DiscussionID, $this->_AnnouncementIDs)) {
            unset($result[$key]);
            $unset = true;
        }
    } elseif ($discussion->Announce && $discussion->Dismissed == 0) {
        // Unset discussions that are announced and not dismissed
        unset($result[$key]);
        $unset = true;
    }
}
";
explain="$discussion is also an object : it doesn't need any reference to be modified. And, it is not modified, but only read."
name = "Mixed Concat And Interpolation";
description = "Mixed usage of concatenation and string interpolation is error prone. It is harder to read, and leads to overlooking the concatenation or the interpolation.

<?php

// Concatenation string
$a = $b . 'c' . $d;

// Interpolation strings
$a = "{$b}c{$d}";   // regular form
$a = "{$b}c$d";     // irregular form

// Mixed Concatenation and Interpolation string
$a = "{$b}c" . $d;
$a = $b . "c$d";
$a = $b . "c{$d}";

// Mixed Concatenation and Interpolation string with constant
$a = "{$b}c" . CONSTANT;

?>

Fixing this issue has no impact on the output. It makes code less error prone.

There are some situations where using concatenation are compulsory : when using a constant, calling a function, running a complex expression or make use of the escape sequence. You may also consider pushing the storing of such expression in a local variable.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.11.5";

modifications[] = "Only use one type of variable usage : either interpolation, or concatenation";

[example1]
project="SuiteCrm"
file="modules/AOW_Actions/actions/actionSendEmail.php"
line="89"
code="\"<input type='checkbox' id='aow_actions_param[\" . $line . \"][individual_email]' name='aow_actions_param[\" . $line . \"][individual_email]' value='1' $checked></td>\"";
explain="How long did it take to spot the hidden $checked variable in this long concatenation ? Using a consistent method of interpolation would help readability here."
[example2]
project="Edusoho"
file="src/AppBundle/Controller/Admin/SiteSettingController.php"
line="168"
code="\"{$this->container->getParameter('topxia.upload.public_url_path')}/\" . $parsed['path']";
explain="Calling a method from a property of an object is possible inside a string, though it is rare. Setting the method outside the string make it more readable."
name = "Global Inside Loop";
description = "The global keyword must be out of loops. It is evaluated each loop, slowing the whole process.

<?php

// Good idea, global is used once
global $total;
foreach($a as $b) {
    $total += $b;
}

// Bad idea, this is slow.
foreach($a as $b) {
    global $total;
    $total += $b;
}
?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Empty Try Catch";
description = "The code does try, then catch errors but do no act upon the error. 

<?php

try { 
    doSomething();
} catch (Throwable $e) {
    // ignore this
}

?>

At worst, the error should be logged, so as to measure the actual usage of the catch expression.

``catch( Exception $e)`` (PHP 5) or ``catch(Throwable $e)`` with empty catch block should be banned. They ignore any error and proceed as if nothing happened. At worst, the event should be logged for future analysis. 

See also `Empty Catch Clause <http://wiki.c2.com/?EmptyCatchClause>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Add some logging in the catch"
modifications[] = "Add a comment to mention why the catch is empty"
modifications[] = "Change the exception, chain it and throw again"

[example1]
project="LiveZilla"
file="livezilla/_lib/trdp/Zend/Mail/Protocol/Pop3.php"
line="237"
code="public function logout()
    {
        if (!$this->_socket) {
            return;
        }

        try {
            $this->request('QUIT');
        } catch (Zend_Mail_Protocol_Exception $e) {
            // ignore error - we're closing the socket anyway
        }

        fclose($this->_socket);
        $this->_socket = null;
    }
";
explain="This is an aptly commented empty try/catch : the emited exception is extra check for a Zend Mail Protocol Exception. Hopefully, the Zend_Mail_Protocol_Exception only covers a already-closed situation. Anyhow, this should be logged for later diagnostic. "
[example2]
project="Mautic"
file="app/bundles/ReportBundle/Model/ExportHandler.php"
line="66"
code="        /**
     * @param string $fileName
     */
    public function removeFile($fileName)
    {
        try {
            $path = $this->getPath($fileName);
            $this->filePathResolver->delete($path);
        } catch (FileIOException $e) {
        }
    }
";
explain="Removing a file : if the file is not 'deleted' by the method call, but raises an error, it is hidden. When file destruction is impossible because the file is already destroyed (or missing), this is well. If the file couldn't be destroyed because of missing writing privileges, hiding this error will have serious consequences. "
name = "error_reporting() With Integers";
description = "Using named constants with error_reporting is strongly encouraged to ensure compatibility for future versions. As error levels are added, the range of integers increases, so older integer-based error levels will not always behave as expected. (Adapted from the documentation).

<?php

// This is ready for PHP next version
error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE & ~E_WARNING);

// This is not ready for PHP next version
error_reporting(2047);

// -1 and 0 are omitted, as they will be valid even is constants changes.
error_reporting(-1);
error_reporting(0);

?>

See also `directive error_reporting <http://php.net/manual/en/errorfunc.configuration.php#ini.error-reporting>`_ and 
         `error_reporting <http://php.net/manual/en/function.error-reporting.php>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Always use the constant combinaison when configuring error_reporting or any PHP native function"

[example1]
project="SugarCrm"
file="modules/UpgradeWizard/silentUpgrade_step1.php"
line="436"
code="ini_set('error_reporting', 1);";
explain="This only displays E_ERROR, the highest level of error reporting. It should be checked, as it happens in the 'silentUpgrade' script. "
name = "Identical Conditions";
description = "These logical expressions contain members that are identical. 

This means those expressions may be simplified. 

<?php

// twice $a
if ($a || $b || $c || $a) {  }

// Hiding in parenthesis is bad
if (($a) ^ ($a)) {}

// expressions may be large
if ($a === 1 && 1 === $a) {}

?>";
clearphp = "";
severity = "S_CRITICAL";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Merge the two structures into one unique test"
modifications[] = "Add extra expressions between the two structures"
modifications[] = "Nest the structures, to show that different attempts are made"


[example1]
project="WordPress"
file="wp-admin/theme-editor.php"
line="247"
code="		<?php if ( ( $has_templates || $theme->parent() ) && $theme->parent() ) : ?>";
explain="The condition checks first if $has_templates or $theme->parent(), and one of the two is sufficient to be valid. Then, it checks again that $theme->parent() is activated with &&. This condition may be reduced by calling $theme->parent(), as $has_template is unused here."
[example2]
project="Dolibarr"
file="htdocs/core/lib/files.lib.php"
line="2052"
code="$modulepart == 'apercusupplier_invoice' || $modulepart == 'apercusupplier_invoice'";
explain="Better check twice that $modulepart is really 'apercusupplier_invoice'."
[example3]
project="Mautic"
file="app/bundles/CoreBundle/Views/Standard/list.html.php"
line="47"
code="!empty($permissions[$permissionBase . ':deleteown']) || !empty($permissions[$permissionBase . ':deleteown']) || !empty($permissions[$permissionBase . ':delete'])";
explain="When the line is long, it tends to be more and more difficult to review the values. Here, one of the two first is too many."
name = "Could Use array_fill_keys";
description = "array_fill_keys() is a native PHP function that creates an array from keys. It gets the list of keys, and a constant value to assign to each keys.

This is twice faster than doing the same with a loop.

Note that is possible to use an object as initializing value : every element of the final array will be pointing to the same value. And, also, using an object as initializing value means that the same object will be used for each key : the object will not be cloned for each value.

<?php

$array = range('a', 'z');

// Fast way to build the array
$b = array_fill_keys($a, 0);

// Fast way to build the array, but every element will be the same object
$b = array_fill_keys($a, new Stdclass());

// Slow way to build the array
foreach($array as $a) {
    $b[$a] = 0;
}

// Setting everything to null, slowly
$array = array_map(function() {}, $array);

?>

See also `array_fill_keys <http://php.net/array_fill_keys>`_.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "1.1.7";

modifications[] = "Use array_fill_keys()"

[example1]
project="ChurchCRM"
file="src/ManageEnvelopes.php"
line="107"
code="    foreach ($familyArray as $fam_ID => $fam_Data) {
        $envelopesByFamID[$fam_ID] = 0;
        $envelopesToWrite[$fam_ID] = 0;
    }
";
explain="There are two initialisations at the same time here : that should make two call to array_fill_keys()."
[example2]
project="PhpIPAM"
file="functions/scripts/merge_databases.php"
line="418"
code="    				$arr_new = array();
				foreach ($arr as $type=>$objects) {
					$arr_new[$type] = array();
					if(sizeof($objects)>0) {
						foreach($objects as $ok=>$object) {
							$arr_new[$type][] = $highest_ids_append[$type] + $object;
						}
					}
				}

";
explain="Even when the initialization is mixed with other operations, it is a good idea to extract it from the loop and give it to array_fill_keys(). "
name = "No Hardcoded Hash";
description = "Hash should never be hardcoded. 

Hashes may be MD5, SHA1, SHA512, Bcrypt or any other. Such values must be easily changed, for security reasons, and the source code is not the safest place to hide it. 

<?php

    // Those strings may be sha512 hashes. 
    // it is recomemdned to check if they are static or should be put into configuration
    $init512 = array( // initial values for SHA512
        '6a09e667f3bcc908', 'bb67ae8584caa73b', '3c6ef372fe94f82b', 'a54ff53a5f1d36f1', 
    );

    // strings which are obvious conversion are ignored 
    $decimal = intval('87878877', 12);
?>

See also `Salted Password Hashing - Doing it Right <https://crackstation.net/hashing-security.htm>`_ and 
         `Hash-Buster <https://github.com/s0md3v/Hash-Buster>`_.
";
clearphp = "";
severity = "S_CRITICAL";
timetofix = "T_SLOW";
exakatSince = "0.8.4";

modifications[] = "Put any hardcoded hash in a configuration file, a database or a environment variable. An external source.";

[example1]
project="shopware"
file="engine/Shopware/Models/Document/Data/OrderData.php"
line="254"
code="    '_userID' => '3',
    '_user' => new ArrayObject([
            'id' => '3',
            'password' => '$2y$10$GAGAC6.1kMRvN4RRcLrYleDx.EfWhHcW./cmoOQg11sjFUY73SO.C',
            'encoder' => 'bcrypt',
            'email' => 'demo@shopware.com',
            'customernumber' => '20005',
";
explain="This is actually a hashed hardcoded password. As the file explains, this is a demo order, for populating the database when in demo mode, so this is fine. We also learn that the password are securily sorted here. It may also be advised to avoid hardcoding this password, as any demo shop has the same user credential : it is the first to be tried when a demo installation is found. "
[example2]
project="SugarCrm"
file="SugarCE-Full-6.5.26/include/Smarty/Smarty.class.php"
line="460"
code="    /**
     * md5 checksum of the string 'Smarty'
     *
     * @var string
     */
    var $_smarty_md5           = 'f8d698aea36fcbead2b9d5359ffca76f';

";
explain="The MD5('Smarty') is hardcoded in the properties. This property is not used in the class, but in parts of the code, when a unique delimiter is needed. "
name = "Mbstring Third Arg";
description = "Some mbstring functions use the third argument for offset, not for encoding.

Those are the following functions : 

* mb_strrichr()
* mb_stripos()
* mb_strrpos()
* mb_strstr()
* mb_stristr()
* mb_strpos()
* mb_strripos()
* mb_strrchr()
* mb_strrichr()
* mb_substr()

<?php

// Display BC
echo mb_substr('ABC', 1 , 2, 'UTF8');

// Yields Warning: mb_substr() expects parameter 3 to be int, string given
// Display 0 (aka, substring from 0, for length (int) 'UTF8' => 0)
echo mb_substr('ABC', 1 ,'UTF8');

?>

See also mb_substr() manual pages.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.9";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Add a third argument"
modifications[] = "Use the default encoding (aka, omit both third AND fourth argument)"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Calltime Pass By Reference";
description = "PHP doesn't allow when a value is turned into a reference at functioncall, since PHP 5.4. 

Either the function use a reference in its signature, either the reference won't pass.

<?php

function foo($name) {
    $arg = ucfirst(strtolower($name));
    echo 'Hello '.$arg;
}

$a = 'name';
foo(&$a);

?>

";
clearphp = "";
phpversion = "5.4-";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Make the signature of the called method accept references"
modifications[] = "Remove the reference from the method call"
modifications[] = "Use an object instead of a scalar"name = "Concatenation Interpolation Consistence";
description = "Concatenations are done with the . operator or by interpolation inside a string. 

Interpolation is a clean way to write concatenation, though it gets messy with long dereferences or with constants. Concatenations are longer to write. 

The analyzed code has less than 10% of one of them : for consistency reasons, it is recommended to make them all the same. 

<?php

// be consistent
$a = "$b $c";
$d = "$b $e";
$e = "$b $e";
$d = "$b $f";
$f = "$b $z";
$h = "$b $e";
$y = "$b $e";
$d = "$b $x";
$j = "$b $c";
$d = "$b $g";
$d = "$b $h";

// Be consistent, always use the same. 
$z = $w.' '.$e;

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.11.6";name = "Double Instructions";
description = "Twice the same call in a row. This is worth a check.

<?php

// repetition of the same command, with the same effect each time. 
$a = array_merge($b, $c);
$a = array_merge($b, $c);

// false positive : commands are identical, but the effect is compounded 
$a = array_merge($a, $c);
$a = array_merge($a, $c);

?>
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Remove double work"
modifications[] = "Avoid repetition by using loops, variadic or quantifiers `(dirname($path, 2))`"
name = "PHP7 Dirname";
description = "With PHP 7, dirname() has a second argument that represents the number of parent folder to follow. This prevent us from using nested dirname() calls to reach an grand-parent direct.

<?php
$path = '/a/b/c/d/e/f';

// PHP 7 syntax
$threeFoldersUp = dirname($path, 3);

// PHP 5 syntax
$threeFoldersUp = dirname(dirname(dirname($path)));

?>

See also `dirname <http://php.net/dirname>`_.
 ";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Use dirname()'s second argument"

[example1]
project="OpenConf"
file="include.php"
line="61"
code="$OC_basepath = dirname(dirname($_SERVER['PHP_SELF']));";
explain="Since PHP 7.0, dirname( , 2); does the job."
[example2]
project="MediaWiki"
file="includes/installer/Installer.php"
line="1173"
code="	protected function envPrepPath() {
		global $IP;
		$IP = dirname( dirname( __DIR__ ) );
		$this->setVar( 'IP', $IP );
	}
";
explain="Since PHP 7.0, dirname( , 2); does the job."
name = "No Append On Source";
description = "Do not append new elements to an array in a foreach loop. Since PHP 7.0, the array is still used as a source, and will be augmented, and used again. 

<?php

// Relying on the initial copy
$a = [1];
$initial = $a;
foreach($initial as $v) {
    $a[] = $v + 1;
}

// Keep new results aside
$a = [1];
$tmp = [];
foreach($a as $v) {
    $tmp[] = $v + 1;
}
$a = array_merge($a, $tmp);
unset($tmp);

// Example, courtesy of Frederic Bouchery
// This is an infinite loop
$a = [1];
foreach($a as $v) {
    $a[] = $v + 1;
}

?>

Thanks to `Frederic Bouchery <https://twitter.com/FredBouchery/>`_ for the reminder.

See also `foreach <http://php.net/manual/en/control-structures.foreach.php>`_ and 
         `What will this code return? #PHP <https://twitter.com/FredBouchery/status/1135480412703211520>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.8.2";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Use a copy of the source, to avoid modifying it during the loop"
modifications[] = "Store the new values in a separate storage"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Check All Types";
description = "When checking for time, avoid using else. Mention explicitly all tested type, and raise an exception when reaching else.

PHP has a short list of scalar types : null, boolean, integer, real, strings, object, resource and array. When a variable is not holding one the the type, then it may be of any other type. 

Most of the time, when using a simple is_string() / else test, this is relying on the conception of the code. By construction, the arguments may be one of two types : array or string. 

What happens often is that in case of failure in the code (database not working, another class not checking its results), a third type is pushed to the structure, and it ends up breaking the execution. 

The safe way is to check the various types all the time, and use the default case (here, the else) to throw exception() or test an assertion and handle the special case.

<?php

// hasty version
if (is_array($argument)) {
    $out = $argument;
} else {
    // Here, $argument is NOT an array. What if it is an object ? or a NULL ? 
    $out = array($argument);
}

// Safe type checking : do not assume that 'not an array' means that it is the other expected type.
if (is_array($argument)) {
    $out = $argument;
} elseif (is_string($argument)) {
    $out = array($argument);
} else {
    assert(false, '$argument is not an array nor a string, as expected!');
}

?>

Using is_callable(), is_iterable() with this structure is fine : when variable is callable or not, while a variable is an integer or else. 

Using a type test without else is also accepted here. This is a special treatment for this test, and all others are ignored. This aspect may vary depending on situations and projects.

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.10.6";

modifications[] = "Include a default case to handle all unknown situations"
modifications[] = "Include and process explicit types as much as possible"

[example1]
project="Zend-Config"
file="src/Writer/Ini.php"
line="122"
code="        foreach ($config as $key => $value) {
            $group = array_merge($parents, [$key]);

            if (is_array($value)) {
                $iniString .= $this->addBranch($value, $group);
            } else {
                $iniString .= implode($this->nestSeparator, $group)
                           .  ' = '
                           .  $this->prepareValue($value)
                           .  ""\n"";
            }
        }
";
explain="$value must be an array or a string here. "

[example2]
project="Vanilla"
file="library/core/class.form.php"
line="2488"
code="    public function formDataSet() {
        if (is_null($this->_FormValues)) {
            $this->formValues();
        }

        $result = [[]];
        foreach ($this->_FormValues as $key => $value) {

";
explain="When $this->_FormValues is not null, then it is an array or an object, as it may be used immediately with foreach(). A check with is_array() would be a stronger option here."

name = "Find Key Directly";
description = "No need for a foreach() to search for a key. 

PHP offers two solutions : array_search() and array_keys(). Array_search() finds the first key that fits a value, and array_keys returns all the keys. 

<?php

$array = ['a', 'b', 'c', 'd', 'e'];

print array_search($array, 'c'); 
// print 2 => 'c';

print_r(array_keys($array, 'c')); 
// print 2 => 'c';

?>

See also `array_search <http://php.net/array_search>`_ and `array_keys <http://php.net/array_keys>`_.

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "1.1.4";name = "Iffectations";
description = "Affectations that appears in a condition. 

Iffectations are a way to do both a test and an affectations. 
They may also be typos, such as if ($x = 3) { ... }, leading to a constant condition. 

<?php

// an iffectation : assignation in a If condition
if($connexion = mysql_connect($host, $user, $pass)) {
    $res = mysql_query($connexion, $query);
}

// Iffectation may happen in while too.
while($row = mysql_fetch($res)) {
    $store[] = $row;
}

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Error Messages";
description = "Error message when an error is reported in the code. Those messages will be read by whoever is triggering the error, and it has to be helpful. 

It is a good exercise to read the messages out of context, and try to understand what is about.

<?php

// Not so helpful messages
die('Here be monsters');
exit('An error happened');
throw new Exception('Exception thrown at runtime');

?>

Error messages are spotted via die, exit or throw. ";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "curl_version() Has No Argument";
description = "curl_version() used to accept CURLVERSION_NOW as argument. Since PHP 7.4, it is a function without arguments.

<?php

// Compatible syntax
$details = curl_version(CURLVERSION_NOW);

// New PHP 7.4 syntax
$details = curl_version();

?>

See also `curl_version <https://www.php.net/manual/en/function.curl-version.php>`_.";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.8.4";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Drop all arguments from curl_version() calls."

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "openssl_random_pseudo_byte() Second Argument";
description = "openssl_random_pseudo_byte() uses exceptions to signal an error. Since PHP 7.4, there is no need to use the second argument.

On the other hand, it is important to catch the exception that openssl_random_pseudo_byte() may emit.

<?php
    // PHP 7.4 way to check on random number generation
    try {
        $bytes = openssl_random_pseudo_bytes($i);
    } catch(\Exception $e) {
        die("Error while loading random number");
    }

    // Old way to check on random number generation
    $bytes = openssl_random_pseudo_bytes($i, $cstrong);
    if ($cstrong === false) {
        die("Error while loading random number");
    }
?>

See also `openssl_random_pseudo_byte <https://www.php.net/openssl_random_pseudo_bytes>`_ and 
         `PHP RFC: Improve openssl_random_pseudo_bytes() <https://wiki.php.net/rfc/improve-openssl-random-pseudo-bytes>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.3";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Skip the second argument, add a try/catch around the call to openssl_random_pseudo_bytes()"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "No Hardcoded Port";
description = "When connecting to a remove server, port is an important information. It is recommended to make this configurable (with constant or configuration), to as to be able to change this value without changing the code.

<?php

    // Both configurable IP and hostname
    $connection = ssh2_connect($_ENV['SSH_HOST'], $_ENV['SSH_PORT'], $methods, $callbacks);
    
    // Both hardcoded IP and hostname
    $connection = ssh2_connect('shell.example.com', 22, $methods, $callbacks);

    if (!$connection) die('Connection failed');
?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Move the port to a configuration file, an environment variable"

[example1]
project="WordPress"
file="wp-admin/includes/misc.php"
line="74"
code="$markerdata = explode( \"\n\", implode( '', file( $filename ) ) );";
explain="This code actually loads the file, join it, then split it again. file() would be sufficient. "
name = "Drop Else After Return";
description = "Avoid else clause when the then clause returns, but not the else. And vice-versa.

This way, the else block disappears, and is now the main sequence of the function. 

This is also true if else has a return, and then not. When doing so, don't forget to reverse the condition. 

<?php

// drop the else
if ($a) {
    return $a;
} else {
    doSomething();
}

// drop the then
if ($b) {
    doSomething();
} else {
    return $a;
}

// return in else and then
if ($a3) {
    return $a;
} else {
    $b = doSomething();
    return $b;
}

?>";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.6";

modifications[] = "Remove the else clause and move its code to the main part of the method"name = "Too Long A Block";
description = "The loop is operating on a block that is too long. 

This analysis is applied to loops (for, foreach, while, do..while) and if/then/else/elseif structures.

Then length of a block is managed with the ``longBlock``parameter. By default, it is 200 lines, from beginning to the end. Comments are taken into account.

<?php

$i = 0;
do {
    // 200 lines of PHP code
    
    ++$i;
} while($i < 100);

?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.1.2";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Move the code of the block to an method or a function"
modifications[] = "Move part of the code of the block to methods or functions"
modifications[] = "Extract repeated patterns and use them"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

; Optional parameters
[parameter1]
name="longBlock";
default=200;
type="integer";
description="Size of a block for it to be too long. A block is commanded by a for, foreach, while, do...while, if/then else structure.";
name = "Conditional Structures";
description = "Structures that are defined, but only executed conditionally.

<?php

if (!function_exists('array_column')) {
    function array_column($a) {
        // some PHP
    }
}

if (!class_exists('foo')) {
    class foo {
    
    }
}

?>
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "No Direct Usage";
description = "The results of the following functions shouldn't be used directly, but checked first. 

For example, glob() returns an array, unless some error happens, in which case it returns a boolean (false). In such case, however rare it is, plugging glob() directly in a foreach() loops will yield errors.

<?php
    // Used without check : 
    foreach(glob('.') as $file) { /* do Something */ }.
    
    // Used without check : 
    $files = glob('.');
    if (!is_array($files)) {
        foreach($files as $file) { /* do Something */ }.
    }
?>
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";

modifications[] = "Check the return of the function before using it, in particular for false, or array()."


[example1]
project="Edusoho"
file="edusoho/src/AppBundle/Controller/Admin/FinanceSettingController.php"
line="107"
code="        array_map('unlink', glob($dir.'/MP_verify_*.txt'));";
explain="Glob() returns false, in case of error. It returns an empty array in case everything is fine, but nothing was found. In case of error, array_map() will stop the script."

[example2]
project="XOOPS"
file="htdocs/Frameworks/moduleclasses/moduleadmin/moduleadmin.php"
line="585"
code="            $file = XOOPS_ROOT_PATH . "/modules/{$module_dir}/docs/changelog.txt";
            if ( is_readable( $file ) ) {
                $ret .= implode( '<br>', file( $file ) ) . "\n";
            }
";
explain="Although the file is readable, file() may return false in case of failure. On the other hand, implode doesn't accept boolean values."
name = "Buried Assignation";
description = "Those assignations are buried in the code, and placed in unexpected situations. 

They are difficult to spot, and may be confusing. It is advised to place them in a more visible place.

<?php

// $b may be assigned before processing $a
$a = $c && ($b = 2);

// Display property p immeiately, but also, keeps the object for later
echo ($o = new x)->p;

// legit syntax, but the double assignation is not obvious.
for($i = 2, $j = 3; $j < 10; $j++) {
    
}
?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";

modifications[] = "Extract the assignation and set it on its own line, prior to the current expression."
modifications[] = "Check if the local variable is necessary"

[example1]
project=XOOPS
file=htdocs/image.php
line=170
code="    if (0 < ($radius = $radii[2] * $q)) { // left bottom
        imagearc($workingImage, $radius - 1, $workingHeight - $radius, $radius * 2, $radius * 2, 90, 180, $alphaColor);
        imagefilltoborder($workingImage, 0, $workingHeight - 1, $alphaColor, $alphaColor);
    }
";
explain="Classic iffectation : the condition also collects the needed value to process the drawing. This is very common in PHP, and the Yoda condition, with its constant on the left, shows that extra steps were taken to strengthen that piece of code.  "
[example2]
project=Mautic
file=app/bundles/CoreBundle/Controller/ThemeController.php
line=47
code="        $form        = $this->get('form.factory')->create('theme_upload', [], ['action' => $action]);

        if ($this->request->getMethod() == 'POST') {
            if (isset($form) && !$cancelled = $this->isFormCancelled($form)) {
                if ($this->isFormValid($form)) {
                    $fileData = $form['file']->getData();

";
explain="The setting of the variable $cancelled is fairly hidden here, with its extra operator !. The operator is here for the condition, as $cancelled needs the 'cancellation' state, while the condition needs the contrary. Note also that isset() could be moved out of this condition, and made the result easier to read."
name = "Always Positive Comparison";
description = "Some PHP native functions, such as count(), strlen(), or abs() only returns positive or null values. 

When comparing them to 0, the following expressions are always true and should be avoided. 

<?php

$a = [1, 2, 3];

var_dump(count($a) >= 0);
var_dump(count($a) < 0); 

?>
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Compare count() to non-zero values"
modifications[] = "Use empty()"

[example1]
project="Magento"
file="app/code/core/Mage/Dataflow/Model/Profile.php"
line="85"
code="        if (strlen($actionsXML) < 0 &&
        @simplexml_load_string('<data>' . $actionsXML . '</data>', null, LIBXML_NOERROR) === false) {
            Mage::throwException(Mage::helper('dataflow')->__(\"Actions XML is not valid.\"));
        }
";
explain="strlen(($actiosXML) will never be negative, and hence, is always false. This exception is never thrown. "

name = "Mail Usage";
description = "Report usage of mail from PHP. 

The analysis is based on mail() function and various classes used to send mail.

<?php
// The message
$message = "Line 1\r\nLine 2\r\nLine 3";

// In case any of our lines are larger than 70 characters, we should use wordwrap()
$message = wordwrap($message, 70, "\r\n");

// Send
mail('caffeinated@example.com', 'My Subject', $message);
?>

See also `mail <http://php.net/mail>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Long Arguments";
description = "Long arguments should be put in variable, to preserve readability. 

When literal arguments are too long, they break the hosting structure by moving the next argument too far on the right. Whenever possible, long arguments should be set in a local variable to keep the readability.

<?php

// Now the call to foo() is easier to read.
$reallyBigNumber = <<<BIGNUMBER
123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
BIGNUMBER
foo($reallyBigNumber, 2, '12345678901234567890123456789012345678901234567890');

// where are the next arguments ? 
foo('123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890', 2, '123456789012345678901234567890123456789012345678901234567890');

// This is still difficult to read
foo(<<<BIGNUMBER
123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
BIGNUMBER
, 2, '123456789012345678901234567890123456789012345678901234567890');

?>

Literal strings and heredoc strings, including variables, that are over 50 chars longs are reported here. 

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.9.7";
modifications[] = "Put the long arguments in a separate variable, and use the variable in the second expression, reducing its total length ";
[parameter1]
name="codeTooLong";
default="100";
type="integer";
description="Minimum size of a functioncall or a methodcall to be considered too long.";
[example1]
project="Cleverstyle"
file="core/drivers/DB/MySQLi.php"
line="40"
code="$this->instance->query(\"SET SESSION sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'\")";
explain="This query is not complex, but its length tend to push the end out of the view in the IDE. It could be rewritten as a variable, on the previous line, with some formatting. The same formatting would help without the variable too, yet, mixing the SQL syntax with the PHP methodcall adds a layer of confusion. "
[example2]
project="Contao"
file="core-bundle/src/Resources/contao/widgets/CheckBoxWizard.php"
line="145"
code="sprintf('<span><input type=\"checkbox\" name=\"%s\" id=\"opt_%s\" class=\"tl_checkbox\" value=\"%s\"%s%s onfocus=\"Backend.getScrollOffset()\"> %s<label for=\"opt_%s\">%s</label></span>', $this->strName . ($this->multiple ? '[]' : ''), $this->strId . '_' . $i, ($this->multiple ? \StringUtil::specialchars($arrOption['value']) : 1), (((\is_array($this->varValue) && \in_array($arrOption['value'], $this->varValue)) || $this->varValue == $arrOption['value']) ? ' checked=\"checked\"' : ''), $this->getAttributes( ), $strButtons, $this->strId . '_' . $i, $arrOption['label'])";
explain="This one-liner includes 9 members and 6 variables : some are formatted by sprintf, some are directly concatenated in the string. Breaking this into two lines improves readbility and code review."
name = "Heredoc Delimiter";
description = "Heredoc and Nowdoc expressions may use a variety of delimiters. 

There seems to be a standard delimiter in the code, and some exceptions : one or several forms are dominant (> 90%), while the others are rare. 

The analyzed code has less than 10% of the rare delimiters. For consistency reasons, it is recommended to make them all the same. 

Generally, one or two delimiters are used, with generic value. It is recommended to use a humanly readable delimiter : SQL, HTML, XML, GREMLIN, etc. This helps readability in the code.

<?php

echo <<<SQL
SELECT * FROM table1;
SQL;

echo <<<SQL
SELECT * FROM table2;
SQL;

echo <<<SQL
SELECT * FROM table3;
SQL;

echo <<<SQL
SELECT * FROM table4;
SQL;

echo <<<SQL
SELECT * FROM table5;
SQL;

echo <<<SQL
SELECT * FROM table11;
SQL;

echo <<<SQL
SELECT * FROM table12;
SQL;

echo <<<SQL
SELECT * FROM table13;
SQL;

// Nowdoc
echo <<<'SQL'
SELECT * FROM table14;
SQL;

echo <<<SQL
SELECT * FROM table15;
SQL;


echo <<<HEREDOC
SELECT * FROM table215;
HEREDOC;

?>";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.12.0";name = "crypt() Without Salt";
description = "PHP requires a salt when calling crypt(). 5.5 and previous versions didn't require it. Salt is a simple string, that is usually only known by the application.

According to the manual : The salt parameter is optional. However, crypt() creates a weak hash without the salt. PHP 5.6 or later raise an E_NOTICE error without it. Make sure to specify a strong enough salt for better security.

<?php
// Set the password
$password = 'mypassword';

// salted crypt usage (always valid)
$hash = crypt($password, '123salt');

// Get the hash, letting the salt be automatically generated
// This generates a notice after PHP 5.6
$hash = crypt($password);

?>

See also `crypt <http://www.php.net/crypt>`_.
";
clearphp = "";
phpversion = "5.6-";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Always provide the second argument"name = "Double Assignation";
description = "This happens when a container (variable, property, array index) is assigned with values twice in a row. One of them is probably a debug instruction, that was forgotten. 

<?php

// Normal assignation
$a = 1;

// Double assignation
$b = 2;
$b = 3;

?>
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Print And Die";
description = "Die() also prints. 

When stopping a script with die(), it is possible to provide a message as first argument, that will be displayed at execution. There is no need to make a specific call to print or echo.

<?php

//  die may do both print and die.
echo 'Error message';
die();

//  exit may do both print and die.
print 'Error message';
exit;

//  exit cannot print integers only : they will be used as status report to the system.
print 'Error message';
exit 1;

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
name = "strip_tags Skips Closed Tag";
description = "strip_tags() skips non-self closing tags. This means that tags such as ``<br />`` will be ignored from the 2nd argument of the function.

<?php

$input = 'a<br />';

// Displays 'a' and clean the tag
echo strip_tags($input, '<br>');

// Displays 'a<br />' and skips the allowed tag
echo strip_tags($input, '<br/>');

?>

See also `strip_tags <https://www.php.net/manual/en/function.strip-tags.php>`_.";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.3";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Do not use self-closing tags in the 2nd parameter"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Repeated print()";
description = "Always merge several print or echo in one call.

It is recommended to use echo with multiple arguments, or a concatenation with print, instead of multiple calls to print echo, when outputting several blob of text.

<?php

//Write : 
  echo 'a', $b, 'c';
  print 'a' . $b . 'c';

//Don't write :  
  print 'a';
  print $b;
  print 'c';
?>  

";
clearphp = "no-repeated-print";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
modifications[] = "Merge all prints into one echo call, separating arguments by commas."
modifications[] = "Collect all values in one variable, and do only one call to print or echo."
[example1]
project="Edusoho"
file="app/check.php"
line="71"
code="echo PHP_EOL;
echo_style('title', 'Note');
echo '  The command console could use a different php.ini file'.PHP_EOL;
echo_style('title', '~~~~');
echo '  than the one used with your web server. To be on the'.PHP_EOL;
echo '      safe side, please check the requirements from your web'.PHP_EOL;
echo '      server using the ';
echo_style('yellow', 'web/config.php');
echo ' script.'.PHP_EOL;
echo PHP_EOL;
";
explain="All echo may be merged into one : do this by turning the ; and . into ',', and removing the superfluous echo. Also, echo_style may be turned into a non-display function, returning the build style, rather than echoing it to the output."
[example2]
project="HuMo-Gen"
file="menu.php"
line="71"
code="			print '<input type="text" name="quicksearch" value="'.$quicksearch.'" size="10" '.$pattern.' title="'.__('Minimum:').$min_chars.__('characters').'">';
			print ' <input type="submit" value="'.__('Search').'">';
		print "</form>";

";
explain="Simply calling print once is better than three times. Here too, echo usage would reduce the amount of memory allocation due to concatenation prior display."
name = "eval() Without Try";
description = "``eval()`` emits a ``ParseError`` exception with PHP 7 and later. Catching this exception is the recommended way to handle errors when using the ``eval()`` function.

<?php

$code = 'This is no PHP code.';

//PHP 5 style
eval($code);
// Ends up with a Fatal error, at execution time

//PHP 7 style
try {
    eval($code);
} catch (ParseError $e) {
    cleanUpAfterEval();
}

?>

Note that it will catch situations where ``eval()`` is provided with code that can't be used, but it will not catch security problems. Avoid using ``eval()`` with incoming data.
";
clearphp = "";
phpversion = "7.0+";
severity = "S_CRITICAL";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Always add a try/catch block around eval() call"

[example1]
project="FuelCMS"
file="fuel/modules/fuel/controllers/Blocks.php"
line="268"
code="@eval($_name_var_eval)";
explain="The @ will prevent any error, while the try/catch allows the processing of certain types of error, namely the Fatal ones. "


[example2]
project="ExpressionEngine"
file="system/ee/EllisLab/Addons/member/mod.member_memberlist.php"
line="637"
code="					elseif (isset($fields[$val['3']]))
					{
						if (array_key_exists('m_field_id_'.$fields[$val['3']], $row))
						{
							$v = $row['m_field_id_'.$fields[$val['3']]];

							$lcond = str_replace($val['3'], \"\$v\", $lcond);
							$cond = $lcond.' '.$rcond;
							$cond = str_replace(\"\|\", \"|\", $cond);

							eval(\"\$result = \".$cond.\";\");
";
explain="$cond is build from values extracted from the $fields array. Although it is probably reasonably safe, a try/catch here will collect any unexpected situation cleaningly."
name = "Common Alternatives";
description = "In the following conditional structures, expressions were found that are common to both 'then' and 'else'. It may be interesting, though not always possible, to put them both out of the conditional, and reduce line count. 

<?php
if ($c == 5) {
    $b = strtolower($b[2]); 
    $a++;
} else {
    $b = strtolower($b[2]); 
    $b++;
}
?>

may be rewritten in : 

<?php

$b = strtolower($b[2]); 
if ($c == 5) {
    $a++;
} else {
    $b++;
}

?>

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Collect common expressions, and move them before of after the if/then expression."
modifications[] = "Move a prefix and suffixes to a third-party method"

[example1]
project="Dolibarr"
file="htdocs/admin/facture.php"
line="531"
code="	                            // Active
	                            if (in_array($name, $def))
	                            {
	                            	print '<td class=\"center\">'.\"\n\";
	                            	print '<a href=\"'.$_SERVER[\"PHP_SELF\"].'?action=del&value='.$name.'\">';
	                            	print img_picto($langs->trans(\"Enabled\"), 'switch_on');
	                            	print '</a>';
	                            	print '</td>';
	                            }
	                            else
	                            {
	                                print '<td class="center\">'.\"\n\";
	                                print '<a href=\"'.$_SERVER[\"PHP_SELF\"].'?action=set&value='.$name.'&scan_dir='.$module->scandir.'&label='.urlencode($module->name).'\">'.img_picto($langs->trans(\"SetAsDefault\"), 'switch_off').'</a>';
	                                print \"</td>\";
	                            }
";
explain="The opening an closing tag couldd be moved outside the if condition : they are compulsory in both cases."

[example2]
project="NextCloud"
file="apps/encryption/lib/KeyManager.php"
line="436"
code="		if ($this->util->isMasterKeyEnabled()) {
			$uid = $this->getMasterKeyId();
			$shareKey = $this->getShareKey($path, $uid);
			if ($publicAccess) {
				$privateKey = $this->getSystemPrivateKey($uid);
				$privateKey = $this->crypt->decryptPrivateKey($privateKey, $this->getMasterKeyPassword(), $uid);
			} else {
				// when logged in, the master key is already decrypted in the session
				$privateKey = $this->session->getPrivateKey();
			}
		} else if ($publicAccess) {
			// use public share key for public links
			$uid = $this->getPublicShareKeyId();
			$shareKey = $this->getShareKey($path, $uid);
			$privateKey = $this->keyStorage->getSystemUserKey($this->publicShareKeyId . '.privateKey', Encryption::ID);
			$privateKey = $this->crypt->decryptPrivateKey($privateKey);
		} else {
			$shareKey = $this->getShareKey($path, $uid);
			$privateKey = $this->session->getPrivateKey();
		}
";
explain="`$shareKey = $this->getShareKey($path, $uid);` is common to all three alternatives. In fact, `$uid = $this->getPublicShareKeyId();` is not common, and that shoul de reviewed, as `$uid` will be undefined. "

name = "Missing Parenthesis";
description = "Add parenthesis to those expression to prevent bugs. 

<?php

// Missing some parenthesis!!
if (!$a instanceof Stdclass) {
    print "Not\n";
} else {
    print "Is\n";
}

// Could this addition be actually
$c = -$a + $b;

// This one ? 
$c = -($a + $b);

?>

See also `Operators Precedence <http://php.net/manual/en/language.operators.precedence.php>`_.

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "1.2.6";name = "Sequences In For";
description = "For() instructions allows several instructions in each of its parameters. Then, the instruction separator is comma ',', not semi-colon, which is used for separating the 3 arguments.

<?php
   for ($a = 0, $b = 0; $a < 10, $b < 20; $a++, $b += 3) {
    // For loop
   }
?>

This loop will simultaneously increment $a and $b. It will stop only when the last of the central sequence reach a value of false : here, when $b reach 20 and $a will be 6. 

This structure is often unknown, and makes the for instruction quite difficult to read. It is also easy to oversee the multiples instructions, and omit one of them.
It is recommended not to use it.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Empty Instructions";
description = "Empty instructions are part of the code that have no instructions. 

This may be trailing semi-colon or empty blocks for if-then structures.

Comments that explains the reason of the situation are not taken into account.

<?php
    $condition = 3;;;;
    if ($condition) { } 
?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Remove the empty lines";
modifications[] = "Fill the empty lines";

[example1]
project="Zurmo"
file="app/protected/core/widgets/MentionInput.php"
line="84"
code="        public function run()
        {
            $id = $this->getId();
            $additionalSettingsJs = "showAvatars: " . var_export($this->showAvatars, true) . ",";
            if ($this->classes)
            {
                $additionalSettingsJs .=  $this->classes . ',';
            };
            if ($this->templates)
            {
                $additionalSettingsJs .=  $this->templates;
            };";
explain="There is no need for a semi-colon after a if/then structure."
[example2]
project="ThinkPHP"
file="ThinkPHP/Library/Vendor/Smarty/sysplugins/smarty_internal_configfileparser.php"
line="83"
code="class TPC_yyStackEntry
{
    public $stateno;       /* The state-number */
    public $major;         /* The major token value.  This is the code
                     ** number for the token at this stack level */
    public $minor; /* The user-supplied minor token value.  This
                     ** is the value of the token  */
};";
explain="There is no need for a semi-colon after a class structure, unless it is an anonymous class."
name = "Should Make Ternary";
description = "Ternary operators are the best when assigning values to a variable.

This way, they are less verbose, compatible with assignation and easier to read.

<?php
    // verbose if then structure
    if ($a == 3) {
        $b = 2;
    } else {
        $b = 3;
    }

    // compact ternary call
    $b = ($a == 3) ? 2 : 3;

    // verbose if then structure
    // Works with short assignations and simple expressions
    if ($a != 3) {
        $b += 2 - $a * 4;
    } else {
        $b += 3;
    }

    // compact ternary call
    $b += ($a != 3) ? 2 - $a * 4 : 3;

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.5";
name = "Static Loop";
description = "Static loop may be preprocessed.

It looks like the following loops are static : the same code is executed each time, without taking into account loop variables.

<?php

// Static loop
$total = 0;
for($i = 0; $i < 10; $i++) {
    $total += $i;
}

// The above loop may be replaced by (with some math help)
$total = 10 * (10  + 1) / 2;

// Non-Static loop (the loop depends on the size of the array)
$n = count($array);
for($i = 0; $i < $n; $i++) {
    $total += $i;
}

?>

It is possible to create loops that don't use any blind variables, though this is fairly rare. In particular, calling a method may update an internal pointer, like next() or ``SimpleXMLIterator::next()``. 

It is recommended to turn a static loop into an expression that avoid the loop. For example, replacing the sum of all integers by the ``function $n * ($n + 1) / 2``, or using array_sum().

This analysis doesn't detect usage of variables with ``compact``.

 ";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
modifications[] = "Precalculate the result of that loop and removes it altogether";
modifications[] = "Check that the loop is not missing a blind variable usage";
modifications[] = "Replace the usage of a loop with a native PHP call : for example, with str_repeat(). Although the loop is still here, it usually reflects better the intend.";
name = "Foreach With list()";
description = "Foreach loops have the ability to use list as blind variables. This syntax assign directly array elements to various variables. 

PHP 5.5 introduced the usage of list in foreach() loops. Until PHP 7.1, it was not possible to use non-numerical arrays as list() wouldn't support string-indexed arrays.

<?php
    // PHP 5.5 and later, with numerically-indexed arrays
    foreach($array as list($a, $b)) { 
        // do something 
    }


    // PHP 7.1 and later, with arrays
    foreach($array as list('col1' => $a, 'col3' => $b)) { // 'col2 is ignored'
        // do something 
    }
?>

Previously, it was compulsory to extract() the data from the blind array : 

<?php
    foreach($array as $c) { 
        list($a, $b) = $c;
        // do something 
    }
?>

See also `The list function & practical uses of array destructuring in PHP <https://sebastiandedeyne.com/the-list-function-and-practical-uses-of-array-destructuring-in-php>`_.

";
clearphp = "";
phpversion = "5.5+";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Missing New ?";
description = "This functioncall looks like a class instantiation that is missing the new keyword.

Any function definition was found for that function, but a class with that name was. New is probably missing.

<?php

// Functioncall
$a = foo();

// Class definition
class foo {}
// Function definition
function foo {}


// Functioncall
$a = BAR;

// Function definition
class bar {}
// Constant definition
const BAR = 1;


?>

";
clearphp = "";
severity = "S_CRITICAL";
timetofix = "T_INSTANT";
exakatSince = "1.0.4";
;
modifications[] = "Add the new";
modifications[] = "Rename the class to distinguish it from the function";
modifications[] = "Rename the function to distinguish it from the class";name = "Could Use Compact";
description = "Compact() turns a group of variables into an array. It may be used to simplify expressions. 

<?php

$a = 1;
$b = 2;

// Compact call
$array = compact('a', 'b');

$array === [1, 2];

// Detailing all the keys and their value
$array = ['a' => $a, 'b' => $b];

?>

Note that compact accepts any string, and any undefined variable is not set, without a warning.

See also `compact <http://www.php.net/compact>`_.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "1.1.6";

modifications[] = "Replace the array() call with a compact() call.";


[example1]
project="WordPress"
file="wp-admin/includes/misc.php"
line="74"
code="$markerdata = explode( \"\n\", implode( '', file( $filename ) ) );";
explain="This code actually loads the file, join it, then split it again. file() would be sufficient. "
name = "Implicit Global";
description = "Global variables, that are used in local scope with global keyword, but are not declared as global in the global scope. They may be mistaken with distinct values, while, in PHP, variables in the global scope are truly global.

<?php

// This is implicitely global
$implicitGlobal = 1;

global $explicitGlobal;
$explicitGlobal = 2;

foo();
echo $explicitFunctionGlobal;

function foo() {
    // This global is needed, but not the one in the global space
    global $implicitGlobal, $explicitGlobal, $explicitFunctionGlobal;
    
    // This won't be a global, as it must be 'global' in a function scope
    $notImplicitGlobal = 3;
    $explicitFunctionGlobal = 3;
}

?>
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "One If Is Sufficient";
description = "Nested conditions may be written another way, and reduce the amount of code.

Nested conditions are equivalent to a ``&&`` condition. As such, they may be switched. When one of the condition has no explicit else, then it is lighter to write it as the first condition. This way, it is written once, and not repeated.

<?php

// Less conditions are written here.
  	if($b == 2) {
        if($a == 1) {
    		++$c;
    	}
        else {
    		++$d;
    	}
    }

// ($b == 2) is double here
    if($a == 1) {
    	if($b == 2) {
    		++$c;
    	}
    }
    else {
    	if($b == 2) {
    		++$d;
    	}
    }
?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "1.2.6";
modifications[] = "Switch the if...then conditions, to reduce the amount of conditions to read. "
[example1]
project="Tikiwiki"
file="lib/wiki-plugins/wikiplugin_trade.php"
line="152"
code="	if ($params['wanted'] == 'n') {
		if (empty($params['inputtitle'])) {
			$params['inputtitle'] = 'Payment of %0 %1 from user %2 to %3';
		}
	} else {
		if (empty($params['inputtitle'])) {
			$params['inputtitle'] = 'Request payment of %0 %1 to user %2 from %3';
		}
	}
";
explain="empty($params['inputtitle']) should have priority over $params['wanted'] == 'n'."
name = "Return void ";
description = "Return returns null as default value. It is recommended to mention explicitly 'null' or find a meaningful return such as a boolean or a default value instead.

<?php

function foo(&$a) {
    ++$a;
    // No explicit return : it returns void
}

function bar(&$a) {
    ++$a;
    
    // Explicit return : it returns null
    return null
}

?>

See also `Void functions <http://php.net/manual/en/migration71.new-features.php#migration71.new-features.void-functions>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
name = "No Need For Else";
description = "Else is not needed when the Then ends with a break. A break may be the following keywords : break, continue, return, goto. Any of these send the execution somewhere in the code. The else block is then executed as the main sequence, only if the condition fails.

<?php

function foo() {
    // Else may be in the main sequence.
    if ($a1) {
        return $a1;
    } else {
        $a++;
    }

    // Same as above, but negate the condition : if (!$a2) { return $a2; }
    if ($a2) {
        $a++;
    } else {
        return $a2;
    }

    // This is OK
    if ($a3) {
        return;
    }

    // This has no break
    if ($a4) {
        $a++;
    } else {
        $b++;
    }

    // This has no else
    if ($a5) {
        $a++;
    }
}
?>

See also `Object Calisthenics, rule # 2 <http://williamdurand.fr/2013/06/03/object-calisthenics/>`_.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.10.4";

modifications[] = "Remove else block, but keep the code"

[example1]
project="Thelia"
file="core/lib/Thelia/Core/Template/Loop/Address.php"
line="92"
code="        if ($customer === 'current') {
            $currentCustomer = $this->securityContext->getCustomerUser();
            if ($currentCustomer === null) {
                return null;
            } else {
                $search->filterByCustomerId($currentCustomer->getId(), Criteria::EQUAL);
            }
        } else {
            $search->filterByCustomerId($customer, Criteria::EQUAL);
        }";
explain="After checking that $currentCustomer is null, the method returns. The block with Else may be removed and its code may be moved one level up."

[example2]
project="ThinkPHP"
file="projects/thinkphp/code//ThinkPHP/Library/Org/Util/Rbac.class.php"
line="187"
code="            if (empty($_SESSION[C('ADMIN_AUTH_KEY')])) {
                if (C('USER_AUTH_TYPE') == 2) {
                    //加强验证和即时验证模式 更加安全 后台权限修改可以即时生效
                    //通过数据库进行访问检查
                    $accessList = self::getAccessList($_SESSION[C('USER_AUTH_KEY')]);
                } else {
                    // 如果是管理员或者当前操作已经认证过，无需再次认证
                    if ($_SESSION[$accessGuid]) {
                        return true;
                    }
                    //登录验证模式，比较登录后保存的权限访问列表
                    $accessList = $_SESSION['_ACCESS_LIST'];
                }
                //判断是否为组件化模式，如果是，验证其全模块名
                if (!isset($accessList[strtoupper($appName)][strtoupper(CONTROLLER_NAME)][strtoupper(ACTION_NAME)])) {
                    $_SESSION[$accessGuid] = false;
                    return false;
                } else {
                    $_SESSION[$accessGuid] = true;
                }";
explain="This code has both good and bad example. Good : no use of else, after $_SESSION[$accessGuid] check. Issue : else usage after usage of !isset($accessList[strtoupper($appName)][strtoupper(CONTROLLER_NAME)][strtoupper(ACTION_NAME)])"
name = "Should Use Operator";
description = "Some functions duplicate the feature of an operator. When in doubt, it is better to use the operator. 

Beware, some edge cases may apply. In particular, backward compatibility may prevent usage of newer features.

* array_push() is equivalent to [] 
* is_object() is equivalent to instanceof
* function_get_arg() and function_get_args() is equivalent to ellipsis : ...
* chr() is equivalent to string escape sequences, such as ``\n``, ``\x69``, ``u{04699}``
* call_user_func() is equivalent to ``$functionName(arguments)``, ``$object->$method(...$arguments)``
* is_null() is equivalent to ``=== null``
* php_version() is equivalent to ``PHP_VERSION`` (the constant)
* is_array(), is_int(), is_object(), etc. is equivalent to a scalar typehint


";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "1.3.0";
modifications[] = "Use [] instead of array_push()"
modifications[] = "Use instanceof instead of is_object()"
modifications[] = "Use ... instead of function_get_arg() and function_get_args()"
modifications[] = "Use escape sequences instead of chr()"
modifications[] = "Use dynamic function call instead of call_user_func()"
modifications[] = "Use === null instead of is_null()"
modifications[] = "Use PHP_VERSION instead of php_version()"
modifications[] = "Use typehint instead of is_int(), is_string(), is_bool(), etc."
[example1]
project="Zencart"
file="includes/modules/payment/paypal/paypal_curl.php"
line="378"
code="  function TransactionSearch($startdate, $txnID = '', $email = '', $options) {
    // several lines of code, no mention of $options
      if (is_array($options)) $values = array_merge($values, $options);
    }
    return $this->_request($values, 'TransactionSearch');
  }";
explain="Here, $options is merged with $values if it is an array. If it is not an array, it is probably a null value, and may be ignored. Adding a 'array' typehint will strengthen the code an catch situations where TransactionSearch() is called with a string, leading to clearer code."
[example2]
project="SugarCrm"
file="include/utils.php:2093"
line="464"
code="function sugar_config_union( $default, $override ){
	// a little different then array_merge and array_merge_recursive.  we want
	// the second array to override the first array if the same value exists,
	// otherwise merge the unique keys.  it handles arrays of arrays recursively
	// might be suitable for a generic array_union
	if( !is_array( $override ) ){
		$override = array();
	}
	foreach( $default as $key => $value ){
		if( !array_key_exists($key, $override) ){
			$override[$key] = $value;
		}
		else if( is_array( $key ) ){
			$override[$key] = sugar_config_union( $value, $override[$key] );
		}
	}
	return( $override );
}";
explain="$override should an an array : if not, it is actually set by default to empty array. Here, a typehint with a default value of 'array()' would offset the parameter validation to the calling method."
name = "Too Complex Expression";
description = "Long expressions should be broken in small chunks, to limit complexity. 

Really long expressions tends to be error prone : either by typo, or by missing details. They are even harder to review, once the initially build of the expression is gone. 

As a general rule, it is recommended to keep expressions short. The analysis include any expression that is more than 15 tokens large : variable and operators counts as one, properties, arrays count as two. Parenthesis are also counted. 

PHP has no specific limit to expression size, so long expression are legal and valid. It is possible that the business logic requires a complex equation. 

<?php

// Why not calculate wordwrap size separatedly ? 
$a = explode(\"\n\", wordwrap($this->message, floor($this->width / imagefontwidth($this->fontsize)), \"\n\"));

// Longer but easier to read
$width = floor($this->width / imagefontwidth($this->fontsize)), \"\n\");
$a = explode(\"\n\", wordwrap($this->message, $width);

// Here, some string building, including error management with @, is making the data quite complex.
fwrite($fp, 'HEAD ' . @$url['path'] . @$url['query'] . ' HTTP/1.0' . \"\r\n\" . 'Host: ' . @$url['host'] . \"\r\n\r\n\")

// Better validation of data. 
$http_header = 'HEAD ';
if (isset($url['path'])) {
    $http_header .= $url['path'];
}
if (isset($url['query'])) {
    $http_header .= $url['query'];
}

$http_header .=  \"\r\n\";
if (isset($url['host'])) {
    $http_header .= 'Host: ' . $url['host'] . \"\r\n\r\n\";
}

fwrite($fp, $http_header);

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.12.16";
[parameter1]
name="complexExpressionThreshold";
default="30";
type="integer";
description="Minimal number of operators in one expression to report.";name = "Throws An Assignement";
description = "It is possible to throw an exception, and, in the same time, assign this exception to a variable.

However, the variable will never be used, as the exception is thrown, and any following code is not executed. 

<?php

    // $e is useful, though not by much
    $e = new() Exception();
    throw $e;

    // $e is useless
    throw $e = new Exception();

?>

The assignment should be removed.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
modifications[] = "Drop the assignation"name = "Avoid array_unique()";
description = "The native function array_unique() is much slower than using other alternatives, such as array_count_values(), array_flip()/array_keys(), or even a foreach() loops. 

<?php

// using array_unique()
$uniques = array_unique($someValues);

// When values are strings or integers
$uniques = array_keys(array_count_values($someValues));
$uniques = array_flip(array_flip($someValues))

//even some loops are faster.
$uniques = [];
foreach($someValues as $s) {
    if (!in_array($uniques, $s)) {
        $uniques[] $s;
    }
}

?>

See also `array_unique <http://php.net/array_unique>`_.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Upgrade to PHP 7.2"
modifications[] = "Use an alternative way to make values unique in an array, using array_count_values(), for example."name = "Preprocessable";
description = "The following expression are made of literals or already known values : they may be fully calculated before running PHP.

<?php

// Building an array from a string
$name = 'PHP'.' '.'7.2';

// Building an array from a string
$list = explode(',', 'a,b,c,d,e,f');

// Calculating a power
$kbytes = $bytes / pow(2, 10);

// This will never change
$name = ucfirst(strtolower('PARIS'));

?>

By doing so, this will reduce the amount of work of PHP.";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Do the work yourself, instead of giving it to PHP"

[example1]
project="phpadsnew"
file="phpAdsNew-2.0/adview.php"
line="302"
code="		echo chr(0x47).chr(0x49).chr(0x46).chr(0x38).chr(0x39).chr(0x61).chr(0x01).chr(0x00).
		     chr(0x01).chr(0x00).chr(0x80).chr(0x00).chr(0x00).chr(0x04).chr(0x02).chr(0x04).
		 	 chr(0x00).chr(0x00).chr(0x00).chr(0x21).chr(0xF9).chr(0x04).chr(0x01).chr(0x00).
		     chr(0x00).chr(0x00).chr(0x00).chr(0x2C).chr(0x00).chr(0x00).chr(0x00).chr(0x00).
		     chr(0x01).chr(0x00).chr(0x01).chr(0x00).chr(0x00).chr(0x02).chr(0x02).chr(0x44).
		     chr(0x01).chr(0x00).chr(0x3B);
";
explain="Each call to chr() may be done before. First, chr() may be replace with the hexadecimal sequence \"0x3B\"; Secondly, 0x3b is a rather long replacement for a simple semi-colon. The whole pragraph could be stored in a separate file, for easier modifications. "
name = "Yoda Comparison";
description = "Yoda comparison is a way to write conditions which places literal values on the left side. 

<?php
  if (1 == $a) {
    // Then condition
  } 
?>

The objective is to avoid mistaking a comparison to an assignation. If the comparison operator is mistaken, but the literal is on the left, then an error will be triggered, instead of a silent bug. 

<?php
    // error in comparison! 
    if ($a = 1) {
        // Then condition
    } 
?>

See also `Yoda Conditions <https://en.wikipedia.org/wiki/Yoda_conditions>`_, 
`Yoda Conditions: To Yoda or Not to Yoda <https://knowthecode.io/yoda-conditions-yoda-not-yoda>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Break With 0";
description = "Cannot break 0, as this makes no sense. Break 1 is the minimum, and is the default value.

<?php
    // Can't break 0. Must be 1 or more, depending on the level of nesting.
    for($i = 0; $i < 10; $i++) {
        break 0;
    }

    for($i = 0; $i < 10; $i++) {
        for($j = 0; $j < 10; $j++) {
            break 2;
        }
    }

?>

";
clearphp = "";
phpversion = "5.4-";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Or Die";
description = "Classic old style failed error management. 

<?php

// In case the connexion fails, this kills the current script
mysql_connect('localhost', $user, $pass) or die();

?>

Interrupting a script will leave the application with a blank page, will make your life miserable for testing. Just don't do that.

See also `pg_last_error <http://php.net/manual/en/function.pg-last-error.php>`_ or 
         `PDO::exec <http://php.net/manual/en/pdo.exec.php>`_.
";
clearphp = "no-implied-if";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Throw an exception";
modifications[] = "Trigger an error with trigger_error()";
modifications[] = "Use your own error mechanism";

[example1]
project="Tine20"
file="scripts/addgrant.php"
line="34"
code="$link = mysql_connect($host, $user, $pass) or die(\"No connection: \" . mysql_error( ))	";
explain="Typical error handling, which also displays the MySQL error message, and leaks informations about the system. One may also note that mysql_connect is not supported anymore, and was replaced with mysqli and pdo : this may be a backward compatibile file."

[example2]
project="OpenConf"
file="openconf/chair/export.inc"
line="143"
code="$coreFile = tempnam('/tmp/', 'ocexport') or die('could not generate Excel file (6)')";
explain="or die() is also applied to many situations, where a blocking situation arise. Here, with the creation of a temporary file."
name = "Alternative Syntax Consistence";
description = "PHP allows for two syntax : the alternative syntax, and the classic syntax. 

The classic syntax is almost always used. When used, the alternative syntax is used in templates. 

This analysis reports files that are using both syntax at the same time. This is confusing.

<?php

// Mixing both syntax is confusing.
foreach($array as $item) : 
    if ($item > 1) {
        print "$item elements\n";
    } else {
        print "$item element\n";
    }
endforeach;

?>

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.11.2";name = "Empty Blocks";
description = "Full empty block, part of a control structures. 

It is recommended to remove those blocks, so as to reduce confusion in the code. 

<?php

foreach($foo as $bar) ; // This block seems erroneous
    $foobar++;

if ($a === $b) {
    doSomething();
} else {
    // Empty block. Remove this
}

// Blocks containing only empty expressions are also detected
for($i = 0; $i < 10; $i++) {
    ;
}

// Although namespaces are not control structures, they are reported here
namespace A;
namespace B;

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Fill the block with a command"
modifications[] = "Fill the block with a comment that explain the situation"
modifications[] = "Remove the block and its commanding operator"

[example1]
project="Cleverstyle"
file="modules/Blogs/api/Controller.php"
line="44"
code="	public static function posts_get ($Request) {
		$id = $Request->route_ids(0);
		if ($id) {
			$post = Posts::instance()->get($id);
			if (!$post) {
				throw new ExitException(404);
			}
			return $post;
		} else {
			// TODO: implement latest posts
		}
	}
";
explain="Else is empty, but commented. "

[example2]
project="PhpIPAM"
file="wp-admin/includes/misc.php"
line="74"
code="/* checks */
if($_POST['action'] == ""delete"") {
	# no cecks
}
else {
	# remove spaces
	$_POST['name'] = trim($_POST['name']);

	# length > 4 and < 12
	if( (mb_strlen($_POST['name']) < 2) || (mb_strlen($_POST['name']) > 24) ) 	{ $errors[] = _('Name must be between 4 and 24 characters'); }


";
explain="The ``then`` block is empty and commented : yet, it may have been clearer to make the condition != and omitted the whole empty block.";
name = "Should Use Foreach";
description = "Use foreach instead of for when traversing an array.

Foreach() is the modern loop : it maps automatically every element of the array to a blind variable, and loop over it. This is faster and safer.

<?php

// Foreach version
foreach($array as $element) {
    doSomething($element);
}

// The above case may even be upgraded with array_map and a callback, 
// for the simplest one of them
$array = array_map('doSomething', $array);

// For version (one of various alternatives)
for($i = 0; $i < count($array); $i++) {
    $element = $array[$i];
    doSomething($element);
}

// Based on array_pop or array_shift()
while($value = array_pop($array)) {
    doSomething($array);
}

?>

See also `foreach <http://php.net/manual/en/control-structures.foreach.php>`_ and 
         `5 Ways To Loop Through An Array In PHP <https://www.codewall.co.uk/5-ways-to-loop-through-array-php/>`_.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.12.7";

modifications[] = "Move for() loops to foreach(), whenever they apply to a finite list of elements"

[example1]
project="ExpressionEngine"
file="system/ee/EllisLab/ExpressionEngine/Service/Model/Query/Builder.php"
line="241"
code="		$length = strlen($str);
		$words = array();

		$word = '';
		$quote = '';
		$quoted = FALSE;

		for ($i = 0; $i < $length; $i++)
		{
			$char = $str[$i];

			if (($quoted == FALSE && $char == ' ') || ($quoted == TRUE && $char == $quote))
			{
				if (strlen($word) > 2)
				{
					$words[] = $word;
				}

				$quoted = FALSE;
				$quote = '';
				$word = '';

				continue;
			}

			if ($quoted == FALSE && ($char == '"' || $char == "'") && ($word === '' || $word == '-'))
			{
				$quoted = TRUE;
				$quote = $char;
				continue;
			}

			$word .= $char;
		}
";
explain="This code could turn the string into an array, with the explode() function, and use foreach(), instead of calculating the length() initially, and then building the loop."

[example2]
project="Woocommerce"
file="includes/libraries/class-wc-eval-math.php"
line="84"
code="				$stack_size = count( $stack );
				for ( $i = 0; $i < $stack_size; $i++ ) { // freeze the state of the non-argument variables
					$token = $stack[ $i ];
					if ( preg_match( '/^[a-z]\w*$/', $token ) and ! in_array( $token, $args ) ) {
						if ( array_key_exists( $token, self::$v ) ) {
							$stack[ $i ] = self::$v[ $token ];
						} else {
							return self::trigger( \"undefined variable '$token' in function definition\" );
						}
					}
				}
";
explain="This loops reviews the 'stack' and updates its elements. The same loop may leverage foreach and references for more efficient code."

name = "Is Actually Zero";
description = "This addition actually may be simplified because one term is actually negated by another. 

This kind of error happens when the expression is very large : the more terms are included, the more chances are that some auto-annihilation happens. 

This error may also be a simple typo : for example, calculating the difference between two consecutive terms.

<?php

// This is quite obvious
$a = 2 - 2;

// This is obvious too. This may be a typo-ed difference between two consecutive terms. 
// Could have been $c = $fx[3][4] - $fx[3][3] or $c = $fx[3][5] - $fx[3][4];
$c = $fx[3][4] - $fx[3][4];

// This is less obvious
$a = $b[3] - $c + $d->foo(1,2,3) + $c + $b[3];

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.12.15";
modifications[] = "Clean the code and remove the null sum"
modifications[] = "Fix one of the variable : this expression needs another variable here"
modifications[] = "When adding differences, calculate the difference in a temporary variable first."
[example1]
project="Dolibarr"
file="htdocs/compta/ajaxpayment.php"
line="99"
code="			$amountToBreakdown = ($result - $currentRemain >= 0 ?
										$currentRemain : 								// Remain can be fully paid
										$currentRemain + ($result - $currentRemain));	// Remain can only partially be paid
";
explain="Here, the $amountToBreakDown is either $currentRemain or $result. "
[example2]
project="SuiteCrm"
file="modules/AOR_Charts/lib/pChart/class/pDraw.class.php"
line="523"
code="         if ( $X > $iX2 ) { $Xa = $X-($X-$iX2); $Ya = $iY1+($X-$iX2); } else { $Xa = $X; $Ya = $iY1; }";
explain="$Xa may only amount to $iX2, though the expression looks weird."
name = "Unreachable Code";
description = "Code may be unreachable, because other instructions prevent its reaching. 
For example, it be located after throw, return, exit(), die(), goto, break or continue : this way, it cannot be reached, as the previous instruction will divert the engine to another part of the code. 

<?php

function foo() {
    $a++;
    return $a;
    $b++;      // $b++ can't be reached;
}

function bar() {
    if ($a) {
        return $a;
    } else {
        return $b;
    }
    $b++;      // $b++ can't be reached;
}

foreach($a as $b) {
    $c += $b;
    if ($c > 10) {
        continue 1;
    } else {
        $c--;
        continue;
    }
    $d += $e;   // this can't be reached
}

$a = 1;
goto B;
class foo {}    // Definitions are accessible, but not functioncalls
B: 
echo $a;


?>

This is dead code, that may be removed.";
clearphp = "no-dead-code";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
name = "Constant Comparison";
description = "Based on the incoming types of arguments, the comparison never change.

<?php

function foo(array $a) {
    // This will always fail
    if ($a === 1) {
        
    } elseif (is_int($a)) {
    
    }

    // This will always succeed
    if ($a !== null) {
        
    } elseif (is_null($a)) {
        
    }
}

?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.4";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Remove the constant condition and its corresponding blocks"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Foreach Needs Reference Array";
description = "When using foreach with a reference as value, the source must be a referenced array, which is a variable (or array or property or static property). 
When the array is the result of an expression, the array is not kept in memory after the foreach loop, and any change made with & are lost.

This will do nothing

<?php
    foreach(array(1,2,3) as &$value) {
        $value *= 2;
    }
?>

This will have an actual effect

<?php
    $array = array(1,2,3);
    foreach($array as &$value) {
        $value *= 2;
    }
?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Setlocale() Uses Constants";
description = "setlocal() don't use strings but constants. 

The first argument of setlocale() must be one of the valid constants, ``LC_ALL``, ``LC_COLLATE``, ``LC_CTYPE``, ``LC_MONETARY``, ``LC_NUMERIC``, ``LC_TIME, LC_MESSAGES``.

<?php

// Use constantes for setlocale first argument
setlocale(LC_ALL, 'nl_NL');
setlocale(\LC_ALL, 'nl_NL');

// Don't use string for setlocale first argument
setlocale('LC_ALL', 'nl_NL');
setlocale('LC_'.'ALL', 'nl_NL');

?>

The PHP 5 usage of strings (same name as above, enclosed in ' or \") is not legit anymore in PHP 7 and later.

See also `setlocale <http://php.net/setlocale>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
name = "__toString() Throws Exception";
description = "Magical method __toString() can't throw exceptions.

In fact, __toString() may not let an exception pass. If it throw an exception, but must catch it. If an underlying method throws an exception, it must be caught.

<?php

class myString {
    private $string = null;
    
    public function __construct($string) {
        $this->string = $string;
    }
    
    public function __toString() {
        // Do not throw exceptions in __toString
        if (!is_string($this->string)) {
            throw new Exception(\"$this->string is not a string!!\");
        }
        
        return $this->string;
    }
}   

?>

A fatal error is displayed, when an exception is not intercepted in the __toString() function. 

::

    PHP Fatal error:  Method myString::__toString() must not throw an exception, caught Exception: 'Exception message' in ``file.php``

See also __toString().
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Remove any usage of exception from __toString() magic method"name = "No Return Or Throw In Finally";
description = "Avoid using return and throw in a finally block. Both command will interrupt the processing of the try catch block, and any exception that was emitted will not be processed. This leads to unprocessed exceptions, leaving the application in an unstable state.

Note that PHP prevents the usage of goto, break and continue within the finally block at linting phase. This is categorized as a Security problem.

<?php
function foo() {
        try {
            // Exception is thrown here 
            throw new \Exception();
        } catch (Exception $e) {
            // This is executed AFTER finally
            return 'Exception';
        } finally {
            // This is executed BEFORE catch
            return 'Finally';
        }
    }
}

// Displays 'Finally'. No exception
echo foo();

function bar() {
        try {
            // Exception is thrown here 
            throw new \Exception();
        } catch (Exception $e) {
            // Process the exception. 
            return 'Exception';
        } finally {
            // clean the current situation
            // Keep running the current function
        }
        return 'Finally';
    }
}

// Displays 'Exception', with processed Exception
echo bar();

?>

See also `Return Inside Finally Block <https://www.owasp.org/index.php/Return_Inside_Finally_Block>`_.
 ";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.12.1";name = "Constant Comparison";
description = "Constant to the left or right is a favorite. 

Comparisons are commutative : they may be $a == B or B == $a. The analyzed code show less than 10% of one of the two : for consistency reasons, it is recommended to make them all the same. 

Putting the constant on the left is also called 'Yoda Comparison', as it mimics the famous characters style of speech. It prevents errors like 'B = $a' where the comparison is turned into an assignation. 

The natural way is to put the constant on the right. It is often less surprising. 

Every comparison operator is used when finding the favorite.

<?php

// 
if ($a === B) { doSomething(); }
if ($c > D) { doSomething(); }
if ($e !== G) { doSomething(); }
do { doSomething(); } while ($f === B);
while ($a === B) { doSomething(); }

// be consistent
if (B === $a) {}

// Compari
if (B <= $a) {}

?>
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Static Global Variables Confusion";
description = "PHP can't have variable that are both static and variable. While the syntax is legit, the variables will be alternatively global or static.

It is recommended to avoid using the same name for a global variable and a static variable. 

<?php

function foo() {
    $a = 1; // $a is a local variable
    
    global $a; // $a is now a global variable
    
    static $a; // $a is not w static variable 
}

?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.1.2";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Avoid using static variables"
modifications[] = "Avoid using global variables"
modifications[] = "Avoid using the same name for static and global variables"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

; Optional parameters
;[parameter1]
;name="parametersCount";
;default="8";
;type="integer";
;description="Minimal number of parameters to report.";
name = "Duplicate Calls";
description = "Duplicate calls within the same context. They should be called once, and then stashed in a variable for reuse. This saves a lot of time.

<?php

function foo($name) {
    // The name decoration on the string is done twice. Once should be cached in a variable.
    echo "Hello, ".ucfirst(strtolower($name))."<br />";
    
    $query = 'Insert into visitors values ("'.ucfirst(strtolower($name)).'")';
    $res = $db->query($query);
}

?>

See also `Constants <http://php.net/manual/en/language.constants.php>`_ and `Userland naming Guide <http://php.net/manual/en/userlandnaming.php>`_.

";
clearphp = "no-duplicated-code";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Dont Mix ++";
description = "++ operators have two distinct behaviors, and should be used in isolation.

When mixed with a larger expression, it is difficult to read, and may lead to unwanted behaviors.

<?php

    // Clear and defined behavior
    $i++;
    $a[$i] = $i;

    // $i is modified twice 
    $i = --$i + 1; 
?>

See also `EXP30-C. Do not depend on the order of evaluation for side effects <https://wiki.sei.cmu.edu/confluence/display/c/EXP30-C.+Do+not+depend+on+the+order+of+evaluation+for+side+effects>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "1.3.2";

modifications[] = "Extract the increment from the expression, and put it on a separate line."

[example1]
project="Contao"
file="core-bundle/src/Resources/contao/drivers/DC_Table.php"
line="1272"
code="$this->Database->prepare(\"UPDATE \" . $this->strTable . \" SET sorting=? WHERE id=?\")
		   ->execute(($count++ * 128), $objNewSorting->id);
";
explain="Incrementing and multiplying at the same time."

[example2]
project="Typo3"
file="typo3/sysext/backend/Classes/Controller/SiteConfigurationController.php"
line="74"
code="            foreach ($row['rootline'] as &$record) {
                $record['margin'] = $i++ * 20;
            }

";
explain="The post-increment is not readable at first glance."
name = "Coalesce And Concat";
description = "The concatenation operator dot has precedence over the coalesce operator ??. 

<?php

// Parenthesis are the right solution when in doubt
echo a . ($b ?? 'd') . $e;

// 'a' . $b is evaluated first, leading ot a useless ?? operator
'a' . $b ?? $c;

// 'd' . 'e' is evaluated first, leading to $b OR 'de'. 
echo $b ?? 'd' . 'e';

?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.4";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Add parenthesis around ?? operator to avoid misbehavior"
modifications[] = "Do not use dot and ?? together in the same expression"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "One Expression Brackets Consistency";
description = "Brackets around one-line expressions are not consistent. 

PHP makes bracket optional when a control structure pilot only one expression. Both are semantically identical.

This analysis reports code that uses brackets while the vast majority of other expressions uses none. Or the contrary. 

<?php

// One expression with brackets
for($i = 0; $i < 10; $i++) { $c++; }

// One expression without bracket
for($i2 = 0; $i2 < 10; $i2++)  $c++; 

?>

Another analysis, [Structures/Bracketless], reports the absence of brackets as an error. 
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.9.5";name = "Could Be Static";
description = "This global is only used in one function or method. It may be called 'static', instead of global. This allows you to keep the value between call to the function, but will not be accessible outside this function.

<?php
function foo( ) {
    static $variableIsReservedForX; // only accessible within foo( ), even between calls.
    global $variableIsGlobal;       //      accessible everywhere in the application
}
?>
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
[example1]
project=Dolphin
file=inc/utils.inc.php
line=673
code="function clear_xss($val)
{
    // HTML Purifier plugin
    global $oHtmlPurifier;
    if (!isset($oHtmlPurifier) && !$GLOBALS['logged']['admin']) {

        require_once(BX_DIRECTORY_PATH_PLUGINS . 'htmlpurifier/HTMLPurifier.standalone.php');

/..../

        $oHtmlPurifier = new HTMLPurifier($oConfig);
    }

    if (!$GLOBALS['logged']['admin']) {
        $val = $oHtmlPurifier->purify($val);
    }

    $oZ = new BxDolAlerts('system', 'clear_xss', 0, 0,
        array('oHtmlPurifier' => $oHtmlPurifier, 'return_data' => &$val));
    $oZ->alert();

    return $val;
}";
explain="Dolphin pro relies on HTMLPurifier to handle cleaning of values : it is used to prevent xss threat. In this method, oHtmlPurifier is first checked, and if needed, created. Since creation is long and costly, it is only created once. Once the object is created, it is stored as a global to be accessible at the next call of the method. In fact, oHtmlPurifier is never used outside this method, so it could be turned into a 'static' variable, and prevent other methods to modify it. This is a typical example of variable that could be static instead of global. "
[example2]
project=Contao
file=system/helper/functions.php
line=184
code="function scan($strFolder, $blnUncached=false)
{
	global $arrScanCache;

	// Add a trailing slash
	if (substr($strFolder, -1, 1) != '/')
	{
		$strFolder .= '/';
	}

	// Load from cache
	if (!$blnUncached && isset($arrScanCache[$strFolder]))
	{
		return $arrScanCache[$strFolder];
	}
	$arrReturn = array();

	// Scan directory
	foreach (scandir($strFolder) as $strFile)
	{
		if ($strFile == '.' || $strFile == '..')
		{
			continue;
		}

		$arrReturn[] = $strFile;
	}

	// Cache the result
	if (!$blnUncached)
	{
		$arrScanCache[$strFolder] = $arrReturn;
	}

	return $arrReturn;
}";
explain="$arrScanCache is a typical cache variables. It is set as global for persistence between calls. If it contains an already stored answer, it is returned immediately. If it is not set yet, it is then filled with a value, and later reused. This global could be turned into static, and avoid pollution of global space. "
name = "Could Use __DIR__";
description = "Use __DIR__ constant to access the current file's parent directory. 

Avoid using dirname() on __FILE__.

<?php

// Better way
$fp = fopen(__DIR__.'/myfile.txt', 'r');

// compatible, but slow way
$fp = fopen(dirname(__FILE__).'/myfile.txt', 'r');

// Since PHP 5.3
assert(dirname(__FILE__) == __DIR__);

?>

__DIR__ has been introduced in PHP 5.3.0.

See also `Magic Constants <http://php.net/manual/en/language.constants.predefined.php>`_.

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Use __DIR__ instead of ``dirname(__FILE__);``";

[example1]
project="Woocommerce"
file="includes/class-wc-api.php"
line="162"
code="	private function rest_api_includes() {
		// Exception handler.
		include_once dirname( __FILE__ ) . '/api/class-wc-rest-exception.php';

		// Authentication.
		include_once dirname( __FILE__ ) . '/api/class-wc-rest-authentication.php';

";
explain="All the 120 occurrences use `dirname( __FILE__ )`, and could be upgraded to __DIR__ if backward compatibility to PHP 5.2 is not critical. "
[example2]
project="Piwigo"
file="include/random_compat/random.php"
line="50"
code="    $RandomCompatDIR = dirname(__FILE__);

    require_once $RandomCompatDIR.'/byte_safe_strings.php';
    require_once $RandomCompatDIR.'/cast_to_int.php';
    require_once $RandomCompatDIR.'/error_polyfill.php';
";
explain="`dirname( __FILE__ )` is cached into $RandomCompatDIR, then reused three times. Using __DIR__ would save that detour."
name = "Not Or Tilde";
description = "There are two NOT operator in PHP : ``!`` and ``~``. The first is a logical operator, and returns a boolean. The second is a bit-wise operator, and flips each bit. 

Although they are distinct operations, there are situations where they provide the same results. In particular, when processing booleans. 

Yet, ``!`` and ``~`` are not the same. ``~`` has a higher priority, and will not yield to ``instanceof``, while ``!`` does.

The analyzed code has less than 10% of one of them : for consistency reasons, it is recommended to make them all the same. 

<?php

// be consistent
if (!$condition) {
    doSomething();
}

if (~$condition) {
    doSomething();
}

?>

See also `Bitwise Operators <https://www.php.net/manual/en/language.operators.bitwise.php>`_,
         `Logical Operators <https://www.php.net/manual/en/language.operators.logical.php>`_ and 
         `Operators Precedences <https://www.php.net/manual/en/language.operators.precedence.php>`_ .
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.8.9";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Be consistent"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Variable Is Not A Condition";
description = "Avoid using a lone variable as a condition. It is recommended to use a comparative value, or one of the filtering function, such as isset(), empty(). 

Using the raw variable as a condition blurs the difference between an undefined variable and an empty value. By using an explicit comparison or validation function, it is easier to understand what the variable stands for.

<?php

if (isset($error)) {
    echo 'Found one error : '.$error!;
}

//
if ($errors) {
    print count($errors).' errors found : '.join('', $errors).PHP_EOL;
    echo 'Not found';
}

?>

Thanks to the `PMB <https://www.sigb.net/>`_ team for the inspiration.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.6.5";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Make the validation explicit, by using a comparison operator, or one of the validation function."

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Altering Foreach Without Reference";
description = "Foreach() loop that should use a reference. 

When using a foreach loop that modifies the original source, it is recommended to use referenced variables, rather than access the original value with $source[$index]. 

Using references is then must faster, and easier to read. 

<?php

// Using references in foreach
foreach($source as $key => &$value) {
    $value = newValue($value, $key);
}

// Avoid foreach : use array_map
$source = array_walk($source, 'newValue');
    // Here, $key MUST be the second argument or newValue

// Slow version to update the array
foreach($source as $key => &$value) {
    $source[$key] = newValue($value, $key);
}
?>

You may also use array_walk() or array_map() (when $key is not used) to avoid the use of foreach.

See also `foreach <http://php.net/manual/en/control-structures.foreach.php>`_.";
clearphp = "use-reference-to-alter-in-foreach";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
modifications[] = "Add the reference on the modified blind variable, and avoid accessing the source array"
[example1]
project="Contao"
file="core-bundle/src/Resources/contao/classes/Theme.php"
line="613"
code="								foreach ($tmp as $kk=>$vv)
								{
									// Do not use the FilesModel here – tables are locked!
									$objFile = $this->Database->prepare(""SELECT uuid FROM tl_files WHERE path=?"")
															  ->limit(1)
															  ->execute($this->customizeUploadPath($vv));

									$tmp[$kk] = $objFile->uuid;
								}
";
explain="$tmp[$kk] is &$vv."
[example2]
project="WordPress"
file="wp-admin/includes/misc.php"
line="74"
code="                foreach($ids as $index => $rrid)
                {
                    if($rrid == $this->Id)
                    {
                        $ids[$index] = $_id;
                        $write = true;
                        break;
                    }
                }
";
explain="$ids[$index] is &$rrid. "
name = "Use json_decode() Options";
description = "json_decode() returns objects by default, unless the second argument is set to ``TRUE`` or ``JSON_OBJECT_AS_ARRAY``. Then, it returns arrays.

Avoid casting the returned value from json_decode(), and use the second argument to directly set the correct type.

<?php

$json = '{"a":"b"}';

// Good syntax
$array = json_decode($json, JSON_OBJECT_AS_ARRAY);

// GoToo much work
$array = (array) json_decode($json);

?>

Note that all objects will be turned into arrays, recursively. If you're expecting an array of objects, don't use the ``JSON_OBJECT_AS_ARRAY`` constant, and change your JSON code.

Note that ``JSON_OBJECT_AS_ARRAY`` is the only constant : there is no defined constant to explicitly ask for an object as returned value. 

See also `json_decode <http://php.net/json_decode>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "1.4.3";name = "Useless Parenthesis";
description = "Situations where parenthesis are not necessary, and may be removed.

Parenthesis group several elements together, and allows for a more readable expression. They are used with logical and mathematical expressions. They are necessary when the precedence of the operators are not the intended execution order : for example, when an addition must be performed before the multiplication.

Sometimes, the parenthesis provide the same execution order than the default order : they are deemed useless. 

<?php

    if ( ($condition) ) {}
    while( ($condition) ) {}
    do $a++; while ( ($condition) );
    
    switch ( ($a) ) {}
    $y = (1);
    ($y) == (1);
    
    f(($x));

    // = has precedence over == 
    ($a = $b) == $c;
    
    ($a++);
    
    // No need for parenthesis in default values
    function foo($c = ( 1 + 2) ) {}
?>

See also `Operators Precedence <http://php.net/manual/en/language.operators.precedence.php>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Remove useless parenthesis, unless they are important for readability."

[example1]
project="Mautic";
file="code/app/bundles/EmailBundle/Controller/AjaxController.php";
line="85";
code="$dataArray['percent'] = ($progress[1]) ? ceil(($progress[0] / $progress[1]) * 100) : 100;";
explain="Parenthesis are useless around $progress[1], and around the division too. "

[example2]
project="Woocommerce";
file="includes/class-wc-coupon.php";
line="437";
code="if ( wc_prices_include_tax() ) {
	$discount_percent = ( wc_get_price_including_tax( $cart_item['data'] ) * $cart_item_qty ) / WC()->cart->subtotal;
} else {
	$discount_percent = ( wc_get_price_excluding_tax( $cart_item['data'] ) * $cart_item_qty ) / WC()->cart->subtotal_ex_tax;
}
$discount = ( (float) $this->get_amount() * $discount_percent ) / $cart_item_qty;
";
explain="Parenthesis are useless for calculating $discount_percent, as it is a divisition. Moreover, it is not needed with $discount, (float) applies to the next element, but it does make the expression more readable. "
name = "Don't Loop On Yield";
description = "Use ``yield from``, instead of looping on a generator with ``yield``.

``yield from`` delegate the yielding to another generator, and keep calling that generator until it is finished. It also works with implicit generator datastructure, like arrays.

<?php

function generator() {
    for($i = 0; $i < 10; ++$i) {
        yield $i;
    }
}

function delegatingGenerator() {
    yield from generator();
}

// Too much code here
function generator2() {
    foreach(generator() as $g) {
        yield $g;
    }
}

?>

There is a performance gain when delegating, over looping manually on the generator. You may even consider writing the loop to store all values in an array, then ``yield from`` the array.

See also `Generator delegation via yield from <http://php.net/manual/en/language.generators.syntax.php#control-structures.yield.from>`_.
";
clearphp = "";
exakatSince = "1.5.3";
severity = "S_MINOR";
timetofix = "T_QUICK";
modifications[] = "Use `yield from` instead of the whole foreach() loop"

[example1]
project="Dolibarr"
file="htdocs/includes/sabre/sabre/dav/lib/DAV/Server.php"
line="912"
code="
if (($newDepth === self::DEPTH_INFINITY || $newDepth >= 1) && $childNode instanceof ICollection) {
    foreach ($this->generatePathNodes($subPropFind) as $subItem) {
        yield $subItem;
    }
}";
explain="Yield from is a straight replacement here."

[example2]
project="Tikiwiki"
file="lib/goal/goallib.php"
line="944"
code="$done = [];

foreach ($goal['eligible'] as $groupName) {
	foreach ($userlib->get_group_users($groupName) as $user) {
		if (! isset($done[$user])) {
			yield ['user' => $user, 'group' => null];
			$done[$user] = true;
		}
	}
}";
explain="The replacement with ``yield from``is not straigthforward here. Yield is only called when $user hasn't been ``$done`` : this is a unicity check. So, the double loop may produce a fully merged array, that may be reduced further by array_unique(). The final array, then, can be used with yield from. "
name = "If With Same Conditions";
description = "Successive If / then structures that have the same condition may be either merged or have one of the condition changed. 

<?php

if ($a == 1) {
    doSomething();
}

if ($a == 1) {
    doSomethingElse();
}

// May be replaced by 
if ($a == 1) {
    doSomething();
    doSomethingElse();
}

?>

Note that if the values used in the condition have been modified in the first if/then structure, the two distinct conditions may be needed. 

<?php

// May not be merged
if ($a == 1) {
    // Check that this is really the situation
    $a = checkSomething();
}

if ($a == 1) {
    doSomethingElse();
}

?>

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
modifications[] = "Merge the two conditions so the condition is used once."
modifications[] = "Change one of the condition, so they are different"
modifications[] = "Make it obvious that the first condition is a try, preparing the normal conditions."
[example1]
project="phpMyAdmin"
file="libraries/classes/Response.php"
line="345"
code="        if ($this->_isSuccess) {
            $this->_JSON['success'] = true;
        } else {
            $this->_JSON['success'] = false;
            $this->_JSON['error']   = $this->_JSON['message'];
            unset($this->_JSON['message']);
        }

        if ($this->_isSuccess) {";
explain="The first test on $this->_isSuccess settles the situation with _JSON. Then, a second check is made. Both could be merged, also the second one is fairly long (not shown). "
[example2]
project="Phpdocumentor"
file="src/phpDocumentor/Transformer/Command/Project/TransformCommand.php"
line="239"
code="        $templates = $input->getOption('template');
        if (!$templates) {
            /** @var Template[] $templatesFromConfig */
            $templatesFromConfig = $configurationHelper->getConfigValueFromPath('transformations/templates');
            foreach ($templatesFromConfig as $template) {
                $templates[] = $template->getName();
            }
        }

        if (!$templates) {
            $templates = array('clean');
        }
";
explain="$templates is extracted from $input. If it is empty, a second source is polled. Finally, if nothing has worked, a default value is used ('clean'). In this case, each attempt is an alternative solution to the previous failing call. The second test could be reported on $templatesFromConfig, and not $templates."
name = "Property Variable Confusion";
description = "Within a class, there is both a property and variables bearing the same name. 

<?php
class Object {
    private $x;
    
    function SetData( ) {
        $this->x = $x + 2;
    }
}
?>

The property and the variable may easily be confused one for another and lead to a bug. 

Sometimes, when the property is going to be replaced by the incoming argument, or data based on that argument, this naming schema is made on purpose, indicating that the current argument will eventually end up in the property. When the argument has the same name as the property, no warning is reported.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";

modifications[] = "Use different names for the properties and variables";
modifications[] = "Adopt and apply a naming convention for variables and properties.";

[example1]
project="PhpIPAM"
file="functions/classes/class.Admin.php"
line="16"
code="
	/**
	 * (array of objects) to store users, user id is array index
	 *
	 * @var mixed
	 * @access public
	 */
	public $users;

////////////

	/**
	 * Fetches all users that are in group
	 *
	 * @access public
	 * @return array of user ids
	 */
	public function group_fetch_users ($group_id) {
		$out = array ();
		# get all users
		$users = $this->fetch_all_objects("users");
		# check if $gid in array
		if($users!==false) {
			foreach($users as $u) {
				$group_array = json_decode($u->groups, true);
				$group_array = $this->groups_parse($group_array);

				if(sizeof($group_array)>0) {
					foreach($group_array as $group) {
						if(in_array($group_id, $group)) {
							$out[] = $u->id;
						}
					}
				}
			}
		}
		# return
		return isset($out) ? $out : array();
	}
";
explain="There is a property called '$users'. It is easy to mistake $this->users and $users. Also, it seems that $this->users may be used as a cache system, yet it is not employed here. "
name = "Phpinfo";
description = "phpinfo() is a great function to learn about the current configuration of the server.

<?php

if (DEBUG) {
    phpinfo();
}

?>

If left in the production code, it may lead to a critical leak, as any attacker gaining access to this data will know a lot about the server configuration.

It is advised to never leave that kind of instruction in a production code. 

phpinfo() may be necessary to access some specific configuration of the server : for example, ``Apache`` module list are only available via phpinfo(), and apache_get(), when they are loaded.

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
modifications[] = "Remove all usage of phpinfo()"
modifications[] = "Add one or more constant to fine-tune the phpinfo(), and limit the amount of displayed information"
modifications[] = "Replace phpinfo() with a more adapted method : get_loaded_extensions() to access the list of loaded extensions"
[example1]
project="Dolphin"
file="Dolphin-v.7.3.5/install/exec.php"
line="4"
code="<?php

    if (!empty($_POST['phpinfo']))
        phpinfo();
    elseif (!empty($_POST['gdinfo']))
        echo '<pre>' . print_r(gd_info(), true) . '</pre>';

?>
<center>

    <form method=post>
        <input type=submit name=phpinfo value=\"PHP Info\">
    </form>
    <form method=post>
        <input type=submit name=gdinfo value=\"GD Info\">
    </form>

</center>
";
explain="An actual phpinfo(), available during installation. Note that the phpinfo() is actually triggered by a hidden POST variable. "

name = "Unsupported Operand Types";
description = "This error is raised when trying to combine an array and a scalar value. 

Always checks that the types are compatible with the planned operations.

<?php

const MY_ARRAY = 'error';

// This leads to the infamous "Unsupported operand types" error
$b = MY_ARRAY + array(3,4);

?>

PHP detects this error at linting time, when using literal values. When static expression are involved, this error will appear at execution time.

See also `PHP - Fatal error: Unsupported operand types [duplicate] <https://stackoverflow.com/questions/2108875/php-fatal-error-unsupported-operand-types>`_.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.7.2";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Make sure all the planned operations are compatible with the type used."

; A PHP error that may be emitted by the target faulty code
phpError[] = "Unsupported operand types"
name = "Nested Ifthen";
description = "Three levels of ifthen is too much. The method should be split into smaller functions.

<?php

function foo($a, $b) {
    if ($a == 1) {
        // Second level, possibly too much already
        if ($b == 2) {
            
        }
    }
}

function bar($a, $b, $c) {
    if ($a == 1) {
        // Second level. 
        if ($b == 2) {
            // Third level level. 
            if ($c == 3) {
                // Too much
            }
        }
    }
}

?>
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

[parameter1]
name="nestedIfthen";
default="3";
type="integer";
description="Maximal number of acceptable nesting of if-then structures";

modifications[] = "Move some of the if-then structure to an external method"
modifications[] = "Turn the nested if-then into a switch"
modifications[] = "Put any condition that terminate the method call early, so that else is not needed."
modifications[] = "Turn the method into a class, using the properties to split the code into smaller methods."

[example1]
project="LiveZilla"
file="livezilla/_lib/objects.global.inc.php"
line="847"
code="        if(isset(Server::$Configuration->File[\"gl_url_detect\"]) && !Server::$Configuration->File[\"gl_url_detect\"] && isset(Server::$Configuration->File[\"gl_url\"]) && !empty(Server::$Configuration->File[\"gl_url\"]))
        {
            $url = Server::$Configuration->File[\"gl_url\"];
        }
        else if(isset($_SERVER[\"HTTP_HOST\"]) && !empty($_SERVER[\"HTTP_HOST\"]))
        {
            $host = $_SERVER[\"HTTP_HOST\"];
            $path = $_SERVER[\"PHP_SELF\"];

            if(!empty($path) && !Str::EndsWith(strtolower($path),strtolower($_file)) && strpos(strtolower($path),strtolower($_file)) !== false)
            {
                if(empty(Server::$Configuration->File[\"gl_kbmr\"]))
                {
                    Logging::DebugLog(serialize($_SERVER));
                    exit(\"err 888383; can't read \$_SERVER[\\"HTTP_HOST\\"] and \$_SERVER[\\"PHP_SELF\\"]\");
                }
            }

            define(\"LIVEZILLA_DOMAIN\",Communication::GetScheme() . $host);
            $url = LIVEZILLA_DOMAIN . str_replace($_file,\"\",htmlentities($path,ENT_QUOTES,\"UTF-8\"));
        }
";
explain="The first condition is fairly complex, and could also return early. Then, the second nested if could be merged into one : this would reduce the number of nesting, but make the condition higher. "

[example2]
project="MediaWiki"
file="includes/Linker.php"
line="1493"
code="	public static function normalizeSubpageLink( $contextTitle, $target, &$text ) {
		$ret = $target; # default return value is no change

		# Some namespaces don't allow subpages,
		# so only perform processing if subpages are allowed
		if (
			$contextTitle && MediaWikiServices::getInstance()->getNamespaceInfo()->
			hasSubpages( $contextTitle->getNamespace() )
		) {
			$hash = strpos( $target, '#' );
			if ( $hash !== false ) {
				$suffix = substr( $target, $hash );
				$target = substr( $target, 0, $hash );
			} else {
				$suffix = '';
			}
			# T9425
			$target = trim( $target );
			$contextPrefixedText = MediaWikiServices::getInstance()->getTitleFormatter()->
				getPrefixedText( $contextTitle );
			# Look at the first character
			if ( $target != '' && $target[0] === '/' ) {
				# / at end means we don't want the slash to be shown
				$m = [];
				$trailingSlashes = preg_match_all( '%(/+)$%', $target, $m );
				if ( $trailingSlashes ) {
					$noslash = $target = substr( $target, 1, -strlen( $m[0][0] ) );
				} else {
					$noslash = substr( $target, 1 );
				}

				$ret = $contextPrefixedText . '/' . trim( $noslash ) . $suffix;
				if ( $text === '' ) {
					$text = $target . $suffix;
				} # this might be changed for ugliness reasons
			} else {
				# check for .. subpage backlinks
				$dotdotcount = 0;
				$nodotdot = $target;
				while ( strncmp( $nodotdot, \"../\", 3 ) == 0 ) {
					++$dotdotcount;
					$nodotdot = substr( $nodotdot, 3 );
				}
				if ( $dotdotcount > 0 ) {
					$exploded = explode( '/', $contextPrefixedText );
					if ( count( $exploded ) > $dotdotcount ) { # not allowed to go below top level page
						$ret = implode( '/', array_slice( $exploded, 0, -$dotdotcount ) );
						# / at the end means don't show full path
						if ( substr( $nodotdot, -1, 1 ) === '/' ) {
							$nodotdot = rtrim( $nodotdot, '/' );
							if ( $text === '' ) {
								$text = $nodotdot . $suffix;
							}
						}
						$nodotdot = trim( $nodotdot );
						if ( $nodotdot != '' ) {
							$ret .= '/' . $nodotdot;
						}
						$ret .= $suffix;
					}
				}
			}
		}

		return $ret;
	}
";
explain="There are 5 level of nesting here, from the beginning of the method, down to the last condition. All work on local variables, as it is a static method. May be breaking this into smaller functions would help readability."


name = "Should Use Explode Args";
description = "explode() has a third argument, which limits the amount of exploded elements. With it, it is possible to collect only the first elements, or drop the last ones.

<?php

$exploded = explode(DELIMITER, $string);

// use explode(DELIMITER, $string, -1);
array_pop($exploded);

// use explode(DELIMITER, $string, -2);
$c = array_slice($exploded, 0, -2);

// with explode()'s third argument : 
list($a, $b) = explode(DELIMITER, $string, 2);

// with list() omitted arguments
list($a, $b, ) = explode(DELIMITER, $string);

?>

See also `explode <https://www.php.net/manual/en/function.explode.php>`_.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.4";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "More Than One Level Of Indentation";
description = "According to PHP Object Calisthenics, one level of indentation is sufficient.

It helps to abide by the Single Responsibility rule and increase reuse.

<?php

class foo {
    function multipleLevels($array) {
        $return = array();
        foreach($array as $b) {

            // This is a second level of indentation
            if ($this->check($b)) { continue; }
            $return[] = $b;
        }
        return $return;
    }

    function oneLevel($array) {
        $return = array_filter($array, array($this, 'check'));
        return $return;
    }

}

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.9";
name = "Avoid Large Array Assignation";
description = "Avoid setting large arrays to local variables. This is done every time the function is called.

There are different ways to avoid this : inject the array, build the array once. Using an constant or even a global variable is faster.

The effect on small arrays (less than 10 elements) is not significant. Arrays with 10 elements or more are reported here. The effect is also more important on functions that are called often, or within loops.

<?php

// with constants, for functions
const ARRAY = array(1,2,3,4,5,6,7,8,9,10,11);
function foo() {
    $array = ARRAY;
    //more code
}

// with class constants, for methods 
class x {
    const ARRAY = array(1,2,3,4,5,6,7,8,9,10,11);
    function foo() {
        $array = self::ARRAY;
        //more code
    }
}

// with properties, for methods 
class x {
    private $array = array(1,2,3,4,5,6,7,8,9,10,11);
    
    function foo() {
        $array = $this->array;
        //more code
    }
}

// injection, leveraging default values
function foo($array = array(1,2,3,4,5,6,7,8,9,10,11)) {
    //more code
}

// local cache with static
function foo() {
    static $array;
    if ($array === null) {
        $array = array(1,2,3,4,5,6,7,8,9,10,11);
    }
    
    //more code
}

// Avoid creating the same array all the time in a function
class x {
    function foo() {
        // assign to non local variable is OK. 
        // Here, to a property, though it may be better in a __construct or as default values
        $this->s = array(1,2,3,4,5,6,7,8,9,10,11);

        // This is wasting resources, as it is done each time. 
        $array = array(1,2,3,4,5,6,7,8,9,10,11);
    }
}

?>
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.9.7";name = "New Line Style";
description = "New lines may be written with the sequence \n or with the constant PHP_EOL.

When one of those alternatives is used over 90% of the time, it is considered as standard : the remaining are reported.

\n are only located when used alone, in "\n" (including the double quotes). When \n is used inside a double-quoted string, its replacement with PHP_EOL would be cumbersome : as such, they are ignored by this analyzer.

<?php

// This may be repeated over 10 times
$a = "PHP is a great language\n";
$a .= "\n";

// This only appears once in the code : this line is reported.
$b = $a.PHP_EOL.$c;

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.9.8";name = "Break Outside Loop";
description = "Starting with PHP 7, break or continue that are outside a loop (for, foreach(), do...while(), while()) or a switch() statement won't compile anymore.

It is not possible anymore to include a piece of code inside a loop that will then break.

<?php

    // outside a loop : This won't compile
    break 1; 
    
    foreach($array as $a) {
        break 1; // Compile OK

        break 2; // This won't compile, as this break is in one loop, and not 2
    }

    foreach($array as $a) {
        foreach($array2 as $a2) {
            break 2; // OK in PHP 5 and 7
        }
    }
?>


";
clearphp = "";
phpversion = "7.0-";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "@ Operator";
description = "@ is the 'no scream' operator : it suppresses error output. 

<?php

// Set x with incoming value, or else null. 
$x = @$_GET['x'];

?>

This operator is actually very slow : it will process the error all the way up, and finally decide not to display it. It is often faster to check the conditions first, then run the method without ``@``.

You may also set display_error to 0 in the ``php.ini`` : this will avoid user's error display, but will keep the error in the PHP logs, for later processing. 

The only situation where ``@`` is useful is when a native PHP function displays errors messages when error happens and there is no way to check it from the code. 

This is the case with fopen(), stream_socket_server(), token_get_all(). 

See also `Error Control Operators <http://php.net/manual/en/language.operators.errorcontrol.php>`_ and 
         `Five reasons why the shut-op operator should be avoided <https://derickrethans.nl/five-reasons-why-the-shutop-operator-should-be-avoided.html>`_. 
";
clearphp = "no-noscream";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Remove the @ operator by default"

[example1]
project="Phinx"
file="src/Phinx/Util/Util.php"
line="239"
code="        $isReadable = @\fopen($filePath, 'r') !== false;

        if (!$filePath || !$isReadable) {
            throw new \Exception(sprintf("Cannot open file %s \n", $filename));
        }
";
explain="fopen() may be tested for existence, readability before using it. Although, it actually emits some errors on Windows, with network volumes."

[example2]
project="PhpIPAM"
file="functions/classes/class.Log.php"
line="322"
code=" $_SESSION['ipamusername']";
explain="Variable and index existence should always be tested with isset() : it is faster than using ``@``."
name = "preg_replace With Option e";
description = "preg_replace() supported the /e option until PHP 7.0. It allowed the use of eval()'ed expression as replacement. This has been dropped in PHP 7.0, for security reasons.

preg_replace() with /e option may be replaced with preg_replace_callback() and a closure, or preg_replace_callback_array() and an array of closures.

<?php

// preg_replace with /e
$string = 'abcde';

// PHP 5.6 and older usage of /e
$replaced = preg_replace('/c/e', 'strtoupper($0)', $string);

// PHP 7.0 and more recent
// With one replacement
$replaced = preg_replace_callback('/c/', function ($x) { return strtoupper($x[0]); }, $string);

// With several replacements, preventing multiple calls to preg_replace_callback
$replaced = preg_replace_callback_array(array('/c/' => function ($x) { return strtoupper($x[0]); },
                                              '/[a-b]/' => function ($x) { return strtolower($x[0]); }), $string);
?>

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
modifications[] = "Replace call to preg_replace() and /e with preg_replace_callback() or preg_replace_callback_array()"
[example1]
project="Edusoho"
file="vendor_user/uc_client/lib/uccode.class.php"
line="32"
code="			$message = preg_replace(\"/\s*\[code\](.+?)\[\/code\]\s*/ies\", \"\$this->codedisp('\\1')\", $message);";
explain="This call extract text between [code] tags, then process it with $this->codedisp() and nest it again in the original string. preg_replace_callback() is a drop-in replacement for this piece of code. "
name = "Regex Delimiter";
description = "PCRE regular expressions may use a variety of delimiters. 

There seems to be a standard delimiter in the code, and some exceptions : one or several forms are dominant (> 90%), while the others are rare. 

The analyzed code has less than 10% of the rare delimiters. For consistency reasons, it is recommended to make them all the same. 

Generally, one or two delimiters are used, depending on the expected special chars in the scanned strings : for example, / tends to be avoided when parsing HTML.

Regex are literals, or partial literals, used in preg_match(), preg_match_all(), preg_replace(), preg_replace_callback(), preg_replace_callback_array().

<?php

echo 'a';
echo 'b';
echo 'c';
echo 'd';
echo 'e';
echo 'f';
echo 'g';
echo 'h';
echo 'i';
echo 'j';
echo 'k';

// This should probably be written 'echo';
print 'l';

?>

See also `Ideal regex delimiters in PHP <http://codelegance.com/ideal-regex-delimiters-in-php/>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.10.5";name = "Merge If Then";
description = "Two successive if/then into one, by merging the two conditions.

<?php

// two merge conditions
if ($a == 1 && $b == 2) {
    // doSomething()
}

// two distinct conditions
// two nesting
if ($a == 1) {
    if ($b == 2) {
        // doSomething()
    }
}

?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.9";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Merge the two structures into one"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Function Subscripting, Old Style";
description = "Since PHP 5.4, it is now possible use function results as an array, and access directly its element : 

<?php

function foo() {
    return array(1 => 'a', 'b', 'c');
}

echo foo()[1]; // displays 'a';

// Function subscripting, the old way
function foo() {
    return array(1 => 'a', 'b', 'c');
}

$x = foo();
echo $x[1]; // displays 'a';

?>

";
clearphp = "";
phpversion = "5.4+";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Skip the local variable and directly use the return value from the function";

[example1]
project="OpenConf"
file="openconf/include.php"
line="1469"
code="	$advocateid = false;
	if (isset($GLOBALS['OC_configAR']['OC_paperAdvocates']) && $GLOBALS['OC_configAR']['OC_paperAdvocates']) {
		$ar = ocsql_query(""SELECT `advocateid` FROM `"" . OCC_TABLE_PAPERADVOCATE . ""` WHERE `paperid`='"" . safeSQLstr($pid) . ""'"") or err('Unable to retrieve advocate');
		if (ocsql_num_rows($ar) == 1) {
			$al = ocsql_fetch_assoc($ar);
			$advocateid = $al['advocateid'];
		}
	}
";
explain="Here, $advocateid may be directly read from ocsql_fetch_assoc(), although, checking for the existence of 'advocateid' before accessing it would make the code more robust"

name = "Ternary In Concat";
description = "Ternary and coalesce operator have higher priority than dot '.' for concatenation. This means that : 

<?php
  // print B0CE as expected  
  print 'B'.$b.'C'. ($b > 1 ? 'D') : 'E';

  // print E, instead of B0CE
  print 'B'.$b.'C'. $b > 1 ? 'D' : 'E';

  print 'B'.$b.'C'. $b > 1 ? 'D' : 'E';
?>

prints actually 'E', instead of the awaited 'B0CE'.

To be safe, always add parenthesis when using ternary operator with concatenation.

See also `Operator Precedence <http://php.net/manual/en/language.operators.precedence.php>`_.

";
clearphp = "";
severity = "S_CRITICAL";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Use parenthesis "
modifications[] = "Avoid ternaries and coalesce operators inside a string"

[example1]
project="TeamPass"
file="includes/libraries/protect/AntiXSS/UTF8.php"
line="5409"
code="$str1 . '' === $str2 . '' ? 0 : strnatcmp(self::strtonatfold($str1), self::strtonatfold($str2))";
explain="The concatenations in the initial comparison are disguised casting. When $str2 is empty too, the ternary operator yields a 0, leading to a systematic failure. "
name = "Unpreprocessed Values";
description = "Preprocessing values is the preparation of values before PHP executes the code. 

There is no macro language in PHP, that prepares the code before compilation, bringing some comfort and short syntax. Most of the time, one uses PHP itself to preprocess data. 

For example : 

<?php
    $days_en = 'monday,tuesday,wednesday,thursday,friday,saturday,sunday';
    $days_zh = '星期－,星期二,星期三,星期四,星期五,星期六,星期日';

    $days = explode(',', $lang === 'en' ? $days_en : $days_zh); 
?>

could be written 

<?php
    if ($lang === 'en') {
        $days = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'];
    } else {
        $days = ['星期－', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日'];
    }
?>

and avoid preprocessing the string into an array first. 

Preprocessing could be done anytime the script includes all the needed values to process the expression. 

";
clearphp = "always-preprocess";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
modifications[] = "Preprocess the values and hardcode them in PHP. Do not use PHP to calculate something at the last moment."
modifications[] = "Use already processed values, or cache to avoid calculating the value each hit."
modifications[] = "Create a class that export the data in the right format for every situation, including the developer's comfort."
[example1]
project="Zurmo"
file="app/protected/core/utils/ZurmoTranslationServerUtil.php"
line="79"
code="join('.', array(MAJOR_VERSION, MINOR_VERSION))	";
explain="It seems that a simple concatenation could be used here. There is another call to this expression in the code, and a third that uses 'PATCH_VERSION' on top of the two others."
[example2]
project="Piwigo"
file="include/random_compat/random.php"
line="34"
code="explode('.', PHP_VERSION);";
explain="PHP_VERSION is actually build with PHP_MAJOR_VERSION, PHP_MINOR_VERSION and PHP_RELEASE_VERSION. There is also a compact version : PHP_VERSION_ID"

name = "Mbstring Unknown Encoding";
description = "The encoding used is not known to the ext/mbstring extension.

This analysis takes in charge all ``mbstring`` encoding and aliases. The full list of supported mbstring encoding is available with mb_list_encodings(). Each encoding alias is available with mb_encoding_aliases().

<?php

// Invalid encoding
$str = mb_strtolower($str, 'utf_8');

// Valid encoding
$str = mb_strtolower($str, 'utf8');
$str = mb_strtolower($str, 'UTF8');
$str = mb_strtolower($str, 'UTF-8');

?>

See also `ext/mbstring <http://www.php.net/manual/en/book.mbstring.php>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.9";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Use a valid mbstring encoding"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Could Use str_repeat()";
description = "Use str_repeat() or str_pad() instead of making a loop.

Making a loop to repeat the same concatenation is actually much longer than using str_repeat(). As soon as the loop repeats more than twice, str_repeat() is much faster. With arrays of 30, the difference is significant, though the whole operation is short by itself. 

<?php

// This adds 7 'e' to $x
$x .= str_repeat('e', 7);

// This is the same as above, 
for($a = 3; $a < 10; ++$a) {
    $x .= 'e';
}

// here, $default must contains 7 elements to be equivalent to the previous code
foreach($default as $c) {
    $x .= 'e';
}

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.11.0";

modifications[] = "Use strrepeat() whenever possible"

[example1]
project="Zencart"
file="includes/functions/functions_general.php"
line="1234"
code="    if ( (!zen_browser_detect('MSIE')) && (zen_browser_detect('Mozilla/4')) ) {
      for ($i=0; $i<45; $i++) $pre .= '&nbsp;';
    }
";
explain="That's a 45 repeat of &nbsp;"
name = "Dynamic Code";
description = "List of instructions that were left during analysis, as they rely on dynamic data. 

<?php

// Dynamic call to 'method';
$name = 'method';
$object->$name();

// Hard coded call to 'method';
$object->method();

?>

Any further analysis will need to start from here.

See also `Variable functions <http://php.net/manual/en/functions.variable-functions.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "include_once() Usage";
description = "include_once() and require_once() functions should be avoided for performances reasons.

<?php

// Including a library. 
include 'lib/helpers.inc';

// Including a library, and avoiding double inclusion
include_once 'lib/helpers.inc';

?>

Try using autoload for loading classes, or use include() or require() and make it possible to include several times the same file without errors.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Avoid using include_once() whenever possible "
modifications[] = "Use autoload() to load classes, and avoid loading them with include"

[example1]
project="XOOPS"
file="/htdocs/xoops_lib/modules/protector/admin/center.php"
line="5"
code="require_once dirname(__DIR__) . 'class/gtickets.php'";
explain="Loading() classes should be down with autoload(). autload() may be build in several distinct functions, using spl_autoload_register()."

[example2]
project="Tikiwiki"
file="tiki-mytiki_shared.php "
line="140"
code="include_once('tiki-mytiki_shared.php');";
explain="Turn the code from tiki-mytiki_shared.php into a function or a method, and call it when needed. "
name = "No Empty Regex";
description = "PHP regex don't accept empty regex, nor regex with alphanumeric delimiter.

Most of those errors happen at execution time, when the regex is build dynamically, but still may end empty. At compile time, such error are made when the code is not tested before commit.

<?php

// No empty regex
preg_match('', $string, $r); 

// Delimiter must be non-alphanumerical
preg_replace('1abc1', $string, $r); 

// Delimiter must be non-alphanumerical
preg_replace('1'.$regex.'1', $string, $r); 

?>

See also `PCRE <http://php.net/pcre>`_ and `Delimiters <http://php.net/manual/en/regexp.reference.delimiters.php>`_.
";
clearphp = "";
severity = "S_CRITICAL";
timetofix = "T_QUICK";
exakatSince = "0.11.1";
modifications[] = "Fix the regex by adding regex delimiters"
phpError[] = "Delimiter must not be alphanumeric or backslash "
[example1]
project="Tikiwiki"
file="lib/sheet/excel/writer/worksheet.php"
line="1925"
code="        // Strip URL type
        $url = preg_replace('s[^internal:]', '', $url);
";
explain="The initial 's' seems to be too much. May be a typo ? "

name = "Bail Out Early";
description = "When using conditions, it is recommended to quit in the current context, and avoid else clause altogether. 

The main benefit is to make clear the method applies a condition, and stop immediately when it is not satisfied. 
The main sequence is then focused on the actual code. 

This works with the ``break``, ``continue``, ``throw`` and ``goto`` keywords too, depending on situations.

<?php

// Bailing out early, low level of indentation
function foo1($a) {
    if ($a > 0) {
        return false;
    } 
    
    $a++;
    return $a;
}

// Works with continue too
foreach($array as $a => $b) {
    if ($a > 0) {
        continue false;
    } 
    
    $a++;
    return $a;
}

// No need for else
function foo2($a) {
    if ($a > 0) {
        return false;
    } else {
        $a++;
    }
    
    return $a;
}

// No need for else : return goes into then. 
function foo3($a) {
    if ($a < 0) {
        $a++;
    } else {
        return false;
    }
    
    return $a;
}

// Make a return early, and make the condition visible.
function foo3($a) {
    if ($a < 0) {
        $a++;
        methodcall();
        functioncall();
    } 
}

?>

See also `Avoid nesting too deeply and return early (part 1) <https://github.com/jupeter/clean-code-php#avoid-nesting-too-deeply-and-return-early-part-1>`_ and 
         `Avoid nesting too deeply and return early (part 2) <https://github.com/jupeter/clean-code-php#avoid-nesting-too-deeply-and-return-early-part-2>`_.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.9";
modifications[] = "Detect errors, and then, return as soon as possible."
modifications[] = "When a if...then branches are unbalanced, test for the small branch, finish it with return. Then keep the other branch as the main code."
[example1]
project="OpenEMR"
file="interface/modules/zend_modules/module/Carecoordination/src/Carecoordination/Controller/EncounterccdadispatchController.php"
line="69"
code="      public function ccdaFetching($parameterArray = array())
    {
        $validResult = $this->getEncounterccdadispatchTable()->valid($parameterArray[0]);
        // validate credentials
        if ($validResult == 'existingpatient') {
/// Long bloc of code
        } else {
            return '<?xml version="1.0" encoding="UTF-8"?>
			<!-- Edited by XMLSpy -->
			<note>

				<heading>Authetication Failure</heading>
				<body></body>
			</note>
			';
        }
";
explain="This is a typical example of a function mostly controlled by one condition. It could be rewrite as 'if($validResult != 'existingpatient')' then return. The 'else' clause is not used anymore, and the whole block of code is now the main sequence of the method. "
[example2]
project="opencfp"
file="chair/assign_auto_reviewers_weighted_topic_match.inc"
line="105"
code="function oc_inConflict(&$conflictAR, $pid, $rid=null) {
	if ($rid == null) {
		$rid = $_SESSION[OCC_SESSION_VAR_NAME]['acreviewerid'];
	}
	if (!in_array($pid.'-'.$rid, $conflictAR)) {
		return false; // not in conflict
	} else {
		$tempr = ocsql_query(\"SELECT COUNT(*) AS `count` FROM `\" . OCC_TABLE_PAPERREVIEWER . \"` WHERE `paperid`='\" . safeSQLstr($pid) . \"' AND `reviewerid`='\" . safeSQLstr($rid) . \"'\");
		if ((ocsql_num_rows($tempr) == 1)
			&& ($templ = ocsql_fetch_assoc($tempr))
			&& ($templ['count'] == 1)
		) {
			return false; // assigned as reviewer
		} else {
			$tempr = ocsql_query(\"SELECT COUNT(*) AS `count` FROM `\" . OCC_TABLE_PAPERADVOCATE . \"` WHERE `paperid`='\" . safeSQLstr($pid) . \"' AND `advocateid`='\" . safeSQLstr($rid) . \"'\");
			if ((ocsql_num_rows($tempr) == 1)
				&& ($templ = ocsql_fetch_assoc($tempr))
				&& ($templ['count'] == 1)
			) {
				return false; // assigned as advocate
			}
		}
	}
	return true;
}
";
explain="This long example illustrates two aspects : first, the shortcut to the end of the method may be the 'then' clause, not necessarily the 'else'. '!in_array($pid.'-'.$rid, $conflictAR)' leads to return, and the 'else' should be removed, while keeping its content. Secondly, we can see 3 conditions that all lead to a premature end to the method. After refactoring all of them, the method would end up with 1 level of indentation, instead of 3."

name = "Infinite Recursion";
description = "A method is calling itself, with unchanged arguments. This will probably repeat indefinitely.

This applies to recursive functions without any condition. This also applies to function which inject the incoming arguments, without modifications.

<?php

function foo($a, $b) {
    if ($a > 10) {
        return;
    }
    foo($a, $b);
}

function foo2($a, $b) {
    ++$a;   // $a is modified
    if ($a > 10) {
        return;
    }
    foo2($a, $b);
}

?>
";
clearphp = "";
severity = "S_MAJOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.8.6";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Modify arguments before injecting them again in the same method"
modifications[] = "Use different values when calling the same method"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Suspicious Comparison";
description = "The comparison seems to be misplaced.

A comparison happens in the last argument, while the actual function expect another type : this may be the case of a badly placed parenthesis.

<?php

// trim expect a string, a boolean is given.
if (trim($str === '')){

}

// Just move the first closing parenthesis to give back its actual meaning
if (trim($str) === ''){

}

?>

Original idea by `Vladimir Reznichenko <https://twitter.com/kalessil>`_. 

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "0.11.0";
modifications[] = "Remove the comparison altogether";
modifications[] = "Move the comparison to its right place : that, or more the parenthesis.";
modifications[] = "This may be what is intended : just leave it.";
[example1]
project="PhpIPAM"
file="app/tools/vrf/index.php"
line="110"
code="$subnet['description'] = strlen($subnet['description']==0) ? \"/\" : $subnet['description'];";
explain="if $subnet['description'] is a string, the comparison with 0 turn it into a boolean. false's length is 0, and true length is 1. PHP saves the day."
[example2]
project="ExpressionEngine"
file="ExpressionEngine_Core2.9.2/system/expressionengine/libraries/simplepie/SimplePie/Misc.php"
line="1925"
code="		if (isset($attribs['']['mode']) && strtolower(trim($attribs['']['mode']) === 'base64'))";
explain="If trim($attribs['']['mode']) === 'base64', then it is set to lowercase (although it is already), and added to the && logical test. If it is 'BASE64', this fails."
name = "Can't Count Non-Countable";
description = "Count() emits an error when it tries to count scalars or objects what don't implement Countable interface.

<?php

// Normal usage
$a = array(1,2,3,4);
echo count($a)." items\n";

// Error emiting usage
$a = '1234';
echo count($a)." chars\n";

// Error emiting usage
echo count($unsetVar)." elements\n";

?>

See also `Warn when counting non-countable types <http://php.net/manual/en/migration72.incompatible.php#migration72.incompatible.warn-on-non-countable-types>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "1.0.4";name = "Could Use array_unique";
description = "Use array_unique() to collect unique elements from an array.

Always try to use native PHP functions, instead of rebuilding them with custom PHP code.

<?php

    $unique = array();
    foreach ($array as $b) {
        if (!in_array($b, $unique)) {
            /*  May be more code */
            $unique[] = $b;
        }
    }
?>

See also `array_unique <http://php.net/array_unique>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "1.2.6";
modifications[] = "Turn the foreach() and its condition into a call to array_unique()"
modifications[] = "Extract the condition from the foreach() and add a separate call to array_unique()"
[example1]
project="Dolibarr"
file="htdocs/includes/restler/framework/Luracast/Restler/Format/XmlFormat.php"
line="250"
code="            $attributes = $xml->attributes();
            foreach ($attributes as $key => $value) {
                if (static::$importSettingsFromXml
                    && !in_array($key, static::$attributeNames)
                ) {
                    static::$attributeNames[] = $key;
                }
                $r[$key] = static::setType((string)$value);
            }
";
explain="This loop has two distinct operations : the first collect keys and keep them unique. A combinaison of array_keys() and array_unique() would do that job, while saving the in_array() lookup, and the configuration check with 'static::$importSettingsFromXml'. The second operation is distinct, and could be done with array_map()."
[example2]
project="OpenEMR"
file="gacl/gacl_api.class.php:441"
line="441"
code="				foreach ($aro_value_array as $aro_value) {
					if ( count($acl_array['aro'][$aro_section_value]) != 0 ) {
						if (!in_array($aro_value, $acl_array['aro'][$aro_section_value])) {
							$this->debug_text(\"append_acl(): ARO Section Value: $aro_section_value ARO VALUE: $aro_value\");
							$acl_array['aro'][$aro_section_value][] = $aro_value;
							$update=1;
						} else {
							$this->debug_text(\"append_acl(): Duplicate ARO, ignoring... \");
						}
					} else { //Array is empty so add this aro value.
						$acl_array['aro'][$aro_section_value][] = $aro_value;
						$update = 1;
					}
				}

";
explain="This loop is quite complex : it collects $aro_value in $acl_array['aro'][$aro_section_value], but also creates the array in $acl_array['aro'][$aro_section_value], and report errors in the debug log. array_unique() could replace the collection, while the debug would have to be done somewhere else."
name = "Same Conditions In Condition";
description = "At least two consecutive if/then structures use identical conditions. The latter will probably be ignored.

This analysis returns false positive when there are attempt to fix a situation, or to call an alternative solution. 

<?php

if ($a == 1) { doSomething(); }
elseif ($b == 1) { doSomething(); }
elseif ($c == 1) { doSomething(); }
elseif ($a == 1) { doSomething(); }
else {}

// Also works on if then else if chains
if ($a == 1) { doSomething(); }
else if ($b == 1) { doSomething(); }
else if ($c == 1) { doSomething(); }
else if ($a == 1) { doSomething(); }
else {}

// This sort of situation generate false postive. 
$config = load_config_from_commandline();
if (empty($config)) {
    $config = load_config_from_file();
    if (empty($config)) {
        $config = load_default_config();
    }
}

?>
";
clearphp = "";
severity = "S_CRITICAL";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Merge the two conditions into one"
modifications[] = "Make the two conditions different"

[example1]
project="TeamPass"
file="sources/identify.php"
line="1096"
code="
            if ($result == 1) {
                $return = \"\";
                $logError = \"\";
                $proceedIdentification = true;
                $userPasswordVerified = false;
                unset($_SESSION['hedgeId']);
                unset($_SESSION['flickercode']);
            } else {
                if ($result < -10) {
                    $logError = \"ERROR: \".$result;
                } elseif ($result == -4) {
                    $logError = \"Wrong response code, no more tries left.\";
                } elseif ($result == -3) {
                    $logError = \"Wrong response code, try to reenter.\";
                } elseif ($result == -2) {
                    $logError = \"Timeout. The response code is not valid anymore.\";
                } elseif ($result == -1) {
                    $logError = \"Security Error. Did you try to verify the response from a different computer?\";
                } elseif ($result == 1) {
                    $logError = \"Authentication successful, response code correct.
                          <br /><br />Authentification Method for SecureBrowser updated!\";
                    // Add necessary code here for accessing your Business Application
                }
                $return = \"agses_error\";
                echo '[{\"value\" : \"'.$return.'\", \"user_admin\":\"',
                isset($_SESSION['user_admin']) ? $_SESSION['user_admin'] : \"\",
                '\", \"initial_url\" : \"'.@$_SESSION['initial_url'].'\",
                \"error\" : \"'.$logError.'\"}]';

                exit();
            }
";
explain="`$result == 1` is use once in the main if/then, then again the second if/then/elseif structure. Both are incompatible, since, in the else, `$result` will be different from 1. "

[example2]
project="Typo3"
file="typo3/sysext/recordlist/Classes/RecordList/DatabaseRecordList.php"
line="1696"
code="
                            } elseif ($table === 'pages') {
                                $parameters = ['id' => $this->id, 'pagesOnly' => 1, 'returnUrl' => GeneralUtility::getIndpEnv('REQUEST_URI')];
                                $href = (string)$uriBuilder->buildUriFromRoute('db_new', $parameters);
                                $icon = '<a class=\"btn btn-default\" href=\"' . htmlspecialchars($href) . '\" title=\"' . htmlspecialchars($lang->getLL('new')) . '\">'
                                    . $spriteIcon->render() . '</a>';
                            } else {
                                $params = '&edit[' . $table . '][' . $this->id . ']=new';
                                if ($table === 'pages') {
                                    $params .= '&overrideVals[pages][doktype]=' . (int)$this->pageRow['doktype'];
                                }
                                $icon = '<a class=\"btn btn-default\" href=\"#\" onclick=\"' . htmlspecialchars(BackendUtility::editOnClick($params, '', -1))
                                    . '\" title=\"' . htmlspecialchars($lang->getLL('new')) . '\">' . $spriteIcon->render() . '</a>';
                            }
";
explain="`$table == 'pages` is caught initially, and if it fails, it is tested again in the final else. This won't happen.";
name = "Constant Conditions";
description = "If/then structures have constant condition. 

The condition doesn't change during execution, and the following blocks are always executed or not. This may also lead to an infinite or a null loop. 

When this is the case, the condition may be removed, and dead code may be removed. 

<?php

// static if
if (0.8) {
    $a = $x;
} else {
    $a = $y;
}

// static while
while (1) {
    $a = $x;
}

// static do..while
do {
    $a = $x;
} while ('b'. 'c');

// constant for() : No increment
for ($i = 0; $i < 10; ) {
    $a = $x;
}

// constant for() : No final check
for ( $i = 0; ; ++$i) {
    $a = $x;
}


// static ternary
$a = TRUE ? $x : $y;

?>

It is advised to remove them, or to make them depend on configuration.";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Empty With Expression";
description = "empty() doesn't accept expressions until PHP 5.5. Until then, it is necessary to store the result of the expression in a variable and then, test it with empty().

<?php

// PHP 5.5+ empty() usage
if (empty(strtolower($b . $c))) {
    doSomethingWithoutA();
}

// Compatible empty() usage
$a = strtolower($b . $c);
if (empty($a)) {
    doSomethingWithoutA();
}

?>

See also `empty <http://www.php.net/empty>`_.
";
clearphp = "";
phpversion = "5.5+";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Use the compatible syntax, and store the result in a local variable before testing it with empty"

[example1]
project="HuMo-Gen"
file="fanchart.php"
line="297"
code="			$pid=$treeid[$sosa][0];
			$birthyr=$treeid[$sosa][1];
			$deathyr=$treeid[$sosa][4];
			$fontpx=$fontsize;
			if($sosa>=16 AND $fandeg==180) { $fontpx=$fontsize-1; }
			if($sosa>=32 AND $fandeg!=180) { $fontpx=$fontsize-1; }
			if (!empty($pid)) {

";
explain="The test on $pid may be directly done on $treeid[$sosa][0]. The distance between the assignation and the empty() makes it hard to spot. "
name = "Objects Don't Need References";
description = "There is no need to create references for objects, as those are always passed by reference when used as arguments.

Note that when the argument is assigned another value, including another object, then the reference is needed : PHP forgets about reference when they are replaced.

<?php
    
    $object = new stdClass();
    $object->name = 'a';
    
    foo($object);
    print $object->name; // Name is 'b'
    
    // No need to make $o a reference
    function foo(&$o) {
        $o->name = 'b';
    }

    
    // $o is assigned inside the function : it must be called with a &, or the object won't make it out of the foo3 scope
    function foo3(&$o) {
        $o = new stdClass;
    }
    
    $array = array($object);
    foreach($array as &$o) { // No need to make this a reference
        $o->name = 'c';
    }

?>

See also `Passing by reference <http://php.net/manual/en/language.references.pass.php>`_.
";
clearphp = "no-references-on-objects";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Remove the reference"
modifications[] = "Assign the argument with a new value"

[example1]
project="Zencart"
file="includes/library/illuminate/support/helpers.php"
line="484"
code="    /**
     * @param $class
     * @param $eventID
     * @param array $paramsArray
     */
    public function updateNotifyCheckoutflowFinishedManageSuccessOrderLinkEnd(&$class, $eventID, $paramsArray = array())
    {
        $class->getView()->getTplVarManager()->se('flag_show_order_link', false);
    }
";
explain="No need for & operator when $class is only used for a method call."

[example2]
project="XOOPS"
file="htdocs/class/theme_blocks.phps"
line="221"
code="    public function buildBlock($xobject, &$template)
    {
        // The lame type workaround will change
        // bid is added temporarily as workaround for specific block manipulation
        $block = array(
            'id'      => $xobject->getVar('bid'),
            'module'  => $xobject->getVar('dirname'),
            'title'   => $xobject->getVar('title'),
            // 'name'        => strtolower( preg_replace( '/[^0-9a-zA-Z_]/', '', str_replace( ' ', '_', $xobject->getVar( 'name' ) ) ) ),
            'weight'  => $xobject->getVar('weight'),
            'lastmod' => $xobject->getVar('last_modified'));

        $bcachetime = (int)$xobject->getVar('bcachetime');
        if (empty($bcachetime)) {
            $template->caching = 0;
        } else {
            $template->caching        = 2;
            $template->cache_lifetime = $bcachetime;
        }
        $template->setCompileId($xobject->getVar('dirname', 'n'));
        $tplName = ($tplName = $xobject->getVar('template')) ? "db:$tplName" : 'db:system_block_dummy.tpl';
        $cacheid = $this->generateCacheId('blk_' . $xobject->getVar('bid'));
// more code to the end of the method
";
explain="Here, $template is modified, when its properties are modified. When only the properties are modified, or read, then & is not necessary."
name = "Substr To Trim";
description = "When removing the first or the last character of a string, trim() does a more readable job. 

trim(), ltrim() and rtrim() accept a string as second argument. Those will all be removed from the endings of the string.

<?php

$a = '$drop the dollar'; 
$b = substr($a, 1); // drop the first char 
$b = ltrim($a, '$'); // remove the initial '$'s


$b = substr($a, 1);     // replace with ltrim()

$b = substr($a, 0, -1); // replace with rtrim()

$b = substr($a, 1, -1); // replace with trim()

?>

trim() will remove all occurrences of the requested char(). This may remove a loop with substr(), or remove more than is needed. 

trim() doesn't work with multi-bytes strings, but so does substr(). For that, use mb_substr(), as there isn't any mb_trim function (yet).

See also `trim <https://www.php.net/manual/en/function.trim.php>`_, `ltrim <https://www.php.net/manual/en/function.ltrim.php>`_, `rtrim <https://www.php.net/manual/en/function.rtrim.php>`_.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.8.3";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Replace substr() with trim(), ltrim() or rtrim()."

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Multiple Type Variable";
description = "Avoid using the same variable with different types of data. 

It is recommended to use different names for differently typed data, while processing them. This prevents errors where one believe the variable holds the former type, while it has already been cast to the later.

Incrementing variables, with math operations or concatenation, is OK : the content changes, but not the type. And casting the variable without storing it in itself is OK. 

<?php

// $x is an array
$x = range('a', 'z');
// $x is now a string
$x = join('', $x);
$c = count($x); // $x is not an array anymore


// $letters is an array
$letters = range('a', 'z');
// $alphabet is a string
$alphabet = join('', $letters);

// Here, $letters is cast by PHP, but the variable is changed.
if ($letters) { 
    $count = count($letters); // $letters is still an array 
}

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.12.15";

modifications[] = "Use a class that accepts one type of argument, and exports another type of argument."
modifications[] = "Use different variable for each type of data format : $rows (for array), $list (for implode('', $rows))"
modifications[] = "Pass the final result as argument to another method, avoiding the temporary variable"

[example1]
project="Typo3"
file="typo3/sysext/backend/Classes/Form/Element/InputDateTimeElement.php"
line="270"
code="            $fullElement = [];
            $fullElement[] = '<div class="checkbox t3js-form-field-eval-null-placeholder-checkbox">';
            $fullElement[] =     '<label for="' . $nullControlNameEscaped . '">';
            $fullElement[] =         '<input type="hidden" name="' . $nullControlNameEscaped . '" value="' . $fallbackValue . '" />';
            $fullElement[] =         '<input type="checkbox" name="' . $nullControlNameEscaped . '" id="' . $nullControlNameEscaped . '" value="1"' . $checked . $disabled . ' />';
            $fullElement[] =         $overrideLabel;
            $fullElement[] =     '</label>';
            $fullElement[] = '</div>';
            $fullElement[] = '<div class="t3js-formengine-placeholder-placeholder">';
            $fullElement[] =    '<div class="form-control-wrap" style="max-width:' . $width . 'px">';
            $fullElement[] =        '<input type="text" class="form-control" disabled="disabled" value="' . $shortenedPlaceholder . '" />';
            $fullElement[] =    '</div>';
            $fullElement[] = '</div>';
            $fullElement[] = '<div class="t3js-formengine-placeholder-formfield">';
            $fullElement[] =    $expansionHtml;
            $fullElement[] = '</div>';
            $fullElement = implode(LF, $fullElement);
";
explain="$fullElement is an array most of the time, but finally ends up being a string. Since the array is not the final state, it may be interesting to make it a class, which collects the various variables, and export the final string. Such class would be usefull in several places in this repository."

[example2]
project="Vanilla"
file="library/core/functions.general.php"
line="1427"
code="                    if (is_array($value)) {
                        $value = count($value);
                    } elseif (stringEndsWith($field, 'UserID', true)) {
                        $value = 1;
                    }
";
explain="Here, $value may be of different type. The if() structures merges all the incoming format into one standard type (int). This is actually the contrary of this analysis, and is a false positive."

name = "Forgotten Whitespace";
description = "Forgotten whitespaces only bring misery to the code.

White spaces have been left at either end of a file : before the PHP opening tag, or after the closing tag. 

Usually, such whitespaces are forgotten, and may end up summoning the infamous 'headers already sent' error. It is better to remove them. 

<?php
    // This script has no forgotten whitespace, not at the beginning
    function foo() {}

    // This script has no forgotten whitespace, not at the end
?>

See also `How to fix Headers already sent error in PHP <http://stackoverflow.com/questions/8028957/how-to-fix-headers-already-sent-error-in-php>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
modifications[] = "Remove all whitespaces before and after a script. This doesn't apply to template, which may need to use those spaces."
modifications[] = "Remove the final tag, to prevent any whitespace to be forgotten at the end of the file. This doesn't apply to the opening PHP tag, which is always necessary."

phpErrors[] = "Headers already sent"name = "Printf Number Of Arguments";
description = "The number of arguments provided to printf() or vprintf() doesn't match the format string.

Extra arguments are ignored, and are dead code as such. Missing arguments are reported with a warning, and nothing is displayed.

Omitted arguments produce an error.

<?php

// not enough
printf(' a %s ', $a1); 
// OK
printf(' a %s ', $a1, $a2); 
// too many
printf(' a %s ', $a1, $a2, $a3); 

// not enough
sprintf(' a %s ', $a1); 
// OK
\sprintf(' a %s ', $a1, $a2); 
// too many
sprintf(' a %s ', $a1, $a2, $a3); 

?>

See also `printf <http://php.net/printf>`_ and `sprintf <http://php.net/sprintf>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "1.0.1";

phpErrors[] = 'printf(): Too few arguments';

[example1]
project="PhpIPAM"
file="functions/classes/class.Common.php"
line="1174"
code="sprintf('%032s', gmp_strval(gmp_init($ipv6long, 10), 16);";
explain="16 will not be displayed."
name = "Several Instructions On The Same Line";
description = "Usually, instructions do not share their line : one instruction, one line. 

This is good for readability, and help at understanding the code. This is especially important when fast-reading the code to find some special situation, where such double-meaning line way have an impact.

<?php

switch ($x) {
    // Is it a fallthrough or not ? 
    case 1:
        doSomething(); break;

    // Easily spotted break.
    case 1:
        doSomethingElse(); 
        break;

    default : 
        doDefault(); 
        break;
}

?>

See also `Object Calisthenics, rule # 5 <http://williamdurand.fr/2013/06/03/object-calisthenics/#one-dot-per-line>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
[example1]
project="Piwigo"
file="tools/triggers_list.php"
line="993"
code="      foreach ($trigger['files'] as $file)
      {
        if (!$f) echo '<br>'; $f=0;
        echo preg_replace('#\((.+)\)#', '(<i>$1</i>)', $file);
      }
";
explain="There are two instructions on the line with the if(). Note that the condition is not followed by a bracketed block. When reviewing, it really seems that echo '<br>' and $f=0; are on the same block, but the second is indeed an unconditional expression. This is very difficult to spot. "
[example2]
project="Tine20"
file="tine20/Calendar/Controller/Event.php"
line="1594"
code="                $futurePersistentExceptionEvents->setRecurId($_event->getId());
                unset($_event->recurid);
                unset($_event->base_event_id);
                foreach(array('attendee', 'notes', 'alarms') as $prop) {
                    if ($_event->{$prop} instanceof Tinebase_Record_RecordSet) {
                        $_event->{$prop}->setId(NULL);
                    }
                }
                $_event->exdate = $futureExdates;

                $attendees = $_event->attendee; unset($_event->attendee);
                $note = $_event->notes; unset($_event->notes);
                $persistentExceptionEvent = $this->create($_event, $_checkBusyConflicts && $dtStartHasDiff);
";
explain="Here, $_event->attendee is saved in a local variable, then the property is destroyed. Same for $_event->notes; Strangely, a few lines above, the properties are unset on their own line. Unsetting properties leads to surprise bugs, and hidding the unset after ; makes it harder to spot."
name = "Bracketless Blocks";
description = "PHP allows one liners as for(), foreach(), while(), do/while() loops, or as then/else expressions. 

It is generally considered a bad practice, as readability is lower and there are non-negligible risk of excluding from the loop the next instruction.

<?php

// Legit one liner
foreach(range('a', 'z') as $letter) ++$letterCount;

// More readable version, even for a one liner.
foreach(range('a', 'z') as $letter) {
    ++$letterCount;
}

?>

switch() cannot be without bracket. 

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
name = "No Parenthesis For Language Construct";
description = "Some PHP language constructs, such are ``include``, ``print``, ``echo`` don't need parenthesis. They accept parenthesis, but it is may lead to strange situations. 

<?php

// This is an attempt to load 'foo.inc', or kill the script
include('foo.inc') or die();
// in fact, this is read by PHP as : include 1 
// include  'foo.inc' or die();

?>

It it better to avoid using parenthesis with ``echo``, ``print``, ``return``, ``throw``, ``yield``, ``yield from``, ``include``, ``require``, ``include_once``, ``require_once``.

See also `include <http://php.net/manual/en/function.include.php>`_.
";
clearphp = "no-parenthesis-for-language-construct";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
modifications[] = "Remove parenthesis"
[example1]
project="Phpdocumentor"
file="src/Application/Renderer/Router/StandardRouter.php"
line="55"
code="        $this[] = new Rule(function ($node) { return ($node instanceof NamespaceDescriptor); }, $namespaceGenerator);";
explain="No need for parenthesis with require(). instanceof has a higher precedence than return anyway. "
[example2]
project="phpMyAdmin"
file="db_datadict.php"
line="170"
code="echo (($row['Null'] == 'NO') ? __('No') : __('Yes'))";
explain="Not only echo() doesn't use any parenthesis, but this syntax gives the illusion that echo() only accepts one argument, while it actually accepts an arbitrary number of argument."
name = "Dangling Array References";
description = "Always unset a referenced-variable used in a loop.

It is highly recommended to unset blind variables when they are set up as references after a loop. 

<?php

$array = array(1,2,3,4);

foreach($array as &$a) {
    $a += 1;
}
// This only unset the reference, not the value
unset($a);


// Dangling array problem
foreach($array as &$a) {
    $a += 1;
}
//$array === array(3,4,5,6);

// This does nothing (apparently)
// $a is already a reference, even if it doesn't show here.
foreach($array as $a) {}
//$array === array(3,4,5,5);

?>

When omitting this step, the next loop that will also require this variable will deal with garbage values, and produce unexpected results.

See also : `No Dangling Reference <https://github.com/dseguy/clearPHP/blob/master/rules/no-dangling-reference.md>`_, 
           `PHP foreach pass-by-reference: Do it right, or better not at all <https://coderwall.com/p/qx3fpa/php-foreach-pass-by-reference-do-it-right-or-better-not-at-all>`_,
           `How does PHP 'foreach' actually work? <https://stackoverflow.com/questions/10057671/how-does-php-foreach-actually-work/14854568#14854568>`_,
           `References and foreach <https://schlueters.de/blog/archives/141-references-and-foreach.html>`_.
";
clearphp = "no-dangling-reference";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
modifications[] = "Avoid using the reference altogether : sometimes, the reference is not needed."
modifications[] = "Add unset() right after the loop, to avoid reusing the reference."

[example1]
project="Typo3"
file="typo3/sysext/impexp/Classes/ImportExport.php"
line="322"
code="
if (is_array($this->dat['header']['pagetree'])) {
    reset($this->dat['header']['pagetree']);
    $lines = [];
    $this->traversePageTree($this->dat['header']['pagetree'], $lines);

    $viewData['dat'] = $this->dat;
    $viewData['update'] = $this->update;
    $viewData['showDiff'] = $this->showDiff;
    if (!empty($lines)) {
        foreach ($lines as &$r) {
            $r['controls'] = $this->renderControls($r);
            $r['fileSize'] = GeneralUtility::formatSize($r['size']);
            $r['message'] = ($r['msg'] && !$this->doesImport ? '<span class="text-danger">' . htmlspecialchars($r['msg']) . '</span>' : '');
        }
        $viewData['pagetreeLines'] = $lines;
    } else {
        $viewData['pagetreeLines'] = [];
    }
}
// Print remaining records that were not contained inside the page tree:
if (is_array($this->remainHeader['records'])) {
    $lines = [];
    if (is_array($this->remainHeader['records']['pages'])) {
        $this->traversePageRecords($this->remainHeader['records']['pages'], $lines);
    }
    $this->traverseAllRecords($this->remainHeader['records'], $lines);
    if (!empty($lines)) {
        foreach ($lines as &$r) {
            $r['controls'] = $this->renderControls($r);
            $r['fileSize'] = GeneralUtility::formatSize($r['size']);
            $r['message'] = ($r['msg'] && !$this->doesImport ? '<span class="text-danger">' . htmlspecialchars($r['msg']) . '</span>' : '');
        }
        $viewData['remainingRecords'] = $lines;
    }
}
";

explain="foreach() reads $lines into $r, and augment those lines. By the end, the $r variable is not unset. Yet, several lines later, in the same method but with different conditions, another loop reuse the variable $r. If is_array($this->dat['header']['pagetree'] and is_array($this->remainHeader['records']) are arrays at the same moment, then both loops are called, and they share the same reference. Values of the latter array will end up in the formar. "

[example2]
project="SugarCrm"
file="SugarCE-Full-6.5.26/modules/Import/CsvAutoDetect.php"
line="165"
code="
foreach ($this->_parser->data as &$row) {
    foreach ($row as &$data) {
        $len = strlen($data);
        // check if it begins and ends with single quotes
        // if it does, then it double quotes may not be the enclosure
        if ($len>=2 && $data[0] == "'" && $data[$len-1] == "'") {
            $beginEndWithSingle = true;
            break;
        }
    }
    if ($beginEndWithSingle) {
        break;
    }
    $depth++;
    if ($depth > $this->_max_depth) {
        break;
    }
}
";
explain="There are two nested foreach here : they both have referenced blind variables. The second one uses $data, but never changes it. Yet, it is reused the next round in the first loop, leading to pollution from the first rows of $this->_parser->data into the lasts. This may happen even if $data is not modified explicitely : in fact, it will be modified the next call to foreach($row as ...), for each element in $row. "
name = "No Hardcoded Path";
description = "It is not recommended to use hardcoded literals when designating files. Full paths are usually tied to one file system organization. As soon as the organisation changes or must be adapted to any external constraint, the path is not valid anymore.

Either use __FILE__ and __DIR__ to make the path relative to the current file; use a ``DOC_ROOT`` as a configuration constant that will allow the moving of the script to another folder; finally functions like sys_get_temp_dir() produce a viable temporary folder.

Relative paths are relative to the current execution directory, and not the current file. This means they may differ depending on the location of the start of the application, and are sensitive to chdir() and chroot() usage.

<?php

    // This depends on the current executed script
    file_get_contents('token.txt');

    // Exotic protocols are ignored
    file_get_contents('jackalope://file.txt');

    // Some protocols are ignored : http, https, ftp, ssh2, php (with memory)
    file_get_contents('http://www.php.net/');
    file_get_contents('php://memory/');
    
    // glob() with special chars * and ? are not reported
    glob('./*/foo/bar?.txt');
    // glob() without special chars * and ? are reported
    glob('/foo/bar/');
    
?>

";
clearphp = "no-hardcoded-path";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";

modifications[] = "Add __DIR__ before the path to make it relative to the current file"
modifications[] = "Add a configured prefix before the path to point to any file in the system"
modifications[] = "Use sys_get_temp_dir() for temporary data"
modifications[] = "Use ``include_path`` argument function, such as fie_get_contents(), to have the file located in configurable directories."

[example1]
project="Tine20"
file="tine20/Tinebase/DummyController.php"
line="28"
code="file_put_contents('/var/run/tine20/DummyController.txt', 'success ' . $n)";
explain="When this script is not run on a Linux system, the file save will fail."

[example2]
project="Thelia"
file="local/modules/Tinymce/Resources/js/tinymce/filemanager/include/php_image_magician.php"
line="2317"
code="	private function writeIPTC($dat, $value)
	{

		# LIMIT TO JPG

		$caption_block = $this->iptc_maketag(2, $dat, $value);
		$image_string = iptcembed($caption_block, $this->fileName);
		file_put_contents('iptc.jpg', $image_string);
	}
";
explain="The `iptc.jpg` file is written. It looks like the file may be written next to the php_image_magician.php file, but this is deep in the source code and is unlikely. This means that the working directory has been set to some other place, though we don't read it immediately. "
name = "Inconsistent Elseif";
description = "Chaining if/elseif requires a consistent string of conditions. The conditions are executed one after the other, and the conditions shouldn't overlap.

This analysis reports chains of elseif that don't share a common variable (or array, or property, etc.. ). As such, testing different conditions are consistent. 

<?php

// $a is always common, so situations are mutually exclusive
if ($a === 1) {
    doSomething();
} else if ($a > 1) {
    doSomethingElse();
} else {
    doSomethingDefault();
}

// $a is always common, so situations are mutually exclusive
// although, it may be worth checking the consistency here
if ($a->b === 1) {
    doSomething();
} else if ($a->c > 1) {
    doSomethingElse();
} else {
    doSomethingDefault();
}

// if $a === 1, then $c doesn't matter? 
// This happens, but then logic doesn't appear in the code.
if ($a === 1) {
    doSomething();
} else if ($c > 1) {
    doSomethingElse();
} else {
    doSomethingDefault();
}

?>

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "1.4.3";name = "Could Use Short Assignation";
description = "Use short assignment operator, to speed up code, and keep syntax clear.  

Some operators, like * or +, have a compact and fast 'do-and-assign' version. They looks like a compacted version for = and the operator. This syntax is good for readability, and saves some memory in the process. 

Depending on the operator, not all permutations of arguments are possible. 

Addition and short assignation of addition have a different set of features when applied to arrays. Do not exchange one another in that case.

<?php

$a = 10 + $a;
$a += 10;

$b = $b - 1;
$b -= 1;

$c = $c * 2;
$c *= 2;

$d = $d / 3;
$d /= 3;

$e = $e % 4;
$e %= 4;

$f = $f | 5;
$f |= 5;

$g = $g & 6;
$g &= 6;

$h = $h ^ 7;
$h ^= 7;

$i = $i >> 8;
$i >>= 8;

$j = $j << 9;
$j <<= 9;

// PHP 7.4 and more recent
$l = $l ?? 'value';
$l ??= 'value';

?>

Short operators are faster than the extended version, though it is a micro-optimization.

See also `Assignation Operators <http://php.net/manual/en/language.operators.assignment.php>`_.

";
clearphp = "use-short-assignations";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Change the expression to use the short assignation"

[example1]
project=ChurchCRM
file=src/ChurchCRM/utils/GeoUtils.php
line=74
code="$distance = 0.6213712 * $distance;";
explain="Sometimes, the variable is on the other side of the operator."

[example2]
project=Thelia
file=local/modules/Tinymce/Resources/js/tinymce/filemanager/include/utils.php
line=70
code="$size = $size / 1024;";
explain="/= is rare, but it definitely could be used here."

name = "Useless Instructions";
description = "Those instructions are useless, or contains useless parts. 

For example, an addition whose result is not stored in a variable, or immediately reused, does nothing : it is actually performed, and the result is lost. Just plain lost. 

Here the useless instructions that are spotted : 

<?php

// Concatenating with an empty string is useless.
$string = 'This part '.$is.' usefull but '.$not.'';

// This is a typo, that PHP turns into a constant, then a string, then nothing.
continue;

// Empty string in a concatenation
$a = 'abc' . '';

// Returning expression, whose result is not used (additions, comparisons, properties, closures, new without =, ...)
1 + 2;

// Returning post-incrementation
function foo($a) {
    return $a++;
}

// array_replace() with only one argument
$replaced = array_replace($array);
// array_replace() is OK with ... 
$replaced = array_replace(...$array);

// @ operator on source array, in foreach, or when assigning literals
$array = @array(1,2,3);

// Multiple comparisons in a for loop : only the last is actually used.
for($i = 0; $j = 0; $j < 10, $i < 20; ++$j, ++$i) {
    print $i.' '.$j.PHP_EOL;
}

// Counting the keys and counting the array is the same.
$c = count(array_keys($array))

//array_keys already provides an array with only unique values, as they were keys in a previous array
$d = array_unique(array_keys($file['messages']))

// No need for assignation inside the ternary operator
$closeQuote = $openQuote[3] === "'" ? substr($openQuote, 4, -2) : $closeQuote = substr($openQuote, 3);

?>

";
clearphp = "no-useless-instruction";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Remove the extra semi-colon"
modifications[] = "Remove the useless instruction"
modifications[] = "Assign this expression to a variable and make use of it"
name = "Difference Consistence";
description = "There are two operators to check a difference : <> and !=.

The analyzed code has less than 10% of one of them : for consistency reasons, it is recommended to make them all the same. 

It happens that != and <> are used depending on coding style and files. One file may be consistently using <>, while the others are all using !=. 

<?php

// Both != and <> are used in the code
// When one of them is used less than 10%, it is reported as a consistence issue.
if ($a != $b) {

} elseif ($c <> $d) {

}

?>

<> and != are the two only comparison operators that are identical.

See also `Comparison Operators <http://php.net/manual/en/language.operators.comparison.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.11.1";
name = "Use System Tmp";
description = "It is recommended to avoid hardcoding the temporary file. It is better to rely on the system's temporary folder, which is accessible with sys_get_temp_dir().

<?php

// Where the tmp is : 
file_put_contents(sys_get_temp_dir().'/tempFile.txt', $content);


// Avoid hard-coding tmp folder : 
// On Linux-like systems
file_put_contents('/tmp/tempFile.txt', $content);

// On Windows systems
file_put_contents('C:\WINDOWS\TEMP\tempFile.txt', $content);

?>

See also `PHP: When is /tmp not /tmp? <https://www.the-art-of-web.com/php/where-is-tmp/>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";


modifications[] = "Do not hardcode the temporary file, use the system's";
name = "var_dump()... Usage";
description = "var_dump(), print_r() or var_export() should not be left in any production code. They are debugging functions.

<?php

if ($error) {
    // Debugging usage of var_dump
    // And major security problem 
    var_dump($query);
    
    // This is OK : the $query is logged, and not displayed
    $this->log(print_r($query, true));
}

?>

They may be tolerated during development time, but must be removed so as not to have any chance to be run in production.
";
clearphp = "no-debug-code";
severity = "S_CRITICAL";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Remove usage of var_dump(), print_r(), var_export() without 2nd argument, and other debug functions."
modifications[] = "Push all logging to an external file, instead of the browser."

[example1]
project="Tine20"
file="tine20/library/Ajam/Connection.php"
line="122"
code="        if($this->debug === true) {
            var_dump($this->getLastRequest());
            var_dump($response);
        }
";
explain="Two usage of var_dump(). They are protected by configuration, since the debug property must be set to 'true'. Yet, it is safer to avoid them altogether, and log the information to an external file."

[example2]
project="Piwigo"
file="include/ws_core.inc.php"
line="273"
code="  function run()
  {
    if ( is_null($this->_responseEncoder) )
    {
      set_status_header(400);
      @header(\"Content-Type: text/plain\");
      echo (\"Cannot process your request. Unknown response format.
Request format: \".@$this->_requestFormat.\" Response format: \".@$this->_responseFormat.\"\n\");
      var_export($this);
      die(0);
    }

";
explain="This is a hidden debug system : when the response format is not available, the whole object is dumped in the output."

name = "Compared But Not Assigned Strings";
description = "Those strings are compared to variables in the code, but those values are never assigned.

<?php

$a = 'b';

// Depending on the origin of $b, is this possible? 
if ($b === 'c') {

}

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.3.2";name = "No Plus One";
description = "Incrementing a variable should be done with the ++ or -- operators. Any other way, may be avoided.

<?php

// Best way to increment
++$x; --$y;

// Second best way to increment, if the current value is needed :
echo $x++, $y--;

// Good but slow 
$x += 1; 
$x -= -1; 

$y += -1;
$y -= 1;

// even slower
$x = $x + 1; 
$y = $y - 1; 

?>
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Failed Substr Comparison";
description = "The extracted string must be of the size of the compared string.

This is also true for negative lengths.

<?php

// Possible comparison
if (substr($a, 0, 3) === 'abc') { }
if (substr($b, 4, 3) === 'abc') { }

// Always failing
if (substr($a, 0, 3) === 'ab') { }
if (substr($a, 3, -3) === 'ab') { }

// Omitted in this analysis
if (substr($a, 0, 3) !== 'ab') { }

?>
 ";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Fix the string"
modifications[] = "Fix the length of the string"
modifications[] = "Put the string in a constant, and use strlen() or mb_strlen()"

[example1]
project="Zurmo"
file="app/protected/modules/zurmo/modules/SecurableModule.php"
line=117
code="        private static function filterAuditEvent($s)
        {
            return substr($s, 0, 6) == 'AUDIT_EVENT_';
        }
";
explain="filterAuditEvent compares a six char string with 'AUDIT\_EVENT\_' which contains 10 chars. This method returns only FALSE. Although it is used only once, the whole block that calls this method is now dead code. "
[example2]
project="MediaWiki"
file="includes/media/DjVu.php"
line=263
code="	private function getUnserializedMetadata( File $file ) {
		$metadata = $file->getMetadata();
		if ( substr( $metadata, 0, 3 ) === '<?xml' ) {
			// Old style. Not serialized but instead just a raw string of XML.
			return $metadata;
		}

";
explain="$metadata contains data that may be in different formats. When it is a pure XML file, it is 'Old style'. The comment helps understanding that this is not the modern way to go : the Old Style is actually never called, due to a failing condition."
name = "Max Level Of Nesting";
description = "Avoid nesting structures too deep, as it hurts readability.

Nesting structures are : if/then, switch, for, foreach, while, do...while. Ternary operator, try/catch are not considered a nesting structures.

Closures, and more generally, functions definitions are counted separatedly. 

This analysis checks for 4 levels of nesting, by default. This may be changed by configuration.

<?php

// 5 levels of indentation
function foo() {
    if (1) {
        if (2) {
            if (3) {
                if (4) {
                    if (5) {
                        51;
                    } else {
                        5;
                    }
                } else {
                    4;
                }
            } else {
                3;
            }
        } else {
            2;
        }
    } else {
        1;
    }
}

// 2 levels of indentation
function foo() {
    if (1) {
        if (2) {
            // 3 levels of indentation
            return function () {
                if (3) {
                    if (4) {
                        if (5) {
                            51;
                        } else {
                            5;
                        }
                    } else {
                        4;
                    }
                } else {
                    3;
                }
            }
        } else {
            2;
        }
    } else {
        1;
    }
}


?>
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.3";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Refactor code to avoid nesting"
modifications[] = "Export some nested blocks to an external method or function"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

[parameter1]
name="maxLevel";
default="4";
type="integer";
description="Maximum level of nesting for control flow structures in one scope. ";
name = "Should Chain Exception";
description = "Chain exception to provide more context.

When catching an exception and rethrowing another one, it is recommended to chain the exception : this means providing the original exception, so that the final recipient has a chance to track the origin of the problem. This doesn't change the thrown message, but provides more information.

Note : Chaining requires PHP > 5.3.0.

<?php
    try {
        throw new Exception('Exception 1', 1);
    } catch (\Exception $e) {
        throw new Exception('Exception 2', 2, $e); 
        // Chaining here. 

    }
?>

See also `Exception::__construct <http://php.net/manual/en/exception.construct.php>`_ and 
         `What are the best practices for catching and re-throwing exceptions? <https://stackoverflow.com/questions/5551668/what-are-the-best-practices-for-catching-and-re-throwing-exceptions/5551828>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Add the incoming exception to the newly thrown exception"

[example1]
project="Magento"
file="lib/Mage/Backup/Filesystem/Rollback/Ftp.php"
line="81"
code="    protected function _initFtpClient()
    {
        try {
            $this->_ftpClient = new Mage_System_Ftp();
            $this->_ftpClient->connect($this->_snapshot->getFtpConnectString());
        } catch (Exception $e) {
            throw new Mage_Backup_Exception_FtpConnectionFailed($e->getMessage());
        }
    }
";
explain="Instead of using the exception message as an argument, chaining the exception would send the whole exception, including the message, and other interesting information like file and line."

[example2]
project="Tine20"
file="tine20/Setup/Controller.php"
line="81"
code="        try {
            $dirIterator = new DirectoryIterator($this->_baseDir);
        } catch (Exception $e) {
            Setup_Core::getLogger()->warn(__METHOD__ . '::' . __LINE__ . ' Could not open base dir: ' . $this->_baseDir);
            throw new Tinebase_Exception_AccessDenied('Could not open Tine 2.0 root directory.');
        }

";
explain="Here, the new exception gets an hardcoded message. More details about the reasons are already available in the $e exception, but they are not logged, not chained for later processing."

name = "No Reference On Left Side";
description = "Do not use references as the right element in an assignation. 

<?php

$b = 2;
$c = 3;

$a = &$b + $c;
// $a === 2 === $b;

$a = $b + $c;
// $a === 5

?>

This is the case for most situations : addition, multiplication, bitshift, logical, power, concatenation.
Note that PHP won't compile the code if the operator is a short operator (+=, .=, etc.), nor if the & is on the right side of the operator. 

";
clearphp = "";
severity = "S_CRITICAL";
timetofix = "T_QUICK";
exakatSince = "0.11.5";name = "Die Exit Consistence";
description = "Die and Exit have the same functional use. 

The analyzed code has less than 10% of one of them : for consistency reasons, it is recommended to make them all the same. 

It happens that die or exit are used depending on coding style and files. One file may be consistently using exit, while the others are all using exit. 

<?php

// be consistent
switch ($a) {
    case 1 : 
        exit;
    case 2 : 
        exit;
    case 3 : 
        exit;
    case 4 : 
        exit;
    case 5 : 
        exit;
    case 6 : 
        exit;
    case 7 : 
        exit;
    case 8 : 
        exit;
    case 9 : 
        exit;
    case 10 : 
        exit;
    default : 
        die();   // Be consistent, always use the same. 
}

?>

Using die or exit is also the target of other analysis.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.9";
name = "Useless Switch";
description = "This switch has only one case. It may very well be replaced by a ifthen structure.

<?php
switch($a) {
    case 1:
        doSomething();
        break;
}

// Same as 

if ($a == 1) {
    doSomething();
}
?>


";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Turn the switch into a if/then for better readability"
modifications[] = "Add other cases to the switch, making it adapted to the situation"
[example1]
project="Phpdocumentor"
file="fuel/modules/fuel/libraries/Inspection.php"
line="349"
code="	public function parse_comments($code)
	{
		$comments = array();
		$tokens = token_get_all($code);
		
		foreach($tokens as $token)
		{
			switch($token[0])
			{
				case T_DOC_COMMENT:
					$comments[] = $token[1];
					break;
		    }
		}
		return $comments;
		
	}
";
explain="This method parses comments. In fact, comments are represented by other tokens, which may be added or removed at time while coding."
[example2]
project="Dolphin"
file="Dolphin-v.7.3.5/inc/classes/BxDolModuleDb.php"
line="34"
code="	function getModulesBy($aParams = array())
	{
		$sMethod = 'getAll';
        $sPostfix = $sWhereClause = \"\";

        $sOrderClause = \"ORDER BY `title`\";
        switch($aParams['type']) {
            case 'path':
            	$sMethod = 'getRow';
                $sPostfix .= '_path';
                $sWhereClause .= \"AND `path`='\" . $aParams['value'] . \"'\";
                break;
        }
";
explain="$aParams is an argument : this code looks like the switch is reserved for future use."

name = "While(List() = Each())";
description = "This code structure is quite old : it should be replace by the more modern and efficient foreach.

This structure is deprecated since PHP 7.2. It may disappear in the future.

<?php

    while(list($key, $value) = each($array)) {
        doSomethingWith($key) and $value();
    }

    foreach($array as $key => $value) {
        doSomethingWith($key) and $value();
    }
?> 

See also `PHP RFC: Deprecations for PHP 7.2 : Each() <https://wiki.php.net/rfc/deprecations_php_7_2#each>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Change this loop with foreach";
modifications[] = "Change this loop with an array_* function with a callback";

[example1]
project="OpenEMR"
file="library/report.inc"
line="153"
code="function getInsuranceReport($pid, $type = ""primary"")
{
    $sql = ""select * from insurance_data where pid=? and type=? order by date ASC"";
    $res = sqlStatement($sql, array($pid, $type));
    while ($list = sqlFetchArray($res)) {
        while (list($key, $value) = each($list)) {
            if ($ret[$key]['content'] != $value && $ret[$key]['date'] < $list['date']) {
                $ret[$key]['content'] = $value;
                $ret[$key]['date'] = $list['date'];
            }
        }
    }

    return $ret;
}
";
explain="The first while() is needed, to read the arbitrary long list returned by the SQL query. The second list may be upgraded with a foreach, to read both the key and the value. This is certainly faster to execute and to read."

[example2]
project="Dolphin"
file="Dolphin-v.7.3.5/modules/boonex/forum/classes/Forum.php"
line="1875"
code="    function getRssUpdatedTopics ()
    {
        global $gConf;

        $this->_rssPrepareConf ();

        $a = $this->fdb->getRecentTopics (0);

        $items = '';
        $lastBuildDate = '';
        $ui = array();
        reset ($a);
        while ( list (,$r) = each ($a) ) {
            // acquire user info
            if (!isset($ui[$r['last_post_user']]) && ($aa = $this->_getUserInfoReadyArray ($r['last_post_user'], false)))
                $ui[$r['last_post_user']] = $aa;

            $td = orca_mb_replace('/#/', $r['count_posts'], '[L[# posts]]') . ' &#183; ' . orca_mb_replace('/#/', $ui[$r['last_post_user']]['title'], '[L[last reply by #]]') . ' &#183; ' . $r['cat_name'] . ' &#187; ' . $r['forum_title'];
";
explain="This clever use of while() and list() is actually a foreach($a as $r) (the keys are ignored)"
name = "Double Object Assignation";
description = "Make sure that assigning the same object to two variables is the intended purpose.

<?php

// $x and $y are the same object, as they both hold a reference to the same object.
// This means that changing $x, will also change $y.
$x = $y = new Z();

// $a and $b are distinct values, by default
$a = $b = 1;

?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.1.2";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

; Optional parameters
;[parameter1]
;name="parametersCount";
;default="8";
;type="integer";
;description="Minimal number of parameters to report.";


; This is a safe guard, to find quickly missed docs
inited="Not yet";
name = "Could Use Trait";
description = "The following classes have been found implementing all of a trait's methods : it could use this trait, and remove duplicated code.

<?php

trait t {
    function t1() {}
    function t2() {}
    function t3() {}
}

// t1, t2, t3 method could be dropped, and replaced with 'use t'
class foo1 {
    function t1() {}
    function t2() {}
    function t3() {}

    function j() {}
}

// foo2 is just the same as foo1
class foo2 {
    use t;

    function j() {}
}

?>

The comparison between the class methods' and the trait's methods are based on token. They may yield some false-positives.

See also Interfaces/CouldUseInterface.
 ";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "1.8.5";

modifications[] = "Use trait, and remove duplicated code"name = "Redefined PHP Traits";
description = "List of all traits that bears name of a PHP trait. Although, at the moment, there are no PHP trait defined.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Empty Traits";
description = "List of all empty trait defined in the code. 

<?php

// empty trait
trait t { }

// Another empty trait
trait t2 {
    use t; 
}

?>

Such traits may be reserved for future use. They may also be forgotten, and dead code.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
modifications[] = "Add some code to the trait"
modifications[] = "Remove the trait"name = "Is Extension Trait";
description = "Indicates if this trait is defined in an extension or not.


";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Used Trait";
description = "Mark a trait as being used by a class.

<?php

// One used trait
trait usedTrait {}

// One unused trait
trait unusedTrait {}

class foo {
    use usedTrait; 
}

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Self Using Trait";
description = "Trait uses itself : this is unnecessary. Traits may use themselves, or be used by other traits, that are using the initial trait itself. 

PHP handles the situation quietly, by ignoring all extra use of the same trait, keeping only one valid version.

<?php

// empty, but valid
trait a {} 

// obvious self usage
trait b { use b; }

// less obvious self usage
trait c { use d, e, f, g, h, c; }

// level 2 self usage
trait i { use j; }
trait j { use i; }

?>

See also `Traits <http://php.net/manual/en/language.oop5.traits.php>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "1.5.7";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Remove the extra usage of the trait."
name = "Traits Usage";
description = "Usage of traits in the code.

<?php

trait t {
    function t() {
        echo 'I\'m in t';
    }
}

class foo {
    use t;
}

$x = new foo();
$x->t();

?>

See also `Traits <http://php.net/manual/en/language.oop5.traits.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Already Parents Trait";
description = "Trait is already used a parent's class or trait. There is no use to include it a second time.

<?php

trait ta {
    use tb;
}

trait t1 {
    use ta;
    use tb; // also used by ta
}

class b {
    use t1; // also required by class c
    use ta; // also required by trait t1
}

class c extends b {
    use t1;
}

?>

See also `Traits <http://php.net/manual/en/language.oop5.traits.php>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.8.0";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Eliminate one of the trait request"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Dependant Trait";
description = "Traits should be autonomous. It is recommended to avoid depending on methods or properties that should be in the using class.

The following traits make usage of methods and properties, static or not, that are not defined in the trait. This means the host class must provide those methods and properties, but there is no way to enforce this. 

This may also lead to dead code : when the trait is removed, the host class have unused properties and methods.

<?php

// autonomous trait : all it needs is within the trait
trait t {
    private $p = 0;
    
    function foo() {
        return ++$this->p;
    }
}

// dependant trait : the host class needs to provide some properties or methods
trait t2 {
    function foo() {
        return ++$this->p;
    }
}

class x {
    use t2;
    
    private $p = 0;
}
?>

See also Classes/DependantAbstractClass.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";

modifications[] = "Add local property definitions to make the trait independent"
modifications[] = "Make the trait only use its own resources"
modifications[] = "Split the trait in autonomous traits"

[example1]
project="Zencart"
file="app/library/zencart/CheckoutFlow/src/AccountFormValidator.php"
line="14"
code="trait AccountFormValidator
{

    abstract protected function getAddressFieldValue($fieldName);

    /**
     * @return bool|int
     */
    protected function errorProcessing()
    {
        $error = false;
        foreach ($this->addressEntries as $fieldName => $fieldDetails) {
            $this->addressEntries[$fieldName]['value'] = $this->getAddressFieldValue($fieldName);
            $fieldError = $this->processFieldValidator($fieldName, $fieldDetails);
            $this->addressEntries[$fieldName]['error'] = $fieldError;
            $error = $error | $fieldError;
        }
        return $error;
    }";
explain="Note that addressEntries is used, and is also expected to be an array or an object with ArrayAccess. $addressEntries is only defined in a class called 'Guest' which is also the only one using that trait. Any other class using the AccountFormValidator trait must define addressEntries."
name = "Method Collision Traits";
description = "Two or more traits are included in the same class, and they have methods collisions. 

Those collisions should be solved with a ``use`` expression. When they are not, PHP stops execution with a fatal error : ``Trait method M has not been applied, because there are collisions with other trait methods on C``.

<?php

trait A {
    public function A() {}
    public function M() {}
}

trait B {
    public function B() {}
    public function M() {}
}

class C {
    use  A, B;
}

class D {
    use  A, B{
        B::M insteadof A;
    };
}

?>

The code above lints, but doesn't execute.

See also `Traits <http://php.net/manual/en/language.oop5.traits.php>`_.
";
clearphp = "";
severity = "S_CRITICAL";
timetofix = "T_QUICK";
exakatSince = "1.4.2";
phpError[] = "Trait method M has not been applied, because there are collisions with other trait methods on C"name = "Trait Not Found";
description = "A unknown trait is mentioned in the use expression. 

The used traits all exist, but in the configuration block, some unmentioned trait is called.

Be aware that the traits used in any configuration block may originate in any use expression. PHP will check the configuration block at instantiation only, and after compiling : at that moment, it will know all the used traits across the class.

<?php
class x  { 
    // c is not a used trait
    use a, b { c::d insteadof e;}

    // e is a used trait, even if is not in the use above.
    use e;
}
?>

See also `Traits <http://php.net/manual/en/language.oop5.traits.php>`_.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.7.9";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Switch the name of the trait to an existing and used trait"
modifications[] = "Drop the expression that rely on the non-existent trait"

; A PHP error that may be emitted by the target faulty code
phpError[] = "Trait 'a' not found "
name = "Trait Names";
description = "List all the traits names in the code.

<?php

// This trait is called 't'
trait t {}

?>

See also `Traits <http://php.net/manual/en/language.oop5.traits.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Useless Alias";
description = "It is not possible to declare an alias of a method with the same name. 

PHP reports that ``Trait method f has not been applied, because there are collisions with other trait methods on x``, which is a way to say that the alias will be in conflict with the method name. 

When the method is the only one bearing a name, and being imported, there is no need to alias it. When the method is imported in several traits, the keyword ``insteadof`` is available to solve the conflict.

<?php

trait t {
    function h() {}
}

class x {
    use t { 
        // This is possible
        t::f as g; 

        // This is not possible, as the alias is in conflict with itself
        // alias are case insensitive
        t::f as f; 
    }
}

?>


This code lints but doesn't execute.

See also `Conflict resolution <http://php.net/manual/en/language.oop5.traits.php#language.oop5.traits.conflict>`_.

";
clearphp = "";
severity = "S_MAJOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_INSTANT";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.5.6";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Remove the alias"
modifications[] = "Fix the alias or the origin method name"
modifications[] = "Switch to insteadof, and avoid as keyword"

; A PHP error that may be emitted by the target faulty code
phpError[] = "Trait method f has not been applied, because there are collisions with other trait methods on x"
name = "Multiple Usage Of Same Trait";
description = "The same trait is used several times. One trait usage is sufficient.

<?php

// C is used twice, and could be dropped from B
trait A { use B, C;}
trait B { use C;}

?>

PHP doesn't raise any error when traits are included multiple times.

See also `Traits <http://php.net/manual/en/language.oop5.traits.php>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "1.5.7";

modifications[] = "Remove any multiple traits from use expressions"
modifications[] = "Review the class tree, and remove any trait mentioned multiple times"

[example1]
project="NextCloud"
file="build/integration/features/bootstrap/WebDav.php"
line="41"
code="trait WebDav { 
    use Sharing;
    
}
//Trait Sharing is in /build/integration/features/bootstrap/Sharing.php:36
 ";
explain="WebDav uses Sharing, and Sharing uses Webdav. Once using the other is sufficient. "
name = "Unused Traits";
description = "Those traits are not used in a class or another trait. They may be dead code.

<?php

// unused trait
trait unusedTrait { /**/ }

// used trait
trait tUsedInTrait { /**/ }

trait tUsedInClass { 
    use tUsedInTrait;
    /**/ 
    }

class foo {
    use tUsedInClass;
}
?>
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Trait Methods";
description = "List the names of the methods in a trait. 

<?php

trait t {
    private $property = 1;
    
    // This is an interface method name
    function foo() {
        // This is not a trait method 
        return function($a) { return $a + 1; }
    }
}

?>
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Unused Trait In Class";
description = "A trait has been summoned in a class, but is not used. Traits may be used as a copy/paste of code, bringing a batch of methods and properties to a class. In the current case, the imported trait is never called. As such, it may be removed. 

Currently, the analysis covers only traits that are used in the class where they are imported. Also, the properties are not covered yet. 

<?php

trait t {
    function foo() { return 1;}
}

// this class imports and uses the trait
class UsingTrait {
    use t;
    
    function bar() {
        return $this->foo() + 1;
    }
}

// this class imports but doesn't uses the trait
class UsingTrait {
    use t;
    
    function bar() {
        return 1;
    }
}

?>

There are some sneaky situations, where a trait falls into decay : for example, creating a method in the importing class, with the name of a trait class, will exclude the trait method, as the class method has priority. Other precedence rules may lead to the same effect.

See also `Traits <https://www.php.net/manual/en/language.oop5.traits.php>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.1.1";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Remove the trait from the class"
modifications[] = "Actually use the trait, at least in the importing class"
modifications[] = "Use conflict resolution to make the trait accessible"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

; Optional parameters
;[parameter1]
;name="parametersCount";
;default="8";
;type="integer";
;description="Minimal number of parameters to report.";
name = "Locally Used Property In Trait";
description = "Properties that are used in the class where they are defined. 

<?php

trait foo {
    public $unused, $used;// property $unused is never used in this class
    
    function bar() {
        $this->used++; // property $used is used in this method
    }
}

class X {
    use foo;
}

$foo = new X();
$foo->unused = 'here'; // property $unused is used outside the trait definition
?>
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.3.5";name = "Undefined Insteadof";
description = "``Insteadof`` tries to replace a method with another, but it doesn't exists. This happens when the replacing class is refactored, and some of its definition are dropped. 

``Insteadof`` may replace a non-existing method with an existing one, but not the contrary. 

<?php

trait A {
    function C (){}
}

trait B {
    function C (){}
}

class Talker {
    use A, B {
        B::C insteadof A;
        B::D insteadof A;
    }
}

new Talker();
?>

This error is not linted : it only appears at execution time. 

See also `Traits <http://php.net/manual/en/language.oop5.traits.php>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "1.4.2";
phpError[] = "An alias (%s) was defined for method %s(), but this method does not exist"

modifications[] = "Remove the insteadof expression"
modifications[] = "Fix the original method and replace it with an existing method"

name = "Undefined Trait";
description = "Those traits are undefined. 

When the using class or trait is instantiated, PHP emits a a fatal error.

<?php

use Composer/Component/someTrait as externalTrait;

trait t {
    function foo() {}
}

// This class uses trait that are all known
class hasOnlyDefinedTrait {
    use t, externalTrait;
}

// This class uses trait that are unknown
class hasUndefinedTrait {
    use unknownTrait, t, externalTrait;
}
?>

";
clearphp = "";
severity = "S_CRITICAL";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
phpError[] = "Trait 'T' not found"

modifications[] = "Define the missing trait"
modifications[] = "Remove usage of the missing trait"name = "Propagate Calls";
description = "Update the graph, by linking a call to its definition. A call may be a function call, a closure call, a method call, a static methodcall. 

Note that the definition is not always available, and the linking may fail. This is the case for PHP native functions, for dynamically build names, or omitted libraries. 

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.8";

; Alternative to make this code go away. 
; One by possible solution
;modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Set Class Remote Definition With Return Typehint";
description = "Links method call to its definition, thanks to the typed return. The link is ``DEFINITION``.

<?php

class x {
    public function bar() {    }
}

function foo() {
    $a = bar();
    // This links to class x, method bar(), thanks to the new.
    return $a->bar();
}

function bar() : x {
    return new x;
}

?>";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.3";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Complete/PhpNativeReference";
description = "";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.1";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Complete/ExtendedTypehints";
description = "";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.1.2";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

; Optional parameters
;[parameter1]
;name="parametersCount";
;default="8";
;type="integer";
;description="Minimal number of parameters to report.";


; This is a safe guard, to find quickly missed docs
inited="Not yet";
name = "Overwritten Properties";
description = "This command adds OVERWRITE link between property definitions of classes.

<?php

class x {
    protected $p = 1;
}

class y extends x {
    protected $p = 1;
}

?>

The `$p` property will be linked between classes x and y, with an OVERWRITE link.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.2";

; Alternative to make this code go away. 
; One by possible solution
;modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Set Clone Link";
description = "This command creates a link DEFINITION between a clone call, and its equivalent magic method.

<?php

class x {
    // Store an object
    private $a;
    
    function foo() {
        // This clone is linked to the magic method below
        return clone $this;
    }
    
    function __clone() {
        $this->a = clone $this->a;
    }
}

// This is not linked to any __clone method, by lack of information
clone $x; 

?>

This command may not detect all possible link for the clone. It may be missing information about the nature of the clone object.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.2";

; Alternative to make this code go away. 
; One by possible solution
;modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Set Class_Alias Definition";
description = "Links ``new``calls to the concrete class when class_alias() was used to create the name. The link is ``DEFINITION``.

class_alias() are detected at loading time, and are used unconditionally.

This means that the FQN of the ``new``call and the instantiated class may be different. 

<?php

class x {
    public function foo() {}
}

class_alias('x', 'y');

//y exists, as an alias of x.
$y = new y;

?>
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.2";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "SetA rray Class Definition";
description = "Link arrays() with their class / method definition.

PHP accepts an array structure such as ``[class, method]``, or ``[$object, method]`` as a valid method callback. This analysis build such relations, whenever they are static.

<?php

class x {
    public function foo() {}
}

// designate the foo method in the x class
$f = [\x, 'foo'];

array_

?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.3";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Complete/SetClassRemoteDefinitionWithTypehint";
description = "Links method call to its definition, thanks to the typed argument. The link is ``DEFINITION``.

<?php

class x {
    public function bar() {    }
}

function foo(x $a) {
    // This links to class x, method bar(), thanks to the typehint.
    return $a->bar();
}

?>";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.3";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Overwritten Methods";
description = "This command adds OVERWRITE link between methods definitions of classes.

<?php

class x {
    protected function foo() {}
}

class y extends x {
    protected function foo() {}
}

?>

The `foo` method will be linked between classes x and y, with an OVERWRITE link.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.2";

; Alternative to make this code go away. 
; One by possible solution
;modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Set Parent Definition";
description = "This command creates a DEFINITION link between `parent` keyword and the actual parent class. 

<?php

class x { 
    const A = 1;
}

class y extends x {
    function foo() {
        // 'parent' needs a DEFFINITION link to the class x
        return parent::A;
    }
}

?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.2";

; Alternative to make this code go away. 
; One by possible solution
;modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Propagate Constants";
description = "This command calculates constant expression values, and set them in the graph.

<?php

const A = 1;
const B = A + 2; 

?>

After running this command, B has ``intval`` of 3. 

This command propagate ``const`` constants, class constants and define() constants, when possible. 

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.2";

; Alternative to make this code go away. 
; One by possible solution
;modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Set Class Property Definition With Typehint";
description = "Links method call to its definition, thanks to property typehinting. The link is ``DEFINITION``.

<?php

class x {
    public x $p = null;

    public function bar() {
        return $this;
    }
}

$x = new x;

// $x->p is of 'x' class
$x->p->bar();

?>";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.3";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Make Class Method Definition";
description = "This command links a method call to its method definition. 

<?php

class x {
    function foo() {
        // This links to the bar() method
        return $this->bar();
    }

    function bar() {
        // This links to the link() method
        return $this->bar();
    }
}

?>

This command may not detect all possible link for the methods. It may be missing information about the nature of the object.

This command may also produce multiple definitions link, when the definition are ambiguous.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.2";

; Alternative to make this code go away. 
; One by possible solution
;modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Make Class Constant Definition";
description = "This command adds DEFINITION link between class constant definitions and their usage.

<?php

class x {
    public const A = 1;
}

// Link to the constant definition
echo x::A;

// Cannot find the original class
echo $x::A;

?>
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.2";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Complete/SetClassRemoteDefinitionWithParenthesis";
description = "Links method call to its definition, thanks to the new in parenthesis. The link is ``DEFINITION``.

<?php

class x {
    public function bar() {    }
}

function foo() {
    // This links to class x, method bar(), thanks to the new.
    return (new x)->bar();
}

?>";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.3";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Set Class Remote Definition With Global";
description = "Links method call to its definition, thanks to the global definition. The link is ``DEFINITION``.

<?php

class x {
    public function bar() {    }
}

global $a;
$a = new X;

function foo() {
    global $a;
    
    // This links to class x, method bar(), thanks to global.
    return $a->bar();
}

?>";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.3";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Create Default Values";
description = "This commands adds a link between variables, property definitions and any assignation to this container.

Variables have no definition expression in PHP. Exakat holds their definition with the `Variabledefinition` node.

Properties have definitions, and non-compulsory default values. This command creates multiple DEFINITION link for them.

DEFAULT is convenient in the case of `null` value, which will be assigned an object at execution time. 

<?php

function foo() {
    // local Variabledefinition links to this expression
    $a = 1;
}

class x {
    // 1 is a default value
    private $p = 1;
    
    function __construct() {
        // 2 is also a default value for this.
        // This default value is different from the above as it is a part of an assignation
        $this->p = 2;
    }
}

?>

Short assignations, such as `+=`  are not considered default value. It needs to be a full assignation 
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.2";

; Alternative to make this code go away. 
; One by possible solution
;modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Create Compact Variables";
description = "This command creates Variable definitions, based on usage of 'compact'. 

<?php

function foo() {
    $a = 1;
    return compact('a');
}
?>

This only works when compact() is used with literal values, or with constants. Dynamic values are not reported.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.2";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Set Class Remote Definition With Local New";
description = "Links method calls and properties to its definition, thanks to the local new. The link is ``DEFINITION``.

<?php

class x {
    public function bar() {    }
}

function foo() {
    $a = new x;
    
    // This links to class x, method bar(), thanks to the local new.
    return $a->bar();
}

?>";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.3";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Make Functioncall With Reference";
description = "Mark parameters as 'isModified' if the functioncall uses reference.

This works on PHP native functions and custom functions.

This doesn't work on dynamic calls.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.7";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Follow Closure Definition";
description = "This command adds DEFINITION link between closure definitions and their usage.

Local usage of the closure, in the same scope, are detected. Relayed closure, when they are transmitted to another method for usage, is detected, for one level.

<?php

function foo() {
    $closure = function () {};
    // Local usage
    echo $closure();
}

function bar(Closure $x) {
    // relayed usage
    echo $x(); 
}


?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.2";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Create Magic Property";
description = "This command creates a link DEFINITION between a ``__get`` and ``__set`` calls, and its equivalent magic method.

<?php

class x {
    function foo() {
        // This is linked to __set
        $this->a = 1;
        
        // This is linked to __get
        return $this->b;
    }
    
    function __get($name) {
        return 1;
    }

    function __set($name, $value) {
        // Store the value
    }
}

?>

This command may not detect all possible link for the ``__get`` and ``__set`` call. It may be missing information about the nature of the object.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.2";

; Alternative to make this code go away. 
; One by possible solution
;modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Solve Trait Methods";
description = "This command adds DEFINITION link between trait's method definitions and their usage in classes.

<?php

trait t {
    function foo() {
    
    }
}

class x {
    use t { t::foo as foo2; };
    
    function bar() {
        // Link to foo() in trait t
        $this->foo();
        // Link to foo() in trait t, thanks to 'as'
        $this->foo2();
    }
}

?>
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.2";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Create Magic Method";
description = "This command creates a link DEFINITION between a ``__call()`` and ``__callStatic()`` calls, and its equivalent magic method.

<?php

class x {
    function foo() {
        // This is linked to __call
        $this->c();
        
        // This is linked to __callStatic
        return $this::C();
    }
    
    function __call($name, $args) {
        // Normal method call
    }

    function __callStatic($name, $args) {
        // Static method call
    }
}

?>

This command may not detect all possible link for the ``__get()`` and ``__set()`` call. It may be missing information about the nature of the object. ``Self``, ``static``, ``parent`` and simple variables are detected.

See also `Magic Methods <http://php.net/manual/en/language.oop5.magic.php>`_.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.6";

; Alternative to make this code go away. 
; One by possible solution
;modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Complete/SetClassRemoteDefinitionWithInjection";
description = "";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.2";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Set Class Method Remote Definition";
description = "Links method to the method definition. The link is ``DEFINITION``.

Static method calls and normal method calls are both solved with this rule. Parent classes and trait are also searched for the right method.

<?php

class x {
    public function __construct() {}
    public function foo() {}
}

// This links to __construct method
$a = new x;

// This links to foo() method
$a->foo();

?>";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.3";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Complete/CreateForeachDefault";
description = "";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.9";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Set String Method Definition";
description = "Links a string with a static method call to its definition. The link is ``DEFINITION``.

<?php
    class B { 
        static public function C() {}
    }

    $a = 'B::C';
?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.3";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Overwritten Constant";
description = "This command adds OVERWRITE link between class constant definitions.

<?php

class x {
    protected const A = 1;
}

class y extends x {
    protected const A = 1;
}

?>

The `A` constant will be linked between classes x and y, with an OVERWRITE link.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.2";

; Alternative to make this code go away. 
; One by possible solution
;modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Can't Disable Class";
description = "This is the list of potentially dangerous PHP class being used in the code, such as \Phar. 

<?php

// This script uses ftp_connect(), therefore, this function shouldn't be disabled. 
$phar = new Phar();

?>

This analysis is the base for suggesting values for the ``disable_classes`` directive.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Minus One On Error";
description = "Some PHP native functions return -1 on error. They also return 1 in case of success, and 0 in case of failure. This leads to confusions.

In case the native function is used as a condition without explicit comparison, PHP type cast the return value to a boolean. In this case, -1 and 1 are both converted to true, and the condition applies. This means that an error situation is mistaken for a successful event. 

<?php

// Proper check of the return value
if (openssl_verify($data, $signature, $public) === 1) {
    $this->loginAsUser($user);
}

// if this call fails, it returns -1, and is confused with true
if (openssl_verify($data, $signature, $public)) {
    $this->loginAsUser($user);
}
?>

This analysis searches for if/then structures, ternary operators inside while() / do...while() loops. 

See also `Can you spot the vulnerability? (openssl_verify) <https://twitter.com/ripstech/status/1124325237967994880>`_ and 
         `Incorrect Signature Verification <https://snyk.io/vuln/SNYK-PHP-SIMPLESAMLPHPSIMPLESAMLPHPMODULEINFOCARD-70167>`_.
";
clearphp = "";
severity = "S_CRITICAL";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_INSTANT";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.8.0";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Compare explicitly the return value to 1"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Should Use session_regenerateid()";
description = "session_regenerateid() should be used when sessions are used.

When using sessions, a session ID is assigned to the user. It is a random number, used to connect the user and its data on the server. Actually, anyone with the session ID may have access to the data. This is why those session ID are so long and complex.

A good approach to protect the session ID is to reduce its lifespan : the shorter the time of use, the better. While changing the session ID at every hit on the page may no be possible, a more reasonable approach is to change the session id when an important action is about to take place. What important means is left to the application to decide.

Based on this philosophy, a code source that uses Zend\Session but never uses Zend\Session::regenerateId() has to be updated.

<?php

    session_start();
    
    $id = (int) $_SESSION['id'];
    // no usage of session_regenerateid() anywhere triggers the analysis
    
    // basic regeneration every 20 hits on the page. 
    if (++$_SESSION['count'] > 20) {
        session_regenerateid();
    }

?>

See `session_regenerateid() <http://php.net/session_regenerate_id>`_ and `PHP Security Guide: Sessions <http://phpsec.org/projects/guide/4.html>`_.

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.10.4";

modifications[] = "Add session_regenerateid() call before any important operation on the application"

name = "Super Globals Contagion";
description = "Basic tainting system.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Encoded Simple Letters";
description = "Some simple letters are written in escape sequence. 

Usually, escape sequences are made to encode unusual characters. Using escape sequences for simple characters, like letters or numbers is suspicious.

This analysis also detects Unicode codepoint with superfluous leading zeros.

<?php

// This escape sequence makes eval hard to spot
$a = "ev\101l";
$a('php_info();');

// With a PHP 7.0 unicode code point sequence
$a = "ev\u{000041}l";
$a('php_info();');

// With a PHP 5.0+ hexadecimal sequence
$a = "ev\x41l";
$a('php_info();');

?>
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.10.5";
modifications[] = "Make all simple letter appear clearly"
modifications[] = "Add comments about why this code is encoded"

[example1]
project="Zurmo"
file="yii/framework/web/CClientScript.php"
line="783"
code="eval(""\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x6c\x65\x61\x6e\x41\x6e\x64\x53\x61\x6e\x69\x74\x69\x7a\x65\x53\x63\x72"" .
     ""\x69\x70\x74\x48\x65\x61\x64\x65\x72\x28\x26\x20\x24\x6f\x75\x74\x70\x75\x74\x29\x0d\x0a\x20\x20\x20\x20\x20\x20"" .
     ""\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7b\x0d\x0a\x20\x20\x20\x20\x20\x20\x20"" .
     ""\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x24\x72\x65\x71\x75\x69\x72"" .
     // several more lines like that
";
explain="This actually decodes into a copyright notice. 

'function cleanAndSanitizeScriptHeader(& $output)
                        {
                            $requiredOne = ""<span>Copyright &#169; Zurmo Inc., 2013. All rights reserved."";....'
"
name = "GPRC Aliases";
description = "The following variables are holding the content of $_GET, $_POST, $_REQUEST or $_COOKIE. They shouldn't be trusted, just like their original variables.";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "No ENT_IGNORE";
description = "Certain characters have special significance in HTML, and should be represented by HTML entities if they are to preserve their meanings.

ENT_IGNORE is a configuration option for htmlspecialchars(), that ignore any needed character replacement. This mean the raw input will now be processed by PHP, or a target browser.

It is recommended to use the other configuration options : ENT_COMPAT, ENT_QUOTES, ENT_NOQUOTES, ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_XML1, ENT_XHTML or ENT_HTML5.

<?php

// This produces a valid HTML tag
$new = htmlspecialchars(\"<a href='test'>Test</a>\", ENT_IGNORE);
echo $new; // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;

// This produces a valid string, without any HTML special value
$new = htmlspecialchars(\"<a href='test'>Test</a>\", ENT_QUOTES);
echo $new; // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;

?>

See also `htmlspecialchars <https://www.php.net/htmlspecialchars>`_ and
         `Deletion of Code Points <http://unicode.org/reports/tr36/#Deletion_of_Noncharacters>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.2";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Use of the the other options"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "No Net For Xml Load";
description = "Simplexml and ext/DOM load all external entities from the web, by default. This is dangerous, in particular when loading unknown XML code.

Look at this XML code below : it is valid. It defines an entity ``xxe``, that is filled with a file, read on the system and base64 encoded. 

<?literal

&lt;!DOCTYPE replace [&lt;!ENTITY xxe SYSTEM \"php://filter/convert.base64-encode/resource=index.php\"&gt; ]&gt;
<replace>&xxe;</replace>

?>

This file could be processed with the following code : note, you can replace 'index.php' in the above entity by any valid filepath. 

<?php 
    $dom = new DOMDocument();
    $dom->loadXML($xml, LIBXML_NOENT | LIBXML_DTDLOAD);
    $info = simplexml_import_dom($dom);
    
    print base64_decode($info[0]);
?> 

Here, PHP tries to load the XML file, finds the entity, then solves the entity by encoding a file called ``index.php``. The source code of the file is not used as data in the XML file. 

At that point, the example illustrates how a XXE works : by using the XML engine to load external resources, and preprocessing the XML code. in fact, there is only one change to make this XML code arbitrarily injected : 

<?literal

&lt;!DOCTYPE replace [&lt;!ENTITY writer SYSTEM "https://www.example.com/entities.dtd"&gt; ]&gt;
<replace>&xxe;</replace>

?>

With the above example, the XML code is static (as, it never changes), but the 'xxe' definitions are loaded from a remove website, and are completely under the attacker control.

See also `XML External Entity <https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XXE%20injection>`_, 
         `XML External Entity (XXE) Processing <https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Processing>`_ and 
         `Detecting and exploiting XXE in SAML Interfaces <https://web-in-security.blogspot.nl/2014/11/detecting-and-exploiting-xxe-in-saml.html>`_.
 ";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "1.0.11";

modifications[] = "Strip out any entity when using external XML";
modifications[] = "Forbid any network to the XML engine, by configuring the XML engine without network access";name = "Don't Echo Error";
description = "It is recommended to avoid displaying error messages directly to the browser.

PHP's uses the ``display_errors`` directive to control display of errors to the browser. This must be kept to ``off`` when in production.

<?php

// Inside a 'or' test
mysql_connect('localhost', $user, $pass) or die(mysql_error());

// Inside a if test
$result = pg_query( $db, $query );
if( !$result )
{
	echo Erreur SQL: . pg_error();
	exit;
}

// Changing PHP configuration
ini_set('display_errors', 1);
// This is also a security error : 'false' means actually true.
ini_set('display_errors', 'false');

?>

Error messages should be logged, but not displayed. 

See also `Error reporting <https://php.earth/docs/security/intro#error-reporting>`_ and 
         `List of php.ini directives <http://php.net/manual/en/ini.list.php>`_.

";
clearphp = "";
severity = "S_CRITICAL";
timetofix = "T_INSTANT";
exakatSince = "0.8.7";

modifications[] = "Remove any echo, print, printf() call built with error messages from an exception, or external source."

[example1]
project="ChurchCRM"
file="wp-admin/includes/misc.php"
line="74"
code="    if (mysqli_error($cnInfoCentral) != '') {
        echo gettext('An error occured: ').mysqli_errno($cnInfoCentral).'--'.mysqli_error($cnInfoCentral);
    } else {
";
explain="This is classic debugging code that should never reach production. mysqli_error() and mysqli_errno() provide valuable information is case of an error, and may be exploited by intruders."
[example2]
project=Phpdocumentor
file=src/phpDocumentor/Plugin/Graphs/Writer/Graph.php
line=77
code="    public function processClass(ProjectDescriptor $project, Transformation $transformation)
    {
        try {
            $this->checkIfGraphVizIsInstalled();
        } catch (\Exception $e) {
            echo $e->getMessage();

            return;
        }
";
explain="Default development behavior : display the caught exception. Production behavior should not display that message, but log it for later review. Also, the return in the catch should be moved to the main code sequence."
name = "Sensitive Argument";
description = "Spot the argument that are sensitive for security. The functioncalls that are hosting a sensitive argument are called a sink.

<?php

// first argument $query is a sensitive argument 
mysqli_query($query);

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Always Anchor Regex";
description = "Unanchored regex finds the requested pattern, and leaves room for malicious content. 

Without ``^`` and ``$``, the regex searches for any pattern that satisfies the criteria, leaving any unused part of the string available for arbitrary content. It is recommended to use both anchor

<?php

$birthday = getSomeDate($_GET);

// Permissive version : $birthday = '1970-01-01<script>xss();</script>';
if (!preg_match('/\d{4}-\d{2}-\d{2}/', $birthday) {
    error('Wrong data format for your birthday!');
}

// Restrictive version : $birthday = '1970-01-01';
if (!preg_match('/^\d{4}-\d{2}-\d{2}$/', $birthday) {
    error('Wrong data format for your birthday!');
}

echo 'Your birthday is on '.$birthday;

?>

Note that $ may be a line ending, still leaving room after it for injection.

<?php

$birthday = '1970-01-01'.PHP_EOL.'<script>xss();</script>';

?>

This analysis reports false positive when the regex is used to search a pattern in a much larger string. Check if this rule doesn't apply, though.

See also `CWE-625: Permissive Regular Expression <https://cwe.mitre.org/data/definitions/625.html>`_.

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "0.12.15";

modifications[] = "Add an anchor to the beginning and ending of the string"
name = "Safe Curl Options";
description = "It is advised to always use ``CURLOPT_SSL_VERIFYPEER`` and ``CURLOPT_SSL_VERIFYHOST`` when requesting a SSL connection. 

With those tests, the certificate is verified, and if it isn't valid, the connection fails : this is a safe behavior.

<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, https://www.php.net/);

// To be safe, always set this to true
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);

curl_exec($ch);
curl_close($ch);
?>

See also `Don’t turn off CURLOPT_SSL_VERIFYPEER, fix your PHP configuration <https://www.saotn.org/dont-turn-off-curlopt_ssl_verifypeer-fix-php-configuration/>`_,
         `Certainty: Automated CACert.pem Management for PHP Software <https://paragonie.com/blog/2017/10/certainty-automated-cacert-pem-management-for-php-software>`_ and
         `Server-Side HTTPS Requests <https://paragonie.com/blog/2017/12/2018-guide-building-secure-php-software#secure-server-side-https>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
modifications[] = "Always use CURLOPT_SSL_VERIFYPEER and HTTPS for communication with other servers"
[example1]
project="OpenConf"
file="openconf/include.php"
line="703"
code="			$ch = curl_init();
			curl_setopt($ch, CURLOPT_URL, $f);
			curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
			curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);       
			curl_setopt($ch, CURLOPT_AUTOREFERER, true);       
			curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);       
			curl_setopt($ch, CURLOPT_MAXREDIRS, 5);       
			curl_setopt($ch, CURLOPT_HEADER, false);       
			$s = curl_exec($ch);
			curl_close($ch);
			return($s);";
explain="The function that holds that code is only used to call openconf.com, over http, while openconf.com is hosted on https, nowadays. This may be a sign of hard to access certificates."
name = "Compare Hash";
description = "When comparing hash values, it is important to use the strict comparison : hash_equals(), ``===`` or ``!==``. 

In a number of situations, the hash value will start with ``0e``, and PHP will understand that the comparison involves integers : it will then convert the strings into numbers, and it may end up converting them to 0.

Here is an example : 

<?php

// The two following passwords hashes matches, while they are not the same. 
$hashed_password = 0e462097431906509000000000000;
if (hash('md5','240610708',false) == $hashed_password) {
  print 'Matched.'.PHP_EOL;
}

// hash returns a string, that is mistaken with 0 by PHP
// The strength of the hashing algorithm is not a problem
if (hash('ripemd160','20583002034',false) == '0') {
  print 'Matched.'.PHP_EOL;
}

if (hash('md5','240610708',false) !== $hashed_password) {
  print 'NOT Matched.'.PHP_EOL;
}

// Display true
var_dump(md5('240610708') == md5('QNKCDZO') );

?>

You may also use password_hash() and password_verify() : they work together without integer conversion problems, and they can't be confused with a number.

See also `Magic Hashes <https://blog.whitehatsec.com/magic-hashes/>`_ 
         `What is the best way to compare hashed strings? (PHP) <https://stackoverflow.com/questions/5211132/what-is-the-best-way-to-compare-hashed-strings-php/23959696#23959696>`_ and 
         `md5('240610708') == md5('QNKCDZO') <https://news.ycombinator.com/item?id=9484757>`_.

";
clearphp = "strict-comparisons";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
modifications[] = "Use dedicated functions for hash comparisons"
modifications[] = "Use identity operators (===), and not equality operators (==) to compare hashes"
modifications[] = "Compare hashes in the database (or external system), where such confusion is not possible"

[example1]
project="Traq"
file="src/Models/User.php"
line="105"
code="sha1($password) == $this->password";
explain="This code should also avoid using SHA1. "
[example2]
project="LiveZilla"
file="livezilla/_lib/objects.global.users.inc.php"
line="1391"
code="function IsValidToken($_token)
{
    if(!empty($_token))
        if(hash(\"sha256\",$this->Token) == $_token)
            return true;
    return false;
}";
explain="This code is using the stronger SHA256 but compares it to another string. $_token may be non-empty, and still be comparable to 0. "


name = "Configure Extract";
description = "The extract() function overwrites local variables when left unconfigured.

Extract imports variables from an array into the local scope. In case of a conflict, that is when a local variable already exists, it overwrites the previous variable.

In fact, extract() may be configured to handle the situation differently : it may skip the conflicting variable, prefix it, prefix it only if it exists, only import overwriting variables... It may also import them as references to the original values.

This analysis reports extract() when it is not configured explicitly. If overwriting is the intended objective, it is not reported.

<?php

// ignore overwriting variables
extract($array, EXTR_SKIP);

// prefix all variables explicitly variables with 'php_'
extract($array, EXTR_PREFIX_ALL, 'php_');

// overwrites explicitly variables
extract($array, EXTR_OVERWRITE);

// overwrites implicitely variables : do we really want that? 
extract($array, EXTR_OVERWRITE);

?>

Always avoid using extract() on untrusted sources, such as ``$_GET``, ``$_POST``, ``$_FILES``, or even databases records.

See also `extract <http://php.net/extract>`_.
 ";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "1.2.9";

modifications[] = "Always use the second argument of extract(), and avoid using ``EXTR_OVERWRITE``"

[example1]
project="Zurmo"
file="app/protected/modules/marketing/utils/GlobalMarketingFooterUtil.php"
line="127"
code="        public static function resolveManageSubscriptionsUrlByArray(array $queryStringArray, $preview = false)
        {
            $hash = $preview = null;
            extract(static::resolvePreviewAndHashFromArray($queryStringArray));
            return static::resolveManageSubscriptionsUrl($hash, $preview);
        }

// Also with : 
        protected static function resolvePreviewAndHashFromArray(array $queryStringArray)
        {
            $preview    = static::resolvePreviewFromArray($queryStringArray);
            $hash       = static::resolveHashByArray($queryStringArray);
            return compact('hash', 'preview');
        }

";
explain="This code intent to overwrite `$hash` and `$preview` : it is even literally in the code. The overwrite is intended too, and could even skip the initialisation of the variables. Although the compact()/extract() combinaison is safe as now, it could be safer to only relay the array index, instead of extracting the variables here. "

[example2]
project="Dolibarr"
file="htdocs/includes/restler/framework/Luracast/Restler/Format/HtmlFormat.php"
line="224"
code="        $template = function ($view) use ($data, $path) {
            $form = function () {
                return call_user_func_array(
                    'Luracast\Restler\UI\Forms::get',
                    func_get_args()
                );
            };
            if (!isset($data['form']))
                $data['form'] = $form;
            $nav = function () {
                return call_user_func_array(
                    'Luracast\Restler\UI\Nav::get',
                    func_get_args()
                );
            };
            if (!isset($data['nav']))
                $data['nav'] = $nav;

            $_ = function () use ($data, $path) {
                extract($data);
                $args = func_get_args();
                $task = array_shift($args);
                switch ($task) {
                    case 'require':
                    case 'include':
                        $file = $path . $args[0];
                        if (is_readable($file)) {
                            if (
                                isset($args[1]) &&
                                ($arrays = Util::nestedValue($data, $args[1]))
                            ) {
                                $str = '';
                                foreach ($arrays as $arr) {
                                    extract($arr);
                                    $str .= include $file;
                                }
                                return $str;
                            } else {
                                return include $file;
                            }
                        }
                        break;
                    case 'if':
                        if (count($args) < 2)
                            $args[1] = '';
                        if (count($args) < 3)
                            $args[2] = '';
                        return $args[0] ? $args[1] : $args[2];
                        break;
                    default:
                        if (isset($data[$task]) && is_callable($data[$task]))
                            return call_user_func_array($data[$task], $args);
                }
                return '';
            };
            extract($data);
            return @include $view;
        };";
explain="The extract() has been cleverly set in a closure, with a limited scope. The potential overwrite may impact existing variables, such as `$_`, `$nav`, `$form`, and `$data` itself. This may impact the following including. Using EXTR_SKIP would give existing variables priority, and avoid interference. "
name = "Avoid Those Hash Functions";
description = "The following cryptographic algorithms are considered insecure, and should be replaced with new and more performent algorithms. 

``MD2``, ``MD4``, ``MD5``, ``SHA0``, ``SHA1``, ``CRC``, ``DES``, ``3DES``, ``RC2``, ``RC4``. 

When possible, avoid using them, may it be as PHP functions, or hashing function configurations (mcrypt, hash...).

<?php

// Weak cryptographic algorithm
echo md5('The quick brown fox jumped over the lazy dog.');

// Weak crypotgraphic algorthim, used with a modern PHP extension (easier to update)
echo hash('md5', 'The quick brown fox jumped over the lazy dog.');

// Strong crypotgraphic algorthim, used with a modern PHP extension
echo hash('sha156', 'The quick brown fox jumped over the lazy dog.');

?>

Weak cryptography is commonly used for hashing values when caching them. In such cases, security is not a primary concern. However, it may later become such, when hackers get access to the cache folders, or if the cached identifier is published. As a preventive protection, it is recommended to always use a secure hashing function.

See also `Secure Hash Algorithms <https://en.wikipedia.org/wiki/Secure_Hash_Algorithms>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Keep the current crypto, and add a call to a stronger one. "
modifications[] = "Change the crypto for a more modern one and update the related databases"
name = "move_uploaded_file Instead Of copy";
description = "Always use move_uploaded_file() with uploaded files. Avoid using copy or rename with uploaded file. 

move_uploaded_file() checks to ensure that the file designated by filename is a valid upload file (meaning that it was uploaded via PHP's HTTP POST upload mechanism).

<?php

    // $a->file was filled with $_FILES at some point
    move_uploaded_file($a->file['tmp_name'], $target);

    // $a->file was filled with $_FILES at some point
    rename($a->file['tmp_name'], $target);

?>

See also `move_uploaded_file <http://php.net/move_uploaded_file>`_ and 
         `Uploading Files with PHP <https://www.sitepoint.com/file-uploads-with-php/>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "1.3.2";

modifications[] = "Always use move_uploaded_file() "
modifications[] = "Extract the needed information from the file, and leave it for PHP to remove without storage"
name = "Can't Disable Function";
description = "This is the list of potentially dangerous PHP functions being used in the code, such as exec() or fsockopen(). 

eval() is not reported here, as it is not a PHP function, but a language construct : it can't be disabled.

<?php

// This script uses ftp_connect(), therefore, this function shouldn't be disabled. 
$ftp = ftp_connect($host, 21);

// This script doesn't use imap_open(), therefore, this function may be disabled. 

?>

This analysis is the base for suggesting values for the ``disable_functions`` directive.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "parse_str() Warning";
description = "The parse_str() function parses a query string and assigns the resulting variables to the local scope. This may create a unexpected number of variables, and even overwrite the existing one.

<?php
  function foo( ) {
    global $a;
    
    echo $a;
  }

  parse_str('a=1'); // No second parameter
  foo( );
  // displays 1
?>

Always use an empty variable a second parameter to parse_str(), so as to collect the incoming values, and then, filter them in that array. 
";
clearphp = "know-your-variables";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";

modifications[] = "Use the second parameter when calling parse_url();"
modifications[] = "Change to PHP 8.0 version, which made the second argument compulsory"
name = "Upload Filename Injection";
description = "When receiving a file via Upload, it is recommended to store it under a self-generated name. Any storage that uses the original filename, or even a part of it may be vulnerable to injections.

<?php

// Security error ! the $_FILES['upload']['filename'] is provided by the sender.
// 'a.<script>alert(\'a\')</script>'; may lead to a HTML injection.
$extension = substr( strrchr($_FILES['upload']['name'], '.') ,1);
if (!in_array($extension, array('gif', 'jpeg', 'jpg')) { 
    // process error
    continue;
}
// Md5 provides a name without special characters
$name = md5($_FILES['upload']['filename']);
if(@move_uploaded_file($_FILES['upload']['tmp_name'], '/var/no-www/upload/'.$name.'.'.$extension)) {
    safeStoring($name.'.'.$extension, $_FILES['upload']['filename']);
}

// Security error ! the $_FILES['upload']['filename'] is provided by the sender.
if(@move_uploaded_file($_FILES['upload']['tmp_name'], $_FILES['upload']['filename'])) {
    safeStoring($_FILES['upload']['filename']);
}

// Security error ! the $_FILES['upload']['filename'] is provided by the sender.
// 'a.<script>alert('a')</script>'; may lead to a HTML injection.
$extension = substr( strrchr($_FILES['upload']['name'], '.') ,1);
$name = md5($_FILES['upload']['filename']);
if(@move_uploaded_file($_FILES['upload']['tmp_name'], $name.'.'.$extension)) {
    safeStoring($name.'.'.$extension, $_FILES['upload']['filename']);
}

?>

It is highly recommended to validate any incoming file, generate a name for it, and store the result in a folder outside the web folder. Also, avoid accepting PHP scripts, if possible.

See also `[CVE-2017-6090] <https://cxsecurity.com/issue/WLB-2017100031>`_, 
`CWE-616: Incomplete Identification of Uploaded File Variables <https://cwe.mitre.org/data/definitions/616.html>`_, 
`Why File Upload Forms are a Major Security Threat <https://www.acunetix.com/websitesecurity/upload-forms-threat/>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "0.12.14";

modifications[] = "Validate uploaded filenames"
modifications[] = "Rename files upon storage, and keep the original name in a database"name = "Mkdir Default";
description = "mkdir() gives universal access to created folders, by default. It is recommended to gives limited set of rights (0755, 0700), or to explicitly set the rights to 0777. 

<?php

// By default, this dir is 777
mkdir('/path/to/dir');

// Explicitely, this is wanted. It may also be audited easily
mkdir('/path/to/dir', 0777);

// This dir is limited to the current user. 
mkdir('/path/to/dir', 0700);

?>

See also `Why 777 Folder Permissions are a Security Risk <https://www.spiralscripts.co.uk/Blog/why-777-folder-permissions-are-a-security-risk.html>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.12.2";
modifications[] = "Always use the lowest possible privileges on folders"
modifications[] = "Don't use the PHP default : at least, make it explicit that the 'universal' rights are voluntary"
[example1]
project="Mautic"
file="app/bundles/CoreBundle/Helper/AssetGenerationHelper.php"
line="120"
code="                //combine the files into their corresponding name and put in the root media folder
                if ($env == 'prod') {
                    $checkPaths = [
                        $assetsFullPath,
                        ""$assetsFullPath/css"",
                        ""$assetsFullPath/js"",
                    ];
                    array_walk($checkPaths, function ($path) {
                        if (!file_exists($path)) {
                            mkdir($path);
                        }
                    });
";
explain="This code is creating some directories for Javascript or CSS (from the directories names) : those require universal reading access, but probably no execution nor writing access. 0711 would be sufficient in this case."
[example2]
project="OpenEMR"
file="interface/main/backuplog.php"
line="27"
code="mkdir($BACKUP_EVENTLOG_DIR)";
explain="If $BACKUP_EVENTLOG_DIR is a backup for an event log, this should be stored out of the web server reach, with low rights, beside the current user. This is part of a CLI PHP script. "
name = "Register Globals";
description = "``register_globals`` was a PHP directive that dumped all incoming variables from GET, POST, COOKIE and FILES as global variables in the called scripts.
This lead to security failures, as the variables were often used but not filtered. 

Though it is less often found in more recent code, ``register_globals`` is sometimes needed in legacy code, that haven't made the move to eradicate this style of coding.
Backward compatible pieces of code that mimic the ``register_globals`` features usually create even greater security risks by being run after scripts startup. At that point, some important variables are already set, and may be overwritten by the incoming call, creating confusion in the script.

Mimicking ``register_globals`` is achieved with variables variables, extract(), parse_str() and import_request_variables() (Up to PHP 5.4). 

<?php

// Security warning ! This overwrites existing variables. 
extract($_POST);

// Security warning ! This overwrites existing variables. 
foreach($_REQUEST as $var => $value) {
    $$var = $value;
}

?>

";
clearphp = "";
severity = "S_CRITICAL";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
modifications[] = "Avoid reimplementing register_globals"
modifications[] = "Use a container to store and access commonly used values"

[example1]
project=TeamPass
file=api/index.php
line=25
code="teampass_whitelist();

parse_str($_SERVER['QUERY_STRING']);
$method = $_SERVER['REQUEST_METHOD'];
$request = explode(\"/\", substr(@$_SERVER['PATH_INFO'], 1));
";
explain="The API starts with security features, such as the whitelist(). The whitelist applies to IP addresses, so the query string is not sanitized. Then, the QUERY_STRING is parsed, and creates a lot of new global variables."

[example2]
project=XOOPS
file=htdocs/modules/system/admin/images/main.php:33
line=33
code="// Check users rights
if (!is_object(\$xoopsUser) || !is_object(\$xoopsModule) || !$xoopsUser->isAdmin(\$xoopsModule->mid())) {
    exit(_NOPERM);
}

//  Check is active
if (!xoops_getModuleOption('active_images', 'system')) {
    redirect_header('admin.php', 2, _AM_SYSTEM_NOTACTIVE);
}

if (isset($_POST)) {
    foreach (\$_POST as \$k => \$v) {
        \${\$k} = \$v;
    }
}

// Get Action type
\$op = system_CleanVars(\$_REQUEST, 'op', 'list', 'string');
";
explain="This code only exports the POST variables as globals. And it does clean incoming variables, but not all of them. "

name = "Session Lazy Write";
description = "Classes that implements SessionHandlerInterface must also implements SessionUpdateTimestampHandlerInterface. 

The two extra methods are used to help lazy loading : the first actually checks if a sessionId is available, and the seconds updates the time of last usage of the session data in the session storage. 

This was spotted by ``Nicolas Grekas``, and fixed in Symfony `[HttpFoundation] Make sessions secure and lazy #24523 <https://github.com/symfony/symfony/pull/24523>`_. 

<?php

interface SessionUpdateTimestampHandlerInterface {
    // returns a boolean to indicate that valid data is available for this sessionId, or not.
    function validateId($sessionId);
    
    //called to change the last time of usage for the session data.
    //It may be a file's touch or full write, or a simple update on the database
    function updateTimestamp($sessionId, $sessionData);
}

?>

See also `Sessions: Improve original RFC about lazy_write <https://wiki.php.net/rfc/session-read_only-lazy_write>`_ and
         the `Sessions <http://php.net/manual/en/book.session.php>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.12.15";

modifications[] = "Implements the SessionUpdateTimestampHandlerInterface interface";
name = "Should Use Prepared Statement";
description = "Modern databases provides support for prepared statement : it separates the query from the processed data and raise significantly the security. 

Building queries with concatenations is not recommended, though not always avoidable. When possible, use prepared statements.

<?php
/* Execute a prepared statement by passing an array of values */

$sql = 'SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour';
$sth = $conn->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->execute(array(':calories' => 150, ':colour' => 'red'));
$red = $sth->fetchAll();
?>

Same code, without preparation : 

<?php

    $sql = 'SELECT name, color, calories FROM fruit WHERE calories < '.$conn-quote(150).' AND colour = '.$conn->quotes('red').' ORDER BY name';
    $sth = $conn->query($sql) as $row);
}
?>

See also `Prepared Statements <https://www.php.net/manual/en/mysqli.quickstart.prepared-statements.php>`_,
         `PHP MySQLi Prepared Statements Tutorial to Prevent SQL Injection <https://websitebeaver.com/prepared-statements-in-php-mysqli-to-prevent-sql-injection>`_,
         `The Best Way to Perform MYSQLI Prepared Statements in PHP <https://developer.hyvor.com/php/prepared-statements>`_.
         
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";

modifications[] = "Use an ORM"
modifications[] = "Use an Active Record library"
modifications[] = "Change the query to hard code it and make it not injectable"

[example1]
project="Dolibarr"
file="htdocs/product/admin/price_rules.php"
line="76"
code="$db->query(\"DELETE FROM \" . MAIN_DB_PREFIX . \"product_pricerules WHERE level = \" . (int) $i)";
explain="This code is well escaped, as the integer type cast will prevent any special chars to be used. Here, a prepared statement would apply a modern approach to securing this query."
name = "Keep Files Access Restricted";
description = "Avoid using 0777 as file or directory mode. In particular, setting a file or a directory to 0777 (or universal read-write-execute) may lead to security vulnerabilities, as anything on the server may read, write and even execute

File mode may be changed using the chmod() function, or at directory creation, with mkdir().

<?php

file_put_contents($file, $content);

// this file is accessible to the current user, and to his group, for reading and writing. 
chmod($file, 0550); 

// this file is accessible to everyone 
chmod($file, 0777); 

?>

By default, this analysis report universal access (0777). It is possible to make this analysis more restrictive, by providing more forbidden modes in the ``filePrivileges`` parameter. For example : ``511,510,489``. Only use a decimal representation. 

See also Security/MkdirDefault and 
        `Least Privilege Violation <https://owasp.org/www-community/vulnerabilities/Least_Privilege_Violation>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.1.1";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Set the file mode to a level of restriction as low as possible."

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

; Optional parameters
[parameter1]
name="filePrivileges";
default="0777";
type="string";
description="List of forbidden file modes (comma separated).";


; This is a safe guard, to find quickly missed docs
inited="Not yet";
name = "Dynamic Library Loading";
description = "Loading a variable dynamically requires a lot of care in the preparation of the library name. 

In case of injection in the variable, the dynamic loading of a library gives a lot of power to an intruder. 

<?php

    // dynamically loading a library
	dl($library. PHP_SHLIB_SUFFIX);

    // dynamically loading ext/vips
	dl('vips.' . PHP_SHLIB_SUFFIX);

    // static loading ext/vips (unix only)
	dl('vips.so');

?>

See also `dl <http://www.php.net/dl>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "1.1.7";

modifications[] = "Use a switch structure, to make the dl() calls static."
modifications[] = "Avoid using dl() and make the needed extension always available in PHP binary."name = "Direct Injection";
description = "The following code act directly upon PHP incoming variables like ``$_GET`` and ``$_POST``. This makes those snippets very unsafe.

<?php

// Direct injection
echo "Hello ".$_GET['user'].", welcome.";

// less direct injection
foo($_GET['user']);
function foo($user) {
    echo "Hello ".$user.", welcome.";
}

?>

See also `Cross-Site Scripting (XSS) <https://phpsecurity.readthedocs.io/en/latest/Cross-Site-Scripting-(XSS).html>`_

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
modifications[] = "Validate input : make sure the incoming data are what you expect from them."
modifications[] = "Escape output : prepare outgoing data for the next system to use."
name = "No Weak SSL Crypto";
description = "When enabling PHP's stream SSL, it is important to use safe protocol. 

All the SSL protocol, and TLS (its successor) v 1.0 are not unsafe. The best is to use the most recent TLS, the 1.2. 

stream_socket_enable_crypto() and curl_setopt() are checked.

See also `Insecure Transportation Security Protocol Supported (TLS 1.0) <https://www.netsparker.com/web-vulnerability-scanner/vulnerabilities/insecure-transportation-security-protocol-supported-tls-10/>`_ and
         `The 2018 Guide to Building Secure PHP Software <https://paragonie.com/blog/2017/12/2018-guide-building-secure-php-software>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.6";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Set Cookie Safe Arguments";
description = "The last five arguments of setcookie() and setrawcookie() are for security. Use them anytime you can.

``setcookie ( string $name [, string $value = "" [, int $expire = 0 [, string $path = "" [, string $domain = "" [, bool $secure = false [, bool $httponly = false ]]]]]] )``

The ``$expire`` argument sets the date of expiration of the cookie. It is recommended to make it as low as possible, to reduce its chances to be captured. Sometimes, low expiration date may be several days (for preferences), and other times, low expiration date means a few minutes. 

The ``$path`` argument limits the transmission of the cookie to URL whose path matches the one mentioned here. By default, it is ``'/'``, which means the whole server. If a cookie usage is limited to a part of the application, use it here.

The ``$domain`` argument limits the transmission of the cookie to URL whose domain matches the one mentioned here. By default, it is ``''``, which means any server on the internet. At worse, you may use ``mydomain.com`` to cover your whole domain, or better, refine it with the actual subdomain of usage.

The ``$secure`` argument limits the transmission of the cookie over HTTP (by default) or HTTPS. The second is better, as the transmission of the cookie is crypted. In case HTTPS is still at the planned stage, use '$_SERVER["HTTPS"]'. This environment variable is false on HTTP, and true on HTTPS.

The ``$httponly`` argument limits the access of the cookie to JavaScript. It is only transmitted to the browser, and retransmitted. This helps reducing XSS and CSRF attacks, though it is disputed. 

The ``$samesite`` argument limits the sending of the cookie to the domain that initiated the request. It is by default ``Lax`` but should be upgraded to ``Strict`` whenever possible. This feature is available as PHP 7.3. 

<?php

//admin cookie, available only on https://admin.my-domain.com/system/, for the next minute, and not readable by javascript
setcookie("admin", $login, time()+60, "/system/", "admin.my-domain.com", $_SERVER['HTTPS'], 1);

//login cookie, available until the browser is closed, over http or https
setcookie("login", $login);

//removing the login cookie : Those situations are omitted by the analysis
setcookie("login", '');

?>

See also `setcookie <http://www.php.net/setcookie>`_ and 
         `'SameSite' cookie attribute <https://www.chromestatus.com/feature/4672634709082112>`_.

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "0.10.6";

modifications[] = "Use all the argument when setting cookies with PHP functions"name = "Indirect Injection";
description = "Look for injections through indirect usage for GPRC values ($_GET, $_POST, $_REQUEST, $_COOKIE). 

<?php

$a = $_GET['a'];
echo $a;

function foo($b) {
    echo $b;
}
foo($_POST['c']);

?>


";
clearphp = "";
severity = "S_CRITICAL";
timetofix = "T_SLOW";
exakatSince = "0.8.4";

modifications[] = "Always validate incoming values before using them."
name = "Safe HTTP Headers";
description = "Avoid configuring HTTP headers with lax restriction from within PHP. 

There are a lot of HTTP headers those days, targeting various vulnerabilities. To ensure backward compatibility, those headers have a default mode that is lax and permissive. It is recommended to avoid using those from within the code.

<?php

//Good configuration, limiting access to origin
header('Access-Control-Allow-Origin: https://www.exakat.io');

//Configuration is present, but doesn't restrict anything : any external site is a potential source
header('Access-Control-Allow-Origin: *');

?>

See also `Hardening Your HTTP Security Headers <https://www.keycdn.com/blog/http-security-headers>`_,
         `How To Secure Your Web App With HTTP Headers <https://www.smashingmagazine.com/2017/04/secure-web-app-http-headers/>`_ and 
         `SecurityHeaders <https://securityheaders.com/>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "1.5.5";

modifications[] = "Remove usage of those headers"name = "filter_input() As A Source";
description = "The filter_input() and filter_input_array() functions access directly to ``$_GET``. They represent a source for external data just like ``$_GET``, ``$_POST``, etc.

The main feature of filter_input() is that it is already filtered. The main drawback is that ``FILTER_FLAG_NONE`` is the ``none`` filter, and that default configuration is `FILTER_UNSAFE_RAW`.

The filter extension keeps access to the incoming data, even after the super globals, such as ``$_GET``, are unset.

<?php

// Removing $_GET
$_GET = [];

// with the default : FILTER_UNSAFE_RAW, this means XSS
echo filter_input(INPUT_GET, 'i');

// Same as above : 
echo filter_var(_GET, 'i');

?>

Thanks to `Frederic Bouchery <https://twitter.com/FredBouchery/>`_ for reporting this `special case <https://twitter.com/FredBouchery/status/1049297213598457857>`_.

See also `Data filtering <http://php.net/manual/en/book.filter.php>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "1.4.8";

modifications[] = "Use the classic $_GET, $_POST super globals, which are easier to audit."
modifications[] = "Use your framework's parameter access."name = "Sqlite3 Requires Single Quotes";
description = "The escapeString() method from ``SQLite3`` doesn't escape ``\"``, but only ``'``. 

<?php

// OK. escapeString is OK with '
$query = \"SELECT * FROM table WHERE col = '\".$sqlite->escapeString($x).\"'\";

// This is vulnerable to \" in $x
$query = 'SELECT * FROM table WHERE col = \"'.$sqlite->escapeString($x).'\"';

?>

To properly handle quotes and ``NUL`` characters, use bindParam() instead.

Quote from the PHP manual comments : ``The reason this function doesn't escape double quotes is because double quotes are used with names (the equivalent of backticks in MySQL), as in table or column names, while single quotes are used for values.``

See also `SQLite3::escapeString <http://php.net/manual/en/sqlite3.escapestring.php>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "1.0.10";

modifications[] = "Use prepared statements whenever possible"
modifications[] = "Switch the query to use single quote"

name = "Integer Conversion";
description = "Comparing incoming variables to integer may lead to injection.

When comparing a variable to an integer, PHP applies type juggling, and transform the variable in an integer too. When the value converts smoothly to an integer, this means the validation may pass and yet, the value may carry an injection.

<?php

// This is safer
if ($_GET['x'] === "2") {
    echo $_GET['x'];
}

// Using (int) for validation and display
if ((int) $_GET['x'] === 2) {
    echo (int) $_GET['x'];
}

// This is an injection
if ($_GET['x'] == 2) {
    echo $_GET['x'];
}

// This is unsafe, as $_GET['x']  is tester as an integer, but echo'ed raw
if ((int) $_GET['x'] === 2) {
    echo $_GET['x'];
}

?>

This analysis spots situations where an incoming value is compared to an integer. The usage of the validated value is not considered.

See also `Type Juggling Authentication Bypass Vulnerability in CMS Made Simple <https://www.netsparker.com/blog/web-security/type-juggling-authentication-bypass-cms-made-simple/>`_,
         `PHP STRING COMPARISON VULNERABILITIES <https://hydrasky.com/network-security/php-string-comparison-vulnerabilities/>`_ and 
         `PHP Magic Tricks: Type Juggling <https://www.owasp.org/images/6/6b/PHPMagicTricks-TypeJuggling.pdf>`_.
";
clearphp = "";
severity = "S_MAJOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.7.7";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Check Crypto Key Length";
description = "Each cryptographic algorithm requires a reasonable length. Make sure an up-to-date length is used. 

This rule use the following recommendations : 

+ \\OPENSSL_KEYTYPE_RSA' => 3072
+ \\OPENSSL_KEYTYPE_DSA' => 2048
+ \\OPENSSL_KEYTYPE_DH'  => 2048
+ \\OPENSSL_KEYTYPE_EC'  => 512

The values above are used with the openssl PHP extension. 

<?php

// Extracted from the documentation

// Generates a new and strong key 
$private_key = openssl_pkey_new(array(
    "private_key_type" => OPENSSL_KEYTYPE_EC,
    "private_key_bits" => 1024,
));

// Generates a new and weak key 
$private_key = openssl_pkey_new(array(
    "private_key_type" => OPENSSL_KEYTYPE_EC,
    "private_key_bits" => 256,
));

?>

See also `The Definitive 2019 Guide to Cryptographic Key Sizes and Algorithm Recommendations <https://paragonie.com/blog/2019/03/definitive-2019-guide-cryptographic-key-sizes-and-algorithm-recommendations>`_ and
        `Cryptographic Key Length Recommendation <https://www.keylength.com/>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.1.1";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

; Optional parameters
;[parameter1]
;name="parametersCount";
;default="8";
;type="integer";
;description="Minimal number of parameters to report.";


; This is a safe guard, to find quickly missed docs
inited="Not yet";
name = "Avoid sleep()/usleep()";
description = "sleep() and usleep() help saturate the web server. 

Pausing the script for a specific amount of time means that the Web server is also making all related resources sleep, such as database, sockets, session, etc. This may used to set up a DOS on the server.  

<?php

$begin = microtime(true);
checkLogin($user, $password);
$end   = microtime(true);

// Making all login checks looks the same
usleep(1000000 - ($end - $begin) * 1000000); 

// Any hit on this page now uses 1 second, no matter if load is high or not
// Is it now possible to saturate the webserver in 1 s ? 

?>

As much as possible, avoid delaying the end of the script. 

sleep() and usleep() have less impact in commandline (``CLI``).

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Add a deadline of usage in the session, and wait past this deadline to start serving again. Until then, abort immediately.";
modifications[] = "Use element in the GUI to delay or slow usage.";name = "Unserialize Second Arg";
description = "Since PHP 7, unserialize() function has a second argument that limits the classes that may be unserialized. In case of a breach, this is limiting the classes accessible from unserialize(). 

One way to exploit unserialize, is to make PHP unserialized the data to an available class, may be one that may be auto-loaded.

<?php

// safe unserialization : only the expected class will be extracted
$serialized = 'O:7:"dbClass":0:{}';
$var = unserialize($serialized, ['dbClass']);
$var->connect();

// unsafe unserialization : $var may be of any type that was in the serialized string
// although, here, this is working well.
$serialized = 'O:7:"dbClass":0:{}';
$var = unserialize($serialized);
$var->connect();

// unsafe unserialization : $var is not of the expected type.
// and, here, this will lead to disaster.
$serialized = 'O:10:"debugClass":0:{}';
$var = unserialize($serialized);
$var->connect();

?>

See also `unserialize() <https://www.php.net/unserialize>`_, 
         `Securely Implementing (De)Serialization in PHP <https://paragonie.com/blog/2016/04/securely-implementing-de-serialization-in-php>`_, and 
         `Remote code execution via PHP [Unserialize] <https://www.notsosecure.com/remote-code-execution-via-php-unserialize/>`_.
";
clearphp = "";
phpversion = "7.0+";
severity = "S_CRITICAL";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
modifications[] = "Add a list of class as second argument of any call to unserialize(). This is valid for PHP 7.0 and later."

[example1]
project="Piwigo"
file="admin/configuration.php"
line="491"
code="      $disabled = @unserialize(@$conf['disabled_derivatives']);";
explain="unserialize() extracts information from the $conf variable : this variable is read from a configuration file. It is later tested to be an array, whose index may not be all set (@$disabled[$type];). It would be safer to make $disabled an object, add the class to unserialize, and set default values to the needed properties/index. "

[example2]
project="LiveZilla"
file="livezilla/_lib/objects.global.inc.php"
line="2600"
code="        $this->Customs = (!empty($_row[\"customs\"])) ? @unserialize($_row[\"customs\"]) : array();";
explain="unserialize() only extract a non-empty value here. But its content is not checked. It is later used as an array, with multiple index. "name = "Cant Instantiate Class";
description = "When constructor is not public, it is not possible to instantiate such a class. Either this is a conception choice, or there are factories to handle that. Either way, it is not possible to call new on such class. 

PHP reports an error similar to this one : 'Call to private Y::__construct() from invalid context'.

<?php

//This is the way to go
$x = X::factory();

//This is not possible
$x = new X();

class X {
    //This is also the case with proctected __construct
    private function __construct() {}

    static public function factory() {
        return new X();
    }
}

?>

See also `In a PHP5 class, when does a private constructor get called? <https://stackoverflow.com/questions/26079/in-a-php5-class-when-does-a-private-constructor-get-called>`_,
         `Named Constructors in PHP <http://verraes.net/2014/06/named-constructors-in-php/>`_ and 
         `PHP Constructor Best Practices And The Prototype Pattern <http://ralphschindler.com/2012/03/09/php-constructor-best-practices-and-the-prototype-pattern>`_.
";
clearphp = "";
severity = "S_CRITICAL";
timetofix = "T_QUICK";
exakatSince = "1.2.8";

phpErrors[] = "Call to private Y::__construct() from invalid context";

[example1]
project="WordPress"
file="wp-admin/includes/misc.php"
line="74"
code="$markerdata = explode( \"\n\", implode( '', file( $filename ) ) );";
explain="This code actually loads the file, join it, then split it again. file() would be sufficient. "
name = "Law of Demeter";
description = "The law of Demeter specifies a number of constraints to apply to methodcalls from within an method, so as to keep dependencies to a minimum. 

<?php

class x {
    function foo($arg) {
        $this->foo();    // calling oneself is OK
        $this->x->bar(); // calling one's property is OK
        $arg->bar2();    // calling arg's methods is OK

        $local = new y();
        $z = $y->bar3();      // calling a local variable is OK

        $z->bar4();      // calling a method on a previous result is wrong
    }
}

?>

See also `Do your objects talk to strangers? <https://www.brandonsavage.net/do-your-objects-talk-to-strangers/>`_ and 
        `Law of Demeter <https://en.wikipedia.org/wiki/Law_of_Demeter>`_.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.6.7";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Abstract Static Methods";
description = "Methods cannot be both abstract and static. Static methods belong to a class, and will not be overridden by the child class. For normal methods, PHP will start at the object level, then go up the hierarchy to find the method. With static, it is necessary to mention the name, or use Late Static Binding, with self or static. Hence, it is useless to have an abstract static method : it should be a static method.

A child class is able to declare a method with the same name than a static method in the parent, but those two methods will stay independent. 

This is not the case anymore in PHP 7.0+.

<?php

abstract class foo {
    // This is not possible
    static abstract function bar() ;
}

?>

See also `Why does PHP 5.2+ disallow abstract static class methods? <https://stackoverflow.com/questions/999066/why-does-php-5-2-disallow-abstract-static-class-methods>`_.
";
clearphp = "";
phpversion = "7.0-";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Remove abstract keyword from the method"
modifications[] = "Remove static keyword from the method"
modifications[] = "Remove the method"name = "Properties Declaration Consistence";
description = "Properties may be declared all at once, or one by one. 

The analyzed code has less than 10% of one of them : for consistency reasons, it is recommended to make them all the same. 

It happens that choosing unique declarations or multiple depends on coding style and files. 

<?php

class x {
    // Some declarations are made by batch
    private $a1 = 1,
            $a2 = 2;
    public $c = 1, $c2 = 2, $c4 = 3;

    // Most declarations are made one by one
    protected $b = 1;
    protected $b1 = 1;
    protected $b2 = 1;
    protected $b3 = 1;
    protected $b4 = 1;
    protected $b5 = 1;
    protected $b6 = 1;
    protected $b7 = 1;
    protected $b8 = 1;
    protected $b9 = 1;
    protected $b10 = 1;
    protected $b11 = 1;
    protected $b12 = 1;
    protected $b13 = 1;
    protected $b14 = 1;
    protected $b15 = 1;
    protected $b16 = 1;
    protected $b17 = 1;
    protected $b18 = 1;
    protected $b19 = 1;

}
?>

See also `Properties <http://php.net/manual/en/language.oop5.properties.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.2.1";
name = "Could Be Protected Method";
description = "Those methods are declared public, but are never used publicly. They may be made protected. 

<?php

class foo {
    // Public, and used publicly
    public publicMethod() {}

    // Public, but never used outside the class or its children
    public protectedMethod() {}
    
    private function bar() {
        $this->protectedMethod();
    }
}

$foo = new Foo();
$foo->publicMethod();

?>

These properties may even be made private.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.12.11";name = "Fossilized Method";
description = "A method is fossilized when it is overwritten so often that changing a default value, a return type or an argument type is getting difficult.

This happens when a class is extended. When a method is overwritten once, it may be easy to update the signature in two places. The more methods are overwriting a parent method, the more difficult it is to update it.

This analysis counts the number of times a method is overwriten, and report any method that is ovrewriten more than 6 times. This threshold may be configured.

<?php

class x1 {
    // foo1() is never overwritten. It is easy to update.
    function foo1() {}

    // foo7() is overwritten seven times. It is hard to update.
    function foo7() {}
}

// classes x2 to x7, all overwrite foo7();
// Only x2 is presente here.
class x2 extends x1 {
    function foo7() {}
}

?>
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.0.6";

; Alternative to make this code go away. 
; One by possible solution
;modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

[parameter1]
name="fossilizationThreshold";
default="6";
type="integer";
description="Minimal number of overwriting methods to consider a method difficult to update.";
name = "Undefined Parent";
description = "List of properties and methods that are accessed using ``parent`` keyword but are not defined in the parent classes. 

This may compile but, eventually yields a fatal error during execution.

<?php

class theParent {
    // No bar() method
    // private bar() method is not accessible to theChild 
}

class theChild extends theParent {
    function foo() {
        // bar is defined in theChild, but not theParent
        parent::bar();
    }
    
    function bar() {
    
    }
}

?>

Note that if the parent is defined using ``extends someClass`` but ``someClass`` is not available in the tested code, it will not be reported : it may be in composer, another dependency, or just missing.

See also `parent <http://php.net/manual/en/keyword.parent.php>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
modifications[] = "Remove the usage of the found method"
modifications[] = "Add a definition for the method in the appropriate parent"
modifications[] = "Fix the name of the method, and replace it with a valid definition"
modifications[] = "Change 'parent' with 'self' if the method is eventually defined in the current class"
modifications[] = "Change 'parent' with another object, if the method has been defined in another class"
modifications[] = "Add the 'extends' keyword to the class, to actually have a parent class"


phpError[] = "Call to undefined method theParent::bar()"
phpError[] = "Cannot access parent:: when current class scope has no parent"name = "Unreachable Class Constant";
description = "Class constants may be unreachable due to visibility configuration. 

Since PHP 7.1, class constants support visibility. Their usage may be restricted to the current class, or ``private``, to classes that extends or are extended by the current class, or ``protected``. They may also be ``public``, just like it was before. 

<?php

class Foo{
    private const PRIVATE = 1;
            const PUBLIC = 3;
}

// PHP 7.1- and older
echo Foo::PUBLIC;

// This is not accessible
echo Foo::PRIVATE;

?>

See also `Class Constant <http://php.net/manual/en/language.oop5.constants.php>`_ and 
         `PHP RFC: Support Class Constant Visibility <https://wiki.php.net/rfc/class_const_visibility>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "1.5.4";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Make the class constant protected, when the call to the constant is inside a related class."
modifications[] = "Create another constant, that may be accessible"
modifications[] = "Make the class constant public"


; A PHP error that may be emitted by the target faulty code
phpError[] = "Cannot access private const "
name = "Raised Access Level";
description = "A property's visibility may be lowered, but not raised.

This error may be detected when the classes are all in the same file : then, PHP reports the problem. However, when the classes are separated in different files, as it is customary, PHP won't check this at linting time, yielding a fatal error at execution time. 

First file.

<?php

class Foo {
    public $publicProperty;
    protected $protectedProperty;
    private $privateProperty;
}
?>

Second file.

<?php

class Bar extends Foo {
    private $publicProperty;
    private $protectedProperty;
    private $privateProperty;   // This one is OK
}
?>

See also `Visibility <http://php.net/manual/en/language.oop5.visibility.php>`_ and 
         `Understanding the concept of visibility in object oriented php <https://torquemag.io/2016/05/understanding-concept-visibility-object-oriented-php/>`_.
";
clearphp = "";
severity = "S_CRITICAL";
timetofix = "T_QUICK";
exakatSince = "0.10.0";

modifications[] = "Lower the visibility in the child class"
modifications[] = "Raise the visibility in the parent class"

phpError[] = "Access level to Bar::$publicProperty must be public (as in class Foo)"name = "Property Names";
description = "Variables are used in property definitions, when they are located in a class. 

<?php

static $x; // not a property, a static variable

class foo {
    static $x; // now, this is a static property
    public $y, $z = 1; // normal properties
    
    public function bar() {
        static $x; // again, a static variable
    }
}

?>

See also `Properties <http://php.net/manual/en/language.oop5.properties.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Dynamic Classes";
description = "Dynamic calls of classes.

<?php

class x {
    static function staticMethod() {}
}

$class = 'x';
$class::staticMethod();

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Hidden Nullable";
description = "Argument with default value of null are nullable. Even when the ``null`` typehint (PHP 8.0), or the ``?`` operator are not used, setting the default value to null is allowed, and makes the argument nullable.

This doesn't happen with properties : they must be defined with the nullable type to accept a ``null``value as default value.

This doesn't happen with constant, which can't be typehinted. 

<?php

// explicit nullable parameter $s
function bar(?string $s = null) {

// implicit nullable parameter $s
function foo(string $s = null) {
    echo $s ?? 'NULL-value';
}

// both display NULL-value
foo(); 
foo(null);

?>

See also `Nullable types <https://wiki.php.net/rfc/nullable_types>`_ and 
         `Type declaration <https://www.php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.1.0";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Change the default value to a compatible literal : for example, ``string $s = ''``"
modifications[] = "Add the explicit ``?`` nullable operator, or ``null``with PHP 8.0"
modifications[] = "Remove the default value"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

; Optional parameters
;[parameter1]
;name="parametersCount";
;default="8";
;type="integer";
;description="Minimal number of parameters to report.";

name = "Useless Abstract Class";
description = "Those classes are marked 'abstract' and they are never extended. This way, they won't be instantiated nor used. 

Abstract classes that have only static methods are omitted here : one usage of such classes are Utilities classes, which only offer static methods. 

<?php

// Never extended class : this is useless
abstract class foo {}

// Extended class
abstract class bar {
    public function barbar() {}
}

class bar2 extends bar {}

// Utility class : omitted here
abstract class bar {
    public static function barbar() {}
}

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";

modifications[] = "Drop the abstract keyword"
modifications[] = "Actually add an abstract keyword"name = "Unused Protected Methods";
description = "The following protected methods are unused in children class. As such, they may be considered for being private.

Methods reported by this analysis are not used by children, yet they are protected.

<?php

class Foo {
    // This method is not used
    protected function unusedBar() {}
    protected function usedInFoo() {}
    protected function usedInFooFoo() {}
    
    public function bar2() {
        // some code
        $this->usedInFoo();
    }
}

class FooFoo extends Foo {
    protected function bar() {}
    
    public function bar2() {
        // some code
        $this->usedInFooFoo();
    }
}

class someOtherClass {
    protected function bar() {
        // This is not related to foo.
        $this->unusedbar();
    }
}

?>

No usage of those methods were found. 

This analysis is impacted by dynamic method calls.";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";

modifications[] = "Make use of the protected method in the code"
modifications[] = "Remove the method"
name = "Can't Extend Final";
description = "It is not possible to extend final classes. 

Since PHP fails with a fatal error, this means that the extending class is probably not used in the rest of the code. Check for dead code.

<?php
    // File Foo
    final class foo {
        public final function bar() {
            // doSomething
        }
    }
?>

In a separate file : 

<?php
    // File Bar
    class bar extends foo {
    
    }
?>

See also `Final Keyword <http://php.net/manual/en/language.oop5.final.php>`_.
";
clearphp = "";
severity = "S_CRITICAL";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Remove the final keyword"
modifications[] = "Remove the extending class"name = "Redefined Default";
description = "Classes allows properties to be set with a default value. When those properties get, unconditionally, another value at constructor time, then one of the default value are useless. One of those definition should go : it is better to define properties outside the constructor.

<?php

class foo {
    public $redefined = 1;

    public function __construct( ) {
        $this->redefined = 2;
    }
}

?>
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";

modifications[] = "Move the default assignation to the property definition"
modifications[] = "Drop the reassignation in the constructor"

[example1]
project="Piwigo"
file="admin/include/updates.class.php"
line="34"
code="class updates
{
  var $types = array();
  var $plugins;
  var $themes;
  var $languages;
  var $missing = array();
  var $default_plugins = array();
  var $default_themes = array();
  var $default_languages = array();
  var $merged_extensions = array();
  var $merged_extension_url = 'http://piwigo.org/download/merged_extensions.txt';

  function __construct($page='updates')
  {
    $this->types = array('plugins', 'themes', 'languages');

    if (in_array($page, $this->types))
    {
      $this->types = array($page);
    }
    $this->default_themes = array('clear', 'dark', 'Sylvia', 'elegant', 'smartpocket');
    $this->default_plugins = array('AdminTools', 'TakeATour', 'language_switch', 'LocalFilesEditor');
";
explain="default_themes is defined as an empty array, then filled with new values. Same for default_plugins. Both may be defined as declaration time, and not during the constructor."
name = "Should Use Local Class";
description = "Methods should use the defining class, or be functions.

Methods should use ``$this`` with another method or a property, or call ``parent::``. Static methods should call another static method, or a static property. 
Methods which are overwritten by a child class are omitted : the parent class act as a default value for the children class, and this is correct.

<?php

class foo {
    public function __construct() {
        // This method should do something locally, or be removed.
    }
}

class bar extends foo {
    private $a = 1;
    
    public function __construct() {
        // Calling parent:: is sufficient
        parent::__construct();
    }

    public function barbar() {
        // This is acting on the local object
        $this->a++;
    }

    public function barfoo($b) {
        // This has no action on the local object. It could be a function or a closure where needed
        return 3 + $b;
    }
}

?>

Note that a method using a class constant is not considered as using the local class, for this analyzer. 

";
clearphp = "not-a-method";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Test Class";
description = "Those are test classes, based on popular UT frameworks.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Never Used Properties";
description = "Properties that are never used. They are defined in a class or a trait, but they never actually used.

Properties are considered used when they are used locally, in the same class as their definition, or in a parent class : a parent class is always included with the current class. 

On the other hand, properties which are defined in a class, but only used in children classes is considered unused, since children may also avoid using it. 

<?php

class foo {
    public $usedProperty = 1;

    // Never used anywhere
    public $unusedProperty = 2;
    
    function bar() {
        // Used internally
        ++$this->usedProperty;
    }
}

class foo2  extends foo {
    function bar2() {
        // Used in child class
        ++$this->usedProperty;
    }
}

// Used externally
++$this->usedProperty;

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";

modifications[] = "Drop unused properties";
modifications[] = "Change the name of the unused properties";
modifications[] = "Move the properties to children classes";
modifications[] = "Find usage for unused properties";

[example1]
project="WordPress"
file="wp-admin/includes/misc.php"
line="74"
code="$markerdata = explode( \"\n\", implode( '', file( $filename ) ) );";
explain="This code actually loads the file, join it, then split it again. file() would be sufficient. "
name = "Class Has Fluent Interface";
description = "Mark a class as such when it contains at least one fluent method. A fluent method is a method that returns $this, for chaining.

<?php

class foo {
    private $count = 0;

    function a() {
        ++$this->count;
        return $this;
    }

    function b() {
        $this->count += 2;
        return $this;
    }

    function c() {
        return $this->count;
    }
}

$bar = new foo();
print $bar->a()
          ->b()
          ->c();

// display 3 (1 + 2).

?>

See also `The basics of Fluent interfaces in PHP <https://tournasdimitrios1.wordpress.com/2011/04/11/the-basics-of-fluent-interfaces-in-php/>`_ and
         `Fluent interface are evil <https://ocramius.github.io/blog/fluent-interfaces-are-evil/>`_

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Used Once Property";
description = "Property used once in their defining class. 

Properties used in one method only may be used several times, and read only. This may be a class constant. Such properties are meant to be overwritten by an extending class, and that's possible with class constants. 

Setting properties with default values is a good way to avoid littering the code with literal values, and provide a single point of update (by extension, or by hardcoding) for all those situations. A constant is definitely better suited for this task.

<?php

class foo {
    private $defaultCols = '*';
    cont DEFAULT_COLUMNS = '*';

    // $this->defaultCols holds a default value. Should be a constant.
    function bar($table, $cols) {
        // This is necessary to activate usage of default values
        if (empty($cols)) {
            $cols = $this->defaultCols;
        }
        $res = $this->query('SELECT '.$cols.' FROM '.$table);
        // ....
    }

    // Upgraded version of bar, with default values
    function bar2($table, $cols = self::DEFAULT_COLUMNS) {
        $res = $this->query('SELECT '.$cols.' FROM '.$table);
        // .....
    }
}

?>
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.10.3";
modifications[] = "Remove the property, as it is probably not unused"
modifications[] = "Add another usage of the property where it is useful"
name = "Child Class Removes Typehint";
description = "PHP 7.2 introduced the ability to remove a typehint when overloading a method. This is not valid code for older versions.

<?php

class foo {
    function foobar(foo $a) {}
}

class bar extends foo {
    function foobar($a) {}
}

?>

";
clearphp = "";
phpversion = "7.2+";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.12.4";name = "Internally Used Properties";
description = "Properties that are used internally.

<?php

class x {
    public $internallyUsedProperty = 1;
    public $externallyUsedProperty = 1;
    public $alsoExternallyUsedProperty = 1;
    
    function foo() {
        $this->internallyUsedProperty = 2;
    }
}

class y extends x {
    function bar() {
        $this->externallyUsedProperty = 3;
    }
}

$X = new x();
$X->alsoExternallyUsedProperty = 3;

?>
 ";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
name = "Unitialized Properties";
description = "Properties that are not initialized in the constructor, nor at definition. 

<?php

class X {
    private $i1 = 1, $i2;
    protected $u1, $u2;
    
    function __construct() {
        $this->i2 = 1 + $this->u2;
    }
    
    function m() {
        echo $this->i1, $this->i2, $this->u1, $this->u2;
    }
}
?>

With the above class, when m() is accessed right after instantiation, there will be a missing property. 
Using default values at property definition, or setting default values in the constructor ensures that the created object is consistent. 

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.9";

modifications[] = "Add an explicit initialization for each property."

[example1]
project="SPIP"
file="ecrire/public/interfaces.php"
line="584"
code="/**
 * Description d'un critère de boucle
 *
 * Sous-noeud de Boucle
 *
 * @package SPIP\Core\Compilateur\AST
 **/
class Critere {
	/**
	 * Type de noeud
	 *
	 * @var string
	 */
	public $type = 'critere';

	/**
	 * Opérateur (>, <, >=, IN, ...)
	 *
	 * @var null|string
	 */
	public $op;

	/**
	 * Présence d'une négation (truc !op valeur)
	 *
	 * @var null|string
	 */
	public $not;
";
explain="The class Critere (Criteria) has no method at all. When using a class as an array, to capture values, one of the advantage of the class is in the default values for the properties. In particular, the last property here, called $not, should be initialized with a false. "
name = "Final Methods Usage";
description = "List of all final methods being used.

final may be applied to classes and methods.

<?php
class BaseClass {
   public function test() {
       echo 'BaseClass::test() called'.PHP_EOL;
   }
   
   final public function moreTesting() {
       echo 'BaseClass::moreTesting() called'.PHP_EOL;
   }
}

class ChildClass extends BaseClass {
   public function moreTesting() {
       echo 'ChildClass::moreTesting() called'.PHP_EOL;
   }
}
// Results in Fatal error: Cannot override final method BaseClass::moreTesting()
?>

See also `Final Keyword <http://php.net/manual/en/language.oop5.final.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
phpError[] = "Cannot override final method Foo::FooBar()"name = "Not Same Name As File";
description = "The class, trait or interface bears a name that is not the same than the file that defines it. ";
clearphp = "";
exakatSince = "0.8.4";
name = "Identical Methods";
description = "When the parent class and the child class have the same method, the child might drop it. This reduces code duplication. 

Duplicate code in methods is often the results of code evolution, where a method was copied with the hierarchy, but the original wasn't removed.

This doesn't apply to `private` methods, which are reserved for one class.

<?php

class a {
    public function foo() {
        return rand(0, 100);
    }
}

class b extends a {
    public function foo() {
        return rand(0, 100);
    }
}

?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.8.2";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Drop the method from the parent class, in particular if only one child uses the method."
modifications[] = "Drop the method from the child class, in particular if there are several children class"
modifications[] = "Use an abstract method, and make sure every child has its own implementation"
modifications[] = "Modify one of the methods so they are different"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Class, Interface Or Trait With Identical Names";
description = "The following names are used at the same time for classes, interfaces or traits. For example, 

<?php
    class a     { /* some definitions */ }
    interface a { /* some definitions */ }
    trait a     { /* some definitions */ }
?>

Even if they are in different namespaces, identical names makes classes easy to confuse. This is often solved by using alias at import time : this leads to more confusion, as a class suddenly changes its name. 

Internally, PHP use the same list for all classes, interfaces and traits. As such, it is not allowed to have both a trait and a class with the same name.

In PHP 4, and PHP 5 before namespaces, it was not possible to have classes with the same name. They were simply included after a check. 

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
modifications[] = "Use distinct names for every class, trait and interface. "
modifications[] = "Keep eponymous classes, traits and interfaces in distinct files, for definition but also for usage. When this happens, rename one of them."
[example1]
project="shopware"
file="engine/Shopware/Components/Form/Interfaces/Element.php"
line="30"
code="interface Element { /**/ } // in engine/Shopware/Components/Form/Interfaces/Element.php:30

class Element implements \JsonSerializable { /**/ } 	// in engine/Shopware/Bundle/EmotionBundle/Struct/Element.php:29

class Element extends ModelEntity { /**/ } 	// in /engine/Shopware/Models/Document/Element.php:37

";
explain="Most Element classes extends ModelEntity, which is an abstract class. There is also an interface, called Element, for forms. And, last, one of the class Element extends JsonSerializable, which is a PHP native interface. Namespaces are definitely crucial to understand which Element is which. "
[example2]
project="NextCloud"
file="lib/private/Files/Storage/Storage.php"
line="33"
code="interface Storage extends \OCP\Files\Storage { /**/ }
";
explain="Interface Storage extends another Storage class. Here, the fully qualified name is used, so we can understand which storage is which at read time : a 'use' alias would make this line more confusing."
name = "Var Keyword";
description = "Var was used in PHP 4 to mark properties as public. Nowadays, new keywords are available : public, protected, private. Var is equivalent to public. 

It is recommended to avoid using var, and explicitly use the new keywords.

<?php

class foo {
    public $bar = 1;
    // Avoid var
    //var $bar = 1; 
}

?>

See also `Visibility <http://php.net/manual/en/language.oop5.visibility.php>`_.
";
clearphp = "no-php4-class-syntax";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
modifications[] = "It is recommended to avoid using var, and explicitly use the new keywords : private, protected, public";
[example1]
project="xataface"
file="SQL/Parser/wrapper.php"
line="24"
code="class SQL_Parser_wrapper {
	
	var $_data;
	var $_tableLookup;
	var $_parser;
	
	function SQL_Parser_wrapper(&$data, $dialect='MySQL'){
";
explain="With the usage of var and a first method bearing the name of the class, this is PHP 4 code that is still in use. "
name = "Disconnected Classes";
description = "One class is extending the other, but they do not use any features from one another. Basically, those two classes are using extends, but they are completely independent and may be separated. 

When using the 'extends' keyword, the newly created classes are now acting together and making one. This should be visible in calls from one class to the other, or simply by property usage : they can't live without each other.

On the other hand, two completely independent classes that are merged, although they should be kept separated.

<?php

class A {
    private $pa = 1;
    
    function fooA() {
        $this->pa = 2;
    }
}

// class B and Class A are totally independent
class B extends A {
    private $pb = 1;
    
    function fooB() {
        $this->pb = 2;
    }
}


// class C makes use of class A : it is dependent on the parent class
class C extends A {
    private $pc = 1;
    
    function fooB() {
        $this->pc = 2 + $this->fooA();
    }
}
?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_SLOW";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.8.9";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Remove the extension"
modifications[] = "Make actual usage of the classes, at least from one of them"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

[example1]
project="WordPress"
file="wp-admin/includes/misc.php"
line="74"
code="$markerdata = explode( \"\n\", implode( '', file( $filename ) ) );";
explain="This code actually loads the file, join it, then split it again. file() would be sufficient. "
name = "Redefined Methods";
description = "Redefined methods are overwritten methods. Those methods are defined in different classes that are part of the same classes hierarchy.

Protected and public redefined methods replace each other. Private methods are kept separated, and depends on the caller to be distinguished.

<?php

class foo {
    function method() {
        return 1;
    }
}

class bar extends foo {
    function method() {
        return 2;
    }
}
?>

See also `Object Inheritance <http://www.php.net/manual/en/language.oop5.inheritance.php>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Defined static:: Or self::";
description = "List of all defined static and self properties and methods.

<?php

class x {
    static public function definedStatic() {}
    private definedStatic = 1;
    
    public function method() {
        self::definedStatic();
        self::undefinedStatic();

        static::definedStatic;
        static::undefinedStatic;
    }
}

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Make Magic Concrete";
description = "Speed up execution by replacing magic calls by concrete properties. 

Magic properties are managed dynamically, with ``__get``and ``__set``. They replace property access by a methodcall, and they are much slower than the first. 

When a property name is getting used more often, it is worth creating a concrete property, and skip the method call. The threshold for 'magicMemberUsage' is 1, by default. 

<?php

class x {
    private $values = array('a' => 1,
                            'b' => 2);
                            
    function __get($name) {
        return $this->values[$name] ?? '';
    }
}

$x = new x();
// Access to 'a' is repeated in the code, at least 'magicMemberUsage' time (cf configuration below)
echo $x->a; 

?>

See also Performances/MemoizeMagicCall. 

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.8.3";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Make frequently used properties concrete; keep the highly dynamic as magic"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

[parameter1]
name="magicMemberUsage";
default=1;
type="integer";
description="Minimal number of magic member usage across the code, to trigger a concrete property.";
name = "Non Nullable Getters";
description = "A getter needs to be nullable when a property is injected. 

In particular, if the injection happens with a separate method, there is a time where the object is not consistent, and the property holds a default non-object value.

<?php

class Consistent {
    private $db = null;
    
    function __construct(Db $db) { 
        $this->db = $db;
        // Object is immediately consistent 
    }
    
    // Db might be null
    function getDb() {
        return $this-db;
    }
}

class Inconsistent {
    private $db = null;
    
    function __construct() { 
        // No initialisation
    }

    // This might be called on time, or not
    // This typehint cannot be nullable, nor use null as default 
    function setDb(DB $db) {
        return $this-db;
    }

    // Db might be null
    function getDb() {
        return $this-db;
    }
}
?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.6";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Remove the nullable option and the tests on ``null``."

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Check On __Call Usage";
description = "When using the magic methods __call() and __staticcall(), make sure the method exists before calling it. 

If the method doesn't exists, then the same method will be called again, leading to the same failure. Finally, it will crash PHP.

<?php

class safeCall {
    function __class($name, $args) {
        // unsafe call, no checks
        if (method_exists($this, $name)) {
            $this->$name(...$args);
        }
    }
}

class unsafeCall {
    function __class($name, $args) {
        // unsafe call, no checks
        $this->$name(...$args);
    }
}

?>

See also `Method overloading <http://php.net/manual/en/language.oop5.overloading.php#object.call>`_  and 
        ``Magical PHP: __call <https://www.garfieldtech.com/index.php/blog/magical-php-call>`_.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.7.2";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Add a call to method_exists() before using any method name"
modifications[] = "Relay the call to another object that doesn't handle __call() or __callStatic()"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Illegal Name For Method";
description = "PHP has reserved usage of methods starting with ``__`` for magic methods. It is recommended to avoid using this prefix, to prevent confusions.

<?php

class foo{
    // Constructor
    function __construct() {}

    // Constructor's typo
    function __constructor() {}

    // Illegal function name, even as private
    private function __bar() {}
}

?>

See also `Magic Methods <http://php.net/manual/en/language.oop5.magic.php>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.9.2";

modifications[] = "Avoid method names starting with a double underscore : ``__``";
modifications[] = "Use method visibilities to ensure that methods are only available to the current class or its children";


[example1]
project="PrestaShop"
file="admin-dev/ajaxfilemanager/inc/class.pagination.php"
line="200"
code="	/**
	 * get base url for pagination links aftr excluded those key
	 * identified on excluded query strings
	 *
	 */
	function __getBaseUrl()
	{

		if(empty($this->baseUrl))
		{

			$this->__setBaseUrl();
		}
		return $this->baseUrl;
	}
";
explain="__getBaseUrl and __setBaseUrl shouldn't be named like that. "

[example2]
project="Magento"
file="app/code/core/Mage/Core/Block/Abstract.php"
line="1139"
code="    public function __()
    {
        $args = func_get_args();
        $expr = new Mage_Core_Model_Translate_Expr(array_shift($args), $this->getModuleName());
        array_unshift($args, $expr);
        return $this->_getApp()->getTranslator()->translate($args);
    }

";
explain="public method, called '__'. Example : $this->__();"

name = "Class Without Parent";
description = "Classes should not refer to ``parent`` when it is not extending another class. 

In PHP 7.4, it is a Deprecated warning. In PHP 7.3, it was a Fatal error, when the code was finally executed.

<?php

class x {
    function foo() {
        parent::foo();
    }
}
?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.0";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Update the class and make it extends another class"
modifications[] = "Change the parent mention with a fully qualified name"
modifications[] = "Remove the call to the parent altogether"

; A PHP error that may be emitted by the target faulty code
phpError[] = " Cannot use "parent" when current class scope has no parent"
name = "Property Used In One Method Only";
description = "Properties should be used in several methods. When a property is used in only one method, this should have be of another shape. 

Properties used in one method only may be used several times, and read only. This may be a class constant. Such properties are meant to be overwritten by an extending class, and that's possible with class constants.

Properties that read and written may be converted into a variable, static to the method. This way, they are kept close to the method, and do not pollute the object's properties.

<?php

class foo {
    private $once = 1;
    const ONCE = 1;
    private $counter = 0;
    
    function bar() {
        // $this->once is never used anywhere else. 
        someFunction($this->once);
        someFunction(self::ONCE);   // Make clear that it is a 
    }

    function bar2() {
        static $localCounter = 0;
        $this->counter++;
        
        // $this->once is only used here, for distinguising calls to someFunction2
        if ($this->counter > 10) { // $this->counter is used only in bar2, but it may be used several times
            return false;
        }
        someFunction2($this->counter);

        // $localCounter keeps track for all the calls
        if ($localCounter > 10) { 
            return false;
        }
        someFunction2($localCounter);
    }
}

?>

Note : properties used only once are not returned by this analysis. They are omitted, and are available in the analysis `Used Once Property`_.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.10.3";

modifications[] = "Drop the property, and inline the value"
modifications[] = "Drop the property, and make the property a local variable"
modifications[] = "Use the property in another method"

[example1]
project="Contao"
file="calendar-bundle/src/Resources/contao/modules/ModuleEventlist.php"
line="38"
code="
class ModuleEventlist extends Events
{

	/**
	 * Current date object
	 * @var Date
	 */
	protected $Date;

// Date is used in function compile() only
";
explain="Date is protected property. It is used only in the compile() method, and it is not used by the parent class. As such, it may be turned into a local variable."
name = "Immutable Signature";
description = "Overwrites makes refactoring a method signature difficult. PHP enforces compatible signature, by checking if arguments have the same type, reference and default values.

In PHP 7.3, typehint had to be the same, or dropped. In PHP 7.4, typehint may be contravariant (arguments), or covariant (returntype). 

This analysis may be configured with ``maxOverwrite``. By default, a minimum of 8 overwritten methods is considered difficult to update.

<?php

// Changing any of the four foo() method signature will trigger a PHP warning
class a {
    function foo($a) {}
}

class ab1 extends a {
    // four foo() methods have to be refactored at the same time!
    function foo($ab1) {}
}

class ab2 extends a {
    function foo($ab2) {}
}

class ab3 extends ab1 {
    function foo($abc1) {}
}

?>

When refactoring a method, all the related methodcall may have to be updated too. Adding a type, a default value, or a new argument with default value won't affect the calls, but only the definitions. Otherwise, calls will also have to be updated.

IDE may help with signature refactoring, such as `Refactoring code <https://www.jetbrains.com/help/phpstorm/refactoring-source-code.html>`_.

See also `Covariance and contravariance (computer science) <https://en.wikipedia.org/wiki/Covariance_and_contravariance_(computer_science)>`_,
        `extends <https://www.php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.9";

; Alternative to make this code go away. 
; One by possible solution
;modifications[] = ""

; A PHP error that may be emitted by the target faulty code
phpError[] = "Declaration of a::foo($a) should be compatible with ab1::foo($a)"

[parameter1]
name="maxOverwrite";
default="8";
type="integer";
description="Minimal number of method overwrite to consider that any refactor on the method signature is now hard.";
name = "New On Functioncall Or Identifier";
description = "Object instantiation with new works with or without arguments. Both are valid in PHP. 

The analyzed code has less than 10% of one of the two forms : for consistency reasons, it is recommended to make them all the same. 

<?php

$a = new stdClass();

// Parenthesis are used when arguments are compulsory
$mysql = new MySQLI($host, $user, $pass);

// Parenthesis are omitted when no arguments are available
// That also makes the instantiation look different
$b = new stdClass;

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.9.8";name = "Method Could Be Private Method";
description = "The following methods are never used outside their class of definition. Given the analyzed code, they could be set as private. 

<?php

class foo {
    public function couldBePrivate() {}
    public function cantdBePrivate() {}
    
    function bar() {
        // couldBePrivate is used internally. 
        $this->couldBePrivate();
    }
}

class foo2 extends foo {
    function bar2() {
        // cantdBePrivate is used in a child class. 
        $this->cantdBePrivate();
    }
}

//couldBePrivate() is not used outside 
$foo = new foo();

//cantdBePrivate is used outside the class
$foo->cantdBePrivate();

?>

Note that dynamic properties (such as $x->$y) are not taken into account. ";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.12.11";
name = "$this Belongs To Classes Or Traits";
description = "$this variable represents only the current object. 

It is a pseudo-variable, and should be used within class's or trait's methods (except for static) and not outside.

PHP 7.1 is stricter and check for $this at several positions. Some are found by static analysis, some are dynamic analysis.

<?php

// as an argument
function foo($this) {
    // Using global
    global $this;
    // Using static (not a property)
    static $this;
    
    // Can't unset it
    unset($this);
    
    try {
        // inside a foreach
        foreach($a as $this) {  }
        foreach($a as $this => $b) {  }
        foreach($a as $b => $this) {  }
    } catch (Exception $this) {
        // inside a catch
    }
    
    // with Variable Variable
    $a = this;
    $$a = 42;
}

class foo {
    function bar() {
        // Using references
        $a =& $this;
        $a = 42;
        
        // Using extract(), parse_str() or similar functions
        extract([this => 42]);  // throw new Error(Cannot re-assign $this)
        var_dump($this);
    }

    static function __call($name, $args) {
        // Using __call
        var_dump($this); // prints object(C)#1 (0) {}, php-7.0 printed NULL
        $this->test();   // prints ops
    }

}
?>

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
phpError[] = "Using $this when not in object context"

modifications[] = "Do not use `$this` as a variable name, except for the current object, in a class, trait or closure."

[example1]
project="OpenEMR"
file="ccr/display.php"
line="24"
code="<?php 
require_once(dirname(__FILE__) . \"/../interface/globals.php\");

$type = $_GET['type'];
$document_id = $_GET['doc_id'];
$d = new Document($document_id);
$url =  $d->get_url();
$storagemethod = $d->get_storagemethod();
$couch_docid = $d->get_couch_docid();
$couch_revid = $d->get_couch_revid();

if ($couch_docid && $couch_revid) {
    $couch = new CouchDB();
    $data = array($GLOBALS['couchdb_dbase'],$couch_docid);
    $resp = $couch->retrieve_doc($data);
    $xml = base64_decode($resp->data);
    if ($content=='' && $GLOBALS['couchdb_log']==1) {
        $log_content = date('Y-m-d H:i:s').\" ==> Retrieving document\r\n\";
        $log_content = date('Y-m-d H:i:s').\" ==> URL: \".$url.\"\r\n\";
        $log_content .= date('Y-m-d H:i:s').\" ==> CouchDB Document Id: \".$couch_docid.\"\r\n\";
        $log_content .= date('Y-m-d H:i:s').\" ==> CouchDB Revision Id: \".$couch_revid.\"\r\n\";
        $log_content .= date('Y-m-d H:i:s').\" ==> Failed to fetch document content from CouchDB.\r\n\";
        //$log_content .= date('Y-m-d H:i:s').\" ==> Will try to download file from HardDisk if exists.\r\n\r\n\";
        $this->document_upload_download_log($d->get_foreign_id(), $log_content);
        die(xlt(\"File retrieval from CouchDB failed\"));
    }
";
explain="$this is used to call the document_upload_download_log() method, although this piece of code is not part of a class, nor is included in a class."

name = "Unused Classes";
description = "The following classes are never explicitly used in the code.

Note that this may be valid in case the current code is a library or framework, since it defines classes that are used by other (unprovided) codes.
Also, this analyzer may find classes that are, in fact, dynamically loaded. 

<?php

class unusedClasss {}
class usedClass {}

$y = new usedClass();

?>

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Insufficient Property Typehint";
description = "The typehint used for a class property doesn't cover all it usage.

The typehint is insufficient when a undefined method is called, or if members are access while the typehint is an interface.

<?php

class A {
    function a1() {}
}

// PHP 7.4 and more recent
class B {
    private A $a = null;
    
    function b2() {
        // this method is available in A
        $this->a->a1();
        // this method is NOT available in A
        $this->a->a2();
    }
}

// Supported by all PHP versions
class C {
    private $a = null;

    function __construct(A $a) {
        $this->a = $a;
    }
    
    function b2() {
        // this method is available in A
        $this->a->a1();
        // this method is NOT available in A
        $this->a->a2();
    }
}

?>

This analysis relies on typehinted properties, as introduced in PHP 7.4. It also relies on typehinted assignations at construct time : the typehint of the assigned argument will be used as the property typehint. Getters and setters are not considered here. 

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.0.2";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Change the typehint to match the actual usage of the object in the class. "

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Dynamic Methodcall";
description = "Dynamic calls to class methods.

<?php

class x {
    static public function foo() {}
           public function bar() {}
}

$staticmethod = 'foo';
// dynamic static method call to x::foo()
x::$staticmethod();

$method = 'bar';
// dynamic method call to bar()
$object = new x();
$object->$method();

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Strange Names For Methods";
description = "Those methods should have another name.

Ever wondered why the ``__constructor`` is never called? Or the ``__consturct`` ? 

Those errors most often originate from typos, or quick fixes that where not fully tested. Other times, they were badly chosen, or ran into PHP's own reserved keywords. 

<?php

class foo {
    // The real constructor
    function __construct() {}

    // The fake constructor
    function __constructor() {}
    
    // The 'typo'ed' constructor
    function __consturct() {}
    
    // This doesn't clone
    function clone() {}
}

?>

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.10.1";
modifications[] = "Use the proper name"
modifications[] = "Remove the method, when it is not used and tests still pass."name = "One Object Operator Per Line";
description = "Avoid using more than one operator -> per line, to prevent information overload.

<?php

// Spread operators on multiple lines
$object->firstMethodCall()
       ->property
       ->secondMethodCall();

// This is not readable
$object->firstMethodCall()->property->secondMethodCall();

// This is OK, as objects are different.
$a2->b2($c2->d2, $e2->f2); 

?>
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Normal Methods";
description = "Spot normal Methods.

<?php

class foo{
    // Normal method
    private function bar() {}

    // Static method
    private static function barbar() {}
}

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "No Magic With Array";
description = "Magic method ``__set()`` doesn't work for array syntax. 

When overloading properties, they can only be used for scalar values, excluding arrays. Under the hood, PHP uses ``__get()`` to reach for the name of the property, and doesn't recognize the following index as an array. It yields an error : "Indirect modification of overloaded property".

<?php

class c {
    private $a;
    private $o = array();

    function __get($name) {
        return $this->o[$name];
    }
    
    function foo() {
        // property b doesn't exists
        $this->b['a'] = 3;
        
        print_r($this);
    }

    // This method has no impact on the issue
    function __set($name, $value) {
        $this->o[$name] = $value;
    }
}

$c = new c();
$c->foo();

?>

It is possible to use the array syntax with a magic property : by making the ``__get`` returns an array, the syntax will actually extract the expected item in the array.

This is not reported by linting.

In this analysis, only properties that are found to be magic are reported. For example, using the b property outside the class scope is not reported, as it would yield too many false-positives.

See also `Overload <http://php.net/manual/en/language.oop5.overloading.php#object.get>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.12.4";

modifications[] = "Use a distinct method to append a new value to that property";
modifications[] = "Assign the whole array, and not just one of its elements";

phpError[] = "Indirect modification of overloaded property c::$b has no effect";

name = "Access Protected Structures";
description = "It is not allowed to access protected properties or methods from outside the class or its relatives.

<?php

class foo {
    protected $bar = 1;
}

$foo = new Foo();
$foo->bar = 2;

?>

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Integer As Property";
description = "It is backward incompatible to use integers are property names. This feature was introduced in PHP 7.2.

If the code must be compatible with previous versions, avoid casting arrays to object.

<?php

// array to object
$arr = [0 => 1];
$obj = (object) $arr;
var_dump(
    $obj,
    $obj->{'0'}, // PHP 7.2+ accessible
    $obj->{0} // PHP 7.2+ accessible

    $obj->{'b'}, // always been accessible
);
?>

See also `PHP RFC: Convert numeric keys in object/array casts <https://wiki.php.net/rfc/convert_numeric_keys_in_object_array_casts>`_.
";
clearphp = "";
phpversion = "7.2+";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "1.0.4";name = "Cant Inherit Abstract Method";
description = "Inheriting abstract methods was made available in PHP 7.2. In previous versions, it emitted a fatal error.

<?php

abstract class A           { abstract function bar(stdClass $x);  }
abstract class B extends A { abstract function bar($x): stdClass; }

//   Fatal error: Can't inherit abstract function A::bar()
?>

See also `PHP RFC: Allow abstract function override <https://wiki.php.net/rfc/allow-abstract-function-override>`_.
";
clearphp = "";
phpversion = "7.2+";
severity = "S_CRITICAL";
timetofix = "T_QUICK";
exakatSince = "0.11.8";

modifications[] = "Avoid inheriting abstract methods for compatibility beyond 7.2 (and older)"

phpError[] = "Can't inherit abstract function A::bar()"name = "Unused Private Methods";
description = "Private methods that are not used are dead code. 

Private methods are reserved for the defining class. Thus, they must be used with the current class, with ``$this`` or ``self::``.

<?php

class Foo {
    // Those methods are used
    private function method() {}
    private static function staticMethod() {}

    // Those methods are not used
    private function unusedMethod() {}
    private static function staticUnusedMethod() {}
    
    public function bar() {
        self::staticMethod();
        $this->method();
    }
}

?>

This analysis skips classes that makes self dynamic calls, such as ``$this->$method()``.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Remove the private method, as it is unused"
modifications[] = "Add a call to this private method"
modifications[] = "Change method visibility to make it available to other classes"name = "Usage Of class_alias()";
description = "``class_alias`` creates dynamically an alias for classes. 

<?php

class foo { }

class_alias('foo', 'bar');

$a = new foo;
$b = new bar;

// the objects are the same
var_dump($a == $b, $a === $b);
var_dump($a instanceof $b);

// the classes are the same
var_dump($a instanceof foo);
var_dump($a instanceof bar);

var_dump($b instanceof foo);
var_dump($b instanceof bar);

?>

See also `class_alias <http://php.net/class_alias>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Multiple Classes In One File";
description = "It is regarded as a bad practice to store several classes in the same file. This is usually done to make life of __autoload() easier. 

It is often unexpected to find class ``foo`` in the ``bar.php`` file. This is also the case for interfaces and traits.

<?php

// three classes in the same file
class foo {}
class bar {}
class foobar{}

?>

One good reason to have multiple classes in one file is to reduce include time by providing everything into one nice include. 

See also `Is it a bad practice to have multiple classes in the same file? <https://stackoverflow.com/questions/360643/is-it-a-bad-practice-to-have-multiple-classes-in-the-same-file>`_.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Split the file into smaller files, one for each class"name = "Dynamically Called Classes";
description = "Indicates if a class is called dynamically.

<?php

// This class is called dynamically
class X {
    const CONSTANTE = 1;
}

$classe = 'X';

$x = new $classe();

echo $x::CONSTANTE;

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Classes Names";
description = "List of all classes, as defined in the application.

<?php

// foo is in the list
class foo {}

// Anonymous classes are not in the list
$o = class { function foo(){} }

?>
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Wrong Access Style to Property";
description = "Use the right syntax when reaching for a property. Static properties use the ``::`` operator, and non-static properties use ``->``. 

Mistaking one of the other raise two different reactions from PHP : ``Access to undeclared static property`` is a fatal error, while ``PHP Notice:  Accessing static property aa::$a as non static`` is a notice.

<?php

class a { 
    static public $a = 1;
    
    function foo() {
        echo self::$a; // right
        echo $this->a; // WRONG
    }
}

class b { 
    public $b = 1;

    function foo() {
        echo $this->$b;  // right
        echo b::$b;      // WRONG
    }
}

?>

This analysis reports both static properties with a `->` access, and non-static properties with a `::` access.

See also `Static Keyword <http://php.net/manual/en/language.oop5.static.php>`_.
";
clearphp = "";
severity = "S_CRITICAL";
timetofix = "T_QUICK";
exakatSince = "1.4.9";

phpError[] = "Accessing static property aa::$a as non static"
phpError[] = "Access to undeclared static property"

modifications[] = "Match the property call with the definition"
modifications[] = "Make the property static"

[example1]
project="HuMo-Gen"
file="wp-admin/includes/misc.php"
line="74"
code="    protected function wavToMp3($data)
    {
        if (!file_exists(self::$lame_binary_path) || !is_executable(self::$lame_binary_path)) {
            throw new Exception('Lame binary "' . $this->lame_binary_path . '" does not exist or is not executable');
        }
";
explain="lame_binary_path is a static property, but it is accessed as a normal property in the exception call, while it is checked with a valid syntax."
name = "Could Be Protected Property";
description = "Those properties are declared public, but are never used publicly. They may be made protected. 

<?php

class foo {
    // Public, and used publicly
    public $publicProperty;
    // Public, but never used outside the class or its children
    public $protectedProperty;
    
    function bar() {
        $this->protectedProperty = 1;
    }
}

$foo = new Foo();
$foo->publicProperty = 3;

?>

This property may even be made private.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.9.7";name = "Use Class Operator";
description = "Use ``::class`` to hardcode class names, instead of strings.

This is actually faster than strings, which are parsed at execution time, while ``::class`` is compiled, making it faster to execute. 

It is also capable to handle aliases, making the code easier to maintain. 

<?php

namespace foo\bar;

use foo\bar\X as B;

class X {}

$className = '\foo\bar\X';

$className = foo\bar\X::class;

$className = B\X;

$object = new $className;

?>

This is not possible when building the name of the class with concatenation.

This is a micro-optimization. This also helps static analysis, as it gives more information at compile time to analyse.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.7";

modifications[] = "Replace strings by the ::class operator whenever possible"name = "Useless Constructor";
description = "Class constructor that have empty bodies are useless. They may be removed.

<?php

class X {
    function __construct() {
        // Do nothing
    }
}

class Y extends X {
    // Useful constructor, as it prevents usage of the parent
    function __construct() {
        // Do nothing
    }
}

?>
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Forgotten Visibility";
description = "Some classes elements (property, method, constant) are missing their explicit visibility.

By default, it is public. It should at least be mentioned as public, or may be reviewed as protected or private. 

Class constants support also visibility since PHP 7.1.

final, static and abstract are not counted as visibility. Only public, private and protected. The PHP 4 var keyword is counted as undefined.

Traits, classes and interfaces are checked. 

<?php

// Explicit visibility
class X {
    protected sconst NO_VISIBILITY_CONST = 1; // For PHP 7.2 and later

    private $noVisibilityProperty = 2; 
    
    public function Method() {}
}

// Missing visibility
class X {
    const NO_VISIBILITY_CONST = 1; // For PHP 7.2 and later

    var $noVisibilityProperty = 2; // Only with var
    
    function NoVisibilityForMethod() {}
}

?>

See also `Visibility <http://php.net/manual/en/language.oop5.visibility.php>`_ and `Understanding The Concept Of Visibility In Object Oriented PHP <https://torquemag.io/2016/05/understanding-concept-visibility-object-oriented-php/>`_.
";
clearphp = "always-have-visibility";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Always add explicit visibility to methods and constants in a class";
modifications[] = "Always add explicit visibility to properties in a class, after PHP 7.4";


[example1]
project="FuelCMS"
file="/fuel/modules/fuel/controllers/Module.php"
line="713"
code="class Module extends Fuel_base_controller {
	
	// --------------------------------------------------------------------
	
	/**
	 * Displays the list (table) view
	 *
	 * @access	public
	 * @return	void
	 */	
	function index()
	{
		$this->items();
	}";
explain="Missing visibility for the index() method,and all the methods in the Module class."


[example2]
project="LiveZilla"
file="livezilla/_lib/objects.global.users.inc.php"
line="2516"
code="class Visitor extends BaseUser 
{
// Lots of code

    static function CreateSPAMFilter($_userId,$_base64=true)
    {
        if(!empty(Server::$Configuration->File["gl_sfa"]))
        {
";
explain="Static method that could be public."

name = "Use This";
description = "Those methods should be using $this, or a static method or property.

A method that doesn't use any local data may be considered for a move : may be this doesn't belong here. 

<?php

class dog {
    private $name = 'Rex';
    
    // This method is related to the current object and class
    public function attaboy() {
        return Fetch, $this->name, Fetch\n;
    }

    // Not using any class related data : Does this belong here?
    public function addition($a, $b) {
        return $a + $b;
    }
}
?>
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Undefined static:: Or self::";
description = "self and static refer to the current class, or one of its parent. The property or the method may be undefined.

<?php

class x {
    static public function definedStatic() {}
    private definedStatic = 1;
    
    public function method() {
        self::definedStatic();
        self::undefinedStatic();

        static::definedStatic;
        static::undefinedStatic;
    }
}

?>

See also `Late Static Bindings <http://php.net/manual/en/language.oop5.late-static-bindings.php>`_.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Define the missing method or property";
modifications[] = "Remove usage of that undefined method or property";
modifications[] = "Fix name to call an actual local structure";

phpErrors[] = "Access to undeclared static property: x::$y"
phpErrors[] = " Call to undefined method x::y()"

[example1]
project="xataface"
file="actions/forgot_password.php"
line="194"
code="if ( !$user ) throw new Exception(df_translate('actions.forgot_password.null_user',\"Cannot send email for null user\"), self::$EX_NO_USERS_FOUND_WITH_EMAIL);";
explain="This is probably a typo, since the property called 	public static $EX_NO_USERS_WITH_EMAIL = 501; is defined in that class. "

[example2]
project="SugarCrm"
file="code/SugarCE-Full-6.5.26/include/SugarDateTime.php"
line="574"
code="
if ( isset($regexp['positions']['F']) && !empty($dateparts[$regexp['positions']['F']])) {
               // FIXME: locale?
    $mon = $dateparts[$regexp['positions']['F']];
    if(isset(self::$sugar_strptime_long_mon[$mon])) {
        $data[\"tm_mon\"] = self::$sugar_strptime_long_mon[$mon];
    } else {
        return false;
    }
}
";
explain="self::$sugar_strptime_long_mon refers to the current class, which extends DateTime. No static property was defined at either of them, with the name '$sugar_strptime_long_mon'. This has been a Fatal error at execution time since PHP 5.3, at least. "
name = "Avoid option arrays in constructors";
description = "Avoid option arrays in constructors. Use one parameter per injected element.

<?php

class Foo {
    // Distinct arguments, all typehinted if possible
    function __constructor(A $a, B $b, C $c, D $d) {
        $this->a = $a;
        $this->b = $b;
        $this->c = $c;
        $this->d = $d;
    }
}

class Bar {
    // One argument, spread over several properties
    function __constructor(array $options) {
        $this->a = $options['a'];
        $this->b = $options['b'];
        $this->c = $options['c'];
        $this->d = $options['d'];
    }
}

?>

See also `Avoid option arrays in constructors <http://bestpractices.thecodingmachine.com/php/design_beautiful_classes_and_methods.html#avoid-option-arrays-in-constructors>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.7.9";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Spread the options in the argument list, one argument each"
modifications[] = "Use a configuration class, that hold all the elements with clear names, instead of an array"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Using $this Outside A Class";
description = "``$this`` is a special variable, that should only be used in a class context. 

Until PHP 7.1, ``$this`` may be used as an argument in a function or a method, a global, a static : while this is legit, it sounds confusing enough to avoid it.

<?php

function foo($this) {
    echo $this;
}

// A closure can be bound to an object at later time. It is valid usage.
$closure = function ($x) {
    echo $this->foo($x);
}

?>

Starting with PHP 7.1, the PHP engine check thoroughly that ``$this`` is used in an appropriate manner, and raise fatal errors in case it isn't. 

Yet, it is possible to find ``$this`` outside a class : if the file is included inside a class, then ``$this`` will be recognized and validated. If the file is included outside a class context, it will yield a fatal error : ``Using $this when not in object context``.

See also `Closure::bind <http://php.net/manual/en/closure.bind.php>`_ and 
         `The Basics <http://php.net/manual/en/language.oop5.basic.php>`_.

";
clearphp = "";
phpversion = "7.0-";
severity = "S_CRITICAL";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
name = "Null On New";
description = "Until PHP 7, some classes instantiation could yield null, instead of throwing an exception. 

After issuing a 'new' with those classes, it was important to check if the returned object were null or not. No exception were thrown.

<?php

// Example extracted from the wiki below
$mf = new MessageFormatter('en_US', '{this was made intentionally incorrect}');
if ($mf === null) {
    echo 'Surprise!';
}

?>

This inconsistency has been cleaned in PHP 7 : see See `Internal Constructor Behavior <https://wiki.php.net/rfc/internal_constructor_behaviour>`_

See also `PHP RFC: Constructor behaviour of internal classes <https://wiki.php.net/rfc/internal_constructor_behaviour>`_.
";
clearphp = "";
phpversion = "7.0-";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Remove the check on null after a new instantiation"name = "Static Methods Called From Object";
description = "Static methods may be called without instantiating an object. As such, they never interact with the special variable '$this', as they do not depend on object existence. 

Besides this, static methods are normal methods that may be called directly from object context, to perform some utility task. 

To maintain code readability, it is recommended to call static method in a static way, rather than within object context.

<?php
    class x {
        static function y( ) {}
    }
    
    $z = new x( );
    
    $z->y( ); // Readability : no one knows it is a static call
    x::y( );  // Readability : here we know
?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Constructors";
description = "Mark methods as constructors. 

<?php

class x {
    // Normal constructor
    function __construct() {}
}

class y {
    // Old style constructor, obsolete since PHP 7.1
    function y() {}
}

class z {
    // Normal constructor
    function __construct() {}

    // Old style constructor, but with lower priority
    function z() {}
}

?>

See also `Constructors and Destructors <http://php.net/manual/en/language.oop5.decon.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Property Could Be Private Property";
description = "The following properties are never used outside their class of definition  Given the analyzed code, they could be set as private. 

<?php

class foo {
    public $couldBePrivate = 1;
    public $cantdBePrivate = 1;
    
    function bar() {
        // couldBePrivate is used internally. 
        $this->couldBePrivate = 3;
    }
}

class foo2 extends foo {
    function bar2() {
        // cantdBePrivate is used in a child class. 
        $this->cantdBePrivate = 3;
    }
}

//$couldBePrivate is not used outside 
$foo = new foo();

//$cantdBePrivate is used outside the class
$foo->cantdBePrivate = 2;

?>

Note that dynamic properties (such as $x->$y) are not taken into account. ";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";

modifications[] = "Remove the unused property"
modifications[] = "Use the private property"
modifications[] = "Change the visibility to allow access the property from other part of the code"name = "Abstract Methods Usage";
description = "List of all abstract methods being used.

<?php

// abstract class
abstract class foo {
    // abstract method
    function foobar(); 
}

class bar extends foo {
    // extended abstract method
    function foobar() {
        // doSomething()
    }

    // extra method
    function barbar() {
        // doSomething()
    }
}
?>

See also `Classes abstraction <http://php.net/abstract>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Too Many Injections";
description = "When a class is constructed with more than four dependencies, it should be split into smaller classes.

<?php

// This class relies on 5 other instances. 
// It is probably doing too much.
class Foo {
    public function __construct(
            A $a, 
            B $b, 
            C $c,
            D $d
            E $e ) {
        $this->a = $a;
        $this->b = $b;
        $this->d = $d;
        $this->d = $d;
        $this->e = $e;
    }
}

?>

See also `Dependency Injection Smells <http://seregazhuk.github.io/2017/05/04/di-smells/>`_.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.11.6";
modifications[] = "Split the class into smaller classes. Try to do less in that class.";
[parameter1]
name="injectionsCount";
default="5";
type="integer";
description="Threshold for too many injected parameters for one class.";
[example1]
project="NextCloud"
file="lib/private/Share20/Manager.php"
line="130"
code="	/**
	 * Manager constructor.
	 *
	 * @param ILogger $logger
	 * @param IConfig $config
	 * @param ISecureRandom $secureRandom
	 * @param IHasher $hasher
	 * @param IMountManager $mountManager
	 * @param IGroupManager $groupManager
	 * @param IL10N $l
	 * @param IFactory $l10nFactory
	 * @param IProviderFactory $factory
	 * @param IUserManager $userManager
	 * @param IRootFolder $rootFolder
	 * @param EventDispatcher $eventDispatcher
	 * @param IMailer $mailer
	 * @param IURLGenerator $urlGenerator
	 * @param \OC_Defaults $defaults
	 */
	public function __construct(
			ILogger $logger,
			IConfig $config,
			ISecureRandom $secureRandom,
			IHasher $hasher,
			IMountManager $mountManager,
			IGroupManager $groupManager,
			IL10N $l,
			IFactory $l10nFactory,
			IProviderFactory $factory,
			IUserManager $userManager,
			IRootFolder $rootFolder,
			EventDispatcher $eventDispatcher,
			IMailer $mailer,
			IURLGenerator $urlGenerator,
			\OC_Defaults $defaults
	) {
		$this->logger = $logger;
		$this->config = $config;
		$this->secureRandom = $secureRandom;
		$this->hasher = $hasher;
		$this->mountManager = $mountManager;
		$this->groupManager = $groupManager;
		$this->l = $l;
		$this->l10nFactory = $l10nFactory;
		$this->factory = $factory;
		$this->userManager = $userManager;
		$this->rootFolder = $rootFolder;
		$this->eventDispatcher = $eventDispatcher;
		$this->sharingDisabledForUsersCache = new CappedMemoryCache();
		$this->legacyHooks = new LegacyHooks($this->eventDispatcher);
		$this->mailer = $mailer;
		$this->urlGenerator = $urlGenerator;
		$this->defaults = $defaults;
	}
";
explain="Well documented Manager class. Quite a lot of injections though, it must take a long time to prepare it."
[example2]
project="Thelia"
file="core/lib/Thelia/Core/Event/Delivery/DeliveryPostageEvent.php"
line="58"
code="//class DeliveryPostageEvent extends ActionEvent
    public function __construct(
        DeliveryModuleInterface $module,
        Cart $cart,
        Address $address = null,
        Country $country = null,
        State $state = null
    ) {
        $this->module = $module;
        $this->cart = $cart;
        $this->address = $address;
        $this->country = $country;
        $this->state = $state;
    }

";
explain="Classic address class, with every details. May be even shorter than expected."
name = "Throw In Destruct";
description = "According to the manual, ``Attempting to throw an exception from a destructor (called in the time of script termination) causes a fatal error.``

The destructor may be called during the lifespan of the script, but it is not certain. If the exception is thrown later, the script may end up with a fatal error. 

Thus, it is recommended to avoid throwing exceptions within the ``__destruct`` method of a class.

<?php

// No exception thrown
class Bar { 
    function __construct() {
        throw new Exception('__construct');
    }

    function __destruct() {
        $this->cleanObject();
    }
}

// Potential crash
class Foo { 
    function __destruct() {
        throw new Exception('__destruct');
    }
}

?>

See also `Constructors and Destructors <http://php.net/manual/en/language.oop5.decon.php>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Remove any exception thrown from a destructor"name = "Too Many Dereferencing";
description = "Linking too many properties and methods, one to the other.

This analysis counts both static calls and normal call; methods, properties and constants. It also takes into account arrays along the way.

The default limit of chaining methods and properties is set to 7 by default. 

<?php

// 9 chained calls.
$main->getA()->getB()->getC()->getD()->getE()->getF()->getG()->getH()->getI()->property;

?>

Too many chained methods is harder to read. 

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.7";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

[parameter1]
name="tooManyDereferencing";
default="7";
type="integer";
description="Maximum number of dereferencing.";
name = "No Direct Call To Magic Method";
description = "PHP features magic methods, which are methods related to operators.

Magic methods, such as __get(), related to =, or __clone(), related to ``clone``, are supposed to be used in an object environment, and not with direct call. 

It is recommended to use the magic method with its intended usage, and not to call it directly. For example, typecast to ``string`` instead of calling the __toString() method.

<?php
// Write
  print $x->a;
// instead of 
  print $x->__get('a'); 

class Foo {
    private $b = "secret";

    public function __toString() {
        return strtoupper($this->b);
    }
}

$bar = new Foo();
echo (string) $bar;

?>

Accessing those methods in a static way is also discouraged.

See also `Magic Methods <http://php.net/manual/en/language.oop5.magic.php>`_ and 
         `Magical PHP: __call <https://www.garfieldtech.com/blog/magical-php-call>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Order Of Declaration";
description = "The order used to declare members and methods has a great impact on readability and maintenance. However, practices varies greatly. As usual, being consistent is the most important and useful.

The suggested order is the following : traits, constants, properties, methods. 
Optional characteristics, like final, static... are not specified. Special methods names are not specified. 

<?php

class x {
    use traits;
    
    const CONSTANTS = 1;
    const CONSTANTS2 = 1;
    const CONSTANTS3 = 1;
    
    private $property = 2;
    private $property2 = 2;
    private $property3 = 2;
    
    public function foo() {}
    public function foo2() {}
    public function foo3() {}
    public function foo4() {}
}

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.11.7";name = "Used Private Methods";
description = "List of all private methods that are used.

<?php

class Foo {
    // Those methods are used
    private function method() {}
    private static function staticMethod() {}

    // Those methods are not used
    private function unusedMethod() {}
    private static function staticUnusedMethod() {}
    
    public function bar() {
        self::staticMethod();
        $this->method();
    }
}

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Uninited Property";
description = "Uninited properties are not fully bootstrapped at the end of the constructor. 

Properties may be inited at definition time, along with their visibility and type. Some types are not inited at definition time, as any object, so they should be inited during constructor. At the end of the former, all properties shall have a legit value, and be ready for usage.

<?php

class x {
    private $foo = null;
    private $uninited;
    
    function __construct($arg) {
        $this->foo = $args;
        
        // $this->uninited is not inited, nor at definition, nor in constructor
        // it will hold null at the beginning of the next method call
    }
}

?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.0.9";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Remove the property, and move it to another class"
modifications[] = "Add an initialisation for this property"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

; Optional parameters
;[parameter1]
;name="parametersCount";
;default="8";
;type="integer";
;description="Minimal number of parameters to report.";
name = "Method Signature Must Be Compatible";
description = "Make sure methods signature are compatible.

PHP generates the infamous Fatal error at execution : ``Declaration of FooParent::Bar() must be compatible with FooChildren::Bar()``

<?php

class x {
    function xa() {}
}

class xxx extends xx {
    function xa($a) {}
}

?>

Currently, the analysis doesn't check for ellipsis nor references.

";
clearphp = "";
severity = "S_CRITICAL";
timetofix = "T_QUICK";
exakatSince = "1.2.9";
phpError[] = "Declaration of FooParent::Bar() must be compatible with FooChildren::Bar()"
modifications[] = "Fix the child class method() signature."
modifications[] = "Fix the parent class method() signature, after checking that it won't affect the other children."name = "Cyclic References";
description = "Avoid cyclic references. 

Cyclic references happen when an object points to another object, which reciprocate. This is particularly possible with classes, when the child class has to keep a reference to the parent class. 

<?php

class a {
    private $p = null;
    
    function foo() {
        $this->p = new b();
        // the current class is stored in the child class
        $this->p->m($this);
    }
}

class b {
    private $pb = null;
    
    function n($a) {
        // the current class keeps a link to its parent
        $this->pb = $a;
    }
}
?>

Cyclic references, or circular references, are memory intensive : only the garbage collector can understand when they may be flushed from memory, which is a costly operation. On the other hand, in an acyclic reference code, the reference counter will know immediately know that an object is free or not. 

See also `About circular references in PHP <https://johann.pardanaud.com/blog/about-circular-references-in-php>`_ and 
         `A Journey to find a memory leak <https://jolicode.com/blog/a-journey-to-find-a-memory-leak/>`_.";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.1.3";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Use a different object when calling the child objects. "
modifications[] = "Refactor your code to avoid the cyclic reference."

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

; Optional parameters
;[parameter1]
;name="parametersCount";
;default="8";
;type="integer";
;description="Minimal number of parameters to report.";
name = "Defined Parent MP";
description = "Check static calls with 'parent'. 

<?php

class foo {
    protected function parentDefined() {}
    protected function unusedParentMethod() {}

    // visibility is checked too
    protected function unusuableParentMethod() {}
}

class bar extends foo {
    
    private function someMethod() {
        // reported
        parent::parentDefined();

        // not reported, as method is unreachable in parent
        parent::unusuableParentMethod();

        // not reported, as method is undefined in parent
        parent::parentUndefined();
        
    }

    protected function parentDefined2() {}
}

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Is Upper Family";
description = "Does the static call is made within the current hierarchy of class, or, is it made in the class, in the children or outside. 

This applies to static methodcalls, property accesses and class constants.

<?php

class AAA            { function inAAA() {} }   // upper family : grand-parent
class AA extends AAA { function inAA()  {} }   // upper family : parent
class A  extends AA  { function inA()  {} }    // current family
class B  extends A   { function inB()  {} }    // lower family
class C              { function inC()  {} }    // outside family

?>
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Old Style Constructor";
description = "PHP classes used to have the method bearing the same name as the class acts as the constructor. That was PHP 4, and early PHP 5. 

The manual issues a warning about this syntax : ``Old style constructors are DEPRECATED in PHP 7.0, and will be removed in a future version. You should always use __construct() in new code.``

<?php

namespace {
    // Global namespace is important
    class foo {
        function foo() {
            // This acts as the old-style constructor, and is reported by PHP
        }
    }

    class bar {
        function __construct() { }
        function bar() {
            // This doesn't act as constructor, as bar has a __construct() method
        }
    }
}

namespace Foo\Bar{
    class foo {
        function foo() {
            // This doesn't act as constructor, as bar is not in the global namespace
        }
    }
}

?>

This is no more the case in PHP 5, which relies on ``__construct()`` to do so. Having this old style constructor may bring in confusion, unless you are also supporting old time PHP 4.

Note that classes with methods bearing the class name, but inside a namespace are not following this convention, as this is not breaking backward compatibility. Those are excluded from the analyze.

See also `Constructors and Destructors <http://php.net/manual/en/language.oop5.decon.php>`_.
";
clearphp = "no-php4-class-syntax";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

phpError[] = "Old style constructors are DEPRECATED in PHP 7.0, and will be removed in a future version. You should always use ``__construct()`` in new code."
phpError[] = "Methods with the same name as their class will not be constructors in a future version of PHP; %s has a deprecated constructor"

modifications[] = "Remove old style constructor and make it ``__construct()``"
modifications[] = "Remove old libraries and use a modern component"
name = "Instantiating Abstract Class";
description = "PHP cannot instantiate an abstract class. 

The classes are actually abstract classes, and should be derived into a concrete class to be instantiated.

<?php

abstract class Foo {
    protected $a;
}

class Bar extends Foo {
    protected $b;
}

// instantiating a concrete class.
new Bar();

// instantiating an abstract class.
// In real life, this is not possible also because the definition and the instantiation are in the same file
new Foo();

?>

See also `Class Abstraction <http://php.net/abstract>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Is A PHP Magic Property";
description = "Mark properties usage when they are actually a magic call. 

<?php

class magicProperty {
    public $b;
    
    function __get($name) {
        // do something with the value
    }

    function foo() {
        $this->a;
        $this->b;
    }
}

?>

See also `Magic Methods <http://php.net/manual/en/language.oop5.magic.php>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.12.17";name = "Implement Is For Interface";
description = "With class heritage, implements should be used for interfaces, and extends with classes.

PHP defers the implements check until execution : the code in example does lint, but won,t run.

<?php

class x {
    function foo() {}
}

interface y {
    function foo();
}

// Use implements with an interface
class z implements y {}

// Implements is for an interface, not a class
class z implements x {}

?>
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

phpErrors[] = "b cannot implement a - it is not an interface"

modifications[] = "Create an interface from the class, and use it with the implements keyword"name = "Anonymous Classes";
description = "Anonymous classes.

<?php

// Anonymous class, available since PHP 7.0
$object = new class { function __construct() { echo __METHOD__; } };

?>

";
clearphp = "";
phpversion = "7.0+";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Avoid Optional Properties";
description = "Avoid optional properties, to prevent littering the code with existence checks. 

When a property has to be checked once for existence, it is safer to check it each time. This leads to a decrease in readability and a lot of checks added to the code.

Either make sure the property is set with an actual object rather than with null, or use a null object. A null object offers the same interface than the expected object, but does nothing. It allows calling its methods, without running into a Fatal error, nor testing it. 

<?php

// Example is courtesy 'The Coding Machine' : it has been adapted from its original form. See link below.

class MyMailer {
    private $logger;

    public function __construct(LoggerInterface $logger = null) {
        $this->logger = $logger;
    }

    private function sendMail(Mail $mail) {
        // Since $this->logger may be null, it must be tested anytime it is used.
        if ($this->logger) {
            $this->logger->info('Mail successfully sent.');
        }
    }
}

?>

See also `Avoid optional services as much as possible <http://bestpractices.thecodingmachine.com/php/design_beautiful_classes_and_methods.html#avoid-optional-services-as-much-as-possible>`_,
         `The Null Object Pattern – Polymorphism in Domain Models <https://www.sitepoint.com/the-null-object-pattern-polymorphism-in-domain-models/>`_, and 
         `Practical PHP Refactoring: Introduce Null Object <https://dzone.com/articles/practical-php-refactoring-26>`_.";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.12.0";

modifications[] = "Use a null object to fill any missing value"
modifications[] = "Make sure the property is set at constructor time"

[example1]
project="ChurchCRM"
file="src/ChurchCRM/BackupManager.php"
line="401"
code="// BackupType is initialized with null
  class JobBase
  {
      /**
        *
        * @var BackupType
        */
      protected $BackupType;

// In the child class BackupJob, BackupType may be of any type      
  class BackupJob extends JobBase
  {
      /**
       *
       * @param String $BaseName
       * @param BackupType $BackupType
       * @param Boolean $IncludeExtraneousFiles
       */
      public function __construct($BaseName, $BackupType, $IncludeExtraneousFiles, $EncryptBackup, $BackupPassword)
      {
          $this->BackupType = $BackupType;


// Later, Backtype is not checked with all values : 
          try {
              $this->DecryptBackup();
              switch ($this->BackupType) {
              case BackupType::SQL:
                $this->RestoreSQLBackup($this->RestoreFile);
                break;
              case BackupType::GZSQL:
                $this->RestoreGZSQL();
                break;
              case BackupType::FullBackup:
                $this->RestoreFullBackup();
                break;
// Note  : no default case here
            }

";
explain="Backuptype is initialized with null, and yet, it isn't checked for any invalid valid values, in particular in switch() structures."

[example2]
project="Dolibarr"
file="htdocs/product/stock/class/productlot.class.php"
line="149"
code="class Productlot extends CommonObject
{
// more code
	/**
     * @var int ID
     */
	public $fk_product;

// Checked usage of fk_product
// line 341
		$sql .= ' fk_product = '.(isset($this->fk_product) ? $this->fk_product : \"null\").',';


";
explain="$this->fk_product is tested for value 11 times while being used in this class. All detected situations were checking the presence of the property before usage."

name = "Don't Unset Properties";
description = "Avoid unsetting properties. They would go undefined, and raise more warnings. 

When getting rid of a property, assign it to null. This keeps the property in the object, yet allows existence check without errors.

<?php

class Foo {
    public $a = 1;
}

$a = new Foo();

var_dump((array) $a) ;
// la propriété est reportée, et null
// ['a' => null]

unset($a->a);

var_dump((array) $a) ;
//Empty []

// Check if a property exists
var_dump($a->b === null);

// Same result as above, but with a warning
var_dump($a->c === null);

?>

This analysis works on properties and static properties. It also reports magic properties being unset.

Thanks for `Benoit Burnichon <https://twitter.com/BenoitBurnichon>`_ for the original idea.

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "1.2.3";
modifications[] = "Never unset properties : set it to null or its default value instead"
modifications[] = "Make the property an array, and set/unset its index"
[example1]
project="Vanilla"
file="applications/dashboard/models/class.activitymodel.php"
line="1073"
code="    /**
     * Clear notification queue.
     *
     * @since 2.0.17
     * @access public
     */
    public function clearNotificationQueue() {
        unset($this->_NotificationQueue);
        $this->_NotificationQueue = [];
    }
";
explain="The _NotificationQueue property, in this class, is defined as an array. Here, it is destroyed, then recreated. The unset() is too much, as the assignation is sufficient to reset the array "
[example2]
project="Typo3"
file="typo3/sysext/linkvalidator/Classes/Linktype/InternalLinktype.php"
line=73
code="    public function checkLink($url, $softRefEntry, $reference)
    {
        $anchor = '';
        $this->responseContent = true;
        // Might already contain values - empty it
        unset($this->errorParams);
//....

abstract class AbstractLinktype implements LinktypeInterface
{
    /**
     * Contains parameters needed for the rendering of the error message
     *
     * @var array
     */
    protected $errorParams = [];

";
explain="The property errorParams is emptied by unsetting it. The property is actually defined in the above class, as an array. Until the next error is added to this list, any access to the error list has to be checked with isset(), or yield an 'Undefined' warning. "
name = "Undefined Class Constants";
description = "Class constants that are used, but never defined. This should yield a fatal error upon execution, but no feedback at compile level.

<?php

class foo {
    const A = 1;
    define('B', 2);
}

// here, C is not defined in the code and is reported
echo foo::A.foo::B.foo::C;

?>
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Fix the name of the constant"
modifications[] = "Add the constant to the current class or one of its parent"
modifications[] = "Update the constant's visibility"name = "Useless Final";
description = "When a class is declared final, all of its methods are also final by default. 

There is no need to declare them individually final.

<?php

    final class foo {
        // Useless final, as the whole class is final
        final function method() { }
    }

    class bar {
        // Useful final, as the whole class is not final
        final function method() { }
    }

?>

See also `Final Keyword <http://php.net/manual/en/language.oop5.final.php>`_, and `When to declare final <https://ocramius.github.io/blog/when-to-declare-classes-final/>`_.
";
clearphp = "no-useless-final";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
name = "Property Used Below";
description = "Mark properties that are used in children classes.

<?php

class foo {
    // This property is used in children
    protected protectedProperty = 1;
    
    // This property is not used in children
    protected localProtectedProperty = 1;

    private function foobar() {
        // protectedProperty is used here, but defined in parent
        $this->localProtectedProperty = 3;
    }
}

class foofoo extends foo {
    private function bar() {
        // protectedProperty is used here, but defined in parent
        $this->protectedProperty = 3;
    }
}

?>

This doesn't mark the current class, nor the (grand-)parent ones.";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Dynamic Self Calls";
description = "A class that calls itself dynamically. This may be property or methods. 

Calling itself dynamically happens when a class is configured to call various properties (container) or methods.  

<?php

class x {
    function foo() {
        $f = 'goo';
        return $this->$f();
    }

    function goo() {
        return rand(1, 10);
    }
}
?>

This rule is mostly useful internally, to side some special situations.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.1.1";

; Alternative to make this code go away. 
; One by possible solution
;modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

; Optional parameters
;[parameter1]
;name="parametersCount";
;default="8";
;type="integer";
;description="Minimal number of parameters to report.";

name = "Unresolved Catch";
description = "Catch clauses do not check for Exception existence. 

Catch clauses check that the emitted expression is of the requested Class, but if that class doesn't exist in the code, the catch clause is always false. This is dead code.

<?php

try {
    // doSomething()
} catch {TypoedExxeption $e) { // Do not exist Exception
    // Fix this exception
} catch {Stdclass $e) {        // Exists, but is not an exception
    // Fix this exception
} catch {Exception $e) {        // Actual and effective catch
    // Fix this exception
}
?>

";
clearphp = "no-unresolved-catch";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Fix the name of the exception"
modifications[] = "Remove the catch clause"
modifications[] = "Add a use expression with a valid name"
modifications[] = "Create/import the missing exception"
name = "Use Instanceof";
description = "The ``instanceof`` operator is a more precise alternative to ``is_object()``. It is also faster.

instanceof checks for an variable to be of a class or its parents or the interfaces it implements. 
Once ``instanceof`` has been used, the actual attributes available (properties, constants, methods) are known, unlike with ``is_object()``.

Last, ``instanceof`` may be upgraded to Typehint, by moving it to the method signature. 

<?php

class Foo {

    // Don't use is_object
    public function bar($o) {
        if (!is_object($o)) { return false; } // Classic argument check
        return $o->method();
    }

    // use instanceof
    public function bar($o) {
        if ($o instanceof myClass) {  // Now, we know which methods are available
            return $o->method();
        }
        
        return false; } // Default behavior
    }

    // use of typehinting
    // in case $o is not of the right type, exception is raised automatically
    public function bar(myClass $o) {
        return $o->method();
    }
}

?>

``instanceof`` and ``is_object()`` may not be always interchangeable. Consider using isset() on a known property for a simple check on objects. You may also consider is_string(), is_integer() or is_scalar(), in particular instead of ``!is_object()``.

The ``instanceof`` operator is also faster than the ``is_object()`` functioncall. 

See also `Type Operators <http://php.net/manual/en/language.operators.type.php#language.operators.type>`_ and 
         `is_object <http://php.net/manual/en/function.is-object.php>`_.
";
modifications[] = "Use instanceof and remove is_object()"
modifications[] = "Create a high level interface to check a whole family of classes, instead of testing them individually"
modifications[] = "Use typehint when possible"
modifications[] = "Avoid mixing scalar types and objects in the same variable"
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
[example1]
project="TeamPass"
file="includes/libraries/Database/Meekrodb/db.class.php"
line="506"
code="  protected function parseTS($ts) {
    if (is_string($ts)) return date('Y-m-d H:i:s', strtotime($ts));
    else if (is_object($ts) && ($ts instanceof DateTime)) return $ts->format('Y-m-d H:i:s');
  }
";
explain="In this code, ``is_object()`` and ``instanceof`` have the same basic : they both check that $ts is an object. In fact, ``instanceof`` is more precise, and give more information about the variable. "
[example2]
project="Zencart"
file="includes/modules/payment/firstdata_hco.php"
line="104"
code="  
  function __construct() {
    global $order;

    // more lines, no mention of $order
    if (is_object($order)) $this->update_status();

    // more code
}
";
explain="In this code, ``is_object()`` is used to check the status of the order. Possibly, $order is false or null in case of incompatible status. Yet, when $object is an object, and in particular being a global that may be assigned anywhere else in the code, it seems that the method 'update_status' is magically always available. Here, using instance of to make sure that $order is an 'paypal' class, or a 'storepickup' or any of the payment class.  "

name = "Could Be Abstract Class";
description = "An abstract class is never instantiated, and has children class that are. As such, a 'parent' class that is never instantiated by itself, but has its own children instantiated could be marked as abstract. 

That will prevent new code to try to instantiate it.

<?php

// Example code would actually be split over multiple files.


// That class could be abstract
class motherClass {}

// Those classes shouldn't be abstract
class firstChildren extends motherClass {}
class secondChildren extends motherClass {}
class thirdChildren extends motherClass {}

new firstChildren();
new secondChildren();
new thirdChildren();

//Not a single : new motherClass()

?>

See also `Class Abstraction <http://php.net/abstract>`_
         `Abstract classes and methods <https://phpenthusiast.com/object-oriented-php-tutorials/abstract-classes-and-methods>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "1.3.9";
modifications[] = "Make this class an abstract class"
[example1]
project="Edusoho"
file="src/Biz/Task/Strategy/BaseStrategy.php"
line="14"
code="class BaseStrategy { 
    // Class code
}";
explain="BaseStrategy is extended by NormalStrategy, DefaultStrategy (Not shown here), but it is not instantiated itself."
[example2]
project="shopware"
file="engine/Shopware/Plugins/Default/Core/PaymentMethods/Components/GenericPaymentMethod.php"
line="31"
code="class GenericPaymentMethod extends BasePaymentMethod { 
    // More class code
}";
explain="A 'Generic' class sounds like a class that could be 'abstract'. "
name = "Redefined Private Property";
description = "Private properties are local to their defined class. PHP doesn't forbid the re-declaration of a private property in a child class.

However, having two or more properties with the same name, in the class hierarchy tends to be error prone. 

<?php

class A {
    private $isReady = true;
}

class B {
    private $isReady = false;
}

?>


";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "1.2.3";
[example1]
project="Zurmo"
file="app/protected/modules/zurmo/models/OwnedCustomField.php"
line="51"
code="    class OwnedCustomField extends CustomField
    {
        /**
         * OwnedCustomField does not need to have a bean because it stores no attributes and has no relations
         * @see RedBeanModel::canHaveBean();
         * @var boolean
         */
        private static $canHaveBean = false;

/..../

        /**
         * @see RedBeanModel::getHasBean()
         */
        public static function getCanHaveBean()
        {
            if (get_called_class() == 'OwnedCustomField')
            {
                return self::$canHaveBean;
            }
            return parent::getCanHaveBean();
        }

";
explain="The class OwnedCustomField is part of a large class tree : OwnedCustomField extends CustomField,
CustomField extends BaseCustomField, BaseCustomField extends RedBeanModel, RedBeanModel extends BeanModel. 

Since $canHaveBean is distinct in BeanModel and in OwnedCustomField, the public method getCanHaveBean() also had to be overloaded. "name = "$this Is Not For Static Methods";
description = "Static methods shouldn't use $this variable.

$this variable represents an object, the current object. It is not compatible with a static method, which may operate without any object. 

While executing a static method, $this is actually set to NULL.

<?php

class foo {
    static $staticProperty = 1;

    // Static methods should use static properties
    static public function count() {
        return self::$staticProperty++;
    }
    
    // Static methods can't use $this
    static public function bar() {
        return $this->a;   // No $this usage in a static method
    }
}

?>

See also `Static Keyword <http://php.net/manual/en/language.oop5.static.php>`_.
";
clearphp = "no-static-this";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

phpErrors[] = "Using $this when not in object context "

modifications[] = "Remove the static keyword on the method, and update all calls to this method to use $this"
modifications[] = "Remove the usage of $this in the method, replacing it with static properties"
modifications[] = "Make $this an argument (and change its name) : then, make the method a function"

name = "Wrong Typed Property Init";
description = "Property is typed with an incompatible init type.

Init type might be a new instance, the return of a method call or an interface compatible object.

<?php

class x {
    private A $property;
    private B $incompatible;
    
    function __construct() {
        // This is compatible
        $this->property = new A();
        
        // This is incompatible : new B() expected
        $this->incompatible = new C();
        
    }
}

?>

PHP compiles such code, but won't execute it, as it detects the incompatibility.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.0.9";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Remove the type hint of the property"
modifications[] = "Fix the initialization call"
modifications[] = "Use an interface for typehint"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

; Optional parameters
;[parameter1]
;name="parametersCount";
;default="8";
;type="integer";
;description="Minimal number of parameters to report.";
name = "Don't Send $this In Constructor";
description = "Don't use ``$this`` as an argument while in the __construct(). Until the constructor is finished, the object is not finished, and may be in an unstable state. Providing it to another code may lead to error. 

This is true when the receiving structure puts the incoming object immediately to work, and don't store it for later use. 

<?php

// $this is only provided when Foo is constructed
class Foo {
    private $bar = null;
    private $data = array();
    
    static public function build($data) {
        $foo = new Foo($data);
        // Can't build in one call. Must make it separate.
        $foo->finalize();
    }

    private function __construct($data) {
        // $this is provided too early
        $this->data = $data;
    }
    
    function finalize() {
        $this->bar = new Bar($this);
    }
}

// $this is provided too early, leading to error in Bar
class Foo2 extends Foo {
    private $bar = null;
    private $data = array();
    
    function __construct($data) {
        // $this is provided too early
        $this->bar = new Bar($this);
        $this->data = $data;
    }
}

class Bar {
    function __construct(Foo $foo) {
        // the cache is now initialized with a wrong 
        $this->cache = $foo->getIt();
    }
}

?>

See also `Don't pass this out of a constructor <http://www.javapractices.com/topic/TopicAction.do?Id=252>`_.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "1.0.4";
modifications[] = "Finish the constructor first, then call an external object."
modifications[] = "Sending $this should be made accessible in a separate method, so external objects may call it."
modifications[] = "Sending the current may be the responsibility of the method creating the object."
[example1]
project="Woocommerce"
file="includes/class-wc-cart.php"
line="107"
code="	/**
	 * Constructor for the cart class. Loads options and hooks in the init method.
	 */
	public function __construct() {
		$this->session          = new WC_Cart_Session( $this );
		$this->fees_api         = new WC_Cart_Fees( $this );
		$this->tax_display_cart = $this->is_tax_displayed();

		// Register hooks for the objects.
		$this->session->init();";
explain="WC_Cart_Session and WC_Cart_Fees receives $this, the current object, at a moment where it is not consistent : for example, tax_display_cart hasn't been set yet. Although it may be unexpected to have an object called WC_Cart being called by the session or the fees, this is still a temporary inconsistence. "
[example2]
project="Contao"
file="system/modules/core/library/Contao/Model.php"
line="110"
code="	/**
	 * Load the relations and optionally process a result set
	 *
	 * @param \Database\Result $objResult An optional database result
	 */
	public function __construct(\Database\Result $objResult=null)
	{
        // Some code was removed 
			$objRegistry = \Model\Registry::getInstance();

			$this->setRow($arrData); // see #5439
			$objRegistry->register($this);
			
        // More code below
        // $this-> are set
        // $objRegistry is called 
    }
";
explain="$this is send to $objRegistry. $objRegistry is obtained with a factory, \Model\Registry::getInstance(). It is probably fully prepared at that point. Yet, $objRegistry is called and used to fill $this properties with full values. At some point, $objRegistry return values without having a handle on a fully designed object. "
name = "Abstract Or Implements";
description = "A class must implements all abstract methods of it parent, or be abstract too. 

While PHP lints this code, it won't execute it and stop with a Fatal Error : ``Class BA contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (A::aFoo)``.

<?php

abstract class Foo { 
    abstract function FooBar();
}

// This is in another file : php -l would detect it right away

class FooFoo extends Foo { 
    // The method is not defined. 
    // The class must be abstract, just like Foo
}

?>

See also `Class Abstraction <http://php.net/abstract>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "1.3.3";

modifications[] = "Implements all the abstract methods of the class"
modifications[] = "Make the class abstract"

phpError[] = "Class BA contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (A::aFoo)"

[example1]
project="Zurmo"
file="app/protected/extensions/zurmoinc/framework/views/MassEditProgressView.php"
line="30"
code="class MassEditProgressView extends ProgressView { 
    /**/ 
}";

explain="The class MassEditProgressView extends ProgressView, which is an abstract class. That class defines one abstract method : abstract protected function headerLabelPrefixContent(). Yet, the class MassEditProgressView doesn't implements this method. This means that the class can't be instatiated, and indeed, it isn't. The class MassEditProgressView is subclassed, by the class MarketingListMembersMassSubscribeProgressView, which implements the method headerLabelPrefixContent(). As such, MassEditProgressView should be marked abstract, so as to prevent any instantiation attempt. "
name = "Multiple Class Declarations";
description = "It is possible to declare several times the same class in the code. PHP will not mention it until execution time, since declarations may be conditional. 

<?php

$a = 1;

// Conditional declaration
if ($a == 1) {
    class foo {
        function method() { echo 'class 1';}
    }
} else {
    class foo {
        function method() { echo 'class 2';}
    }
}

(new foo())->method();
?>

It is recommended to avoid declaring several times the same class in the code. The best practice is to separate them with namespaces, they are for here for that purpose. In case those two classes are to be used interchangeably, the best is to use an abstract class or an interface.";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Store classes with different names in different namespaces"
modifications[] = "Change the name of the classes and give them a common interface to allow from common behavior"name = "Property Used Above";
description = "Property used in the parent classes.

It may also be used in the current class, or its children, though this is not reported by this analyzer.

<?php

class A {
    public function foo() {
        $this->pb++;
    }
}

class B extends A {
    protected $pb = 0;       // property     used above
    protected $pb2 = 0;      // property NOT used above
}

?>";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Static Methods";
description = "List of all static methods.

<?php

class foo {
    static public function staticMethod() {
        
    }
    
    public function notStaticMethod() {
    
    }
           
    private function method() {
        // This is not a property
        new static();
    }
}

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Magic Visibility";
description = "The class magic methods must have public visibility and cannot be static.

<?php

class foo{
    // magic method must bt public and non-static
    public static function __clone($name) {    }

    // magic method can't be private
    private function __get($name) {    }

    // magic method can't be protected
    private function __set($name, $value) {    }

    // magic method can't be static
    public static function __isset($name) {    }
}

?>

See also `Magic methods <http://php.net/manual/en/language.oop5.magic.php>`_.
";
clearphp = "";
phpversion = "5.4-";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Constant Used Below";
description = "Mark class constants that are used in children classes.

<?php

class foo {
    // This constant is used in children
    protected PROTECTEDPROPERTY = 1;
    
    // This constant is not used in children
    protected LOCALPROTECTEDPROPERTY = 1;

    private function foobar() {
        // PROTECTEDPROPERTY is used here, but defined in parent
        echo self::LOCALPROTECTEDPROPERTY;
    }
}

class foofoo extends foo {
    private function bar() {
        // protectedProperty is used here, but defined in parent
        print self::PROTECTEDPROPERTY;
    }
}

?>

This analysis marks constants at their definition, not the current class, nor the (grand-)parent.";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.12.10";name = "Incompatible Signature Methods";
description = "Methods should have the same signature when being overwritten.

The same signatures means the children class must have : 
+ the same name
+ the same visibility or less restrictive
+ the same typehint or removed
+ the same default value or removed
+ a reference like its parent

This problem emits a fatal error, for abstract methods, or a warning error, for normal methods. Yet, it is difficult to lint, because classes are often stored in different files. As such, PHP do lint each file independently, as unknown parent classes are not checked if not present. Yet, when executing the code, PHP lint the actual code and may encounter a fatal error.

<?php

class a {
    public function foo($a = 1) {}
}

class ab extends a {
    // foo is overloaded and now includes a default value for $a
    public function foo($a) {}
}

?>

See also `Object Inheritance <http://www.php.net/manual/en/language.oop5.inheritance.php>`_.
";
clearphp = "";
severity = "S_CRITICAL";
timetofix = "T_QUICK";
exakatSince = "1.3.3";

modifications[] = "Make signatures compatible again";

phpError[] = "Declaration of ab::foo($a) should be compatible with a::foo($a = 1) "
phpError[] = "Declaration of ab::foo($a) must be compatible with a::foo($a = 1) "
[example1]
project="SuiteCrm"
file="modules/Home/Dashlets/RSSDashlet/RSSDashlet.php"
line="138"
code="// File /modules/Home/Dashlets/RSSDashlet/RSSDashlet.php
    public function saveOptions(
        array $req
        )
    {

// File /include/Dashlets/Dashlets.php
    public function saveOptions( $req ) {

";
explain="The class in the RSSDashlet.php file has an 'array' typehint which is not in the parent Dashlet class. While both files compile separately, they yield a PHP warning when running : typehinting mismatch only yields a warning. "
name = "Const Visibility Usage";
description = "Visibility for class constant controls the accessibility to class constant.

A public constant may be used anywhere in the code; a protected constant usage is restricted to the class and its relatives; a private constant is restricted to itself.

This feature was introduced in PHP 7.1. It is recommended to use explicit visibility, and, whenever possible, make the visibility private.

<?php

class x {
    public const a = 1;
    protected const b = 2;
    private const c = 3;
    const d = 4;
}

interface i {
    public const a = 1;
      const d = 4;
}

?>

See also `Class Constants <http://php.net/manual/en/language.oop5.constants.php>`_ and 
         `PHP RFC: Support Class Constant Visibility <https://wiki.php.net/rfc/class_const_visibility>`_.
";
clearphp = "";
phpversion = "7.1+";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "1.3.0";name = "Used Static Properties";
description = "List of all static properties that are used.

A private property is used when it is defined and read. A private property that is only written is not used. A property that is only read is used, as it may have a default value, or act as NULL.

<?php

class foo {
    // This is a used property (see bar method)
    private $used = 1;

    function bar($a) {
        $this->used += $a;
        
        return $this->used;
    }
}

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Magic Properties";
description = "List of magic properties used in the code";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.5";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Magic Methods";
description = "List of PHP magic methods being used. The magic methods are 

__call(), __callStatic(), __get(), __set(), __isset(), __unset(), __sleep(), __wakeup(), __toString(), __invoke(), __set_state(), __clone() and __debugInfo().

``__construct`` and ``__destruct`` are omitted here, as they are routinely used to create and destroy objects.

<?php

class foo{
    // PHP Magic method, called when cloning an object.
    function __clone() {}
}
?>

See also `Magic Method <http://php.net/manual/en/language.oop5.magic.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Undefined Classes";
description = "Those classes are used in the code, but there are no definition for them.

This may happens under normal conditions, if the application makes use of an unsupported extension, that defines extra classes; 
or if some external libraries, such as PEAR, are not provided during the analysis.

<?php

// FPDF is a classic PDF class, that is usually omitted by Exakat. 
$o = new FPDF();

// Exakat reports undefined classes in instanceof
// PHP ignores them
if ($o instanceof SomeClass) {
    // doSomething();
}

// Classes may be used in typehint too
function foo(TypeHintClass $x) {
    // doSomething();
}

?>

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Implemented Methods Are Public";
description = "Class methods that are defined in an interface must be public. They cannot be either private, nor protected.

This error is not reported by lint, but is reported at execution time.

<?php

interface i {
    function foo();
}

class X {
    // This method is defined in the interface : it must be public
    protected function foo() {}
    
    // other methods may be private
    private function bar() {}
}

?>

See also `Interfaces <http://php.net/manual/en/language.oop5.interfaces.php#language.oop5.interfaces>`_ and 
        `Interfaces - the next level of abstraction <https://phpenthusiast.com/object-oriented-php-tutorials/interfaces>`_.

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "0.11.5";

modifications[] = "Make the implemented method public"

phpError[] = "Access level to x::foo() must be public (as in class i)"name = "Redefined Class Constants";
description = "Redefined class constants.

Class constants may be redefined, though it is prone to errors when using them, as it is now crucial to use the right class name to access the right value.

<?php

class a {
    const A = 1;
}

class b extends a {
    const A = 2;
}

class c extends c { }

echo a::A, ' ', b::A, ' ', c::A;
// 1 2 2

?>

It is recommended to use distinct names. 

 ";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Locally Unused Property";
description = "Those properties are defined in a class, and this class doesn't have any method that makes use of them. 

While this is syntactically correct, it is unusual that defined resources are used in a child class. It may be worth moving the definition to another class, or to move accessing methods to the class.

<?php

class foo {
    public $unused, $used;// property $unused is never used in this class
    
    function bar() {
        $this->used++; // property $used is used in this method
    }
}

class foofoo extends foo {
    function bar() {
        $this->unused++; // property $unused is used in this method, but defined in the parent class
    }
}

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";

modifications[] = "Move the property definition to the child classes"
modifications[] = "Move some of the child methd, using the property, to the parent class"name = "Constant Class";
description = "A class or an interface only made up of constants. Constants usually have to be used in conjunction of some behavior (methods, class...) and never alone. 

<?php

class ConstantClass {
    const KBIT = 1000;
    const MBIT = self::KBIT * 1000;
    const GBIT = self::MBIT * 1000;
    const PBIT = self::GBIT * 1000;
}

?>

As such, they should be PHP constants (build with define or const), or included in a class with other methods and properties. 

See also `PHP Classes containing only constants <https://stackoverflow.com/questions/16838266/php-classes-containing-only-constants>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";

modifications[] = "Make the class an interface"
modifications[] = "Make the class an abstract class, to avoid its instantiation"
name = "Undefined Properties";
description = "List of properties that are not explicitly defined in the class, its parents or traits.

<?php

class foo {
    // property definition
    private bar = 2;
    
    function foofoo() {
        // $this->bar is defined in the class
        // $this->barbar is NOT defined in the class
        return $this->bar + $this->barbar;
    }
}

?>

It is possible to spot unidentified properties by using the PHP's magic methods ``__get`` and ``__set``. Even if the class doesn't use magic methods, any call to an undefined property will be directed to those methods, and they can be used as a canary, warning that the code is missing a definition. 

<?php

trait NoUnefinedProperties {
	function __get($name) {
		assert(false, \"Attempt to read the $name property, on the class \".__CLASS__;
	}

	function __set($name, $value) {
		assert(false, \"Attempt to read the $name property, on the class \".__CLASS__;
	}
}

?>

See also `Properties <http://php.net/manual/en/language.oop5.properties.php>`_.";
clearphp = "no-undefined-properties";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Add an explicit property definition, and give it ``null`` as a default value : this way, it behaves the same as undefined.";

phpErrors[] = "Undefined property: x::$e";

[example1]
project="WordPress"
file="wp-admin/includes/misc.php"
line="74"
code="        $this->DeliveryLine1 = '';
        $this->DeliveryLine2 = '';
        $this->City = '';
        $this->State = '';
        $this->ZipAddon = '';
";
explain="Properties are not defined, but they are thoroughly initialized when the XML document is parsed. All those definition should be in a property definition, for clear documentation."

[example2]
project="MediaWiki"
file="includes/logging/LogFormatter.php"
line="561"
code="	protected function getMessageParameters() {
		if ( isset( $this->parsedParametersDeleteLog ) ) {
			return $this->parsedParametersDeleteLog;
		}
";
explain="parsedParametersDeleteLog is an undefined property. Defining the property with a null default value is important here, to keep the code running. ";
name = "Is Not Class Family";
description = "Mark a static method call as inside the family of classes. Children are not considered here.

<?php

class a {
    function familyMethod() {}
}

classs b {
    function foo() {
        self::familyMethod(); // This is a call to a family method
        b::notAFamilyMethod(); // This is a call to a method of a class outside the family
    }
}
?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Method Used Below";
description = "Mark methods that are used in children classes.

<?php

class foo {
    // This method is used in children
    protected function protectedMethod() {}
    
    // This method is not used in children
    protected function localProtectedMethod() {}

    private function foobar() {
        // protectedMethod is used here, but defined in parent
        $this->localProtectedMethod();
    }
}

class foofoo extends foo {
    private function bar() {
        // protectedMethod is used here, but defined in parent
        $this->protectedMethod();
    }
}

?>

This doesn't mark the current class, nor the (grand-)parent ones.";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.12.11";name = "Could Be Class Constant";
description = "When a property is defined and read, but never modified, it may be a constant. 

<?php

class foo {
    // $this->bar is never modified. 
    private $bar = 1;
    
    // $this->foofoo is modified, at least once
    private $foofoo = 2;
    
    function method($a) {
        $this->foofoo = $this->bar + $a + $this->foofoo;
        
        return $this->foofoo;
    }
    
}

?>

Starting with PHP 5.6, even array() may be defined as constants. ";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Static Properties";
description = "List of all static properties.
<?php

class foo {
    static public $staticProperty = 1;
           public $notStaticProperty = 2;
           
    private function method() {
        // This is not a property
        new static();
    }
}

function bar() {
    // This is not a static property
    static $staticVariable;
    
    //....
}

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Multiple Identical Trait Or Interface";
description = "There is no need to use the same trait, or implements the same interface more than once.

Up to PHP 7.1 (at least), this doesn't raise any warning. Traits are only imported once, and interfaces may be implemented as many times as wanted.

<?php

class foo {
    use t3,t3,t3;
}

class bar implements i,i,i {

}

?>
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Remove the duplicate trait or interfaces"name = "No Public Access";
description = "The properties below are declared with public access, but are never used publicly. They can be made protected or private.

<?php

class foo {
    public $bar = 1;            // Public, and used in public space
    public $neverInPublic = 3;  // Public, but never used in outside the class
    
    function bar() {
        $neverInPublic++;
    }
}

$x = new foo();
$x->bar = 3;
$x->bar();

?>
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Method Is Overwritten";
description = "This marks an method that is overwritten in a child class. 

<?php

class A {
    function intactMethodA() {}         // Not overwritten in any children
    function overwrittenMethodInAA() {} // overwritten in AA
}

class AA extends A {
    function intactMethodAA() {}        // Not overwritten, because no extends
    function overwrittenMethodInAA() {} // Not overwritten, because no extends
}

?>
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.10.9";name = "Unused Methods";
description = "Those methods are never called. 

They are probably dead code, unless they are called dynamically.

This analysis omits methods which are in a class that makes dynamical self calls : ``$this->$m()``. That way, any method may be called. 

This analysis omits methods which are overwritten by a child class. That way, they are considered to provide a default behavior. 

<?php

class foo {
    public function used() {
        $this->used();
    }

    public function unused() {
        $this->used();
    }
}

class bar extends foo {
    public function some() {
        $this->used();
    }
}

$a = new foo();
$a->used();

?>

See also `Dead Code: Unused Method <https://vulncat.fortify.com/en/detail?id=desc.structural.java.dead_code_unused_method>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Make use of the method"
modifications[] = "Remove the method"
modifications[] = "Move the method to another class"
name = "Ambiguous Static";
description = "Methods or properties with the same name, are defined static in one class, and not static in another. This is error prone, as it requires a good knowledge of the code to make it static or not. 

Try to keep the methods simple and unique. Consider renaming the methods and properties to distinguish them easily. A method and a static method have probably different responsibilities.

<?php

class a {
    function mixedStaticMethod() {}
}

class b {
    static function mixedStaticMethod() {}
}

/... a lot more code later .../

$c->mixedStaticMethod();
// or 
$c::mixedStaticMethod();

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "1.0.3";name = "Not Same Name As File";
description = "The class, interface or trait in this file as a different name, case included, than the file name. 

In the following example,  the file name is ``Foo.php``.
<?php

// normal host of this file
class Foo {
    // some code
}

// case-typo this file
class foo {
    // some code
}

// strangely stored class 
class foo {
    // some code
}

// This is valid name, but there is also a Foo class, and other classe in this file. 
interface Foo {}

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Undefined ::class";
description = "``::class`` doesn't check if a corresponding class exists. 

``::class`` must be checked with a call to class_exists(). Otherwise, it may lead to a ``Class 'foo' not found`` or even silent dead code : this happens also with Catch and instanceof commands with undefined classes. PHP doesn't raise an error in that case. 

<?php

class foo() {}

// prints foo
echo foo::class; 

// prints bar though bar doesn't exist.
echo bar::class;

?>

See also `Class Constants <http://php.net/manual/en/language.oop5.constants.php>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "1.3.5";

phpError[] = "Class 'x' not found"name = "Class Usage";
description = "List of classes being used.

<?php

// Class may be used in a use expression
use MyClass as MyAliasedClass;

// class may be aliased with class_alias
class_alias('MyOtherAliasedClass', 'MyClass');

// Class may be instanciated
$o = new MyClass();

// Class may be used with instanceof
var_dump($o instanceof \MyClass);

// Class may be used in static calls
MyClass::aConstant;
echo MyClass::$aProperty;
echo MyClass::aMethod( $o );

// Class may be extended
class MyOtherClass {

}

class MyClass extends MyOtherClass {
    const aConstant = 1;
    
    public static $aProperty = 2;
    
    // also used as a typehint
    public static function aMethod(MyClass $object) {
        return __METHOD__;
    }
}

?>
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Used Methods";
description = "Those methods are used in the code. This analysis is mostly useful for its contrary.

<?php

class foo {
    public function used() {
        $this->used();
    }

    // No usage of 'unused', as method call, in or out of the definition class.
    public function unused() {
        $this->used();
    }
}

class bar extends foo {
    public function some() {
        $this->used();
    }
}

$a = new foo();
$a->used();

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Should Have Destructor";
description = "PHP destructors are called when the object has to be destroyed. By default, PHP calls recursively the destructor on internal objects, until everything is unset.

Unsetting objects and resources explicitly in the destructor is a good practice to reduce the amount of memory in use. It helps PHP resource counter to keep the numbers low, and easier to clean. This is a major advantage for long running scripts.

<?php

class x {
    function __construct() {
        $this->p = new y();
    }

    function __destruct() {
        print __METHOD__.PHP_EOL;
        unset($this->p);
    }
}

class y {
    function __construct() {
        print __METHOD__.PHP_EOL;
        $this->p = new y();
    }

    function __destruct() {
        print __METHOD__.PHP_EOL;
        unset($this->p);
    }
}

$a = (new x);
sleep(1);

// This increment the resource counter by one for the property.
$p = $a->p;
unset($a);
sleep(3);

print 'end'.PHP_EOL;
// Y destructor is only called here, as the object still exists in $p.

?>

See also `Destructor <http://php.net/manual/en/language.oop5.decon.php#language.oop5.decon.destructor>`_, and 
         `Php Destructors <https://stackoverflow.com/questions/3566155/php-destructors>`_.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_SLOW";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.5.4";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Add a destruct method to the class to help clean at destruction time."
name = "Used Classes";
description = "The following classes are used in the code.

Classes may be use when they are instantiated, or with static calls

<?php

class unusedClasss { const X = 1;}
class usedClass {}

$y = new usedClass(usedClass::X);

?>
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Empty Classes";
description = "Classes that do no define anything at all. This is probably dead code.

Classes that are directly derived from an exception are omitted.

<?php

//Empty class
class foo extends bar {}

//Not an empty class
class foo2 extends bar {
    const FOO = 2;
}

//Not an empty class, as derived from Exception
class barException extends \Exception {}

?>
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
modifications[] = "Remove an empty class :it is probably dead code."
modifications[] = "Add some code to the class to make it concrete."
[example1]
project="WordPress"
file="wp-includes/SimplePie/Core.php"
line="54"
code="/**
 * SimplePie class.
 *
 * Class for backward compatibility.
 *
 * @deprecated Use {@see SimplePie} directly
 * @package SimplePie
 * @subpackage API
 */
class SimplePie_Core extends SimplePie
{

}";
explain="Empty class, but documented as backward compatibility. "
name = "Static Methods Can't Contain $this";
description = "Static methods are also called ``class methods`` : they may be called even if the class has no instantiated object. Thus, the local variable ``$this`` won't exist, PHP will set it to NULL as usual. 

<?php

class foo {
    // Static method may access other static methods, or property, or none. 
    static function staticBar() {
        // This is not possible in a static method
        return self::otherStaticBar() . static::$staticProperty;
    }

    static function bar() {
        // This is not possible in a static method
        return $this->property;
    }
}

?>

Either this is not a static method, which is fixed by removing the ``static`` keyword, or replace all $this mention by static properties ``Class::$property``.

See also `Static Keyword <http://php.net/manual/en/language.oop5.static.php>`_
";
clearphp = "no-static-this";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
modifications[] = "Remove any $this usage"
modifications[] = "Turn any $this usage into a static call : $this->foo() => self::foo()"

phpErrors[] = "Using $this when not in object context"

[example1]
project="xataface"
file="Dataface/LanguageTool.php"
line="48"
code="	public static function loadRealm($name){
		return self::getInstance($this->app->_conf['default_language'])->loadRealm($name);
	}
";
explain="$this is hidden in the arguments of the static call to the method."
[example2]
project="SugarCrm"
file="SugarCE-Full-6.5.26/modules/ACLActions/ACLAction.php"
line="332"
code="    static function hasAccess($is_owner=false, $access = 0){

        if($access != 0 && $access == ACL_ALLOW_ALL || ($is_owner && $access == ACL_ALLOW_OWNER))return true;
       //if this exists, then this function is not static, so check the aclaccess parameter
        if(isset($this) && isset($this->aclaccess)){
            if($this->aclaccess == ACL_ALLOW_ALL || ($is_owner && $this->aclaccess == ACL_ALLOW_OWNER))
            return true;
        }
        return false;
    }
";
explain="Notice how $this is tested for existence before using it. It seems strange, at first, but we have to remember that if $this is never set when calling a static method, a static method may be called with $this. Confusingly, this static method may be called in two ways. "
name = "Is An Extension Class";
description = "Those classes belongs to a PHP Extensions.

<?php

// This is a native PHP class
$o = new Stdclass();

// This is not a native PHP class
$o = new Elephpant();

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Class Should Be Final By Ocramius";
description = "'Make your classes always final, if they implement an interface, and no other public methods are defined'.

When a class should be final, as explained by ``Ocramius`` (``Marco Pivetta``).

<?php

interface i1 {
    function i1() ;
}

// Class should final, as its public methods are in an interface
class finalClass implements i1 {
    // public interface 
    function i1 () {}
    
    // private method
    private function a1 () {}
}

?>

See also `When to declare classes final <http://ocramius.github.io/blog/when-to-declare-classes-final/>`_.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.9.4";name = "Class Could Be Final";
description = "Any class that has no extension should be ``final`` by default.

As stated by ``Matthias Noback`` : ``If a class is not marked final, it has at least one subclass``.

Prevent your classes from being subclassed by making them ``final``. Sometimes, classes are not meant or thought to be derivable.

<?php

class x {}            // This class is extended
class y extends x {}  // This class is extended
class z extends y {}  // This class is not extended

final class z2 extends y {}  // This class is not extended

?>

See also `Negative architecture, and assumptions about code <https://matthiasnoback.nl/2018/08/negative-architecture-and-assumptions-about-code/>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "1.4.3";

modifications[] = "Make the class final"
modifications[] = "Extends the class"
name = "Property Could Be Local";
description = "A property only used in one method may be turned into a local variable.

Public an protected properties are omitted here : they may be modified somewhere else, in the code. This analysis may be upgraded to support those properties, when tracking of such properties becomes available.

Classes where only one non-magic method is available are omitted.

Traits with private properties are processed the same way.

<?php

class x {
    private $foo = 1;

    // Magic method, and constructor in particular, are omitted.
    function __construct($foo) {
        $this->foo = $foo;
    }
    
    function bar() {
        $this->foo++;
        
        return $this->foo;
    }

    function barbar() {}
}

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "1.1.7";

modifications[] = "Remove the property and make it an argument in the method"
modifications[] = "Use that property elsewhere"

[example1]
project="Mautic"
file="app/bundles/EmailBundle/Model/SendEmailToContact.php"
line="47"
code="class SendEmailToContact
{
    /**
     * @var TranslatorInterface
     */
    private $translator;

// Skipped code 

    /**
     * SendEmailToContact constructor.
     *
     * @param MailHelper          $mailer
     * @param StatRepository      $statRepository
     * @param DoNotContact        $dncModel
     * @param TranslatorInterface $translator
     */
    public function __construct(MailHelper $mailer, StatHelper $statHelper, DoNotContact $dncModel, TranslatorInterface $translator)
    {
        $this->mailer     = $mailer;
        $this->statHelper = $statHelper;
        $this->dncModel   = $dncModel;
        $this->translator = $translator;
    }

// Skipped code 

    /**
     * Add DNC entries for bad emails to get them out of the queue permanently.
     */
    protected function processBadEmails()
    {
        // Update bad emails as bounces
        if (count($this->badEmails)) {
            foreach ($this->badEmails as $contactId => $contactEmail) {
                $this->dncModel->addDncForContact(
                    $contactId,
                    ['email' => $this->emailEntityId],
                    DNC::BOUNCED,
                    $this->translator->trans('mautic.email.bounce.reason.bad_email'),
                    true,
                    false
                );
            }
        }
    }
";
explain="$translator is a private property, provided at construction time. It is private, and only used in the processBadEmails() method. $translator may be turned into a parameter for processBadEmails(), and make the class slimmer."

[example2]
project="Typo3"
file="typo3/sysext/install/Classes/Updates/MigrateUrlTypesInPagesUpdate.php"
line="28"
code="/**
 * Merge URLs divided in pages.urltype and pages.url into pages.url
 * @internal This class is only meant to be used within EXT:install and is not part of the TYPO3 Core API.
 */
class MigrateUrlTypesInPagesUpdate implements UpgradeWizardInterface
{
    private $urltypes = ['', 'http://', 'ftp://', 'mailto:', 'https://'];

// Skipped code

    /**
     * Moves data from pages.urltype to pages.url
     *
     * @return bool
     */
    public function executeUpdate(): bool
    {
        foreach ($this->databaseTables as $databaseTable) {
            $connection = GeneralUtility::makeInstance(ConnectionPool::class)
                ->getConnectionForTable($databaseTable);

            // Process records that have entries in pages.urltype
            $queryBuilder = $connection->createQueryBuilder();
            $queryBuilder->getRestrictions()->removeAll();
            $statement = $queryBuilder->select('uid', 'urltype', 'url')
                ->from($databaseTable)
                ->where(
                    $queryBuilder->expr()->neq('urltype', 0),
                    $queryBuilder->expr()->neq('url', $queryBuilder->createPositionalParameter(''))
                )
                ->execute();

            while ($row = $statement->fetch()) {
                $url = $this->urltypes[(int)$row['urltype']] . $row['url'];
                $updateQueryBuilder = $connection->createQueryBuilder();
                $updateQueryBuilder
                    ->update($databaseTable)
                    ->where(
                        $updateQueryBuilder->expr()->eq(
                            'uid',
                            $updateQueryBuilder->createNamedParameter($row['uid'], \PDO::PARAM_INT)
                        )
                    )
                    ->set('url', $updateQueryBuilder->createNamedParameter($url), false)
                    ->set('urltype', 0);
                $updateQueryBuilder->execute();
            }
        }
        return true;
    }

";
explain="$urltypes is a private property, with a list of protocols for communicationss. It acts as a constant, being only read in the executeUpdate() method : constants may hold arrays. If this property has to evolve in the future, an accessor to update it will be necessary. Until then, this list may be hardcoded in the method. "
name = "$this Is Not An Array";
description = "``$this`` variable represents the current object and it is not an array. 

This is unless the class (or its parents) has the ``ArrayAccess`` interface, or extends ``ArrayObject`` or ``SimpleXMLElement``.

<?php

// $this is an array
class Foo extends ArrayAccess {
    function bar() {
        ++$this[3];
    }
}

// $this is not an array
class Foo2 {
    function bar() {
        ++$this[3];
    }
}

?>

See also `ArrayAccess <http://php.net/manual/en/class.arrayaccess.php>`_,
         `ArrayObject <http://php.net/manual/en/class.arrayobject.php>`_ and
         `The Basics <http://php.net/manual/en/language.oop5.basic.php>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Extends ``ArrayObject``, or a class that extends it, to use ``$this`` as an array too.";
modifications[] = "Implements ``ArrayAccess`` to use ``$this`` as an array too.";
modifications[] = "Use a property in the current class to store the data, instead of $this directly.";

phpError[] = "Cannot use object of type Foo as array"name = "Dynamic Class Constant";
description = "Dynamic calls to class constants.

Constant may be dynamically called with the constant() function.

<?php
    // Dynamic access to 'E_ALL'
    echo constant('E_ALL');
    
    interface i {
        const MY_CONSTANT  = 1;
    }

    // Dynamic access to 'E_ALL'
    echo constant('i::MY_CONSTANT');

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Ambiguous Visibilities";
description = "The properties have the same name, but have different visibilities, across different classes. 

While it is legit to have a property with the same name in different classes, it may easily lead to confusion. As soon as the context is need to understand if the property is accessible or not, the readability suffers.

It is recommended to handle the same properties in the same way across classes, even when the classes are not related. 

<?php

class person {
    public $name;
    private $address;
}

class gangster {
    private $name;
    public $nickname;
    private $address;
}

$someone = Human::load(123);
echo 'Hello, '.$someone->name;

?>


";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "1.3.4";

modifications[] = "Sync visibilities for both properties, in the different classes"
modifications[] = "Use different names for properties with different usages"

[example1]
project="Typo3"
file="typo3/sysext/backend/Classes/Controller/NewRecordController.php"
line="90"
code="class NewRecordController
{
/.. many lines../
    /**
     * @var array
     */
    protected $allowedNewTables;
    
class DatabaseRecordList
{
/..../ 
    /**
     * Used to indicate which tables (values in the array) that can have a
     * create-new-record link. If the array is empty, all tables are allowed.
     *
     * @var string[]
     */
    public $allowedNewTables = [];

";
explain="$allowedNewTables is declared once  protected and once public. $allowedNewTables is rare : 2 occurences. This may lead to confusion about access to this property."
name = "Make Global A Property";
description = "Calling global (or $GLOBALS) in methods is slower and less testable than setting the global to a property, and using this property.

Using properties is slightly faster than calling global or $GLOBALS, though the gain is not important. 

Setting the property in the constructor (or in a factory), makes the class easier to test, as there is now a single point of configuration.

<?php 

// Wrong way
class fooBad {
    function x() {
        global $a;
        $a->do();
        // Or $GLOBALS['a']->do();
    }
}

class fooGood {
    private $bar = null;
    
    function __construct() {
        global $bar; 
        $this->bar = $bar;
        // Even better, do this via arguments
    }
    
    function x() {
        $this->a->do();
    }
}

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";

modifications[] = "Avoid using global variables, and use properties instead"
modifications[] = "Remove the usage of these global variables"name = "Unused Class Constant";
description = "The class constant is unused. Consider removing it.

<?php

class foo {
    public const UNUSED = 1; // No mention in the code
    
    private const USED = 2;  // used constant
    
    function bar() {
        echo self::USED;
    }
}

?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.8.4";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Remove the class constant"
modifications[] = "Use the class constant"


; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Parent First";
description = "When calling parent constructor, always put it first in the ``__construct`` method. It ensures the parent is correctly build before the child start using values. 

<?php

class father {
    protected $name = null;
    
    function __construct() {
        $this->name = init();
    }
}

class goodSon {
    function __construct() {
        // parent is build immediately, 
        parent::__construct();
        echo "my name is ".$this->name;
    }
}

class badSon {
    function __construct() {
        // This will fail.
        echo "my name is ".$this->name;

        // parent is build later, 
        parent::__construct();
    }
}

?>

This analysis doesn't apply to Exceptions. 
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "1.0.5";
modifications[] = "Use ``parent::__construct`` as the first call in the constructor."
[example1]
project="shopware"
file="wp-admin/includes/misc.php"
line="74"
code="/**
 * Class FieldSet
 */
class FieldSet extends BaseContainer
{
    /**
     * @var string
     */
    protected $title;

    /**
     * @param string $name
     * @param string $title
     */
    public function __construct($name, $title)
    {
        $this->title = $title;
        $this->name = $name;
        parent::__construct();
    }
";
explain="Here, the parent is called last. Givent that $title is defined in the same class, it seems that $name may be defined in the BaseContainer class. In fact, it is not, and BasecContainer and FieldSet are fairly independant classes. Thus, the parent::__construct call could be first here, though more as a coding convention."

[example2]
project="PrestaShop"
file="controllers/admin/AdminPatternsController.php"
line="30"
code="class AdminPatternsControllerCore extends AdminController
{
    public $name = 'patterns';

    public function __construct()
    {
        $this->bootstrap = true;
        $this->show_toolbar = false;
        $this->context = Context::getContext();

        parent::__construct();
    }

";
explain="A good number of properties are set in the current object even before the parent AdminController(Core) is called. 'table' and 'lang' acts as default values for the parent class, as it (the parent class) would set them to another default value. Many properties are used, but not defined in the current class, nor its parent. This approach prevents the constructor from requesting too many arguments. Yet, as such, it is difficult to follow which of the initial values are transmitted via protected/public properties rather than using the __construct() call."

name = "Constant Definition";
description = "List of class constants being defined.

<?php

// traditional way of making constants
define('aConstant', 1);

// modern way of making constants
const anotherConstant = 2;

class foo {
    // Not a constant, a class constant.
    const aClassConstant = 3;
}

?>

See also `PHP Constants <http://php.net/manual/en/language.constants.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Clone With Non-Object";
description = "The ``clone`` keyword must be used on variables, properties or results from a function or method call. 

``clone`` cannot be used with constants or literals.

<?php

class x { }
$x = new x();

// Valid clone
$y = clone $x;

// Invalid clone
$y = clone x;

?>

Cloning a non-object lint but won't execute.

See also `Object cloning <http://php.net/manual/en/language.oop5.cloning.php>`_.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.7.0";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Only clone containers (like variables, properties...)"
modifications[] = "Add typehint to injected properties, so they are checked as objects."

; A PHP error that may be emitted by the target faulty code
phpError[] = "__clone method called on non-object"
name = "Could Use self";
description = "``self`` keyword refers to the current class, or any of its parents. Using it is just as fast as the full class name, it is as readable and it is will not be changed upon class or namespace change.

It is also routinely used in traits : there, ``self`` represents the class in which the trait is used, or the trait itself. 

<?php

class x {
    const FOO = 1;
    
    public function bar() {
        return self::FOO;
// same as return x::FOO;
    }
}

?>

See also `Scope Resolution Operator (::) <http://php.net/manual/en/language.oop5.paamayim-nekudotayim.php>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "replace the explicit name with self"

[example1]
project="WordPress"
file="wp-admin/includes/misc.php"
line="74"
code="
class Securimage 
{
// Lots of code
            Securimage::$_captchaId = $id;
}
";
explain="Securimage could be called self."

[example2]
project="LiveZilla"
file="livezilla/_lib/objects.global.users.inc.php"
line="1599"
code="
class Operator extends BaseUser 
{
    static function ReadParams()
    {
        if(!empty($_POST[POST_EXTERN_REQUESTED_INTERNID]))
            return Communication::GetParameter(POST_EXTERN_REQUESTED_INTERNID,"",$c,FILTER_SANITIZE_SPECIAL_CHARS,null,32);
        else if(!empty($_GET["operator"]))
        {
            $userid = Communication::GetParameter("operator","",$c,FILTER_SANITIZE_SPECIAL_CHARS,null,32,false,false);
            $sysid = Operator::GetSystemId($userid);
}
";
explain="Using self makes it obvious that Operator::GetSystemId() is a local call, while Communication::GetParameter() is external."
name = "Too Many Finds";
description = "Too many methods called 'find*' in this class. It is may be time to consider the `Specification pattern <https://en.wikipedia.org/wiki/Specification_pattern>`_.

<?php

// quite a fishy interface
interface UserInterface {
    public function findByEmail($email);
    public function findByUsername($username);
    public function findByFirstName($firstname);
    public function findByLastName($lastname);
    public function findByName($name);
    public function findById($id);

    public function insert($user);
    public function update($user);
}

?>

See also `On Taming Repository Classes in Doctrine <https://beberlei.de/2013/03/04/doctrine_repositories.html>`_ , 
`On Taming Repository Classes in Doctrine… Among other things. <http://blog.kevingomez.fr/2015/02/07/on-taming-repository-classes-in-doctrine-among-other-things/>`_,
`specifications <https://slides.pixelart.at/2017-02-04/fosdem/specifications/#/>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.10.5";name = "Parent, Static Or Self Outside Class";
description = "Parent, static and self keywords must be used within a class or a trait. They make no sens outside a class or trait scope, as self and static refers to the current class and parent refers to one of parent above.

PHP 7.0 and later detect their usage at compile time, and emits a fatal error.

<?php

class x {
    const Y = 1;
    
    function foo() {
        // self is \x
        echo self::Y;
    }
}

const Z = 1;
// This doesn't compile anymore
echo self::Z;

?>

Static may be used in a function or a closure, but not globally.";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Unresolved Instanceof";
description = "The instanceof operator doesn't confirm if the compared class exists. 

It checks if an variable is of a specific class. However, if the referenced class doesn't exist, because of a bug, a missed inclusion or a typo, the operator always fails, without a warning. 

<?php

namespace X {
    class C {}
    
    // This is OK, as C is defined in X
    if ($o instanceof C) { }

    // This is not OK, as C is not defined in global
    // instanceof respects namespaces and use expressions
    if ($o instanceof \C) { }

    // This is not OK, as undefinedClass
    if ($o instanceof undefinedClass) { }

    // This is not OK, as $class is now a full namespace. It actually refers to \c, which doesn't exist
    $class = 'C';
    if ($o instanceof $class) { }
}
?>

Make sure the following classes are well defined.

See also `Instanceof <http://php.net/manual/en/language.operators.type.php>`_.
";
clearphp = "no-unresolved-instanceof";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
modifications[] = "Remove the call to instanceof and all its dependencies.";
modifications[] = "Fix the class name and use a class existing in the project.";

[example1]
project="WordPress"
file="wp-admin/includes/misc.php"
line="74"
code="    private function resolveTag($match)
    {
        $tagReflector = $this->createLinkOrSeeTagFromRegexMatch($match);
        if (!$tagReflector instanceof Tag\SeeTag && !$tagReflector instanceof Tag\LinkTag) {
            return $match;
        }

";
explain="This code actually loads the file, join it, then split it again. file() would be sufficient. "


name = "Should Deep Clone";
description = "By default, PHP makes a shallow clone. It only clone the scalars, and keep the reference to any object already referenced. This means that the cloned object and its original share any object they hold as property.

This is where the magic method __clone() comes into play. It is called, when defined, at clone time, so that the cloned object may clone all the needed sub-objects.

It is recommended to use the __clone() method whenever the objects hold objects. 

<?php

class a {
    public $b = null;
    
    function __construct() {
        $this->b =  new Stdclass();
        $this->b->c = 1;
    }
}

class ab extends a {
    function __clone() {
        $this->b = clone $this->b;
    }
}

// class A is shallow clone, so $a->b is not cloned
$a = new a();
$b = clone $a;
$a->b->c = 3;
echo $b->b->c;
// displays 3

// class Ab is deep clone, so $a->b is cloned
$a = new ab();
$b = clone $a;
$a->b->c = 3;
echo $b->b->c;
// displays 1

?>

See also `PHP Clone and Shallow vs Deep Copying <http://jacob-walker.com/blog/php-clone-and-shallow-vs-deep-copying.html>`_ and 
         `Cloning objects <http://php.net/manual/en/language.oop5.cloning.php>`_.";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.7.0";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Missing Abstract Method";
description = "Abstract methods must have a non-abstract version for the class to be complete. A class that is missing one abstract definition cannot be instantiated.

<?php

// This is a valid definition
class b extends a {
    function foo() {}
    function bar() {}
}

// This compiles, but will emit a fatal error if instantiated
class c extends a {
    function bar() {}
}

// This illustration lint but doesn't run.
// moving this class at the beginning of the code will make lint fail
abstract class a {
    abstract function foo() ;
}

?>

See also `Classes Abstraction <https://www.php.net/manual/en/language.oop5.abstract.php>`_.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.1.0";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Implement the missing methods"
modifications[] = "Remove the partially implemented class"
modifications[] = "Mark the partially implemented class abstract"

; A PHP error that may be emitted by the target faulty code
phpError[] = "Class c contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (a::foo)"

; Optional parameters
;[parameter1]
;name="parametersCount";
;default="8";
;type="integer";
;description="Minimal number of parameters to report.";

name = "Method Could Be Static";
description = "A method that doesn't make any usage of $this could be turned into a static method. 

While static methods are usually harder to handle, recognizing the static status is a first step before turning the method into a standalone function.

<?php

class foo {
    static $property = 1;
    
    // legit static method
    static function staticMethod() {
        return self::$property;
    }

    // This is not using $this, and could be static
    function nonStaticMethod() {
        return self::$property;
    }

    // This is not using $this nor self, could be a standalone function
    function nonStaticMethod() {
        return self::$property;
    }
}

?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.5.7";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Make the method static"
modifications[] = "Make the method a standalone function"
modifications[] = "Make use of $this in the method : may be it was forgotten."

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

[example1]
project="FuelCMS"
file="fuel/modules/fuel/models/Fuel_assets_model.php"
line="240"
code="	public function get_file($file)
	{
		// if no extension is provided, then we determine that it needs to be decoded
		if (strpos($file, '.') === FALSE)
		{
			$file = uri_safe_decode($file);
		}
		return $file;
	}
";
explain="This method makes no usage of $this : it only works on the incoming argument, $file. This may even be a function."

[example2]
project="ExpressionEngine"
file="system/ee/legacy/libraries/Upload.ph"
line="859"
code="	/**
	 * List of Mime Types
	 *
	 * This is a list of mime types.  We use it to validate
	 * the "allowed types" set by the developer
	 *
	 * @param	string
	 * @return	string
	 */
	public function mimes_types($mime)
	{
		ee()->load->library('mime_type');
		return ee()->mime_type->isSafeForUpload($mime);
	}

";
explain="This method returns the list of mime type, by using a hidden global value : ee() is a functioncall that give access to the external storage of values."

name = "Has Magic Property";
description = "The class has defined one of the magic methods.

The magic methods are  : __call(), __callStatic(), __get(), __set(), __isset(), __unset(), __sleep(), __wakeup(), __toString(), __invoke(), __set_state(), __clone() and __debugInfo().

__construct() and __destruct() are omitted here. 

<?php

class WithMagic {
    // some more methods, const or properties
    
    public function __get() {
        // doSomething();
    }
}

?>

See also `Property overloading <http://php.net/manual/en/language.oop5.overloading.php#language.oop5.overloading.members>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Abstract Class Usage";
description = "List of all abstract classes being used.

<?php

abstract class foo {
    function foobar(); 
}

class bar extends foo {
    // extended method
    function foobar() {
        // doSomething()
    }

    // extra method
    function barbar() {
        // doSomething()
    }
}
?>

See also `Classes abstraction <http://php.net/abstract>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Could Be Protected Class Constant";
description = "Class constant may use 'protected' visibility. 

Since PHP 7.1, constants may also have a public/protected/private visibility. This restrict their usage to anywhere, class and children or class. 

As a general rule, it is recommended to make constant 'private' by default, and to relax this restriction as needed. PHP makes them public by default.

<?php

class foo {
    // pre-7.1 style
    const PRE_71_CONSTANT = 1;
    
    // post-7.1 style
    protected const PROTECTED_CONSTANT = 2;
    public const PUBLIC_CONSTANT = 3;
}

class foo2 extends foo {
    function bar() {
        // PROTECTED_CONSTANT may only be used in its class or its children
        echo self::PROTECTED_CONSTANT;
    }
}

class foo3 extends foo {
    function bar() {
        // PROTECTED_CONSTANT may only be used in its class or any of its children
        echo self::PROTECTED_CONSTANT;
    }
}

// Other constants may be used anywhere
function x($a = foo::PUBLIC_CONSTANT) {
    echo $a.' '.foo:PRE_71_CONSTANT;
}

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.12.11";name = "Used Protected Method";
description = "Marks methods being used in the current class or its children classes.

<?php

class foo {
    // This is reported
    protected usedByChildren() {}

    // This is not reported
    protected notUsedByChildren() {}
}

class bar extends foo {
    // The parent method is not overloaded, though it may be 
    protected someMethod() {
        // The parent method is called 
        $this->usedByChildren();
    }

}

?>

See also `Visibility <http://php.net/manual/en/language.oop5.visibility.php>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Wrong Class Name Case";
description = "The spotted classes are used with a different case than their definition. While PHP accepts this, it makes the code harder to read. 

It may also be a violation of coding conventions.

<?php

// This use statement has wrong case for origin.
use Foo as X;

// Definition of the class
class foo {}

// Those instantiations have wrong case
new FOO();
new X();

?>

See also `PHP class name constant case sensitivity and PSR-11 <https://gist.github.com/bcremer/9e8d6903ae38a25784fb1985967c6056>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Match the defined class name with the called name"

[example1]
project="WordPress"
file="wp-admin/includes/misc.php"
line="74"
code="$markerdata = explode( \"\n\", implode( '', file( $filename ) ) );";
explain="This code actually loads the file, join it, then split it again. file() would be sufficient. "
name = "DI Cyclic Dependencies";
description = "When injecting dependencies, classes that mutually depend on each other is a code smell. 

Dependency injection should be organized as an acyclic tree-like structure

<?php

// Classes A and B depends on each other. 
class A {
    protected $b;

    public function __construct(B $b) {
        $this->b = $b;
    }
}

class B {
    public $a;

    protected function setA(A $a) {
        $this->a = $a;
    }
}
?>

See also `Dependency Injection Smells <http://seregazhuk.github.io/2017/05/04/di-smells/>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.11.6";name = "Only Static Methods";
description = "Marks a class that has only static methods.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Final Class Usage";
description = "List of all final classes being used.

final may be applied to classes and methods.

<?php
class BaseClass {
   public function test() {
       echo 'BaseClass::test() called'.PHP_EOL;
   }
   
   final public function moreTesting() {
       echo 'BaseClass::moreTesting() called'.PHP_EOL;
   }
}

class ChildClass extends BaseClass {
   public function moreTesting() {
       echo 'ChildClass::moreTesting() called'.PHP_EOL;
   }
}
// Results in Fatal error: Cannot override final method BaseClass::moreTesting()
?>

See also `Final Keyword <http://php.net/manual/en/language.oop5.final.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
phpError[] = "Cannot override final method Foo::Bar()"name = "Redefined Property";
description = "Property redefined in a parent class. 

Using heritage, it is possible to define several times the same property, at different levels of the hierarchy.

<?php

class foo {
    protected $aProperty = 1;
}

class bar extends foo {
    // This property is redefined in the parent class, leading to potential confusion
    protected $aProperty = 1;
}

?>

When this is the case, it is difficult to understand which class will actually handle the property. 

In the case of a private property, the different instances will stay distinct. In the case of protected or public properties, they will all share the same value. 

It is recommended to avoid redefining the same property in a hierarchy. ";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
phpError[] = "Access level to xx::$x must be public (as in class x)"name = "Unused Private Properties";
description = "Unused static properties should be removed. 

Unused private properties are dead code. They are usually leftovers of development or refactorisation : they used to have a mission, but are now left. 

Being private, those properties are only accessible to the current class or trait. As such, validating the 

<?php

class foo {
    // This is a used property (see bar method)
    private $used = 1;

    // This is an unused property
    private $unused = 2;
    
    function bar($a) {
        $this->used += $a;
        
        return $this->used;
    }
}

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
modifications[] = "Remove the property altogether";
modifications[] = "Check if the property wasn't forgotten in the rest of the class";
modifications[] = "Check if the property is correctly named";
modifications[] = "Change the visibility to protected or public : may be a visibility refactoring was too harsh";
[example1]
project="OpenEMR"
file="entities/User.php"
line="46"
code="
class User
{
    /**
     * @Column(name=""id"", type=""integer"")
     * @GeneratedValue(strategy=""AUTO"")
     */
    private $id;

    /**
     * @OneToMany(targetEntity=""ONote"", mappedBy=""user"")
     */
    private $oNotes;

";
explain="This class has a long list of private properties. It also has an equally long (minus one) list of accessors, and a __toString() method which exposes all of them. $oNotes is the only one never mentionned anywhere. "
[example2]
project="phpadsnew"
file="lib/OA/Admin/UI/component/Form.php"
line="23"
code="
class OA_Admin_UI_Component_Form
    extends HTML_QuickForm
{
    private $dispatcher;
";
explain="$dispatcher is never used anywhere. "
name = "Unresolved Classes";
description = "The following classes are instantiated in the code, but their definition couldn't be found. 

<?php

class Foo extends Bar {
    private function foobar() {
        // here, parent is not resolved, as Bar is not defined in the code.
        return parent::$prop;
    }
}

?>

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Check for namespaces and aliases and make sure they are correctly configured."
name = "Too Many Children";
description = "Classes that have more than 15 children. It is worth checking if they cannot be refactored in anyway.

The threshold of 15 children can be configured. There is no technical limitation of the number of children and grand-children for a class. 

The analysis doesn't work recursively : only direct generations are counted. Only children that can be found in the code are counted. 

<?php

// parent class
// calling it grandparent to avoid confusion with 'parent'
class grandparent {}


class children1 extends grandparent {}
class children2 extends grandparent {}
class children3 extends grandparent {}
class children4 extends grandparent {}
class children5 extends grandparent {}
class children6 extends grandparent {}
class children7 extends grandparent {}
class children8 extends grandparent {}
class children9 extends grandparent {}
class children11 extends grandparent {}
class children12 extends grandparent {}
class children13 extends grandparent {}
class children14 extends grandparent {}
class children15 extends grandparent {}
class children16 extends grandparent {}
class children17 extends grandparent {}
class children18 extends grandparent {}
class children19 extends grandparent {}

?>

See also `Why is subclassing too much bad (and hence why should we use prototypes to do away with it)? <https://softwareengineering.stackexchange.com/questions/137687/why-is-subclassing-too-much-bad-and-hence-why-should-we-use-prototypes-to-do-aw>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
[parameter1]
name="childrenClassCount";
default="15";
type="integer";
description="Threshold for too many children classes for one class.";

modifications[] = "Split the original class into more specialised classes"

[example1]
project="Typo3"
file="typo3/sysext/backend/Classes/Form/AbstractNode.php"
line="26"
code="abstract class AbstractNode implements NodeInterface, LoggerAwareInterface { ";
explain="More than 15 children for this class : 15 is the default configuration."

[example2]
project="Woocommerce"
file="includes/abstracts/abstract-wc-rest-controller.php"
line="30"
code="class WC_REST_Controller extends WP_REST_Controller { ";
explain="This class is extended 22 times, more than the default configuration of 15."


name = "Non Static Methods Called In A Static";
description = "Static methods have to be declared as such (using the static keyword). Then, one may call them without instantiating the object.

PHP 7.0, and more recent versions, yield a deprecated error : ``Non-static method A::B() should not be called statically``.

PHP 5 and older doesn't check that a method is static or not : at any point, the code may call one method statically.

<?php
    class x {
        static public function sm( ) { echo __METHOD__.\n; }
        public public sm( ) { echo __METHOD__.\n; }
    } 
    
    x::sm( ); // echo x::sm 
    
    // Dynamic call
    ['x', 'sm']();
    [\x::class, 'sm']();

    $s = 'x::sm';
    $s();

?>

It is a bad idea to call non-static method statically. Such method may make use of special
variable $this, which will be undefined. PHP will not check those calls at compile time,
nor at running time. 

It is recommended to update this situation : make the method actually static, or use it only 
in object context.

Note that this analysis reports all static method call made on a non-static method,
even within the same class or class hierarchy. PHP silently accepts static call to any
in-family method.

<?php
    class x {
        public function foo( ) { self::bar() }
        public function bar( ) { echo __METHOD__.\n; }
    } 
?>

See also `Static Keyword <http://php.net/manual/en/language.oop5.static.php>`_.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

phpError[] = "Non-static method A::B() should not be called statically"

modifications[] = "Call the method the correct way"
modifications[] = "Define the method as static"

[example1]
project="Dolphin"
file="Dolphin-v.7.3.5/xmlrpc/BxDolXMLRPCFriends.php"
line="11"
code="class BxDolXMLRPCFriends
{
    function getFriends($sUser, $sPwd, $sNick, $sLang)
    {
        $iIdProfile = BxDolXMLRPCUtil::getIdByNickname ($sNick);

";
explain="getIdByNickname() is indeed defined in the class 'BxDolXMLRPCUtil' and it calls the database. The class relies on functions (not methods) to query the database with the correct connexion. "

[example2]
project="Magento"
file="app/code/core/Mage/Paypal/Model/Payflowlink.php"
line="143"
code="Mage_Payment_Model_Method_Abstract::isAvailable($quote)";
explain="Mage_Payment_Model_Method_Abstract is an abstract class : this way, it is not possible to instantiate it and then, access its methods. The class is extended, so it could be called from one of the objects. Although, the troubling part is that isAvailable() uses $this, so it can't be static. "
name = "Accessing Private";
description = "List of calls to private properties/methods that will compile but yield some fatal error upon execution.

<?php

class a {
    private $a;
}

class b extends a {
    function c() {
        $this->a;
    }
}

?>
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Normal Property";
description = "A normal property is not a static property.

<?php




?>
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Dependant Abstract Classes";
description = "Abstract classes should be autonomous. It is recommended to avoid depending on methods, constant or properties that should be made available in inheriting classes, without explicitly abstracting them.

The following abstract classes make usage of constant, methods and properties, static or not, that are not defined in the class. This means the inheriting classes must provide those constants, methods and properties, but there is no way to enforce this. 

This may also lead to dead code : when the abstract class is removed, the host class have unused properties and methods.

<?php

// autonomous abstract class : all it needs is within the class
abstract class c {
    private $p = 0;
    
    function foo() {
        return ++$this->p;
    }
}

// dependant abstract class : the inheriting classes needs to provide some properties or methods
abstract class c2 {
    function foo() {
        // $p must be provided by the extending class
        return ++$this->p;
    }
}

class c3 extends c2 {
    private $p = 0;
}
?>

See also Traits/DependantTrait.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.8.6";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Make the class only use its own resources"
modifications[] = "Split the class in autonomous classes"
modifications[] = "Add local property definitions to make the class independent"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Custom Class Usage";
description = "List of usage of custom classes throughout the code.";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Locally Used Property";
description = "Properties that are used in the class where they are defined. 

<?php

class foo {
    public $unused, $used;// property $unused is never used in this class
    
    function bar() {
        $this->used++; // property $used is used in this method
    }
}

$foo = new Foo();
$foo->unused = 'here'; // property $unused is used outside the class definition
?>
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Classes Mutually Extending Each Other";
description = "Those classes are extending each other, creating an extension loop. PHP will yield a fatal error at running time, even if it is compiling the code.

<?php

// This code is lintable but won't run
class Foo extends Bar { }
class Bar extends Foo { }

// The loop may be quite large
class Foo extends Bar { }
class Bar extends Bar2 { }
class Bar2 extends Foo { }

?>

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Assign Default To Properties";
description = "Properties may be assigned default values at declaration time. Such values may be later modified, if needed. 

<?php

class foo {
    private $propertyWithDefault = 1;
    private $propertyWithoutDefault;
    private $propertyThatCantHaveDefault;
    
    public function __construct() {
        // Skip this extra line, and give the default value above
        $this->propertyWithoutDefault = 1;

        // Static expressions are available to set up simple computation at definition time.
        $this->propertyWithoutDefault = OtherClass::CONSTANT + 1;

        // Arrays, just like scalars, may be set at definition time
        $this->propertyWithoutDefault = [1,2,3];

        // Objects or resources can't be made default. That is OK.
        $this->propertyThatCantHaveDefault = fopen('/path/to/file.txt');
        $this->propertyThatCantHaveDefault = new Fileinfo();
    }
}

?>

Default values will save some instructions in the constructor, and makes the value obvious in the code. ";
clearphp = "use-properties-default-values";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Add a default value whenever possible. This is easy for scalars, and array()";

[example1]
project="LiveZilla"
file="livezilla/_lib/functions.external.inc.php"
line="174"
code="class OverlayChat
{
    public $Botmode;
    public $Human;
    public $HumanGeneral;
    public $RepollRequired;
    public $OperatorCount;
    public $Flags;
    public $LastMessageReceived;
    public $LastPostReceived;
    public $IsHumanChatAvailable;
    public $IsChatAvailable;
    public $ChatHTML;
    public $OverlayHTML;
    public $PostHTML;
    public $FullLoad;
    public $LanguageRequired = false;
    public $LastPoster;
    public $EyeCatcher;
    public $GroupBuilder;
    public $CurrentOperatorId;
    public $BotTitle;
    public $OperatorPostCount;
    public $PlaySound;
    public $SpeakingToHTML;
    public $SpeakingToAdded;
    public $Version = 1;

    public static $MaxPosts = 50;
    public static $Response;

    function __construct()
    {
        $this->Flags = array();
        VisitorChat::$Router = new ChatRouter();
    }";
explain="Flags may default to array() in the class definition. Filled array(), with keys and values, are also possible. "

[example2]
project="phpMyAdmin"
file="libraries/classes/Console.ph"
line="55"
code="class Console
{
    /**
     * Whether to display anything
     *
     * @access private
     * @var bool
     */
    private $_isEnabled;

// some code ignored here
    /**
     * Creates a new class instance
     */
    public function __construct()
    {
        $this->_isEnabled = true;
";
explain="_isEnabled may default to true. It could also default to a class constant."


name = "Is Interface Method";
description = "Mark a method as part of an interface that the current class implements.

<?php

interface i {
    function i20();
}

class x implements i {
    // This is an interface method
    function i20() {}

    // This is not an interface method
    function x20() {}
}

?>
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Scalar Or Object Property";
description = "Property shouldn't use both object and scalar syntaxes. When a property may be an object, it is recommended to implement the Null Object pattern : instead of checking if the property is scalar, make it always object. 

<?php

class x {
    public $display = 'echo';
    
    function foo($string) {
        if (is_string($this->display)) {
            echo $this->string;
        } elseif ($this->display instanceof myDisplayInterface) {
            $display->display();
        } else {
            print "Error when displaying\n";
        }
    }
}

interface myDisplayInterface {
    public function display($string); // does the display in its own way
}

class nullDisplay implements myDisplayInterface {
    // implements myDisplayInterface but does nothing
    public function display($string) {}
}

class x2 {
    public $display = null;
    
    public function __construct() {
        $this->display = new nullDisplay();
    }
    
    function foo($string) {
        // Keep the check, as $display is public, and may get wrong values
        if ($this->display instanceof myDisplayInterface) {
            $display->display();
        } else {
            print "Error when displaying\n";
        }
    }
}

// Simple class for echo
class echoDisplay implements myDisplayInterface {
    // implements myDisplayInterface but does nothing
    public function display($string) {
        echo $string;
    }
}

?>

See also `Null Object Pattern <https://en.wikipedia.org/wiki/Null_Object_pattern#PHP>`_. and `The Null Object Pattern <https://www.sitepoint.com/the-null-object-pattern-polymorphism-in-domain-models/>`_.";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.12.3";

modifications[] = "Only use one type of syntax with your properties."

[example1]
project="SugarCrm"
file="SugarCE-Full-6.5.26/data/Link.php"
line="54"
code="class Link {

	/* Private variables.*/
	var $_log;
	var $_relationship_name; //relationship this attribute is tied to.
	var $_bean; //stores a copy of the bean.
	var $_relationship= '';

/// More code..... 

// line 92
		$this->_relationship=new Relationship();

";
explain="The _relationship property starts its life as a string, and becomes an object later. "


name = "Weak Typing";
description = "The test on a variable is not enough. The variable is checked for null, then used as an object or an array.

<?php

if ($a !== null) {
    echo $a->b;
}

?>

See also `From assumptions to assertions <https://rskuipers.com/entry/from-assumptions-to-assertions>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "1.2.8";
modifications[] = "Use instanceof when checking for objects"
modifications[] = "Use is_array() when checking for arrays. Also consider is_string(), is_int(), etc."
modifications[] = "Use typehint when the variable is an argument"
[example1]
project="TeamPass"
file="includes/libraries/Tree/NestedTree/NestedTree.php"
line="100"
code="    public function getDescendants($id = 0, $includeSelf = false, $childrenOnly = false, $unique_id_list = false)
    {
        global $link;
        $idField = $this->fields['id'];

        $node = $this->getNode($id);
        if (is_null($node)) {
            $nleft = 0;
            $nright = 0;
            $parent_id = 0;
            $personal_folder = 0;
        } else {
            $nleft = $node->nleft;
            $nright = $node->nright;
            $parent_id = $node->$idField;
            $personal_folder = $node->personal_folder;
        }";
explain="The is_null() test detects a special situation, that requires usage of default values. The 'else' handles every other situations, including when the $node is an object, or anything else. $this->getNode() will gain from having typehints : it may be NULL, or the results of mysqli_fetch_object() : a stdClass object. The expected properties of nleft and nright are not certain to be available."
name = "Could Be Private Class Constant";
description = "Class constant may use ``private`` visibility. 

Since PHP 7.1, constants may also have a public/protected/private visibility. This restrict their usage to anywhere, class and children or class. 

As a general rule, it is recommended to make constant ``private`` by default, and to relax this restriction as needed. PHP makes them public by default.

<?php

class foo {
    // pre-7.1 style
    const PRE_71_CONSTANT = 1;
    
    // post-7.1 style
    private const PRIVATE_CONSTANT = 2;
    public const PUBLIC_CONSTANT = 3;
    
    function bar() {
        // PRIVATE CONSTANT may only be used in its class
        echo self::PRIVATE_CONSTANT;
    }
}

// Other constants may be used anywhere
function x($a = foo::PUBLIC_CONSTANT) {
    echo $a.' '.foo:PRE_71_CONSTANT;
}

?>

Constant shall stay ``public`` when the code has to be compatible with PHP 7.0 and older. 

They also have to be public in the case of component : some of those constants have to be used by external actors, in order to configure the component.

See also `Class Constants <http://php.net/manual/en/language.oop5.constants.php>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.12.10";
[example1]
project="Phinx"
file="src/Phinx/Db/Adapter/MysqlAdapter.php"
line="46"
code="class MysqlAdapter extends PdoAdapter implements AdapterInterface
{

//.....
    const TEXT_SMALL   = 255;
    const TEXT_REGULAR = 65535;
    const TEXT_MEDIUM  = 16777215;
    const TEXT_LONG    = 4294967295;
";
explain="The code includes a fair number of class constants. The one listed here are only used to define TEXT columns in MySQL, with their maximal size. Since they are only intented to be used by the MySQL driver, they may be private."
name = "Dynamic Property";
description = "Dynamic access to class property.

<?php

class x {
    static public $foo = 1;
           public $bar = 2;
}

$staticproperty = 'foo';
// dynamic static property call to x::$foo
echo x::\${$staticproperty};

$property = 'bar';
// dynamic property call to bar()
$object = new x();
$object->$property = 4;

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "No Self Referencing Constant";
description = "It is not possible to use a constant to define itself in a class. It yields a fatal error at runtime. 

The PHP error reads : ``Cannot declare self-referencing constant 'self::C2'``. Unlike PHP which is self-referencing, self referencing variables can't have a value : just don't use that.

<?php
    class a { 
        const C1 = 1;         // fully defined constant
        const C2 = self::C2;  // self referencing constant
        const C3 = a::C3 + 2; // self referencing constant
    }
?>

The code may access an already declared constant with self or with its class name.

<?php
    class a { 
        const C1 = 1; 
        const C2 = a::C1; 
    }
?>

This error is not detected by linting. It is only detected at instantiation time : if the class is not used, it won't appear.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
modifications[] = "Give a literal value to this constant"
modifications[] = "Give a constant value to this constant : other class constants or constant are allowed here."name = "Defined Class Constants";
description = "Connect class constants with their definition when it can find it. This includes class constants, one level of parent (extended) or interfaces (implemented).

<?php

class X {
    const Y = 2;
    
    function foo() {
        // This is defined on the line above
        echo self::Y;

        // This is not defined in the current code
        echo X::X;
    }
}

?>
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Overwritten Class Const";
description = "Those class constants are overwritten in a parent class. This may lead to confusion, as the value of the constant may change depending on the way it is called.

<?php

class foo {
    const C = 1;
}

class bar extends foo {
    const C = 2;
    
    function x() {
        // depending on the access to C, value is different.
        print self::C.' '.static::C.' '.parent::C;
    }
}

?>

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Dynamic New";
description = "Dynamic instantiation of classes.

<?php
  $object = new $classname()
?>
.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Clone Usage";
description = "List of all clone situations.

<?php
    $dateTime = new DateTime();
    echo (clone $dateTime)->format('Y');
?>

See also `Object cloning <http://php.net/manual/en/language.oop5.cloning.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Defined Properties";
description = "List of properties that are explicitly defined in the class, its parents or traits.

<?php

class foo {
    // property definition
    private bar = 2;
}

?>

See also `Properties <http://php.net/manual/en/language.oop5.properties.php>`_.";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Incompatible Signature Methods With Covariance";
description = "Methods should have the compatible signature when being overwritten.

The same signatures means the children class must have : 
+ the same name
+ the same visibility or less restrictive
+ the same contravariant typehint or removed
+ the same covariant return typehint or removed
+ the same default value or removed
+ a reference like its parent

This problem emits a fatal error, for abstract methods, or a warning error, for normal methods. Yet, it is difficult to lint, because classes are often stored in different files. As such, PHP do lint each file independently, as unknown parent classes are not checked if not present. Yet, when executing the code, PHP lint the actual code and may encounter a fatal error.

<?php

class a {
    public function foo($a = 1) {}
}

class ab extends a {
    // foo is overloaded and now includes a default value for $a
    public function foo($a) {}
}

?>

See also `Object Inheritance <http://www.php.net/manual/en/language.oop5.inheritance.php>`_,
         `PHP RFC: Covariant Returns and Contravariant Parameters <https://wiki.php.net/rfc/covariant-returns-and-contravariant-parameters>`_ and 
         Classes/IncompatibleSignature.
";
clearphp = "";
severity = "S_CRITICAL";
timetofix = "T_QUICK";
exakatSince = "1.3.3";

modifications[] = "Make signatures compatible again";

phpError[] = "Declaration of ab::foo($a) should be compatible with a::foo($a = 1) "
phpError[] = "Declaration of ab::foo($a) must be compatible with a::foo($a = 1) "
phpError[] = "Could not check compatibility between xx::bar(B $a) and foo::bar(A $a), because class A is not available"

[example1]
project="SuiteCrm"
file="modules/Home/Dashlets/RSSDashlet/RSSDashlet.php"
line="138"
code="// File /modules/Home/Dashlets/RSSDashlet/RSSDashlet.php
    public function saveOptions(
        array $req
        )
    {

// File /include/Dashlets/Dashlets.php
    public function saveOptions( $req ) {

";
explain="The class in the RSSDashlet.php file has an 'array' typehint which is not in the parent Dashlet class. While both files compile separately, they yield a PHP warning when running : typehinting mismatch only yields a warning. "
name = "self, parent, static Outside Class";
description = "self, parent and static should be called inside a class or trait. PHP lint won't report those situations. 

self, parent and static may be used in a trait : their actual value will be only known at execution time, when the trait is used.

<?php
// In the examples, self, parent and static may be used interchangeably

// This raises a Fatal error
//Fatal error: Uncaught Error: Cannot access static:: when no class scope is active
new static();

// static calls
echo self::CONSTANTE;
echo self::$property;
echo self::method();

// as a type hint
function foo(static $x) {
    doSomething();
}

// as a instanceof
if ($x instanceof static) {
    doSomething();
}

?>

Such syntax problem is only revealed at execution time : PHP raises a Fatal error. 

The origin of the problem is usually a method that was moved outside a class, at least temporarily.

See also `Scope Resolution Operator (::) <http://php.net/manual/en/language.oop5.paamayim-nekudotayim.php>`_.

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.10.3";
phpError[] = "Cannot access static:: when no class scope is active"
phpError[] = "Cannot use \"parent\" when no class scope is active"
phpError[] = "Cannot use \"static\" when no class scope is active"
phpError[] = "Cannot use \"self\" when no class scope is active"name = "Magic Constant Usage";
description = "There are eight magical constants that change depending on where they are used. For example, the value of __LINE__ depends on the line that it's used on in your script. These special constants are case-insensitive.

+ __LINE__
+ __FILE__
+ __DIR__
+ __FUNCTION__
+ __CLASS__
+ __TRAIT__
+ __METHOD__
+ __NAMESPACE__


<?php

echo 'This code is in file '__FILE__.', line '.__LINE__;

?>

See also`Magic Constants <http://php.net/manual/en/language.constants.predefined.php>`_.
 ";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Constants With Strange Names";
description = "List of constants being defined with names that are incompatible with PHP standards. 

<?php

// Define a valid PHP constant
define('ABC', 1); 
const ABCD = 2; 

// Define an invalid PHP constant
define('ABC!', 1); 
echo defined('ABC!') ? constant('ABC!') : 'Undefined';

// Const doesn't allow illegal names

?>

See also `PHP Constants <http://php.net/manual/en/language.constants.php>`_.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Is Global Constant";
description = "Mark a constant that may fallback to a global const definition, even though it is in a namespace. 

This analysis skips PHP and ext's functions, namespaced constants. 

<?php

namespace X {

    const PHP_VERSION = 1;
    
    // Local constant
    echo PHP_VERSION; 
    
    // This constant fallsback to \E_ALL, unless DNS_NS is defined in this namespace
    echo E_ALL; 

    // This constant is always \DNS_NS
    echo \DNS_NS; 
    
    // This is a Notice
    echo UNDEFINED_CONSTANT;
}

?>

See also `$GLOBALS <http://php.net/manual/en/reserved.variables.globals.php>`_ and 
         `Variable scope <http://php.net/language.variables.scope>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Unused Constants";
description = "Those constants are defined in the code but never used. Defining unused constants slow down the application, as they are executed and stored in PHP hashtables. 

<?php

// const-defined constant
const USED_CONSTANT  = 0;
const UNUSED_CONSTANT = 1 + USED_CONSTANT;

// define-defined constant
define('ANOTHER_UNUSED_CONSTANT', 3);

?>

It is recommended to comment them out, and only define them when it is necessary.";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
name = "Constants Usage";
description = "List of constants being used.

<?php

const MY_CONST = 'Hello';

// PHP_EOL (native PHP Constant)
// MY_CONST (custom constant)
echo PHP_EOL . MY_CONST;

?>
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Const Or Define Preference";
description = "``Const`` and define() have almost the same functional use : they create constants. 

The analyzed code has less than 10% of one of them : for consistency reasons, it is recommended to make constant definition consistent. 

It is recommended to use ``const`` for global constants, as this keyword is processed at compile time, while define() is executed.

Note that define() used to allow the creation of case-insensitive constants, but this is deprecated since PHP 7.3 and will be removed in PHP 8.0.

<?php

    define('A1', 1);
    define('A2', 1);
    define('A3', 1);
    define('A4', 1);
    define('A5', 1);
    define('A6', 1);
    define('A7', 1);
    define('A8', 1);
    define('A9', 1);
    define('A10',1);
    
    const B = 3;
    
?>

See also `Constant definition <http://php.net/const>`_ and 
         `Define <http://php.net/define>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.3.9";name = "Strange Name For Constants";
description = "Those constants looks like a typo from other names.

<?php

// This code looks OK : DIRECTORY_SEPARATOR is a native PHP constant
$path = $path . DIRECTORY_SEPARATOR . $file;

// Strange name DIRECOTRY_SEPARATOR
$path = $path . DIRECOTRY_SEPARATOR . $file;

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.10.5";

modifications[] = "Fix any typo in the spelling of the constants"
modifications[] = "Tell us about common misspelling so we can upgrade this analysis"name = "Constant Dynamic Creation";
description = "Registering constant with dynamic values. Dynamic values include values read in external sources (files, databases, remote API, ... ), random sources (time, rand(), ...)

Dynamic constants are not possible with the ``const`` keyword, though static constant expression allows for a good range of combinations, including conditions. 

<?php

$a = range(0, 4);
foreach($array as $i) {
    define("A$i", $i);
    define("N$i", true);
}

define("C", 5);

?>


";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.6.7";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Constant Case Preference";
description = "Define() creates constants which are case sensitive or not. 

The analyzed code has less than 10% of one of them : for consistency reasons, it is recommended to make constant sentivity definition consistent. 

Note that define() used to allow the creation of case-sensitive constants, but this is deprecated since PHP 7.3 and will be removed in PHP 8.0.

<?php

    define('A1', 1);
    define('A2', 1);
    define('A3', 1);
    define('A4', 1);
    define('A5', 1);
    define('A6', 1);
    define('A7', 1);
    define('A8', 1);
    define('A9', 1);
    define('A10',1);
    
    define('A10',1, true);
    
?>

See also `Constant definition <http://php.net/const>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.3.8";

phpError[] = "Case-insensitive constants are deprecated. The correct casing for this constant is \"A\""name = "Undefined Constants";
description = "Constants definition can't be located.

Those constants are not defined in the code, and will raise errors, or use the fallback mechanism of being treated like a string. 

<?php

const A = 1;
define('B', 2);

// here, C is not defined in the code and is reported
echo A.B.C;

?>

It is recommended to define them all, or to avoid using them.

See also `Constants <http://php.net/manual/en/language.constants.php>`_.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Define the constant"
modifications[] = "Fix the name of the constant"
modifications[] = "Fix the namespace of the constant (FQN or use)"
modifications[] = "Remove the usage of the constant"

phpErrors[] = "Undefined constant 'A'";name = "Variable Constants";
description = "Variable constants are actually constants whose value is accessed via the function constant(). Otherwise, there is no way to dynamically access a constant (aka, when the developer has the name of the constant as a incoming parameter, and it requires the value of it). 

<?php

const A = 'constant_value';

$constant_name = 'A';

$variableConstant = constant($constant_name);

?>

See also `constant() <http://php.net/constant>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Custom Constant Usage";
description = "Using constants that were not defined in PHP extensions or PHP itself.

<?php

// display MY_CONSTANT : MY_CONSTANT is a user constant.
echo MY_CONSTANT;

// display PHP version : PHP_VERSION is a native PHP constant.
echo PHP_VERSION;

// MY_CONSTANT definition. 
const MY_CONSTANT;

?>

See also `PHP Constants <http://php.net/manual/en/language.constants.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Could Be Constant";
description = "Literals may be replaced by an existing constant. 

Constants makes the code easier to read, as they may bear a meaningful name. They also hide implementation values, with a readable name, such as ``const READABLE= true;``. Later, upgrading constant values is easier than scouring the code with a new literal. 

Not all literal can be replaced by a constant values : sometimes, literal may have the same literal value, but different meanings. Check with your application semantics before changing any literal with a constant.

<?php

const A = 'abc';
define('B', 'ab');

class foo {
    const X = 'abcd';
}

// Could be replaced by B;
$a = 'ab'; 

// Could be replaced by A;
$a = 'abc'; 

// Could be replaced by foo::X;
$a = 'abcd'; 

?>

This analysis currently doesn't support arrays. 

This analysis also skips very common values, such as boolean, ``0`` and ``1``. This prevents too many false positive.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.8.4";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Turn the literal into an existing constant"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Multiple Constant Definition";
description = "Some constants are defined several times in your code. This will lead to a fatal error, if they are defined during the same execution. 

Multiple definitions may happens at bootstrap, when the application code is collecting information about the current environment. It may also happen at inclusion time, which one set of constant being loaded, while other definition are not, avoiding conflict. Both are false positive. 

<?php

// OS is defined twice. 
if (PHP_OS == 'Windows') {
    define('OS', 'Win');
} else {
    define('OS', 'Other');
}

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
modifications[] = "Move the constants to a class, and include the right class based on control flow."
modifications[] = "Give different names to the constants, and keep the condition close to utilisation."
modifications[] = "Move the constants to an external configuration file : it will be easier to identify that those constants may change."
[example1]
project="Dolibarr"
file="htdocs/main.inc.php"
line="914"
code="// Constants used to defined number of lines in textarea
if (empty($conf->browser->firefox))
{
	define('ROWS_1',1);
	define('ROWS_2',2);
	define('ROWS_3',3);
	define('ROWS_4',4);
	define('ROWS_5',5);
	define('ROWS_6',6);
	define('ROWS_7',7);
	define('ROWS_8',8);
	define('ROWS_9',9);
}
else
{
	define('ROWS_1',0);
	define('ROWS_2',1);
	define('ROWS_3',2);
	define('ROWS_4',3);
	define('ROWS_5',4);
	define('ROWS_6',5);
	define('ROWS_7',6);
	define('ROWS_8',7);
	define('ROWS_9',8);
}";
explain="All is documented here : 'Constants used to defined number of lines in textarea'. Constants are not changing during an execution, and this allows the script to set values early in the process, and have them used later, in the templates. Yet, building constants dynamically may lead to confusion, when developpers are not aware of the change. "
[example2]
project="OpenConf"
file="modules/request.php"
line="71"
code="	if (isset($_GET['ocparams']) && !empty($_GET['ocparams'])) {
		$params = '';
		if (preg_match_all(\"/(\w+)--(\w+)_-/\", $_GET['ocparams'], $matches)) {
			foreach ($matches[1] as $idx => $m) {
				if (($m != 'module') && ($m != 'action') && preg_match(\"/^[\w-]+$/\", $m)) {
					$params .= '&' . $m . '=' . urlencode($matches[2][$idx]);
					$_GET[$m] = $matches[2][$idx];
				}
			}
		}
		unset($_GET['ocparams']);
		define('OCC_SELF', $_SERVER['PHP_SELF'] . '?module=' . $_REQUEST['module'] . '&action=' . $_GET['action'] . $params);
	} elseif (isset($_SERVER['REQUEST_URI']) && strstr($_SERVER['REQUEST_URI'], '?')) {
		define('OCC_SELF', htmlspecialchars($_SERVER['REQUEST_URI']));
	} elseif (isset($_SERVER['QUERY_STRING']) && strstr($_SERVER['QUERY_STRING'], '&')) {
		define('OCC_SELF', $_SERVER['PHP_SELF'] . '?' . htmlspecialchars($_SERVER['QUERY_STRING']));
	} else {
		err('This server does not support REQUEST_URI or QUERY_STRING','Error');
	}
";
explain="The constant is build according to the situation, in the part of the script (file request.php). This hides the actual origin of the value, but keeps the rest of the code simple. Just keep in mind that this constant may have different values."
name = "True False Inconsistant Case";
description = "TRUE or true or True is the favorite.

Usually, PHP projects choose between ALL CAPS True/False, or all lowercase True/False. Sometimes, the project will have no recommendations. 

When your project use a vast majority of one of the convention, then the analyzer will report all remaining inconsistently cased constant. 

<?php

$a1 = true;
$a2 = true;
$a3 = true;
$a4 = true;
$a5 = true;
$a6 = true;
$a7 = true;
$a8 = true;
$a9 = true;
$a10 = true;

// This convention is inconsistence with the rest
$b1 = TRUE;
?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Case Insensitive Constants";
description = "PHP constants may be case insensitive, when defined with define() and the third argument.

This feature is deprecated since PHP 7.3 and will be removed in PHP 8.0.

<?php

// case sensitive
define('A', 1);

// case insensitive
define('B', 1, true);

echo A;
// This is not possible
//echo a;

// both possible
echo B;
echo b;

?>

See also `define <http://php.net/manual/en/function.define.php>`_.

";
clearphp = "";
severity = "S_CRITICAL";
timetofix = "T_SLOW";
exakatSince = "1.3.9";

phpError[] = "define(): Declaration of case-insensitive constants is deprecated"name = "Constants Created Outside Its Namespace";
description = "Constants Created Outside Its Namespace.

Using the define() function, it is possible to create constant outside their namespace, but using the fully qualified namespace.

<?php

namespace A\B {
    // define A\B\C as 1
    define('C', 1);
}

namespace D\E {
    // define A\B\C as 1, while outside the A\B namespace
    define('A\B\C', 1);
}

?>

However, this makes the code confusing and difficult to debug. It is recommended to move the constant definition to its namespace.";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Bad Constants Names";
description = "PHP's manual recommends that developer do not use constants with the convention ``__NAME__``. Those are reserved for PHP future use. 

For example, ``__TRAIT__`` recently appeared in PHP, as a magic constant. In the future, other may appear. 

<?php

const __MY_APP_CONST__ = 1;

const __MY_APP_CONST__ = 1;

define('__MY_OTHER_APP_CONST__', 2);

?>

The analyzer will report any constant which name is ``__.*.__``, or even ``_.*_`` (only one underscore).

See also `Constants <http://php.net/manual/en/language.constants.php>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
modifications[] = "Avoid using names that doesn't comply with PHP's convention"
[example1]
project="PrestaShop"
file="src/PrestaShopBundle/Install/Upgrade.php"
line="214"
code="            require_once(INSTALL_PATH . 'install_version.php');
            // needed for upgrade before 1.5
            if (!defined('__PS_BASE_URI__')) {
                define('__PS_BASE_URI__', str_replace('//', '/', '/'.trim(preg_replace('#/(install(-dev)?/upgrade)$#', '/', str_replace('\\', '/', dirname($_SERVER['REQUEST_URI']))), '/').'/'));
            }
";
explain="INSTALL_PATH is a valid name for a constant. __PS_BASE_URI__ is not a valid name."
[example2]
project="Zencart"
file="zc_install/ajaxTestDBConnection.php"
line="10"
code="if (!defined('__DIR__')) define('__DIR__', dirname(__FILE__));";
explain="A case where PHP needs help : if the PHP version is older than 5.3, then it is valid to compensate. Though, this __DIR__ has a fixed value, wherever it is used, while the official __DIR__ change from dir to dir. "
name = "Invalid Constant Name";
description = "There is a naming convention for PHP constants names. 

According to PHP's manual, constant names, ' A valid constant name starts with a letter or underscore, followed by any number of letters, numbers, or underscores.'.

Constant, must follow this regex : ``/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/``.

In particular when defined using define() function, no error is produced. When using ``const``, on the other hand, the 

<?php

define('+3', 1); // wrong constant! 

echo constant('+3'); // invalid constant access

?>

See also `Constants <http://php.net/manual/en/language.constants.php>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
modifications[] = "Change constant name"
phpError[] ="syntax error, unexpected '-', expecting '='"
[example1]
project="OpenEMR"
file="library/classes/InsuranceCompany.class.php"
line="20"
code="define(\"INS_TYPE_OTHER_NON-FEDERAL_PROGRAMS\", 10);";
explain="Either a copy/paste, or a generated definition file : the file contains 25 constants definition. The constant is not found in the rest of the code. "
name = "Use const";
description = "The const keyword may be used to define constant, just like the define() function. 

When defining a constant, it is recommended to use 'const' when the features of the constant are not dynamical (name or value are known at compile time). 
This way, constant will be defined at compile time, and not at execution time. 

<?php
  //Do
  const A = 1;
  // Don't 
  define('A', 1);
  
?>

define() function is useful when the constant is not known at compile time, or when case sensitivity is necessary.

<?php
  // Read $a in database or config file
  define('A', $a);

  // Read $a in database or config file
  define('B', 1, true);
  echo b;
?>

See also `Syntax <http://php.net/manual/en/language.constants.syntax.php>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";

modifications[] = "Use const instead of define()"

[example1]
project="phpMyAdmin"
file="error_report.php"
line="17"
code="define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR)";
explain="This may be turned into a `const` call, with a static expression. "

[example2]
project="Piwigo"
file="include/functions_plugins.inc.php"
line="32"
code="define('EVENT_HANDLER_PRIORITY_NEUTRAL', 50)	";
explain="Const works efficiently with literal"
name = "Constants";
description = "List of PHP constants being defined.

<?php

// with const
const X = 1;

// with define()
define ('Y', 2);

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "PHP Constant Usage";
description = "List of PHP constants being used.

<?php

const MY_CONST = 'Hello';

// PHP_EOL (native PHP Constant)
// MY_CONST (custom constant, not reported)
echo PHP_EOL . MY_CONST;

?>

See also `Predefined Constants <http://php.net/manual/en/reserved.constants.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Is PHP Constant";
description = "Mark a constant if it is a PHP constant.

<?php

// This is an PHP constant
$a = HTML_ENTITIES;

// This is an PHP function
$a = CMS_ORDER;

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Conditioned Constants";
description = "Indicates if a constant will be defined only if a condition is met.

<?php

if (time() > 1519629617) {
    define('MY_CONST', false);
} else {
    define('MY_CONST', time() - 1519629617);
}

?>
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Is An Extension Constant";
description = "Mark a constant if it belongs to a known extension.

<?php

// JSON_HEX_AMP is a constant from ext/json
echo json_encode($object, JSON_HEX_AMP);

// JSON_HEX_AMP is a constant from ext/json
echo json_encode($object, JSON_HOAX_AMP);

?>

See also `Supported PHP Extensions <http://exakat.readthedocs.io/en/latest/Annex.html#supported-php-extensions>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Use Composer Lock";
description = "Reports if ``composer.lock`` was committed to the archive.";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.9.2";name = "Is Composer Class";
description = "Mark a class as part of Composer's library.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Composer Namespace";
description = "Mark this namespace as a Composer namespace.

When the namespace is found in the composer database, it is marked as such. 

<?php 

namespace Monolog;

use Monolog\Processor\WebProcessor;
use Monolog\Handler\TestHandler;

class MyLogger extends WebProcessor {
    /**/
}

?>

See also `Packagist <https://packagist.org/>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Composer Usage";
description = "Mark the usage of composer, mostly by having a ``composer.json`` file.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Composer's autoload";
description = "Is this code using the autoload from Composer.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Is Composer Interface";
description = "Mark interfaces as Composer interfaces.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "PHP 7.4 Removed Directives";
description = "List of directives that are removed in PHP 7.4.

+ allow_url_include

See `Deprecation allow_url_include <https://wiki.php.net/rfc/deprecations_php_7_4#allow_url_include>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.3";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Stop using this directive"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Use pathinfo() Arguments";
description = "pathinfo() has a second argument to select only useful data. 

It is twice faster to get only one element from pathinfo() than get the four of them, and use only one.

This analysis reports pathinfo() usage, without second argument, where only one or two indices are used, after the call.

<?php

// This could use only PATHINFO_BASENAME
function foo_db() {
    $a = pathinfo($file2);
    return $a['basename'];
}

// This could be 2 calls, with PATHINFO_BASENAME and PATHINFO_DIRNAME.
function foo_de() {
    $a = pathinfo($file3);
    return $a['dirname'].'/'.$a['basename'];
}

// This is OK : 3 calls to pathinfo() is slower than array access.
function foo_deb() {
    $a = pathinfo($file4);
    return  $a['dirname'].'/'.$a['filename'].'.'.$a['extension'];
}

?>

Depending on the situation, the functions dirname() and basename() may also be used. They are even faster, when only fetching those data.

See also `list <http://php.net/manual/en/function.list.php>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.12.12";

modifications[] = "Use PHP native function pathinfo() and its arguments"

[example1]
project=Zend-Config
file=src/Factory.php:74
line=90
code="        $pathinfo = pathinfo($filepath);

        if (! isset($pathinfo['extension'])) {
            throw new Exception\RuntimeException(sprintf(
                'Filename \"%s\" is missing an extension and cannot be auto-detected',
                $filename
            ));
        }

        $extension = strtolower($pathinfo['extension']);
        // Only $extension is used beyond that point
";
explain="The `$filepath` is broken into pieces, and then, only the 'extension' part is used. With the PATHINFO_EXTENSION constant used as a second argument, only this value could be returned. "
[example2]
project=ThinkPHP
file=ThinkPHP/Extend/Library/ORG/Net/UploadFile.class.php
line=508
code="    private function getExt($filename) {
        $pathinfo = pathinfo($filename);
        return $pathinfo['extension'];
    }
";
explain="Without any other check, pathinfo() could be used with PATHINFO_EXTENSION."
name = "Incoming Variables";
description = "Incoming names, used across the application. 

Incoming variables are first-level index in ``$_POST``, ``$_GET``, ``$_COOKIE``, ``$_REQUEST`` and ``$_FILE``;

``$_SESSION`` and ``$_ENV`` are not reported as incoming data, as they are not supposed to be manipulated by normal user. 

Dynamic names are not reported too.

<?php

$name = $_GET['name'];
$cookie = $_COOKIE['cookie'];

// 'archive' is the incoming variable, not 'file_name'
$file_name = $_FILE['archive']['file_name'];

// This is not reported, because it is from $_ENV.
$db_pass = $_ENV['DB_PASS'];

// This is not reported, because it is dynamic
$x = 'userId';
$userId = $_GET[$x];

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.12.16";name = "Must Call Parent Constructor";
description = "Some PHP native classes require a call to parent::__construct() to be stable. 

As of PHP 7.3, two classes currently need that call : SplTempFileObject and SplFileObject.

The error is only emitted if the class is instantiated, and a parent class is called. 

<?php

class mySplFileObject extends \SplFileObject {
    public function __construct()    { 
        // Forgottent call to parent::__construct()
    }
}

(new mySplFileObject())->passthru();
?>

See also `Why, php? WHY??? <https://gist.github.com/everzet/4215537>`_.

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "1.4.1";
phpError[] = "The parent constructor was not called: the object is in an invalid state"
modifications[] = "Add a call to the parent's constructor"
modifications[] = "Remove the extension of the parent class"name = "** For Exponent";
description = "The operator ``**`` calculates exponents, also known as power. 

Use it instead of the slower function pow(). This operator was introduced in PHP 5.6.

<?php
    $cube = pow(2, 3); // 8

    $cubeInPHP56 = 2 ** 3; // 8
?>

If the code needs to be backward compatible to 5.5 or less, don't use the new operator.

Be aware the the '-' operator has lower priority than the ** operator : this leads to the following confusing result.

<?php
    echo -3 ** 2;
    // displays -9, instead of 9
?>

This is due to the parser that processes separately ``-`` and the following number. Since ``**`` has priority, the power operation happens first.

Being an operator, ``**`` is faster than pow(). This is a microoptimisation. 

See also `Arithmetic Operators <http://php.net/manual/en/language.operators.arithmetic.php>`_.
";
clearphp = "";
phpversion = "5.6+";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Use the ``**`` operator";
modifications[] = "For powers of 2, use the bitshift operators";
modifications[] = "For literal powers of 2, consider using the ``0xFFFFFFFFF`` syntax.";


[example1]
project="Traq"
file="src/views/layouts/_footer.phtm"
line="5"
code="			<?=round((microtime(true) - START_TIME), 2); ?>s, <?php echo round((memory_get_peak_usage() - START_MEM) / pow(1024, 2), 3)?>mb";
explain="pow(1024, 2) could be (1023 ** 2), to convert bytes into Mb. "

[example2]
project="TeamPass"
file="includes/libraries/Authentication/phpseclib/Math/BigInteger.php"
line="286"
code="pow(2, 62)";
explain="pow(2, 62) could also be hard coded with 0x4000000000000000. "
name = "No List With String";
description = "list() can't be used anymore to access particular offset in a string. This should be done with substr() or $string[$offset] syntax.

<?php

$x = 'abc';
list($a, $b, $c) = $x;

//list($a, $b, $c) = 'abc'; Never works

print $c;
// PHP 5.6- displays 'c'
// PHP 7.0+ displays nothing

?>

See also `PHP 7.0 Backward incompatible changes <http://php.net/manual/en/migration70.incompatible.php>`_ : list() can no longer unpack string variables.

";
clearphp = "";
phpversion = "7.0-";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
name = "Avoid Real";
description = "PHP has two float data type : real and double. ``real`` is rarely used, and might be deprecated in PHP 7.4.

To prepare code, avoid using is_real() and the ``(real)`` typecast.

<?php

// safe way to check for float
if (!is_float($a)) {
    $a = (float) $a;
}

// Avoid doing that
if (!is_real($a)) {
    $a = (real) $a;
}

?>

See also `PHP RFC: Deprecations for PHP 7.4 <https://wiki.php.net/rfc/deprecations_php_7_4>`_.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "1.3.9";
modifications[] = "Replace is_real() by is_float()"
modifications[] = "Replace (real) by (float)"

phpError[] = "The (real) cast is deprecated, use (float) instead"name = "No Return For Generator";
description = "Return is not allowed in generator. In PHP versions older than 5.6 and older, they yield a fatal Error.

<?php

function generatorWithReturn() {
    yield 1;
    return 2;
}

?>

See also `Generators overview <http://php.net/manual/en/language.generators.overview.php>`_.
";
clearphp = "";
phpversion = "7.0+";
severity = "S_CRITICAL";
timetofix = "T_QUICK";
exakatSince = "1.4.9";
phpError[] = "Generators cannot return values using \"return\""name = "Logical Should Use Symbolic Operators";
description = "Logical operators come in two flavors :  and / &&, || / or, ^ / xor. However, they are not exchangeable, as && and and have different precedence. 

<?php

// Avoid lettered operator, as they have lower priority than expected
$a = $b and $c;
// $a === 3 because equivalent to ($a = $b) and $c;

// safe way to write the above : 
$a = ($b and $c);

$a = $b && $c;
// $a === 1

?>

It is recommended to use the symbol operators, rather than the letter ones.

See also `Logical Operators <http://php.net/manual/en/language.operators.logical.php>`_.

";
clearphp = "no-letter-logical";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
modifications[] = "Change the letter operators to the symbol one : and => &&, or => ||, xor => ^. Review the new expressions as processing order may have changed."
modifications[] = "Add parenthesis to make sure that the order is the expected one"
[example1]
project="Cleverstyle";
file="modules/Uploader/Mime/Mime.php";
line="171"
code="  $extension = pathinfo($reference_name, PATHINFO_EXTENSION) and static::hasExtension($extension);";
explain="$extension is assigned with the results of pathinfo($reference_name, PATHINFO_EXTENSION) and ignores static::hasExtension($extension). The same expression, placed in a condition (like an if), would assign a value to $extension and use another for the condition itself. Here, this code is only an expression in the flow."
[example2]
project="OpenConf"
file="chair/export.inc";
line="143"
code="	$coreFile = tempnam('/tmp/', 'ocexport') or die('could not generate Excel file (6)')";
explain="In this context, the priority of execution is used on purpose; $coreFile only collect the temporary name of the export file, and when this name is empty, then the second operand of OR is executed, though never collected. Since this second argument is a 'die', its return value is lost, but the initial assignation is never used anyway. "
name = "Coalesce";
description = "Usage of coalesce operator, in PHP since PHP 5.3.

Note that the coalesce operator is a special case of the ternary operator.

<?php

// Coalesce operator, since PHP 5.3
$a = $b ?: 'default value';

// Equivalent to $a = $b ? $b : 'default value';

?>

See also `Ternary Operator <http://php.net/manual/en/language.operators.comparison.php#language.operators.comparison.ternary>`_.
";
clearphp = "";
phpversion = "7.0+";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Concat And Addition";
description = "Precedence between addition and concatenation has changed. In PHP 7.4, addition has precedence, and before, addition and concatenation had the same precedence.

From the RFC : ``Currently the precedence of '.', '+' and '-' operators are equal. Any combination of these operators are simply evaluated left-to-right``.

This is counter-intuitive though: you rarely want to add or subtract concatenated strings which in general are not numbers. However, given PHP's capability of seamlessly converting an integer to a string, concatenation of these values is desired.``

<?php
// Extracted from the RFC
echo "sum: " . $a + $b;
 
// current behavior: evaluated left-to-right
echo ("sum: " . $a) + $b;
 
// desired behavior: addition and subtraction have a higher precendence
echo "sum :" . ($a + $b);

?>

This analysis reports any addition and concatenation that are mixed, without parenthesis. Addition also means substraction here, aka using `+` or `-`.

The same applies to bitshift operations, ``<<`` and ``>>``. There is no RFC for this change.

See also `Change the precedence of the concatenation operator <https://wiki.php.net/rfc/concatenation_precedence>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.8.0";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Add parenthesis around the addition to ensure its expected priority"
modifications[] = "Move the addition outside the concatenation"

; A PHP error that may be emitted by the target faulty code
phpError[] = "The behavior of unparenthesized expressions containing both '.' and '+'/'-' will change in PHP 8: '+'/'-' will take a higher precedence";
phpError[] = "The behavior of unparenthesized expressions containing both '.' and '>>'/'<<' will change in PHP 8: '<<'/'>>' will take a higher precedence";
name = "List Short Syntax";
description = "Usage of short syntax version of list().

<?php

// PHP 7.1 short list syntax
// PHP 7.1 may also use key => value structures with list
[$a, $b, $c] = ['2', 3, '4'];

// PHP 7.0 list syntax
list($a, $b, $c) = ['2', 3, '4'];

?>
";
clearphp = "";
phpversion = "7.1+";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Throw Was An Expression";
description = "Throw used to be an expression. In PHP 7.0, there were some location where one couldn't use a throw : this was the case for arrow functions, which expect one expression as function's body. 

Using throw as an instruction makes the code incompatible with PHP 7 version and older. 

<?php

// Valid in PHP 8.0 and more recent
$fn = fn($a) => throw new Exception($a);

?>

See also `Throw Expression <https://wiki.php.net/rfc/throw_expression>`_ and
         `Exceptions <https://www.php.net/manual/en/language.exceptions.php>`_.
";
clearphp = "";
severity = "S_MAJOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.1.1";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

; Optional parameters
;[parameter1]
;name="parametersCount";
;default="8";
;type="integer";
;description="Minimal number of parameters to report.";
name = "Yield Usage";
description = "Usage of generators, with yield keyword.

Yield was introduced in PHP 5.5, and is backward incompatible.

<?php

function prime() {
    $primes = [2, 3, 5, 7, 11, 13, 17, 19];
    foreach($primes as $prime) {
        yield $prime;
    }
}

?>

See also `Generator Syntax <http://php.net/manual/en/language.generators.syntax.php>`_,
         `Deal with Memory Gently using "Yield" in PHP <https://medium.com/tech-tajawal/use-memory-gently-with-yield-in-php-7e62e2480b8d>`_ and
         `Understanding PHP Generators <https://scotch.io/tutorials/understanding-php-generators>`_.

";
clearphp = "";
phpversion = "5.5+";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Autoloading";
description = "Usage of the autoloading feature of PHP. 

<?php

spl_autoload_register('my_autoloader');

// Old way to autoload. Deprecated in PHP 7.2
function __autoload($class ) {}

?>

Defining the __autoload() function is obsolete since PHP 7.2.

See also `__autoload <http://php.net/autoload>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Class Function Confusion";
description = "Avoid classes and functions bearing the same name. 

When functions and classes bear the same name, calling them may be confusing. This may also lead to forgotten 'new' keyword.

<?php

class foo {}

function foo() {}

// Forgetting the 'new' operator is easy
$object = new foo();
$object = foo();

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.10.2";

modifications[] = "Use a naming convention to distinguish functions and classes"
modifications[] = "Rename the class or the function (or both)"
modifications[] = "Use an alias with a `use` expression"

name = "Directives Usage";
description = "List of the directives mentioned in the code.

<?php

//accessing the configuration to change it
ini_set('timelimit', -1);

//accessing the configuration to check it
ini_get('safe_mode');

?>
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Nested Ternary Without Parenthesis";
description = "It is not allowed to nest ternary operator within itself, without parenthesis. This has been implemented in PHP 7.4.

The reason behind this feature is to keep the code expressive. See the Warning message for more explanations

<?php

$a ? 1 : ($b ? 2 : 3);

// Still valid, as not ambiguous 
$a ? $b ? 1 : 2 : 3;

// Produces a warning
//Unparenthesized `a ? b : c ? d : e` is deprecated. Use either `(a ? b : c) ? d : e` or `a ? b : (c ? d : e)`
$a ? 1 : $b ? 2 : 3;

?>

See also `PHP RFC: Deprecate left-associative ternary operator <https://wiki.php.net/rfc/ternary_associativity>`_.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.4";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Add parenthesis to nested ternary calls"

; A PHP error that may be emitted by the target faulty code
phpError[] = "Unparenthesized `a ? b : c ? d : e` is deprecated. Use either `(a ? b : c) ? d : e` or `a ? b : (c ? d : e)`"
name = "Deprecated Functions";
description = "The following functions are deprecated. It is recommended to stop using them now and replace them with a durable equivalent. 

Note that these functions may be still usable : they generate warning that help tracking their usage in the log. To eradicate their usage, watch the logs, and update any deprecated warning. This way, the code won't be stuck when the function is actually removed from PHP.

<?php

// This is the current function
list($day, $month, $year) = explode('/', '08/06/1995');

// This is deprecated
list($day, $month, $year) = split('/', '08/06/1995');

?>

";
clearphp = "no-deprecated";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Replace those deprecated with modern syntax"
modifications[] = "Stop using deprecated syntax"

[example1]
project="Dolphin"
file="Dolphin-v.7.3.5/inc/classes/BxDolAdminSettings.php"
line="270"
code="split(',', $aItem['extra']);";
explain="Split() was abandonned in PHP 7.0"
name = "Ticks Usage";
description = "Usage of declare(ticks = );.

<?php

// Setting ticks value
    declare(ticks = 'UTF-8');

?>

See also `declare <http://php.net/manual/en/control-structures.declare.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.12.1";name = "PHP Bugfixes";
description = "This is the list of features, used in the code, that also received a bug fix in recent PHP versions.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Incoming Values";
description = "The names of the variables that are passed via the superglobals.

<?php

$x = $_GET['y']; // y is the incoming variable

?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.7.7";

; Alternative to make this code go away. 
; One by possible solution
;modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Use Nullable Type";
description = "The code uses nullable type, available since PHP 7.1.

Nullable Types are an option to type hint : they allow the passing value to be null, or another type. 

According to the authors of the feature : 'It is common in many programming languages including PHP to allow a variable to be of some type or null. This null often indicates an error or lack of something to return.'

<?php

function foo(?string $a = 'abc') : ?string {
    return $a.b;
}

?>

See also `Type declarations <http://php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration>`_ and 
         `PHP RFC: Nullable Types <https://wiki.php.net/rfc/nullable_types>`_.

";
clearphp = "";
phpversion = "7.1+";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Use random_int()";
description = "rand() and mt_rand() should be replaced with random_int().

At worse, rand() should be replaced with mt_rand(), which is a drop-in replacement and srand() by mt_srand(). 

random_int() replaces rand(), and has no seeding function like srand().

Other sources of entropy that should be replaced by random_int() : microtime(), uniqid(), time(). Those a often combined with hashing functions and mixed with other sources of entropy, such as a salt.

<?php

// Avoid using this
$random = rand(0, 10);

// Drop-in replacement
$random = mt_rand(0, 10);

// Even better but different : 
// valid with PHP 7.0+
try {
    $random = random_int(0, 10);
} catch (\Exception $e) {
    // process case of not enoug random values
}

// This is also a source of entropy, based on srand()
// random_int() is a drop-in replacement here
$a = sha256(uniqid());

?>

Since PHP 7, random_int() along with random_bytes(), provides cryptographically secure pseudo-random bytes, which are good to be used
when security is involved. openssl_random_pseudo_bytes() may be used when the ``OpenSSL`` extension is available.

See also `CSPRNG <http://php.net/manual/en/book.csprng.php>`_ and `OpenSSL <http://php.net/manual/en/book.openssl.php>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
modifications[] = "Use random_bytes() and randon_int(). At least, use them as a base for random data, and then add extra prefix and suffix, and a hash call on top."
[example1]
project="Thelia"
file="core/lib/Thelia/Tools/TokenProvider.php"
line="151"
code="    /**
     * @return string
     */
    protected static function getComplexRandom()
    {
        $firstValue = (float) (mt_rand(1, 0xFFFF) * rand(1, 0x10001));
        $secondValues = (float) (rand(1, 0xFFFF) * mt_rand(1, 0x10001));

        return microtime() . ceil($firstValue / $secondValues) . uniqid();
    }";
explain="The whole function may be replaced by random_int(), as it generates random tokens. This needs an extra layer of hashing, to get a long and string results. "
[example2]
project="FuelCMS"
file="fuel/modules/fuel/libraries/Fuel.php"
line="235"
code="		$this->installer->change_config('config', '$config[\'encryption_key\'] = \'\';', '$config[\'encryption_key\'] = \''.md5(uniqid()).'\';');";
explain="Security tokens should be build with a CSPRNG source. uniqid() is based on time, and though it changes anytime (sic), it is easy to guess. Those days, it looks like '5b1262e74dbb9'; "
name = "Unpacking Inside Arrays";
description = "The variadic operator is now available inside arrays. Until PHP 7.4, it is not possible to use the variadic operator, or ``...`` inside arrays. 

The workaround is to use array_merge(), after checking that arrays are not empty.

<?php

$a = ['a', 'b', 'c'];
$b = ['d', 'e', 'f'];

// PHP 7.4 
$c = [...$a, ...$b];

// PHP 7.3 and older
$c = array_merge($a, $b);

?>

See also `Spread Operator in Array Expression  <https://wiki.php.net/rfc/spread_operator_for_array>`_ and 
         `PHP 5.6 and the Splat Operator <https://lornajane.net/posts/2014/php-5-6-and-the-splat-operator>`_ .
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.8.0";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Replace array_merge() with ``...``.";

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Use Web";
description = "The code is used in web environment.

The web usage is identified through the usage of the superglobals. 

<?php

// Accessing $_GET is possible when PHP is used in a web server.
$x = filter_validate($_GET['x'], FILTER_EMAIL);

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "PHP 7.1 Removed Directives";
description = "List of directives that are removed in PHP 7.1.";
clearphp = "";
phpversion = "7.1+";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Avoid mb_dectect_encoding()";
description = "mb_dectect_encoding() is bad at guessing encoding. 

For example, UTF-8 and ISO-8859-1 share some common characters : when a string is build with them it is impossible to differentiate the actual encoding.

<?php

$encoding = mb_encoding_detect($_GET['name']);

?>

See also `mb_encoding_detect <https://php.net/mb-encoding-detect>`_, 
         `PHP vs. The Developer: Encoding Character Sets <https://www.daganhenderson.com/blog/2013/07/php-encoding-character-sets>`_,
         `DPC2019: Of representation and interpretation: A unified theory - Arnout Boks <https://youtu.be/K2zS6vbBb9A?t=1375>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.8.9";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Store and transmit the data format"


; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Detect Current Class";
description = "Detecting the current class should be done with ::class operator.

__CLASS__ may be replaced by ``self::class``. 
get_called_class() may be replaced by ``static::class``. 

__CLASS__ and get_called_class() are set to be deprecated in PHP 7.4. 

<?php

class X {
    function foo() {
        echo __CLASS__."\n";          // X
        echo self::class."\n";        // X
        
        echo get_called_class()."\n";  // Y
        echo static::class."\n";       // Y
    }
}

class Y extends X {}

$y = new Y();
$y->foo();

?>

See also `PHP RFC: Deprecations for PHP 7.4 <https://wiki.php.net/rfc/deprecations_php_7_4>`_.
";
clearphp = "";
phpversion = "8.0-";
severity = "";
timetofix = "";
exakatSince = "1.3.8";

modifications[] = "Use the ::class operator to detect the current class name."name = "Foreach Don't Change Pointer";
description = "`foreach <http://php.net/manual/en/control-structures.foreach.php>`_ loops use their own internal cursor.

A foreach loop won't change the internal pointer of the array, as it works on a copy of the source. Hence, applying array pointer's functions such as current() or next() to the source array won't have the same behavior in PHP 5 than PHP 7.

This only applies when a foreach() by reference is used.

<?php

$numbers = range(1, 10);
next($numbers);
foreach($numbers as &$number){
    print $number;
    print current($numbers)."\n"; // Always 
}

?>

See also `foreach no longer changes the internal array pointer <http://php.net/manual/en/migration70.incompatible.php#migration70.incompatible.foreach.array-pointer>`_ and
         `foreach <http://php.net/manual/en/control-structures.foreach.php>`_.
";
clearphp = "";
phpversion = "7.0-";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Unknown Directive Name";
description = "Unknown directives names used in the code. 

The following list has directive mentioned in the code, that are not known from PHP or any extension. If this is due to a mistake, the directive must be fixed to be actually useful.

<?php

// non-existing directive
$reporting_error = ini_get('reporting_error');
$error_reporting = ini_get('error_reproting'); // Note the inversion
if (ini_set('dump_globals')) {
    // doSomething()
}

// Correct directives
$error_reporting = ini_get('reporting_error');
if (ini_set('xdebug.dump_globals')) {
    // doSomething()
}

?>
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "PHP Keywords As Names";
description = "PHP has a set of reserved keywords. It is recommended not to use those keywords for names structures. 

PHP does check that a number of structures, such as classes, methods, interfaces... can't be named or called using one of the keywords. However, in a few other situations, no check are enforced. Using keywords in such situation is confusing. 

<?php

// This keyword is reserved since PHP 7.2
class object {
    // _POST is used by PHP for the $_POST variable
    // This methods name is probably confusing, 
    // and may attract more than its share of attention
    function _POST() {
    
    }
}

?>

See also `List of Keywords <http://php.net/manual/en/reserved.keywords.php>`_,
         `Predefined Classes <http://php.net/manual/en/reserved.classes.php>`_,
         `Predefined Constants <http://php.net/manual/en/reserved.constants.php>`_,
         `List of other reserved words <http://php.net/manual/en/reserved.other-reserved-words.php>`_ and 
         `Predefined Variables <http://php.net/manual/en/reserved.variables.php>`_.

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
modifications[] = "Rename the structure";
modifications[] = "Choose another naming convention to avoid conflict and rename the current structures";

[parameter1]
name="reservedNames";
default="";
type="string";
description="Other reserved names : all in a string, comma separated.";
[parameter2]
name="allowedNames";
default="";
type="string";
description="PHP reserved names that can be used in the code. All in a string, comma separated.";


[example1]
project="ChurchCRM"
file="src/kiosk/index.php"
line="42"
code="if (!isset($_COOKIE['kioskCookie'])) {
    if ($windowOpen) {
        $guid = uniqid();
        setcookie(\"kioskCookie\", $guid, 2147483647);
        $Kiosk = new \ChurchCRM\KioskDevice();
        $Kiosk->setGUIDHash(hash('sha256', $guid));
        $Kiosk->setAccepted($false);
        $Kiosk->save();
    } else {
        header(\"HTTP/1.1 401 Unauthorized\");
        exit;
    }
}
";
explain="$false may be true or false (or else...). In fact, the variable is not even defined in this file, and the file do a lot of inclusion. "
[example2]
project="xataface"
file="Dataface/Record.php"
line="1278"
code="	function &getRelatedRecord($relationshipName, $index=0, $where=0, $sort=0){
		if ( isset($this->cache[__FUNCTION__][$relationshipName][$index][$where][$sort]) ){
			return $this->cache[__FUNCTION__][$relationshipName][$index][$where][$sort];
		}
		$it = $this->getRelationshipIterator($relationshipName, $index, 1, $where, $sort);
		if ( $it->hasNext() ){
			$rec =& $it->next();
			$this->cache[__FUNCTION__][$relationshipName][$index][$where][$sort] =& $rec;
			return $rec;
		} else {
			$null = null;	// stupid hack because literal 'null' can't be returned by ref.
			return $null;
		}
	}
";
explain="This one is documented, and in the end, makes a lot of sense."

name = "Unknown Pcre2 Option";
description = "``PCRE2`` supports different options, compared to ``PCRE1``. ``PCRE2`` was adopted with PHP 7.3. 

The ``S`` modifier : it used to tell PCRE to spend more time studying the regex, so as to be faster at execution. This is now the default behavior, and may be dropped from the regex.

The ``X`` modifier : ``X`` is still existing with ``PCRE2``, though it is now the default for ``PCRE2``, and not for PHP as time of writing. In particular, ``Any backslash in a pattern that is followed by a letter that has no special meaning causes an error, thus reserving these combinations for future expansion. ``. It is recommended to avoid using useless sequence \\s in regex to get ready for that change. All the following letters ``gijkmoqyFIJMOTY`` . Note that ``clLpPuU`` are valid ``PRCE`` sequences, and are probably failing for other reasons. 

<?php

// \y has no meaning. With X option, this leads to a regex compilation error, and a failed test.
preg_match('/ye\y/', $string);
preg_match('/ye\y/X', $string);

?>

See also `Pattern Modifiers <http://php.net/manual/en/reference.pcre.pattern.modifiers.php>`_ and 
         `PHP RFC: PCRE2 migration <https://wiki.php.net/rfc/pcre2-migration>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "1.0.4";name = "Manipulates INF";
description = "This code handles INF situations. INF represents the infinity, when used in a float context. It happens when a calculation returns a number that is much larger than the maximum allowed float (not integer), or a number that is not a Division by 0. 

<?php

// pow returns INF, as it is equivalent to 1 / 0 ^ 2
$a = pow(0,-2); // 

// exp returns an actual value, but won't be able to represent it as a float
$a = exp(PHP_INT_MAX); 

// 0 ^ -1 is like 1 / 0 but returns INF.
$a = pow(0, -1); 

var_dump(is_infinite($a));

// This yields a Division by zero exception
$a = 1 / 0; 

?>

See also `Math predefined constants <http://php.net/manual/en/math.constants.php>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.10.6";name = "PHP 7.0 Removed Directives";
description = "List of directives that are removed in PHP 7.0.";
clearphp = "";
phpversion = "7.0+";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "$HTTP_RAW_POST_DATA Usage";
description = "``$HTTP_RAW_POST_DATA`` is deprecated, and should be replaced by ``php://input``. 

``$HTTP_RAW_POST_DATA`` is deprecated since PHP 5.6.

It is possible to prepare code to this lack of feature by setting ``always_populate_raw_post_data`` to -1.

<?php

// PHP 5.5 and older
$postdata = $HTTP_RAW_POST_DATA;

// PHP 5.6 and more recent
$postdata = file_get_contents(php://input);

?>

See also `$HTTP_RAW_POST_DATA variable <http://php.net/manual/en/reserved.variables.httprawpostdata.php>`_.

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";

modifications[] = "Use php://input with fopen() instead."name = "Class Const With Array";
description = "Constant defined with const keyword may be arrays but only stating with PHP 5.6. Define never accept arrays : it only accepts scalar values.";
clearphp = "";
phpversion = "5.5+";
severity = "S_CRITICAL";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Exponent Usage";
description = "Usage of the ** operator or **=, to make exponents.

<?php

$eight = 2 ** 3;

$sixteen = 4;
$sixteen **= 2;

?>

See also `Arithmetic Operators <http://php.net/manual/en/language.operators.arithmetic.php>`_.

";
clearphp = "";
phpversion = "5.6+";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
name = "mb_strrpos() Third Argument";
description = "Passing the encoding as 3rd parameter to mb_strrpos() is deprecated. Instead pass a 0 offset, and encoding as 4th parameter.

<?php

// Finds the position of the last occurrence of of a string in a string, starting at position 10
$extract = mb_strrpos($haystack, $needle, 10, 'utf8');

// This is the old behavior. Here, the offset will be 0, by default
$extract = mb_strrpos($haystack, $needle, 'utf8');
?>

See also mb_strrpos().
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.8.9";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Too Many Native Calls";
description = "Avoid stuffing too many PHP native call inside another functioncall. 

For readability reasons, or, more often, for edge case handling, it is recommended to avoid nesting too many PHP native calls. 

This analysis reports any situation where more than 3 PHP native calls are nested.

<?php

// Too many nested functions 
$cleanArray = array_unique(array_keys(array_count_values(array_column($source, 'x'))));

// Avoid warning when source is empty
$extract = array_column($source, 'x');
if (empty($extract)) {
    $cleanArray = array();
} else {
    $cleanArray = array_unique(array_keys(array_count_values($extract)));
}

// This is not readable, although it is short. 
// It may easily get out of hand.
echo chr(80), chr(72), chr(80), chr(32), ' is great!';

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "1.1.10";

[parameter1]
name="nativeCallCounts";
default="3";
type="integer";
description="Number of native calls found inside another call.";

[example1]
project="SPIP"
file="/ecrire/xml/analyser_dtd.php"
line="58"
code="spip_log(\"Analyser DTD $avail $grammaire (\" . spip_timer('dtd') . \") \" . count($dtc->macros) . ' macros, ' . count($dtc->elements) . ' elements, ' . count($dtc->attributs) . \" listes d'attributs, \" . count($dtc->entites) . \" entites\")";
explain="This expression counts 4 usages of count(), which is more than the default level of 3 PHP calls in one expression. "
name = "List With Reference";
description = "Support for references in list calls is not backward compatible with older versions of PHP. The support was introduced in PHP 7.3.

<?php

$a = [1,2,3];

[$c, $d, $e] = $a;

$d++;
echo $a[2]; // Displays 4

?>

See also `list() Reference Assignment <https://wiki.php.net/rfc/list_reference_assignment>`_.

";
clearphp = "";
phpversion = "7.3+";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "1.1.6";name = "Group Use Trailing Comma";
description = "The usage of a final empty slot in array() was allowed with use statements. This works in PHP 7.2 and more recent.

Although this empty instruction is ignored at execution, this allows for clean presentation of code, and short diff when committing in a VCS.

<?php

// Valid in PHP 7.2 and more recent.
use a\b\{c, 
         d, 
         e, 
         f,
        };

// This won't compile in 7.1 and older.

?>

See also `Trailing Commas In List Syntax <https://wiki.php.net/rfc/list-syntax-trailing-commas>`_ and `Revisit trailing commas in function arguments <https://www.mail-archive.com/internals@lists.php.net/msg81138.html>`_.
";
clearphp = "";
phpversion = "7.2+";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "0.12.3";name = "New Functions In PHP 7.2";
description = "The following functions are now native functions in PHP 7.2. It is advised to change custom functions that are currently created, and using those names, before moving to this new version.

* mb_ord()
* mb_chr()
* mb_scrub()
* stream_isatty()
* proc_nice() (Windows only)

";
clearphp = "";
phpversion = "7.2-";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.10.7";

modifications[] = "Move custom functions with the same name to a new namespace"
modifications[] = "Change the name of any custom functions with the same name"
modifications[] = "Add a condition to the functions definition to avoid conflict"

name = "Ellipsis Usage";
description = "Usage of the ellipsis keyword. The keyword is three dots : ... . It is also named variadic or splat operator.

It may be in function definitions, either in functioncalls.

... allows for packing or unpacking arguments into an array.

<?php

$args = [1, 2, 3];
foo(...$args); 
// Identical to foo(1,2,3);

function bar(...$a) {
    // Identical to : $a = func_get_args();
}
?>

See also `PHP RFC: Syntax for variadic functions <https://wiki.php.net/rfc/variadics>`_,
         `PHP 5.6 and the Splat Operator <https://lornajane.net/posts/2014/php-5-6-and-the-splat-operator>`_, and
         `Variable-length argument lists <https://www.php.net/manual/en/functions.arguments.php#functions.variable-arg-list>`_.
";
clearphp = "";
phpversion = "5.6+";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "No More Curly Arrays";
description = "Only use square brackets to access array elements. The usage of curly brackets for array access is deprecated since PHP 7.4.

<?php

$array = [1,2,3];

// always valid
echo $array[1];

// deprecated in PHP 7.4
echo $array{1};

?>

See also `Deprecate curly brace syntax <https://derickrethans.nl/phpinternalsnews-19.html>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.2";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Always use square brackets"

; A PHP error that may be emitted by the target faulty code
phpError[] = "Array and string offset access syntax with curly braces is deprecated"
name = "Pear Usage";
description = "Pear Usage : list of Pear packages in use. 

<?php
    require_once('MDB2.php');
    $dsn = 'mysql://user:pass@host';
    $mdb2 = &MDB2::factory($dsn);
    $mdb2->setFetchMode(MDB2_FETCHMODE_ASSOC);
?>

See also `PEAR <http://pear.php.net/>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Alternative Syntax";
description = "Identify the usage of alternative syntax in the code, for If then, Switch, While, For and Foreach.

<?php

// Normal syntax
if ($a == 1) { 
    print $a;
}

// Alternative syntax : identical to the previous one.
if ($a == 1) : 
    print $a;
endif;

?>

See also `Alternative syntax <http://php.net/manual/en/control-structures.alternative-syntax.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "No String With Append";
description = "PHP 7 doesn't allow the usage of [] with strings. [] is an array-only operator.

<?php

$string = 'abc';

// Not possible in PHP 7
$string[] = 'd';

?>

This was possible in PHP 5, but is now forbidden in PHP 7.

";
clearphp = "";
phpversion = "7.0+";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";name = "Flexible Heredoc";
description = "Flexible syntax for Heredoc. 

The new flexible syntax for heredoc and nowdoc enable the closing marker to be indented, and remove the new line requirement after the closing marker.

It was introduced in PHP 7.3.

<?php

// PHP 7.3 and newer
foo($a = <<<END
    
    flexible syntax
    with extra indentation
    
    END);
    
// All PHP versions
$a = <<<END
    
    Normal syntax
    
END;
    
    
?>

This syntax is backward incompatible : once adopted in the code, previous versions won't compile it.

See also `Heredoc <http://php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc>`_ and 
         `Flexible Heredoc and Nowdoc Syntaxes <https://wiki.php.net/rfc/flexible_heredoc_nowdoc_syntaxes>`_.
";
clearphp = "";
phpversion = "7.3+";
severity = "S_CRITICAL";
timetofix = "T_INSTANT";
exakatSince = "1.2.9";name = "Do Not Cast To Int";
description = "Do not cast floats values to int. Uses conversion functions like intval(), round(), floor() or ceil() to convert the value to integer, with known behavior. 

Use functions like floor(), round() or ceil() : they use an explicit method for rounding, that helps keeping the side effects under control.

<?php

    // echoes 7!
    echo (int) ( (0.1 + 0.7) * 10 ); 

?>

See the warning on the docs about  `Integers <http://php.net/manual/en/language.types.integer.php>`_.
";
clearphp = "";
exakatSince = "0.10.6";name = "Yield From Usage";
description = "Usage of generator delegation, with ``yield from`` keyword.

In PHP 7, generator delegation allows you to yield values from another ``Generator``, ``Traversable`` object, or array by using the ``yield from``. 

``Yield from`` was introduced in PHP 7.1, and is backward incompatible.

<?php

// Yield delegation
function foo() {
    yield from bar();
}

function bar() {
    yield 1;
}

?>

See also `Generator Syntax <http://php.net/manual/en/language.generators.syntax.php>`_ and
         `Understanding PHP Generators <https://scotch.io/tutorials/understanding-php-generators>`_.

";
clearphp = "";
phpversion = "7.0+";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Encoding Usage";
description = "Usage of declare(encoding = );.

<?php

// Setting encoding for the file;
    declare(encoding = 'UTF-8');

?>

See also `declare <http://php.net/manual/en/control-structures.declare.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.12.1";name = "New Functions In PHP 5.6";
description = "PHP introduced new functions in PHP 5.6. If you have already defined functions with such names, you will get a conflict when trying to upgrade. It is advised to change those functions' name.
";
clearphp = "";
phpversion = "5.6-";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Hash Algorithms Incompatible With PHP 5.4/5.5";
description = "List of hash algorithms incompatible with PHP 5.4 and 5.5.

<?php

// Compatible only with 5.4 and more recent
echo hash('fnv132', 'The quick brown fox jumped over the lazy dog.');

// Always compatible
echo hash('ripemd320', 'The quick brown fox jumped over the lazy dog.');

?>

See also `hash_algos <http://php.net/hash_algos>`_.
";
clearphp = "";
phpversion = "5.4-";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";name = "set_exception_handler() Warning";
description = "The set_exception_handler() callable function has to be adapted to PHP 7 : ``Exception`` is not the right typehint, it is now ``Throwable``. 

When in doubt about backward compatibility, just drop the typehint. Otherwise, use ``Throwable``.

<?php

// PHP 5.6- typehint 
class foo { function bar(\Exception $e) {} }

// PHP 7+ typehint 
class foo { function bar(Throwable $e) {} }

// PHP 5 and PHP 7 compatible typehint (note : there is none)
class foo { function bar($e) {} }

set_exception_handler(foo);

?>

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "PHP 7.2 Scalar Typehints";
description = "A new scalar typehint was introduced : object. 

It can't be used before PHP 7.2, and will be confused with classes or interfaces.

<?php

function test(object $obj) : object
{
    return new SplQueue();
}

test(new StdClass());

?>

See also `New object type <http://php.net/manual/en/migration72.new-features.php#migration72.new-features.iterable-pseudo-type>`_, and 
         `PHP 7.2 and Object Typehint <http://blog.tekmi.nl/php-7-2-and-object-typehint/>`_.";
clearphp = "";
phpversion = "7.2+";
severity = "S_CRITICAL";
timetofix = "T_QUICK";
exakatSince = "1.3.5";name = "Caught Expressions";
description = "List of caught exceptions.

<?php

// This analyzer reports MyException and Exception
try {
    doSomething();
} catch (MyException $e) {
    fixIt();
} catch (\Exception $e) {
    fixIt();
}

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Use Cookies";
description = "This code source uses cookies. 

Cookie usage is spotted with the usage of setcookie(), setawcookie() and header() with the 'Set-Cookie' header. 

<?php

     header('Set-Cookie: '.$name.'='.$value.'; EXPIRES'.$date.';');

    // From the PHP Manual : 
    setcookie('TestCookie3', $value, time()+3600, '/~rasmus/', 'example.com', 1);

?>

See also : `Cookies <http://php.net/manual/en/features.cookies.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.10.6";name = "Group Use Declaration";
description = "The group use declaration is used in the code.

<?php

// Adapted from the RFC documentation 
// Pre PHP 7 code
use some\name_space\ClassA;
use some\name_space\ClassB;
use some\name_space\ClassC as C;

use function some\name_space\fn_a;
use function some\name_space\fn_b;
use function some\name_space\fn_c;

use const some\name_space\ConstA;
use const some\name_space\ConstB;
use const some\name_space\ConstC;

// PHP 7+ code
use some\name_space\{ClassA, ClassB, ClassC as C};
use function some\name_space\{fn_a, fn_b, fn_c};
use const some\name_space\{ConstA, ConstB, ConstC};

?>

See also `Group Use Declaration RFC <https://wiki.php.net/rfc/group_use_declarations>`_ and `Using namespaces: Aliasing/Importing <http://php.net/manual/en/language.namespaces.importing.php>`_.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.10.7";name = "Avoid Using stdClass";
description = "``stdClass`` is the default class for PHP. It is instantiated when PHP needs to return a object, but no class is specifically available.

It is recommended to avoid instantiating this class, nor use it is any way.

<?php

$json = '{"a":1,"b":2,"c":3}';
$object = json_decode($json);
// $object is a stdClass, as returned by json_decode

// Fast building of $o
$a = [];
$a['a'] = 1;
$a['b'] = 2;
$a['c'] = 3;
json_encode( (object) $a);

// Slow building of $o
$o = new stdClass();
$o->a = 1;
$o->b = 2;
$o->c = 3;
json_encode($o);

?>

If you need a ``stdClass`` object, it is faster to build it as an array, then cast it, than instantiate ``stdClass``. This is a micro-optimisation.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince="0.9.1";

modifications[] = "Create a custom class to handle the properties"
name = "Shell Favorite";
description = "PHP has several syntax to make system calls. shell_exec(), exec() and back-ticks, &#96; are the common ones.

It was found that one of those three is actually being used over 90% of the time. The remaining cases should be uniformed, so has to make this code consistent.

<?php

// back-ticks &#96; are only used once.
&#96;back-tick&#96;;

shell_exec('exec1');
shell_exec('exec2');
shell_exec('exec3');
shell_exec('exec4');
shell_exec('exec5');
shell_exec('exec6');
shell_exec('exec7');
shell_exec('exec8');
shell_exec('exec9');
shell_exec('exec10');
shell_exec('exec11');
shell_exec('exec12');

?>

See also `Execution Operators <http://php.net/manual/en/language.operators.execution.php>`_ and 
         `shell_exec() <http://php.net/manual/en/function.shell-exec.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.12.9";name = "Empty List";
description = "Empty list() are not allowed anymore in PHP 7. There must be at least one variable in the list call.

<?php

//Not accepted since PHP 7.0
list() = array(1,2,3);

//Still valid PHP code
list(,$x) = array(1,2,3);

?>

";
clearphp = "";
phpversion = "7.0-";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Remove empty list() calls"name = "PHP 7.0 New Classes";
description = "Those classes are now declared natively in PHP 7.0 and should not be declared in custom code. 

There are 8 new classes : 

* ``Error``
* ``ParseError``
* ``TypeError``
* ``ArithmeticError``
* ``DivisionByZeroError``
* ``ClosedGeneratorException``
* ``ReflectionGenerator``
* ``ReflectionType``
* ``AssertionError``

<?php

namespace {
    // Global namespace
    class Error {
        // Move to a namespace
        // or, remove this class
    }
}

namespace B {
    class Error {
        // This is OK : in a namespace
    }
}

?>

See also `New Classes and Interfaces <http://php.net/manual/en/migration70.classes.php>`_.
";
clearphp = "";
phpversion = "7.0-";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "PHP Overridden Function";
description = "It is possible to declare and use PHP native function in a namespace. 

Within the declaration namespace, it is easy to confuse the local version and the global version, unless the function has been prefixed with ``\``.

<?php

namespace A {
    use function A\dirname as split;
    
    function dirname($a, $b) { return __FUNCTION__; }
    
    echo dirname('/a/b/c');
    echo split('a', 'b');
    
    echo \dirname('/a/b/c');
}

?>

When a piece of code use overridden function, any newcomer may be confused by the usage of classic PHP native function in surprising situations. 

It is recommended to avoid redeclare PHP native function in namespaces.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.7.6";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Change the name of the function, in its declaration and usage."

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Strtr Arguments";
description = "Strtr() replaces characters by others in a string. When using strings, strtr() replaces characters as long as they have a replacement. All others are ignored.

In particular, strtr() works on strings of the same size, and cannot be used to remove chars.

<?php

$string = 'abcde';
echo strtr($string, 'abc', 'AB');
echo strtr($string, 'ab', 'ABC');
// displays ABcde 
// c is ignored each time

// strtr can't remove a char
echo strtr($string, 'a', '');
// displays a

?>

See also `strtr <http://www.php.net/strtr>`_.

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "1.2.3";
modifications[] = "Check the call to strtr() and make sure the arguments are of the same size"
modifications[] = "Replace strtr() with str_replace(), which works with strings and array, not chars"
modifications[] = "Replace strtr() with preg_match(), which works with patterns and not chars"
[example1]
project=SuiteCrm
file=includes/vCard.php
line=221
code="                    $values = explode(';', $value);
                    $key = strtoupper($keyvalue[0]);
                    $key = strtr($key, '=', '');
                    $key = strtr($key, ',', ';');
                    $keys = explode(';', $key);
";
explain="This code prepares incoming '$values' for extraction. The keys are cleaned then split with explode(). The '=' sign would stay, as strtr() can't remove it. This means that such keys won't be recognized later in the code, and gets omitted."
name = "Cant Use Return Value In Write Context";
description = "empty() used to work only on data containers, such as variables. Until PHP 5.5, it was not possible to use directly expressions, such as functioncalls, inside an empty() function call : they were met with a 'Can't use function return value in write context' fatal error. 

<?php

function foo($boolean) {
    return $boolean;
}

// Valid since PHP 5.5
echo empty(foo(true)) : 'true' : 'false';

?>

This also applies to methodcalls, static or not.

See also `Cant Use Return Value In Write Context <https://stackoverflow.com/questions/1075534/cant-use-method-return-value-in-write-context>`_.
";
clearphp = "";
phpversion = "5.5+";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "New Functions In PHP 7.3";
description = "New functions are added to new PHP version.

The following functions are now native functions in PHP 7.3. It is compulsory to rename any custom function that was created in older versions. One alternative is to move the function to a custom namespace, and update the ``use`` list at the beginning of the script. 

* `net_get_interfaces <http://php.net/net_get_interfaces>`_
* `gmp_binomial <http://php.net/gmp_binomial>`_
* `gmp_lcm <http://php.net/gmp_lcm>`_
* `gmp_perfect_power <http://php.net/gmp_perfect_power>`_
* `gmp_kronecker <http://php.net/gmp_kronecker>`_
* `openssl_pkey_derive <http://php.net/openssl_pkey_derive>`_
* `is_countable <http://php.net/is_countable>`_
* `ldap_exop_refresh <http://php.net/ldap_exop_refresh>`_

Note : At the moment of writing, all links to the manual are not working. 

";
clearphp = "";
phpversion = "7.3-";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.10.7";
name = "Session Variables";
description = "Sessions names, used across the application. 

<?php

if (isset($_SESSION['mySessionVariable'])) {
    $_SESSION['mySessionVariable']['counter']++;
} else {
    $_SESSION['mySessionVariable'] = array('counter'  => 1, 
                                           'creation' => time());
}

?>

See also `Sessions <http://php.net/manual/en/book.session.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.12.16";name = "Reflection Export() Is Deprecated";
description = "export() method in Reflection classes is now deprecated. It is obsolete since PHP 7.4 and will disappear in PHP 8.0.

The Reflector interface, which is implemented by all reflection classes, specifies two methods: __toString() and export(). 

<?php

ReflectionFunction::export('foo');
// same as
echo new ReflectionFunction('foo'), "\n";
 
$str = ReflectionFunction::export('foo', true);
// same as
$str = (string) new ReflectionFunction('foo');

?>

See also `Reflection export() methods <https://wiki.php.net/rfc/deprecations_php_7_4#reflection_export_methods>`_ and
         `Reflection <https://www.php.net/manual/en/book.reflection.php>`_.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.0";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Cast the object to string"
modifications[] = "Remove the call to export()"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Php 7.4 New Class";
description = "New classes, introduced in PHP 7.4. If classes where created with the same name, in current code, they have to be moved in a namespace, or removed from code to migrate safely to PHP 7.4.

The new classes are : 

+ ``ReflectionReference``
+ ``WeakReference``

<?php

namespace {
    // Global namespace
    class WeakReference {
        // Move to a namespace
        // or, remove this class
    }
}

namespace B {
    class WeakReference {
        // This is OK : in a namespace
    }
}

?>

";
clearphp = "";
phpversion = "7.2-";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "1.0.4";

modifications[] = "Move the current classes with the same names into a distinct domain name";name = "Possible Missing Subpattern";
description = "When capturing subpatterns are the last ones in a regex, PHP doesn't fill their spot in the resulting array. This leads to a possible missing index in the result array.

<?php

// displays a partial array, from 0 to 1
preg_match('/(a)(b)?/', 'adc', $r);
print_r($r);
/*
Array
(
    [0] => a
    [1] => a
)
*/

// displays a full array, from 0 to 2
preg_match('/(a)(b)?/', 'abc', $r);
print_r($r);

/*
Array
(
    [0] => ab
    [1] => a
    [2] => b
)
*/

// double 'b' when it is found
print preg_replace(',^a(b)?,', './$1$1', 'abc'); // prints ./abbc
print preg_replace(',^a(b)?,', './$1$1', 'adc'); // prints ./dc

?>
?>

The same applies to preg_replace() : the pattern may match the string, but no value is available is the corresponding sub-pattern.

In PHP 7.4, a new option was added : PREG_UNMATCHED_AS_NULL, which always provides a value for the subpatterns.

See also `Bug #50887 preg_match , last optional sub-patterns ignored when empty <https://bugs.php.net/bug.php?id=50887>`_ and 
         `Bug #73948 Preg_match_all should return NULLs on trailing optional capture groups. <https://bugs.php.net/bug.php?id=73948>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.6.1";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Add an always capturing subpatterns after the last ?"
modifications[] = "Move the ? inside the parenthesis, so the parenthesis is always on, but the content may be empty"
modifications[] = "Add a test on the last index of the resulting array, to ensure it is available when needed"
modifications[] = "Use the PREG_UNMATCHED_AS_NULL option (PHP 7.4+)"

[example1]
project="phpMyAdmin"
file="libraries/classes/Advisor.php"
line="557"
code="                if (preg_match(\"/rule\s'(.*)'( \[(.*)\])?$/\", $line, $match)) {
                    $ruleLine = 1;
                    $ruleNo++;
                    $rules[$ruleNo] = ['name' => $match[1]];
                    $lines[$ruleNo] = ['name' => $i + 1];
                    if (isset($match[3])) {
                        $rules[$ruleNo]['precondition'] = $match[3];
                        $lines[$ruleNo]['precondition'] = $i + 1;
                    }
";
explain="The last capturing subpattern is ``( \[(.*)\])?`` and it is optional. Indeed, when the pattern succeed, the captured values are stored in ``$match``. Yet, the code checks for the existence of ``$match[3]`` before using it."

[example2]
project="SPIP"
file="ecrire/inc/filtres_dates.php"
line="73"
code="			if (preg_match(\"#^([12][0-9]{3}[-/][01]?[0-9])([-/]00)?( [-0-9:]+)?$#\", $date, $regs)) {
				$regs = array_pad($regs, 4, null); // eviter notice php
				$date = preg_replace(\"@/@\", \"-\", $regs[1]) . \"-00\" . $regs[3];
			} else {
				$date = date(\"Y-m-d H:i:s\", strtotime($date));
			}

";
explain="This code avoid the PHP notice by padding the resulting array (see comment in French : eviter === avoid)";

name = "Labels";
description = "List of all labels used in the code. 

<?php

// A is label. 
goto A:

A:

// A label may be used by several gotos.
goto A:

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Incompilable Files";
description = "Files that cannot be compiled, and, as such, be run by PHP. Scripts are linted against various versions of PHP. 

This is usually undesirable, as all code must compile before being executed. It may be that such files are not compilable because they are not yet ready for an upcoming PHP version.

<?php

// Can't compile this : Print only accepts one argument
print $a, $b, $c;

?>

Code that is not compilable with older PHP versions means that the code is breaking backward compatibility : good or bad is project decision.

When the code is used as a template for PHP code generation, for example at installation time, it is recommended to use a distinct file extension, so as to distinguish them from actual PHP code.

";
clearphp = "no-incompilable";
severity = "S_CRITICAL";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
modifications[] = "If this file is a template for PHP code, change the extension to something else than .php"
modifications[] = "Fix the syntax so it works with various versions of PHP"
[example1]
project="xataface"
file="lib/XML/Tree.php"
line="289"
code=" syntax error, unexpected 'new' (T_NEW)	";
explain="Compilation error with PHP 7.2 version."

name = "Cast Usage";
description = "List of all cast usage.

PHP does not require (or support) explicit type definition in variable declaration; a variable's type is determined by the context in which the variable is used. 

<?php

if (is_int($_GET['x'])) {
    $number = (int) $_GET['x'];
} else {
    error_display('a wrong value was provided for \"x\"');
}

?>

Until PHP 7.2, a ``(unset)`` operator was available. It had the same role as ``unset()`` as a function.

See also `Type Juggling <http://php.net/manual/en/language.types.type-juggling.php>`_ and 
         `unset <http://php.net/unset>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Constant Scalar Expression";
description = "Since PHP 5.6, it is possible to use expression with Constants and default values. One may only use simple operators.

<?php

const THREE = 1 + 2;
const ARRAY = array(1,2,3);

?>

See also `New features <http://php.net/manual/en/migration56.new-features.php>`_.

";
clearphp = "";
exakatSince = "0.8.4";
name = "PHP 8.0 Removed Constants";
description = "The following PHP native constants were removed in PHP 8.0.

* INTL_IDNA_VARIANT_2003 (See `Deprecate and remove INTL_IDNA_VARIANT_2003 <https://wiki.php.net/rfc/deprecate-and-remove-intl_idna_variant_2003>`_)

";
clearphp = "";
severity = "S_CRITICAL";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.6.8";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Remove usage of INTL_IDNA_VARIANT_2003 and use "

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Functions Removed In PHP 5.4";
description = "Those functions were removed in PHP 5.4.

<?php

// Deprecated as of PHP 5.4.0
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$db_list = mysql_list_dbs($link);

while ($row = mysql_fetch_object($db_list)) {
     echo $row->Database . \"\n\";
}

?>

See also `Deprecated features in PHP 5.4.x <http://php.net/manual/en/migration54.deprecated.php>`_.
";
clearphp = "";
phpversion = "5.4-";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Typed Property Usage";
description = "Traditionally, PHP properties aren't typed. Since PHP 7.4, it is possible to type properties, just like arguments.

<?php

class User {
    public int $id;
    public string $name;
 
    public function __construct(int $id, string $name) {
        $this->id = $id;
        $this->name = $name;
    }
}
?>

See also `Typed Properties 2.0 <https://wiki.php.net/rfc/typed_properties_v2>`_.";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.6.2";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Uses Environment";
description = "Spot usage of $_ENV and getenv() putenv() functions that will fetch data from the environment.

<?php

// Take some configuration from the environment
$secret_key = getenv('secret_key');

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Crypto Usage";
description = "Usage of cryptography and hashes functions. 

The functions listed are the native PHP functions, and do not belong to a specific extension, like ``OpenSSL``, ``mcrypt`` or ``mhash``.

Cryptography and hashes are mainly used for storing sensitive data, such as passwords, or to verify authenticity of data. They may also be used for name-randomization with cache.

<?php

if (md5($_POST['password']) === $row['password_hash']) {
    user_login($user);
} else {
    error('Wrong password');
}
?>

See also `Cryptography Extensions <http://php.net/manual/en/refs.crypto.php>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.0.4";name = "PHP 7.2 Object Keyword";
description = "'object' is a PHP keyword. It can't be used for class, interface or trait name. 

This is the case since PHP 7.2. 

<?php

// Valid until PHP 7.2
class object {}

// Altough it is really weird anyway...

?>

See also `List of Keywords <http://php.net/manual/en/reserved.keywords.php>`_.

";
clearphp = "";
phpversion = "7.2-";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.12.4";name = "New Functions In PHP 7.4";
description = "New functions are added to new PHP version.

The following functions are now native functions in PHP 7.3. It is compulsory to rename any custom function that was created in older versions. One alternative is to move the function to a custom namespace, and update the ``use`` list at the beginning of the script. 

* `mb_str_split <http://php.net/mb_str_split>`_
* `password_algos <http://php.net/password_algos>`_

Note : At the moment of writing, all links to the manual are not working. 

";
clearphp = "";
phpversion = "7.3-";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "1.8.0";
name = "PHP Handlers Usage";
description = "PHP has a number of handlers that may be replaced by customized code : session, shutdown, error, exception. They are noted here.

The example is adapted from the PHP documentation of set_error_handler().

<?php
// error handler function
function myErrorHandler($errno, $errstr, $errfile, $errline)
{
    if (!(error_reporting() & $errno)) {
        // This error code is not included in error_reporting, so let it fall
        // through to the standard PHP error handler
        return false;
    }

    switch ($errno) {
    case E_USER_ERROR:
        echo '<b>My ERROR</b> [$errno] $errstr<br />'.PHP_EOL;
        echo '  Fatal error on line '.$errline.' in file .'$errfile;
        echo ', PHP ' . PHP_VERSION . ' (' . PHP_OS . ')<br />'.PHP_EOL;
        echo 'Aborting...<br />'.PHP_EOL;
        exit(1);
        break;

    case E_USER_WARNING:
        echo '<b>My WARNING</b> ['.$errno.'] '.$errstr.'<br />'.PHP_EOL;
        break;

    case E_USER_NOTICE:
        echo '<b>My NOTICE</b> ['.$errno.'] '.$errstr.'<br />'.PHP_EOL;
        break;

    default:
        echo 'Unknown error type: ['.$errno.'] $errstr<br />'.PHP_EOL;
        break;
    }

    /* Don't execute PHP internal error handler */
    return true;
}


// set to the user defined error handler
$old_error_handler = set_error_handler("myErrorHandler");

?>

See also `set_error_handler <http://www.php.net/set_error_handler>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Methodcall On New";
description = "It is possible to call a method right at object instantiation. 

This syntax was added in PHP 5.4+. Before, this was not possible : the object had to be stored in a variable first.

<?php

// Data is collected
$data = data_source();

// Data is saved, but won't be reused from this databaseRow object. It may be ignored.
$result = (new databaseRow($data))->save();

// The actual result of the save() is collected and tested.
if ($result !== true) {
    processSaveError($data);
}

?>

This syntax is interesting when the object is not reused, and may be discarded 

";
clearphp = "";
phpversion = "5.4+";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Functions Removed In PHP 5.5";
description = "Those functions were removed in PHP 5.5.

+ php_logo_guid()
+ php_egg_logo_guid()
+ php_real_logo_guid()
+ zend_logo_guid()
+ mcrypt_cbc()
+ mcrypt_cfb()
+ mcrypt_ecb()
+ mcrypt_ofb()

<?php

echo '<img src=\"' . $_SERVER['PHP_SELF'] .
     '?=' . php_logo_guid() . '\" alt=\"PHP Logo !\" />';

?>

See also `Deprecated features in PHP 5.5.x <http://php.net/manual/fr/migration55.deprecated.php>`_.

";
clearphp = "";
phpversion = "5.5-";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Stop using those functions"name = "Displays Text";
description = "Function calls that displays something to the output. 

<?php

// Displays de the content of $a
print $a;

// Displays de the content of $b
print_r($b);

// Returns de the content of $b, no display.
$c = var_export($b, true);

?>
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.10.9";name = "List With Appends";
description = "List() behavior has changed in PHP 7.0 and it has impact on the indexing when list is used with the [] operator. 

<?php

$x = array();
list($x[], $x[], $x[]) = [1, 2, 3];

print_r($x);

?>

In PHP 7.0, results are : 

<?literal
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)
?>

In PHP 5.6, results are : 

<?literal
Array
(
    [0] => 3
    [1] => 2
    [2] => 1
)
?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Logical Operators Favorite";
description = "PHP has two sets of logical operators : letters (and, or, xor) and chars (&&, ||, ^). 

The analyzed code has less than 10% of one of the two sets : for consistency reasons, it is recommended to make them all the same. 

Warning : the two sets of operators have different precedence levels. Using and or && is not exactly the same, especially and not only, when assigning the results to a variable. 

<?php 

$a1 = $b and $c;
$a1 = $b and $c;
$a1 = $b and $c;
$a1 = $b or $c;
$a1 = $b OR $c;
$a1 = $b and $c;
$a1 = $b and $c;
$a1 = $b and $c;
$a1 = $b or $c;
$a1 = $b OR $c;
$a1 = $b ^ $c;

?>

Using and or && are also the target of other analysis.

See also `Logical Operators <http://php.net/manual/en/language.operators.logical.php>`_ and `Operators Precedence <http://php.net/manual/en/language.operators.precedence.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.12.4";name = "Should Use Function";
description = "Functioncalls that fall back to global scope should be using 'use function' or be fully namespaced. 

PHP searches for functions in the local namespaces, and in case it fails, makes the same search in the global scope. Anytime a native function is referenced this way, the search (and fail) happens. This slows down the scripts.

The speed bump range from 2 to 8 %, depending on the availability of functions in the local scope. The overall bump is about 1 µs per functioncall, which makes it a micro optimisation until a lot of function calls are made.

Based on one of `Marco Pivetta tweet <https://twitter.com/Ocramius/status/811504929357660160>`_.

<?php

namespace X {
    use function strtolower as strtolower_aliased;
    
    // PHP searches for strtolower in X, fails, then falls back to global scope, succeeds.
    $a = strtolower($b);

    // PHP searches for strtolower in global scope, succeeds.
    $a = \strtolower($b);

    // PHP searches for strtolower_aliased in global scope, succeeds.
    $a = \strtolower_aliased($b);
}

?>

This analysis is a related to Performances/Php74ArrayKeyExists, and is a more general version. 

See also `blog post <http://veewee.github.io/blog/optimizing-php-performance-by-fq-function-calls/>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.9.5";

modifications[] = "Use the `use` command for arrray_key_exists(), at the beginning of the script"
modifications[] = "Use an initial \ before array_key_exists()"
modifications[] = "Remove the namespace"
name = "Hash Algorithms Incompatible With PHP 5.3";
description = "List of hash algorithms incompatible with PHP 5.3.

<?php

// Compatible only with 5.3 and more recent
echo hash('md2', 'The quick brown fox jumped over the lazy dog.');

// Always compatible
echo hash('ripemd320', 'The quick brown fox jumped over the lazy dog.');

?>

See also `hash_algos <http://php.net/hash_algos>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";name = "Close Tags";
description = "PHP manual recommends that script should be left open, without the final closing ?>. This way, one will avoid the infamous bug 'Header already sent', associated with left-over spaces, that are lying after this closing tag. ";
clearphp = "leave-last-closing-out";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
name = "$GLOBALS Or global";
description = "Usually, PHP projects make a choice between the global keyword, and the $GLOBALS variable. Sometimes, the project has no recommendations. 

When your project use a vast majority of one of the convention, then the analyzer will report all remaining inconsistently cased constant. 

<?php

global $a, $b, $c, $d, $e, $f, $g, $h, $i, $j, $k, $l, $m;

// This access is inconsistent with the previous usage
$GLOBALS['a'] = 2;

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.9.2";name = "__debugInfo() Usage";
description = "The magic method __debugInfo() provides a custom way to dump an object. 

It has been introduced in PHP 5.6. In the previous versions of PHP, this method is ignored and won't be called when debugging.

<?php

// PHP 5.6 or later
class foo {
    private $bar = 1;
    private $reallyHidden = 2;
    
    function __debugInfo() {
        return ['bar' => $this->bar,
                'reallyHidden' => 'Secret'];
    }
}

$f = new Foo();
var_dump($f);

/* Displays : 
object(foo)#1 (2) {
  [bar]=>
  int(1)
  [reallyHidden]=>
  string(6) Secret
}
*/

?>

See also `Magic methods <http://php.net/manual/en/language.oop5.magic.php>`_.
";
clearphp = "";
phpversion = "5.6+";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
[example1]
project="Dolibarr"
file="htdocs/includes/stripe/lib/StripeObject.php"
line="108"
code="    // Magic method for var_dump output. Only works with PHP >= 5.6
    public function __debugInfo()
    {
        return $this->_values;
    }

";
explain="_values is a private property from the Stripe Class. The class contains other objects, but only _values are displayed with var_dump."
name = "Error_Log() Usage";
description = "Usage of error_log() function. This leads to checking the configuration of ``error_log`` in the PHP configuration directives.

<?php

error_log("logging message\n");

?>
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.10.0";name = "Manipulates NaN";
description = "This code handles ``Not-a-Number`` situations. ``Not-a-Number``, also called ``NaN``, happens when a calculation can't return an actual float. 

<?php

// acos returns a float, unless it is not possible.
$a = acos(8);

var_dump(is_nan($a));

?>

See also `Floats <http://php.net/manual/en/language.types.float.php>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.10.6";name = "Use Contravariance";
description = "Contravariance is compatible argument typehint. A child class may accept an object of a parent class of the argument type of its parent's method.

Since a children class may accept a parent class of the argynebt type, the evolution is in opposite order. 

Contravariance is a PHP 7.4 feature. Contravariance is distinct from return type covariance.

<?php
class X {
  function m(Y $z): X {}
}

// m is overwriting the parent's method. 
// The return type is different.
// The return type is compatible, as Y is also a sub-class of X.
class Y extends X {
  function m(X $z): Y {}
}

?>

See also `Covariant Returns and Contravariant Parameters <https://wiki.php.net/rfc/covariant-returns-and-contravariant-parameters>`_ and 
         `Php/UseCovariance`.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.3";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Return With Parenthesis";
description = "return statement doesn't need parenthesis. PHP tolerates them with return statement, but it is recommended not to use them. 

From the PHP Manual : 'Note: Note that since return is a language construct and not a function, the parentheses surrounding its argument are not required and their use is discouraged.'.

<?php

function foo() {
    $a = rand(0, 10);

    // No need for parenthesis
    return $a;

    // Parenthesis are useless here
    return ($a);

    // Parenthesis are useful here: they are needed by the multplication.
    return ($a + 1) * 3;
}

?>

See also `PHP return(value); vs return value; <https://stackoverflow.com/questions/2921843/php-returnvalue-vs-return-value>`_ and 
         `return <https://www.php.net/manual/en/function.return.php>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Remove the parenthesis";

name = "Closure May Use $this";
description = "$this is automatically accessible to closures.

When closures were introduced in PHP, they couldn't use the $this variable, making is cumbersome to access local properties when the closure was created within an object. 

<?php

// Invalid code in PHP 5.4 and less
class Test
{
    public function testing()
    {
        return function() {
            var_dump($this);
        };
    }
}

$object = new Test;
$function = $object->testing();
$function();
    
?>

This is not the case anymore since PHP 5.4.

See also `Anonymous functions <http://php.net/manual/en/functions.anonymous.php>`_.
";
clearphp = "";
phpversion = "5.4-";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Non-lowercase Keywords";
description = "The usual convention is to write PHP keywords (like ``as``, ``foreach``, ``switch``, ``case``, ``break``, etc.) all in lowercase. 

<?php

// usual PHP convention
foreach($array as $element) {
    echo $element;
}

// unusual PHP conventions
Foreach($array AS $element) {
    eCHo $element;
}

?>

PHP understands them in lowercase, UPPERCASE or WilD Case, so there is nothing compulsory here. Although, it will look strange to many. 

Some keywords are missing from this analysis : ``extends``, ``implements``, ``as``. This is due to the internal engine, which doesn't keep track of them in its AST representation.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Use lowercase only PHP keywords, except for constants such as __CLASS__."name = "Trigger Errors";
description = "List of situations where user errors are triggered.

PHP errors are triggered with trigger_error().

<?php
if ($divisor == 0) {
    trigger_error('Cannot divide by zero', E_USER_ERROR);
}
?>

See also `trigger_error <http://php.net/trigger_error>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "PHP 7.1 Scalar Typehints";
description = "A new scalar typehint was introduced : iterable. 

It can't be used before PHP 7.1, and will be confused with classes or interfaces.

<?php

function foo(iterable $iterable) {
    foreach ($iterable as $value) {
        echo $value.PHP_EOL;
    }
}

foo(range(1,20)); 
// works with array

foo(new ArrayIterator([1, 2, 3])); 
// works with an iterator

foo((function () { yield 1; })() ); 
// works with a generator 

?>

See also `iterable pseudo-type <http://php.net/manual/en/migration71.new-features.php#migration71.new-features.iterable-pseudo-type>`_, and 
         `The iterable Pseudo-Type <https://knpuniversity.com/screencast/php7/iterable-type>`_.";
clearphp = "";
phpversion = "7.1+";
severity = "S_CRITICAL";
timetofix = "T_QUICK";
exakatSince = "1.3.5";name = "Trailing Comma In Calls";
description = "The last argument may be left empty. 

This feature was introduced in PHP 7.3. 

<?php
  
// VCS friendly call
// PHP 7.3 and more recent
foo(1,
    2,
    3,
   );

// backward compatible call
// All PHP versions
foo(1,
    2,
    3
   );
  
?>

See also `PHP RFC: Allow a trailing comma in function calls <https://wiki.php.net/rfc/trailing-comma-function-calls>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "1.4.0";name = "Reserved Keywords In PHP 7";
description = "PHP reserved names for class/trait/interface. They won't be available anymore in user space starting with PHP 7.

For example, string, float, false, true, null, resource,... are not acceptable as class name. 

<?php

// This doesn't compile in PHP 7.0 and more recent
class null { }

?>

See also `List of other reserved words <http://php.net/manual/en/reserved.other-reserved-words.php>`_.
";
clearphp = "";
phpversion = "7.0-";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Should Use SetCookie()";
description = "Use setcookie() or setrawcookie(). Avoid using header() to do so, as the PHP native functions are more convenient and easier to spot during a refactoring.

setcookie() applies some encoding internally, for the value of the cookie and the date of expiration. Rarely, this encoding has to be skipped : then, use setrawencoding().

Both functions help by giving a checklist of important attributes to be used with the cookie. 

<?php

// same as below
setcookie("myCookie", 'chocolate', time()+3600, "/", "", true, true);

// same as above. Slots for path and domain are omitted, but should be used whenever possible
header('Set-Cookie: myCookie=chocolate; Expires='.date('r', (time()+3600)).'; Secure; HttpOnly');

?>

See also `Set-Cookie <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie>`_,
         `setcookie <http://www.php.net/setcookie>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "0.10.6";

modifications[] = "Use setcookie() function, instead of header()"
modifications[] = "Use setcookie() function, instead of header()"name = "Unicode Escape Partial";
description = "PHP 7 introduces a new escape sequence for strings : \u{hex}. It is backward incompatible with previous PHP versions for two reasons : 

PHP 7 will recognize en replace those sequences, while PHP 5 keep them intact.
PHP 7 will halt on partial Unicode Sequences, as it tries to understand them, but may fail. 

<?php

echo \u{1F418}\n; 
// PHP 5 displays the same string
// PHP 7 displays : an elephant

echo \u{NOT A UNICODE CODEPOINT}\n; 
// PHP 5 displays the same string
// PHP 7 emits a fatal error

?>

Is is recommended to check all those strings, and make sure they will behave correctly in PHP 7. ";
clearphp = "";
phpversion = "7.0-";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "No Class In Global";
description = "Avoid defining structures in Global namespace. Always prefer using a namespace. This will come handy later, either when publishing the code, or when importing a library, or even if PHP reclaims that name. 

<?php

// Code prepared for later
namespace Foo {
    class Bar {}
}

// Code that may conflict with other names.
namespace {
    class Bar {}
}

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.10.9";

modifications[] = "Use a specific namespace for your classes"

[example1]
project="Dolphin"
file="Dolphin-v.7.3.5/inc/classes/BxDolXml.php"
line="10"
code="class BxDolXml { 
    /* class BxDolXML code */ 
}";
explain="This class should be put away in a 'dolphin' or 'boonex' namespace."
name = "Use === null";
description = "It is faster to use === null instead of is_null().

<?php

// Operator === is fast
if ($a === null) {

}

// Function call is slow 
if (is_null($a)) {

}


?>

";
clearphp = "avoid-those-slow-functions";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Use === comparison"name = "Define With Array";
description = "PHP 7.0 has the ability to define an array as a constant, using the define() native call. This was not possible until that version, only with the const keyword.

<?php

//Defining an array as a constant
define('MY_PRIMES', [2, 3, 5, 7, 11]);

?>

";
clearphp = "";
phpversion = "7.0+";
severity = "S_CRITICAL";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Hash Algorithms Incompatible With PHP 7.4-";
description = "List of hash algorithms incompatible with PHP 7.3 and older recent. At the moment of writing, this is compatible up to 7.4s. 

The hash algorithms were introduced in PHP 7.4s. 

<?php

// Compatible only with 7.1 and more recent
echo hash('crc32cs', 'The quick brown fox jumped over the lazy dog.');

// Always compatible
echo hash('ripemd320', 'The quick brown fox jumped over the lazy dog.');

?>

See also `hash_algos <http://php.net/hash_algos>`_.
";
clearphp = "";
phpversion = "7.4-";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "1.3.4";
name = "Hash Algorithms";
description = "There is a long but limited list of hashing algorithm available to PHP. The one found doesn't seem to be existing.

<?php

// This hash has existed in PHP. Check with hash_algos() if it is available on your system. 
echo hash('ripmed160', 'The quick brown fox jumped over the lazy dog.');

// This hash doesn't exist
echo hash('ripemd160', 'The quick brown fox jumped over the lazy dog.');

?>

See also `hash_algos <http://php.net/hash_algos>`_.

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
modifications[] = "Use a hash algorithm that is available on several PHP versions"
modifications[] = "Fix the name of the hash algorithm"name = "Php 7.2 New Class";
description = "New classes, introduced in PHP 7.2. If classes where created with the same name, in current code, they have to be moved in a namespace, or removed from code to migrate safely to PHP 7.2.

The new class is : HashContext.

<?php

namespace {
    // Global namespace
    class HashContext {
        // Move to a namespace
        // or, remove this class
    }
}

namespace B {
    class HashContext {
        // This is OK : in a namespace
    }
}

?>

";
clearphp = "";
phpversion = "7.2-";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "1.0.4";
name = "<?= Usage";
description = "Usage of the <?= tag, that echo's directly the following content.

<?= $variable; 
?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
name = "New Functions In PHP 5.5";
description = "PHP introduced new functions in PHP 5.5. If you have already defined functions with such names, you will get a conflict when trying to upgrade. It is advised to change those functions' name.
";
clearphp = "";
phpversion = "5.5-";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Short Open Tags";
description = "Usage of short open tags is discouraged. The following files were found to be impacted by the short open tag directive at compilation time. They must be reviewed to ensure no &lt;? tags are found in the code.";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Simple Global Variable";
description = "The global keyword should only be used with simple variables. Since PHP 7, it cannot be used with complex or dynamic structures.

<?php

// Forbidden in PHP 7
global $normalGlobal;

// Forbidden in PHP 7
global \$\$variable->global ;

// Tolerated in PHP 7
global \${\$variable->global};

?>
";
clearphp = "";
phpversion = "7.0-";
severity = "S_CRITICAL";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Use DateTimeImmutable Class";
description = "The DateTimeImmutable class is the immutable version of the Datetime class. 

While DateTime may be modified 'in situ', ``DateTimeImmutable`` cannot be modified. Any modification to such an object will return a new and distinct object. This avoid interferences that are hard to track.

<?php
// Example extracted from Derick Rethans' article (link below)

function formatNextMondayFromNow( DateTime $dt )
{
        return $dt->modify( 'next monday' )->format( 'Y-m-d' );
}

$d = new DateTime();                          //2014-02-17
echo formatNextMondayFromNow( $d ), "\n";
echo $d->format( 'Y-m-d' ), "\n";             //2014-02-17
?>

See also `What's all this 'immutable date' stuff, anyway? <https://medium.com/@codebyjeff/whats-all-this-immutable-date-stuff-anyway-72d4130af8ce>`_,
         `DateTimeImmutable <https://derickrethans.nl/immutable-datetime.html>`_, 
         `The DateTime class <https://www.php.net/manual/en/class.datetime.php>`_ and
         `The DateTimeImmutable class <https://www.php.net/manual/en/class.datetimeimmutable.php>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.8.7";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Always use DateTimeImmutable when manipulating dates."

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Scalar Are Not Arrays";
description = "It is wrong to use a scalar as an array, a Warning is emitted. PHP 7.4 emits a Warning in such situations.

<?php

// Here, $x may be null, and in that case, the echo will fail.
function foo(?A $x) { 
    echo $x[2]; 
}

?>

Typehinted argument with a scalar are reported by this analysis. Also, nullable arguments, both with typehint and return type hint.

See also `E_WARNING for invalid container read array-access <https://wiki.php.net/rfc/notice-for-non-valid-array-container>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.0";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Update type hints to avoid scalar values"

; A PHP error that may be emitted by the target faulty code
phpError[] = "Trying to access array offset on value of type null"
name = "preg_match_all() Flag";
description = "preg_match_all() has an option to configure the structure of the results : it is either by capturing parenthesis (by default), or by result sets. 

The second option is the most interesting when the following foreach() loop has to manipulate several captured strings at the same time. No need to use an index in the first array and use it in the other arrays.

<?php
$string = 'ababab';

// default behavior
preg_match_all('/(a)(b)/', $string, $r);
$found = '';
foreach($r[1] as $id => $s) {
    $found .= $s.$r[2][$id];
}

// better behavior
preg_match_all('/(a)(b)/', $string, $r, PREG_SET_ORDER);
$found = '';
foreach($r as $s) {
    $found .= $s[1].$s[2];
}

?>

The second syntax is easier to read and may be marginally faster to execute (preg_match_all() and foreach()).
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Use flags to adapt the results of preg_match_all() to your code, not the contrary."

[example1]
project="FuelCMS"
file="fuel/modules/fuel/helpers/MY_array_helper.php"
line="205"
code="	function parse_string_to_array($str)
	{
		preg_match_all('#(\w+)=([\'\"])(.*)\\2#U', $str, $matches);
		$params = array();
		foreach($matches[1] as $key => $val)
		{
			if (!empty($matches[3]))
			{
				$params[$val] = $matches[3][$key];
			}
		}
		return $params;
	}";
explain="Using PREG_SET_ORDER will remove the usage of the ``$key``variable."
name = "PHP 7.3 Last Empty Argument";
description = "PHP allows the last element of any functioncall to be empty. The argument is then not send.

This was introduced in PHP 7.3, and is not backward compatible.

The last empty line is easier on the VCS, allowing clearer text diffs. 

<?php

function foo($a, $b) {
    print_r(func_get_args());
}


foo(1, 
    2, 
    );

foo(1);


?>

See also `Allow a trailing comma in function calls <https://wiki.php.net/rfc/trailing-comma-function-calls>`_ and 
         `Trailing commas <https://www.puppetcookbook.com/posts/trailing-commas.html>`_.
";
clearphp = "";
phpversion = "7.3+";
severity = "S_CRITICAL";
timetofix = "T_QUICK";
exakatSince = "1.1.7";name = "__halt_compiler";
description = "__halt_compiler() usage.

<?php

// open this file
$fp = fopen(__FILE__, 'r');

// seek file pointer to data
fseek($fp, __COMPILER_HALT_OFFSET__);

// and output it
var_dump(stream_get_contents($fp));

// the end of the script execution
__halt_compiler(); the installation data (eg. tar, gz, PHP, etc.)

?>
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "PHP 7.0 Scalar Typehints";
description = "New scalar typehints were introduced : ``bool``, ``int``, ``float``, ``string``.

They cannot be used before PHP 7.0, and will be confused with classes or interfaces.

<?php

function foo(string $name) {
    print "Hello $name";
}

foo("Damien"); 
// display 'Hello Damien'

foo(33); 
// displays an error

?>

See also `Scalar type declarations <http://php.net/manual/en/migration70.new-features.php#migration70.new-features.scalar-type-declarations>`_, and 
         `PHP 7 SCALAR TYPE DECLARATIONS <https://tutorials.kode-blog.com/php-7-scalar-type-declarations>`_.";
clearphp = "";
phpversion = "7.0+";
severity = "S_CRITICAL";
timetofix = "T_QUICK";
exakatSince = "1.3.5";name = "No Reference For Ternary";
description = "The ternary operator and the null coalescing operator are both expressions that only return values, and not a variable. 

This means that any provided reference will be turned into its value. While this is usually invisible, it will raise a warning when a reference is expected. This is the case with methods returning a reference. 

A PHP notice is generated when using a ternary operator or the null coalesce operator : ``Only variable references should be returned by reference``. The notice is also emitted when returning objects. 

This applies to methods, functions and closures. 

<?php

// This works
function &foo($a, $b) { 
    if ($a === 1) {
        return $b; 
    } else {
        return $a; 
    }
}

// This raises a warning, as the operator returns a value
function &foo($a, $b) { return $a === 1 ? $b : $a; }

?>

See also `Null Coalescing Operator <http://php.net/manual/en/language.operators.comparison.php#language.operators.comparison.coalesce>`_, 
         `Ternary Operator <http://php.net/manual/en/language.operators.comparison.php#language.operators.comparison.ternary>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "1.0.8";
phpError[] = "Only variable references should be returned by reference"

modifications[] = "Drop the reference at assignation time"
modifications[] = "Drop the reference in the argument definition"
modifications[] = "Drop the reference in the function return definition"

[example1]
project="phpadsnew"
file="lib/OA/Admin/Menu/Section.php334"
line="334"
code="	function &getParentOrSelf($type)
	{
        if ($this->type == $type) {
            return $this;
        }
        else {
            return $this->parentSection != null ? $this->parentSection->getParentOrSelf($type) : null;
        }
	}
";
explain="The reference should be removed from the function definition. Either this method returns null, which is never a reference, or it returns $this, which is always a reference, or the results of a methodcall. The latter may or may not be a reference, but the Ternary operator will drop it and return by value. "
name = "No Substr Minus One";
description = "Negative index were introduced in PHP 7.1. This syntax is not compatible with PHP 7.0 and older.

<?php
$string = 'abc';

echo $string[-1]; // c

echo $string[1]; // a

?>

See also `Generalize support of negative string offsets <https://wiki.php.net/rfc/negative-string-offsets>`_.
";
clearphp = "";
phpversion = "7.1+";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.12.5";

modifications[] = "Use the -1 index in a string, instead of a call to substr()"name = "Unicode Escape Syntax";
description = "Usage of the Unicode Escape syntax, with the ``\u{xxxxx}`` format, available since PHP 7.0.

<?php

// Produce an elephant icon in PHP 7.0+
echo \u{1F418};

// Produce the raw sequence in PHP 5.0
echo \u{1F418};

?>

See also `PHP RFC: Unicode Codepoint Escape Syntax <https://wiki.php.net/rfc/unicode_escape>`_,
         `Code point <https://en.wikipedia.org/wiki/Code_point>`_ and 
         `Unicode <https://en.wikipedia.org/wiki/Unicode>`_.
";
clearphp = "";
phpversion = "7.0+";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Const With Array";
description = "The const keyword supports array. This feature was added in PHP 5.6. 

The array must be filled with other constants. It may also be build using the '+' operator. 

<?php

const PRIMES = [2, 3, 5, 7];

class X {
    const TWENTY_THREE = 23;
    const MORE_PRIMES = PRIMES + [11, 13, 17, 19];
    const EVEN_MORE_PRIMES = self::MORE_PRIMES + [self::TWENTY_THREE];
}

?>

See also `Class Constants <http://php.net/manual/en/language.oop5.constants.php>`_ and 
         `Constants Syntax <http://php.net/manual/en/language.constants.syntax.php>`_.

";
clearphp = "";
phpversion = "5.5+";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Declare strict_types Usage";
description = "Usage of ``strict_types``. By default, PHP attempts to change the original type to match the type specified by the type-declaration. With an explicit ``strict_types`` declaration, PHP ensures that the incoming argument has the exact type. 

``strict_types`` were introduced in PHP 7.0.

<?php

// Setting strict_types;
    declare(strict_types = 1);

    function foo(int $i) {
        echo $i;
    }

    // Always valid : displays 1
    foo(1);
    // with strict types, this emits an error
    // without strict types, this displays 1
    foo(1.7);

?>

See also `declare <http://php.net/manual/en/control-structures.declare.php>`_.
";
clearphp = "";
phpversion = "7.0+";
severity = "";
timetofix = "";
exakatSince = "0.12.1";name = "Argon2 Usage";
description = "Argon2 is an optionally compiled password hashing API. 

Argon2 has been added to the password hashing API in PHP 7.2. 

It is not available in older version. It also requires PHP to be compiled with the --with-password-argon2 option. 

<?php

// Hashing a password with argon2
$hash = password_hash('password', PASSWORD_ARGON2I, ['memory_cost' => 1<<17, 
                                                     'time_cost'   => PASSWORD_ARGON2_DEFAULT_TIME_COST, 
                                                     'threads'     => PASSWORD_ARGON2_DEFAULT_THREADS]);

?>

See also `Argon2 Password Hash <https://wiki.php.net/rfc/argon2_password_hash>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.0.4";name = "Signature Trailing Comma";
description = "Trailing comma in method signature. This feature was added in PHP 8.0. 

Allowing the trailing comma makes it possible to reduce the size of VCS's diff, when adding , removing a parameter.

<?php

// Example from the RFC
class Uri {
    private function __construct(
        ?string $scheme,
        ?string $user,
        ?string $pass,
        ?string $host,
        ?int $port,
        string $path,
        ?string $query,
        ?string $fragment // <-- ARGH!
    ) {
        ...
    }
}
?>

See also `PHP RFC: Allow trailing comma in parameter list <https://wiki.php.net/rfc/trailing_comma_in_parameter_list>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.1.0";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

; Optional parameters
;[parameter1]
;name="parametersCount";
;default="8";
;type="integer";
;description="Minimal number of parameters to report.";
name = "Should Use array_filter()";
description = "Should use array_filter().

array_filter() is a native PHP function, that extract elements from an array, based on a closure or a function. Using array_filter() shortens your code, and allows for reusing the filtering logic across the application, instead of hard coding it every time.

<?php

$a = range(0, 10); // integers from 0 to 10

// Extracts odd numbers
$odds = array_filter($a, function($x) { return $x % 2; });
$odds = array_filter($a, 'odd');

// Slow and cumbersome code for extracting odd numbers
$odds = array();
foreach($a as $v) {
    if ($a % 2) { // same filter than the closure above, or the odd function below
        $bColumn[] = $v;
    }
}

function foo($x) {
    return $x % 2; 
}

?>

array_filter() is faster than foreach() (with or without the isset() test) with 3 elements or more, and it is significantly faster beyond 5 elements. Memory consumption is the same.

See also `array_filter <https://php.net/array_filter>`_.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "1.0.7";

modifications[] = "Use array_filter()";

[example1]
project="xataface"
file="actions/manage_build_index.php"
line="38"
code="		$indexable = array();
		foreach ( $tables as $key=>$table ){
			if ( preg_match('/^dataface__/', $table) ){
				continue;
			}
			if ( preg_match('/^_/', $table) ){
				continue;
			}
			
			if ( $index->isTableIndexable($table) ){
				$indexable[] = $table;
				//unset($tables[$key]);
			}
			
		}";
explain="This selection process has three tests : the two first are exclusive, and the third is inclusive. They could fit in one or several closures."

[example2]
project="shopware"
file="engine/Shopware/Bundle/StoreFrontBundle/Service/Core/VariantCoverService.php"
line="71"
code="        $covers = $this->variantMediaGateway->getCovers(
            $products,
            $context
        );

        $fallback = [];
        foreach ($products as $product) {
            if (!array_key_exists($product->getNumber(), $covers)) {
                $fallback[] = $product;
            }
        }
";
explain="Closure would be the best here, since $covers has to be injected in the array_filter callback. "
name = "Goto Names";
description = "List of all goto labels used in the code. 

<?php

GOTO_NAME_1: 

// reports the usage of GOTO_NAME_1
goto GOTO_NAME_1;

UNUSED_GOTO_NAME_1: 

?>

";
clearphp = "no-goto";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "New Functions In PHP 7.1";
description = "The following functions are now native functions in PHP 7.1. It is advised to change them before moving to this new version.

* curl_share_strerror()
* curl_multi_errno()
* curl_share_errno()
* mb_ord()
* mb_chr()
* mb_scrub()
* is_iterable()

";
clearphp = "";
phpversion = "7.1-";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Php 8.0 Variable Syntax Tweaks";
description = "Several variable syntaxes are added in version 8.0. They extends the PHP 7.0 syntax updates, and fix a number of edges cases.

In particular, ``new``and ``instanceof`` now support a way to inline the expression, rather than use a temporary variable.

Magic constants are now accessible with array notation, just like another constant. It is also possible to use method calls : although this is Syntacticly correct for PHP, this won't be executed, as the left operand is a string, and not an object.

<?php

 // array name is dynamically build
 echo "foo$bar"[0];
 // static method
 "foo$bar"::baz();
 // static property 
 "foo$bar"::$baz;
 
 // Syntactly correct, but not executable
 "foo$bar"->baz();
 
 // expressions with instanceof and new
    $object = new ("class_".$name);
    $x instanceof ("class_$name");

    // PHP 7.0 style
    $className = "class_".$name;
    $object = new $className;

?>

See also `PHP RFC: Variable Syntax Tweaks <https://wiki.php.net/rfc/variable_syntax_tweaks>`_ and 
         `scalar_objects in PHP <https://github.com/nikic/scalar_objects>`_.
";
clearphp = "";
severity = "S_MAJOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.0.8";

; Alternative to make this code go away. 
; One by possible solution
;modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

; Optional parameters
;[parameter1]
;name="parametersCount";
;default="8";
;type="integer";
;description="Minimal number of parameters to report.";
name = "Use PHP Object API";
description = "OOP API is the modern version of the PHP API.

When PHP offers the alternative between procedural and OOP api for the same features, it is recommended to use the OOP API. 

Often, this least to more compact code, as methods are shorter, and there is no need to bring the resource around. Lots of new extensions are directly written in OOP form too.

OOP / procedural alternatives are available for `mysqli <http://php.net/manual/en/book.mysqli.php>`_, `tidy <http://php.net/manual/en/book.tidy.php>`_, `cairo <http://php.net/manual/en/book.cairo.php>`_, `finfo <http://php.net/manual/en/book.fileinfo.php>`_, and some others.

<?php
/// OOP version
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}

/* Create table doesn't return a resultset */
if ($mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) {
    printf("Table myCity successfully created.\n");
}

/* Select queries return a resultset */
if ($result = $mysqli->query("SELECT Name FROM City LIMIT 10")) {
    printf("Select returned %d rows.\n", $result->num_rows);

    /* free result set */
    $result->close();
}
?>

<?php
/// Procedural version
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Create table doesn't return a resultset */
if (mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) {
    printf("Table myCity successfully created.\n");
}

?>

";
clearphp = "use-object-api";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";

modifications[] = "Use the object API"

[example1]
project="WordPress"
file="wp-includes/functions.php"
line="2558"
code="finfo_open(FILEINFO_MIME_TYPE)";
explain="Finfo has also a class, with the same name."

[example2]
project="PrestaShop"
file="admin-dev/filemanager/include/utils.php"
line="174"
code="transliterator_transliterate('Accents-Any', $str)";
explain="transliterator_transliterate() has also a class named Transliterator"

[example3]
project="SugarCrm"
file="SugarCE-Full-6.5.26/include/database/MysqliManager.php"
line="222"
code="mysqli_fetch_field_direct($result, $i)";
explain="Mysqli has also a class, with the same name."
name = "Return Typehint Usage";
description = "Spot usage of return typehint. It is a PHP 7.0 feature.

Return typehint were introduced in PHP 7.0, and are backward incompatible with PHP 5.x.

<?php

function foo($a) : stdClass {
    return new \stdClass();
}

?>

See also `RFC: Return Type Declarations <https://wiki.php.net/rfc/return_types>`_ and 
         `Return Type Declarations <http://php.net/manual/en/functions.returning-values.php#functions.returning-values.type-declaration>`_.
";
clearphp = "";
phpversion = "7.0+";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "PHP 74 New Directives";
description = "List of directives that are new in PHP 7.4.

+ ``zend.exception_ignore_args`` : From the php.ini : ``Allows to include or exclude arguments from stack traces generated for exceptions. Default: Off``
+ ``opcache.preload_user``


See `RFC Preload <https://wiki.php.net/rfc/preload>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.4";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Do not use those directives with PHP before version 7.4"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Assign With And";
description = "The lettered logical operators yield to assignation. It may collect less information than expected.

It is recommended to use the &&, ^ and || operators, instead of and, or and xor, to prevent confusion.

<?php

// The expected behavior is 
// The following are equivalent
 $a =  $b  && $c;
 $a = ($b && $c);

// The unexpected behavior is 
// The following are equivalent
 $a = $b  and $c;
($a = $b) and $c;

?>

See also `Operator Precedence <http://php.net/manual/en/language.operators.precedence.php>`_.

";
clearphp = "";
severity = "S_CRITICAL";
timetofix = "T_QUICK";
exakatSince = "0.12.4";

modifications[] = "Always use symbol && rather than letter and";
modifications[] = "To be safe, add parenthesis to enforce priorities";

[example1]
project=xataface
file=Dataface/LanguageTool.php
line=265
code="$autosubmit = isset($params['autosubmit']) and $params['autosubmit'];";
explain="The usage of 'and' here is a workaround for PHP version that have no support for the coalesce. $autosubmit receives the value of $params['autosubmit'] only if the latter is set. Yet, with = having higher precedence over 'and', $autosubmit is mistaken with the existence of $params['autosubmit'] : its value is actually omitted."
name = "List With Keys";
description = "Setting keys when using list() is a PHP 7.1 feature.

<?php

// PHP 7.1 and later only
list('a' => $a, 'b' => $b) = ['b' => 1, 'c' => 2, 'a' => 3];

?>
";
clearphp = "";
phpversion = "7.1+";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Close Tags Consistency";
description = "PHP scripts may omit the final closing tag. 

This is a convention, used to avoid the infamous 'headers already sent' error message, that appears when a script with extra invisible spaces is included before actually emitting the headers.

The PHP manual recommends : "If a file is pure PHP code, it is preferable to omit the PHP closing tag at the end of the file.". (See `PHP Tags <http://php.net/manual/en/language.basic-syntax.phptags.php>`_)

<?literal
<?php

class foo {

}
?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.9.3";name = "::class";
description = "PHP has a special class constant to hold the name of the class : ``class`` keyword. It represents the class name that is used in the left part of the operator.

Using ``::class`` is safer than relying on a string. It does adapt if the class's name or its namespace is changed'. It is also faster, though it is a micro-optimisation. 

It is introduced in PHP 5.5.

<?php

use A\B\C as UsedName;

class foo {
    public function bar( ) {
        echo ClassName::class; 
        echo UsedName::class; 
    }
}

$f = new Foo( );
$f->bar( );
// displays ClassName 
// displays A\B\C 

?>

Be aware that ``::class`` is a replacement for __CLASS__ magic constant. 

See also `Class Constant <http://php.net/manual/en/language.oop5.constants.php>`_.
";
clearphp = "";
phpversion = "5.5+";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
modifications[] = "Use ::class whenever possible. That exclude any dynamic call."name = "Assertions";
description = "Usage of assertions, to add checks within PHP code.

Assertions should be used as a debugging feature only. You may use them for sanity-checks that test for conditions that should always be TRUE and that indicate some programming errors if not or to check for the presence of certain features like extension functions or certain system limits and features.

<?php

function foo($string) {
    assert(!empty($string), 'An empty string was provided!');
    
    echo '['.$string.']';
}

?>

See also `assert <http://php.net/assert>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Use Lower Case For Parent, Static And Self";
description = "The special parent, static and self keywords needed to be lowercase to be usable. This was fixed in PHP 5.5; otherwise, they would yield a 'PHP Fatal error:  Class 'PARENT' not found'.

parent, static and self are traditionally written in lowercase only. Mixed case and Upper case are both valid, though.

<?php

class foo {
    const aConstante = 233;
    
    function method() {
        // Wrong case, error with PHP 5.4.* and older
        echo SELF::aConstante;
        
        // Always right. 
        echo self::aConstante;
    }
}

?>

Until PHP 5.5, non-lowercase version of those keywords are generating a bug. 
";
clearphp = "";
phpversion = "5.5-";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
phpError[] = "Class 'PARENT' not found"name = "Spread Operator For Array";
description = "The variadic operator may be used with arrays. This has been introduced in PHP 7.4. 

list() is not allowed to use this operator, as list() expected variables, not values.

<?php

$array = [1, 2, 3];
$extended_array = [...$array, 4, 5, 6];

// invalid syntax
[...$a] = [1,2,3];

?>

See also `Spread Operator in Array Expression <https://wiki.php.net/rfc/spread_operator_for_array>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.4";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Crc32() Might Be Negative";
description = "crc32() may return a negative number, on 32 bits platforms.

According to the manual : Because PHP\'s integer type is signed many ``CRC32`` checksums will result in negative integers on 32 bits platforms. On 64 bits installations, all crc32() results will be positive integers though.

<?php

// display the checksum with %u, to make it unsigned
echo sprintf('%u', crc32($str));

// turn the checksum into an unsigned hexadecimal
echo dechex(crc32($str));

// avoid concatenating crc32 to a string, as it may be negative on 32bits platforms 
echo 'prefix'.crc32($str);

?>

See also `crc32() <https://www.php.net/crc32>`_.
 ";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.11.0";name = "idn_to_ascii() New Default";
description = "The default parameter value of idn_to_ascii() and idn_to_utf8() is now INTL_IDNA_VARIANT_UTS46 instead of the deprecated INTL_IDNA_VARIANT_2003.

<?php

echo idn_to_ascii('täst.de'); 

?>

See also `idn_to_ascii <http://php.net/manual/en/function.idn-to-ascii.php>`_,
         `idn_to_utf8 <http://php.net/manual/en/function.idn-to-utf8.php>`_ and
         `Unicode IDNA Compatibility Processing <http://unicode.org/reports/tr46/>`_.
";
clearphp = "";
exakatSince = "1.5.0";

modifications[] = "Explicitely add the second parameter to the idn_to_ascii() and idn_to_utf8() functions."name = "Foreach On Object";
description = "Foreach on object looks like a typo. This is particularly true when both object and member are variables.

Foreach on an object member is a legit PHP syntax, though it is very rare : blind variables rarely have to be securing in an object to be processed.

<?php

// Looks suspicious
foreach($array as $o -> $b) { 
    doSomething();
}

// This is the real thing
foreach($array as $o => $b) { 
    doSomething();
}

?>

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "1.1.6";name = "Compact Inexistant Variable";
description = "Compact() doesn't warn when it tries to work on an inexistant variable. It just ignores the variable.

This behavior changed in PHP 7.3, and compact() now emits a warning when the compacted variable doesn't exist.

<?php

function foo($b = 2) {
    $a = 1;
    // $c doesn't exists, and is not compacted.
    return compact('a', 'b', 'c');
}
?>

For performances reasons, this analysis only works inside methods and functions.

See also `compact <http://www.php.net/compact>`_ and 
         `PHP RFC: Make compact function reports undefined passed variables <https://wiki.php.net/rfc/compact>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "1.2.9";

modifications[] = "Fix the name of variable in the compact() argument list"
modifications[] = "Remove the name of variable in the compact() argument list"name = "Not A Scalar Type";
description = "``int`` is the actual PHP scalar type, not ``integer``. 

PHP 7 introduced several scalar types, in particular ``int``, ``bool`` and ``float``. Those three types are easily mistaken with ``integer``, ``boolean``, ``real`` and ``double``. 

Unless those classes actually exists, PHP emits some strange error messages.

<?php

// This expects a scalar of type 'integer'
function foo(int $i) {}

// This expects a object of class 'integer'
function abr(integer $i) {}

?>

Thanks to ``Benoit Viguier`` for the `original idea <https://twitter.com/b_viguier/status/940173951908700161>`__ for this analysis.

See also `Type declarations <http://php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "1.0.7";

modifications[] = "Do not use ``int`` as a class name, an interface name or a trait name."
name = "Use Browscap";
description = "Browscap is a browser database, accessible via get_browser(). 

Browscap is the 'Browser Capabilities Project'.

<?php
echo $_SERVER['HTTP_USER_AGENT'] . "\n\n";

$browser = get_browser(null, true);
print_r($browser);
?>

See also `browscap <http://browscap.org/>`_. ";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.11.4";name = "Use Pathinfo";
description = "Use pathinfo() function instead of string manipulations.

pathinfo() is more efficient and readable and string functions.

<?php

$filename = '/path/to/file.php';

// With pathinfo();
$details = pathinfo($filename);
print $details['extension'];  // also capture php

// With string functions (other solutions possible)
$ext = substr($filename, - strpos(strreverse($filename), '.')); // Capture php

?>

When the path contains UTF-8 characters, pathinfo() may strip them. There, string functions are necessary.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Use pathinfo() and its second argument"

[example1]
project="SuiteCrm"
file="include/utils/file_utils.php"
line="441"
code="$exp = explode('.', $filename);";
explain="Looking for the extension ? Use pathinfo() and PATHINFO_EXTENSION "
name = "Hash Will Use Objects";
description = "The `ext/hash extension <http://www.php.net/manual/en/book.hash.php>`_ used resources, and is being upgraded to use resources. 

<?php

// Post 7.2 code 
    $hash = hash_init('sha256');
    if (!is_object($hash)) {
        trigger_error('error');
    }
    hash_update($hash, $message);

// Pre-7.2 code
    $hash = hash_init('md5');
    if (!is_resource($hash)) {
        trigger_error('error');
    }
    hash_update($hash, $message);

?>

See also `Move ext/hash from resources to objects <http://php.net/manual/en/migration72.incompatible.php#migration72.incompatible.hash-ext-to-objects>`_.

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "1.0.4";name = "New Constants In PHP 7.2";
description = "The following constants are now native in PHP 7.2. It is advised to avoid using such names for constant before moving to this new version.

* ``PHP_OS_FAMILY``
* ``PHP_FLOAT_DIG``
* ``PHP_FLOAT_EPSILON``
* ``PHP_FLOAT_MAX``
* ``PHP_FLOAT_MIN``
* ``SQLITE3_DETERMINISTIC``
* ``CURLSSLOPT_NO_REVOKE``
* ``CURLOPT_DEFAULT_PROTOCOL``
* ``CURLOPT_STREAM_WEIGHT``
* ``CURLMOPT_PUSHFUNCTION``
* ``CURL_PUSH_OK``
* ``CURL_PUSH_DENY``
* ``CURL_HTTP_VERSION_2TLS``
* ``CURLOPT_TFTP_NO_OPTIONS``
* ``CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE``
* ``CURLOPT_CONNECT_TO``
* ``CURLOPT_TCP_FASTOPEN``
* ``DNS_CAA``

See also `New global constants in 7.2 <http://php.net/manual/en/migration72.constants.php>`_.

";
clearphp = "";
phpversion = "7.2-";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.10.7";
name = "Numeric Literal Separator";
description = "Integer and floats may be written with internal underscores. This way, it is possible to separate large number into smaller groups, and make them more readable.

Numeric Literal Separators were introduced in PHP 7.4 and are not backward compatible.

<?php
$a = 1_000_000_000;   // A billion
$a = 1000000000;      // A billion too...

$b = 107_925_284.88;‬ // 6 light minute to kilometers = 107925284.88 kilometers
$b = 107925284.88;‬   // Same as above
?>

See also `PHP RFC: Numeric Literal Separator <https://wiki.php.net/rfc/numeric_literal_separator>`_.
 ";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.0";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Php/FailingAnalysis";
description = "";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.2.8";name = "Null Coalesce";
description = "The null coalesce operator is a short syntax that gives a default value to an unset variable.

This is a new operator in PHP 7.0.

<?php

// Null coalesce operator, since PHP 7.0
$a = $b ?? 'default value if $b is null';

// Equivalent to : 
$a = isset($b) ? $b : 'default value if $b is null';

// Do not mistake with this, where $b has to be set, but truthy
$a = isset($b) ?: 'default value if $b is null';

?>

See also `Null Coalescing Operator <http://php.net/manual/en/language.operators.comparison.php#language.operators.comparison.coalesce>`_.
";
clearphp = "";
exakatSince = "0.8.4";
name = "Old Style __autoload()";
description = "Avoid __autoload(), only use spl_register_autoload().

__autoload() is deprecated since PHP 7.2 and possibly removed in later versions. spl_register_autoload() was introduced in PHP 5.1.0.

__autoload() may only be declared once, and cannot be modified later. This creates potential conflicts between libraries that try to set up their own autoloading schema. 

On the other hand, spl_register_autoload() allows registering and de-registering multiple autoloading functions or methods. 

<?php

// Modern autoloading.
function myAutoload($class){}
spl_register_autoload('myAutoload');

// Old style autoloading.
function __autoload($class){}

?>

Do not use the old __autoload() function, but rather the new spl_register_autoload() function. 

See also `Autoloading Classe <http://php.net/manual/en/language.oop5.autoload.php>`_.
";
clearphp = "use-smart-autoload";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

phpError[] = "__autoload() is deprecated, use spl_autoload_register() instead"

modifications[] = "Move to spl_register_autoload()"
modifications[] = "Remove usage of the old __autoload() function"
modifications[] = "Modernize usage of old libraries"

[example1]
project="Piwigo"
file="include/phpmailer/PHPMailerAutoload.php"
line="45"
code="
if (version_compare(PHP_VERSION, '5.1.2', '>=')) {
    //SPL autoloading was introduced in PHP 5.1.2
    if (version_compare(PHP_VERSION, '5.3.0', '>=')) {
        spl_autoload_register('PHPMailerAutoload', true, true);
    } else {
        spl_autoload_register('PHPMailerAutoload');
    }
} else {
    /**
     * Fall back to traditional autoload for old PHP versions
     * @param string $classname The name of the class to load
     */
    function __autoload($classname)
    {
        PHPMailerAutoload($classname);
    }
}
";
explain="This code handles situations for PHP after 5.1.0 and older. Rare are the applications that are still using those versions in 2019."

name = "Wrong fopen() Mode";
description = "Wrong file opening for fopen().

fopen() has a few modes, as described in the documentation : 'r', 'r+', for reading;  'w', 'w+' for writing; 'a', 'a+' for appending; 'x', 'x+' for modifying; 'c', 'c+' for writing and locking, 't' for text files and windows only.
An optional 'b' may be used to make the fopen() call more portable and binary safe. Another optional 't' may be used to make the fopen() call process automatically text input : this one should be avoided. 

<?php

// open the file for reading, in binary mode
$fp = fopen('/tmp/php.txt', 'rb');

// New option e in PHP 7.0.16 and 7.1.2 (beware of compatibility)
$fp = fopen('/tmp/php.txt', 'rbe');

// Unknown option x
$fp = fopen('/tmp/php.txt', 'rbx');

?>

Any other values are not understood by PHP. ";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
modifications[] = "Check the docs, choose the right opening mode."
[example1]
project="Tikiwiki"
file="lib/tikilib.php"
line="6777"
code="fopen('php://temp', 'rw');";
explain="This fopen() mode doesn't exists. Use 'w' instead."
[example2]
project="HuMo-Gen"
file="include/phprtflite/lib/PHPRtfLite/StreamOutput.php"
line="77"
code="fopen($this->_filename, 'wr', false)	";
explain="This fopen() mode doesn't exists. Use 'w' instead."

name = "Date Formats";
description = "Inventory of date formats used in the code. 

<?php

$time = time();
// This is a formated date
echo date('r', $time);

?>

See also `Date and Time <http://php.net/manual/en/book.datetime.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.12.16";name = "Php 7.1 New Class";
description = "New classes, introduced in PHP 7.1. If classes where created with the same name, in current code, they have to be moved in a namespace, or removed from code to migrate safely to PHP 7.1.

The new class is : ReflectionClassConstant. The other class is 'Void' : this is forbidden as a class name, as Void is used for return type hint.

<?php

class ReflectionClassConstant {
    // Move to a namespace, do not leave in global
    // or, remove this class
}

?>

";
clearphp = "";
phpversion = "7.1-";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Dl() Usage";
description = "Dynamically load PHP extensions with dl().

<?php

    // dynamically loading ext/vips
	dl('vips.' . PHP_SHLIB_SUFFIX);

?>

See also `dl <http://www.php.net/dl>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.0.4";name = "Hash Algorithms Incompatible With PHP 7.1-";
description = "List of hash algorithms incompatible with PHP 7.1 and more recent. At the moment of writing, this is compatible up to 7.3. 

The hash algorithms were introduced in PHP 7.1. 

<?php

// Compatible only with 7.1 and more recent
echo hash('sha512/224', 'The quick brown fox jumped over the lazy dog.');

// Always compatible
echo hash('ripemd320', 'The quick brown fox jumped over the lazy dog.');

?>

See also `hash_algos <http://php.net/hash_algos>`_.
";
clearphp = "";
phpversion = "7.1-";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "1.3.4";
name = "No Reference For Static Property";
description = "Static properties used to behave independently when set to a reference value. This was fixed in PHP 7.3. 

According to the PHP 7.3 changelog : ``In PHP, static properties are shared between inheriting classes, unless the static property is explicitly overridden in a child class. However, due to an implementation artifact it was possible to separate the static properties by assigning a reference. This loophole has been fixed.``.

<?php

        class Test {
            public static $x = 0;
        }
        class Test2 extends Test { }

        Test2::$x = &$x;
        $x = 1;

        var_dump(Test::$x, Test2::$x);
        // Previously: int(0), int(1)
        // Now: int(1), int(1)

?>

See also `PHP 7.3 UPGRADE NOTES <https://github.com/php/php-src/blob/3b6e1ee4ee05678b5d717cd926a35ffdc1335929/UPGRADING#L66-L81>`_.
         ";
clearphp = "";
phpversion = "7.3-";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "1.4.9";name = "Wrong Parameter Type";
description = "The expected parameter is not of the correct type. Check PHP documentation to know which is the right format to be used.

<?php

// substr() shouldn't work on integers.
// the first argument is first converted to string, and it is 123456.
echo substr(123456, 0, 4); // display 1234

// substr() shouldn't work on boolean
// the first argument is first converted to string, and it is 1, and not t
echo substr(true, 0, 1); // displays 1

// substr() works correctly on strings.
echo substr(123456, 0, 4);

?>

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
[example1]
project="Zencart"
file="admin/includes/header.php"
line="180"
code="        $loc = setlocale(LC_TIME, 0);
        if ($loc !== FALSE) echo ' - ' . $loc; //what is the locale in use?
";
explain="setlocale() may be called with null or '' (empty string), and will set values from the environment. When called with \"0\" (the string), it only reports the current setting. Using an integer is probably undocumented behavior, and falls back to the zero string. "
name = "Use password_hash()";
description = "password_hash() and password_check() are a better choice to replace the use of crypt() to check password.

PHP 5.5 introduced these functions.

<?php

$password = 'rasmuslerdorf';
$hash = '$2y$10$YCFsG6elYca568hBi2pZ0.3LDL5wjgxct1N8w/oLR/jfHsiQwCqTS';

// The cost parameter can change over time as hardware improves
$options = array('cost' => 11);

// Verify stored hash against plain-text password
if (password_verify($password, $hash)) {
    // Check if a newer hashing algorithm is available
    // or the cost has changed
    if (password_needs_rehash($hash, PASSWORD_DEFAULT, $options)) {
        // If so, create a new hash, and replace the old one
        $newHash = password_hash($password, PASSWORD_DEFAULT, $options);
    }

    // Log user in
}
?>

See also `Password hashing <http://php.net/manual/en/book.password.php>`_.

";
clearphp = "";
phpversion = "5.5+";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Assert Function Is Reserved";
description = "Avoid defining an ``assert`` function in namespaces. 

While they work fine when the assertions are active (``zend.assertions=1``), calls to unqualified ``assert`` are optimized away when assertions are not active. 

Since PHP 7.3, a fatal error is emitted : ``Defining a custom assert() function is deprecated, as the function has special semantics``.

<?php
//      Run this with zend.assertions=1 and 
// Then run this with zend.assertions=0

namespace Test {
    function assert() {
        global $foo;

        $foo = true;
    }
}

namespace Test {
    assert();

    var_dump(isset($foo));
}

?>

See also `assert <http://php.net/assert>`_ and 
         `User-defined assert function is optimized away with zend.assertions=-1 <https://bugs.php.net/bug.php?id=75445>`_.";
clearphp = "";
severity = "S_CRITICAL";
timetofix = "T_SLOW";
exakatSince = "1.3.9";
phpError[] = "Defining a custom assert() function is deprecated, as the function has special semantics"

modifications[] = "Rename the custom function with another name"name = "Serialize Magic Method";
description = "Classes that defines __serialize() and __unserialize() are using Serialize Magic.

Serialize magic methods were introduced in PHP 7.4, and are not effective before.

<?php

class x {
    function __serialize() {}
    function __unserialize() {}
}

?>

See also `New custom object serialization mechanism <https://wiki.php.net/rfc/custom_object_serialization>`_.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.0";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Union Typehint";
description = "Union typehints allows the specification of several typehint for the same argument or return value. This is a PHP 8.0 new feature.

Several typehints are specified at the same place as a single one. The different values are separated by a pipe character ``|``, like for exceptions 

<?php

// Example from the RFC https://wiki.php.net/rfc/union_types_v2
class Number {
    private int|float $number;
 
    public function setNumber(int|float $number): void {
        $this->number = $number;
    }
 
    public function getNumber(): int|float {
        return $this->number;
    }
}
?>

Union types are not compatible with PHP 7 and older.

See also `PHP RFC: Union Types 2.0 <https://wiki.php.net/rfc/union_types_v2>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.0.9";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

; Optional parameters
;[parameter1]
;name="parametersCount";
;default="8";
;type="integer";
;description="Minimal number of parameters to report.";
name = "Should Preprocess Chr()";
description = "Replace literal chr() calls with their escape sequence.

chr() is a functioncall, that cannot be cached. It is only resolved at execution time. 
On the other hand, literal values are preprocessed by PHP and may be cached.

<?php

// This is easier on PHP
$a = \"\120\110\120\040 is great!\";

// This is slow
$a = chr(80), chr(72), chr(80), chr(32), ' is great!';

// This would be the best with this example, but it is not always possible
$a = 'PHP is great!';

?>

This is a micro-optimisation.

See also `Escape sequences <http://php.net/manual/en/regexp.reference.escape.php>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.1.9";

modifications[] = "Use PHP string sequences, and skip chr() at execution time"

[example1]
project="phpadsnew"
file="phpAdsNew-2.0/adview.php"
line="302"
code="		echo chr(0x47).chr(0x49).chr(0x46).chr(0x38).chr(0x39).chr(0x61).chr(0x01).chr(0x00).
		     chr(0x01).chr(0x00).chr(0x80).chr(0x00).chr(0x00).chr(0x04).chr(0x02).chr(0x04).
		 	 chr(0x00).chr(0x00).chr(0x00).chr(0x21).chr(0xF9).chr(0x04).chr(0x01).chr(0x00).
		     chr(0x00).chr(0x00).chr(0x00).chr(0x2C).chr(0x00).chr(0x00).chr(0x00).chr(0x00).
		     chr(0x01).chr(0x00).chr(0x01).chr(0x00).chr(0x00).chr(0x02).chr(0x02).chr(0x44).
		     chr(0x01).chr(0x00).chr(0x3B);
";
explain="Each call to chr() may be done before. First, chr() may be replace with the hexadecimal sequence \"0x3B\"; Secondly, 0x3b is a rather long replacement for a simple semi-colon. The whole pragraph could be stored in a separate file, for easier modifications. "
name = "Isset Multiple Arguments";
description = "isset() may be used with multiple arguments and acts as a AND.

<?php

// isset without and 
if (isset($a, $b, $c)) {
    // doSomething()
}

// isset with and 
if (isset($a) && isset($b) && isset($c)) {
    // doSomething()
}

?>

See also `Isset <http://www.php.net/isset>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.12.4";

modifications[] = "Merge all isset() calls into one"

[example1]
project="ThinkPHP"
file="library/think/Request.php"
line="1187"
code="isset($sub) && isset($array[$name][$sub])";
explain="This may be shortened with isset($sub), $array[$name][$sub])"

[example2]
project="LiveZilla"
file="livezilla/_lib/trdp/pchart/class/pDraw.class.php"
line="3852"
code="!isset($Data[\"Series\"][$SerieA][\"Data\"]) || !isset($Data[\"Series\"][$SerieB][\"Data\"])";
explain="This is the equivalent of !(isset($Data[\"Series\"][$SerieA][\"Data\"]) && isset($Data[\"Series\"][$SerieB][\"Data\"])), and then, !(isset($Data[\"Series\"][$SerieA][\"Data\"], $Data[\"Series\"][$SerieB][\"Data\"]))"
name = "Use is_countable";
description = "is_countable() checks if a variables holds a value that can be counted. It is recommended to use it before calling count().

is_countable() accepts arrays and object whose class implements \countable.

<?php

function foo($arg) {
    if (!is_countable($arg)) {
        // $arg cannot be passed to count()
        return 0
    }
    return count($arg);
}

function bar($arg) {
    if (!is_array($arg) and !$x instanceof \Countable) {
        // $arg cannot be passed to count()
        return 0
    }

    return count($arg);
}

?>

See also `PHP RFC: is_countable <https://wiki.php.net/rfc/is-countable>`_.
";
clearphp = "";
phpversion = "7.3+";
severity = "";
timetofix = "";
exakatSince = "1.3.8";

modifications[] = "Use is_countable()"
modifications[] = "Create a compatibility function that replaces is_countable() until the code is ready for PHP 7.3"

name = "PHP 7.1 Microseconds";
description = "PHP supports microseconds in ``DateTime`` class and date_create() function. This was introduced in PHP 7.1.

In previous PHP versions, those dates only used seconds, leading to lazy comparisons : 

<?php

$now = date_create();
usleep(10);              // wait for 0.001 ms
var_dump($now == date_create());

?>

This code displays true in PHP 7.0 and older, (unless the code was run too close from the next second). In PHP 7.1, this is always false.

This is also true with ``DateTime`` : 

<?php

$now = new DateTime();
usleep(10);              // wait for 0.001 ms
var_dump((new DateTime())->format('u') == $now->format('u'));

?>

This evolution impacts mostly exact comparisons (== and ===). Non-equality (!= and !==) will probably be always true, and should be reviewed.

See also `Backward incompatible changes <http://php.net/manual/en/migration71.incompatible.php>`_.

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.9";
name = "Cookies Variables";
description = "Cookies names, used across the application. 

<?php

if (isset($_COOKIE['myCookie'])) {
    // Usual method for reading and setting cookies
    $_COOKIE['myCookie']++;
}

// Usual method for writing cookies
setcookie('myCookie', $value);

?>

See also `setcookie <http://www.php.net/setcookie>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.12.16";name = "PHP 7.4 Removed Functions";
description = "The following PHP native functions were deprecated in PHP 7.4.

* hebrevc()
* convert_cyr_string()
* ezmlm_hash()
* money_format()
* restore_include_path()
* get_magic_quotes_gpc()
* get_magic_quotes_runtime()

This analysis skips redefined PHP functions : when a replacement for a removed PHP function was created, with condition on the PHP version, then its usage is considered valid.

See also `PHP 7.4 Removed Functions <http://php.net/manual/en/migration74.incompatible.php#migration70.incompatible.removed-functions>`_ and 
         `PHP 7.4 Deprecations : Introduction <https://wiki.php.net/rfc/deprecations_php_7_4#introduction>`_.

";
clearphp = "";
phpversion = "7.3-";
severity = "S_CRITICAL";
timetofix = "T_SLOW";
exakatSince = "1.9.0";name = "Php 8.0 Only TypeHints";
description = "Two scalar typehints are introduced in version 8. They are ``false`` and ``null``. In PHP 7.0, both those values could not be used as a class or interface name, to avoid confusion with the actual booleans, nor ``null`` value.

``false`` represents a false boolean, and nothing else. It is more restrictive than a boolean, which accepts true too. 
``null`` is an alternative syntax to ``?`` : it allows the type to be ``null``. 

Both the above typehints are to be used in cunjunction with other types : they can't be used alone.

<?php

// function accepts an A object, or null. 
function foo(A|null $x) {}

// same as above
function foo2(A|null $x) {}

// returns an object of class B, or false
function bar($x) : false|B {}

?>

See also `PHP RFC: Union Types 2.0 <https://wiki.php.net/rfc/union_types_v2>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.0.9";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

; Optional parameters
;[parameter1]
;name="parametersCount";
;default="8";
;type="integer";
;description="Minimal number of parameters to report.";


; This is a safe guard, to find quickly missed docs
inited="Not yet";
name = "Scalar Typehint Usage";
description = "Spot usage of scalar type hint : ``int``, ``float``, ``boolean`` and ``string``.

Scalar typehint are PHP 7.0 and more recent. Some, like ``object``, is 7.2.

Scalar typehint were not supported in PHP 5 and older. Then, the typehint is treated as a class name. 

<?php

function withScalarTypehint(string $x) {}

function withoutScalarTypehint(someClass $x) {}

?>

See also `PHP RFC: Scalar Type Hints <https://wiki.php.net/rfc/scalar_type_hints>`_ and `Type declarations <http://php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration>`_.
";
clearphp = "";
phpversion = "7.0+";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Should Use Coalesce";
description = "PHP 7 introduced the ``??`` operator, that replaces longer structures to set default values when a variable is not set.

<?php

// Fetches the request parameter user and results in 'nobody' if it doesn't exist
$username = $_GET['user'] ?? 'nobody';
// equivalent to: $username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
 
// Calls a hypothetical model-getting function, and uses the provided default if it fails
$model = Model::get($id) ?? $default_model;
// equivalent to: if (($model = Model::get($id)) === NULL) { $model = $default_model; }

?>

Sample extracted from PHP docs `Isset Ternary <https://wiki.php.net/rfc/isset_ternary>`_.

See also `New in PHP 7: null coalesce operator <https://lornajane.net/posts/2015/new-in-php-7-null-coalesce-operator>`_.
";
clearphp = "";
phpversion = "7.0+";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Replace the long syntax with the short one"

[example1]
project=ChurchCRM
file=src/ChurchCRM/Service/FinancialService.php
line=597
code="                $sSQL = \"INSERT INTO pledge_plg
                    (plg_famID,
                    plg_FYID, 
                    plg_date, 
                    plg_amount,
                    plg_schedule, 
                    plg_method, 
                    plg_comment, 
                    plg_DateLastEdited, 
                    plg_EditedBy, 
                    plg_PledgeOrPayment, 
                    plg_fundID, 
                    plg_depID, 
                    plg_CheckNo, 
                    plg_scanString, 
                    plg_aut_ID, 
                    plg_NonDeductible, 
                    plg_GroupKey)
                    VALUES ('\".
          $payment->FamilyID.\"','\".
          $payment->FYID.\"','\".
          $payment->Date.\"','\".
          $Fund->Amount.\"','\".
          (isset($payment->schedule) ? $payment->schedule : 'NULL').\"','\".
          $payment->iMethod.\"','\".
          $Fund->Comment.\"','\".
          date('YmdHis').\"',\".
          $_SESSION['user']->getId().\",'\".
          $payment->type.\"',\".
          $Fund->FundID.','.
          $payment->DepositID.','.
          (isset($payment->iCheckNo) ? $payment->iCheckNo : 'NULL').\",'\".
          (isset($payment->tScanString) ? $payment->tScanString : 'NULL').\"','\".
          (isset($payment->iAutID) ? $payment->iAutID : 'NULL').\"','\".
          (isset($Fund->NonDeductible) ? $Fund->NonDeductible : 'NULL').\"','\".
          $sGroupKey.\"')\";";
explain="ChurchCRM features 5 old style ternary operators, which are all in this SQL query. ChurchCRM requires PHP 7.0, so a simple code review could remove them all."
[example2]
project=Cleverstyle
file=modules/Feedback/index.php
line=37
code="$Page->content(
	h::{'cs-form form'}(
		h::{'section.cs-feedback-form article'}(
			h::{'header h2.cs-text-center'}($L->Feedback).
			h::{'table.cs-table[center] tr| td'}(
				[
					h::{'cs-input-text input[name=name][required]'}(
						[
							'placeholder' => $L->feedback_name,
							'value'       => $User->user() ? $User->username() : (isset($_POST['name']) ? $_POST['name'] : '')
						]
					),
					h::{'cs-input-text input[type=email][name=email][required]'}(
						[
							'placeholder' => $L->feedback_email,
							'value'       => $User->user() ? $User->email : (isset($_POST['email']) ? $_POST['email'] : '')
						]
					),
					h::{'cs-textarea[autosize] textarea[name=text][required]'}(
						[
							'placeholder' => $L->feedback_text,
							'value'       => isset($_POST['text']) ? $_POST['text'] : ''
						]
					),
					h::{'cs-button button[type=submit]'}($L->feedback_send)
				]
			)
		)
	)
);";
explain="Cleverstyle nests ternary operators when selecting default values. Here, moving some of them to ?? will reduce the code complexity and make it more readable. Cleverstyle requires PHP 7.0 or more recent."
name = "strict_types Preference";
description = "``strict_types`` is a PHP mode where typehint are enforced strictly or weakly. By default, it is weak typing, allowing backward compatibility with previous versions. 

This analysis reports if ``strict_types`` are used systematically or not. ``strict_types`` affects the calling file, not the definition file. 

<?php

// define strict_types
declare(strict_types = 1);

foo(1);

?>

See also `Strict typing <http://php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration.strict>`_.
";
clearphp = "";
phpversion = "7.0+";
severity = "";
timetofix = "";
exakatSince = "0.12.2";
name = "Unset() Or (unset)";
description = "Unset() and (unset) have the same functional use. 

The analyzed code has less than 10% of one of them : for consistency reasons, it is recommended to make them all the same. 

It happens that unset() or (unset) are used depending on coding style and files. One file may be consistently using unset(), while the others are all using (unset). 

<?php

// be consistent
(unset) $a1;
(unset) $a2;
(unset) $a3;
(unset) $a4;
(unset) $a5;
(unset) $a6;
(unset) $a7;
(unset) $a8;
(unset) $a9;
(unset) $a10;
(unset) $a11;
(unset) $a12;

unset($b);
?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.9.3";name = "Avoid set_error_handler $context Argument";
description = "Avoid configuring set_error_handler() with a method that accepts 5 arguments. The last argument, ``$errcontext``, is deprecated since PHP 7.2, and will be removed later.

<?php

// setting error_handler with an incorrect closure
set_error_handler(function($errno, $errstr, $errfile, $errline) {});

// setting error_handler with an incorrect closure
set_error_handler(function($errno, $errstr, $errfile, $errline, $errcontext) {});

?>

See also set_error_handler();
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "1.0.4";

modifications[] = "Remove the 6th argument of registered handlers."

[example1]
project="shopware"
file="engine/Shopware/Plugins/Default/Core/ErrorHandler/Bootstrap.php"
line="162"
code="    public function registerErrorHandler($errorLevel = E_ALL)
    {
        // Only register once.  Avoids loop issues if it gets registered twice.
        if (self::$_registeredErrorHandler) {
            set_error_handler([$this, 'errorHandler'], $errorLevel);

            return $this;
        }

        self::$_origErrorHandler = set_error_handler([$this, 'errorHandler'], $errorLevel);
        self::$_registeredErrorHandler = true;

        return $this;
    }
";
explain="The registered handler is a local method, called ``errorHandler``, which has 6 arguments, and relays those 6 arguments to set_error_handler(). "

[example2]
project="Vanilla"
file="library/core/functions.error.php";
line="747"
code="set_error_handler('Gdn_ErrorHandler', E_ALL & ~E_STRICT)";
explain="Gdn_ErrorHandler is a function that requires 6 arguments. "

name = "New Functions In PHP 8.0";
description = "New functions are added to new PHP version.

The following functions are now native functions in PHP 7.3. It is compulsory to rename any custom function that was created in older versions. One alternative is to move the function to a custom namespace, and update the ``use`` list at the beginning of the script. 

* `str_contains <http://php.net/str_contains>`_
* `fdiv <http://php.net/fdiv>`_
* `preg_last_error_msg <http://php.net/preg_last_error_msg>`_

Note : At the moment of writing, all links to the manual are not working. 

";
clearphp = "";
phpversion = "8.0-";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "2.0.8";
name = "PHP 7.4 Constant Deprecation";
description = "One constant is deprecated in PHP 7.4. 

* CURLPIPE_HTTP1

See also `Deprecations for PHP 7.2 <https://wiki.php.net/rfc/deprecations_php_7_2>`_.

";
clearphp = "";
phpversion = "7.4-";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "1.9.3";

modifications[] = "Use CURLPIPE_MULTIPLEX or CURLPIPE_NOTHING"
name = "Pathinfo() Returns May Vary";
description = "pathinfo() function returns an array whose content may vary. It is recommended to collect the values after check, rather than directly.

<?php

$file = '/a/b/.c';
//$extension may be missing, leading to empty $filename and filename in $extension
list( $dirname, $basename, $extension, $filename ) = array_values( pathinfo($file) );

//Use PHP 7.1 list() syntax to assign correctly the values, and skip array_values()
//This emits a warning in case of missing index
['dirname'   => $dirname, 
 'basename'  => $basename, 
 'extension' => $extension, 
 'filename'  => $filename ] = pathinfo($file);
 
//This works without warning
$details = pathinfo($file);
$dirname   = $details['dirname'] ?? getpwd();
$basename  = $details['basename'] ?? '';
$extension = $details['extension'] ?? '';
$filename  = $details['filename'] ?? '';

?>

The same applies to parse_url(), which returns an array with various index. 

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.12.11";

modifications[] = "Add a check on the return value of pathinfo() before using it.";

[example1]
project="NextCloud"
file="lib/private/Preview/Office.php"
line="56"
code="
		$absPath = $fileview->toTmpFile($path);

// More code

			list($dirname, , , $filename) = array_values(pathinfo($absPath));
			$pngPreview = $dirname . '/' . $filename . '.png';
";
explain="$absPath is build with the toTmpFile() method, which may return a boolean (false) in case of error. Error situations include the inability to create the temporary file."

name = "Safe Phpvariables";
description = "Mark the safe PHP variables. 

PHP superglobales are usually filled with external data that should be filtered. However, some values may be considered safe, as they are under the control of the developer.

``$_GET``, ``$_POST``, ``$_FILES``, ``$_REQUEST``, ``$_COOKIES`` are all considered unsafe. Their level of validation is checked in other analysis. 

``$_SERVER`` is partially safe. It is valid for the following values : ``DOCUMENT_ROOT``, ``REQUEST_TIME``, ``REQUEST_TIME_FLOAT``, ``SCRIPT_NAME``, ``SERVER_ADMIN``, ``_``.

<?php

// DOCUMENT_ROOT is a safe variable
echo $_SERVER['DOCUMENT_ROOT'];

// $_SERVER's PHP_SELF MUST be validated before usage
echo $_SERVER['PHP_SELF'];

// $_GET MUST be validated before usage
echo $_GET['_'];

?>

See also `Predefined Variables <https://www.php.net/manual/en/reserved.variables.php>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.1.2";

; Alternative to make this code go away. 
; One by possible solution
;modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

; Optional parameters
;[parameter1]
;name="parametersCount";
;default="8";
;type="integer";
;description="Minimal number of parameters to report.";
name = "Throw";
description = "List of thrown exceptions.

<?php
if ($divisor === 0) {
    // Throw native exception
    throw new DivisionByZeroError(\"Shouldn't divide by one\");
}

if ($divisor === 1) {
    // Throw custom exception
    throw new DontDivideByOneException(\"Shouldn't divide by one\");
}
?>

See also `Exceptions <http://php.net/manual/en/language.exceptions.php>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "array_key_exists() Works On Arrays";
description = "array_key_exists() requires arrays as second argument. Until PHP 7.4, objects were also allowed, yet it is now deprecated.

<?php

// Valid way to check for key
$array = ['a' => 1];
var_dump(array_key_exists('a', $array))


// Deprecated since PHP 7.4
$object = new Stdclass();
$object->a = 1;
var_dump(array_key_exists('a', $object))

?>

See also `array_key_exists() with objects <https://wiki.php.net/rfc/deprecations_php_7_4#array_key_exists_with_objects>`_, and
         `array_key_exists <https://php.net/array-key-exists>`_, and.";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.0";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Use the (array) cast to turn the object into an array"
modifications[] = "Use the native PHP function proprety_exists() or isset() on the property to check them."

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Super Global Usage";
description = "Spot usage of Super global variables, such as $_GET, $_POST or $_REQUEST.

<?php

echo htmlspecialchars($_GET['name'], UTF-8);

?>

See also `Superglobals <http://php.net/manual/en/language.variables.superglobals.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Use session_start() Options";
description = "It is possible to set the session's option at session_start() call, skipping the usage of session_option().

This way, session's options are set in one call, saving several hits.

This is available since PHP 7.0. It is recommended to set those values in the ``php.ini`` file, whenever possible. 

<?php

// PHP 7.0
session_start(['session.name' => 'mySession',
               'session.cookie_httponly' => 1,
               'session.gc_maxlifetime' => 60 * 60);

// PHP 5.6- old way 
ini_set ('session.name', 'mySession');
ini_set("session.cookie_httponly", 1); 
ini_set('session.gc_maxlifetime', 60 * 60);
session_start();

?>

";
clearphp = "";
phpversion = "7.0+";
severity = "";
timetofix = "";
exakatSince = "0.11.8";

modifications[] = "Use session_start() with array arguments";

[example1]
project="WordPress"
file="wp-admin/includes/misc.php"
line="74"
code="$markerdata = explode( \"\n\", implode( '', file( $filename ) ) );";
explain="This code actually loads the file, join it, then split it again. file() would be sufficient. "name = "PHP 7.0 Removed Functions";
description = "The following PHP native functions were removed in PHP 7.0.

* ereg()
* ereg_replace()
* eregi()
* eregi_replace()
* split()
* spliti()
* sql_regcase()
* magic_quotes_runtime()
* set_magic_quotes_runtime()
* call_user_method()
* call_user_method_array()
* set_socket_blocking()
* mcrypt_ecb()
* mcrypt_cbc()
* mcrypt_cfb()
* mcrypt_ofb()
* datefmt_set_timezone_id()
* imagepsbbox()
* imagepsencodefont()
* imagepsextendfont()
* imagepsfreefont()
* imagepsloadfont()
* imagepsslantfont()
* imagepstext()

This analysis skips redefined PHP functions : when a replacement for a removed PHP function was created, with condition on the PHP version, then its usage is considered valid.

See also `PHP 7.0 Removed Functions <http://php.net/manual/en/migration70.incompatible.php#migration70.incompatible.removed-functions>`_.

 ";
clearphp = "";
phpversion = "7.0-";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";

modifications[] = "Replace the old functions with modern functions"
modifications[] = "Remove the usage of the old functions"
modifications[] = "Create an alternative function by wiring the old name to a new feature"
name = "Php7 Relaxed Keyword";
description = "Most of the traditional PHP keywords may be used inside classes, trait or interfaces.

<?php

// Compatible with PHP 7.0 + 
class foo {
    // as is a PHP 5 keyword
    public function as() {
    
    }
}

?>

This was not the case in PHP 5, and will yield parse errors.

See also `Loosening Reserved Word Restrictions <http://php.net/manual/en/migration70.other-changes.php#migration70.other-changes.loosening-reserved-words>`_.
";
clearphp = "";
phpversion = "7.0+";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Parenthesis As Parameter";
description = "Using parenthesis around parameters used to silent some internal check. This is not the case anymore in PHP 7, and should be fixed by removing the parenthesis and making the value a real reference.

<?php

// PHP 7 sees through parenthesis
$d = foo(1, 2, $c);

// Avoid parenthesis in arguments
$d = foo(1, 2, ($c));

?>
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Remove the parenthesis when they are only encapsulating an argument"name = "Should Use array_column()";
description = "Avoid writing a whole slow loop, and use the native array_column().

array_column() is a native PHP function, that extract a property or a index from a array of object, or a multidimensional array. This prevents the usage of foreach to collect those values.

<?php

$a = array(array('b' => 1), 
           array('b' => 2, 'c' => 3), 
           array(          'c' => 4)); // b doesn't always exists

$bColumn = array_column($a, 'b');

// Slow and cumbersome code
$bColumn = array();
foreach($a as $k => $v) {
    if (isset($v['b'])) {
        $bColumn[] = $v['b'];
    }
}

?>

array_column() is faster than foreach() (with or without the isset() test) with 3 elements or more, and it is significantly faster beyond 5 elements. Memory consumption is the same.

See also `[blog] array_column() <https://benramsey.com/projects/array-column/>`_.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.10.2";

modifications[] = "Use array_column(), instead of a foreach()"name = "Direct Call To __clone()";
description = "Direct call to magic method __clone() was forbidden. It is allowed since PHP 7.0. 

From the RFC : ``Doing calls like $obj->__clone( ) is now allowed. This was the only magic method that had a compile-time check preventing some calls to it, which doesn't make sense. If we allow all other magic methods to be called, there's no reason to forbid this one``.

<?php

    class Foo {
        function __clone() {}
    }
    
    $a = new Foo;
    $a->__clone();
?>

See also `Directly calling __clone is allowed <https://wiki.php.net/rfc/abstract_syntax_tree#directly_calling_clone_is_allowed>`_.
";
clearphp = "";
phpversion = "7.0+";
severity = "S_CRITICAL";
timetofix = "T_SLOW";
exakatSince = "1.4.8";

modifications[] = "Use the clone operator to call the __clone magic method"name = "Usort Sorting In PHP 7.0";
description = "Usort(), uksort() and uasort() behavior has changed in PHP 7. Values that are equals (based on the user-provided method) may be sorted differently than in PHP 5. 

If this sorting is important, it is advised to add extra comparison in the user-function and avoid returning 0 (thus, depending on default implementation). 

<?php

$a = [ 2, 4, 3, 6];

function noSort($a) { return $a > 5; }

usort($a, 'noSort');
print_r($a);

?>

In PHP 5, the results is : 

<?literal
Array
(
    [0] => 3
    [1] => 4
    [2] => 2
    [3] => 6
)
?>

in PHP 7, the result is : 

<?literal
Array
(
    [0] => 2
    [1] => 4
    [2] => 3
    [3] => 6
)
?>

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Use Covariance";
description = "Covariance is compatible return typehint. A child class may return an object of a child class of the return type of its parent's method.

Since a children class may return a children class of the return type, the evolution is in the same order.

Covariance is a PHP 7.4 feature. Covariance is distinct from argument contravariance.

<?php
class X {
  function m(Y $z): X {}
}

// m is overwriting the parent's method. 
// The return type is different.
// The return type is compatible, as Y is also a sub-class of X.
class Y extends X {
  function m(X $z): Y {}
}

?>

See also `Covariant Returns and Contravariant Parameters <https://wiki.php.net/rfc/covariant-returns-and-contravariant-parameters>`_ and 
         `Php/UseContravariance`.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.3";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Coalesce Equal";
description = "Usage of coalesce assignement operator. The operator is available in PHP since PHP 7.4.

<?php

// Coalesce operator, since PHP 5.3
$a ??= 'default value';

// Equivalent to $a = $a ?? 'default value';

?>

See also `Ternary Operator <http://php.net/manual/en/language.operators.comparison.php#language.operators.comparison.ternary>`_.
";
clearphp = "";
phpversion = "7.4+";
severity = "";
timetofix = "";
exakatSince = "2.0.4";
name = "New Constants In PHP 7.4";
description = "The following constants are now native in PHP 7.4. It is advised to avoid using such names for constant before moving to this new version.

* ``MB_ONIGURUMA_VERSION``
* ``SO_LABEL``
* ``SO_PEERLABEL``
* ``SO_LISTENQLIMIT``
* ``SO_LISTENQLEN``
* ``SO_USER_COOKIE``
* ``PHP_WINDOWS_EVENT_CTRL_C``
* ``PHP_WINDOWS_EVENT_CTRL_BREAK``
* ``TIDY_TAG_ARTICLE``
* ``TIDY_TAG_ASIDE``
* ``TIDY_TAG_AUDIO``
* ``TIDY_TAG_BDI``
* ``TIDY_TAG_CANVAS``
* ``TIDY_TAG_COMMAND``
* ``TIDY_TAG_DATALIST``
* ``TIDY_TAG_DETAILS``
* ``TIDY_TAG_DIALOG``
* ``TIDY_TAG_FIGCAPTION``
* ``TIDY_TAG_FIGURE``
* ``TIDY_TAG_FOOTER``
* ``TIDY_TAG_HEADER``
* ``TIDY_TAG_HGROUP``
* ``TIDY_TAG_MAIN``
* ``TIDY_TAG_MARK``
* ``TIDY_TAG_MENUITEM``
* ``TIDY_TAG_METER``
* ``TIDY_TAG_NAV``
* ``TIDY_TAG_OUTPUT``
* ``TIDY_TAG_PROGRESS``
* ``TIDY_TAG_SECTION``
* ``TIDY_TAG_SOURCE``
* ``TIDY_TAG_SUMMARY``
* ``TIDY_TAG_TEMPLATE``
* ``TIDY_TAG_TIME``
* ``TIDY_TAG_TRACK``
* ``TIDY_TAG_VIDEO``
* ``STREAM_CRYPTO_METHOD_TLSv1_3_CLIENT``
* ``STREAM_CRYPTO_METHOD_TLSv1_3_SERVER``
* ``STREAM_CRYPTO_PROTO_TLSv1_3``
* ``T_COALESCE_EQUAL``
* ``T_FN``

See also `New global constants in 7.4 <http://php.net/manual/en/migration74.constants.php>`_.

";
clearphp = "";
phpversion = "7.4-";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "1.8.4";

modifications[] = "Move the constants to a new namespace"
modifications[] = "Remove the old constants"
modifications[] = "Rename the old constants"name = "Try With Multiple Catch";
description = "Try may be used with multiple catch clauses. 

<?php

try { 
    OneCatch(); 
} catch (FirstException $e) {

}

try { 
    TwoCatches(); 
} catch (FirstException $e) {
} catch (SecondException $e) {
}

?>

See also `Exceptions <http://php.net/manual/en/language.exceptions.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.11.3";name = "Unusual Case For PHP Functions";
description = "Usually, PHP functions are written all in lower case.

<?php

// All uppercases PHP functions
ECHO STRTOLOWER('This String');

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
name = "PHP 7.4 Reserved Keyword";
description = "``fn`` is a new PHP keyword. In PHP 7.4, it is used to build the arrow functions. When used at an illegal position, ``fn`` generates a Fatal error at compile time.

As a key word, ``fn`` is not allowed as constant name, function name, class name or inside namespaces. 

<?php

// PHP 7.4 usage of fn
function array_values_from_keys($arr, $keys) {
    return array_map(fn($x) => $arr[$x], $keys);
}

// PHP 7.3 usage of fn
const fn = 1;

function fn() {}

class x {
    // This is valid in PHP 7.3 and 7.4
    function fn() {}
}

?>

``fn`` is fine for method names. It may also be used for constants with define(), and constant() but it is not recommended.

See also `PHP RFC: Arrow Functions <https://wiki.php.net/rfc/arrow_functions>`_.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.2";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Is_A() With String";
description = "When using is_a() with a string as first argument, the third argument is compulsory.

<?php

// is_a() works with string as first argument, when the third argument is 'true'
if (is_s('A', 'B', true)) {}

// is_a() works with object as first argument
if (is_s(new A, 'A')) {}
?>

See also is_a().
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.9";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Add the third argument, and set it to true"
modifications[] = "Use an object as a first argument"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "New Functions In PHP 5.4";
description = "PHP introduced new functions in PHP 5.4. If there are defined functions with such names, there will be a conflict when upgrading. It is advised to change those functions' name.
";
clearphp = "";
phpversion = "5.3-";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "PHP 7.2 Removed Functions";
description = "The following PHP native functions were removed in PHP 7.2.

* png2wbmp()
* jpeg2wbmp()
* create_function()
* gmp_random()
* each()

This analysis skips redefined PHP functions : when a replacement for a removed PHP function was created, with condition on the PHP version, then its usage is considered valid.

See also `Deprecated features in PHP 7.2.x <http://php.net/manual/en/migration72.deprecated.php>`_.
";
clearphp = "";
phpversion = "7.2-";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.9.9";

phpError[] = "The each() function is deprecated. This message will be suppressed on further calls"name = "Implode One Arg";
description = "implode() may be called with one arg. It is recommended to avoid it. 

Using two arguments makes it less surprising to new comers, and consistent with explode() syntax. 

<?php

$array = range('a', 'c');

// empty string is the glue
print implode('', $array);

// only the array : PHP uses the empty string as glue. 
// Avoid this
print implode($array);

?>

See also `implode <http://php.net/implode>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.7.7";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Add an empty string as first argument"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "PHP 7.0 New Interfaces";
description = "The following interfaces are introduced in PHP 7.0. They shouldn't be defined in custom code.";
clearphp = "";
phpversion = "7.0-";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Use Cli";
description = "Signal the usage of code in CLI mode, through the usage of `$argv` and `$argc` variables.

<?php

// Characteristics of CLI usage 
getopt("abcd");

?>
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Filter To add_slashes()";
description = "``FILTER_SANITIZE_MAGIC_QUOTES`` is deprecated. In PHP 7.4, it should be replaced with addslashes()

According to the migration RDFC : 'Magic quotes were deprecated all the way back in PHP 5.3 and later removed in PHP 5.4. The filter extension implements a sanitization filter that mimics this behavior of magic_quotes by calling addslashes() on the input in question.'

<?php

// Deprecated way to filter input
$var = filter_input($input, FILTER_SANITIZE_MAGIC_QUOTES);

// Alternative way to filter input
$var = addslashes($input);

?>

addslashes() used to filter data while building SQL queries, to prevent injections. Nowadays, prepared queries are a better option.

See also `Deprecations for PHP 7.4 <https://wiki.php.net/rfc/deprecations_php_7_4>`_.";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.9";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Replace ``FILTER_SANITIZE_MAGIC_QUOTES`` with addslashes()"
modifications[] = "Replace ``FILTER_SANITIZE_MAGIC_QUOTES`` with an adapted escaping system"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "New Functions In PHP 7.0";
description = "The following functions are now native functions in PHP 7.0. It is advised to change them before moving to this new version.

* get_resources()
* gc_mem_caches()
* preg_replace_callback_array()
* posix_setrlimit()
* random_bytes()
* random_int()
* intdiv()
* error_clear_last()

";
clearphp = "";
phpversion = "7.0-";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "PHP 7.2 Deprecations";
description = "Several functions are deprecated in PHP 7.2. 

* parse_str() with no second argument
* assert() on strings
* Usage of gmp_random(), create_function(), each()
* Usage of (unset)
* Usage of ``$php_errormsg``
* directive ``mbstring.func_overload`` (not supported yet)

Deprecated functions and extensions are reported in a separate analysis.

See also `Deprecations for PHP 7.2 <https://wiki.php.net/rfc/deprecations_php_7_2>`_.

";
clearphp = "";
phpversion = "7.2-";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.9.9";

modifications[] = "Remove the deprecated functions, and replace them with a new feature "
modifications[] = "Use a replacement function to emulate this old behavior"name = "PHP 8.0 Removed Functions";
description = "The following PHP native functions were removed in PHP 8.0.

* image2wbmp()
* png2wbmp() 
* jpeg2wbmp()
* ldap_sort()

 ";
clearphp = "";
phpversion = "7.0-";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "1.6.8";
name = "PHP 7.3 Removed Functions";
description = "The following PHP native functions were removed in PHP 7.3.

* image2wbmp()

This analysis skips redefined PHP functions : when a replacement for a removed PHP function was created, with condition on the PHP version, then its usage is considered valid.

See also `PHP 7.3 Removed Functions <http://php.net/manual/en/migration73.incompatible.php#migration70.incompatible.removed-functions>`_.

";
clearphp = "";
phpversion = "7.3-";
severity = "S_CRITICAL";
timetofix = "T_SLOW";
exakatSince = "1.4.0";name = "Undefined Caught Exceptions";
description = "Those are exceptions that are caught in the code, but are not defined in the application. 

They may be externally defined, such as in core PHP, extensions or libraries. Make sure those exceptions are useful to your application : otherwise, they are dead code.

<?php

try {
    library_function($some, $args);
    
} catch (LibraryException $e) {
    // This exception is not defined, and probably belongs to Library
    print "Library failed\n";

} catch (OtherLibraryException $e) {
    // This exception is not defined, and probably do not belongs to this code
    print "Library failed\n";

} catch (\Exception $e) {
    // This exception is a PHP standard exception
    print "Something went wrong, but not at Libary level\n";
}

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Overwritten Exceptions";
description = "In catch blocks, it is good practice not to overwrite the incoming exception, as information about the exception will be lost.

<?php

try {
    doSomething();
} catch (SomeException $e) { 
    // $e is overwritten 
    $e = new anotherException($e->getMessage()); 
    throw $e;
} catch (SomeOtherException $e) { 
    // $e is chained with the next exception 
    $e = new Exception($e->getMessage(), 0, $e); 
    throw $e;
}

?>
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Multiple Exceptions Catch()";
description = "It is possible to have several distinct exceptions class caught by the same catch, preventing code repetition. 

This is a new feature since PHP 7.1.

<?php

// PHP 7.1 and more recent
try {  
    throw new someException(); 
} catch (Single $s) {
    doSomething();
} catch (oneType | anotherType $s) {
    processIdentically();
} finally {

}

// PHP 7.0 and older
try {  
    throw new someException(); 
} catch (Single $s) {
    doSomething();
} catch (oneType $s) {
    processIdentically();
} catch (anotherType $s) {
    processIdentically();
} finally {

}

?>

This is a backward incompatible feature of PHP 7.1. 

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Uncaught Exceptions";
description = "The following exceptions are thrown in the code, but are never caught. 

<?php

// This exception is throw, but not caught. It will lead to a fatal error.
if ($message = check_for_error()) {
    throw new My\Exception($message);
}

// This exception is throw, and caught. 
try {
    if ($message = check_for_error()) {
        throw new My\Exception($message);
    }
} catch (\Exception $e) {
    doSomething();
}

?>

Either they will lead to a Fatal Error, or they have to be caught by an including application. This is a valid behavior for libraries, but is not for a final application.

See also `Structuring PHP Exceptions <https://www.alainschlesser.com/structuring-php-exceptions/>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Catch all the exceptions you throw"name = "Useless Catch";
description = "Catch clause should handle the exception with some work. 

Among the task of a catch clause : log the exception, clean any mess that was introduced, fail graciously. 

<?php

function foo($a) {
    try {
        $b = doSomething($a);
    } catch (Throwable $e) {
        // No log of the exception : no one knows it happened.
        
        // return immediately ? 
        return false;
    }
    
    $b->complete();
    
    return $b;
}

?>

See also `Exceptions <http://php.net/manual/en/language.exceptions.php>`_ and 
         `Best practices for PHP exception handling <https://www.moxio.com/blog/34/best-practices-for-php-exception-handling>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "1.1.4";

modifications[] = "Add a log call to the catch block"
modifications[] = "Handle correctly the exception"
[example1]
project="Zurmo"
file="app/protected/modules/workflows/forms/attributes/ExplicitReadWriteModelPermissionsWorkflowActionAttributeForm.php"
line="99"
code="
                try
                {
                    $group = Group::getById((int)$this->type);
                    $explicitReadWriteModelPermissions->addReadWritePermitable($group);
                }
                catch (NotFoundException $e)
                {
                    //todo: handle exception better
                    return;
                }
";
explain="Catch the exception, then return. At least, the comment is honest."

[example2]
project="PrestaShop"
file="src/Core/Addon/Module/ModuleManagerBuilder.php"
line="170"
code="    private function __construct()
    {
    // More code......
            try {
                $filesystem = new Filesystem();
                $filesystem->dumpFile($phpConfigFile, '<?php return ' . var_export($config, true) . ';' . "\n");
            } catch (IOException $e) {
                return false;
            }
        }
";
explain="Here, the catch clause will intercept a IO problem while writing element on the disk, and will return false. Since this is a constructor, the returned value will be ignored and the object will be left in a wrong state, since it was not totally inited."
name = "Defined Exceptions";
description = "This is the list of defined exceptions.

<?php

class myException extends \Exception {}

// A defined exception
throw new myException();

// not a defined exception : it is already defined. 
throw new \RuntimeException();

?>

See also `Exceptions <http://php.net/manual/en/language.exceptions.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Could Use Try";
description = "Some commands may raise exceptions. It is recommended to use the try/catch block to intercept those exceptions, and process them.

* / : ``DivisionByZeroError``
* % : ``DivisionByZeroError``
* intdiv() : ``DivisionByZeroError``
* << : ``ArithmeticError``
* >> : ``ArithmeticError``
* Phar::mungserver : ``PharException``
* Phar::webphar : ``PharException``

See also `Predefined Exceptions <http://php.net/manual/en/reserved.exceptions.php>`_,
         `PharException <http://php.net/manual/en/class.pharexception.php>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "1.5.0";

modifications[] = "Add a try/catch clause around those commands"
modifications[] = "Add a check on the values used with those operator : for example, check a dividend is not 0, or a bitshift is not negative"

[example1]
project="Mautic"
file="app/bundles/StageBundle/Controller/StageController.php"
line="78"
code="        //set limits
        $limit = $this->get('session')->get(
            'mautic.stage.limit',
            $this->coreParametersHelper->getParameter('default_pagelimit')
        );
/... Code where $limit is read but not modified /
        $count = count($stages);
        if ($count && $count < ($start + 1)) {
            $lastPage = ($count === 1) ? 1 : (ceil($count / $limit)) ?: 1;
";
explain="$limit is read as a session variable or a default value. There are no check here that $limit is not null, before using it in a division. It is easy to imagine this is done elsewhere, yet a try/catch could help intercept unwanted situations."
name = "Caught Variable";
description = "Catch clauses require an exception and a variable name. Often, the variable name is the same, `$e`, as learnt from the manual.

There seems to be a choice that is not enforced : one form is dominant, (> 90%) while the others are rare. 

The analyzed code has less than 10% of one of the three : for consistency reasons, it is recommended to make them all the same. 

<?php

try {
    // do Something()
}
catch (MyException1 $e)       { $log->log($e->getMessage();}
catch (MyException2 $e)       { $log->log($e->getMessage();}
catch (MyException3 $e)       { $log->log($e->getMessage();}
catch (MyException4 $e)       { $log->log($e->getMessage();}
catch (MyException5 $e)       { $log->log($e->getMessage();}
catch (MyException6 $e)       { $log->log($e->getMessage();}
catch (MyException7 $e)       { $log->log($e->getMessage();}
catch (MyException8 $e)       { $log->log($e->getMessage();}
catch (MyException9 $e)       { $log->log($e->getMessage();}
catch (MyException10 $e)      { $log->log($e->getMessage();}
catch (\RuntimeException $e)  { $log->log($e->getMessage();}
catch (\Error $error)         { $log->log($error->getMessage();}
catch (\Exception $exception) { $log->log($exception->getMessage();}
?>

See also `Exceptions <http://php.net/manual/en/language.exceptions.php>`_.
";

description = "";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_SLOW";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.7.6";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Make all caught constant consistent, and avoid using them for something else"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Exception Order";
description = "When catching exception, the most specialized exceptions must be in the early catch, and the most general exceptions must be in the later catch. Otherwise, the general catches intercept the exception, and the more specialized will not be read.

<?php

class A extends \Exception {}
class B extends A {}

try {
    throw new A();
} 
catch(A $a1) { }
catch(B $b2 ) { 
    // Never reached, as previous Catch is catching the early worm
}

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
[example1]
project="Woocommerce";
file="includes/api/v1/class-wc-rest-products-controller.php";
line="787"
code="		try {
			$product_id = $this->save_product( $request );
			$post       = get_post( $product_id );
			$this->update_additional_fields_for_object( $post, $request );
			$this->update_post_meta_fields( $post, $request );

			/**
			 * Fires after a single item is created or updated via the REST API.
			 *
			 * @param WP_Post         $post      Post data.
			 * @param WP_REST_Request $request   Request object.
			 * @param boolean         $creating  True when creating item, false when updating.
			 */
			do_action( 'woocommerce_rest_insert_product', $post, $request, false );
			$request->set_param( 'context', 'edit' );
			$response = $this->prepare_item_for_response( $post, $request );

			return rest_ensure_response( $response );
		} catch ( WC_Data_Exception $e ) {
			return new WP_Error( $e->getErrorCode(), $e->getMessage(), $e->getErrorData() );
		} catch ( WC_REST_Exception $e ) {
			return new WP_Error( $e->getErrorCode(), $e->getMessage(), array( 'status' => $e->getCode() ) );
		}

";
explain="This try/catch expression is able to catch both WC_Data_Exception and WC_REST_Exception. 

In another file, /includes/api/class-wc-rest-exception.php, we find that WC_REST_Exception extends WC_Data_Exception (class WC_REST_Exception extends WC_Data_Exception {}). So WC_Data_Exception is more general, and a WC_REST_Exception exception is caught with WC_Data_Exception Exception. The second catch should be put in first.

This code actually loads the file, join it, then split it again. file() would be sufficient. "
name = "Forgotten Thrown";
description = "An exception is instantiated, but not thrown. 

<?php

class MyException extends \Exception { }

if ($error !== false) {
    // This looks like 'throw' was omitted
    new MyException();
}

?>
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "0.10.2";

modifications[] = "Remove the throw expression"
modifications[] = "Add the new to the throw expression"

name = "Can't Throw Throwable";
description = "Classes extending ``Throwable`` can't be thrown. The same applies to interfaces. 

Although this code lints, PHP throws a Fatal error when executing or including it : ``Class fooThrowable cannot implement interface Throwable, extend Exception or Error instead``.

<?php

// This is the way to go
class fooException extends \Exception { }

// This is not possible and a lot of work
class fooThrowable implements \throwable { }

?>

See also `Throwable <http://php.net/manual/en/class.throwable.php>`_,
         `Exception <http://php.net/manual/en/class.exception.php>`_ and
         `Error <http://php.net/manual/en/class.error.php>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "1.3.3";

modifications[] = "Extends the \Exception class";
modifications[] = "Extends the \Error class";

phpError[] = "Class fooThrowable cannot implement interface Throwable, extend Exception or Error instead"
name = "Caught Exceptions";
description = "Exceptions used in catch clause. 

<?php

try {
    foo();
} catch (MyException $e) {
    fixException();
} finally {
    clean();
}

?>

See also `Exceptions <http://php.net/manual/en/language.exceptions.php>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Unthrown Exception";
description = "These are exceptions that are defined in the code but never thrown. 

<?php

//This exception is defined but never used in the code.
class myUnusedException extends \Exception {}

//This exception is defined and used in the code.
class myUsedException extends \Exception {}

throw new myUsedException('I was called');

?>

See also `Exceptions <http://php.net/manual/en/language.exceptions.php>`_.
";
clearphp = "no-unthrown-exceptions";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Thrown Exceptions";
description = "Usage of throw keyword.

<?php

throw new MyException('Error happened');

?>

See also `Exceptions <http://php.net/manual/en/language.exceptions.php>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Throw Functioncall";
description = "The ``throw`` keyword expects to use an exception. Calling a function to prepare that exception before throwing it is possible, but forgetting the new keyword is also possible. 

<?php

// Forgotten new
throw \RuntimeException('error!');

// Code is OK, function returns an exception
throw getException(ERROR_TYPE, 'error!');

function getException(ERROR_TYPE, $message) {
    return new \RuntimeException($messsage);
}

?>

When the ``new`` keyword is forgotten, then the class constructor is used as a function name, and now exception is emitted, but an ``Undefined function`` fatal error is emitted. 

See also `Exceptions <http://php.net/manual/en/language.exceptions.php>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Add the new operator to the call"
modifications[] = "Make sure the function is really a functioncall, not a class name"
phpError[] = "Call to undefined function"

[example1]
project="SugarCrm"
file="include/externalAPI/cmis_repository_wrapper.php"
line="918"
code="    function getContentChanges()
    {
        throw Exception(\"Not Implemented\");
    }
";
explain="SugarCRM uses exceptions to fill work in progress. Here, we recognize a forgotten 'new' that makes throw call a function named 'Exception'. This fails with a Fatal Error, and doesn't issue the right messsage. The same error had propgated in the code by copy and paste : it is available 17 times in that same file."


[example2]
project="Zurmo"
file="app/protected/modules/gamification/rules/collections/GameCollectionRules.php"
line="66"
code="    abstract class GameCollectionRules
    {
        /**
         * @return string
         * @throws NotImplementedException - Implement in children classes
         */
        public static function getType()
        {
            throw NotImplementedException();
        }
";
explain="Other part of the code actually instantiate the exception before throwing it."
name = "PHP Exception";
description = "Mark an exception as a native exception. They may come from PHP standard distribution or an extension.

<?php

// From the native set
$a = new LogicException('Logic error');
throw $a;

// From an extension
throw new ZookeeperException('Zookeeper error');

?>

See also `Exceptions <http://php.net/manual/en/language.exceptions.php>`_.
";
clearphp = "";
exakatSince = "1.5.2";name = "Rethrown Exceptions";
description = "Throwing a caught exception is usually useless and dead code.

When exceptions are caught, they should be processed or transformed, but not rethrown as is.

Those issues often happen when a catch structure was positioned for debug purposes, but lost its usage later. 

<?php

try {
    doSomething();
} catch (Exception $e) {
    throw $e;
}

?>

See also `What are the best practices for catching and re-throwing exceptions? <https://stackoverflow.com/questions/5551668/what-are-the-best-practices-for-catching-and-re-throwing-exceptions>`_ and 
         `Exception chaining <http://php.net/manual/en/exception.construct.php>`_.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.9.0";
modifications[] = "Log the message of the exception for later usage."
modifications[] = "Remove the try/catch and let the rest of the application handle this exception."
modifications[] = "Chain the exception, by throwing a new exception, including the caught exception. "
[example1]
project="PrestaShop"
file="classes/webservice/WebserviceOutputBuilder.php"
line="731"
code="	public function setSpecificField($object, $method, $field_name, $entity_name)
	{
		try {
			$this->validateObjectAndMethod($object, $method);
		} catch (WebserviceException $e) {
			throw $e;
		}

		$this->specificFields[$field_name] = array('entity'=>$entity_name, 'object' => $object, 'method' => $method, 'type' => gettype($object));
		return $this;
	}
";
explain="The setSpecificField method catches a WebserviceException, representing an issue with the call to the webservice. However, that piece of information is lost, and the exception is rethrown immediately, without any action."
name = "ext/event";
description = "Extension event.

This is an extension to efficiently schedule I/O, time and signal based events using the best I/O notification mechanism available for specific platform. This is a port of libevent to the PHP infrastructure.

<?php
// Read callback
function readcb($bev, $base) {
    //$input = $bev->input; //$bev->getInput();

    //$pos = $input->search('TTP');
    $pos = $bev->input->search('TTP');

    while (($n = $bev->input->remove($buf, 1024)) > 0) {
        echo $buf;
    }
}

// Event callback
function eventcb($bev, $events, $base) {
    if ($events & EventBufferEvent::CONNECTED) {
        echo 'Connected.';
    } elseif ($events & (EventBufferEvent::ERROR | EventBufferEvent::EOF)) {
        if ($events & EventBufferEvent::ERROR) {
            echo 'DNS error: ', $bev->getDnsErrorString(), PHP_EOL;
        }

        echo 'Closing'.PHP_EOL;
        $base->exit();
        exit('Done'.PHP_EOL);
    }
}

if ($argc != 3) {
    echo <<<EOS
Trivial HTTP 0.x client
Syntax: php {$argv[0]} [hostname] [resource]
Example: php {$argv[0]} www.google.com /

EOS;
    exit();
}

$base = new EventBase();

$dns_base = new EventDnsBase($base, TRUE); // We'll use async DNS resolving
if (!$dns_base) {
    exit('Failed to init DNS Base'.PHP_EOL);
}

$bev = new EventBufferEvent($base, /* use internal socket */ NULL,
    EventBufferEvent::OPT_CLOSE_ON_FREE | EventBufferEvent::OPT_DEFER_CALLBACKS,
    'readcb', /* writecb */ NULL, 'eventcb'
);
if (!$bev) {
    exit('Failed creating bufferevent socket'.PHP_EOL);
}

//$bev->setCallbacks('readcb', /* writecb */ NULL, 'eventcb', $base);
$bev->enable(Event::READ | Event::WRITE);

$output = $bev->output; //$bev->getOutput();
if (!$output->add(
    'GET '.$argv[2].' HTTP/1.0'.\"\r\n\".
    'Host: '.$argv[1].\"\r\n\".
    'Connection: Close'."\r\n\r\n"
)) {
    exit('Failed adding request to output buffer\n');
}

if (!$bev->connectHost($dns_base, $argv[1], 80, EventUtil::AF_UNSPEC)) {
    exit('Can\'t connect to host '.$argv[1].PHP_EOL);
}

$base->dispatch();
?>

See also `Event <http://php.net/event>`_ and `libevent <http://libevent.org/>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/cyrus";
description = "Extension ext/cyrus.

The Cyrus IMAP server is electronic mail server software developed by Carnegie Mellon University. 

<?php

$connexion = cyrus_connect ('localhost');

?>

See also `Cyrus <http://php.net/manual/en/book.cyrus.php>`_ and `Cyrus IMAP server <https://en.wikipedia.org/wiki/Cyrus_IMAP_server>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/readline";
description = "Extension readline.

The readline functions implement an interface to the GNU Readline library. These are functions that provide editable command lines.

<?php
//get 3 commands from user
for ($i=0; $i < 3; $i++) {
        $line = readline(\"Command: \");
        readline_add_history($line);
}

//dump history
print_r(readline_list_history());

//dump variables
print_r(readline_info());
?>

See also `ext/readline <http://php.net/manual/en/book.readline.php>`_ and 
         `The GNU Readline Library <https://tiswww.case.edu/php/chet/readline/rltop.html>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/exif";
description = "Extension EXIF : Exchangeable image file format.

The EXIF extension manipulates image meta data.

<?php
echo 'test1.jpg:<br />';
$exif = exif_read_data('tests/test1.jpg', 'IFD0');
echo $exif===false ? 'No header data found.<br />' : 'Image contains headers<br />';

$exif = exif_read_data('tests/test2.jpg', 0, true);
echo 'test2.jpg:<br />';
foreach ($exif as $key => $section) {
    foreach ($section as $name => $val) {
        echo $key.$name.': '.$val.'<br />';
    }
}
?>

See also `Exchangeable image information <http://php.net/manual/en/book.exif.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/phalcon";
description = "Extension Phalcon : High Performance PHP Framework.

Phalcon's autoload examples from the docs :  `Tutorial 1: Let’s learn by example <https://docs.phalconphp.com/en/latest/reference/tutorial.html>`_

<?php

use Phalcon\Loader;

// ...

$loader = new Loader();

$loader->registerDirs(
    [
        ../app/controllers/,
        ../app/models/,
    ]
);

$loader->register();

?>

See also `PhalconPHP <https://phalconphp.com/>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/ldap";
description = "Extension ext/ldap.

LDAP is the Lightweight Directory Access Protocol, and is a protocol used to access 'Directory Servers'. The Directory is a special kind of database that holds information in a tree structure.

<?php
// basic sequence with LDAP is connect, bind, search, interpret search
// result, close connection

echo '<h3>LDAP query test</h3>';
echo 'Connecting ...';
$ds=ldap_connect('localhost');  // must be a valid LDAP server!
echo 'connect result is ' . $ds . '<br />';

if ($ds) { 
    echo 'Binding ...'; 
    $r=ldap_bind($ds);     // this is an 'anonymous' bind, typically
                           // read-only access
    echo 'Bind result is ' . $r . '<br />';

    echo 'Searching for (sn=S*) ...';
    // Search surname entry
    $sr=ldap_search($ds, 'o=My Company, c=US', 'sn=S*');  
    echo 'Search result is ' . $sr . '<br />';

    echo 'Number of entries returned is ' . ldap_count_entries($ds, $sr) . '<br />';

    echo 'Getting entries ...<p>';
    $info = ldap_get_entries($ds, $sr);
    echo 'Data for ' . $info['count'] . ' items returned:<p>';

    for ($i=0; $i<$info['count']; $i++) {
        echo 'dn is: ' . $info[$i]['dn'] . '<br />';
        echo 'first cn entry is: ' . $info[$i]['cn'][0] . '<br />';
        echo 'first email entry is: ' . $info[$i]['mail'][0] . '<br /><hr />';
    }

    echo 'Closing connection';
    ldap_close($ds);

} else {
    echo '<h4>Unable to connect to LDAP server</h4>';
}
?>

See also `Lightweight Directory Access Protocol <http://php.net/manual/en/book.ldap.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/php-ast";
description = "PHP-AST extension (PHP 7.0 +).

<?php

$code = <<<'EOC'
<?php
$var = 42;
EOC;

var_dump(ast\parse_code($code, $version=50));

?>

See also `ext/ast <https://pecl.php.net/package/ast>`_ and `Extension exposing PHP 7 abstract syntax tree <https://github.com/nikic/php-ast>`_.
";
clearphp = "";
phpversion = "7.0+";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/seaslog";
description = "Extension Seaslog.

An effective,fast,stable log extension for PHP.

<?php
$basePath_1 = SeasLog::getBasePath();

SeasLog::setBasePath('/log/base_test');
$basePath_2 = SeasLog::getBasePath();

var_dump($basePath_1,$basePath_2);

/*
string(19) ""/log/seaslog-ciogao""
string(14) ""/log/base_test""
*/

$lastLogger_1 = SeasLog::getLastLogger();

SeasLog::setLogger('testModule/app1');
$lastLogger_2 = SeasLog::getLastLogger();

var_dump($lastLogger_1,$lastLogger_2);
/*
string(7) ""default""
string(15) ""testModule/app1""
*/
?>

See also `ext/SeasLog on Github <https://github.com/SeasX/SeasLog>`_, and 
         `SeasLog <http://seasx.github.io/SeasLog/>`_.
         
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.4.4";name = "ext/snmp";
description = "Extension SNMP.

The SNMP extension provides a very simple and easily usable toolset for managing remote devices via the Simple Network Management Protocol.

<?php
$nameOfSecondInterface = snmp3_get('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'IF-MIB::ifName.2');
?>

See also `Net SNMP <http://www.net-snmp.org/>`_ and `SNMP <http://php.net/manual/en/book.snmp.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/iis";
description = "Extension IIS Administration.

It provides functions to administrate Microsoft Internet Information Server (IIS).

<?php
  $path = iis_get_server_by_path('/path/to/root/folder/')
?>

This extension is available for Windows only. 

See also `IIS Administration <http://www.php.net/manual/en/book.iisfunc.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/math";
description = "Core functions that provides math standard functions.

This is not a real extension : it is a documentation section, that helps sorting the functions. 

<?php
echo decbin(12) . PHP_EOL;
echo decbin(26);
?>

See also `Mathematical Functions <http://php.net/manual/en/book.math.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/v8js";
description = "Extension v8js.

This extension embeds the `V8 Javascript Engine <https://bugs.chromium.org/p/v8/issues/list>`_ into PHP.

<?php

$v8 = new V8Js();

/* basic.js */
$JS = <<< EOT
len = print('Hello' + ' ' + 'World!' + '\\n');
len;
EOT;

try {
  var_dump($v8->executeString($JS, 'basic.js'));
} catch (V8JsException $e) {
  var_dump($e);
}

?>

See also `V8 Javascript Engine Integration <http://php.net/manual/en/book.v8js.php>`_, 
         `V8 Javascript Engine for PHP <https://github.com/phpv8/v8js>`_ and 
         `pecl v8js <https://pecl.php.net/package/v8js>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/mhash";
description = "Extension mhash (obsolete since PHP 5.3.0).

This extension provides functions, intended to work with `mhash <http://mhash.sourceforge.net/>`_.

<?php
$input = 'what do ya want for nothing?';
$hash = mhash(MHASH_MD5, $input);
echo 'The hash is ' . bin2hex($hash) . '<br />'.PHP_EOL;
$hash = mhash(MHASH_MD5, $input, 'Jefe');
echo 'The hmac is ' . bin2hex($hash) . '<br />'.PHP_EOL;
?>

See also `Extension mhash <http://php.net/manual/en/book.mhash.php>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.9.4";name = "ext/tokyotyrant";
description = "Extension for Tokyo Tyrant.

tokyo_tyrant extension provides a wrapper for Tokyo Tyrant client libraries. 

<?php
$tt = new TokyoTyrant(\"localhost\");
$tt->put(\"key\", \"value\");
echo $tt->get(\"key\");
?>

See also `tokyo_tyrant <http://php.net/manual/en/book.tokyo-tyrant.php>`_ and 
         `Tokyo cabinet <http://fallabs.com/tokyocabinet/>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/pcntl";
description = "Extension for process control.

Process Control support in PHP implements the Unix style of process creation, program execution, signal handling and process termination. Process Control should not be enabled within a web server environment and unexpected results may happen if any Process Control functions are used within a web server environment.

<?php
declare(ticks=1);

$pid = pcntl_fork();
if ($pid == -1) {
     die('could not fork'); 
} else if ($pid) {
     exit(); // we are the parent 
} else {
     // we are the child
}

// detatch from the controlling terminal
if (posix_setsid() == -1) {
    die('could not detach from terminal');
}

// setup signal handlers
pcntl_signal(SIGTERM, 'sig_handler');
pcntl_signal(SIGHUP, 'sig_handler');

// loop forever performing tasks
while (1) {

    // do something interesting here

}

function sig_handler($signo) 
{

     switch ($signo) {
         case SIGTERM:
             // handle shutdown tasks
             exit;
             break;
         case SIGHUP:
             // handle restart tasks
             break;
         default:
             // handle all other signals
     }

}

?>

See also `Process Control <http://php.net/manual/en/book.pcntl.php>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/vips";
description =  "Extension VIPS.

The VIPS image processing system is a very fast, multi-threaded image processing library with low memory needs.

<?php
	dl('vips.' . PHP_SHLIB_SUFFIX);
	$x = vips_image_new_from_file($argv[1])["out"];
	vips_image_write_to_file($x, $argv[2]);
?>

See also `php-vips-ext <https://github.com/jcupitt/php-vips-ext>`_, 
         `libvips <https://jcupitt.github.io/libvips/>`_ and
         `libvips adapter for PHP Imagine <https://www.liip.ch/en/blog/libvips-adapter-for-php-imagine>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.0.4";name = "ext/fann";
description = "Extension ``FANN`` : Fast Artificial Neural Network.

PHP binding for ``FANN`` library which implements multilayer artificial neural networks with support for both fully connected and sparsely connected networks.

<?php
$num_input = 2;
$num_output = 1;
$num_layers = 3;
$num_neurons_hidden = 3;
$desired_error = 0.001;
$max_epochs = 500000;
$epochs_between_reports = 1000;

$ann = fann_create_standard($num_layers, $num_input, $num_neurons_hidden, $num_output);

if ($ann) {
    fann_set_activation_function_hidden($ann, FANN_SIGMOID_SYMMETRIC);
    fann_set_activation_function_output($ann, FANN_SIGMOID_SYMMETRIC);

    $filename = dirname(__FILE__) . '/xor.data';
    if (fann_train_on_file($ann, $filename, $max_epochs, $epochs_between_reports, $desired_error))
        fann_save($ann, dirname(__FILE__) . '/xor_float.net');

    fann_destroy($ann);
}
?>

See also `extension FANN <http://php.net/manual/en/book.fann.php>`_ and `lib FANN <http://leenissen.dk/>`_.";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "ext/zookeeper";
description = "Extension for Apache Zookeeper. 

ZooKeeper is an Apache project that enables centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$path = '/path/to/node';
$value = 'nodevalue';
$zookeeper->set($path, $value);

$r = $zookeeper->get($path);
if ($r)
  echo $r;
else
  echo 'ERR';
?>

See also `ext/zookeeper <http://php.net/zookeeper>`_, 
         `Install Zookeeper PHP Extension <https://blog.programster.org/install-zookeeper-php-extension>`_
         `Zookeeper <https://zookeeper.apache.org/>`_ and .

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.2.5";name = "ext/nsapi";
description = "NSAPI specific functions calls. 

These functions are only available when running PHP as a NSAPI module in Netscape/iPlanet/Sun webservers.

<?php

// This scripts depends on ext/nsapi
if (ini_get('nsapi.read_timeout') < 60) {
    doSomething();
}

?>

See also `Sun, iPlanet and Netscape servers on Sun Solaris <http://php.net/manual/en/install.unix.sun.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.9.2";name = "ext/sqlsrv";
description = "Extension for Microsoft SQL Server Driver.

The SQLSRV extension allows you to access Microsoft SQL Server and SQL Azure databases when running PHP on Windows. 

<?php
$serverName = 'serverName\sqlexpress';
$connectionInfo = array( 'Database'=>'dbName', 'UID'=>'username', 'PWD'=>'password' );
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$sql = 'INSERT INTO Table_1 (id, data) VALUES (?, ?)';
$params = array(1, 'some data');

$stmt = sqlsrv_query( $conn, $sql, $params);
if( $stmt === false ) {
     die( print_r( sqlsrv_errors(), true));
}
?>

See also `Microsoft SQL Server Driver <http://php.net/sqlsrv>`_ and `PHP Driver for SQL Server Support for LocalDB <http://msdn.microsoft.com/en-us/library/hh487161.aspx>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/date";
description = "Extension ext/date.

These functions allows the manipulation of date and time from the server where the PHP scripts are running. 

<?php
$dt = new DateTime('2015-11-01 00:00:00', new DateTimeZone('America/New_York'));
echo 'Start: ', $dt->format('Y-m-d H:i:s P'), PHP_EOL;
$dt->add(new DateInterval('PT3H'));
echo 'End:   ', $dt->format('Y-m-d H:i:s P'), PHP_EOL;
?>

See also `Date and Time <http://php.net/manual/en/book.datetime.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/lzf";
description = "Extension LZF.

LZF is a very fast compression algorithm, ideal for saving space with only slight speed cost. It can be optimized for speed or space at the time of compilation.

<?php
$compressed = lzf_compress("This is test of LZF extension");

echo base64_encode($compressed);
?>

See also `lzf <http://php.net/lzf>`_ and 
         `liblzf <http://oldhome.schmorp.de/marc/liblzf.html>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.3.5";name = "ext/swoole";
description = "Swoole : Production-Grade Async programming Framework for PHP.

Swoole is an event-driven asynchronous & concurrent networking communication framework with high performance written only in C for PHP.

<?php
for($i = 0; $i < 100; $i++) {
    Swoole\Coroutine::create(function() use ($i) {
        $redis = new Swoole\Coroutine\Redis();
        $res = $redis->connect('127.0.0.1', 6379);
        $ret = $redis->incr('coroutine');
        $redis->close();
        if ($i == 50) {
            Swoole\Coroutine::create(function() use ($i) {
                $redis = new Swoole\Coroutine\Redis();
                $res = $redis->connect('127.0.0.1', 6379);
                $ret = $redis->set('coroutine_i', 50);
                $redis->close();
            });
        }
    });
}

?>

See also `Swoole <https://www.swoole.com/>`_ and 
         `Swoole src <https://github.com/swoole/swoole-src>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.12.0";name = "ext/sqlite";
description = "Extension Sqlite 2.

Support for SQLite version 2 databases. The support for this version of Sqlite is not maintained anymore. It is recommended to use ``SQLite3``.

<?php

if ($db = sqlite_open('mysqlitedb', 0666, $sqliteerror)) { 
    sqlite_query($db, 'CREATE TABLE foo (bar varchar(10))');
    sqlite_query($db, 'INSERT INTO foo VALUES (\"fnord\")');
    $result = sqlite_query($db, 'select bar from foo');
    var_dump(sqlite_fetch_array($result)); 
} else {
    die($sqliteerror);
}

?>

See also `ext/sqlite <http://php.net/manual/en/book.sqlite.php>`_ and 
         `SQLite <http://sqlite.org/>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "ext/ob";
description = "Extension Output Buffering Control.

The Output Control functions allow you to control when output is sent from the script.

<?php

ob_start();
echo "Hello\n";

setcookie("cookiename", "cookiedata");

ob_end_flush();

?>


See also `Output Buffering Control <http://php.net/manual/en/book.outcontrol.php>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/sockets";
description = "Extension socket.

The socket extension implements a low-level interface to the socket communication functions based on the popular BSD sockets, providing the possibility to act as a socket server as well as a client.

<?php

//Example #2 Socket example: Simple TCP/IP client
//From the PHP manual

error_reporting(E_ALL);

echo \"<h2>TCP/IP Connection</h2>\n\";

/* Get the port for the WWW service. */
$service_port = getservbyname('www', 'tcp');

/* Get the IP address for the target host. */
$address = gethostbyname('www.example.com');

/* Create a TCP/IP socket. */
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
    echo 'socket_create() failed: reason: ' . socket_strerror(socket_last_error()) . PHP_EOL;
} else {
    echo 'OK.'.PHP_EOL;
}

echo 'Attempting to connect to '$address' on port '$service_port'...';
$result = socket_connect($socket, $address, $service_port);
if ($result === false) {
    echo 'socket_connect() failed.\nReason: ($result) ' . socket_strerror(socket_last_error($socket)) . '\n';
} else {
    echo 'OK.'.PHP_EOL;
}

$in = \"\"HEAD / HTTP/1.1\r\n\"\";
$in .= \"\"Host: www.example.com\r\n\"\";
$in .= \"\"Connection: Close\r\n\r\n\"\";
$out = '';

echo 'Sending HTTP HEAD request...';
socket_write($socket, $in, strlen($in));
echo \"OK.\n\";

echo 'Reading response:\n\n';
while ($out = socket_read($socket, 2048)) {
    echo $out;
}

echo 'Closing socket...';
socket_close($socket);
echo 'OK.\n\n';
?>

See also `Sockets <http://php.net/manual/en/book.sockets.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/geoip";
description = "Extension geoip for PHP.

The GeoIP extension allows the localisation of an IP address. 

<?php
$org = geoip_org_by_name('www.example.com');
if ($org) {
    echo 'This host IP is allocated to: ' . $org;
}
?>

See also `GeoIP <http://php.net/manual/en/book.geoip.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/simplexml";
description = "Extension ``SimpleXML``.

The ``SimpleXML`` extension provides a very simple and easily usable toolset to convert XML to an object that can be processed with normal property selectors and array iterators.

<?php

$xml = <<<'XML'
<?xml version='1.0' standalone='yes' ? >
<movies>
 <movie>
  <title>PHP: Behind the Parser</title>
  <characters>
   <character>
    <name>Ms. Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El Act&#211;r</actor>
   </character>
  </characters>
  <plot>
   So, this language. It's like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.
  </plot>
  <great-lines>
   <line>PHP solves all my web problems</line>
  </great-lines>
  <rating type=\"thumbs\">7</rating>
  <rating type=\"stars\">5</rating>
 </movie>
</movies>
XML;

$movies = new SimpleXMLElement($xml);

echo $movies->movie[0]->plot;
?>

See also `SimpleXML <http://php.net/manual/en/book.simplexml.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/ftp";
description = "Extension FTP.

The functions in this extension implement client access to files servers speaking the File Transfer Protocol (FTP) as defined in `RFC 959 <http://www.faqs.org/rfcs/rfc959>`_.

<?php
// set up basic connection
$conn_id = ftp_connect($ftp_server); 

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); 

// check connection
if ((!$conn_id) || (!$login_result)) { 
    echo 'FTP connection has failed!';
    echo 'Attempted to connect to $ftp_server for user $ftp_user_name'; 
    exit; 
} else {
    echo 'Connected to $ftp_server, for user $ftp_user_name';
}

// upload the file
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY); 

// check upload status
if (!$upload) { 
    echo 'FTP upload has failed!';
} else {
    echo 'Uploaded $source_file to $ftp_server as $destination_file';
}

// close the FTP stream 
ftp_close($conn_id); 
?>

See also `FTP <http://php.net/manual/en/book.ftp.php>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/wincache";
description = "Extension Wincache.

The `Wincache extension for PHP <http://www.php.net/wincache>`_ is a PHP accelerator that is used to increase the speed of PHP applications running on Windows and Windows Server.

<?php
$fp = fopen('/tmp/lock.txt', 'r+');
if (wincache_lock(“lock_txt_lock”)) { // do an exclusive lock
    ftruncate($fp, 0); // truncate file
    fwrite($fp, 'Write something here\n');
    wincache_unlock(“lock_txt_lock”); // release the lock
} else {
    echo 'Couldn't get the lock!';
}
fclose($fp);
?>

See also `WinCache Extension for PHP <https://www.iis.net/downloads/microsoft/wincache-extension>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/wikidiff2";
description = "Extension wikidiff2.

Wikidiff2 is a PHP and HHVM module that provides the external diff engine for MediaWiki. 

<?php
$x = <<<EOT
foo bar
baz
quux
bang
EOT;

$y = <<<EOT
foo test
baz
test
bang
EOT;

print wikidiff2_inline_diff( $x, $y, 2 );
?>

See also `wikidiff2 <https://www.mediawiki.org/wiki/Extension:Wikidiff2>`_ and `wikidiff2 (C ext) <https://github.com/Seb35/wikidiff2>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/suhosin";
description = "Suhosin extension.

Suhosin (pronounced 'su-ho-shin') is an advanced protection system for PHP installations. It was designed to protect servers and users from known and unknown flaws in PHP applications and the PHP core.

<?php

// sha256 is a ext/suhosin specific function
$sha256 = sha256($string);

?>

See also `Suhosin.org <https://suhosin.org/>`_";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/eio";
description = "Extension EIO.

This is a PHP extension wrapping functions of the libeio library written by Marc Lehmann.

Libeio is a an asynchronous I/O library. Features basically include asynchronous versions of POSIX API(read, write, open, close, stat, unlink, fdatasync, mknod, readdir etc.); sendfile (native on Solaris, Linux, HP-UX, FreeBSD); readahead. libeio itself emulates the system calls, if they are not available on specific(UNIX-like) platform.

<?php
$str      = str_repeat('1', 20);
$filename = '/tmp/tmp_file' .uniqid();
@unlink($filename);
touch($filename);
eio_open($filename, EIO_O_RDWR, NULL, EIO_PRI_DEFAULT, function($filename, $fd) use ($str) {
	eio_write($fd, $str, strlen($str), 0, null, function($fd, $written) use ($str, $filename) {
		var_dump([
			'written'  => $written,
			'strlen'   => strlen($str),
			'filesize' => filesize($filename),
			'count'    => substr_count(file_get_contents($filename), '1')
			]);
	}, $fd);
}, $filename);
eio_event_loop();
?>

See also `libeio <http://software.schmorp.de/pkg/libeio.html>`_, 
         `PHP extension for libeio  <https://github.com/rosmanov/pecl-eio>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.3.3";name = "ext/csprng";
description = "CSPRNG Functions : cryptographically secure pseudo-random number generator.

The CSPRNG API provides an easy and reliable way to generate crypto-strong random integers and bytes for use within cryptographic contexts.

<?php
$bytes = random_bytes(5);
var_dump(bin2hex($bytes));

//string(10) "385e33f741"
?>

See also `CSPRNG <http://php.net/manual/en/book.csprng.php>`_ and 
         `Cryptographically secure pseudorandom number generator <https://en.wikipedia.org/wiki/Cryptographically_secure_pseudorandom_number_generator>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.3.4";name = "ext/memcached";
description = "Extension Memcached.

This extension uses the libmemcached library to provide an API for communicating with memcached servers. It also provides a session handler (memcached).

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->set('foo', 100);
var_dump($m->get('foo'));
?>

See also `ext/memcached manual <http://php.net/manual/en/book.memcached.php>`_ and 
         `memcached <http://www.memcached.org/>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/libsodium";
description = "Extension for libsodium : in PECL until PHP 7.2, and in core ever since. 

The Sodium crypto library (libsodium) is a modern, easy-to-use software library for encryption, decryption, signatures, password hashing and more.

Sodium supports a variety of compilers and operating systems, including Windows (with MinGW or Visual Studio, x86 and x64), iOS and Android.

The design choices emphasize security, and \"magic constants\" have clear rationales.

<?php
// Example from the docs : https://paragonie.com/book/pecl-libsodium/read/06-hashing.md#crypto-generichash

// Fast, unkeyed hash function.
// Can be used as a secure replacement for MD5
$h = \Sodium\crypto_generichash('msg');

// Fast, keyed hash function.
// The key can be of any length between \Sodium\CRYPTO_GENERICHASH_KEYBYTES_MIN
// and \Sodium\CRYPTO_GENERICHASH_KEYBYTES_MAX, in bytes.
// \Sodium\CRYPTO_GENERICHASH_KEYBYTES is the recommended length.
$h = \Sodium\crypto_generichash('msg', $key);

// Fast, keyed hash function, with user-chosen output length, in bytes.
// Output length can be between \Sodium\CRYPTO_GENERICHASH_BYTES_MIN and
// \Sodium\CRYPTO_GENERICHASH_BYTES_MAX.
// \Sodium\CRYPTO_GENERICHASH_BYTES is the default length.
$h = \Sodium\crypto_generichash('msg', $key, 64);

?>

See also `PHP extension for libsodium <https://github.com/jedisct1/libsodium-php>`_ and 
         `Using Libsodium in PHP Projects <https://paragonie.com/book/pecl-libsodium/read/00-intro.md>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.10.2";name = "ext/xdiff";
description = "Extension xdiff.

xdiff extension enables you to create and apply patch files containing differences between different revisions of files.

<?php
$old_version = 'my_script-1.0.php';
$patch = 'my_script.patch';

$errors = xdiff_file_patch($old_version, $patch, 'my_script-1.1.php');
if (is_string($errors)) {
   echo 'Rejects:'.PHP_EOL;
   echo $errors;
}

?>

See also `xdiff <http://php.net/manual/en/book.xdiff.php>`_ and `libxdiff <http://www.xmailserver.org/xdiff-lib.html>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/gender";
description = "Gender extension.

The Gender PHP extension is a port of the gender.c program originally written by Joerg Michael. Its main purpose is to find out the gender of firstnames, based on a database of over 40000 firstnames from 54 countries.

<?php

namespace Gender;

$gender = new Gender;

 
$name = 'Milene';
$country = Gender::FRANCE;
 
$result = $gender->get($name, $country);

$data = $gender->country($country);

switch($result) {
    case Gender::IS_FEMALE:
        printf('The name %s is female in %s\n', $name, $data['country']);
    break;

 
    case Gender::IS_MOSTLY_FEMALE:
        printf('The name %s is mostly female in %s\n', $name, $data['country']);
    break;

 
    case Gender::IS_MALE:
        printf('The name %s is male in %s\n', $name, $data['country']);
    break;

 
    case Gender::IS_MOSTLY_MALE:
        printf('The name %s is mostly male in %s\n', $name, $data['country']);
    break;

 
    case Gender::IS_UNISEX_NAME:
        printf('The name %s is unisex in %s\n', $name, $data['country']);
    break;

 
    case Gender::IS_A_COUPLE:
        printf('The name %s is both male and female in %s\n', $name, $data['country']);
    break;

 
    case Gender::NAME_NOT_FOUND:
        printf('The name %s was not found for %s\n', $name, $data['country']);
    break;

 
    case Gender::ERROR_IN_NAME:
        echo 'There is an error in the given name!'.PHP_EOL;
    break;
 
    default:
        echo 'An error occurred!'.PHP_EOL;
    break;

}

?>

See also `ext/gender manual <http://php.net/manual/en/book.gender.php>`_ and 
         `genderReader <https://github.com/cstuder/genderReader>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.11.6";name = "ext/recode";
description = "Extension GNU Recode.

This module contains an interface to the GNU Recode library. The GNU Recode library converts files between various coded character sets and surface encodings.

<?php
echo recode_string('us..flat', 'The following character has a diacritical mark: á');
?>

This extension is not available on Windows.

See also `ext/recode <http://www.php.net/manual/en/book.recode.php>`_ and `Recode <https://github.com/pinard/Recode>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/tokenizer";
description = "Extension Tokenizer.

The Tokenizer functions provide an interface to the PHP tokenizer embedded in the Zend Engine.

<?php
/*
* T_ML_COMMENT does not exist in PHP 5.
* The following three lines define it in order to
* preserve backwards compatibility.
*
* The next two lines define the PHP 5 only T_DOC_COMMENT,
* which we will mask as T_ML_COMMENT for PHP 4.
*/
if (!defined('T_ML_COMMENT')) {
   define('T_ML_COMMENT', T_COMMENT);
} else {
   define('T_DOC_COMMENT', T_ML_COMMENT);
}

$source = file_get_contents('example.php');
$tokens = token_get_all($source);

foreach ($tokens as $token) {
   if (is_string($token)) {
       // simple 1-character token
       echo $token;
   } else {
       // token array
       list($id, $text) = $token;

       switch ($id) { 
           case T_COMMENT: 
           case T_ML_COMMENT: // we\'ve defined this
           case T_DOC_COMMENT: // and this
               // no action on comments
               break;

           default:
               // anything else -> output 'as is'
               echo $text;
               break;
       }
   }
}
?>

See also `tokenizer <http://www.php.net/tokenizer>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/dom";
description = "Extension Document Object Model.

The DOM extension allows the manipulation of XML documents through the DOM API with PHP.

<?php

$dom = new DOMDocument('1.0', 'utf-8');

$element = $dom->createElement('test', 'This is the root element!');

// We insert the new element as root (child of the document)
$dom->appendChild($element);

echo $dom->saveXML();
?>

See also `Document Object Model <http://php.net/manual/en/book.dom.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/bzip2";
description = "Extension ext/bzip2.

Bzip2 Functions for PHP.

<?php

$file = '/tmp/foo.bz2';
$bz = bzopen($file, 'r') or die('Couldn\'t open $file for reading');

bzclose($bz);

?>

See also `Bzip2 Functions <http://php.net/bzip2>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/libevent";
description = "Extension libevent.

Libevent is a library that provides a mechanism to execute a callback function when a specific event occurs on a file descriptor or after a timeout has been reached.

<?php

function print_line($fd, $events, $arg)
{
    static $max_requests = 0;

    $max_requests++;

    if ($max_requests == 10) {
        // exit loop after 10 writes
        event_base_loopexit($arg[1]);
    }

    // print the line
    echo  fgets($fd);
}

// create base and event
$base = event_base_new();
$event = event_new();

$fd = STDIN;

// set event flags
event_set($event, $fd, EV_READ | EV_PERSIST, 'print_line', array($event, $base));
// set event base
event_base_set($event, $base);

// enable event
event_add($event);
// start event loop
event_base_loop($base);

?>

See also `libevent <http://www.libevent.org/>`_ and `Libevent <http://php.net/manual/en/book.libevent.php>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/rdkafka";
description = "Extension for RDkafka.

PHP-rdkafka is a thin librdkafka binding providing a working PHP 5 / PHP 7 Kafka 0.8 / 0.9 / 0.10 client.

<?php

$rk = new RdKafka\Producer();
$rk->setLogLevel(LOG_DEBUG);
$rk->addBrokers("10.0.0.1,10.0.0.2");

?>

See also `Kafka client for PHP <https://github.com/arnaud-lb/php-rdkafka>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.12.8";name = "ext/yaml";
description = "Extension YAML.

This extension implements the `YAML Ain't Markup Language <http://www.yaml.org/>`_ (YAML) data serialization standard. Parsing and emitting are handled by the `LibYAML <http://pyyaml.org/wiki/LibYAML>`_ library.

<?php
$addr = array(
    'given' => 'Chris',
    'family'=> 'Dumars',
    'address'=> array(
        'lines'=> '458 Walkman Dr.
        Suite #292',
        'city'=> 'Royal Oak',
        'state'=> 'MI',
        'postal'=> 48046,
      ),
  );
$invoice = array (
    'invoice'=> 34843,
    'date'=> '2001-01-23',
    'bill-to'=> $addr,
    'ship-to'=> $addr,
    'product'=> array(
        array(
            'sku'=> 'BL394D',
            'quantity'=> 4,
            'description'=> 'Basketball',
            'price'=> 450,
          ),
        array(
            'sku'=> 'BL4438H',
            'quantity'=> 1,
            'description'=> 'Super Hoop',
            'price'=> 2392,
          ),
      ),
    'tax'=> 251.42,
    'total'=> 4443.52,
    'comments'=> 'Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.',
    );

// generate a YAML representation of the invoice
$yaml = yaml_emit($invoice);
var_dump($yaml);

// convert the YAML back into a PHP variable
$parsed = yaml_parse($yaml);

// check that roundtrip conversion produced an equivalent structure
var_dump($parsed == $invoice);
?>


See also `YAML <http://php.net/manual/en/book.yaml.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/mbstring";
description = "Extension ``ext/mbstring``.

``mbstring`` provides multibyte specific string functions that help you deal with multibyte encodings in PHP.

<?php
/* Convert internal character encoding to SJIS */
$str = mb_convert_encoding($str, \"SJIS\");

/* Convert EUC-JP to UTF-7 */
$str = mb_convert_encoding($str, \"UTF-7\", \"EUC-JP\");

/* Auto detect encoding from JIS, eucjp-win, sjis-win, then convert str to UCS-2LE */
$str = mb_convert_encoding($str, \"UCS-2LE\", \"JIS, eucjp-win, sjis-win\");

/* \"auto\" is expanded to \"ASCII,JIS,UTF-8,EUC-JP,SJIS\" */
$str = mb_convert_encoding($str, \"EUC-JP\", \"auto\");
?>

See also `Mbstring <http://www.php.net/manual/en/book.mbstring.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/session";
description = "Extension ext/session.

Session support in PHP consists of a way to preserve certain data across subsequent accesses.

<?php
session_start();
if (!isset($_SESSION['count'])) {
  $_SESSION['count'] = 0;
} else {
  $_SESSION['count']++;
}
?>

See also `Session <http://php.net/manual/en/book.session.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/array";
description = "Core functions processing arrays.

These functions manipulate arrays in various ways. Arrays are essential for storing, managing, and operating on sets of variables.

This is not a real extension : it is a documentation section, that helps classifying the functions.

<?php
function odd($var)
{
    // returns whether the input integer is odd
    return($var & 1);
}

function even($var)
{
    // returns whether the input integer is even
    return(!($var & 1));
}

$array1 = array('a'=>1, 'b'=>2, 'c'=>3, 'd'=>4, 'e'=>5);
$array2 = array(6, 7, 8, 9, 10, 11, 12);

echo 'Odd :'.PHP_EOL;
print_r(array_filter($array1, 'odd'));
echo 'Even:'.PHP_EOL;
print_r(array_filter($array2, 'even'));
?>

See also `Arrays <http://php.net/manual/en/book.array.php>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/cmark";
description = "Extension Cmark, for Common Mark.

cmark provides access to the reference implementation of CommonMark, a rationalized version of Markdown syntax with a specification.

<?php
$text = new CommonMark\Node\Text;
$text->literal = 'Hello World';
$document = new CommonMark\Node\Document;
$document->appendChild(
	(new CommonMark\Node\Paragraph)
		->appendChild($text));
echo CommonMark\Render\HTML($document);
?>

See also `Cmark <https://github.com/commonmark/cmark>`_ and 
         `ext/cmark <https://github.com/krakjoe/cmark>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.2.7";name = "ext/com";
description = "Extension COM and ``.Net`` (Windows).

COM is an acronym for 'Component Object Model'; it is an object orientated layer (and associated services) on top of DCE RPC (an open standard) and defines a common calling convention that enables code written in any language to call and interoperate with code written in any other language (provided those languages are COM aware).

<?php 
$domainObject = new COM("WinNT://Domain"); 
foreach ($domainObject as $obj) { 
   echo $obj->Name . "<br />"; 
} 
?>

See also `COM and .Net (Windows) <http://php.net/manual/en/book.com.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/sphinx";
description = "Extension for the Sphinx search server.

This extension provides bindings for Sphinx search client library. 

<?php

$s = new SphinxClient;
$s->setServer("localhost", 6712);
$s->setMatchMode(SPH_MATCH_ANY);
$s->setMaxQueryTime(3);

$result = $s->query("test");

var_dump($result);

?>

See also `Sphinx Client <http://php.net/manual/en/book.sphinx.php>`_ and `Sphinx Search <http://sphinxsearch.com/>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.11.3";name = "ext/igbinary";
description = "Extension igbinary. 

igbinary is a drop in replacement for the standard php serializer. Instead of time and space consuming textual representation, igbinary stores php data structures in compact binary form. 

<?php
	$serialized = igbinary_serialize($variable);
	$unserialized = igbinary_unserialize($serialized);
?>

See also `igbinary <https://github.com/igbinary/igbinary/>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.0.6";name = "ext/soap";
description = "Extension SOAP.

The SOAP extension can be used to write SOAP Servers and Clients. It supports subsets of » SOAP 1.1, » SOAP 1.2 and » WSDL 1.1 specifications.

<?php

$client = new SoapClient(\"some.wsdl\");

$client = new SoapClient(\"some.wsdl\", array('soap_version'   => SOAP_1_2));

$client = new SoapClient(\"some.wsdl\", array('login'          => \"some_name\",
                                            'password'       => \"some_password\"));

?>

See also `SOAP <http://php.net/manual/en/book.soap.php>`_ and 
         `SOAP specifications <https://www.w3.org/TR/soap/>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/0mq";
description = "Extension ext/zmq for 0mq.

``ØMQ is a software library that lets you quickly design and implement a fast message-based application.`` --0MQ Website

<?php

// Example from https://github.com/kuying/ZeroMQ/blob/d80dcc3dc1c14a343ca90bbd656b98fd55366548/zguide/examples/PHP/msgqueue.php
    /*
     *  Simple message queuing broker
     *  Same as request-reply broker but using QUEUE device
     * @author Ian Barber <ian(dot)barber(at)gmail(dot)com>
     */
    $context = new ZMQContext();
    //  Socket facing clients
    $frontend = $context->getSocket(ZMQ::SOCKET_ROUTER);
    $frontend->bind("tcp://*:5559");
    //  Socket facing services
    $backend = $context->getSocket(ZMQ::SOCKET_DEALER);
    $backend->bind("tcp://*:5560");
    //  Start built-in device
    new ZMQDevice($frontend, $backend);

?>

See also `ZeroMQ <http://zeromq.org/>`_ and `ZMQ <http://php.net/manual/en/book.zmq.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/async";
description = "Concurrent Task Extension for PHP.

This extension provides concurrent Zend VM executions using native C fibers in PHP.

<?php
namespace Concurrent;
register_shutdown_function(function () {
    echo \"===> Shutdown function(s) execute here.\n\";
});
$work = function (string $title): void {
    var_dump($title);
};
Task::await(Task::async(function () use ($work) {
    $defer = new Deferred();
    
    Task::await(Task::async($work, 'A'));
    Task::await(Task::async($work, 'B'));
    
    Task::async(function () {
        $defer = new Deferred();
        
        Task::async(function () use ($defer) {
            (new Timer(1000))->awaitTimeout();
            
            $defer->resolve('H :)');
        });
        
        var_dump(Task::await($defer->awaitable()));
    });
    
    Task::async(function () use ($defer) {
        var_dump(Task::await($defer->awaitable()));
    });
    
    $timer = new Timer(500);
    
    Task::async(function () use ($timer, $defer, $work) {
        $timer->awaitTimeout();
        
        $defer->resolve('F');
        
        Task::async($work, 'G');
    });
    
    var_dump('ROOT TASK DONE');
}));
Task::async($work, 'C');
Task::async(function () use ($work) {
    (new Timer(0))->awaitTimeout();
    
    Task::async($work, 'E');
});
Task::async(function ($v) {
    var_dump(Task::await($v));
}, Deferred::value('D'));
var_dump('=> END OF MAIN SCRIPT');

?>

See also `ext-async <https://github.com/concurrent-php/ext-async>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.5.6";

; Alternative to make this code go away. 
; One by possible solution
;modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "ext/zlib";
description = "Extension ext/zlib.

<?php

$filename = tempnam('/tmp', 'zlibtest') . '.gz';
echo \"<html>\n<head></head>\n<body>\n<pre>\n\";
$s = \"Only a test, test, test, test, test, test, test, test!\n\";

// open file for writing with maximum compression
$zp = gzopen($filename, 'w9');

// write string to file
gzwrite($zp, $s);

// close file
gzclose($zp);

?>

See also `Zlib <http://php.net/manual/en/book.zlib.php>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/xcache";
description = "Extension Xcache.

XCache is a open-source opcode cacher, which means that it accelerates the performance of PHP on servers. 

<?php
if (!xcache_isset("count")) {
  xcache_set("count", load_count_from_mysql());
}
?>
This guest book has been visited <?php echo $count = xcache_inc("count"); ?> times.
<?php
// save every 100 hits
if (($count % 100) == 0) {
  save_count_to_mysql($count);
}
?>

See also `xcache <https://xcache.lighttpd.net/>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/ncurses";
description = "Extension ncurses (CLI).

ncurses (new curses) is a free software emulation of curses in System V Rel 4.0 (and above). 

<?php
ncurses_init();
ncurses_start_color();
ncurses_init_pair(1, NCURSES_COLOR_GREEN, NCURSES_COLOR_BLACK);
ncurses_init_pair(2, NCURSES_COLOR_RED,   NCURSES_COLOR_BLACK);
ncurses_init_pair(3, NCURSES_COLOR_WHITE, NCURSES_COLOR_BLACK);
ncurses_color_set(1);
ncurses_addstr('OK   ');
ncurses_color_set(3);
ncurses_addstr('Success!'.PHP_EOL);
ncurses_color_set(2);
ncurses_addstr('FAIL ');
ncurses_color_set(3);
ncurses_addstr('Success!'.PHP_EOL);
?>

See also `Ncurses Terminal Screen Control <http://php.net/manual/en/book.ncurses.php>`_ and `Ncurses <https://www.gnu.org/software/ncurses/ncurses.html>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.9.2";name = "ext/uopz";
description = "Extension UOPZ : User Operations for Zend.

The uopz extension is focused on providing utilities to aid with unit testing PHP code.

It supports the following activities: Intercepting function execution, Intercepting object creation, Hooking into function execution, Manipulation of function statics, Manipulation of function flags, Redefinition of constants, Deletion of constants, Runtime creation of functions and methods, 

<?php
// The example is extracted from the UOPZ extension test suite : tests/001.phpt
class Foo {
	public function bar(int $arg) : int {
		return $arg;
	}
}
var_dump(uopz_set_return(Foo::class, 'bar', true));
$foo = new Foo();
var_dump($foo->bar(1));
uopz_set_return(Foo::class, 'bar', function(int $arg) : int {
	return $arg * 2;
}, true);
var_dump($foo->bar(2));
try {
	uopz_set_return(Foo::class, 'nope', 1);
} catch(Throwable $t) {
	var_dump($t->getMessage());
}
class Bar extends Foo {}
try {
	uopz_set_return(Bar::class, 'bar', null);
} catch (Throwable $t) {
	var_dump($t->getMessage());
}

	uopz_set_something(Bar::class, 'bar', null);

?>

See also `ext/uopz <https://pecl.php.net/package/uopz>`_ and `User Operations for Zend <https://github.com/krakjoe/uopz>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.1.7";name = "ext/memcache";
description = "Extension Memcache.

Memcache module provides handy procedural and object oriented interface to memcached, highly effective caching daemon, which was especially designed to decrease database load in dynamic web applications.

<?php

$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ('Could not connect');

$version = $memcache->getVersion();
echo 'Server\'s version: '.$version.'<br/>';

$tmp_object = new stdClass;
$tmp_object->str_attr = 'test';
$tmp_object->int_attr = 123;

$memcache->set('key', $tmp_object, false, 10) or die ('Failed to save data at the server');
echo 'Store data in the cache (data will expire in 10 seconds)<br/>';

$get_result = $memcache->get('key');
echo 'Data from the cache:<br/>';

var_dump($get_result);

?>

See also `Memcache on PHP <http://www.php.net/manual/en/book.memcache.php>`_ and `memcached <http://www.memcached.org/>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/standard";
description = "Standards PHP functions.

This is not a real PHP extension : it covers the core functions.

<?php
/*
Our php.ini contains the following settings:

display_errors = On
register_globals = Off
post_max_size = 8M
*/

echo 'display_errors = ' . ini_get('display_errors') . PHP_EOL;
echo 'register_globals = ' . ini_get('register_globals') . PHP_EOL;
echo 'post_max_size = ' . ini_get('post_max_size') . PHP_EOL;
echo 'post_max_size+1 = ' . (ini_get('post_max_size')+1) . PHP_EOL;
echo 'post_max_size in bytes = ' . return_bytes(ini_get('post_max_size'));

function return_bytes($val) {
    $val = trim($val);
    $last = strtolower($val[strlen($val)-1]);
    switch($last) {
        // The 'G' modifier is available since PHP 5.1.0
        case 'g':
            $val *= 1024;
        case 'm':
            $val *= 1024;
        case 'k':
            $val *= 1024;
    }

    return $val;
}

?>

See also `PHP Options/Info Functions <http://php.net/manual/en/ref.info.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/pcre";
description = "Extension ext/pcre. PCRE stands for Perl Compatible Regular Expression. It is a standard PHP extension.

<?php

$zip_code = $_GET['zip'];

// Canadian Zip code H2M 3J1
$zip_ca = '/^([a-zA-Z]\d[a-zA-Z])\ {0,1}(\d[a-zA-Z]\d)$/';

// French Zip code  75017
$zip_fr = '/^\d{5}$/';

// Chinese Zip code  590615
$zip_cn = '/^\d{6}$/';

var_dump(preg_match($_GET['zip']));

?>

See also `Regular Expressions (Perl-Compatible) <http://php.net/manual/en/book.pcre.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/varnish";
description = "Extension PHP for varnish.

Varnish Cache is an open source, state of the art web application accelerator. The extension makes it possible to interact with a running varnish instance through TCP socket or shared memory.

<?php
    $args = array(
        VARNISH_CONFIG_HOST => '::1',
        VARNISH_CONFIG_PORT => 6082,
        VARNISH_CONFIG_SECRET => '5174826b-8595-4958-aa7a-0609632ad7ca',
        VARNISH_CONFIG_TIMEOUT => 300,
    );
    $va = new VarnishAdmin($args);
?>

See also `ext/varnish <http://php.net/manual/en/book.varnish.php>`_ and `pecl/Varnish <http://svn.php.net/viewvc/pecl/varnish/trunk/tests/>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.1.7";name = "ext/parsekit";
description = "Extension Parsekit.

These functions allow runtime analysis of opcodes compiled from PHP scripts.

<?php
var_dump(parsekit_compile_file('hello_world.php', $errors, PARSEKIT_SIMPLE));
?>

See also `Parsekit <http://www.php.net/manual/en/book.parsekit.php>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/gmp";
description = "Extension ext/gmp.

These functions allow for arbitrary-length integers to be worked with using the GNU MP library.

<?php
$pow1 = gmp_pow('2', 131);
echo gmp_strval($pow1) . PHP_EOL;
$pow2 = gmp_pow('0', 0);
echo gmp_strval($pow2) . PHP_EOL;
$pow3 = gmp_pow('2', -1); // Negative exp, generates warning
echo gmp_strval($pow3) . PHP_EOL;
?>

See also `GMP <http://php.net/manual/en/book.gmp.php>`_ and `GNU MP library <https://gmplib.org/>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/ffmpeg";
description = "Extension ``ffmpeg`` for PHP.

``ffmpeg-php`` is an extension for PHP that adds an easy to use, object-oriented API for accessing and retrieving information from video and audio files.

<?php

$movie = new ffmpeg_movie($path_to_media, $persistent);
echo 'The movie lasts '.$movie->getDuration().' seconds';

?>

See also `ffmpeg-php <http://ffmpeg-php.sourceforge.net/>`_ and 
         `FFMPEG <https://www.ffmpeg.org/>`_. 

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/gmagick";
description = "Extension gmagick.

Gmagick is a php extension to create, modify and obtain meta information of images using the GraphicsMagick API.

<?php
//Instantiate a new Gmagick object
$image = new Gmagick('example.jpg');

//Make thumbnail from image loaded. 0 for either axes preserves aspect ratio
$image->thumbnailImage(100, 0);

//Create a border around the image, then simulate how the image will look like as an oil painting
//Note the chaining of mutator methods which is supported in gmagick
$image->borderImage("yellow", 8, 8)->oilPaintImage(0.3);

//Write the current image at the current state to a file
$image->write('example_thumbnail.jpg');
?>

See also `PHP gmagick <http://www.php.net/manual/en/book.gmagick.php>`_ and 
         `gmagick <http://www.graphicsmagick.org/>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/fpm";
description = "Extension FPM, FastCGI Process Manager.

FPM (FastCGI Process Manager) is an alternative PHP FastCGI implementation with some additional features (mostly) useful for heavy-loaded sites.
<?php
    echo $text;
    fastcgi_finish_request( );
?>

See also `FastCGI Process Manager <http://php.net/fpm>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/runkit";
description = "Extension Runkit.

The runkit extension provides means to modify constants, user-defined functions, and user-defined classes. It also provides for custom superglobal variables and embeddable sub-interpreters via sandboxing.

<?php
class Example {
    function foo() {
        echo 'foo!'.PHP_EOL;
    }
}

// create an Example object
$e = new Example();

// Add a new public method
runkit_method_add(
    'Example',
    'add',
    '$num1, $num2',
    'return $num1 + $num2;',
    RUNKIT_ACC_PUBLIC
);

// add 12 + 4
echo $e->add(12, 4);
?>

See also `runkit <http://php.net/manual/en/book.runkit.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/filter";
description = "Extension filter.

This extension filters data by either validating or sanitizing it.

<?php
$email_a = 'joe@example.com';
$email_b = 'bogus';

if (filter_var($email_a, FILTER_VALIDATE_EMAIL)) {
    echo 'This ($email_a) email address is considered valid.'.PHP_EOL;
}
if (filter_var($email_b, FILTER_VALIDATE_EMAIL)) {
    echo 'This ($email_b) email address is considered valid.'.PHP_EOL;
} else {
    echo 'This ($email_b) email address is considered invalid.'.PHP_EOL;
}
?>

See also `Data filtering <http://php.net/manual/en/book.filter.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/odbc";
description = "Extension ODBC.

In addition to normal ODBC support, the Unified ODBC functions in PHP allow you to access several databases that have borrowed the semantics of the ODBC API to implement their own API. Instead of maintaining multiple database drivers that were all nearly identical, these drivers have been unified into a single set of ODBC functions.

<?php
$a = 1;
$b = 2;
$c = 3;
$stmt    = odbc_prepare($conn, 'CALL myproc(?,?,?)');
$success = odbc_execute($stmt, array($a, $b, $c));
?>

See also `ODBC (Unified) <http://www.php.net/manual/en/book.uodbc.php>`_, `Unixodbc <http://www.unixodbc.org/>`_ and `IODBC <http://www.iodbc.org/dataspace/doc/iodbc/wiki/iodbcWiki/WelcomeVisitors>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/lapack";
description = "Extension Lapack. LAPACK provides routines for solving systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue problems, and singular value problems. 

<?php

 $a = array(
     array( 1.44,  -7.84,  -4.39,   4.53),
     array(-9.96,  -0.28,  -3.24,   3.83),
     array(-7.55,   3.24,   6.27,  -6.64),
     array( 8.34,   8.09,   5.28,   2.06),
     array( 7.08,   2.52,   0.74,  -2.47),
     array(-5.45,  -5.70,  -1.19,   4.70),
 );

 $b = array(
     array( 8.58,   9.35),
     array( 8.26,  -4.43),
     array( 8.48,  -0.70),
     array(-5.28,  -0.26),
     array( 5.72,  -7.36),
     array( 8.93,  -2.52),           
 );

 $result = Lapack::leastSquaresByFactorisation($a, $b);
 ?>
 
See also `Lapack <http://php.net/manual/en/book.lapack.php>`_ and `php-lapack <https://github.com/ianbarber/php-lapack>`_.
 
 ";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.12.2";name = "ext/xdebug";
description = "Xdebug extension.

The Xdebug is a extension PHP which provides debugging and profiling capabilities.

<?php
class Strings
{
    static function fix_string($a)
    {
        echo
            xdebug_call_class().
            \"::\".
            xdebug_call_function().
            \" is called at \".
            xdebug_call_file().
            \":\".
            xdebug_call_line();
    }
}

$ret = Strings::fix_string( 'Derick' );
?>

See also `Xdebug <https://xdebug.org/>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/mysqli";
description = "Extension mysqli for MySQL.

The mysqli extension allows you to access the functionality provided by MySQL 4.1 and above.

<?php
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');

/* check connection */
if (mysqli_connect_errno()) {
    printf('Connect failed: %s\n', mysqli_connect_error());
    exit();
}

$city = 'Amersfoort';

/* create a prepared statement */
if ($stmt = $mysqli->prepare('SELECT District FROM City WHERE Name=?')) {

    /* bind parameters for markers */
    $stmt->bind_param('s', $city);

    /* execute query */
    $stmt->execute();

    /* bind result variables */
    $stmt->bind_result($district);

    /* fetch value */
    $stmt->fetch();

    printf('%s is in district %s\n', $city, $district);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

See also `MySQL Improved Extension <http://php.net/manual/en/book.mysqli.php>`_ and `MySQL <http://www.mysql.com/>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/imap";
description = "Extension ext/imap.

This extension operate with the IMAP protocol, as well as the NNTP, POP3 and local mailbox access methods.

<?php
$mbox = imap_open('{imap.example.org}', 'username', 'password', OP_HALFOPEN)
      or die('can't connect: ' . imap_last_error());

$list = imap_list($mbox, '{imap.example.org}', '*');
if (is_array($list)) {
    foreach ($list as $val) {
        echo imap_utf7_decode($val) . PHP_EOL;
    }
} else {
    echo 'imap_list failed: ' . imap_last_error() . PHP_EOL;
}

imap_close($mbox);
?>

See also `IMAP <http://www.php.net/imap>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/leveldb";
description = "PHP Binding for LevelDB.

LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values.

<?php

$db = new LevelDB($leveldb_path);

$batch = new LevelDBWriteBatch();
$batch->set('batch_foo', 'batch_bar');
$batch->put('batch_foo2', 'batch_bar2');
$batch->delete('batch_foo');

$db->write($batch);

$batch->clear();
$batch->delete('batch_foo2');
$batch->set('batch_foo', 'batch again');

?>

See also `ext/leveldb on Github <https://github.com/reeze/php-leveldb>`_ and 
         `Leveldb <https://github.com/google/leveldb>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.1.7";name = "ext/opcache";
description = "Extension opcache.

OPcache improves PHP performance by storing precompiled script bytecode in shared memory, thereby removing the need for PHP to load and parse scripts on each request.

<?php

echo opcache_compile_file('/var/www/index.php');

print_r(opcache_get_status());

?>

See also `OPcache functions <http://www.php.net/manual/en/book.opcache.php>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/wasm";
description = "Extension WASM.

The goal of the project is to be able to run WebAssembly binaries from PHP directly. So much fun coming!

From the php-ext-wasm documentation : 

<?php

//There is a toy program in examples/simple.rs, written in Rust (or any other language that compiles to WASM):
// Stored in file __DIR__ . '/simple.wasm'
/*
#[no_mangle]
pub extern "C" fn sum(x: i32, y: i32) -> i32 {
    x + y
}
*/

$instance = new WASM\Instance(__DIR__ . '/simple.wasm');

var_dump(
    $instance->sum(5, 37) // 42!
);

?>

See also `php-ext-wasm <https://github.com/Hywan/php-ext-wasm>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "1.5.7";

name = "ext/ev";
description = "Extension ev.

ext/ev is a high performance full-featured event loop written in C.

<?php
// Create and start timer firing after 2 seconds
$w1 = new EvTimer(2, 0, function () {
    echo '2 seconds elapsed'.PHP_EOL;
});

// Create and launch timer firing after 2 seconds repeating each second
// until we manually stop it
$w2 = new EvTimer(2, 1, function ($w) {
    echo 'is called every second, is launched after 2 seconds'.PHP_EOL;
    echo 'iteration = ', Ev::iteration(), PHP_EOL;

    // Stop the watcher after 5 iterations
    Ev::iteration() == 5 and $w->stop();
    // Stop the watcher if further calls cause more than 10 iterations
    Ev::iteration() >= 10 and $w->stop();
});

// Create stopped timer. It will be inactive until we start it ourselves
$w_stopped = EvTimer::createStopped(10, 5, function($w) {
    echo 'Callback of a timer created as stopped'.PHP_EOL;

    // Stop the watcher after 2 iterations
    Ev::iteration() >= 2 and $w->stop();
});

// Loop until Ev::stop() is called or all of watchers stop
Ev::run();

// Start and look if it works
$w_stopped->start();
echo 'Run single iteration'.PHP_EOL;
Ev::run(Ev::RUN_ONCE);

echo 'Restart the second watcher and try to handle the same events, but don\'t block'.PHP_EOL;
$w2->again();
Ev::run(Ev::RUN_NOWAIT);

$w = new EvTimer(10, 0, function() {});
echo 'Running a blocking loop'.PHP_EOL;
Ev::run();
echo 'END'.PHP_EOL;
?>

See also `Ev <http://php.net/manual/en/book.ev.php>`_ and `libev <http://software.schmorp.de/pkg/libev.html>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/proctitle";
description = "Extension proctitle.

This extension allows changing the current process', and thread, name on Linux and *BSD systems. This is useful when using pcntl_fork() to identify running processes in process list

<?php
setproctitle('myscript');
?>

See also `proctitle <http://php.net/manual/en/book.proctitle.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "String";
description = "Strings in PHP. Strings are part of the core of PHP, and are not a separate extension.

<?php
$str = "Mary Had A Little Lamb and She LOVED It So";
$str = strtolower($str);

echo $str; // Prints mary had a little lamb and she loved it so
?>

See also `String functions <http://php.net/manual/en/ref.strings.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.9.4";name = "ext/ds";
description = "Extension Data Structures : `Data structures <http://docs.php.net/manual/en/book.ds.php>`_.

See also : `Efficient data structures for PHP 7 <https://medium.com/@rtheunissen/efficient-data-structures-for-php-7-9dda7af674cd#.x69w9j6ui>`_.

<?php

$vector = new \Ds\Vector();

$vector->push('a');
$vector->push('b', 'c');

$vector[] = 'd';

print_r($vector);

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.10.4";name = "ext/dio";
description = "Extension DIO : Direct Input Output.

PHP supports the direct io functions as described in the Posix Standard (Section 6) for performing I/O functions at a lower level than the C-Language stream I/O functions

<?php

$fd = dio_open('/dev/ttyS0', O_RDWR | O_NOCTTY | O_NONBLOCK);

dio_close($fd);
?>

See also `DIO <http://php.net/manual/en/refs.fileprocess.file.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/xhprof";
description = "Extension xhprof.

XHProf is a light-weight hierarchical and instrumentation based profiler. 

<?php
xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);

for ($i = 0; $i <= 1000; $i++) {
    $a = $i * $i;
}

$xhprof_data = xhprof_disable();

$XHPROF_ROOT = '/tools/xhprof/';
include_once $XHPROF_ROOT . '/xhprof_lib/utils/xhprof_lib.php';
include_once $XHPROF_ROOT . '/xhprof_lib/utils/xhprof_runs.php';

$xhprof_runs = new XHProfRuns_Default();
$run_id = $xhprof_runs->save_run($xhprof_data, 'xhprof_testing');

echo 'http://localhost/xhprof/xhprof_html/index.php?run={$run_id}&source=xhprof_testing'.PHP_EOL;

?>

See also `XHprof Documentation <http://web.archive.org/web/20110514095512/http://mirror.facebook.net/facebook/xhprof/doc.html>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/ibase";
description = "Extensions ``Interbase`` and ``Firebird``.

``Firebird`` is a relational database offering many ISO SQL-2003 features that runs on Linux, Windows, and a variety of Unix platforms. 

<?php

$host = 'localhost:/path/to/your.gdb';

$dbh = ibase_connect($host, $username, $password);
$stmt = 'SELECT * FROM tblname';

$sth = ibase_query($dbh, $stmt) or die(ibase_errmsg());

?>

See also `Firebase / Interbase <http://php.net/manual/en/book.ibase.php>`_ and `Firebird <http://www.firebirdsql.org/>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/mongo";
description = "Extension MongoDB driver (legacy).

<?php

// connect
$m = new MongoClient();

// select a database
$db = $m->comedy;

// select a collection (analogous to a relational database\'s table)
$collection = $db->cartoons;

// add a record
$document = array( 'title' => 'Calvin and Hobbes', 'author' => 'Bill Watterson' );
$collection->insert($document);

// add another record, with a different 'shape'
$document = array( 'title' => 'XKCD', 'online' => true );
$collection->insert($document);

// find everything in the collection
$cursor = $collection->find();

// iterate through the results
foreach ($cursor as $document) {
    echo $document['title'] . PHP_EOL;
}

?>

Note : this is not the `MongoDB driver <http://php.net/mongo>`_. This is the legacy extension.

See also `ext/mongo manual <http://php.net/manual/en/book.mongo.php>`_ and 
         `MongdDb <https://www.mongodb.com/>`_.
         
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/yis";
description = "Yellow Pages extensions (NIS).

NIS (formerly called Yellow Pages) allows network management of important administrative files (e.g. the password file).

<?php
$entry = yp_first($domain, 'passwd.byname');

$key = key($entry);
$value = $entry[$key];

echo 'First entry in this map has key ' . $key . ' and value ' . $value;
?>

See also `The Linux NIS(YP)/NYS/NIS+ HOWTO <http://www.tldp.org/HOWTO/NIS-HOWTO/index.html>`_ and `YP/NIS <http://php.net/manual/en/book.nis.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/decimal";
description = "Extension php-decimal, by ``Rudi Theunissen``.

This library provides a PHP extension that adds support for correctly-rounded, arbitrary-precision decimal floating point arithmetic. Applications that rely on accurate numbers (ie. money, measurements, or mathematics) can use Decimal instead of float or string to represent numerical values.

<?php

use Decimal\Decimal;

$op1 = new Decimal("0.1", 4);
$op2 = "0.123456789";

print_r($op1 + $op2);


use Decimal\Decimal;

/**
 * @param int $n The factorial to calculate, ie. $n!
 * @param int $p The precision to calculate the factorial to.
 *
 * @return Decimal
 */
function factorial(int $n, int $p = Decimal::DEFAULT_PRECISION): Decimal
{
    return $n < 2 ? new Decimal($n, $p) : $n * factorial($n - 1, $p);
}

echo factorial(10000, 32);

?>

See also `PHP Decimal <http://php-decimal.io>`_ and 
         `libmpdec <http://www.bytereef.org/mpdecimal/quickstart.html>`_.
";
clearphp = "";
exakatSince = "1.5.2";name = "ext/weakref";
description = "Weak References for PHP.

Weak references provide a non-intrusive gateway to ephemeral objects. Unlike normal (strong) references, weak references do not prevent the garbage collector from freeing that object. For this reason, an object may be destroyed even though a weak reference to that object still exists. In such conditions, the weak reference seamlessly becomes invalid.

<?php
class MyClass {
    public function __destruct() {
        echo ""Destroying object!\n"";
    }
}

$o1 = new MyClass;

$r1 = new WeakRef($o1);

if ($r1->valid()) {
    echo ""Object still exists!\n"";
    var_dump($r1->get());
} else {
    echo ""Object is dead!\n"";
}

unset($o1);

if ($r1->valid()) {
    echo ""Object still exists!\n"";
    var_dump($r1->get());
} else {
    echo ""Object is dead!\n"";
}
?>

See also `Weak references <http://php.net/manual/en/book.weakref.php>`_ and 
         `PECL extension that implements weak references and weak maps in PHP <https://github.com/colder/php-weakref>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.6.5";

; Alternative to make this code go away. 
; One by possible solution
;modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "ext/mailparse";
description = "Extension mailparse.

Mailparse is an extension for parsing and working with email messages. It can deal with `RFC 822 (MIME) <http://www.faqs.org/rfcs/rfc822.html>`_ and `RFC 2045 (MIME) <http://www.faqs.org/rfcs/rfc2045.html>`_ compliant messages.

<?php

$mail = mailparse_msg_create();
mailparse_msg_parse($mail, $mailInString);
$parts = mailparse_msg_get_structure($mail); 

foreach($parts as $part) { 
    $section = mailparse_msg_get_part($mail, $part); 
    $info = mailparse_msg_get_part_data($section); 
}

?>

See also `Mailparse <http://php.net/manual/en/book.mailparse.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/xml";
description = "Extension xml (Parser).

This PHP extension implements support for James Clark's expat in PHP. This toolkit lets you parse, but not validate, XML documents. 

<?php
$file = "data.xml";
$depth = array();

function startElement($parser, $name, $attrs)
{
    global $depth;

    if (!isset($depth[$parser])) {
        $depth[$parser] = 0;
    }

    for ($i = 0; $i < $depth[$parser]; $i++) {
        echo "  ";
    }
    echo "$name\n";
    $depth[$parser]++;
}

function endElement($parser, $name)
{
    global $depth;
    $depth[$parser]--;
}

$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
if (!($fp = fopen($file, "r"))) {
    die("could not open XML input");
}

while ($data = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("XML error: %s at line %d",
                    xml_error_string(xml_get_error_code($xml_parser)),
                    xml_get_current_line_number($xml_parser)));
    }
}
xml_parser_free($xml_parser);
?>

See also `XML Parser <http://www.php.net/manual/en/book.xml.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/info";
description = "PHP Options and Information.

These functions enable you to get a lot of information about PHP itself, e.g. runtime configuration, loaded extensions, version and much more. 

<?php
/*
Our php.ini contains the following settings:

display_errors = On
register_globals = Off
post_max_size = 8M
*/

echo 'display_errors = ' . ini_get('display_errors') . \"\n\";
echo 'register_globals = ' . ini_get('register_globals') . \"\n\";
echo 'post_max_size = ' . ini_get('post_max_size') . \"\n\";
echo 'post_max_size+1 = ' . (ini_get('post_max_size')+1) . \"\n\";
echo 'post_max_size in bytes = ' . return_bytes(ini_get('post_max_size'));

function return_bytes($val) {
    $val = trim($val);
    $last = strtolower($val[strlen($val)-1]);
    switch($last) {
        // The 'G' modifier is available since PHP 5.1.0
        case 'g':
            $val *= 1024;
        case 'm':
            $val *= 1024;
        case 'k':
            $val *= 1024;
    }

    return $val;
}

?>

See also `PHP Options And Information <http://php.net/manual/en/book.info.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/spl";
description = "SPL extension.

The Standard PHP Library (SPL) is a collection of interfaces and classes that are meant to solve common problems.

<?php

// Example with FilesystemIterator
$files = new FilesystemIterator('/path/to/dir');
foreach($files as $file) {
    echo $file->getFilename() . PHP_EOL;
}

?>

See also `Standard PHP Library (SPL) <http://www.php.net/manual/en/book.spl.php>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/fdf";
description = "Extension ext/fdf.

Forms Data Format (`FDF <http://www.adobe.com/devnet/acrobat/fdftoolkit.html>`_) is a format for handling forms within PDF documents.

<?php
$outfdf = fdf_create();
fdf_set_value($outfdf, 'volume', $volume, 0);

fdf_set_file($outfdf, 'http:/testfdf/resultlabel.pdf');
fdf_save($outfdf, 'outtest.fdf');
fdf_close($outfdf);
Header('Content-type: application/vnd.fdf');
$fp = fopen('outtest.fdf', 'r');
fpassthru($fp);
unlink('outtest.fdf');
?>

See also `Form Data Format <http://php.net/manual/en/book.fdf.php>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "ext/hrtime";
description = "High resolution timing Extension.

The HRTime extension implements a high resolution StopWatch class. It uses the best possible APIs on different platforms which brings resolution up to nanoseconds. It also makes possible to implement a custom stopwatch using low level ticks delivered by the underlaying APIs.

<?php

$c = new HRTime\StopWatch;

$c->start();
/* measure this code block execution */
for ($i = 0; $i < 1024*1024; $i++);
$c->stop();
$elapsed0 = $c->getLastElapsedTime(HRTime\Unit::NANOSECOND);

/* measurement is not running here*/
for ($i = 0; $i < 1024*1024; $i++);

$c->start();
/* measure this code block execution */
for ($i = 0; $i < 1024*1024; $i++);
$c->stop();
$elapsed1 = $c->getLastElapsedTime(HRTime\Unit::NANOSECOND);

$elapsed_total = $c->getElapsedTime(HRTime\Unit::NANOSECOND);

?>

See also `ext/hrtime manual <http://php.net/manual/en/intro.hrtime.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.1.5";name = "ext/hash";
description = "Extension for HASH Message Digest Framework.

Message Digest (hash) engine. Allows direct or incremental processing of arbitrary length messages using a variety of hashing algorithms.

<?php
/* Create a file to calculate hash of */
file_put_contents('example.txt', 'The quick brown fox jumped over the lazy dog.');

echo hash_file('md5', 'example.txt');
?>

See also `HASH Message Digest Framework <http://www.php.net/manual/en/book.hash.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/gd";
description = "Extension GD for PHP.

This extension allows PHP to create and manipulate image files in a variety of different image formats, including GIF, PNG, JPEG, WBMP, and XPM.
 
<?php

header(\"Content-type: image/png\");
$string = $_GET['text'];
$im     = imagecreatefrompng(\"images/button1.png\");
$orange = imagecolorallocate($im, 220, 210, 60);
$px     = (imagesx($im) - 7.5 * strlen($string)) / 2;
imagestring($im, 3, $px, 9, $string, $orange);
imagepng($im);
imagedestroy($im);

?>

See also `Image Processing and GD <http://php.net/manual/en/book.image.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/phar";
description = "Extension phar.

The phar extension provides a way to put entire PHP applications into a single file called a ``phar`` (PHP Archive) for easy distribution and installation. 

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $file = $p['myfile.txt'];
    var_dump($file->isCompressed(Phar::BZ2));
    $p['myfile.txt']->compress(Phar::BZ2);
    var_dump($file->isCompressed(Phar::BZ2));
} catch (Exception $e) {
    echo 'Create/modify operations on my.phar failed: ', $e;
}
?>

See also `phar <http://www.php.net/manual/en/book.phar.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/mysql";
description = "Extension for MySQL (Original MySQL API).

This extension is deprecated as of PHP 5.5.0, and has been removed as of PHP 7.0.0. Instead, either the mysqli or PDO_MySQL extension should be used. See also the MySQL API Overview for further help while choosing a MySQL API.

<?php
$result = mysql_query('SELECT * WHERE 1=1');
if (!$result) {
    die('Invalid query: ' . mysql_error());
}

?>

See also `Original MySQL API <http://www.php.net/manual/en/book.mysql.php>`_ and `MySQL <http://www.mysql.com/>`_.";
clearphp = "";
phpversion = "7.0-";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "ext/xmlwriter";
description = "Extension ext/xmlwriter.

The XMLWriter extension wraps the libxml xmlWriter API inside PHP.

<?php
$xw = xmlwriter_open_memory();
xmlwriter_set_indent($xw, TRUE);
xmlwriter_start_document($xw, NULL, 'UTF-8');
xmlwriter_start_element($xw, 'root');
xmlwriter_write_attribute_ns($xw, 'prefix', '', 'http://www.php.net/uri');
xmlwriter_start_element($xw, 'elem1');
xmlwriter_write_attribute($xw, 'attr1', 'first');
xmlwriter_end_element($xw);
xmlwriter_full_end_element($xw);
xmlwriter_end_document($xw);
$output = xmlwriter_flush($xw, true);
print $output;
// write attribute_ns without start_element first
$xw = xmlwriter_open_memory();
var_dump(xmlwriter_write_attribute_ns($xw, 'prefix', 'id', 'http://www.php.net/uri', 'elem1'));
print xmlwriter_output_memory($xw);
?>

See also `XMLWriter <http://php.net/manual/en/book.xmlwriter.php>`_ and `Module xmlwriter from libxml2 <http://xmlsoft.org/html/libxml-xmlwriter.html>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/sem";
description = "Extension Semaphore, Shared Memory and IPC.

This module provides wrappers for the System V IPC family of functions. It includes semaphores, shared memory and inter-process messaging (IPC).

<?php

$key         = ftok(__FILE__,'a');
$semaphore   = sem_get($key);
sem_acquire($semaphore);
sem_release($semaphore);
sem_remove($semaphore);

?>

See also `Semaphore, Shared Memory and IPC <http://php.net/manual/en/book.sem.php>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/rar";
description = "Extension RAR. 

Rar is a powerful and effective archiver created by Eugene Roshal. This extension gives you possibility to read Rar archives but doesn't support writing Rar archives, because this is not supported by the UnRar library and is directly prohibited by its license.

<?php

$arch = RarArchive::open(example.rar);
if ($arch === FALSE)
    die(Cannot open example.rar);

$entries = $arch->getEntries();
if ($entries === FALSE)
    die(Cannot retrieve entries);


?>

See also `Rar archiving <http://php.net/manual/en/book.rar.php>`_ and `rarlabs <http://www.rarlabs.com/>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.7";
name = "ext/pspell";
description = "Extension pspell.

These functions allow you to check the spelling of a word and offer suggestions.

<?php
$pspell_link = pspell_new('en');

if (pspell_check($pspell_link, 'testt')) {
    echo 'This is a valid spelling';
} else {
    echo 'Sorry, wrong spelling';
}
?>

See also `Pspell <http://php.net/manual/en/book.pspell.php>`_ and `pspell <https://en.wikipedia.org/wiki/Pspell>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/xattr";
description = "Extensions xattr.

The xattr extension allows for the manipulation of extended attributes on a filesystem.

<?php
$file = 'my_favourite_song.wav';
xattr_set($file, 'Artist', 'Someone');
xattr_set($file, 'My ranking', 'Good');
xattr_set($file, 'Listen count', '34');

/* ... other code ... */

printf('You\'ve played this song %d times', xattr_get($file, 'Listen count')); 
?>

See also `xattr <http://php.net/manual/en/book.xattr.php>`_ and `Extended attributres <https://en.wikipedia.org/wiki/Extended_file_attributes>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.12.4";name = "ext/zend_monitor";
description = "Extension ``zend_monitor``. 

See also `Zend Monitor - PHP API <http://files.zend.com/help/Zend-Server/content/zendserverapi/zend_monitor-php_api.htm>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.7.9";
name = "ext/gearman";
description = "Extension Gearman.

Gearman is a generic application framework for farming out work to multiple machines or processes. 

<?php

# Create our client object.
$gmclient= new GearmanClient();

# Add default server (localhost).
$gmclient->addServer();

echo 'Sending job'.PHP_EOL;

# Send reverse job
do
{
  $result = $gmclient->doNormal('reverse', 'Hello!');

  # Check for various return packets and errors.
  switch($gmclient->returnCode())
  {
    case GEARMAN_WORK_DATA:
      echo 'Data: '.$result . PHP_EOL;;
      break;
    case GEARMAN_WORK_STATUS:
      list($numerator, $denominator)= $gmclient->doStatus();
      echo 'Status: '.$numerator.'/'.$denominator.' complete'. PHP_EOL;
      break;
    case GEARMAN_WORK_FAIL:
      echo 'Failed\n';
      exit;
    case GEARMAN_SUCCESS:
      echo 'Success: $result\n';
      break;
    default:
      echo 'RET: ' . $gmclient->returnCode() . PHP_EOL;
      exit;
  }
}
while($gmclient->returnCode() != GEARMAN_SUCCESS);

?>

See also `Gearman on PHP <http://php.net/manual/en/book.gearman.php>`_ and `Gearman <http://gearman.org/>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/reflection";
description = "Extension Reflection.

PHP comes with a complete reflection API that adds the ability to reverse-engineer classes, interfaces, functions, methods and extensions. Additionally, the reflection API offers ways to retrieve doc comments for functions, classes and methods.

<?php
/**
 * A simple counter
 *
 * @return    int
 */
function counter1()
{
    static $c = 0;
    return ++$c;
}

/**
 * Another simple counter
 *
 * @return    int
 */
$counter2 = function()
{
    static $d = 0;
    return ++$d;

};

function dumpReflectionFunction($func)
{
    // Print out basic information
    printf(
        PHP_EOL.'===> The %s function '%s''.PHP_EOL.
        '     declared in %s'.PHP_EOL.
        '     lines %d to %d'.PHP_EOL,
        $func->isInternal() ? 'internal' : 'user-defined',
        $func->getName(),
        $func->getFileName(),
        $func->getStartLine(),
        $func->getEndline()
    );

    // Print documentation comment
    printf('---> Documentation:'.PHP_EOL.' %s',PHP_EOL, var_export($func->getDocComment(), 1));

    // Print static variables if existant
    if ($statics = $func->getStaticVariables())
    {
        printf('---> Static variables: %s',PHP_EOL, var_export($statics, 1));
    }
}

// Create an instance of the ReflectionFunction class
dumpReflectionFunction(new ReflectionFunction('counter1'));
dumpReflectionFunction(new ReflectionFunction($counter2));
?>

See also `Reflection <http://php.net/manual/en/book.reflection.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/mongodb";
description = "Extension MongoDb.

Do not mistake with extension Mongo, the previous version.

Mongodb driver supports both PHP and HHVM and is developed atop the `libmongoc <https://github.com/mongodb/mongo-c-driver>`_ and `libbson <https://github.com/mongodb/libbson>`_ libraries. 

<?php
require 'vendor/autoload.php'; // include Composer's autoloader

$client = new MongoDB\Client("mongodb://localhost:27017");
$collection = $client->demo->beers;

$result = $collection->insertOne( [ 'name' => 'Hinterland', 'brewery' => 'BrewDog' ] );

echo "Inserted with Object ID '{$result->getInsertedId()}'";
?>
 
See also `MongoDB driver <http://php.net/manual/en/set.mongodb.php>`_.";
clearphp = "";
phpversion = "7.0+";
severity = "";
timetofix = "";
exakatSince = "0.9.5";name = "ext/oci8";
description = "Extension ext/oci8.

OCI8 gives access Oracle Database 12c, 11g, 10g, 9i and 8i. 

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Prepare the statement
$stid = oci_parse($conn, 'SELECT * FROM departments');
if (!$stid) {
    $e = oci_error($conn);
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Perform the logic of the query
$r = oci_execute($stid);
if (!$r) {
    $e = oci_error($stid);
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Fetch the results of the query
print '<table border='1'>' . PHP_EOL;
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    print '<tr>' . PHP_EOL;
    foreach ($row as $item) {
        print '    <td>' . ($item !== null ? htmlentities($item, ENT_QUOTES) : '&nbsp;') . '</td>' . PHP_EOL;
    }
    print '</tr>' . PHP_EOL;
}
print '</table>' . PHP_EOL;

oci_free_statement($stid);
oci_close($conn);

?>

See also `Oracle OCI8 <http://php.net/manual/en/book.oci8.php>`_ and `Oracle <https://www.oracle.com/>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/ssh2";
description = "Extension ext/ssh2.

<?php
/* Notify the user if the server terminates the connection */
function my_ssh_disconnect($reason, $message, $language) {
  printf(\"Server disconnected with reason code [%d] and message: %s\n\",
         $reason, $message);
}

$methods = array(
  'kex' => 'diffie-hellman-group1-sha1',
  'client_to_server' => array(
    'crypt' => '3des-cbc',
    'comp' => 'none'),
  'server_to_client' => array(
    'crypt' => 'aes256-cbc,aes192-cbc,aes128-cbc',
    'comp' => 'none'));

$callbacks = array('disconnect' => 'my_ssh_disconnect');

$connection = ssh2_connect('shell.example.com', 22, $methods, $callbacks);
if (!$connection) die('Connection failed');
?>

See also `SSH2 functions <http://php.net/manual/en/book.ssh2.php>`_ and 
         `ext/ssh2 on PECL <http://pecl.php.net/package/ssh2>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/xmlrpc";
description = "Extension ext/xmlrpc.

This extension can be used to write XML-RPC servers and clients.

<?php
$request = xmlrpc_encode_request('method', array(1, 2, 3));
$context = stream_context_create(array('http' => array(
    'method' => 'POST',
    'header' => 'Content-Type: text/xml',
    'content' => $request
)));
$file = file_get_contents('http://www.example.com/xmlrpc', false, $context);
$response = xmlrpc_decode($file);
if ($response && xmlrpc_is_fault($response)) {
    trigger_error('xmlrpc: '.$response['faultString'].' ('.$response['faultCode']));
} else {
    print_r($response);
}
?>

See also `XML-RPC <http://www.php.net/manual/en/book.xmlrpc.php>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/stats";
description = "Statistics extension.

This extension contains few dozens of functions useful for statistical computations. It is a wrapper around 2 scientific libraries, namely `DCDFLIB <https://people.sc.fsu.edu/~jburkardt/c_src/cdflib/cdflib.html>`_ (Library of C routines for Cumulative Distributions Functions, Inverses, and Other parameters) by B. Brown & J. Lavato and `RANDLIB <http://people.sc.fsu.edu/~jburkardt/f77_src/ranlib/ranlib.html>`_ by Barry Brown, James Lavato & Kathy Russell. 

<?php

$x = [ 15, 16, 8, 6, 15, 12, 12, 18, 12, 20, 12, 14, ];
$y = [ 17.24, 15, 14.91, 4.5, 18, 6.29, 19.23, 18.69, 7.21, 42.06, 7.5, 8,];

sprintf("%2.9f", stats_covariance($a_1, $a_2));

?>

See also `Statistics <http://php.net/manual/en/book.stats.php>`_ and `ext/stats <https://pecl.php.net/package/stats>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.11.5";name = "ext/apache";
description = "Extension Apache.

These functions are only available when running PHP as an Apache module.

<?php
  $ret = apache_getenv("SERVER_ADDR");
  echo $ret;
?>

See also `Extension Apache <http://php.net/manual/en/book.apache.php>`_ and `Apache server <https://www.apache.org/>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/posix";
description = "Extension POSIX.

Ext/posix contains an interface to those functions defined in the IEEE 1003.1 (POSIX.1) standards document which are not accessible through other means.

<?php
posix_kill(999459,SIGKILL);
echo 'Your error returned was '.posix_get_last_error(); //Your error was ___
?>

See also `1003.1-2008 - IEEE Standard for Information Technology - Portable Operating System Interface (POSIX(R)) <https://standards.ieee.org/findstds/standard/1003.1-2008.html>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/ffi";
description = "Extension ``FFI`` : Foreign Function Interface .

This extension allows the loading of shared libraries (.DLL or .so), calling of C functions and accessing of C data structures in pure PHP, without having to have deep knowledge of the Zend extension API, and without having to learn a third “intermediate” language. The public API is implemented as a single class FFI with several static methods (some of them may be called dynamically), and overloaded object methods, which perform the actual interaction with C data.

<?php
//Example : Calling a function from shared library
// create FFI object, loading libc and exporting function printf()
$ffi = FFI::cdef(
    \"int printf(const char *format, ...);\", // this is a regular C declaration
    \"libc.so.6\");
// call C's printf()
$ffi->printf(\"Hello %s!\n\", \"world\");
?>

See also `Foreign Function Interface <https://www.php.net/manual/en/book.ffi.php>`_, and 
        `ext/ffi <https://github.com/dstogov/php-ffi>`_ and 
        `A PHP Compiler, aka The FFI Rabbit Hole <https://blog.ircmaxell.com/2019/04/compilers-ffi.html>`_.";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.7.9";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "ext/xxtea";
description = "Extension xxtea : XXTEA encryption algorithm extension for PHP.

XXTEA is a fast and secure encryption algorithm. This is a XXTEA extension for PHP.
It is different from the original XXTEA encryption algorithm. It encrypts and decrypts string instead of uint32 array, and the key is also string.

<?php
// Example is extracted from the xxtea repository on github : tests/xxtea.phpt

$str = 'Hello World! 你好，中国🇨🇳！';
$key = '1234567890';
$base64 = 'D4t0rVXUDl3bnWdERhqJmFIanfn/6zAxAY9jD6n9MSMQNoD8TOS4rHHcGuE=';
$encrypt_data = xxtea_encrypt($str, $key);
$decrypt_data = xxtea_decrypt($encrypt_data, $key);
if ($str == $decrypt_data && base64_encode($encrypt_data) == $base64) {
    echo 'success!';
} else {
    echo base64_encode($encrypt_data);
    echo 'fail!';
}
?>

See also `PECL ext/xxtea <https://pecl.php.net/package/xxtea>`_ and 
         `ext/xxtea on Github <https://github.com/xxtea/xxtea-pecl>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.1.7";name = "ext/fileinfo";
description = "Extension ext/fileinfo.

This module guesses the content type and encoding of a file by looking for certain magic byte sequences at specific positions within the file.

<?php
$finfo = finfo_open(FILEINFO_MIME_TYPE); // return mime type ala mimetype extension
foreach (glob('*') as $filename) {
    echo finfo_file($finfo, $filename) . PHP_EOL;
}
finfo_close($finfo);
?>


See also `Filinfo <http://php.net/manual/en/book.fileinfo.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/gnupgp";
description = "Extension GnuPG.

This module allows you to interact with gnupg.

<?php
// init gnupg
$res = gnupg_init();
// not really needed. Clearsign is default
gnupg_setsignmode($res,GNUPG_SIG_MODE_CLEAR);
// add key with passphrase 'test' for signing
gnupg_addsignkey($res,\"8660281B6051D071D94B5B230549F9DC851566DC\",\"test\");
// sign
$signed = gnupg_sign($res,\"just a test\");
echo $signed;
?>

See also `Gnupg Function for PHP <http://www.php.net/manual/en/book.gnupg.php>`_ and 
         `GnuPG <https://www.gnupg.org/>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/newt";
description = "Newt PHP CLI extension.

This is a PHP language extension for RedHat Newt library, a terminal-based window and widget library for writing applications with user friendly interface.

<?php
newt_init ();
newt_cls ();

newt_draw_root_text (0, 0, "Test Mode Setup Utility 1.12");
newt_push_help_line (null);

newt_get_screen_size ($rows, $cols);

newt_open_window ($rows/2-17, $cols/2-10, 34, 17, "Choose a Tool");

$form = newt_form ();

$list = newt_listbox (3, 2, 10);

foreach (array (
    "Authentication configuration",
    "Firewall configuration",
    "Mouse configuration",
    "Network configuration",
    "Printer configuration",
    "System services") as $l_item)
{
    newt_listbox_add_entry ($list, $l_item, $l_item);
}

$b1 = newt_button (5, 12, "Run Tool");
$b2 = newt_button (21, 12, "Quit");

newt_form_add_component ($form, $list);
newt_form_add_components ($form, array($b1, $b2));

newt_refresh ();
newt_run_form ($form);

newt_pop_window ();
newt_pop_help_line ();
newt_finished ();
newt_form_destroy ($form);
?>

See also `Newt <http://people.redhat.com/rjones/ocaml-newt/html/Newt.html>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.9.2";name = "ext/amqp";
description = "Extension ``amqp``.

PHP AMQP Binding Library. This is an interface with the `RabbitMQ AMQP client library <https://github.com/alanxz/rabbitmq-c>`_. It is a C-language AMQP client library for use with v2.0+ of the RabbitMQ broker.


<?php
$cnn = new AMQPConnection();
$cnn->connect();
echo 'Used channels: ', $cnn->getUsedChannels(), PHP_EOL;
$ch = new AMQPChannel($cnn);
echo 'Used channels: ', $cnn->getUsedChannels(), PHP_EOL;
$ch = new AMQPChannel($cnn);
echo 'Used channels: ', $cnn->getUsedChannels(), PHP_EOL;
$ch = null;
echo 'Used channels: ', $cnn->getUsedChannels(), PHP_EOL;
?>

See also `PHP AMQP Binding Library <https://github.com/pdezwart/php-amqp>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/mail";
description = "Extension for mail.

The mail() function allows you to send mail.

<?php
// The message
$message = \"Line 1\r\nLine 2\r\nLine 3\";

// In case any of our lines are larger than 70 characters, we should use wordwrap()
$message = wordwrap($message, 70, \"\r\n\");

// Send
mail('caffeinated@example.com', 'My Subject', $message);
?>

See also `Mail related functions <http://www.php.net/manual/en/book.mail.php>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/parle";
description = "Extension Parser and Lexer.

The parle extension provides lexing and parsing facilities. The implementation is based on » Ben Hanson's libraries and requires a » C++14 capable compiler. 

<?php

use Parle\{Token, Lexer, LexerException};

/* name => id */
$token = array(
        'EOI' => 0,
        'COMMA' => 1,
        'CRLF' => 2,
        'DECIMAL' => 3,
);
/* id => name */
$token_rev = array_flip($token);

$lex = new Lexer;
$lex->push(\"[\x2c]\", $token['COMMA']);
$lex->push(\"[\r][\n]\", $token['CRLF']);
$lex->push(\"[\d]+\", $token['DECIMAL']);
$lex->build();

$in = "0,1,2\r\n3,42,5\r\n6,77,8\r\n";

$lex->consume($in);

do {
        $lex->advance();
        $tok = $lex->getToken();

        if (Token::UNKNOWN == $tok->id) {
                throw new LexerException('Unknown token \"'.$tok->value.'\" at offset '.$tok->offset.'.');
        }

        echo 'TOKEN: ', $token_rev[$tok->id], PHP_EOL;
} while (Token::EOI != $tok->id);

?>

See also `Parsing and Lexing <http://php.net/manual/en/book.parle.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.12.12";name = "ext/json";
description = "Extension JSON.

This extension implements the JavaScript Object Notation (JSON) data-interchange format. PHP implements a superset of JSON as specified in the original `RFC 7159 <http://www.faqs.org/rfcs/rfc7159>`_.

<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);

echo json_encode($arr);
?>

See also `JavaScript Object Notation <http://php.net/manual/en/book.json.php>`_ and `JSON <http://www.json.org/>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/eaccelerator";
description = "Extension Eaccelerator.

eAccelerator is a free open-source PHP accelerator & optimizer. 

See also `Eaccelerator <http://eaccelerator.net/>`_ and `eaccelerator/eaccelerato <https://github.com/eaccelerator/eaccelerator>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/enchant";
description = "Extension Enchant.

Enchant is the PHP binding for the `Enchant spelling library <http://php.net/manual/en/book.enchant.php>`_. Enchant steps in to provide uniformity and conformity on top of all spelling libraries, and implement certain features that may be lacking in any individual provider library. 

<?php
$tag = 'en_US';
$r = enchant_broker_init();
$bprovides = enchant_broker_describe($r);
echo 'Current broker provides the following backend(s):'.PHP_EOL;
print_r($bprovides);

$dicts = enchant_broker_list_dicts($r);
print_r($dicts);
if (enchant_broker_dict_exists($r,$tag)) {
    $d = enchant_broker_request_dict($r, $tag);
    $dprovides = enchant_dict_describe($d);
    echo 'dictionary $tag provides:'.PHP_EOL;
    $wordcorrect = enchant_dict_check($d, 'soong');
    print_r($dprovides);
    if (!$wordcorrect) {
        $suggs = enchant_dict_suggest($d, 'soong');
        echo 'Suggestions for \"soong\":';
        print_r($suggs);
    }
    enchant_broker_free_dict($d);
} else {
}
enchant_broker_free($r);
?>

See also `Enchant spelling library <http://php.net/manual/en/book.enchant.php>`_ and 
         `Enchant <https://www.abisource.com/projects/enchant/>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/trader";
description = "Extension trader.

The trader extension is a free open source stock library based on TA-Lib. It's dedicated to trading software developers requiring to perform technical analysis of financial market data. 

<?php

// get_data() reads the data from a source 
var_dump(trader_avgprice(
	get_data("open", $data0),
	get_data("high", $data0),
	get_data("low", $data0),
	get_data("close", $data0)
));

?>

See also `trader <https://pecl.php.net/package/trader>`_, 'TA-lib <http://www.ta-lib.org/>`_ and `Trader <http://php.net/manual/en/book.trader.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/imagick";
description = "Extension Imagick for PHP.

Imagick is a native php extension to create and modify images using the ImageMagick API.

<?php

header('Content-type: image/jpeg');

$image = new Imagick('image.jpg');

// If 0 is provided as a width or height parameter,
// aspect ratio is maintained
$image->thumbnailImage(100, 0);

echo $image;

?>

See also `Imagick for PHP <http://php.net/manual/en/book.imagick.php>`_ and `Imagick <https://www.imagemagick.org/script/index.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/cairo";
description = "Extension ext/cairo.

Cairo is a native PHP extension to create and modify graphics using the `Cairo Graphics Library <https://cairographics.org/>`_.

<?php
// Example from https://github.com/gtkforphp/cairo/blob/master/examples/big-line.php
$width = 100;
$height = 100;
$sur = new CairoPSSurface("temp.ps", $width, $height);

$con = new CairoContext($sur);
$con->setSourceRgb(0,0,1);
$con->moveTo(50,50);
$con->lineTo(50000,50000);
$con->stroke();
$con->setSourceRgb(0,1,0);
$con->moveTo(50,50);
$con->lineTo(-50000,50000);
$con->stroke();
$con->setSourceRgb(1,0,0);
$con->moveTo(50,50);
$con->lineTo(50000,-50000);
$con->stroke();
$con->setSourceRgb(1,1,0);
$con->moveTo(50,50);
$con->lineTo(-50000,-50000);
$con->stroke();

$sur->writeToPng(dirname(__FILE__)  . "/big-line-php.png");
?>

See also `Cairo <http://php.net/cairo>`_, `gtkforphp/cairo <https://github.com/gtkforphp/cairo>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/ctype";
description = "Extension ext/ctype.

Ext/ctype checks whether a character or string falls into a certain character class according to the current locale.

<?php
$strings = array('AbCd1zyZ9', 'foo!#$bar');
foreach ($strings as $testcase) {
    if (ctype_alnum($testcase)) {
        echo \"The string $testcase consists of all letters or digits.\n\";
    } else {
        echo \"The string $testcase does not consist of all letters or digits.\n\";
    }
}
?>

See also `Ctype funtions <http://php.net/manual/en/ref.ctype.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/sdl";
description = "Extensions ext/sdl.

Simple DirectMedia Layer (SDL) is a cross-platform software development library designed to provide a hardware abstraction layer for computer multimedia hardware components. 

<?php
/**
 * Example of how to change screen properties such as title, icon or state using the PHP-SDL extension.
 *
 * @author Santiago Lizardo <santiagolizardo@php.net>
 */
require 'common.php';
SDL_Init( SDL_INIT_VIDEO );
$screen = SDL_SetVideoMode( 640, 480, 16, SDL_HWSURFACE );
if( null == $screen )
{
	fprintf( STDERR, 'Error: %s' . PHP_EOL, SDL_GetError() );
}
for( $i = 3; $i > 0; $i-- )
{
	SDL_WM_SetCaption( "Switching to fullscreen mode in $i seconds...", null );
	SDL_Delay( 1000 );
}
SDL_WM_ToggleFullscreen( $screen );
SDL_Delay( 3000 );
SDL_WM_ToggleFullscreen( $screen );
SDL_WM_SetCaption( "Back from fullscreen mode. Quitting in 2 seconds...", null );
SDL_Delay( 2000 );
SDL_FreeSurface( $screen );
SDL_Quit();

?>

See also `phpsdl <https://github.com/Ponup/phpsdl>`_,
         `Simple DirectMedia Layer <https://en.wikipedia.org/wiki/Simple_DirectMedia_Layer>`_ and 
         `About SDL <https://www.libsdl.org/>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.5.6";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "ext/iconv";
description = "Extension ext/iconv.

 With this module, you can turn a string represented by a local character set into the one represented by another character set, which may be the Unicode character set.

<?php
$text = \"This is the Euro symbol '€'.\";

echo 'Original : ', $text, PHP_EOL;
echo 'TRANSLIT : ', iconv(\"UTF-8\", \"ISO-8859-1//TRANSLIT\", $text), PHP_EOL;
echo 'IGNORE   : ', iconv(\"UTF-8\", \"ISO-8859-1//IGNORE\", $text), PHP_EOL;
echo 'Plain    : ', iconv(\"UTF-8\", \"ISO-8859-1\", $text), PHP_EOL;

?>

See also `Iconv <http://php.net/iconv>`_, and 
         `libiconv <https://www.gnu.org/software/libiconv/>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/redis";
description = "Extension ext/redis.

The phpredis extension provides an API for communicating with the Redis key-value store. 

<?php

$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

$redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_NONE);	// don't serialize data
$redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP);	// use built-in serialize/unserialize
$redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_IGBINARY);	// use igBinary serialize/unserialize

$redis->setOption(Redis::OPT_PREFIX, 'myAppName:');	// use custom prefix on all keys

/* Options for the SCAN family of commands, indicating whether to abstract
   empty results from the user.  If set to SCAN_NORETRY (the default), phpredis
   will just issue one SCAN command at a time, sometimes returning an empty
   array of results.  If set to SCAN_RETRY, phpredis will retry the scan command
   until keys come back OR Redis returns an iterator of zero
*/
$redis->setOption(Redis::OPT_SCAN, Redis::SCAN_NORETRY);
$redis->setOption(Redis::OPT_SCAN, Redis::SCAN_RETRY);
?>

See also `A PHP extension for Redis <https://github.com/phpredis/phpredis/>`_ and `Redis <https://redis.io/>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/shmop";
description = "Extension ext/shmop.

Shmop is an easy to use set of functions that allows PHP to read, write, create and delete Unix shared memory segments.

<?php
// Create a temporary file and return its path
$tmp = tempnam('/tmp', 'PHP');

// Get the file token key
$key = ftok($tmp, 'a');

// Attach the SHM resource, notice the cast afterwards
$id = shm_attach($key);

if ($id === false) {
    die('Unable to create the shared memory segment');
}

// Cast to integer, since prior to PHP 5.3.0 the resource id 
// is returned which can be exposed when casting a resource
// to an integer
$id = (integer) $id;
?>

See also `Semaphore, Shared Memory and IPC <http://php.net/manual/en/book.sem.php>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/wddx";
description = "Extension WDDX.

The Web Distributed Data Exchange, or WDDX, is a free, open XML-based technology that allows Web applications created with any platform to easily exchange data with one another over the Web.

<?php
  echo wddx_serialize_value(\"PHP to WDDX packet example\", \"PHP packet\");
?>

See also `Wddx on PHP <http://php.net/manual/en/intro.wddx.php>`_ and 
         `WDDX <http://www.openwddx.org/>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/grpc";
description = "Extension for GRPC : A high performance, open-source universal RPC framework.

<?php

//https://github.com/grpc/grpc/blob/master/examples/php/greeter_client.php

require dirname(__FILE__).'/vendor/autoload.php';
// The following includes are needed when using protobuf 3.1.0
// and will suppress warnings when using protobuf 3.2.0+
@include_once dirname(__FILE__).'/helloworld.pb.php';
@include_once dirname(__FILE__).'/helloworld_grpc_pb.php';
function greet($name)
{
    $client = new Helloworld\GreeterClient('localhost:50051', [
        'credentials' => Grpc\ChannelCredentials::createInsecure(),
    ]);
    $request = new Helloworld\HelloRequest();
    $request->setName($name);
    list($reply, $status) = $client->SayHello($request)->wait();
    $message = $reply->getMessage();
    return $message;
}
$name = !empty($argv[1]) ? $argv[1] : 'world';
echo greet($name)."\n";

?>

See also `GRPC <http://www.grpc.io/>`_ and `GRPC on PECL <https://pecl.php.net/package/gRPC>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.11.3";name = "ext/ereg";
description = "Extension ext/ereg.

<?php
if (ereg ('([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})', $date, $regs)) {
    echo $regs[3].'.'.$regs[2].'.'.$regs[1];
} else {
    echo 'Invalid date format: '.$date;
}
?>

See also `Ereg <http://php.net/manual/en/function.ereg.php>`_.";
clearphp = "";
phpversion = "7.0-";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "ext/file";
description = "Filesystem functions from standard.

Extension that handle access to file on the file system.

<?php
$row = 1;
if (($handle = fopen('test.csv', 'r')) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ',')) !== FALSE) {
        $num = count($data);
        echo '<p> $num fields in line $row: <br /></p>'.PHP_EOL;
        $row++;
        for ($c=0; $c < $num; $c++) {
            echo $data[$c] . '<br />'.PHP_EOL;
        }
    }
    fclose($handle);
}
?>

See also `filesystem <http://www.php.net/manual/en/book.filesystem.php>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/tidy";
description = "Extension Tidy.

Tidy is a binding for the Tidy HTML clean and repair utility which allows you to not only clean and otherwise manipulate HTML documents, but also traverse the document tree.

<?php
ob_start();
?>
<html>a html document</html>
<?php
$html = ob_get_clean();

// Specify configuration
$config = array(
           'indent'         => true,
           'output-xhtml'   => true,
           'wrap'           => 200);

// Tidy
$tidy = new tidy;
$tidy->parseString($html, $config, 'utf8');
$tidy->cleanRepair();

// Output
echo $tidy;
?>

See also `Tidy <http://php.net/manual/en/book.tidy.php>`_ and 
         `HTML-tidy <http://www.html-tidy.org/>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/calendar";
description = "Extension ext/calendar.

The calendar extension presents a series of functions to simplify converting between different calendar formats. 

<?php
$number = cal_days_in_month(CAL_GREGORIAN, 8, 2003); // 31
echo \"There were {$number} days in August 2003\";
?>

See also `Calendar Functions <http://www.php.net/manual/en/ref.calendar.php>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/expect";
description = "Extension Expect.

This extension allows to interact with processes through ``PTY``. You may consider using the ``expect://`` wrapper with the filesystem functions which provide a simpler and more intuitive interface.

<?php
ini_set('expect.loguser', 'Off');

$stream = fopen('expect://ssh root@remotehost uptime', 'r');

$cases = array (
    array (0 => 'password:', 1 => PASSWORD)
);

switch (expect_expectl ($stream, $cases)) {
    case PASSWORD:
        fwrite ($stream, 'password'.PHP_EOL);
        break;
 
    default:
        die ('Error was occurred while connecting to the remote host!'.PHP_EOL);
}

while ($line = fgets($stream)) {
      print $line;
}
fclose ($stream);
?>

See also `expect <http://php.net/manual/en/book.expect.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/crypto";
description = "Extension ext/crypto (PECL).

Objective PHP binding of OpenSSL Crypto library.

<?php
use Crypto\Cipher;
use Crypto\AlgorihtmException;
$algorithm = 'aes-256-cbc';
if (!Cipher::hasAlgorithm($algorithm)) {
	die('Algorithm $algorithm not found' . PHP_EOL);
}
try {
	$cipher = new Cipher($algorithm);
	// Algorithm method for retrieving algorithm
	echo 'Algorithm: ' . $cipher->getAlgorithmName() . PHP_EOL;
	// Params
	$key_len = $cipher->getKeyLength();
	$iv_len = $cipher->getIVLength();
	
	echo 'Key length: ' . $key_len . PHP_EOL;
	echo 'IV length: '  . $iv_len . PHP_EOL;
	echo 'Block size: ' . $cipher->getBlockSize() . PHP_EOL;
	// This is just for this example. You should never use such key and IV!
	$key = str_repeat('x', $key_len);
	$iv = str_repeat('i', $iv_len);
	// Test data
	$data1 = 'Test';
	$data2 = 'Data';
	$data = $data1 . $data2;
	// Simple encryption
	$sim_ct = $cipher->encrypt($data, $key, $iv);
	
	// init/update/finish encryption
	$cipher->encryptInit($key, $iv);
	$iuf_ct  = $cipher->encryptUpdate($data1);
	$iuf_ct .= $cipher->encryptUpdate($data2);
	$iuf_ct .= $cipher->encryptFinish();
	// Raw data output (used base64 format for printing)
	echo 'Ciphertext (sim): ' . base64_encode($sim_ct) . PHP_EOL;
	echo 'Ciphertext (iuf): ' . base64_encode($iuf_ct) . PHP_EOL;
	// $iuf_out == $sim_out
	$ct = $sim_ct;
	// Another way how to create a new cipher object (using the same algorithm and mode)
	$cipher = Cipher::aes(Cipher::MODE_CBC, 256);
	// Simple decryption
	$sim_text = $cipher->decrypt($ct, $key, $iv);
	
	// init/update/finish decryption
	$cipher->decryptInit($key, $iv);
	$iuf_text = $cipher->decryptUpdate($ct);
	$iuf_text .= $cipher->decryptFinish();
	// Raw data output ($iuf_out == $sim_out)
	echo 'Text (sim): ' . $sim_text . PHP_EOL;
	echo 'Text (iuf): ' . $iuf_text . PHP_EOL;
}
catch (AlgorithmException $e) {
	echo $e->getMessage() . PHP_EOL;
}

?>

See also `pecl crypto <https://pecl.php.net/package/crypto>`_ and `php-crypto <https://github.com/bukka/php-crypto>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/zbarcode";
description = "Extension Zbarcode. 

PHP extension for reading barcodes.

<?php
/* Create new image object */
$image = new ZBarCodeImage('test.jpg');

/* Create a barcode scanner */
$scanner = new ZBarCodeScanner();

/* Scan the image */
$barcode = $scanner->scan($image);

/* Loop through possible barcodes */
if (!empty($barcode)) {
	foreach ($barcode as $code) {
		printf('Found type %s barcode with data %s\n', $code['type'], $code['data']);
	}
}
?>

See also `php-zbarcode <https://github.com/mkoppanen/php-zbarcode>`_. 

";
clearphp = "";
phpversion = "7.0+";
severity = "";
timetofix = "";
exakatSince = "0.9.5";name = "ext/svm";
description = "Extension ``SVM``.

``SVM`` is in interface with the ``libsvm``, from . ``libsvm``is a library for Support Vector Machines, a classification tool for machine learning.

<?php
   $data = array(
       array(-1, 1 => 0.43, 3 => 0.12, 9284 => 0.2),
       array(1, 1 => 0.22, 5 => 0.01, 94 => 0.11),
   );
   
   $svm = new SVM();
   $model = $svm->train($data);
   
   $data = array(1 => 0.43, 3 => 0.12, 9284 => 0.2);
   $result = $model->predict($data);
   var_dump($result);
   $model->save('model.svm');
?>

See also `SVM <http://www.php.net/svm>`_, 
         `LIBSVM -- A Library for Support Vector Machines <https://www.csie.ntu.edu.tw/~cjlin/libsvm/>`_,
        `ext/apcu <https://pecl.php.net/package/svm>`_ and 
        `ianbarber/php-svm <https://github.com/ianbarber/php-svm>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.7.8";
name = "ext/mssql";
description = "Extension MSSQL, Microsoft SQL Server.

These functions allow you to access MS SQL Server database.

<?php
// Connect to MSSQL
$link = mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');

if (!$link || !mssql_select_db('php', $link)) {
    die('Unable to connect or select database!');
}

// Do a simple query, select the version of 
// MSSQL and print it.
$version = mssql_query('SELECT @@VERSION');
$row = mssql_fetch_array($version);

echo $row[0];

// Clean up
mssql_free_result($version);
?>

See also `Microsoft SQL Server <http://www.php.net/manual/en/book.mssql.php>`_ and `Microsoft PHP Driver for SQL Server <https://docs.microsoft.com/en-us/sql/connect/php/microsoft-php-driver-for-sql-server>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/sqlite3";
description = "Extension Sqlite3.

Support for SQLite version 3 databases.

<?php
$db = new SQLite3('mysqlitedb.db');

$results = $db->query('SELECT bar FROM foo');
while ($row = $results->fetchArray()) {
    var_dump($row);
}
?>

See also `ext/sqlite3 <http://php.net/manual/en/book.sqlite3.php>`_ and 
         `Sqlite <http://sqlite.org/>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/inotify";
description = "Extension inotify.

The Inotify extension gives access to the Linux kernel subsystem that acts to extend filesystems to notice changes to the filesystem, and report those changes to applications.

<?php
// Open an inotify instance
$fd = inotify_init();

// Watch __FILE__ for metadata changes (e.g. mtime)
$watch_descriptor = inotify_add_watch($fd, __FILE__, IN_ATTRIB);

// generate an event
touch(__FILE__);

// Read events
$events = inotify_read($fd);
print_r($events);

// The following methods allows to use inotify functions without blocking on inotify_read():

// - Using stream_select() on $fd:
$read = array($fd);
$write = null;
$except = null;
stream_select($read,$write,$except,0);

// - Using stream_set_blocking() on $fd
stream_set_blocking($fd, 0);
inotify_read($fd); // Does no block, and return false if no events are pending

// - Using inotify_queue_len() to check if event queue is not empty
$queue_len = inotify_queue_len($fd); // If > 0, inotify_read() will not block

// Stop watching __FILE__ for metadata changes
inotify_rm_watch($fd, $watch_descriptor);

// Close the inotify instance
// This may have closed all watches if this was not already done
fclose($fd);

?>

See also `ext/inotify manual <http://php.net/manual/en/book.inotify.php>`_ and 
         `inotify <https://en.wikipedia.org/wiki/Inotify>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/ming";
description = "Extension ext/ming, to create swf files with PHP.

Ming is an open-source (LGPL) library which allows you to create SWF ('Flash') format movies. 

<?php
  $s = new SWFShape();
  $f = $s->addFill(0xff, 0, 0);
  $s->setRightFill($f);

  $s->movePenTo(-500, -500);
  $s->drawLineTo(500, -500);
  $s->drawLineTo(500, 500);
  $s->drawLineTo(-500, 500);
  $s->drawLineTo(-500, -500);

  $p = new SWFSprite();
  $i = $p->add($s);
  $i->setDepth(1);
  $p->nextFrame();

  for ($n=0; $n<5; ++$n) {
    $i->rotate(-15);
    $p->nextFrame();
  }

  $m = new SWFMovie();
  $m->setBackground(0xff, 0xff, 0xff);
  $m->setDimension(6000, 4000);

  $i = $m->add($p);
  $i->setDepth(1);
  $i->moveTo(-500,2000);
  $i->setName('box');

  $m->add(new SWFAction('/box.x += 3;'));
  $m->nextFrame();
  $m->add(new SWFAction('gotoFrame(0); play();'));
  $m->nextFrame();

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

See also `Ming (flash) <http://www.libming.org/>`_ and `Ming <http://www.libming.org/>`_. 
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "ext/zip";
description = "Extension ext/zip.

This extension enables you to transparently read or write ZIP compressed archives and the files inside them.

<?php

$zip = new ZipArchive();
$filename = './test112.zip';

if ($zip->open($filename, ZipArchive::CREATE)!==TRUE) {
    exit('cannot open <$filename>');
}

$zip->addFromString('testfilephp.txt' . time(), '#1 This is a test string added as testfilephp.txt.'.PHP_EOL);
$zip->addFromString('testfilephp2.txt' . time(), '#2 This is a test string added as testfilephp2.txt.'.PHP_EOL);
$zip->addFile($thisdir . '/too.php','/testfromfile.php');
echo 'numfiles: ' . $zip->numFiles . PHP_EOL;
echo 'status:' . $zip->status . PHP_EOL;
$zip->close();
?>

See also `Zip <http://php.net/manual/en/book.zip.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/uuid";
description = "Extension ``UUID``. A universally unique identifier (UUID) is a 128-bit number used to identify information in computer systems.

An interface to the libuuid system library. The libuuid library is used to generate unique identifiers for objects that may be accessible beyond the local system. The Linux implementation was created to uniquely identify ext2 filesystems created by a machine. This library generates UUIDs compatible with those created by the Open Software Foundation (OSF) Distributed Computing Environment (DCE) utility uuidgen.

<?php
    // example from the test suitee of the extension.
    
    // check basic format of generated UUIDs
    $uuid = uuid_create();
    if (preg_match(\"/[[:xdigit:]]{8}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{12}/\", $uuid)) {
            echo \"basic format ok\n\";
    } else {
            echo \"basic UUID format check failed, generated UUID was $uuid\n\";
    }
    
?>

See also `libuuid <https://linux.die.net/man/3/libuuid>`_ and 
        `ext/uuid <https://github.com/php/pecl-networking-uuid>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.7.9";
name = "ext/db2";
description = "Extension for IBM DB2, Cloudscape and Apache Derby.

This extension gives access to IBM DB2 Universal Database, IBM Cloudscape, and Apache Derby databases using the DB2 Call Level Interface (DB2 CLI).

<?php
$conn = db2_connect($database, $user, $password);

if ($conn) {
    $stmt = db2_exec($conn, 'SELECT count(*) FROM animals');
    $res = db2_fetch_array( $stmt );
    echo $res[0] . PHP_EOL;
    
    // Turn AUTOCOMMIT off
    db2_autocommit($conn, DB2_AUTOCOMMIT_OFF);
   
    // Delete all rows from ANIMALS
    db2_exec($conn, 'DELETE FROM animals');
    
    $stmt = db2_exec($conn, 'SELECT count(*) FROM animals');
    $res = db2_fetch_array( $stmt );
    echo $res[0] . PHP_EOL;
    
    // Roll back the DELETE statement
    db2_rollback( $conn );
    
    $stmt = db2_exec( $conn, 'SELECT count(*) FROM animals' );
    $res = db2_fetch_array( $stmt );
    echo $res[0] . PHP_EOL;
    db2_close($conn);
}
?>

See also `IBM Db2 <http://php.net/manual/en/book.ibm-db2.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.1.8";name = "ext/apcu";
description = "Extension ``APCU``.

``APCu`` is ``APC`` stripped of opcode caching. The Alternative PHP Cache (APC) is a free and open opcode cache for PHP. Its goal is to provide a free, open, and robust framework for caching and optimizing PHP intermediate code.

<?php
$bar = 'BAR';
apcu_add('foo', $bar);
var_dump(apcu_fetch('foo'));
echo "\n";
$bar = 'NEVER GETS SET';
apcu_add('foo', $bar);
var_dump(apcu_fetch('foo'));
echo "\n";
?>

See also `APCU <http://www.php.net/manual/en/book.apcu.php>`_, 
        `ext/apcu <https://pecl.php.net/package/APCu>`_ and 
        `krakjoe/apcu <https://github.com/krakjoe/apcu>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/xmlreader";
description = "Extension XMLReader.

The XMLReader extension is an XML Pull parser. The reader acts as a cursor going forward on the document stream and stopping at each node on the way.

<?php

    $xmlreader = new XMLReader();
    $xmlreader->xml(\"<xml><div>Content</div></xml>\");
    $xmlreader->read();
    $xmlreader->read();
    $xmlreader->readString();

?>

See also `xmlreader <http://www.php.net/manual/en/book.xmlreader.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/pdo";
description = "Generic extension PDO.

The PHP Data Objects (PDO) extension defines a lightweight, consistent interface for accessing databases in PHP. 

<?php
/* Execute a prepared statement by passing an array of values */
$sql = 'SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour';
$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->execute(array(':calories' => 150, ':colour' => 'red'));
$red = $sth->fetchAll();
$sth->execute(array(':calories' => 175, ':colour' => 'yellow'));
$yellow = $sth->fetchAll();
?>

See also `PHP Data Object <http://php.net/manual/en/book.pdo.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/mcrypt";
description = "Extension for mcrypt.

This extension has been deprecated as of PHP 7.1.0 and moved to PECL as of PHP 7.2.0.

This is an interface to the mcrypt library, which supports a wide variety of block algorithms such as DES, TripleDES, Blowfish (default), 3-WAY, SAFER-SK64, SAFER-SK128, TWOFISH, TEA, RC2 and GOST in CBC, OFB, CFB and ECB cipher modes. Additionally, it supports RC6 and IDEA which are considered 'non-free'. CFB/OFB are 8bit by default.

<?php
    # --- ENCRYPTION ---

    # the key should be random binary, use scrypt, bcrypt or PBKDF2 to
    # convert a string into a key
    # key is specified using hexadecimal
    $key = pack('H*', 'bcb04b7e103a0cd8b54763051cef08bc55abe029fdebae5e1d417e2ffb2a00a3');
    
    # show key size use either 16, 24 or 32 byte keys for AES-128, 192
    # and 256 respectively
    $key_size =  strlen($key);
    echo 'Key size: ' . $key_size . PHP_EOL;
    
    $plaintext = 'This string was AES-256 / CBC / ZeroBytePadding encrypted.';

    # create a random IV to use with CBC encoding
    $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
    
    # creates a cipher text compatible with AES (Rijndael block size = 128)
    # to keep the text confidential 
    # only suitable for encoded input that never ends with value 00h
    # (because of default zero padding)
    $ciphertext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key,
                                 $plaintext, MCRYPT_MODE_CBC, $iv);

    # prepend the IV for it to be available for decryption
    $ciphertext = $iv . $ciphertext;
    
    # encode the resulting cipher text so it can be represented by a string
    $ciphertext_base64 = base64_encode($ciphertext);

    echo  $ciphertext_base64 . PHP_EOL;

    # === WARNING ===

    # Resulting cipher text has no integrity or authenticity added
    # and is not protected against padding oracle attacks.
    
    # --- DECRYPTION ---
    
    $ciphertext_dec = base64_decode($ciphertext_base64);
    
    # retrieves the IV, iv_size should be created using mcrypt_get_iv_size()
    $iv_dec = substr($ciphertext_dec, 0, $iv_size);
    
    # retrieves the cipher text (everything except the $iv_size in the front)
    $ciphertext_dec = substr($ciphertext_dec, $iv_size);

    # may remove 00h valued characters from end of plain text
    $plaintext_dec = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key,
                                    $ciphertext_dec, MCRYPT_MODE_CBC, $iv_dec);
    
    echo  $plaintext_dec . PHP_EOL;
?>

See also `extension mcrypt <http://www.php.net/manual/en/book.mcrypt.php>`_ and `mcrypt <http://mcrypt.sourceforge.net/>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "ext/bcmath";
description = "Extension BC Math.

For arbitrary precision mathematics PHP offers the Binary Calculator which supports numbers of any size and precision up to 2147483647-1 (or 0x7FFFFFFF-1) decimals, represented as strings.

<?php

echo bcpow('2', '123'); 
//10633823966279326983230456482242756608

echo 2**123;
//1.0633823966279E+37
?>

See also `BC Math Functions <http://www.php.net/bcmath>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/pecl_http";
description = "Extension HTTP.

This HTTP extension aims to provide a convenient and powerful set of functionalities for one of PHP major applications.

It eases handling of HTTP URL, headers and messages, provides means for negotiation of a client's preferred content type, language and charset, as well as a convenient way to send any arbitrary data with caching and resuming capabilities.

It provides powerful request functionality with support for parallel requests.

<?php 

$client = new http\Client;
$client->setSslOptions(array(\"verifypeer\" => true));
$client->addSslOptions(array(\"verifyhost\" => 2));

$client->enqueue($req = new http\Client\Request(\"GET\", \"https://twitter.com/\"));
$client->send();
$ti = (array) $client->getTransferInfo($req);
var_dump($ti);

?>

See also `ext-http <https://github.com/m6w6/ext-http>`_ and 
         `pecl_http <https://pecl.php.net/package/pecl_http>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/pcov";
description = "CodeCoverage compatible driver for PHP

A self contained CodeCoverage compatible driver for PHP7

<?php
\pcov\start();
$d = [];
for ($i = 0; $i < 10; $i++) {
	$d[] = $i * 42;
}
\pcov\stop();
var_dump(\pcov\collect());
?>

See also `PCOV <https://github.com/krakjoe/pcov>`_.";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.6.5";

; Alternative to make this code go away. 
; One by possible solution

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "ext/kdm5";
description = "Extension kdm5 : Kerberos V .

These package allows you to access Kerberos V administration servers. You can create, modify, and delete Kerberos V principals and policies.

<?php
    // Extracted from the PHP Manual
  $handle = kadm5_init_with_password(afs-1, GONICUS.LOCAL, admin/admin, password);

  print <h1>get_principals</h1>\n;
  $principals = kadm5_get_principals($handle);
  for( $i=0; $i<count($principals); $i++)
      print $principals[$i]<br>\n;

  print <h1>get_policies</h1>\n;
  $policies = kadm5_get_policies($handle);
  for( $i=0; $i<count($policies); $i++)
      print $policies[$i]<br>\n;

  print <h1>get_principal burbach@GONICUS.LOCAL</h1>\n;

  $options = kadm5_get_principal($handle, burbach@GONICUS.LOCAL );
  $keys = array_keys($options);
  for( $i=0; $i<count($keys); $i++) {
    $value = $options[$keys[$i]];
    print $keys[$i]: $value<br>\n;
  }

  $options = array(KADM5_PRINC_EXPIRE_TIME => 0);
  kadm5_modify_principal($handle, burbach@GONICUS.LOCAL, $options);

  kadm5_destroy($handle);
?>

See also `Kerberos V <http://php.net/manual/en/book.kadm5.php>`_ and `Kerberos: The Network Authentication Protocol <http://web.mit.edu/kerberos/www/>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/judy";
description = "The Judy extension. 

PHP Judy is a PECL extension for the `Judy C library <http://judy.sourceforge.net/>`_ implementing dynamic sparse arrays.

<?php 
$judy = new Judy(Judy::BITSET);
if ($judy->getType() === judy_type($judy) &&
    $judy->getType() === Judy::BITSET) {
    echo 'Judy BITSET type OK'.PHP_EOL;
} else {
    echo 'Judy BITSET type check fail'.PHP_EOL;
}
unset($judy);
?>

See also `php-judy <https://github.com/orieg/php-judy>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.11.6";name = "ext/dba";
description = "Extension ext/dba.

These functions build the foundation for accessing Berkeley DB style databases.

<?php

$id = dba_open('/tmp/test.db', 'n', 'db2');

if (!$id) {
    echo 'dba_open failed'.PHP_EOL;
    exit;
}

dba_replace('key', 'This is an example!', $id);

if (dba_exists('key', $id)) {
    echo dba_fetch('key', $id);
    dba_delete('key', $id);
}

dba_close($id);
?>

See also `Database (dbm-style) Abstraction Layer <http://php.net/manual/en/book.dba.php>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "ext/msgpack";
description = "Extension msgPack.

This extension provide API for communicating with MessagePack serialization.

<?php

    $serialized = msgpack_serialize(array('a' => true, 'b' => 4));
    $unserialized = msgpack_unserialize($serialized);

?>

See also `msgpack for PHP <https://github.com/msgpack/msgpack-php>`_ and 
         `MessagePack <https://msgpack.org/>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.3.5";name = "ext/gettext";
description = "Extension Gettext.

The gettext functions implement an NLS (Native Language Support) API which can be used to internationalize your PHP applications.

<?php
// Set language to German
putenv('LC_ALL=de_DE');
setlocale(LC_ALL, 'de_DE');

// Specify location of translation tables
bindtextdomain('myPHPApp', './locale');

// Choose domain
textdomain('myPHPApp');

// Translation is looking for in ./locale/de_DE/LC_MESSAGES/myPHPApp.mo now

// Print a test message
echo gettext('Welcome to My PHP Application');

// Or use the alias _() for gettext()
echo _('Have a nice day');
?>

See also `Gettext <https://www.gnu.org/software/gettext/manual/gettext.html>`_ and `ext/gettext <http://php.net/manual/en/book.gettext.php>`_";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/lua";
description = "Extension Lua.

'Lua is a powerful, fast, light-weight, embeddable scripting language.' This extension embeds the lua interpreter and offers an OO-API to lua variables and functions.

<?php
$lua = new Lua();
$lua->eval(<<<CODE
    print(2);
CODE
);
?>

See also `ext/lua manual <http://php.net/manual/en/book.lua.php>`_ and 
         `LUA <https://www.lua.org/>`_";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/psr";
description = "Extension PSR : PHP Standards Recommendations.

This PHP extension provides the interfaces from the PSR standards as established by the PHP-FIG group. You can use interfaces provided by this extension in another extension easily - see this example.

Currently supported PSR : 

* `PSR-3 <https://www.php-fig.org/psr/psr-3>`_ - `psr/http-message`
* `PSR-11 <https://www.php-fig.org/psr/psr-11>`_ - `psr/container`
* `PSR-13 <https://www.php-fig.org/psr/psr-13>`_ - `psr/link`
* `PSR-15 <https://www.php-fig.org/psr/psr-15>`_ - `psr/http-server`
* `PSR-16 <https://www.php-fig.org/psr/psr-16>`_ - `psr/simple-cache`
* `PSR-17 <https://www.php-fig.org/psr/psr-17>`_ - `psr/http-factory`


<?php
// Example from the tests, for Cache (PSR-6)
use Psr\Cache\CacheException;
class MyCacheException extends Exception implements CacheException {}
$ex = new MyCacheException('test');
var_dump($ex instanceof CacheException);
var_dump($ex instanceof Exception);
try {
    throw $ex;
} catch( CacheException $e ) {
    var_dump($e->getMessage());
}
?>

See also `php-psr <https://github.com/jbboehr/php-psr>`_ and 
         `PHP-FIG <https://www.php-fig.org/>`_.";
clearphp = "";
exakatSince = "1.5.2";name = "ext/libxml";
description = "Extension libxml.

These functions/constants are available as of PHP 5.1.0, and the following core extensions rely on this libxml extension: DOM, libxml, SimpleXML, SOAP, WDDX, XSL, XML, XMLReader, XMLRPC and XMLWriter.

<?php

// $xmlstr is a string, containing a XML document. 

$doc = simplexml_load_string($xmlstr);
$xml = explode(PHP_EOL, $xmlstr);

if ($doc === false) {
    $errors = libxml_get_errors();

    foreach ($errors as $error) {
        echo display_xml_error($error, $xml);
    }

    libxml_clear_errors();
}


function display_xml_error($error, $xml)
{
    $return  = $xml[$error->line - 1] . PHP_EOL;
    $return .= str_repeat('-', $error->column) . '^'.PHP_EOL;

    switch ($error->level) {
        case LIBXML_ERR_WARNING:
            $return .= 'Warning ',$error->code.': ';
            break;
         case LIBXML_ERR_ERROR:
            $return .= 'Error '.$error->code.': ';
            break;
        case LIBXML_ERR_FATAL:
            $return .= 'Fatal Error '.$error->code.': ';
            break;
    }

    $return .= trim($error->message) .
               PHP_EOL.'  Line: '.$error->line .
               PHP_EOL.'  Column: '.$error->column;

    if ($error->file) {
        $return .= \"\n  File: $error->file\";
    }

    return $return.PHP_EOL.PHP_EOL.'--------------------------------------------'.PHP_EOL.PHP_EOL;
}

?>

See also `libxml <http://www.php.net/manual/en/book.libxml.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/xsl";
description = "Extension XSL.

The XSL extension implements the XSL standard, performing XSLT transformations using the libxslt library.

<?php

// Example from the PHP manual

$xmldoc = new DOMDocument();
$xsldoc = new DOMDocument();
$xsl = new XSLTProcessor();

$xmldoc->loadXML('fruits.xml');
$xsldoc->loadXML('fruits.xsl');

libxml_use_internal_errors(true);
$result = $xsl->importStyleSheet($xsldoc);
if (!$result) {
    foreach (libxml_get_errors() as $error) {
        echo \"Libxml error: {$error->message}\n\";
    }
}
libxml_use_internal_errors(false);

if ($result) {
    echo $xsl->transformToXML($xmldoc);
}

?>

See also `XSL extension <http://php.net/manual/en/intro.xsl.php>`_;
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/opencensus";
description = "Extension PHP for OpenCensus : 

A stats collection and distributed tracing framework.

<?php
opencensus_trace_begin('root', ['spanId' => '1234']);
opencensus_trace_add_annotation('foo');
opencensus_trace_begin('inner', []);
opencensus_trace_add_annotation('asdf', ['spanId' => '1234']);
opencensus_trace_add_annotation('abc');
opencensus_trace_finish();
opencensus_trace_finish();
$traces = opencensus_trace_list();
echo "Number of traces: " . count($traces) . "\n";
$span = $traces[0];
print_r($span->timeEvents());
$span2 = $traces[1];
print_r($span2->timeEvents());
?>


See also `opencensus <https://github.com/census-instrumentation/opencensus-php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.1.7";name = "ext/intl";
description = "Extension international.

Internationalization extension (further is referred as Intl) is a wrapper for `ICU <http://site.icu-project.org/>`_ library, enabling PHP programmers to perform various locale-aware operations including but not limited to formatting, transliteration, encoding conversion, calendar operations, `UCA <http://www.unicode.org/reports/tr10/>`_-conformant collation, locating text boundaries and working with locale identifiers, timezones and graphemes.

<?php
$coll = new Collator('en_US');
$al   = $coll->getLocale(Locale::ACTUAL_LOCALE);
echo "Actual locale: $al\n";

$formatter = new NumberFormatter('en_US', NumberFormatter::DECIMAL);
echo $formatter->format(1234567);
?>

See also `Internationalization Functions <http://php.net/manual/en/book.intl.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/password";
description = "Extension password.

The password hashing API provides an easy to use wrapper around crypt() and some other password hashing algorithms, to make it easy to create and manage passwords in a secure manner.

<?php
// See the password_hash() example to see where this came from.
$hash = '$2y$07$BCryptRequires22Chrcte/VlQH0piJtjXl.0t1XkA8pw9dMXTpOq';

if (password_verify('rasmuslerdorf', $hash)) {
    echo 'Password is valid!';
} else {
    echo 'Invalid password.';
}
?>

See also `Password Hashing <http://php.net/manual/en/book.password.php>`_ and 
         `crypt <http://man7.org/linux/man-pages/man3/crypt.3.html>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/fam";
description = "File Alteration Monitor extension.

`FAM <http://oss.sgi.com/projects/fam/>`_ monitors files and directories, notifying interested applications of changes.

ext/FAM is not available for Windows

<?php

$fam = fam_open('myApplication');
fam_monitor_directory($fam, '/tmp');
fam_close($fam);

?>

See also `File Alteration Monitor <http://php.net/manual/en/book.fam.php>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.12.8";name = "ext/openssl";
description = "Extension Openssl.

This extension binds functions of ``OpenSS``L library for symmetric and asymmetric encryption and decryption, ``PBKDF2``, ``PKCS7``, ``PKCS12``, ``X509`` and other cryptographic operations. In addition to that it provides implementation of ``TLS`` streams.

<?php
// $data and $signature are assumed to contain the data and the signature

// fetch public key from certificate and ready it
$pubkeyid = openssl_pkey_get_public(\"file://src/openssl-0.9.6/demos/sign/cert.pem\");

// state whether signature is okay or not
$ok = openssl_verify($data, $signature, $pubkeyid);
if ($ok == 1) {
    echo \"good\";
} elseif ($ok == 0) {
    echo \"bad\";
} else {
    echo \"ugly, error checking signature\";
}
// free the key from memory
openssl_free_key($pubkeyid);
?>

See also `ext/OpenSSL <http://php.net/manual/en/book.openssl.php>`_ and `OpenSSL <https://www.openssl.org/>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/apc";
description = "Extension Alternative PHP Cache.

The Alternative PHP Cache (APC) is a free and open opcode cache for PHP. Its goal is to provide a free, open, and robust framework for caching and optimizing PHP intermediate code.

This extension is considered unmaintained and dead. 

<?php
   $bar = 'BAR';
   apc_add('foo', $bar);
   var_dump(apc_fetch('foo'));
   echo PHP_EOL;

   $bar = 'NEVER GETS SET';
   apc_add('foo', $bar);
   var_dump(apc_fetch('foo'));
   echo PHP_EOL;
?>

See also `Alternative PHP Cache <http://php.net/apc>`_.
";
clearphp = "";
phpversion = "7.0-";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "ext/curl";
description = "Extension curl.

PHP supports libcurl, a library created by Daniel Stenberg. It allows the connection and communication to many different types of servers with many different types of protocols.

<?php

$ch = curl_init(\"http://www.example.com/\");
$fp = fopen(\"example_homepage.txt\", \"w\");

curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);

curl_exec($ch);
curl_close($ch);
fclose($fp);
?>

See also `Curl for PHP <http://php.net/manual/en/book.curl.php>`_ and 
         `curl <https://curl.haxx.se/libcurl/>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "ext/pgsql";
description = "Extension PostGreSQL.

PostgreSQL is an open source descendant of this original Berkeley code.  It provides SQL92/SQL99 language support, transactions, referential integrity, stored procedures and type extensibility. 

<?php
// Connect to a database named 'mary'
$dbconn = pg_connect('dbname=mary');

// Prepare a query for execution
$result = pg_prepare($dbconn, 'my_query', 'SELECT * FROM shops WHERE name = $1');

// Execute the prepared query.  Note that it is not necessary to escape
// the string 'Joe's Widgets' in any way
$result = pg_execute($dbconn, 'my_query', array('Joe\'s Widgets'));

// Execute the same prepared query, this time with a different parameter
$result = pg_execute($dbconn, 'my_query', array('Clothes Clothes Clothes'));

?>

See also `PostgreSQL <http://php.net/manual/en/book.pgsql.php>`_ and `PostgreSQL: The world's most advanced open source database <https://www.postgresql.org/>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Empty Namespace";
description = "Declaring a namespace in the code and not using it for structure declarations or global instructions is useless.

Using simple style : 

<?php

namespace Y;

class foo {}


namespace X;
// This is useless

?>

Using bracket-style syntax : 

<?php

namespace X {
    // This is useless
}

namespace Y {

    class foo {}

}

?>


";
clearphp = "no-empty-namespace";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Remove the namespace"name = "Multiple Alias Definitions Per File";
description = "Avoid aliasing the same name with different aliases. This leads to confusion.

<?php

// first occurrence
use name\space\ClasseName;

// when this happens, several other uses are mentionned

// name\space\ClasseName has now two names
use name\space\ClasseName as anotherName;

?>

See also Namespaces/MultipleAliasDefinition.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.10.3";name = "Should Make Alias";
description = "Long names should be aliased.

Aliased names are easy to read at the beginning of the script; they may be changed at one point, and update the whole code at the same time. 
Finally, short names makes the rest of the code readable. 

<?php

namespace x\y\z;

use a\b\c\d\e\f\g as Object;

// long name, difficult to read, prone to change.
new a\b\c\d\e\f\g();

// long name, difficult to read, prone to silent dead code if namespace change.
if ($o instanceof a\b\c\d\e\f\g) {
    
}

// short names Easy to update all at once.
new Object();
if ($o instanceof Object) {
    
}

?>";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Namespaces Glossary";
description = "List of all the defined namespaces in the code, using the namespace keyword. 

<?php

// One reported namespace
namespace one\name\space {}

// This global namespace is reported, as it is explicit
namespace { }

?>

Global namespaces are mentioned when they are explicitly used.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Could Use Alias";
description = "This long name may be reduced by using an available alias.

This applies to classes (as full name or prefix), and to constants and functions.

<?php

use a\b\c;
use function a\b\c\foo;
use const a\b\c\D;

// This may be reduced with the above alias to c\d()
new a\b\c\d();

// This may be reduced to c\d\e\f 
new a\b\c\d\e\f();

// This may be reduced to c()
new a\b\c();

// This may be reduced to D
echo a\b\c\D;

// This may be reduced to D
a\b\c\foo();

// This can't be reduced : it is an absolute name
\a\b\c\foo();

// This can't be reduced : it is no an alias nor a prefix
a\b\d\foo();

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Use all your aliases so as to make the code shorter and more readable"
modifications[] = "Add new aliases for missing path"
modifications[] = "Make class names absolute and drop the aliases"

name = "Fully Qualified Constants";
description = "Constants defined with their namespace.

When defining constants with define() function, it is possible to include the actual namespace : 

<?php

define('a\b\c', 1); 

?>

However, the name should be fully qualified without the initial \. Here, \a\b\c constant will never be accessible as a namespace constant, though it will be accessible via the constant() function.

Also, the namespace will be absolute, and not a relative namespace of the current one. ";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
modifications[] = "Drop the initial \ when creating constants with define() : for example, use trim($x, '\\'), which removes anti-slashes before and after."name = "Aliases";
description = "List of all aliases used, to alias namespaces.

<?php

// This is an alias
use stdClass as aClass;

// This is not an alias : it is not explicit
use stdClass;

trait t {
    // This is not an alias, it's a trait usage
    use otherTrait;
}

?>

See also `Using namespaces: Aliasing/Importing <http://php.net/manual/en/language.namespaces.importing.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Global Import";
description = "Mark a Use statement that is importing a global class in the current file.

<?php

namespace Foo {
    // This is a global import
    use Stdclass;
}
?>
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Unused Use";
description = "Unused use statements. They may be removed, as they clutter the code and slows PHP by forcing it to search in this list for nothing.

<?php

use A as B; // Used in a new call.
use Unused; // Never used. May be removed

$a = new B();

?>

";
clearphp = "no-useless-use";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
name = "Hidden Use Expression";
description = "The use expression for namespaces should always be at the beginning of the namespace block. 

It is where everyone expect them, and it is less confusing than having them at various levels.

<?php

// This is visible 
use A;

class B {}

// This is hidden 
use C as D;

class E extends D {
    use traitT; // This is a use for a trait

    function foo() {
        // This is a use for a closure
        return function ($a) use ($b) {}
    }
}

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Group all uses together, at the beginning of the namespace or class"

[example1]
project="Tikiwiki"
file="lib/core/Tiki/Command/DailyReportSendCommand.php"
line="17"
code="namespace Tiki\Command;

use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
error_reporting(E_ALL);
use TikiLib;
use Reports_Factory;
";
explain="Sneaky error_reporting, hidden among the use calls. "

[example2]
project="OpenEMR"
file="interface/patient_file/summary/browse.php"
line="23"
code="<?php
/**
 * Patient selector for insurance gui
 *
 * @package   OpenEMR
 * @link      http://www.open-emr.org
 * @author    Brady Miller <brady.g.miller@gmail.com>
 * @copyright Copyright (c) 2018 Brady Miller <brady.g.miller@gmail.com>
 * @license   https://github.com/openemr/openemr/blob/master/LICENSE GNU General Public License 3
 */


require_once("../../globals.php");
require_once("$srcdir/patient.inc");
require_once("$srcdir/options.inc.php");

if (!empty($_POST)) {
    if (!verifyCsrfToken($_POST["csrf_token_form"])) {
        csrfNotVerified();
    }
}

use OpenEMR\Core\Header;
";
explain="Use expression is only reached when the csrf token is checked. This probably save some CPU when no csrf is available, but it breaks the readability of the file."
name = "Use Const And Functions";
description = "Since PHP 5.6 it is possible to import specific functions or constants from other namespaces.

<?php

namespace A {
    const X = 1;
    function foo() { echo __FUNCTION__; }
}

namespace My{
    use function A\foo;
    use constant A\X;

    echo foo(X);
}

?>

See also `Using namespaces: Aliasing/Importing <http://php.net/manual/en/language.namespaces.importing.php>`_.
";
clearphp = "";
phpversion = "5.6+";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Multiple Alias Definitions";
description = "Some aliases are representing different classes across the repository. This leads to potential confusion. 

Across an application, it is recommended to use the same namespace for one alias. Failing to do this lead to the same keyword to represent different values in different files, with different behavior. Those are hard to find bugs. 

<?php

namespace A {
    use d\d; // aka D
}

// Those are usually in different files, rather than just different namespaces.

namespace B {
    use b\c as D; // also D. This could be named something else
}

?>
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
modifications[] = "Give more specific names to classes"
modifications[] = "Use an alias 'use A\B ac BC' to give locally another name"
[example1]
project="ChurchCRM"
file="Various files"
line="--"
code="use ChurchCRM\Base\FamilyQuery	// in /src/MapUsingGoogle.php:7

use ChurchCRM\FamilyQuery	// in /src/ChurchCRM/Dashboard/EventsDashboardItem.php:8
                            // and 29 other files
";
explain="It is actually surprising to find FamilyQuery defined as ChurchCRM\Base\FamilyQuery only once, while all other reference are for ChurchCRM\FamilyQuery. That lone use is actually useful in the code, so it is not a forgotten refactorisation. "
[example2]
project="Phinx"
file="Various files"
line="--"
code="
use Phinx\Console\Command	                    //in file /src/Phinx/Console/PhinxApplication.php:34
use Symfony\Component\Console\Command\Command	//in file /src/Phinx/Console/Command/Init.php:31
use Symfony\Component\Console\Command\Command	//in file /src/Phinx/Console/Command/AbstractCommand.php:32

";
explain="One 'Command' is refering to a local Command class, while the other is refering to an imported class. They are all in a similar name space Console\Command. "
name = "Unresolved Use";
description = "The following use instructions cannot be resolved to a class or a namespace. They should be dropped or fixed.

<?php

namespace A {
    // class B is defined
    class B {}
    // class C is not defined
}

namespace X/Y {

    use A/B;  // This use is valid
    use A/C;  // This use point to nothing.

    new B();
    new C();
}

?>

Use expression are options for the current namespace. 

See also `Using namespaces: Aliasing/Importing <http://php.net/manual/en/language.namespaces.importing.php>`_.

";
clearphp = "no-unresolved-use";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";

modifications[] = "Remove the use expression"
modifications[] = "Fix the use expression"
name = "Possible Alias Confusion";
description = "An alias is used for a class that doesn't belong to the current namespace, while there is such a class. This also applies to traits and interfaces.

When no alias is used, PHP will search for a class in the local space. Since classes, traits and interfaces are usually stored one per file, it is a valid syntax to create an alias, even if this alias name is the name of a class in the same namespace. 

Yet, with an alias refering to a remote class, while a local one is available, it is possible to generate confusion.

<?php

// This should be in a separate file, but has been merged here, for display purposes.
namespace A {
    //an alias from a namespace called C
    use C\A as C_A;

    //an alias from a namespace called C, which will superseed the local A\B class (see below)
    use C\D as B;
}

namespace A {
    // There is a class B in the A namespace
    class B {}
}

?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.1.2";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Avoid using existing classes names for alias"
modifications[] = "Use a coding convention to distinguish alias from names"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

; Optional parameters
;[parameter1]
;name="parametersCount";
;default="8";
;type="integer";
;description="Minimal number of parameters to report.";
name = "Use With Fully Qualified Name";
description = "Use statement doesn't require a fully qualified name.

PHP manual recommends not to use fully qualified name (starting with \) when using the 'use' statement : they are \"the leading backslash is unnecessary and not recommended, as import names must be fully qualified, and are not processed relative to the current namespace\".

<?php

// Recommended way to write a use statement.
use  A\B\C\D as E;

// No need to use the initial \
use \A\B\C\D as F;

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";

modifications[] = "Remove the initial \ in use expressions."name = "Wrong Case Namespaces";
description = "Namespaces are case-insentives.


<?php

// Namespaces should share the same case
namespace X {}

namespace x {}

?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.9";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Synchronize all names "

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Used Use";
description = "List of use statements. Those use are made to import namespaces structures, not to include traits.

<?php

namespace A {
    class b {}
}

namespace B {
    use A\B as B;
    
    new B();
}

?>

See also `Using namespaces: Aliasing/Importing <http://php.net/manual/en/language.namespaces.importing.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Namespaces";
description = "Inventory of all namespaces.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Is Library";
description = "Is this project a library (it must be used in a larger project) or a standalone code.";
clearphp = "";
exakatSince = "0.8.4";
name = "Nowdoc Delimiter Glossary";
description = "List of all the delimiters used to build a Nowdoc string. 

<?php
$nowdoc = <<<'EOD'

EOD;

?>

See also `Nowdoc <http://php.net/manual/en/language.types.string.php#language.types.string.syntax.nowdoc>`_ and 
         `Heredoc <http://php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Malformed Octal";
description = "Those numbers starts with a 0, so they are using the PHP octal convention. Therefore, one can't use 8 or 9 figures in those numbers, as they don't belong to the octal base. The resulting number will be truncated at the first erroneous figure. For example, 090 is actually 0, and 02689 is actually 22. 

<?php

// A long way to write 0 in PHP 5
$a = 0890; 

// A fatal error since PHP 7

?>

Also, note that very large octal, usually with more than 21 figures, will be turned into a real number and undergo a reduction in precision.

See also `Integers <http://php.net/manual/en/language.types.integer.php>`_.
";
clearphp = "";
phpversion = "7.0-";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
phpError[]="Invalid numeric literal";name = "Array Index";
description = "All literal index used in the code. 

<?php

// index is an index. it is read
$array['index'] = 1;

// another_index and second_level are read
$array[] = $array['another_index']['second_level'];

// variables index are not reported
$array[$variable] = 1;

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.0.4";name = "Internet Domains";
description = "List all internet domain used";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.6";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Similar Integers";
description = "This analysis reports all integer values that are expressed in different format. 

<?php

// Three ways to write 10 (more available)
$a = 10;
$b = 012;
$x = 0xA;

// 7 is expressed in one way only
$d = 7;
$d = 7;

// Four ways to write 11 (more available)
$a = 11;
$b = 013;
$x = 0xB;
$x = -+-11;

// Expressions are not counted

?>
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.0";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "String May Hold A Variable";
description = "Those strings looks like holding a variable. 

Single quotes and Nowdoc syntax may include $ signs that are treated as literals, and not replaced with a variable value. 

However, there are some potential variables in those strings, making it possible for an error : the variable was forgotten and will be published as such. It is worth checking the content and make sure those strings are not variables.

<?php

$a = 2;

// Explicit variable, but literal effect is needed
echo '$a is '.$a;

// One of the variable has been forgotten
echo '$a is $a';

// $CAD is not a variable, rather a currency unit
$total = 12;
echo $total.' $CAD';

// $CAD is not a variable, rather a currency unit
$total = 12;

// Here, $total has been forgotten
echo <<<'TEXT'
$total $CAD
TEXT;

?>
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
name = "Incoming Variable Index Inventory";
description = "This collects all the index used in incoming variables : $_GET, $_POST, $_REQUEST, $_COOKIE.

<?php

// x is collected
echo $_GET['x'];

// y is collected, but no z. 
echo $_POST['y']['z'];

// a is not collected
echo $_ENV['s'];

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.0.4";name = "Strings With Strange Space";
description = "An invisible space may be mistaken for a normal space. 

However, PHP does straight comparisons, and may fail at recognizing. This analysis reports when it finds such strange spaces inside strings.

PHP doesn't mistake space and tables for whitespace when tokenizing the code.

This analysis doesn't report Unicode Codepoint Notation : those are visible in the code.

<?php

// PHP 7 notation, 
$a = "\u{3000}";
$b = " ";

// Displays false
var_dump($a === $b);

?>

See also `Unicode spaces <https://www.cs.tut.fi/~jkorpela/chars/spaces.html>`_, and 
         `disallow irregular whitespace (no-irregular-whitespace) <http://eslint.org/docs/rules/no-irregular-whitespace>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.11.0";

modifications[] = "Replace the odd spaces with a normal space"
modifications[] = "If unsecable spaces are important for presentation, add them at the templating level."


[example1]
project="OpenEMR"
file="library/globals.inc.php"
line="3270"
code="                'to' => xl('Tonga (Tonga Islands)'),";
explain="The name of the contry contains both an unsecable space (the first, after Tonga), and a normal space (between Tonga and Islands). Translations are stored in a database, which preserves the unbreakable spaces. This also means that fixing the translation must be applied to every piece of data at the same time. The xl() function, which handles the translations, is also a good place to clean the spaces before searching for the right translation."
[example2]
project="Thelia"
file="templates/backOffice/default/I18n/fr_FR.php"
line="647"
code="'Mot de passe oublié ?'";
explain="This is another example with a translation sentence. Here, the unbreakable space is before the question mark : this is a typography rule, that is common to many language. This would be a false positive, unless typography is handled by another part of the software."
name = "Heredoc Delimiter Glossary";
description = "List of all the delimiters used to build a Heredoc string. 

In the example below, ``EOD`` is the delimiter.

<?php

$a = <<<EOD
heredoc
EOD;

?>

See also `Heredoc <http://php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Perl Regex";
description = "List of all the Perl Regex (Pcre-style).

<?php

preg_match('/[abc]/', $haystack);

preg_replace('#[0-9A-Z]+#is', $y, $z);

?>

Regex are spotted when they are literals : dynamically built regex, (including /$x/) are not reported.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Shell commands";
description = "Shell commands, called from PHP. 

Shell commands are detected with the italic quotes, and using shell_exec(), system(), exec() and proc_open().

<?php

// Shell command in a shell_exec() call
shell_exec('ls -1');

// Shell command with backtick operator
`ls -1 $path`;

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.9.9";name = "Interpolation";
description = "The following strings contain variables that are will be replaced. However, the following characters are ambiguous, and may lead to confusion. 

<?php

class b { 
    public $b = 'c';
    function __toString() { return __CLASS__; }
}
$x = array(1 => new B());

// -> after the $x[1] looks like a 2nd dereferencing, but it is not. 
print "$x[1]->b";
// displays : b->b

print "{$x[1]->b}";
// displays : c

?>

It is advised to add curly brackets around those structures to make them non-ambiguous.

See also `Double quoted <http://php.net/manual/en/language.types.string.php#language.types.string.syntax.double>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Unicode Blocks";
description = "List of the Unicode blocks used in string literals.

This is the kind of characters that can be found in the applications strings.

<?php

$a = "zoo"; 

$b = "ఒ"; // Telugu character
$b = "\u{0C12}"; Same as above

$b = "人"; // Chinese Mandarin character
$b = "\u{4EBA}"; Same as above

?>

Note that Exakat only analyze PHP scripts : any translation available in a ``.po`` or external resource is not parsed and will not show.

See also `Unicode block <https://en.wikipedia.org/wiki/Unicode_block>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Invalid Octal In String";
description = "Any octal sequence inside a string can't be go \377. Those will be a fatal error at parsing time. 

The check is applied to the string, starting with PHP 7.1. In PHP 7.0 and older, those sequences were silently adapted (modulo/% \400).

<?php

// A valid octal in a PHP string
echo "\100"; // @

// Emit a warning in PHP 7.1
//Octal escape sequence overflow \500 is greater than \377
echo "\500"; // @

// Silent conversion
echo "\478"; // 8

?>

See also `Integers <http://php.net/manual/en/language.types.integer.php>`_.
";
clearphp = "";
phpversion = "7.1-";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince="0.9.1";

phpErrors[] = "Octal escape sequence overflow \500 is greater than \377"

modifications[] = "Use a double slash to avoid the sequence to be an octal sequence"
modifications[] = "Use a function call, such as decoct() to convert larger number to octal notation"
name = "Should Be Single Quote";
description = "Use single quote for simple strings.

Static content inside a string, that has no single quotes nor escape sequence (such as \n or \t), should be using single quote delimiter, instead of double quote. 

<?php

$a = "abc";

// This one is using a special sequence
$b = "cde\n";

// This one is using two special sequences
$b = "\x03\u{1F418}";

?>

If you have too many of them, don't loose your time switching them all. If you have a few of them, it may be good for consistence.";
clearphp = "no-double-quote";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
name = "Protocol lists";
description = "List of all protocols that were found in the code.

From the manual : PHP comes with many built-in wrappers for various URL-style protocols for use with the filesystem functions such as fopen(), copy(), file_exists() and filesize(). 

<?php
// Example from the PHP manual, with the glob:// wrapper

// Loop over all *.php files in ext/spl/examples/ directory
// and print the filename and its size
$it = new DirectoryIterator("glob://ext/spl/examples/*.php");
foreach($it as $f) {
    printf("%s: %.1FK\n", $f->getFilename(), $f->getSize()/1024);
}
?>

See also `Supported Protocols and Wrappers <https://www.php.net/manual/en/wrappers.php>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.1.3";

; Alternative to make this code go away. 
; One by possible solution
;modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Internet Ports";
description = "List of all the Internet ports mentioned in the code. 

Ports are recognized based on a internal database of port. They are found in Integers.

<?php

// 21 is the default port for FTP
$ftp = ftp_connect($host, 21, $timeout = 90);

?>

See also `List of TCP and UDP port numbers <https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Pack Format Inventory";
description = "All format used in the code with pack() and unpack().

<?php

$binarydata = \"\x04\x00\xa0\x00\";
$array = unpack(\"cn\", $binarydata);
$initial = pack(\"cn\", ...$array);

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.5.0";name = "String glossary";
description = "List of all the string values used in the application.";
clearphp = "";
exakatSince = "0.8.4";
name = "Binary Glossary";
description = "List of all the integer values using the binary format.

<?php

$a = 0b10;
$b = 0B0101;

?>
";
clearphp = "";
phpversion = "5.4+";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Continents";
description = "List of all the continents mentioned in the code.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Duplicate Literal";
description = "Report literals that are repeated across the code. The minimum replication is 5, and is configurable with maxDuplicate.

Repeated literals should be considered a prime candidate for constants.

Integer, reals and strings are considered here. Boolean, Null and Arrays are omitted. 0, 1, 2, 10 and the empty string are all omitted, as too common.

<?php
    // array index are omitted
    $x[3] = 'b';

    // constanst are omitted
    const X = 11;
    define('Y', 'string')

    // 0, 1, 2, 10 are omitted
    $x = 0; 
    
?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.6";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

[parameter1]
name="minDuplicate";
default="15";
type="integer";
description="Minimal number of duplication before the literal is reported.";
name = "Md5 Strings";
description = "List of all the MD5 values hard coded in the application.

MD5 values are detected as hexadecimal strings, of length 32. No attempt at recognizing the origin value is made, so any such strings, including dummy '11111111111111111111111111111111' are reported.

<?php
    // 32 
   $a = '0cc175b9c0f1b6a831c399e269771111';

?>

See also `MD5 <http://php.net/md5>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "URL List";
description = "List of all the URL addresses that were found in the code.

<?php

// the first argument is recognized as an URL
ftp_connect('http://www.example.com/', $port, $timeout);

// the string argument  is recognized as an URL
$source = 'https://www.other-example.com/';

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Hexadecimal Glossary";
description = "List of all the integer values using the hexadecimal format.

<?php

$hexadecimal = 0x10;

$anotherHexadecimal =0XAF;

?>

See also `Integer Syntax <http://php.net/manual/en/language.types.integer.php#language.types.integer.syntax>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Printf Format Inventory";
description = "All format used in the code with printf(), vprintf(), sprintf(), scanf() and fscanf().

<?php

// Display a number with 2 digits
echo printf(\"%'.2d\n\", 123);

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.5.0";name = "Path lists";
description = "List of all paths that were found in the code.

Path are identified with this regex : ``^(.*/)([^/]*)\.\w+$``. In particular, the directory delimiter is ``/``. 

<?php

// the first argument is recognized as an URL
fopen('/tmp/my/file.txt', 'r+');

// the string argument  is recognized as an URL
$source = 'https://www.other-example.com/';

?>

URL are ignored when the protocol is present in the literal : ``http://www.example.com`` is not mistaken with a file. 

See also `Dir predefined constants <http://php.net/manual/en/dir.constants.php>`_ and
         `Supported Protocols and Wrappers <https://www.php.net/manual/en/wrappers.php>`_.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.5.8";

; Alternative to make this code go away. 
; One by possible solution
;modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Should Typecast";
description = "When typecasting, it is better to use the casting operator, such as ``(int)`` or ``(bool)``.

Functions such as intval() or settype() are always slower.

<?php

// Fast version
$int = (int) $X;

// Slow version
$int = intval($X);

// Convert to base 8 : can't use (int) for that
$int = intval($X, 8);


?>

This is a micro-optimisation, although such conversion may be use multiple time, leading to a larger performance increase.  

Note that intval() may also be used to convert an integer to another base.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
modifications[] = "Use a typecast, instead of a functioncall.";
[example1]
project="xataface"
file="Dataface/Relationship.php"
line="1612"
code="intval($min);";
explain="This is an exact example. A little further, the same applies to intval($max)) "
[example2]
project="OpenConf"
file="author/upload.php"
line="62"
code="intval($_POST['pid']);";
explain="This is another exact example. "
name = "All strings";
description = "Strings and heredocs in one place.

<?php

$string = 'string';

$query = <<<SQL
Heredoc
SQL;

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.10.1";name = "Special Integers";
description = "Short and incomplete list of integers that may hold special values. 

<?php

// 86400 is the number of seconds in a day
$day = 86400;

// 1400 is the number of minutes in a day
$day = 1440;

?>

The list includes powers of 2, duration in various units, factorial, ASCII codes and years.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "One Variable String";
description = "These strings only contains one variable or property or array. 

<?php

$a = 0;
$b = \"$a\"; // This is a one-variable string

// Better way to write the above
$b = (string) $a;

// Alternatives : 
$b2 = \"$a[1]\"; // This is a one-variable string
$b3 = \"$a->b\"; // This is a one-variable string
$c = \"d\";
$d = \"D\";
$b4 = \"{$$c}\";
$b5 = \"{$a->foo()}\";

?>

When the goal is to convert a variable to a string, it is recommended to use the type casting (string) operator : it is then clearer to understand the conversion. It is also marginally faster, though very little. 

See also `Strings <http://php.net/manual/en/language.types.string.php>`_ and
         `Type Juggling <http://php.net/manual/en/language.types.type-juggling.php>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
modifications[] = "Drop the surrounding string, keep the variable (or property...)";
modifications[] = "Include in the string any concatenation that comes unconditionaly after or before";
modifications[] = "Convert the variable to a string with the (type) operator";

[example1]
project="Tikiwiki"
file="lib/wiki-plugins/wikiplugin_addtocart.php"
line="228"
code="	foreach ($plugininfo['params'] as $key => $param) {
		$default[\"$key\"] = $param['default'];
	}
";
explain="Double-quotes are not needed here. If casting to string is important, the (string) would be more explicit."
[example2]
project="NextCloud"
file="build/integration/features/bootstrap/BasicStructure.php"
line="349"
code="	public static function removeFile($path, $filename) {
		if (file_exists(\"$path\" . \"$filename\")) {
			unlink(\"$path\" . \"$filename\");
		}
	}
";
explain="Both concatenations could be merged, independantly. If readability is important, why not put them inside curly brackets?"
name = "SQL queries";
description = "SQL queries, detected in literal strings. 

SQL queries are detected with keywords, inside literals or concatenations. 

<?php

// SQL in a string
$query = 'SELECT name FROM users WHERE id = 1';

// SQL in a concatenation
$query = 'SELECT name FROM '.$table_users.' WHERE id = 1';

// SQL in a Heredoc
$query = <<<SQL
SELECT name FROM $table_users WHERE id = 1
SQL;

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.10.1";name = "PHP Sapi";
description = "List of PHP SAPI mentioned in the code. When those SAPI are mentioned in strings, they are usually checked to take advantage of special characteristics. Check the code for portability.

<?php

require __DIR__.'/phpdbg.php';

$Phpdbg = new phpdbg();

?>
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Mime Types";
description = "List of Mime Types that are mentioned in the code. 

<?php

$mimeType = 'multipart/form-data';
$mimeType = 'image/jpeg';
$mimeType = 'application/zip';

header('Content-Type: '.$mimeType);

?>

See also `Media Type <https://en.wikipedia.org/wiki/Media_type>`_ and
         `MIME <https://en.wikipedia.org/wiki/MIME>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Regex Inventory";
description = "All regex used in the code. PHP has the PCRE extension that handles all regex : preg_match(), preg_replace(), etc. 

<?php

// PCRE regex used with preg_match
preg_match('/[abc]+/', $string);

// Mbstring regex, in the arabic range
if(mb_ereg('[\x{0600}-\x{06FF}]', $text))

?>

mbstring regexes are also collected. Pre-PHP 7.0 POSIX regex are not listed. 

See also `ext/mbstring <http://www.php.net/manual/en/book.mbstring.php> `_ and 
         `ext/pcre <http://www.php.net/manual/en/book.pcre.php> `_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.12.14";name = "Hexadecimal In String";
description = "Mark strings that may be confused with hexadecimal. 

Until PHP 7.0, PHP recognizes hexadecimal numbers inside strings, and converts them accordingly. 

PHP 7.0 and until 7.1, converts the string to 0, silently. 

PHP 7.1 and later, emits a 'A non-numeric value encountered' warning, and convert the string to 0. 

<?php
    $a = '0x0030';
    print $a + 1;
    // Print 49

    $c = '0x0030zyc';
    print $c + 1;
    // Print 49

    $b = 'b0x0030';
    print $b + 1;
    // Print 0
?>

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "HTTP Status Code";
description = "List of all the HTTP status codes mentioned in the code.

<?php

http_response_code(418);

header('HTTP/1.1 418 I\'m a teapot');

?>

See also `List of HTTP status codes <https://en.wikipedia.org/wiki/List_of_HTTP_status_codes>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Silently Cast Integer";
description = "Those are integer literals that are cast to a float when running PHP. They are too big for the current PHP version, and PHP resorts to cast them into a float, which has a much larger capacity but a lower precision.

Compare your literals to ``PHP_MAX_INT`` (typically ``9223372036854775807``) and ``PHP_MIN_INT`` (typically ``-9223372036854775808``).
This applies to binary (``0b10101``...), octal (``0123123``...) and hexadecimal (``0xfffff``...) too. 

<?php

echo 0b1010101101010110101011010101011010101011010101011010101011010111;
//6173123008118052203
echo 0b10101011010101101010110101010110101010110101010110101010110101111;
//1.2346246016236E+19

echo 0123123123123123123123;
//1498121094048818771
echo 01231231231231231231231;
//1.1984968752391E+19

echo 0x12309812311230;
//5119979279159856
echo 0x12309812311230fed;
//2.0971435127439E+19

echo 9223372036854775807; //PHP_MAX_INT
//9223372036854775807
echo 9223372036854775808;
9.2233720368548E+18

?>

See also `Integer overflow <http://php.net/manual/en/language.types.integer.php#language.types.integer.overflow>`_.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Make sure hexadecimal numbers have the right number of digits : generally, it is 15, but it may depends on your PHP version."

[example1]
project="MediaWiki"
file="includes/debug/logger/monolog/AvroFormatter.php"
line="167"
code="	private function encodeLong( $id ) {
		$high   = ( $id & 0xffffffff00000000 ) >> 32;
		$low    = $id & 0x00000000ffffffff;
		return pack( 'NN', $high, $low );
	}
";
explain="Too many ff in the masks. "
name = "No Real Comparison";
description = "Avoid comparing decimal numbers with ==, ===, !==, !=. Real numbers have an error margin which is random, and makes it very difficult to match even if the compared value is a literal. 

PHP uses an internal representation in base 2 : any number difficult to represent with this base (like 0.1 or 0.7) will have a margin of error.

<?php

$a = 1/7;
$b = 2.0;

// 7 * $a is a real, not an integer
var_dump( 7 * $a === 1);

// rounding error leads to wrong comparison
var_dump( (0.1 + 0.7) * 10 == 8);
// although
var_dump( (0.1 + 0.7) * 10);
// displays 8

// precision formula to use with reals. Adapt 0.0001 to your precision needs
var_dump( abs(((0.1 + 0.7) * 10) - 8) < 0.0001); 

?>

Use precision formulas with abs() to approximate values with a given precision, or avoid reals altogether. 

See also `Floating point numbers <http://php.net/manual/en/language.types.float.php#language.types.float>`_.
";
clearphp = "no-real-comparison";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Cast the values to integer before comparing"
modifications[] = "Compute the difference, and keep it below a threshold"
modifications[] = "Use the gmp or the bc extension to handle high precision numbers"
modifications[] = "Change the 'precision' directive of PHP : ini_set('precision', 30) to make number larger"
modifications[] = "Multiply by a power of ten, before casting to integer for the comparison"
modifications[] = "Use floor(), ceil() or round() to compare the numbers, with a specific precision"

[example1]
project="Magento"
file="app/code/core/Mage/XmlConnect/Block/Catalog/Product/Options/Configurable.php"
line="74"
code="                    if ((float)$option['price'] != 0.00) {
                        $valueNode->addAttribute('price', $option['price']);
                        $valueNode->addAttribute('formated_price', $option['formated_price']);
                    }
";
explain="Compare prices and physical quantities with a difference, so as to avoid rounding errors."
[example2]
project="SPIP"
file="ecrire/maj/v017.php"
line="37"
code="$version_installee == 1.701";
explain="Here, the current version number is stored as a real number. With a string, though a longer value, it may be compared using the version_compare() function."
name = "Email Addresses";
description = "List of all the email addresses that were found in the code.

Emails are detected with regex : ``[_A-Za-z0-9-]+(\\\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\\\.[A-Za-z0-9]+)*(\\\\.[A-Za-z]{2,})``

<?php

$email = 'contact@exakat.io';

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Http Headers";
description = "List of HTTP headers use in the code. 

<?php

header('Location: http://www.example.com/');

// Parseable headers are also reported
header('Location: http://www.example.com/');

// UnParseable headers are not reported
header('GarbagexxxxXXXXxxxGarbagexxxxXXXXxxx');
header($header);

?>

Those headers are mostly used with header() function to send to browser.

See also `List of HTTP header fields <https://en.wikipedia.org/wiki/List_of_HTTP_header_fields>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "OpenSSL Ciphers Used";
description = "List of all the OpenSSL ciphers used in the code. 

It is important to always use valid cipher modes for SSL. In case of non-existent cipher, the crypting or decrypting will not happen. Ciphers are marked as weak after their security is breached, and shall be removed from OpenSSL, and later, from PHP. 

By reviewing this inventory, it is possible to detect forgotten ciphers, and fix them.

The full list of available ciphers for the PHP installation is available with the function openssl_get_cipher_methods(). 

<?php
// PHP documentation example, for PHP 7.1 and more recent
//$key should have been previously generated in a cryptographically safe way, like openssl_random_pseudo_bytes
$plaintext = "message to be encrypted";
$cipher = "aes-128-gcm";
if (in_array($cipher, openssl_get_cipher_methods()))
{
    $ivlen = openssl_cipher_iv_length($cipher);
    $iv = openssl_random_pseudo_bytes($ivlen);
    $ciphertext = openssl_encrypt($plaintext, $cipher, $key, $options=0, $iv, $tag);
    //store $cipher, $iv, and $tag for decryption later
    $original_plaintext = openssl_decrypt($ciphertext, $cipher, $key, $options=0, $iv, $tag);
    echo $original_plaintext."\n";
}
?>

See also openssl_encrypt() and 
        `OpennSSL [PHP manual] <https://www.php.net/manual/en/book.openssl.php>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.1.1";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

; Optional parameters
;[parameter1]
;name="parametersCount";
;default="8";
;type="integer";
;description="Minimal number of parameters to report.";
name = "Octal Glossary";
description = "List of all the integer values using the octal format : an integer starting with an initial 0. 

<?php

  $a = 1234; // decimal number
  $a = 0123; // octal number (equivalent to 83 decimal)

  // silently valid for PHP 5.x
  $a = 01283; // octal number (equivalent to 10 decimal)

?>

Putting an initial 0 is often innocuous, but in PHP, 0755 and 755 are not the same. The second is actually 1363 in octal, and will not provide the expected privileges.

See also `Integers <http://php.net/manual/en/language.types.integer.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Confusing Names";
description = "The following variables's name are very close and may lead to confusion.

Variables are 3 letters long (at least). Variables names build with an extra ``s`` are omitted.
Variables may be scattered across the code, or close to each other. 

Variables which differ only by case, or by punctuation or by numbers are reported here.

<?php

    // Variable names with one letter difference
    $fWScale = 1;
    $fHScale = 1;
    $fScale = 2;
    
    $oFrame = 3;
    $iFrame = new Foo();
    
    $v2_norm = array();
    $v1_norm = 'string';
    
    $exept11 = 1;
    $exept10 = 2;
    $exept8 = 3;
    
    // Variables that differ by punctation
    $locale = 'fr';
    $_locate = 'en';

    // Variables that differ by numbers
    $x11 = 'a';
    $x12 = 'b';

    // Variables that differ by numbers
    $songMP3 = 'a';
    $Songmp3 = 'b';
    
    // This even looks like a typo
    $privileges  = 1;
    $privilieges = true;
    
    // This is not reported : Adding extra s is tolerated.
    $rows[] = $row;
    
?>

See also `How to pick bad function and variable names <http://mojones.net/how-to-pick-bad-function-and-variable-names.html>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Real Variables";
description = "Inventory of real variables. Global, Static and property declarations are skipped here. 

<?php

$realVariable = 1;

class foo {
    private $property;        // not a variable
    
    private function bar() {
        global $global;       // not a variable
        static $static;       // not a variable
        
    }
}

?>

This is a refined version of a search on ``T_VARIABLE`` token.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "PHP Variables";
description = "This is the list of PHP predefined variables that are used in the application. 

<?php

// Reading an incoming email, with sanitation
$email = filter_var($_GET['email'], FILTER_SANITIZE_EMAIL);

?>

The web variables (``$\_GET``, ``$\_COOKIE``, ``$\_FILES``) are quite commonly used, though sometimes replaced by some special accessors. Others are rarely used. "

See also `Predefined Variables <http://php.net/manual/en/reserved.variables.php>`_.
;
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Static Variables";
description = "In PHP, variables may be static. They will survive after the function execution end, and will be available at the next function run. They are distinct from globals, which are available application wide, and from static properties, which are tied to a class of objects. 

<?php

function foo() {
    // static variable
    static $count = 0;
    
    echo ++$count;
}

class bar {
    // This is not a static variable : 
    // it is a static property
    static $property = 1;
}

?>
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Undefined Variable";
description = "Variable that is used before any creation. 

It is recommended to use a default value for every variable used. When not specified, the default value is set to ``NULL`` by PHP.

<?php

// Adapted from the PHP manual
$var = 'Bob';
$Var = 'Joe';
// The following line may emit a warning : Undefined variable: $undefined
echo "$var, $Var, $undefined";      // outputs "Bob, Joe, "


?>

Variable may be created in various ways : assignation, arguments, foreach blind variables, static and global variables.

This analysis doesn't handle dynamic variables, such as ``$$x``. It also doesn't handle variables outside a method or function.

See also `Variable basics <http://php.net/manual/en/language.variables.basics.php>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "1.4.2";
phpError[] = "Creating default object from empty value";
phpError[] = "Undefined variable: ";

modifications[] = "Remove the expression that is using the undefined variable"
modifications[] = "Fix the variable name"
modifications[] = "Define the variable by assigning a value to it, before using it"
name = "Written Only Variables";
description = "Those variables are being written, but never read. This way, they are useless and should be removed, or read at some point.

<?php

// $a is used multiple times, but never read
$a = 'a';
$a .= 'b';

$b = 3; 
//$b is actually read once
$a .= $b + 3; 

?>
";
clearphp = "no-unused-variable";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";

modifications[] = "Check that variables are written AND read in each context";
modifications[] = "Remove variables that are only read";
modifications[] = "Use the variable that are only read";

[example1]
project="Dolibarr"
file="htdocs/ecm/class/ecmdirectory.class.php"
line="692"
code="		// We add properties fullxxx to all elements
		foreach($this->cats as $key => $val)
		{
			if (isset($motherof[$key])) continue;
			$this->build_path_from_id_categ($key, 0);
		}
";
explain="$val is only written, as only the keys are used. $val may be skipped by applying the foreach to array_keys($this->cats), instead of the whole array."

[example2]
project="SuiteCrm"
file="modules/Campaigns/utils.php"
line="820"
code="        //run query for mail boxes of type 'bounce'
        $email_health = 0;
        $email_components = 2;
        $mbox_qry = \"select * from inbound_email where deleted ='0' and mailbox_type = 'bounce'\";
        $mbox_res = $focus->db->query($mbox_qry);

        $mbox = array();
        while ($mbox_row = $focus->db->fetchByAssoc($mbox_res)) {
            $mbox[] = $mbox_row;
        }

";
explain="$email_health is used later in the method; while $email_components is only set, and never used."
name = "Single Use Variables";
description = "Variables that are written, then read. Only used once.

Single-use variables may be trimmed down, and the initial expression may be used instead.

Single-use variables may improve readability, when the final expression grows too much with the extra expression. 

<?php

function foo($d) {
    $a = 1;     // $a is used twice
    $b = $a + 2;  // $b is used once
    $c = $a + $b + $d; // $c is also used once
    // $d is an argument, so it's OK.
    
    retrun $c;
}

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "1.3.0";name = "Globals";
description = "Global variables.

<?php

// global via global keyword
global $a, $b;

// global via $GLOBALS variable
$GLOBALS['c'] = 1;

?>
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Complex Dynamic Names";
description = "Avoid using expressions as names for variables or methods. 

There are no place for checks or flow control, leading to any rogue value to be used as is. Besides, the expression is often overlooked, and not expected there : this makes the code less readable.

It is recommended to build the name in a separate variable, apply the usual checks for existence and validity, and then use the name.

<?php

$a = new foo();

// Code is more readable
$name = strolower($string);
if (!property_exists($a, $name)) {
    throw new missingPropertyexception($name);
}
echo $a->$name;

// This is not check
echo $a->{strtolower($string)};

?>

This analysis only accept simple containers, such as variables, properties. 

See also `Dynamically Access PHP Object Properties with $this <https://drupalize.me/blog/201508/dynamically-access-php-object-properties>`_.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.8.4";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Extract the expression from the variable syntax, and make it a separate variable."

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Strange Name For Variables";
description = "Variables with strange names. They might be a typo, or bear strange patterns.

Any variable with three identical letter in a row are considered as strange. 2 letters in a row is classic, and while three letters may happen, it is rare enough. 

A list of classic typo is also used to find such variables.

This analysis is case-sensitive.

<?php

class foo {
    function bar() {
        // Strange name $tihs
        return $tihs;
    }
    
    function barbar() {
        // variables with blocks of 3 times the same character are reported
        // Based on Alexandre Joly's tweet
        $aaa = $bab + $www; 
    }
}

?>

See also `#QuandLeDevALaFleme <https://twitter.com/bsmt_nevers/status/949238391769653249>`_.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.10.5";
modifications[] ="Fix the name of the variable"
modifications[] ="Rename the variable to something better"
modifications[] ="Drop the variable"
[example1]
project="FuelCMS"
file="fuel/modules/fuel/libraries/parser/dwoo/Dwoo/Adapters/CakePHP/dwoo.php"
line="86"
code="	public function _render($___viewFn, $___data_for_view, $___play_safe = true, $loadHelpers = true) {
    /**/
}";
explain="Three _ is quite a lot for variables. Would they not be parameters but global variables, that would still be quite a lot."
[example2]
project="PhpIPAM"
file="app/admin/sections/edit-result.php"
line="56"
code="		//fetch subsection subnets
		foreach($subsections as $ss) {
			$subsection_subnets = $Subnets->fetch_section_subnets($ss->id);	//fetch all subnets in subsection
			if(sizeof($subsection_subnets)>0) {
				foreach($subsection_subnets as $sss) {
					$out[] = $sss;
				}
			}
			$num_subnets = $num_subnets + sizeof($subsection_subnets);
			//count all addresses that will be deleted!
			$ipcnt = $Addresses->count_addresses_in_multiple_subnets($out);
		}
";
explain="$sss is the end-result of a progression, from $subsections (3s) to $ss to $sss. Although it is understandable from the code, a fuller name, like $subsection_subnet or $one_subsection_subnet would make this more readable."


name = "Environment Variables";
description = "Environment variables are used to interact with the hosting system. 

They often provides configuration parameter that are set by the host of the application to be used. 
That way, information is not hardcoded in the application, and may be changed at production.

<?php

//ENVIRONMENT set the production context
if (getenv('ENVIRONMENT') === 'Production') {
    $sshKey = getenv('HOST_KEY');
} elseif (getenv('ENVIRONMENT') === 'Developper') {
    $sshKey = 'NO KEY';
} else {
    header('No website here.');
    die();
}

?>

See also `$_ENV <http://php.net/reserved.variables.environment.php>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.0.5";
name = "Variables Variables";
description = "A variable variable takes the value of a variable and treats that as the name of a variable.

PHP has the ability to dynamically use a variable. 

<?php

// Normal variable
$a = 'b';
$b = 'c';

// Variable variable
$d = $$b;

// Variable variable in string
$d = \"$\{$b\}\";

?>

See also `Variable variables <http://php.net/manual/en/language.variables.variable.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Php 7 Indirect Expression";
description = "Those are variable indirect expressions that are interpreted differently in PHP 5 and PHP 7. 

You should check them so they don't behave strangely.

<?php

// Ambiguous expression : 
$b = $$foo['bar']['baz'];
echo $b;

$foo = array('bar' => array('baz' => 'bat'));
$bat = 'PHP 5.6';

// In PHP 5, the expression above means : 
$b = $\{$foo['bar']['baz']};
$b = 'PHP 5.6';

$foo = 'a';
$a = array('bar' => array('baz' => 'bat'));

// In PHP 7, the expression above means : 
$b = ($$foo)['bar']['baz'];
$b = 'bat';

?>

See also `Changes to variable handling <http://php.net/manual/en/migration70.incompatible.php>`_.
";
clearphp = "";
phpversion = "7.0+";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";

modifications[] = "Avoid using complex expressions, mixing $$, [0] and -> in the same expression";
modifications[] = "Add curly braces {} to ensure that the precedence is the same between PHP 5 and 7. For example, ``\$\$v`` becomes ``\${\$v}``";

name = "Overwritten Literals";
description = "The same variable is assigned a literal twice. It is possible that one of the assignation is too much.

This analysis doesn't take into account the distance between two assignations : it may report false positives when the variable is actually used for several purposes, and, as such, assigned twice with different values.

<?php

function foo() {
    // Two assignations in a short sequence : one is too many.
    $a = 1;
    $a = 2;
    
    for($i = 0; $i < 10; $i++) {
        $a += $i;
    }
    $b = $a;
    
    // New assignation. $a is now used as an array. 
    $a = array(0);
}

?>
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
name = "Variables With Long Names";
description = "VariablesLong collect all variables with more than 20 characters longs.

<?php

// Quite a long variable name
$There_is nothing_wrong_with_long_variable_names_They_tend_to_be_rare_and_that_make_them_noteworthy = 1;

?>

There is nothing wrong with long variable names. They tend to be rare, and that make them noteworthy.

See also `Basics <http://php.net/manual/en/language.variables.basics.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
[parameter1]
name="variableLength";
default="20";
type="integer";
description="Minimum size of a long variable name, including the initial $.";

modifications[] = "Rename the variable with a shorter name"
modifications[] = "Change the configuration of this analysis with a longer valid name"


name = "Self-Transforming Variables";
description = "Variables that are assigned to themselves after transformation. 

<?php

$s = strtolower($s);

// filtering one element AND dropping all that not 1
$a = array_filter('foo', $a[1]);

$o->m = foo($o->m);

?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.7.0";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Try to use new variables to hold new values."

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "PHP5 Indirect Variable Expression";
description = "Indirect variable expressions changes between PHP 5 an 7.

The following structures are evaluated differently in PHP 5 and 7. It is recommended to review them or switch to a less ambiguous syntax.

<?php

// PHP 7 
$foo = 'bar';
$bar['bar']['baz'] = 'foobarbarbaz';
echo $$foo['bar']['baz'];
echo ($$foo)['bar']['baz'];

// PHP 5
$foo['bar']['baz'] = 'bar';
$bar = 'foobarbazbar';
echo $$foo['bar']['baz'];
echo \${\$foo['bar']['baz']};

?>

See `Backward incompatible changes PHP 7.0 <http://php.net/manual/en/migration70.incompatible.php>`_

+-----------------------+-------------------------+-------------------------+
| Expression            | PHP 5 interpretation    | PHP 7 interpretation    |
+-----------------------+-------------------------+-------------------------+
|\$\$foo['bar']['baz']    |\${\$foo['bar']['baz']}    |(\$\$foo)['bar']['baz']    |
|\$foo->\$bar['baz']      |\$foo->{\$bar['baz']}      |(\$foo->\$bar)['baz']      |
|\$foo->\$bar['baz']()    |\$foo->{\$bar['baz']}()    |(\$foo->\$bar)['baz']()    |
|Foo::\$bar['baz']()   |Foo::{\$bar['baz']}()   |(Foo::\$bar)['baz']()   |
+-----------------------+-------------------------+-------------------------+

";
clearphp = "";
phpversion = "7.0-";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";

modifications[] = "Avoid using complex expressions, mixing ``\$\$\``, ``[0]`` and ``->`` in the same expression"
modifications[] = "Add curly braces {} to ensure that the precedence is the same between PHP 5 and 7. For example, ``\$\$v`` becomes ``\${\$v}``";
name = "References";
description = "Variables that are references. 

<?php

$a = '1'; // not a reference
$b = &$a; // a reference

?>

See also `References <http://php.net/references>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Local Globals";
description = "A global variable is used locally in a method. 

Either the global keyword has been forgotten, or the local variable should be renamed in a less ambiguous manner.

Having both a global and a local variable with the same name is legit. PHP keeps the contexts separated, and it processes them independently.

However, in the mind of the coder, it is easy to mistake the local variable $x and the global variable $x. May they be given different meaning, and this is an error-prone situation. 

It is recommended to keep the global variables's name distinct from the local variables. 

<?php

// This is actualy a global variable
$variable = 1;
$globalVariable = 2;

function foo() {
    global $globalVariable2;
    
    $variable = 4;
    $localVariable = 3;
    
    // This always displays 423, instead of 123
    echo $variable .' ' . $globalVariable . ' ' . $localVariable;
}

?>
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "1.1.2";name = "Used Once Variables";
description = "This is the list of used once variables. 

<?php

// The variables below never appear again in the code
$writtenOnce = 1;

foo($readOnce);

?>

Such variables are useless. Variables must be used at least twice : once for writing, once for reading, at least. It is recommended to remove them.

In special situations, variables may be used once : 

+ PHP predefined variables, as they are already initialized. They are omitted in this analyze.
+ Interface function's arguments, since the function has no body; They are omitted in this analyze.
+ Dynamically created variables (\$\$x, \${\$this->y} or also using extract), as they are runtime values and can't be determined at static code time. They are reported for manual review.
+ Dynamically included files will provide in-scope extra variables.

The current analyzer count variables at the application level, and not at a method scope level. ";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Remove the variable"
modifications[] = "Fix the name of variable"
modifications[] = "Use the variable a second time, at least"

[example1]
project="shopware"
file="_sql/migrations/438-add-email-template-header-footer-fields.php"
line="115"
code="    private function updateEmailTemplate($name, $content, $contentHtml = null)
    {
        $sql = <<<SQL
UPDATE `s_core_config_mails` SET `content` = \"$content\" WHERE `name` = \"$name\" AND dirty = 0
SQL;
        $this->addSql($sql);

        if ($contentHtml != null) {
            $sql = <<<SQL
UPDATE `s_core_config_mails` SET `content` = \"$content\", `contentHTML` = \"$contentHtml\" WHERE `name` = \"$name\" AND dirty = 0
SQL;
            $generatedQueries[] = $sql;
        }

        $this->addSql($sql);
    }";
explain="In the updateEmailTemplate method, $generatedQueries collects all the generated SQL queries. $generatedQueries is not initialized, and never used after initialization. "
[example2]
project="Vanilla"
file="library/core/class.configuration.php"
line="1461"
code="                // Save to cache if we're into that sort of thing
                $fileKey = sprintf(Gdn_Configuration::CONFIG_FILE_CACHE_KEY, $this->Source);
                if ($this->Configuration && $this->Configuration->caching() && Gdn::cache()->type() == Gdn_Cache::CACHE_TYPE_MEMORY && Gdn::cache()->activeEnabled()) {
                    $cachedConfigData = Gdn::cache()->store($fileKey, $data, [
                        Gdn_Cache::FEATURE_NOPREFIX => true,
                        Gdn_Cache::FEATURE_EXPIRY => 3600
                    ]);
                }
";
explain="In this code, $cachedConfigData is collected after storing date in the cache. Gdn::cache()->store() does actual work, so its calling is necessary. The result, collected after execution, is not reused in the rest of the method (long method, not all is shown here). Removing such variable is a needed clean up after development and debug, but also prevents pollution of the variable namespace."
name = "Blind Variables";
description = "Variables that are used in foreach or for structure, for their managing the loop itself. 

<?php
    foreach($array as $key => $value) {
        // $key and $value are blind values
    }

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Non Ascii Variables";
description = "PHP allows certain characters in variable names. The variable name must only include letters, figures, underscores and ASCII characters from 128 to 255. 

In practice, letters outside the scope of ``a-zA-Z0-9`` are rare, and require more care when editing the code or passing it from OS to OS. 

<?php

class 人 {
    // An actual working class in PHP.
    public function __construct() {
        echo __CLASS__;
    }
}

$人民 = new 人();

?>

See also `Variables <http://php.net/manual/en/language.variables.basics.php>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";

modifications[] = "Make sure those special chars have actual meaning.";

[example1]
project="Magento"
file="dev/tests/functional/tests/app/Mage/Checkout/Test/Constraint/AssertOrderWithMultishippingSuccessPlacedMessage.php"
line="52"
code="$сheckoutMultishippingSuccess";
explain="The initial C is actually a russian C."
name = "Used Once Variables (In Scope)";
description = "This is the list of used once variables, scope by scope. Those variables are used once in a function, a method, a class or a namespace. In any case, this means the variable is read or written, while it should be used at least twice. 

<?php

function foo() {
    // The variables below never appear twice, inside foo()
    $writtenOnce = 1;

    foo($readOnce);
    // They do appear again in other functions, or in global space. 
}

function bar() {
    $writtenOnce = 1;
    foo($readOnce);
}

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Remove the variable"
modifications[] = "Fix the name of variable"
modifications[] = "Use the variable a second time in the current scope, at least"

[example1]
project="shopware"
file="_sql/migrations/438-add-email-template-header-footer-fields.php"
line="115"
code="    private function updateEmailTemplate($name, $content, $contentHtml = null)
    {
        $sql = <<<SQL
UPDATE `s_core_config_mails` SET `content` = \"$content\" WHERE `name` = \"$name\" AND dirty = 0
SQL;
        $this->addSql($sql);

        if ($contentHtml != null) {
            $sql = <<<SQL
UPDATE `s_core_config_mails` SET `content` = \"$content\", `contentHTML` = \"$contentHtml\" WHERE `name` = \"$name\" AND dirty = 0
SQL;
            $generatedQueries[] = $sql;
        }

        $this->addSql($sql);
    }";
explain="In the updateEmailTemplate method, $generatedQueries collects all the generated SQL queries. $generatedQueries is not initialized, and never used after initialization. "
name = "Variables With One Letter Names";
description = "Variables with one letter name are the shortest name for variables. They also bear very little meaning : what does containt ``$w`` ? 

Some one-letter variables have meaning : ``$x`` and ``$y`` for coordinates, ``$i``, ``$j``, ``$k`` for blind variables. Others tend to be an easy way to give a name to a variable, without thinking too hard a good name.

<?php

// $a is reported as a one-letter variable
$a = 0;

// $i is considered a false positive. 
for($i = 0; $i < 10; ++$i) {
    $a += doSomething($i);
}

?>

See also `Using single characters for variable names in loops/exceptions <https://softwareengineering.stackexchange.com/questions/71710/using-single-characters-for-variable-names-in-loops-exceptions?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa/>`_ and 
         `Single Letter Variable Names Still Considered Harmful <https://odetocode.com/blogs/scott/archive/2008/11/17/single-letter-variable-names-still-considered-harmful.aspx>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Undefined Constant Name";
description = "When using the `${ }` syntax for variable, the name used must be a defined constant. It is not a simple string, like 'x', it is an actual constant name.

Interestingly, it is possible to use a qualified name within `${ }`, full or partial. PHP will lint such code, and will collect the value of the constant immediately. Since there is no fallback mechanism for fully qualified names, this ends with a Fatal error.

<?php

const x = "a";
$a = "Hello";

// Display 'Hello' ${x} -> $a -> Hello
echo ${x};

// Yield a PHP Warning 
// Use of undefined constant y - assumed 'y' (this will throw an Error in a future version of PHP)
echo ${y};

// Yield a PHP Fatal error as PHP first checks that the constant exists 
//Undefined constant 'y'
echo ${\y};
?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.1.1";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Define the constant"
modifications[] = "Turn the dynamic syntax into a normal variable syntax"
modifications[] = "Use a fully qualified name (at least one \ ) to turn this syntax into a Fatal error when the constant is not found. This doesn't fix the problem, but may make it more obvious while diagnosticing."

; A PHP error that may be emitted by the target faulty code
phpError[] = "Undefined constant 'y'"
phpError[] = "Use of undefined constant y - assumed 'y' (this will throw an Error in a future version of PHP)"
name = "Overwriting Variable";
description = "Replacing the content of a variable by something different is prone to errors. For example, it is not obvious if the $text variable is plain text or HTML text. 

<?php

// Confusing
$text = htmlentities($text);

// Better
$textHTML = htmlentities($text);

?>

Besides, it is possible that the source is needed later, for extra processing. 

Note that accumulators, like += .=  or [] etc., that are meant to collect lots of values with consistent type are OK. 

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Inconsistent Variable Usage";
description = "Those variables are used in various and inconsistent ways. It is difficult to understand if they are an array, an object or a scalar variable.

<?php

// $a is an array, then $b is a string.
$a = ['a', 'b', 'c'];
$b = implode('-', $a);

// $a is an array, then it is a string.
$a = ['a', 'b', 'c'];
$a = implode('-', $a);

?>
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_SLOW";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.6.9";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Keep one type for each variable. This keeps the code readable. "
modifications[] = "Give different names to variables with different types."

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

[example1]
project="WordPress"
file="wp-includes/IXR/class-IXR-client.php"
line="86"
code="        $request = new IXR_Request($method, $args);
        $length = $request->getLength();
        $xml = $request->getXml();
        $r = \"\r\n\";
        $request  = \"POST {$this->path} HTTP/1.0$r\";
";
explain="$request is used successively as an object (IXR_Request), then as a string (The POST). Separatring both usage with different names will help readability."


name = "Lost References";
description = "Either avoid references, or propagate them correctly.

When assigning a referenced variable with another reference, the initial reference is lost, while the intend was to transfer the content. 

<?php

function foo(&$lostReference, &$keptReference)
{
    $c = 'c';

    // $lostReference was a reference, but now, it is another
    $lostReference =& $c;
    // $keptReference was a reference : now it contains the actual value
    $keptReference = $c;
}

$bar = 'bar';
$bar2 = 'bar';
foo($bar, $bar2); 

//displays bar c, instead of bar bar
print $bar. ' '.$bar2;

?>

Do not reassign a reference with another reference. Assign new content to the reference to change its value.";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Always assign new value to an referenced argument, and don't reassign a new reference"

[example1]
project="WordPress"
file="wp-admin/includes/misc.php"
line="74"
code="$markerdata = explode( \"\n\", implode( '', file( $filename ) ) );";
explain="This code actually loads the file, join it, then split it again. file() would be sufficient. "
name = "Assigned Twice";
description = "The same variable is assigned twice in the same function.

While this is possible and quite common, it is also a good practice to avoid changing a value from one literal to another. It is far better to assign the new value to 

Incremental changes to a variables are not reported here.

<?php

function foo() {
    // incremental changes of $a;
    $a = 'a';
    $a++;
    $a = uppercase($a);
    
    $b = 1;
    $c = bar($b);
    // B changed its purpose. Why not call it $d? 
    $b = array(1,2,3);
    
    // This is some forgotten debug
    $e = $config->getSomeList();
    $e = array('OneElement');
}

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.9.8";name = "All Uppercase Variables";
description = "Usually, global variables are all in uppercase, so as to differentiate them easily. Though, this is not always the case, with examples like $argc, $argv or $http_response_header.

When using custom variables, try to use lowercase ``$variables``, ``$camelCase``, ``$sturdyCase`` or ``$snake_case``.

<?php

// PHP super global, also identified by the initial _
$localVariable = $_POST;

// PHP globals
$localVariable = $GLOBALS['HTTPS'];

?>

See also `Predefined Variables <http://php.net/manual/en/reserved.variables.php>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Interface Arguments";
description = "Variables that are arguments in an interface. 

<?php

interface i {
    function interfaceMethod($interfaceArgument) ;
}

class foo extends i {
    // Save function as above, but the variable is not reported
    function interfaceMethod($notAnInterfaceArgument) {}
}

?>
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Null Or Boolean Arrays";
description = "Null and booleans are valid PHP array base. Yet, they only produce ``null`` values, and no warning.

<?php

// outputs NULL
var_dump(null[0]);

const MY_CONSTANT = true;
// outputs NULL
var_dump(MY_CONSTANT[10]);

?>

See also `Null and True <https://twitter.com/Chemaclass/status/1144588647464951808>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.8.6";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Avoid using the array syntax on null and boolean"
modifications[] = "Avoid using null and boolean on constant that are expecting arrays"

; A PHP error that may be emitted by the target faulty code
phpError[] = "Trying to access array offset on value of type null"
name = "Array Index";
description = "List of all indexes used in arrays. 

<?php

// Index
$x['index'] = 1;

// in array creation
$a = array('index2' => 1);
$a2 = ['index3' => 2];

?>
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Mixed Keys Arrays";
description = "Avoid mixing constants and literals in array keys.

When defining default values in arrays, it is recommended to avoid mixing constants and literals, as PHP may mistake them and overwrite the previous with the latter.

Either switch to a newer version of PHP (5.5 or newer), or make sure the resulting array hold the expected data. If not, reorder the definitions.

<?php

const ONE = 1;

$a = [ 1   => 2,
       ONE => 3];

?>
";
clearphp = "";
phpversion = "5.6+";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
modifications[] = "Use only literals or constants when building the array"
name = "Slice Arrays First";
description = "Always start by reducing an array before applying some transformation on it. The shorter array will be processed faster. 

<?php

// fast version
$a = array_map('foo', array_slice($array, 2, 5));

// slower version
$a = array_slice(array_map('foo', $array), 2, 5);
?>

The gain produced here is greater with longer arrays, or greater reductions. They may also be used in loops. This is a micro-optimisation when used on short arrays.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "1.0.4";
modifications[] = "Use the array transforming function on the result of the array shortening function."
[example1]
project="WordPress"
file="modules/InboundEmail/InboundEmail.php"
line="1080"
code="	                $results = array_slice(array_keys($diff), 0 ,50);";
explain="Instead of reading ALL the keys, and then, keeping only the first fifty, why not read the 50 first items from the array, and then extract the keys?"
name = "Ambiguous Array Index";
description = "Indexes should not be defined with different types than int or string. 

Array indices only accept integers and strings, so any other type of literal is reported. In fact, ``null`` is turned into an empty string, booleans are turned into an integer, and real numbers are truncated (not rounded).

<?php

$x = [ 1  => 1,
      '1' => 2,
      1.0 => 3,
      true => 4];
// $x only contains one element : 1 => 4

// Still wrong, immediate typecast to 1
$x[1.0]  = 5; 
$x[true] = 6; 

?>

They are indeed distinct, but may lead to confusion. 

See also `array <http://php.net/manual/en/language.types.array.php>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
modifications[] = "Only use string or integer as key for an array. "
modifications[] = "Use transtyping operator (string) and (int) to make sure of the type"
[example1]
project="PrestaShop"
file="src/PrestaShopBundle/Install/Install.php"
line="532"
code="
        $list = array(
            'products' => _PS_PROD_IMG_DIR_,
            'categories' => _PS_CAT_IMG_DIR_,
            'manufacturers' => _PS_MANU_IMG_DIR_,
            'suppliers' => _PS_SUPP_IMG_DIR_,
            'stores' => _PS_STORE_IMG_DIR_,
            null => _PS_IMG_DIR_.'l/', // Little trick to copy images in img/l/ path with all types
        );";
explain="Null, as a key, is actually the empty string. "
[example2]
project="Mautic"
file="app/bundles/CoreBundle/Entity/CommonRepository.php"
line="314"
code="                foreach ($metadata->getAssociationMappings() as $field => $association) {
                    if (in_array($association['type'], [ClassMetadataInfo::ONE_TO_ONE, ClassMetadataInfo::MANY_TO_ONE])) {
                        $baseCols[true][$entityClass][]  = $association['joinColumns'][0]['name'];
                        $baseCols[false][$entityClass][] = $field;
                    }
                }
";
explain="True is turned into 1 (integer), and false is turned into 0 (integer). "
name = "Multidimensional Arrays";
description = "Simply, arrays of arrays. 

<?php
    $x[1][2] = $x[2][3][4];
    
?>

See also `Type array <http://php.net/manual/en/language.types.array.php>`_ and 
         `Using Multidimensional Arrays in PHP <https://www.elated.com/articles/php-multidimensional-arrays/>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Multiple Index Definition";
description = "Indexes that are defined multiple times in the same array. 

<?php
    // Multiple identical keys
    $x = array(1 => 2, 
               2 => 3,  
               1 => 3);

    // Multiple identical keys (sneaky version)
    $x = array(1 => 2, 
               1.1 => 3,  
               true => 4);

    // Multiple identical keys (automated version)
    $x = array(1 => 2, 
               3,        // This will be index 2
               2 => 4);  // this index is overwritten
?>

They are indeed overwriting each other. This is most probably a typo.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
modifications[] = "Review your code and check that arrays only have keys defined once."
modifications[] = "Review carefully your code and check indirect values, like constants, static constants."
exakatSince = "0.8.4";
[example1]
project="Magento"
file="app/code/core/Mage/Adminhtml/Block/System/Convert/Gui/Grid.php"
line="80"
code="        $this->addColumn('store_id', array(
            'header'    => Mage::helper('adminhtml')->__('Store'),
            'type'      => 'options',
            'align'     => 'center',
            'index'     => 'store_id',
            'type'      => 'store',
            'width'     => '200px',
        ));
";
explain="'type' is defined twice. The first one, 'options' is overwritten."
[example2]
project="MediaWiki"
file="resources/Resources.php"
line="223"
code="
    // inside a big array
	'jquery.getAttrs' => [
		'targets' => [ 'desktop', 'mobile' ],
		'scripts' => 'resources/src/jquery/jquery.getAttrs.js',
		'targets' => [ 'desktop', 'mobile' ],
	],
    // big array continues

";
explain="'target' is repeated, though with the same values. This is just dead code."
name = "Mistaken Concatenation";
description = "A unexpected structure is built for initialization. It may be a typo that creates an unwanted expression.

<?php

// This 'cd' is unexpected. Isn't it 'c', 'd' ? 
$array = array('a', 'b', 'c'. 'd');
$array = array('a', 'b', 'c', 'd');

// This 4.5 is unexpected. Isn't it 4, 5 ? 
$array = array(1, 2, 3, 4.5);
$array = array(1, 2, 3, 4, 5);

?>

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "1.0.8";name = "Short Syntax For Arrays";
description = "Arrays written with the new short syntax. 

PHP 5.4 introduced the new short syntax, with square brackets. The previous syntax, based on the array() keyword is still available.

<?php

// All PHP versions array
$a = array(1, 2, 3);

// PHP 5.4+ arrays
$a = [1, 2, 3];

?>

See also `Array <http://php.net/manual/en/language.types.array.php>`_.
";
clearphp = "";
severity = "S_CRITICAL";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Too Many Array Dimensions";
description = "When arrays a getting to many nesting. 

<?php

$a          = array();   // level 1;
$a[1]       = array();   // level 2
$a[1][2]    = array();   // level 3 : still valid by default
$a[1][2][3] = array();   // level 4 

?>

PHP has no limit, and accepts any number of nesting levels. Yet, this is usually very memory hungry.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.4";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

[parameter1]
name="maxDimensions";
default="3";
type="integer";
description="Number of valid dimensions in an array.";

name = "Randomly Sorted Arrays";
description = "Those literal arrays are written in several places, but their items are in various orders. 

This may reduce the reading and proofing of the arrays, and induce confusion. The random order may also be a residue of development : both arrays started with different values, but they grew overtime to handle the same items. The way they were written lead to the current order.

Unless order is important, it is recommended to always use the same order when defining literal arrays. This makes it easier to match different part of the code by recognizing one of its literal.

<?php

// an array
$set = [1,3,5,9,10];

function foo() {
    // an array, with the same values but different order, in a different context
    $list = [1,3,5,10,9,];
}

// an array, with the same order than the initial one
$inits = [1,3,5,9,10];

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.11.2";
modifications[] = "Match the sorting order of the arrays. Choose any of them.";
modifications[] = "Configure a constant and use it as a replacement for those arrays.";
modifications[] = "Leave the arrays intact : the order may be important.";
modifications[] = "For hash arrays, consider turning the array in a class.";
[example1]
project="Contao"
file="system/modules/core/dca/tl_module.php"
line="259"
code="array('maxlength' => 255, 'decodeEntities' => true, 'tl_class' => 'w50') // Line 246
array('decodeEntities' => true, 'maxlength' => 255, 'tl_class' => 'w50'); // ligne 378
";
explain="The array array('maxlength', 'decodeEntities', 'tl_class') is configured multiple times in this file. Most of them is in the second form, but some are in the first form. (Multiple occurrences in this file). "
[example2]
project="Vanilla"
file="applications/dashboard/models/class.activitymodel.php"
line="308"
code="/* L 305 */        Gdn::userModel()->joinUsers(
            $result->resultArray(),
            ['ActivityUserID', 'RegardingUserID'],
            ['Join' => ['Name', 'Email', 'Gender', 'Photo']]
        );

// L 385
        Gdn::userModel()->joinUsers($result, ['ActivityUserID', 'RegardingUserID'], ['Join' => ['Name', 'Photo', 'Email', 'Gender']]);
";
explain="'Photo' moved from last to second. This array is used with a 'Join' key, and is the base for a SQL table JOIN. As such, order is important. If this is the case, it seems unusual that the order is not the same for a join using the same tables. If it is not the case, arrays may be reordered. "
name = "Array() / [  ] Consistence";
description = "array() or [ ] is the favorite.

array() and [ ] have the same functional use. 

The analyzed code has less than 10% of one of them : for consistency reasons, it is recommended to make them all the same. 

It happens that array() or [] are used depending on coding style and files. One file may be consistently using array(), while the others are all using []. 

<?php

$a = array(1, 2);
$b = array(array(3, 4), array(5, 6));
$c = array(array(array(7, 8), array(9, 10)), array(11, 12), array(13, 14)));

// be consistent
$d = [1, 3];
?>

The only drawback to use [] over array() is backward incompatibility.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.9";

modifications[] = "Use one syntax consistently."

[parameter1]
name="array_ratio";
default="10";
type="integer";
description="Percentage of arrays in one of the syntaxes, to trigger the other syntax as a violation. ";
name = "Mass Creation Of Arrays";
description = "Literal creation of an array, by assigning a lot of index. 

<?php
    
$row['name'] = $name;
$row['last'] = $last;
$row['address'] = $address;

?>
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "1.1.8";name = "Getting Last Element";
description = "Getting the last element of an array relies on array_key_last().

array_key_last() was added in PHP 7.3. Before that, 

<?php

$array = ['a' => 1, 'b' => 2, 'c' => 3];

// Best solutions, by far
$last = $array[array_key_last($array)];

// Best solutions, just as fast as each other
$last = $array[count($array) - 1];
$last = end($array);

// Bad solutions

// popping, but restoring the value. 
$last = array_pop($array);
$array[] = $last; 

// array_unshift would be even worse

// reversing array
$last = array_reverse($array)[0];

// slicing the array
$last = array_slice($array, -1)[0]',
$last = current(array_slice($array, -1));
);

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.9.0";
modifications[] = "Use PHP native function : array_key_last(), when using PHP 7.4 and later"
modifications[] = "Use PHP native function : array_pop()"
modifications[] = "Organise the code to put the last element in the first position (array_unshift instead of append operator [])"

[example1]
project="Thelia"
file="/core/lib/Thelia/Core/Security/AccessManager.php"
line="61"
code="current(\array_slice(self::$accessPows, -1, 1, true))";
explain="This code extract the last element with array_slice (position -1) as an array, then get the element in the array with current()."
		
name = "No Spread For Hash";
description = "The spread operator ``...`` only works on integer-indexed arrays. 

<?php

// This is valid, as ``"-33"`` is cast to integer by PHP automagically
var_dump(...[1,"-33" => 2, 3]);

// This is not valid
var_dump(...[1,"C" => 2, 3]);

?>

See also `Variable-length argument lists <https://www.php.net/manual/en/functions.arguments.php#functions.variable-arg-list>`_.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.3";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Add a call to array_values() instead of the hash"

; A PHP error that may be emitted by the target faulty code
phpError[] = "Cannot unpack array with string keys"
name = "Weird Array Index";
description = "Array index that looks weird. Arrays index may be string or integer, but some strings looks weird.

In particular, strings that include terminal white spaces, often leads to missed values.

<?php

$array = ['a ' => 1, 'b' => 2, 'c' => 3];

// Later in the code

//Notice: Undefined index: a in /Users/famille/Desktop/analyzeG3/test.php on line 8
echo $array['a'];

//Notice: Undefined index: b  in /Users/famille/Desktop/analyzeG3/test.php on line 10
// Note that the space is visible, but easy to miss
echo $array['b '];

// all fine here
echo $array['c'];

?>

Although this is rare error, and often easy to spot, it is also very hard to find when it strikes.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.9";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Remove white spaces when using strings as array index."

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Empty Final Element";
description = "The array() construct allows for the empty last element. 

By putting an element on each line, and adding the final comma, it is possible to reduce the size of the diff when comparing code with the previous version.

<?php

// Array definition with final empty element
$array = [1,
          2,
          3,
          ];

// This array definition has only one line of diff with the previous array : the line with '4,'
$array = [1,
          2,
          3,
          4,
          ];

// This array definition is totally different from the first array : 
$array = [1, 2, 3, 4];

?>

See also `Array <http://php.net/manual/en/language.types.array.php>`_, 
         `Zend Framework Coding Standard <https://framework.zend.com/manual/2.4/en/ref/coding.standard.html#arrays>`_ and 
         `How clean is your code? How clean are your diffs? <https://blog.madewithlove.be/post/code-style-options-for-cleaner-diffs/>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.11.0";name = "Non-constant Index In Array";
description = "Undefined constants revert as strings in Arrays. They are also called ``barewords``.

In ``$array[index]``, PHP cannot find index as a constant, but, as a default behavior, turns it into the string ``index``. 

This default behavior raise concerns when a corresponding constant is defined, either using define() or the const keyword (outside a class). The definition of the index constant will modify the behavior of the index, as it will now use the constant definition, and not the 'index' string. 

<?php

// assign 1 to the element index in $array
// index will fallback to string
$array[index] = 1; 
//PHP Notice:  Use of undefined constant index - assumed 'index'

echo $array[index];      // display 1 and the above error
echo \"$array[index]\";    // display 1
echo \"$array['index']\";  // Syntax error


define('index', 2);
 
 // now 1 to the element 2 in $array
 $array[index] = 1;

?>

It is recommended to make index a real string (with ' or \"), or to define the corresponding constant to avoid any future surprise.

Note that PHP 7.2 removes the support for this feature.

See also `PHP RFC: Deprecate and Remove Bareword (Unquoted) Strings <https://wiki.php.net/rfc/deprecate-bareword-strings>`_ and 
         `Syntax <http://php.net/manual/en/language.constants.syntax.php>`_.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Declare the constant to give it an actual value"
modifications[] = "Turn the constant name into a string"

[example1]
project="Dolibarr"
file="htdocs/includes/OAuth/Common/Storage/DoliStorage.php"
line="245"
code="    public function hasAuthorizationState($service)
    {
        // get state from db
        dol_syslog(\"get state from db\");
        $sql = \"SELECT state FROM \".MAIN_DB_PREFIX.\"oauth_state\";
        $sql.= \" WHERE service='\".$this->db->escape($service).\"'\";
        $resql = $this->db->query($sql);
        $result = $this->db->fetch_array($resql);
        $states[$service] = $result[state];
        $this->states[$service] = $states[$service];

        return is_array($states)
        && isset($states[$service])
        && null !== $states[$service];
    }
";
explain="The `state` constant in the `$result` array is coming from the SQL query. There is no need to make this a constant : making it a string will remove some warnings in the logs."

[example2]
project="Zencart"
file="app/library/zencart/Services/src/LeadLanguagesRoutes.php"
line="112"
code="    public function updateLanguageTables($insertId)
    {
        $tableList = $this->listener->getTableList();
        if (count($tableList) == 0) {
            return;
        }
        foreach ($tableList as $tableEntry) {
            $languageKeyField = issetorArray($tableEntry, 'languageKeyField', 'language_id');
            $sql = \" INSERT IGNORE INTO :table: (\";
            $sql = $this->dbConn->bindVars($sql, ':table:', $tableEntry ['table'], 'noquotestring');
            $sql .= $languageKeyField. \", \";
            $fieldNames = \"\";
            foreach ($tableEntry[fields] as $fieldName => $fieldType) {
                $fieldNames .= $fieldName . \", \";
            }
";
explain="The `fields` constant in the `$tableEntry` which holds a list of tables. It seems to be a SQL result, but it is conveniently abstracted with `$this->listener->getTableList()`, so we can't be sure."

name = "PHP Arrays Index";
description = "List of indexes used when manipulating PHP arrays in the code.

<?php

// HTTP_HOST is a PHP array index. 
$ip = 'http'.$_SERVER['HTTP_HOST'].'/'.$row['path'];

//'path' is not a PHP index

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Preprocess Arrays";
description = "Using long list of assignations for initializing arrays is significantly slower than the declaring them as an array. 

<?php

// Slow way
$a = []; // also with $a = array();
$a[1] = 2;
$a[2] = 3;
$a[3] = 5;
$a[4] = 7;
$a[5] = 11;

// Faster way
$a = [1 => 2, 
      2 => 3,
      3 => 5,
      4 => 7,
      5 => 11];

// Even faster way if indexing is implicit
$a = [2, 3, 5, 7, 11];

?>

If the array has to be completed rather than created, it is also faster to use += when there are more than ten elements to add.

<?php

// Slow way
$a = []; // also with $a = array();
$a[1] = 2;
$a[2] = 3;
$a[3] = 5;
// some expressions to get $seven and $eleven
$a[4] = $seven;
$a[5] = $eleven;

// Faster way
$a = [1 => 2, 
      2 => 3,
      3 => 5];
// some expressions to get $seven and $eleven
$a += [4 => $seven, 
       5 => $eleven];

// Even faster way if indexing is implicit
$a = [2, 3, 5];
// some expressions to get $seven and $eleven
$a += [$seven, $eleven];

?>
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Empty Slots In Arrays";
description = "PHP tolerates the last element of an array to be empty.

<?php
    $a = array( 1, 2, 3, );
    $b =      [ 4, 5, ];
?>
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
name = "String Initialization";
description = "It used to be possible to initialize a variable with an string, and use it as an array. It is not the case anymore in PHP 7.1.

<?php

// Initialize arrays with array()
$a = array();
$a[3] = "4";

// Don't start with a string
$a = '';
$a[3] = "4";
print $a;

// Don't start with a string
if (is_numeric($a)) {
    $a[] = $a;
}

?>

See also `PHP 7.1 no longer converts string to arrays the first time a value is assigned with square bracket notation <https://www.drupal.org/project/adaptivetheme/issues/2832900>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.6.5";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Always initialize arrays with an empty array(), not a string."

; A PHP error that may be emitted by the target faulty code
phpError[] = "Cannot use a scalar value as an array"
name = "Handle Arrays With Callback";
description = "Use functions like array_map().

<?php

// Handles arrays with callback
$uppercase = array_map('strtoupper', $source);

// Handles arrays with foreach
foreach($source as &$s) {
    $s = uppercase($s);
}

?>

See also `array_map <http://php.net/array_map>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.3.7";name = "Not Definitions Only";
description = "Files should only include definitions (class, functions, traits, interfaces, constants), or global instructions, but not both. 

<?php
// This whole script is a file

// It contains definitions and global code
class foo {
    static public $foo = null;
}
//This can be a singleton creation
foo::$foo = new foo();

trait t {}

class bar {}

?>

Within this context, globals, use, and namespaces instructions are not considered a warning.";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Definitions Only";
description = "File is definition only.

Definition-only files only include structure definitions : class, functions, traits, interfaces, constants, global, declare(), use and include().

Some functioncalls are also considered definition only, as they configure PHP, but don't process data : 
* ini_set()
* error_reporting
* register_shutdown_function()
* set_session_handler()
* set_error_handler()
* spl_autoload_register()


File A : 
<?php

// This file has only definitions
function foo() {}

define('a', 1);

class bar {}

?>

File B : 
<?php

// This file has only definitions
function foo() {}

define('a', 1);

class bar {}

?>

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "File Is Component";
description = "Check that a file only contains definition elements, such as traits, interfaces, classes, constants, global variables, use or inclusions. 

Such a file is a component, that may be included in some other code and used. By itself, it doesn't run.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Global Code Only";
description = "This file has only global code.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Missing Include";
description = "The included files doesn't exists in the repository. The inclusions target a files that doesn't exist.

The analysis works with every type of inclusion : include(), require(), include_once() and require_once(). It also works with parenthesis when used as parameter delimiter.

The analysis doesn't take into account ``include_path``. This may yield false positives.

<?php

include 'non_existent.php';

// variables are not resolved. This won't be reported.
require ($path.'non_existent.php');

?>

Missing included files may lead to a fatal error, a warning or other error later in the execution.

";
clearphp = "";
severity = "S_CRITICAL";
timetofix = "T_INSTANT";
exakatSince = "1.1.2";

[parameter1]
name="constant_or_variable_name";
default="100";
type="string";
description="Literal value to be used when including files. For example, by configuring 'Files_MissingInclude[\"HOME_DIR\"] = \"/tmp/myDir/\";', then 'include HOME_DIR . \"my_class.php\"; will be actually be used as '/tmp/myDir/my_class.php'. Constants must be configured with their correct case. Variable must be configured with their initial '$'. Configure any number of variable and constant names.";
name = "External Config Files";
description = "List services being used in this code repository, based on configuration files that are committed. 

For example, a .git folder is an artefact of a GIT repository.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Is CLI Script";
description = "Mark a file as a CLI script, based on the usage of #!. ";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Inclusion Wrong Case";
description = "Inclusion should follow exactly the case of included files and path. This prevents the infamous case-sensitive filesystem bug, where files are correctly included in a case-insensitive system, and failed to be when moved to production.

<?php

// There must exist a path called "path/to" and a file "library.php" with this case
include "path/to/library.php";

// Error on the case, while the file does exist
include "path/to/LIBRARY.php";

// Error on the case, on the PATH
include "path/TO/library.php";

?>

See also `include_once <http://php.net/manual/en/function.include-once.php>`_, about case sensitivity and inclusions.

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "1.1.1";

modifications[] = "Make the inclusion string identical to the file name. "
modifications[] = "Change the name of the file to reflect the actual inclusion. This is the best way when a naming convention has been set up for the project, and the file doesn't adhere to it. Remember to change all other inclusion."

phpErrors[] = "include(a.php): failed to open stream: No such file or directory"name = "Linux Only Files";
description = "List of files that are only found on Linux style systems. They are making the application depend on the system.

<?php

// Really non-portable system check
$os = shell_exec("cat /proc/version");
echo "You are using $os\n";

?>

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Fopen Binary Mode";
description = "Use explicit ``b`` when opening files.

fopen() supports a ``b`` option in the second parameter, to make sure the read is binary. This is the recommended way when writing portable applications, between Linux and Windows.

<?php

// This opens file with binary reads on every OS
$fp = fopen('path/to/file.doc', 'wb');

// This may not open files with binary mode on Windows
$fp = fopen('path/to/file.doc', 'w');

?>

Also, Windows PHP does support a ``t`` option, that translates automatically line endings to the right value. As this is Windows only, this should be avoided for portability reasons.

See also `fopen <http://php.net/fopen`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
name = "Windows Only Constants";
description = "When built on Windows, PHP offers some extra constants. They are not available on other operating systems.

<?php

//The Windows build number (for example, Windows Vista with SP1 applied is build 6001)
echo PHP_WINDOWS_VERSION_BUILD;

?>

See also `Info Predefined Constants <http://php.net/manual/en/info.constants.php>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.7.0";

; Alternative to make this code go away. 
; One by possible solution
;modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "One Letter Functions";
description = "One letter functions seems to be really short for a meaningful name. This may happens for very high usage functions, so as to keep code short, but such functions should be rare.

<?php

// Always use a meaningful name 
function addition($a, $b) {
    return $a + $b;
}

// One letter functions are rarely meaningful
function f($a, $b) {
    return $a + $b;
}

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Use full names for functions"
modifications[] = "Remove the function name altogether : use a closure"

[example1]
project="ThinkPHP"
file="ThinkPHP/Mode/Api/functions.php"
line="859"
code="function F($name, $value = '', $path = DATA_PATH) ";
explain="There are also the functions C, E, G... The applications is written in a foreign language, which may be a base for non-significant function names."
[example2]
project="Cleverstyle"
file="core/drivers/DB/PostgreSQL.php"
line="71"
code="	public function q ($query, ...$params) {";
explain="There is also function f(). Those are actually overwritten methods. From the documentation, q() is for query, and f() is for fetch. Those are short names for frequently used functions."
name = "Should Use Constants";
description = "The following functions have related constants that should be used as arguments, instead of scalar literals, such as integers or strings.

<?php

// The file is read and new lines are ignored.
$lines = file('file.txt', FILE_IGNORE_NEW_LINES)

// What is this doing, with 2 ? 
$lines = file('file.txt', 2);

?>

See also `Bitmask Constant Arguments in PHP <https://medium.com/@liamhammett/bitmask-constant-arguments-in-php-cf32bf35c73>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Use PHP native constants whenever possible, for better readability."

[example1]
project="Tine20"
file="tine20/Sales/Controller/Invoice.php"
line="560"
code="count($billables, true)";
explain="True should be replaced by COUNT_RECURSIVE. The default one is COUNT_NORMAL."
name = "Deep Definitions";
description = "Structures, such as functions, classes, interfaces, traits, etc. may be defined anywhere in the code, including inside functions. This is legit code for PHP. 

Since the availability of autoload, with spl_register_autoload(), there is no need for that kind of code. Structures should be defined, and accessible to the autoloading. Inclusions and deep definitions should be avoided, as they compel code to load some definitions, while autoloading will only load them if needed. 

<?php

class X {
    function init() {
        // myFunction is defined when and only if X::init() is called.
        if (!function_exists('myFunction'){
            function myFunction($a) {
                return $a + 1;
            }
        })
    }
}

?>

Functions are excluded from autoload, but shall be gathered in libraries, and not hidden inside other code.

Constants definitions are tolerated inside functions : they may be used for avoiding repeat, or noting the usage of such function. 

Definitions inside a if/then statement, that include PHP version check are accepted here.

See also `Autoloading Classes <http://php.net/manual/en/language.oop5.autoload.php>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";

modifications[] = "Move function definitions to th global space : outside structures, and method."

[example1]
project=Dolphin
file=wp-admin/includes/misc.php
line=74
code="function ConstructHiddenValues($Values)
{
    /**
     *    Recursive function, processes multidimensional arrays
     *
     * @param string $Name  Full name of array, including all subarrays' names
     *
     * @param array  $Value Array of values, can be multidimensional
     *
     * @return string    Properly consctructed <input type=\"hidden\"...> tags
     */
    function ConstructHiddenSubValues($Name, $Value)
    {
        if (is_array($Value)) {
            $Result = \"\";
            foreach ($Value as $KeyName => $SubValue) {
                $Result .= ConstructHiddenSubValues(\"{$Name}[{$KeyName}]\", $SubValue);
            }
        } else // Exit recurse
        {
            $Result = \"<input type=\\"hidden\\" name=\\"\" . htmlspecialchars($Name) . \"\\" value=\\"\" . htmlspecialchars($Value) . \"\\" />\n\";
        }

        return $Result;
    }

    /* End of ConstructHiddenSubValues function */

    $Result = '';
    if (is_array($Values)) {
        foreach ($Values as $KeyName => $Value) {
            $Result .= ConstructHiddenSubValues($KeyName, $Value);
        }
    }

    return $Result;
}";
explain="The ConstructHiddenValues function builds the ConstructHiddenSubValues function. Thus, ConstructHiddenValues can only be called once. "
name = "Too Much Indented";
description = "Reports methods that are using more than one level of indentation on average. 

Indentations levels are counted for each for, foreach, if...then, while, do..while, try..catch..finally structure met. Compulsory expressions, such as conditions, are not counted in the total. Levels of indentation start at 0 (no indentation needed)

This analysis targets methods which are build around large conditions : the actual useful code is nested inside the branches of the if/then/else (for example). 

The default threshold ``indentationAverage`` of 1 is a good start for spotting large methods with big conditional code, and will leave smaller methods, even when they only contain one if/then. Larger methods shall be refactored in smaller size. 

The parameter ``minimumSize`` set aside methods which are too small for refactoring.

<?php

// average 0
function foo0() {
    $a = rand(1,2);
    $a *= 3;
    
    return $a;
}

// average 0.66 = (0 + 1 + 1) / 3
function foo0_66() {
    // if () is at level 0
    if ($a == 2) { // condition is not counted
        $a = 1;    // level 1
    } else {
        $a = 2;    // level 1
    }
}

// average 1 = (0 + 2 + 1 + 1) / 4
function foo1() {
    // if () is at level 0
    if ($a == 2) {
        // if () is at level 1
        if ($a == 2) {
            $a = 1; // level 2
        }
        $a = 1; // level 1
    } else {
        $a = 2; // level 1
    }
}

?>

This analysis is distinct from Structures/MaxLevelOfIdentation, which only reports the highest level of indentation. This one reports how one method is build around one big 

See also Structures/MaxLevelOfIdentation.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.1.2";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Refactor the method to reduce the highest level of indentation"
modifications[] = "Refactor the method move some of the code to external methods."

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

; Optional parameters
[parameter1]
name="indentationAverage";
default="1";
type="real";
description="Minimal average of indentation in a method to report. Default is 1.0, which means that the method is on average at one level of indentation or more.";

[parameter2]
name="minimumSize";
default="3";
type="real";
description="Minimal number of expressions in a method to apply this analysis.";
name = "Fallback Function";
description = "A function that is called with its name alone, and whose definition is in the global scope.

<?php

namespace {
    // global definition
    function foo() {}
}

namespace Bar {
    // local definition
    function foo2() {}
    
    foo(); // definition is in the global namespace
    foo2(); // definition is in the Bar namespace
}

?>

See also `Using namespaces: fallback to global function/constant <http://php.net/manual/en/language.namespaces.fallback.php>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.1.4";name = "Functions Using Reference";
description = "Functions and methods using references in their signature.

<?php

function usingReferences( &$a) {}

class foo {
    public function methodUsingReferences($b, &$c = 1) {}
}
?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Unbinding Closures";
description = "Never drop ``$this``, once a closure was created in a non-static method. 

From the PHP wiki : ""Currently it is possible to unbind the $this variable from a closure that originally had one by using $closure->bindTo(null). Due to the removal of static calls to non-static methods in PHP 8, we now have a guarantee that $this always exists inside non-static methods. We would like to have a similar guarantee that $this always exists for non-static closures declared inside non-static methods. Otherwise, we will end up imposing an unnecessary performance penalty either on $this accesses in general, or $this accesses inside such closures.""

<?php

class x {
    private $a = 3;
    
    function foo() {
        return function () { echo $this->a; };
    }
}

$closure = (new x)->foo();

// $this was expected, and it is not anymore
$closure->bindTo(null);

$closure->bindTo(new x);

?>

Calling bindTo() with a valid object is still valid.

See also `Unbinding $this from non-static closures <https://wiki.php.net/rfc/deprecations_php_7_4#unbinding_this_from_non-static_closures>`_.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.0";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Create a static closure, which doesn't rely on $this at all"
modifications[] = "Remove the call to bindTo(null)."

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "No Boolean As Default";
description = "Default values should always be set up with a constant name.

Class constants and constants improve readability when calling the methods or comparing values and statuses.

<?php

const CASE_INSENSITIVE = true;
const CASE_SENSITIVE = false;

function foo($case_insensitive = true) {
    // doSomething()
}

// Readable code 
foo(CASE_INSENSITIVE);
foo(CASE_SENSITIVE);


// unreadable code  : is true case insensitive or case sensitive ? 
foo(true);
foo(false);

?>

See also `FlagArgument <https://www.martinfowler.com/bliki/FlagArgument.html>`_ and 
         `Clean code: The curse of a boolean parameter <https://medium.com/@amlcurran/clean-code-the-curse-of-a-boolean-parameter-c237a830b7a3>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.10.0";

modifications[] = "Use constants or class constants to give value to a boolean literal"
modifications[] = "When constants have been defined, use them when calling the code"
modifications[] = "Split the method into two methods, one for each case"

[example1]
project="OpenConf"
file="openconf/include.php"
line="1264"
code="function oc_printFileCells(&$sub, $chair = false) { /**/ }";
explain="Why do we need a `chair` when printing a cell's file ? "

name = "No Return Used";
description = "The return value of the following functions are never used. The return argument may be dropped from the code, as it is dead code.

This analysis supports functions and static methods, when a definition may be found. It doesn't support method calls.

<?php

function foo($a = 1;) { return 1; }
foo();
foo();
foo();
foo();
foo();
foo();

// This function doesn't return anything. 
function foo2() { }

// The following function are used in an expression, thus the return is important
function foo3() {  return 1;}
function foo4() {  return 1;}
function foo5() {  return 1;}

foo3() + 1; 
$a = foo4();
foo(foo5());

?>
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.11.3";

modifications[] = "Remove the return statement in the function"
modifications[] = "Actually use the value returned by the method, for test or combination with other values"

[example1]
project="SPIP"
file="ecrire/inc/utils.php"
line="1067"
code="function job_queue_remove($id_job) {
	include_spip('inc/queue');

	return queue_remove_job($id_job);
}

";
explain="job_queue_remove() is called as an administration order, and the result is not checked. It is considered as a fire-and-forget command. "
[example2]
project="LiveZilla"
file="livezilla/_lib/trdp/Zend/Loader.php"
line="114"
code="    public static function loadFile($filename, $dirs = null, $once = false)
    {
// A lot of code to check and include files

        return true;
    }
";
explain="The loadFile method tries to load a file, aka as include. If the inclusion fails, a PHP error is emitted (an exception would do the same), and there is not error management. Hence, the 'return true;', which is not tested later. It may be dropped."
name = "Functions In Loop Calls";
description = "The following functions call each-other in a loop fashion : A -> B -> A.

When those functions have no other interaction, the code is useless and should be dropped.

<?php

function foo1($a) {
    if ($a < 1000) {
        return foo2($a + 1);
    }
    return $a;
}

function foo2($a) {
    if ($a < 1000) {
        return foo1($a + 1);
    }
    return $a;
}

// if foo1 nor foo2 are called, then this is dead code. 
// if foo1 or foo2 are called, this recursive call should be investigated.

?>

Loops of size 2, 3 and 4 function are supported by this analyzer.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Typehinted References";
description = "Typehinted arguments have no need for references. Since they are only an object, they are already a reference.

In fact, adding the & on the argument definition may lead to error like ``Only variables should be passed by reference``.

This applies to the ``object`` type hint, but not the the others, such as ``int`` or ``bool``.

<?php
    // a class
    class X {
        public $a = 3;
    }

    // typehinted reference
    //function foo(object &$x) works too
    function foo(X &$x) {
        $x->a = 1;
    
        return $x;
    }

    // Send an object 
    $y = foo(new X);

    // This prints 1;
    print $y->a;
?>

See also `Passing by reference <http://php.net/manual/en/language.references.pass.php>`_ and 
         `Objects and references <http://php.net/manual/en/language.oop5.references.php>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "1.2.8";
phpError[] = "Only variables should be passed by reference";

modifications[] = "Remove reference for typehinted arguments, unless the typehint is a scalar typehint.";

name = "Method Has Fluent Interface";
description = "Mark a method when it only returns $this.

Fluent interfaces allows for chaining methods calls. This implies that $this is always returned, so that the next method call is done on the same object.

<?php

$object = new foo();
$object->this()
       ->is()
       ->a()
       ->fluent()
       ->interface();
       
class foo {
    function this() {
        // doSomething
        return $this;
    }

    function is() {
        // doSomethingElse
        return $this;
    }
    
    /// Etc. for a(), fluent(), interface()...
}

?>

See also `Fluent Interfaces in PHP <http://mikenaberezny.com/2005/12/20/fluent-interfaces-in-php/>`_ and 
      `Fluent Interfaces are Evil <https://ocramius.github.io/blog/fluent-interfaces-are-evil/>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Missing Typehint";
description = "No typehint was found for this parameter, or as a return type for the function.

void is considered a specified typehint, and is not reported here.

<?php

function foo($no_typehint) : void {}

function no_return_type() {}

?>

See also `Type Declaration <https://www.php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.0.5";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Uses Default Values";
description = "Default values are provided to methods so as to make it convenient to use. However, with new versions, those values may change. For example, in PHP 5.4, htmlentities() switched from ``Latin1`` to ``UTF-8`` default encoding.

<?php

$string = Eu não sou o pão;

echo htmlentities($string);

// PHP 5.3 : Eu n&Atilde;&pound;o sou o p&Atilde;&pound;o
// PHP 5.4 : Eu n&atilde;o sou o p&atilde;o

// Stable across versions
echo htmlentities($string, 'UTF8');

?>

As much as possible, it is recommended to use explicit values in those methods, so as to prevent from being surprise at a future PHP evolution. 

This analyzer tend to report a lot of false positives, including usage of count(). Count() indeed has a second argument for recursive counts, and a default value. This may be ignored safely.";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Mention all arguments, as much as possible"
name = "Too Many Local Variables";
description = "Too many local variables were found in the methods. When over 15 variables are found in such a method, a violation is reported.

Local variables exclude globals (imported with global) and arguments. Local variable include static variables.

When too many variables are used in a function, it is a code smells. The function is trying to do too much and needs extra space for juggling.
Beyond 15 variables, it becomes difficult to keep track of their name and usage, leading to confusion, overwriting or hijacking. 

<?php

// This function is OK : 3 vars are arguments, 3 others are globals.
function a20a3g3($a1, $a2, $a3) {
    global $a4, $a5, $a6;
    
    $a1  = 1;
    $a2  = 2;
    $a3  = 3 ;
    $a4  = 4 ;
    $a5  = 5 ;
    $a6  = 6 ;
    $a7  = 7 ;
    $a8  = 8 ;
    $a9  = 9 ;
    $a10 = 10;
    $a11  = 11;
    $a12  = 12;
    $a13  = 13 ;
    $a14  = 14 ;
    $a15  = 15 ;
    $a16  = 16 ;
    $a17  = 17 ;
    $a18  = 18 ;
    $a19  = 19 ;
    $a20 = 20;

}

// This function has too many variables
function a20() {
    
    $a1  = 1;
    $a2  = 2;
    $a3  = 3 ;
    $a4  = 4 ;
    $a5  = 5 ;
    $a6  = 6 ;
    $a7  = 7 ;
    $a8  = 8 ;
    $a9  = 9 ;
    $a10 = 10;
    $a11  = 11;
    $a12  = 12;
    $a13  = 13 ;
    $a14  = 14 ;
    $a15  = 15 ;
    $a16  = 16 ;
    $a17  = 17 ;
    $a18  = 18 ;
    $a19  = 19 ;
    $a20 = 20;

}

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.9.2";

modifications[] = "Remove some of the variables, and inline them";
modifications[] = "Break the big function into smaller ones";
modifications[] = "Find repeated code and make it a separate function";

[parameter1]
name="tooManyLocalVariableThreshold";
default="15";
type="integer";
description="Minimal number of variables in one function or method to report.";

[example1]
project="HuMo-Gen"
file="relations.php"
line="813"
code="function calculate_nephews($generX) { // handed generations x is removed from common ancestor
global $db_functions, $reltext, $sexe, $sexe2, $language, $spantext, $selected_language, $foundX_nr, $rel_arrayX, $rel_arrayspouseX, $spouse;
global $reltext_nor, $reltext_nor2; // for Norwegian and Danish

	if($selected_language==\"es\"){
		if($sexe==\"m\") { $neph=__('nephew'); $span_postfix=\"o \"; $grson='nieto'; }
		else { $neph=__('niece'); $span_postfix=\"a \"; $grson='nieta'; }
		//$gendiff = abs($generX - $generY); // FOUT
		$gendiff = abs($generX - $generY) - 1;
		$gennr=$gendiff-1;
		$degree=$grson.\" \".$gennr.$span_postfix;
		if($gendiff ==1) { $reltext=$neph.__(' of ');}
		elseif($gendiff > 1 AND $gendiff < 27) {
			spanish_degrees($gendiff,$grson);
			$reltext=$neph.\" \".$spantext.__(' of ');
		}
		else { $reltext=$neph.\" \".$degree; }
	} elseif ($selected_language=="he"){
		if($sexe=='m') { $nephniece = __('nephew'); }
///............
";
explain="15 local variables pieces of code are hard to find in a compact form. This function shows one classic trait of such issue : a large ifthen is at the core of the function, and each time, it collects some values and build a larger string. This should probably be split between different methods in a class. "
name = "No Literal For Reference";
description = "Method arguments and return values may be by reference. Then, they need to be a valid variable.

Objects are always passed by reference, so there is no need to explicitely declare it.

Expressions, including ternary operator, produce value, and can't be used by reference directly. This is also the case for expression that include one or more reference. 

<?php

// variables, properties, static properties, array items are all possible
$a = 1;
foo($a);

//This is not possible, as a literal can't be a reference
foo(1);

function foo(&$int) { return $int; }


// This is not a valid reference
function &bar() { return 2; }
function &bar2() { return 2 + $r; }

?>

Wrongly passing a value as a reference leads to a PHP Notice.

See also `References <http://php.net/references>`_.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.5";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Remove the reference in the method signature (argument or return value)"
modifications[] = "Make the argument an object, by using a typehint (non-scalar)"
modifications[] = "Put the value into a variable prior to call (or return) the method"

; A PHP error that may be emitted by the target faulty code
phpError[] = "Cannot pass parameter 1 by reference"
phpError[] = "Only variable references should be returned by reference"
name = "Should Yield With Key";
description = "iterator_to_array() will overwrite generated values with the same key. 

PHP generators are based on the ``yield`` keyword. They also delegate some generating to other methods, with ``yield from``. 

When delegating, ``yield from`` uses the keys that are generated with ``yield``, and otherwise, it uses auto-generated index, starting with 0. 

The trap is that each ``yield from`` reset the index generation and start again with 0. Coupled with iterator_to_array(), this means that the final generated array may lack some values, while a foreach() loop would yield all of them.

<?php 

function g1() : Generator {
	for ( $i = 0; $i < 4; $i++ ) { yield $i; }
}

function g2() : Generator {
	for ( $i = 5; $i < 10; $i++ ) { yield $i; }
}

function aggregator() : Generator {
	yield from g1();
	yield from g2();
}

print_r(iterator_to_array());

/*
Array
(
    [0] => 6
    [1] => 7
    [2] => 8
    [3] => 9
    [4] => 4  // Note that 4 and 5 still appears
    [5] => 5  // They are not overwritten by the second yield
)
*/


foreach ( aggregator() as $i ) {
	print $i.PHP_EOL;
}

/*
0  // Foreach has no overlap and yield it all.
1
2
3
4
5
6
7
8
9
*/

?>

Thanks to `Holger Woltersdorf <https://twitter.com/hollodotme>`_ for `pointing this <https://twitter.com/hollodotme/status/1057909890566537217>`_.

See also `Generator syntax <http://php.net/manual/en/language.generators.syntax.php>`_ and 
         `Yielding values with keys <http://php.net/manual/en/language.generators.syntax.php#control-structures.yield.associative>`_.
";
severity = "S_MAJOR";
timetofix = "T_SLOW";
clearphp = "";
exakatSince = "1.5.2";
modifications[] = "Use iterator_to_array() on each generator separately, and use array_merge() to merge all the arrays."
modifications[] = "Always yield with distinct keys"
modifications[] = "Avoid iterator_to_array() and use foreach()"
name = "Useless Referenced Argument";
description = "The argument has a reference, but is only used for reading. 

This is probably a development artefact that was forgotten. It is better to remove it. 

This analysis also applies to foreach() loops, that declare the blind variable as reference, then use the variable as an object, accessing properties and methods. When a variable contains an object, there is no need to declare a reference : it is a reference automatically.

<?php

function foo($a, &$b, &$c) {
    // $c is passed by reference, but only read. The reference is useless.
    $b = $c + $a;
    // The reference is useful for $b
}

foreach ($array as &$element) {
    $element->method();
}

?>

See also `Objects and references <http://php.net/manual/en/language.oop5.references.php>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "1.1.3";

modifications[] = "Remove the useless & from the argument"
modifications[] = "Make an actual use of the argument before the end of the method"

[example1]
project="Woocommerce"
file="includes/data-stores/class-wc-product-variation-data-store-cpt.php"
line="414"
code="	public function update_post_meta( &$product, $force = false ) {
		$meta_key_to_props = array(
			'_variation_description' => 'description',
		);

		$props_to_update = $force ? $meta_key_to_props : $this->get_props_to_update( $product, $meta_key_to_props );

		foreach ( $props_to_update as $meta_key => $prop ) {
					$value   = $product->{"get_$prop"}( 'edit' );
					$updated = update_post_meta( $product->get_id(), $meta_key, $value );
			if ( $updated ) {
				$this->updated_props[] = $prop;
			}
		}

		parent::update_post_meta( $product, $force );
";
explain="$product is defined with a reference in the method signature, but it is also used as an object with a dynamical property. As such, the reference in the argument definition is too much."
[example2]
project="Magento"
file="setup/src/Magento/Setup/Module/Di/Compiler/Config/Chain/PreferencesResolving.php"
line="63"
code="    private function resolvePreferenceRecursive(&$value, &$preferences)
    {
        return isset($preferences[$value])
            ? $this->resolvePreferenceRecursive($preferences[$value], $preferences)
            : $value;
    }
";
explain="$value is defined with a reference. In the following code, it is only read and never written : for index search, or by itself. In fact, $preferences is also only read, and never written. As such, both could be removed."
name = "Closures Glossary";
description = "List of all the closures in the code.

<?php

// A closure is also a unnamed function
$closure = function ($arg) { return 'A'.strtolower($arg); }

?>

See also `The Closure Class <http://php.net/manual/en/class.closure.php>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Could Return Void";
description = "The following functions may bear the void return typehint. 

<?php

// This can be Void
function foo(&$a) {
    ++$a;
    return; 
}

// This can't be Void
function bar($a) {
    ++$a;
    return $a;  
}

?>

See also `Returning values <http://php.net/manual/en/functions.returning-values.php>`_ and 
         `Void Return Type <https://wiki.php.net/rfc/void_return_type>`_.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.9.1";

modifications[] = "Add the return type void to the method or function"

[example1]
project="WordPress"
file="wp-admin/includes/misc.php"
line="74"
code="function RemoveVolunteerOpportunity($iPersonID, $iVolID)
{
    $sSQL = 'DELETE FROM person2volunteeropp_p2vo WHERE p2vo_per_ID = '.$iPersonID.' AND p2vo_vol_ID = '.$iVolID;
    RunQuery($sSQL);
}

";
explain="In fact, RunQuery returns a boolean, which should be also returned here. No Void needed if the last called method is not returning void too."
name = "Method Has No Fluent Interface";
description = "Mark a method as such when it contains at least one return that doesn't return $this.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Unused Inherited Variable In Closure";
description = "Some closures forgot to make usage of inherited variables.

Closure have two separate set of incoming variables : the arguments (between parenthesis) and the inherited variables, in the 'use' clause. Inherited variables are extracted from the local environment at creation time, and keep their value until execution. 

The reported closures are requesting some local variables, but do not make any usage of them. They may be considered as dead code.  

<?php

// In this closure, $y is forgotten, but $u is used.
$a = function ($y) use ($u) { return $u; };

// In this closure, $u is forgotten
$a = function ($y, $z) use ($u) { return $u; };

?>

See also `Anonymous functions <http://php.net/manual/en/functions.anonymous.php>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "1.0.11";

modifications[] = "Remove the unused inherited variable"
modifications[] = "Make us of the unused inherited variable"

[example1]
project="shopware"
file="recovery/update/src/app.php"
line="129"
code="$app->map('/applyMigrations', function () use ($app, $container) {
    $container->get('controller.batch')->applyMigrations();
})->via('GET', 'POST')->name('applyMigrations');

$app->map('/importSnippets', function () use ($container) {
    $container->get('controller.batch')->importSnippets();
})->via('GET', 'POST')->name('importSnippets');

";
explain="In the first closuree, $containere is used as the root for the method calls, but $app is not used. It may be dropped. In fact, some of the following calls to $app->map() only request one inherited, $container."

[example2]
project="Mautic"
file="MauticCrmBundle/Tests/Integration/SalesforceIntegrationTest.php"
line="1202"
code="                function () use (&$restart, $max) {
                    $args = func_get_args();

                    if (false === $args[2]) {
                        return $max;
                    }

                    $createLeads = $this->getLeadsToCreate($args[2], $max);

                    // determine whether to return a count or records
                    if (false === $args[2]) {
                        return count($createLeads);
                    }

                    return $createLeads;
                }

";
explain="$max is relayed to getLeadsToCreate(), while $restart is omitted. It may be dropped, along with its reference."
name = "Mark Callable";
description = "Create an attribute that guess what are the called function or methods, when possible.";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Functioncall Is Global";
description = "Marks functioncall when they are global and not located in another function, class or trait (namespaces are OK).";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Typehints";
description = "List of all the types (classes or scalar) used in Typehinting.

<?php

// here, array, myObject and string are all typehints.
function foo(array $array, myObject $x, string $string) {

}

?>

See also `Type declarations <http://php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Useless Argument";
description = "The argument is always used with the same value. This value could be hard coded in the method, and save one argument slot.

There is no indication that this argument will be used with other values. It may be a development artifact, that survived without cleaning.

<?php

// All foo2 arguments are used with different values
function foo2($a, $b) {}
foo2(1, 2);
foo2(2, 2);
foo2(3, 3);

// The second argument of foo is always used with 2
function foo($a, $b) {}
foo(1, 2);
foo(2, 2);
foo(3, 2);

?>

Methods with less than 3 calls are not considered here, to avoid reporting methods used once.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.8.0";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Remove the argument and hard code its value inside the method"
modifications[] = "Add the value as default in the method signature, and drop it from the calls"
modifications[] = "Add calls to the method, with more varied arguments"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Argument Should Be Typehinted";
description = "When a method expects objects as argument, those arguments should be typehinted. This way, it provides early warning that a wrong object is being sent to the method.

The analyzer will detect situations where a class, or the keywords 'array' or 'callable'. 

<?php

// What are the possible classes that have a 'foo' method? 
function foo($bar) {
    return $bar->foo();
}

?>

Closure arguments are omitted.

See also `Type declarations <http://php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration>`_.
";
clearphp = "always-typehint";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";


modifications[] = "Add the typehint to the function arguments"

[example1]
project="Dolphin"
file="Dolphin-v.7.3.5/plugins/intervention-image/Intervention/Image/Gd/Commands/WidenCommand.php"
line="20"
code="        $this->arguments[2] = function ($constraint) use ($additionalConstraints) {
            $constraint->aspectRatio();
            if(is_callable($additionalConstraints)) 
                $additionalConstraints($constraint);
        };
";
explain="This closures make immediate use of the $constraint argument, and calls its method aspectRatio. No check is made on this argument, and it may easily be mistaken with another class, or a null. Adding a typehint here will ensure a more verbose development error and help detect misuse of the closure. "

[example2]
project="Mautic"
file="app/bundles/PluginBundle/Helper/IntegrationHelper.php"
line="374"
code="        if (empty($alphabetical)) {
            // Sort by priority
            uasort($returnServices, function ($a, $b) {
                $aP = (int) $a->getPriority();
                $bP = (int) $b->getPriority();

                if ($aP === $bP) {
                    return 0;
                }

                return ($aP < $bP) ? -1 : 1;
            });

";
explain="This piece of code inside a 275 lines method. Besides, there are 11 classes that offer a 'getPriority' method, although $returnServices could help to semantically reduce the number of possible classes. Here, typehints on $a and $b help using the wrong kind of object. "
name = "Prefix And Suffixes With Typehint";
description = "This analysis checks the relationship between methods prefixes and suffixes, with their corresponding return typehint.

For example, a method with the signature ``function isACustomer() {}`` should return a boolean. That boolean can then be read when calling the method : ``if ($user->isACustomer()) {}``.

There are multiple such convention that may be applied. For example, ``has*`` should return a boolean, ``set*`` should return nothing (a.k.a ``void``), and ``get*``shall return any kind of type. 

<?php

class x  {
    // Easy to read convention
    function isAUser() : bool {}

    // shall return a boolean
    function isACustomer() {}

    // shall return a string, based on suffix 'name => string'
    function getName() {}

    // shall return a string, based on suffix 'name => string'
    function getUsername() {}

    // shall return \\Uuid, based on prefix 'uuid => \\Uuid'
    function getUuid() {}

    // shall return anything, based on no prefix nor suffix
    function getBirthday() {}

}

?>

There are 2 parameters for this analysis. It is recommended to customize them to get an better results, related to the naming conventions used in the code.

``prefixedType`` is used for prefix in method names, which is the beginning of the name. ``suffixedType`` is used for suffixes : the ending part of the name. Matching is case insensitive.

The prefix is configured as the index of the map, while the related type is configured as the value of the map.

``prefixToType['is'] = 'bool';`` will be use as ``is*`` shall use the ``bool`` typehint.

Multiple typehints may be used at the same time. PHP supports multiple types since PHP 8.0, and Exakat will support them with any PHP version. Specify multiple types by separating them with comma. Any typehint not found in this list will be reported, including ``null``.

PHP scalar types are available : ``string``, ``int``, ``void``, etc. Explicit types, based on classes or interfaces, must use the fully qualified name, not the short name. ``suffixToType['uuid'] = '\\Uuid';`` will be use as ``*uuid`` shall use the ``\\Uuid`` typehint.

When multiple rules applies, only one is reported. 

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.1.1";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

; Optional parameters
[parameter1]
name="prefixedType";
default="prefixedType['is'] = 'bool';
prefixedType['has'] = 'bool';
prefixedType['set'] = 'void';
prefixedType['list'] = 'array';";
type="ini_hash";
description="List of prefixes and their expected returntype";

[parameter2]
name="suffixedType";
default="prefixedType['list'] = 'bool';
prefixedType['int'] = 'int';
prefixedType['string'] = 'string';
prefixedType['name'] = 'string';
prefixedType['description'] = 'string';
prefixedType['id'] = 'int';
prefixedType['uuid'] = '\\Uuid';";
type="ini_hash";
description="List of suffixes and their expected returntype";






; This is a safe guard, to find quickly missed docs
inited="Not yet";
name = "Unused Arguments";
description = "Those arguments are not used in the method or function. 

Unused arguments should be removed in functions : they are just dead code.

Unused argument may have to stay in methods, as the signature is actually defined in the parent class. 

<?php

// $unused is in the signature, but not used. 
function foo($unused, $b, $c) {
    return $b + $c;
}
?>

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
modifications[] = "Drop the argument from the signature"
modifications[] = "Actually use that argument in the body of the method"
[example1]
project="ThinkPHP"
file="ThinkPHP/Library/Behavior/AgentCheckBehavior.class.php"
line="18"
code="class AgentCheckBehavior
{
    public function run(&$params)
    {
        // 代理访问检测
        $limitProxyVisit = C('LIMIT_PROXY_VISIT', null, true);
        if ($limitProxyVisit && ($_SERVER['HTTP_X_FORWARDED_FOR'] || $_SERVER['HTTP_VIA'] || $_SERVER['HTTP_PROXY_CONNECTION'] || $_SERVER['HTTP_USER_AGENT_VIA'])) {
            // 禁止代理访问
            exit('Access Denied');
        }
    }
}
";
explain="$params are requested, but never used. The method is not overloading another one, as the class doesn't extends anything. $params is unused. "
[example2]
project="phpMyAdmin"
file="libraries/classes/Display/Results.php"
line="1985"
code="    /**
     * Prepare parameters and html for sorted table header fields
     *
     * @param array    $sort_expression             sort expression
     * @param array    $sort_expression_nodirection sort expression without direction
     * @param string   $sort_tbl                    The name of the table to which
     *                                             the current column belongs to
     * @param string   $name_to_use_in_sort         The current column under
     *                                             consideration
     * @param array    $sort_direction              sort direction
     * @param stdClass $fields_meta                 set of field properties
     * @param integer  $column_index                The index number to current column
     *
     * @return  array   3 element array - $single_sort_order, $sort_order, $order_img
     *
     * @access  private
     *
     * @see     _getOrderLinkAndSortedHeaderHtml()
     */
    private function _getSingleAndMultiSortUrls(
        array $sort_expression,
        array $sort_expression_nodirection,
        $sort_tbl,
        $name_to_use_in_sort,
        array $sort_direction,
        $fields_meta,
        $column_index
    ) {
    /**/
        // find the sorted column index in row result
        // (this might be a multi-table query)
        $sorted_column_index = false;
    /**/
    }
";
explain="Although $column_index is documented, it is not found in the rest of the (long) body of the function. It might have been refactored into $sorted_column_index."
name = "Dynamic Function Call";
description = "Mark a functioncall made with a variable name.

<?php

// function definition
function foo() {}

// function name is in a variable, as a string.
$var = 'foo'; 

// dynamic call of a function
$var();

call_user_func($var);

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Empty Function";
description = "Function or method whose body is empty. 

Such functions or methods are rarely useful. As a bare minimum, the function should return some useful value, even if constant.

A method is considered empty when it contains nothing, or contains expressions without impact. 

<?php

// classic empty function
function emptyFunction() {}

class bar {
    // classic empty method
    function emptyMethod() {}

    // classic empty function
    function emptyMethodWithParent() {}
}

class barbar extends bar {
    // NOT an empty method : it overwrites the parent method
    function emptyMethodWithParent() {}
}

?>

Methods which overwrite another methods are omitted. Methods which are the concrete version of an abstract method are considered.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
modifications[] = "Fill the function with actual code"
modifications[] = "Remove any usage of the function, then remove the function"

[example1]
project="Contao"
file="core-bundle/src/Resources/contao/modules/ModuleQuicklink.php"
line="91"
code="			if (!empty($tmp) && \is_array($tmp))
			{
				$arrPages = array_map(function () {}, array_flip($tmp));
			}
";
explain="The closure used with array_map() is empty : this means that the keys are all set to the returned value of the empty closure, which is null. The actual effect is to reset the values to NULL. A better solution, without using the empty closure, is to rely on array_fill_keys() to create an array with default values.  "
name = "Used Functions";
description = "The functions below are used in the code.

A function is used in the code when it is called literally, or as a string callback. 

<?php

function used() {}
// The 'unused' function is defined but never called
function unused() {}

// The 'used' function is called at least once
used();

// The 'used' function is called as a callback
array_filter($array, 'used');

?>
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Mismatch Type And Default";
description = "The argument typehint and its default value don't match. 

The code may lint and load, and even work when the arguments are provided. Though, PHP won't eventually execute it. 

Most of the mismatch problems are caught by PHP at linting time. It displays the following error message : 'Argument 1 passed to foo() must be of the type integer, string given'.

The default value may be a constant (normal or class constant) : as such, PHP might find its value only at execution time, from another include. As such, PHP doesn't report anything about the situation at compile time.

The default value may also be a constant scalar expression : since PHP 7, some of the simple operators such as +, -, *, %, **, etc. are available to build default values. Among them, the ternary operator and Coalesce. Again, those expression may be only evaluated at execution time, when the value of the constants are known. 

<?php

// bad definition : the string is actually an integer
const STRING = 3;

function foo(string $s = STRING) {
    echo $s;
}

// works without problem
foo('string');

// Fatal error at compile time
foo();

// Fail only at execution time (missing D), and when default is needed
function foo2(string $s = D ? null : array()) {
    echo $s;
}

?>

PHP reports typehint and default mismatch at compilation time, unless there is a static expression that can't be resolved within the compiled file : then it is checked only at runtime, leading to a Fatal error.

See also `Type declarations <http://php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration>`_.

";
clearphp = "";
severity = "S_CRITICAL";
timetofix = "T_SLOW";
exakatSince = "1.2.9";

phpError[] = "Argument 1 passed to foo() must be of the type integer, string given"
phpError[] = " Default value for parameters with a int type can only be int or NULL "

modifications[] = "Match the typehint with the default value"
modifications[] = "Do not rely on PHP type juggling to change the type on the fly"
name = "Wrong Number Of Arguments In Methods";
description = "Those methods are called with a wrong number of arguments : too many or too few. Check the signature.

<?php

class Foo {
    private function Bar($a, $b) {
        return $a + $b;
    }
    
    public function foobar() {
        $this->Bar(1);
        
        // Good amount
        $this->Bar(1, 2);
        
        // Too Many
        $this->Bar(1, 2, 3);
    }
}

?>

Methods with a variable number of argument, either using ellipsis or func_get_args() are ignored. 

PHP emits an error at runtime, when arguments are not enough : ''. PHP doesn't emit an error when too many arguments are provided.

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Adapt the call to use one of the right number of arguments : this means dropping the extra ones, or adding the missing ones"
modifications[] = "Adapt the signature of the method, and use a default value"

phpErrors[] = "Too few arguments to function Foo::Bar(), 1 passed";
name = "Nullable Without Check";
description = "Nullable typehinted argument should be checked before usage.

<?php

// This will emit a fatal error when $a = null
function foo(?A $a) {
    return $a->m();
}

// This is stable
function foo(?A $a) {
    if ($a === null) {
        return 42;
    } else {
        return $a->m();
    }
}

?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.0.2";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Mismatched Default Arguments";
description = "Arguments are relayed from one method to the other, and the arguments have different default values. 

Although it is possible to have different default values, it is worth checking why this is actually the case.

<?php

function foo($a = null, $b = array() ) {
    // foo method calls directly bar. 
    // When argument are provided, it's OK
    // When argument are omited, the default value is not the same as the next method
    bar($a, $b);
}

function bar($c = 1, $d = array() ) {

}

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.12.3";

modifications[] = "Synchronize default values to avoid surprises"
modifications[] = "Drop some of the default values"

[example1]
project="SPIP"
file="ecrire/inc/lien.php"
line="160"
code="
// http://code.spip.net/@traiter_lien_implicite
function traiter_lien_implicite($ref, $texte = '', $pour = 'url', $connect = '') {

    // some code was edited here

	if (is_array($url)) {
		@list($type, $id) = $url;
		$url = generer_url_entite($id, $type, $args, $ancre, $connect ? $connect : null);
	}";
explain="generer_url_entite() takes $connect in, with a default value of empty string. Later, generer_url_entite() receives that value, but uses null as a default value. This forces the ternary test on $connect, to turn it into a null before shipping it to the next function, and having it processed accordingly."
name = "Optional Parameter";
description = "An optional parameter is a method argument that has both a typehint and a default value. 

Such argument is optional, as it may be omitted. When this is the case, the code has to differentiate between the default behavior or the actual usage. It is recommended to avoid providing a default value, and use a null object.

<?php
    
class foo {
    function methodWithOptionalArgument(bar $x = null) {
        if ($x === null) {
            // default behavior
        } else {
            // normal behavior
        }
    }

    function methodWithCompulsoryArgument(bar $x) {
        // normal behavior
        // $x is always a bar. 
    }
}
?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.12.4";name = "Only Variable Passed By Reference";
description = "When an argument is expected by reference, it is compulsory to provide a container. A container may be a variable, an array, a property or a static property. 

This may be linted by PHP, when the function definition is in the same file as the function usage. This is silently linted if definition and usage are separated, if the call is dynamical or made as a method.

<?php

function foo(&$bar) { /**/ }

function &bar() { /**/ }

// This is not possible : strtolower() returns a value
foo(strtolower($string));

// This is valid : bar() returns a reference
foo(bar($string));

?>

This analysis currently covers functioncalls and static methodcalls, but omits methodcalls.
";
clearphp = "";
severity = "S_CRITICAL";
timetofix = "T_SLOW";
exakatSince = "0.11.3";

modifications[] = "Store the previous result in a variable, and then call the function."


[example1]
project="Dolphin"
file="administration/charts.json.php"
line="89"
code="array_pop(array_slice($aData, 0, 1))";
explain="This is not possible, as array_slice() returns a new array, and not a reference. Minimally, the intermediate result must be saved in a variable, then popped. Actually, this code extracts the element at key 1 in the $aData array, although this also works with hash (non-numeric keys)."
[example2]
project="PhpIPAM"
file="functions/classes/class.Thread.php"
line="243"
code="pcntl_waitpid($this->pid, $status = 0)";
explain="This is sneaky bug : the assignation $status = 0 returns a value, and not a variable. This leads PHP to mistake the initialized 0 with the variable $status and fails. It is not possible to initialize variable AND use them as argument."
name = "Could Type With Array";
description = "That argument may be typed with ``array``. 

<?php

// $a is used with a function which requires an int. 
function foo($a) {
    return array_keys($a);
}

?>

See also `Type declarations <http://php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.9";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Add the ``array`` typehint to the function."

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

name = "Real Functions";
description = "Real functions, not methods.

Function keywords, that are not in a class, trait, interface, nor a closure.

<?php

// a real Function
function realFunction () {}

// Those are not real functions
function ($closure) { }

class foo {
    function isAClassMethod() {}
}

interface fooi {
    function isAnInterfaceMethod() {}
}

trait foot {
    function isATraitMethod() {}
}
?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Methods Without Return";
description = "List of all the function, closures, methods that have no explicit return. 

Functions that hold the ``void`` return type are omitted.

<?php

// With return null : Explicitly not returning
function withExplicitReturn($a = 1) {
    $a++;
    return null;
}

// Without indication
function withoutExplicitReturn($a = 1) {
    $a++;
}

// With return type void : Explicitly not returning
function withExplicitReturnType($a = 1) : void {
    $a++;
}

?>

See also `return <https://www.php.net/manual/en/function.return.php>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Add the returntype 'void' to make this explicit behavior"name = "Fn Argument Variable Confusion";
description = "Avoid using local variables as arrow function arguments.

When a local variable name is used as an argument's name in an arrow function, the local variable from the original scope is not imported. They are now two distinct variables.

When the local variable is not listed as argument, it is then imported in the arrow function.

<?php

function foo() {
    $locale = 1;

    // Actually ignores the argument, and returns the local variable ``$locale``.
    $fn2 = fn ($argument) => $locale;

    // Seems similar to above, but returns the incoming argument    
    $fn2 = fn ($locale) => $locale;
}

?>

See also `Arrow functions <https://www.php.net/manual/en/functions.arrow.php>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.1.0";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Change the name of the local variable"
modifications[] = "Change the name of the argument"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

; Optional parameters
;[parameter1]
;name="parametersCount";
;default="8";
;type="integer";
;description="Minimal number of parameters to report.";
name = "Is Generator";
description = "Mark as such functions or methods that are using yield and yield from.

<?php

function generator() {
    yield from generator2();
    
    return 3;
}

function generator2() {
    yield 1;
    yield 2;
}

?>
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Insufficient Typehint";
description = "An argument is typehinted, but it actually calls methods that are not listed in the interface.

Classes may be implementing more methods than the one that are listed in the interface they also implements. This means that filtering objects with a typehint, but calling other methods will be solved at execution time : if the method is available, it will be used; if it is not, a fatal error is reported.

<?php

class x implements i {
    function methodI() {}
    function notInI() {}
}

interface i {
    function methodI();
}

function foo(i $x) {
    $x->methodI(); // this call is valid
    $x->notInI();  // this call is not garanteed
}
?>

Inspired by discussion with `Brandon Savage <https://twitter.com/BrandonSavage>`_.

";
clearphp = "";
severity = "S_MAJOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.6.6";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Extend the interface with the missing called methods"
modifications[] = "Change the body of the function to use only the methods that are available in the interface"
modifications[] = "Change the used objects so they don't depend on extra methods"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Dont Collect Void";
description = "When a method returns void, there is no need to collect the result. The collected value will actually be ``null``.

<?php

function foo() : void {
    // doSomething()
}

// This is useless
$result = foo(); 

// This is useless. It looks like this is a left over from code refactoring
echo foo(); 

?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.0.9";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Move the call to the function to its own expression with a semi-colon."
modifications[] = "Remove assignation of the result of such calls."

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

; Optional parameters
;[parameter1]
;name="parametersCount";
;default="8";
;type="integer";
;description="Minimal number of parameters to report.";
name = "Semantic Typing";
description = "Arguments names are only useful inside the method's body. They are not actual type.

<?php

// arguments should be a string and an array
function foo($array, $str) {
    // more code
    return $boolean;
}

// typehint is actually checking the values
function bar(iterable $closure) : bool {
    // more code
    return true;
}

?>

 ";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.0.5";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Use a typehint to make sure the argument is of the expected type."

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Unset Arguments";
description = "There is no need to unset arguments. Those values will be freed at the end of the function anyhow. 

<?php

function foo($a, $b) {
    $b = $a * 2;
    // This is useless. $a will be freed at the end of the function.
    unset($a);
}

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Cant Use Function";
description = "Those functions only contains an error or an exception. As such, they are a warning that such function or method shouldn't be used. 

<?php

function obsoleteFoo() {
    throw new exception('Don\'t use obsoleteFoo() but rather the new version of foo().');
}
?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.8.7";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Multiple Returns";
description = "Functions and methods that have multiple return statement. 

This makes it difficult to maintain : since the function may be short-circuited early, some later instruction may be omitted.

Ideally, guard clauses, which check if arguments are valid or not at the beginning of the method are the only exception to this rule.

<?php

function foo() {
    // This is a guard clause, that checks arguments. 
    if ($a < 0) {
        return false;
    }
    
    $b = 0;
    for($i = 0; $i < $a; $i++) {
        $b += bar($i);
    }
    
    return $b;
}
?>

Currently, the engine doesn't spot guard clauses.

See also `Single Function Exit Point <http://wiki.c2.com/?SingleFunctionExitPoint>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
name = "Typehint Must Be Returned";
description = "When using a typehint for a method, it is compulsory to use a at least one return in the method's body.

<?php

// Empty function : 
function foo() : Bar { return new Bar(); }

// Empty function : 
function foo() : Bar { }

?>

PHP lint this, but won't execute it.

See also `Return Type Declaration <http://php.net/manual/en/functions.returning-values.php#functions.returning-values.type-declaration>`_ and 
         `Type hint in PHP function parameters and return values <https://mlocati.github.io/articles/php-type-hinting.html>`_.
";
clearphp = "";
severity = "S_MAJOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.6.9";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Add a return with a valid value"

; A PHP error that may be emitted by the target faulty code
phpError[] = "Return value of foo() must be an instance of Bar, none returned "
name = "Aliases Usage";
description = "PHP manual recommends to avoid function aliases.

Some functions have several names, and both may be used the same way. However, one of the names is the main name, and the others are aliases. Aliases may be removed or change or dropped in the future. Even if this is not forecast, it is good practice to use the main name, instead of the aliases. 

<?php

// official way to count an array
$n = count($array);

// official way to count an array
$n = sizeof($array);

?>

Aliases are compiled in PHP, and do not provide any performances over the normal function. 

Aliases are more likely to be removed later, but they have been around for a long time.

See documentation : `List of function aliases <http://php.net/manual/en/aliases.php>`_.
";
clearphp = "no-aliases";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Always use PHP recommended functions"

[example1]
project="Cleverstyle"
file="modules/HybridAuth/Hybrid/thirdparty/Vimeo/Vimeo.php"
line="422"
code="is_writeable($chunk_temp_dir)";
explain="is_writeable() should be written is_writable(). No extra 'e'. "
[example2]
project="phpMyAdmin"
file="libraries/classes/Server/Privileges.php"
line="5064"
code="join('`, `', $tmp_privs2['Update'])";
explain="join() should be written implode()"

name = "Could Type With String";
description = "That argument may be typed with ``string``. 

<?php

// $a is used with a function which requires a string. 
function foo($a) {
    return strtolower($a);
}

?>

See also `Type declarations <http://php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.9";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Add the ``string`` typehint to the function."

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

name = "Useless Return";
description = "The spotted functions or methods have a return statement, but this statement is useless. This is the case for constructor and destructors, whose return value are ignored or inaccessible.

When return is void, and the last element in a function, it is also useless.

<?php

class foo {
    function __construct() {
        // return is not used by PHP
        return 2;
    }
}

function bar(&$a) {
    $a++;
    // The last return, when empty, is useless
    return;
}

?>
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";
modifications[] = "Remove the return expression. Keep any other calculation."
[example1]
project="ThinkPHP"
file="library/think/Request.php"
line="2121"
code="    public function __set($name, $value)
    {
        return $this->param[$name] = $value;
    }
";
explain="__set() doesn't need a return, unlike __get()."
[example2]
project="Vanilla"
file="applications/dashboard/views/attachments/attachment.php"
line="14"
code="        function writeAttachment($attachment) {

        $customMethod = AttachmentModel::getWriteAttachmentMethodName($attachment['Type']);
        if (function_exists($customMethod)) {
            if (val('Error', $attachment)) {
                writeErrorAttachment($attachment);
                return;
            }
            $customMethod($attachment);
        } else {
            trace($customMethod, 'Write Attachment method not found');
            trace($attachment, 'Attachment');
        }
        return;
    }

";
explain="The final 'return' is useless : return void (here, return without argument), is the same as returning null, unless the 'void' return type is used. The other return, is in the two conditions, is important to skip the end of the functioncall."
name = "Conditioned Function";
description = "Indicates if a function is defined only if a condition is met.

<?php

// This is a conditioned function. 
// it only exists if the PHP binary doesn't have it already.
if (!function_exists('join')) {
    function join($glue, $array) {
        return implode($glue, $array);
    }

}

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Could Typehint";
description = "Arguments that are tested with instanceof gain from making it a Typehint.

<?php

function foo($a, $b) {
    // $a is tested for B with instanceof. 
    if (!$a instanceof B) {
        return;
    }
    
    // More code
}

function foo(B $a, $b) {
    // May omit the initial test
    
    // More code
}

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.11.5";

modifications[] = "Add the typehint, remove the test on the type"name = "Could Be Typehinted Callable";
description = "Those arguments may use the callable Typehint. 

'callable' is a PHP keyword that represents callback functions. Those may be used in dynamic function call, like $function(); or as callback functions, like with array_map();

callable may be a string representing a function name or a static call (including ::), an array with two elements, (a class or object, and a method), or a closure.

When arguments are used to call a function, but are not marked with 'callable', they are reported by this analysis.

<?php

function foo(callable $callable) {
    // very simple callback
    return $callable();
}

function foo2($array, $callable) {
    // very simple callback
    return array_map($array, $callable);
}

?>

See also `Callback / callable <http://php.net/manual/en/language.types.callable.php>`_.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.10.5";
modifications[] = "Add the typehint callable"
modifications[] = "Use the function is_callable() inside the method if 'callable' is too strong."
[example1]
project="Magento"
file="wp-admin/includes/misc.php"
line="74"
code="    public function each($objMethod, $args = [])
    {
        if ($objMethod instanceof \Closure) {
            foreach ($this->getItems() as $item) {
                $objMethod($item, ...$args);
            }
        } elseif (is_array($objMethod)) {
            foreach ($this->getItems() as $item) {
                call_user_func($objMethod, $item, ...$args);
            }
        } else {
            foreach ($this->getItems() as $item) {
                $item->$objMethod(...$args);
            }
        }
    }
";
explain="$objMethod argument is used to call a function, a method or a localmethod. The typehint would save the middle condition, and make a better job than 'is_array' to check if $objMethod is callable. Yet, the final 'else' means that $objMethod is also the name of a method, and PHP won't validate this, unless there is a function with the same name. Here, callable is not an option. "

[example2]
project="PrestaShop"
file="controllers/admin/AdminImportController.php"
line="1147"
code="
	public static function arrayWalk(&$array, $funcname, &$user_data = false)
	{
		if (!is_callable($funcname)) return false;

		foreach ($array as $k => $row)
			if (!call_user_func_array($funcname, array($row, $k, $user_data)))
				return false;
		return true;
	}
";
explain="$funcname is tested with is_callable() before being used as a method. Typehint callable would reduce the size of the code. "

name = "Multiple Functions Declarations";
description = "Some functions are declared multiple times in the code. 

PHP accepts multiple definitions for the same functions, as long as they are not in the same file (linting error), or not included simultaneously during the execution. 

This creates to several situations in which the same functions are defined multiple times : the function may be compatible with various PHP version, but their implementation may not. Or the function is part of a larger library, and sometimes only need without the rest of the library. 

It is recommended to avoid having several functions with the same name in one repository. Turn those functions into methods and load them when needed. 

<?php

namespace a {
    function foo() {}
}

// Other file
namespace a {
    function foo() {}
    function bar() {}
}


?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.12.0";name = "Useless Type Check";
description = "With typehint, some checks on the arguments are now handled by the type system.

In particular, a type hinted argument can't be null, unless it is explicitly nullable, or has a ``null`` value as default.

<?php

// The test on null is useless, it will never happen
function foo(A $a) {
    if (is_null($a)) { 
        // do something
    }
}

// Either nullable ? is too much, either the default null is
function barbar(?A $a = null) {
}

// The test on null is useful, the default value null allows it
function bar(A $a = null) {
    if ($a === null) { 
        // do something
    }
}


?>

See also `Type Declarations <http://php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.8.9";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Remove the nullable typehint"
modifications[] = "Remove the null default value"
modifications[] = "Remove tests on null"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Using Deprecated Method";
description = "A call to a deprecated method has been spotted. A method is deprecated when it bears a ``@deprecated`` parameter in its typehint definition.

Deprecated methods which are not called are not reported.

<?php

// not deprecated method
not_deprecated();

// deprecated method
deprecated();

/**
 * @deprecated since version 2.0.0
 */
function deprecated() {}

function not_deprecated() {}

?>

See also `@deprecated <https://docs.phpdoc.org/latest/references/phpdoc/tags/deprecated.html>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.1.2";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Replace the deprecated call with a stable call"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

; Optional parameters
;[parameter1]
;name="parametersCount";
;default="8";
;type="integer";
;description="Minimal number of parameters to report.";
name = "Redeclared PHP Functions";
description = "Function that bear the same name as a PHP function, and that are declared. 

This is useful when managing backward compatibility, like emulating an old function, or preparing for newer PHP versions, like emulating new upcoming function.

<?php

if (version_compare(PHP_VERSION, 7.0) > 0) {
    function split($separator, $string) {
        return explode($separator, $string);
    }
}

print_r( split(' ', '2 3'));

?>
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";

modifications[] = "Check if it is still worth emulating that function"name = "Wrong Typehinted Name";
description = "The parameter name doesn't reflect the typehint used.

There are no restriction on parameter names, except its uniqueness in the signature. Yet, using a scalar typehint as the name for another typehinted value is just misleading. 

<?php

function foo(string $array,
             int $int) {
    // doSomething()
}

function bar(array $strings) {
    // doSomething()
}

?>

The comparison relies on exact names : calling an array a list of ``strings`` is OK with this analysis.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.0.2";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Rename "

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

; This is a safe guard, to find quickly missed docs
inited="Not yet";
name = "Exit-like Methods";
description = "Those methods do call exit() or die(). If they are called, they will stop the application. They are a user-land equivalent of exit or die. 

<?php

// This function anytime the code has finished its processing.
function finish() {
    global $html;
    
    echo $html;
    die();
}

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Parameter Hiding";
description = "When a parameter is set to another variable, and never used.

While this is a legit syntax, parameter hiding tends to make the code confusing. The parameter itself seems to be unused, while some extra variable appears.

Keep this code simple by removing the hiding parameter.

<?php

function substract($a, $b) {
    // $b is given to $c;
    $c = $b; 

    $c is used, but $b would be the same
    return $a - $c;
}

?>
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.8";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Remove the hiding parameter"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Is An Extension Function";
description = "This is an extension function. 

<?php

// range is a native PHP function. It is always available
$array = range(0, 100);

// json_encode is an extension function : it requires that PHP was compile with ext/json
echo json_encode($array);

?>

Almost every PHP extension defines extra functions. Nowadays, they are prefixed, like ``mysqli_connect``, ``ldap_close``, or ``zlib_decode``. Sometimes, they are even in a namespace. Refer to the extension itself to learn more about its functions usage.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Only Variable For Reference";
description = "When a method is requesting an argument to be a reference, it cannot be called with a literal value.

The call must be made with a variable, or any assimilated data container : array, property or static property. 

<?php

// This is not possible
foo(1,2);

// This is working
foo($a, $b);

function foo($a, &$b) {}

?>

Note that PHP may detect this error at linting time, if the method is defined after being called : at that point, PHP will only check the problem during execution. This is definitely the case for methods, compared to functions or static methods.

See also `Passing arguments by reference <http://php.net/manual/en/functions.arguments.php#functions.arguments.by-reference>`_.
";
clearphp = "";
severity = "S_CRITICAL";
timetofix = "T_QUICK";
exakatSince = "1.4.6";

modifications[] = "Put the literal value in a variable before calling the method."
modifications[] = "Put the literal value in the default value of the reference argument."

phpError[] = "Only variables can be passed by reference"
phpError[] = "Cannot pass parameter 1 by reference"name = "Never Used Parameter";
description = "When a parameter is never used at calltime, it may be turned into a local variable.

It seems that the parameter was set up initially, but never found its practical usage. It is never mentioned, and always fall back on its default value.  

Parameter without a default value are reported by PHP, and are usually always filled. 

<?php

// $b may be turned into a local var, it is unused
function foo($a, $b = 1) {
    return $a + $b;
}

// whenever foo is called, the 2nd arg is not mentionned
foo($a);
foo(3);
foo('a');
foo($c);

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "1.0.6";

modifications[] = "Drop the unused argument in the method definition"
modifications[] = "Actually use the argument when calling the method"
modifications[] = "Drop the default value, and check warnings that mention usage of this parameter"

[example1]
project="Piwigo"
file="include/functions_html.inc.php"
line="329"
code="function bad_request($msg, $alternate_url=null)
{
  set_status_header(400);
  if ($alternate_url==null)
    $alternate_url = make_index_url();
  redirect_html( $alternate_url,
    '<div style=\"text-align:left; margin-left:5em;margin-bottom:5em;\">
<h1 style=\"text-align:left; font-size:36px;\">'.l10n('Bad request').'</h1><br>'
.$msg.'</div>',
    5 );
}
";
explain="$alternate_url is never explicitely passed to bad_request() : this doesn't show in this extract. It could be dropped from this code."
name = "Multiple Definition Of The Same Argument";
description = "A method's signature is holding twice (or more) the same argument. For example, function x ($a, $a) { ... }. 

This is accepted as is by PHP 5, and the last parameter's value will be assigned to the variable. PHP 7.0 and more recent has dropped this feature, and reports a fatal error when linting the code.

<?php
  function x ($a, $a) { print $a; };
  x(1,2); => display 2

    // special case with a closure : 
  function ($a) use ($a) { print $a; };
  x(1,2); => display 2

?>

However, this is not common programming practise : all arguments should be named differently.

See also `Prepare for PHP 7 error messages (part 3) <https://www.exakat.io/prepare-for-php-7-error-messages-part-3/>`_.
";
clearphp = "all-unique-arguments";
phpversion = "7.0-";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Give different names to different parameters"

phpErrors[] = "Cannot use lexical variable $b as a parameter name"
phpErrors[] = "Redefinition of parameter $b";name = "Unused Functions";
description = "The functions below are unused. They look like dead code.

Recursive functions, level 1, are detected : they are only reported when a call from outside the function is made. Recursive functions calls of higher level (A calls B calls A) are not handled.

<?php

function used() {}
// The 'unused' function is defined but never called
function unused() {}

// The 'used' function is called at least once
used();

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Use the function in the code"
modifications[] = "Remove the functions from the code"

[example1]
project="Woocommerce"
file="includes/wc-core-functions.php"
line="2124"
code="/**
 * Make a URL relative, if possible.
 *
 * @since 3.2.0
 * @param string $url URL to make relative.
 * @return string
 */
function wc_get_relative_url( $url ) {
	return wc_is_external_resource( $url ) ? $url : str_replace( array( 'http://', 'https://' ), '//', $url );
}

/**
 * See if a resource is remote.
 *
 * @since 3.2.0
 * @param string $url URL to check.
 * @return bool
 */
function wc_is_external_resource( $url ) {
	$wp_base = str_replace( array( 'http://', 'https://' ), '//', get_home_url( null, '/', 'http' ) );

	return strstr( $url, '://' ) && ! strstr( $url, $wp_base );
}
";
explain="wc_is_external_resource() is unused. This is not obvious immediately, since there is a call from wc_get_relative_url(). Yet since wc_get_relative_url() itself is never used, then it is a dead function. As such, since wc_is_external_resource() is only called by this first function, it also dies, even though it is called in the code."

[example2]
project="Piwigo"
file="admin/include/functions.php"
line="2167"
code="/**
 * Returns access levels as array used on template with html_options functions.
 *
 * @param int $MinLevelAccess
 * @param int $MaxLevelAccess
 * @return array
 */
function get_user_access_level_html_options($MinLevelAccess = ACCESS_FREE, $MaxLevelAccess = ACCESS_CLOSED)
{
  $tpl_options = array();
  for ($level = $MinLevelAccess; $level <= $MaxLevelAccess; $level++)
  {
    $tpl_options[$level] = l10n(sprintf('ACCESS_%d', $level));
  }
  return $tpl_options;
}
";
explain="get_user_access_level_html_options() is unused and can't be find in the code.";
name = "Useless Default Argument";
description = "One of the argument has a default value, and this default value is never used. Every time the method is called, the argument is provided explicitly, rendering the default value actually useless.

<?php

function goo($a, $b = 3) { 
    // do something here
}

// foo is called 3 times, and sometimes, $b is not provided. 
goo(1,2);
goo(1,2);
goo(1);


function foo($a, $b = 3) { 
    // do something here
}

// foo is called 3 times, and $b is always provided. 
foo(1,2);
foo(1,2);
foo(1,2);
?>
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.7.9";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Remove the default value"
modifications[] = "Remove the explicit argument in the function call, when it is equal to the default value"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Wrong Number Of Arguments";
description = "Those functioncalls are made with too many or too few arguments. 

When the number arguments is wrong for native functions, PHP emits a warning. 
When the number arguments is too small for custom functions, PHP raises an exception. 
When the number arguments is too high for custom functions, PHP ignores the arguments. Such arguments should be handled with the variadic operator, or with func_get_args() family of functions.

<?php

echo strtoupper('This function is', 'ignoring arguments');
//Warning: strtoupper() expects exactly 1 parameter, 2 given in Command line code on line 1

echo strtoupper();
//Warning: strtoupper() expects exactly 1 parameter, 0 given in Command line code on line 1

function foo($argument) {}
echo foo();
//Fatal error: Uncaught ArgumentCountError: Too few arguments to function foo(), 0 passed in /Users/famille/Desktop/analyzeG3/test.php on line 10 and exactly 1 expected in /Users/famille/Desktop/analyzeG3/test.php:3

echo foo('This function is', 'ignoring arguments');

?>

It is recommended to check the signature of the methods, and fix the arguments. ";
clearphp = "no-missing-argument.md";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
phpError[] = "Uncaught ArgumentCountError: Too few arguments to function, 0 passed"
phpError[] = "Too few arguments to function foo(), 1 passed and exactly 2 expected"

modifications[] = "Add more arguments to fill the list of compulsory arguments"
modifications[] = "Remove arguments to fit the list of compulsory arguments"
modifications[] = "Use another method or class"

[example1]
project="xataface"
file="actions/existing_related_record.php"
line="130"
code="		df_display($context, $template, true);

// in public-api.php :
function df_display($context, $template_name){
	import( 'Dataface/SkinTool.php');
	$st = Dataface_SkinTool::getInstance();
	
	return $st->display($context, $template_name);
}

";
explain="df_display() actually requires only 2 arguments, while three are provided. The last argument is completely ignored. df_display() is called in a total of 9 places : this now looks like an API change that left many calls untouched."
name = "Relay Function";
description = "Relay function only delegate workload to another one. 

Relay functions and methods are delegating the actual work to another function or method. They do not have any impact on the results, besides exposing another name for the same feature.

<?php

function myStrtolower($string) {
    return \strtolower($string);
}

?>

Relay functions are typical of transition API, where an old API have to be preserved until it is fully migrated. Then, they may be removed, so as to reduce confusion, and simplify the API. 
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
modifications[] = "Remove relay function, call directly the final function"
modifications[] = "Remove the target function, and move the code here"
modifications[] = "Add more logic to that function, like conditions or cache"
[example1]
project="TeamPass"
file="includes/libraries/Goodby/CSV/Import/Standard/Interpreter.php"
line="88"
code="    /**
     * delegate to observer
     *
     * @param $observer
     * @param $line
     */
    private function delegate($observer, $line)
    {
        call_user_func($observer, $line);
    }";
explain="This example puts actually a name on the events : this method 'delegate' and it does it in the smallest amount of possible work, being given all the arguments. "
[example2]
project="SPIP"
file="ecrire/inc/json.php"
line="73"
code="if (!function_exists('json_encode')) {
	function json_encode($v) {
		return var2js($v);
	}
}
";
explain="var2js() acts as an alternative for json_encode(). Yet, it used to be directly called by the framework's code and difficult to change. With the advent of json_encode, the native function has been used, and even, a compatibility tool was set up. Thus, the relay function. "
name = "Function Called With Other Case Than Defined";
description = "Functions and methods are defined with a specific case. Often, this is done on purpose,
either to distinguish the method from others, such as PHP natives functions, or to follow a naming
convention. 

PHP functions are case insensitive, which leads to situations like : 

<?php
  function myUtility($arg) { 
    /* some code here */
  } 

   myutility($var);
?>

It is recommended to use the same casing in the function call and the function definition.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Wrong Optional Parameter";
description = "Wrong placement of optional parameters.

PHP parameters are optional when they defined with a default value, like this : 

<?php
    function x($arg = 1) {
        // PHP code here
    }
?>

When a function have both compulsory and optional parameters, the compulsory ones should appear first, and the optional should appear last : 

<?php
    function x($arg, $arg2 = 2) {
        // PHP code here
    }
?>

PHP solves this problem at runtime, assign values in the same other, but will miss some of the default values and emits warnings. 

It is better to put all the optional parameters at the end of the method's signature.

Optional parameter wrongly placed are now a Notice in PHP 8.0. The only previous case that is allowed in PHP 8.0 and also in this analysis, is when the ``null`` value is used as default for typed arguments.

See also `Function arguments <https://www.php.net/manual/en/functions.arguments.php>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
modifications[] = "Give default values to all but first parameters. Null is a good default value, as PHP will use it if not told otherwise. "
modifications[] = "Remove default values to all but last parameters. That is probably a weak solution."
modifications[] = "Change the order of the values, so default-valued parameters are at the end. This will probably have impact on the rest of the code, as the API is changing."

phpErrors[] = "Too few arguments to function foo(), 1 passed and exactly 2 expected"

[example1]
project="FuelCMS"
file="fuel/modules/fuel/helpers/validator_helper.php"
line="78"
code="if (!function_exists('regex'))
{
	function regex($var = null, $regex)
	{
		return preg_match('#'.$regex.'#', $var);
	} 
}
";
explain="The $regex parameter should really be first, as it is compulsory. Though, if this is a legacy function, it may be better to give regex a default value, such as empty string or null, and test it before using it."

[example2]
project="Vanilla"
file="applications/dashboard/modules/class.navmodule.php"
line="99"
code="    /**
     * Add a dropdown to the items array if it satisfies the $isAllowed condition.
     *
     * @param bool|string|array $isAllowed Either a boolean to indicate whether to actually add the item
     * or a permission string or array of permission strings (full match) to check.
     * @param DropdownModule $dropdown The dropdown menu to add.
     * @param string $key The item's key (for sorting and CSS targeting).
     * @param string $cssClass The dropdown wrapper's CSS class.
     * @param array|int $sort Either a numeric sort position or and array in the style: array('before|after', 'key').
     * @return NavModule $this The calling object.
     */
    public function addDropdownIf($isAllowed = true, $dropdown, $key = '', $cssClass = '', $sort = []) {
        if (!$this->isAllowed($isAllowed)) {
            return $this;
        } else {
            return $this->addDropdown($dropdown, $key, $cssClass, $sort);
        }
    }

";
explain="Note the second parameter, $dropdown, which has no default value. It is relayed to the addDropdown method, which as no default value too. Since both methods are documented, we can see that they should be an addDropdown : null is probably a good idea, coupled with an explicit check on the actual value."
name = "Could Make A Function";
description = "When a function is called across the code with the same arguments often enough, it should be turned into a local API. 

This approach is similar to turning literals into constants : it centralize the value, it helps refactoring by updating it. It also makes the code more readable. Moreover, it often highlight common grounds between remote code locations. 

The analysis looks for functions calls, and checks the arguments. When the calls occurs more than 4 times, it is reported. 

<?php

// str_replace is used to clean '&' from strings. 
// It should be upgraded to a central function
function foo($arg ) {
    $arg = str_replace('&', '', $arg);
    // do something with $arg
}

class y {
    function bar($database ) {
        $value = $database->queryName();
        $value = str_replace('&', '', $value);
        // $value = removeAmpersand($value);
        // do something with $arg2
    }
}

// helper function
function removeAmpersand($string) {
    return str_replace('&', '', $string);
}

?>

See also `Don't repeat yourself (DRY) <https://en.wikipedia.org/wiki/Don%27t_repeat_yourself>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "0.11.6";

modifications[] = "Create a constant for common pieces of data"
modifications[] = "Create a function based on context-free repeated elements"
modifications[] = "Create a class based on repeated elements with dependent values"

[parameter1]
name="centralizeThreshold";
default="8";
type="integer";
description="Minimal number of calls of the function with one common argument.";
name = "Unused Returned Value";
description = "The function called returns a value, which is ignored. 

Usually, this is a sign of dead code, or a missed check on the results of the functioncall. At times, it may be a valid call if the function has voluntarily no return value. 

It is recommended to add a check on the return value, or remove the call. 

<?php

// simplest form
function foo() {
    return 1;
}

foo();

// In case of multiple return, any one that returns something means that return value is meaningful
function bar() {
    if (rand(0, 1)) {
        return 1;
    } else {
        return ;
    }
}

bar();

?>

Note that this analysis ignores functions that return void (same meaning that PHP 7.1 : return ; or no return in the function body).


";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.5";
name = "Multiple Identical Closure";
description = "Several closures are defined with the same code. 

It may be interesting to check if a named function could be defined from them.

<?php

// the first squares, with closure
$squares= array_map(function ($a) {return $a * $a; }, range(0, 10) );

// later, in another file...
// another identical closure 
$squaring = function ($x) { return $x * $x; };
foo($x, $squaring);

?>

This analysis also reports functions and methods that look like the closures : they may be considered for switch.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_SLOW";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.5.8";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Create a function with the body of those closures, and replace the closures by the function's name."
name = "No Class As Typehint";
description = "Avoid using classes as typehint : always use interfaces. This way, different classes, or versions of classes may be passed as argument. The typehint is not linked to an implementation, but to signatures.

A class is needed when the object is with properties : interfaces do not allow the specifications of properties.

<?php

class X {
    public $p = 1;

    function foo() {}
}

interface i {
    function foo();
}

// X is a class : any update in the code requires changing / subclassing X or the rest of the code.
function bar(X $x) {
    $x->foo();
}

// I is an interface : X may implements this interface without refactoring and pass
// later, newer versions of X may get another name, but still implement I, and still pass
function bar2(I $x) {
    $x->foo();
}

function bar3(I $x) {
    echo $x->p;
}

?>

See also `Type hinting for interfaces <http://phpenthusiast.com/object-oriented-php-tutorials/type-hinting-for-interfaces>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.11.4";

modifications[] = "Create an interface with the important methods, and use that interface"
modifications[] = "Create an abstract class, when public properties are also needed"

[example1]
project="Vanilla"
file="library/Vanilla/Formatting/Formats/RichFormat.php"
line="51"
code="    public function __construct(Quill\Parser $parser, Quill\Renderer $renderer, Quill\Filterer $filterer) {
        $this->parser = $parser;
        $this->renderer = $renderer;
        $this->filterer = $filterer;
    }
";
explain="All three typehints are based on classes. When Parser or Renderer are changed, for testing, versioning or moduling reasons, they must subclass the original class. "

[example2]
project="phpMyAdmin"
file="libraries/classes/CreateAddField.php"
line="29"
code="    public function __construct(DatabaseInterface $dbi)
    {
        $this->dbi = $dbi;
    }";
explain="Although the class is named 'DatabaseInterface', it is a class."
name = "func_get_arg() Modified";
description = "func_get_arg() and func_get_args() used to report the calling value of the argument until PHP 7. Since PHP 7, it is reporting the value of the argument at calling time, which may have been modified by a previous instruction. 

<?php

function x($a) {
    $a++;
    print func_get_arg(0);
}

x(0);
?>

This code will display 1 in PHP 7, and 0 in PHP 5.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";
name = "Could Type With Int";
description = "That argument may be typed with ``int``. 

<?php

// $a is used with a function which requires an int. 
function foo($a) {
    return chr($a);
}

?>

See also `Type declarations <http://php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.9";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Add the ``int`` typehint to the function."

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

name = "Has Variable Arguments";
description = "Indicates if this function or method accept an arbitrary number of arguments, based on ... or func_get_args() usage.

<?php

// Variables number of arguments
function fixedNumberOfArguments($a, $b, ...$c) {}

// Fixed number of arguments
function fixedNumberOfArguments($a, $b) {
    if (func_num_args() > 2) {
        $c = func_get_args();
        array_shift($c); // $a
        array_shift($c); // $b
    }
    // do something
}

// Fixed number of arguments
function fixedNumberOfArguments($a, $b, $c = 1) {}

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Callback Needs Return";
description = "When used with array_map() functions, the callback must return something. This return may be in the form of a ``return`` statement, a global variable or a parameter with a reference. All those solutions extract information from the callback. 

<?php

// This filters each element
$filtered = array_filter($array, function ($x) {return $x == 2; });

// This return void for every element
$filtered = array_filter($array, function ($x) {return ; });

// costly array_sum()
$sum = 0;
$filtered = array_filter($array, function ($x) use (&$sum) {$sum += $x; });

// costly array_sum()
global $sum = 0;
$filtered = array_filter($array, function () {global $sum; $sum += $x; });

// register_shutown_function() doesn't require any return
register_shutown_function("my_shutdown");

?>

The following functions are omitted, as they don't require the return : 

+ forward_static_call_array()
+ forward_static_call()
+ register_shutdown_function()
+ register_tick_function()

See also `array_map <http://php.net/array_map>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "1.2.6";

modifications[] = "Add an explicit return to the callback"
modifications[] = "Use `null` to unset elements in an array without destroying the index"

[example1]
project="Contao"
file="core-bundle/src/Resources/contao/modules/ModuleQuicklink.php"
line="91"
code="$arrPages = array_map(function () {}, array_flip($tmp));";
explain="The empty closure returns `null`. The array_flip() array has now all its values set to null, and reset, as intended. A better alternative is to use the array_fill_keys() function, which set a default value to every element of an array, once provided with the expected keys.";

[example2]
project="Phpdocumentor"
file="src/phpDocumentor/Plugin/ServiceProvider.php"
line="24"
code="        array_walk(
            $plugins,
            function ($plugin) use ($app) {
                /** @var Plugin $plugin */
                $provider = (strpos($plugin->getClassName(), '\\') === false)
                    ? sprintf('phpDocumentor\\Plugin\\%s\\ServiceProvider', $plugin->getClassName())
                    : $plugin->getClassName();
                if (!class_exists($provider)) {
                    throw new \RuntimeException('Loading Service Provider for ' . $provider . ' failed.');
                }

                try {
                    $app->register(new $provider($plugin));
                } catch (\InvalidArgumentException $e) {
                    throw new \RuntimeException($e->getMessage());
                }
            }
        );
";
explain="The array_walk() function is called on the plugin's list. Each element is registered with the application, but is not used directly : this is for later. The error mechanism is to throw an exception : this is the only expected feedback. As such, no return is expected. May be a 'foreach' loop would be more appropriate here, but this is syntactic sugar.";

name = "Add Default Value";
description = "Parameter in methods definition may receive a default value. This allows the called method to set a value when the parameter is omitted. 

<?php

function foo($i) {
    if (!is_integer($i)) {
        $i = 0;
    }
}

?>

See also `Function arguments <http://php.net/manual/en/functions.arguments.php>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "1.4.5";
modifications[] = "Add a default value for parameters"
[example1]
project="Zurmo"
file="wp-admin/includes/misc.php"
line="74"
code="        public function getMetadataFilteredByOption($option)
        {
            if ($option == null)
            {
                $option = MissionsListConfigurationForm::LIST_TYPE_AVAILABLE;
            }
            ";
explain="Default values may be a literal (1, 'abc', ...), or a constant : global or class. Here, MissionsListConfigurationForm::LIST_TYPE_AVAILABLE may be used directly in the signature of the method"

[example2]
project="Typo3"
file="typo3/sysext/indexed_search/Classes/FileContentParser.php"
line="821"
code="    public function getIcon($extension)
    {
        if ($extension === 'htm') {
            $extension = 'html';
        } elseif ($extension === 'jpeg') {
            $extension = 'jpg';
        }
        return 'EXT:indexed_search/Resources/Public/Icons/FileTypes/' . $extension . '.gif';
    }
";
explain="$extension could get a default value to handle default situations : for example, a file is htm format by default, unless better known. Also, the if/then structure could get a 'else' clause, to handle unknown situations : those are situations where the extension is provided but not known, in particular when the icon is missing in the storage folder."

name = "Recursive Functions";
description = "Recursive functions are functions that calls itself.

<?php

// a recursive function ; it calls itself
function factorial($n) {
    if ($n == 1) { return 1; }
    
    return factorial($n - 1) * $n;
}
?>

Methods are not handled here.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Must Return Methods";
description = "The following methods are expected to return a value that will be used later. Without return, they are useless.

Methods that must return are : __get(), __isset(), __sleep(), __toString(), __set_state(), __invoke(), __debugInfo().
Methods that may not return, but are often expected to : __call(), __callStatic().


<?php

class foo {
    public function __isset($a) {
        // returning something useful
        return isset($this->$var[$a]);
    }

    public function __get($a) {
        $this->$a++;
        // not returning... 
    }

    public function __call($name, $args) {
        $this->$name(...$args);
        // not returning anything, but that's OK
    }

}
?>


";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Add a return expression, with a valid data type"
modifications[] = "Remove the return typehint"
name = "Wrong Type With Call";
description = "This analysis checks that a call to a method uses the right literal values' types.

Currently, this analysis doesn't take into account ``strict_types = 1``. 

<?php

function foo(string $a) {

}

// wrong type used
foo(1);

// wrong type used
foo(\"1\");

?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.9";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Use the right type with all literals";

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Wrong Function Name Case";
description = "The spotted functions are used with a different case than their definition. While PHP accepts this, it makes the code harder to read. 

It may also be a violation of coding conventions.

<?php

// Definition of the class
function foo () {}

// Those calls have wrong case
FOO();
\Foo();

// This is valid
foo();

?>

See also `PHP class name constant case sensitivity and PSR-11 <https://gist.github.com/bcremer/9e8d6903ae38a25784fb1985967c6056>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Match the defined functioncall with the called name"
name = "Hardcoded Passwords";
description = "Hardcoded passwords in the code. 

Hardcoding passwords is a bad idea. Not only it make the code difficult to change, but it is an information leak. It is better to hide this kind of information out of the code.

<?php

$ftp_server = '300.1.2.3';   // yes, this doesn't exists, it's an example
$conn_id = ftp_connect($ftp_server); 

// login with username and password
$login_result = ftp_login($conn_id, 'login', 'password'); 

?>

See also `10 GitHub Security Best Practices <https://snyk.io/blog/ten-git-hub-security-best-practices/>`_ and 
         `Git How-To: Remove Your Password from a Repository <https://davidverhasselt.com/git-how-to-remove-your-password-from-a-repository/>`_.
";
clearphp = "no-hardcoded-credential";
severity = "S_MAJOR";
timetofix = "T_SLOW";
exakatSince = "0.8.4";
modifications[] = "Remove all passwords from the code. Also, check for history if you are using a VCS.";
name = "Could Be Static Closure";
description = "Closure may be static, and prevent the import of ``$this``. 

By preventing the useless import of ``$this``, you avoid useless work. 

This also has the added value to prevent the usage of ``$this`` from the closure. This is a good security practice.

<?php

class Foo
{
    function __construct()
    {

        // Not possible to use $this
        $func = static function() {
            var_dump($this);
        };
        $func();

        // Normal import of $this
        $closure = function() {
            var_dump($this);
        };
    }
};
new Foo();

?>

This is a micro-optimisation. Apply it in case of intensive usage.

See also `Anonymous functions <http://php.net/manual/en/functions.anonymous.php>`_,
         `GeneratedHydrator <https://github.com/Ocramius/GeneratedHydrator/releases/tag/3.0.0>`_ and 
         `Static anonymous functions <http://php.net/manual/en/functions.anonymous.php#functions.anonymous-functions.static>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "1.3.2";

modifications[] = "Add the static keyword to the closure."
modifications[] = "Make actual usage of $this in the closure."

[example1]
project="Piwigo"
file="include/ws_core.inc.php"
line="620"
code="  /**
   * WS reflection method implementation: lists all available methods
   */
  static function ws_getMethodList($params, &$service)
  {
    $methods = array_filter($service->_methods,
      function($m) { return empty($m[\"options\"][\"hidden\"]) || !$m[\"options\"][\"hidden\"];} );
    return array('methods' => new PwgNamedArray( array_keys($methods),'method' ) );
  }
";
explain="The closure function($m) makes no usage of the current object : using static prevents $this to be forwarded with the closure."
name = "Could Type With Boolean";
description = "That argument may be typed with ``bool``. 

<?php

// $a is used with a function which requires a boolean. 
function foo($code, $a) {
    return var_dump($code, $a);
}

?>

See also `Type declarations <http://php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.9";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Add the ``bool`` typehint to the function."

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

name = "Use Named Boolean In Argument Definition";
description = "Boolean in argument definitions is confusing. 

It is recommended to use explicit constant names, instead. They are more readable. They also allow for easy replacement when the code evolve and has to replace those booleans by strings. This works even also with classes, and class constants.

<?php

function flipImage($im, $horizontal = NO_HORIZONTAL_FLIP, $vertical = NO_VERTICAL_FLIP) { }

// with constants
const HORIZONTAL_FLIP = true;
const NO_HORIZONTAL_FLIP = true;
const VERTICAL_FLIP = true;
const NO_VERTICAL_FLIP = true;

rotateImage($im, HORIZONTAL_FLIP, NO_VERTICAL_FLIP);


// without constants 
function flipImage($im, $horizontal = false, $vertical = false) { }

rotateImage($im, true, false);

?>

See also `Flag Argument <https://martinfowler.com/bliki/FlagArgument.html>`_, to avoid boolean altogether.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_SLOW";
exakatSince = "1.0.6";

[example1]
project="phpMyAdmin"
file="/libraries/classes/Util.php"
line="1929"
code="public static function checkParameters($params, $request = false) { 
    /**/ 
}";
explain="$request is an option to `checkParameters`, although it is not visibile with is its actual role."

[example2]
project="Cleverstyle"
file="/core/classes/Response.php"
line="129"
code="public function cookie($name, $value, $expire = 0, $httponly = false) { /**/ } 	 { 
    /**/ 
}";
explain="$httponly is an option to `cookie`, and true/false makes it readable. There may be other situations, like fallback, or forcedd usage, so the boolean may be misleading. Note also the `$expire = 0`, which may be a date, or a special value. We need to read the documentation to understand this."
name = "Bad Typehint Relay";
description = "A bad typehint relay happens where a type hinted argument is relayed to a parameter with another typehint. This will lead to a Fatal error, and stop the code. This is possibly a piece of dead code.

<?php

// the $i argument is relayed to bar, which is expecting a string. 
function foo(int $i) : string {
    return bar($i);
}

// the return value for the bar function is not compatible with the one from foo;
function bar(string $s) : int {
    return (int) $string + 1;
}

?>

It is recommended to harmonize the typehint, so the two functions are still compatible.

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.6.6";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Harmonize the typehint so they match one with the other."
modifications[] = "Remove dead code"
modifications[] = "Apply type casting before calling the next function, or return value"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Too Many Parameters";
description = "Method has too many parameters. Exakat has a default parameter count which may be configured.

A method that needs more than 8 parameters is trying to do too much : it should be reviewed and split into smaller methods. 

<?php

// This methods has too many parameters.
function alertSomeone($name, $email, $title, $message, $attachements, $signature, $bcc, $cc, $extra_headers) { 
    /* too much code here */ 
}

?>

See also `How many parameters is too many ? <https://www.exakat.io/how-many-parameters-is-too-many/>`_ and 
         `Too Many Parameters <http://wiki.c2.com/?TooManyParameters>`_.

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "1.1.9";
[parameter1]
name="parametersCount";
default="8";
type="integer";
description="Minimal number of parameters to report.";

modifications[] = "Reduce the number of parameters to a lower level"
modifications[] = "Break the function into smaller functions"
modifications[] = "Turn the function into a class"

[example1]
project="WordPress"
file="wp-admin/includes/misc.php"
line="74"
code="/**
 * [identifyUserRights description]
 * @param  string $groupesVisiblesUser  [description]
 * @param  string $groupesInterditsUser [description]
 * @param  string $isAdmin              [description]
 * @param  string $idFonctions          [description]
 * @return string                       [description]
 */
function identifyUserRights(
    $groupesVisiblesUser,
    $groupesInterditsUser,
    $isAdmin,
    $idFonctions,
    $server,
    $user,
    $pass,
    $database,
    $port,
    $encoding,
    $SETTINGS
) {";
explain="11 parameters is a lot for a function. Note that it is more than the default configuration, and reported there. This may be configured."

[example2]
project="ChurchCRM"
file="src/Reports/ReminderReport.php"
line="192"
code="public function StartNewPage($fam_ID, $fam_Name, $fam_Address1, $fam_Address2, $fam_City, $fam_State, $fam_Zip, $fam_Country, $fundOnlyString, $iFYID) 
{";
explain="10 parameters is a lot for a function. Here, we may also identify a family (ID, Name), and a full address (Address1, Address2, State, Zip, Country), which may be turned into an object. "
name = "Wrong Returned Type";
description = "The returned value is not compatible with the specified return type.

<?php

// classic error
function bar() : int {
    return 'A';
}

// classic static error
const B = 2;
function bar() : string {
    return B;
}

// undecideable error
function bar($c) : string {
    return $c;
}

// PHP lint this, but won't execute it
function foo() : void {
    // No return at all 
}

?>

See also `Returning values <http://php.net/manual/en/functions.returning-values.php>`_ and 
         `Void Return Type <https://wiki.php.net/rfc/void_return_type>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.8.7";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Match the return type with the return value"
modifications[] = "Remove the return expression altogether"
modifications[] = "Add a typecast to the returning expression"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Mismatched Typehint";
description = "Relayed arguments don't have the same typehint.

Typehint acts as a filter method. When an object is checked with a first class, and then checked again with a second distinct class, the whole process is always false : $a can't be of two different classes at the same time.

<?php

// Foo() calls bar()
function foo(A $a, B $b) {
    bar($a, $b);
}

// $a is of A typehint in both methods, but 
// $b is of B then BB typehing
function bar(A $a, BB $b) {

}

?>

Note : This analysis currently doesn't check generalisation of classes : for example, when B is a child of BB, it is still reported as a mismatch.

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.12.3";

modifications[] = "Ensure that the default value match the expected typehint."

[example1]
project="WordPress"
file="wp-admin/includes/misc.php"
line="74"
code="$markerdata = explode( \"\n\", implode( '', file( $filename ) ) );";
explain="This code actually loads the file, join it, then split it again. file() would be sufficient. "
name = "Exceeding Typehint";
description = "The typehint is not fully used in the method. Some of the defined methods in the typehint are unused. A tighter typehint could be used, to avoid method pollution.

<?php

interface i {
    function i1();
    function i2();
}

interface j {
    function j1();
    function j2();
}

function foo(i $a, j $b) {
    // the i typehint is totally used
    $a->i1();
    $a->i2();
    
    // the i typehint is not totally used : j2() is not used.
    $b->j1();
}

?>

Tight typehint prevents the argument from doing too much. They also require more maintenance : creation of dedicated interfaces, method management to keep all typehint tight.

See also Functions/InsufficientTypehint.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.0.3";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Keep the typehint tight, do not inject more than needed."

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Functions Glossary";
description = "List of all the defined functions in the code.

<?php

// A function
function aFunction() {}

// Closures (not reported)
$closure = function ($arg) {  }

// Methods
class foo {
    function aMethod() {}
}

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Undefined Functions";
description = "Some functions are called, but not defined in the code. This means that the functions are probably defined in a missing library, or in an extension. If not, this will yield a Fatal error at execution.

<?php

// Undefined function 
foo($a);

// valid function, as it belongs to the ext/yaml extension
$parsed = yaml_parse($yaml);

// This function is not defined in the a\b\c namespace, nor in the global namespace
a\b\c\foo(); 

?>

See also `Functions <http://php.net/manual/en/language.functions.php>`_.

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Fix the name of the function in the code"
modifications[] = "Remove the functioncall in the code"
modifications[] = "Define the function for the code to call it"
modifications[] = "Include the correct library in the code source"

phpError[] = "Undefined function"name = "Closure Could Be A Callback";
description = "Closure or arrowfunction could be simplified to a callback. Callbacks are strings or arrays.

A simple closure that only returns arguments relayed to another function or method, could be reduced to a simpler expression. They 

Closure may be simplified with a string, for functioncall, with an array for methodcalls and static methodcalls. 

Performances : simplifying a closure tends to reduce the call time by 50%. 

<?php

// Simple and faster call to strtoupper
$filtered = array_map('strtoupper', $array);

// Here the closure doesn't add any feature over strtoupper
$filtered = array_map(function ($x) { return strtoupper($x);}, $array);

// Methodcall example : no fix
$filtered = array_map(function ($x) { return $x->strtoupper() ;}, $array);

// Methodcall example  : replace with array($y, 'strtoupper')
$filtered = array_map(function ($x) use ($y) { return $y->strtoupper($x) ;}, $array);

// Static methodcall example 
$filtered = array_map(function ($x) { return $x::strtoupper() ;}, $array);

// Static methodcall example   : replace with array('A', 'strtoupper')
$filtered = array_map(function ($x) { return A::strtoupper($x) ;}, $array);

?>

See also `Closure class <http://php.net/closure>`_ and 
         `Callbacks / Callables <http://php.net/manual/en/language.types.callable.php>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "1.4.3";

modifications[] = "Replace the closure by a string, with the name of the called function"
modifications[] = "Replace the closure by an array, with the name of the called method and the object as first element"

[example1]
project="Tine20"
file="tine20/Tinebase/Convert/Json.php"
line="318"
code="$value = array_filter($value, function ($val) { return is_scalar($val); });";
explain="is_scalar() is sufficient here."

[example2]
project="NextCloud"
file="apps/files_sharing/lib/ShareBackend/Folder.php"
line="114"
code="			$parents = array_map(function($parent) use ($qb) {
				return $qb->createNamedParameter($parent);
			}, $parents);
";
explain="$qb is the object for the methodcall, passed via use. The closure may have been replaced with array($qb, 'createNamedParameter')."
name = "Use Arrow Functions";
description = "Arrow functions are closures that require less code to write.

Arrow functions were introduced in PHP 7.4. They added the reserved keyword ``fn``. s

<?php

array_map(fn(A $b): int => $b->c, $array);

function array_values_from_keys($arr, $keys) {
    return array_map(fn($x) => $arr[$x], $keys);
}
?>

See also `RFC : Arrow functions <https://wiki.php.net/rfc/arrow_functions>`_ and 
         `Arrow functions in PHP <https://stitcher.io/blog/short-closures-in-php>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.4";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Generator Cannot Return";
description = "Generators could not use return and yield at the same time. In PHP 7.0, generator can now use both of them.

<?php

// This is not allowed until PHP 7.0
function foo() {
    yield 1;
    return 'b';
}

?>";
clearphp = "";
severity = "S_MAJOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.8.7";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Remove the return"

; A PHP error that may be emitted by the target faulty code
phpError[] = "Generators cannot return values using \"return\" "
name = "Use Constant As Arguments";
description = "Some methods and functions are defined to be used with constants as arguments. Those constants are made to be meaningful and readable, keeping the code maintenable. It is recommended to use such constants as soon as they are documented.

<?php

// Turn off all error reporting
// 0 and -1 are accepted 
error_reporting(0);

// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);

// The first argument can be one of INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER, or INPUT_ENV.
$search_html = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_SPECIAL_CHARS);

// sort accepts one of SORT_REGULAR, SORT_NUMERIC, SORT_STRING, SORT_LOCALE_STRING, SORT_NATURAL
// SORT_FLAG_CASE may be added, and combined with SORT_STRING or SORT_NATURAL
sort($fruits);

?>

Here is the list of function that use a unique PHP constant as argument : 

+ array_change_key_case()
+ array_multisort()
+ array_unique()
+ count()
+ dns_get_record()
+ easter_days()
+ extract()
+ filter_input()
+ filter_var()
+ fseek()
+ get_html_translation_table()
+ gmp_div_q()
+ gmp_div_qr()
+ gmp_div_r()
+ html_entity_decode()
+ htmlspecialchars_decode()
+ http_build_query()
+ http_parse_cookie()
+ http_parse_params()
+ http_redirect()
+ http_support()
+ parse_ini_file()
+ parse_ini_string()
+ parse_url()
+ pathinfo()
+ pg_select()
+ posix_access()
+ round()
+ scandir()
+ socket_read()
+ str_pad()
+ trigger_error()

Here is the list of functions that use a combination of PHP native functions as argument.

+ arsort()
+ asort()
+ error_reporting()
+ filter_input()
+ filter_var()
+ get_html_translation_table()
+ htmlentities()
+ htmlspecialchars()
+ http_build_url()
+ jdtojewish()
+ krsort()
+ ksort()
+ pg_result_status()
+ phpcredits()
+ phpinfo()
+ preg_grep()
+ preg_match()
+ preg_split()
+ rsort()
+ runkit_import()
+ sort()
+ stream_socket_client()
+ stream_socket_server()

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Use PHP native constants, whenever possible, instead of meaningless literals."


[example1]
project="Tikiwiki"
file="lib/language/Language.php"
line=112
code="trigger_error(\"Octal or hexadecimal string '\" . $match[1] . \"' not supported\", E_WARNING)";
explain="E_WARNING is a valid value, but PHP documentation for trigger_error() explains that E_USER constants should be used. "

[example2]
project="shopware"
file="engine/Shopware/Plugins/Default/Core/Debug/Components/EventCollector.php"
line="106"
code="array_multisort($order, SORT_NUMERIC, SORT_DESC, $this->results)";
explain="One example where code review reports errors where unit tests don't : array_multisort actually requires sort order first (SORT_ASC or SORT_DESC), then sort flags (such as SORT_NUMERIC). Here, with SORT_DESC = 3 and SORT_NUMERIC = 1, PHP understands it as the coders expects it. The same error is repeated six times in the code. "


name = "Could Type With Iterable";
description = "Suggest using ``iterable`` typehint for arguments.

``iterable`` represents both ``array`` and objects that implements ``Iterator`` interface. Both types are coerced, and usable here. 

<?php

// $s may be both an array or an iterator
function foo($s) : int {
    $t = 0;
    foreach($s as $v) {
        $t += (int) $v;
    }
    
    return $t;
}

?>

See also `Iterables <https://www.php.net/manual/en/language.types.iterable.php>`_.
";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.9";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

; This is a safe guard, to find quickly missed docs
inited="Not yet";
name = "PSR-3 Usage";
description = "PSR-3 describes a common interface for logging libraries.

It is supported by an set of interfaces, that one may use in the code.

<?php

namespace MyNamespace;

// MyLog implements the PSR-3 LoggerInterface.
// MyLog is more of a black hole than a real Log.
namespace ;

class MyLog implements \Psr\Log\LoggerInterface {
    public function emergency($message, array $context = array()) {}
    public function alert($message, array $context = array()) {}
    public function critical($message, array $context = array()) {}
    public function error($message, array $context = array()) {}
    public function warning($message, array $context = array()) {}
    public function notice($message, array $context = array()) {}
    public function info($message, array $context = array()) {}
    public function debug($message, array $context = array()) {}
    public function log($level, $message, array $context = array()) {}
}

?>

See also `PSR-3 : Logger Interface <http://www.php-fig.org/psr/psr-3/>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.11.6";name = "PSR-16 Usage";
description = "PSR-16 describes a simple yet extensible interface for a cache item and a cache driver. It is supported by an set of interfaces, that one may use in the code.

<?php

namespace My\SimpleCache;

// MyCache implements the PSR-16 Simple cache.
// MyCache is more of a black hole than a real cache.
class MyCache implements Psr\SimpleCache\CacheInterface {
    public function get($key, $default = null) {}
    public function set($key, $value, $ttl = null) {}
    public function delete($key) {}
    public function clear() {}
    public function getMultiple($keys, $default = null) {}
    public function setMultiple($values, $ttl = null) {}
    public function deleteMultiple($keys) {}
    public function has($key) {}
}

?>

See also `PSR-16 : Common Interface for Caching Libraries <http://www.php-fig.org/psr/psr-16/>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.11.6";name = "PSR-11 Usage";
description = "PSR-11 describes a common interface for dependency injection containers.

It is supported by an set of interfaces, that one may use in the code.

<?php

namespace MyNamespace;

// MyContainerInterface implements the PSR-7 ServerRequestInterface.
// MyContainerInterface is more of a black hole than a real Container.
class MyContainerInterface implements \Psr\Container\ContainerInterface {
    public function get($id) {}
    public function has($id) {}
}

?>

See also `PSR-11 : Dependency injection container <https://github.com/container-interop/fig-standards/blob/master/proposed/container.md>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.11.5";name = "PSR-7 Usage";
description = "PSR-7 describes common interfaces for representing HTTP messages as described in `RFC 7230 <https://tools.ietf.org/html/rfc7230>`_ and `RFC 7231 <https://tools.ietf.org/html/rfc7231>`_, and URIs for use with HTTP messages as described in `RFC 3986 <https://tools.ietf.org/html/rfc3986>`_. 

It is supported by an set of interfaces, that one may use in the code.

<?php

namespace MyNamespace;

// MyServerRequest implements the PSR-7 ServerRequestInterface.
// MyServerRequest is more of a black hole than a real Server.
class MyServerRequest extends  \Psr\Http\Message\ServerRequestInterface  {
    public function getServerParams() {}
    public function getCookieParams() {}
    public function withCookieParams(array $cookies) {}
    public function getQueryParams() {}
    public function withQueryParams(array $query) {}
    public function getUploadedFiles() {}
    public function withUploadedFiles(array $uploadedFiles) {}
    public function getParsedBody() {}
    public function withParsedBody($data) {}
    public function getAttributes() {}
    public function getAttribute($name, $default = null) {}
    public function withAttribute($name, $value) {}
    public function withoutAttribute($name) {}
}

?>

See also `PSR-7 : HTTP message interfaces <http://www.php-fig.org/psr/psr-7/>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.11.6";name = "PSR-6 Usage";
description = "PSR-6 is the cache standard for PHP.

The goal of PSR-6 is to allow developers to create cache-aware libraries that can be integrated into existing frameworks and systems without the need for custom development.

It is supported by an set of interfaces, that one may use in the code.

<?php

namespace MyNamespace;

// MyCacheItem implements the PSR-7 CacheItemInterface.
// This MyCacheItem is more of a black hole than a real CacheItem.
class MyCacheItem implements \Psr\Cache\CacheItemInterface {
    public function getKey() {}
    public function get() {}
    public function isHit() {}
    public function set($value) {}
    public function expiresAt($expiration) {}
    public function expiresAfter($time) {}
}

?>

See also `PSR-6 : Caching <http://www.php-fig.org/psr/psr-6/>`_.";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.11.6";name = "PSR-13 Usage";
description = "PSR-13 describes a common interface for dependency injection containers.

It is supported by an set of interfaces, that one may use in the code.

<?php

namespace MyNamespace;

// MyLink implements the PSR-13 LinkInterface.
// MyLink is more of a black hole than a real Container.
class MyLink implements LinkInterface {
    public function getHref() {}
    public function isTemplated() {}
    public function getRels() {}
    public function getAttributes() {}
}

?>

See also `PSR-13 : Link definition interface <http://www.php-fig.org/psr/psr-13/>`_.
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.11.6";name="CompatibilityPHP72"
description = "This ruleset centralizes all analysis for the migration from PHP 7.1 to 7.2."name="CompatibilityPHP73"
description = "This ruleset centralizes all analysis for the migration from PHP 7.2 to 7.3."name="CompatibilityPHP71"
description = "This ruleset centralizes all analysis for the migration from PHP 7.0 to 7.1."name="CompatibilityPHP70"
description = "This ruleset centralizes all analysis for the migration from PHP 5.6 to 7.0."name="CompatibilityPHP74"
description = "This ruleset centralizes all analysis for the migration from PHP 7.3 to 7.4."name="Security"
description = "This ruleset focuses on code security. "name="Typechecks"
description = "This ruleset focuses on typehinting. Missing typehint, or inconsistent typehint, are reported. "name="Semantics"
description = "This ruleset focuses on human interpretation of the code. It reviews special values of literals, and named structures."name="Performances"
description = "This ruleset focuses on performances issues : anything that slows the code's execution."name="php-cs-fixable"
description = "[PHP-CS-FIXER](https://github.com/FriendsOfPHP/PHP-CS-Fixer) is a tool to automatically fix PHP Coding Standards issues. It applies modifications in the PHP code automatically. Exakat finds results which may be automatically updated with PHP-CS-FIXER. "name="Rector"
description = "`Rector <https://github.com/rectorphp/rector>`_ is a reconstructor tool. It applies modifications in the PHP code automatically. Exakat finds results which may be automatically updated with rector. "name="Coding conventions"
description = "This ruleset centralizes all analysis related to coding conventions. Sometimes, those are easy to extract with static analysis, and so here they are. No all o them are available."name="ClassReview"
description = "This ruleset focuses on classes construction issues, and their related structures : traits, interfaces, methods, properties, constants."name="php-cs-fixable"
description = "[PHP-CS-fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer) is a tool to automatically fix PHP Coding Standards issues. It applies modifications in the PHP code automatically. Exakat finds results which may be automatically updated with php-cs-fixer. "name="LintButWontExec"
description = "This ruleset focuses on PHP code that lint (php -l), but that will not run. As such, this ruleset tries to go further than PHP, by connecting files, just like during execution."name="CompatibilityPHP52"
description = "This ruleset centralizes all analysis for the migration from PHP 5.2 to 5.3."name="Suggestions"
description = "This ruleset focuses on possibly better syntax than the one currently used. Those may be code modernization, alternatives, more efficient solutions, or simply left over from older versions. "name="Analyze"
description = "This ruleset centralizes a large number of classic trap and pitfalls when writing PHP."name="CompatibilityPHP55"
description = "This ruleset centralizes all analysis for the migration from PHP 5.4 to 5.5."name="Top10"
description = "This ruleset is a selection of analysis, with the top 10 most common. Actually, it is a little larger than that. "name="CompatibilityPHP54"
description = "This ruleset centralizes all analysis for the migration from PHP 5.3 to 5.4."name="CompatibilityPHP56"
description = "This ruleset centralizes all analysis for the migration from PHP 5.5 to 5.6."name="Dead code"
description = "This ruleset focuses on dead code : expressions or even structures that are written, valid but never used."name="CompatibilityPHP80"
description = "This ruleset centralizes all analysis for the migration from PHP 7.4 to 8.0."name = "Typehints/CouldNotType";
description = "";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.1.2";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

; Optional parameters
;[parameter1]
;name="parametersCount";
;default="8";
;type="integer";
;description="Minimal number of parameters to report.";


; This is a safe guard, to find quickly missed docs
inited="Not yet";
name = "Could Be Void";
description = "Mark return types that can be set to void.

<?php

// No return, this should be void.
function foo() {
    ++$a; // Not useful
}

?>
";
clearphp = "";
phpversion = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "2.1.2";
name = "Could Be String";
description = "Mark arguemnts and return types that can be set to string.

<?php

// Accept a string as input 
function foo($a) {
    // Returns a string
    return $a . 'string';
}

?>
";
clearphp = "";
phpversion = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "2.1.2";
name = "Could Be Boolean";
description = "Mark arguments and return types that can be set to boolean.

<?php

// Accept a boolean as input 
function foo($b) {
    // Returns a boolean
    return $b === true;
}

?>
";
clearphp = "";
phpversion = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "2.1.2";
name = "Typehints/CouldBeCIT";
description = "";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.1.2";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

; Optional parameters
;[parameter1]
;name="parametersCount";
;default="8";
;type="integer";
;description="Minimal number of parameters to report.";


; This is a safe guard, to find quickly missed docs
inited="Not yet";
name = "Typehints/CouldBeArray";
description = "";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.1.2";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""

; Optional parameters
;[parameter1]
;name="parametersCount";
;default="8";
;type="integer";
;description="Minimal number of parameters to report.";


; This is a safe guard, to find quickly missed docs
inited="Not yet";
name = "Defined Classes";
description = "";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.6.4";

; Alternative to make this code go away. 
; One by possible solution
;modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Modules/IncomingData";
description = "";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.8.6";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Modules/NativeReplacement";
description = "";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.8.6";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Custom/NotInThisList";
description = "";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.6";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = ""

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
# Ignore everything in this directory
*
# Except this file
!.gitignoresignature = "Back( )";
title = "Back";
description = "moves the query to the atom called () (see _As()";
arguments = "";signature = "CodeIsNot( )";
title = "CodeIsNot";
description = "checks that the 'code' property has a value different from the given one";
arguments = "";signature = "CountBy( )";
title = "CountBy";
description = "Docs for CountBy";
arguments = "";signature = "FollowCalls( )";
title = "FollowCalls";
description = "Follow calls of the argument of a function to another function. foo($a, $b) { goo($b); } : the call to $b may be followed to goo(), while no calls may be followed by $a. ";
arguments = "";signature = "HasNoClass( )";
title = "HasNoClass";
description = "Checks that the current atom is not inside a class or an anonymous class.";
arguments = "";signature = "AddETo( )";
title = "AddETo";
description = "adds a link between the current atom to the atom called  (see _As())";
arguments = "";signature = "Not( )";
title = "Not";
description = "A filter that checks that the provided sub-query doesn't return anything. If the provided sub-query returns one result, at least, then the current query stops.";
arguments = "A sub-query, introduced with $this->side();";signature = "NoQuery( )";
title = "NoQuery";
description = "This steps represents an empty step. It doesn't do anything, and may be used when a step is necessary, but no special process should apply.";
arguments = "";signature = "IsInCatchBlock( )";
title = "IsInCatchBlock";
description = "Docs for IsInCatchBlock";
arguments = "";signature = "SavePropertyAs( )";
title = "SavePropertyAs";
description = "Docs for SavePropertyAs";
arguments = "";signature = "CollectContainers( )";
title = "CollectContainers";
description = "Docs for CollectContainers";
arguments = "";signature = "FullcodeIsNot( )";
title = "FullcodeIsNot";
description = "Checks that the current atom's fullcode property is not one of the provided values. One value may be provided as a string, multiple values must be provided as an array of string. The step may be case-sensitive or not, by using self::CASE_SENSITIVE or self::CASE_INSENSITIVE as the second argument (default to self::CASE_INSENSITIVE)";
arguments = "";signature = "StopQuery( )";
title = "StopQuery";
description = "StopQuery stops the current query. The query will not be executed, and will be skipped. When inside a sub-query, the sub-query will be skipped, not the main one.";
arguments = "";signature = "FollowAlias( )";
title = "FollowAlias";
description = "Find all variables that are using this current one as assignement.";
arguments = "number of hops while following the track of the variable. 0 means no following. Set a large value to for infinite tracking. Be aware of the computation time.";signature = "NoClassDefinition( )";
title = "NoClassDefinition";
description = "Docs for NoClassDefinition";
arguments = "";signature = "IsNotLowercase( )";
title = "IsNotLowercase";
description = "Docs for IsNotLowercase";
arguments = "";signature = "HasNoFunction( )";
title = "HasNoFunction";
description = "Docs for HasNoFunction";
arguments = "";signature = "NoAnalyzerInsideWithProperty( )";
title = "NoAnalyzerInsideWithProperty";
description = "Docs for NoAnalyzerInsideWithProperty";
arguments = "";signature = "GoToImplements( )";
title = "GoToImplements";
description = "Docs for GoToImplements";
arguments = "";signature = "InIsNot( )";
title = "InIsNot";
description = "follows a link that is not the given value";
arguments = "";signature = "IsNotIgnored( )";
title = "IsNotIgnored";
description = "Check if the atom is not in one of the ignored directory.";
arguments = "";signature = "IsNotHash( )";
title = "IsNotHash";
description = "Docs for IsNotHash";
arguments = "";signature = "IsLess( )";
title = "IsLess";
description = "Docs for IsLess";
arguments = "";signature = "HasNoClassTrait( )";
title = "HasNoClassTrait";
description = "Checks that the current atom is not inside a class (anonymous or not), or a trait.";
arguments = "";signature = "NoCodeInside( )";
title = "NoCodeInside";
description = "Docs for NoCodeInside";
arguments = "";signature = "GoToCurrentScope( )";
title = "GoToCurrentScope";
description = "Docs for GoToCurrentScope";
arguments = "";signature = "IsNullable( )";
title = "IsNullable";
description = "Checks that a typehint include the Null type. ";
arguments = "";signature = "HasInterface( )";
title = "HasInterface";
description = "Checks that the current atom is in an interface.";
arguments = "";signature = "RegexIsNot( )";
title = "RegexIsNot";
description = "apply a regex on the property , and checks that is fails";
arguments = "";signature = "InitVariable( )";
title = "InitVariable";
description = "Docs for InitVariable";
arguments = "";signature = "HasNoChildren( )";
title = "HasNoChildren";
description = "Docs for HasNoChildren";
arguments = "";signature = "NextSiblings( )";
title = "NextSiblings";
description = "Docs for NextSiblings";
arguments = "";signature = "Range( )";
title = "Range";
description = "Limit the results to the values ranking from a-th to b-th.";
arguments = "a, b";signature = "AtomInsideWithCall( )";
title = "AtomInsideWithCall";
description = "Searches for a method call inside the current atom.";
arguments = "A fullnspath, as a string or an array of strings.";signature = "SetProperty( )";
title = "SetProperty";
description = "Docs for SetProperty";
arguments = "";signature = "HasNoIn( )";
title = "HasNoIn";
description = "checks if the current atom has no incoming link with a name";
arguments = "";signature = "AtomInside( )";
title = "AtomInside";
description = "searches for all atom  inside the current one, by searching every outgoing links";
arguments = "";signature = "HasClass( )";
title = "HasClass";
description = "Checks that the current atom is in a class, or an anonymous class.";
arguments = "";signature = "GoToExpression( )";
title = "GoToExpression";
description = "Docs for GoToExpression";
arguments = "";signature = "GoToTrait( )";
title = "GoToTrait";
description = "Docs for GoToTrait";
arguments = "";signature = "AtomInsideMoreThan( )";
title = "AtomInsideMoreThan";
description = "Docs for AtomInsideMoreThan";
arguments = "";signature = "HasNoCatch( )";
title = "HasNoCatch";
description = "Checks that the current atom is inside a catch block. The block has to be in the current scope.";
arguments = "";signature = "Select( )";
title = "Select";
description = "Extract an array of data from the query. select() takes a array with labels as keys and properties as values. ``select(array('first' => 'fullnspath'))``. This is closely related to ``select`` in Gremlin.";
arguments = "";signature = "SaveMethodNameAs( )";
title = "SaveMethodNameAs";
description = "Docs for SaveMethodNameAs";
arguments = "";signature = "HasClassInterface( )";
title = "HasClassInterface";
description = "Docs for HasClassInterface";
arguments = "";signature = "SameTypehintAs( )";
title = "SameTypehintAs";
description = "Checks if the provided typehint is equal to the current atom typehint.";
arguments = "";signature = "AtomInsideNoDefinition( )";
title = "AtomInsideNoDefinition";
description = "searches for all atom  inside the current one, by searching every outgoing links, but skips any definition, closure, class, interface, function, etc.";
arguments = "";signature = "PropertyIs( )";
title = "PropertyIs";
description = "Docs for PropertyIs";
arguments = "";signature = "HasNoNextSibling( )";
title = "HasNoNextSibling";
description = "Docs for HasNoNextSibling";
arguments = "";signature = "AnalyzerInside( )";
title = "AnalyzerInside";
description = "Find occurrences of results for the analyzers mentioned as argument, inside the current atom, or its children.";
arguments = "One or more analyzers, as string or array, to find.";signature = "GoToClassTrait( )";
title = "GoToClassTrait";
description = "Move the traverser to the class or trait of the current atom, if any. ";
arguments = "";signature = "HasIfthen( )";
title = "HasIfthen";
description = "Checks that the current atom is in an if/then/else structure.";
arguments = "";signature = "_As( )";
title = "_As";
description = "gives a unique name to the current atom. The query may come back to it with Back()";
arguments = "";signature = "HasNoParent( )";
title = "HasNoParent";
description = "Docs for HasNoParent";
arguments = "";signature = "AnalyzerInsideMoreThan( )";
title = "AnalyzerInsideMoreThan";
description = "Docs for AnalyzerInsideMoreThan";
arguments = "";signature = "IsReferencedArgument( )";
title = "IsReferencedArgument";
description = "Docs for IsReferencedArgument";
arguments = "";signature = "VariableIsAssigned( )";
title = "VariableIsAssigned";
description = "Docs for VariableIsAssigned";
arguments = "";signature = "CollectArguments( )";
title = "CollectArguments";
description = "Collect all arguments names, by their 'code' property, and store them in a variable (an array), named after the passed argument. Void arguments are skipped, and the final array may be empty, in case of no arguments.";
arguments = "The name of the variable where to store the list of arguments.";signature = "NoAtomInside( )";
title = "NoAtomInside";
description = "checks that the current atom has no  inside its links";
arguments = "";signature = "GoToClassInterface( )";
title = "GoToClassInterface";
description = "The traversal will go from the current atom to the first class or interface it find, upward. This may be a class, an anonymous class or an interface.";
arguments = "";signature = "CheckTypeWithAtom( )";
title = "CheckTypeWithAtom";
description = "Check if the current Atom is compatible with the provided scalar type. Scalar is in the full namespace path form : '\\\\int', '\\\\string', '\\\\void', ...";
arguments = "The scalar type to compare with.";signature = "IsMissingOrNull( )";
title = "IsMissingOrNull";
description = "Checks if the current atom has no explicit default value, and that value is not null.";
arguments = "";signature = "AtomInsideNoAnonymous( )";
title = "AtomInsideNoAnonymous";
description = "searches for all atom  inside the current one, by searching every outgoing links, but skips anonymous code like Closure and Classanonymous";
arguments = "";signature = "Filter( )";
title = "Filter";
description = "Docs for Filter";
arguments = "";signature = "Count( )";
title = "Count";
description = "Docs for Count";
arguments = "";signature = "IsArgument( )";
title = "IsArgument";
description = "checks if the current atom is an argument of a function or method call";
arguments = "";signature = "NextSibling( )";
title = "NextSibling";
description = "Docs for NextSibling";
arguments = "";signature = "GoToAllParentsTraits( )";
title = "GoToAllParentsTraits";
description = "Docs for GoToAllParentsTraits";
arguments = "";signature = "IsNotExtendingComposer( )";
title = "IsNotExtendingComposer";
description = "Docs for IsNotExtendingComposer";
arguments = "";signature = "HasAtomInside( )";
title = "HasAtomInside";
description = "Docs for HasAtomInside";
arguments = "";signature = "Command( )";
title = "Command";
description = "Docs for Command";
arguments = "";signature = "Implementing( )";
title = "Implementing";
description = "Docs for Implementing";
arguments = "";signature = "NoChildWithRank( )";
title = "NoChildWithRank";
description = "checks that the current atom has no children, after following the link , and checking for the rank ";
arguments = "";signature = "MakeVariableName( )";
title = "MakeVariableName";
description = "Docs for MakeVariableName";
arguments = "";signature = "DSLFactory( )";
title = "DSLFactory";
description = "Docs for DSLFactory";
arguments = "";signature = "IsNot( )";
title = "IsNot";
description = "checks if a property is present, and if its value is different from the given value";
arguments = "";signature = "GetVariable( )";
title = "GetVariable";
description = "Returns the requested query variables. Those variables are initialized with initVariable. ";
arguments = "A string, with the variable name, returns a single value. An array of variable names, as strings, returns a hash array.";signature = "NoFunctionInside( )";
title = "NoFunctionInside";
description = "Docs for NoFunctionInside";
arguments = "";signature = "CollectMethods( )";
title = "CollectMethods";
description = "Collect all methods names, by their lowercase 'lccode' property, and store them in a variable (an array), named after the passed argument.The final array may be empty, in case of no methods.";
arguments = "The name of the variable where to store the list of methods.";signature = "NoTraitDefinition( )";
title = "NoTraitDefinition";
description = "Docs for NoTraitDefinition";
arguments = "";signature = "IsReassigned( )";
title = "IsReassigned";
description = "Docs for IsReassigned";
arguments = "";signature = "GoToAllParents( )";
title = "GoToAllParents";
description = "Docs for GoToAllParents";
arguments = "";signature = "NoDelimiterIsNot( )";
title = "NoDelimiterIsNot";
description = "checks that the 'noDelimiter' property has not a given value ";
arguments = "";signature = "GoToAllTraits( )";
title = "GoToAllTraits";
description = "Docs for GoToAllTraits";
arguments = "";signature = "GoToTraits( )";
title = "GoToTraits";
description = "Docs for GoToTraits";
arguments = "";signature = "GetNameInFNP( )";
title = "GetNameInFNP";
description = "Docs for GetNameInFNP";
arguments = "";signature = "isThis( )";
title = "isThis";
description = "Checks that the current atom represent the current class. It may be ``$this``, but also a property or a variable with the same type.";
arguments = "";signature = "GoToAllElse( )";
title = "GoToAllElse";
description = "Docs for GoToAllElse";
arguments = "";signature = "GetStringLength( )";
title = "GetStringLength";
description = "Docs for GetStringLength";
arguments = "";signature = "AtomIsNot( )";
title = "AtomIsNot";
description = "checks that an atom is not a specified name";
arguments = "";signature = "InterfaceDefinition( )";
title = "InterfaceDefinition";
description = "Docs for InterfaceDefinition";
arguments = "";signature = "Extending( )";
title = "Extending";
description = "Docs for Extending";
arguments = "";signature = "FullcodeIs( )";
title = "FullcodeIs";
description = "Docs for FullcodeIs";
arguments = "";signature = "HasNoComparison( )";
title = "HasNoComparison";
description = "Docs for HasNoComparison";
arguments = "";signature = "IsMore( )";
title = "IsMore";
description = "Docs for IsMore";
arguments = "";signature = "AtomInsideExpression( )";
title = "AtomInsideExpression";
description = "Docs for AtomInsideExpression";
arguments = "";signature = "Optional( )";
title = "Optional";
description = "Apply the provided sub-query, only if the sub-query returns a valid value. When the subquery returns null, or fails, the current query stays in place. ";
arguments = "a sub-query, introduced with $this->side().";signature = "ReturnCount( )";
title = "ReturnCount";
description = "Docs for ReturnCount";
arguments = "";signature = "GoToNamespace( )";
title = "GoToNamespace";
description = "Docs for GoToNamespace";
arguments = "";signature = "GoToLoop( )";
title = "GoToLoop";
description = "Go from the current atom to the closest loop. A loop is a for(), foreach(), while() or do...while().";
arguments = "";signature = "HasInstruction( )";
title = "HasInstruction";
description = "Docs for HasInstruction";
arguments = "";signature = "SamePropertyAsArray( )";
title = "SamePropertyAsArray";
description = "Docs for SamePropertyAsArray";
arguments = "";signature = "IsUppercase( )";
title = "IsUppercase";
description = "Docs for IsUppercase";
arguments = "";signature = "OutWithoutLastRank( )";
title = "OutWithoutLastRank";
description = "Docs for OutWithoutLastRank";
arguments = "";signature = "TokenIsNot( )";
title = "TokenIsNot";
description = "checks that the current atom uses a different token than the token ";
arguments = "";signature = "OtherSiblings( )";
title = "OtherSiblings";
description = "Docs for OtherSiblings";
arguments = "";signature = "Property( )";
title = "Property";
description = "Docs for Property";
arguments = "";signature = "FunctioncallIsNot( )";
title = "FunctioncallIsNot";
description = "Docs for FunctioncallIsNot";
arguments = "";signature = "FullcodeInside( )";
title = "FullcodeInside";
description = "Docs for FullcodeInside";
arguments = "";signature = "IsVisible( )";
title = "IsVisible";
description = "Checks that the visibility of the current property or method. The visibility may be compared ABOVE or BELOW.";
arguments = "";signature = "IsEqual( )";
title = "IsEqual";
description = "Docs for IsEqual";
arguments = "";signature = "Is( )";
title = "Is";
description = "checks that the property  has the value ";
arguments = "";signature = "HasTryCatch( )";
title = "HasTryCatch";
description = "Check that the current atom is inside a try/catch structure. This means a try block, a catch block or a finally block.";
arguments = "";signature = "NotSamePropertyAs( )";
title = "NotSamePropertyAs";
description = "Docs for NotSamePropertyAs";
arguments = "";signature = "HasNoDefinition( )";
title = "HasNoDefinition";
description = "Docs for HasNoDefinition";
arguments = "";signature = "GoToClassInterfaceTrait( )";
title = "GoToClassInterfaceTrait";
description = "Move the traverser to the class, trait or interface of the current atom, if any. ";
arguments = "";signature = "AnalyzerIs( )";
title = "AnalyzerIs";
description = "checks that the current atom satisfy the analyzer ";
arguments = "";signature = "HasChildren( )";
title = "HasChildren";
description = "Docs for HasChildren";
arguments = "";signature = "HasNoConstantDefinition( )";
title = "HasNoConstantDefinition";
description = "Docs for HasNoConstantDefinition";
arguments = "";signature = "HasNoInstruction( )";
title = "HasNoInstruction";
description = "Docs for HasNoInstruction";
arguments = "";signature = "IsNotLiteral( )";
title = "IsNotLiteral";
description = "Docs for IsNotLiteral";
arguments = "";signature = "FunctioncallIs( )";
title = "FunctioncallIs";
description = "Docs for FunctioncallIs";
arguments = "";signature = "PreviousSibling( )";
title = "PreviousSibling";
description = "Docs for PreviousSibling";
arguments = "";signature = "OutIs( )";
title = "OutIs";
description = "follow an outgoing link";
arguments = "";signature = "NoUseDefinition( )";
title = "NoUseDefinition";
description = "Docs for NoUseDefinition";
arguments = "";signature = "InIsIE( )";
title = "InIsIE";
description = "follows a link if it is present, or stay put";
arguments = "";signature = "HasNoClassInterface( )";
title = "HasNoClassInterface";
description = "Checks that the current atom is not inside a class (anonymous or not), or an interface.";
arguments = "";signature = "NoFullcodeInside( )";
title = "NoFullcodeInside";
description = "Docs for NoFullcodeInside";
arguments = "";signature = "HasNoIfthen( )";
title = "HasNoIfthen";
description = "Checks that the current atom is not inside a if/then/else structure.";
arguments = "";signature = "FullnspathIs( )";
title = "FullnspathIs";
description = "Docs for FullnspathIs";
arguments = "";signature = "IsComplexExpression( )";
title = "IsComplexExpression";
description = "Docs for IsComplexExpression";
arguments = "";signature = "PreviousCalls( )";
title = "PreviousCalls";
description = "Find all calls to the current methods.";
arguments = "Argument is the number of previous calls to follow. 0 is no previous calls, 1 is one level of calling, 2 are calls that call the current method. ";signature = "HasParent( )";
title = "HasParent";
description = "Docs for HasParent";
arguments = "";signature = "HasLoop( )";
title = "HasLoop";
description = "This step checks that the current atom is inside a loop structure. A loop structure is a for, a foreach, a while or a do while structure.";
arguments = "";signature = "HasVariadicArgument( )";
title = "HasVariadicArgument";
description = "Docs for HasVariadicArgument";
arguments = "";signature = "CodeIsPositiveInteger( )";
title = "CodeIsPositiveInteger";
description = "Docs for CodeIsPositiveInteger";
arguments = "";signature = "FullcodeLength( )";
title = "FullcodeLength";
description = "Docs for FullcodeLength";
arguments = "";signature = "CollectTraits( )";
title = "CollectTraits";
description = "Collect all the used traits from the current class or anonymous class, into the 'variable'. This will be a list of traits.";
arguments = "variable";signature = "IsNotUppercase( )";
title = "IsNotUppercase";
description = "Docs for IsNotUppercase";
arguments = "";signature = "GoToInterface( )";
title = "GoToInterface";
description = "Docs for GoToInterface";
arguments = "";signature = "CodeIs( )";
title = "CodeIs";
description = "checks that the 'code' property has a given value";
arguments = "";signature = "IsNotInheritedMethod( )";
title = "IsNotInheritedMethod";
description = "Docs for IsNotInheritedMethod";
arguments = "";signature = "PropertyIsNot( )";
title = "PropertyIsNot";
description = "Docs for PropertyIsNot";
arguments = "";signature = "OutIsIE( )";
title = "OutIsIE";
description = "follow an outgoing link if it is present, and stay put otherwise";
arguments = "";signature = "Trim( )";
title = "Trim";
description = "Trim the content of the provided variable with the chars in the second argument. The trim is a left trim, and the default trimmed values are single quotes and double quotes.";
arguments = "variable name, chars to trim";signature = "HasTraitDefinition( )";
title = "HasTraitDefinition";
description = "Docs for HasTraitDefinition";
arguments = "";signature = "CodeLength( )";
title = "CodeLength";
description = "report the length of the string that represents the code";
arguments = "";signature = "FollowExpression( )";
title = "FollowExpression";
description = "Docs for FollowExpression";
arguments = "";signature = "IsPropertyDefined( )";
title = "IsPropertyDefined";
description = "Checks if the current property as an explicit definition. Exakat assign virtual definitions for every properties, when no definition has been found.";
arguments = "";signature = "HasNoInterface( )";
title = "HasNoInterface";
description = "This step checks that the current atom is inside an interface or not.";
arguments = "";signature = "FetchContext( )";
title = "FetchContext";
description = "Docs for FetchContext";
arguments = "";signature = "GoToArray( )";
title = "GoToArray";
description = "Docs for GoToArray";
arguments = "";signature = "HasClassTrait( )";
title = "HasClassTrait";
description = "Docs for HasClassTrait";
arguments = "";signature = "SaveOutAs( )";
title = "SaveOutAs";
description = "Docs for SaveOutAs";
arguments = "";signature = "NotExtending( )";
title = "NotExtending";
description = "Docs for NotExtending";
arguments = "";signature = "AddEFrom( )";
title = "AddEFrom";
description = "adds a link between the current atom from the atom called  (see _As())";
arguments = "";signature = "Unique( )";
title = "Unique";
description = "Docs for Unique";
arguments = "";signature = "PreviousSiblings( )";
title = "PreviousSiblings";
description = "Docs for PreviousSiblings";
arguments = "";signature = "IsNotNullable( )";
title = "IsNotNullable";
description = "Checks that a typehint doesn't include the Null type. ";
arguments = "";signature = "GroupCount( )";
title = "GroupCount";
description = "Docs for GroupCount";
arguments = "";signature = "FunctionInside( )";
title = "FunctionInside";
description = "Docs for FunctionInside";
arguments = "";signature = "CollectVariables( )";
title = "CollectVariables";
description = "Docs for CollectVariables";
arguments = "";signature = "CollectImplements( )";
title = "CollectImplements";
description = "Docs for CollectImplements";
arguments = "";signature = "HasPropertyInside( )";
title = "HasPropertyInside";
description = "Docs for HasPropertyInside";
arguments = "";signature = "HasFunctionDefinition( )";
title = "HasFunctionDefinition";
description = "Docs for HasFunctionDefinition";
arguments = "";signature = "AtomIs( )";
title = "AtomIs";
description = "checks that an atom has a specified name";
arguments = "";signature = "HasNoUsage( )";
title = "HasNoUsage";
description = "Docs for HasNoUsage";
arguments = "";signature = "GoToAllChildren( )";
title = "GoToAllChildren";
description = "Docs for GoToAllChildren";
arguments = "";signature = "NotSameTypehintAs( )";
title = "NotSameTypehintAs";
description = "Checks if the provided typehint is different from the current atom typehint.";
arguments = "";signature = "IsHash( )";
title = "IsHash";
description = "Docs for IsHash";
arguments = "";signature = "GoToLiteralValue( )";
title = "GoToLiteralValue";
description = "Docs for GoToLiteralValue";
arguments = "";signature = "HasNoVariadicArgument( )";
title = "HasNoVariadicArgument";
description = "checks if any argument uses the variadic operator ";
arguments = "";signature = "HasNoLoop( )";
title = "HasNoLoop";
description = "Checks that the current atom is not inside a loop : foreach(), while, do...while, for. ";
arguments = "";signature = "Raw( )";
title = "Raw";
description = "Runs a raw gremlin query. The query shall be a step, without any '.' before or after.";
arguments = "gremlin code";signature = "FunctionDefinition( )";
title = "FunctionDefinition";
description = "Docs for FunctionDefinition";
arguments = "";signature = "RegexIs( )";
title = "RegexIs";
description = "apply a regex on the property ";
arguments = "";signature = "HasFunction( )";
title = "HasFunction";
description = "Docs for HasFunction";
arguments = "";signature = "GroupFilter( )";
title = "GroupFilter";
description = "Docs for GroupFilter";
arguments = "";signature = "NoDelimiterIs( )";
title = "NoDelimiterIs";
description = "checks that the 'noDelimiter' property has a given value ";
arguments = "";signature = "AnalyzerIsNot( )";
title = "AnalyzerIsNot";
description = "checks that the current atom doesn't satisfy the analyzer ";
arguments = "";signature = "IsNotMixedcase( )";
title = "IsNotMixedcase";
description = "Docs for IsNotMixedcase";
arguments = "";signature = "Side( )";
title = "Side";
description = "Docs for Side";
arguments = "";signature = "Dedup( )";
title = "Dedup";
description = "Docs for Dedup";
arguments = "";signature = "HasIn( )";
title = "HasIn";
description = "checks if the current atom has an incoming link with a name";
arguments = "";signature = "FollowAlias( )";
title = "FollowAlias";
description = "Follow the tracks of the current variable. ";
arguments = "number of hops while following the track of the variable. 0 means no following. Set a large value to for infinite tracking. Be aware of the computation time.";signature = "HasNoNamedInstruction( )";
title = "HasNoNamedInstruction";
description = "Docs for HasNoNamedInstruction";
arguments = "";signature = "NoInterfaceDefinition( )";
title = "NoInterfaceDefinition";
description = "Docs for NoInterfaceDefinition";
arguments = "";signature = "Values( )";
title = "Values";
description = "Docs for Values";
arguments = "";signature = "IsNotPropertyDefined( )";
title = "IsNotPropertyDefined";
description = "Checks if the current property as no explicit definition. Exakat assign virtual definitions for every properties, when no definition has been found.";
arguments = "";signature = "HasNoOut( )";
title = "HasNoOut";
description = "checks if the current atom has no outgoing link with a name";
arguments = "";signature = "NoAtomWithoutPropertyInside( )";
title = "NoAtomWithoutPropertyInside";
description = "Checks that no atom, located below the current one, contains the property mentionned.";
arguments = "property";signature = "IsGlobalCode( )";
title = "IsGlobalCode";
description = "Docs for IsGlobalCode";
arguments = "";signature = "NoAnalyzerInside( )";
title = "NoAnalyzerInside";
description = "Docs for NoAnalyzerInside";
arguments = "";signature = "NoAtomPropertyInside( )";
title = "NoAtomPropertyInside";
description = "Docs for NoAtomPropertyInside";
arguments = "";signature = "IsNotEmptyBody( )";
title = "IsNotEmptyBody";
description = "Docs for IsNotEmptyBody";
arguments = "";signature = "TokenIs( )";
title = "TokenIs";
description = "checks that the current atom uses the token ";
arguments = "";signature = "HasInterfaceDefinition( )";
title = "HasInterfaceDefinition";
description = "Docs for HasInterfaceDefinition";
arguments = "";signature = "OutIsNot( )";
title = "OutIsNot";
description = "follow an outgoing link if it is not the given value";
arguments = "";signature = "GoToParent( )";
title = "GoToParent";
description = "Docs for GoToParent";
arguments = "";signature = "InIs( )";
title = "InIs";
description = "follows the link to the parent atom";
arguments = "";signature = "IsLocalClass( )";
title = "IsLocalClass";
description = "Docs for IsLocalClass";
arguments = "";signature = "HasNoClassInterfaceTrait( )";
title = "HasNoClassInterfaceTrait";
description = "Checks that the current atom is not inside a class (anonymous or not), an interface or a trait.";
arguments = "";signature = "HasClassDefinition( )";
title = "HasClassDefinition";
description = "Docs for HasClassDefinition";
arguments = "";signature = "IsUsed( )";
title = "IsUsed";
description = "Docs for IsUsed";
arguments = "";signature = "OutWithRank( )";
title = "OutWithRank";
description = "follow an outgoing link to the given rank";
arguments = "";signature = "HasNextSibling( )";
title = "HasNextSibling";
description = "Docs for HasNextSibling";
arguments = "";signature = "HasConstantDefinition( )";
title = "HasConstantDefinition";
description = "Docs for HasConstantDefinition";
arguments = "";signature = "HasChildWithRank( )";
title = "HasChildWithRank";
description = "Docs for HasChildWithRank";
arguments = "";signature = "GoToExtends( )";
title = "GoToExtends";
description = "Docs for GoToExtends";
arguments = "";signature = "Has( )";
title = "Has";
description = "checks if a property  is available for the current atom ";
arguments = "";signature = "ClassDefinition( )";
title = "ClassDefinition";
description = "moves the query to the classDefinition, if it exists";
arguments = "";signature = "GoToFunction( )";
title = "GoToFunction";
description = "Docs for GoToFunction";
arguments = "";signature = "HasNo( )";
title = "HasNo";
description = "Docs for HasNo";
arguments = "";signature = "GoToClass( )";
title = "GoToClass";
description = "Docs for GoToClass";
arguments = "";signature = "HasTrait( )";
title = "HasTrait";
description = "Checks that the current atom is in an trait.";
arguments = "";signature = "HasNoTryCatch( )";
title = "HasNoTryCatch";
description = "Check if the current atom is inside a try catch structure, in the current context.";
arguments = "";signature = "SamePropertyAs( )";
title = "SamePropertyAs";
description = "Docs for SamePropertyAs";
arguments = "";signature = "IsNotLocalClass( )";
title = "IsNotLocalClass";
description = "Docs for IsNotLocalClass";
arguments = "";signature = "CollectExtends( )";
title = "CollectExtends";
description = "Docs for CollectExtends";
arguments = "";signature = "HasOut( )";
title = "HasOut";
description = "checks if the current atom has no outgoing link with a name";
arguments = "";signature = "FullnspathIsNot( )";
title = "FullnspathIsNot";
description = "Docs for FullnspathIsNot";
arguments = "";signature = "AtomInsideNoBlock( )";
title = "AtomInsideNoBlock";
description = "searches for all atom  inside the current one, by searching every outgoing links, but skips blocks";
arguments = "";signature = "AtomFunctionIs( )";
title = "AtomFunctionIs";
description = "checks that the current atom is a Functioncall with the name ";
arguments = "";signature = "IsNotEmptyArray( )";
title = "IsNotEmptyArray";
description = "Docs for IsNotEmptyArray";
arguments = "";signature = "IsLowercase( )";
title = "IsLowercase";
description = "Docs for IsLowercase";
arguments = "";signature = "GoToInstruction( )";
title = "GoToInstruction";
description = "Docs for GoToInstruction";
arguments = "";signature = "GoToFirstExpression( )";
title = "GoToFirstExpression";
description = "Docs for GoToFirstExpression";
arguments = "";signature = "FollowParAs( )";
title = "FollowParAs";
description = "Follow links while skipping parenthesis, assignations, ternary and coalese operators, as they do not provide any meaning there. This step was initially called 'Follow Parenthesis Assignations'. The links provided are followed as long as they match the provided ones in argument, or the 4 atoms mentioned previously. Ternary and Coalesce are followed in all their branches.";
arguments = "";signature = "HasNoFunctionDefinition( )";
title = "HasNoFunctionDefinition";
description = "Docs for HasNoFunctionDefinition";
arguments = "";signature = "VariableIsRead( )";
title = "VariableIsRead";
description = "Docs for VariableIsRead";
arguments = "";signature = "GoToAllImplements( )";
title = "GoToAllImplements";
description = "Docs for GoToAllImplements";
arguments = "";signature = "NotImplementing( )";
title = "NotImplementing";
description = "Docs for NotImplementing";
arguments = "";signature = "IsNotArgument( )";
title = "IsNotArgument";
description = "checks if an atom is not the argument of a functioncall";
arguments = "";signature = "HasNoCountedInstruction( )";
title = "HasNoCountedInstruction";
description = "Docs for HasNoCountedInstruction";
arguments = "";signature = "IsLiteral( )";
title = "IsLiteral";
description = "checks if an atom is a literal value";
arguments = "";signature = "FullcodeVariableIs( )";
title = "FullcodeVariableIs";
description = "Docs for FullcodeVariableIs";
arguments = "";signature = "HasNoTrait( )";
title = "HasNoTrait";
description = "Checks that the current atom is not inside a trait.";
arguments = "";signature = "Ignore( )";
title = "Ignore";
description = "Docs for Ignore";
arguments = "";signature = "GoToFile( )";
title = "GoToFile";
description = "Move the traverser to the file of the current atom. ";
arguments = "";name = "Used Interfaces";
description = "Interfaces used in the code. 

<?php

interface used {}

// Used by implementation
class c implements used {}

// Used by extension
interface j implements used {}

$x = new c;

// Used in a instanceof
var_dump($x instanceof used); 

// Used in a typehint
function foo(Used $x) {}

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Interfaces Is Not Implemented";
description = "Classes that implements interfaces must implements each of the interface's methods. 


";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.5";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Implements all the methods from the interfaces"
modifications[] = "Remove the class"
modifications[] = "Make the class abstract"
modifications[] = "Make the missing methods abstract"

; A PHP error that may be emitted by the target faulty code
phpError[] = "Class x contains 2 abstract methods and must therefore be declared abstract or implement the remaining methods (x::m1, x::m2)"
name = "Unused Interfaces";
description = "Those interfaces are defined and never used. They should be removed, as they are dead code.

Interfaces may be use as parent for other interfaces, as typehint (argument, return and property), in instance of.

<?php

interface used {}
interface unused {}

// Used by implementation
class c implements used {}

// Used by extension
interface j implements used {}

$x = new c;

// Used in a instanceof
var_dump($x instanceof used); 

// Used in a typehint
function foo(Used $x) {}

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Remove the interface"
modifications[] = "Actually use the interface"

[example1]
project="Tine20"
file="tine20/Tinebase/User/LdapPlugin/Interface.php"
line="20"
code="interface Tinebase_User_LdapPlugin_Interface {

//----------
// in tine20/Tinebase/User/ActiveDirectory.php
/** @var Tinebase_User_LdapPlugin_Interface $plugin */
";
explain="Tinebase_User_LdapPlugin_Interface is mentioned as a type for a property, in a php doc document. Typehinted properties are available since PHP 7.4"
name = "PHP Interfaces";
description = "List of PHP interfaces being used in the code.

<?php

// Countable is a PHP native interface
class Enumeration extends Countable {
    function count() { return 1; }
}

?>


";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Possible Interfaces";
description = "This analyzer lists classese that may be a base to create interfaces. 

Currently, only classes with more than 1 method are used, and interfaces are considered when at least 2 methods are common.

Signature and method options are not taken into account.

<?php

class a {
    function m1 () {}
    function m2 () {}
    function m3 () {}
}

class b {
    function m1 () {}
    function m2 () {}
    function m4 () {}
}

// This class has not enough shared methods with other classes
class c {
    function m1 () {}
    function m4 () {}
    function m5 () {}
}

?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "2.0.6";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Add those interfaces, and use the `implements` keyword in the mentionned classes."

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Cant Implement Traversable";
description = "It is not possible to implement the ``Traversable``interface. The alternative is to implement ``Iterator`` or ``IteratorAggregate``.

``Traversable`` may be useful when used with ``instanceof``.

<?php

// This lints, but doesn't run
class x implements Traversable {

}

if( $argument instanceof Traversable ) {
    // doSomething
}

?>

See also `Traversable <https://www.php.net/manual/en/class.traversable.php>`_,
         `Iterator <https://www.php.net/manual/en/class.iterator.php>`_ and
         `IteratorAggregate <https://www.php.net/manual/en/class.iteratoraggregate.php>`_..

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.8";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Implement Iterator or IteratorAggregate"

; A PHP error that may be emitted by the target faulty code
phpError[] = "Class x must implement interface Traversable as part of either Iterator or IteratorAggregate"
phpError[] = "Class b cannot implement previously implemented interface i"


name = "Interfaces Glossary";
description = "List of all the defined interfaces in the code.

<?php

// interfaceName is reported
interface interfaceName {
    function interfaceMethod() ; 
}
?>
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Interface Methods";
description = "List the names of the methods in an interface.

<?php

interface i {
    // This is an interface method name
    function foo() ;
}

?>
 ";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Useless Interfaces";
description = "The interfaces below are defined and are implemented by some classes. 

However, they are never used to enforce an object's class in the code, using instanceof or in a typehint. 
As they are currently used, those interfaces may be removed without change in behavior.

<?php
    // only defined interface but never enforced
    interface i {};
    class c implements i {} 
?>

Interfaces should be used in Typehint or with the instanceof operator. 

<?php
    interface i {};
    
    function foo(i $arg) { 
        // Now, $arg is always an 'i'
    }
    
    function bar($arg) { 
        if (!($arg instanceof i)) {
            // Now, $arg is always an 'i'
        }
    }
?>

";
clearphp = "no-useless-interfaces";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Use the interface with instanceof, or a typehint"
modifications[] = "Drop the interface altogether : both definition and implements keyword"

[example1]
project="Woocommerce"
file="includes/interfaces/class-wc-order-item-data-store-interface.php"
line="20"
code="interface WC_Order_Item_Data_Store_Interface {


//////// 
//includes/data-stores/class-wc-order-item-data-store.php

class WC_Order_Item_Data_Store implements WC_Order_Item_Data_Store_Interface {
";
explain="WC_Order_Item_Data_Store_Interface is used to structure the class WC_Order_Item_Data_Store. It is not used anywhere else."
name = "No Garantee For Property Constant";
description = "When using an interface as a typehint, properties are not necessarily available.

An interface is a template for a class, which specify the minimum amount of methods and constants. Properties are never defined in an interface, an should not be relied upon.

<?php

interface i {
    function m () ;
}

class x implements i {
    public $p = 1;
    
    function m() {
        return $this->p;
    }
}

function foo(i $i, x $x) {
    // this is invalid, as $p is not defined in i, so it may be not available
    echo $i->p;
    
    // this is valid, as $p is defined in $x
    echo $x->p;
}

?>

";
clearphp = "";
severity = "S_MINOR";
; from : S_NONE, S_MINOR, S_MAJOR, S_CRITICAL
timetofix = "T_QUICK";
; from : T_INSTANT, T_QUICK, T_SLOW
exakatSince = "1.9.5";

; Alternative to make this code go away. 
; One by possible solution
modifications[] = "Use classes for typehint when properties are accessed"
modifications[] = "Only use methods and constants which are available in the interface"

; A PHP error that may be emitted by the target faulty code
;phpError[] = ""
name = "Undefined Interfaces";
description = "Some typehints or ``instanceof`` that are relying on undefined interfaces or classes. They will always return false. Any condition based upon them are dead code.

<?php

class var implements undefinedInterface {
    // If undefinedInterface is undefined, this code lints but doesn't run
}

if ($o instanceof undefinedInterface) {
    // This is silent dead code
}

function foo(undefinedInterface $a) {
    // This is dead code
    // it will probably be discovered at execution
}

?>

See also `Object interfaces <http://php.net/manual/en/language.oop5.interfaces.php>`_,
         `Type declarations <http://php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration>`_, and 
         `Instanceof <http://php.net/manual/en/language.operators.type.php>`_.
";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_QUICK";
exakatSince = "0.8.4";

modifications[] = "Implement the missing interfaces"
modifications[] = "Remove the code governed by the missing interface : the whole method if it is an typehint, the whole if/then if it is a condition."

[example1]
project="xataface"
file="Dataface/Error.php"
line="112"
code="	public static function isError($obj){
		if ( !PEAR::isError($obj) and !($obj instanceof Exception_) ) return false;
		return ($obj->getCode() >= DATAFACE_E_ERROR);
	}
";
explain="Exception seems to be a typo, and leads to an always-true expression."
name = "Forgotten Interface";
description = "The following classes have been found implementing an interface's methods, though it doesn't explicitly implements this interface. This may have been forgotten.

<?php

interface i {
    function i(); 
}

// i is not implemented and declared
class foo {
    function i() {}
    function j() {}
}

// i is implemented and declared
class foo implements i {
    function i() {}
    function j() {}
}

?>

See also Traits/CouldUseTrait.

 ";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_QUICK";
exakatSince = "0.11.7";

modifications[] = "Mention interfaces explicitly whenever possible"name = "Avoid Self In Interface";
description = "Self and Parent are tricky when used in an interface. 

``self`` refers to the current interface or its extended parents : as long as the constant is defined in the interface family, this is valid.  On the other hand, when ``self`` refers to the current class, the resolution of names will happen at execution time, leading to confusing results. 

``parent`` has the same behavior than ``self``, except that it doesn't accept to be used inside an interface, as it will yield an error. This is one of those error that lint but won't execute in certain conditions.

``Static`` can't be used in an interface, as it needs to be resolved at call time anyway.

<?php

interface i extends ii {
    // This 'self' is valid : it refers to the interface i
    public const I = self::I2 + 2;

    // This 'self' is also valid, as it refers to interface ii, which is a part of interface i
    public const I2 = self::IP + 4; 

    // This makes interface i dependant on the host class
    public const I3 = parent::A;
}

?>

See also `Scope Resolution Operator (::) <http://php.net/manual/en/language.oop5.paamayim-nekudotayim.php>`_.
";
clearphp = "";
severity = "S_CRITICAL";
timetofix = "T_SLOW";
exakatSince = "1.5.4";
modifications[] = "Use a fully qualified namespace instead of self"
modifications[] = "Use a locally defined constant, so self is a valid reference"
phpError[] = "Cannot access parent:: when current class scope has no parent";
phpError[] = "Undefined class constant";

name = "Is An Extension Interface";
description = "This is an interface defined in a PHP C extension.

<?php

// MyInterface is not recognized as an extension interface
function foo ( MyInterface $a) {
    // \ArrayAccess is recognized as a native PHP extension
    if ($a instanceof \ArrayAccess) {
        // doSomething()
    }
}

?>

";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Interfaces Usage";
description = "List of used interfaces.

Interfaces are used when mentioned in a class or another interface, with implements keyword; they are used in instanceof expression, in typehints and class constant.

<?php

// interface definition
interface i {
    const I = 2;
}

// interface extension 
interface i2 extends i {}

// interface implementation 
class foo implements i {}

$foo = new foo();

var_dump($foo instanceof i);

function bar( i $arg) { }
bar($foo);

// in class constant
echo i::I;

?>
";
clearphp = "";
severity = "";
timetofix = "";
exakatSince = "0.8.4";
name = "Concrete Visibility";
description = "Methods that implements an interface in a class must be public. 

PHP does lint this, unless the interface and the class are in the same file. At execution, it stops immediately with a Fatal error : 'Access level to c::iPrivate() must be public (as in class i) ';

<?php

interface i {
    function iPrivate() ;
    function iProtected() ;
    function iPublic() ;
}

class c implements i {
    // Methods that implements an interface in a class must be public.  
    private function iPrivate() {}
    protected function iProtected() {}
    public function iPublic() {}
}

?>

See also `Interfaces <http://php.net/manual/en/language.oop5.interfaces.php#language.oop5.interfaces>`_.

";
clearphp = "";
severity = "S_MAJOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

phpError[] = "Access level to c::iPrivate() must be public (as in class i) "

modifications[] = "Always set interface methods to public."

name = "Repeated Interface";
description = "A class should implements only once an interface. An interface can only extends once another interface. In both cases, parent classes or interfaces must be checked.

PHP accepts multiple times the same interface in the ``implements`` clause. In fact, it doesn't do anything beyond the first implement. 

<?php

use i as j;

interface i {}

// Multiple ways to reference an interface
class foo implements i, \i, j {}

// This applies to interfaces too
interface bar extends i, \i, j {}

?>

This code may compile, but won't execute.

See also `Object Interfaces <http://php.net/manual/en/language.oop5.interfaces.php>`_ and 
         `The Basics <http://php.net/manual/en/language.oop5.basic.php>`_.
";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "1.4.9";

modifications[] = "Remove the interface usage at the lowest class or interface"

phpError[] = "Class b cannot implement previously implemented interface i"
name = "Empty Interfaces";
description = "Empty interfaces are a code smell. Interfaces should contains at least a method or a constant, and not be totally empty.

<?php

// an empty interface
interface empty {}

// an normal interface
interface normal {
    public function i() ;
}

// a constants interface
interface constantsOnly {
    const FOO = 1;
}

?>

See also `Empty interfaces are bad practice <https://r.je/empty-interfaces-bad-practice.html>`_ and `Blog : Are empty interfaces code smell? <https://hackernoon.com/are-interfaces-code-smell-bd19abc266d3>`_.

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Remove the interface"
modifications[] = "Add some methods or constants to the interface"name = "Already Parents Interface";
description = "The same interface is implemented by a class and one of its children. 

That way, the child doesn't need to implement the interface, nor define its methods to be an instance of the interface. 

<?php

interface i { 
    function i();
}

class A implements i {
    function i() {
        return __METHOD__;
    }
}

// This implements is useless. 
class AB extends A implements i {
    // No definition for function i()
}

// Implements i is understated
class AB extends A {
    // redefinition of the i method
    function i() {
        return __METHOD__.' ';
    }
}

$x = new AB;
var_dump($x instanceof i);
// true

$x = new AC;
var_dump($x instanceof i);
// true

?>

";
clearphp = "";
severity = "S_MINOR";
timetofix = "T_INSTANT";
exakatSince = "0.8.4";

modifications[] = "Keep the implements call in the class that do implements the methods. Remove it from the children classes."

[example1]
project="WordPress"
file="src/Phinx/Db/Adapter/AbstractAdapter.php"
line="41"
code="/**
 * Base Abstract Database Adapter.
 */
abstract class AbstractAdapter implements AdapterInterface
{

/// In the src/src/Phinx/Db/Adapter/SqlServerAdapter.php, line 45
/**
 * Phinx SqlServer Adapter.
 *
 */
class SqlServerAdapter extends PdoAdapter implements AdapterInterface
{


";
explain="SqlServerAdapter extends PdoAdapter, PdoAdapter extends AbstractAdapter. The first and the last both implements AdapterInterface. Only one is needed."

[example2]
project="Thelia"
file="core/lib/Thelia/Core/Template/Loop/BaseSpecificModule.php"
line="35"
code="abstract class BaseSpecificModule extends BaseI18nLoop implements PropelSearchLoopInterface

/* in file  core/lib/Thelia/Core/Template/Loop/Payment.php, line 28 */

class Payment extends BaseSpecificModule implements PropelSearchLoopInterface

";
explain="PropelSearchLoopInterface is implemented by both BaseSpecificModule and Payment";
name = "RadwellCode";
class = "RadwellCode";
depends[] = "";
mission = "The RadwellCode is a report based on Oliver Radwell's [PHP Do And Don't](https://blog.radwell.codes/2016/11/php-dos-donts-aka-programmers-dont-like/).";
examples[] = "report.radwellcode.txt";
description = "Note that all rules are not implemented, especially the 'coding conventions' ones, as this is beyond the scope of this tool.";
type = "Text";
audience[] = "developper";
themes[] = "RadwellCodes";
name = "PhpCompilation";
class = "PhpCompilation";
depends[] = "";
mission = "The PhpCompilation suggests a list of compilation directives when compiling the PHP binary, tailored for the code";
examples[] = "report.phpconfiguration.txt";
description = "PhpCompilation bases its selection on the code and its usage of features. PhpCompilation also recommends disabling unused standard extensions : this helps reducing the footprint of the binary, and prevents unused features to be available for intrusion. PhpCompilation is able to detects over 150 PHP extensions.";
type = "Text";
audience[] = "developper";
themes[] = "Appinfo";
name = "Inventories";
class = "Inventories";
depends[] = "";
mission = "The Inventories report collects literals and names from the code.";
examples[] = "report.inventories.txt";
description = "This report provides the value, the file and line where a type of value is present. 

The following values and names are inventoried : 

+ Variables
+ Incoming Variables
+ Session Variables
+ Global Variables
+ Date formats
+ Constants
+ Functions
+ Classes
+ Interface names
+ Trait names
+ Namespaces
+ Exceptions
+ Regex
+ SQL queries
+ URL
+ Unicode blocks
+ Integers
+ Reals numbers
+ Literal Arrays
+ Strings

Every type of values is exported to a file. If no value of such type was found during the audit, the file only contains the headers. It is always produced.
";
type = "CSV";
audience[] = "developper";
themes[] = "Inventories";
name = "Clustergrammer";
class = "Clustergrammer";
depends[] = "";
mission = "The Clustergrammar report format data for a clustergrammer diagram.";
examples[] = "report.clustergrammer.png";
description = "Clustergrammer is a visualisation tool that may be found online. After generation of this report, a TEXT file is available in the project directory. Upload it on [http://amp.pharm.mssm.edu/clustergrammer/](http://amp.pharm.mssm.edu/clustergrammer/) to visualize it. 

See a live report here : [Clustergrammer](http://amp.pharm.mssm.edu/clustergrammer/viz_sim_mats/5a8d41bf3a82d32a9dacddd9/clustergrammer.txt).";
type = "TEXT";
audience[] = "developper";
themes[] = "";
name = "Text";
class = "Text";
depends[] = "";
mission = "The Text report is a very simple text format.";
examples[] = "report.text.txt";
description = "The Text report displays one result per line, with the following format  : 

::
    
   /path/from/project/root/to/file:line[space]name of analysis
   
   
This format is fast, and fitted for machine communications.
";
type = "Text";
audience[] = "developper";
arbitrarylist = "1";
themes[] = "";
   Bud1            %                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 @                                              @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   E   %                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       DSDB                             `                                                     @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              name = "None";
class = "None";
depends[] = "";
examples[] = ;
mission = "None is the empty report. It runs the report generating stack, but doesn't produce any result. ";
description = "None is a utility report, aimed to test exakat's installation.";
type = "None";
audience[] = "developper";
themes[] = "Any";
name = "Uml";
class = "Uml";
depends[] = "";
mission = "The Uml exports data structure to UML format.";
examples[] = "report.uml.general.png";
examples[] = "report.uml.detail.png";
description = "This report produces a dot file with a representation of the classes used in the repository. 

Classes, interfaces and traits are represented, along with their constants, methods and properties. 

.dot files are best seen with [graphviz](http://www.graphviz.org/) : they are easily convert into PNG or PDF.";
type = "dot";
audience[] = "developper";
themes[] = "";
name = "Stubs";
class = "Stubs";
mission = "Stubs produces a skeleton from the source code, with all defined structures : constants, functions, classes, interfaces, traits and namespaces. ";
examples[] = "report.stubs.png";
description = "Stubs takes the original code, and export all defined structures (constants, functions, classes, interfaces, traits and namespaces) in a single and compilable PHP file.

This is convenient for tools that requires documentations for completion, such as IDE.

Constants are exported with their values, properties too. Methods hold their full signature. 

The resulting report is in one file, called `stubs.php`.";
type = "PHP";
name = "TypeChecks";
class = "TypeChecks";
depends[] = "";
mission = "The TypeChecks report focuses on reviewing typehint usage.";
examples[] = "report.typehint.txt";
description = "The TypeChecks report focuses on usage and good usage of typehints. 

It checks the presence of typehint, suggests possible type hinting, and check the systemic organisation of the types.
";
type = "HTML";
audience[] = "developper";
themes[] = "TypeChecks";
name = "PhpConfiguration";
class = "PhpConfiguration";
depends[] = "";
mission = "The PhpConfiguration suggests a list of directives to check when setting up the hosting server, tailored for the code";
examples[] = "report.phpconfiguration.txt";
description = "PhpConfiguration bases its selection on the code, and classic recommendations. For example, memory_limit or expose_php are always reported, though they have little impact in the code. Extensions also get a short list of important directive, and offer a link to the documentation for more documentation.";
type = "Text";
audience[] = "developper";
themes[] = "Appinfo";
name = "Yaml";
class = "Yaml";
depends[] = "";
mission = "The Yaml report exports in Yaml format.";
examples[] = "report.yaml.txt";
description = "Simple Yaml format. It is a structured array with all results, described as object.

::

    Filename => [
                    errors   => count,
                    warning  => count,
                    fixable  => count,
                    filename => string,
                    message  => [
                        line => [
                            type,
                            source,
                            severity,
                            fixable,
                            message
                        ]
                    ]
                ]

";
type = "Yaml";
audience[] = "developper";
arbitrarylist = "1";
themes[] = "";
name = "StubsJson";
class = "StubsJson";
depends[] = ;
mission = "StubsJson produces a complete description of definitions from the code.";
examples[] = "report.stubs.json.txt";
description = "The StubsJson report includes : 

+ Global variables
+ Functions
+ Constants
+ Classes
  + constants
  + properties
  + methods
+ Interfaces
  + constants
  + methods
+ Traits
  + properties
  + methods
    
";
type = "JSON";
name = "File dependendies HTML";
class = "Filedependencieshtml";
depends[] = "";
mission = "This reports displays the file dependencies, based on definition usages.";
examples[] = "report.filedependencieshtml.png";
description = "This report displays all dependencies between files. A file depends on another when it makes usage of one of its definitions : constant, functions, classes, traits, interfaces. 

For example, `A.php` depends on `B.php`, because `A.php` uses the function `foo`, which is defined in the `B.php` file. On the other hand, `B.php` doesn't depends on `A.php`, as a function may be defined, but not used. 

This diagram shows which files may be used without others.

The resulting diagram is in HTML file, which is readable with most browsers, from a web server. 

Warning : for browser security reasons, the report will NOT load as a local file. It needs to be served by an HTTP server, so all resources are correctly located.

Warning : large applications (> 1000 files) will require a lot of resources to open.

Another version of the same diagram is called Filedependencies, and produces a DOT file";
type = "HTML";
audience[] = "developper";
themes[] = "";
name = "Stats";
class = "Stats";
depends[] = "";
mission = "The Stats report collects various stats about the code.";
examples[] = "report.stats.txt";
description = "Stats reports PHP structures definition, like class, interfaces, variables, and also features, like operator, control flow instructions, etc.";
type = "JSON";
audience[] = "developper";
themes[] = "Stats";
name = "Composer";
class = "Composer";
depends[] = "";
mission = "The Composer report provide elements for the require attribute in the composer.json.";
examples[] = "report.composer.txt";
description = "It helps documenting the composer.json, by providing more information, extracted from the code.

This report makes a copy then updates the composer.json, if available. It creates a totally new composer.json if the latter is not available. 

It is recommended to review manually the results of the suggested composer.json before using it.
";
type = "JSON";
audience[] = "developper";
themes[] = "Appinfo";
name = "Ambassador";
class = "Ambassador";
depends[] = "PhpCompilation";
depends[] = "PhpConfiguration";
depends[] = "Stats";
mission = "Ambassador is the most complete Exakat report. It used to be the default report, until Exakat 1.7.0";
examples[] = "report.ambassador.png";
description = "The Ambassador report includes : 

+ Full configuration for the audit
+ Full documentation of the analysis
+ All results, searchable and browsable by file and analysis
+ Extra reports for 
    + Minor versions compatibility
    + PHP Directive usage
    + PHP compilation recommendations
    + Error messages list
    + List of processed files
    
";
type = "HTML";
audience[] = "developper";
audience[] = "team-lead";
audience[] = "manager";
themes[] = "CompatibilityPHP53";
themes[] = "CompatibilityPHP54";
themes[] = "CompatibilityPHP55";
themes[] = "CompatibilityPHP56";
themes[] = "CompatibilityPHP70";
themes[] = "CompatibilityPHP71";
themes[] = "CompatibilityPHP72";
themes[] = "CompatibilityPHP73";
themes[] = "CompatibilityPHP74";
themes[] = "CompatibilityPHP80";
themes[] = "Analyze";
themes[] = "Preferences";
themes[] = "Inventory";
themes[] = "Performances";
themes[] = "Appinfo";
themes[] = "Appcontent";
themes[] = "Dead code";
themes[] = "Security";
themes[] = "Suggestions";
themes[] = "Custom";
name = "History";
class = "History";
depends[] = "";
mission = "The History report collects meta information between audits. It saves the values from the current audit into a separate 'history.sqlite' database.";
examples[] = "";
description = "
The history tables are the same as the dump.sqlite tables, except for the extra 'serial' table. Each audit comes with 3 identifiers : 

+ 'dump_timestamp' : this is a timmestamp taken when the dump was build
+ 'dump_serial'    : this is a serial number, based on the previous audit, and incremented by one. This is handy to keep the values in sequence
+ 'dump_id'        : this is a unique random id, which helps distinguish audits which may have inconsistency between serial or timestamp.

This report provides a 'history.sqlite' database. The following tables are inventoried : 

+ hash 
+ resultsCounts
";
type = "Sqlite";
audience[] = "developper";
themes[] = "";
name = "Classes dependendies HTML";
class = "Classdependencies";
depends[] = "";
mission = "This reports displays the class dependencies, based on definition usages.";
examples[] = "report.classdependencies.png";
description = "This report displays all dependencies between classes, interfaces and traits. A class (or interface or trait) depends on another class (or interface or trait) when it makes usage of one of its definitions : extends, implements, use, and static calls. 

For example, `A` depends on `B`, because `A` extends `B`. 

The resulting diagram is in HTML file, which is readable with most browsers, from a web server. 

Warning : for browser security reasons, the report will NOT load as a local file. It needs to be served by an HTTP server, so all resources are correctly located.

Warning : large applications (> 1000 classes) will require a lot of resources to open.";
type = "HTML";
audience[] = "developper";
themes[] = "";
name = "Rector";
class = "Rector";
depends[] = "";
mission = "Suggest configuration for Rector refactoring tool.";
examples[] = "report.radwellcode.txt";
description = "The Rector report is a helper report for [Tomas Votruba](https://twitter.com/VotrubaT)'s [Rector](https://getrector.org/) tool.

Some issues spotted by Exakat may be fixed automagically by Rector. Rector offers more than 370 (and counting) rules, that may save countless hours of work. 

For example, [CombinedAssignRector](https://github.com/rectorphp/rector/blob/master/docs/AllRectorsOverview.md#combinedassignrector), simplifies ``$value = $value + 5`` into ``+$value += 5;``. On Exakat, the rule [Structures/CouldUseShortAssignation]((https://exakat.readthedocs.io/en/latest/Rules.html#could-use-short-assignation) spot those too.

Not all exakat rules are covered by Rector, and vice-versa. [CompactToVariablesRector](https://github.com/rectorphp/rector/blob/master/docs/AllRectorsOverview.md#compacttovariablesrector) aims à skipping usage of compact(), while [Structures/CouldUseCompact](https://exakat.readthedocs.io/en/latest/Rules.html#could-use-compact) suggest the contrary. 

Rector and Exakat both use different approaches to code review. It is recommended to review the changes before commiting them.

Check [Rector](https://getrector.org/) website, its [rector github](https://github.com/rectorphp/rector) repository, and [Tomas Votruba](https://twitter.com/VotrubaT) account.
";
type = "Text";
audience[] = "developper";
themes[] = "Rector";
name = "File dependendies";
class = "Filedependencies";
depends[] = "";
mission = "This reports displays the file dependencies, based on definition usages.";
examples[] = "report.filedependencies.png";
description = "This report displays all dependencies between files. A file depends on another when it makes usage of one of its definitions : constant, functions, classes, traits, interfaces. 

For example, `A.php` depends on `B.php`, because `A.php` uses the function `foo`, which is defined in the `B.php` file. On the other hand, `B.php` doesn't depends on `A.php`, as a function may be defined, but not used. 

This diagram shows which files may be used without others.

The resulting diagram is a DOT file, which is readable with [Graphviz](https://www.graphviz.org/about/). Those viewers will display the diagram, and also convert it to other format, such as PNG, JPEG, PDF or others.  

Another version of the same diagram is called Filedependencieshtml";
type = "DOT";
audience[] = "developper";
themes[] = "";
name = "PlantUml";
class = "Plantuml";
depends[] = "";
mission = "The PlantUml export data structure to PlantUml format.";
examples[] = "report.plantuml.png";
description = "This report produces a .puml file, compatible with [PlantUML](http://plantuml.com/).

PlantUML is an Open Source component that dislays class diagrams. 
";
type = "puml";
audience[] = "developper";
themes[] = "";
name = "Diplomat";
class = "Diplomat";
depends[] = "";
mission = "The Diplomat is the default human readable report.";
examples[] = "report.inventories.txt";
description = "The Diplomat report is the default report since Exakat 1.7.0. It is a light version of the Ambassador report, and uses a shorter list of analysis. ";
type = "HTML";
audience[] = "developper";
audience[] = "team-lead";
audience[] = "manager";
themes[] = "CompatibilityPHP53";
themes[] = "CompatibilityPHP54";
themes[] = "CompatibilityPHP55";
themes[] = "CompatibilityPHP56";
themes[] = "CompatibilityPHP70";
themes[] = "CompatibilityPHP71";
themes[] = "CompatibilityPHP72";
themes[] = "CompatibilityPHP73";
themes[] = "CompatibilityPHP74";
themes[] = "CompatibilityPHP80";
themes[] = "Top10";
themes[] = "Preferences";
themes[] = "Appinfo";
themes[] = "Appcontent";
themes[] = "Suggestions";
name = "Xml";
class = "Xml";
depends[] = "";
mission = "The Xml report exports in XML format.";
examples[] = "report.xml.txt";
description = "XML version of the reports. It uses the same format than PHP Code Sniffer to output the results. ";
type = "XML";
audience[] = "developper";
arbitrarylist = "1";
themes[] = "";
name = "Marmelab";
class = "Marmelab";
depends[] = "";
mission = "The Marmelab report format data to use with a graphQL server.";
examples[] = "";
description = "Marmelab is a report format to build GraphQL server with exakat's results. Export the results of the audit in this JSON file, then use the [json-graphql-server](https://github.com/marmelab/json-graphql-server) to have a GraphQL server with all the results.

You may also learn more about GraphQL at [Introducing Json GraphQL Server](https://marmelab.com/blog/2017/07/12/json-graphql-server.html).

::

    php exakat.phar report -p -format Marmelab -file marmelab
    cp projects/myproject/marmelab.json path/to/marmelab
    json-graphql-server db.json
    

";
type = "JSON";
audience[] = "developper";
themes[] = "Analyze";
name = "Phpcsfixer";
class = "Phpcsfixer";
depends[] = "";
mission = "The Phpcsfixer report provides a configuration file for php-cs-fixer, that automatically fixes issues found in related analysis in exakat.";
examples[] = "php_cs.json";
description = "This report builds a configuration file for php-cs-fixer. 


+ Php/IsnullVsEqualNull : **is_null**
+ Structures/ElseIfElseif : **elseif**
+ Structures/MultipleUnset : **combine_consecutive_unsets**
+ Classes/DontUnsetProperties: **no_unset_on_property**
+ Structures/UseConstant : **function_to_constant**
+ Structures/PHP7Dirname : **combine_nested_dirname**
+ Structures/CouldUseDir : **dir_constant**
+ Php/IssetMultipleArgs : **combine_consecutive_issets**
+ Php/LogicalInLetters : **logical_operators**
+ Structures/NotNot : **no_short_bool_cast**


`PHP-cs-fixer <https://github.com/FriendsOfPHP/PHP-CS-Fixer>`_ is a tool to automatically fix PHP Coding Standards issues. Some of the modifications are more than purely coding standards, such has replacing ``dirname(dirname($path))`` with ``dirname($path, 2)``. 

Exakat builds a configuration file for php-cs-fixer, that will automatically fix a number of results from the audit. Here is the process : 

+ Run exakat audit
+ Get Phpcsfixer report from exakat : ``php exakat.phar report -p <project> -format Phpcsfixer``
+ Update the target repository in the generated code
+ Save this new configuration in a file called '.php_cs'
+ Run php-cs-fixer on your code : ``php php-cs-fixer.phar fix /path/to/code --dry-run``
+ Fixed your code with php-cs-fixer : ``php php-cs-fixer.phar fix /path/to/code``
+ Run a new exakat audit

This configuration file should be reviewed before being used. In particular, the target files should be updated with the actual repository : this is the first part of the configuration. 

It is also recommended to use the option '--dry-run' with php-cs-fixer to check the first run. 

Php-cs-fixer runs fixes for coding standards : this reports focuses on potential fixes. It is recommended to complete this base report with extra coding conventions fixes. The building of a coding convention is outside the scope of this report. 

Exakat may find different issues than php-cs-fixer : using this report reduces the number of reported issues, but may leave some issues unsolved. In that case, manual fixing is recommended.
";
type = "JSON";
audience[] = "developper";
themes[] = "php-cs-fixable";
name = "ClassReview";
class = "ClassReview";
depends[] = "";
mission = "The ClassReview report focuses on reviewing classes, traits and interfaces.";
examples[] = "report.classreview.txt";
description = "The ClassReview report focuses on good code hygiene for classes, interfaces and traits. 

It checks the internal structure of classes, and suggest visibility, typehint updates.
";
type = "HTML";
audience[] = "developper";
themes[] = "ClassReview";
name = "Owasp";
class = "Owasp";
depends[] = "";
mission = "The OWASP report is a security report.";
examples[] = "report.owasp.png";
description = "The OWASP report focuses on the [OWASP top 10](https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project). It reports all the security analysis, distributed across the 10 categories of vulnerabilities.";
type = "HTML";
audience[] = "developper";
audience[] = "team-lead";
audience[] = "manager";
themes[] = "Security";
name = "Meters";
class = "Meters";
depends[] = "";
mission = "The Meters report export various dimensions of the audited code.";
examples[] = "";
description = "Exakat measures a large number of code dimensions, such as number of files, lines of code, tokens. All those are collected in this report.

::

{
	"loc": 95950,
	"locTotal": 140260,
	"files": 1824,
	"tokens": 677213
}

";
type = "JSON";
audience[] = "developper";
themes[] = "None";
name = "Sarb";
class = "Sarb";
depends[] = "";
mission = "The Sarb report is a compatibility report with SARB";
examples[] = "report.exakat.sarb.txt";
description = "`SARB <https://github.com/DaveLiddament/sarb>`_ is the Static Analysis Results Baseliner. SARB is used to create a baseline of these results. As work on the project progresses SARB can takes the latest static analysis results, removes those issues in the baseline and report the issues raised since the baseline. SARB does this, in conjunction with git, by tracking lines of code between commits. SARB is the brainchild of `Dave Liddament <https://twitter.com/DaveLiddament>`_. 

";
type = "Json";
audience[] = "developper";
arbitrarylist = "1";
themes[] = "";
name = "BeautyCanon";
class = "Beautycanon";
depends[] = "";
mission = "The Beauty Canon report lists all rules that report no issues.";
examples[] = "beautycanon.text.txt";
description = "The Beauty Canon report displays one result per line. This report lists all issues in the provided ruleset that are reporting no error.

The title of the analysis is listed on the left, and the analysis short name is listed on the right, for further documentation.

This analysis uses "Analysis" as default rule. It may otherwise parametered with the -T option.

::

Compare Hash                                                           Security/CompareHash                    
Configure Extract                                                      Security/ConfigureExtract               
Dynamic Library Loading                                                Security/DynamicDl                      
Encoded Simple Letters                                                 Security/EncodedLetters                 
Indirect Injection                                                     Security/IndirectInjection              
Integer Conversion                                                     Security/IntegerConversion              
Minus One On Error                                                     Security/MinusOneOnError                
Mkdir Default                                                          Security/MkdirDefault                   
No ENT_IGNORE                                                          Security/NoEntIgnore                    
No Hardcoded Hash                                                      Structures/NoHardcodedHash              
No Hardcoded Ip                                                        Structures/NoHardcodedIp                
No Hardcoded Port                                                      Structures/NoHardcodedPort              
";
type = "Text";
audience[] = "developper";
arbitrarylist = "1";
themes[] = "";
name = "SimpleTable";
class = "SimpleTable";
depends[] = "";
mission = "The Simpletable is a simple table presentation.";
examples[] = "report.simpletable.png";
description = "Simpletable is suitable for any list of results provided by exakat. It is inspired from the Clang report. The result is a HTML file, with Javascript and CSS. ";
type = "HTML";
audience[] = "developper";
arbitrarylist = "";
themes[] = "";
name = "Code Sniffer";
class = "CodeSniffer";
depends[] = "";
mission = "The CodeSniffer report exports in the CodeSniffer format.";
examples[] = "report.codesniffer.txt";
description = "This format reports analysis using the Codesniffer's result format. 

See also [Code Sniffer Report](https://github.com/squizlabs/PHP_CodeSniffer/wiki/Reporting).";
type = "TEXT";
audience[] = "developper";
arbitrarylist = 1;
name = "Dependency Wheel";
class = "DependencyWheel";
depends[] = "";
mission = "The DependencyWheel represents dependencies in a code source.";
examples[] = "report.dependencywheel.png";
description = "Dependency Wheel is a javascript visualization of the classes dependencies in the code. Every class, interface and trait are represented as a circle, and every relation between the classes are represented by a link between them, inside the circle. 

It is based on Francois Zaninotto's `DependencyWheel <http://fzaninotto.github.com/DependencyWheel`_ and the `d3.js <https://github.com/mbostock/d3>`_.";
type = "HTML";
audience[] = "developper";
themes[] = "";
name = "Json";
class = "Json";
depends[] = "";
mission = "The JSON report exports in JSON format.";
examples[] = "report.json.txt";
description = "Simple Json format. It is a structured array with all results, described as object.

::

    Filename => [
                    errors   => count,
                    warning  => count,
                    fixable  => count,
                    filename => string,
                    message  => [
                        line => [
                            type,
                            source,
                            severity,
                            fixable,
                            message
                        ]
                    ]
                ]

";
type = "Json";
audience[] = "developper";
arbitrarylist = "1";
themes[] = "";
name = "Perfile";
class = "Perfile";
depends[] = "";
mission = "The Perfile report lays out the results file per file.";
examples[] = "report.perfile.txt";
description = "The Perfile report displays one result per line, grouped by file, and ordered by line number : 

::
    
   /path/from/project/root/to/file:line[space]name of analysis
   
   
This format is fast, and fitted for human review.
";
type = "Text";
audience[] = "developper";
arbitrarylist = "1";
themes[] = "";
name = "Code Flower";
class = "CodeFlower";
depends[] = "";
mission = "The Code Flower represents hierarchies in a code source.";
examples[] = "report.codeflower.png";
description = "Codeflower is a javascript visualization of the code. It is based on Francois Zaninotto's [CodeFlower Source code visualization](http://www.redotheweb.com/CodeFlower/).

It represents : 
+ Class hierarchy
+ Namespace hierarchy
+ Inclusion
";
type = "HTML";
audience[] = "developper";
themes[] = "";
name = "Exakatyaml";
class = "Exakatyaml";
depends[] = "";
mission = "Builds a list of ruleset, based on the number of issues from the previous audit.";
examples[] = "report.exakatyaml.txt";
description = "Exakatyaml helpls with the configuration of exakat in a CI. It builds a list of ruleset, based on the number of issues from the previous audit.

Continuous Integration require steps that yield no issues. This is good for analysis that yield no results : in a word, all analysis that are currently clean should be in the CI. That way, any return will be monitored.

On the other hand, other analysis that currently yield issues needs to be fully cleaned before usage. 

::

    project: my_project
    project_name: my_project
    project_themes: {  }
    project_reports:
        - Ambassador
    rulesets:
        ruleset_0: # 0 errors found
             \"Accessing Private\":                                 Classes/AccessPrivate
             \"Adding Zero\":                                       Structures/AddZero
             \"Aliases Usage\":                                     Functions/AliasesUsage
             \"Already Parents Interface\":                         Interfaces/AlreadyParentsInterface
             \"Already Parents Trait\":                             Traits/AlreadyParentsTrait
             \"Altering Foreach Without Reference\":                Structures/AlteringForeachWithoutReference
             \"Alternative Syntax Consistence\":                    Structures/AlternativeConsistenceByFile
             \"Always Positive Comparison\":                        Structures/NeverNegative
    # Other results here
        ruleset_1: # 1 errors found
             \"Constant Class\":                                    Classes/ConstantClass
             \"Could Be Abstract Class\":                           Classes/CouldBeAbstractClass
             \"Dependant Trait\":                                   Traits/DependantTrait
             \"Double Instructions\":                               Structures/DoubleInstruction
    # Other results here
        ruleset_2: # 2 errors found
             \"Always Anchor Regex\":                               Security/AnchorRegex
             \"Forgotten Interface\":                               Interfaces/CouldUseInterface
    # Other results here
        ruleset_3: # 3 errors found
             \"@ Operator\":                                        Structures/Noscream
             \"Indices Are Int Or String\":                         Structures/IndicesAreIntOrString
             \"Modernize Empty With Expression\":                   Structures/ModernEmpty
             \"Property Variable Confusion\":                       Structures/PropertyVariableConfusion
    # Other results here
        ruleset_4: # 4 errors found
             \"Buried Assignation\":                                Structures/BuriedAssignation
             \"Identical Consecutive Expression\":                  Structures/IdenticalConsecutive
    # Other results here
        ruleset_122: # 122 errors found
             \"Method Could Be Static\":                            Classes/CouldBeStatic

";
type = "Yaml";
audience[] = "developper";
themes[] = "";
name = "Top10";
class = "Top10";
depends[] = "";
examples[] = "report.top10.png";
mission = "The top 10 is the companion report for the 'Top 10 classic PHP traps' presentation. ";
examples[] = "report.top10.png";
description = "The Top 10 report is based on the 'Top 10 classic PHP traps' presentation. You can run it on your code and check immediately where those classic traps are waiting for you. Read the whole presentation `online <https://www.exakat.io/top-10-php-classic-traps/>`_";
type = "HTML";
audience[] = "developer";
themes[] = "Top10";
name = "Topology Order";
class = "Topology";
depends[] = "";
mission = "This represents a topological order in the code.";
examples[] = "report.topology.png";
description = "Topology displays all dependencies between code structures. Such dependencies lead to a code hierarchy, which is presented here.

There are currently two topology available:

+ Typehint Order : it represents the order in which classes are organized, based on argument and return type.
+ New Order : it represents the order in which classes are instantiated, with new.

";
type = "DOT";
audience[] = "developper";
arbitrarylist = "";
themes[] = "";
name = "Phpcity";
class = "Phpcity";
depends[] = "";
mission = "The Phpcity report represents your code as a city. ";
examples[] = "report.phpcity.png";
description = "Phpcity is a code visualisation tool : it displays the source code as a city, with districts and buildings. Ther will be high sky crappers, signaling large classes, entire districts of small blocks, large venues and isolated parks. Some imagination is welcome too. 

The original idea is Richard Wettel's [Code city](https://wettel.github.io/codecity.html), which has been adapted to many languages, including PHP. The PHP version is based on the open source [PHPcity project](https://github.com/adrianhuna/PHPCity), which is itself build with [JScity](https://github.com/ASERG-UFMG/JSCity/wiki/JSCITY). 

To use this tool, run an exakat audit, then generate the 'PHPcity' report : `php exakat.phar report -p mycode -format PHPcity -v`

This generates the `exakat.phpcity.json` file, in the `projects/mycode/` folder. 

You may test your own report online, at [Adrian Huna](https://github.com/adrianhuna)'s website, by [uploading the results](https://adrianhuna.github.io/PHPCity/) and seeing it live immediately. 

Or, you can install the [PHPcity](https://github.com/adrianhuna/PHPCity) application, and load it locally. ";
type = "JSON";
audience[] = "developper";
themes[] = "";
// sample config file for HTML tidy
indent: auto
indent-spaces: 2
wrap: 72
markup: yes
output-xml: no
input-xml: no
show-warnings: yes
numeric-entities: yes
quote-marks: yes
quote-nbsp: yes
quote-ampersand: no
break-before-br: no
uppercase-tags: no
uppercase-attributes: no
char-encoding: utf8
new-inline-tags: cfif, cfelse, math, mroot,
  mrow, mi, mn, mo, msqrt, mfrac, msubsup, munderover,
  munder, mover, mmultiscripts, msup, msub, mtext,
  mprescripts, mtable, mtr, mtd, mth
new-blocklevel-tags: cfoutput, cfquery
new-empty-tags: cfelse
new-empty-tags: i
<html>
<head>
<meta charset="utf-8" />
<title>build - scan-build results</title>
<link type="text/css" rel="stylesheet" href="scanview.css"/>
<script src="sorttable.js"></script>
<script language='javascript' type="text/javascript">
function SetDisplay(RowClass, DisplayVal)
{
  var Rows = document.getElementsByTagName("tr");
  for ( var i = 0 ; i < Rows.length; ++i ) {
    if (Rows[i].className == RowClass) {
      Rows[i].style.display = DisplayVal;
    }
  }
}

function CopyCheckedStateToCheckButtons(SummaryCheckButton) {
  var Inputs = document.getElementsByTagName("input");
  for ( var i = 0 ; i < Inputs.length; ++i ) {
    if (Inputs[i].type == "checkbox") {
      if(Inputs[i] != SummaryCheckButton) {
        Inputs[i].checked = SummaryCheckButton.checked;
        Inputs[i].onclick();
      }
    }
  }
}

function returnObjById( id ) {
    if (document.getElementById)
        var returnVar = document.getElementById(id);
    else if (document.all)
        var returnVar = document.all[id];
    else if (document.layers)
        var returnVar = document.layers[id];
    return returnVar;
}

var NumUnchecked = 0;

function ToggleDisplay(CheckButton, ClassName) {
  if (CheckButton.checked) {
    SetDisplay(ClassName, "");
    if (--NumUnchecked == 0) {
      returnObjById("AllBugsCheck").checked = true;
    }
  }
  else {
    SetDisplay(ClassName, "none");
    NumUnchecked++;
    returnObjById("AllBugsCheck").checked = false;
  }
}
</script>
<!-- SUMMARYENDHEAD -->
</head>
<body>
<h1>build - scan-build results</h1>

<table>
{{INTRODUCTION}}
</table>
<h2>Bug Summary</h2><table>
{{SUMMARY}}
</table>
<h2>Reports</h2>

<table class="sortable" style="table-layout:automatic">
<thead><tr>
  <td>Title</td>
  <td>File</td>
  <td>Line</td>
  <td>Severity</td>
  <td>Time To fix</td>
</tr></thead>
<tbody>
{{LIST}}
</tbody>
</table>

</body></html>
/*
  SortTable
  version 2
  7th April 2007
  Stuart Langridge, http://www.kryogenix.org/code/browser/sorttable/

  Instructions:
  Download this file
  Add <script src="sorttable.js"></script> to your HTML
  Add class="sortable" to any table you'd like to make sortable
  Click on the headers to sort

  Thanks to many, many people for contributions and suggestions.
  Licenced as X11: http://www.kryogenix.org/code/browser/licence.html
  This basically means: do what you want with it.
*/


var stIsIE = /*@cc_on!@*/false;

sorttable = {
  init: function() {
    // quit if this function has already been called
    if (arguments.callee.done) return;
    // flag this function so we don't do the same thing twice
    arguments.callee.done = true;
    // kill the timer
    if (_timer) clearInterval(_timer);

    if (!document.createElement || !document.getElementsByTagName) return;

    sorttable.DATE_RE = /^(\d\d?)[\/\.-](\d\d?)[\/\.-]((\d\d)?\d\d)$/;

    forEach(document.getElementsByTagName('table'), function(table) {
      if (table.className.search(/\bsortable\b/) != -1) {
        sorttable.makeSortable(table);
      }
    });

  },

  makeSortable: function(table) {
    if (table.getElementsByTagName('thead').length == 0) {
      // table doesn't have a tHead. Since it should have, create one and
      // put the first table row in it.
      the = document.createElement('thead');
      the.appendChild(table.rows[0]);
      table.insertBefore(the,table.firstChild);
    }
    // Safari doesn't support table.tHead, sigh
    if (table.tHead == null) table.tHead = table.getElementsByTagName('thead')[0];

    if (table.tHead.rows.length != 1) return; // can't cope with two header rows

    // Sorttable v1 put rows with a class of "sortbottom" at the bottom (as
    // "total" rows, for example). This is B&R, since what you're supposed
    // to do is put them in a tfoot. So, if there are sortbottom rows,
    // for backward compatibility, move them to tfoot (creating it if needed).
    sortbottomrows = [];
    for (var i=0; i<table.rows.length; i++) {
      if (table.rows[i].className.search(/\bsortbottom\b/) != -1) {
        sortbottomrows[sortbottomrows.length] = table.rows[i];
      }
    }
    if (sortbottomrows) {
      if (table.tFoot == null) {
        // table doesn't have a tfoot. Create one.
        tfo = document.createElement('tfoot');
        table.appendChild(tfo);
      }
      for (var i=0; i<sortbottomrows.length; i++) {
        tfo.appendChild(sortbottomrows[i]);
      }
      delete sortbottomrows;
    }

    // work through each column and calculate its type
    headrow = table.tHead.rows[0].cells;
    for (var i=0; i<headrow.length; i++) {
      // manually override the type with a sorttable_type attribute
      if (!headrow[i].className.match(/\bsorttable_nosort\b/)) { // skip this col
        mtch = headrow[i].className.match(/\bsorttable_([a-z0-9]+)\b/);
        if (mtch) { override = mtch[1]; }
	      if (mtch && typeof sorttable["sort_"+override] == 'function') {
	        headrow[i].sorttable_sortfunction = sorttable["sort_"+override];
	      } else {
	        headrow[i].sorttable_sortfunction = sorttable.guessType(table,i);
	      }
	      // make it clickable to sort
	      headrow[i].sorttable_columnindex = i;
	      headrow[i].sorttable_tbody = table.tBodies[0];
	      dean_addEvent(headrow[i],"click", function(e) {

          if (this.className.search(/\bsorttable_sorted\b/) != -1) {
            // if we're already sorted by this column, just
            // reverse the table, which is quicker
            sorttable.reverse(this.sorttable_tbody);
            this.className = this.className.replace('sorttable_sorted',
                                                    'sorttable_sorted_reverse');
            this.removeChild(document.getElementById('sorttable_sortfwdind'));
            sortrevind = document.createElement('span');
            sortrevind.id = "sorttable_sortrevind";
            sortrevind.innerHTML = stIsIE ? '&nbsp<font face="webdings">5</font>' : '&nbsp;&#x25B4;';
            this.appendChild(sortrevind);
            return;
          }
          if (this.className.search(/\bsorttable_sorted_reverse\b/) != -1) {
            // if we're already sorted by this column in reverse, just
            // re-reverse the table, which is quicker
            sorttable.reverse(this.sorttable_tbody);
            this.className = this.className.replace('sorttable_sorted_reverse',
                                                    'sorttable_sorted');
            this.removeChild(document.getElementById('sorttable_sortrevind'));
            sortfwdind = document.createElement('span');
            sortfwdind.id = "sorttable_sortfwdind";
            sortfwdind.innerHTML = stIsIE ? '&nbsp<font face="webdings">6</font>' : '&nbsp;&#x25BE;';
            this.appendChild(sortfwdind);
            return;
          }

          // remove sorttable_sorted classes
          theadrow = this.parentNode;
          forEach(theadrow.childNodes, function(cell) {
            if (cell.nodeType == 1) { // an element
              cell.className = cell.className.replace('sorttable_sorted_reverse','');
              cell.className = cell.className.replace('sorttable_sorted','');
            }
          });
          sortfwdind = document.getElementById('sorttable_sortfwdind');
          if (sortfwdind) { sortfwdind.parentNode.removeChild(sortfwdind); }
          sortrevind = document.getElementById('sorttable_sortrevind');
          if (sortrevind) { sortrevind.parentNode.removeChild(sortrevind); }

          this.className += ' sorttable_sorted';
          sortfwdind = document.createElement('span');
          sortfwdind.id = "sorttable_sortfwdind";
          sortfwdind.innerHTML = stIsIE ? '&nbsp<font face="webdings">6</font>' : '&nbsp;&#x25BE;';
          this.appendChild(sortfwdind);

	        // build an array to sort. This is a Schwartzian transform thing,
	        // i.e., we "decorate" each row with the actual sort key,
	        // sort based on the sort keys, and then put the rows back in order
	        // which is a lot faster because you only do getInnerText once per row
	        row_array = [];
	        col = this.sorttable_columnindex;
	        rows = this.sorttable_tbody.rows;
	        for (var j=0; j<rows.length; j++) {
	          row_array[row_array.length] = [sorttable.getInnerText(rows[j].cells[col]), rows[j]];
	        }
	        /* If you want a stable sort, uncomment the following line */
	        sorttable.shaker_sort(row_array, this.sorttable_sortfunction);
	        /* and comment out this one */
	        //row_array.sort(this.sorttable_sortfunction);

	        tb = this.sorttable_tbody;
	        for (var j=0; j<row_array.length; j++) {
	          tb.appendChild(row_array[j][1]);
	        }

	        delete row_array;
	      });
	    }
    }
  },

  guessType: function(table, column) {
    // guess the type of a column based on its first non-blank row
    sortfn = sorttable.sort_alpha;
    for (var i=0; i<table.tBodies[0].rows.length; i++) {
      text = sorttable.getInnerText(table.tBodies[0].rows[i].cells[column]);
      if (text != '') {
        if (text.match(/^-?[�$�]?[\d,.]+%?$/)) {
          return sorttable.sort_numeric;
        }
        // check for a date: dd/mm/yyyy or dd/mm/yy
        // can have / or . or - as separator
        // can be mm/dd as well
        possdate = text.match(sorttable.DATE_RE)
        if (possdate) {
          // looks like a date
          first = parseInt(possdate[1]);
          second = parseInt(possdate[2]);
          if (first > 12) {
            // definitely dd/mm
            return sorttable.sort_ddmm;
          } else if (second > 12) {
            return sorttable.sort_mmdd;
          } else {
            // looks like a date, but we can't tell which, so assume
            // that it's dd/mm (English imperialism!) and keep looking
            sortfn = sorttable.sort_ddmm;
          }
        }
      }
    }
    return sortfn;
  },

  getInnerText: function(node) {
    // gets the text we want to use for sorting for a cell.
    // strips leading and trailing whitespace.
    // this is *not* a generic getInnerText function; it's special to sorttable.
    // for example, you can override the cell text with a customkey attribute.
    // it also gets .value for <input> fields.

    hasInputs = (typeof node.getElementsByTagName == 'function') &&
                 node.getElementsByTagName('input').length;

    if (node.getAttribute("sorttable_customkey") != null) {
      return node.getAttribute("sorttable_customkey");
    }
    else if (typeof node.textContent != 'undefined' && !hasInputs) {
      return node.textContent.replace(/^\s+|\s+$/g, '');
    }
    else if (typeof node.innerText != 'undefined' && !hasInputs) {
      return node.innerText.replace(/^\s+|\s+$/g, '');
    }
    else if (typeof node.text != 'undefined' && !hasInputs) {
      return node.text.replace(/^\s+|\s+$/g, '');
    }
    else {
      switch (node.nodeType) {
        case 3:
          if (node.nodeName.toLowerCase() == 'input') {
            return node.value.replace(/^\s+|\s+$/g, '');
          }
        case 4:
          return node.nodeValue.replace(/^\s+|\s+$/g, '');
          break;
        case 1:
        case 11:
          var innerText = '';
          for (var i = 0; i < node.childNodes.length; i++) {
            innerText += sorttable.getInnerText(node.childNodes[i]);
          }
          return innerText.replace(/^\s+|\s+$/g, '');
          break;
        default:
          return '';
      }
    }
  },

  reverse: function(tbody) {
    // reverse the rows in a tbody
    newrows = [];
    for (var i=0; i<tbody.rows.length; i++) {
      newrows[newrows.length] = tbody.rows[i];
    }
    for (var i=newrows.length-1; i>=0; i--) {
       tbody.appendChild(newrows[i]);
    }
    delete newrows;
  },

  /* sort functions
     each sort function takes two parameters, a and b
     you are comparing a[0] and b[0] */
  sort_numeric: function(a,b) {
    aa = parseFloat(a[0].replace(/[^0-9.-]/g,''));
    if (isNaN(aa)) aa = 0;
    bb = parseFloat(b[0].replace(/[^0-9.-]/g,''));
    if (isNaN(bb)) bb = 0;
    return aa-bb;
  },
  sort_alpha: function(a,b) {
    if (a[0]==b[0]) return 0;
    if (a[0]<b[0]) return -1;
    return 1;
  },
  sort_ddmm: function(a,b) {
    mtch = a[0].match(sorttable.DATE_RE);
    y = mtch[3]; m = mtch[2]; d = mtch[1];
    if (m.length == 1) m = '0'+m;
    if (d.length == 1) d = '0'+d;
    dt1 = y+m+d;
    mtch = b[0].match(sorttable.DATE_RE);
    y = mtch[3]; m = mtch[2]; d = mtch[1];
    if (m.length == 1) m = '0'+m;
    if (d.length == 1) d = '0'+d;
    dt2 = y+m+d;
    if (dt1==dt2) return 0;
    if (dt1<dt2) return -1;
    return 1;
  },
  sort_mmdd: function(a,b) {
    mtch = a[0].match(sorttable.DATE_RE);
    y = mtch[3]; d = mtch[2]; m = mtch[1];
    if (m.length == 1) m = '0'+m;
    if (d.length == 1) d = '0'+d;
    dt1 = y+m+d;
    mtch = b[0].match(sorttable.DATE_RE);
    y = mtch[3]; d = mtch[2]; m = mtch[1];
    if (m.length == 1) m = '0'+m;
    if (d.length == 1) d = '0'+d;
    dt2 = y+m+d;
    if (dt1==dt2) return 0;
    if (dt1<dt2) return -1;
    return 1;
  },

  shaker_sort: function(list, comp_func) {
    // A stable sort function to allow multi-level sorting of data
    // see: http://en.wikipedia.org/wiki/Cocktail_sort
    // thanks to Joseph Nahmias
    var b = 0;
    var t = list.length - 1;
    var swap = true;

    while(swap) {
        swap = false;
        for(var i = b; i < t; ++i) {
            if ( comp_func(list[i], list[i+1]) > 0 ) {
                var q = list[i]; list[i] = list[i+1]; list[i+1] = q;
                swap = true;
            }
        } // for
        t--;

        if (!swap) break;

        for(var i = t; i > b; --i) {
            if ( comp_func(list[i], list[i-1]) < 0 ) {
                var q = list[i]; list[i] = list[i-1]; list[i-1] = q;
                swap = true;
            }
        } // for
        b++;

    } // while(swap)
  }
}

/* ******************************************************************
   Supporting functions: bundled here to avoid depending on a library
   ****************************************************************** */

// Dean Edwards/Matthias Miller/John Resig

/* for Mozilla/Opera9 */
if (document.addEventListener) {
    document.addEventListener("DOMContentLoaded", sorttable.init, false);
}

/* for Internet Explorer */
/*@cc_on @*/
/*@if (@_win32)
    document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
    var script = document.getElementById("__ie_onload");
    script.onreadystatechange = function() {
        if (this.readyState == "complete") {
            sorttable.init(); // call the onload handler
        }
    };
/*@end @*/

/* for Safari */
if (/WebKit/i.test(navigator.userAgent)) { // sniff
    var _timer = setInterval(function() {
        if (/loaded|complete/.test(document.readyState)) {
            sorttable.init(); // call the onload handler
        }
    }, 10);
}

/* for other browsers */
window.onload = sorttable.init;

// written by Dean Edwards, 2005
// with input from Tino Zijdel, Matthias Miller, Diego Perini

// http://dean.edwards.name/weblog/2005/10/add-event/

function dean_addEvent(element, type, handler) {
	if (element.addEventListener) {
		element.addEventListener(type, handler, false);
	} else {
		// assign each event handler a unique ID
		if (!handler.$$guid) handler.$$guid = dean_addEvent.guid++;
		// create a hash table of event types for the element
		if (!element.events) element.events = {};
		// create a hash table of event handlers for each element/event pair
		var handlers = element.events[type];
		if (!handlers) {
			handlers = element.events[type] = {};
			// store the existing event handler (if there is one)
			if (element["on" + type]) {
				handlers[0] = element["on" + type];
			}
		}
		// store the event handler in the hash table
		handlers[handler.$$guid] = handler;
		// assign a global event handler to do all the work
		element["on" + type] = handleEvent;
	}
};
// a counter used to create unique IDs
dean_addEvent.guid = 1;

function removeEvent(element, type, handler) {
	if (element.removeEventListener) {
		element.removeEventListener(type, handler, false);
	} else {
		// delete the event handler from the hash table
		if (element.events && element.events[type]) {
			delete element.events[type][handler.$$guid];
		}
	}
};

function handleEvent(event) {
	var returnValue = true;
	// grab the event object (IE uses a global event object)
	event = event || fixEvent(((this.ownerDocument || this.document || this).parentWindow || window).event);
	// get a reference to the hash table of event handlers
	var handlers = this.events[event.type];
	// execute each event handler
	for (var i in handlers) {
		this.$$handleEvent = handlers[i];
		if (this.$$handleEvent(event) === false) {
			returnValue = false;
		}
	}
	return returnValue;
};

function fixEvent(event) {
	// add W3C standard event methods
	event.preventDefault = fixEvent.preventDefault;
	event.stopPropagation = fixEvent.stopPropagation;
	return event;
};
fixEvent.preventDefault = function() {
	this.returnValue = false;
};
fixEvent.stopPropagation = function() {
  this.cancelBubble = true;
}

// Dean's forEach: http://dean.edwards.name/base/forEach.js
/*
	forEach, version 1.0
	Copyright 2006, Dean Edwards
	License: http://www.opensource.org/licenses/mit-license.php
*/

// array-like enumeration
if (!Array.forEach) { // mozilla already supports this
	Array.forEach = function(array, block, context) {
		for (var i = 0; i < array.length; i++) {
			block.call(context, array[i], i, array);
		}
	};
}

// generic enumeration
Function.prototype.forEach = function(object, block, context) {
	for (var key in object) {
		if (typeof this.prototype[key] == "undefined") {
			block.call(context, object[key], key, object);
		}
	}
};

// character enumeration
String.forEach = function(string, block, context) {
	Array.forEach(string.split(""), function(chr, index) {
		block.call(context, chr, index, string);
	});
};

// globally resolve forEach enumeration
var forEach = function(object, block, context) {
	if (object) {
		var resolve = Object; // default
		if (object instanceof Function) {
			// functions have a "length" property
			resolve = Function;
		} else if (object.forEach instanceof Function) {
			// the object implements a custom forEach method so use that
			object.forEach(block, context);
			return;
		} else if (typeof object == "string") {
			// the object is a string
			resolve = String;
		} else if (typeof object.length == "number") {
			// the object is array-like
			resolve = Array;
		}
		resolve.forEach(object, block, context);
	}
};body { color:#000000; background-color:#ffffff }
body { font-family: Helvetica, sans-serif; font-size:9pt }
h1 { font-size: 14pt; }
h2 { font-size: 12pt; }
table { font-size:9pt }
table { border-spacing: 0px; border: 1px solid black }
th, table thead {
  background-color:#eee; color:#666666;
  font-weight: bold; cursor: default;
  text-align:center;
  font-weight: bold; font-family: Verdana;
  white-space:nowrap;
}
.W { font-size:0px }
th, td { padding:5px; padding-left:8px; text-align:left }
td.SUMM_DESC { padding-left:12px }
td.DESC { white-space:pre }
td.Q { text-align:right }
td { text-align:left }
tbody.scrollContent { overflow:auto }

table.form_group {
    background-color: #ccc;
    border: 1px solid #333;
    padding: 2px;
}

table.form_inner_group {
    background-color: #ccc;
    border: 1px solid #333;
    padding: 0px;
}

table.form {
    background-color: #999;
    border: 1px solid #333;
    padding: 2px;
}

td.form_label {
    text-align: right;
    vertical-align: top;
}
/* For one line entires */
td.form_clabel {
    text-align: right;
    vertical-align: center;
}
td.form_value {
    text-align: left;
    vertical-align: top;
}
td.form_submit {
    text-align: right;
    vertical-align: top;
}

h1.SubmitFail {
    color: #f00;
}
h1.SubmitOk {
}   Bud1                                                                        n d e n c i                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          @                                              @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  d e p e n d e n c i e sbwspblob   bplist00	
			]ShowStatusBar_SidebarWidthTenElevenOrLater[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar[ShowPathbar	#@k`     		_{{-1345, 435}, {770, 436}}	'FR^u                                d e p e n d e n c i e svSrnlong      
 d e v f a c e t e dbwspblob   bplist00		]ShowStatusBar[ShowPathbar[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar			_{{-1345, 110}, {1054, 761}}	%1=I`myz{|}~                               
 d e v f a c e t e dlsvCblob  bplist00	
HIJKMXiconSize_showIconPreview_calculateAllSizesWcolumns_scrollPositionYXtextSize_scrollPositionXZsortColumn_useRelativeDates_viewOptionsVersion#@0      	"&+05:?DZidentifierUwidthYascendingWvisibleTname		Xubiquity#\dateModified	#[dateCreated'(Tsizea	,-Tkinds		12Ulabeld	67WversionK	;<Xcomments,	@A^dateLastOpenedEYdateAdded#@{`     #@(      #        \dateModified	    & 8 L T f o                
 -/01:FGHQVXYZchjklu{}~             N                 
 d e v f a c e t e dlsvpblob  bplist00	
HIJKGXiconSize_showIconPreview_calculateAllSizesWcolumns_scrollPositionYXtextSize_scrollPositionXZsortColumn_useRelativeDates_viewOptionsVersion#@0      	!&+/49>CXcomments^dateLastOpened\dateModified[dateCreatedTsizeUlabelTkindWversionTname WvisibleUwidthYascendingUindex,	#%(*	(.13	a68d	;=	s	@BK	EG		 #@{`     #@(      #        \dateModified	   & 8 L T f o            )17AGHKLNWXZ[]fgijluvwy             M                 
 d e v f a c e t e dvSrnlong                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          E                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         DSDB                                 `                                    (      0          @                                                @                                                @                    N                 
 d e v f a c e t e dlsvpblob  bplist00	
HIJKGXiconSize_showIconPreview_calculateAllSizesWcolumns_scrollPositionYXtextSize_scrollPositionXZsortColumn_useRelativeDates_viewOptionsVersion#@0      	!&+/49>CXcomments^dateLastOpened\dateModified[dateCreatedTsizeUlabelTkindWversionTname WvisibleUwidthYascendingUindex,	#%(*	(.13	a68d	;=	s	@BK	EG		 #@{`     #@(      #        \dateModified	   & 8 L T f o            )17AGHKLNWXZ[]fgijluvwy             M                 
 d e v f a<!DOCTYPE html>
<html >
<head>
  <meta charset="UTF-8">
  <title>Data Table with Collapsible Table Rows</title>
  
  
  
      <link rel="stylesheet" href="css/style.css">

  
</head>

<body>
  <table>
	<thead>
		<tr>
			<th>Code</th>
			<th>File</th>
			<th>Line</th>
		</tr>
	</thead>
	<tbody>
        <sections />	
	</tbody>
</table>
  <script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>

    <script src="js/index.js"></script>

</body>
</html>
table { 
	width: 750px; 
	border-collapse: collapse; 
	margin:50px auto;
	}

th { 
	background: #3498db; 
	color: white; 
	font-weight: bold; 
	}

td, th { 
	padding: 10px; 
	border: 1px solid #ccc; 
	text-align: left; 
	font-size: 18px;
	}

.labels tr td {
	background-color: #2cc16a;
	font-weight: bold;
	color: #fff;
}

.label tr td label {
	display: block;
}


[data-toggle="toggle"] {
	display: none;
}$(document).ready(function() {
	$('[data-toggle="toggle"]').change(function(){
		$(this).parents().next('.hide').toggle();
	});
	$('[data-toggle="toggle"]').parents().next('.hide').toggle();
});A Pen created at CodePen.io. You can find this one at http://codepen.io/andornagy/pen/gaGBZz.

 

<!--
Copyright (c) 2017 by Andor Nagy (http://codepen.io/andornagy/pen/gaGBZz)


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.
-->
(function(){"Alchemy.js is a graph drawing application for the web.\nCopyright (C) 2014  GraphAlchemist, Inc.\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU Affero General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU Affero General Public License for more details.\n\nYou should have received a copy of the GNU Affero General Public License\nalong with this program.  If not, see <http://www.gnu.org/licenses/>.\nlets";var a,b,c,d,e,f,g,h,i,j,k,l,m=[].slice,n=function(a,b){return function(){return a.apply(b,arguments)}};a=function(){function a(a){null==a&&(a=null),this.a=this,this.version="0.4.1",this.get=new this.Get(this),this.remove=new this.Remove(this),this.create=new this.Create(this),this.set=new this.Set(this),this.drawing={DrawEdge:c(this),DrawEdges:d(this),DrawNode:e(this),DrawNodes:f(this),EdgeUtils:this.EdgeUtils(this),NodeUtils:this.NodeUtils(this)},this.controlDash=this.controlDash(this),this.stats=this.stats(this),this.layout=j,this.clustering=b,this.models={Node:this.Node(this),Edge:this.Edge(this)},this.utils={warnings:new l(this)},this.filters=this.filters(this),this.exports=this.exports(this),this.visControls={},this.styles={},this.editor={},this.log={},this.state={interactions:"default",layout:"default"},this.startGraph=this.startGraph(this),this.updateGraph=this.updateGraph(this),this.generateLayout=this.generateLayout(this),this.svgStyles=this.svgStyles(this),this.interactions=this.interactions(this),this.search=this.search(this),this.plugins=this.plugins(this),this._nodes={},this._edges={},this.getNodes=this.get.getNodes,this.getEdges=this.get.getEdges,this.allNodes=this.get.allNodes,this.allEdges=this.get.allEdges,a&&this.begin(a)}return a.prototype.begin=function(b){var c;switch(c=this.setConf(b),typeof this.conf.dataSource){case"string":d3.json(this.a.conf.dataSource,this.a.startGraph);break;case"object":this.a.startGraph(this.a.conf.dataSource)}return this.plugins.init(),a.prototype.instances.push(this),this},a.prototype.setConf=function(a){var b,c;null!=a.theme&&(a=_.merge(_.cloneDeep(this.defaults),this.a.themes[""+a.theme]));for(b in a)switch(c=a[b],b){case"clusterColors":a.clusterColours=c;break;case"backgroundColor":a.backgroundColour=c;break;case"nodeColor":a[nodeColour]=c}return this.a.conf=_.merge(_.cloneDeep(this.defaults),a)},a.prototype.instances=[],a.prototype.getInst=function(b){var c;return c=parseInt(d3.select(b).attr("alchInst")),a.prototype.instances[c]},a}(),k="undefined"!=typeof exports&&null!==exports?exports:this,k.Alchemy=a,k.alchemy={begin:function(b){return k.alchemy=new a(b)}},a.prototype.Create=function(){function a(a){this.a=a}return a.prototype.nodes=function(){var a,b,c,d,e,f,g;for(c=arguments[0],d=2<=arguments.length?m.call(arguments,1):[],a=this.a,e=function(b){var c;return a._nodes[b.id]?console.warn("A node with the id "+b.id+" already exists.\nConsider using the @a.get.nodes() method to \nretrieve the node and then using the Node methods."):(c=new a.models.Node(b),a._nodes[b.id]=c,[c])},d=_.union(d,c),f=0,g=d.length;g>f;f++)b=d[f],e(b);return this.a.initial?this.a.updateGraph():void 0},a.prototype.edges=function(){var a,b,c,d,e;return c=arguments[0],d=2<=arguments.length?m.call(arguments,1):[],a=this.a,e=function(b){var c,d;return b.id&&!a._edges[b.id]?(c=new a.models.Edge(b),a._edges[b.id]=[c],[c]):b.id&&a._edges[b.id]?console.warn("An edge with that id "+someEdgeMap.id+" already exists.\nConsider using the @a.get.edge() method to \nretrieve the edge and then using the Edge methods.\nNote: id's are not required for edges.  Alchemy will create\nan unlimited number of edges for the same source and target node.\nSimply omit 'id' when creating the edge."):(d=a._edges[""+b.source+"-"+b.target],d?(c=new a.models.Edge(b,d.length),d.push(c),[c]):(c=new a.models.Edge(b,0),a._edges[""+b.source+"-"+b.target]=[c],[c]))},b=_.uniq(_.flatten(arguments)),_.each(b,function(a){return e(a)}),this.a.initial?this.a.updateGraph():void 0},a}(),a.prototype.Get=function(a){return{a:a,_el:[],_elType:null,_makeChain:function(a){var b;for(b=this,b.__proto__=[].__proto__;b.length;)b.pop();return _.each(a,function(a){return b.push(a)}),b},nodes:function(){var a,b,c,d,e;return c=arguments[0],d=2<=arguments.length?m.call(arguments,1):[],null!=c&&(b=_.map(arguments,function(a){return String(a)}),a=this.a,e=function(a){return _.filter(a._nodes,function(a,c){return _.contains(b,c)?a:void 0})}(a)),this._elType="node",this._el=e,this._makeChain(e)},edges:function(){var a,b,c,d,e;return d=arguments[0],e=2<=arguments.length?m.call(arguments,1):[],null!=d&&(b=_.map(arguments,function(a){return String(a)}),a=this.a,c=function(a){return _.flatten(_.filter(a._edges,function(a,c){return _.contains(b,c)?a:void 0}))}(a)),this._elType="edge",this._el=c,this._makeChain(c)},all:function(){var a,b;return a=this.a,b=this._elType,this._el=function(b){switch(b){case"node":return a.elements.nodes.val;case"edge":return a.elements.edges.flat}}(b),this._makeChain(this._el)},elState:function(a){var b;return b=_.filter(this._el,function(b){return b._state===a}),this._el=b,this._makeChain(b)},state:function(){return null!=this.a.state.key?this.a.state.key:void 0},type:function(a){var b;return b=_.filter(this._el,function(b){return b._nodeType===a||b._edgeType===a}),this._el=b,this._makeChain(b)},activeNodes:function(){return _.filter(this.a._nodes,function(a){return"active"===a._state?a:void 0})},activeEdges:function(){return _.filter(this.a.get.allEdges(),function(a){return"active"===a._state?a:void 0})},state:function(){return null!=this.a.state.key?this.a.state.key:void 0},clusters:function(){var a,b;return a=this.a.layout._clustering.clusterMap,b={},_.each(a,function(a,c){return b[c]=_.select(this.a.get.allNodes(),function(a){return a.getProperties()[this.a.conf.clusterKey]===c})}),b},clusterColours:function(){var a,b;return b=this.a.layout._clustering.clusterMap,a={},_.each(b,function(b,c){return a[c]=this.a.conf.clusterColours[b%this.a.conf.clusterColours.length]}),a},allEdges:function(){return this.a.elements.nodes.flat},allNodes:function(a){return null!=a?_.filter(this.a._nodes,function(b){return b._nodeType===a?b:void 0}):this.a.elements.nodes.val},getNodes:function(){var a,b,c;return b=arguments[0],c=2<=arguments.length?m.call(arguments,1):[],a=this.a,c.push(b),_.map(c,function(b){return a._nodes[b]})},getEdges:function(a,b){var c,d;return null==a&&(a=null),null==b&&(b=null),c=this.a,null!=a&&null!=b?(d=""+a+"-"+b,this.a._edges[d]):null!=a&&null==b?this.a._nodes[a]._adjacentEdges:void 0}}},a.prototype.Remove=function(){function a(a){this.a=a}return a.prototype.nodes=function(a){return _.each(a,function(a){return null!=a._nodeType?a.remove():void 0})},a.prototype.edges=function(a){return _.each(a,function(a){return null!=a._edgeType?a.remove():void 0})},a}(),a.prototype.Set=function(a){return{a:a,state:function(a,b){return this.a.state.key=b}}},b=function(){function a(a){var b,c,d,e,f,g,h,i;this.a=a,d=this.a._nodes,c=this.a.conf,b=this,this.clusterKey=c.clusterKey,this.identifyClusters(this.a),e=-500,i=function(a){var b,c;return b=d[a.source.id]._properties[this.clusterKey],c=d[a.target.id]._properties[this.clusterKey],b===c?.15:0},f=function(){return.7},h=function(a){return d=a.self.a._nodes,d[a.source.id]._properties.root||d[a.target.id]._properties.root?300:d[a.source.id]._properties[this.clusterKey]===d[a.target.id]._properties[this.clusterKey]?10:600},g=function(a){return 8*a},this.layout={charge:e,linkStrength:function(a){return i(a)},friction:function(){return f()},linkDistancefn:function(a){return h(a)},gravity:function(a){return g(a)}}}return a.prototype.identifyClusters=function(a){var b,c,d;return c=a.elements.nodes.val,b=_.uniq(_.map(c,function(b){return b.getProperties()[a.conf.clusterKey]})),this.clusterMap=_.zipObject(b,function(){d=[];for(var a=0,c=b.length;c>=0?c>=a:a>=c;c>=0?a++:a--)d.push(a);return d}.apply(this))},a.prototype.getClusterColour=function(a){var b;return b=this.clusterMap[a]%this.a.conf.clusterColours.length,this.a.conf.clusterColours[b]},a.prototype.edgeGradient=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o;for(c=this.a.vis.select(""+this.a.conf.divSelector+" svg"),b={},j=this.a._nodes,n=_.map(a,function(a){return a._d3}),l=0,m=n.length;m>l;l++)if(d=n[l],!j[d.source.id]._properties.root&&!j[d.target.id]._properties.root&&j[d.source.id]._properties[this.clusterKey]!==j[d.target.id]._properties[this.clusterKey]&&j[d.target.id]._properties[this.clusterKey]!==j[d.source.id]._properties[this.clusterKey]){if(h=j[d.source.id]._properties[this.clusterKey]+"-"+j[d.target.id]._properties[this.clusterKey],h in b)continue;h in b||(k=this.getClusterColour(j[d.target.id]._properties[this.clusterKey]),e=this.getClusterColour(j[d.source.id]._properties[this.clusterKey]),b[h]={startColour:k,endColour:e})}o=[];for(i in b)g="cluster-gradient-"+i,f=c.append("svg:linearGradient").attr("id",g),f.append("svg:stop").attr("offset","0%").attr("stop-color",b[i].startColour),o.push(f.append("svg:stop").attr("offset","100%").attr("stop-color",b[i].endColour));return o},a}(),a.prototype.clusterControls={init:function(){var a;return a="<input class='form-control form-inline' id='cluster-key' placeholder=\"Cluster Key\"></input>",this.a.dash.select("#clustering-container").append("div").attr("id","cluster-key-container").attr("class","property form-inline form-group").html(a).style("display","none"),this.a.dash.select("#cluster_control_header").on("click",function(){var a,b;return b=this.a.dash.select("#cluster-key-container"),a=b.style("display")}),element.style("display",function(){return"block"===display?"none":"block"}),"none"===this.a.dash.select("#cluster-key-container").style("display")?this.a.dash.select("#cluster-arrow").attr("class","fa fa-2x fa-caret-right"):this.a.dash.select("#cluster-arrow").attr("class","fa fa-2x fa-caret-down"),this.a.dash.select("#cluster-key").on("keydown",function(){return"Enter"===d3.event.keyIdentifier?(this.a.conf.cluster=!0,this.a.conf.clusterKey=this.value,this.a.generateLayout()):void 0})}},a.prototype.controlDash=function(a){var b;return b=a,{init:function(){var a;return this.dashIsShown()?(a=b.conf.divSelector,b.dash=d3.select(""+a).append("div").attr("id","control-dash-wrapper").attr("class","col-md-4 initial"),b.dash.append("i").attr("id","dash-toggle").attr("class","fa fa-flask col-md-offset-12"),b.dash.append("div").attr("id","control-dash").attr("class","col-md-12"),b.dash.select("#dash-toggle").on("click",b.interactions.toggleControlDash),b.controlDash.zoomCtrl(),b.controlDash.search(),b.controlDash.filters(),b.controlDash.stats(),b.controlDash.clustering(),b.controlDash.exports()):void 0},search:function(){return b.conf.search?(b.dash.select("#control-dash").append("div").attr("id","search").html("<div class='input-group'>\n    <input class='form-control' placeholder='Search'>\n    <i class='input-group-addon search-icon'><span class='fa fa-search fa-1x'></span></i>\n</div> "),b.search.init()):void 0},zoomCtrl:function(){return b.conf.zoomControls?(b.dash.select("#control-dash-wrapper").append("div").attr("id","zoom-controls").attr("class","col-md-offset-12").html("<button id='zoom-reset'  class='btn btn-defualt btn-primary'><i class='fa fa-crosshairs fa-lg'></i></button> <button id='zoom-in'  class='btn btn-defualt btn-primary'><i class='fa fa-plus'></i></button> <button id='zoom-out' class='btn btn-default btn-primary'><i class='fa fa-minus'></i></button>"),b.dash.select("#zoom-in").on("click",function(){return b.interactions.clickZoom("in")}),b.dash.select("#zoom-out").on("click",function(){return b.interactions.clickZoom("out")}),b.dash.select("#zoom-reset").on("click",function(){return b.interactions.clickZoom("reset")})):void 0},filters:function(){return b.conf.nodeFilters||b.conf.edgeFilters?(b.dash.select("#control-dash").append("div").attr("id","filters"),b.filters.init()):void 0},stats:function(){var a;return b.conf.nodeStats||b.conf.edgeStats?(a='<div id = "stats-header" data-toggle="collapse" data-target="#stats #all-stats">\n<h3>\n    Statistics\n</h3>\n<span class = "fa fa-caret-right fa-2x"></span>\n</div>\n<div id="all-stats" class="collapse">\n    <ul class = "list-group" id="node-stats"></ul>\n    <ul class = "list-group" id="rel-stats"></ul>  \n</div>',b.dash.select("#control-dash").append("div").attr("id","stats").html(a).select("#stats-header").on("click",function(){return b.dash.select("#all-stats").classed("in")?b.dash.select("#stats-header>span").attr("class","fa fa-2x fa-caret-right"):b.dash.select("#stats-header>span").attr("class","fa fa-2x fa-caret-down")}),b.stats.init()):void 0},exports:function(){var a;return b.conf.exportSVG?(a='<div id="exports-header" data-toggle="collapse" data-target="#all-exports" style="padding:10px;">\n    <h3>\n        Exports\n    </h3>\n    <span class="fa fa-caret-right fa-2x"></span>\n</div>\n<div id="all-exports" class="collapse"></div>',b.dash.select("#control-dash").append("div").attr("id","exports").attr("style","padding: 0.5em 1em; border-bottom: thin dashed #E89619; color: white;").html(a).select("#exports-header"),b.exports.init()):void 0},clustering:function(){var a;return b.conf.clusterControl?(a='<div id="clustering-container">\n    <div id="cluster_control_header" data-toggle="collapse" data-target="#clustering #cluster-options">\n         <h3>Clustering</h3>\n        <span id="cluster-arrow" class="fa fa-2x fa-caret-right"></span>\n    </div>\n</div>',b.dash.select("#control-dash").append("div").attr("id","clustering").html(a).select("#cluster_control_header"),b.clusterControls.init()):void 0},dashIsShown:function(){var a;return a=b.conf,a.showEditor||a.captionToggle||a.toggleRootNodes||a.removeElement||a.clusterControl||a.nodeStats||a.edgeStats||a.edgeFilters||a.nodeFilters||a.edgesToggle||a.nodesToggle||a.search||a.exportSVG}}},a.prototype.filters=function(){return function(a){var b;return b=a,{init:function(){var a,c,d,e,f,g,h,i,j,k,l,m;if(b.filters.show(),b.conf.edgeFilters&&b.filters.showEdgeFilters(),b.conf.nodeFilters&&b.filters.showNodeFilters(),b.conf.nodeTypes){for(e=Object.keys(b.conf.nodeTypes),g="",m=b.conf.nodeTypes[e],i=0,k=m.length;k>i;i++)f=m[i],a=f.replace("_"," "),g+="<li class='list-group-item nodeType' role='menuitem' id='li-"+f+"' name="+f+">"+a+"</li>";b.dash.select("#node-dropdown").html(g)}if(b.conf.edgeTypes){for(h=_.isPlainObject(b.conf.edgeTypes)?_.values(b.conf.edgeTypes)[0]:b.conf.edgeTypes,d="",j=0,l=h.length;l>j;j++)c=h[j],a=c.replace("_"," "),d+="<li class='list-group-item edgeType' role='menuitem' id='li-"+c+"' name="+c+">"+a+"</li>";b.dash.select("#rel-dropdown").html(d)}return b.conf.captionsToggle&&b.filters.captionsToggle(),b.conf.edgesToggle&&b.filters.edgesToggle(),b.conf.nodesToggle&&b.filters.nodesToggle(),b.filters.update()},show:function(){var a;return a='<div id = "filter-header" data-toggle="collapse" data-target="#filters form">\n    <h3>Filters</h3>\n    <span class = "fa fa-2x fa-caret-right"></span>\n</div>\n    <form class="form-inline collapse">\n    </form>',b.dash.select("#control-dash #filters").html(a),b.dash.selectAll("#filter-header").on("click",function(){return b.dash.select("#filters>form").classed("in")?b.dash.select("#filter-header>span").attr("class","fa fa-2x fa-caret-right"):b.dash.select("#filter-header>span").attr("class","fa fa-2x fa-caret-down")}),b.dash.select("#filters form")},showEdgeFilters:function(){var a;return a='<div id="filter-rel-header" data-target = "#rel-dropdown" data-toggle="collapse">\n    <h4>\n        Edge Types\n    </h4>\n    <span class="fa fa-lg fa-caret-right"></span>\n</div>\n<ul id="rel-dropdown" class="collapse list-group" role="menu">\n</ul>',b.dash.select("#filters form").append("div").attr("id","filter-relationships").html(a),b.dash.select("#filter-rel-header").on("click",function(){return b.dash.select("#rel-dropdown").classed("in")?b.dash.select("#filter-rel-header>span").attr("class","fa fa-lg fa-caret-right"):b.dash.select("#filter-rel-header>span").attr("class","fa fa-lg fa-caret-down")})},showNodeFilters:function(){var a;return a='<div id="filter-node-header" data-target = "#node-dropdown" data-toggle="collapse">\n    <h4>\n        Node Types\n    </h4>\n    <span class="fa fa-lg fa-caret-right"></span>\n</div>\n<ul id="node-dropdown" class="collapse list-group" role="menu">\n</ul>',b.dash.select("#filters form").append("div").attr("id","filter-nodes").html(a),b.dash.select("#filter-node-header").on("click",function(){return b.dash.select("#node-dropdown").classed("in")?b.dash.select("#filter-node-header>span").attr("class","fa fa-lg fa-caret-right"):b.dash.select("#filter-node-header>span").attr("class","fa fa-lg fa-caret-down")})},captionsToggle:function(){return b.dash.select("#filters form").append("li").attr({id:"toggle-captions","class":"list-group-item active-label toggle"}).html("Show Captions").on("click",function(){var a;return a=b.dash.select("g text").attr("style"),"display: block"===a?b.dash.selectAll("g text").attr("style","display: none"):b.dash.selectAll("g text").attr("style","display: block")})},edgesToggle:function(){return b.dash.select("#filters form").append("li").attr({id:"toggle-edges","class":"list-group-item active-label toggle"}).html("Toggle Edges").on("click",function(){return _.contains(_.pluck(_.flatten(_.values(b._edges)),"_state"),"active")?_.each(_.values(b._edges),function(a){return _.each(a,function(a){return"active"===a._state?a.toggleHidden():void 0})}):_.each(_.values(b._edges),function(a){return _.each(a,function(a){var c,d;return c=b._nodes[a._properties.source],d=b._nodes[a._properties.target],"active"===c._state&&"active"===d._state?a.toggleHidden():void 0})})})},nodesToggle:function(){return b.dash.select("#filters form").append("li").attr({id:"toggle-nodes","class":"list-group-item active-label toggle"}).html("Toggle Nodes").on("click",function(){var a;return a=_.values(b._nodes),_.contains(_.pluck(a,"_state"),"active")?_.each(a,function(a){return b.conf.toggleRootNodes&&a._d3.root?void 0:"active"===a._state?a.toggleHidden():void 0}):_.each(_.values(b._nodes),function(a){return b.conf.toggleRootNodes&&a._d3.root?void 0:a.toggleHidden()})})},update:function(){return b.dash.selectAll(".nodeType, .edgeType").on("click",function(){var a,c;return a=d3.select(this),c=a.attr("name"),b.vis.selectAll("."+c).each(function(a){var c,d,e,f;return null!=b._nodes[a.id]?(d=b._nodes[a.id],d.toggleHidden()):(c=b._edges[a.id][0],e=b._nodes[c._properties.source],f=b._nodes[c._properties.target],"active"===e._state&&"active"===f._state?c.toggleHidden():void 0)}),b.stats.nodeStats()})}}}}(this),a.prototype.Index=function(a){var b,c,d,e;return b=a,d={nodes:{val:function(){return _.values(b._nodes)}()},edges:{val:function(){return _.values(b._edges)}()}},e=d.nodes,c=d.edges,d.edges.flat=function(){return _.flatten(c.val)}(),d.nodes.d3=function(){return _.map(e.val,function(a){return a._d3})}(),d.edges.d3=function(){return _.map(c.flat,function(a){return a._d3})}(),b.elements=d,function(){return b.elements.nodes.svg=function(){return b.vis.selectAll("g.node")}(),b.elements.edges.svg=function(){return b.vis.selectAll("g.edge")}()}},a.prototype.interactions=function(b){var c;return c=b,{edgeClick:function(a){var b;if(!d3.event.defaultPrevented)return d3.event.stopPropagation(),b=a.self,"function"==typeof c.conf.edgeClick&&c.conf.edgeClick(b),"hidden"!==b._state?(b._state=function(){return"selected"===b._state?"active":"selected"}(),b.setStyles()):void 0},edgeMouseOver:function(a){var b;return b=a.self,"hidden"!==b._state?("selected"!==b._state&&(b._state="highlighted"),b.setStyles()):void 0},edgeMouseOut:function(a){var b;return b=a.self,"hidden"!==b._state?("selected"!==b._state&&(b._state="active"),b.setStyles()):void 0},nodeMouseOver:function(a){var b;if(b=a.self,"hidden"!==b._state){if("selected"!==b._state&&(b._state="highlighted",b.setStyles()),"function"==typeof c.conf.nodeMouseOver)return c.conf.nodeMouseOver(b);if("number"==typeof c.conf.nodeMouseOver)return b.properties[c.conf.nodeMouseOver]}},nodeMouseOut:function(a){var b;return b=a.self,c=b.a,"hidden"!==b._state&&("selected"!==b._state&&(b._state="active",b.setStyles()),null!=c.conf.nodeMouseOut&&"function"==typeof c.conf.nodeMouseOut)?c.conf.nodeMouseOut(a):void 0},nodeClick:function(a){var b;if(!d3.event.defaultPrevented)return d3.event.stopPropagation(),b=a.self,"function"==typeof c.conf.nodeClick&&c.conf.nodeClick(b),"hidden"!==b._state?(b._state=function(){return"selected"===b._state?"active":"selected"}(),b.setStyles()):void 0},zoom:function(b){return null==this._zoomBehavior&&(this._zoomBehavior=d3.behavior.zoom()),this._zoomBehavior.scaleExtent(b).on("zoom",function(){return c=a.prototype.getInst(this),c.vis.attr("transform","translate("+d3.event.translate+") scale("+d3.event.scale+")")})},clickZoom:function(a){var b,d,e,f;return f=c.vis.attr("transform").match(/(-*\d+\.*\d*)/g).map(function(a){return parseFloat(a)}),d=f[0],e=f[1],b=f[2],c.vis.attr("transform",function(){return"in"===a?(b<c.conf.scaleExtent[1]&&(b+=.2),"translate("+d+","+e+") scale("+b+")"):"out"===a?(b>c.conf.scaleExtent[0]&&(b-=.2),"translate("+d+","+e+") scale("+b+")"):"reset"===a?"translate(0,0) scale(1)":console.log("error")}),null==this._zoomBehavior&&(this._zoomBehavior=d3.behavior.zoom()),this._zoomBehavior.scale(b).translate([d,e])},nodeDragStarted:function(a){return d3.event.preventDefault,d3.event.sourceEvent.stopPropagation(),d3.select(this).classed("dragging",!0),a.fixed=!0},nodeDragged:function(a){var b,d;return c=a.self.a,a.x+=d3.event.dx,a.y+=d3.event.dy,a.px+=d3.event.dx,a.py+=d3.event.dy,d=d3.select(this),d.attr("transform","translate("+a.x+", "+a.y+")"),b=a.self._adjacentEdges,_.each(b,function(a){var b;return b=c.vis.select("#edge-"+a.id+"-"+a._index),c._drawEdges.updateEdge(b.data()[0])})},nodeDragended:function(a){return c=a.self.a,d3.select(this).classed({dragging:!1}),c.conf.forceLocked?void 0:c.force.start()},nodeDoubleClick:function(){return null},deselectAll:function(){var b;return c=a.prototype.getInst(this),(null!=(b=d3.event)?b.defaultPrevented:0)?void 0:(c.conf.showEditor===!0&&c.modifyElements.nodeEditorClear(),_.each(c._nodes,function(a){return a._state="active",a.setStyles()}),_.each(c._edges,function(a){return _.each(a,function(a){return a._state="active",a.setStyles()})}),c.conf.deselectAll?c.conf.deselectAll():void 0)}}},j=function(){function a(a){this.tick=n(this.tick,this),this.linkStrength=n(this.linkStrength,this),this.gravity=n(this.gravity,this);var b,c,d;this.a=b=a,c=this.a.conf,d=this.a._nodes,this.k=Math.sqrt(Math.log(_.size(this.a._nodes))/(c.graphWidth()*c.graphHeight())),this._clustering=new this.a.clustering(this.a),this.d3NodeInternals=b.elements.nodes.d3,c.cluster?(this._charge=function(){return this._clustering.layout.charge},this._linkStrength=function(a){return this._clustering.layout.linkStrength(a)}):(this._charge=function(){return-10/this.k},this._linkStrength=function(a){return d[a.source.id].getProperties("root")||d[a.target.id].getProperties("root")?1:.9}),c.cluster?this._linkDistancefn=function(a){return this._clustering.layout.linkDistancefn(a)}:"default"===c.linkDistancefn?this._linkDistancefn=function(){return 1/(50*this.k)}:"number"==typeof c.linkDistancefn?this._linkDistancefn=function(){return c.linkDistancefn}:"function"==typeof c.linkDistancefn&&(this._linkDistancefn=function(a){return c.linkDistancefn(a)})}return a.prototype.gravity=function(){return this.a.conf.cluster?this._clustering.layout.gravity(this.k):50*this.k},a.prototype.linkStrength=function(a){return this._linkStrength(a)},a.prototype.friction=function(){return.9},a.prototype.collide=function(a){var b,c,d,e,f,g;return b=this.a.conf,g=2*(a.radius+a["stroke-width"])+b.nodeOverlap,c=a.x-g,d=a.x+g,e=a.y-g,f=a.y+g,function(h,i,j,k,l){var m,n,o;return h.point&&h.point!==a&&(n=a.x-Math.abs(h.point.x),o=a.y-h.point.y,m=Math.sqrt(n*n+o*o),g=g,g>m&&(m=(m-g)/m*b.alpha,a.x-=n*=m,a.y-=o*=m,h.point.x+=n,h.point.y+=o)),i>d||c>k||j>f||e>l}},a.prototype.tick=function(){var a,b,c,d,e,f,g,h;if(a=this.a,d=a.elements.nodes.svg,b=a.elements.edges.svg,a.conf.collisionDetection)for(e=d3.geom.quadtree(this.d3NodeInternals),h=this.d3NodeInternals,f=0,g=h.length;g>f;f++)c=h[f],e.visit(this.collide(c));return d.attr("transform",function(a){return"translate("+a.x+","+a.y+")"}),this.drawEdge=a.drawing.DrawEdge,this.drawEdge.styleText(b),this.drawEdge.styleLink(b)},a.prototype.positionRootNodes=function(){var a,b,c,d,e,f,g,h,i,j;if(a=this.a.conf,b={width:a.graphWidth(),height:a.graphHeight()},e=_.filter(this.a.elements.nodes.val,function(a){return a.getProperties("root")}),1!==e.length){for(j=[],c=f=0,g=e.length;g>f;c=++f)d=e[c],d._d3.x=b.width/Math.sqrt(e.length*(c+1)),d._d3.y=b.height/2,j.push(d._d3.fixed=!0);return j}d=e[0],h=[b.width/2,b.width/2],d._d3.x=h[0],d._d3.px=h[1],i=[b.height/2,b.height/2],d._d3.y=i[0],d._d3.py=i[1],d._d3.fixed=!0},a.prototype.chargeDistance=function(){return 500},a.prototype.linkDistancefn=function(a){return this._linkDistancefn(a)},a.prototype.charge=function(){return this._charge()},a}(),a.prototype.generateLayout=function(a){var b;return b=a,function(a){var c;return null==a&&(a=!1),c=b.conf,b.layout=new j(b),b.force=d3.layout.force().size([c.graphWidth(),c.graphHeight()]).theta(1).gravity(b.layout.gravity()).friction(b.layout.friction()).nodes(b.elements.nodes.d3).links(b.elements.edges.d3).linkDistance(function(a){return b.layout.linkDistancefn(a)}).linkStrength(function(a){return b.layout.linkStrength(a)}).charge(b.layout.charge()).chargeDistance(b.layout.chargeDistance())}},a.prototype.search=function(a){var b;return b=a,{init:function(){var a;return a=b.dash.select("#search input"),a.on("keyup",function(){var c;return c=a[0][0].value.toLowerCase(),b.vis.selectAll(".node").classed("inactive",!1),b.vis.selectAll("text").attr("style",function(){return""!==c?"display: inline;":void 0}),b.vis.selectAll(".node").classed("inactive",function(a){var d,e;switch(d=d3.select(this).text(),b.conf.searchMethod){case"contains":e=d.toLowerCase().indexOf(c)<0;break;case"begins":e=0!==d.toLowerCase().indexOf(c)}return e?b.vis.selectAll("[source-target*='"+a.id+"']").classed("inactive",e):b.vis.selectAll("[source-target*='"+a.id+"']").classed("inactive",function(a){var c,d,e;return c=[a.source.id,a.target.id],d=b.vis.select("#node-"+c[0]).classed("inactive"),e=b.vis.select("#node-"+c[1]).classed("inactive"),e||d}),e})})}}},a.prototype.startGraph=function(b){var c;return c=b,function(b){var d,e,f,g,h,i;if(d=c.conf,d3.select(d.divSelector).empty()&&console.warn(c.utils.warnings.divWarning()),b||(b={nodes:[],edges:[]},c.utils.warnings.dataWarning()),null==b.edges&&(b.edges=[]),c.create.nodes(b.nodes),b.edges.forEach(function(a){return c.create.edges(a)}),c.vis=d3.select(d.divSelector).attr("style","width:"+d.graphWidth()+"px; height:"+d.graphHeight()+"px; background:"+d.backgroundColour+";").append("svg").attr("xmlns","http://www.w3.org/2000/svg").attr("xlink","http://www.w3.org/1999/xlink").attr("pointer-events","all").attr("style","background:"+d.backgroundColour+";").attr("alchInst",a.prototype.instances.length-1).on("click",c.interactions.deselectAll).call(c.interactions.zoom(d.scaleExtent)).on("dblclick.zoom",null).append("g").attr("transform","translate("+d.initialTranslate+") scale("+d.initialScale+")"),c.interactions.zoom().scale(d.initialScale),c.interactions.zoom().translate(d.initialTranslate),c.index=a.prototype.Index(c),c.generateLayout(),c.controlDash.init(),e=c.elements.edges.d3,f=c.elements.nodes.d3,c.layout.positionRootNodes(),c.force.start(),d.forceLocked)for(;c.force.alpha()>.005;)c.force.tick();return c._drawEdges=c.drawing.DrawEdges,c._drawNodes=c.drawing.DrawNodes,c._drawEdges.createEdge(e),c._drawNodes.createNode(f),c.index(),c.elements.nodes.svg.attr("transform",function(a){return"translate("+a.x+", "+a.y+")"}),console.log(Date()+" completed initial computation"),d.forceLocked||c.force.on("tick",c.layout.tick).start(),null!=d.afterLoad&&("function"==typeof d.afterLoad?d.afterLoad():"string"==typeof d.afterLoad&&(c[d.afterLoad]=!0)),d.cluster&&(g=d3.select(""+c.conf.divSelector+" svg").append("svg:defs")),d.nodeStats&&c.stats.nodeStats(),d.showEditor&&(h=new c.editor.Editor,i=new c.editor.Interactions,d3.select("body").on("keydown",i.deleteSelected),h.startEditor()),c.initial=!0}},a.prototype.stats=function(a){var b;return b=a,{init:function(){return b.stats.update()},nodeStats:function(){var a,c,d,e,f,g,h,i,j,k,l,m,n,o;if(f=[],c=b.get.allNodes().length,a=b.get.activeNodes().length,e=c-a,j="<li class = 'list-group-item gen_node_stat'>Number of nodes: <span class='badge'>"+c+"</span></li> <li class = 'list-group-item gen_node_stat'>Number of active nodes: <span class='badge'>"+a+"</span></li> <li class = 'list-group-item gen_node_stat'>Number of inactive nodes: <span class='badge'>"+e+"</span></li></br>",b.conf.nodeTypes){for(h=Object.keys(b.conf.nodeTypes),l="",o=b.conf.nodeTypes[h],m=0,n=o.length;n>m;m++)k=o[m],d=k.replace("_"," "),i=b.vis.selectAll("g.node."+k)[0].length,l+="<li class = 'list-group-item nodeType' id='li-"+k+"' name = "+d+">Number of <strong style='text-transform: uppercase'>"+d+"</strong> nodes: <span class='badge'>"+i+"</span></li>",f.push([""+k,i]);j+=l}return g="<li id='node-stats-graph' class='list-group-item'></li>",j+=g,b.dash.select("#node-stats").html(j),this.insertSVG("node",f)},edgeStats:function(){var a,c,d,e,f,g,h,i,j,k,l,m,n;if(e=[],c=b.get.allEdges().length,a=b.get.activeEdges().length,l=c-a,i="<li class = 'list-group-item gen_edge_stat'>Number of relationships: <span class='badge'>"+c+"</span></li> <li class = 'list-group-item gen_edge_stat'>Number of active relationships: <span class='badge'>"+a+"</span></li> <li class = 'list-group-item gen_edge_stat'>Number of inactive relationships: <span class='badge'>"+l+"</span></li></br>",b.conf.edgeTypes){for(g=_.values(alchemy.conf.edgeTypes)[0],k="",m=0,n=g.length;n>m;m++)j=g[m],j&&(d=j.replace("_"," "),h=_.filter(b.get.allEdges(),function(a){return a._edgeType===j?a:void 0}).length,k+="<li class = 'list-group-item edgeType' id='li-"+j+"' name = "+d+">Number of <strong style='text-transform: uppercase'>"+d+"</strong> relationships: <span class='badge'>"+h+"</span></li>",e.push([""+d,h]));i+=k}return f="<li id='node-stats-graph' class='list-group-item'></li>",i+=f,b.dash.select("#rel-stats").html(i),this.insertSVG("edge",e)},insertSVG:function(a,c){var d,e,f,g,h,i,j,k;return null===c?b.dash.select("#"+a+"-stats-graph").html("<br><h4 class='no-data'>There are no "+a+"Types listed in your conf.</h4>"):(k=.25*b.conf.graphWidth(),g=250,i=k/4,f=d3.scale.category20(),d=d3.svg.arc().outerRadius(i-10).innerRadius(i/2),h=d3.layout.pie().sort(null).value(function(a){return a[1]}),j=b.dash.select("#"+a+"-stats-graph").append("svg").append("g").style({width:k,height:g}).attr("transform","translate("+k/2+","+g/2+")"),e=j.selectAll(".arc").data(h(c)).enter().append("g").classed("arc",!0).on("mouseover",function(a,d){return b.dash.select("#"+c[d][0]+"-stat").classed("hidden",!1)}).on("mouseout",function(a,d){return b.dash.select("#"+c[d][0]+"-stat").classed("hidden",!0)}),e.append("path").attr("d",d).attr("stroke",function(a,b){return f(b)}).attr("stroke-width",2).attr("fill-opacity","0.3"),e.append("text").attr("transform",function(a){return"translate("+d.centroid(a)+")"}).attr("id",function(a,b){return""+c[b][0]+"-stat"}).attr("dy",".35em").classed("hidden",!0).text(function(a,b){return c[b][0]}))},update:function(){return b.conf.nodeStats&&this.nodeStats(),b.conf.edgeStats?this.edgeStats():void 0}}},a.prototype.updateGraph=function(a){var b;return b=a,function(){for(b.generateLayout(),b._drawEdges.createEdge(b.elements.edges.d3),b._drawNodes.createNode(b.elements.nodes.d3),b.layout.positionRootNodes(),b.force.start();b.force.alpha()>.005;)b.force.tick();
return b.force.on("tick",b.layout.tick).start(),b.elements.nodes.svg.attr("transform",function(a){return"translate("+a.x+", "+a.y+")"})}},a.prototype.defaults={plugins:null,renderer:"svg",graphWidth:function(){return d3.select(this.divSelector).node().parentElement.clientWidth},graphHeight:function(){return"BODY"===d3.select(this.divSelector).node().parentElement.nodeName?window.innerHeight:d3.select(this.divSelector).node().parentElement.clientHeight},alpha:.5,collisionDetection:!0,nodeOverlap:25,fixNodes:!1,fixRootNodes:!1,forceLocked:!0,linkDistancefn:"default",nodePositions:null,showEditor:!1,captionToggle:!1,toggleRootNodes:!1,removeElement:!1,cluster:!1,clusterKey:"cluster",clusterColours:d3.shuffle(["#DD79FF","#FFFC00","#00FF30","#5168FF","#00C0FF","#FF004B","#00CDCD","#f83f00","#f800df","#ff8d8f","#ffcd00","#184fff","#ff7e00"]),clusterControl:!1,nodeStats:!1,edgeStats:!1,edgeFilters:!1,nodeFilters:!1,edgesToggle:!1,nodesToggle:!1,zoomControls:!1,nodeCaption:"caption",nodeCaptionsOnByDefault:!1,nodeStyle:{all:{radius:10,color:"#68B9FE",borderColor:"#127DC1",borderWidth:function(a,b){return b/3},captionColor:"#FFFFFF",captionBackground:null,captionSize:12,selected:{color:"#FFFFFF",borderColor:"#349FE3"},highlighted:{color:"#EEEEFF"},hidden:{color:"none",borderColor:"none"}}},nodeColour:null,nodeMouseOver:"caption",nodeRadius:10,nodeTypes:null,rootNodes:"root",rootNodeRadius:15,nodeClick:null,edgeCaption:"caption",edgeCaptionsOnByDefault:!1,edgeStyle:{all:{width:4,color:"#CCC",opacity:.2,directed:!0,curved:!0,selected:{opacity:1},highlighted:{opacity:1},hidden:{opacity:0}}},edgeTypes:null,curvedEdges:!1,edgeWidth:function(){return 4},edgeOverlayWidth:20,directedEdges:!1,edgeArrowSize:5,edgeClick:null,search:!1,searchMethod:"contains",backgroundColour:"#000000",theme:null,afterLoad:"afterLoad",divSelector:"#alchemy",dataSource:null,initialScale:1,initialTranslate:[0,0],scaleExtent:[.5,2.4],exportSVG:!1,dataWarning:"default",warningMessage:"There be no data!  What's going on?"},c=function(a){return{a:a,createLink:function(a){var b;return b=this.a.conf,a.append("path").attr("class","edge-line").attr("id",function(a){return"path-"+a.id}),a.filter(function(a){return null!=a.caption}).append("text"),a.append("path").attr("class","edge-handler").style("stroke-width",""+b.edgeOverlayWidth).style("opacity","0")},styleLink:function(a){var b,c,d;return b=this.a,c=this.a.conf,d=this.a.drawing.EdgeUtils,a.each(function(a){var b,e,f,g,h,i,j,k,l;return f=d.edgeWalk(a),e=c.curvedEdges?30:0,b=e/10,k=a.source.radius+a["stroke-width"]/2,l=e/10,j=f.edgeLength/2,g=f.edgeLength-(a.target.radius-a.target["stroke-width"]/2),h=e/10,i=d3.select(this),i.style(d.edgeStyle(a)),i.attr("transform","translate("+a.source.x+", "+a.source.y+") rotate("+f.edgeAngle+")"),i.select(".edge-line").attr("d",function(){var d,f,i;return f="M"+k+","+l+"q"+j+","+e+" "+g+","+h,c.directedEdges?(i=2*a["stroke-width"],d="l"+-i+","+(i+b)+" l"+i+","+(-i-b)+" l"+-i+","+(-i+b),f+d):f}()),i.select(".edge-handler").attr("d",function(){return i.select(".edge-line").attr("d")})})},classEdge:function(a){return a.classed("active",!0)},styleText:function(a){var b,c,d;return b=this.a.conf,c=b.curvedEdges,d=this.a.drawing.EdgeUtils,a.select("text").each(function(a){var c,e;return e=d.edgeWalk(a),c=e.edgeLength/2,d3.select(this).attr("dx",""+c).text(a.caption).attr("xlink:xlink:href","#path-"+a.source.id+"-"+a.target.id).style("display",function(){return b.edgeCaptionsOnByDefault?"block":void 0})})},setInteractions:function(a){var b;return b=this.a.interactions,a.select(".edge-handler").on("click",b.edgeClick).on("mouseover",function(a){return b.edgeMouseOver(a)}).on("mouseout",function(a){return b.edgeMouseOut(a)})}}},d=function(a){return{a:a,createEdge:function(a){var b,c;return b=this.a.drawing.DrawEdge,c=this.a.vis.selectAll("g.edge").data(a),c.enter().append("g").attr("id",function(a){return"edge-"+a.id+"-"+a.pos}).attr("class",function(a){return"edge "+a.edgeType}).attr("source-target",function(a){return""+a.source.id+"-"+a.target.id}),b.createLink(c),b.classEdge(c),b.styleLink(c),b.styleText(c),b.setInteractions(c),c.exit().remove(),this.a.conf.directedEdges&&this.a.conf.curvedEdges?c.select(".edge-line").attr("marker-end","url(#arrow)"):void 0},updateEdge:function(a){var b,c;return b=this.a.drawing.DrawEdge,c=this.a.vis.select("#edge-"+a.id+"-"+a.pos),b.classEdge(c),b.styleLink(c),b.styleText(c),b.setInteractions(c)}}},e=function(a){return{a:a,styleText:function(a){var b,c,d;return b=this.a.conf,d=this.a.drawing.NodeUtils,c=this.a._nodes,a.selectAll("text").attr("dy",function(a){return c[a.id].getProperties().root?b.rootNodeRadius/2:2*b.nodeRadius-5}).attr("visibility",function(a){return"hidden"===c[a.id]._state?"hidden":"visible"}).text(function(a){return d.nodeText(a)}).style("display",function(){return b.nodeCaptionsOnByDefault?"block":void 0})},createNode:function(a){return a=_.difference(a,a.select("circle").data()),a.__proto__=d3.select().__proto__,a.append("circle").attr("id",function(a){return"circle-"+a.id}),a.append("svg:text").attr("id",function(a){return"text-"+a.id})},styleNode:function(a){var b;return b=this.a.drawing.NodeUtils,a.selectAll("circle").attr("r",function(a){return"function"==typeof a.radius?a.radius():a.radius}).each(function(a){return d3.select(this).style(b.nodeStyle(a))})},setInteractions:function(a){var b,c,d,e,f,g,h;return b=this.a.conf,c=this.a.interactions,e="editor"===this.a.get.state("interactions"),d=d3.behavior.drag().origin(Object).on("dragstart",null).on("drag",null).on("dragend",null),e?(f=new this.a.editor.Interactions,a.on("mouseup",function(a){return f.nodeMouseUp(a)}).on("mouseover",function(a){return f.nodeMouseOver(a)}).on("mouseout",function(a){return f.nodeMouseOut(a)}).on("dblclick",function(a){return c.nodeDoubleClick(a)}).on("click",function(a){return f.nodeClick(a)})):(a.on("mouseup",null).on("mouseover",function(a){return c.nodeMouseOver(a)}).on("mouseout",function(a){return c.nodeMouseOut(a)}).on("dblclick",function(a){return c.nodeDoubleClick(a)}).on("click",function(a){return c.nodeClick(a)}),d=d3.behavior.drag().origin(Object).on("dragstart",c.nodeDragStarted).on("drag",c.nodeDragged).on("dragend",c.nodeDragended),b.fixNodes||(g=a.filter(function(a){return a.root!==!0}),g.call(d)),b.fixRootNodes?void 0:(h=a.filter(function(a){return a.root===!0}),h.call(d)))}}},f=function(a){return{a:a,createNode:function(a){var b,c;return b=this.a.drawing.DrawNode,c=this.a.vis.selectAll("g.node").data(a,function(a){return a.id}),c.enter().append("g").attr("class",function(a){var b;return b=a.self._nodeType,"node "+b+" active"}).attr("id",function(a){return"node-"+a.id}).classed("root",function(a){return a.root}),b.createNode(c),b.styleNode(c),b.styleText(c),b.setInteractions(c),c.exit().remove()},updateNode:function(a){var b,c;return b=this.a.drawing.DrawNode,c=this.a.vis.select("#node-"+a.id),b.styleNode(c),b.styleText(c),b.setInteractions(c)}}},a.prototype.EdgeUtils=function(a){return{a:a,edgeStyle:function(a){var b,c,d,e,f;return c=this.a.conf,d=this.a._edges[a.id][a.pos],f=this.a.svgStyles.edge.update(d),e=this.a._nodes,this.a.conf.cluster&&(b=this.a.layout._clustering,f.stroke=function(a){var d,f,g,h,i,j;return d=c.clusterKey,i=e[a.source.id]._properties,j=e[a.target.id]._properties,i.root||j.root?(h=i.root?j[d]:i[d],""+b.getClusterColour(h)):i[d]===j[d]?(h=i[d],""+b.getClusterColour(h)):i[d]!==j[d]?(g=""+i[d]+"-"+j[d],f="cluster-gradient-"+g,"url(#"+f+")"):void 0}(a)),f},triangle:function(a){var b,c,d;return d=a.target.x-a.source.x,b=a.target.y-a.source.y,c=Math.sqrt(b*b+d*d),[d,b,c]},edgeWalk:function(a){var b,c,d,e,f,g,h,i;return i=this.triangle(a),h=i[0],e=i[1],f=i[2],d=a["stroke-width"],b=2,g=a.source.radius+a.source["stroke-width"]-d/2+b,c=f-g-1.5*b,{edgeAngle:Math.atan2(e,h)/Math.PI*180,edgeLength:c}},middleLine:function(a){return this.curvedDirectedEdgeWalk(a,"middle")},startLine:function(a){return this.curvedDirectedEdgeWalk(a,"linkStart")},endLine:function(a){return this.curvedDirectedEdgeWalk(a,"linkEnd")},edgeLength:function(a){var b,c,d;return d=a.target.x-a.source.x,b=a.target.y-a.source.y,c=Math.sqrt(b*b+d*d)},edgeAngle:function(a){var b,c;return c=a.target.x-a.source.x,b=a.target.y-a.source.y,Math.atan2(b,c)/Math.PI*180},captionAngle:function(a){return-90>a||a>90?180:0},middlePath:function(a){var b,c;return c=this.a.vis.select("#path-"+a.id).node(),b=c.getPointAtLength(c.getTotalLength()/2),{x:b.x,y:b.y}},middlePathCurve:function(a){var b,c;return c=d3.select("#path-"+a.id).node(),b=c.getPointAtLength(c.getTotalLength()/2),{x:b.x,y:b.y}}}},a.prototype.NodeUtils=function(a){var b;return b=a,{nodeStyle:function(a){var c,d;return c=b.conf,d=a.self,c.cluster&&"hidden"!==d._state&&(a.fill=function(){var a,e,f,g,h,i,j;return e=b.layout._clustering,j=d.getProperties(),a=e.clusterMap,i=c.clusterKey,h=c.clusterColours,g=a[j[i]]%h.length,f=h[g],""+f}(a),a.stroke=a.fill),a},nodeText:function(a){var c,d,e;return d=b.conf,e=b._nodes[a.id]._properties,d.nodeCaption&&"string"==typeof d.nodeCaption?null!=e[d.nodeCaption]?e[d.nodeCaption]:"":d.nodeCaption&&"function"==typeof d.nodeCaption?(c=d.nodeCaption(e),(void 0===c||"undefined"===String(c))&&(b.log.caption="At least one caption returned undefined",d.caption=!1),c):void 0}}},a.prototype.svgStyles=function(a){return{a:a,node:{a:this.a,populate:function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;return b=this.a.conf,d=_.omit(b.nodeStyle.all,"selected","highlighted","hidden"),c=a,m=function(a){return"function"==typeof a?a:function(){return a}},g=_.keys(b.nodeTypes)[0],f=a.getProperties()[g],void 0===b.nodeStyle[f]&&(f="all"),n=_.assign(_.cloneDeep(d),b.nodeStyle[f]),k=_.assign(n,b.nodeStyle[f][a._state]),h=m(k.radius),e=m(k.color),i=m(k.borderColor),j=m(k.borderWidth),l={},l.radius=h(c),l.fill=e(c),l.stroke=i(c),l["stroke-width"]=j(c,h(c)),l}},edge:{a:this.a,populate:function(a){var b,c,d,e,f,g,h,i,j,k;return c=this.a.conf,d=_.omit(c.edgeStyle.all,"selected","highlighted","hidden"),i=function(a){return"function"==typeof a?a:function(){return a}},e=a._edgeType,void 0===c.edgeStyle[e]&&(e="all"),j=_.assign(_.cloneDeep(d),c.edgeStyle[e]),g=_.assign(j,c.edgeStyle[e][a._state]),k=i(g.width),b=i(g.color),f=i(g.opacity),h={stroke:b(a),"stroke-width":k(a),opacity:f(a),fill:"none"}},update:function(a){var b,c,d,e,f,g,h;return c=this.a.conf,e=a._style,g=function(a){return"function"==typeof a?a:function(){return a}},h=g(e.width),b=g(e.color),d=g(e.opacity),f={stroke:b(a),"stroke-width":h(a),opacity:d(a),fill:"none"}}}}},g=function(){function a(){this.nodeEditor=n(this.nodeEditor,this),this.startEditor=n(this.startEditor,this),this.utils=new alchemy.editor.Utils}return a.prototype.editorContainerHTML='<div id="editor-header" data-toggle="collapse" data-target="#editor #element-options">\n    <h3>Editor</h3><span class="fa fa-2x fa-caret-right"></span>\n</div>\n<div id="element-options" class="collapse">\n    <ul class="list-group"> \n        <li class="list-group-item" id="remove">Remove Selected</li> \n        <li class="list-group-item" id="editor-interactions">Editor mode enabled, click to disable editor interactions</li>\n    </ul>\n</div>',a.prototype.elementEditorHTML=function(a){return"<h4>"+a+' Editor</h4>\n<form id="add-property-form">\n    <div id="add-property">\n        <input class="form-control" id="add-prop-key" placeholder="New Property Name">\n        <input class="form-control" id="add-prop-value" placeholder="New Property Value">\n    </div>\n    <input id="add-prop-submit" type="submit" value="Add Property" placeholder="add a property to this node">\n</form>\n<form id="properties-list">\n    <input id="update-properties" type="submit" value="Update Properties">\n</form>'},a.prototype.startEditor=function(){var a,b,c,d,e;return a=alchemy.conf.divSelector,d=this.editorContainerHTML,b=alchemy.dash.select("#control-dash").append("div").attr("id","editor").html(d),b.select("#editor-header").on("click",function(){return alchemy.dash.select("#element-options").classed("in")?alchemy.dash.select("#editor-header>span").attr("class","fa fa-2x fa-caret-right"):alchemy.dash.select("#editor-header>span").attr("class","fa fa-2x fa-caret-down")}),c=b.select("#element-options ul #editor-interactions").on("click",function(){return d3.select(this).attr("class",function(){return"editor"===alchemy.get.state()?(alchemy.set.state("interactions","default"),"inactive list-group-item"):(alchemy.set.state("interactions","editor"),"active list-group-item")}).html(function(){return"editor"===alchemy.get.state()?"Disable Editor Interactions":"Enable Editor Interactions"})}),b.select("#element-options ul #remove").on("click",function(){return alchemy.editor.remove()}),e=this.utils,c.on("click",function(){return alchemy.dash.select("#editor-interactions").classed("active")?(e.disableEditor(),alchemy.dash.select("#editor-interactions").classed({active:!1,inactive:!0}).html("Editor mode disabled, click to enable editor interactions")):(e.enableEditor(),alchemy.dash.select("#editor-interactions").classed({active:!0,inactive:!1}).html("Editor mode enabled, click to disable editor interactions"))})},a.prototype.nodeEditor=function(a){var b,c,d,e,f,g,h,i,j,k,l,m;c=alchemy.conf.divSelector,d=alchemy.dash.select("#control-dash #editor"),i=d.select("#element-options"),f=this.elementEditorHTML("Node"),e=i.append("div").attr("id","node-editor").html(f),e.attr("class",function(){var a;return a=alchemy.dash.select("#editor-interactions").classed("active"),a?"enabled":"hidden"}),b=d.select("#node-editor form #add-property"),b.select("#node-add-prop-key").attr("placeholder","New Property Name").attr("value",null),b.select("#node-add-prop-value").attr("placeholder","New Property Value").attr("value",null),alchemy.dash.select("#add-property-form").on("submit",function(){var a,b;return event.preventDefault(),a=alchemy.dash.select("#add-prop-key").property("value"),a=a.replace(/\s/g,"_"),b=alchemy.dash.select("#add-prop-value").property("value"),l(a,b,!0),alchemy.dash.selectAll("#add-property .edited-property").classed({"edited-property":!1}),this.reset()}),g=alchemy._nodes[a.id].getProperties(),alchemy.vis.select("#node-"+a.id).classed({editing:!0}),k=d.select("#node-editor #properties-list");for(j in g)m=g[j],h=k.append("div").attr("id","node-"+j).attr("class","property form-inline form-group"),h.append("label").attr("for","node-"+j+"-input").attr("class","form-control property-name").text(""+j),h.append("input").attr("id","node-"+j+"-input").attr("class","form-control property-value").attr("value",""+m);return alchemy.dash.select("#properties-list").on("submit",function(){var a,b,c,d,e,f,g;for(event.preventDefault(),b=alchemy.dash.selectAll(".edited-property"),g=b[0],e=0,f=g.length;f>e;e++)j=g[e],c=alchemy.dash.select(j),a=c.select("label").text(),d=c.select("input").attr("value"),l(a,d,!1);return alchemy.dash.selectAll("#node-properties-list .edited-property").classed({"edited-property":!1}),this.reset()}),d3.selectAll("#add-prop-key, #add-prop-value, .property").on("keydown",function(){return 13===d3.event.keyCode&&event.preventDefault(),d3.select(this).classed({"edited-property":!0})}),l=function(b,c,d){var e,f;return f=a.id,""!==b&&""!==c?(alchemy._nodes[f].setProperty(""+b,""+c),e=alchemy._drawNodes,e.updateNode(alchemy.viz.select("#node-"+f)),d===!0?(alchemy.dash.select("#node-add-prop-key").attr("value","property added/updated to key: "+b),alchemy.dash.select("#node-add-prop-value").attr("value","property at "+b+" updated to: "+c)):alchemy.dash.select("#node-"+b+"-input").attr("value","property at "+b+" updated to: "+c)):d===!0?(alchemy.dash.select("#node-add-prop-key").attr("value","null or invalid input"),alchemy.dash.select("#node-add-prop-value").attr("value","null or invlid input")):alchemy.dash.select("#node-"+b+"-input").attr("value","null or invalid input")}},a.prototype.editorClear=function(){return alchemy.dash.selectAll(".node").classed({editing:!1}),alchemy.dash.selectAll(".edge").classed({editing:!1}),alchemy.dash.select("#node-editor").remove(),alchemy.dash.select("#edge-editor").remove(),alchemy.dash.select("#node-add-prop-submit").attr("placeholder",function(){return alchemy.vis.selectAll(".selected").empty()?"select a node or edge to edit properties":"add a property to this element"})},a.prototype.edgeEditor=function(a){var b,c,d,e,f,g,h,i,j,k,l,m;c=alchemy.conf.divSelector,f=alchemy.dash("#control-dash #editor"),i=f.select("#element-options"),h=this.elementEditorHTML("Edge"),g=i.append("div").attr("id","edge-editor").html(h),g.attr("class",function(){return alchemy.dash.select("#editor-interactions").classed("active")?"enabled":"hidden"}),b=f.select("#edge-editor form #add-property"),b.select("#add-prop-key").attr("placeholder","New Property Name").attr("value",null),b.select("#add-prop-value").attr("placeholder","New Property Value").attr("value",null),d=alchemy._edges[a.id].getProperties(),alchemy.vis.select("#edge-"+a.id).classed({editing:!0}),k=f.select("#edge-editor #properties-list");for(j in d)m=d[j],e=k.append("div").attr("id","edge-"+j).attr("class","property form-inline form-group"),e.append("label").attr("for","edge-"+j+"-input").attr("class","form-control property-name").text(""+j),e.append("input").attr("id","edge-"+j+"-input").attr("class","form-control property-value").attr("value",""+m);return alchemy.dash.selectAll("#add-prop-key, #add-prop-value, .property").on("keydown",function(){return 13===d3.event.keyCode&&event.preventDefault(),d3.select(this).classed({"edited-property":!0})}),alchemy.dash.select("#add-property-form").on("submit",function(){var a,b;return event.preventDefault(),a=alchemy.dash.select("#add-prop-key").property("value"),a=a.replace(/\s/g,"_"),b=alchemy.dash.select("#add-prop-value").property("value"),l(a,b,!0),alchemy.dash.selectAll("#add-property .edited-property").classed({"edited-property":!1}),this.reset()}),d3.select("#properties-list").on("submit",function(){var a,b,c,d,e,f,g;for(event.preventDefault(),b=alchemy.dash.selectAll(".edited-property"),g=b[0],e=0,f=g.length;f>e;e++)j=g[e],c=alchemy.dash.select(j),a=c.select("label").text(),d=c.select("input").property("value"),l(a,d,!1);return alchemy.dash.selectAll("#properties-list .edited-property").classed({"edited-property":!1}),this.reset()}),l=function(b,c,d){var e,f,g;return f=a.id,""!==b&&""!==c?(alchemy._edges[f].setProperty(""+b,""+c),g=alchemy.vis.select("#edge-"+f),e=new alchemy.drawing.DrawEdges,e.updateEdge(alchemy.vis.select("#edge-"+f)),d===!0?(alchemy.dash.select("#add-prop-key").attr("value","property added/updated to key: "+b),alchemy.dash.select("#add-prop-value").attr("value","property at "+b+" updated to: "+c)):alchemy.dash.select("#edge-"+b+"-input").attr("value","property at "+b+" updated to: "+c)):d===!0?(alchemy.dash.select("#add-prop-key").attr("value","null or invalid input"),alchemy.dash.select("#add-prop-value").attr("value","null or invlid input")):alchemy.dash.select("#edge-"+b+"-input").attr("value","null or invalid input")}},a}(),h=function(){function a(){this.reset=n(this.reset,this),this.deleteSelected=n(this.deleteSelected,this),this.addNodeDragended=n(this.addNodeDragended,this),this.addNodeDragging=n(this.addNodeDragging,this),this.addNodeStart=n(this.addNodeStart,this),this.edgeClick=n(this.edgeClick,this),this.nodeClick=n(this.nodeClick,this),this.nodeMouseUp=n(this.nodeMouseUp,this),this.editor=new alchemy.editor.Editor}return a.prototype.nodeMouseOver=function(){var a;return d3.select(this).select("circle").empty()||(a=d3.select(this).select("circle").attr("r"),d3.select(this).select("circle").attr("r",3*a)),this},a.prototype.nodeMouseUp=function(a){return this.sourceNode!==a?(this.mouseUpNode=!0,this.targetNode=a,this.click=!1):this.click=!0,this},a.prototype.nodeMouseOut=function(){var a;return d3.select(this).select("circle").empty()||(a=d3.select(this).select("circle").attr("r"),d3.select(this).select("circle").attr("r",a/3)),this},a.prototype.nodeClick=function(a){var b;return d3.event.stopPropagation(),alchemy.vis.select("#node-"+a.id).empty()||(b=alchemy.vis.select("#node-"+a.id).classed("selected"),alchemy.vis.select("#node-"+a.id).classed("selected",!b)),this.editor.editorClear(),this.editor.nodeEditor(a)},a.prototype.edgeClick=function(a){return d3.event.stopPropagation(),this.editor.editorClear(),this.editor.edgeEditor(a)},a.prototype.addNodeStart=function(a){return d3.event.sourceEvent.stopPropagation(),this.sourceNode=a,alchemy.vis.select("#dragline").classed({hidden:!1}),this},a.prototype.addNodeDragging=function(){var a,b;return a=d3.event.x,b=d3.event.y,alchemy.vis.select("#dragline").attr("x1",this.sourceNode.x).attr("y1",this.sourceNode.y).attr("x2",a).attr("y2",b).attr("style","stroke: #FFF"),this},a.prototype.addNodeDragended=function(){var a,b,c;return this.click||(this.mouseUpNode||(a=alchemy.vis.select("#dragline"),b=a.attr("x2"),c=a.attr("y2"),this.targetNode={id:""+_.uniqueId("addedNode_"),x:parseFloat(b),y:parseFloat(c),caption:"node added"}),this.newEdge={id:""+this.sourceNode.id+"-"+this.targetNode.id,source:this.sourceNode.id,target:this.targetNode.id,caption:"edited"},alchemy.editor.update(this.targetNode,this.newEdge)),this.reset(),this},a.prototype.deleteSelected=function(){switch(d3.event.keyCode){case 8:case 46:if("INPUT"!==d3.select(d3.event.target).node().tagName)return d3.event.preventDefault(),alchemy.editor.remove()}},a.prototype.reset=function(){return this.mouseUpNode=null,this.sourceNode=null,this.targetNode=null,this.newEdge=null,this.click=null,alchemy.vis.select("#dragline").classed({hidden:!0}).attr("x1",0).attr("y1",0).attr("x2",0).attr("y2",0),this},a}(),i=function(){function a(){this.enableEditor=n(this.enableEditor,this),this.drawNodes=alchemy._drawNodes,this.drawEdges=alchemy._drawEdges}return a.prototype.enableEditor=function(){var a,b,c;return alchemy.set.state("interactions","editor"),a=alchemy.vis.append("line").attr("id","dragline"),this.drawNodes.updateNode(alchemy.node),this.drawEdges.updateEdge(alchemy.edge),c=alchemy.vis.selectAll(".selected"),b=new alchemy.editor.Editor,c.empty()||1!==c.length?c.classed({selected:!1}):c.classed("node")?(b.nodeEditor(c.datum()),alchemy.dash.select("#node-editor").attr("class","enabled").style("opacity",1)):c.classed("edge")?(b.edgeEditor(c.datum()),alchemy.dash.select("#edge-editor").attr("class","enabled").style("opacity",1)):void 0},a.prototype.disableEditor=function(){return alchemy.setState("interactions","default"),alchemy.vis.select("#dragline").remove(),alchemy.dash.select("#node-editor").transition().duration(300).style("opacity",0),alchemy.dash.select("#node-editor").transition().delay(300).attr("class","hidden"),this.drawNodes.updateNode(alchemy.node),alchemy.vis.selectAll(".node").classed({selected:!1})},a.prototype.remove=function(){var a,b,c,d,e,f,g,h,i,j,k,l;for(e=alchemy.vis.selectAll(".selected.node"),j=e[0],l=[],f=0,h=j.length;h>f;f++)if(b=j[f],c=alchemy.vis.select(b).data()[0].id,d=alchemy._nodes[c],null!=d){for(k=d.adjacentEdges,g=0,i=k.length;i>g;g++)a=k[g],alchemy._edges=_.omit(alchemy._edges,""+a.id+"-"+a._index),alchemy.edge=alchemy.edge.data(_.map(alchemy._edges,function(a){return a._d3}),function(a){return a.id}),alchemy.vis.select("#edge-"+a.id+"-"+a._index).remove();alchemy._nodes=_.omit(alchemy._nodes,""+c),alchemy.node=alchemy.node.data(_.map(alchemy._nodes,function(a){return a._d3}),function(a){return a.id}),alchemy.vis.select(b).remove(),l.push("editor"===alchemy.get.state("interactions")?alchemy.modifyElements.nodeEditorClear():void 0)}else l.push(void 0);return l},a.prototype.addNode=function(a){var b;return b=alchemy._nodes[a.id]=new alchemy.models.Node({id:""+a.id}),b.setProperty("caption",a.caption),b.setD3Property("x",a.x),b.setD3Property("y",a.y),alchemy.node=alchemy.node.data(_.map(alchemy._nodes,function(a){return a._d3}),function(a){return a.id})},a.prototype.addEdge=function(a){var b;return b=alchemy._edges[a.id]=new alchemy.models.Edge(a),alchemy.edge=alchemy.edge.data(_.map(alchemy._edges,function(a){return a._d3}),function(a){return a.id})},a.prototype.update=function(a,b){return this.mouseUpNode?(alchemy.editor.addEdge(b),this.drawEdges.createEdge(alchemy.edge)):(alchemy.editor.addNode(a),alchemy.editor.addEdge(b),this.drawEdges.createEdge(alchemy.edge),this.drawNodes.createNode(alchemy.node)),alchemy.layout.tick()},a}(),a.prototype.Edge=function(a){var b;return b=function(){function b(b,c){var d;null==c&&(c=null),this.allNodesActive=n(this.allNodesActive,this),this.setProperties=n(this.setProperties,this),this.getStyles=n(this.getStyles,this),this.setProperties=n(this.setProperties,this),this.getProperties=n(this.getProperties,this),this._setID=n(this._setID,this),this._setD3Properties=n(this._setD3Properties,this),this.a=a,d=this.a.conf,this.id=this._setID(b),this._index=c,this._state="active",this._properties=b,this._edgeType=this._setEdgeType(),this._style=null!=d.edgeStyle[this._edgeType]?_.merge(_.clone(d.edgeStyle.all),d.edgeStyle[this._edgeType]):_.clone(d.edgeStyle.all),this._d3=_.merge({id:this.id,pos:this._index,edgeType:this._edgeType,source:this.a._nodes[this._properties.source]._d3,target:this.a._nodes[this._properties.target]._d3,self:this},this.a.svgStyles.edge.populate(this)),this._setCaption(b,d),this.a._nodes[""+b.source]._addEdge(this),this.a._nodes[""+b.target]._addEdge(this)}return b.prototype._setD3Properties=function(a){return _.merge(this._d3,a)},b.prototype._setID=function(a){return null!=a.id?a.id:""+a.source+"-"+a.target},b.prototype._setCaption=function(a,b){var c,d;return c=b.edgeCaption,d=function(a){switch(typeof c){case"string":return a[c];case"function":return c(a)}}(a),d?this._d3.caption=d:void 0},b.prototype._setEdgeType=function(){var a,b,c;return a=this.a.conf,a.edgeTypes&&(_.isPlainObject(a.edgeTypes)?(c=Object.keys(this.a.conf.edgeTypes),b=this._properties[c]):_.isArray(a.edgeTypes)?b=this._properties.caption:"string"==typeof a.edgeTypes&&(b=this._properties[a.edgeTypes])),void 0===b&&(b="all"),this._setD3Properties("edgeType",b),b},b.prototype.getProperties=function(){var a,b,c;return a=arguments[0],b=2<=arguments.length?m.call(arguments,1):[],null==a&&(a=null),null==a&&0===b.length?this._properties:0!==b.length?(c=_.union([a],b),_.pick(this._properties,c)):this._properties[a]},b.prototype.setProperties=function(a,b){return null==b&&(b=null),_.isPlainObject(a)?(_.assign(this._properties,a),"source"in a&&this._setD3Properties({source:alchemy._nodes[a.source]._d3}),"target"in a&&this._setD3Properties({target:alchemy._nodes[a.target]._d3})):(this._properties[a]=b,("source"===a||"target"===a)&&this._setD3Properties({property:alchemy._nodes[b]._d3})),this},b.prototype.getStyles=function(){var a,b,c;return b=arguments[0],c=2<=arguments.length?m.call(arguments,1):[],a=this,void 0===b?a._style:_.map(arguments,function(b){return a._style[b]})},b.prototype.setProperties=function(a,b){return null==b&&(b=null),_.isPlainObject(a)?(_.assign(this._properties,a),"source"in a&&this._setD3Properties({source:this.a._nodes[a.source]._d3}),"target"in a&&this._setD3Properties({target:this.a._nodes[a.target]._d3})):(this._properties[a]=b,("source"===a||"target"===a)&&this._setD3Properties({property:this.a._nodes[b]._d3})),this},b.prototype.setStyles=function(a,b){return null==b&&(b=null),void 0===a&&(a=this.a.svgStyles.edge.populate(this)),_.isPlainObject(a)?_.assign(this._style,a):"string"==typeof a&&(this._style[a]=b),this._setD3Properties(this.a.svgStyles.edge.update(this)),this.a._drawEdges.updateEdge(this._d3),this},b.prototype.toggleHidden=function(){return this._state="hidden"===this._state?"active":"hidden",this.setStyles()},b.prototype.allNodesActive=function(){var a,b,c,d;return a=this._properties.source,c=this._properties.target,b=alchemy.get.nodes(a)[0],d=alchemy.get.nodes(c)[0],"active"===b._state&&"active"===d._state},b.prototype.remove=function(){var a,b;return a=this,delete this.a._edges[a.id],null!=this.a._nodes[a._properties.source]&&_.remove(this.a._nodes[a._properties.source]._adjacentEdges,function(b){return b.id===a.id?b:void 0}),null!=this.a._nodes[a._properties.target]&&_.remove(this.a._nodes[a._properties.target]._adjacentEdges,function(b){return b.id===a.id?b:void 0}),this.a.vis.select("#edge-"+a.id+"-"+a._index).remove(),b=_.filter(this.a.force.links(),function(b){return b.id!==a.id?b:void 0}),this.a.force.links(b)},b}()},a.prototype.Node=function(a){var b;return b=function(){function b(b){this.getStyles=n(this.getStyles,this),this.setProperty=n(this.setProperty,this),this.getProperties=n(this.getProperties,this),this._setD3Properties=n(this._setD3Properties,this),this._setNodeType=n(this._setNodeType,this);var c;this.a=a,c=this.a.conf,this.id=b.id,this._properties=b,this._d3=_.merge({id:this.id,root:this._properties[c.rootNodes],self:this},this.a.svgStyles.node.populate(this)),this._nodeType=this._setNodeType(),this._style=c.nodeStyle[this._nodeType]?c.nodeStyle[this._nodeType]:c.nodeStyle.all,this._state="active",this._adjacentEdges=[]}return b.prototype._setNodeType=function(){var a,b,c,d;return a=this.a.conf,a.nodeTypes&&(_.isPlainObject(a.nodeTypes)?(b=Object.keys(this.a.conf.nodeTypes),d=_.values(a.nodeTypes),c=this._properties[b]):"string"==typeof a.nodeTypes&&(c=this._properties[a.nodeTypes])),void 0===c&&(c="all"),this._setD3Properties("nodeType",c),c},b.prototype._setD3Properties=function(a){return _.merge(this._d3,a)},b.prototype._addEdge=function(a){return this._adjacentEdges=_.union(this._adjacentEdges,[a])},b.prototype.getProperties=function(){var a,b,c;return a=arguments[0],b=2<=arguments.length?m.call(arguments,1):[],null==a&&(a=null),null==a&&0===b.length?this._properties:0!==b.length?(c=_.union([a],b),_.pick(this._properties,c)):this._properties[a]},b.prototype.setProperty=function(a,b){return null==b&&(b=null),_.isPlainObject(a)?_.assign(this._properties,a):this._properties[a]=b,this},b.prototype.removeProperty=function(){var a,b,c,d,e;for(c=arguments[0],b=2<=arguments.length?m.call(arguments,1):[],d=0,e=arguments.length;e>d;d++)a=arguments[d],delete this._properties[a];return this},b.prototype.getStyles=function(){var a,b,c;return a=arguments[0],b=2<=arguments.length?m.call(arguments,1):[],c=this,void 0===a?c._style:_.map(arguments,function(a){return c._style[a]})},b.prototype.setStyles=function(a,b){return null==b&&(b=null),void 0===a?a=this.a.svgStyles.node.populate(this):_.isPlainObject(a)?_.assign(this._style,a):this._style[a]=b,this._setD3Properties(this.a.svgStyles.node.populate(this)),this.a._drawNodes.updateNode(this._d3),this},b.prototype.toggleHidden=function(){var a;return a=this.a,this._state="hidden"===this._state?"active":"hidden",this.setStyles(),_.each(this._adjacentEdges,function(b){var c,d,e,f,g;return g=b.id.split("-"),c=g[0],e=g[1],d=a._nodes[""+c]._state,f=a._nodes[""+e]._state,"hidden"===b._state&&"active"===d&&"active"===f?b.toggleHidden():"active"!==b._state||"hidden"!==d&&"hidden"!==f?void 0:b.toggleHidden()})},b.prototype.outDegree=function(){return this._adjacentEdges.length},b.prototype.remove=function(){for(;!_.isEmpty(this._adjacentEdges);)this._adjacentEdges[0].remove();return delete this.a._nodes[this.id],this.a.vis.select("#node-"+this.id).remove()},b}()},a.prototype.plugins=function(b){return{init:function(){return _.each(_.keys(b.conf.plugins),function(c){return b.plugins[c]=a.prototype.plugins[c](b),null!=b.plugins[c].init?b.plugins[c].init():void 0})}}},a.prototype.themes={"default":{backgroundColour:"#000000",nodeStyle:{all:{radius:function(){return 10},color:function(){return"#68B9FE"},borderColor:function(){return"#127DC1"},borderWidth:function(a,b){return b/3},captionColor:function(){return"#FFFFFF"},captionBackground:function(){return null},captionSize:12,selected:{color:function(){return"#FFFFFF"},borderColor:function(){return"#349FE3"}},highlighted:{color:function(){return"#EEEEFF"}},hidden:{color:function(){return"none"},borderColor:function(){return"none"}}}},edgeStyle:{all:{width:4,color:"#CCC",opacity:.2,directed:!0,curved:!0,selected:{opacity:1},highlighted:{opacity:1},hidden:{opacity:0}}}},white:{theme:"white",backgroundColour:"#FFFFFF",nodeStyle:{all:{radius:function(){return 10
},color:function(){return"#68B9FE"},borderColor:function(){return"#127DC1"},borderWidth:function(a,b){return b/3},captionColor:function(){return"#FFFFFF"},captionBackground:function(){return null},captionSize:12,selected:{color:function(){return"#FFFFFF"},borderColor:function(){return"38DD38"}},highlighted:{color:function(){return"#EEEEFF"}},hidden:{color:function(){return"none"},borderColor:function(){return"none"}}}},edgeStyle:{all:{width:4,color:"#333",opacity:.4,directed:!1,curved:!1,selected:{color:"#38DD38",opacity:.9},highlighted:{color:"#383838",opacity:.7},hidden:{opacity:0}}}}},a.prototype.exports=function(a){var b;return b=a,{init:function(){return b.exports.show()},show:function(){return b.dash.select("#all-exports").append("li").attr({"class":"list-group-item active-label toggle"}).html("SVG").on("click",function(){var a,c,d,e,f;return d=d3.select(""+b.conf.divSelector+" svg").node(),c=(new XMLSerializer).serializeToString(d),e="data:image/svg+xml;utf8,"+c,a=e.replace("xlink:",""),f=window.open(a),f.focus()})}}},l=function(){function a(a){this.dataWarning=n(this.dataWarning,this),this.a=a}return a.prototype.dataWarning=function(){return this.a.conf.dataWarning&&"function"==typeof this.a.conf.dataWarning?this.a.conf.dataWarning():"default"===this.a.conf.dataWarning?console.log("No dataSource was loaded"):void 0},a.prototype.divWarning=function(){return"create an element that matches the value for 'divSelector' in your conf.\nFor instance, if you are using the default 'divSelector' conf, simply provide\n<div id='#alchemy'></div>."},a}()}).call(this);(function() {
  "Alchemy.js is a graph drawing application for the web.\nCopyright (C) 2014  GraphAlchemist, Inc.\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU Affero General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU Affero General Public License for more details.\n\nYou should have received a copy of the GNU Affero General Public License\nalong with this program.  If not, see <http://www.gnu.org/licenses/>.\nlets";
  var Alchemy, Clustering, DrawEdge, DrawEdges, DrawNode, DrawNodes, Editor, EditorInteractions, EditorUtils, Layout, root, warnings,
    __slice = [].slice,
    __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };

  Alchemy = (function() {
    function Alchemy(userConf) {
      if (userConf == null) {
        userConf = null;
      }
      this.a = this;
      this.version = "0.4.1";
      this.get = new this.Get(this);
      this.remove = new this.Remove(this);
      this.create = new this.Create(this);
      this.set = new this.Set(this);
      this.drawing = {
        DrawEdge: DrawEdge(this),
        DrawEdges: DrawEdges(this),
        DrawNode: DrawNode(this),
        DrawNodes: DrawNodes(this),
        EdgeUtils: this.EdgeUtils(this),
        NodeUtils: this.NodeUtils(this)
      };
      this.controlDash = this.controlDash(this);
      this.stats = this.stats(this);
      this.layout = Layout;
      this.clustering = Clustering;
      this.models = {
        Node: this.Node(this),
        Edge: this.Edge(this)
      };
      this.utils = {
        warnings: new warnings(this)
      };
      this.filters = this.filters(this);
      this.exports = this.exports(this);
      this.visControls = {};
      this.styles = {};
      this.editor = {};
      this.log = {};
      this.state = {
        "interactions": "default",
        "layout": "default"
      };
      this.startGraph = this.startGraph(this);
      this.updateGraph = this.updateGraph(this);
      this.generateLayout = this.generateLayout(this);
      this.svgStyles = this.svgStyles(this);
      this.interactions = this.interactions(this);
      this.search = this.search(this);
      this.plugins = this.plugins(this);
      this._nodes = {};
      this._edges = {};
      this.getNodes = this.get.getNodes;
      this.getEdges = this.get.getEdges;
      this.allNodes = this.get.allNodes;
      this.allEdges = this.get.allEdges;
      if (userConf) {
        this.begin(userConf);
      }
    }

    Alchemy.prototype.begin = function(userConf) {
      var conf;
      conf = this.setConf(userConf);
      switch (typeof this.conf.dataSource) {
        case 'string':
          d3.json(this.a.conf.dataSource, this.a.startGraph);
          break;
        case 'object':
          this.a.startGraph(this.a.conf.dataSource);
      }
      this.plugins.init();
      Alchemy.prototype.instances.push(this);
      return this;
    };

    Alchemy.prototype.setConf = function(userConf) {
      var key, val;
      if (userConf.theme != null) {
        userConf = _.merge(_.cloneDeep(this.defaults), this.a.themes["" + userConf.theme]);
      }
      for (key in userConf) {
        val = userConf[key];
        switch (key) {
          case "clusterColors":
            userConf["clusterColours"] = val;
            break;
          case "backgroundColor":
            userConf["backgroundColour"] = val;
            break;
          case "nodeColor":
            userConf[nodeColour] = val;
        }
      }
      return this.a.conf = _.merge(_.cloneDeep(this.defaults), userConf);
    };

    Alchemy.prototype.instances = [];

    Alchemy.prototype.getInst = function(svg) {
      var instNumber;
      instNumber = parseInt(d3.select(svg).attr("alchInst"));
      return Alchemy.prototype.instances[instNumber];
    };

    return Alchemy;

  })();

  root = typeof exports !== "undefined" && exports !== null ? exports : this;

  root.Alchemy = Alchemy;

  root.alchemy = {
    begin: function(config) {
      return root.alchemy = new Alchemy(config);
    }
  };

  Alchemy.prototype.Create = (function() {
    function Create(instance) {
      this.a = instance;
    }

    Create.prototype.nodes = function() {
      var a, n, nodeMap, nodeMaps, registerNode, _i, _len;
      nodeMap = arguments[0], nodeMaps = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
      a = this.a;
      registerNode = function(node) {
        var aNode;
        if (!a._nodes[node.id]) {
          aNode = new a.models.Node(node);
          a._nodes[node.id] = aNode;
          return [aNode];
        } else {
          return console.warn("A node with the id " + node.id + " already exists.\nConsider using the @a.get.nodes() method to \nretrieve the node and then using the Node methods.");
        }
      };
      nodeMaps = _.union(nodeMaps, nodeMap);
      for (_i = 0, _len = nodeMaps.length; _i < _len; _i++) {
        n = nodeMaps[_i];
        registerNode(n);
      }
      if (this.a.initial) {
        return this.a.updateGraph();
      }
    };

    Create.prototype.edges = function() {
      var a, allEdges, edgeMap, edgeMaps, registerEdge;
      edgeMap = arguments[0], edgeMaps = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
      a = this.a;
      registerEdge = function(edge) {
        var aEdge, edgeArray;
        if (edge.id && !a._edges[edge.id]) {
          aEdge = new a.models.Edge(edge);
          a._edges[edge.id] = [aEdge];
          return [aEdge];
        } else if (edge.id && a._edges[edge.id]) {
          return console.warn("An edge with that id " + someEdgeMap.id + " already exists.\nConsider using the @a.get.edge() method to \nretrieve the edge and then using the Edge methods.\nNote: id's are not required for edges.  Alchemy will create\nan unlimited number of edges for the same source and target node.\nSimply omit 'id' when creating the edge.");
        } else {
          edgeArray = a._edges["" + edge.source + "-" + edge.target];
          if (edgeArray) {
            aEdge = new a.models.Edge(edge, edgeArray.length);
            edgeArray.push(aEdge);
            return [aEdge];
          } else {
            aEdge = new a.models.Edge(edge, 0);
            a._edges["" + edge.source + "-" + edge.target] = [aEdge];
            return [aEdge];
          }
        }
      };
      allEdges = _.uniq(_.flatten(arguments));
      _.each(allEdges, function(e) {
        return registerEdge(e);
      });
      if (this.a.initial) {
        return this.a.updateGraph();
      }
    };

    return Create;

  })();

  Alchemy.prototype.Get = function(instance) {
    return {
      a: instance,
      _el: [],
      _elType: null,
      _makeChain: function(inp) {
        var returnedGet;
        returnedGet = this;
        returnedGet.__proto__ = [].__proto__;
        while (returnedGet.length) {
          returnedGet.pop();
        }
        _.each(inp, function(e) {
          return returnedGet.push(e);
        });
        return returnedGet;
      },
      nodes: function() {
        var a, allIDs, id, ids, nodeList;
        id = arguments[0], ids = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
        if (id != null) {
          allIDs = _.map(arguments, function(arg) {
            return String(arg);
          });
          a = this.a;
          nodeList = (function(a) {
            return _.filter(a._nodes, function(val, key) {
              if (_.contains(allIDs, key)) {
                return val;
              }
            });
          })(a);
        }
        this._elType = "node";
        this._el = nodeList;
        return this._makeChain(nodeList);
      },
      edges: function() {
        var a, allIDs, edgeList, id, ids;
        id = arguments[0], ids = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
        if (id != null) {
          allIDs = _.map(arguments, function(arg) {
            return String(arg);
          });
          a = this.a;
          edgeList = (function(a) {
            return _.flatten(_.filter(a._edges, function(val, key) {
              if (_.contains(allIDs, key)) {
                return val;
              }
            }));
          })(a);
        }
        this._elType = "edge";
        this._el = edgeList;
        return this._makeChain(edgeList);
      },
      all: function() {
        var a, elType;
        a = this.a;
        elType = this._elType;
        this._el = (function(elType) {
          switch (elType) {
            case "node":
              return a.elements.nodes.val;
            case "edge":
              return a.elements.edges.flat;
          }
        })(elType);
        return this._makeChain(this._el);
      },
      elState: function(state) {
        var elList;
        elList = _.filter(this._el, function(e) {
          return e._state === state;
        });
        this._el = elList;
        return this._makeChain(elList);
      },
      state: function(key) {
        if (this.a.state.key != null) {
          return this.a.state.key;
        }
      },
      type: function(type) {
        var elList;
        elList = _.filter(this._el, function(e) {
          return e._nodeType === type || e._edgeType === type;
        });
        this._el = elList;
        return this._makeChain(elList);
      },
      activeNodes: function() {
        return _.filter(this.a._nodes, function(node) {
          if (node._state === "active") {
            return node;
          }
        });
      },
      activeEdges: function() {
        return _.filter(this.a.get.allEdges(), function(edge) {
          if (edge._state === "active") {
            return edge;
          }
        });
      },
      state: function(key) {
        if (this.a.state.key != null) {
          return this.a.state.key;
        }
      },
      clusters: function() {
        var clusterMap, nodesByCluster;
        clusterMap = this.a.layout._clustering.clusterMap;
        nodesByCluster = {};
        _.each(clusterMap, function(key, value) {
          return nodesByCluster[value] = _.select(this.a.get.allNodes(), function(node) {
            return node.getProperties()[this.a.conf.clusterKey] === value;
          });
        });
        return nodesByCluster;
      },
      clusterColours: function() {
        var clusterColoursObject, clusterMap;
        clusterMap = this.a.layout._clustering.clusterMap;
        clusterColoursObject = {};
        _.each(clusterMap, function(key, value) {
          return clusterColoursObject[value] = this.a.conf.clusterColours[key % this.a.conf.clusterColours.length];
        });
        return clusterColoursObject;
      },
      allEdges: function() {
        return this.a.elements.nodes.flat;
      },
      allNodes: function(type) {
        if (type != null) {
          return _.filter(this.a._nodes, function(n) {
            if (n._nodeType === type) {
              return n;
            }
          });
        } else {
          return this.a.elements.nodes.val;
        }
      },
      getNodes: function() {
        var a, id, ids;
        id = arguments[0], ids = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
        a = this.a;
        ids.push(id);
        return _.map(ids, function(id) {
          return a._nodes[id];
        });
      },
      getEdges: function(id, target) {
        var a, edge_id;
        if (id == null) {
          id = null;
        }
        if (target == null) {
          target = null;
        }
        a = this.a;
        if ((id != null) && (target != null)) {
          edge_id = "" + id + "-" + target;
          return this.a._edges[edge_id];
        } else if ((id != null) && (target == null)) {
          return this.a._nodes[id]._adjacentEdges;
        }
      }
    };
  };

  Alchemy.prototype.Remove = (function() {
    function Remove(instance) {
      this.a = instance;
    }

    Remove.prototype.nodes = function(nodeMap) {
      return _.each(nodeMap, function(n) {
        if (n._nodeType != null) {
          return n.remove();
        }
      });
    };

    Remove.prototype.edges = function(edgeMap) {
      return _.each(edgeMap, function(e) {
        if (e._edgeType != null) {
          return e.remove();
        }
      });
    };

    return Remove;

  })();

  Alchemy.prototype.Set = function(instance) {
    return {
      a: instance,
      state: function(key, value) {
        return this.a.state.key = value;
      }
    };
  };

  Clustering = (function() {
    function Clustering(instance) {
      var clustering, conf, nodes, _charge, _friction, _gravity, _linkDistancefn, _linkStrength;
      this.a = instance;
      nodes = this.a._nodes;
      conf = this.a.conf;
      clustering = this;
      this.clusterKey = conf.clusterKey;
      this.identifyClusters(this.a);
      _charge = -500;
      _linkStrength = function(edge) {
        var sourceCluster, targetCluster;
        sourceCluster = nodes[edge.source.id]._properties[this.clusterKey];
        targetCluster = nodes[edge.target.id]._properties[this.clusterKey];
        if (sourceCluster === targetCluster) {
          return 0.15;
        } else {
          return 0;
        }
      };
      _friction = function() {
        return 0.7;
      };
      _linkDistancefn = function(edge) {
        nodes = edge.self.a._nodes;
        if (nodes[edge.source.id]._properties.root || nodes[edge.target.id]._properties.root) {
          return 300;
        } else if (nodes[edge.source.id]._properties[this.clusterKey] === nodes[edge.target.id]._properties[this.clusterKey]) {
          return 10;
        } else {
          return 600;
        }
      };
      _gravity = function(k) {
        return 8 * k;
      };
      this.layout = {
        charge: _charge,
        linkStrength: function(edge) {
          return _linkStrength(edge);
        },
        friction: function() {
          return _friction();
        },
        linkDistancefn: function(edge) {
          return _linkDistancefn(edge);
        },
        gravity: function(k) {
          return _gravity(k);
        }
      };
    }

    Clustering.prototype.identifyClusters = function(a) {
      var clusters, nodes, _i, _ref, _results;
      nodes = a.elements.nodes.val;
      clusters = _.uniq(_.map(nodes, function(node) {
        return node.getProperties()[a.conf.clusterKey];
      }));
      return this.clusterMap = _.zipObject(clusters, (function() {
        _results = [];
        for (var _i = 0, _ref = clusters.length; 0 <= _ref ? _i <= _ref : _i >= _ref; 0 <= _ref ? _i++ : _i--){ _results.push(_i); }
        return _results;
      }).apply(this));
    };

    Clustering.prototype.getClusterColour = function(clusterValue) {
      var index;
      index = this.clusterMap[clusterValue] % this.a.conf.clusterColours.length;
      return this.a.conf.clusterColours[index];
    };

    Clustering.prototype.edgeGradient = function(edges) {
      var Q, defs, edge, endColour, gradient, gradient_id, id, ids, nodes, startColour, _i, _len, _ref, _results;
      defs = this.a.vis.select("" + this.a.conf.divSelector + " svg");
      Q = {};
      nodes = this.a._nodes;
      _ref = _.map(edges, function(edge) {
        return edge._d3;
      });
      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
        edge = _ref[_i];
        if (nodes[edge.source.id]._properties.root || nodes[edge.target.id]._properties.root) {
          continue;
        }
        if (nodes[edge.source.id]._properties[this.clusterKey] === nodes[edge.target.id]._properties[this.clusterKey]) {
          continue;
        }
        if (nodes[edge.target.id]._properties[this.clusterKey] !== nodes[edge.source.id]._properties[this.clusterKey]) {
          id = nodes[edge.source.id]._properties[this.clusterKey] + "-" + nodes[edge.target.id]._properties[this.clusterKey];
          if (id in Q) {
            continue;
          } else if (!(id in Q)) {
            startColour = this.getClusterColour(nodes[edge.target.id]._properties[this.clusterKey]);
            endColour = this.getClusterColour(nodes[edge.source.id]._properties[this.clusterKey]);
            Q[id] = {
              'startColour': startColour,
              'endColour': endColour
            };
          }
        }
      }
      _results = [];
      for (ids in Q) {
        gradient_id = "cluster-gradient-" + ids;
        gradient = defs.append("svg:linearGradient").attr("id", gradient_id);
        gradient.append("svg:stop").attr("offset", "0%").attr("stop-color", Q[ids]['startColour']);
        _results.push(gradient.append("svg:stop").attr("offset", "100%").attr("stop-color", Q[ids]['endColour']));
      }
      return _results;
    };

    return Clustering;

  })();

  Alchemy.prototype.clusterControls = {
    init: function() {
      var changeClusterHTML;
      changeClusterHTML = "<input class='form-control form-inline' id='cluster-key' placeholder=\"Cluster Key\"></input>";
      this.a.dash.select("#clustering-container").append("div").attr("id", "cluster-key-container").attr('class', 'property form-inline form-group').html(changeClusterHTML).style("display", "none");
      this.a.dash.select("#cluster_control_header").on("click", function() {
        var display, element;
        element = this.a.dash.select("#cluster-key-container");
        return display = element.style("display");
      });
      element.style("display", function(e) {
        if (display === "block") {
          return "none";
        } else {
          return "block";
        }
      });
      if (this.a.dash.select("#cluster-key-container").style("display") === "none") {
        this.a.dash.select("#cluster-arrow").attr("class", "fa fa-2x fa-caret-right");
      } else {
        this.a.dash.select("#cluster-arrow").attr("class", "fa fa-2x fa-caret-down");
      }
      return this.a.dash.select("#cluster-key").on("keydown", function() {
        if (d3.event.keyIdentifier === "Enter") {
          this.a.conf.cluster = true;
          this.a.conf.clusterKey = this.value;
          return this.a.generateLayout();
        }
      });
    }
  };

  Alchemy.prototype.controlDash = function(instance) {
    var a;
    a = instance;
    return {
      init: function() {
        var divSelector;
        if (this.dashIsShown()) {
          divSelector = a.conf.divSelector;
          a.dash = d3.select("" + divSelector).append("div").attr("id", "control-dash-wrapper").attr("class", "col-md-4 initial");
          a.dash.append("i").attr("id", "dash-toggle").attr("class", "fa fa-flask col-md-offset-12");
          a.dash.append("div").attr("id", "control-dash").attr("class", "col-md-12");
          a.dash.select('#dash-toggle').on('click', a.interactions.toggleControlDash);
          a.controlDash.zoomCtrl();
          a.controlDash.search();
          a.controlDash.filters();
          a.controlDash.stats();
          a.controlDash.clustering();
          return a.controlDash.exports();
        }
      },
      search: function() {
        if (a.conf.search) {
          a.dash.select("#control-dash").append("div").attr("id", "search").html("<div class='input-group'>\n    <input class='form-control' placeholder='Search'>\n    <i class='input-group-addon search-icon'><span class='fa fa-search fa-1x'></span></i>\n</div> ");
          return a.search.init();
        }
      },
      zoomCtrl: function() {
        if (a.conf.zoomControls) {
          a.dash.select("#control-dash-wrapper").append("div").attr("id", "zoom-controls").attr("class", "col-md-offset-12").html("<button id='zoom-reset'  class='btn btn-defualt btn-primary'><i class='fa fa-crosshairs fa-lg'></i></button> <button id='zoom-in'  class='btn btn-defualt btn-primary'><i class='fa fa-plus'></i></button> <button id='zoom-out' class='btn btn-default btn-primary'><i class='fa fa-minus'></i></button>");
          a.dash.select('#zoom-in').on("click", function() {
            return a.interactions.clickZoom('in');
          });
          a.dash.select('#zoom-out').on("click", function() {
            return a.interactions.clickZoom('out');
          });
          return a.dash.select('#zoom-reset').on("click", function() {
            return a.interactions.clickZoom('reset');
          });
        }
      },
      filters: function() {
        if (a.conf.nodeFilters || a.conf.edgeFilters) {
          a.dash.select("#control-dash").append("div").attr("id", "filters");
          return a.filters.init();
        }
      },
      stats: function() {
        var stats_html;
        if (a.conf.nodeStats || a.conf.edgeStats) {
          stats_html = "<div id = \"stats-header\" data-toggle=\"collapse\" data-target=\"#stats #all-stats\">\n<h3>\n    Statistics\n</h3>\n<span class = \"fa fa-caret-right fa-2x\"></span>\n</div>\n<div id=\"all-stats\" class=\"collapse\">\n    <ul class = \"list-group\" id=\"node-stats\"></ul>\n    <ul class = \"list-group\" id=\"rel-stats\"></ul>  \n</div>";
          a.dash.select("#control-dash").append("div").attr("id", "stats").html(stats_html).select('#stats-header').on('click', function() {
            if (a.dash.select('#all-stats').classed("in")) {
              return a.dash.select("#stats-header>span").attr("class", "fa fa-2x fa-caret-right");
            } else {
              return a.dash.select("#stats-header>span").attr("class", "fa fa-2x fa-caret-down");
            }
          });
          return a.stats.init();
        }
      },
      exports: function() {
        var exports_html;
        if (a.conf.exportSVG) {
          exports_html = "<div id=\"exports-header\" data-toggle=\"collapse\" data-target=\"#all-exports\" style=\"padding:10px;\">\n    <h3>\n        Exports\n    </h3>\n    <span class=\"fa fa-caret-right fa-2x\"></span>\n</div>\n<div id=\"all-exports\" class=\"collapse\"></div>";
          a.dash.select("#control-dash").append("div").attr("id", "exports").attr("style", "padding: 0.5em 1em; border-bottom: thin dashed #E89619; color: white;").html(exports_html).select("#exports-header");
          return a.exports.init();
        }
      },
      clustering: function() {
        var clusterControl_html;
        if (a.conf.clusterControl) {
          clusterControl_html = "<div id=\"clustering-container\">\n    <div id=\"cluster_control_header\" data-toggle=\"collapse\" data-target=\"#clustering #cluster-options\">\n         <h3>Clustering</h3>\n        <span id=\"cluster-arrow\" class=\"fa fa-2x fa-caret-right\"></span>\n    </div>\n</div>";
          a.dash.select("#control-dash").append("div").attr("id", "clustering").html(clusterControl_html).select('#cluster_control_header');
          return a.clusterControls.init();
        }
      },
      dashIsShown: function() {
        var conf;
        conf = a.conf;
        return conf.showEditor || conf.captionToggle || conf.toggleRootNodes || conf.removeElement || conf.clusterControl || conf.nodeStats || conf.edgeStats || conf.edgeFilters || conf.nodeFilters || conf.edgesToggle || conf.nodesToggle || conf.search || conf.exportSVG;
      }
    };
  };

  Alchemy.prototype.filters = (function(_this) {
    return function(instance) {
      var a;
      a = instance;
      return {
        init: function() {
          var caption, edgeType, edgeTypes, nodeKey, nodeType, nodeTypes, types, _i, _j, _len, _len1, _ref;
          a.filters.show();
          if (a.conf.edgeFilters) {
            a.filters.showEdgeFilters();
          }
          if (a.conf.nodeFilters) {
            a.filters.showNodeFilters();
          }
          if (a.conf.nodeTypes) {
            nodeKey = Object.keys(a.conf.nodeTypes);
            nodeTypes = '';
            _ref = a.conf.nodeTypes[nodeKey];
            for (_i = 0, _len = _ref.length; _i < _len; _i++) {
              nodeType = _ref[_i];
              caption = nodeType.replace('_', ' ');
              nodeTypes += "<li class='list-group-item nodeType' role='menuitem' id='li-" + nodeType + "' name=" + nodeType + ">" + caption + "</li>";
            }
            a.dash.select('#node-dropdown').html(nodeTypes);
          }
          if (a.conf.edgeTypes) {
            if (_.isPlainObject(a.conf.edgeTypes)) {
              types = _.values(a.conf.edgeTypes)[0];
            } else {
              types = a.conf.edgeTypes;
            }
            edgeTypes = '';
            for (_j = 0, _len1 = types.length; _j < _len1; _j++) {
              edgeType = types[_j];
              caption = edgeType.replace('_', ' ');
              edgeTypes += "<li class='list-group-item edgeType' role='menuitem' id='li-" + edgeType + "' name=" + edgeType + ">" + caption + "</li>";
            }
            a.dash.select('#rel-dropdown').html(edgeTypes);
          }
          if (a.conf.captionsToggle) {
            a.filters.captionsToggle();
          }
          if (a.conf.edgesToggle) {
            a.filters.edgesToggle();
          }
          if (a.conf.nodesToggle) {
            a.filters.nodesToggle();
          }
          return a.filters.update();
        },
        show: function() {
          var filter_html;
          filter_html = "<div id = \"filter-header\" data-toggle=\"collapse\" data-target=\"#filters form\">\n    <h3>Filters</h3>\n    <span class = \"fa fa-2x fa-caret-right\"></span>\n</div>\n    <form class=\"form-inline collapse\">\n    </form>";
          a.dash.select('#control-dash #filters').html(filter_html);
          a.dash.selectAll('#filter-header').on('click', function() {
            if (a.dash.select('#filters>form').classed("in")) {
              return a.dash.select("#filter-header>span").attr("class", "fa fa-2x fa-caret-right");
            } else {
              return a.dash.select("#filter-header>span").attr("class", "fa fa-2x fa-caret-down");
            }
          });
          return a.dash.select('#filters form');
        },
        showEdgeFilters: function() {
          var rel_filter_html;
          rel_filter_html = "<div id=\"filter-rel-header\" data-target = \"#rel-dropdown\" data-toggle=\"collapse\">\n    <h4>\n        Edge Types\n    </h4>\n    <span class=\"fa fa-lg fa-caret-right\"></span>\n</div>\n<ul id=\"rel-dropdown\" class=\"collapse list-group\" role=\"menu\">\n</ul>";
          a.dash.select('#filters form').append("div").attr("id", "filter-relationships").html(rel_filter_html);
          return a.dash.select("#filter-rel-header").on('click', function() {
            if (a.dash.select('#rel-dropdown').classed("in")) {
              return a.dash.select("#filter-rel-header>span").attr("class", "fa fa-lg fa-caret-right");
            } else {
              return a.dash.select("#filter-rel-header>span").attr("class", "fa fa-lg fa-caret-down");
            }
          });
        },
        showNodeFilters: function() {
          var node_filter_html;
          node_filter_html = "<div id=\"filter-node-header\" data-target = \"#node-dropdown\" data-toggle=\"collapse\">\n    <h4>\n        Node Types\n    </h4>\n    <span class=\"fa fa-lg fa-caret-right\"></span>\n</div>\n<ul id=\"node-dropdown\" class=\"collapse list-group\" role=\"menu\">\n</ul>";
          a.dash.select('#filters form').append("div").attr("id", "filter-nodes").html(node_filter_html);
          return a.dash.select("#filter-node-header").on('click', function() {
            if (a.dash.select('#node-dropdown').classed("in")) {
              return a.dash.select("#filter-node-header>span").attr("class", "fa fa-lg fa-caret-right");
            } else {
              return a.dash.select("#filter-node-header>span").attr("class", "fa fa-lg fa-caret-down");
            }
          });
        },
        captionsToggle: function() {
          return a.dash.select("#filters form").append("li").attr({
            "id": "toggle-captions",
            "class": "list-group-item active-label toggle"
          }).html("Show Captions").on("click", function() {
            var isDisplayed;
            isDisplayed = a.dash.select("g text").attr("style");
            if (isDisplayed === "display: block" || null) {
              return a.dash.selectAll("g text").attr("style", "display: none");
            } else {
              return a.dash.selectAll("g text").attr("style", "display: block");
            }
          });
        },
        edgesToggle: function() {
          return a.dash.select("#filters form").append("li").attr({
            "id": "toggle-edges",
            "class": "list-group-item active-label toggle"
          }).html("Toggle Edges").on("click", function() {
            if (_.contains(_.pluck(_.flatten(_.values(a._edges)), "_state"), "active")) {
              return _.each(_.values(a._edges), function(edges) {
                return _.each(edges, function(e) {
                  if (e._state === "active") {
                    return e.toggleHidden();
                  }
                });
              });
            } else {
              return _.each(_.values(a._edges), function(edges) {
                return _.each(edges, function(e) {
                  var source, target;
                  source = a._nodes[e._properties.source];
                  target = a._nodes[e._properties.target];
                  if (source._state === "active" && target._state === "active") {
                    return e.toggleHidden();
                  }
                });
              });
            }
          });
        },
        nodesToggle: function() {
          return a.dash.select("#filters form").append("li").attr({
            "id": "toggle-nodes",
            "class": "list-group-item active-label toggle"
          }).html("Toggle Nodes").on("click", function() {
            var nodes;
            nodes = _.values(a._nodes);
            if (_.contains(_.pluck(nodes, "_state"), "active")) {
              return _.each(nodes, function(n) {
                if (a.conf.toggleRootNodes && n._d3.root) {
                  return;
                }
                if (n._state === "active") {
                  return n.toggleHidden();
                }
              });
            } else {
              return _.each(_.values(a._nodes), function(n) {
                if (a.conf.toggleRootNodes && n._d3.root) {
                  return;
                }
                return n.toggleHidden();
              });
            }
          });
        },
        update: function() {
          return a.dash.selectAll(".nodeType, .edgeType").on("click", function() {
            var element, tag;
            element = d3.select(this);
            tag = element.attr("name");
            a.vis.selectAll("." + tag).each(function(d) {
              var edge, node, source, target;
              if (a._nodes[d.id] != null) {
                node = a._nodes[d.id];
                return node.toggleHidden();
              } else {
                edge = a._edges[d.id][0];
                source = a._nodes[edge._properties.source];
                target = a._nodes[edge._properties.target];
                if (source._state === "active" && target._state === "active") {
                  return edge.toggleHidden();
                }
              }
            });
            return a.stats.nodeStats();
          });
        }
      };
    };
  })(this);

  Alchemy.prototype.Index = function(instance, all) {
    var a, edges, elements, nodes;
    a = instance;
    elements = {
      nodes: {
        val: (function() {
          return _.values(a._nodes);
        })()
      },
      edges: {
        val: (function() {
          return _.values(a._edges);
        })()
      }
    };
    nodes = elements.nodes;
    edges = elements.edges;
    elements.edges.flat = (function() {
      return _.flatten(edges.val);
    })();
    elements.nodes.d3 = (function() {
      return _.map(nodes.val, function(n) {
        return n._d3;
      });
    })();
    elements.edges.d3 = (function() {
      return _.map(edges.flat, function(e) {
        return e._d3;
      });
    })();
    a.elements = elements;
    return function() {
      a.elements.nodes.svg = (function() {
        return a.vis.selectAll('g.node');
      })();
      return a.elements.edges.svg = (function() {
        return a.vis.selectAll('g.edge');
      })();
    };
  };

  Alchemy.prototype.interactions = function(instance) {
    var a;
    a = instance;
    return {
      edgeClick: function(d) {
        var edge;
        if (d3.event.defaultPrevented) {
          return;
        }
        d3.event.stopPropagation();
        edge = d.self;
        if (typeof a.conf.edgeClick === 'function') {
          a.conf.edgeClick(edge);
        }
        if (edge._state !== "hidden") {
          edge._state = (function() {
            if (edge._state === "selected") {
              return "active";
            }
            return "selected";
          })();
          return edge.setStyles();
        }
      },
      edgeMouseOver: function(d) {
        var edge;
        edge = d.self;
        if (edge._state !== "hidden") {
          if (edge._state !== "selected") {
            edge._state = "highlighted";
          }
          return edge.setStyles();
        }
      },
      edgeMouseOut: function(d) {
        var edge;
        edge = d.self;
        if (edge._state !== "hidden") {
          if (edge._state !== "selected") {
            edge._state = "active";
          }
          return edge.setStyles();
        }
      },
      nodeMouseOver: function(n) {
        var node;
        node = n.self;
        if (node._state !== "hidden") {
          if (node._state !== "selected") {
            node._state = "highlighted";
            node.setStyles();
          }
          if (typeof a.conf.nodeMouseOver === 'function') {
            return a.conf.nodeMouseOver(node);
          } else if (typeof a.conf.nodeMouseOver === ('number' || 'string')) {
            return node.properties[a.conf.nodeMouseOver];
          }
        }
      },
      nodeMouseOut: function(n) {
        var node;
        node = n.self;
        a = node.a;
        if (node._state !== "hidden") {
          if (node._state !== "selected") {
            node._state = "active";
            node.setStyles();
          }
          if ((a.conf.nodeMouseOut != null) && typeof a.conf.nodeMouseOut === 'function') {
            return a.conf.nodeMouseOut(n);
          }
        }
      },
      nodeClick: function(n) {
        var node;
        if (d3.event.defaultPrevented) {
          return;
        }
        d3.event.stopPropagation();
        node = n.self;
        if (typeof a.conf.nodeClick === 'function') {
          a.conf.nodeClick(node);
        }
        if (node._state !== "hidden") {
          node._state = (function() {
            if (node._state === "selected") {
              return "active";
            }
            return "selected";
          })();
          return node.setStyles();
        }
      },
      zoom: function(extent) {
        if (this._zoomBehavior == null) {
          this._zoomBehavior = d3.behavior.zoom();
        }
        return this._zoomBehavior.scaleExtent(extent).on("zoom", function(d) {
          a = Alchemy.prototype.getInst(this);
          return a.vis.attr("transform", "translate(" + d3.event.translate + ") scale(" + d3.event.scale + ")");
        });
      },
      clickZoom: function(direction) {
        var scale, x, y, _ref;
        _ref = a.vis.attr("transform").match(/(-*\d+\.*\d*)/g).map(function(a) {
          return parseFloat(a);
        }), x = _ref[0], y = _ref[1], scale = _ref[2];
        a.vis.attr("transform", function() {
          if (direction === "in") {
            if (scale < a.conf.scaleExtent[1]) {
              scale += 0.2;
            }
            return "translate(" + x + "," + y + ") scale(" + scale + ")";
          } else if (direction === "out") {
            if (scale > a.conf.scaleExtent[0]) {
              scale -= 0.2;
            }
            return "translate(" + x + "," + y + ") scale(" + scale + ")";
          } else if (direction === "reset") {
            return "translate(0,0) scale(1)";
          } else {
            return console.log('error');
          }
        });
        if (this._zoomBehavior == null) {
          this._zoomBehavior = d3.behavior.zoom();
        }
        return this._zoomBehavior.scale(scale).translate([x, y]);
      },
      nodeDragStarted: function(d, i) {
        d3.event.preventDefault;
        d3.event.sourceEvent.stopPropagation();
        d3.select(this).classed("dragging", true);
        return d.fixed = true;
      },
      nodeDragged: function(d, i) {
        var edges, node;
        a = d.self.a;
        d.x += d3.event.dx;
        d.y += d3.event.dy;
        d.px += d3.event.dx;
        d.py += d3.event.dy;
        node = d3.select(this);
        node.attr("transform", "translate(" + d.x + ", " + d.y + ")");
        edges = d.self._adjacentEdges;
        return _.each(edges, function(edge) {
          var selection;
          selection = a.vis.select("#edge-" + edge.id + "-" + edge._index);
          return a._drawEdges.updateEdge(selection.data()[0]);
        });
      },
      nodeDragended: function(d, i) {
        a = d.self.a;
        d3.select(this).classed({
          "dragging": false
        });
        if (!a.conf.forceLocked) {
          return a.force.start();
        }
      },
      nodeDoubleClick: function(d) {
        return null;
      },
      deselectAll: function() {
        var _ref;
        a = Alchemy.prototype.getInst(this);
        if ((_ref = d3.event) != null ? _ref.defaultPrevented : void 0) {
          return;
        }
        if (a.conf.showEditor === true) {
          a.modifyElements.nodeEditorClear();
        }
        _.each(a._nodes, function(n) {
          n._state = "active";
          return n.setStyles();
        });
        _.each(a._edges, function(edge) {
          return _.each(edge, function(e) {
            e._state = "active";
            return e.setStyles();
          });
        });
        if (a.conf.deselectAll && typeof (a.conf.deselectAll === 'function')) {
          return a.conf.deselectAll();
        }
      }
    };
  };

  Layout = (function() {
    function Layout(instance) {
      this.tick = __bind(this.tick, this);
      this.linkStrength = __bind(this.linkStrength, this);
      this.gravity = __bind(this.gravity, this);
      var a, conf, nodes;
      this.a = a = instance;
      conf = this.a.conf;
      nodes = this.a._nodes;
      this.k = Math.sqrt(Math.log(_.size(this.a._nodes)) / (conf.graphWidth() * conf.graphHeight()));
      this._clustering = new this.a.clustering(this.a);
      this.d3NodeInternals = a.elements.nodes.d3;
      if (conf.cluster) {
        this._charge = function() {
          return this._clustering.layout.charge;
        };
        this._linkStrength = function(edge) {
          return this._clustering.layout.linkStrength(edge);
        };
      } else {
        this._charge = function() {
          return -10 / this.k;
        };
        this._linkStrength = function(edge) {
          if (nodes[edge.source.id].getProperties('root') || nodes[edge.target.id].getProperties('root')) {
            return 1;
          } else {
            return 0.9;
          }
        };
      }
      if (conf.cluster) {
        this._linkDistancefn = function(edge) {
          return this._clustering.layout.linkDistancefn(edge);
        };
      } else if (conf.linkDistancefn === 'default') {
        this._linkDistancefn = function(edge) {
          return 1 / (this.k * 50);
        };
      } else if (typeof conf.linkDistancefn === 'number') {
        this._linkDistancefn = function(edge) {
          return conf.linkDistancefn;
        };
      } else if (typeof conf.linkDistancefn === 'function') {
        this._linkDistancefn = function(edge) {
          return conf.linkDistancefn(edge);
        };
      }
    }

    Layout.prototype.gravity = function() {
      if (this.a.conf.cluster) {
        return this._clustering.layout.gravity(this.k);
      } else {
        return 50 * this.k;
      }
    };

    Layout.prototype.linkStrength = function(edge) {
      return this._linkStrength(edge);
    };

    Layout.prototype.friction = function() {
      return 0.9;
    };

    Layout.prototype.collide = function(node) {
      var conf, nx1, nx2, ny1, ny2, r;
      conf = this.a.conf;
      r = 2 * (node.radius + node['stroke-width']) + conf.nodeOverlap;
      nx1 = node.x - r;
      nx2 = node.x + r;
      ny1 = node.y - r;
      ny2 = node.y + r;
      return function(quad, x1, y1, x2, y2) {
        var l, x, y;
        if (quad.point && (quad.point !== node)) {
          x = node.x - Math.abs(quad.point.x);
          y = node.y - quad.point.y;
          l = Math.sqrt(x * x + y * y);
          r = r;
          if (l < r) {
            l = (l - r) / l * conf.alpha;
            node.x -= x *= l;
            node.y -= y *= l;
            quad.point.x += x;
            quad.point.y += y;
          }
        }
        return x1 > nx2 || x2 < nx1 || y1 > ny2 || y2 < ny1;
      };
    };

    Layout.prototype.tick = function(draw) {
      var a, edges, node, nodes, q, _i, _len, _ref;
      a = this.a;
      nodes = a.elements.nodes.svg;
      edges = a.elements.edges.svg;
      if (a.conf.collisionDetection) {
        q = d3.geom.quadtree(this.d3NodeInternals);
        _ref = this.d3NodeInternals;
        for (_i = 0, _len = _ref.length; _i < _len; _i++) {
          node = _ref[_i];
          q.visit(this.collide(node));
        }
      }
      nodes.attr("transform", function(d) {
        return "translate(" + d.x + "," + d.y + ")";
      });
      this.drawEdge = a.drawing.DrawEdge;
      this.drawEdge.styleText(edges);
      return this.drawEdge.styleLink(edges);
    };

    Layout.prototype.positionRootNodes = function() {
      var conf, container, i, n, rootNodes, _i, _len, _ref, _ref1, _results;
      conf = this.a.conf;
      container = {
        width: conf.graphWidth(),
        height: conf.graphHeight()
      };
      rootNodes = _.filter(this.a.elements.nodes.val, function(node) {
        return node.getProperties('root');
      });
      if (rootNodes.length === 1) {
        n = rootNodes[0];
        _ref = [container.width / 2, container.width / 2], n._d3.x = _ref[0], n._d3.px = _ref[1];
        _ref1 = [container.height / 2, container.height / 2], n._d3.y = _ref1[0], n._d3.py = _ref1[1];
        n._d3.fixed = true;
      } else {
        _results = [];
        for (i = _i = 0, _len = rootNodes.length; _i < _len; i = ++_i) {
          n = rootNodes[i];
          n._d3.x = container.width / Math.sqrt(rootNodes.length * (i + 1));
          n._d3.y = container.height / 2;
          _results.push(n._d3.fixed = true);
        }
        return _results;
      }
    };

    Layout.prototype.chargeDistance = function() {
      return 500;
    };

    Layout.prototype.linkDistancefn = function(edge) {
      return this._linkDistancefn(edge);
    };

    Layout.prototype.charge = function() {
      return this._charge();
    };

    return Layout;

  })();

  Alchemy.prototype.generateLayout = function(instance) {
    var a;
    a = instance;
    return function(start) {
      var conf;
      if (start == null) {
        start = false;
      }
      conf = a.conf;
      a.layout = new Layout(a);
      return a.force = d3.layout.force().size([conf.graphWidth(), conf.graphHeight()]).theta(1.0).gravity(a.layout.gravity()).friction(a.layout.friction()).nodes(a.elements.nodes.d3).links(a.elements.edges.d3).linkDistance(function(link) {
        return a.layout.linkDistancefn(link);
      }).linkStrength(function(link) {
        return a.layout.linkStrength(link);
      }).charge(a.layout.charge()).chargeDistance(a.layout.chargeDistance());
    };
  };

  Alchemy.prototype.search = function(instance) {
    var a;
    a = instance;
    return {
      init: function() {
        var searchBox;
        searchBox = a.dash.select("#search input");
        return searchBox.on("keyup", function() {
          var input;
          input = searchBox[0][0].value.toLowerCase();
          a.vis.selectAll(".node").classed("inactive", false);
          a.vis.selectAll("text").attr("style", function() {
            if (input !== "") {
              return "display: inline;";
            }
          });
          return a.vis.selectAll(".node").classed("inactive", function(node) {
            var DOMtext, hidden;
            DOMtext = d3.select(this).text();
            switch (a.conf.searchMethod) {
              case 'contains':
                hidden = DOMtext.toLowerCase().indexOf(input) < 0;
                break;
              case 'begins':
                hidden = DOMtext.toLowerCase().indexOf(input) !== 0;
            }
            if (hidden) {
              a.vis.selectAll("[source-target*='" + node.id + "']").classed("inactive", hidden);
            } else {
              a.vis.selectAll("[source-target*='" + node.id + "']").classed("inactive", function(edge) {
                var nodeIDs, sourceHidden, targetHidden;
                nodeIDs = [edge.source.id, edge.target.id];
                sourceHidden = a.vis.select("#node-" + nodeIDs[0]).classed("inactive");
                targetHidden = a.vis.select("#node-" + nodeIDs[1]).classed("inactive");
                return targetHidden || sourceHidden;
              });
            }
            return hidden;
          });
        });
      }
    };
  };

  Alchemy.prototype.startGraph = function(instance) {
    var a;
    a = instance;
    return function(data) {
      var conf, d3Edges, d3Nodes, defs, editor, editorInteractions;
      conf = a.conf;
      if (d3.select(conf.divSelector).empty()) {
        console.warn(a.utils.warnings.divWarning());
      }
      if (!data) {
        data = {
          nodes: [],
          edges: []
        };
        a.utils.warnings.dataWarning();
      }
      if (data.edges == null) {
        data.edges = [];
      }
      a.create.nodes(data.nodes);
      data.edges.forEach(function(e) {
        return a.create.edges(e);
      });
      a.vis = d3.select(conf.divSelector).attr("style", "width:" + (conf.graphWidth()) + "px; height:" + (conf.graphHeight()) + "px; background:" + conf.backgroundColour + ";").append("svg").attr("xmlns", "http://www.w3.org/2000/svg").attr("xlink", "http://www.w3.org/1999/xlink").attr("pointer-events", "all").attr("style", "background:" + conf.backgroundColour + ";").attr("alchInst", Alchemy.prototype.instances.length - 1).on('click', a.interactions.deselectAll).call(a.interactions.zoom(conf.scaleExtent)).on("dblclick.zoom", null).append('g').attr("transform", "translate(" + conf.initialTranslate + ") scale(" + conf.initialScale + ")");
      a.interactions.zoom().scale(conf.initialScale);
      a.interactions.zoom().translate(conf.initialTranslate);
      a.index = Alchemy.prototype.Index(a);
      a.generateLayout();
      a.controlDash.init();
      d3Edges = a.elements.edges.d3;
      d3Nodes = a.elements.nodes.d3;
      a.layout.positionRootNodes();
      a.force.start();
      if (conf.forceLocked) {
        while (a.force.alpha() > 0.005) {
          a.force.tick();
        }
      }
      a._drawEdges = a.drawing.DrawEdges;
      a._drawNodes = a.drawing.DrawNodes;
      a._drawEdges.createEdge(d3Edges);
      a._drawNodes.createNode(d3Nodes);
      a.index();
      a.elements.nodes.svg.attr("transform", function(id, i) {
        return "translate(" + id.x + ", " + id.y + ")";
      });
      console.log(Date() + ' completed initial computation');
      if (!conf.forceLocked) {
        a.force.on("tick", a.layout.tick).start();
      }
      if (conf.afterLoad != null) {
        if (typeof conf.afterLoad === 'function') {
          conf.afterLoad();
        } else if (typeof conf.afterLoad === 'string') {
          a[conf.afterLoad] = true;
        }
      }
      if (conf.cluster) {
        defs = d3.select("" + a.conf.divSelector + " svg").append("svg:defs");
      }
      if (conf.nodeStats) {
        a.stats.nodeStats();
      }
      if (conf.showEditor) {
        editor = new a.editor.Editor;
        editorInteractions = new a.editor.Interactions;
        d3.select("body").on('keydown', editorInteractions.deleteSelected);
        editor.startEditor();
      }
      return a.initial = true;
    };
  };

  Alchemy.prototype.stats = function(instance) {
    var a;
    a = instance;
    return {
      init: function() {
        return a.stats.update();
      },
      nodeStats: function() {
        var activeNodes, allNodes, caption, inactiveNodes, nodeData, nodeGraph, nodeKeys, nodeNum, nodeStats, nodeType, nodeTypes, _i, _len, _ref;
        nodeData = [];
        allNodes = a.get.allNodes().length;
        activeNodes = a.get.activeNodes().length;
        inactiveNodes = allNodes - activeNodes;
        nodeStats = "<li class = 'list-group-item gen_node_stat'>Number of nodes: <span class='badge'>" + allNodes + "</span></li> <li class = 'list-group-item gen_node_stat'>Number of active nodes: <span class='badge'>" + activeNodes + "</span></li> <li class = 'list-group-item gen_node_stat'>Number of inactive nodes: <span class='badge'>" + inactiveNodes + "</span></li></br>";
        if (a.conf.nodeTypes) {
          nodeKeys = Object.keys(a.conf.nodeTypes);
          nodeTypes = '';
          _ref = a.conf.nodeTypes[nodeKeys];
          for (_i = 0, _len = _ref.length; _i < _len; _i++) {
            nodeType = _ref[_i];
            caption = nodeType.replace('_', ' ');
            nodeNum = a.vis.selectAll("g.node." + nodeType)[0].length;
            nodeTypes += "<li class = 'list-group-item nodeType' id='li-" + nodeType + "' name = " + caption + ">Number of <strong style='text-transform: uppercase'>" + caption + "</strong> nodes: <span class='badge'>" + nodeNum + "</span></li>";
            nodeData.push(["" + nodeType, nodeNum]);
          }
          nodeStats += nodeTypes;
        }
        nodeGraph = "<li id='node-stats-graph' class='list-group-item'></li>";
        nodeStats += nodeGraph;
        a.dash.select('#node-stats').html(nodeStats);
        return this.insertSVG("node", nodeData);
      },
      edgeStats: function() {
        var activeEdges, allEdges, caption, edgeData, edgeGraph, edgeKeys, edgeNum, edgeStats, edgeType, edgeTypes, inactiveEdges, _i, _len;
        edgeData = [];
        allEdges = a.get.allEdges().length;
        activeEdges = a.get.activeEdges().length;
        inactiveEdges = allEdges - activeEdges;
        edgeStats = "<li class = 'list-group-item gen_edge_stat'>Number of relationships: <span class='badge'>" + allEdges + "</span></li> <li class = 'list-group-item gen_edge_stat'>Number of active relationships: <span class='badge'>" + activeEdges + "</span></li> <li class = 'list-group-item gen_edge_stat'>Number of inactive relationships: <span class='badge'>" + inactiveEdges + "</span></li></br>";
        if (a.conf.edgeTypes) {
          edgeKeys = _.values(alchemy.conf.edgeTypes)[0];
          edgeTypes = '';
          for (_i = 0, _len = edgeKeys.length; _i < _len; _i++) {
            edgeType = edgeKeys[_i];
            if (!edgeType) {
              continue;
            }
            caption = edgeType.replace('_', ' ');
            edgeNum = _.filter(a.get.allEdges(), function(edge) {
              if (edge._edgeType === edgeType) {
                return edge;
              }
            }).length;
            edgeTypes += "<li class = 'list-group-item edgeType' id='li-" + edgeType + "' name = " + caption + ">Number of <strong style='text-transform: uppercase'>" + caption + "</strong> relationships: <span class='badge'>" + edgeNum + "</span></li>";
            edgeData.push(["" + caption, edgeNum]);
          }
          edgeStats += edgeTypes;
        }
        edgeGraph = "<li id='node-stats-graph' class='list-group-item'></li>";
        edgeStats += edgeGraph;
        a.dash.select('#rel-stats').html(edgeStats);
        return this.insertSVG("edge", edgeData);
      },
      insertSVG: function(element, data) {
        var arc, arcs, color, height, pie, radius, svg, width;
        if (data === null) {
          return a.dash.select("#" + element + "-stats-graph").html("<br><h4 class='no-data'>There are no " + element + "Types listed in your conf.</h4>");
        } else {
          width = a.conf.graphWidth() * .25;
          height = 250;
          radius = width / 4;
          color = d3.scale.category20();
          arc = d3.svg.arc().outerRadius(radius - 10).innerRadius(radius / 2);
          pie = d3.layout.pie().sort(null).value(function(d) {
            return d[1];
          });
          svg = a.dash.select("#" + element + "-stats-graph").append("svg").append("g").style({
            "width": width,
            "height": height
          }).attr("transform", "translate(" + width / 2 + "," + height / 2 + ")");
          arcs = svg.selectAll(".arc").data(pie(data)).enter().append("g").classed("arc", true).on("mouseover", function(d, i) {
            return a.dash.select("#" + data[i][0] + "-stat").classed("hidden", false);
          }).on("mouseout", function(d, i) {
            return a.dash.select("#" + data[i][0] + "-stat").classed("hidden", true);
          });
          arcs.append("path").attr("d", arc).attr("stroke", function(d, i) {
            return color(i);
          }).attr("stroke-width", 2).attr("fill-opacity", "0.3");
          return arcs.append("text").attr("transform", function(d) {
            return "translate(" + arc.centroid(d) + ")";
          }).attr("id", function(d, i) {
            return "" + data[i][0] + "-stat";
          }).attr("dy", ".35em").classed("hidden", true).text(function(d, i) {
            return data[i][0];
          });
        }
      },
      update: function() {
        if (a.conf.nodeStats) {
          this.nodeStats();
        }
        if (a.conf.edgeStats) {
          return this.edgeStats();
        }
      }
    };
  };

  Alchemy.prototype.updateGraph = function(instance) {
    var a;
    a = instance;
    return function() {
      a.generateLayout();
      a._drawEdges.createEdge(a.elements.edges.d3);
      a._drawNodes.createNode(a.elements.nodes.d3);
      a.layout.positionRootNodes();
      a.force.start();
      while (a.force.alpha() > 0.005) {
        a.force.tick();
      }
      a.force.on("tick", a.layout.tick).start();
      return a.elements.nodes.svg.attr('transform', function(id, i) {
        return "translate(" + id.x + ", " + id.y + ")";
      });
    };
  };

  Alchemy.prototype.defaults = {
    plugins: null,
    renderer: "svg",
    graphWidth: function() {
      return d3.select(this.divSelector).node().parentElement.clientWidth;
    },
    graphHeight: function() {
      if (d3.select(this.divSelector).node().parentElement.nodeName === "BODY") {
        return window.innerHeight;
      } else {
        return d3.select(this.divSelector).node().parentElement.clientHeight;
      }
    },
    alpha: 0.5,
    collisionDetection: true,
    nodeOverlap: 25,
    fixNodes: false,
    fixRootNodes: false,
    forceLocked: true,
    linkDistancefn: 'default',
    nodePositions: null,
    showEditor: false,
    captionToggle: false,
    toggleRootNodes: false,
    removeElement: false,
    cluster: false,
    clusterKey: "cluster",
    clusterColours: d3.shuffle(["#DD79FF", "#FFFC00", "#00FF30", "#5168FF", "#00C0FF", "#FF004B", "#00CDCD", "#f83f00", "#f800df", "#ff8d8f", "#ffcd00", "#184fff", "#ff7e00"]),
    clusterControl: false,
    nodeStats: false,
    edgeStats: false,
    edgeFilters: false,
    nodeFilters: false,
    edgesToggle: false,
    nodesToggle: false,
    zoomControls: false,
    nodeCaption: 'caption',
    nodeCaptionsOnByDefault: false,
    nodeStyle: {
      "all": {
        "radius": 10,
        "color": "#68B9FE",
        "borderColor": "#127DC1",
        "borderWidth": function(d, radius) {
          return radius / 3;
        },
        "captionColor": "#FFFFFF",
        "captionBackground": null,
        "captionSize": 12,
        "selected": {
          "color": "#FFFFFF",
          "borderColor": "#349FE3"
        },
        "highlighted": {
          "color": "#EEEEFF"
        },
        "hidden": {
          "color": "none",
          "borderColor": "none"
        }
      }
    },
    nodeColour: null,
    nodeMouseOver: 'caption',
    nodeRadius: 10,
    nodeTypes: null,
    rootNodes: 'root',
    rootNodeRadius: 15,
    nodeClick: null,
    edgeCaption: 'caption',
    edgeCaptionsOnByDefault: false,
    edgeStyle: {
      "all": {
        "width": 4,
        "color": "#CCC",
        "opacity": 0.2,
        "directed": true,
        "curved": true,
        "selected": {
          "opacity": 1
        },
        "highlighted": {
          "opacity": 1
        },
        "hidden": {
          "opacity": 0
        }
      }
    },
    edgeTypes: null,
    curvedEdges: false,
    edgeWidth: function() {
      return 4;
    },
    edgeOverlayWidth: 20,
    directedEdges: false,
    edgeArrowSize: 5,
    edgeClick: null,
    search: false,
    searchMethod: "contains",
    backgroundColour: "#000000",
    theme: null,
    afterLoad: 'afterLoad',
    divSelector: '#alchemy',
    dataSource: null,
    initialScale: 1,
    initialTranslate: [0, 0],
    scaleExtent: [0.5, 2.4],
    exportSVG: false,
    dataWarning: "default",
    warningMessage: "There be no data!  What's going on?"
  };

  DrawEdge = function(instance) {
    return {
      a: instance,
      createLink: function(edge) {
        var conf;
        conf = this.a.conf;
        edge.append('path').attr('class', 'edge-line').attr('id', function(d) {
          return "path-" + d.id;
        });
        edge.filter(function(d) {
          return d.caption != null;
        }).append('text');
        return edge.append('path').attr('class', 'edge-handler').style('stroke-width', "" + conf.edgeOverlayWidth).style('opacity', "0");
      },
      styleLink: function(edge) {
        var a, conf, utils;
        a = this.a;
        conf = this.a.conf;
        utils = this.a.drawing.EdgeUtils;
        return edge.each(function(d) {
          var curve, curviness, edgeWalk, endx, endy, g, midpoint, startx, starty;
          edgeWalk = utils.edgeWalk(d);
          curviness = conf.curvedEdges ? 30 : 0;
          curve = curviness / 10;
          startx = d.source.radius + (d["stroke-width"] / 2);
          starty = curviness / 10;
          midpoint = edgeWalk.edgeLength / 2;
          endx = edgeWalk.edgeLength - (d.target.radius - (d.target["stroke-width"] / 2));
          endy = curviness / 10;
          g = d3.select(this);
          g.style(utils.edgeStyle(d));
          g.attr('transform', "translate(" + d.source.x + ", " + d.source.y + ") rotate(" + edgeWalk.edgeAngle + ")");
          g.select('.edge-line').attr('d', (function() {
            var arrow, line, w;
            line = "M" + startx + "," + starty + "q" + midpoint + "," + curviness + " " + endx + "," + endy;
            if (conf.directedEdges) {
              w = d["stroke-width"] * 2;
              arrow = "l" + (-w) + "," + (w + curve) + " l" + w + "," + (-w - curve) + " l" + (-w) + "," + (-w + curve);
              return line + arrow;
            }
            return line;
          })());
          return g.select('.edge-handler').attr('d', function(d) {
            return g.select('.edge-line').attr('d');
          });
        });
      },
      classEdge: function(edge) {
        return edge.classed('active', true);
      },
      styleText: function(edge) {
        var conf, curved, utils;
        conf = this.a.conf;
        curved = conf.curvedEdges;
        utils = this.a.drawing.EdgeUtils;
        return edge.select('text').each(function(d) {
          var dx, edgeWalk;
          edgeWalk = utils.edgeWalk(d);
          dx = edgeWalk.edgeLength / 2;
          return d3.select(this).attr('dx', "" + dx).text(d.caption).attr("xlink:xlink:href", "#path-" + d.source.id + "-" + d.target.id).style("display", function(d) {
            if (conf.edgeCaptionsOnByDefault) {
              return "block";
            }
          });
        });
      },
      setInteractions: function(edge) {
        var interactions;
        interactions = this.a.interactions;
        return edge.select('.edge-handler').on('click', interactions.edgeClick).on('mouseover', function(d) {
          return interactions.edgeMouseOver(d);
        }).on('mouseout', function(d) {
          return interactions.edgeMouseOut(d);
        });
      }
    };
  };

  DrawEdges = function(instance) {
    return {
      a: instance,
      createEdge: function(d3Edges) {
        var drawEdge, edge;
        drawEdge = this.a.drawing.DrawEdge;
        edge = this.a.vis.selectAll("g.edge").data(d3Edges);
        edge.enter().append('g').attr("id", function(d) {
          return "edge-" + d.id + "-" + d.pos;
        }).attr('class', function(d) {
          return "edge " + d.edgeType;
        }).attr('source-target', function(d) {
          return "" + d.source.id + "-" + d.target.id;
        });
        drawEdge.createLink(edge);
        drawEdge.classEdge(edge);
        drawEdge.styleLink(edge);
        drawEdge.styleText(edge);
        drawEdge.setInteractions(edge);
        edge.exit().remove();
        if (this.a.conf.directedEdges && this.a.conf.curvedEdges) {
          return edge.select('.edge-line').attr('marker-end', 'url(#arrow)');
        }
      },
      updateEdge: function(d3Edge) {
        var drawEdge, edge;
        drawEdge = this.a.drawing.DrawEdge;
        edge = this.a.vis.select("#edge-" + d3Edge.id + "-" + d3Edge.pos);
        drawEdge.classEdge(edge);
        drawEdge.styleLink(edge);
        drawEdge.styleText(edge);
        return drawEdge.setInteractions(edge);
      }
    };
  };

  DrawNode = function(instance) {
    return {
      a: instance,
      styleText: function(node) {
        var conf, nodes, utils;
        conf = this.a.conf;
        utils = this.a.drawing.NodeUtils;
        nodes = this.a._nodes;
        return node.selectAll("text").attr('dy', function(d) {
          if (nodes[d.id].getProperties().root) {
            return conf.rootNodeRadius / 2;
          } else {
            return conf.nodeRadius * 2 - 5;
          }
        }).attr('visibility', function(d) {
          if (nodes[d.id]._state === "hidden") {
            return "hidden";
          } else {
            return "visible";
          }
        }).text(function(d) {
          return utils.nodeText(d);
        }).style("display", function(d) {
          if (conf.nodeCaptionsOnByDefault) {
            return "block";
          }
        });
      },
      createNode: function(node) {
        node = _.difference(node, node.select("circle").data());
        node.__proto__ = d3.select().__proto__;
        node.append('circle').attr('id', function(d) {
          return "circle-" + d.id;
        });
        return node.append('svg:text').attr('id', function(d) {
          return "text-" + d.id;
        });
      },
      styleNode: function(node) {
        var utils;
        utils = this.a.drawing.NodeUtils;
        return node.selectAll('circle').attr('r', function(d) {
          if (typeof d.radius === "function") {
            return d.radius();
          } else {
            return d.radius;
          }
        }).each(function(d) {
          return d3.select(this).style(utils.nodeStyle(d));
        });
      },
      setInteractions: function(node) {
        var conf, coreInteractions, drag, editorEnabled, editorInteractions, nonRootNodes, rootNodes;
        conf = this.a.conf;
        coreInteractions = this.a.interactions;
        editorEnabled = this.a.get.state("interactions") === "editor";
        drag = d3.behavior.drag().origin(Object).on("dragstart", null).on("drag", null).on("dragend", null);
        if (editorEnabled) {
          editorInteractions = new this.a.editor.Interactions;
          return node.on('mouseup', function(d) {
            return editorInteractions.nodeMouseUp(d);
          }).on('mouseover', function(d) {
            return editorInteractions.nodeMouseOver(d);
          }).on('mouseout', function(d) {
            return editorInteractions.nodeMouseOut(d);
          }).on('dblclick', function(d) {
            return coreInteractions.nodeDoubleClick(d);
          }).on('click', function(d) {
            return editorInteractions.nodeClick(d);
          });
        } else {
          node.on('mouseup', null).on('mouseover', function(d) {
            return coreInteractions.nodeMouseOver(d);
          }).on('mouseout', function(d) {
            return coreInteractions.nodeMouseOut(d);
          }).on('dblclick', function(d) {
            return coreInteractions.nodeDoubleClick(d);
          }).on('click', function(d) {
            return coreInteractions.nodeClick(d);
          });
          drag = d3.behavior.drag().origin(Object).on("dragstart", coreInteractions.nodeDragStarted).on("drag", coreInteractions.nodeDragged).on("dragend", coreInteractions.nodeDragended);
          if (!conf.fixNodes) {
            nonRootNodes = node.filter(function(d) {
              return d.root !== true;
            });
            nonRootNodes.call(drag);
          }
          if (!conf.fixRootNodes) {
            rootNodes = node.filter(function(d) {
              return d.root === true;
            });
            return rootNodes.call(drag);
          }
        }
      }
    };
  };

  DrawNodes = function(instance) {
    return {
      a: instance,
      createNode: function(d3Nodes) {
        var drawNode, node;
        drawNode = this.a.drawing.DrawNode;
        node = this.a.vis.selectAll("g.node").data(d3Nodes, function(n) {
          return n.id;
        });
        node.enter().append("g").attr("class", function(d) {
          var nodeType;
          nodeType = d.self._nodeType;
          return "node " + nodeType + " active";
        }).attr('id', function(d) {
          return "node-" + d.id;
        }).classed('root', function(d) {
          return d.root;
        });
        drawNode.createNode(node);
        drawNode.styleNode(node);
        drawNode.styleText(node);
        drawNode.setInteractions(node);
        return node.exit().remove();
      },
      updateNode: function(alchemyNode) {
        var drawNode, node;
        drawNode = this.a.drawing.DrawNode;
        node = this.a.vis.select("#node-" + alchemyNode.id);
        drawNode.styleNode(node);
        drawNode.styleText(node);
        return drawNode.setInteractions(node);
      }
    };
  };

  Alchemy.prototype.EdgeUtils = function(instance) {
    return {
      a: instance,
      edgeStyle: function(d) {
        var clustering, conf, edge, nodes, styles;
        conf = this.a.conf;
        edge = this.a._edges[d.id][d.pos];
        styles = this.a.svgStyles.edge.update(edge);
        nodes = this.a._nodes;
        if (this.a.conf.cluster) {
          clustering = this.a.layout._clustering;
          styles.stroke = (function(d) {
            var clusterKey, gid, id, index, source, target;
            clusterKey = conf.clusterKey;
            source = nodes[d.source.id]._properties;
            target = nodes[d.target.id]._properties;
            if (source.root || target.root) {
              index = source.root ? target[clusterKey] : source[clusterKey];
              return "" + (clustering.getClusterColour(index));
            } else if (source[clusterKey] === target[clusterKey]) {
              index = source[clusterKey];
              return "" + (clustering.getClusterColour(index));
            } else if (source[clusterKey] !== target[clusterKey]) {
              id = "" + source[clusterKey] + "-" + target[clusterKey];
              gid = "cluster-gradient-" + id;
              return "url(#" + gid + ")";
            }
          })(d);
        }
        return styles;
      },
      triangle: function(edge) {
        var height, hyp, width;
        width = edge.target.x - edge.source.x;
        height = edge.target.y - edge.source.y;
        hyp = Math.sqrt(height * height + width * width);
        return [width, height, hyp];
      },
      edgeWalk: function(edge) {
        var curveOffset, edgeLength, edgeWidth, height, hyp, startPathX, width, _ref;
        _ref = this.triangle(edge), width = _ref[0], height = _ref[1], hyp = _ref[2];
        edgeWidth = edge['stroke-width'];
        curveOffset = 2;
        startPathX = edge.source.radius + edge.source['stroke-width'] - (edgeWidth / 2) + curveOffset;
        edgeLength = hyp - startPathX - curveOffset * 1.5;
        return {
          edgeAngle: Math.atan2(height, width) / Math.PI * 180,
          edgeLength: edgeLength
        };
      },
      middleLine: function(edge) {
        return this.curvedDirectedEdgeWalk(edge, 'middle');
      },
      startLine: function(edge) {
        return this.curvedDirectedEdgeWalk(edge, 'linkStart');
      },
      endLine: function(edge) {
        return this.curvedDirectedEdgeWalk(edge, 'linkEnd');
      },
      edgeLength: function(edge) {
        var height, hyp, width;
        width = edge.target.x - edge.source.x;
        height = edge.target.y - edge.source.y;
        return hyp = Math.sqrt(height * height + width * width);
      },
      edgeAngle: function(edge) {
        var height, width;
        width = edge.target.x - edge.source.x;
        height = edge.target.y - edge.source.y;
        return Math.atan2(height, width) / Math.PI * 180;
      },
      captionAngle: function(angle) {
        if (angle < -90 || angle > 90) {
          return 180;
        } else {
          return 0;
        }
      },
      middlePath: function(edge) {
        var midPoint, pathNode;
        pathNode = this.a.vis.select("#path-" + edge.id).node();
        midPoint = pathNode.getPointAtLength(pathNode.getTotalLength() / 2);
        return {
          x: midPoint.x,
          y: midPoint.y
        };
      },
      middlePathCurve: function(edge) {
        var midPoint, pathNode;
        pathNode = d3.select("#path-" + edge.id).node();
        midPoint = pathNode.getPointAtLength(pathNode.getTotalLength() / 2);
        return {
          x: midPoint.x,
          y: midPoint.y
        };
      }
    };
  };

  Alchemy.prototype.NodeUtils = function(instance) {
    var a;
    a = instance;
    return {
      nodeStyle: function(d) {
        var conf, node;
        conf = a.conf;
        node = d.self;
        if (conf.cluster && (node._state !== "hidden")) {
          d.fill = (function(d) {
            var clusterMap, clustering, colour, colourIndex, colours, key, nodeProp;
            clustering = a.layout._clustering;
            nodeProp = node.getProperties();
            clusterMap = clustering.clusterMap;
            key = conf.clusterKey;
            colours = conf.clusterColours;
            colourIndex = clusterMap[nodeProp[key]] % colours.length;
            colour = colours[colourIndex];
            return "" + colour;
          })(d);
          d.stroke = d.fill;
        }
        return d;
      },
      nodeText: function(d) {
        var caption, conf, nodeProps;
        conf = a.conf;
        nodeProps = a._nodes[d.id]._properties;
        if (conf.nodeCaption && typeof conf.nodeCaption === 'string') {
          if (nodeProps[conf.nodeCaption] != null) {
            return nodeProps[conf.nodeCaption];
          } else {
            return '';
          }
        } else if (conf.nodeCaption && typeof conf.nodeCaption === 'function') {
          caption = conf.nodeCaption(nodeProps);
          if (caption === void 0 || String(caption) === 'undefined') {
            a.log["caption"] = "At least one caption returned undefined";
            conf.caption = false;
          }
          return caption;
        }
      }
    };
  };

  Alchemy.prototype.svgStyles = function(instance) {
    return {
      a: instance,
      node: {
        a: this.a,
        populate: function(node) {
          var conf, d, defaultStyle, fill, nodeType, nodeTypeKey, radius, stroke, strokeWidth, style, svgStyles, toFunc, typedStyle;
          conf = this.a.conf;
          defaultStyle = _.omit(conf.nodeStyle.all, "selected", "highlighted", "hidden");
          d = node;
          toFunc = function(inp) {
            if (typeof inp === "function") {
              return inp;
            }
            return function() {
              return inp;
            };
          };
          nodeTypeKey = _.keys(conf.nodeTypes)[0];
          nodeType = node.getProperties()[nodeTypeKey];
          if (conf.nodeStyle[nodeType] === void 0) {
            nodeType = "all";
          }
          typedStyle = _.assign(_.cloneDeep(defaultStyle), conf.nodeStyle[nodeType]);
          style = _.assign(typedStyle, conf.nodeStyle[nodeType][node._state]);
          radius = toFunc(style.radius);
          fill = toFunc(style.color);
          stroke = toFunc(style.borderColor);
          strokeWidth = toFunc(style.borderWidth);
          svgStyles = {};
          svgStyles["radius"] = radius(d);
          svgStyles["fill"] = fill(d);
          svgStyles["stroke"] = stroke(d);
          svgStyles["stroke-width"] = strokeWidth(d, radius(d));
          return svgStyles;
        }
      },
      edge: {
        a: this.a,
        populate: function(edge) {
          var color, conf, defaultStyle, edgeType, opacity, style, svgStyles, toFunc, typedStyle, width;
          conf = this.a.conf;
          defaultStyle = _.omit(conf.edgeStyle.all, "selected", "highlighted", "hidden");
          toFunc = function(inp) {
            if (typeof inp === "function") {
              return inp;
            }
            return function() {
              return inp;
            };
          };
          edgeType = edge._edgeType;
          if (conf.edgeStyle[edgeType] === void 0) {
            edgeType = "all";
          }
          typedStyle = _.assign(_.cloneDeep(defaultStyle), conf.edgeStyle[edgeType]);
          style = _.assign(typedStyle, conf.edgeStyle[edgeType][edge._state]);
          width = toFunc(style.width);
          color = toFunc(style.color);
          opacity = toFunc(style.opacity);
          svgStyles = {
            "stroke": color(edge),
            "stroke-width": width(edge),
            "opacity": opacity(edge),
            "fill": "none"
          };
          return svgStyles;
        },
        update: function(edge) {
          var color, conf, opacity, style, svgStyles, toFunc, width;
          conf = this.a.conf;
          style = edge._style;
          toFunc = function(inp) {
            if (typeof inp === "function") {
              return inp;
            }
            return function() {
              return inp;
            };
          };
          width = toFunc(style.width);
          color = toFunc(style.color);
          opacity = toFunc(style.opacity);
          svgStyles = {
            "stroke": color(edge),
            "stroke-width": width(edge),
            "opacity": opacity(edge),
            "fill": "none"
          };
          return svgStyles;
        }
      }
    };
  };

  Editor = (function() {
    function Editor() {
      this.nodeEditor = __bind(this.nodeEditor, this);
      this.startEditor = __bind(this.startEditor, this);
      this.utils = new alchemy.editor.Utils;
    }

    Editor.prototype.editorContainerHTML = "<div id=\"editor-header\" data-toggle=\"collapse\" data-target=\"#editor #element-options\">\n    <h3>Editor</h3><span class=\"fa fa-2x fa-caret-right\"></span>\n</div>\n<div id=\"element-options\" class=\"collapse\">\n    <ul class=\"list-group\"> \n        <li class=\"list-group-item\" id=\"remove\">Remove Selected</li> \n        <li class=\"list-group-item\" id=\"editor-interactions\">Editor mode enabled, click to disable editor interactions</li>\n    </ul>\n</div>";

    Editor.prototype.elementEditorHTML = function(type) {
      return "<h4>" + type + " Editor</h4>\n<form id=\"add-property-form\">\n    <div id=\"add-property\">\n        <input class=\"form-control\" id=\"add-prop-key\" placeholder=\"New Property Name\">\n        <input class=\"form-control\" id=\"add-prop-value\" placeholder=\"New Property Value\">\n    </div>\n    <input id=\"add-prop-submit\" type=\"submit\" value=\"Add Property\" placeholder=\"add a property to this node\">\n</form>\n<form id=\"properties-list\">\n    <input id=\"update-properties\" type=\"submit\" value=\"Update Properties\">\n</form>";
    };

    Editor.prototype.startEditor = function() {
      var divSelector, editor, editor_interactions, html, utils;
      divSelector = alchemy.conf.divSelector;
      html = this.editorContainerHTML;
      editor = alchemy.dash.select("#control-dash").append("div").attr("id", "editor").html(html);
      editor.select('#editor-header').on('click', function() {
        if (alchemy.dash.select('#element-options').classed("in")) {
          return alchemy.dash.select("#editor-header>span").attr("class", "fa fa-2x fa-caret-right");
        } else {
          return alchemy.dash.select("#editor-header>span").attr("class", "fa fa-2x fa-caret-down");
        }
      });
      editor_interactions = editor.select('#element-options ul #editor-interactions').on('click', function() {
        return d3.select(this).attr("class", function() {
          if (alchemy.get.state() === 'editor') {
            alchemy.set.state('interactions', 'default');
            return "inactive list-group-item";
          } else {
            alchemy.set.state('interactions', 'editor');
            return "active list-group-item";
          }
        }).html(function() {
          if (alchemy.get.state() === 'editor') {
            return "Disable Editor Interactions";
          } else {
            return "Enable Editor Interactions";
          }
        });
      });
      editor.select("#element-options ul #remove").on("click", function() {
        return alchemy.editor.remove();
      });
      utils = this.utils;
      return editor_interactions.on("click", function() {
        if (!alchemy.dash.select("#editor-interactions").classed("active")) {
          utils.enableEditor();
          return alchemy.dash.select("#editor-interactions").classed({
            "active": true,
            "inactive": false
          }).html("Editor mode enabled, click to disable editor interactions");
        } else {
          utils.disableEditor();
          return alchemy.dash.select("#editor-interactions").classed({
            "active": false,
            "inactive": true
          }).html("Editor mode disabled, click to enable editor interactions");
        }
      });
    };

    Editor.prototype.nodeEditor = function(n) {
      var add_property, divSelector, editor, elementEditor, html, nodeProperties, node_property, options, property, property_list, updateProperty, val;
      divSelector = alchemy.conf.divSelector;
      editor = alchemy.dash.select("#control-dash #editor");
      options = editor.select('#element-options');
      html = this.elementEditorHTML("Node");
      elementEditor = options.append('div').attr('id', 'node-editor').html(html);
      elementEditor.attr("class", function() {
        var active;
        active = alchemy.dash.select("#editor-interactions").classed("active");
        if (active) {
          return "enabled";
        }
        return "hidden";
      });
      add_property = editor.select("#node-editor form #add-property");
      add_property.select("#node-add-prop-key").attr("placeholder", "New Property Name").attr("value", null);
      add_property.select("#node-add-prop-value").attr("placeholder", "New Property Value").attr("value", null);
      alchemy.dash.select("#add-property-form").on("submit", function() {
        var key, value;
        event.preventDefault();
        key = alchemy.dash.select('#add-prop-key').property('value');
        key = key.replace(/\s/g, "_");
        value = alchemy.dash.select('#add-prop-value').property('value');
        updateProperty(key, value, true);
        alchemy.dash.selectAll("#add-property .edited-property").classed({
          "edited-property": false
        });
        return this.reset();
      });
      nodeProperties = alchemy._nodes[n.id].getProperties();
      alchemy.vis.select("#node-" + n.id).classed({
        "editing": true
      });
      property_list = editor.select("#node-editor #properties-list");
      for (property in nodeProperties) {
        val = nodeProperties[property];
        node_property = property_list.append("div").attr("id", "node-" + property).attr("class", "property form-inline form-group");
        node_property.append("label").attr("for", "node-" + property + "-input").attr("class", "form-control property-name").text("" + property);
        node_property.append("input").attr("id", "node-" + property + "-input").attr("class", "form-control property-value").attr("value", "" + val);
      }
      alchemy.dash.select("#properties-list").on("submit", function() {
        var key, properties, selection, value, _i, _len, _ref;
        event.preventDefault();
        properties = alchemy.dash.selectAll(".edited-property");
        _ref = properties[0];
        for (_i = 0, _len = _ref.length; _i < _len; _i++) {
          property = _ref[_i];
          selection = alchemy.dash.select(property);
          key = selection.select("label").text();
          value = selection.select("input").attr('value');
          updateProperty(key, value, false);
        }
        alchemy.dash.selectAll("#node-properties-list .edited-property").classed({
          "edited-property": false
        });
        return this.reset();
      });
      d3.selectAll("#add-prop-key, #add-prop-value, .property").on("keydown", function() {
        if (d3.event.keyCode === 13) {
          event.preventDefault();
        }
        return d3.select(this).classed({
          "edited-property": true
        });
      });
      return updateProperty = function(key, value, newProperty) {
        var drawNodes, nodeID;
        nodeID = n.id;
        if ((key !== "") && (value !== "")) {
          alchemy._nodes[nodeID].setProperty("" + key, "" + value);
          drawNodes = alchemy._drawNodes;
          drawNodes.updateNode(alchemy.viz.select("#node-" + nodeID));
          if (newProperty === true) {
            alchemy.dash.select("#node-add-prop-key").attr("value", "property added/updated to key: " + key);
            return alchemy.dash.select("#node-add-prop-value").attr("value", "property at " + key + " updated to: " + value);
          } else {
            return alchemy.dash.select("#node-" + key + "-input").attr("value", "property at " + key + " updated to: " + value);
          }
        } else {
          if (newProperty === true) {
            alchemy.dash.select("#node-add-prop-key").attr("value", "null or invalid input");
            return alchemy.dash.select("#node-add-prop-value").attr("value", "null or invlid input");
          } else {
            return alchemy.dash.select("#node-" + key + "-input").attr("value", "null or invalid input");
          }
        }
      };
    };

    Editor.prototype.editorClear = function() {
      alchemy.dash.selectAll(".node").classed({
        "editing": false
      });
      alchemy.dash.selectAll(".edge").classed({
        "editing": false
      });
      alchemy.dash.select("#node-editor").remove();
      alchemy.dash.select("#edge-editor").remove();
      return alchemy.dash.select("#node-add-prop-submit").attr("placeholder", function() {
        if (alchemy.vis.selectAll(".selected").empty()) {
          return "select a node or edge to edit properties";
        }
        return "add a property to this element";
      });
    };

    Editor.prototype.edgeEditor = function(e) {
      var add_property, divSelector, edgeProperties, edge_property, editor, elementEditor, html, options, property, property_list, updateProperty, val;
      divSelector = alchemy.conf.divSelector;
      editor = alchemy.dash("#control-dash #editor");
      options = editor.select('#element-options');
      html = this.elementEditorHTML("Edge");
      elementEditor = options.append('div').attr('id', 'edge-editor').html(html);
      elementEditor.attr("class", function() {
        if (alchemy.dash.select("#editor-interactions").classed("active")) {
          return "enabled";
        }
        return "hidden";
      });
      add_property = editor.select("#edge-editor form #add-property");
      add_property.select("#add-prop-key").attr("placeholder", "New Property Name").attr("value", null);
      add_property.select("#add-prop-value").attr("placeholder", "New Property Value").attr("value", null);
      edgeProperties = alchemy._edges[e.id].getProperties();
      alchemy.vis.select("#edge-" + e.id).classed({
        "editing": true
      });
      property_list = editor.select("#edge-editor #properties-list");
      for (property in edgeProperties) {
        val = edgeProperties[property];
        edge_property = property_list.append("div").attr("id", "edge-" + property).attr("class", "property form-inline form-group");
        edge_property.append("label").attr("for", "edge-" + property + "-input").attr("class", "form-control property-name").text("" + property);
        edge_property.append("input").attr("id", "edge-" + property + "-input").attr("class", "form-control property-value").attr("value", "" + val);
      }
      alchemy.dash.selectAll("#add-prop-key, #add-prop-value, .property").on("keydown", function() {
        if (d3.event.keyCode === 13) {
          event.preventDefault();
        }
        return d3.select(this).classed({
          "edited-property": true
        });
      });
      alchemy.dash.select("#add-property-form").on("submit", function() {
        var key, value;
        event.preventDefault();
        key = alchemy.dash.select("#add-prop-key").property('value');
        key = key.replace(/\s/g, "_");
        value = alchemy.dash.select("#add-prop-value").property('value');
        updateProperty(key, value, true);
        alchemy.dash.selectAll("#add-property .edited-property").classed({
          "edited-property": false
        });
        return this.reset();
      });
      d3.select("#properties-list").on("submit", function() {
        var key, properties, selection, value, _i, _len, _ref;
        event.preventDefault();
        properties = alchemy.dash.selectAll(".edited-property");
        _ref = properties[0];
        for (_i = 0, _len = _ref.length; _i < _len; _i++) {
          property = _ref[_i];
          selection = alchemy.dash.select(property);
          key = selection.select("label").text();
          value = selection.select("input").property('value');
          updateProperty(key, value, false);
        }
        alchemy.dash.selectAll("#properties-list .edited-property").classed({
          "edited-property": false
        });
        return this.reset();
      });
      return updateProperty = function(key, value, newProperty) {
        var drawEdges, edgeID, edgeSelection;
        edgeID = e.id;
        if ((key !== "") && (value !== "")) {
          alchemy._edges[edgeID].setProperty("" + key, "" + value);
          edgeSelection = alchemy.vis.select("#edge-" + edgeID);
          drawEdges = new alchemy.drawing.DrawEdges;
          drawEdges.updateEdge(alchemy.vis.select("#edge-" + edgeID));
          if (newProperty === true) {
            alchemy.dash.select("#add-prop-key").attr("value", "property added/updated to key: " + key);
            return alchemy.dash.select("#add-prop-value").attr("value", "property at " + key + " updated to: " + value);
          } else {
            return alchemy.dash.select("#edge-" + key + "-input").attr("value", "property at " + key + " updated to: " + value);
          }
        } else {
          if (newProperty === true) {
            alchemy.dash.select("#add-prop-key").attr("value", "null or invalid input");
            return alchemy.dash.select("#add-prop-value").attr("value", "null or invlid input");
          } else {
            return alchemy.dash.select("#edge-" + key + "-input").attr("value", "null or invalid input");
          }
        }
      };
    };

    return Editor;

  })();

  EditorInteractions = (function() {
    function EditorInteractions() {
      this.reset = __bind(this.reset, this);
      this.deleteSelected = __bind(this.deleteSelected, this);
      this.addNodeDragended = __bind(this.addNodeDragended, this);
      this.addNodeDragging = __bind(this.addNodeDragging, this);
      this.addNodeStart = __bind(this.addNodeStart, this);
      this.edgeClick = __bind(this.edgeClick, this);
      this.nodeClick = __bind(this.nodeClick, this);
      this.nodeMouseUp = __bind(this.nodeMouseUp, this);
      this.editor = new alchemy.editor.Editor;
    }

    EditorInteractions.prototype.nodeMouseOver = function(n) {
      var radius;
      if (!d3.select(this).select("circle").empty()) {
        radius = d3.select(this).select("circle").attr("r");
        d3.select(this).select("circle").attr("r", radius * 3);
      }
      return this;
    };

    EditorInteractions.prototype.nodeMouseUp = function(n) {
      if (this.sourceNode !== n) {
        this.mouseUpNode = true;
        this.targetNode = n;
        this.click = false;
      } else {
        this.click = true;
      }
      return this;
    };

    EditorInteractions.prototype.nodeMouseOut = function(n) {
      var radius;
      if (!d3.select(this).select("circle").empty()) {
        radius = d3.select(this).select("circle").attr("r");
        d3.select(this).select("circle").attr("r", radius / 3);
      }
      return this;
    };

    EditorInteractions.prototype.nodeClick = function(c) {
      var selected;
      d3.event.stopPropagation();
      if (!alchemy.vis.select("#node-" + c.id).empty()) {
        selected = alchemy.vis.select("#node-" + c.id).classed('selected');
        alchemy.vis.select("#node-" + c.id).classed('selected', !selected);
      }
      this.editor.editorClear();
      return this.editor.nodeEditor(c);
    };

    EditorInteractions.prototype.edgeClick = function(e) {
      d3.event.stopPropagation();
      this.editor.editorClear();
      return this.editor.edgeEditor(e);
    };

    EditorInteractions.prototype.addNodeStart = function(d, i) {
      d3.event.sourceEvent.stopPropagation();
      this.sourceNode = d;
      alchemy.vis.select('#dragline').classed({
        "hidden": false
      });
      return this;
    };

    EditorInteractions.prototype.addNodeDragging = function(d, i) {
      var x2coord, y2coord;
      x2coord = d3.event.x;
      y2coord = d3.event.y;
      alchemy.vis.select('#dragline').attr("x1", this.sourceNode.x).attr("y1", this.sourceNode.y).attr("x2", x2coord).attr("y2", y2coord).attr("style", "stroke: #FFF");
      return this;
    };

    EditorInteractions.prototype.addNodeDragended = function(d, i) {
      var dragline, targetX, targetY;
      if (!this.click) {
        if (!this.mouseUpNode) {
          dragline = alchemy.vis.select("#dragline");
          targetX = dragline.attr("x2");
          targetY = dragline.attr("y2");
          this.targetNode = {
            id: "" + (_.uniqueId('addedNode_')),
            x: parseFloat(targetX),
            y: parseFloat(targetY),
            caption: "node added"
          };
        }
        this.newEdge = {
          id: "" + this.sourceNode.id + "-" + this.targetNode.id,
          source: this.sourceNode.id,
          target: this.targetNode.id,
          caption: "edited"
        };
        alchemy.editor.update(this.targetNode, this.newEdge);
      }
      this.reset();
      return this;
    };

    EditorInteractions.prototype.deleteSelected = function(d) {
      switch (d3.event.keyCode) {
        case 8:
        case 46:
          if (!(d3.select(d3.event.target).node().tagName === ("INPUT" || "TEXTAREA"))) {
            d3.event.preventDefault();
            return alchemy.editor.remove();
          }
      }
    };

    EditorInteractions.prototype.reset = function() {
      this.mouseUpNode = null;
      this.sourceNode = null;
      this.targetNode = null;
      this.newEdge = null;
      this.click = null;
      alchemy.vis.select("#dragline").classed({
        "hidden": true
      }).attr("x1", 0).attr("y1", 0).attr("x2", 0).attr("y2", 0);
      return this;
    };

    EditorInteractions;

    return EditorInteractions;

  })();

  EditorUtils = (function() {
    function EditorUtils() {
      this.enableEditor = __bind(this.enableEditor, this);
      this.drawNodes = alchemy._drawNodes;
      this.drawEdges = alchemy._drawEdges;
    }

    EditorUtils.prototype.enableEditor = function() {
      var dragLine, editor, selectedElements;
      alchemy.set.state("interactions", "editor");
      dragLine = alchemy.vis.append("line").attr("id", "dragline");
      this.drawNodes.updateNode(alchemy.node);
      this.drawEdges.updateEdge(alchemy.edge);
      selectedElements = alchemy.vis.selectAll(".selected");
      editor = new alchemy.editor.Editor;
      if ((!selectedElements.empty()) && (selectedElements.length === 1)) {
        if (selectedElements.classed('node')) {
          editor.nodeEditor(selectedElements.datum());
          return alchemy.dash.select("#node-editor").attr("class", "enabled").style("opacity", 1);
        } else if (selectedElements.classed('edge')) {
          editor.edgeEditor(selectedElements.datum());
          return alchemy.dash.select("#edge-editor").attr("class", "enabled").style("opacity", 1);
        }
      } else {
        return selectedElements.classed({
          "selected": false
        });
      }
    };

    EditorUtils.prototype.disableEditor = function() {
      alchemy.setState("interactions", "default");
      alchemy.vis.select("#dragline").remove();
      alchemy.dash.select("#node-editor").transition().duration(300).style("opacity", 0);
      alchemy.dash.select("#node-editor").transition().delay(300).attr("class", "hidden");
      this.drawNodes.updateNode(alchemy.node);
      return alchemy.vis.selectAll(".node").classed({
        "selected": false
      });
    };

    EditorUtils.prototype.remove = function() {
      var edge, node, nodeID, node_data, selectedNodes, _i, _j, _len, _len1, _ref, _ref1, _results;
      selectedNodes = alchemy.vis.selectAll(".selected.node");
      _ref = selectedNodes[0];
      _results = [];
      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
        node = _ref[_i];
        nodeID = alchemy.vis.select(node).data()[0].id;
        node_data = alchemy._nodes[nodeID];
        if (node_data != null) {
          _ref1 = node_data.adjacentEdges;
          for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {
            edge = _ref1[_j];
            alchemy._edges = _.omit(alchemy._edges, "" + edge.id + "-" + edge._index);
            alchemy.edge = alchemy.edge.data(_.map(alchemy._edges, function(e) {
              return e._d3;
            }), function(e) {
              return e.id;
            });
            alchemy.vis.select("#edge-" + edge.id + "-" + edge._index).remove();
          }
          alchemy._nodes = _.omit(alchemy._nodes, "" + nodeID);
          alchemy.node = alchemy.node.data(_.map(alchemy._nodes, function(n) {
            return n._d3;
          }), function(n) {
            return n.id;
          });
          alchemy.vis.select(node).remove();
          if (alchemy.get.state("interactions") === "editor") {
            _results.push(alchemy.modifyElements.nodeEditorClear());
          } else {
            _results.push(void 0);
          }
        } else {
          _results.push(void 0);
        }
      }
      return _results;
    };

    EditorUtils.prototype.addNode = function(node) {
      var newNode;
      newNode = alchemy._nodes[node.id] = new alchemy.models.Node({
        id: "" + node.id
      });
      newNode.setProperty("caption", node.caption);
      newNode.setD3Property("x", node.x);
      newNode.setD3Property("y", node.y);
      return alchemy.node = alchemy.node.data(_.map(alchemy._nodes, function(n) {
        return n._d3;
      }), function(n) {
        return n.id;
      });
    };

    EditorUtils.prototype.addEdge = function(edge) {
      var newEdge;
      newEdge = alchemy._edges[edge.id] = new alchemy.models.Edge(edge);
      return alchemy.edge = alchemy.edge.data(_.map(alchemy._edges, function(e) {
        return e._d3;
      }), function(e) {
        return e.id;
      });
    };

    EditorUtils.prototype.update = function(node, edge) {
      if (!this.mouseUpNode) {
        alchemy.editor.addNode(node);
        alchemy.editor.addEdge(edge);
        this.drawEdges.createEdge(alchemy.edge);
        this.drawNodes.createNode(alchemy.node);
      } else {
        alchemy.editor.addEdge(edge);
        this.drawEdges.createEdge(alchemy.edge);
      }
      return alchemy.layout.tick();
    };

    return EditorUtils;

  })();

  Alchemy.prototype.Edge = function(instance) {
    var Edge;
    return Edge = (function() {
      function Edge(edge, index) {
        var conf;
        if (index == null) {
          index = null;
        }
        this.allNodesActive = __bind(this.allNodesActive, this);
        this.setProperties = __bind(this.setProperties, this);
        this.getStyles = __bind(this.getStyles, this);
        this.setProperties = __bind(this.setProperties, this);
        this.getProperties = __bind(this.getProperties, this);
        this._setID = __bind(this._setID, this);
        this._setD3Properties = __bind(this._setD3Properties, this);
        this.a = instance;
        conf = this.a.conf;
        this.id = this._setID(edge);
        this._index = index;
        this._state = "active";
        this._properties = edge;
        this._edgeType = this._setEdgeType();
        this._style = conf.edgeStyle[this._edgeType] != null ? _.merge(_.clone(conf.edgeStyle["all"]), conf.edgeStyle[this._edgeType]) : _.clone(conf.edgeStyle["all"]);
        this._d3 = _.merge({
          'id': this.id,
          'pos': this._index,
          'edgeType': this._edgeType,
          'source': this.a._nodes[this._properties.source]._d3,
          'target': this.a._nodes[this._properties.target]._d3,
          'self': this
        }, this.a.svgStyles.edge.populate(this));
        this._setCaption(edge, conf);
        this.a._nodes["" + edge.source]._addEdge(this);
        this.a._nodes["" + edge.target]._addEdge(this);
      }

      Edge.prototype._setD3Properties = function(props) {
        return _.merge(this._d3, props);
      };

      Edge.prototype._setID = function(e) {
        if (e.id != null) {
          return e.id;
        } else {
          return "" + e.source + "-" + e.target;
        }
      };

      Edge.prototype._setCaption = function(edge, conf) {
        var cap, edgeCaption;
        cap = conf.edgeCaption;
        edgeCaption = (function(edge) {
          switch (typeof cap) {
            case 'string' || 'number':
              return edge[cap];
            case 'function':
              return cap(edge);
          }
        })(edge);
        if (edgeCaption) {
          return this._d3.caption = edgeCaption;
        }
      };

      Edge.prototype._setEdgeType = function() {
        var conf, edgeType, lookup;
        conf = this.a.conf;
        if (conf.edgeTypes) {
          if (_.isPlainObject(conf.edgeTypes)) {
            lookup = Object.keys(this.a.conf.edgeTypes);
            edgeType = this._properties[lookup];
          } else if (_.isArray(conf.edgeTypes)) {
            edgeType = this._properties["caption"];
          } else if (typeof conf.edgeTypes === 'string') {
            edgeType = this._properties[conf.edgeTypes];
          }
        }
        if (edgeType === void 0) {
          edgeType = "all";
        }
        this._setD3Properties('edgeType', edgeType);
        return edgeType;
      };

      Edge.prototype.getProperties = function() {
        var key, keys, query;
        key = arguments[0], keys = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
        if (key == null) {
          key = null;
        }
        if ((key == null) && (keys.length === 0)) {
          return this._properties;
        } else if (keys.length !== 0) {
          query = _.union([key], keys);
          return _.pick(this._properties, query);
        } else {
          return this._properties[key];
        }
      };

      Edge.prototype.setProperties = function(property, value) {
        if (value == null) {
          value = null;
        }
        if (_.isPlainObject(property)) {
          _.assign(this._properties, property);
          if ('source' in property) {
            this._setD3Properties({
              'source': alchemy._nodes[property.source]._d3
            });
          }
          if ('target' in property) {
            this._setD3Properties({
              'target': alchemy._nodes[property.target]._d3
            });
          }
        } else {
          this._properties[property] = value;
          if ((property === 'source') || (property === 'target')) {
            this._setD3Properties({
              property: alchemy._nodes[value]._d3
            });
          }
        }
        return this;
      };

      Edge.prototype.getStyles = function() {
        var edge, key, keys;
        key = arguments[0], keys = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
        edge = this;
        if (key === void 0) {
          return edge._style;
        }
        return _.map(arguments, function(arg) {
          return edge._style[arg];
        });
      };

      Edge.prototype.setProperties = function(property, value) {
        if (value == null) {
          value = null;
        }
        if (_.isPlainObject(property)) {
          _.assign(this._properties, property);
          if ('source' in property) {
            this._setD3Properties({
              'source': this.a._nodes[property.source]._d3
            });
          }
          if ('target' in property) {
            this._setD3Properties({
              'target': this.a._nodes[property.target]._d3
            });
          }
        } else {
          this._properties[property] = value;
          if ((property === 'source') || (property === 'target')) {
            this._setD3Properties({
              property: this.a._nodes[value]._d3
            });
          }
        }
        return this;
      };

      Edge.prototype.setStyles = function(key, value) {
        if (value == null) {
          value = null;
        }
        if (key === void 0) {
          key = this.a.svgStyles.edge.populate(this);
        }
        if (_.isPlainObject(key)) {
          _.assign(this._style, key);
        } else if (typeof key === "string") {
          this._style[key] = value;
        }
        this._setD3Properties(this.a.svgStyles.edge.update(this));
        this.a._drawEdges.updateEdge(this._d3);
        return this;
      };

      Edge.prototype.toggleHidden = function() {
        this._state = this._state === "hidden" ? "active" : "hidden";
        return this.setStyles();
      };

      Edge.prototype.allNodesActive = function() {
        var sourceId, sourceNode, targetId, targetNode;
        sourceId = this._properties.source;
        targetId = this._properties.target;
        sourceNode = alchemy.get.nodes(sourceId)[0];
        targetNode = alchemy.get.nodes(targetId)[0];
        return sourceNode._state === "active" && targetNode._state === "active";
      };

      Edge.prototype.remove = function() {
        var edge, filteredLinkList;
        edge = this;
        delete this.a._edges[edge.id];
        if (this.a._nodes[edge._properties.source] != null) {
          _.remove(this.a._nodes[edge._properties.source]._adjacentEdges, function(e) {
            if (e.id === edge.id) {
              return e;
            }
          });
        }
        if (this.a._nodes[edge._properties.target] != null) {
          _.remove(this.a._nodes[edge._properties.target]._adjacentEdges, function(e) {
            if (e.id === edge.id) {
              return e;
            }
          });
        }
        this.a.vis.select("#edge-" + edge.id + "-" + edge._index).remove();
        filteredLinkList = _.filter(this.a.force.links(), function(link) {
          if (link.id !== edge.id) {
            return link;
          }
        });
        return this.a.force.links(filteredLinkList);
      };

      return Edge;

    })();
  };

  Alchemy.prototype.Node = function(instance) {
    var Node;
    return Node = (function() {
      function Node(node) {
        this.getStyles = __bind(this.getStyles, this);
        this.setProperty = __bind(this.setProperty, this);
        this.getProperties = __bind(this.getProperties, this);
        this._setD3Properties = __bind(this._setD3Properties, this);
        this._setNodeType = __bind(this._setNodeType, this);
        var conf;
        this.a = instance;
        conf = this.a.conf;
        this.id = node.id;
        this._properties = node;
        this._d3 = _.merge({
          'id': this.id,
          'root': this._properties[conf.rootNodes],
          'self': this
        }, this.a.svgStyles.node.populate(this));
        this._nodeType = this._setNodeType();
        this._style = conf.nodeStyle[this._nodeType] ? conf.nodeStyle[this._nodeType] : conf.nodeStyle["all"];
        this._state = "active";
        this._adjacentEdges = [];
      }

      Node.prototype._setNodeType = function() {
        var conf, lookup, nodeType, types;
        conf = this.a.conf;
        if (conf.nodeTypes) {
          if (_.isPlainObject(conf.nodeTypes)) {
            lookup = Object.keys(this.a.conf.nodeTypes);
            types = _.values(conf.nodeTypes);
            nodeType = this._properties[lookup];
          } else if (typeof conf.nodeTypes === 'string') {
            nodeType = this._properties[conf.nodeTypes];
          }
        }
        if (nodeType === void 0) {
          nodeType = "all";
        }
        this._setD3Properties('nodeType', nodeType);
        return nodeType;
      };

      Node.prototype._setD3Properties = function(props) {
        return _.merge(this._d3, props);
      };

      Node.prototype._addEdge = function(edge) {
        return this._adjacentEdges = _.union(this._adjacentEdges, [edge]);
      };

      Node.prototype.getProperties = function() {
        var key, keys, query;
        key = arguments[0], keys = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
        if (key == null) {
          key = null;
        }
        if ((key == null) && (keys.length === 0)) {
          return this._properties;
        } else if (keys.length !== 0) {
          query = _.union([key], keys);
          return _.pick(this._properties, query);
        } else {
          return this._properties[key];
        }
      };

      Node.prototype.setProperty = function(property, value) {
        if (value == null) {
          value = null;
        }
        if (_.isPlainObject(property)) {
          _.assign(this._properties, property);
        } else {
          this._properties[property] = value;
        }
        return this;
      };

      Node.prototype.removeProperty = function() {
        var prop, properties, property, _i, _len;
        property = arguments[0], properties = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
        for (_i = 0, _len = arguments.length; _i < _len; _i++) {
          prop = arguments[_i];
          delete this._properties[prop];
        }
        return this;
      };

      Node.prototype.getStyles = function() {
        var key, keys, node;
        key = arguments[0], keys = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
        node = this;
        if (key === void 0) {
          return node._style;
        }
        return _.map(arguments, function(arg) {
          return node._style[arg];
        });
      };

      Node.prototype.setStyles = function(key, value) {
        if (value == null) {
          value = null;
        }
        if (key === void 0) {
          key = this.a.svgStyles.node.populate(this);
        } else if (_.isPlainObject(key)) {
          _.assign(this._style, key);
        } else {
          this._style[key] = value;
        }
        this._setD3Properties(this.a.svgStyles.node.populate(this));
        this.a._drawNodes.updateNode(this._d3);
        return this;
      };

      Node.prototype.toggleHidden = function() {
        var a;
        a = this.a;
        this._state = this._state === "hidden" ? "active" : "hidden";
        this.setStyles();
        return _.each(this._adjacentEdges, function(e) {
          var source, sourceState, target, targetState, _ref;
          _ref = e.id.split("-"), source = _ref[0], target = _ref[1];
          sourceState = a._nodes["" + source]._state;
          targetState = a._nodes["" + target]._state;
          if (e._state === "hidden" && (sourceState === "active" && targetState === "active")) {
            return e.toggleHidden();
          } else if (e._state === "active" && (sourceState === "hidden" || targetState === "hidden")) {
            return e.toggleHidden();
          }
        });
      };

      Node.prototype.outDegree = function() {
        return this._adjacentEdges.length;
      };

      Node.prototype.remove = function() {
        while (!_.isEmpty(this._adjacentEdges)) {
          this._adjacentEdges[0].remove();
        }
        delete this.a._nodes[this.id];
        return this.a.vis.select("#node-" + this.id).remove();
      };

      return Node;

    })();
  };

  Alchemy.prototype.plugins = function(instance) {
    return {
      init: function() {
        return _.each(_.keys(instance.conf.plugins), function(key) {
          instance.plugins[key] = Alchemy.prototype.plugins[key](instance);
          if (instance.plugins[key].init != null) {
            return instance.plugins[key].init();
          }
        });
      }
    };
  };

  Alchemy.prototype.themes = {
    "default": {
      "backgroundColour": "#000000",
      "nodeStyle": {
        "all": {
          "radius": function() {
            return 10;
          },
          "color": function() {
            return "#68B9FE";
          },
          "borderColor": function() {
            return "#127DC1";
          },
          "borderWidth": function(d, radius) {
            return radius / 3;
          },
          "captionColor": function() {
            return "#FFFFFF";
          },
          "captionBackground": function() {
            return null;
          },
          "captionSize": 12,
          "selected": {
            "color": function() {
              return "#FFFFFF";
            },
            "borderColor": function() {
              return "#349FE3";
            }
          },
          "highlighted": {
            "color": function() {
              return "#EEEEFF";
            }
          },
          "hidden": {
            "color": function() {
              return "none";
            },
            "borderColor": function() {
              return "none";
            }
          }
        }
      },
      "edgeStyle": {
        "all": {
          "width": 4,
          "color": "#CCC",
          "opacity": 0.2,
          "directed": true,
          "curved": true,
          "selected": {
            "opacity": 1
          },
          "highlighted": {
            "opacity": 1
          },
          "hidden": {
            "opacity": 0
          }
        }
      }
    },
    "white": {
      "theme": "white",
      "backgroundColour": "#FFFFFF",
      "nodeStyle": {
        "all": {
          "radius": function() {
            return 10;
          },
          "color": function() {
            return "#68B9FE";
          },
          "borderColor": function() {
            return "#127DC1";
          },
          "borderWidth": function(d, radius) {
            return radius / 3;
          },
          "captionColor": function() {
            return "#FFFFFF";
          },
          "captionBackground": function() {
            return null;
          },
          "captionSize": 12,
          "selected": {
            "color": function() {
              return "#FFFFFF";
            },
            "borderColor": function() {
              return "38DD38";
            }
          },
          "highlighted": {
            "color": function() {
              return "#EEEEFF";
            }
          },
          "hidden": {
            "color": function() {
              return "none";
            },
            "borderColor": function() {
              return "none";
            }
          }
        }
      },
      "edgeStyle": {
        "all": {
          "width": 4,
          "color": "#333",
          "opacity": 0.4,
          "directed": false,
          "curved": false,
          "selected": {
            "color": "#38DD38",
            "opacity": 0.9
          },
          "highlighted": {
            "color": "#383838",
            "opacity": 0.7
          },
          "hidden": {
            "opacity": 0
          }
        }
      }
    }
  };

  Alchemy.prototype.exports = function(instance) {
    var a;
    a = instance;
    return {
      init: function() {
        return a.exports.show();
      },
      show: function() {
        return a.dash.select("#all-exports").append("li").attr({
          "class": "list-group-item active-label toggle"
        }).html("SVG").on("click", function(e) {
          var sanitizedUrl, str, svg, url, win;
          svg = d3.select("" + a.conf.divSelector + " svg").node();
          str = (new XMLSerializer).serializeToString(svg);
          url = "data:image/svg+xml;utf8," + str;
          sanitizedUrl = url.replace("xlink:", "");
          win = window.open(sanitizedUrl);
          return win.focus();
        });
      }
    };
  };

  warnings = (function() {
    function warnings(instance) {
      this.dataWarning = __bind(this.dataWarning, this);
      this.a = instance;
    }

    warnings.prototype.dataWarning = function() {
      if (this.a.conf.dataWarning && typeof this.a.conf.dataWarning === 'function') {
        return this.a.conf.dataWarning();
      } else if (this.a.conf.dataWarning === 'default') {
        return console.log("No dataSource was loaded");
      }
    };

    warnings.prototype.divWarning = function() {
      return "create an element that matches the value for 'divSelector' in your conf.\nFor instance, if you are using the default 'divSelector' conf, simply provide\n<div id='#alchemy'></div>.";
    };

    return warnings;

  })();

}).call(this);

//# sourceMappingURL=alchemy.js.map
@-webkit-keyframes fadeIn {
  0% {
    opacity: 0;
  }

  25% {
    opacity: .3;
  }

  50% {
    opacity: .66;
  }

  75% {
    opacity: 1;
  }
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }

  25% {
    opacity: .3;
  }

  50% {
    opacity: .66;
  }

  75% {
    opacity: 1;
  }
}

@-webkit-keyframes pulse {
  0% {
    text-shadow: 0 0 10px rgba(255,255,255,0.2),0 0 12px rgba(255,255,255,0.2),0 0 16px rgba(255,255,255,0.2);
  }

  25% {
    text-shadow: 0 0 12px rgba(255,255,255,0.2),0 0 15px rgba(255,255,255,0.2),0 0 20px rgba(255,255,255,0.2),0 0 6px rgba(104,185,254,0.7),0 0 10px rgba(104,185,254,0.7);
  }

  50% {
    text-shadow: 0 0 12px rgba(255,255,255,0.2),0 0 15px rgba(255,255,255,0.2),0 0 20px rgba(255,255,255,0.2),0 0 8px rgba(104,185,254,0.7),0 0 10px rgba(104,185,254,0.7),0 0 15px rgba(104,185,254,0.7);
  }

  75% {
    text-shadow: 0 0 12px rgba(255,255,255,0.2),0 0 15px rgba(255,255,255,0.2),0 0 25px rgba(255,255,255,0.2),0 0 8px rgba(104,185,254,0.7),0 0 12px rgba(104,185,254,0.7),0 0 15px rgba(104,185,254,0.7),0 0 20px rgba(104,185,254,0.7);
  }
}

@keyframes pulse {
  0% {
    text-shadow: 0 0 10px rgba(255,255,255,0.2),0 0 12px rgba(255,255,255,0.2),0 0 16px rgba(255,255,255,0.2);
  }

  25% {
    text-shadow: 0 0 12px rgba(255,255,255,0.2),0 0 15px rgba(255,255,255,0.2),0 0 20px rgba(255,255,255,0.2),0 0 6px rgba(104,185,254,0.7),0 0 10px rgba(104,185,254,0.7);
  }

  50% {
    text-shadow: 0 0 12px rgba(255,255,255,0.2),0 0 15px rgba(255,255,255,0.2),0 0 20px rgba(255,255,255,0.2),0 0 8px rgba(104,185,254,0.7),0 0 10px rgba(104,185,254,0.7),0 0 15px rgba(104,185,254,0.7);
  }

  75% {
    text-shadow: 0 0 12px rgba(255,255,255,0.2),0 0 15px rgba(255,255,255,0.2),0 0 25px rgba(255,255,255,0.2),0 0 8px rgba(104,185,254,0.7),0 0 12px rgba(104,185,254,0.7),0 0 15px rgba(104,185,254,0.7),0 0 20px rgba(104,185,254,0.7);
  }
}

@-webkit-keyframes slide-in {
  0% {
    -webkit-transform: translate(-100%, 0);
    transform: translate(-100%, 0);
  }

  100% {
    -webkit-transform: translate(0%, 0);
    transform: translate(0%, 0);
  }
}

@keyframes slide-in {
  0% {
    -webkit-transform: translate(-100%, 0);
    transform: translate(-100%, 0);
  }

  100% {
    -webkit-transform: translate(0%, 0);
    transform: translate(0%, 0);
  }
}

@-webkit-keyframes slide-out {
  0% {
    -webkit-transform: translate(0%, 0);
    transform: translate(0%, 0);
  }

  100% {
    -webkit-transform: translate(-100%, 0);
    transform: translate(-100%, 0);
  }
}

@keyframes slide-out {
  100% {
    -webkit-transform: translate(-100%, 0);
    transform: translate(-100%, 0);
  }
}

svg {
  background: white;
  position: absolute;
  left: 0;
  cursor: -webkit-grab;
  height: 100%;
  width: 100%;
  color: #333;
}

.edge path {
  fill: none;
}

.edge .edge-handler {
  stroke: transparent;
  fill: none;
}

.edge text {
  display: none;
  fill: white;
  font-weight: 200;
  text-anchor: middle;
  z-index: 1000;
  text-shadow: 1px 1px #333, -1px 1px #333, 1px -1px #333, -1px -1px #333;
}

.edge.active text {
  display: none;
  fill: white;
  font-weight: 200;
  text-anchor: middle;
  z-index: 1000;
  text-shadow: 1px 1px #333, -1px 1px #333, 1px -1px #333, -1px -1px #333;
}

.edge.active:hover,
.edge.active.selected {
  cursor: pointer;
}

.edge.active:hover text,
.edge.active.selected text {
  display: block;
}

#zoom-controls {
  background-color: rgba(0,0,0,0.3);
  border-top-right-radius: 3px;
  border-bottom-right-radius: 3px;
  box-shadow: 0 0 5px rgba(255,255,255,0.3);
  margin-top: 10%;
  z-index: 5;
  position: relative;
  display: block;
  width: 55px;
}

#zoom-controls #zoom-in,
#zoom-controls #zoom-out,
#zoom-controls #zoom-reset {
  padding: 12px;
  margin: 0;
  width: 100%;
}

#zoom-controls #zoom-in i,
#zoom-controls #zoom-out i,
#zoom-controls #zoom-reset i {
  color: #E89619;
}

#zoom-controls #zoom-in:hover,
#zoom-controls #zoom-out:hover,
#zoom-controls #zoom-reset:hover {
  background-color: rgba(255,255,255,0.2);
}

#zoom-controls #zoom-in:active,
#zoom-controls #zoom-out:active,
#zoom-controls #zoom-reset:active {
  border: none;
}

.fa-caret-right,
.fa-caret-down {
  margin: 0 5px;
  color: #68b9fe;
}

#search {
  margin-top: 2em;
  margin-bottom: 1em;
  padding: .5em 1em;
  width: 100%;
}

#search span {
  vertical-align: bottom;
}

#search input {
  background-color: transparent;
  border: thin dashed #68B9FE;
  font-size: 20px;
  padding-left: 0.5em;
  margin-top: -1px;
}

#search input::-webkit-input-placeholder {
  color: white;
}

#search input:-moz-placeholder {
  color: white;
}

#search input::-moz-placeholder {
  color: white;
}

#search input:-ms-input-placeholder {
  color: white;
}

#search .search-icon {
  height: 22px;
  background-color: transparent;
  border: thin dashed #68B9FE;
  color: white;
}

#stats {
  padding: 0.5em 1em;
  background-color: transparent;
  border-bottom: thin dashed #68b9fe;
}

#stats #stats-header {
  padding: 10px;
}

#stats #all-stats {
  color: white;
  border-radius: none;
  border: none;
  background: transparent;
  overflow: auto;
}

#stats #all-stats li {
  padding: 3px;
}

#stats #node-stats-graph,
#stats #edge-stats-graph {
  height: 250px;
}

#stats #node-stats-graph svg,
#stats #edge-stats-graph svg {
  opacity: .6;
  background: transparent;
}

#stats #node-stats-graph text,
#stats #edge-stats-graph text {
  font-size: 16px;
  fill: white;
  font-weight: 200;
  text-anchor: middle;
  z-index: 1000;
}

#stats #node-stats-graph .no-data,
#stats #edge-stats-graph .no-data {
  margin: 30px 0;
  color: #68b9fe;
}

#stats .badge {
  border-radius: 0;
  height: 100%;
  background-color: rgba(104,185,254,0.6);
}

#editor {
  padding: 0.5em 1em;
  background-color: transparent;
  border-bottom: thin dashed #68b9fe;
}

#editor h3 {
  padding: 10px;
}

#editor #element-options {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  cursor: pointer;
  margin-top: 10px;
  margin-left: 2%;
  color: white;
}

#editor #element-options .node-property,
#editor #element-options #node-add-property {
  display: -webkit-inline-flex;
  display: inline-flex;
  margin: 4px 0;
  width: 100%;
}

#editor #element-options .property-value,
#editor #element-options #node-add-property #add-property #node-add-prop-value {
  border: thin rgba(255,255,255,0.2) solid;
  border-left: none;
  background-color: black;
  color: white;
  width: 100%;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

#editor #element-options .property-name,
#editor #element-options #node-add-property #add-property #node-add-prop-key {
  text-align: center;
  font-weight: 200;
  cursor: default;
  background: #2E2E2E;
  border: thin transparent solid;
  color: #68b9fe;
  border-right: none;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

#editor #element-options #node-add-property #add-property {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-grow: 2;
  flex-grow: 2;
  -webkit-flex-direction: column;
  flex-direction: column;
}

#editor #element-options #node-add-property #add-property #node-add-prop-value {
  text-align: center;
  width: 100%;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 4px;
  border: thin rgba(255,255,255,0.2) solid;
}

#editor #element-options #node-add-property #add-property #node-add-prop-key {
  cursor: text;
  width: 100%;
  border-top-left-radius: 4px;
  border-bottom-left-radius: 0;
}

#editor #element-options input[type="submit"],
#editor #element-options #update-properties {
  color: #68b9fe;
  border-top-right-radius: 4px;
  border-bottom-right-radius: 4px;
  width: auto;
  background: rgba(255,255,255,0.1);
  border: thin solid #68b9fe;
  text-align: center;
}

#editor #element-options input[type="submit"]:active,
#editor #element-options #update-properties:active,
#editor #element-options input[type="submit"]:focus,
#editor #element-options #update-properties:focus {
  outline: none;
}

#editor #element-options input[type="submit"]:hover,
#editor #element-options #update-properties:hover {
  color: white;
  border: thin solid white;
}

#editor #element-options #update-properties {
  border-radius: 4px;
  padding: 10px;
  width: 100%;
  margin-bottom: 20px;
}

#editor #editor-interactions.active {
  color: #68b9fe;
}

#editor #editor-interactions.inactive {
  color: white;
}

#editor #node-editor.enabled {
  -webkit-animation: fadeIn 1s linear;
  animation: fadeIn 1s linear;
}

#control-dash-wrapper {
  font-family: 'Source Sans Pro', Helvetica, sans-serif;
  letter-spacing: .05em;
  height: inherit;
  z-index: inherit;
  padding: 0;
}

#control-dash-wrapper.initial {
  -webkit-transform: translate(-100%, 0);
  transform: translate(-100%, 0);
}

#control-dash-wrapper.initial #dash-toggle {
  color: #68b9fe;
  -webkit-animation: 4s pulse linear;
  animation: 4s pulse linear;
}

#control-dash-wrapper.off-canvas {
  -webkit-transform: translate(-100%, 0);
  transform: translate(-100%, 0);
  -webkit-animation: slide-out .75s linear;
  animation: slide-out .75s linear;
}

#control-dash-wrapper.off-canvas #dash-toggle {
  color: #68b9fe;
  -webkit-animation: 4s pulse linear;
  animation: 4s pulse linear;
}

#control-dash-wrapper.on-canvas {
  -webkit-animation: slide-in .75s ease-in-out;
  animation: slide-in .75s ease-in-out;
}

#control-dash-wrapper.on-canvas * {
  box-shadow: none !important;
}

#control-dash-wrapper.on-canvas #dash-toggle {
  color: rgba(104,185,254,0.6);
}

#control-dash-wrapper.on-canvas #dash-toggle:hover {
  color: #68b9fe;
  -webkit-animation: 4s pulse linear;
  animation: 4s pulse linear;
}

#control-dash-wrapper #control-dash {
  overflow-x: hidden;
  overflow-y: scroll;
  background-color: rgba(0,0,0,0.3);
  padding: 0;
  height: inherit;
  z-index: 5;
}

#control-dash-wrapper #control-dash h3 {
  display: inline;
  margin: 0;
}

#control-dash-wrapper #dash-toggle {
  z-index: 5;
  background-color: rgba(0,0,0,0.3);
  border-top-right-radius: 3px;
  border-bottom-right-radius: 3px;
  box-shadow: 0 0 5px rgba(255,255,255,0.3);
  position: absolute;
  left: 0;
  top: 50%;
  font-size: 2.2em;
  color: rgba(255,255,255,0.2);
  padding: 10px;
}

#control-dash-wrapper button {
  border-radius: 0;
  border: none;
  background-color: transparent;
}

#control-dash-wrapper button:active {
  border: none;
}

#control-dash-wrapper h3 {
  font-weight: 200;
  margin-top: 10px;
  color: white;
  cursor: pointer;
  vertical-align: top;
}

#control-dash-wrapper li {
  cursor: pointer;
  background: transparent;
  border: none;
  border-radius: 0;
}

.node {
  cursor: pointer;
}

.node text.root {
  font-size: 32px;
}

.node text {
  display: none;
  fill: white;
  font-weight: 200;
  text-anchor: middle;
  z-index: 1000;
  text-shadow: 1px 1px #333, -1px 1px #333, 1px -1px #333, -1px -1px #333;
}

.node.active {
  opacity: 1;
}

.node.active.selected text {
  display: block;
}

.node.active:hover text {
  display: block;
}

#filters {
  padding: 0.5em 1em;
  background-color: transparent;
  border-bottom: thin dashed #68b9fe;
  color: white;
}

#filters form {
  width: 100%;
}

#filters #filter-header {
  padding: 10px;
}

#filters #filter-relationships,
#filters #filter-nodes {
  background-color: transparent;
  display: inline-block;
  width: 45%;
  margin-left: 2%;
  overflow: auto;
  text-align: center;
  vertical-align: top;
}

#filters #filter-relationships #filter-node-header,
#filters #filter-relationships #filter-rel-header,
#filters #filter-nodes #filter-node-header,
#filters #filter-nodes #filter-rel-header {
  margin: 10px 0;
  cursor: pointer;
  background-color: transparent;
  border: none;
  border-radius: 0;
  width: 100%;
}

#filters #filter-relationships #filter-node-header h4,
#filters #filter-relationships #filter-rel-header h4,
#filters #filter-nodes #filter-node-header h4,
#filters #filter-nodes #filter-rel-header h4 {
  font-weight: 200;
  display: inline;
  color: white;
}

#filters #filter-relationships #filter-node-header:active,
#filters #filter-relationships #filter-rel-header:active,
#filters #filter-nodes #filter-node-header:active,
#filters #filter-nodes #filter-rel-header:active {
  border: none;
  box-shadow: none;
}

#filters #filter-relationships #rel-dropdown,
#filters #filter-relationships #node-dropdown,
#filters #filter-nodes #rel-dropdown,
#filters #filter-nodes #node-dropdown {
  margin: 20px 0;
  border-radius: none;
  border: none;
  background: transparent;
}

#filters #filter-relationships #rel-dropdown li,
#filters #filter-relationships #node-dropdown li,
#filters #filter-nodes #rel-dropdown li,
#filters #filter-nodes #node-dropdown li {
  padding: 5px;
}

#filters #filter-relationships #rel-dropdown li:hover,
#filters #filter-relationships #node-dropdown li:hover,
#filters #filter-nodes #rel-dropdown li:hover,
#filters #filter-nodes #node-dropdown li:hover {
  background-color: rgba(255,255,255,0.2);
}

#filters .disabled {
  color: rgba(255,255,255,0.5);
}

#filters .disabled:hover {
  color: #68b9fe;
}

.alchemy {
  position: relative;
}

.alchemy #search form {
  z-index: 2;
  display: inline;
  margin-left: 100px;
}

.alchemy #add-tag {
  width: 300px;
  display: inline-block;
}

.alchemy #tags input {
  max-width: 220px;
}

.alchemy #tags-list {
  padding: 0;
}

.alchemy #tags-list .icon-remove-sign {
  cursor: pointer;
}

.alchemy #tags-list li {
  display: inline-block;
  margin-top: 5px;
}

.alchemy #tags-list span {
  background-color: #ccc;
  color: #333;
  border-radius: 10em;
  display: inline-block;
  padding: 1px 6px;
}

.alchemy #filter-nodes label,
.alchemy #filter-relationships label {
  font-weight: normal;
  margin-right: 1em;
}

.alchemy .clear {
  clear: both;
}

.alchemy text {
  font-weight: 200;
  text-anchor: middle;
}@-webkit-keyframes fadeIn{0%{opacity:0}25%{opacity:.3}50%{opacity:.66}75%{opacity:1}}@keyframes fadeIn{0%{opacity:0}25%{opacity:.3}50%{opacity:.66}75%{opacity:1}}@-webkit-keyframes pulse{0%{text-shadow:0 0 10px rgba(255,255,255,.2),0 0 12px rgba(255,255,255,.2),0 0 16px rgba(255,255,255,.2)}25%{text-shadow:0 0 12px rgba(255,255,255,.2),0 0 15px rgba(255,255,255,.2),0 0 20px rgba(255,255,255,.2),0 0 6px rgba(104,185,254,.7),0 0 10px rgba(104,185,254,.7)}50%{text-shadow:0 0 12px rgba(255,255,255,.2),0 0 15px rgba(255,255,255,.2),0 0 20px rgba(255,255,255,.2),0 0 8px rgba(104,185,254,.7),0 0 10px rgba(104,185,254,.7),0 0 15px rgba(104,185,254,.7)}75%{text-shadow:0 0 12px rgba(255,255,255,.2),0 0 15px rgba(255,255,255,.2),0 0 25px rgba(255,255,255,.2),0 0 8px rgba(104,185,254,.7),0 0 12px rgba(104,185,254,.7),0 0 15px rgba(104,185,254,.7),0 0 20px rgba(104,185,254,.7)}}@keyframes pulse{0%{text-shadow:0 0 10px rgba(255,255,255,.2),0 0 12px rgba(255,255,255,.2),0 0 16px rgba(255,255,255,.2)}25%{text-shadow:0 0 12px rgba(255,255,255,.2),0 0 15px rgba(255,255,255,.2),0 0 20px rgba(255,255,255,.2),0 0 6px rgba(104,185,254,.7),0 0 10px rgba(104,185,254,.7)}50%{text-shadow:0 0 12px rgba(255,255,255,.2),0 0 15px rgba(255,255,255,.2),0 0 20px rgba(255,255,255,.2),0 0 8px rgba(104,185,254,.7),0 0 10px rgba(104,185,254,.7),0 0 15px rgba(104,185,254,.7)}75%{text-shadow:0 0 12px rgba(255,255,255,.2),0 0 15px rgba(255,255,255,.2),0 0 25px rgba(255,255,255,.2),0 0 8px rgba(104,185,254,.7),0 0 12px rgba(104,185,254,.7),0 0 15px rgba(104,185,254,.7),0 0 20px rgba(104,185,254,.7)}}@-webkit-keyframes slide-in{0%{-webkit-transform:translate(-100%,0);transform:translate(-100%,0)}100%{-webkit-transform:translate(0%,0);transform:translate(0%,0)}}@keyframes slide-in{0%{-webkit-transform:translate(-100%,0);transform:translate(-100%,0)}100%{-webkit-transform:translate(0%,0);transform:translate(0%,0)}}@-webkit-keyframes slide-out{0%{-webkit-transform:translate(0%,0);transform:translate(0%,0)}100%{-webkit-transform:translate(-100%,0);transform:translate(-100%,0)}}@keyframes slide-out{100%{-webkit-transform:translate(-100%,0);transform:translate(-100%,0)}}svg{position:absolute;left:0;cursor:-webkit-grab;height:100%;width:100%;color:#333}.node{cursor:pointer}.node text.root{font-size:32px}.node text{display:none;fill:#fff;font-weight:200;text-anchor:middle;z-index:1000;text-shadow:1px 1px #333,-1px 1px #333,1px -1px #333,-1px -1px #333}.node.active{opacity:1}.node.active.selected text,.node.active:hover text{display:block}defs #arrow path{stroke:#CCC;stroke-opacity:.2;fill:#CCC;opacity:1}.edge text{stroke-width:0}.edge .edge-handler{fill:none;stroke:none}.edge .edge-line{fill:none}.edge.active text{display:none;fill:#fff;font-weight:200;text-anchor:middle;text-shadow:1px 1px #333,-1px 1px #333,1px -1px #333,-1px -1px #333;z-index:1000}.edge.active.selected,.edge.active:hover{cursor:pointer}.edge.active.highlight text,.edge.active.selected text,.edge.active:hover text{display:block}#zoom-controls{background-color:transparent;background-image:url(images/maze-black.png);border-top-right-radius:3px;border-bottom-right-radius:3px;box-shadow:0 0 5px rgba(255,255,255,.3);margin-top:10%;z-index:5;position:relative;display:block;width:55px}#zoom-controls #zoom-in,#zoom-controls #zoom-out,#zoom-controls #zoom-reset{padding:12px;margin:0;width:100%}#zoom-controls #zoom-in i,#zoom-controls #zoom-out i,#zoom-controls #zoom-reset i{color:#E89619}#zoom-controls #zoom-in:hover,#zoom-controls #zoom-out:hover,#zoom-controls #zoom-reset:hover{background-color:rgba(255,255,255,.2)}#zoom-controls #zoom-in:active,#zoom-controls #zoom-out:active,#zoom-controls #zoom-reset:active{border:0}.fa-caret-down,.fa-caret-right,.fa-search{margin:0 5px;color:#e89619}#search{margin-top:2em;margin-bottom:1em;padding:.5em 1em;width:100%}#search span{vertical-align:bottom}#search input{background-color:#000;border:0;font-size:20px;color:#fff;padding-left:.5em}#search .search-icon{height:22px;background-color:#000;border-color:#000;border-right-color:#111}#stats{padding:.5em 1em;background-color:transparent;border-bottom:thin dashed #e89619}#stats #stats-header{padding:10px}#stats #all-stats{color:#fff;border-radius:none;border:0;background:0 0;overflow:auto}#stats #all-stats li{padding:3px}#stats #edge-stats-graph,#stats #node-stats-graph{height:250px}#stats #edge-stats-graph svg,#stats #node-stats-graph svg{opacity:.6;background:0 0}#stats #edge-stats-graph text,#stats #node-stats-graph text{font-size:16px;fill:#fff;font-weight:200;text-anchor:middle;z-index:1000}#stats #edge-stats-graph .no-data,#stats #node-stats-graph .no-data{margin:30px 0;color:#e89619}#stats .badge{border-radius:0;height:100%;background-color:rgba(104,185,254,.6)}#editor{padding:.5em 1em;background-color:transparent;border-bottom:thin dashed #e89619}#editor h3{padding:10px}#editor #element-options{display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;cursor:pointer;margin-top:10px;margin-left:2%;color:#fff}#editor #element-options #add-property-form,#editor #element-options .property{display:-webkit-inline-flex;display:inline-flex;margin:4px 0;width:100%}#editor #element-options #add-property-form #add-property #add-prop-value,#editor #element-options .property-value{border:thin rgba(255,255,255,.2) solid;border-left:0;background-color:#000;color:#fff;width:100%;border-top-left-radius:0;border-bottom-left-radius:0}#editor #element-options #add-property-form #add-property #add-prop-key,#editor #element-options .property-name{text-align:center;font-weight:200;cursor:default;background:#2E2E2E;border:thin transparent solid;color:#e89619;border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}#editor #element-options #update-properties,#editor #element-options input[type=submit]{color:#e89619;border-top-right-radius:4px;border-bottom-right-radius:4px;width:auto;background:rgba(255,255,255,.1);border:thin solid #e89619;text-align:center}#editor #element-options #update-properties:active,#editor #element-options #update-properties:focus,#editor #element-options input[type=submit]:active,#editor #element-options input[type=submit]:focus{outline:0}#editor #element-options #update-properties:hover,#editor #element-options input[type=submit]:hover{color:#fff;border:thin solid #fff}#editor #element-options #update-properties{border-radius:4px;padding:10px;width:100%;margin-bottom:20px}#editor #element-options #add-property-form #add-property{display:-webkit-flex;display:flex;-webkit-flex-grow:2;flex-grow:2;-webkit-flex-direction:column;flex-direction:column}#editor #element-options #add-property-form #add-property #add-prop-value{text-align:center;width:100%;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:4px;border:thin rgba(255,255,255,.2) solid}#editor #element-options #add-property-form #add-property #add-prop-key{cursor:text;width:100%;border-top-left-radius:4px;border-bottom-left-radius:0}#editor #editor-interactions.active{color:#e89619}#editor #editor-interactions.inactive{color:#fff}#editor #edge-editor.enabled,#editor #node-editor.enabled{-webkit-animation:fadeIn 1s linear;animation:fadeIn 1s linear}#control-dash-wrapper{font-family:'Source Sans Pro',Helvetica,sans-serif;letter-spacing:.05em;height:inherit;z-index:inherit;padding:0}#control-dash-wrapper.initial{-webkit-transform:translate(-100%,0);transform:translate(-100%,0)}#control-dash-wrapper.initial #dash-toggle{color:#e89619;-webkit-animation:4s pulse linear;animation:4s pulse linear}#control-dash-wrapper.off-canvas{-webkit-transform:translate(-100%,0);transform:translate(-100%,0);-webkit-animation:slide-out .75s linear;animation:slide-out .75s linear}#control-dash-wrapper.off-canvas #dash-toggle{color:#e89619;-webkit-animation:4s pulse linear;animation:4s pulse linear}#control-dash-wrapper.on-canvas{-webkit-animation:slide-in .75s ease-in-out;animation:slide-in .75s ease-in-out}#control-dash-wrapper.on-canvas *{box-shadow:none!important}#control-dash-wrapper.on-canvas #dash-toggle{color:rgba(232,150,25,.6)}#control-dash-wrapper.on-canvas #dash-toggle:hover{color:#e89619;-webkit-animation:4s pulse linear;animation:4s pulse linear}#control-dash-wrapper #control-dash{overflow-x:hidden;overflow-y:scroll;background-color:transparent;background-image:url(images/maze-black.png);padding:0;height:inherit;z-index:5}#control-dash-wrapper #control-dash h3{display:inline;margin:0}#control-dash-wrapper #dash-toggle{z-index:5;background-color:transparent;background-image:url(images/maze-black.png);border-top-right-radius:3px;border-bottom-right-radius:3px;box-shadow:0 0 5px rgba(255,255,255,.3);position:absolute;left:0;top:50%;font-size:2.2em;color:rgba(255,255,255,.2);padding:10px}#control-dash-wrapper button{border-radius:0;border:0;background-color:transparent}#control-dash-wrapper button:active{border:0}#control-dash-wrapper h3{font-weight:200;margin-top:10px;color:#fff;cursor:pointer;vertical-align:top}#control-dash-wrapper li{cursor:pointer;background:0 0;border:0;border-radius:0}#clustering{padding:.5em 1em;cursor:pointer;color:#fff;border-bottom:thin dashed #E89619}#clustering #cluster-key-container,#clustering #cluster_control_header{padding:10px 10px 0}#clustering #cluster-key{color:#333;background-color:#000;border-radius:4px;border:thin solid #333;text-align:center;display:inline-block;width:100%}#filters{padding:.5em 1em;background-color:transparent;border-bottom:thin dashed #e89619;color:#fff}#filters form{width:100%}#filters #filter-header{padding:10px}#filters #filter-nodes,#filters #filter-relationships{background-color:transparent;display:inline-block;width:45%;margin-left:2%;overflow:auto;text-align:center;vertical-align:top}#filters #filter-nodes #filter-node-header,#filters #filter-nodes #filter-rel-header,#filters #filter-relationships #filter-node-header,#filters #filter-relationships #filter-rel-header{margin:10px 0;cursor:pointer;background-color:transparent;border:0;border-radius:0;width:100%}#filters #filter-nodes #filter-node-header h4,#filters #filter-nodes #filter-rel-header h4,#filters #filter-relationships #filter-node-header h4,#filters #filter-relationships #filter-rel-header h4{font-weight:200;display:inline;color:#fff}#filters #filter-nodes #filter-node-header:active,#filters #filter-nodes #filter-rel-header:active,#filters #filter-relationships #filter-node-header:active,#filters #filter-relationships #filter-rel-header:active{border:0;box-shadow:none}#filters #filter-nodes #node-dropdown,#filters #filter-nodes #rel-dropdown,#filters #filter-relationships #node-dropdown,#filters #filter-relationships #rel-dropdown{margin:20px 0;border-radius:none;border:0;background:0 0}#filters #filter-nodes #node-dropdown li,#filters #filter-nodes #rel-dropdown li,#filters #filter-relationships #node-dropdown li,#filters #filter-relationships #rel-dropdown li{padding:5px}#filters #filter-nodes #node-dropdown li:hover,#filters #filter-nodes #rel-dropdown li:hover,#filters #filter-relationships #node-dropdown li:hover,#filters #filter-relationships #rel-dropdown li:hover{background-color:rgba(255,255,255,.2)}#filters .disabled{color:rgba(255,255,255,.5)}#filters .disabled:hover{color:#fdc670}.alchemy{position:relative}.alchemy #search form{z-index:2;display:inline;margin-left:100px}.alchemy #add-tag{width:300px;display:inline-block}.alchemy #tags input{max-width:220px}.alchemy #tags-list{padding:0}.alchemy #tags-list .icon-remove-sign{cursor:pointer}.alchemy #tags-list li{display:inline-block;margin-top:5px}.alchemy #tags-list span{background-color:#ccc;color:#333;border-radius:10em;display:inline-block;padding:1px 6px}.alchemy #filter-nodes label,.alchemy #filter-relationships label{font-weight:400;margin-right:1em}.alchemy .clear{clear:both}.alchemy text{font-weight:200;text-anchor:middle}/*!
 * Bootstrap v3.1.1 (http://getbootstrap.com)
 * Copyright 2011-2014 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 *//*! normalize.css v3.0.0 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0}mark{background:#ff0;color:#000}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}@media print{*{text-shadow:none!important;color:#000!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}*,:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:focus,a:hover{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#999}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}cite{font-style:normal}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-muted{color:#999}.text-primary{color:#428bca}a.text-primary:hover{color:#3071a9}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#428bca}a.bg-primary:hover{background-color:#3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#999}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}blockquote:after,blockquote:before{content:""}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container,.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.row{margin-left:-15px;margin-right:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:0}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:0}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:0}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:0}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:0}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:0}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:0}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:0}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered,.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}@media (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}input[type=date]{line-height:34px}.form-group{margin-bottom:15px}.checkbox,.radio{display:block;min-height:20px;margin-top:10px;margin-bottom:10px;padding-left:20px}.checkbox label,.radio label{display:inline;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{float:left;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.checkbox-inline[disabled],.checkbox[disabled],.radio-inline[disabled],.radio[disabled],fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox][disabled],input[type=radio][disabled]{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.has-feedback .form-control-feedback{position:absolute;top:25px;right:0;display:block;width:34px;height:34px;line-height:34px;text-align:center}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.form-control-static{margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{float:none;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .radio-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-control-static{padding-top:7px}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.form-horizontal .has-feedback .form-control-feedback{top:0;right:15px}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn.active:focus,.btn:active:focus,.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.active,.btn-default:active,.btn-default:focus,.btn-default:hover,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default.active,.btn-default:active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary.active,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary.active,.btn-primary:active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.active,.btn-success:active,.btn-success:focus,.btn-success:hover,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success.active,.btn-success:active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.active,.btn-info:active,.btn-info:focus,.btn-info:hover,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info.active,.btn-info:active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.active,.btn-warning:active,.btn-warning:focus,.btn-warning:hover,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.active,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#428bca;font-weight:400;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#999;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#999}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#999}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group-vertical>.btn:focus,.btn-group>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}[data-toggle=buttons]>.btn>input[type=checkbox],[data-toggle=buttons]>.btn>input[type=radio]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-left:0;padding-right:0}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin-top:8px;margin-bottom:8px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{float:none;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-nav>li>a,.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{background-color:#e7e7e7;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>li>a,.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{background-color:#080808;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;text-decoration:none;color:#428bca;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{color:#2a6496;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;cursor:default}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#999;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:focus,.label[href]:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999}.label-default[href]:focus,.label-default[href]:hover{background-color:gray}.label-primary{background-color:#428bca}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.nav-pills>.active>a>.badge,a.list-group-item.active>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.container .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-left:60px;padding-right:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-left:auto;margin-right:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#428bca}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover{text-decoration:none;background-color:#f5f5f5}a.list-group-item.active,a.list-group-item.active:focus,a.list-group-item.active:hover{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}a.list-group-item.active .list-group-item-heading,a.list-group-item.active:focus .list-group-item-heading,a.list-group-item.active:hover .list-group-item-heading{color:inherit}a.list-group-item.active .list-group-item-text,a.list-group-item.active:focus .list-group-item-text,a.list-group-item.active:hover .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px;overflow:hidden}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.5) 0),color-stop(rgba(0,0,0,.0001) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.0001) 0),color-stop(rgba(0,0,0,.5) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:focus,.carousel-control:hover{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{content:" ";display:table}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.form-horizontal .form-group:after,.modal-footer:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-print,.visible-sm,.visible-xs{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}@media print{.hidden-print{display:none!important}}/*!
 *  Font Awesome 4.1.0 by @davegandy - http://fontawesome.io - @fontawesome
 *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
 */@font-face{font-family:FontAwesome;src:url(./fonts/fontawesome-webfont.eot?v=4.1.0);src:url(./fonts/fontawesome-webfont.eot?#iefix&v=4.1.0) format("embedded-opentype"),url(./fonts/fontawesome-webfont.woff?v=4.1.0) format("woff"),url(./fonts/fontawesome-webfont.ttf?v=4.1.0) format("truetype"),url(./fonts/fontawesome-webfont.svg?v=4.1.0#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0);-webkit-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:scale(1,-1);transform:scale(1,-1)}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-repeat:before,.fa-rotate-right:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-exclamation-triangle:before,.fa-warning:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-floppy-o:before,.fa-save:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-bolt:before,.fa-flash:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-chain-broken:before,.fa-unlink:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:"\f150"}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:"\f151"}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:"\f152"}.fa-eur:before,.fa-euro:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-inr:before,.fa-rupee:before{content:"\f156"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:"\f158"}.fa-krw:before,.fa-won:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-try:before,.fa-turkish-lira:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-bank:before,.fa-institution:before,.fa-university:before{content:"\f19c"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-square:before,.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:"\f1c5"}.fa-file-archive-o:before,.fa-file-zip-o:before{content:"\f1c6"}.fa-file-audio-o:before,.fa-file-sound-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-empire:before,.fa-ge:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-paper-plane:before,.fa-send:before{content:"\f1d8"}.fa-paper-plane-o:before,.fa-send-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}PNG

   IHDR   .      `a   -PLTE@@@999>>>???888<<<999888;;;;;;CCC999777EEEHHHKWR   tRNS0Z:5`@UeJE*Pj% 6  IDATx^k`_>h:c!u73JxUqv2ӥ]R$C:[GƎ;`Nc)<^p2wDqCrh3a`'KLm|
+k;{ʛ2͹wށآNZtb+n)	HGZНlUZ'Q~Y? |^<sjGӷ^0HXdVd#n*mG0JO􅨟USVdDǄ^Do2&ןEH]S@s t[Ȫd0"(v.Fcxzmm&sq@h{^Ł 	Dg{t:PqIŻ]U%$f㨭0P=f4"B2@0C#2v˷/DΌWgM,1zO~V:y4Wc)bC\c{ʇzol    IENDB`<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata></metadata>
<defs>
<font id="fontawesomeregular" horiz-adv-x="1536" >
<font-face units-per-em="1792" ascent="1536" descent="-256" />
<missing-glyph horiz-adv-x="448" />
<glyph unicode=" "  horiz-adv-x="448" />
<glyph unicode="&#x09;" horiz-adv-x="448" />
<glyph unicode="&#xa0;" horiz-adv-x="448" />
<glyph unicode="&#xa8;" horiz-adv-x="1792" />
<glyph unicode="&#xa9;" horiz-adv-x="1792" />
<glyph unicode="&#xae;" horiz-adv-x="1792" />
<glyph unicode="&#xb4;" horiz-adv-x="1792" />
<glyph unicode="&#xc6;" horiz-adv-x="1792" />
<glyph unicode="&#xd8;" horiz-adv-x="1792" />
<glyph unicode="&#x2000;" horiz-adv-x="768" />
<glyph unicode="&#x2001;" horiz-adv-x="1537" />
<glyph unicode="&#x2002;" horiz-adv-x="768" />
<glyph unicode="&#x2003;" horiz-adv-x="1537" />
<glyph unicode="&#x2004;" horiz-adv-x="512" />
<glyph unicode="&#x2005;" horiz-adv-x="384" />
<glyph unicode="&#x2006;" horiz-adv-x="256" />
<glyph unicode="&#x2007;" horiz-adv-x="256" />
<glyph unicode="&#x2008;" horiz-adv-x="192" />
<glyph unicode="&#x2009;" horiz-adv-x="307" />
<glyph unicode="&#x200a;" horiz-adv-x="85" />
<glyph unicode="&#x202f;" horiz-adv-x="307" />
<glyph unicode="&#x205f;" horiz-adv-x="384" />
<glyph unicode="&#x2122;" horiz-adv-x="1792" />
<glyph unicode="&#x221e;" horiz-adv-x="1792" />
<glyph unicode="&#x2260;" horiz-adv-x="1792" />
<glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" />
<glyph unicode="&#xf000;" horiz-adv-x="1792" d="M93 1350q0 23 18 36.5t38 17.5t43 4h1408q23 0 43 -4t38 -17.5t18 -36.5q0 -35 -43 -78l-632 -632v-768h320q26 0 45 -19t19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45t45 19h320v768l-632 632q-43 43 -43 78z" />
<glyph unicode="&#xf001;" d="M0 -64q0 50 34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v967q0 31 19 56.5t49 35.5l832 256q12 4 28 4q40 0 68 -28t28 -68v-1120q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89t34 89t86 60.5t103.5 32t96.5 10.5 q105 0 192 -39v537l-768 -237v-709q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89z" />
<glyph unicode="&#xf002;" horiz-adv-x="1664" d="M0 704q0 143 55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90q0 -52 -38 -90t-90 -38q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5z M256 704q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5z" />
<glyph unicode="&#xf003;" horiz-adv-x="1792" d="M0 32v1088q0 66 47 113t113 47h1472q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113zM128 32q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5v768q-32 -36 -69 -66q-268 -206 -426 -338q-51 -43 -83 -67t-86.5 -48.5 t-102.5 -24.5h-1h-1q-48 0 -102.5 24.5t-86.5 48.5t-83 67q-158 132 -426 338q-37 30 -69 66v-768zM128 1120q0 -168 147 -284q193 -152 401 -317q6 -5 35 -29.5t46 -37.5t44.5 -31.5t50.5 -27.5t43 -9h1h1q20 0 43 9t50.5 27.5t44.5 31.5t46 37.5t35 29.5q208 165 401 317 q54 43 100.5 115.5t46.5 131.5v11v13.5t-0.5 13t-3 12.5t-5.5 9t-9 7.5t-14 2.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5z" />
<glyph unicode="&#xf004;" horiz-adv-x="1792" d="M0 940q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124t127 -344q0 -221 -229 -450l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138z " />
<glyph unicode="&#xf005;" horiz-adv-x="1664" d="M0 889q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455l502 -73q56 -9 56 -46q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -21 -10.5 -35.5t-30.5 -14.5q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500 l-364 354q-25 27 -25 48z" />
<glyph unicode="&#xf006;" horiz-adv-x="1664" d="M0 889q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455l502 -73q56 -9 56 -46q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -50 -41 -50q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354 q-25 27 -25 48zM221 829l306 -297l-73 -421l378 199l377 -199l-72 421l306 297l-422 62l-189 382l-189 -382z" />
<glyph unicode="&#xf007;" horiz-adv-x="1408" d="M0 131q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q9 0 42 -21.5t74.5 -48t108 -48t133.5 -21.5t133.5 21.5t108 48t74.5 48t42 21.5q61 0 111.5 -20t85.5 -53.5t62 -81t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5q0 -120 -73 -189.5t-194 -69.5 h-874q-121 0 -194 69.5t-73 189.5zM320 1024q0 159 112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5z" />
<glyph unicode="&#xf008;" horiz-adv-x="1920" d="M0 -96v1344q0 66 47 113t113 47h1600q66 0 113 -47t47 -113v-1344q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113zM128 64v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45zM128 320q0 -26 19 -45t45 -19h128 q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128zM128 704q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128zM128 1088q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v128q0 26 -19 45t-45 19 h-128q-26 0 -45 -19t-19 -45v-128zM512 -64q0 -26 19 -45t45 -19h768q26 0 45 19t19 45v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512zM512 704q0 -26 19 -45t45 -19h768q26 0 45 19t19 45v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512zM1536 64 v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45zM1536 320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128zM1536 704q0 -26 19 -45t45 -19h128q26 0 45 19t19 45 v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128zM1536 1088q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128z" />
<glyph unicode="&#xf009;" horiz-adv-x="1664" d="M0 128v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90zM0 896v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90zM896 128v384q0 52 38 90t90 38h512q52 0 90 -38 t38 -90v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90zM896 896v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90z" />
<glyph unicode="&#xf00a;" horiz-adv-x="1792" d="M0 96v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM0 608v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM0 1120v192q0 40 28 68t68 28h320q40 0 68 -28 t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM640 96v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM640 608v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320 q-40 0 -68 28t-28 68zM640 1120v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM1280 96v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM1280 608v192 q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM1280 1120v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68z" />
<glyph unicode="&#xf00b;" horiz-adv-x="1792" d="M0 96v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM0 608v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM0 1120v192q0 40 28 68t68 28h320q40 0 68 -28 t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM640 96v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68zM640 608v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-960 q-40 0 -68 28t-28 68zM640 1120v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68z" />
<glyph unicode="&#xf00c;" horiz-adv-x="1792" d="M121 608q0 40 28 68l136 136q28 28 68 28t68 -28l294 -295l656 657q28 28 68 28t68 -28l136 -136q28 -28 28 -68t-28 -68l-724 -724l-136 -136q-28 -28 -68 -28t-68 28l-136 136l-362 362q-28 28 -28 68z" />
<glyph unicode="&#xf00d;" horiz-adv-x="1408" d="M110 214q0 40 28 68l294 294l-294 294q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -294l294 294q28 28 68 28t68 -28l136 -136q28 -28 28 -68t-28 -68l-294 -294l294 -294q28 -28 28 -68t-28 -68l-136 -136q-28 -28 -68 -28t-68 28l-294 294l-294 -294 q-28 -28 -68 -28t-68 28l-136 136q-28 28 -28 68z" />
<glyph unicode="&#xf00e;" horiz-adv-x="1664" d="M0 704q0 143 55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90t-37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5z M256 704q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5zM384 672v64q0 13 9.5 22.5t22.5 9.5h224v224q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-224h224q13 0 22.5 -9.5t9.5 -22.5v-64 q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-224q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v224h-224q-13 0 -22.5 9.5t-9.5 22.5z" />
<glyph unicode="&#xf010;" horiz-adv-x="1664" d="M0 704q0 143 55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90t-37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5z M256 704q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5zM384 672v64q0 13 9.5 22.5t22.5 9.5h576q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-576q-13 0 -22.5 9.5t-9.5 22.5z" />
<glyph unicode="&#xf011;" d="M0 640q0 182 80.5 343t226.5 270q43 32 95.5 25t83.5 -50q32 -42 24.5 -94.5t-49.5 -84.5q-98 -74 -151.5 -181t-53.5 -228q0 -104 40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5q0 121 -53.5 228t-151.5 181 q-42 32 -49.5 84.5t24.5 94.5q31 43 84 50t95 -25q146 -109 226.5 -270t80.5 -343q0 -156 -61 -298t-164 -245t-245 -164t-298 -61t-298 61t-245 164t-164 245t-61 298zM640 768v640q0 52 38 90t90 38t90 -38t38 -90v-640q0 -52 -38 -90t-90 -38t-90 38t-38 90z" />
<glyph unicode="&#xf012;" horiz-adv-x="1792" d="M0 -96v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23zM384 -96v320q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-320q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23zM768 -96v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-576 q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23zM1152 -96v960q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-960q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23zM1536 -96v1472q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1472q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23z" />
<glyph unicode="&#xf013;" d="M0 531v222q0 12 8 23t19 13l186 28q14 46 39 92q-40 57 -107 138q-10 12 -10 24q0 10 9 23q26 36 98.5 107.5t94.5 71.5q13 0 26 -10l138 -107q44 23 91 38q16 136 29 186q7 28 36 28h222q14 0 24.5 -8.5t11.5 -21.5l28 -184q49 -16 90 -37l142 107q9 9 24 9q13 0 25 -10 q129 -119 165 -170q7 -8 7 -22q0 -12 -8 -23q-15 -21 -51 -66.5t-54 -70.5q26 -50 41 -98l183 -28q13 -2 21 -12.5t8 -23.5v-222q0 -12 -8 -23t-20 -13l-185 -28q-19 -54 -39 -91q35 -50 107 -138q10 -12 10 -25t-9 -23q-27 -37 -99 -108t-94 -71q-12 0 -26 9l-138 108 q-44 -23 -91 -38q-16 -136 -29 -186q-7 -28 -36 -28h-222q-14 0 -24.5 8.5t-11.5 21.5l-28 184q-49 16 -90 37l-141 -107q-10 -9 -25 -9q-14 0 -25 11q-126 114 -165 168q-7 10 -7 23q0 12 8 23q15 21 51 66.5t54 70.5q-27 50 -41 99l-183 27q-13 2 -21 12.5t-8 23.5z M512 640q0 -106 75 -181t181 -75t181 75t75 181t-75 181t-181 75t-181 -75t-75 -181z" />
<glyph unicode="&#xf014;" horiz-adv-x="1408" d="M0 1056v64q0 14 9 23t23 9h309l70 167q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23zM256 76q0 -22 7 -40.5 t14.5 -27t10.5 -8.5h832q3 0 10.5 8.5t14.5 27t7 40.5v948h-896v-948zM384 224v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM640 224v576q0 14 9 23t23 9h64 q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23zM896 224v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23z" />
<glyph unicode="&#xf015;" horiz-adv-x="1664" d="M26 636.5q1 13.5 11 21.5l719 599q32 26 76 26t76 -26l244 -204v195q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-408l219 -182q10 -8 11 -21.5t-7 -23.5l-62 -74q-8 -9 -21 -11h-3q-13 0 -21 7l-692 577l-692 -577q-12 -8 -24 -7q-13 2 -21 11l-62 74q-8 10 -7 23.5zM256 64 v480q0 1 0.5 3t0.5 3l575 474l575 -474q1 -2 1 -6v-480q0 -26 -19 -45t-45 -19h-384v384h-256v-384h-384q-26 0 -45 19t-19 45z" />
<glyph unicode="&#xf016;" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22 v-376z" />
<glyph unicode="&#xf017;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM512 544v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23z" />
<glyph unicode="&#xf018;" horiz-adv-x="1920" d="M50 73q0 54 26 116l417 1044q8 19 26 33t38 14h339q-13 0 -23 -9.5t-11 -22.5l-15 -192q-1 -14 8 -23t22 -9h166q13 0 22 9t8 23l-15 192q-1 13 -11 22.5t-23 9.5h339q20 0 38 -14t26 -33l417 -1044q26 -62 26 -116q0 -73 -46 -73h-704q13 0 22 9.5t8 22.5l-20 256 q-1 13 -11 22.5t-23 9.5h-272q-13 0 -23 -9.5t-11 -22.5l-20 -256q-1 -13 8 -22.5t22 -9.5h-704q-46 0 -46 73zM809 540q-1 -12 8 -20t21 -8h244q12 0 21 8t8 20v4l-24 320q-1 13 -11 22.5t-23 9.5h-186q-13 0 -23 -9.5t-11 -22.5l-24 -320v-4z" />
<glyph unicode="&#xf019;" horiz-adv-x="1664" d="M0 96v320q0 40 28 68t68 28h465l135 -136q58 -56 136 -56t136 56l136 136h464q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68zM325 985q17 39 59 39h256v448q0 26 19 45t45 19h256q26 0 45 -19t19 -45v-448h256q42 0 59 -39q17 -41 -14 -70 l-448 -448q-18 -19 -45 -19t-45 19l-448 448q-31 29 -14 70zM1152 192q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45zM1408 192q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
<glyph unicode="&#xf01a;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM418 620q8 20 30 20h192v352q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-352h192q14 0 23 -9t9 -23q0 -12 -10 -24l-319 -319q-11 -9 -23 -9t-23 9l-320 320q-15 16 -7 35z" />
<glyph unicode="&#xf01b;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM416 672q0 12 10 24l319 319q11 9 23 9t23 -9l320 -320q15 -16 7 -35q-8 -20 -30 -20h-192v-352q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v352h-192q-14 0 -23 9t-9 23z" />
<glyph unicode="&#xf01c;" d="M0 64v482q0 62 25 123l238 552q10 25 36.5 42t52.5 17h832q26 0 52.5 -17t36.5 -42l238 -552q25 -61 25 -123v-482q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45zM197 576h316l95 -192h320l95 192h316q-1 3 -2.5 8t-2.5 8l-212 496h-708l-212 -496q-1 -2 -2.5 -8 t-2.5 -8z" />
<glyph unicode="&#xf01d;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM512 320v640q0 37 32 56q33 18 64 -1l544 -320q32 -18 32 -55t-32 -55l-544 -320q-15 -9 -32 -9q-16 0 -32 8q-32 19 -32 56z" />
<glyph unicode="&#xf01e;" d="M0 640q0 156 61 298t164 245t245 164t298 61q147 0 284.5 -55.5t244.5 -156.5l130 129q29 31 70 14q39 -17 39 -59v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l138 138q-148 137 -349 137q-104 0 -198.5 -40.5t-163.5 -109.5t-109.5 -163.5 t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5q119 0 225 52t179 147q7 10 23 12q14 0 25 -9l137 -138q9 -8 9.5 -20.5t-7.5 -22.5q-109 -132 -264 -204.5t-327 -72.5q-156 0 -298 61t-245 164t-164 245t-61 298z" />
<glyph unicode="&#xf021;" d="M0 0v448q0 26 19 45t45 19h448q26 0 45 -19t19 -45t-19 -45l-137 -137q71 -66 161 -102t187 -36q134 0 250 65t186 179q11 17 53 117q8 23 30 23h192q13 0 22.5 -9.5t9.5 -22.5q0 -5 -1 -7q-64 -268 -268 -434.5t-478 -166.5q-146 0 -282.5 55t-243.5 157l-129 -129 q-19 -19 -45 -19t-45 19t-19 45zM18 800v7q65 268 270 434.5t480 166.5q146 0 284 -55.5t245 -156.5l130 129q19 19 45 19t45 -19t19 -45v-448q0 -26 -19 -45t-45 -19h-448q-26 0 -45 19t-19 45t19 45l138 138q-148 137 -349 137q-134 0 -250 -65t-186 -179 q-11 -17 -53 -117q-8 -23 -30 -23h-199q-13 0 -22.5 9.5t-9.5 22.5z" />
<glyph unicode="&#xf022;" horiz-adv-x="1792" d="M0 160v1088q0 66 47 113t113 47h1472q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113zM128 160q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5v832q0 13 -9.5 22.5t-22.5 9.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5v-832z M256 288v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM256 544v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5z M256 800v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 288v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5z M512 544v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5zM512 800v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5z " />
<glyph unicode="&#xf023;" horiz-adv-x="1152" d="M0 96v576q0 40 28 68t68 28h32v192q0 184 132 316t316 132t316 -132t132 -316v-192h32q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68zM320 768h512v192q0 106 -75 181t-181 75t-181 -75t-75 -181v-192z" />
<glyph unicode="&#xf024;" horiz-adv-x="1792" d="M64 1280q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5q0 -72 -64 -110v-1266q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v1266q-64 38 -64 110zM320 320v742q0 32 31 55q21 14 79 43q236 120 421 120q107 0 200 -29t219 -88q38 -19 88 -19 q54 0 117.5 21t110 47t88 47t54.5 21q26 0 45 -19t19 -45v-763q0 -25 -12.5 -38.5t-39.5 -27.5q-215 -116 -369 -116q-61 0 -123.5 22t-108.5 48t-115.5 48t-142.5 22q-192 0 -464 -146q-17 -9 -33 -9q-26 0 -45 19t-19 45z" />
<glyph unicode="&#xf025;" horiz-adv-x="1664" d="M0 650q0 151 67 291t179 242.5t266 163.5t320 61t320 -61t266 -163.5t179 -242.5t67 -291q0 -166 -60 -314l-20 -49l-185 -33q-22 -83 -90.5 -136.5t-156.5 -53.5v-32q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-32 q71 0 130 -35.5t93 -95.5l68 12q29 95 29 193q0 148 -88 279t-236.5 209t-315.5 78t-315.5 -78t-236.5 -209t-88 -279q0 -98 29 -193l68 -12q34 60 93 95.5t130 35.5v32q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v32 q-88 0 -156.5 53.5t-90.5 136.5l-185 33l-20 49q-60 148 -60 314z" />
<glyph unicode="&#xf026;" horiz-adv-x="768" d="M0 448v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45z" />
<glyph unicode="&#xf027;" horiz-adv-x="1152" d="M0 448v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45zM908 464q0 21 12 35.5t29 25t34 23t29 35.5t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5 q15 0 25 -5q70 -27 112.5 -93t42.5 -142t-42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5z" />
<glyph unicode="&#xf028;" horiz-adv-x="1664" d="M0 448v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45zM908 464q0 21 12 35.5t29 25t34 23t29 35.5t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5 q15 0 25 -5q70 -27 112.5 -93t42.5 -142t-42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5zM1008 228q0 39 39 59q56 29 76 44q74 54 115.5 135.5t41.5 173.5t-41.5 173.5t-115.5 135.5q-20 15 -76 44q-39 20 -39 59q0 26 19 45t45 19q13 0 26 -5 q140 -59 225 -188.5t85 -282.5t-85 -282.5t-225 -188.5q-13 -5 -25 -5q-27 0 -46 19t-19 45zM1109 -7q0 36 39 59q7 4 22.5 10.5t22.5 10.5q46 25 82 51q123 91 192 227t69 289t-69 289t-192 227q-36 26 -82 51q-7 4 -22.5 10.5t-22.5 10.5q-39 23 -39 59q0 26 19 45t45 19 q13 0 26 -5q211 -91 338 -283.5t127 -422.5t-127 -422.5t-338 -283.5q-13 -5 -26 -5q-26 0 -45 19t-19 45z" />
<glyph unicode="&#xf029;" horiz-adv-x="1408" d="M0 0v640h640v-640h-640zM0 768v640h640v-640h-640zM128 129h384v383h-384v-383zM128 896h384v384h-384v-384zM256 256v128h128v-128h-128zM256 1024v128h128v-128h-128zM768 0v640h384v-128h128v128h128v-384h-384v128h-128v-384h-128zM768 768v640h640v-640h-640z M896 896h384v384h-384v-384zM1024 0v128h128v-128h-128zM1024 1024v128h128v-128h-128zM1280 0v128h128v-128h-128z" />
<glyph unicode="&#xf02a;" horiz-adv-x="1792" d="M0 0v1408h63v-1408h-63zM94 1v1407h32v-1407h-32zM189 1v1407h31v-1407h-31zM346 1v1407h31v-1407h-31zM472 1v1407h62v-1407h-62zM629 1v1407h31v-1407h-31zM692 1v1407h31v-1407h-31zM755 1v1407h31v-1407h-31zM880 1v1407h63v-1407h-63zM1037 1v1407h63v-1407h-63z M1163 1v1407h63v-1407h-63zM1289 1v1407h63v-1407h-63zM1383 1v1407h63v-1407h-63zM1541 1v1407h94v-1407h-94zM1666 1v1407h32v-1407h-32zM1729 0v1408h63v-1408h-63z" />
<glyph unicode="&#xf02b;" d="M0 864v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5l715 -714q37 -39 37 -91q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117zM192 1088q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5 t-90.5 -37.5t-37.5 -90.5z" />
<glyph unicode="&#xf02c;" horiz-adv-x="1920" d="M0 864v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5l715 -714q37 -39 37 -91q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117zM192 1088q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5 t-90.5 -37.5t-37.5 -90.5zM704 1408h224q53 0 117 -26.5t102 -64.5l715 -714q37 -39 37 -91q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-36 0 -59 14t-53 45l470 470q37 37 37 90q0 52 -37 91l-715 714q-38 38 -102 64.5t-117 26.5z" />
<glyph unicode="&#xf02d;" horiz-adv-x="1664" d="M10 184q0 4 3 27t4 37q1 8 -3 21.5t-3 19.5q2 11 8 21t16.5 23.5t16.5 23.5q23 38 45 91.5t30 91.5q3 10 0.5 30t-0.5 28q3 11 17 28t17 23q21 36 42 92t25 90q1 9 -2.5 32t0.5 28q4 13 22 30.5t22 22.5q19 26 42.5 84.5t27.5 96.5q1 8 -3 25.5t-2 26.5q2 8 9 18t18 23 t17 21q8 12 16.5 30.5t15 35t16 36t19.5 32t26.5 23.5t36 11.5t47.5 -5.5l-1 -3q38 9 51 9h761q74 0 114 -56t18 -130l-274 -906q-36 -119 -71.5 -153.5t-128.5 -34.5h-869q-27 0 -38 -15q-11 -16 -1 -43q24 -70 144 -70h923q29 0 56 15.5t35 41.5l300 987q7 22 5 57 q38 -15 59 -43q40 -57 18 -129l-275 -906q-19 -64 -76.5 -107.5t-122.5 -43.5h-923q-77 0 -148.5 53.5t-99.5 131.5q-24 67 -2 127zM492 800q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5t-16.5 -22.5zM575 1056 q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5t-16.5 -22.5z" />
<glyph unicode="&#xf02e;" horiz-adv-x="1280" d="M0 7v1289q0 34 19.5 62t52.5 41q21 9 44 9h1048q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62z" />
<glyph unicode="&#xf02f;" horiz-adv-x="1664" d="M0 160v416q0 79 56.5 135.5t135.5 56.5h64v544q0 40 28 68t68 28h672q40 0 88 -20t76 -48l152 -152q28 -28 48 -76t20 -88v-256h64q79 0 135.5 -56.5t56.5 -135.5v-416q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-160q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v160h-224 q-13 0 -22.5 9.5t-9.5 22.5zM384 0h896v256h-896v-256zM384 640h896v384h-160q-40 0 -68 28t-28 68v160h-640v-640zM1408 576q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
<glyph unicode="&#xf030;" horiz-adv-x="1920" d="M0 128v896q0 106 75 181t181 75h224l51 136q19 49 69.5 84.5t103.5 35.5h512q53 0 103.5 -35.5t69.5 -84.5l51 -136h224q106 0 181 -75t75 -181v-896q0 -106 -75 -181t-181 -75h-1408q-106 0 -181 75t-75 181zM512 576q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5 t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5zM672 576q0 119 84.5 203.5t203.5 84.5t203.5 -84.5t84.5 -203.5t-84.5 -203.5t-203.5 -84.5t-203.5 84.5t-84.5 203.5z" />
<glyph unicode="&#xf031;" horiz-adv-x="1664" d="M0 -128l2 79q23 7 56 12.5t57 10.5t49.5 14.5t44.5 29t31 50.5l237 616l280 724h75h53q8 -14 11 -21l205 -480q33 -78 106 -257.5t114 -274.5q15 -34 58 -144.5t72 -168.5q20 -45 35 -57q19 -15 88 -29.5t84 -20.5q6 -38 6 -57q0 -4 -0.5 -13t-0.5 -13q-63 0 -190 8 t-191 8q-76 0 -215 -7t-178 -8q0 43 4 78l131 28q1 0 12.5 2.5t15.5 3.5t14.5 4.5t15 6.5t11 8t9 11t2.5 14q0 16 -31 96.5t-72 177.5t-42 100l-450 2q-26 -58 -76.5 -195.5t-50.5 -162.5q0 -22 14 -37.5t43.5 -24.5t48.5 -13.5t57 -8.5t41 -4q1 -19 1 -58q0 -9 -2 -27 q-58 0 -174.5 10t-174.5 10q-8 0 -26.5 -4t-21.5 -4q-80 -14 -188 -14zM555 527q33 0 136.5 -2t160.5 -2q19 0 57 2q-87 253 -184 452z" />
<glyph unicode="&#xf032;" horiz-adv-x="1408" d="M0 -128l2 94q15 4 85 16t106 27q7 12 12.5 27t8.5 33.5t5.5 32.5t3 37.5t0.5 34v35.5v30q0 982 -22 1025q-4 8 -22 14.5t-44.5 11t-49.5 7t-48.5 4.5t-30.5 3l-4 83q98 2 340 11.5t373 9.5q23 0 68.5 -0.5t67.5 -0.5q70 0 136.5 -13t128.5 -42t108 -71t74 -104.5 t28 -137.5q0 -52 -16.5 -95.5t-39 -72t-64.5 -57.5t-73 -45t-84 -40q154 -35 256.5 -134t102.5 -248q0 -100 -35 -179.5t-93.5 -130.5t-138 -85.5t-163.5 -48.5t-176 -14q-44 0 -132 3t-132 3q-106 0 -307 -11t-231 -12zM533 1292q0 -50 4 -151t4 -152q0 -27 -0.5 -80 t-0.5 -79q0 -46 1 -69q42 -7 109 -7q82 0 143 13t110 44.5t74.5 89.5t25.5 142q0 70 -29 122.5t-79 82t-108 43.5t-124 14q-50 0 -130 -13zM538.5 165q0.5 -37 4.5 -83.5t12 -66.5q74 -32 140 -32q376 0 376 335q0 114 -41 180q-27 44 -61.5 74t-67.5 46.5t-80.5 25 t-84 10.5t-94.5 2q-73 0 -101 -10q0 -53 -0.5 -159t-0.5 -158q0 -8 -1 -67.5t-0.5 -96.5z" />
<glyph unicode="&#xf033;" horiz-adv-x="1024" d="M0 -126l17 85q6 2 81.5 21.5t111.5 37.5q28 35 41 101q1 7 62 289t114 543.5t52 296.5v25q-24 13 -54.5 18.5t-69.5 8t-58 5.5l19 103q33 -2 120 -6.5t149.5 -7t120.5 -2.5q48 0 98.5 2.5t121 7t98.5 6.5q-5 -39 -19 -89q-30 -10 -101.5 -28.5t-108.5 -33.5 q-8 -19 -14 -42.5t-9 -40t-7.5 -45.5t-6.5 -42q-27 -148 -87.5 -419.5t-77.5 -355.5q-2 -9 -13 -58t-20 -90t-16 -83.5t-6 -57.5l1 -18q17 -4 185 -31q-3 -44 -16 -99q-11 0 -32.5 -1.5t-32.5 -1.5q-29 0 -87 10t-86 10q-138 2 -206 2q-51 0 -143 -9t-121 -11z" />
<glyph unicode="&#xf034;" horiz-adv-x="1792" d="M0 1023v383l81 1l54 -27q12 -5 211 -5q44 0 132 2t132 2q36 0 107.5 -0.5t107.5 -0.5h293q6 0 21 -0.5t20.5 0t16 3t17.5 9t15 17.5l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 48t-14.5 73.5t-7.5 35.5 q-6 8 -12 12.5t-15.5 6t-13 2.5t-18 0.5t-16.5 -0.5q-17 0 -66.5 0.5t-74.5 0.5t-64 -2t-71 -6q-9 -81 -8 -136q0 -94 2 -388t2 -455q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9 t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27q19 42 19 383q0 101 -3 303t-3 303v117q0 2 0.5 15.5t0.5 25t-1 25.5t-3 24t-5 14q-11 12 -162 12q-33 0 -93 -12t-80 -26q-19 -13 -34 -72.5t-31.5 -111t-42.5 -53.5q-42 26 -56 44zM1414 109.5q9 18.5 42 18.5h80v1024 h-80q-33 0 -42 18.5t11 44.5l126 162q20 26 49 26t49 -26l126 -162q20 -26 11 -44.5t-42 -18.5h-80v-1024h80q33 0 42 -18.5t-11 -44.5l-126 -162q-20 -26 -49 -26t-49 26l-126 162q-20 26 -11 44.5z" />
<glyph unicode="&#xf035;" d="M0 1023v383l81 1l54 -27q12 -5 211 -5q44 0 132 2t132 2q70 0 246.5 1t304.5 0.5t247 -4.5q33 -1 56 31l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 47.5t-15 73.5t-7 36q-10 13 -27 19q-5 2 -66 2q-30 0 -93 1 t-103 1t-94 -2t-96 -7q-9 -81 -8 -136l1 -152v52q0 -55 1 -154t1.5 -180t0.5 -153q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29 t78 27q7 16 11.5 74t6 145.5t1.5 155t-0.5 153.5t-0.5 89q0 7 -2.5 21.5t-2.5 22.5q0 7 0.5 44t1 73t0 76.5t-3 67.5t-6.5 32q-11 12 -162 12q-41 0 -163 -13.5t-138 -24.5q-19 -12 -34 -71.5t-31.5 -111.5t-42.5 -54q-42 26 -56 44zM5 -64q0 28 26 49q4 3 36 30t59.5 49 t57.5 41.5t42 19.5q13 0 20.5 -10.5t10 -28.5t2.5 -33.5t-1.5 -33t-1.5 -19.5h1024q0 2 -1.5 19.5t-1.5 33t2.5 33.5t10 28.5t20.5 10.5q12 0 42 -19.5t57.5 -41.5t59.5 -49t36 -30q26 -21 26 -49t-26 -49q-4 -3 -36 -30t-59.5 -49t-57.5 -41.5t-42 -19.5q-13 0 -20.5 10.5 t-10 28.5t-2.5 33.5t1.5 33t1.5 19.5h-1024q0 -2 1.5 -19.5t1.5 -33t-2.5 -33.5t-10 -28.5t-20.5 -10.5q-12 0 -42 19.5t-57.5 41.5t-59.5 49t-36 30q-26 21 -26 49z" />
<glyph unicode="&#xf036;" horiz-adv-x="1792" d="M0 64v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM0 448v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45zM0 832v128q0 26 19 45t45 19h1536 q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1536q-26 0 -45 19t-19 45zM0 1216v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45z" />
<glyph unicode="&#xf037;" horiz-adv-x="1792" d="M0 64v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM128 832v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45zM384 448v128q0 26 19 45t45 19h896 q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45zM512 1216v128q0 26 19 45t45 19h640q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45z" />
<glyph unicode="&#xf038;" horiz-adv-x="1792" d="M0 64v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM128 832v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1536q-26 0 -45 19t-19 45zM384 448v128q0 26 19 45t45 19h1280 q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45zM512 1216v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45z" />
<glyph unicode="&#xf039;" horiz-adv-x="1792" d="M0 64v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM0 448v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM0 832v128q0 26 19 45t45 19h1664 q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM0 1216v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45z" />
<glyph unicode="&#xf03a;" horiz-adv-x="1792" d="M0 32v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5zM0 416v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5 t-9.5 22.5zM0 800v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5zM0 1184v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192 q-13 0 -22.5 9.5t-9.5 22.5zM384 32v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5zM384 416v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5 t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5zM384 800v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5zM384 1184v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5v-192 q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5z" />
<glyph unicode="&#xf03b;" horiz-adv-x="1792" d="M0 32v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5zM0 1184v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5 t-9.5 22.5zM32 704q0 14 9 23l288 288q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-576q0 -13 -9.5 -22.5t-22.5 -9.5q-14 0 -23 9l-288 288q-9 9 -9 23zM640 416v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088 q-13 0 -22.5 9.5t-9.5 22.5zM640 800v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5z" />
<glyph unicode="&#xf03c;" horiz-adv-x="1792" d="M0 32v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5zM0 416v576q0 13 9.5 22.5t22.5 9.5q14 0 23 -9l288 -288q9 -9 9 -23t-9 -23l-288 -288q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5z M0 1184v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5zM640 416v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5 t-9.5 22.5zM640 800v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5z" />
<glyph unicode="&#xf03d;" horiz-adv-x="1792" d="M0 288v704q0 119 84.5 203.5t203.5 84.5h704q119 0 203.5 -84.5t84.5 -203.5v-165l403 402q18 19 45 19q12 0 25 -5q39 -17 39 -59v-1088q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-403 403v-166q0 -119 -84.5 -203.5t-203.5 -84.5h-704q-119 0 -203.5 84.5 t-84.5 203.5z" />
<glyph unicode="&#xf03e;" horiz-adv-x="1920" d="M0 32v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113zM128 32q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v1216q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-1216z M256 128v192l320 320l160 -160l512 512l416 -416v-448h-1408zM256 960q0 80 56 136t136 56t136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136z" />
<glyph unicode="&#xf040;" d="M0 -128v416l832 832l416 -416l-832 -832h-416zM128 128h128v-128h107l91 91l-235 235l-91 -91v-107zM298 384q0 -22 22 -22q10 0 17 7l542 542q7 7 7 17q0 22 -22 22q-10 0 -17 -7l-542 -542q-7 -7 -7 -17zM896 1184l166 165q36 38 90 38q53 0 91 -38l235 -234 q37 -39 37 -91q0 -53 -37 -90l-166 -166z" />
<glyph unicode="&#xf041;" horiz-adv-x="1024" d="M0 896q0 212 150 362t362 150t362 -150t150 -362q0 -109 -33 -179l-364 -774q-16 -33 -47.5 -52t-67.5 -19t-67.5 19t-46.5 52l-365 774q-33 70 -33 179zM256 896q0 -106 75 -181t181 -75t181 75t75 181t-75 181t-181 75t-181 -75t-75 -181z" />
<glyph unicode="&#xf042;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73v1088q-148 0 -273 -73t-198 -198t-73 -273z" />
<glyph unicode="&#xf043;" horiz-adv-x="1024" d="M0 512q0 145 81 275q6 9 62.5 90.5t101 151t99.5 178t83 201.5q9 30 34 47t51 17t51.5 -17t33.5 -47q28 -93 83 -201.5t99.5 -178t101 -151t62.5 -90.5q81 -127 81 -275q0 -212 -150 -362t-362 -150t-362 150t-150 362zM256 384q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5 t37.5 90.5q0 36 -20 69q-1 1 -15.5 22.5t-25.5 38t-25 44t-21 50.5q-4 16 -21 16t-21 -16q-7 -23 -21 -50.5t-25 -44t-25.5 -38t-15.5 -22.5q-20 -33 -20 -69z" />
<glyph unicode="&#xf044;" horiz-adv-x="1792" d="M0 288v832q0 119 84.5 203.5t203.5 84.5h832q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-14 -14 -32 -8q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v126q0 13 9 22l64 64q15 15 35 7t20 -29v-190 q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5zM640 256v288l672 672l288 -288l-672 -672h-288zM736 448h96v-96h56l116 116l-152 152l-116 -116v-56zM944 688q16 -16 33 1l350 350q17 17 1 33t-33 -1l-350 -350q-17 -17 -1 -33zM1376 1280l92 92 q28 28 68 28t68 -28l152 -152q28 -28 28 -68t-28 -68l-92 -92z" />
<glyph unicode="&#xf045;" horiz-adv-x="1664" d="M0 288v832q0 119 84.5 203.5t203.5 84.5h255q13 0 22.5 -9.5t9.5 -22.5q0 -27 -26 -32q-77 -26 -133 -60q-10 -4 -16 -4h-112q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v214q0 19 18 29q28 13 54 37q16 16 35 8q21 -9 21 -29v-259 q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5zM256 704q0 49 3.5 91t14 90t28 88t47 81.5t68.5 74t94.5 61.5t124.5 48.5t159.5 30.5t196.5 11h160v192q0 42 39 59q13 5 25 5q26 0 45 -19l384 -384q19 -19 19 -45t-19 -45l-384 -384 q-18 -19 -45 -19q-12 0 -25 5q-39 17 -39 59v192h-160q-323 0 -438 -131q-119 -137 -74 -473q3 -23 -20 -34q-8 -2 -12 -2q-16 0 -26 13q-10 14 -21 31t-39.5 68.5t-49.5 99.5t-38.5 114t-17.5 122z" />
<glyph unicode="&#xf046;" horiz-adv-x="1664" d="M0 288v832q0 119 84.5 203.5t203.5 84.5h832q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-10 -10 -23 -10q-3 0 -9 2q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v254q0 13 9 22l64 64q10 10 23 10q6 0 12 -3 q20 -8 20 -29v-318q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5zM257 768q0 33 24 57l110 110q24 24 57 24t57 -24l263 -263l647 647q24 24 57 24t57 -24l110 -110q24 -24 24 -57t-24 -57l-814 -814q-24 -24 -57 -24t-57 24l-430 430 q-24 24 -24 57z" />
<glyph unicode="&#xf047;" horiz-adv-x="1792" d="M0 640q0 26 19 45l256 256q19 19 45 19t45 -19t19 -45v-128h384v384h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45t-19 -45t-45 -19h-128v-384h384v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45t-19 -45l-256 -256 q-19 -19 -45 -19t-45 19t-19 45v128h-384v-384h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v384h-384v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45z" />
<glyph unicode="&#xf048;" horiz-adv-x="1024" d="M0 -64v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19l710 710q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45z" />
<glyph unicode="&#xf049;" horiz-adv-x="1792" d="M0 -64v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19l710 710q19 19 32 13t13 -32v-710q4 11 13 19l710 710q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45 t-45 -19h-128q-26 0 -45 19t-19 45z" />
<glyph unicode="&#xf04a;" horiz-adv-x="1664" d="M122 640q0 26 19 45l710 710q19 19 32 13t13 -32v-710q5 11 13 19l710 710q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-8 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-19 19 -19 45z" />
<glyph unicode="&#xf04b;" horiz-adv-x="1408" d="M0 -96v1472q0 26 16.5 36t39.5 -3l1328 -738q23 -13 23 -31t-23 -31l-1328 -738q-23 -13 -39.5 -3t-16.5 36z" />
<glyph unicode="&#xf04c;" d="M0 -64v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45zM896 -64v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45z" />
<glyph unicode="&#xf04d;" d="M0 -64v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45z" />
<glyph unicode="&#xf04e;" horiz-adv-x="1664" d="M0 -96v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q19 -19 19 -45t-19 -45l-710 -710q-19 -19 -32 -13t-13 32v710q-5 -10 -13 -19l-710 -710q-19 -19 -32 -13t-13 32z" />
<glyph unicode="&#xf050;" horiz-adv-x="1792" d="M0 -96v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19l-710 -710q-19 -19 -32 -13t-13 32v710 q-5 -10 -13 -19l-710 -710q-19 -19 -32 -13t-13 32z" />
<glyph unicode="&#xf051;" horiz-adv-x="1024" d="M0 -96v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19l-710 -710q-19 -19 -32 -13t-13 32z" />
<glyph unicode="&#xf052;" horiz-adv-x="1538" d="M1 64v256q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45zM1 525q-6 13 13 32l710 710q19 19 45 19t45 -19l710 -710q19 -19 13 -32t-32 -13h-1472q-26 0 -32 13z" />
<glyph unicode="&#xf053;" horiz-adv-x="1280" d="M154 704q0 26 19 45l742 742q19 19 45 19t45 -19l166 -166q19 -19 19 -45t-19 -45l-531 -531l531 -531q19 -19 19 -45t-19 -45l-166 -166q-19 -19 -45 -19t-45 19l-742 742q-19 19 -19 45z" />
<glyph unicode="&#xf054;" horiz-adv-x="1280" d="M90 128q0 26 19 45l531 531l-531 531q-19 19 -19 45t19 45l166 166q19 19 45 19t45 -19l742 -742q19 -19 19 -45t-19 -45l-742 -742q-19 -19 -45 -19t-45 19l-166 166q-19 19 -19 45z" />
<glyph unicode="&#xf055;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM320 576q0 -26 19 -45t45 -19h256v-256q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v256h256q26 0 45 19 t19 45v128q0 26 -19 45t-45 19h-256v256q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-256h-256q-26 0 -45 -19t-19 -45v-128z" />
<glyph unicode="&#xf056;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM320 576q0 -26 19 -45t45 -19h768q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-768q-26 0 -45 -19 t-19 -45v-128z" />
<glyph unicode="&#xf057;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM387 414q0 -27 19 -46l90 -90q19 -19 46 -19q26 0 45 19l181 181l181 -181q19 -19 45 -19q27 0 46 19 l90 90q19 19 19 46q0 26 -19 45l-181 181l181 181q19 19 19 45q0 27 -19 46l-90 90q-19 19 -46 19q-26 0 -45 -19l-181 -181l-181 181q-19 19 -45 19q-27 0 -46 -19l-90 -90q-19 -19 -19 -46q0 -26 19 -45l181 -181l-181 -181q-19 -19 -19 -45z" />
<glyph unicode="&#xf058;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM252 621q0 -27 18 -45l362 -362q19 -19 45 -19q27 0 46 19l543 543q18 18 18 45q0 28 -18 46l-91 90 q-19 19 -45 19t-45 -19l-408 -407l-226 226q-19 19 -45 19t-45 -19l-91 -90q-18 -18 -18 -46z" />
<glyph unicode="&#xf059;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM417 939q-15 -24 8 -42l132 -100q7 -6 19 -6q16 0 25 12q53 68 86 92q34 24 86 24q48 0 85.5 -26 t37.5 -59q0 -38 -20 -61t-68 -45q-63 -28 -115.5 -86.5t-52.5 -125.5v-36q0 -14 9 -23t23 -9h192q14 0 23 9t9 23q0 19 21.5 49.5t54.5 49.5q32 18 49 28.5t46 35t44.5 48t28 60.5t12.5 81q0 88 -55.5 163t-138.5 116t-170 41q-243 0 -371 -213zM640 160q0 -14 9 -23t23 -9 h192q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-192z" />
<glyph unicode="&#xf05a;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM512 160q0 -14 9 -23t23 -9h448q14 0 23 9t9 23v160q0 14 -9 23t-23 9h-96v512q0 14 -9 23t-23 9h-320 q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h96v-320h-96q-14 0 -23 -9t-9 -23v-160zM640 1056q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v160q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-160z" />
<glyph unicode="&#xf05b;" d="M0 576v128q0 26 19 45t45 19h143q37 161 154.5 278.5t278.5 154.5v143q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-143q161 -37 278.5 -154.5t154.5 -278.5h143q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-143q-37 -161 -154.5 -278.5t-278.5 -154.5v-143 q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v143q-161 37 -278.5 154.5t-154.5 278.5h-143q-26 0 -45 19t-19 45zM339 512q32 -108 112.5 -188.5t188.5 -112.5v109q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-109q108 32 188.5 112.5t112.5 188.5h-109q-26 0 -45 19 t-19 45v128q0 26 19 45t45 19h109q-32 108 -112.5 188.5t-188.5 112.5v-109q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v109q-108 -32 -188.5 -112.5t-112.5 -188.5h109q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-109z" />
<glyph unicode="&#xf05c;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM429 480q0 13 10 23l137 137l-137 137q-10 10 -10 23t10 23l146 146q10 10 23 10t23 -10l137 -137l137 137q10 10 23 10t23 -10l146 -146q10 -10 10 -23t-10 -23l-137 -137l137 -137q10 -10 10 -23t-10 -23l-146 -146q-10 -10 -23 -10t-23 10l-137 137 l-137 -137q-10 -10 -23 -10t-23 10l-146 146q-10 10 -10 23z" />
<glyph unicode="&#xf05d;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM346 640q0 26 19 45l102 102q19 19 45 19t45 -19l147 -147l275 275q19 19 45 19t45 -19l102 -102q19 -19 19 -45t-19 -45l-422 -422q-19 -19 -45 -19t-45 19l-294 294q-19 19 -19 45z" />
<glyph unicode="&#xf05e;" d="M0 643q0 157 61 299.5t163.5 245.5t245 164t298.5 61t298.5 -61t245 -164t163.5 -245.5t61 -299.5t-61 -300t-163.5 -246t-245 -164t-298.5 -61t-298.5 61t-245 164t-163.5 246t-61 300zM224 643q0 -162 89 -299l755 754q-135 91 -300 91q-148 0 -273 -73t-198 -199 t-73 -274zM471 185q137 -89 297 -89q111 0 211.5 43.5t173.5 116.5t116 174.5t43 212.5q0 161 -87 295z" />
<glyph unicode="&#xf060;" d="M64 576q0 52 37 91l651 650q38 38 91 38q52 0 90 -38l75 -74q38 -38 38 -91t-38 -91l-293 -293h704q52 0 84.5 -37.5t32.5 -90.5v-128q0 -53 -32.5 -90.5t-84.5 -37.5h-704l293 -294q38 -36 38 -90t-38 -90l-75 -76q-37 -37 -90 -37q-52 0 -91 37l-651 652q-37 37 -37 90 z" />
<glyph unicode="&#xf061;" d="M0 512v128q0 53 32.5 90.5t84.5 37.5h704l-293 294q-38 36 -38 90t38 90l75 75q38 38 90 38q53 0 91 -38l651 -651q37 -35 37 -90q0 -54 -37 -91l-651 -651q-39 -37 -91 -37q-51 0 -90 37l-75 75q-38 38 -38 91t38 91l293 293h-704q-52 0 -84.5 37.5t-32.5 90.5z" />
<glyph unicode="&#xf062;" horiz-adv-x="1664" d="M53 565q0 53 38 91l651 651q35 37 90 37q54 0 91 -37l651 -651q37 -39 37 -91q0 -51 -37 -90l-75 -75q-38 -38 -91 -38q-54 0 -90 38l-294 293v-704q0 -52 -37.5 -84.5t-90.5 -32.5h-128q-53 0 -90.5 32.5t-37.5 84.5v704l-294 -293q-36 -38 -90 -38t-90 38l-75 75 q-38 38 -38 90z" />
<glyph unicode="&#xf063;" horiz-adv-x="1664" d="M53 704q0 53 38 91l74 75q39 37 91 37q53 0 90 -37l294 -294v704q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-704l294 294q37 37 90 37q52 0 91 -37l75 -75q37 -39 37 -91q0 -53 -37 -90l-651 -652q-39 -37 -91 -37q-53 0 -90 37l-651 652q-38 36 -38 90z" />
<glyph unicode="&#xf064;" horiz-adv-x="1792" d="M0 416q0 199 53 333q162 403 875 403h224v256q0 26 19 45t45 19t45 -19l512 -512q19 -19 19 -45t-19 -45l-512 -512q-19 -19 -45 -19t-45 19t-19 45v256h-224q-98 0 -175.5 -6t-154 -21.5t-133 -42.5t-105.5 -69.5t-80 -101t-48.5 -138.5t-17.5 -181q0 -55 5 -123 q0 -6 2.5 -23.5t2.5 -26.5q0 -15 -8.5 -25t-23.5 -10q-16 0 -28 17q-7 9 -13 22t-13.5 30t-10.5 24q-127 285 -127 451z" />
<glyph unicode="&#xf065;" d="M0 -64v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23t-10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45t-45 -19h-448q-26 0 -45 19t-19 45zM781 800q0 13 10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448 q26 0 45 -19t19 -45v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23z" />
<glyph unicode="&#xf066;" d="M13 32q0 13 10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23zM768 704v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10 t23 -10l114 -114q10 -10 10 -23t-10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45t-45 -19h-448q-26 0 -45 19t-19 45z" />
<glyph unicode="&#xf067;" horiz-adv-x="1408" d="M0 608v192q0 40 28 68t68 28h416v416q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-416h416q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-416v-416q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v416h-416q-40 0 -68 28t-28 68z" />
<glyph unicode="&#xf068;" horiz-adv-x="1408" d="M0 608v192q0 40 28 68t68 28h1216q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-1216q-40 0 -68 28t-28 68z" />
<glyph unicode="&#xf069;" horiz-adv-x="1664" d="M122.5 408.5q13.5 51.5 59.5 77.5l266 154l-266 154q-46 26 -59.5 77.5t12.5 97.5l64 110q26 46 77.5 59.5t97.5 -12.5l266 -153v307q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-307l266 153q46 26 97.5 12.5t77.5 -59.5l64 -110q26 -46 12.5 -97.5t-59.5 -77.5 l-266 -154l266 -154q46 -26 59.5 -77.5t-12.5 -97.5l-64 -110q-26 -46 -77.5 -59.5t-97.5 12.5l-266 153v-307q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v307l-266 -153q-46 -26 -97.5 -12.5t-77.5 59.5l-64 110q-26 46 -12.5 97.5z" />
<glyph unicode="&#xf06a;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM624 1126l17 -621q0 -10 10 -17.5t24 -7.5h185q14 0 23.5 7.5t10.5 17.5l18 621q0 12 -10 18 q-10 8 -24 8h-220q-14 0 -24 -8q-10 -6 -10 -18zM640 161q0 -13 10 -23t23 -10h192q13 0 22 9.5t9 23.5v190q0 14 -9 23.5t-22 9.5h-192q-13 0 -23 -10t-10 -23v-190z" />
<glyph unicode="&#xf06b;" d="M0 544v320q0 14 9 23t23 9h440q-93 0 -158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5q107 0 168 -77l128 -165l128 165q61 77 168 77q93 0 158.5 -65.5t65.5 -158.5t-65.5 -158.5t-158.5 -65.5h440q14 0 23 -9t9 -23v-320q0 -14 -9 -23t-23 -9h-96v-416q0 -40 -28 -68 t-68 -28h-1088q-40 0 -68 28t-28 68v416h-96q-14 0 -23 9t-9 23zM376 1120q0 -40 28 -68t68 -28h195l-126 161q-26 31 -69 31q-40 0 -68 -28t-28 -68zM608 180q0 -25 18 -38.5t46 -13.5h192q28 0 46 13.5t18 38.5v56v468v192h-320v-192v-468v-56zM870 1024h194q40 0 68 28 t28 68t-28 68t-68 28q-43 0 -69 -31z" />
<glyph unicode="&#xf06c;" horiz-adv-x="1792" d="M0 121q0 35 31 73.5t68 65.5t68 56t31 48q0 4 -14 38t-16 44q-9 51 -9 104q0 115 43.5 220t119 184.5t170.5 139t204 95.5q55 18 145 25.5t179.5 9t178.5 6t163.5 24t113.5 56.5l29.5 29.5t29.5 28t27 20t36.5 16t43.5 4.5q39 0 70.5 -46t47.5 -112t24 -124t8 -96 q0 -95 -20 -193q-46 -224 -184.5 -383t-357.5 -268q-214 -108 -438 -108q-148 0 -286 47q-15 5 -88 42t-96 37q-16 0 -39.5 -32t-45 -70t-52.5 -70t-60 -32q-30 0 -51 11t-31 24t-27 42q-2 4 -6 11t-5.5 10t-3 9.5t-1.5 13.5zM384 448q0 -26 19 -45t45 -19q24 0 45 19 q27 24 74 71t67 66q137 124 268.5 176t313.5 52q26 0 45 19t19 45t-19 45t-45 19q-172 0 -318 -49.5t-259.5 -134t-235.5 -219.5q-19 -21 -19 -45z" />
<glyph unicode="&#xf06d;" horiz-adv-x="1408" d="M0 -160q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v64zM256 640q0 78 24.5 144t64 112.5t87.5 88t96 77.5t87.5 72t64 81.5t24.5 96.5q0 94 -66 224l3 -1l-1 1q90 -41 160 -83t138.5 -100 t113.5 -122.5t72.5 -150.5t27.5 -184q0 -78 -24.5 -144t-64 -112.5t-87.5 -88t-96 -77.5t-87.5 -72t-64 -81.5t-24.5 -96.5q0 -96 67 -224l-4 1l1 -1q-90 41 -160 83t-138.5 100t-113.5 122.5t-72.5 150.5t-27.5 184z" />
<glyph unicode="&#xf06e;" horiz-adv-x="1792" d="M0 576q0 34 20 69q140 229 376.5 368t499.5 139t499.5 -139t376.5 -368q20 -35 20 -69t-20 -69q-140 -230 -376.5 -368.5t-499.5 -138.5t-499.5 139t-376.5 368q-20 35 -20 69zM128 576q133 -205 333.5 -326.5t434.5 -121.5t434.5 121.5t333.5 326.5q-152 236 -381 353 q61 -104 61 -225q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 121 61 225q-229 -117 -381 -353zM592 704q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34t-14 34t-34 14q-125 0 -214.5 -89.5t-89.5 -214.5z" />
<glyph unicode="&#xf070;" horiz-adv-x="1792" d="M0 576q0 38 20 69q153 235 380 371t496 136q89 0 180 -17l54 97q10 16 28 16q5 0 18 -6t31 -15.5t33 -18.5t31.5 -18.5t19.5 -11.5q16 -10 16 -27q0 -7 -1 -9q-105 -188 -315 -566t-316 -567l-49 -89q-10 -16 -28 -16q-12 0 -134 70q-16 10 -16 28q0 12 44 87 q-143 65 -263.5 173t-208.5 245q-20 31 -20 69zM128 576q167 -258 427 -375l78 141q-87 63 -136 159t-49 203q0 121 61 225q-229 -117 -381 -353zM592 704q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34t-14 34t-34 14q-125 0 -214.5 -89.5 t-89.5 -214.5zM896 0l74 132q212 18 392.5 137t301.5 307q-115 179 -282 294l63 112q95 -64 182.5 -153t144.5 -184q20 -34 20 -69t-20 -69q-39 -64 -109 -145q-150 -172 -347.5 -267t-419.5 -95zM1056 286l280 502q8 -45 8 -84q0 -139 -79 -253.5t-209 -164.5z" />
<glyph unicode="&#xf071;" horiz-adv-x="1792" d="M16 61l768 1408q17 31 47 49t65 18t65 -18t47 -49l768 -1408q35 -63 -2 -126q-17 -29 -46.5 -46t-63.5 -17h-1536q-34 0 -63.5 17t-46.5 46q-37 63 -2 126zM752 992l17 -457q0 -10 10 -16.5t24 -6.5h185q14 0 23.5 6.5t10.5 16.5l18 459q0 12 -10 19q-13 11 -24 11h-220 q-11 0 -24 -11q-10 -7 -10 -21zM768 161q0 -14 9.5 -23.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 23.5v190q0 14 -9.5 23.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -23.5v-190z" />
<glyph unicode="&#xf072;" horiz-adv-x="1408" d="M0 477q-1 13 9 25l96 97q9 9 23 9q6 0 8 -1l194 -53l259 259l-508 279q-14 8 -17 24q-2 16 9 27l128 128q14 13 30 8l665 -159l160 160q76 76 172 108t148 -12q44 -52 12 -148t-108 -172l-161 -161l160 -696q5 -19 -12 -33l-128 -96q-7 -6 -19 -6q-4 0 -7 1q-15 3 -21 16 l-279 508l-259 -259l53 -194q5 -17 -8 -31l-96 -96q-9 -9 -23 -9h-2q-15 2 -24 13l-189 252l-252 189q-11 7 -13 23z" />
<glyph unicode="&#xf073;" horiz-adv-x="1664" d="M0 -128v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90zM128 -128h288v288h-288v-288zM128 224 h288v320h-288v-320zM128 608h288v288h-288v-288zM384 1088q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v288q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-288zM480 -128h320v288h-320v-288zM480 224h320v320h-320v-320zM480 608h320v288h-320 v-288zM864 -128h320v288h-320v-288zM864 224h320v320h-320v-320zM864 608h320v288h-320v-288zM1152 1088q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v288q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-288zM1248 -128h288v288h-288v-288z M1248 224h288v320h-288v-320zM1248 608h288v288h-288v-288z" />
<glyph unicode="&#xf074;" horiz-adv-x="1792" d="M0 160v192q0 14 9 23t23 9h224q48 0 87 15t69 45t51 61.5t45 77.5q32 62 78 171q29 66 49.5 111t54 105t64 100t74 83t90 68.5t106.5 42t128 16.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23t-9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192 h-256q-48 0 -87 -15t-69 -45t-51 -61.5t-45 -77.5q-32 -62 -78 -171q-29 -66 -49.5 -111t-54 -105t-64 -100t-74 -83t-90 -68.5t-106.5 -42t-128 -16.5h-224q-14 0 -23 9t-9 23zM0 1056v192q0 14 9 23t23 9h224q250 0 410 -225q-60 -92 -137 -273q-22 45 -37 72.5 t-40.5 63.5t-51 56.5t-63 35t-81.5 14.5h-224q-14 0 -23 9t-9 23zM743 353q59 93 136 273q22 -45 37 -72.5t40.5 -63.5t51 -56.5t63 -35t81.5 -14.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23t-9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192 q-32 0 -85 -0.5t-81 -1t-73 1t-71 5t-64 10.5t-63 18.5t-58 28.5t-59 40t-55 53.5t-56 69.5z" />
<glyph unicode="&#xf075;" horiz-adv-x="1792" d="M0 640q0 130 71 248.5t191 204.5t286 136.5t348 50.5q244 0 450 -85.5t326 -233t120 -321.5t-120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22q-17 -2 -30.5 9t-17.5 29v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5 t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281z" />
<glyph unicode="&#xf076;" d="M0 576v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-128q0 -52 23.5 -90t53.5 -57t71 -30t64 -13t44 -2t44 2t64 13t71 30t53.5 57t23.5 90v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-128q0 -201 -98.5 -362t-274 -251.5t-395.5 -90.5t-395.5 90.5t-274 251.5 t-98.5 362zM0 960v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45zM1024 960v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45z" />
<glyph unicode="&#xf077;" horiz-adv-x="1792" d="M90 250.5q0 26.5 19 45.5l742 741q19 19 45 19t45 -19l742 -741q19 -19 19 -45.5t-19 -45.5l-166 -165q-19 -19 -45 -19t-45 19l-531 531l-531 -531q-19 -19 -45 -19t-45 19l-166 165q-19 19 -19 45.5z" />
<glyph unicode="&#xf078;" horiz-adv-x="1792" d="M90 773.5q0 26.5 19 45.5l166 165q19 19 45 19t45 -19l531 -531l531 531q19 19 45 19t45 -19l166 -165q19 -19 19 -45.5t-19 -45.5l-742 -741q-19 -19 -45 -19t-45 19l-742 741q-19 19 -19 45.5z" />
<glyph unicode="&#xf079;" horiz-adv-x="1920" d="M0 704q0 24 15 41l320 384q19 22 49 22t49 -22l320 -384q15 -17 15 -41q0 -26 -19 -45t-45 -19h-192v-384h576q16 0 25 -11l160 -192q7 -11 7 -21q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-8 0 -13.5 2t-9 7t-5.5 8t-3 11.5t-1 11.5v13v11v160v416h-192q-26 0 -45 19t-19 45z M640 1120q0 13 9.5 22.5t22.5 9.5h960q8 0 13.5 -2t9 -7t5.5 -8t3 -11.5t1 -11.5v-13v-11v-160v-416h192q26 0 45 -19t19 -45q0 -24 -15 -41l-320 -384q-20 -23 -49 -23t-49 23l-320 384q-15 17 -15 41q0 26 19 45t45 19h192v384h-576q-16 0 -25 12l-160 192q-7 9 -7 20z " />
<glyph unicode="&#xf07a;" horiz-adv-x="1664" d="M0 1216q0 26 19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45v-512q0 -24 -16 -42.5t-41 -21.5l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024 q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45zM384 0q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5zM1280 0q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5 t-90.5 -37.5t-90.5 37.5t-37.5 90.5z" />
<glyph unicode="&#xf07b;" horiz-adv-x="1664" d="M0 224v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158z" />
<glyph unicode="&#xf07c;" horiz-adv-x="1920" d="M0 224v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158v-160h-832q-94 0 -197 -47.5t-164 -119.5l-337 -396l-5 -6q0 4 -0.5 12.5t-0.5 12.5zM73 56q0 31 31 66l336 396q43 51 120.5 86.5t143.5 35.5h1088q34 0 60.5 -13t26.5 -43 q0 -31 -31 -66l-336 -396q-43 -51 -120.5 -86.5t-143.5 -35.5h-1088q-34 0 -60.5 13t-26.5 43z" />
<glyph unicode="&#xf07d;" horiz-adv-x="768" d="M64 64q0 26 19 45t45 19h128v1024h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45t-19 -45t-45 -19h-128v-1024h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45z" />
<glyph unicode="&#xf07e;" horiz-adv-x="1792" d="M0 640q0 26 19 45l256 256q19 19 45 19t45 -19t19 -45v-128h1024v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-1024v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45z" />
<glyph unicode="&#xf080;" horiz-adv-x="1920" d="M0 32v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113zM128 32q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v1216q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-1216z M256 128v384h256v-384h-256zM640 128v896h256v-896h-256zM1024 128v640h256v-640h-256zM1408 128v1024h256v-1024h-256z" />
<glyph unicode="&#xf081;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 286q148 -94 322 -94q112 0 210 35.5t168 95t120.5 137t75 162t24.5 168.5q0 18 -1 27q63 45 105 109 q-56 -25 -121 -34q68 40 93 117q-65 -38 -134 -51q-61 66 -153 66q-87 0 -148.5 -61.5t-61.5 -148.5q0 -29 5 -48q-129 7 -242 65t-192 155q-29 -50 -29 -106q0 -114 91 -175q-47 1 -100 26v-2q0 -75 50 -133.5t123 -72.5q-29 -8 -51 -8q-13 0 -39 4q21 -63 74.5 -104 t121.5 -42q-116 -90 -261 -90q-26 0 -50 3z" />
<glyph unicode="&#xf082;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-192v608h203l30 224h-233v143q0 54 28 83t96 29l132 1v207q-96 9 -180 9q-136 0 -218 -80.5t-82 -225.5v-166h-224v-224h224v-608h-544 q-119 0 -203.5 84.5t-84.5 203.5z" />
<glyph unicode="&#xf083;" horiz-adv-x="1792" d="M0 0v1280q0 53 37.5 90.5t90.5 37.5h1536q53 0 90.5 -37.5t37.5 -90.5v-1280q0 -53 -37.5 -90.5t-90.5 -37.5h-1536q-53 0 -90.5 37.5t-37.5 90.5zM128 0h1536v128h-1536v-128zM128 1024h1536v118v138h-828l-64 -128h-644v-128zM256 1216h384v128h-384v-128zM512 574 q0 -159 112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5zM640 574q0 106 75 181t181 75t181 -75t75 -181t-75 -181t-181 -75t-181 75t-75 181zM736 576q0 -14 9 -23t23 -9t23 9t9 23q0 40 28 68t68 28q14 0 23 9 t9 23t-9 23t-23 9q-66 0 -113 -47t-47 -113z" />
<glyph unicode="&#xf084;" horiz-adv-x="1792" d="M0 752q0 160 95 313t248 248t313 95q163 0 265.5 -102.5t102.5 -265.5q0 -189 -131 -365l355 -355l96 96q-3 3 -26 24.5t-40 38.5t-33 36.5t-16 28.5q0 17 49 66t66 49q13 0 23 -10q6 -6 46 -44.5t82 -79.5t86.5 -86t73 -78t28.5 -41q0 -17 -49 -66t-66 -49 q-9 0 -28.5 16t-36.5 33t-38.5 40t-24.5 26l-96 -96l220 -220q28 -28 28 -68q0 -42 -39 -81t-81 -39q-40 0 -68 28l-671 671q-176 -131 -365 -131q-163 0 -265.5 102.5t-102.5 265.5zM192 768q0 -80 56 -136t136 -56t136 56t56 136q0 42 -19 83q41 -19 83 -19q80 0 136 56 t56 136t-56 136t-136 56t-136 -56t-56 -136q0 -42 19 -83q-41 19 -83 19q-80 0 -136 -56t-56 -136z" />
<glyph unicode="&#xf085;" horiz-adv-x="1920" d="M0 549v185q0 10 7 19.5t16 10.5l155 24q11 35 32 76q-34 48 -90 115q-7 11 -7 20q0 12 7 20q22 30 82 89t79 59q11 0 21 -7l115 -90q34 18 77 32q11 108 23 154q7 24 30 24h186q11 0 20 -7.5t10 -17.5l23 -153q34 -10 75 -31l118 89q8 7 20 7q11 0 21 -8 q144 -133 144 -160q0 -9 -7 -19q-12 -16 -42 -54t-45 -60q23 -48 34 -82l152 -23q10 -2 17 -10.5t7 -19.5v-185q0 -10 -7 -19.5t-16 -10.5l-155 -24q-11 -35 -32 -76q34 -48 90 -115q7 -10 7 -20q0 -12 -7 -19q-23 -30 -82.5 -89.5t-78.5 -59.5q-11 0 -21 7l-115 90 q-37 -19 -77 -31q-11 -108 -23 -155q-7 -24 -30 -24h-186q-11 0 -20 7.5t-10 17.5l-23 153q-34 10 -75 31l-118 -89q-7 -7 -20 -7q-11 0 -21 8q-144 133 -144 160q0 9 7 19q10 14 41 53t47 61q-23 44 -35 82l-152 24q-10 1 -17 9.5t-7 19.5zM384 640q0 -106 75 -181t181 -75 t181 75t75 181t-75 181t-181 75t-181 -75t-75 -181zM1152 58v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31 v-140q0 -16 -149 -31q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31zM1152 1082v140q0 16 149 31q13 29 30 52 q-51 113 -51 138q0 4 4 7q4 2 35 20t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31v-140q0 -16 -149 -31q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71 q-8 0 -46 47t-52 68q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31zM1408 128q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5q0 52 -38 90t-90 38t-90 -38t-38 -90zM1408 1152q0 -53 37.5 -90.5 t90.5 -37.5t90.5 37.5t37.5 90.5q0 52 -38 90t-90 38t-90 -38t-38 -90z" />
<glyph unicode="&#xf086;" horiz-adv-x="1792" d="M0 768q0 139 94 257t256.5 186.5t353.5 68.5t353.5 -68.5t256.5 -186.5t94 -257t-94 -257t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25 t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224zM616 132q58 -4 88 -4q161 0 309 45t264 129q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230q0 -120 -71 -224.5t-195 -176.5q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5 t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132z" />
<glyph unicode="&#xf087;" d="M0 128v640q0 53 37.5 90.5t90.5 37.5h274q36 24 137 155q58 75 107 128q24 25 35.5 85.5t30.5 126.5t62 108q39 37 90 37q84 0 151 -32.5t102 -101.5t35 -186q0 -93 -48 -192h176q104 0 180 -76t76 -179q0 -89 -49 -163q9 -33 9 -69q0 -77 -38 -144q3 -21 3 -43 q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5h-36h-93q-96 0 -189.5 22.5t-216.5 65.5q-116 40 -138 40h-288q-53 0 -90.5 37.5t-37.5 90.5zM128 192q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45zM384 128h32q13 0 31.5 -3t33 -6.5t38 -11t35 -11.5 t35.5 -12.5t29 -10.5q211 -73 342 -73h121q192 0 192 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5q32 1 53.5 47t21.5 81q0 51 -39 89.5t-89 38.5h-352q0 58 48 159.5t48 160.5q0 98 -32 145t-128 47q-26 -26 -38 -85 t-30.5 -125.5t-59.5 -109.5q-22 -23 -77 -91q-4 -5 -23 -30t-31.5 -41t-34.5 -42.5t-40 -44t-38.5 -35.5t-40 -27t-35.5 -9h-32v-640z" />
<glyph unicode="&#xf088;" d="M0 512v640q0 53 37.5 90.5t90.5 37.5h288q22 0 138 40q128 44 223 66t200 22h112q140 0 226.5 -79t85.5 -216v-5q60 -77 60 -178q0 -22 -3 -43q38 -67 38 -144q0 -36 -9 -69q49 -74 49 -163q0 -103 -76 -179t-180 -76h-176q48 -99 48 -192q0 -118 -35 -186 q-35 -69 -102 -101.5t-151 -32.5q-51 0 -90 37q-34 33 -54 82t-25.5 90.5t-17.5 84.5t-31 64q-48 50 -107 127q-101 131 -137 155h-274q-53 0 -90.5 37.5t-37.5 90.5zM128 1088q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45zM384 512h32q16 0 35.5 -9 t40 -27t38.5 -35.5t40 -44t34.5 -42.5t31.5 -41t23 -30q55 -68 77 -91q41 -43 59.5 -109.5t30.5 -125.5t38 -85q96 0 128 47t32 145q0 59 -48 160.5t-48 159.5h352q50 0 89 38.5t39 89.5q0 35 -21.5 81t-53.5 47q15 17 25 47.5t10 55.5q0 69 -53 119q18 32 18 69t-17.5 73.5 t-47.5 52.5q5 30 5 56q0 85 -49 126t-136 41h-128q-131 0 -342 -73q-5 -2 -29 -10.5t-35.5 -12.5t-35 -11.5t-38 -11t-33 -6.5t-31.5 -3h-32v-640z" />
<glyph unicode="&#xf089;" horiz-adv-x="896" d="M0 889q0 37 56 46l502 73l225 455q19 41 49 41v-1339l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48z" />
<glyph unicode="&#xf08a;" horiz-adv-x="1792" d="M0 940q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124t127 -344q0 -221 -229 -450l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138z M128 940q0 -168 187 -355l581 -560l580 559q188 188 188 356q0 81 -21.5 143t-55 98.5t-81.5 59.5t-94 31t-98 8t-112 -25.5t-110.5 -64t-86.5 -72t-60 -61.5q-18 -22 -49 -22t-49 22q-24 28 -60 61.5t-86.5 72t-110.5 64t-112 25.5t-98 -8t-94 -31t-81.5 -59.5t-55 -98.5 t-21.5 -143z" />
<glyph unicode="&#xf08b;" horiz-adv-x="1664" d="M0 288v704q0 119 84.5 203.5t203.5 84.5h320q13 0 22.5 -9.5t9.5 -22.5q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-66 0 -113 -47t-47 -113v-704q0 -66 47 -113t113 -47h288h11h13t11.5 -1t11.5 -3t8 -5.5t7 -9t2 -13.5q0 -4 1 -20t0.5 -26.5t-3 -23.5 t-10 -19.5t-20.5 -6.5h-320q-119 0 -203.5 84.5t-84.5 203.5zM384 448v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45t-19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45z" />
<glyph unicode="&#xf08c;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM223 1030q0 -51 35.5 -85.5t92.5 -34.5h1q59 0 95 34.5t36 85.5q-1 52 -36 86t-93 34t-94.5 -34t-36.5 -86z M237 122h231v694h-231v-694zM595 122h231v388q0 38 7 56q15 35 45 59.5t74 24.5q116 0 116 -157v-371h231v398q0 154 -73 233t-193 79q-136 0 -209 -117h2v101h-231q3 -66 0 -694z" />
<glyph unicode="&#xf08d;" horiz-adv-x="1152" d="M0 320q0 123 78.5 221.5t177.5 98.5v512q-52 0 -90 38t-38 90t38 90t90 38h640q52 0 90 -38t38 -90t-38 -90t-90 -38v-512q99 0 177.5 -98.5t78.5 -221.5q0 -26 -19 -45t-45 -19h-429l-51 -483q-2 -12 -10.5 -20.5t-20.5 -8.5h-1q-27 0 -32 27l-76 485h-404q-26 0 -45 19 t-19 45zM416 672q0 -14 9 -23t23 -9t23 9t9 23v448q0 14 -9 23t-23 9t-23 -9t-9 -23v-448z" />
<glyph unicode="&#xf08e;" horiz-adv-x="1792" d="M0 288v832q0 119 84.5 203.5t203.5 84.5h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v320q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-320q0 -119 -84.5 -203.5t-203.5 -84.5h-832 q-119 0 -203.5 84.5t-84.5 203.5zM685 576q0 13 10 23l652 652l-176 176q-19 19 -19 45t19 45t45 19h512q26 0 45 -19t19 -45v-512q0 -26 -19 -45t-45 -19t-45 19l-176 176l-652 -652q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23z" />
<glyph unicode="&#xf090;" d="M0 448v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45t-19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45zM894.5 78.5q0.5 10.5 3 23.5t10 19.5t20.5 6.5h320q66 0 113 47t47 113v704q0 66 -47 113 t-113 47h-288h-11h-13t-11.5 1t-11.5 3t-8 5.5t-7 9t-2 13.5q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q119 0 203.5 -84.5t84.5 -203.5v-704q0 -119 -84.5 -203.5t-203.5 -84.5h-320q-13 0 -22.5 9.5t-9.5 22.5q0 4 -1 20t-0.5 26.5z" />
<glyph unicode="&#xf091;" horiz-adv-x="1664" d="M0 928v128q0 40 28 68t68 28h288v96q0 66 47 113t113 47h576q66 0 113 -47t47 -113v-96h288q40 0 68 -28t28 -68v-128q0 -71 -41.5 -143t-112 -130t-173 -97.5t-215.5 -44.5q-42 -54 -95 -95q-38 -34 -52.5 -72.5t-14.5 -89.5q0 -54 30.5 -91t97.5 -37q75 0 133.5 -45.5 t58.5 -114.5v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 69 58.5 114.5t133.5 45.5q67 0 97.5 37t30.5 91q0 51 -14.5 89.5t-52.5 72.5q-53 41 -95 95q-113 5 -215.5 44.5t-173 97.5t-112 130t-41.5 143zM128 928q0 -78 94.5 -162t235.5 -113q-74 162 -74 371 h-256v-96zM1206 653q141 29 235.5 113t94.5 162v96h-256q0 -209 -74 -371z" />
<glyph unicode="&#xf092;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-224q-16 0 -24.5 1t-19.5 5t-16 14.5t-5 27.5v239q0 97 -52 142q57 6 102.5 18t94 39t81 66.5t53 105t20.5 150.5q0 121 -79 206q37 91 -8 204 q-28 9 -81 -11t-92 -44l-38 -24q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-86 13.5q-44 -113 -7 -204q-79 -85 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-40 -36 -49 -103q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52 t-49.5 24l-20 3q-21 0 -29 -4.5t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -103t0.5 -68q0 -22 -11 -33.5t-22 -13t-33 -1.5h-224q-119 0 -203.5 84.5t-84.5 203.5zM271 315q3 5 13 2 q10 -5 7 -12q-5 -7 -13 -2q-10 5 -7 12zM304 290q6 6 16 -3q9 -11 2 -16q-6 -7 -16 3q-9 11 -2 16zM335 233q-9 13 0 18q9 7 17 -6q9 -12 0 -19q-8 -6 -17 7zM370 206q8 9 20 -3q12 -11 4 -19q-8 -9 -20 3q-13 11 -4 19zM419 168q4 11 19 7q16 -5 13 -16q-4 -12 -19 -6 q-17 4 -13 15zM481 154q0 11 16 11q17 2 17 -11q0 -11 -16 -11q-17 -2 -17 11zM540 158q-2 12 14 15q16 2 18 -9q2 -10 -14 -14t-18 8z" />
<glyph unicode="&#xf093;" horiz-adv-x="1664" d="M0 -32v320q0 40 28 68t68 28h427q21 -56 70.5 -92t110.5 -36h256q61 0 110.5 36t70.5 92h427q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68zM325 936q-17 39 14 69l448 448q18 19 45 19t45 -19l448 -448q31 -30 14 -69q-17 -40 -59 -40 h-256v-448q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v448h-256q-42 0 -59 40zM1152 64q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45zM1408 64q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
<glyph unicode="&#xf094;" d="M0 433q0 111 18 217.5t54.5 209.5t100.5 194t150 156q78 59 232 120q194 78 316 78q60 0 175.5 -24t173.5 -24q19 0 57 5t58 5q81 0 118 -50.5t37 -134.5q0 -23 -5 -68t-5 -68q0 -10 1 -18.5t3 -17t4 -13.5t6.5 -16t6.5 -17q16 -40 25 -118.5t9 -136.5q0 -165 -70 -327.5 t-196 -288t-281 -180.5q-124 -44 -326 -44q-57 0 -170 14.5t-169 14.5q-24 0 -72.5 -14.5t-73.5 -14.5q-73 0 -123.5 55.5t-50.5 128.5q0 24 11 68t11 67q0 40 -12.5 120.5t-12.5 121.5zM128 434q0 -40 12.5 -120t12.5 -121q0 -23 -11 -66.5t-11 -65.5t12 -36.5t34 -14.5 q24 0 72.5 11t73.5 11q57 0 169.5 -15.5t169.5 -15.5q181 0 284 36q129 45 235.5 152.5t166 245.5t59.5 275q0 44 -7 113.5t-18 96.5q-12 30 -17 44t-9 36.5t-4 48.5q0 23 5 68.5t5 67.5q0 37 -10 55q-4 1 -13 1q-19 0 -58 -4.5t-59 -4.5q-60 0 -176 24t-175 24 q-43 0 -94.5 -11.5t-85 -23.5t-89.5 -34q-137 -54 -202 -103q-96 -73 -159.5 -189.5t-88 -236t-24.5 -248.5z" />
<glyph unicode="&#xf095;" horiz-adv-x="1408" d="M0 1069q0 92 51 186q56 101 106 122q25 11 68.5 21t70.5 10q14 0 21 -3q18 -6 53 -76q11 -19 30 -54t35 -63.5t31 -53.5q3 -4 17.5 -25t21.5 -35.5t7 -28.5q0 -20 -28.5 -50t-62 -55t-62 -53t-28.5 -46q0 -9 5 -22.5t8.5 -20.5t14 -24t11.5 -19q76 -137 174 -235 t235 -174q2 -1 19 -11.5t24 -14t20.5 -8.5t22.5 -5q18 0 46 28.5t53 62t55 62t50 28.5q14 0 28.5 -7t35.5 -21.5t25 -17.5q25 -15 53.5 -31t63.5 -35t54 -30q70 -35 76 -53q3 -7 3 -21q0 -27 -10 -70.5t-21 -68.5q-21 -50 -122 -106q-94 -51 -186 -51q-27 0 -52.5 3.5 t-57.5 12.5t-47.5 14.5t-55.5 20.5t-49 18q-98 35 -175 83q-128 79 -264.5 215.5t-215.5 264.5q-48 77 -83 175q-3 9 -18 49t-20.5 55.5t-14.5 47.5t-12.5 57.5t-3.5 52.5z" />
<glyph unicode="&#xf096;" horiz-adv-x="1408" d="M0 288v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5zM128 288q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v832q0 66 -47 113t-113 47h-832q-66 0 -113 -47 t-47 -113v-832z" />
<glyph unicode="&#xf097;" horiz-adv-x="1280" d="M0 7v1289q0 34 19.5 62t52.5 41q21 9 44 9h1048q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62zM128 38l423 406l89 85l89 -85l423 -406 v1242h-1024v-1242z" />
<glyph unicode="&#xf098;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 905q0 -16 2.5 -34t5 -30.5t9 -33t10 -29.5t12.5 -33t11 -30q60 -164 216.5 -320.5t320.5 -216.5 q6 -2 30 -11t33 -12.5t29.5 -10t33 -9t30.5 -5t34 -2.5q57 0 130.5 34t94.5 80q22 53 22 101q0 11 -2 16q-3 8 -38.5 29.5t-88.5 49.5l-53 29q-5 3 -19 13t-25 15t-21 5q-18 0 -47 -32.5t-57 -65.5t-44 -33q-7 0 -16.5 3.5t-15.5 6.5t-17 9.5t-14 8.5q-99 55 -170.5 126.5 t-126.5 170.5q-2 3 -8.5 14t-9.5 17t-6.5 15.5t-3.5 16.5q0 13 20.5 33.5t45 38.5t45 39.5t20.5 36.5q0 10 -5 21t-15 25t-13 19q-3 6 -15 28.5t-25 45.5t-26.5 47.5t-25 40.5t-16.5 18t-16 2q-48 0 -101 -22q-46 -21 -80 -94.5t-34 -130.5z" />
<glyph unicode="&#xf099;" horiz-adv-x="1664" d="M44 145q35 -4 78 -4q225 0 401 138q-105 2 -188 64.5t-114 159.5q33 -5 61 -5q43 0 85 11q-112 23 -185.5 111.5t-73.5 205.5v4q68 -38 146 -41q-66 44 -105 115t-39 154q0 88 44 163q121 -149 294.5 -238.5t371.5 -99.5q-8 38 -8 74q0 134 94.5 228.5t228.5 94.5 q140 0 236 -102q109 21 205 78q-37 -115 -142 -178q93 10 186 50q-67 -98 -162 -167q1 -14 1 -42q0 -130 -38 -259.5t-115.5 -248.5t-184.5 -210.5t-258 -146t-323 -54.5q-271 0 -496 145z" />
<glyph unicode="&#xf09a;" horiz-adv-x="1024" d="M95 631v296h255v218q0 186 104 288.5t277 102.5q147 0 228 -12v-264h-157q-86 0 -116 -36t-30 -108v-189h293l-39 -296h-254v-759h-306v759h-255z" />
<glyph unicode="&#xf09b;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5q0 -251 -146.5 -451.5t-378.5 -277.5q-27 -5 -39.5 7t-12.5 30v211q0 97 -52 142q57 6 102.5 18t94 39t81 66.5t53 105t20.5 150.5q0 121 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44 l-38 -24q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-86 13.5q-44 -113 -7 -204q-79 -85 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-40 -36 -49 -103q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52t-49.5 24l-20 3 q-21 0 -29 -4.5t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -89t0.5 -54q0 -18 -13 -30t-40 -7q-232 77 -378.5 277.5t-146.5 451.5z" />
<glyph unicode="&#xf09c;" horiz-adv-x="1664" d="M0 96v576q0 40 28 68t68 28h672v192q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5v-256q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-192h96q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960 q-40 0 -68 28t-28 68z" />
<glyph unicode="&#xf09d;" horiz-adv-x="1920" d="M0 32v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113zM128 32q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v608h-1664v-608zM128 1024h1664v224q0 13 -9.5 22.5t-22.5 9.5h-1600 q-13 0 -22.5 -9.5t-9.5 -22.5v-224zM256 128v128h256v-128h-256zM640 128v128h384v-128h-384z" />
<glyph unicode="&#xf09e;" horiz-adv-x="1408" d="M0 192q0 80 56 136t136 56t136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136zM0 697v135q0 29 21 47q17 17 43 17h5q160 -13 306 -80.5t259 -181.5q114 -113 181.5 -259t80.5 -306q2 -28 -17 -48q-18 -21 -47 -21h-135q-25 0 -43 16.5t-20 41.5q-22 229 -184.5 391.5 t-391.5 184.5q-25 2 -41.5 20t-16.5 43zM0 1201v143q0 28 20 46q18 18 44 18h3q262 -13 501.5 -120t425.5 -294q187 -186 294 -425.5t120 -501.5q2 -27 -18 -47q-18 -20 -46 -20h-143q-26 0 -44.5 17.5t-19.5 42.5q-12 215 -101 408.5t-231.5 336t-336 231.5t-408.5 102 q-25 1 -42.5 19.5t-17.5 43.5z" />
<glyph unicode="&#xf0a0;" d="M0 160v320q0 25 16 75l197 606q17 53 63 86t101 33h782q55 0 101 -33t63 -86l197 -606q16 -50 16 -75v-320q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113zM128 160q0 -13 9.5 -22.5t22.5 -9.5h1216q13 0 22.5 9.5t9.5 22.5v320q0 13 -9.5 22.5t-22.5 9.5h-1216 q-13 0 -22.5 -9.5t-9.5 -22.5v-320zM178 640h1180l-157 482q-4 13 -16 21.5t-26 8.5h-782q-14 0 -26 -8.5t-16 -21.5zM880 320q0 33 23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5t-23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5zM1136 320q0 33 23.5 56.5t56.5 23.5 t56.5 -23.5t23.5 -56.5t-23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5z" />
<glyph unicode="&#xf0a1;" horiz-adv-x="1792" d="M0 672v192q0 66 47 113t113 47h480q435 0 896 384q52 0 90 -38t38 -90v-384q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5v-384q0 -52 -38 -90t-90 -38q-417 347 -812 380q-58 -19 -91 -66t-31 -100.5t40 -92.5q-20 -33 -23 -65.5t6 -58t33.5 -55t48 -50 t61.5 -50.5q-29 -58 -111.5 -83t-168.5 -11.5t-132 55.5q-7 23 -29.5 87.5t-32 94.5t-23 89t-15 101t3.5 98.5t22 110.5h-122q-66 0 -113 47t-47 113zM768 633q377 -42 768 -341v954q-394 -302 -768 -343v-270z" />
<glyph unicode="&#xf0a2;" horiz-adv-x="1664" d="M0 128q190 161 287 397.5t97 498.5q0 165 96 262t264 117q-8 18 -8 37q0 40 28 68t68 28t68 -28t28 -68q0 -19 -8 -37q168 -20 264 -117t96 -262q0 -262 97 -498.5t287 -397.5q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38 t-38 90zM183 128h1298q-164 181 -246.5 411.5t-82.5 484.5q0 256 -320 256t-320 -256q0 -254 -82.5 -484.5t-246.5 -411.5zM656 0q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16t-16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16z" />
<glyph unicode="&#xf0a3;" d="M2 435q-10 42 20 70l138 135l-138 135q-30 28 -20 70q12 41 52 51l188 48l-53 186q-12 41 19 70q29 31 70 19l186 -53l48 188q10 41 51 51q41 12 70 -19l135 -139l135 139q29 30 70 19q41 -10 51 -51l48 -188l186 53q41 12 70 -19q31 -29 19 -70l-53 -186l188 -48 q40 -10 52 -51q10 -42 -20 -70l-138 -135l138 -135q30 -28 20 -70q-12 -41 -52 -51l-188 -48l53 -186q12 -41 -19 -70q-29 -31 -70 -19l-186 53l-48 -188q-10 -40 -51 -52q-12 -2 -19 -2q-31 0 -51 22l-135 138l-135 -138q-28 -30 -70 -20q-41 11 -51 52l-48 188l-186 -53 q-41 -12 -70 19q-31 29 -19 70l53 186l-188 48q-40 10 -52 51z" />
<glyph unicode="&#xf0a4;" horiz-adv-x="1792" d="M0 128v640q0 53 37.5 90.5t90.5 37.5h288q10 0 21.5 4.5t23.5 14t22.5 18t24 22.5t20.5 21.5t19 21.5t14 17q65 74 100 129q13 21 33 62t37 72t40.5 63t55 49.5t69.5 17.5q125 0 206.5 -67t81.5 -189q0 -68 -22 -128h374q104 0 180 -76t76 -179q0 -105 -75.5 -181 t-180.5 -76h-169q-4 -62 -37 -119q3 -21 3 -43q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5q-133 0 -322 69q-164 59 -223 59h-288q-53 0 -90.5 37.5t-37.5 90.5zM128 192q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45zM384 128h32q72 0 167 -32 t193.5 -64t179.5 -32q189 0 189 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5h331q52 0 90 38t38 90q0 51 -39 89.5t-89 38.5h-576q0 20 15 48.5t33 55t33 68t15 84.5q0 67 -44.5 97.5t-115.5 30.5q-24 0 -90 -139 q-24 -44 -37 -65q-40 -64 -112 -145q-71 -81 -101 -106q-69 -57 -140 -57h-32v-640z" />
<glyph unicode="&#xf0a5;" horiz-adv-x="1792" d="M0 769q0 103 76 179t180 76h374q-22 60 -22 128q0 122 81.5 189t206.5 67q38 0 69.5 -17.5t55 -49.5t40.5 -63t37 -72t33 -62q35 -55 100 -129q2 -3 14 -17t19 -21.5t20.5 -21.5t24 -22.5t22.5 -18t23.5 -14t21.5 -4.5h288q53 0 90.5 -37.5t37.5 -90.5v-640 q0 -53 -37.5 -90.5t-90.5 -37.5h-288q-59 0 -223 -59q-190 -69 -317 -69q-142 0 -230 77.5t-87 217.5l1 5q-61 76 -61 178q0 22 3 43q-33 57 -37 119h-169q-105 0 -180.5 76t-75.5 181zM128 768q0 -52 38 -90t90 -38h331q-15 -17 -25 -47.5t-10 -55.5q0 -69 53 -119 q-18 -32 -18 -69t17.5 -73.5t47.5 -52.5q-4 -24 -4 -56q0 -85 48.5 -126t135.5 -41q84 0 183 32t194 64t167 32h32v640h-32q-35 0 -67.5 12t-62.5 37t-50 46t-49 54q-2 3 -3.5 4.5t-4 4.5t-4.5 5q-72 81 -112 145q-14 22 -38 68q-1 3 -10.5 22.5t-18.5 36t-20 35.5 t-21.5 30.5t-18.5 11.5q-71 0 -115.5 -30.5t-44.5 -97.5q0 -43 15 -84.5t33 -68t33 -55t15 -48.5h-576q-50 0 -89 -38.5t-39 -89.5zM1536 192q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
<glyph unicode="&#xf0a6;" d="M0 640q0 125 67 206.5t189 81.5q68 0 128 -22v374q0 104 76 180t179 76q105 0 181 -75.5t76 -180.5v-169q62 -4 119 -37q21 3 43 3q101 0 178 -60q139 1 219.5 -85t80.5 -227q0 -133 -69 -322q-59 -164 -59 -223v-288q0 -53 -37.5 -90.5t-90.5 -37.5h-640 q-53 0 -90.5 37.5t-37.5 90.5v288q0 10 -4.5 21.5t-14 23.5t-18 22.5t-22.5 24t-21.5 20.5t-21.5 19t-17 14q-74 65 -129 100q-21 13 -62 33t-72 37t-63 40.5t-49.5 55t-17.5 69.5zM128 640q0 -24 139 -90q44 -24 65 -37q64 -40 145 -112q81 -71 106 -101q57 -69 57 -140 v-32h640v32q0 72 32 167t64 193.5t32 179.5q0 189 -167 189q-26 0 -56 -5q-16 30 -52.5 47.5t-73.5 17.5t-69 -18q-50 53 -119 53q-25 0 -55.5 -10t-47.5 -25v331q0 52 -38 90t-90 38q-51 0 -89.5 -39t-38.5 -89v-576q-20 0 -48.5 15t-55 33t-68 33t-84.5 15 q-67 0 -97.5 -44.5t-30.5 -115.5zM1152 -64q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
<glyph unicode="&#xf0a7;" d="M0 640q0 38 17.5 69.5t49.5 55t63 40.5t72 37t62 33q55 35 129 100q3 2 17 14t21.5 19t21.5 20.5t22.5 24t18 22.5t14 23.5t4.5 21.5v288q0 53 37.5 90.5t90.5 37.5h640q53 0 90.5 -37.5t37.5 -90.5v-288q0 -59 59 -223q69 -190 69 -317q0 -142 -77.5 -230t-217.5 -87 l-5 1q-76 -61 -178 -61q-22 0 -43 3q-54 -30 -119 -37v-169q0 -105 -76 -180.5t-181 -75.5q-103 0 -179 76t-76 180v374q-54 -22 -128 -22q-121 0 -188.5 81.5t-67.5 206.5zM128 640q0 -71 30.5 -115.5t97.5 -44.5q43 0 84.5 15t68 33t55 33t48.5 15v-576q0 -50 38.5 -89 t89.5 -39q52 0 90 38t38 90v331q46 -35 103 -35q69 0 119 53q32 -18 69 -18t73.5 17.5t52.5 47.5q24 -4 56 -4q85 0 126 48.5t41 135.5q0 84 -32 183t-64 194t-32 167v32h-640v-32q0 -35 -12 -67.5t-37 -62.5t-46 -50t-54 -49q-9 -8 -14 -12q-81 -72 -145 -112 q-22 -14 -68 -38q-3 -1 -22.5 -10.5t-36 -18.5t-35.5 -20t-30.5 -21.5t-11.5 -18.5zM1152 1344q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
<glyph unicode="&#xf0a8;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM251 640q0 -27 18 -45l91 -91l362 -362q18 -18 45 -18t45 18l91 91q18 18 18 45t-18 45l-189 189h502 q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-502l189 189q19 19 19 45t-19 45l-91 91q-18 18 -45 18t-45 -18l-362 -362l-91 -91q-18 -18 -18 -45z" />
<glyph unicode="&#xf0a9;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM256 576q0 -26 19 -45t45 -19h502l-189 -189q-19 -19 -19 -45t19 -45l91 -91q18 -18 45 -18t45 18 l362 362l91 91q18 18 18 45t-18 45l-91 91l-362 362q-18 18 -45 18t-45 -18l-91 -91q-18 -18 -18 -45t18 -45l189 -189h-502q-26 0 -45 -19t-19 -45v-128z" />
<glyph unicode="&#xf0aa;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM252 641q0 -27 18 -45l91 -91q18 -18 45 -18t45 18l189 189v-502q0 -26 19 -45t45 -19h128q26 0 45 19 t19 45v502l189 -189q19 -19 45 -19t45 19l91 91q18 18 18 45t-18 45l-362 362l-91 91q-18 18 -45 18t-45 -18l-91 -91l-362 -362q-18 -18 -18 -45z" />
<glyph unicode="&#xf0ab;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM252 639q0 -27 18 -45l362 -362l91 -91q18 -18 45 -18t45 18l91 91l362 362q18 18 18 45t-18 45l-91 91 q-18 18 -45 18t-45 -18l-189 -189v502q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-502l-189 189q-19 19 -45 19t-45 -19l-91 -91q-18 -18 -18 -45z" />
<glyph unicode="&#xf0ac;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM226 979q7 -7 12 -8q4 -1 5 -9t2.5 -11t11.5 3q9 -8 3 -19q1 1 44 -27q19 -17 21 -21q3 -11 -10 -18 q-1 2 -9 9t-9 4q-3 -5 0.5 -18.5t10.5 -12.5q-7 0 -9.5 -16t-2.5 -35.5t-1 -23.5l2 -1q-3 -12 5.5 -34.5t21.5 -19.5q-13 -3 20 -43q6 -8 8 -9q3 -2 12 -7.5t15 -10t10 -10.5q4 -5 10 -22.5t14 -23.5q-2 -6 9.5 -20t10.5 -23q-1 0 -2.5 -1t-2.5 -1q3 -7 15.5 -14t15.5 -13 q1 -3 2 -10t3 -11t8 -2q2 20 -24 62q-15 25 -17 29q-3 5 -5.5 15.5t-4.5 14.5q2 0 6 -1.5t8.5 -3.5t7.5 -4t2 -3q-3 -7 2 -17.5t12 -18.5t17 -19t12 -13q6 -6 14 -19.5t0 -13.5q9 0 20 -10t17 -20q5 -8 8 -26t5 -24q2 -7 8.5 -13.5t12.5 -9.5l16 -8t13 -7q5 -2 18.5 -10.5 t21.5 -11.5q10 -4 16 -4t14.5 2.5t13.5 3.5q15 2 29 -15t21 -21q36 -19 55 -11q-2 -1 0.5 -7.5t8 -15.5t9 -14.5t5.5 -8.5q5 -6 18 -15t18 -15q6 4 7 9q-3 -8 7 -20t18 -10q14 3 14 32q-31 -15 -49 18q0 1 -2.5 5.5t-4 8.5t-2.5 8.5t0 7.5t5 3q9 0 10 3.5t-2 12.5t-4 13 q-1 8 -11 20t-12 15q-5 -9 -16 -8t-16 9q0 -1 -1.5 -5.5t-1.5 -6.5q-13 0 -15 1q1 3 2.5 17.5t3.5 22.5q1 4 5.5 12t7.5 14.5t4 12.5t-4.5 9.5t-17.5 2.5q-19 -1 -26 -20q-1 -3 -3 -10.5t-5 -11.5t-9 -7q-7 -3 -24 -2t-24 5q-13 8 -22.5 29t-9.5 37q0 10 2.5 26.5t3 25 t-5.5 24.5q3 2 9 9.5t10 10.5q2 1 4.5 1.5t4.5 0t4 1.5t3 6q-1 1 -4 3q-3 3 -4 3q7 -3 28.5 1.5t27.5 -1.5q15 -11 22 2q0 1 -2.5 9.5t-0.5 13.5q5 -27 29 -9q3 -3 15.5 -5t17.5 -5q3 -2 7 -5.5t5.5 -4.5t5 0.5t8.5 6.5q10 -14 12 -24q11 -40 19 -44q7 -3 11 -2t4.5 9.5 t0 14t-1.5 12.5l-1 8v18l-1 8q-15 3 -18.5 12t1.5 18.5t15 18.5q1 1 8 3.5t15.5 6.5t12.5 8q21 19 15 35q7 0 11 9q-1 0 -5 3t-7.5 5t-4.5 2q9 5 2 16q5 3 7.5 11t7.5 10q9 -12 21 -2q7 8 1 16q5 7 20.5 10.5t18.5 9.5q7 -2 8 2t1 12t3 12q4 5 15 9t13 5l17 11q3 4 0 4 q18 -2 31 11q10 11 -6 20q3 6 -3 9.5t-15 5.5q3 1 11.5 0.5t10.5 1.5q15 10 -7 16q-17 5 -43 -12q-2 -1 -9.5 -9.5t-13.5 -9.5q2 0 4.5 5t5 11t3.5 7q6 7 22 15q14 6 52 12q34 8 51 -11q-2 2 9.5 13t14.5 12q3 2 15 4.5t15 7.5l2 22q-12 -1 -17.5 7t-6.5 21q0 -2 -6 -8 q0 7 -4.5 8t-11.5 -1t-9 -1q-10 3 -15 7.5t-8 16.5t-4 15q-2 5 -9.5 10.5t-9.5 10.5q-1 2 -2.5 5.5t-3 6.5t-4 5.5t-5.5 2.5t-7 -5t-7.5 -10t-4.5 -5q-3 2 -6 1.5t-4.5 -1t-4.5 -3t-5 -3.5q-3 -2 -8.5 -3t-8.5 -2q15 5 -1 11q-10 4 -16 3q9 4 7.5 12t-8.5 14h5 q-1 4 -8.5 8.5t-17.5 8.5t-13 6q-8 5 -34 9.5t-33 0.5q-5 -6 -4.5 -10.5t4 -14t3.5 -12.5q1 -6 -5.5 -13t-6.5 -12q0 -7 14 -15.5t10 -21.5q-3 -8 -16 -16t-16 -12q-5 -8 -1.5 -18.5t10.5 -16.5q2 -2 1.5 -4t-3.5 -4.5t-5.5 -4t-6.5 -3.5l-3 -2q-11 -5 -20.5 6t-13.5 26 q-7 25 -16 30q-23 8 -29 -1q-5 13 -41 26q-25 9 -58 4q6 1 0 15q-7 15 -19 12q3 6 4 17.5t1 13.5q3 13 12 23q1 1 7 8.5t9.5 13.5t0.5 6q35 -4 50 11q5 5 11.5 17t10.5 17q9 6 14 5.5t14.5 -5.5t14.5 -5q14 -1 15.5 11t-7.5 20q12 -1 3 17q-5 7 -8 9q-12 4 -27 -5 q-8 -4 2 -8q-1 1 -9.5 -10.5t-16.5 -17.5t-16 5q-1 1 -5.5 13.5t-9.5 13.5q-8 0 -16 -15q3 8 -11 15t-24 8q19 12 -8 27q-7 4 -20.5 5t-19.5 -4q-5 -7 -5.5 -11.5t5 -8t10.5 -5.5t11.5 -4t8.5 -3q14 -10 8 -14q-2 -1 -8.5 -3.5t-11.5 -4.5t-6 -4q-3 -4 0 -14t-2 -14 q-5 5 -9 17.5t-7 16.5q7 -9 -25 -6l-10 1q-4 0 -16 -2t-20.5 -1t-13.5 8q-4 8 0 20q1 4 4 2q-4 3 -11 9.5t-10 8.5q-46 -15 -94 -41q6 -1 12 1q5 2 13 6.5t10 5.5q34 14 42 7l5 5q14 -16 20 -25q-7 4 -30 1q-20 -6 -22 -12q7 -12 5 -18q-4 3 -11.5 10t-14.5 11t-15 5 q-16 0 -22 -1q-146 -80 -235 -222zM877 26q0 -6 2 -16q206 36 351 189q-3 3 -12.5 4.5t-12.5 3.5q-18 7 -24 8q1 7 -2.5 13t-8 9t-12.5 8t-11 7q-2 2 -7 6t-7 5.5t-7.5 4.5t-8.5 2t-10 -1l-3 -1q-3 -1 -5.5 -2.5t-5.5 -3t-4 -3t0 -2.5q-21 17 -36 22q-5 1 -11 5.5t-10.5 7 t-10 1.5t-11.5 -7q-5 -5 -6 -15t-2 -13q-7 5 0 17.5t2 18.5q-3 6 -10.5 4.5t-12 -4.5t-11.5 -8.5t-9 -6.5t-8.5 -5.5t-8.5 -7.5q-3 -4 -6 -12t-5 -11q-2 4 -11.5 6.5t-9.5 5.5q2 -10 4 -35t5 -38q7 -31 -12 -48q-27 -25 -29 -40q-4 -22 12 -26q0 -7 -8 -20.5t-7 -21.5z" />
<glyph unicode="&#xf0ad;" horiz-adv-x="1664" d="M21 0q0 53 38 91l681 681q39 -98 114.5 -173.5t173.5 -114.5l-682 -682q-37 -37 -90 -37q-52 0 -91 37l-106 108q-38 36 -38 90zM256 64q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45zM768 960q0 185 131.5 316.5t316.5 131.5q58 0 121.5 -16.5 t107.5 -46.5q16 -11 16 -28t-16 -28l-293 -169v-224l193 -107q5 3 79 48.5t135.5 81t70.5 35.5q15 0 23.5 -10t8.5 -25q0 -39 -23 -106q-47 -134 -164.5 -217.5t-258.5 -83.5q-185 0 -316.5 131.5t-131.5 316.5z" />
<glyph unicode="&#xf0ae;" horiz-adv-x="1792" d="M0 64v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM0 576v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM0 1088v256q0 26 19 45t45 19h1664 q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM640 640h1024v128h-1024v-128zM1024 128h640v128h-640v-128zM1280 1152h384v128h-384v-128z" />
<glyph unicode="&#xf0b0;" horiz-adv-x="1408" d="M5 1241q17 39 59 39h1280q42 0 59 -39q17 -41 -14 -70l-493 -493v-742q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-256 256q-19 19 -19 45v486l-493 493q-31 29 -14 70z" />
<glyph unicode="&#xf0b1;" horiz-adv-x="1792" d="M0 160v480h672v-160q0 -26 19 -45t45 -19h320q26 0 45 19t19 45v160h672v-480q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113zM0 736v384q0 66 47 113t113 47h352v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h352q66 0 113 -47t47 -113v-384h-1792z M640 1280h512v128h-512v-128zM768 512v128h256v-128h-256z" />
<glyph unicode="&#xf0b2;" d="M0 -64v448q0 42 40 59q39 17 69 -14l144 -144l355 355l-355 355l-144 -144q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v448q0 26 19 45t45 19h448q42 0 59 -40q17 -39 -14 -69l-144 -144l355 -355l355 355l-144 144q-31 30 -14 69q17 40 59 40h448q26 0 45 -19t19 -45 v-448q0 -42 -39 -59q-13 -5 -25 -5q-26 0 -45 19l-144 144l-355 -355l355 -355l144 144q29 31 70 14q39 -17 39 -59v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l144 144l-355 355l-355 -355l144 -144q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19 t-19 45z" />
<glyph unicode="&#xf0c0;" horiz-adv-x="1920" d="M0 671q0 353 124 353q6 0 43.5 -21t97.5 -42.5t119 -21.5q67 0 133 23q-5 -37 -5 -66q0 -139 81 -256q-162 -5 -265 -128h-134q-82 0 -138 40.5t-56 118.5zM128 1280q0 106 75 181t181 75t181 -75t75 -181t-75 -181t-181 -75t-181 75t-75 181zM256 3q0 53 3.5 103.5 t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q10 0 43 -21.5t73 -48t107 -48t135 -21.5t135 21.5t107 48t73 48t43 21.5q61 0 111.5 -20t85.5 -53.5t62 -81t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5 zM576 896q0 159 112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5zM1280 1280q0 106 75 181t181 75t181 -75t75 -181t-75 -181t-181 -75t-181 75t-75 181zM1327 640q81 117 81 256q0 29 -5 66q66 -23 133 -23 q59 0 119 21.5t97.5 42.5t43.5 21q124 0 124 -353q0 -78 -56 -118.5t-138 -40.5h-134q-103 123 -265 128z" />
<glyph unicode="&#xf0c1;" horiz-adv-x="1664" d="M16 1088q0 120 85 203l147 146q83 83 203 83q121 0 204 -85l206 -207q83 -83 83 -203q0 -123 -88 -209l88 -88q86 88 208 88q120 0 204 -84l208 -208q84 -84 84 -204t-85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-206 207q-83 83 -83 203q0 123 88 209l-88 88 q-86 -88 -208 -88q-120 0 -204 84l-208 208q-84 84 -84 204zM208 1088q0 -40 28 -68l208 -208q27 -27 68 -27q42 0 72 31q-3 3 -19 18.5t-21.5 21.5t-15 19t-13 25.5t-3.5 27.5q0 40 28 68t68 28q15 0 27.5 -3.5t25.5 -13t19 -15t21.5 -21.5t18.5 -19q33 31 33 73 q0 40 -28 68l-206 207q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67zM911 383q0 -40 28 -68l206 -207q27 -27 68 -27q40 0 68 26l147 146q28 28 28 67q0 40 -28 68l-208 208q-28 28 -68 28q-42 0 -72 -32q3 -3 19 -18.5t21.5 -21.5t15 -19t13 -25.5t3.5 -27.5 q0 -40 -28 -68t-68 -28q-15 0 -27.5 3.5t-25.5 13t-19 15t-21.5 21.5t-18.5 19q-33 -31 -33 -73z" />
<glyph unicode="&#xf0c2;" horiz-adv-x="1920" d="M0 448q0 132 71 241.5t187 163.5q-2 28 -2 43q0 212 150 362t362 150q158 0 286.5 -88t187.5 -230q70 62 166 62q106 0 181 -75t75 -181q0 -75 -41 -138q129 -30 213 -134.5t84 -239.5q0 -159 -112.5 -271.5t-271.5 -112.5h-1088q-185 0 -316.5 131.5t-131.5 316.5z" />
<glyph unicode="&#xf0c3;" horiz-adv-x="1664" d="M115.5 -64.5q-34.5 63.5 21.5 152.5l503 793v399h-64q-26 0 -45 19t-19 45t19 45t45 19h512q26 0 45 -19t19 -45t-19 -45t-45 -19h-64v-399l503 -793q56 -89 21.5 -152.5t-140.5 -63.5h-1152q-106 0 -140.5 63.5zM476 384h712l-272 429l-20 31v37v399h-128v-399v-37 l-20 -31z" />
<glyph unicode="&#xf0c4;" horiz-adv-x="1792" d="M1 157q7 76 56 147t131 124q132 84 278 84q83 0 151 -31q9 13 22 22l122 73l-122 73q-13 9 -22 22q-68 -31 -151 -31q-146 0 -278 84q-82 53 -131 124t-56 147q-5 59 15.5 113t63.5 93q85 79 222 79q145 0 277 -84q83 -52 132 -123t56 -148q4 -48 -10 -97q4 -1 12 -5 l110 -66l690 387q14 8 31 8q16 0 29 -7l128 -64q30 -16 35 -51q3 -36 -25 -56l-507 -398l507 -398q28 -20 25 -56q-5 -35 -35 -51l-128 -64q-13 -7 -29 -7q-17 0 -31 8l-690 387l-110 -66q-8 -4 -12 -5q14 -49 10 -97q-7 -77 -56 -147.5t-132 -123.5q-132 -84 -277 -84 q-136 0 -222 78q-90 84 -79 207zM168 176q-25 -66 21 -108q39 -36 113 -36q100 0 192 59q81 51 106 117t-21 108q-39 36 -113 36q-100 0 -192 -59q-81 -51 -106 -117zM168 976q25 -66 106 -117q92 -59 192 -59q74 0 113 36q46 42 21 108t-106 117q-92 59 -192 59 q-74 0 -113 -36q-46 -42 -21 -108zM672 448l9 -8q2 -2 7 -6q4 -4 11 -12t11 -12l26 -26l160 96l96 -32l736 576l-128 64l-768 -431v-113zM672 704l96 -58v11q0 36 33 56l14 8l-79 47l-26 -26q-3 -3 -10 -11t-12 -12q-2 -2 -4 -3.5t-3 -2.5zM896 576q0 26 19 45t45 19t45 -19 t19 -45t-19 -45t-45 -19t-45 19t-19 45zM1018 391l582 -327l128 64l-520 408l-177 -138q-2 -3 -13 -7z" />
<glyph unicode="&#xf0c5;" horiz-adv-x="1792" d="M0 224v672q0 40 20 88t48 76l408 408q28 28 76 48t88 20h416q40 0 68 -28t28 -68v-328q68 40 128 40h416q40 0 68 -28t28 -68v-1216q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v288h-544q-40 0 -68 28t-28 68zM128 256h512v256q0 40 20 88t48 76l316 316v416h-384 v-416q0 -40 -28 -68t-68 -28h-416v-640zM213 1024h299v299zM768 -128h896v1152h-384v-416q0 -40 -28 -68t-68 -28h-416v-640zM853 640h299v299z" />
<glyph unicode="&#xf0c6;" horiz-adv-x="1408" d="M4 1023q0 159 110 270t269 111q158 0 273 -113l605 -606q10 -10 10 -22q0 -16 -30.5 -46.5t-46.5 -30.5q-13 0 -23 10l-606 607q-79 77 -181 77q-106 0 -179 -75t-73 -181q0 -105 76 -181l776 -777q63 -63 145 -63q64 0 106 42t42 106q0 82 -63 145l-581 581 q-26 24 -60 24q-29 0 -48 -19t-19 -48q0 -32 25 -59l410 -410q10 -10 10 -22q0 -16 -31 -47t-47 -31q-12 0 -22 10l-410 410q-63 61 -63 149q0 82 57 139t139 57q88 0 149 -63l581 -581q100 -98 100 -235q0 -117 -79 -196t-196 -79q-135 0 -235 100l-777 776 q-113 115 -113 271z" />
<glyph unicode="&#xf0c7;" d="M0 -32v1344q0 40 28 68t68 28h928q40 0 88 -20t76 -48l280 -280q28 -28 48 -76t20 -88v-928q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 0h128v416q0 40 28 68t68 28h832q40 0 68 -28t28 -68v-416h128v896q0 14 -10 38.5t-20 34.5l-281 281q-10 10 -34 20 t-39 10v-416q0 -40 -28 -68t-68 -28h-576q-40 0 -68 28t-28 68v416h-128v-1280zM384 0h768v384h-768v-384zM640 928q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5v320q0 13 -9.5 22.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-320z" />
<glyph unicode="&#xf0c8;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5z" />
<glyph unicode="&#xf0c9;" d="M0 64v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45zM0 576v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45zM0 1088v128q0 26 19 45t45 19h1408 q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45z" />
<glyph unicode="&#xf0ca;" horiz-adv-x="1792" d="M0 128q0 80 56 136t136 56t136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136zM0 640q0 80 56 136t136 56t136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136zM0 1152q0 80 56 136t136 56t136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136zM512 32v192 q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5zM512 544v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5z M512 1056v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5z" />
<glyph unicode="&#xf0cb;" horiz-adv-x="1792" d="M15 438q0 51 23.5 93t56.5 68t66 47.5t56.5 43.5t23.5 45q0 25 -14.5 38.5t-39.5 13.5q-46 0 -81 -58l-85 59q24 51 71.5 79.5t105.5 28.5q73 0 123 -41.5t50 -112.5q0 -50 -34 -91.5t-75 -64.5t-75.5 -50.5t-35.5 -52.5h127v60h105v-159h-362q-6 36 -6 54zM19 -190 l57 88q49 -45 106 -45q29 0 50.5 14.5t21.5 42.5q0 64 -105 56l-26 56q8 10 32.5 43.5t42.5 54t37 38.5v1q-16 0 -48.5 -1t-48.5 -1v-53h-106v152h333v-88l-95 -115q51 -12 81 -49t30 -88q0 -80 -54.5 -126t-135.5 -46q-106 0 -172 66zM34 1400l136 127h106v-404h108v-99 h-335v99h107q0 41 0.5 122t0.5 121v12h-2q-8 -17 -50 -54zM512 32v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5zM512 544v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5v-192 q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5zM512 1056v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5z" />
<glyph unicode="&#xf0cc;" horiz-adv-x="1792" d="M0 544v64q0 14 9 23t23 9h1728q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1728q-14 0 -23 9t-9 23zM384 972q0 181 134 309q133 127 393 127q50 0 167 -19q66 -12 177 -48q10 -38 21 -118q14 -123 14 -183q0 -18 -5 -45l-12 -3l-84 6l-14 2q-50 149 -103 205 q-88 91 -210 91q-114 0 -182 -59q-67 -58 -67 -146q0 -73 66 -140t279 -129q69 -20 173 -66q58 -28 95 -52h-743q-28 35 -51 80q-48 97 -48 188zM414 154q-1 30 0 68l2 37v44l102 2q15 -34 30 -71t22.5 -56t12.5 -27q35 -57 80 -94q43 -36 105 -57q59 -22 132 -22 q64 0 139 27q77 26 122 86q47 61 47 129q0 84 -81 157q-34 29 -137 71h411q7 -39 7 -92q0 -111 -41 -212q-23 -55 -71 -104q-37 -35 -109 -81q-80 -48 -153 -66q-80 -21 -203 -21q-114 0 -195 23l-140 40q-57 16 -72 28q-8 8 -8 22v13q0 108 -2 156z" />
<glyph unicode="&#xf0cd;" d="M0 -32v-64q0 -14 9 -23t23 -9h1472q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-1472q-14 0 -23 -9t-9 -23zM0 1405q13 1 40 1q60 0 112 -4q132 -7 166 -7q86 0 168 3q116 4 146 5q56 0 86 2l-1 -14l2 -64v-9q-60 -9 -124 -9q-60 0 -79 -25q-13 -14 -13 -132q0 -13 0.5 -32.5 t0.5 -25.5l1 -229l14 -280q6 -124 51 -202q35 -59 96 -92q88 -47 177 -47q104 0 191 28q56 18 99 51q48 36 65 64q36 56 53 114q21 73 21 229q0 79 -3.5 128t-11 122.5t-13.5 159.5l-4 59q-5 67 -24 88q-34 35 -77 34l-100 -2l-14 3l2 86h84l205 -10q76 -3 196 10l18 -2 q6 -38 6 -51q0 -7 -4 -31q-45 -12 -84 -13q-73 -11 -79 -17q-15 -15 -15 -41q0 -7 1.5 -27t1.5 -31q8 -19 22 -396q6 -195 -15 -304q-15 -76 -41 -122q-38 -65 -112 -123q-75 -57 -182 -89q-109 -33 -255 -33q-167 0 -284 46q-119 47 -179 122q-61 76 -83 195 q-16 80 -16 237v333q0 188 -17 213q-25 36 -147 39q-37 2 -45 4z" />
<glyph unicode="&#xf0ce;" horiz-adv-x="1664" d="M0 160v1088q0 66 47 113t113 47h1344q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113zM128 160q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192zM128 544q0 -14 9 -23t23 -9h320 q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192zM128 928q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192zM640 160q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9 t-9 -23v-192zM640 544q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192zM640 928q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192zM1152 160q0 -14 9 -23t23 -9h320q14 0 23 9t9 23 v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192zM1152 544q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192zM1152 928q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192z" />
<glyph unicode="&#xf0d0;" horiz-adv-x="1664" d="M27 160q0 27 18 45l1286 1286q18 18 45 18t45 -18l198 -198q18 -18 18 -45t-18 -45l-1286 -1286q-18 -18 -45 -18t-45 18l-198 198q-18 18 -18 45zM128 1408l98 30l30 98l30 -98l98 -30l-98 -30l-30 -98l-30 98zM320 1216l196 60l60 196l60 -196l196 -60l-196 -60 l-60 -196l-60 196zM768 1408l98 30l30 98l30 -98l98 -30l-98 -30l-30 -98l-30 98zM1083 1062l107 -107l293 293l-107 107zM1408 768l98 30l30 98l30 -98l98 -30l-98 -30l-30 -98l-30 98z" />
<glyph unicode="&#xf0d1;" horiz-adv-x="1792" d="M64 192q0 26 19 45t45 19v320q0 8 -0.5 35t0 38t2.5 34.5t6.5 37t14 30.5t22.5 30l198 198q19 19 50.5 32t58.5 13h160v192q0 26 19 45t45 19h1024q26 0 45 -19t19 -45v-1024q0 -15 -4 -26.5t-13.5 -18.5t-16.5 -11.5t-23.5 -6t-22.5 -2t-25.5 0t-22.5 0.5 q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-64q-3 0 -22.5 -0.5t-25.5 0t-22.5 2t-23.5 6t-16.5 11.5t-13.5 18.5t-4 26.5zM256 640h384v256h-158q-13 0 -22 -9l-195 -195q-9 -9 -9 -22v-30zM384 128q0 -52 38 -90t90 -38 t90 38t38 90t-38 90t-90 38t-90 -38t-38 -90zM1280 128q0 -52 38 -90t90 -38t90 38t38 90t-38 90t-90 38t-90 -38t-38 -90z" />
<glyph unicode="&#xf0d2;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103q-111 0 -218 32q59 93 78 164q9 34 54 211q20 -39 73 -67.5t114 -28.5q121 0 216 68.5t147 188.5t52 270q0 114 -59.5 214t-172.5 163t-255 63 q-105 0 -196 -29t-154.5 -77t-109 -110.5t-67 -129.5t-21.5 -134q0 -104 40 -183t117 -111q30 -12 38 20q2 7 8 31t8 30q6 23 -11 43q-51 61 -51 151q0 151 104.5 259.5t273.5 108.5q151 0 235.5 -82t84.5 -213q0 -170 -68.5 -289t-175.5 -119q-61 0 -98 43.5t-23 104.5 q8 35 26.5 93.5t30 103t11.5 75.5q0 50 -27 83t-77 33q-62 0 -105 -57t-43 -142q0 -73 25 -122l-99 -418q-17 -70 -13 -177q-206 91 -333 281t-127 423z" />
<glyph unicode="&#xf0d3;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-725q85 122 108 210q9 34 53 209q21 -39 73.5 -67t112.5 -28q181 0 295.5 147.5t114.5 373.5q0 84 -35 162.5t-96.5 139t-152.5 97t-197 36.5 q-104 0 -194.5 -28.5t-153 -76.5t-107.5 -109.5t-66.5 -128t-21.5 -132.5q0 -102 39.5 -180t116.5 -110q13 -5 23.5 0t14.5 19q10 44 15 61q6 23 -11 42q-50 62 -50 150q0 150 103.5 256.5t270.5 106.5q149 0 232.5 -81t83.5 -210q0 -168 -67.5 -286t-173.5 -118 q-60 0 -97 43.5t-23 103.5q8 34 26.5 92.5t29.5 102t11 74.5q0 49 -26.5 81.5t-75.5 32.5q-61 0 -103.5 -56.5t-42.5 -139.5q0 -72 24 -121l-98 -414q-24 -100 -7 -254h-183q-119 0 -203.5 84.5t-84.5 203.5z" />
<glyph unicode="&#xf0d4;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM276 309q0 -43 18.5 -77.5t48.5 -56.5t69 -37t77.5 -21t76.5 -6q60 0 120.5 15.5t113.5 46t86 82.5t33 117 q0 49 -20 89.5t-49 66.5t-58 47.5t-49 44t-20 44.5t15.5 42.5t37.5 39.5t44 42t37.5 59.5t15.5 82.5q0 60 -22.5 99.5t-72.5 90.5h83l88 64h-265q-85 0 -161 -32t-127.5 -98t-51.5 -153q0 -93 64.5 -154.5t158.5 -61.5q22 0 43 3q-13 -29 -13 -54q0 -44 40 -94 q-175 -12 -257 -63q-47 -29 -75.5 -73t-28.5 -95zM395 338q0 46 25 80t65.5 51.5t82 25t84.5 7.5q20 0 31 -2q2 -1 23 -16.5t26 -19t23 -18t24.5 -22t19 -22.5t17 -26t9 -26.5t4.5 -31.5q0 -76 -58.5 -112.5t-139.5 -36.5q-41 0 -80.5 9.5t-75.5 28.5t-58 53t-22 78z M462 969q0 61 32 104t92 43q53 0 93.5 -45t58 -101t17.5 -107q0 -60 -33 -99.5t-92 -39.5q-53 0 -93 42.5t-57.5 96.5t-17.5 106zM960 672h128v-160h64v160h128v64h-128v128h-64v-128h-128v-64z" />
<glyph unicode="&#xf0d5;" horiz-adv-x="1664" d="M32 182q0 81 44.5 150t118.5 115q131 82 404 100q-32 42 -47.5 74t-15.5 73q0 36 21 85q-46 -4 -68 -4q-148 0 -249.5 96.5t-101.5 244.5q0 82 36 159t99 131q77 66 182.5 98t217.5 32h418l-138 -88h-131q74 -63 112 -133t38 -160q0 -72 -24.5 -129.5t-59 -93t-69.5 -65 t-59.5 -61.5t-24.5 -66q0 -36 32 -70.5t77.5 -68t90.5 -73.5t77 -104t32 -142q0 -90 -48 -173q-72 -122 -211 -179.5t-298 -57.5q-132 0 -246.5 41.5t-171.5 137.5q-37 60 -37 131zM218 228q0 -70 35 -123.5t91.5 -83t119 -44t127.5 -14.5q58 0 111.5 13t99 39t73 73 t27.5 109q0 25 -7 49t-14.5 42t-27 41.5t-29.5 35t-38.5 34.5t-36.5 29t-41.5 30t-36.5 26q-16 2 -48 2q-53 0 -105 -7t-107.5 -25t-97 -46t-68.5 -74.5t-27 -105.5zM324 1222q0 -46 10 -97.5t31.5 -103t52 -92.5t75 -67t96.5 -26q38 0 78 16.5t66 43.5q53 57 53 159 q0 58 -17 125t-48.5 129.5t-84.5 103.5t-117 41q-42 0 -82.5 -19.5t-65.5 -52.5q-47 -59 -47 -160zM1084 731v108h212v217h105v-217h213v-108h-213v-219h-105v219h-212z" />
<glyph unicode="&#xf0d6;" horiz-adv-x="1920" d="M0 64v1152q0 26 19 45t45 19h1792q26 0 45 -19t19 -45v-1152q0 -26 -19 -45t-45 -19h-1792q-26 0 -45 19t-19 45zM128 384q106 0 181 -75t75 -181h1152q0 106 75 181t181 75v512q-106 0 -181 75t-75 181h-1152q0 -106 -75 -181t-181 -75v-512zM640 640q0 70 21 142 t59.5 134t101.5 101t138 39t138 -39t101.5 -101t59.5 -134t21 -142t-21 -142t-59.5 -134t-101.5 -101t-138 -39t-138 39t-101.5 101t-59.5 134t-21 142zM762 791l77 -80q42 37 55 57h2v-288h-128v-96h384v96h-128v448h-114z" />
<glyph unicode="&#xf0d7;" horiz-adv-x="1024" d="M0 832q0 26 19 45t45 19h896q26 0 45 -19t19 -45t-19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45z" />
<glyph unicode="&#xf0d8;" horiz-adv-x="1024" d="M0 320q0 26 19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45z" />
<glyph unicode="&#xf0d9;" horiz-adv-x="640" d="M64 640q0 26 19 45l448 448q19 19 45 19t45 -19t19 -45v-896q0 -26 -19 -45t-45 -19t-45 19l-448 448q-19 19 -19 45z" />
<glyph unicode="&#xf0da;" horiz-adv-x="640" d="M0 192v896q0 26 19 45t45 19t45 -19l448 -448q19 -19 19 -45t-19 -45l-448 -448q-19 -19 -45 -19t-45 19t-19 45z" />
<glyph unicode="&#xf0db;" horiz-adv-x="1664" d="M0 32v1216q0 66 47 113t113 47h1344q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113zM128 32q0 -13 9.5 -22.5t22.5 -9.5h608v1152h-640v-1120zM896 0h608q13 0 22.5 9.5t9.5 22.5v1120h-640v-1152z" />
<glyph unicode="&#xf0dc;" horiz-adv-x="1024" d="M0 448q0 26 19 45t45 19h896q26 0 45 -19t19 -45t-19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45zM0 832q0 26 19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45z" />
<glyph unicode="&#xf0dd;" horiz-adv-x="1024" d="M0 448q0 26 19 45t45 19h896q26 0 45 -19t19 -45t-19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45z" />
<glyph unicode="&#xf0de;" horiz-adv-x="1024" d="M0 832q0 26 19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45z" />
<glyph unicode="&#xf0e0;" horiz-adv-x="1792" d="M0 32v794q44 -49 101 -87q362 -246 497 -345q57 -42 92.5 -65.5t94.5 -48t110 -24.5h1h1q51 0 110 24.5t94.5 48t92.5 65.5q170 123 498 345q57 39 100 87v-794q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113zM0 1098q0 78 41.5 130t118.5 52h1472 q65 0 112.5 -47t47.5 -113q0 -79 -49 -151t-122 -123q-376 -261 -468 -325q-10 -7 -42.5 -30.5t-54 -38t-52 -32.5t-57.5 -27t-50 -9h-1h-1q-23 0 -50 9t-57.5 27t-52 32.5t-54 38t-42.5 30.5q-91 64 -262 182.5t-205 142.5q-62 42 -117 115.5t-55 136.5z" />
<glyph unicode="&#xf0e1;" d="M0 1217q0 74 51.5 122.5t134.5 48.5t133 -48.5t51 -122.5q1 -73 -50.5 -122t-135.5 -49h-2q-82 0 -132 49t-50 122zM19 -80v991h330v-991h-330zM531 -80q2 399 2 647t-1 296l-1 48h329v-144h-2q20 32 41 56t56.5 52t87 43.5t114.5 15.5q171 0 275 -113.5t104 -332.5v-568 h-329v530q0 105 -40.5 164.5t-126.5 59.5q-63 0 -105.5 -34.5t-63.5 -85.5q-11 -30 -11 -81v-553h-329z" />
<glyph unicode="&#xf0e2;" d="M0 832v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298t-61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12 q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45z" />
<glyph unicode="&#xf0e3;" horiz-adv-x="1792" d="M40 736q0 13 4.5 26t9 22t15.5 22t16.5 18.5t20.5 19t18 16.5q30 28 68 28q10 0 18 -1.5t16.5 -5.5t13.5 -6t13.5 -10t11.5 -10t13 -12.5t12 -12.5q-14 14 -14 34t14 34l348 348q14 14 34 14t34 -14q-2 2 -12.5 12t-12.5 13t-10 11.5t-10 13.5t-6 13.5t-5.5 16.5t-1.5 18 q0 38 28 68q3 3 16.5 18t19 20.5t18.5 16.5t22 15.5t22 9t26 4.5q40 0 68 -28l408 -408q28 -28 28 -68q0 -13 -4.5 -26t-9 -22t-15.5 -22t-16.5 -18.5t-20.5 -19t-18 -16.5q-30 -28 -68 -28q-10 0 -18 1.5t-16.5 5.5t-13.5 6t-13.5 10t-11.5 10t-13 12.5t-12 12.5 q14 -14 14 -34t-14 -34l-126 -126l256 -256q43 43 96 43q52 0 91 -37l363 -363q37 -39 37 -91q0 -53 -37 -90l-107 -108q-39 -37 -91 -37q-53 0 -90 37l-363 364q-38 36 -38 90q0 53 43 96l-256 256l-126 -126q-14 -14 -34 -14t-34 14q2 -2 12.5 -12t12.5 -13t10 -11.5 t10 -13.5t6 -13.5t5.5 -16.5t1.5 -18q0 -38 -28 -68q-3 -3 -16.5 -18t-19 -20.5t-18.5 -16.5t-22 -15.5t-22 -9t-26 -4.5q-40 0 -68 28l-408 408q-28 28 -28 68z" />
<glyph unicode="&#xf0e4;" horiz-adv-x="1792" d="M0 384q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348q0 -261 -141 -483q-19 -29 -54 -29h-1402q-35 0 -54 29q-141 221 -141 483zM128 384q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z M320 832q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5zM710 241q-20 -77 20 -146t117 -89t146 20t89 117q16 60 -6 117t-72 91l101 382q6 26 -7.5 48.5t-38.5 29.5t-48 -6.5t-30 -39.5l-101 -382q-60 -5 -107 -43.5 t-63 -98.5zM768 1024q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5zM1216 832q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5zM1408 384q0 -53 37.5 -90.5 t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z" />
<glyph unicode="&#xf0e5;" horiz-adv-x="1792" d="M0 640q0 174 120 321.5t326 233t450 85.5t450 -85.5t326 -233t120 -321.5t-120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5 t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281zM128 640q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5t104.5 255t-104.5 255t-282 187.5t-381.5 69.5t-381.5 -69.5 t-282 -187.5t-104.5 -255z" />
<glyph unicode="&#xf0e6;" horiz-adv-x="1792" d="M0 768q0 139 94 257t256.5 186.5t353.5 68.5t353.5 -68.5t256.5 -186.5t94 -257t-94 -257t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25 t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224zM128 768q0 -82 53 -158t149 -132l97 -56l-35 -84q34 20 62 39l44 31l53 -10q78 -14 153 -14q153 0 286 52t211.5 141t78.5 191t-78.5 191t-211.5 141t-286 52t-286 -52t-211.5 -141t-78.5 -191zM616 132 q58 -4 88 -4q161 0 309 45t264 129q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230q0 -120 -71 -224.5t-195 -176.5q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22 t-22 -7q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132z" />
<glyph unicode="&#xf0e7;" horiz-adv-x="896" d="M1 551l201 825q4 14 16 23t28 9h328q19 0 32 -12.5t13 -29.5q0 -8 -5 -18l-171 -463l396 98q8 2 12 2q19 0 34 -15q18 -20 7 -44l-540 -1157q-13 -25 -42 -25q-4 0 -14 2q-17 5 -25.5 19t-4.5 30l197 808l-406 -101q-4 -1 -12 -1q-18 0 -31 11q-18 15 -13 39z" />
<glyph unicode="&#xf0e8;" horiz-adv-x="1792" d="M0 -32v320q0 40 28 68t68 28h96v192q0 52 38 90t90 38h512v192h-96q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-96v-192h512q52 0 90 -38t38 -90v-192h96q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-320 q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68z" />
<glyph unicode="&#xf0e9;" horiz-adv-x="1664" d="M0 681q0 5 1 7q45 183 172.5 319.5t298 204.5t360.5 68q140 0 274.5 -40t246.5 -113.5t194.5 -187t115.5 -251.5q1 -2 1 -7q0 -13 -9.5 -22.5t-22.5 -9.5q-11 0 -23 10q-49 46 -93 69t-102 23q-68 0 -128 -37t-103 -97q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -28 -17 q-18 0 -29 17q-4 6 -14.5 24t-17.5 28q-43 60 -102.5 97t-127.5 37t-127.5 -37t-102.5 -97q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -29 -17q-17 0 -28 17q-4 6 -14.5 24t-17.5 28q-43 60 -103 97t-128 37q-58 0 -102 -23t-93 -69q-12 -10 -23 -10q-13 0 -22.5 9.5t-9.5 22.5z M384 128q0 26 19 45t45 19t45 -19t19 -45q0 -50 39 -89t89 -39t89 39t39 89v580q33 11 64 11t64 -11v-580q0 -104 -76 -180t-180 -76t-180 76t-76 180zM768 1310v98q0 26 19 45t45 19t45 -19t19 -45v-98q-42 2 -64 2t-64 -2z" />
<glyph unicode="&#xf0ea;" horiz-adv-x="1792" d="M0 96v1344q0 40 28 68t68 28h1088q40 0 68 -28t28 -68v-328q21 -13 36 -28l408 -408q28 -28 48 -76t20 -88v-672q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v160h-544q-40 0 -68 28t-28 68zM256 1312q0 -13 9.5 -22.5t22.5 -9.5h704q13 0 22.5 9.5t9.5 22.5v64 q0 13 -9.5 22.5t-22.5 9.5h-704q-13 0 -22.5 -9.5t-9.5 -22.5v-64zM768 -128h896v640h-416q-40 0 -68 28t-28 68v416h-384v-1152zM1280 640h299l-299 299v-299z" />
<glyph unicode="&#xf0eb;" horiz-adv-x="1024" d="M0 960q0 99 44.5 184.5t117 142t164 89t186.5 32.5t186.5 -32.5t164 -89t117 -142t44.5 -184.5q0 -155 -103 -268q-45 -49 -74.5 -87t-59.5 -95.5t-34 -107.5q47 -28 47 -82q0 -37 -25 -64q25 -27 25 -64q0 -52 -45 -81q13 -23 13 -47q0 -46 -31.5 -71t-77.5 -25 q-20 -44 -60 -70t-87 -26t-87 26t-60 70q-46 0 -77.5 25t-31.5 71q0 24 13 47q-45 29 -45 81q0 37 25 64q-25 27 -25 64q0 54 47 82q-4 50 -34 107.5t-59.5 95.5t-74.5 87q-103 113 -103 268zM128 960q0 -101 68 -180q10 -11 30.5 -33t30.5 -33q128 -153 141 -298h228 q13 145 141 298q10 11 30.5 33t30.5 33q68 79 68 180q0 72 -34.5 134t-90 101.5t-123 62t-136.5 22.5t-136.5 -22.5t-123 -62t-90 -101.5t-34.5 -134zM480 1088q0 13 9.5 22.5t22.5 9.5q50 0 99.5 -16t87 -54t37.5 -90q0 -13 -9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5 q0 46 -54 71t-106 25q-13 0 -22.5 9.5t-9.5 22.5z" />
<glyph unicode="&#xf0ec;" horiz-adv-x="1792" d="M0 256q0 14 9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h1376q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5q-12 0 -24 10l-319 320q-9 9 -9 22zM0 800v192q0 13 9.5 22.5t22.5 9.5h1376v192q0 14 9 23 t23 9q12 0 24 -10l319 -319q9 -9 9 -23t-9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192h-1376q-13 0 -22.5 9.5t-9.5 22.5z" />
<glyph unicode="&#xf0ed;" horiz-adv-x="1920" d="M0 448q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5q0 -159 -112.5 -271.5t-271.5 -112.5h-1088q-185 0 -316.5 131.5t-131.5 316.5z M512 608q0 -14 9 -23l352 -352q9 -9 23 -9t23 9l351 351q10 12 10 24q0 14 -9 23t-23 9h-224v352q0 13 -9.5 22.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-352h-224q-13 0 -22.5 -9.5t-9.5 -22.5z" />
<glyph unicode="&#xf0ee;" horiz-adv-x="1920" d="M0 448q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5q0 -159 -112.5 -271.5t-271.5 -112.5h-1088q-185 0 -316.5 131.5t-131.5 316.5z M512 672q0 -14 9 -23t23 -9h224v-352q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5v352h224q13 0 22.5 9.5t9.5 22.5q0 14 -9 23l-352 352q-9 9 -23 9t-23 -9l-351 -351q-10 -12 -10 -24z" />
<glyph unicode="&#xf0f0;" horiz-adv-x="1408" d="M0 131q0 68 5.5 131t24 138t47.5 132.5t81 103t120 60.5q-22 -52 -22 -120v-203q-58 -20 -93 -70t-35 -111q0 -80 56 -136t136 -56t136 56t56 136q0 61 -35.5 111t-92.5 70v203q0 62 25 93q132 -104 295 -104t295 104q25 -31 25 -93v-64q-106 0 -181 -75t-75 -181v-89 q-32 -29 -32 -71q0 -40 28 -68t68 -28t68 28t28 68q0 42 -32 71v89q0 52 38 90t90 38t90 -38t38 -90v-89q-32 -29 -32 -71q0 -40 28 -68t68 -28t68 28t28 68q0 42 -32 71v89q0 68 -34.5 127.5t-93.5 93.5q0 10 0.5 42.5t0 48t-2.5 41.5t-7 47t-13 40q68 -15 120 -60.5 t81 -103t47.5 -132.5t24 -138t5.5 -131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190zM256 192q0 26 19 45t45 19t45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45zM320 1024q0 159 112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5 t-271.5 112.5t-112.5 271.5z" />
<glyph unicode="&#xf0f1;" horiz-adv-x="1408" d="M0 768v512q0 26 19 45t45 19q6 0 16 -2q17 30 47 48t65 18q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5q-33 0 -64 18v-402q0 -106 94 -181t226 -75t226 75t94 181v402q-31 -18 -64 -18q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5q35 0 65 -18t47 -48 q10 2 16 2q26 0 45 -19t19 -45v-512q0 -144 -110 -252t-274 -128v-132q0 -106 94 -181t226 -75t226 75t94 181v395q-57 21 -92.5 70t-35.5 111q0 80 56 136t136 56t136 -56t56 -136q0 -62 -35.5 -111t-92.5 -70v-395q0 -159 -131.5 -271.5t-316.5 -112.5t-316.5 112.5 t-131.5 271.5v132q-164 20 -274 128t-110 252zM1152 832q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
<glyph unicode="&#xf0f2;" horiz-adv-x="1792" d="M0 96v832q0 92 66 158t158 66h64v-1280h-64q-92 0 -158 66t-66 158zM384 -128v1280h128v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h128v-1280h-1024zM640 1152h512v128h-512v-128zM1504 -128v1280h64q92 0 158 -66t66 -158v-832q0 -92 -66 -158t-158 -66h-64z " />
<glyph unicode="&#xf0f3;" horiz-adv-x="1664" d="M0 128q190 161 287 397.5t97 498.5q0 165 96 262t264 117q-8 18 -8 37q0 40 28 68t68 28t68 -28t28 -68q0 -19 -8 -37q168 -20 264 -117t96 -262q0 -262 97 -498.5t287 -397.5q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38 t-38 90zM656 0q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16t-16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16z" />
<glyph unicode="&#xf0f4;" horiz-adv-x="1920" d="M0 128h1792q0 -106 -75 -181t-181 -75h-1280q-106 0 -181 75t-75 181zM256 480v736q0 26 19 45t45 19h1152q159 0 271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5h-64v-32q0 -92 -66 -158t-158 -66h-704q-92 0 -158 66t-66 158zM1408 704h64q80 0 136 56t56 136 t-56 136t-136 56h-64v-384z" />
<glyph unicode="&#xf0f5;" horiz-adv-x="1408" d="M0 832v640q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45v-640q0 -61 -35.5 -111t-92.5 -70v-779q0 -52 -38 -90t-90 -38h-128 q-52 0 -90 38t-38 90v779q-57 20 -92.5 70t-35.5 111zM768 416v800q0 132 94 226t226 94h256q26 0 45 -19t19 -45v-1600q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v512h-224q-13 0 -22.5 9.5t-9.5 22.5z" />
<glyph unicode="&#xf0f6;" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM384 160v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23v-64 q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23zM384 416v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23zM384 672v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23zM1024 1024h376 q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
<glyph unicode="&#xf0f7;" horiz-adv-x="1408" d="M0 -192v1664q0 26 19 45t45 19h1280q26 0 45 -19t19 -45v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45zM128 -128h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224h384v1536h-1152v-1536zM256 160v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM256 416v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM256 672v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM256 928v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM256 1184v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 416v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 672v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 928v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 1184v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM768 416v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM768 672v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM768 928v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM768 1184v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 160v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 416v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 672v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 928v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 1184v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5z" />
<glyph unicode="&#xf0f8;" horiz-adv-x="1408" d="M0 -192v1280q0 26 19 45t45 19h320v288q0 40 28 68t68 28h448q40 0 68 -28t28 -68v-288h320q26 0 45 -19t19 -45v-1280q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45zM128 -128h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224h384v1152h-256 v-32q0 -40 -28 -68t-68 -28h-448q-40 0 -68 28t-28 68v32h-256v-1152zM256 160v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM256 416v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5 v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM256 672v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 416v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64 q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 672v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 1056q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v96h128 v-96q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v320q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-96h-128v96q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-320zM768 416v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5 v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM768 672v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 160v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5 v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 416v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 672v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5 v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5z" />
<glyph unicode="&#xf0f9;" horiz-adv-x="1920" d="M64 192q0 26 19 45t45 19v416q0 26 13 58t32 51l198 198q19 19 51 32t58 13h160v320q0 26 19 45t45 19h1152q26 0 45 -19t19 -45v-1152q0 -26 -19 -45t-45 -19h-192q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-128 q-26 0 -45 19t-19 45zM256 640h384v256h-158q-14 -2 -22 -9l-195 -195q-7 -12 -9 -22v-30zM384 128q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5zM896 800q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192 q14 0 23 9t9 23v224h224q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192zM1280 128q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z" />
<glyph unicode="&#xf0fa;" horiz-adv-x="1792" d="M0 96v832q0 92 66 158t158 66h32v-1280h-32q-92 0 -158 66t-66 158zM352 -128v1280h160v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h160v-1280h-1088zM512 416q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23v192 q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192zM640 1152h512v128h-512v-128zM1536 -128v1280h32q92 0 158 -66t66 -158v-832q0 -92 -66 -158t-158 -66h-32z" />
<glyph unicode="&#xf0fb;" horiz-adv-x="1920" d="M0 512v128l192 24v8h-128v32h-32v192l32 32h96l192 -224h160v416h-64v32h64h160h96q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-69l293 -352h64l224 -64l352 -32q261 -58 287 -93l1 -3q-1 -32 -288 -96l-352 -32l-224 -64h-64l-293 -352h69q26 0 45 -4.5t19 -11.5 t-19 -11.5t-45 -4.5h-96h-160h-64v32h64v416h-160l-192 -224h-96l-32 32v192h32v32h128v8z" />
<glyph unicode="&#xf0fc;" horiz-adv-x="1664" d="M64 1152l32 128h480l32 128h960l32 -192l-64 -32v-800l128 -192v-192h-1152v192l128 192h-128q-159 0 -271.5 112.5t-112.5 271.5v320zM384 768q0 -53 37.5 -90.5t90.5 -37.5h128v384h-256v-256z" />
<glyph unicode="&#xf0fd;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 192q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h512v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45 v896q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-512v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-896z" />
<glyph unicode="&#xf0fe;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 576q0 -26 19 -45t45 -19h320v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h320q26 0 45 19t19 45 v128q0 26 -19 45t-45 19h-320v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-320q-26 0 -45 -19t-19 -45v-128z" />
<glyph unicode="&#xf100;" horiz-adv-x="1024" d="M45 576q0 13 10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23zM429 576q0 13 10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23 l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23z" />
<glyph unicode="&#xf101;" horiz-adv-x="1024" d="M13 160q0 13 10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23zM397 160q0 13 10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10 l466 -466q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23z" />
<glyph unicode="&#xf102;" horiz-adv-x="1152" d="M77 224q0 13 10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23zM77 608q0 13 10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23 l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23z" />
<glyph unicode="&#xf103;" horiz-adv-x="1152" d="M77 672q0 13 10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23zM77 1056q0 13 10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10 l50 -50q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23z" />
<glyph unicode="&#xf104;" horiz-adv-x="640" d="M45 576q0 13 10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23z" />
<glyph unicode="&#xf105;" horiz-adv-x="640" d="M13 160q0 13 10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23z" />
<glyph unicode="&#xf106;" horiz-adv-x="1152" d="M77 352q0 13 10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23z" />
<glyph unicode="&#xf107;" horiz-adv-x="1152" d="M77 800q0 13 10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23z" />
<glyph unicode="&#xf108;" horiz-adv-x="1920" d="M0 288v1088q0 66 47 113t113 47h1600q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-544q0 -37 16 -77.5t32 -71t16 -43.5q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45q0 14 16 44t32 70t16 78h-544q-66 0 -113 47t-47 113zM128 544q0 -13 9.5 -22.5 t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v832q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-832z" />
<glyph unicode="&#xf109;" horiz-adv-x="1920" d="M0 96v96h160h1600h160v-96q0 -40 -47 -68t-113 -28h-1600q-66 0 -113 28t-47 68zM256 416v704q0 66 47 113t113 47h1088q66 0 113 -47t47 -113v-704q0 -66 -47 -113t-113 -47h-1088q-66 0 -113 47t-47 113zM384 416q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5 t9.5 22.5v704q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5v-704zM864 112q0 -16 16 -16h160q16 0 16 16t-16 16h-160q-16 0 -16 -16z" />
<glyph unicode="&#xf10a;" horiz-adv-x="1152" d="M0 160v1088q0 66 47 113t113 47h832q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-832q-66 0 -113 47t-47 113zM128 288q0 -13 9.5 -22.5t22.5 -9.5h832q13 0 22.5 9.5t9.5 22.5v960q0 13 -9.5 22.5t-22.5 9.5h-832q-13 0 -22.5 -9.5t-9.5 -22.5v-960zM512 128 q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
<glyph unicode="&#xf10b;" horiz-adv-x="768" d="M0 128v1024q0 52 38 90t90 38h512q52 0 90 -38t38 -90v-1024q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90zM96 288q0 -13 9.5 -22.5t22.5 -9.5h512q13 0 22.5 9.5t9.5 22.5v704q0 13 -9.5 22.5t-22.5 9.5h-512q-13 0 -22.5 -9.5t-9.5 -22.5v-704zM288 1136 q0 -16 16 -16h160q16 0 16 16t-16 16h-160q-16 0 -16 -16zM304 128q0 -33 23.5 -56.5t56.5 -23.5t56.5 23.5t23.5 56.5t-23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5z" />
<glyph unicode="&#xf10c;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273z" />
<glyph unicode="&#xf10d;" horiz-adv-x="1664" d="M0 192v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136z M896 192v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136z" />
<glyph unicode="&#xf10e;" horiz-adv-x="1664" d="M0 832v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136zM896 832v384 q0 80 56 136t136 56h384q80 0 136 -56t56 -136v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136z" />
<glyph unicode="&#xf110;" horiz-adv-x="1568" d="M0 640q0 66 47 113t113 47t113 -47t47 -113t-47 -113t-113 -47t-113 47t-47 113zM176 1088q0 73 51.5 124.5t124.5 51.5t124.5 -51.5t51.5 -124.5t-51.5 -124.5t-124.5 -51.5t-124.5 51.5t-51.5 124.5zM208 192q0 60 42 102t102 42q59 0 101.5 -42t42.5 -102t-42.5 -102 t-101.5 -42q-60 0 -102 42t-42 102zM608 1280q0 80 56 136t136 56t136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136zM672 0q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5zM1136 192q0 46 33 79t79 33t79 -33t33 -79 t-33 -79t-79 -33t-79 33t-33 79zM1168 1088q0 33 23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5t-23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5zM1344 640q0 40 28 68t68 28t68 -28t28 -68t-28 -68t-68 -28t-68 28t-28 68z" />
<glyph unicode="&#xf111;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5z" />
<glyph unicode="&#xf112;" horiz-adv-x="1792" d="M0 896q0 26 19 45l512 512q19 19 45 19t45 -19t19 -45v-256h224q713 0 875 -403q53 -134 53 -333q0 -166 -127 -451q-3 -7 -10.5 -24t-13.5 -30t-13 -22q-12 -17 -28 -17q-15 0 -23.5 10t-8.5 25q0 9 2.5 26.5t2.5 23.5q5 68 5 123q0 101 -17.5 181t-48.5 138.5t-80 101 t-105.5 69.5t-133 42.5t-154 21.5t-175.5 6h-224v-256q0 -26 -19 -45t-45 -19t-45 19l-512 512q-19 19 -19 45z" />
<glyph unicode="&#xf113;" horiz-adv-x="1664" d="M0 496q0 237 136 396q-27 82 -27 170q0 116 51 218q108 0 190 -39.5t189 -123.5q147 35 309 35q148 0 280 -32q105 82 187 121t189 39q51 -102 51 -218q0 -87 -27 -168q136 -160 136 -398q0 -207 -61 -331q-38 -77 -105.5 -133t-141 -86t-170 -47.5t-171.5 -22t-167 -4.5 q-78 0 -142 3t-147.5 12.5t-152.5 30t-137 51.5t-121 81t-86 115q-62 123 -62 331zM224 320q0 -88 32 -153.5t81 -103t122 -60t140 -29.5t149 -7h168q82 0 149 7t140 29.5t122 60t81 103t32 153.5q0 120 -69 204t-187 84q-41 0 -195 -21q-71 -11 -157 -11t-157 11 q-152 21 -195 21q-118 0 -187 -84t-69 -204zM384 320q0 40 12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82t-12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82zM1024 320q0 40 12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82t-12.5 -82t-43 -76t-72.5 -34t-72.5 34 t-43 76t-12.5 82z" />
<glyph unicode="&#xf114;" horiz-adv-x="1664" d="M0 224v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158zM128 224q0 -40 28 -68t68 -28h1216q40 0 68 28t28 68v704q0 40 -28 68t-68 28h-704q-40 0 -68 28t-28 68v64 q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68v-960z" />
<glyph unicode="&#xf115;" horiz-adv-x="1920" d="M0 224v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158v-160h192q54 0 99 -24.5t67 -70.5q15 -32 15 -68q0 -62 -46 -120l-295 -363q-43 -53 -116 -87.5t-140 -34.5h-1088q-92 0 -158 66t-66 158zM128 331l256 315q44 53 116 87.5 t140 34.5h768v160q0 40 -28 68t-68 28h-576q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68v-853zM171 163q0 -35 53 -35h1088q40 0 86 22t71 53l294 363q18 22 18 39q0 35 -53 35h-1088q-40 0 -85.5 -21.5t-71.5 -52.5l-294 -363q-18 -24 -18 -40z " />
<glyph unicode="&#xf116;" horiz-adv-x="1792" />
<glyph unicode="&#xf117;" horiz-adv-x="1792" />
<glyph unicode="&#xf118;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM128 640q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 t-51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5zM384 896q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5zM402 461q-8 25 4 48.5t38 31.5q25 8 48.5 -4t31.5 -38 q25 -80 92.5 -129.5t151.5 -49.5t151.5 49.5t92.5 129.5q8 26 32 38t49 4t37 -31.5t4 -48.5q-37 -121 -138 -195t-228 -74t-228 74t-138 195zM896 896q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5z" />
<glyph unicode="&#xf119;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM128 640q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 t-51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5zM384 896q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5zM402 307q37 121 138 195t228 74t228 -74t138 -195q8 -25 -4 -48.5 t-37 -31.5t-49 4t-32 38q-25 80 -92.5 129.5t-151.5 49.5t-151.5 -49.5t-92.5 -129.5q-8 -26 -31.5 -38t-48.5 -4q-26 8 -38 31.5t-4 48.5zM896 896q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5z" />
<glyph unicode="&#xf11a;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM128 640q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 t-51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5zM384 448q0 26 19 45t45 19h640q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45zM384 896q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5 t-90.5 -37.5t-90.5 37.5t-37.5 90.5zM896 896q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5z" />
<glyph unicode="&#xf11b;" horiz-adv-x="1920" d="M0 512q0 212 150 362t362 150h896q212 0 362 -150t150 -362t-150 -362t-362 -150q-192 0 -338 128h-220q-146 -128 -338 -128q-212 0 -362 150t-150 362zM192 448q0 -14 9 -23t23 -9h192v-192q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v192h192q14 0 23 9t9 23v128 q0 14 -9 23t-23 9h-192v192q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-192h-192q-14 0 -23 -9t-9 -23v-128zM1152 384q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5zM1408 640q0 -53 37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z" />
<glyph unicode="&#xf11c;" horiz-adv-x="1920" d="M0 128v896q0 53 37.5 90.5t90.5 37.5h1664q53 0 90.5 -37.5t37.5 -90.5v-896q0 -53 -37.5 -90.5t-90.5 -37.5h-1664q-53 0 -90.5 37.5t-37.5 90.5zM128 128h1664v896h-1664v-896zM256 272v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16zM256 528v96 q0 16 16 16h224q16 0 16 -16v-96q0 -16 -16 -16h-224q-16 0 -16 16zM256 784v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16zM512 272v96q0 16 16 16h864q16 0 16 -16v-96q0 -16 -16 -16h-864q-16 0 -16 16zM512 784v96q0 16 16 16h96q16 0 16 -16v-96 q0 -16 -16 -16h-96q-16 0 -16 16zM640 528v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16zM768 784v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16zM896 528v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16z M1024 784v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16zM1152 528v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16zM1280 784v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16zM1408 528v96q0 16 16 16h112v240 q0 16 16 16h96q16 0 16 -16v-352q0 -16 -16 -16h-224q-16 0 -16 16zM1536 272v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16z" />
<glyph unicode="&#xf11d;" horiz-adv-x="1792" d="M64 1280q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v1266q-29 17 -46.5 46t-17.5 64zM320 320v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86 q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102q-15 -9 -33 -9q-16 0 -32 8q-32 19 -32 56zM448 426 q245 113 433 113q55 0 103.5 -7.5t98 -26t77 -31t82.5 -39.5l28 -14q44 -22 101 -22q120 0 293 92v616q-169 -91 -306 -91q-82 0 -145 32q-100 49 -184 76.5t-178 27.5q-173 0 -403 -127v-599z" />
<glyph unicode="&#xf11e;" horiz-adv-x="1792" d="M64 1280q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v1266q-29 17 -46.5 46t-17.5 64zM320 320v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86 q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102q-15 -9 -33 -9q-16 0 -32 8q-32 19 -32 56zM448 426 q205 96 384 110v192q-181 -16 -384 -117v-185zM448 836q215 111 384 118v197q-172 -8 -384 -126v-189zM832 730h19q102 0 192.5 -29t197.5 -82q19 -9 39 -15v-188q42 -17 91 -17q120 0 293 92v184q-235 -116 -384 -71v224q-20 6 -39 15q-5 3 -33 17t-34.5 17t-31.5 15 t-34.5 15.5t-32.5 13t-36 12.5t-35 8.5t-39.5 7.5t-39.5 4t-44 2q-23 0 -49 -3v-222zM1280 828q148 -42 384 90v189q-169 -91 -306 -91q-45 0 -78 8v-196z" />
<glyph unicode="&#xf120;" horiz-adv-x="1664" d="M13 160q0 13 10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23zM640 32v64q0 14 9 23t23 9h960q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-960 q-14 0 -23 9t-9 23z" />
<glyph unicode="&#xf121;" horiz-adv-x="1920" d="M45 576q0 13 10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23zM712 -52l373 1291q4 13 15.5 19.5t23.5 2.5l62 -17q13 -4 19.5 -15.5t2.5 -24.5 l-373 -1291q-4 -13 -15.5 -19.5t-23.5 -2.5l-62 17q-13 4 -19.5 15.5t-2.5 24.5zM1293 160q0 13 10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23z" />
<glyph unicode="&#xf122;" horiz-adv-x="1792" d="M0 896q0 26 19 45l512 512q29 31 70 14q39 -17 39 -59v-69l-397 -398q-19 -19 -19 -45t19 -45l397 -397v-70q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45zM384 896q0 26 19 45l512 512q29 31 70 14q39 -17 39 -59v-262q411 -28 599 -221 q169 -173 169 -509q0 -58 -17 -133.5t-38.5 -138t-48 -125t-40.5 -90.5l-20 -40q-8 -17 -28 -17q-6 0 -9 1q-25 8 -23 34q43 400 -106 565q-64 71 -170.5 110.5t-267.5 52.5v-251q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45z" />
<glyph unicode="&#xf123;" horiz-adv-x="1664" d="M2 900.5q9 27.5 54 34.5l502 73l225 455q20 41 49 41q28 0 49 -41l225 -455l502 -73q45 -7 54 -34.5t-24 -59.5l-363 -354l86 -500q5 -33 -6 -51.5t-34 -18.5q-17 0 -40 12l-449 236l-449 -236q-23 -12 -40 -12q-23 0 -34 18.5t-6 51.5l86 500l-364 354q-32 32 -23 59.5z M832 310l59 -31l318 -168l-60 355l-12 66l49 47l257 250l-356 52l-66 10l-30 60l-159 322v-963z" />
<glyph unicode="&#xf124;" horiz-adv-x="1408" d="M2 561q-5 22 4 42t29 30l1280 640q13 7 29 7q27 0 45 -19q15 -14 18.5 -34.5t-6.5 -39.5l-640 -1280q-17 -35 -57 -35q-5 0 -15 2q-22 5 -35.5 22.5t-13.5 39.5v576h-576q-22 0 -39.5 13.5t-22.5 35.5z" />
<glyph unicode="&#xf125;" horiz-adv-x="1664" d="M0 928v192q0 14 9 23t23 9h224v224q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-224h851l246 247q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-247 -246v-851h224q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v224h-864 q-14 0 -23 9t-9 23v864h-224q-14 0 -23 9t-9 23zM512 301l595 595h-595v-595zM557 256h595v595z" />
<glyph unicode="&#xf126;" horiz-adv-x="1024" d="M0 64q0 52 26 96.5t70 69.5v820q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136q0 -52 -26 -96.5t-70 -69.5v-497q54 26 154 57q55 17 87.5 29.5t70.5 31t59 39.5t40.5 51t28 69.5t8.5 91.5q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136 q0 -52 -26 -96.5t-70 -69.5q-2 -287 -226 -414q-68 -38 -203 -81q-128 -40 -169.5 -71t-41.5 -100v-26q44 -25 70 -69.5t26 -96.5q0 -80 -56 -136t-136 -56t-136 56t-56 136zM96 64q0 -40 28 -68t68 -28t68 28t28 68t-28 68t-68 28t-68 -28t-28 -68zM96 1216q0 -40 28 -68 t68 -28t68 28t28 68t-28 68t-68 28t-68 -28t-28 -68zM736 1088q0 -40 28 -68t68 -28t68 28t28 68t-28 68t-68 28t-68 -28t-28 -68z" />
<glyph unicode="&#xf127;" horiz-adv-x="1664" d="M0 448q0 14 9 23t23 9h320q14 0 23 -9t9 -23t-9 -23t-23 -9h-320q-14 0 -23 9t-9 23zM16 1088q0 120 85 203l147 146q83 83 203 83q121 0 204 -85l334 -335q21 -21 42 -56l-239 -18l-273 274q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68 l274 -274l-18 -240q-35 21 -56 42l-336 336q-84 86 -84 204zM128 32q0 13 9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-256 -256q-10 -9 -23 -9q-12 0 -23 9q-9 10 -9 23zM544 -96v320q0 14 9 23t23 9t23 -9t9 -23v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23zM633 364 l239 18l273 -274q27 -27 68 -27.5t68 26.5l147 146q28 28 28 67q0 40 -28 68l-274 275l18 239q35 -21 56 -42l336 -336q84 -86 84 -204q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-334 335q-21 21 -42 56zM1056 1184v320q0 14 9 23t23 9t23 -9t9 -23v-320 q0 -14 -9 -23t-23 -9t-23 9t-9 23zM1216 1120q0 13 9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-256 -256q-11 -9 -23 -9t-23 9q-9 10 -9 23zM1280 960q0 14 9 23t23 9h320q14 0 23 -9t9 -23t-9 -23t-23 -9h-320q-14 0 -23 9t-9 23z" />
<glyph unicode="&#xf128;" horiz-adv-x="1024" d="M96.5 986q-2.5 15 5.5 28q160 266 464 266q80 0 161 -31t146 -83t106 -127.5t41 -158.5q0 -54 -15.5 -101t-35 -76.5t-55 -59.5t-57.5 -43.5t-61 -35.5q-41 -23 -68.5 -65t-27.5 -67q0 -17 -12 -32.5t-28 -15.5h-240q-15 0 -25.5 18.5t-10.5 37.5v45q0 83 65 156.5 t143 108.5q59 27 84 56t25 76q0 42 -46.5 74t-107.5 32q-65 0 -108 -29q-35 -25 -107 -115q-13 -16 -31 -16q-12 0 -25 8l-164 125q-13 10 -15.5 25zM384 40v240q0 16 12 28t28 12h240q16 0 28 -12t12 -28v-240q0 -16 -12 -28t-28 -12h-240q-16 0 -28 12t-12 28z" />
<glyph unicode="&#xf129;" horiz-adv-x="640" d="M0 64v128q0 26 19 45t45 19h64v384h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-576h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45zM128 1152v192q0 26 19 45t45 19h256q26 0 45 -19t19 -45v-192 q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45z" />
<glyph unicode="&#xf12a;" horiz-adv-x="640" d="M98 1344q-1 26 17.5 45t44.5 19h320q26 0 44.5 -19t17.5 -45l-28 -768q-1 -26 -20.5 -45t-45.5 -19h-256q-26 0 -45.5 19t-20.5 45zM128 64v224q0 26 19 45t45 19h256q26 0 45 -19t19 -45v-224q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45z" />
<glyph unicode="&#xf12b;" d="M5 0v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109v-167h-248l-159 252l-24 42q-8 9 -11 21h-3l-9 -21q-10 -20 -25 -44l-155 -250h-258zM1013 713q0 64 26 117t65 86.5 t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q83 65 188 65q110 0 178 -59.5t68 -158.5q0 -56 -24.5 -103t-62 -76.5t-81.5 -58.5t-82 -50.5t-65.5 -51.5t-30.5 -63h232v80h126v-206h-514l-3 27q-4 28 -4 46z " />
<glyph unicode="&#xf12c;" d="M5 0v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109v-167h-248l-159 252l-24 42q-8 9 -11 21h-3l-9 -21q-10 -20 -25 -44l-155 -250h-258zM1015 -183q0 64 26 117t65 86.5 t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q80 65 188 65q110 0 178 -59.5t68 -158.5q0 -66 -34.5 -118.5t-84 -86t-99.5 -62.5t-87 -63t-41 -73h232v80h126v-206h-514l-4 27q-3 45 -3 46z" />
<glyph unicode="&#xf12d;" horiz-adv-x="1920" d="M1.5 146.5q5.5 37.5 30.5 65.5l896 1024q38 44 96 44h768q38 0 69.5 -20.5t47.5 -54.5q15 -34 9.5 -71.5t-30.5 -65.5l-896 -1024q-38 -44 -96 -44h-768q-38 0 -69.5 20.5t-47.5 54.5q-15 34 -9.5 71.5zM128 128h768l336 384h-768z" />
<glyph unicode="&#xf12e;" horiz-adv-x="1664" d="M0 0v1024q2 -1 17.5 -3.5t34 -5t21.5 -3.5q150 -24 245 -24q80 0 117 35q46 44 46 89q0 22 -15 50.5t-33.5 53t-33.5 64.5t-15 83q0 82 59 127.5t144 45.5q80 0 134 -44.5t54 -123.5q0 -41 -17.5 -77.5t-38 -59t-38 -56.5t-17.5 -71q0 -57 42 -83.5t103 -26.5 q64 0 180 15t163 17v-2q-1 -2 -3.5 -17.5t-5 -34t-3.5 -21.5q-24 -150 -24 -245q0 -80 35 -117q44 -46 89 -46q22 0 50.5 15t53 33.5t64.5 33.5t83 15q82 0 127.5 -59t45.5 -143q0 -81 -44.5 -135t-123.5 -54q-41 0 -77.5 17.5t-59 38t-56.5 38t-71 17.5q-110 0 -110 -124 q0 -39 16 -115t15 -115v-5q-22 0 -33 -1q-34 -3 -97.5 -11.5t-115.5 -13.5t-98 -5q-61 0 -103 26.5t-42 83.5q0 37 17.5 71t38 56.5t38 59t17.5 77.5q0 79 -54 123.5t-135 44.5q-84 0 -143 -45.5t-59 -127.5q0 -43 15 -83t33.5 -64.5t33.5 -53t15 -50.5q0 -45 -46 -89 q-37 -35 -117 -35q-95 0 -245 24q-9 2 -27.5 4t-27.5 4l-13 2q-1 0 -3 1q-2 0 -2 1z" />
<glyph unicode="&#xf130;" horiz-adv-x="1152" d="M0 704v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45 t19 45t45 19h256v132q-217 24 -364.5 187.5t-147.5 384.5zM256 704v512q0 132 94 226t226 94t226 -94t94 -226v-512q0 -132 -94 -226t-226 -94t-226 94t-94 226z" />
<glyph unicode="&#xf131;" horiz-adv-x="1408" d="M13 64q0 13 10 23l1234 1234q10 10 23 10t23 -10l82 -82q10 -10 10 -23t-10 -23l-361 -361v-128q0 -132 -94 -226t-226 -94q-55 0 -109 19l-96 -96q97 -51 205 -51q185 0 316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -221 -147.5 -384.5 t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-125 13 -235 81l-254 -254q-10 -10 -23 -10t-23 10l-82 82q-10 10 -10 23zM128 704v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -53 15 -113l-101 -101 q-42 103 -42 214zM384 704v512q0 132 94 226t226 94q102 0 184.5 -59t116.5 -152z" />
<glyph unicode="&#xf132;" horiz-adv-x="1280" d="M0 576v768q0 26 19 45t45 19h1152q26 0 45 -19t19 -45v-768q0 -86 -33.5 -170.5t-83 -150t-118 -127.5t-126.5 -103t-121 -77.5t-89.5 -49.5t-42.5 -20q-12 -6 -26 -6t-26 6q-16 7 -42.5 20t-89.5 49.5t-121 77.5t-126.5 103t-118 127.5t-83 150t-33.5 170.5zM640 79 q119 63 213 137q235 184 235 360v640h-448v-1137z" />
<glyph unicode="&#xf133;" horiz-adv-x="1664" d="M0 -128v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90zM128 -128h1408v1024h-1408v-1024z M384 1088q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288zM1152 1088q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288z" />
<glyph unicode="&#xf134;" horiz-adv-x="1408" d="M3.5 940q-8.5 25 3.5 49q5 10 14.5 26t37.5 53.5t60.5 70t85 67t108.5 52.5q-25 42 -25 86q0 66 47 113t113 47t113 -47t47 -113q0 -33 -14 -64h302q0 11 7 20t18 11l448 96q3 1 7 1q12 0 20 -7q12 -9 12 -25v-320q0 -16 -12 -25q-8 -7 -20 -7q-4 0 -7 1l-448 96 q-11 2 -18 11t-7 20h-256v-102q111 -23 183.5 -111t72.5 -203v-800q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v800q0 106 62.5 190.5t161.5 114.5v111h-32q-59 0 -115 -23.5t-91.5 -53t-66 -66.5t-40.5 -53.5t-14 -24.5q-17 -35 -57 -35q-16 0 -29 7q-23 12 -31.5 37 zM384 1344q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
<glyph unicode="&#xf135;" horiz-adv-x="1664" d="M36 464l224 384q10 14 26 16l379 20q96 114 176 195q188 187 358 258t431 71q14 0 24 -9.5t10 -22.5q0 -249 -75.5 -430.5t-253.5 -360.5q-81 -80 -195 -176l-20 -379q-2 -16 -16 -26l-384 -224q-7 -4 -16 -4q-12 0 -23 9l-64 64q-13 14 -8 32l85 276l-281 281l-276 -85 q-3 -1 -9 -1q-14 0 -23 9l-64 64q-17 19 -5 39zM1248 1088q0 -40 28 -68t68 -28t68 28t28 68t-28 68t-68 28t-68 -28t-28 -68z" />
<glyph unicode="&#xf136;" horiz-adv-x="1792" d="M0 0l204 953l-153 327h1276q101 0 189.5 -40.5t147.5 -113.5q60 -73 81 -168.5t0 -194.5l-164 -763h-334l178 832q13 56 -15 88q-27 33 -83 33h-169l-204 -953h-334l204 953h-286l-204 -953h-334z" />
<glyph unicode="&#xf137;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM346 640q0 -26 19 -45l454 -454q19 -19 45 -19t45 19l102 102q19 19 19 45t-19 45l-307 307l307 307 q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45z" />
<glyph unicode="&#xf138;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM506 288q0 -26 19 -45l102 -102q19 -19 45 -19t45 19l454 454q19 19 19 45t-19 45l-454 454 q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l307 -307l-307 -307q-19 -19 -19 -45z" />
<glyph unicode="&#xf139;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM250 544q0 -26 19 -45l102 -102q19 -19 45 -19t45 19l307 307l307 -307q19 -19 45 -19t45 19l102 102 q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45z" />
<glyph unicode="&#xf13a;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM250 736q0 -26 19 -45l454 -454q19 -19 45 -19t45 19l454 454q19 19 19 45t-19 45l-102 102 q-19 19 -45 19t-45 -19l-307 -307l-307 307q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45z" />
<glyph unicode="&#xf13b;" horiz-adv-x="1408" d="M0 1408h1408l-128 -1438l-578 -162l-574 162zM262 1114l47 -534h612l-22 -228l-197 -53l-196 53l-13 140h-175l22 -278l362 -100h4v1l359 99l50 544h-644l-15 181h674l16 175h-884z" />
<glyph unicode="&#xf13c;" horiz-adv-x="1792" d="M12 75l71 356h297l-29 -147l422 -161l486 161l68 339h-1208l58 297h1209l38 191h-1208l59 297h1505l-266 -1333l-804 -267z" />
<glyph unicode="&#xf13d;" horiz-adv-x="1792" d="M0 0v352q0 14 9 23t23 9h352q22 0 30 -20q8 -19 -7 -35l-100 -100q67 -91 189.5 -153.5t271.5 -82.5v647h-192q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h192v163q-58 34 -93 92.5t-35 128.5q0 106 75 181t181 75t181 -75t75 -181q0 -70 -35 -128.5t-93 -92.5v-163h192 q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-192v-647q149 20 271.5 82.5t189.5 153.5l-100 100q-15 16 -7 35q8 20 30 20h352q14 0 23 -9t9 -23v-352q0 -22 -20 -30q-8 -2 -12 -2q-13 0 -23 9l-93 93q-119 -143 -318.5 -226.5t-429.5 -83.5t-429.5 83.5t-318.5 226.5 l-93 -93q-9 -9 -23 -9q-4 0 -12 2q-20 8 -20 30zM832 1280q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
<glyph unicode="&#xf13e;" horiz-adv-x="1152" d="M0 96v576q0 40 28 68t68 28h32v320q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45q0 106 -75 181t-181 75t-181 -75t-75 -181v-320h736q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28 t-28 68z" />
<glyph unicode="&#xf140;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM128 640q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 t-51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5zM256 640q0 212 150 362t362 150t362 -150t150 -362t-150 -362t-362 -150t-362 150t-150 362zM384 640q0 -159 112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5t-112.5 271.5 t-271.5 112.5t-271.5 -112.5t-112.5 -271.5zM512 640q0 106 75 181t181 75t181 -75t75 -181t-75 -181t-181 -75t-181 75t-75 181z" />
<glyph unicode="&#xf141;" horiz-adv-x="1408" d="M0 608v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68zM512 608v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68zM1024 608v192q0 40 28 68t68 28h192 q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68z" />
<glyph unicode="&#xf142;" horiz-adv-x="384" d="M0 96v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68zM0 608v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68zM0 1120v192q0 40 28 68t68 28h192q40 0 68 -28 t28 -68v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68z" />
<glyph unicode="&#xf143;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 256q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z M256 575q0 -13 8.5 -22t21.5 -10q154 -11 264 -121t121 -264q1 -13 10 -21.5t22 -8.5h128q13 0 23 10t9 24q-13 232 -177 396t-396 177q-14 1 -24 -9t-10 -23v-128zM256 959q0 -13 9 -22t22 -10q204 -7 378 -111.5t278.5 -278.5t111.5 -378q1 -13 10 -22t22 -9h128 q13 0 23 10q11 9 9 23q-5 154 -56 297.5t-139.5 260t-205 205t-260 139.5t-297.5 56q-14 1 -23 -9q-10 -10 -10 -23v-128z" />
<glyph unicode="&#xf144;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM512 320q0 -37 32 -56q16 -8 32 -8q17 0 32 9l544 320q32 18 32 55t-32 55l-544 320q-31 19 -64 1 q-32 -19 -32 -56v-640z" />
<glyph unicode="&#xf145;" horiz-adv-x="1792" d="M54 448.5q0 53.5 37 90.5l907 906q37 37 90.5 37t90.5 -37l125 -125q-56 -56 -56 -136t56 -136t136 -56t136 56l126 -125q37 -37 37 -90.5t-37 -90.5l-907 -908q-37 -37 -90.5 -37t-90.5 37l-126 126q56 56 56 136t-56 136t-136 56t-136 -56l-125 126q-37 37 -37 90.5z M342 512q0 -26 19 -45l362 -362q18 -18 45 -18t45 18l618 618q19 19 19 45t-19 45l-362 362q-18 18 -45 18t-45 -18l-618 -618q-19 -19 -19 -45zM452 512l572 572l316 -316l-572 -572z" />
<glyph unicode="&#xf146;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 576q0 -26 19 -45t45 -19h896q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-128 z" />
<glyph unicode="&#xf147;" horiz-adv-x="1408" d="M0 288v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5zM128 288q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v832q0 66 -47 113t-113 47h-832q-66 0 -113 -47 t-47 -113v-832zM256 672v64q0 14 9 23t23 9h832q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23z" />
<glyph unicode="&#xf148;" horiz-adv-x="1024" d="M3 18q-8 20 4 35l160 192q9 11 25 11h320v640h-192q-40 0 -58 37q-17 37 9 68l320 384q18 22 49 22t49 -22l320 -384q27 -32 9 -68q-18 -37 -58 -37h-192v-864q0 -14 -9 -23t-23 -9h-704q-21 0 -29 18z" />
<glyph unicode="&#xf149;" horiz-adv-x="1024" d="M3 1261q9 19 29 19h704q13 0 22.5 -9.5t9.5 -23.5v-863h192q40 0 58 -37t-9 -69l-320 -384q-18 -22 -49 -22t-49 22l-320 384q-26 31 -9 69q18 37 58 37h192v640h-320q-14 0 -25 11l-160 192q-13 14 -4 34z" />
<glyph unicode="&#xf14a;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM218 640q0 -26 19 -45l358 -358q19 -19 45 -19t45 19l614 614q19 19 19 45t-19 45l-102 102q-19 19 -45 19 t-45 -19l-467 -467l-211 211q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45z" />
<glyph unicode="&#xf14b;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 128h288l544 544l-288 288l-544 -544v-288zM352 320v56l52 52l152 -152l-52 -52h-56v96h-96zM494 494 q-14 13 3 30l291 291q17 17 30 3q14 -13 -3 -30l-291 -291q-17 -17 -30 -3zM864 1024l288 -288l92 92q28 28 28 68t-28 68l-152 152q-28 28 -68 28t-68 -28z" />
<glyph unicode="&#xf14c;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM282 320q0 -26 19 -45l102 -102q19 -19 45 -19t45 19l534 534l144 -144q18 -19 45 -19q12 0 25 5q39 17 39 59 v480q0 26 -19 45t-45 19h-480q-42 0 -59 -39q-17 -41 14 -70l144 -144l-534 -534q-19 -19 -19 -45z" />
<glyph unicode="&#xf14d;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 448q0 -181 167 -404q10 -12 25 -12q7 0 13 3q22 9 19 33q-44 354 62 473q46 52 130 75.5t224 23.5v-160 q0 -42 40 -59q12 -5 24 -5q26 0 45 19l352 352q19 19 19 45t-19 45l-352 352q-30 31 -69 14q-40 -17 -40 -59v-160q-119 0 -216 -19.5t-162.5 -51t-114 -79t-76.5 -95.5t-44.5 -109t-21.5 -111.5t-5 -110.5z" />
<glyph unicode="&#xf14e;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM512 241v542l512 256v-542zM640 448l256 128l-256 128v-256z" />
<glyph unicode="&#xf150;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 160q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5v960q0 13 -9.5 22.5t-22.5 9.5h-960 q-13 0 -22.5 -9.5t-9.5 -22.5v-960zM391 861q17 35 57 35h640q40 0 57 -35q18 -35 -5 -66l-320 -448q-19 -27 -52 -27t-52 27l-320 448q-23 31 -5 66z" />
<glyph unicode="&#xf151;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 160q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5v960q0 13 -9.5 22.5t-22.5 9.5h-960 q-13 0 -22.5 -9.5t-9.5 -22.5v-960zM391 419q-18 35 5 66l320 448q19 27 52 27t52 -27l320 -448q23 -31 5 -66q-17 -35 -57 -35h-640q-40 0 -57 35z" />
<glyph unicode="&#xf152;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 160q0 -14 9 -23t23 -9h960q14 0 23 9t9 23v960q0 14 -9 23t-23 9h-960q-14 0 -23 -9t-9 -23v-960z M512 320v640q0 40 35 57q35 18 66 -5l448 -320q27 -19 27 -52t-27 -52l-448 -320q-31 -23 -66 -5q-35 17 -35 57z" />
<glyph unicode="&#xf153;" horiz-adv-x="1024" d="M0 514v113q0 13 9.5 22.5t22.5 9.5h66q-2 57 1 105h-67q-14 0 -23 9t-9 23v114q0 14 9 23t23 9h98q67 210 243.5 338t400.5 128q102 0 194 -23q11 -3 20 -15q6 -11 3 -24l-43 -159q-3 -13 -14 -19.5t-24 -2.5l-4 1q-4 1 -11.5 2.5l-17.5 3.5t-22.5 3.5t-26 3t-29 2.5 t-29.5 1q-126 0 -226 -64t-150 -176h468q16 0 25 -12q10 -12 7 -26l-24 -114q-5 -26 -32 -26h-488q-3 -37 0 -105h459q15 0 25 -12q9 -12 6 -27l-24 -112q-2 -11 -11 -18.5t-20 -7.5h-387q48 -117 149.5 -185.5t228.5 -68.5q18 0 36 1.5t33.5 3.5t29.5 4.5t24.5 5t18.5 4.5 l12 3l5 2q13 5 26 -2q12 -7 15 -21l35 -159q3 -12 -3 -22.5t-17 -14.5l-5 -1q-4 -2 -10.5 -3.5t-16 -4.5t-21.5 -5.5t-25.5 -5t-30 -5t-33.5 -4.5t-36.5 -3t-38.5 -1q-234 0 -409 130.5t-238 351.5h-95q-13 0 -22.5 9.5t-9.5 22.5z" />
<glyph unicode="&#xf154;" horiz-adv-x="1024" d="M0 32v150q0 13 9.5 22.5t22.5 9.5h97v383h-95q-14 0 -23 9.5t-9 22.5v131q0 14 9 23t23 9h95v223q0 171 123.5 282t314.5 111q185 0 335 -125q9 -8 10 -20.5t-7 -22.5l-103 -127q-9 -11 -22 -12q-13 -2 -23 7q-5 5 -26 19t-69 32t-93 18q-85 0 -137 -47t-52 -123v-215 h305q13 0 22.5 -9t9.5 -23v-131q0 -13 -9.5 -22.5t-22.5 -9.5h-305v-379h414v181q0 13 9 22.5t23 9.5h162q14 0 23 -9.5t9 -22.5v-367q0 -14 -9 -23t-23 -9h-956q-14 0 -23 9t-9 23z" />
<glyph unicode="&#xf155;" horiz-adv-x="1024" d="M52 171l103 135q7 10 23 12q15 2 24 -9l2 -2q113 -99 243 -125q37 -8 74 -8q81 0 142.5 43t61.5 122q0 28 -15 53t-33.5 42t-58.5 37.5t-66 32t-80 32.5q-39 16 -61.5 25t-61.5 26.5t-62.5 31t-56.5 35.5t-53.5 42.5t-43.5 49t-35.5 58t-21 66.5t-8.5 78q0 138 98 242 t255 134v180q0 13 9.5 22.5t22.5 9.5h135q14 0 23 -9t9 -23v-176q57 -6 110.5 -23t87 -33.5t63.5 -37.5t39 -29t15 -14q17 -18 5 -38l-81 -146q-8 -15 -23 -16q-14 -3 -27 7q-3 3 -14.5 12t-39 26.5t-58.5 32t-74.5 26t-85.5 11.5q-95 0 -155 -43t-60 -111q0 -26 8.5 -48 t29.5 -41.5t39.5 -33t56 -31t60.5 -27t70 -27.5q53 -20 81 -31.5t76 -35t75.5 -42.5t62 -50t53 -63.5t31.5 -76.5t13 -94q0 -153 -99.5 -263.5t-258.5 -136.5v-175q0 -14 -9 -23t-23 -9h-135q-13 0 -22.5 9.5t-9.5 22.5v175q-66 9 -127.5 31t-101.5 44.5t-74 48t-46.5 37.5 t-17.5 18q-17 21 -2 41z" />
<glyph unicode="&#xf156;" horiz-adv-x="898" d="M0 605v127q0 13 9.5 22.5t22.5 9.5h112q132 0 212.5 43t102.5 125h-427q-14 0 -23 9t-9 23v102q0 14 9 23t23 9h413q-57 113 -268 113h-145q-13 0 -22.5 9.5t-9.5 22.5v133q0 14 9 23t23 9h832q14 0 23 -9t9 -23v-102q0 -14 -9 -23t-23 -9h-233q47 -61 64 -144h171 q14 0 23 -9t9 -23v-102q0 -14 -9 -23t-23 -9h-168q-23 -144 -129 -234t-276 -110q167 -178 459 -536q14 -16 4 -34q-8 -18 -29 -18h-195q-16 0 -25 12q-306 367 -498 571q-9 9 -9 22z" />
<glyph unicode="&#xf157;" horiz-adv-x="1027" d="M4 1360q-8 16 0 32q10 16 28 16h194q19 0 29 -18l215 -425q19 -38 56 -125q10 24 30.5 68t27.5 61l191 420q8 19 29 19h191q17 0 27 -16q9 -14 1 -31l-313 -579h215q13 0 22.5 -9.5t9.5 -22.5v-104q0 -14 -9.5 -23t-22.5 -9h-290v-85h290q13 0 22.5 -9.5t9.5 -22.5v-103 q0 -14 -9.5 -23t-22.5 -9h-290v-330q0 -13 -9.5 -22.5t-22.5 -9.5h-172q-13 0 -22.5 9t-9.5 23v330h-288q-13 0 -22.5 9t-9.5 23v103q0 13 9.5 22.5t22.5 9.5h288v85h-288q-13 0 -22.5 9t-9.5 23v104q0 13 9.5 22.5t22.5 9.5h214z" />
<glyph unicode="&#xf158;" horiz-adv-x="1280" d="M0 256v128q0 14 9 23t23 9h224v118h-224q-14 0 -23 9t-9 23v149q0 13 9 22.5t23 9.5h224v629q0 14 9 23t23 9h539q200 0 326.5 -122t126.5 -315t-126.5 -315t-326.5 -122h-340v-118h505q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-505v-192q0 -14 -9.5 -23t-22.5 -9 h-167q-14 0 -23 9t-9 23v192h-224q-14 0 -23 9t-9 23zM487 747h320q106 0 171 62t65 162t-65 162t-171 62h-320v-448z" />
<glyph unicode="&#xf159;" horiz-adv-x="1792" d="M0 672v64q0 14 9 23t23 9h175l-33 128h-142q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h109l-89 344q-5 15 5 28q10 12 26 12h137q26 0 31 -24l90 -360h359l97 360q7 24 31 24h126q24 0 31 -24l98 -360h365l93 360q5 24 31 24h137q16 0 26 -12q10 -13 5 -28l-91 -344h111 q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-145l-34 -128h179q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-213l-164 -616q-7 -24 -31 -24h-159q-24 0 -31 24l-166 616h-209l-167 -616q-7 -24 -31 -24h-159q-11 0 -19.5 7t-10.5 17l-160 616h-208q-14 0 -23 9t-9 23z M373 896l32 -128h225l35 128h-292zM436 640l75 -300q1 -1 1 -3t1 -3q0 1 0.5 3.5t0.5 3.5l81 299h-159zM822 768h139l-35 128h-70zM1118 896l34 -128h230l33 128h-297zM1187 640l81 -299q0 -1 0.5 -3.5t1.5 -3.5q0 1 0.5 3t0.5 3l78 300h-162z" />
<glyph unicode="&#xf15a;" horiz-adv-x="1280" d="M56 0l31 183h111q50 0 58 51v402h16q-6 1 -16 1v287q-13 68 -89 68h-111v164l212 -1q64 0 97 1v252h154v-247q82 2 122 2v245h154v-252q79 -7 140 -22.5t113 -45t82.5 -78t36.5 -114.5q18 -182 -131 -258q117 -28 175 -103t45 -214q-7 -71 -32.5 -125t-64.5 -89 t-97 -58.5t-121.5 -34.5t-145.5 -15v-255h-154v251q-80 0 -122 1v-252h-154v255q-18 0 -54 0.5t-55 0.5h-200zM522 182q8 0 37 -0.5t48 -0.5t53 1.5t58.5 4t57 8.5t55.5 14t47.5 21t39.5 30t24.5 40t9.5 51q0 36 -15 64t-37 46t-57.5 30.5t-65.5 18.5t-74 9t-69 3t-64.5 -1 t-47.5 -1v-338zM522 674q5 0 34.5 -0.5t46.5 0t50 2t55 5.5t51.5 11t48.5 18.5t37 27t27 38.5t9 51q0 33 -12.5 58.5t-30.5 42t-48 28t-55 16.5t-61.5 8t-58 2.5t-54 -1t-39.5 -0.5v-307z" />
<glyph unicode="&#xf15b;" d="M0 -160v1600q0 40 28 68t68 28h800v-544q0 -40 28 -68t68 -28h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM1024 1024v472q22 -14 36 -28l408 -408q14 -14 28 -36h-472z" />
<glyph unicode="&#xf15c;" d="M0 -160v1600q0 40 28 68t68 28h800v-544q0 -40 28 -68t68 -28h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM384 160q0 -14 9 -23t23 -9h704q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64zM384 416q0 -14 9 -23t23 -9h704 q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64zM384 672q0 -14 9 -23t23 -9h704q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64zM1024 1024v472q22 -14 36 -28l408 -408q14 -14 28 -36h-472z" />
<glyph unicode="&#xf15d;" horiz-adv-x="1664" d="M34 108q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35zM899 768v106h70l230 662h162l230 -662h70v-106h-288v106h75l-47 144h-243l-47 -144h75v-106 h-287zM988 -166l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -11v-2l14 2q9 2 30 2h248v119h121v-233h-584v90zM1191 1128h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18 t-7.5 -29z" />
<glyph unicode="&#xf15e;" horiz-adv-x="1664" d="M34 108q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35zM899 -150h70l230 662h162l230 -662h70v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287 v106zM988 768v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -10v-3l14 3q9 1 30 1h248v119h121v-233h-584zM1191 104h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29 z" />
<glyph unicode="&#xf160;" horiz-adv-x="1792" d="M34 108q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35zM896 -32q0 14 9 23t23 9h832q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9 t-9 23v192zM896 288v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23zM896 800v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23zM896 1312v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23 v-192q0 -14 -9 -23t-23 -9h-256q-14 0 -23 9t-9 23z" />
<glyph unicode="&#xf161;" horiz-adv-x="1792" d="M34 108q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35zM896 -32q0 14 9 23t23 9h256q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-256q-14 0 -23 9 t-9 23v192zM896 288v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23zM896 800v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23zM896 1312v192q0 14 9 23t23 9h832q14 0 23 -9t9 -23 v-192q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23z" />
<glyph unicode="&#xf162;" d="M34 108q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35zM946 261q0 105 72 178t181 73q123 0 205 -94.5t82 -252.5q0 -62 -13 -121.5t-41 -114 t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5zM976 1351l192 185h123v-654h165v-114h-469v114h167v432q0 7 0.5 19t0.5 17 v16h-2l-7 -12q-8 -13 -26 -31l-62 -58zM1085 261q0 -57 36.5 -95t104.5 -38q50 0 85 27t35 68q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94z" />
<glyph unicode="&#xf163;" d="M34 108q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35zM946 1285q0 105 72 178t181 73q123 0 205 -94.5t82 -252.5q0 -62 -13 -121.5t-41 -114 t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5zM976 327l192 185h123v-654h165v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16 h-2l-7 -12q-8 -13 -26 -31l-62 -58zM1085 1285q0 -57 36.5 -95t104.5 -38q50 0 85 27t35 68q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94z" />
<glyph unicode="&#xf164;" horiz-adv-x="1664" d="M0 64v640q0 26 19 45t45 19h288q26 0 45 -19t19 -45v-640q0 -26 -19 -45t-45 -19h-288q-26 0 -45 19t-19 45zM128 192q0 -27 18.5 -45.5t45.5 -18.5q26 0 45 18.5t19 45.5q0 26 -19 45t-45 19q-27 0 -45.5 -19t-18.5 -45zM480 64v641q0 25 18 43.5t43 20.5q24 2 76 59 t101 121q68 87 101 120q18 18 31 48t17.5 48.5t13.5 60.5q7 39 12.5 61t19.5 52t34 50q19 19 45 19q46 0 82.5 -10.5t60 -26t40 -40.5t24 -45t12 -50t5 -45t0.5 -39q0 -38 -9.5 -76t-19 -60t-27.5 -56q-3 -6 -10 -18t-11 -22t-8 -24h277q78 0 135 -57t57 -135 q0 -86 -55 -149q15 -44 15 -76q3 -76 -43 -137q17 -56 0 -117q-15 -57 -54 -94q9 -112 -49 -181q-64 -76 -197 -78h-36h-76h-17q-66 0 -144 15.5t-121.5 29t-120.5 39.5q-123 43 -158 44q-26 1 -45 19.5t-19 44.5z" />
<glyph unicode="&#xf165;" horiz-adv-x="1664" d="M0 448q0 -26 19 -45t45 -19h288q26 0 45 19t19 45v640q0 26 -19 45t-45 19h-288q-26 0 -45 -19t-19 -45v-640zM128 960q0 27 18.5 45.5t45.5 18.5q26 0 45 -18.5t19 -45.5q0 -26 -19 -45t-45 -19q-27 0 -45.5 19t-18.5 45zM480 447v641q0 26 19 44.5t45 19.5q35 1 158 44 q77 26 120.5 39.5t121.5 29t144 15.5h17h76h36q133 -2 197 -78q58 -69 49 -181q39 -37 54 -94q17 -61 0 -117q46 -61 43 -137q0 -32 -15 -76q55 -61 55 -149q-1 -78 -57.5 -135t-134.5 -57h-277q4 -14 8 -24t11 -22t10 -18q18 -37 27 -57t19 -58.5t10 -76.5q0 -24 -0.5 -39 t-5 -45t-12 -50t-24 -45t-40 -40.5t-60 -26t-82.5 -10.5q-26 0 -45 19q-20 20 -34 50t-19.5 52t-12.5 61q-9 42 -13.5 60.5t-17.5 48.5t-31 48q-33 33 -101 120q-49 64 -101 121t-76 59q-25 2 -43 20.5t-18 43.5z" />
<glyph unicode="&#xf166;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM218 366q0 -176 20 -260q10 -43 42.5 -73t75.5 -35q137 -15 412 -15t412 15q43 5 75.5 35t42.5 73 q20 84 20 260q0 177 -19 260q-10 44 -43 73.5t-76 34.5q-136 15 -412 15q-275 0 -411 -15q-44 -5 -76.5 -34.5t-42.5 -73.5q-20 -87 -20 -260zM300 551v70h232v-70h-80v-423h-74v423h-78zM396 1313l24 -69t23 -69q35 -103 46 -158v-201h74v201l90 296h-75l-51 -195l-53 195 h-78zM542 205v290h66v-270q0 -24 1 -26q1 -15 15 -15q20 0 42 31v280h67v-367h-67v40q-39 -45 -76 -45q-33 0 -42 28q-6 16 -6 54zM654 936q0 -58 21 -87q27 -38 78 -38q49 0 78 38q21 27 21 87v130q0 58 -21 87q-29 38 -78 38q-51 0 -78 -38q-21 -29 -21 -87v-130zM721 923 v156q0 52 32 52t32 -52v-156q0 -51 -32 -51t-32 51zM790 128v493h67v-161q32 40 68 40q41 0 53 -42q7 -21 7 -74v-146q0 -52 -7 -73q-12 -42 -53 -42q-35 0 -68 41v-36h-67zM857 200q16 -16 33 -16q29 0 29 49v157q0 50 -29 50q-17 0 -33 -16v-224zM907 893q0 -37 6 -55 q11 -27 43 -27q36 0 77 45v-40h67v370h-67v-283q-22 -31 -42 -31q-15 0 -16 16q-1 2 -1 26v272h-67v-293zM1037 247v129q0 59 20 86q29 38 80 38t78 -38q21 -28 21 -86v-76h-133v-65q0 -51 34 -51q24 0 30 26q0 1 0.5 7t0.5 16.5v21.5h68v-9q0 -29 -2 -43q-3 -22 -15 -40 q-27 -40 -80 -40q-52 0 -81 38q-21 27 -21 86zM1103 355h66v34q0 51 -33 51t-33 -51v-34z" />
<glyph unicode="&#xf167;" d="M27 260q0 234 26 350q14 59 58 99t103 47q183 20 554 20t555 -20q58 -7 102.5 -47t57.5 -99q26 -112 26 -350q0 -234 -26 -350q-14 -59 -58 -99t-102 -46q-184 -21 -555 -21t-555 21q-58 6 -102.5 46t-57.5 99q-26 112 -26 350zM138 509h105v-569h100v569h107v94h-312 v-94zM266 1536h106l71 -263l68 263h102l-121 -399v-271h-100v271q-14 74 -61 212q-37 103 -65 187zM463 43q0 -49 8 -73q12 -37 58 -37q48 0 102 61v-54h89v494h-89v-378q-30 -42 -57 -42q-18 0 -21 21q-1 3 -1 35v364h-89v-391zM614 1028v175q0 80 28 117q38 51 105 51 q69 0 106 -51q28 -37 28 -117v-175q0 -81 -28 -118q-37 -51 -106 -51q-67 0 -105 51q-28 38 -28 118zM704 1011q0 -70 43 -70t43 70v210q0 69 -43 69t-43 -69v-210zM798 -60h89v48q45 -55 93 -55q54 0 71 55q9 27 9 100v197q0 73 -9 99q-17 56 -71 56q-50 0 -93 -54v217h-89 v-663zM887 36v301q22 22 45 22q39 0 39 -67v-211q0 -67 -39 -67q-23 0 -45 22zM955 971v394h91v-367q0 -33 1 -35q3 -22 21 -22q27 0 57 43v381h91v-499h-91v55q-53 -62 -103 -62q-46 0 -59 37q-8 24 -8 75zM1130 100q0 -79 29 -116q39 -51 108 -51q72 0 108 53q18 27 21 54 q2 9 2 58v13h-91q0 -51 -2 -61q-7 -36 -40 -36q-46 0 -46 69v87h179v103q0 79 -27 116q-39 51 -106 51q-68 0 -107 -51q-28 -37 -28 -116v-173zM1219 245v46q0 68 45 68t45 -68v-46h-90z" />
<glyph unicode="&#xf168;" horiz-adv-x="1408" d="M5 384q-10 17 0 36l253 448q1 0 0 1l-161 279q-12 22 -1 37q9 15 32 15h239q40 0 66 -45l164 -286q-10 -18 -257 -456q-27 -46 -65 -46h-239q-21 0 -31 17zM536 539q18 32 531 942q25 45 64 45h241q22 0 31 -15q11 -16 0 -37l-528 -934v-1l336 -615q11 -20 1 -37 q-10 -15 -32 -15h-239q-42 0 -66 45z" />
<glyph unicode="&#xf169;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM227 396q8 -13 24 -13h185q31 0 50 36l199 352q0 1 -126 222q-21 34 -52 34h-184q-18 0 -26 -11q-7 -12 1 -29 l125 -216v-1l-196 -346q-9 -14 0 -28zM638 516q1 -2 262 -481q20 -35 52 -35h184q18 0 25 12q8 13 -1 28l-260 476v1l409 723q8 16 0 28q-7 12 -24 12h-187q-30 0 -49 -35z" />
<glyph unicode="&#xf16a;" horiz-adv-x="1792" d="M0 640q0 96 1 150t8.5 136.5t22.5 147.5q16 73 69 123t124 58q222 25 671 25t671 -25q71 -8 124.5 -58t69.5 -123q14 -65 21.5 -147.5t8.5 -136.5t1 -150t-1 -150t-8.5 -136.5t-22.5 -147.5q-16 -73 -69 -123t-124 -58q-222 -25 -671 -25t-671 25q-71 8 -124.5 58 t-69.5 123q-14 65 -21.5 147.5t-8.5 136.5t-1 150zM640 320q0 -38 33 -56q16 -8 31 -8q20 0 34 10l512 320q30 17 30 54t-30 54l-512 320q-31 20 -65 2q-33 -18 -33 -56v-640z" />
<glyph unicode="&#xf16b;" horiz-adv-x="1792" d="M64 558l338 271l494 -305l-342 -285zM64 1099l490 319l342 -285l-494 -304zM407 166v108l147 -96l342 284v2l1 -1l1 1v-2l343 -284l147 96v-108l-490 -293v-1l-1 1l-1 -1v1zM896 524l494 305l338 -271l-489 -319zM896 1133l343 285l489 -319l-338 -270z" />
<glyph unicode="&#xf16c;" horiz-adv-x="1408" d="M0 -255v736h121v-618h928v618h120v-701l-1 -35v-1h-1132l-35 1h-1zM221 -17v151l707 1v-151zM227 243l14 150l704 -65l-13 -150zM270 563l39 146l683 -183l-39 -146zM395 928l77 130l609 -360l-77 -130zM707 1303l125 86l398 -585l-124 -85zM1136 1510l149 26l121 -697 l-149 -26z" />
<glyph unicode="&#xf16d;" d="M0 69v1142q0 81 58 139t139 58h1142q81 0 139 -58t58 -139v-1142q0 -81 -58 -139t-139 -58h-1142q-81 0 -139 58t-58 139zM171 110q0 -26 17.5 -43.5t43.5 -17.5h1069q25 0 43 17.5t18 43.5v648h-135q20 -63 20 -131q0 -126 -64 -232.5t-174 -168.5t-240 -62 q-197 0 -337 135.5t-140 327.5q0 68 20 131h-141v-648zM461 643q0 -124 90.5 -211.5t217.5 -87.5q128 0 218.5 87.5t90.5 211.5t-90.5 211.5t-218.5 87.5q-127 0 -217.5 -87.5t-90.5 -211.5zM1050 1003q0 -29 20 -49t49 -20h174q29 0 49 20t20 49v165q0 28 -20 48.5 t-49 20.5h-174q-29 0 -49 -20.5t-20 -48.5v-165z" />
<glyph unicode="&#xf16e;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM274 640q0 -88 62 -150t150 -62t150 62t62 150t-62 150t-150 62t-150 -62t-62 -150zM838 640q0 -88 62 -150 t150 -62t150 62t62 150t-62 150t-150 62t-150 -62t-62 -150z" />
<glyph unicode="&#xf170;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM309 384h94l104 160h522l104 -160h94l-459 691zM567 608l201 306l201 -306h-402z" />
<glyph unicode="&#xf171;" horiz-adv-x="1408" d="M0 1222q3 26 17.5 48.5t31.5 37.5t45 30t46 22.5t48 18.5q125 46 313 64q379 37 676 -50q155 -46 215 -122q16 -20 16.5 -51t-5.5 -54q-26 -167 -111 -655q-5 -30 -27 -56t-43.5 -40t-54.5 -31q-252 -126 -610 -88q-248 27 -394 139q-15 12 -25.5 26.5t-17 35t-9 34 t-6 39.5t-5.5 35q-9 50 -26.5 150t-28 161.5t-23.5 147.5t-22 158zM173 285l6 16l18 9q223 -148 506.5 -148t507.5 148q21 -6 24 -23t-5 -45t-8 -37q-8 -26 -15.5 -76.5t-14 -84t-28.5 -70t-58 -56.5q-86 -48 -189.5 -71.5t-202 -22t-201.5 18.5q-46 8 -81.5 18t-76.5 27 t-73 43.5t-52 61.5q-25 96 -57 292zM243 1240q30 -28 76 -45.5t73.5 -22t87.5 -11.5q228 -29 448 -1q63 8 89.5 12t72.5 21.5t75 46.5q-20 27 -56 44.5t-58 22t-71 12.5q-291 47 -566 -2q-43 -7 -66 -12t-55 -22t-50 -43zM481 657q4 -91 77.5 -155t165.5 -56q91 8 152 84 t50 168q-14 107 -113 164t-197 13q-63 -28 -100.5 -88.5t-34.5 -129.5zM599 710q14 41 52 58q36 18 72.5 12t64 -35.5t27.5 -67.5q8 -63 -50.5 -101t-111.5 -6q-39 17 -53.5 58t-0.5 82z" />
<glyph unicode="&#xf172;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM260 1060q8 -68 19 -138t29 -171t24 -137q1 -5 5 -31t7 -36t12 -27t22 -28q105 -80 284 -100q259 -28 440 63 q24 13 39.5 23t31 29t19.5 40q48 267 80 473q9 53 -8 75q-43 55 -155 88q-216 63 -487 36q-132 -12 -226 -46q-38 -15 -59.5 -25t-47 -34t-29.5 -54zM385 384q26 -154 41 -210q47 -81 204 -108q249 -46 428 53q34 19 49 51.5t22.5 85.5t12.5 71q0 7 5.5 26.5t3 32 t-17.5 16.5q-161 -106 -365 -106t-366 106l-12 -6zM436 1073q13 19 36 31t40 15.5t47 8.5q198 35 408 1q33 -5 51 -8.5t43 -16t39 -31.5q-20 -21 -53.5 -34t-53 -16t-63.5 -8q-155 -20 -324 0q-44 6 -63 9.5t-52.5 16t-54.5 32.5zM607 653q-2 49 25.5 93t72.5 64 q70 31 141.5 -10t81.5 -118q8 -66 -36 -121t-110 -61t-119 40t-56 113zM687.5 660.5q0.5 -52.5 43.5 -70.5q39 -23 81 4t36 72q0 43 -41 66t-77 1q-43 -20 -42.5 -72.5z" />
<glyph unicode="&#xf173;" horiz-adv-x="1024" d="M78 779v217q91 30 155 84q64 55 103 132q39 78 54 196h219v-388h364v-241h-364v-394q0 -136 14 -172q13 -37 52 -60q50 -31 117 -31q117 0 232 76v-242q-102 -48 -178 -65q-77 -19 -173 -19q-105 0 -186 27q-78 25 -138 75q-58 51 -79 105q-22 54 -22 161v539h-170z" />
<glyph unicode="&#xf174;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM413 744h127v-404q0 -78 17 -121q17 -42 59 -78q43 -37 104 -57q62 -20 140 -20q67 0 129 14q57 13 134 49v181 q-88 -56 -174 -56q-51 0 -88 23q-29 17 -39 45q-11 30 -11 129v295h274v181h-274v291h-164q-11 -90 -40 -147t-78 -99q-48 -40 -116 -63v-163z" />
<glyph unicode="&#xf175;" horiz-adv-x="768" d="M3 237q9 19 29 19h224v1248q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1248h224q21 0 29 -19t-5 -35l-350 -384q-10 -10 -23 -10q-14 0 -24 10l-355 384q-13 16 -5 35z" />
<glyph unicode="&#xf176;" horiz-adv-x="768" d="M3 1043q-8 19 5 35l350 384q10 10 23 10q14 0 24 -10l355 -384q13 -16 5 -35q-9 -19 -29 -19h-224v-1248q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1248h-224q-21 0 -29 19z" />
<glyph unicode="&#xf177;" horiz-adv-x="1792" d="M64 637q0 14 10 24l384 354q16 14 35 6q19 -9 19 -29v-224h1248q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-1248v-224q0 -21 -19 -29t-35 5l-384 350q-10 10 -10 23z" />
<glyph unicode="&#xf178;" horiz-adv-x="1792" d="M0 544v192q0 14 9 23t23 9h1248v224q0 21 19 29t35 -5l384 -350q10 -10 10 -23q0 -14 -10 -24l-384 -354q-16 -14 -35 -6q-19 9 -19 29v224h-1248q-14 0 -23 9t-9 23z" />
<glyph unicode="&#xf179;" horiz-adv-x="1408" d="M0 634q0 228 113 374q112 144 284 144q72 0 177 -30q104 -30 138 -30q45 0 143 34q102 34 173 34q119 0 213 -65q52 -36 104 -100q-79 -67 -114 -118q-65 -94 -65 -207q0 -124 69 -223t158 -126q-39 -125 -123 -250q-129 -196 -257 -196q-49 0 -140 32q-86 32 -151 32 q-61 0 -142 -33q-81 -34 -132 -34q-152 0 -301 259q-147 261 -147 503zM683 1131q3 149 78 257q74 107 250 148q1 -3 2.5 -11t2.5 -11q0 -4 0.5 -10t0.5 -10q0 -61 -29 -136q-30 -75 -93 -138q-54 -54 -108 -72q-37 -11 -104 -17z" />
<glyph unicode="&#xf17a;" horiz-adv-x="1664" d="M0 -27v557h682v-651zM0 614v565l682 94v-659h-682zM757 -131v661h907v-786zM757 614v669l907 125v-794h-907z" />
<glyph unicode="&#xf17b;" horiz-adv-x="1408" d="M0 337v430q0 42 30 72t73 30q42 0 72 -30t30 -72v-430q0 -43 -29.5 -73t-72.5 -30t-73 30t-30 73zM241 886q0 117 64 215.5t172 153.5l-71 131q-7 13 5 20q13 6 20 -6l72 -132q95 42 201 42t201 -42l72 132q7 12 20 6q12 -7 5 -20l-71 -131q107 -55 171 -153.5t64 -215.5 h-925zM245 184v666h918v-666q0 -46 -32 -78t-77 -32h-75v-227q0 -43 -30 -73t-73 -30t-73 30t-30 73v227h-138v-227q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73l-1 227h-74q-46 0 -78 32t-32 78zM455 1092q0 -16 11 -27.5t27 -11.5t27.5 11.5t11.5 27.5t-11.5 27.5 t-27.5 11.5t-27 -11.5t-11 -27.5zM876 1092q0 -16 11.5 -27.5t27.5 -11.5t27 11.5t11 27.5t-11 27.5t-27 11.5t-27.5 -11.5t-11.5 -27.5zM1203 337v430q0 43 30 72.5t72 29.5q43 0 73 -29.5t30 -72.5v-430q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73z" />
<glyph unicode="&#xf17c;" d="M11 -115q-10 23 7 66.5t18 54.5q1 16 -4 40t-10 42.5t-4.5 36.5t10.5 27q14 12 57 14t60 12q30 18 42 35t12 51q21 -73 -32 -106q-32 -20 -83 -15q-34 3 -43 -10q-13 -15 5 -57q2 -6 8 -18t8.5 -18t4.5 -17t1 -22q0 -15 -17 -49t-14 -48q3 -17 37 -26q20 -6 84.5 -18.5 t99.5 -20.5q24 -6 74 -22t82.5 -23t55.5 -4q43 6 64.5 28t23 48t-7.5 58.5t-19 52t-20 36.5q-121 190 -169 242q-68 74 -113 40q-11 -9 -15 15q-3 16 -2 38q1 29 10 52t24 47t22 42q8 21 26.5 72t29.5 78t30 61t39 54q110 143 124 195q-12 112 -16 310q-2 90 24 151.5 t106 104.5q39 21 104 21q53 1 106 -13.5t89 -41.5q57 -42 91.5 -121.5t29.5 -147.5q-5 -95 30 -214q34 -113 133 -218q55 -59 99.5 -163t59.5 -191q8 -49 5 -84.5t-12 -55.5t-20 -22q-10 -2 -23.5 -19t-27 -35.5t-40.5 -33.5t-61 -14q-18 1 -31.5 5t-22.5 13.5t-13.5 15.5 t-11.5 20.5t-9 19.5q-22 37 -41 30t-28 -49t7 -97q20 -70 1 -195q-10 -65 18 -100.5t73 -33t85 35.5q59 49 89.5 66.5t103.5 42.5q53 18 77 36.5t18.5 34.5t-25 28.5t-51.5 23.5q-33 11 -49.5 48t-15 72.5t15.5 47.5q1 -31 8 -56.5t14.5 -40.5t20.5 -28.5t21 -19t21.5 -13 t16.5 -9.5q20 -12 31 -24.5t12 -24t-2.5 -22.5t-15.5 -22t-23.5 -19.5t-30 -18.5t-31.5 -16.5t-32 -15.5t-27 -13q-38 -19 -85.5 -56t-75.5 -64q-17 -16 -68 -19.5t-89 14.5q-18 9 -29.5 23.5t-16.5 25.5t-22 19.5t-47 9.5q-44 1 -130 1q-19 0 -57 -1.5t-58 -2.5 q-44 -1 -79.5 -15t-53.5 -30t-43.5 -28.5t-53.5 -11.5q-29 1 -111 31t-146 43q-19 4 -51 9.5t-50 9t-39.5 9.5t-33.5 14.5t-17 19.5zM321 495q-36 -65 10 -166q5 -12 25 -28t24 -20q20 -23 104 -90.5t93 -76.5q16 -15 17.5 -38t-14 -43t-45.5 -23q8 -15 29 -44.5t28 -54 t7 -70.5q46 24 7 92q-4 8 -10.5 16t-9.5 12t-2 6q3 5 13 9.5t20 -2.5q46 -52 166 -36q133 15 177 87q23 38 34 30q12 -6 10 -52q-1 -25 -23 -92q-9 -23 -6 -37.5t24 -15.5q3 19 14.5 77t13.5 90q2 21 -6.5 73.5t-7.5 97t23 70.5q15 18 51 18q1 37 34.5 53t72.5 10.5 t60 -22.5q0 18 -55 42q4 15 7.5 27.5t5 26t3 21.5t0.5 22.5t-1 19.5t-3.5 22t-4 20.5t-5 25t-5.5 26.5q-10 48 -47 103t-72 75q24 -20 57 -83q87 -162 54 -278q-11 -40 -50 -42q-31 -4 -38.5 18.5t-8 83.5t-11.5 107q-9 39 -19.5 69t-19.5 45.5t-15.5 24.5t-13 15t-7.5 7 q-14 62 -31 103t-29.5 56t-23.5 33t-15 40q-4 21 6 53.5t4.5 49.5t-44.5 25q-15 3 -44.5 18t-35.5 16q-8 1 -11 26t8 51t36 27q37 3 51 -30t4 -58q-11 -19 -2 -26.5t30 -0.5q13 4 13 36v37q-5 30 -13.5 50t-21 30.5t-23.5 15t-27 7.5q-107 -8 -89 -134q0 -15 -1 -15 q-9 9 -29.5 10.5t-33 -0.5t-15.5 5q1 57 -16 90t-45 34q-27 1 -41.5 -27.5t-16.5 -59.5q-1 -15 3.5 -37t13 -37.5t15.5 -13.5q10 3 16 14q4 9 -7 8q-7 0 -15.5 14.5t-9.5 33.5q-1 22 9 37t34 14q17 0 27 -21t9.5 -39t-1.5 -22q-22 -15 -31 -29q-8 -12 -27.5 -23.5 t-20.5 -12.5q-13 -14 -15.5 -27t7.5 -18q14 -8 25 -19.5t16 -19t18.5 -13t35.5 -6.5q47 -2 102 15q2 1 23 7t34.5 10.5t29.5 13t21 17.5q9 14 20 8q5 -3 6.5 -8.5t-3 -12t-16.5 -9.5q-20 -6 -56.5 -21.5t-45.5 -19.5q-44 -19 -70 -23q-25 -5 -79 2q-10 2 -9 -2t17 -19 q25 -23 67 -22q17 1 36 7t36 14t33.5 17.5t30 17t24.5 12t17.5 2.5t8.5 -11q0 -2 -1 -4.5t-4 -5t-6 -4.5t-8.5 -5t-9 -4.5t-10 -5t-9.5 -4.5q-28 -14 -67.5 -44t-66.5 -43t-49 -1q-21 11 -63 73q-22 31 -25 22q-1 -3 -1 -10q0 -25 -15 -56.5t-29.5 -55.5t-21 -58t11.5 -63 q-23 -6 -62.5 -90t-47.5 -141q-2 -18 -1.5 -69t-5.5 -59q-8 -24 -29 -3q-32 31 -36 94q-2 28 4 56q4 19 -1 18zM372 630q4 -1 12.5 7t12.5 18q1 3 2 7t2 6t1.5 4.5t0.5 4v3t-1 2.5t-3 2q-4 1 -6 -3t-4.5 -12.5t-5.5 -13.5t-10 -13q-7 -10 -1 -12zM603 1190q2 -5 5 -6 q10 0 7 -15q-3 -20 8 -20q3 0 3 3q3 17 -2.5 30t-11.5 15q-9 2 -9 -7zM634 1110q0 12 19 15h10q-11 -1 -15.5 -10.5t-8.5 -9.5q-5 -1 -5 5zM721 1122q24 11 32 -2q3 -6 -3 -9q-4 -1 -11.5 6.5t-17.5 4.5zM835 1196l4 -2q14 -4 18 -31q0 -3 8 2l2 3q0 11 -5 19.5t-11 12.5 t-9 3q-14 -1 -7 -7zM851 1381.5q-1 -2.5 3 -8.5q4 -3 8 0t11 9t15 9q1 1 9 1t15 2t9 7q0 2 -2.5 5t-9 7t-9.5 6q-15 15 -24 15q-9 -1 -11.5 -7.5t-1 -13t-0.5 -12.5q-1 -4 -6 -10.5t-6 -9zM981 1002q-14 -16 7 -43.5t39 -31.5q9 -1 14.5 8t3.5 20q-2 8 -6.5 11.5t-13 5 t-14.5 5.5q-5 3 -9.5 8t-7 8t-5.5 6.5t-4 4t-4 -1.5z" />
<glyph unicode="&#xf17d;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM112 640q0 -124 44 -236.5t124 -201.5q50 89 123.5 166.5t142.5 124.5t130.5 81t99.5 48l37 13 q4 1 13 3.5t13 4.5q-21 49 -53 111q-311 -93 -673 -93q-1 -7 -1 -21zM126 775q302 0 606 80q-120 213 -244 378q-138 -65 -234 -186t-128 -272zM350 134q184 -150 418 -150q132 0 256 52q-42 241 -140 498h-2l-2 -1q-16 -6 -43 -16.5t-101 -49t-137 -82t-131 -114.5 t-103 -148zM609 1276q1 1 2 1q-1 0 -2 -1zM613 1277q131 -170 246 -382q69 26 130 60.5t96.5 61.5t65.5 57t37.5 40.5l12.5 17.5q-185 164 -433 164q-76 0 -155 -19zM909 797q25 -53 44 -95q2 -6 6.5 -17.5t7.5 -16.5q36 5 74.5 7t73.5 2t69 -1.5t64 -4t56.5 -5.5t48 -6.5 t36.5 -6t25 -4.5l10 -2q-3 232 -149 410l-1 -1q-9 -12 -19 -24.5t-43.5 -44.5t-71 -60.5t-100 -65t-131.5 -64.5zM1007 565q87 -239 128 -469q111 75 185 189.5t96 250.5q-210 60 -409 29z" />
<glyph unicode="&#xf17e;" d="M0 1024q0 159 112.5 271.5t271.5 112.5q130 0 234 -80q77 16 150 16q143 0 273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -73 -16 -150q80 -104 80 -234q0 -159 -112.5 -271.5t-271.5 -112.5q-130 0 -234 80q-77 -16 -150 -16q-143 0 -273.5 55.5t-225 150t-150 225 t-55.5 273.5q0 73 16 150q-80 104 -80 234zM376 399q0 -92 122 -157.5t291 -65.5q73 0 140 18.5t122.5 53.5t88.5 93.5t33 131.5q0 50 -19.5 91.5t-48.5 68.5t-73 49t-82.5 34t-87.5 23l-104 24q-30 7 -44 10.5t-35 11.5t-30 16t-16.5 21t-7.5 30q0 77 144 77q43 0 77 -12 t54 -28.5t38 -33.5t40 -29t48 -12q47 0 75.5 32t28.5 77q0 55 -56 99.5t-142 67.5t-182 23q-68 0 -132 -15.5t-119.5 -47t-89 -87t-33.5 -128.5q0 -61 19 -106.5t56 -75.5t80 -48.5t103 -32.5l146 -36q90 -22 112 -36q32 -20 32 -60q0 -39 -40 -64.5t-105 -25.5 q-51 0 -91.5 16t-65 38.5t-45.5 45t-46 38.5t-54 16q-50 0 -75.5 -30t-25.5 -75z" />
<glyph unicode="&#xf180;" horiz-adv-x="1664" d="M0 640q0 75 53 128l587 587q53 53 128 53t128 -53l265 -265l-398 -399l-188 188q-42 42 -99 42q-59 0 -100 -41l-120 -121q-42 -40 -42 -99q0 -58 42 -100l406 -408q30 -28 67 -37l6 -4h28q60 0 99 41l619 619l2 -3q53 -53 53 -128t-53 -128l-587 -587 q-52 -53 -127.5 -53t-128.5 53l-587 587q-53 53 -53 128zM302 660q0 21 14 35l121 120q13 15 35 15t36 -15l252 -252l574 575q15 15 36 15t36 -15l120 -120q14 -15 14 -36t-14 -36l-730 -730q-17 -15 -37 -15q-4 0 -6 1q-18 2 -30 14l-407 408q-14 15 -14 36z" />
<glyph unicode="&#xf181;" d="M0 -64v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45zM160 192q0 -14 9 -23t23 -9h480q14 0 23 9t9 23v1024q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-1024zM832 576q0 -14 9 -23t23 -9h480q14 0 23 9t9 23 v640q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-640z" />
<glyph unicode="&#xf182;" horiz-adv-x="1280" d="M0 480q0 29 16 53l256 384q73 107 176 107h384q103 0 176 -107l256 -384q16 -24 16 -53q0 -40 -28 -68t-68 -28q-51 0 -80 43l-227 341h-45v-132l247 -411q9 -15 9 -33q0 -26 -19 -45t-45 -19h-192v-272q0 -46 -33 -79t-79 -33h-160q-46 0 -79 33t-33 79v272h-192 q-26 0 -45 19t-19 45q0 18 9 33l247 411v132h-45l-227 -341q-29 -43 -80 -43q-40 0 -68 28t-28 68zM416 1280q0 93 65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5t-65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5z" />
<glyph unicode="&#xf183;" horiz-adv-x="1024" d="M0 416v416q0 80 56 136t136 56h640q80 0 136 -56t56 -136v-416q0 -40 -28 -68t-68 -28t-68 28t-28 68v352h-64v-912q0 -46 -33 -79t-79 -33t-79 33t-33 79v464h-64v-464q0 -46 -33 -79t-79 -33t-79 33t-33 79v912h-64v-352q0 -40 -28 -68t-68 -28t-68 28t-28 68z M288 1280q0 93 65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5t-65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5z" />
<glyph unicode="&#xf184;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM399.5 766q8.5 -37 24.5 -59l349 -473l350 473q16 22 24.5 59t-6 85t-61.5 79q-40 26 -83 25.5 t-73.5 -17.5t-54.5 -45q-36 -40 -96 -40q-59 0 -95 40q-24 28 -54.5 45t-73.5 17.5t-84 -25.5q-46 -31 -60.5 -79t-6 -85z" />
<glyph unicode="&#xf185;" horiz-adv-x="1792" d="M44 363q-5 17 4 29l180 248l-180 248q-9 13 -4 29q4 15 20 20l292 96v306q0 16 13 26q15 10 29 4l292 -94l180 248q9 12 26 12t26 -12l180 -248l292 94q14 6 29 -4q13 -10 13 -26v-306l292 -96q16 -5 20 -20q5 -16 -4 -29l-180 -248l180 -248q9 -12 4 -29q-4 -15 -20 -20 l-292 -96v-306q0 -16 -13 -26q-15 -10 -29 -4l-292 94l-180 -248q-10 -13 -26 -13t-26 13l-180 248l-292 -94q-14 -6 -29 4q-13 10 -13 26v306l-292 96q-16 5 -20 20zM320 640q0 -117 45.5 -223.5t123 -184t184 -123t223.5 -45.5t223.5 45.5t184 123t123 184t45.5 223.5 t-45.5 223.5t-123 184t-184 123t-223.5 45.5t-223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5z" />
<glyph unicode="&#xf186;" d="M0 640q0 153 57.5 292.5t156 241.5t235.5 164.5t290 68.5q44 2 61 -39q18 -41 -15 -72q-86 -78 -131.5 -181.5t-45.5 -218.5q0 -148 73 -273t198 -198t273 -73q118 0 228 51q41 18 72 -13q14 -14 17.5 -34t-4.5 -38q-94 -203 -283.5 -324.5t-413.5 -121.5q-156 0 -298 61 t-245 164t-164 245t-61 298zM128 640q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51q144 0 273.5 61.5t220.5 171.5q-54 -9 -110 -9q-182 0 -337 90t-245 245t-90 337q0 192 104 357q-201 -60 -328.5 -229t-127.5 -384z" />
<glyph unicode="&#xf187;" horiz-adv-x="1792" d="M64 1088v256q0 26 19 45t45 19h1536q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1536q-26 0 -45 19t-19 45zM128 -64v960q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-960q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45zM704 704q0 -26 19 -45t45 -19h256 q26 0 45 19t19 45t-19 45t-45 19h-256q-26 0 -45 -19t-19 -45z" />
<glyph unicode="&#xf188;" horiz-adv-x="1664" d="M32 576q0 26 19 45t45 19h224v294l-173 173q-19 19 -19 45t19 45t45 19t45 -19l173 -173h844l173 173q19 19 45 19t45 -19t19 -45t-19 -45l-173 -173v-294h224q26 0 45 -19t19 -45t-19 -45t-45 -19h-224q0 -171 -67 -290l208 -209q19 -19 19 -45t-19 -45q-18 -19 -45 -19 t-45 19l-198 197q-5 -5 -15 -13t-42 -28.5t-65 -36.5t-82 -29t-97 -13v896h-128v-896q-51 0 -101.5 13.5t-87 33t-66 39t-43.5 32.5l-15 14l-183 -207q-20 -21 -48 -21q-24 0 -43 16q-19 18 -20.5 44.5t15.5 46.5l202 227q-58 114 -58 274h-224q-26 0 -45 19t-19 45z M512 1152q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5h-640z" />
<glyph unicode="&#xf189;" horiz-adv-x="1920" d="M-1 1004q0 11 3 16l4 6q15 19 57 19l274 2q12 -2 23 -6.5t16 -8.5l5 -3q16 -11 24 -32q20 -50 46 -103.5t41 -81.5l16 -29q29 -60 56 -104t48.5 -68.5t41.5 -38.5t34 -14t27 5q2 1 5 5t12 22t13.5 47t9.5 81t0 125q-2 40 -9 73t-14 46l-6 12q-25 34 -85 43q-13 2 5 24 q17 19 38 30q53 26 239 24q82 -1 135 -13q20 -5 33.5 -13.5t20.5 -24t10.5 -32t3.5 -45.5t-1 -55t-2.5 -70.5t-1.5 -82.5q0 -11 -1 -42t-0.5 -48t3.5 -40.5t11.5 -39t22.5 -24.5q8 -2 17 -4t26 11t38 34.5t52 67t68 107.5q60 104 107 225q4 10 10 17.5t11 10.5l4 3l5 2.5 t13 3t20 0.5l288 2q39 5 64 -2.5t31 -16.5l6 -10q23 -64 -150 -294q-24 -32 -65 -85q-78 -100 -90 -131q-17 -41 14 -81q17 -21 81 -82h1l1 -1l1 -1l2 -2q141 -131 191 -221q3 -5 6.5 -12.5t7 -26.5t-0.5 -34t-25 -27.5t-59 -12.5l-256 -4q-24 -5 -56 5t-52 22l-20 12 q-30 21 -70 64t-68.5 77.5t-61 58t-56.5 15.5q-3 -1 -8 -3.5t-17 -14.5t-21.5 -29.5t-17 -52t-6.5 -77.5q0 -15 -3.5 -27.5t-7.5 -18.5l-4 -5q-18 -19 -53 -22h-115q-71 -4 -146 16.5t-131.5 53t-103 66t-70.5 57.5l-25 24q-10 10 -27.5 30t-71.5 91t-106 151t-122.5 211 t-130.5 272q-6 16 -6 27z" />
<glyph unicode="&#xf18a;" horiz-adv-x="1792" d="M0 391q0 115 69.5 245t197.5 258q169 169 341.5 236t246.5 -7q65 -64 20 -209q-4 -14 -1 -20t10 -7t14.5 0.5t13.5 3.5l6 2q139 59 246 59t153 -61q45 -63 0 -178q-2 -13 -4.5 -20t4.5 -12.5t12 -7.5t17 -6q57 -18 103 -47t80 -81.5t34 -116.5q0 -68 -37 -139.5 t-109 -137t-168.5 -117.5t-226 -83t-270.5 -31t-275 33.5t-240.5 93t-171.5 151t-65 199.5zM181 320q9 -96 89 -170t208.5 -109t274.5 -21q223 23 369.5 141.5t132.5 264.5q-9 96 -89 170t-208.5 109t-274.5 21q-223 -23 -369.5 -141.5t-132.5 -264.5zM413.5 230.5 q-40.5 92.5 6.5 187.5q47 93 151.5 139t210.5 19q111 -29 158.5 -119.5t2.5 -190.5q-45 -102 -158 -150t-224 -12q-107 34 -147.5 126.5zM495 257.5q9 -34.5 43 -50.5t74.5 -2.5t62.5 47.5q21 34 11 69t-45 50q-34 14 -73 1t-60 -46q-22 -34 -13 -68.5zM705 399 q-17 -31 13 -45q14 -5 29 0.5t22 18.5q8 13 3.5 26.5t-17.5 18.5q-14 5 -28.5 -0.5t-21.5 -18.5zM1165 1274q-6 28 9.5 51.5t43.5 29.5q123 26 244 -11.5t208 -134.5q87 -96 112.5 -222.5t-13.5 -241.5q-9 -27 -34 -40t-52 -4t-40 34t-5 52q28 82 10 172t-80 158 q-62 69 -148 95.5t-173 8.5q-28 -6 -52 9.5t-30 43.5zM1224 1047q-5 24 8 44.5t37 25.5q60 13 119 -5.5t101 -65.5t54.5 -108.5t-6.5 -117.5q-8 -23 -29.5 -34t-44.5 -4q-23 8 -34 29.5t-4 44.5q20 63 -24 111t-107 35q-24 -5 -45 8t-25 37z" />
<glyph unicode="&#xf18b;" d="M0 638q0 187 83.5 349.5t229.5 269.5t325 137v-485q0 -252 -126.5 -459.5t-330.5 -306.5q-181 215 -181 495zM398 -34q138 87 235.5 211t131.5 268q35 -144 132.5 -268t235.5 -211q-171 -94 -368 -94q-196 0 -367 94zM898 909v485q179 -30 325 -137t229.5 -269.5 t83.5 -349.5q0 -280 -181 -495q-204 99 -330.5 306.5t-126.5 459.5z" />
<glyph unicode="&#xf18c;" horiz-adv-x="1408" d="M0 -211q0 19 13 31.5t32 12.5q173 1 322.5 107.5t251.5 294.5q-36 -14 -72 -23t-83 -13t-91 2.5t-93 28.5t-92 59t-84.5 100t-74.5 146q114 47 214 57t167.5 -7.5t124.5 -56.5t88.5 -77t56.5 -82q53 131 79 291q-7 -1 -18 -2.5t-46.5 -2.5t-69.5 0.5t-81.5 10t-88.5 23 t-84 42.5t-75 65t-54.5 94.5t-28.5 127.5q70 28 133.5 36.5t112.5 -1t92 -30t73.5 -50t56 -61t42 -63t27.5 -56t16 -39.5l4 -16q12 122 12 195q-8 6 -21.5 16t-49 44.5t-63.5 71.5t-54 93t-33 112.5t12 127t70 138.5q73 -25 127.5 -61.5t84.5 -76.5t48 -85t20.5 -89 t-0.5 -85.5t-13 -76.5t-19 -62t-17 -42l-7 -15q1 -5 1 -50.5t-1 -71.5q3 7 10 18.5t30.5 43t50.5 58t71 55.5t91.5 44.5t112 14.5t132.5 -24q-2 -78 -21.5 -141.5t-50 -104.5t-69.5 -71.5t-81.5 -45.5t-84.5 -24t-80 -9.5t-67.5 1t-46.5 4.5l-17 3q-23 -147 -73 -283 q6 7 18 18.5t49.5 41t77.5 52.5t99.5 42t117.5 20t129 -23.5t137 -77.5q-32 -80 -76 -138t-91 -88.5t-99 -46.5t-101.5 -14.5t-96.5 8.5t-86.5 22t-69.5 27.5t-46 22.5l-17 10q-113 -228 -289.5 -359.5t-384.5 -132.5q-19 0 -32 13t-13 32z" />
<glyph unicode="&#xf18d;" horiz-adv-x="1280" d="M21 217v66h1238v-66q0 -85 -57.5 -144.5t-138.5 -59.5h-57l-260 -269v269h-529q-81 0 -138.5 59.5t-57.5 144.5zM21 354v255h1238v-255h-1238zM21 682v255h1238v-255h-1238zM21 1010v67q0 84 57.5 143.5t138.5 59.5h846q81 0 138.5 -59.5t57.5 -143.5v-67h-1238z" />
<glyph unicode="&#xf18e;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM384 544v192q0 13 9.5 22.5t22.5 9.5h352v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23t-9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192h-352q-13 0 -22.5 9.5t-9.5 22.5z" />
<glyph unicode="&#xf190;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM384 640q0 14 9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h352q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-192q0 -14 -9 -23t-23 -9q-12 0 -24 10l-319 319q-9 9 -9 23z" />
<glyph unicode="&#xf191;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 160q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5v960q0 13 -9.5 22.5t-22.5 9.5h-960 q-13 0 -22.5 -9.5t-9.5 -22.5v-960zM448 640q0 33 27 52l448 320q17 12 37 12q26 0 45 -19t19 -45v-640q0 -26 -19 -45t-45 -19q-20 0 -37 12l-448 320q-27 19 -27 52z" />
<glyph unicode="&#xf192;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM512 640q0 106 75 181t181 75t181 -75t75 -181t-75 -181t-181 -75t-181 75t-75 181z" />
<glyph unicode="&#xf193;" horiz-adv-x="1664" d="M0 320q0 181 104.5 330t274.5 211l17 -131q-122 -54 -195 -165.5t-73 -244.5q0 -185 131.5 -316.5t316.5 -131.5q126 0 232.5 65t165 175.5t49.5 236.5l102 -204q-58 -179 -210 -290t-339 -111q-156 0 -288.5 77.5t-210 210t-77.5 288.5zM416 1348q-2 16 6 42 q14 51 57 82.5t97 31.5q66 0 113 -47t47 -113q0 -69 -52 -117.5t-120 -41.5l37 -289h423v-128h-407l16 -128h455q40 0 57 -35l228 -455l198 99l58 -114l-256 -128q-13 -7 -29 -7q-40 0 -57 35l-239 477h-472q-24 0 -42.5 16.5t-21.5 40.5z" />
<glyph unicode="&#xf194;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM128 806q16 -8 25.5 -26t21.5 -20q21 -3 54.5 8.5t58 10.5t41.5 -30q11 -18 18.5 -38.5t15 -48t12.5 -40.5 q17 -46 53 -187q36 -146 57 -197q42 -99 103 -125q43 -12 85 -1.5t76 31.5q131 77 250 237q104 139 172.5 292.5t82.5 226.5q16 85 -21 132q-52 65 -187 45q-17 -3 -41 -12.5t-57.5 -30.5t-64.5 -48.5t-59.5 -70t-44.5 -91.5q80 7 113.5 -16t26.5 -99q-5 -52 -52 -143 q-43 -78 -71 -99q-44 -32 -87 14q-23 24 -37.5 64.5t-19 73t-10 84t-8.5 71.5q-23 129 -34 164q-12 37 -35.5 69t-50.5 40q-57 16 -127 -25q-54 -32 -136.5 -106t-122.5 -102v-7z" />
<glyph unicode="&#xf195;" horiz-adv-x="1152" d="M0 608v128q0 23 23 31l233 71v93l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v250q0 14 9 23t23 9h160q14 0 23 -9t9 -23v-181l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-93l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31 l-393 -121v-487q188 13 318 151t130 328q0 14 9 23t23 9h160q14 0 23 -9t9 -23q0 -191 -94.5 -353t-256.5 -256.5t-353 -94.5h-160q-14 0 -23 9t-9 23v611l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26z" />
<glyph unicode="&#xf196;" horiz-adv-x="1408" d="M0 288v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5zM128 288q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v832q0 66 -47 113t-113 47h-832q-66 0 -113 -47 t-47 -113v-832zM256 672v64q0 14 9 23t23 9h352v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-352h352q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-352v-352q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v352h-352q-14 0 -23 9t-9 23z" />
<glyph unicode="&#xf197;" horiz-adv-x="2176" d="M0 576q0 12 38.5 20.5t96.5 10.5q-7 25 -7 49q0 33 9.5 56.5t22.5 23.5h64v64h128q158 0 268 -64h1113q42 -7 106.5 -18t80.5 -14q89 -15 150 -40.5t83.5 -47.5t22.5 -40t-22.5 -40t-83.5 -47.5t-150 -40.5q-16 -3 -80.5 -14t-106.5 -18h-1113q-110 -64 -268 -64h-128v64 h-64q-13 0 -22.5 23.5t-9.5 56.5q0 24 7 49q-58 2 -96.5 10.5t-38.5 20.5zM323 336h29q157 0 273 64h1015q-217 -38 -456 -80q-57 0 -113 -24t-83 -48l-28 -24l-288 -288q-26 -26 -70.5 -45t-89.5 -19h-96zM323 816l93 464h96q46 0 90 -19t70 -45l288 -288q4 -4 11 -10.5 t30.5 -23t48.5 -29t61.5 -23t72.5 -10.5l456 -80h-1015q-116 64 -273 64h-29zM1739 484l81 -30q68 48 68 122t-68 122l-81 -30q53 -36 53 -92t-53 -92z" />
<glyph unicode="&#xf198;" horiz-adv-x="1664" d="M0 796q0 47 27.5 85t71.5 53l157 53l-53 159q-8 24 -8 47q0 60 42 102.5t102 42.5q47 0 85 -27t53 -72l54 -160l310 105l-54 160q-8 24 -8 47q0 59 42.5 102t101.5 43q47 0 85.5 -27.5t53.5 -71.5l53 -161l162 55q21 6 43 6q60 0 102.5 -39.5t42.5 -98.5q0 -45 -30 -81.5 t-74 -51.5l-157 -54l105 -316l164 56q24 8 46 8q62 0 103.5 -40.5t41.5 -101.5q0 -97 -93 -130l-172 -59l56 -167q7 -21 7 -47q0 -59 -42 -102t-101 -43q-47 0 -85.5 27t-53.5 72l-55 165l-310 -106l55 -164q8 -24 8 -47q0 -59 -42 -102t-102 -43q-47 0 -85 27t-53 72 l-55 163l-153 -53q-29 -9 -50 -9q-61 0 -101.5 40t-40.5 101q0 47 27.5 85t71.5 53l156 53l-105 313l-156 -54q-26 -8 -48 -8q-60 0 -101 40.5t-41 100.5zM620 811l105 -313l310 105l-105 315z" />
<glyph unicode="&#xf199;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 352q0 -40 28 -68t68 -28h832q40 0 68 28t28 68v436q-31 -35 -64 -55q-34 -22 -132.5 -85t-151.5 -99 q-98 -69 -164 -69t-164 69q-46 32 -141.5 92.5t-142.5 92.5q-12 8 -33 27t-31 27v-436zM256 928q0 -37 30.5 -76.5t67.5 -64.5q47 -32 137.5 -89t129.5 -83q3 -2 17 -11.5t21 -14t21 -13t23.5 -13t21.5 -9.5t22.5 -7.5t20.5 -2.5t20.5 2.5t22.5 7.5t21.5 9.5t23.5 13t21 13 t21 14t17 11.5l267 174q35 23 66.5 62.5t31.5 73.5q0 41 -27.5 70t-68.5 29h-832q-40 0 -68 -28t-28 -68z" />
<glyph unicode="&#xf19a;" horiz-adv-x="1792" d="M0 640q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348zM41 640q0 -173 68 -331.5t182.5 -273t273 -182.5t331.5 -68t331.5 68t273 182.5t182.5 273t68 331.5 t-68 331.5t-182.5 273t-273 182.5t-331.5 68t-331.5 -68t-273 -182.5t-182.5 -273t-68 -331.5zM127 640q0 163 67 313l367 -1005q-196 95 -315 281t-119 411zM254 1062q105 160 274.5 253.5t367.5 93.5q147 0 280.5 -53t238.5 -149h-10q-55 0 -92 -40.5t-37 -95.5 q0 -12 2 -24t4 -21.5t8 -23t9 -21t12 -22.5t12.5 -21t14.5 -24t14 -23q63 -107 63 -212q0 -19 -2.5 -38.5t-10 -49.5t-11.5 -44t-17.5 -59t-17.5 -58l-76 -256l-278 826q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-75 1 -202 10q-12 1 -20.5 -5t-11.5 -15 t-1.5 -18.5t9 -16.5t19.5 -8l80 -8l120 -328l-168 -504l-280 832q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-7 0 -23 0.5t-26 0.5zM679 -97l230 670l237 -647q1 -6 5 -11q-126 -44 -255 -44q-112 0 -217 32zM1282 -24l235 678q59 169 59 276q0 42 -6 79 q95 -174 95 -369q0 -209 -104 -385.5t-279 -278.5z" />
<glyph unicode="&#xf19b;" horiz-adv-x="1792" d="M0 455q0 140 100.5 263.5t275 205.5t391.5 108v-172q-217 -38 -356.5 -150t-139.5 -255q0 -152 154.5 -267t388.5 -145v1360l272 133v-1536l-272 -128q-228 20 -414 102t-293 208.5t-107 272.5zM1134 860v172q277 -33 481 -157l140 79l37 -390l-525 114l147 83 q-119 70 -280 99z" />
<glyph unicode="&#xf19c;" horiz-adv-x="2048" d="M0 -128q0 26 20.5 45t48.5 19h1782q28 0 48.5 -19t20.5 -45v-128h-1920v128zM0 1024v128l960 384l960 -384v-128h-128q0 -26 -20.5 -45t-48.5 -19h-1526q-28 0 -48.5 19t-20.5 45h-128zM128 0v64q0 26 20.5 45t48.5 19h59v768h256v-768h128v768h256v-768h128v768h256 v-768h128v768h256v-768h59q28 0 48.5 -19t20.5 -45v-64h-1664z" />
<glyph unicode="&#xf19d;" horiz-adv-x="2304" d="M0 1024q0 23 22 31l1120 352q4 1 10 1t10 -1l1120 -352q22 -8 22 -31t-22 -31l-1120 -352q-4 -1 -10 -1t-10 1l-652 206q-43 -34 -71 -111.5t-34 -178.5q63 -36 63 -109q0 -69 -58 -107l58 -433q2 -14 -8 -25q-9 -11 -24 -11h-192q-15 0 -24 11q-10 11 -8 25l58 433 q-58 38 -58 107q0 73 65 111q11 207 98 330l-333 104q-22 8 -22 31zM512 384l18 316l574 -181q22 -7 48 -7t48 7l574 181l18 -316q4 -69 -82 -128t-235 -93.5t-323 -34.5t-323 34.5t-235 93.5t-82 128z" />
<glyph unicode="&#xf19e;" d="M109 1536q58 -15 108 -15q43 0 111 15q63 -111 133.5 -229.5t167 -276.5t138.5 -227q37 61 109.5 177.5t117.5 190t105 176t107 189.5q54 -14 107 -14q56 0 114 14q-28 -39 -60 -88.5t-49.5 -78.5t-56.5 -96t-49 -84q-146 -248 -353 -610l13 -707q-62 11 -105 11 q-41 0 -105 -11l13 707q-40 69 -168.5 295.5t-216.5 374.5t-181 287z" />
<glyph unicode="&#xf1a0;" horiz-adv-x="1280" d="M111 182q0 81 44.5 150t118.5 115q131 82 404 100q-32 41 -47.5 73.5t-15.5 73.5q0 40 21 85q-46 -4 -68 -4q-148 0 -249.5 96.5t-101.5 244.5q0 82 36 159t99 131q76 66 182 98t218 32h417l-137 -88h-132q75 -63 113 -133t38 -160q0 -72 -24.5 -129.5t-59.5 -93 t-69.5 -65t-59 -61.5t-24.5 -66q0 -36 32 -70.5t77 -68t90.5 -73.5t77.5 -104t32 -142q0 -91 -49 -173q-71 -122 -209.5 -179.5t-298.5 -57.5q-132 0 -246.5 41.5t-172.5 137.5q-36 59 -36 131zM297 228q0 -56 23.5 -102t61 -75.5t87 -50t100 -29t101.5 -8.5q58 0 111.5 13 t99 39t73 73t27.5 109q0 25 -7 49t-14.5 42t-27 41.5t-29.5 35t-38.5 34.5t-36.5 29t-41.5 30t-36.5 26q-16 2 -49 2q-53 0 -104.5 -7t-107 -25t-97 -46t-68.5 -74.5t-27 -105.5zM403 1222q0 -46 10 -97.5t31.5 -103t52 -92.5t75 -67t96.5 -26q37 0 77.5 16.5t65.5 43.5 q53 56 53 159q0 59 -17 125.5t-48 129t-84 103.5t-117 41q-42 0 -82.5 -19.5t-66.5 -52.5q-46 -59 -46 -160z" />
<glyph unicode="&#xf1a1;" horiz-adv-x="1984" d="M0 722q0 94 66 160t160 66q83 0 148 -55q248 158 592 164l134 423q4 14 17.5 21.5t28.5 4.5l347 -82q22 50 68.5 81t102.5 31q77 0 131.5 -54.5t54.5 -131.5t-54.5 -132t-131.5 -55q-76 0 -130.5 54t-55.5 131l-315 74l-116 -366q327 -14 560 -166q64 58 151 58 q94 0 160 -66t66 -160q0 -62 -31 -114t-83 -82q5 -33 5 -61q0 -121 -68.5 -230.5t-197.5 -193.5q-125 -82 -285.5 -125.5t-335.5 -43.5q-176 0 -336.5 43.5t-284.5 125.5q-129 84 -197.5 193t-68.5 231q0 29 5 66q-48 31 -77 81.5t-29 109.5zM77 722q0 -67 51 -111 q49 131 180 235q-36 25 -82 25q-62 0 -105.5 -43.5t-43.5 -105.5zM178 465q0 -101 59.5 -194t171.5 -166q116 -75 265.5 -115.5t313.5 -40.5t313.5 40.5t265.5 115.5q112 73 171.5 166t59.5 194t-59.5 193.5t-171.5 165.5q-116 75 -265.5 115.5t-313.5 40.5t-313.5 -40.5 t-265.5 -115.5q-112 -73 -171.5 -165.5t-59.5 -193.5zM555 572q0 57 41.5 98t97.5 41t96.5 -41t40.5 -98q0 -56 -40.5 -96t-96.5 -40q-57 0 -98 40t-41 96zM661 209.5q0 16.5 11 27.5t27 11t27 -11q77 -77 265 -77h2q188 0 265 77q11 11 27 11t27 -11t11 -27.5t-11 -27.5 q-99 -99 -319 -99h-2q-220 0 -319 99q-11 11 -11 27.5zM1153 572q0 57 41.5 98t97.5 41t96.5 -41t40.5 -98q0 -56 -40.5 -96t-96.5 -40q-57 0 -98 40t-41 96zM1555 1350q0 -45 32 -77t77 -32t77 32t32 77t-32 77t-77 32t-77 -32t-32 -77zM1672 843q131 -105 178 -238 q57 46 57 117q0 62 -43.5 105.5t-105.5 43.5q-49 0 -86 -28z" />
<glyph unicode="&#xf1a2;" d="M0 193v894q0 133 94 227t226 94h896q132 0 226 -94t94 -227v-894q0 -133 -94 -227t-226 -94h-896q-132 0 -226 94t-94 227zM155 709q0 -37 19.5 -67.5t52.5 -45.5q-7 -25 -7 -54q0 -98 74 -181.5t201.5 -132t278.5 -48.5q150 0 277.5 48.5t201.5 132t74 181.5q0 27 -6 54 q35 14 57 45.5t22 70.5q0 51 -36 87.5t-87 36.5q-60 0 -98 -48q-151 107 -375 115l83 265l206 -49q1 -50 36.5 -85t84.5 -35q50 0 86 35.5t36 85.5t-36 86t-86 36q-36 0 -66 -20.5t-45 -53.5l-227 54q-9 2 -17.5 -2.5t-11.5 -14.5l-95 -302q-224 -4 -381 -113q-36 43 -93 43 q-51 0 -87 -36.5t-36 -87.5zM493 613q0 37 26 63t63 26t63 -26t26 -63t-26 -64t-63 -27t-63 27t-26 64zM560 375q0 11 8 18q7 7 17.5 7t17.5 -7q49 -51 172 -51h1h1q122 0 173 51q7 7 17.5 7t17.5 -7t7 -18t-7 -18q-65 -64 -208 -64h-1h-1q-143 0 -207 64q-8 7 -8 18z M882 613q0 37 26 63t63 26t63 -26t26 -63t-26 -64t-63 -27t-63 27t-26 64zM1143 1120q0 30 21 51t50 21q30 0 51 -21t21 -51q0 -29 -21 -50t-51 -21q-29 0 -50 21t-21 50z" />
<glyph unicode="&#xf1a3;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM320 502q0 -82 57.5 -139t139.5 -57q81 0 138.5 56.5t57.5 136.5v280q0 19 13.5 33t33.5 14 q19 0 32.5 -14t13.5 -33v-54l60 -28l90 27v62q0 79 -58 135t-138 56t-138 -55.5t-58 -134.5v-283q0 -20 -14 -33.5t-33 -13.5t-32.5 13.5t-13.5 33.5v120h-151v-122zM806 500q0 -80 58 -137t139 -57t138.5 57t57.5 139v122h-150v-126q0 -20 -13.5 -33.5t-33.5 -13.5 q-19 0 -32.5 14t-13.5 33v123l-90 -26l-60 28v-123z" />
<glyph unicode="&#xf1a4;" horiz-adv-x="1920" d="M0 336v266h328v-262q0 -43 30 -72.5t72 -29.5t72 29.5t30 72.5v620q0 171 126.5 292t301.5 121q176 0 302 -122t126 -294v-136l-195 -58l-131 61v118q0 42 -30 72t-72 30t-72 -30t-30 -72v-612q0 -175 -126 -299t-303 -124q-178 0 -303.5 125.5t-125.5 303.5zM1062 332 v268l131 -61l195 58v-270q0 -42 30 -71.5t72 -29.5t72 29.5t30 71.5v275h328v-266q0 -178 -125.5 -303.5t-303.5 -125.5q-177 0 -303 124.5t-126 300.5z" />
<glyph unicode="&#xf1a5;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM64 640h704v-704h480q93 0 158.5 65.5t65.5 158.5v480h-704v704h-480q-93 0 -158.5 -65.5t-65.5 -158.5v-480z " />
<glyph unicode="&#xf1a6;" horiz-adv-x="2048" d="M0 271v697h328v286h204v-983h-532zM205 435h123v369h-123v-369zM614 271h205v697h-205v-697zM614 1050h205v204h-205v-204zM901 26v163h328v82h-328v697h533v-942h-533zM1106 435h123v369h-123v-369zM1516 26v163h327v82h-327v697h532v-942h-532zM1720 435h123v369h-123 v-369z" />
<glyph unicode="&#xf1a7;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM293 388l211 41v206q55 -19 116 -19q125 0 213.5 95t88.5 229t-88.5 229t-213.5 95q-74 0 -141 -36h-186v-840z M504 804v277q28 17 70 17q53 0 91 -45t38 -109t-38 -109.5t-91 -45.5q-43 0 -70 15zM636 -39l211 41v206q51 -19 117 -19q125 0 213 95t88 229t-88 229t-213 95q-20 0 -39 -3q-23 -78 -78 -136q-87 -95 -211 -101v-636zM847 377v277q28 17 70 17q53 0 91 -45.5t38 -109.5 t-38 -109t-91 -45q-43 0 -70 15z" />
<glyph unicode="&#xf1a8;" horiz-adv-x="2038" d="M41 455q0 15 8.5 26.5t22.5 14.5l486 106q-8 14 -8 25t5.5 17.5t16 11.5t20 7t23 4.5t18.5 4.5q4 1 15.5 7.5t17.5 6.5q15 0 28 -16t20 -33q163 37 172 37q17 0 29.5 -11t12.5 -28q0 -15 -8.5 -26t-23.5 -14l-182 -40l-1 -16q-1 -26 81.5 -117.5t104.5 -91.5q47 0 119 80 t72 129q0 36 -23.5 53t-51 18.5t-51 11.5t-23.5 34q0 16 10 34l-68 19q43 44 43 117q0 26 -5 58q82 16 144 16q44 0 71.5 -1.5t48.5 -8.5t31 -13.5t20.5 -24.5t15.5 -33.5t17 -47.5t24 -60l50 25q-3 -40 -23 -60t-42.5 -21t-40 -6.5t-16.5 -20.5l1 -21q75 3 143.5 -20.5 t118 -58.5t101 -94.5t84 -108t75.5 -120.5q33 -56 78.5 -109t75.5 -80.5t99 -88.5q-48 -30 -108.5 -57.5t-138.5 -59t-114 -47.5q-44 37 -74 115t-43.5 164.5t-33 180.5t-42.5 168.5t-72.5 123t-122.5 48.5l-10 -2l-6 -4q4 -5 13 -14q6 -5 28 -23.5t25.5 -22t19 -18 t18 -20.5t11.5 -21t10.5 -27.5t4.5 -31t4 -40.5l1 -33q1 -26 -2.5 -57.5t-7.5 -52t-12.5 -58.5t-11.5 -53q-35 1 -101 -9.5t-98 -10.5q-39 0 -72 10q-2 16 -2 47q0 74 3 96q2 13 31.5 41.5t57 59t26.5 51.5q-24 2 -43 -24q-36 -53 -111.5 -99.5t-136.5 -46.5q-25 0 -75.5 63 t-106.5 139.5t-84 96.5q-6 4 -27 30q-482 -112 -513 -112q-16 0 -28 11t-12 27zM764 676q10 1 32.5 7t34.5 6q19 0 35 -10l-96 -20zM822 568l48 12l109 -177l-73 -48zM859 884q16 30 36 46.5t54 29.5t65.5 36t46 36.5t50 55t43.5 50.5q12 -9 28 -31.5t32 -36.5t38 -13l12 1 v-76l22 -1q247 95 371 190q28 21 50 39t42.5 37.5t33 31t29.5 34t24 31t24.5 37t23 38t27 47.5t29.5 53l7 9q-2 -53 -43 -139q-79 -165 -205 -264t-306 -142q-14 -3 -42 -7.5t-50 -9.5t-39 -14q3 -19 24.5 -46t21.5 -34q0 -11 -26 -30q-5 5 -13.5 15.5t-12 14.5t-10.5 11.5 t-10 10.5l-8 8t-8.5 7.5t-8 5t-8.5 4.5q-7 3 -14.5 5t-20.5 2.5t-22 0.5h-32.5h-37.5q-126 0 -217 -43zM1061 45h31l10 -83l-41 -12v95zM1061 -79q39 26 131.5 47.5t146.5 21.5q9 0 22.5 -15.5t28 -42.5t26 -50t24 -51t14.5 -33q-121 -45 -244 -45q-61 0 -125 11zM1116 29 q21 2 60.5 8.5t72 10t60.5 3.5h14q3 -15 3 -16q0 -7 -17.5 -14.5t-46 -13t-54 -9.5t-53.5 -7.5t-32 -4.5zM1947 1528l1 3l2 4l-1 -5zM1950 1535v1v-1zM1950 1535l1 1z" />
<glyph unicode="&#xf1a9;" d="M0 520q0 89 19.5 172.5t49 145.5t70.5 118.5t78.5 94t78.5 69.5t64.5 46.5t42.5 24.5q14 8 51 26.5t54.5 28.5t48 30t60.5 44q36 28 58 72.5t30 125.5q129 -155 186 -193q44 -29 130 -68t129 -66q21 -13 39 -25t60.5 -46.5t76 -70.5t75 -95t69 -122t47 -148.5 t19.5 -177.5q0 -164 -62 -304.5t-166 -236t-242.5 -149.5t-290.5 -54t-293 57.5t-247.5 157t-170.5 241.5t-64 302zM333 256q-2 -112 74 -164q29 -20 62.5 -28.5t103.5 -8.5q57 0 132 32.5t134 71t120 70.5t93 31q26 -1 65 -31.5t71.5 -67t68 -67.5t55.5 -32q35 -3 58.5 14 t55.5 63q28 41 42.5 101t14.5 106q0 22 -5 44.5t-16.5 45t-34 36.5t-52.5 14q-33 0 -97 -41.5t-129 -83.5t-101 -42q-27 -1 -63.5 19t-76 49t-83.5 58t-100 49t-111 19q-115 -1 -197 -78.5t-84 -178.5zM685.5 -76q-0.5 -10 7.5 -20q34 -32 87.5 -46t102.5 -12.5t99 4.5 q41 4 84.5 20.5t65 30t28.5 20.5q12 12 7 29q-5 19 -24 5q-30 -22 -87 -39t-131 -17q-129 0 -193 49q-5 4 -13 4q-11 0 -26 -12q-7 -6 -7.5 -16zM852 31q9 -8 17.5 -4.5t31.5 23.5q3 2 10.5 8.5t10.5 8.5t10 7t11.5 7t12.5 5t15 4.5t16.5 2.5t20.5 1q27 0 44.5 -7.5 t23 -14.5t13.5 -22q10 -17 12.5 -20t12.5 1q23 12 14 34q-19 47 -39 61q-23 15 -76 15q-47 0 -71 -10q-29 -12 -78 -56q-26 -24 -12 -44z" />
<glyph unicode="&#xf1aa;" d="M0 78q0 72 44.5 128t113.5 72q-22 86 1 173t88 152l12 12l151 -152l-11 -11q-37 -37 -37 -89t37 -90q37 -37 89 -37t89 37l30 30l151 152l161 160l151 -152l-160 -160l-151 -152l-30 -30q-65 -64 -151.5 -87t-171.5 -2q-16 -70 -72 -115t-129 -45q-85 0 -145 60.5 t-60 145.5zM2 1202q0 85 60 145.5t145 60.5q76 0 133.5 -49t69.5 -123q84 20 169.5 -3.5t149.5 -87.5l12 -12l-152 -152l-12 12q-37 37 -89 37t-89 -37t-37 -89.5t37 -89.5l29 -29l152 -152l160 -160l-151 -152l-161 160l-151 152l-30 30q-68 67 -90 159.5t5 179.5 q-70 15 -115 71t-45 129zM446 803l161 160l152 152l29 30q67 67 159 89.5t178 -3.5q11 75 68.5 126t135.5 51q85 0 145 -60.5t60 -145.5q0 -77 -51 -135t-127 -69q26 -85 3 -176.5t-90 -158.5l-12 -12l-151 152l12 12q37 37 37 89t-37 89t-89 37t-89 -37l-30 -30l-152 -152 l-160 -160zM776 793l152 152l160 -160l152 -152l29 -30q64 -64 87.5 -150.5t2.5 -171.5q76 -11 126.5 -68.5t50.5 -134.5q0 -85 -60 -145.5t-145 -60.5q-74 0 -131 47t-71 118q-86 -28 -179.5 -6t-161.5 90l-11 12l151 152l12 -12q37 -37 89 -37t89 37t37 89t-37 89l-30 30 l-152 152z" />
<glyph unicode="&#xf1ab;" d="M0 -16v1078q3 9 4 10q5 6 20 11q106 35 149 50v384l558 -198q2 0 160.5 55t316 108.5t161.5 53.5q20 0 20 -21v-418l147 -47v-1079l-774 246q-14 -6 -375 -127.5t-368 -121.5q-13 0 -18 13q0 1 -1 3zM39 15l694 232v1032l-694 -233v-1031zM147 293q6 4 82 92 q21 24 85.5 115t78.5 118q17 30 51 98.5t36 77.5q-8 1 -110 -33q-8 -2 -27.5 -7.5t-34.5 -9.5t-17 -5q-2 -2 -2 -10.5t-1 -9.5q-5 -10 -31 -15q-23 -7 -47 0q-18 4 -28 21q-4 6 -5 23q6 2 24.5 5t29.5 6q58 16 105 32q100 35 102 35q10 2 43 19.5t44 21.5q9 3 21.5 8 t14.5 5.5t6 -0.5q2 -12 -1 -33q0 -2 -12.5 -27t-26.5 -53.5t-17 -33.5q-25 -50 -77 -131l64 -28q12 -6 74.5 -32t67.5 -28q4 -1 10.5 -25.5t4.5 -30.5q-1 -3 -12.5 0.5t-31.5 11.5l-20 9q-44 20 -87 49q-7 5 -41 31.5t-38 28.5q-67 -103 -134 -181q-81 -95 -105 -110 q-4 -2 -19.5 -4t-18.5 0zM268 933l1 3q3 -3 19.5 -5t26.5 0t58 16q36 12 55 14q17 0 21 -17q3 -15 -4 -28q-12 -23 -50 -38q-30 -12 -60 -12q-26 3 -49 26q-14 15 -18 41zM310 -116q0 8 5 13.5t13 5.5q4 0 18 -7.5t30.5 -16.5t20.5 -11q73 -37 159.5 -61.5t157.5 -24.5 q95 0 167 14.5t157 50.5q15 7 30.5 15.5t34 19t28.5 16.5l-43 73l158 -13l-54 -160l-40 66q-130 -83 -276 -108q-58 -12 -91 -12h-84q-79 0 -199.5 39t-183.5 85q-8 7 -8 16zM777 1294l573 -184v380zM885 453l102 -31l45 110l211 -65l37 -135l102 -31l-181 657l-100 31z M1071 630l76 185l63 -227z" />
<glyph unicode="&#xf1ac;" horiz-adv-x="1792" d="M0 -96v1088q0 66 47 113t113 47h128q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-128q-66 0 -113 47t-47 113zM512 -96v1536q0 40 28 68t68 28h672q40 0 88 -20t76 -48l152 -152q28 -28 48 -76t20 -88v-163q58 -34 93 -93t35 -128v-768q0 -106 -75 -181 t-181 -75h-864q-66 0 -113 47t-47 113zM640 896h896v256h-160q-40 0 -68 28t-28 68v160h-640v-512zM736 0q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128zM736 256q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9 h-128q-14 0 -23 -9t-9 -23v-128zM736 512q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128zM992 0q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128zM992 256q0 -14 9 -23t23 -9h128 q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128zM992 512q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128zM1248 0q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23 v-128zM1248 256q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128zM1248 512q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128z" />
<glyph unicode="&#xf1ad;" d="M0 -192v1664q0 26 19 45t45 19h1280q26 0 45 -19t19 -45v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45zM256 160q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM256 416q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64 q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM256 672q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM256 928q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM256 1184q0 -14 9 -23 t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM512 96v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23zM512 416q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9 t-9 -23v-64zM512 672q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM512 928q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM512 1184q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64 q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM768 416q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM768 672q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM768 928q0 -14 9 -23 t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM768 1184q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM1024 160q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9 t-9 -23v-64zM1024 416q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM1024 672q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM1024 928q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64 q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM1024 1184q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64z" />
<glyph unicode="&#xf1ae;" horiz-adv-x="1280" d="M64 1056q0 40 28 68t68 28t68 -28l228 -228h368l228 228q28 28 68 28t68 -28t28 -68t-28 -68l-292 -292v-824q0 -46 -33 -79t-79 -33t-79 33t-33 79v384h-64v-384q0 -46 -33 -79t-79 -33t-79 33t-33 79v824l-292 292q-28 28 -28 68zM416 1152q0 93 65.5 158.5t158.5 65.5 t158.5 -65.5t65.5 -158.5t-65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5z" />
<glyph unicode="&#xf1b0;" horiz-adv-x="1664" d="M0 724q0 80 42 139.5t119 59.5q76 0 141.5 -55.5t100.5 -134t35 -152.5q0 -80 -42 -139t-119 -59q-76 0 -141.5 55.5t-100.5 133.5t-35 152zM256 19q0 86 56 191.5t139.5 192.5t187.5 146t193 59q118 0 255 -97.5t229 -237t92 -254.5q0 -46 -17 -76.5t-48.5 -45 t-64.5 -20t-76 -5.5q-68 0 -187.5 45t-182.5 45q-66 0 -192.5 -44.5t-200.5 -44.5q-183 0 -183 146zM333 1163q0 60 19 113.5t63 92.5t105 39q77 0 138.5 -57.5t91.5 -135t30 -151.5q0 -60 -19 -113.5t-63 -92.5t-105 -39q-76 0 -138 57.5t-92 135.5t-30 151zM884 1064 q0 74 30 151.5t91.5 135t138.5 57.5q61 0 105 -39t63 -92.5t19 -113.5q0 -73 -30 -151t-92 -135.5t-138 -57.5q-61 0 -105 39t-63 92.5t-19 113.5zM1226 581q0 74 35 152.5t100.5 134t141.5 55.5q77 0 119 -59.5t42 -139.5q0 -74 -35 -152t-100.5 -133.5t-141.5 -55.5 q-77 0 -119 59t-42 139z" />
<glyph unicode="&#xf1b1;" horiz-adv-x="768" d="M64 1008q0 128 42.5 249.5t117.5 200t160 78.5t160 -78.5t117.5 -200t42.5 -249.5q0 -145 -57 -243.5t-152 -135.5l45 -821q2 -26 -16 -45t-44 -19h-192q-26 0 -44 19t-16 45l45 821q-95 37 -152 135.5t-57 243.5z" />
<glyph unicode="&#xf1b2;" horiz-adv-x="1792" d="M0 256v768q0 40 23 73t61 47l704 256q22 8 44 8t44 -8l704 -256q38 -14 61 -47t23 -73v-768q0 -35 -18 -65t-49 -47l-704 -384q-28 -16 -61 -16t-61 16l-704 384q-31 17 -49 47t-18 65zM134 1026l698 -254l698 254l-698 254zM896 -93l640 349v636l-640 -233v-752z" />
<glyph unicode="&#xf1b3;" horiz-adv-x="2304" d="M0 96v416q0 38 21.5 70t56.5 48l434 186v400q0 38 21.5 70t56.5 48l448 192q23 10 50 10t50 -10l448 -192q35 -16 56.5 -48t21.5 -70v-400l434 -186q36 -16 57 -48t21 -70v-416q0 -36 -19 -67t-52 -47l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-5 2 -7 4q-2 -2 -7 -4 l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-33 16 -52 47t-19 67zM172 531l404 -173l404 173l-404 173zM640 -96l384 192v314l-384 -164v-342zM647 1219l441 -189l441 189l-441 189zM1152 651l384 165v266l-384 -164v-267zM1196 531l404 -173l404 173l-404 173zM1664 -96 l384 192v314l-384 -164v-342z" />
<glyph unicode="&#xf1b4;" horiz-adv-x="2048" d="M0 22v1260h594q87 0 155 -14t126.5 -47.5t90 -96.5t31.5 -154q0 -181 -172 -263q114 -32 172 -115t58 -204q0 -75 -24.5 -136.5t-66 -103.5t-98.5 -71t-121 -42t-134 -13h-611zM277 236h296q205 0 205 167q0 180 -199 180h-302v-347zM277 773h281q78 0 123.5 36.5 t45.5 113.5q0 144 -190 144h-260v-294zM1137 477q0 208 130.5 345.5t336.5 137.5q138 0 240.5 -68t153 -179t50.5 -248q0 -17 -2 -47h-658q0 -111 57.5 -171.5t166.5 -60.5q63 0 122 32t76 87h221q-100 -307 -427 -307q-214 0 -340.5 132t-126.5 347zM1337 1073h511v124 h-511v-124zM1388 576h408q-18 195 -200 195q-90 0 -146 -52.5t-62 -142.5z" />
<glyph unicode="&#xf1b5;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM128 254h382q117 0 197 57.5t80 170.5q0 158 -143 200q107 52 107 164q0 57 -19.5 96.5t-56.5 60.5t-79 29.5 t-97 8.5h-371v-787zM301 388v217h189q124 0 124 -113q0 -104 -128 -104h-185zM301 723v184h163q119 0 119 -90q0 -94 -106 -94h-176zM838 538q0 -135 79 -217t213 -82q205 0 267 191h-138q-11 -34 -47.5 -54t-75.5 -20q-68 0 -104 38t-36 107h411q1 10 1 30 q0 132 -74.5 220.5t-203.5 88.5q-128 0 -210 -86t-82 -216zM964 911v77h319v-77h-319zM996 600q4 56 39 89t91 33q113 0 124 -122h-254z" />
<glyph unicode="&#xf1b6;" horiz-adv-x="2048" d="M0 764q0 86 61 146.5t146 60.5q73 0 130 -46t73 -117l783 -315q49 29 106 29q14 0 21 -1l173 248q1 114 82 194.5t195 80.5q115 0 196.5 -81t81.5 -196t-81.5 -196.5t-196.5 -81.5l-265 -194q-8 -80 -67.5 -133.5t-138.5 -53.5q-73 0 -130 46t-73 117l-783 315 q-51 -30 -106 -30q-85 0 -146 61t-61 147zM55 764q0 -64 44.5 -108.5t107.5 -44.5q11 0 33 4l-64 26q-33 14 -52.5 44.5t-19.5 66.5q0 50 35.5 85.5t85.5 35.5q20 0 41 -8v1l76 -31q-20 37 -56.5 59t-78.5 22q-63 0 -107.5 -44.5t-44.5 -107.5zM1164 244q19 -37 55.5 -59 t79.5 -22q63 0 107.5 44.5t44.5 107.5t-44.5 108t-107.5 45q-13 0 -33 -4q2 -1 20 -8t21.5 -8.5t18.5 -8.5t19 -10t16 -11t15.5 -13.5t11 -14.5t10 -18t5 -21t2.5 -25q0 -50 -35.5 -85.5t-85.5 -35.5q-14 0 -31.5 4.5t-29 9t-31.5 13.5t-28 12zM1584 767q0 -77 54.5 -131.5 t131.5 -54.5t132 54.5t55 131.5t-55 131.5t-132 54.5q-76 0 -131 -54.5t-55 -131.5zM1623 767q0 62 43.5 105.5t104.5 43.5t105 -44t44 -105t-43.5 -104.5t-105.5 -43.5q-61 0 -104.5 43.5t-43.5 104.5z" />
<glyph unicode="&#xf1b7;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM128 693q0 -53 38 -91t92 -38q36 0 66 18l489 -197q10 -44 45.5 -73t81.5 -29q50 0 86.5 34t41.5 83l167 122 q71 0 122 50.5t51 122.5t-51 123t-122 51q-72 0 -122.5 -50.5t-51.5 -121.5l-108 -155q-2 0 -6.5 0.5t-6.5 0.5q-35 0 -67 -19l-489 197q-10 44 -45.5 73t-80.5 29q-54 0 -92 -38t-38 -92zM162 693q0 40 28 68t68 28q27 0 49.5 -14t34.5 -37l-48 19q-29 11 -56.5 -2 t-38.5 -41q-12 -29 -0.5 -57t39.5 -40v-1l40 -16q-14 -2 -20 -2q-40 0 -68 27.5t-28 67.5zM855 369q5 -2 47 -19q29 -12 58 0.5t41 41.5q11 29 -1 57.5t-41 40.5l-40 16q14 2 21 2q39 0 67 -27.5t28 -67.5t-28 -67.5t-67 -27.5q-59 0 -85 51zM1118 695q0 48 34 82t83 34 q48 0 82 -34t34 -82t-34 -82t-82 -34q-49 0 -83 34t-34 82zM1142 696q0 -39 27.5 -66t65.5 -27t65.5 27t27.5 66q0 38 -27.5 65.5t-65.5 27.5t-65.5 -27.5t-27.5 -65.5z" />
<glyph unicode="&#xf1b8;" horiz-adv-x="1792" d="M16 970l433 -17l180 -379l-147 92q-63 -72 -111.5 -144.5t-72.5 -125t-39.5 -94.5t-18.5 -63l-4 -21l-190 357q-17 26 -18 56t6 47l8 18q35 63 114 188zM270.5 158q-3.5 28 4 65t12 55t21.5 64t19 53q78 -12 509 -28l-15 -368l-2 -22l-420 29q-36 3 -67 31.5t-47 65.5 q-11 27 -14.5 55zM294 1124l225 356q20 31 60 45t80 10q24 -2 48.5 -12t42 -21t41.5 -33t36 -34.5t36 -39.5t32 -35q-47 -63 -265 -435l-317 187zM782 1524l405 -1q31 3 58 -10.5t39 -28.5l11 -15q39 -61 112 -190l142 83l-220 -373l-419 20l151 86q-34 89 -75 166 t-75.5 123.5t-64.5 80t-47 46.5zM953 197l211 362l7 -173q170 -16 283 -5t170 33l56 22l-188 -359q-12 -29 -36.5 -46.5t-43.5 -20.5l-18 -4q-71 -7 -219 -12l8 -164zM1218 847l313 195l19 11l212 -363q18 -37 12.5 -76t-27.5 -74q-13 -20 -33 -37t-38 -28t-48.5 -22 t-47 -16t-51.5 -14t-46 -12q-34 72 -265 436z" />
<glyph unicode="&#xf1b9;" horiz-adv-x="1984" d="M0 160v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5t179 63.5h704q98 0 179 -63.5t104 -157.5l105 -419h28q93 0 158.5 -65.5t65.5 -158.5v-384q0 -14 -9 -23t-23 -9h-128v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-928v-128q0 -80 -56 -136 t-136 -56t-136 56t-56 136v128h-96q-14 0 -23 9t-9 23zM160 448q0 -66 47 -113t113 -47t113 47t47 113t-47 113t-113 47t-113 -47t-47 -113zM516 768h952l-89 357q-2 8 -14 17.5t-21 9.5h-704q-9 0 -21 -9.5t-14 -17.5zM1472 448q0 -66 47 -113t113 -47t113 47t47 113 t-47 113t-113 47t-113 -47t-47 -113z" />
<glyph unicode="&#xf1ba;" horiz-adv-x="1984" d="M0 32v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5t179 63.5h128v224q0 14 9 23t23 9h448q14 0 23 -9t9 -23v-224h64q98 0 179 -63.5t104 -157.5l105 -419h28q93 0 158.5 -65.5t65.5 -158.5v-384q0 -14 -9 -23t-23 -9h-128v-64q0 -80 -56 -136t-136 -56 t-136 56t-56 136v64h-928v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-96q-14 0 -23 9t-9 23zM160 320q0 -66 47 -113t113 -47t113 47t47 113t-47 113t-113 47t-113 -47t-47 -113zM516 640h952l-89 357q-2 8 -14 17.5t-21 9.5h-704q-9 0 -21 -9.5t-14 -17.5zM1472 320 q0 -66 47 -113t113 -47t113 47t47 113t-47 113t-113 47t-113 -47t-47 -113z" />
<glyph unicode="&#xf1bb;" d="M32 64q0 26 19 45l402 403h-229q-26 0 -45 19t-19 45t19 45l402 403h-197q-26 0 -45 19t-19 45t19 45l384 384q19 19 45 19t45 -19l384 -384q19 -19 19 -45t-19 -45t-45 -19h-197l402 -403q19 -19 19 -45t-19 -45t-45 -19h-229l402 -403q19 -19 19 -45t-19 -45t-45 -19 h-462q1 -17 6 -87.5t5 -108.5q0 -25 -18 -42.5t-43 -17.5h-320q-25 0 -43 17.5t-18 42.5q0 38 5 108.5t6 87.5h-462q-26 0 -45 19t-19 45z" />
<glyph unicode="&#xf1bc;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM237 886q0 -31 20.5 -52t51.5 -21q11 0 40 8q133 37 307 37q159 0 309.5 -34t253.5 -95q21 -12 40 -12 q29 0 50.5 20.5t21.5 51.5q0 47 -40 70q-126 73 -293 110.5t-343 37.5q-204 0 -364 -47q-23 -7 -38.5 -25.5t-15.5 -48.5zM289 637q0 -25 17.5 -42.5t42.5 -17.5q7 0 37 8q122 33 251 33q279 0 488 -124q24 -13 38 -13q25 0 42.5 17.5t17.5 42.5q0 40 -35 61 q-237 141 -548 141q-153 0 -303 -42q-48 -13 -48 -64zM321 406q0 -20 13.5 -34.5t35.5 -14.5q5 0 37 8q132 27 243 27q226 0 397 -103q19 -11 33 -11q19 0 33 13.5t14 34.5q0 32 -30 51q-193 115 -447 115q-133 0 -287 -34q-42 -9 -42 -52z" />
<glyph unicode="&#xf1bd;" d="M0 11v1258q0 58 40.5 98.5t98.5 40.5h1258q58 0 98.5 -40.5t40.5 -98.5v-1258q0 -58 -40.5 -98.5t-98.5 -40.5h-1258q-58 0 -98.5 40.5t-40.5 98.5zM71 11q0 -28 20 -48t48 -20h1258q28 0 48 20t20 48v1258q0 28 -20 48t-48 20h-1258q-28 0 -48 -20t-20 -48v-1258z M121 11v141l711 195l-212 439q4 1 12 2.5t12 1.5q170 32 303.5 21.5t221 -46t143.5 -94.5q27 -28 -25 -42q-64 -16 -256 -62l-97 198q-111 7 -240 -16l188 -387l533 145v-496q0 -7 -5.5 -12.5t-12.5 -5.5h-1258q-7 0 -12.5 5.5t-5.5 12.5zM121 709v560q0 7 5.5 12.5 t12.5 5.5h1258q7 0 12.5 -5.5t5.5 -12.5v-428q-85 30 -188 52q-294 64 -645 12l-18 -3l-65 134h-233l85 -190q-132 -51 -230 -137zM246 413q-24 203 166 305l129 -270l-255 -61q-14 -3 -26 4.5t-14 21.5z" />
<glyph unicode="&#xf1be;" horiz-adv-x="2304" d="M0 405l17 128q2 9 9 9t9 -9l20 -128l-20 -126q-2 -9 -9 -9t-9 9zM79 405l23 207q0 9 9 9q8 0 10 -9l26 -207l-26 -203q-2 -9 -10 -9q-9 0 -9 10zM169 405l21 245q2 12 12 12q11 0 11 -12l25 -245l-25 -237q0 -11 -11 -11q-10 0 -12 11zM259 405l21 252q0 13 13 13 q12 0 14 -13l23 -252l-23 -244q-2 -13 -14 -13q-13 0 -13 13zM350 405l20 234q0 6 4.5 10.5t10.5 4.5q14 0 16 -15l21 -234l-21 -246q-2 -16 -16 -16q-6 0 -10.5 4.5t-4.5 11.5zM401 159zM442 405l18 380q2 18 18 18q7 0 12 -5.5t5 -12.5l21 -380l-21 -246q0 -7 -5 -12.5 t-12 -5.5q-16 0 -18 18zM534 403l16 468q2 19 20 19q8 0 13.5 -5.5t5.5 -13.5l19 -468l-19 -244q0 -8 -5.5 -13.5t-13.5 -5.5q-18 0 -20 19zM628 405l16 506q0 9 6.5 15.5t14.5 6.5q9 0 15 -6.5t7 -15.5l18 -506l-18 -242q-2 -21 -22 -21q-19 0 -21 21zM723 405l14 -241 q1 -10 7.5 -16.5t15.5 -6.5q22 0 24 23l16 241l-16 523q-1 10 -7.5 17t-16.5 7q-9 0 -16 -7t-7 -17zM784 164zM817 405l14 510q0 11 7.5 18t17.5 7t17.5 -7t7.5 -18l15 -510l-15 -239q0 -10 -7.5 -17.5t-17.5 -7.5t-17 7t-8 18zM913 404l12 492q1 12 9 20t19 8t18.5 -8 t8.5 -20l14 -492l-14 -236q0 -11 -8 -19t-19 -8t-19 8t-9 19zM1010 405q0 -1 11 -236v-1q0 -10 6 -17q9 -11 23 -11q11 0 20 9q9 7 9 20l1 24l11 211l-12 586q0 16 -13 24q-8 5 -16 5t-16 -5q-13 -8 -13 -24l-1 -6zM1079 169zM1103 404l12 636v3q2 15 12 24q9 7 20 7 q8 0 15 -5q14 -8 16 -26l14 -639l-14 -231q0 -13 -9 -22t-22 -9t-22 9t-10 22l-6 114zM1204 174v899q0 23 28 33q85 34 181 34q195 0 338 -131.5t160 -323.5q53 22 110 22q117 0 200 -83t83 -201q0 -117 -83 -199.5t-200 -82.5h-786q-13 2 -22 11t-9 22z" />
<glyph unicode="&#xf1c0;" d="M0 0v170q119 -84 325 -127t443 -43t443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128zM0 384v170q119 -84 325 -127t443 -43t443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128zM0 768 v170q119 -84 325 -127t443 -43t443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128zM0 1152v128q0 69 103 128t280 93.5t385 34.5t385 -34.5t280 -93.5t103 -128v-128q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5 t-103 128z" />
<glyph unicode="&#xf1c1;" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM257 60q9 40 56 91.5t132 96.5q14 9 23 -6q2 -2 2 -4 q52 85 107 197q68 136 104 262q-24 82 -30.5 159.5t6.5 127.5q11 40 42 40h21h1q23 0 35 -15q18 -21 9 -68q-2 -6 -4 -8q1 -3 1 -8v-30q-2 -123 -14 -192q55 -164 146 -238q33 -26 84 -56q59 7 117 7q147 0 177 -49q16 -22 2 -52q0 -1 -1 -2l-2 -2v-1q-6 -38 -71 -38 q-48 0 -115 20t-130 53q-221 -24 -392 -83q-153 -262 -242 -262q-15 0 -28 7l-24 12q-1 1 -6 5q-10 10 -6 36zM318 54q52 24 137 158q-51 -40 -87.5 -84t-49.5 -74zM592 313q135 54 284 81q-2 1 -13 9.5t-16 13.5q-76 67 -127 176q-27 -86 -83 -197q-30 -56 -45 -83z M714 842q1 7 7 44q0 3 7 43q1 4 4 8q-1 1 -1 2t-0.5 1.5t-0.5 1.5q-1 22 -13 36q0 -1 -1 -2v-2q-15 -42 -2 -132zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376zM1098 353q76 -28 124 -28q14 0 18 1q0 1 -2 3q-24 24 -140 24z" />
<glyph unicode="&#xf1c2;" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM233 661h70l164 -661h159l128 485q7 20 10 46q2 16 2 24 h4l3 -24q1 -3 3.5 -20t5.5 -26l128 -485h159l164 661h70v107h-300v-107h90l-99 -438q-5 -20 -7 -46l-2 -21h-4l-3 21q-1 5 -4 21t-5 25l-144 545h-114l-144 -545q-2 -9 -4.5 -24.5t-3.5 -21.5l-4 -21h-4l-2 21q-2 26 -7 46l-99 438h90v107h-300v-107zM1024 1024h376 q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
<glyph unicode="&#xf1c3;" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM429 0h281v106h-75l103 161q5 7 10 16.5t7.5 13.5t3.5 4 h2q1 -4 5 -10q2 -4 4.5 -7.5t6 -8t6.5 -8.5l107 -161h-76v-106h291v106h-68l-192 273l195 282h67v107h-279v-107h74l-103 -159q-4 -7 -10 -16.5t-9 -13.5l-2 -3h-2q-1 4 -5 10q-6 11 -17 23l-106 159h76v107h-290v-107h68l189 -272l-194 -283h-68v-106zM1024 1024h376 q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
<glyph unicode="&#xf1c4;" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM416 0h327v106h-93v167h137q76 0 118 15q67 23 106.5 87 t39.5 146q0 81 -37 141t-100 87q-48 19 -130 19h-368v-107h92v-555h-92v-106zM650 386v268h120q52 0 83 -18q56 -33 56 -115q0 -89 -62 -120q-31 -15 -78 -15h-119zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
<glyph unicode="&#xf1c5;" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM256 0v192l192 192l128 -128l384 384l320 -320v-320 h-1024zM256 704q0 80 56 136t136 56t136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
<glyph unicode="&#xf1c6;" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-128v-128h-128v128h-512v-1536zM384 192q0 25 8 52q21 63 120 396 v128h128v-128h79q22 0 39 -13t23 -34l107 -349q8 -27 8 -52q0 -83 -72.5 -137.5t-183.5 -54.5t-183.5 54.5t-72.5 137.5zM512 192q0 -26 37.5 -45t90.5 -19t90.5 19t37.5 45t-37.5 45t-90.5 19t-90.5 -19t-37.5 -45zM512 896h128v128h-128v-128zM512 1152h128v128h-128v-128 zM640 768h128v128h-128v-128zM640 1024h128v128h-128v-128zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
<glyph unicode="&#xf1c7;" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM256 288v192q0 14 9 23t23 9h131l166 167q16 15 35 7 q20 -8 20 -30v-544q0 -22 -20 -30q-8 -2 -12 -2q-12 0 -23 9l-166 167h-131q-14 0 -23 9t-9 23zM762 206.5q1 -26.5 20 -44.5q20 -17 44 -17q27 0 47 20q87 93 87 219t-87 219q-18 19 -45 20t-46 -17t-20 -44.5t18 -46.5q52 -57 52 -131t-52 -131q-19 -20 -18 -46.5z M973.5 54.5q2.5 -26.5 23.5 -42.5q18 -15 40 -15q31 0 50 24q129 159 129 363t-129 363q-16 21 -43 24t-47 -14q-21 -17 -23.5 -43.5t14.5 -47.5q100 -123 100 -282t-100 -282q-17 -21 -14.5 -47.5zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
<glyph unicode="&#xf1c8;" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM256 256v384q0 52 38 90t90 38h384q52 0 90 -38t38 -90 v-384q0 -52 -38 -90t-90 -38h-384q-52 0 -90 38t-38 90zM960 403v90l265 266q9 9 23 9q4 0 12 -2q20 -8 20 -30v-576q0 -22 -20 -30q-8 -2 -12 -2q-14 0 -23 9zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
<glyph unicode="&#xf1c9;" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM254 429q-14 19 0 38l226 301q8 11 21 12.5t24 -6.5 l51 -38q11 -8 12.5 -21t-6.5 -24l-182 -243l182 -243q8 -11 6.5 -24t-12.5 -21l-51 -38q-11 -8 -24 -6.5t-21 12.5zM636 43l138 831q2 13 13 20.5t24 5.5l63 -10q13 -2 20.5 -13t5.5 -24l-138 -831q-2 -13 -13 -20.5t-24 -5.5l-63 10q-13 2 -20.5 13t-5.5 24zM947.5 181 q-1.5 13 6.5 24l182 243l-182 243q-8 11 -6.5 24t12.5 21l51 38q11 8 24 6.5t21 -12.5l226 -301q14 -19 0 -38l-226 -301q-8 -11 -21 -12.5t-24 6.5l-51 38q-11 8 -12.5 21zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
<glyph unicode="&#xf1ca;" d="M39 1286h283q26 -218 70 -398.5t104.5 -317t121.5 -235.5t140 -195q169 169 287 406q-142 72 -223 220t-81 333q0 192 104 314.5t284 122.5q178 0 273 -105.5t95 -297.5q0 -159 -58 -286q-7 -1 -19.5 -3t-46 -2t-63 6t-62 25.5t-50.5 51.5q31 103 31 184q0 87 -29 132 t-79 45q-53 0 -85 -49.5t-32 -140.5q0 -186 105 -293.5t267 -107.5q62 0 121 14v-198q-101 -23 -198 -23q-65 -136 -165.5 -271t-181.5 -215.5t-128 -106.5q-80 -45 -162 3q-28 17 -60.5 43.5t-85 83.5t-102.5 128.5t-107.5 184t-105.5 244t-91.5 314.5t-70.5 390z" />
<glyph unicode="&#xf1cb;" horiz-adv-x="1792" d="M0 367v546q0 41 34 64l819 546q21 13 43 13t43 -13l819 -546q34 -23 34 -64v-546q0 -41 -34 -64l-819 -546q-21 -13 -43 -13t-43 13l-819 546q-34 23 -34 64zM154 511l193 129l-193 129v-258zM216 367l603 -402v359l-334 223zM216 913l269 -180l334 223v359zM624 640 l272 -182l272 182l-272 182zM973 -35l603 402l-269 180l-334 -223v-359zM973 956l334 -223l269 180l-603 402v-359zM1445 640l193 -129v258z" />
<glyph unicode="&#xf1cc;" horiz-adv-x="2048" d="M0 407q0 110 55 203t147 147q-12 39 -12 82q0 115 82 196t199 81q95 0 172 -58q75 154 222.5 248t326.5 94q166 0 306 -80.5t221.5 -218.5t81.5 -301q0 -6 -0.5 -18t-0.5 -18q111 -46 179.5 -145.5t68.5 -221.5q0 -164 -118 -280.5t-285 -116.5q-4 0 -11.5 0.5t-10.5 0.5 h-1209h-1h-2h-5q-170 10 -288 125.5t-118 280.5zM468 498q0 -122 84 -193t208 -71q137 0 240 99q-16 20 -47.5 56.5t-43.5 50.5q-67 -65 -144 -65q-55 0 -93.5 33.5t-38.5 87.5q0 53 38.5 87t91.5 34q44 0 84.5 -21t73 -55t65 -75t69 -82t77 -75t97 -55t121.5 -21 q121 0 204.5 71.5t83.5 190.5q0 121 -84 192t-207 71q-143 0 -241 -97q14 -16 29.5 -34t34.5 -40t29 -34q66 64 142 64q52 0 92 -33t40 -84q0 -57 -37 -91.5t-94 -34.5q-43 0 -82.5 21t-72 55t-65.5 75t-69.5 82t-77.5 75t-96.5 55t-118.5 21q-122 0 -207 -70.5t-85 -189.5z " />
<glyph unicode="&#xf1cd;" horiz-adv-x="1792" d="M0 640q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348zM128 640q0 -190 90 -361l194 194q-28 82 -28 167t28 167l-194 194q-90 -171 -90 -361zM512 640 q0 -159 112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5zM535 -38q171 -90 361 -90t361 90l-194 194q-82 -28 -167 -28t-167 28zM535 1318l194 -194q82 28 167 28t167 -28l194 194q-171 90 -361 90t-361 -90z M1380 473l194 -194q90 171 90 361t-90 361l-194 -194q28 -82 28 -167t-28 -167z" />
<glyph unicode="&#xf1ce;" horiz-adv-x="1792" d="M0 640q0 222 101 414.5t276.5 317t390.5 155.5v-260q-221 -45 -366.5 -221t-145.5 -406q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5q0 230 -145.5 406t-366.5 221v260q215 -31 390.5 -155.5t276.5 -317t101 -414.5 q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348z" />
<glyph unicode="&#xf1d0;" horiz-adv-x="1792" d="M19 662q8 217 116 406t305 318h5q0 -1 -1 -3q-8 -8 -28 -33.5t-52 -76.5t-60 -110.5t-44.5 -135.5t-14 -150.5t39 -157.5t108.5 -154q50 -50 102 -69.5t90.5 -11.5t69.5 23.5t47 32.5l16 16q39 51 53 116.5t6.5 122.5t-21 107t-26.5 80l-14 29q-10 25 -30.5 49.5t-43 41 t-43.5 29.5t-35 19l-13 6l104 115q39 -17 78 -52t59 -61l19 -27q1 48 -18.5 103.5t-40.5 87.5l-20 31l161 183l160 -181q-33 -46 -52.5 -102.5t-22.5 -90.5l-4 -33q22 37 61.5 72.5t67.5 52.5l28 17l103 -115q-44 -14 -85 -50t-60 -65l-19 -29q-31 -56 -48 -133.5t-7 -170 t57 -156.5q33 -45 77.5 -60.5t85 -5.5t76 26.5t57.5 33.5l21 16q60 53 96.5 115t48.5 121.5t10 121.5t-18 118t-37 107.5t-45.5 93t-45 72t-34.5 47.5l-13 17q-14 13 -7 13l10 -3q40 -29 62.5 -46t62 -50t64 -58t58.5 -65t55.5 -77t45.5 -88t38 -103t23.5 -117t10.5 -136 q3 -259 -108 -465t-312 -321t-456 -115q-185 0 -351 74t-283.5 198t-184 293t-60.5 353z" />
<glyph unicode="&#xf1d1;" horiz-adv-x="1792" d="M0 640q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348zM44 640q0 -173 67.5 -331t181.5 -272t272 -181.5t331 -67.5t331 67.5t272 181.5t181.5 272t67.5 331 t-67.5 331t-181.5 272t-272 181.5t-331 67.5t-331 -67.5t-272 -181.5t-181.5 -272t-67.5 -331zM87 640q0 205 98 385l57 -33q-30 -56 -49 -112l82 -28q-35 -100 -35 -212q0 -109 36 -212l-83 -28q22 -60 49 -112l-57 -33q-98 180 -98 385zM206 217l58 34q29 -49 73 -99 l65 57q148 -168 368 -212l-17 -86q65 -12 121 -13v-66q-208 6 -385 109.5t-283 275.5zM207 1063q106 172 282 275.5t385 109.5v-66q-65 -2 -121 -13l17 -86q-220 -42 -368 -211l-65 56q-38 -42 -73 -98zM415 805q33 93 99 169l185 -162q59 68 147 86l-48 240q44 10 98 10 t98 -10l-48 -240q88 -18 147 -86l185 162q66 -76 99 -169l-233 -80q14 -42 14 -85t-14 -85l232 -80q-31 -92 -98 -169l-185 162q-57 -67 -147 -85l48 -241q-52 -10 -98 -10t-98 10l48 241q-90 18 -147 85l-185 -162q-67 77 -98 169l232 80q-14 42 -14 85t14 85zM918 -102 q56 1 121 13l-17 86q220 44 368 212l65 -57q44 50 73 99l58 -34q-106 -172 -283 -275.5t-385 -109.5v66zM918 1382v66q209 -6 385 -109.5t282 -275.5l-57 -33q-35 56 -73 98l-65 -56q-148 169 -368 211l17 86q-56 11 -121 13zM1516 428q36 103 36 212q0 112 -35 212l82 28 q-19 56 -49 112l57 33q98 -180 98 -385t-98 -385l-57 33q27 52 49 112z" />
<glyph unicode="&#xf1d2;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 218q0 -45 20 -78.5t54 -51t72 -25.5t81 -8q224 0 224 188q0 67 -48 99t-126 46q-27 5 -51.5 20.5 t-24.5 39.5q0 44 49 52q77 15 122 70t45 134q0 24 -10 52q37 9 49 13v125q-78 -29 -135 -29q-50 29 -110 29q-86 0 -145 -57t-59 -143q0 -50 29.5 -102t73.5 -67v-3q-38 -17 -38 -85q0 -53 41 -77v-3q-113 -37 -113 -139zM382 225q0 64 98 64q102 0 102 -61q0 -66 -93 -66 q-107 0 -107 63zM395 693q0 90 77 90q36 0 55 -25.5t19 -63.5q0 -85 -74 -85q-77 0 -77 84zM755 1072q0 -36 25 -62.5t60 -26.5t59.5 27t24.5 62q0 36 -24 63.5t-60 27.5t-60.5 -27t-24.5 -64zM771 350h137q-2 27 -2 82v387q0 46 2 69h-137q3 -23 3 -71v-392q0 -50 -3 -75z M966 771q36 3 37 3q3 0 11 -0.5t12 -0.5v-2h-2v-217q0 -37 2.5 -64t11.5 -56.5t24.5 -48.5t43.5 -31t66 -12q64 0 108 24v121q-30 -21 -68 -21q-53 0 -53 82v225h52q9 0 26.5 -1t26.5 -1v117h-105q0 82 3 102h-140q4 -24 4 -55v-47h-60v-117z" />
<glyph unicode="&#xf1d3;" horiz-adv-x="1792" d="M68 7q0 165 182 225v4q-67 41 -67 126q0 109 63 137v4q-72 24 -119.5 108.5t-47.5 165.5q0 139 95 231.5t235 92.5q96 0 178 -47q98 0 218 47v-202q-36 -12 -79 -22q16 -43 16 -84q0 -127 -73 -216.5t-197 -112.5q-40 -8 -59.5 -27t-19.5 -58q0 -31 22.5 -51.5t58 -32 t78.5 -22t86 -25.5t78.5 -37.5t58 -64t22.5 -98.5q0 -304 -363 -304q-69 0 -130 12.5t-116 41t-87.5 82t-32.5 127.5zM272 18q0 -101 172 -101q151 0 151 105q0 100 -165 100q-158 0 -158 -104zM293 775q0 -135 124 -135q119 0 119 137q0 61 -30 102t-89 41 q-124 0 -124 -145zM875 1389q0 59 39.5 103t98.5 44q58 0 96.5 -44.5t38.5 -102.5t-39 -101.5t-96 -43.5q-58 0 -98 43.5t-40 101.5zM901 220q4 45 4 134v609q0 94 -4 128h222q-4 -33 -4 -124v-613q0 -89 4 -134h-222zM1217 901v190h96v76q0 54 -6 89h227q-6 -41 -6 -165 h171v-190q-15 0 -43.5 2t-42.5 2h-85v-365q0 -131 87 -131q61 0 109 33v-196q-71 -39 -174 -39q-62 0 -107 20t-70 50t-39.5 78t-18.5 92t-4 103v351h2v4q-7 0 -19 1t-18 1q-21 0 -59 -6z" />
<glyph unicode="&#xf1d4;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM368 1135l323 -589v-435h134v436l343 588h-150q-21 -39 -63.5 -118.5t-68 -128.5t-59.5 -118.5t-60 -128.5h-3 q-21 48 -44.5 97t-52 105.5t-46.5 92t-54 104.5t-49 95h-150z" />
<glyph unicode="&#xf1d5;" horiz-adv-x="1280" d="M57 953q0 119 46.5 227t124.5 186t186 124t226 46q158 0 292.5 -78t212.5 -212.5t78 -292.5t-78 -292t-212.5 -212t-292.5 -78q-64 0 -131 14q-21 5 -32.5 23.5t-6.5 39.5q5 20 23 31.5t39 7.5q51 -13 108 -13q97 0 186 38t153 102t102 153t38 186t-38 186t-102 153 t-153 102t-186 38t-186 -38t-153 -102t-102 -153t-38 -186q0 -114 52 -218q10 -20 3.5 -40t-25.5 -30t-39.5 -3t-30.5 26q-64 123 -64 265zM113.5 38.5q10.5 121.5 29.5 217t54 186t69 155.5t74 125q61 90 132 165q-16 35 -16 77q0 80 56.5 136.5t136.5 56.5t136.5 -56.5 t56.5 -136.5t-57 -136.5t-136 -56.5q-60 0 -111 35q-62 -67 -115 -146q-247 -371 -202 -859q1 -22 -12.5 -38.5t-34.5 -18.5h-5q-20 0 -35 13.5t-17 33.5q-14 126 -3.5 247.5z" />
<glyph unicode="&#xf1d6;" horiz-adv-x="1792" d="M18 264q0 275 252 466q-8 19 -8 52q0 20 11 49t24 45q-1 22 7.5 53t22.5 43q0 139 92.5 288.5t217.5 209.5q139 66 324 66q133 0 266 -55q49 -21 90 -48t71 -56t55 -68t42 -74t32.5 -84.5t25.5 -89.5t22 -98l1 -5q55 -83 55 -150q0 -14 -9 -40t-9 -38q0 -1 1.5 -3.5 t3.5 -5t2 -3.5q77 -114 120.5 -214.5t43.5 -208.5q0 -43 -19.5 -100t-55.5 -57q-9 0 -19.5 7.5t-19 17.5t-19 26t-16 26.5t-13.5 26t-9 17.5q-1 1 -3 1l-5 -4q-59 -154 -132 -223q20 -20 61.5 -38.5t69 -41.5t35.5 -65q-2 -4 -4 -16t-7 -18q-64 -97 -302 -97q-53 0 -110.5 9 t-98 20t-104.5 30q-15 5 -23 7q-14 4 -46 4.5t-40 1.5q-41 -45 -127.5 -65t-168.5 -20q-35 0 -69 1.5t-93 9t-101 20.5t-74.5 40t-32.5 64q0 40 10 59.5t41 48.5q11 2 40.5 13t49.5 12q4 0 14 2q2 2 2 4l-2 3q-48 11 -108 105.5t-73 156.5l-5 3q-4 0 -12 -20 q-18 -41 -54.5 -74.5t-77.5 -37.5h-1q-4 0 -6 4.5t-5 5.5q-23 54 -23 100z" />
<glyph unicode="&#xf1d7;" horiz-adv-x="2048" d="M0 858q0 169 97.5 311t264 223.5t363.5 81.5q176 0 332.5 -66t262 -182.5t136.5 -260.5q-31 4 -70 4q-169 0 -311 -77t-223.5 -208.5t-81.5 -287.5q0 -78 23 -152q-35 -3 -68 -3q-26 0 -50 1.5t-55 6.5t-44.5 7t-54.5 10.5t-50 10.5l-253 -127l72 218q-290 203 -290 490z M380 1075q0 -39 33 -64.5t76 -25.5q41 0 66 24.5t25 65.5t-25 66t-66 25q-43 0 -76 -25.5t-33 -65.5zM816 404q0 143 81.5 264t223.5 191.5t311 70.5q161 0 303 -70.5t227.5 -192t85.5 -263.5q0 -117 -68.5 -223.5t-185.5 -193.5l55 -181l-199 109q-150 -37 -218 -37 q-169 0 -311 70.5t-223.5 191.5t-81.5 264zM888 1075q0 -39 33 -64.5t76 -25.5q41 0 65.5 24.5t24.5 65.5t-24.5 66t-65.5 25q-43 0 -76 -25.5t-33 -65.5zM1160 568q0 -28 22.5 -50.5t49.5 -22.5q40 0 65.5 22t25.5 51q0 28 -25.5 50t-65.5 22q-27 0 -49.5 -22.5 t-22.5 -49.5zM1559 568q0 -28 22.5 -50.5t49.5 -22.5q39 0 65 22t26 51q0 28 -26 50t-65 22q-27 0 -49.5 -22.5t-22.5 -49.5z" />
<glyph unicode="&#xf1d8;" horiz-adv-x="1792" d="M0 508q-2 40 32 59l1664 960q15 9 32 9q20 0 36 -11q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-453 185l-242 -295q-18 -23 -49 -23q-13 0 -22 4q-19 7 -30.5 23.5t-11.5 36.5v349l864 1059l-1069 -925l-395 162q-37 14 -40 55z" />
<glyph unicode="&#xf1d9;" horiz-adv-x="1792" d="M0 508q-3 39 32 59l1664 960q35 21 68 -2q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-527 215l-298 -327q-18 -21 -47 -21q-14 0 -23 4q-19 7 -30 23.5t-11 36.5v452l-472 193q-37 14 -40 55zM209 522l336 -137l863 639l-478 -797l492 -201 l221 1323z" />
<glyph unicode="&#xf1da;" d="M0 832v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298t-61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12 q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45zM512 480v64q0 14 9 23t23 9h224v352 q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23z" />
<glyph unicode="&#xf1db;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM128 640q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 t-51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5z" />
<glyph unicode="&#xf1dc;" horiz-adv-x="1792" d="M62 1338q0 26 12 48t36 22q46 0 138.5 -3.5t138.5 -3.5q42 0 126.5 3.5t126.5 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17 -43.5t-38.5 -14.5t-49.5 -4t-43 -13q-35 -21 -35 -160l1 -320q0 -21 1 -32q13 -3 39 -3h699q25 0 38 3q1 11 1 32l1 320q0 139 -35 160 q-18 11 -58.5 12.5t-66 13t-25.5 49.5q0 26 12.5 48t37.5 22q44 0 132 -3.5t132 -3.5q43 0 129 3.5t129 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17.5 -44t-40 -14.5t-51.5 -3t-44 -12.5q-35 -23 -35 -161l1 -943q0 -119 34 -140q16 -10 46 -13.5t53.5 -4.5t41.5 -15.5t18 -44.5 q0 -26 -12 -48t-36 -22q-44 0 -132.5 3.5t-133.5 3.5q-44 0 -132 -3.5t-132 -3.5q-24 0 -37 20.5t-13 45.5q0 31 17 46t39 17t51 7t45 15q33 21 33 140l-1 391q0 21 -1 31q-13 4 -50 4h-675q-38 0 -51 -4q-1 -10 -1 -31l-1 -371q0 -142 37 -164q16 -10 48 -13t57 -3.5 t45 -15t20 -45.5q0 -26 -12.5 -48t-36.5 -22q-47 0 -139.5 3.5t-138.5 3.5q-43 0 -128 -3.5t-127 -3.5q-23 0 -35.5 21t-12.5 45q0 30 15.5 45t36 17.5t47.5 7.5t42 15q33 23 33 143l-1 57v813q0 3 0.5 26t0 36.5t-1.5 38.5t-3.5 42t-6.5 36.5t-11 31.5t-16 18 q-15 10 -45 12t-53 2t-41 14t-18 45z" />
<glyph unicode="&#xf1dd;" horiz-adv-x="1280" d="M24 926q0 166 88 286q88 118 209 159q111 37 417 37h479q25 0 43 -18t18 -43v-73q0 -29 -18.5 -61t-42.5 -32q-50 0 -54 -1q-26 -6 -32 -31q-3 -11 -3 -64v-1152q0 -25 -18 -43t-43 -18h-108q-25 0 -43 18t-18 43v1218h-143v-1218q0 -25 -17.5 -43t-43.5 -18h-108 q-26 0 -43.5 18t-17.5 43v496q-147 12 -245 59q-126 58 -192 179q-64 117 -64 259z" />
<glyph unicode="&#xf1de;" d="M0 736v64q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-64q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM128 -96v672h256v-672q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23zM128 960v416q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-416h-256zM512 224v64q0 40 28 68 t68 28h320q40 0 68 -28t28 -68v-64q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM640 64h256v-160q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v160zM640 448v928q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-928h-256zM1024 992v64q0 40 28 68t68 28h320q40 0 68 -28 t28 -68v-64q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM1152 -96v928h256v-928q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23zM1152 1216v160q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-160h-256z" />
<glyph unicode="&#xf1e0;" d="M0 640q0 133 93.5 226.5t226.5 93.5q126 0 218 -86l360 180q-2 22 -2 34q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5q-126 0 -218 86l-360 -180q2 -22 2 -34t-2 -34l360 -180q92 86 218 86q133 0 226.5 -93.5t93.5 -226.5 t-93.5 -226.5t-226.5 -93.5t-226.5 93.5t-93.5 226.5q0 12 2 34l-360 180q-92 -86 -218 -86q-133 0 -226.5 93.5t-93.5 226.5z" />
<glyph unicode="&#xf1e1;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 640q0 -88 62.5 -150.5t150.5 -62.5q83 0 145 57l241 -120q-2 -16 -2 -23q0 -88 63 -150.5t151 -62.5 t150.5 62.5t62.5 150.5t-62.5 151t-150.5 63q-84 0 -145 -58l-241 120q2 16 2 23t-2 23l241 120q61 -58 145 -58q88 0 150.5 63t62.5 151t-62.5 150.5t-150.5 62.5t-151 -62.5t-63 -150.5q0 -7 2 -23l-241 -120q-62 57 -145 57q-88 0 -150.5 -62.5t-62.5 -150.5z" />
<glyph unicode="&#xf1e2;" horiz-adv-x="1792" d="M0 448q0 143 55.5 273.5t150 225t225 150t273.5 55.5q182 0 343 -89l64 64q19 19 45.5 19t45.5 -19l68 -68l243 244l46 -46l-244 -243l68 -68q19 -19 19 -45.5t-19 -45.5l-64 -64q89 -161 89 -343q0 -143 -55.5 -273.5t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5 t-225 150t-150 225t-55.5 273.5zM170 615q10 -24 35 -34q13 -5 24 -5q42 0 60 40q34 84 98.5 148.5t148.5 98.5q25 11 35 35t0 49t-34 35t-49 0q-108 -44 -191 -127t-127 -191q-10 -25 0 -49zM1376 1472q0 13 9 23q10 9 23 9t23 -9l90 -91q10 -9 10 -22.5t-10 -22.5 q-10 -10 -22 -10q-13 0 -23 10l-91 90q-9 10 -9 23zM1536 1408v96q0 14 9 23t23 9t23 -9t9 -23v-96q0 -14 -9 -23t-23 -9t-23 9t-9 23zM1605 1242.5q0 13.5 10 22.5q9 10 22.5 10t22.5 -10l91 -90q9 -10 9 -23t-9 -23q-11 -9 -23 -9t-23 9l-90 91q-10 9 -10 22.5z M1605 1381.5q0 13.5 10 22.5l90 91q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-91 -90q-10 -10 -22 -10q-13 0 -23 10q-10 9 -10 22.5zM1632 1312q0 14 9 23t23 9h96q14 0 23 -9t9 -23t-9 -23t-23 -9h-96q-14 0 -23 9t-9 23z" />
<glyph unicode="&#xf1e3;" horiz-adv-x="1792" />
<glyph unicode="&#xf1e4;" horiz-adv-x="1792" />
<glyph unicode="&#xf1e5;" horiz-adv-x="1792" />
<glyph unicode="&#xf1e6;" horiz-adv-x="1792" />
<glyph unicode="&#xf1e7;" horiz-adv-x="1792" />
<glyph unicode="&#xf1e8;" horiz-adv-x="1792" />
<glyph unicode="&#xf1e9;" horiz-adv-x="1792" />
<glyph unicode="&#xf1ea;" horiz-adv-x="1792" />
<glyph unicode="&#xf1eb;" horiz-adv-x="1792" />
<glyph unicode="&#xf1ec;" horiz-adv-x="1792" />
<glyph unicode="&#xf1ed;" horiz-adv-x="1792" />
<glyph unicode="&#xf1ee;" horiz-adv-x="1792" />
<glyph unicode="&#xf500;" horiz-adv-x="1792" />
<glyph horiz-adv-x="1792" />
<glyph horiz-adv-x="1792" />
<glyph horiz-adv-x="1792" />
<glyph horiz-adv-x="1792" />
<glyph horiz-adv-x="1792" />
<glyph horiz-adv-x="1792" />
<glyph horiz-adv-x="1792" />
<glyph horiz-adv-x="1792" />
<glyph horiz-adv-x="1792" />
<glyph horiz-adv-x="1792" />
<glyph horiz-adv-x="1792" />
<glyph horiz-adv-x="1792" />
<glyph horiz-adv-x="1792" />
<glyph horiz-adv-x="1792" />
</font>
</defs></svg> OTTO 	   CFF ;)7   OS/2j      `cmap;Ƥ    head      6hhea	      $hmtx#   T  HmaxpP       nameoi  `  Opost} Z           B3 _<      Tt     ϙ/	                 	 	                 P    ,   3   3  s Z3                            pyrs @                                 ?          ?        J        ?        a        ?       Q s              	 
                   	   ~  	    	    	  .  	    	  $  	    	    	    	 	   	  *  	  <Copyright 2014 Adobe Systems Incorporated. All rights reserved.FontAwesomepyrs: FontAwesome: 2012Version 4.1.0 2013Please refer to the Copyright section for the font trademark attribution notices.Fort AwesomeDave Gandyhttp://fontawesome.iohttp://fontawesome.io/license/ C o p y r i g h t   2 0 1 4   A d o b e   S y s t e m s   I n c o r p o r a t e d .   A l l   r i g h t s   r e s e r v e d . F o n t A w e s o m e R e g u l a r p y r s :   F o n t A w e s o m e :   2 0 1 2 V e r s i o n   4 . 1 . 0   2 0 1 3 P l e a s e   r e f e r   t o   t h e   C o p y r i g h t   s e c t i o n   f o r   t h e   f o n t   t r a d e m a r k   a t t r i b u t i o n   n o t i c e s . F o r t   A w e s o m e D a v e   G a n d y h t t p : / / f o n t a w e s o m e . i o h t t p : / / f o n t a w e s o m e . i o / l i c e n s e /         "          "                                                                                                                                                                         
	                                                                                   Z @         !"""`>N^fin~'(.>N^n~          !"""` !@P`gjp  ()0@P`p   \QA0ޕR
	       X                           @                                                                     v    _                         ]                             y n                       2                           @                                                                                              z                    Z                                @    5 5                                           Z  Z          @                                                                   ,  _                                                                        f                                @                    @                        (                                                  @      @        -   M M -  M M                                                    @  @  -                 b                                                           5                                           -            8                                   @                  N           @                               *     @                                                 	     m  o                    )                 @    @   	                              	                                   '                      D     9                 >                                                                         z Z                      FontAwesome A G	  U6 U6#m#        " , 0 4 < > E G M T \ _ e h m q y }                  #)4>HT_lp{
'4=GRYfoy&,39COVcoz"/5;FPUZes}&+16<EOW_hmqv|)04=DPX\aju(,26GYhy%16;>EMUckox				$	5	G	V	g	l	p	v													




&
*
-
0
3
6
9
<
?
B
F
O
_
c
u












 &5BQafmty !%)-159=AHLPTX\`dhlptx|%,37;?CGKOVZ^bfjnrvz~glassmusicsearchenvelopeheartstarstar_emptyuserfilmth_largethth_listokremovezoom_inzoom_outoffsignalcogtrashhomefile_alttimeroaddownload_altdownloaduploadinboxplay_circlerepeatrefreshlist_altlockflagheadphonesvolume_offvolume_downvolume_upqrcodebarcodetagtagsbookbookmarkprintcamerafontbolditalictext_heighttext_widthalign_leftalign_centeralign_rightalign_justifylistindent_leftindent_rightfacetime_videopicturepencilmap_markeradjusttinteditsharecheckmovestep_backwardfast_backwardbackwardplaypausestopforwardfast_forwardstep_forwardejectchevron_leftchevron_rightplus_signminus_signremove_signok_signquestion_signinfo_signscreenshotremove_circleok_circleban_circlearrow_leftarrow_rightarrow_uparrow_downshare_altresize_fullresize_smallexclamation_signgiftleaffireeye_openeye_closewarning_signplanecalendarrandomcommentmagnetchevron_upchevron_downretweetshopping_cartfolder_closefolder_openresize_verticalresize_horizontalbar_charttwitter_signfacebook_signcamera_retrokeycogscommentsthumbs_up_altthumbs_down_altstar_halfheart_emptysignoutlinkedin_signpushpinexternal_linksignintrophygithub_signupload_altlemonphonecheck_emptybookmark_emptyphone_signtwitterfacebookgithubunlockcredit_cardrsshddbullhornbellcertificatehand_righthand_lefthand_uphand_downcircle_arrow_leftcircle_arrow_rightcircle_arrow_upcircle_arrow_downglobewrenchtasksfilterbriefcasefullscreennotequalinfinitylessequalgrouplinkcloudbeakercutcopypaper_clipsavesign_blankreorderulolstrikethroughunderlinetablemagictruckpinterestpinterest_signgoogle_plus_signgoogle_plusmoneycaret_downcaret_upcaret_leftcaret_rightcolumnssortsort_downsort_upenvelope_altlinkedinundolegaldashboardcomment_altcomments_altboltsitemapumbrellapastelight_bulbexchangecloud_downloadcloud_uploaduser_mdstethoscopesuitcasebell_altcoffeefoodfile_text_altbuildinghospitalambulancemedkitfighter_jetbeerh_signf0fedouble_angle_leftdouble_angle_rightdouble_angle_updouble_angle_downangle_leftangle_rightangle_upangle_downdesktoplaptoptabletmobile_phonecircle_blankquote_leftquote_rightspinnercirclereplygithub_altfolder_close_altfolder_open_altexpand_altcollapse_altsmilefrownmehgamepadkeyboardflag_altflag_checkeredterminalcodereply_allstar_half_emptylocation_arrowcropcode_forkunlink_279exclamationsuperscriptsubscript_283puzzle_piecemicrophonemicrophone_offshieldcalendar_emptyfire_extinguisherrocketmaxcdnchevron_sign_leftchevron_sign_rightchevron_sign_upchevron_sign_downhtml5css3anchorunlock_altbullseyeellipsis_horizontalellipsis_vertical_303play_signticketminus_sign_altcheck_minuslevel_uplevel_downcheck_signedit_sign_312share_signcompasscollapsecollapse_top_317eurgbpusdinrjpyrubkrwbtcfilefile_textsort_by_alphabet_329sort_by_attributessort_by_attributes_altsort_by_ordersort_by_order_alt_334_335youtube_signyoutubexingxing_signyoutube_playdropboxstackexchangeinstagramflickradnf171bitbucket_signtumblrtumblr_signlong_arrow_downlong_arrow_uplong_arrow_leftlong_arrow_rightapplewindowsandroidlinuxdribbleskypefoursquaretrellofemalemalegittipsun_366archivebugvkweiborenren_372stack_exchange_374arrow_circle_alt_left_376dot_circle_alt_378vimeo_square_380plus_square_o_382_383_384_385_386_387_388_389uniF1A0f1a1_392_393f1a4_395_396_397_398_399_400f1ab_402_403_404uniF1B1_406_407_408_409_410_411_412_413_414_415_416_417_418_419uniF1C0uniF1C1_422_423_424_425_426_427_428_429_430_431_432_433_434uniF1D0uniF1D1uniF1D2_438_439uniF1D5uniF1D6uniF1D7_443_444_445_446_447_448_449uniF1E0_451_452_453_454_455_456_457_458_459_460_461_462_463_464_466_467_468_469_470_471_472_473_474_475_476_477_478_479FontAwesome)  
  # ' * U _ d w |        .3W[_!38Xkx|V};EIU38<@dp#SYcw~$U]b(/49>BX^qw~						!	&	L	P	Y	^	l	z								



8
A
S
W
`










'@GJQX_jp~#*.3@Ujm(2CFK[br|$*3:@DIN[hu|	 *49>C&!
T<<6KeKPY
"!
`g
~~33hnnh`VV``VTy}}y/
.
G'
<<<<eTP5
\
4
hnnh	
nh
6
]
]
0}t	 "" 	?
y}}yy}}yOFMw ʆiimdod$@~ Kz&w{yyw}| |}xz{wa&zK$|'˒a1
T;++
)ffb

Tv
T
T|zTWTWTWC

$
%
'hn
)V`3
p
IT&
T0
`V)T2
{

1
|z*//\3CC
D
n
;
T58
T tzuxu[Brlmyz~ 5qsUhnnhhnnhry}}yKy}B
TTt
TTbN;(=ZXWG/9;/_Mknmn9:YIƑP`q
~d_iTT@
A_^X*D44D*Y_`t
iiiq
:
*
*lnl||}_zob^^bzM<M<v	o_}||YYPff9>!
}
>9Ugv{z6
 E
9
T+T=9
b
8d
U
T6

$$7
B$$

!5m3'!%Ơ#xM'nqwdo^K
+K
+
 8|V``V(
X

)T00C
!55!!5t`VkK*
zzD

c
h@@h@@
3CF
F
::

wh@@hDRRD}fM@
jmq;fveKxvuztv
ff
YYPYff\bu2
?Kxxtw~!
GCC8=<<8CGCp]DT
T4

MY;/a3C3t
'F3CC3 ZZrwh
5
0
~'
<<<<vv[ffE
z{9"TM5Ř{~~D;i7
'5
H
tYE
TK
+*:
1rcrrAEQQE}yvKyx}zy
YY7
yrrrryyEQA0%4In4w
0c
v|z@;z|K,l"7o''A
6-@Y
1:4V``VV``Vc
Tf
T
8T(A(A(A

{tsoyxOIIgX!!gXg!mm))mm)7
YByy 1+*ZZMYɽG
	,,		,				,	<<\xcikvss]tRatyxx?rrcr~~w~r&tt?
w
tyyrrrryyIn
)
'
<<Q
I
@$$@!yQDntyD
G
C
rrcrI
$Marwwvyr/STdJ,]շ49%
x\;COLD|yz|rh~EQQEEQѭQEF B!$DD$}
7

)"+N
h6
5
QETt]]GE##EE##E
Nba]sP@zyzL
L
'c
z{]-
0
ip D
n
1g
0
t44t3T4
tE##E&I;;4'hDR]~R],y	B}jiiV``Vz||z

D

}yrsyy'&G
e
_Ib	Y

$@       }                 VXZ\^`bvx-eQ.QOao	(			
Z
$]pyA58~`nK{BAb-j9y+&/Uk~#Tw[  C !!m!","""##$f$%g&y''(j)).)~))*++3+++,O,-1-.c//0222l23334456777889-9n99:7:;n;<v=y>I?Z@OAZAABKBFGTGGHHHHHI`JJK9LMNXNNNO<P(QCRRST TUdVDWWWWWWX6XAXHXOXYUYZjZ[b[\<\]W]^_	_T_`E`a'a}ab(bRbcddsde]eeeeeff*f_fhfqfggYgggghwhhiijjjjk7kRklmmmnVnoHoopqqrrWrrst$tu
uKuvvww3wiwwx8yy2yyyz*zk{{{M{||9||}q}}~%~uE(Dń.wh+gP#t̑ΒBM㔫ޚ4̝ࠌ~1ӥLܨ5eիR!LY䱀6Ǵ߶uMúpŻz6߽th]T,ƹb{˵U.Ղն~nN؝.lzN۹<nprtvxz|~݂݄݆݈݀݊݌ݎݐݒݔݖݘݚݜݞݠݢ 
z..ȮhKh<Nh--N<vhNKhN<h..Nhv<NNvȮ-"
-hڠvN
I44ITn447-
44
T0
449Tyuuyyuuyy?j`,4G yu~8գYSKkj>h3c#^uiƭR
I@&
0
FMffMZnnw5
H
c
 `Vc~ofa[Y 
T2


@v
suw#$L>$#69JX"!!`V+/EE+V1RAE_r@3CC3
c


ksu[ztUU

q9[[9:QQ:Mqksu[ztUU

vVlXXlL
 *33 6v)@
KV


V4
w@4

`

`
`

`
cF
T(F
`VV``VTV`xxT(cF
T(+TV``VT
 F
+TV``VT
TITV``VT
^y$%hh>jy>y> 
*
tt6KetteKPttq
Y
tt3
2 *
eKPY
2tW&S:aR`S:a))6zzzz6)õ`a;R`W&t,;;
EQQEEQѭ
}yTy}}yTllTlTl@fu
zK}zaEV" nmloL{yry}{{OJNll~n|i&js^^[{m~mkNo|y|rz{Kpijki\f_i]QM[!|Lz~rǑ̒Ȫ 'fgiM
h
h
h
([poD
pHH4		tkLE;wOVVOcZwE;f
L1H 
nnt+Q*s~oJ,g
W`aGahc~v~AHH 
4t4tt
4#
){||||?NBg|5ppBTy~}y:y~T?ppur5|gccn_Tz~?By}}zT
T
dgf[wXX[fe
0
tqT:
1T2
TT2TT%
g
~~
,%(=
TT,f,T,ThXhYm}}chhcqj}}iVgv
wxrwwvttv#
c
/!SY;;,ylD&)'C3zzzzY4
TNt}yT|}zcesd,.9/F-:
T1T"Q>W
"SX5z|[,9FZ3bTN$
#""
T



@v
ԇ
E|z@3CC3
TTT
+IkT^^^^Tk/z
]btPY
KU
_=1lno1"-SKq~n}s{x}zsz5
;3n L TԕT
/WW/!(ZMj:k2
?ԕ
K;k+8V=_GxɁHKxMG_8+h
MS
S
N-hnog??go 1
S
N-hnog??go_QP:
ox}yCQ(Csyrp}t{xoW
PQ_K:
n{}|zx8S``*S8qxozo||{}s}|{n5
K
Q$$$QQ$$
ʪʪꪫʪ骫kihvvvijiʌd
[a
1a
!wa
a
a
 1ag1aaaaQgkll[ g[ijivvviijZ)Z
_^X*DtcX_^sjii}jttjjhs
 g|vtywxog`vf/TFw.qra\zzzaM{tswxyzzVc,sj|wut{tv\h2p]yx}xzuxWi:mY{pvzs~{sww}e_^#:/r8^ M
4-
4K4"Kme,,eBV4nK"44"4Pt4
T0
4t3
T33333333T4tXr=EE=UIrXt

{
T#
]
]
]G 
ie%/,xxx(((#Ɏ	wR'VbgfVpoqqq{\/j}}Yh^?DFG@EatV@ha %-n<scsŔO5*VJM(0x[[_}~%;AHW{'QbgfgFIGf=R!G v^]^z8'n\PuH#hPMqJK{-ЊxġMMN[ĐơϦԖУ!!!x$ǁΓmr;ni~GhftnOlFKwz6;p6p_ph6hpo;_}oh6h6}_%
Ǐ\|}Cy	^^^LuZ
q

eptcCDC3
%
ǐ]|zb||}3mrS
667W,"

~yv}u3
] y]hvp|zwwzv{y{ |ph_

 *
*
 *
c
*
*

N_

*
*]
*
N_
:
 *
*:
 *
c
*:
*

N_
8
8
8
t

u @uctMC3
TJ
cT
e\tJ

{tz{~'&9&T
T$
T%
:''~.

T
4444T
|z@
4kq@w@4
 D~~UT44A~sjiij}st:944::
u
yyNLT_p tG!0
@
RϠHGwwsr@mXXj:bkkcv`~:jX;Y;l-&@
$
S+,,||~KKfcc@+4444400f,,fMff// g}{|y~wj|z
"@{zt{tqT4 7\3ulz* p4TqtQ 
KKfcc@{kkYkkkYkkkkYkBBk
tt
b

'
0
m:
Qgsy
Z
yZ SZ
ZZZZrZhlvlr|h@h|fc
@U
1+*U
1+Nfc
@
 
ZZZZZrwhZ
c

Zx
Z
x
@}rrwErZZ/
:
1+.::zzzz
::'zz::::
zz 
R
0
R

! 
hn 
!f}2zz11zzz{IIII{zzz1IIIIDIIII1zzz{IIII{zv!
@zz{z
vv,+
1zz6k
f4y}}yTS
}y4,#Q?`\pnZt
ҫȧPKgjzx}wy\O~#7@TKT!f4DT;
45+;
454
?
4
4&44!`$$`$`$*$$$`$*
,
#Zk==k##kZ==Zk#*
#k==kZ##k==k#N
]

&&

&&&&&&kK#

g%''%%
::!8#

 %56&{SjjQh[=<<=>
>^CT}s@skiij}sst
jt '}sTӸ~ssjiik}ss@@st6jtTC^OG
GOTs
js@t
 KAsjiij~sts
ks@sTC^ǸTs KTA@sjiij}ttTTtjiij}tsA@s
jt t 
j 
t,Qa! KtkvqCtftdhhdfj
!y}|zTy|RT|y.}|yMx|zp4HhnzhThnhTԥhS\V`y~5V``VV5`VLL'HMoZd99dMH'''L;A
4
0
4c'/J7I[^_[Z_~}yhn{x(
Zf7p\XTHaG-whhiwVQZ:#vz]l`L{l{,+\^˒
46eKP@Y
CN.ETiCkhTT$
?LL?'0cGv=<]]
]vc0;'dquuq--
LaaLvtrrtvLa`LT$]D'#5'0cGv=<#7quuq-.
Sv-yU*PNO_Z~wrsrswH7*V3ziU{QgegSA:NT~=L=&0ErAuXc5y}|yTy}R
|yR
~|yMx|z]pkou`\\`qbuud[ddsc
uz``K4K++44-3VC+*QQ듔VV땓4L554K ˫44˫

44
Tt
Tt
Tt
44
Kv

|zt4

t
Kv

|zkc."&FtI
t+p+KQc-b.T5MKTz|
psRrQnS SL0tI
tĤŨ Ty}

%%Js{fc
T
Ki``iK
,QQ,U
1+*U
1+NLarzyzyrrbr:9

:9Llr:9:9rrbrzy
zy)4TTD
yxxy}||6
T44rdTY
4U
T44fT84TT6
||} 
 5z
DR҅z
.`U
OG	`E}n\>l6
H
,@

44y
&N
)WWXg3
UGQ {y|ss^
 y
 /T
t
b6

0
m:
N 


.

+
|z@
@w@4
2o`gfbnh./>p+>|Ri/8Crb{Zja_qV  tc
4T&!
ttt:Z E˅c+o^H#}mt_T$
44T)V``V)Q
P
tKc

h@@h

T
RD } 
c
TT!55!noqqon!55!!55!Tft//tq:v++n+*mm*+n33yäyppv-)
u
ERQDEQҭQEERQDEQҭQE9},~
 q
2srqt-}}N}}~ZTYprr~npwefc~rrq/s~|~M}~,soppndmfnen
 s
-}N1kmo/77cy


Y6$7dI.3T
fo1\s\k<^
U/Sk?Ÿj-@	
+6	
Dɝ·lZ'#ik}ts')2OKebh`i_mdG1dq}
m]a"
eG.3
GNOH	6
	t@K̬-*osr^?<k篞
Y	xxytR]ssvkc\k}\vs򺊧1fzk~rvdO J.eY$n:mo}
q1d_`cJl2)t}ǏymD
	U

@KM>M>KR4)<5Mnɿ<5)4RP
 dr3CT
~ϧMԑ
T$

~ϧ4r
{{{J{J IYU:=YϿڼWG j8Ke`bz|vw{	̋{&,(i"z 4t4)Q
TFP
T480
EQQEEQ085
(y{wAN$


T
T@U
6

DD  7
B  DD#r
&^GofC3T^Goq
 ^!Y1/)Yb1+IԀ
+7
Rzf|Xm}[YKKkK+++K+K2
?+++k˙̚zfR_L<L aNi`ʆ ŕXP&!
tN
r[t
˖
?ApDU88Dp?
0
\xTTz{{z~TT
T.*T!8ZZ.n82Y\uZHm{(r^-Ʒ֫Ϧ[{wx^^]Up[c\ˀtbdee	$fb%<l6fGWG49<:]ua\H,2n{
ZwRQSqklN2IUphsJ&J}rIm{jlkāuvgE{|jZvkSr^kPxOH.76NPT>aa>"ipuleǞëѯ</C34&
3$

/&;*226;*^
qXsIm[FHNMo;otpлͩ&oxtt_Jdwry0Ayu{&Ay  (TQrLyJγʣMfEpB}P7.G$%Frrs3Xo[{TO(QVY`1(mpnnvww."4X+prq/#>VK?ʹķSp. v/nQ1hp%N
8rwsp TT
TT4+T
+N.
/

@w@@|ztt
 v


 

T
zi.],++,]i{{}zyjpnjry''{{~{y#joicciq#44

4
@v
ԇ

2t1v~z1vF4YtHAAHZEtYrtpw4
c

4Ttt
TwEuFF6!1=۴n_F(RD\\ 
Tt
-tY%CC%PYtKqu"nIV``V~~nq"uqT
Tf`wrPNxyprNV[Pwrqqyxyprrwwr[PNrpyxxyprNP[rwwrrpyxyprrwP[VNrpyxNPrw}PNVVNPx$
4.TCFPPFs\k>\V?Ckk++JL

=3`?.Qm\ibgbjnG5[}
fuel
= 	 $
.Gc4`C>[B
atĹixFP+֫ঽtttuV]]B1˦RD[GngimQ`?34=_`b

	 	 =acf}|}KKYS#L
KV?Ck1B]]Vvuut+PFxiԹta?MQYKK}|}fca= 	 	

b`_=43?`QmigجnG[.ʰ
ZB
xxyatRt]ssvikcx\j_qFPPFGOLJ++kkC>['hnD
Ԭ
kfufRD}[5Gjnbgbi\m.Q?`3<
	
 	 =؉ˠSL@ 
QQ{z@00
0
{zz{QQ
!@00QQQQ
0{z$
@00{zz{QQR
QQ
{zk

@00"
QQRQQ
{zk
E݂vj
~|iyzr|x|~t}uz~}tyzrjhv~|{|~oz|r}spwhjhy~|}}|x}owuxzp}o~vqyv}}{oy~tcuyuu~xr}|~gwɛ|cx||vt|$|~d@|~vrys~@uw}{~||}}xzutl@|~|rk||}y~z{|}{x|sv~vzyzzy7}r~ww/*Gs iK
8"W==s
jt '>>Gww|&xjUt=N,B]]Q?F



~
~
~

{tq 2
z
0
~z/
44e
Ը44t
tq fw$$T:
Tqt{stoy$$$$tqT1Tqt$$9
m
9
$$
T*T$$Wn|`_]#v:[vVi\\iL
*446KTvu܎v#6]_`uuu0n1W@^;K TT`4S2S@Fzyrrrrybcyjd9 djyddysqSUmtvwjoXV``VXojvwtnrry@dd
ybcyrrUnTddUA?<AkST3«nUbcUB>?BnUU'&UVlA?>CTddUmի3STk@< ?BUbcTmԨ'&J,>
KQtd_O>Kj}|},D!/G]]{ #	#@*!
!@i##flA\3T3T'5
K"~xF͇F6)-1?pWSRWn?=%(EUmþBB_XS-(mU6EF(%=?VXp򎬇F˞y\&sqb]NEN ewd G&NS6}dNDwO0]bqNñ џsSe& GF\}w~vt:4+q4CKtېE,
4dYztdI4VAlff,,fflAV4-

T0
i?fflAV4944494|+fLdUS55TTd..Ġ..||eWT6LL6UVe[o!"m\àB)%h;=h&)CMe00M
4n44-
0
4{}~bx4
Tv
ԇ
T
kmeeBV4n-
@0
fc
 fc
T]]]c

i46O-A
46O-AT|
O-Ah	$@7_H,`djXg]SˈScfzhebpR3^v"Om(;.?GdFjPyi7voMyyy4@ (!?:::  (T|
@
z|@3
c@f

{pkgGR[".__ušȟmNgG&߅ȂAP_ATeAa6226^%OLJnpsosxZWS]{`lcmcbnXzyY\a\^cbhnnpszf%_whY+W~ cv͉ΒИhv9!݉}t{D$<T;JYYbll|ԡǩ+}yLJGa75t|m`PvG#?}Zhzdqcwuvltlsj{hxPKGQPObktl{·}yُˌ|na`ZUTSR{S-deh}~~3D@
4
 4X
oy}}yy}T}yToo(
z@4
 eO  .ZZ{zz{{zz{ZZDROXOXXOXOXXXr6v2WW2xU
1T4g[wrrZZTT<DAٕ

ف))PQ̙rԋѭVLE^"t*9xI&Oq=b}%BVH\fzw}i~w{z Y
nL Uiw<u8=q^Ei{PjPn]vӀ((N/
!
KsӋЬWMF_#t+:xI$Mo;`z$?TH]f{x}i~x{z!YlJSfu:s9>p_Civ9U:j\i%
T&k==T6N#-j^AT36dC@,*ݶ8Q_39*w:8XkEK[=.=)Ҹưչtz}|}(JC9_4K4$KT&T"
T33 N;Nh[NE"sxt3.6-f. 8CW
orkOb4.QE-]]d Md*SkC;
t&G
ŧH(PSb_ghPsY6gWb7E9@7M( m"mh hooi )B
{r|sv>(T+J~ff~JJ~ff~J{
L


U
 1+ N[
X
TT{z
TT#
TTTT 4



@w@4
T[
XT[
X
mjingr;<7
M7#?#77<:fim
B4@ V7)0[/ 1 /^//1 0 #sEAA*,?m6"mF=(G`$.ƣ0;;YS<!m
i

sjiel{ppmoy,,yrrUg[giyxtq]um~~~~mu]qtyxgi[gUrry,,yom0
pp{leijt t 

Q@
TT@
@u^9v:p%"M$%Mڑhi@
@
TT@
T&&&&@;$yz%:@

4~~4`_`R`e9C/R&aҦ4A'")~4%%Ju{$

T
DddDWXYV_lw}v~v*AdD


yo6$7Y	^~ )?cwrvy~x]͈}|*YvvT I+TT0
`VԐ
TT+7+TT+V``V+TT+V``V @
XvvuuvvHNNHHNG
'				1j
j/q


eU3
kG
e
)$
4-
4
Tv
ˇ
T|zK4ime,,~n-
4
T0
#x:4tT.8q
pFq
A4KqHaZxuuvwtD6O'xODwuxaq\_II_\DD$2??  nzykjstz{ztsjmy}z{JlQeűťž̛{yn׭
|zO
|
T`3
tp-`Tz|
tAT|zt?
t]
4z}|yt
Tv
tQ
]
ItT4TG
'5
D
N[cG=B^60

EQQE
uI7#e  #7upjj_pB:!55!!5ܾئ_Wc[7+447vԦ
7Ep m;4UG
ua[
RҢ& &RD[apdu茆'U;4mph]@
@h֦tt

K
/ K N
 
qu"n`VV``V~~nq"uqT
T)
T
!55!K5!

h@@h1t*T-
{1
G
e
-n4H-n4H:Bp"
צU
5
DPt 
44K2
T
T;tt
t#">
T|zKz||zKz|9
T|zKz||zKz||zKz||zKz|)
A
c

 @U

t#")
" 3


k-
T0

Kv
+
Kv
ԇ
|z+
* 
U
U ITn +N)N@
WWl2@
4
:
14hZwrrlZZrrwZh-n!""}

"}
TN4B
4̎4
̥t
k
/44 k N
)tKJ
+4Kk44Tt+kkTkTs
TskkkTt44Kk4J
Ftˋ |g>DRTT˫kTTktkKh@@hTT

TR
R
RR4 
 
R
ԭ
R
 Z4b
O
b
O
Z__
t<<
4<
<
tO
b
YYPYo

<
<
.

 
v
L|z
3C4KGf6
*K4
)
4ԔTԀ
TwkA|zT
v
`t4+V`@Ӷ+
K
4
v
T
|z8
TC3z4
d_gg__gg_d4
v
T
|zTT

, 5s
s
 5sTs_4dtT4TTJ<;KK;;KDTz
.@C33CTYMMYYM<**<<**<dT
`VV``V-
 9dT
f !*j 4a,t
{z

tC8qbbb{y{x{K  t44t

4\<-7ʗ7-tD&c+zi0&H.0,-##s&&2iGz@@RQT+c&&t
 B
c
tV``VOV`TT`VTT4y
&N
)B
|~aiEjVulѬo70 XDQ`V47mGGT4
y
&
naxjigxi j(C(jgjixhi5' ==' 5G+

n5Y' ==' 5YihC ix+


TU
	*T+
)TTDTT\
TA
T4
TT?

K@

R҅RDyyyy
p<
Zyy.

p:t+t
:4  +
:H : :::`++t
$9RD}
9

jMPdioo '.<WN2XVu=
z



$]UM'6"W
NQ(YcjMPimpP~~~+r+UQtb3L?0X3>X=
@Qz
 @

 s]LTf
T)&

Y
ffffzM{yz	zyz	%tJjZ!!
!"И
$yf+/YkzX,Hn|}1d
Z\I<PW3֩ÓWW}Ou[}zyyy}p~u[BO}a` 5_qUU5
yw{z q~}mnnwmr 54Lt~w~t8ttJt=
t
ttTTX
V``VV``V5!X!55!DMje!_NPZ|UzXrĬX
DMjRjdMD!5dR쿣3>ێĬ TTTpK
=b
tL)M
?mUzxwyysqFggKgywxzpTmӨ'&h~zUB>>CnUU'&TUmC>>CTz~p
y7L)M
?
+=
,
K
5
K*
* U
1T+NPU
1t+*/ohhonhhnS3@
<;|#&%6NkjhW@F
x}pU3@
@<Y;|$&%6NlihWF
y|p9Iv]Yfh{osjeV]]nw uK
JQT*FhltnݖݘƎqDA5%!*QTFhulstnl_a99:P~݀*Pk9okթ
G
l
]H
tkD9
D5
DD$$DD$$DH
?CI
9
..9~`nH
AEND$$D^
5
DT% 7;L9\XpqTTU
19$9 :V
B
V
}yk4@K
T+}~|C3knr]J'V{ke{ohc-#+*/&|~T+ `t{yS;RQPIODwt{K6Ktqn;<-(
(
=vvkhF@8f!!ZZ
ZZ
%

!!fa!%
Ƿ

ZZ
!!%
ZZ
ZZ
!!ZZ


%
X!
?6IY(uC XVYx\b66/
PeSGQGz5:5'DN5(TKKT( T K
4L~~'1A3ZpT/
T7׷
,9_7XT1
 .TZA1~P)~Q1Q1.TTt
.D
kKh@@h
yy

$
HTHTHHTHTHs@
-&
|a99az~'
z&
|33z}'
z99S fj
wvttvw@+

s
Z@@@@֋Y9ZYYY9Z@@@@Z݋ 
 

 <
tLf
?QC3&@9{sYsn{xput}T4T~T?T/}4TTru|utpxnurT}ynnA

gggg
%
 T(@WWS+}}F簰ɋf,,fMff zq{ttz{9
%
9
xtn
t 4G{zs{4O!mFNB9x*}}~5W]4x
G ttTc##

yussu~uvqxTzTQ=
y7}TxvvxzT}xqvu~=
zTxqvu~ussuTTtDT;
T5T}yTdyDs4>$0K_|h)!<z35#N2);2
hekI
z|P諌2v#L6)I2
kG\L9xs,2
*
*2
P[fdL"* & _D
z|}yHec$,Lt1HDU
\+!W)E $z ~jCy}?Ch&5`L?vk}?
;z|% e@1;%2
?nPD
Q](E5UW+M3T)3w'T<|#
?}ykאSS8x_uaz`{{sk=Vj
#2
6;$2
=
@{_,1!T!1NH	t)2
t
t;2
tT=
;?T

NHc@3uk1@:6zi4LG%
쎔|~}.)|}~}*1~|f
"Cf
d4}3;e:}38i1..`zJ1Z.cbb.jjlh8ʟgk&wl`lK`\..H̢W/&~kSڡ#ڨZDpA4Ifl,,}7-
@0
V`f,,}llp8V`7-
@0
tTT

%
<
}|


%
1
2<
}|t%
LI

I

TI
T
I
kLI
?t%
4LTI
T?TTLI
?TTLI
s%
jma%
dj 4Tgnohgo
4
1+*3#؋Gt`aMPQOddlli`g]_Q+fjoojhovuf \#ͥȅ֤ TnhgooghnD
4e
D
n
)|mxrze`I3}y?z#\f LuOvhimohjoQ]`ldOQPMa|tGmqvin4^ːΆ̀ƏnX+}j{xtzj1HLzii|E;;]SHv|~}Iqzxcypst}qv5Hίp}Gq|z{t}ypjip~rx}xoddnyr~Wvuyi0izj60w7~Q[`R|R[~wߋƻő|ą`P805]A]|s|z|WW[dm}yrxq~jiqy}~rxndImpr|rv| {H lDzك{цԨ_~q|||||f|mm|t^]Z'X"-Ibgiwknv v}(]jvgrxhklm[2+* mxfwj]Ynwwy{hsfy\\hqxAzireV$G4]t~%]~smn}ft]fcqyJ>LNMMNwK=KQx<r<Q؃vLNMMNLؓŞzGD!MLM.EZ#xrh]^hzirxrdVCVdqiz0nwx}y0gs|rT 
7yg}}~5T~~K}g|ut~$zmvs:ssA~Tz}xpMXlLy{q-gpLn}t"VOw( cuvxw~~vu#,lu=-rutturr->Cu)k,##,)CrrutturӠ,#˟
&~'+' }~~}}44W+W4tl4}*UJ*d&?K&>G5#p)qM)?==BRippiip!~b^^jcjc~9?>99>?9elleBel9Ble9Bd 2  22  2 v  < <T
f&]&8t#4#4-_G_G!r 9*Hb=gh`̀,ް5-"MM/8(x,(90KǲіɕOTOm̀ցQ\Y5Yy{))+)jxYhmG{IUsV7=o{vu! z'f@o&d1caaPEb4"f|aunO鿦ɯ˱nno5.OB\WQĦdRۛ~-aOpbKI2C@lU[s^Yoc`̄ƃ ~ƒΑ~vD,@aD1"@3byЀѐl"k"rbsIr3p1o1]_qewG1('$:er)n'y*ԧӥؘؒ6;2]zt[uns o/
<yJqWqXi_`f`gWoOwm>EUffhjkqzyɂőơͪX>>r=_diry  fZt^zcc`]V\cchnow(78IH`xx|{ŞI1u ~t8 t~~

~t 
t tL t~
򕃘t
~~t Jt~qqPV]]tסжihhMD;ZQuItI[nt]FEQZ-[+@@*e-8;@@4uvǹߤp7ZYCYCq5(
>>>-r>->j7)
1auabtavzyvvzyu:uzyvvzyvLR]]SBR]ĸB]Sx*.NZwR]ĹwwR]ĹwǼ|CNGCCG|pNC!C,313, q|]RS]^RBR]Ĺw$䔻kiᦿůI7Y=+kt}n~x?z}}}b;u{{~  YP
K  S{TSm  {qiTAsFGKiwzw  o_ewkjZ ˒lshztu|Цy  u"5@ '\ϊ؊sqٱ  .&7e}|_g͗ 5|qD|unlaK]~d iqqquzw|wʎó^=~Şv}M,7QupzTS(pzKYN  GJ b/ѓcctup4K6gp1zy  yr7Y}{w\   @  wxFis}txyoGqtsp^)X   )iz=J<I
ԑyʂXjeˈ  𫐠{yM9<  IbquҏБZ=Z>Fdf|oL{1$+#~[G0`SQRne*wXjsIx[Ͽ^d7,vX9<DBcr~}\{zeugwTqtmqFXec_d 5dyq]ŉm]nr╠Ĩ  ԰= j<5x03%\QMG
#K.<؃fff h8z_=K8^@mK#2'(hU5hKQy%."/b7@:,M%sysvn}||,#/!@m_X-PuPª.MĲT2&&<_]AQS@QdXJ*13SsVQ~ys"k=OBmmYXX[J:3
3:J[XXYm`{ jҋD҉pqg}fortx*,p|{qPP"#DDDDDDD>~~}~}~~xxkw+,
nnx44TTDt;
5t4
4Dt;
5t4
4
tcMAAM[Pc|xxEw/6
TMY4ɽTD
/wp{94
TttTC
!55!4E$dd$E
f~mpk`YyuݶSHkpf1H!x
HH-Ho{H遏+HH+HH-}%I3URH!f_xxoriB?z<
."to2|3,C˟
Te
hn/
n
,
1T+*U
 1+c
N @`U
tAAAAAAAAI't	t2F^wtpcsKcI>ZY2deҦt*tE##E))o}}4u{zu\O#nWvZh,lt:$4Zsj{rglb1XldvG'bQ^{yqa|x|{jjs}.Ӣѡ?IYKk.#4)sV
1| XRf
7n]Mw]^}ǟxwVo]ytyywyB A'!3EMM!#] ([B4WtImnxWxWtIWȇ$rzӎlQ3J>Rq_(%vv==)G/H{uAR6=zkwlkkwllaelj{RI7
A5ifsgffsh./gge
0lF
fmiE#=[Z\Z#=EOiNQ@QyQ@QzE&}9ً܉{H[1N[GCJۋz"q*g2EKa"81&*a/rwxrrwT(v]*I0  K
K
3  30H

p-Tz|
4#


*
T|
C
T3
4#

TG
~~TzwwvxT/
4=
K, dp]F47zw8,lr7RZ(x[ts[{+;fC3DK^Fxukrlqv}~F61fH1:4%Oft@oZ)i<oz|v|sdSLPrkŪV_WMY2E= ¤ W)A8ӻǔቴWf[\q tTt
TL4)Zdz{

I
4;
.
2
4B

tL1
K;K2
=
?QC3&@) 4՘ΖT˫KT]HAF-"KKy}g_yz}>Q~{{~؉}zy_gK飳ܩn_ZZp_bn:vkbA*t%ndʋ̫44m4tbm++44kkLJJl.d
|{|8S"1ÞH=|}}6TV5wSL<JI<{{|4"U4wTL;KI<{{|31VPwcSM;Nۛ00VPwcSM:Oܜ-7OdٛT89OdڛS;@ǠL9"
T
V``VD
V`Hzu|KRKjgůɣYPOdq2P2R2QreL]]]Le303aSó^Un2oE`+s!jmdfJ\e܌<bdaʵ֊ی!z2vԀ<rqo=w5d:y.hO6&&&&&&&&)kkkQkkkkkc
ɲ~=`Uf6@IV`b1N <:M@xi]'8NTc
T$hnPelnhK
leP;T
elnh
le	 PI{{{{{{Iy!}
~$~}}#M4m	eupb[^dtQETQEreĸ b$0Y	`	__	fdeggh1(', geffghaCN~WN;Nh[OE"iY@7M(7fWpb6E9	PSa_giOsZG
ŧH(u.f. 7CX
~orkOb4.QE-]]d Md*SkC;
3-iأ;WثXM@@KL?@Na@KL?@NM@H&QVugc,YgA%8P8$?I]Inwwx;XseQ4%cWS &&;DcuuuX6*@:qO~~p;?*6ϲuǼZOOZZOPOZǼuݩ{4FN;k5lw'.bSoob.)9).boobS'.)*9)*lN5H9\uahoWW4r5W|s||||r|Hk((||s||/FgF#JiiRz9
"9Rj{{`v
"Ϡ{pcZYdcZZaHkcdkkcdk5
EE$$DD$$EE9
Dyyy\66\`nϰzq*wUTHHTUHIU͊b8(`HSGVj^]yZccZZadY+)**MOvrqvvq 25 3+qv6!Mr34  2oqv*!)```NW{WM}|XLy R]^SS]TTVQ~ùù]SS]^SS]WQURTT4''tTTttTTtT a`aa`aMk`+
8aMakap`a9M<97Ba+
8M97Ba+
gg[o@CG%:`dhbgbۏ֯Ȱ:%G?G%;adhbgbN;%GH 7@
QYr3FZXaXxwx_blkx B) K%Lo3BJwu~kuxuk?Oz!xyxvzAY
Ϲ[Djmhl|{{̡ԡԈ֊j8ч5T &9E
Z$j@b<r(B{]<6TY uZ|iJC^E,g_zsyubՖӪu^@q-1ݛzJ1jI1jgTiԻ EY}MF{M`@]~tvtz,~@Y=U/0Aqt  תdz}PPxvtnos~}mzVz-cObPru[NS=)id<&li@XsՍ0ZZ6:3W4U_U266WBN@	h[aj6GUv@cLj^HI,+T(jjc+,54+,mmZZ;ZZ۽+,33m0vH9*/o⩩+,44>4q{7$//)9wh	0m+,54+,44,,nZܼۋZ,,>'l4n,,44,,44,,mZ;ZZZZ;Z+,/o-D/#5>'}n00nm,,54,,44,,ۋZZ;ZZ+,jJѲ"^z}i{ѧ錐zss^myzSvnnU{uuwz~ڦLvewe:rnwt]R{ϝȹ̯\jtazm|}l~~nh~uN?MamJ}fg^%llI%uXBlznxj|Z6{&1~\NULܿI4'6kZ6nNwaT
z`77lf,,fAV4n w
W?tq4444
4I@c

:
>
P
KV
T>
?
KV
T>
P
KV
T>
P
KV
y}}yKy}}yT,
.
,
y}}yKy}}yT,
ttpfeOefxxxxeOeffeOe8

 *`7Q `6w%	Y4W%*%	X4j% 1g6` Q7*` D4	Y%*&4	X%WT#EE#\[^hnT^\z.}TNNNiYT}||||}TYyi[U\`uTT+@8TjMQMQMQWm[FN$l\TT{zzzz{TT\vl]X$FN\vl]X4[^vTtTtVo8>A,'>&&2uQeGWn!eq=s)b?ɽX/c o E`(yk2@	/POlAAT
	e1<fXEioB(4G#ɷRM7LMģ[?Qmkȥa3N@HF?AG!</0U @Y\@քd=6>nH99IH99I~}}HUTI[_xq7GÿlY7GG7RWq|sEFF7X$78$%77%--,,Aegxkv6*..-,GV-.ޣN0LWabXXaaXn{kgV``VVacfy}xI`W`{{_|e{d_xd|{{lwWKJWWKKW˿+=>,;JTWHMW~}YwusCQȿ_Q}Y /=+= D>m2W._Z8nE 5<hLhLQRSu'/>0Agz8(ҒӑP0KC'ZL{o_uOn	ɋ#xW{DߥpBdȋeE)3+57wp	 
o"7lT!54
!5Z
 
o"7lKt1
T;t
K!54K!5Z

&'y=&'Y=t
bY&'by&'bbKHJjp
̃ΈbNaouwr~'89{={mx<*e>okjqpi{AR*7}xE|}jp]VY0-|xp aime{}ld""p*}|blv\&A}xfa)!ҽ%$u/
>MM>>MM>fllffllfۏχZT˛s jMhK[W!%1غ6R}tn__}zv@);mx¿8~~}~hs׌$zctc^_Pvv~w~yf{h{

Z~}}}}}||{|Z}	z}{10df}itj\KMuTuzy~00f```
<

!
}
!<Ǒml 
D4CPWhЌǌʕ|vw||ryIs7h3^1c:gJlXJU>]wD&_nr6Hgdalor@/K&``m}",y }z~|{@Ë)ҧ̞ȭBO`)y)o3hm^Zx: 
4i 1J{z~v$${z~J1 E8)3y{||y38)E1ϕ 
4gVQG ?33A HWT! 5|x$5!~ 
4t/|h7S.1l~gd`;!Ъwgvph 
4$TTT
!5
PfAVn-
@0

lfPzz$#
 c
$4
4rn<H(vMzzy :(( $u6H!eDRĨnhhRnDK 
4 f~:;I
:;5E}}oۮhJto%]8%{~yxg(|{~rxjrqO>99l>SO~~zzK 
4
C1 
44v{v}JJ}X}w}vw}Xe}w}JJ}wev aʁӎyLzzyӈzzyuYaaff6&̶QHyA~`Dޟ (#PgQ+<3%!!!S|BDMhߺ ђ.-.-.lHs-U7sH<JJJ?H&Urs&l~v~||||~v}~rrrr} d ^)[OK0-npqD:)rJ?t~rIFo9$"%9/iüIIR^rdclmkԧ2*:8)0\pFN[BA\ŸghgGDDl)3=@
c
%%
%%jR VVVTPQSyVVV :R j VVyVTPQSVx VVyÁVVR j

xmŁyVV jR  W
FPp
pFM
W
v|y*|8G}AIrw-u\?	5'p$ PY84I5K G3#T1!I%>HGUB&- -%bbd&-JRprvQiu,t~՗Ӣ9RMgĬx{}ާEvhrjplJ- ?&n@5dbbI,ueui`M6 fXPljiijlPXlf`M6`ZiRuL};pommop|;LRZM6`m[E
[ƗM6Ġ|}+vjS&zzgMRjhed9oICAA~CtIo}d{fxgj;v+Iz5&o? mjhĬ7;jjjjjjjj%%%%
\O+:xOa_UTS˄@gftXRweWWk :{z{zzy"J<%wly}jhw|m'!+\!ոϡnMbx7tttpopyjef{ m~	Ǻ iii	yzyWuf^V]g`[[f_\ `Ujf#b'^ jTm4=yBF$3P:kS43g߫ޯG@pFAw@UMMM%O&iWtLXU_ogBFbWR?d/yH(#-:=;ra``^_^rrukedA~ R?wnmm(?+RVB=jȕwS<;QE>?FfHG*77<=76*| X`X4! 55 pqsa_^U^HKʲJpwm7ųu~`//:q~iykkkkkkgfhopypoon0
+(\fmjő¡CB{gtzldg{S)ik-z/Rɮ٫ސq,Þ2=5qnYVL9+3 zZ$;;#}MwzVqzvy^oyzz UggTUT¯¯gT{fggTgg¯ggUggUTUgTffgUgggg!Mm#[8ICnyy|죢Ԟ[TI& %7(~~Tvtsrv61psYM(wpv~Tv~tsrvlUXqsk%]r;;YS<!m
i

/

'
<<<< bXkC_}g555333g}cm6ﳽmv%f~~O~~~a}g767/./h~bn1lp.[Rh5kuZi/4oe
^Wf7h7jvWi'2nfz#zCpisL2r@;pEVP<Q<m+,4>;Odlw#>
ƭ
4
44
KԼ
l44=
T C
l4
l4f7>jVRH%HVj)HR>7)E##EجHE##E
	++	
+	heXuS	+

	þuh	
	+	
++	SXe%	+
 9/ː/4Gj{fj}^11^rt|qj|$$P|jBGrbrrKK&	j	Sˤr(Ge~1~w~~w~1zz0v~~v0KL+)M
?TT}yD+M
3+~w~10~vp@ (  V \ j {        #.26<@DHLP^kLPW\,06:>B&*37=AN$U]jntJY]b}-2JSX\/4AGNRV]diy		$	C	K	S	_	p	z									
 
	



+
1
>
K
Y
_
d
l
t
y






4I^r %-2CL]ns{$)7ESajpy~	#(.38CNRZep{fAVn-
@0

lfPzz#
 c
4
T"
33T$

Gt$3333n-
<<.
>
T9
T>
6KeKP1+z
DR҅z
DR҅0

$y}}yKy}}yT>EDS4
D
9}y=
A?
W
':
*
*|zKz||zKz|>
G
A
Pffo
M
H
#P

R҅RDQ
>
P
3(nh#J|z@z||zTz||zz||zTz|ԙ
@-AC!}
y}j]^hYE֊ׅB
?Gߩмqٴ̟'(͔͂z'w!q=wVF7HJ?xs]C$YE
ff7
ffBb
}yy~l

1+
/
!
T%
T&:
DK;
hn(
3
'`t3CC3qXtT{8t3CC3qU
6

TTmTTD;
F/B
NPuc]T<Od}}|1B&2B]]{Y
|

T8

g[ jih';K2
81
K;2
?zzzz3')x~D&l&y;;/
<<<
<'
e
yots{tqT+Tx
Bffb
z|
T'+TC
tV`;*KzzT!5{z!}


hn
::
&&8
RD}!1!6!:
1+*LfeNzyz# u"=1?u՗q?˕
8i8_dd_~~x
zƅy6TeKPTY
''''z|m/
c ZZrn-
335!!55!-

1
K
CtIDtt
ttA
T5tt^
-^
h@@
h@@h
{z
0

tt~w~~w~G

}D;`L< xra
tK2
?
h@@hz{nhLT}D}}
kh{U
1;
5DT;
i]re
 }t.+ݭ!
K6@-Y
 
c
@g__gg__gn\n4*<씒<Jڔ@6T-TY
%%%%L
!
:
1

v
L
0ZZ3D
3C Uf-
T0
e
hn

2yqpV``VV`$
c
}E
rcrr 
LK;DDxyots{=
U
&}yDM
3MQ5e11eBBquuqqu;;uqt6et{zz{~}tr
y'&w__cp] [0"WOG
	4
4wrrs6&&*Ez*6z*E!e
!!z~w~~ryyyya

P
y6%6-?TTL	_$cX!w
zC{
|z
@.<<y}|z3O
 i4`T
:z{z}`M`M@hh@t6TU
)qt{tsoy333vKD$$.T$$'ɷ3s}2
5!%t~H6*Ö`VK-
nh*Vv6-
T       FFTMg+Y     GDEF   8    OS/2z7  X   `cmapJ    cvt   \   (fpgmS/    egasp        glyfB   headh8    6hhea	    $hmtx~   loca= x  maxp{ \    namePx |  Xpost   prep+ (   .webfSs (          =    Tt     ϙwi                        3   3  s Z3                            pyrs @        #                                       \ @           
 / _!"""`%>N^n~.>N^n~              / _!"""`% !@P`p  0@P`p d]YTC2߸ݺ                                                                                                                                                                                                                                                                    	
                                                                                   p%   tF #     f  M '   , KLPXJvY #?+X=YKLPX}Y ԰.-, ڰ+-,KRXE#Y!-,i @PX!@Y-,+X!#!zXYKRXXY#!+XFvYXYYY-,\Z-,"PX \\ Y-,$PX@\\ Y-, 9/-	, }+XY %I# &J PXea  PX8!!Ya  RX8!!YY-
,+X!!Y-, Ұ+-, /+\X  G#Faj X db8!!Y!Y-,  9/  GFa# #J PX# RX@8!Y# PX@e8!YY-,+X=!! ֊KRX #I  UX8!!Y!!YY-,#  /+\X# XKS!YX&I## I#a8!!!!Y!!!!!Y-, ڰ+-, Ұ+-, /+\X  G#Faj G#F#aj` X db8!!Y!!Y-,   %Jd# PX<Y-, @@BBK c K c  UX  RX#b  #Bb #BY @RX   CcB CcB ce!Y!!Y-,Cc# Cc#-                   1   ]   = /Ͱ2/ְͲ
+@		+@	+
+@ 	+@	++ 014>3!2!2#!"&463!&]$(($+@&&&&@+F#+ &4&&4& x+       +    +ͳ+)Ͳ  +,/ְ$Ͱ#2$Ͱ/$!+"2ͰͰ/-+6 +
#.#""#......@(9!9 9!99014>32467632".4>32".Dhg-iW&@(8DhgZghDDhg-iW DhgZghrdN+'3
 8(2N++NdN+';2N++        ! P   +Ͱ!/"/ְͰ+	ͱ#+$9	9 9! 	$9016$ #"'#"$&     oo|W%L46$܏r1ooܳ%54L&V|oMr         * M I   +Ͱ"/5ͰK/N/ ְͰ+2+B2	ͱO+ 5"9K&*$9015463!2#!"&73!265+".'&%&';2>767>5<.#!"^BB^^B@B^ %3@m00m@3% :"7..7":6]@ @B^^BB^^B $΄+0110+$@t1%%1+;	
          / ְͰͱ+ 014632>32"'.>oP$$Po>4
#L</+I@$$@I+Z$_d    "  47%62#"'%#"&547&8<8V??Vy%	I))9I	%b     ! +  47%62#"'%#"&547&%%8<8V)??V2IzyH2Zy%	I))9I	%2b'[)>~      ' T /Ͳ
+ 	+2'/#(/ ְͰͳ% +!Ͱ!/%ͱ)+! 9%999 0154>322>32#!"& 6   6Fe=	BSSB	=eF6 yy@>5eud_C(+5++5+(C_due5xV>          / ? O _ o      /ͱSt22/|3#Ͱ2,/[333ͱc22</3CͰ2L/k33/ ְͲ 0@222+'7G222PͰ`2PW+g2qͲ222qx+222	ͱ+ 01463!2#!"&7;26=4&+"5;26=4&+";26=4&+";26=4&+"3!2654&#!"3!2654&#!";26=4&+"5;26=4&+";26=4&+";26=4&+"^B@B^^BB^&&&&&&&&&&&&&&&&& && && && & &&&&&&&&&&&&&&&&`@B^^BB^^&&&&&&&& &&&& &&&& && && && &&&&&&&&&& &&&& &&&&        / ? B   +,3Ͱ$2/<3Ͱ42@/ ְ2	Ͱ2	 +02)Ͱ82A+ 015463!2#!"&463!2#!"&463!2#!"&463!2#!"&L4 4LL4 4LL4 4LL4 4LL4 4LL4 4LL4 4LL4 4L4LL44LL44LL44LL44LL44LL44LL44LL  	        / ? O _ o   v   +<l33ͱ4d22/L|33ͱDt22-/\33$ͱT22/ ֱ 22	ͱ(22	0+@P229ͱHX229`+p22iͱx22+ 01=463!2#!"&5463!2#!"&5463!2#!"&5463!2#!"&5463!2#!"&5463!2#!"&5463!2#!"&5463!2#!"&5463!2#!"&8(@(88((88(@(88((88(@(88((88(@(88((88(@(88((88(@(88((88(@(88((88(@(88((88(@(88((8`(88((88((88((88((88((88((88((88((88((88((88((88((88((88((88((88((88((88           / ? O _ V   +<3Ͱ42/L3ͰD2-/\3$ͰT2`/ ֱ 22	ͱ(22	0+@P229ͱHX22a+ 01=463!2#!"&5463!2#!"&5463!2#!"&5463!2#!"&5463!2#!"&5463!2#!"&8(@(88((88(@(88((88(@(88((88((88(@(88((88(@(88((88(@(8`(88((88((88((88((88((88((88((88((88((88((88((88     y    4?62	62"/yP&P,P8PP,j   n #  647	&4?62	62	"'	"/n&P&&P&PPP&&P&PP&          D    +ͰB/73%Ͱ/2B%
+@B=	+%B
+@%*	+ /E/ְͰ@+&29Ͱ.29@
+@94	+@9
+@@!	+9+	ͱF+@ 99999$9	9 9B $9%	9 999016$ #"'#"$&     546;546;232++"&=#"&oo|W%K56$܏r@@1ooܳ%jK&V|oMr @@        0 h   +Ͱ./%Ͱ /1/ְͰ+	ͱ2+!)$9	9 9. $9%	9 999016$ #"'#"$&     5463!2#!"&oo|W%K56$܏r@1ooܳ%jK&V|oMr @@        ) 5 F &/6/ ְͰ*+1Ͱ1+!ͱ7+*&99199%99 014762>54&'.7> $&462"&+i *bkQнQkb* j*zzLhLLhLBm +*i JyhQQhyJ i*+ mzz4LL44LL          / ? O b /,<L$3ͰͲ
+@$	+@4	+@D	+P/ ְ	Ͱ	+Ͱ +)Ͱ)0+9Ͱ9@+IͱQ+ 01546;2+"&%46;2+"&%46;2+"&%46;2+"&%46;2+"&`@@@@     f n  M/jͰn/o/ ְhͰhP+2JͰ2Jl+5ͱp+h S99PQ99Jijmn$9lH995 F99 jM;a99n90c$9.9901546?67&'&547>3267676;27632#"/+"&/&'#"'&'&547>7&/.$264&"(C
	,/1)	$H#H
	,/1)
~'H Ԗ..9Q
$
k2k	
w3[206%2X
%	l2k	r6
[21ԖԖ      # / ? G W g  (  +Ͱ!/.33ͱ@22E/	h/ְ$Ͳ$
+@ 	+$0+9Ͱ9H+QͰQX+aͰa-+Ͳ-
+@	+i+0$99@9HEG99XQB9aA9-9 !(4<LT\d$9015463!7>3!2!2+#!"&5#"&3!2>5!46;2+"&!'&'!46;2+"&%46;2+"&5FN(@(NF5`^BB^` @@@`0

o@@ @@ @%44%@LSyuS:%%@u		@@       f ! 5 = 3  +.36/"ְ2Ͱ2/++Ͱ2+Ͱ/7+/2'$9 016762546;2#"'	'&/465	#!!!"&
 X 
>LL>??& &oWh
J	A	J& &&         # H /Ͱ/Ͱ/$/ ְͰ+Ͱ+ͱ%+9 #901463!2#!"&7!!"&5!!&'&'8((`8(8((8 `(8 x
@(8(`((88H 8(9
         ,  
/Ͱ*/Ͳ*
+@!	+/-/ְͰ+&Ͳ&
+@	+&+ͱ.+
$9&	$9 * $9$901$  $ >. 546;46;2#!"&aa^(@a^(@`@  2  N  1 C * 0  +3(/5Ͱ?/D/E+ (0 9901747>3!";26/.#!2#!26'.#!"3!";26'5.+"2$SS$.@@.I6>>6I  @           - 5 = u   +1Ͱ82  +Ͱ5/<3
Ͱ2>/ְ"Ͱ"3+7Ͱ7;+Ͳ;
+@; 	+?+")*$93
.997&9 
)*99015463!2?!2#!"&63!463!2!2"'& 264&"264&"8(ч::(88(@(8E* & & *@6@L&4&&4&4&&4`@(8888((88'&&@')@*4&&4&&4&&4&        0 m 
/Ͱ/1/ְͰ+$Ͳ$
+@$(	+$+ͱ2+
0$9$,-99	$9  ,$901$  $ >. 6;46;232"'&aa^(0
a^(^`		@        0 m 
/Ͱ/1/ְͰ,+%Ͳ,%
+@,	+%+ͱ2+,
$9%99	 $9  ($901$  $ >. 4762++"&5#"&aa^(.
?@a^(?		`         # %   +Ͱ2  +Ͱ /$/%+ 01547>3!2#!"&!!7!.'!
5@5
&&<_@_<<@>=(""=>&&
         ' F 
/Ͱ/(/ְͰ+ͱ)+	
$9  $$901$  $ >. 476#"'&aa^( !    a^(2%J	        3 = 0/"Ͳ"0
+ "'	+/4/ְͱ5+ " 999
99016$3276#!"'&?&#"3267672#"$&zk)'&@*hQQhwI	mʬ8zoe*@&('QнQh_
	
z     $ G ` /Ͳ
+@	+2=/)Ͳ=)
+@=E	+52H/ְͱI+,/99  "#999=9),./999011463!23267676;2 !"$'"&5 !2762#!"&4?&#"+"&&&GaF*@hk4&Ak4&&@&ɆF*&&4BHrdnf&:Moe&@&&4rd            / ? O _ o  q   +Ͱ-/\3$ͰT2=/l34Ͱd2M/|3DͰt2// ְͰ +0@22)ͱ8H22)+	ͱ+)PX`hpx$9 015463!2#!"&73!2654&#!"546;2+"&546;2+"&546;2+"&5463!2#!"&5463!2#!"&5463!2#!"&^BB^^B@B^@@@@@@@ @@@@B^^BB^^B@@@@@@@@@@@@@@        O   +ͱ22/	 /ְͲ
+@ 	++Ͳ
+@	+!+	99 01546;54   32#!"&!54&"8( p (88(@(8@ Ԗ`@(88((88jj   @   7 X 1/Ͱ#2 ,Ͳ,
+ ,5	+8/ְͰ  ͱ9+9999  $901462+"&5&476763232>32#".#"#"&@KjK@@@ :k~&26]S&ך=}\I& 5KK5H&& x:;*4*&t,4,	&        K k A  +3+/L/ ְ.Ͱ.D+42=Ͱ=+Ͱ 2'+	ͱM+D.H9=*+$9'9 +A	 990146$ #+"&546;227654$ >3546;2+"&="&/&4L4<X@@Gv"DװD"vG@@X<zz藦1!Sk @ G<_bb_<G  kS!1         463!62"'!"&&M4&&4&&M&&M&        -   ./ְ'Ͳ'
+ 	+2/+ 01463!62"'!"&%4>4.54632#"&&M4&&4&""""&
FUUF
&&M&&M&*.D.%%    G  - I k e i/`/l/ְ'Ͳ'
+ 	+2'5+CͲ5C
+ 5.	+;2CT+eͲTe
+ TJ	+]2m+ `i+>G"$901463!62"'!"&%4>4.54632#"&4767>4&'&'&54632#"&47>7676'&'.'&54632#"&&M4&&4&""""&
FUUF
&d'8JSSJ8'&&e'.${{$.'&&&M&&M&*.D.%%'66'&;;&$[2[$&[4[&               # ' + / 3 7     +,4333ͱ-522/3Ͱ /Ͱ/ͱ22"Ͱ/$3Ͱ(2/03Ͱ12/*3Ͱ%28/ ְ2Ͱ2+2Ͱ2	+2Ͱ2+$2#Ͱ(2#,+ 022/ͱ222/4+)227ͱ&229+ 011!!!!!!5353!353!5#!%!!535353                           # ' + / 3 7 ; ?  4  +@< $(,08 $3@/ ְͰ+Ͱ+Ͱ+Ͱ+Ͱ+Ͱ+Ͱ+Ͱ +#Ͱ#$+'Ͱ'(++Ͱ+,+/Ͱ/0+3Ͱ34+7Ͱ78+;Ͱ;<+?ͱA+ 011373333333333333333333333333333? ?~_>_  ^?^??????_^ ?        . /Ͳ
+@	+/ְͲ
+@	++ 01463!2#"'.264&"L45&%%'45%5&5KjKKj`4L5&6'45%%%%JjKKjK   k   5 J /Ͱ2
+@	+6/ְͲ
+@	+0+%ͱ7+0*-$9 01463!2#"'.264&"%32#"&'654'.L45&%%'45%5&5KjKKj5&%%'4$.%%5&`4L5&6'45%%%%JjKKjK5&6'45%%%54'&5   
y T d t y @  +PͰ:/XͰa/hͰq/1Ͱ,2u/v+6=<c +
DELK DEKL....DEKL....@ X: 99a99h9qG90174676&7>7>76&7>7>76&7>7>76&7>7>63!2#!"3!2676'#!"&'&3!26?6&#!"73!26?6&#!"
,*$/!'&JP$G]
x6,&(sAeM`>`.
&k&
("$p"	.#u&#	%!'	pJvwEF#9Hv@WkNC@@         / ְͰͱ+ 01546763!2#"'	#"'.'!!''!0#GG$/!'	"8		8""8 X!	8    ' + 4 < o (  + Ͱ+/,Ͱ $38Ͱ</Ͱ24/	=/#ְ2(Ͱ,2#(
+@#	+()+-2ͱ522:+ͱ>+ 4.901546;463!232+#!"&=#"&!!!#"&=! 264&"qO@8((`(@Oq8(@(8(8 &4&&4Oq (8(`( qO`(88( 8(Z4&&4&       ! ) n /Ͱ)/%Ͱ!/	*/ ְͰ#+'Ͱ'+ͱ++ 9'# !$99 %)$9	!99901546;7>3!232#!"&      462"j3e5 5e3jjj rgj1GG1jjr     H P Y '  +3FͰF  $A333Ͳ&=2224/KQ/R+ F!?D$9'947999K9017>7;"&#"4?2>54.'%3"&#"#2327&'B03&K5!)V?@L'	>R>e;&L::%P!9&WaO
'h N_":-&+#
:	'	    5 K a  Q  +0Ͳ  + Ͱ[/@Ͱ/63ͰJ b/ְ`Ͱ92`
+@	+2`S+*ͰE !ͱc+`3699E0JNQ[$9S'9 [Q*99@'9!E999017>7><5'./6$3232#"&#"32>54.#"3 4'.#"$$5.3b[F|\8!-T>5Fu\,,jn*CRzb3:dtB2KJBx)EB_I:I^%/2+	S:T}K4W9: #ƕdfE23j.?tTFi;J] OrB,<!
54       9  -  +/Ͱ 2/Ͳ  +/Ͱ2:/;+6> +
	)#	+	+)$)#+%)#+&)#+')#+()#+	  #99()#9'9&9%9$9 @%	#$&'()...........@%	#$&'()...........@ /5799-999017>7676'5.'732>7"#"&#&#"$zj=N!}:0e%	y+tD3~U'#B4#g		'2
%/!:T	bRU,7    a }  (/%*-Y$3Ͳ(
+@({	+=D22(
+@m	+22~/ֱM+2Ͳ2M
+@2;	+M2
+@MF	+2e+tͱ+MD992A99e=bi$9tlmz{$9 (&9017326323!2>?23&'.'.#"&"$#"#&=>764=464.'&#"& 6;#"&?62+32"/Q6,,$$%*'c2N 	
($"LA23Yl!x!*o!PP!~:~!PP!~:~pP,T	NE	Q7^oH!+(
3	 *Ueeuwgn% %% %       a   o  +Ͳc  +z  +Y/ '33/ְb2Q+*Ͳ*Q
+@*8	+Q*
+@QC	+*+Ͱ|2+QAIYlo$9*>9@	
':prv$9z999 o99Y@	 $<`fiv$901732632$?23&'.5&'&#"&"5$#"#&=>7>4&54&54>.'&#"&47>32!4&4>32#".465!#".'Q6,,Fa w!*'
=~Pl*	
($"LA23Yl	)!*	@7< <7@@7< <7@ pP,T	MFQ747ƢHoH!+(
3	 tJHQ6wh86,'$##$',686,'$##$',6           / ? &   +Ͱ/Ͱ-/$Ͱ=/4@/A+ 01=463!2#!"&5463!2#!"&5463!2#!"&5463!2#!"&&&&&& && && && &&&&&@&&&&&&&&&&&&&&&&            / ? &   +Ͱ-/$Ͱ/Ͱ=/4@/A+ 01=463!2#!"&5463!2#!"&5463!2#!"&5463!2#!"&&&&&&&&& &&&&&&&&@&&&&&&&&&&&&&&&&            / ? &   +Ͱ-/$Ͱ/Ͱ=/4@/A+ 01=463!2#!"&5463!2#!"&5463!2#!"&5463!2#!"&&&&&& && & & && &&&&&@&&&&&&&&&&&&&&&&            / ? &   +Ͱ/Ͱ-/$Ͱ=/4@/A+ 01=463!2#!"&5463!2#!"&5463!2#!"&5463!2#!"&&&&&&&&&&&&&&&&&@&&&&&&&&&&&&&&&&            / ? O _ o  R   +L3ͰD2/\3ͰT2-/l3$Ͱd2=/|34Ͱt2/ ֲ 0222	Ͳ(8222+ 01=46;2+"&546;2+"&546;2+"&546;2+"&5463!2#!"&5463!2#!"&5463!2#!"&5463!2#!"&@@@@           / ? O 6   +Ͱ=/,34ͰM/DͰ%2/P/Q+ M4! 9901=463!2#!"&5463!2#!"&47632#"'	5463!2#!"&5463!2#!"&@@ 	 		W@@ 	 		           / ? O 6   +Ͱ=/34ͰM/DͰ2-/$P/Q+ M49901=463!2#!"&4632#"&5463!2#!"&5463!2#!"&5463!2#!"&@	 			@@@ @				             + /!+ 01463!2632#"'#!"&ww''mw@w ww**w      & . i   +Ͱ./*Ͱ/// ְͰ(+ 2,Ͳ,(
+@,&	+,+	ͱ0+,("9#9 . "#%$9*$9015463!2#!"&73!2654&#!"5	 462"^B@B^^BB^@@ ppp B^^B@B^^B@ `@ppp     k    % 3   +Ͱ&/ ְͰͱ'+
9 	901	337'7327654#"7632@k[[

V$65&%%@` [[
&&'45%         ? /Ͱ// ְͰ+ͱ+
$9  99014   "&'&$264&",,!?H?! Ԗ,mF!&&!FԖԖ       G 
/Ͱ//ְͰ+ͱ+
99	99  $901$  $3"aa^a^@           - I   +Ͳ
+@
	+./ ְͰ+ͱ/+ 9	999
99 0147>7>2   %2654'.'&"QqYn	243nYqQX KjK" 	]""]ً	,T5KK5$!+!77!+!       * / 6 > H } (  +Ͱ+/0Ͱ2Ͱ/I/ ְͰ++2Ͱ0Ͱ2+$ͱJ+2
/457$9$-;?999 0(9@!,-.458<?EH$9AB9901463!2'&#!"3!26=4?6#!"&%	'337'676&	762w@?61B^^B@B^	@(ww ``8tt ^ \P\ @w1^BB^^B~	@wW ``tt ^ /\P\       * Y  (  +ͰJ/5ͲJ5
+@JD	+5J
+@5;	+/Ͱ
Z/ ְͲ 
+ 	+T+NͲTN
+@T+	+N+$ͱ[+T-9NMR996;DHI$9 J +R9995?@9901463!2+"3!26=47676#!"&4>;547632#"'&=# #"'.w M8
pB^^B@B^ww #;Noj''sw-

9*# @w"^BB^^B
	w1T`PSA:'*4*"g`        / D Y -  +Ͳ-
+ $	+/3E/ ְͰ+)ͱF+
07A$9 7=A9999:9901463!2#"'&#!"3!26=4?632#!"& 4?62	62"'w@?61
B^^B@B^	@
wwnBBnBR @w1
^BB^^B	@
w6BnnB          C v =/*3Ͱ2=
+@=A	+&2=
+@	+2D/;ְ	2,Ͱ2,;
+@,0	+2;,
+@;8	+2E+,;34$9 = "#$9014762!#"&4762+!5462"&=!32"'&46;!"' 4&& 4 &&4  4&& 4 &&4 f4 &&4  4&& 4 &&4  4&&        / ְͰ2+ 0146;2676'&'+"&&&	:	&&@&&Z@	
Z&&        +  ,/ ְ%Ͱ2-+ 0146;2676676'&''&'+"&&&		:	:	&&@&&Z:@	
:	
Z&&     z   476676'&''z::f4:@	
:   |   46&!0!`$          / ְ	Ͱ	+ͱ!+ 01463!2#!"&%463!2#!"&& && && && &@&&&&&&&&         /Ͱ/ ְ	Ͱ	ͱ+ 01463!2#!"&&&&&@&&&&      4646&5&::`::4:
	:      +  ,/ְ2ͱ-+ 01464646;2+"&5&5&&&&&::`::&&&&
	:
	:          /ְ2ͱ+ 014646;2+"&5&&&&&:`:&&&&
	:             +/+ 017463!2#!"&&762#!&&&&4@@ && &&:     4762	"'44444     Zf   647	&4?62"/Z44f444      / B 
/Ͱ'/0/ְͰ+ͱ1+	
$9 ' $901$  $3!;265!26=4&#!4&+"!"aa^r& && && && &a^& && && && &        I 
/Ͱ//ְͰ+ͱ+	
$9 
 999901$  $3!26=4&#!"aa^r& && &a^&&&&      7 R 
/Ͱ2-/'38/ְͰ22+"2ͱ9+	
5$9 - *$901$  $32?32?654/7654/&#"'&#"aa^ZZZZa^PZZZZ       # Q 
/Ͱ/Ͱ $/ְͰ+ͱ%+	
$9   99999901$  $327654/&"'&"aa^.j[4h4[a^ZiZ      6 F g 
/:ͰC/$Ͱ5/G/ְ7Ͱ 27
+@7	+71+ͱH+7
$91	5>$9 $C 9959901$  $32767632;265467>54.#";26=4&+"aa^	5!"40K(0?i+! ":oW_a^]dD4!&.uC$=1/J,XR        * : B 
/Ͱ/.Ͱ7/;/ְͰ 2
+@&	++2<+  $901$  $%3!26=4&+4&#!";#";26=4&+"aa^2```a^R      / _ 4 -/0?333ͲGW222`/(ֲ3S222!Ͳ;K222a+ 01546;>7546;232++"&=.'#"&546;2>7#"&=46;.'+"&=32#&%&&%&&%&&%&S l&&l m&&m l&&l m&&@&%&&%&&%&&%&&l m&&m l&&l m&&m l&&        ; F 
/Ͱ/</ְͰ+ͱ=+	
*$9  !3$901$  $ >. 4?'&4?62762"/"/aa^(;














a^(














          , F 
/Ͱ/-/ְͰ+ͱ.+	
%$9  !)$901$  $ >. 4?6262"'aa^(f44fZ4a^(X4ff4Z&          " F /Ͱ/#/ְͰ +	ͱ$+ $9 	 "$9016$  $&&#"32>54'z8zzfY󇥔eoɒVW:zzzzO[YWo   @5 K    /!/"+  90147632!2#!#"'&@%&54&K&&4AA4@%&&K%54'u%@4'&&J&j&K55K$l$L%%%   5K    /!/"+ 9015463!&4?632#"/&47!"&A4&&K&45&%%u'43'K&&%@4A 5K&$l$K&&u#76%u%%K&j&%K   5K@ !  "/ְͱ#+9 0147632#"'+"&5"/&5&#76%%%K&56$K55K$l$K&55&%%u'43'K&&%@4AA4&&K&    5K "  #/ְͱ$+9 014?63246;2632#"'&5&J'45%&L44L&%54'K%%u'45%u&5&K%%4LL4@&%%K'45%t%%$     , O /Ͳ
+ %	+@	+
+@		+-/)ְ"Ͱ" Ͱ /.+")%9 990147!3462"&5#"#"'.'5&4  4&bqb>#ǆ & 4 & 6Uue7D#		"         /  46262#!"& 47'&463!2"/"/&4L

r

&@&
L&&&4

r@&L

r

4&&m
L4&&@&

r    s  /  647'&463!2"/"/46262#!"&
L&&&4

r&4L

r

&@&
L4&&@&

r&L

r

4&&       # J   +!/3Ͱ2!
+@		+$/ְ2Ͱ2
+@	+
+@ 	+%+ 015463!46;2!2#!+"&5!"&8(8((8(88(`8((8`(8`(8(88(`8((8`(88(8          /Ͱ/+ 015463!2#!"&8((88(@(8`(88((88    z 5  6//ְ2(Ͱ27+ 0167-.?>46;2%6'%+"&5&/m.
.@g.
L44L
.g@.
.@g.L44L.g@egg.n.34LL4͙.n.gg.n.4LL43.n        - 0 
/!Ͱ*/Ͱ/.//+ * 999901$  $;2674'&+";26=4&+"aa^



a^

m/         @ * 3 A J  #  +7Ͱ(/3Ͱ2/>3.ͰB22/H3
Ͱ2K/&ְ4ͳ4&+,Ͳ,
+@ 	+4;+ͳ;+FͰF/ͲF
+@	+L+;,
/B$9F&99 2.$901463!"&46327632#!2+#!"&5#"& ;'&#";26=5!3264&#"]]k==k]]`8((8`x8(~+($$(88(+ @MM`(88(vP88,8P8        9 O h 1  +J/P/
ְ:Ͳ
:
+@
 	+:Ͱ/:H+ ͱQ+:,/99H'99 9 J1
',=$9 990154>54&'&54>7>7>32 #"'.#"#".'.327>76$3264&#">J>	Wm7'
'"''? ./+>*&^&&zy#M6:D
35sҟw$	'%
'	\t&_bml/J@L@N&^|h&4&c         3  .  +/4/5+ 01463!2#!"&54>54'''.@ 1O``O1BZZ71O``O1CZZ7@`N]SHH[3^)TtbN]SHH[3`)Tt          ! 1 H   +Ͱ/%Ͱ//2/ְ"ͱ3+" 9 %	 $9/ $901476      '7 $7&'   547265463264&#"ٌ''l==8(zV}D##D#EuhyyhulVz(     # - = O U q >  +?Ͳ  +;/Ͳ;
+@
	+V/*ְ2.Ͳ.*
+@.	+W+.* &,999 ?> 99;@ &0,EJPQ$999901476 !27632 #"'&547.'77.547265463264&#"76$7&'7Y[6
$!i\j1
z,XlNWb=8(zV}0Jiys?_9'Fu>La
YF
KA؉Eu?kyhulVz(Äsp@_"F"@Q-'        # 3  /'Ͱ0/Ͱ /4/5+ 017>2#!"&'&;2674'&+";26=4&+" <F< #%;" ";%

=$$??""?7

      ll 2  -  +3/4+ 01&?632	&'&?67>#"'&'	+&/&
`	L4,@L5`		a	5L@,4LH``	       # ' + / ? C G K O S W g k o s  !/$Ͳ@Lh222'/BNj333(ͲDPl222+/FRn333,ͲHTp222//JVr333ͱ223Ͱ[2</c3	Ͱ2t/ ְ$ͱ(,22$+?Ͱ?%+)-22@ͱDH22@8+ͰA+EI22LͱPT22L+gͰgM+QU22hͱlp22h`+Ͱi+mq22ͱu+ 0146;546;2!546;232#!"&7!!5!!5!!%;2654&+"!!5!!5!!!!5!!5!!%;2654&+"!!5!!5!!L4^B@B^^B@B^4LL44L    @@`@@@@@@ @@`    4L`B^^B``B^^B`L4 4LL4 @@@    @@@   @@@    @@@       9 L q q 7/g3ͰU27
+@7c	+7
+@Z	+J/&3>Ͱ2J>
+@J"	+>J
+@>	+r/s+ 7M^_999J/CO$9>A99901=46;2>767>3!54632#"&=!"+"&546;2.+"&673!54632#"&=".0N<* .)C=W]xD ?			 0N<* .)C=W]xD<M33K,;M33K, ?			 j8Z4L2B4:<?.>mBZxPV3!
			<?.>mBZxPV3!\-7H)O]-7H)
			".=          & '   +'/ ְ	Ͱ	ͱ(+ $99014>$32#"'&'5&6&>7>7&LdFK1A
0)e٫C58.H(Y       # 3 C R !/Ͳ!
+@	+21/@3(Ͱ82D/ ְ$2	Ͱ,2	+42Ͱ<2E+	 !99 015463!22>=463!2 $463!2#!"&%463!2#!"&&&/<R.*.R</&&H&&&& &&&&@&&4L&&L4&&BI&&&&&&&&   Z     64762"'	"/Z44455  Z   4?62	62"'Z44455         % K    +<3ͰG/)Ͱ2L/!ְͲ!
+@		+@	+!
+@! 	+E+4Ͳ4E
+@48	+E4
+@E&	+@EA	+M+!994E<=99 9G	 "48A$9)09014762+!2#!".<=#"&463!232"'&546;!"/&@<@&@	@&&:&	&

&
`&&	      + 3 ; _ 3/:3/Ͱ62!/Ͱ*/</-ְ$21Ͱ15+9Ͱ2=+1-	($9 /$9*'99901463!2!2!2#!"&54>7#" 462"$462"& & && &%ZKjKKj5KjKKj4&%& %z
0&4&&3D7KjKKjKKjKKjK            +/+ 015463!2!2#!"&\@\\\@\\\ \@\      W  * - (  +Ͱ/	Ͳ	
+@		++/,+ (9015463!2!2!"4&47>3!2#!"&\@\ \^=IP+B@"5+B"5\\ \_Ht#3G#t3G    @    ;  /ְͲ
+@	+2
+@	+2!+$9 01646;#"&4762+32"'@&& 4 && 4 &4& &4  4& &4      @   ; /Ͳ
+@	+2
+@	+2 /!+  $9014762!5462"&=!"' 4& &4  4& &4 f4 && 4 &&        # ' + / v   +Ͱ /$(,333!Ͳ! 
+@!%	+@!)	+@!-	+/0/ ְͰ +#Ͱ#$+'Ͱ'(++Ͱ+,+/Ͱ/+	ͱ1+ 015463!2#!"&73!2654&#!"!3!3!3!^B@B^^BB^@     B^^B@B^^B        @ [ /Ͱ$/Ͳ$
+@$?	+A/ְ3Ͱ.23+ͱB+39"0=?$9 99 $9015463!2#!"&%32>54'6767&#".'&'#"'#"www@w pČe1?*8ADAE=\W{O[/5dIkDtww@w^GwT	-@	(M&B{Wta28r=Ku?RZ        $ X !/3Ͱ2/3Ͱ/%/ ְ!Ͱ2!+2	Ͱ	Ͱ/&+! 999 015463!2+37#546375&#"#3!"&www8D`Twww@w`6:	          & . >    +Ͱ/"Ͱ./2Ͱ</*Ͱ&/Ͱ/Ͱ/Ͱ?/ ְ ͰͰ2Ͱ (+2/Ͱ/:+,Ͱ,+2	Ͱ	$Ͱ$/@+:/!&).$9,%*"-$9 2.#', $9<$+($9011463!2#!"&7!5!!=!!7!5!  6& 462"265463264&#"K5 5KK5 5K   @| >aԖ68(B^ 5KK5 5KK5v@>ԖԖ(8^      H 1 G ^ //5Ͳ/5
+@/*	+@/H/ ְ3Ͱ3>+ͱI+>3-/999	9 5/-$9@	 $9014$327.54632#".'#"'#"&2654'3264&"&#"2̓c`." b
PTY9b	'"+`N*(app)*Pppp)*P2ͣ`+"'	b
MRZBb ".`(*NppP*)pppP*)    c k      546?67&'&547>3267676;27632#"/+"&/&'#"'&547>7&/.$264&"54767&547>32626?2#"&'"'#"'&547&'&54767&547>32626?2#"&'"'#"'&547&'&2654&"2654&"	"8x
s"+")v
<
	"8w
s%(")v

>
Ԗj3>8L3)x33zLLz33>8L3)x33zLLz3 KjKLhLKjKLhL%
#)0C	vZl.

Y	
L0"
#)0C

wZl/

Y	
N,&ԖԖq$ ]G)FqqG^^Gqq$ ]G)FqqG^^GqV5KK54LL5KK54LL        % O o N  +&Ͳ:  +
/P/ ְͰ.+3ͱQ+ &(L999.069939CD999 &N69L$9
99 .03$90146$ #"'#"&'&4>7>7.32$7>54''&'&'# E~EVZ|$2$
|h:(t}|
$2$|ZV 쉉X(	&%(HZT\MKG{xH(%&	(X      0 8 m/ C  +(Ͳ-  +9Ͱ32m/ͰW/Ͱ^/n/ ְ2Ͱ26+9Ͱ9[+Ͳ[
+@[X	+F+#ͰK Q3!ͰN Ͱ#T+ͱo+6=_ +

a_

+a`a_+
  #9`a_9 
_`a......
_`a......@62.9[9+-A$99#FL9N9 m9#7FT$99f9^[c$9015463!6767>763232+"&'&#!"&6264&"32;254'>4'654&'>54&#!4654&#+K5$e:1&+'3TF0h1	&<$]`{t5K&4&&4 %/0Ӄy#5 +N2`@`%)7&,$)' 5KK5y*%Au]cgYJ!$MCeM-+(K4&&4&IIJ 2E=\#3M:;b^v+D2 5#$      2 : p0 $/JͰ/QͰ//;Ͱp/93Ͱf/
q/ְ4Ͱ48+pͰpM+ͲM
+@MP	+^+W2Ͱb Ͱ^Z ͳT^+ͱr+6?m +
*(GI*)*(+GHGI+HGI  #9)*(9 ()*GHI......()*GHI......@849Mp$/h$99b\9Z9 J-FM$9Q.C99;T99p5b$901463!27>;2+#"'.'&'&'!"&264&"322654&5!2654&'>54'64&'654&+"+K5 tip<&	1h0##T3'"(0;e$5K&4&&4 ')$,&7)%`@``2N+ 5#bW0/%  5K(,,MeCM$!JYgc]vDEA%!bSV2MK4&&4&$#5 2D+v^b;:M3#\=E2 JIURI      @   47%63#"&547&8?Vy%	I)b       9 5 5/(3Ͱ2:/ ְͰ#+ͱ;+#$9 014632>32"'.7	654.""'.">oP$$Po>4
#L</ED+C`\hxeH>Hexh\`C++I@$$@I+Z$_dC/Q|I.3MCCM3.I|        ( @ F &  +Ͱ>/-Ͳ>-
+@>:	+->
+@-2	+/A/ ְͱB+ ->569901463!2#!"3!:#!"&463!462"&5!"&w@B^^B 
w&&4 4&@& w ^B@B^ & &4& &           5  /ͱ *22
+@'	+//Ͱ 33Ͱ6/ ְͰͰ+ Ͱ !+*Ͱ*++	ͱ7+99 99!1299*/399 19015463!2#!"&;265."3#347>3234&#"35#www@wG9;HFtIf<,txIww@w3EE34DD@J&#1ueB     " . ~  /3ͱ%22 
+@ 	+/+33	// ְͰͳ +#Ͳ#
+@	+ +(Ͱ(/Ͳ(
+@	+(+ͱ0+(#99 01463"&463!2#2#!+"'!"&2654&"c4LL44LL4c&S3Ll&@{ LhLLhL {&&z           ' ? a %  +Ͳ%
+@	+/@/ ְͲ 
+@		++!ͱA+()-.<$9!+9 +7:<$901463!2#!"3!26546;2#!"& 47'&463!2"/"/w@B^^B@B^@ww
& &&4t

r @w@^BB^^B@w
4&& &t

r           @ F <  +Ͱ/Ͳ
+@	+
+@		+%/3A/ ְ8ͱB+ 9901463!462"&5!"& >3!2654&#!*.54&>3!2#!"&54&&4 4&@&~@B^^B
@ww& &4& &^BB^ w@w    ; B I  (//Ͱ 2B/G3Ͱ2B
+@		+J/ ְ<Ͱ<2+Ͳ2
+@	+#H222
+@2	++A22F+ͱK+2<7?99FC99 B/8?C$9015463!5463!2!232#!"&=4632654&'&'.7&5!>=!8( ^B@B^ (8Sq*5&=CKuuKC=&5*q͍SJ 6 (8`B^^B`8(GtO6)"M36J[E@@E[J63M")6OtGNN`     Y a i p x     W/3MͰ/3{ͱ22`/\Ͱ%//ְ.Ͱ.^ ZͰZ/^Ͱ.+ͱ+ZAF99^@+,4<HRiekoxty|$9 MJO$9{v$9`@4<DIcgjmr8$9%\#&,.?$9015463!2+".=4'>54'6'&&"."&'./"?+"&6'&6'&&766'&6'7436#6&76www
49[aA)O%-j'&]]5r,%O)@a[9(	0BA;+

>HCw


$
	
	/				61=ww@wa-6OUyU[q	( -	q[UyUP6$C

+) (	
8&/&	
A		)
       / 7 ? p 3  +:3ͰͰ7/>3Ͱ2@/,ְ%Ͱ%5+9Ͱ9=+Ͳ=
+@= 	+A+%,9950999 9 ()9901463!3!267!2#!"&&762#!#!"&5!" 264&"264&"8(c= =c(88(@(8E6* & & **&4&&4&4&&4 @(88HH88((88'@'(@&&4&&4&&4&&4&     2 d  */$3;ͰA2;> 'Ͱ[/	ͰX U3Ͱ2e/0ְ6Ͱ-  39Ͱ326G+ͰN Q3ͱ22f+6^ +
LJ+Â ++LKLJ+  #9KLJ9 JKL.......JKL......@N6	*$;AS[$9 X> -39GQ$9S9014>76763232632#"&#"#"&54654&732632327>54&'.54654'&#"#"&#"$IVNz<:LQJ
	|98aIea99gw


	N<;+gC8A`1oζA;=N0
eTZ

(:7,oIX(*()W,$-,-[%	061I      O  4767>3232>32#".'&'& '&'.382W#& 9C9
Lĉ"	82<*9FFe^\3@P	bMO0#-\^eFF9*<28	"L
9C9 &#W283#0OMb	P@3        *   +Ͱ/ / ְͰ+	ͱ!+ 01463!2#!"&73!2654&#!"w@www^B@B^^BB^ @wwwwB^^B@B^^B       # D #/Ͳ#
+@#	+2$/ ְͰ!+ͱ%+ 9!99 01546763!2#"'	#"'.77!'!!''!0#GG$/!'YY 	"8		8""8 X!	8AUUj        U N /!ͰQ/ͲQ
+@Q4	+V/ ְͰ&+	Ͳ&	
+@&A	+W+&F9 Q!09015463!2#!"& 3267654'./.#"#".'.'.54>54.'.#"www@w <90)$9G55
:8c7)1)

05.Dww@w`$)0<D.50+
AB7c)$+
-.1      ,  T  1  7327.'327.=.547&546326767# ,#+i!+*pDNBN,y[`m`%i]]C_LҬ}au&,SXK
&$f9s?
(bEm  _   @  /3Ͱ2 
+@ 	+
//ְ2Ͱ2
+@		++ 01!54632#"!#!_ ЭQV<%'w(ںHH	       R H  /S/ ְ)Ͱ)+ͱT+) <A99/7CM$9  $%$9014$  &=4'>54'6'&&"."&'./"?'& aa49[aA)O%-j'&]]5r,%O)@a[9(	0BA;+

>HCaoMa-6OUyU[q	( -	q[UyUP6$C

+) (	
8&/&fM       % f #  +Ͱ2/	Ͳ	
+@	+&/ְͲ
+@	+
+@ 	++ͱ'+	99 #99015463!54   +"&54&"32#!"&8(r&@&Ԗ`(88(@(8`@(8 && jj8((88         # ' + V   +Ͱ$/(3%Ͱ)2/Ͱ /,/ ְͰ2$+'Ͱ'+2	ͱ-+'(*99 015463!2#!"&73!265!!54&#!"5!35!^B@B^^BB^@  B^^B@B^^B`        ! = Y   +233Ͳ
+@	+;/'>/ֱ"22ͱ?+;99 799;:999')901<62"5476;+"&'& '.5476;+"&'& $'.pppp$qr$!ߺ%}#pppprqܠ!E$ֻ!#%          % / 7 ?    +Ͱ7/>33Ͱ:2"/&Ͱ'2,/@/ ְͰ1+5Ͱ59+=Ͱ=+ͱA+6<7 +
&./#7 +
'.( (/......&'(/........@ 01547>3!2#!"&73!2654&#!"7!.#!" 462"6462"\77\^B@B^@2!/B//B/B//B@2^5BB52B^^B@B//B//B//B/       . 4 B 5/)ְͲ)
+@) 	+1+Ͱ
2ͱ6+)$91 /$9 015463! 22## %&'.67#"&% ^B4L5KK5L4_u:B&1/&.-
zB^ yvB^L4KjK4L[!^k'!A3;):2*<vTq6^*)         ! + 7    +3"Ͱ"7Ͱ//Ͱ(/8/ְ)Ͱ)+,Ͳ,
+@ 	+,1+Ͳ1
+@	+1+Ͱ/Ͱ&+ͱ9+,599/2$9199 /,599(7 $9990156467&5462#!"&5!"&7!&5 324#"&54"8P8¾L4@Ԗ@4L5gI;U (88(¥'4LjjL4  3Ig U;   } I  &?'&76?'&7676767676/#"/'&/'&?'&

(5)0
))))
0)5(

(5)0
)*)
0)5(**)
0)5)

)5)0
)**)
0)5(
)5)0
      2 : h  @  ++Ͳ/  +;Ͱ52"/MͰh/ͰU/Ͱ]/i/ ְ4Ͱ48+;Ͱ;B+(ͳ(B+ZͰZ/ͲZ
+@ZU	+BG M3&Ͱ(Q+ͱj+84099Z;+/@$99(BHJ99Q&#"99 ";(9BH$9MJ9hQ99]X`$9015463!2>767>32!2+#"'&#!"&6264&"323254'>4'654&'!2654&#!4>54&#"+K5 
A#("/?&}vhi!<;5K&4&&4 HQ#5K4LN2$YGB(HGEG 5K	J7R>@#zD<gi>9eME;K4&&4&@@IJ 2E=L43M95S+C=,@QQ9      3 k s  F  +&Ͳ"  +JͰn21/7ͰM/Ͱi/Ͱ`/	t/ ְ4Ͱ4)+CͰ, ?Ͱ82C)+cͲc
+@ch	+CK+mͰmq+ͱu+,4/099?;9C)=99Kc"	&F$9qm!99 1J*=Cr$97;9M49 9RWf999`Zc$901463!&546323!2#!"#"&?&547&'#"&73!32>;#".'.'&'&'.#"!" 264&"hv}&?/"(#A
 5KK5;=!iL4K5#aWTƾH  #A<(H(GY$2N&4&&4g<Dz#@>R7J	K55K;ELf9>h4L=E2 JI UR@@2*!Q@.'!&=C+S59M4&&4&         2 ` h  h  +?Ͱ/dͰ^/Ͳ^
+@^Y	+K/Q3ͰF ͰU/	i/ ְ3Ͱ3+YͰY#+>Ͱ>Q+Ͱ?+e2ͰD+ͱj+3/6\$9>Y	U99QN9?FLa$9 hd"99^? #D$99FLN99U9901463246326326#!"&54.'&'.7!54>54#"."&#"4&#"".#" 264&"zD<gi>9eME;K55K	J7R>@#,@QQ9@@IJ 2E=L43M95S+C= &4&&4}vhi!<;5KK5 
A#("/?&B(HGEG  HQ#5K4LN2$Y4&&4&        3 h p  +/@Ͱ#/JͰD2  NͰ1/7Ͳ71
+@7<	+V/lͰp/q/ ְ4Ͱ4.+=Ͱ=+XͰXC+(Ͱ(U+m2ͰQ+ͱr+.417c$9=:9X+@99(CF9U!HNi$9 #@'9JF9N /H99V7 Q$9pl99014>767>5463!2/#"'#"&5#"&732>3326532726732654.=! 264&"#@>R7J	K55K;ELf6Aig6Jy=C+S59M34L.9E2 JI UR@@2*!	Q@.'!& &4&&4&?/"(#A
 5KK5;=ihv}GY$2NL4K#5#aWTƾH  #A<(H(4&&4&       + B 
/Ͱ(/,/ְͰ+ͱ-+	
$9 ( $901$  $2?64/!26=4&#!764/&"aa^-[j6[&&
[6[a^M6[[6&&4[[      + B 
/Ͱ!/,/ְͰ+ͱ-+	
$9 ! $901$  $3!27764/&"!"aa^2&[6j[[6[
&a^&4[j[6[j[6&         + B 
/Ͱ(/,/ְͰ#+ͱ-+#	
$9 ( $901$  $2?;2652?64''&"aa^.[6&&4[[6[a^N6[
&&[6j[[      + B 
/Ͱ"/,/ְͰ+ͱ-+	
$9 " $901$  $2?64/&"4&+"'&"aa^.j[6[j[6&&4[a^L6[[j6[&&
[       $  $76.7"7"#76'&'.'2#22676767765'4.6326&'.'&'"'>7>&&'.54>'>7>67&'&#674&7767>&/45'.67>76'27".#6'>776'>7647>?6#76'6&'676'&2>767676&67>?&'4&'.'.'."#&6'&6&'3.'.&'&'&&'&6'&>567>#7>7636''&'&&'.'"6&'6'..'/"&'&76.'7>767&.'"67.'&'6.'.#&'.&6'&.5aa^
	+!	
	
$		"+


		
	&"	


	4	$!	#	
		
	


 
.0"2Α	
		a^ '-(	#	*
$
"!				*
!	
(				
	

	

					

		
			P
$
		
2     ~   / P   +	Ͳ   +0/ ְͰ+!Ͳ!
+ !)	+ !	+1+ 	999!9 01347#"/&6264&"  32>32#"&'bV%54'j&&4&&4:,{	/덹5&b'V%%l$4&&4&r!"k[G'C         / 3 7 ; R   +4Ͱ7/Ͱ/0Ͱ3/Ͱ,/8Ͱ;/%</5ֱ1922	ͱ(225	
+@5 	+ 22=+ 015463!2#!"&463!2#!"&463!2#!"&!5!!5!!5!&&&&&&&&&&&&   @ && && && && && &&Z   {    /ְ	ͱ+ 0163!2#"'&5&* *' '')*           ' + / z   +Ͱ,/-ͱ22/ͱ"(22+/0/ְ(Ͳ(
+@ 	+2(,+/Ͱ/)+"Ͳ")
+@"	+&21+,(99)/
99 015!3!26=!#!"&463!5463!2!2!5!5!&@&^B@B^^B`8(@(8`B^   && B^^B^(88(^B        G  476	#"'&5463!2	'&763!2#"/	76#!"'&?	#!"&('c(&*cc*&'c)'&@**@&@*cc*&('c'(&@**@&('c'(&          9 A I [  7/'Ͳ'7
+ '"	++2/@Y33ͰP2
+@	+T2@=	+/H3ͰD2\/ְ3Ͱ  
Ͱ ͳ?3+;Ͱ;/?Ͱ3G CͰC/GͰL Vͱ]+"$93EHJPZ$9?;+9  
:?LV$9N99;>990132327#"&462"4>322>32#!"& 6   462"654'32>32+&|Kx;CBQgRpԖ 6Fe=
BPPB
=eF6 yy@>ߖԖgQBC;xK|pRga*+%u{QEԖԖ5eud_C(+5++5+(C_due5xV>ԖԖu%+*NQ{    p % G i  /MͰW/Ͱ+ "ͰC/j/ְ&Ͱ&>+
Ͱ HͰ
R+ͱk+& "<C$9H99
>h99RM999 "MRY$9+ 99W-99C 
&$9014?632632#"/&547'#"/7327.54632654/&#"32?654/&#"#".'USxySSXXVzxTTUSxySSXXVzxTl)* 8(!(')((* 8(!SSUSx{VXXTTSSUSx{VXXT((8 *(('( (8          7   +Ͳ  +Ͳ  +/ ְͰͱ+ 9901467&54 32632#!" t,Ԟ;F`j)6,>jK?ч     s  ! M /Ͱ/33
"/ְͲ
+@	++Ͳ
+@	+#+ 9901&7#"&463!2+#!!'5#E8@&& &&@8EjY&4&&4&qY %q%       F T b p ~    6  +C KͰR/Ͱ/Ͱr2/YͰ`//ְͰ2+kl99 R6<9999cjkl$9
.p$9Y#ow$9` mn999017>76326?'&'#"'.'&67632632	#"'#"'&6327>'&#"3276&'&#"7''54?'462"7bRSD	zz	DSRb)+USbnNnbSVZ2.'Jd\Q2.'Jd\2Q\dJ'.2Q\dJ'	` `!O&4&&4TFL5T	II	T5L;l'OT4M01B@#$rr$#@B10M5TNTЄ*$;3*$;3;$*3;$` @@Qq:$/4&&4&y@         - 0 9 <  /1Ͱ/ Ͱ9/:Ͱ-/.Ͱ4/Ͱ(/=/ ְ Ͱ /+)Ͱ)+!21Ͱ1&+Ͱ;+5Ͱ52+ͱ>+/ .9&1:9 .-&<999(09015467>3!263!2#!"&5!"&7!467!#!7!!!#!7!(`((8D<(88(@(8(8 (<8(`U+ 8(`U+(`(8((8(@(88( 8H (`<`(8+U`(8+    || ? w ;/Ͱ /3Ͱ/@/ ְͰ0+#Ͳ#0
+@#(	+#+8ͱA+#099+3;$9  +08$93 999014632#"'&#"32654'&#"#"'&54632#"'&ܟs]
=
OfjL?R@T?"&
>
f?rRX=Edudqq
=
_MjiL?T@R?E& f
>
=XRr?buds       1 5 E d   +233Ͱ5/Ͱ+/9Ͱ1/'A33F/ ְͰ/+26Ͱ2Ͱ6=+(Ͱ(3+Ͱ+ͱG+ 01463!2#!"&73463!234&'.##!"&5#!!;2654&+"8((`(8((88(@(8

08((8     @(8(`(`(88H(88(`1

`(88(  @        5463!2#!"&www@www@w            /     +Ͱ/Ͱ-/$0/1+ 01=463!2#!"&5463!2#!"&5463!2#!"&&&&&&&&&&&&&@&&&&&&&&&&&&      @    ' 7 G l %  +Ͱ Ͱ5/,Ͱ ͰE/<Ͱ H/ֱ22ͱ22I+ % $9,5	$9E9901<62"462"462"5463!2#!"&5463!2#!"&5463!2#!"&ppppppppppp@@@0ppppppppppp`      < L \ l | Z  +QͰ22Q1Ͱ/Ͳ%  +7  +;/!Ͱ/ͰͰj/aͰ	/Ͱz/B3qͰDͰ@2Dz
+@D>	+}/ ֱ22ͳ0 +1Ͱ1/=30ͰE+@Ͱ52E@
+@EC	+@E++3Ͱ328 $Ͱ$/8ͱA228Ͱ/~+01'L$9E&J99@	!);>$9 Z!899Q'599/+499 9aj$9	9014>54&#"'>32353!&732654'>75"##5!#"733!5346=#5463!2#!"&5463!2#!"&5463!2#!"&/BB/.#U_:IdDREi919+i1$AjM_3<mQj3jlk*@@@3T4+,:;39SG2S.7<$X-@8
C)5XsJ3P\xlcc)(%        5 e  E  +\Ͳc  +/Ͱ%/f/ְ)ͳ:)+;Ͱ)K+Rͱg+;:29)>9K!.EO\$9R1P$9 E;OR999%1$99015463!2#!"&476!2/&'&#"!&'&&?5732767654'&'!#"/&'&=4@2uBo
T25XzrDCBBEh:%0f#-+>;I@KM-/Q"g)0%HPIP{rQ9 @@$&P{<8[;:XICC>.#-a)&%,"J&9%$<=DTI*'5oe71#.0(l         s   +Ͱd/0ͰO/C33KͲF222t/mְ%Ͳ%m
+@%	+m%
+@ms	+%:+;2ZͲZ:
+@ZM	+u+6/' +
;.?XV?<?;+=?;+>?;+VWVX+WVX  #9>?;9<9=9 >?X;<=VW........>?X<=VW.......@%m99:EFd$9ZRU99 O0EPls$9KIJ999013!26=4&#!"6323276727#"327676767654./&'&'737#"'&'&'&54'&'&'@<4"VRt8<@<-#=XYhW8+0$"+dTLx-'I&JKkmuw<=z% @@@		v'|N;!/!$8:IObV;C#V
&(mL.A:9 !./KLwPM$   
       / ? O _ o       +ͱCs22/K{33#ͱS22,/[333ͱc22</k33/ ְͱ 022+'722@ͱP`22@G+Wg22pͱ22pw+22	ͱ+ 015463!2#!"&73!26=4&#!"53!26=4&#!"53!26=4&#!"3!26=4&#!"53!26=4&#!"53!26=4&#!"3!26=4&#!"53!26=4&#!"53!26=4&#!"^B@B^^BB^@@@ @@@ @@@@B^^BB^^B@@        ' + 3  64762"/?'?'?''?'66Sbbb^<<<<bbbk%k bbb66bbbb<<<bbbbk%kbbbb  @   4 = E M  A  +H3*Ͱ#2//!&33ͰE/L36Ͱ8/Ͳ8
+@	+N/ְ5Ͳ5
+@ 	+5,+?Ͱ?C+622'Ͳ'C
+@'	+'&+GͰGK+!Ͳ!K
+@!	+O+C?)*99KG$#99 /A?BGJ$96*90174634&>?>;5463!2&#"&5!"&5#".!#"264&"264&"@&	?& &!'ԖԖ@'!		LhLLh4LhLLh&@6/"&& 	jjjj	 		hLLhLLhLLhL       J  
/Ͱ@/0Ͱ/K/ ְ!Ͱ!-+CͰC=+3Ͱ3+ͱL+C-(*GH$9=
08E$936999 
H99@@ !%-36E$9014$ #"'676732>54.#"7>76'&54632#"&7>54&#"&aaok;	-j=yhwi[+PM3ѩk=J%62>Vca^ ]G"'9r~:`}Ch  0=Z٤W=#uY2BrUI1^Fk[|     L x /I3ͰA/1Ͱ/M/ְ"Ͱ".+DͰD>+4Ͱ4+ͱN+D.(+HI$9>19F$94799 A"&.47F$9015463!2#!67673254.#"67676'&54632#"&7>54&#"#"&www+U	,i<F{jh}Z+OM
2ϧj<J%51=Ubwww@wzX"'8'TyI9`{Bf 
,>XբW<"uW1AqSH1bd      = U c o  /ͰQ/CͰ`/YͰ)2,/p/ְ0ͰͰ0V+]Ͱ> NͰ]g+k2	ͱq+N># 3)9$9]V!CHQ$9g&+d$9 CQ99`@	!5:3dfhi$9Y#0&jlno$9015463!2#!"&32>54.4>54&'37!"3274>32#".4632#".33535#5##www@w%<NM&<yjB(::(,,-2SXUg^(R/9w2QS+*
$		uQ)OH,C@<5Q#B;5P#@@ww@w+E,=hA1Q4+-,)&.I.<O3@@W]{,23X.D#LI&D=VZp3<OUl@     N  0 K ` l  ,/6Ͱa/h3bͱRf22ba
+@bd	+bͲb
+@k	+\/3m/ְLͳ1L+ Ͱ /1ͰL+!Ͱ!W+ͳ;W+'Ͱk+c2jͰe2jk
+@jh	+kj
+@ka	+n+L,\999!
6DFR$9W9$999k'9 a6 $'F$9,!9\990174676%.547#"&5467>3!##"&'&732>54.'&#"3267654.#"53533##5 YJ .H?MpJL1EF1@[Z@0HꟄ9%Fq}A:k[7'9C 5hoS6j+=Y4&P5"?j@*Q/iiQ.R*@)$1R6B@X?ZHsG;@"$ECPNZSzsS`<uFk;4^>0$/.0$8].ggR4!9f:}R'!;ll           / < W   +Ͱ-/7ͱ22</%Ͱ/=/ ְͰ+	ͱ>+ (08$9 <7 !()$9015463!2#!"&2!463"&5!# 4>2".673#!5##& && &jjjj *M~~M**M~~MPM*r@&&&&Zjj jj|NN||NN|mP%``      @    //+ 01463!2"'&&@4@&4&&4@        @   //+ 014762#!"4&&4@4&     @    /+ͱ+ 014762"'@4&&4@f4&&     @   / +ͱ+ 015462"&&4@4&&@4@&         :   +3Ͱ/3/ ְͰ+Ͱ+	ͱ+ 015463!2#!"&73!!!265!^B@B^^BB^` ` B^^B@B^^B`    @    463!2"'4762#!"&&@4@4&4&&4@4@4&         //+ 01463!2"'&&@4@4&&4@        @   //+ 014762#!"4&&4@4&          :  /	;/<+ 015;2>76%67#!"&463!2 +".'&$'.,9j9Gv33vG9H9+^B@B^SMA_bI\
A+=66=+A
[">n 1&c*/11/*{'0B^^lNh^BO3@/$$/@*     l   + r %/Ͳ%
+@%!	+22	/,/ְͰ  Ͱ++Ͱ2+!+ ͱ-+99+9!9 %$901462+"&!3/!#>32!4&#"gdgTRdJI*Gg?QV?UJaaJIbb8!00 08iwE33        4 > / Ͳ 
+  	+)/	5/%ְͱ6+ ) 12$9	99014766$32#"$'&6?6332>4.#"#!"&('kzz䜬m
IwhQQhbF*@&@*eozz
	
_hQнQGB'(&    ( q  4>7632&4762.547>32#".'632#"'&547"'#"'&(		&

\((		&

~ +54'k%%k'45%&+ ~((h(\

&		h((~ +%'45%l%%l$65+ ~

&		        ! 3 ; C K ] /ͰF2;/L/ ְͰI+	ͱM+I@#,48<@D$9 %9;@	  *.26>BJ$90146$ #!"'&264&"264&"676&'6.264&" 264&"264&"LlL##KjKKjuKjKKj;P,2e2.e<^*KjKKjuKjKKjuKjKKjL;jKKjKujKKjK1M(PM<r"~-MjKKjKjKKjKjKKjK          % < P 
  +3Ͱ:/=/ ְ&Ͱ&7+ͱ>+& 97
#$9 :3#* 0$9014$ #"'#"&'5&6&>7>7&76?32$6&$ dFK1A
0)W.{+9E=ch'٫C58.H(YpJ2`[Q?l&싋      % : d  c  +;ͲO  +
/1Ͱ8/e/ ְ&Ͱ&5+ͰC+Hͱf+& 995
#;=a$9CEK99HNXY999 ;cKNa$9
991 #+$98* .CEH$90146$ #"'#"&'&4>7>7.76?32$64&$ 32$7>54''&'&'# E~EVZ|$2$
|j`a#",5NK
:(t}|
$2$|ZV 쉉X(	&%(HwR88T
h̲hhZT\MKG{xH(%&	(X   | !  >3!2%632#"'.7#"'&H
j'9
1b{(e       U  S/*>33ʹ"26FJ$2I/43	Ͱ2/3V/ ְOͳJO +Ͱ/JͰOB+2;Ͱ26;B+GͰG/
36Ͱ2;.+'ͳ"'.+3Ͱ3/"ͱW+ 0146;5463!5#"&5463!2+!232#!"&546;5!32#!"&546;5!32#!"&8(`L4 `(88(@(88(` 4L`(88((88(` `(88((88(` `(88((8 @(84L8(@(88((8L48((88(@(88((88(@(88((88    ; O Y | D  +NͲDN
+ D?	+ DI	+4/$33Ͳ4
+ 4	+92@4	+,2P/TZ/<ְAͰAF+P2KͰV2[+A<09F%,MN$9K9 01476 $32#"'.#"#"'.'."#"'.'.#"#"&46226562"&5462&"- U!1X:Dx++ww++xD:X1&4&NdN!>!И&4&*,P
..J<
$$
<JJ<
$$
<J..
&&2NN2Dhb&&b         + 4 7 t /,Ͱ//5Ͱ4/ Ͱ(/8/ְͰ+,Ͱ,2+5Ͱ25#Ͱ#/5-+ͱ9+-269 /,994579 	9015463!2#!"&=!"&3!26=4&#!"!!"&5!!8(@(8(8(@(8(8 @ `(8 +`@(88(h`(`(88(8@ 8(+      3 K \  /;Ͱ[/OͲ[O
+@[V	+H/]/ ְ4Ͱ4X+SͲXS
+ XM	+SC+	ͱ^+4 29X(/.<G$9CS@$9	9 ;.99[	 24CS$9014>2#"&'"&547&547&547.'&7367>7654."$4632"&54&#"YYg-;</-?.P^P.?-/<;-gD
)

)
DEooE`2cKl4cqAAqcq1Ls26%%4.2,44,2.4%%62sL1qeO,,OeH|O--O|+ L4.2        4 V /	Ͳ	
+@	+	
+@		+2/Ͳ2
+@2-	+2
+@$	+5/6+ 	 92()990147632!2#!#"'&5463!54632#"&=!"&	@	`	`?			 	@	
@	-
			         5 p   +!Ͳ!
+@!	+./6/ְ1Ͱ  Ͱ1%+Ͱ* ͱ7+19* !9999 .! $9901467&54 32632#!" 27654&+4&+"#"v,Ԝ;G_j) 	`		_
7,>jL>цY			_`        5    +Ͱ)2  +$Ͳ  +Ͱ2/6/ְͲ
+@ 	+-+Ͳ-
+@	+7+-9999 $ 992$9901467&54 32632#!" ;;26532654'&"v,Ԝ;G_j) 			
7,>jL>ц`	`		     P X `    +%533NͰX/TͰ`/\a/ ְͰR+VͰV*+1Ͱ1^ ZͰZ/^Ͱ^3 (Ͱ(/3Ͱ18+Jͱb+R99V	$9^Z#.TW$91*>AD$93(-98@9 X#(38$9T !*1:J$9`@		.>@-$9\D$90154>72654&'547 7"2654'54622654'54&'46.'#!"&$462"6  %:hD:FppG9Fj 8P8 LhL 8P8 E;
Dh:%yy &4&&4>D~s[4Dd=PppP=d>hh>@jY*(88(*Y4LL4Y*(88(*YDw"
A4*[s~Dy4&&4&>     E M  .  +@ͰC/*3ͰM/7Ͱ/3	Ͱ2N/ ְͰͰB++Ͱ++'Ͳ'
+ 	+'4+GͰG0+=Ͱ=K+9ͱO+	99+-@9994'.?99G69 M149<H$9014632>32#"' 65#"&4632632 65.5462 $=.$264&"&
<#5KK5!!5KK5#<
&ܤ9GppG9&4&&4  &$KjKnjjKjK$& jjb>PppP>buោ4&&4&     	   % W /
33ͳ$2/&/ ְͰ
+ͳ
+ͳ
+Ͱ/Ͱ+"ͱ'+ 01546;#"&35463!23!5!32#\@@\8(@(8   `@\\`@\  (88(   \\        ! - j /%./ְ"Ͳ"
+@ 	+"'+Ͳ'
+@	+'+Ͱ/ͱ/+"+99'
%($9999 0156467&5462#!"&5!"&324#"&54"8P8¾L4@Ԗ@4LgI;U (88(¥'4LjjLLIg U;   @    " ? / Ͱ/ͳ+Ͱ"#/ְͱ$+9 "99015!#!"&463!2+#!"&3264&+ j j &@\@\@PppP@j& \<pp      - B A C/ ְͰ+Ͱ* #Ͱ+Ͱ.+7Ͱ7>Ͱ>/D+ 01462265462265462+"&5.463!2+"&5#"&&4&&4&&4&&4&&4&G9L44L9G  &L44L@&&`&&&&`&&&&=d4LL4d &4LL4          , < L S q /Ͱ*/!Ͱ:/1ͰJ/AͰ/MͰ/T/ ְͰ+MͰM+ͱU+-.=>$9M%&56EFN$9 MS901463!2#!"&7!!"&5!5463!2#!"&5463!2#!"&5463!2#!"&!&'&'8((`8(8((8 `(8  @@@x
@(8(`((88H 8( @@@@@@n9
        - = M ] m }        -=  463!2#!"&7!5463!2!!546;2+"&546;2+"&546;2+"&546;2+"&546;2+"&546;2+"&546;2+"&546;2+"&546;2+"&546;2+"&546;2+"&546;2+"&546;2+"&546;2+"&546;2+"&546;2+"&546;2+"&546;2+"&& && &@@@@@@@@@@@ @@@@@@@@ @@@@@@@@ @@@@@@@@@@&&&&Z  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@          1 A Q a q         463!463!2!2#!"&7!5463!2!!#!"&=!546;2+"&546;2+"&546;2+"&546;2+"&546;2+"&;26=3;2654&+"#54&+"546;2+"&546;2+"&546;2+"&546;2+"&546;2+"&&@8((8@&& &@ 8(@(8 @@@@@@ @@@@@@@@ @@@@ @@@@@@ & (88(& &&Z (88( @@@@@@@@@@``@``@@@@@@@@@@@    @ & / 7 [ c  3  +^3"Ͱ2%/33Ͱ7/b3(Ͱ*/ͰX/M3ͰSd/ְ'Ͳ'
+@	+'$+1Ͱ1(+422=ͰV2Ͱ8Ͱ=+]Ͱ]D+N2ͳaD+ͰIͰI/e+(1!"*999D]^c999a9 %314]`$905\a$9(@A99*;<EF$901646346?>;463!2+"&5!"&5#"!#264&";;26=326=4&+54&+"#" 264&"@&@&&&ԖԖKjKKjKjKKj4&@@&&&jjjj  
jKKjK jKKjK       	  ; ? I  
/@33Ͱ%2 Ͱ3/<ͳA$2?/J/ ְͰ
+Ͱ62ͳ<
+Ͱ/<Ͱ$+.2ͳ=$+Ͱ)Ͱ)/@+FͱK+ 01546;#"&35463!23;;26=326=4&+54&+"#"!5!32#\  \`8(@(8`   \\`@\  (88(    \\        : f .  +/Ͱ%2!/Ͱ2 
ͳ!+ Ͱ/3;/<+ 2/#367$9
99!8999 9901575#5#5733#5;2+31#32+53##'53535  `@@`&&E%@`@E&&`@@`      		@ :# @ @		        @     B 
  +/Ͱ/Ͳ
+@	+/ְͱ+ 
9999017!7!!57#"&5;!@   @ K5  @5K      3 G /ͰͰ2+/Ͱ0Ͱ%24/ ְͰ++2Ͱ)2!+	ͱ5+ 015463!2#!"&%;265!;2654&+"!4&+"www@w && &&&& &&ww@w&&@&&&&@&&      3 I /Ͱ2Ͱ0/%3Ͱ+4/ ְͰ.2Ͱ+&2	Ͱ	!Ͱ!/5+ 015463!2#!"&3!;265!26=4&#!4&+"!"www@w &@&&@&&&&&ww@w&&&@&&@&&&  - M3  )  4762	"'$4762	"'-


2

w

2

.v


2

w

2

.3


2

ww

2





2

ww

2

     M3  )  647	&4?62"/$47	&4?62"/
w

2



.

2v
w

2



.

2


2

.

.

2



2

.

.

2     M 3S  )  64762"'	"/4762"'	"/M




2

ww

2





2

ww

2


.

2

w

2


.

2

w

2     M 3s  )  4?62	62"'4?62	62"'M
2



2

.

.

2



2

.

.
2

w

2

.


2

w

2

.

    - Ms3   /+Ͱ2+9 014762	"'-


2

w

2

.3


2

ww

2

    MS3   /+2ͱ+9 01647	&4?62"/
w

2



.

2


2

.

.

2    M3S   /3/+ 9014762"'	"/M




2

ww

2S


.

2

w

2    M-3s   /Ͱ	2/+ 9014?62	62"'M
2



2

.

.
2

w

2

.

        / > /3#Ͱ#Ͱ,/0/ ְ Ͱ '+	ͱ1+' $9 01463!2#!#!"&54>5!"&3!2654&#!"^B@B^^B  & &  B^@ @B^^BB^%Q=&&<P&^B@         + 3 6 	  +.Ͱ3/Ͱ/Ͱ(/4/ְͰ#+ͱ5+ 01=3!3#!"&463!2#!"&73!2654&#!" ;24+@^BB^ ^B@B^^BB^@```(88hB^^B@B^^B           ' :   +#Ͱ'/Ͱ/(/ ְͰ+	ͱ)+ $99 015463!2#!"&73!2654&#!" 264&"^B@B^^BB^@&4&&4@B^^BB^^4&&4&            ' / G   ++Ͱ//Ͱ/"Ͱ'/0/ ְͰ+	Ͱ	-Ͱ-/1+-(9 015463!2#!"&73!2654&#!"6;24+264&"L4 4LL4 4L`  /B//B 4LL4 4LL  !B//B/       B 
/Ͱ//ְͰ+ͱ+	
$9  $901$  $ >. aa^(a^(        ! C b   +@3Ͱ82/03Ͱ(2D/ ְͰͲ 
+@	+"+=Ͱ5Ͳ5"
+@5-	+E+
9=5,9 0154>;2+";2#!"&%4>;2+";2#!"&Qh@&&@j8(PppPPpQh@&&@j8(PppPPphQ&&j (8pPPppPhQ&&j (8pPPpp      ! C n   +03Ͱ82/@3Ͱ&2D/ ְ	Ͱ	Ͱ/	
+@	+	"++Ͱ+<Ͱ</<+
+@<5	+E+ 9<"49 01463!2+"&=46;26=4&+"&%463!2+"&=46;26=4&+"&pPPpQh@&&@j8(PppPPpQh@&&@j8(Pp@PppP@hQ&&j (8pPPppP@hQ&&j (8p           ! ) 1 9 A /ͳ%+)ͳ-+1Ͱ/ͳ=+AͰ!/Ͱ Ͱ!9 5B/	ְͳ	+Ͱ/ͳ	+Ͱ/Ͱ+ͳ'+#Ͱ#/'Ͱ++/ͳ7/++3Ͱ3/7ͳ;/++?ͱC+	99
$9'# !$973-01,$9 #&99-1$9=A $99959	$901462"462"4632#" 462"462" 462"462"462"^^^RgggGT<;UU;<<ppp0KjKKjB\BB\"/B//B8P88P>^^^gggxTTxTpppjKKjK\BB\BB//B/hP88P8       
/Ͱ/ְͰͱ+ 01$  $aa^a^      , A &/Ͳ&
+ &	+@&*	+&
+@	+-/ְͰͱ.+ & 990147623 #"&5465654.+"' 4&ɢ5#>bqb&4 f4 & mǦ"		#D7euU6 &        & @ L X  .  +ͰK/V3EͰP2>/73Ͱ2; Y/ ְ'Ͱ'B+HͰHN+TͰT4+ͱZ+HB>	99N9<$9T799 EK 4'$9;	$90147&5472632>3#".'&7;2>54&#""'&#"4>2"&$4>2"&3lkik3=&\Nj!>@bRRb@v)GG+v=T==T=g=T==T=RXtfOT# RNftWQ|Mp<#	)>dA{ XK--KXxPTDDTPTDDTPTDDTPTDD        , V   +Ͱ!/	Ͱ)/-/ ְͰ%+	Ͱ	+ͱ.+	%!9 9 	!$9)%9015463!2!2#!"&73!2654&#!"&=4&#!"\@\\\@\8((88(@(88((8\\ \@\\(88((88(@(88(        u  3 E y   +6Ͱ@/"Ͱ2(/	Ͱ0/F/ ְͰ,+	Ͱ	#+Ͱ=+ͱG+,49	(9#'9 @699	(+90,9015463!2!232#!"&7>3!54&#!"&=4&#!"3!267654#!"\@\ \6Z.+C\ ,D 8((88((8+5@(\&5([\\ \1. $>:5E;5E(88(@(88(#,k#+          # 8 @    +
Ͱ7/-Ͱ#/?3Ͱ;2/A/ְͰ+!Ͱ!:+>Ͱ>+ͱB+!
%+$9:,-67$9>	/3$9 #- (1$9$901$  $ >. 462"&676267>"& 462"aa^NfffKjKKj9/02%KjKKja^ffffjKKjK/PccP/yjKKjK       # 8 @    +
Ͱ1/'Ͱ#/?3Ͱ;2/A/ְͰ+!Ͱ!:+>Ͱ>+ͱB+!
83$9:&'01$9>	/*$9 1 ,5$9'99#$901$  $ >. 462">2&'."'. 462"aa^NfffKjKKj9%%20/KjKKja^ffffjKKjK3yy/PccP/1jKKjK       ' / 7    +
Ͱ&/Ͱ//63+Ͱ22/8/ְͰ)+2-Ͱ-1+5Ͱ"25+ͱ9+-)
$951	$9 & $9+/$901$  $ >. 463!2#!"462"$462"aa^Nfff&&&&KjKKjKjKKja^ffff4&&4&jKKjKKjKKjK          3 ; C ] 	  +37Ͳ	  +Ͱ;/ͰCͰ+D/ְͰA+ͱE+A	!48<$9 C	%&/>$901 3!2  #"'##";;26=326=4&+54&+"#"264&"6264&",,ܒlKjKKjKjKKj,,XԀjKKjKjKKjK          + 7 C O [ g s         +Ͱ/A33ͱ;22*/Yq$3#ͳSk$26/Me}$3/ʹG_w$2// ְͰ+ ,22Ͱ22'ͰD+82KͰKP+WͰW\+cͰch+oͰot+{Ͱ{+Ͱ+Ͱ>2+2Ͱ2
+@	++	ͱ+ 015463!2#!"&7!!54;2+"54;2+"54;2+"543!2#!"54;2+"54;2+"54;2+"54;2+"54;2+"54;2+"54;2+"54;54;2+"54;2+"K55KK55K```` ```````````````p```5KK55KK5`````````````````````````   @   ? V  0/JͲ0J
+@0<	+7/BͰO/!ͰT/W/ְ	Ͱ  Ͱ	+@Ͱ@L+*ͱX+@:9L!07$9*%.99 B7@HL999!OMRV99901462+"&5.47>32327676#"/.#"#"'&7632327#"'.#"@KjK#@# #WIpp&3z	#
ڗXF@Fp:f_ 7ac77,9xR?d^ 5KK5#::c#+=&>7p#'t#!X:	q%\h[ 17     @   ? E K j r  0/UͲ0U
+@0<	+7/LͳCL7+HͰp/!ͰI/s/ְ	Ͱ  Ͱ	+@ͰF2@W+m2*ͱt+@:9W!07BHLk$9*%.99 L7@SWXZ$9HF[ejklm$9ph9!JKnr$901462+"&5.47>32327676#"/.#"#"'&76755675323275'5&'.	#"75#"'@KjK#@# #WIpp&3z	#
ڗXF@Fp:f_ ͳשfk*1x82.,#,쩉-! 5KK5#::c#+=&>7p#'t#!X:	`eov:5	\t-	|*[    3  $  "  +%/&+ "9901647	&4?62"/5463!2#!"&
w

2



.

2i@


2

.

.

2i@@  -S  $ 9  4762	"'	>/.$47	&4?62"/-


2

w

2

.u>>I
w

2



.

23


2

ww

2




2

.

.

2         ; K </ְͲ
+@	+2.+(Ͳ(.
+@("	+=+.3$9(*/99 01476#"'$476#"'&7'.'#"' )'s' m )'"+5+@ա' f4 *Er4sF* 4 *:}}8GO*    ~  (  67%632#"'%#"&7	'7-/--!V??V';><1Bi7I))9I7 !%%!bcB/4
<B         &67632#"'.5!"
 
(
,(
) ##@       2 5 8  +  + 36Ͱ2+6
+@+&	+0/43Ͱ20
+@		+29/.ְ23Ͱ2.3
+@. 	+3)+72"Ͱ2")
+@"	+2:+)34699"9 063899901546;546;2!76232++"&=!"&5#"&	!!S

		 S-S		

`SS      3 ; C K  7  +2Ͳ3  +0  +K/ͰC/
L/ ְ25Ͱ<25+,Ͱ2,9+@2/Ͱ2/+EͰE+$Ͱ$I+!ͱM+,5	
12$9/)9(999$E99 K7@
!:=>@F$9<A$9015467.546267>5.5462"&6264&"264&"264&"4,,4pp4,6d7AL*',4pp4,DS,4pp`8P88P88P88PH8P88P@4Y4Y4PppP4Y%*<O4Y4PppP4Y&+(>EY4PppxP88P8HP88P8P88P8      ' 6 B ] i w   4  +Y GͰ
/Ͱ/{Ͱ//ְͰ7+>Ͱ>^+eͰeK+Tͱ+7@	"#,/0$9^>CD$9KeNOYjkuxy$9 
4,:;CDKT$9"#NO$9{ghku$901463!2#!"4?632&#"&'&4762#"'462"&7?654'7#"'&462"&4762"'463!2#!"@USxySN('#Tp	 

		 
YR#PTUSxyS	 

		 7@xSSU#'(PVI
 		

 		i@'(VvxSSUOW@?
 		

 		  `    , < T :  +1Ͱ#/Ͳ#
+ #)	+=/-ְ26Ͱ2 6-+	ͱ>+6-#99	9 #1	9901&7!2+"&=467>54&#"#"/546;2+"&c0PR'G,')7N;2]=A+#H
>hS6^;<T%-S#:/*@Z}g       . H   +Ͱ2/Ͱ,/#//ְ2Ͱ'2
+@	+
+@ 	+
20+ 01=46;#"&=463!232#!"&5463!2#!"&&@@&&&@&& && && &@&&&&&&&Z&&&&     b     2   + / ְͰͳ +Ͱ/3Ͱ2!+ 01&63!2#!"&'5463!2#!"&b%@%' '& && &@&& && &&&&    k " G     +3Ͱ2/3Ͱ2@+EͰEBͰ-/6H/*ְ9ͰC2*9
+@*#	+E29AͰA/I+ E
$9@#9>9-(1999901353#5!36?!#3#/&'#4>54&#"'67632353!'&Ź}m	
4NZN4;)3.i%Sin1KXL7~#&		*ا*	@jC?.>!&1'\%Awc8^;:+<!P        " F     +3Ͱ2=  +D/?ͰAͰ-/6Ͱ/3Ͱ2G/*ְ9ͰB2*9
+@*#	+D29@Ͱ@/H+  (9-*19$962999
99901353#5!36?!#3#/&'#4>54&#"'67632353!'&Ź}m	
4NZN4;)3.i%PlnEcdJ~#&		*ا*	@jC?.>!&1'\%AwcBiC:D'P-              +/+ 01&6763!2#!"&'7!!&: &?&: &?u P mK ,)""K ,)"5       h  H  +_37/1ͳ,17+<i/ ְVͲV 
+@V[	+V+ͳ+ͳK+BͰ!2P+>Ͱ(2j+ S99> FH$9B&9 7H>NY[$9<PV99,4S99011327654.54632326732>32#".#""#"&54>54&#"#"'./"'"%_P%.%vUPl#)#T=@/#,-91P+R[YO)I-D%n "h.=T#)#lQTv%.%P_	%	 #,-91P+R[YO)I-D%95%_P%.%vTQl#)#|''
59%D-I)OY[R+P19-,#        ' 3  #  +3Ͱ%/3
Ͱ2/,4/ ְͰ(+/ͳ/(+$Ͱ$/Ͳ$
+@	+$
+@$!	+/+ͱ5+/(
	99,199 ,2$9015462   =462 !2#!"&463!5& %46  &&4&r&4& &&&&  &&&&&4&&4&G    s  7 C K  .  +"3)L/8ְ?Ͱ?/+"Ͳ"/
+@"&	+/"
+@/,	+"+ͱM+?84B99/2ADE$9"H999K9999 .)45990164762#"'32 =462 !2#!"&463!5&'"/5462&%4632


R

76`al&4& &&&& }n

Ri&4&e* f"3


R

`3&&&4&&4&D

R&&5<ego v]      " ; "/Ͳ"
+@"	+#/ ְͰ +	ͱ$+ 9 9 01463!2"'.6765!&&Cct~55~tcCw^@@ && V|RIIR|e?J        # ' 7 G g !/$Ͱ'/ͱ22+Ͱ;24/C3	Ͱ2H/ ְ$Ͱ$+7Ͱ70+Ͱ+GͰG@+Ͱ%+ͱI+ 0146;546;2!546;232#!"&7!!%;2654&+";2654&+"L4^B@B^^B@B^4LL44L @@ @@ 4L`B^^B``B^^B`L4 4LL4        D L  (/93ͰG2(
+@(0	+(! ͰL/M/4ְ-ͳ
-4+FͳJ-4+Ͱ8 )ͱN+F
998HK99)99-'99 (!)8999
9901&7>7&5462!467%632#"'%.5!#!"&54675#"#"' 264&"8Ai8^^.@ o& &}c ;pG=(]&4&&42
 KAE*,B^^B!`		`fs&& jo/;J!#4&&4&  $  % - ( -/	./+ְͱ/++	9 	-90167%676$!2#"/&7#"/& 264&"$
{`PTQr	@U	@8P88PrQP`
	@U	@P88P8            +
$3/33/ ְͰ+Ͱ+
ͱ+6> +
 > +
> +

	 	...	......@ 9 011!2!6'&+!!̙e;<*8GQIIc@8 !GG         + 
/Ͱ/!/ְͱ"+  $901$  $2?64'	64/&"aa^4f3f4:a^L4:f4334f:           + 
/Ͱ/!/ְͱ"+  $901$  ,2764'&"	aa^,f4:4f3a^4f4f4           / /!/ְͰ+ͱ"+	
$9 01$  $27	2?64'&"aa^,f4334f:4:a^4f3f4:           / 
/!/ְͰ+ͱ"+	
$9 01$  $2764/&"	&"aa^,4f44fa^4:4f3f      @    /Ͱ/3Ͱ2/3 Ͱ2/+6?d +
 .?$ +
.++++ ....@ ............@ 01!%!/#35%!'!7/djg2|bx55dc    @  h /3Ͱ	2/
3Ͱ2/+6>j +

.	
+	
+ ..	
......@ 017!%!!7!!	G)DH:&H;KdS))      M U  J  +?3  +.  +/,3Ͱ$2U/V/ְ2.Ͱ#2O.+Ͱ/OͲO
+@	+S.+ Ͳ S
+@ )	+W+E9O9.S9 D9 J6BG$9U P999011463!2#"&=46;5.546232+>7'&763!2#"/ $'#"'& 264&"`dC&&:FԖF:&&Cd`
]wq4qw]	@&4&&4`d[}&&"uFjjFu"&&y}[d	]]	04&&4&        # ` !  +Ͱ2/	Ͳ	
+@	+$/ְͲ
+@	+
+@ 	++ͱ%+	99 901546;4   +"&54&"!2#!"&8( r&@&Ԗ(88(@(8`@(8@&&jj8((88        # + 3    +
Ͱ#/'Ͱ3//Ͱ+/Ͱ/4/ְͰ+%Ͱ%-+1Ͱ1)+!Ͱ!+ͱ5+1-@	
"#&'*+$9 /3@  !$%()$901$  $ >.       6& 462"aa^Nfff,,X>aԖa^ffff,X>ԖԖ         / 9 /,33ͱ$220/ ְ	Ͱ	+Ͱ +)ͱ1+ 01546;2+"&%546;2+"&%546;2+"&8((88((8 8((88((8 8((88((8`(88((88((88((88((88((88        / 3   +Ͱ/Ͱ-/$0/ ֱ 22	ͱ(22	ͱ1+ 01=46;2+"&546;2+"&546;2+"&8((88((88((88((88((88((8`(88((88((88((88((88((88        + E J /!ͱ622A/F/ ְͱ,22;+	ͱG+;$4999 A!).999015463!2#!"& 264&"';26'& '&;276'&.$'&www@w KjKKjK\
f	
ww@wjKKjKܚH 
	f

         / 
//ְͰ+ͱ+	
$9 01$  $%32764'&aa^2    ! a^%	@J@%    65  + /  0/%ְͱ1+%9 01476227"/64&"'62764'&"	6%%k%}8p8~%%u%k%~8p8}j6j6[<<k%%%}8p8}%k%t%%~8p8~4j4j-<         ( /Ͱ/ / ְͰ+	ͱ!+ 015463!2#!"&3!26=4&#!"www@w &&&&ww@w&&&&           / :   +Ͱ-/$Ͱ/0/ ְͰ+	ͱ1+ (99 01463!2#!"&73!2654&#!"5463!2#!"&w@www^B@B^^BB^@ @wwwwB^^B@B^^B@@@         /   +Ͳ
+@	+/ְͱ+99 017&?63!#"'&762+#!"	@(@>@(@%% $%      - /Ͳ
+@	+/ְͱ+99 0163!232"'&76;!"/&	($>(J &%       $ ( /Ͱ/%/ ְͰ+ͱ&+ 015463!2#!"&2764/&"'&"www@wf4ff4-4fww@wq4f4f-f           % / F /Ͱ./0/ ְͰ*+ͱ1+*"&$9 .% '$9015463!2#!"&%!	57#57&76	764/&"www@w   `448.#e \Pww@wW  `844`# \P         ) ( /Ͱ#/*/ ְͰ+	ͱ++ 015463!2#!"& 27327654&#!"www@wf4'& *ww@w14f*&')      5 C /Ͳ
+@	+./6/ ְͰ'+ͱ7+ ."'99*9015463!2#!"&3276'7>332764'&"www@w 
,j.(`'(wa8!
ww@w	bw4/*`4`*'?_`ze         g 
/Ͱ//ְͰ+Ͳ
+@	++ͱ +
$9	$9  $901$  $ >. -aa^(   a^( 1         - < /Ͱ/./ ְͰ+	ͱ/+-&99 ")99015463!2#!"&%3!2654&#!"63!2"'&www@w @((Bww@ww###@        - < /Ͱ/./ ְͰ+	ͱ/+!(99 $+99015463!2#!"&%3!2654&#!"&762#!"www@w @@B@((ww@wwC#@##        - < /Ͱ/./ ְͰ+	ͱ/+ '99 $+99015463!2#!"&%3!2654&#!"476'&www@w @ ##@##ww@ww(B         ` B Z  +@Ͱ^/<3Ͱ32/03Ͱ(2%/a/b+ ^@I9%901546;&7#"&=46;6 32/.#"!2#!!2#!32>?6#" '#"&BCbCaf\	+~2	

	}0$#!"'?_q90r pr%Dpu         ? | =  +Ͱ/2=
+@4	+/-3Ͱ%2!/@/ְ2/Ͱ$2/
+@/*	+/
+@ 	+/0+8ͱA+0/99899 !9901=46;#"&=46;54632'.#"!2#!!546;2#!"&a__	g	
*`-Uh1D ߫}
	$^L   4   b | W/Ͱ=/%c/ְ@Ͱ@Z+!2SͰ)2S+Oͱd+@9Z9S=G999H9O1899 WR[99=46O$9%!*9901?676032654.'.5467546;2'.#"+"&=.'&4g	q%%Q{%P46'-N/B).ĝ9kC<Q7>W*_x*%K./58`7E%ǟB{PD
cVO2")#,)9;J)"!*
#VD,'#/&>AX2	,-3         > ) 9  +	/.3Ͱ&2/Ͱ$?/@+ 01546;267!"&=463!&+"&=463!2+32++"' '&pU9ӑ@/Ԫ$
		]VRfqf=Sfo	      E [ .  +3/(3:Ͱ 2=/3DͰ2F/1ְ;2*Ͱ2*1
+@*	+$21*
+@1@	+62G+*1
99 01&76;2>76;232#!!2#!+"&5!"&=463!5!"&=46;

%
)
	" PW&WXhUgJgUh          0 8 l )  +./#3Ͱ2/3Ͱ128/9/,ֱ22%ͱ122%,
+@% 	+,%
+@, 	+
2%5+ͱ:+ 89901546;5#"&=46;463!2#!!2#!+"&=#"&!264&#!@jj vu~v||        P T ] a e n^ I  +@3N/nDEMU]f=$3ͷd4RS^_c$2/e3QT`ab$3ͳ!*$2
+@	+$22o/p+6 +
L
V= +
T.\aFD +
`.Cbi= +
k">)L+L+L+V+k!k"+>*>)+3>)+4>)+=>)+`D`C+FEFa+ML+QV+RV+\S\T+UV+\]\T+F^Fa+`_`C+bcbi+kdk"+ek"+bfbi+3^ +gbi+hbi+= +klk"+mk"+nk"+gbi  #9h9lk"  #9m9 @")>CFLV\gmhikl................@,!")*34=>CDEFLMQRSTUV\]^_`abcdefgmnhikl............................................@ NIYj9901546;'#"&=46;&76;2!6;2!6;232+32++"'#+"&'#"&%3746573'#!37465!mY

Zga~bm]

[o"դѧu #KQ#F"!QN@@Xhh@@h
h + ,   8  3 H \     +(+33Ͱ42 
+@ /	+)2G/KͰ/\3Ͳ222
+@	+2]/ְ24Ͳ-I2224/Ͱ//34*+2)Ͱ2^+/9*47FKZ$9)E9 GD9K999Y901373273&#&+527536353#5"'#"&#%22>54."#52>54.#8o2
Lo@!R(Ozh=ut3NtRP*H
:&D1A.1,G<X2O;"B,;&$$<2I+A3D;aBLGlF/ ".$8$.!3!
           463!3!#!"&8( 8( 8((8 @(8(8(88h         ! 1 A H \ /Ͱ/%Ͱ./5Ͱ=/	Ͳ	=
+@		+I/ ְͱ"222+)922ͱJ+BC$9H9 01463!3!#!"&3!26=4&#!"53!26=4&#!"53!26=4&#!"8( 8( 8((8@@@@(8(8(88h@@@ h    " }   ) G R  D  +FͰ2FBͰ?25/8Ͱ87Ͱ/!3ͳ#'$2&/HͲH&
+@H	+2S/ְͰ7+*26Ͱ'276
+@7	+6C+$2FͲFC
+@F!	+T+6<$ +
.'R'&'R+ R.&R....@979C6"().>HI$9F:999 7D$98.:990176;46;232#"'&5333!53'#36?5"#+#5!76;53!3/&5#"

iFFK//Kq		x7	y˱Hl`		@jjjjjZ		sYwh/"     " }   ) G R  %  +HͰ)/ 33ͳ"&$2*/CͰ@2EͰ6/9Ͱ298S/ְͰ8+*27Ͱ&287
+@8)	+7D+#2GͲGD
+@G 	+T+6<$ +
&R&%&R+ R..%R....@989D7!'(/?HI$9G;:99 H%9*M$9C+?990176;46;232#"'&333!53'#3!56?5"#+#5!76;533/&5#"

iFFK//KYq		x7	yHl`		@jjjj Z		sY
wh/"    "     ) 9 I Y u   +&Ͱ27/.ͰG/>ͰW/NͰ2Z/ְͰJ+*:222SͲSJ
+@S"	+@S3	+@SC	+[+9J9 7$90176;46;232#"'&463!2#!"&55463!2#!"&5463!2#!"&5463!2#!"&"

f@@  l`		@y      "     ) 9 I Y u   +&Ͱ27/.ͰG/>ͰW/NͰ2Z/ְͰ)+*:J222"Ͳ")
+@"3	+@"C	+@"S	+[+9)9 7$90176;46;232#"'&463!2#!"&55463!2#!"&5463!2#!"&5463!2#!"&"

f  @@l`		@y      "    8 K V  &/3/Ͱ6/Oͱ22U/Ͱ?/@Ͱ<2@?
+@@	+:2W/ְͰ+MͰMA+<Ͳ<A
+@<>	+A<
+@A?	+<R+ ͱX+9M*+9K$9A&/G999<6:OU$9R3299 6/+9O299U 990176;46;232#"'&%4632#"'&'73267##"&733!5346=#32654&#""

m{8PuE>.'%&TeQ,j{+>ID2FX;4l`		@i>wmR1quWrrr:MrL6)?j     "    8 K V  ?/3@Ͱ<2@?
+@@:	+&//Ͱ6/OͰU/Ͱ2W/ְͰ+MͰMA+<Ͳ<A
+@<>	+A<
+@A?	+<R+ ͱX+9M*+9K$9A&/G999<6:OU$9R3299 &@$9/*96+9O29U 990176;46;232#"'&4632#"'&'73267##"&733!5346=#32654&#""

m{8PuE>.'%&TeQ,j{+>ID2FX;4l`		@i>wmR1quWrrr:MrL6)?j   @   \ 8   +Z3Ͳ
+@	+@/	+]/ ְͰ+	ͱ^+ 015463!2#!"&732654&#"467>767>7>7632!2+".'&'.& &&&%&&%`$h1D!		.I/!	Nr7.'	:@$LBWM{#&@&&&&%%&&%r@W!<%*',<2(<&L,"rNV?, L=8=9%pEL+%      @    \ 0 /Ͱ 2
+@K	+]/ְͰ+ͱ^+ 013!2654&#!"4632#"&46767>;#!#"'.'.'&'.'.& &&&%&&%`&#{MWBL$@:	'.7qN	!/I.		!D1h$&&&&%%&&%+LEp%9=8=L ,=XNr%(M&<(2<,'*%<!W@r%         * 2 ? S e m        +ͰP/0Ln|$3Gͱ22GP
+@G	+/Ͱ/3sͲAJ222+/.3,Ͱo2$/9ͲX222/a33Ͱ3Ͱ<2/ ְͰ9Ͱ1+0Ͳ01
+@0.	+10
+@1+	+0@+CͰ; TͰCM+I2LͳfLM+kͰL\+ͳ\+nͰn/ͱp22+Ͱ2x+Ͱ/xͰ+Ͱ2+2Ͱ2+	Ͱ	Ͱ/+93?99@0>99C=P99T;<G99kf$Xa999\99xs|$999 99 GPN~99I99999sq99;>$9015463!2#!"& 7>7654'.'&! 753##35#'33273#5#"'&3276=4'&#"542"3632#"'532=4#"3273##"'&5#54762#32746453#"'&7354"www@w
A+&+A

B+,A
RPJ #JZK35DBCC'%!	p3113C@@EC $))#!2 $)CCCf"D54BBBww@wET+<<+TS,;;,WFFY\g7("(-:&&<:&&:443(*54*)$H12%-(rU;&&:LA3	(&"33      ! - A S [ m w    4  +^3/ʹ25\`$2/Ͱͱ;v22/Ͱq2!/l3Ͱ/P3ͰU2Z/Gͱy22/ְ.Ͱ.( )Ͱ)/(Ͱ.?+9Ͱ429& %Ͱ%/&ͳB9?+TͰ96+\ͳW\6+LͰ\x+{ͳt{x+nͰn/]k33tͰ{+2ͳ+dͰd/Ͱ+2Ͱ2+2ͱ+66R +
",#$ "#$,...."#$,....@() $9&%2;99\6GP99{xi`999d99999 9n99 o999!@
78@Aik$9)($9Z'990147>76  '.'&3335!33#&'&3273##"'&5#547632#"'&72=4"353276=4'&#"5#632#"33273#5#"'&327676=##"=354'&#"542X;:YX::YoidkȀjGDfyd/%.06YYY&CE%%EC&ZVV^Y-06		62+YY''.[[[52.'EH$[!.'CD'YZt;PP;pt;PP;p9^qJg1%=6* lRP%33%PQ%33&?FFEE077II86-CC!+}7>%O%35	13
$EWgO%33%O.DD.  {  '  &72'&76;2+%66;2+"'
	(
&'	P

*o"-J. -Z-       # 7 , (  +Ͱ/Ͱ58/9+ ($/999015463!2#!"&;274'&+"%;276'56'&+"www@w~}	 	ww@wc$`"j!##            / $   +$0/ ְ ͱ1+  99 014>7>76  '.'.32764'&jGGkjG~Gk~!  "! lAIddIAllAIddIAt&
@J@&     @        /ֲ222Ͱ2!+ 01	5577'5	@RVVWRW.\?il``l1~      ~        #    +Ͱ
/Ͳ

+@	+2//3/#/!/$/ ְͰ++++ + ͱ"+%+6&. .. .ɰ6&. .. .ɰ6&! .  !.#". "#.ɰ6@$999 99#99013!3!'75%77777yx#Cj''MaM}|yjC#A$VUG         % / ?  /Ͱ/)Ͱ/$34Ͱ./Ͱ<@/ ְͰ"+'Ͱ',+Ͱ+72	ͱA+'"$9,0?9999 )"'+$94&,99015463!2#!"&73!265##" 547#$3264&#"%;26=4&+"tQvQttQQt#-$܂"((((EvQttQQttz##?D~|D?	=(())        8 /Ͱ2/3 / ְͰ+Ͱ+	ͱ!+ 015463!2#!"& 264&"264&"www@w||||||ww@w|||||||            //+ $901$  $37!3aa^g^h
h^5a^2-2     P # < P \ g < 5/(Ͱf/ah/cֱi+ (5/;99f$&)-STe$9a 9901>767$%&'.'.? 7&'.'&7>7.'$7>'.676'&"8$}{)<U,+!	#7,$Vg.GR@&\7<?5\H,1+.@\[zb?Kk&$I7u5'-.%W.L>4~&p)4	2{	"8	eCI0/"5#`#	##	/1
"[\kr,y9R;&?L       . A U ` i G T/O3EͰH2j/VְbͰb9+	ͱk+9b=>L]ef$9	$;99 ETL9015463!2#!"&7>776'&'&7>746&' '>76'.&676&66'4&www@w$i0 	+p^&+3y/"h.."!$2C',,&C7-F
XjM+'TR$ww@wD$4"P[&57!?"0>8Q.cAj'jj#"p1XRMBn\i6-+.     N  # b /Ͱ/ 3	Ͳ	
+@		+$/"ְͰ2"
+@	+"
+@" 	+Ͱ/%+ 99	90156767673!!327#"'&'&'&5N[@@''l'2CusfLM`iQN<:67MNv|v$%L02366k       3 \ /Ͱ!/(Ͱ2-/4/ ְͰ'++2	ͱ5+ 399'-9	)999 !9(9015463!2#!"&3327675#"'&'&5!5!#www@w*+=>NC>9MXV3%
10Dww@wlN+*$%$8c'#Z99*(  @    /ְͱ+9 0176;46;232#"'&	

 &

         /ְͱ+9 01&7632++"&5#^

c	 &

    @    //+  901476!2#!'&@
 &
}
b	^
       //+ 9015463!546'&=!"&&

  

	     q  & 8 M /Ͳ
+@#	+2
+@	+29/ ְͱ:+ '1$9  9990147632327632#"'&#"#"6767qpHih"-bfGw^44O#AY'T1[VA=QQ3KJ?66%z䒐""A$@C3^q|}}  !"lk)=KK?6           ( / ְ2Ͱ2+2Ͱ2+ 01!%!%VKu-u5^mf}      ~  " = E M [  "/ͰAͰH2\/ ְͰ#+2&Ͱ"29&#+3ͳ+&#+0Ͱ0/+Ͱ&N+Vͱ]+&#>BFJ$93999+099 ADL$9014632"&467'&766276!+"&=##"&5'#"&264&"264&"4632#"&<+*<;V<lGH__HGkg@-K<V<<+*<J.@    0<*+<<+*<Q*<<*R+<<Pu7**7uBf.@+<<++<<+@    +;;+R+<<  	      &676.67>7>5'&7>.'&'&'&7>7>767&'&67636'.'&67>7>.'.67'.'&#"'.'.6'.7>7676>76&6763>4'>&4.'.'.'.'.'&6&'.'.6767645.'#.'6&'&7676"&'&627>76'&7>'&'&'&'&76767><&'&23256&'&4723#76&7?4.6>762674.'&#6'.'.
"


V5 3"	""#dA++
y0D-%&n4P'A5j$9E#"c7Y
6"	&
8Z(;=I50' !!%&&_f&
",VL,G$3@@$+1$.(	*.'
.x,	$CN7	
J#!W!'	"';%
k	)"	
	'

/7* 		I	,6
*&"!O6*O /
		Wh
		w*			sW0%$	
""I!*D	 ,4A'4J"	.0f6D4pZ{+*D_wqi;W1G("%%T7F}AG!1#% JG3J	 <mAe 	.(;1.D	4H&.Ct iY% 
"+0n?t(-z.'<>R$A"24B@(	~	9B9,	*$				<>	?0D9f?

.YGu7
          $ 3 7 C [ b u '  +
Ͱ/ͰB/c/ְͰS+ͱd+S@	
 %)468@D\a$9 ' +Sb^$9FIN$9B"46:DU$901$  $>?>7&'!7 %&'327&#63"3>7&#">2&'>7&aa^^XP2{&% .0x||*b6~#sEzG<L	$MFD<5+

	CK}W)oa^2|YY^D1>]yPեA4MWME6<5*@9IK<         ^  /#Ͳ#
+@	+D/ͲD
+@	+_/ ְIͰ 2IͰ/I
+@IS	+I(+ͰͲ(
+@(5	+`+I9(@$99 #9D $99014632632#"'#"$&547&32>54./.543232654.#"#".#"ែhMIoPែhMIoPxIoB':XM1h*+D($,/9p`DoC&JV<Z PA3Q1*223 PoIMhPoIMh\%FuI2S6,M!"@-7Y.?oI=[<%$('3 -- <     # ;  !/</ְͱ=+ 014762	'&#"327"'64?6262#"'&'5K55	r*9;)x**%<'k5545y,>*x&i55K55q*)y(;:*h	)k5555K*x?x*&       / 8 /#ͰͰ/+30/ ְͰ+ Ͱ '+	ͱ1+ 01463!2#!"&3!2654&#!"3!2654&#!"&&&&  @&&&&          1 9 L 9/5:/"ְ*2Ͱ2"
+@	+"
+@"'	+"3 7ͱ;+"4589$9 014763!2#"'#++"&5#"&5475##"& 462" IggI 8(3-	&B..B&	-3(8kk(8+Ue&.BB.&+8뺃        % - ~  /3Ͳ 
+  $	+22@ 	+2-/)./ ְ!Ͱ!+Ͱ' +Ͱ+Ͱ+	ͱ/+(-99+'99),99 01463!2"&5#"&5#"&5#"& 462"pPPp8P8@B\B@B\B@8P8 PppP`(88(`p.BB.0.BB.(88+      !  "/ְͰͱ#+99 01$  $	>&'&#"'.aa^]^/(V=$<;$=V).a^J'J`"(("    ,  9 I  &?'&767%476762%6'%"/'&5%& 2>4.",		$$	"	$$		ܴ
 
[՛[[՛k`2

^^

``

^^

2`՛[[՛[[     1 : $  +Ͱ)/2/ ְͰ-+ͱ3+-/9 )'90146$763276#"$&732$7#"$547s,!V[vn)^zf킐[68ʴh}))Ns3(zf{n	6<    @   + & /Ͱ*Ͱ/,/-+ *#901463!2#!"&463!2#!"& 3!264&#!"@& && &@&&&&@& && @ && &&&&@&&44&&4&   ` B H  /  +,3   +A/3Ͱ2./Ͳ.
+@
	+2C/FI/@ְ2.Ͳ@.
+@@	+@@	+.-+Ͱ2-
+@	+@	+J+.@5>CE$9-&FH$9 /&5>$9C99F990146;'&462!76232+"/##"./#"'.?&5#"46  &&4L4&&&C6@Bb03eI;:
&4&&4&&4&4&w4) ''5r   }G  ( /ְ1Ͱs21
+@	++1z9 014?63%27>'./&'&7676>767>?>%63#&/.#./.'*46+(	
<5R5"*>%</
 '2)N@2*& @P9A
#sGq]
#lh<	2k<X1$:hI(B"	!:4Y&>"/	+[>hy
	
@ 5d)(=Z&VE/#E+)AC
(     K % 3 ? J U k  c "/*Ͱ1/Ͱ}/oͰj/Y/dְ_ͱ+_de9 1*@	 >8BNTa$90dev{$9o}|9jp9901476$6?62 $.776$'.$ &7>'&676&'&7676&'& &676.76&'.&676'.76&&YJA-.--
9\DJՂ	%	Q//jo_--oKDQ#"N	{WW3'	26$>>W<vT+X?*sJ@;=?s:i@Dh>Cw%`F`F_]\df`$E ""F!IB8/Ka`s2RDE5)%^{8+?`      r 	   2 / ְͰ+ͱ+ 
9999 014$7&>7#"&$̵"#ÊI$~EacxWW^c     z  k 8 j/Ͱb/[Ͱ	 l/,ְ@ͱm+@,S9 [	U]g$9014636$7.'>67.'>65.67>&/>./ "+f$H^XbVS!rȇr?5GD_RV@-FbV=3!G84&3Im<$/6X_D'=NUTL;2KPwtB X^hc^O<q&ռ,J~S/#NL,8JsF);??1zIEJpqDIPZXSF6[?5:NR=;.&15Pt= 

            ' 
/3Ͱ/Ͱ/Ͱ// + 0175!+!"&5!!5463!2sQ9Qs**sQNQsBBUww H HCTwwTC        1 s 
/Ͱ//Ͳ/
+@/*	+/
+@!	+/2/ְͰ+ͱ3+	
%$9 / $9%&99$901$  $ >. 5463!54632#"&=!"&aa^(`?			a^(
			        1 s 
/Ͱ*/!Ͳ*!
+@*.	+!*
+@!	+/2/ְͰ+ͱ3+	
%$9 * $9!99$901$  $ >. 47632!2#!#"'aa^(	@	`a^(d	@	
?         / < /Ͱ/0/ ְͰ+	ͱ1+ (99 %,99015463!2#!"&%3!2654&#!"47632#"'www@w @&&@ww@wwB@&&@           Z 
/Ͱ/Ͱ/ /ְͰ+Ͱ+ͱ!+	
$9  $901$  $ >. 462"aa^(Ԗa^(ԖԖ       ]  6  /  +/
Ͱ3/&Ͱ%/"Ͱ!/7/ ְͰ+ͱ8+6 +
!.6!6&!"!&+%!&+ 6..!"%&6.....@99
99 3/ *+$9%&9"9! 90147 32>'#"$&7>32'!!!27#"'!"&'Ѫz~u	f:лV6B^hD%i(: ((%@*>6߅~̳ޛ	3?^BEa߀#9cr#!       K  L/ְͲ
+@	+M+ 015463!2#!"&66767676'&6'.'&'.'&www@wC1$$*=+T"wh%40C>9PC/+,+	/9F6(ww@w$)7.3cM3IU/A*7U1.L4[N .QAg#%@)          D  :  +E/=ֳ>$2+ͳ!"*$2+=
+@+'	+2=+
+@=	+2+.+5ͱF+6 +
#?) +
 #+ +++! +"#+?*?)+>?)+@ !"#)*>?................ #)?........@ 0154?5#"'&=4?546;2%6%66 546;2+"&5#"'&
	wwww
	`G]B
Gty]tycB
         C r   +ͰA/63$Ͱ.2A$
+@A<	+$A
+@$)	+/D/ ְͰ?+%28Ͱ-28?
+@83	+?8
+@? 	+8+	ͱE+ 01463!2#!"&73!2654&#!"5463!46;2!2#!+"&5!"&w@www^B@B^^BB^`@`@ @wwwwB^^B@B^^B@@`@`      ' 7 H P [ ./+Ͱ!/3Ͱ2 
ͳ!+&ͰF/DQ/LְͱR+ 
JM99&999FLO99901467&546;532!!+5#"&547&327!"+323!&#64'M:@nY*Yz--zY*n@:t9pY-`]]`.X /2I$	tkQDDQ54!/@@3,$,3@@/!@&*0&&!P@00$p     R V  46?'&54632%'&5463276327632#"&/#"&/#"&546?#"&%%7,5T</L666U;/M5<U<,i>S]8T;/M77T</L7=Q7,i<Rli6i/L5<U6-i;V7,7O;-I68Q=a!;;V6-j;V6-5	P=/L596QKi;        & F A /Ͱ/5ͰD/G/ ְͰ'2+@2	ͱH+ D5 &$9015463!2#!"&3!265"'.'.'52>7%>54&#!"www@w 8(@(8!"5bb./*
=%/'#?7)(8ww@w7(88(#~$EE y &%O r		

		O"):8           % _ g q z h  +/Ͱ]/&I33)Ͱ/r/ְͰk+oͰo+	ͱs+k@ #&,`dh$9 h#`df$9)@
"BMUam$9016$  $& $6&$ 47&6$32#"67>&&'&67>&"&#"%654'LlLe=Z=刈2CoiSƓi
7J?L.*KPx.* ~p;_lL刈=Z=刈_tj`Q7$ki'<Z :!
	@!
yy,ik*%           E /3Ͱ2/ ְͲ 
+@	++ͱ+9 990146$7%&$&57%7&]5n̌%wǌ&P '!|OzrSF       	  0 y   +Ͳ!%)222  +ͳ#'+$2	/1/ְͲ
+@	+2 +#Ͱ#$+'Ͱ'(++Ͳ+(
+@+0	+22+$#9 01463!2!5	##!"&5546;!3!3!3!32)))
));    ;)&& && @&        &@     	  ( 6 ] 4/-Ͱ/7/ ְ#2Ͱ2 
+@ 	+8+ !'$9 -4!#$9%99'*/$9014762"'%+"'&7&54767%27% $&``t+8?::
		
::AW>4>֬.`."e$IE&O&EI&{h<EvEEv  m  !  "/ְͱ#+999 01327>7327&#"& m:2+D?*%Zx/658:@#N
>+)@( oE=W'c:=E(  o  0 L a  ,/7Ͱ/SͰ]/3b/ְMͳ1M+ Ͱ /1ͰM+!Ͱ!X+ͳ<X+'ͱc+M,]999!
7EGS$9X9$999 7 !'G$9]S990174676%.547#"&5467>3!##"&'&732>54.'&#"3267654.#"oYJ .H?LpKL1FE1@Z[@1G렄:$/Kce3:k[7'9C!5goS6j+=Y4%Q5">j@*Q.Q.R)A)(-R6B@X?ZHsG;@"$ECPN[RzsS`;v8\;)4^>0$/.0$8].ggR4!8g;}R'!;      5 > R ] q |  z +/EͰo/dͲdo
+ da	+h2[/z3VͰt2</3Ͱ2O/Ͱ2/Ͱ// ְ6Ͱ61+@Ͱ@S+XͰXr+wͰw+~Ͱ~J+%Ͱ Ͱ%+ ͱ+6= +
.H +
. ...........@@189S<:$9XDO^b$9r+EN999wgjk999~$99 [d@I99V%1#3?J8$9< 6 :$999O9990146326%>>32#"&'%632#"$'.547.767&#" $7>4&'&$ 462#"&462;2762+"'462#"& 264&"654&#"^SAX[]8MmmMLmtG@W^>4}|0:M31$.>Wewpt+H+tpwwpttpSpQQ89Rj MM ccSpQQ89R@Z@@Z5/9W>1^7R2>mnlMJ:^>h!yTRWWRTz%e;C,hWʺIKQQKIʹIKQQKI9RR98PP!MM!cc9RR98PPoZ@@Z@i.G>W        A I ` h t /Ͱ^/QͲQ^
+ QN	+V2I/g3EͰc2%/?3.Ͱr/lͰ3/u/ ְͰͰC+GͰGb+fͰfi+oͰo+	Ͱ	"Ͱ"/v+C=?999GJO99b;)999f*UYX$9i,6+999o%'3.$99	 09 EI$9%"'=$9.();<$9lr+016*$9389015463!2#!"&32$654'>54&#"&'3264&#"'&&#"462"4762;2762+"'$462"4632#"&'!  #,H3<&SG12HH2$<	_$93HR4J44J1{z3A@:4J44J****~%=baab?'3I0k	12FGdH)!6	
m+IJ44J633@@J44J6V****      * <  
/Ͱ-2

+@	+ /Ͳ 
+@ 6	+%2=/ְͰ(+#Ͱ#++Ͱ2+9+23Ͱ30+ͱ>+#(
999 99+-993	990.9   )1<$901$  $32654632754&""&=#26=##"&='aa^rsRQs<Ztt&tsZ<a^RrqP6>OpoOx|PrrRz~{   ]  0  /.3Ͳ
+@	+)2/1/ ְͰ+Ͱ+2#Ͱ2#(++ͱ2+99(#.9 %&99	 !"$901!2654632'54&"#"&%7265!#"&H<T<Ã<T<&<T<HP
+;;+l:=v*<<*=:*;;*         = /ͰͰ/Ͱ/ ְͰͰ+	Ͱ	Ͱ/+ 015463!2#!"&!!265!!"www@w@]@ ]ww@wW@]]       	     % )  /3Ͱ2 /!33ͱ&22	/(33ͱ#22	
+@	+*/ ְͰ+2Ͱ+2Ͱ+2Ͱ"+2&Ͱ& +'2%ͱ++
$9  
99	9901!3%3#3#535#5!5!!3#5!5!!3#H{{H{{G{{)qR4RRqRRq        & 6 @  /+Ͱ?/:ͳ:?+6Ͱ%/ Ͱ/Ͱ0ͰA/ ְͰ+2#Ͱ6Ͱ#8+(2=Ͱ=.+	Ͱ	Ͱ/B+96 %$9=8+02999 ?+)9:-.$9%89 2999'9015463!2#!"&75326&#"#632#"75326&#"632#"www@w%7=}}JC*5LL5+i3B}}7W|*5LL5+ww@w[)$XZ[)N:_[Z 
 )	             467%&4>7>3263232654.547'654'63276.#&#"'&547>'&#".'&'#"&%>327>7?67>?.'.*#"3>32#"'>;?757)	//7/
D+R>,7*
2(-#KcgA+![<E0y$,<'.cI
	,# '!;7$=ep
-`40mI/(D?G  |,)"#+)O8,+
	/~o
)'6	y{=@OA#9388j
 %(1$",I $@((/FwaH8j7=7?%a	%%!?)L
J9=5]~p
[0!.S		-L__$'-9L	5V+	
	6
S+6.8-	       % L d  S "/RͰ^/qͳ+q^+bͰ~/0/;ְͱ+ ^RS9q46Zfw$9+b[u99~3j99014>7>7>7 $&32>67>54.#"#. 67>76'&#"'&#"767>3276'&'&#"';RKR/J#=$,9,+$UCS7'|ՀMLCF9vz NAG#/ 
-!$IOXp7s_"kb2)W+rJ@		#

	5/1Y|qK@
%(YQ&NEHv~\lshp4AM@=I>".)x.--ST(::(Y
 !"1[
/
,      < Z x X -/U3%ͰC2%-
+@%"	+F2y/uְS2bͰL2bu
+@be	+I2z+buFPh999 %-)I999015467&6?2?'#"&46326'&"/.7.?>>32'764&"?#"&'&/7264/YE.A%%%h%AUpIUxxULsT@%hJ%D,FZCVsNUxfL.C%Jh%@/LexUJrVD%hJ%NHpVA%h&%%@.FZyUybJ/@%Ji%CWpC-KfyUMtUC%hJ%@UsMUy^G,D%Jh%         c v       +  +3/Ͳ
+ {	+s/k/ ְͰ+Ͳ
+@	++6 +
:=1' +(1'++ +:<:=+<:=  #9(1'  #9 (1:<....(1:<....@ 99@&7MSdnx$999 99s@c@I$9kAED$9016767672,32%#"'47%67>7>7&'&'&'>76763>7>&/&'.'767672#&'&546323267>7''+"&'7'7j+.=;.&JlLDf'
%:/d
B	4@},+DCCQv!0$&&
!IG_U%
+6(:!TO?=/f-%fdL?6	#nk^/!X	"
##
292Q41	5gN_	%1$IBSN.|nA          ' 0 @ P ` p       4  +d33%Ͱ24%
+@4	+=D4+t33=ͱl22MT4+33Mͱ|22(]4+33(Ͱ0// ְ	Ͱ	+1ͱAQ22(Ͱ18+HX22aͱq22ah+x22ͱ22+22!ͳ)!+ͱ+./99 0(90146;2+"&%463!2#!"&!#"&=!;26=4&+"5;26=4&+"5;26=4&+";26=4&+"5;26=4&+"5;26=4&+";26=4&+"5;26=4&+"5;26=4&+"^BB^^BB^ 8((`(:FjB^(8`  `@B^^BB^^B (8(`("vE j^" 8(        / ? O _ o         /?  463!2#!"&;26=4&+"5;26=4&+"5;26=4&+"5;26=4&+"5;26=4&+"3!26=4&#!";26=4&+"5;26=4&+"5;26=4&+"5;26=4&+";26=4&+"5;26=4&+"5;26=4&+"5;26=4&+";26=4&+"5;26=4&+"5;26=4&+"5;26=4&+"5;26=4&+"& && & @@@@@@@@@@ @@@@@@@@@ @@@@@@@@ @@@@@@@@@@&&&&z@@@@@2@@@@@@@@@@@@@   @`  % k %/!&/ְͲ
+@	+ #Ͱ+Ͳ
+@	+'+ %$9#!$$9 !% $901462!762"&5#"&5$462"@8PpP8B\B@B\BDP88P.BB..BB.8$G     # 3 C Q f /Ͳ
+ 	+"2R/$ְ,Ͱ Ͱ,4+<ͳD<4+KͱS+,$"99499<9 
DO$9014632#".4>32#"&#"#"4>32#".4>32#".4>32#"&TMLFTMLF pYv"?B+D?BJM&X=M{<&X=L|<'<{M=X&<|L=X&VFLMTFLMTPwoJPvoVӮvs.=ZY
<kNsJ<kNsJsNk<IsNkYJowPJov     @     / ְͰͱ+ 014>2+"&7.@UUr_-$$-_r%&&5%             /ְ2ͱ!+ 0146762"'.-.&,&.$@B@$F@  (B  B( #<<%]|        * . 2 6 : > B 2 C/8ְͰ?2@+ͱD+8<>$9@=9 015467%467%62"'%&'"'%.-%-%-%+#+#6#+$*&!@@@@@@!&l@G@,l@`&@&@

@&p@&`$>>׭:ͽ
}:          ! 7 ; A  5  +/Ͳ/5
+@/2	+5  Ͱ,/<Ͱ/ͳ?+%Ͱ!/B/ ְͰ2+Ͱ Ͱ"+,Ͱ<2,"
+ ,)	+C+	9 ,99<)"99	9%9!9015!2#%!254#!5!2654#!4 32!32673!"!5!!&#"RWu?rt1SrF(N[\Ίensm?vd3ZpC~[R yK{T:֧IMމoy@7+|i          % , A E K  /Ͱ0Ͱ/ Ͱ6 9Ͱ93ͳK +IͰ&/'ͰB/CͰ/L/ ְͰ+&2#Ͱ*Ͱ#+-Ͱ-<+	ͱM+#99<-BDFK$9 96#99 -<99IK9'?99015463!2#!"&7!2654'654.#!532#532#327##"&5!654&#"75!>32www@w~uk'JT7|wji>I'DH~?F8qww@wsq*4p9O*sqhOZ^"(LE
MM8Bz      l   5 R [ e  /9Ͱ>/	Ͱ/#ͳV#+Ͱc/_ͰZ/ͳZ+3f/ְ Ͱ +TͰT\+aͰaX+ͱg+ 06;$9T9a\UVZ$9 >999	9#9c%9_@  )STWX$90146326327>32##"&'#"'327'.546325.#"3264&#"	#". 264&#"462#"&zUIr19rsswOIr37UCY?@!'G2LI*?YUI+?YY?$G2#(mnnMLGWzXW>=Wy\GrPk\G;@Y=$2G%,Y%,Y~Z2G		[mmm>WXzWW       1 D V ` j  /Ͱ_/dͰi/ZͰ"/Ͱ/k/ְͰX+aͰaf+]Ͱ] +ͱl+X$28ER$9fa"Z_$9 _&)+PU$9dAC999i@ ,2%5@WX\]$9015463!2#!"&327326?264&#""&#"%.#"4632'&#"676&/632#"4632#"'2654&"www@wL6$
G.2IGffGHel	# 
G-6L"8(-07((}*:('88';D10DD01,7L77L7ww@w5L,:D1zefeG,:L^P8897P7I`DD`Du'66'&77   V   - > M \ -   +L  +3AͰ2]/^+ AL	?B$901'.?67&>7%.'>%67%7.'6?%7&?a0#Ov	"N\$>	P(1#00/6'I]"RE<981G#9($=!F"\HiTe<?}8J$\9%d,6?=SVY]Cj#%N#"
H     @ ) 1 ; C  '/33ͳ23$2-'+>3#Ͱ28/	D/%ְ Ͱ22+ %+Ͱ/+ͳ/ %+=Ͱ +ͳA+ͱE+6>q +
2;q +
3.4 4;....34;.......@ -0B9901546;>3!232+"&=!"&=#"&264&"%!.#!" 264&"]ibbi]pp`pp`^^^Y	@	c^^^]^^]]PppPPppPp^^^e^^^       3 ; E M  1  + (33ͳ<=$271+H3-Ͱ$2B/Ͱ	Ͱ2N/ְ5Ͱ59+GͰGK+ͱO+6>q +
.<Eq +
=.> >E....<=>E........@5/99,-99G')*
$9K$%99!"99 B-:L9901546;>;5463!23232+"&=!"&=#"&264&"%!.#!" 264&"]ib@bi]pp`pp`^^^Y	@	c^^^ ]^^]]@PppP@@PppP@p^^^e^^^        3 S 4/.ְ12'Ͱ$2'.
+@'!	+@'	+@'	+.'
+@.	+@.	+@.	+5+'.	$9 01647#"&47#"&4762++#!#!"&5467!" &&4&&&2
$$
2&4&4&44&m4&m4&&##&        $ : P  
/>ͰFͲF

+@FB	+M/,Ͱ7/Ͱ /Q/ְ%Ͱ%+Ͱ3Ͱ3/R+%93@		
 ;I$99 >FDI99M 0999,(.39997%999$9 901$  $32763232654'&$#"32763 32654'&!"32763232654'&#"aa^)-g+(~̠4#z##ə0  o*a^(*%D=)/IK/%#!|#(*g s"	        : N U k 8  +/Ͱ//L/?ͲL?
+@LD	+/V/ ְͰ+	ͱW+ 3;CPR$9 /8".1;QT$9L#('0M$9015463!2#!"&73!2654&#!"5%>36'&%#!"&463!2&'$'#&7&Q::QQ::QG((((284@aoUgAU:QQ::QQ:(((( G;.}0T@43f=     	 t 	  ! - ; < J X f u v        762"'?432#"5?632#"'?432#"5?4632#"&537632#"'7632#"'74632#"'732?.#"7462"&'7>2"&'732765?4'&"7567632"&/47632 632#!.>		C

EF		)

JN	O	
	/!RU			;
	_U`59uu		~		~			
		|,		




	J|	rq
"vu          ) 9 :   +Ͱ/Ͱ'/ Ͱ7//:/;+ 99 '990115 $7 $&5 $7 $&5 $7 $&546$  $&ww`ww`ww`bb`ΪTVVTEvEEvŪTVVTEvEEvŪTVVTEvEEvŀEvEEvEEvEEv         W \ g y    Q  +/ͰJ/Ͱ/@Ͱ/zͰ-2// ְͰj+8Ͱ8+zͰz+ͱ+j@
W(*OXZ]dyu$98:nt9992_99z>M99@CJ{$9 JQ!$OXZ$9G]99M9@>_99(:dh$9z5nux$9901463!2#!"&7!!"&5!>766767.76;2632#"&'#"/&'&767%67.'&'674767&54&5&'%!&'&'3274'&8((`8(8((8 `(8 	^U	47D$	7[!3;:A0?ݫY
A4U3IL38kCx
JL0@(8(`((88H 8((g-	Up~R2(/{EJ1&(!;
(X6CmVo8%(*\9
          J Q\ /Ͱ/KͰ/R/ ְͰ+GͰG+KͰK+ͱS+6= +
>= !}F +
'*<8>m +
32,-1 +'('*+)'*+ +<9<8+9<8  #9('*  #9)9 @ !'*,-238<=>()9...............@ !'*,-238<=>()9...............@J99GHI999K+01:$9./L999 %+/16I$9KQ901463!2#!"&7!!"&5!3367653335!3#'.'##'&'35!!&'&'8((`8(8((8 `(8 iFFZcrcZx
@(8(`((88H 8(k"	kkJ 	!	k 9
            L S n /Ͱ/MͰ/T/ ְͰ+MͰM+ͱU+-./378>$9M9902456N$9 699MS901463!2#!"&7!!"&5!!5#7>;#!5#35!3#&'&/35!3#!&'&'8((`8(8((8 `(8 -Kg
kL#DCJgjLDDSx
@(8(`((88H 8(j	jjkkkk9
         1 < C  /Ͱ!/2Ͱ3/.3,Ͱ/=Ͱ/D/ ְͰ+=Ͱ8 'Ͱ=+ͱE+ !-/23$9'>9 !09932'9=C901463!2#!"&7!!"&5!!5#5327>54&'&#!3#32#!&'&'8((`8(8((8 `(8  G]L*COJ?0R\\x48>/ x
@(8(`((88H 8(jRQxk!RY~9
          # + 2    +/Ͱ+/'Ͱ/,Ͱ/3/ ְͰ%+2)Ͳ)%
+@)#	+)+,Ͱ,+ͱ4+)% 9,!9-9 + "999'!9,2901463!2#!"&7!!"&5!57	 462"!&'&'8((`8(8((8 `(8 @ pppx
@(8(`((88H 8(pppp 9
 	         3 ; ? C G K R  2  +7Ͱ/Ͱ;/(Ͳ(;
+@(&	+D2</F33?ͱHL22 /3ͰͰB2S/ ְͰ!+5ͱ<@225%+(ͳ=ADH$2(D+2EͲ8I222E9+/Ͱ/+LͰL+ͱT+(526;999E17:999LM9 ;7#/!999($%99?@J99R901463!2#!"&7!!"&5##5!4765332"&6264&"35#535#35#535#!&'&'8((`8(8((8 `(8  cO"kޑKjKKjKx
@(8(`((88H 8(@?MSmmm4&&4& 9
           2 D W ^  /Ͱ0/!Ͳ0!
+@0,	+/XͰ/_/ ְͰ+(Ͱ(+XͰC ;ͰXV+MͰM+ͱ`+C(37?@$9XESTW$9VI9MY9 07DILV$9!:;BC$9$=>AMPU$9X^901463!2#!"&7!!"&5!546;76#"/#"&32764'.3276'.!&'&'8((`8(8((8 `(8 WW6&446dd$x
@(8(`((88H 8(	)5]]$59955{{9
           , < C k /Ͱ*/:3!Ͱ12/=Ͱ/D/ ְͰ+&Ͱ&+=Ͱ=+ͱE+= -.9915:>$9 =C901463!2#!"&7!!"&5!463!2#!"&%5632#"'!&'&'8((`8(8((8 `(8 L44LL44L			x
@(8(`((88H 8(4LL44LLZ
		w9
           0 @ T [  /Ͱ/UͰ/\/ ְͰ+UͰU+ͱ]+6?# +
12:9 129:....129:....@&99UBF99DNV999 ".<JR$9U49[901463!2#!"&7!!"&5!&7>&'>/.$&?'&6?6/!&'&'8((`8(8((8 `(8 ~33??;33@x
@(8(`((88H 8(--&&U?

&&`9
    '  6 h )/$Ͱ/7/ ְͰ+!Ͱ!+Ͱ&28+!9999$)999 $)'99 &$901!67&54632".'654&#"327#'.
'XyzOvд:C;A:25@Ң>;eaAɢ/PRAids`W`H(' gQWZc[-05rn             " & * - Q ./ ְͰ+2#Ͱ'2#,+ͱ/+$9# "$9,!$)+$9 014762"'&?'%%-%%	"3,3"",">[NM[No")"))"nngng]xߴ]         x # Z    +'Ͱ<2./P34ͰJ2X/B3Ͱ[/ ְ$Ͱ$?+ͱ\+$ !999?999999 .')9X,H$9
$901467&546326$32#"&#!+.327.'#"&5463232654&#"632#".#"n\u_MK'oGԨ|g?CM7MM5,QAAIQqAy{b&
BL4PJ9+OABIRo?zn6'+s:.z
 zcIAC65D*DRRD*wya$,@B39E*DRRD*            ' / 7  /"Ͱ&/Ͱ/+Ͱ//8/ְͰ+Ͱ+7Ͱ73+	ͱ9+9999 #(-$97059931499 &" #99$'99	 14$9+),99/(-99016$  $&7&47' 6&  7'"'627& 6'LlLZ&>ʫ|RRRR«ZZlLRR>ZZZY«|R       ! Z   +Ͱ/3Ͱ2"/ ְͲ 
+@	++Ͳ
+@	+#+99  99014$7  >54 ' $&_ff_ʎ-ff`-޶L        c @ _/d/ ְͲ 
+@	+G+[ͱe+ 9G5;NQ_$9 016721>?>././76&/7>?>?>./&31#"$&(@8!IH2hM>'
)-*h'N'!'Og,R"/!YQG<I *1)
(-O1D+0nz3fwG2'3rd1!sF0o .q"!%GsH8@-!5|w|pgS="B2PJfhGdR 	        . ; H p }    /Ͱ9/}38Ͱq2@/~3?Ͱ2//ְͰ!+(ͱ#-22(o+[Ͱ[+22Ͱ+	ͱ+(!"%+./<$9o@
&*03EHIKjl$9[@689?BCL5UY\`impqst}~$9@
VX]_vy$9z$9 @8@	 ./0"<HPdyz$9016$  $& $6&$ 777&$6$7'6767'627'"'7&'&'7&4767'67675&'&'7&654'7&'7'67LlLb<Z<䇇\b9R#$S9:,AA8ij`A8ܔA&#!B;X0,l,0X;B!C9Z04\40Z9C8AܔA,:j`j9#&A8$#R9bb9lL䇇<Z<䇇J!88dpmg<4!&"129,VBBV*8*8]LD

DL]P*V*P\MC

CM\P*V*V,921"BϬ!8*8*VHgmpd88!f!4<         8 @ I S _ B /TͰn2ͳ;T+?ͰH/Cͱev22CgͲgC
+@gs	+[/'+{$3MͰR// ְͰ.2 
+@7	+12A+FͰ9 =ͰF&+2]Ͱ]"Ͱ"/"]
+@"	+]W+hͰ2`Ͱhu+|2	Ͱ	pͰp/+949=)+$9FA;?99" $99]J9W&MQ99`O9hb9	 z9 T99H; 17q$9C&".`bz$9[g)9RM~99015463!2#!"&%3254&'.547>54'675#&#"432#"432#"2654&"3&547#6323#3275#"=3235#47##www@w (DL+`N11MZ
%N92<Vv;,&)q~bf]kM$&JMh2F10H1$8&@,&54	#	i<ww@w-C#C@,nO	}rV2hD5%_@=BZ3&U$56#$76	7.0x2%6;&yRuR/   D   + 3 < G S w '/.Ͱj/eͰs/T^v$3VͲ\222V;ͰE/@x/ְ 24Ͱ,Ͱ4 Ͱ/Ͱ48+Ͱ% 0Ͱ0/%ͰJ+QͰQC =Ͱ=/CͰQr+V2bͰZ2br
+@b]	+rb
+@rU	+y+9998'.26;$9!999=%99QJE@99 j. %2999e!SHh$9s468gq$9VMN999017475&5475.5463227!".73254#"3254&#"4632#"&654'35354'33"&+327#".535"&#"DC?H_`Rbx$+|('-GVVG-EznA̬|w<;|FO;:MN9:P^`9UW=0Gg>Z2<)UmQ//
+)&')-S99kUeid=R;XYtWW-Ya^"![Y-L6#)|!'(<`X;_        " # /Ͱ/3#/$+ 9015463!2#!"&	3##.'www@wpCWU3D/9$Hww@wFML'b;0bqG    9   + I w /Ͱ</8Ͱ/J/ ְ#Ͱ#5+:Ͱ:+	ͱK+# ,-995&ACE$9:3>$9 <%(9998	#3 >$9014>32#"'.7>32>4."&'&>767&5462#"'#"&'9]v@C$39aLL²L4
&)
@.&FD(=GqqrO<3>5-w؜\%L²LLarh({󿵂<ZK#*Pqqq#CO!     i  7&5467&6747632#".'&##".'&'.'#".5467>72765'./"#"&'&}1R<2"7MW'$	;IS7@5sQ@@)R#DvTA;
0xI)!:>+<B76:NFcP:SC4rl+r E%.*a-(6%('>)C	6      >   & 8 C O [  6/GͰS2M/Y3+Ͱ$/A3Ͳ$
+@$	+\/ ְͰ(+Dͳ9D(+"Ͱ"/9ͰDJ+PͰPV+/ͱ]+"999$9D(>9PJ
+6$9V49 G6'/24$9M(9+ 9$
<$9014$32&#"#".'7$3264&#" 6$32'#"$3264&#"32654&#"32654&#"MŰ9'#!0>R	H|B+)22)+Bu7ǖD[B+)11)+B-(33(--'44'-ZNJ
'31R23uWm% '31R23-,,--,,-          &7632#"'%#"'.5	%&"! ;	`u%(	( !]#c          &76#"'%#"'.5%&7	##!! 	(%P_"'( !7+        4 I y / Ͳ 
+  	+G/9Ͳ9G
+@9>	+)/	J/:ְCͲ:C
+@:5	+C%+ͱK+C: )	$9 9G$99)%12$9	99014766$32#"$'&6?6332>4.#"#!"&546;46;2#!"&('kzz䜬m
IwhQQhbF*@& @@*eozz
	
_hQнQGB'(&@`@       D   +
Ͱ//ְͰ+ͱ+	
$9  $901$  $ >. aa^Nfffa^ffff     >   g/BHm333bͲ<Mr222X/Ͱ/!2333Ͳ	'-222/xְ]Ͱ2]x
+@]	+@]d	+x]
+@x 	+@xp	+]R+28Ͳ8R
+@8?	+02R8
+@RK	+$2+]xj99R	'Hg$98*E99 bgEj99Xw94y99$*999014632326323!27654'.5463232632#"&#"#"&54>7654'&#!"#"&#"#"&54>765'46.'."&>..**"+8##Q3,,++#-:#"</$,-,,",:!%]&%@2(/.+*)6!	<.$:,,
@&,,
Qw
,)

w


,*

x9-.2"'
   , L /Ͳ
+@#	+2-/&ְͰ Ͱ /+Ͳ
+@	+.+ 90147676)2#"+"&5#+"&5&'&'&XXyo2$%2$l$#l#b~B@xv)%$I@5$$>$$/:yu  	      # 3 = G W a k  :/^334Ͳ4:
+@4	+@4Y	+1/(Ͱ/ͰU/LͰb/fͱB22bf
+@b	+@b>	+l/ְ2Ͱ"2=+>26ͰF26X+b2[Ͱj2m+=	$%$9X6-,HI$9 015463!2#!"&!+"&46;25463!2#!"&!+"&546;25463!2#!"&!+"&546;28(@(88((8 8(@(88((8 8(@(88((8 @(88(@(88`.` @(88(@(88x ` @(88(@(88`.     % Q /Ͱ/ͳ+$&/'+ $!99 "$999$99901632%&546 #"'632 &547%#"~\h
~\h\~\~
VVVV      5 j /ͰͰ/(Ͱ4/Ͱ-6/ ְͰ+*2	ͱ7+"9 99!$9("%994&*2$9015463!2#!"& 327264&#"'64'73264&"&#"www@w }XS>~}}XT==TX}}~>SXww@w}9xX}}~:xx:~}}Xx9        / > J X g s N r/kt/ְͰ2?+Fͱu+)03$9?47;$9F9 kr9016$327627 $&327>7>. 4762#"/5462"&4762"/&4?62#"'46;2+"o@5D.D@Yo1*"T0l,	

Z



[E
		[		Z

Z

		[

``1oY@D.D5@ooS0
(T"02
,l
		[		

Z)``	

Z

		[	[		

Z

=      BH!_<      ϙwi    ϙwi 	                  	 	                       U                                                3   U  3                 ]                             y n                       2                           @                    
                                                                           z                     Z                                @    5 5             z                                  Z  Z          @                                                                   ,  _                                                               s                               @                    @                        (                                                 @      @        -   M M -  M M                                                    @  @  -              `   b                 $                                       6                                         4           8       " "  "  "  "  "                  @                  N         @                                 ,     @                                                 	     m  o                    )                 @    @   	                              	                                   '                      D     9                   >                                                                                                                                X RX8`	2

r`xJT6(R@z
(R.j  !<!!"2"#P$$%T%%&&,&l&&''T'''(L()$)***+:+,8,,-"-h-..h.//6//01\12(23H34556v66788288909:B:;Z;=L=?"@T@x@AjABCCD<EhFGGzGH HIIPIJ\JKZLLM4MNOPQR$RRSjVxVWrWX*XYZnZ[\6\]|^^2^_"`Za2b`cvcdeNefghjhhhiiPiiij.jkkldlmn
no~ppqTqrpsft(tuu^uvx"yZzXz{{|:||}@}}~~H~~܀D ΃2br\0ZbȐft
T48j2>֜8~*p:vܠBT袨(Ȧ|4ȬHбT
̴ffҸ>d0R6N(*|.vƒdȜzʸ8̼͚&n>Ҡ*x lVrݤބ<H(n(\B>2"2v0NB6,.HzNNNNNNNNNNNNNNNNNNNNNNNNNNNN                 ^          	   ~    	   ~  	     	  .   	  &   	  $   	    	  0  	    	 	   	  *  	  <(  	  d  	  0z C o p y r i g h t   2 0 1 4   A d o b e   S y s t e m s   I n c o r p o r a t e d .   A l l   r i g h t s   r e s e r v e d . F o n t A w e s o m e R e g u l a r p y r s :   F o n t A w e s o m e :   2 0 1 2 F o n t A w e s o m e   R e g u l a r V e r s i o n   4 . 1 . 0   2 0 1 3 F o n t A w e s o m e P l e a s e   r e f e r   t o   t h e   C o p y r i g h t   s e c t i o n   f o r   t h e   f o n t   t r a d e m a r k   a t t r i b u t i o n   n o t i c e s . F o r t   A w e s o m e D a v e   G a n d y h t t p : / / f o n t a w e s o m e . i o h t t p : / / f o n t a w e s o m e . i o / l i c e n s e / W e b f o n t   1 . 0 W e d   M a y   1 4   1 5 : 4 1 : 2 9   2 0 1 4       z Z                               	
    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopq   rstuvwxyz{|}~ 	
 " !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab cdefghijklmnopqrstuvwxyz{|}~ uni00A0uni2000uni2001uni2002uni2003uni2004uni2005uni2006uni2007uni2008uni2009uni200Auni202Funi205Funi25FCglassmusicsearchenvelopeheartstar
star_emptyuserfilmth_largethth_listokremovezoom_inzoom_outoffsignalcogtrashhomefile_alttimeroaddownload_altdownloaduploadinboxplay_circlerepeatrefreshlist_altlockflag
headphones
volume_offvolume_down	volume_upqrcodebarcodetagtagsbookbookmarkprintcamerafontbolditalictext_height
text_width
align_leftalign_centeralign_rightalign_justifylistindent_leftindent_rightfacetime_videopicturepencil
map_markeradjusttinteditsharecheckmovestep_backwardfast_backwardbackwardplaypausestopforwardfast_forwardstep_forwardejectchevron_leftchevron_right	plus_sign
minus_signremove_signok_signquestion_sign	info_sign
screenshotremove_circle	ok_circle
ban_circle
arrow_leftarrow_rightarrow_up
arrow_down	share_altresize_fullresize_smallexclamation_signgiftleaffireeye_open	eye_closewarning_signplanecalendarrandomcommentmagnet
chevron_upchevron_downretweetshopping_cartfolder_closefolder_openresize_verticalresize_horizontal	bar_charttwitter_signfacebook_signcamera_retrokeycogscommentsthumbs_up_altthumbs_down_alt	star_halfheart_emptysignoutlinkedin_signpushpinexternal_linksignintrophygithub_sign
upload_altlemonphonecheck_emptybookmark_empty
phone_signtwitterfacebookgithubunlockcredit_cardrsshddbullhornbellcertificate
hand_right	hand_lefthand_up	hand_downcircle_arrow_leftcircle_arrow_rightcircle_arrow_upcircle_arrow_downglobewrenchtasksfilter	briefcase
fullscreengrouplinkcloudbeakercutcopy
paper_clipsave
sign_blankreorderulolstrikethrough	underlinetablemagictruck	pinterestpinterest_signgoogle_plus_signgoogle_plusmoney
caret_downcaret_up
caret_leftcaret_rightcolumnssort	sort_downsort_upenvelope_altlinkedinundolegal	dashboardcomment_altcomments_altboltsitemapumbrellapaste
light_bulbexchangecloud_downloadcloud_uploaduser_mdstethoscopesuitcasebell_altcoffeefoodfile_text_altbuildinghospital	ambulancemedkitfighter_jetbeerh_signf0fedouble_angle_leftdouble_angle_rightdouble_angle_updouble_angle_down
angle_leftangle_rightangle_up
angle_downdesktoplaptoptabletmobile_phonecircle_blank
quote_leftquote_rightspinnercirclereply
github_altfolder_close_altfolder_open_alt
expand_altcollapse_altsmilefrownmehgamepadkeyboardflag_altflag_checkeredterminalcode	reply_allstar_half_emptylocation_arrowcrop	code_forkunlink_279exclamationsuperscript	subscript_283puzzle_piece
microphonemicrophone_offshieldcalendar_emptyfire_extinguisherrocketmaxcdnchevron_sign_leftchevron_sign_rightchevron_sign_upchevron_sign_downhtml5css3anchor
unlock_altbullseyeellipsis_horizontalellipsis_vertical_303	play_signticketminus_sign_altcheck_minuslevel_up
level_down
check_sign	edit_sign_312
share_signcompasscollapsecollapse_top_317eurgbpusdinrjpyrubkrwbtcfile	file_textsort_by_alphabet_329sort_by_attributessort_by_attributes_altsort_by_ordersort_by_order_alt_334_335youtube_signyoutubexing	xing_signyoutube_playdropboxstackexchange	instagramflickradnf171bitbucket_signtumblrtumblr_signlong_arrow_downlong_arrow_uplong_arrow_leftlong_arrow_rightwindowsandroidlinuxdribbleskype
foursquaretrellofemalemalegittipsun_366archivebugvkweiborenren_372stack_exchange_374arrow_circle_alt_left_376dot_circle_alt_378vimeo_square_380plus_square_o_382_383_384_385_386_387_388_389uniF1A0f1a1_392_393f1a4_395_396_397_398_399_400f1ab_402_403_404uniF1B1_406_407_408_409_410_411_412_413_414_415_416_417_418_419uniF1C0uniF1C1_422_423_424_425_426_427_428_429_430_431_432_433_434uniF1D0uniF1D1uniF1D2_438_439uniF1D5uniF1D6uniF1D7_443_444_445_446_447_448_449uniF1E0_451_452_453_454_455_456_457_458_459_460_461_462_463_464_466_467_468_469_470_471_472_473_474_475_476_477_478_479  KPXYF+X!YKRX!Y+\XY+   Ss  wOFF    G0    (                       FFTM        g+YGDEF          OS/2     >   `z7cmap    A  Jcvt   @   (   (fpgm  h    eS/gasp           glyf  $ .  Bhead 3D   1   6h8hhea 3x      $	hmtx 3    ~loca 5    =maxp 9d       {name 9    XPxpost ;    ﭮprep F   .   .+webf G(      Ss       =    Tt     ϙwixc`d``b	`b`d`d|$Y< # xc`fccb|A+ QH1")Q`` 8  x͑JqVYZbBۊ@MP梵6""Z2/Ѣ̩M40g8pF'R2-g|z>Ei9
tJE:+6yz_<D%.IIKVRT!m 6Fq$Fyq*hwHkkː~2:	KP"$#9)HI*R[ R J֐>{zWty{5*˼ċ<ǳ`;`RZԻ꫞zSE='fnG2\4^a,}^jtL}?&~ ֦      p%   tF #     f  M '  x]QN[A 9{	Սbd;i7rq@DگH!H|B>!3k4;;sΙ3KʑwkS$6NH 덌Zlfuє;j =o)M;Z
;4:	!qKͺb00.?R4j˰Ѽ34@Skm!qK˦6$tUS]`*́Vy&ҷ$,b
9@HƼIJ;ㆵƑ6O<MmoYwK:Ȇb;b)	DBFUϽ,R@D<u1Vz~ˊV΋Bwoj)^ξAcJ<,4hCz7zꈫ>'ӿZ      x̽	xu(<w;`HpH,66KlI(ٲe-H^dǆ8;8Nܦ 5NeiSI*4kn?%rs A%bpΝs=!Lÿ^!̕o2OifdGRnȖ[l-^Slb4Q0v2Xu;Km3#$LCO`Ѕ!)ӗ
D2wkxs~RJwGRXSb0pq2q{K'u22e7tmYm)Wp]IYFTpJ2$	Rtʡlv^n-R7Tyl4ip*y9̗(Bv
')5	%%]Kv噒}^nJ`>Ȍ[H_:r
+JjzJR+W0~8y5jxNgV[DML
*h=A0* )JL
CIqdc&0lЍYኸQG~ȑ,apC}eǁu9aXC1d c/-i%ڗNvD2}?q'7۫69r*/D)\vٍ#jS)-ؘf#)#KȓIYڔ32_;S2ϗеn3 d)0:<+YёEΜ}YAl'NLJ1v[5ljFHvMppnϘvnlϞs=EѢ򻏧G{9ZH\]4}W7%8Ѐ_뻒hufùܡ)3'YD1W)|i{Q=>tレ(LZ.¨'Cd|J#v5ʺG8DD:[BؖHd˱F*?_xܞ/<f
O%:7"?|3v;{#p,b!})HQfr""?!*TFQ"'{d3wkԸ|]o0F]^YoqͿYX闗pQ-GMd+/{"u/OL["ϑrr~0`ژ@XNYHɱ|1\63@tF+vAQ$y.0̈G2DUTQ.^;}Ƕm3Xpꟸu[ D='޻:ޙ턿W<?AjB:Ǿؠ7Ife1w22`><Ȗ쨔H_=)]rRpm()$-ȟJS?k8ce
RRNKYٖ<Gf)J^/OEqtIodNeB9H8s>Ϙ7`%/] @%=.5;}ƴ97?_E	aV*EYVK׈ScLقԼQBPDJZ`;
*A=pK@rr2L>aTF2W|+ERE<r[]a#M*JCG(eS4u{aQZS;YG* :!tJ|@xBGa͗xUJܟJBOTHً+sx\ϵx`+hD*QPxGZލ,oQ~G\eD)9Z7OV.O -!2V5e\{f 3`Cq?ׅ߷G$1[~z}G>7k`ӗF8ؐ2?E$B)?Pg=|LىcI9FANcQƆAa1lF@R^[| SB|rMb!whU%u^^^ִ}ٙ[ABm	\ǄY+QlLZ$lbZZENX_	sKBEYYeCJlz@nXW(_jDg}%P5Nw
#][{W0eQd2YJG>V+(3w@{+r/_rkK9DY`S/<|;%o4=rtz+;n)  lNH,}󺶀c᭧_˧axS(?SSlqϓkgu3p[L*_GSt^PWnϪ|H#w?k)Td*C4z\c$
`br U^vJqbYRڪr9΄c;vNӵJ
xThZqhik7&Cz-|/mSDEÑ/ltp HC%q
g:UY{)Щth#U|Uت/
4 9)BЛ68*  Li%zj%8@Pa :=G&=0U	qR})7}_m2zwY,EV'?bYwE۸k_q1ٺ&mb,ԫO=*+O%fytm?,_䝇ɹ9cڸ/5E1iltcɢma??0U6L=4SW)a0Yr%T
.<F݃I5qN6H#CikEʗ.Ҿ:9O[<t`@O(D<n/]ϗ.
cyy v
Mm}5LL*$a4	U/ъGHV˦N/]gۄ&:90gliNqf/̢dGoRҤ?XIŲ& OG3Զ[OnhpE!^?0?;idY'gC4zc@Çr1T<tFNU_J@tVd[Je}E')O0
	;j7a
ekp*a`. ܲ0 AcM.RXÈYSSf0;ʎɫdc-v7IZLFVϮZa?"g*Q(++E~#
w[$jE}0B:P}_],Rzҍp~QP9 o1>#xE-LHn1o3:`>۾"p7TӁRĸ.$:0ʾ*>d\jw)3bGƯRKF_R_)%g~$Jpb5NRgzcK."遁9,vF Haf X^!'ɾW^Q>Q>a{s?{n=[Ev\S
MhDbǹ1MVזVhXt0jHr-[G&YZ:x,~׀\&GS0M"S}1+B:=sAjXQ}R^! ,@xy1g8Fy8B!'g\2{6hOk5ҷA7̰6heĔ9U]
൓馳$Sc{Q99K*&O@U!U_R!.^a\=B  l׵nWj4*]Sӳa9U5S]]o@`wY+tFUCڔϮڸ)j!=Ny?(l̡I)JAɜԿ9ZGi0mZ (rEZ(rU2-0m^iӃn0{\0{^Jȴu]|4NŦM5GI'5y9'Guحf5w.~R2gt5\}$/"HKa_&\U`2ՅWP_&	@ 	/:NS-έ0Z\ ۥԢ}zp!sc<`. 1.YIoLY/WfMi`UK
{ȫC@~:2ƛCQZYg
Ϛ/Xb(-xØUm
"K-:^ml X8kx>pQ/bTʜ}®,ڷ4ڠ{!C=hAd'U.VJY$!^&
P2t:]<E8deALO!iPF 1$H}N?W5qW7ykFb8gQ`$?#ʩcjTe҃{Mt^i"CO/,&%'є=܎uk.{<) ڕ68z@}(X)Ba {rܕHRBo;lE*qY&3A
Eꝡ@K8@q}{]S.H
A7O(v.1#Wgqtp@[sF|`lݢE*Sf.QL6EVhx-u7TbQk0<3ʛ5DQ*@/j<6VJw%w;̑-O<~ﾥոj	ۜ[
&gтf䢪yaDGӪ3آUeQ,bYXަJS5(Ca7Wh 0=Fԥ!D-
aXiA	4{`ڨ	0TXCY2txqbФ@is_$忾8_ZozC('z136Sf^n.X[6ueQӟmgbR{l&Ӷe(S+RC__f:v	6n0m΁_}R}w^╚[{w?aNy]དྷNNfǥVH[ŎL]6XOte0J*&Ly#-wwΠDEN50:syZpeVGj΍h# aMĦ|3LǎN)bTZ p()k.djOk%ag(iBM6B#hC>>TF+wdɜo%/o
}ٿ&tk?c=!⩜:UQ7p`Q2$}ʹ'5,ځۂOR8FsNF92FFQU;GĻy$dDL@S&vc7u-:L~)2	.Nt
=	<6ӺK/]gVN9&-Qm˽OFL gw xsKI"Y+RήlSjT`	2U:u@-Α!:yTmS6BpAEx :ضm\Cst o'">}[$Ez-w~[ߧ>=,((Z{Ƣi"<I~NhKS(wfTse	VUr8NX]@͔IgӕI@JY |kr-	JWb&)Gh{'-;+roJ%49Dhp:@'pTu..8%#]R2WupTJ$%0CJdE'$_@ʹJUJ2xb6ut6-aцklQaPGkWؖcp[3E)7ޡTP׊E1_mǢkL9cRif"~&N\% b .ee=_2@	Ɖ//T`TWd
`%GХRnS q wJ
NոTEdtEN!j4XF+UW^!-h[`펶#{Q6wjD{繻;wW[ԾdLJٯ3WV*{+e7JwS[BHD^UvLeL(߉Fg,.d,㓇i2J}X8QoE2&A;e[ɭ%/wP*o{@9yok[G^+R/ن+D+9ŋvq-eQ5t+};s5s)Ry_G7$Qdt;<Э*s)yr]vrzK˔. .\O(y]n7z4Aʍt tn=XQ׹|#}1VQG}nٹIGceNiY9;4DD4bRC,kuEtc>"Y7&D_9&#>ҳ3R~-g<4f+;mi80jIX-&GI:,↦.r<dLh-adƚ]DOtZ߲7v޴$2W/UeiZ`Y"ۗCxU%;5)t53枰^YI^k[FKB Q.9QEa@TX
r]@yuvT,gdmJ#qga,ΣE!Rpj2-D&T6j=Hטת?'yЪKVO5qv&>{/lAU噳 <|fP|@ӾiP?@\QGG233UKI;vp#.FR'Gj+A.	.
RlKkkAt4:pƺQ=(-ԡi@eY=2׾^ S_{Sϋm^5 ^3[+rʧiy]E^SYa; +&[Kp:Vpt?cTE!IAlD2HPMhFrf3$C}fF xT"N+F
ua9TNd5Lf\%D2&ȨRR5NE;r	QF|G؁0D-/M&1d_&{C4mukx+ٯsfWhcF`eհRqY1O254Cf*\ oGy	j l>#OW|lr>*
6+ ћ$p]+|2i.6۵.;rA
a/ۃk)9),Khu VrzXra:AGš0  z8V逐{!=^fmEM:-qi"DZO~v{kn>}'>K:\O@HKNO\}b,5I1rK{ڱ6Hqc3F}IgJ˝4XZƊ;'^kt.탩N&z/M\7u)jPӭjg8&1@#VsXadFQ^$5z:x8Wjސsp2Yv~6(=J88p:p:
lȗK0LR^H)4z1b?V$aس0Jn(Y|P4:xI,`c9 Cau,C!&>YȩC3IށGȶ*.3wzMw\1=a͖&-w-kjl,edpO_rͮiq+sg^惌OF;@#s7㼈9GENUʩx55h,oLaq:P)t Y k`a|Υ쑣ns\@29B="EBӃBnOو.V3ުH娮%EyTuDXn3&PZVCơa1-Dg~V*)`$LD˅	W:joqAo=eK1 MZ`4rUӵݸi-19fknƃN>n밧%vK'd[>Zn_0Q'2G`ԟgp"B\,b4U=E)tX؊#l]#ݡ!:*҇``jG~ǷCGЫ`4x==l>Ụi;B('24}u7U.5DhܮeXpT)[ 7BQ0V	7`FpB_B+	lr/\9֑}9nIޱHz#G8Ԛaj
!Ŧ4YCƻX;X[hHY6#j[sOgr?>|A{N+挴Y6qƺ8J5%6j9O=^h6SAAU(>%FwAZf1XDGQP!ϼMy~=R{v]H1z6[tNUғ%}cngVS
8ŕ=||ǷE^RXCZkvqZ'۩uDj,'%=VanqqyU^AK$Ѫ/ߦxwޖj_0>}ߘDp4"hS,y J
oL=[UK-4uEߠPX,0RըewmqX,/Lc͇PR\)uv.Kg%Pb 򮣌Ŋ8Y.an}xE4]RP$ܠB-A0TUSԼp3;w%[n^(@] ps	Q+t"P걵`[jO$Q֭z*$<PHQ3e$
օ\z(/9[B쳁P8Z"w@F"0U-˒(U
7 tERa2sx|񙀆/4gh;eZ)cfQ0f&ʤ2VtM0ς^Pt5rig:Tu Ay&W 3s]cI϶S={󑾬Z4|pez~0EhA2zNb_4rBH=9xcO5-9/ތ6QZ u+AպT ]3+<ɏڔ_%]ʫ]7.(IAN>&2k`Co0^+x^(ia+Bׯ'<kN\;CRnq!pTï*JDM^eK΄%2H)+8+ Q`6"hL
Q~+Sw7**+fФ]>&w?lZ2дk;zNDsnw炝$Xw 5cFqUMj{*H_ΊQ?Wz&|/YML6GWWBl	vu'2ѵLc/׭4tņQ@ASܨ`dcs̑F54F^+8k]tbs0[灬EvO<}b. =B@P>I>۷Ϸ8 z^tjĞ;,U;B(g!oן&w[|~``>Z"Owy"4@m*1wRE bQu-T)o߄wmM?.0KI(mkop:'\sy	cV(JZur/$eF諔k\4cu/	73oZD~xm >//:! tKf`"&*E(/nm&+VGCh!Mm,Έ&7>e۪.UJQ֮{Pdwk6uw'5+DorRy1Pͭ4ƗY'Uh*F(.h҅8]]U`i@g-EhEsTJ<{<DϾxK11YL6qu^CyO{=j_ fnb@
t%6PU*̠F-ȃgd#rs5HL~$05
SBSgjԘT!PA`jHHLpS3UI=j0#L@x %Z
E<e/ɰ׼_k[QT;У"T¨1^qaU_d+f﹂,4vVeż:wFv~h|6p;ڭ1┈5~נ#v{1#v-RЭq}yVKAPeU{y֖Z\񬰨iHK|mL+S+"7>ԩp L_^	E!dF7ߤx87MF,kgdk
мԽ,AE}x%(<Pypy=yږ
/4
/:x0J@LB~~8lRiTbXEsM<.3o>y^=u^-@_~͊"`P3Xzj*v3Q٘WJd]/ޏWK,0|W^3ڀQ t9ފq&-
zPKg+2qFRUJOej
w0K2VAK~U[ݲ_6f 9A7q˯ԽZVbn^Ө]s%]AtSJLkoJKDz=gFewըG
c8N $IpF'_.$[K/(b:kWZAKQsq%#F΃N/nNỲmv.d.kk+Oخg)f_cǬcȫ:zګ:s.,T>Cs5 &ZѡɎFVW	::P `VLENL_nD^"ᐸ,2X}Pg23zBmǞ۽icZg^dR;:-aMNt]%zvi@*٨?Qs*k p3SQՙBQ䷽U.N[`_չx[m ARv+/:]a1=mߺ`2Ղ2gg'EO2{ӾMle)~lHoC-R'SM~V⮧}=N1.כmCr)V}DX>}YJ}-(ed[#ȳ
ַW+zb.]^ر4v1h"flۢíI5GEM<`2=a
/zάۿ#eh(<*(G2 u܉6{pHƾ8¾Zh K*
ӾԀՎ?ZEhVڂ}514'-	;a@O;UO4矕o+\
s9WO\?& T~%v|]O?Ŏ's+>L2$P1	PBH̘؉1]6¸nPyGH( :>LJ#v.jUf@4'l!cOK҄tZLfI凑#h}(Jyv*C
!ԓ|&U7U}a7FyUS~?+e`4p2IHtY2D\F'Htᑅ1 /E*ZYgpjy
l@gOw0{;=)_o]^w)n >(	5Ku),Uxx	Ti*SL	dR,%v.U~#
$:I/9ӛ)rDg}PNLqҌQFTLo&g@OI&I'z^;
XqKEШxQͿ`cl_@x``F|#aVfIfu rߴ	'7]zr@n.l9-?4znX$HNܮ*.t.a*>:124FIyj/g1)<F	?M
4Cs/m$ckӍ,o>=;x_Y\-/U;c5SL.,`M5ELмI,
%RPw딦>Ԭ34i"n4=<4J}Ug9ԣ8QDjhU={<_q6cpLQjz}KL-d%hwZ$G[Ĥ>-x:gMk%%4KgIj|>xEW~uU۫Dc]'U~5'fbȰuo~RpXddj2˜nc,|dأfOZVaY `*ɏ20b%H3q Lڤ<F},%8M&O;3r2kHNKZڀQ5L[eVlEuF)4mӨX1X'x4R	`EKC'A2riuK1 DQK!Fj8WsϕX"_ -f!_ߜ/;l {6>FRڤ7m[ZɫssJVU͘Ea=0	Mg@,:& j MXV?B]vY)a2ESlFM,hБTji"]*c	s^t
-N܋L1G(才xGByGg>yOv[;k8Sqq<@G	ʏxkxc߀YcJgw9bqX?|葤v0UpyB69o?(e^xǁ6]7SN ,ͪ>9AzzKISd0"掵jV	MSaz7OOo·ؙSVkԳz7+J﹛'ZtZ8A_V4IMQ]o9J!d$㫲N4)65N}X$'T3x6iUSx_uuX+CCJl?CGG'χ1\Fyc瘩w2x,ۺ&sR5_(V~ʯNK@[<m/;<3zye<3t`G+Է%m,-5_;ȭ)1_N؁: X$:*uQ#`~+`<(H=]k'lEheAE8㨺 C  zήp̡2j8˅rŮ>]덴9\>kO]G>M4v_A3*|ztGlS1|NFxao"kW/_'N*ɇG/_kWfsPZ*lWaM}wk0/t*E5sN}=(m#cuCǄ`W_,M?nEam-i;WBQJdV;f}S~~*UIx##L
}/V:kH*n$skizX5pH`b6Zu	hTg2]ggBQop6/BVk|'yd	Go*Z*te榞]:Yȼu:md_#%yQf5Y<c3l_R.LDeP,YtEJy͖#Xי,zEu|q,O\vcds+.Ui4i$HJ7%-GylmB0m+p<ޖnکJivK6x"_[/ڃґMsWv0=0Kt*ZWQs;7JV?њdb5gg0_4"&(gf1!4)^5_2i4Oǩy- 	H@TODJV9\SԞ`
(IإrxBy1GF:Hiy	A	3Ҍd=T2q^TOH3Ge|ͥ@9]:]9L$ =6uZ5+n=۳iHW5޴w<d5ճf6Z.8g9X=Y~wPTj,30Xhb[\th5;\s~+_ePb9	xٌ߱rDkDGf!C(NJ}cڜ>:G_]w&]%h8-1fVl6}%x?{O(O[m5.;geYwb<~-)*RAmTȴi0R
	FcW!a^ݢʥF`ll\ht'ɡKK7gqogUdzg$FB=+/DMoNƩ{^^f׆$;U{r٬\ZĬX>GmgusvV[5f<P_º!Dz=I<@<Ue+M+݌ꀹbEkq*Z`tJxUNJحAHZ(#ePe^xȄ2%Uϩ37Di:ɒjz jl `sl71Ia`vfSe.a[v#˥WRMsM&1̐|yTqDPn7I<g ^Af/܆<Ơؾ/9.M燚>uXucS7	u	E4.)gJqW'^K%x¡u
9֤M+ix%W-TsddzDSz`Z 5Fӆտ%9)L!1뽻Ia{}Jg9,ݽ gpz<tTpQa&&5jpLbZW#v"B:=g0QQ}ܞWiɆ6#cB(ۦP:?.qN#Q[<^mm+'Qu;ØA{IλUS5-ƩR4%S2U2Հ%>wv\`0â<ScE
zi1r3(lQhNՃJf˜6:"n}n{jzC/i1!,G]+`R/c7Ҙ&FFOBPH7|.2Ca6La]T2WPpDK,XE`iܧ*aj&C4ؕ-'^zG(%_ IvN^(Zl&֗񃂮ArB/|p3GW1yώюUkW޽6]?ߕ^xלx;xϞ7vcw(Yn'o&IA3z	ٹ4k3,51f,՜Q̗,G
Qu%KRm|Ʌ|s~yN0/,BOδ@cy>}_;?:{v/4>h [㳏?vaT,"2^1g,SX.b[qHф2nqP]qKի	dZܹcr@Em_ӘRq?A_j#J}Hi ֞R{hGf{:ps1ClSMܻ|nP
h>Ewxz[5hzsp<nSvpbqdI)#̖NŅ)_	ޡhpamnS?> z:l Iq
J53وj8#i<| ,@lw7!ȸDu눌=R^r\j`K1aT^>qQ*I|rjKIe1-_Teqc7I}ec\'~n%; 0[pwc=?]<^u*0Kߙw?YyE6?Ya㐣W0m4x0<0,6p$x;c KVG~udzOɬwNܡ&czZoFMljfhJ&,>hH?k:tNs&-X>A=9UNSw۞,MRlK&x=fCMv둄fyrܬToj27w#%M\]ߥSn6fFW:Yv};4xҌ+=BsMw'?n7BL(smBJ*UmRZGC9n7=J="(m/WJdi`QS8MBن'́DO:7	2ʀ>%zEpL?ߪÙ9Ecp+d-W?vL$5,!tDN폰Z%}Snr04uSgnyxWʿQ[8NsQ=p^s8m|o:%&NYy7/kz =L?s$jhF@NGqw$q݃j51ma좑z]"]UTls5mENބE?e׶Ǫ*W'de\iy6b޷W,bƠ2ɼwz_5/В3Aw_[+ÈkmݫTØ̗Tl[ -bpnvjLfܞL&/f⮫vFr>?NWѾ*tQC%F-rA,'rm2KKoo]|^g\9緝p)gaUXG:m۳[sSJ.L{=vWN#5wEc| XlvDW>yUO_{D0qu`vw'Y: >m7LRk;8{7ӽF
d{mXS s0NPϭ5X'<zM@yLĨ>M8Fq&K{rG
# 'yy'ŨUoz98mFgo cFEQjxF1?CQK#F"Ƀ,mm?\۝/9w
tuVX+{y;|fm6Z]q	;	ҘV܇h Z4fctSuĊAfhıj)^\'_CJ8A'o{:7yĞ7#]͒&jzNd:3`sdV{^N  jŻ>vsHpkʛ֬]v3$B	g)wn?n"7M&6K/
^W+h2ڮia+'~^'=d⎧1k%ΐȩ;?aNC.-*ӿN9jG8^!+wՋήe|sG="{̟/|M~3[oߐW\.i>j\f 8Ș똲TIݕRmdYT-^4R%MԍlV]`1cZUcyCp"hm
$ ܤ3iu b
p^I͞ t[ ⦹^ށxHw.gc,sھJ)БJ}Yn%BrҒtZ5㝺
a>5v&@C6)u>LEGqw^M/FȽ+Uj6AB:1-IZPrJ:v5Jk}u'6XKr/|7pkצ3k/L{%{cg>~CAczJ.΅08S{$KtLVf9wW\rzc,OԃyV>n@!S@2/I%z !j9+n(#/PcW摒I^e[̤E;YHo|6BDNѝ~u51fǔtJAw:r ,4)60 ᒺq=fD3G!ޝBNܧì:sC$Ҹ}ʉ
pܺ&!YJfDy.a̴]-'`9weOem/$JS{>6x.eEMMZ)3r48 ^0 ur,*V HNr7+32P>NI;.@6"3Ȍ1cVFRآE<X4jeWy*3I*7ϗSF*2j
w]-Kԕ^t|95`Y9\n&AGh8=\#+WO[NNKَ*o+Ќ_~f~/fm_{hcobZu+&C}'[3O~OyMZU}̶-̝ ه<iycE3)ߗo> Nʻ+X8#~Dރ{gS=G;1u ǖ=;;2C\w[Nz{;7l'޿~	/śA<2Ρ5K1[rA=5-cI:F%`d:L
Iu,FiYJ$vu1]vI@B_?UstѫU,/L}7G}bҕ߼nn/ە=cufi2YFW+udg2qZ)3IڍFh7g0ymT¿y6s魗xަ@]Pq>.dl5jjMnFs]iz֮36iU^b;&|]mYGXK`z_fLhަiusO̼f՘
G6=l.6a&h@ok.@ҧF{p_tSό!]Af}v9[VVOWf*'=ȜNp17aO ?>_X+E}vpɞ'־I巫흑4
mR /Ɗ|9]JgH=g侊܍LAKU+*KvO*UFӾ7s6s%7H-sYE_66)4 N6C-nOƟmp^?bۦ>#2j.:/v;o]O͂M`j[,
L8HOs4QK2[jpJ.6=SC['LFcdyC?kp\lvy\P$ҵw&`2i&vu%cWo16	ɥl9c<vg;Hの[Z}^.WN=nwÿ[Cf*gQ^T1Rml,qmmȪeSp8ʩ.5tyGUo7IRmy^ A H $H NCC-Y%ْ(ٖ{ by$q̸Nm7Iݤv>&MҴ)2Zj+7I\m$%<Rm
8=]gJuj|VkMu;޶^%+쯍g'Vؾ]PriZgzZS#W&C6	f_PMܱڪ[<nę<#}+"rbJ(Kg@:fT-&y/TW?p$,
Y_+s3ԿH\~0њaB\D_7!K߳<4:rvǎҜnOs7zۊV&JRA-S"}6Yj]ƹ%2/&,6%=Jo$VSuZ[M'/lH&%SgmpoT[ZtvAԺtd
jnv+E?oU%i#٩4o`׭V|C`S["f+;|8kQz;s)@胳taSt)4Te-k_[ f6֓NOB}Mڽze\N&z7)?w\!]SbPh{hfGt{_ʑaH>8f]ZWu;YQ}NeGu9`= 1dmΪE;!99>lc`Ek0"J؈MVet/g~*D?BP_+}oIZ<kv+3ؙZԨ 	lV )"
FK452ӽVSF0SjݿY|;,u;KNJ5ֿ%k4IiR{DB:]8]DEXO$Oò:b^Uކ!;HĸJ_0aAK?/ G視Ws9	zTkA耧V<nP<}-j'
8ך~WO;@f߱Fo8Z5(^%s,dĔ\Ԝ t5@`)j4J*"7y#iJTDn	Ԟ>hA2k
&
^pTD惧Љiu9_V"3B*gxCϓ#͓?cmֺ3&YvG *_7}LҏKw;?*\]G^)sMj5g_(Koߑ{H]H˸Y_T]\oRyc"E<GKZ EᮬC4AF@F;Lb^2?R.Dz\Ƚ$zC8H^0TW).ZHHnUyJ0_n?XcG<ɸcpr٘Twe䟌lUwp	n#`0oyscZ`jpڔ9],g*0na]KjE9+|hb>k6D i" 6vEHdN:0LΑRLLwx"QtwXU֮hSPj|#3K veix	Am}-Vo~]w/Or8tFIѕЀxq%-;bb͛z#z)cd=ǰyYpwa\CY04`i*"B7IǨQ^P107A}-ߤχStMʌ~V@`@-Vt2"MbdOOZ|\2__"K+O-e?EG6Y,};|Oէl`¶Y_TR蓉	'/bZ,ol:gu:fIq  rgR>}U`:ԈY 	W¯&u-_Եԝ9SҢBK]!jpq~挷Yh<Ԣ34<`^ײ|2a˔Уܛ
_]Xbtpj,探b.Q [*We,5awX؋{wЮ6lm U{2S^؂ TwB>p\F9iݸ
ɷFg&N#줜یTx[3^_ɚݳ֯A	Ey_DW;Wĩ@Pgˀ%R]Vws8jM51
Nr'8G^{1_'㉉b}S55cK\kf96	{hG=9fN񱾲O<vO$tr&22`#u;]q8ww+W"W1۷.RNc\Mp[7:C:J}ՖuO(4y,TCr/q^<~vw6{4y[F&OUIk.ιmaLʡ2q?SO U\2DXHV@Y8RA)-3G6j;W6=y;Cư11:j\:Et/P/x	:qصk_xA7M5fu:4Xȑ'Go7Hmhm#}cO}PH>y41QSvldlM/*~k!AHd&O.=qtmqt^>W8b0P 졍;]VC'DL,s{,>`l3!`PBQ=r }`p;h0n+Pw:zmO9N@v;Av?zzvb!CƓN|:ʎ+FU8rCNawa@ý4b}2d=t5(ʑ-KCW!I䳗N֚{fKN3K*>Eq'i6xH*yBQ!O;h8XLer計ڨݖa~WK~1]pU'w$z+C77 zӹ|$Z_r;Ʃc\z2=I%Y\XN'OJV2Lҙ0EJL`AzA[7{	̝rۯ|^#OvoL< ㉉t`]*C~RӋ2UmO62SmkWC"
2IE; }y]Q!1l$D'B&lVPիDڭȜۺj}
tl}|MҒV+^C<E({+tc{Չ^~׻␪U|K|Jy2GfI6&Pk+VmX~6wTjfAU`V]CԒ\jV[i.j^J./~/{VWEW!I6_lu_~ŋk;ݷ|}	\)V̨UTʮvo t ѵebt*³9@,V)vLTwRJtskUpvT#R;H(qb@~ D0LsP'P,Ap)5ꆰ!spl7|!?H/f28DP*~D58/LN>75tņCezgwȉ%T/4-ᆨ;CN0Ad$56T-ӋUNC
$ˆԝA&h֣ԓajIVE"6^0jDxA6*^DѠ]DpU2#W	:WY4ZJR`Z KfKz5/y$ZЮ15X%E-"KNI0DV65FD@Y-?-	A-xF!Y,:TjhD$IkPAjYVySf/џ27Jku:IEo&*E%fIo51zEx$QD֥~ĠfHd$-4ժkU댼Iu%O'h::U*7j$Jj^44c|棂MZkxWy0K^%wIYk<}ƋVˋEPbQ4zEl&ڒ]*)RytPE!
AWu&ڨEڍEzAeU~]Gm55A+
>M0k5_f (퐂V7Y
@kAL0ݒjV6-4͢,AѨ*^cL"oo@:$Dol㝄v	'ikkIΒNG//I%Ѣ^Ҋ*MP$l8T}[rݒFk4j%b2*4 :tFC\ϹYc"3jԉG.JnQ+Wk@졏%&dъJe dU
]CF@kv3^%Vў終h"bmvZfsPI#4WA:$Ss1gfd Q96f9r.9/X13f<^`l,d09pa6/8%(Q6/IMk]瓴'BpGPπ_oԿxoyN-Υ>'DĊZ%,Bƻ~O<
,=F+p,VH(	0_ާ:p3;K0Kj~s^zAV 
wm/rfIF0&eb7#JrĵrCɆnpA~(RW-yˍy?_U.i۔[m/扞Vv0BP;ȿqcc,f05-Pшl1-/T'kNx2HE;$WC犟a/Ef{#gy<|Gw/{WUZ
e_̸%U,I`b?B~1CC@@`n"	#顺rb2(O.e0LPBkYrsinǽ=b! =\sh>'0+Csctc ( c Gx1ǁY@6]ŅGLQo(&`og1'L {d+*{lp`N`T/qޡ`pyTr}[6
g-''%Ȅ`q@BY}NWv\	JJ,?8xj澑aiGvO:_+twn>[.1Q2?b#[ᑾUvrEk\)鶭KaW:|H8пO]Vox]3S[oS0Qi>}ILÅ!Zn:9T\&9%)!`'w_c?z]dZ:&58I[nk۶FG˚wAu;-;"/ND˚Z/v)feJ&R!J1TX6.FP[(Sʲo;oy?vmKk=achozáǽ~%}7f񭙛o۹{7ݿ[7Q>51Rݨ<B^Be,_1 dTḂ4"\<b_]ET+̟CI oٖ3qI[sC9̛Dl	7йш~n0[q̌kDbC `aYp^^(ręn@:Qr("Tr@vώ_c(#Qʐ_͝z-{֞k&ux|<\8sܝܽB7bnFsws h:9?eȝ.Qq:K_	ۺek ɯӇ掟8Qw[t'=1pM,60C19☄n r(;ZE\Q4)+T8!vS;q'@)	Gȕj2ERND}pfF[o5jGg;Zj3բI\LŘoI"罂T5Zd5Z@}pXGh[=ou/c-UMg~?]g-$QK矞x(ݴIkl؞|hDhC]D&hK^t)`PatuN~(}jO6x_S+|,h=>>)mnWdD=
R|<bvԀi{.D}\Uڑ'$mPm1T`{
e<`ѧ/GvK'|ǒ]qiӞfst.tXWȮc	Vt	a/y;<~MK=TgKY A"s|xfِѳppMHbV9N|tt;7āTPNTz0ԪL%_W0X,Y%.:a2 KM62I%Q\\ b͙g-Cj|>g>qnb-=媹&ж?4QcAAWjmß8u__'?\`O;6qC3ۆ`t=7#ؽzzaAsCuw+!ʪdq#k2к8crZ1~!}⁉zA\s.bs1'^Q /D:H`zYz@wy{ڏcv]:,Pe'Raog^ew!k^F>Jo9@h%Z龜-c cE}˜ȼ^*8Mu}
KlgʌsTM\kSՀFv6p'\@o1MF@ܴs1-@,TSL|[hF值2NguU Kmw_f+TqMZof5WGg	n?I=W9϶Z`.)ڏT"4*D_Qiqҿ5+}&VAR_PZąN$vt C=@Ma,h#Ȃ*3FKFrVKZA`@
^m;d	hf:eZtbCOCE<Hc<,_1Ge~Qeu衭Z BEhbOMq3|*٨
8TIWFT2}@]9:<swv\޻1rױYJEy4]M6:<ֹ}s'JT{5	iToWw"r|{"r3b3)w3MK^hzt#-V'}as|zJ'jy6lEŪ6+:Lg+\a:bS	-X"fG}6H,ksܸ%clEPms5]ilh#-@o?J\Mb|f.$ir D%S,ƥAPȯHނTJ~S&ɰKёm^r{]WR=2ط)3>x<nqu6o4}[?6kxؤ/eӷ[k}}7;5+Zm|&pzFok%2:\aAc2V@˳a>nF:^,X<+}ՐWhp3D_W /[,ET!:vC+:Lnor;sC>[da ?3Ӳkn[@?R<si};wCyHL2kH'ޱ{ fƦO GsfT[RF-
PNtlUu֭$)W@y͹܃0
oa5I؏ަnOnܹ}=T큁{tMTs4D9l'n&YИT'yՏ=EvڬYNDT"MmRۧQ-7^ة|Ш1Qҙ?zc]oO44|$ǥ70b]]==C5rnW~:{hW3 *<8=$9o^:c1%,J1YN#td1}-3O0'wB<-rZ}߆
	kn\y<ƣWX$T3E{K1$
mjtH!lT/J*kkVo߁8i>Sv>Wы*$#>xY+_엾-R]%\ T&W: F j?! NA%ax=mi*SPjJT*m2Cn$(B#P&@!\o(6bJOЫF
VS ::oOw.ή }$p<:6Lb0񓪍жy$*ߙQk3~6T;'6]BɦY$O"EOd4hm#g(]&@?BEE8zD ϱ FP-;kZ-/Õ-<fz%M%XF!޺uFvP߶D[7m@jlѫԜonwU'1yX#nH`=.`bJ8S)%dA
U߹xMnGo|׾d7*9xMfWwlp,~TeCwP^;{gw'|S}Gk pjOClJGn	f,݄9`$Ns30(j
%]
bV(I#ƍ@KNCt.aSPH_JT)Zey)åmso{yKwl4:Dcz#ϟt&v_YQߺOB=$O۟eSz_q3.}/|W]]뮛U:xc/|9Evp9ul6V'f;ӒI+"*.;uve΀/ޒ~Nڡ#1PFIzd+µ#hᫎCî@gp5׮Q+0:Oxߨ()q%W+(hR"TJTZlo2775fv~#?t-)u&b&[=eƶLrk`/9 d_	"cm뺶&"m-M[]&Թbxngh̓u`d0sx'~9?Ah[N!87Kshtο";,]^st
?hAY>NzwÊBׄjH;	l\.H,.`dZC\1we0w<w
`te&dh&}]{?WMhUCtprE7)	
6z؟4[?R͌0 F_&	dj2{=t_&RV$qپ=!76MIl[ߕٷ7ӹ/Ϝi믻c]})9dO[F/yڙ9{d`O"8I6eZ~=:Y[3-M]>cÙCܻ}Ʀޙ[o?x_'q`uu:ys|Ǒ#Uޱ-[ʝOe.?ubcv-CXyB	bsb,th)RMnYsP覟wvO՝?ANٹbZ'<{d+l5Y^>w>^(sY}jGz^:7;K2.	crzf7EΈ+S0K >3=h
v/sVݫO^(6*Jd=@tʠWl\n#g.NfVÏ0_!A}A|2mfL8}ս+d}mA·2sNUri`Dbf/ӈ꫺0øV:Nå5`p|z$>/e5ږVgE:ElFVWmUcaUÒWaAw/+nSw/mbEOdEJm;]1ķ;T{T@T,ݖ&sgnqCtLJ.?t~ݺ@W@dn_	FC?ӦOL=0x|FkZ/jZg*Gew=F9oЌ>f?]!`'ײKC0E<tpĀ80!l(>E,
 (޴bf7Yrva:;X-Qwt'=2%Äo;l#_	!x{#Cv镭;v86_qM<L|.}i,^_	nYYY!*WK֔I:dLs@0 7JAʃ*TM `˛UK}8"O>_]&ufz7}큭[xϭ$(QZOy룧unZ^wQZ(1PP=:%ED\
I
%gH
A`jpQ! ZH	Z^,NVy7MC+=V]p>on>ܥ#pwu}騗?gZzTC:xZ- ީBE|_9LN4u'#gE1?PI2N>82&Z ld$:=DOfj	Ӡj֎XnVE*u uw '3ܪWFN-ۇ t
?I}c-m+UZىSե/zKIS5@xzFrT)-M
<W%+2m2U!W+@T:,D+ŴnuʜuW k7N:u^Xntk8:*Dm	Tou5e{WmMǓEcM};KGKO1	}zCol:t"<sb':sOq?W,lQPLteU% UR
7*p"ˢ@~h~EƑ0{)!]/C=+*u+12 Tn+
?;7{Eۖ(=tWo~4:M۞n5LG]8zT	G:e+2MB#?KB6<ҧ5l/X'dYjiNXV>$MVѕf{ܼ+\^пDh\c{=MbM\)Gb 06o,\ma\> 1؀v:Uzh7}!kՄqK4Wm:E.DX.'gK%jq11X.N$˅{{[=\aT0:Rn"hфÅ$s	=-d@"FsostBvƀ!Qr)B)9́xar,*rL䈑U(61?.	s_ 1،zCћ#jzѡtMkq]F '䷟Ľ6EM?xhutl5dYդ\ѡ-T^=䓒 ;ȳ VKA~[1
Aك0/⁻*L1"$$EaK;pPt1]5@R ӮPWjp'0IOX]afQc03[dF{l)s$RzT/aoVa6g!fOEg1r/Jza$IF&\VVL{:IZh-)T9@&1nIpE
=wZ{_rXbdFY8 b#&N rDʎx7h*&Bė4y/#}bn7uاL;nwTk?յƟ{t3vڌC6D(,u]CO]5qC\[ۜstXG.Ǻ&{-6G}k˕o޾H@tYq{h݉څXb~թVTڿXBcJk	B(S<@ǥ
-R|Ɨqi,-NjIxYH6PffW=O7g6"v?a{%mcB*?tPnRH/Ɔ6C^1
G,KA~ Yyd?$X8rA{0pa\,g:A~F86\>w qӒYzrt_TuǏlν6Ny--m04o[]'YN6*A놪-WCXT/jZFn@ϘLȊSF{#gr{90vKQUI%&ki3AeB,in77+!ʳ9Iԩbn7Y+@NxZE?` :c?AZ{B1Ѫ)/H?Wl`ɞu 2Qlpcn˯pwA$ڵ\Q3c/E20!ebr?.Z}sQg'7ݧ	#DiF6QRx̉oL<9=pG3gԵZFojԭkHn8{-<q 255_
3ӊI]Jđ]fr*u0Zp`rz<Qqw ,zG/ p6;#`oπc#`CiRFQ`N[+߸sa NtH
p(_;Ax7Z*ʽG \oxh^mv_֩<=J)=Ts?#B&S[Kנ1+iO:JygNۿ/DZEfnSG:/jzGM(@UŜʒסIy!KȂ7@S ~T153j]IWA:?@43f8Hffx@sOKc<OY;eq:Xԃ۹PXk!_
/TyM#@E 0Dzsj1I=M(@}f@*{FnCRCqfр#ΐ	$#TF]fGW\kmM9,Νi#f;eu@/dy0}H?m$hvn[B@ri%?$\*P4D ^V4?Znhf.ކѦvbQ߆D"HoWOCr2M~YWo/ex0
zӂAocܞSy6r2FԷblu/x6GA%ta^uALZ6P/շw@s1I`{lǼ 寙PQR~dR SIo8Pb j*|ܬ3P7b_,;6Tܼ@g13WG ]Y.>=}{+r["FRG f<fҭd]~[;Cׯz$t'1ɲ=*w%?"9G`1ͥKe/X#n[+L~SKWr?~YqX?~ב"L q|:H*Z퀫@'::{]ve[]aPα-U1}Kg?kl.gJC0 q@X9gh`ԴVlo2r3t1<L7@Qj	yC"ygDwTHp2am*6EW]^FB>p]fBgr?zN|f.nfѳ+9zGe0b$+n9c-ZQYH&͟y#/QMY$&Tлy1@WZ]Ʌ<޷.yeGB&.ͫ2dmDchCLؼJۨ+cjׁ?1bL1p5i"L(h"zz=&*ܶJ[Q3meU,Bw	%V6
>z(V?
5c#iZAǀ.N)n>IDk~z8ͣQi0K*T>K].LIZBAp^r1.g2($92K$!7K2Y(8h|sdާZ|_4O}d=a㌒C"s5T`c#jTaylnL(ApF}?u:wT2Rߥ]2*fg|OXe@ƓYf}-|dJq]76`nn-Intc|+b"_?3'j./~yU1J
L~vu7o:lzM^uR:ZX~/t4Z`ZE+@sZFF/f<Tōzk૰'--[\n[4}vnR?bj-g]-2HiZ`Σt:ѕ:ȍk8n*J`ɵc7su'RZԘJ`F		.u]88ݹ>&{|V؛>$řs)G:8y]V?@ys}>vZV%
A'/km8s6_؎P/a	\`̛J8{fO{3OB	{<~AIb:8;HϜ.{dRN{Vƪ~ϊ[[]XLg1PX\9,^tVpo!4xeƥ[^EqK )-ɯϷtTXo9!y6St AA,Ǜ{纹x46(,8 :I
FcR8NWe/?.㝇8gXggM_̺>>S?c<mP0|q|.5;WT|]M-WE%!N2V;KBK@d`JSG0z=u#r~vX=!7 {V;Dц+t+`Q^`,AWs" /wϘ]
km,zd+KbQ[oX:o5&I{/=RXC
Ub\u"_NXߵ lnS֒odb!d6Zm]:? !mJSUUCY~[E$3w'|I!{"TsvK_U'0*(悕:a=),xlffB'*aMe`%Y9x0 pӶPƃy'	}*C^D`u,eVW%CW"~[.$.mWi).FW1AMw!~2ߒKfhNccA2jiYRX+#đSPC&*AхT4RKpwYF-ۃv0MN1;p8 .WpZ* b2)FU8W8}mG;rvGNf8=ggk.ȅyY9 ME·p*zbTF4UqVDg8E[ǁTS,5k1lF
 i;U@"NSO dgs:@+4%E;-<ɻAmeI
O<.pUJn{K?V7zݬFSWΟ` ^NeNnRM{=Xꋐ"3dT1LjXW'=8k0aGm@>/nlg.yg1vҍ@d5MsSB}_|+c㴋9D{^l}IF]	#1kW|9$;DL$QQ5"JZzbXj';>}gSo?x.s{fc>ȍ̻?R$omwՖ߶޷k}ɓ2xxmL^xa~z뗝\v8hѲ¦pFۄ*mf	^ϵ~"皫d`%~;y	,T	=',Ys	y,E2}:*qpZxnoZݴh\XpclmW0=ٖo\ p|3{=aut^,D0|;lv$1{$*V|O/vu;Jߏ<6rVCpm
I~7	Z<Xl4[Hr_|.r)"T8Uyp=t>XЌގP>dV\W%U2Q9Fo_G1W^hkgAKZFP;-0b,5*bRyK32 DFz̧I=A
:jҝӿ />}.]ŧ?CZSqG53/qk:c5*Kp?]|XJހfСiO%&fV܅P=ĕz:s5זS!9o3eߡ @ɢVP͚XRQw8[QK5(ߵV}gr}QO:SwX{ؽ1T*̱]unш:0IzPF;={`kȗe=kLyoչ
Xwel!_2E7ŁL,%}eHͷXL\j
duTW{Ik'z&/_&*}s0:T
GߝpP Pރ/S&] mI[cPʛ"RAmz6KWM&TG1s6on+xU}TLA3y
Vх+?~Xt켯ި;0h d[HnW1˒߯!K(ݺ֒ݺ͒ҭ3Ktq:r[/{}<bX?''L!/ B^hQՔ6|mڒ2M/>ڶw>}UƓ,H~R97٬e	gƅye?;|d*cS.)_Ub_<zԻe散 e_iBfhN 0@b	[PM/akYgtHʹ	yU՚o a{8%[oۓv2rju(]
3v.F	!Ydv`3{Q >ܦ_>SЩW~yj|5ušTۖ/޿m>yu?`v YJ&wwVc{:sJ o`+젭&#)7'96ͱ1v1G(j]+('h	nڽQ~ߕsO\{'HyqoV*R'.\TTVҦt=7ϼN^:nv&cO[wΚ-WyKMjU}TZQTzQno=>٨&cz5._+e1VEAYMBcxF:zF>WzmϤ$ 1S%
!k=%<HS0h4i'i$=Z]Ʒ6^7!8ETzJoJYoXwp6
^COYWrXηFфv %*8N&vA)MíY.c㹺PyBΠGfSIzUJpdI3 Xz a=πF9^zϖrOqGA&ySϳbP;U)/UT6	҆ٴ%	T;m_Amm'z^uI~n>SrdWi4D҇P7tRp3±zRz:+}d7~sC'9ȡ	]?f8<dp`7&j.qFKլ-e尤s.-:ڶϪmy.K'(g_=Is2
nhHNLTP^r @ɌS	?V3y?+V]Cf&P-q:tQΙ	&8@rΥ-St0ekM8ZrԎ0+_WE\h3KmgJxϯZZW>"G.=Egr2ĉW8+b\vQ"	;z}5 5Mw212Ā
Dcܘ%G\ے$ITεs^kj0HE*w`0^Ԋ$Kɪl"uDI,k*D[[D[Ժ֐Fdgpgm߈_pIşn̞ڿw#1;t3B܈_/ `=JaSn+$)&e;
2'iÜF*KgHUL tn/?@k=@kS=@[iC#v6~l}ej˞n1]cm}#ۡ-;hqpSes}EQ]/\jZٯ암ѐTɫhڀ5ɇB$\C9rVn,؉Ȕg$D^bZzzk{ȵjiҿтdZ8*1Vd~J}>Uw
E0[z6ŌA:VK~`-[-a9wވ"[®C+n,gxα+BBX,DZA0͵s#e5nT`ߺEi#\d!/.u~LKiyB="҇$<~mmT-e"FУQo$Otuf[hkνעrfa=:\bF3aTE(f6;lekdb@P΁1,."Ƞ ƃAw((HV	[beAq/F-2

.G
u. d6jװ ǋ9ƚDa
{B i8f%!x᫟QG_/ETs:C![f&Fgrl蹑N(  Lo HКn21BAg0:aȹ@:f0k4*d&~Ώw~G@D IB(C,'yF}=SC:S%N%Z&1O̱k=~vRI'by'bPkZB闥=Ukpk23721vt@_o?Z/kk	riuZQ[Tcu=@OaU:JGJA[7Bbn*su]ΚBlhm*֬RW[+t5:YwW.c#!Z>	ǩ 'E<vj/BG@	E[{.8d1l82]=qN2p>}+l_<|Wq~p,vb}Z`[\;-Q0tc9'B,I~bC |6CA']}'zXDHN2`nU٧4uM<G)c{ܻ=	5@(!$BI2	%ǹ$&ᦓv/s﵏4|xNG}Z:
ܮX@]
, vQ)i`#H)21-4%>gL6T= ]fNlǼaˇ/	u~5Y9M%kW/l_CvcX2ˮįOz3ii/MOeᷮ#ҭᾦE.inn754KhR_dX*^b= Iht9VHkUGVP&qÍWB~ܨJ)@j&39Yc3	tjM	U25S>UεPC
X|DH?U	 
/(o@@I}V=z܉qX2c] ,w|
)˄qaE'LF5A诈VOR`2Mp, p鲅dR~AuJ:f%g3#.yx2,qX .EkܧTG'm;B%_O@ ÕHĐYt=Mҧ!3LO"4܇i5\w-$eK/=zhcԂR+%.Fu.'m󾘧Gj{́Pٛ;lMKYqUX9u_2 3T?䫬4O%(gD*$HJn|.>bQ"Ƙ)iRC#v9RER)+|D9Wbx꣆;(p4h%qsZXf1Q+B	x>u&T34tM46XJ*3U
Z? :S+^T08 BM),Şci]+.GEo;MӀMWUM[zvTm8G1ވ֤3,9jGT_9VVh
,qOif5FAZz-%vGY"o2OxuA-JSs>b	SMT-^ah `j TATfr#(r6"y``4ZNeTʨ|V)gu~-Cohq~++Zɘ3s˕Rhx}NdA,{h?l~GolxDQ0ꁠɊ#}N(-Ӫw`d;lњLi\(G2}KBH	A\}{H<%8m㓷󲐷͙oiB47y8UDzpƟ6M̀EZ/gxtO?س
Gbq<R|UWgќŃ_21ٳsi>xɉJ2vp
^}y	R7ʤz|[9%oe2>IJCpW}8Ftiy̫5UFBPd̼F5OY@IrRRR0qjfKwTuKTh?NERנv>ovKzRJ_R;ÌSo`
x~ zcK%(d#/R%`Vx[Hb|
>owC YDO<1gLp̋$5FfLYNccǦ0 :.F~\2Q>_~fюuyjNoW~m}=t.I4&	6`8ke &&e7rf=.!_)IG*p<LAFo0SKZZg栺jiF{sg#m~棭|h)
{6j90URlwx_"KG=/cQ	`	&*ҍ 	С[7-%O ps:}n<kBl)HyБ3	rݾVU=#nA^䨘4Ŝm4P샫ҟjsUw&y4b,[{>6pG'ԋwE^Xa!r%\~hguV&GnX=lo"O+"7&^UX4:iw>UVAj|'Gls&6` "&:g$RsI%Ō%u XQE+cRRbD{NE}U(WB^ajkÊγPUPXeqy$D>qޗLuOaG죔W߽p	X*rdI+~B6c1&'':5`$Z }<	`1[mj?32W
/#D|K:Tlm?d_:KE?|bwOx4I
~O#A
+XCX8
HESR0x&F\Y|9]4Z:k)Lk/v:~j
Lv
8׮*aP|@.F_(jOшPvVRosChD;3[>fDylEf勿孒UZr`)|.bXS-kFV3-G_5K= ]a;]O ~CƯ
Y I.L/B 9uzI('Kr̹ܷHerQ3Y3c56Tϡ3a}'[gG{2-e$z7Nk1mO590N`/JAZx'ow奉fpրga0SpggG//oLpp4Ƥd.$}ֶ^{a]`PgA8 }S=q	yb%aR\
5+97Y6ɲ$6B58㼅d<Z YRՐP ՙND]/%vpl2nG4j+˃ϹQn@KEML<SQ`im87fF>Vfb%[!jt6VqVqƓfO̟<Fk"az8Oor9#>YeOQO\P6Pei4Tir|JNS33N>Ss:֫9>X~ԒY ײ*^+ӎt֡фYrMFG'^Iݟj"
f^T~&mȷ3ZlfH_']wMh&^u5\M]PVS5rwIn9q)> kf&8̉uW$ZWLk%yV3fk:ͪʓU(w@Tu(Z(4vF5
Vy`jLgn5\27Z{k7ljO_?z&FD'aƳvofH0[`]3EzS*zPq lتahhY<X[d3 :]i"&wД2smE6DfDuX}b<#Cc]L	ϜU<MoJ8ٜYIGkEɡ˳ee1W&`sxYYe	5Ke94(lX;1Z>e֠q[geEeLٛ5:]"*8%
I	_vHUp Ԛ2
x"& <+	Z@#) N67Z[gғ0d(r@šp5?7<*56dl"lE^߾Ψ0̲k?5O'Vm1'-ó}T
xl˙&&Șkn *^y{Yr,K?@1?l61,УL&~+g2Y-W°"jM6|h8|Fuzi7ptuxvMOV0Z{(8*!nOZ&UK	B
3UꎋCt ZiO%4lS($[yFo}zZCo6;Q3EGH%	xOpԈh=	m`O>BADQ4rK[fƱRT(zQ" kͯkT4v΁Y^m/
-P'ƕNmS7|O/POݰ! QyDc:ۜTj,PkX MUq/`ӗ_2Ѧu*dMԺC҈:ofٮctH?Y}p_'>yn"O"P	RX>yOekzA#Y HjǊ>Wc,tJ|gyI6?olJ:5]X)B?18I bFyE&8E*uV@ibZ6;IL>Ï@	T5wqIG}xW35+Hv^\6iRq)kQy@$^%Ab=_[H|[)K@&|۞ 3;\_$7	hl$QU !](+s;)sZ:K+dO䰡N+AS2R~l~
r|nXIYY\%Ge'$wrټ/@y,/f`ÐYTu	U#XH|LnXE&D7)p^JWs"Q7jLpڨ$0M *Ӥ4>&P62KАoLL|Cy
CqPncqDҕۯ(GqԘHu߸b "|˨&ju*rƟ;aۓ-=5d醍[8mƟٖ\ldf<Kc?)ZI<d{}n״Ѩۛ/8W?5>˲_76}d?O6Ó]Tԯ#.;q'cr1Ɯd0']X}WN$9v1?"a`>߹={Ɩo['-]Lrg=@߶|fal]jBƶs_K8.vbK[>8V߭AdEfʍK[ 8u]C+t=fr"8@]}2?0`˖X~F[n۾.{Ta wT&<Ӯe&PCQ,ƐOHfnu2i9NnH;_3[\cyĩ݌.]Ϲnn^H|QaEغo# Vz1\HwbA,fStG٢|FW!ǉNz'>zs#,QrcAn9G%1 suT?BmCEOQq`M|ؠ͙Ӕi"NzKS4SS\qE&
l :+6B}
ف$Ncb`
E]Iʯ,~&#Abl:iˀ練PL	{Ke6	vK-5{:Ac0Q]S#wA6%? ͕Ak5{eo㜎UE:=0=B3It7B5}"t-jk7ms.s9p&yB-*~ :Q~APoQ@e<p2Zڧ$G<; `C7WvvT^?Aiև}PKSȊRQOj=ֺA~IB U"B]+>7
yp^hB#HTbZgl%EXM!N ai_G͡QȦ mN sK)"+&,-Z<X`Y3ܩ'D1Kֲ`Rɨ<y!C@/ e?|u`<fzU%w8|=.TG'͂lyЛgںXAhF6v}AiqR%(lV-TmFD褓2OR1(ӍxA[0!{}pqIX	T7Q-̮7yc@y}~Mz#gLoʝ޾z.5,e/r#Є9z=	wgТ39IFqXSP0\@G*|xt^h\됉#޷7rYP -Yh̖:V!x-9G,=Xci7.s{4ri,nj6ޭ6<6?MLx+?m/W_s+7|`k9,5nbjcsGںVSWm"dg	u	d⹯oYqi*, 0$9JS㪲=y
>u	Ϛd$GD(tH>^<i=4SR}ojP.@/9.Qu^S|ߨo2q!BͧVPAP20[-*hSx?U !\7j֪DQ Q*v|.tiO7~CN!.:,Z##qbQOeڪ-KB2R&B-_.\1Yb]$~$YUT$x6K}2|EW)E-B8l@7wǔI]E]w].],贗kY+;ǟؿ?k`2Kmgux}6pMGmYnF?MM͕ϔ}q\Dً7ٙMVPȑ7[>k	l,VrS6\.	{qCmv]!t q!|F#*>FUv~ɲ:Z(Z܍!qW.6ΣEpW>@__~#\mʶDmjhV~ݍΖ!j@(<#P(5(S_7zUM(,U%Z+YB;H|3m4LSiW+?>[
݈c"1ƒE/TxFHoc.1jzk
!℩Vh֔*zW.w=Կ/܊kgعj~ԄkDގDMv4Fen?MCQ){hTꦖRۨK-CЋTQ&5tuςmNpI&gOTϏ'JŞy@؍xi<x(^tOP `xzү[IbެRqϊ駙q47 Fei t,? XCt=PXZ;z:|RxhogV ~z_)Wb	 &R>	RKBsK">*.ݥKxl$Y`k³_Xw;xB,.JЪM `q:|MxB<po'>o;q϶?-?fa`8M_V-31yk!EnuU2s_k@evnK6*IQu0~xewGI`͑N2Z p!|Amiéo .@0)rR6+~ʤp&PH6Nyjp`nVF|$O4[3?oF~f͝l٪n[o.ՙZS]/բ^@\AǬݶN;͞={D~YCgp򅥍p޸40F:9vdMT=ߜ96yUG"cQvS''ONBsqXr7բojډ˯owG"lF}5oj#$x!by7D <q}zz=_F
ِ%OT"n.N./گJ%Io9N_ AOWzg@	Z5ЁkFq>ET<Hilvk2
+_W[.oU@^{UeA<x#~z}ٱۏ߈l-3x ' rN{2C@% N>4NFb<#N ij`|F"\H@| *<wxm-bxh>-z?o^}3F_^W%׳kcGoƿWW{C  U(<2n}d4>2e,ɴ_NQC,29N/qSG(`lr2=mTSbfx#H:mFpUo|mم۾8"{wmݣ|ctWo'tج^ĠDzO7YbņM2^/fWѨ#1ۻvm:3랮IK31w/Y?>ZMM|n<q_eޭ;=wfП^p8?D~Y٬{AWKDM2_B*tX1gγ.
'nٜ4WXߴQZ(UVND' 4ΠVqk&ɨwYz;&D_zq/hh0߬w#M,&?%e^)sGE]&>f-MhTj07H
˚&VKܵJEe)#^u6F#걍(>:J'<[#拒N;=g}QY1N+>ͼ[!4~0Cʧݴ(LU-S7Dd)T98	U2]K2b8[iE=̱#|}H_X*TMO/ygpJuK_H:ʉDJRVjƹ[qKi]塈׳L4eP
^#(gjӢ^CKpbGG+@@hP@+1dQY_)ߛuʯG.QGmYUVT3!T9RI d839K+$|9q̓ۆ)A`j%QQ<(ľI1MT%87+OmVcSO>` AFdgQwV=׊*Dq;(2H~t7UjU{/Nybw~2:O;w}'Nл'z>>='w?s7:Ŋg3yu,?p7u}+&qU<JSea;TwIuTT'^'}.KBP)PbͬnXR
E@BbSĤ{4wSx9

zj\?r߻u'.*tuc/+~N=}z(յ׸A}swߑ_,}~;!c:ϴρ{lK\	pB&Ŷp6fM_w]}|Ls~QODpa@qhH4qbwIĸg:ذ6ܠeәq'1	%̇OAczZd=߄s3r2S"v=R״t6X.K!kH+l4%^0|B р+!n'h<v,zxͮF@K{t-{C@rVy-63AQ:M#,Њﾼ#6gIZvjfgʟb{֭ȿ{O$4]^1&WƆ]7DLu>k:^ME;hgD5G=AڣA.ެ5&^;ݿnFխKD`1,/F],_D8Pb{w<L~s)YezPG7ή۶CB,cxb~``BKfp-vw"Dx=`DK0eB0#ME:{Htɼk155,^lo_o4$vY3Z8#gSx_?୽hMwt
tfIhb[!.efkĆI۳n)`Κze;E-iU1٩N[%\jh}ͫ5K̴̾.ɑijUeL \x;PIN,Nzm925@|uݘbehP2 p[&"RȟT&pU/kZ\6F-.QD-ٵxaGd,Rʕ7ewU"~u$fEX^j	NdH*ׇ-$d+PB El]jXsXK*+rҢ?t`
ޑ:*]{ZZWHRyVߴ+%Ca7N8DwF5w'0s8gNȞLBfX+6hFo-%Y$/"(1W(z?[3ۈ-EXh*e1hh~uRPFY~@̰o	[ dctXnS:OuAŠg"F3^-[O-X[2`AyZ~BJwxZH6Rr5 eNu5ފW&wZ+,Xq?3$DWJpuF,+@G0j C2^Vjj.];M9!ZuutkWt.^{'A۝Ʉk~}]^o &7\~+Ç_u%{aMlxc	Q@ή AJ&@d$@j!(78q	@W 5~aQ.ҟXAv>s+t/K'}gl:|Gr(w2QuXWG]֑<<R"AHFn"tJ|DeZQ*m	3Ru5{`>eOBQU08{j&ثjSU R`SqPA' /6$.зL'?hh_KhMf܍?8Wk6i=9k߱VHr?}hVG}Cy}^Y+^`jL돛4ZٗM?0=+c_Ww%=8=BM<CdxEZ55~N wg|ȌU*SAe@4JxpxNKTd"AP	XQC?K2XDbð!]HEH
QPԮ D:SXͤaDFpr/loe(#a@g4$7CUK j ʡRڃ.B,FW0j4#M$&Q}HຄB&2T{Y]	aW^-Kf6q,
0Lz}йHVճ,C$VG&NG{һC`dW[e4ݙ<mHU6mL2F}~?#܌Nk+l#6sBIO99jpPeLWWǢY!vՍFv8hZ]h˲ZHNJ1ZcAFM2kt{Uc0JXN	ikԊYE3vn7rd72z1fhZ3YV%"4:5,gE4Hh?F8V:ui;qrCOsfƢsxm8Kz#ME4J0+қXck&ǋzMNMc'*~95/w
,ɶ=g356Pᾍ.sji:"M\_837h7TTEYbynA+"q05=L>qe,1gNќ^,s#:MQ>ۮ.FQrZB!mf]fv?rfE;j$Zm=H!fvlѲ9[k3#=j[g#ZciUv/@9,FDȤ1M+XcY! [8Vh2j􌶪{V_3vVZƵ&r@8d2W$#h02!pQ!NhS5:ڂf\!dYZeXƠѢ|WS!,CZ\Ae*FVMC,UCa!juLKo&"xxRNK@cUzFL[ x;n'Hk>qHA'Z$II\&?S5xȚ3UÉ{n6f%S@<^f]uݭ_7Ӵ n8͜C?i=Z0בnHoze{? @7q/W~pCoQsz?~og{"Wۂw,`G?a>V_9mr7ߘ;ǔPu X*:u YZfe@H$A4(xq	7UW7kXKTZ #M;A١A<OAE@0%^QTxH' h7QM	/Fϡ` {	5۹`N}i0\Pރt?ѶUwz=宆P+޺祝ѽy+:^c$7'Iz/)9`1qpn\1XitZ Nkʮt\CvZM|va~N9	TakJ@R!]I8V(5(IU!D45hVU.Q>FzeuWףްGjs#[heiɤ[/]]V:zMNG,tr&t8Mɋ"pSI0 [3g\G\y0N$N}kU|r:sVįN(P`X=	(m	D	o>	l	
 VRVGLDU6c6` LWVN+wZjտjzKqώwEo5:YۂN7<^v={QgumKZ~\f\/ٳcH$zdCxJY(7<lF+m/ёH|\TO&U.jGB%4{2$6f|z+@M
Ea/كD;6^"Cj墟7Lkn^7sS$:I8G 	G{,dRiPka*b
$qu0ZΤIj юlWE&SZ͌YQ@A׮t:Cuօϳ+QSkk=!mԈuq0%G!P~.A3q$*EӀ	*WxOsBfB)-fC5Pyg8*	HXתhhzm`FPB046ޠ1;#E0IOOf)Jpcm"_R^<ۨb u*ǙJ$X 6NbuR&D $ 1i5,Yn*PX{t2>(Jk~+/ᵺʍ\w䟎݅/(:я!ǫ5t]]ݻR_+}|y>~OOn2\/?֡|*jseXiV"ͪ,Qj\ صfΌ$\ĥ!9M`s/"=@}*xþs'5#85Ebڡ1YgO<NƖy &B.f2) sNT̑99ƨki"h* /T)b9Q:eJw`z!TӜIw3? t[N"H
FOUȧ`ʵjaU$ F@pq99?}NNEϩ ߓe)#Ys7Mnl-X=NYfoB=ӀUQ_TFw|CߗS,	u>3zv)m?#Es(=Ρ>Dc73x W$,H ]MBL"b12Vb{$6?]]#$5,#(i"X&c j  J1t1I&;	:k"Tgj=fZ#k5UfI[y-@}W#Κ8ZMh491{N`VW9G9sVwiYV
s*C`~i42VVYhKTwjpHj9X;l
iltĉ5ꈱ+ӬamΫAY֚Z['k8K[rVɶ?C3`p2:;N"͇˾ռiQ˩=Qj2vk,x~5&3%76*jphMyA8k+0Ny]k~X6_)	$pEē%W1"'!B*f,Bx EOYsB&u(KLWg]/R]ZM'y=Mh455o0wW	?>vZ¼r_(j߽wcS/-ƒQ0ZWoj<mdTȸtPWS+=rv\J58pI}CrM̼w];o{ȽOwݸ~#}@`»5<029nk\7Lp{ɩ37\ۂg{̹s5^nG^ZU*#К3L_Uy@dF)6.nB<7!J6AGWO;n}1|'_~	_<xYeӖ(W|^5x(?'[*w]p2nB9_[ 6C>W*\
(x]/ŝrB]As+^"1&8Atd,O[@]$F=e@PڀKjaKqKkӷqɊ\fIcM:I^4VIŪ8Ϭx}\|P(:C[a:roDЏ_%qޑqkpP'C3bu˼Qknj]ᾪ5d,nKNЎGtz%<]0ܬu"tsz`UïwT_ʆe?p.PV,D	D	3H[P+*`@!mh2ƞ9U9;bf?={!|Թsh.9.;thYtTP9[{&<.e2]VayBNI0]yB8;egdj5X 4^6VAz2Ͳr, $""	{%<.@>lO \qO[뺩Z7~P놀;gAuG94B^A=\5[=T\IܸdT'7+dªWQhkn4.ZAJI1L?$ZSiNdbl*B!UW3оn!-)%O.1=t(2nzۨ.)Ez8AqS(*WQKƷ~AB1>XP;GwXpd=S@8ZFbAdBu-eO"},GȥT2х5)*m~ xRi=+۔=qIZǯް/Wv	_i;GZMfP4!U9#AgO
d/FGJ 9ݷd>^	-"`w.FGBQ@U"de35	יM6	<lM l6FaYC;op&qVoW0ܫG8u 4,BzB]-eͱߝ2lNކ=VF.oƆRk|1+,z&qXؿ `Dx	]PxQhbg\u"ҐoP	ӥ|j,#n`='}k'"]gq1	y0i|"	Up~rX}7 u	P=U.? Fcqu xH7J.+nXV93T
JO}0ğ%tr(/ Wu欟4+郜^_9Qex/I<ޘK?Lcb!y 76І7e·p`@ےoui22EOz)]0A,  
PNDR)"RZ/)1'5`4_G>\U3y[	byZ[jH-";B*C( >"Ou§USqđLdm x>yԀ8ސMrH92n]Ц͹O\Ʈ^X}MS5{O%T?d雭uꦑGb\`}Cܞ}}t)UN<K1Ԙ0vm.;"Ne{1ʚUr;Yо	\K[*)c
?-skS*o`;%n0=+LnYG|ȒAny{|%ޱ]:]K?բ]ʷjǪmqc	}.xNGL]'Of5ڛ-Mmv?
)2MJ;UԚ-|}j!KEgW{
Fל&*BUx'>>`E(QCI4]!$lX%-#mxRj[jӛo}%n7t㧣Nlږi,Ybl?ڏ}WtEU.Z֋zLޱ(PR"0rDZxBd0	$dU[U4\GlG3Y4lI$`
>ą:3#P`K+[lv,L$;a|L(`*lơ2[)bQ&OFvP2D*p_;RUNeͿAh7FyQohK>-}decYF#XriQa,>|OC'~55G4S'AY59ek
q{v9ic8_HL#EE*w߻q'ԇ?'IK̾,X	@>+eKNeU|ˏܢ,w2	emfebX"JFPHPk3eቿs}u=yr7KZO[\@9._󖞲Sե?\p]	BHPOUѶTGN@ K Hoo(j4X	\PxFi
zdNkrNy4{{gG< XQ:5WʨA4NMPS"\0b]c=MĠ:9eGa}`n'JDwV:
a`d,8qTͪ1a&F2gOdòZ;;Xvn$>8Тnkz˸Eoz+1{t>QU<.C#)'u1r(x#GH`xujO+/_%/=7݃򪻈^B$[N/^:w

*^$9,$#[K}j}#kg-m\prZ\^CY,{wV|tKۇķF#b?z{n,jDK|/i&L$ƚXBp8nni	pAo-l-25W~OslД|Mk-7eqS:_Ęex8SBڞ_"Tʀk2a
 CD<#;|65{Wϻ[~vh-57֬5QpoBoٖl۳6[V{fv[:WҁݹŮ["6_wٹUݷ{`N{.]v5_ٲNt6tU
1,C-c;v,I-;o<$o/Yiq.,+uq
&o-t3__̯(&vW/|X%ܶw4SP(TkpZUʯ
١R*e)`/j?DnQqT5N%6u\Jx;ǟܯ>ؼ#Vr=`ǩS:TZ|ᬚBk[Kk~8pmj[a3;vcG3ѾFZI$[WyINb'N'NBv$8$@Rv @Xv+!
@)۾BK-m^n!;Y~29ht<ON7@+JwUxsw$-CppYĬlV[*{pRg}|D@PX
,)q\!2q#(iԀLR;$N	9-OXeHq,@@;ln.4xĮCõG+lJ=uH;6]1^i>~_	s6զךUͪoo/GЭtz@45{5{e­#u7qyj3^YV~`M_l׌]ϾvJ<MjgU*G|9PlLOHGo8+P]Rju9	Ic`q^M"ɖq@qeD60Wk2)d^V3W(xgc׆YHE;l72zʬFK$Ԑ+)h @cVfJ^	v<74b7 leU5P** [fI<Rｲ`GHep.)h "fI==5%io_z 3Gv;uԙۥxCs^GUΘA;,y[T'n\fU]̤܄MiTG~Rt/2~ǯGPQW\%<n6]HQޱSC+O%˺kdL!E<|K8BG¸uf<SO5@Ny6aՀޖ\
|	O@(LST&5eV*JC&B3<MIe^RWJp"Kձ

iD-[ڍac;z'5|)p[6FXs5{ӬMg	7Ɲ{foҿ{௰9/x\6c:@gHQ6ᆧSn~ŠkE.rdɺ%uI
=WTBi u
%Y%anw2/'iIuel?ߨk0Gԍu'>˝NNq2II@(ah$B|yw0[CHSΟHFclrJbIFCqT~ UB=N'ʈ &OF2kBh&wh&b*i>#gegб,-fo{0"UAQ
 e B%VP`:RfM+	O*q9xUC;M8u<%N$<KF)Hu)/ym}N'ӧ]hggU栂XIS2"Y5
Pd =R'Fޖs4pd6p,Ә4ZqqB`IͶI=FE`W6bSV#lv3d/IeVbKQ䬊uGK$arßS
TyڣƽgtVT]fuo&[L3ZX:RY8B	3nm\pdRR%g<f	Q7RR?~I'#!s`KSet}|B3@ܨb#OR272ˠ/H6A	-2K"cؤnF&5ɛ`,|7.,K|"3M|]D}jFd)YirTgWpE$B7GQe{T,5Vu	Wqh2i.Tܬ"dr,yhObz?XrCj\n~SYK뻢p{C..6Q^RTer]2kcl,'J2D}ʒЩi)w]јvf8/0Wuf֬QJXiә*1ZVg;(
iD︤vmѕl>VdN(`ؚKztȤԻ͚TU(m2JBu\[>Gp ԃ,1C
.AP*gMrTɲ4#Aߜv5ZBFC2J.CR)dkB WOlLihsW?O7G6/` 8EeǚfDfhXe0[ll\LsLdAk2ԓ0xM"Ϣ$Q|இ(h@2k
@@%#;T??k}.|2mN2O?Atmzm3[:héT<#W]7%> wݲX2eyזiVݧ,NU赼SɕҢYeٳyFکacA=AL:s=(.*rٔ0r-i㍔쌘+*sp]]{Fea$LZJ^(iD)2N9)spg\KvRxA"nS5ltfme+!z&ݍ)m<O@ptS`iFh1ǚ֢Jx8cb+5Yrff	"&eQ 4f] "U"e^0iQV5;jyr@k`'sgziu`Mwynj/OB<֙;W"m@7~Ƒc#ǎ8QSʝ[ۮ:L:2s~޿kh]Su/ʶSug6cծUO	?OZ(o'W!13˩uuL"[n+@mf ٗEV0	{AQ}H|'^v:}q,[}	=k=I2
e}ӏ65e9|<@&[Mu"HQ 5c:pKRowsVlyw}PCVs/L­o gU;<u=>@Z3Lk&NX9D&@J$⢓AʤF1%p܌)	x[a1&Z8,Q|&cbn f=u,2hNR fBL VШK4l>9}Ǵ_˵U򐋦kXJ	TuU(Hh%꽬DC#X^&kY%+<'adehJt=ٱ;,&|խu>nF?誊7ZiKjH
63	SA"pB')V!SdNRF>	DHmc)6&hT%edrVӫg.*L$Z54P`iUN3I4ZgF[A{Nr-uw<IZKfij6DP7UƨEㄶcɸ(N4'$|؉޹	\֛yI0AD0)ٖ>,DUvKS]v~ߒޟO}.3ܓ-%.<r(LJ,`g)1~l2 Iy_mȅpV=й/r?nu<jRGnkǏ.aFk'Fc_{qzR*\/4|ܻ}/}=c2280`͢P+Pߣ~LsgKtQQ4}?<y?uƒsd*?y{gwaLJm꣯:;=2P{量J3zhlQ``jfoeLSAf׋H|,zj9-Or0?E35zO. &<(* *MjӵM;f:Aۨd2c#$;XLQiGũ6ZE|O!Ջyh kZr}6A<7$v1#lVpq˺!m, S"?Y1DI97!	"#1Q~noρ䀨M`;2<mn-kksDӽ+gOjq0ذѼzz;6~{G'{_,|5T-`fnGml(>
q3vFhοyY ?]ƛ#(=pcwlYRAmc6?]dOOGny%0#X]Luj*ojq]ofXD{!ĳG	cr3=iGc"_C?K?;1=ML MV,g(mkx5p^F& 0IW9#TQ5TDxh(_IJZjp8HXa4
jX,=[	,%`YK<)/,?f1_K!].,MSO	t;],CNSB9/?|):LE7R9OMqIV.	'w=	CHw*9Ҕ 'zzU$:$^>CO@Xmf[؍=dL3~u|%Bނ-t$K9S%0A5d`VZ_]ɖxSTeOxczb&}|O:T%RXQqy\{`a󿱭-W22]ȡpU᧨hqfb_.ذu}v+SoM+:#8:b89,m§5㊹u9BW7wqI!Lٞ^*I=SrӨԣւJX@ Sfq'wJ_^=h$RY{E>S6^r)+ֆ
<[ۧ ?8F./oՊ|5CsqYkWF#~l6՞BrBDz;ڷMBsO>gkѥ^oNjD;<5InVN&6fr[yS>=ogx0ħk[wxerJbR+(0n<г<w187K*@etCt,ziF$\1U%ymsƐϮ8bcuUyؘK80oHx4`ݔS<>1es@*ĐVSHKs,xIuZLN:-C&?qV&S)˰̥=M?a@=JieOl=~|_p@ۂf9	uČcWi Uּ`AHe.Ucَg	ްcM釟صCxŉ>8u:PMuȑ;P`> -UUP(»ׯ{Mwϟ@NRZ.b)͊|hfc\B[φaD%r0A=C?V;UZ$̼3XR6$ZZLm`X_T.&0R,fTۃ( 58$l1QCIQ4i1$&B	VYO߅>TvDb]#VutD
W,X5=ڰB]LGX+{RgZeuPmmʪdO;xCu+o^㫞Ř*YFz4.r:Sj=D]KۗoԄ$<_3
wRgoF1/Imɪp4Y>et!D',}#~f-R&XnI2d5CEnIɴ,G5_Rf$/pL]Sx;:ZX7_{akZ)JxQB]|[>ߦjSW>fP5ag˼	W/ҹ&Zik{'E2^dRfp;$\^T#on.:N׸pqނ4_>7]N#2ftliR5SyPP4kv#w~KlB)$qW BbѲ n(l$Lh)'pPm2mP3cl5|HǞ}ObGBfjD_zjqb*/oe-OW 4=Pg4<Q@Mbv\jy`=˥ȦcƗR⃋DRU1VXif9);F㋯r0|`XF fD<&hZ)yķUH B\ÅѰ64h$%U';㰭c	hex1$Ԭ:Y5"z8 pY|@i|#i5V@[QԂCXW#Iqrp0<eC%J 3{Vls;d#bp'`H{v0piuÇe3.9B%M\$E\Y"TM"	?~(FCXMۂ
GWЭ{rbH/ƊJ$lA䶩~,7rjPQ~,c.xW5If]5Q$ޥXYL'S;Hx⥲D~2qq+2V`I\NFUF[nȅ#q8Kr9s
gaTtv#_0#ExբɊrW&j>U
<%nU6β>!cwW$sޏ,?jq~$;+f>kyEK/bRyQ]ZfDe"ܳG+
n,rjTo*UqqIHrc9!Q{=g}9{~!x}~1KOy#U}so{p+y/Lk$"Bn((rl|`0gq"I^&IXWw\vHHY͎p~g1N=dhJv,Sd?T_	K-[_FkU}X_<iy7FLޡG~ {oIt%<P2慸pՏV	42:.OQ7((唂2eTMRmv u+~.jF89y'fȌˁsI82]x%2<0M[3@Cm-쒦b*_  $qeYDqj F#>4Yrf6T4FM[,Z3ݨjiJ)M&LOwi\*jd0FEFF=ZQsfjf=PIZBTj\/נzV*Trj6.q,}Զ61PS(XSϏT5k4Tgz3ǀg2g=}h铏ǴJ*'$#AժJVg^VПRR47O\/ɟ=N!c冉14[63,J h(;(]G$UDccd7uQ&,dD{3`&.xo$:qzf:x]WX*Ů_G1Λ71>^9M8Sj>㲋T#j́|f?Ilfv$y;Tٵ!Ff8|:L!Lp~t]ۀrb3dcKn.ԋ?MmW쿚>,xN m2[6h'⇌Voض2#sLIOlc;0ӢZȂ&DF0`ZBP,kE`u0d`$J
ԆRuk_kGX
'ZHmBABO6^K#iK5Ϳ~:ʖ@Aֵٞ2`9#5NZxUJh1iL¿:Okk;%Tm
6}c_=bڃ6`cDi^}qlykg HOѥjR+OWs̷n-
SOS8()s
15h~Eɧӟg<t8ϔegjǞmZbq\e3uէ'IH?e%p|%_?#TC-_s=PBg2%)*+J+bZևKRB \ \xdݠ ONthYe1rh'݁hUMcE|p8Ug:GdvA${1A,3r߃Ӆ-gi7ofDB!gerV~t0MC7r+Uvundbg7
du'E]8zܰ;53f6/̪\igE$OE/IRe,Q]3$%·q%ӪЗ}&|͈.#}Ik]Q*UxaJhVƬAۄWK&jmN/s.__%RL!Z!ۺux	߄3w=0oF]5۞h&FDϸ^|\S.´Ap{*6IeMx4Q<Q:g?3՘,kx *mϋQҶY͕͋qg]Rg}DgiMY_&g}ʨu=s݉ˈBĿBOH}eJToJ~.'fB&p8@ʖC&&ݐʖ9{Sb&\ ]T'-
M
_/GFJSmt7wcMnDO.}9VL=x6vP3~#*K]X٫rz<w̚Xvb Sh 珡̜s#4qj2ƖNW*1-svA2ilJL$2x4 I^.VS>U% Ce듸@uXT e]	R7_d|&&;&"ԘtDOBܴ|d+]'[FfL{A9.7ޑI8n/~zK
S^zQg]L=7Iu*	\%A,#:Yr 5m@I7@osxxN3w>L'&M']=DpѺ68NZz1#_|I6pIek	=aA^̀h1eEA{a=o4%j9v 'cM߿__c4܊ccZ#:<YN+1T80OSOTuБLR6]!tsOɞnrtK8Wž~CC`5^4'pErnILOmEprhBE{'F==	1Ph%rّ:
wt2kΥ40k.؆qT_u?r$gRchU,U'YO~ְ- p˶N'S}).7.  v{*|
E Y
%2̣FQ	; QK/ iTq#?yRuYӬхOTNo7/6X<*s[<X<xr9</	0KQ3_P't XD8[.fƈoG'Gh!u*7_L/%hLA10eXi
nLF1դOJ=6kG7N^շuOh_yIw\bWa?XG(|j?J$QWZ_h`JzM!Pȧ#b󔙲Q.KR&(3*2B>	V#D[n>)NCk0񗔉"4iNܫ` 61*rl@,<M&&x{/6`Ȣ/#=O4m%ګLc)x2FC{-6ߠ'~VO<yrt;s:1SCԕTNGfݱ`4'YGYH
O&:gɃE֏ca	NMUrFFL$D".܇3rnUrI׿<f!Na&h|2:HnЗPJ (=FX<6,R?mI}YDǜ@4؟Ͼj}7[]շe#߾eZwPړݝ*տycgkBe[?ZWw?!RvsKVS^^zӎ]߼D/W[ibٍ`miRI1q%EvtTF P{1_-RxHp0,.[N UW@'le5U	a}us݆\AYU	#A2Q1iWasYD2$ћkb\)X qbY0o!3hK;
{Oxў_%rx\8H?n`YcAkKN
:$CTx\g[FEy<q1k❍p	*+tx+BΤ(#8BHt TQݟdH*|*D'_CK~k׫I>z|_-y쏢GA?w± u -@9Iy_ϣx*ʬ ?A?dfI:l	ٕ5 y 2$#ٷD$X|!´ZBH
 <	 j5$TPIN$ "`\[܃+,ӵ3I9tvVYRQլ	4(d2b$Y~w{Qς*).*j2ebVU{YG;3h7eGx#һ9}.gQ&nO?:8n鬽Tmp=;lZ=4ݽjUEp
/Nj+U KE3{㠾ˤ} fM"}
!뫈io#B}F<>ƥw3wL{H )22XZ5cePАv0{NcMmz`ߴy{]s#q\sMPrᩫv|۝w^6]fXHVz:gصOE*fO1{X8\	gCB@
M5r$!Y0$uZA,B/n
neٵ4޿Ѳ)S7{/]{ﰧT`ee啃Z=jpJU&%*Rjڗ;
tm'&w-K_}x8э>ᩭuش~!	z1yj*1?Ҫy֖־7@oJ.W:{Qmʏm.Wz^S*/Yŏy~tjsM+ªDÅtQs%J<3bxU`wkvv<i6 <b³0:**@+ϊqע=;	'q*قgt@t}6ELtra߇`Ϭ!+mi>F݆
MQΦ 	MLS~-aC;}z)ʬ1dv52Y!pg=JlUbꛧeWN?juH}D^ZIU^-&XE&%A|w|6>/r%XI$}Lbx|&FR7N-w>hݥ3UUCʀzf*0o{}ydeiz^&6J1c~%4kp.~)|K$f+|Zm-6̲:Ny5:k2%VЏ5>fBaORC70e>h2Go7ZQeTKx~@N|fktx;LyְthVHͨP1n>9	 ? TiP@p>=a(Xn>(mY[0CX*2"Tr'P$&"cvYo:l|׍ϦXɬNN;,쉚՛ERN;3%B%Ez/<bMz7B'0<#A{ivoP{,|uM 9o!~s7,__uO8T1o^GpǴZkڳ~=}V}~ͺ6dR羅RځbN9-JM$%}ןF_S+Jȃ!w䪘(JXy
k5.|ӏV,/Y,gA=5=/Hx
7,GK$xA^,@x' Je%@\C>-#E$&vi ncLєSsLz	't߲+mF)uJ{Pask $TϿ|N10Я@oE<`㕩3<f.>.̀Sifũ&Q/a遱TCMDeXHaG1w:Xcީ^9zTt²~S<uIng$H(5e:b
No7v7ۼeVC*brɜGGl DS\e1lW_ahtf_,Fjv#R}$m«%unR>$>"DO2C|AøܬAO]}uUC6QHz
gRF뻌srZ¦R/k'}ݪzDIӕ;5Dn*A	cAr&5i9}:vN6F,-:cM#ӌH*`YZPEjᐓ6#MM@5HMr}SAQ3]}N	AVG3-$c I%	!'֞M1@rh|f=b(dRܨDo¶&6n*t	<;j8Im-%
F0^*srd0nlJsЮ,'՟!9[)Y9/WlzTxU6;hOkYI,VR֊NGGGmKzg;nUUA
tS=HУq7K>?:aW?Būcǐo~>%bįNGyI`<.IQ	-CR0bjNA+qFGzbZN?15
,=-<3PY_PN=%"yhX_v2,wۨ7}h$@,#>oXx*xf3K/xȌ,_ᔉ|_&Wl~"j\$Ucfa.s6OџSպ𮞫#m]5jmZIh(.QZxj,FA!+Hidɤ"s\@* )@a8jo;'ːRulǚ5NL?R!mҔAn!|4+8¿Bf[*)h57c:ZsAٳ9iST+"/ms2DF
7ipw0"_A/A,z;Gb텙fNjN0_JsJWm%IjTfu4ڹ>c.-л(洞0"T5efv20Iđ$
%"^m>WOp4Xd蟁쵸SwZ<kQEs5j3dKl50~P;ev:+ȹ9w)&Bb3-xpv'B" ,{  SU|M״<`9)}[V!- 3ŋ3eO*pW[
\ny|G`b8ӱp5z*RX]R@IVU"~V.\vZ4]/T2,T:\7޷äN]Ҵ]kRJ$Jp7J)rrJeg`"7d*%<ggF$3吅(M^8`!nۭ:Л9A4AXF)jh~O	*dR!P_ 'hܵokLb2ˊ7l|-ךf}x˙F"U"H&DSGvmk-"XvO]BRj^e.QGg8ω ǃ73׃e̪|"*"ؠ&/f$ڜ;<8n]h1e1yy	  G+;
YQ&N&t4Yp7~}ᦒՆQRg`I䉑]R?&J"NO$Et1C>ǗgN967Ry8>-f
@p%	XXQl#f*!k0
2XE*LԢb؁ 0f=ͬ(cn Cpw޷!.
GhY~W컴pӸr	Z,gVypݫ<YZ;}E4|閘D0$Kh\E/Q
 Kc_A{m.܆jy3x&wpN޽s?ݛG4gdven^YGnwD\WvRQD'R3),N=.!D=*afW3J*-̍jIAʮۂF3drHZ QkAqQ	\pi7h>[	1-~LȢ<bo:y?6>/~+~XQE=\.9PڔCJRQ.<lpiJ]PKЀ3h	7To\G>mߗMK6n|Sds{U1;y~,~^ICZ|+ŗi$A?2xc`d```apC1+<;Y	r00( a|   xc`d``cw?p20 EU   xڝTMO1|$٥]je*Q$mjw'8E5(+}OUGzrƱND}Bi4!P	Eg^~oxp=jՇ=toXm~m:cF9ria$;B,r@'|`_8pwgqcޗ]&egs~j!dJ#p͛8i]ۘE_%`{wg*H0H]--bhb`wSˉss8k,P/Ķy1_\:[#Z9y'۩z//uUWqo4_v_N}0=hsirOoq>u/əwG"ԟMĬ6=f̀y?^l?tXΓĩos̲ϖWzFƁlfy>K<gXv&O-/+m xc` p0D0bb|$łe&s88pqp.sA3	B|B.	k9$%zE,HAJKMRC	#2dd͒ϒФGFq%#y*2*TCT'>RRQQvL]B=DO}E*}ZZZXҹNOJ/Co,c7i00^frt2yf',8,,z,YXnrZdeCC,N-BΓ\l\3ܘ9ܫx(xu;Gw
mwM
V&(|IVĜȮ1f1bk˒/KKv+IFVƄmw2222WdZ-+'%]<=u
C
hL((+S6B2*_uS5_jj{jo	y5o0QqSӢsFZZpW[QHwVt}~cw_ߣD&웘6qޤlMᚲ`jmLuM{0bB3f͜1n֜Yfw̾6bNݜGs=4jބLY`/X,x?Xeyϊ5LVY}b͊kqgB6m̵̖-۶|ۺm[öWӶ~i{v|۹oOޔ}gp@Ё;qDHQeXM:x	sNV:g9;ڹv]rieW$\p9N	sn%wkos߃=jzDɢy4<Rӫ{kNݡ>}Y&{g~nίkxw` xc`d``$  L@, @ !C xڍRKJA}= d%A\BD\L8.Eq!Y'I"D21!.<'<cx 뚎I$uWիW5 d9 O\)V(b1gbhqxxxnʳxkVէ+VqlYZy!ڸ \(|2Bk/V1voBvcn	DNmD۳̌-/6#\p5@u	2̎~5D?W":٫l#9Ldȑ!\m[5WS'Um9[ܘy2kwf]᫱1KLkNuQδ#,ʏГ:'D1KFSyTdJqIWhe {؇xmWHu&,-3=M6̨䶥X@vZdK[Uտ~-N?-7	L$g'H8+qn<HB
Ґ, (B	0 g&OaR4,r< +J2߃Ua5Xր5a-Xցua=X6a#6Ma*PCЄ`s`k¶0v `G	v]`Wv=`O}`_@8CP88T@hC0a!toe BqIXGpp'ppgppp\p\Wp\p\7ppwpp<<O<</o||_|߇Gc	~?_/Wk~{_oww@@$0bX"8g pi\k+ʸ
~Wpu\ĵpm\p} 7čpc7!`k8ul`Gp7q­q<wq'w]q7=q/}q? <C0TpTQK:P`;hF]\`c88<£<<O<O<³<//
«oo»||	|§||_|_|·|7q!!~')~%~_gC;}uhWz7#q?s Q__0/ݱTOB3P=	{LX+^E`2KMRȲl:݌'zΘ.vb9;atovlJN'xo'rPT+HfO<GmZθmӹ ܥM[s&N*閠=]YO=9vE.h9z7նNr~a̱Pȟb,X"OwZ"Oj'E87=]ϴڎw12b &f
R7[Qo[D;(E.@xhz9~`'S|iH/e;VuQS̖p'2u*TWa_Q[ E-3Hꉴn_XhWVR\_HqӮJ  `8nx<_\)B%gsyk(L;u//
x7'NP"T0
jEqG1HDBiUeZl1[jOr+1;)G<4<DQM#O[tvK2j^Vwz=LO"(SqdAN	[j
mV¬1&83|U+OWt	̀pAưRx6dWL(\_+nV<bwyDbV(%,KQLKBuCߠc){GgI!]c1i-AM"Pp9ߋF䍆m8?k&Z9!E%|?i()<;	*661FmY)n4,A3rY3Bw/Ch"3Q@~<SuFn'nc&&Tbt.EEu%~L7cQ4jx'-t,b;F>$^hYA>hHxMh>ԻyFw`Jaqf&tb@1<i.)I#A&q$XQ~w<5QH_dQc-E~;E%Is莋1Yԇ(5ĭ9¶Gw#,vB!Xh9!V#f*Vl)"f7cP
Tabeд\wjvWm]dz5b]]
r]P0"j`	51ooƘUXb_f[f[RX˝JP9Kfc)Ʒ[aQґ3ֶ0n5Y3{:JF<.	0]@7K=r$ݦԲ=ad;uI\-RBhn(TT+/tԬYS|IT,dtb<p2*SJ9ZVY~HIkP$Rpb)tA0,2La&fKBh"oPD=";gBoA?Z̘	j$(#Ya(jbb&KM7iipj_RJmO?^?C,ɜ%( }I2%ZZJ\",A
AIzɎ&C4m/НLzzI-,S9;[pUTj9Sѩ_X#MJ6M4I4ă]s~`f[zTKO^ƢqS{6i^RmuTC_1NNͲhI*OQ3cҔij\[KE	=QH7Fi-["t~WhdǍ9&Znz\C?lG
<?</ԯVTsSc>Hi*>P9lrBqxM:7n܌p#-XehFhFht4I*75nնMnب2Q*Թa
[Tآ6o(ٮvU]lWe*UyTc[آ7?^p~%-01̻üñvq7u6QlTg:[4آhE`+7YMVnr|-ld]    KPXYF+X!YKRX!Y+\XY+   Ss                       LP                       !H                   F o n t A w e s o m e    R e g u l a r   $ V e r s i o n   4 . 1 . 0   2 0 1 3   & F o n t A w e s o m e   R e g u l a r     BSGP                X   B`giSyR&U:474ޝmj1IPJQ֐X*iY!G̱0*-aXn$X
2RLRD׉pf"
pvU;k26IQ}-TyټIzӍE'T`D杰]	YG &E7e.%:Mt~l߫ۢU@tyX)lIFW	'&·X#ÀJG~e0sZ+<+p]e¿Ch [e}jIprn#A"	P'!A~Bmtv-,)2YQIoYA@&&ъ<c(?!B\K$D Ke4p S >PzT.#	 Ӱː[hQ؜milJbIJ@KtKe'<OY©pB:xp)Agd
P׭t6P{bŁZƭlkatVYQ2U,l'kuWՉA ֨}~m!x=&%䁧V#|;L 	[Ј"keTB}֖r|ǀO}4=bC+L dO2E¬G8%!'H60t
rO!QyEDP!O,43٢\S$%$a
;df#DwFC6bf1YF:CE/<`v^->q$ղ֫&5s409v̊!WQJnL8;qOwmӶ
1>1e?.,Ic^eD-SPߨ5Ѱ`"aUˇa>\t'|3 1HZ1Ћ84ȏ.1*ɀ1	.!@2[]!9U`ۻ`T?X# WĀvzuK95]"XuoR\B׳XXQ9lWJds@XYx+	+nۖѿ:{M?*=:zx}zp_`SG%")vfFY_u*AGޮ4\@tS._5Altoߝ{L_!8n6BsgΤ f3(Bup5{Xa떐JJmi>W(=B䉉Km tc	ϲ4_edoUNɲڊI°I~xl~]@,VҠR^4׼,+ސ_	gxWڼm2"~zu5>Do҆|Ϛ[3jcvQlDNv,pK	7\j?֣^*57Is"?YK.oH#tÇ&@FL2bGTOg^渋Cp ow X;7=<: x\;jsVہ[@*OpFP#erJROVH-!KUPd/ڻ/zG/$B.Is@yAFYɊ/V7@'it#uvEt r3N4I4j}!4}iᅒ,gQ5(B3RY!Ѳ@df+GIجx|wvVREp bfQ1^ql>|ʊgSi/g\yWSzs?WvĊ_ojJ ZK)L
Ӱhɹdtk}(WCzTI)gnªBxҼktS4X{^'	aH*3Zƾ
XެW\lʱHErP$d?Cq!^u?p|9'˙
Ihz	d1TCIh*'[*vJG?nIΥӺ'%W_s$58j`hu7j##C֤<?(%3#匍_뱰ZrKs gAN8-Ю ]D4@TgZuwCxфsk-F	BD~Nvo4:2Zê5gCnljXvcAX` =u
Yʎ]까^΁;`@aMJHa_$VAĬH'̸b" D@EXMC*?"$y>)88ֳRh	LXw%KW\hf J,~:I%x6a!	 4D^
iJ b	b[6dq ܶ_4'.<hhej$huge<fcJJ75 xHZVR7˲ݛ"ξ*k-Ag4s%}<5e`Up9+oy3^Đ!0RiW8bϒS͇1v+#v)Mb
Bc2\pқ*K3ExsǱziF\8m, *@.^fOc/ )T1(Ó%QDq25 SϕD֫z	
d昰q$V"_zdRT4LJ^$
WCOD΁AS:{UbP]	*M!➠Neh|]1P.F18nfUXn3پgun^c;f됣:e%NƁhX<_f +a-fR=i|EL1Z>Opc|g/PmftD;'bZ[Fa5K/Ǘv 0U%a,#ABH`(2CiLb y#  tAh4QŬz4A9{X#@/P=\N麀͞O>#h<7O`|ґM!2 lW pvG({fj `g-N3%+1aW! ˥#H(v$l[Uv:r=	v1*4S䆧e&clנhJI~v޵1	6-,<
-Ņ@*GeZx	M0*]Nw $B1U}\I*LxvgA=bHȎF*MjK3."d`7ߋ1Oa'%Gc_b_b(m7p˓50X.Y/eJpjDwH=)k)!,ߗhl,/Cyc"pHdQ&}pW׆ ۅg
kևdznMp9!'@NЇ*5kJ{*:9@GEPvs
!P)Z@1 (8Vuy1[ZvKgC
Ѣ@'M5#O
#ة81մxVu4u-th fruIa2Ӏ<pL-/o&X8\t
DTȹIA੄4I;Z*W! n:\B8܌rBa@gRb
s@6FNN3I>%X<eAE%A!aF!ZXvs#rFk1ґs;b
#D
X#YDAsӒŷ5c6qzaQ:lgcVڭO0HX:?H;^©IK4px}cx}^2uuFf'VML"M+x-r>)E+(X귉ڒpI#AQ)2ҡ`$D7ϧZz@|+{!6l:	_Y
*.S,D &U{/"LNQTQ핂_`Ϭ:!mXv醁ECZrǇH9qA Q>RPI+,7jW6Gۄ
REݨL-2U˄3-ˑٕMwFꈗ#+()ݐ=*K:a/b^&{ɱ~v3ފ
{1H^S	1-O8=RW,Fs$a&]%/,iMU&>sL%H]3zkCV"qSa<?6d܂rއ ԧW$ɥvfzd@iZw.hI<%֔,IF;cC<K6-آWA*A=wf35*ؖ}Y뜳J@*ƙKױSw^H&XY~&(Z-^8yaLFɋJjGÓQX#^`Iײ(p9Cr!r@zg5s P_eKn\TRt}.񂈠7r	32thlb.0W{[]*`,o"l#GO	?iD.95E{7rma^BҗyںZ{UelUaƱ5zFv8t.Th`oB+%tY :]1K~X!Hͺ$-c1Ϩ2N~M=泾$}!K 5
 +Wj,P^2|nvkF"w4lqjiY9g/0ܚQ>Mq<GpiHbT_|qmjPzudEm$/FPH.;*}I!aWa׉jA_FL4S`u1->k`4{]ľ"DCƭYV!]wB -OV8TQ^t#حInH,(GjaU>|^ 1lX`w;Sˬ؈R2KxVAoǺ^<fuv&R	PSȼ34&tρE8\**/t4-ChȴgjCk㿜˯)9Y3Q:.hH_:MF(0Kb/a!	MgߊmDAN{I+Ĺ{	Z5O茲_8LkkO'ɫ5`nG=$JD\ĨSuhtq&j rE9P袗'5@gFBt%aViǶF S*tR-0u ;v "eft m(@cNkABzW`lM=8,I\DF(Vm7	fpB@]XIA]258.|%"MxVC--UX;ƺͼN*ǘ?x7 ֏~G5T{ƴ	A)4}a_4#@@pdVX3{dQc膬a휄+(SvIx`fXs%s>݅Y.ߠzռDN-61{mb̍Ǔ&cEiW{m;эXU櫁-=m 2e8Y HjbI^+I/ApfD\0^H8‸~EDg#x4#Z+m"XaR86\1\Ё.v݋IV>E
Z|l(#l#$)*!%8W49;\jelo6J? X6Rt1w5܅Ya԰+3:#5{)F9Pf/R\\T%l]!$ƊJG;G*hٞ At9ј<a!ܠ&,S{VcB^18ZR,J>7oX01<-tG^|*jkɮ^y.Ej]q;SDK?}ʪN$\di@NȍokȧCW׍(X97߆}F~|m՝FhBCYl;a{6|tp,>v6oA#,!R d#h=a}lXvQ%_նE%HS	e@<	8h9J8\r&յ/ta~ZLBx/#mHи0EA֫BZUP=5l> Q1[@#V8P>`:G#'	霠56ЙgHe@i
:*@VbZB*jU#戌NWiJtxBEc6kЀsQM!C%6`~?qPnVpJeBt5{ai2IPB-aF8VS(d3yLґ=nF/hj
Z(Wj|3:mI/5MCzE0!9tAE<NT}Uݗǘ~Krmg٘d&Eٹdlj8es )֖kNcy+Xؗ4_bro \]eaZ`)}|YC@9<V
>(,AE8͌-tȬG9q$xRS衕˼X;MDyaL%CY{C:o`E^2wDyJMEP[1v]H	jlXO5@ֈ	#Gjھi؞s G	PQPRl6' wEh `,/bSt3Aoi8-+|`^ݘ&W-xW-mgMI{RIYMP2Y\(Lv=~xҲe G v(tlL)nF_eXCS`Y`~݊|0s˷ɥ"\,$-h033Sރ+ں܉tJ|n
]9Gp8Ď܌//̥&;*iD{f"cݫQ{V2
Wqh13*Qn>]d{UhMu_Ƣ4vbg)P;KDx71lO=I#<7	q3,YPiuIoz \΃1n$d5Y8H!򸴽r*/_Ȅ}LJv8''jKT2fozWZW#]!X3b*-d+$E%3;R(:wwǈIoxt36 Ě/X>"2!J}dC&FO*odMQ%w&%nA`lDqjȳc2cWfV+*˙(dB=L'-9JyX֩\;AoheX"?u([frn? a\iojem<Oo5BɕO'5:ds
9؜C̶sV[Y]bKB#:ۢ,$z&i}'kWD%HkcNbJ-^e@
|0
hMwvxѝAPѤ䐉>Y滘eeɑv0(Nh%}$]-׻%3Rf|smI!Kl@B+[[	ީ?,锤:\(
e~s!$xPG.2HY8b\HKQH5s|Jr^<%4
5Q-}b>`G̀R:=X_3h{Ѓ2wb=gR<,4+E:$o~YRǃ\dlVշߜ}yuy%ܤПvVGֹ10 25d6WgT#ZOp; ՁNj(_~''x	=Wcbɼ{^Lb͝U=թUZaw
ðcP蒮I|B$H;pT6)ˬaL7C_japZ1p_T$Y#[ՃRP++PGbE@H\"cWUTR[41E*Hfjm:H$xZ"5<N~Z_Ǘ뇐}c>/"VLh95OXJoӇY?]bs hR+dSQ[ M{',3sG$mwhǂiexu+H~ſ)M0XX9^0e/"հǍqgHB!0@+Lϸ;[R3-'K9h 抍z,g9֐tŬ\
"F
@9#^UUZ3^5E
:o{ócS/2h+<Bo4V+m=qi1BzcKO/yY11Ї!0:TэצOkcZ eBX4>EXTIi|.%zR
#1}H*=Tjtk'#Pf@;cTNi6wq#D;®FP Y\r:0r&DSH<ظmwr]hM8m vD?s~Be@,jgA@wmm:1GɑI<=c.!̓;PisqMpqDmP8HTFFCI?_btf̿[A pK@ ܔײr䯒|:USaC!%X-IHKzOhSNfg<:s3kWJC̍ߦ^
?,SmiҖB-q	5N(+D-gc]I'LA!BXAh:>>czj!T0_$jx"
k|=t3m(JpFX,3Z B;:_`ٌ'ԏMNҽW#ZAx\hyc,Q#uځyJ5gZcq-yݞJv.aZ/sƵ<v{M!ȍao*/`H4O,׃ާ$CcK!|(r6|!?|)^rOJ3vl)F]GVqkp\pjZ0ŒR!bFCQOGm~6sGs1b0ˆti]o@32.Cpr`5L	2Yߜa*\^G85{$دʸ1&Щ1V'|B_uyO+nL(K}m)
Pgzz3buNR5 Vb6LXӼЁV/| Ɂp&M.bࡉh B/(P!<gs&42 711%,l2+iN$̊̚O3sylv*1`Mxb=gaq+5zP8x01~^z^/!lP9D`|~ <Rs^/ϝƞro);^|R<|:wtbijB?!a 9ʸ4A-K8_T'>ajdd$)B/myB7lG5Rz 	)%R<2iC(J ABczǏ!
L9i#/?N%\7l@īML7#NΔwڙQN~5F`
R&p,E"f#KUm8oO!٩eVfn
b˰Iٽ].P}HL,LÁ1h V,'HTE5D00])#h[LDIAowƤI8l$eġgA@"?ux@!@Z+ĸ{$G#Y&K\^Uu9+ݬ4)a9q!`!>huˤ E#,$!&(DGct3XHBܚ)	>eؠ	mAz+{lGnf"zԭC]	oG6Jz\iP[-p2t٢9|| y]`]k}wn6tu8w#_C,IVE=@Dv%sc]\ 'YͭzUYi_T޷hߨ+n\K@މyWެ9`)mXoy
>0ojlMX=S4wZD{؆f"B;O)G"]5cEsf aUh!Rc{fjƔ	|EaTMZd)=jɄxfRF-dA<	oצGZ	+Plz:8L1b0XV;LY.Bf?.cqyC2DVR;v.ޔY^=l8ݢ~朑dhFd(ұ]IkҐyjJiG6N{$uSt#OW@Wzm(7M"Ldlh<<'؎y@sx17Sߩ<$% zOQX23pjrIM"P`:-%$	M%;vEJMl3QVgRWρHxwOGY_"7aȨ:8߷D=bj="pj~;hf}@:ep&ifg&y g;8,]@sb*+ٓ^|#4?AHiU^-q-ET!HmTms|'э&lGB4b`\  Z~R5m$u)[	+Ԉs(-:s"&	񰏈yr2ԋ7H0$x5tBͅHMϥ{q<9WhH[{D5^4TZEQavU"b=Z=dq<pds6/˜"QCb"0;>Gfh{bOXdY-Nk耪_ݯ<+Tٽ]dajṰzlI~4GGz%R[Le$ɀpƶ<T7 IjnHHShv19oDҝ*z2m#6y4"Y6hf?h V	'%s$xFus0-4wcQ9pQ(KqN/x7VQ
[~V
xV(@vuRA+qdJJx`q@>I_0Lqe/HhrjAo8/А$[<]{cw7ρӯ@\笶?/%&rbȏz)&Wh)'n}	W7]-AјpPJF+Q
/ڌ%HURY@"Tf/̂x9b-nP\y/t4Q6|D8]9!ȃF TJ/)6S!RlLU,){<eJl9܍H,u9yj`<t	ӄ"+yDo0>tN2e5,4L UT4ћAeVnWY+x#sl`*I!gsnl*|C9!`،PTG*EQ_|hl +$ۿ$crb"\o.ۏ8̈́|]1	Sxk";a'2B!{H8P2G(vv;R>DzEbk^(2LsI
$%1Tn#/Q.Nr.T|4X"O%z37@adw֥NZќ"9oÐSnuQ	ȕ*>i.k-AZCkVR7\1nD
nIMsdAW=UWH5HǨ Ifl};? y'&AQSqq4z
PlآU>(=G
H-:SS9QpC/2
,+5d͆{YZ#3`p4I\`L0-ъ
<$cTO X!P!Đ᱉<}q"-{0#Sf&FЌp2 չT<m7-Zg.'Jʬ&ZCF D11>!sw7yV*LrKy8+; h3ؚb,FZgm3]$9)5nOOCsm˘ ӧ#EWY^wN12a%dQ^5U|Psz+b79^˒ՏD)d "*Ź:/E!0)iW9vŢ+	Ǧ\6'Ʉ>5^!g_҃-%7fBG3{Y=|@qrFq|^dŷQ4OKA{̋J,DsbN=«o޼x9 U+oC썜 uN(+<gXe9P)$/y:/3NݼϠ(-"r7fԲc;FQNBNW2FX8Sh5k4H7=fT;d1sAD5RnM)_riHLt6 ɄTRœ*%/`)@˳Uw"QBo00Kt@E)yQo#4@v|W- ̈́2O,Ŕ{G(ƳmI	g`LIJFՠMΒ6E:=\<7x2(8ZqM3S
X'r fgXF	l7]9+)'1)P
ag*,ɯTo;"4W訖c+>:TUneĘr:@c~`HL?%W0RE0`qpn$f#Vck<PCdI	+J6$j[n*+TnƈUvIMzm )]ӍTR\Tg%u᜕%vS9XV]!Y#@iR $|"Ѣ<@>6#x@)@,ub
7pdjt]PRDFzD(/dNF,W%$99 ν(!$yO#ho.[BləyjMBwі'%]/ڪ
x㟐oi灻:A@YRTwذ^,جWVy|"VQrglwRPnXKs9lwTǳ8x]M_14j	8(:1>Ҳ|@8CM->/!A0L\Co4U[$"B?r[斋Cez`(fcQH	JLdj;cIfSW(so8Iv&:^f^h+hp%FF2ɼɐ(^F
,̇X!u,.A?eSxwCN}hιODǃ'W<āc<Z5hRiftC$6~t U<{~f7lA鿴[Sb?u&B I({y9ѷOZ@4*kNmpu&|W>wG9Yd) rp||σa96bsr&gL=vy"h4t'LL	<ml㌺ $}8Ow-\U=p}af11uCi oG0!*RL?"$0V4͋T1~F(tĠ0WOK	2F噚tuӢX<vN\14VO8q^KwEҦSrzfA6[b[	=z8ԁ2 0"Ĳ\`j)cj#	^@g7%-"!Ri>Z-DH#27a?Pr)cCJLECPH<zQBCaDX|HKT3C >66MB ݶ /	0S!"Ĵ7Fr0p5)P&N8?u@`]&FC'_b [PgƑ/KJ%\7^51b+d뜯 B̩xTIb,Z8!Kak'͹[T{䔋ɤ!\^#*O$MTM|hh\QV	ċyzijp4q"KxKI%X%hx=].$cxt0>3G	@!#<4OF帑ag5b,\p]S/Q@&U)0s~Ej/Nr[FZ5}-6y5Ҧ4ۓqK82a9a.Uʚ )6$P0NE44fU`ƾjKCAJ"qWq.ջ!;4\&kPQl8b2ܢ^q:(fI0_ϛy[
D! H@M@@l\ܚبXܹ5?u{.~jޣ`8 uxkl͉J-鐈"1|_Lpߐ㆒ȽA̞!{b/	!EhT5M#CeaƫUuӬaL\X0]=^KdZi<Y!Lޯm/.s\
B
1E/!:Dxp{!wEl5Uf	CX^L!4?zE׭|]\09tǅVg*`aRD
!}/Pv![Q`=# 0@Ez;B.004?cYh<2 NjfEӳ2q $
Hg@7<dCcI??:#qW!J@dy5(u2b
iQw{r" (|qjgO=αc\0cV-ԌpJBh[W6-Jer=EW~>ey,_DlD+#'#"DK| tPHbԝNUUЦqk|B%JP;'ըiQ=1띰qlUZʌB(yIXke#qǓlx_tZ-NH͎_]^tW̼;t#gCgmu It2h-T*sb@4q%١A7]<K$C\@BoX9ZKo&RMTPs+bȳwv)zdpګ	<#G#_&
Oq݂4֏0n@DCfv/PY*`>vx?"T0k=&	 O>E	,i9	LlY  'k~Fufu]z?򝃉X}/rΔ*.Gp6!Z3L	eǀeXLM糉_Y,dK5ۀ="y,H@X1 aRI&!%46;@(Ġ$,(ƣ8>L`Y0w"T}%Ikvo@tJ!-}U\D&3
*L8[s8yr P\ÚAel|=xrwn=W%`0v;C.!vpaő@GyLS6"PO|b'!uyRTO["%O`rRX ^hh2l5Px3E~JmִqJ"YWbCB@$U;}UC݃hci(C6f#m}ހ`U+t̷\c00(ir4%TtXy{Jn2f	QR^! '<+}@z	xBJ;4ej(5٫ wߠt@ﬥ;|A4Zk8b48	"X?" Wr-9|ቊ(0!Å"oo=.)j 30$qpwP1D,deή,NCyqO	LsV	K{p,I/KGRx3A R,IͤҤ鞦Qs.B(6FNVJ
]	nJEv!Pv0/>&;Q%PFLº`j.{W$:°,Hvk8,;-;wuhTdt\%~57(db-¯ۤue?SEY=lg~fpL몤S9ox,B_k@J#фA.k0DDVᇔ0Xx}
q җh9(d|"=rgo%'X?4YGK@LۇʏG`g)ONS x-;d
6Ɍe}4!og\qp8ofuD9(00Wx}9yA6j$:L_0M?.xΡCw&%=>XrԲ	L_ۨhs*9dݪu^!kgǲ,&ߏ olIUTT3+-{z8oW6QWbrw	z8ry!W rGpIC!	l6B.|gĆ!Hn?zvFe5(ݗ9uzE[R&mb:،Ls)ʢ;q49^#AwUAcYʯ=M{N$t3EEp`Өe}nIE%j=˷m<> 4uV!l#05C:NA?ٛtNpvAKj;6δKS?9!H ,7VcϤ8_
\E	Hen5@V2-wy}c2\ ,$ܼ*1,h7i#C6׉a	]q1|Scyx_H`:l*@ZSԚcq,-SXm.F,$*+F#"ֺHajF G сb%:J<.Iapc+PA5]tSKUQ	Fϝ#~~ E?!lO/?^z}J@gAs4Bjşt`M Q(Q/C$K$ZɥE$.ye7sܜDV#RfhW9' ' 9\6'ψFY5QGvx	-4b.Avg?=σ#_P{84Ka@ؙWM5'Vքyyƶ-a݀W9K+t8.X|U]y"))<.3(^җWqP*c)_wČr "ܨRNDHdə?".tQC>gωiYQyP¹/G(6`-00	AcL|"J% 9,FCM?cL;g?"ޑ+D*e@⍒[JƩU(5TUUDώʨЀ;{#.3$
SoY2a翚)3w8m;Jdw7ǧtԨm]ye!Z84R)Uz~3GCm	$uduV++Ap66NV&BͺW(dNӬGːiI`c?حz-I|,Y<T$rTXg !\*t*A6.m17Pv	 M+S
ZԁI$.Jػg|0h	w/6ou,fmtvv*ko7&`M\7$%	?U:C34?+2Y,bw)IVqzg}Cl@kP %Ɋ;[u$E{Ȝr,| h-sh,{Є/BtApexi/@<x98!% =%YXZfֺ>? b?=[|i#̙W
:Cg?LzN7c֗[$&Ow L^LDbvG]ޔT1`áfM>f-ҎGW }Lx8	 b/yi?Nks! ij:.{bSSɠ
1eW?F LyfN(Ա+c%yq\3rd<?wZA }g@AhF͜û"!<\&b66YbJ#"󲸦 ?Je1LGv@?Ƣ48#IBJ}a`,)fW"Փq$HzP!r1O}`,l]bj1UZ~F[f;:ة_z-Y܌VDtJ1WؒSrU58  'Hp({bM%SA-$4N)_Gd1@Ky`'ޫ7<o2'di0P oŌ mA|0mx߄M >>`.itHsAώ1%ri-2δaV`IzQ<8J~e5f
%9IM5Ù+MsNDhtud'0%0NW|QWVi
Sg0hThѼ QIK$!a{#ɡIZ2l	4Äo-k+aچC'+ά 8Vc	;xXiJ!NaN[d?-+Ƙ?A<isE#"|rS}.gH:h+slp*?.*|O]Η"E=--6\`@lD}ǚ*-tK+2OW5SuKr_ȴMhMDUø8&7Fo P/|>D;]~ A*/'yNJ۽V(z@O~Q!I4clP?u4-2t[8$6P0F2D`ŝk{2ENh
:sM@vNj7A~FIepZƋG?J9ad;Pd('HEӆȺj<X*GFցيrʵ/TNI*udVO֟lJ@ÒxD@ia0O'"/\TUU^ga5Z%:Pfͪ"tȖQ{_
L
	N+Āc4fq*K̜x)	 d/a$X [{7Zm瀒|un !gp'.@AE.e6P'x`i#6oDf,6Ć _@b$NC25߆~RQ${|_t.!C+$Z#|j؋D<2e22-'˅"sw>" ?d9@,/A	Cj&ir3hM<r =kNNb3X>,PBPyiQđ/u'{jf A@P#4
4/ |G9РDOk4n*G%1:({TI92\O#9@ yxEMzYGEC_>ŐPn k%(ܘ g-)SP'aIL/
[r5X((6͉d,T8]mf	w)L⥅l$341jŒɒg!e:D:R>`@*#m>b~R	⛷ӸO۽]p% [+~BgZVGH>W Cut2}{6hܶ偯vKdbh*ZR߁{@ޔpczb`he\wcÍiVl|6S'b֝h+㚔ǀ3$dG:F#ݖvO`fmGR<$T
3n݅ ܏0p A~RO
>a 6_%B~,Yz= )E	D""tX=ggq!rQ1e3H?{XuFDt.MQqHCXMqG3:qCq͎)
{UHxKN\X5eNs+D@	xH6ė`rE>NawhBI9L":^SmƎ+n/¦o!X=TȨJ.*:VL]	%2E^lO~ᙿ%D+ha@;w&nҙ
]UzET#yM&*.]&(gI	Ў1ɏB:nC"!h6j4e5a`GF<qL2Oo,0QAp'nb
-CH X||{Oq5NiymTl"[ūhDsWIڈ)좹647WC*%5$ T#tdwBڳ]xD_sxd 65H(LlT&e~5=4j<BbD1R
5/$<GR+tnrQB^Zy-_CKa{o a\͵ 7wCR {USW\Fz9m٬"equPG|j$0HSƛ"DLVH|ī-07> 8UxnDr?0a0&]$VH:'a9wك@Q>6vrj[ׇ63ZPͩX)d,c}b!EvkVHP ݬJPGY$tȆc]cSd%JDB<EC.% ,&'?&+V"%Nl쳴bKpIL0*-D}(h3,\ZB 0,rE-+.F	RQHZKaTVg_5J%ٕhj
l!qR4yvF;bq2UЀ/5mx~WL5<MT
4
|DHM	7VE$ZRk1[>v's#F',詩?!Ѹ n&5@C%1  JT=%u^@ l~l;V&ELMF2L%͂=MY2nNxT\j[Jg,&>P4xر>My\lGk|bd&FNivmWxUsaj"xxLζpSLQ6$L+rbكU5]`0|DV!@t]H޴	'`qq3t~zvޥK1M~ȇ%P	^e87F"wwxs[tXBmS[ϺoleЮ!MnB?]k tBS8)46hKjYA=-AEqӄd࣭0X`ҒM@ʾKӁQLNFևNbA.Ri>-eځ
L^nzdۊ %).!z=ӳ!2E!cE 1d5Xya QܲdU{q>@" c0vYL̈^sV| R[G ?WVsf'_b^CFXA3 8D_ݺE -.OmqaR6/a@*R"غi](i${r>ve;_ҌvGz|NG]?dg.˪VpIҽ]`ctXb{_$|+V>*<h(qD_F*E5M|qacxxwTb?M }ЀA1q' /wbzj@GFS<uδ7VO)60/!	U<škS+WQ4Q^&%
$YXh 0fTb9Hɧ1U+Y_K$DZɩT^
l0O"̬ SIpVŲ)X Ck="d 3+d»
seQa4"IF1x\&<L0{߶9RLoH͏!8M0ӈ:'<ѢlNSf~ VUiAহٯt@(S˸{Xn%KmEDa[hq$@`?^ e\)_r=U>G$Y>]._mվ:
fY3k0nER-qoDK@EPRP#DA)I.)fӯ I+M0,"~9ԅ.$	y-9r2/-RtsNǟ~itfx	NL8Q<z%K'wl!ťȔ5 9?AFO-rccS/Pj^4rh6^??Lg*~0z$&ćm6~ur̰ 7A+0%3W.L=mFp_9 wC9axE@1T96	 Zҭ\FKJePȮPT~s4Ц/j~Rgt##-GJAXF󉯴(~: U>:lg9Q2&.kju~-@i:UIܹ)E$	A!eCFfa
ӌ
.t'2b7?XNP
M_Ua3ǉ_qBUHƒQ W$aw	G}p`wp |WT*C۸o]"-VIA5{E釉I zl=|ɵxP<i mcsDH2'HN(&Hr9m(+K%Cߤ2A"B,bCċ`ztΑIu8n<<$0iJ_v	&$c}t	-g%;˵L*596P$@ Br!h>z
(UB% *{:m	$Z:u?|z)<@p[kl'[ۮn	nżP7	G&ems#,?)i6U!JޘpJCvH D~ = q khG8*IQͫpGRƙp}%1߼c}~Ey3<kk\X47 IRvD{,!HxYX;
ww>1tG`~Aj=lU{S\% ae,ǯWYCNqk"Rܳ\rIOS`k4+<Ac ӲCX_eۮ7 8;5+uCS;! AUU%TպRL:Ll <t܊2R劽 Ȑ!B	4{>z,ѰYO@0@kZ\19Kh	>R]rZp!=usJ94q͜>RpF_ht	 ͳ 1Vg 4Ҍ&eF`E2]vPիo-&^Qժ!
DY@@MTvEH\Y)jny"`U	ԥiQh5ݴX«t}'GhGcwhҫ%EjusV@gP #PR1r`՚y>IE!m"(ZQhK:BR5F(
=H=ty0yPaxƕxv(^qŃ;m0ÁS]s@`/_P|;;.v4Mq(7y7x归iW[wS4
uZ`ŭDpWOtil~XMn#BqƄGF	+3ĨNDd>cєo7Rq1.ʥ鄄0ňKI @?f	a-N_o1/YƢ6]a|Ecz\v#~"2`?3c_9U@N`A죄bBmr*vOTw ;bq E#$jCA01f^f7.j% +lDf$X߀Qw jLS]yN(jIG	!f-x-x;#`kapBjfLؠ.7&j+ͤ\Ж=Ywlʪ1'0on	ݿh8	AC+B'QqqV=~pYmew3
%pf7$-fيo+Qr_{C.-1\l	ШO|k9w`\E!U]x@v:Ϗ7I'㛄 pH`le986)jsaT~&V)\m0L`l*5L秉cj$MVL?G@03eb[g9MgmO}hrus! 7wm(:Ʌj&:3[͢`kf-Ac^B//\z1Nl+ػ3=`Kz?z8`io,nWb8P2[@G2סGȉ/=,L:zS("-`Q@5EGICP\"aLF2@\F( 2Uƀzrݣ#6T`GP_6fo,S/g'9<:^[1|JA:Wx]?st]F\<n݄]DEj^stY3+݂N"ImV+(/ ~t2h*$<J*O4<6tӍx:t9d(1RM:5T5X*0Lè![gaȶR&V p˴#$  r,	/	bJ0><U7iP5 $Q1JFݍ/BJ u)pܜo-35ٽ0bR`-:/(_x $$ƶnKt̅cDD .oFhB n "r)POcx5"b@$Ʋ7j+*2yj!mRn<A$LFLU<lඥ~gvN|Y5^0V5`8nJ9F&#vPl;&YMA#*K!.$`j1;v˲D8E	FlAdFzjб^>C==bu
"f=mN^ Hlm =c"7R)KL{5BO9Lv\1^45I/$z	sZBk[EHQe4UkٞY}<SrS܅O^IsX
C->(4'l!X1FOP\Qafkf
NOyhu;;|U5 -hZrjڟ-*8QHg}D(FEc"ֿ7ׄCp9@ps^-?kɤR9wMNMmVC=g.b65 T||q0n6sѮ ё T᪎nI4Ht%$P}-0%3L`ߍ#_6	ԏxm rXTlRdFjr KϺ.Thӆk"68+y0/%9Uo*W23Gf):LqӘ.{#4^d\4(&}[cE<7%n!cFo
B+{0rRlStCciN5D1$bS:'/v?PyMQD-+]+l*>JSJ_%3ri2d0mA?@}J;pL 0LHݨ0Aʠv+h.rk&Hd/:l
sh8ϣI_A|{( Ex4(Tv*-!4=e^1?<9(8ʅxia	Y\I6VNV^|ZP@Ī<;;?L?QIf(5ٞ(oj%x7@{J3ɺjp>IFd	ǿrn Q6ʊ'C	YlYMi{T*V\䈊.t*M`*!&>9_Tl91X0!69^;:d8<mDI,+&VL$тgsAgpsg.X =N#|.M	y*g%3_M)ɘBvQi0f0!qjFC)/إ.b2&A@km 1xw3$Hٗ/2S6d9=v֒SN#g,IU;$	570xN Yr.&/`d/j
>fy{ Epxwzj%82!4K5<kx76rCetмB?RteJ[M8cr KsE邔$.yob{o	sV dBvčjIpiY!ϛbTC
ZNC5|xei 	jƮ5ĺ9&T ̈́B0lɴjq@.fD1OgC(`72WpGF253B1dMniŅe"S#5Kf{ѝ"=Y RP*:j$Z!j<yp&m	̨Y bķ@X
*UƢDzNxR*Mp&:P3Hu &t?(.ͤ2&A <LXM[h92Cjp9րrg^Q%c˔^^4#jgrB A7$lx>y4-܀ԅr!6@+"pdÝCh O4!n^X* RJs1аH<ePVl~xC$$H i,|1G#0* 3x?ȅmݳj:=ᅋUצ.LЇ's_h5uǗ*xK	T+Lv
E#~jv/aXGq6p8e9!Vs;#11X9,3+bFKYgj
b9*&i$A_*\aZnA@µ'S=SpK Sdȶpp1UvS)p"2pXgU1@c6QwQK2Ycxťo7,ϻv#}V~'8cd],~x>'2a4­=Ak=GK_(tB
	#eR# )F+T"}(S#	xcO=LLH.-/R{ FYW_;
ށ D8t(FDl !h/ #םH/#B
HaH$lw%wI~Rn9͗hhVr(('4Q%uS@pnwCLy,-k_( nۤkѳ=&8Jpyk mʋK	P|zS};%aF!8[id2|-D,@vL`gu] d @b
G6`tH,^@)
]bDP,Y	JyuT& 	Lvw%igXbbOm`I" RC"CvT+aQWI,
ۀq9Du K]D F ծ2,&1x(̀OX+8pWox `30e=3,@C( 4 vS#A(AcPÈ}02J'\	@ĺX\7¹嶩Pg>5ڑh_r'PyE".b$vq\NSfB;*kr9)l0
	Pfu+c[ހitᡭMy-SLNV|g^[JMj)"xB^S0pL*n/>xж׏h٘`-~kx7ugL-"\V1.?/&
seŴ (8)߶`/zr{0>NkqDB?J]F(!ơw`r0 n6ړ-Dёk87$7ip.Cp$8X1301)1)doyÌ:>'r#]ႂq0f \t@%1a .i]f1v ٥o,m)
CA@@a'ZnȠ{d,Дm,=;{9@1l
aYa޷#o-J8">/5zVM^_[>#Ë[ÊS.Y^9=IxMҁt<> Q{,PW,:8Yx	<݇z0'{	bU9UR;XPps	S26l oJ iD@F`̾ْ\>xR Dhb6a8tB]}Ka@B
eGLwYMtv;ܗsq"Y¼
Z`k?]4Hbkye
mX#Foď]NIqkl̝,p6-7S"`+G<
E*5vۤ.1wzY)
oBYWSMyԸ^({3= $p dNmSZ8 %[H)꫿0]eb@JdFĀY 8f>)#L_NP5F"*qk&wU4K`ŦxfWe&'F$G/̢	$'^^jfU'Ʀ dܬڨI 4"'4lORLG v	˒mR>^9^&ϕҖ-4dZqA%f(N+PC~{/q?,gQJy/:}##[::\
H| 햱.g
on&"qβ-5h#?Ky/6ۖ	体RdUAI"'O$ b  Jc\X-V.50x"r>m *ޔPF?Wňx< JB9"~'%NvݼH"sD%		j^՗-=%d1tʆ=YZ +*!~eĔ2%uxE	L(',.(@knePŠ0ԟM(At=2_Lhl	/RRgiV1Ϊpg.EPg1O֤mOyX}(Ŗ@ x//DdQ	pP4o6
,*NRZ9BhuQz(;(iS	|pZ{Ѧ8vX(Kf{R]SBi|LvrBd,lOQ!b'/:B,hq#0D!%?2DZe=9:{m,J,)bal	'~)EŧT
3ncSUS{&;#IF1CeqpeNqL||G M	pF	3'8`QhxG*<@r8?Z@? d+@8hNV{.@	#Ю8nP֥Md.H(;,H;ٵ)FfzIauC%NҌ >$EP`@3]׋/@"ZPb`I,ٽ5@~¡xO,38;ȻQ<*Onp}/ #yqhٝ^Sꨣα-U&7urTS(AQ3J4s<TaEW^TAhĔ:I;#mdVQ/3Ȼ=\YDXf)M1hvA~m	DG>)qɾ$F1Jt`Pp(4cxWBG:,p. a;#
3mVRLGr` R
@ĔNV8DK/ .Ԩ)
#⪿r>~*`8ZCzJ=J!xϺCP"o6]mWiUzVy9՟ڷ&CrX٦Vz6iڙg5	AzvF"ޏ!OI-΀¾NaQd
l}wkǧ˃At3_} [ӘU/Xq<RU3V2FvcX4xQ?ځݐX&~[D%R5}G^ k>F$PB&Ap~=n킅5Px^JMQLėB+T"0.GvEx삒9-Dx˼`ݸgQLWG8nd=k1'n hE\xmU Uʹ, J"I[gI =f{E6戯>ߒ],U2Ȟ 3r4!bQ[^KבM5GŹd&.^wjFO/F67\=jپ~nm*d۠?aGlBwm	\!qÛ"0joɺ2X=,ik/K %sDD5#\3)W%Yማ5s"89§F*P
5IT)M=̲kc
4vP|Wxx)$iC	u/|CH#CH*KL6%Ѝ4	]\;) wmX_CLm 5o'u.ςe9%\
@B,icZl?*0SK)斦;zrh<Sk-/1~nc{{*#v}uFVк,ilN}=y\,(h2a0YU1SXMp
|9Q."C>- fϞ~X:P6IAZ((	L 'F&qi$`q4T2t!$>v3''2vQ+3r/U8.!a@3l,=Cpf$`.ff
H@V FKeZ2,On 1X/
Qoa/Kؗ&"A)SFJX|Ķ{1f*-dmv~UYۡᅼE.D4@8yJFzrsgCj^|pģ7,(mnM9iR1?Z嬅 7Y+AKEy{%N1>·_x~2!d<Qk#)O0Ho7҅jwO>CQ3T=U=5RL3&[H-BNywFŜj/)C)xUfvRD@(a4hl̫H'6My*+R[GdB2nLw+,2f(=S's4^E~5b	ǧ1i>,;Zծa:UIc٬>\^ b`BVתBNh{g1EQ\/cΩ(8ͳEާL#zOYe)!\xQATJԾm(T&[C43c߶\cF{v̓,Gxn}]xz{Η%7:@n~:ltxPz}(|Қ)ˑxhi$P"CPA^Ƶ?S

;ʏ5$Ċc>+W!ȎvapYF;Izaʃ>0:*sĄ}R`{rIpies!&֡Q19qQ$AD?dPrv"b{pI[+kR&2r";"tluy{fQ=` p+?eV5YhS*UHVac)źSIWQ牢f{&RzGSf;[K딬祺b~	*,-|>KpD*F,A+:K41eZ
ȳʃC/謫mbv}+lmPi	\NK2	UM8ܹQ;uZVyb[	[	xj}~W(UZqȷ#HjP4~א,$B-e72)>0'vzlE'Q0w܈ay1dP@R5ϜΆQ B3tiS/7e)+X{c)Lj
|4ۦz`[WIh(9Wo?Sq
P,<2#}R!lXH3v'$F2lGtjCNяטщI``!@/z3ڭ i|`36#P9*aGcؙ!$@Xj!ޏ9QXGgk2Ii6ˀm)҃HhSaPd˄LB- 368!k5D!DCE0^/E9`	2t&#j.è;",6َ$<@iS{FdL 5=o|NdgRПIH$oUȘ8V+f1 L"p
|0!(.eP1RvoNaUno),&ixT<,eHKpCpnxR~ '&|(AVM9s@XO,Pe$:/zxPдӐͱ~&hSwG:-k;+$tkSa]D:c!Čd >NwE<ep"x}CM:-m kඇYRB4Xx﯁{f!>!B-C
X~
K#vA㰬exmK,pLpiAL,CJ?IڝmiBt ;~{j&ƒaJU"Z/	)1⸳qQ)'rn
a~#-lH:8oʈ!Ca{4LDmwV>rl}Q Ct-??dnh⚯ (/~X|,Bp\"m$ԵG">$3_}y'zUNty085J#Դ!S9ۼ@:x%ct-1-DeB#>kL>FdN,x	ޟ~4>6X( Q`E|#{7ˢI..$`hS$_`5X 9!vP%sc,Y+}(|N5>.tFL22I"=d,J Ԉ=Ugp" R U|t]GН;Mp871V_A:OOj'7UYr:T+<+> k9Ǧ	0*}z+(	{xTwNh-3Q   N Hlqn@΀XuHp'VaQi:0p&w%&	}|
b)F+~^̍#> ;'l#D?Swɐ7mS$@ָXwÇ3cv[7&E;nDRVԞboU2୰H̠hbT(=&K\#:1HϷ-.%RS9
[z޾]qu>VS=!xa-{2P=Ral}Q{x|Ȩ?dH-VQ``P]l_r0x@oco?zBRg`2CG"xPb\dMbsպ%oQK85d[0*:Lî	n2P7x2ٔL˅~-[wӊ-6S,PPnMcA # L^1qFͩpO սٙ0&.]˝MiJ#UEp}ߛc!-|i>GQ/TЀG*7/R'3v	NYpz`cD{rBejMƚh_5R^
M"ْ-ǩP` O$G:
1&e(ic? ?G%ؚۣvF旟3__O!Q_SEOWX,'TOpEXYL{_GWcI AcYVGK (+6^C1߅dG@F1-pHH-ES/Q[xOֹʐ4ae@+a*/d~1sR/v=VVC*Qj^Oʫ64d#:XE` E,ֽ5Zps<`8؄jCKrv2ᥑ0OM)WΣ3"
mavH.* @`Ke0.?QMԨ6i# h*+2~ YKDx@sb$>\HB.A%й#(F@A.ȷR-uΐ轙9ΡǊ J!(=W@5L5ݓ)ZF"4
EX.cJE:H&G?[SJ2ոQV3e}vF1O+arg*`TDI2 	檷Lh|؋u40ԐqfH,Tn"IX~eSaA}D"XG_jnÄbl-T޻fs(J0&x񬍥!1Qid/']JKFp֬~g;.	Iotб8\4!jA1"WlIep6삉tBzQJ3HP+QnRU^74<CRp|+VWq8c/e>/M\5t鳨XR`Uv6iP#P!sG.L֨AԩpDXMʢ0<`܅	*j:bцZ^J!cka=Ш8rI8bޓ iG	IoJF@c_L1&ÁS}]jgr)زJv#
@ς&`iɴ{Hp1냹n7xKB]1X/c?Ȫ	gM:?AJ.Vգ%ouJj~gF虀g kӞQ^,hxhLfN'GNIq.vU5ԭ Ү!EiVӸP,c
g.t?sWbJ(S2M 5	ZiKX?=CfU9CŰe4`_iV Do0L_G>Fj߰@:M.ŘM.4qdI%N.	jbQ8aUx0`a5]〶 t		:ߑϢk)B'w+	a q!8Dɱ3icL6z*.&ftn ֓`*¥G`<yasqV)XTJ6@>Ӱ(Eeqr|M(ٛ	t	;%\լ\vrL4방sNUwIOX<5;zU-hI)2 7 9l%:mD<Q5peH$B_#v
kʛB{P&!.ʞcA<pjУ^*ǚ8v05Xza&@/ҹID+#>~bhi8Y&{p4f$YL<I<,mFJl/@jYH@U/f@O!Hexb^H
gɽSB ƴ@	ݸlS	йIysਈ}W<`
3@H؆JV7-JӊgՑ}pUS9D>iFw%M嘴9q/
ZR<!ӨGU]Yk|{WJ@hM,CnލՓ!:gx2!c7aJa mvqqC
tBLK(8aE7},r3m-}\ϑL-ߝ
K#]A.-턱]Q\j;MF(:>||U,Ln"RUɉ=gބ8=%@LtPRQ+La1o~HB!B$"Ld=x	9U;ɅִӬÅFݻrK?Y,R-CNEO{[!UH:&QV&DQ$<q\[cԽD~?b SCIXƤkW&*!$,>aRU_6ٿU*p/3oVtpLE.Û'3E3Օ`XGm$hrnњ4_ ٬Y3TW҈dJ	w<i2x(dZkZ-@vC$
p{k>cPI3R&V:ndУ86V#(f8XҒW~%bnlF?\Jwb	@T0DM¢}X`6 (GexBHA<5NN@PUt7)k
<{S1!MXXbW.-ԄH2$IUGǋaUUCخv|r)R6V
2#u+opH֬];H/&לQHJa5MnnE3φ ,Mb  CB!)?ÑimP{q>pIЬ:K^|-TJM^k+#Ą1o:ᔳf,$QAjRJ8:d!jd[O;8&0qzx͈ԝ=U$"Zk&YNw-mO铚	KӜt`x6I%et9PkW=	^!Ed:->E:ղ*x3zN{%	
Is_9ul<x8"yC ]4Enш 5~JR:9?t,GBC cH
OfO:Iնgl<ͲܥuFffCfe;]+k؜e(.HZǏA8 >DػH}Ӥժ9e-͌͘)DQqFaՉٯ#^0DMx]sqLJhC{ա|"B}>$vf5Z)[JY_aO!@)ՙ1bwt+"~GEXz#."m
ni5J~2%ˍ[%4^(5!a͈D%ޠbH|e[&aOΜh*v8Q?$/%>4b"s4q;S4Ubǲ5ܕ<xȿl,nG@0s$!RԪv7C) ~󰴲޹	Kg^.@j( mzZ昨+߮n6EG ]dD[Gtúv?!B+2"a[:чQF&E
)ś)hN)%7do"XKu?6@e5s= p5)I*!ѻx/{
R5P۾59tZ\q8s%i
JIjm.dY\CAMz9Gb($oSA39zYȊh)9Y2>Nu_hW$kB&=S֭0E.XVyvpw @$]`2j~6b [6ee5*sLy6E7wiv]$\":-c-=D}I  ;Ca,_QTGUҨBγ_-,nQW(9iBo@Ȓz0DC;e]o`Zz  e^PRvZ2x,!7Jl)ؕaxa>.ZHx)A܄@#ӅgۺnKȣH h]EV.4#\BH(.Ec]Qg1e/fA,M5Fգ^vFQ?pT-s)ScL~ЏK(8]9#Q,rNajaO!zt [
>xFu2~"5-u"!Z1P31DͰRA;K> ex-w'5U!Ro8j\E{q(s%b	R23~# D' =L$6aOE@3+$QūjG2![ޱScC6gٔKe$oZP7:K")Н(1&Qޕ̨*F]2- TQWzPT_N1cb/D"D`gσBn
7&243S<8@B!:u;# '4%$={p^4J=g(-.euH	iuKLQ=}vy]Q4׬gȆVqX
L?јCJЈSD;1Z ,.&CVo8h^+vQVPWP\By&99Y'CEʺF/M4]ͣ*yFS (P&D:'+XD?'S*2ӣD|ລ36a@X*M|A=
~}p?f&c'+$x|e`&@lvZ5pÊzwpQxiXF !C2q EMr*ʮ.·E K~w![܍$K5faM(mN1B13dJ3nflU%Wf9p!ou^QP73bDYKoAtj ⱞ}.&n<\Eb^r3n=BvJQň +E 2^JM11# }5I9W`*J-;7GPNX7n:B (CC,WwhD,f7x1'6}ZaT	
FvNM;΁ΰLF;̬!O.i\Ў7]M}7aHd%L2{ie45R\6 Pܞ $Jm&< S3GP
|iT mڐ%X$8|8fJ6ޅʒ*Fq}	"a-$f\pֱahTRDƮULJ)M&UPd s[XaA8xĂis2)^fy_5QܚgQCֺdT,vS{.H@#Sh|.RNmT0mJuo"F]HB5&N7@:TЄ)kazsu174`P	2
0-ÑGl\!b?L\%YP[w/Νam,VbTc(4?@}8/m!;@C2qP"VIe؇->nZ<@0ewaR$$Aw#BJpkLqxP,tzO!ksDNcxJYmHd*4
G
1{!4 	r&`ő9=tUENrsE6@Z}Ox5#VځKh2 % Ux
,LӔHEr&xHM2pqU9u3I%qSw
)#aj׿Kak絒N~"?>'BClM=MM@ZwwB`hsBQGg}J@>sB2M"XÊ38LU#FVm0dxHkb";z>TfW&dff xPr9WU(c jPOO.:xE9!0X19& D%F0g@&/RCӘT">ŶZ,؊tzw4ԀH		SѺBďO |tYTO	ttYg"jk+M{9lCop6DފNk~xpqod`e9^l9Z{q{8UZp#/XNA{K*Ll&x
jlSHWC)?J+)=$䈀_(T/o8zcl)cӝ@eaWM(LXgh@FDn	ڂ:k)>:J\sU~5	Nd6ׇ9yiA~5J3*7򑉇EoW*$V\#@$8Q|-+0_گ"dj8;Q0sqLKБ^܎q`(*'I	BW%Qh	 =Iwa#x6aO7BPm<V85r YF^ɠcM$ahIj̙vIQs¤᳍͵5NYŴ9 BAD7GbUq<*V0E=
G#!GϷ>х2XK $oObʠ(X1@|Ģ>uZΔBMujqӝ,Jw\m[6L#փ-m.!˩ |K7Kb|-ʲ)?~db4}uZu1uY`h$)>!>ǡ-4w=IzA8[ff wdiѬzTG8 SA kk#\4' $\E|uw11^M\na-E::Y`,l-]Daf'pRK+ e29DKIFdVay@/
]jQQ\g*1ߑ<r#Bܚ$9r]ȠSTU˚+ŜpP NP3xMglӣN;	Q}Dĳ<Vnkf 	E;U:6g+1t%:ajPCP<%8"a*6#<(ˆkٿ=z|.T+M	qyB,CFQT8IA ⱚk?AߢЀ6DʹB{H/HLy]BߎB3WAwoB&^NpiFYӞ@HKz|H8@R'B4P#Ŵ,*K{4	<\n*o2SXJ\XF%]F6<(UBӴ)C0SҏY}/It|]NG\2rYPN ~>bF;wǫj4N iC|OS=B.څb11h4+οf]ǂ=~m͊{cB#	D|*5hu5(No2I:҂X$ZF u&f׳>q\	|I?^|@'h=XjB&b#LY0~ѳ1}L\IJ
NG{%6/PVAw6ZD)vK~DeD]9c7CP;jKo
I!}sCUŦoP<N<x 96s ,-GSEwċ`_t-/
#{LhCkGN8L		f{$	=F{ WS#0՘K6=oQtujb _HΡ *yfo
	-no386 _"Ppm`^;ʛ+7qCv,aprr}l0G р^zkt bxuN_׍ X"sV{`apis6OJ>1{.b^}|{c/b1phK4?bs?'Kr
LPhF9GhxTS҈>M]zh	f	pg\gjd-qo m*/i,T@2[m5&_ݕlYzhF=vee_1,`81K(7zmNN%nY_;+
չS!Ďc2	W5UM"1|l&{yQlA1 94M&Yu܌nazn)JrXS(`@,oM
`=8TqD4Ԋr)SҁB֎+9k\貞N51#-e{LrPxLeE@KÊ8\I^P-d3HO2SnYWޛuYA%VFj[6Ou<Ɔ-շH#77n?/?2px9&w8iCzfO tu[[	l4y͆[)N`X`
D9tR\!s ˟eroqۜ.X.[K{ݞ[A,[iV[fS٢״ծl K*!\UERmIUʢ+Q]UU+UJUV=H4I.ѻA]$bPA"'@'*1dg͘	=I'gzpI͆h38)<צԑ-)ԆR*@- ˜%H$ !dKŘ9f<,Y$q$c~qLmhO:0!9@c'\o<.cϞ/yC/xx)䳆۟:S`X9mmWT>צ;jƒ[GMB7fSj-teōvXja]cvKXaɃG2`_YdYg	FdUіYRVKǬ]aiŐe{ZV#Ua&`f`l;[݌-0m>)y	m>N"!#0ڡC/$eAnVNႨQ&v[)BP(`[LtRf!OEB-TdD*~x!'O 	p!f%X"E9se	Җ%! (>Ίe$}Z0L C@@CXyL'ZHpPIEIBHI_ᓢt{gF
sO˂AZS <MgV~W IʄA#񳩴B|uƀ?YjP'ˢ%-;PI8~޳*gqfgBf2=+&7+T"Sb4մ*q
_@Cꬅbޘ	F;ʧv7G_@V=bD84f}* ]p%V`Нp
e
W$e4ܾJ*;qh	&I|OaALy<&i|
vv𪧧a@AzJmSP@w _'6gL2LI`T{](.3xYU8I9 xb|R%q"{sIaaTE5Yv"Ν(ãQeĕ}Rӹ[<J	ؕutj<ǦҊPs,a|Dqg&%o,#A%-)OI$;ż2
`#dMr2:-@6MwQ*2&;sOD6,'hח;VџxwG7s:fKh SY40e5J
S"sjkdi?ol+G[6B%OFhȈ~gDs+Va@L74h X±u]1-#vqst.J-v kɮe,@/vĶTw&*,SN|!/=qV,JTf,ҘرMZ^NG+>-vqdT|⦃<q@x ?K"Px|spv
<lp.jVt/*	[W(vxQ>z+`*Gq^1o\PNW)sӏ7YL-UA`[㱾dbL=c)բ`0.,īԇd[5IFD)dui`\J;
W<6"%jJAkӄnt$#'K::cAz^.BJ.e"PguѼ&`Ak
<QPR%i~uS*jah[J,.B(i
iܖ؄T¸ِ%lQi7Ms;iÝ8+`U`9+1])@Ȋ,]MLv60Mߦޅh1Au+|+܀uCj[T#/`N`X,Cke!A}*YjrJ#t;*6nKҴmPjiw	Rߥ8L%D\mDVFu뻢zީgQ5MrnLݤx! D{նs>p$l3b-Vլǩ2az%&cLM|kΣBtM#?Bk߫W_)D3wω{^xI{mPBc,3Qv)NR\@xw@ m;XW@mA'u'&C'W14;*kOd<?tpU٩x8@*Rݴe&Fu)9RxHyГc;Gdz!5`>(zkFMz;nSRJB&QSy8FOԽ`ބέ'BF@W@,3#jdH*D(~MHP+S@5P T{xMaм4-``<:dT!.)fl1S3̊aeŪ e5T"Ib	r_v{<dwZZzBKa-b eZT8neXlX$
RYCQaC>y<SL(`tܙڹL0%g$0;xzT92pa;'f)簦^)P9ߴMΌt	ܶ8:CN	*](0(0dhFϑV{   ,,AbR(MSS%L;      Q-H*h	9ʽ@nsb [S8`WOܓtjx?3UWjpiJg*)EU63ց6wLd5WN!HL /ʡ5lX.
PEtP,ɐCzI{I}y.Зv<1̌[s8.Z3+.^ܟ  U  gվ=4 a(MA%ChH$"pˈ!>ސIBQoDJ$KM'`^- I.>v&ӷMC'"-̉J;,
 ͟ ",ʫR8D}Ҋ{)G85ԚMTMPHt6΄]
ِIMAۜX$|PpY<3ԸOƵ\6'»WLyv@"tތऍY 總Osќ\kڢeEŵAicnǥDǘ4`>Z`Dۼ! ln0(.Q?kG {N,T@=
Oi< ?znyհ]%̎&.!F^g&v,(i"
&@06ȰV{~b/{{_i;3"i6*@ APA)Vs
T/TWК,ߺ<D_ڞ%}} VpGЮ_?B$jV0n-䂀2A.MlΔ8{-`m;PjeiǽG	yί$F=
Qc,_t_|r
&N;Ț5P*h$cgfP@vVlVLdbz+ꠑ^4+%J7Ķ8d&yxhskL/`sG)?xa:YHfKm k(6.pX9ض҄(I/V@FXL@$$Aytd
L=̲uhd{AII4X$cER
|FT2޷ZZ&p@e~BU +JM	.8,˳jH"Ѡ_`dpӎH\ex8e怟+qFw&b&n*Hp*BhÜyUϞtzHh/f ei#[YPc'B: V3Z%f&L}ZF(oToIQ'B8䆣?AS/$0ΛSQ/*薥DjmEchPuA,!Y59EXO&vR̄TnT8M(U=](MXRo/]R	q祇9ww(:@#%ur8+%?rlUlC S0D".$dLC\YH"[pJ* qD`A%xJ`q~v9{p@CUԡN8͗PYy7N$W\Ȃ7*͜G(,7u´ؓOk-s\$7x}v-!(<`]Ȑ0Sr	Rr]>ML~0G1~j*Dd+mMƾo	F#ca	:(wBl0m& N?XuK2,}U{%\oO8}࡞yּ*<R5IPɺU#DxeMS!@N,*pn/6~pfwh~t/
F3HHd܈MxJ/cGB(tabpBmUb<{yDl=M&P<Ddb@HYd	p' >Lt$;8FZ-]׃,22Mo2e͍M#%cc`<M,EL'TaL Ak-^HbEOr{AϫdT I{r*W(ڕAv	bWͨ eWP:z.Qlfb92bN<cQTb=ue٭0 !Q1N p'㽑,~H5a0dr¼Z6p0   iSZB(ܐ-6Эpz"jk UEBA9- |}۲b~"rEx4|>5zu0#Eِf";dqUvƬ\{Fq,Wx9:z 4`	,|X?M}]s@<*TA˩R}1W
G]7zXLlI U(Eot6'FHRg<e_q*0DuЭe<
r3g)LO nÃz\l:+b[1⁝BT@iڏ3]:/뢨&W t,f21ˠۯ6OYP'.

cP!'=p$Hy鳓8gH#u/BIéE7**a|"8L^Iꍬ8b-w 4m K2%@	DP,I+Nh\-wb=%T0
W.r؀@=42,)E:qnx'N^Ȇte/D:+&+TRLDP@5/崒_B0NiJQ7G2X*VK*$7m&MysP3[ʝ:B!dwPs q^eFpϲiDi/$
jRii}O_Ĥ ;]<TLڋ%_@_(RDs(Ἅ4~z0clTU6Mb޹v8 #&nϱBTu08w^8yy=#Pp`޼߯
:b{m!g\zz΂! $ kmS]k=Hʅa<=TD˪z	-޳i\b$mbHi^ffٯ^\Y7Q1V`ͬ & De t(Z[<|P/ fq
E}=2V
Gй$}23֧1XgmWXô>R)b~`Q~<aUl^NGM ~TvILTRN '7+O]( I*UE&Qy\7j(
kǉЃ1ʬB"Q
0#nk"=ks*iUckasg/{(`vF	</|1mHKkq<_!^*
ZQVlyA'9Qm<bδ	$YY`+llJ4Q pRZ _f~{Czj&dA(í\_}i65@DG
6eދ{.Z}u#Wq7Ft uNft~!2E*)dJ]Gzt
 S҆~Aw>4:oN^K<ȗfI).uGfF (n_(4la.y(n(js30c	2%Lg[<\#81($5԰EbǊ:`rA2ХK ׈ކ MO!wFK%C}·KCbp+'^*ġ *%9E:AJ8Jiς+q,-!y|aܬ4B8[z][>+aUm!lY&<)a328%Ch.DTh\[<ʷ`eWDe,~OKu<Cc3@_ޱ7ǅʓ:\A?\5Nln:hL`|bK'MȪTSp@|֙nz r;Ug8@Y4i~\E#d! %m۶A@uQ" ;:A8 S/<M`802=XQ8|/P^^N4hb}	1C:Ef$ۤYpBdQ#vģ8VKdMJ\6$Q,G' lr_pp021ZH7=]{;1P ֊gA.iǯ6~.h]Ēm1MkH|<"qW5[J~X(@@8ǜ5䶟O.!L!&`i ^G0%|Lv_!+6W=aDQ*W=DGؠ$"Eί;$31!ĥjyVˈfjq:k #zf芙IѼ
t|yAG')
Қ#4fNr"Y[hicErV(
PU'mi(3,%柆L92İ2q8ꈏ|Jθݏ9:B%ݬ3hgX\BlUM9{MF$˓ '/e4\#~Ra-p=m)nw9$]X-F
3u$2ZA?&
Px"+Li"vHSbrU,'Pά'Yoq"ߜ	"b/ux.^/^h.Ϫj=l{۬,]	E^#)`856<٪hܕjY<MMQ֑ɸD	D@m\"JFI$+G)meBG]-; "z(uV,SCވۿ:≙)uG0$*b
BAR&CY{^u'K-Wwo|/$U'`=hFKE几ƲHKaH:D	K"40hϢfb֖/u)"(+N?~}ld&+zAUj#lw]åeG")$:^2K*Hpq0<CA8#G#{o9T5ɲ)r*#UNN~C1k|bg 3Ey"YrKpYuԊP 9$Tn;-*~F{;xh~`/h-Ѡ[9VX .k)DԒ  -=.C}-_CD@PP~vJy,Ê+&juHlJwkn$U}WĀET~zEJ:0=htܜMN+SS@Udo{u-/?Pfl.!'GWL3E/VK&u{ǖ 9Ov8 ><v.qbKX1)x|=ʠg:ţDu䠞XL"tI)NV!ZE:uA'oqȄUCpcq$0Y9Q~}D̗>	 *( M`JJAh x]BDĂkreheZ$ȏUnRuπFB5Y_K?nͫAB`ر?f٠6aP
h%q3t;x-! cˮ1N_=6 ~c'/0G➱nXө[ʮ2|L8vJA5ͯ3bf [Gc_8]^#
pLK	jX\+nbd.ߛɘzS{gQ`}F>?& LԮvq~TXػ
¯x5`;.~E+&Pi@*Kd#B.k b^CS
0Qa|<mȬv@%7#(2$c5xۭ,WjwYnv8ӽg}l	1b&pDK;i\<KW%~-¼z@W\kq8o5^ŶnS^&
*%zdFKF}};RK-w9%̉#`%W@BPƎ7Y^u<o$-GkG&ωEţcL~a?+,0f֏{OSmnCA){t	ah(Y "罏!47ơ Z5+"8*D@TbX?
wtm"䷌Y66>M[
zD_!C!;kVBI$@HDXKq,6ZpOB_Y"РdlG9;3Z>Er c\H*MLpvJcʔ(e=\1R:;stN}0)a;jKj{ߒ
m[@h}LPSX25Jl,x7ٮݷN=L`34j^J-
JF	8Z'v$0^sVêW%:Cc	)kt/DÝ	\/"DaʎPXqYKF-c7ڣ/ﵲzGK@{L*/ď=u{Hض-nL*T&@r?@=ԃb2  SI)xΪb[ q,MĶw"Ƃ0CYf mݺs1{GH&o3Go!.jdFєyZ[lǋ@ڙwڙ̒1(f;uWd`mϣ)YU?+8#8E9	8Xia,
Ks^%y>+;TW.#£/(͌0컢[ՁS3 j+<ʡjN7$$ӰC&oJҖLfKLrr+c-+Mz#Jtag@嫡m@|n}8U>,6Ti2CLA
jгU2[Ո#<wNԘ9*;hIv \u1Iۇ
*"蜍V:x'% A*"pIwA6~GJhXLU3Z;&@;3JxY$$4W≶I[,0;Ž=kv
p]ņ5L19w'`L-7AIj_Y02g~<b&t~H(ܛwt2qtYUU XiB$e&]	n'"'B/JGzhh?,f@j39$ ]"P jegDL)< ,뒮#*X1821+G'.05Jˤ84J)3xp^:wkOǑ3`8wt÷*q/@
&5S!CLTruQّDҵ5qS]-|5:L),9CktB{L+f!+ޔ6ޓCUi3I|	53hr.t	 #҉;c&w9 9;zajYxܷWY,\[.a-;E\[`svN-1<qF!(Nyq:68*~Tdf-D:c;@LK-0K!BU!& 5D+!aK(yڄJY2qآ (%>Ɂ65/;ho_YSD Q`8}tf2D!sTcnG 'NmߊjuzQd14ge#W=%ևpZ[4oQƘM#J̴؍2!HWp!"ř*0
 K0ef`06p}tJMO	gD0U}Qj]i76S$! kUM}Yr*5VG/c	iM֊	b*)fwFY͈
XEcBv6%ʺm	zR@rR1ؽqРN{,Xd:Ȉ[BR*ݻB97e&d,NW n:/̡
Y]y,Վv[s|/ejyjŘ|dts/2'y-k.NJ	*Hu)BY 	A"Jc&|nFF(<oTḈrH
,Efd7?WؚE!  VP@͖nũ*%:_9G }$Fy:ti9MT|ћ Ŋ3ٲ
3Oe&E#Fnwқw	AC7hYLK#6tX:(<EyC3Y+\JAɸ*t4}n*o$l5@13>i[U&0?ET@ibl%vBt]G`0^몼7]|TX7ÈPX</ D^}\Jq@-6N@Ѣ|[yxI^Z?j:Bpr93x 1I*ͥ&&8dP耏b1+RL₤5mzO
@Kdt8x- <X.\ߜv1%x-%_r"Z%]֕o{A^oԋ14?c53ʏ?aL4c	GWM&23EN8PX0S@"	"&E@kyJ%G4%Y`ttqr[51@Pۣ\y"ߡDt%k8[(qCvƈab<qN8h)lVK=Huq}#4*m.|fGUը6N@/LB
`xb:D׎'U'	6I:*$x.ƣ8#*ջ]&j3BCO9j:K9:{,Th!T-RI "bB62ZMM	߆ gYqQdg#+rU@-NFh\%B%%*Ä-O9$doK-	+!B	+#9td)dYE5#Y*Q˂~%I]/ԄԈډ9T/~wg:g!@lQ:Fq14\NmHƮ#EIcg|>CCdM<"%@.Wf/u]p.&!2s85 w|<hH
@ޜ	`k<{ǪHbL
S#FMٚm/#"ψiv $62͕̒jetU/!IB\j?2qwY]n3KW(|FD$Qhѐ+aS ch	3"(U<V9,X  hV ߘUWEpmsU= uIw& 6e:F/FwKyyuٲEVkM47.f+3	־Lu&'x_ GZN)_1nb?Z~lT6gn)4β4VS)gyhqP~)JPXEdHZ
7@MY@0: =X%!Anho$t,!?kPCJR8GyY%V`2&@/P~@k!mIw>S`H~o"W*HjU'PpL2O-^jiN݆HMQiWdX3)72x2L9,wP-Px8 |TTtf	ڴc7v.	l<1Rjǘ.+br79xmpSm%2qHK',lόbBTvNec֗쒄Σ<o& 	oG	+MHuE4:NR(&X"(DD6MA2a4LNԹ7jWԎIxu3$ţhT6_YVOOF	%v\hJ"Rq.|J+tuL˵O#1:P3yV1a]Z&Bf	7{WKHb6AR8%b/\{ȥp= ܷEjRU(xAM!@k]B5AFw
.1|(~;UCA?O:df/XxCYlކSZ].q-Eq9&TaB[,)a}xd,+/8ʛ,ಎ!l`.vn*1#DخVd"%4I2"%d%?BG#*q|A%%B}pMMT|CcO4EN%:W)-ϖa#31>W'ʚ`$l߷4̾;DCl8#et#W@|"?EJ6r6H=׌|l20A%-qD{V? h| ߤ;
"&FAٖk?Vqmjjra16E	F(~w@<12hvF	F'W*PHj vqI#ëبfz5gѐʖ<*r]GWS=C +=/UI]FN &67
(ɮvSg4T#Tox^:hyA͔VOJd'"ِ
ZBmh2\J<lEP
R$Cgcm]q8q7|pȻ:$ bdP&b8R0w6[(?|n^G&OCkazrց@6:	 
>j.^P`H	 5ZA./,GBӔeBPgld4@ X01GN<(% a=q;=1^?<TV bK(<~J	1]LB+MMOBHe/MJBR%j̄Tش2TA^_cXg۟"^4;5č~Pmhx%:9ZUh1K,ҨĎU>o/MH$A۲*NxLdTJ'3&*!9ous$wǶs{X;)w3,.m@5KŴB,ѩ*ڡ$*/nT	иDPRq{zѺ	#B
x	20UGh˦\i oc 1|!X3D
!ۦhƾ%I&_LmE{={[*	0@	(fhzJaH7<ǲ:ǀ&KWד~nZcMT&ռ-9@4Dch/:{
)Inщ\y>ߥKS1 q]zBrUפo𲜮=Obig,¨d1NըC{pU7+ƀ٬5@٫CnХ϶i'6GI	GShw4LCg0EGl
f-t	)	ΞD,!գ+;:!j ec7$u*u[HHxep܉4;N02 @s{EN7G9FHg܃.:ik)\4!j"a(-teu> X=RhDQ%N-)7`=#Yj,B͆/\;O3a@bOk zWC!@tf~hj($hbFGK5x"PDeL%Z bo'hl`[ EWi	7i\S)"ܯש7*ˆ$MePIarU`Y)5 P٫gS	p#8نsHY7w~[:k30`r1zõvgF6Pی%=zm.eZ2вgbY`@.*aTwy#x=ps8zg"4B=\*"8in}m>N2d5>	aM}R!YiWT2֖x"5-@1:sFxc77 5-$Xe#1(6wE5=[4 (YgU~qsy:6kxfg +capBrl*p	^[gؼLp ph?,J:S]W-SKAViDBL:&3<˟HDDu	PX0Gn"RviIź-}fK,ƈ)Mt=eK&{:2p5`iĠfBZ NLʀ0wcӺYr%c"$L24tS>Ҝ} :fcr$rvTcWHON5Mz4<z!0aBQnZ^iYS(49VEUZHAMQJk:$$vDbK~*e hXLG*vUeKXG TbUCK|Ls8H9Q5]zʴJ$weĀ { @KR}
,X!kEd-YLsږ]ҮsС)Jq$)mCTkOUף
Z[gO.g@`K'4\E@8B,YJ)Od_;|3}^7RFW37)CyzȚ/wgLDEKn?DpS3K`톀^k-z4i&13-3ȶ]sxSqFx8L
9؍[EFP&/:yq	΢BwuYD-QS2`CX!1cNz#BF($-ZqDvCڵrZ\L39w&OJ*~D
FyaH@"?z(zw㤽,Ce ]'R8HJt'gM *q.tKE,p7.Ph8H~T0 t&GiuX]bU#k9!5NMTY#TCq!tlt6c7d/ˁ=Vxi"4(eNN'Ό]/TBR 9mXpOv_Fg'2{~Kp7P`V*.c:+,( H-`ȺdhǌX͹ i2%Gz9됫,iXAyB؊yPj<swNq ;LY_MD|-$v SqWӇ?6rK@7e>nýf <n
}g'	}T@3 a]vQJ:#cHvUӤwbMr3>g)B(Bz'v)GNyQ2q%Cy=`V+%y\i1`G3F 2]IՋ_/,j1<\@YZ@8~Y pw .t#pH&bY)al юi5NCpBiC]utZo&-;Ľ^
fsÑ5<ˤUh
#w:@֧[-rqD{{oEMFɓmwl82-6<y}kL^92`+܎F(;U>%ƥ9HV,I@NojAQgmӡg㲔7?ݏ9\iƆscd1jn p@.!{;im"3d7P4<x(8Q=x2!z/\RdkjԈeX|
]P}<`{&WUZa7DhS)0@^L!eK@*zQ&,+FO$V! !bQKFܑ@/VQ*Q`@Bl^l-1QA
PSVqE,؂r$@"@h
%!<)"S0+@S$C$n/He8$L#aH1반QgmL| .7kF\U@j@Oҡä@J`d&B*.Z8sYO'J3[ejBAĬ#ZJ(o]>MZ?1.|a(c-28FKNB}'-$2@-;2[,mBPT4M 1܋C%`U\GۇO"͈j{%?i48V[Hc/cWN9OvGBp@(ѵfKT,,|Tj4GySU]VL9fǉB]*mD)J/G7y8+Ά`fKlE {ˏs,9G9 EZއ%%g
gL GLnd)YUonr+])ŗ8~Bꁐ`WE<'y%@--cyG~.
TQ!ֺoT>ʛl!ʾOT j9	cy.An-&Pg䛂F3aI$wH{	GxJg&u ؓ2m$T)OR֭msk-jkXO-_p[v]b%VUjofCP@M_ҔAdkj K2bfQy.K?7  SʁhypCDgE2F9Y bˮ9f3C52h`.OC f#gm(x3P
$F6t9<N4EY@Bhk`PTqx䃵0T a/!]پqG	/TH?)!Ϝ!(QkKmHKpeGLs++	;\tݦ+}"4n%J=TbUce ++\D<}кlW(w,J c$p&wk+Uwd)ӥ|F(z}qC!mf2LGTF0T4nTYIΙQs3,EVI2h35R2E2Z"{ѐj"fä,0b]! aG׺!y-l
ӱ2
sM-bjP suԂؘS#N:)/)jp ܙy޻1&iRS\_$ Y1G>u؜=ղ=/j² D). h{|grsE&2˸720239ѽ?A<%f~_P_VML,@xn:#9Z%	"2,\MnF*,pwE(E nfıpfw1=\b,]MBdd KovfqF0;'q:NqGQ)ZY|hr@
eul}[˫W8C`aȯ{O0q7z.DxFBq=w w8{~s$43ZnϤ?0ImxK8h74rЩḷӲ)mfe]8:HBg<	D%j;1e##g}'Z d!HQDMgD[Q4j){Uzɑ `  dk~*ĚكS+bM{RۙBj ',7CB̖O\EE5d rd+c2tDTP^DK\C!*=KʝejcM \9Ǜ^K l̚J|;
:VyOL: 8CH:uE.Ksx!ܗ\ F0J<nfdQ [v[28y!ue*Β}*fЫJә9诛%j(@M]Ѫz0hF#S[F2@-ҖFjJ*Jr;! cp¼`q8ϜE28r8&]h 8 &}#g'm:fkamZW^a,)ftmScD*	\Bݦ~Wjiex4ɱ&'كsmB0078*k!Vy	!Gۍ0råLX+5@z$	`S	T~Ŀ?bC$bOrx|DѤ
	TZ<$꽑Җ5>_iv>Svm9+˙} T.YYl(e` \JCTWpm2dHiIdޡs$[(mdlL}<l	,pZ,$(ӨZc(Tw8\Rs#jjئ-hQsfvz`4[~-	ɔhǪ.t'ܗ4@Bˀh"4qDL<"uB>c z.CP`i#9@[nAsS5;HT#\lO ` ,;1l1dgv.4!k/Sbq҇@C{YHŔ&{HȈe5FF˅T(Kf٣MZN82ᐐ&G8)[,&ߞZwc7=p;ǔaR2֪\#y<a} "#WfFN[+C Y=`Y:\?rte!	hȅ䫿iVP!Z8H
~5T?2j6䩗ifS.ɖCz}l984+bNcny{/%巬JT)k!,ٖZ=gÍK:l R2!i	*CGJJu?JZ106˩F{z.z4m,1QAa@DUO}]AJ0-3nŐ1v0P2<WPhly]+HI&	b3σ(	𛕣6IxCWO%ɍJJ@v]er"yq'ަ`I#FB/yY{Z[|aJ )G3\ܛEEI3&@e3Xto~ff! V4Mxa\.xv ,\#9"xk;楜Ջ\Wָmֱ+j'L6
X:QpswHFҬEe8GZ%4݁4E%x}f, vGYMeLI$l܁Vh,2daI^T.lāJ@hXxY[vCXH  L7G&|ѐFJ>uEg<UIQV$LB|ڟ{2 XՔzm5<X֘)D[+79=0*E~n*,8`/	7BY.QmӺRq4$2M{lJv|u"}~W2Aؖ5ےDK$o5{w_n:;ZׄQ*nhH78B۬$i$IzW&F	ss"n@P V@h!غxD3{(++%vE1͝89nZbT0)9?Qn	ice`B
L0`L4#c
#n%{tNE1Ry(*׎;,g˘9!(=98|bN>}4pE6>q%;%A1VG|MX	
;AtҍN[kED",Ӿ}dF򨛀XxQXAFs$9-]8h2H~=Mem/6)>$onz!DT'#nZ'͉'Sd"\߮`F$P9~,b1pZ *1a6Gk?ezUZFIc&p@
i8wDv#@`w! qC" ƂIfeņSS
%LΣvfm*MeB8VN4DVssF!xGH}R`P	,+٦BH;b4UԚ;`2O)6o(16"YGBBNkbJRr~"=wQYlBXOKxM@mlen;ʚQb]oC :aStEAg0F/a{@H}| 

S!ϯ7%ܶ&[9
-ld56eҢ2̦ QkSKdy?@Hb>U]]5LE\ۊ@On[5nQ,Fi<G	ApĴkQj_ѡrF[C0CƗtny30HX2y%г*	sf ˌQgP(G>rD½)MH]khQ+-0fT=u&}]'4j;I {/jg&O.m NHŖ4.<(@5ٻAk
(S :Vb>j2!|no<$6sBEX?0mqy%qV^?CC!DM&+dBxJ!Ҋ`&Px+E\iROK<lqp}KP*!:4m!S܍j@=I?EGs'rG-hPNCG";]q7ƥۑ,&uXNjBËQR-n<$M>x
@g{܂Q#EIY#58Hˤ%gH٫=y0@v@b1ѫH)oCFnqmXRp-x#Js&ݨ

bG-LE6a:T^9SW:Fe1.ubzy`DCQ7?	zԽ,̶jpX2wvP|mXE,3
XG!֋>R<nZE<J [
7	-aVkB(ȏI@g1uS$5>U HpE淲Np0΢$ ܅$xZ0!ݓ(K-	j⏖RvsTr61.W4!1(MYwH|7Pǣ,5UC5O+yJm.>B{H@ycV	b"?af14|T*> A0;Ͳ`  	@lM&ʄ"!M"bE~ؾDeG\[:=qjT?  Et$SEbqQQ/l
:G&5:s743#3yCIE^ FAS7p-wXbv{%[; Y-YF(B80Xthb\|6TԼC}>$J  HȲk,7h3S4KF_KXkV>Q'
_TN˩X4֊mI_T~.9~RFiHk#Co,Ĩ.i%!vO3%- %nxKډg
^"HH((=/#ƿͬ?Hxi
P>bF6`4u |K~͉'zGnT^1tVϱFco,Ida#XBsy9ִuPA!-иXKmn]3hލ34zr{pc`YʄhuHB >c;B%XX	ӣ/
ɰJ<c6\YVG&w0^sߴO=r4)"/4E-	B~;POF&3G|<}i茶Yt"42]J<,+L`gl $z c k#OPͮ",eat"ev@o5֠ԓXQJyL3@NzH% u_FbK=AHQCTv+39of3X*7458ӣD,(~Aa?"IdKCGtVp(V,q`fxQ!0mI ȹ!=k:g2)	I(o~cȝ 4e2ts:f7yNJ	bK
DDπ6Sk::6MS6 PX&60dOXH*$
THZu關$ۦ'+(sGPC\MMb,~R-x@P,zng8EGlU.LPtMCaxBu)49[fJ3߲oK#B	m~Fbb6sVͤ(09^%ThQ8|֞,G"YSpJڕmcY^,/e8<õa( 2&Gz1)wK9	Kr|IXfXsS#	A?qk`!@bVc;o ):$#$Sб@3]rwdoX)`v=2I%]H\dSVLN3ܖI(tn\
乵RICzZ"1$$'	eUdE6Hu$XwspnYRg7 #A2­Y\á,o %L7κD
vJFSx
YzxB/+ L_!iU[vB?'S-CP_ \g!q"C:>1}
Zq
H(QԹ]	$jkX@YL(L?ų'R:!E>0vZՏS1v7 u	D~UtOc53Q#C)6\2Ba>I@ћ\hձ4O^G#@̀St}9t4HZR-S	rtf($[H룔,}h(dXơρZ=#H v;ތxcܼaMkj
Mo:[r"Us~u޵&Ǉ@~~>ocQk=^+ivb'ƀv ,̍G6Ud;HDg*u#}R C# !>2XHTJ\UΛV[W?TQouTӥrAL yXpyw`]1k.i^hk1lFKVFKp?hĭ^segc 	?)M2FmR@M[۸UQWi2"[dTYC4ڥm@᪇^sCI@>^Py'Y` J]^3H?_Oτ0D>ueq2yq&Y s4yRNt5 @f >Ź	K<sb
 iƗ=eKz"dCQZ	d3hvthvwm/FM"at@*/|\psLeSiT1BS-tۆ/(jt.Z;dlScr?!(FЄa	zSS99.`Fvq"eGWmn2}"~T@SFY_+!kt@؏3F`2]lDbc`2{+l1%j%AԶ8j\EŪ	*(2_$\>cjeЧK$dWbl?D:y	EBeVw~TXߕVU֗.0(T_Ҡ$G]{ΦpZ)0SA$#_>
&ܯ>QrH)t@+4q1L8HM2@8N;a޵Wc?K?KUe&	Gl{P 	aO^WI@-webkit-keyframes fadeIn {
  0% {
    opacity: 0;
  }

  25% {
    opacity: .3;
  }

  50% {
    opacity: .66;
  }

  75% {
    opacity: 1;
  }
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }

  25% {
    opacity: .3;
  }

  50% {
    opacity: .66;
  }

  75% {
    opacity: 1;
  }
}

@-webkit-keyframes pulse {
  0% {
    text-shadow: 0 0 10px rgba(255,255,255,0.2),0 0 12px rgba(255,255,255,0.2),0 0 16px rgba(255,255,255,0.2);
  }

  25% {
    text-shadow: 0 0 12px rgba(255,255,255,0.2),0 0 15px rgba(255,255,255,0.2),0 0 20px rgba(255,255,255,0.2),0 0 6px rgba(104,185,254,0.7),0 0 10px rgba(104,185,254,0.7);
  }

  50% {
    text-shadow: 0 0 12px rgba(255,255,255,0.2),0 0 15px rgba(255,255,255,0.2),0 0 20px rgba(255,255,255,0.2),0 0 8px rgba(104,185,254,0.7),0 0 10px rgba(104,185,254,0.7),0 0 15px rgba(104,185,254,0.7);
  }

  75% {
    text-shadow: 0 0 12px rgba(255,255,255,0.2),0 0 15px rgba(255,255,255,0.2),0 0 25px rgba(255,255,255,0.2),0 0 8px rgba(104,185,254,0.7),0 0 12px rgba(104,185,254,0.7),0 0 15px rgba(104,185,254,0.7),0 0 20px rgba(104,185,254,0.7);
  }
}

@keyframes pulse {
  0% {
    text-shadow: 0 0 10px rgba(255,255,255,0.2),0 0 12px rgba(255,255,255,0.2),0 0 16px rgba(255,255,255,0.2);
  }

  25% {
    text-shadow: 0 0 12px rgba(255,255,255,0.2),0 0 15px rgba(255,255,255,0.2),0 0 20px rgba(255,255,255,0.2),0 0 6px rgba(104,185,254,0.7),0 0 10px rgba(104,185,254,0.7);
  }

  50% {
    text-shadow: 0 0 12px rgba(255,255,255,0.2),0 0 15px rgba(255,255,255,0.2),0 0 20px rgba(255,255,255,0.2),0 0 8px rgba(104,185,254,0.7),0 0 10px rgba(104,185,254,0.7),0 0 15px rgba(104,185,254,0.7);
  }

  75% {
    text-shadow: 0 0 12px rgba(255,255,255,0.2),0 0 15px rgba(255,255,255,0.2),0 0 25px rgba(255,255,255,0.2),0 0 8px rgba(104,185,254,0.7),0 0 12px rgba(104,185,254,0.7),0 0 15px rgba(104,185,254,0.7),0 0 20px rgba(104,185,254,0.7);
  }
}

@-webkit-keyframes slide-in {
  0% {
    -webkit-transform: translate(-100%, 0);
    transform: translate(-100%, 0);
  }

  100% {
    -webkit-transform: translate(0%, 0);
    transform: translate(0%, 0);
  }
}

@keyframes slide-in {
  0% {
    -webkit-transform: translate(-100%, 0);
    transform: translate(-100%, 0);
  }

  100% {
    -webkit-transform: translate(0%, 0);
    transform: translate(0%, 0);
  }
}

@-webkit-keyframes slide-out {
  0% {
    -webkit-transform: translate(0%, 0);
    transform: translate(0%, 0);
  }

  100% {
    -webkit-transform: translate(-100%, 0);
    transform: translate(-100%, 0);
  }
}

@keyframes slide-out {
  100% {
    -webkit-transform: translate(-100%, 0);
    transform: translate(-100%, 0);
  }
}

svg {
  position: absolute;
  left: 0;
  cursor: -webkit-grab;
  height: 100%;
  width: 100%;
  color: #333;
}

.node {
  cursor: pointer;
}

.node text.root {
  font-size: 32px;
}

.node text {
  display: none;
  fill: white;
  font-weight: 200;
  text-anchor: middle;
  z-index: 1000;
  text-shadow: 1px 1px #333, -1px 1px #333, 1px -1px #333, -1px -1px #333;
}

.node.active {
  opacity: 1;
}

.node.active.selected text {
  display: block;
}

.node.active:hover text {
  display: block;
}

defs #arrow path {
  stroke: #CCC;
  stroke-opacity: 0.2;
  fill: #CCC;
  opacity: 1;
}

.edge text {
  stroke-width: 0;
}

.edge .edge-handler {
  fill: none;
  stroke: none;
}

.edge .edge-line {
  fill: none;
}

.edge.active text {
  display: none;
  fill: white;
  font-weight: 200;
  text-anchor: middle;
  text-shadow: 1px 1px #333, -1px 1px #333, 1px -1px #333, -1px -1px #333;
  z-index: 1000;
}

.edge.active:hover,
.edge.active.selected {
  cursor: pointer;
}

.edge.active:hover text,
.edge.active.selected text {
  display: block;
}

.edge.active.highlight text {
  display: block;
}

#zoom-controls {
  background-color: transparent;
  background-image: url("images/maze-black.png");
  border-top-right-radius: 3px;
  border-bottom-right-radius: 3px;
  box-shadow: 0 0 5px rgba(255,255,255,0.3);
  margin-top: 10%;
  z-index: 5;
  position: relative;
  display: block;
  width: 55px;
}

#zoom-controls #zoom-in,
#zoom-controls #zoom-out,
#zoom-controls #zoom-reset {
  padding: 12px;
  margin: 0;
  width: 100%;
}

#zoom-controls #zoom-in i,
#zoom-controls #zoom-out i,
#zoom-controls #zoom-reset i {
  color: #E89619;
}

#zoom-controls #zoom-in:hover,
#zoom-controls #zoom-out:hover,
#zoom-controls #zoom-reset:hover {
  background-color: rgba(255,255,255,0.2);
}

#zoom-controls #zoom-in:active,
#zoom-controls #zoom-out:active,
#zoom-controls #zoom-reset:active {
  border: none;
}

.fa-caret-right,
.fa-caret-down,
.fa-search {
  margin: 0 5px;
  color: #e89619;
}

#search {
  margin-top: 2em;
  margin-bottom: 1em;
  padding: .5em 1em;
  width: 100%;
}

#search span {
  vertical-align: bottom;
}

#search input {
  background-color: black;
  border: none;
  font-size: 20px;
  color: white;
  padding-left: 0.5em;
}

#search .search-icon {
  height: 22px;
  background-color: #000;
  border-color: #000;
  border-right-color: #111;
}

#stats {
  padding: 0.5em 1em;
  background-color: transparent;
  border-bottom: thin dashed #e89619;
}

#stats #stats-header {
  padding: 10px;
}

#stats #all-stats {
  color: white;
  border-radius: none;
  border: none;
  background: transparent;
  overflow: auto;
}

#stats #all-stats li {
  padding: 3px;
}

#stats #node-stats-graph,
#stats #edge-stats-graph {
  height: 250px;
}

#stats #node-stats-graph svg,
#stats #edge-stats-graph svg {
  opacity: .6;
  background: transparent;
}

#stats #node-stats-graph text,
#stats #edge-stats-graph text {
  font-size: 16px;
  fill: white;
  font-weight: 200;
  text-anchor: middle;
  z-index: 1000;
}

#stats #node-stats-graph .no-data,
#stats #edge-stats-graph .no-data {
  margin: 30px 0;
  color: #e89619;
}

#stats .badge {
  border-radius: 0;
  height: 100%;
  background-color: rgba(104,185,254,0.6);
}

#editor {
  padding: 0.5em 1em;
  background-color: transparent;
  border-bottom: thin dashed #e89619;
}

#editor h3 {
  padding: 10px;
}

#editor #element-options {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  cursor: pointer;
  margin-top: 10px;
  margin-left: 2%;
  color: white;
}

#editor #element-options .property,
#editor #element-options #add-property-form {
  display: -webkit-inline-flex;
  display: inline-flex;
  margin: 4px 0;
  width: 100%;
}

#editor #element-options .property-value,
#editor #element-options #add-property-form #add-property #add-prop-value {
  border: thin rgba(255,255,255,0.2) solid;
  border-left: none;
  background-color: black;
  color: white;
  width: 100%;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

#editor #element-options .property-name,
#editor #element-options #add-property-form #add-property #add-prop-key {
  text-align: center;
  font-weight: 200;
  cursor: default;
  background: #2E2E2E;
  border: thin transparent solid;
  color: #e89619;
  border-right: none;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

#editor #element-options input[type="submit"],
#editor #element-options #update-properties {
  color: #e89619;
  border-top-right-radius: 4px;
  border-bottom-right-radius: 4px;
  width: auto;
  background: rgba(255,255,255,0.1);
  border: thin solid #e89619;
  text-align: center;
}

#editor #element-options input[type="submit"]:active,
#editor #element-options #update-properties:active,
#editor #element-options input[type="submit"]:focus,
#editor #element-options #update-properties:focus {
  outline: none;
}

#editor #element-options input[type="submit"]:hover,
#editor #element-options #update-properties:hover {
  color: white;
  border: thin solid white;
}

#editor #element-options #update-properties {
  border-radius: 4px;
  padding: 10px;
  width: 100%;
  margin-bottom: 20px;
}

#editor #element-options #add-property-form #add-property {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-grow: 2;
  flex-grow: 2;
  -webkit-flex-direction: column;
  flex-direction: column;
}

#editor #element-options #add-property-form #add-property #add-prop-value {
  text-align: center;
  width: 100%;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 4px;
  border: thin rgba(255,255,255,0.2) solid;
}

#editor #element-options #add-property-form #add-property #add-prop-key {
  cursor: text;
  width: 100%;
  border-top-left-radius: 4px;
  border-bottom-left-radius: 0;
}

#editor #editor-interactions.active {
  color: #e89619;
}

#editor #editor-interactions.inactive {
  color: white;
}

#editor #node-editor.enabled,
#editor #edge-editor.enabled {
  -webkit-animation: fadeIn 1s linear;
  animation: fadeIn 1s linear;
}

#control-dash-wrapper {
  font-family: 'Source Sans Pro', Helvetica, sans-serif;
  letter-spacing: .05em;
  height: inherit;
  z-index: inherit;
  padding: 0;
}

#control-dash-wrapper.initial {
  -webkit-transform: translate(-100%, 0);
  transform: translate(-100%, 0);
}

#control-dash-wrapper.initial #dash-toggle {
  color: #e89619;
  -webkit-animation: 4s pulse linear;
  animation: 4s pulse linear;
}

#control-dash-wrapper.off-canvas {
  -webkit-transform: translate(-100%, 0);
  transform: translate(-100%, 0);
  -webkit-animation: slide-out .75s linear;
  animation: slide-out .75s linear;
}

#control-dash-wrapper.off-canvas #dash-toggle {
  color: #e89619;
  -webkit-animation: 4s pulse linear;
  animation: 4s pulse linear;
}

#control-dash-wrapper.on-canvas {
  -webkit-animation: slide-in .75s ease-in-out;
  animation: slide-in .75s ease-in-out;
}

#control-dash-wrapper.on-canvas * {
  box-shadow: none !important;
}

#control-dash-wrapper.on-canvas #dash-toggle {
  color: rgba(232,150,25,0.6);
}

#control-dash-wrapper.on-canvas #dash-toggle:hover {
  color: #e89619;
  -webkit-animation: 4s pulse linear;
  animation: 4s pulse linear;
}

#control-dash-wrapper #control-dash {
  overflow-x: hidden;
  overflow-y: scroll;
  background-color: transparent;
  background-image: url("images/maze-black.png");
  padding: 0;
  height: inherit;
  z-index: 5;
}

#control-dash-wrapper #control-dash h3 {
  display: inline;
  margin: 0;
}

#control-dash-wrapper #dash-toggle {
  z-index: 5;
  background-color: transparent;
  background-image: url("images/maze-black.png");
  border-top-right-radius: 3px;
  border-bottom-right-radius: 3px;
  box-shadow: 0 0 5px rgba(255,255,255,0.3);
  position: absolute;
  left: 0;
  top: 50%;
  font-size: 2.2em;
  color: rgba(255,255,255,0.2);
  padding: 10px;
}

#control-dash-wrapper button {
  border-radius: 0;
  border: none;
  background-color: transparent;
}

#control-dash-wrapper button:active {
  border: none;
}

#control-dash-wrapper h3 {
  font-weight: 200;
  margin-top: 10px;
  color: white;
  cursor: pointer;
  vertical-align: top;
}

#control-dash-wrapper li {
  cursor: pointer;
  background: transparent;
  border: none;
  border-radius: 0;
}

#clustering {
  padding: 0.5em 1em;
  cursor: pointer;
  color: white;
  border-bottom: thin dashed #E89619;
}

#clustering #cluster_control_header,
#clustering #cluster-key-container {
  padding: 10px 10px 0 10px;
}

#clustering #cluster-key {
  color: #333;
  background-color: #000;
  border-radius: 4px;
  border: thin solid #333;
  text-align: center;
  display: inline-block;
  width: 100%;
}

#filters {
  padding: 0.5em 1em;
  background-color: transparent;
  border-bottom: thin dashed #e89619;
  color: white;
}

#filters form {
  width: 100%;
}

#filters #filter-header {
  padding: 10px;
}

#filters #filter-relationships,
#filters #filter-nodes {
  background-color: transparent;
  display: inline-block;
  width: 45%;
  margin-left: 2%;
  overflow: auto;
  text-align: center;
  vertical-align: top;
}

#filters #filter-relationships #filter-node-header,
#filters #filter-relationships #filter-rel-header,
#filters #filter-nodes #filter-node-header,
#filters #filter-nodes #filter-rel-header {
  margin: 10px 0;
  cursor: pointer;
  background-color: transparent;
  border: none;
  border-radius: 0;
  width: 100%;
}

#filters #filter-relationships #filter-node-header h4,
#filters #filter-relationships #filter-rel-header h4,
#filters #filter-nodes #filter-node-header h4,
#filters #filter-nodes #filter-rel-header h4 {
  font-weight: 200;
  display: inline;
  color: white;
}

#filters #filter-relationships #filter-node-header:active,
#filters #filter-relationships #filter-rel-header:active,
#filters #filter-nodes #filter-node-header:active,
#filters #filter-nodes #filter-rel-header:active {
  border: none;
  box-shadow: none;
}

#filters #filter-relationships #rel-dropdown,
#filters #filter-relationships #node-dropdown,
#filters #filter-nodes #rel-dropdown,
#filters #filter-nodes #node-dropdown {
  margin: 20px 0;
  border-radius: none;
  border: none;
  background: transparent;
}

#filters #filter-relationships #rel-dropdown li,
#filters #filter-relationships #node-dropdown li,
#filters #filter-nodes #rel-dropdown li,
#filters #filter-nodes #node-dropdown li {
  padding: 5px;
}

#filters #filter-relationships #rel-dropdown li:hover,
#filters #filter-relationships #node-dropdown li:hover,
#filters #filter-nodes #rel-dropdown li:hover,
#filters #filter-nodes #node-dropdown li:hover {
  background-color: rgba(255,255,255,0.2);
}

#filters .disabled {
  color: rgba(255,255,255,0.5);
}

#filters .disabled:hover {
  color: #fdc670;
}

.alchemy {
  position: relative;
}

.alchemy #search form {
  z-index: 2;
  display: inline;
  margin-left: 100px;
}

.alchemy #add-tag {
  width: 300px;
  display: inline-block;
}

.alchemy #tags input {
  max-width: 220px;
}

.alchemy #tags-list {
  padding: 0;
}

.alchemy #tags-list .icon-remove-sign {
  cursor: pointer;
}

.alchemy #tags-list li {
  display: inline-block;
  margin-top: 5px;
}

.alchemy #tags-list span {
  background-color: #ccc;
  color: #333;
  border-radius: 10em;
  display: inline-block;
  padding: 1px 6px;
}

.alchemy #filter-nodes label,
.alchemy #filter-relationships label {
  font-weight: normal;
  margin-right: 1em;
}

.alchemy .clear {
  clear: both;
}

.alchemy text {
  font-weight: 200;
  text-anchor: middle;
}if(function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){function c(a){var b=a.length,c=_.type(a);return"function"===c||_.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}function d(a,b,c){if(_.isFunction(b))return _.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return _.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(hb.test(b))return _.filter(b,a,c);b=_.filter(b,a)}return _.grep(a,function(a){return U.call(b,a)>=0!==c})}function e(a,b){for(;(a=a[b])&&1!==a.nodeType;);return a}function f(a){var b=ob[a]={};return _.each(a.match(nb)||[],function(a,c){b[c]=!0}),b}function g(){Z.removeEventListener("DOMContentLoaded",g,!1),a.removeEventListener("load",g,!1),_.ready()}function h(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=_.expando+Math.random()}function i(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(ub,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:tb.test(c)?_.parseJSON(c):c}catch(e){}sb.set(a,b,c)}else c=void 0;return c}function j(){return!0}function k(){return!1}function l(){try{return Z.activeElement}catch(a){}}function m(a,b){return _.nodeName(a,"table")&&_.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function n(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function o(a){var b=Kb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function p(a,b){for(var c=0,d=a.length;d>c;c++)rb.set(a[c],"globalEval",!b||rb.get(b[c],"globalEval"))}function q(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(rb.hasData(a)&&(f=rb.access(a),g=rb.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)_.event.add(b,e,j[e][c])}sb.hasData(a)&&(h=sb.access(a),i=_.extend({},h),sb.set(b,i))}}function r(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&_.nodeName(a,b)?_.merge([a],c):c}function s(a,b){var c=b.nodeName.toLowerCase();"input"===c&&yb.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}function t(b,c){var d,e=_(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:_.css(e[0],"display");return e.detach(),f}function u(a){var b=Z,c=Ob[a];return c||(c=t(a,b),"none"!==c&&c||(Nb=(Nb||_("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=Nb[0].contentDocument,b.write(),b.close(),c=t(a,b),Nb.detach()),Ob[a]=c),c}function v(a,b,c){var d,e,f,g,h=a.style;return c=c||Rb(a),c&&(g=c.getPropertyValue(b)||c[b]),c&&(""!==g||_.contains(a.ownerDocument,a)||(g=_.style(a,b)),Qb.test(g)&&Pb.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function w(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}function x(a,b){if(b in a)return b;for(var c=b[0].toUpperCase()+b.slice(1),d=b,e=Xb.length;e--;)if(b=Xb[e]+c,b in a)return b;return d}function y(a,b,c){var d=Tb.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function z(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=_.css(a,c+wb[f],!0,e)),d?("content"===c&&(g-=_.css(a,"padding"+wb[f],!0,e)),"margin"!==c&&(g-=_.css(a,"border"+wb[f]+"Width",!0,e))):(g+=_.css(a,"padding"+wb[f],!0,e),"padding"!==c&&(g+=_.css(a,"border"+wb[f]+"Width",!0,e)));return g}function A(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Rb(a),g="border-box"===_.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=v(a,b,f),(0>e||null==e)&&(e=a.style[b]),Qb.test(e))return e;d=g&&(Y.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+z(a,b,c||(g?"border":"content"),d,f)+"px"}function B(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=rb.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&xb(d)&&(f[g]=rb.access(d,"olddisplay",u(d.nodeName)))):(e=xb(d),"none"===c&&e||rb.set(d,"olddisplay",e?c:_.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function C(a,b,c,d,e){return new C.prototype.init(a,b,c,d,e)}function D(){return setTimeout(function(){Yb=void 0}),Yb=_.now()}function E(a,b){var c,d=0,e={height:a};for(b=b?1:0;4>d;d+=2-b)c=wb[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function F(a,b,c){for(var d,e=(cc[b]||[]).concat(cc["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function G(a,b,c){var d,e,f,g,h,i,j,k,l=this,m={},n=a.style,o=a.nodeType&&xb(a),p=rb.get(a,"fxshow");c.queue||(h=_._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,l.always(function(){l.always(function(){h.unqueued--,_.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[n.overflow,n.overflowX,n.overflowY],j=_.css(a,"display"),k="none"===j?rb.get(a,"olddisplay")||u(a.nodeName):j,"inline"===k&&"none"===_.css(a,"float")&&(n.display="inline-block")),c.overflow&&(n.overflow="hidden",l.always(function(){n.overflow=c.overflow[0],n.overflowX=c.overflow[1],n.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],$b.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(o?"hide":"show")){if("show"!==e||!p||void 0===p[d])continue;o=!0}m[d]=p&&p[d]||_.style(a,d)}else j=void 0;if(_.isEmptyObject(m))"inline"===("none"===j?u(a.nodeName):j)&&(n.display=j);else{p?"hidden"in p&&(o=p.hidden):p=rb.access(a,"fxshow",{}),f&&(p.hidden=!o),o?_(a).show():l.done(function(){_(a).hide()}),l.done(function(){var b;rb.remove(a,"fxshow");for(b in m)_.style(a,b,m[b])});for(d in m)g=F(o?p[d]:0,d,l),d in p||(p[d]=g.start,o&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function H(a,b){var c,d,e,f,g;for(c in a)if(d=_.camelCase(c),e=b[d],f=a[c],_.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=_.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function I(a,b,c){var d,e,f=0,g=bc.length,h=_.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=Yb||D(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:_.extend({},b),opts:_.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:Yb||D(),duration:c.duration,tweens:[],createTween:function(b,c){var d=_.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(H(k,j.opts.specialEasing);g>f;f++)if(d=bc[f].call(j,a,k,j.opts))return d;return _.map(k,F,j),_.isFunction(j.opts.start)&&j.opts.start.call(a,j),_.fx.timer(_.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}function J(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(nb)||[];if(_.isFunction(c))for(;d=f[e++];)"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function K(a,b,c,d){function e(h){var i;return f[h]=!0,_.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||g||f[j]?g?!(i=j):void 0:(b.dataTypes.unshift(j),e(j),!1)}),i}var f={},g=a===vc;return e(b.dataTypes[0])||!f["*"]&&e("*")}function L(a,b){var c,d,e=_.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&_.extend(!0,a,d),a}function M(a,b,c){for(var d,e,f,g,h=a.contents,i=a.dataTypes;"*"===i[0];)i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function N(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];for(f=k.shift();f;)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}function O(a,b,c,d){var e;if(_.isArray(b))_.each(b,function(b,e){c||zc.test(a)?d(a,e):O(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==_.type(b))d(a,b);else for(e in b)O(a+"["+e+"]",b[e],c,d)}function P(a){return _.isWindow(a)?a:9===a.nodeType&&a.defaultView}var Q=[],R=Q.slice,S=Q.concat,T=Q.push,U=Q.indexOf,V={},W=V.toString,X=V.hasOwnProperty,Y={},Z=a.document,$="2.1.1",_=function(a,b){return new _.fn.init(a,b)},ab=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,bb=/^-ms-/,cb=/-([\da-z])/gi,db=function(a,b){return b.toUpperCase()};_.fn=_.prototype={jquery:$,constructor:_,selector:"",length:0,toArray:function(){return R.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:R.call(this)},pushStack:function(a){var b=_.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return _.each(this,a,b)},map:function(a){return this.pushStack(_.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(R.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:T,sort:Q.sort,splice:Q.splice},_.extend=_.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||_.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(_.isPlainObject(d)||(e=_.isArray(d)))?(e?(e=!1,f=c&&_.isArray(c)?c:[]):f=c&&_.isPlainObject(c)?c:{},g[b]=_.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},_.extend({expando:"jQuery"+($+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===_.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!_.isArray(a)&&a-parseFloat(a)>=0},isPlainObject:function(a){return"object"!==_.type(a)||a.nodeType||_.isWindow(a)?!1:a.constructor&&!X.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?V[W.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=_.trim(a),a&&(1===a.indexOf("use strict")?(b=Z.createElement("script"),b.text=a,Z.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(bb,"ms-").replace(cb,db)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,d){var e,f=0,g=a.length,h=c(a);if(d){if(h)for(;g>f&&(e=b.apply(a[f],d),e!==!1);f++);else for(f in a)if(e=b.apply(a[f],d),e===!1)break}else if(h)for(;g>f&&(e=b.call(a[f],f,a[f]),e!==!1);f++);else for(f in a)if(e=b.call(a[f],f,a[f]),e===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(ab,"")},makeArray:function(a,b){var d=b||[];return null!=a&&(c(Object(a))?_.merge(d,"string"==typeof a?[a]:a):T.call(d,a)),d},inArray:function(a,b,c){return null==b?-1:U.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,d){var e,f=0,g=a.length,h=c(a),i=[];if(h)for(;g>f;f++)e=b(a[f],f,d),null!=e&&i.push(e);else for(f in a)e=b(a[f],f,d),null!=e&&i.push(e);return S.apply([],i)},guid:1,proxy:function(a,b){var c,d,e;return"string"==typeof b&&(c=a[b],b=a,a=c),_.isFunction(a)?(d=R.call(arguments,2),e=function(){return a.apply(b||this,d.concat(R.call(arguments)))},e.guid=a.guid=a.guid||_.guid++,e):void 0},now:Date.now,support:Y}),_.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){V["[object "+b+"]"]=b.toLowerCase()});var eb=function(a){function b(a,b,c,d){var e,f,g,h,i,j,l,n,o,p;if((b?b.ownerDocument||b:O)!==G&&F(b),b=b||G,c=c||[],!a||"string"!=typeof a)return c;if(1!==(h=b.nodeType)&&9!==h)return[];if(I&&!d){if(e=sb.exec(a))if(g=e[1]){if(9===h){if(f=b.getElementById(g),!f||!f.parentNode)return c;if(f.id===g)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(g))&&M(b,f)&&f.id===g)return c.push(f),c}else{if(e[2])return _.apply(c,b.getElementsByTagName(a)),c;if((g=e[3])&&v.getElementsByClassName&&b.getElementsByClassName)return _.apply(c,b.getElementsByClassName(g)),c}if(v.qsa&&(!J||!J.test(a))){if(n=l=N,o=b,p=9===h&&a,1===h&&"object"!==b.nodeName.toLowerCase()){for(j=z(a),(l=b.getAttribute("id"))?n=l.replace(ub,"\\$&"):b.setAttribute("id",n),n="[id='"+n+"'] ",i=j.length;i--;)j[i]=n+m(j[i]);o=tb.test(a)&&k(b.parentNode)||b,p=j.join(",")}if(p)try{return _.apply(c,o.querySelectorAll(p)),c}catch(q){}finally{l||b.removeAttribute("id")}}}return B(a.replace(ib,"$1"),b,c,d)}function c(){function a(c,d){return b.push(c+" ")>w.cacheLength&&delete a[b.shift()],a[c+" "]=d}var b=[];return a}function d(a){return a[N]=!0,a}function e(a){var b=G.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function f(a,b){for(var c=a.split("|"),d=a.length;d--;)w.attrHandle[c[d]]=b}function g(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||W)-(~a.sourceIndex||W);if(d)return d;if(c)for(;c=c.nextSibling;)if(c===b)return-1;return a?1:-1}function h(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function i(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function j(a){return d(function(b){return b=+b,d(function(c,d){for(var e,f=a([],c.length,b),g=f.length;g--;)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function k(a){return a&&typeof a.getElementsByTagName!==V&&a}function l(){}function m(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function n(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=Q++;return b.first?function(b,c,f){for(;b=b[d];)if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[P,f];if(g){for(;b=b[d];)if((1===b.nodeType||e)&&a(b,c,g))return!0}else for(;b=b[d];)if(1===b.nodeType||e){if(i=b[N]||(b[N]={}),(h=i[d])&&h[0]===P&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function o(a){return a.length>1?function(b,c,d){for(var e=a.length;e--;)if(!a[e](b,c,d))return!1;return!0}:a[0]}function p(a,c,d){for(var e=0,f=c.length;f>e;e++)b(a,c[e],d);return d}function q(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function r(a,b,c,e,f,g){return e&&!e[N]&&(e=r(e)),f&&!f[N]&&(f=r(f,g)),d(function(d,g,h,i){var j,k,l,m=[],n=[],o=g.length,r=d||p(b||"*",h.nodeType?[h]:h,[]),s=!a||!d&&b?r:q(r,m,a,h,i),t=c?f||(d?a:o||e)?[]:g:s;if(c&&c(s,t,h,i),e)for(j=q(t,n),e(j,[],h,i),k=j.length;k--;)(l=j[k])&&(t[n[k]]=!(s[n[k]]=l));if(d){if(f||a){if(f){for(j=[],k=t.length;k--;)(l=t[k])&&j.push(s[k]=l);f(null,t=[],j,i)}for(k=t.length;k--;)(l=t[k])&&(j=f?bb.call(d,l):m[k])>-1&&(d[j]=!(g[j]=l))}}else t=q(t===g?t.splice(o,t.length):t),f?f(null,g,t,i):_.apply(g,t)})}function s(a){for(var b,c,d,e=a.length,f=w.relative[a[0].type],g=f||w.relative[" "],h=f?1:0,i=n(function(a){return a===b},g,!0),j=n(function(a){return bb.call(b,a)>-1},g,!0),k=[function(a,c,d){return!f&&(d||c!==C)||((b=c).nodeType?i(a,c,d):j(a,c,d))}];e>h;h++)if(c=w.relative[a[h].type])k=[n(o(k),c)];else{if(c=w.filter[a[h].type].apply(null,a[h].matches),c[N]){for(d=++h;e>d&&!w.relative[a[d].type];d++);return r(h>1&&o(k),h>1&&m(a.slice(0,h-1).concat({value:" "===a[h-2].type?"*":""})).replace(ib,"$1"),c,d>h&&s(a.slice(h,d)),e>d&&s(a=a.slice(d)),e>d&&m(a))}k.push(c)}return o(k)}function t(a,c){var e=c.length>0,f=a.length>0,g=function(d,g,h,i,j){var k,l,m,n=0,o="0",p=d&&[],r=[],s=C,t=d||f&&w.find.TAG("*",j),u=P+=null==s?1:Math.random()||.1,v=t.length;for(j&&(C=g!==G&&g);o!==v&&null!=(k=t[o]);o++){if(f&&k){for(l=0;m=a[l++];)if(m(k,g,h)){i.push(k);break}j&&(P=u)}e&&((k=!m&&k)&&n--,d&&p.push(k))}if(n+=o,e&&o!==n){for(l=0;m=c[l++];)m(p,r,g,h);if(d){if(n>0)for(;o--;)p[o]||r[o]||(r[o]=Z.call(i));r=q(r)}_.apply(i,r),j&&!d&&r.length>0&&n+c.length>1&&b.uniqueSort(i)}return j&&(P=u,C=s),p};return e?d(g):g}var u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N="sizzle"+-new Date,O=a.document,P=0,Q=0,R=c(),S=c(),T=c(),U=function(a,b){return a===b&&(E=!0),0},V="undefined",W=1<<31,X={}.hasOwnProperty,Y=[],Z=Y.pop,$=Y.push,_=Y.push,ab=Y.slice,bb=Y.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},cb="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",db="[\\x20\\t\\r\\n\\f]",eb="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",fb=eb.replace("w","w#"),gb="\\["+db+"*("+eb+")(?:"+db+"*([*^$|!~]?=)"+db+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+fb+"))|)"+db+"*\\]",hb=":("+eb+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+gb+")*)|.*)\\)|)",ib=new RegExp("^"+db+"+|((?:^|[^\\\\])(?:\\\\.)*)"+db+"+$","g"),jb=new RegExp("^"+db+"*,"+db+"*"),kb=new RegExp("^"+db+"*([>+~]|"+db+")"+db+"*"),lb=new RegExp("="+db+"*([^\\]'\"]*?)"+db+"*\\]","g"),mb=new RegExp(hb),nb=new RegExp("^"+fb+"$"),ob={ID:new RegExp("^#("+eb+")"),CLASS:new RegExp("^\\.("+eb+")"),TAG:new RegExp("^("+eb.replace("w","w*")+")"),ATTR:new RegExp("^"+gb),PSEUDO:new RegExp("^"+hb),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+db+"*(even|odd|(([+-]|)(\\d*)n|)"+db+"*(?:([+-]|)"+db+"*(\\d+)|))"+db+"*\\)|)","i"),bool:new RegExp("^(?:"+cb+")$","i"),needsContext:new RegExp("^"+db+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+db+"*((?:-\\d)?\\d*)"+db+"*\\)|)(?=[^-]|$)","i")},pb=/^(?:input|select|textarea|button)$/i,qb=/^h\d$/i,rb=/^[^{]+\{\s*\[native \w/,sb=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,tb=/[+~]/,ub=/'|\\/g,vb=new RegExp("\\\\([\\da-f]{1,6}"+db+"?|("+db+")|.)","ig"),wb=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{_.apply(Y=ab.call(O.childNodes),O.childNodes),Y[O.childNodes.length].nodeType}catch(xb){_={apply:Y.length?function(a,b){$.apply(a,ab.call(b))}:function(a,b){for(var c=a.length,d=0;a[c++]=b[d++];);a.length=c-1}}}v=b.support={},y=b.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},F=b.setDocument=function(a){var b,c=a?a.ownerDocument||a:O,d=c.defaultView;return c!==G&&9===c.nodeType&&c.documentElement?(G=c,H=c.documentElement,I=!y(c),d&&d!==d.top&&(d.addEventListener?d.addEventListener("unload",function(){F()},!1):d.attachEvent&&d.attachEvent("onunload",function(){F()})),v.attributes=e(function(a){return a.className="i",!a.getAttribute("className")}),v.getElementsByTagName=e(function(a){return a.appendChild(c.createComment("")),!a.getElementsByTagName("*").length}),v.getElementsByClassName=rb.test(c.getElementsByClassName)&&e(function(a){return a.innerHTML="<div class='a'></div><div class='a i'></div>",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),v.getById=e(function(a){return H.appendChild(a).id=N,!c.getElementsByName||!c.getElementsByName(N).length}),v.getById?(w.find.ID=function(a,b){if(typeof b.getElementById!==V&&I){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},w.filter.ID=function(a){var b=a.replace(vb,wb);return function(a){return a.getAttribute("id")===b}}):(delete w.find.ID,w.filter.ID=function(a){var b=a.replace(vb,wb);return function(a){var c=typeof a.getAttributeNode!==V&&a.getAttributeNode("id");return c&&c.value===b}}),w.find.TAG=v.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==V?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){for(;c=f[e++];)1===c.nodeType&&d.push(c);return d}return f},w.find.CLASS=v.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==V&&I?b.getElementsByClassName(a):void 0},K=[],J=[],(v.qsa=rb.test(c.querySelectorAll))&&(e(function(a){a.innerHTML="<select msallowclip=''><option selected=''></option></select>",a.querySelectorAll("[msallowclip^='']").length&&J.push("[*^$]="+db+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||J.push("\\["+db+"*(?:value|"+cb+")"),a.querySelectorAll(":checked").length||J.push(":checked")}),e(function(a){var b=c.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&J.push("name"+db+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||J.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),J.push(",.*:")})),(v.matchesSelector=rb.test(L=H.matches||H.webkitMatchesSelector||H.mozMatchesSelector||H.oMatchesSelector||H.msMatchesSelector))&&e(function(a){v.disconnectedMatch=L.call(a,"div"),L.call(a,"[s!='']:x"),K.push("!=",hb)}),J=J.length&&new RegExp(J.join("|")),K=K.length&&new RegExp(K.join("|")),b=rb.test(H.compareDocumentPosition),M=b||rb.test(H.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)for(;b=b.parentNode;)if(b===a)return!0;return!1},U=b?function(a,b){if(a===b)return E=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!v.sortDetached&&b.compareDocumentPosition(a)===d?a===c||a.ownerDocument===O&&M(O,a)?-1:b===c||b.ownerDocument===O&&M(O,b)?1:D?bb.call(D,a)-bb.call(D,b):0:4&d?-1:1)}:function(a,b){if(a===b)return E=!0,0;var d,e=0,f=a.parentNode,h=b.parentNode,i=[a],j=[b];if(!f||!h)return a===c?-1:b===c?1:f?-1:h?1:D?bb.call(D,a)-bb.call(D,b):0;if(f===h)return g(a,b);for(d=a;d=d.parentNode;)i.unshift(d);for(d=b;d=d.parentNode;)j.unshift(d);for(;i[e]===j[e];)e++;return e?g(i[e],j[e]):i[e]===O?-1:j[e]===O?1:0},c):G},b.matches=function(a,c){return b(a,null,null,c)},b.matchesSelector=function(a,c){if((a.ownerDocument||a)!==G&&F(a),c=c.replace(lb,"='$1']"),!(!v.matchesSelector||!I||K&&K.test(c)||J&&J.test(c)))try{var d=L.call(a,c);if(d||v.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return b(c,G,null,[a]).length>0},b.contains=function(a,b){return(a.ownerDocument||a)!==G&&F(a),M(a,b)},b.attr=function(a,b){(a.ownerDocument||a)!==G&&F(a);var c=w.attrHandle[b.toLowerCase()],d=c&&X.call(w.attrHandle,b.toLowerCase())?c(a,b,!I):void 0;return void 0!==d?d:v.attributes||!I?a.getAttribute(b):(d=a.getAttributeNode(b))&&d.specified?d.value:null},b.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},b.uniqueSort=function(a){var b,c=[],d=0,e=0;if(E=!v.detectDuplicates,D=!v.sortStable&&a.slice(0),a.sort(U),E){for(;b=a[e++];)b===a[e]&&(d=c.push(e));for(;d--;)a.splice(c[d],1)}return D=null,a},x=b.getText=function(a){var b,c="",d=0,e=a.nodeType;if(e){if(1===e||9===e||11===e){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=x(a)}else if(3===e||4===e)return a.nodeValue}else for(;b=a[d++];)c+=x(b);return c},w=b.selectors={cacheLength:50,createPseudo:d,match:ob,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(vb,wb),a[3]=(a[3]||a[4]||a[5]||"").replace(vb,wb),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||b.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&b.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return ob.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&mb.test(c)&&(b=z(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(vb,wb).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=R[a+" "];return b||(b=new RegExp("(^|"+db+")"+a+"("+db+"|$)"))&&R(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==V&&a.getAttribute("class")||"")})},ATTR:function(a,c,d){return function(e){var f=b.attr(e,a);return null==f?"!="===c:c?(f+="","="===c?f===d:"!="===c?f!==d:"^="===c?d&&0===f.indexOf(d):"*="===c?d&&f.indexOf(d)>-1:"$="===c?d&&f.slice(-d.length)===d:"~="===c?(" "+f+" ").indexOf(d)>-1:"|="===c?f===d||f.slice(0,d.length+1)===d+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){for(;p;){for(l=b;l=l[p];)if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){for(k=q[N]||(q[N]={}),j=k[a]||[],n=j[0]===P&&j[1],m=j[0]===P&&j[2],l=n&&q.childNodes[n];l=++n&&l&&l[p]||(m=n=0)||o.pop();)if(1===l.nodeType&&++m&&l===b){k[a]=[P,n,m];break}}else if(s&&(j=(b[N]||(b[N]={}))[a])&&j[0]===P)m=j[1];else for(;(l=++n&&l&&l[p]||(m=n=0)||o.pop())&&((h?l.nodeName.toLowerCase()!==r:1!==l.nodeType)||!++m||(s&&((l[N]||(l[N]={}))[a]=[P,m]),l!==b)););return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,c){var e,f=w.pseudos[a]||w.setFilters[a.toLowerCase()]||b.error("unsupported pseudo: "+a);return f[N]?f(c):f.length>1?(e=[a,a,"",c],w.setFilters.hasOwnProperty(a.toLowerCase())?d(function(a,b){for(var d,e=f(a,c),g=e.length;g--;)d=bb.call(a,e[g]),a[d]=!(b[d]=e[g])}):function(a){return f(a,0,e)}):f}},pseudos:{not:d(function(a){var b=[],c=[],e=A(a.replace(ib,"$1"));return e[N]?d(function(a,b,c,d){for(var f,g=e(a,null,d,[]),h=a.length;h--;)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,d,f){return b[0]=a,e(b,null,f,c),!c.pop()}}),has:d(function(a){return function(c){return b(a,c).length>0}}),contains:d(function(a){return function(b){return(b.textContent||b.innerText||x(b)).indexOf(a)>-1}}),lang:d(function(a){return nb.test(a||"")||b.error("unsupported lang: "+a),a=a.replace(vb,wb).toLowerCase(),function(b){var c;do if(c=I?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===H},focus:function(a){return a===G.activeElement&&(!G.hasFocus||G.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!w.pseudos.empty(a)},header:function(a){return qb.test(a.nodeName)},input:function(a){return pb.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:j(function(){return[0]}),last:j(function(a,b){return[b-1]}),eq:j(function(a,b,c){return[0>c?c+b:c]}),even:j(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:j(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:j(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:j(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},w.pseudos.nth=w.pseudos.eq;for(u in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})w.pseudos[u]=h(u);for(u in{submit:!0,reset:!0})w.pseudos[u]=i(u);return l.prototype=w.filters=w.pseudos,w.setFilters=new l,z=b.tokenize=function(a,c){var d,e,f,g,h,i,j,k=S[a+" "];if(k)return c?0:k.slice(0);for(h=a,i=[],j=w.preFilter;h;){(!d||(e=jb.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),d=!1,(e=kb.exec(h))&&(d=e.shift(),f.push({value:d,type:e[0].replace(ib," ")}),h=h.slice(d.length));for(g in w.filter)!(e=ob[g].exec(h))||j[g]&&!(e=j[g](e))||(d=e.shift(),f.push({value:d,type:g,matches:e}),h=h.slice(d.length));if(!d)break}return c?h.length:h?b.error(a):S(a,i).slice(0)},A=b.compile=function(a,b){var c,d=[],e=[],f=T[a+" "];if(!f){for(b||(b=z(a)),c=b.length;c--;)f=s(b[c]),f[N]?d.push(f):e.push(f);f=T(a,t(e,d)),f.selector=a}return f},B=b.select=function(a,b,c,d){var e,f,g,h,i,j="function"==typeof a&&a,l=!d&&z(a=j.selector||a);if(c=c||[],1===l.length){if(f=l[0]=l[0].slice(0),f.length>2&&"ID"===(g=f[0]).type&&v.getById&&9===b.nodeType&&I&&w.relative[f[1].type]){if(b=(w.find.ID(g.matches[0].replace(vb,wb),b)||[])[0],!b)return c;j&&(b=b.parentNode),a=a.slice(f.shift().value.length)}for(e=ob.needsContext.test(a)?0:f.length;e--&&(g=f[e],!w.relative[h=g.type]);)if((i=w.find[h])&&(d=i(g.matches[0].replace(vb,wb),tb.test(f[0].type)&&k(b.parentNode)||b))){if(f.splice(e,1),a=d.length&&m(f),!a)return _.apply(c,d),c;break}}return(j||A(a,l))(d,b,!I,c,tb.test(a)&&k(b.parentNode)||b),c},v.sortStable=N.split("").sort(U).join("")===N,v.detectDuplicates=!!E,F(),v.sortDetached=e(function(a){return 1&a.compareDocumentPosition(G.createElement("div"))}),e(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||f("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),v.attributes&&e(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||f("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),e(function(a){return null==a.getAttribute("disabled")})||f(cb,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),b}(a);_.find=eb,_.expr=eb.selectors,_.expr[":"]=_.expr.pseudos,_.unique=eb.uniqueSort,_.text=eb.getText,_.isXMLDoc=eb.isXML,_.contains=eb.contains;var fb=_.expr.match.needsContext,gb=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,hb=/^.[^:#\[\.,]*$/;_.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?_.find.matchesSelector(d,a)?[d]:[]:_.find.matches(a,_.grep(b,function(a){return 1===a.nodeType}))},_.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(_(a).filter(function(){for(b=0;c>b;b++)if(_.contains(e[b],this))return!0
}));for(b=0;c>b;b++)_.find(a,e[b],d);return d=this.pushStack(c>1?_.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(d(this,a||[],!1))},not:function(a){return this.pushStack(d(this,a||[],!0))},is:function(a){return!!d(this,"string"==typeof a&&fb.test(a)?_(a):a||[],!1).length}});var ib,jb=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,kb=_.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:jb.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||ib).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof _?b[0]:b,_.merge(this,_.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:Z,!0)),gb.test(c[1])&&_.isPlainObject(b))for(c in b)_.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=Z.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=Z,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):_.isFunction(a)?"undefined"!=typeof ib.ready?ib.ready(a):a(_):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),_.makeArray(a,this))};kb.prototype=_.fn,ib=_(Z);var lb=/^(?:parents|prev(?:Until|All))/,mb={children:!0,contents:!0,next:!0,prev:!0};_.extend({dir:function(a,b,c){for(var d=[],e=void 0!==c;(a=a[b])&&9!==a.nodeType;)if(1===a.nodeType){if(e&&_(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),_.fn.extend({has:function(a){var b=_(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(_.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=fb.test(a)||"string"!=typeof a?_(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&_.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?_.unique(f):f)},index:function(a){return a?"string"==typeof a?U.call(_(a),this[0]):U.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(_.unique(_.merge(this.get(),_(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}}),_.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return _.dir(a,"parentNode")},parentsUntil:function(a,b,c){return _.dir(a,"parentNode",c)},next:function(a){return e(a,"nextSibling")},prev:function(a){return e(a,"previousSibling")},nextAll:function(a){return _.dir(a,"nextSibling")},prevAll:function(a){return _.dir(a,"previousSibling")},nextUntil:function(a,b,c){return _.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return _.dir(a,"previousSibling",c)},siblings:function(a){return _.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return _.sibling(a.firstChild)},contents:function(a){return a.contentDocument||_.merge([],a.childNodes)}},function(a,b){_.fn[a]=function(c,d){var e=_.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=_.filter(d,e)),this.length>1&&(mb[a]||_.unique(e),lb.test(a)&&e.reverse()),this.pushStack(e)}});var nb=/\S+/g,ob={};_.Callbacks=function(a){a="string"==typeof a?ob[a]||f(a):_.extend({},a);var b,c,d,e,g,h,i=[],j=!a.once&&[],k=function(f){for(b=a.memory&&f,c=!0,h=e||0,e=0,g=i.length,d=!0;i&&g>h;h++)if(i[h].apply(f[0],f[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,i&&(j?j.length&&k(j.shift()):b?i=[]:l.disable())},l={add:function(){if(i){var c=i.length;!function f(b){_.each(b,function(b,c){var d=_.type(c);"function"===d?a.unique&&l.has(c)||i.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),d?g=i.length:b&&(e=c,k(b))}return this},remove:function(){return i&&_.each(arguments,function(a,b){for(var c;(c=_.inArray(b,i,c))>-1;)i.splice(c,1),d&&(g>=c&&g--,h>=c&&h--)}),this},has:function(a){return a?_.inArray(a,i)>-1:!(!i||!i.length)},empty:function(){return i=[],g=0,this},disable:function(){return i=j=b=void 0,this},disabled:function(){return!i},lock:function(){return j=void 0,b||l.disable(),this},locked:function(){return!j},fireWith:function(a,b){return!i||c&&!j||(b=b||[],b=[a,b.slice?b.slice():b],d?j.push(b):k(b)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!c}};return l},_.extend({Deferred:function(a){var b=[["resolve","done",_.Callbacks("once memory"),"resolved"],["reject","fail",_.Callbacks("once memory"),"rejected"],["notify","progress",_.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return _.Deferred(function(c){_.each(b,function(b,f){var g=_.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&_.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?_.extend(a,d):d}},e={};return d.pipe=d.then,_.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b,c,d,e=0,f=R.call(arguments),g=f.length,h=1!==g||a&&_.isFunction(a.promise)?g:0,i=1===h?a:_.Deferred(),j=function(a,c,d){return function(e){c[a]=this,d[a]=arguments.length>1?R.call(arguments):e,d===b?i.notifyWith(c,d):--h||i.resolveWith(c,d)}};if(g>1)for(b=new Array(g),c=new Array(g),d=new Array(g);g>e;e++)f[e]&&_.isFunction(f[e].promise)?f[e].promise().done(j(e,d,f)).fail(i.reject).progress(j(e,c,b)):--h;return h||i.resolveWith(d,f),i.promise()}});var pb;_.fn.ready=function(a){return _.ready.promise().done(a),this},_.extend({isReady:!1,readyWait:1,holdReady:function(a){a?_.readyWait++:_.ready(!0)},ready:function(a){(a===!0?--_.readyWait:_.isReady)||(_.isReady=!0,a!==!0&&--_.readyWait>0||(pb.resolveWith(Z,[_]),_.fn.triggerHandler&&(_(Z).triggerHandler("ready"),_(Z).off("ready"))))}}),_.ready.promise=function(b){return pb||(pb=_.Deferred(),"complete"===Z.readyState?setTimeout(_.ready):(Z.addEventListener("DOMContentLoaded",g,!1),a.addEventListener("load",g,!1))),pb.promise(b)},_.ready.promise();var qb=_.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===_.type(c)){e=!0;for(h in c)_.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,_.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(_(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};_.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType},h.uid=1,h.accepts=_.acceptData,h.prototype={key:function(a){if(!h.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=h.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,_.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(_.isEmptyObject(f))_.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,_.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{_.isArray(b)?d=b.concat(b.map(_.camelCase)):(e=_.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(nb)||[])),c=d.length;for(;c--;)delete g[d[c]]}},hasData:function(a){return!_.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var rb=new h,sb=new h,tb=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,ub=/([A-Z])/g;_.extend({hasData:function(a){return sb.hasData(a)||rb.hasData(a)},data:function(a,b,c){return sb.access(a,b,c)},removeData:function(a,b){sb.remove(a,b)},_data:function(a,b,c){return rb.access(a,b,c)},_removeData:function(a,b){rb.remove(a,b)}}),_.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=sb.get(f),1===f.nodeType&&!rb.get(f,"hasDataAttrs"))){for(c=g.length;c--;)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=_.camelCase(d.slice(5)),i(f,d,e[d])));rb.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){sb.set(this,a)}):qb(this,function(b){var c,d=_.camelCase(a);if(f&&void 0===b){if(c=sb.get(f,a),void 0!==c)return c;if(c=sb.get(f,d),void 0!==c)return c;if(c=i(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=sb.get(this,d);sb.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&sb.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){sb.remove(this,a)})}}),_.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=rb.get(a,b),c&&(!d||_.isArray(c)?d=rb.access(a,b,_.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=_.queue(a,b),d=c.length,e=c.shift(),f=_._queueHooks(a,b),g=function(){_.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return rb.get(a,c)||rb.access(a,c,{empty:_.Callbacks("once memory").add(function(){rb.remove(a,[b+"queue",c])})})}}),_.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?_.queue(this[0],a):void 0===b?this:this.each(function(){var c=_.queue(this,a,b);_._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&_.dequeue(this,a)})},dequeue:function(a){return this.each(function(){_.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=_.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};for("string"!=typeof a&&(b=a,a=void 0),a=a||"fx";g--;)c=rb.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var vb=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,wb=["Top","Right","Bottom","Left"],xb=function(a,b){return a=b||a,"none"===_.css(a,"display")||!_.contains(a.ownerDocument,a)},yb=/^(?:checkbox|radio)$/i;!function(){var a=Z.createDocumentFragment(),b=a.appendChild(Z.createElement("div")),c=Z.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),Y.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",Y.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var zb="undefined";Y.focusinBubbles="onfocusin"in a;var Ab=/^key/,Bb=/^(?:mouse|pointer|contextmenu)|click/,Cb=/^(?:focusinfocus|focusoutblur)$/,Db=/^([^.]*)(?:\.(.+)|)$/;_.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=rb.get(a);if(q)for(c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=_.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return typeof _!==zb&&_.event.triggered!==b.type?_.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(nb)||[""],j=b.length;j--;)h=Db.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=_.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=_.event.special[n]||{},k=_.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&_.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),_.event.global[n]=!0)},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=rb.hasData(a)&&rb.get(a);if(q&&(i=q.events)){for(b=(b||"").match(nb)||[""],j=b.length;j--;)if(h=Db.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){for(l=_.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;f--;)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||_.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)_.event.remove(a,n+b[j],c,d,!0);_.isEmptyObject(i)&&(delete q.handle,rb.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,j,k,l,m=[d||Z],n=X.call(b,"type")?b.type:b,o=X.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||Z,3!==d.nodeType&&8!==d.nodeType&&!Cb.test(n+_.event.triggered)&&(n.indexOf(".")>=0&&(o=n.split("."),n=o.shift(),o.sort()),j=n.indexOf(":")<0&&"on"+n,b=b[_.expando]?b:new _.Event(n,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=o.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:_.makeArray(c,[b]),l=_.event.special[n]||{},e||!l.trigger||l.trigger.apply(d,c)!==!1)){if(!e&&!l.noBubble&&!_.isWindow(d)){for(i=l.delegateType||n,Cb.test(i+n)||(g=g.parentNode);g;g=g.parentNode)m.push(g),h=g;h===(d.ownerDocument||Z)&&m.push(h.defaultView||h.parentWindow||a)}for(f=0;(g=m[f++])&&!b.isPropagationStopped();)b.type=f>1?i:l.bindType||n,k=(rb.get(g,"events")||{})[b.type]&&rb.get(g,"handle"),k&&k.apply(g,c),k=j&&g[j],k&&k.apply&&_.acceptData(g)&&(b.result=k.apply(g,c),b.result===!1&&b.preventDefault());return b.type=n,e||b.isDefaultPrevented()||l._default&&l._default.apply(m.pop(),c)!==!1||!_.acceptData(d)||j&&_.isFunction(d[n])&&!_.isWindow(d)&&(h=d[j],h&&(d[j]=null),_.event.triggered=n,d[n](),_.event.triggered=void 0,h&&(d[j]=h)),b.result}},dispatch:function(a){a=_.event.fix(a);var b,c,d,e,f,g=[],h=R.call(arguments),i=(rb.get(this,"events")||{})[a.type]||[],j=_.event.special[a.type]||{};if(h[0]=a,a.delegateTarget=this,!j.preDispatch||j.preDispatch.call(this,a)!==!1){for(g=_.event.handlers.call(this,a,i),b=0;(e=g[b++])&&!a.isPropagationStopped();)for(a.currentTarget=e.elem,c=0;(f=e.handlers[c++])&&!a.isImmediatePropagationStopped();)(!a.namespace_re||a.namespace_re.test(f.namespace))&&(a.handleObj=f,a.data=f.data,d=((_.event.special[f.origType]||{}).handle||f.handler).apply(e.elem,h),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()));return j.postDispatch&&j.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?_(e,this).index(i)>=0:_.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button;return null==a.pageX&&null!=b.clientX&&(c=a.target.ownerDocument||Z,d=c.documentElement,e=c.body,a.pageX=b.clientX+(d&&d.scrollLeft||e&&e.scrollLeft||0)-(d&&d.clientLeft||e&&e.clientLeft||0),a.pageY=b.clientY+(d&&d.scrollTop||e&&e.scrollTop||0)-(d&&d.clientTop||e&&e.clientTop||0)),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},fix:function(a){if(a[_.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];for(g||(this.fixHooks[e]=g=Bb.test(e)?this.mouseHooks:Ab.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new _.Event(f),b=d.length;b--;)c=d[b],a[c]=f[c];return a.target||(a.target=Z),3===a.target.nodeType&&(a.target=a.target.parentNode),g.filter?g.filter(a,f):a},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==l()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===l()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&_.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(a){return _.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=_.extend(new _.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?_.event.trigger(e,null,b):_.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},_.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)},_.Event=function(a,b){return this instanceof _.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?j:k):this.type=a,b&&_.extend(this,b),this.timeStamp=a&&a.timeStamp||_.now(),void(this[_.expando]=!0)):new _.Event(a,b)},_.Event.prototype={isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=j,a&&a.preventDefault&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=j,a&&a.stopPropagation&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=j,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},_.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){_.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!_.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),Y.focusinBubbles||_.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){_.event.simulate(b,a.target,_.event.fix(a),!0)};_.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=rb.access(d,b);e||d.addEventListener(a,c,!0),rb.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=rb.access(d,b)-1;e?rb.access(d,b,e):(d.removeEventListener(a,c,!0),rb.remove(d,b))}}}),_.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(g in a)this.on(g,b,c,a[g],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=k;else if(!d)return this;return 1===e&&(f=d,d=function(a){return _().off(a),f.apply(this,arguments)},d.guid=f.guid||(f.guid=_.guid++)),this.each(function(){_.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,_(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=k),this.each(function(){_.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){_.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?_.event.trigger(a,b,c,!0):void 0}});var Eb=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,Fb=/<([\w:]+)/,Gb=/<|&#?\w+;/,Hb=/<(?:script|style|link)/i,Ib=/checked\s*(?:[^=]|=\s*.checked.)/i,Jb=/^$|\/(?:java|ecma)script/i,Kb=/^true\/(.*)/,Lb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,Mb={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};Mb.optgroup=Mb.option,Mb.tbody=Mb.tfoot=Mb.colgroup=Mb.caption=Mb.thead,Mb.th=Mb.td,_.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=_.contains(a.ownerDocument,a);if(!(Y.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||_.isXMLDoc(a)))for(g=r(h),f=r(a),d=0,e=f.length;e>d;d++)s(f[d],g[d]);if(b)if(c)for(f=f||r(a),g=g||r(h),d=0,e=f.length;e>d;d++)q(f[d],g[d]);else q(a,h);return g=r(h,"script"),g.length>0&&p(g,!i&&r(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,n=a.length;n>m;m++)if(e=a[m],e||0===e)if("object"===_.type(e))_.merge(l,e.nodeType?[e]:e);else if(Gb.test(e)){for(f=f||k.appendChild(b.createElement("div")),g=(Fb.exec(e)||["",""])[1].toLowerCase(),h=Mb[g]||Mb._default,f.innerHTML=h[1]+e.replace(Eb,"<$1></$2>")+h[2],j=h[0];j--;)f=f.lastChild;_.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));for(k.textContent="",m=0;e=l[m++];)if((!d||-1===_.inArray(e,d))&&(i=_.contains(e.ownerDocument,e),f=r(k.appendChild(e),"script"),i&&p(f),c))for(j=0;e=f[j++];)Jb.test(e.type||"")&&c.push(e);return k},cleanData:function(a){for(var b,c,d,e,f=_.event.special,g=0;void 0!==(c=a[g]);g++){if(_.acceptData(c)&&(e=c[rb.expando],e&&(b=rb.cache[e]))){if(b.events)for(d in b.events)f[d]?_.event.remove(c,d):_.removeEvent(c,d,b.handle);rb.cache[e]&&delete rb.cache[e]}delete sb.cache[c[sb.expando]]}}}),_.fn.extend({text:function(a){return qb(this,function(a){return void 0===a?_.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=m(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=m(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?_.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||_.cleanData(r(c)),c.parentNode&&(b&&_.contains(c.ownerDocument,c)&&p(r(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(_.cleanData(r(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return _.clone(this,a,b)})},html:function(a){return qb(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!Hb.test(a)&&!Mb[(Fb.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Eb,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(_.cleanData(r(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,_.cleanData(r(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=S.apply([],a);var c,d,e,f,g,h,i=0,j=this.length,k=this,l=j-1,m=a[0],p=_.isFunction(m);if(p||j>1&&"string"==typeof m&&!Y.checkClone&&Ib.test(m))return this.each(function(c){var d=k.eq(c);p&&(a[0]=m.call(this,c,d.html())),d.domManip(a,b)});if(j&&(c=_.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(e=_.map(r(c,"script"),n),f=e.length;j>i;i++)g=c,i!==l&&(g=_.clone(g,!0,!0),f&&_.merge(e,r(g,"script"))),b.call(this[i],g,i);if(f)for(h=e[e.length-1].ownerDocument,_.map(e,o),i=0;f>i;i++)g=e[i],Jb.test(g.type||"")&&!rb.access(g,"globalEval")&&_.contains(h,g)&&(g.src?_._evalUrl&&_._evalUrl(g.src):_.globalEval(g.textContent.replace(Lb,"")))}return this}}),_.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){_.fn[a]=function(a){for(var c,d=[],e=_(a),f=e.length-1,g=0;f>=g;g++)c=g===f?this:this.clone(!0),_(e[g])[b](c),T.apply(d,c.get());return this.pushStack(d)}});var Nb,Ob={},Pb=/^margin/,Qb=new RegExp("^("+vb+")(?!px)[a-z%]+$","i"),Rb=function(a){return a.ownerDocument.defaultView.getComputedStyle(a,null)};!function(){function b(){g.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",g.innerHTML="",e.appendChild(f);var b=a.getComputedStyle(g,null);c="1%"!==b.top,d="4px"===b.width,e.removeChild(f)}var c,d,e=Z.documentElement,f=Z.createElement("div"),g=Z.createElement("div");g.style&&(g.style.backgroundClip="content-box",g.cloneNode(!0).style.backgroundClip="",Y.clearCloneStyle="content-box"===g.style.backgroundClip,f.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",f.appendChild(g),a.getComputedStyle&&_.extend(Y,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return null==d&&b(),d},reliableMarginRight:function(){var b,c=g.appendChild(Z.createElement("div"));return c.style.cssText=g.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",c.style.marginRight=c.style.width="0",g.style.width="1px",e.appendChild(f),b=!parseFloat(a.getComputedStyle(c,null).marginRight),e.removeChild(f),b}}))}(),_.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Sb=/^(none|table(?!-c[ea]).+)/,Tb=new RegExp("^("+vb+")(.*)$","i"),Ub=new RegExp("^([+-])=("+vb+")","i"),Vb={position:"absolute",visibility:"hidden",display:"block"},Wb={letterSpacing:"0",fontWeight:"400"},Xb=["Webkit","O","Moz","ms"];_.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=v(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=_.camelCase(b),i=a.style;return b=_.cssProps[h]||(_.cssProps[h]=x(i,h)),g=_.cssHooks[b]||_.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=Ub.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(_.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||_.cssNumber[h]||(c+="px"),Y.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=_.camelCase(b);return b=_.cssProps[h]||(_.cssProps[h]=x(a.style,h)),g=_.cssHooks[b]||_.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=v(a,b,d)),"normal"===e&&b in Wb&&(e=Wb[b]),""===c||c?(f=parseFloat(e),c===!0||_.isNumeric(f)?f||0:e):e}}),_.each(["height","width"],function(a,b){_.cssHooks[b]={get:function(a,c,d){return c?Sb.test(_.css(a,"display"))&&0===a.offsetWidth?_.swap(a,Vb,function(){return A(a,b,d)}):A(a,b,d):void 0},set:function(a,c,d){var e=d&&Rb(a);return y(a,c,d?z(a,b,d,"border-box"===_.css(a,"boxSizing",!1,e),e):0)}}}),_.cssHooks.marginRight=w(Y.reliableMarginRight,function(a,b){return b?_.swap(a,{display:"inline-block"},v,[a,"marginRight"]):void 0}),_.each({margin:"",padding:"",border:"Width"},function(a,b){_.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+wb[d]+b]=f[d]||f[d-2]||f[0];return e}},Pb.test(a)||(_.cssHooks[a+b].set=y)}),_.fn.extend({css:function(a,b){return qb(this,function(a,b,c){var d,e,f={},g=0;if(_.isArray(b)){for(d=Rb(a),e=b.length;e>g;g++)f[b[g]]=_.css(a,b[g],!1,d);return f}return void 0!==c?_.style(a,b,c):_.css(a,b)},a,b,arguments.length>1)},show:function(){return B(this,!0)},hide:function(){return B(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){xb(this)?_(this).show():_(this).hide()})}}),_.Tween=C,C.prototype={constructor:C,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(_.cssNumber[c]?"":"px")},cur:function(){var a=C.propHooks[this.prop];return a&&a.get?a.get(this):C.propHooks._default.get(this)},run:function(a){var b,c=C.propHooks[this.prop];return this.pos=b=this.options.duration?_.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):C.propHooks._default.set(this),this}},C.prototype.init.prototype=C.prototype,C.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=_.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){_.fx.step[a.prop]?_.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[_.cssProps[a.prop]]||_.cssHooks[a.prop])?_.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},C.propHooks.scrollTop=C.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},_.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},_.fx=C.prototype.init,_.fx.step={};var Yb,Zb,$b=/^(?:toggle|show|hide)$/,_b=new RegExp("^(?:([+-])=|)("+vb+")([a-z%]*)$","i"),ac=/queueHooks$/,bc=[G],cc={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=_b.exec(b),f=e&&e[3]||(_.cssNumber[a]?"":"px"),g=(_.cssNumber[a]||"px"!==f&&+d)&&_b.exec(_.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,_.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};_.Animation=_.extend(I,{tweener:function(a,b){_.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],cc[c]=cc[c]||[],cc[c].unshift(b)},prefilter:function(a,b){b?bc.unshift(a):bc.push(a)}}),_.speed=function(a,b,c){var d=a&&"object"==typeof a?_.extend({},a):{complete:c||!c&&b||_.isFunction(a)&&a,duration:a,easing:c&&b||b&&!_.isFunction(b)&&b};return d.duration=_.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in _.fx.speeds?_.fx.speeds[d.duration]:_.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){_.isFunction(d.old)&&d.old.call(this),d.queue&&_.dequeue(this,d.queue)},d},_.fn.extend({fadeTo:function(a,b,c,d){return this.filter(xb).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=_.isEmptyObject(a),f=_.speed(b,c,d),g=function(){var b=I(this,_.extend({},a),f);(e||rb.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=_.timers,g=rb.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&ac.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&_.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=rb.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=_.timers,g=d?d.length:0;for(c.finish=!0,_.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),_.each(["toggle","show","hide"],function(a,b){var c=_.fn[b];
_.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(E(b,!0),a,d,e)}}),_.each({slideDown:E("show"),slideUp:E("hide"),slideToggle:E("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){_.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),_.timers=[],_.fx.tick=function(){var a,b=0,c=_.timers;for(Yb=_.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||_.fx.stop(),Yb=void 0},_.fx.timer=function(a){_.timers.push(a),a()?_.fx.start():_.timers.pop()},_.fx.interval=13,_.fx.start=function(){Zb||(Zb=setInterval(_.fx.tick,_.fx.interval))},_.fx.stop=function(){clearInterval(Zb),Zb=null},_.fx.speeds={slow:600,fast:200,_default:400},_.fn.delay=function(a,b){return a=_.fx?_.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a=Z.createElement("input"),b=Z.createElement("select"),c=b.appendChild(Z.createElement("option"));a.type="checkbox",Y.checkOn=""!==a.value,Y.optSelected=c.selected,b.disabled=!0,Y.optDisabled=!c.disabled,a=Z.createElement("input"),a.value="t",a.type="radio",Y.radioValue="t"===a.value}();var dc,ec,fc=_.expr.attrHandle;_.fn.extend({attr:function(a,b){return qb(this,_.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){_.removeAttr(this,a)})}}),_.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===zb?_.prop(a,b,c):(1===f&&_.isXMLDoc(a)||(b=b.toLowerCase(),d=_.attrHooks[b]||(_.expr.match.bool.test(b)?ec:dc)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=_.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void _.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(nb);if(f&&1===a.nodeType)for(;c=f[e++];)d=_.propFix[c]||c,_.expr.match.bool.test(c)&&(a[d]=!1),a.removeAttribute(c)},attrHooks:{type:{set:function(a,b){if(!Y.radioValue&&"radio"===b&&_.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),ec={set:function(a,b,c){return b===!1?_.removeAttr(a,c):a.setAttribute(c,c),c}},_.each(_.expr.match.bool.source.match(/\w+/g),function(a,b){var c=fc[b]||_.find.attr;fc[b]=function(a,b,d){var e,f;return d||(f=fc[b],fc[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,fc[b]=f),e}});var gc=/^(?:input|select|textarea|button)$/i;_.fn.extend({prop:function(a,b){return qb(this,_.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[_.propFix[a]||a]})}}),_.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!_.isXMLDoc(a),f&&(b=_.propFix[b]||b,e=_.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){return a.hasAttribute("tabindex")||gc.test(a.nodeName)||a.href?a.tabIndex:-1}}}}),Y.optSelected||(_.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),_.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){_.propFix[this.toLowerCase()]=this});var hc=/[\t\r\n\f]/g;_.fn.extend({addClass:function(a){var b,c,d,e,f,g,h="string"==typeof a&&a,i=0,j=this.length;if(_.isFunction(a))return this.each(function(b){_(this).addClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(nb)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(hc," "):" ")){for(f=0;e=b[f++];)d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=_.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0===arguments.length||"string"==typeof a&&a,i=0,j=this.length;if(_.isFunction(a))return this.each(function(b){_(this).removeClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(nb)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(hc," "):"")){for(f=0;e=b[f++];)for(;d.indexOf(" "+e+" ")>=0;)d=d.replace(" "+e+" "," ");g=a?_.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(_.isFunction(a)?function(c){_(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c)for(var b,d=0,e=_(this),f=a.match(nb)||[];b=f[d++];)e.hasClass(b)?e.removeClass(b):e.addClass(b);else(c===zb||"boolean"===c)&&(this.className&&rb.set(this,"__className__",this.className),this.className=this.className||a===!1?"":rb.get(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(hc," ").indexOf(b)>=0)return!0;return!1}});var ic=/\r/g;_.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=_.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,_(this).val()):a,null==e?e="":"number"==typeof e?e+="":_.isArray(e)&&(e=_.map(e,function(a){return null==a?"":a+""})),b=_.valHooks[this.type]||_.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=_.valHooks[e.type]||_.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(ic,""):null==c?"":c)}}}),_.extend({valHooks:{option:{get:function(a){var b=_.find.attr(a,"value");return null!=b?b:_.trim(_.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(Y.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&_.nodeName(c.parentNode,"optgroup"))){if(b=_(c).val(),f)return b;g.push(b)}return g},set:function(a,b){for(var c,d,e=a.options,f=_.makeArray(b),g=e.length;g--;)d=e[g],(d.selected=_.inArray(d.value,f)>=0)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),_.each(["radio","checkbox"],function(){_.valHooks[this]={set:function(a,b){return _.isArray(b)?a.checked=_.inArray(_(a).val(),b)>=0:void 0}},Y.checkOn||(_.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})}),_.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){_.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),_.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var jc=_.now(),kc=/\?/;_.parseJSON=function(a){return JSON.parse(a+"")},_.parseXML=function(a){var b,c;if(!a||"string"!=typeof a)return null;try{c=new DOMParser,b=c.parseFromString(a,"text/xml")}catch(d){b=void 0}return(!b||b.getElementsByTagName("parsererror").length)&&_.error("Invalid XML: "+a),b};var lc,mc,nc=/#.*$/,oc=/([?&])_=[^&]*/,pc=/^(.*?):[ \t]*([^\r\n]*)$/gm,qc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,rc=/^(?:GET|HEAD)$/,sc=/^\/\//,tc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,uc={},vc={},wc="*/".concat("*");try{mc=location.href}catch(xc){mc=Z.createElement("a"),mc.href="",mc=mc.href}lc=tc.exec(mc.toLowerCase())||[],_.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:mc,type:"GET",isLocal:qc.test(lc[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":wc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":_.parseJSON,"text xml":_.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?L(L(a,_.ajaxSettings),b):L(_.ajaxSettings,a)},ajaxPrefilter:J(uc),ajaxTransport:J(vc),ajax:function(a,b){function c(a,b,c,g){var i,k,r,s,u,w=b;2!==t&&(t=2,h&&clearTimeout(h),d=void 0,f=g||"",v.readyState=a>0?4:0,i=a>=200&&300>a||304===a,c&&(s=M(l,v,c)),s=N(l,s,v,i),i?(l.ifModified&&(u=v.getResponseHeader("Last-Modified"),u&&(_.lastModified[e]=u),u=v.getResponseHeader("etag"),u&&(_.etag[e]=u)),204===a||"HEAD"===l.type?w="nocontent":304===a?w="notmodified":(w=s.state,k=s.data,r=s.error,i=!r)):(r=w,(a||!w)&&(w="error",0>a&&(a=0))),v.status=a,v.statusText=(b||w)+"",i?o.resolveWith(m,[k,w,v]):o.rejectWith(m,[v,w,r]),v.statusCode(q),q=void 0,j&&n.trigger(i?"ajaxSuccess":"ajaxError",[v,l,i?k:r]),p.fireWith(m,[v,w]),j&&(n.trigger("ajaxComplete",[v,l]),--_.active||_.event.trigger("ajaxStop")))}"object"==typeof a&&(b=a,a=void 0),b=b||{};var d,e,f,g,h,i,j,k,l=_.ajaxSetup({},b),m=l.context||l,n=l.context&&(m.nodeType||m.jquery)?_(m):_.event,o=_.Deferred(),p=_.Callbacks("once memory"),q=l.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!g)for(g={};b=pc.exec(f);)g[b[1].toLowerCase()]=b[2];b=g[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(l.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return d&&d.abort(b),c(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,l.url=((a||l.url||mc)+"").replace(nc,"").replace(sc,lc[1]+"//"),l.type=b.method||b.type||l.method||l.type,l.dataTypes=_.trim(l.dataType||"*").toLowerCase().match(nb)||[""],null==l.crossDomain&&(i=tc.exec(l.url.toLowerCase()),l.crossDomain=!(!i||i[1]===lc[1]&&i[2]===lc[2]&&(i[3]||("http:"===i[1]?"80":"443"))===(lc[3]||("http:"===lc[1]?"80":"443")))),l.data&&l.processData&&"string"!=typeof l.data&&(l.data=_.param(l.data,l.traditional)),K(uc,l,b,v),2===t)return v;j=l.global,j&&0===_.active++&&_.event.trigger("ajaxStart"),l.type=l.type.toUpperCase(),l.hasContent=!rc.test(l.type),e=l.url,l.hasContent||(l.data&&(e=l.url+=(kc.test(e)?"&":"?")+l.data,delete l.data),l.cache===!1&&(l.url=oc.test(e)?e.replace(oc,"$1_="+jc++):e+(kc.test(e)?"&":"?")+"_="+jc++)),l.ifModified&&(_.lastModified[e]&&v.setRequestHeader("If-Modified-Since",_.lastModified[e]),_.etag[e]&&v.setRequestHeader("If-None-Match",_.etag[e])),(l.data&&l.hasContent&&l.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",l.contentType),v.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+("*"!==l.dataTypes[0]?", "+wc+"; q=0.01":""):l.accepts["*"]);for(k in l.headers)v.setRequestHeader(k,l.headers[k]);if(l.beforeSend&&(l.beforeSend.call(m,v,l)===!1||2===t))return v.abort();u="abort";for(k in{success:1,error:1,complete:1})v[k](l[k]);if(d=K(vc,l,b,v)){v.readyState=1,j&&n.trigger("ajaxSend",[v,l]),l.async&&l.timeout>0&&(h=setTimeout(function(){v.abort("timeout")},l.timeout));try{t=1,d.send(r,c)}catch(w){if(!(2>t))throw w;c(-1,w)}}else c(-1,"No Transport");return v},getJSON:function(a,b,c){return _.get(a,b,c,"json")},getScript:function(a,b){return _.get(a,void 0,b,"script")}}),_.each(["get","post"],function(a,b){_[b]=function(a,c,d,e){return _.isFunction(c)&&(e=e||d,d=c,c=void 0),_.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),_.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){_.fn[b]=function(a){return this.on(b,a)}}),_._evalUrl=function(a){return _.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},_.fn.extend({wrapAll:function(a){var b;return _.isFunction(a)?this.each(function(b){_(this).wrapAll(a.call(this,b))}):(this[0]&&(b=_(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){for(var a=this;a.firstElementChild;)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return this.each(_.isFunction(a)?function(b){_(this).wrapInner(a.call(this,b))}:function(){var b=_(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=_.isFunction(a);return this.each(function(c){_(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){_.nodeName(this,"body")||_(this).replaceWith(this.childNodes)}).end()}}),_.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0},_.expr.filters.visible=function(a){return!_.expr.filters.hidden(a)};var yc=/%20/g,zc=/\[\]$/,Ac=/\r?\n/g,Bc=/^(?:submit|button|image|reset|file)$/i,Cc=/^(?:input|select|textarea|keygen)/i;_.param=function(a,b){var c,d=[],e=function(a,b){b=_.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=_.ajaxSettings&&_.ajaxSettings.traditional),_.isArray(a)||a.jquery&&!_.isPlainObject(a))_.each(a,function(){e(this.name,this.value)});else for(c in a)O(c,a[c],b,e);return d.join("&").replace(yc,"+")},_.fn.extend({serialize:function(){return _.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=_.prop(this,"elements");return a?_.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!_(this).is(":disabled")&&Cc.test(this.nodeName)&&!Bc.test(a)&&(this.checked||!yb.test(a))}).map(function(a,b){var c=_(this).val();return null==c?null:_.isArray(c)?_.map(c,function(a){return{name:b.name,value:a.replace(Ac,"\r\n")}}):{name:b.name,value:c.replace(Ac,"\r\n")}}).get()}}),_.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(a){}};var Dc=0,Ec={},Fc={0:200,1223:204},Gc=_.ajaxSettings.xhr();a.ActiveXObject&&_(a).on("unload",function(){for(var a in Ec)Ec[a]()}),Y.cors=!!Gc&&"withCredentials"in Gc,Y.ajax=Gc=!!Gc,_.ajaxTransport(function(a){var b;return Y.cors||Gc&&!a.crossDomain?{send:function(c,d){var e,f=a.xhr(),g=++Dc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)f.setRequestHeader(e,c[e]);b=function(a){return function(){b&&(delete Ec[g],b=f.onload=f.onerror=null,"abort"===a?f.abort():"error"===a?d(f.status,f.statusText):d(Fc[f.status]||f.status,f.statusText,"string"==typeof f.responseText?{text:f.responseText}:void 0,f.getAllResponseHeaders()))}},f.onload=b(),f.onerror=b("error"),b=Ec[g]=b("abort");try{f.send(a.hasContent&&a.data||null)}catch(h){if(b)throw h}},abort:function(){b&&b()}}:void 0}),_.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return _.globalEval(a),a}}}),_.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),_.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=_("<script>").prop({async:!0,charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&e("error"===a.type?404:200,a.type)}),Z.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Hc=[],Ic=/(=)\?(?=&|$)|\?\?/;_.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Hc.pop()||_.expando+"_"+jc++;return this[a]=!0,a}}),_.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Ic.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ic.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=_.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Ic,"$1"+e):b.jsonp!==!1&&(b.url+=(kc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||_.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Hc.push(e)),g&&_.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),_.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||Z;var d=gb.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=_.buildFragment([a],b,e),e&&e.length&&_(e).remove(),_.merge([],d.childNodes))};var Jc=_.fn.load;_.fn.load=function(a,b,c){if("string"!=typeof a&&Jc)return Jc.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=_.trim(a.slice(h)),a=a.slice(0,h)),_.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&_.ajax({url:a,type:e,dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?_("<div>").append(_.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,f||[a.responseText,b,a])}),this},_.expr.filters.animated=function(a){return _.grep(_.timers,function(b){return a===b.elem}).length};var Kc=a.document.documentElement;_.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=_.css(a,"position"),l=_(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=_.css(a,"top"),i=_.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),_.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},_.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){_.offset.setOffset(this,a,b)});var b,c,d=this[0],e={top:0,left:0},f=d&&d.ownerDocument;if(f)return b=f.documentElement,_.contains(b,d)?(typeof d.getBoundingClientRect!==zb&&(e=d.getBoundingClientRect()),c=P(f),{top:e.top+c.pageYOffset-b.clientTop,left:e.left+c.pageXOffset-b.clientLeft}):e},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===_.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),_.nodeName(a[0],"html")||(d=a.offset()),d.top+=_.css(a[0],"borderTopWidth",!0),d.left+=_.css(a[0],"borderLeftWidth",!0)),{top:b.top-d.top-_.css(c,"marginTop",!0),left:b.left-d.left-_.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||Kc;a&&!_.nodeName(a,"html")&&"static"===_.css(a,"position");)a=a.offsetParent;return a||Kc})}}),_.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(b,c){var d="pageYOffset"===c;_.fn[b]=function(e){return qb(this,function(b,e,f){var g=P(b);return void 0===f?g?g[c]:b[e]:void(g?g.scrollTo(d?a.pageXOffset:f,d?f:a.pageYOffset):b[e]=f)},b,e,arguments.length,null)}}),_.each(["top","left"],function(a,b){_.cssHooks[b]=w(Y.pixelPosition,function(a,c){return c?(c=v(a,b),Qb.test(c)?_(a).position()[b]+"px":c):void 0})}),_.each({Height:"height",Width:"width"},function(a,b){_.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){_.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return qb(this,function(b,c,d){var e;return _.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?_.css(b,c,g):_.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),_.fn.size=function(){return this.length},_.fn.andSelf=_.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return _});var Lc=a.jQuery,Mc=a.$;return _.noConflict=function(b){return a.$===_&&(a.$=Mc),b&&a.jQuery===_&&(a.jQuery=Lc),_},typeof b===zb&&(a.jQuery=a.$=_),_}),"undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(jQuery),+function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function c(){f.trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one(a.support.transition.end,c).emulateTransitionEnd(150):c())};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("bs.alert");e||d.data("bs.alert",e=new c(this)),"string"==typeof b&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.bs.alert.data-api",b,c.prototype.close)}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.isLoading=!1};b.DEFAULTS={loadingText:"loading..."},b.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",f.resetText||d.data("resetText",d[e]()),d[e](f[b]||this.options[b]),setTimeout(a.proxy(function(){"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},b.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?a=!1:b.find(".active").removeClass("active")),a&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}a&&this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof c&&c;e||d.data("bs.button",e=new b(this,f)),"toggle"==c?e.toggle():c&&e.setState(c)})},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.bs.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle"),b.preventDefault()})}(jQuery),+function(a){"use strict";var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},b.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},b.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},b.prototype.to=function(b){var c=this,d=this.getActiveIndex();return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}if(e.hasClass("active"))return this.sliding=!1;var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});return this.$element.trigger(j),j.isDefaultPrevented()?void 0:(this.sliding=!0,f&&this.pause(),this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid.bs.carousel",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")?(e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid.bs.carousel")},0)}).emulateTransitionEnd(1e3*d.css("transition-duration").slice(0,-1))):(d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid.bs.carousel")),f&&this.cycle(),this)};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("collapse in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?void this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);!e&&f.toggle&&"show"==c&&(c=!c),e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(jQuery),+function(a){"use strict";function b(b){a(d).remove(),a(e).each(function(){var d=c(a(this)),e={relatedTarget:this};d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown",e)),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown",e))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('<div class="dropdown-backdrop"/>').insertAfter(a(this)).on("click",b);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;f.toggleClass("open").trigger("shown.bs.dropdown",h),e.focus()}return!1}},f.prototype.keydown=function(b){if(/(38|40|27)/.test(b.keyCode)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var f=c(d),g=f.hasClass("open");if(!g||g&&27==b.keyCode)return 27==b.which&&f.find(e).focus(),d.click();var h=" li:not(.divider):visible a",i=f.find("[role=menu]"+h+", [role=listbox]"+h);if(i.length){var j=i.index(i.filter(":focus"));38==b.keyCode&&j>0&&j--,40==b.keyCode&&j<i.length-1&&j++,~j||(j=0),i.eq(j).focus()}}}};var g=a.fn.dropdown;a.fn.dropdown=function(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new f(this)),"string"==typeof b&&d[b].call(c)})},a.fn.dropdown.Constructor=f,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=g,this},a(document).on("click.bs.dropdown.data-api",b).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",e,f.prototype.toggle).on("keydown.bs.dropdown.data-api",e+", [role=menu], [role=listbox]",f.prototype.keydown)}(jQuery),+function(a){"use strict";var b=function(b,c){this.options=c,this.$element=a(b),this.$backdrop=this.isShown=null,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};b.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},b.prototype.toggle=function(a){return this[this.isShown?"hide":"show"](a)},b.prototype.show=function(b){var c=this,d=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(d),this.isShown||d.isDefaultPrevented()||(this.isShown=!0,this.escape(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.backdrop(function(){var d=a.support.transition&&c.$element.hasClass("fade");c.$element.parent().length||c.$element.appendTo(document.body),c.$element.show().scrollTop(0),d&&c.$element[0].offsetWidth,c.$element.addClass("in").attr("aria-hidden",!1),c.enforceFocus();var e=a.Event("shown.bs.modal",{relatedTarget:b});
d?c.$element.find(".modal-dialog").one(a.support.transition.end,function(){c.$element.focus().trigger(e)}).emulateTransitionEnd(300):c.$element.focus().trigger(e)}))},b.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").attr("aria-hidden",!0).off("click.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one(a.support.transition.end,a.proxy(this.hideModal,this)).emulateTransitionEnd(300):this.hideModal())},b.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.focus()},this))},b.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keyup.dismiss.bs.modal")},b.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.removeBackdrop(),a.$element.trigger("hidden.bs.modal")})},b.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},b.prototype.backdrop=function(b){var c=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var d=a.support.transition&&c;if(this.$backdrop=a('<div class="modal-backdrop '+c+'" />').appendTo(document.body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),d&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;d?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()):b&&b()};var c=a.fn.modal;a.fn.modal=function(c,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},b.DEFAULTS,e.data(),"object"==typeof c&&c);f||e.data("bs.modal",f=new b(this,g)),"string"==typeof c?f[c](d):g.show&&f.show(d)})},a.fn.modal.Constructor=b,a.fn.modal.noConflict=function(){return a.fn.modal=c,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(b){var c=a(this),d=c.attr("href"),e=a(c.attr("data-target")||d&&d.replace(/.*(?=#[^\s]+$)/,"")),f=e.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(d)&&d},e.data(),c.data());c.is("a")&&b.preventDefault(),e.modal(f,this).one("hide",function(){c.is(":visible")&&c.focus()})}),a(document).on("show.bs.modal",".modal",function(){a(document.body).addClass("modal-open")}).on("hidden.bs.modal",".modal",function(){a(document.body).removeClass("modal-open")})}(jQuery),+function(a){"use strict";var b=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};b.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},b.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d);for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},b.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},b.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show()},b.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},b.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){if(this.$element.trigger(b),b.isDefaultPrevented())return;var c=this,d=this.tip();this.setContent(),this.options.animation&&d.addClass("fade");var e="function"==typeof this.options.placement?this.options.placement.call(this,d[0],this.$element[0]):this.options.placement,f=/\s?auto?\s?/i,g=f.test(e);g&&(e=e.replace(f,"")||"top"),d.detach().css({top:0,left:0,display:"block"}).addClass(e),this.options.container?d.appendTo(this.options.container):d.insertAfter(this.$element);var h=this.getPosition(),i=d[0].offsetWidth,j=d[0].offsetHeight;if(g){var k=this.$element.parent(),l=e,m=document.documentElement.scrollTop||document.body.scrollTop,n="body"==this.options.container?window.innerWidth:k.outerWidth(),o="body"==this.options.container?window.innerHeight:k.outerHeight(),p="body"==this.options.container?0:k.offset().left;e="bottom"==e&&h.top+h.height+j-m>o?"top":"top"==e&&h.top-m-j<0?"bottom":"right"==e&&h.right+i>n?"left":"left"==e&&h.left-i<p?"right":e,d.removeClass(l).addClass(e)}var q=this.getCalculatedOffset(e,h,i,j);this.applyPlacement(q,e),this.hoverState=null;var r=function(){c.$element.trigger("shown.bs."+c.type)};a.support.transition&&this.$tip.hasClass("fade")?d.one(a.support.transition.end,r).emulateTransitionEnd(150):r()}},b.prototype.applyPlacement=function(b,c){var d,e=this.tip(),f=e[0].offsetWidth,g=e[0].offsetHeight,h=parseInt(e.css("margin-top"),10),i=parseInt(e.css("margin-left"),10);isNaN(h)&&(h=0),isNaN(i)&&(i=0),b.top=b.top+h,b.left=b.left+i,a.offset.setOffset(e[0],a.extend({using:function(a){e.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),e.addClass("in");var j=e[0].offsetWidth,k=e[0].offsetHeight;if("top"==c&&k!=g&&(d=!0,b.top=b.top+g-k),/bottom|top/.test(c)){var l=0;b.left<0&&(l=-2*b.left,b.left=0,e.offset(b),j=e[0].offsetWidth,k=e[0].offsetHeight),this.replaceArrow(l-f+j,j,"left")}else this.replaceArrow(k-g,k,"top");d&&e.offset(b)},b.prototype.replaceArrow=function(a,b,c){this.arrow().css(c,a?50*(1-a/b)+"%":"")},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},b.prototype.hide=function(){function b(){"in"!=c.hoverState&&d.detach(),c.$element.trigger("hidden.bs."+c.type)}var c=this,d=this.tip(),e=a.Event("hide.bs."+this.type);return this.$element.trigger(e),e.isDefaultPrevented()?void 0:(d.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?d.one(a.support.transition.end,b).emulateTransitionEnd(150):b(),this.hoverState=null,this)},b.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},b.prototype.hasContent=function(){return this.getTitle()},b.prototype.getPosition=function(){var b=this.$element[0];return a.extend({},"function"==typeof b.getBoundingClientRect?b.getBoundingClientRect():{width:b.offsetWidth,height:b.offsetHeight},this.$element.offset())},b.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},b.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},b.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},b.prototype.validate=function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},b.prototype.enable=function(){this.enabled=!0},b.prototype.disable=function(){this.enabled=!1},b.prototype.toggleEnabled=function(){this.enabled=!this.enabled},b.prototype.toggle=function(b){var c=b?a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type):this;c.tip().hasClass("in")?c.leave(c):c.enter(c)},b.prototype.destroy=function(){clearTimeout(this.timeout),this.hide().$element.off("."+this.type).removeData("bs."+this.type)};var c=a.fn.tooltip;a.fn.tooltip=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof c&&c;(e||"destroy"!=c)&&(e||d.data("bs.tooltip",e=new b(this,f)),"string"==typeof c&&e[c]())})},a.fn.tooltip.Constructor=b,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=c,this}}(jQuery),+function(a){"use strict";var b=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");b.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;(e||"destroy"!=c)&&(e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]())})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(a(c).is("body")?window:c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);{var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})}},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);if(g&&b<=e[0])return g!=(a=f[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parentsUntil(this.options.target,".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(b.RESET).addClass("affix");var a=this.$window.scrollTop(),c=this.$element.offset();return this.pinnedOffset=c.top-a},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"top"==this.affixed&&(e.top+=d),"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top(this.$element)),"function"==typeof h&&(h=f.bottom(this.$element));var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;if(this.affixed!==i){this.unpin&&this.$element.css("top","");var j="affix"+(i?"-"+i:""),k=a.Event(j+".bs.affix");this.$element.trigger(k),k.isDefaultPrevented()||(this.affixed=i,this.unpin="bottom"==i?this.getPinnedOffset():null,this.$element.removeClass(b.RESET).addClass(j).trigger(a.Event(j.replace("affix","affixed"))),"bottom"==i&&this.$element.offset({top:c-h-this.$element.height()}))}}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(jQuery),!function(){function a(a,b){return b>a?-1:a>b?1:a>=b?0:0/0}function b(a){return null!=a&&!isNaN(a)}function c(a){return{left:function(b,c,d,e){for(arguments.length<3&&(d=0),arguments.length<4&&(e=b.length);e>d;){var f=d+e>>>1;a(b[f],c)<0?d=f+1:e=f}return d},right:function(b,c,d,e){for(arguments.length<3&&(d=0),arguments.length<4&&(e=b.length);e>d;){var f=d+e>>>1;a(b[f],c)>0?e=f:d=f+1}return d}}}function d(a){return a.length}function e(a){for(var b=1;a*b%1;)b*=10;return b}function f(a,b){try{for(var c in b)Object.defineProperty(a.prototype,c,{value:b[c],enumerable:!1})}catch(d){a.prototype=b}}function g(){}function h(a){return fh+a in this}function i(a){return a=fh+a,a in this&&delete this[a]}function j(){var a=[];return this.forEach(function(b){a.push(b)}),a}function k(){var a=0;for(var b in this)b.charCodeAt(0)===gh&&++a;return a}function l(){for(var a in this)if(a.charCodeAt(0)===gh)return!1;return!0}function m(){}function n(a,b,c){return function(){var d=c.apply(b,arguments);return d===b?a:d}}function o(a,b){if(b in a)return b;b=b.charAt(0).toUpperCase()+b.substring(1);for(var c=0,d=hh.length;d>c;++c){var e=hh[c]+b;if(e in a)return e}}function p(){}function q(){}function r(a){function b(){for(var b,d=c,e=-1,f=d.length;++e<f;)(b=d[e].on)&&b.apply(this,arguments);return a}var c=[],d=new g;return b.on=function(b,e){var f,g=d.get(b);return arguments.length<2?g&&g.on:(g&&(g.on=null,c=c.slice(0,f=c.indexOf(g)).concat(c.slice(f+1)),d.remove(b)),e&&c.push(d.set(b,{on:e})),a)},b}function s(){Sg.event.preventDefault()}function t(){for(var a,b=Sg.event;a=b.sourceEvent;)b=a;return b}function u(a){for(var b=new q,c=0,d=arguments.length;++c<d;)b[arguments[c]]=r(b);return b.of=function(c,d){return function(e){try{var f=e.sourceEvent=Sg.event;e.target=a,Sg.event=e,b[e.type].apply(c,d)}finally{Sg.event=f}}},b}function v(a){return jh(a,oh),a}function w(a){return"function"==typeof a?a:function(){return kh(a,this)}}function x(a){return"function"==typeof a?a:function(){return lh(a,this)}}function y(a,b){function c(){this.removeAttribute(a)}function d(){this.removeAttributeNS(a.space,a.local)}function e(){this.setAttribute(a,b)}function f(){this.setAttributeNS(a.space,a.local,b)}function g(){var c=b.apply(this,arguments);null==c?this.removeAttribute(a):this.setAttribute(a,c)}function h(){var c=b.apply(this,arguments);null==c?this.removeAttributeNS(a.space,a.local):this.setAttributeNS(a.space,a.local,c)}return a=Sg.ns.qualify(a),null==b?a.local?d:c:"function"==typeof b?a.local?h:g:a.local?f:e}function z(a){return a.trim().replace(/\s+/g," ")}function A(a){return new RegExp("(?:^|\\s+)"+Sg.requote(a)+"(?:\\s+|$)","g")}function B(a){return(a+"").trim().split(/^|\s+/)}function C(a,b){function c(){for(var c=-1;++c<e;)a[c](this,b)}function d(){for(var c=-1,d=b.apply(this,arguments);++c<e;)a[c](this,d)}a=B(a).map(D);var e=a.length;return"function"==typeof b?d:c}function D(a){var b=A(a);return function(c,d){if(e=c.classList)return d?e.add(a):e.remove(a);var e=c.getAttribute("class")||"";d?(b.lastIndex=0,b.test(e)||c.setAttribute("class",z(e+" "+a))):c.setAttribute("class",z(e.replace(b," ")))}}function E(a,b,c){function d(){this.style.removeProperty(a)}function e(){this.style.setProperty(a,b,c)}function f(){var d=b.apply(this,arguments);null==d?this.style.removeProperty(a):this.style.setProperty(a,d,c)}return null==b?d:"function"==typeof b?f:e}function F(a,b){function c(){delete this[a]}function d(){this[a]=b}function e(){var c=b.apply(this,arguments);null==c?delete this[a]:this[a]=c}return null==b?c:"function"==typeof b?e:d}function G(a){return"function"==typeof a?a:(a=Sg.ns.qualify(a)).local?function(){return this.ownerDocument.createElementNS(a.space,a.local)}:function(){return this.ownerDocument.createElementNS(this.namespaceURI,a)}}function H(a){return{__data__:a}}function I(a){return function(){return nh(this,a)}}function J(b){return arguments.length||(b=a),function(a,c){return a&&c?b(a.__data__,c.__data__):!a-!c}}function K(a,b){for(var c=0,d=a.length;d>c;c++)for(var e,f=a[c],g=0,h=f.length;h>g;g++)(e=f[g])&&b(e,g,c);return a}function L(a){return jh(a,qh),a}function M(a){var b,c;return function(d,e,f){var g,h=a[f].update,i=h.length;for(f!=c&&(c=f,b=0),e>=b&&(b=e+1);!(g=h[b])&&++b<i;);return g}}function N(){var a=this.__transition__;a&&++a.active}function O(a,b,c){function d(){var b=this[g];b&&(this.removeEventListener(a,b,b.$),delete this[g])}function e(){var e=i(b,Ug(arguments));d.call(this),this.addEventListener(a,this[g]=e,e.$=c),e._=b}function f(){var b,c=new RegExp("^__on([^.]+)"+Sg.requote(a)+"$");for(var d in this)if(b=d.match(c)){var e=this[d];this.removeEventListener(b[1],e,e.$),delete this[d]}}var g="__on"+a,h=a.indexOf("."),i=P;h>0&&(a=a.substring(0,h));var j=sh.get(a);return j&&(a=j,i=Q),h?b?e:d:b?p:f}function P(a,b){return function(c){var d=Sg.event;Sg.event=c,b[0]=this.__data__;try{a.apply(this,b)}finally{Sg.event=d}}}function Q(a,b){var c=P(a,b);return function(a){var b=this,d=a.relatedTarget;d&&(d===b||8&d.compareDocumentPosition(b))||c.call(b,a)}}function R(){var a=".dragsuppress-"+ ++uh,b="click"+a,c=Sg.select(Xg).on("touchmove"+a,s).on("dragstart"+a,s).on("selectstart"+a,s);if(th){var d=Wg.style,e=d[th];d[th]="none"}return function(f){function g(){c.on(b,null)}c.on(a,null),th&&(d[th]=e),f&&(c.on(b,function(){s(),g()},!0),setTimeout(g,0))}}function S(a,b){b.changedTouches&&(b=b.changedTouches[0]);var c=a.ownerSVGElement||a;if(c.createSVGPoint){var d=c.createSVGPoint();if(0>vh&&(Xg.scrollX||Xg.scrollY)){c=Sg.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var e=c[0][0].getScreenCTM();vh=!(e.f||e.e),c.remove()}return vh?(d.x=b.pageX,d.y=b.pageY):(d.x=b.clientX,d.y=b.clientY),d=d.matrixTransform(a.getScreenCTM().inverse()),[d.x,d.y]}var f=a.getBoundingClientRect();return[b.clientX-f.left-a.clientLeft,b.clientY-f.top-a.clientTop]}function T(){return Sg.event.changedTouches[0].identifier}function U(){return Sg.event.target}function V(){return Xg}function W(a){return a>0?1:0>a?-1:0}function X(a,b,c){return(b[0]-a[0])*(c[1]-a[1])-(b[1]-a[1])*(c[0]-a[0])}function Y(a){return a>1?0:-1>a?wh:Math.acos(a)}function Z(a){return a>1?yh:-1>a?-yh:Math.asin(a)}function $(a){return((a=Math.exp(a))-1/a)/2}function _(a){return((a=Math.exp(a))+1/a)/2}function ab(a){return((a=Math.exp(2*a))-1)/(a+1)}function bb(a){return(a=Math.sin(a/2))*a}function cb(){}function db(a,b,c){return this instanceof db?(this.h=+a,this.s=+b,void(this.l=+c)):arguments.length<2?a instanceof db?new db(a.h,a.s,a.l):rb(""+a,sb,db):new db(a,b,c)}function eb(a,b,c){function d(a){return a>360?a-=360:0>a&&(a+=360),60>a?f+(g-f)*a/60:180>a?g:240>a?f+(g-f)*(240-a)/60:f}function e(a){return Math.round(255*d(a))}var f,g;return a=isNaN(a)?0:(a%=360)<0?a+360:a,b=isNaN(b)?0:0>b?0:b>1?1:b,c=0>c?0:c>1?1:c,g=.5>=c?c*(1+b):c+b-c*b,f=2*c-g,new nb(e(a+120),e(a),e(a-120))}function fb(a,b,c){return this instanceof fb?(this.h=+a,this.c=+b,void(this.l=+c)):arguments.length<2?a instanceof fb?new fb(a.h,a.c,a.l):a instanceof hb?jb(a.l,a.a,a.b):jb((a=tb((a=Sg.rgb(a)).r,a.g,a.b)).l,a.a,a.b):new fb(a,b,c)}function gb(a,b,c){return isNaN(a)&&(a=0),isNaN(b)&&(b=0),new hb(c,Math.cos(a*=Bh)*b,Math.sin(a)*b)}function hb(a,b,c){return this instanceof hb?(this.l=+a,this.a=+b,void(this.b=+c)):arguments.length<2?a instanceof hb?new hb(a.l,a.a,a.b):a instanceof fb?gb(a.l,a.c,a.h):tb((a=nb(a)).r,a.g,a.b):new hb(a,b,c)}function ib(a,b,c){var d=(a+16)/116,e=d+b/500,f=d-c/200;return e=kb(e)*Mh,d=kb(d)*Nh,f=kb(f)*Oh,new nb(mb(3.2404542*e-1.5371385*d-.4985314*f),mb(-.969266*e+1.8760108*d+.041556*f),mb(.0556434*e-.2040259*d+1.0572252*f))}function jb(a,b,c){return a>0?new fb(Math.atan2(c,b)*Ch,Math.sqrt(b*b+c*c),a):new fb(0/0,0/0,a)}function kb(a){return a>.206893034?a*a*a:(a-4/29)/7.787037}function lb(a){return a>.008856?Math.pow(a,1/3):7.787037*a+4/29}function mb(a){return Math.round(255*(.00304>=a?12.92*a:1.055*Math.pow(a,1/2.4)-.055))}function nb(a,b,c){return this instanceof nb?(this.r=~~a,this.g=~~b,void(this.b=~~c)):arguments.length<2?a instanceof nb?new nb(a.r,a.g,a.b):rb(""+a,nb,eb):new nb(a,b,c)}function ob(a){return new nb(a>>16,a>>8&255,255&a)}function pb(a){return ob(a)+""}function qb(a){return 16>a?"0"+Math.max(0,a).toString(16):Math.min(255,a).toString(16)}function rb(a,b,c){var d,e,f,g=0,h=0,i=0;if(d=/([a-z]+)\((.*)\)/i.exec(a))switch(e=d[2].split(","),d[1]){case"hsl":return c(parseFloat(e[0]),parseFloat(e[1])/100,parseFloat(e[2])/100);case"rgb":return b(vb(e[0]),vb(e[1]),vb(e[2]))}return(f=Rh.get(a))?b(f.r,f.g,f.b):(null==a||"#"!==a.charAt(0)||isNaN(f=parseInt(a.substring(1),16))||(4===a.length?(g=(3840&f)>>4,g=g>>4|g,h=240&f,h=h>>4|h,i=15&f,i=i<<4|i):7===a.length&&(g=(16711680&f)>>16,h=(65280&f)>>8,i=255&f)),b(g,h,i))}function sb(a,b,c){var d,e,f=Math.min(a/=255,b/=255,c/=255),g=Math.max(a,b,c),h=g-f,i=(g+f)/2;return h?(e=.5>i?h/(g+f):h/(2-g-f),d=a==g?(b-c)/h+(c>b?6:0):b==g?(c-a)/h+2:(a-b)/h+4,d*=60):(d=0/0,e=i>0&&1>i?0:d),new db(d,e,i)}function tb(a,b,c){a=ub(a),b=ub(b),c=ub(c);var d=lb((.4124564*a+.3575761*b+.1804375*c)/Mh),e=lb((.2126729*a+.7151522*b+.072175*c)/Nh),f=lb((.0193339*a+.119192*b+.9503041*c)/Oh);return hb(116*e-16,500*(d-e),200*(e-f))}function ub(a){return(a/=255)<=.04045?a/12.92:Math.pow((a+.055)/1.055,2.4)}function vb(a){var b=parseFloat(a);return"%"===a.charAt(a.length-1)?Math.round(2.55*b):b}function wb(a){return"function"==typeof a?a:function(){return a}}function xb(a){return a}function yb(a){return function(b,c,d){return 2===arguments.length&&"function"==typeof c&&(d=c,c=null),zb(b,c,a,d)}}function zb(a,b,c,d){function e(){var a,b=i.status;if(!b&&i.responseText||b>=200&&300>b||304===b){try{a=c.call(f,i)}catch(d){return void g.error.call(f,d)}g.load.call(f,a)}else g.error.call(f,i)}var f={},g=Sg.dispatch("beforesend","progress","load","error"),h={},i=new XMLHttpRequest,j=null;return!Xg.XDomainRequest||"withCredentials"in i||!/^(http(s)?:)?\/\//.test(a)||(i=new XDomainRequest),"onload"in i?i.onload=i.onerror=e:i.onreadystatechange=function(){i.readyState>3&&e()},i.onprogress=function(a){var b=Sg.event;Sg.event=a;try{g.progress.call(f,i)}finally{Sg.event=b}},f.header=function(a,b){return a=(a+"").toLowerCase(),arguments.length<2?h[a]:(null==b?delete h[a]:h[a]=b+"",f)},f.mimeType=function(a){return arguments.length?(b=null==a?null:a+"",f):b},f.responseType=function(a){return arguments.length?(j=a,f):j},f.response=function(a){return c=a,f},["get","post"].forEach(function(a){f[a]=function(){return f.send.apply(f,[a].concat(Ug(arguments)))}}),f.send=function(c,d,e){if(2===arguments.length&&"function"==typeof d&&(e=d,d=null),i.open(c,a,!0),null==b||"accept"in h||(h.accept=b+",*/*"),i.setRequestHeader)for(var k in h)i.setRequestHeader(k,h[k]);return null!=b&&i.overrideMimeType&&i.overrideMimeType(b),null!=j&&(i.responseType=j),null!=e&&f.on("error",e).on("load",function(a){e(null,a)}),g.beforesend.call(f,i),i.send(null==d?null:d),f},f.abort=function(){return i.abort(),f},Sg.rebind(f,g,"on"),null==d?f:f.get(Ab(d))}function Ab(a){return 1===a.length?function(b,c){a(null==b?c:null)}:a}function Bb(){var a=Cb(),b=Db()-a;b>24?(isFinite(b)&&(clearTimeout(Vh),Vh=setTimeout(Bb,b)),Uh=0):(Uh=1,Xh(Bb))}function Cb(){var a=Date.now();for(Wh=Sh;Wh;)a>=Wh.t&&(Wh.f=Wh.c(a-Wh.t)),Wh=Wh.n;return a}function Db(){for(var a,b=Sh,c=1/0;b;)b.f?b=a?a.n=b.n:Sh=b.n:(b.t<c&&(c=b.t),b=(a=b).n);return Th=a,c}function Eb(a,b){return b-(a?Math.ceil(Math.log(a)/Math.LN10):1)}function Fb(a,b){var c=Math.pow(10,3*eh(8-b));return{scale:b>8?function(a){return a/c}:function(a){return a*c},symbol:a}}function Gb(a){var b=a.decimal,c=a.thousands,d=a.grouping,e=a.currency,f=d?function(a){for(var b=a.length,e=[],f=0,g=d[0];b>0&&g>0;)e.push(a.substring(b-=g,b+g)),g=d[f=(f+1)%d.length];return e.reverse().join(c)}:xb;return function(a){var c=Zh.exec(a),d=c[1]||" ",g=c[2]||">",h=c[3]||"",i=c[4]||"",j=c[5],k=+c[6],l=c[7],m=c[8],n=c[9],o=1,p="",q="",r=!1;switch(m&&(m=+m.substring(1)),(j||"0"===d&&"="===g)&&(j=d="0",g="=",l&&(k-=Math.floor((k-1)/4))),n){case"n":l=!0,n="g";break;case"%":o=100,q="%",n="f";break;case"p":o=100,q="%",n="r";break;case"b":case"o":case"x":case"X":"#"===i&&(p="0"+n.toLowerCase());case"c":case"d":r=!0,m=0;break;case"s":o=-1,n="r"}"$"===i&&(p=e[0],q=e[1]),"r"!=n||m||(n="g"),null!=m&&("g"==n?m=Math.max(1,Math.min(21,m)):("e"==n||"f"==n)&&(m=Math.max(0,Math.min(20,m)))),n=$h.get(n)||Hb;var s=j&&l;return function(a){var c=q;if(r&&a%1)return"";var e=0>a||0===a&&0>1/a?(a=-a,"-"):h;if(0>o){var i=Sg.formatPrefix(a,m);a=i.scale(a),c=i.symbol+q}else a*=o;a=n(a,m);var t=a.lastIndexOf("."),u=0>t?a:a.substring(0,t),v=0>t?"":b+a.substring(t+1);!j&&l&&(u=f(u));var w=p.length+u.length+v.length+(s?0:e.length),x=k>w?new Array(w=k-w+1).join(d):"";return s&&(u=f(x+u)),e+=p,a=u+v,("<"===g?e+a+x:">"===g?x+e+a:"^"===g?x.substring(0,w>>=1)+e+a+x.substring(w):e+(s?a:x+a))+c}}}function Hb(a){return a+""}function Ib(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function Jb(a,b,c){function d(b){var c=a(b),d=f(c,1);return d-b>b-c?c:d}function e(c){return b(c=a(new ai(c-1)),1),c}function f(a,c){return b(a=new ai(+a),c),a}function g(a,d,f){var g=e(a),h=[];if(f>1)for(;d>g;)c(g)%f||h.push(new Date(+g)),b(g,1);else for(;d>g;)h.push(new Date(+g)),b(g,1);return h}function h(a,b,c){try{ai=Ib;var d=new Ib;return d._=a,g(d,b,c)}finally{ai=Date}}a.floor=a,a.round=d,a.ceil=e,a.offset=f,a.range=g;var i=a.utc=Kb(a);return i.floor=i,i.round=Kb(d),i.ceil=Kb(e),i.offset=Kb(f),i.range=h,a}function Kb(a){return function(b,c){try{ai=Ib;var d=new Ib;return d._=b,a(d,c)._}finally{ai=Date}}}function Lb(a){function b(a){function b(b){for(var c,e,f,g=[],h=-1,i=0;++h<d;)37===a.charCodeAt(h)&&(g.push(a.substring(i,h)),null!=(e=ci[c=a.charAt(++h)])&&(c=a.charAt(++h)),(f=C[c])&&(c=f(b,null==e?"e"===c?" ":"0":e)),g.push(c),i=h+1);return g.push(a.substring(i,h)),g.join("")}var d=a.length;return b.parse=function(b){var d={y:1900,m:0,d:1,H:0,M:0,S:0,L:0,Z:null},e=c(d,a,b,0);if(e!=b.length)return null;"p"in d&&(d.H=d.H%12+12*d.p);var f=null!=d.Z&&ai!==Ib,g=new(f?Ib:ai);return"j"in d?g.setFullYear(d.y,0,d.j):"w"in d&&("W"in d||"U"in d)?(g.setFullYear(d.y,0,1),g.setFullYear(d.y,0,"W"in d?(d.w+6)%7+7*d.W-(g.getDay()+5)%7:d.w+7*d.U-(g.getDay()+6)%7)):g.setFullYear(d.y,d.m,d.d),g.setHours(d.H+Math.floor(d.Z/100),d.M+d.Z%100,d.S,d.L),f?g._:g},b.toString=function(){return a},b}function c(a,b,c,d){for(var e,f,g,h=0,i=b.length,j=c.length;i>h;){if(d>=j)return-1;if(e=b.charCodeAt(h++),37===e){if(g=b.charAt(h++),f=D[g in ci?b.charAt(h++):g],!f||(d=f(a,c,d))<0)return-1}else if(e!=c.charCodeAt(d++))return-1}return d}function d(a,b,c){w.lastIndex=0;var d=w.exec(b.substring(c));return d?(a.w=x.get(d[0].toLowerCase()),c+d[0].length):-1}function e(a,b,c){u.lastIndex=0;var d=u.exec(b.substring(c));return d?(a.w=v.get(d[0].toLowerCase()),c+d[0].length):-1}function f(a,b,c){A.lastIndex=0;var d=A.exec(b.substring(c));return d?(a.m=B.get(d[0].toLowerCase()),c+d[0].length):-1}function g(a,b,c){y.lastIndex=0;var d=y.exec(b.substring(c));return d?(a.m=z.get(d[0].toLowerCase()),c+d[0].length):-1
}function h(a,b,d){return c(a,C.c.toString(),b,d)}function i(a,b,d){return c(a,C.x.toString(),b,d)}function j(a,b,d){return c(a,C.X.toString(),b,d)}function k(a,b,c){var d=t.get(b.substring(c,c+=2).toLowerCase());return null==d?-1:(a.p=d,c)}var l=a.dateTime,m=a.date,n=a.time,o=a.periods,p=a.days,q=a.shortDays,r=a.months,s=a.shortMonths;b.utc=function(a){function c(a){try{ai=Ib;var b=new ai;return b._=a,d(b)}finally{ai=Date}}var d=b(a);return c.parse=function(a){try{ai=Ib;var b=d.parse(a);return b&&b._}finally{ai=Date}},c.toString=d.toString,c},b.multi=b.utc.multi=dc;var t=Sg.map(),u=Nb(p),v=Ob(p),w=Nb(q),x=Ob(q),y=Nb(r),z=Ob(r),A=Nb(s),B=Ob(s);o.forEach(function(a,b){t.set(a.toLowerCase(),b)});var C={a:function(a){return q[a.getDay()]},A:function(a){return p[a.getDay()]},b:function(a){return s[a.getMonth()]},B:function(a){return r[a.getMonth()]},c:b(l),d:function(a,b){return Mb(a.getDate(),b,2)},e:function(a,b){return Mb(a.getDate(),b,2)},H:function(a,b){return Mb(a.getHours(),b,2)},I:function(a,b){return Mb(a.getHours()%12||12,b,2)},j:function(a,b){return Mb(1+_h.dayOfYear(a),b,3)},L:function(a,b){return Mb(a.getMilliseconds(),b,3)},m:function(a,b){return Mb(a.getMonth()+1,b,2)},M:function(a,b){return Mb(a.getMinutes(),b,2)},p:function(a){return o[+(a.getHours()>=12)]},S:function(a,b){return Mb(a.getSeconds(),b,2)},U:function(a,b){return Mb(_h.sundayOfYear(a),b,2)},w:function(a){return a.getDay()},W:function(a,b){return Mb(_h.mondayOfYear(a),b,2)},x:b(m),X:b(n),y:function(a,b){return Mb(a.getFullYear()%100,b,2)},Y:function(a,b){return Mb(a.getFullYear()%1e4,b,4)},Z:bc,"%":function(){return"%"}},D={a:d,A:e,b:f,B:g,c:h,d:Xb,e:Xb,H:Zb,I:Zb,j:Yb,L:ac,m:Wb,M:$b,p:k,S:_b,U:Qb,w:Pb,W:Rb,x:i,X:j,y:Tb,Y:Sb,Z:Ub,"%":cc};return b}function Mb(a,b,c){var d=0>a?"-":"",e=(d?-a:a)+"",f=e.length;return d+(c>f?new Array(c-f+1).join(b)+e:e)}function Nb(a){return new RegExp("^(?:"+a.map(Sg.requote).join("|")+")","i")}function Ob(a){for(var b=new g,c=-1,d=a.length;++c<d;)b.set(a[c].toLowerCase(),c);return b}function Pb(a,b,c){di.lastIndex=0;var d=di.exec(b.substring(c,c+1));return d?(a.w=+d[0],c+d[0].length):-1}function Qb(a,b,c){di.lastIndex=0;var d=di.exec(b.substring(c));return d?(a.U=+d[0],c+d[0].length):-1}function Rb(a,b,c){di.lastIndex=0;var d=di.exec(b.substring(c));return d?(a.W=+d[0],c+d[0].length):-1}function Sb(a,b,c){di.lastIndex=0;var d=di.exec(b.substring(c,c+4));return d?(a.y=+d[0],c+d[0].length):-1}function Tb(a,b,c){di.lastIndex=0;var d=di.exec(b.substring(c,c+2));return d?(a.y=Vb(+d[0]),c+d[0].length):-1}function Ub(a,b,c){return/^[+-]\d{4}$/.test(b=b.substring(c,c+5))?(a.Z=-b,c+5):-1}function Vb(a){return a+(a>68?1900:2e3)}function Wb(a,b,c){di.lastIndex=0;var d=di.exec(b.substring(c,c+2));return d?(a.m=d[0]-1,c+d[0].length):-1}function Xb(a,b,c){di.lastIndex=0;var d=di.exec(b.substring(c,c+2));return d?(a.d=+d[0],c+d[0].length):-1}function Yb(a,b,c){di.lastIndex=0;var d=di.exec(b.substring(c,c+3));return d?(a.j=+d[0],c+d[0].length):-1}function Zb(a,b,c){di.lastIndex=0;var d=di.exec(b.substring(c,c+2));return d?(a.H=+d[0],c+d[0].length):-1}function $b(a,b,c){di.lastIndex=0;var d=di.exec(b.substring(c,c+2));return d?(a.M=+d[0],c+d[0].length):-1}function _b(a,b,c){di.lastIndex=0;var d=di.exec(b.substring(c,c+2));return d?(a.S=+d[0],c+d[0].length):-1}function ac(a,b,c){di.lastIndex=0;var d=di.exec(b.substring(c,c+3));return d?(a.L=+d[0],c+d[0].length):-1}function bc(a){var b=a.getTimezoneOffset(),c=b>0?"-":"+",d=~~(eh(b)/60),e=eh(b)%60;return c+Mb(d,"0",2)+Mb(e,"0",2)}function cc(a,b,c){ei.lastIndex=0;var d=ei.exec(b.substring(c,c+1));return d?c+d[0].length:-1}function dc(a){for(var b=a.length,c=-1;++c<b;)a[c][0]=this(a[c][0]);return function(b){for(var c=0,d=a[c];!d[1](b);)d=a[++c];return d[0](b)}}function ec(){}function fc(a,b,c){var d=c.s=a+b,e=d-a,f=d-e;c.t=a-f+(b-e)}function gc(a,b){a&&ii.hasOwnProperty(a.type)&&ii[a.type](a,b)}function hc(a,b,c){var d,e=-1,f=a.length-c;for(b.lineStart();++e<f;)d=a[e],b.point(d[0],d[1],d[2]);b.lineEnd()}function ic(a,b){var c=-1,d=a.length;for(b.polygonStart();++c<d;)hc(a[c],b,1);b.polygonEnd()}function jc(){function a(a,b){a*=Bh,b=b*Bh/2+wh/4;var c=a-d,g=c>=0?1:-1,h=g*c,i=Math.cos(b),j=Math.sin(b),k=f*j,l=e*i+k*Math.cos(h),m=k*g*Math.sin(h);ki.add(Math.atan2(m,l)),d=a,e=i,f=j}var b,c,d,e,f;li.point=function(g,h){li.point=a,d=(b=g)*Bh,e=Math.cos(h=(c=h)*Bh/2+wh/4),f=Math.sin(h)},li.lineEnd=function(){a(b,c)}}function kc(a){var b=a[0],c=a[1],d=Math.cos(c);return[d*Math.cos(b),d*Math.sin(b),Math.sin(c)]}function lc(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]}function mc(a,b){return[a[1]*b[2]-a[2]*b[1],a[2]*b[0]-a[0]*b[2],a[0]*b[1]-a[1]*b[0]]}function nc(a,b){a[0]+=b[0],a[1]+=b[1],a[2]+=b[2]}function oc(a,b){return[a[0]*b,a[1]*b,a[2]*b]}function pc(a){var b=Math.sqrt(a[0]*a[0]+a[1]*a[1]+a[2]*a[2]);a[0]/=b,a[1]/=b,a[2]/=b}function qc(a){return[Math.atan2(a[1],a[0]),Z(a[2])]}function rc(a,b){return eh(a[0]-b[0])<zh&&eh(a[1]-b[1])<zh}function sc(a,b){a*=Bh;var c=Math.cos(b*=Bh);tc(c*Math.cos(a),c*Math.sin(a),Math.sin(b))}function tc(a,b,c){++mi,oi+=(a-oi)/mi,pi+=(b-pi)/mi,qi+=(c-qi)/mi}function uc(){function a(a,e){a*=Bh;var f=Math.cos(e*=Bh),g=f*Math.cos(a),h=f*Math.sin(a),i=Math.sin(e),j=Math.atan2(Math.sqrt((j=c*i-d*h)*j+(j=d*g-b*i)*j+(j=b*h-c*g)*j),b*g+c*h+d*i);ni+=j,ri+=j*(b+(b=g)),si+=j*(c+(c=h)),ti+=j*(d+(d=i)),tc(b,c,d)}var b,c,d;xi.point=function(e,f){e*=Bh;var g=Math.cos(f*=Bh);b=g*Math.cos(e),c=g*Math.sin(e),d=Math.sin(f),xi.point=a,tc(b,c,d)}}function vc(){xi.point=sc}function wc(){function a(a,b){a*=Bh;var c=Math.cos(b*=Bh),g=c*Math.cos(a),h=c*Math.sin(a),i=Math.sin(b),j=e*i-f*h,k=f*g-d*i,l=d*h-e*g,m=Math.sqrt(j*j+k*k+l*l),n=d*g+e*h+f*i,o=m&&-Y(n)/m,p=Math.atan2(m,n);ui+=o*j,vi+=o*k,wi+=o*l,ni+=p,ri+=p*(d+(d=g)),si+=p*(e+(e=h)),ti+=p*(f+(f=i)),tc(d,e,f)}var b,c,d,e,f;xi.point=function(g,h){b=g,c=h,xi.point=a,g*=Bh;var i=Math.cos(h*=Bh);d=i*Math.cos(g),e=i*Math.sin(g),f=Math.sin(h),tc(d,e,f)},xi.lineEnd=function(){a(b,c),xi.lineEnd=vc,xi.point=sc}}function xc(){return!0}function yc(a,b,c,d,e){var f=[],g=[];if(a.forEach(function(a){if(!((b=a.length-1)<=0)){var b,c=a[0],d=a[b];if(rc(c,d)){e.lineStart();for(var h=0;b>h;++h)e.point((c=a[h])[0],c[1]);return void e.lineEnd()}var i=new Ac(c,a,null,!0),j=new Ac(c,null,i,!1);i.o=j,f.push(i),g.push(j),i=new Ac(d,a,null,!1),j=new Ac(d,null,i,!0),i.o=j,f.push(i),g.push(j)}}),g.sort(b),zc(f),zc(g),f.length){for(var h=0,i=c,j=g.length;j>h;++h)g[h].e=i=!i;for(var k,l,m=f[0];;){for(var n=m,o=!0;n.v;)if((n=n.n)===m)return;k=n.z,e.lineStart();do{if(n.v=n.o.v=!0,n.e){if(o)for(var h=0,j=k.length;j>h;++h)e.point((l=k[h])[0],l[1]);else d(n.x,n.n.x,1,e);n=n.n}else{if(o){k=n.p.z;for(var h=k.length-1;h>=0;--h)e.point((l=k[h])[0],l[1])}else d(n.x,n.p.x,-1,e);n=n.p}n=n.o,k=n.z,o=!o}while(!n.v);e.lineEnd()}}}function zc(a){if(b=a.length){for(var b,c,d=0,e=a[0];++d<b;)e.n=c=a[d],c.p=e,e=c;e.n=c=a[0],c.p=e}}function Ac(a,b,c,d){this.x=a,this.z=b,this.o=c,this.e=d,this.v=!1,this.n=this.p=null}function Bc(a,b,c,d){return function(e,f){function g(b,c){var d=e(b,c);a(b=d[0],c=d[1])&&f.point(b,c)}function h(a,b){var c=e(a,b);q.point(c[0],c[1])}function i(){s.point=h,q.lineStart()}function j(){s.point=g,q.lineEnd()}function k(a,b){p.push([a,b]);var c=e(a,b);u.point(c[0],c[1])}function l(){u.lineStart(),p=[]}function m(){k(p[0][0],p[0][1]),u.lineEnd();var a,b=u.clean(),c=t.buffer(),d=c.length;if(p.pop(),o.push(p),p=null,d)if(1&b){a=c[0];var e,d=a.length-1,g=-1;if(d>0){for(v||(f.polygonStart(),v=!0),f.lineStart();++g<d;)f.point((e=a[g])[0],e[1]);f.lineEnd()}}else d>1&&2&b&&c.push(c.pop().concat(c.shift())),n.push(c.filter(Cc))}var n,o,p,q=b(f),r=e.invert(d[0],d[1]),s={point:g,lineStart:i,lineEnd:j,polygonStart:function(){s.point=k,s.lineStart=l,s.lineEnd=m,n=[],o=[]},polygonEnd:function(){s.point=g,s.lineStart=i,s.lineEnd=j,n=Sg.merge(n);var a=Fc(r,o);n.length?(v||(f.polygonStart(),v=!0),yc(n,Ec,a,c,f)):a&&(v||(f.polygonStart(),v=!0),f.lineStart(),c(null,null,1,f),f.lineEnd()),v&&(f.polygonEnd(),v=!1),n=o=null},sphere:function(){f.polygonStart(),f.lineStart(),c(null,null,1,f),f.lineEnd(),f.polygonEnd()}},t=Dc(),u=b(t),v=!1;return s}}function Cc(a){return a.length>1}function Dc(){var a,b=[];return{lineStart:function(){b.push(a=[])},point:function(b,c){a.push([b,c])},lineEnd:p,buffer:function(){var c=b;return b=[],a=null,c},rejoin:function(){b.length>1&&b.push(b.pop().concat(b.shift()))}}}function Ec(a,b){return((a=a.x)[0]<0?a[1]-yh-zh:yh-a[1])-((b=b.x)[0]<0?b[1]-yh-zh:yh-b[1])}function Fc(a,b){var c=a[0],d=a[1],e=[Math.sin(c),-Math.cos(c),0],f=0,g=0;ki.reset();for(var h=0,i=b.length;i>h;++h){var j=b[h],k=j.length;if(k)for(var l=j[0],m=l[0],n=l[1]/2+wh/4,o=Math.sin(n),p=Math.cos(n),q=1;;){q===k&&(q=0),a=j[q];var r=a[0],s=a[1]/2+wh/4,t=Math.sin(s),u=Math.cos(s),v=r-m,w=v>=0?1:-1,x=w*v,y=x>wh,z=o*t;if(ki.add(Math.atan2(z*w*Math.sin(x),p*u+z*Math.cos(x))),f+=y?v+w*xh:v,y^m>=c^r>=c){var A=mc(kc(l),kc(a));pc(A);var B=mc(e,A);pc(B);var C=(y^v>=0?-1:1)*Z(B[2]);(d>C||d===C&&(A[0]||A[1]))&&(g+=y^v>=0?1:-1)}if(!q++)break;m=r,o=t,p=u,l=a}}return(-zh>f||zh>f&&0>ki)^1&g}function Gc(a){var b,c=0/0,d=0/0,e=0/0;return{lineStart:function(){a.lineStart(),b=1},point:function(f,g){var h=f>0?wh:-wh,i=eh(f-c);eh(i-wh)<zh?(a.point(c,d=(d+g)/2>0?yh:-yh),a.point(e,d),a.lineEnd(),a.lineStart(),a.point(h,d),a.point(f,d),b=0):e!==h&&i>=wh&&(eh(c-e)<zh&&(c-=e*zh),eh(f-h)<zh&&(f-=h*zh),d=Hc(c,d,f,g),a.point(e,d),a.lineEnd(),a.lineStart(),a.point(h,d),b=0),a.point(c=f,d=g),e=h},lineEnd:function(){a.lineEnd(),c=d=0/0},clean:function(){return 2-b}}}function Hc(a,b,c,d){var e,f,g=Math.sin(a-c);return eh(g)>zh?Math.atan((Math.sin(b)*(f=Math.cos(d))*Math.sin(c)-Math.sin(d)*(e=Math.cos(b))*Math.sin(a))/(e*f*g)):(b+d)/2}function Ic(a,b,c,d){var e;if(null==a)e=c*yh,d.point(-wh,e),d.point(0,e),d.point(wh,e),d.point(wh,0),d.point(wh,-e),d.point(0,-e),d.point(-wh,-e),d.point(-wh,0),d.point(-wh,e);else if(eh(a[0]-b[0])>zh){var f=a[0]<b[0]?wh:-wh;e=c*f/2,d.point(-f,e),d.point(0,e),d.point(f,e)}else d.point(b[0],b[1])}function Jc(a){function b(a,b){return Math.cos(a)*Math.cos(b)>f}function c(a){var c,f,i,j,k;return{lineStart:function(){j=i=!1,k=1},point:function(l,m){var n,o=[l,m],p=b(l,m),q=g?p?0:e(l,m):p?e(l+(0>l?wh:-wh),m):0;if(!c&&(j=i=p)&&a.lineStart(),p!==i&&(n=d(c,o),(rc(c,n)||rc(o,n))&&(o[0]+=zh,o[1]+=zh,p=b(o[0],o[1]))),p!==i)k=0,p?(a.lineStart(),n=d(o,c),a.point(n[0],n[1])):(n=d(c,o),a.point(n[0],n[1]),a.lineEnd()),c=n;else if(h&&c&&g^p){var r;q&f||!(r=d(o,c,!0))||(k=0,g?(a.lineStart(),a.point(r[0][0],r[0][1]),a.point(r[1][0],r[1][1]),a.lineEnd()):(a.point(r[1][0],r[1][1]),a.lineEnd(),a.lineStart(),a.point(r[0][0],r[0][1])))}!p||c&&rc(c,o)||a.point(o[0],o[1]),c=o,i=p,f=q},lineEnd:function(){i&&a.lineEnd(),c=null},clean:function(){return k|(j&&i)<<1}}}function d(a,b,c){var d=kc(a),e=kc(b),g=[1,0,0],h=mc(d,e),i=lc(h,h),j=h[0],k=i-j*j;if(!k)return!c&&a;var l=f*i/k,m=-f*j/k,n=mc(g,h),o=oc(g,l),p=oc(h,m);nc(o,p);var q=n,r=lc(o,q),s=lc(q,q),t=r*r-s*(lc(o,o)-1);if(!(0>t)){var u=Math.sqrt(t),v=oc(q,(-r-u)/s);if(nc(v,o),v=qc(v),!c)return v;var w,x=a[0],y=b[0],z=a[1],A=b[1];x>y&&(w=x,x=y,y=w);var B=y-x,C=eh(B-wh)<zh,D=C||zh>B;if(!C&&z>A&&(w=z,z=A,A=w),D?C?z+A>0^v[1]<(eh(v[0]-x)<zh?z:A):z<=v[1]&&v[1]<=A:B>wh^(x<=v[0]&&v[0]<=y)){var E=oc(q,(-r+u)/s);return nc(E,o),[v,qc(E)]}}}function e(b,c){var d=g?a:wh-a,e=0;return-d>b?e|=1:b>d&&(e|=2),-d>c?e|=4:c>d&&(e|=8),e}var f=Math.cos(a),g=f>0,h=eh(f)>zh,i=jd(a,6*Bh);return Bc(b,c,i,g?[0,-a]:[-wh,a-wh])}function Kc(a,b,c,d){return function(e){var f,g=e.a,h=e.b,i=g.x,j=g.y,k=h.x,l=h.y,m=0,n=1,o=k-i,p=l-j;if(f=a-i,o||!(f>0)){if(f/=o,0>o){if(m>f)return;n>f&&(n=f)}else if(o>0){if(f>n)return;f>m&&(m=f)}if(f=c-i,o||!(0>f)){if(f/=o,0>o){if(f>n)return;f>m&&(m=f)}else if(o>0){if(m>f)return;n>f&&(n=f)}if(f=b-j,p||!(f>0)){if(f/=p,0>p){if(m>f)return;n>f&&(n=f)}else if(p>0){if(f>n)return;f>m&&(m=f)}if(f=d-j,p||!(0>f)){if(f/=p,0>p){if(f>n)return;f>m&&(m=f)}else if(p>0){if(m>f)return;n>f&&(n=f)}return m>0&&(e.a={x:i+m*o,y:j+m*p}),1>n&&(e.b={x:i+n*o,y:j+n*p}),e}}}}}}function Lc(a,b,c,d){function e(d,e){return eh(d[0]-a)<zh?e>0?0:3:eh(d[0]-c)<zh?e>0?2:1:eh(d[1]-b)<zh?e>0?1:0:e>0?3:2}function f(a,b){return g(a.x,b.x)}function g(a,b){var c=e(a,1),d=e(b,1);return c!==d?c-d:0===c?b[1]-a[1]:1===c?a[0]-b[0]:2===c?a[1]-b[1]:b[0]-a[0]}return function(h){function i(a){for(var b=0,c=q.length,d=a[1],e=0;c>e;++e)for(var f,g=1,h=q[e],i=h.length,j=h[0];i>g;++g)f=h[g],j[1]<=d?f[1]>d&&X(j,f,a)>0&&++b:f[1]<=d&&X(j,f,a)<0&&--b,j=f;return 0!==b}function j(f,h,i,j){var k=0,l=0;if(null==f||(k=e(f,i))!==(l=e(h,i))||g(f,h)<0^i>0){do j.point(0===k||3===k?a:c,k>1?d:b);while((k=(k+i+4)%4)!==l)}else j.point(h[0],h[1])}function k(e,f){return e>=a&&c>=e&&f>=b&&d>=f}function l(a,b){k(a,b)&&h.point(a,b)}function m(){D.point=o,q&&q.push(r=[]),y=!0,x=!1,v=w=0/0}function n(){p&&(o(s,t),u&&x&&B.rejoin(),p.push(B.buffer())),D.point=l,x&&h.lineEnd()}function o(a,b){a=Math.max(-zi,Math.min(zi,a)),b=Math.max(-zi,Math.min(zi,b));var c=k(a,b);if(q&&r.push([a,b]),y)s=a,t=b,u=c,y=!1,c&&(h.lineStart(),h.point(a,b));else if(c&&x)h.point(a,b);else{var d={a:{x:v,y:w},b:{x:a,y:b}};C(d)?(x||(h.lineStart(),h.point(d.a.x,d.a.y)),h.point(d.b.x,d.b.y),c||h.lineEnd(),z=!1):c&&(h.lineStart(),h.point(a,b),z=!1)}v=a,w=b,x=c}var p,q,r,s,t,u,v,w,x,y,z,A=h,B=Dc(),C=Kc(a,b,c,d),D={point:l,lineStart:m,lineEnd:n,polygonStart:function(){h=B,p=[],q=[],z=!0},polygonEnd:function(){h=A,p=Sg.merge(p);var b=i([a,d]),c=z&&b,e=p.length;(c||e)&&(h.polygonStart(),c&&(h.lineStart(),j(null,null,1,h),h.lineEnd()),e&&yc(p,f,b,j,h),h.polygonEnd()),p=q=r=null}};return D}}function Mc(a,b){function c(c,d){return c=a(c,d),b(c[0],c[1])}return a.invert&&b.invert&&(c.invert=function(c,d){return c=b.invert(c,d),c&&a.invert(c[0],c[1])}),c}function Nc(a){var b=0,c=wh/3,d=bd(a),e=d(b,c);return e.parallels=function(a){return arguments.length?d(b=a[0]*wh/180,c=a[1]*wh/180):[b/wh*180,c/wh*180]},e}function Oc(a,b){function c(a,b){var c=Math.sqrt(f-2*e*Math.sin(b))/e;return[c*Math.sin(a*=e),g-c*Math.cos(a)]}var d=Math.sin(a),e=(d+Math.sin(b))/2,f=1+d*(2*e-d),g=Math.sqrt(f)/e;return c.invert=function(a,b){var c=g-b;return[Math.atan2(a,c)/e,Z((f-(a*a+c*c)*e*e)/(2*e))]},c}function Pc(){function a(a,b){Bi+=e*a-d*b,d=a,e=b}var b,c,d,e;Gi.point=function(f,g){Gi.point=a,b=d=f,c=e=g},Gi.lineEnd=function(){a(b,c)}}function Qc(a,b){Ci>a&&(Ci=a),a>Ei&&(Ei=a),Di>b&&(Di=b),b>Fi&&(Fi=b)}function Rc(){function a(a,b){g.push("M",a,",",b,f)}function b(a,b){g.push("M",a,",",b),h.point=c}function c(a,b){g.push("L",a,",",b)}function d(){h.point=a}function e(){g.push("Z")}var f=Sc(4.5),g=[],h={point:a,lineStart:function(){h.point=b},lineEnd:d,polygonStart:function(){h.lineEnd=e},polygonEnd:function(){h.lineEnd=d,h.point=a},pointRadius:function(a){return f=Sc(a),h},result:function(){if(g.length){var a=g.join("");return g=[],a}}};return h}function Sc(a){return"m0,"+a+"a"+a+","+a+" 0 1,1 0,"+-2*a+"a"+a+","+a+" 0 1,1 0,"+2*a+"z"}function Tc(a,b){oi+=a,pi+=b,++qi}function Uc(){function a(a,d){var e=a-b,f=d-c,g=Math.sqrt(e*e+f*f);ri+=g*(b+a)/2,si+=g*(c+d)/2,ti+=g,Tc(b=a,c=d)}var b,c;Ii.point=function(d,e){Ii.point=a,Tc(b=d,c=e)}}function Vc(){Ii.point=Tc}function Wc(){function a(a,b){var c=a-d,f=b-e,g=Math.sqrt(c*c+f*f);ri+=g*(d+a)/2,si+=g*(e+b)/2,ti+=g,g=e*a-d*b,ui+=g*(d+a),vi+=g*(e+b),wi+=3*g,Tc(d=a,e=b)}var b,c,d,e;Ii.point=function(f,g){Ii.point=a,Tc(b=d=f,c=e=g)},Ii.lineEnd=function(){a(b,c)}}function Xc(a){function b(b,c){a.moveTo(b,c),a.arc(b,c,g,0,xh)}function c(b,c){a.moveTo(b,c),h.point=d}function d(b,c){a.lineTo(b,c)}function e(){h.point=b}function f(){a.closePath()}var g=4.5,h={point:b,lineStart:function(){h.point=c},lineEnd:e,polygonStart:function(){h.lineEnd=f},polygonEnd:function(){h.lineEnd=e,h.point=b},pointRadius:function(a){return g=a,h},result:p};return h}function Yc(a){function b(a){return(h?d:c)(a)}function c(b){return _c(b,function(c,d){c=a(c,d),b.point(c[0],c[1])})}function d(b){function c(c,d){c=a(c,d),b.point(c[0],c[1])}function d(){t=0/0,y.point=f,b.lineStart()}function f(c,d){var f=kc([c,d]),g=a(c,d);e(t,u,s,v,w,x,t=g[0],u=g[1],s=c,v=f[0],w=f[1],x=f[2],h,b),b.point(t,u)}function g(){y.point=c,b.lineEnd()}function i(){d(),y.point=j,y.lineEnd=k}function j(a,b){f(l=a,m=b),n=t,o=u,p=v,q=w,r=x,y.point=f}function k(){e(t,u,s,v,w,x,n,o,l,p,q,r,h,b),y.lineEnd=g,g()}var l,m,n,o,p,q,r,s,t,u,v,w,x,y={point:c,lineStart:d,lineEnd:g,polygonStart:function(){b.polygonStart(),y.lineStart=i},polygonEnd:function(){b.polygonEnd(),y.lineStart=d}};return y}function e(b,c,d,h,i,j,k,l,m,n,o,p,q,r){var s=k-b,t=l-c,u=s*s+t*t;if(u>4*f&&q--){var v=h+n,w=i+o,x=j+p,y=Math.sqrt(v*v+w*w+x*x),z=Math.asin(x/=y),A=eh(eh(x)-1)<zh||eh(d-m)<zh?(d+m)/2:Math.atan2(w,v),B=a(A,z),C=B[0],D=B[1],E=C-b,F=D-c,G=t*E-s*F;(G*G/u>f||eh((s*E+t*F)/u-.5)>.3||g>h*n+i*o+j*p)&&(e(b,c,d,h,i,j,C,D,A,v/=y,w/=y,x,q,r),r.point(C,D),e(C,D,A,v,w,x,k,l,m,n,o,p,q,r))}}var f=.5,g=Math.cos(30*Bh),h=16;return b.precision=function(a){return arguments.length?(h=(f=a*a)>0&&16,b):Math.sqrt(f)},b}function Zc(a){var b=Yc(function(b,c){return a([b*Ch,c*Ch])});return function(a){return cd(b(a))}}function $c(a){this.stream=a}function _c(a,b){return{point:b,sphere:function(){a.sphere()},lineStart:function(){a.lineStart()},lineEnd:function(){a.lineEnd()},polygonStart:function(){a.polygonStart()},polygonEnd:function(){a.polygonEnd()}}}function ad(a){return bd(function(){return a})()}function bd(a){function b(a){return a=h(a[0]*Bh,a[1]*Bh),[a[0]*m+i,j-a[1]*m]}function c(a){return a=h.invert((a[0]-i)/m,(j-a[1])/m),a&&[a[0]*Ch,a[1]*Ch]}function d(){h=Mc(g=fd(r,s,t),f);var a=f(p,q);return i=n-a[0]*m,j=o+a[1]*m,e()}function e(){return k&&(k.valid=!1,k=null),b}var f,g,h,i,j,k,l=Yc(function(a,b){return a=f(a,b),[a[0]*m+i,j-a[1]*m]}),m=150,n=480,o=250,p=0,q=0,r=0,s=0,t=0,u=yi,v=xb,w=null,x=null;return b.stream=function(a){return k&&(k.valid=!1),k=cd(u(g,l(v(a)))),k.valid=!0,k},b.clipAngle=function(a){return arguments.length?(u=null==a?(w=a,yi):Jc((w=+a)*Bh),e()):w},b.clipExtent=function(a){return arguments.length?(x=a,v=a?Lc(a[0][0],a[0][1],a[1][0],a[1][1]):xb,e()):x},b.scale=function(a){return arguments.length?(m=+a,d()):m},b.translate=function(a){return arguments.length?(n=+a[0],o=+a[1],d()):[n,o]},b.center=function(a){return arguments.length?(p=a[0]%360*Bh,q=a[1]%360*Bh,d()):[p*Ch,q*Ch]},b.rotate=function(a){return arguments.length?(r=a[0]%360*Bh,s=a[1]%360*Bh,t=a.length>2?a[2]%360*Bh:0,d()):[r*Ch,s*Ch,t*Ch]},Sg.rebind(b,l,"precision"),function(){return f=a.apply(this,arguments),b.invert=f.invert&&c,d()}}function cd(a){return _c(a,function(b,c){a.point(b*Bh,c*Bh)})}function dd(a,b){return[a,b]}function ed(a,b){return[a>wh?a-xh:-wh>a?a+xh:a,b]}function fd(a,b,c){return a?b||c?Mc(hd(a),id(b,c)):hd(a):b||c?id(b,c):ed}function gd(a){return function(b,c){return b+=a,[b>wh?b-xh:-wh>b?b+xh:b,c]}}function hd(a){var b=gd(a);return b.invert=gd(-a),b}function id(a,b){function c(a,b){var c=Math.cos(b),h=Math.cos(a)*c,i=Math.sin(a)*c,j=Math.sin(b),k=j*d+h*e;return[Math.atan2(i*f-k*g,h*d-j*e),Z(k*f+i*g)]}var d=Math.cos(a),e=Math.sin(a),f=Math.cos(b),g=Math.sin(b);return c.invert=function(a,b){var c=Math.cos(b),h=Math.cos(a)*c,i=Math.sin(a)*c,j=Math.sin(b),k=j*f-i*g;return[Math.atan2(i*f+j*g,h*d+k*e),Z(k*d-h*e)]},c}function jd(a,b){var c=Math.cos(a),d=Math.sin(a);return function(e,f,g,h){var i=g*b;null!=e?(e=kd(c,e),f=kd(c,f),(g>0?f>e:e>f)&&(e+=g*xh)):(e=a+g*xh,f=a-.5*i);for(var j,k=e;g>0?k>f:f>k;k-=i)h.point((j=qc([c,-d*Math.cos(k),-d*Math.sin(k)]))[0],j[1])}}function kd(a,b){var c=kc(b);c[0]-=a,pc(c);var d=Y(-c[1]);return((-c[2]<0?-d:d)+2*Math.PI-zh)%(2*Math.PI)}function ld(a,b,c){var d=Sg.range(a,b-zh,c).concat(b);return function(a){return d.map(function(b){return[a,b]})}}function md(a,b,c){var d=Sg.range(a,b-zh,c).concat(b);return function(a){return d.map(function(b){return[b,a]})}}function nd(a){return a.source}function od(a){return a.target}function pd(a,b,c,d){var e=Math.cos(b),f=Math.sin(b),g=Math.cos(d),h=Math.sin(d),i=e*Math.cos(a),j=e*Math.sin(a),k=g*Math.cos(c),l=g*Math.sin(c),m=2*Math.asin(Math.sqrt(bb(d-b)+e*g*bb(c-a))),n=1/Math.sin(m),o=m?function(a){var b=Math.sin(a*=m)*n,c=Math.sin(m-a)*n,d=c*i+b*k,e=c*j+b*l,g=c*f+b*h;return[Math.atan2(e,d)*Ch,Math.atan2(g,Math.sqrt(d*d+e*e))*Ch]}:function(){return[a*Ch,b*Ch]};return o.distance=m,o}function qd(){function a(a,e){var f=Math.sin(e*=Bh),g=Math.cos(e),h=eh((a*=Bh)-b),i=Math.cos(h);Ji+=Math.atan2(Math.sqrt((h=g*Math.sin(h))*h+(h=d*f-c*g*i)*h),c*f+d*g*i),b=a,c=f,d=g}var b,c,d;Ki.point=function(e,f){b=e*Bh,c=Math.sin(f*=Bh),d=Math.cos(f),Ki.point=a},Ki.lineEnd=function(){Ki.point=Ki.lineEnd=p}}function rd(a,b){function c(b,c){var d=Math.cos(b),e=Math.cos(c),f=a(d*e);return[f*e*Math.sin(b),f*Math.sin(c)]}return c.invert=function(a,c){var d=Math.sqrt(a*a+c*c),e=b(d),f=Math.sin(e),g=Math.cos(e);return[Math.atan2(a*f,d*g),Math.asin(d&&c*f/d)]},c}function sd(a,b){function c(a,b){g>0?-yh+zh>b&&(b=-yh+zh):b>yh-zh&&(b=yh-zh);var c=g/Math.pow(e(b),f);return[c*Math.sin(f*a),g-c*Math.cos(f*a)]}var d=Math.cos(a),e=function(a){return Math.tan(wh/4+a/2)},f=a===b?Math.sin(a):Math.log(d/Math.cos(b))/Math.log(e(b)/e(a)),g=d*Math.pow(e(a),f)/f;return f?(c.invert=function(a,b){var c=g-b,d=W(f)*Math.sqrt(a*a+c*c);return[Math.atan2(a,c)/f,2*Math.atan(Math.pow(g/d,1/f))-yh]},c):ud}function td(a,b){function c(a,b){var c=f-b;return[c*Math.sin(e*a),f-c*Math.cos(e*a)]}var d=Math.cos(a),e=a===b?Math.sin(a):(d-Math.cos(b))/(b-a),f=d/e+a;return eh(e)<zh?dd:(c.invert=function(a,b){var c=f-b;return[Math.atan2(a,c)/e,f-W(e)*Math.sqrt(a*a+c*c)]},c)}function ud(a,b){return[a,Math.log(Math.tan(wh/4+b/2))]}function vd(a){var b,c=ad(a),d=c.scale,e=c.translate,f=c.clipExtent;return c.scale=function(){var a=d.apply(c,arguments);return a===c?b?c.clipExtent(null):c:a},c.translate=function(){var a=e.apply(c,arguments);return a===c?b?c.clipExtent(null):c:a},c.clipExtent=function(a){var g=f.apply(c,arguments);if(g===c){if(b=null==a){var h=wh*d(),i=e();f([[i[0]-h,i[1]-h],[i[0]+h,i[1]+h]])}}else b&&(g=null);return g},c.clipExtent(null)}function wd(a,b){return[Math.log(Math.tan(wh/4+b/2)),-a]}function xd(a){return a[0]}function yd(a){return a[1]}function zd(a){for(var b=a.length,c=[0,1],d=2,e=2;b>e;e++){for(;d>1&&X(a[c[d-2]],a[c[d-1]],a[e])<=0;)--d;c[d++]=e}return c.slice(0,d)}function Ad(a,b){return a[0]-b[0]||a[1]-b[1]}function Bd(a,b,c){return(c[0]-b[0])*(a[1]-b[1])<(c[1]-b[1])*(a[0]-b[0])}function Cd(a,b,c,d){var e=a[0],f=c[0],g=b[0]-e,h=d[0]-f,i=a[1],j=c[1],k=b[1]-i,l=d[1]-j,m=(h*(i-j)-l*(e-f))/(l*g-h*k);return[e+m*g,i+m*k]}function Dd(a){var b=a[0],c=a[a.length-1];return!(b[0]-c[0]||b[1]-c[1])}function Ed(){Zd(this),this.edge=this.site=this.circle=null}function Fd(a){var b=Wi.pop()||new Ed;return b.site=a,b}function Gd(a){Qd(a),Ti.remove(a),Wi.push(a),Zd(a)}function Hd(a){var b=a.circle,c=b.x,d=b.cy,e={x:c,y:d},f=a.P,g=a.N,h=[a];Gd(a);for(var i=f;i.circle&&eh(c-i.circle.x)<zh&&eh(d-i.circle.cy)<zh;)f=i.P,h.unshift(i),Gd(i),i=f;h.unshift(i),Qd(i);for(var j=g;j.circle&&eh(c-j.circle.x)<zh&&eh(d-j.circle.cy)<zh;)g=j.N,h.push(j),Gd(j),j=g;h.push(j),Qd(j);var k,l=h.length;for(k=1;l>k;++k)j=h[k],i=h[k-1],Wd(j.edge,i.site,j.site,e);i=h[0],j=h[l-1],j.edge=Ud(i.site,j.site,null,e),Pd(i),Pd(j)}function Id(a){for(var b,c,d,e,f=a.x,g=a.y,h=Ti._;h;)if(d=Jd(h,g)-f,d>zh)h=h.L;else{if(e=f-Kd(h,g),!(e>zh)){d>-zh?(b=h.P,c=h):e>-zh?(b=h,c=h.N):b=c=h;break}if(!h.R){b=h;break}h=h.R}var i=Fd(a);if(Ti.insert(b,i),b||c){if(b===c)return Qd(b),c=Fd(b.site),Ti.insert(i,c),i.edge=c.edge=Ud(b.site,i.site),Pd(b),void Pd(c);if(!c)return void(i.edge=Ud(b.site,i.site));Qd(b),Qd(c);var j=b.site,k=j.x,l=j.y,m=a.x-k,n=a.y-l,o=c.site,p=o.x-k,q=o.y-l,r=2*(m*q-n*p),s=m*m+n*n,t=p*p+q*q,u={x:(q*s-n*t)/r+k,y:(m*t-p*s)/r+l};Wd(c.edge,j,o,u),i.edge=Ud(j,a,null,u),c.edge=Ud(a,o,null,u),Pd(b),Pd(c)}}function Jd(a,b){var c=a.site,d=c.x,e=c.y,f=e-b;if(!f)return d;var g=a.P;if(!g)return-1/0;c=g.site;var h=c.x,i=c.y,j=i-b;if(!j)return h;var k=h-d,l=1/f-1/j,m=k/j;return l?(-m+Math.sqrt(m*m-2*l*(k*k/(-2*j)-i+j/2+e-f/2)))/l+d:(d+h)/2}function Kd(a,b){var c=a.N;if(c)return Jd(c,b);var d=a.site;return d.y===b?d.x:1/0}function Ld(a){this.site=a,this.edges=[]}function Md(a){for(var b,c,d,e,f,g,h,i,j,k,l=a[0][0],m=a[1][0],n=a[0][1],o=a[1][1],p=Si,q=p.length;q--;)if(f=p[q],f&&f.prepare())for(h=f.edges,i=h.length,g=0;i>g;)k=h[g].end(),d=k.x,e=k.y,j=h[++g%i].start(),b=j.x,c=j.y,(eh(d-b)>zh||eh(e-c)>zh)&&(h.splice(g,0,new Xd(Vd(f.site,k,eh(d-l)<zh&&o-e>zh?{x:l,y:eh(b-l)<zh?c:o}:eh(e-o)<zh&&m-d>zh?{x:eh(c-o)<zh?b:m,y:o}:eh(d-m)<zh&&e-n>zh?{x:m,y:eh(b-m)<zh?c:n}:eh(e-n)<zh&&d-l>zh?{x:eh(c-n)<zh?b:l,y:n}:null),f.site,null)),++i)}function Nd(a,b){return b.angle-a.angle}function Od(){Zd(this),this.x=this.y=this.arc=this.site=this.cy=null}function Pd(a){var b=a.P,c=a.N;if(b&&c){var d=b.site,e=a.site,f=c.site;if(d!==f){var g=e.x,h=e.y,i=d.x-g,j=d.y-h,k=f.x-g,l=f.y-h,m=2*(i*l-j*k);if(!(m>=-Ah)){var n=i*i+j*j,o=k*k+l*l,p=(l*n-j*o)/m,q=(i*o-k*n)/m,l=q+h,r=Xi.pop()||new Od;r.arc=a,r.site=e,r.x=p+g,r.y=l+Math.sqrt(p*p+q*q),r.cy=l,a.circle=r;for(var s=null,t=Vi._;t;)if(r.y<t.y||r.y===t.y&&r.x<=t.x){if(!t.L){s=t.P;break}t=t.L}else{if(!t.R){s=t;break}t=t.R}Vi.insert(s,r),s||(Ui=r)}}}}function Qd(a){var b=a.circle;b&&(b.P||(Ui=b.N),Vi.remove(b),Xi.push(b),Zd(b),a.circle=null)}function Rd(a){for(var b,c=Ri,d=Kc(a[0][0],a[0][1],a[1][0],a[1][1]),e=c.length;e--;)b=c[e],(!Sd(b,a)||!d(b)||eh(b.a.x-b.b.x)<zh&&eh(b.a.y-b.b.y)<zh)&&(b.a=b.b=null,c.splice(e,1))}function Sd(a,b){var c=a.b;if(c)return!0;var d,e,f=a.a,g=b[0][0],h=b[1][0],i=b[0][1],j=b[1][1],k=a.l,l=a.r,m=k.x,n=k.y,o=l.x,p=l.y,q=(m+o)/2,r=(n+p)/2;if(p===n){if(g>q||q>=h)return;if(m>o){if(f){if(f.y>=j)return}else f={x:q,y:i};c={x:q,y:j}}else{if(f){if(f.y<i)return}else f={x:q,y:j};c={x:q,y:i}}}else if(d=(m-o)/(p-n),e=r-d*q,-1>d||d>1)if(m>o){if(f){if(f.y>=j)return}else f={x:(i-e)/d,y:i};c={x:(j-e)/d,y:j}}else{if(f){if(f.y<i)return}else f={x:(j-e)/d,y:j};c={x:(i-e)/d,y:i}}else if(p>n){if(f){if(f.x>=h)return}else f={x:g,y:d*g+e};c={x:h,y:d*h+e}}else{if(f){if(f.x<g)return}else f={x:h,y:d*h+e};c={x:g,y:d*g+e}}return a.a=f,a.b=c,!0}function Td(a,b){this.l=a,this.r=b,this.a=this.b=null}function Ud(a,b,c,d){var e=new Td(a,b);return Ri.push(e),c&&Wd(e,a,b,c),d&&Wd(e,b,a,d),Si[a.i].edges.push(new Xd(e,a,b)),Si[b.i].edges.push(new Xd(e,b,a)),e}function Vd(a,b,c){var d=new Td(a,null);return d.a=b,d.b=c,Ri.push(d),d}function Wd(a,b,c,d){a.a||a.b?a.l===c?a.b=d:a.a=d:(a.a=d,a.l=b,a.r=c)}function Xd(a,b,c){var d=a.a,e=a.b;this.edge=a,this.site=b,this.angle=c?Math.atan2(c.y-b.y,c.x-b.x):a.l===b?Math.atan2(e.x-d.x,d.y-e.y):Math.atan2(d.x-e.x,e.y-d.y)}function Yd(){this._=null}function Zd(a){a.U=a.C=a.L=a.R=a.P=a.N=null}function $d(a,b){var c=b,d=b.R,e=c.U;e?e.L===c?e.L=d:e.R=d:a._=d,d.U=e,c.U=d,c.R=d.L,c.R&&(c.R.U=c),d.L=c}function _d(a,b){var c=b,d=b.L,e=c.U;e?e.L===c?e.L=d:e.R=d:a._=d,d.U=e,c.U=d,c.L=d.R,c.L&&(c.L.U=c),d.R=c}function ae(a){for(;a.L;)a=a.L;return a}function be(a,b){var c,d,e,f=a.sort(ce).pop();for(Ri=[],Si=new Array(a.length),Ti=new Yd,Vi=new Yd;;)if(e=Ui,f&&(!e||f.y<e.y||f.y===e.y&&f.x<e.x))(f.x!==c||f.y!==d)&&(Si[f.i]=new Ld(f),Id(f),c=f.x,d=f.y),f=a.pop();else{if(!e)break;Hd(e.arc)}b&&(Rd(b),Md(b));var g={cells:Si,edges:Ri};return Ti=Vi=Ri=Si=null,g}function ce(a,b){return b.y-a.y||b.x-a.x}function de(a,b,c){return(a.x-c.x)*(b.y-a.y)-(a.x-b.x)*(c.y-a.y)}function ee(a){return a.x}function fe(a){return a.y}function ge(){return{leaf:!0,nodes:[],point:null,x:null,y:null}}function he(a,b,c,d,e,f){if(!a(b,c,d,e,f)){var g=.5*(c+e),h=.5*(d+f),i=b.nodes;i[0]&&he(a,i[0],c,d,g,h),i[1]&&he(a,i[1],g,d,e,h),i[2]&&he(a,i[2],c,h,g,f),i[3]&&he(a,i[3],g,h,e,f)}}function ie(a,b){a=Sg.rgb(a),b=Sg.rgb(b);var c=a.r,d=a.g,e=a.b,f=b.r-c,g=b.g-d,h=b.b-e;return function(a){return"#"+qb(Math.round(c+f*a))+qb(Math.round(d+g*a))+qb(Math.round(e+h*a))}}function je(a,b){var c,d={},e={};for(c in a)c in b?d[c]=me(a[c],b[c]):e[c]=a[c];for(c in b)c in a||(e[c]=b[c]);return function(a){for(c in d)e[c]=d[c](a);return e}}function ke(a,b){return b-=a=+a,function(c){return a+b*c}}function le(a,b){var c,d,e,f=Zi.lastIndex=$i.lastIndex=0,g=-1,h=[],i=[];for(a+="",b+="";(c=Zi.exec(a))&&(d=$i.exec(b));)(e=d.index)>f&&(e=b.substring(f,e),h[g]?h[g]+=e:h[++g]=e),(c=c[0])===(d=d[0])?h[g]?h[g]+=d:h[++g]=d:(h[++g]=null,i.push({i:g,x:ke(c,d)})),f=$i.lastIndex;return f<b.length&&(e=b.substring(f),h[g]?h[g]+=e:h[++g]=e),h.length<2?i[0]?(b=i[0].x,function(a){return b(a)+""}):function(){return b}:(b=i.length,function(a){for(var c,d=0;b>d;++d)h[(c=i[d]).i]=c.x(a);return h.join("")})}function me(a,b){for(var c,d=Sg.interpolators.length;--d>=0&&!(c=Sg.interpolators[d](a,b)););return c}function ne(a,b){var c,d=[],e=[],f=a.length,g=b.length,h=Math.min(a.length,b.length);for(c=0;h>c;++c)d.push(me(a[c],b[c]));for(;f>c;++c)e[c]=a[c];for(;g>c;++c)e[c]=b[c];return function(a){for(c=0;h>c;++c)e[c]=d[c](a);return e}}function oe(a){return function(b){return 0>=b?0:b>=1?1:a(b)}}function pe(a){return function(b){return 1-a(1-b)}}function qe(a){return function(b){return.5*(.5>b?a(2*b):2-a(2-2*b))}}function re(a){return a*a}function se(a){return a*a*a}function te(a){if(0>=a)return 0;if(a>=1)return 1;var b=a*a,c=b*a;return 4*(.5>a?c:3*(a-b)+c-.75)}function ue(a){return function(b){return Math.pow(b,a)}}function ve(a){return 1-Math.cos(a*yh)}function we(a){return Math.pow(2,10*(a-1))}function xe(a){return 1-Math.sqrt(1-a*a)}function ye(a,b){var c;return arguments.length<2&&(b=.45),arguments.length?c=b/xh*Math.asin(1/a):(a=1,c=b/4),function(d){return 1+a*Math.pow(2,-10*d)*Math.sin((d-c)*xh/b)}}function ze(a){return a||(a=1.70158),function(b){return b*b*((a+1)*b-a)}}function Ae(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375}function Be(a,b){a=Sg.hcl(a),b=Sg.hcl(b);var c=a.h,d=a.c,e=a.l,f=b.h-c,g=b.c-d,h=b.l-e;return isNaN(g)&&(g=0,d=isNaN(d)?b.c:d),isNaN(f)?(f=0,c=isNaN(c)?b.h:c):f>180?f-=360:-180>f&&(f+=360),function(a){return gb(c+f*a,d+g*a,e+h*a)+""}}function Ce(a,b){a=Sg.hsl(a),b=Sg.hsl(b);var c=a.h,d=a.s,e=a.l,f=b.h-c,g=b.s-d,h=b.l-e;return isNaN(g)&&(g=0,d=isNaN(d)?b.s:d),isNaN(f)?(f=0,c=isNaN(c)?b.h:c):f>180?f-=360:-180>f&&(f+=360),function(a){return eb(c+f*a,d+g*a,e+h*a)+""}}function De(a,b){a=Sg.lab(a),b=Sg.lab(b);var c=a.l,d=a.a,e=a.b,f=b.l-c,g=b.a-d,h=b.b-e;return function(a){return ib(c+f*a,d+g*a,e+h*a)+""}}function Ee(a,b){return b-=a,function(c){return Math.round(a+b*c)}}function Fe(a){var b=[a.a,a.b],c=[a.c,a.d],d=He(b),e=Ge(b,c),f=He(Ie(c,b,-e))||0;b[0]*c[1]<c[0]*b[1]&&(b[0]*=-1,b[1]*=-1,d*=-1,e*=-1),this.rotate=(d?Math.atan2(b[1],b[0]):Math.atan2(-c[0],c[1]))*Ch,this.translate=[a.e,a.f],this.scale=[d,f],this.skew=f?Math.atan2(e,f)*Ch:0}function Ge(a,b){return a[0]*b[0]+a[1]*b[1]}function He(a){var b=Math.sqrt(Ge(a,a));return b&&(a[0]/=b,a[1]/=b),b}function Ie(a,b,c){return a[0]+=c*b[0],a[1]+=c*b[1],a}function Je(a,b){var c,d=[],e=[],f=Sg.transform(a),g=Sg.transform(b),h=f.translate,i=g.translate,j=f.rotate,k=g.rotate,l=f.skew,m=g.skew,n=f.scale,o=g.scale;return h[0]!=i[0]||h[1]!=i[1]?(d.push("translate(",null,",",null,")"),e.push({i:1,x:ke(h[0],i[0])},{i:3,x:ke(h[1],i[1])})):d.push(i[0]||i[1]?"translate("+i+")":""),j!=k?(j-k>180?k+=360:k-j>180&&(j+=360),e.push({i:d.push(d.pop()+"rotate(",null,")")-2,x:ke(j,k)})):k&&d.push(d.pop()+"rotate("+k+")"),l!=m?e.push({i:d.push(d.pop()+"skewX(",null,")")-2,x:ke(l,m)}):m&&d.push(d.pop()+"skewX("+m+")"),n[0]!=o[0]||n[1]!=o[1]?(c=d.push(d.pop()+"scale(",null,",",null,")"),e.push({i:c-4,x:ke(n[0],o[0])},{i:c-2,x:ke(n[1],o[1])})):(1!=o[0]||1!=o[1])&&d.push(d.pop()+"scale("+o+")"),c=e.length,function(a){for(var b,f=-1;++f<c;)d[(b=e[f]).i]=b.x(a);return d.join("")}}function Ke(a,b){return b=b-(a=+a)?1/(b-a):0,function(c){return(c-a)*b}}function Le(a,b){return b=b-(a=+a)?1/(b-a):0,function(c){return Math.max(0,Math.min(1,(c-a)*b))}}function Me(a){for(var b=a.source,c=a.target,d=Oe(b,c),e=[b];b!==d;)b=b.parent,e.push(b);for(var f=e.length;c!==d;)e.splice(f,0,c),c=c.parent;return e}function Ne(a){for(var b=[],c=a.parent;null!=c;)b.push(a),a=c,c=c.parent;
return b.push(a),b}function Oe(a,b){if(a===b)return a;for(var c=Ne(a),d=Ne(b),e=c.pop(),f=d.pop(),g=null;e===f;)g=e,e=c.pop(),f=d.pop();return g}function Pe(a){a.fixed|=2}function Qe(a){a.fixed&=-7}function Re(a){a.fixed|=4,a.px=a.x,a.py=a.y}function Se(a){a.fixed&=-5}function Te(a,b,c){var d=0,e=0;if(a.charge=0,!a.leaf)for(var f,g=a.nodes,h=g.length,i=-1;++i<h;)f=g[i],null!=f&&(Te(f,b,c),a.charge+=f.charge,d+=f.charge*f.cx,e+=f.charge*f.cy);if(a.point){a.leaf||(a.point.x+=Math.random()-.5,a.point.y+=Math.random()-.5);var j=b*c[a.point.index];a.charge+=a.pointCharge=j,d+=j*a.point.x,e+=j*a.point.y}a.cx=d/a.charge,a.cy=e/a.charge}function Ue(a,b){return Sg.rebind(a,b,"sort","children","value"),a.nodes=a,a.links=$e,a}function Ve(a,b){for(var c=[a];null!=(a=c.pop());)if(b(a),(e=a.children)&&(d=e.length))for(var d,e;--d>=0;)c.push(e[d])}function We(a,b){for(var c=[a],d=[];null!=(a=c.pop());)if(d.push(a),(f=a.children)&&(e=f.length))for(var e,f,g=-1;++g<e;)c.push(f[g]);for(;null!=(a=d.pop());)b(a)}function Xe(a){return a.children}function Ye(a){return a.value}function Ze(a,b){return b.value-a.value}function $e(a){return Sg.merge(a.map(function(a){return(a.children||[]).map(function(b){return{source:a,target:b}})}))}function _e(a){return a.x}function af(a){return a.y}function bf(a,b,c){a.y0=b,a.y=c}function cf(a){return Sg.range(a.length)}function df(a){for(var b=-1,c=a[0].length,d=[];++b<c;)d[b]=0;return d}function ef(a){for(var b,c=1,d=0,e=a[0][1],f=a.length;f>c;++c)(b=a[c][1])>e&&(d=c,e=b);return d}function ff(a){return a.reduce(gf,0)}function gf(a,b){return a+b[1]}function hf(a,b){return jf(a,Math.ceil(Math.log(b.length)/Math.LN2+1))}function jf(a,b){for(var c=-1,d=+a[0],e=(a[1]-d)/b,f=[];++c<=b;)f[c]=e*c+d;return f}function kf(a){return[Sg.min(a),Sg.max(a)]}function lf(a,b){return a.value-b.value}function mf(a,b){var c=a._pack_next;a._pack_next=b,b._pack_prev=a,b._pack_next=c,c._pack_prev=b}function nf(a,b){a._pack_next=b,b._pack_prev=a}function of(a,b){var c=b.x-a.x,d=b.y-a.y,e=a.r+b.r;return.999*e*e>c*c+d*d}function pf(a){function b(a){k=Math.min(a.x-a.r,k),l=Math.max(a.x+a.r,l),m=Math.min(a.y-a.r,m),n=Math.max(a.y+a.r,n)}if((c=a.children)&&(j=c.length)){var c,d,e,f,g,h,i,j,k=1/0,l=-1/0,m=1/0,n=-1/0;if(c.forEach(qf),d=c[0],d.x=-d.r,d.y=0,b(d),j>1&&(e=c[1],e.x=e.r,e.y=0,b(e),j>2))for(f=c[2],tf(d,e,f),b(f),mf(d,f),d._pack_prev=f,mf(f,e),e=d._pack_next,g=3;j>g;g++){tf(d,e,f=c[g]);var o=0,p=1,q=1;for(h=e._pack_next;h!==e;h=h._pack_next,p++)if(of(h,f)){o=1;break}if(1==o)for(i=d._pack_prev;i!==h._pack_prev&&!of(i,f);i=i._pack_prev,q++);o?(q>p||p==q&&e.r<d.r?nf(d,e=h):nf(d=i,e),g--):(mf(d,f),e=f,b(f))}var r=(k+l)/2,s=(m+n)/2,t=0;for(g=0;j>g;g++)f=c[g],f.x-=r,f.y-=s,t=Math.max(t,f.r+Math.sqrt(f.x*f.x+f.y*f.y));a.r=t,c.forEach(rf)}}function qf(a){a._pack_next=a._pack_prev=a}function rf(a){delete a._pack_next,delete a._pack_prev}function sf(a,b,c,d){var e=a.children;if(a.x=b+=d*a.x,a.y=c+=d*a.y,a.r*=d,e)for(var f=-1,g=e.length;++f<g;)sf(e[f],b,c,d)}function tf(a,b,c){var d=a.r+c.r,e=b.x-a.x,f=b.y-a.y;if(d&&(e||f)){var g=b.r+c.r,h=e*e+f*f;g*=g,d*=d;var i=.5+(d-g)/(2*h),j=Math.sqrt(Math.max(0,2*g*(d+h)-(d-=h)*d-g*g))/(2*h);c.x=a.x+i*e+j*f,c.y=a.y+i*f-j*e}else c.x=a.x+d,c.y=a.y}function uf(a,b){return a.parent==b.parent?1:2}function vf(a){var b=a.children;return b.length?b[0]:a.t}function wf(a){var b,c=a.children;return(b=c.length)?c[b-1]:a.t}function xf(a,b,c){var d=c/(b.i-a.i);b.c-=d,b.s+=c,a.c+=d,b.z+=c,b.m+=c}function yf(a){for(var b,c=0,d=0,e=a.children,f=e.length;--f>=0;)b=e[f],b.z+=c,b.m+=c,c+=b.s+(d+=b.c)}function zf(a,b,c){return a.a.parent===b.parent?a.a:c}function Af(a){return 1+Sg.max(a,function(a){return a.y})}function Bf(a){return a.reduce(function(a,b){return a+b.x},0)/a.length}function Cf(a){var b=a.children;return b&&b.length?Cf(b[0]):a}function Df(a){var b,c=a.children;return c&&(b=c.length)?Df(c[b-1]):a}function Ef(a){return{x:a.x,y:a.y,dx:a.dx,dy:a.dy}}function Ff(a,b){var c=a.x+b[3],d=a.y+b[0],e=a.dx-b[1]-b[3],f=a.dy-b[0]-b[2];return 0>e&&(c+=e/2,e=0),0>f&&(d+=f/2,f=0),{x:c,y:d,dx:e,dy:f}}function Gf(a){var b=a[0],c=a[a.length-1];return c>b?[b,c]:[c,b]}function Hf(a){return a.rangeExtent?a.rangeExtent():Gf(a.range())}function If(a,b,c,d){var e=c(a[0],a[1]),f=d(b[0],b[1]);return function(a){return f(e(a))}}function Jf(a,b){var c,d=0,e=a.length-1,f=a[d],g=a[e];return f>g&&(c=d,d=e,e=c,c=f,f=g,g=c),a[d]=b.floor(f),a[e]=b.ceil(g),a}function Kf(a){return a?{floor:function(b){return Math.floor(b/a)*a},ceil:function(b){return Math.ceil(b/a)*a}}:jj}function Lf(a,b,c,d){var e=[],f=[],g=0,h=Math.min(a.length,b.length)-1;for(a[h]<a[0]&&(a=a.slice().reverse(),b=b.slice().reverse());++g<=h;)e.push(c(a[g-1],a[g])),f.push(d(b[g-1],b[g]));return function(b){var c=Sg.bisect(a,b,1,h)-1;return f[c](e[c](b))}}function Mf(a,b,c,d){function e(){var e=Math.min(a.length,b.length)>2?Lf:If,i=d?Le:Ke;return g=e(a,b,i,c),h=e(b,a,i,me),f}function f(a){return g(a)}var g,h;return f.invert=function(a){return h(a)},f.domain=function(b){return arguments.length?(a=b.map(Number),e()):a},f.range=function(a){return arguments.length?(b=a,e()):b},f.rangeRound=function(a){return f.range(a).interpolate(Ee)},f.clamp=function(a){return arguments.length?(d=a,e()):d},f.interpolate=function(a){return arguments.length?(c=a,e()):c},f.ticks=function(b){return Qf(a,b)},f.tickFormat=function(b,c){return Rf(a,b,c)},f.nice=function(b){return Of(a,b),e()},f.copy=function(){return Mf(a,b,c,d)},e()}function Nf(a,b){return Sg.rebind(a,b,"range","rangeRound","interpolate","clamp")}function Of(a,b){return Jf(a,Kf(Pf(a,b)[2]))}function Pf(a,b){null==b&&(b=10);var c=Gf(a),d=c[1]-c[0],e=Math.pow(10,Math.floor(Math.log(d/b)/Math.LN10)),f=b/d*e;return.15>=f?e*=10:.35>=f?e*=5:.75>=f&&(e*=2),c[0]=Math.ceil(c[0]/e)*e,c[1]=Math.floor(c[1]/e)*e+.5*e,c[2]=e,c}function Qf(a,b){return Sg.range.apply(Sg,Pf(a,b))}function Rf(a,b,c){var d=Pf(a,b);if(c){var e=Zh.exec(c);if(e.shift(),"s"===e[8]){var f=Sg.formatPrefix(Math.max(eh(d[0]),eh(d[1])));return e[7]||(e[7]="."+Sf(f.scale(d[2]))),e[8]="f",c=Sg.format(e.join("")),function(a){return c(f.scale(a))+f.symbol}}e[7]||(e[7]="."+Tf(e[8],d)),c=e.join("")}else c=",."+Sf(d[2])+"f";return Sg.format(c)}function Sf(a){return-Math.floor(Math.log(a)/Math.LN10+.01)}function Tf(a,b){var c=Sf(b[2]);return a in kj?Math.abs(c-Sf(Math.max(eh(b[0]),eh(b[1]))))+ +("e"!==a):c-2*("%"===a)}function Uf(a,b,c,d){function e(a){return(c?Math.log(0>a?0:a):-Math.log(a>0?0:-a))/Math.log(b)}function f(a){return c?Math.pow(b,a):-Math.pow(b,-a)}function g(b){return a(e(b))}return g.invert=function(b){return f(a.invert(b))},g.domain=function(b){return arguments.length?(c=b[0]>=0,a.domain((d=b.map(Number)).map(e)),g):d},g.base=function(c){return arguments.length?(b=+c,a.domain(d.map(e)),g):b},g.nice=function(){var b=Jf(d.map(e),c?Math:mj);return a.domain(b),d=b.map(f),g},g.ticks=function(){var a=Gf(d),g=[],h=a[0],i=a[1],j=Math.floor(e(h)),k=Math.ceil(e(i)),l=b%1?2:b;if(isFinite(k-j)){if(c){for(;k>j;j++)for(var m=1;l>m;m++)g.push(f(j)*m);g.push(f(j))}else for(g.push(f(j));j++<k;)for(var m=l-1;m>0;m--)g.push(f(j)*m);for(j=0;g[j]<h;j++);for(k=g.length;g[k-1]>i;k--);g=g.slice(j,k)}return g},g.tickFormat=function(a,b){if(!arguments.length)return lj;arguments.length<2?b=lj:"function"!=typeof b&&(b=Sg.format(b));var d,h=Math.max(.1,a/g.ticks().length),i=c?(d=1e-12,Math.ceil):(d=-1e-12,Math.floor);return function(a){return a/f(i(e(a)+d))<=h?b(a):""}},g.copy=function(){return Uf(a.copy(),b,c,d)},Nf(g,a)}function Vf(a,b,c){function d(b){return a(e(b))}var e=Wf(b),f=Wf(1/b);return d.invert=function(b){return f(a.invert(b))},d.domain=function(b){return arguments.length?(a.domain((c=b.map(Number)).map(e)),d):c},d.ticks=function(a){return Qf(c,a)},d.tickFormat=function(a,b){return Rf(c,a,b)},d.nice=function(a){return d.domain(Of(c,a))},d.exponent=function(g){return arguments.length?(e=Wf(b=g),f=Wf(1/b),a.domain(c.map(e)),d):b},d.copy=function(){return Vf(a.copy(),b,c)},Nf(d,a)}function Wf(a){return function(b){return 0>b?-Math.pow(-b,a):Math.pow(b,a)}}function Xf(a,b){function c(c){return f[((e.get(c)||("range"===b.t?e.set(c,a.push(c)):0/0))-1)%f.length]}function d(b,c){return Sg.range(a.length).map(function(a){return b+c*a})}var e,f,h;return c.domain=function(d){if(!arguments.length)return a;a=[],e=new g;for(var f,h=-1,i=d.length;++h<i;)e.has(f=d[h])||e.set(f,a.push(f));return c[b.t].apply(c,b.a)},c.range=function(a){return arguments.length?(f=a,h=0,b={t:"range",a:arguments},c):f},c.rangePoints=function(e,g){arguments.length<2&&(g=0);var i=e[0],j=e[1],k=(j-i)/(Math.max(1,a.length-1)+g);return f=d(a.length<2?(i+j)/2:i+k*g/2,k),h=0,b={t:"rangePoints",a:arguments},c},c.rangeBands=function(e,g,i){arguments.length<2&&(g=0),arguments.length<3&&(i=g);var j=e[1]<e[0],k=e[j-0],l=e[1-j],m=(l-k)/(a.length-g+2*i);return f=d(k+m*i,m),j&&f.reverse(),h=m*(1-g),b={t:"rangeBands",a:arguments},c},c.rangeRoundBands=function(e,g,i){arguments.length<2&&(g=0),arguments.length<3&&(i=g);var j=e[1]<e[0],k=e[j-0],l=e[1-j],m=Math.floor((l-k)/(a.length-g+2*i)),n=l-k-(a.length-g)*m;return f=d(k+Math.round(n/2),m),j&&f.reverse(),h=Math.round(m*(1-g)),b={t:"rangeRoundBands",a:arguments},c},c.rangeBand=function(){return h},c.rangeExtent=function(){return Gf(b.a[0])},c.copy=function(){return Xf(a,b)},c.domain(a)}function Yf(c,d){function e(){var a=0,b=d.length;for(g=[];++a<b;)g[a-1]=Sg.quantile(c,a/b);return f}function f(a){return isNaN(a=+a)?void 0:d[Sg.bisect(g,a)]}var g;return f.domain=function(d){return arguments.length?(c=d.filter(b).sort(a),e()):c},f.range=function(a){return arguments.length?(d=a,e()):d},f.quantiles=function(){return g},f.invertExtent=function(a){return a=d.indexOf(a),0>a?[0/0,0/0]:[a>0?g[a-1]:c[0],a<g.length?g[a]:c[c.length-1]]},f.copy=function(){return Yf(c,d)},e()}function Zf(a,b,c){function d(b){return c[Math.max(0,Math.min(g,Math.floor(f*(b-a))))]}function e(){return f=c.length/(b-a),g=c.length-1,d}var f,g;return d.domain=function(c){return arguments.length?(a=+c[0],b=+c[c.length-1],e()):[a,b]},d.range=function(a){return arguments.length?(c=a,e()):c},d.invertExtent=function(b){return b=c.indexOf(b),b=0>b?0/0:b/f+a,[b,b+1/f]},d.copy=function(){return Zf(a,b,c)},e()}function $f(a,b){function c(c){return c>=c?b[Sg.bisect(a,c)]:void 0}return c.domain=function(b){return arguments.length?(a=b,c):a},c.range=function(a){return arguments.length?(b=a,c):b},c.invertExtent=function(c){return c=b.indexOf(c),[a[c-1],a[c]]},c.copy=function(){return $f(a,b)},c}function _f(a){function b(a){return+a}return b.invert=b,b.domain=b.range=function(c){return arguments.length?(a=c.map(b),b):a},b.ticks=function(b){return Qf(a,b)},b.tickFormat=function(b,c){return Rf(a,b,c)},b.copy=function(){return _f(a)},b}function ag(a){return a.innerRadius}function bg(a){return a.outerRadius}function cg(a){return a.startAngle}function dg(a){return a.endAngle}function eg(a){function b(b){function g(){j.push("M",f(a(k),h))}for(var i,j=[],k=[],l=-1,m=b.length,n=wb(c),o=wb(d);++l<m;)e.call(this,i=b[l],l)?k.push([+n.call(this,i,l),+o.call(this,i,l)]):k.length&&(g(),k=[]);return k.length&&g(),j.length?j.join(""):null}var c=xd,d=yd,e=xc,f=fg,g=f.key,h=.7;return b.x=function(a){return arguments.length?(c=a,b):c},b.y=function(a){return arguments.length?(d=a,b):d},b.defined=function(a){return arguments.length?(e=a,b):e},b.interpolate=function(a){return arguments.length?(g="function"==typeof a?f=a:(f=tj.get(a)||fg).key,b):g},b.tension=function(a){return arguments.length?(h=a,b):h},b}function fg(a){return a.join("L")}function gg(a){return fg(a)+"Z"}function hg(a){for(var b=0,c=a.length,d=a[0],e=[d[0],",",d[1]];++b<c;)e.push("H",(d[0]+(d=a[b])[0])/2,"V",d[1]);return c>1&&e.push("H",d[0]),e.join("")}function ig(a){for(var b=0,c=a.length,d=a[0],e=[d[0],",",d[1]];++b<c;)e.push("V",(d=a[b])[1],"H",d[0]);return e.join("")}function jg(a){for(var b=0,c=a.length,d=a[0],e=[d[0],",",d[1]];++b<c;)e.push("H",(d=a[b])[0],"V",d[1]);return e.join("")}function kg(a,b){return a.length<4?fg(a):a[1]+ng(a.slice(1,a.length-1),og(a,b))}function lg(a,b){return a.length<3?fg(a):a[0]+ng((a.push(a[0]),a),og([a[a.length-2]].concat(a,[a[1]]),b))}function mg(a,b){return a.length<3?fg(a):a[0]+ng(a,og(a,b))}function ng(a,b){if(b.length<1||a.length!=b.length&&a.length!=b.length+2)return fg(a);var c=a.length!=b.length,d="",e=a[0],f=a[1],g=b[0],h=g,i=1;if(c&&(d+="Q"+(f[0]-2*g[0]/3)+","+(f[1]-2*g[1]/3)+","+f[0]+","+f[1],e=a[1],i=2),b.length>1){h=b[1],f=a[i],i++,d+="C"+(e[0]+g[0])+","+(e[1]+g[1])+","+(f[0]-h[0])+","+(f[1]-h[1])+","+f[0]+","+f[1];for(var j=2;j<b.length;j++,i++)f=a[i],h=b[j],d+="S"+(f[0]-h[0])+","+(f[1]-h[1])+","+f[0]+","+f[1]}if(c){var k=a[i];d+="Q"+(f[0]+2*h[0]/3)+","+(f[1]+2*h[1]/3)+","+k[0]+","+k[1]}return d}function og(a,b){for(var c,d=[],e=(1-b)/2,f=a[0],g=a[1],h=1,i=a.length;++h<i;)c=f,f=g,g=a[h],d.push([e*(g[0]-c[0]),e*(g[1]-c[1])]);return d}function pg(a){if(a.length<3)return fg(a);var b=1,c=a.length,d=a[0],e=d[0],f=d[1],g=[e,e,e,(d=a[1])[0]],h=[f,f,f,d[1]],i=[e,",",f,"L",tg(wj,g),",",tg(wj,h)];for(a.push(a[c-1]);++b<=c;)d=a[b],g.shift(),g.push(d[0]),h.shift(),h.push(d[1]),ug(i,g,h);return a.pop(),i.push("L",d),i.join("")}function qg(a){if(a.length<4)return fg(a);for(var b,c=[],d=-1,e=a.length,f=[0],g=[0];++d<3;)b=a[d],f.push(b[0]),g.push(b[1]);for(c.push(tg(wj,f)+","+tg(wj,g)),--d;++d<e;)b=a[d],f.shift(),f.push(b[0]),g.shift(),g.push(b[1]),ug(c,f,g);return c.join("")}function rg(a){for(var b,c,d=-1,e=a.length,f=e+4,g=[],h=[];++d<4;)c=a[d%e],g.push(c[0]),h.push(c[1]);for(b=[tg(wj,g),",",tg(wj,h)],--d;++d<f;)c=a[d%e],g.shift(),g.push(c[0]),h.shift(),h.push(c[1]),ug(b,g,h);return b.join("")}function sg(a,b){var c=a.length-1;if(c)for(var d,e,f=a[0][0],g=a[0][1],h=a[c][0]-f,i=a[c][1]-g,j=-1;++j<=c;)d=a[j],e=j/c,d[0]=b*d[0]+(1-b)*(f+e*h),d[1]=b*d[1]+(1-b)*(g+e*i);return pg(a)}function tg(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]+a[3]*b[3]}function ug(a,b,c){a.push("C",tg(uj,b),",",tg(uj,c),",",tg(vj,b),",",tg(vj,c),",",tg(wj,b),",",tg(wj,c))}function vg(a,b){return(b[1]-a[1])/(b[0]-a[0])}function wg(a){for(var b=0,c=a.length-1,d=[],e=a[0],f=a[1],g=d[0]=vg(e,f);++b<c;)d[b]=(g+(g=vg(e=f,f=a[b+1])))/2;return d[b]=g,d}function xg(a){for(var b,c,d,e,f=[],g=wg(a),h=-1,i=a.length-1;++h<i;)b=vg(a[h],a[h+1]),eh(b)<zh?g[h]=g[h+1]=0:(c=g[h]/b,d=g[h+1]/b,e=c*c+d*d,e>9&&(e=3*b/Math.sqrt(e),g[h]=e*c,g[h+1]=e*d));for(h=-1;++h<=i;)e=(a[Math.min(i,h+1)][0]-a[Math.max(0,h-1)][0])/(6*(1+g[h]*g[h])),f.push([e||0,g[h]*e||0]);return f}function yg(a){return a.length<3?fg(a):a[0]+ng(a,xg(a))}function zg(a){for(var b,c,d,e=-1,f=a.length;++e<f;)b=a[e],c=b[0],d=b[1]+rj,b[0]=c*Math.cos(d),b[1]=c*Math.sin(d);return a}function Ag(a){function b(b){function i(){p.push("M",h(a(r),l),k,j(a(q.reverse()),l),"Z")}for(var m,n,o,p=[],q=[],r=[],s=-1,t=b.length,u=wb(c),v=wb(e),w=c===d?function(){return n}:wb(d),x=e===f?function(){return o}:wb(f);++s<t;)g.call(this,m=b[s],s)?(q.push([n=+u.call(this,m,s),o=+v.call(this,m,s)]),r.push([+w.call(this,m,s),+x.call(this,m,s)])):q.length&&(i(),q=[],r=[]);return q.length&&i(),p.length?p.join(""):null}var c=xd,d=xd,e=0,f=yd,g=xc,h=fg,i=h.key,j=h,k="L",l=.7;return b.x=function(a){return arguments.length?(c=d=a,b):d},b.x0=function(a){return arguments.length?(c=a,b):c},b.x1=function(a){return arguments.length?(d=a,b):d},b.y=function(a){return arguments.length?(e=f=a,b):f},b.y0=function(a){return arguments.length?(e=a,b):e},b.y1=function(a){return arguments.length?(f=a,b):f},b.defined=function(a){return arguments.length?(g=a,b):g},b.interpolate=function(a){return arguments.length?(i="function"==typeof a?h=a:(h=tj.get(a)||fg).key,j=h.reverse||h,k=h.closed?"M":"L",b):i},b.tension=function(a){return arguments.length?(l=a,b):l},b}function Bg(a){return a.radius}function Cg(a){return[a.x,a.y]}function Dg(a){return function(){var b=a.apply(this,arguments),c=b[0],d=b[1]+rj;return[c*Math.cos(d),c*Math.sin(d)]}}function Eg(){return 64}function Fg(){return"circle"}function Gg(a){var b=Math.sqrt(a/wh);return"M0,"+b+"A"+b+","+b+" 0 1,1 0,"+-b+"A"+b+","+b+" 0 1,1 0,"+b+"Z"}function Hg(a,b){return jh(a,Cj),a.id=b,a}function Ig(a,b,c,d){var e=a.id;return K(a,"function"==typeof c?function(a,f,g){a.__transition__[e].tween.set(b,d(c.call(a,a.__data__,f,g)))}:(c=d(c),function(a){a.__transition__[e].tween.set(b,c)}))}function Jg(a){return null==a&&(a=""),function(){this.textContent=a}}function Kg(a,b,c,d){var e=a.__transition__||(a.__transition__={active:0,count:0}),f=e[c];if(!f){var h=d.time;f=e[c]={tween:new g,time:h,ease:d.ease,delay:d.delay,duration:d.duration},++e.count,Sg.timer(function(d){function g(d){return e.active>c?j():(e.active=c,f.event&&f.event.start.call(a,k,b),f.tween.forEach(function(c,d){(d=d.call(a,k,b))&&p.push(d)}),void Sg.timer(function(){return o.c=i(d||1)?xc:i,1},0,h))}function i(d){if(e.active!==c)return j();for(var g=d/n,h=l(g),i=p.length;i>0;)p[--i].call(a,h);return g>=1?(f.event&&f.event.end.call(a,k,b),j()):void 0}function j(){return--e.count?delete e[c]:delete a.__transition__,1}var k=a.__data__,l=f.ease,m=f.delay,n=f.duration,o=Wh,p=[];return o.t=m+h,d>=m?g(d-m):void(o.c=g)},0,h)}}function Lg(a,b){a.attr("transform",function(a){return"translate("+b(a)+",0)"})}function Mg(a,b){a.attr("transform",function(a){return"translate(0,"+b(a)+")"})}function Ng(a){return a.toISOString()}function Og(a,b,c){function d(b){return a(b)}function e(a,c){var d=a[1]-a[0],e=d/c,f=Sg.bisect(Lj,e);return f==Lj.length?[b.year,Pf(a.map(function(a){return a/31536e6}),c)[2]]:f?b[e/Lj[f-1]<Lj[f]/e?f-1:f]:[Oj,Pf(a,c)[2]]}return d.invert=function(b){return Pg(a.invert(b))},d.domain=function(b){return arguments.length?(a.domain(b),d):a.domain().map(Pg)},d.nice=function(a,b){function c(c){return!isNaN(c)&&!a.range(c,Pg(+c+1),b).length}var f=d.domain(),g=Gf(f),h=null==a?e(g,10):"number"==typeof a&&e(g,a);return h&&(a=h[0],b=h[1]),d.domain(Jf(f,b>1?{floor:function(b){for(;c(b=a.floor(b));)b=Pg(b-1);return b},ceil:function(b){for(;c(b=a.ceil(b));)b=Pg(+b+1);return b}}:a))},d.ticks=function(a,b){var c=Gf(d.domain()),f=null==a?e(c,10):"number"==typeof a?e(c,a):!a.range&&[{range:a},b];return f&&(a=f[0],b=f[1]),a.range(c[0],Pg(+c[1]+1),1>b?1:b)},d.tickFormat=function(){return c},d.copy=function(){return Og(a.copy(),b,c)},Nf(d,a)}function Pg(a){return new Date(a)}function Qg(a){return JSON.parse(a.responseText)}function Rg(a){var b=Vg.createRange();return b.selectNode(Vg.body),b.createContextualFragment(a.responseText)}var Sg={version:"3.4.9"};Date.now||(Date.now=function(){return+new Date});var Tg=[].slice,Ug=function(a){return Tg.call(a)},Vg=document,Wg=Vg.documentElement,Xg=window;try{Ug(Wg.childNodes)[0].nodeType}catch(Yg){Ug=function(a){for(var b=a.length,c=new Array(b);b--;)c[b]=a[b];return c}}try{Vg.createElement("div").style.setProperty("opacity",0,"")}catch(Zg){var $g=Xg.Element.prototype,_g=$g.setAttribute,ah=$g.setAttributeNS,bh=Xg.CSSStyleDeclaration.prototype,ch=bh.setProperty;$g.setAttribute=function(a,b){_g.call(this,a,b+"")},$g.setAttributeNS=function(a,b,c){ah.call(this,a,b,c+"")},bh.setProperty=function(a,b,c){ch.call(this,a,b+"",c)}}Sg.ascending=a,Sg.descending=function(a,b){return a>b?-1:b>a?1:b>=a?0:0/0},Sg.min=function(a,b){var c,d,e=-1,f=a.length;if(1===arguments.length){for(;++e<f&&!(null!=(c=a[e])&&c>=c);)c=void 0;for(;++e<f;)null!=(d=a[e])&&c>d&&(c=d)}else{for(;++e<f&&!(null!=(c=b.call(a,a[e],e))&&c>=c);)c=void 0;for(;++e<f;)null!=(d=b.call(a,a[e],e))&&c>d&&(c=d)}return c},Sg.max=function(a,b){var c,d,e=-1,f=a.length;if(1===arguments.length){for(;++e<f&&!(null!=(c=a[e])&&c>=c);)c=void 0;for(;++e<f;)null!=(d=a[e])&&d>c&&(c=d)}else{for(;++e<f&&!(null!=(c=b.call(a,a[e],e))&&c>=c);)c=void 0;for(;++e<f;)null!=(d=b.call(a,a[e],e))&&d>c&&(c=d)}return c},Sg.extent=function(a,b){var c,d,e,f=-1,g=a.length;if(1===arguments.length){for(;++f<g&&!(null!=(c=e=a[f])&&c>=c);)c=e=void 0;for(;++f<g;)null!=(d=a[f])&&(c>d&&(c=d),d>e&&(e=d))}else{for(;++f<g&&!(null!=(c=e=b.call(a,a[f],f))&&c>=c);)c=void 0;for(;++f<g;)null!=(d=b.call(a,a[f],f))&&(c>d&&(c=d),d>e&&(e=d))}return[c,e]},Sg.sum=function(a,b){var c,d=0,e=a.length,f=-1;if(1===arguments.length)for(;++f<e;)isNaN(c=+a[f])||(d+=c);else for(;++f<e;)isNaN(c=+b.call(a,a[f],f))||(d+=c);return d},Sg.mean=function(a,c){var d,e=0,f=a.length,g=-1,h=f;if(1===arguments.length)for(;++g<f;)b(d=a[g])?e+=d:--h;else for(;++g<f;)b(d=c.call(a,a[g],g))?e+=d:--h;return h?e/h:void 0},Sg.quantile=function(a,b){var c=(a.length-1)*b+1,d=Math.floor(c),e=+a[d-1],f=c-d;return f?e+f*(a[d]-e):e},Sg.median=function(c,d){return arguments.length>1&&(c=c.map(d)),c=c.filter(b),c.length?Sg.quantile(c.sort(a),.5):void 0};var dh=c(a);Sg.bisectLeft=dh.left,Sg.bisect=Sg.bisectRight=dh.right,Sg.bisector=function(b){return c(1===b.length?function(c,d){return a(b(c),d)}:b)},Sg.shuffle=function(a){for(var b,c,d=a.length;d;)c=Math.random()*d--|0,b=a[d],a[d]=a[c],a[c]=b;return a},Sg.permute=function(a,b){for(var c=b.length,d=new Array(c);c--;)d[c]=a[b[c]];return d},Sg.pairs=function(a){for(var b,c=0,d=a.length-1,e=a[0],f=new Array(0>d?0:d);d>c;)f[c]=[b=e,e=a[++c]];return f},Sg.zip=function(){if(!(e=arguments.length))return[];for(var a=-1,b=Sg.min(arguments,d),c=new Array(b);++a<b;)for(var e,f=-1,g=c[a]=new Array(e);++f<e;)g[f]=arguments[f][a];return c},Sg.transpose=function(a){return Sg.zip.apply(Sg,a)},Sg.keys=function(a){var b=[];for(var c in a)b.push(c);return b},Sg.values=function(a){var b=[];for(var c in a)b.push(a[c]);return b},Sg.entries=function(a){var b=[];for(var c in a)b.push({key:c,value:a[c]});return b},Sg.merge=function(a){for(var b,c,d,e=a.length,f=-1,g=0;++f<e;)g+=a[f].length;for(c=new Array(g);--e>=0;)for(d=a[e],b=d.length;--b>=0;)c[--g]=d[b];return c};var eh=Math.abs;Sg.range=function(a,b,c){if(arguments.length<3&&(c=1,arguments.length<2&&(b=a,a=0)),(b-a)/c===1/0)throw new Error("infinite range");var d,f=[],g=e(eh(c)),h=-1;if(a*=g,b*=g,c*=g,0>c)for(;(d=a+c*++h)>b;)f.push(d/g);else for(;(d=a+c*++h)<b;)f.push(d/g);return f},Sg.map=function(a){var b=new g;if(a instanceof g)a.forEach(function(a,c){b.set(a,c)});else for(var c in a)b.set(c,a[c]);return b},f(g,{has:h,get:function(a){return this[fh+a]},set:function(a,b){return this[fh+a]=b},remove:i,keys:j,values:function(){var a=[];return this.forEach(function(b,c){a.push(c)}),a},entries:function(){var a=[];return this.forEach(function(b,c){a.push({key:b,value:c})}),a},size:k,empty:l,forEach:function(a){for(var b in this)b.charCodeAt(0)===gh&&a.call(this,b.substring(1),this[b])}});var fh="\x00",gh=fh.charCodeAt(0);Sg.nest=function(){function a(b,h,i){if(i>=f.length)return d?d.call(e,h):c?h.sort(c):h;for(var j,k,l,m,n=-1,o=h.length,p=f[i++],q=new g;++n<o;)(m=q.get(j=p(k=h[n])))?m.push(k):q.set(j,[k]);return b?(k=b(),l=function(c,d){k.set(c,a(b,d,i))}):(k={},l=function(c,d){k[c]=a(b,d,i)}),q.forEach(l),k}function b(a,c){if(c>=f.length)return a;var d=[],e=h[c++];return a.forEach(function(a,e){d.push({key:a,values:b(e,c)})}),e?d.sort(function(a,b){return e(a.key,b.key)}):d}var c,d,e={},f=[],h=[];return e.map=function(b,c){return a(c,b,0)},e.entries=function(c){return b(a(Sg.map,c,0),0)},e.key=function(a){return f.push(a),e},e.sortKeys=function(a){return h[f.length-1]=a,e},e.sortValues=function(a){return c=a,e},e.rollup=function(a){return d=a,e},e},Sg.set=function(a){var b=new m;if(a)for(var c=0,d=a.length;d>c;++c)b.add(a[c]);return b},f(m,{has:h,add:function(a){return this[fh+a]=!0,a},remove:function(a){return a=fh+a,a in this&&delete this[a]},values:j,size:k,empty:l,forEach:function(a){for(var b in this)b.charCodeAt(0)===gh&&a.call(this,b.substring(1))}}),Sg.behavior={},Sg.rebind=function(a,b){for(var c,d=1,e=arguments.length;++d<e;)a[c=arguments[d]]=n(a,b,b[c]);return a};var hh=["webkit","ms","moz","Moz","o","O"];Sg.dispatch=function(){for(var a=new q,b=-1,c=arguments.length;++b<c;)a[arguments[b]]=r(a);return a},q.prototype.on=function(a,b){var c=a.indexOf("."),d="";if(c>=0&&(d=a.substring(c+1),a=a.substring(0,c)),a)return arguments.length<2?this[a].on(d):this[a].on(d,b);if(2===arguments.length){if(null==b)for(a in this)this.hasOwnProperty(a)&&this[a].on(d,null);return this}},Sg.event=null,Sg.requote=function(a){return a.replace(ih,"\\$&")};var ih=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,jh={}.__proto__?function(a,b){a.__proto__=b}:function(a,b){for(var c in b)a[c]=b[c]},kh=function(a,b){return b.querySelector(a)},lh=function(a,b){return b.querySelectorAll(a)},mh=Wg.matches||Wg[o(Wg,"matchesSelector")],nh=function(a,b){return mh.call(a,b)};"function"==typeof Sizzle&&(kh=function(a,b){return Sizzle(a,b)[0]||null},lh=Sizzle,nh=Sizzle.matchesSelector),Sg.selection=function(){return rh};var oh=Sg.selection.prototype=[];oh.select=function(a){var b,c,d,e,f=[];a=w(a);for(var g=-1,h=this.length;++g<h;){f.push(b=[]),b.parentNode=(d=this[g]).parentNode;for(var i=-1,j=d.length;++i<j;)(e=d[i])?(b.push(c=a.call(e,e.__data__,i,g)),c&&"__data__"in e&&(c.__data__=e.__data__)):b.push(null)}return v(f)},oh.selectAll=function(a){var b,c,d=[];a=x(a);for(var e=-1,f=this.length;++e<f;)for(var g=this[e],h=-1,i=g.length;++h<i;)(c=g[h])&&(d.push(b=Ug(a.call(c,c.__data__,h,e))),b.parentNode=c);return v(d)};var ph={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};Sg.ns={prefix:ph,qualify:function(a){var b=a.indexOf(":"),c=a;return b>=0&&(c=a.substring(0,b),a=a.substring(b+1)),ph.hasOwnProperty(c)?{space:ph[c],local:a}:a}},oh.attr=function(a,b){if(arguments.length<2){if("string"==typeof a){var c=this.node();return a=Sg.ns.qualify(a),a.local?c.getAttributeNS(a.space,a.local):c.getAttribute(a)}for(b in a)this.each(y(b,a[b]));return this}return this.each(y(a,b))},oh.classed=function(a,b){if(arguments.length<2){if("string"==typeof a){var c=this.node(),d=(a=B(a)).length,e=-1;if(b=c.classList){for(;++e<d;)if(!b.contains(a[e]))return!1}else for(b=c.getAttribute("class");++e<d;)if(!A(a[e]).test(b))return!1;return!0}for(b in a)this.each(C(b,a[b]));return this}return this.each(C(a,b))},oh.style=function(a,b,c){var d=arguments.length;if(3>d){if("string"!=typeof a){2>d&&(b="");for(c in a)this.each(E(c,a[c],b));return this}if(2>d)return Xg.getComputedStyle(this.node(),null).getPropertyValue(a);c=""}return this.each(E(a,b,c))},oh.property=function(a,b){if(arguments.length<2){if("string"==typeof a)return this.node()[a];for(b in a)this.each(F(b,a[b]));return this}return this.each(F(a,b))},oh.text=function(a){return arguments.length?this.each("function"==typeof a?function(){var b=a.apply(this,arguments);this.textContent=null==b?"":b}:null==a?function(){this.textContent=""}:function(){this.textContent=a}):this.node().textContent},oh.html=function(a){return arguments.length?this.each("function"==typeof a?function(){var b=a.apply(this,arguments);this.innerHTML=null==b?"":b}:null==a?function(){this.innerHTML=""}:function(){this.innerHTML=a}):this.node().innerHTML},oh.append=function(a){return a=G(a),this.select(function(){return this.appendChild(a.apply(this,arguments))})},oh.insert=function(a,b){return a=G(a),b=w(b),this.select(function(){return this.insertBefore(a.apply(this,arguments),b.apply(this,arguments)||null)})},oh.remove=function(){return this.each(function(){var a=this.parentNode;a&&a.removeChild(this)})},oh.data=function(a,b){function c(a,c){var d,e,f,h=a.length,l=c.length,m=Math.min(h,l),n=new Array(l),o=new Array(l),p=new Array(h);if(b){var q,r=new g,s=new g,t=[];for(d=-1;++d<h;)q=b.call(e=a[d],e.__data__,d),r.has(q)?p[d]=e:r.set(q,e),t.push(q);for(d=-1;++d<l;)q=b.call(c,f=c[d],d),(e=r.get(q))?(n[d]=e,e.__data__=f):s.has(q)||(o[d]=H(f)),s.set(q,f),r.remove(q);for(d=-1;++d<h;)r.has(t[d])&&(p[d]=a[d])}else{for(d=-1;++d<m;)e=a[d],f=c[d],e?(e.__data__=f,n[d]=e):o[d]=H(f);for(;l>d;++d)o[d]=H(c[d]);for(;h>d;++d)p[d]=a[d]}o.update=n,o.parentNode=n.parentNode=p.parentNode=a.parentNode,i.push(o),j.push(n),k.push(p)}var d,e,f=-1,h=this.length;if(!arguments.length){for(a=new Array(h=(d=this[0]).length);++f<h;)(e=d[f])&&(a[f]=e.__data__);return a}var i=L([]),j=v([]),k=v([]);if("function"==typeof a)for(;++f<h;)c(d=this[f],a.call(d,d.parentNode.__data__,f));else for(;++f<h;)c(d=this[f],a);return j.enter=function(){return i},j.exit=function(){return k},j},oh.datum=function(a){return arguments.length?this.property("__data__",a):this.property("__data__")},oh.filter=function(a){var b,c,d,e=[];"function"!=typeof a&&(a=I(a));for(var f=0,g=this.length;g>f;f++){e.push(b=[]),b.parentNode=(c=this[f]).parentNode;for(var h=0,i=c.length;i>h;h++)(d=c[h])&&a.call(d,d.__data__,h,f)&&b.push(d)}return v(e)},oh.order=function(){for(var a=-1,b=this.length;++a<b;)for(var c,d=this[a],e=d.length-1,f=d[e];--e>=0;)(c=d[e])&&(f&&f!==c.nextSibling&&f.parentNode.insertBefore(c,f),f=c);return this},oh.sort=function(a){a=J.apply(this,arguments);for(var b=-1,c=this.length;++b<c;)this[b].sort(a);return this.order()},oh.each=function(a){return K(this,function(b,c,d){a.call(b,b.__data__,c,d)})},oh.call=function(a){var b=Ug(arguments);return a.apply(b[0]=this,b),this},oh.empty=function(){return!this.node()},oh.node=function(){for(var a=0,b=this.length;b>a;a++)for(var c=this[a],d=0,e=c.length;e>d;d++){var f=c[d];if(f)return f}return null},oh.size=function(){var a=0;return this.each(function(){++a}),a};var qh=[];Sg.selection.enter=L,Sg.selection.enter.prototype=qh,qh.append=oh.append,qh.empty=oh.empty,qh.node=oh.node,qh.call=oh.call,qh.size=oh.size,qh.select=function(a){for(var b,c,d,e,f,g=[],h=-1,i=this.length;++h<i;){d=(e=this[h]).update,g.push(b=[]),b.parentNode=e.parentNode;for(var j=-1,k=e.length;++j<k;)(f=e[j])?(b.push(d[j]=c=a.call(e.parentNode,f.__data__,j,h)),c.__data__=f.__data__):b.push(null)}return v(g)},qh.insert=function(a,b){return arguments.length<2&&(b=M(this)),oh.insert.call(this,a,b)},oh.transition=function(){for(var a,b,c=yj||++Dj,d=[],e=zj||{time:Date.now(),ease:te,delay:0,duration:250},f=-1,g=this.length;++f<g;){d.push(a=[]);for(var h=this[f],i=-1,j=h.length;++i<j;)(b=h[i])&&Kg(b,i,c,e),a.push(b)}return Hg(d,c)},oh.interrupt=function(){return this.each(N)},Sg.select=function(a){var b=["string"==typeof a?kh(a,Vg):a];return b.parentNode=Wg,v([b])},Sg.selectAll=function(a){var b=Ug("string"==typeof a?lh(a,Vg):a);return b.parentNode=Wg,v([b])};var rh=Sg.select(Wg);oh.on=function(a,b,c){var d=arguments.length;if(3>d){if("string"!=typeof a){2>d&&(b=!1);for(c in a)this.each(O(c,a[c],b));return this}if(2>d)return(d=this.node()["__on"+a])&&d._;c=!1}return this.each(O(a,b,c))};var sh=Sg.map({mouseenter:"mouseover",mouseleave:"mouseout"});sh.forEach(function(a){"on"+a in Vg&&sh.remove(a)});var th="onselectstart"in Vg?null:o(Wg.style,"userSelect"),uh=0;Sg.mouse=function(a){return S(a,t())};var vh=/WebKit/.test(Xg.navigator.userAgent)?-1:0;Sg.touches=function(a,b){return arguments.length<2&&(b=t().touches),b?Ug(b).map(function(b){var c=S(a,b);return c.identifier=b.identifier,c}):[]},Sg.behavior.drag=function(){function a(){this.on("mousedown.drag",e).on("touchstart.drag",f)}function b(a,b,e,f,g){return function(){function h(){var a,c,d=b(m,p);d&&(a=d[0]-t[0],c=d[1]-t[1],o|=a|c,t=d,n({type:"drag",x:d[0]+j[0],y:d[1]+j[1],dx:a,dy:c}))}function i(){b(m,p)&&(r.on(f+q,null).on(g+q,null),s(o&&Sg.event.target===l),n({type:"dragend"}))}var j,k=this,l=Sg.event.target,m=k.parentNode,n=c.of(k,arguments),o=0,p=a(),q=".drag"+(null==p?"":"-"+p),r=Sg.select(e()).on(f+q,h).on(g+q,i),s=R(),t=b(m,p);d?(j=d.apply(k,arguments),j=[j.x-t[0],j.y-t[1]]):j=[0,0],n({type:"dragstart"})}}var c=u(a,"drag","dragstart","dragend"),d=null,e=b(p,Sg.mouse,V,"mousemove","mouseup"),f=b(T,Sg.touch,U,"touchmove","touchend");return a.origin=function(b){return arguments.length?(d=b,a):d},Sg.rebind(a,c,"on")};var wh=Math.PI,xh=2*wh,yh=wh/2,zh=1e-6,Ah=zh*zh,Bh=wh/180,Ch=180/wh,Dh=Math.SQRT2,Eh=2,Fh=4;Sg.interpolateZoom=function(a,b){function c(a){var b=a*s;if(r){var c=_(p),g=f/(Eh*m)*(c*ab(Dh*b+p)-$(p));return[d+g*j,e+g*k,f*c/_(Dh*b+p)]}return[d+a*j,e+a*k,f*Math.exp(Dh*b)]}var d=a[0],e=a[1],f=a[2],g=b[0],h=b[1],i=b[2],j=g-d,k=h-e,l=j*j+k*k,m=Math.sqrt(l),n=(i*i-f*f+Fh*l)/(2*f*Eh*m),o=(i*i-f*f-Fh*l)/(2*i*Eh*m),p=Math.log(Math.sqrt(n*n+1)-n),q=Math.log(Math.sqrt(o*o+1)-o),r=q-p,s=(r||Math.log(i/f))/Dh;
return c.duration=1e3*s,c},Sg.behavior.zoom=function(){function a(a){a.on(B,j).on(Ih+".zoom",l).on(C,m).on("dblclick.zoom",n).on(E,k)}function b(a){return[(a[0]-y.x)/y.k,(a[1]-y.y)/y.k]}function c(a){return[a[0]*y.k+y.x,a[1]*y.k+y.y]}function d(a){y.k=Math.max(A[0],Math.min(A[1],a))}function e(a,b){b=c(b),y.x+=a[0]-b[0],y.y+=a[1]-b[1]}function f(){v&&v.domain(t.range().map(function(a){return(a-y.x)/y.k}).map(t.invert)),x&&x.domain(w.range().map(function(a){return(a-y.y)/y.k}).map(w.invert))}function g(a){a({type:"zoomstart"})}function h(a){f(),a({type:"zoom",scale:y.k,translate:[y.x,y.y]})}function i(a){a({type:"zoomend"})}function j(){function a(){k=1,e(Sg.mouse(d),n),h(j)}function c(){l.on(C,Xg===d?m:null).on(D,null),o(k&&Sg.event.target===f),i(j)}var d=this,f=Sg.event.target,j=F.of(d,arguments),k=0,l=Sg.select(Xg).on(C,a).on(D,c),n=b(Sg.mouse(d)),o=R();N.call(d),g(j)}function k(){function a(){var a=Sg.touches(n);return m=y.k,a.forEach(function(a){a.identifier in p&&(p[a.identifier]=b(a))}),a}function c(){var b=Sg.event.target;Sg.select(b).on(u,f).on(v,l),w.push(b);for(var c=Sg.event.changedTouches,g=0,i=c.length;i>g;++g)p[c[g].identifier]=null;var j=a(),k=Date.now();if(1===j.length){if(500>k-r){var m=j[0],n=p[m.identifier];d(2*y.k),e(m,n),s(),h(o)}r=k}else if(j.length>1){var m=j[0],t=j[1],x=m[0]-t[0],z=m[1]-t[1];q=x*x+z*z}}function f(){for(var a,b,c,f,g=Sg.touches(n),i=0,j=g.length;j>i;++i,f=null)if(c=g[i],f=p[c.identifier]){if(b)break;a=c,b=f}if(f){var k=(k=c[0]-a[0])*k+(k=c[1]-a[1])*k,l=q&&Math.sqrt(k/q);a=[(a[0]+c[0])/2,(a[1]+c[1])/2],b=[(b[0]+f[0])/2,(b[1]+f[1])/2],d(l*m)}r=null,e(a,b),h(o)}function l(){if(Sg.event.touches.length){for(var b=Sg.event.changedTouches,c=0,d=b.length;d>c;++c)delete p[b[c].identifier];for(var e in p)return void a()}Sg.selectAll(w).on(t,null),x.on(B,j).on(E,k),z(),i(o)}var m,n=this,o=F.of(n,arguments),p={},q=0,t=".zoom-"+Sg.event.changedTouches[0].identifier,u="touchmove"+t,v="touchend"+t,w=[],x=Sg.select(n).on(B,null).on(E,c),z=R();N.call(n),c(),g(o)}function l(){var a=F.of(this,arguments);q?clearTimeout(q):(N.call(this),g(a)),q=setTimeout(function(){q=null,i(a)},50),s();var c=p||Sg.mouse(this);o||(o=b(c)),d(Math.pow(2,.002*Gh())*y.k),e(c,o),h(a)}function m(){o=null}function n(){var a=F.of(this,arguments),c=Sg.mouse(this),f=b(c),j=Math.log(y.k)/Math.LN2;g(a),d(Math.pow(2,Sg.event.shiftKey?Math.ceil(j)-1:Math.floor(j)+1)),e(c,f),h(a),i(a)}var o,p,q,r,t,v,w,x,y={x:0,y:0,k:1},z=[960,500],A=Hh,B="mousedown.zoom",C="mousemove.zoom",D="mouseup.zoom",E="touchstart.zoom",F=u(a,"zoomstart","zoom","zoomend");return a.event=function(a){a.each(function(){var a=F.of(this,arguments),b=y;yj?Sg.select(this).transition().each("start.zoom",function(){y=this.__chart__||{x:0,y:0,k:1},g(a)}).tween("zoom:zoom",function(){var c=z[0],d=z[1],e=c/2,f=d/2,g=Sg.interpolateZoom([(e-y.x)/y.k,(f-y.y)/y.k,c/y.k],[(e-b.x)/b.k,(f-b.y)/b.k,c/b.k]);return function(b){var d=g(b),i=c/d[2];this.__chart__=y={x:e-d[0]*i,y:f-d[1]*i,k:i},h(a)}}).each("end.zoom",function(){i(a)}):(this.__chart__=y,g(a),h(a),i(a))})},a.translate=function(b){return arguments.length?(y={x:+b[0],y:+b[1],k:y.k},f(),a):[y.x,y.y]},a.scale=function(b){return arguments.length?(y={x:y.x,y:y.y,k:+b},f(),a):y.k},a.scaleExtent=function(b){return arguments.length?(A=null==b?Hh:[+b[0],+b[1]],a):A},a.center=function(b){return arguments.length?(p=b&&[+b[0],+b[1]],a):p},a.size=function(b){return arguments.length?(z=b&&[+b[0],+b[1]],a):z},a.x=function(b){return arguments.length?(v=b,t=b.copy(),y={x:0,y:0,k:1},a):v},a.y=function(b){return arguments.length?(x=b,w=b.copy(),y={x:0,y:0,k:1},a):x},Sg.rebind(a,F,"on")};var Gh,Hh=[0,1/0],Ih="onwheel"in Vg?(Gh=function(){return-Sg.event.deltaY*(Sg.event.deltaMode?120:1)},"wheel"):"onmousewheel"in Vg?(Gh=function(){return Sg.event.wheelDelta},"mousewheel"):(Gh=function(){return-Sg.event.detail},"MozMousePixelScroll");Sg.color=cb,cb.prototype.toString=function(){return this.rgb()+""},Sg.hsl=db;var Jh=db.prototype=new cb;Jh.brighter=function(a){return a=Math.pow(.7,arguments.length?a:1),new db(this.h,this.s,this.l/a)},Jh.darker=function(a){return a=Math.pow(.7,arguments.length?a:1),new db(this.h,this.s,a*this.l)},Jh.rgb=function(){return eb(this.h,this.s,this.l)},Sg.hcl=fb;var Kh=fb.prototype=new cb;Kh.brighter=function(a){return new fb(this.h,this.c,Math.min(100,this.l+Lh*(arguments.length?a:1)))},Kh.darker=function(a){return new fb(this.h,this.c,Math.max(0,this.l-Lh*(arguments.length?a:1)))},Kh.rgb=function(){return gb(this.h,this.c,this.l).rgb()},Sg.lab=hb;var Lh=18,Mh=.95047,Nh=1,Oh=1.08883,Ph=hb.prototype=new cb;Ph.brighter=function(a){return new hb(Math.min(100,this.l+Lh*(arguments.length?a:1)),this.a,this.b)},Ph.darker=function(a){return new hb(Math.max(0,this.l-Lh*(arguments.length?a:1)),this.a,this.b)},Ph.rgb=function(){return ib(this.l,this.a,this.b)},Sg.rgb=nb;var Qh=nb.prototype=new cb;Qh.brighter=function(a){a=Math.pow(.7,arguments.length?a:1);var b=this.r,c=this.g,d=this.b,e=30;return b||c||d?(b&&e>b&&(b=e),c&&e>c&&(c=e),d&&e>d&&(d=e),new nb(Math.min(255,b/a),Math.min(255,c/a),Math.min(255,d/a))):new nb(e,e,e)},Qh.darker=function(a){return a=Math.pow(.7,arguments.length?a:1),new nb(a*this.r,a*this.g,a*this.b)},Qh.hsl=function(){return sb(this.r,this.g,this.b)},Qh.toString=function(){return"#"+qb(this.r)+qb(this.g)+qb(this.b)};var Rh=Sg.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});Rh.forEach(function(a,b){Rh.set(a,ob(b))}),Sg.functor=wb,Sg.xhr=yb(xb),Sg.dsv=function(a,b){function c(a,c,f){arguments.length<3&&(f=c,c=null);var g=zb(a,b,null==c?d:e(c),f);return g.row=function(a){return arguments.length?g.response(null==(c=a)?d:e(a)):c},g}function d(a){return c.parse(a.responseText)}function e(a){return function(b){return c.parse(b.responseText,a)}}function f(b){return b.map(g).join(a)}function g(a){return h.test(a)?'"'+a.replace(/\"/g,'""')+'"':a}var h=new RegExp('["'+a+"\n]"),i=a.charCodeAt(0);return c.parse=function(a,b){var d;return c.parseRows(a,function(a,c){if(d)return d(a,c-1);var e=new Function("d","return {"+a.map(function(a,b){return JSON.stringify(a)+": d["+b+"]"}).join(",")+"}");d=b?function(a,c){return b(e(a),c)}:e})},c.parseRows=function(a,b){function c(){if(k>=j)return g;if(e)return e=!1,f;var b=k;if(34===a.charCodeAt(b)){for(var c=b;c++<j;)if(34===a.charCodeAt(c)){if(34!==a.charCodeAt(c+1))break;++c}k=c+2;var d=a.charCodeAt(c+1);return 13===d?(e=!0,10===a.charCodeAt(c+2)&&++k):10===d&&(e=!0),a.substring(b+1,c).replace(/""/g,'"')}for(;j>k;){var d=a.charCodeAt(k++),h=1;if(10===d)e=!0;else if(13===d)e=!0,10===a.charCodeAt(k)&&(++k,++h);else if(d!==i)continue;return a.substring(b,k-h)}return a.substring(b)}for(var d,e,f={},g={},h=[],j=a.length,k=0,l=0;(d=c())!==g;){for(var m=[];d!==f&&d!==g;)m.push(d),d=c();(!b||(m=b(m,l++)))&&h.push(m)}return h},c.format=function(b){if(Array.isArray(b[0]))return c.formatRows(b);var d=new m,e=[];return b.forEach(function(a){for(var b in a)d.has(b)||e.push(d.add(b))}),[e.map(g).join(a)].concat(b.map(function(b){return e.map(function(a){return g(b[a])}).join(a)})).join("\n")},c.formatRows=function(a){return a.map(f).join("\n")},c},Sg.csv=Sg.dsv(",","text/csv"),Sg.tsv=Sg.dsv("	","text/tab-separated-values"),Sg.touch=function(a,b,c){if(arguments.length<3&&(c=b,b=t().changedTouches),b)for(var d,e=0,f=b.length;f>e;++e)if((d=b[e]).identifier===c)return S(a,d)};var Sh,Th,Uh,Vh,Wh,Xh=Xg[o(Xg,"requestAnimationFrame")]||function(a){setTimeout(a,17)};Sg.timer=function(a,b,c){var d=arguments.length;2>d&&(b=0),3>d&&(c=Date.now());var e=c+b,f={c:a,t:e,f:!1,n:null};Th?Th.n=f:Sh=f,Th=f,Uh||(Vh=clearTimeout(Vh),Uh=1,Xh(Bb))},Sg.timer.flush=function(){Cb(),Db()},Sg.round=function(a,b){return b?Math.round(a*(b=Math.pow(10,b)))/b:Math.round(a)};var Yh=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"].map(Fb);Sg.formatPrefix=function(a,b){var c=0;return a&&(0>a&&(a*=-1),b&&(a=Sg.round(a,Eb(a,b))),c=1+Math.floor(1e-12+Math.log(a)/Math.LN10),c=Math.max(-24,Math.min(24,3*Math.floor((c-1)/3)))),Yh[8+c/3]};var Zh=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,$h=Sg.map({b:function(a){return a.toString(2)},c:function(a){return String.fromCharCode(a)},o:function(a){return a.toString(8)},x:function(a){return a.toString(16)},X:function(a){return a.toString(16).toUpperCase()},g:function(a,b){return a.toPrecision(b)},e:function(a,b){return a.toExponential(b)},f:function(a,b){return a.toFixed(b)},r:function(a,b){return(a=Sg.round(a,Eb(a,b))).toFixed(Math.max(0,Math.min(20,Eb(a*(1+1e-15),b))))}}),_h=Sg.time={},ai=Date;Ib.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){bi.setUTCDate.apply(this._,arguments)},setDay:function(){bi.setUTCDay.apply(this._,arguments)},setFullYear:function(){bi.setUTCFullYear.apply(this._,arguments)},setHours:function(){bi.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){bi.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){bi.setUTCMinutes.apply(this._,arguments)},setMonth:function(){bi.setUTCMonth.apply(this._,arguments)},setSeconds:function(){bi.setUTCSeconds.apply(this._,arguments)},setTime:function(){bi.setTime.apply(this._,arguments)}};var bi=Date.prototype;_h.year=Jb(function(a){return a=_h.day(a),a.setMonth(0,1),a},function(a,b){a.setFullYear(a.getFullYear()+b)},function(a){return a.getFullYear()}),_h.years=_h.year.range,_h.years.utc=_h.year.utc.range,_h.day=Jb(function(a){var b=new ai(2e3,0);return b.setFullYear(a.getFullYear(),a.getMonth(),a.getDate()),b},function(a,b){a.setDate(a.getDate()+b)},function(a){return a.getDate()-1}),_h.days=_h.day.range,_h.days.utc=_h.day.utc.range,_h.dayOfYear=function(a){var b=_h.year(a);return Math.floor((a-b-6e4*(a.getTimezoneOffset()-b.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(a,b){b=7-b;var c=_h[a]=Jb(function(a){return(a=_h.day(a)).setDate(a.getDate()-(a.getDay()+b)%7),a},function(a,b){a.setDate(a.getDate()+7*Math.floor(b))},function(a){var c=_h.year(a).getDay();return Math.floor((_h.dayOfYear(a)+(c+b)%7)/7)-(c!==b)});_h[a+"s"]=c.range,_h[a+"s"].utc=c.utc.range,_h[a+"OfYear"]=function(a){var c=_h.year(a).getDay();return Math.floor((_h.dayOfYear(a)+(c+b)%7)/7)}}),_h.week=_h.sunday,_h.weeks=_h.sunday.range,_h.weeks.utc=_h.sunday.utc.range,_h.weekOfYear=_h.sundayOfYear;var ci={"-":"",_:" ",0:"0"},di=/^\s*\d+/,ei=/^%/;Sg.locale=function(a){return{numberFormat:Gb(a),timeFormat:Lb(a)}};var fi=Sg.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});Sg.format=fi.numberFormat,Sg.geo={},ec.prototype={s:0,t:0,add:function(a){fc(a,this.t,gi),fc(gi.s,this.s,this),this.s?this.t+=gi.t:this.s=gi.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var gi=new ec;Sg.geo.stream=function(a,b){a&&hi.hasOwnProperty(a.type)?hi[a.type](a,b):gc(a,b)};var hi={Feature:function(a,b){gc(a.geometry,b)},FeatureCollection:function(a,b){for(var c=a.features,d=-1,e=c.length;++d<e;)gc(c[d].geometry,b)}},ii={Sphere:function(a,b){b.sphere()},Point:function(a,b){a=a.coordinates,b.point(a[0],a[1],a[2])},MultiPoint:function(a,b){for(var c=a.coordinates,d=-1,e=c.length;++d<e;)a=c[d],b.point(a[0],a[1],a[2])},LineString:function(a,b){hc(a.coordinates,b,0)},MultiLineString:function(a,b){for(var c=a.coordinates,d=-1,e=c.length;++d<e;)hc(c[d],b,0)},Polygon:function(a,b){ic(a.coordinates,b)},MultiPolygon:function(a,b){for(var c=a.coordinates,d=-1,e=c.length;++d<e;)ic(c[d],b)},GeometryCollection:function(a,b){for(var c=a.geometries,d=-1,e=c.length;++d<e;)gc(c[d],b)}};Sg.geo.area=function(a){return ji=0,Sg.geo.stream(a,li),ji};var ji,ki=new ec,li={sphere:function(){ji+=4*wh},point:p,lineStart:p,lineEnd:p,polygonStart:function(){ki.reset(),li.lineStart=jc},polygonEnd:function(){var a=2*ki;ji+=0>a?4*wh+a:a,li.lineStart=li.lineEnd=li.point=p}};Sg.geo.bounds=function(){function a(a,b){t.push(u=[k=a,m=a]),l>b&&(l=b),b>n&&(n=b)}function b(b,c){var d=kc([b*Bh,c*Bh]);if(r){var e=mc(r,d),f=[e[1],-e[0],0],g=mc(f,e);pc(g),g=qc(g);var i=b-o,j=i>0?1:-1,p=g[0]*Ch*j,q=eh(i)>180;if(q^(p>j*o&&j*b>p)){var s=g[1]*Ch;s>n&&(n=s)}else if(p=(p+360)%360-180,q^(p>j*o&&j*b>p)){var s=-g[1]*Ch;l>s&&(l=s)}else l>c&&(l=c),c>n&&(n=c);q?o>b?h(k,b)>h(k,m)&&(m=b):h(b,m)>h(k,m)&&(k=b):m>=k?(k>b&&(k=b),b>m&&(m=b)):b>o?h(k,b)>h(k,m)&&(m=b):h(b,m)>h(k,m)&&(k=b)}else a(b,c);r=d,o=b}function c(){v.point=b}function d(){u[0]=k,u[1]=m,v.point=a,r=null}function e(a,c){if(r){var d=a-o;s+=eh(d)>180?d+(d>0?360:-360):d}else p=a,q=c;li.point(a,c),b(a,c)}function f(){li.lineStart()}function g(){e(p,q),li.lineEnd(),eh(s)>zh&&(k=-(m=180)),u[0]=k,u[1]=m,r=null}function h(a,b){return(b-=a)<0?b+360:b}function i(a,b){return a[0]-b[0]}function j(a,b){return b[0]<=b[1]?b[0]<=a&&a<=b[1]:a<b[0]||b[1]<a}var k,l,m,n,o,p,q,r,s,t,u,v={point:a,lineStart:c,lineEnd:d,polygonStart:function(){v.point=e,v.lineStart=f,v.lineEnd=g,s=0,li.polygonStart()},polygonEnd:function(){li.polygonEnd(),v.point=a,v.lineStart=c,v.lineEnd=d,0>ki?(k=-(m=180),l=-(n=90)):s>zh?n=90:-zh>s&&(l=-90),u[0]=k,u[1]=m}};return function(a){n=m=-(k=l=1/0),t=[],Sg.geo.stream(a,v);var b=t.length;if(b){t.sort(i);for(var c,d=1,e=t[0],f=[e];b>d;++d)c=t[d],j(c[0],e)||j(c[1],e)?(h(e[0],c[1])>h(e[0],e[1])&&(e[1]=c[1]),h(c[0],e[1])>h(e[0],e[1])&&(e[0]=c[0])):f.push(e=c);for(var g,c,o=-1/0,b=f.length-1,d=0,e=f[b];b>=d;e=c,++d)c=f[d],(g=h(e[1],c[0]))>o&&(o=g,k=c[0],m=e[1])}return t=u=null,1/0===k||1/0===l?[[0/0,0/0],[0/0,0/0]]:[[k,l],[m,n]]}}(),Sg.geo.centroid=function(a){mi=ni=oi=pi=qi=ri=si=ti=ui=vi=wi=0,Sg.geo.stream(a,xi);var b=ui,c=vi,d=wi,e=b*b+c*c+d*d;return Ah>e&&(b=ri,c=si,d=ti,zh>ni&&(b=oi,c=pi,d=qi),e=b*b+c*c+d*d,Ah>e)?[0/0,0/0]:[Math.atan2(c,b)*Ch,Z(d/Math.sqrt(e))*Ch]};var mi,ni,oi,pi,qi,ri,si,ti,ui,vi,wi,xi={sphere:p,point:sc,lineStart:uc,lineEnd:vc,polygonStart:function(){xi.lineStart=wc},polygonEnd:function(){xi.lineStart=uc}},yi=Bc(xc,Gc,Ic,[-wh,-wh/2]),zi=1e9;Sg.geo.clipExtent=function(){var a,b,c,d,e,f,g={stream:function(a){return e&&(e.valid=!1),e=f(a),e.valid=!0,e},extent:function(h){return arguments.length?(f=Lc(a=+h[0][0],b=+h[0][1],c=+h[1][0],d=+h[1][1]),e&&(e.valid=!1,e=null),g):[[a,b],[c,d]]}};return g.extent([[0,0],[960,500]])},(Sg.geo.conicEqualArea=function(){return Nc(Oc)}).raw=Oc,Sg.geo.albers=function(){return Sg.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},Sg.geo.albersUsa=function(){function a(a){var f=a[0],g=a[1];return b=null,c(f,g),b||(d(f,g),b)||e(f,g),b}var b,c,d,e,f=Sg.geo.albers(),g=Sg.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),h=Sg.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),i={point:function(a,c){b=[a,c]}};return a.invert=function(a){var b=f.scale(),c=f.translate(),d=(a[0]-c[0])/b,e=(a[1]-c[1])/b;return(e>=.12&&.234>e&&d>=-.425&&-.214>d?g:e>=.166&&.234>e&&d>=-.214&&-.115>d?h:f).invert(a)},a.stream=function(a){var b=f.stream(a),c=g.stream(a),d=h.stream(a);return{point:function(a,e){b.point(a,e),c.point(a,e),d.point(a,e)},sphere:function(){b.sphere(),c.sphere(),d.sphere()},lineStart:function(){b.lineStart(),c.lineStart(),d.lineStart()},lineEnd:function(){b.lineEnd(),c.lineEnd(),d.lineEnd()},polygonStart:function(){b.polygonStart(),c.polygonStart(),d.polygonStart()},polygonEnd:function(){b.polygonEnd(),c.polygonEnd(),d.polygonEnd()}}},a.precision=function(b){return arguments.length?(f.precision(b),g.precision(b),h.precision(b),a):f.precision()},a.scale=function(b){return arguments.length?(f.scale(b),g.scale(.35*b),h.scale(b),a.translate(f.translate())):f.scale()},a.translate=function(b){if(!arguments.length)return f.translate();var j=f.scale(),k=+b[0],l=+b[1];return c=f.translate(b).clipExtent([[k-.455*j,l-.238*j],[k+.455*j,l+.238*j]]).stream(i).point,d=g.translate([k-.307*j,l+.201*j]).clipExtent([[k-.425*j+zh,l+.12*j+zh],[k-.214*j-zh,l+.234*j-zh]]).stream(i).point,e=h.translate([k-.205*j,l+.212*j]).clipExtent([[k-.214*j+zh,l+.166*j+zh],[k-.115*j-zh,l+.234*j-zh]]).stream(i).point,a},a.scale(1070)};var Ai,Bi,Ci,Di,Ei,Fi,Gi={point:p,lineStart:p,lineEnd:p,polygonStart:function(){Bi=0,Gi.lineStart=Pc},polygonEnd:function(){Gi.lineStart=Gi.lineEnd=Gi.point=p,Ai+=eh(Bi/2)}},Hi={point:Qc,lineStart:p,lineEnd:p,polygonStart:p,polygonEnd:p},Ii={point:Tc,lineStart:Uc,lineEnd:Vc,polygonStart:function(){Ii.lineStart=Wc},polygonEnd:function(){Ii.point=Tc,Ii.lineStart=Uc,Ii.lineEnd=Vc}};Sg.geo.path=function(){function a(a){return a&&("function"==typeof h&&f.pointRadius(+h.apply(this,arguments)),g&&g.valid||(g=e(f)),Sg.geo.stream(a,g)),f.result()}function b(){return g=null,a}var c,d,e,f,g,h=4.5;return a.area=function(a){return Ai=0,Sg.geo.stream(a,e(Gi)),Ai},a.centroid=function(a){return oi=pi=qi=ri=si=ti=ui=vi=wi=0,Sg.geo.stream(a,e(Ii)),wi?[ui/wi,vi/wi]:ti?[ri/ti,si/ti]:qi?[oi/qi,pi/qi]:[0/0,0/0]},a.bounds=function(a){return Ei=Fi=-(Ci=Di=1/0),Sg.geo.stream(a,e(Hi)),[[Ci,Di],[Ei,Fi]]},a.projection=function(a){return arguments.length?(e=(c=a)?a.stream||Zc(a):xb,b()):c},a.context=function(a){return arguments.length?(f=null==(d=a)?new Rc:new Xc(a),"function"!=typeof h&&f.pointRadius(h),b()):d},a.pointRadius=function(b){return arguments.length?(h="function"==typeof b?b:(f.pointRadius(+b),+b),a):h},a.projection(Sg.geo.albersUsa()).context(null)},Sg.geo.transform=function(a){return{stream:function(b){var c=new $c(b);for(var d in a)c[d]=a[d];return c}}},$c.prototype={point:function(a,b){this.stream.point(a,b)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},Sg.geo.projection=ad,Sg.geo.projectionMutator=bd,(Sg.geo.equirectangular=function(){return ad(dd)}).raw=dd.invert=dd,Sg.geo.rotation=function(a){function b(b){return b=a(b[0]*Bh,b[1]*Bh),b[0]*=Ch,b[1]*=Ch,b}return a=fd(a[0]%360*Bh,a[1]*Bh,a.length>2?a[2]*Bh:0),b.invert=function(b){return b=a.invert(b[0]*Bh,b[1]*Bh),b[0]*=Ch,b[1]*=Ch,b},b},ed.invert=dd,Sg.geo.circle=function(){function a(){var a="function"==typeof d?d.apply(this,arguments):d,b=fd(-a[0]*Bh,-a[1]*Bh,0).invert,e=[];return c(null,null,1,{point:function(a,c){e.push(a=b(a,c)),a[0]*=Ch,a[1]*=Ch}}),{type:"Polygon",coordinates:[e]}}var b,c,d=[0,0],e=6;return a.origin=function(b){return arguments.length?(d=b,a):d},a.angle=function(d){return arguments.length?(c=jd((b=+d)*Bh,e*Bh),a):b},a.precision=function(d){return arguments.length?(c=jd(b*Bh,(e=+d)*Bh),a):e},a.angle(90)},Sg.geo.distance=function(a,b){var c,d=(b[0]-a[0])*Bh,e=a[1]*Bh,f=b[1]*Bh,g=Math.sin(d),h=Math.cos(d),i=Math.sin(e),j=Math.cos(e),k=Math.sin(f),l=Math.cos(f);return Math.atan2(Math.sqrt((c=l*g)*c+(c=j*k-i*l*h)*c),i*k+j*l*h)},Sg.geo.graticule=function(){function a(){return{type:"MultiLineString",coordinates:b()}}function b(){return Sg.range(Math.ceil(f/q)*q,e,q).map(m).concat(Sg.range(Math.ceil(j/r)*r,i,r).map(n)).concat(Sg.range(Math.ceil(d/o)*o,c,o).filter(function(a){return eh(a%q)>zh}).map(k)).concat(Sg.range(Math.ceil(h/p)*p,g,p).filter(function(a){return eh(a%r)>zh}).map(l))}var c,d,e,f,g,h,i,j,k,l,m,n,o=10,p=o,q=90,r=360,s=2.5;return a.lines=function(){return b().map(function(a){return{type:"LineString",coordinates:a}})},a.outline=function(){return{type:"Polygon",coordinates:[m(f).concat(n(i).slice(1),m(e).reverse().slice(1),n(j).reverse().slice(1))]}},a.extent=function(b){return arguments.length?a.majorExtent(b).minorExtent(b):a.minorExtent()},a.majorExtent=function(b){return arguments.length?(f=+b[0][0],e=+b[1][0],j=+b[0][1],i=+b[1][1],f>e&&(b=f,f=e,e=b),j>i&&(b=j,j=i,i=b),a.precision(s)):[[f,j],[e,i]]},a.minorExtent=function(b){return arguments.length?(d=+b[0][0],c=+b[1][0],h=+b[0][1],g=+b[1][1],d>c&&(b=d,d=c,c=b),h>g&&(b=h,h=g,g=b),a.precision(s)):[[d,h],[c,g]]},a.step=function(b){return arguments.length?a.majorStep(b).minorStep(b):a.minorStep()},a.majorStep=function(b){return arguments.length?(q=+b[0],r=+b[1],a):[q,r]},a.minorStep=function(b){return arguments.length?(o=+b[0],p=+b[1],a):[o,p]},a.precision=function(b){return arguments.length?(s=+b,k=ld(h,g,90),l=md(d,c,s),m=ld(j,i,90),n=md(f,e,s),a):s},a.majorExtent([[-180,-90+zh],[180,90-zh]]).minorExtent([[-180,-80-zh],[180,80+zh]])},Sg.geo.greatArc=function(){function a(){return{type:"LineString",coordinates:[b||d.apply(this,arguments),c||e.apply(this,arguments)]}}var b,c,d=nd,e=od;return a.distance=function(){return Sg.geo.distance(b||d.apply(this,arguments),c||e.apply(this,arguments))},a.source=function(c){return arguments.length?(d=c,b="function"==typeof c?null:c,a):d},a.target=function(b){return arguments.length?(e=b,c="function"==typeof b?null:b,a):e},a.precision=function(){return arguments.length?a:0},a},Sg.geo.interpolate=function(a,b){return pd(a[0]*Bh,a[1]*Bh,b[0]*Bh,b[1]*Bh)},Sg.geo.length=function(a){return Ji=0,Sg.geo.stream(a,Ki),Ji};var Ji,Ki={sphere:p,point:p,lineStart:qd,lineEnd:p,polygonStart:p,polygonEnd:p},Li=rd(function(a){return Math.sqrt(2/(1+a))},function(a){return 2*Math.asin(a/2)});(Sg.geo.azimuthalEqualArea=function(){return ad(Li)}).raw=Li;var Mi=rd(function(a){var b=Math.acos(a);return b&&b/Math.sin(b)},xb);(Sg.geo.azimuthalEquidistant=function(){return ad(Mi)}).raw=Mi,(Sg.geo.conicConformal=function(){return Nc(sd)}).raw=sd,(Sg.geo.conicEquidistant=function(){return Nc(td)}).raw=td;var Ni=rd(function(a){return 1/a},Math.atan);(Sg.geo.gnomonic=function(){return ad(Ni)}).raw=Ni,ud.invert=function(a,b){return[a,2*Math.atan(Math.exp(b))-yh]},(Sg.geo.mercator=function(){return vd(ud)}).raw=ud;var Oi=rd(function(){return 1},Math.asin);(Sg.geo.orthographic=function(){return ad(Oi)}).raw=Oi;var Pi=rd(function(a){return 1/(1+a)},function(a){return 2*Math.atan(a)});(Sg.geo.stereographic=function(){return ad(Pi)}).raw=Pi,wd.invert=function(a,b){return[-b,2*Math.atan(Math.exp(a))-yh]},(Sg.geo.transverseMercator=function(){var a=vd(wd),b=a.center,c=a.rotate;return a.center=function(a){return a?b([-a[1],a[0]]):(a=b(),[-a[1],a[0]])},a.rotate=function(a){return a?c([a[0],a[1],a.length>2?a[2]+90:90]):(a=c(),[a[0],a[1],a[2]-90])},a.rotate([0,0])}).raw=wd,Sg.geom={},Sg.geom.hull=function(a){function b(a){if(a.length<3)return[];var b,e=wb(c),f=wb(d),g=a.length,h=[],i=[];for(b=0;g>b;b++)h.push([+e.call(this,a[b],b),+f.call(this,a[b],b),b]);for(h.sort(Ad),b=0;g>b;b++)i.push([h[b][0],-h[b][1]]);var j=zd(h),k=zd(i),l=k[0]===j[0],m=k[k.length-1]===j[j.length-1],n=[];for(b=j.length-1;b>=0;--b)n.push(a[h[j[b]][2]]);for(b=+l;b<k.length-m;++b)n.push(a[h[k[b]][2]]);return n}var c=xd,d=yd;return arguments.length?b(a):(b.x=function(a){return arguments.length?(c=a,b):c},b.y=function(a){return arguments.length?(d=a,b):d},b)},Sg.geom.polygon=function(a){return jh(a,Qi),a};var Qi=Sg.geom.polygon.prototype=[];Qi.area=function(){for(var a,b=-1,c=this.length,d=this[c-1],e=0;++b<c;)a=d,d=this[b],e+=a[1]*d[0]-a[0]*d[1];return.5*e},Qi.centroid=function(a){var b,c,d=-1,e=this.length,f=0,g=0,h=this[e-1];for(arguments.length||(a=-1/(6*this.area()));++d<e;)b=h,h=this[d],c=b[0]*h[1]-h[0]*b[1],f+=(b[0]+h[0])*c,g+=(b[1]+h[1])*c;return[f*a,g*a]},Qi.clip=function(a){for(var b,c,d,e,f,g,h=Dd(a),i=-1,j=this.length-Dd(this),k=this[j-1];++i<j;){for(b=a.slice(),a.length=0,e=this[i],f=b[(d=b.length-h)-1],c=-1;++c<d;)g=b[c],Bd(g,k,e)?(Bd(f,k,e)||a.push(Cd(f,g,k,e)),a.push(g)):Bd(f,k,e)&&a.push(Cd(f,g,k,e)),f=g;h&&a.push(a[0]),k=e}return a};var Ri,Si,Ti,Ui,Vi,Wi=[],Xi=[];Ld.prototype.prepare=function(){for(var a,b=this.edges,c=b.length;c--;)a=b[c].edge,a.b&&a.a||b.splice(c,1);return b.sort(Nd),b.length},Xd.prototype={start:function(){return this.edge.l===this.site?this.edge.a:this.edge.b},end:function(){return this.edge.l===this.site?this.edge.b:this.edge.a}},Yd.prototype={insert:function(a,b){var c,d,e;if(a){if(b.P=a,b.N=a.N,a.N&&(a.N.P=b),a.N=b,a.R){for(a=a.R;a.L;)a=a.L;a.L=b}else a.R=b;c=a}else this._?(a=ae(this._),b.P=null,b.N=a,a.P=a.L=b,c=a):(b.P=b.N=null,this._=b,c=null);for(b.L=b.R=null,b.U=c,b.C=!0,a=b;c&&c.C;)d=c.U,c===d.L?(e=d.R,e&&e.C?(c.C=e.C=!1,d.C=!0,a=d):(a===c.R&&($d(this,c),a=c,c=a.U),c.C=!1,d.C=!0,_d(this,d))):(e=d.L,e&&e.C?(c.C=e.C=!1,d.C=!0,a=d):(a===c.L&&(_d(this,c),a=c,c=a.U),c.C=!1,d.C=!0,$d(this,d))),c=a.U;this._.C=!1},remove:function(a){a.N&&(a.N.P=a.P),a.P&&(a.P.N=a.N),a.N=a.P=null;var b,c,d,e=a.U,f=a.L,g=a.R;if(c=f?g?ae(g):f:g,e?e.L===a?e.L=c:e.R=c:this._=c,f&&g?(d=c.C,c.C=a.C,c.L=f,f.U=c,c!==g?(e=c.U,c.U=a.U,a=c.R,e.L=a,c.R=g,g.U=c):(c.U=e,e=c,a=c.R)):(d=a.C,a=c),a&&(a.U=e),!d){if(a&&a.C)return void(a.C=!1);do{if(a===this._)break;if(a===e.L){if(b=e.R,b.C&&(b.C=!1,e.C=!0,$d(this,e),b=e.R),b.L&&b.L.C||b.R&&b.R.C){b.R&&b.R.C||(b.L.C=!1,b.C=!0,_d(this,b),b=e.R),b.C=e.C,e.C=b.R.C=!1,$d(this,e),a=this._;break}}else if(b=e.L,b.C&&(b.C=!1,e.C=!0,_d(this,e),b=e.L),b.L&&b.L.C||b.R&&b.R.C){b.L&&b.L.C||(b.R.C=!1,b.C=!0,$d(this,b),b=e.L),b.C=e.C,e.C=b.L.C=!1,_d(this,e),a=this._;break}b.C=!0,a=e,e=e.U}while(!a.C);a&&(a.C=!1)}}},Sg.geom.voronoi=function(a){function b(a){var b=new Array(a.length),d=h[0][0],e=h[0][1],f=h[1][0],g=h[1][1];return be(c(a),h).cells.forEach(function(c,h){var i=c.edges,j=c.site,k=b[h]=i.length?i.map(function(a){var b=a.start();return[b.x,b.y]}):j.x>=d&&j.x<=f&&j.y>=e&&j.y<=g?[[d,g],[f,g],[f,e],[d,e]]:[];k.point=a[h]}),b}function c(a){return a.map(function(a,b){return{x:Math.round(f(a,b)/zh)*zh,y:Math.round(g(a,b)/zh)*zh,i:b}})}var d=xd,e=yd,f=d,g=e,h=Yi;return a?b(a):(b.links=function(a){return be(c(a)).edges.filter(function(a){return a.l&&a.r}).map(function(b){return{source:a[b.l.i],target:a[b.r.i]}})},b.triangles=function(a){var b=[];return be(c(a)).cells.forEach(function(c,d){for(var e,f,g=c.site,h=c.edges.sort(Nd),i=-1,j=h.length,k=h[j-1].edge,l=k.l===g?k.r:k.l;++i<j;)e=k,f=l,k=h[i].edge,l=k.l===g?k.r:k.l,d<f.i&&d<l.i&&de(g,f,l)<0&&b.push([a[d],a[f.i],a[l.i]])}),b},b.x=function(a){return arguments.length?(f=wb(d=a),b):d},b.y=function(a){return arguments.length?(g=wb(e=a),b):e},b.clipExtent=function(a){return arguments.length?(h=null==a?Yi:a,b):h===Yi?null:h},b.size=function(a){return arguments.length?b.clipExtent(a&&[[0,0],a]):h===Yi?null:h&&h[1]},b)};var Yi=[[-1e6,-1e6],[1e6,1e6]];Sg.geom.delaunay=function(a){return Sg.geom.voronoi().triangles(a)},Sg.geom.quadtree=function(a,b,c,d,e){function f(a){function f(a,b,c,d,e,f,g,h){if(!isNaN(c)&&!isNaN(d))if(a.leaf){var i=a.x,k=a.y;if(null!=i)if(eh(i-c)+eh(k-d)<.01)j(a,b,c,d,e,f,g,h);else{var l=a.point;a.x=a.y=a.point=null,j(a,l,i,k,e,f,g,h),j(a,b,c,d,e,f,g,h)}else a.x=c,a.y=d,a.point=b}else j(a,b,c,d,e,f,g,h)}function j(a,b,c,d,e,g,h,i){var j=.5*(e+h),k=.5*(g+i),l=c>=j,m=d>=k,n=(m<<1)+l;a.leaf=!1,a=a.nodes[n]||(a.nodes[n]=ge()),l?e=j:h=j,m?g=k:i=k,f(a,b,c,d,e,g,h,i)}var k,l,m,n,o,p,q,r,s,t=wb(h),u=wb(i);if(null!=b)p=b,q=c,r=d,s=e;else if(r=s=-(p=q=1/0),l=[],m=[],o=a.length,g)for(n=0;o>n;++n)k=a[n],k.x<p&&(p=k.x),k.y<q&&(q=k.y),k.x>r&&(r=k.x),k.y>s&&(s=k.y),l.push(k.x),m.push(k.y);else for(n=0;o>n;++n){var v=+t(k=a[n],n),w=+u(k,n);p>v&&(p=v),q>w&&(q=w),v>r&&(r=v),w>s&&(s=w),l.push(v),m.push(w)}var x=r-p,y=s-q;x>y?s=q+x:r=p+y;var z=ge();if(z.add=function(a){f(z,a,+t(a,++n),+u(a,n),p,q,r,s)},z.visit=function(a){he(a,z,p,q,r,s)},n=-1,null==b){for(;++n<o;)f(z,a[n],l[n],m[n],p,q,r,s);--n}else a.forEach(z.add);return l=m=a=k=null,z}var g,h=xd,i=yd;return(g=arguments.length)?(h=ee,i=fe,3===g&&(e=c,d=b,c=b=0),f(a)):(f.x=function(a){return arguments.length?(h=a,f):h},f.y=function(a){return arguments.length?(i=a,f):i},f.extent=function(a){return arguments.length?(null==a?b=c=d=e=null:(b=+a[0][0],c=+a[0][1],d=+a[1][0],e=+a[1][1]),f):null==b?null:[[b,c],[d,e]]},f.size=function(a){return arguments.length?(null==a?b=c=d=e=null:(b=c=0,d=+a[0],e=+a[1]),f):null==b?null:[d-b,e-c]},f)},Sg.interpolateRgb=ie,Sg.interpolateObject=je,Sg.interpolateNumber=ke,Sg.interpolateString=le;var Zi=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,$i=new RegExp(Zi.source,"g");Sg.interpolate=me,Sg.interpolators=[function(a,b){var c=typeof b;return("string"===c?Rh.has(b)||/^(#|rgb\(|hsl\()/.test(b)?ie:le:b instanceof cb?ie:Array.isArray(b)?ne:"object"===c&&isNaN(b)?je:ke)(a,b)}],Sg.interpolateArray=ne;var _i=function(){return xb},aj=Sg.map({linear:_i,poly:ue,quad:function(){return re},cubic:function(){return se},sin:function(){return ve},exp:function(){return we},circle:function(){return xe},elastic:ye,back:ze,bounce:function(){return Ae}}),bj=Sg.map({"in":xb,out:pe,"in-out":qe,"out-in":function(a){return qe(pe(a))}});Sg.ease=function(a){var b=a.indexOf("-"),c=b>=0?a.substring(0,b):a,d=b>=0?a.substring(b+1):"in";
return c=aj.get(c)||_i,d=bj.get(d)||xb,oe(d(c.apply(null,Tg.call(arguments,1))))},Sg.interpolateHcl=Be,Sg.interpolateHsl=Ce,Sg.interpolateLab=De,Sg.interpolateRound=Ee,Sg.transform=function(a){var b=Vg.createElementNS(Sg.ns.prefix.svg,"g");return(Sg.transform=function(a){if(null!=a){b.setAttribute("transform",a);var c=b.transform.baseVal.consolidate()}return new Fe(c?c.matrix:cj)})(a)},Fe.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var cj={a:1,b:0,c:0,d:1,e:0,f:0};Sg.interpolateTransform=Je,Sg.layout={},Sg.layout.bundle=function(){return function(a){for(var b=[],c=-1,d=a.length;++c<d;)b.push(Me(a[c]));return b}},Sg.layout.chord=function(){function a(){var a,j,l,m,n,o={},p=[],q=Sg.range(f),r=[];for(c=[],d=[],a=0,m=-1;++m<f;){for(j=0,n=-1;++n<f;)j+=e[m][n];p.push(j),r.push(Sg.range(f)),a+=j}for(g&&q.sort(function(a,b){return g(p[a],p[b])}),h&&r.forEach(function(a,b){a.sort(function(a,c){return h(e[b][a],e[b][c])})}),a=(xh-k*f)/a,j=0,m=-1;++m<f;){for(l=j,n=-1;++n<f;){var s=q[m],t=r[s][n],u=e[s][t],v=j,w=j+=u*a;o[s+"-"+t]={index:s,subindex:t,startAngle:v,endAngle:w,value:u}}d[s]={index:s,startAngle:l,endAngle:j,value:(j-l)/a},j+=k}for(m=-1;++m<f;)for(n=m-1;++n<f;){var x=o[m+"-"+n],y=o[n+"-"+m];(x.value||y.value)&&c.push(x.value<y.value?{source:y,target:x}:{source:x,target:y})}i&&b()}function b(){c.sort(function(a,b){return i((a.source.value+a.target.value)/2,(b.source.value+b.target.value)/2)})}var c,d,e,f,g,h,i,j={},k=0;return j.matrix=function(a){return arguments.length?(f=(e=a)&&e.length,c=d=null,j):e},j.padding=function(a){return arguments.length?(k=a,c=d=null,j):k},j.sortGroups=function(a){return arguments.length?(g=a,c=d=null,j):g},j.sortSubgroups=function(a){return arguments.length?(h=a,c=null,j):h},j.sortChords=function(a){return arguments.length?(i=a,c&&b(),j):i},j.chords=function(){return c||a(),c},j.groups=function(){return d||a(),d},j},Sg.layout.force=function(){function a(a){return function(b,c,d,e){if(b.point!==a){var f=b.cx-a.x,g=b.cy-a.y,h=e-c,i=f*f+g*g;if(i>h*h/q){if(o>i){var j=b.charge/i;a.px-=f*j,a.py-=g*j}return!0}if(b.point&&i&&o>i){var j=b.pointCharge/i;a.px-=f*j,a.py-=g*j}}return!b.charge}}function b(a){a.px=Sg.event.x,a.py=Sg.event.y,h.resume()}var c,d,e,f,g,h={},i=Sg.dispatch("start","tick","end"),j=[1,1],k=.9,l=dj,m=ej,n=-30,o=fj,p=.1,q=.64,r=[],s=[];return h.tick=function(){if((d*=.99)<.005)return i.end({type:"end",alpha:d=0}),!0;var b,c,h,l,m,o,q,t,u,v=r.length,w=s.length;for(c=0;w>c;++c)h=s[c],l=h.source,m=h.target,t=m.x-l.x,u=m.y-l.y,(o=t*t+u*u)&&(o=d*f[c]*((o=Math.sqrt(o))-e[c])/o,t*=o,u*=o,m.x-=t*(q=l.weight/(m.weight+l.weight)),m.y-=u*q,l.x+=t*(q=1-q),l.y+=u*q);if((q=d*p)&&(t=j[0]/2,u=j[1]/2,c=-1,q))for(;++c<v;)h=r[c],h.x+=(t-h.x)*q,h.y+=(u-h.y)*q;if(n)for(Te(b=Sg.geom.quadtree(r),d,g),c=-1;++c<v;)(h=r[c]).fixed||b.visit(a(h));for(c=-1;++c<v;)h=r[c],h.fixed?(h.x=h.px,h.y=h.py):(h.x-=(h.px-(h.px=h.x))*k,h.y-=(h.py-(h.py=h.y))*k);i.tick({type:"tick",alpha:d})},h.nodes=function(a){return arguments.length?(r=a,h):r},h.links=function(a){return arguments.length?(s=a,h):s},h.size=function(a){return arguments.length?(j=a,h):j},h.linkDistance=function(a){return arguments.length?(l="function"==typeof a?a:+a,h):l},h.distance=h.linkDistance,h.linkStrength=function(a){return arguments.length?(m="function"==typeof a?a:+a,h):m},h.friction=function(a){return arguments.length?(k=+a,h):k},h.charge=function(a){return arguments.length?(n="function"==typeof a?a:+a,h):n},h.chargeDistance=function(a){return arguments.length?(o=a*a,h):Math.sqrt(o)},h.gravity=function(a){return arguments.length?(p=+a,h):p},h.theta=function(a){return arguments.length?(q=a*a,h):Math.sqrt(q)},h.alpha=function(a){return arguments.length?(a=+a,d?d=a>0?a:0:a>0&&(i.start({type:"start",alpha:d=a}),Sg.timer(h.tick)),h):d},h.start=function(){function a(a,d){if(!c){for(c=new Array(i),h=0;i>h;++h)c[h]=[];for(h=0;j>h;++h){var e=s[h];c[e.source.index].push(e.target),c[e.target.index].push(e.source)}}for(var f,g=c[b],h=-1,j=g.length;++h<j;)if(!isNaN(f=g[h][a]))return f;return Math.random()*d}var b,c,d,i=r.length,k=s.length,o=j[0],p=j[1];for(b=0;i>b;++b)(d=r[b]).index=b,d.weight=0;for(b=0;k>b;++b)d=s[b],"number"==typeof d.source&&(d.source=r[d.source]),"number"==typeof d.target&&(d.target=r[d.target]),++d.source.weight,++d.target.weight;for(b=0;i>b;++b)d=r[b],isNaN(d.x)&&(d.x=a("x",o)),isNaN(d.y)&&(d.y=a("y",p)),isNaN(d.px)&&(d.px=d.x),isNaN(d.py)&&(d.py=d.y);if(e=[],"function"==typeof l)for(b=0;k>b;++b)e[b]=+l.call(this,s[b],b);else for(b=0;k>b;++b)e[b]=l;if(f=[],"function"==typeof m)for(b=0;k>b;++b)f[b]=+m.call(this,s[b],b);else for(b=0;k>b;++b)f[b]=m;if(g=[],"function"==typeof n)for(b=0;i>b;++b)g[b]=+n.call(this,r[b],b);else for(b=0;i>b;++b)g[b]=n;return h.resume()},h.resume=function(){return h.alpha(.1)},h.stop=function(){return h.alpha(0)},h.drag=function(){return c||(c=Sg.behavior.drag().origin(xb).on("dragstart.force",Pe).on("drag.force",b).on("dragend.force",Qe)),arguments.length?void this.on("mouseover.force",Re).on("mouseout.force",Se).call(c):c},Sg.rebind(h,i,"on")};var dj=20,ej=1,fj=1/0;Sg.layout.hierarchy=function(){function a(e){var f,g=[e],h=[];for(e.depth=0;null!=(f=g.pop());)if(h.push(f),(j=c.call(a,f,f.depth))&&(i=j.length)){for(var i,j,k;--i>=0;)g.push(k=j[i]),k.parent=f,k.depth=f.depth+1;d&&(f.value=0),f.children=j}else d&&(f.value=+d.call(a,f,f.depth)||0),delete f.children;return We(e,function(a){var c,e;b&&(c=a.children)&&c.sort(b),d&&(e=a.parent)&&(e.value+=a.value)}),h}var b=Ze,c=Xe,d=Ye;return a.sort=function(c){return arguments.length?(b=c,a):b},a.children=function(b){return arguments.length?(c=b,a):c},a.value=function(b){return arguments.length?(d=b,a):d},a.revalue=function(b){return d&&(Ve(b,function(a){a.children&&(a.value=0)}),We(b,function(b){var c;b.children||(b.value=+d.call(a,b,b.depth)||0),(c=b.parent)&&(c.value+=b.value)})),b},a},Sg.layout.partition=function(){function a(b,c,d,e){var f=b.children;if(b.x=c,b.y=b.depth*e,b.dx=d,b.dy=e,f&&(g=f.length)){var g,h,i,j=-1;for(d=b.value?d/b.value:0;++j<g;)a(h=f[j],c,i=h.value*d,e),c+=i}}function b(a){var c=a.children,d=0;if(c&&(e=c.length))for(var e,f=-1;++f<e;)d=Math.max(d,b(c[f]));return 1+d}function c(c,f){var g=d.call(this,c,f);return a(g[0],0,e[0],e[1]/b(g[0])),g}var d=Sg.layout.hierarchy(),e=[1,1];return c.size=function(a){return arguments.length?(e=a,c):e},Ue(c,d)},Sg.layout.pie=function(){function a(f){var g=f.map(function(c,d){return+b.call(a,c,d)}),h=+("function"==typeof d?d.apply(this,arguments):d),i=(("function"==typeof e?e.apply(this,arguments):e)-h)/Sg.sum(g),j=Sg.range(f.length);null!=c&&j.sort(c===gj?function(a,b){return g[b]-g[a]}:function(a,b){return c(f[a],f[b])});var k=[];return j.forEach(function(a){var b;k[a]={data:f[a],value:b=g[a],startAngle:h,endAngle:h+=b*i}}),k}var b=Number,c=gj,d=0,e=xh;return a.value=function(c){return arguments.length?(b=c,a):b},a.sort=function(b){return arguments.length?(c=b,a):c},a.startAngle=function(b){return arguments.length?(d=b,a):d},a.endAngle=function(b){return arguments.length?(e=b,a):e},a};var gj={};Sg.layout.stack=function(){function a(h,i){var j=h.map(function(c,d){return b.call(a,c,d)}),k=j.map(function(b){return b.map(function(b,c){return[f.call(a,b,c),g.call(a,b,c)]})}),l=c.call(a,k,i);j=Sg.permute(j,l),k=Sg.permute(k,l);var m,n,o,p=d.call(a,k,i),q=j.length,r=j[0].length;for(n=0;r>n;++n)for(e.call(a,j[0][n],o=p[n],k[0][n][1]),m=1;q>m;++m)e.call(a,j[m][n],o+=k[m-1][n][1],k[m][n][1]);return h}var b=xb,c=cf,d=df,e=bf,f=_e,g=af;return a.values=function(c){return arguments.length?(b=c,a):b},a.order=function(b){return arguments.length?(c="function"==typeof b?b:hj.get(b)||cf,a):c},a.offset=function(b){return arguments.length?(d="function"==typeof b?b:ij.get(b)||df,a):d},a.x=function(b){return arguments.length?(f=b,a):f},a.y=function(b){return arguments.length?(g=b,a):g},a.out=function(b){return arguments.length?(e=b,a):e},a};var hj=Sg.map({"inside-out":function(a){var b,c,d=a.length,e=a.map(ef),f=a.map(ff),g=Sg.range(d).sort(function(a,b){return e[a]-e[b]}),h=0,i=0,j=[],k=[];for(b=0;d>b;++b)c=g[b],i>h?(h+=f[c],j.push(c)):(i+=f[c],k.push(c));return k.reverse().concat(j)},reverse:function(a){return Sg.range(a.length).reverse()},"default":cf}),ij=Sg.map({silhouette:function(a){var b,c,d,e=a.length,f=a[0].length,g=[],h=0,i=[];for(c=0;f>c;++c){for(b=0,d=0;e>b;b++)d+=a[b][c][1];d>h&&(h=d),g.push(d)}for(c=0;f>c;++c)i[c]=(h-g[c])/2;return i},wiggle:function(a){var b,c,d,e,f,g,h,i,j,k=a.length,l=a[0],m=l.length,n=[];for(n[0]=i=j=0,c=1;m>c;++c){for(b=0,e=0;k>b;++b)e+=a[b][c][1];for(b=0,f=0,h=l[c][0]-l[c-1][0];k>b;++b){for(d=0,g=(a[b][c][1]-a[b][c-1][1])/(2*h);b>d;++d)g+=(a[d][c][1]-a[d][c-1][1])/h;f+=g*a[b][c][1]}n[c]=i-=e?f/e*h:0,j>i&&(j=i)}for(c=0;m>c;++c)n[c]-=j;return n},expand:function(a){var b,c,d,e=a.length,f=a[0].length,g=1/e,h=[];for(c=0;f>c;++c){for(b=0,d=0;e>b;b++)d+=a[b][c][1];if(d)for(b=0;e>b;b++)a[b][c][1]/=d;else for(b=0;e>b;b++)a[b][c][1]=g}for(c=0;f>c;++c)h[c]=0;return h},zero:df});Sg.layout.histogram=function(){function a(a,f){for(var g,h,i=[],j=a.map(c,this),k=d.call(this,j,f),l=e.call(this,k,j,f),f=-1,m=j.length,n=l.length-1,o=b?1:1/m;++f<n;)g=i[f]=[],g.dx=l[f+1]-(g.x=l[f]),g.y=0;if(n>0)for(f=-1;++f<m;)h=j[f],h>=k[0]&&h<=k[1]&&(g=i[Sg.bisect(l,h,1,n)-1],g.y+=o,g.push(a[f]));return i}var b=!0,c=Number,d=kf,e=hf;return a.value=function(b){return arguments.length?(c=b,a):c},a.range=function(b){return arguments.length?(d=wb(b),a):d},a.bins=function(b){return arguments.length?(e="number"==typeof b?function(a){return jf(a,b)}:wb(b),a):e},a.frequency=function(c){return arguments.length?(b=!!c,a):b},a},Sg.layout.pack=function(){function a(a,f){var g=c.call(this,a,f),h=g[0],i=e[0],j=e[1],k=null==b?Math.sqrt:"function"==typeof b?b:function(){return b};if(h.x=h.y=0,We(h,function(a){a.r=+k(a.value)}),We(h,pf),d){var l=d*(b?1:Math.max(2*h.r/i,2*h.r/j))/2;We(h,function(a){a.r+=l}),We(h,pf),We(h,function(a){a.r-=l})}return sf(h,i/2,j/2,b?1:1/Math.max(2*h.r/i,2*h.r/j)),g}var b,c=Sg.layout.hierarchy().sort(lf),d=0,e=[1,1];return a.size=function(b){return arguments.length?(e=b,a):e},a.radius=function(c){return arguments.length?(b=null==c||"function"==typeof c?c:+c,a):b},a.padding=function(b){return arguments.length?(d=+b,a):d},Ue(a,c)},Sg.layout.tree=function(){function a(a,e){var k=g.call(this,a,e),l=k[0],m=b(l);if(We(m,c),m.parent.m=-m.z,Ve(m,d),j)Ve(l,f);else{var n=l,o=l,p=l;Ve(l,function(a){a.x<n.x&&(n=a),a.x>o.x&&(o=a),a.depth>p.depth&&(p=a)});var q=h(n,o)/2-n.x,r=i[0]/(o.x+h(o,n)/2+q),s=i[1]/(p.depth||1);Ve(l,function(a){a.x=(a.x+q)*r,a.y=a.depth*s})}return k}function b(a){for(var b,c={A:null,children:[a]},d=[c];null!=(b=d.pop());)for(var e,f=b.children,g=0,h=f.length;h>g;++g)d.push((f[g]=e={_:f[g],parent:b,children:(e=f[g].children)&&e.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:g}).a=e);return c.children[0]}function c(a){var b=a.children,c=a.parent.children,d=a.i?c[a.i-1]:null;if(b.length){yf(a);var f=(b[0].z+b[b.length-1].z)/2;d?(a.z=d.z+h(a._,d._),a.m=a.z-f):a.z=f}else d&&(a.z=d.z+h(a._,d._));a.parent.A=e(a,d,a.parent.A||c[0])}function d(a){a._.x=a.z+a.parent.m,a.m+=a.parent.m}function e(a,b,c){if(b){for(var d,e=a,f=a,g=b,i=e.parent.children[0],j=e.m,k=f.m,l=g.m,m=i.m;g=wf(g),e=vf(e),g&&e;)i=vf(i),f=wf(f),f.a=a,d=g.z+l-e.z-j+h(g._,e._),d>0&&(xf(zf(g,a,c),a,d),j+=d,k+=d),l+=g.m,j+=e.m,m+=i.m,k+=f.m;g&&!wf(f)&&(f.t=g,f.m+=l-k),e&&!vf(i)&&(i.t=e,i.m+=j-m,c=a)}return c}function f(a){a.x*=i[0],a.y=a.depth*i[1]}var g=Sg.layout.hierarchy().sort(null).value(null),h=uf,i=[1,1],j=null;return a.separation=function(b){return arguments.length?(h=b,a):h},a.size=function(b){return arguments.length?(j=null==(i=b)?f:null,a):j?null:i},a.nodeSize=function(b){return arguments.length?(j=null==(i=b)?null:f,a):j?i:null},Ue(a,g)},Sg.layout.cluster=function(){function a(a,f){var g,h=b.call(this,a,f),i=h[0],j=0;We(i,function(a){var b=a.children;b&&b.length?(a.x=Bf(b),a.y=Af(b)):(a.x=g?j+=c(a,g):0,a.y=0,g=a)});var k=Cf(i),l=Df(i),m=k.x-c(k,l)/2,n=l.x+c(l,k)/2;return We(i,e?function(a){a.x=(a.x-i.x)*d[0],a.y=(i.y-a.y)*d[1]}:function(a){a.x=(a.x-m)/(n-m)*d[0],a.y=(1-(i.y?a.y/i.y:1))*d[1]}),h}var b=Sg.layout.hierarchy().sort(null).value(null),c=uf,d=[1,1],e=!1;return a.separation=function(b){return arguments.length?(c=b,a):c},a.size=function(b){return arguments.length?(e=null==(d=b),a):e?null:d},a.nodeSize=function(b){return arguments.length?(e=null!=(d=b),a):e?d:null},Ue(a,b)},Sg.layout.treemap=function(){function a(a,b){for(var c,d,e=-1,f=a.length;++e<f;)d=(c=a[e]).value*(0>b?0:b),c.area=isNaN(d)||0>=d?0:d}function b(c){var f=c.children;if(f&&f.length){var g,h,i,j=l(c),k=[],m=f.slice(),o=1/0,p="slice"===n?j.dx:"dice"===n?j.dy:"slice-dice"===n?1&c.depth?j.dy:j.dx:Math.min(j.dx,j.dy);for(a(m,j.dx*j.dy/c.value),k.area=0;(i=m.length)>0;)k.push(g=m[i-1]),k.area+=g.area,"squarify"!==n||(h=d(k,p))<=o?(m.pop(),o=h):(k.area-=k.pop().area,e(k,p,j,!1),p=Math.min(j.dx,j.dy),k.length=k.area=0,o=1/0);k.length&&(e(k,p,j,!0),k.length=k.area=0),f.forEach(b)}}function c(b){var d=b.children;if(d&&d.length){var f,g=l(b),h=d.slice(),i=[];for(a(h,g.dx*g.dy/b.value),i.area=0;f=h.pop();)i.push(f),i.area+=f.area,null!=f.z&&(e(i,f.z?g.dx:g.dy,g,!h.length),i.length=i.area=0);d.forEach(c)}}function d(a,b){for(var c,d=a.area,e=0,f=1/0,g=-1,h=a.length;++g<h;)(c=a[g].area)&&(f>c&&(f=c),c>e&&(e=c));return d*=d,b*=b,d?Math.max(b*e*o/d,d/(b*f*o)):1/0}function e(a,b,c,d){var e,f=-1,g=a.length,h=c.x,j=c.y,k=b?i(a.area/b):0;if(b==c.dx){for((d||k>c.dy)&&(k=c.dy);++f<g;)e=a[f],e.x=h,e.y=j,e.dy=k,h+=e.dx=Math.min(c.x+c.dx-h,k?i(e.area/k):0);e.z=!0,e.dx+=c.x+c.dx-h,c.y+=k,c.dy-=k}else{for((d||k>c.dx)&&(k=c.dx);++f<g;)e=a[f],e.x=h,e.y=j,e.dx=k,j+=e.dy=Math.min(c.y+c.dy-j,k?i(e.area/k):0);e.z=!1,e.dy+=c.y+c.dy-j,c.x+=k,c.dx-=k}}function f(d){var e=g||h(d),f=e[0];return f.x=0,f.y=0,f.dx=j[0],f.dy=j[1],g&&h.revalue(f),a([f],f.dx*f.dy/f.value),(g?c:b)(f),m&&(g=e),e}var g,h=Sg.layout.hierarchy(),i=Math.round,j=[1,1],k=null,l=Ef,m=!1,n="squarify",o=.5*(1+Math.sqrt(5));return f.size=function(a){return arguments.length?(j=a,f):j},f.padding=function(a){function b(b){var c=a.call(f,b,b.depth);return null==c?Ef(b):Ff(b,"number"==typeof c?[c,c,c,c]:c)}function c(b){return Ff(b,a)}if(!arguments.length)return k;var d;return l=null==(k=a)?Ef:"function"==(d=typeof a)?b:"number"===d?(a=[a,a,a,a],c):c,f},f.round=function(a){return arguments.length?(i=a?Math.round:Number,f):i!=Number},f.sticky=function(a){return arguments.length?(m=a,g=null,f):m},f.ratio=function(a){return arguments.length?(o=a,f):o},f.mode=function(a){return arguments.length?(n=a+"",f):n},Ue(f,h)},Sg.random={normal:function(a,b){var c=arguments.length;return 2>c&&(b=1),1>c&&(a=0),function(){var c,d,e;do c=2*Math.random()-1,d=2*Math.random()-1,e=c*c+d*d;while(!e||e>1);return a+b*c*Math.sqrt(-2*Math.log(e)/e)}},logNormal:function(){var a=Sg.random.normal.apply(Sg,arguments);return function(){return Math.exp(a())}},bates:function(a){var b=Sg.random.irwinHall(a);return function(){return b()/a}},irwinHall:function(a){return function(){for(var b=0,c=0;a>c;c++)b+=Math.random();return b}}},Sg.scale={};var jj={floor:xb,ceil:xb};Sg.scale.linear=function(){return Mf([0,1],[0,1],me,!1)};var kj={s:1,g:1,p:1,r:1,e:1};Sg.scale.log=function(){return Uf(Sg.scale.linear().domain([0,1]),10,!0,[1,10])};var lj=Sg.format(".0e"),mj={floor:function(a){return-Math.ceil(-a)},ceil:function(a){return-Math.floor(-a)}};Sg.scale.pow=function(){return Vf(Sg.scale.linear(),1,[0,1])},Sg.scale.sqrt=function(){return Sg.scale.pow().exponent(.5)},Sg.scale.ordinal=function(){return Xf([],{t:"range",a:[[]]})},Sg.scale.category10=function(){return Sg.scale.ordinal().range(nj)},Sg.scale.category20=function(){return Sg.scale.ordinal().range(oj)},Sg.scale.category20b=function(){return Sg.scale.ordinal().range(pj)},Sg.scale.category20c=function(){return Sg.scale.ordinal().range(qj)};var nj=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(pb),oj=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(pb),pj=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(pb),qj=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(pb);Sg.scale.quantile=function(){return Yf([],[])},Sg.scale.quantize=function(){return Zf(0,1,[0,1])},Sg.scale.threshold=function(){return $f([.5],[0,1])},Sg.scale.identity=function(){return _f([0,1])},Sg.svg={},Sg.svg.arc=function(){function a(){var a=b.apply(this,arguments),f=c.apply(this,arguments),g=d.apply(this,arguments)+rj,h=e.apply(this,arguments)+rj,i=(g>h&&(i=g,g=h,h=i),h-g),j=wh>i?"0":"1",k=Math.cos(g),l=Math.sin(g),m=Math.cos(h),n=Math.sin(h);return i>=sj?a?"M0,"+f+"A"+f+","+f+" 0 1,1 0,"+-f+"A"+f+","+f+" 0 1,1 0,"+f+"M0,"+a+"A"+a+","+a+" 0 1,0 0,"+-a+"A"+a+","+a+" 0 1,0 0,"+a+"Z":"M0,"+f+"A"+f+","+f+" 0 1,1 0,"+-f+"A"+f+","+f+" 0 1,1 0,"+f+"Z":a?"M"+f*k+","+f*l+"A"+f+","+f+" 0 "+j+",1 "+f*m+","+f*n+"L"+a*m+","+a*n+"A"+a+","+a+" 0 "+j+",0 "+a*k+","+a*l+"Z":"M"+f*k+","+f*l+"A"+f+","+f+" 0 "+j+",1 "+f*m+","+f*n+"L0,0Z"}var b=ag,c=bg,d=cg,e=dg;return a.innerRadius=function(c){return arguments.length?(b=wb(c),a):b},a.outerRadius=function(b){return arguments.length?(c=wb(b),a):c},a.startAngle=function(b){return arguments.length?(d=wb(b),a):d},a.endAngle=function(b){return arguments.length?(e=wb(b),a):e},a.centroid=function(){var a=(b.apply(this,arguments)+c.apply(this,arguments))/2,f=(d.apply(this,arguments)+e.apply(this,arguments))/2+rj;return[Math.cos(f)*a,Math.sin(f)*a]},a};var rj=-yh,sj=xh-zh;Sg.svg.line=function(){return eg(xb)};var tj=Sg.map({linear:fg,"linear-closed":gg,step:hg,"step-before":ig,"step-after":jg,basis:pg,"basis-open":qg,"basis-closed":rg,bundle:sg,cardinal:mg,"cardinal-open":kg,"cardinal-closed":lg,monotone:yg});tj.forEach(function(a,b){b.key=a,b.closed=/-closed$/.test(a)});var uj=[0,2/3,1/3,0],vj=[0,1/3,2/3,0],wj=[0,1/6,2/3,1/6];Sg.svg.line.radial=function(){var a=eg(zg);return a.radius=a.x,delete a.x,a.angle=a.y,delete a.y,a},ig.reverse=jg,jg.reverse=ig,Sg.svg.area=function(){return Ag(xb)},Sg.svg.area.radial=function(){var a=Ag(zg);return a.radius=a.x,delete a.x,a.innerRadius=a.x0,delete a.x0,a.outerRadius=a.x1,delete a.x1,a.angle=a.y,delete a.y,a.startAngle=a.y0,delete a.y0,a.endAngle=a.y1,delete a.y1,a},Sg.svg.chord=function(){function a(a,h){var i=b(this,f,a,h),j=b(this,g,a,h);return"M"+i.p0+d(i.r,i.p1,i.a1-i.a0)+(c(i,j)?e(i.r,i.p1,i.r,i.p0):e(i.r,i.p1,j.r,j.p0)+d(j.r,j.p1,j.a1-j.a0)+e(j.r,j.p1,i.r,i.p0))+"Z"}function b(a,b,c,d){var e=b.call(a,c,d),f=h.call(a,e,d),g=i.call(a,e,d)+rj,k=j.call(a,e,d)+rj;return{r:f,a0:g,a1:k,p0:[f*Math.cos(g),f*Math.sin(g)],p1:[f*Math.cos(k),f*Math.sin(k)]}}function c(a,b){return a.a0==b.a0&&a.a1==b.a1}function d(a,b,c){return"A"+a+","+a+" 0 "+ +(c>wh)+",1 "+b}function e(a,b,c,d){return"Q 0,0 "+d}var f=nd,g=od,h=Bg,i=cg,j=dg;return a.radius=function(b){return arguments.length?(h=wb(b),a):h},a.source=function(b){return arguments.length?(f=wb(b),a):f},a.target=function(b){return arguments.length?(g=wb(b),a):g},a.startAngle=function(b){return arguments.length?(i=wb(b),a):i},a.endAngle=function(b){return arguments.length?(j=wb(b),a):j},a},Sg.svg.diagonal=function(){function a(a,e){var f=b.call(this,a,e),g=c.call(this,a,e),h=(f.y+g.y)/2,i=[f,{x:f.x,y:h},{x:g.x,y:h},g];return i=i.map(d),"M"+i[0]+"C"+i[1]+" "+i[2]+" "+i[3]}var b=nd,c=od,d=Cg;return a.source=function(c){return arguments.length?(b=wb(c),a):b},a.target=function(b){return arguments.length?(c=wb(b),a):c},a.projection=function(b){return arguments.length?(d=b,a):d},a},Sg.svg.diagonal.radial=function(){var a=Sg.svg.diagonal(),b=Cg,c=a.projection;return a.projection=function(a){return arguments.length?c(Dg(b=a)):b},a},Sg.svg.symbol=function(){function a(a,d){return(xj.get(b.call(this,a,d))||Gg)(c.call(this,a,d))}var b=Fg,c=Eg;return a.type=function(c){return arguments.length?(b=wb(c),a):b},a.size=function(b){return arguments.length?(c=wb(b),a):c},a};var xj=Sg.map({circle:Gg,cross:function(a){var b=Math.sqrt(a/5)/2;return"M"+-3*b+","+-b+"H"+-b+"V"+-3*b+"H"+b+"V"+-b+"H"+3*b+"V"+b+"H"+b+"V"+3*b+"H"+-b+"V"+b+"H"+-3*b+"Z"},diamond:function(a){var b=Math.sqrt(a/(2*Bj)),c=b*Bj;return"M0,"+-b+"L"+c+",0 0,"+b+" "+-c+",0Z"},square:function(a){var b=Math.sqrt(a)/2;return"M"+-b+","+-b+"L"+b+","+-b+" "+b+","+b+" "+-b+","+b+"Z"},"triangle-down":function(a){var b=Math.sqrt(a/Aj),c=b*Aj/2;return"M0,"+c+"L"+b+","+-c+" "+-b+","+-c+"Z"},"triangle-up":function(a){var b=Math.sqrt(a/Aj),c=b*Aj/2;return"M0,"+-c+"L"+b+","+c+" "+-b+","+c+"Z"}});Sg.svg.symbolTypes=xj.keys();var yj,zj,Aj=Math.sqrt(3),Bj=Math.tan(30*Bh),Cj=[],Dj=0;Cj.call=oh.call,Cj.empty=oh.empty,Cj.node=oh.node,Cj.size=oh.size,Sg.transition=function(a){return arguments.length?yj?a.transition():a:rh.transition()},Sg.transition.prototype=Cj,Cj.select=function(a){var b,c,d,e=this.id,f=[];a=w(a);for(var g=-1,h=this.length;++g<h;){f.push(b=[]);for(var i=this[g],j=-1,k=i.length;++j<k;)(d=i[j])&&(c=a.call(d,d.__data__,j,g))?("__data__"in d&&(c.__data__=d.__data__),Kg(c,j,e,d.__transition__[e]),b.push(c)):b.push(null)}return Hg(f,e)},Cj.selectAll=function(a){var b,c,d,e,f,g=this.id,h=[];a=x(a);for(var i=-1,j=this.length;++i<j;)for(var k=this[i],l=-1,m=k.length;++l<m;)if(d=k[l]){f=d.__transition__[g],c=a.call(d,d.__data__,l,i),h.push(b=[]);for(var n=-1,o=c.length;++n<o;)(e=c[n])&&Kg(e,n,g,f),b.push(e)}return Hg(h,g)},Cj.filter=function(a){var b,c,d,e=[];"function"!=typeof a&&(a=I(a));for(var f=0,g=this.length;g>f;f++){e.push(b=[]);for(var c=this[f],h=0,i=c.length;i>h;h++)(d=c[h])&&a.call(d,d.__data__,h,f)&&b.push(d)}return Hg(e,this.id)},Cj.tween=function(a,b){var c=this.id;return arguments.length<2?this.node().__transition__[c].tween.get(a):K(this,null==b?function(b){b.__transition__[c].tween.remove(a)}:function(d){d.__transition__[c].tween.set(a,b)})},Cj.attr=function(a,b){function c(){this.removeAttribute(h)}function d(){this.removeAttributeNS(h.space,h.local)}function e(a){return null==a?c:(a+="",function(){var b,c=this.getAttribute(h);return c!==a&&(b=g(c,a),function(a){this.setAttribute(h,b(a))})})}function f(a){return null==a?d:(a+="",function(){var b,c=this.getAttributeNS(h.space,h.local);return c!==a&&(b=g(c,a),function(a){this.setAttributeNS(h.space,h.local,b(a))})})}if(arguments.length<2){for(b in a)this.attr(b,a[b]);return this}var g="transform"==a?Je:me,h=Sg.ns.qualify(a);return Ig(this,"attr."+a,b,h.local?f:e)},Cj.attrTween=function(a,b){function c(a,c){var d=b.call(this,a,c,this.getAttribute(e));return d&&function(a){this.setAttribute(e,d(a))}}function d(a,c){var d=b.call(this,a,c,this.getAttributeNS(e.space,e.local));return d&&function(a){this.setAttributeNS(e.space,e.local,d(a))}}var e=Sg.ns.qualify(a);return this.tween("attr."+a,e.local?d:c)},Cj.style=function(a,b,c){function d(){this.style.removeProperty(a)}function e(b){return null==b?d:(b+="",function(){var d,e=Xg.getComputedStyle(this,null).getPropertyValue(a);return e!==b&&(d=me(e,b),function(b){this.style.setProperty(a,d(b),c)})})}var f=arguments.length;if(3>f){if("string"!=typeof a){2>f&&(b="");for(c in a)this.style(c,a[c],b);return this}c=""}return Ig(this,"style."+a,b,e)},Cj.styleTween=function(a,b,c){function d(d,e){var f=b.call(this,d,e,Xg.getComputedStyle(this,null).getPropertyValue(a));return f&&function(b){this.style.setProperty(a,f(b),c)}}return arguments.length<3&&(c=""),this.tween("style."+a,d)},Cj.text=function(a){return Ig(this,"text",a,Jg)},Cj.remove=function(){return this.each("end.transition",function(){var a;this.__transition__.count<2&&(a=this.parentNode)&&a.removeChild(this)})},Cj.ease=function(a){var b=this.id;return arguments.length<1?this.node().__transition__[b].ease:("function"!=typeof a&&(a=Sg.ease.apply(Sg,arguments)),K(this,function(c){c.__transition__[b].ease=a}))},Cj.delay=function(a){var b=this.id;return arguments.length<1?this.node().__transition__[b].delay:K(this,"function"==typeof a?function(c,d,e){c.__transition__[b].delay=+a.call(c,c.__data__,d,e)}:(a=+a,function(c){c.__transition__[b].delay=a}))},Cj.duration=function(a){var b=this.id;return arguments.length<1?this.node().__transition__[b].duration:K(this,"function"==typeof a?function(c,d,e){c.__transition__[b].duration=Math.max(1,a.call(c,c.__data__,d,e))}:(a=Math.max(1,a),function(c){c.__transition__[b].duration=a}))},Cj.each=function(a,b){var c=this.id;if(arguments.length<2){var d=zj,e=yj;yj=c,K(this,function(b,d,e){zj=b.__transition__[c],a.call(b,b.__data__,d,e)}),zj=d,yj=e}else K(this,function(d){var e=d.__transition__[c];(e.event||(e.event=Sg.dispatch("start","end"))).on(a,b)});return this},Cj.transition=function(){for(var a,b,c,d,e=this.id,f=++Dj,g=[],h=0,i=this.length;i>h;h++){g.push(a=[]);for(var b=this[h],j=0,k=b.length;k>j;j++)(c=b[j])&&(d=Object.create(c.__transition__[e]),d.delay+=d.duration,Kg(c,j,f,d)),a.push(c)}return Hg(g,f)},Sg.svg.axis=function(){function a(a){a.each(function(){var a,j=Sg.select(this),k=this.__chart__||c,l=this.__chart__=c.copy(),m=null==i?l.ticks?l.ticks.apply(l,h):l.domain():i,n=null==b?l.tickFormat?l.tickFormat.apply(l,h):xb:b,o=j.selectAll(".tick").data(m,l),p=o.enter().insert("g",".domain").attr("class","tick").style("opacity",zh),q=Sg.transition(o.exit()).style("opacity",zh).remove(),r=Sg.transition(o.order()).style("opacity",1),s=Hf(l),t=j.selectAll(".domain").data([0]),u=(t.enter().append("path").attr("class","domain"),Sg.transition(t));p.append("line"),p.append("text");var v=p.select("line"),w=r.select("line"),x=o.select("text").text(n),y=p.select("text"),z=r.select("text");switch(d){case"bottom":a=Lg,v.attr("y2",e),y.attr("y",Math.max(e,0)+g),w.attr("x2",0).attr("y2",e),z.attr("x",0).attr("y",Math.max(e,0)+g),x.attr("dy",".71em").style("text-anchor","middle"),u.attr("d","M"+s[0]+","+f+"V0H"+s[1]+"V"+f);break;case"top":a=Lg,v.attr("y2",-e),y.attr("y",-(Math.max(e,0)+g)),w.attr("x2",0).attr("y2",-e),z.attr("x",0).attr("y",-(Math.max(e,0)+g)),x.attr("dy","0em").style("text-anchor","middle"),u.attr("d","M"+s[0]+","+-f+"V0H"+s[1]+"V"+-f);break;case"left":a=Mg,v.attr("x2",-e),y.attr("x",-(Math.max(e,0)+g)),w.attr("x2",-e).attr("y2",0),z.attr("x",-(Math.max(e,0)+g)).attr("y",0),x.attr("dy",".32em").style("text-anchor","end"),u.attr("d","M"+-f+","+s[0]+"H0V"+s[1]+"H"+-f);break;case"right":a=Mg,v.attr("x2",e),y.attr("x",Math.max(e,0)+g),w.attr("x2",e).attr("y2",0),z.attr("x",Math.max(e,0)+g).attr("y",0),x.attr("dy",".32em").style("text-anchor","start"),u.attr("d","M"+f+","+s[0]+"H0V"+s[1]+"H"+f)}if(l.rangeBand){var A=l,B=A.rangeBand()/2;k=l=function(a){return A(a)+B}}else k.rangeBand?k=l:q.call(a,l);p.call(a,k),r.call(a,l)})}var b,c=Sg.scale.linear(),d=Ej,e=6,f=6,g=3,h=[10],i=null;return a.scale=function(b){return arguments.length?(c=b,a):c},a.orient=function(b){return arguments.length?(d=b in Fj?b+"":Ej,a):d},a.ticks=function(){return arguments.length?(h=arguments,a):h},a.tickValues=function(b){return arguments.length?(i=b,a):i},a.tickFormat=function(c){return arguments.length?(b=c,a):b},a.tickSize=function(b){var c=arguments.length;return c?(e=+b,f=+arguments[c-1],a):e},a.innerTickSize=function(b){return arguments.length?(e=+b,a):e},a.outerTickSize=function(b){return arguments.length?(f=+b,a):f},a.tickPadding=function(b){return arguments.length?(g=+b,a):g},a.tickSubdivide=function(){return arguments.length&&a},a};var Ej="bottom",Fj={top:1,right:1,bottom:1,left:1};Sg.svg.brush=function(){function a(f){f.each(function(){var f=Sg.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",e).on("touchstart.brush",e),g=f.selectAll(".background").data([0]);g.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),f.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var h=f.selectAll(".resize").data(o,xb);h.exit().remove(),h.enter().append("g").attr("class",function(a){return"resize "+a}).style("cursor",function(a){return Gj[a]}).append("rect").attr("x",function(a){return/[ew]$/.test(a)?-3:null}).attr("y",function(a){return/^[ns]/.test(a)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),h.style("display",a.empty()?"none":null);var k,l=Sg.transition(f),m=Sg.transition(g);i&&(k=Hf(i),m.attr("x",k[0]).attr("width",k[1]-k[0]),c(l)),j&&(k=Hf(j),m.attr("y",k[0]).attr("height",k[1]-k[0]),d(l)),b(l)})}function b(a){a.selectAll(".resize").attr("transform",function(a){return"translate("+k[+/e$/.test(a)]+","+l[+/^s/.test(a)]+")"})}function c(a){a.select(".extent").attr("x",k[0]),a.selectAll(".extent,.n>rect,.s>rect").attr("width",k[1]-k[0])}function d(a){a.select(".extent").attr("y",l[0]),a.selectAll(".extent,.e>rect,.w>rect").attr("height",l[1]-l[0])}function e(){function e(){32==Sg.event.keyCode&&(C||(t=null,E[0]-=k[1],E[1]-=l[1],C=2),s())}function o(){32==Sg.event.keyCode&&2==C&&(E[0]+=k[1],E[1]+=l[1],C=0,s())}function p(){var a=Sg.mouse(v),e=!1;u&&(a[0]+=u[0],a[1]+=u[1]),C||(Sg.event.altKey?(t||(t=[(k[0]+k[1])/2,(l[0]+l[1])/2]),E[0]=k[+(a[0]<t[0])],E[1]=l[+(a[1]<t[1])]):t=null),A&&q(a,i,0)&&(c(y),e=!0),B&&q(a,j,1)&&(d(y),e=!0),e&&(b(y),x({type:"brush",mode:C?"move":"resize"}))}function q(a,b,c){var d,e,h=Hf(b),i=h[0],j=h[1],o=E[c],p=c?l:k,q=p[1]-p[0];return C&&(i-=o,j-=q+o),d=(c?n:m)?Math.max(i,Math.min(j,a[c])):a[c],C?e=(d+=o)+q:(t&&(o=Math.max(i,Math.min(j,2*t[c]-d))),d>o?(e=d,d=o):e=o),p[0]!=d||p[1]!=e?(c?g=null:f=null,p[0]=d,p[1]=e,!0):void 0}function r(){p(),y.style("pointer-events","all").selectAll(".resize").style("display",a.empty()?"none":null),Sg.select("body").style("cursor",null),F.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),D(),x({type:"brushend"})}var t,u,v=this,w=Sg.select(Sg.event.target),x=h.of(v,arguments),y=Sg.select(v),z=w.datum(),A=!/^(n|s)$/.test(z)&&i,B=!/^(e|w)$/.test(z)&&j,C=w.classed("extent"),D=R(),E=Sg.mouse(v),F=Sg.select(Xg).on("keydown.brush",e).on("keyup.brush",o);if(Sg.event.changedTouches?F.on("touchmove.brush",p).on("touchend.brush",r):F.on("mousemove.brush",p).on("mouseup.brush",r),y.interrupt().selectAll("*").interrupt(),C)E[0]=k[0]-E[0],E[1]=l[0]-E[1];else if(z){var G=+/w$/.test(z),H=+/^n/.test(z);u=[k[1-G]-E[0],l[1-H]-E[1]],E[0]=k[G],E[1]=l[H]}else Sg.event.altKey&&(t=E.slice());y.style("pointer-events","none").selectAll(".resize").style("display",null),Sg.select("body").style("cursor",w.style("cursor")),x({type:"brushstart"}),p()}var f,g,h=u(a,"brushstart","brush","brushend"),i=null,j=null,k=[0,0],l=[0,0],m=!0,n=!0,o=Hj[0];return a.event=function(a){a.each(function(){var a=h.of(this,arguments),b={x:k,y:l,i:f,j:g},c=this.__chart__||b;this.__chart__=b,yj?Sg.select(this).transition().each("start.brush",function(){f=c.i,g=c.j,k=c.x,l=c.y,a({type:"brushstart"})}).tween("brush:brush",function(){var c=ne(k,b.x),d=ne(l,b.y);return f=g=null,function(e){k=b.x=c(e),l=b.y=d(e),a({type:"brush",mode:"resize"})}}).each("end.brush",function(){f=b.i,g=b.j,a({type:"brush",mode:"resize"}),a({type:"brushend"})}):(a({type:"brushstart"}),a({type:"brush",mode:"resize"}),a({type:"brushend"}))})},a.x=function(b){return arguments.length?(i=b,o=Hj[!i<<1|!j],a):i},a.y=function(b){return arguments.length?(j=b,o=Hj[!i<<1|!j],a):j},a.clamp=function(b){return arguments.length?(i&&j?(m=!!b[0],n=!!b[1]):i?m=!!b:j&&(n=!!b),a):i&&j?[m,n]:i?m:j?n:null},a.extent=function(b){var c,d,e,h,m;return arguments.length?(i&&(c=b[0],d=b[1],j&&(c=c[0],d=d[0]),f=[c,d],i.invert&&(c=i(c),d=i(d)),c>d&&(m=c,c=d,d=m),(c!=k[0]||d!=k[1])&&(k=[c,d])),j&&(e=b[0],h=b[1],i&&(e=e[1],h=h[1]),g=[e,h],j.invert&&(e=j(e),h=j(h)),e>h&&(m=e,e=h,h=m),(e!=l[0]||h!=l[1])&&(l=[e,h])),a):(i&&(f?(c=f[0],d=f[1]):(c=k[0],d=k[1],i.invert&&(c=i.invert(c),d=i.invert(d)),c>d&&(m=c,c=d,d=m))),j&&(g?(e=g[0],h=g[1]):(e=l[0],h=l[1],j.invert&&(e=j.invert(e),h=j.invert(h)),e>h&&(m=e,e=h,h=m))),i&&j?[[c,e],[d,h]]:i?[c,d]:j&&[e,h])
},a.clear=function(){return a.empty()||(k=[0,0],l=[0,0],f=g=null),a},a.empty=function(){return!!i&&k[0]==k[1]||!!j&&l[0]==l[1]},Sg.rebind(a,h,"on")};var Gj={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Hj=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Ij=_h.format=fi.timeFormat,Jj=Ij.utc,Kj=Jj("%Y-%m-%dT%H:%M:%S.%LZ");Ij.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?Ng:Kj,Ng.parse=function(a){var b=new Date(a);return isNaN(b)?null:b},Ng.toString=Kj.toString,_h.second=Jb(function(a){return new ai(1e3*Math.floor(a/1e3))},function(a,b){a.setTime(a.getTime()+1e3*Math.floor(b))},function(a){return a.getSeconds()}),_h.seconds=_h.second.range,_h.seconds.utc=_h.second.utc.range,_h.minute=Jb(function(a){return new ai(6e4*Math.floor(a/6e4))},function(a,b){a.setTime(a.getTime()+6e4*Math.floor(b))},function(a){return a.getMinutes()}),_h.minutes=_h.minute.range,_h.minutes.utc=_h.minute.utc.range,_h.hour=Jb(function(a){var b=a.getTimezoneOffset()/60;return new ai(36e5*(Math.floor(a/36e5-b)+b))},function(a,b){a.setTime(a.getTime()+36e5*Math.floor(b))},function(a){return a.getHours()}),_h.hours=_h.hour.range,_h.hours.utc=_h.hour.utc.range,_h.month=Jb(function(a){return a=_h.day(a),a.setDate(1),a},function(a,b){a.setMonth(a.getMonth()+b)},function(a){return a.getMonth()}),_h.months=_h.month.range,_h.months.utc=_h.month.utc.range;var Lj=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Mj=[[_h.second,1],[_h.second,5],[_h.second,15],[_h.second,30],[_h.minute,1],[_h.minute,5],[_h.minute,15],[_h.minute,30],[_h.hour,1],[_h.hour,3],[_h.hour,6],[_h.hour,12],[_h.day,1],[_h.day,2],[_h.week,1],[_h.month,1],[_h.month,3],[_h.year,1]],Nj=Ij.multi([[".%L",function(a){return a.getMilliseconds()}],[":%S",function(a){return a.getSeconds()}],["%I:%M",function(a){return a.getMinutes()}],["%I %p",function(a){return a.getHours()}],["%a %d",function(a){return a.getDay()&&1!=a.getDate()}],["%b %d",function(a){return 1!=a.getDate()}],["%B",function(a){return a.getMonth()}],["%Y",xc]]),Oj={range:function(a,b,c){return Sg.range(Math.ceil(a/c)*c,+b,c).map(Pg)},floor:xb,ceil:xb};Mj.year=_h.year,_h.scale=function(){return Og(Sg.scale.linear(),Mj,Nj)};var Pj=Mj.map(function(a){return[a[0].utc,a[1]]}),Qj=Jj.multi([[".%L",function(a){return a.getUTCMilliseconds()}],[":%S",function(a){return a.getUTCSeconds()}],["%I:%M",function(a){return a.getUTCMinutes()}],["%I %p",function(a){return a.getUTCHours()}],["%a %d",function(a){return a.getUTCDay()&&1!=a.getUTCDate()}],["%b %d",function(a){return 1!=a.getUTCDate()}],["%B",function(a){return a.getUTCMonth()}],["%Y",xc]]);Pj.year=_h.year.utc,_h.scale.utc=function(){return Og(Sg.scale.linear(),Pj,Qj)},Sg.text=yb(function(a){return a.responseText}),Sg.json=function(a,b){return zb(a,"application/json",Qg,b)},Sg.html=function(a,b){return zb(a,"text/html",Rg,b)},Sg.xml=yb(function(a){return a.responseXML}),"function"==typeof define&&define.amd?define(Sg):"object"==typeof module&&module.exports?module.exports=Sg:this.d3=Sg}(),function(){function a(a,b,c){for(var d=(c||0)-1,e=a?a.length:0;++d<e;)if(a[d]===b)return d;return-1}function b(b,c){var d=typeof c;if(b=b.cache,"boolean"==d||null==c)return b[c]?0:-1;"number"!=d&&"string"!=d&&(d="object");var e="number"==d?c:u+c;return b=(b=b[d])&&b[e],"object"==d?b&&a(b,c)>-1?0:-1:b?0:-1}function c(a){var b=this.cache,c=typeof a;if("boolean"==c||null==a)b[a]=!0;else{"number"!=c&&"string"!=c&&(c="object");var d="number"==c?a:u+a,e=b[c]||(b[c]={});"object"==c?(e[d]||(e[d]=[])).push(a):e[d]=!0}}function d(a){return a.charCodeAt(0)}function e(a,b){for(var c=a.criteria,d=b.criteria,e=-1,f=c.length;++e<f;){var g=c[e],h=d[e];if(g!==h){if(g>h||"undefined"==typeof g)return 1;if(h>g||"undefined"==typeof h)return-1}}return a.index-b.index}function f(a){var b=-1,d=a.length,e=a[0],f=a[d/2|0],g=a[d-1];if(e&&"object"==typeof e&&f&&"object"==typeof f&&g&&"object"==typeof g)return!1;var h=i();h["false"]=h["null"]=h["true"]=h.undefined=!1;var j=i();for(j.array=a,j.cache=h,j.push=c;++b<d;)j.push(a[b]);return j}function g(a){return"\\"+_[a]}function h(){return q.pop()||[]}function i(){return r.pop()||{array:null,cache:null,criteria:null,"false":!1,index:0,"null":!1,number:null,object:null,push:null,string:null,"true":!1,undefined:!1,value:null}}function j(a){return"function"!=typeof a.toString&&"string"==typeof(a+"")}function l(a){a.length=0,q.length<w&&q.push(a)}function m(a){var b=a.cache;b&&m(b),a.array=a.cache=a.criteria=a.object=a.number=a.string=a.value=null,r.length<w&&r.push(a)}function n(a,b,c){b||(b=0),"undefined"==typeof c&&(c=a?a.length:0);for(var d=-1,e=c-b||0,f=Array(0>e?0:e);++d<e;)f[d]=a[b+d];return f}function o(c){function q(a){return a&&"object"==typeof a&&!ke(a)&&Rd.call(a,"__wrapped__")?a:new r(a)}function r(a,b){this.__chain__=!!b,this.__wrapped__=a}function w(a){function b(){if(d){var a=n(d);Sd.apply(a,arguments)}if(this instanceof b){var f=bb(c.prototype),g=c.apply(f,a||arguments);return Lb(g)?g:f}return c.apply(e,a||arguments)}var c=a[0],d=a[2],e=a[4];return je(b,a),b}function _(a,b,c,d,e){if(c){var f=c(a);if("undefined"!=typeof f)return f}var g=Lb(a);if(!g)return a;var i=Kd.call(a);if(!W[i]||!he.nodeClass&&j(a))return a;var k=fe[i];switch(i){case O:case P:return new k(+a);case S:case V:return new k(a);case U:return f=k(a.source,C.exec(a)),f.lastIndex=a.lastIndex,f}var m=ke(a);if(b){var o=!d;d||(d=h()),e||(e=h());for(var p=d.length;p--;)if(d[p]==a)return e[p];f=m?k(a.length):{}}else f=m?n(a):ve({},a);return m&&(Rd.call(a,"index")&&(f.index=a.index),Rd.call(a,"input")&&(f.input=a.input)),b?(d.push(a),e.push(f),(m?ue:ye)(a,function(a,g){f[g]=_(a,b,c,d,e)}),o&&(l(d),l(e)),f):f}function bb(a){return Lb(a)?Yd(a):{}}function cb(a,b,c){if("function"!=typeof a)return ed;if("undefined"==typeof b||!("prototype"in a))return a;var d=a.__bindData__;if("undefined"==typeof d&&(he.funcNames&&(d=!a.name),d=d||!he.funcDecomp,!d)){var e=Pd.call(a);he.funcNames||(d=!D.test(e)),d||(d=H.test(e),je(a,d))}if(d===!1||d!==!0&&1&d[1])return a;switch(c){case 1:return function(c){return a.call(b,c)};case 2:return function(c,d){return a.call(b,c,d)};case 3:return function(c,d,e){return a.call(b,c,d,e)};case 4:return function(c,d,e,f){return a.call(b,c,d,e,f)}}return Pc(a,b)}function db(a){function b(){var a=i?g:this;if(e){var o=n(e);Sd.apply(o,arguments)}if((f||k)&&(o||(o=n(arguments)),f&&Sd.apply(o,f),k&&o.length<h))return d|=16,db([c,l?d:-4&d,o,null,g,h]);if(o||(o=arguments),j&&(c=a[m]),this instanceof b){a=bb(c.prototype);var p=c.apply(a,o);return Lb(p)?p:a}return c.apply(a,o)}var c=a[0],d=a[1],e=a[2],f=a[3],g=a[4],h=a[5],i=1&d,j=2&d,k=4&d,l=8&d,m=c;return je(b,a),b}function eb(c,d){var e=-1,g=pb(),h=c?c.length:0,i=h>=v&&g===a,j=[];if(i){var k=f(d);k?(g=b,d=k):i=!1}for(;++e<h;){var l=c[e];g(d,l)<0&&j.push(l)}return i&&m(d),j}function gb(a,b,c,d){for(var e=(d||0)-1,f=a?a.length:0,g=[];++e<f;){var h=a[e];if(h&&"object"==typeof h&&"number"==typeof h.length&&(ke(h)||tb(h))){b||(h=gb(h,b,c));var i=-1,j=h.length,k=g.length;for(g.length+=j;++i<j;)g[k++]=h[i]}else c||g.push(h)}return g}function hb(a,b,c,d,e,f){if(c){var g=c(a,b);if("undefined"!=typeof g)return!!g}if(a===b)return 0!==a||1/a==1/b;var i=typeof a,k=typeof b;if(!(a!==a||a&&$[i]||b&&$[k]))return!1;if(null==a||null==b)return a===b;var m=Kd.call(a),n=Kd.call(b);if(m==M&&(m=T),n==M&&(n=T),m!=n)return!1;switch(m){case O:case P:return+a==+b;case S:return a!=+a?b!=+b:0==a?1/a==1/b:a==+b;case U:case V:return a==Dd(b)}var o=m==N;if(!o){var p=Rd.call(a,"__wrapped__"),q=Rd.call(b,"__wrapped__");if(p||q)return hb(p?a.__wrapped__:a,q?b.__wrapped__:b,c,d,e,f);if(m!=T||!he.nodeClass&&(j(a)||j(b)))return!1;var r=!he.argsObject&&tb(a)?Bd:a.constructor,s=!he.argsObject&&tb(b)?Bd:b.constructor;if(r!=s&&!(Kb(r)&&r instanceof r&&Kb(s)&&s instanceof s)&&"constructor"in a&&"constructor"in b)return!1}var t=!e;e||(e=h()),f||(f=h());for(var u=e.length;u--;)if(e[u]==a)return f[u]==b;var v=0;if(g=!0,e.push(a),f.push(b),o){if(u=a.length,v=b.length,g=v==u,g||d)for(;v--;){var w=u,x=b[v];if(d)for(;w--&&!(g=hb(a[w],x,c,d,e,f)););else if(!(g=hb(a[v],x,c,d,e,f)))break}}else xe(b,function(b,h,i){return Rd.call(i,h)?(v++,g=Rd.call(a,h)&&hb(a[h],b,c,d,e,f)):void 0}),g&&!d&&xe(a,function(a,b,c){return Rd.call(c,b)?g=--v>-1:void 0});return e.pop(),f.pop(),t&&(l(e),l(f)),g}function ib(a,b,c,d,e){(ke(b)?dc:ye)(b,function(b,f){var g,h,i=b,j=a[f];if(b&&((h=ke(b))||ze(b))){for(var k=d.length;k--;)if(g=d[k]==b){j=e[k];break}if(!g){var l;c&&(i=c(j,b),(l="undefined"!=typeof i)&&(j=i)),l||(j=h?ke(j)?j:[]:ze(j)?j:{}),d.push(b),e.push(j),l||ib(j,b,c,d,e)}}else c&&(i=c(j,b),"undefined"==typeof i&&(i=b)),"undefined"!=typeof i&&(j=i);a[f]=j})}function jb(a,b){return a+Od(ee()*(b-a+1))}function kb(c,d,e){var g=-1,i=pb(),j=c?c.length:0,k=[],n=!d&&j>=v&&i===a,o=e||n?h():k;if(n){var p=f(o);i=b,o=p}for(;++g<j;){var q=c[g],r=e?e(q,g,c):q;(d?!g||o[o.length-1]!==r:i(o,r)<0)&&((e||n)&&o.push(r),k.push(q))}return n?(l(o.array),m(o)):e&&l(o),k}function lb(a){return function(b,c,d){var e={};if(c=q.createCallback(c,d,3),ke(b))for(var f=-1,g=b.length;++f<g;){var h=b[f];a(e,h,c(h,f,b),b)}else ue(b,function(b,d,f){a(e,b,c(b,d,f),f)});return e}}function mb(a,b,c,d,e,f){var g=1&b,h=2&b,i=4&b,j=16&b,k=32&b;if(!h&&!Kb(a))throw new Ed;j&&!c.length&&(b&=-17,j=c=!1),k&&!d.length&&(b&=-33,k=d=!1);var l=a&&a.__bindData__;if(l&&l!==!0)return l=n(l),l[2]&&(l[2]=n(l[2])),l[3]&&(l[3]=n(l[3])),!g||1&l[1]||(l[4]=e),!g&&1&l[1]&&(b|=8),!i||4&l[1]||(l[5]=f),j&&Sd.apply(l[2]||(l[2]=[]),c),k&&Wd.apply(l[3]||(l[3]=[]),d),l[1]|=b,mb.apply(null,l);var m=1==b||17===b?w:db;return m([a,b,c,d,e,f])}function nb(){Z.shadowedProps=K,Z.array=Z.bottom=Z.loop=Z.top="",Z.init="iterable",Z.useHas=!0;for(var a,b=0;a=arguments[b];b++)for(var c in a)Z[c]=a[c];var d=Z.args;Z.firstArg=/^[^,]+/.exec(d)[0];var e=yd("baseCreateCallback, errorClass, errorProto, hasOwnProperty, indicatorObject, isArguments, isArray, isString, keys, objectProto, objectTypes, nonEnumProps, stringClass, stringProto, toString","return function("+d+") {\n"+ie(Z)+"\n}");return e(cb,Q,Gd,Rd,t,tb,ke,Qb,Z.keys,Hd,$,ge,V,Id,Kd)}function ob(a){return qe[a]}function pb(){var b=(b=q.indexOf)===yc?a:b;return b}function qb(a){return"function"==typeof a&&Ld.test(a)}function rb(a){var b,c;return!a||Kd.call(a)!=T||(b=a.constructor,Kb(b)&&!(b instanceof b))||!he.argsClass&&tb(a)||!he.nodeClass&&j(a)?!1:he.ownLast?(xe(a,function(a,b,d){return c=Rd.call(d,b),!1}),c!==!1):(xe(a,function(a,b){c=b}),"undefined"==typeof c||Rd.call(a,c))}function sb(a){return re[a]}function tb(a){return a&&"object"==typeof a&&"number"==typeof a.length&&Kd.call(a)==M||!1}function ub(a,b,c,d){return"boolean"!=typeof b&&null!=b&&(d=c,c=b,b=!1),_(a,b,"function"==typeof c&&cb(c,d,1))}function vb(a,b,c){return _(a,!0,"function"==typeof b&&cb(b,c,1))}function wb(a,b){var c=bb(a);return b?ve(c,b):c}function xb(a,b,c){var d;return b=q.createCallback(b,c,3),ye(a,function(a,c,e){return b(a,c,e)?(d=c,!1):void 0}),d}function yb(a,b,c){var d;return b=q.createCallback(b,c,3),Ab(a,function(a,c,e){return b(a,c,e)?(d=c,!1):void 0}),d}function zb(a,b,c){var d=[];xe(a,function(a,b){d.push(b,a)});var e=d.length;for(b=cb(b,c,3);e--&&b(d[e--],d[e],a)!==!1;);return a}function Ab(a,b,c){var d=me(a),e=d.length;for(b=cb(b,c,3);e--;){var f=d[e];if(b(a[f],f,a)===!1)break}return a}function Bb(a){var b=[];return xe(a,function(a,c){Kb(a)&&b.push(c)}),b.sort()}function Cb(a,b){return a?Rd.call(a,b):!1}function Db(a){for(var b=-1,c=me(a),d=c.length,e={};++b<d;){var f=c[b];e[a[f]]=f}return e}function Eb(a){return a===!0||a===!1||a&&"object"==typeof a&&Kd.call(a)==O||!1}function Fb(a){return a&&"object"==typeof a&&Kd.call(a)==P||!1}function Gb(a){return a&&1===a.nodeType||!1}function Hb(a){var b=!0;if(!a)return b;var c=Kd.call(a),d=a.length;return c==N||c==V||(he.argsClass?c==M:tb(a))||c==T&&"number"==typeof d&&Kb(a.splice)?!d:(ye(a,function(){return b=!1}),b)}function Ib(a,b,c,d){return hb(a,b,"function"==typeof c&&cb(c,d,2))}function Jb(a){return $d(a)&&!_d(parseFloat(a))}function Kb(a){return"function"==typeof a}function Lb(a){return!(!a||!$[typeof a])}function Mb(a){return Ob(a)&&a!=+a}function Nb(a){return null===a}function Ob(a){return"number"==typeof a||a&&"object"==typeof a&&Kd.call(a)==S||!1}function Pb(a){return a&&$[typeof a]&&Kd.call(a)==U||!1}function Qb(a){return"string"==typeof a||a&&"object"==typeof a&&Kd.call(a)==V||!1}function Rb(a){return"undefined"==typeof a}function Sb(a,b,c){var d={};return b=q.createCallback(b,c,3),ye(a,function(a,c,e){d[c]=b(a,c,e)}),d}function Tb(a){var b=arguments,c=2;if(!Lb(a))return a;if("number"!=typeof b[2]&&(c=b.length),c>3&&"function"==typeof b[c-2])var d=cb(b[--c-1],b[c--],2);else c>2&&"function"==typeof b[c-1]&&(d=b[--c]);for(var e=n(arguments,1,c),f=-1,g=h(),i=h();++f<c;)ib(a,e[f],d,g,i);return l(g),l(i),a}function Ub(a,b,c){var d={};if("function"!=typeof b){var e=[];xe(a,function(a,b){e.push(b)}),e=eb(e,gb(arguments,!0,!1,1));for(var f=-1,g=e.length;++f<g;){var h=e[f];d[h]=a[h]}}else b=q.createCallback(b,c,3),xe(a,function(a,c,e){b(a,c,e)||(d[c]=a)});return d}function Vb(a){for(var b=-1,c=me(a),d=c.length,e=ud(d);++b<d;){var f=c[b];e[b]=[f,a[f]]}return e}function Wb(a,b,c){var d={};if("function"!=typeof b)for(var e=-1,f=gb(arguments,!0,!1,1),g=Lb(a)?f.length:0;++e<g;){var h=f[e];h in a&&(d[h]=a[h])}else b=q.createCallback(b,c,3),xe(a,function(a,c,e){b(a,c,e)&&(d[c]=a)});return d}function Xb(a,b,c,d){var e=ke(a);if(null==c)if(e)c=[];else{var f=a&&a.constructor,g=f&&f.prototype;c=bb(g)}return b&&(b=q.createCallback(b,d,4),(e?ue:ye)(a,function(a,d,e){return b(c,a,d,e)})),c}function Yb(a){for(var b=-1,c=me(a),d=c.length,e=ud(d);++b<d;)e[b]=a[c[b]];return e}function Zb(a){var b=arguments,c=-1,d=gb(b,!0,!1,1),e=b[2]&&b[2][b[1]]===a?1:d.length,f=ud(e);for(he.unindexedChars&&Qb(a)&&(a=a.split(""));++c<e;)f[c]=a[d[c]];return f}function $b(a,b,c){var d=-1,e=pb(),f=a?a.length:0,g=!1;return c=(0>c?be(0,f+c):c)||0,ke(a)?g=e(a,b,c)>-1:"number"==typeof f?g=(Qb(a)?a.indexOf(b,c):e(a,b,c))>-1:ue(a,function(a){return++d>=c?!(g=a===b):void 0}),g}function _b(a,b,c){var d=!0;if(b=q.createCallback(b,c,3),ke(a))for(var e=-1,f=a.length;++e<f&&(d=!!b(a[e],e,a)););else ue(a,function(a,c,e){return d=!!b(a,c,e)});return d}function ac(a,b,c){var d=[];if(b=q.createCallback(b,c,3),ke(a))for(var e=-1,f=a.length;++e<f;){var g=a[e];b(g,e,a)&&d.push(g)}else ue(a,function(a,c,e){b(a,c,e)&&d.push(a)});return d}function bc(a,b,c){if(b=q.createCallback(b,c,3),!ke(a)){var d;return ue(a,function(a,c,e){return b(a,c,e)?(d=a,!1):void 0}),d}for(var e=-1,f=a.length;++e<f;){var g=a[e];if(b(g,e,a))return g}}function cc(a,b,c){var d;return b=q.createCallback(b,c,3),ec(a,function(a,c,e){return b(a,c,e)?(d=a,!1):void 0}),d}function dc(a,b,c){if(b&&"undefined"==typeof c&&ke(a))for(var d=-1,e=a.length;++d<e&&b(a[d],d,a)!==!1;);else ue(a,b,c);return a}function ec(a,b,c){var d=a,e=a?a.length:0;if(b=b&&"undefined"==typeof c?b:cb(b,c,3),ke(a))for(;e--&&b(a[e],e,a)!==!1;);else{if("number"!=typeof e){var f=me(a);e=f.length}else he.unindexedChars&&Qb(a)&&(d=a.split(""));ue(a,function(a,c,g){return c=f?f[--e]:--e,b(d[c],c,g)})}return a}function fc(a,b){var c=n(arguments,2),d=-1,e="function"==typeof b,f=a?a.length:0,g=ud("number"==typeof f?f:0);return dc(a,function(a){g[++d]=(e?b:a[b]).apply(a,c)}),g}function gc(a,b,c){var d=-1,e=a?a.length:0,f=ud("number"==typeof e?e:0);if(b=q.createCallback(b,c,3),ke(a))for(;++d<e;)f[d]=b(a[d],d,a);else ue(a,function(a,c,e){f[++d]=b(a,c,e)});return f}function hc(a,b,c){var e=-1/0,f=e;if("function"!=typeof b&&c&&c[b]===a&&(b=null),null==b&&ke(a))for(var g=-1,h=a.length;++g<h;){var i=a[g];i>f&&(f=i)}else b=null==b&&Qb(a)?d:q.createCallback(b,c,3),ue(a,function(a,c,d){var g=b(a,c,d);g>e&&(e=g,f=a)});return f}function ic(a,b,c){var e=1/0,f=e;if("function"!=typeof b&&c&&c[b]===a&&(b=null),null==b&&ke(a))for(var g=-1,h=a.length;++g<h;){var i=a[g];f>i&&(f=i)}else b=null==b&&Qb(a)?d:q.createCallback(b,c,3),ue(a,function(a,c,d){var g=b(a,c,d);e>g&&(e=g,f=a)});return f}function jc(a,b,c,d){var e=arguments.length<3;if(b=q.createCallback(b,d,4),ke(a)){var f=-1,g=a.length;for(e&&(c=a[++f]);++f<g;)c=b(c,a[f],f,a)}else ue(a,function(a,d,f){c=e?(e=!1,a):b(c,a,d,f)});return c}function kc(a,b,c,d){var e=arguments.length<3;return b=q.createCallback(b,d,4),ec(a,function(a,d,f){c=e?(e=!1,a):b(c,a,d,f)}),c}function lc(a,b,c){return b=q.createCallback(b,c,3),ac(a,function(a,c,d){return!b(a,c,d)})}function mc(a,b,c){if(a&&"number"!=typeof a.length?a=Yb(a):he.unindexedChars&&Qb(a)&&(a=a.split("")),null==b||c)return a?a[jb(0,a.length-1)]:p;var d=nc(a);return d.length=ce(be(0,b),d.length),d}function nc(a){var b=-1,c=a?a.length:0,d=ud("number"==typeof c?c:0);return dc(a,function(a){var c=jb(0,++b);d[b]=d[c],d[c]=a}),d}function oc(a){var b=a?a.length:0;return"number"==typeof b?b:me(a).length}function pc(a,b,c){var d;if(b=q.createCallback(b,c,3),ke(a))for(var e=-1,f=a.length;++e<f&&!(d=b(a[e],e,a)););else ue(a,function(a,c,e){return!(d=b(a,c,e))});return!!d}function qc(a,b,c){var d=-1,f=ke(b),g=a?a.length:0,j=ud("number"==typeof g?g:0);for(f||(b=q.createCallback(b,c,3)),dc(a,function(a,c,e){var g=j[++d]=i();f?g.criteria=gc(b,function(b){return a[b]}):(g.criteria=h())[0]=b(a,c,e),g.index=d,g.value=a}),g=j.length,j.sort(e);g--;){var k=j[g];j[g]=k.value,f||l(k.criteria),m(k)}return j}function rc(a){return a&&"number"==typeof a.length?he.unindexedChars&&Qb(a)?a.split(""):n(a):Yb(a)}function sc(a){for(var b=-1,c=a?a.length:0,d=[];++b<c;){var e=a[b];e&&d.push(e)}return d}function tc(a){return eb(a,gb(arguments,!0,!0,1))}function uc(a,b,c){var d=-1,e=a?a.length:0;for(b=q.createCallback(b,c,3);++d<e;)if(b(a[d],d,a))return d;return-1}function vc(a,b,c){var d=a?a.length:0;for(b=q.createCallback(b,c,3);d--;)if(b(a[d],d,a))return d;return-1}function wc(a,b,c){var d=0,e=a?a.length:0;if("number"!=typeof b&&null!=b){var f=-1;for(b=q.createCallback(b,c,3);++f<e&&b(a[f],f,a);)d++}else if(d=b,null==d||c)return a?a[0]:p;return n(a,0,ce(be(0,d),e))}function xc(a,b,c,d){return"boolean"!=typeof b&&null!=b&&(d=c,c="function"!=typeof b&&d&&d[b]===a?null:b,b=!1),null!=c&&(a=gc(a,c,d)),gb(a,b)}function yc(b,c,d){if("number"==typeof d){var e=b?b.length:0;d=0>d?be(0,e+d):d||0}else if(d){var f=Hc(b,c);return b[f]===c?f:-1}return a(b,c,d)}function zc(a,b,c){var d=0,e=a?a.length:0;if("number"!=typeof b&&null!=b){var f=e;for(b=q.createCallback(b,c,3);f--&&b(a[f],f,a);)d++}else d=null==b||c?1:b||d;return n(a,0,ce(be(0,e-d),e))}function Ac(){for(var c=[],d=-1,e=arguments.length,g=h(),i=pb(),j=i===a,k=h();++d<e;){var n=arguments[d];(ke(n)||tb(n))&&(c.push(n),g.push(j&&n.length>=v&&f(d?c[d]:k)))}var o=c[0],p=-1,q=o?o.length:0,r=[];a:for(;++p<q;){var s=g[0];if(n=o[p],(s?b(s,n):i(k,n))<0){for(d=e,(s||k).push(n);--d;)if(s=g[d],(s?b(s,n):i(c[d],n))<0)continue a;r.push(n)}}for(;e--;)s=g[e],s&&m(s);return l(g),l(k),r}function Bc(a,b,c){var d=0,e=a?a.length:0;if("number"!=typeof b&&null!=b){var f=e;for(b=q.createCallback(b,c,3);f--&&b(a[f],f,a);)d++}else if(d=b,null==d||c)return a?a[e-1]:p;return n(a,be(0,e-d))}function Cc(a,b,c){var d=a?a.length:0;for("number"==typeof c&&(d=(0>c?be(0,d+c):ce(c,d-1))+1);d--;)if(a[d]===b)return d;return-1}function Dc(a){for(var b=arguments,c=0,d=b.length,e=a?a.length:0;++c<d;)for(var f=-1,g=b[c];++f<e;)a[f]===g&&(Vd.call(a,f--,1),e--);return a}function Ec(a,b,c){a=+a||0,c="number"==typeof c?c:+c||1,null==b&&(b=a,a=0);for(var d=-1,e=be(0,Md((b-a)/(c||1))),f=ud(e);++d<e;)f[d]=a,a+=c;return f}function Fc(a,b,c){var d=-1,e=a?a.length:0,f=[];for(b=q.createCallback(b,c,3);++d<e;){var g=a[d];b(g,d,a)&&(f.push(g),Vd.call(a,d--,1),e--)}return f}function Gc(a,b,c){if("number"!=typeof b&&null!=b){var d=0,e=-1,f=a?a.length:0;for(b=q.createCallback(b,c,3);++e<f&&b(a[e],e,a);)d++}else d=null==b||c?1:be(0,b);return n(a,d)}function Hc(a,b,c,d){var e=0,f=a?a.length:e;for(c=c?q.createCallback(c,d,1):ed,b=c(b);f>e;){var g=e+f>>>1;c(a[g])<b?e=g+1:f=g}return e}function Ic(){return kb(gb(arguments,!0,!0))}function Jc(a,b,c,d){return"boolean"!=typeof b&&null!=b&&(d=c,c="function"!=typeof b&&d&&d[b]===a?null:b,b=!1),null!=c&&(c=q.createCallback(c,d,3)),kb(a,b,c)}function Kc(a){return eb(a,n(arguments,1))}function Lc(){for(var a=-1,b=arguments.length;++a<b;){var c=arguments[a];if(ke(c)||tb(c))var d=d?kb(eb(d,c).concat(eb(c,d))):c}return d||[]}function Mc(){for(var a=arguments.length>1?arguments:arguments[0],b=-1,c=a?hc(De(a,"length")):0,d=ud(0>c?0:c);++b<c;)d[b]=De(a,b);return d}function Nc(a,b){var c=-1,d=a?a.length:0,e={};for(b||!d||ke(a[0])||(b=[]);++c<d;){var f=a[c];b?e[f]=b[c]:f&&(e[f[0]]=f[1])}return e}function Oc(a,b){if(!Kb(b))throw new Ed;return function(){return--a<1?b.apply(this,arguments):void 0}}function Pc(a,b){return arguments.length>2?mb(a,17,n(arguments,2),null,b):mb(a,1,null,null,b)}function Qc(a){for(var b=arguments.length>1?gb(arguments,!0,!1,1):Bb(a),c=-1,d=b.length;++c<d;){var e=b[c];a[e]=mb(a[e],1,null,null,a)}return a}function Rc(a,b){return arguments.length>2?mb(b,19,n(arguments,2),null,a):mb(b,3,null,null,a)}function Sc(){for(var a=arguments,b=a.length;b--;)if(!Kb(a[b]))throw new Ed;return function(){for(var b=arguments,c=a.length;c--;)b=[a[c].apply(this,b)];return b[0]}}function Tc(a,b){return b="number"==typeof b?b:+b||a.length,mb(a,4,null,null,null,b)}function Uc(a,b,c){var d,e,f,g,h,i,j,k=0,l=!1,m=!0;if(!Kb(a))throw new Ed;if(b=be(0,b)||0,c===!0){var n=!0;m=!1}else Lb(c)&&(n=c.leading,l="maxWait"in c&&(be(b,c.maxWait)||0),m="trailing"in c?c.trailing:m);var o=function(){var c=b-(Fe()-g);if(0>=c){e&&Nd(e);var l=j;e=i=j=p,l&&(k=Fe(),f=a.apply(h,d),i||e||(d=h=null))}else i=Ud(o,c)},q=function(){i&&Nd(i),e=i=j=p,(m||l!==b)&&(k=Fe(),f=a.apply(h,d),i||e||(d=h=null))};return function(){if(d=arguments,g=Fe(),h=this,j=m&&(i||!n),l===!1)var c=n&&!i;else{e||n||(k=g);var p=l-(g-k),r=0>=p;r?(e&&(e=Nd(e)),k=g,f=a.apply(h,d)):e||(e=Ud(q,p))}return r&&i?i=Nd(i):i||b===l||(i=Ud(o,b)),c&&(r=!0,f=a.apply(h,d)),!r||i||e||(d=h=null),f}}function Vc(a){if(!Kb(a))throw new Ed;var b=n(arguments,1);return Ud(function(){a.apply(p,b)},1)}function Wc(a,b){if(!Kb(a))throw new Ed;var c=n(arguments,2);return Ud(function(){a.apply(p,c)},b)}function Xc(a,b){if(!Kb(a))throw new Ed;var c=function(){var d=c.cache,e=b?b.apply(this,arguments):u+arguments[0];return Rd.call(d,e)?d[e]:d[e]=a.apply(this,arguments)};return c.cache={},c}function Yc(a){var b,c;if(!Kb(a))throw new Ed;return function(){return b?c:(b=!0,c=a.apply(this,arguments),a=null,c)}}function Zc(a){return mb(a,16,n(arguments,1))}function $c(a){return mb(a,32,null,n(arguments,1))}function _c(a,b,c){var d=!0,e=!0;if(!Kb(a))throw new Ed;return c===!1?d=!1:Lb(c)&&(d="leading"in c?c.leading:d,e="trailing"in c?c.trailing:e),X.leading=d,X.maxWait=b,X.trailing=e,Uc(a,b,X)}function ad(a,b){return mb(b,16,[a])}function bd(a){return function(){return a}}function cd(a,b,c){var d=typeof a;if(null==a||"function"==d)return cb(a,b,c);if("object"!=d)return id(a);var e=me(a),f=e[0],g=a[f];return 1!=e.length||g!==g||Lb(g)?function(b){for(var c=e.length,d=!1;c--&&(d=hb(b[e[c]],a[e[c]],null,!0)););return d}:function(a){var b=a[f];return g===b&&(0!==g||1/g==1/b)}}function dd(a){return null==a?"":Dd(a).replace(te,ob)}function ed(a){return a}function fd(a,b,c){var d=!0,e=b&&Bb(b);b&&(c||e.length)||(null==c&&(c=b),f=r,b=a,a=q,e=Bb(b)),c===!1?d=!1:Lb(c)&&"chain"in c&&(d=c.chain);var f=a,g=Kb(f);dc(e,function(c){var e=a[c]=b[c];g&&(f.prototype[c]=function(){var b=this.__chain__,c=this.__wrapped__,g=[c];Sd.apply(g,arguments);var h=e.apply(a,g);if(d||b){if(c===h&&Lb(h))return this;h=new f(h),h.__chain__=b}return h})})}function gd(){return c._=Jd,this}function hd(){}function id(a){return function(b){return b[a]}}function jd(a,b,c){var d=null==a,e=null==b;if(null==c&&("boolean"==typeof a&&e?(c=a,a=1):e||"boolean"!=typeof b||(c=b,e=!0)),d&&e&&(b=1),a=+a||0,e?(b=a,a=0):b=+b||0,c||a%1||b%1){var f=ee();return ce(a+f*(b-a+parseFloat("1e-"+((f+"").length-1))),b)}return jb(a,b)}function kd(a,b){if(a){var c=a[b];return Kb(c)?a[b]():c}}function ld(a,b,c){var d=q.templateSettings;a=Dd(a||""),c=we({},c,d);var e,f=we({},c.imports,d.imports),h=me(f),i=Yb(f),j=0,k=c.interpolate||G,l="__p += '",m=Cd((c.escape||G).source+"|"+k.source+"|"+(k===E?B:G).source+"|"+(c.evaluate||G).source+"|$","g");a.replace(m,function(b,c,d,f,h,i){return d||(d=f),l+=a.slice(j,i).replace(I,g),c&&(l+="' +\n__e("+c+") +\n'"),h&&(e=!0,l+="';\n"+h+";\n__p += '"),d&&(l+="' +\n((__t = ("+d+")) == null ? '' : __t) +\n'"),j=i+b.length,b}),l+="';\n";var n=c.variable,o=n;o||(n="obj",l="with ("+n+") {\n"+l+"\n}\n"),l=(e?l.replace(y,""):l).replace(z,"$1").replace(A,"$1;"),l="function("+n+") {\n"+(o?"":n+" || ("+n+" = {});\n")+"var __t, __p = '', __e = _.escape"+(e?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+l+"return __p\n}";var r="\n/*\n//# sourceURL="+(c.sourceURL||"/lodash/template/source["+L++ +"]")+"\n*/";try{var s=yd(h,"return "+l+r).apply(p,i)}catch(t){throw t.source=l,t}return b?s(b):(s.source=l,s)}function md(a,b,c){a=(a=+a)>-1?a:0;var d=-1,e=ud(a);for(b=cb(b,c,1);++d<a;)e[d]=b(d);return e}function nd(a){return null==a?"":Dd(a).replace(se,sb)}function od(a){var b=++s;return Dd(null==a?"":a)+b}function pd(a){return a=new r(a),a.__chain__=!0,a}function qd(a,b){return b(a),a}function rd(){return this.__chain__=!0,this}function sd(){return Dd(this.__wrapped__)}function td(){return this.__wrapped__}c=c?fb.defaults(ab.Object(),c,fb.pick(ab,J)):ab;var ud=c.Array,vd=c.Boolean,wd=c.Date,xd=c.Error,yd=c.Function,zd=c.Math,Ad=c.Number,Bd=c.Object,Cd=c.RegExp,Dd=c.String,Ed=c.TypeError,Fd=[],Gd=xd.prototype,Hd=Bd.prototype,Id=Dd.prototype,Jd=c._,Kd=Hd.toString,Ld=Cd("^"+Dd(Kd).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString| for [^\]]+/g,".*?")+"$"),Md=zd.ceil,Nd=c.clearTimeout,Od=zd.floor,Pd=yd.prototype.toString,Qd=qb(Qd=Bd.getPrototypeOf)&&Qd,Rd=Hd.hasOwnProperty,Sd=Fd.push,Td=Hd.propertyIsEnumerable,Ud=c.setTimeout,Vd=Fd.splice,Wd=Fd.unshift,Xd=function(){try{var a={},b=qb(b=Bd.defineProperty)&&b,c=b(a,a,a)&&b}catch(d){}return c}(),Yd=qb(Yd=Bd.create)&&Yd,Zd=qb(Zd=ud.isArray)&&Zd,$d=c.isFinite,_d=c.isNaN,ae=qb(ae=Bd.keys)&&ae,be=zd.max,ce=zd.min,de=c.parseInt,ee=zd.random,fe={};fe[N]=ud,fe[O]=vd,fe[P]=wd,fe[R]=yd,fe[T]=Bd,fe[S]=Ad,fe[U]=Cd,fe[V]=Dd;var ge={};ge[N]=ge[P]=ge[S]={constructor:!0,toLocaleString:!0,toString:!0,valueOf:!0},ge[O]=ge[V]={constructor:!0,toString:!0,valueOf:!0},ge[Q]=ge[R]=ge[U]={constructor:!0,toString:!0},ge[T]={constructor:!0},function(){for(var a=K.length;a--;){var b=K[a];for(var c in ge)Rd.call(ge,c)&&!Rd.call(ge[c],b)&&(ge[c][b]=!1)}}(),r.prototype=q.prototype;var he=q.support={};!function(){var a=function(){this.x=1},b={0:1,length:1},d=[];a.prototype={valueOf:1,y:1};for(var e in new a)d.push(e);for(e in arguments);he.argsClass=Kd.call(arguments)==M,he.argsObject=arguments.constructor==Bd&&!(arguments instanceof ud),he.enumErrorProps=Td.call(Gd,"message")||Td.call(Gd,"name"),he.enumPrototypes=Td.call(a,"prototype"),he.funcDecomp=!qb(c.WinRTError)&&H.test(o),he.funcNames="string"==typeof yd.name,he.nonEnumArgs=0!=e,he.nonEnumShadows=!/valueOf/.test(d),he.ownLast="x"!=d[0],he.spliceObjects=(Fd.splice.call(b,0,1),!b[0]),he.unindexedChars="x"[0]+Bd("x")[0]!="xx";try{he.nodeClass=!(Kd.call(document)==T&&!({toString:0}+""))}catch(f){he.nodeClass=!0}}(1),q.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:E,variable:"",imports:{_:q}};var ie=function(a){var b="var index, iterable = "+a.firstArg+", result = "+a.init+";\nif (!iterable) return result;\n"+a.top+";";a.array?(b+="\nvar length = iterable.length; index = -1;\nif ("+a.array+") {  ",he.unindexedChars&&(b+="\n  if (isString(iterable)) {\n    iterable = iterable.split('')\n  }  "),b+="\n  while (++index < length) {\n    "+a.loop+";\n  }\n}\nelse {  "):he.nonEnumArgs&&(b+="\n  var length = iterable.length; index = -1;\n  if (length && isArguments(iterable)) {\n    while (++index < length) {\n      index += '';\n      "+a.loop+";\n    }\n  } else {  "),he.enumPrototypes&&(b+="\n  var skipProto = typeof iterable == 'function';\n  "),he.enumErrorProps&&(b+="\n  var skipErrorProps = iterable === errorProto || iterable instanceof Error;\n  ");var c=[];if(he.enumPrototypes&&c.push('!(skipProto && index == "prototype")'),he.enumErrorProps&&c.push('!(skipErrorProps && (index == "message" || index == "name"))'),a.useHas&&a.keys)b+="\n  var ownIndex = -1,\n      ownProps = objectTypes[typeof iterable] && keys(iterable),\n      length = ownProps ? ownProps.length : 0;\n\n  while (++ownIndex < length) {\n    index = ownProps[ownIndex];\n",c.length&&(b+="    if ("+c.join(" && ")+") {\n  "),b+=a.loop+";    ",c.length&&(b+="\n    }"),b+="\n  }  ";else if(b+="\n  for (index in iterable) {\n",a.useHas&&c.push("hasOwnProperty.call(iterable, index)"),c.length&&(b+="    if ("+c.join(" && ")+") {\n  "),b+=a.loop+";    ",c.length&&(b+="\n    }"),b+="\n  }    ",he.nonEnumShadows){for(b+="\n\n  if (iterable !== objectProto) {\n    var ctor = iterable.constructor,\n        isProto = iterable === (ctor && ctor.prototype),\n        className = iterable === stringProto ? stringClass : iterable === errorProto ? errorClass : toString.call(iterable),\n        nonEnum = nonEnumProps[className];\n      ",k=0;7>k;k++)b+="\n    index = '"+a.shadowedProps[k]+"';\n    if ((!(isProto && nonEnum[index]) && hasOwnProperty.call(iterable, index))",a.useHas||(b+=" || (!nonEnum[index] && iterable[index] !== objectProto[index])"),b+=") {\n      "+a.loop+";\n    }      ";b+="\n  }    "}return(a.array||he.nonEnumArgs)&&(b+="\n}"),b+=a.bottom+";\nreturn result"};Yd||(bb=function(){function a(){}return function(b){if(Lb(b)){a.prototype=b;var d=new a;a.prototype=null}return d||c.Object()}}());var je=Xd?function(a,b){Y.value=b,Xd(a,"__bindData__",Y)}:hd;he.argsClass||(tb=function(a){return a&&"object"==typeof a&&"number"==typeof a.length&&Rd.call(a,"callee")&&!Td.call(a,"callee")||!1});var ke=Zd||function(a){return a&&"object"==typeof a&&"number"==typeof a.length&&Kd.call(a)==N||!1},le=nb({args:"object",init:"[]",top:"if (!(objectTypes[typeof object])) return result",loop:"result.push(index)"}),me=ae?function(a){return Lb(a)?he.enumPrototypes&&"function"==typeof a||he.nonEnumArgs&&a.length&&tb(a)?le(a):ae(a):[]}:le,ne={args:"collection, callback, thisArg",top:"callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3)",array:"typeof length == 'number'",keys:me,loop:"if (callback(iterable[index], index, collection) === false) return result"},oe={args:"object, source, guard",top:"var args = arguments,\n    argsIndex = 0,\n    argsLength = typeof guard == 'number' ? 2 : args.length;\nwhile (++argsIndex < argsLength) {\n  iterable = args[argsIndex];\n  if (iterable && objectTypes[typeof iterable]) {",keys:me,loop:"if (typeof result[index] == 'undefined') result[index] = iterable[index]",bottom:"  }\n}"},pe={top:"if (!objectTypes[typeof iterable]) return result;\n"+ne.top,array:!1},qe={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},re=Db(qe),se=Cd("("+me(re).join("|")+")","g"),te=Cd("["+me(qe).join("")+"]","g"),ue=nb(ne),ve=nb(oe,{top:oe.top.replace(";",";\nif (argsLength > 3 && typeof args[argsLength - 2] == 'function') {\n  var callback = baseCreateCallback(args[--argsLength - 1], args[argsLength--], 2);\n} else if (argsLength > 2 && typeof args[argsLength - 1] == 'function') {\n  callback = args[--argsLength];\n}"),loop:"result[index] = callback ? callback(result[index], iterable[index]) : iterable[index]"}),we=nb(oe),xe=nb(ne,pe,{useHas:!1}),ye=nb(ne,pe);Kb(/x/)&&(Kb=function(a){return"function"==typeof a&&Kd.call(a)==R});var ze=Qd?function(a){if(!a||Kd.call(a)!=T||!he.argsClass&&tb(a))return!1;var b=a.valueOf,c=qb(b)&&(c=Qd(b))&&Qd(c);return c?a==c||Qd(a)==c:rb(a)}:rb,Ae=lb(function(a,b,c){Rd.call(a,c)?a[c]++:a[c]=1}),Be=lb(function(a,b,c){(Rd.call(a,c)?a[c]:a[c]=[]).push(b)
}),Ce=lb(function(a,b,c){a[c]=b}),De=gc,Ee=ac,Fe=qb(Fe=wd.now)&&Fe||function(){return(new wd).getTime()},Ge=8==de(x+"08")?de:function(a,b){return de(Qb(a)?a.replace(F,""):a,b||0)};return q.after=Oc,q.assign=ve,q.at=Zb,q.bind=Pc,q.bindAll=Qc,q.bindKey=Rc,q.chain=pd,q.compact=sc,q.compose=Sc,q.constant=bd,q.countBy=Ae,q.create=wb,q.createCallback=cd,q.curry=Tc,q.debounce=Uc,q.defaults=we,q.defer=Vc,q.delay=Wc,q.difference=tc,q.filter=ac,q.flatten=xc,q.forEach=dc,q.forEachRight=ec,q.forIn=xe,q.forInRight=zb,q.forOwn=ye,q.forOwnRight=Ab,q.functions=Bb,q.groupBy=Be,q.indexBy=Ce,q.initial=zc,q.intersection=Ac,q.invert=Db,q.invoke=fc,q.keys=me,q.map=gc,q.mapValues=Sb,q.max=hc,q.memoize=Xc,q.merge=Tb,q.min=ic,q.omit=Ub,q.once=Yc,q.pairs=Vb,q.partial=Zc,q.partialRight=$c,q.pick=Wb,q.pluck=De,q.property=id,q.pull=Dc,q.range=Ec,q.reject=lc,q.remove=Fc,q.rest=Gc,q.shuffle=nc,q.sortBy=qc,q.tap=qd,q.throttle=_c,q.times=md,q.toArray=rc,q.transform=Xb,q.union=Ic,q.uniq=Jc,q.values=Yb,q.where=Ee,q.without=Kc,q.wrap=ad,q.xor=Lc,q.zip=Mc,q.zipObject=Nc,q.collect=gc,q.drop=Gc,q.each=dc,q.eachRight=ec,q.extend=ve,q.methods=Bb,q.object=Nc,q.select=ac,q.tail=Gc,q.unique=Jc,q.unzip=Mc,fd(q),q.clone=ub,q.cloneDeep=vb,q.contains=$b,q.escape=dd,q.every=_b,q.find=bc,q.findIndex=uc,q.findKey=xb,q.findLast=cc,q.findLastIndex=vc,q.findLastKey=yb,q.has=Cb,q.identity=ed,q.indexOf=yc,q.isArguments=tb,q.isArray=ke,q.isBoolean=Eb,q.isDate=Fb,q.isElement=Gb,q.isEmpty=Hb,q.isEqual=Ib,q.isFinite=Jb,q.isFunction=Kb,q.isNaN=Mb,q.isNull=Nb,q.isNumber=Ob,q.isObject=Lb,q.isPlainObject=ze,q.isRegExp=Pb,q.isString=Qb,q.isUndefined=Rb,q.lastIndexOf=Cc,q.mixin=fd,q.noConflict=gd,q.noop=hd,q.now=Fe,q.parseInt=Ge,q.random=jd,q.reduce=jc,q.reduceRight=kc,q.result=kd,q.runInContext=o,q.size=oc,q.some=pc,q.sortedIndex=Hc,q.template=ld,q.unescape=nd,q.uniqueId=od,q.all=_b,q.any=pc,q.detect=bc,q.findWhere=bc,q.foldl=jc,q.foldr=kc,q.include=$b,q.inject=jc,fd(function(){var a={};return ye(q,function(b,c){q.prototype[c]||(a[c]=b)}),a}(),!1),q.first=wc,q.last=Bc,q.sample=mc,q.take=wc,q.head=wc,ye(q,function(a,b){var c="sample"!==b;q.prototype[b]||(q.prototype[b]=function(b,d){var e=this.__chain__,f=a(this.__wrapped__,b,d);return e||null!=b&&(!d||c&&"function"==typeof b)?new r(f,e):f})}),q.VERSION="2.4.1",q.prototype.chain=rd,q.prototype.toString=sd,q.prototype.value=td,q.prototype.valueOf=td,ue(["join","pop","shift"],function(a){var b=Fd[a];q.prototype[a]=function(){var a=this.__chain__,c=b.apply(this.__wrapped__,arguments);return a?new r(c,a):c}}),ue(["push","reverse","sort","unshift"],function(a){var b=Fd[a];q.prototype[a]=function(){return b.apply(this.__wrapped__,arguments),this}}),ue(["concat","slice","splice"],function(a){var b=Fd[a];q.prototype[a]=function(){return new r(b.apply(this.__wrapped__,arguments),this.__chain__)}}),he.spliceObjects||ue(["pop","shift","splice"],function(a){var b=Fd[a],c="splice"==a;q.prototype[a]=function(){var a=this.__chain__,d=this.__wrapped__,e=b.apply(d,arguments);return 0===d.length&&delete d[0],a||c?new r(e,a):e}}),q}var p,q=[],r=[],s=0,t={},u=+new Date+"",v=75,w=40,x=" 	\f ﻿\n\r\u2028\u2029 ᠎             　",y=/\b__p \+= '';/g,z=/\b(__p \+=) '' \+/g,A=/(__e\(.*?\)|\b__t\)) \+\n'';/g,B=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,C=/\w*$/,D=/^\s*function[ \n\r\t]+\w/,E=/<%=([\s\S]+?)%>/g,F=RegExp("^["+x+"]*0+(?=.$)"),G=/($^)/,H=/\bthis\b/,I=/['\n\r\t\u2028\u2029\\]/g,J=["Array","Boolean","Date","Error","Function","Math","Number","Object","RegExp","String","_","attachEvent","clearTimeout","isFinite","isNaN","parseInt","setTimeout"],K=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],L=0,M="[object Arguments]",N="[object Array]",O="[object Boolean]",P="[object Date]",Q="[object Error]",R="[object Function]",S="[object Number]",T="[object Object]",U="[object RegExp]",V="[object String]",W={};W[R]=!1,W[M]=W[N]=W[O]=W[P]=W[S]=W[T]=W[U]=W[V]=!0;var X={leading:!1,maxWait:0,trailing:!1},Y={configurable:!1,enumerable:!1,value:null,writable:!1},Z={args:"",array:null,bottom:"",firstArg:"",init:"",keys:null,loop:"",shadowedProps:null,support:null,top:"",useHas:!1},$={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},_={"\\":"\\","'":"'","\n":"n","\r":"r","	":"t","\u2028":"u2028","\u2029":"u2029"},ab=$[typeof window]&&window||this,bb=$[typeof exports]&&exports&&!exports.nodeType&&exports,cb=$[typeof module]&&module&&!module.nodeType&&module,db=cb&&cb.exports===bb&&bb,eb=$[typeof global]&&global;!eb||eb.global!==eb&&eb.window!==eb||(ab=eb);var fb=o();"function"==typeof define&&"object"==typeof define.amd&&define.amd?(ab._=fb,define(function(){return fb})):bb&&cb?db?(cb.exports=fb)._=fb:bb._=fb:ab._=fb}.call(this);<html>
<head>
    <link rel="stylesheet" href="graphalchemy/alchemy.css">
</head>
<body>
  <div class="alchemy" id="alchemy"></div>

  <script type="text/javascript" src="graphalchemy/scripts/vendor.js"></script>
  <script type="text/javascript" src="graphalchemy/alchemy.js"></script>
  <script type="text/javascript">
        var config = {
            dataSource: 'fidep.json',
            directedEdges:true,
            edgeTypes: {"caption": ["new",
                                    "functioncall",
                                    "implements",
                                    "extends",
                                    "staticmethodcall",
                                    "staticconstant",
                                    "staticproperty",
                                    "include",
                                    "use",]},
            nodeTypes: {"type":["class", "interface", "trait"]},
            nodeCaption: "caption", 
            nodeCaptionsOnByDefault: true,
            nodeStyle: {
                "all": {
                    "borderColor": "#127DC1",
                    /*
                    "borderWidth": function(d, radius) {
                        return 10 + radius * d.getProperties().incoming / (d.getProperties().incoming + d.getProperties().outgoing)
                    },
                    "radius": function(d) {
                        return 10 + d.getProperties().incoming + d.getProperties().outgoing;
                    }, 
                    */
                },
                "class": {"color": "green" },
                "interface": {"color": "red" },
                "trait": {"color": "blue" },
            },
            edgeStyle: {
                "all": { "width":10,
                        "opacity": 0.8 },
                "new": {"color": "green" },
                "clone": {"color": "green" },

                "typehint": {"color": "red" },

                "extends": {"color": "yellow" },
                "implements": {"color": "yellow" },
                "use": {"color": "yellow" },

                "staticmethodcall": {"color": "blue" },
                "staticconstant": {"color": "blue" },
                "staticproperty": {"color": "blue" },
                },
            };

        alchemy = new Alchemy(config)
    </script>
  </body>
</html>
           Bud1                                                                       h a l c h e                                           g r a p h a l c h e m ydsclbool                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             @                                              @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   E                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          DSDB                                 `                                                     @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          <!DOCTYPE html>
<html lang="en" ng-app="myApp">
<head>
	<meta charset="UTF-8">
	<title>Exakat Faceted search for PROJECT_NAME</title>
	
	<link href="faceted.css" rel="stylesheet" />
    <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet" />
    
</head>
<body ng-cloak>
    <h1><a href="http://www.exakat.io/"><img src="http://www.exakat.io/exakat.png" width="100">Exakat faceted report for PROJECT_NAME</a></h1>

	<div ng-controller="MainCtrl">

		<section class="top">
			<div ng-repeat="group in facetGroups" class="filter">
			    <div class="float">
				    <h4>{{group.name}} ({{ group.facets.length}})</h4>
                    <select name="multipleSelect" id="multipleSelect" ng-model="useFacets[group.name]" multiple>
                       <option ng-repeat="(name, count) in group.facets | orderBy : option" value="{{name}}">{{name + ' (' + count + ')'}}</option>
                    </select>
                </div>
			</div>	
			<div class="float filter">
        	    <h4>Search</h4>
            	<input name="searchQuery" type="text" class="search-input" ng-model="query"/><a ng-if="query" class="clearQuery" ng-click="clearQuery()">&times;</a>
           </div>
		</section>

		<section class="bottom">
			<div>
				<h2>{{(filteredItems | filter:query).length}} Item{{(filteredItems | filter:query).length !== 1 ? 's' : null}}</h2>

				<p class="wrapper-facets">
					<a ng-if="activeFacets.length" class="clearFacet" ng-click="clearAllFacets()">Clear All</a>
					<a class="clearFacet" ng-repeat="facet in activeFacets" ng-click="clearFacet(facet)">{{facet}}</a>
				</p>

				<table ng-if="(filteredItems | filter:query).length">
					<tr>
						<th>Error</th>
						<th>File</th>
						<th>Code</th>
						<th>Severity</th>
						<th>Impact</th>
					</tr>
					<tr ng-repeat="item in filteredItems | filter:query">
						<td>{{item.error}} <a href="docs.html#{{item.analyzer}}"><i class="material-icons" style="font-size: 14px">help</i></a></td>
						<td>{{item.file}}#{{item.line}}<a href=".{{item.file}}.html#{{item.line}}"><i class="material-icons" style="font-size: 14px">description</i></a></td>
						<td>{{item.code}}</td>
						<td>{{item.severity}}</td>
						<td>{{item.impact}}</td>
					</tr>
				</table><br />
				<p ng-if="!(filteredItems | filter:query).length">Sorry, no results found!</p>
			</div>
		</section>

	</div>

	<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
	<script src="app.js"></script>
</body>
</html>		p
		{
			margin: 0;
			padding: 0;
		}

		a
		{
			text-decoration: none;
			color: black;
		}
		
		.left
		{
			display: inline;
			float: left;
			margin-left: 10px;
			margin-right: 10px;
			width: 20%;
		}
		
		.right
		{
			display: inline;
			float: left;
			margin-left: 10px;
			margin-right: 10px;
			width: 60%;
		}
		
		.top
		{
			border-bottom: thin solid rgb(218, 218, 218);
			padding-bottom: 10px;
			height: 100px;
		}

		.bottom
		{
		    display: block;
		}
		
		.left { margin: 5px; }
		label { cursor: pointer; }
		
		.filter
		{
			margin: 10px;
			display: inline;
		}
		
		.filter h4
		{
			margin-bottom: 5px;
			text-transform: capitalize;
		}
		
		.clearFacet
		{
			cursor: pointer;
			padding-right: 10px;
		}
		
		.clearFacet:before
		{
			color: #999;
			content: '× ';
		}
		
		.search-input
		{
			font-size: 16px;
			padding-right: 20px;
		}
		
		.clearQuery
		{
			color: #999;
			cursor: pointer;
			margin-left: -20px;
		}
		
		[ng\:cloak],
					[ng-cloak],
					[data-ng-cloak],
					[x-ng-cloak],
					.ng-cloak,
					.x-ng-cloak { display: none !important; }
		
		table, th , td
		{
			border: 1px solid grey;
			border-collapse: collapse;
			padding: 5px;
		}
		
		table tr:nth-child(odd) { background-color: #f1f1f1; }
		table tr:nth-child(even) { background-color: #ffffff; }
		
		dt { font-weight: bold; 
		      font-size: 14pt;
		   }

        dd {
            padding-top: 15px;
            padding-bottom: 20px;
        }
        
        .highlightedText {
            background: yellow;
        }
        
        .float {
            display: inline;
            float: left;
			padding-left: 10px;
			padding-right: 10px;
        }<!DOCTYPE html>
<html lang="en" ng-app="myApp">
<head>
	<meta charset="UTF-8">
	<title>Exakat Faceted search for PROJECT_NAME</title>
	
	<link href="faceted.css" rel="stylesheet" />
</head>
<body>

<h1>Documentation for PROJECT_NAME's report</h1>
<p>
This documentation contains only the relevant entry for the 'PROJECT_NAME' <a href="index.html">report</a>. Any omitted entry either didn't yield any result either was not run. The full list of entries is available <a href="http://docs.exakat.io/">in the exakat manual</a>.
</p>

DOCS_LIST

</body>
</html>'use strict';

// This code is originally https://github.com/kmaida/angular-faceted-search
// It has been modified by Exakat ltd.

// Reference source - http://jsfiddle.net/rzgWr/19/

var myApp = angular.module('myApp',[]);

//---------------------------------------- HELPERS FACTORY

myApp.factory('Helpers', function() {
	return {
		uniq: function(data, key) {
			var result = [];

			for (var i = 0; i < data.length; i++) {
				var value = data[i][key];

				if (result.indexOf(value) == -1) {
					result.push(value);
				}
			}
			return result;
		},
		contains: function(data, obj) {
			for (var i = 0; i < data.length; i++) {
				if (data[i] === obj) {
					return true;
				}
			}
			return false;
		}
	};
});

//---------------------------------------- CONTROLLER

myApp.controller('MainCtrl', function($scope, Helpers) {
	$scope.useFacets = {};

    $scope.items = DUMP_JSON;
	$scope.count = function (prop, value) {
		return function (el) {
			return el[prop] == value;
		};
	};
	
	// Sort the available facets alphabetically/numerically.
	// http://stackoverflow.com/a/18261306
	$scope.orderByValue = function(value) {
		return value;
	};
	
	/*---
		FACET MANIPULATION FUNCTIONS
			- clear facets, search
			- FacetResults constructor
	---*/

	// Reset all previously-selected facets.
	$scope.clearAllFacets = function() {
		$scope.activeFacets = [];
		$scope.useFacets = {};
	};

	// Clear search query.
	$scope.clearQuery = function() {
		$scope.query = null;
	};

	// Clear a specific facet.
	$scope.clearFacet = function(facet) {
		// Find the index of the facet so we can remove it from the active facets.
		var i = $scope.activeFacets.indexOf(facet);

		// If it exists, remove the facet from the list of active facets.
		if (i != -1) {
			$scope.activeFacets.splice(i, 1);

			// Find the corresponding facet in the filter models and turn it off.
			for (var k in $scope.useFacets) {
				if ($scope.useFacets[k]) {
					$scope.useFacets[k][facet] = false;
				}
			}
		}
	};

	// Clear any active facets when a search query is entered (or cleared).
	// Add newValue && (!!oldValue === false) to if statement to allow search query to be changed and preserve facets.
	$scope.$watch('query', function (newValue, oldValue) {
		if ((newValue !== oldValue) && $scope.activeFacets.length) {
			$scope.clearAllFacets();
		}
	});
	
	var filterAfters = [];

	// FacetResults "constructor" object.
	// http://davidwalsh.name/javascript-objects-deconstruction
	var FacetResults = {
		init: function(facetIndex, facetName) {
			this.facetIndex = facetIndex;
			this.facetName = facetName;
		},
		filterItems: function(filterAfterArray) {
			// Name the new array created after filter is run.
			var newArrayIndex = this.facetIndex;
			// Add the new array to the filterAfters array
			filterAfters[newArrayIndex] = [];

			var selected = false;

			// Iterate over previously filtered items.
			for (var n in filterAfterArray) {
				var itemObj = filterAfterArray[n],
					useFacet = $scope.useFacets[this.facetName];

				// Iterate over new facet.
				for (var facet in useFacet) {
						selected = true;

						// Push facet to list of active facets if doesn't already exist.
						if (!Helpers.contains($scope.activeFacets, useFacet[facet])) {
							$scope.activeFacets.push(useFacet[facet]);
						}

						// Push item from previous filter to new array if matches new facet and unique.
						// (Using == instead of === enables matching integers to strings)
						if (itemObj[this.facetName] == useFacet[facet] && !Helpers.contains(filterAfters[newArrayIndex], itemObj)) {
							filterAfters[newArrayIndex].push(itemObj);
							break;
						}
				}
			}

			if (!selected) {
				filterAfters[newArrayIndex] = filterAfterArray;
			}
		}
	};
	
	/*---
		SET UP FACETS
			- define facet group names
			- compile all facets that belong in each group
			- create new objects for each set of facet results
	---*/
	
	// Define the facet group names.
	// If fetching from data, this will need to be in resolve/callback.
	var facetGroupNames = ['file','error', 'severity', 'impact'];//, 'recipes'
	var facetGroupNamesLen = facetGroupNames.length;
	$scope.facetGroups = [];

	// Collect all options for each facet group from items dataset.
	// The HTML template will iterate over the facetGroups array to generate filter options.
	// (Alternately, we could pre-define the facets we want to use)
	for (var i = 0; i < facetGroupNamesLen; i++) {
	    var facets = {};
	    for (var p in $scope.items) { //, facetGroupNames[i]
	        var n = $scope.items[p][facetGroupNames[i]];
	        if (facets.hasOwnProperty(n)) {
    	        facets[n]++;
	        } else {
    	        facets[n] = 1;
    	    }
        }
		var facetGroupObj = {
				name: facetGroupNames[i],
				facets: facets,
				count: i
			};

		$scope.facetGroups.push(facetGroupObj);
	}

	// Create new object for each set of facet results (ie., like "new"ing).
	var filterBy = [];

	for (var i = 0; i < facetGroupNamesLen; i++) {
		var thisName = facetGroupNames[i];

		filterBy.push(Object.create(FacetResults));
		filterBy[i].init(i, thisName);
	}
	
	/*---
		WATCH FACET SELECTION
			- "new" each facet results set
			- run filters
			- return final list of items after last filter is run
	---*/

	$scope.activeFacets = [];
	
	$scope.$watch('useFacets', function(newVal, oldVal) {
	    $scope.activeFacets = [];
	    
		// Filter each facet set.
		for (var i = 0; i < facetGroupNamesLen; i++) {
			if (i === 0) {
				filterBy[0].filterItems($scope.items);
			} else {
				filterBy[i].filterItems(filterAfters[i - 1]);
			}
		}

		// Return the final filtered list of items.
		$scope.filteredItems = filterAfters[facetGroupNamesLen - 1];

	}, true);
});<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en-us" prefix="og: http://ogp.me/ns#">
  <!-- Use the Source, Luke -->
  <head>
    <title>DependencyWheel:</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta charset="utf-8">
    <link rel="stylesheet" href="css/bootstrap.min.css">
    <link href='http://fonts.googleapis.com/css?family=Rosario:400,700' rel='stylesheet' type='text/css'>
  <style>

h1, p, li {
  font-family: 'Rosario', sans-serif;
}

h1 {
  font-size: 4em;
  font-weight: 300;
  letter-spacing: -2px;
  line-height: 1em;
  margin: 1em 0;
}

#chart_placeholder {
  text-align: center;
  margin-bottom: 20px;
}

.dependencyWheel {
  font: 10px sans-serif;
}

form .btn-primary {
  margin-top: 25px;
}
</style>
</head>
<body>
  <div class="container">
    <h1>DependencyWheel for <PROJECT></h1>

    <p>This wheel presents all classes, traits and interfaces dependencies : one class may depends on others via extends, implements and use keyword.</p>

    <div id="chart_placeholder"></div>

    <p>This wheel is build buy <a href="">Exakat</a> and the <a href="https://github.com/fzaninotto/DependencyWheel">DependencyWheel</a>, from F. Zaninoto.</p>

  <script src="js/d3.v4.min.js"></script>
  <script src="js/d3.dependencyWheel.js"></script>
  <script src="js/composerBuilder.js"></script>
  <script>
  var gitHubApiUrl = 'https://api.github.com/repos/';
  var getData = function(target, callback) {
    var responses = {
      composerjson: null,
      composerlock: null
    };
    var checkFinished = function() {
      if (responses.composerjson && responses.composerlock) {
        callback(responses.composerjson, responses.composerlock);
      }
    }
    d3.xhr(gitHubApiUrl + target + '/contents/composer.json', 'application/vnd.github.VERSION.raw', function(err, composerjson) {
      responses.composerjson = JSON.parse(composerjson.responseText);
      checkFinished();
    });
    d3.xhr(gitHubApiUrl + target + '/contents/composer.lock', 'application/vnd.github.VERSION.raw', function(err, composerlock) {
      responses.composerlock = JSON.parse(composerlock.responseText);
      checkFinished();
    });
  };

  var chart = d3.chart.dependencyWheel();

var data = {
  packageNames: <PACKAGENAMES>,
  matrix: <MATRIX>
};
      d3.select('#chart_placeholder')
        .datum(data)
        .call(chart);

  document.getElementById('composerRedraw').addEventListener('submit', function(e) {
    e.preventDefault();
    var composerjson = JSON.parse(document.getElementById('composerJson').value);
    var composerlock = JSON.parse(document.getElementById('composerLock').value);
    var data = buildMatrixFromComposerJsonAndLock(composerjson, composerlock);
    d3.select('#chart_placeholder svg').remove();
    d3.select('#chart_placeholder')
      .datum(data)
      .call(chart);
  }, false);

</script>
<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-26354577-2']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

</script>
</body>
</html>
Copyright (c) 2013 Francois Zaninotto

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.
/*!
 * Bootstrap v3.0.0
 *
 * Copyright 2013 Twitter, Inc
 * Licensed under the Apache License v2.0
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Designed and built with all the love in the world @twitter by @mdo and @fat.
 */


article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block;}
audio,canvas,video{display:inline-block;}
audio:not([controls]){display:none;height:0;}
[hidden]{display:none;}
html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;}
body{margin:0;}
a:focus{outline:thin dotted;}
a:active,a:hover{outline:0;}
h1{font-size:2em;margin:0.67em 0;}
abbr[title]{border-bottom:1px dotted;}
b,strong{font-weight:bold;}
dfn{font-style:italic;}
hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0;}
mark{background:#ff0;color:#000;}
code,kbd,pre,samp{font-family:monospace, serif;font-size:1em;}
pre{white-space:pre-wrap;}
q{quotes:"\201C" "\201D" "\2018" "\2019";}
small{font-size:80%;}
sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}
sup{top:-0.5em;}
sub{bottom:-0.25em;}
img{border:0;}
svg:not(:root){overflow:hidden;}
figure{margin:0;}
fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em;}
legend{border:0;padding:0;}
button,input,select,textarea{font-family:inherit;font-size:100%;margin:0;}
button,input{line-height:normal;}
button,select{text-transform:none;}
button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;}
button[disabled],html input[disabled]{cursor:default;}
input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0;}
input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;}
input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none;}
button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;}
textarea{overflow:auto;vertical-align:top;}
table{border-collapse:collapse;border-spacing:0;}
*,*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);}
body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.428571429;color:#333333;background-color:#ffffff;}
input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit;}
button,input,select[multiple],textarea{background-image:none;}
a{color:#428bca;text-decoration:none;}a:hover,a:focus{color:#2a6496;text-decoration:underline;}
a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
img{vertical-align:middle;}
.img-responsive{display:block;max-width:100%;height:auto;}
.img-rounded{border-radius:6px;}
.img-thumbnail{padding:4px;line-height:1.428571429;background-color:#ffffff;border:1px solid #dddddd;border-radius:4px;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;display:inline-block;max-width:100%;height:auto;}
.img-circle{border-radius:50%;}
hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eeeeee;}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0;}
@media print{*{text-shadow:none !important;color:#000 !important;background:transparent !important;box-shadow:none !important;} a,a:visited{text-decoration:underline;} a[href]:after{content:" (" attr(href) ")";} abbr[title]:after{content:" (" attr(title) ")";} .ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:"";} pre,blockquote{border:1px solid #999;page-break-inside:avoid;} thead{display:table-header-group;} tr,img{page-break-inside:avoid;} img{max-width:100% !important;} @page {margin:2cm .5cm;}p,h2,h3{orphans:3;widows:3;} h2,h3{page-break-after:avoid;} .navbar{display:none;} .table td,.table th{background-color:#fff !important;} .btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important;} .label{border:1px solid #000;} .table{border-collapse:collapse !important;} .table-bordered th,.table-bordered td{border:1px solid #ddd !important;}}p{margin:0 0 10px;}
.lead{margin-bottom:20px;font-size:16.099999999999998px;font-weight:200;line-height:1.4;}@media (min-width:768px){.lead{font-size:21px;}}
small{font-size:85%;}
cite{font-style:normal;}
.text-muted{color:#999999;}
.text-primary{color:#428bca;}
.text-warning{color:#c09853;}
.text-danger{color:#b94a48;}
.text-success{color:#468847;}
.text-info{color:#3a87ad;}
.text-left{text-align:left;}
.text-right{text-align:right;}
.text-center{text-align:center;}
h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500;line-height:1.1;}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small{font-weight:normal;line-height:1;color:#999999;}
h1,h2,h3{margin-top:20px;margin-bottom:10px;}
h4,h5,h6{margin-top:10px;margin-bottom:10px;}
h1,.h1{font-size:36px;}
h2,.h2{font-size:30px;}
h3,.h3{font-size:24px;}
h4,.h4{font-size:18px;}
h5,.h5{font-size:14px;}
h6,.h6{font-size:12px;}
h1 small,.h1 small{font-size:24px;}
h2 small,.h2 small{font-size:18px;}
h3 small,.h3 small,h4 small,.h4 small{font-size:14px;}
.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eeeeee;}
ul,ol{margin-top:0;margin-bottom:10px;}ul ul,ol ul,ul ol,ol ol{margin-bottom:0;}
.list-unstyled{padding-left:0;list-style:none;}
.list-inline{padding-left:0;list-style:none;}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px;}
dl{margin-bottom:20px;}
dt,dd{line-height:1.428571429;}
dt{font-weight:bold;}
dd{margin-left:0;}
@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;} .dl-horizontal dd{margin-left:180px;}.dl-horizontal dd:before,.dl-horizontal dd:after{content:" ";display:table;} .dl-horizontal dd:after{clear:both;} .dl-horizontal dd:before,.dl-horizontal dd:after{content:" ";display:table;} .dl-horizontal dd:after{clear:both;}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999999;}
abbr.initialism{font-size:90%;text-transform:uppercase;}
blockquote{padding:10px 20px;margin:0 0 20px;border-left:5px solid #eeeeee;}blockquote p{font-size:17.5px;font-weight:300;line-height:1.25;}
blockquote p:last-child{margin-bottom:0;}
blockquote small{display:block;line-height:1.428571429;color:#999999;}blockquote small:before{content:'\2014 \00A0';}
blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eeeeee;border-left:0;}blockquote.pull-right p,blockquote.pull-right small{text-align:right;}
blockquote.pull-right small:before{content:'';}
blockquote.pull-right small:after{content:'\00A0 \2014';}
q:before,q:after,blockquote:before,blockquote:after{content:"";}
address{display:block;margin-bottom:20px;font-style:normal;line-height:1.428571429;}
code,pre{font-family:Monaco,Menlo,Consolas,"Courier New",monospace;}
code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:4px;}
pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;word-break:break-all;word-wrap:break-word;color:#333333;background-color:#f5f5f5;border:1px solid #cccccc;border-radius:4px;}pre.prettyprint{margin-bottom:20px;}
pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border:0;}
.pre-scrollable{max-height:340px;overflow-y:scroll;}
.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px;}.container:before,.container:after{content:" ";display:table;}
.container:after{clear:both;}
.container:before,.container:after{content:" ";display:table;}
.container:after{clear:both;}
.row{margin-left:-15px;margin-right:-15px;}.row:before,.row:after{content:" ";display:table;}
.row:after{clear:both;}
.row:before,.row:after{content:" ";display:table;}
.row:after{clear:both;}
.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px;}
.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11{float:left;}
.col-xs-1{width:8.333333333333332%;}
.col-xs-2{width:16.666666666666664%;}
.col-xs-3{width:25%;}
.col-xs-4{width:33.33333333333333%;}
.col-xs-5{width:41.66666666666667%;}
.col-xs-6{width:50%;}
.col-xs-7{width:58.333333333333336%;}
.col-xs-8{width:66.66666666666666%;}
.col-xs-9{width:75%;}
.col-xs-10{width:83.33333333333334%;}
.col-xs-11{width:91.66666666666666%;}
.col-xs-12{width:100%;}
@media (min-width:768px){.container{max-width:750px;} .col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11{float:left;} .col-sm-1{width:8.333333333333332%;} .col-sm-2{width:16.666666666666664%;} .col-sm-3{width:25%;} .col-sm-4{width:33.33333333333333%;} .col-sm-5{width:41.66666666666667%;} .col-sm-6{width:50%;} .col-sm-7{width:58.333333333333336%;} .col-sm-8{width:66.66666666666666%;} .col-sm-9{width:75%;} .col-sm-10{width:83.33333333333334%;} .col-sm-11{width:91.66666666666666%;} .col-sm-12{width:100%;} .col-sm-push-1{left:8.333333333333332%;} .col-sm-push-2{left:16.666666666666664%;} .col-sm-push-3{left:25%;} .col-sm-push-4{left:33.33333333333333%;} .col-sm-push-5{left:41.66666666666667%;} .col-sm-push-6{left:50%;} .col-sm-push-7{left:58.333333333333336%;} .col-sm-push-8{left:66.66666666666666%;} .col-sm-push-9{left:75%;} .col-sm-push-10{left:83.33333333333334%;} .col-sm-push-11{left:91.66666666666666%;} .col-sm-pull-1{right:8.333333333333332%;} .col-sm-pull-2{right:16.666666666666664%;} .col-sm-pull-3{right:25%;} .col-sm-pull-4{right:33.33333333333333%;} .col-sm-pull-5{right:41.66666666666667%;} .col-sm-pull-6{right:50%;} .col-sm-pull-7{right:58.333333333333336%;} .col-sm-pull-8{right:66.66666666666666%;} .col-sm-pull-9{right:75%;} .col-sm-pull-10{right:83.33333333333334%;} .col-sm-pull-11{right:91.66666666666666%;} .col-sm-offset-1{margin-left:8.333333333333332%;} .col-sm-offset-2{margin-left:16.666666666666664%;} .col-sm-offset-3{margin-left:25%;} .col-sm-offset-4{margin-left:33.33333333333333%;} .col-sm-offset-5{margin-left:41.66666666666667%;} .col-sm-offset-6{margin-left:50%;} .col-sm-offset-7{margin-left:58.333333333333336%;} .col-sm-offset-8{margin-left:66.66666666666666%;} .col-sm-offset-9{margin-left:75%;} .col-sm-offset-10{margin-left:83.33333333333334%;} .col-sm-offset-11{margin-left:91.66666666666666%;}}@media (min-width:992px){.container{max-width:970px;} .col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11{float:left;} .col-md-1{width:8.333333333333332%;} .col-md-2{width:16.666666666666664%;} .col-md-3{width:25%;} .col-md-4{width:33.33333333333333%;} .col-md-5{width:41.66666666666667%;} .col-md-6{width:50%;} .col-md-7{width:58.333333333333336%;} .col-md-8{width:66.66666666666666%;} .col-md-9{width:75%;} .col-md-10{width:83.33333333333334%;} .col-md-11{width:91.66666666666666%;} .col-md-12{width:100%;} .col-md-push-0{left:auto;} .col-md-push-1{left:8.333333333333332%;} .col-md-push-2{left:16.666666666666664%;} .col-md-push-3{left:25%;} .col-md-push-4{left:33.33333333333333%;} .col-md-push-5{left:41.66666666666667%;} .col-md-push-6{left:50%;} .col-md-push-7{left:58.333333333333336%;} .col-md-push-8{left:66.66666666666666%;} .col-md-push-9{left:75%;} .col-md-push-10{left:83.33333333333334%;} .col-md-push-11{left:91.66666666666666%;} .col-md-pull-0{right:auto;} .col-md-pull-1{right:8.333333333333332%;} .col-md-pull-2{right:16.666666666666664%;} .col-md-pull-3{right:25%;} .col-md-pull-4{right:33.33333333333333%;} .col-md-pull-5{right:41.66666666666667%;} .col-md-pull-6{right:50%;} .col-md-pull-7{right:58.333333333333336%;} .col-md-pull-8{right:66.66666666666666%;} .col-md-pull-9{right:75%;} .col-md-pull-10{right:83.33333333333334%;} .col-md-pull-11{right:91.66666666666666%;} .col-md-offset-0{margin-left:0;} .col-md-offset-1{margin-left:8.333333333333332%;} .col-md-offset-2{margin-left:16.666666666666664%;} .col-md-offset-3{margin-left:25%;} .col-md-offset-4{margin-left:33.33333333333333%;} .col-md-offset-5{margin-left:41.66666666666667%;} .col-md-offset-6{margin-left:50%;} .col-md-offset-7{margin-left:58.333333333333336%;} .col-md-offset-8{margin-left:66.66666666666666%;} .col-md-offset-9{margin-left:75%;} .col-md-offset-10{margin-left:83.33333333333334%;} .col-md-offset-11{margin-left:91.66666666666666%;}}@media (min-width:1200px){.container{max-width:1170px;} .col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11{float:left;} .col-lg-1{width:8.333333333333332%;} .col-lg-2{width:16.666666666666664%;} .col-lg-3{width:25%;} .col-lg-4{width:33.33333333333333%;} .col-lg-5{width:41.66666666666667%;} .col-lg-6{width:50%;} .col-lg-7{width:58.333333333333336%;} .col-lg-8{width:66.66666666666666%;} .col-lg-9{width:75%;} .col-lg-10{width:83.33333333333334%;} .col-lg-11{width:91.66666666666666%;} .col-lg-12{width:100%;} .col-lg-push-0{left:auto;} .col-lg-push-1{left:8.333333333333332%;} .col-lg-push-2{left:16.666666666666664%;} .col-lg-push-3{left:25%;} .col-lg-push-4{left:33.33333333333333%;} .col-lg-push-5{left:41.66666666666667%;} .col-lg-push-6{left:50%;} .col-lg-push-7{left:58.333333333333336%;} .col-lg-push-8{left:66.66666666666666%;} .col-lg-push-9{left:75%;} .col-lg-push-10{left:83.33333333333334%;} .col-lg-push-11{left:91.66666666666666%;} .col-lg-pull-0{right:auto;} .col-lg-pull-1{right:8.333333333333332%;} .col-lg-pull-2{right:16.666666666666664%;} .col-lg-pull-3{right:25%;} .col-lg-pull-4{right:33.33333333333333%;} .col-lg-pull-5{right:41.66666666666667%;} .col-lg-pull-6{right:50%;} .col-lg-pull-7{right:58.333333333333336%;} .col-lg-pull-8{right:66.66666666666666%;} .col-lg-pull-9{right:75%;} .col-lg-pull-10{right:83.33333333333334%;} .col-lg-pull-11{right:91.66666666666666%;} .col-lg-offset-0{margin-left:0;} .col-lg-offset-1{margin-left:8.333333333333332%;} .col-lg-offset-2{margin-left:16.666666666666664%;} .col-lg-offset-3{margin-left:25%;} .col-lg-offset-4{margin-left:33.33333333333333%;} .col-lg-offset-5{margin-left:41.66666666666667%;} .col-lg-offset-6{margin-left:50%;} .col-lg-offset-7{margin-left:58.333333333333336%;} .col-lg-offset-8{margin-left:66.66666666666666%;} .col-lg-offset-9{margin-left:75%;} .col-lg-offset-10{margin-left:83.33333333333334%;} .col-lg-offset-11{margin-left:91.66666666666666%;}}table{max-width:100%;background-color:transparent;}
th{text-align:left;}
.table{width:100%;margin-bottom:20px;}.table thead>tr>th,.table tbody>tr>th,.table tfoot>tr>th,.table thead>tr>td,.table tbody>tr>td,.table tfoot>tr>td{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #dddddd;}
.table thead>tr>th{vertical-align:bottom;border-bottom:2px solid #dddddd;}
.table caption+thead tr:first-child th,.table colgroup+thead tr:first-child th,.table thead:first-child tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child td{border-top:0;}
.table tbody+tbody{border-top:2px solid #dddddd;}
.table .table{background-color:#ffffff;}
.table-condensed thead>tr>th,.table-condensed tbody>tr>th,.table-condensed tfoot>tr>th,.table-condensed thead>tr>td,.table-condensed tbody>tr>td,.table-condensed tfoot>tr>td{padding:5px;}
.table-bordered{border:1px solid #dddddd;}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #dddddd;}
.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px;}
.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9;}
.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5;}
table col[class*="col-"]{float:none;display:table-column;}
table td[class*="col-"],table th[class*="col-"]{float:none;display:table-cell;}
.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5;}
.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8;border-color:#d6e9c6;}
.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td{background-color:#d0e9c6;border-color:#c9e2b3;}
.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede;border-color:#eed3d7;}
.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td{background-color:#ebcccc;border-color:#e6c1c7;}
.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3;border-color:#fbeed5;}
.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td{background-color:#faf2cc;border-color:#f8e5be;}
@media (max-width:768px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:scroll;border:1px solid #dddddd;}.table-responsive>.table{margin-bottom:0;background-color:#fff;}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap;} .table-responsive>.table-bordered{border:0;}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0;} .table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0;} .table-responsive>.table-bordered>thead>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>thead>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0;}}fieldset{padding:0;margin:0;border:0;}
legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333333;border:0;border-bottom:1px solid #e5e5e5;}
label{display:inline-block;margin-bottom:5px;font-weight:bold;}
input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal;}
input[type="file"]{display:block;}
select[multiple],select[size]{height:auto;}
select optgroup{font-size:inherit;font-style:inherit;font-family:inherit;}
input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
input[type="number"]::-webkit-outer-spin-button,input[type="number"]::-webkit-inner-spin-button{height:auto;}
.form-control:-moz-placeholder{color:#999999;}
.form-control::-moz-placeholder{color:#999999;}
.form-control:-ms-input-placeholder{color:#999999;}
.form-control::-webkit-input-placeholder{color:#999999;}
.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.428571429;color:#555555;vertical-align:middle;background-color:#ffffff;border:1px solid #cccccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-webkit-transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);}
.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eeeeee;}
textarea.form-control{height:auto;}
.form-group{margin-bottom:15px;}
.radio,.checkbox{display:block;min-height:20px;margin-top:10px;margin-bottom:10px;padding-left:20px;vertical-align:middle;}.radio label,.checkbox label{display:inline;margin-bottom:0;font-weight:normal;cursor:pointer;}
.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{float:left;margin-left:-20px;}
.radio+.radio,.checkbox+.checkbox{margin-top:-5px;}
.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer;}
.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px;}
input[type="radio"][disabled],input[type="checkbox"][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed;}
.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px;}select.input-sm{height:30px;line-height:30px;}
textarea.input-sm{height:auto;}
.input-lg{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px;}select.input-lg{height:45px;line-height:45px;}
textarea.input-lg{height:auto;}
.has-warning .help-block,.has-warning .control-label{color:#c09853;}
.has-warning .form-control{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.has-warning .form-control:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;}
.has-warning .input-group-addon{color:#c09853;border-color:#c09853;background-color:#fcf8e3;}
.has-error .help-block,.has-error .control-label{color:#b94a48;}
.has-error .form-control{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.has-error .form-control:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;}
.has-error .input-group-addon{color:#b94a48;border-color:#b94a48;background-color:#f2dede;}
.has-success .help-block,.has-success .control-label{color:#468847;}
.has-success .form-control{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.has-success .form-control:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;}
.has-success .input-group-addon{color:#468847;border-color:#468847;background-color:#dff0d8;}
.form-control-static{margin-bottom:0;padding-top:7px;}
.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373;}
@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle;} .form-inline .form-control{display:inline-block;} .form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;} .form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:none;margin-left:0;}}
.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px;}
.form-horizontal .form-group{margin-left:-15px;margin-right:-15px;}.form-horizontal .form-group:before,.form-horizontal .form-group:after{content:" ";display:table;}
.form-horizontal .form-group:after{clear:both;}
.form-horizontal .form-group:before,.form-horizontal .form-group:after{content:" ";display:table;}
.form-horizontal .form-group:after{clear:both;}
@media (min-width:768px){.form-horizontal .control-label{text-align:right;}}
.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:normal;line-height:1.428571429;text-align:center;vertical-align:middle;cursor:pointer;border:1px solid transparent;border-radius:4px;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
.btn:hover,.btn:focus{color:#333333;text-decoration:none;}
.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);box-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);}
.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;}
.btn-default{color:#333333;background-color:#ffffff;border-color:#cccccc;}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333333;background-color:#ebebeb;border-color:#adadad;}
.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none;}
.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#ffffff;border-color:#cccccc;}
.btn-primary{color:#ffffff;background-color:#428bca;border-color:#357ebd;}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#ffffff;background-color:#3276b1;border-color:#285e8e;}
.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none;}
.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd;}
.btn-warning{color:#ffffff;background-color:#f0ad4e;border-color:#eea236;}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#ffffff;background-color:#ed9c28;border-color:#d58512;}
.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none;}
.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236;}
.btn-danger{color:#ffffff;background-color:#d9534f;border-color:#d43f3a;}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#ffffff;background-color:#d2322d;border-color:#ac2925;}
.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none;}
.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a;}
.btn-success{color:#ffffff;background-color:#5cb85c;border-color:#4cae4c;}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#ffffff;background-color:#47a447;border-color:#398439;}
.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none;}
.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c;}
.btn-info{color:#ffffff;background-color:#5bc0de;border-color:#46b8da;}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#ffffff;background-color:#39b3d7;border-color:#269abc;}
.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none;}
.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da;}
.btn-link{color:#428bca;font-weight:normal;cursor:pointer;border-radius:0;}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none;}
.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent;}
.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent;}
.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999999;text-decoration:none;}
.btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px;}
.btn-sm,.btn-xs{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px;}
.btn-xs{padding:1px 5px;}
.btn-block{display:block;width:100%;padding-left:0;padding-right:0;}
.btn-block+.btn-block{margin-top:5px;}
input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%;}
@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg');}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;}
.glyphicon-asterisk:before{content:"\2a";}
.glyphicon-plus:before{content:"\2b";}
.glyphicon-euro:before{content:"\20ac";}
.glyphicon-minus:before{content:"\2212";}
.glyphicon-cloud:before{content:"\2601";}
.glyphicon-envelope:before{content:"\2709";}
.glyphicon-pencil:before{content:"\270f";}
.glyphicon-glass:before{content:"\e001";}
.glyphicon-music:before{content:"\e002";}
.glyphicon-search:before{content:"\e003";}
.glyphicon-heart:before{content:"\e005";}
.glyphicon-star:before{content:"\e006";}
.glyphicon-star-empty:before{content:"\e007";}
.glyphicon-user:before{content:"\e008";}
.glyphicon-film:before{content:"\e009";}
.glyphicon-th-large:before{content:"\e010";}
.glyphicon-th:before{content:"\e011";}
.glyphicon-th-list:before{content:"\e012";}
.glyphicon-ok:before{content:"\e013";}
.glyphicon-remove:before{content:"\e014";}
.glyphicon-zoom-in:before{content:"\e015";}
.glyphicon-zoom-out:before{content:"\e016";}
.glyphicon-off:before{content:"\e017";}
.glyphicon-signal:before{content:"\e018";}
.glyphicon-cog:before{content:"\e019";}
.glyphicon-trash:before{content:"\e020";}
.glyphicon-home:before{content:"\e021";}
.glyphicon-file:before{content:"\e022";}
.glyphicon-time:before{content:"\e023";}
.glyphicon-road:before{content:"\e024";}
.glyphicon-download-alt:before{content:"\e025";}
.glyphicon-download:before{content:"\e026";}
.glyphicon-upload:before{content:"\e027";}
.glyphicon-inbox:before{content:"\e028";}
.glyphicon-play-circle:before{content:"\e029";}
.glyphicon-repeat:before{content:"\e030";}
.glyphicon-refresh:before{content:"\e031";}
.glyphicon-list-alt:before{content:"\e032";}
.glyphicon-flag:before{content:"\e034";}
.glyphicon-headphones:before{content:"\e035";}
.glyphicon-volume-off:before{content:"\e036";}
.glyphicon-volume-down:before{content:"\e037";}
.glyphicon-volume-up:before{content:"\e038";}
.glyphicon-qrcode:before{content:"\e039";}
.glyphicon-barcode:before{content:"\e040";}
.glyphicon-tag:before{content:"\e041";}
.glyphicon-tags:before{content:"\e042";}
.glyphicon-book:before{content:"\e043";}
.glyphicon-print:before{content:"\e045";}
.glyphicon-font:before{content:"\e047";}
.glyphicon-bold:before{content:"\e048";}
.glyphicon-italic:before{content:"\e049";}
.glyphicon-text-height:before{content:"\e050";}
.glyphicon-text-width:before{content:"\e051";}
.glyphicon-align-left:before{content:"\e052";}
.glyphicon-align-center:before{content:"\e053";}
.glyphicon-align-right:before{content:"\e054";}
.glyphicon-align-justify:before{content:"\e055";}
.glyphicon-list:before{content:"\e056";}
.glyphicon-indent-left:before{content:"\e057";}
.glyphicon-indent-right:before{content:"\e058";}
.glyphicon-facetime-video:before{content:"\e059";}
.glyphicon-picture:before{content:"\e060";}
.glyphicon-map-marker:before{content:"\e062";}
.glyphicon-adjust:before{content:"\e063";}
.glyphicon-tint:before{content:"\e064";}
.glyphicon-edit:before{content:"\e065";}
.glyphicon-share:before{content:"\e066";}
.glyphicon-check:before{content:"\e067";}
.glyphicon-move:before{content:"\e068";}
.glyphicon-step-backward:before{content:"\e069";}
.glyphicon-fast-backward:before{content:"\e070";}
.glyphicon-backward:before{content:"\e071";}
.glyphicon-play:before{content:"\e072";}
.glyphicon-pause:before{content:"\e073";}
.glyphicon-stop:before{content:"\e074";}
.glyphicon-forward:before{content:"\e075";}
.glyphicon-fast-forward:before{content:"\e076";}
.glyphicon-step-forward:before{content:"\e077";}
.glyphicon-eject:before{content:"\e078";}
.glyphicon-chevron-left:before{content:"\e079";}
.glyphicon-chevron-right:before{content:"\e080";}
.glyphicon-plus-sign:before{content:"\e081";}
.glyphicon-minus-sign:before{content:"\e082";}
.glyphicon-remove-sign:before{content:"\e083";}
.glyphicon-ok-sign:before{content:"\e084";}
.glyphicon-question-sign:before{content:"\e085";}
.glyphicon-info-sign:before{content:"\e086";}
.glyphicon-screenshot:before{content:"\e087";}
.glyphicon-remove-circle:before{content:"\e088";}
.glyphicon-ok-circle:before{content:"\e089";}
.glyphicon-ban-circle:before{content:"\e090";}
.glyphicon-arrow-left:before{content:"\e091";}
.glyphicon-arrow-right:before{content:"\e092";}
.glyphicon-arrow-up:before{content:"\e093";}
.glyphicon-arrow-down:before{content:"\e094";}
.glyphicon-share-alt:before{content:"\e095";}
.glyphicon-resize-full:before{content:"\e096";}
.glyphicon-resize-small:before{content:"\e097";}
.glyphicon-exclamation-sign:before{content:"\e101";}
.glyphicon-gift:before{content:"\e102";}
.glyphicon-leaf:before{content:"\e103";}
.glyphicon-eye-open:before{content:"\e105";}
.glyphicon-eye-close:before{content:"\e106";}
.glyphicon-warning-sign:before{content:"\e107";}
.glyphicon-plane:before{content:"\e108";}
.glyphicon-random:before{content:"\e110";}
.glyphicon-comment:before{content:"\e111";}
.glyphicon-magnet:before{content:"\e112";}
.glyphicon-chevron-up:before{content:"\e113";}
.glyphicon-chevron-down:before{content:"\e114";}
.glyphicon-retweet:before{content:"\e115";}
.glyphicon-shopping-cart:before{content:"\e116";}
.glyphicon-folder-close:before{content:"\e117";}
.glyphicon-folder-open:before{content:"\e118";}
.glyphicon-resize-vertical:before{content:"\e119";}
.glyphicon-resize-horizontal:before{content:"\e120";}
.glyphicon-hdd:before{content:"\e121";}
.glyphicon-bullhorn:before{content:"\e122";}
.glyphicon-certificate:before{content:"\e124";}
.glyphicon-thumbs-up:before{content:"\e125";}
.glyphicon-thumbs-down:before{content:"\e126";}
.glyphicon-hand-right:before{content:"\e127";}
.glyphicon-hand-left:before{content:"\e128";}
.glyphicon-hand-up:before{content:"\e129";}
.glyphicon-hand-down:before{content:"\e130";}
.glyphicon-circle-arrow-right:before{content:"\e131";}
.glyphicon-circle-arrow-left:before{content:"\e132";}
.glyphicon-circle-arrow-up:before{content:"\e133";}
.glyphicon-circle-arrow-down:before{content:"\e134";}
.glyphicon-globe:before{content:"\e135";}
.glyphicon-tasks:before{content:"\e137";}
.glyphicon-filter:before{content:"\e138";}
.glyphicon-fullscreen:before{content:"\e140";}
.glyphicon-dashboard:before{content:"\e141";}
.glyphicon-heart-empty:before{content:"\e143";}
.glyphicon-link:before{content:"\e144";}
.glyphicon-phone:before{content:"\e145";}
.glyphicon-usd:before{content:"\e148";}
.glyphicon-gbp:before{content:"\e149";}
.glyphicon-sort:before{content:"\e150";}
.glyphicon-sort-by-alphabet:before{content:"\e151";}
.glyphicon-sort-by-alphabet-alt:before{content:"\e152";}
.glyphicon-sort-by-order:before{content:"\e153";}
.glyphicon-sort-by-order-alt:before{content:"\e154";}
.glyphicon-sort-by-attributes:before{content:"\e155";}
.glyphicon-sort-by-attributes-alt:before{content:"\e156";}
.glyphicon-unchecked:before{content:"\e157";}
.glyphicon-expand:before{content:"\e158";}
.glyphicon-collapse-down:before{content:"\e159";}
.glyphicon-collapse-up:before{content:"\e160";}
.glyphicon-log-in:before{content:"\e161";}
.glyphicon-flash:before{content:"\e162";}
.glyphicon-log-out:before{content:"\e163";}
.glyphicon-new-window:before{content:"\e164";}
.glyphicon-record:before{content:"\e165";}
.glyphicon-save:before{content:"\e166";}
.glyphicon-open:before{content:"\e167";}
.glyphicon-saved:before{content:"\e168";}
.glyphicon-import:before{content:"\e169";}
.glyphicon-export:before{content:"\e170";}
.glyphicon-send:before{content:"\e171";}
.glyphicon-floppy-disk:before{content:"\e172";}
.glyphicon-floppy-saved:before{content:"\e173";}
.glyphicon-floppy-remove:before{content:"\e174";}
.glyphicon-floppy-save:before{content:"\e175";}
.glyphicon-floppy-open:before{content:"\e176";}
.glyphicon-credit-card:before{content:"\e177";}
.glyphicon-transfer:before{content:"\e178";}
.glyphicon-cutlery:before{content:"\e179";}
.glyphicon-header:before{content:"\e180";}
.glyphicon-compressed:before{content:"\e181";}
.glyphicon-earphone:before{content:"\e182";}
.glyphicon-phone-alt:before{content:"\e183";}
.glyphicon-tower:before{content:"\e184";}
.glyphicon-stats:before{content:"\e185";}
.glyphicon-sd-video:before{content:"\e186";}
.glyphicon-hd-video:before{content:"\e187";}
.glyphicon-subtitles:before{content:"\e188";}
.glyphicon-sound-stereo:before{content:"\e189";}
.glyphicon-sound-dolby:before{content:"\e190";}
.glyphicon-sound-5-1:before{content:"\e191";}
.glyphicon-sound-6-1:before{content:"\e192";}
.glyphicon-sound-7-1:before{content:"\e193";}
.glyphicon-copyright-mark:before{content:"\e194";}
.glyphicon-registration-mark:before{content:"\e195";}
.glyphicon-cloud-download:before{content:"\e197";}
.glyphicon-cloud-upload:before{content:"\e198";}
.glyphicon-tree-conifer:before{content:"\e199";}
.glyphicon-tree-deciduous:before{content:"\e200";}
.glyphicon-briefcase:before{content:"\1f4bc";}
.glyphicon-calendar:before{content:"\1f4c5";}
.glyphicon-pushpin:before{content:"\1f4cc";}
.glyphicon-paperclip:before{content:"\1f4ce";}
.glyphicon-camera:before{content:"\1f4f7";}
.glyphicon-lock:before{content:"\1f512";}
.glyphicon-bell:before{content:"\1f514";}
.glyphicon-bookmark:before{content:"\1f516";}
.glyphicon-fire:before{content:"\1f525";}
.glyphicon-wrench:before{content:"\1f527";}
.btn-default .caret{border-top-color:#333333;}
.btn-primary .caret,.btn-success .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret{border-top-color:#fff;}
.dropup .btn-default .caret{border-bottom-color:#333333;}
.dropup .btn-primary .caret,.dropup .btn-success .caret,.dropup .btn-warning .caret,.dropup .btn-danger .caret,.dropup .btn-info .caret{border-bottom-color:#fff;}
.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle;}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left;}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2;}
.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:none;}
.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px;}
.btn-toolbar:before,.btn-toolbar:after{content:" ";display:table;}
.btn-toolbar:after{clear:both;}
.btn-toolbar:before,.btn-toolbar:after{content:" ";display:table;}
.btn-toolbar:after{clear:both;}
.btn-toolbar .btn-group{float:left;}
.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group,.btn-toolbar>.btn-group+.btn-group{margin-left:5px;}
.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0;}
.btn-group>.btn:first-child{margin-left:0;}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0;}
.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0;}
.btn-group>.btn-group{float:left;}
.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0;}
.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0;}
.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0;}
.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0;}
.btn-group-xs>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px;padding:1px 5px;}
.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px;}
.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px;}
.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px;}
.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px;}
.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);box-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);}
.btn .caret{margin-left:0;}
.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0;}
.dropup .btn-lg .caret{border-width:0 5px 5px;}
.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{display:block;float:none;width:100%;max-width:100%;}
.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{content:" ";display:table;}
.btn-group-vertical>.btn-group:after{clear:both;}
.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{content:" ";display:table;}
.btn-group-vertical>.btn-group:after{clear:both;}
.btn-group-vertical>.btn-group>.btn{float:none;}
.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0;}
.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0;}
.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0;}
.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0;}
.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0;}
.btn-group-vertical>.btn-group:first-child>.btn:last-child,.btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0;}
.btn-group-vertical>.btn-group:last-child>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0;}
.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate;}.btn-group-justified .btn{float:none;display:table-cell;width:1%;}
[data-toggle="buttons"]>.btn>input[type="radio"],[data-toggle="buttons"]>.btn>input[type="checkbox"]{display:none;}
.input-group{position:relative;display:table;border-collapse:separate;}.input-group.col{float:none;padding-left:0;padding-right:0;}
.input-group .form-control{width:100%;margin-bottom:0;}
.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px;}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:45px;line-height:45px;}
textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto;}
.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px;}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px;}
textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto;}
.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell;}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0;}
.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle;}
.input-group-addon{padding:6px 12px;font-size:14px;font-weight:normal;line-height:1;text-align:center;background-color:#eeeeee;border:1px solid #cccccc;border-radius:4px;}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px;}
.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px;}
.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0;}
.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0;}
.input-group-addon:first-child{border-right:0;}
.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0;}
.input-group-addon:last-child{border-left:0;}
.input-group-btn{position:relative;white-space:nowrap;}
.input-group-btn>.btn{position:relative;}.input-group-btn>.btn+.btn{margin-left:-4px;}
.input-group-btn>.btn:hover,.input-group-btn>.btn:active{z-index:2;}
.nav{margin-bottom:0;padding-left:0;list-style:none;}.nav:before,.nav:after{content:" ";display:table;}
.nav:after{clear:both;}
.nav:before,.nav:after{content:" ";display:table;}
.nav:after{clear:both;}
.nav>li{position:relative;display:block;}.nav>li>a{position:relative;display:block;padding:10px 15px;}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eeeeee;}
.nav>li.disabled>a{color:#999999;}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999999;text-decoration:none;background-color:transparent;cursor:not-allowed;}
.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eeeeee;border-color:#428bca;}
.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5;}
.nav>li>a>img{max-width:none;}
.nav-tabs{border-bottom:1px solid #dddddd;}.nav-tabs>li{float:left;margin-bottom:-1px;}.nav-tabs>li>a{margin-right:2px;line-height:1.428571429;border:1px solid transparent;border-radius:4px 4px 0 0;}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #dddddd;}
.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555555;background-color:#ffffff;border:1px solid #dddddd;border-bottom-color:transparent;cursor:default;}
.nav-tabs.nav-justified{width:100%;border-bottom:0;}.nav-tabs.nav-justified>li{float:none;}.nav-tabs.nav-justified>li>a{text-align:center;}
@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%;}}.nav-tabs.nav-justified>li>a{border-bottom:1px solid #dddddd;margin-right:0;}
.nav-tabs.nav-justified>.active>a{border-bottom-color:#ffffff;}
.nav-pills>li{float:left;}.nav-pills>li>a{border-radius:5px;}
.nav-pills>li+li{margin-left:2px;}
.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#ffffff;background-color:#428bca;}
.nav-stacked>li{float:none;}.nav-stacked>li+li{margin-top:2px;margin-left:0;}
.nav-justified{width:100%;}.nav-justified>li{float:none;}.nav-justified>li>a{text-align:center;}
@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%;}}
.nav-tabs-justified{border-bottom:0;}.nav-tabs-justified>li>a{border-bottom:1px solid #dddddd;margin-right:0;}
.nav-tabs-justified>.active>a{border-bottom-color:#ffffff;}
.tabbable:before,.tabbable:after{content:" ";display:table;}
.tabbable:after{clear:both;}
.tabbable:before,.tabbable:after{content:" ";display:table;}
.tabbable:after{clear:both;}
.tab-content>.tab-pane,.pill-content>.pill-pane{display:none;}
.tab-content>.active,.pill-content>.active{display:block;}
.nav .caret{border-top-color:#428bca;border-bottom-color:#428bca;}
.nav a:hover .caret{border-top-color:#2a6496;border-bottom-color:#2a6496;}
.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0;}
.navbar{position:relative;z-index:1000;min-height:50px;margin-bottom:20px;border:1px solid transparent;}.navbar:before,.navbar:after{content:" ";display:table;}
.navbar:after{clear:both;}
.navbar:before,.navbar:after{content:" ";display:table;}
.navbar:after{clear:both;}
@media (min-width:768px){.navbar{border-radius:4px;}}
.navbar-header:before,.navbar-header:after{content:" ";display:table;}
.navbar-header:after{clear:both;}
.navbar-header:before,.navbar-header:after{content:" ";display:table;}
.navbar-header:after{clear:both;}
@media (min-width:768px){.navbar-header{float:left;}}
.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1);-webkit-overflow-scrolling:touch;}.navbar-collapse:before,.navbar-collapse:after{content:" ";display:table;}
.navbar-collapse:after{clear:both;}
.navbar-collapse:before,.navbar-collapse:after{content:" ";display:table;}
.navbar-collapse:after{clear:both;}
.navbar-collapse.in{overflow-y:auto;}
@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none;}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important;} .navbar-collapse.in{overflow-y:visible;} .navbar-collapse .navbar-nav.navbar-left:first-child{margin-left:-15px;} .navbar-collapse .navbar-nav.navbar-right:last-child{margin-right:-15px;} .navbar-collapse .navbar-text:last-child{margin-right:0;}}
.container>.navbar-header,.container>.navbar-collapse{margin-right:-15px;margin-left:-15px;}@media (min-width:768px){.container>.navbar-header,.container>.navbar-collapse{margin-right:0;margin-left:0;}}
.navbar-static-top{border-width:0 0 1px;}@media (min-width:768px){.navbar-static-top{border-radius:0;}}
.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;border-width:0 0 1px;}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0;}}
.navbar-fixed-top{z-index:1030;top:0;}
.navbar-fixed-bottom{bottom:0;margin-bottom:0;}
.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px;}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none;}
@media (min-width:768px){.navbar>.container .navbar-brand{margin-left:-15px;}}
.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;border:1px solid transparent;border-radius:4px;}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px;}
.navbar-toggle .icon-bar+.icon-bar{margin-top:4px;}
@media (min-width:768px){.navbar-toggle{display:none;}}
.navbar-nav{margin:7.5px -15px;}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px;}
@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none;}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px;} .navbar-nav .open .dropdown-menu>li>a{line-height:20px;}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none;}}@media (min-width:768px){.navbar-nav{float:left;margin:0;}.navbar-nav>li{float:left;}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px;}}
@media (min-width:768px){.navbar-left{float:left !important;} .navbar-right{float:right !important;}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.1);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.1);margin-top:8px;margin-bottom:8px;}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle;} .navbar-form .form-control{display:inline-block;} .navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;} .navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{float:none;margin-left:0;}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px;}}
@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none;}}
.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0;}
.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0;}
.navbar-nav.pull-right>li>.dropdown-menu,.navbar-nav>li>.dropdown-menu.pull-right{left:auto;right:0;}
.navbar-btn{margin-top:8px;margin-bottom:8px;}
.navbar-text{float:left;margin-top:15px;margin-bottom:15px;}@media (min-width:768px){.navbar-text{margin-left:15px;margin-right:15px;}}
.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7;}.navbar-default .navbar-brand{color:#777777;}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent;}
.navbar-default .navbar-text{color:#777777;}
.navbar-default .navbar-nav>li>a{color:#777777;}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333333;background-color:transparent;}
.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555555;background-color:#e7e7e7;}
.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent;}
.navbar-default .navbar-toggle{border-color:#dddddd;}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#dddddd;}
.navbar-default .navbar-toggle .icon-bar{background-color:#cccccc;}
.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e6e6e6;}
.navbar-default .navbar-nav>.dropdown>a:hover .caret,.navbar-default .navbar-nav>.dropdown>a:focus .caret{border-top-color:#333333;border-bottom-color:#333333;}
.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555555;}.navbar-default .navbar-nav>.open>a .caret,.navbar-default .navbar-nav>.open>a:hover .caret,.navbar-default .navbar-nav>.open>a:focus .caret{border-top-color:#555555;border-bottom-color:#555555;}
.navbar-default .navbar-nav>.dropdown>a .caret{border-top-color:#777777;border-bottom-color:#777777;}
@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777777;}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333333;background-color:transparent;} .navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555555;background-color:#e7e7e7;} .navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#cccccc;background-color:transparent;}}
.navbar-default .navbar-link{color:#777777;}.navbar-default .navbar-link:hover{color:#333333;}
.navbar-inverse{background-color:#222222;border-color:#080808;}.navbar-inverse .navbar-brand{color:#999999;}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#ffffff;background-color:transparent;}
.navbar-inverse .navbar-text{color:#999999;}
.navbar-inverse .navbar-nav>li>a{color:#999999;}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#ffffff;background-color:transparent;}
.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#ffffff;background-color:#080808;}
.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444444;background-color:transparent;}
.navbar-inverse .navbar-toggle{border-color:#333333;}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333333;}
.navbar-inverse .navbar-toggle .icon-bar{background-color:#ffffff;}
.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010;}
.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#080808;color:#ffffff;}
.navbar-inverse .navbar-nav>.dropdown>a:hover .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;}
.navbar-inverse .navbar-nav>.dropdown>a .caret{border-top-color:#999999;border-bottom-color:#999999;}
.navbar-inverse .navbar-nav>.open>a .caret,.navbar-inverse .navbar-nav>.open>a:hover .caret,.navbar-inverse .navbar-nav>.open>a:focus .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;}
@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808;} .navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999999;}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:transparent;} .navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#080808;} .navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444444;background-color:transparent;}}
.navbar-inverse .navbar-link{color:#999999;}.navbar-inverse .navbar-link:hover{color:#ffffff;}
.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px;}.breadcrumb>li{display:inline-block;}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#cccccc;}
.breadcrumb>.active{color:#999999;}
.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px;}.pagination>li{display:inline;}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.428571429;text-decoration:none;background-color:#ffffff;border:1px solid #dddddd;margin-left:-1px;}
.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px;}
.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px;}
.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{background-color:#eeeeee;}
.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#ffffff;background-color:#428bca;border-color:#428bca;cursor:default;}
.pagination>.disabled>span,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999999;background-color:#ffffff;border-color:#dddddd;cursor:not-allowed;}
.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;}
.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px;}
.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px;}
.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;}
.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px;}
.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px;}
.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center;}.pager:before,.pager:after{content:" ";display:table;}
.pager:after{clear:both;}
.pager:before,.pager:after{content:" ";display:table;}
.pager:after{clear:both;}
.pager li{display:inline;}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#ffffff;border:1px solid #dddddd;border-radius:15px;}
.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eeeeee;}
.pager .next>a,.pager .next>span{float:right;}
.pager .previous>a,.pager .previous>span{float:left;}
.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999999;background-color:#ffffff;cursor:not-allowed;}
.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em;}.label[href]:hover,.label[href]:focus{color:#ffffff;text-decoration:none;cursor:pointer;}
.label:empty{display:none;}
.label-default{background-color:#999999;}.label-default[href]:hover,.label-default[href]:focus{background-color:#808080;}
.label-primary{background-color:#428bca;}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9;}
.label-success{background-color:#5cb85c;}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44;}
.label-info{background-color:#5bc0de;}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5;}
.label-warning{background-color:#f0ad4e;}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f;}
.label-danger{background-color:#d9534f;}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c;}
.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;color:#ffffff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999999;border-radius:10px;}.badge:empty{display:none;}
a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer;}
.btn .badge{position:relative;top:-1px;}
a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#ffffff;}
.nav-pills>li>a>.badge{margin-left:3px;}
.jumbotron{padding:30px;margin-bottom:30px;font-size:21px;font-weight:200;line-height:2.1428571435;color:inherit;background-color:#eeeeee;}.jumbotron h1{line-height:1;color:inherit;}
.jumbotron p{line-height:1.4;}
.container .jumbotron{border-radius:6px;}
@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px;}.container .jumbotron{padding-left:60px;padding-right:60px;} .jumbotron h1{font-size:63px;}}
.thumbnail{padding:4px;line-height:1.428571429;background-color:#ffffff;border:1px solid #dddddd;border-radius:4px;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;display:inline-block;max-width:100%;height:auto;display:block;}.thumbnail>img{display:block;max-width:100%;height:auto;}
a.thumbnail:hover,a.thumbnail:focus{border-color:#428bca;}
.thumbnail>img{margin-left:auto;margin-right:auto;}
.thumbnail .caption{padding:9px;color:#333333;}
.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px;}.alert h4{margin-top:0;color:inherit;}
.alert .alert-link{font-weight:bold;}
.alert>p,.alert>ul{margin-bottom:0;}
.alert>p+p{margin-top:5px;}
.alert-dismissable{padding-right:35px;}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit;}
.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847;}.alert-success hr{border-top-color:#c9e2b3;}
.alert-success .alert-link{color:#356635;}
.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad;}.alert-info hr{border-top-color:#a6e1ec;}
.alert-info .alert-link{color:#2d6987;}
.alert-warning{background-color:#fcf8e3;border-color:#fbeed5;color:#c09853;}.alert-warning hr{border-top-color:#f8e5be;}
.alert-warning .alert-link{color:#a47e3c;}
.alert-danger{background-color:#f2dede;border-color:#eed3d7;color:#b94a48;}.alert-danger hr{border-top-color:#e6c1c7;}
.alert-danger .alert-link{color:#953b39;}
@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}@-o-keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}@keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);}
.progress-bar{float:left;width:0%;height:100%;font-size:12px;color:#ffffff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-webkit-transition:width 0.6s ease;transition:width 0.6s ease;}
.progress-striped .progress-bar{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-size:40px 40px;}
.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite;}
.progress-bar-success{background-color:#5cb85c;}.progress-striped .progress-bar-success{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);}
.progress-bar-info{background-color:#5bc0de;}.progress-striped .progress-bar-info{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);}
.progress-bar-warning{background-color:#f0ad4e;}.progress-striped .progress-bar-warning{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);}
.progress-bar-danger{background-color:#d9534f;}.progress-striped .progress-bar-danger{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);}
.media,.media-body{overflow:hidden;zoom:1;}
.media,.media .media{margin-top:15px;}
.media:first-child{margin-top:0;}
.media-object{display:block;}
.media-heading{margin:0 0 5px;}
.media>.pull-left{margin-right:10px;}
.media>.pull-right{margin-left:10px;}
.media-list{padding-left:0;list-style:none;}
.list-group{margin-bottom:20px;padding-left:0;}
.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#ffffff;border:1px solid #dddddd;}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px;}
.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px;}
.list-group-item>.badge{float:right;}
.list-group-item>.badge+.badge{margin-right:5px;}
a.list-group-item{color:#555555;}a.list-group-item .list-group-item-heading{color:#333333;}
a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5;}
.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#ffffff;background-color:#428bca;border-color:#428bca;}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading{color:inherit;}
.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#e1edf7;}
.list-group-item-heading{margin-top:0;margin-bottom:5px;}
.list-group-item-text{margin-bottom:0;line-height:1.3;}
.panel{margin-bottom:20px;background-color:#ffffff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.05);box-shadow:0 1px 1px rgba(0, 0, 0, 0.05);}
.panel-body{padding:15px;}.panel-body:before,.panel-body:after{content:" ";display:table;}
.panel-body:after{clear:both;}
.panel-body:before,.panel-body:after{content:" ";display:table;}
.panel-body:after{clear:both;}
.panel>.list-group{margin-bottom:0;}.panel>.list-group .list-group-item{border-width:1px 0;}.panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0;}
.panel>.list-group .list-group-item:last-child{border-bottom:0;}
.panel-heading+.list-group .list-group-item:first-child{border-top-width:0;}
.panel>.table{margin-bottom:0;}
.panel>.panel-body+.table{border-top:1px solid #dddddd;}
.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px;}
.panel-title{margin-top:0;margin-bottom:0;font-size:16px;}.panel-title>a{color:inherit;}
.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #dddddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px;}
.panel-group .panel{margin-bottom:0;border-radius:4px;overflow:hidden;}.panel-group .panel+.panel{margin-top:5px;}
.panel-group .panel-heading{border-bottom:0;}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #dddddd;}
.panel-group .panel-footer{border-top:0;}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #dddddd;}
.panel-default{border-color:#dddddd;}.panel-default>.panel-heading{color:#333333;background-color:#f5f5f5;border-color:#dddddd;}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#dddddd;}
.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#dddddd;}
.panel-primary{border-color:#428bca;}.panel-primary>.panel-heading{color:#ffffff;background-color:#428bca;border-color:#428bca;}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca;}
.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca;}
.panel-success{border-color:#d6e9c6;}.panel-success>.panel-heading{color:#468847;background-color:#dff0d8;border-color:#d6e9c6;}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6;}
.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6;}
.panel-warning{border-color:#fbeed5;}.panel-warning>.panel-heading{color:#c09853;background-color:#fcf8e3;border-color:#fbeed5;}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#fbeed5;}
.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#fbeed5;}
.panel-danger{border-color:#eed3d7;}.panel-danger>.panel-heading{color:#b94a48;background-color:#f2dede;border-color:#eed3d7;}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#eed3d7;}
.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#eed3d7;}
.panel-info{border-color:#bce8f1;}.panel-info>.panel-heading{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1;}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1;}
.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1;}
.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);}.well blockquote{border-color:#ddd;border-color:rgba(0, 0, 0, 0.15);}
.well-lg{padding:24px;border-radius:6px;}
.well-sm{padding:9px;border-radius:3px;}
.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20);}.close:hover,.close:focus{color:#000000;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50);}
button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none;}
.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid #000000;border-right:4px solid transparent;border-left:4px solid transparent;border-bottom:0 dotted;content:"";}
.dropdown{position:relative;}
.dropdown-toggle:focus{outline:0;}
.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;background-color:#ffffff;border:1px solid #cccccc;border:1px solid rgba(0, 0, 0, 0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0, 0, 0, 0.175);box-shadow:0 6px 12px rgba(0, 0, 0, 0.175);background-clip:padding-box;}.dropdown-menu.pull-right{right:0;left:auto;}
.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5;}
.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.428571429;color:#333333;white-space:nowrap;}
.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#ffffff;background-color:#428bca;}
.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#428bca;}
.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999999;}
.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed;}
.open>.dropdown-menu{display:block;}
.open>a{outline:0;}
.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#999999;}
.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990;}
.pull-right>.dropdown-menu{right:0;left:auto;}
.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0 dotted;border-bottom:4px solid #000000;content:"";}
.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px;}
@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto;}}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0);}.tooltip.in{opacity:0.9;filter:alpha(opacity=90);}
.tooltip.top{margin-top:-3px;padding:5px 0;}
.tooltip.right{margin-left:3px;padding:0 5px;}
.tooltip.bottom{margin-top:3px;padding:5px 0;}
.tooltip.left{margin-left:-3px;padding:0 5px;}
.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;text-decoration:none;background-color:#000000;border-radius:4px;}
.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid;}
.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000;}
.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000000;}
.tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:#000000;}
.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000;}
.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000;}
.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000;}
.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000000;}
.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000000;}
.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#ffffff;background-clip:padding-box;border:1px solid #cccccc;border:1px solid rgba(0, 0, 0, 0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);white-space:normal;}.popover.top{margin-top:-10px;}
.popover.right{margin-left:10px;}
.popover.bottom{margin-top:10px;}
.popover.left{margin-left:-10px;}
.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0;}
.popover-content{padding:9px 14px;}
.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid;}
.popover .arrow{border-width:11px;}
.popover .arrow:after{border-width:10px;content:"";}
.popover.top .arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999999;border-top-color:rgba(0, 0, 0, 0.25);bottom:-11px;}.popover.top .arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#ffffff;}
.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999999;border-right-color:rgba(0, 0, 0, 0.25);}.popover.right .arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#ffffff;}
.popover.bottom .arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999999;border-bottom-color:rgba(0, 0, 0, 0.25);top:-11px;}.popover.bottom .arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#ffffff;}
.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999999;border-left-color:rgba(0, 0, 0, 0.25);}.popover.left .arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#ffffff;bottom:-10px;}
.modal-open{overflow:hidden;}body.modal-open,.modal-open .navbar-fixed-top,.modal-open .navbar-fixed-bottom{margin-right:15px;}
.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform 0.3s ease-out;-moz-transition:-moz-transform 0.3s ease-out;-o-transition:-o-transform 0.3s ease-out;transition:transform 0.3s ease-out;}
.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);transform:translate(0, 0);}
.modal-dialog{margin-left:auto;margin-right:auto;width:auto;padding:10px;z-index:1050;}
.modal-content{position:relative;background-color:#ffffff;border:1px solid #999999;border:1px solid rgba(0, 0, 0, 0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0, 0, 0, 0.5);box-shadow:0 3px 9px rgba(0, 0, 0, 0.5);background-clip:padding-box;outline:none;}
.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;background-color:#000000;}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0);}
.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50);}
.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.428571429px;}
.modal-header .close{margin-top:-2px;}
.modal-title{margin:0;line-height:1.428571429;}
.modal-body{position:relative;padding:20px;}
.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #e5e5e5;}.modal-footer:before,.modal-footer:after{content:" ";display:table;}
.modal-footer:after{clear:both;}
.modal-footer:before,.modal-footer:after{content:" ";display:table;}
.modal-footer:after{clear:both;}
.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0;}
.modal-footer .btn-group .btn+.btn{margin-left:-1px;}
.modal-footer .btn-block+.btn-block{margin-left:0;}
@media screen and (min-width:768px){.modal-dialog{left:50%;right:auto;width:600px;padding-top:30px;padding-bottom:30px;} .modal-content{-webkit-box-shadow:0 5px 15px rgba(0, 0, 0, 0.5);box-shadow:0 5px 15px rgba(0, 0, 0, 0.5);}}.carousel{position:relative;}
.carousel-inner{position:relative;overflow:hidden;width:100%;}.carousel-inner>.item{display:none;position:relative;-webkit-transition:0.6s ease-in-out left;transition:0.6s ease-in-out left;}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto;line-height:1;}
.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block;}
.carousel-inner>.active{left:0;}
.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%;}
.carousel-inner>.next{left:100%;}
.carousel-inner>.prev{left:-100%;}
.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0;}
.carousel-inner>.active.left{left:-100%;}
.carousel-inner>.active.right{left:100%;}
.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0, 0, 0, 0.6);}.carousel-control.left{background-image:-webkit-gradient(linear, 0% top, 100% top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001)));background-image:-webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.5) 0%), color-stop(rgba(0, 0, 0, 0.0001) 100%));background-image:-moz-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);background-image:linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);}
.carousel-control.right{left:auto;right:0;background-image:-webkit-gradient(linear, 0% top, 100% top, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5)));background-image:-webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.0001) 0%), color-stop(rgba(0, 0, 0, 0.5) 100%));background-image:-moz-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);background-image:linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);}
.carousel-control:hover,.carousel-control:focus{color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90);}
.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;left:50%;z-index:5;display:inline-block;}
.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif;}
.carousel-control .icon-prev:before{content:'\2039';}
.carousel-control .icon-next:before{content:'\203a';}
.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center;}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #ffffff;border-radius:10px;cursor:pointer;}
.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#ffffff;}
.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0, 0, 0, 0.6);}.carousel-caption .btn{text-shadow:none;}
@media screen and (min-width:768px){.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px;} .carousel-caption{left:20%;right:20%;padding-bottom:30px;} .carousel-indicators{bottom:20px;}}.clearfix:before,.clearfix:after{content:" ";display:table;}
.clearfix:after{clear:both;}
.pull-right{float:right !important;}
.pull-left{float:left !important;}
.hide{display:none !important;}
.show{display:block !important;}
.invisible{visibility:hidden;}
.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;}
.affix{position:fixed;}
@-ms-viewport{width:device-width;}@media screen and (max-width:400px){@-ms-viewport{width:320px;}}.hidden{display:none !important;visibility:hidden !important;}
.visible-xs{display:none !important;}tr.visible-xs{display:none !important;}
th.visible-xs,td.visible-xs{display:none !important;}
@media (max-width:767px){.visible-xs{display:block !important;}tr.visible-xs{display:table-row !important;} th.visible-xs,td.visible-xs{display:table-cell !important;}}@media (min-width:768px) and (max-width:991px){.visible-xs.visible-sm{display:block !important;}tr.visible-xs.visible-sm{display:table-row !important;} th.visible-xs.visible-sm,td.visible-xs.visible-sm{display:table-cell !important;}}
@media (min-width:992px) and (max-width:1199px){.visible-xs.visible-md{display:block !important;}tr.visible-xs.visible-md{display:table-row !important;} th.visible-xs.visible-md,td.visible-xs.visible-md{display:table-cell !important;}}
@media (min-width:1200px){.visible-xs.visible-lg{display:block !important;}tr.visible-xs.visible-lg{display:table-row !important;} th.visible-xs.visible-lg,td.visible-xs.visible-lg{display:table-cell !important;}}
.visible-sm{display:none !important;}tr.visible-sm{display:none !important;}
th.visible-sm,td.visible-sm{display:none !important;}
@media (max-width:767px){.visible-sm.visible-xs{display:block !important;}tr.visible-sm.visible-xs{display:table-row !important;} th.visible-sm.visible-xs,td.visible-sm.visible-xs{display:table-cell !important;}}
@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important;}tr.visible-sm{display:table-row !important;} th.visible-sm,td.visible-sm{display:table-cell !important;}}@media (min-width:992px) and (max-width:1199px){.visible-sm.visible-md{display:block !important;}tr.visible-sm.visible-md{display:table-row !important;} th.visible-sm.visible-md,td.visible-sm.visible-md{display:table-cell !important;}}
@media (min-width:1200px){.visible-sm.visible-lg{display:block !important;}tr.visible-sm.visible-lg{display:table-row !important;} th.visible-sm.visible-lg,td.visible-sm.visible-lg{display:table-cell !important;}}
.visible-md{display:none !important;}tr.visible-md{display:none !important;}
th.visible-md,td.visible-md{display:none !important;}
@media (max-width:767px){.visible-md.visible-xs{display:block !important;}tr.visible-md.visible-xs{display:table-row !important;} th.visible-md.visible-xs,td.visible-md.visible-xs{display:table-cell !important;}}
@media (min-width:768px) and (max-width:991px){.visible-md.visible-sm{display:block !important;}tr.visible-md.visible-sm{display:table-row !important;} th.visible-md.visible-sm,td.visible-md.visible-sm{display:table-cell !important;}}
@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important;}tr.visible-md{display:table-row !important;} th.visible-md,td.visible-md{display:table-cell !important;}}@media (min-width:1200px){.visible-md.visible-lg{display:block !important;}tr.visible-md.visible-lg{display:table-row !important;} th.visible-md.visible-lg,td.visible-md.visible-lg{display:table-cell !important;}}
.visible-lg{display:none !important;}tr.visible-lg{display:none !important;}
th.visible-lg,td.visible-lg{display:none !important;}
@media (max-width:767px){.visible-lg.visible-xs{display:block !important;}tr.visible-lg.visible-xs{display:table-row !important;} th.visible-lg.visible-xs,td.visible-lg.visible-xs{display:table-cell !important;}}
@media (min-width:768px) and (max-width:991px){.visible-lg.visible-sm{display:block !important;}tr.visible-lg.visible-sm{display:table-row !important;} th.visible-lg.visible-sm,td.visible-lg.visible-sm{display:table-cell !important;}}
@media (min-width:992px) and (max-width:1199px){.visible-lg.visible-md{display:block !important;}tr.visible-lg.visible-md{display:table-row !important;} th.visible-lg.visible-md,td.visible-lg.visible-md{display:table-cell !important;}}
@media (min-width:1200px){.visible-lg{display:block !important;}tr.visible-lg{display:table-row !important;} th.visible-lg,td.visible-lg{display:table-cell !important;}}
.hidden-xs{display:block !important;}tr.hidden-xs{display:table-row !important;}
th.hidden-xs,td.hidden-xs{display:table-cell !important;}
@media (max-width:767px){.hidden-xs{display:none !important;}tr.hidden-xs{display:none !important;} th.hidden-xs,td.hidden-xs{display:none !important;}}@media (min-width:768px) and (max-width:991px){.hidden-xs.hidden-sm{display:none !important;}tr.hidden-xs.hidden-sm{display:none !important;} th.hidden-xs.hidden-sm,td.hidden-xs.hidden-sm{display:none !important;}}
@media (min-width:992px) and (max-width:1199px){.hidden-xs.hidden-md{display:none !important;}tr.hidden-xs.hidden-md{display:none !important;} th.hidden-xs.hidden-md,td.hidden-xs.hidden-md{display:none !important;}}
@media (min-width:1200px){.hidden-xs.hidden-lg{display:none !important;}tr.hidden-xs.hidden-lg{display:none !important;} th.hidden-xs.hidden-lg,td.hidden-xs.hidden-lg{display:none !important;}}
.hidden-sm{display:block !important;}tr.hidden-sm{display:table-row !important;}
th.hidden-sm,td.hidden-sm{display:table-cell !important;}
@media (max-width:767px){.hidden-sm.hidden-xs{display:none !important;}tr.hidden-sm.hidden-xs{display:none !important;} th.hidden-sm.hidden-xs,td.hidden-sm.hidden-xs{display:none !important;}}
@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important;}tr.hidden-sm{display:none !important;} th.hidden-sm,td.hidden-sm{display:none !important;}}@media (min-width:992px) and (max-width:1199px){.hidden-sm.hidden-md{display:none !important;}tr.hidden-sm.hidden-md{display:none !important;} th.hidden-sm.hidden-md,td.hidden-sm.hidden-md{display:none !important;}}
@media (min-width:1200px){.hidden-sm.hidden-lg{display:none !important;}tr.hidden-sm.hidden-lg{display:none !important;} th.hidden-sm.hidden-lg,td.hidden-sm.hidden-lg{display:none !important;}}
.hidden-md{display:block !important;}tr.hidden-md{display:table-row !important;}
th.hidden-md,td.hidden-md{display:table-cell !important;}
@media (max-width:767px){.hidden-md.hidden-xs{display:none !important;}tr.hidden-md.hidden-xs{display:none !important;} th.hidden-md.hidden-xs,td.hidden-md.hidden-xs{display:none !important;}}
@media (min-width:768px) and (max-width:991px){.hidden-md.hidden-sm{display:none !important;}tr.hidden-md.hidden-sm{display:none !important;} th.hidden-md.hidden-sm,td.hidden-md.hidden-sm{display:none !important;}}
@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important;}tr.hidden-md{display:none !important;} th.hidden-md,td.hidden-md{display:none !important;}}@media (min-width:1200px){.hidden-md.hidden-lg{display:none !important;}tr.hidden-md.hidden-lg{display:none !important;} th.hidden-md.hidden-lg,td.hidden-md.hidden-lg{display:none !important;}}
.hidden-lg{display:block !important;}tr.hidden-lg{display:table-row !important;}
th.hidden-lg,td.hidden-lg{display:table-cell !important;}
@media (max-width:767px){.hidden-lg.hidden-xs{display:none !important;}tr.hidden-lg.hidden-xs{display:none !important;} th.hidden-lg.hidden-xs,td.hidden-lg.hidden-xs{display:none !important;}}
@media (min-width:768px) and (max-width:991px){.hidden-lg.hidden-sm{display:none !important;}tr.hidden-lg.hidden-sm{display:none !important;} th.hidden-lg.hidden-sm,td.hidden-lg.hidden-sm{display:none !important;}}
@media (min-width:992px) and (max-width:1199px){.hidden-lg.hidden-md{display:none !important;}tr.hidden-lg.hidden-md{display:none !important;} th.hidden-lg.hidden-md,td.hidden-lg.hidden-md{display:none !important;}}
@media (min-width:1200px){.hidden-lg{display:none !important;}tr.hidden-lg{display:none !important;} th.hidden-lg,td.hidden-lg{display:none !important;}}
.visible-print{display:none !important;}tr.visible-print{display:none !important;}
th.visible-print,td.visible-print{display:none !important;}
@media print{.visible-print{display:block !important;}tr.visible-print{display:table-row !important;} th.visible-print,td.visible-print{display:table-cell !important;} .hidden-print{display:none !important;}tr.hidden-print{display:none !important;} th.hidden-print,td.hidden-print{display:none !important;}}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;transition:opacity 0.15s linear;}.fade.in{opacity:1;}
.collapse{display:none;}.collapse.in{display:block;}
.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height 0.35s ease;transition:height 0.35s ease;}
d3.chart = d3.chart || {};

/**
 * Dependency wheel chart for d3.js
 *
 * Usage:
 * var chart = d3.chart.dependencyWheel();
 * d3.select('#chart_placeholder')
 *   .datum({
 *      packageNames: [the name of the packages in the matrix],
 *      matrix: [your dependency matrix]
 *   })
 *   .call(chart);
 *
 * // Data must be a matrix of dependencies. The first item must be the main package.
 * // For instance, if the main package depends on packages A and B, and package A
 * // also depends on package B, you should build the data as follows:
 *
 * var data = {
 *   packageNames: ['Main', 'A', 'B'],
 *   matrix: [[0, 1, 1], // Main depends on A and B
 *            [0, 0, 1], // A depends on B
 *            [0, 0, 0]] // B doesn't depend on A or Main
 * };
 *
 * // You can customize the chart width, margin (used to display package names),
 * // and padding (separating groups in the wheel)
 * var chart = d3.chart.dependencyWheel().width(700).margin(150).padding(.02);
 *
 * @author François Zaninotto
 * @license MIT
 * @see https://github.com/fzaninotto/DependencyWheel for complete source and license
 */
d3.chart.dependencyWheel = function(options) {

  var width = 700;
  var margin = 150;
  var padding = 0.02;

  function chart(selection) {
    selection.each(function(data) {

      var matrix = data.matrix;
      var packageNames = data.packageNames;
      var radius = width / 2 - margin;

      // create the layout
      var chord = d3.chord()
        .padAngle(padding)
        .sortSubgroups(d3.descending);

      // Select the svg element, if it exists.
      var svg = d3.select(this).selectAll("svg").data([data]);

      // Otherwise, create the skeletal chart.
      var gEnter = svg.enter().append("svg:svg")
        .attr("width", width)
        .attr("height", width)
        .attr("class", "dependencyWheel")
      .append("g")
        .attr("transform", "translate(" + (width / 2) + "," + (width / 2) + ")");

      var arc = d3.arc()
        .innerRadius(radius)
        .outerRadius(radius + 20);

      var fill = function(d) {
        if (d.index === 0) return '#ccc';
        return "hsl(" + parseInt(((packageNames[d.index][0].charCodeAt() - 97) / 26) * 360, 10) + ",90%,70%)";
      };

      // Returns an event handler for fading a given chord group.
      var fade = function(opacity) {
        return function(g, i) {
          gEnter.selectAll(".chord")
              .filter(function(d) {
                return d.source.index != i && d.target.index != i;
              })
            .transition()
              .style("opacity", opacity);
          var groups = [];
          gEnter.selectAll(".chord")
              .filter(function(d) {
                if (d.source.index == i) {
                  groups.push(d.target.index);
                }
                if (d.target.index == i) {
                  groups.push(d.source.index);
                }
              });
          groups.push(i);
          var length = groups.length;
          gEnter.selectAll('.group')
              .filter(function(d) {
                for (var i = 0; i < length; i++) {
                  if(groups[i] == d.index) return false;
                }
                return true;
              })
              .transition()
                .style("opacity", opacity);
        };
      };

      var chordResult = chord(matrix);

      var rootGroup = chordResult.groups[0];
      var rotation = - (rootGroup.endAngle - rootGroup.startAngle) / 2 * (180 / Math.PI);

      var g = gEnter.selectAll("g.group")
        .data(chordResult.groups)
        .enter().append("svg:g")
        .attr("class", "group")
        .attr("transform", function(d) {
          return "rotate(" + rotation + ")";
        });

      g.append("svg:path")
        .style("fill", fill)
        .style("stroke", fill)
        .attr("d", arc)
        .style("cursor", "pointer")
        .on("mouseover", fade(0.1))
        .on("mouseout", fade(1));

      g.append("svg:text")
        .each(function(d) { d.angle = (d.startAngle + d.endAngle) / 2; })
        .attr("dy", ".35em")
        .attr("text-anchor", function(d) { return d.angle > Math.PI ? "end" : null; })
        .attr("transform", function(d) {
          return "rotate(" + (d.angle * 180 / Math.PI - 90) + ")" +
            "translate(" + (radius + 26) + ")" +
            (d.angle > Math.PI ? "rotate(180)" : "");
        })
        .style("cursor", "pointer")
        .text(function(d) { return packageNames[d.index]; })
        .on("mouseover", fade(0.1))
        .on("mouseout", fade(1));

      gEnter.selectAll("path.chord")
          .data(chordResult)
          .enter().append("svg:path")
          .attr("class", "chord")
          .style("stroke", function(d) { return d3.rgb(fill(d.source)).darker(); })
          .style("fill", function(d) { return fill(d.source); })
          .attr("d", d3.ribbon().radius(radius))
          .attr("transform", function(d) {
            return "rotate(" + rotation + ")";
          })
          .style("opacity", 1);
    });
  }

  chart.width = function(value) {
    if (!arguments.length) return width;
    width = value;
    return chart;
  };

  chart.margin = function(value) {
    if (!arguments.length) return margin;
    margin = value;
    return chart;
  };

  chart.padding = function(value) {
    if (!arguments.length) return padding;
    padding = value;
    return chart;
  };

  return chart;
};
// https://d3js.org Version 4.5.0. Copyright 2017 Mike Bostock.
(function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n(t.d3=t.d3||{})})(this,function(t){"use strict";function n(t){return function(n,e){return Ns(t(n),e)}}function e(t,n,e){var r=Math.abs(n-t)/Math.max(0,e),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),o=r/i;return o>=Ys?i*=10:o>=Bs?i*=5:o>=js&&(i*=2),n<t?-i:i}function r(t){return t.length}function i(t,n,e){var r=t(e);return"translate("+(isFinite(r)?r:n(e))+",0)"}function o(t,n,e){var r=t(e);return"translate(0,"+(isFinite(r)?r:n(e))+")"}function u(t){var n=t.bandwidth()/2;return t.round()&&(n=Math.round(n)),function(e){return t(e)+n}}function a(){return!this.__axis}function c(t,n){function e(e){var p,d=null==c?n.ticks?n.ticks.apply(n,r):n.domain():c,v=null==s?n.tickFormat?n.tickFormat.apply(n,r):ff:s,_=Math.max(f,0)+h,y=t===lf||t===pf?i:o,g=n.range(),m=g[0]+.5,x=g[g.length-1]+.5,b=(n.bandwidth?u:ff)(n.copy()),w=e.selection?e.selection():e,M=w.selectAll(".domain").data([null]),T=w.selectAll(".tick").data(d,n).order(),N=T.exit(),k=T.enter().append("g").attr("class","tick"),S=T.select("line"),E=T.select("text"),A=t===lf||t===df?-1:1,C=t===df||t===hf?(p="x","y"):(p="y","x");M=M.merge(M.enter().insert("path",".tick").attr("class","domain").attr("stroke","#000")),T=T.merge(k),S=S.merge(k.append("line").attr("stroke","#000").attr(p+"2",A*f).attr(C+"1",.5).attr(C+"2",.5)),E=E.merge(k.append("text").attr("fill","#000").attr(p,A*_).attr(C,.5).attr("dy",t===lf?"0em":t===pf?"0.71em":"0.32em")),e!==w&&(M=M.transition(e),T=T.transition(e),S=S.transition(e),E=E.transition(e),N=N.transition(e).attr("opacity",vf).attr("transform",function(t){return y(b,this.parentNode.__axis||b,t)}),k.attr("opacity",vf).attr("transform",function(t){return y(this.parentNode.__axis||b,b,t)})),N.remove(),M.attr("d",t===df||t==hf?"M"+A*l+","+m+"H0.5V"+x+"H"+A*l:"M"+m+","+A*l+"V0.5H"+x+"V"+A*l),T.attr("opacity",1).attr("transform",function(t){return y(b,b,t)}),S.attr(p+"2",A*f),E.attr(p,A*_).text(v),w.filter(a).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===hf?"start":t===df?"end":"middle"),w.each(function(){this.__axis=b})}var r=[],c=null,s=null,f=6,l=6,h=3;return e.scale=function(t){return arguments.length?(n=t,e):n},e.ticks=function(){return r=sf.call(arguments),e},e.tickArguments=function(t){return arguments.length?(r=null==t?[]:sf.call(t),e):r.slice()},e.tickValues=function(t){return arguments.length?(c=null==t?null:sf.call(t),e):c&&c.slice()},e.tickFormat=function(t){return arguments.length?(s=t,e):s},e.tickSize=function(t){return arguments.length?(f=l=+t,e):f},e.tickSizeInner=function(t){return arguments.length?(f=+t,e):f},e.tickSizeOuter=function(t){return arguments.length?(l=+t,e):l},e.tickPadding=function(t){return arguments.length?(h=+t,e):h},e}function s(t){return c(lf,t)}function f(t){return c(hf,t)}function l(t){return c(pf,t)}function h(t){return c(df,t)}function p(){for(var t,n=0,e=arguments.length,r={};n<e;++n){if(!(t=arguments[n]+"")||t in r)throw new Error("illegal type: "+t);r[t]=[]}return new d(r)}function d(t){this._=t}function v(t,n){return t.trim().split(/^|\s+/).map(function(t){var e="",r=t.indexOf(".");if(r>=0&&(e=t.slice(r+1),t=t.slice(0,r)),t&&!n.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}})}function _(t,n){for(var e,r=0,i=t.length;r<i;++r)if((e=t[r]).name===n)return e.value}function y(t,n,e){for(var r=0,i=t.length;r<i;++r)if(t[r].name===n){t[r]=_f,t=t.slice(0,r).concat(t.slice(r+1));break}return null!=e&&t.push({name:n,value:e}),t}function g(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===yf&&n.documentElement.namespaceURI===yf?n.createElement(t):n.createElementNS(e,t)}}function m(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function x(){return new b}function b(){this._="@"+(++bf).toString(36)}function w(t,n,e){return t=M(t,n,e),function(n){var e=n.relatedTarget;e&&(e===this||8&e.compareDocumentPosition(this))||t.call(this,n)}}function M(n,e,r){return function(i){var o=t.event;t.event=i;try{n.call(this,this.__data__,e,r)}finally{t.event=o}}}function T(t){return t.trim().split(/^|\s+/).map(function(t){var n="",e=t.indexOf(".");return e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),{type:t,name:n}})}function N(t){return function(){var n=this.__on;if(n){for(var e,r=0,i=-1,o=n.length;r<o;++r)e=n[r],t.type&&e.type!==t.type||e.name!==t.name?n[++i]=e:this.removeEventListener(e.type,e.listener,e.capture);++i?n.length=i:delete this.__on}}}function k(t,n,e){var r=kf.hasOwnProperty(t.type)?w:M;return function(i,o,u){var a,c=this.__on,s=r(n,o,u);if(c)for(var f=0,l=c.length;f<l;++f)if((a=c[f]).type===t.type&&a.name===t.name)return this.removeEventListener(a.type,a.listener,a.capture),this.addEventListener(a.type,a.listener=s,a.capture=e),void(a.value=n);this.addEventListener(t.type,s,e),a={type:t.type,name:t.name,value:n,listener:s,capture:e},c?c.push(a):this.__on=[a]}}function S(n,e,r,i){var o=t.event;n.sourceEvent=t.event,t.event=n;try{return e.apply(r,i)}finally{t.event=o}}function E(){}function A(){return[]}function C(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}function z(t,n,e,r,i,o){for(var u,a=0,c=n.length,s=o.length;a<s;++a)(u=n[a])?(u.__data__=o[a],r[a]=u):e[a]=new C(t,o[a]);for(;a<c;++a)(u=n[a])&&(i[a]=u)}function P(t,n,e,r,i,o,u){var a,c,s,f={},l=n.length,h=o.length,p=new Array(l);for(a=0;a<l;++a)(c=n[a])&&(p[a]=s=If+u.call(c,c.__data__,a,n),s in f?i[a]=c:f[s]=c);for(a=0;a<h;++a)s=If+u.call(t,o[a],a,o),(c=f[s])?(r[a]=c,c.__data__=o[a],f[s]=null):e[a]=new C(t,o[a]);for(a=0;a<l;++a)(c=n[a])&&f[p[a]]===c&&(i[a]=c)}function R(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}function q(t){return function(){this.removeAttribute(t)}}function L(t){return function(){this.removeAttributeNS(t.space,t.local)}}function U(t,n){return function(){this.setAttribute(t,n)}}function D(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function O(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}}function F(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}function I(t){return function(){this.style.removeProperty(t)}}function Y(t,n,e){return function(){this.style.setProperty(t,n,e)}}function B(t,n,e){return function(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}function j(t){return function(){delete this[t]}}function H(t,n){return function(){this[t]=n}}function X(t,n){return function(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}}function V(t){return t.trim().split(/^|\s+/)}function W(t){return t.classList||new $(t)}function $(t){this._node=t,this._names=V(t.getAttribute("class")||"")}function Z(t,n){for(var e=W(t),r=-1,i=n.length;++r<i;)e.add(n[r])}function G(t,n){for(var e=W(t),r=-1,i=n.length;++r<i;)e.remove(n[r])}function J(t){return function(){Z(this,t)}}function Q(t){return function(){G(this,t)}}function K(t,n){return function(){(n.apply(this,arguments)?Z:G)(this,t)}}function tt(){this.textContent=""}function nt(t){return function(){this.textContent=t}}function et(t){return function(){var n=t.apply(this,arguments);this.textContent=null==n?"":n}}function rt(){this.innerHTML=""}function it(t){return function(){this.innerHTML=t}}function ot(t){return function(){var n=t.apply(this,arguments);this.innerHTML=null==n?"":n}}function ut(){this.nextSibling&&this.parentNode.appendChild(this)}function at(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function ct(){return null}function st(){var t=this.parentNode;t&&t.removeChild(this)}function ft(t,n,e){var r=Kf(t),i=r.CustomEvent;i?i=new i(n,e):(i=r.document.createEvent("Event"),e?(i.initEvent(n,e.bubbles,e.cancelable),i.detail=e.detail):i.initEvent(n,!1,!1)),t.dispatchEvent(i)}function lt(t,n){return function(){return ft(this,t,n)}}function ht(t,n){return function(){return ft(this,t,n.apply(this,arguments))}}function pt(t,n){this._groups=t,this._parents=n}function dt(){return new pt([[document.documentElement]],hl)}function vt(){t.event.stopImmediatePropagation()}function _t(t,n){var e=t.document.documentElement,r=pl(t).on("dragstart.drag",null);n&&(r.on("click.drag",yl,!0),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in e?r.on("selectstart.drag",null):(e.style.MozUserSelect=e.__noselect,delete e.__noselect)}function yt(t,n,e,r,i,o,u,a,c,s){this.target=t,this.type=n,this.subject=e,this.identifier=r,this.active=i,this.x=o,this.y=u,this.dx=a,this.dy=c,this._=s}function gt(){return!t.event.button}function mt(){return this.parentNode}function xt(n){return null==n?{x:t.event.x,y:t.event.y}:n}function bt(t,n){var e=Object.create(t.prototype);for(var r in n)e[r]=n[r];return e}function wt(){}function Mt(t){var n;return t=(t+"").trim().toLowerCase(),(n=Sl.exec(t))?(n=parseInt(n[1],16),new Et(n>>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1)):(n=El.exec(t))?Tt(parseInt(n[1],16)):(n=Al.exec(t))?new Et(n[1],n[2],n[3],1):(n=Cl.exec(t))?new Et(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=zl.exec(t))?Nt(n[1],n[2],n[3],n[4]):(n=Pl.exec(t))?Nt(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=Rl.exec(t))?At(n[1],n[2]/100,n[3]/100,1):(n=ql.exec(t))?At(n[1],n[2]/100,n[3]/100,n[4]):Ll.hasOwnProperty(t)?Tt(Ll[t]):"transparent"===t?new Et(NaN,NaN,NaN,0):null}function Tt(t){return new Et(t>>16&255,t>>8&255,255&t,1)}function Nt(t,n,e,r){return r<=0&&(t=n=e=NaN),new Et(t,n,e,r)}function kt(t){return t instanceof wt||(t=Mt(t)),t?(t=t.rgb(),new Et(t.r,t.g,t.b,t.opacity)):new Et}function St(t,n,e,r){return 1===arguments.length?kt(t):new Et(t,n,e,null==r?1:r)}function Et(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}function At(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new Pt(t,n,e,r)}function Ct(t){if(t instanceof Pt)return new Pt(t.h,t.s,t.l,t.opacity);if(t instanceof wt||(t=Mt(t)),!t)return new Pt;if(t instanceof Pt)return t;t=t.rgb();var n=t.r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),o=Math.max(n,e,r),u=NaN,a=o-i,c=(o+i)/2;return a?(u=n===o?(e-r)/a+6*(e<r):e===o?(r-n)/a+2:(n-e)/a+4,a/=c<.5?o+i:2-o-i,u*=60):a=c>0&&c<1?0:u,new Pt(u,a,c,t.opacity)}function zt(t,n,e,r){return 1===arguments.length?Ct(t):new Pt(t,n,e,null==r?1:r)}function Pt(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function Rt(t,n,e){return 255*(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)}function qt(t){if(t instanceof Ut)return new Ut(t.l,t.a,t.b,t.opacity);if(t instanceof jt){var n=t.h*Ul;return new Ut(t.l,Math.cos(n)*t.c,Math.sin(n)*t.c,t.opacity)}t instanceof Et||(t=kt(t));var e=It(t.r),r=It(t.g),i=It(t.b),o=Dt((.4124564*e+.3575761*r+.1804375*i)/Fl),u=Dt((.2126729*e+.7151522*r+.072175*i)/Il),a=Dt((.0193339*e+.119192*r+.9503041*i)/Yl);return new Ut(116*u-16,500*(o-u),200*(u-a),t.opacity)}function Lt(t,n,e,r){return 1===arguments.length?qt(t):new Ut(t,n,e,null==r?1:r)}function Ut(t,n,e,r){this.l=+t,this.a=+n,this.b=+e,this.opacity=+r}function Dt(t){return t>Xl?Math.pow(t,1/3):t/Hl+Bl}function Ot(t){return t>jl?t*t*t:Hl*(t-Bl)}function Ft(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function It(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Yt(t){if(t instanceof jt)return new jt(t.h,t.c,t.l,t.opacity);t instanceof Ut||(t=qt(t));var n=Math.atan2(t.b,t.a)*Dl;return new jt(n<0?n+360:n,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function Bt(t,n,e,r){return 1===arguments.length?Yt(t):new jt(t,n,e,null==r?1:r)}function jt(t,n,e,r){this.h=+t,this.c=+n,this.l=+e,this.opacity=+r}function Ht(t){if(t instanceof Vt)return new Vt(t.h,t.s,t.l,t.opacity);t instanceof Et||(t=kt(t));var n=t.r/255,e=t.g/255,r=t.b/255,i=(Kl*r+Jl*n-Ql*e)/(Kl+Jl-Ql),o=r-i,u=(Gl*(e-i)-$l*o)/Zl,a=Math.sqrt(u*u+o*o)/(Gl*i*(1-i)),c=a?Math.atan2(u,o)*Dl-120:NaN;return new Vt(c<0?c+360:c,a,i,t.opacity)}function Xt(t,n,e,r){return 1===arguments.length?Ht(t):new Vt(t,n,e,null==r?1:r)}function Vt(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function Wt(t,n,e,r,i){var o=t*t,u=o*t;return((1-3*t+3*o-u)*n+(4-6*o+3*u)*e+(1+3*t+3*o-3*u)*r+u*i)/6}function $t(t,n){return function(e){return t+e*n}}function Zt(t,n,e){return t=Math.pow(t,e),n=Math.pow(n,e)-t,e=1/e,function(r){return Math.pow(t+r*n,e)}}function Gt(t,n){var e=n-t;return e?$t(t,e>180||e<-180?e-360*Math.round(e/360):e):ch(isNaN(t)?n:t)}function Jt(t){return 1===(t=+t)?Qt:function(n,e){return e-n?Zt(n,e,t):ch(isNaN(n)?e:n)}}function Qt(t,n){var e=n-t;return e?$t(t,e):ch(isNaN(t)?n:t)}function Kt(t){return function(n){var e,r,i=n.length,o=new Array(i),u=new Array(i),a=new Array(i);for(e=0;e<i;++e)r=St(n[e]),o[e]=r.r||0,u[e]=r.g||0,a[e]=r.b||0;return o=t(o),u=t(u),a=t(a),r.opacity=1,function(t){return r.r=o(t),r.g=u(t),r.b=a(t),r+""}}}function tn(t){return function(){return t}}function nn(t){return function(n){return t(n)+""}}function en(t){return"none"===t?wh:(th||(th=document.createElement("DIV"),nh=document.documentElement,eh=document.defaultView),th.style.transform=t,t=eh.getComputedStyle(nh.appendChild(th),null).getPropertyValue("transform"),nh.removeChild(th),t=t.slice(7,-1).split(","),Mh(+t[0],+t[1],+t[2],+t[3],+t[4],+t[5]))}function rn(t){return null==t?wh:(rh||(rh=document.createElementNS("http://www.w3.org/2000/svg","g")),rh.setAttribute("transform",t),(t=rh.transform.baseVal.consolidate())?(t=t.matrix,Mh(t.a,t.b,t.c,t.d,t.e,t.f)):wh)}function on(t,n,e,r){function i(t){return t.length?t.pop()+" ":""}function o(t,r,i,o,u,a){if(t!==i||r!==o){var c=u.push("translate(",null,n,null,e);a.push({i:c-4,x:dh(t,i)},{i:c-2,x:dh(r,o)})}else(i||o)&&u.push("translate("+i+n+o+e)}function u(t,n,e,o){t!==n?(t-n>180?n+=360:n-t>180&&(t+=360),o.push({i:e.push(i(e)+"rotate(",null,r)-2,x:dh(t,n)})):n&&e.push(i(e)+"rotate("+n+r)}function a(t,n,e,o){t!==n?o.push({i:e.push(i(e)+"skewX(",null,r)-2,x:dh(t,n)}):n&&e.push(i(e)+"skewX("+n+r)}function c(t,n,e,r,o,u){if(t!==e||n!==r){var a=o.push(i(o)+"scale(",null,",",null,")");u.push({i:a-4,x:dh(t,e)},{i:a-2,x:dh(n,r)})}else 1===e&&1===r||o.push(i(o)+"scale("+e+","+r+")")}return function(n,e){var r=[],i=[];return n=t(n),e=t(e),o(n.translateX,n.translateY,e.translateX,e.translateY,r,i),u(n.rotate,e.rotate,r,i),a(n.skewX,e.skewX,r,i),c(n.scaleX,n.scaleY,e.scaleX,e.scaleY,r,i),n=e=null,function(t){for(var n,e=-1,o=i.length;++e<o;)r[(n=i[e]).i]=n.x(t);return r.join("")}}}function un(t){return((t=Math.exp(t))+1/t)/2}function an(t){return((t=Math.exp(t))-1/t)/2}function cn(t){return((t=Math.exp(2*t))-1)/(t+1)}function sn(t){return function(n,e){var r=t((n=zt(n)).h,(e=zt(e)).h),i=Qt(n.s,e.s),o=Qt(n.l,e.l),u=Qt(n.opacity,e.opacity);return function(t){return n.h=r(t),n.s=i(t),n.l=o(t),n.opacity=u(t),n+""}}}function fn(t,n){var e=Qt((t=Lt(t)).l,(n=Lt(n)).l),r=Qt(t.a,n.a),i=Qt(t.b,n.b),o=Qt(t.opacity,n.opacity);return function(n){return t.l=e(n),t.a=r(n),t.b=i(n),t.opacity=o(n),t+""}}function ln(t){return function(n,e){var r=t((n=Bt(n)).h,(e=Bt(e)).h),i=Qt(n.c,e.c),o=Qt(n.l,e.l),u=Qt(n.opacity,e.opacity);return function(t){return n.h=r(t),n.c=i(t),n.l=o(t),n.opacity=u(t),n+""}}}function hn(t){return function n(e){function r(n,r){var i=t((n=Xt(n)).h,(r=Xt(r)).h),o=Qt(n.s,r.s),u=Qt(n.l,r.l),a=Qt(n.opacity,r.opacity);return function(t){return n.h=i(t),n.s=o(t),n.l=u(Math.pow(t,e)),n.opacity=a(t),n+""}}return e=+e,r.gamma=n,r}(1)}function pn(){return jh||(Vh(dn),jh=Xh.now()+Hh)}function dn(){jh=0}function vn(){this._call=this._time=this._next=null}function _n(t,n,e){var r=new vn;return r.restart(t,n,e),r}function yn(){pn(),++Oh;for(var t,n=ih;n;)(t=jh-n._time)>=0&&n._call.call(null,t),n=n._next;--Oh}function gn(){jh=(Bh=Xh.now())+Hh,Oh=Fh=0;try{yn()}finally{Oh=0,xn(),jh=0}}function mn(){var t=Xh.now(),n=t-Bh;n>Yh&&(Hh-=n,Bh=t)}function xn(){for(var t,n,e=ih,r=1/0;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:ih=n);oh=t,bn(r)}function bn(t){if(!Oh){Fh&&(Fh=clearTimeout(Fh));var n=t-jh;n>24?(t<1/0&&(Fh=setTimeout(gn,n)),Ih&&(Ih=clearInterval(Ih))):(Ih||(Bh=jh,Ih=setInterval(mn,Yh)),Oh=1,Vh(gn))}}function wn(t,n){var e=t.__transition;if(!e||!(e=e[n])||e.state>Jh)throw new Error("too late");return e}function Mn(t,n){var e=t.__transition;if(!e||!(e=e[n])||e.state>Kh)throw new Error("too late");return e}function Tn(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error("too late");return e}function Nn(t,n,e){function r(t){e.state=Qh,e.timer.restart(i,e.delay,e.time),e.delay<=t&&i(t-e.delay)}function i(r){var s,f,l,h;if(e.state!==Qh)return u();for(s in c)if(h=c[s],h.name===e.name){if(h.state===tp)return Wh(i);h.state===np?(h.state=rp,h.timer.stop(),h.on.call("interrupt",t,t.__data__,h.index,h.group),delete c[s]):+s<n&&(h.state=rp,h.timer.stop(),delete c[s])}if(Wh(function(){e.state===tp&&(e.state=np,e.timer.restart(o,e.delay,e.time),o(r))}),e.state=Kh,e.on.call("start",t,t.__data__,e.index,e.group),e.state===Kh){for(e.state=tp,a=new Array(l=e.tween.length),s=0,f=-1;s<l;++s)(h=e.tween[s].value.call(t,t.__data__,e.index,e.group))&&(a[++f]=h);a.length=f+1}}function o(n){for(var r=n<e.duration?e.ease.call(null,n/e.duration):(e.timer.restart(u),e.state=ep,1),i=-1,o=a.length;++i<o;)a[i].call(null,r);e.state===ep&&(e.on.call("end",t,t.__data__,e.index,e.group),u())}function u(){e.state=rp,e.timer.stop(),delete c[n];for(var r in c)return;delete t.__transition}var a,c=t.__transition;c[n]=e,e.timer=_n(r,0,e.time)}function kn(t,n){var e,r;return function(){var i=Mn(this,t),o=i.tween;if(o!==e){r=e=o;for(var u=0,a=r.length;u<a;++u)if(r[u].name===n){r=r.slice(),r.splice(u,1);break}}i.tween=r}}function Sn(t,n,e){var r,i;if("function"!=typeof e)throw new Error;return function(){var o=Mn(this,t),u=o.tween;if(u!==r){i=(r=u).slice();for(var a={name:n,value:e},c=0,s=i.length;c<s;++c)if(i[c].name===n){i[c]=a;break}c===s&&i.push(a)}o.tween=i}}function En(t,n,e){var r=t._id;return t.each(function(){var t=Mn(this,r);(t.value||(t.value={}))[n]=e.apply(this,arguments)}),function(t){return Tn(t,r).value[n]}}function An(t){return function(){this.removeAttribute(t)}}function Cn(t){return function(){this.removeAttributeNS(t.space,t.local)}}function zn(t,n,e){var r,i;return function(){var o=this.getAttribute(t);return o===e?null:o===r?i:i=n(r=o,e)}}function Pn(t,n,e){var r,i;return function(){var o=this.getAttributeNS(t.space,t.local);return o===e?null:o===r?i:i=n(r=o,e)}}function Rn(t,n,e){var r,i,o;return function(){var u,a=e(this);return null==a?void this.removeAttribute(t):(u=this.getAttribute(t),u===a?null:u===r&&a===i?o:o=n(r=u,i=a))}}function qn(t,n,e){var r,i,o;return function(){var u,a=e(this);return null==a?void this.removeAttributeNS(t.space,t.local):(u=this.getAttributeNS(t.space,t.local),u===a?null:u===r&&a===i?o:o=n(r=u,i=a))}}function Ln(t,n){function e(){var e=this,r=n.apply(e,arguments);return r&&function(n){e.setAttributeNS(t.space,t.local,r(n))}}return e._value=n,e}function Un(t,n){function e(){var e=this,r=n.apply(e,arguments);return r&&function(n){e.setAttribute(t,r(n))}}return e._value=n,e}function Dn(t,n){return function(){wn(this,t).delay=+n.apply(this,arguments)}}function On(t,n){return n=+n,function(){wn(this,t).delay=n}}function Fn(t,n){return function(){Mn(this,t).duration=+n.apply(this,arguments)}}function In(t,n){return n=+n,function(){Mn(this,t).duration=n}}function Yn(t,n){if("function"!=typeof n)throw new Error;return function(){Mn(this,t).ease=n}}function Bn(t){return(t+"").trim().split(/^|\s+/).every(function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||"start"===t})}function jn(t,n,e){var r,i,o=Bn(n)?wn:Mn;return function(){var u=o(this,t),a=u.on;a!==r&&(i=(r=a).copy()).on(n,e),u.on=i}}function Hn(t){return function(){var n=this.parentNode;for(var e in this.__transition)if(+e!==t)return;n&&n.removeChild(this)}}function Xn(t,n){var e,r,i;return function(){var o=Kf(this).getComputedStyle(this,null),u=o.getPropertyValue(t),a=(this.style.removeProperty(t),o.getPropertyValue(t));return u===a?null:u===e&&a===r?i:i=n(e=u,r=a)}}function Vn(t){return function(){this.style.removeProperty(t)}}function Wn(t,n,e){var r,i;return function(){var o=Kf(this).getComputedStyle(this,null).getPropertyValue(t);return o===e?null:o===r?i:i=n(r=o,e)}}function $n(t,n,e){var r,i,o;return function(){var u=Kf(this).getComputedStyle(this,null),a=u.getPropertyValue(t),c=e(this);return null==c&&(this.style.removeProperty(t),c=u.getPropertyValue(t)),a===c?null:a===r&&c===i?o:o=n(r=a,i=c)}}function Zn(t,n,e){function r(){var r=this,i=n.apply(r,arguments);return i&&function(n){r.style.setProperty(t,i(n),e)}}return r._value=n,r}function Gn(t){return function(){this.textContent=t}}function Jn(t){return function(){var n=t(this);this.textContent=null==n?"":n}}function Qn(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function Kn(t){return dt().transition(t)}function te(){return++kp}function ne(t){return+t}function ee(t){return t*t}function re(t){return t*(2-t)}function ie(t){return((t*=2)<=1?t*t:--t*(2-t)+1)/2}function oe(t){return t*t*t}function ue(t){return--t*t*t+1}function ae(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}function ce(t){return 1-Math.cos(t*Rp)}function se(t){return Math.sin(t*Rp)}function fe(t){return(1-Math.cos(Pp*t))/2}function le(t){return Math.pow(2,10*t-10)}function he(t){return 1-Math.pow(2,-10*t)}function pe(t){return((t*=2)<=1?Math.pow(2,10*t-10):2-Math.pow(2,10-10*t))/2}function de(t){return 1-Math.sqrt(1-t*t)}function ve(t){return Math.sqrt(1- --t*t)}function _e(t){return((t*=2)<=1?1-Math.sqrt(1-t*t):Math.sqrt(1-(t-=2)*t)+1)/2}function ye(t){return 1-ge(1-t)}function ge(t){return(t=+t)<qp?jp*t*t:t<Up?jp*(t-=Lp)*t+Dp:t<Fp?jp*(t-=Op)*t+Ip:jp*(t-=Yp)*t+Bp}function me(t){return((t*=2)<=1?1-ge(1-t):ge(t-1)+1)/2}function xe(t,n){for(var e;!(e=t.__transition)||!(e=e[n]);)if(!(t=t.parentNode))return td.time=pn(),td;return e}function be(){t.event.stopImmediatePropagation()}function we(t){return{type:t}}function Me(){return!t.event.button}function Te(){var t=this.ownerSVGElement||this;return[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]}function Ne(t){for(;!t.__brush;)if(!(t=t.parentNode))return;return t.__brush}function ke(t){return t[0][0]===t[1][0]||t[0][1]===t[1][1]}function Se(t){var n=t.__brush;return n?n.dim.output(n.selection):null}function Ee(){return Ce(ld)}function Ae(){return Ce(hd)}function Ce(n){function e(t){var e=t.property("__brush",a).selectAll(".overlay").data([we("overlay")]);e.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",dd.overlay).merge(e).each(function(){var t=Ne(this).extent;pl(this).attr("x",t[0][0]).attr("y",t[0][1]).attr("width",t[1][0]-t[0][0]).attr("height",t[1][1]-t[0][1])}),t.selectAll(".selection").data([we("selection")]).enter().append("rect").attr("class","selection").attr("cursor",dd.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var i=t.selectAll(".handle").data(n.handles,function(t){return t.type});i.exit().remove(),i.enter().append("rect").attr("class",function(t){return"handle handle--"+t.type}).attr("cursor",function(t){return dd[t.type]}),t.each(r).attr("fill","none").attr("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush touchstart.brush",u)}function r(){var t=pl(this),n=Ne(this).selection;n?(t.selectAll(".selection").style("display",null).attr("x",n[0][0]).attr("y",n[0][1]).attr("width",n[1][0]-n[0][0]).attr("height",n[1][1]-n[0][1]),t.selectAll(".handle").style("display",null).attr("x",function(t){return"e"===t.type[t.type.length-1]?n[1][0]-h/2:n[0][0]-h/2}).attr("y",function(t){return"s"===t.type[0]?n[1][1]-h/2:n[0][1]-h/2}).attr("width",function(t){return"n"===t.type||"s"===t.type?n[1][0]-n[0][0]+h:h}).attr("height",function(t){return"e"===t.type||"w"===t.type?n[1][1]-n[0][1]+h:h})):t.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function i(t,n){return t.__brush.emitter||new o(t,n)}function o(t,n){this.that=t,this.args=n,this.state=t.__brush,this.active=0}function u(){function e(){var t=zf(T);!U||w||M||(Math.abs(t[0]-O[0])>Math.abs(t[1]-O[1])?M=!0:w=!0),O=t,b=!0,ud(),o()}function o(){var t;switch(m=O[0]-D[0],x=O[1]-D[1],k){case cd:case ad:S&&(m=Math.max(P-l,Math.min(q-v,m)),h=l+m,_=v+m),E&&(x=Math.max(R-p,Math.min(L-y,x)),d=p+x,g=y+x);break;case sd:S<0?(m=Math.max(P-l,Math.min(q-l,m)),h=l+m,_=v):S>0&&(m=Math.max(P-v,Math.min(q-v,m)),h=l,_=v+m),E<0?(x=Math.max(R-p,Math.min(L-p,x)),d=p+x,g=y):E>0&&(x=Math.max(R-y,Math.min(L-y,x)),d=p,g=y+x);break;case fd:S&&(h=Math.max(P,Math.min(q,l-m*S)),_=Math.max(P,Math.min(q,v+m*S))),E&&(d=Math.max(R,Math.min(L,p-x*E)),g=Math.max(R,Math.min(L,y+x*E)))}_<h&&(S*=-1,t=l,l=v,v=t,t=h,h=_,_=t,N in vd&&Y.attr("cursor",dd[N=vd[N]])),g<d&&(E*=-1,t=p,p=y,y=t,t=d,d=g,g=t,N in _d&&Y.attr("cursor",dd[N=_d[N]])),A.selection&&(z=A.selection),w&&(h=z[0][0],_=z[1][0]),M&&(d=z[0][1],g=z[1][1]),z[0][0]===h&&z[0][1]===d&&z[1][0]===_&&z[1][1]===g||(A.selection=[[h,d],[_,g]],r.call(T),F.brush())}function u(){if(be(),t.event.touches){if(t.event.touches.length)return;c&&clearTimeout(c),c=setTimeout(function(){c=null},500),I.on("touchmove.brush touchend.brush touchcancel.brush",null)}else _t(t.event.view,b),B.on("keydown.brush keyup.brush mousemove.brush mouseup.brush",null);I.attr("pointer-events","all"),Y.attr("cursor",dd.overlay),A.selection&&(z=A.selection),ke(z)&&(A.selection=null,r.call(T)),F.end()}function a(){switch(t.event.keyCode){case 16:U=S&&E;break;case 18:k===sd&&(S&&(v=_-m*S,l=h+m*S),E&&(y=g-x*E,p=d+x*E),k=fd,o());break;case 32:k!==sd&&k!==fd||(S<0?v=_-m:S>0&&(l=h-m),E<0?y=g-x:E>0&&(p=d-x),k=cd,Y.attr("cursor",dd.selection),o());break;default:return}ud()}function s(){switch(t.event.keyCode){case 16:U&&(w=M=U=!1,o());break;case 18:k===fd&&(S<0?v=_:S>0&&(l=h),E<0?y=g:E>0&&(p=d),k=sd,o());break;case 32:k===cd&&(t.event.altKey?(S&&(v=_-m*S,l=h+m*S),E&&(y=g-x*E,p=d+x*E),k=fd):(S<0?v=_:S>0&&(l=h),E<0?y=g:E>0&&(p=d),k=sd),Y.attr("cursor",dd[N]),o());break;default:return}ud()}if(t.event.touches){if(t.event.changedTouches.length<t.event.touches.length)return ud()}else if(c)return;if(f.apply(this,arguments)){var l,h,p,d,v,_,y,g,m,x,b,w,M,T=this,N=t.event.target.__data__.type,k="selection"===(t.event.metaKey?N="overlay":N)?ad:t.event.altKey?fd:sd,S=n===hd?null:yd[N],E=n===ld?null:gd[N],A=Ne(T),C=A.extent,z=A.selection,P=C[0][0],R=C[0][1],q=C[1][0],L=C[1][1],U=S&&E&&t.event.shiftKey,D=zf(T),O=D,F=i(T,arguments).beforestart();"overlay"===N?A.selection=z=[[l=n===hd?P:D[0],p=n===ld?R:D[1]],[v=n===hd?q:l,y=n===ld?L:p]]:(l=z[0][0],p=z[0][1],v=z[1][0],y=z[1][1]),h=l,d=p,_=v,g=y;var I=pl(T).attr("pointer-events","none"),Y=I.selectAll(".overlay").attr("cursor",dd[N]);if(t.event.touches)I.on("touchmove.brush",e,!0).on("touchend.brush touchcancel.brush",u,!0);else{var B=pl(t.event.view).on("keydown.brush",a,!0).on("keyup.brush",s,!0).on("mousemove.brush",e,!0).on("mouseup.brush",u,!0);gl(t.event.view)}be(),op(T),r.call(T),F.start()}}function a(){var t=this.__brush||{selection:null};return t.extent=s.apply(this,arguments),t.dim=n,t}var c,s=Te,f=Me,l=p(e,"start","brush","end"),h=6;return e.move=function(t,e){t.selection?t.on("start.brush",function(){i(this,arguments).beforestart().start()}).on("interrupt.brush end.brush",function(){i(this,arguments).end()}).tween("brush",function(){function t(t){u.selection=1===t&&ke(s)?null:f(t),r.call(o),a.brush()}var o=this,u=o.__brush,a=i(o,arguments),c=u.selection,s=n.input("function"==typeof e?e.apply(this,arguments):e,u.extent),f=mh(c,s);return c&&s?t:t(1)}):t.each(function(){var t=this,o=arguments,u=t.__brush,a=n.input("function"==typeof e?e.apply(t,o):e,u.extent),c=i(t,o).beforestart();op(t),u.selection=null==a||ke(a)?null:a,r.call(t),c.start().brush().end()})},o.prototype={beforestart:function(){return 1===++this.active&&(this.state.emitter=this,this.starting=!0),this},start:function(){return this.starting&&(this.starting=!1,this.emit("start")),this},brush:function(){return this.emit("brush"),this},end:function(){return 0===--this.active&&(delete this.state.emitter,this.emit("end")),this},emit:function(t){S(new od(e,t,n.output(this.state.selection)),l.apply,l,[t,this.that,this.args])}},e.extent=function(t){return arguments.length?(s="function"==typeof t?t:id([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),e):s},e.filter=function(t){return arguments.length?(f="function"==typeof t?t:id(!!t),e):f},e.handleSize=function(t){return arguments.length?(h=+t,e):h},e.on=function(){var t=l.on.apply(l,arguments);return t===l?e:t},e}function ze(t){return function(n,e){return t(n.source.value+n.target.value,e.source.value+e.target.value)}}function Pe(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function Re(){return new Pe}function qe(t){return t.source}function Le(t){return t.target}function Ue(t){return t.radius}function De(t){return t.startAngle}function Oe(t){return t.endAngle}function Fe(){}function Ie(t,n){var e=new Fe;if(t instanceof Fe)t.each(function(t,n){e.set(n,t)});else if(Array.isArray(t)){var r,i=-1,o=t.length;if(null==n)for(;++i<o;)e.set(i,t[i]);else for(;++i<o;)e.set(n(r=t[i],i,t),r)}else if(t)for(var u in t)e.set(u,t[u]);return e}function Ye(){return{}}function Be(t,n,e){t[n]=e}function je(){return Ie()}function He(t,n,e){t.set(n,e)}function Xe(){}function Ve(t,n){var e=new Xe;if(t instanceof Xe)t.each(function(t){e.add(t)});else if(t){var r=-1,i=t.length;if(null==n)for(;++r<i;)e.add(t[r]);else for(;++r<i;)e.add(n(t[r],r,t))}return e}function We(t){return new Function("d","return {"+t.map(function(t,n){return JSON.stringify(t)+": d["+n+"]"}).join(",")+"}")}function $e(t,n){var e=We(t);return function(r,i){return n(e(r),i,t)}}function Ze(t){var n=Object.create(null),e=[];return t.forEach(function(t){for(var r in t)r in n||e.push(n[r]=r)}),e}function Ge(t,n,e,r){if(isNaN(n)||isNaN(e))return t;var i,o,u,a,c,s,f,l,h,p=t._root,d={data:r},v=t._x0,_=t._y0,y=t._x1,g=t._y1;if(!p)return t._root=d,t;for(;p.length;)if((s=n>=(o=(v+y)/2))?v=o:y=o,(f=e>=(u=(_+g)/2))?_=u:g=u,i=p,!(p=p[l=f<<1|s]))return i[l]=d,t;if(a=+t._x.call(null,p.data),c=+t._y.call(null,p.data),n===a&&e===c)return d.next=p,i?i[l]=d:t._root=d,t;do i=i?i[l]=new Array(4):t._root=new Array(4),(s=n>=(o=(v+y)/2))?v=o:y=o,(f=e>=(u=(_+g)/2))?_=u:g=u;while((l=f<<1|s)===(h=(c>=u)<<1|a>=o));return i[h]=p,i[l]=d,t}function Je(t){var n,e,r,i,o=t.length,u=new Array(o),a=new Array(o),c=1/0,s=1/0,f=-(1/0),l=-(1/0);for(e=0;e<o;++e)isNaN(r=+this._x.call(null,n=t[e]))||isNaN(i=+this._y.call(null,n))||(u[e]=r,a[e]=i,r<c&&(c=r),r>f&&(f=r),i<s&&(s=i),i>l&&(l=i));for(f<c&&(c=this._x0,f=this._x1),l<s&&(s=this._y0,l=this._y1),this.cover(c,s).cover(f,l),e=0;e<o;++e)Ge(this,u[e],a[e],t[e]);return this}function Qe(t){for(var n=0,e=t.length;n<e;++n)this.remove(t[n]);return this}function Ke(t){return t[0]}function tr(t){return t[1]}function nr(t,n,e){var r=new er(null==n?Ke:n,null==e?tr:e,NaN,NaN,NaN,NaN);return null==t?r:r.addAll(t)}function er(t,n,e,r,i,o){this._x=t,this._y=n,this._x0=e,this._y0=r,this._x1=i,this._y1=o,this._root=void 0}function rr(t){for(var n={data:t.data},e=n;t=t.next;)e=e.next={data:t.data};return n}function ir(t){return t.x+t.vx}function or(t){return t.y+t.vy}function ur(t){return t.index}function ar(t,n){var e=t.get(n);if(!e)throw new Error("missing: "+n);return e}function cr(t){return t.x}function sr(t){return t.y}function fr(t){if(!(n=Cv.exec(t)))throw new Error("invalid format: "+t);var n,e=n[1]||" ",r=n[2]||">",i=n[3]||"-",o=n[4]||"",u=!!n[5],a=n[6]&&+n[6],c=!!n[7],s=n[8]&&+n[8].slice(1),f=n[9]||"";"n"===f?(c=!0,f="g"):Av[f]||(f=""),(u||"0"===e&&"="===r)&&(u=!0,e="0",r="="),this.fill=e,this.align=r,this.sign=i,this.symbol=o,this.zero=u,this.width=a,this.comma=c,this.precision=s,this.type=f}function lr(t){return t}function hr(n){return Pv=qv(n),
t.format=Pv.format,t.formatPrefix=Pv.formatPrefix,Pv}function pr(){this.reset()}function dr(t,n,e){var r=t.s=n+e,i=r-n,o=r-i;t.t=n-o+(e-i)}function vr(t){return t>1?0:t<-1?m_:Math.acos(t)}function _r(t){return t>1?x_:t<-1?-x_:Math.asin(t)}function yr(t){return(t=R_(t/2))*t}function gr(){}function mr(t,n){t&&O_.hasOwnProperty(t.type)&&O_[t.type](t,n)}function xr(t,n,e){var r,i=-1,o=t.length-e;for(n.lineStart();++i<o;)r=t[i],n.point(r[0],r[1],r[2]);n.lineEnd()}function br(t,n){var e=-1,r=t.length;for(n.polygonStart();++e<r;)xr(t[e],n,1);n.polygonEnd()}function wr(){B_.point=Tr}function Mr(){Nr(Fv,Iv)}function Tr(t,n){B_.point=Nr,Fv=t,Iv=n,t*=T_,n*=T_,Yv=t,Bv=E_(n=n/2+b_),jv=R_(n)}function Nr(t,n){t*=T_,n*=T_,n=n/2+b_;var e=t-Yv,r=e>=0?1:-1,i=r*e,o=E_(n),u=R_(n),a=jv*u,c=Bv*o+a*E_(i),s=a*r*R_(i);I_.add(S_(s,c)),Yv=t,Bv=o,jv=u}function kr(t){return[S_(t[1],t[0]),_r(t[2])]}function Sr(t){var n=t[0],e=t[1],r=E_(e);return[r*E_(n),r*R_(n),R_(e)]}function Er(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]}function Ar(t,n){return[t[1]*n[2]-t[2]*n[1],t[2]*n[0]-t[0]*n[2],t[0]*n[1]-t[1]*n[0]]}function Cr(t,n){t[0]+=n[0],t[1]+=n[1],t[2]+=n[2]}function zr(t,n){return[t[0]*n,t[1]*n,t[2]*n]}function Pr(t){var n=L_(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=n,t[1]/=n,t[2]/=n}function Rr(t,n){Qv.push(Kv=[Hv=t,Vv=t]),n<Xv&&(Xv=n),n>Wv&&(Wv=n)}function qr(t,n){var e=Sr([t*T_,n*T_]);if(Jv){var r=Ar(Jv,e),i=[r[1],-r[0],0],o=Ar(i,r);Pr(o),o=kr(o);var u,a=t-$v,c=a>0?1:-1,s=o[0]*M_*c,f=N_(a)>180;f^(c*$v<s&&s<c*t)?(u=o[1]*M_,u>Wv&&(Wv=u)):(s=(s+360)%360-180,f^(c*$v<s&&s<c*t)?(u=-o[1]*M_,u<Xv&&(Xv=u)):(n<Xv&&(Xv=n),n>Wv&&(Wv=n))),f?t<$v?Ir(Hv,t)>Ir(Hv,Vv)&&(Vv=t):Ir(t,Vv)>Ir(Hv,Vv)&&(Hv=t):Vv>=Hv?(t<Hv&&(Hv=t),t>Vv&&(Vv=t)):t>$v?Ir(Hv,t)>Ir(Hv,Vv)&&(Vv=t):Ir(t,Vv)>Ir(Hv,Vv)&&(Hv=t)}else Rr(t,n);Jv=e,$v=t}function Lr(){X_.point=qr}function Ur(){Kv[0]=Hv,Kv[1]=Vv,X_.point=Rr,Jv=null}function Dr(t,n){if(Jv){var e=t-$v;H_.add(N_(e)>180?e+(e>0?360:-360):e)}else Zv=t,Gv=n;B_.point(t,n),qr(t,n)}function Or(){B_.lineStart()}function Fr(){Dr(Zv,Gv),B_.lineEnd(),N_(H_)>y_&&(Hv=-(Vv=180)),Kv[0]=Hv,Kv[1]=Vv,Jv=null}function Ir(t,n){return(n-=t)<0?n+360:n}function Yr(t,n){return t[0]-n[0]}function Br(t,n){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:n<t[0]||t[1]<n}function jr(t,n){t*=T_,n*=T_;var e=E_(n);Hr(e*E_(t),e*R_(t),R_(n))}function Hr(t,n,e){++t_,e_+=(t-e_)/t_,r_+=(n-r_)/t_,i_+=(e-i_)/t_}function Xr(){W_.point=Vr}function Vr(t,n){t*=T_,n*=T_;var e=E_(n);p_=e*E_(t),d_=e*R_(t),v_=R_(n),W_.point=Wr,Hr(p_,d_,v_)}function Wr(t,n){t*=T_,n*=T_;var e=E_(n),r=e*E_(t),i=e*R_(t),o=R_(n),u=S_(L_((u=d_*o-v_*i)*u+(u=v_*r-p_*o)*u+(u=p_*i-d_*r)*u),p_*r+d_*i+v_*o);n_+=u,o_+=u*(p_+(p_=r)),u_+=u*(d_+(d_=i)),a_+=u*(v_+(v_=o)),Hr(p_,d_,v_)}function $r(){W_.point=jr}function Zr(){W_.point=Jr}function Gr(){Qr(l_,h_),W_.point=jr}function Jr(t,n){l_=t,h_=n,t*=T_,n*=T_,W_.point=Qr;var e=E_(n);p_=e*E_(t),d_=e*R_(t),v_=R_(n),Hr(p_,d_,v_)}function Qr(t,n){t*=T_,n*=T_;var e=E_(n),r=e*E_(t),i=e*R_(t),o=R_(n),u=d_*o-v_*i,a=v_*r-p_*o,c=p_*i-d_*r,s=L_(u*u+a*a+c*c),f=p_*r+d_*i+v_*o,l=s&&-vr(f)/s,h=S_(s,f);c_+=l*u,s_+=l*a,f_+=l*c,n_+=h,o_+=h*(p_+(p_=r)),u_+=h*(d_+(d_=i)),a_+=h*(v_+(v_=o)),Hr(p_,d_,v_)}function Kr(t,n){return[t>m_?t-w_:t<-m_?t+w_:t,n]}function ti(t,n,e){return(t%=w_)?n||e?G_(ei(t),ri(n,e)):ei(t):n||e?ri(n,e):Kr}function ni(t){return function(n,e){return n+=t,[n>m_?n-w_:n<-m_?n+w_:n,e]}}function ei(t){var n=ni(t);return n.invert=ni(-t),n}function ri(t,n){function e(t,n){var e=E_(n),a=E_(t)*e,c=R_(t)*e,s=R_(n),f=s*r+a*i;return[S_(c*o-f*u,a*r-s*i),_r(f*o+c*u)]}var r=E_(t),i=R_(t),o=E_(n),u=R_(n);return e.invert=function(t,n){var e=E_(n),a=E_(t)*e,c=R_(t)*e,s=R_(n),f=s*o-c*u;return[S_(c*o+s*u,a*r+f*i),_r(f*r-a*i)]},e}function ii(t,n,e,r,i,o){if(e){var u=E_(n),a=R_(n),c=r*e;null==i?(i=n+r*w_,o=n-c/2):(i=oi(u,i),o=oi(u,o),(r>0?i<o:i>o)&&(i+=r*w_));for(var s,f=i;r>0?f>o:f<o;f-=c)s=kr([u,-a*E_(f),-a*R_(f)]),t.point(s[0],s[1])}}function oi(t,n){n=Sr(n),n[0]-=t,Pr(n);var e=vr(-n[1]);return((-n[2]<0?-e:e)+w_-y_)%w_}function ui(t,n,e,r){this.x=t,this.z=n,this.o=e,this.e=r,this.v=!1,this.n=this.p=null}function ai(t){if(n=t.length){for(var n,e,r=0,i=t[0];++r<n;)i.n=e=t[r],e.p=i,i=e;i.n=e=t[0],e.p=i}}function ci(t,n,e,r){function i(i,o){return t<=i&&i<=e&&n<=o&&o<=r}function o(i,o,a,s){var f=0,l=0;if(null==i||(f=u(i,a))!==(l=u(o,a))||c(i,o)<0^a>0){do s.point(0===f||3===f?t:e,f>1?r:n);while((f=(f+a+4)%4)!==l)}else s.point(o[0],o[1])}function u(r,i){return N_(r[0]-t)<y_?i>0?0:3:N_(r[0]-e)<y_?i>0?2:1:N_(r[1]-n)<y_?i>0?1:0:i>0?3:2}function a(t,n){return c(t.x,n.x)}function c(t,n){var e=u(t,1),r=u(n,1);return e!==r?e-r:0===e?n[1]-t[1]:1===e?t[0]-n[0]:2===e?t[1]-n[1]:n[0]-t[0]}return function(u){function c(t,n){i(t,n)&&k.point(t,n)}function s(){for(var n=0,e=0,i=_.length;e<i;++e)for(var o,u,a=_[e],c=1,s=a.length,f=a[0],l=f[0],h=f[1];c<s;++c)o=l,u=h,f=a[c],l=f[0],h=f[1],u<=r?h>r&&(l-o)*(r-u)>(h-u)*(t-o)&&++n:h<=r&&(l-o)*(r-u)<(h-u)*(t-o)&&--n;return n}function f(){k=S,v=[],_=[],N=!0}function l(){var t=s(),n=N&&t,e=(v=Ks(v)).length;(n||e)&&(u.polygonStart(),n&&(u.lineStart(),o(null,null,1,u),u.lineEnd()),e&&py(v,a,t,o,u),u.polygonEnd()),k=u,v=_=y=null}function h(){E.point=d,_&&_.push(y=[]),T=!0,M=!1,b=w=NaN}function p(){v&&(d(g,m),x&&M&&S.rejoin(),v.push(S.result())),E.point=c,M&&k.lineEnd()}function d(o,u){var a=i(o,u);if(_&&y.push([o,u]),T)g=o,m=u,x=a,T=!1,a&&(k.lineStart(),k.point(o,u));else if(a&&M)k.point(o,u);else{var c=[b=Math.max(vy,Math.min(dy,b)),w=Math.max(vy,Math.min(dy,w))],s=[o=Math.max(vy,Math.min(dy,o)),u=Math.max(vy,Math.min(dy,u))];ly(c,s,t,n,e,r)?(M||(k.lineStart(),k.point(c[0],c[1])),k.point(s[0],s[1]),a||k.lineEnd(),N=!1):a&&(k.lineStart(),k.point(o,u),N=!1)}b=o,w=u,M=a}var v,_,y,g,m,x,b,w,M,T,N,k=u,S=fy(),E={point:c,lineStart:h,lineEnd:p,polygonStart:f,polygonEnd:l};return E}}function si(){gy.point=li,gy.lineEnd=fi}function fi(){gy.point=gy.lineEnd=gr}function li(t,n){t*=T_,n*=T_,J_=t,Q_=R_(n),K_=E_(n),gy.point=hi}function hi(t,n){t*=T_,n*=T_;var e=R_(n),r=E_(n),i=N_(t-J_),o=E_(i),u=R_(i),a=r*u,c=K_*e-Q_*r*o,s=Q_*e+K_*r*o;yy.add(S_(L_(a*a+c*c),s)),J_=t,Q_=e,K_=r}function pi(t,n,e){var r=Is(t,n-y_,e).concat(n);return function(t){return r.map(function(n){return[t,n]})}}function di(t,n,e){var r=Is(t,n-y_,e).concat(n);return function(t){return r.map(function(n){return[n,t]})}}function vi(){function t(){return{type:"MultiLineString",coordinates:n()}}function n(){return Is(A_(o/_)*_,i,_).map(h).concat(Is(A_(s/y)*y,c,y).map(p)).concat(Is(A_(r/d)*d,e,d).filter(function(t){return N_(t%_)>y_}).map(f)).concat(Is(A_(a/v)*v,u,v).filter(function(t){return N_(t%y)>y_}).map(l))}var e,r,i,o,u,a,c,s,f,l,h,p,d=10,v=d,_=90,y=360,g=2.5;return t.lines=function(){return n().map(function(t){return{type:"LineString",coordinates:t}})},t.outline=function(){return{type:"Polygon",coordinates:[h(o).concat(p(c).slice(1),h(i).reverse().slice(1),p(s).reverse().slice(1))]}},t.extent=function(n){return arguments.length?t.extentMajor(n).extentMinor(n):t.extentMinor()},t.extentMajor=function(n){return arguments.length?(o=+n[0][0],i=+n[1][0],s=+n[0][1],c=+n[1][1],o>i&&(n=o,o=i,i=n),s>c&&(n=s,s=c,c=n),t.precision(g)):[[o,s],[i,c]]},t.extentMinor=function(n){return arguments.length?(r=+n[0][0],e=+n[1][0],a=+n[0][1],u=+n[1][1],r>e&&(n=r,r=e,e=n),a>u&&(n=a,a=u,u=n),t.precision(g)):[[r,a],[e,u]]},t.step=function(n){return arguments.length?t.stepMajor(n).stepMinor(n):t.stepMinor()},t.stepMajor=function(n){return arguments.length?(_=+n[0],y=+n[1],t):[_,y]},t.stepMinor=function(n){return arguments.length?(d=+n[0],v=+n[1],t):[d,v]},t.precision=function(n){return arguments.length?(g=+n,f=pi(a,u,90),l=di(r,e,g),h=pi(s,c,90),p=di(o,i,g),t):g},t.extentMajor([[-180,-90+y_],[180,90-y_]]).extentMinor([[-180,-80-y_],[180,80+y_]])}function _i(){return vi()()}function yi(){Sy.point=gi}function gi(t,n){Sy.point=mi,ty=ey=t,ny=ry=n}function mi(t,n){ky.add(ry*t-ey*n),ey=t,ry=n}function xi(){mi(ty,ny)}function bi(t,n){t<Ey&&(Ey=t),t>Cy&&(Cy=t),n<Ay&&(Ay=n),n>zy&&(zy=n)}function wi(t,n){Ry+=t,qy+=n,++Ly}function Mi(){By.point=Ti}function Ti(t,n){By.point=Ni,wi(uy=t,ay=n)}function Ni(t,n){var e=t-uy,r=n-ay,i=L_(e*e+r*r);Uy+=i*(uy+t)/2,Dy+=i*(ay+n)/2,Oy+=i,wi(uy=t,ay=n)}function ki(){By.point=wi}function Si(){By.point=Ai}function Ei(){Ci(iy,oy)}function Ai(t,n){By.point=Ci,wi(iy=uy=t,oy=ay=n)}function Ci(t,n){var e=t-uy,r=n-ay,i=L_(e*e+r*r);Uy+=i*(uy+t)/2,Dy+=i*(ay+n)/2,Oy+=i,i=ay*t-uy*n,Fy+=i*(uy+t),Iy+=i*(ay+n),Yy+=3*i,wi(uy=t,ay=n)}function zi(t){this._context=t}function Pi(){this._string=[]}function Ri(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}function qi(t){return t.length>1}function Li(t,n){return((t=t.x)[0]<0?t[1]-x_-y_:x_-t[1])-((n=n.x)[0]<0?n[1]-x_-y_:x_-n[1])}function Ui(t){var n,e=NaN,r=NaN,i=NaN;return{lineStart:function(){t.lineStart(),n=1},point:function(o,u){var a=o>0?m_:-m_,c=N_(o-e);N_(c-m_)<y_?(t.point(e,r=(r+u)/2>0?x_:-x_),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(a,r),t.point(o,r),n=0):i!==a&&c>=m_&&(N_(e-i)<y_&&(e-=i*y_),N_(o-a)<y_&&(o-=a*y_),r=Di(e,r,o,u),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(a,r),n=0),t.point(e=o,r=u),i=a},lineEnd:function(){t.lineEnd(),e=r=NaN},clean:function(){return 2-n}}}function Di(t,n,e,r){var i,o,u=R_(t-e);return N_(u)>y_?k_((R_(n)*(o=E_(r))*R_(e)-R_(r)*(i=E_(n))*R_(t))/(i*o*u)):(n+r)/2}function Oi(t,n,e,r){var i;if(null==t)i=e*x_,r.point(-m_,i),r.point(0,i),r.point(m_,i),r.point(m_,0),r.point(m_,-i),r.point(0,-i),r.point(-m_,-i),r.point(-m_,0),r.point(-m_,i);else if(N_(t[0]-n[0])>y_){var o=t[0]<n[0]?m_:-m_;i=e*o/2,r.point(-o,i),r.point(0,i),r.point(o,i)}else r.point(n[0],n[1])}function Fi(t){return function(n){var e=new Ii;for(var r in t)e[r]=t[r];return e.stream=n,e}}function Ii(){}function Yi(t,n,e){var r=n[1][0]-n[0][0],i=n[1][1]-n[0][1],o=t.clipExtent&&t.clipExtent();t.scale(150).translate([0,0]),null!=o&&t.clipExtent(null),F_(e,t.stream(Py));var u=Py.result(),a=Math.min(r/(u[1][0]-u[0][0]),i/(u[1][1]-u[0][1])),c=+n[0][0]+(r-a*(u[1][0]+u[0][0]))/2,s=+n[0][1]+(i-a*(u[1][1]+u[0][1]))/2;return null!=o&&t.clipExtent(o),t.scale(150*a).translate([c,s])}function Bi(t,n,e){return Yi(t,[[0,0],n],e)}function ji(t){return Fi({point:function(n,e){n=t(n,e),this.stream.point(n[0],n[1])}})}function Hi(t,n){function e(r,i,o,u,a,c,s,f,l,h,p,d,v,_){var y=s-r,g=f-i,m=y*y+g*g;if(m>4*n&&v--){var x=u+h,b=a+p,w=c+d,M=L_(x*x+b*b+w*w),T=_r(w/=M),N=N_(N_(w)-1)<y_||N_(o-l)<y_?(o+l)/2:S_(b,x),k=t(N,T),S=k[0],E=k[1],A=S-r,C=E-i,z=g*A-y*C;(z*z/m>n||N_((y*A+g*C)/m-.5)>.3||u*h+a*p+c*d<Jy)&&(e(r,i,o,u,a,c,S,E,N,x/=M,b/=M,w,v,_),_.point(S,E),e(S,E,N,x,b,w,s,f,l,h,p,d,v,_))}}return function(n){function r(e,r){e=t(e,r),n.point(e[0],e[1])}function i(){y=NaN,w.point=o,n.lineStart()}function o(r,i){var o=Sr([r,i]),u=t(r,i);e(y,g,_,m,x,b,y=u[0],g=u[1],_=r,m=o[0],x=o[1],b=o[2],Gy,n),n.point(y,g)}function u(){w.point=r,n.lineEnd()}function a(){i(),w.point=c,w.lineEnd=s}function c(t,n){o(f=t,n),l=y,h=g,p=m,d=x,v=b,w.point=o}function s(){e(y,g,_,m,x,b,l,h,f,p,d,v,Gy,n),w.lineEnd=u,u()}var f,l,h,p,d,v,_,y,g,m,x,b,w={point:r,lineStart:i,lineEnd:u,polygonStart:function(){n.polygonStart(),w.lineStart=a},polygonEnd:function(){n.polygonEnd(),w.lineStart=i}};return w}}function Xi(t){return Vi(function(){return t})()}function Vi(t){function n(t){return t=f(t[0]*T_,t[1]*T_),[t[0]*_+a,c-t[1]*_]}function e(t){return t=f.invert((t[0]-a)/_,(c-t[1])/_),t&&[t[0]*M_,t[1]*M_]}function r(t,n){return t=u(t,n),[t[0]*_+a,c-t[1]*_]}function i(){f=G_(s=ti(b,w,M),u);var t=u(m,x);return a=y-t[0]*_,c=g+t[1]*_,o()}function o(){return d=v=null,n}var u,a,c,s,f,l,h,p,d,v,_=150,y=480,g=250,m=0,x=0,b=0,w=0,M=0,T=null,N=Wy,k=null,S=Ty,E=.5,A=Qy(r,E);return n.stream=function(t){return d&&v===t?d:d=Ky(N(s,A(S(v=t))))},n.clipAngle=function(t){return arguments.length?(N=+t?$y(T=t*T_,6*T_):(T=null,Wy),o()):T*M_},n.clipExtent=function(t){return arguments.length?(S=null==t?(k=l=h=p=null,Ty):ci(k=+t[0][0],l=+t[0][1],h=+t[1][0],p=+t[1][1]),o()):null==k?null:[[k,l],[h,p]]},n.scale=function(t){return arguments.length?(_=+t,i()):_},n.translate=function(t){return arguments.length?(y=+t[0],g=+t[1],i()):[y,g]},n.center=function(t){return arguments.length?(m=t[0]%360*T_,x=t[1]%360*T_,i()):[m*M_,x*M_]},n.rotate=function(t){return arguments.length?(b=t[0]%360*T_,w=t[1]%360*T_,M=t.length>2?t[2]%360*T_:0,i()):[b*M_,w*M_,M*M_]},n.precision=function(t){return arguments.length?(A=Qy(r,E=t*t),o()):L_(E)},n.fitExtent=function(t,e){return Yi(n,t,e)},n.fitSize=function(t,e){return Bi(n,t,e)},function(){return u=t.apply(this,arguments),n.invert=u.invert&&e,i()}}function Wi(t){var n=0,e=m_/3,r=Vi(t),i=r(n,e);return i.parallels=function(t){return arguments.length?r(n=t[0]*T_,e=t[1]*T_):[n*M_,e*M_]},i}function $i(t){function n(t,n){return[t*e,R_(n)/e]}var e=E_(t);return n.invert=function(t,n){return[t/e,_r(n*e)]},n}function Zi(t,n){function e(t,n){var e=L_(o-2*i*R_(n))/i;return[e*R_(t*=i),u-e*E_(t)]}var r=R_(t),i=(r+R_(n))/2;if(N_(i)<y_)return $i(t);var o=1+r*(2*i-r),u=L_(o)/i;return e.invert=function(t,n){var e=u-n;return[S_(t,N_(e))/i*q_(e),_r((o-(t*t+e*e)*i*i)/(2*i))]},e}function Gi(t){var n=t.length;return{point:function(e,r){for(var i=-1;++i<n;)t[i].point(e,r)},sphere:function(){for(var e=-1;++e<n;)t[e].sphere()},lineStart:function(){for(var e=-1;++e<n;)t[e].lineStart()},lineEnd:function(){for(var e=-1;++e<n;)t[e].lineEnd()},polygonStart:function(){for(var e=-1;++e<n;)t[e].polygonStart()},polygonEnd:function(){for(var e=-1;++e<n;)t[e].polygonEnd()}}}function Ji(t){return function(n,e){var r=E_(n),i=E_(e),o=t(r*i);return[o*i*R_(n),o*R_(e)]}}function Qi(t){return function(n,e){var r=L_(n*n+e*e),i=t(r),o=R_(i),u=E_(i);return[S_(n*o,r*u),_r(r&&e*o/r)]}}function Ki(t,n){return[t,z_(U_((x_+n)/2))]}function to(t){var n,e=Xi(t),r=e.scale,i=e.translate,o=e.clipExtent;return e.scale=function(t){return arguments.length?(r(t),n&&e.clipExtent(null),e):r()},e.translate=function(t){return arguments.length?(i(t),n&&e.clipExtent(null),e):i()},e.clipExtent=function(t){if(!arguments.length)return n?null:o();if(n=null==t){var u=m_*r(),a=i();t=[[a[0]-u,a[1]-u],[a[0]+u,a[1]+u]]}return o(t),e},e.clipExtent(null)}function no(t){return U_((x_+t)/2)}function eo(t,n){function e(t,n){o>0?n<-x_+y_&&(n=-x_+y_):n>x_-y_&&(n=x_-y_);var e=o/P_(no(n),i);return[e*R_(i*t),o-e*E_(i*t)]}var r=E_(t),i=t===n?R_(t):z_(r/E_(n))/z_(no(n)/no(t)),o=r*P_(no(t),i)/i;return i?(e.invert=function(t,n){var e=o-n,r=q_(i)*L_(t*t+e*e);return[S_(t,N_(e))/i*q_(e),2*k_(P_(o/r,1/i))-x_]},e):Ki}function ro(t,n){return[t,n]}function io(t,n){function e(t,n){var e=o-n,r=i*t;return[e*R_(r),o-e*E_(r)]}var r=E_(t),i=t===n?R_(t):(r-E_(n))/(n-t),o=r/i+t;return N_(i)<y_?ro:(e.invert=function(t,n){var e=o-n;return[S_(t,N_(e))/i*q_(e),o-q_(i)*L_(t*t+e*e)]},e)}function oo(t,n){var e=E_(n),r=E_(t)*e;return[e*R_(t)/r,R_(n)/r]}function uo(t,n,e,r){return 1===t&&1===n&&0===e&&0===r?Ty:Fi({point:function(i,o){this.stream.point(i*t+e,o*n+r)}})}function ao(t,n){return[E_(n)*R_(t),R_(n)]}function co(t,n){var e=E_(n),r=1+E_(t)*e;return[e*R_(t)/r,R_(n)/r]}function so(t,n){return[z_(U_((x_+n)/2)),-t]}function fo(t,n){return t.parent===n.parent?1:2}function lo(t){return t.reduce(ho,0)/t.length}function ho(t,n){return t+n.x}function po(t){return 1+t.reduce(vo,0)}function vo(t,n){return Math.max(t,n.y)}function _o(t){for(var n;n=t.children;)t=n[0];return t}function yo(t){for(var n;n=t.children;)t=n[n.length-1];return t}function go(t){var n=0,e=t.children,r=e&&e.length;if(r)for(;--r>=0;)n+=e[r].value;else n=1;t.value=n}function mo(t,n){if(t===n)return t;var e=t.ancestors(),r=n.ancestors(),i=null;for(t=e.pop(),n=r.pop();t===n;)i=t,t=e.pop(),n=r.pop();return i}function xo(t,n){var e,r,i,o,u,a=new No(t),c=+t.value&&(a.value=t.value),s=[a];for(null==n&&(n=wo);e=s.pop();)if(c&&(e.value=+e.data.value),(i=n(e.data))&&(u=i.length))for(e.children=new Array(u),o=u-1;o>=0;--o)s.push(r=e.children[o]=new No(i[o])),r.parent=e,r.depth=e.depth+1;return a.eachBefore(To)}function bo(){return xo(this).eachBefore(Mo)}function wo(t){return t.children}function Mo(t){t.data=t.data.data}function To(t){var n=0;do t.height=n;while((t=t.parent)&&t.height<++n)}function No(t){this.data=t,this.depth=this.height=0,this.parent=null}function ko(t){this._=t,this.next=null}function So(t,n){var e=n.x-t.x,r=n.y-t.y,i=t.r-n.r;return i*i+1e-6>e*e+r*r}function Eo(t,n){var e,r,i,o=null,u=t.head;switch(n.length){case 1:e=Ao(n[0]);break;case 2:e=Co(n[0],n[1]);break;case 3:e=zo(n[0],n[1],n[2])}for(;u;)i=u._,r=u.next,e&&So(e,i)?o=u:(o?(t.tail=o,o.next=null):t.head=t.tail=null,n.push(i),e=Eo(t,n),n.pop(),t.head?(u.next=t.head,t.head=u):(u.next=null,t.head=t.tail=u),o=t.tail,o.next=r),u=r;return t.tail=o,e}function Ao(t){return{x:t.x,y:t.y,r:t.r}}function Co(t,n){var e=t.x,r=t.y,i=t.r,o=n.x,u=n.y,a=n.r,c=o-e,s=u-r,f=a-i,l=Math.sqrt(c*c+s*s);return{x:(e+o+c/l*f)/2,y:(r+u+s/l*f)/2,r:(l+i+a)/2}}function zo(t,n,e){var r=t.x,i=t.y,o=t.r,u=n.x,a=n.y,c=n.r,s=e.x,f=e.y,l=e.r,h=2*(r-u),p=2*(i-a),d=2*(c-o),v=r*r+i*i-o*o-u*u-a*a+c*c,_=2*(r-s),y=2*(i-f),g=2*(l-o),m=r*r+i*i-o*o-s*s-f*f+l*l,x=_*p-h*y,b=(p*m-y*v)/x-r,w=(y*d-p*g)/x,M=(_*v-h*m)/x-i,T=(h*g-_*d)/x,N=w*w+T*T-1,k=2*(b*w+M*T+o),S=b*b+M*M-o*o,E=(-k-Math.sqrt(k*k-4*N*S))/(2*N);return{x:b+w*E+r,y:M+T*E+i,r:E}}function Po(t,n,e){var r=t.x,i=t.y,o=n.r+e.r,u=t.r+e.r,a=n.x-r,c=n.y-i,s=a*a+c*c;if(s){var f=.5+((u*=u)-(o*=o))/(2*s),l=Math.sqrt(Math.max(0,2*o*(u+s)-(u-=s)*u-o*o))/(2*s);e.x=r+f*a+l*c,e.y=i+f*c-l*a}else e.x=r+u,e.y=i}function Ro(t,n){var e=n.x-t.x,r=n.y-t.y,i=t.r+n.r;return i*i-1e-6>e*e+r*r}function qo(t,n){for(var e=t._.r;t!==n;)e+=2*(t=t.next)._.r;return e-n._.r}function Lo(t,n,e){var r=t.x-n,i=t.y-e;return r*r+i*i}function Uo(t){this._=t,this.next=null,this.previous=null}function Do(t){if(!(i=t.length))return 0;var n,e,r,i;if(n=t[0],n.x=0,n.y=0,!(i>1))return n.r;if(e=t[1],n.x=-e.r,e.x=n.r,e.y=0,!(i>2))return n.r+e.r;Po(e,n,r=t[2]);var o,u,a,c,s,f,l,h=n.r*n.r,p=e.r*e.r,d=r.r*r.r,v=h+p+d,_=h*n.x+p*e.x+d*r.x,y=h*n.y+p*e.y+d*r.y;n=new Uo(n),e=new Uo(e),r=new Uo(r),n.next=r.previous=e,e.next=n.previous=r,r.next=e.previous=n;t:for(a=3;a<i;++a){Po(n._,e._,r=t[a]),r=new Uo(r),c=e.next,s=n.previous,f=e._.r,l=n._.r;do if(f<=l){if(Ro(c._,r._)){f+n._.r+e._.r>qo(c,e)?n=c:e=c,n.next=e,e.previous=n,--a;continue t}f+=c._.r,c=c.next}else{if(Ro(s._,r._)){qo(n,s)>l+n._.r+e._.r?n=s:e=s,n.next=e,e.previous=n,--a;continue t}l+=s._.r,s=s.previous}while(c!==s.next);for(r.previous=n,r.next=e,n.next=e.previous=e=r,v+=d=r._.r*r._.r,_+=d*r._.x,y+=d*r._.y,h=Lo(n._,o=_/v,u=y/v);(r=r.next)!==e;)(d=Lo(r._,o,u))<h&&(n=r,h=d);e=n.next}for(n=[e._],r=e;(r=r.next)!==e;)n.push(r._);for(r=Ag(n),a=0;a<i;++a)n=t[a],n.x-=r.x,n.y-=r.y;return r.r}function Oo(t){return null==t?null:Fo(t)}function Fo(t){if("function"!=typeof t)throw new Error;return t}function Io(){return 0}function Yo(t){return Math.sqrt(t.value)}function Bo(t){return function(n){n.children||(n.r=Math.max(0,+t(n)||0))}}function jo(t,n){return function(e){if(r=e.children){var r,i,o,u=r.length,a=t(e)*n||0;if(a)for(i=0;i<u;++i)r[i].r+=a;if(o=Do(r),a)for(i=0;i<u;++i)r[i].r-=a;e.r=o+a}}}function Ho(t){return function(n){var e=n.parent;n.r*=t,e&&(n.x=e.x+t*n.x,n.y=e.y+t*n.y)}}function Xo(t){return t.id}function Vo(t){return t.parentId}function Wo(t,n){return t.parent===n.parent?1:2}function $o(t){var n=t.children;return n?n[0]:t.t}function Zo(t){var n=t.children;return n?n[n.length-1]:t.t}function Go(t,n,e){var r=e/(n.i-t.i);n.c-=r,n.s+=e,t.c+=r,n.z+=e,n.m+=e}function Jo(t){for(var n,e=0,r=0,i=t.children,o=i.length;--o>=0;)n=i[o],n.z+=e,n.m+=e,e+=n.s+(r+=n.c)}function Qo(t,n,e){return t.a.parent===n.parent?t.a:e}function Ko(t,n){this._=t,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=n}function tu(t){for(var n,e,r,i,o,u=new Ko(t,0),a=[u];n=a.pop();)if(r=n._.children)for(n.children=new Array(o=r.length),i=o-1;i>=0;--i)a.push(e=n.children[i]=new Ko(r[i],i)),e.parent=n;return(u.parent=new Ko(null,0)).children=[u],u}function nu(t,n,e,r,i,o){for(var u,a,c,s,f,l,h,p,d,v,_,y=[],g=n.children,m=0,x=0,b=g.length,w=n.value;m<b;){c=i-e,s=o-r;do f=g[x++].value;while(!f&&x<b);for(l=h=f,v=Math.max(s/c,c/s)/(w*t),_=f*f*v,d=Math.max(h/_,_/l);x<b;++x){if(f+=a=g[x].value,a<l&&(l=a),a>h&&(h=a),_=f*f*v,p=Math.max(h/_,_/l),p>d){f-=a;break}d=p}y.push(u={value:f,dice:c<s,children:g.slice(m,x)}),u.dice?qg(u,e,r,i,w?r+=s*f/w:o):Yg(u,e,r,w?e+=c*f/w:i,o),w-=f,m=x}return y}function eu(t,n){return t[0]-n[0]||t[1]-n[1]}function ru(t){for(var n=t.length,e=[0,1],r=2,i=2;i<n;++i){for(;r>1&&Gg(t[e[r-2]],t[e[r-1]],t[i])<=0;)--r;e[r++]=i}return e.slice(0,r)}function iu(t){if(!(t>=1))throw new Error;this._size=t,this._call=this._error=null,this._tasks=[],this._data=[],this._waiting=this._active=this._ended=this._start=0}function ou(t){if(!t._start)try{uu(t)}catch(n){if(t._tasks[t._ended+t._active-1])cu(t,n);else if(!t._data)throw n}}function uu(t){for(;t._start=t._waiting&&t._active<t._size;){var n=t._ended+t._active,e=t._tasks[n],r=e.length-1,i=e[r];e[r]=au(t,n),--t._waiting,++t._active,e=i.apply(null,e),t._tasks[n]&&(t._tasks[n]=e||nm)}}function au(t,n){return function(e,r){t._tasks[n]&&(--t._active,++t._ended,t._tasks[n]=null,null==t._error&&(null!=e?cu(t,e):(t._data[n]=r,t._waiting?ou(t):su(t))))}}function cu(t,n){var e,r=t._tasks.length;for(t._error=n,t._data=void 0,t._waiting=NaN;--r>=0;)if((e=t._tasks[r])&&(t._tasks[r]=null,e.abort))try{e.abort()}catch(t){}t._active=NaN,su(t)}function su(t){if(!t._active&&t._call){var n=t._data;t._data=void 0,t._call(t._error,n)}}function fu(t){return new iu(arguments.length?+t:1/0)}function lu(t){return function(n,e){t(null==n?e:null)}}function hu(t){var n=t.responseType;return n&&"text"!==n?t.response:t.responseText}function pu(t,n){return function(e){return t(e.responseText,n)}}function du(t){function n(n){var o=n+"",u=e.get(o);if(!u){if(i!==xm)return i;e.set(o,u=r.push(n))}return t[(u-1)%t.length]}var e=Ie(),r=[],i=xm;return t=null==t?[]:mm.call(t),n.domain=function(t){if(!arguments.length)return r.slice();r=[],e=Ie();for(var i,o,u=-1,a=t.length;++u<a;)e.has(o=(i=t[u])+"")||e.set(o,r.push(i));return n},n.range=function(e){return arguments.length?(t=mm.call(e),n):t.slice()},n.unknown=function(t){return arguments.length?(i=t,n):i},n.copy=function(){return du().domain(r).range(t).unknown(i)},n}function vu(){function t(){var t=i().length,r=u[1]<u[0],l=u[r-0],h=u[1-r];n=(h-l)/Math.max(1,t-c+2*s),a&&(n=Math.floor(n)),l+=(h-l-n*(t-c))*f,e=n*(1-c),a&&(l=Math.round(l),e=Math.round(e));var p=Is(t).map(function(t){return l+n*t});return o(r?p.reverse():p)}var n,e,r=du().unknown(void 0),i=r.domain,o=r.range,u=[0,1],a=!1,c=0,s=0,f=.5;return delete r.unknown,r.domain=function(n){return arguments.length?(i(n),t()):i()},r.range=function(n){return arguments.length?(u=[+n[0],+n[1]],t()):u.slice()},r.rangeRound=function(n){return u=[+n[0],+n[1]],a=!0,t()},r.bandwidth=function(){return e},r.step=function(){return n},r.round=function(n){return arguments.length?(a=!!n,t()):a},r.padding=function(n){return arguments.length?(c=s=Math.max(0,Math.min(1,n)),t()):c},r.paddingInner=function(n){return arguments.length?(c=Math.max(0,Math.min(1,n)),t()):c},r.paddingOuter=function(n){return arguments.length?(s=Math.max(0,Math.min(1,n)),t()):s},r.align=function(n){return arguments.length?(f=Math.max(0,Math.min(1,n)),t()):f},r.copy=function(){return vu().domain(i()).range(u).round(a).paddingInner(c).paddingOuter(s).align(f)},t()}function _u(t){var n=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,delete t.paddingOuter,t.copy=function(){return _u(n())},t}function yu(){return _u(vu().paddingInner(1))}function gu(t,n){return(n-=t=+t)?function(e){return(e-t)/n}:bm(n)}function mu(t){return function(n,e){var r=t(n=+n,e=+e);return function(t){return t<=n?0:t>=e?1:r(t)}}}function xu(t){return function(n,e){var r=t(n=+n,e=+e);return function(t){return t<=0?n:t>=1?e:r(t)}}}function bu(t,n,e,r){var i=t[0],o=t[1],u=n[0],a=n[1];return o<i?(i=e(o,i),u=r(a,u)):(i=e(i,o),u=r(u,a)),function(t){return u(i(t))}}function wu(t,n,e,r){var i=Math.min(t.length,n.length)-1,o=new Array(i),u=new Array(i),a=-1;for(t[i]<t[0]&&(t=t.slice().reverse(),n=n.slice().reverse());++a<i;)o[a]=e(t[a],t[a+1]),u[a]=r(n[a],n[a+1]);return function(n){var e=Es(t,n,1,i)-1;return u[e](o[e](n))}}function Mu(t,n){return n.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp())}function Tu(t,n){function e(){return i=Math.min(a.length,c.length)>2?wu:bu,o=u=null,r}function r(n){return(o||(o=i(a,c,f?mu(t):t,s)))(+n)}var i,o,u,a=Mm,c=Mm,s=mh,f=!1;return r.invert=function(t){return(u||(u=i(c,a,gu,f?xu(n):n)))(+t)},r.domain=function(t){return arguments.length?(a=gm.call(t,wm),e()):a.slice()},r.range=function(t){return arguments.length?(c=mm.call(t),e()):c.slice()},r.rangeRound=function(t){return c=mm.call(t),s=xh,e()},r.clamp=function(t){return arguments.length?(f=!!t,e()):f},r.interpolate=function(t){return arguments.length?(s=t,e()):s},e()}function Nu(t){var n=t.domain;return t.ticks=function(t){var e=n();return Hs(e[0],e[e.length-1],null==t?10:t)},t.tickFormat=function(t,e){return Tm(n(),t,e)},t.nice=function(r){var i=n(),o=i.length-1,u=null==r?10:r,a=i[0],c=i[o],s=e(a,c,u);return s&&(s=e(Math.floor(a/s)*s,Math.ceil(c/s)*s,u),i[0]=Math.floor(a/s)*s,i[o]=Math.ceil(c/s)*s,n(i)),t},t}function ku(){var t=Tu(gu,dh);return t.copy=function(){return Mu(t,ku())},Nu(t)}function Su(){function t(t){return+t}var n=[0,1];return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=gm.call(e,wm),t):n.slice()},t.copy=function(){return Su().domain(n)},Nu(t)}function Eu(t,n){return(n=Math.log(n/t))?function(e){return Math.log(e/t)/n}:bm(n)}function Au(t,n){return t<0?function(e){return-Math.pow(-n,e)*Math.pow(-t,1-e)}:function(e){return Math.pow(n,e)*Math.pow(t,1-e)}}function Cu(t){return isFinite(t)?+("1e"+t):t<0?0:t}function zu(t){return 10===t?Cu:t===Math.E?Math.exp:function(n){return Math.pow(t,n)}}function Pu(t){return t===Math.E?Math.log:10===t&&Math.log10||2===t&&Math.log2||(t=Math.log(t),function(n){return Math.log(n)/t})}function Ru(t){return function(n){return-t(-n)}}function qu(){function n(){return o=Pu(i),u=zu(i),r()[0]<0&&(o=Ru(o),u=Ru(u)),e}var e=Tu(Eu,Au).domain([1,10]),r=e.domain,i=10,o=Pu(10),u=zu(10);return e.base=function(t){return arguments.length?(i=+t,n()):i},e.domain=function(t){return arguments.length?(r(t),n()):r()},e.ticks=function(t){var n,e=r(),a=e[0],c=e[e.length-1];(n=c<a)&&(h=a,a=c,c=h);var s,f,l,h=o(a),p=o(c),d=null==t?10:+t,v=[];if(!(i%1)&&p-h<d){if(h=Math.round(h)-1,p=Math.round(p)+1,a>0){for(;h<p;++h)for(f=1,s=u(h);f<i;++f)if(l=s*f,!(l<a)){if(l>c)break;v.push(l)}}else for(;h<p;++h)for(f=i-1,s=u(h);f>=1;--f)if(l=s*f,!(l<a)){if(l>c)break;v.push(l)}}else v=Hs(h,p,Math.min(p-h,d)).map(u);return n?v.reverse():v},e.tickFormat=function(n,r){if(null==r&&(r=10===i?".0e":","),"function"!=typeof r&&(r=t.format(r)),n===1/0)return r;null==n&&(n=10);var a=Math.max(1,i*n/e.ticks().length);return function(t){var n=t/u(Math.round(o(t)));return n*i<i-.5&&(n*=i),n<=a?r(t):""}},e.nice=function(){return r(Nm(r(),{floor:function(t){return u(Math.floor(o(t)))},ceil:function(t){return u(Math.ceil(o(t)))}}))},e.copy=function(){return Mu(e,qu().base(i))},e}function Lu(t,n){return t<0?-Math.pow(-t,n):Math.pow(t,n)}function Uu(){function t(t,n){return(n=Lu(n,e)-(t=Lu(t,e)))?function(r){return(Lu(r,e)-t)/n}:bm(n)}function n(t,n){return n=Lu(n,e)-(t=Lu(t,e)),function(r){return Lu(t+n*r,1/e)}}var e=1,r=Tu(t,n),i=r.domain;return r.exponent=function(t){return arguments.length?(e=+t,i(i())):e},r.copy=function(){return Mu(r,Uu().exponent(e))},Nu(r)}function Du(){return Uu().exponent(.5)}function Ou(){function t(){var t=0,o=Math.max(1,r.length);for(i=new Array(o-1);++t<o;)i[t-1]=Ws(e,t/o);return n}function n(t){if(!isNaN(t=+t))return r[Es(i,t)]}var e=[],r=[],i=[];return n.invertExtent=function(t){var n=r.indexOf(t);return n<0?[NaN,NaN]:[n>0?i[n-1]:e[0],n<i.length?i[n]:e[e.length-1]]},n.domain=function(n){if(!arguments.length)return e.slice();e=[];for(var r,i=0,o=n.length;i<o;++i)r=n[i],null==r||isNaN(r=+r)||e.push(r);return e.sort(Ns),t()},n.range=function(n){return arguments.length?(r=mm.call(n),t()):r.slice()},n.quantiles=function(){return i.slice()},n.copy=function(){return Ou().domain(e).range(r)},n}function Fu(){function t(t){if(t<=t)return u[Es(o,t,0,i)]}function n(){var n=-1;for(o=new Array(i);++n<i;)o[n]=((n+1)*r-(n-i)*e)/(i+1);return t}var e=0,r=1,i=1,o=[.5],u=[0,1];return t.domain=function(t){return arguments.length?(e=+t[0],r=+t[1],n()):[e,r]},t.range=function(t){return arguments.length?(i=(u=mm.call(t)).length-1,n()):u.slice()},t.invertExtent=function(t){var n=u.indexOf(t);return n<0?[NaN,NaN]:n<1?[e,o[0]]:n>=i?[o[i-1],r]:[o[n-1],o[n]]},t.copy=function(){return Fu().domain([e,r]).range(u)},Nu(t)}function Iu(){function t(t){if(t<=t)return e[Es(n,t,0,r)]}var n=[.5],e=[0,1],r=1;return t.domain=function(i){return arguments.length?(n=mm.call(i),r=Math.min(n.length,e.length-1),t):n.slice()},t.range=function(i){return arguments.length?(e=mm.call(i),r=Math.min(n.length,e.length-1),t):e.slice()},t.invertExtent=function(t){var r=e.indexOf(t);return[n[r-1],n[r]]},t.copy=function(){return Iu().domain(n).range(e)},t}function Yu(t,n,e,r){function i(n){return t(n=new Date(+n)),n}return i.floor=i,i.ceil=function(e){return t(e=new Date(e-1)),n(e,1),t(e),e},i.round=function(t){var n=i(t),e=i.ceil(t);return t-n<e-t?n:e},i.offset=function(t,e){return n(t=new Date(+t),null==e?1:Math.floor(e)),t},i.range=function(e,r,o){var u=[];if(e=i.ceil(e),o=null==o?1:Math.floor(o),!(e<r&&o>0))return u;do u.push(new Date(+e));while(n(e,o),t(e),e<r);return u},i.filter=function(e){return Yu(function(n){if(n>=n)for(;t(n),!e(n);)n.setTime(n-1)},function(t,r){if(t>=t)for(;--r>=0;)for(;n(t,1),!e(t););})},e&&(i.count=function(n,r){return km.setTime(+n),Sm.setTime(+r),t(km),t(Sm),Math.floor(e(km,Sm))},i.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?i.filter(r?function(n){return r(n)%t===0}:function(n){return i.count(0,n)%t===0}):i:null}),i}function Bu(t){return Yu(function(n){n.setDate(n.getDate()-(n.getDay()+7-t)%7),n.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+7*n)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*zm)/qm})}function ju(t){return Yu(function(n){n.setUTCDate(n.getUTCDate()-(n.getUTCDay()+7-t)%7),n.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+7*n)},function(t,n){return(n-t)/qm})}function Hu(t){if(0<=t.y&&t.y<100){var n=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return n.setFullYear(t.y),n}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function Xu(t){if(0<=t.y&&t.y<100){var n=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return n.setUTCFullYear(t.y),n}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function Vu(t){return{y:t,m:0,d:1,H:0,M:0,S:0,L:0}}function Wu(t){function n(t,n){return function(e){var r,i,o,u=[],a=-1,c=0,s=t.length;for(e instanceof Date||(e=new Date(+e));++a<s;)37===t.charCodeAt(a)&&(u.push(t.slice(c,a)),null!=(i=Px[r=t.charAt(++a)])?r=t.charAt(++a):i="e"===r?" ":"0",(o=n[r])&&(r=o(e,i)),u.push(r),c=a+1);return u.push(t.slice(c,a)),u.join("")}}function e(t,n){return function(e){var i=Vu(1900),o=r(i,t,e+="",0);if(o!=e.length)return null;if("p"in i&&(i.H=i.H%12+12*i.p),"W"in i||"U"in i){"w"in i||(i.w="W"in i?1:0);var u="Z"in i?Xu(Vu(i.y)).getUTCDay():n(Vu(i.y)).getDay();i.m=0,i.d="W"in i?(i.w+6)%7+7*i.W-(u+5)%7:i.w+7*i.U-(u+6)%7}return"Z"in i?(i.H+=i.Z/100|0,i.M+=i.Z%100,Xu(i)):n(i)}}function r(t,n,e,r){for(var i,o,u=0,a=n.length,c=e.length;u<a;){if(r>=c)return-1;if(i=n.charCodeAt(u++),37===i){if(i=n.charAt(u++),o=B[i in Px?n.charAt(u++):i],!o||(r=o(t,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}function i(t,n,e){var r=C.exec(n.slice(e));return r?(t.p=z[r[0].toLowerCase()],e+r[0].length):-1}function o(t,n,e){var r=q.exec(n.slice(e));return r?(t.w=L[r[0].toLowerCase()],e+r[0].length):-1}function u(t,n,e){var r=P.exec(n.slice(e));return r?(t.w=R[r[0].toLowerCase()],e+r[0].length):-1;
}function a(t,n,e){var r=O.exec(n.slice(e));return r?(t.m=F[r[0].toLowerCase()],e+r[0].length):-1}function c(t,n,e){var r=U.exec(n.slice(e));return r?(t.m=D[r[0].toLowerCase()],e+r[0].length):-1}function s(t,n,e){return r(t,w,n,e)}function f(t,n,e){return r(t,M,n,e)}function l(t,n,e){return r(t,T,n,e)}function h(t){return S[t.getDay()]}function p(t){return k[t.getDay()]}function d(t){return A[t.getMonth()]}function v(t){return E[t.getMonth()]}function _(t){return N[+(t.getHours()>=12)]}function y(t){return S[t.getUTCDay()]}function g(t){return k[t.getUTCDay()]}function m(t){return A[t.getUTCMonth()]}function x(t){return E[t.getUTCMonth()]}function b(t){return N[+(t.getUTCHours()>=12)]}var w=t.dateTime,M=t.date,T=t.time,N=t.periods,k=t.days,S=t.shortDays,E=t.months,A=t.shortMonths,C=Gu(N),z=Ju(N),P=Gu(k),R=Ju(k),q=Gu(S),L=Ju(S),U=Gu(E),D=Ju(E),O=Gu(A),F=Ju(A),I={a:h,A:p,b:d,B:v,c:null,d:ha,e:ha,H:pa,I:da,j:va,L:_a,m:ya,M:ga,p:_,S:ma,U:xa,w:ba,W:wa,x:null,X:null,y:Ma,Y:Ta,Z:Na,"%":Ia},Y={a:y,A:g,b:m,B:x,c:null,d:ka,e:ka,H:Sa,I:Ea,j:Aa,L:Ca,m:za,M:Pa,p:b,S:Ra,U:qa,w:La,W:Ua,x:null,X:null,y:Da,Y:Oa,Z:Fa,"%":Ia},B={a:o,A:u,b:a,B:c,c:s,d:oa,e:oa,H:aa,I:aa,j:ua,L:fa,m:ia,M:ca,p:i,S:sa,U:Ku,w:Qu,W:ta,x:f,X:l,y:ea,Y:na,Z:ra,"%":la};return I.x=n(M,I),I.X=n(T,I),I.c=n(w,I),Y.x=n(M,Y),Y.X=n(T,Y),Y.c=n(w,Y),{format:function(t){var e=n(t+="",I);return e.toString=function(){return t},e},parse:function(t){var n=e(t+="",Hu);return n.toString=function(){return t},n},utcFormat:function(t){var e=n(t+="",Y);return e.toString=function(){return t},e},utcParse:function(t){var n=e(t,Xu);return n.toString=function(){return t},n}}}function $u(t,n,e){var r=t<0?"-":"",i=(r?-t:t)+"",o=i.length;return r+(o<e?new Array(e-o+1).join(n)+i:i)}function Zu(t){return t.replace(Lx,"\\$&")}function Gu(t){return new RegExp("^(?:"+t.map(Zu).join("|")+")","i")}function Ju(t){for(var n={},e=-1,r=t.length;++e<r;)n[t[e].toLowerCase()]=e;return n}function Qu(t,n,e){var r=Rx.exec(n.slice(e,e+1));return r?(t.w=+r[0],e+r[0].length):-1}function Ku(t,n,e){var r=Rx.exec(n.slice(e));return r?(t.U=+r[0],e+r[0].length):-1}function ta(t,n,e){var r=Rx.exec(n.slice(e));return r?(t.W=+r[0],e+r[0].length):-1}function na(t,n,e){var r=Rx.exec(n.slice(e,e+4));return r?(t.y=+r[0],e+r[0].length):-1}function ea(t,n,e){var r=Rx.exec(n.slice(e,e+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),e+r[0].length):-1}function ra(t,n,e){var r=/^(Z)|([+-]\d\d)(?:\:?(\d\d))?/.exec(n.slice(e,e+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),e+r[0].length):-1}function ia(t,n,e){var r=Rx.exec(n.slice(e,e+2));return r?(t.m=r[0]-1,e+r[0].length):-1}function oa(t,n,e){var r=Rx.exec(n.slice(e,e+2));return r?(t.d=+r[0],e+r[0].length):-1}function ua(t,n,e){var r=Rx.exec(n.slice(e,e+3));return r?(t.m=0,t.d=+r[0],e+r[0].length):-1}function aa(t,n,e){var r=Rx.exec(n.slice(e,e+2));return r?(t.H=+r[0],e+r[0].length):-1}function ca(t,n,e){var r=Rx.exec(n.slice(e,e+2));return r?(t.M=+r[0],e+r[0].length):-1}function sa(t,n,e){var r=Rx.exec(n.slice(e,e+2));return r?(t.S=+r[0],e+r[0].length):-1}function fa(t,n,e){var r=Rx.exec(n.slice(e,e+3));return r?(t.L=+r[0],e+r[0].length):-1}function la(t,n,e){var r=qx.exec(n.slice(e,e+1));return r?e+r[0].length:-1}function ha(t,n){return $u(t.getDate(),n,2)}function pa(t,n){return $u(t.getHours(),n,2)}function da(t,n){return $u(t.getHours()%12||12,n,2)}function va(t,n){return $u(1+Ym.count(ox(t),t),n,3)}function _a(t,n){return $u(t.getMilliseconds(),n,3)}function ya(t,n){return $u(t.getMonth()+1,n,2)}function ga(t,n){return $u(t.getMinutes(),n,2)}function ma(t,n){return $u(t.getSeconds(),n,2)}function xa(t,n){return $u(jm.count(ox(t),t),n,2)}function ba(t){return t.getDay()}function wa(t,n){return $u(Hm.count(ox(t),t),n,2)}function Ma(t,n){return $u(t.getFullYear()%100,n,2)}function Ta(t,n){return $u(t.getFullYear()%1e4,n,4)}function Na(t){var n=t.getTimezoneOffset();return(n>0?"-":(n*=-1,"+"))+$u(n/60|0,"0",2)+$u(n%60,"0",2)}function ka(t,n){return $u(t.getUTCDate(),n,2)}function Sa(t,n){return $u(t.getUTCHours(),n,2)}function Ea(t,n){return $u(t.getUTCHours()%12||12,n,2)}function Aa(t,n){return $u(1+lx.count(Ax(t),t),n,3)}function Ca(t,n){return $u(t.getUTCMilliseconds(),n,3)}function za(t,n){return $u(t.getUTCMonth()+1,n,2)}function Pa(t,n){return $u(t.getUTCMinutes(),n,2)}function Ra(t,n){return $u(t.getUTCSeconds(),n,2)}function qa(t,n){return $u(px.count(Ax(t),t),n,2)}function La(t){return t.getUTCDay()}function Ua(t,n){return $u(dx.count(Ax(t),t),n,2)}function Da(t,n){return $u(t.getUTCFullYear()%100,n,2)}function Oa(t,n){return $u(t.getUTCFullYear()%1e4,n,4)}function Fa(){return"+0000"}function Ia(){return"%"}function Ya(n){return Cx=Wu(n),t.timeFormat=Cx.format,t.timeParse=Cx.parse,t.utcFormat=Cx.utcFormat,t.utcParse=Cx.utcParse,Cx}function Ba(t){return t.toISOString()}function ja(t){var n=new Date(t);return isNaN(n)?null:n}function Ha(t){return new Date(t)}function Xa(t){return t instanceof Date?+t:+new Date(+t)}function Va(t,n,r,i,o,u,a,c,s){function f(e){return(a(e)<e?v:u(e)<e?_:o(e)<e?y:i(e)<e?g:n(e)<e?r(e)<e?m:x:t(e)<e?b:w)(e)}function l(n,r,i,o){if(null==n&&(n=10),"number"==typeof n){var u=Math.abs(i-r)/n,a=ks(function(t){return t[2]}).right(M,u);a===M.length?(o=e(r/Xx,i/Xx,n),n=t):a?(a=M[u/M[a-1][2]<M[a][2]/u?a-1:a],o=a[1],n=a[0]):(o=e(r,i,n),n=c)}return null==o?n:n.every(o)}var h=Tu(gu,dh),p=h.invert,d=h.domain,v=s(".%L"),_=s(":%S"),y=s("%I:%M"),g=s("%I %p"),m=s("%a %d"),x=s("%b %d"),b=s("%B"),w=s("%Y"),M=[[a,1,Fx],[a,5,5*Fx],[a,15,15*Fx],[a,30,30*Fx],[u,1,Ix],[u,5,5*Ix],[u,15,15*Ix],[u,30,30*Ix],[o,1,Yx],[o,3,3*Yx],[o,6,6*Yx],[o,12,12*Yx],[i,1,Bx],[i,2,2*Bx],[r,1,jx],[n,1,Hx],[n,3,3*Hx],[t,1,Xx]];return h.invert=function(t){return new Date(p(t))},h.domain=function(t){return arguments.length?d(gm.call(t,Xa)):d().map(Ha)},h.ticks=function(t,n){var e,r=d(),i=r[0],o=r[r.length-1],u=o<i;return u&&(e=i,i=o,o=e),e=l(t,i,o,n),e=e?e.range(i,o+1):[],u?e.reverse():e},h.tickFormat=function(t,n){return null==n?f:s(n)},h.nice=function(t,n){var e=d();return(t=l(t,e[0],e[e.length-1],n))?d(Nm(e,t)):h},h.copy=function(){return Mu(h,Va(t,n,r,i,o,u,a,c,s))},h}function Wa(t){var n=t.length;return function(e){return t[Math.max(0,Math.min(n-1,Math.floor(e*n)))]}}function $a(t){function n(n){var o=(n-e)/(r-e);return t(i?Math.max(0,Math.min(1,o)):o)}var e=0,r=1,i=!1;return n.domain=function(t){return arguments.length?(e=+t[0],r=+t[1],n):[e,r]},n.clamp=function(t){return arguments.length?(i=!!t,n):i},n.interpolator=function(e){return arguments.length?(t=e,n):t},n.copy=function(){return $a(t).domain([e,r]).clamp(i)},Nu(n)}function Za(t){return t.innerRadius}function Ga(t){return t.outerRadius}function Ja(t){return t.startAngle}function Qa(t){return t.endAngle}function Ka(t){return t&&t.padAngle}function tc(t){return t>=1?lb:t<=-1?-lb:Math.asin(t)}function nc(t,n,e,r,i,o,u,a){var c=e-t,s=r-n,f=u-i,l=a-o,h=(f*(n-o)-l*(t-i))/(l*c-f*s);return[t+h*c,n+h*s]}function ec(t,n,e,r,i,o,u){var a=t-e,c=n-r,s=(u?o:-o)/Math.sqrt(a*a+c*c),f=s*c,l=-s*a,h=t+f,p=n+l,d=e+f,v=r+l,_=(h+d)/2,y=(p+v)/2,g=d-h,m=v-p,x=g*g+m*m,b=i-o,w=h*v-d*p,M=(m<0?-1:1)*Math.sqrt(Math.max(0,b*b*x-w*w)),T=(w*m-g*M)/x,N=(-w*g-m*M)/x,k=(w*m+g*M)/x,S=(-w*g+m*M)/x,E=T-_,A=N-y,C=k-_,z=S-y;return E*E+A*A>C*C+z*z&&(T=k,N=S),{cx:T,cy:N,x01:-f,y01:-l,x11:T*(i/b-1),y11:N*(i/b-1)}}function rc(t){this._context=t}function ic(t){return t[0]}function oc(t){return t[1]}function uc(t){this._curve=t}function ac(t){function n(n){return new uc(t(n))}return n._curve=t,n}function cc(t){var n=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(t){return arguments.length?n(ac(t)):n()._curve},t}function sc(t,n,e){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+n)/6,(t._y0+4*t._y1+e)/6)}function fc(t){this._context=t}function lc(t){this._context=t}function hc(t){this._context=t}function pc(t,n){this._basis=new fc(t),this._beta=n}function dc(t,n,e){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-n),t._y2+t._k*(t._y1-e),t._x2,t._y2)}function vc(t,n){this._context=t,this._k=(1-n)/6}function _c(t,n){this._context=t,this._k=(1-n)/6}function yc(t,n){this._context=t,this._k=(1-n)/6}function gc(t,n,e){var r=t._x1,i=t._y1,o=t._x2,u=t._y2;if(t._l01_a>sb){var a=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,c=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*a-t._x0*t._l12_2a+t._x2*t._l01_2a)/c,i=(i*a-t._y0*t._l12_2a+t._y2*t._l01_2a)/c}if(t._l23_a>sb){var s=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,f=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*s+t._x1*t._l23_2a-n*t._l12_2a)/f,u=(u*s+t._y1*t._l23_2a-e*t._l12_2a)/f}t._context.bezierCurveTo(r,i,o,u,t._x2,t._y2)}function mc(t,n){this._context=t,this._alpha=n}function xc(t,n){this._context=t,this._alpha=n}function bc(t,n){this._context=t,this._alpha=n}function wc(t){this._context=t}function Mc(t){return t<0?-1:1}function Tc(t,n,e){var r=t._x1-t._x0,i=n-t._x1,o=(t._y1-t._y0)/(r||i<0&&-0),u=(e-t._y1)/(i||r<0&&-0),a=(o*i+u*r)/(r+i);return(Mc(o)+Mc(u))*Math.min(Math.abs(o),Math.abs(u),.5*Math.abs(a))||0}function Nc(t,n){var e=t._x1-t._x0;return e?(3*(t._y1-t._y0)/e-n)/2:n}function kc(t,n,e){var r=t._x0,i=t._y0,o=t._x1,u=t._y1,a=(o-r)/3;t._context.bezierCurveTo(r+a,i+a*n,o-a,u-a*e,o,u)}function Sc(t){this._context=t}function Ec(t){this._context=new Ac(t)}function Ac(t){this._context=t}function Cc(t){return new Sc(t)}function zc(t){return new Ec(t)}function Pc(t){this._context=t}function Rc(t){var n,e,r=t.length-1,i=new Array(r),o=new Array(r),u=new Array(r);for(i[0]=0,o[0]=2,u[0]=t[0]+2*t[1],n=1;n<r-1;++n)i[n]=1,o[n]=4,u[n]=4*t[n]+2*t[n+1];for(i[r-1]=2,o[r-1]=7,u[r-1]=8*t[r-1]+t[r],n=1;n<r;++n)e=i[n]/o[n-1],o[n]-=e,u[n]-=e*u[n-1];for(i[r-1]=u[r-1]/o[r-1],n=r-2;n>=0;--n)i[n]=(u[n]-i[n+1])/o[n];for(o[r-1]=(t[r]+i[r-1])/2,n=0;n<r-1;++n)o[n]=2*t[n+1]-i[n+1];return[i,o]}function qc(t,n){this._context=t,this._t=n}function Lc(t){return new qc(t,0)}function Uc(t){return new qc(t,1)}function Dc(t,n){return t[n]}function Oc(t){for(var n,e=0,r=-1,i=t.length;++r<i;)(n=+t[r][1])&&(e+=n);return e}function Fc(t){return t[0]}function Ic(t){return t[1]}function Yc(){this._=null}function Bc(t){t.U=t.C=t.L=t.R=t.P=t.N=null}function jc(t,n){var e=n,r=n.R,i=e.U;i?i.L===e?i.L=r:i.R=r:t._=r,r.U=i,e.U=r,e.R=r.L,e.R&&(e.R.U=e),r.L=e}function Hc(t,n){var e=n,r=n.L,i=e.U;i?i.L===e?i.L=r:i.R=r:t._=r,r.U=i,e.U=r,e.L=r.R,e.L&&(e.L.U=e),r.R=e}function Xc(t){for(;t.L;)t=t.L;return t}function Vc(t,n,e,r){var i=[null,null],o=mw.push(i)-1;return i.left=t,i.right=n,e&&$c(i,t,n,e),r&&$c(i,n,t,r),yw[t.index].halfedges.push(o),yw[n.index].halfedges.push(o),i}function Wc(t,n,e){var r=[n,e];return r.left=t,r}function $c(t,n,e,r){t[0]||t[1]?t.left===e?t[1]=r:t[0]=r:(t[0]=r,t.left=n,t.right=e)}function Zc(t,n,e,r,i){var o,u=t[0],a=t[1],c=u[0],s=u[1],f=a[0],l=a[1],h=0,p=1,d=f-c,v=l-s;if(o=n-c,d||!(o>0)){if(o/=d,d<0){if(o<h)return;o<p&&(p=o)}else if(d>0){if(o>p)return;o>h&&(h=o)}if(o=r-c,d||!(o<0)){if(o/=d,d<0){if(o>p)return;o>h&&(h=o)}else if(d>0){if(o<h)return;o<p&&(p=o)}if(o=e-s,v||!(o>0)){if(o/=v,v<0){if(o<h)return;o<p&&(p=o)}else if(v>0){if(o>p)return;o>h&&(h=o)}if(o=i-s,v||!(o<0)){if(o/=v,v<0){if(o>p)return;o>h&&(h=o)}else if(v>0){if(o<h)return;o<p&&(p=o)}return!(h>0||p<1)||(h>0&&(t[0]=[c+h*d,s+h*v]),p<1&&(t[1]=[c+p*d,s+p*v]),!0)}}}}}function Gc(t,n,e,r,i){var o=t[1];if(o)return!0;var u,a,c=t[0],s=t.left,f=t.right,l=s[0],h=s[1],p=f[0],d=f[1],v=(l+p)/2,_=(h+d)/2;if(d===h){if(v<n||v>=r)return;if(l>p){if(c){if(c[1]>=i)return}else c=[v,e];o=[v,i]}else{if(c){if(c[1]<e)return}else c=[v,i];o=[v,e]}}else if(u=(l-p)/(d-h),a=_-u*v,u<-1||u>1)if(l>p){if(c){if(c[1]>=i)return}else c=[(e-a)/u,e];o=[(i-a)/u,i]}else{if(c){if(c[1]<e)return}else c=[(i-a)/u,i];o=[(e-a)/u,e]}else if(h<d){if(c){if(c[0]>=r)return}else c=[n,u*n+a];o=[r,u*r+a]}else{if(c){if(c[0]<n)return}else c=[r,u*r+a];o=[n,u*n+a]}return t[0]=c,t[1]=o,!0}function Jc(t,n,e,r){for(var i,o=mw.length;o--;)Gc(i=mw[o],t,n,e,r)&&Zc(i,t,n,e,r)&&(Math.abs(i[0][0]-i[1][0])>ww||Math.abs(i[0][1]-i[1][1])>ww)||delete mw[o]}function Qc(t){return yw[t.index]={site:t,halfedges:[]}}function Kc(t,n){var e=t.site,r=n.left,i=n.right;return e===i&&(i=r,r=e),i?Math.atan2(i[1]-r[1],i[0]-r[0]):(e===r?(r=n[1],i=n[0]):(r=n[0],i=n[1]),Math.atan2(r[0]-i[0],i[1]-r[1]))}function ts(t,n){return n[+(n.left!==t.site)]}function ns(t,n){return n[+(n.left===t.site)]}function es(){for(var t,n,e,r,i=0,o=yw.length;i<o;++i)if((t=yw[i])&&(r=(n=t.halfedges).length)){var u=new Array(r),a=new Array(r);for(e=0;e<r;++e)u[e]=e,a[e]=Kc(t,mw[n[e]]);for(u.sort(function(t,n){return a[n]-a[t]}),e=0;e<r;++e)a[e]=n[u[e]];for(e=0;e<r;++e)n[e]=a[e]}}function rs(t,n,e,r){var i,o,u,a,c,s,f,l,h,p,d,v,_=yw.length,y=!0;for(i=0;i<_;++i)if(o=yw[i]){for(u=o.site,c=o.halfedges,a=c.length;a--;)mw[c[a]]||c.splice(a,1);for(a=0,s=c.length;a<s;)p=ns(o,mw[c[a]]),d=p[0],v=p[1],f=ts(o,mw[c[++a%s]]),l=f[0],h=f[1],(Math.abs(d-l)>ww||Math.abs(v-h)>ww)&&(c.splice(a,0,mw.push(Wc(u,p,Math.abs(d-t)<ww&&r-v>ww?[t,Math.abs(l-t)<ww?h:r]:Math.abs(v-r)<ww&&e-d>ww?[Math.abs(h-r)<ww?l:e,r]:Math.abs(d-e)<ww&&v-n>ww?[e,Math.abs(l-e)<ww?h:n]:Math.abs(v-n)<ww&&d-t>ww?[Math.abs(h-n)<ww?l:t,n]:null))-1),++s);s&&(y=!1)}if(y){var g,m,x,b=1/0;for(i=0,y=null;i<_;++i)(o=yw[i])&&(u=o.site,g=u[0]-t,m=u[1]-n,x=g*g+m*m,x<b&&(b=x,y=o));if(y){var w=[t,n],M=[t,r],T=[e,r],N=[e,n];y.halfedges.push(mw.push(Wc(u=y.site,w,M))-1,mw.push(Wc(u,M,T))-1,mw.push(Wc(u,T,N))-1,mw.push(Wc(u,N,w))-1)}}for(i=0;i<_;++i)(o=yw[i])&&(o.halfedges.length||delete yw[i])}function is(){Bc(this),this.x=this.y=this.arc=this.site=this.cy=null}function os(t){var n=t.P,e=t.N;if(n&&e){var r=n.site,i=t.site,o=e.site;if(r!==o){var u=i[0],a=i[1],c=r[0]-u,s=r[1]-a,f=o[0]-u,l=o[1]-a,h=2*(c*l-s*f);if(!(h>=-Mw)){var p=c*c+s*s,d=f*f+l*l,v=(l*p-s*d)/h,_=(c*d-f*p)/h,y=xw.pop()||new is;y.arc=t,y.site=i,y.x=v+u,y.y=(y.cy=_+a)+Math.sqrt(v*v+_*_),t.circle=y;for(var g=null,m=gw._;m;)if(y.y<m.y||y.y===m.y&&y.x<=m.x){if(!m.L){g=m.P;break}m=m.L}else{if(!m.R){g=m;break}m=m.R}gw.insert(g,y),g||(vw=y)}}}}function us(t){var n=t.circle;n&&(n.P||(vw=n.N),gw.remove(n),xw.push(n),Bc(n),t.circle=null)}function as(){Bc(this),this.edge=this.site=this.circle=null}function cs(t){var n=bw.pop()||new as;return n.site=t,n}function ss(t){us(t),_w.remove(t),bw.push(t),Bc(t)}function fs(t){var n=t.circle,e=n.x,r=n.cy,i=[e,r],o=t.P,u=t.N,a=[t];ss(t);for(var c=o;c.circle&&Math.abs(e-c.circle.x)<ww&&Math.abs(r-c.circle.cy)<ww;)o=c.P,a.unshift(c),ss(c),c=o;a.unshift(c),us(c);for(var s=u;s.circle&&Math.abs(e-s.circle.x)<ww&&Math.abs(r-s.circle.cy)<ww;)u=s.N,a.push(s),ss(s),s=u;a.push(s),us(s);var f,l=a.length;for(f=1;f<l;++f)s=a[f],c=a[f-1],$c(s.edge,c.site,s.site,i);c=a[0],s=a[l-1],s.edge=Vc(c.site,s.site,null,i),os(c),os(s)}function ls(t){for(var n,e,r,i,o=t[0],u=t[1],a=_w._;a;)if(r=hs(a,u)-o,r>ww)a=a.L;else{if(i=o-ps(a,u),!(i>ww)){r>-ww?(n=a.P,e=a):i>-ww?(n=a,e=a.N):n=e=a;break}if(!a.R){n=a;break}a=a.R}Qc(t);var c=cs(t);if(_w.insert(n,c),n||e){if(n===e)return us(n),e=cs(n.site),_w.insert(c,e),c.edge=e.edge=Vc(n.site,c.site),os(n),void os(e);if(!e)return void(c.edge=Vc(n.site,c.site));us(n),us(e);var s=n.site,f=s[0],l=s[1],h=t[0]-f,p=t[1]-l,d=e.site,v=d[0]-f,_=d[1]-l,y=2*(h*_-p*v),g=h*h+p*p,m=v*v+_*_,x=[(_*g-p*m)/y+f,(h*m-v*g)/y+l];$c(e.edge,s,d,x),c.edge=Vc(s,t,null,x),e.edge=Vc(t,d,null,x),os(n),os(e)}}function hs(t,n){var e=t.site,r=e[0],i=e[1],o=i-n;if(!o)return r;var u=t.P;if(!u)return-(1/0);e=u.site;var a=e[0],c=e[1],s=c-n;if(!s)return a;var f=a-r,l=1/o-1/s,h=f/s;return l?(-h+Math.sqrt(h*h-2*l*(f*f/(-2*s)-c+s/2+i-o/2)))/l+r:(r+a)/2}function ps(t,n){var e=t.N;if(e)return hs(e,n);var r=t.site;return r[1]===n?r[0]:1/0}function ds(t,n,e){return(t[0]-e[0])*(n[1]-t[1])-(t[0]-n[0])*(e[1]-t[1])}function vs(t,n){return n[1]-t[1]||n[0]-t[0]}function _s(t,n){var e,r,i,o=t.sort(vs).pop();for(mw=[],yw=new Array(t.length),_w=new Yc,gw=new Yc;;)if(i=vw,o&&(!i||o[1]<i.y||o[1]===i.y&&o[0]<i.x))o[0]===e&&o[1]===r||(ls(o),e=o[0],r=o[1]),o=t.pop();else{if(!i)break;fs(i.arc)}if(es(),n){var u=+n[0][0],a=+n[0][1],c=+n[1][0],s=+n[1][1];Jc(u,a,c,s),rs(u,a,c,s)}this.edges=mw,this.cells=yw,_w=gw=mw=yw=null}function ys(t,n,e){this.target=t,this.type=n,this.transform=e}function gs(t,n,e){this.k=t,this.x=n,this.y=e}function ms(t){return t.__zoom||kw}function xs(){t.event.stopImmediatePropagation()}function bs(){return!t.event.button}function ws(){var t,n,e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,t=e.width.baseVal.value,n=e.height.baseVal.value):(t=e.clientWidth,n=e.clientHeight),[[0,0],[t,n]]}function Ms(){return this.__zoom||kw}var Ts="4.5.0",Ns=function(t,n){return t<n?-1:t>n?1:t>=n?0:NaN},ks=function(t){return 1===t.length&&(t=n(t)),{left:function(n,e,r,i){for(null==r&&(r=0),null==i&&(i=n.length);r<i;){var o=r+i>>>1;t(n[o],e)<0?r=o+1:i=o}return r},right:function(n,e,r,i){for(null==r&&(r=0),null==i&&(i=n.length);r<i;){var o=r+i>>>1;t(n[o],e)>0?i=o:r=o+1}return r}}},Ss=ks(Ns),Es=Ss.right,As=Ss.left,Cs=function(t,n){return n<t?-1:n>t?1:n>=t?0:NaN},zs=function(t){return null===t?NaN:+t},Ps=function(t,n){var e,r,i=t.length,o=0,u=0,a=-1,c=0;if(null==n)for(;++a<i;)isNaN(e=zs(t[a]))||(r=e-o,o+=r/++c,u+=r*(e-o));else for(;++a<i;)isNaN(e=zs(n(t[a],a,t)))||(r=e-o,o+=r/++c,u+=r*(e-o));if(c>1)return u/(c-1)},Rs=function(t,n){var e=Ps(t,n);return e?Math.sqrt(e):e},qs=function(t,n){var e,r,i,o=-1,u=t.length;if(null==n){for(;++o<u;)if(null!=(r=t[o])&&r>=r){e=i=r;break}for(;++o<u;)null!=(r=t[o])&&(e>r&&(e=r),i<r&&(i=r))}else{for(;++o<u;)if(null!=(r=n(t[o],o,t))&&r>=r){e=i=r;break}for(;++o<u;)null!=(r=n(t[o],o,t))&&(e>r&&(e=r),i<r&&(i=r))}return[e,i]},Ls=Array.prototype,Us=Ls.slice,Ds=Ls.map,Os=function(t){return function(){return t}},Fs=function(t){return t},Is=function(t,n,e){t=+t,n=+n,e=(i=arguments.length)<2?(n=t,t=0,1):i<3?1:+e;for(var r=-1,i=0|Math.max(0,Math.ceil((n-t)/e)),o=new Array(i);++r<i;)o[r]=t+r*e;return o},Ys=Math.sqrt(50),Bs=Math.sqrt(10),js=Math.sqrt(2),Hs=function(t,n,r){var i=e(t,n,r);return Is(Math.ceil(t/i)*i,Math.floor(n/i)*i+i/2,i)},Xs=function(t){return Math.ceil(Math.log(t.length)/Math.LN2)+1},Vs=function(){function t(t){var i,o,u=t.length,a=new Array(u);for(i=0;i<u;++i)a[i]=n(t[i],i,t);var c=e(a),s=c[0],f=c[1],l=r(a,s,f);Array.isArray(l)||(l=Hs(s,f,l));for(var h=l.length;l[0]<=s;)l.shift(),--h;for(;l[h-1]>=f;)l.pop(),--h;var p,d=new Array(h+1);for(i=0;i<=h;++i)p=d[i]=[],p.x0=i>0?l[i-1]:s,p.x1=i<h?l[i]:f;for(i=0;i<u;++i)o=a[i],s<=o&&o<=f&&d[Es(l,o,0,h)].push(t[i]);return d}var n=Fs,e=qs,r=Xs;return t.value=function(e){return arguments.length?(n="function"==typeof e?e:Os(e),t):n},t.domain=function(n){return arguments.length?(e="function"==typeof n?n:Os([n[0],n[1]]),t):e},t.thresholds=function(n){return arguments.length?(r="function"==typeof n?n:Os(Array.isArray(n)?Us.call(n):n),t):r},t},Ws=function(t,n,e){if(null==e&&(e=zs),r=t.length){if((n=+n)<=0||r<2)return+e(t[0],0,t);if(n>=1)return+e(t[r-1],r-1,t);var r,i=(r-1)*n,o=Math.floor(i),u=+e(t[o],o,t),a=+e(t[o+1],o+1,t);return u+(a-u)*(i-o)}},$s=function(t,n,e){return t=Ds.call(t,zs).sort(Ns),Math.ceil((e-n)/(2*(Ws(t,.75)-Ws(t,.25))*Math.pow(t.length,-1/3)))},Zs=function(t,n,e){return Math.ceil((e-n)/(3.5*Rs(t)*Math.pow(t.length,-1/3)))},Gs=function(t,n){var e,r,i=-1,o=t.length;if(null==n){for(;++i<o;)if(null!=(r=t[i])&&r>=r){e=r;break}for(;++i<o;)null!=(r=t[i])&&r>e&&(e=r)}else{for(;++i<o;)if(null!=(r=n(t[i],i,t))&&r>=r){e=r;break}for(;++i<o;)null!=(r=n(t[i],i,t))&&r>e&&(e=r)}return e},Js=function(t,n){var e,r=0,i=t.length,o=-1,u=i;if(null==n)for(;++o<i;)isNaN(e=zs(t[o]))?--u:r+=e;else for(;++o<i;)isNaN(e=zs(n(t[o],o,t)))?--u:r+=e;if(u)return r/u},Qs=function(t,n){var e,r=[],i=t.length,o=-1;if(null==n)for(;++o<i;)isNaN(e=zs(t[o]))||r.push(e);else for(;++o<i;)isNaN(e=zs(n(t[o],o,t)))||r.push(e);return Ws(r.sort(Ns),.5)},Ks=function(t){for(var n,e,r,i=t.length,o=-1,u=0;++o<i;)u+=t[o].length;for(e=new Array(u);--i>=0;)for(r=t[i],n=r.length;--n>=0;)e[--u]=r[n];return e},tf=function(t,n){var e,r,i=-1,o=t.length;if(null==n){for(;++i<o;)if(null!=(r=t[i])&&r>=r){e=r;break}for(;++i<o;)null!=(r=t[i])&&e>r&&(e=r)}else{for(;++i<o;)if(null!=(r=n(t[i],i,t))&&r>=r){e=r;break}for(;++i<o;)null!=(r=n(t[i],i,t))&&e>r&&(e=r)}return e},nf=function(t){for(var n=0,e=t.length-1,r=t[0],i=new Array(e<0?0:e);n<e;)i[n]=[r,r=t[++n]];return i},ef=function(t,n){for(var e=n.length,r=new Array(e);e--;)r[e]=t[n[e]];return r},rf=function(t,n){if(e=t.length){var e,r,i=0,o=0,u=t[o];for(n||(n=Ns);++i<e;)(n(r=t[i],u)<0||0!==n(u,u))&&(u=r,o=i);return 0===n(u,u)?o:void 0}},of=function(t,n,e){for(var r,i,o=(null==e?t.length:e)-(n=null==n?0:+n);o;)i=Math.random()*o--|0,r=t[o+n],t[o+n]=t[i+n],t[i+n]=r;return t},uf=function(t,n){var e,r=0,i=t.length,o=-1;if(null==n)for(;++o<i;)(e=+t[o])&&(r+=e);else for(;++o<i;)(e=+n(t[o],o,t))&&(r+=e);return r},af=function(t){if(!(o=t.length))return[];for(var n=-1,e=tf(t,r),i=new Array(e);++n<e;)for(var o,u=-1,a=i[n]=new Array(o);++u<o;)a[u]=t[u][n];return i},cf=function(){return af(arguments)},sf=Array.prototype.slice,ff=function(t){return t},lf=1,hf=2,pf=3,df=4,vf=1e-6,_f={value:function(){}};d.prototype=p.prototype={constructor:d,on:function(t,n){var e,r=this._,i=v(t+"",r),o=-1,u=i.length;{if(!(arguments.length<2)){if(null!=n&&"function"!=typeof n)throw new Error("invalid callback: "+n);for(;++o<u;)if(e=(t=i[o]).type)r[e]=y(r[e],t.name,n);else if(null==n)for(e in r)r[e]=y(r[e],t.name,null);return this}for(;++o<u;)if((e=(t=i[o]).type)&&(e=_(r[e],t.name)))return e}},copy:function(){var t={},n=this._;for(var e in n)t[e]=n[e].slice();return new d(t)},call:function(t,n){if((e=arguments.length-2)>0)for(var e,r,i=new Array(e),o=0;o<e;++o)i[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(r=this._[t],o=0,e=r.length;o<e;++o)r[o].value.apply(n,i)},apply:function(t,n,e){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(n,e)}};var yf="http://www.w3.org/1999/xhtml",gf={svg:"http://www.w3.org/2000/svg",xhtml:yf,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},mf=function(t){var n=t+="",e=n.indexOf(":");return e>=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),gf.hasOwnProperty(n)?{space:gf[n],local:t}:t},xf=function(t){var n=mf(t);return(n.local?m:g)(n)},bf=0;b.prototype=x.prototype={constructor:b,get:function(t){for(var n=this._;!(n in t);)if(!(t=t.parentNode))return;return t[n]},set:function(t,n){return t[this._]=n},remove:function(t){return this._ in t&&delete t[this._]},toString:function(){return this._}};var wf=function(t){return function(){return this.matches(t)}};if("undefined"!=typeof document){var Mf=document.documentElement;if(!Mf.matches){var Tf=Mf.webkitMatchesSelector||Mf.msMatchesSelector||Mf.mozMatchesSelector||Mf.oMatchesSelector;wf=function(t){return function(){return Tf.call(this,t)}}}}var Nf=wf,kf={};if(t.event=null,"undefined"!=typeof document){var Sf=document.documentElement;"onmouseenter"in Sf||(kf={mouseenter:"mouseover",mouseleave:"mouseout"})}var Ef=function(t,n,e){var r,i,o=T(t+""),u=o.length;{if(!(arguments.length<2)){for(a=n?k:N,null==e&&(e=!1),r=0;r<u;++r)this.each(a(o[r],n,e));return this}var a=this.node().__on;if(a)for(var c,s=0,f=a.length;s<f;++s)for(r=0,c=a[s];r<u;++r)if((i=o[r]).type===c.type&&i.name===c.name)return c.value}},Af=function(){for(var n,e=t.event;n=e.sourceEvent;)e=n;return e},Cf=function(t,n){var e=t.ownerSVGElement||t;if(e.createSVGPoint){var r=e.createSVGPoint();return r.x=n.clientX,r.y=n.clientY,r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}var i=t.getBoundingClientRect();return[n.clientX-i.left-t.clientLeft,n.clientY-i.top-t.clientTop]},zf=function(t){var n=Af();return n.changedTouches&&(n=n.changedTouches[0]),Cf(t,n)},Pf=function(t){return null==t?E:function(){return this.querySelector(t)}},Rf=function(t){"function"!=typeof t&&(t=Pf(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,u,a=n[i],c=a.length,s=r[i]=new Array(c),f=0;f<c;++f)(o=a[f])&&(u=t.call(o,o.__data__,f,a))&&("__data__"in o&&(u.__data__=o.__data__),s[f]=u);return new pt(r,this._parents)},qf=function(t){return null==t?A:function(){return this.querySelectorAll(t)}},Lf=function(t){"function"!=typeof t&&(t=qf(t));for(var n=this._groups,e=n.length,r=[],i=[],o=0;o<e;++o)for(var u,a=n[o],c=a.length,s=0;s<c;++s)(u=a[s])&&(r.push(t.call(u,u.__data__,s,a)),i.push(u));return new pt(r,i)},Uf=function(t){"function"!=typeof t&&(t=Nf(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,u=n[i],a=u.length,c=r[i]=[],s=0;s<a;++s)(o=u[s])&&t.call(o,o.__data__,s,u)&&c.push(o);return new pt(r,this._parents)},Df=function(t){return new Array(t.length)},Of=function(){return new pt(this._enter||this._groups.map(Df),this._parents)};C.prototype={constructor:C,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};var Ff=function(t){return function(){return t}},If="$",Yf=function(t,n){if(!t)return p=new Array(this.size()),s=-1,this.each(function(t){p[++s]=t}),p;var e=n?P:z,r=this._parents,i=this._groups;"function"!=typeof t&&(t=Ff(t));for(var o=i.length,u=new Array(o),a=new Array(o),c=new Array(o),s=0;s<o;++s){var f=r[s],l=i[s],h=l.length,p=t.call(f,f&&f.__data__,s,r),d=p.length,v=a[s]=new Array(d),_=u[s]=new Array(d),y=c[s]=new Array(h);e(f,l,v,_,y,p,n);for(var g,m,x=0,b=0;x<d;++x)if(g=v[x]){for(x>=b&&(b=x+1);!(m=_[b])&&++b<d;);g._next=m||null}}return u=new pt(u,r),u._enter=a,u._exit=c,u},Bf=function(){return new pt(this._exit||this._groups.map(Df),this._parents)},jf=function(t){for(var n=this._groups,e=t._groups,r=n.length,i=e.length,o=Math.min(r,i),u=new Array(r),a=0;a<o;++a)for(var c,s=n[a],f=e[a],l=s.length,h=u[a]=new Array(l),p=0;p<l;++p)(c=s[p]||f[p])&&(h[p]=c);for(;a<r;++a)u[a]=n[a];return new pt(u,this._parents)},Hf=function(){for(var t=this._groups,n=-1,e=t.length;++n<e;)for(var r,i=t[n],o=i.length-1,u=i[o];--o>=0;)(r=i[o])&&(u&&u!==r.nextSibling&&u.parentNode.insertBefore(r,u),u=r);return this},Xf=function(t){function n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}t||(t=R);for(var e=this._groups,r=e.length,i=new Array(r),o=0;o<r;++o){for(var u,a=e[o],c=a.length,s=i[o]=new Array(c),f=0;f<c;++f)(u=a[f])&&(s[f]=u);s.sort(n)}return new pt(i,this._parents).order()},Vf=function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},Wf=function(){var t=new Array(this.size()),n=-1;return this.each(function(){t[++n]=this}),t},$f=function(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r=t[n],i=0,o=r.length;i<o;++i){var u=r[i];if(u)return u}return null},Zf=function(){var t=0;return this.each(function(){++t}),t},Gf=function(){return!this.node()},Jf=function(t){for(var n=this._groups,e=0,r=n.length;e<r;++e)for(var i,o=n[e],u=0,a=o.length;u<a;++u)(i=o[u])&&t.call(i,i.__data__,u,o);return this},Qf=function(t,n){var e=mf(t);if(arguments.length<2){var r=this.node();return e.local?r.getAttributeNS(e.space,e.local):r.getAttribute(e)}return this.each((null==n?e.local?L:q:"function"==typeof n?e.local?F:O:e.local?D:U)(e,n))},Kf=function(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView},tl=function(t,n,e){var r;return arguments.length>1?this.each((null==n?I:"function"==typeof n?B:Y)(t,n,null==e?"":e)):Kf(r=this.node()).getComputedStyle(r,null).getPropertyValue(t)},nl=function(t,n){return arguments.length>1?this.each((null==n?j:"function"==typeof n?X:H)(t,n)):this.node()[t]};$.prototype={add:function(t){var n=this._names.indexOf(t);n<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var n=this._names.indexOf(t);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var el=function(t,n){var e=V(t+"");if(arguments.length<2){for(var r=W(this.node()),i=-1,o=e.length;++i<o;)if(!r.contains(e[i]))return!1;return!0}return this.each(("function"==typeof n?K:n?J:Q)(e,n))},rl=function(t){return arguments.length?this.each(null==t?tt:("function"==typeof t?et:nt)(t)):this.node().textContent},il=function(t){return arguments.length?this.each(null==t?rt:("function"==typeof t?ot:it)(t)):this.node().innerHTML},ol=function(){return this.each(ut)},ul=function(){return this.each(at)},al=function(t){var n="function"==typeof t?t:xf(t);return this.select(function(){return this.appendChild(n.apply(this,arguments))})},cl=function(t,n){var e="function"==typeof t?t:xf(t),r=null==n?ct:"function"==typeof n?n:Pf(n);return this.select(function(){return this.insertBefore(e.apply(this,arguments),r.apply(this,arguments)||null)})},sl=function(){return this.each(st)},fl=function(t){return arguments.length?this.property("__data__",t):this.node().__data__},ll=function(t,n){return this.each(("function"==typeof n?ht:lt)(t,n))},hl=[null];pt.prototype=dt.prototype={constructor:pt,select:Rf,selectAll:Lf,filter:Uf,data:Yf,enter:Of,exit:Bf,merge:jf,order:Hf,sort:Xf,call:Vf,nodes:Wf,node:$f,size:Zf,empty:Gf,each:Jf,attr:Qf,style:tl,property:nl,classed:el,text:rl,html:il,raise:ol,lower:ul,append:al,insert:cl,remove:sl,datum:fl,on:Ef,dispatch:ll};var pl=function(t){return"string"==typeof t?new pt([[document.querySelector(t)]],[document.documentElement]):new pt([[t]],hl)},dl=function(t){return"string"==typeof t?new pt([document.querySelectorAll(t)],[document.documentElement]):new pt([null==t?[]:t],hl)},vl=function(t,n,e){arguments.length<3&&(e=n,n=Af().changedTouches);for(var r,i=0,o=n?n.length:0;i<o;++i)if((r=n[i]).identifier===e)return Cf(t,r);return null},_l=function(t,n){null==n&&(n=Af().touches);for(var e=0,r=n?n.length:0,i=new Array(r);e<r;++e)i[e]=Cf(t,n[e]);return i},yl=function(){t.event.preventDefault(),t.event.stopImmediatePropagation()},gl=function(t){var n=t.document.documentElement,e=pl(t).on("dragstart.drag",yl,!0);"onselectstart"in n?e.on("selectstart.drag",yl,!0):(n.__noselect=n.style.MozUserSelect,n.style.MozUserSelect="none")},ml=function(t){return function(){return t}};yt.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};var xl=function(){function n(t){t.on("mousedown.drag",e).on("touchstart.drag",o).on("touchmove.drag",u).on("touchend.drag touchcancel.drag",a).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function e(){if(!f&&l.apply(this,arguments)){var n=c("mouse",h.apply(this,arguments),zf,this,arguments);n&&(pl(t.event.view).on("mousemove.drag",r,!0).on("mouseup.drag",i,!0),gl(t.event.view),vt(),s=!1,n("start"))}}function r(){yl(),s=!0,v.mouse("drag")}function i(){pl(t.event.view).on("mousemove.drag mouseup.drag",null),_t(t.event.view,s),yl(),v.mouse("end")}function o(){if(l.apply(this,arguments)){var n,e,r=t.event.changedTouches,i=h.apply(this,arguments),o=r.length;for(n=0;n<o;++n)(e=c(r[n].identifier,i,vl,this,arguments))&&(vt(),e("start"))}}function u(){var n,e,r=t.event.changedTouches,i=r.length;for(n=0;n<i;++n)(e=v[r[n].identifier])&&(yl(),e("drag"))}function a(){var n,e,r=t.event.changedTouches,i=r.length;for(f&&clearTimeout(f),f=setTimeout(function(){f=null},500),n=0;n<i;++n)(e=v[r[n].identifier])&&(vt(),e("end"))}function c(e,r,i,o,u){var a,c,s,f=i(r,e),l=_.copy();if(S(new yt(n,"beforestart",a,e,y,f[0],f[1],0,0,l),function(){return null!=(t.event.subject=a=d.apply(o,u))&&(c=a.x-f[0]||0,s=a.y-f[1]||0,!0)}))return function t(h){var p,d=f;switch(h){case"start":v[e]=t,p=y++;break;case"end":delete v[e],--y;case"drag":f=i(r,e),p=y}S(new yt(n,h,a,e,p,f[0]+c,f[1]+s,f[0]-d[0],f[1]-d[1],l),l.apply,l,[h,o,u])}}var s,f,l=gt,h=mt,d=xt,v={},_=p("start","drag","end"),y=0;return n.filter=function(t){return arguments.length?(l="function"==typeof t?t:ml(!!t),n):l},n.container=function(t){return arguments.length?(h="function"==typeof t?t:ml(t),n):h},n.subject=function(t){return arguments.length?(d="function"==typeof t?t:ml(t),
n):d},n.on=function(){var t=_.on.apply(_,arguments);return t===_?n:t},n},bl=function(t,n,e){t.prototype=n.prototype=e,e.constructor=t},wl=.7,Ml=1/wl,Tl="\\s*([+-]?\\d+)\\s*",Nl="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",kl="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Sl=/^#([0-9a-f]{3})$/,El=/^#([0-9a-f]{6})$/,Al=new RegExp("^rgb\\("+[Tl,Tl,Tl]+"\\)$"),Cl=new RegExp("^rgb\\("+[kl,kl,kl]+"\\)$"),zl=new RegExp("^rgba\\("+[Tl,Tl,Tl,Nl]+"\\)$"),Pl=new RegExp("^rgba\\("+[kl,kl,kl,Nl]+"\\)$"),Rl=new RegExp("^hsl\\("+[Nl,kl,kl]+"\\)$"),ql=new RegExp("^hsla\\("+[Nl,kl,kl,Nl]+"\\)$"),Ll={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};bl(wt,Mt,{displayable:function(){return this.rgb().displayable()},toString:function(){return this.rgb()+""}}),bl(Et,St,bt(wt,{brighter:function(t){return t=null==t?Ml:Math.pow(Ml,t),new Et(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?wl:Math.pow(wl,t),new Et(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return 0<=this.r&&this.r<=255&&0<=this.g&&this.g<=255&&0<=this.b&&this.b<=255&&0<=this.opacity&&this.opacity<=1},toString:function(){var t=this.opacity;return t=isNaN(t)?1:Math.max(0,Math.min(1,t)),(1===t?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}})),bl(Pt,zt,bt(wt,{brighter:function(t){return t=null==t?Ml:Math.pow(Ml,t),new Pt(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?wl:Math.pow(wl,t),new Pt(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*n,i=2*e-r;return new Et(Rt(t>=240?t-240:t+120,i,r),Rt(t,i,r),Rt(t<120?t+240:t-120,i,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1}}));var Ul=Math.PI/180,Dl=180/Math.PI,Ol=18,Fl=.95047,Il=1,Yl=1.08883,Bl=4/29,jl=6/29,Hl=3*jl*jl,Xl=jl*jl*jl;bl(Ut,Lt,bt(wt,{brighter:function(t){return new Ut(this.l+Ol*(null==t?1:t),this.a,this.b,this.opacity)},darker:function(t){return new Ut(this.l-Ol*(null==t?1:t),this.a,this.b,this.opacity)},rgb:function(){var t=(this.l+16)/116,n=isNaN(this.a)?t:t+this.a/500,e=isNaN(this.b)?t:t-this.b/200;return t=Il*Ot(t),n=Fl*Ot(n),e=Yl*Ot(e),new Et(Ft(3.2404542*n-1.5371385*t-.4985314*e),Ft(-.969266*n+1.8760108*t+.041556*e),Ft(.0556434*n-.2040259*t+1.0572252*e),this.opacity)}})),bl(jt,Bt,bt(wt,{brighter:function(t){return new jt(this.h,this.c,this.l+Ol*(null==t?1:t),this.opacity)},darker:function(t){return new jt(this.h,this.c,this.l-Ol*(null==t?1:t),this.opacity)},rgb:function(){return qt(this).rgb()}}));var Vl=-.14861,Wl=1.78277,$l=-.29227,Zl=-.90649,Gl=1.97294,Jl=Gl*Zl,Ql=Gl*Wl,Kl=Wl*$l-Zl*Vl;bl(Vt,Xt,bt(wt,{brighter:function(t){return t=null==t?Ml:Math.pow(Ml,t),new Vt(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?wl:Math.pow(wl,t),new Vt(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=isNaN(this.h)?0:(this.h+120)*Ul,n=+this.l,e=isNaN(this.s)?0:this.s*n*(1-n),r=Math.cos(t),i=Math.sin(t);return new Et(255*(n+e*(Vl*r+Wl*i)),255*(n+e*($l*r+Zl*i)),255*(n+e*(Gl*r)),this.opacity)}}));var th,nh,eh,rh,ih,oh,uh=function(t){var n=t.length-1;return function(e){var r=e<=0?e=0:e>=1?(e=1,n-1):Math.floor(e*n),i=t[r],o=t[r+1],u=r>0?t[r-1]:2*i-o,a=r<n-1?t[r+2]:2*o-i;return Wt((e-r/n)*n,u,i,o,a)}},ah=function(t){var n=t.length;return function(e){var r=Math.floor(((e%=1)<0?++e:e)*n),i=t[(r+n-1)%n],o=t[r%n],u=t[(r+1)%n],a=t[(r+2)%n];return Wt((e-r/n)*n,i,o,u,a)}},ch=function(t){return function(){return t}},sh=function t(n){function e(t,n){var e=r((t=St(t)).r,(n=St(n)).r),i=r(t.g,n.g),o=r(t.b,n.b),u=Qt(t.opacity,n.opacity);return function(n){return t.r=e(n),t.g=i(n),t.b=o(n),t.opacity=u(n),t+""}}var r=Jt(n);return e.gamma=t,e}(1),fh=Kt(uh),lh=Kt(ah),hh=function(t,n){var e,r=n?n.length:0,i=t?Math.min(r,t.length):0,o=new Array(r),u=new Array(r);for(e=0;e<i;++e)o[e]=mh(t[e],n[e]);for(;e<r;++e)u[e]=n[e];return function(t){for(e=0;e<i;++e)u[e]=o[e](t);return u}},ph=function(t,n){var e=new Date;return t=+t,n-=t,function(r){return e.setTime(t+n*r),e}},dh=function(t,n){return t=+t,n-=t,function(e){return t+n*e}},vh=function(t,n){var e,r={},i={};null!==t&&"object"==typeof t||(t={}),null!==n&&"object"==typeof n||(n={});for(e in n)e in t?r[e]=mh(t[e],n[e]):i[e]=n[e];return function(t){for(e in r)i[e]=r[e](t);return i}},_h=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,yh=new RegExp(_h.source,"g"),gh=function(t,n){var e,r,i,o=_h.lastIndex=yh.lastIndex=0,u=-1,a=[],c=[];for(t+="",n+="";(e=_h.exec(t))&&(r=yh.exec(n));)(i=r.index)>o&&(i=n.slice(o,i),a[u]?a[u]+=i:a[++u]=i),(e=e[0])===(r=r[0])?a[u]?a[u]+=r:a[++u]=r:(a[++u]=null,c.push({i:u,x:dh(e,r)})),o=yh.lastIndex;return o<n.length&&(i=n.slice(o),a[u]?a[u]+=i:a[++u]=i),a.length<2?c[0]?nn(c[0].x):tn(n):(n=c.length,function(t){for(var e,r=0;r<n;++r)a[(e=c[r]).i]=e.x(t);return a.join("")})},mh=function(t,n){var e,r=typeof n;return null==n||"boolean"===r?ch(n):("number"===r?dh:"string"===r?(e=Mt(n))?(n=e,sh):gh:n instanceof Mt?sh:n instanceof Date?ph:Array.isArray(n)?hh:isNaN(n)?vh:dh)(t,n)},xh=function(t,n){return t=+t,n-=t,function(e){return Math.round(t+n*e)}},bh=180/Math.PI,wh={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1},Mh=function(t,n,e,r,i,o){var u,a,c;return(u=Math.sqrt(t*t+n*n))&&(t/=u,n/=u),(c=t*e+n*r)&&(e-=t*c,r-=n*c),(a=Math.sqrt(e*e+r*r))&&(e/=a,r/=a,c/=a),t*r<n*e&&(t=-t,n=-n,c=-c,u=-u),{translateX:i,translateY:o,rotate:Math.atan2(n,t)*bh,skewX:Math.atan(c)*bh,scaleX:u,scaleY:a}},Th=on(en,"px, ","px)","deg)"),Nh=on(rn,", ",")",")"),kh=Math.SQRT2,Sh=2,Eh=4,Ah=1e-12,Ch=function(t,n){var e,r,i=t[0],o=t[1],u=t[2],a=n[0],c=n[1],s=n[2],f=a-i,l=c-o,h=f*f+l*l;if(h<Ah)r=Math.log(s/u)/kh,e=function(t){return[i+t*f,o+t*l,u*Math.exp(kh*t*r)]};else{var p=Math.sqrt(h),d=(s*s-u*u+Eh*h)/(2*u*Sh*p),v=(s*s-u*u-Eh*h)/(2*s*Sh*p),_=Math.log(Math.sqrt(d*d+1)-d),y=Math.log(Math.sqrt(v*v+1)-v);r=(y-_)/kh,e=function(t){var n=t*r,e=un(_),a=u/(Sh*p)*(e*cn(kh*n+_)-an(_));return[i+a*f,o+a*l,u*e/un(kh*n+_)]}}return e.duration=1e3*r,e},zh=sn(Gt),Ph=sn(Qt),Rh=ln(Gt),qh=ln(Qt),Lh=hn(Gt),Uh=hn(Qt),Dh=function(t,n){for(var e=new Array(n),r=0;r<n;++r)e[r]=t(r/(n-1));return e},Oh=0,Fh=0,Ih=0,Yh=1e3,Bh=0,jh=0,Hh=0,Xh="object"==typeof performance&&performance.now?performance:Date,Vh="function"==typeof requestAnimationFrame?requestAnimationFrame:function(t){setTimeout(t,17)};vn.prototype=_n.prototype={constructor:vn,restart:function(t,n,e){if("function"!=typeof t)throw new TypeError("callback is not a function");e=(null==e?pn():+e)+(null==n?0:+n),this._next||oh===this||(oh?oh._next=this:ih=this,oh=this),this._call=t,this._time=e,bn()},stop:function(){this._call&&(this._call=null,this._time=1/0,bn())}};var Wh=function(t,n,e){var r=new vn;return n=null==n?0:+n,r.restart(function(e){r.stop(),t(e+n)},n,e),r},$h=function(t,n,e){var r=new vn,i=n;return null==n?(r.restart(t,n,e),r):(n=+n,e=null==e?pn():+e,r.restart(function o(u){u+=i,r.restart(o,i+=n,e),t(u)},n,e),r)},Zh=p("start","end","interrupt"),Gh=[],Jh=0,Qh=1,Kh=2,tp=3,np=4,ep=5,rp=6,ip=function(t,n,e,r,i,o){var u=t.__transition;if(u){if(e in u)return}else t.__transition={};Nn(t,e,{name:n,index:r,group:i,on:Zh,tween:Gh,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:Jh})},op=function(t,n){var e,r,i,o=t.__transition,u=!0;if(o){n=null==n?null:n+"";for(i in o)(e=o[i]).name===n?(r=e.state>Kh&&e.state<ep,e.state=rp,e.timer.stop(),r&&e.on.call("interrupt",t,t.__data__,e.index,e.group),delete o[i]):u=!1;u&&delete t.__transition}},up=function(t){return this.each(function(){op(this,t)})},ap=function(t,n){var e=this._id;if(t+="",arguments.length<2){for(var r,i=Tn(this.node(),e).tween,o=0,u=i.length;o<u;++o)if((r=i[o]).name===t)return r.value;return null}return this.each((null==n?kn:Sn)(e,t,n))},cp=function(t,n){var e;return("number"==typeof n?dh:n instanceof Mt?sh:(e=Mt(n))?(n=e,sh):gh)(t,n)},sp=function(t,n){var e=mf(t),r="transform"===e?Nh:cp;return this.attrTween(t,"function"==typeof n?(e.local?qn:Rn)(e,r,En(this,"attr."+t,n)):null==n?(e.local?Cn:An)(e):(e.local?Pn:zn)(e,r,n))},fp=function(t,n){var e="attr."+t;if(arguments.length<2)return(e=this.tween(e))&&e._value;if(null==n)return this.tween(e,null);if("function"!=typeof n)throw new Error;var r=mf(t);return this.tween(e,(r.local?Ln:Un)(r,n))},lp=function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?Dn:On)(n,t)):Tn(this.node(),n).delay},hp=function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?Fn:In)(n,t)):Tn(this.node(),n).duration},pp=function(t){var n=this._id;return arguments.length?this.each(Yn(n,t)):Tn(this.node(),n).ease},dp=function(t){"function"!=typeof t&&(t=Nf(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,u=n[i],a=u.length,c=r[i]=[],s=0;s<a;++s)(o=u[s])&&t.call(o,o.__data__,s,u)&&c.push(o);return new Qn(r,this._parents,this._name,this._id)},vp=function(t){if(t._id!==this._id)throw new Error;for(var n=this._groups,e=t._groups,r=n.length,i=e.length,o=Math.min(r,i),u=new Array(r),a=0;a<o;++a)for(var c,s=n[a],f=e[a],l=s.length,h=u[a]=new Array(l),p=0;p<l;++p)(c=s[p]||f[p])&&(h[p]=c);for(;a<r;++a)u[a]=n[a];return new Qn(u,this._parents,this._name,this._id)},_p=function(t,n){var e=this._id;return arguments.length<2?Tn(this.node(),e).on.on(t):this.each(jn(e,t,n))},yp=function(){return this.on("end.remove",Hn(this._id))},gp=function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=Pf(t));for(var r=this._groups,i=r.length,o=new Array(i),u=0;u<i;++u)for(var a,c,s=r[u],f=s.length,l=o[u]=new Array(f),h=0;h<f;++h)(a=s[h])&&(c=t.call(a,a.__data__,h,s))&&("__data__"in a&&(c.__data__=a.__data__),l[h]=c,ip(l[h],n,e,h,l,Tn(a,e)));return new Qn(o,this._parents,n,e)},mp=function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=qf(t));for(var r=this._groups,i=r.length,o=[],u=[],a=0;a<i;++a)for(var c,s=r[a],f=s.length,l=0;l<f;++l)if(c=s[l]){for(var h,p=t.call(c,c.__data__,l,s),d=Tn(c,e),v=0,_=p.length;v<_;++v)(h=p[v])&&ip(h,n,e,v,p,d);o.push(p),u.push(c)}return new Qn(o,u,n,e)},xp=dt.prototype.constructor,bp=function(){return new xp(this._groups,this._parents)},wp=function(t,n,e){var r="transform"==(t+="")?Th:cp;return null==n?this.styleTween(t,Xn(t,r)).on("end.style."+t,Vn(t)):this.styleTween(t,"function"==typeof n?$n(t,r,En(this,"style."+t,n)):Wn(t,r,n),e)},Mp=function(t,n,e){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==n)return this.tween(r,null);if("function"!=typeof n)throw new Error;return this.tween(r,Zn(t,n,null==e?"":e))},Tp=function(t){return this.tween("text","function"==typeof t?Jn(En(this,"text",t)):Gn(null==t?"":t+""))},Np=function(){for(var t=this._name,n=this._id,e=te(),r=this._groups,i=r.length,o=0;o<i;++o)for(var u,a=r[o],c=a.length,s=0;s<c;++s)if(u=a[s]){var f=Tn(u,n);ip(u,t,e,s,a,{time:f.time+f.delay+f.duration,delay:0,duration:f.duration,ease:f.ease})}return new Qn(r,this._parents,t,e)},kp=0,Sp=dt.prototype;Qn.prototype=Kn.prototype={constructor:Qn,select:gp,selectAll:mp,filter:dp,merge:vp,selection:bp,transition:Np,call:Sp.call,nodes:Sp.nodes,node:Sp.node,size:Sp.size,empty:Sp.empty,each:Sp.each,on:_p,attr:sp,attrTween:fp,style:wp,styleTween:Mp,text:Tp,remove:yp,tween:ap,delay:lp,duration:hp,ease:pp};var Ep=3,Ap=function t(n){function e(t){return Math.pow(t,n)}return n=+n,e.exponent=t,e}(Ep),Cp=function t(n){function e(t){return 1-Math.pow(1-t,n)}return n=+n,e.exponent=t,e}(Ep),zp=function t(n){function e(t){return((t*=2)<=1?Math.pow(t,n):2-Math.pow(2-t,n))/2}return n=+n,e.exponent=t,e}(Ep),Pp=Math.PI,Rp=Pp/2,qp=4/11,Lp=6/11,Up=8/11,Dp=.75,Op=9/11,Fp=10/11,Ip=.9375,Yp=21/22,Bp=63/64,jp=1/qp/qp,Hp=1.70158,Xp=function t(n){function e(t){return t*t*((n+1)*t-n)}return n=+n,e.overshoot=t,e}(Hp),Vp=function t(n){function e(t){return--t*t*((n+1)*t+n)+1}return n=+n,e.overshoot=t,e}(Hp),Wp=function t(n){function e(t){return((t*=2)<1?t*t*((n+1)*t-n):(t-=2)*t*((n+1)*t+n)+2)/2}return n=+n,e.overshoot=t,e}(Hp),$p=2*Math.PI,Zp=1,Gp=.3,Jp=function t(n,e){function r(t){return n*Math.pow(2,10*--t)*Math.sin((i-t)/e)}var i=Math.asin(1/(n=Math.max(1,n)))*(e/=$p);return r.amplitude=function(n){return t(n,e*$p)},r.period=function(e){return t(n,e)},r}(Zp,Gp),Qp=function t(n,e){function r(t){return 1-n*Math.pow(2,-10*(t=+t))*Math.sin((t+i)/e)}var i=Math.asin(1/(n=Math.max(1,n)))*(e/=$p);return r.amplitude=function(n){return t(n,e*$p)},r.period=function(e){return t(n,e)},r}(Zp,Gp),Kp=function t(n,e){function r(t){return((t=2*t-1)<0?n*Math.pow(2,10*t)*Math.sin((i-t)/e):2-n*Math.pow(2,-10*t)*Math.sin((i+t)/e))/2}var i=Math.asin(1/(n=Math.max(1,n)))*(e/=$p);return r.amplitude=function(n){return t(n,e*$p)},r.period=function(e){return t(n,e)},r}(Zp,Gp),td={time:null,delay:0,duration:250,ease:ae},nd=function(t){var n,e;t instanceof Qn?(n=t._id,t=t._name):(n=te(),(e=td).time=pn(),t=null==t?null:t+"");for(var r=this._groups,i=r.length,o=0;o<i;++o)for(var u,a=r[o],c=a.length,s=0;s<c;++s)(u=a[s])&&ip(u,t,n,s,a,e||xe(u,n));return new Qn(r,this._parents,t,n)};dt.prototype.interrupt=up,dt.prototype.transition=nd;var ed=[null],rd=function(t,n){var e,r,i=t.__transition;if(i){n=null==n?null:n+"";for(r in i)if((e=i[r]).state>Qh&&e.name===n)return new Qn([[t]],ed,n,+r)}return null},id=function(t){return function(){return t}},od=function(t,n,e){this.target=t,this.type=n,this.selection=e},ud=function(){t.event.preventDefault(),t.event.stopImmediatePropagation()},ad={name:"drag"},cd={name:"space"},sd={name:"handle"},fd={name:"center"},ld={name:"x",handles:["e","w"].map(we),input:function(t,n){return t&&[[t[0],n[0][1]],[t[1],n[1][1]]]},output:function(t){return t&&[t[0][0],t[1][0]]}},hd={name:"y",handles:["n","s"].map(we),input:function(t,n){return t&&[[n[0][0],t[0]],[n[1][0],t[1]]]},output:function(t){return t&&[t[0][1],t[1][1]]}},pd={name:"xy",handles:["n","e","s","w","nw","ne","se","sw"].map(we),input:function(t){return t},output:function(t){return t}},dd={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},vd={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},_d={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},yd={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},gd={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1},md=function(){return Ce(pd)},xd=Math.cos,bd=Math.sin,wd=Math.PI,Md=wd/2,Td=2*wd,Nd=Math.max,kd=function(){function t(t){var o,u,a,c,s,f,l=t.length,h=[],p=Is(l),d=[],v=[],_=v.groups=new Array(l),y=new Array(l*l);for(o=0,s=-1;++s<l;){for(u=0,f=-1;++f<l;)u+=t[s][f];h.push(u),d.push(Is(l)),o+=u}for(e&&p.sort(function(t,n){return e(h[t],h[n])}),r&&d.forEach(function(n,e){n.sort(function(n,i){return r(t[e][n],t[e][i])})}),o=Nd(0,Td-n*l)/o,c=o?n:Td/l,u=0,s=-1;++s<l;){for(a=u,f=-1;++f<l;){var g=p[s],m=d[g][f],x=t[g][m],b=u,w=u+=x*o;y[m*l+g]={index:g,subindex:m,startAngle:b,endAngle:w,value:x}}_[g]={index:g,startAngle:a,endAngle:u,value:h[g]},u+=c}for(s=-1;++s<l;)for(f=s-1;++f<l;){var M=y[f*l+s],T=y[s*l+f];(M.value||T.value)&&v.push(M.value<T.value?{source:T,target:M}:{source:M,target:T})}return i?v.sort(i):v}var n=0,e=null,r=null,i=null;return t.padAngle=function(e){return arguments.length?(n=Nd(0,e),t):n},t.sortGroups=function(n){return arguments.length?(e=n,t):e},t.sortSubgroups=function(n){return arguments.length?(r=n,t):r},t.sortChords=function(n){return arguments.length?(null==n?i=null:(i=ze(n))._=n,t):i&&i._},t},Sd=Array.prototype.slice,Ed=function(t){return function(){return t}},Ad=Math.PI,Cd=2*Ad,zd=1e-6,Pd=Cd-zd;Pe.prototype=Re.prototype={constructor:Pe,moveTo:function(t,n){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,n){this._+="L"+(this._x1=+t)+","+(this._y1=+n)},quadraticCurveTo:function(t,n,e,r){this._+="Q"+ +t+","+ +n+","+(this._x1=+e)+","+(this._y1=+r)},bezierCurveTo:function(t,n,e,r,i,o){this._+="C"+ +t+","+ +n+","+ +e+","+ +r+","+(this._x1=+i)+","+(this._y1=+o)},arcTo:function(t,n,e,r,i){t=+t,n=+n,e=+e,r=+r,i=+i;var o=this._x1,u=this._y1,a=e-t,c=r-n,s=o-t,f=u-n,l=s*s+f*f;if(i<0)throw new Error("negative radius: "+i);if(null===this._x1)this._+="M"+(this._x1=t)+","+(this._y1=n);else if(l>zd)if(Math.abs(f*a-c*s)>zd&&i){var h=e-o,p=r-u,d=a*a+c*c,v=h*h+p*p,_=Math.sqrt(d),y=Math.sqrt(l),g=i*Math.tan((Ad-Math.acos((d+l-v)/(2*_*y)))/2),m=g/y,x=g/_;Math.abs(m-1)>zd&&(this._+="L"+(t+m*s)+","+(n+m*f)),this._+="A"+i+","+i+",0,0,"+ +(f*h>s*p)+","+(this._x1=t+x*a)+","+(this._y1=n+x*c)}else this._+="L"+(this._x1=t)+","+(this._y1=n);else;},arc:function(t,n,e,r,i,o){t=+t,n=+n,e=+e;var u=e*Math.cos(r),a=e*Math.sin(r),c=t+u,s=n+a,f=1^o,l=o?r-i:i-r;if(e<0)throw new Error("negative radius: "+e);null===this._x1?this._+="M"+c+","+s:(Math.abs(this._x1-c)>zd||Math.abs(this._y1-s)>zd)&&(this._+="L"+c+","+s),e&&(l>Pd?this._+="A"+e+","+e+",0,1,"+f+","+(t-u)+","+(n-a)+"A"+e+","+e+",0,1,"+f+","+(this._x1=c)+","+(this._y1=s):(l<0&&(l=l%Cd+Cd),this._+="A"+e+","+e+",0,"+ +(l>=Ad)+","+f+","+(this._x1=t+e*Math.cos(i))+","+(this._y1=n+e*Math.sin(i))))},rect:function(t,n,e,r){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)+"h"+ +e+"v"+ +r+"h"+-e+"Z"},toString:function(){return this._}};var Rd=function(){function t(){var t,a=Sd.call(arguments),c=n.apply(this,a),s=e.apply(this,a),f=+r.apply(this,(a[0]=c,a)),l=i.apply(this,a)-Md,h=o.apply(this,a)-Md,p=f*xd(l),d=f*bd(l),v=+r.apply(this,(a[0]=s,a)),_=i.apply(this,a)-Md,y=o.apply(this,a)-Md;if(u||(u=t=Re()),u.moveTo(p,d),u.arc(0,0,f,l,h),l===_&&h===y||(u.quadraticCurveTo(0,0,v*xd(_),v*bd(_)),u.arc(0,0,v,_,y)),u.quadraticCurveTo(0,0,p,d),u.closePath(),t)return u=null,t+""||null}var n=qe,e=Le,r=Ue,i=De,o=Oe,u=null;return t.radius=function(n){return arguments.length?(r="function"==typeof n?n:Ed(+n),t):r},t.startAngle=function(n){return arguments.length?(i="function"==typeof n?n:Ed(+n),t):i},t.endAngle=function(n){return arguments.length?(o="function"==typeof n?n:Ed(+n),t):o},t.source=function(e){return arguments.length?(n=e,t):n},t.target=function(n){return arguments.length?(e=n,t):e},t.context=function(n){return arguments.length?(u=null==n?null:n,t):u},t},qd="$";Fe.prototype=Ie.prototype={constructor:Fe,has:function(t){return qd+t in this},get:function(t){return this[qd+t]},set:function(t,n){return this[qd+t]=n,this},remove:function(t){var n=qd+t;return n in this&&delete this[n]},clear:function(){for(var t in this)t[0]===qd&&delete this[t]},keys:function(){var t=[];for(var n in this)n[0]===qd&&t.push(n.slice(1));return t},values:function(){var t=[];for(var n in this)n[0]===qd&&t.push(this[n]);return t},entries:function(){var t=[];for(var n in this)n[0]===qd&&t.push({key:n.slice(1),value:this[n]});return t},size:function(){var t=0;for(var n in this)n[0]===qd&&++t;return t},empty:function(){for(var t in this)if(t[0]===qd)return!1;return!0},each:function(t){for(var n in this)n[0]===qd&&t(this[n],n.slice(1),this)}};var Ld=function(){function t(n,i,u,a){if(i>=o.length)return null!=r?r(n):null!=e?n.sort(e):n;for(var c,s,f,l=-1,h=n.length,p=o[i++],d=Ie(),v=u();++l<h;)(f=d.get(c=p(s=n[l])+""))?f.push(s):d.set(c,[s]);return d.each(function(n,e){a(v,e,t(n,i,u,a))}),v}function n(t,e){if(++e>o.length)return t;var i,a=u[e-1];return null!=r&&e>=o.length?i=t.entries():(i=[],t.each(function(t,r){i.push({key:r,values:n(t,e)})})),null!=a?i.sort(function(t,n){return a(t.key,n.key)}):i}var e,r,i,o=[],u=[];return i={object:function(n){return t(n,0,Ye,Be)},map:function(n){return t(n,0,je,He)},entries:function(e){return n(t(e,0,je,He),0)},key:function(t){return o.push(t),i},sortKeys:function(t){return u[o.length-1]=t,i},sortValues:function(t){return e=t,i},rollup:function(t){return r=t,i}}},Ud=Ie.prototype;Xe.prototype=Ve.prototype={constructor:Xe,has:Ud.has,add:function(t){return t+="",this[qd+t]=t,this},remove:Ud.remove,clear:Ud.clear,values:Ud.keys,size:Ud.size,empty:Ud.empty,each:Ud.each};var Dd=function(t){var n=[];for(var e in t)n.push(e);return n},Od=function(t){var n=[];for(var e in t)n.push(t[e]);return n},Fd=function(t){var n=[];for(var e in t)n.push({key:e,value:t[e]});return n},Id=function(t){function n(t,n){var r,i,o=e(t,function(t,e){return r?r(t,e-1):(i=t,void(r=n?$e(t,n):We(t)))});return o.columns=i,o}function e(t,n){function e(){if(f>=s)return u;if(i)return i=!1,o;var n,e=f;if(34===t.charCodeAt(e)){for(var r=e;r++<s;)if(34===t.charCodeAt(r)){if(34!==t.charCodeAt(r+1))break;++r}return f=r+2,n=t.charCodeAt(r+1),13===n?(i=!0,10===t.charCodeAt(r+2)&&++f):10===n&&(i=!0),t.slice(e+1,r).replace(/""/g,'"')}for(;f<s;){var a=1;if(n=t.charCodeAt(f++),10===n)i=!0;else if(13===n)i=!0,10===t.charCodeAt(f)&&(++f,++a);else if(n!==c)continue;return t.slice(e,f-a)}return t.slice(e)}for(var r,i,o={},u={},a=[],s=t.length,f=0,l=0;(r=e())!==u;){for(var h=[];r!==o&&r!==u;)h.push(r),r=e();n&&null==(h=n(h,l++))||a.push(h)}return a}function r(n,e){return null==e&&(e=Ze(n)),[e.map(u).join(t)].concat(n.map(function(n){return e.map(function(t){return u(n[t])}).join(t)})).join("\n")}function i(t){return t.map(o).join("\n")}function o(n){return n.map(u).join(t)}function u(t){return null==t?"":a.test(t+="")?'"'+t.replace(/\"/g,'""')+'"':t}var a=new RegExp('["'+t+"\n]"),c=t.charCodeAt(0);return{parse:n,parseRows:e,format:r,formatRows:i}},Yd=Id(","),Bd=Yd.parse,jd=Yd.parseRows,Hd=Yd.format,Xd=Yd.formatRows,Vd=Id("\t"),Wd=Vd.parse,$d=Vd.parseRows,Zd=Vd.format,Gd=Vd.formatRows,Jd=function(t,n){function e(){var e,i,o=r.length,u=0,a=0;for(e=0;e<o;++e)i=r[e],u+=i.x,a+=i.y;for(u=u/o-t,a=a/o-n,e=0;e<o;++e)i=r[e],i.x-=u,i.y-=a}var r;return null==t&&(t=0),null==n&&(n=0),e.initialize=function(t){r=t},e.x=function(n){return arguments.length?(t=+n,e):t},e.y=function(t){return arguments.length?(n=+t,e):n},e},Qd=function(t){return function(){return t}},Kd=function(){return 1e-6*(Math.random()-.5)},tv=function(t){var n=+this._x.call(null,t),e=+this._y.call(null,t);return Ge(this.cover(n,e),n,e,t)},nv=function(t,n){if(isNaN(t=+t)||isNaN(n=+n))return this;var e=this._x0,r=this._y0,i=this._x1,o=this._y1;if(isNaN(e))i=(e=Math.floor(t))+1,o=(r=Math.floor(n))+1;else{if(!(e>t||t>i||r>n||n>o))return this;var u,a,c=i-e,s=this._root;switch(a=(n<(r+o)/2)<<1|t<(e+i)/2){case 0:do u=new Array(4),u[a]=s,s=u;while(c*=2,i=e+c,o=r+c,t>i||n>o);break;case 1:do u=new Array(4),u[a]=s,s=u;while(c*=2,e=i-c,o=r+c,e>t||n>o);break;case 2:do u=new Array(4),u[a]=s,s=u;while(c*=2,i=e+c,r=o-c,t>i||r>n);break;case 3:do u=new Array(4),u[a]=s,s=u;while(c*=2,e=i-c,r=o-c,e>t||r>n)}this._root&&this._root.length&&(this._root=s)}return this._x0=e,this._y0=r,this._x1=i,this._y1=o,this},ev=function(){var t=[];return this.visit(function(n){if(!n.length)do t.push(n.data);while(n=n.next)}),t},rv=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},iv=function(t,n,e,r,i){this.node=t,this.x0=n,this.y0=e,this.x1=r,this.y1=i},ov=function(t,n,e){var r,i,o,u,a,c,s,f=this._x0,l=this._y0,h=this._x1,p=this._y1,d=[],v=this._root;for(v&&d.push(new iv(v,f,l,h,p)),null==e?e=1/0:(f=t-e,l=n-e,h=t+e,p=n+e,e*=e);c=d.pop();)if(!(!(v=c.node)||(i=c.x0)>h||(o=c.y0)>p||(u=c.x1)<f||(a=c.y1)<l))if(v.length){var _=(i+u)/2,y=(o+a)/2;d.push(new iv(v[3],_,y,u,a),new iv(v[2],i,y,_,a),new iv(v[1],_,o,u,y),new iv(v[0],i,o,_,y)),(s=(n>=y)<<1|t>=_)&&(c=d[d.length-1],d[d.length-1]=d[d.length-1-s],d[d.length-1-s]=c)}else{var g=t-+this._x.call(null,v.data),m=n-+this._y.call(null,v.data),x=g*g+m*m;if(x<e){var b=Math.sqrt(e=x);f=t-b,l=n-b,h=t+b,p=n+b,r=v.data}}return r},uv=function(t){if(isNaN(o=+this._x.call(null,t))||isNaN(u=+this._y.call(null,t)))return this;var n,e,r,i,o,u,a,c,s,f,l,h,p=this._root,d=this._x0,v=this._y0,_=this._x1,y=this._y1;if(!p)return this;if(p.length)for(;;){if((s=o>=(a=(d+_)/2))?d=a:_=a,(f=u>=(c=(v+y)/2))?v=c:y=c,n=p,!(p=p[l=f<<1|s]))return this;if(!p.length)break;(n[l+1&3]||n[l+2&3]||n[l+3&3])&&(e=n,h=l)}for(;p.data!==t;)if(r=p,!(p=p.next))return this;return(i=p.next)&&delete p.next,r?(i?r.next=i:delete r.next,this):n?(i?n[l]=i:delete n[l],(p=n[0]||n[1]||n[2]||n[3])&&p===(n[3]||n[2]||n[1]||n[0])&&!p.length&&(e?e[h]=p:this._root=p),this):(this._root=i,this)},av=function(){return this._root},cv=function(){var t=0;return this.visit(function(n){if(!n.length)do++t;while(n=n.next)}),t},sv=function(t){var n,e,r,i,o,u,a=[],c=this._root;for(c&&a.push(new iv(c,this._x0,this._y0,this._x1,this._y1));n=a.pop();)if(!t(c=n.node,r=n.x0,i=n.y0,o=n.x1,u=n.y1)&&c.length){var s=(r+o)/2,f=(i+u)/2;(e=c[3])&&a.push(new iv(e,s,f,o,u)),(e=c[2])&&a.push(new iv(e,r,f,s,u)),(e=c[1])&&a.push(new iv(e,s,i,o,f)),(e=c[0])&&a.push(new iv(e,r,i,s,f))}return this},fv=function(t){var n,e=[],r=[];for(this._root&&e.push(new iv(this._root,this._x0,this._y0,this._x1,this._y1));n=e.pop();){var i=n.node;if(i.length){var o,u=n.x0,a=n.y0,c=n.x1,s=n.y1,f=(u+c)/2,l=(a+s)/2;(o=i[0])&&e.push(new iv(o,u,a,f,l)),(o=i[1])&&e.push(new iv(o,f,a,c,l)),(o=i[2])&&e.push(new iv(o,u,l,f,s)),(o=i[3])&&e.push(new iv(o,f,l,c,s))}r.push(n)}for(;n=r.pop();)t(n.node,n.x0,n.y0,n.x1,n.y1);return this},lv=function(t){return arguments.length?(this._x=t,this):this._x},hv=function(t){return arguments.length?(this._y=t,this):this._y},pv=nr.prototype=er.prototype;pv.copy=function(){var t,n,e=new er(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return e;if(!r.length)return e._root=rr(r),e;for(t=[{source:r,target:e._root=new Array(4)}];r=t.pop();)for(var i=0;i<4;++i)(n=r.source[i])&&(n.length?t.push({source:n,target:r.target[i]=new Array(4)}):r.target[i]=rr(n));return e},pv.add=tv,pv.addAll=Je,pv.cover=nv,pv.data=ev,pv.extent=rv,pv.find=ov,pv.remove=uv,pv.removeAll=Qe,pv.root=av,pv.size=cv,pv.visit=sv,pv.visitAfter=fv,pv.x=lv,pv.y=hv;var dv,vv=function(t){function n(){function t(t,n,e,r,i){var o=t.data,a=t.r,p=l+a;{if(!o)return n>s+p||r<s-p||e>f+p||i<f-p;if(o.index>c.index){var d=s-o.x-o.vx,v=f-o.y-o.vy,_=d*d+v*v;_<p*p&&(0===d&&(d=Kd(),_+=d*d),0===v&&(v=Kd(),_+=v*v),_=(p-(_=Math.sqrt(_)))/_*u,c.vx+=(d*=_)*(p=(a*=a)/(h+a)),c.vy+=(v*=_)*p,o.vx-=d*(p=1-p),o.vy-=v*p)}}}for(var n,r,c,s,f,l,h,p=i.length,d=0;d<a;++d)for(r=nr(i,ir,or).visitAfter(e),n=0;n<p;++n)c=i[n],l=o[c.index],h=l*l,s=c.x+c.vx,f=c.y+c.vy,r.visit(t)}function e(t){if(t.data)return t.r=o[t.data.index];for(var n=t.r=0;n<4;++n)t[n]&&t[n].r>t.r&&(t.r=t[n].r)}function r(){if(i){var n,e,r=i.length;for(o=new Array(r),n=0;n<r;++n)e=i[n],o[e.index]=+t(e,n,i)}}var i,o,u=1,a=1;return"function"!=typeof t&&(t=Qd(null==t?1:+t)),n.initialize=function(t){i=t,r()},n.iterations=function(t){return arguments.length?(a=+t,n):a},n.strength=function(t){return arguments.length?(u=+t,n):u},n.radius=function(e){return arguments.length?(t="function"==typeof e?e:Qd(+e),r(),n):t},n},_v=function(t){function n(t){return 1/Math.min(s[t.source.index],s[t.target.index])}function e(n){for(var e=0,r=t.length;e<d;++e)for(var i,o,c,s,l,h,p,v=0;v<r;++v)i=t[v],o=i.source,c=i.target,s=c.x+c.vx-o.x-o.vx||Kd(),l=c.y+c.vy-o.y-o.vy||Kd(),h=Math.sqrt(s*s+l*l),h=(h-a[v])/h*n*u[v],s*=h,l*=h,c.vx-=s*(p=f[v]),c.vy-=l*p,o.vx+=s*(p=1-p),o.vy+=l*p}function r(){if(c){var n,e,r=c.length,h=t.length,p=Ie(c,l);for(n=0,s=new Array(r);n<h;++n)e=t[n],e.index=n,"object"!=typeof e.source&&(e.source=ar(p,e.source)),"object"!=typeof e.target&&(e.target=ar(p,e.target)),s[e.source.index]=(s[e.source.index]||0)+1,s[e.target.index]=(s[e.target.index]||0)+1;for(n=0,f=new Array(h);n<h;++n)e=t[n],f[n]=s[e.source.index]/(s[e.source.index]+s[e.target.index]);u=new Array(h),i(),a=new Array(h),o()}}function i(){if(c)for(var n=0,e=t.length;n<e;++n)u[n]=+h(t[n],n,t)}function o(){if(c)for(var n=0,e=t.length;n<e;++n)a[n]=+p(t[n],n,t)}var u,a,c,s,f,l=ur,h=n,p=Qd(30),d=1;return null==t&&(t=[]),e.initialize=function(t){c=t,r()},e.links=function(n){return arguments.length?(t=n,r(),e):t},e.id=function(t){return arguments.length?(l=t,e):l},e.iterations=function(t){return arguments.length?(d=+t,e):d},e.strength=function(t){return arguments.length?(h="function"==typeof t?t:Qd(+t),i(),e):h},e.distance=function(t){return arguments.length?(p="function"==typeof t?t:Qd(+t),o(),e):p},e},yv=10,gv=Math.PI*(3-Math.sqrt(5)),mv=function(t){function n(){e(),d.call("tick",o),u<a&&(h.stop(),d.call("end",o))}function e(){var n,e,r=t.length;for(u+=(s-u)*c,l.each(function(t){t(u)}),n=0;n<r;++n)e=t[n],null==e.fx?e.x+=e.vx*=f:(e.x=e.fx,e.vx=0),null==e.fy?e.y+=e.vy*=f:(e.y=e.fy,e.vy=0)}function r(){for(var n,e=0,r=t.length;e<r;++e){if(n=t[e],n.index=e,isNaN(n.x)||isNaN(n.y)){var i=yv*Math.sqrt(e),o=e*gv;n.x=i*Math.cos(o),n.y=i*Math.sin(o)}(isNaN(n.vx)||isNaN(n.vy))&&(n.vx=n.vy=0)}}function i(n){return n.initialize&&n.initialize(t),n}var o,u=1,a=.001,c=1-Math.pow(a,1/300),s=0,f=.6,l=Ie(),h=_n(n),d=p("tick","end");return null==t&&(t=[]),r(),o={tick:e,restart:function(){return h.restart(n),o},stop:function(){return h.stop(),o},nodes:function(n){return arguments.length?(t=n,r(),l.each(i),o):t},alpha:function(t){return arguments.length?(u=+t,o):u},alphaMin:function(t){return arguments.length?(a=+t,o):a},alphaDecay:function(t){return arguments.length?(c=+t,o):+c},alphaTarget:function(t){
return arguments.length?(s=+t,o):s},velocityDecay:function(t){return arguments.length?(f=1-t,o):1-f},force:function(t,n){return arguments.length>1?(null==n?l.remove(t):l.set(t,i(n)),o):l.get(t)},find:function(n,e,r){var i,o,u,a,c,s=0,f=t.length;for(null==r?r=1/0:r*=r,s=0;s<f;++s)a=t[s],i=n-a.x,o=e-a.y,u=i*i+o*o,u<r&&(c=a,r=u);return c},on:function(t,n){return arguments.length>1?(d.on(t,n),o):d.on(t)}}},xv=function(){function t(t){var n,a=i.length,c=nr(i,cr,sr).visitAfter(e);for(u=t,n=0;n<a;++n)o=i[n],c.visit(r)}function n(){if(i){var t,n,e=i.length;for(a=new Array(e),t=0;t<e;++t)n=i[t],a[n.index]=+c(n,t,i)}}function e(t){var n,e,r,i,o,u=0;if(t.length){for(r=i=o=0;o<4;++o)(n=t[o])&&(e=n.value)&&(u+=e,r+=e*n.x,i+=e*n.y);t.x=r/u,t.y=i/u}else{n=t,n.x=n.data.x,n.y=n.data.y;do u+=a[n.data.index];while(n=n.next)}t.value=u}function r(t,n,e,r){if(!t.value)return!0;var i=t.x-o.x,c=t.y-o.y,h=r-n,p=i*i+c*c;if(h*h/l<p)return p<f&&(0===i&&(i=Kd(),p+=i*i),0===c&&(c=Kd(),p+=c*c),p<s&&(p=Math.sqrt(s*p)),o.vx+=i*t.value*u/p,o.vy+=c*t.value*u/p),!0;if(!(t.length||p>=f)){(t.data!==o||t.next)&&(0===i&&(i=Kd(),p+=i*i),0===c&&(c=Kd(),p+=c*c),p<s&&(p=Math.sqrt(s*p)));do t.data!==o&&(h=a[t.data.index]*u/p,o.vx+=i*h,o.vy+=c*h);while(t=t.next)}}var i,o,u,a,c=Qd(-30),s=1,f=1/0,l=.81;return t.initialize=function(t){i=t,n()},t.strength=function(e){return arguments.length?(c="function"==typeof e?e:Qd(+e),n(),t):c},t.distanceMin=function(n){return arguments.length?(s=n*n,t):Math.sqrt(s)},t.distanceMax=function(n){return arguments.length?(f=n*n,t):Math.sqrt(f)},t.theta=function(n){return arguments.length?(l=n*n,t):Math.sqrt(l)},t},bv=function(t){function n(t){for(var n,e=0,u=r.length;e<u;++e)n=r[e],n.vx+=(o[e]-n.x)*i[e]*t}function e(){if(r){var n,e=r.length;for(i=new Array(e),o=new Array(e),n=0;n<e;++n)i[n]=isNaN(o[n]=+t(r[n],n,r))?0:+u(r[n],n,r)}}var r,i,o,u=Qd(.1);return"function"!=typeof t&&(t=Qd(null==t?0:+t)),n.initialize=function(t){r=t,e()},n.strength=function(t){return arguments.length?(u="function"==typeof t?t:Qd(+t),e(),n):u},n.x=function(r){return arguments.length?(t="function"==typeof r?r:Qd(+r),e(),n):t},n},wv=function(t){function n(t){for(var n,e=0,u=r.length;e<u;++e)n=r[e],n.vy+=(o[e]-n.y)*i[e]*t}function e(){if(r){var n,e=r.length;for(i=new Array(e),o=new Array(e),n=0;n<e;++n)i[n]=isNaN(o[n]=+t(r[n],n,r))?0:+u(r[n],n,r)}}var r,i,o,u=Qd(.1);return"function"!=typeof t&&(t=Qd(null==t?0:+t)),n.initialize=function(t){r=t,e()},n.strength=function(t){return arguments.length?(u="function"==typeof t?t:Qd(+t),e(),n):u},n.y=function(r){return arguments.length?(t="function"==typeof r?r:Qd(+r),e(),n):t},n},Mv=function(t,n){if((e=(t=n?t.toExponential(n-1):t.toExponential()).indexOf("e"))<0)return null;var e,r=t.slice(0,e);return[r.length>1?r[0]+r.slice(2):r,+t.slice(e+1)]},Tv=function(t){return t=Mv(Math.abs(t)),t?t[1]:NaN},Nv=function(t,n){return function(e,r){for(var i=e.length,o=[],u=0,a=t[0],c=0;i>0&&a>0&&(c+a+1>r&&(a=Math.max(1,r-c)),o.push(e.substring(i-=a,i+a)),!((c+=a+1)>r));)a=t[u=(u+1)%t.length];return o.reverse().join(n)}},kv=function(t,n){t=t.toPrecision(n);t:for(var e,r=t.length,i=1,o=-1;i<r;++i)switch(t[i]){case".":o=e=i;break;case"0":0===o&&(o=i),e=i;break;case"e":break t;default:o>0&&(o=0)}return o>0?t.slice(0,o)+t.slice(e+1):t},Sv=function(t,n){var e=Mv(t,n);if(!e)return t+"";var r=e[0],i=e[1],o=i-(dv=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,u=r.length;return o===u?r:o>u?r+new Array(o-u+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+Mv(t,Math.max(0,n+o-1))[0]},Ev=function(t,n){var e=Mv(t,n);if(!e)return t+"";var r=e[0],i=e[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")},Av={"":kv,"%":function(t,n){return(100*t).toFixed(n)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+""},d:function(t){return Math.round(t).toString(10)},e:function(t,n){return t.toExponential(n)},f:function(t,n){return t.toFixed(n)},g:function(t,n){return t.toPrecision(n)},o:function(t){return Math.round(t).toString(8)},p:function(t,n){return Ev(100*t,n)},r:Ev,s:Sv,X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}},Cv=/^(?:(.)?([<>=^]))?([+\-\( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?([a-z%])?$/i,zv=function(t){return new fr(t)};fr.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(null==this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(null==this.precision?"":"."+Math.max(0,0|this.precision))+this.type};var Pv,Rv=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"],qv=function(t){function n(t){function n(t){var n,i,c,g=d,m=v;if("c"===p)m=_(t)+m,t="";else{t=+t;var x=(t<0||1/t<0)&&(t*=-1,!0);if(t=_(t,h),x)for(n=-1,i=t.length,x=!1;++n<i;)if(c=t.charCodeAt(n),48<c&&c<58||"x"===p&&96<c&&c<103||"X"===p&&64<c&&c<71){x=!0;break}if(g=(x?"("===a?a:"-":"-"===a||"("===a?"":a)+g,m=m+("s"===p?Rv[8+dv/3]:"")+(x&&"("===a?")":""),y)for(n=-1,i=t.length;++n<i;)if(c=t.charCodeAt(n),48>c||c>57){m=(46===c?o+t.slice(n+1):t.slice(n))+m,t=t.slice(0,n);break}}l&&!s&&(t=r(t,1/0));var b=g.length+t.length+m.length,w=b<f?new Array(f-b+1).join(e):"";switch(l&&s&&(t=r(w+t,w.length?f-m.length:1/0),w=""),u){case"<":return g+t+m+w;case"=":return g+w+t+m;case"^":return w.slice(0,b=w.length>>1)+g+t+m+w.slice(b)}return w+g+t+m}t=zv(t);var e=t.fill,u=t.align,a=t.sign,c=t.symbol,s=t.zero,f=t.width,l=t.comma,h=t.precision,p=t.type,d="$"===c?i[0]:"#"===c&&/[boxX]/.test(p)?"0"+p.toLowerCase():"",v="$"===c?i[1]:/[%p]/.test(p)?"%":"",_=Av[p],y=!p||/[defgprs%]/.test(p);return h=null==h?p?6:12:/[gprs]/.test(p)?Math.max(1,Math.min(21,h)):Math.max(0,Math.min(20,h)),n.toString=function(){return t+""},n}function e(t,e){var r=n((t=zv(t),t.type="f",t)),i=3*Math.max(-8,Math.min(8,Math.floor(Tv(e)/3))),o=Math.pow(10,-i),u=Rv[8+i/3];return function(t){return r(o*t)+u}}var r=t.grouping&&t.thousands?Nv(t.grouping,t.thousands):lr,i=t.currency,o=t.decimal;return{format:n,formatPrefix:e}};hr({decimal:".",thousands:",",grouping:[3],currency:["$",""]});var Lv=function(t){return Math.max(0,-Tv(Math.abs(t)))},Uv=function(t,n){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Tv(n)/3)))-Tv(Math.abs(t)))},Dv=function(t,n){return t=Math.abs(t),n=Math.abs(n)-t,Math.max(0,Tv(n)-Tv(t))+1},Ov=function(){return new pr};pr.prototype={constructor:pr,reset:function(){this.s=this.t=0},add:function(t){dr(__,t,this.t),dr(this,__.s,this.s),this.s?this.t+=__.t:this.s=__.t},valueOf:function(){return this.s}};var Fv,Iv,Yv,Bv,jv,Hv,Xv,Vv,Wv,$v,Zv,Gv,Jv,Qv,Kv,t_,n_,e_,r_,i_,o_,u_,a_,c_,s_,f_,l_,h_,p_,d_,v_,__=new pr,y_=1e-6,g_=1e-12,m_=Math.PI,x_=m_/2,b_=m_/4,w_=2*m_,M_=180/m_,T_=m_/180,N_=Math.abs,k_=Math.atan,S_=Math.atan2,E_=Math.cos,A_=Math.ceil,C_=Math.exp,z_=Math.log,P_=Math.pow,R_=Math.sin,q_=Math.sign||function(t){return t>0?1:t<0?-1:0},L_=Math.sqrt,U_=Math.tan,D_={Feature:function(t,n){mr(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r<i;)mr(e[r].geometry,n)}},O_={Sphere:function(t,n){n.sphere()},Point:function(t,n){t=t.coordinates,n.point(t[0],t[1],t[2])},MultiPoint:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)t=e[r],n.point(t[0],t[1],t[2])},LineString:function(t,n){xr(t.coordinates,n,0)},MultiLineString:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)xr(e[r],n,0)},Polygon:function(t,n){br(t.coordinates,n)},MultiPolygon:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)br(e[r],n)},GeometryCollection:function(t,n){for(var e=t.geometries,r=-1,i=e.length;++r<i;)mr(e[r],n)}},F_=function(t,n){t&&D_.hasOwnProperty(t.type)?D_[t.type](t,n):mr(t,n)},I_=Ov(),Y_=Ov(),B_={point:gr,lineStart:gr,lineEnd:gr,polygonStart:function(){I_.reset(),B_.lineStart=wr,B_.lineEnd=Mr},polygonEnd:function(){var t=+I_;Y_.add(t<0?w_+t:t),this.lineStart=this.lineEnd=this.point=gr},sphere:function(){Y_.add(w_)}},j_=function(t){return Y_.reset(),F_(t,B_),2*Y_},H_=Ov(),X_={point:Rr,lineStart:Lr,lineEnd:Ur,polygonStart:function(){X_.point=Dr,X_.lineStart=Or,X_.lineEnd=Fr,H_.reset(),B_.polygonStart()},polygonEnd:function(){B_.polygonEnd(),X_.point=Rr,X_.lineStart=Lr,X_.lineEnd=Ur,I_<0?(Hv=-(Vv=180),Xv=-(Wv=90)):H_>y_?Wv=90:H_<-y_&&(Xv=-90),Kv[0]=Hv,Kv[1]=Vv}},V_=function(t){var n,e,r,i,o,u,a;if(Wv=Vv=-(Hv=Xv=1/0),Qv=[],F_(t,X_),e=Qv.length){for(Qv.sort(Yr),n=1,r=Qv[0],o=[r];n<e;++n)i=Qv[n],Br(r,i[0])||Br(r,i[1])?(Ir(r[0],i[1])>Ir(r[0],r[1])&&(r[1]=i[1]),Ir(i[0],r[1])>Ir(r[0],r[1])&&(r[0]=i[0])):o.push(r=i);for(u=-(1/0),e=o.length-1,n=0,r=o[e];n<=e;r=i,++n)i=o[n],(a=Ir(r[1],i[0]))>u&&(u=a,Hv=i[0],Vv=r[1])}return Qv=Kv=null,Hv===1/0||Xv===1/0?[[NaN,NaN],[NaN,NaN]]:[[Hv,Xv],[Vv,Wv]]},W_={sphere:gr,point:jr,lineStart:Xr,lineEnd:$r,polygonStart:function(){W_.lineStart=Zr,W_.lineEnd=Gr},polygonEnd:function(){W_.lineStart=Xr,W_.lineEnd=$r}},$_=function(t){t_=n_=e_=r_=i_=o_=u_=a_=c_=s_=f_=0,F_(t,W_);var n=c_,e=s_,r=f_,i=n*n+e*e+r*r;return i<g_&&(n=o_,e=u_,r=a_,n_<y_&&(n=e_,e=r_,r=i_),i=n*n+e*e+r*r,i<g_)?[NaN,NaN]:[S_(e,n)*M_,_r(r/L_(i))*M_]},Z_=function(t){return function(){return t}},G_=function(t,n){function e(e,r){return e=t(e,r),n(e[0],e[1])}return t.invert&&n.invert&&(e.invert=function(e,r){return e=n.invert(e,r),e&&t.invert(e[0],e[1])}),e};Kr.invert=Kr;var J_,Q_,K_,ty,ny,ey,ry,iy,oy,uy,ay,cy=function(t){function n(n){return n=t(n[0]*T_,n[1]*T_),n[0]*=M_,n[1]*=M_,n}return t=ti(t[0]*T_,t[1]*T_,t.length>2?t[2]*T_:0),n.invert=function(n){return n=t.invert(n[0]*T_,n[1]*T_),n[0]*=M_,n[1]*=M_,n},n},sy=function(){function t(t,n){e.push(t=r(t,n)),t[0]*=M_,t[1]*=M_}function n(){var t=i.apply(this,arguments),n=o.apply(this,arguments)*T_,c=u.apply(this,arguments)*T_;return e=[],r=ti(-t[0]*T_,-t[1]*T_,0).invert,ii(a,n,c,1),t={type:"Polygon",coordinates:[e]},e=r=null,t}var e,r,i=Z_([0,0]),o=Z_(90),u=Z_(6),a={point:t};return n.center=function(t){return arguments.length?(i="function"==typeof t?t:Z_([+t[0],+t[1]]),n):i},n.radius=function(t){return arguments.length?(o="function"==typeof t?t:Z_(+t),n):o},n.precision=function(t){return arguments.length?(u="function"==typeof t?t:Z_(+t),n):u},n},fy=function(){var t,n=[];return{point:function(n,e){t.push([n,e])},lineStart:function(){n.push(t=[])},lineEnd:gr,rejoin:function(){n.length>1&&n.push(n.pop().concat(n.shift()))},result:function(){var e=n;return n=[],t=null,e}}},ly=function(t,n,e,r,i,o){var u,a=t[0],c=t[1],s=n[0],f=n[1],l=0,h=1,p=s-a,d=f-c;if(u=e-a,p||!(u>0)){if(u/=p,p<0){if(u<l)return;u<h&&(h=u)}else if(p>0){if(u>h)return;u>l&&(l=u)}if(u=i-a,p||!(u<0)){if(u/=p,p<0){if(u>h)return;u>l&&(l=u)}else if(p>0){if(u<l)return;u<h&&(h=u)}if(u=r-c,d||!(u>0)){if(u/=d,d<0){if(u<l)return;u<h&&(h=u)}else if(d>0){if(u>h)return;u>l&&(l=u)}if(u=o-c,d||!(u<0)){if(u/=d,d<0){if(u>h)return;u>l&&(l=u)}else if(d>0){if(u<l)return;u<h&&(h=u)}return l>0&&(t[0]=a+l*p,t[1]=c+l*d),h<1&&(n[0]=a+h*p,n[1]=c+h*d),!0}}}}},hy=function(t,n){return N_(t[0]-n[0])<y_&&N_(t[1]-n[1])<y_},py=function(t,n,e,r,i){var o,u,a=[],c=[];if(t.forEach(function(t){if(!((n=t.length-1)<=0)){var n,e,r=t[0],u=t[n];if(hy(r,u)){for(i.lineStart(),o=0;o<n;++o)i.point((r=t[o])[0],r[1]);return void i.lineEnd()}a.push(e=new ui(r,t,null,!0)),c.push(e.o=new ui(r,null,e,!1)),a.push(e=new ui(u,t,null,!1)),c.push(e.o=new ui(u,null,e,!0))}}),a.length){for(c.sort(n),ai(a),ai(c),o=0,u=c.length;o<u;++o)c[o].e=e=!e;for(var s,f,l=a[0];;){for(var h=l,p=!0;h.v;)if((h=h.n)===l)return;s=h.z,i.lineStart();do{if(h.v=h.o.v=!0,h.e){if(p)for(o=0,u=s.length;o<u;++o)i.point((f=s[o])[0],f[1]);else r(h.x,h.n.x,1,i);h=h.n}else{if(p)for(s=h.p.z,o=s.length-1;o>=0;--o)i.point((f=s[o])[0],f[1]);else r(h.x,h.p.x,-1,i);h=h.p}h=h.o,s=h.z,p=!p}while(!h.v);i.lineEnd()}}},dy=1e9,vy=-dy,_y=function(){var t,n,e,r=0,i=0,o=960,u=500;return e={stream:function(e){return t&&n===e?t:t=ci(r,i,o,u)(n=e)},extent:function(a){return arguments.length?(r=+a[0][0],i=+a[0][1],o=+a[1][0],u=+a[1][1],t=n=null,e):[[r,i],[o,u]]}}},yy=Ov(),gy={sphere:gr,point:gr,lineStart:si,lineEnd:gr,polygonStart:gr,polygonEnd:gr},my=function(t){return yy.reset(),F_(t,gy),+yy},xy=[null,null],by={type:"LineString",coordinates:xy},wy=function(t,n){return xy[0]=t,xy[1]=n,my(by)},My=function(t,n){var e=t[0]*T_,r=t[1]*T_,i=n[0]*T_,o=n[1]*T_,u=E_(r),a=R_(r),c=E_(o),s=R_(o),f=u*E_(e),l=u*R_(e),h=c*E_(i),p=c*R_(i),d=2*_r(L_(yr(o-r)+u*c*yr(i-e))),v=R_(d),_=d?function(t){var n=R_(t*=d)/v,e=R_(d-t)/v,r=e*f+n*h,i=e*l+n*p,o=e*a+n*s;return[S_(i,r)*M_,S_(o,L_(r*r+i*i))*M_]}:function(){return[e*M_,r*M_]};return _.distance=d,_},Ty=function(t){return t},Ny=Ov(),ky=Ov(),Sy={point:gr,lineStart:gr,lineEnd:gr,polygonStart:function(){Sy.lineStart=yi,Sy.lineEnd=xi},polygonEnd:function(){Sy.lineStart=Sy.lineEnd=Sy.point=gr,Ny.add(N_(ky)),ky.reset()},result:function(){var t=Ny/2;return Ny.reset(),t}},Ey=1/0,Ay=Ey,Cy=-Ey,zy=Cy,Py={point:bi,lineStart:gr,lineEnd:gr,polygonStart:gr,polygonEnd:gr,result:function(){var t=[[Ey,Ay],[Cy,zy]];return Cy=zy=-(Ay=Ey=1/0),t}},Ry=0,qy=0,Ly=0,Uy=0,Dy=0,Oy=0,Fy=0,Iy=0,Yy=0,By={point:wi,lineStart:Mi,lineEnd:ki,polygonStart:function(){By.lineStart=Si,By.lineEnd=Ei},polygonEnd:function(){By.point=wi,By.lineStart=Mi,By.lineEnd=ki},result:function(){var t=Yy?[Fy/Yy,Iy/Yy]:Oy?[Uy/Oy,Dy/Oy]:Ly?[Ry/Ly,qy/Ly]:[NaN,NaN];return Ry=qy=Ly=Uy=Dy=Oy=Fy=Iy=Yy=0,t}};zi.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._context.moveTo(t,n),this._point=1;break;case 1:this._context.lineTo(t,n);break;default:this._context.moveTo(t+this._radius,n),this._context.arc(t,n,this._radius,0,w_)}},result:gr},Pi.prototype={_circle:Ri(4.5),pointRadius:function(t){return this._circle=Ri(t),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._string.push("M",t,",",n),this._point=1;break;case 1:this._string.push("L",t,",",n);break;default:this._string.push("M",t,",",n,this._circle)}},result:function(){if(this._string.length){var t=this._string.join("");return this._string=[],t}}};var jy=function(t,n){function e(t){return t&&("function"==typeof o&&i.pointRadius(+o.apply(this,arguments)),F_(t,r(i))),i.result()}var r,i,o=4.5;return e.area=function(t){return F_(t,r(Sy)),Sy.result()},e.bounds=function(t){return F_(t,r(Py)),Py.result()},e.centroid=function(t){return F_(t,r(By)),By.result()},e.projection=function(n){return arguments.length?(r=null==n?(t=null,Ty):(t=n).stream,e):t},e.context=function(t){return arguments.length?(i=null==t?(n=null,new Pi):new zi(n=t),"function"!=typeof o&&i.pointRadius(o),e):n},e.pointRadius=function(t){return arguments.length?(o="function"==typeof t?t:(i.pointRadius(+t),+t),e):o},e.projection(t).context(n)},Hy=Ov(),Xy=function(t,n){var e=n[0],r=n[1],i=[R_(e),-E_(e),0],o=0,u=0;Hy.reset();for(var a=0,c=t.length;a<c;++a)if(f=(s=t[a]).length)for(var s,f,l=s[f-1],h=l[0],p=l[1]/2+b_,d=R_(p),v=E_(p),_=0;_<f;++_,h=g,d=x,v=b,l=y){var y=s[_],g=y[0],m=y[1]/2+b_,x=R_(m),b=E_(m),w=g-h,M=w>=0?1:-1,T=M*w,N=T>m_,k=d*x;if(Hy.add(S_(k*M*R_(T),v*b+k*E_(T))),o+=N?w+M*w_:w,N^h>=e^g>=e){var S=Ar(Sr(l),Sr(y));Pr(S);var E=Ar(i,S);Pr(E);var A=(N^w>=0?-1:1)*_r(E[2]);(r>A||r===A&&(S[0]||S[1]))&&(u+=N^w>=0?1:-1)}}return(o<-y_||o<y_&&Hy<-y_)^1&u},Vy=function(t,n,e,r){return function(i,o){function u(n,e){var r=i(n,e);t(n=r[0],e=r[1])&&o.point(n,e)}function a(t,n){var e=i(t,n);_.point(e[0],e[1])}function c(){b.point=a,_.lineStart()}function s(){b.point=u,_.lineEnd()}function f(t,n){v.push([t,n]);var e=i(t,n);m.point(e[0],e[1])}function l(){m.lineStart(),v=[]}function h(){f(v[0][0],v[0][1]),m.lineEnd();var t,n,e,r,i=m.clean(),u=g.result(),a=u.length;if(v.pop(),p.push(v),v=null,a)if(1&i){if(e=u[0],(n=e.length-1)>0){for(x||(o.polygonStart(),x=!0),o.lineStart(),t=0;t<n;++t)o.point((r=e[t])[0],r[1]);o.lineEnd()}}else a>1&&2&i&&u.push(u.pop().concat(u.shift())),d.push(u.filter(qi))}var p,d,v,_=n(o),y=i.invert(r[0],r[1]),g=fy(),m=n(g),x=!1,b={point:u,lineStart:c,lineEnd:s,polygonStart:function(){b.point=f,b.lineStart=l,b.lineEnd=h,d=[],p=[]},polygonEnd:function(){b.point=u,b.lineStart=c,b.lineEnd=s,d=Ks(d);var t=Xy(p,y);d.length?(x||(o.polygonStart(),x=!0),py(d,Li,t,e,o)):t&&(x||(o.polygonStart(),x=!0),o.lineStart(),e(null,null,1,o),o.lineEnd()),x&&(o.polygonEnd(),x=!1),d=p=null},sphere:function(){o.polygonStart(),o.lineStart(),e(null,null,1,o),o.lineEnd(),o.polygonEnd()}};return b}},Wy=Vy(function(){return!0},Ui,Oi,[-m_,-x_]),$y=function(t,n){function e(e,r,i,o){ii(o,t,n,i,e,r)}function r(t,n){return E_(t)*E_(n)>a}function i(t){var n,e,i,a,f;return{lineStart:function(){a=i=!1,f=1},point:function(l,h){var p,d=[l,h],v=r(l,h),_=c?v?0:u(l,h):v?u(l+(l<0?m_:-m_),h):0;if(!n&&(a=i=v)&&t.lineStart(),v!==i&&(p=o(n,d),(hy(n,p)||hy(d,p))&&(d[0]+=y_,d[1]+=y_,v=r(d[0],d[1]))),v!==i)f=0,v?(t.lineStart(),p=o(d,n),t.point(p[0],p[1])):(p=o(n,d),t.point(p[0],p[1]),t.lineEnd()),n=p;else if(s&&n&&c^v){var y;_&e||!(y=o(d,n,!0))||(f=0,c?(t.lineStart(),t.point(y[0][0],y[0][1]),t.point(y[1][0],y[1][1]),t.lineEnd()):(t.point(y[1][0],y[1][1]),t.lineEnd(),t.lineStart(),t.point(y[0][0],y[0][1])))}!v||n&&hy(n,d)||t.point(d[0],d[1]),n=d,i=v,e=_},lineEnd:function(){i&&t.lineEnd(),n=null},clean:function(){return f|(a&&i)<<1}}}function o(t,n,e){var r=Sr(t),i=Sr(n),o=[1,0,0],u=Ar(r,i),c=Er(u,u),s=u[0],f=c-s*s;if(!f)return!e&&t;var l=a*c/f,h=-a*s/f,p=Ar(o,u),d=zr(o,l),v=zr(u,h);Cr(d,v);var _=p,y=Er(d,_),g=Er(_,_),m=y*y-g*(Er(d,d)-1);if(!(m<0)){var x=L_(m),b=zr(_,(-y-x)/g);if(Cr(b,d),b=kr(b),!e)return b;var w,M=t[0],T=n[0],N=t[1],k=n[1];T<M&&(w=M,M=T,T=w);var S=T-M,E=N_(S-m_)<y_,A=E||S<y_;if(!E&&k<N&&(w=N,N=k,k=w),A?E?N+k>0^b[1]<(N_(b[0]-M)<y_?N:k):N<=b[1]&&b[1]<=k:S>m_^(M<=b[0]&&b[0]<=T)){var C=zr(_,(-y+x)/g);return Cr(C,d),[b,kr(C)]}}}function u(n,e){var r=c?t:m_-t,i=0;return n<-r?i|=1:n>r&&(i|=2),e<-r?i|=4:e>r&&(i|=8),i}var a=E_(t),c=a>0,s=N_(a)>y_;return Vy(r,i,e,c?[0,-t]:[-m_,t-m_])},Zy=function(t){return{stream:Fi(t)}};Ii.prototype={constructor:Ii,point:function(t,n){this.stream.point(t,n)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var Gy=16,Jy=E_(30*T_),Qy=function(t,n){return+n?Hi(t,n):ji(t)},Ky=Fi({point:function(t,n){this.stream.point(t*T_,n*T_)}}),tg=function(){return Wi(Zi).scale(155.424).center([0,33.6442])},ng=function(){return tg().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])},eg=function(){function t(t){var n=t[0],e=t[1];return a=null,i.point(n,e),a||(o.point(n,e),a)||(u.point(n,e),a)}function n(){return e=r=null,t}var e,r,i,o,u,a,c=ng(),s=tg().rotate([154,0]).center([-2,58.5]).parallels([55,65]),f=tg().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(t,n){a=[t,n]}};return t.invert=function(t){var n=c.scale(),e=c.translate(),r=(t[0]-e[0])/n,i=(t[1]-e[1])/n;return(i>=.12&&i<.234&&r>=-.425&&r<-.214?s:i>=.166&&i<.234&&r>=-.214&&r<-.115?f:c).invert(t)},t.stream=function(t){return e&&r===t?e:e=Gi([c.stream(r=t),s.stream(t),f.stream(t)])},t.precision=function(t){return arguments.length?(c.precision(t),s.precision(t),f.precision(t),n()):c.precision()},t.scale=function(n){return arguments.length?(c.scale(n),s.scale(.35*n),f.scale(n),t.translate(c.translate())):c.scale()},t.translate=function(t){if(!arguments.length)return c.translate();var e=c.scale(),r=+t[0],a=+t[1];return i=c.translate(t).clipExtent([[r-.455*e,a-.238*e],[r+.455*e,a+.238*e]]).stream(l),o=s.translate([r-.307*e,a+.201*e]).clipExtent([[r-.425*e+y_,a+.12*e+y_],[r-.214*e-y_,a+.234*e-y_]]).stream(l),u=f.translate([r-.205*e,a+.212*e]).clipExtent([[r-.214*e+y_,a+.166*e+y_],[r-.115*e-y_,a+.234*e-y_]]).stream(l),n()},t.fitExtent=function(n,e){return Yi(t,n,e)},t.fitSize=function(n,e){return Bi(t,n,e)},t.scale(1070)},rg=Ji(function(t){return L_(2/(1+t))});rg.invert=Qi(function(t){return 2*_r(t/2)});var ig=function(){return Xi(rg).scale(124.75).clipAngle(179.999)},og=Ji(function(t){return(t=vr(t))&&t/R_(t)});og.invert=Qi(function(t){return t});var ug=function(){return Xi(og).scale(79.4188).clipAngle(179.999)};Ki.invert=function(t,n){return[t,2*k_(C_(n))-x_]};var ag=function(){return to(Ki).scale(961/w_)},cg=function(){return Wi(eo).scale(109.5).parallels([30,30])};ro.invert=ro;var sg=function(){return Xi(ro).scale(152.63)},fg=function(){return Wi(io).scale(131.154).center([0,13.9389])};oo.invert=Qi(k_);var lg=function(){return Xi(oo).scale(144.049).clipAngle(60)},hg=function(){function t(){return i=o=null,u}var n,e,r,i,o,u,a=1,c=0,s=0,f=1,l=1,h=Ty,p=null,d=Ty;return u={stream:function(t){return i&&o===t?i:i=h(d(o=t))},clipExtent:function(i){return arguments.length?(d=null==i?(p=n=e=r=null,Ty):ci(p=+i[0][0],n=+i[0][1],e=+i[1][0],r=+i[1][1]),t()):null==p?null:[[p,n],[e,r]]},scale:function(n){return arguments.length?(h=uo((a=+n)*f,a*l,c,s),t()):a},translate:function(n){return arguments.length?(h=uo(a*f,a*l,c=+n[0],s=+n[1]),t()):[c,s]},reflectX:function(n){return arguments.length?(h=uo(a*(f=n?-1:1),a*l,c,s),t()):f<0},reflectY:function(n){return arguments.length?(h=uo(a*f,a*(l=n?-1:1),c,s),t()):l<0},fitExtent:function(t,n){return Yi(u,t,n)},fitSize:function(t,n){return Bi(u,t,n)}}};ao.invert=Qi(_r);var pg=function(){return Xi(ao).scale(249.5).clipAngle(90+y_)};co.invert=Qi(function(t){return 2*k_(t)});var dg=function(){return Xi(co).scale(250).clipAngle(142)};so.invert=function(t,n){return[-n,2*k_(C_(t))-x_]};var vg=function(){var t=to(so),n=t.center,e=t.rotate;return t.center=function(t){return arguments.length?n([-t[1],t[0]]):(t=n(),[t[1],-t[0]])},t.rotate=function(t){return arguments.length?e([t[0],t[1],t.length>2?t[2]+90:90]):(t=e(),[t[0],t[1],t[2]-90])},e([0,0,90]).scale(159.155)},_g=function(){function t(t){var o,u=0;t.eachAfter(function(t){var e=t.children;e?(t.x=lo(e),t.y=po(e)):(t.x=o?u+=n(t,o):0,t.y=0,o=t)});var a=_o(t),c=yo(t),s=a.x-n(a,c)/2,f=c.x+n(c,a)/2;return t.eachAfter(i?function(n){n.x=(n.x-t.x)*e,n.y=(t.y-n.y)*r}:function(n){n.x=(n.x-s)/(f-s)*e,n.y=(1-(t.y?n.y/t.y:1))*r})}var n=fo,e=1,r=1,i=!1;return t.separation=function(e){return arguments.length?(n=e,t):n},t.size=function(n){return arguments.length?(i=!1,e=+n[0],r=+n[1],t):i?null:[e,r]},t.nodeSize=function(n){return arguments.length?(i=!0,e=+n[0],r=+n[1],t):i?[e,r]:null},t},yg=function(){return this.eachAfter(go)},gg=function(t){var n,e,r,i,o=this,u=[o];do for(n=u.reverse(),u=[];o=n.pop();)if(t(o),e=o.children)for(r=0,i=e.length;r<i;++r)u.push(e[r]);while(u.length);return this},mg=function(t){for(var n,e,r=this,i=[r];r=i.pop();)if(t(r),n=r.children)for(e=n.length-1;e>=0;--e)i.push(n[e]);return this},xg=function(t){for(var n,e,r,i=this,o=[i],u=[];i=o.pop();)if(u.push(i),n=i.children)for(e=0,r=n.length;e<r;++e)o.push(n[e]);for(;i=u.pop();)t(i);return this},bg=function(t){return this.eachAfter(function(n){for(var e=+t(n.data)||0,r=n.children,i=r&&r.length;--i>=0;)e+=r[i].value;n.value=e})},wg=function(t){return this.eachBefore(function(n){n.children&&n.children.sort(t)})},Mg=function(t){for(var n=this,e=mo(n,t),r=[n];n!==e;)n=n.parent,r.push(n);for(var i=r.length;t!==e;)r.splice(i,0,t),t=t.parent;return r},Tg=function(){for(var t=this,n=[t];t=t.parent;)n.push(t);return n},Ng=function(){var t=[];return this.each(function(n){t.push(n)}),t},kg=function(){var t=[];return this.eachBefore(function(n){n.children||t.push(n)}),t},Sg=function(){var t=this,n=[];return t.each(function(e){e!==t&&n.push({source:e.parent,target:e})}),n};No.prototype=xo.prototype={constructor:No,count:yg,each:gg,eachAfter:xg,eachBefore:mg,sum:bg,sort:wg,path:Mg,ancestors:Tg,descendants:Ng,leaves:kg,links:Sg,copy:bo};var Eg=function(t){for(var n,e=(t=t.slice()).length,r=null,i=r;e;){var o=new ko(t[e-1]);i=i?i.next=o:r=o,t[n]=t[--e]}return{head:r,tail:i}},Ag=function(t){return Eo(Eg(t),[])},Cg=function(t){return Do(t),t},zg=function(t){return function(){return t}},Pg=function(){function t(t){return t.x=e/2,t.y=r/2,n?t.eachBefore(Bo(n)).eachAfter(jo(i,.5)).eachBefore(Ho(1)):t.eachBefore(Bo(Yo)).eachAfter(jo(Io,1)).eachAfter(jo(i,t.r/Math.min(e,r))).eachBefore(Ho(Math.min(e,r)/(2*t.r))),t}var n=null,e=1,r=1,i=Io;return t.radius=function(e){return arguments.length?(n=Oo(e),t):n},t.size=function(n){return arguments.length?(e=+n[0],r=+n[1],t):[e,r]},t.padding=function(n){return arguments.length?(i="function"==typeof n?n:zg(+n),t):i},t},Rg=function(t){t.x0=Math.round(t.x0),t.y0=Math.round(t.y0),t.x1=Math.round(t.x1),t.y1=Math.round(t.y1)},qg=function(t,n,e,r,i){for(var o,u=t.children,a=-1,c=u.length,s=t.value&&(r-n)/t.value;++a<c;)o=u[a],o.y0=e,o.y1=i,o.x0=n,o.x1=n+=o.value*s},Lg=function(){function t(t){var u=t.height+1;return t.x0=t.y0=i,t.x1=e,t.y1=r/u,t.eachBefore(n(r,u)),o&&t.eachBefore(Rg),t}function n(t,n){return function(e){e.children&&qg(e,e.x0,t*(e.depth+1)/n,e.x1,t*(e.depth+2)/n);var r=e.x0,o=e.y0,u=e.x1-i,a=e.y1-i;u<r&&(r=u=(r+u)/2),a<o&&(o=a=(o+a)/2),e.x0=r,e.y0=o,e.x1=u,e.y1=a}}var e=1,r=1,i=0,o=!1;return t.round=function(n){return arguments.length?(o=!!n,t):o},t.size=function(n){return arguments.length?(e=+n[0],r=+n[1],t):[e,r]},t.padding=function(n){return arguments.length?(i=+n,t):i},t},Ug="$",Dg={depth:-1},Og={},Fg=function(){function t(t){var r,i,o,u,a,c,s,f=t.length,l=new Array(f),h={};for(i=0;i<f;++i)r=t[i],a=l[i]=new No(r),null!=(c=n(r,i,t))&&(c+="")&&(s=Ug+(a.id=c),h[s]=s in h?Og:a);for(i=0;i<f;++i)if(a=l[i],c=e(t[i],i,t),null!=c&&(c+="")){if(u=h[Ug+c],!u)throw new Error("missing: "+c);if(u===Og)throw new Error("ambiguous: "+c);u.children?u.children.push(a):u.children=[a],a.parent=u}else{if(o)throw new Error("multiple roots");o=a}if(!o)throw new Error("no root");if(o.parent=Dg,o.eachBefore(function(t){t.depth=t.parent.depth+1,--f}).eachBefore(To),o.parent=null,f>0)throw new Error("cycle");return o}var n=Xo,e=Vo;return t.id=function(e){return arguments.length?(n=Fo(e),t):n},t.parentId=function(n){return arguments.length?(e=Fo(n),t):e},t};Ko.prototype=Object.create(No.prototype);var Ig=function(){function t(t){var r=tu(t);if(r.eachAfter(n),r.parent.m=-r.z,r.eachBefore(e),c)t.eachBefore(i);else{var s=t,f=t,l=t;t.eachBefore(function(t){t.x<s.x&&(s=t),t.x>f.x&&(f=t),t.depth>l.depth&&(l=t)});var h=s===f?1:o(s,f)/2,p=h-s.x,d=u/(f.x+h+p),v=a/(l.depth||1);t.eachBefore(function(t){t.x=(t.x+p)*d,t.y=t.depth*v})}return t}function n(t){var n=t.children,e=t.parent.children,i=t.i?e[t.i-1]:null;if(n){Jo(t);var u=(n[0].z+n[n.length-1].z)/2;i?(t.z=i.z+o(t._,i._),t.m=t.z-u):t.z=u}else i&&(t.z=i.z+o(t._,i._));t.parent.A=r(t,i,t.parent.A||e[0])}function e(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function r(t,n,e){if(n){for(var r,i=t,u=t,a=n,c=i.parent.children[0],s=i.m,f=u.m,l=a.m,h=c.m;a=Zo(a),i=$o(i),a&&i;)c=$o(c),u=Zo(u),u.a=t,r=a.z+l-i.z-s+o(a._,i._),r>0&&(Go(Qo(a,t,e),t,r),s+=r,f+=r),l+=a.m,s+=i.m,h+=c.m,f+=u.m;a&&!Zo(u)&&(u.t=a,u.m+=l-f),i&&!$o(c)&&(c.t=i,c.m+=s-h,e=t)}return e}function i(t){t.x*=u,t.y=t.depth*a}var o=Wo,u=1,a=1,c=null;return t.separation=function(n){return arguments.length?(o=n,t):o},t.size=function(n){return arguments.length?(c=!1,u=+n[0],a=+n[1],t):c?null:[u,a]},t.nodeSize=function(n){return arguments.length?(c=!0,u=+n[0],a=+n[1],t):c?[u,a]:null},t},Yg=function(t,n,e,r,i){for(var o,u=t.children,a=-1,c=u.length,s=t.value&&(i-e)/t.value;++a<c;)o=u[a],o.x0=n,o.x1=r,o.y0=e,o.y1=e+=o.value*s},Bg=(1+Math.sqrt(5))/2,jg=function t(n){function e(t,e,r,i,o){nu(n,t,e,r,i,o)}return e.ratio=function(n){return t((n=+n)>1?n:1)},e}(Bg),Hg=function(){function t(t){return t.x0=t.y0=0,t.x1=i,t.y1=o,t.eachBefore(n),u=[0],r&&t.eachBefore(Rg),t}function n(t){var n=u[t.depth],r=t.x0+n,i=t.y0+n,o=t.x1-n,h=t.y1-n;o<r&&(r=o=(r+o)/2),h<i&&(i=h=(i+h)/2),t.x0=r,t.y0=i,t.x1=o,t.y1=h,t.children&&(n=u[t.depth+1]=a(t)/2,r+=l(t)-n,i+=c(t)-n,o-=s(t)-n,h-=f(t)-n,o<r&&(r=o=(r+o)/2),h<i&&(i=h=(i+h)/2),e(t,r,i,o,h))}var e=jg,r=!1,i=1,o=1,u=[0],a=Io,c=Io,s=Io,f=Io,l=Io;return t.round=function(n){return arguments.length?(r=!!n,t):r},t.size=function(n){return arguments.length?(i=+n[0],o=+n[1],t):[i,o]},t.tile=function(n){return arguments.length?(e=Fo(n),t):e},t.padding=function(n){return arguments.length?t.paddingInner(n).paddingOuter(n):t.paddingInner()},t.paddingInner=function(n){return arguments.length?(a="function"==typeof n?n:zg(+n),t):a},t.paddingOuter=function(n){return arguments.length?t.paddingTop(n).paddingRight(n).paddingBottom(n).paddingLeft(n):t.paddingTop()},t.paddingTop=function(n){return arguments.length?(c="function"==typeof n?n:zg(+n),t):c},t.paddingRight=function(n){return arguments.length?(s="function"==typeof n?n:zg(+n),t):s},t.paddingBottom=function(n){return arguments.length?(f="function"==typeof n?n:zg(+n),t):f},t.paddingLeft=function(n){return arguments.length?(l="function"==typeof n?n:zg(+n),t):l},t},Xg=function(t,n,e,r,i){function o(t,n,e,r,i,u,a){if(t>=n-1){var s=c[t];return s.x0=r,s.y0=i,s.x1=u,s.y1=a,void 0}for(var l=f[t],h=e/2+l,p=t+1,d=n-1;p<d;){var v=p+d>>>1;f[v]<h?p=v+1:d=v}var _=f[p]-l,y=e-_;if(a-i>u-r){var g=(i*y+a*_)/e;o(t,p,_,r,i,u,g),o(p,n,y,r,g,u,a)}else{var m=(r*y+u*_)/e;o(t,p,_,r,i,m,a),o(p,n,y,m,i,u,a)}}var u,a,c=t.children,s=c.length,f=new Array(s+1);for(f[0]=a=u=0;u<s;++u)f[u+1]=a+=c[u].value;o(0,s,t.value,n,e,r,i)},Vg=function(t,n,e,r,i){(1&t.depth?Yg:qg)(t,n,e,r,i)},Wg=function t(n){function e(t,e,r,i,o){if((u=t._squarify)&&u.ratio===n)for(var u,a,c,s,f,l=-1,h=u.length,p=t.value;++l<h;){for(a=u[l],c=a.children,s=a.value=0,f=c.length;s<f;++s)a.value+=c[s].value;a.dice?qg(a,e,r,i,r+=(o-r)*a.value/p):Yg(a,e,r,e+=(i-e)*a.value/p,o),p-=a.value}else t._squarify=u=nu(n,t,e,r,i,o),u.ratio=n}return e.ratio=function(n){return t((n=+n)>1?n:1)},e}(Bg),$g=function(t){for(var n,e=-1,r=t.length,i=t[r-1],o=0;++e<r;)n=i,i=t[e],o+=n[1]*i[0]-n[0]*i[1];return o/2},Zg=function(t){for(var n,e,r=-1,i=t.length,o=0,u=0,a=t[i-1],c=0;++r<i;)n=a,a=t[r],c+=e=n[0]*a[1]-a[0]*n[1],o+=(n[0]+a[0])*e,u+=(n[1]+a[1])*e;return c*=3,[o/c,u/c]},Gg=function(t,n,e){return(n[0]-t[0])*(e[1]-t[1])-(n[1]-t[1])*(e[0]-t[0])},Jg=function(t){if((e=t.length)<3)return null;var n,e,r=new Array(e),i=new Array(e);for(n=0;n<e;++n)r[n]=[+t[n][0],+t[n][1],n];for(r.sort(eu),n=0;n<e;++n)i[n]=[r[n][0],-r[n][1]];var o=ru(r),u=ru(i),a=u[0]===o[0],c=u[u.length-1]===o[o.length-1],s=[];for(n=o.length-1;n>=0;--n)s.push(t[r[o[n]][2]]);for(n=+a;n<u.length-c;++n)s.push(t[r[u[n]][2]]);return s},Qg=function(t,n){for(var e,r,i=t.length,o=t[i-1],u=n[0],a=n[1],c=o[0],s=o[1],f=!1,l=0;l<i;++l)o=t[l],e=o[0],r=o[1],r>a!=s>a&&u<(c-e)*(a-r)/(s-r)+e&&(f=!f),c=e,s=r;return f},Kg=function(t){for(var n,e,r=-1,i=t.length,o=t[i-1],u=o[0],a=o[1],c=0;++r<i;)n=u,e=a,o=t[r],u=o[0],a=o[1],n-=u,e-=a,c+=Math.sqrt(n*n+e*e);return c},tm=[].slice,nm={};iu.prototype=fu.prototype={constructor:iu,defer:function(t){if("function"!=typeof t||this._call)throw new Error;if(null!=this._error)return this;var n=tm.call(arguments,1);return n.push(t),++this._waiting,this._tasks.push(n),ou(this),this},abort:function(){return null==this._error&&cu(this,new Error("abort")),this},await:function(t){if("function"!=typeof t||this._call)throw new Error;return this._call=function(n,e){t.apply(null,[n].concat(e))},su(this),this},awaitAll:function(t){if("function"!=typeof t||this._call)throw new Error;return this._call=t,su(this),this}};var em=function(t,n){return t=null==t?0:+t,n=null==n?1:+n,1===arguments.length?(n=t,t=0):n-=t,function(){return Math.random()*n+t}},rm=function(t,n){var e,r;return t=null==t?0:+t,n=null==n?1:+n,function(){var i;if(null!=e)i=e,e=null;else do e=2*Math.random()-1,i=2*Math.random()-1,r=e*e+i*i;while(!r||r>1);return t+n*i*Math.sqrt(-2*Math.log(r)/r)}},im=function(){var t=rm.apply(this,arguments);return function(){return Math.exp(t())}},om=function(t){
return function(){for(var n=0,e=0;e<t;++e)n+=Math.random();return n}},um=function(t){var n=om(t);return function(){return n()/t}},am=function(t){return function(){return-Math.log(1-Math.random())/t}},cm=function(t,n){function e(t){var n,e=s.status;if(!e&&hu(s)||e>=200&&e<300||304===e){if(o)try{n=o.call(r,s)}catch(t){return void a.call("error",r,t)}else n=s;a.call("load",r,n)}else a.call("error",r,t)}var r,i,o,u,a=p("beforesend","progress","load","error"),c=Ie(),s=new XMLHttpRequest,f=null,l=null,h=0;if("undefined"==typeof XDomainRequest||"withCredentials"in s||!/^(http(s)?:)?\/\//.test(t)||(s=new XDomainRequest),"onload"in s?s.onload=s.onerror=s.ontimeout=e:s.onreadystatechange=function(t){s.readyState>3&&e(t)},s.onprogress=function(t){a.call("progress",r,t)},r={header:function(t,n){return t=(t+"").toLowerCase(),arguments.length<2?c.get(t):(null==n?c.remove(t):c.set(t,n+""),r)},mimeType:function(t){return arguments.length?(i=null==t?null:t+"",r):i},responseType:function(t){return arguments.length?(u=t,r):u},timeout:function(t){return arguments.length?(h=+t,r):h},user:function(t){return arguments.length<1?f:(f=null==t?null:t+"",r)},password:function(t){return arguments.length<1?l:(l=null==t?null:t+"",r)},response:function(t){return o=t,r},get:function(t,n){return r.send("GET",t,n)},post:function(t,n){return r.send("POST",t,n)},send:function(n,e,o){return s.open(n,t,!0,f,l),null==i||c.has("accept")||c.set("accept",i+",*/*"),s.setRequestHeader&&c.each(function(t,n){s.setRequestHeader(n,t)}),null!=i&&s.overrideMimeType&&s.overrideMimeType(i),null!=u&&(s.responseType=u),h>0&&(s.timeout=h),null==o&&"function"==typeof e&&(o=e,e=null),null!=o&&1===o.length&&(o=lu(o)),null!=o&&r.on("error",o).on("load",function(t){o(null,t)}),a.call("beforesend",r,s),s.send(null==e?null:e),r},abort:function(){return s.abort(),r},on:function(){var t=a.on.apply(a,arguments);return t===a?r:t}},null!=n){if("function"!=typeof n)throw new Error("invalid callback: "+n);return r.get(n)}return r},sm=function(t,n){return function(e,r){var i=cm(e).mimeType(t).response(n);if(null!=r){if("function"!=typeof r)throw new Error("invalid callback: "+r);return i.get(r)}return i}},fm=sm("text/html",function(t){return document.createRange().createContextualFragment(t.responseText)}),lm=sm("application/json",function(t){return JSON.parse(t.responseText)}),hm=sm("text/plain",function(t){return t.responseText}),pm=sm("application/xml",function(t){var n=t.responseXML;if(!n)throw new Error("parse error");return n}),dm=function(t,n){return function(e,r,i){arguments.length<3&&(i=r,r=null);var o=cm(e).mimeType(t);return o.row=function(t){return arguments.length?o.response(pu(n,r=t)):r},o.row(r),i?o.get(i):o}},vm=dm("text/csv",Bd),_m=dm("text/tab-separated-values",Wd),ym=Array.prototype,gm=ym.map,mm=ym.slice,xm={name:"implicit"},bm=function(t){return function(){return t}},wm=function(t){return+t},Mm=[0,1],Tm=function(n,r,i){var o,u=n[0],a=n[n.length-1],c=e(u,a,null==r?10:r);switch(i=zv(null==i?",f":i),i.type){case"s":var s=Math.max(Math.abs(u),Math.abs(a));return null!=i.precision||isNaN(o=Uv(c,s))||(i.precision=o),t.formatPrefix(i,s);case"":case"e":case"g":case"p":case"r":null!=i.precision||isNaN(o=Dv(c,Math.max(Math.abs(u),Math.abs(a))))||(i.precision=o-("e"===i.type));break;case"f":case"%":null!=i.precision||isNaN(o=Lv(c))||(i.precision=o-2*("%"===i.type))}return t.format(i)},Nm=function(t,n){t=t.slice();var e,r=0,i=t.length-1,o=t[r],u=t[i];return u<o&&(e=r,r=i,i=e,e=o,o=u,u=e),t[r]=n.floor(o),t[i]=n.ceil(u),t},km=new Date,Sm=new Date,Em=Yu(function(){},function(t,n){t.setTime(+t+n)},function(t,n){return n-t});Em.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?Yu(function(n){n.setTime(Math.floor(n/t)*t)},function(n,e){n.setTime(+n+e*t)},function(n,e){return(e-n)/t}):Em:null};var Am=Em.range,Cm=1e3,zm=6e4,Pm=36e5,Rm=864e5,qm=6048e5,Lm=Yu(function(t){t.setTime(Math.floor(t/Cm)*Cm)},function(t,n){t.setTime(+t+n*Cm)},function(t,n){return(n-t)/Cm},function(t){return t.getUTCSeconds()}),Um=Lm.range,Dm=Yu(function(t){t.setTime(Math.floor(t/zm)*zm)},function(t,n){t.setTime(+t+n*zm)},function(t,n){return(n-t)/zm},function(t){return t.getMinutes()}),Om=Dm.range,Fm=Yu(function(t){var n=t.getTimezoneOffset()*zm%Pm;n<0&&(n+=Pm),t.setTime(Math.floor((+t-n)/Pm)*Pm+n)},function(t,n){t.setTime(+t+n*Pm)},function(t,n){return(n-t)/Pm},function(t){return t.getHours()}),Im=Fm.range,Ym=Yu(function(t){t.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+n)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*zm)/Rm},function(t){return t.getDate()-1}),Bm=Ym.range,jm=Bu(0),Hm=Bu(1),Xm=Bu(2),Vm=Bu(3),Wm=Bu(4),$m=Bu(5),Zm=Bu(6),Gm=jm.range,Jm=Hm.range,Qm=Xm.range,Km=Vm.range,tx=Wm.range,nx=$m.range,ex=Zm.range,rx=Yu(function(t){t.setDate(1),t.setHours(0,0,0,0)},function(t,n){t.setMonth(t.getMonth()+n)},function(t,n){return n.getMonth()-t.getMonth()+12*(n.getFullYear()-t.getFullYear())},function(t){return t.getMonth()}),ix=rx.range,ox=Yu(function(t){t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,n){t.setFullYear(t.getFullYear()+n)},function(t,n){return n.getFullYear()-t.getFullYear()},function(t){return t.getFullYear()});ox.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Yu(function(n){n.setFullYear(Math.floor(n.getFullYear()/t)*t),n.setMonth(0,1),n.setHours(0,0,0,0)},function(n,e){n.setFullYear(n.getFullYear()+e*t)}):null};var ux=ox.range,ax=Yu(function(t){t.setUTCSeconds(0,0)},function(t,n){t.setTime(+t+n*zm)},function(t,n){return(n-t)/zm},function(t){return t.getUTCMinutes()}),cx=ax.range,sx=Yu(function(t){t.setUTCMinutes(0,0,0)},function(t,n){t.setTime(+t+n*Pm)},function(t,n){return(n-t)/Pm},function(t){return t.getUTCHours()}),fx=sx.range,lx=Yu(function(t){t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+n)},function(t,n){return(n-t)/Rm},function(t){return t.getUTCDate()-1}),hx=lx.range,px=ju(0),dx=ju(1),vx=ju(2),_x=ju(3),yx=ju(4),gx=ju(5),mx=ju(6),xx=px.range,bx=dx.range,wx=vx.range,Mx=_x.range,Tx=yx.range,Nx=gx.range,kx=mx.range,Sx=Yu(function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCMonth(t.getUTCMonth()+n)},function(t,n){return n.getUTCMonth()-t.getUTCMonth()+12*(n.getUTCFullYear()-t.getUTCFullYear())},function(t){return t.getUTCMonth()}),Ex=Sx.range,Ax=Yu(function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n)},function(t,n){return n.getUTCFullYear()-t.getUTCFullYear()},function(t){return t.getUTCFullYear()});Ax.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Yu(function(n){n.setUTCFullYear(Math.floor(n.getUTCFullYear()/t)*t),n.setUTCMonth(0,1),n.setUTCHours(0,0,0,0)},function(n,e){n.setUTCFullYear(n.getUTCFullYear()+e*t)}):null};var Cx,zx=Ax.range,Px={"-":"",_:" ",0:"0"},Rx=/^\s*\d+/,qx=/^%/,Lx=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;Ya({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var Ux="%Y-%m-%dT%H:%M:%S.%LZ",Dx=Date.prototype.toISOString?Ba:t.utcFormat(Ux),Ox=+new Date("2000-01-01T00:00:00.000Z")?ja:t.utcParse(Ux),Fx=1e3,Ix=60*Fx,Yx=60*Ix,Bx=24*Yx,jx=7*Bx,Hx=30*Bx,Xx=365*Bx,Vx=function(){return Va(ox,rx,jm,Ym,Fm,Dm,Lm,Em,t.timeFormat).domain([new Date(2e3,0,1),new Date(2e3,0,2)])},Wx=function(){return Va(Ax,Sx,px,lx,sx,ax,Lm,Em,t.utcFormat).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)])},$x=function(t){return t.match(/.{6}/g).map(function(t){return"#"+t})},Zx=$x("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),Gx=$x("393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6"),Jx=$x("3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9"),Qx=$x("1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5"),Kx=Uh(Xt(300,.5,0),Xt(-240,.5,1)),tb=Uh(Xt(-100,.75,.35),Xt(80,1.5,.8)),nb=Uh(Xt(260,.75,.35),Xt(80,1.5,.8)),eb=Xt(),rb=function(t){(t<0||t>1)&&(t-=Math.floor(t));var n=Math.abs(t-.5);return eb.h=360*t-100,eb.s=1.5-1.5*n,eb.l=.8-.9*n,eb+""},ib=Wa($x("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")),ob=Wa($x("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),ub=Wa($x("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),ab=Wa($x("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921")),cb=function(t){return function(){return t}},sb=1e-12,fb=Math.PI,lb=fb/2,hb=2*fb,pb=function(){function t(){var t,s,f=+n.apply(this,arguments),l=+e.apply(this,arguments),h=o.apply(this,arguments)-lb,p=u.apply(this,arguments)-lb,d=Math.abs(p-h),v=p>h;if(c||(c=t=Re()),l<f&&(s=l,l=f,f=s),l>sb)if(d>hb-sb)c.moveTo(l*Math.cos(h),l*Math.sin(h)),c.arc(0,0,l,h,p,!v),f>sb&&(c.moveTo(f*Math.cos(p),f*Math.sin(p)),c.arc(0,0,f,p,h,v));else{var _,y,g=h,m=p,x=h,b=p,w=d,M=d,T=a.apply(this,arguments)/2,N=T>sb&&(i?+i.apply(this,arguments):Math.sqrt(f*f+l*l)),k=Math.min(Math.abs(l-f)/2,+r.apply(this,arguments)),S=k,E=k;if(N>sb){var A=tc(N/f*Math.sin(T)),C=tc(N/l*Math.sin(T));(w-=2*A)>sb?(A*=v?1:-1,x+=A,b-=A):(w=0,x=b=(h+p)/2),(M-=2*C)>sb?(C*=v?1:-1,g+=C,m-=C):(M=0,g=m=(h+p)/2)}var z=l*Math.cos(g),P=l*Math.sin(g),R=f*Math.cos(b),q=f*Math.sin(b);if(k>sb){var L=l*Math.cos(m),U=l*Math.sin(m),D=f*Math.cos(x),O=f*Math.sin(x);if(d<fb){var F=w>sb?nc(z,P,D,O,L,U,R,q):[R,q],I=z-F[0],Y=P-F[1],B=L-F[0],j=U-F[1],H=1/Math.sin(Math.acos((I*B+Y*j)/(Math.sqrt(I*I+Y*Y)*Math.sqrt(B*B+j*j)))/2),X=Math.sqrt(F[0]*F[0]+F[1]*F[1]);S=Math.min(k,(f-X)/(H-1)),E=Math.min(k,(l-X)/(H+1))}}M>sb?E>sb?(_=ec(D,O,z,P,l,E,v),y=ec(L,U,R,q,l,E,v),c.moveTo(_.cx+_.x01,_.cy+_.y01),E<k?c.arc(_.cx,_.cy,E,Math.atan2(_.y01,_.x01),Math.atan2(y.y01,y.x01),!v):(c.arc(_.cx,_.cy,E,Math.atan2(_.y01,_.x01),Math.atan2(_.y11,_.x11),!v),c.arc(0,0,l,Math.atan2(_.cy+_.y11,_.cx+_.x11),Math.atan2(y.cy+y.y11,y.cx+y.x11),!v),c.arc(y.cx,y.cy,E,Math.atan2(y.y11,y.x11),Math.atan2(y.y01,y.x01),!v))):(c.moveTo(z,P),c.arc(0,0,l,g,m,!v)):c.moveTo(z,P),f>sb&&w>sb?S>sb?(_=ec(R,q,L,U,f,-S,v),y=ec(z,P,D,O,f,-S,v),c.lineTo(_.cx+_.x01,_.cy+_.y01),S<k?c.arc(_.cx,_.cy,S,Math.atan2(_.y01,_.x01),Math.atan2(y.y01,y.x01),!v):(c.arc(_.cx,_.cy,S,Math.atan2(_.y01,_.x01),Math.atan2(_.y11,_.x11),!v),c.arc(0,0,f,Math.atan2(_.cy+_.y11,_.cx+_.x11),Math.atan2(y.cy+y.y11,y.cx+y.x11),v),c.arc(y.cx,y.cy,S,Math.atan2(y.y11,y.x11),Math.atan2(y.y01,y.x01),!v))):c.arc(0,0,f,b,x,v):c.lineTo(R,q)}else c.moveTo(0,0);if(c.closePath(),t)return c=null,t+""||null}var n=Za,e=Ga,r=cb(0),i=null,o=Ja,u=Qa,a=Ka,c=null;return t.centroid=function(){var t=(+n.apply(this,arguments)+ +e.apply(this,arguments))/2,r=(+o.apply(this,arguments)+ +u.apply(this,arguments))/2-fb/2;return[Math.cos(r)*t,Math.sin(r)*t]},t.innerRadius=function(e){return arguments.length?(n="function"==typeof e?e:cb(+e),t):n},t.outerRadius=function(n){return arguments.length?(e="function"==typeof n?n:cb(+n),t):e},t.cornerRadius=function(n){return arguments.length?(r="function"==typeof n?n:cb(+n),t):r},t.padRadius=function(n){return arguments.length?(i=null==n?null:"function"==typeof n?n:cb(+n),t):i},t.startAngle=function(n){return arguments.length?(o="function"==typeof n?n:cb(+n),t):o},t.endAngle=function(n){return arguments.length?(u="function"==typeof n?n:cb(+n),t):u},t.padAngle=function(n){return arguments.length?(a="function"==typeof n?n:cb(+n),t):a},t.context=function(n){return arguments.length?(c=null==n?null:n,t):c},t};rc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:this._context.lineTo(t,n)}}};var db=function(t){return new rc(t)},vb=function(){function t(t){var a,c,s,f=t.length,l=!1;for(null==i&&(u=o(s=Re())),a=0;a<=f;++a)!(a<f&&r(c=t[a],a,t))===l&&((l=!l)?u.lineStart():u.lineEnd()),l&&u.point(+n(c,a,t),+e(c,a,t));if(s)return u=null,s+""||null}var n=ic,e=oc,r=cb(!0),i=null,o=db,u=null;return t.x=function(e){return arguments.length?(n="function"==typeof e?e:cb(+e),t):n},t.y=function(n){return arguments.length?(e="function"==typeof n?n:cb(+n),t):e},t.defined=function(n){return arguments.length?(r="function"==typeof n?n:cb(!!n),t):r},t.curve=function(n){return arguments.length?(o=n,null!=i&&(u=o(i)),t):o},t.context=function(n){return arguments.length?(null==n?i=u=null:u=o(i=n),t):i},t},_b=function(){function t(t){var n,f,l,h,p,d=t.length,v=!1,_=new Array(d),y=new Array(d);for(null==a&&(s=c(p=Re())),n=0;n<=d;++n){if(!(n<d&&u(h=t[n],n,t))===v)if(v=!v)f=n,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),l=n-1;l>=f;--l)s.point(_[l],y[l]);s.lineEnd(),s.areaEnd()}v&&(_[n]=+e(h,n,t),y[n]=+i(h,n,t),s.point(r?+r(h,n,t):_[n],o?+o(h,n,t):y[n]))}if(p)return s=null,p+""||null}function n(){return vb().defined(u).curve(c).context(a)}var e=ic,r=null,i=cb(0),o=oc,u=cb(!0),a=null,c=db,s=null;return t.x=function(n){return arguments.length?(e="function"==typeof n?n:cb(+n),r=null,t):e},t.x0=function(n){return arguments.length?(e="function"==typeof n?n:cb(+n),t):e},t.x1=function(n){return arguments.length?(r=null==n?null:"function"==typeof n?n:cb(+n),t):r},t.y=function(n){return arguments.length?(i="function"==typeof n?n:cb(+n),o=null,t):i},t.y0=function(n){return arguments.length?(i="function"==typeof n?n:cb(+n),t):i},t.y1=function(n){return arguments.length?(o=null==n?null:"function"==typeof n?n:cb(+n),t):o},t.lineX0=t.lineY0=function(){return n().x(e).y(i)},t.lineY1=function(){return n().x(e).y(o)},t.lineX1=function(){return n().x(r).y(i)},t.defined=function(n){return arguments.length?(u="function"==typeof n?n:cb(!!n),t):u},t.curve=function(n){return arguments.length?(c=n,null!=a&&(s=c(a)),t):c},t.context=function(n){return arguments.length?(null==n?a=s=null:s=c(a=n),t):a},t},yb=function(t,n){return n<t?-1:n>t?1:n>=t?0:NaN},gb=function(t){return t},mb=function(){function t(t){var a,c,s,f,l,h=t.length,p=0,d=new Array(h),v=new Array(h),_=+i.apply(this,arguments),y=Math.min(hb,Math.max(-hb,o.apply(this,arguments)-_)),g=Math.min(Math.abs(y)/h,u.apply(this,arguments)),m=g*(y<0?-1:1);for(a=0;a<h;++a)(l=v[d[a]=a]=+n(t[a],a,t))>0&&(p+=l);for(null!=e?d.sort(function(t,n){return e(v[t],v[n])}):null!=r&&d.sort(function(n,e){return r(t[n],t[e])}),a=0,s=p?(y-h*m)/p:0;a<h;++a,_=f)c=d[a],l=v[c],f=_+(l>0?l*s:0)+m,v[c]={data:t[c],index:a,value:l,startAngle:_,endAngle:f,padAngle:g};return v}var n=gb,e=yb,r=null,i=cb(0),o=cb(hb),u=cb(0);return t.value=function(e){return arguments.length?(n="function"==typeof e?e:cb(+e),t):n},t.sortValues=function(n){return arguments.length?(e=n,r=null,t):e},t.sort=function(n){return arguments.length?(r=n,e=null,t):r},t.startAngle=function(n){return arguments.length?(i="function"==typeof n?n:cb(+n),t):i},t.endAngle=function(n){return arguments.length?(o="function"==typeof n?n:cb(+n),t):o},t.padAngle=function(n){return arguments.length?(u="function"==typeof n?n:cb(+n),t):u},t},xb=ac(db);uc.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(t,n){this._curve.point(n*Math.sin(t),n*-Math.cos(t))}};var bb=function(){return cc(vb().curve(xb))},wb=function(){var t=_b().curve(xb),n=t.curve,e=t.lineX0,r=t.lineX1,i=t.lineY0,o=t.lineY1;return t.angle=t.x,delete t.x,t.startAngle=t.x0,delete t.x0,t.endAngle=t.x1,delete t.x1,t.radius=t.y,delete t.y,t.innerRadius=t.y0,delete t.y0,t.outerRadius=t.y1,delete t.y1,t.lineStartAngle=function(){return cc(e())},delete t.lineX0,t.lineEndAngle=function(){return cc(r())},delete t.lineX1,t.lineInnerRadius=function(){return cc(i())},delete t.lineY0,t.lineOuterRadius=function(){return cc(o())},delete t.lineY1,t.curve=function(t){return arguments.length?n(ac(t)):n()._curve},t},Mb={draw:function(t,n){var e=Math.sqrt(n/fb);t.moveTo(e,0),t.arc(0,0,e,0,hb)}},Tb={draw:function(t,n){var e=Math.sqrt(n/5)/2;t.moveTo(-3*e,-e),t.lineTo(-e,-e),t.lineTo(-e,-3*e),t.lineTo(e,-3*e),t.lineTo(e,-e),t.lineTo(3*e,-e),t.lineTo(3*e,e),t.lineTo(e,e),t.lineTo(e,3*e),t.lineTo(-e,3*e),t.lineTo(-e,e),t.lineTo(-3*e,e),t.closePath()}},Nb=Math.sqrt(1/3),kb=2*Nb,Sb={draw:function(t,n){var e=Math.sqrt(n/kb),r=e*Nb;t.moveTo(0,-e),t.lineTo(r,0),t.lineTo(0,e),t.lineTo(-r,0),t.closePath()}},Eb=.8908130915292852,Ab=Math.sin(fb/10)/Math.sin(7*fb/10),Cb=Math.sin(hb/10)*Ab,zb=-Math.cos(hb/10)*Ab,Pb={draw:function(t,n){var e=Math.sqrt(n*Eb),r=Cb*e,i=zb*e;t.moveTo(0,-e),t.lineTo(r,i);for(var o=1;o<5;++o){var u=hb*o/5,a=Math.cos(u),c=Math.sin(u);t.lineTo(c*e,-a*e),t.lineTo(a*r-c*i,c*r+a*i)}t.closePath()}},Rb={draw:function(t,n){var e=Math.sqrt(n),r=-e/2;t.rect(r,r,e,e)}},qb=Math.sqrt(3),Lb={draw:function(t,n){var e=-Math.sqrt(n/(3*qb));t.moveTo(0,2*e),t.lineTo(-qb*e,-e),t.lineTo(qb*e,-e),t.closePath()}},Ub=-.5,Db=Math.sqrt(3)/2,Ob=1/Math.sqrt(12),Fb=3*(Ob/2+1),Ib={draw:function(t,n){var e=Math.sqrt(n/Fb),r=e/2,i=e*Ob,o=r,u=e*Ob+e,a=-o,c=u;t.moveTo(r,i),t.lineTo(o,u),t.lineTo(a,c),t.lineTo(Ub*r-Db*i,Db*r+Ub*i),t.lineTo(Ub*o-Db*u,Db*o+Ub*u),t.lineTo(Ub*a-Db*c,Db*a+Ub*c),t.lineTo(Ub*r+Db*i,Ub*i-Db*r),t.lineTo(Ub*o+Db*u,Ub*u-Db*o),t.lineTo(Ub*a+Db*c,Ub*c-Db*a),t.closePath()}},Yb=[Mb,Tb,Sb,Rb,Pb,Lb,Ib],Bb=function(){function t(){var t;if(r||(r=t=Re()),n.apply(this,arguments).draw(r,+e.apply(this,arguments)),t)return r=null,t+""||null}var n=cb(Mb),e=cb(64),r=null;return t.type=function(e){return arguments.length?(n="function"==typeof e?e:cb(e),t):n},t.size=function(n){return arguments.length?(e="function"==typeof n?n:cb(+n),t):e},t.context=function(n){return arguments.length?(r=null==n?null:n,t):r},t},jb=function(){};fc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:sc(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:sc(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}};var Hb=function(t){return new fc(t)};lc.prototype={areaStart:jb,areaEnd:jb,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x2=t,this._y2=n;break;case 1:this._point=2,this._x3=t,this._y3=n;break;case 2:this._point=3,this._x4=t,this._y4=n,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+n)/6);break;default:sc(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}};var Xb=function(t){return new lc(t)};hc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var e=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+n)/6;this._line?this._context.lineTo(e,r):this._context.moveTo(e,r);break;case 3:this._point=4;default:sc(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}};var Vb=function(t){return new hc(t)};pc.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,n=this._y,e=t.length-1;if(e>0)for(var r,i=t[0],o=n[0],u=t[e]-i,a=n[e]-o,c=-1;++c<=e;)r=c/e,this._basis.point(this._beta*t[c]+(1-this._beta)*(i+r*u),this._beta*n[c]+(1-this._beta)*(o+r*a));this._x=this._y=null,this._basis.lineEnd()},point:function(t,n){this._x.push(+t),this._y.push(+n)}};var Wb=function t(n){function e(t){return 1===n?new fc(t):new pc(t,n)}return e.beta=function(n){return t(+n)},e}(.85);vc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:dc(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2,this._x1=t,this._y1=n;break;case 2:this._point=3;default:dc(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var $b=function t(n){function e(t){return new vc(t,n)}return e.tension=function(n){return t(+n)},e}(0);_c.prototype={areaStart:jb,areaEnd:jb,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:dc(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Zb=function t(n){function e(t){return new _c(t,n)}return e.tension=function(n){return t(+n)},e}(0);yc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:dc(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Gb=function t(n){function e(t){return new yc(t,n)}return e.tension=function(n){return t(+n)},e}(0);mc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3;default:gc(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Jb=function t(n){function e(t){return n?new mc(t,n):new vc(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);xc.prototype={areaStart:jb,areaEnd:jb,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:gc(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Qb=function t(n){function e(t){return n?new xc(t,n):new _c(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);bc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0;
},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:gc(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Kb=function t(n){function e(t){return n?new bc(t,n):new yc(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);wc.prototype={areaStart:jb,areaEnd:jb,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,n){t=+t,n=+n,this._point?this._context.lineTo(t,n):(this._point=1,this._context.moveTo(t,n))}};var tw=function(t){return new wc(t)};Sc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:kc(this,this._t0,Nc(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){var e=NaN;if(t=+t,n=+n,t!==this._x1||n!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,kc(this,Nc(this,e=Tc(this,t,n)),e);break;default:kc(this,this._t0,e=Tc(this,t,n))}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n,this._t0=e}}},(Ec.prototype=Object.create(Sc.prototype)).point=function(t,n){Sc.prototype.point.call(this,n,t)},Ac.prototype={moveTo:function(t,n){this._context.moveTo(n,t)},closePath:function(){this._context.closePath()},lineTo:function(t,n){this._context.lineTo(n,t)},bezierCurveTo:function(t,n,e,r,i,o){this._context.bezierCurveTo(n,t,r,e,o,i)}},Pc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,n=this._y,e=t.length;if(e)if(this._line?this._context.lineTo(t[0],n[0]):this._context.moveTo(t[0],n[0]),2===e)this._context.lineTo(t[1],n[1]);else for(var r=Rc(t),i=Rc(n),o=0,u=1;u<e;++o,++u)this._context.bezierCurveTo(r[0][o],i[0][o],r[1][o],i[1][o],t[u],n[u]);(this._line||0!==this._line&&1===e)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,n){this._x.push(+t),this._y.push(+n)}};var nw=function(t){return new Pc(t)};qc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&2===this._point&&this._context.lineTo(this._x,this._y),(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,n),this._context.lineTo(t,n);else{var e=this._x*(1-this._t)+t*this._t;this._context.lineTo(e,this._y),this._context.lineTo(e,n)}}this._x=t,this._y=n}};var ew=function(t){return new qc(t,.5)},rw=Array.prototype.slice,iw=function(t,n){if((r=t.length)>1)for(var e,r,i=1,o=t[n[0]],u=o.length;i<r;++i){e=o,o=t[n[i]];for(var a=0;a<u;++a)o[a][1]+=o[a][0]=isNaN(e[a][1])?e[a][0]:e[a][1]}},ow=function(t){for(var n=t.length,e=new Array(n);--n>=0;)e[n]=n;return e},uw=function(){function t(t){var o,u,a=n.apply(this,arguments),c=t.length,s=a.length,f=new Array(s);for(o=0;o<s;++o){for(var l,h=a[o],p=f[o]=new Array(c),d=0;d<c;++d)p[d]=l=[0,+i(t[d],h,d,t)],l.data=t[d];p.key=h}for(o=0,u=e(f);o<s;++o)f[u[o]].index=o;return r(f,u),f}var n=cb([]),e=ow,r=iw,i=Dc;return t.keys=function(e){return arguments.length?(n="function"==typeof e?e:cb(rw.call(e)),t):n},t.value=function(n){return arguments.length?(i="function"==typeof n?n:cb(+n),t):i},t.order=function(n){return arguments.length?(e=null==n?ow:"function"==typeof n?n:cb(rw.call(n)),t):e},t.offset=function(n){return arguments.length?(r=null==n?iw:n,t):r},t},aw=function(t,n){if((r=t.length)>0){for(var e,r,i,o=0,u=t[0].length;o<u;++o){for(i=e=0;e<r;++e)i+=t[e][o][1]||0;if(i)for(e=0;e<r;++e)t[e][o][1]/=i}iw(t,n)}},cw=function(t,n){if((e=t.length)>0){for(var e,r=0,i=t[n[0]],o=i.length;r<o;++r){for(var u=0,a=0;u<e;++u)a+=t[u][r][1]||0;i[r][1]+=i[r][0]=-a/2}iw(t,n)}},sw=function(t,n){if((i=t.length)>0&&(r=(e=t[n[0]]).length)>0){for(var e,r,i,o=0,u=1;u<r;++u){for(var a=0,c=0,s=0;a<i;++a){for(var f=t[n[a]],l=f[u][1]||0,h=f[u-1][1]||0,p=(l-h)/2,d=0;d<a;++d){var v=t[n[d]],_=v[u][1]||0,y=v[u-1][1]||0;p+=_-y}c+=l,s+=p*l}e[u-1][1]+=e[u-1][0]=o,c&&(o-=s/c)}e[u-1][1]+=e[u-1][0]=o,iw(t,n)}},fw=function(t){var n=t.map(Oc);return ow(t).sort(function(t,e){return n[t]-n[e]})},lw=function(t){return fw(t).reverse()},hw=function(t){var n,e,r=t.length,i=t.map(Oc),o=ow(t).sort(function(t,n){return i[n]-i[t]}),u=0,a=0,c=[],s=[];for(n=0;n<r;++n)e=o[n],u<a?(u+=i[e],c.push(e)):(a+=i[e],s.push(e));return s.reverse().concat(c)},pw=function(t){return ow(t).reverse()},dw=function(t){return function(){return t}};Yc.prototype={constructor:Yc,insert:function(t,n){var e,r,i;if(t){if(n.P=t,n.N=t.N,t.N&&(t.N.P=n),t.N=n,t.R){for(t=t.R;t.L;)t=t.L;t.L=n}else t.R=n;e=t}else this._?(t=Xc(this._),n.P=null,n.N=t,t.P=t.L=n,e=t):(n.P=n.N=null,this._=n,e=null);for(n.L=n.R=null,n.U=e,n.C=!0,t=n;e&&e.C;)r=e.U,e===r.L?(i=r.R,i&&i.C?(e.C=i.C=!1,r.C=!0,t=r):(t===e.R&&(jc(this,e),t=e,e=t.U),e.C=!1,r.C=!0,Hc(this,r))):(i=r.L,i&&i.C?(e.C=i.C=!1,r.C=!0,t=r):(t===e.L&&(Hc(this,e),t=e,e=t.U),e.C=!1,r.C=!0,jc(this,r))),e=t.U;this._.C=!1},remove:function(t){t.N&&(t.N.P=t.P),t.P&&(t.P.N=t.N),t.N=t.P=null;var n,e,r,i=t.U,o=t.L,u=t.R;if(e=o?u?Xc(u):o:u,i?i.L===t?i.L=e:i.R=e:this._=e,o&&u?(r=e.C,e.C=t.C,e.L=o,o.U=e,e!==u?(i=e.U,e.U=t.U,t=e.R,i.L=t,e.R=u,u.U=e):(e.U=i,i=e,t=e.R)):(r=t.C,t=e),t&&(t.U=i),!r){if(t&&t.C)return void(t.C=!1);do{if(t===this._)break;if(t===i.L){if(n=i.R,n.C&&(n.C=!1,i.C=!0,jc(this,i),n=i.R),n.L&&n.L.C||n.R&&n.R.C){n.R&&n.R.C||(n.L.C=!1,n.C=!0,Hc(this,n),n=i.R),n.C=i.C,i.C=n.R.C=!1,jc(this,i),t=this._;break}}else if(n=i.L,n.C&&(n.C=!1,i.C=!0,Hc(this,i),n=i.L),n.L&&n.L.C||n.R&&n.R.C){n.L&&n.L.C||(n.R.C=!1,n.C=!0,jc(this,n),n=i.L),n.C=i.C,i.C=n.L.C=!1,Hc(this,i),t=this._;break}n.C=!0,t=i,i=i.U}while(!t.C);t&&(t.C=!1)}}};var vw,_w,yw,gw,mw,xw=[],bw=[],ww=1e-6,Mw=1e-12;_s.prototype={constructor:_s,polygons:function(){var t=this.edges;return this.cells.map(function(n){var e=n.halfedges.map(function(e){return ts(n,t[e])});return e.data=n.site.data,e})},triangles:function(){var t=[],n=this.edges;return this.cells.forEach(function(e,r){if(o=(i=e.halfedges).length)for(var i,o,u,a=e.site,c=-1,s=n[i[o-1]],f=s.left===a?s.right:s.left;++c<o;)u=f,s=n[i[c]],f=s.left===a?s.right:s.left,u&&f&&r<u.index&&r<f.index&&ds(a,u,f)<0&&t.push([a.data,u.data,f.data])}),t},links:function(){return this.edges.filter(function(t){return t.right}).map(function(t){return{source:t.left.data,target:t.right.data}})},find:function(t,n,e){for(var r,i,o=this,u=o._found||0,a=o.cells.length;!(i=o.cells[u]);)if(++u>=a)return null;var c=t-i.site[0],s=n-i.site[1],f=c*c+s*s;do i=o.cells[r=u],u=null,i.halfedges.forEach(function(e){var r=o.edges[e],a=r.left;if(a!==i.site&&a||(a=r.right)){var c=t-a[0],s=n-a[1],l=c*c+s*s;l<f&&(f=l,u=a.index)}});while(null!==u);return o._found=r,null==e||f<=e*e?i.site:null}};var Tw=function(){function t(t){return new _s(t.map(function(r,i){var o=[Math.round(n(r,i,t)/ww)*ww,Math.round(e(r,i,t)/ww)*ww];return o.index=i,o.data=r,o}),r)}var n=Fc,e=Ic,r=null;return t.polygons=function(n){return t(n).polygons()},t.links=function(n){return t(n).links()},t.triangles=function(n){return t(n).triangles()},t.x=function(e){return arguments.length?(n="function"==typeof e?e:dw(+e),t):n},t.y=function(n){return arguments.length?(e="function"==typeof n?n:dw(+n),t):e},t.extent=function(n){return arguments.length?(r=null==n?null:[[+n[0][0],+n[0][1]],[+n[1][0],+n[1][1]]],t):r&&[[r[0][0],r[0][1]],[r[1][0],r[1][1]]]},t.size=function(n){return arguments.length?(r=null==n?null:[[0,0],[+n[0],+n[1]]],t):r&&[r[1][0]-r[0][0],r[1][1]-r[0][1]]},t},Nw=function(t){return function(){return t}};gs.prototype={constructor:gs,scale:function(t){return 1===t?this:new gs(this.k*t,this.x,this.y)},translate:function(t,n){return 0===t&0===n?this:new gs(this.k,this.x+this.k*t,this.y+this.k*n)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var kw=new gs(1,0,0);ms.prototype=gs.prototype;var Sw=function(){t.event.preventDefault(),t.event.stopImmediatePropagation()},Ew=function(){function n(t){t.on("wheel.zoom",s).on("mousedown.zoom",f).on("dblclick.zoom",l).on("touchstart.zoom",h).on("touchmove.zoom",d).on("touchend.zoom touchcancel.zoom",v).style("-webkit-tap-highlight-color","rgba(0,0,0,0)").property("__zoom",Ms)}function e(t,n){return n=Math.max(x,Math.min(b,n)),n===t.k?t:new gs(n,t.x,t.y)}function r(t,n,e){var r=n[0]-e[0]*t.k,i=n[1]-e[1]*t.k;return r===t.x&&i===t.y?t:new gs(t.k,r,i)}function i(t,n){var e=t.invertX(n[0][0])-w,r=t.invertX(n[1][0])-M,i=t.invertY(n[0][1])-T,o=t.invertY(n[1][1])-N;return t.translate(r>e?(e+r)/2:Math.min(0,e)||Math.max(0,r),o>i?(i+o)/2:Math.min(0,i)||Math.max(0,o))}function o(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function u(t,n,e){t.on("start.zoom",function(){a(this,arguments).start()}).on("interrupt.zoom end.zoom",function(){a(this,arguments).end()}).tween("zoom",function(){var t=this,r=arguments,i=a(t,r),u=m.apply(t,r),c=e||o(u),s=Math.max(u[1][0]-u[0][0],u[1][1]-u[0][1]),f=t.__zoom,l="function"==typeof n?n.apply(t,r):n,h=E(f.invert(c).concat(s/f.k),l.invert(c).concat(s/l.k));return function(t){if(1===t)t=l;else{var n=h(t),e=s/n[2];t=new gs(e,c[0]-n[0]*e,c[1]-n[1]*e)}i.zoom(null,t)}})}function a(t,n){for(var e,r=0,i=A.length;r<i;++r)if((e=A[r]).that===t)return e;return new c(t,n)}function c(t,n){this.that=t,this.args=n,this.index=-1,this.active=0,this.extent=m.apply(t,n)}function s(){function n(){o.wheel=null,o.end()}if(g.apply(this,arguments)){var o=a(this,arguments),u=this.__zoom,c=Math.max(x,Math.min(b,u.k*Math.pow(2,-t.event.deltaY*(t.event.deltaMode?120:1)/500))),s=zf(this);if(o.wheel)o.mouse[0][0]===s[0]&&o.mouse[0][1]===s[1]||(o.mouse[1]=u.invert(o.mouse[0]=s)),clearTimeout(o.wheel);else{if(u.k===c)return;o.mouse=[s,u.invert(s)],op(this),o.start()}Sw(),o.wheel=setTimeout(n,P),o.zoom("mouse",i(r(e(u,c),o.mouse[0],o.mouse[1]),o.extent))}}function f(){function n(){Sw(),o.moved=!0,o.zoom("mouse",i(r(o.that.__zoom,o.mouse[0]=zf(o.that),o.mouse[1]),o.extent))}function e(){u.on("mousemove.zoom mouseup.zoom",null),_t(t.event.view,o.moved),Sw(),o.end()}if(!y&&g.apply(this,arguments)){var o=a(this,arguments),u=pl(t.event.view).on("mousemove.zoom",n,!0).on("mouseup.zoom",e,!0),c=zf(this);gl(t.event.view),xs(),o.mouse=[c,this.__zoom.invert(c)],op(this),o.start()}}function l(){if(g.apply(this,arguments)){var o=this.__zoom,a=zf(this),c=o.invert(a),s=o.k*(t.event.shiftKey?.5:2),f=i(r(e(o,s),a,c),m.apply(this,arguments));Sw(),k>0?pl(this).transition().duration(k).call(u,f,a):pl(this).call(n.transform,f)}}function h(){if(g.apply(this,arguments)){var n,e,r,i,o=a(this,arguments),u=t.event.changedTouches,c=u.length;for(xs(),e=0;e<c;++e)r=u[e],i=vl(this,u,r.identifier),i=[i,this.__zoom.invert(i),r.identifier],o.touch0?o.touch1||(o.touch1=i):(o.touch0=i,n=!0);return _&&(_=clearTimeout(_),!o.touch1)?(o.end(),i=pl(this).on("dblclick.zoom"),void(i&&i.apply(this,arguments))):void(n&&(_=setTimeout(function(){_=null},z),op(this),o.start()))}}function d(){var n,o,u,c,s=a(this,arguments),f=t.event.changedTouches,l=f.length;for(Sw(),_&&(_=clearTimeout(_)),n=0;n<l;++n)o=f[n],u=vl(this,f,o.identifier),s.touch0&&s.touch0[2]===o.identifier?s.touch0[0]=u:s.touch1&&s.touch1[2]===o.identifier&&(s.touch1[0]=u);if(o=s.that.__zoom,s.touch1){var h=s.touch0[0],p=s.touch0[1],d=s.touch1[0],v=s.touch1[1],y=(y=d[0]-h[0])*y+(y=d[1]-h[1])*y,g=(g=v[0]-p[0])*g+(g=v[1]-p[1])*g;o=e(o,Math.sqrt(y/g)),u=[(h[0]+d[0])/2,(h[1]+d[1])/2],c=[(p[0]+v[0])/2,(p[1]+v[1])/2]}else{if(!s.touch0)return;u=s.touch0[0],c=s.touch0[1]}s.zoom("touch",i(r(o,u,c),s.extent))}function v(){var n,e,r=a(this,arguments),i=t.event.changedTouches,o=i.length;for(xs(),y&&clearTimeout(y),y=setTimeout(function(){y=null},z),n=0;n<o;++n)e=i[n],r.touch0&&r.touch0[2]===e.identifier?delete r.touch0:r.touch1&&r.touch1[2]===e.identifier&&delete r.touch1;r.touch1&&!r.touch0&&(r.touch0=r.touch1,delete r.touch1),r.touch0||r.end()}var _,y,g=bs,m=ws,x=0,b=1/0,w=-b,M=b,T=w,N=M,k=250,E=Ch,A=[],C=p("start","zoom","end"),z=500,P=150;return n.transform=function(t,n){var e=t.selection?t.selection():t;e.property("__zoom",Ms),t!==e?u(t,n):e.interrupt().each(function(){a(this,arguments).start().zoom(null,"function"==typeof n?n.apply(this,arguments):n).end()})},n.scaleBy=function(t,e){n.scaleTo(t,function(){var t=this.__zoom.k,n="function"==typeof e?e.apply(this,arguments):e;return t*n})},n.scaleTo=function(t,u){n.transform(t,function(){var t=m.apply(this,arguments),n=this.__zoom,a=o(t),c=n.invert(a),s="function"==typeof u?u.apply(this,arguments):u;return i(r(e(n,s),a,c),t)})},n.translateBy=function(t,e,r){n.transform(t,function(){return i(this.__zoom.translate("function"==typeof e?e.apply(this,arguments):e,"function"==typeof r?r.apply(this,arguments):r),m.apply(this,arguments))})},c.prototype={start:function(){return 1===++this.active&&(this.index=A.push(this)-1,this.emit("start")),this},zoom:function(t,n){return this.mouse&&"mouse"!==t&&(this.mouse[1]=n.invert(this.mouse[0])),this.touch0&&"touch"!==t&&(this.touch0[1]=n.invert(this.touch0[0])),this.touch1&&"touch"!==t&&(this.touch1[1]=n.invert(this.touch1[0])),this.that.__zoom=n,this.emit("zoom"),this},end:function(){return 0===--this.active&&(A.splice(this.index,1),this.index=-1,this.emit("end")),this},emit:function(t){S(new ys(n,t,this.that.__zoom),C.apply,C,[t,this.that,this.args])}},n.filter=function(t){return arguments.length?(g="function"==typeof t?t:Nw(!!t),n):g},n.extent=function(t){return arguments.length?(m="function"==typeof t?t:Nw([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),n):m},n.scaleExtent=function(t){return arguments.length?(x=+t[0],b=+t[1],n):[x,b]},n.translateExtent=function(t){return arguments.length?(w=+t[0][0],M=+t[1][0],T=+t[0][1],N=+t[1][1],n):[[w,T],[M,N]]},n.duration=function(t){return arguments.length?(k=+t,n):k},n.interpolate=function(t){return arguments.length?(E=t,n):E},n.on=function(){var t=C.on.apply(C,arguments);return t===C?n:t},n};t.version=Ts,t.bisect=Es,t.bisectRight=Es,t.bisectLeft=As,t.ascending=Ns,t.bisector=ks,t.descending=Cs,t.deviation=Rs,t.extent=qs,t.histogram=Vs,t.thresholdFreedmanDiaconis=$s,t.thresholdScott=Zs,t.thresholdSturges=Xs,t.max=Gs,t.mean=Js,t.median=Qs,t.merge=Ks,t.min=tf,t.pairs=nf,t.permute=ef,t.quantile=Ws,t.range=Is,t.scan=rf,t.shuffle=of,t.sum=uf,t.ticks=Hs,t.tickStep=e,t.transpose=af,t.variance=Ps,t.zip=cf,t.axisTop=s,t.axisRight=f,t.axisBottom=l,t.axisLeft=h,t.brush=md,t.brushX=Ee,t.brushY=Ae,t.brushSelection=Se,t.chord=kd,t.ribbon=Rd,t.nest=Ld,t.set=Ve,t.map=Ie,t.keys=Dd,t.values=Od,t.entries=Fd,t.color=Mt,t.rgb=St,t.hsl=zt,t.lab=Lt,t.hcl=Bt,t.cubehelix=Xt,t.dispatch=p,t.drag=xl,t.dragDisable=gl,t.dragEnable=_t,t.dsvFormat=Id,t.csvParse=Bd,t.csvParseRows=jd,t.csvFormat=Hd,t.csvFormatRows=Xd,t.tsvParse=Wd,t.tsvParseRows=$d,t.tsvFormat=Zd,t.tsvFormatRows=Gd,t.easeLinear=ne,t.easeQuad=ie,t.easeQuadIn=ee,t.easeQuadOut=re,t.easeQuadInOut=ie,t.easeCubic=ae,t.easeCubicIn=oe,t.easeCubicOut=ue,t.easeCubicInOut=ae,t.easePoly=zp,t.easePolyIn=Ap,t.easePolyOut=Cp,t.easePolyInOut=zp,t.easeSin=fe,t.easeSinIn=ce,t.easeSinOut=se,t.easeSinInOut=fe,t.easeExp=pe,t.easeExpIn=le,t.easeExpOut=he,t.easeExpInOut=pe,t.easeCircle=_e,t.easeCircleIn=de,t.easeCircleOut=ve,t.easeCircleInOut=_e,t.easeBounce=ge,t.easeBounceIn=ye,t.easeBounceOut=ge,t.easeBounceInOut=me,t.easeBack=Wp,t.easeBackIn=Xp,t.easeBackOut=Vp,t.easeBackInOut=Wp,t.easeElastic=Qp,t.easeElasticIn=Jp,t.easeElasticOut=Qp,t.easeElasticInOut=Kp,t.forceCenter=Jd,t.forceCollide=vv,t.forceLink=_v,t.forceManyBody=xv,t.forceSimulation=mv,t.forceX=bv,t.forceY=wv,t.formatDefaultLocale=hr,t.formatLocale=qv,t.formatSpecifier=zv,t.precisionFixed=Lv,t.precisionPrefix=Uv,t.precisionRound=Dv,t.geoArea=j_,t.geoBounds=V_,t.geoCentroid=$_,t.geoCircle=sy,t.geoClipExtent=_y,t.geoDistance=wy,t.geoGraticule=vi,t.geoGraticule10=_i,t.geoInterpolate=My,t.geoLength=my,t.geoPath=jy,t.geoAlbers=ng,t.geoAlbersUsa=eg,t.geoAzimuthalEqualArea=ig,t.geoAzimuthalEqualAreaRaw=rg,t.geoAzimuthalEquidistant=ug,t.geoAzimuthalEquidistantRaw=og,t.geoConicConformal=cg,t.geoConicConformalRaw=eo,t.geoConicEqualArea=tg,t.geoConicEqualAreaRaw=Zi,t.geoConicEquidistant=fg,t.geoConicEquidistantRaw=io,t.geoEquirectangular=sg,t.geoEquirectangularRaw=ro,t.geoGnomonic=lg,t.geoGnomonicRaw=oo,t.geoIdentity=hg,t.geoProjection=Xi,t.geoProjectionMutator=Vi,t.geoMercator=ag,t.geoMercatorRaw=Ki,t.geoOrthographic=pg,t.geoOrthographicRaw=ao,t.geoStereographic=dg,t.geoStereographicRaw=co,t.geoTransverseMercator=vg,t.geoTransverseMercatorRaw=so,t.geoRotation=cy,t.geoStream=F_,t.geoTransform=Zy,t.cluster=_g,t.hierarchy=xo,t.pack=Pg,t.packSiblings=Cg,t.packEnclose=Ag,t.partition=Lg,t.stratify=Fg,t.tree=Ig,t.treemap=Hg,t.treemapBinary=Xg,t.treemapDice=qg,t.treemapSlice=Yg,t.treemapSliceDice=Vg,t.treemapSquarify=jg,t.treemapResquarify=Wg,t.interpolate=mh,t.interpolateArray=hh,t.interpolateBasis=uh,t.interpolateBasisClosed=ah,t.interpolateDate=ph,t.interpolateNumber=dh,t.interpolateObject=vh,t.interpolateRound=xh,t.interpolateString=gh,t.interpolateTransformCss=Th,t.interpolateTransformSvg=Nh,t.interpolateZoom=Ch,t.interpolateRgb=sh,t.interpolateRgbBasis=fh,t.interpolateRgbBasisClosed=lh,t.interpolateHsl=zh,t.interpolateHslLong=Ph,t.interpolateLab=fn,t.interpolateHcl=Rh,t.interpolateHclLong=qh,t.interpolateCubehelix=Lh,t.interpolateCubehelixLong=Uh,t.quantize=Dh,t.path=Re,t.polygonArea=$g,t.polygonCentroid=Zg,t.polygonHull=Jg,t.polygonContains=Qg,t.polygonLength=Kg;t.quadtree=nr;t.queue=fu,t.randomUniform=em,t.randomNormal=rm,t.randomLogNormal=im,t.randomBates=um,t.randomIrwinHall=om,t.randomExponential=am,t.request=cm,t.html=fm,t.json=lm,t.text=hm,t.xml=pm,t.csv=vm,t.tsv=_m,t.scaleBand=vu,t.scalePoint=yu,t.scaleIdentity=Su,t.scaleLinear=ku,t.scaleLog=qu,t.scaleOrdinal=du,t.scaleImplicit=xm,t.scalePow=Uu,t.scaleSqrt=Du,t.scaleQuantile=Ou,t.scaleQuantize=Fu,t.scaleThreshold=Iu,t.scaleTime=Vx,t.scaleUtc=Wx,t.schemeCategory10=Zx,t.schemeCategory20b=Gx,t.schemeCategory20c=Jx,t.schemeCategory20=Qx,t.interpolateCubehelixDefault=Kx,t.interpolateRainbow=rb,t.interpolateWarm=tb,t.interpolateCool=nb,t.interpolateViridis=ib,t.interpolateMagma=ob,t.interpolateInferno=ub,t.interpolatePlasma=ab,t.scaleSequential=$a,t.creator=xf,t.local=x,t.matcher=Nf,t.mouse=zf,t.namespace=mf,t.namespaces=gf,t.select=pl,t.selectAll=dl,t.selection=dt,t.selector=Pf,t.selectorAll=qf,t.touch=vl,t.touches=_l,t.window=Kf,t.customEvent=S,t.arc=pb,t.area=_b,t.line=vb,t.pie=mb,t.radialArea=wb,t.radialLine=bb,t.symbol=Bb,t.symbols=Yb,t.symbolCircle=Mb,t.symbolCross=Tb,t.symbolDiamond=Sb,t.symbolSquare=Rb,t.symbolStar=Pb,t.symbolTriangle=Lb,t.symbolWye=Ib,t.curveBasisClosed=Xb,t.curveBasisOpen=Vb,t.curveBasis=Hb,t.curveBundle=Wb,t.curveCardinalClosed=Zb,t.curveCardinalOpen=Gb,t.curveCardinal=$b,t.curveCatmullRomClosed=Qb,t.curveCatmullRomOpen=Kb,t.curveCatmullRom=Jb,t.curveLinearClosed=tw,t.curveLinear=db,t.curveMonotoneX=Cc,t.curveMonotoneY=zc,t.curveNatural=nw,t.curveStep=ew,t.curveStepAfter=Uc,t.curveStepBefore=Lc,t.stack=uw,t.stackOffsetExpand=aw,t.stackOffsetNone=iw,t.stackOffsetSilhouette=cw,t.stackOffsetWiggle=sw,t.stackOrderAscending=fw,t.stackOrderDescending=lw,t.stackOrderInsideOut=hw,t.stackOrderNone=ow,t.stackOrderReverse=pw,t.timeInterval=Yu,t.timeMillisecond=Em,t.timeMilliseconds=Am,t.utcMillisecond=Em,t.utcMilliseconds=Am,t.timeSecond=Lm,t.timeSeconds=Um,t.utcSecond=Lm,t.utcSeconds=Um,t.timeMinute=Dm,t.timeMinutes=Om,t.timeHour=Fm,t.timeHours=Im,t.timeDay=Ym,t.timeDays=Bm,t.timeWeek=jm,t.timeWeeks=Gm,t.timeSunday=jm,t.timeSundays=Gm,t.timeMonday=Hm,t.timeMondays=Jm,t.timeTuesday=Xm,t.timeTuesdays=Qm,t.timeWednesday=Vm,t.timeWednesdays=Km,t.timeThursday=Wm,t.timeThursdays=tx,t.timeFriday=$m,t.timeFridays=nx,t.timeSaturday=Zm,t.timeSaturdays=ex,t.timeMonth=rx,t.timeMonths=ix,t.timeYear=ox,t.timeYears=ux,t.utcMinute=ax,t.utcMinutes=cx,t.utcHour=sx,t.utcHours=fx,t.utcDay=lx,t.utcDays=hx,t.utcWeek=px,t.utcWeeks=xx,t.utcSunday=px,t.utcSundays=xx,t.utcMonday=dx,t.utcMondays=bx,t.utcTuesday=vx,t.utcTuesdays=wx,t.utcWednesday=_x,t.utcWednesdays=Mx,t.utcThursday=yx,t.utcThursdays=Tx,t.utcFriday=gx,t.utcFridays=Nx,t.utcSaturday=mx,t.utcSaturdays=kx,t.utcMonth=Sx,t.utcMonths=Ex,t.utcYear=Ax,t.utcYears=zx,t.timeFormatDefaultLocale=Ya,t.timeFormatLocale=Wu,t.isoFormat=Dx,t.isoParse=Ox,t.now=pn,t.timer=_n,t.timerFlush=yn,t.timeout=Wh,t.interval=$h,t.transition=Kn,t.active=rd,t.interrupt=op,t.voronoi=Tw,t.zoom=Ew,t.zoomTransform=ms,t.zoomIdentity=kw,Object.defineProperty(t,"__esModule",{value:!0})});var buildMatrixFromComposerJson = function(composerjson) {
  var n = Object.keys(composerjson.require).length;
  var matrix = [];
  matrix[0] = [0];
  var increment = 0;
  // only the first element depends on others
  for (var i=1; i < n; i++) {
    matrix[0][i] = 1 + increment;
    increment += 0.001;
    matrix[i] = Array.apply(null, new Array(n)).map(Number.prototype.valueOf,0);
    matrix[i][0] = 1;
  }
  var packageNames = Object.keys(composerjson.require);
  packageNames.unshift(composerjson.name);
  
  return {
    matrix: matrix,
    packageNames: packageNames
  }
};

var buildMatrixFromComposerJsonAndLock = function(composerjson, composerlock) {

  var packages = composerlock.packages;
  composerjson.isMain = true;
  packages.unshift(composerjson);

  var indexByName = {};
  var packageNames = {};
  var matrix = [];
  var n = 0;
  var replaces = {};

  // List the replacements
  packages.forEach(function(p) {
    if (!p.replace) return;
    for (replaced in p.replace) {
      replaces[replaced] = p.name;
    }
  });
  
  // update required packages with replacements
  packages.forEach(function(p) {
    for (packageName in p.require) {
      if (packageName in replaces) {
        p.require[replaces[packageName]] = p.require[packageName];
        delete p.require[packageName];
      }
    }
  });

  // Compute a unique index for each package name.
  packages.forEach(function(p) {
    packageName = p.name;
    if (!(packageName in indexByName)) {
      packageNames[n] = packageName;
      indexByName[packageName] = n++;
    }
  });

  // Construct a square matrix counting package requires.
  packages.forEach(function(p) {
    var source = indexByName[p.name];
    var row = matrix[source];
    if (!row) {
     row = matrix[source] = [];
     for (var i = -1; ++i < n;) row[i] = 0;
    }
    for (packageName in p.require) {
      row[indexByName[packageName]]++; 
    }
  });

  // add small increment to equally weighted dependencies to force order
  matrix.forEach(function(row, index) {
    var increment = 0.001;
    for (var i = -1; ++i < n;) {
      var ii = (i + index) % n;
      if (row[ii] == 1) {
        row[ii] += increment;
        increment += 0.001;
      }
    }
  });

  return {
    matrix: matrix,
    packageNames: packageNames
  }
};
Dependency Wheel
================

This experiment visualizes package dependencies using an interactive disc. Each disc section represents a dependency, and links between arcs materialize these dependencies. All rendering is done client-side, in JavaScript. Built with <a href="https://github.com/mbostock/d3">d3.js</a>, published with the MIT open-source license.

Interact with DependencyWheels, see examples, and build your own at [http://fzaninotto.github.com/DependencyWheel](http://fzaninotto.github.com/DependencyWheel).

![The Dependency Wheel of the sylius/sylius project](http://redotheweb.com/DependencyWheel/img/dependency_chord.gif)
GIF89azw  !NETSCAPE2.0   ! <   ,    z    7/>*9
17=.3/1 X m u.P5m/^6n,3Z8,qBu6WnU	S1
R21gnf2|(~94QJY7WO.rfAq2P|)`XTT@1[A1gRJKFH^sLs^KtvnNP~KwopLhll " ' 8 < ?22ITbl0W/T3r"q"u:vP6OKV_WiQwpLpyD|oUg`mVwd|e37Jtq~JSbhhovxy|.>65KEH[[6cb7]^9cqe r q8f"u!w;MRKakPfqf[rEz[{\oj}5UlYrFRWG\Zd^nmwƋ2IǓIØ\МJЙ_ŚgȢ]ɨcªyǸgαsӫd׫uٶiٹxomuג͑՝ŕ܅魹̗ËꆥɚЩ퓹鮟ϔȤڵ˺ջͽӦ˶ȼ꿌ʻʰВ̦ϱզպϣ٧ڴ    	H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@
JQ*]ʴӧPLJUիXjfҮ`ÊK,{_]˶۷pʝKݻx˷/O
Lj+^5-CLʐ̹PɞCMz$zjFͺװc.yz[́m67^Fu3簗Cߚ{ү[uϸO<HϦ_X<UݿO?s؜X҆`R bF]`oJtav׆8Vv"vg"%X*zb0"EU_8A虘@~Di7yِ"PVф!VvIcGqn^dbfL	jխ)'R>֙s晣=606C zw^@(K)  Ạ.I:
c1Nrҍ2gi 0?xviw]Q
=;~Кz%AvxA@Rmغh`|-r#PPK/t<G sG.QZF%$$`j1=cO1b6\ǥKǬ%WF+0)[{mͬ3 h(^1bS4DCڴу@f0QOkY$&Tt#Atm͟m5eO +jcuLICXt$}M"PcXxKd;H)<Km~} P6\$9Ɛ+
S+Y&Ѿ~No -ND|HDP/v>akn
]'6fC\ 73c3%% (N?r P6Kَ*W?H)!(4P|ʒbw(dBu0AŴ}Lm{څRh`ܧma!ӏVn]d
p?:4ҏ.LEJ[H3%fhЅDr("D]X`*zeԚwnbȍ+@ 0%Z0{Lj9J4(3"vMh5  C	d0ɃǊL+22	!LSe*Ǩ"
.rI@7@Є葘4|	!$'40]Yj"dzZoj$y!W_)>{1FauXΔst'4~nqBgITQF'Mr?q18`v 29 ~0%HgSjԥvf4LFњE-JTh!s(R/u8HfHoJSn]˄j(
 N^P*~ը|MZԹҵ, SH@S	yʵ%iWQ=>_`+S)Lu)M%*&d/oP &ڏ`cN٫i 4l{%j/MmbK;]fշ-*Mow9(~mnZ]RW~UAC;zܑ G}rrK`50pL 7E盗U"x{Eލ1C f-ϕle,ÌpMs]=%cؿ@O/#pZN~$-+8Q쇽fcW<H'bڝ_+ᎦU\Ah3`d.z8Ăns1cDk\ܙ(`D`e9@RҜi6kڨ"tiqXV~|$}'@ѵ14\*ْEj5e64֭Vk:bN9&N9L¡*nuOjFoig(^YA2 6v49X1U!s @'䐴ރdQh;C1't+dmc1dNdU{'?QҜ7Zl7=:Qnh)73vO@c ݁F<&݅͞' 3w^ۓy Pя/P-5m?fǷ>"@d8  qȞRIuUn­F&F  @28Pi( G=Bnz#$G&/+%8G3-G@'6zv2ktWti0x60 X}Zy;YNwL^vfwzɷ~
؀Kl" 4H%t	CZ |XW~HzY)؂ǂ~AR	?ht*A 
}- -Gz+Ȅ'|9v׆v0RXFdg0 . w@ab ,Y|j~hj䧂HxFS r8T6q	 mAg'fIziK(g1!}8 M2 2O#$(T'Ae6	!8t+A	2 PCe(z>Q.ňXvl( ,.Y'-qkljG?؏Xet!34G57:CV
`	 (vU:L~؈ yroXy@5`/ZcT!7zVX@=d@yGdW7~[9)fWAiC	u}w (QD1KYm:	w6tH}C5	S,#`4!WznX'}P	 G]  38jBNPh3<+X~(0 q1+;P2,iS=)Sxitp	 % W(RZ7iuiQrɈaؚ!)4  h))`,b[wjeF(ɘYȏh9	!*H `¢iT%20@wO#d$a؍7/JhhŐS? S!1 }bSE;ق9^0ȥg{zIj<ڊ0P?
	=k`Yjn*-ꍊyVwix@ʦS4H
pK@2y:MszT)XgڥʠI8ER*QWp@`#fFP!¨J˨ȭ
k:%9
Ԩ-?<(z:
˪ηt< `8GѰ%`+ 7R@:	XVل(~	QPZp
Ơ=	  p}'6?~Lx:T'j%{cJ q ՠڳ!զ	ޠyF{+}'4ZuE%؋؝k ڌkrs
 p
񐹚K?
0k3*;;&[UK;=X`b
PP%0ū	0\$?{
1X#ۚ rx# @K0y
 - qb%~k 2l51XS x@L*[Dk*o} T5Wj	'纣	ڊG	;[ B	[s WO*̷;C({\<TV;V\j<z Ѧ`	,zyƐEC~!l#E"i}\ҫʞ(ȆJji۲!يzp	!k<g G+PyRB{"cW]ۼ%͘p+lwG1`!!q0qqlkXl|l0z1G"0vǜA:q¬y*ϨlrSdŅΌGp,ʌmh?w<aԨܿ{үl,a.a2MSA-`uAR^:Jԉ#ݿJ)WkTiM];<qμھm,7% l*|m,Qa^#г\Ɯ$;Ц]M$fmNSmWm4ʛӓƠ.U<̍ڼ3&rȳxMV=prՃM|ء
$47qm%ͷԪ\B*DXֽqíHm^}c*+lޮmuе݌-Z=ɂ;|,mIg{E۵LX	K'աڈc:n!ҳ]Kb2j,HڱCL_>KR&!
MpX>Z9NqO!ƐLDlDB)SCIw*F	C	~~j^l=TJ1+Ⱥ\A);a&;Uk]CyU.{,Aa.EQHδ([Y-ħ-8M3r4Mp|>n&ƬhϵSH-<A4\P4>I$Kp.`~`>䏮Л.8@ڢi
/~%?N\>ھbL?S.ūӘ~DO %NW:>/E~L>N}޾\o@kF/>k_N
՜%LuU|P4Iއ7oޔnA
>Q"t?Uiw!`4ʠn5?`/tbv M	ooLo?n|*Ϡ,Mo<=TADAf$NXEIH^ǌ!E$YI)UK1WY$:'CLQGw<-#Jbϐ-=VTtӉMIJYdSR%Ih#zMolٌͨ,P	7/]_anXXa%iNI}'T$?%"Y3~}rmI*ĩ:=Q4Fe)~CSb?HTl"ujѥvnt)SY&Yϛ==5ciQU^ώ:{+\jH舲-#*I x('9A:(B3N>;TiyǻxqBcJ#@L3&ZPdCv5IРH $|1%-J$ -¸Ïx˿Hk00/"IM(AGţ`d)L3L>*rL,<RtݘBpAz2BK9|SPB=5&~Ds)	P4iN\o<$OvT0qT }ȫhͬMٌY)eL.SͮQ{VY(M^8i;֒QWy]Ԕ֑ m"G1*boK(%Il(`b;`ݐӐGΉMLUFףm;_>q`G"A&&AdK?)dW>
}GLtae)UU߯s4~	6V"ei<*CZaJKmbiQ=;LOA=1vU"l6cWθg(VәXM;<G9C?f%BvBM.͖{]t5AlLݐT^ՍQ=i7ir|p"!/ia:E@@@! 0EBawAol]++(0WX-o<hx`oPZ淏 RcɁ ޳=mC5%h7ѝ.v[-Pmc!F"",F%ɇ:ml*w#s,T"XH0C/ND*FgkdEiQ؄+1Fv}	'?ɹ_vri,:,&!1gnR\!]i+B1?T$ǹ-5L5Cd>W6:r310SfтX`yC!?~XYWm`wQ%7̌<DB[_Ltx}D Dqmv3+OrA9w4e%0	L"Fˇ.$5HZ̃%ԒubPFMChjJ&7'LOBʞ~5{Ji\7ru$w,HXq.)]A%>#PcrTjIu&CIIzIMSMPF6x$[8ڑy]Y7XsG0hT?
bxzqW#CXR0`ZLMGъbܨU3K͞4DIhÜ}iGZT J'՗,ޣx(eo{	՗)6+AU^/b#)
)`L[GCۊ#RéHRހ@)Ȋ_ooRMxF	pl#`s3pDJinf/3ǃ2єk/P׍qUs/i&M	ܓGs̎{/Rx6U[xh , JF{]9|$ը.ͫ~#=4A"=iTЉy|=$~PDA\)kaNR۸>j<'ݦ4)eu3ruh]>|Ǯ@*Ue:;/+>DIzDb8&8v/t #hTȁF&tFC86DYc@7s͎|_dy;ͭxpXeARi84(LSqgEl\H̱]GfU~ך;dgٚ4ls;0,HdC٦}W𑾷t% |#8[s{5,Zv=ٴq77 ]wԤ>_=F/h?I%p:nKdKmP؆oH:M<Tӗ^]$0Fߜt1<{T#RVtB)[DAJ8b(8v>hST>T5p"[X=`;qA(>JxL1{<>؇xop3(@,tdrHñB[p䳟7|[ `+_iz?vu <@#j{FəЈB8`>PD+:R&q;/D{9q9ķ[É9d :;|"K!	s: 3@B3"F<Mۇš:A
?DsLt9u[u	Գp1kACEHU~;9.c5 c?(q<pġl:D-S(PFQqƄ/
+7*f:"kT7lTAo 2q:z"S|At9
G<)J:"+GXce:2F܆qh	º1`ahB//l7$ӵwv乕z$Ү@0!tZH(D'{Xzq衕<:ho٠".3<JolkSK&˓DÍ̠YD&A?02i"8# "x=jLGQhͽQГxCv, tMq >9p pH.L0Z)K!iq$M+Fh̍}8x* JpsBs[Uk'8;h@	NDT[ЅI|8$mh04|pՔlH@pBP8HpTAfBT*du<,$L\;i\qx_[}׻;=
ٔI+3!L`ڍ|ōx8N}6P
վñR7S ,#0m<s5$_S>k0m;KBшV)?pX8rDL%F[Hͬ$ҏK$y
NŞE*iASSUSl@o4C4\zs|:iVZ؆Ä́I(h-IAXVfuq\||RuKИϸ,t<ӯ1}q=S{(q\k3o	WW9E$CIk~@#͹A4dԬ9"}Tr2<	L"=:ߩLmT҉5(ڷse\ŲmUxM2kT͞,Ґ5GPzVBKH8PTv 9EN*D(2,mE(ۗۓ̓؅\`s5EVٺSDGVYF x8N8G[i\cۈ\cikpXMb&Wlu3Sc]>; QlUZEJȫ}^Y"`2$-K})S]LPZy
XK_83͚3$͟Kq`Od_-0^JI)%u\}z`܀^~̝ռT=N$"@[M7vFi_k	H8#GA=)#Ƨ+Vc̻b-P꠬_:+[Y3]n1}H+xUMqY[U!{\]#,ae8߅ekB^HUF>(sRbC<D៉udqÑnf&ӟdR%ӑȇscp-\Ú GT,ctݛ|8=P4?.ڍ ̢mSb|`~fa:.%Ef/y-ި↮=lt;U2q\YhqN!F$#:4|,S%I1DeB&9h4>`訊	[	]ʲhT	uq"pc4szH܅k8WX2<8Fdge7{Tۭk.,j%.NХfCfl{
~8xcXA9|5'~	e&%A"$噆*%&Sk/8K'N,&%nq8nԍl>FI&V#eA`R)=%9]V^׮Z$mAΞ^(mF;> ߙ9lfm/&sG.E(95%_~Mv>P89c%}f]%uXg0iڬo)65[&6r=.v=|
)
}oD&f\CoVY(.cxKxX]gs&rGi"<rKO|L:l06{X5DRD'\	@>;"@/O`%:|5Wλ5(sZASkj,A_1]D?tݎXLIeܸ8.gK9"rd]\YbzXu`i4ײvº MLu.URNC.X k:](
;=אiżP*p|.[3v(=nzq$a4'SFNq젖w,`"|P.p&]Hp?qT!aBjLwܓfg/1%i!ǈbm'O^Ik!Lw$fEJbNyrtHz/ߚ '?
%v)Yt-L(ۣf5ѱ&pqp.#,>u,Bi?dB%x{-` 3sV7~'	OPFriIme97y}z7|{xοny=!Z3؏}Ve$iWP}} 
2w!Ĉ'Rh"ƌ7r㽐ױdH
KjT	>%KiS̆av.߽s"hBD@&*!é>3Ǫ$lAǊkDYG^5T(xuHa%0##gxɚ7s3Т=9ʖKy&Y^p!5zta!qSgu̷0܂ӞF.Nb#G5\'^]op׾	Sά1;{h
8 xjMFu
fLVk
KmaUQA\ASTM-Pp|'u!EWyBqs-qh$G_c1:$QJ;CVJJcMt.aSP>LqT0i]|]帟A)ݔ#ccuE`Õ	ܝFJ'E)z)>fiZF3vcCm䐚9SuNi(pP)VS霈P,sIzDWLAv
Uui-"D~z.骫K33gW:ol-jS8ܖLvέh+C,"=BR9gT,BJ$%(cr{JJ(vKr)6.#.5l3g%KYؽu/\Pi
OwG6HS-hg?Q1<RĉrIZXf^-uץu'}\ 󮤖E?m9RQHhMPenW ]ڌ.zyK_혋unQ? ;xKst΂OBc:O>?pf@ytqC6,Dr	!pń@~!y(|EJp#+5gC	<`Dqc FRCy"\}geIX?ޤ95L9\ETe-4UD>F=Nsdy?*Bibȼ%I.~r+ΊCAa0
A'EP=g$*Gj}cH1* ز~Bs>#99m|$qMU<|&O=X@:1E9a"%iaBP%qRxY_ze"c )!\:s@0T`&M[TJ>i%PBĆ,gQpQE;'g?Y)EhI옉ċ0"&FFj}r`$IJfR7Nng[a#BS<X:\r3D'*&0)^^Dl}CU5Ȃ=$:ǌ2jF)pX!"mVfi"w%သKt4rKY=DִHB%h:3q9g}{!Ĉ@9J&۲jY,URZVɱt4H;L:%**}'	jnՔnr AV"V)G	"ň|"ֺzf}N	O7Xf/bp^DpnU9Fkz;FWRAd*)j?ۿ0DlX]!V}10fMVOim!gC4ކ%KR+y}H|⑅V+)ʮC]<QATvTL5ø͞k;_9f:$,1t"	^!,ʃ\!$ YjTBg{<qgh"F7ZݻqP7!wnki{vD	)ѤTrZf*3vL'8~C(9G1jNCݯuMh]39	qn4kykvV2] ;-nݞSqܓ!JbLMHRC2V{4o [1uphgj *~DT&1W^)r|f9d$ٺ?H['6H?ч$T!..9؃(ux-ob%O{+DTdILqMI9yGqJL{:h"Cgd#X-@@ڡV2CIaUVxuiUB+Ϊ^A +eCW,bLMLʘ<A^xh%"FfSq}v*:9aљj#[^oq|2J7z=X#IF[̹IKE(X`5h! VF<VL_Am`ΩE! fH7j<\QۼaE9:5FqH8FU]<d-tQ![ Tb} F`#]_!L ڄ$!ѕI8ŹpY~@aMRVEUɔ<^DBHYE:2ZGRiM*&!>L\"K	bL!bz]UyK"Sd޸_Ă9ib26-JgL婢4]gL"E] J)t=H|%MAX$M"?H	VD=}㙍KB!bkј:L-I)KJXD=~E]UUDԅSd[?@#'f]?C^Д|1E49LU:HVHFjWI>J.$<LZL=INb):ЃgJRb,|QRDA( Vt^T.dVU}X]ifX,˟yk[*BPoUNPEϩb#.=#a A! `!
]#W$1y1SeZfHTӌY:d}y'6C&eѕ^hPO,K;$&>JL>NMvsOu=(`<U`\:CQgtylė=ىdxYGyeygѧnYxm8-~	"0P];A hHtv$C'\bܔ `.'Ģ2i7N'eBiv=ȸFqW)X~'h9~'}X; }:mo)"Bgbx_f=^#}Q'KH(p#b0&$t]Fcg҅"ReeRFaFn%xvwgdhP{DL!񦖕Q^%ԙaJGސ,$؟(>o*ĜO<<y9V&~)gЪwb鈦(+ΩC(`kl=<^ ӑ)pcw\k1Aqcԏr(L<Hd2(Leƪ%l˚"Uԁ[믊䫩讂^ZXǝ(GYWN+,*I VQůYUXn"ҁ^b!8\-&$b(؎|؄JC)z
jdح)Ynߞ˞A`Gw@N\e-EӚ9Q!vPA!G%C1A1S:(mnq[g@ﾶ)Zٍ%.ilKഊnIQwy6=jՒ*%]*ZeܰOE/	4<J׉P.)U]bYFIǠƔҌ'*b"/&%f!e|Od4\UZьgh'~kn/*.!VY.>PϠR5mRmOrRCMa7^O]z,&RF~4C @BzdS~ZGlVgEM
1q^}C'[lp{CVnL}(
_7fe||<1g)zҭCYUR'2.v1[fbg$EG0]%'pQ+{醫iMe$2COE²V225}
F%-J\9YCo4?mFS\%&Wym|IStXڈ1atiq Հ _&>aWRB_XoPBޡ[gU<PvBB!B,0f셧Eb|N+B2thd3GKӖ&KTD(#J_aQR!APWW*ʪ,c$|L@5XGvyn|$M1o)m6y ua^*_;v	f6gSbrˮA6H"M	dK6pw:.pI%qY֕[D4wafݠEZΔFpl2@BxO6{@÷$L-*whk"4gcFR6礢I_3U^qRjCbn=o7_QؕqKw
~Η\f%z*=2NdW 2Gsl&hReCyAnLrP`xǷ|\jf\M`ZRQM:7ChB(\[0vm`OpRdn!!_Gb@jbO}$2Hbwɸ̨R9<K!u9t6)Nv9ST7#5gse57g2}0!adcă1H,6`_e|̨1{7:"2LZ5ĞU$8"iES㫇'`3]T%C2z1|	Ŕ;sXh9[ @0ƬYhVp%*Kgy5BhAOj/P-?g=:uzµBSݽ;GEJ!7{vLPu\?xTOMO?+oJ̘1EɇϻKE(y1Hݦ)Gż	ϼu`LY܋qN4i_l{7cSs=OJ˸ݺ:o!$2k<)9֦F0W1?Y#NJzݙ%uN~R@lSq:5vlz܈<ΆK P؃p2f 0/1fe0?ש+,Y&Keϧut<ak8K?W?.d#cÌhC	۷#D+GfLy&K)+V>S.^ʝK2è,{:cUrmlXcɖz*ZXUmڶWѾnVf×_|çS0D7>,J|k9{B$HAfSfViY$*U+#]jǔ6O|Y;l?ѤgϦƥ6	4h>*;0vںRX}zp>{v}+8cj0c1(s20({(3Ѐkj3BkHDjI($W<q%shXmBŜrd.g|N>뮋F	btDb/:/sֺOoK;*.C12*{y'@wW,8c5"*C3bQ9 qCj4NBp4ȣPK|Fx$l TɄLjƞbd 
yW|[*f/UO)4KKL=%<mմON4O/s^z	,!T2R[GC>%!v5b6J/ʠxl|\uAE=gXj5j g_ ~,BUfx ycJ'{-&B[/MrZu79\͊l㓡<c"~PcН~W&t<RD[BPɵ1S'~9)xÌkY8mA Gl.b Ga]{PG   [J  -'\*K^K,tw\m^n"!2XEaNHpwĐ	Z%dsR#υnd"N'6؂6Ԙh(:D8	QfIumP   < @~b7a4i{I<I}N"ȧ>C1"S͸O`[~8yQ5+"lY A6d,<w1)٫ButDg:hcin K8B0bu 8Ьc㸡?\휰	v BiYK[b.)O^,T䘞!	Ds|4إ =GXv"XD ǅ<:Ҍ
 jx{L	|h>{2G`N =*# %r7ְ~\ [HI^J"͇*_QXL̀!cXDM@}Ym<"");AG&%U"Xj4Tr9L1iH>P u 5Z bhFB	MB+`	[Ҕ{ab'0{)uax3_OI?9V3_4	LH0<u]U <*Oq5s1l%խz"GCJ	+	h@]Bv<)6@vxX뻂Bd+@ǃqs,gB_dhTo0'`Pۨ,Unu<lc5&4H<ӏSA@[bOGcG&.ve`΁q=ifbN3~5K4!d QG#clpٜR[['dL^R\a5 *O[̋ӌc_7$pF>TM巛sZ ؃! >RqiI2E㏶e,7dG
61Mdb_ڔ}0qcĽ|3	CTMٴs?~{Fqe H/%&MXKjoY[w<1qYlexػCcSivHJ?&b8	*,X-YkNl+69qZcsntM:Q`d 8Ѓ SW5C+t戽kUE [T$<ҩleF\VYoq]ڸK݂Мv{0#^0;d׾FfR!ۃ 5~c:Y?UKWqn;Ӿ^	lQ_i/Vuqoȉ6SQ7oMcԮzcRִeYf_,hIE_w+{ػ"|#pPFdX)٬$$j#>oG%Ծ	kMLƣ+P+0f%Rp)t-hn*3, n /tJQCnNHqm4+,.ꀫ-BzĭKPNÊ_tmP*RziApy|.+p
T+
!b o6Bl¶mt;QOďHHhOap)ЉС dfʲn:3	_0ht=\b5$'zD[B"6\MoLMzT2Rnd^00|b40gJZмtOUnR8QhNnKG2"%zBGaQzɋ"5J(;B\=hCb	QJ
3 q8)/D\:BޤM/#>4ڱ#܋AdrPgnt f% &m.Ń'{">(FU:fC(1dLsɨ*?Q-&LR,	ĥ.CL,]Qb04p2k,H-/p!
	7-"1IdF")!8o<(/D2]°#3"9QBh&a$c5o}ar}
'`|on7d!
2	#>8plb609O6r$Rذ3;̤+ư]օ8*\%@MC=l11D+% ¦Z//? R(#p(U,r!?m!{Rs҃d,k.]J%3BDCi.RPtLQQ'Ӥb4B>4j4C}.LSd*8S8"
tcdTb(ڤTk.4:GC!5C%դtPc3%(DRTEA"=3Z}.#`hnmR҃7 *!+bPH+UGN"Q9kBj059R,֐SP}fk<eФPJ4 N'/>&c#=S6>rfPS&"R%:c1Re1sM4V1,u[[N14RmR5onTl|.%>s14,~?gc#6ncUbBrLQ 5_FC)+3a?oJ${bA5[S߰\nRL<&V<$`I!tv5/#)wd|v1/q4oh9-:iqDKg>qS/S=dקH53=k43<v-2qA<+
pEMB.Fқa:vbp	6<.sKqkZjTrDPsE=w%"
+"sd=aTFMF/3(V 	юvtWrTmxpwv(3DyXXQUcc,w3z0)3e346#`l,h?_!@ABMTH1π6r;7ҁ/jIm2Y`0sIU"tAt/|]"}_ c`K"26PT8txKx8"F p^x1yC5spzM3PL{?#mqtQte6HHyk8rPp0EH(18<#	@Y%G=R>rD` Dt?՘F^wsqdG9ol9( 'kٖٗ9Wf)wn2EL<E	CWd) Rk}9dyosbub	~rwp5IIgY陥?nLAb0m1-EL16'a0998v3tn6n%*Sf4xwS:8//POGUz,NPJfi?UfVZlØ t+``udyT?$XUzU)Z:ڲ:m2roͭEmʖէ3v k}娘MxO7?"#?δ"!	w';yv#Ӳ{=U:,ɾm(En|a4CVQY1,73·wv#;4*>!xV!/c+%6oDC0at ,V%%㍰iiyPS'9p[KŐ4%,)$zN5p0oUM)ڼU}3iȁ
򘄝B]KcBY"ǻ$5:c5ѠQ|!|5AݫTJسZ!5+R3cʫ#J\!_:;W=dzЃl)YOX|۱s;WgDEc}tegw?-O~Uw+P}3qd5;8=t!Ҝ51!Y_}rّGB$:UKpOa3f@mI3١0M{a˺IԳ?zs[rϴ2uMtA=ڝO}}'`x%#}9T'ΪݸR>̷EByG,HJ5;^U]o>e|+<iV>d;/a|6O%Ps^ʭHsJRW?Dü	:=:=^-}钿נqMnxtc}`
2z.:=
6d[$~#!)eQ^̖\ܢ^+4,>mOhꣻw&aJM;rU}r
Wqcpv0XY7%,<yuW+/<* ?4800?}G^ėQȑ"ϝKHIjX^"O~zęćB;T؏8$1D6L
uUUV+֫^vzoƪfmְrڽ7޽|"[@}#Ņu_CYw	2!I&QE)d(ӧΊ~YTuժiS$ujx8^eܪW˙g/nmV=%^}߄t~W|ޚ36B3,RɔDR<RNa#{-kԚLq P
Zt}AeB$T!{p"vWq^׃fura'^:XǣF'=\AuFBE~*kvP^Zڄ!4UeZ,w[&G!M%K^RݳRȽDVB2Y1	סyxF	idУ16邗xjgaeAy~s>MTfOclEyY&z^J`Rau"M,{'诈VWtQGXRhVMKzuW`n^~zЦ{#gi_F摱F]FI9Ih9,OE?kDKYXE͈l>6^TXW墉\)hmgsy6zV)y;d ,=FL1QNpC+L1OBpDѷԲHtX!wV%p,n9^>^も[w	4YxېoKGtPvD+PtS:b"jkB[]1E&Nu{Wmuw0#cGoЇ
]dLDfs8-i&<L3іT`S@nSW>Uq;BLOg~'hn:0Ñ6źl/C}3$lz`eWU(	Et(1JÀ>}SxHuf&@ꎀI";ybFZT74եzG\՟"D׻Lh0	<Sk$4j5OLh菍C+7 
0E26n!RGcra2g831Djwy	CBc*ӹ, XS8DB(2踤+,+rx-VrLDkO܉RqGĠ'7JJyAc7XZUBd\;7R*A]|@)/_v!qZ7JIIۜնp%4ME<b!9y`, ǮyNy*'vZNy>k%}g{޹PB}iB6~B7@2H-##ޖC(i&ǚOS'9=ōϤl8SVUى)hCbɦ!@ڐt$Lr2kȒ5\.\=Տ8gJP0F@$,xjmkJהBB
9HF4Q+SNI:HIJB\TaN{LȵYDX:WM|وUNgzc6zkGłOm`zzQ-`W#1_rjĹ9,gNP\%2KҋHp2g;7Z%+tīd}^sN4|y{!M>_hr#MF"8{_&ƹ9%T᧼X8DJ>$U{:qIbviɫW^%ϴ}=%Ww=\iY5~ߢq<Q'mP$)ze63&ps{=Lguum.%աm"Й,zܫ%p$7Jp^cnAL]<mismؘ3z}zYb[6w7[kčkURbstXbHdĿ:ɲLF8Pdr++$=f(}㛯
B&ݴUxγ!= X㣷Ro@LhA#ƗQڕ3,h[1'>#u6ܾRYbяq[Su#]~(v5q~s]ҥ|rR/I-Xc«XP4eiJדL>i@+%,ՄHF#sL-w罶`Y
=hR$_jWCM3}r/K:_@ʰ$R@}|D̪?ƒ=EGՔM-\1?}u_/t$|7p7hbtͦ`Yr!>vE=!OQ'v aj#wWa>RnnW~N1id(f
;w2R6UsE!w#[J#2\;hƶ>N0ha(Tq]s%TU"g7ggHo/b.Qv#2/b.@ksG6B^}x$2X`+hJaq&2>oU*"kD<ubCz8Zeh~1/~c2"trs.w_FtI;z[LGX1S-lis&gTF1S٦acMf%jx2qzf8Mkg._soB9$dG8XCY S>R`s+u֨?M(RrrZ!iqHQx<gfx#*g&8Uӥ=B3t<
?Qg}̥5ZSTӘ@],I	:ġeCV	!j&-	a"<e9?X83B@t99yF9U0+ЗKIqML9;CÂcy6_&hUwք=}o9ǋwrWV_Q]M"KHЈVP&iq`␝TaרcCCэQ-xu@ZAfٙ57Ē8.8<D(r5h%y$ .35} Չ15CDR:1f3ZNɠk$uNA<)w򁡜յBq+gB&͔T5>$'4zL5i&zDomwnjBw_J3{FJ<	&h>EY|P>[\
s\hPr~!)z{"\ ujb-.ƎE*oge:֧z~5vy*:vF^bPΦDKEhR:edJ1fzI,zd)bpjrcnڜHweo3R.,wyj)iX:*ͪydGrVŅI
b:vzyq:LRDMb6IZkzgCH$ګZP WW%5
aX/V&ʺYhH'?j02r'1芗)VizEvAbd}}'`JXh9ɨ+iҬRO!:a9e!O9e:26ٱf7T8$ko@=wq溨K
3=X%5[ ]9}OI,^ִ䗱'Ro	:i9ZI"7H#+kQz D\
b6Ga%C1[úw|,Ս$*k)7QK2rK*9"xf<<"(x'7Y%%l3a$U0A՗aEq3!%Ǒ0XQ5»k A}cəc<GA!h+ DN[P˺{dɰKeVm])u27 X0{6@<3Mc; |zREu5Br#Ú|Gy*i,Ȑ+}Qq*(9AT,(j:ƫx۩9<E@sgy:ú*[$Dv!NI`cyu듢zwbdỶ :Wb+.,]<jz8|j|k2{ڼ)c8정?<J;$Փz\CaW>٘kQ)Q9ɥvdy㷆;h j3$˩L{'kC9)݌[rIMR%zO-t|pj<FP6ˀ̔֍~k Y^ֱ!ʉ0'(/̖8sS1A% +DvJ#Sq#UQFT;%8t;	]*F#w,:'tcH[X=MdtAȅL\2]m0Zy/,b:;mv41AM4lOmsʂ#]$bCpKϗ̺~_M[u.,AGK:ŴꪯRH!{eg|4,?%+{}ʼ}.RI,6{&hϲH6,ctXUGoٝm:",&ǙHiڞzɩw:RK]ۮ8JN]wBL؅Pi)aJ*Y+H*э[2;=3vD=M{+`謏:`UxG<>I]̞P#\MGD%."={`jƷkk۬~R$Ly4΍xg+sP\ʰN*^TUz;d{^b<䀝kozL(+|CIJ]v̏lMU]Tl BXM2;{́Dkb+c-1uΏen:	eW^]Tַ^YC|^uroˮA$wFlLyY(|K#?Yg@1>eU!ݎgy|.y]_YNn2~eOL=10Ii!Sv[p4>^?Qit\O4·VHњqLJsT:T'h/$YGB7O&E3)ʓ1EӘY1lE~<_0>#,&/QӢ"6>" Gظ+Vz7W^>}Whxzi1x["޵=Ql^Ĺ[a>F$L"҆.^sp!np,L~N6VK{qXWb$eWpoC"S}NمyF?6 /_>wB
c`DAXa<5`?MtxRJ-.LRL5mĹ2fN)wRses3M̨OJ}AdR}jUBRYp'WGFSڵH'ųGň>k/غ;x2WÁy:9O
!KƜYf(_eNќeyԩXgDMӁg>mV^M66ZlNv]rOpoĿ+f^01KmßşG>"/~|'c?h}m⊷댡3)-IB Nˮ˺qD.3Vd1Fs$(#aԬV/?2d@٢?B(į pz*;J:4!<0:@̨;J$7M9l'kN
{M=<@I*,m"@b2BЦdJFT#4tLGnLJ	M2UEs?7Kk5VYߣGl7 +RA
Vbu<ԟ
E05tT8<t-K/"Q!ͮ[a4t'U1ٴYsyUS2UY)X#25i]/ɂ'+ޢB	+V.b$BS:*:w:vw|iVy_O^o_/M{O2j`!>6B[15)Z(-R		M#p=X]8ԔL]_Ym9gyug
&I6-$F*o#Ě
"Hf0ClJ%eqf|qlnO_O*O=ڻ!aO$q-6yX.Nds<WNStZ{xtwu][warPn)9&)i"6
ك0irͺsP3ۻp7r|5A&#!R8p(ZF@xY`c5I#Kօ5f9JM8%6&Åܓ+
~Hp,piׁڏ=%d)46{ijYE(|t"c+;Y$;T
yg΅c3C4Y~ssu^b';!rdSWEz.A"8&v&ŋ
0]I~1CA08ȕԘũ,pԚE9Ck-oX<pY]},o^*}|I2IːTNLN	QQED)b0s&*)(:eUH?tyB`'	[BS0sLГ~%48lkĪΫ_E(ZYʄHI(᧞JhGmu/qj*CQ!<M#|pGnIzbFv<zʗ"2m`+[r|T8n*CQZvVp-{{Nk/+HIU&\
7JA$ź0s^	Yy
#!%㴹Ps{5-`ci%f[mxBҖ͉>;aV!Kgx9KejGiQNU#zOkvӦGCb"swȆ2@wyjdq{XK~0
^}TWxKgQn±upJXf8k~|
YW&5RcX	9*wusk8D:]KTv2Pӌק:~0=C
)X~u9g_F(H.I#A54wsfM휃,Y=/mMw*D(|2DI/+\/oa)cjizi儉JlYԢ6`9SNJ%dM^ﯯRhV]+&۱r]vgtN|E{jC[N-%XsPLne<Dip.Qk*(]&Li>j1'U>owy-oTeX);Q$)2M)+}DⱏFwo;eTl$ig[&%
);Hӗ~G2LΗ_`X;:է]Q/yYBJje=8d;뀌AfG6/Umɚ-m'e+Qܑq o-#ٌͬu zS*@_- q~@BpdY GL?g{1ӟpC="/> ˒8x;2;h@28ۿQ>E꙯!3c(,A\k4@ ڸc1I+%8q6XV;.mAy&!?꿸#ߑB&;%s	[2	ǳ
C*I-LJlB>5=y9ܻ$K D2-
.';#=u*%E2B:҃8cNş7?B>4) k	3\UL7cɐ|#ӎP6@ =7C]EhDO9n0P	p?Xk:p<+ 4},F-pD$SBACI<Xdt5_z(#W$ k|Oq/4ɺ1HtsFXG@zBӠH9eZXV,}r;C0j#$99|Bף3-н,:4k,fIx;Y$3qO9dK˺qL#;!|В,a&#!4TI̓˶IƷ|Ly
"d^!ū8{ԵHȳ|;<DLJI̔ڼlˢjq?ጹõt+<L~+Kȣ&QL/Dع46MD\$t+LdG쨼8Eśl,]QJ};tIQNT4BǊd.
5l=9Oq|ķAE%ӌAQKiGGZScEc'U:Lѯ"<t#SЈ(D@L,PĿW)R  ̂$v%*XјkQRIdRǫ4-J+ .eJ=Ŝ%US?{
1|@TRW>N.JԷބMT4FC1!tӰT0OT
+#A\j<Ex4bEhRUDRJլqMB$<[NUٓ@P&Kȸlf=֠,9i־-5VSZ'jqUTwHS-PEv}PTW0W!ZԄ|i%@"$S#tρ̈KLѻS&XXq-OT<=e ǒϛՙ==joכ5re(uZdN"1ZAT?|ZETn%-B3MX*51׃P5#V5OyֹԡTH\S}ZQE֑\ OlSf6۴z;JP(mH\g4N6%܌Q=WL6aB9~sN=Ԗ݌Xֵ8<ܐ$܄^d#K^BtWe,ޤU[,#'THA]žUSxՎxU$JߗVT_K\Z
(:=WE f3Uӷ{WD`[FK9E\\
`5[5#h<XYxZ-X*bXRʷgM^gŎ]vuW_$~[}`&iUX/a"#bqX=X.^^Vc5S5.Y`RmeXqcX(` Z̨\0(T='{4I׿S 7Hi?D[6d3^K%u=߅c`eU-BH#h_^Af;dY_'DdYb3S吢ĈХ8lfm$enf{U	Ts6eV3b^vT|<	OcZX 8$|
$-=P|h 5K*|
a^Y`ù-hvf-$DFygcDJF&fViQ=hꕵ^3Cz-ݪq.uk0v`\:f̀ÝjߐC½͸lo~bұVcQ1bYO%RRÞֿ/莵kNl͎\Ϡh5VjnrTvkfF⃦ꚉmNJpl^TKn:ߞZn.6R+@+^nj6T[V0	nX7EFnhHF5+on\tW׮Ğ ^ob<M~l;MޗNDbXXmB.d륓MoooqgXtn"˷a\q2q+
+o$ZHurkXꆅY8Oɰ;wb:dp̖0/2DFs<<m's՞M3_A*$?t:LwjVN9sZtʦrn`k/7Mu7VM6th4ty@7t[X#YB9\[O%&&6vEvqmYD+Xu<o6?mNtv[7J?YxvrwCK   5w2V=tWr0hdxzX&pp@{`$,okWlƠxq9x@\7pwt/eD;u7ri    fOqx~j$wBw	-:(iXe6wì{VisFWY.PKjr;{XZ0M՘E
A͘   zg(5| w0:_6DBT{PM؄o؇vSqFS_n)Dbkvn?ͧU|nw$l6~  ``(8~sOf^}riCmnzɟ1xH BH{{'KP'p "Lp{2<1bÉ)F;n)R"[Po{ 3cȘ!ds'Ϟ>*t(QtyҖ4k6ecNU1:)3)مZǥ .]5-Bc+w.ݺvZ(-ЭJ|ZV r{`o޼:-x/cάye{z!`:GפH{o_6oH'X3޾+鱞#ޝpݦSb4&ݴԿ/~<[%LwyZ$A7(y_=Vw`S:1\E}XbWnU!Pm(oX8X`[V`du7xWm	6k#q-Ne$TUs%E%Mec[rY~y^B8Gӗ	)0c2Y\ie{z4zyͽ'	(3  Whbj!p	!F)>yTsge^DL;U%椩4#,`Xڬ)$Ze[@(e>>n[nzPqC0vUz\0I*ƺFjښc1g:fZ]6-vLwd[/Üşar֏ Oa#1]fm1zZp<Z2-XdGs5')h2ݿܱsk2ӆ:q&wG4a4HK7uA9ܢE+~6ޓS>]jey1SqruWCf]cg>[(r\gS\rH skShssaz80>o/-eOp$Kޔ/ۅ&5F tPKi +/dXkeaRfZlH 0(	4MTm9`Į~*y( ݨ;}"mp3"h~ҤC!jLW<TJ_\I 6H5C>״CGrKa~ ?XiI*n*93dE~A	H2K%[Iod>:¥h>>Е"=ф[ʆ'!Ü8(=V&91KS~׎~x`2+'=5O:=1Fy0 *sδl
Eخ';U%5 `G\(G!9^nJlE*>Oj3R3L:Q
TM<[{J{z#RlɔHW44ӧǩ#fz9
bR(Pxe֊`Qmǌ)i 5R|Ux;YQ"ՅTgͮs+c>9.rbpn0,C3EdRdlF2Q΢^jVώ%AiN)6/K;aMegO2{JFd%rk]V{[VegBJX*'xi[̀`KS}keÜ~ލG0
~H5,l7X φrqk<X
jޥIL¼Q
vz{>B)pScWnAPr>vp3E}Q\6Fd.3֭e_%79cOrk&jL4;9Ђ-Hkv7ѪThuM}J-Mz?K?ɸͲ3ӣrq<N+siu׻Èzp='\醃d/;ڜ氢a[[uض,CY6N_D;$Mg;Ԏ-{;P5t;o˛wtUC9>#nc\kx;`[40W>9|8c.ٜ9sR|r;wnt.:4~zNNSVWг>\\^O׷>v%}i?Şp=ꂻ0;٭w3O]{.#>_<O  !    ,  !    GGGpRTKZNRTUY[ģ^ƥ`ͪbʮtүeֲgֳhڵi޹kmpuqyv~tuyϿ¦Ĩ̫ʂ͔ӖԛЅщՐ؞ԭՠ޿ܣެ                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ;8#IȰ!B=`Äzabŋ7vLX䣑!!$ٰ$C0ȑǗ:X&B
)Ԩ"VIQE΂J(PԦUNCrP#PER<CAQٟ`p-D`E]]&52 	`$1"ܑ# ([nf#3zxOmѯ3>]m4C"yO.7A">))Q]wz"B6`}4Cߩcvk86dH=؃# #@P}B!-uї`?L -PbX, 	x9`HFP:p{$ D		!eL 	0P%z`D #}0x](NZV@ !    ,
  u    8*9	280/0 X p*I 5r/^6n,3Z8,qBuU	R21k{&~94QEY7WP:vfAq2P|)`TC
[A1mVNNMK\rKtvnNP~KwriLnnn " ( 9 < ?04HUbl2[/Q?v"q"u7tR8ONV_WiRvpLhjdtD|tRejmWve|e/5Kqsv|JSchhoyxy|-;43NEH[]8c]cqe r q8f"u!w;VJKaqJrjuQojy}6QfZpKRWG\Ze^onwtǌ4IȓJ]МJЙ_şiǢ]ǧcĪyɸgɱzԬe֫uٵiնznmuƆיƜҙÒ݆鰘˳ԸƋ´郧ϘҴ씸貟ϕƧ֪ʬԷɹֹǺاμʷƻ꿌ǸɼÙҴВ̦ϱԫػϣڧݳ 	H*\ȰÇ#JHŋ3b'G CIɓ(S\ɲ˗0c[M8sɳϟ@
Z#͏D*]ʴӧPJMXjʵׯ99"KٳhӪ]˶۷Am]xe:vߧW
LM|U+)wǐ"8ոqzg?Ө?s'tmfYYdc][ٚ7_\g+7Nu]__xtfӫ?xzvѿ={y56o& F?6M6'ᅿQaZFAᇾe!\Q!(Yf*¨y2ֈZr%gcH=㏎56bECF&@BsJZ`T.Y\H!Y%DBlbME:XMQj yX`hx%Fu]y_!EY]#6JoWb~UviyJშjʨSoљa٪$Wv'祳qB'*2ѫ%%G*Ъڃ6tlf˒GPb'ޠm3РmL!@՞K=6t	-䣺	[岼ڃ2PR0$2o="0GO,Ta@Ʒk ?.1.c~ºH(@?|K\x:'33QұB$N?X8!?(ͳNs7A\](NWVGr5n+Lo ?m}6Kdt.hgQ#O{;7#?0 4sN$؞['~蝆ȥZ:i?X0Q 41;NW z1?4oTq)
;Eso\
Փ@^Q⿔nGۭa|P紲Hvk!" PBA<G@A!-9FdBFGCD!5,J>ii@P! u	
8+ym ;!hNB@ XǤ=).DY$@@H}'q/B=*p;@b;5_2!?Ui"7Gb/j#9R$<)gBȌJXJ\%4Z  K.n+Zb3"1 !%Ms"4#PMRB !Z	^"iҤ'OιmK&|~k>B=c EʽNl[.r,i4*O;#823q!y>)Ӊ,U+\#_JT~̄HV¯(@ξPe9uS$zOE%	
#mr'
K:)RJoխ j@h8@Ic(sB]fG䝷(Uoa 6!F[CXٗD"C<>\ޚt0	*Aa6E "0sX(+s9O۸#DxՋd!kaNʤ+CD(XӰU}7Z"$|ni*C).WEH$ЂbjkM7Y}ory)V+O@'mݖ$X-Ul76hSyM,V
>(O1Q]P/6HsMŇh$qm`?q@I֛Ep
♂ƵLZdx2x-V3;B*C6!ʁ9E6d[j%e,i^!GGC/]0UiEoagYщ]bZxi0A0DfVcY)He6V*P8Oufjd6 9L GxFj[`{ZeՆwlb[[n2!a3۬dͨ[f٢eIMtM3ORDP';\rnfgVPANXs_{{쾹w[2>pS  JNfJ5XI;98ΣNN̷H#	=&ߺhEM0uF7l{P̣,i+ݑB@0mL~*7A{`]ա,{.댗{u^<'8/zܕ 7qmKM	:ÎuSw3;S,mi?6,t*7GCԟnß(ki  "T@JVUqp4d"u?#Au}wzGx?wu8V'A6tp6#b=/D{2"~oͷ|$8 H~GxF[8E
Gp9 M%(auBKW~G_5tE8_dև%E(Izl8hr8z0A[qjvAwW|\6e$#h%:5$b|;#Hmvk'	A0p5uADwLL$jN<ΑwpHoXmhg!|w8W,:$ c0DuAX`8PYER(8iÉhi8jȋk9RC`  p%qJI vCpwwy5d}Eӧ؄ꈎC	J/1tH+׌Oh5c6ԠTSR!f|E'gXu	gD/ ćhO65I~0DZ>bRWUB'O`86?Y!¨^xhx;fUzgbgS6E-C}֌dr-Q{uɖ#kYws(_0D  z	ד<.P4+#H=Augiꨙ!Hș]$2eIipspE:lGA~] \ĕIcUr6ؖuɄYpAm00 z#D E8h)Cƞ#i3̘ ;y&Z 
A_#}4b1A6
$E(pC>iƙ@؍1HP?AI.ڇ1Ečv6=A  S+Yg C&¥|JI*%6$s)ivduI):fK	Ԁ  H<` sYH9XQg|ڧ~
8)QZYǹujץA 	*yl:Q`4`Oŧ\*J񧱸M!ځڍiyHtQگЬ)6b,0 R TUf&T39:~jUHJ񚫔8ZjѢׯ04IHP	A$T0$42Z(zjlY9":ؖAyɴf'`	]aNԑpPP4?کzcF;TY"[S		XFn\$ac+	$5 V& m ~c6av͹L;X%K$Pʴ3ǲи(K"	^f&2dKk|[ë8'9C;/ՋΙ*_1qL p3\`5p9Ym&,ϛ<ۛ٨}l&{H`5  WRz͛˲+yuߣVk6^:`KvǾ)`5B<![0&w42\]XȜj;>%8Ę ̰*N!92&\2Xoh{W+.ʕIFk@qD`5YPw-TdR;wf)(@8{R[L>Ż	|5J IER!
[¯<|0˂KU$2{<2LZ~D%Zg=KɓS|ɗQ>0.vRM\`GVЀlHw+a9ͺZ<A͓z{AHs̬qp /_+;êb5t,h#&dI3-W?Ρ5팵)twѿ.38);qđ!֤Kֱp5vD>}JaݨfLNwzpmτ=[bV[ НJӃwh88}͜NЍ|נ`\ڨŦ=dj-x سm{,Ӻ	27#8
Iͧ=ѽ9|5]'-㍨1<e<=z`kw ]l HР@ {Gp	<F?(*xPH0wSUt-'^಻$bc1 ~M=me `*1ĠF3Ɩ ;^FA~5p+t9`loڋd|Zz_"P0,~(q-aS1=:şcH@~~"
>R0|npM'D:h>j+~j dM~֮<HJު=N>ݱyԍ[k\QQ00P^ě$,+_ھd߼>ݜhXܘΨN޽@Ǽ 27VSc㹕8Dpnp]>e,xuU^䞟W0P]jQxpE$24~	DF.c]}L^"N᤭3N7mg>f  p~J{}H/1-Y
Z珟]G>)o,{ÈH?!ZG	;V_΍Ni%;WiT$A<&$#H5nDDA~~$HoI)Id)FqM9uOA%@|5LZ)|QN0*~kVc[z}_EH4!7:TnĂq]߇7!t	OD<qaݾ]l8aRcK EGr 5ϩS}ǌSܹ[No>|'UTJPرeBϊ7^݀jOܗpqX2bm8zW!C!	MzbF?5J}GRM\*,pCu⦚ʰ3*ꝰ\jC&
,#1KHz=ѻ$F*RC4Lp	d'|i EnspHt33ޔs
Φ줳Ojsp..k1 *I(/lȜlNK3I%S/Cxs,4/0Tm̛qinÆWbi),1_n2:Be
QD2RuKKSUHI;UOTP?{@jZ" dYX0¦da+頺Y2FZkwqnYZ=n[!ek~43N9x]RC bՇ7!g
G"iPڹG VH9
clӮ4Xp9l.E";Qz#FGy{^2D׾˝=//_ "+{7%FU5`-ÎY*c=m`o<{P*|ƚ{d71po6^S><{öw,r?|SUˣs~'tG'zN?I<MLA Az$vESC줱&bI)ఀpLxȇ5hDZBWJV#pI\z8̠G63=uUnY/^(~'H>>#=Ì <Ú"B {bDeV䢯>8(݉5AZGGEKa
|)-%|\w$<3=l8"Q9@qG$ŝ.YmCe+h<)e-g{Jrp*Bڨ)Z!3\1'u	{4I>cR.zLإ<?ć*L#('Z'qP$FyD%p-5|`JQ2,n2/lyP|cҗq?$:WhV\'ADD/CuDe?ZƨP&*r1h9gr
ZM<)(7̙qcm!{b31RbIYO}0iG<\Jz(îMLMX5D&M>OHe}zUQ+
<:{KHЖUE-=eGɔ49׻NFw&A@d6m*Vo=g.@#e-:!v|KWZAf++F2$qԬ/-o	܀D4u\6%ag9NXа],d1jyyEƴ2'z7؜o!b4m(:F@+b`SS;? q#H,y(ţ`e*V!1LYkЍU]qt¼mQ+myщ$UKrd&0#}0\N٥p'=qBn!W!c/yBK|:'zY@eq+<:WvuseLXQ6-YGA6H_h#أ\Jdc4k^z0/'@yCV
fYg.!bo"6{ƵTa`!XS1kiaT."	=э:[?3VG=U@"g? xV`hXd@@kXvN
>`Fl*_d/
6Y(X<xaqԂhOD7.G;ҹ={k#rT84P;w2t±#u܅P7T@^]*[>(u]{ݲl\h;Ke+\wfre#r8x3-0F<AtbZ4OkzonE3GTOX637n7⬲{𩣊[e>)j:*/fc48)!>Lx>zTFF4PSQz?ГFZ.кH躆dhS;	dE1*/v@>!<2qjrsss)h(5 ?HP+S͓Rѓ%|#Bq84?o0IкQ
^B@bB>:e2>ƹ12D43â22CC	C!;$x.S+`dA=8SDPˢh0j#LAa8ZO*+R1zѢ"B?#sE/t>323ê18"R0tAI	bqa5i[0DW7>:nr`Bs$tvT33ވ*GV<Ǹ+9{l;0w୺jl<M<p|ȍP90Ɗt=3#L#кD
	҆2I@II[yaI
K͸ISS$A#)ȑnKЫP+7eXAL#0<<g,D!T@tT ^| *˹3ǭ8U!}KI#D#ͶEk"{I	qD7a.wBCԈAr=	8Y|?k`H%q<qh=Pd}Bq4IZC<1X,93L[7l68N!컇CdI*;w(fԐHCʠJq@M%4r`5tټMa{aA	9!U>&	=jl 00K<)CJa`J B=fQAFl0TB;5#`(4XK 2q}3)m5c>4νU	ЏUlaE1e:%K"5}Nx;Ѓ4͈99 ;m#OQ؁HHLBYk@(Cǲ=&FJÌds;8*UӾTRHr\-p>sCaed;HL:^F=1#ևz[5@ Iԧ#dT(T4!5q k@@CGچDZ'=Psm/wIEx/e0rb";	 p׻
=pӆ̤9*L{rXp9ZF
Tg!gq85D"mU`֕mY"pU/ ǾH/ePQeכmWP
	eU-J7!wȾuJ|ӁŴ@4z5|aZȝCS8MeXX5C݁J |V5Y"3[[sյZW%\-y"3,UeO=a\ LʴɼJ徨܉ScA)ם'T.rڍۍaޥw[DAAY[!B^PGTuu^Ruיm6!͹N,$Xϕhbτ_ΛE%XfMJKeTcXFY؆w|QFYtM6G]c&U^5LL̓7HU=\ZseY	ݝ<} "X]=BRpH.ؤ,TRn@/>7cS	<>\*MUH+S7P8wh\t6T`\'[D01-p6H{KQT(QڥC(6,ߵb@IY-
.vr(P0HZNr-c^`5nc̹3cb{3Ńenfs"zJAk&ߦA`n_c{q>gBUQ`czeb)&Plx僶凶uhd/=cq/܈uܭ>a݈jPhm>	vE.<idZ2ˀdiczJbR&Ғa˹u୐jcjT0UЫe
AO[_e~whea+́JG 8z."xa ?lfUQd~lʄF\5nl2`svl|lr֫]T.kx6I|yWٰ&\i>LJh!)BfC>@0<Xnt)ƓոQhLxe &p>vLM=@x.[ql]eeo|z`pkm(!\0g;Cewc	>PiƉ{]2: !5Ei&EF'Uq	݈"`ae 7j;@JO^oP#Gr~#VR,G
-WUeYp3.0nܶd57hükUtiklas t	݌gEGd
9qOuKM78J8OKaPwxoom=+_pl9>ԋRZYg[/e8Nx|EF8$~)k$Y>.v΍jo oZ;MqPKOvw?P@Lz߆ݧB27rK)sGOp{m	JG08qwڔ@.ibdLkw.zyO 碒ܐ!翳:rqvw#@zTLbPDEzm]ux&ސmO$,4vpp]'UuYhoa$GX<ؒk&d 7tLsvQI(:(Dtn|pyѼO|rtrv:bʲi{ Bǡ2߻#{"ƌ6^|o[<|Dn9H4>R#ʖ(Wb|(%N9qls'P53hL\:&Q@<tŻ=As'WzzTm-#:ūWwlҥxRk_Ċd_5@Sl2̚7sٲѥ)!l9!uC:9ղoسWwۛnRGB'ʪٖ1'j\6&r;9R/$sOǛ??}i^S73dp2LWi^)so9xŗac)s`g)s%HO=ea]DI+S"18#E5&[BZ7#mAMoLpG2
*$287N?Mu]<qGI'DRPԞN~rƷgWOm_z3z Vg×^U!w8[ܡ̇f4fO]xb&J#z+bK9xb<d*>Pm!)l7Mv#9I2qt"1TZDX
7T4E]gSvjfoMmR|zIo?'|nIմQwU@Y`厪hACGVz V׈\WpiF 虬#<35[7.)p̙lȐD֖?lӤo!	*TVɵX	3N7CAeOv݉>Y9+7OzEKwLb2YEVbQz#e\񧡂&ɍG!avTd8ٷͱ>2sTR	{,k;]tש7Lm*`\[u7Xc1cvS`nR7_'|Flۊ)3(3Ux$/!Хc68!Sq-(S,3v k4WɧNO£!dxFF472o<Xj'-Ԉ3&ҏr)ن+!|rQޅEm1oz~F19aJXA9YzLFtǎp>JV8u+̮BŇ8g!$&3YaE]e#B:;r5N =#NOk,$"q:KExTFnKh&/μ*>n{wb69q!!9h<.`I-/!?qV ":1'YQɁ1i."EXQ+Th JDXR	aֲ[kh*qc C"Kdb3(elY4_Wd~	L<Cd+g##K2&bp'#zGF0̠JW+^2|R`(.T3=7INq<CÖFIuiTC-W&g̦NS[/ͬTlkR8vz 8BN<c=ƕEI
)׹Ū%v+x;ГNg1#lBv4Xʻ
׫fb8(Rcd#KHlfc4$EFK`nR2[>-I]#	3%$T&FXS
YIUJ3:⩾F6Ȫdb=J+V$Qr$yu5I5<6UCR8FaKm` ج$.fQ[5^.y20B=9s8<cFs%F1>*pt1#˒Ot챏P}ٮ|e*IUJ9\uWV>8cD*vY]Re$Fy@dG`y\w{ݛN`)<$uZD8'=-t(no.At@~9܏[l9iThZђ&nEtf+D@wcȮ]F$Qщdm+_g$9$ӭ_6 S|}löYĎJF}m"TJET &GU:m#u684a+hyN8oS07Lףڴ =|rGw@m
>v2x0QR3VFlm	%<4=uag,]fsf'oT3zѡGkkc{׆1wTN=^_;Lxޭ%m/cw;JWEЀ'Y~K8Q#wGx%_g!oIF	BʩMm|	7Ʋ%D,хqti	Jirm̛ O5	ULTJä8ɄE=a
uUb_59bȬǵWD\9*w
yBN])T P5Ma(ͅ<4B|e`ݳG&x`1G")/)	C0	
叻ƛ	& 5`Ell
Y#_9ż\(hã܃^`I9m=ΪXj&TAN%2*֯Cy[Io\HUM*xbCC8R#G8@/Ӕɉx(ZARVt*]l"@#(0E)0atA7/Ҕc "i6
%q$nP6MdʑVL$7ZYWjjT1|:y/@O'tBCtsl)XBC(KȔdJTm	BؽC*w<XUX=Ѓ"[`L05L	/=`J@L4)#Qvd,3ʡTXg&zRYS6M.$;RP	@CVZe-E%2l<i`z]ɏ)h%Na^BšxE+"Â"e$XʪiI3WpEvMaB]1UPl36ZE%eQ(m0I96RF.$PUV*o%x8f}}:P`H&zbu^'ƛv2$bd<2F&38e{g_xL6~dS1RP= vm$*Ԃ݈ Eh^!u,&b=%c%*%XщBZ v['X) (piAAJ\vYCNpw'<(Ey;lM/ӖnC\f2Հ*mY[YjIɁޒF੒*%Ml9^*&|*(Fc%X#UD6esK|tZg[T\\֠wyĂB2@%\[8(&jJ!~CĤXdU9;݄]ЃY&Iҫ4Dcv$acVڄ"˴f+|͵!fà&،(㹢k9j>6Hb~TnWtiu*eFezbIѢ#BŐLexJ=0&A}۪%^'dIjgbD]-E~ |aE^dLH_A	VהfPVF9&nv[#F-/1Wઌږrv]'h(FdמwA=lZ $hhftr}JĸCߖŊB̼C0/K@.4J&G )ʯn$-6Mmt	>P*ub^~˷p/lq޺6"/eJ3kC'
ٙm%O UТEH"&u]UB<hǬ$@b/oV8oBcS&ֆ10ؘPm2Ʒ&`Ps`JAOBX5\FCvp\
רJ4qv2b&? $V)B nR5bZi)M6槄 n],uAcaP#5D'1nA{aYYn撘k!+>-*6d䃸Jb'\3t8|,"sct]M<wmt%%+Sjeh<D+d+Ģ
f^ô,X~
.lgs8(Z3 nx#aIk7z-poT6-pscC"d5h*8f5Cŵ; "2Ohư.$ps> A(n$:~|U1=J=\Ni%FeWF̝P tA!4©ʚC1j$6LLkPbt7߆54FCPqFnmxpZ7$;D5O'j"o #רML\=!B5L932`ZX2en^ES&dboTJkR h/61.T gѭ!k"e4kgjTjhz7=
6D64UÅnc`Nol(uC\AUhv?u7q/j;?
b/"ޅ8fƧ-߅veD4{ښ`edw~S δD3?3e7g5\h{K9;;<vQ{HYClp8qdC6GU+Uq&oh請C H8$\?wsT|[W1=ElmL>9#dJ^y%Hkr%g9̙wلy?ǈC3y箆Pg'&.\-|ҌC0bDDy6ϸ$1x@1f8skdxSL0W$c5]r*Ƅ+ A+`UE7ܨS\3T::D7LEw-SfJn4]	EKib 4VD;Ϊ[
5RZ8C#d0j5;)ⳏ6$b({| z
C'_?!4B#$g݊
T7dYۅ'yggHpm?PIʃh06BY;w>{m8<K˥.%-p+ mt6\>	]Д@dCoORl~9Д;ږG#oM+8p4!0re<B&5 E.:Ɠ|b_	NFj4!
T!x1_F9r͚q-G\G+QW$w+U7xDIn8CBttk6qiܶr[<)S m]ۆ/jĪ2渐jNjEE[آ_$f/77ڏO33ѡW^z=襆OuxG+:upÇsoūxt᫥WOqBtxɗ7}zٟ̍aO$MRbk?\2Ȥf*0x阞'6MnAk)*x:1x2nɦm椓+ǧ3S,*[rsB^D&n0l\/ee;Qhq+f{t 㾲:ݎS2'ĳwσ"̾}q!ڛJ-Lţ/{ $;"K$}4ԠJ

%QɛTt}P'^*MPNlJ|G,62+i9ԝm	ǚRjNqG\2	<)%mRI(IW0(-u1њr")qL1]44d7qNxtS7uXdNPTM]~eδ!FUF>0u#q?$EU3jWh%pL[Wԑlym"'gRf+۲ 7g+T"ƫj?B#-ױ%T1v k{)*( 4"e>3Ńkah6Ƹelhb+YB}[ݺz1nT?mTT7?f5@&Sqj]1lr+bn,յ(F>2y^ޔA@|kO+J3piTIƥE29LDTDs(FtHF&IFq.2Bɮ,sp;xgw')!Q-U@hYK 4-{^6r+/j*,(!lQw\$FSmFtv#GsbT6H^ ZrdEj4@t[7|y%iɇ0+SA | 9b8Ce8a˟A	0O@,n"JGĀc2qyT4YMyУ$%I=$V[Ζ*7	JF.adƍl-*Ίvl#Z1'`f144'x́ Ӳ7Tu%/Dw|WA\UL	2Ԋz%qA"uM	8t)$FΚIUR3e8l
(D84[UH!,lbX\A5`?,1"QDdDؕdJ  AgTHRxkd*CM2/a9#$0ґ1[x܌dTO5V.Ezx*|5PO|!	JZ,n; [_Ͳ6TlxElQI,8Xʲ瘥/tM!/"p
"CguKо&Ϙ;|उdȜ0C58uniBUY|n#ݏX;K&&bv (
ucD͇U5",SWf=nbJ43"}NpZ/Az^@ /t_c<|5qKze]Z0@u=,3QbK_"9X#4WH-Uh*T#Tº*>q^*:ou~`c/v۴ /ՍF'^}lOb0"Ý-~t	|#bsǼh613a.tno8R)v4*'63TxG"
ZmD"RTJ|\v
Xg{yEe1訨ďhN˱_Adeȓ#m{+e^EVtSCf~_ᒭ&t0iq[qp-+,JHF$Dqqh{&6ƩD&<^6<d!4svF{E_c;eU7FĦP!QK׳y.aC=ڥldVZ>>11@(W%ԍĉBkp*bK˕DĮkhʋjd
e ,$FO8PͿ\Q8eIᲤ](Csah$1n6Ƭg
7uNL+f@L(mf^L
d>/d"&a	OUtrA"DbDB֪l"F,$Eld/H"auZcpd2wL ITQJApAN7dJ"6Fuvhjwh0ĠqMOqHQPWqR0i@%	˯%#0W$RnaF.Tǐ*2edm^8\̜"/9oaL.pSE2QN6LK5qw0P 6DѴ O7"!X"/ҩFieinG4L	y+%!aA>A;l-QA eTg6F\
#)7А(3m"OjJP/A} A&1o#vcVcF,!t֭mcvK"1R0)(dة&6H%z..Aga*b["OVdEp~#"6)|cn8 f6.BN11 ,)d) 8:B2/77h0ϓf0wCgTWy'81.jn%|@jDԢvG$HZ*
CLؼphwh+6G05<?1<7H/&s^ED9~7H.f&q;;K47'R=tR)"Cyf%0	n4>V2N?j@a&kL+Ϋ"bKR5kOJCB:pòe,B9uɥh G!H;KHPtdߘUy!byhn ei,JCM>Or1'iK7#*"Њ3AQl׎2*H"4+J1n5G
n5LCb$ jDc!u'f#8FK;AF.t*7lN9T-cU3r&e<Ve4;TF5"=4#{5LR@P@AD1ᓣ>"
OP.q*t+A2Fd[E<uuLk\cWs~7SSPc1pƑ^d !b<%15A-G)q6rVRa/81VcWd%<v>"cebrO&(epeՃ#6fy;d$ANLkNNr5Y< e+ K"FRCEJ5K 4NoGP.!5: cL/%6nt{ֆ673u83qw=BÊb>@VTRȃgЃ%)>=KX |~E.Pjgu&ƫ[SS,nmkCzL&Jd
F6`2+@,.4sxdu6S!T2o/5b7=fK}*q嗋q2QWT%2g<t_,%&bE%HUA(8Mu[A +mvk(cA-R˕4~Cã]<J*$p8o@&u|)`#f ,EeU<ҷccB>;Ms6͢$K%e*X="R"q2qЅGQa\
"qx,/EjM(4"ncvѰF8Hy5 \At1¶TElO5qRtH	fn=4:Gz<VS=CKf*"犦yR	$:%3m-$R0&>Pd154_y5ói-7ksP4,qANyx)u؍eH3^/ -Ѕ}ߗRc+@rZm)?.wܧ=渌 B"YyĎ!̒a-ݱ4hd,/%D&5/p9pw<cZ۔1`Os/S&vx/5ʢȃ::D;1"c>'VV/rVh=$h("zю9sg]AAD\aLAłt	9"a~W9AU_۷_TIµ1̂ORCX4Y4-7b:cPc0Ǚ1{c<e@ ./A6A2&GF(181v0Soh'ڀNqCpWɷM&A[]a`bśQo< $ M2k^4O}fW3B?.VXz,<6;z@CC3_A͓/rv+#+94?7qc@yb}h̚rJrт4AĲb!YS<.9<DPcFV};$7j1?nB|<^z]q@>@a@IhؓD'l(!i6q[mBU[MSIbۧ!ċ."T),݋?+cD.f?5dIIU5ř	~|>I޻]V_r"|tVށG"#"جMUMA~weEa#ό1f>V0 /H;F`mMS~g.uėCppC/a35W뱊XAn:)h` Pq؅I>}4~̲o8pv1C" EƢ4vG>A`Q9+bR7a2!)j<(^=1ĉ+Z1ƍ;F1ȑ$K/ʕ云#2̙4kTқΝ<{fʗ㺍{ɒnR9]-bQqS"Vkܪ+?uA>ͻ\}obrxܵ6p<xʨo0aYv`zx=XHI_;7cj)L;~x}r"xӣfxɎys	*lns/{a!V]{˛sz/|&9q>L(ҤPiTDc5XpM.|UZS΃v6h5DmW^<6R!^mc6Ƙ;qV<)wfxO+B 
6`yHFEf%bn4[p$[oЌНoh$ynRGqV͊tHiWuUZsIhvz쵷_|Ƥ}:9Ei*BT*'Υ-u9z
7֌>c6׸YjuWvHZQhc"-{ۀ<c-fq[dHjђO<ΰ`YeHFeq '	0sjl$$U]R	qLhɏRSR_SrS5N>䠂zō6\s?]D*Ctsyy1v	߶b}AC5UuHN4)ml0-QO2x䵍2
QTRIۖao<o7wiDnumZx

~n^u|B$uE1K4N)>GȾ^~[*WʳK'Q)ճ?-TtZv[+|=b_V<{tJ$րaY>s݆Bı8`fK(.W!Gs⎿(0A,Eqǌ5ryvisjSv1E;x\jԕb]'8qH<+lPjtgL3>	&r%9Qj`+Z$QsrAKxxOE)K-LlbpjKFRoB!)`B
8A<"@V^(e0wq%]Z	5AIu!Bp\')3N0)&1@Ѕ1$VCiȬэ%Sy*9'&+zwfJ<T0F9AhVxBKX\/LE$<"&E.3g p9 H.<gou>r)c3KZI܌g~KOs'6ZL"yDwH@0дv;sR	L쌮Sæ[
mJ,]K67Q
P$ez^xx2Oc61PMV_A1f(EHKbKFm1yfE8.&dFSz4AIDPgE=+K9ٞi@7Ө4ʶS.u=*,.[z*QfOjoŸ	߱SYz1gP&\SrLt-/19cArW"mV!¸e/x,EϗBD)Bm@2De0 vC:h(wAWA,~:(]imTtA
2deV	 V]Ɨe~υƳ0G|摠AbK@?@<\SCy>q (V<<M;zDfo4u"܃/m%xĺF^CW}X,wH)`o2/X!_Ԁn|enZZ:怕yMC:[aC>av(Ps1K#x*脟̛fE6"{8Lw\A.>t!n
4ZwH|/0ZEAeR-ꓖ=A3
)@ueAH Qc8bȊvezgp
NCY2-d.{AZЬsZJL\#Z29<xWf:Խu	50S#Wm!wc	"TX)Q6|úixG=$i<
9}qP" )Et u沖Ŀh3Da_:1R33Ld!Mto/?R9}mjU!o''o`fpgxG301)0|= |,"Y3 2$"&[66g$%Akg.NtI1n_t@іu`_eXeu~kj3w'G{F$C~ov:/k}{npUxHWx3-=h<vy arؠ6jPD!A`"aSQ,E.swsɲ#{!lL 
{ʀPxzUH/%aRmϐepbAcT_fnȆ~Ё@s^nz4tv'SeU'XLa:_wpprWQ ) qB*!YHPPFÄ$g+!0GiEZ6A%53[Q',c,,b[@P/8_-\b6ɐ\85|>EJu/]BvkZo&LUE{^Ï'L|UyrE3FzuWN#C2UWN3	L" i+kI_j6I.(4?w>w1G`5eZ?%t{
OCrwm3&]S9]XI'ġt_]I^`uIީ5))K-l&ўo9x:Dn0wgCgWHh<`8yp**20!d+o 吒=(H64zb2"{'"5MHas0
"rӇ 0itfK.^g?bG0]ycXlā]A98]H0饳3:F9MwH)'#O1!3
N<3*Gk !9'WWw+:jIb{GcxQbCx,4wAlp1KY81/K^[u`ȍ1dk80ʫRjp*a(p)53+0@Z`:vP 9)YG~*5"<(uŸy?
{@hȉx3#v.f(uwl\Zl{C@xБi׫	9r:d3GF-NX*q	5rm),*9-4!j*w8{'Hm HsXe]]q%ű.sñ%Ws귱ukѱKmO|%w#y<)2o` !+ꡝŭc"3k{=)!e5J%)Q [69 4}Y+,ٴk%S&]~Qz@Je)n;J0x%zFWEQE	N1q{:ְ؀r!+i:KalQg1."0ֵHRQVc(8 B<W77|YW6u6;t}:rAU׹)J}Egtu3)]4O!E,GrUfqRGh>Rp{"L(T{3fG#F'uѿuڦ%oTx0x ~S?F%ܼi/\`DDEtL
iNn+ĆYmŨْ0qkT,@F|is'.{	a,5pt#^Pv!%8ulclsIȂ\/Iʻ&鼫Ɏb3D!3E%Ќ1+HĦDYn2:皸6L"4f5ˠ,JA%{KgW@Q?%x%sp݌SkA)%l̜T LaˁlM((E+;aɐENBAyFϫ FB!7kgm$ЧLXZKXMA*Fc9$qlpRR&Tv(%m3Ah80z7=GrQ/ςڨdT\rKIM3D(Nc&N<p1*IT3et3Xa$"F	Yjlлgv+Y#Za&K||k(
A ,";r,l,?UkAa8R9=ӂa@2FNጧ2CQz^t3sqe,bt$JS%@k$Mb]邴`-ҺIk@!բ@B
.Zu[D&2}.^B8R`8#d6 Nj@Xk>_q1+E	EyNWM"ܖw3Q3);Rd$mFBNl!uayq]>5GB[hC|18!q@cMTAEAzd-hACuIs?}o՞wu[p3dVn4)גy~*9~X-XBՁ^3)HZ}B$+裲\qr6ْsz]O<$<&Zc8凝<SmFlz ɥ'|t9KrSd^}j>
xfaU|҈o|v#it2+4Bpb	;c!i4+繬y,0zk6!%@H"s	Zhpn[82e(8,lSdj[u$/.6LG:zuVR@w~RC{0舔H(u.N$C&OS(2*ch3Xq<btsud"?I!=-	еR|q"P[ m[<|t{4zQqx!LT!"2ty?55sl0=t3Lx4mEjҥ5i|j?ڱG[=mkFXVQTW\jce7c5J5]X*a^qڬ}ƙ39rFZj֨Ishrɍn޷cgsn[;>vȗXN_9vyVGuVN<5W.xϛW/r.Ã.$,2jE=@DJ!x3^bڃk'%jFɐ%
LХzd⧩ɉC.kIȵ-ǔ<̪jɭ*ҽܪ,+L"*M$/s,9J2ӸϺZ#B_'fnr7IQ	uC2Ȼ/rhI+>-g=6z-< ;;u(r C^3jg{u:f,T[z܃ ZzqWdEa2jѧ9qd؝˿>b#+#wA_&:L#J1LX`l2bn-629Mʦb,l",+3#3ϷMPH34h	EBgIy놴GzgoN=5`SQ5$]%oy
1;ViU糶i#m' "i9gBA1EI\j| 5:BuuxOoq^?vavHGfH`"qg(*,ۀO٪SzPqdG*L\gN㏿Ml$L:YͩTUcZlպ?66k9ı4o4QMKH1uG9ZzcA8#ytC?ln<W=dQCh @۪u9 	$$JP9&H<5vuWK5rG;HP# /%CGPd@ ` +x 2`1QolF!@YX=OAZE|<ӽdRtfLe)U%G k)=6Gޡ|PaPMT\FS-K$[N$ji OX,1D!Ȳ(0q6帅0q%r4܁th(7<MEx]hbR..a2RYHq!v
`E+
x E   
@?2*4XG+Mf`SAuHSi.o?.5b?WF.*k0'kUGz\pV0~mrS$B6WpkHv*Dʀnd#T>EE˩(͢X(!,ႌ(B	HFЋ{-@Ȣ!`Pp{  0.g_GT+:UmRTd8a8ށMMO!9ϓig@\3r+(lGJlCA9CcsEv(m9:ݕ-s	4%fBk2L\xc!L)-Rh8w(#pbfmqk 0 ޣX?@8 E¢ Axg>{l]j#PD?,ѠFհnX#	TVv aN5"lɤyʶWIxr(ڸy! _#Ak#$tWt	<wڛ%"|dԤ	FJ8J**ǻQ`͈2q죶I` f1#s%>qDo)觺5iinL8d%(`fĘ9FQjMj@`;ԡ֙a>6זqaTohtuGYhN쵭.k])rq"lxwF"\BQu4HD(%?REJ4}Tz|0*G81{mG6ݲ6S|oISs	ss3:>kr{h2t#9w4ޝ"UI^Gө=,iNNHbݺ6/82G(?`zHw[ȣ
<KZG$J=[{n\	QaЎPkrC
[y^n5;1$q~6{z311"2x x}x$BUr@cDA49 AAI%) o\]؅@ik
bmB+⹣0\K!|XaY0[oj'K+ "2lc{P3ϪXz? su7?9l'6<;4sDtS"E HħHDK<ZC	r+=_؍T@B/l:NHE5u@P2&[<>ŏ([$YyPfWPFBm!xF)"G@gS?n4oCK62Gutʧ84Y!Ty,GIcGq8_@K{tslTlHlhrp9R>[+ K&KEtR H>tvq	Ō,:I"ɑ"h dyCۤ<SJ%JHʥ LJG;K_upo}̇osDą[a%ˎQThʛ%ԯ{ub>¢8F
va{F鏍`M,z{\xMy6Qꋐ8,NK|%Grً|t,XN4\hk<ҸT#O UD5ȩp00OO,Ee kbMC:Ѽ'(iyI,ЌЯkJ-̉kB5Է$ꋘq\ND}cA8L___ Nr\KlNlx#)&-яbBc5 aU0=>hOs64
Bș>j`1\M\;l,:nGe?=tUׁəI)PJX0UDe/G)=P;Yr`ȇw|PuNVjQ,N]z˸Nl@k<&mX_lrPT(P:i!xl9SqoU-3St]שDEbH*(NdQcW[zD
XE[۸xOiu0}@X	It˺|kXYˎŅDqK4|P>ԹeRkYm{ٵ5>^zt␟͹j'ChF~Ɂ22:%*!ԃ1\͍@̟hv\k[ۺl K^rS5RōrxU%]Am]*KPk@hͅYe>؃I	+S>oi1"b-12QЀ2Zc{6yYJz;l]]5a.()lF]Gt< :%\*^臷uU$EEKTEȳlhXX#]_հ#<ٮOa$I (UСV]h%v{]="kӘxGw>HNA=ya؊ף
4kEڈ~\ $Nj u  'N[ȱQoXbQ#mTC+Iux\*+`^k$]q"(i؛ \.^YSMI4L"aaxԢTDAK3?AeUb|/QoXYN/ڔ 4r 
+f+fQ0Kidi4f8Qők㤐dd,I(rs]9-:nz>\?}QP~B.Rq$Th8I<U^_ s8_eؔdhNkX$:[H^􎴩 %li Uܚi𙹾
d切kH|_p!0 8Ӛ]r#nyiTc
a+`sk̉MZ_k~ڙM%~<!Xl޹U\[sN]^[ %ɵp>4+&%͇ŭՎX|(fRH4hvB>VpLi;nQ_^iV
jrZd6an]왙Hʋau4xf艦@fXT[Z_3]0UHY*XKxfNB0ذ^hb5,M-y{ 
\էmӵ3=&?{Ӣp`S?kcShksMV'
^&[w6$x=^&ǒ(a0DRpBTu444bbs6oHvMm\sq&.&4l蘔&1Y4(xt<\E%!htGr!g]ba0!\jˁ0dPi\epͱ	F{WPhxbm,it=vѮ9a	Z]Hנh.O}\uqv^^KM/|Kwv?&Lc9'Z{/\įU+936}efloPHSx6qxQ[WqeO^ЏT֠H 47A؄X?DAe
n$\>QwzKW ԅR9|yHw*S~LK'8hg|7 xyq'p ޫ!ÁBćAGaj4B)r$ɒ&OLr?_RcŊ]lY%Ϟ>'t(QMt;r#oT˪cVuA̗uY[~CY>rwBa!.ᜁ6>va6Pw+7ore[/xcÏ۔- moKpmp6֣zֿGA"=zǘeV㖾KF/8R
EN72(TSTEe "W^XY:d7!V[|:47 Ys;cvaMv#a$<\#ZbX:؀$Uu3Nsvkq<T]A@?>pCtPr3nPݝ#vxW(B9:y'ןE1]i{-ń^F*Qd)G?5*ԄOYსYE!Y_a9#8l9휕RC_34.M:$~^"E$IFyMB{cؠTh6"k@@#C;3pAq<(3@uރt's	tEjС"672!3)KєD;)Ft;|3ʳCkQ kSO	UT_ja!i+"YbZm90ʔbꎃHS΍Pƴ.Qew{c~{Xa%5'֤lZUS"唹I6`kptM(sPs?'<'vz,:,gInsr? sݜ.GSoD!༽JUhHa}.b.KtU`WDV+IX>0k[w[LȺ0oҹ!-/hQ\$I= WNȘX¦0N
+2ѯm 14m^׉vr7eQˎx'ō%Og"EIK)+SІx`lq4[aQ;UYF sW\).u	kc 3.
*I8yƩ08ӥ!1oX毅Q%1&LSш&Mx4hW^QыҜ&5-3k8A]CЏ,~Z@ZK*x#с &FZM0DƁ_Hq04ɒ\T$8sY$_%޴B?$ЀFm̂,cXƽ4xa5b6u>^L81&(f<~)Uo'sIMjb5٧rMtci JT+`Ja0cu|1To,khuXC&, xf0K9F[P0 PN&O&> SSRCΦ:5Tӄc.p| )$zjY1;adKU5Z.uj|_M͈pCyl|難9wҵpmȸc_"-6\fY=<xeYu$^RW[16mi#b!"`9b9hȆ
.vG6R$6.+Ry$QoXì|HZ]3;A!;|n|AnEV:\Wcp<g`˒7o07j1M<ҚD$4!
{rw5n_/S5<E\~Auu"FZuW*tAmѓ*y3Qs|+\"ߐoRlq˅eWGǹt#l3XHCȴ2Mawup"<%RUB{j\2~78&JVc6߸@l#r6\țpQROe_VP+,q cրW8B`.Pٝ,CZ/>qF/H͏wt>-O#\mrpF52&V<r,ǽJV5@1эoD(+UsU`r.upNd)kPQd&zy6	]vx_YF3!jNxopjyжNi,w4>CoY~`1Up\gx$~e*?q:O7Cx͗U9WCYPfma	DBYYI3?h]ޡMȢeNL=PVh	۽ҿ<ZUQ=
0y_C9HIˬJ QaG3݌YĒD]`i\C?q^ >@`9ГLVTLT=PlVdHX@Yd aiiݡYÆ*H D١	b_m	!k	\m:
D aȈߏM.G(D@߀_n^`PRG ;;ME)N!ZF]H`̃qLgET& *	m"'D% *.Ptb0բ@.b8Ϧ؄ϤJ1Z=9}3;@C}MٙA[F`c;]HTȄI!fYAaYl	+KgA$$?-At(R<5KB>\U)aĴ"xĥDaF%O_JaiKrJ>da2 NKDF8a\ŌOa<@J q<@I#"	$`Hj|T FOPAD@,Cq">ICN]],]tG.evJM$cHća}"KJ*̑53Rc5$aE9e\eEg:}!6!Y0"V$ZeĢT<EU<bqa_pEpֆ[NmYgm">b]	v}z⡆Մyz~t;8>|TMUPa7cW9\:$P01ÄN'ѣ `b@K}I˕	`_) 1D,F̩hyi
H `GUQEYtٟTRZ肖J)Z
DXH`rdR&]i;C-Mٔ}i]<n.Vd(֝):肊D5O" kLwYf
=]#l$m||G)	?jjòF:
~x!yLI$]~C[p{Dۀ)qi֧˙M0؂-i0(b״>Ylci.9Uh-)*YdOkRF⼲,*?pI<=kPֿn+C!l"8lޖ~ha!mDņdtKy'DUZl{?,ddbM@`:9؂.l΢7ghfTeH!qT9"a|e*D&*oo(*NFm(L2ԔF u]QYl`v$OXT_f
zg*'|'7|G/}̱2|>DZbNn5ۖ"p̎nH8"jV0B0I+B##>bohPb3)jIImD-XTXSkq}t OGZLL6`*ŬFt݌/ED}p,KvbCbnOT.@ 0O0Kp.;C_^>OIT]¶hPd,2OoJۆ	Vrpq]FqoRuQ1qivEUm!G`Nda/*WB.{RHqL}J7ñlŦEEF]` d+$II|-aD#CMTH z涎mN
>dݾVu>q-cvr/xrUL}xDz,D8now9&4Dd2BXdYd3Zl*Ke1p:"se`cm@3+a,V 
P<NxA4oCF(	GƐadF+KJBG4Jw2ORzGΪȊH3oFWͪ Oއ0+Qs"b[b}5hHBV,5P!5:pC0Jc-kh&8o]mr֘`?	ZR$`DrcG2qwYKt}>/rXtDwדi1Z	u>Q9B.`8.7`Rb6E1FƑ<9Ճ*/^`tk}zؾO<Zq`P`0abolp`NQGUSGTCbLOQ_/{[=3zJdd]6%Yk{*-`V_e9Ec
˩#`HFLhvy J|->D+ԚD<.ByŠFВ[R'ۥ2%B\ys07wH79JW7uɌq:`cO3#56b\:(ُnh]JLX

I&I$(#bY5sJL7a`awƻ<BOIFeGԟ-ό#{čsRyJF`'ٲā3ĝo:`;W9IS[á,D$	TD#L@VlꨗOz
+%WbTz( ѨVE%DŮJ2SN/F3RYִЧaۏO16Kk0}6ZFsdOv{CDd U@,e,Flօ'
c	erՅ"zwIoI𦡟hCL->ODd\1e*ntG@Q}5@7|&ܷ!|F|/@|ؾkv%̧n]'˸[9scW&6l+gϊ{ԩbˠ>ѤӄRVo^k4Tr]_EuoߪM:={"w [77eSx^`jݓO={aV9/^<xIOjկǣv8hد=?ֽV VkKE໑'Wrޜ:
<w[?G?w>-q&QvHQ>sMgz)R' &(}Rr+*NR1**vj>B(=ЭşG.|1渺gj*,3bx\5Ӫmִ(n8!l7Csଓ|;߄4N8sqb:ZRT},ErVAr	Vi\ɕ`A,\kᩫv	."⊮CReYS5xg',\V61YR-{333P`r8:E(3TtQCe#.HҐ+)>e8S+Վ#IT$*dʅW:ا\`ի;KٝXDn:>kll3GWh#mIyaWi;3{EWzMe_޳P@dX.τ.7ÉܹArhVh!uy$}IWgqG9uJ:l$ԉל
ԹX^蛟}]Ez1&E/^Vx΋ ۊI_ŶAI+WCݹ˝~L/w nq
Κ-dQA#'$rm*̠!5s[9sc$&C>FheIf4)V?򁋤 V0xh&Q~Te`()*MQ4X9	>Z5>LB C%1#IQ"!'KfD.)}QKl`DEMt!AB;C5O{\r69ҝct#<	SBBC':NhGRfBC=E)߲"(Z_ TJZN7V5l{!#\KL㑐c7%Qb*A  +dwsܳ*6Al'<~"11XGǄK@\#ΣT^h)-5zղd!u,0/NK֒*a"[E ,KGԜQ&Feȳ4RTЏ41';9sq1zܣW_>8q3(q Z7A7e<xLZR(hF@JONˠ0RBQq&@.;0
	Mⴥ4k "r5<T}kCMnmƏ2p-cp8w7dj{U5TGibAVIsiN:!DPARI&jnd
G;!(@|QE&ځŵJmOs!KYNt7@]\+`Y2l6Yp⍸ɕ[VYܰ^<q
N;zǼ $ɹw:rdQ~UJ
V7ǮRW,%g,){R&O؝r%WpA؂P-wreS-8qn[r@5JM#:xN5͌2>yZ5AN V}ZtC!p
k!v&7m{ueP'Z	.1%-4fliB3p0puݹjy.ֈ]"Z:ѽC#6Z4-}\^F-Map1~qlVЋUM[SZ[
56K̺#Hx1Y:9h y
Jl]q|-CűφmZҖ4paMy|E70&\ݸe%oLR$g:60fetOrLdl|yKy<[D$x
X+.Y\P%W79NX_1j稇6'BPz[`Wr
6~3@`ym_VT%>N{S.WA|Bh]νT'tC@ݖ	f۷FlK+y䐇$iNo",H9h=ktR{b+VREڌn(!puƇTpXYT-vdg-(aEG-.G"!\$m2ΧPCN,bC pLlNHC'ȼBa;i
hM`
)Фd&p,dT/"\%~;NDj6Vr!lA&$TJ릢Bhbb謮B<*"\aF!R)Op	.6Ŷ鎪2^,b#¨^9O$PڰpmԪ9Mi`-a
q$&pBf-*8:*-1W8'+/&,l')A"tJ҄EВo'Zd.Nm eJ]x׏'m2^D4%KJ7ͱ`'M.$h(rP i90Q{wP*dDMHu't1,h%W0,ИBDBļNRegDE#H90čzq6	X\HԢ~q-8m'	PL1'R)C;Q>dFs$'UTs~$fa.g;TLd0(o/Jwb	-nIs)z.UEA"YT$[Q|g|b#PFb(!fKYs]{4ҏ21In_lo"6Bs5d(wM -o9|84$r+bcd:99O[
p)hݐ*FAr;&>2IY$-/@l=ņEI\5x|k$
^㜫F}"M5#o{)Y:4dC/BL4ro*E]Sd($lFPf+Lt25|0ݪHYS+]T1FDW:#2&3{4KͦtvPUc\n@Ot_DsM8t4$xHO1P{*CJKQeO7&EU _B̿R,,OI{hHL+Dbl$U3pU(.v$嶔a1jt5\TŶa`آԺ&Z<LksNM<a
N9b7Y`T2)VPU+]u B0Gp QW,r n,r^"浈X-"TE<DU-+D`82ŜU(I $`SCZ5[6VXՆLKaQqePqM3JNIOkqԽ"
8sRZdhG^,EsBM6Qu-ۍTb(*FV}3"2lT+b&B .0>#}x6 \*4b/2/7@^tdqN1e	P[@ȼĠT+Jplc@ŶIW]Iv_/)45"pDN+{.pќ[V##b?,BU~s=#&>Cy\(4xq^Kp^Ėp9W5SB"<OrϷprovrKDa&FTi
dh1yV,ZGpWK+:sOq, _:-vLj.@+bUAz$LH1D4>s{i쎬W5ʡ2?X@C׏#fSP\LO6O=."PS#BD%Rk))8QjFB:t_|(u7K.3y.v V#m9D֨FuF%0uUy54r5$-SJau8z6xLJYSQB7
J ɻ01d4fwt0E3u9{	Ge&Uv6WD8"k XW)*.B<B~Fjï1(4t5? UcYGFÔg4Jb9NkN9af<(?ŕ1b71bU(zh:s]!hYIʌCk-^7*mF%-=њ5g:/VxImp88h\oV$$\S1V^@N;M8Cyr嚬|E([3&/->:GhM Yg5=%l"*y/EzR.OyRbpGDM-+{17NX"DV4NӔJ/Q`;g:pRL^rJ9K{[Dk5rLbkNZO17BQ~B~PnE[ź_w]]hx-w
X8/-^,m,Hjj.}TwJnf7e~:4Z#aԧ|Q2ׇeqHVp`s7< Iyp7G, !ڕ;bi7"P܌E{irslb~f=0:yTί2-"x)̃/vYZAptbI;C'i5!/ B9ǔ+gdY)e<dsP"Z?.*13I8$2=oyҍ(p|n	wrə\as¤!O7stjwԃ+MgֳNHY{H{14RjC؉=@s''}v҂
<	kS*s9Lʡ4	@}# u'˖~gR,gkV"j(<j	2j}.P$@>AU4VhQUT|%b,,qm.hTàR6kvqxP(]Y%ܽ7wm): !@h梭BbV޻s&D,u^gi.fZuj k~\C'[EInH<yc{0ViE:c_^N~##p#c b1tqj-s ؙG>u)To?|HĄ
%ZX.Xr66tb\?ĨcEc2+}0cLmx&xeʇA)W.hͅ2&P}{U,Tꓩ㼳gאrݛ{oj҅L޺w{W2e~V8.BuȑfÆl&ͺװc˞GrSh7v;߳	'>rjAvg\Y-bW2L 7b\X~,ʔY
/Н.IDTUQPd	*UNkMeW^݇T Z6[$vO<j#^|)6O`a"v?b?ۜ<!LZti#PF)hfs9VdpMVS%oSƖX:h֥Y9LZyeD'E^$Y{.ǐBQ~V5Vh`M4BIM4OCM4UQ-Z9nG7hY#VZxB$~t<=˔b<&͘8?׊9e7j6א٫g-čvmUn&qvǥܷ96rJe0a	wDYQH}rhDEUu5GJhӾcqh^H>@LXZl[S:,Ǫe,xd@8"ųLIݦtÑ\ö$X:d5릛5vy%حBhƽ9FYD^P{l^|^ϴ(Eu
0"4ä`M4M.ZZڊL57H@m>mO|Dx6λ믈{!LF8OS*h\WisYkkqF9nX3/jBo$H]m^.\hE*oޗj?0
r pGU (!esd7"VH3d#haа5IJ@<iAkɖq|S"n8aDk68o\;r%np<9mmhjr$1!J51J*PQ*2,&^aHugP<4#ͅ8Caƅ0chh42=ڋфvlRHKo)M|5DMPä%j:pD'<0cD6ƓlPש kv9R3gtɪ5$"_LyN,j#J.|PN*gQ(W3B״ ҕLu9ˌzIDt[,e饐v"P=s:0#T֗2S<rX[\pW}STEAdlb*KͦBAJ2HG(7 TWrA璫 eQ!\2&4}*Q貗m`c#\6	/{T?^S>3Bgb 79$p8/V*bUl˪V2Xt!!XrUœgpbWe9օ5$
i.9
FkJ+>d9McqRh|p~J'裳#3ӍP!XN)*L4"'@wn"S锕	0&C+|eLt{PPDZB]4W/.GeqsW<gأ
"de&KZ#P*EYZ;ٸU65O=NN`fsM- FmL+! K]8-IrXTm$sWdMA]bhэŸ4*#بYN^HٜH6m7հ׬V6Y7G쫑cRf15|U͢Q_BrY(X)_QS>_)BgOkB00(P>]&^hլ1kCԥ$kX3`Z'>&֔@OQ捸q; Y Nf0,GCU>V>:=T)AM❠ѫ2P[Ƒ!!t!*pe";JHGk|k՚pH5`2GWab$150f"Mbc464bpȴ}آ*N=H	܉8a2,؏}.9qhWw3g.~y3!nopޖ|3Ƭ!̊-
_وI΍ZZVUYNrDGvz}zW"HgNuuiUܠiuQ7"]{{ܰW DB5<'L.Hq{.W-mW-GR'Q%e('s}}08qSbxs`Sc~ؤ~x(1N51I >Wezt6aDoSQGGoǂ2f,i1^w#5!=wle|#Hw#eqL6%B_vC۲6h77rDg@ݧ6F_fN~ty2(Qm<3qNW[Z9|#Q3&*pn5w7{fSsw-~'DS$тqDq-"nhbY1l-wYbtԃAes7q/amSy@!
azXuzŲ*vOV,B{'#HvnH7Pc"rC4Bdw,IX4D&d|$Y,(7؁!L"'w9%bZ}s q~Ə	yFZxnx2 mUhѐǆ<ñi{t#{8ps$x.qzKk-9dσkj\%rͧ;I(wB	s1F-3fPal!E([0@dakaT aYOI:)HF8v^ċ*#b<ox<AQbHq8DVFْv29d$-1!#29	F5xaNh8l8=7h^aᚦcGq@^	)(R`gS#YI/8R.ǑINy%ۙ,^JE*+Y)&`y/	r+A~FZt?E(uG7nFHqs:"b%)I*B\i;ZC{5	Q!bxCbSx(|g}>&=YjoVlڢBq7
GSaÔM~R:ФHs$9qfW
SI]Z3"i"|kzW9BJD±j`^y
w-^2&"ik"Jj'.@
xf1}1E)NyXʉ*4ib)WIwՕ q{@yPjʡvv552:=ʺEߓww-ؚhqVS	Ц9urG.8HXmtAzJ#tNH\8+&rX3 vtB1DiHp	dDRdy(d$dk^kS5٣.rK۶1!1&۔( 60gB0g@%NIsYX*OVyYO+bmLc@-t
Wk4ԁv]X9%uJek^!wXV_u!u;G(2~t2@C?"A' MUu*m񸻕2G:[biūPcYfuwٙXo)kk6u505ŭ0g?窩;Ul
䮊kUĸޛ)H`O{:Z 9>,˰HD2r6v,Wfk5jY8*K8zKk>>1g,њ*2٫KBnV:+U[*bu3blٖ
ļ'(4E|QI#RyLpLX5k$c<?˲̷?ga4O|Dy>a 9Ya),`!bѯh!4<WwWʑǂ<wrL-dw~-,N6eVWqǑj=œr7F7{Nyv!vx
m0~ĉZm ,Z22,|<oTzipkJ+MjqywvD+:Lkk|j4"3g*TL:F'SV_t)Oz8ǔIQ)U`1Q](}4x
4ڡ<<SPse=$:<]KZr]ˇT\$\׺~OGh0h4HSA`AFQk {nSng@"i1Xnu$wqXCљj@lŪ[_=4RZ,LӮL'r 97E!*dG N
HZ}Mזs=#
&Qs=aP\%$)/}`LDe1^$*QR7"KyQa<	4A:Y:fq8^ms!Nl[sPA3}k8W--uԾ!YkS,RP AϲDpcHlOr-O#׭5=AS0NDY~!;G$Ap8c0ᰒcB#wN5wW].5hdsł^=1&~Ɋ^+8Zk=0ǎ_~ݶ/nYol9m`\oT(_T*nmu[i?|#m;Pvα +ωr7ϼk=-Kшn<+^#EQR1Ϥr()f9vfٻ`LF1um)MyAB|,/Y{:TW[?Wj,ތE%&YɅ򴱢Pu9UIf,1qfIKÌPO	̞**:YVtu*}|ejj??}H>$'ή~JEDwq}|6|ro|D&7[a>~f	BU:u`XVNNuZd
Dgm!Zomרp$+wACBkϟ@ng&_&Abf%+K2M9u$-k
QI,͢$rRgѦJIb]OWaŎWXua#Fm[V>qǾ6{vk֗pHŃB;/^ [Vn<:3Ưm<G#h0J#FYh58]ligTn֗nn9Fڻ'_ިN
АFk]_ϽͶl|uʫ.KLk2|"cCD[4\³ C j-}>#Z͵S082K2R9T	v&&yR̳r<ZҪ+r;.{$)M}c??к>b'¶"H0I.ΪCFy$pR#IH[h/GM{qя)G'08ZNeeV=6B*6&몼*DRKhb2|6Zl=JX蚼֧)L
N8{d|L7^4]v%/|JH)/T&S}NSMC,emϳ\iUftmWաˍ Jy!)XeZ-M)$39>m{N2yhq٪\$l։[g7] P.{2)4_9K,AlN8QlU8xXm2uyJ.e=!Zּ:$D	iC7[%7ߩ>3iʦ\7jQ?GuޠA^T u,Y*.YI÷>Yx_uqɭ<{܈ٗ|`eN͑vJV>鬇*9bW@B+K#uN)kwY4!IyK;ySְ*z*ٞg0$2[FͨdzP(GdC9%%JYk":J .)?!#t&,ggWX,xt`!6hz-OALn!EQxٗXXF6rP0ROpnk-f+aAl]ިޤ|pMo8xÉ@%'L$3 Pe/K'!R`'sp$\
'9.VKMc6~iˑ^T x*c7Bԇ(#Ć ȭHjDLӦ+:RRDb1P+,!ӗDJ%]GP^	Ԡ.ݼ,6ryB: L-(dMoI,;ڇJ@f Rzp)
M%kY3_>pxsP|͋;>_^F<~B8DSiRNO!A-'"fSlle|"9C,qՖEQppB1I2kmm+suPw`Z$\x'vE%]Fn&bLX2%ӦzJ-ƒ&6:jTg_3DԔֈSRU68-T"͛2']&X]Z,4)/q |72-QHR<)+5ݰa~l1\cjPxI$PzI/^T8tZ)\QΓ9Tm<'S
Ld9˰Sւ\VZvOy_'p;L2wÃ%KȼMyGㅒ1uA 1xz|lQ?ā~WK*=&W:͡˫֖kF3b>ݡC(7Mk%˘kJH=)굡]ӜV;tMkM%P+܎>C&Qt5 SaUlj|wI(<JhfPhQw&q.Yp;Sy,:<mA<}=Q)!@Ѩz&)äDu?VF42fXsmOsFJ	{)7?BpFŗ|89m ?lfWm^˾z<%h/Y}r1D}.yEfغLMAC`]тo<[ezX']sypb#{t[ⱧI	[vO?s6%+Inff}/RE[tPq<xov3>5jd'v4;jz7l+9	Ő.	'_uyGG6/y@*軃(2a-xx>Ē	@;X3>R1ҺL2{)=j;w6۸Dk=(6~s{ߒ-@,:{ǣ;A7?Ĩ:i}ۿJ!SBT hyh1Mq!밒܈"?8Jx@氈s	cCʪ 0c,D+03q.W0	8ڦG4P ȱy{.L y@؆qx(&242	̜*	.FP,G500><
U7Cݩ:4
;D6wY$E!DʈH9BLsDk0E:	X+)/4O<"."ȻxL8+L
r| kJep;)f{]ssī+tdIDA#Y#Id
Z4(C6yskAуAI?8ˡCF"7=jH'D9K.5쐼2,rLo	I9:xlB<5C
|#{B8ӑ\(/,(A*#
DEr"I3F#T&<zK05 ZD˾LM,=ĈD7x#i>P쟑L[8PT<YJ<cP[&LzMH{BFM̓, QJ9LäǒiȔKN*P]@ՂT4E.(L$#r3
X#3#ј<d41#=[iD66ػ1b,9bܠ'#<R#1R,E5ӒM9t\,,ŷʄTB06E^MB'p҇;ݤ<EkQ[=WԻY0B%GF%2ӧ!"+ܨ3jK3 1-+ 3<`:sRQXÓbA DgsUU<yKBTO#T[/b`>8>Ch-BdUX'.nV蒺Q꺋XQӲ?cה= W3Y+|`(;zV/,	9sV-<+6y 1[Z[qJT] c'Ȟ YZZIҘ֏bIɞX圑]lYs+tXFmKcDK7:S+ڝ!5zXuҕI=h',`YCқޕՒZC\Bab֡,pP)W$XCQ	8թV}=iAXʘ[]̣ـ]͜IܗPrP%g!Zf!.ř/<Kث]ఏUAB!$mU8_u11{P_LJFK.a0"`AͿ0h}`b[EPݱ_ٱ=tQEc(4Um<d%+5	Ѵ:܋3aj].XM2%M-&SM&h[),,^݋K]jL(6F˶]sZߪ>86/K-T-d=^$F	G#٨C~)n.AxQ$ex/fauM`%-E 1t+)%уUHr$E]9H
f>п)EJFGlfVwDc fli.U^E(LM|_Ȼ|5|gDf1$*gdMiae>d>1dFM}І^cI3cSo`Ɉ]^m6fHDS=S'1=2ge٫Ȏ76~陾l},zk+	#e#YnBEnbZӍ-&V우6jx$xf]e-ksԛ*ЖkKv\km7^	2E%Qb&]j}]]jGrV%6fڭ_%ONi<Fm^bOck@)XP5rȅA0lSm]\rXW0΀/6)=pN\ݖޡ
n_jXB|qEcgeyOQppY ;=V(ֆ%.f-4~¡Nnm?j\'pEeP>W`j> q6MOSq`Z(=s"/ XS@T`~e -'lyƱ627s·ޕeSdpm}970=/ q90$0e׊f"d܊F8rY5!  tMWWH[dt][GZBVYY:uXvs"rrqh.'e)ew!Pfjh7QFj&g+8Fݓnk*'wr΁M.@j5ӐywU!^)nXs2, ovNtF9xK<8p _O!Uxi%iuǉw<!y?Jߗz/vOn57jR:f&(!M|<uz7kp}oy0{/qZYn<*{(
Z-d;srDBbS|ׇ}Mķrk	&e!4BktV2G[p%_Ixk>~}W'N{Fuבmf	߾3^
/Yrd+o{n+h B2\xPÆ'RX⿊'*#"G,i$JV=>L2!AܸŌy[A8_VVˠ/jˢ"=j3R
*֬Zr+X1YTZUbˋ?*\9ݻpHy+fMdLRDs-E#g3Т?;Yr<-}+ތsrkc:#+Cc}siL^UkbԽo78~zsyKhy6ayVT: vvx=XMUb:^|͗l}R	PaX	%ՆٔE=
9$n6^vUCK:#bOei,+z9+؞QE)cgAiri`dcy;e[S
erUդYwnO]me2_Z,+eIOtPc!AYh*Iԟ%hSgYjW(枈E饖v%'ڤg	,˥VcN>-:w15VJjmGHֺMERZViP9ɮY@WckdPZG>ugK<ug<XE.R>jľ<2@\PiAqW~KqG=4T).&kz C:,Uhn(+d9\FA1WZ=7qV[֭wk51pz*]qa5"G\]XIGESu6FP44vݩ6W)]eT9z8nWgy²`{~Z5Ϙ^M8=27􆾍-[sqCTڢۢx8,Aqh[XԯNX0eJ2LԎ';nؗA gx(Gv5|sMŽRM;`fX@bɝ rH@SZL~`%)q9 (hCXbXðpf%C$MUGiއ8ĳ\07Hl,^#rDAJ1963~Cd$$}Ѥ(	ODNbC)QKfj	.9N2=XҲ@KdfJq%WVͲjا	-\f=-Ŭ1	|2nD@t'k%<@=I3Wu&
6U|S&'6qP,g|H3' @  iZ\< 	L[̤O(r#]%.$dɵnF$>qMC9'Ds%mIԚeћݒCy*?=M=q-ӆxhW,}㱷˜]I@Eun~V	u<=	>c7ʒT:  & R*1[:tKzUfrHhȲ[2ЗQ+lSX@*.o몀Eɴ7K*Ra]YaUHuקӚN<BUr
06 }}nq PaeV|kO:%UƤrY'	  	fE*_	0I0wonoķVϩEc$"ܗѷ~ةta^2/bxo&s^n*5`|58讋-ʢ	@_үF݊7wWj&nmSPD4/ư(W
s9}fAKLhdp2s6M͕}=ޕ"&< ڒf:dؐS(O
/S=@%Q)Ug,,9;W\Ky8XD֡	mBFuª=F}JLAnh\4g:,_cn{-󬫘|=MAڡ,Tq3q{s|Aĥ[M?}h^Wv!;i/h:\E Ullv.4"co{Ɓ6A3\8rj>g23I9DL@?k)3BU*U!]&hiL0gIdxƙW5%QbUhX.pCK ~Wz}NNpœ^O&k.j}4w^ |+sNec=?[63üx*|~;B [zՕnTje>-S[ۖ<]n m AOٹ1	9GM\5ځ]WIQuG hX]5P6LbxΠ$I5 	J	ّP	6X?|BNfIh gdNVFUɚp-_̄8 ۟VVAZa!Y>Yxt` է\M^ ry-Ơ	R%&K4ub~mLQw@yݡFq՚WH&bUWHK|W0ZHy$ĀXֽ.
u@""fcd V̈q0zcTbWi#=
7rQ@Hha9I@nSɑmU#D͒ܠ9Ax 	8:[j1G`Dd $$9?>V =dYXEȎ$BV-eJ%VϠ%͜tuh1xZ!YrQ#$1[j- \vTz<f(Y&Laiose"&2c"bQ\Zl#a~v$<>$c2nGNE	eV\k1&b(
Y&h&b
RZ^q =w9OcteD^&o^EIC]Rrw$HYPa'|FuN\e/:Ȁɜq:**ƺta|.踙5ƗbP%ԓPIu[x"
1?ZdMiL(逎ta:.D(wp\ ׈(&\"TƊ@`B$g^Q`Dk'N]
GB"Z,	UĦb'Hy@Xjߜ&')	,^4tW绀92b^KWyGaQR/)ε&)(I!i݄֟ꤦܥv `-U,SZQfΞ&
nŏiJ	P?VwzZMn^Z(6u̒*VċnF'9RN%+`BivLT$$jR^,L)sd]$mv1MK!H",Db_TdF/ѧI)JkRS,-bk#9~TDp$A+Φb~GN 4g<z>-IT!+O=WK5ܶ͞:mE(-|hj2-^/
bB8Z-8yզbt
n©~Bw<ٙ*p:%-Y|*)|՞$a?(@*:TM\Z*T d߹몶 &T66Zs>a*}rjs@W}rFƗ""p&-Im^&XfcOt0$).P#8v*8Np-kJ]],5i2Y
O0=n1m.e@MH!z)T(kTSIJSq2I61pGd\֗nTp nӤaZ\ӹLaTH+o-1|#/u{AHɱ]㩪ڻq6
tX#)-rϱQn][Ѥ.o FvI.y(1ÒjkWą-4_Pl.TA43U-o]qF-
3W&XS	Æ=31Dp~iz;D3E/>q ~4qHl`tww%JcO߭*MIK6^u	{3Q>G=KFt/23JT;Ynt154u52WXRtY#_yM:B*uw'Fu1ݏ_h^D@ub'$/U+2t y`dsv<?Ur-\O~6q6Ov=T[d6ms!4.o	j-o&o5a/_V/%_R1A_#_7Ei{wF@6zoKC`_tޯzy7zqp¡E(
8
&wG8ǑL7\wNQsoV${?򷉟8w+7}8? L#8xv["7}S.+!8 792w?GK-g͑cR'SCyu^yu9oZ5mygk/f`Nk& 6繠/ճݟ:#ϸO*: !    ,
  u    	8.7*:
070-424 Y p
1W2o/Y+p23W53oIr5FX7HsU	Q-R5S21jj2y's73RIY7WQ0qfAm+Sp(gSF
PM3nEoI2MMLTVtKgYNkrrQIuMnqjTmni , =-5NUbj4U3Q6m*ut/{Q8f?PLVZRnYjqLb^oplmZklpw~tpl|31UKqpq{JS_n{egoyy{yzŖ{ƣ1;4:P?aEXHZ[U5ec5]_"cqd g7r s8f"v"v;LSPejNlouSsit}yxԁ}淈6SnVqLRVG[Yg[o^eȐ6ʘRȘjǣ]ȧbŨx˺gŸyӫeլvشhڷz^opruɌׅ褙̭а͚ԧŌͶחƨܬģֹ˺׹ƻ٦̽ɴͻ潊㿓Ǿṵ̈̌В̦ϲէӴϥ٧۴ 	H*\ȰÇ#JHŋ3joǏ CIɓ(S\ɲ˗;ʄI͛8sɳϟ;JѣH*]JPLJJիXjʵׯ`ÊK,XfNuV۷pʝ-ݻxf|/N~wal^X/Ɛ#Kl1	e&̹ϠC2iȉ۞^&Tӭc˞M yo{k{U,&y2zhֳkߞ7wؿ~ԙͫ?~߅.*qϿ)\
6GY
6w:Vhj^tm(z}"a(DE3ۊ.@'rDc2樣V@U_jB&H0hPNxbNFiNOd}H^%WvmdV(hc]l)'Mbj=*Y7̩{Y=<.UiP$J$zy*GtߛmꞚIʁ1c
Tzҩ*wv&	+L?ckJY[ 5kZ('?z+q@"2iG@mDmKU O ꮋ왝6kD$k!,^=sIr&J#K6d$!צ+S %OKm3@q$n1~0Ȱ@+xՓ@n0K#&US%&X$?d-̨7ag +f=aۤiC\9C$GTQHlG;.67b/=|
$),1v奝IcQ@<.'0&QڎWݾ"'8>Q5z?{p<t(r7)/C4G	Y<of7i2?;<nӽ
6%aa':1Eu[6V?P,ۨ=cbMA  Zc r<*lGش ׭P Ѱ5j:pu!rMB P(J`Y=h`Luq?0DHƏ%d0B~GHA5]@q
aD;j,؇A H@x4"c` Ym @yY\CޱjY1D7F LL`$T%&;aꤘ	DYA*=(݀x3fEm!ǣ!'	BA4lz!:d`#OT x`Qqcp,H`N=InSS]R`*N.ZH6|
XI6G?Zt_ihPxJR1JueY @M
D)"0c8O:@f@/c?J X:pܓ"$SU/)c|	JPA;<>͂|Kec
3*Ί	dj1T 
( _'jI4Ӱp'/>݌\C,Ҏ#ðR-ve(bo: ul}B"I}.UP7M| ݖmr^L&k-5
ߙOF픡
RϋONoTYJ_ַE<"CF	"*|D?7W
\^o/v}+Ɛ/<6&<\Ca̈s#[ɝq,aR`,q ' DɞVkb͙;qlc.s30L8;
VIl?!C"H0Lw򖯬g:Osu}(N\;`Lp6L\65_>H&q:(2W[:'eE<ʽv-nB?CɔPJɚMwkr4#_-ӃpktG0
xS|4J+8
?xW~nsZ6~HaV$!b%B1m@n;'RNx>nu[c R=	Q;dj/pSVy˗os=vQ7V_h1G`r"2sm0.srᆰLpH%*uңV`E8r<9np]vvar	- R(`g`=h.7_{Qn/^ej*{(RH:?X{o/gOpk`g}Q<p >|CW7{tuWNG'sA}9- A%
lvodR$/z}zy:Q0 c	@6A	3 'q'B?q(n@Cx+v؅rc8؃9}so1~t`Pa	< K6.0?%VY/G;k|r([Ht=C> Iې&Kp KWT^d-w^(}77G;	3-=TEmyxUч8Xgo'T
zP4p<p asS=AKrh6ȘVE[	l(/Npb<}hJ s`^~U/1ǆtʘ8׉w[8vst?ko8
UɎ-b&}،av=YX?-gWjPZ3p "-mǳp0y,5h@w<eY)Ȍ5i9tGrtx
A֐+ 2;Av0 Cwx 7uבhHRn鑍wXb1	  BťPx|A;*h;W\ٙAə{
̩q6qB{aIWT1K˃8Dٖ$G9pyQ9βl#	
턋,0G6A0 [ 	3٩;`Hud;8lYy@雬4Z
,d 	K`
U@a6;؞hZ3AP	61)a'Q
ep!נhr	jY}6i8cgi`EA	C1 0 b<?i8uI=*d9RjA*r%6	z;Ơ489:Z
a
 w?*dpP + ,A 0,k-0t|/e~裭ꬿ)<v9Fʦ!1K8	B qezx&W
**yϪJpEJ
9|P:粐-%ƛ}7p:ʪ
[{  {B% v39&_`p]"jm4;Auy
!I	}z2 t_	Z"U[ڰzgj
>AhRZsSP
G"e 33rtíI^n_[fkDq8V2=SCD% <ٮtki	[!>;A9{ +@@l' P+ƠZuK`^J[[+c7qc  08uD,((hp9 Pu.s`pJ`׸-ti+wKD0`qO𒾈Z+;Fd#E9F+OT@)'pkpH"	j5uڼ_h<\+{[ <"̿֐"	w7Rv<5lW0x8-hzvo,;:a;MOŭ˜UL=tPS^$2pD.(fiJ\Eܵʪ9kyx<`g,vquCJ,+<lakipl̡ɡ6tMLŪ-и"A:tDN40C   GT0nLğ|C|M0ͱRͭؐ 2L3C910ٞEM\yBY	y#L͌qY"7pkCj,'K}̦k:I| D'ԫhҫA}",4+p}:B=EGjysT]ՈpxQ:u+8;UpfqtL׬cр0̦ءa	 ,pPƤ!*}ɥ}5}|yLvT}۹-=@ܩlK[pe;P
ԐqW)u-=̋
-ۼCF]D"s4õs5Z!1>m.>Q !nJP
@C) 
	]OfJ[)>vƥѾgu1d́]
ǅ;N>;A}0
͒	P8ِ IQ7kGs
qxa,g._nM9<Nwq^]H*<P_	V-	`/<mjr27f`=a	
@		a[uchG%0
cf,?*9-0Jl0CiߐgΑ4~a[یP8P̹؞I%`K
vʖޡB $	t즭 adþP. Vͦ_	ϜCIOsv z    P e01)QvaAыyfž)SMҎ
wW+	jԠaA`P/ WDZ1`
U`Uv1nrot_xnQ&op0p>+Ld}3qTCaLCЗ 0#ao76ZE/ ~]#MՖ )cO`<DB-d7	Bz5cE$YI)MzZB<NOA%v")wo REM[eĪ*̷U >n쇲_%n4_ɷ#HWݯrI5ɗTn['-f؟2G)HmE
/J\t1ӿ*nnv;QfO _n`5uwI)*Ͷ\ WWYs|v\_w>_wy&Nwo"ӱcq'W.(0"OHkhD: m4yAB#&hpk ,QBCzTHٌۉ+``B:%.-#."sﰠ+o31T>G e(òPP<YE*90AE3m3n,i	HM@/ZGD V[gFkj*E;}$M,J$CUO>t7'I}Ԕd,FHˁi+EГC(a(`׼LG `8|1eNdvH6Äb.H#N{ܑ,8U!AUUQw_}b[{Rʟ\]DR#FhU@079$reHadp3, PY 0xeE԰[x2IV E7-t6z 9zU+Rw|ly[`Wj2$!6㌋mpj7aaOA+lCMDc*Gw6<+,ǡ5jv:~)6/'AdZ%s5CJD;m5GQ}2vy?&Xp|%G$tɫnzR}s?$YtLgL02Cy/~{ ` /Bb>T&ÉDQHqT"#EFN.Io$I_(A}cU*E ~]*uJ"5#;DF( Qd0	J
Ar\bG^	'B~J^2>*c|oa?\F4̚aa7LE4J"Ǣ]6 `D?C0"v蛸-sI%IH΅EbBJ#L%#єù4.M($,ǹ^U@ŕbă}$%HL MR21c#?ܑ#P<ɤu0<(z@ (%QiUBExTҏw9Nc'׹\;b~FP0&#%h}cB@*ʹch?4
HGa	"vZq9eNs{F:biB)Д%,9:,Aw6撗BY'vա0&"el*PT6bLѸf	2P=lC $Ex  ~"y*%+IQ6T%K,1HP._Uhm=sD Jh5M Wk&n!M-$?z"bKMm f3s V'IOW@Ae>WZ
J>dLD@ S&Q`"b'*Ah "9=~ t#LQXv`bRD54Ҏ*L#.z/!iP?l41x!*vN@	`2Ylr@/JYb)%QF+IbO_(f7Uy=1xt%>$&qO`ZA6$#b[!G-"ҸPpetPyG$䦔(Cg^,Vq6BʛT<^hZ^yJnBsmCL|fݐIWN^{cvs 5iVy-YZ[=*x&B,],`{->U4$TٰcR-y<"פ,;SC(uH&k$u{`!*iОd^
MG\%4 zH%6.L֭8>aLR(ﮜw
}';"*V7R4tqsZF'0Ukly]}&h"yRG m/ę0#қ  L( 
hNZ{፷^N"\%l;7pX[Zk_GzGX"Ӥy] EFo%E6U\#^+Nj)]#p(aM!\bS4jGpzʈq^-!:[?-0~%@y(k! 8c" 72	u9Tp.b󉂳LZ@ٓAI*Y@(#?r!Z1AQ#
19HPjvc|{ UX('@)3ĽЫĂ)l>3BxxDp26MA(3P𶔠0=؆sVSCy*|k;z;â"W3ATRB"[jB߱BKDa:E&ŷZ<1:iU8PЅh{(.EDۤB6j9{;\pQH};D,@8|%ӗCFA})8Sio#q侶ڕ[R̲3?FA؆`xL.ԖG#F;^`Bb9%,ec$Ģ@Dɥ[Q+I볭=/Ժ[rCV~
 0u  {*UE!ʧr(c4	p`exHʲ83WJ۪:!NE`F0KS$\jI7 ~}tckɍ(14.!ʤ
W8`LHPRhB5~JFľptB$,Řz`I{k[IyL
t	SJ*Lh}Ѓc0!@0}ѐL3S4t=D!d/U{JJh|BB$pPOHżxDc>$2Ete>><SJ@l,-ՈhH",P e07 V'ғ]1n{r1upL<]ehϼ4MzDeH%ݚ)/GȲ)4ujpǘh[@@;F@
J	TADӔQQ;Qx/|QxnhpxʲuL}h%ģTI\!lN#QuUŭR*=6WXm-H
@h)ȆِHzVm 3Ld^mګaDb,}xRxoV$	q/s<PyOCЌT!UGTe*l[s+%P$H؎/"p'ޠ52XYxg*3ȇmYbJه\ٛqq%WUO u(TKWxP`MF8U1l	]$}pPp vaINejW@Ax5PEA \nH㇧D峟ZǕTȍy5<4~XG<}*^W~u߅hM0< }U	I8 iA[s
^ثFߨ[Z{ tpL;^ܛ$v
q%O͜2=H%
fE[RxZh85KQ]ɸZ]!A	S#rs1  0J}*Qɧ|ޞȇӈYpn(ҿT1Wf{HmbL%Y҆</ٌ=,݌)C^!CXK0ob1S
hx{,S~|ZcV3NM &E9>WzHeC^dD]CmӾNeI!RPwb ,,u#/}FXƑ|eCe-u4P`=[=cHTep*uݴ>X9IIfP
0Ke D Xssg],1Uӫ Dx{ެz.&wyAhLɹH~yltK5 DM0:G) ]f0!ixv4A+CjX٨?	.zqf<!Hj)ƺk&r4wuh&fh=V	F8{䈰<i4TP#kZPRI}S#Rj`^YU?>c}RQ]^_YVvlΞj0ƇwxdVf\0kmޮ6WJ`$D'
T=$['pn!Ui(UQ0o&xͦ3o.Z|q$:픈<DCp&(e _>(#`IVzhg~\Eb,60hqZ'xsql&wq渰qބcCۛ@>tD)+s_O]YAk]r-r(Om0޴GjA	z`m  'p~swF9
X3Wp_8tHq3EoFs$>lWPrM0	1!F>>er8oW#rm|	/`L`p0`q
uX=_H*ОCoyemgtgFIoe߈>/ʭEfsܢe߸բ#(m&AKYiz  #R[P[z  X[\xn;̍SaD%*puPyB@v=vntNb^5XRyhÍP'+6SТ&@B`{gu?.~Z8m6zSd @^*bWjP~ j;yem[r"ԇ.	w(|汹_GR1}GAzϫ҆zqzҘ `z   ]9㧚^|C|XK^*E2>|ȹܻw	wدbE"GLh?Hlʗ2gҬie̗	aѡ*j"F&i&DH*S)"WC)ӃO!$HYQjnJJ?nkj#-@-s+n1"Q·/_Kʂ<3|z1b4j'M<n;"J\Q]F?yr'x$/^8=_Z:&[U|)%YsVZKz/e))
rr%H 	"g]h6QY.UH+CPj!AC9Ńmm}&Rv7x K!-UIVW!eV0KU%lr' )Gzg=IR#5FE;fdͨ# 23¹'HIم*uhDA1C	&Fqotd'z*=i6\A-SHCJՒs%u2B|'ap^VRSEM͞$wشjۘ$9Xh4N$Q!kJc)mꤣiH/&*eҿv,92"S.] ⪬ʴ#
oݓ7)E!Ѥ+9bH0rK(7)`<3(=V[K=MnxC8Z	17KYDm#}$o<&`7q="lqQDjfjZ͕W|(SyG-B$$Sn7g5K:K.HHVZ-A-O?(b8Sao1,mJ7k#ԓGBw%ֹW&K,RƇRxFa"V!DSmII*/ɐ$ɬ9V׉Ӏ;>G^MJNS#dA3܁N	G}^b%*[XSF%{[(B !CV+JBݼB qE &֒3}g ]g( >p:4@ PpC;qH_	D5Vp$NQXC|*`{T$(^R^CB8iB\	E":&	zF=%f$a2ALЂJ)+0hƨ,Valk< 3H#aPAZG=(AD	p!I)|"I#	Fa*wjYZΜN=:(VA +u/U)ĴCJE4pI4*W !ιs"̧bkhx>yđO%	ٳ>>VTx(zEVFZ
g"(AMҘɠ"}XZ2e.IHQ!\i[$#A&HdNU˺)Y㷠J&V}DC)(R[	?i©`+4VՠEZ
V6%>"Ȭ 9zU9rx+\8WBJ["Ar-f
e)6}-:y-vF+O0'O>QgĤN&BAI44BAW!7UMjE9ב&LN8\qBo[&#B=8LO|xQ"PwX'.C7:
Y4Kv:4AfNݽd o@jA#Ĵ4`D]mͫR9;$֖1:b5D٤xet UOֈHKȀoBܙi%w.s&刪TM1͢ EOya!VUF0+ƀAԾ%N,<̓TPx:ڠuLLDЁѐVjU -MRbbL$w&2q>"	rĝxbK!O!.qIl!j銸(`D ٙ%1l80ڍ+m#ve iâsge1-|lЀ;jtrFb\|	ci
6ͼ4U8e9K}ؖC$%]OFd[wmIlmv8'Gsux#C-oTTCkڲg\0G/ 5w,붤ݹ!?6|]zJ2}6Ve<&UcM߮n;ʟȗRj}@U,^>Th|Tf<zJG_TDZOD)﫚jHxkS}b3dTF?ڽ]Y??8?V9AAYc J}啔T8#­|ozLWweMΧa\t q`XyY:NVM8C;|=al>`BHv @S ]I	p X5 DCh]	ĈTQXX(Z(8LZ\!\yXY߮K`\H_&!JR؍]Ym ddIRDSaaBl!eCDND?t(x6%ݙHaǘY^"12`DX݉U"8iҰQb8-hDT:"{]a*>$uJvÉ?C7׆"\B90b8BȒٛH0aYX5*9)="B6"Fqv	LN Q92I@& fmLڡAdDrENv˄a٢A[	T 17#=32INR$Ե#JN]ӱ$_ՙ'X۽C?C/8QC^x?CT&lшC0Ec-&FkHA(VnLWr	`M
p-m]FCX
9eb_&DaLFF`
efM$;.D;C;\=ep؜]h*0*l*ijj>CRA,<IJf](l `V,Pr`4ă dD$rឩ]O>(P*;>vEJ`ZDCI0]A i&j	pF'k#Cք2<I%H](PRΨ F^^[=)$vr	)>OBac)*0\>g]D!?J߹=e:ԡ]AR:}ڧ7nK*ݧZAVRkX/pXxd%'XoZ˘ބ~BF9DJF)*H*򩟈	;jDDJ=.*%b_x9BԺ+(AMj"'	be@$}֧Bz'>KjKVY!<"PmyY_sE%ۣ2`,+F$>dl()fapk>=w_L"H5y4T|jk++.+v**-,*qjZY48l*M݆cOe)m렶|:nܝx
CE_@n_f^nͪjjb*~"l;!b;@ AECٮFO{Бg-oc}\"rkvr'nkNz^_Yd&rhz&:I$KLjM#-8T!uܴs	$?ԃ# : D)/(C9C_(,KmmTJ%p
mf%[*o*RP  `E_Y"<cɨpY0 [J0*cN2a)mnl :Jb1.^N.|Vo˸_ =Q "2xH4Fq
Lr'2:	ylF(*%pexwf>Tp<`1_T$pqr.E
"Gǈ	or%Ȇk5wm` "/S$\aJ堮&L,8ab#kIfoǦ[(37҄x	͖iu0YL/.ٺ1E`U1C2223CL]q#;-(,K7l?nOE9)a8oy∧X>XMME#b1MJI43BiC?/-4s"SDKf'w2O7ͳ4NrJc+7u/M\HӑT.!i#Y6b֭sGm/BdQFrN3Dg:ut7el0	yNt<܃Zۤ2p3д;8PhM'l^qa6->b/GANtN,F'1fUovy1/Cx[ (C*pBnn`ܖl]Kn)1tKw#R-,ut@5iXb4s7q2B#\O7G#f]x'fD+FPr=!9777vzo#
G|ø tKw#~n"UN¡R+13k!38't27^7c!fwzJ2nxHŖ;mܞXp8<t/wt?,E-4S)H?ăt4.13R;AdQw9m\v#Vĩ+@jg0/jw1EyAs宅#(#^ăA+r7cxιE ;yb5ޓjulUk+NJyU/Zc36C-7Gl7v-5Z.S؟#A-<;Eu I=<8c;1].4{1'':V+:R4OF">_C?/(3)qgf 	1*b_?87<l?`CZq&Ѝ?@#(:s<97{h5+30)ݵ9%kW'Y[*KkǟpKk#E/zJ4z[.<`4R,BCDC#<s<?ya"ϳIcPndHw5#p+#o:)j:W4;w|-aÏ%xRaC#DÒ4!g<v'ϴPپlf`F'%	`?
	6<Æ
5*'QA~I4yr!ƒؑBVFܹWѦJB-zC]x ;tjS")zkV[vIRU&;,r͗[X:7l\vIUm\w`W#|VfH!16rJ6³v$i&sQLAsRK9F+JE}yr˙773밁֕-߯jOoo>|0=4Ab6xP)ɑ{!*쿃n>q		Y(<9$Gw=*+@L<Uk-{8P˻jƭd,	uă+0{KxLG 9B=%D"yd(:	Pʍ K6ZItFmܓ>|=ڑ.)BuTYg Dvr<؉G&T+#Ä4/$;3-t#RO,,SXԒ:?:S?}hT+B[uH:vg#$}MH=X=?}>yʄ|pEGBơh_>؈-+RWڌ5ޘڐGq&5Nl}SdݙȫzÇ2eYEaâl2xz@Mͳ㮽l띐E.
.<3
;:jr7_gn=Uaf	_2E+BDk
b&P*ҧ9Uud/rہYD]g;"+(+1~*vr^CqdaLY/K}^L?cDW/}	g٩ҝ>b֌gYlTRJ=2'.eMj8砮 2bP,|炷lC
ŕn~Ndc=|r(x^D!3=DDYyFA2#8Z!=b5*Ə9'da`~qq۲҈vuTCp iO%K\dr1>Xg{,Es"/REK0XV\2
*A0QjQ"8rԥd~	ঢ়Q0L $1>|ĤIfG4 DzG<HK0P`!rJ"AeB9x"%k"-fa]T0أY̺[zc"Ah4$#x%9?COy	x)iMsG*>2HR0t ʖC%BKǾA}##jp~1_|x\c86ĈLqK"ЄELW |P@hgX<BBT2Z1_
TPh&.up4(U*^0_xQDN)L&MJ)2	Јv8	DʬЂ)"бan5eETmTyZz(N[_6&#VcfˇAkM)¥ U?]M3eB.518,AqC9"2
RIɺرD262?]OJJ?+v6IHG	2i=UWN\tSa*e/IgtD!#1eZg?_-Vo|e9ۈާfo[ڣ*$VZłE[Y݆NQs.#/C%w퍡q?,Hv:ƕ^cbE*]=="J-Doż#Eۘ(]-vt	ԝ2"ҪŒr\_i%\R~,@p\	QA­XUX';L&d*e3>hḴzV=U"Ԗr"YV}bWV474,;X&aҒ حQK	@D(BXׄć+L1]>5gkhqGvwECupv41Fj/l(e60{0%|5f)@M׈c~DCaQ-"KIUjrf푽K{6u->[q]	-nO;Ys"F5@>B/qH:WěN2eY")Ύ(~cRN4k"ɐO*P	cRvmOH%BLbռLXl*n/%L	xpA28P)mtsPԫp&b
"!#)9^Ƞ-/bDJ2h
nJ|کX3P쒥@GO0
7f@cKck.
HD&udmtpPx=Ixd@䑒9h'd#af)7aQ$p̨$QbX0-n,,pp[Nq-*<"HP<tv1?,K`bGd58'CgpaAI$,#&ӮS>Z:ЏV1ZGj$<0.чV]-AҨG4O#.d!c9*	E#<2X(l,Q%eEVm A!E; =v'S9>,$n B "a"r2!!{<򚜫cR,7s27uj-EmOf#Lv$6̱H!0US0)ar$+3E39:34um	i-zw"Jrx4OIՆ4baf*)A1+{~""a0ШxD:t3u$4LQ[TC'Y#^!(/g!C_(stE~U(TrG:QGAUA!IBO$<*$
Q2wF<Fl6Ec=BLCMfB*"s0c
"ag;g2G!AbϷ
%])I5TELuZI/0\`-σ=)Hvo2!GV4iUr0NJ83 籂'x,!ܡOr,$)@U&HEQU՗[Y+Rf`.</6)/*-+oN?AEX aUs_bSXB"$O)PcWW@u*JЊY֎`R;Y~xI\1 f :dS_7u*5<KLsP4n!0s0ѯ"{D̈J"nWp_5`""iacRH|D֡3&.v5VF[fKKhK?[7X2p9-2gI#5',A_-n5WHWc/?}#bi+3Yb.>&3E4Cu.) #mE֥4BfAE ڔo7jh@.jgW4P5$!_6`!7rz,zQ0I5r.&cCtoSҖJxSib4x	TGЈ!ufxﶕn_hIB)tq q%z `zW^zW
zlV_K-/HtQ&c.>(*f0	J#B]pfNpߊX2W&q)ĺhUk")+!ƁnZ "!
8bXu)pȂNqːB9$L;<w/I[A806lFU~;%x#v(78ejJTߢ qǡL"iydlW'q7zYEyU~!ٙ9A! Dab "  Xa  a 
a!DBb: <!n$/z^:d,bmC{J,ԣKud)~eW0weHq? kF9gc
$"x˘qaW88yYxځn(a J!  	F aBZ!` z`Aٍr "`3;ѢK\nϒQQ9c;-;z*$>:(nΣsoL?fA|S9O0tuUg7AN,Ixwty&ΌxjDzz  %@>:f`$Pa Y      ܁9[0ܱ<V#Z4&-E!bc.'C6+DDLfa>eQ:[AYIe;|;䚋gx|y'n7
,΁ۻ @ 
!x8a%
	 0t#l
+{,B3bKbKkATKU;(%LZM!N_z{U!Xzxf}oi+hOU٨7$2A%' !Z`]̓:Et
"raJ ^ <ݟq<[EY64Oxd`94IMnPw2зKMTԤKPjp בFgU=46Ψy!!a ta.`	a\ ``@Al9! J!ݯaXGAa܉n!]	;Km$a"/k<IՅ8+ֱ=nGZC#+~ú^Iʞ(dUoAz `  za[ `t&頏m%1?7t"kOCR@+oWąĚ5	!1H}$%z?|B,R#x O2sI'(OD;Y4iCj1ֹEmLQPؽ[[҉O[S;,+ b $ǈE0䖍} [;nɔ+KrQ̘53<1@΢b/h|'Vel%a0$z"k'ny2xU!K!}r-B/d&ğA{Nzt݆ -w+W\SlN\D? 0|8 ?a~bv`Hڈ
viOd&FRoxAURsJpt\J<NjO-CY4NS:?	%T"t^51L  7sN>_stpA694VPZv9t(n	jbFĢD'>8B6ȣB3BqdRQQ<F]<VrdHLΣBݵSO=ԝCԣ-!񓤶er?8+tѧ@u* 	Z<͡%	 i@*KY^qf):j"ϊ:32%r;:v̐Vlb
IЍ+8Kp>IJQZs_R-ӈB+cWnޖ(a1=}#I\@O|'amw~3#ʓq;#N;Ù:{>v+P?,A[-UdD{wx1AQP+,y6&RݾaO9ؼ(O}7ԢȬ=."g렼᫲x;|9D>g?6tANVҗ [G:Y	"̙G<,u 1y4%.L	4պ6QƂ?B&YH}cBU;uc4'Gw#\s!FǴ-Yy;@vQNVGN-/i<ǸصEa]-d,'#
e^
UЅ#:Z>膪o쏎Bj!Y,koHd]AnMFɖB/.+F@b<ƌ팬l+85zsr#9|&LYe3.cI1yYE6]HdKNZiΒ~D (F5o<4/1l|=Aʜ%-Qp.IaًUɹjhLB "pQG^N6-D+8˹<4zISp픘]=	ԠvT>bTTfHF8U%(1aH	wG̴CV#DC@T횐GDW~䔲d#69R	&rP>Y
ZƨG%V2&-¾FbWհP	YqZ~fp>iFD#%`Lt"uʔ㯸3
a˵0wa%2fTw/TXǦ.d_[#1eV#
[vr[2	=\d37k	r7 ( Iu3-6$ad*TfvKcBۘbF,G.̶O=˯f:h4)Hd\Ek"$'-.7tXQׇݙXPb1(ЈKfgyT0^.A6UzJІUmyCurXlj>}
x2y+jC$JR)w%[&E:]1Y\OO9t4Dl\gldY/JN˺ؘ.
\_kJ@,WGT@ٰ&Rm-9J!]]tКfh	MB}l#ǝ1k|(oDnw9:qŭNO-:r@~0pǃJ<'yeg B߷[9_7L}͌`[Z(4Rj.p
w7 UN/2̻TsH%xOx:XK5o~F1*}/ZD6۪!'EmTZOs!dFM&4hDLݩM܃T޳io~\}>^ॽ0y۬+nIx/06$G1S
l"o?J%MqiF@g|ZE-?s|b8}fxkJe}>Gc!ugWl'uScUg+S+02cc[?cy>@`oqak$`rR|G {N$nkj8!wlA.b]o_H}EG[)T*0^Gc^W+'C]uAi^ M^m5?n(enr5s1S3%nfwxrT/HsoTO+ӁhoHu'L6u|t F2m?Czv
QiH0#;',uURDb\watMgjotAo|a(^hYÊf+Tw"ER~+Kl؂i:zO@+.yI+3F6a2[IN(\fTj!pxVks}'ƎgRt3*wCpi%}#=3lD3&MӴ"qd*AeBӍF`I4wvђ;w]5r%"&x^]mvxn#8C8HWGw?ہQK	lw?$A%F/Qn&Au	А{KX"׍>ߨ	8}Y}rJ8|g"{gQ*H_XydC%?D9DhC;rdA:ن^E&iq>$e vWij5e. wgyF*j]))}w=u79G5u/t_|ɝ~{9:d:NWG8s$D$vbIIi<"chx=JCv1zٛ>q']9bTB顜d3 [/_4[YiS@NWajdX4j&6-}{
2EKgGcy7`Q +d#m9ҘҴ,ULduB2yr\1{ %Mb)|T2;J|*k!
Ei,ڊj4,z_hUIƠʋ<3D,0TPZ)W

IHrJ3JYǣzF](tbw43BJZjŬu+$Рu]ʠJq:dUPʮgB记:ت1UW:%j V+%Abv!hpZ5Uc*;cE?7RCab#[*6qHj# `_Cw7HzyWZ;^T0sy5Vuh䠝f+z~깶ră/[1q+&H*ʺj7^7.Tv49fZX˗#{hk!KƝxvٵi4Tq;ⶩ[3{ruwa`}el+G]ȅk~FV*	2k
$cxZ	"gŝc#'	SDڃ;+,6~d; y:#_`%Թl
\ަ}'4W[yF4nkS;rl_<YG;dgel*<jm9j?$ThwD©z3m9Ll4ת`iM!e9Q%ƗL.L22,vƫ:F%;jJQ0"K?Lvҵ-6;"d|CTiZ<;Z÷&\|կ,܉v*g_q/Z.D\-i%K3(bʌTWc1\N,A+QX'<[KOTw鴥0P>dC˱L	dj`+lZ|PX 	pEJ6&ܢb4S x^؀87,90b[PԱb[KċK9ކC-LvwG1ϊL\tXJdA8=DsDߦOMz41,F*hX^dEi3;Ļ\,f9Ҧ&]1-|\~/M|ۖ9`He̵FY[´،=[`l$P#+@\%V߻DynAa;ګwi+̉I}D]cÉP܉Z M{Зۼܙ}sн1A dT	#5DdɬޭDgkpyj)t<Nu=8QGkܰ`
N̩F"G4{M8Z݊a0d1'@Me9CU&bXxf/ƭ(8M׵C1K	܂Y$+5Ya\NO3UId$3;廜xH'ߏְ *ƍ9qM|{Ê&1$Sw8{j56~b)V	T״=&e=Y	ziD**ZMm[7A-uZMC혚g^x*FН+O^HGQy#K}Xݩѡӫ41cZiy"FafŒzuX}oo➅>}h۠&Hj+(뚧&Cb3&+ˊT
ł&GPYQ`?c1GXTǶ%^kv-u^󚿏\gg'ߠV#	ʄ
`ZY}#+8~<\hݱ+gM.	Z)|O)Jۀ3#=[[>Jѵ?mω!{<WH 
ThO?LbD%khQŌ-vR$$<)RJ-]IgĩfL0gVdО.̇ѐ̗TT׎>}N=>hߞtVY:ԗ"Co#(qL,;6ÅQ3!b1DɑUsf쑨N?CF(ќ*M^m$a1)ؕ^5pվw!oG{lwVZnrbՕswa	Ǥ1(HR\8M6lIdh
j'|ɴm{v{	8<n8'+v*%m§̒eYbybNbʨ.sӈ=O惄lo?C
н4h"mmB0όm0ѬpMPLD-9U)r.R3=\λD-eACQ# Qpȍ:g#CR˖al>̼XRK69UL^u6a}M0B[)*ZL#t0Ep%Y1y,Ȯ
#)ECKӏ
UTn)*_rD>WJv^+UKf&5,6 8&8jc鄍<ڳ|+L'8$}J7qٱ䕏Sݜ1͐喊z mK>U"/puZb1Lb]pʾM*[UST
"+'e9}{pDgCgXI^U])FNozRslזv[.vnInnz*ބ#Ŀ1ٰڊ-0=\Nj\]s\,0T"9(+7WaU5#ۣ?΀s<P1^HTLeʖ8#$ t=HH#dyF#Lj! }1 Df B 8NwRʐh*L88=4yctHRVB0{-|	Ďe)"s=($B"2 Dv<Mܖ@)Rѓg]ڐeEPCY%X|lxKhDQ!兇\*y˄F g0NYZ>ADkaAYR/`Kg>-%{g:d-hcbiTDIqep('Ĳ>±{˂yrOz=
;)$D_D2Ԉ~9Y=+(9B4EM4<fxP=NiTfa642N`ڧ;ŕ<$"CǸŏ"7ªDJJWG_sgRqc-z%ZbWs1)9o)F,fK:)3.$z,1e~
#GFò2ݔfiQ#%DKM[k~+6vrk{bi^
rDen7}C
9rZʆ[S-52ɕPN9<`?L;HlYBն pU~113n6N\[>kOhu^QCqn'&2l+g%600.GJq恽0jB<bf̔^l|GyҤFx͹ٰܢV$*j*NB7C21څHŠQ/Xj}zrv,E 'dk[	;@#.Y5ɲ,ɴ'
tX0qPgC6QYt:'<qD	˂jEAKXglkj7h2iH,$՘ZiZLWsmʜf[js<ܢ1qج1++S̭hn3w.%WaDʊh
o[n:vr ,nv00)͝grw?m$ƛx3BvIW=w.(xn3p?5WKhϋlgdk~ti%-=}a{y'z:SJKvVE)QlmLu1D@z$/Ѥs'A܄rٍUSݯ
NSis==5͇6wH͒'7颪?3XA*=J)lyZ<Rz v ]t䪧=lɖ;.khpC8
(h`YȪ6"a++v>9H+6xc"A-߂?COK]5֨A4y	Tj[1|Y4ڑ3<0Ѹ#Z[I">1|a8ȸJAsy#2$7=%2
.QY8)\	É2{lQ!C),O<Ï#6tn8|8ؘz;$k
S./^)1%XPD3G44T>8
\5􀲸$)DYI:+SϋU,=jA+XEQ{=t9㺴r;
c"ªH15?>B S]㑂/ѪDQ\@3,,q"sLE9V,WtxTɉ%v$bl<+OH8"L=kj!(<3	8K<A@ D
i"Hآ;?P@Ǎ$;K|9Zɶ>?\Xda Bx7$!(|J1 6Ӭ$H2Aq\8A$ɒ!욋ps,c-v[aG?5'ȵ3:8B2E
M,JCJK4EĸA6D=,,،GMSB,*3I>L@4@N F4J^;<i|!^Sc!H/$܏,O=T5Ը4KHS]ۄsE|M@{Ɋb̛>}ŬL	YP&=ɱ.xyJԼ
Eӓ@m;GۗfDEk*$٨?M34$DU(!;!,!	T#1v'u4]`J"R1-Ef36k;!S8{MٜE벎戎\T.='(hШ֫IʈܞrJ9L1g[?Ikb JKdMUV}=!7:]U0"A<AB>pIW$}k,&y{(	/AJLa8PR+l1V#Zת^p/rXt-.TW?\07U1y4|+t_U~aW*ؚPcV H)NRV@
C5:?BORٕXO|Im55LW ٟYdƉ,ZU11m܇wv̅dا̅PCJaՋMMKP-pCuۈO=d)eW2BW~5JzTң8NN)6a"\H2͝÷Do]U<-ս|݆is4QSWC])ULEZ7%!Vl̔1윗A3ܤS3`J[4 08TB߱tEKb]UOthWu-ʛS 70EL#TԎ@`$T)>S(ތ a[;rm߸a,+6G꺵|S	!\q|\@Nh\༃TrNy\{*J9mcKG0ܸRF>6zDT=sJ11>+HJNJՉu\ɕvI֫y>"P>j;[}TSe{Te_[Yvtu
-e-?&*LX
d	ՔNQ	fd,6/-][)UN=8LsKu=TZ_{[gE!ZFb謀@*hf|dHjPAh<d-1hhV_qVӕZ;MXbyӗuga`=!iUde%dD>+؞v\¡Kjjyf&-V@l4+VGɘ3VVd꼒ϰ7uucx;ޑ^ou`,z[LaMi΍jfkνXFu>lVQ|HlQ.4esxjtavsO`[
^*g'DHjDR842=oj4sOz<i,Ⱦ'Ţ VB7jDf./~J>iflOhή5n荦=ڻlw쉹_ np׬b*%ZLe^o+f/Xe(,>(͇mX8SuzO^[q]
ImnCbipVF*HfK9YT [;,pKej5GYOO,fͣ(@e&hQ6ޅ:r"s 1ȽVRQк3$C^!0m	4[ת`0g83',ALg0||T7@T({BuĕA?::w1t*vV$\OQCQJ˪1Mqva;o圂kY
op"p](nad=d.rֺNvƼ8/.6 Th(0srՃv+^K@A_5x7gsFhnIigݏRH
bGӧ*KvU4ӁwyO*s7#)Ȥ\p`b֠՞x\wyz9^/Ay@:}>WQVAOkyQo2<ӳ8'[;L>V|z`
,~eGq`U4C9(Z4ain'ؗ^xB{z@n?ma}ŏ_Чg.,(0?	ɒ$	4)#ǖ)s&͋0ެs'Ϟ>I1gP9rDZv4I|q'b:/.M\(u?ag
4;mRmᮥv@ر؏ڲ۱CS"Ǎ4tl#$=\PKO<ZiԮ_MMֲ#Ҧ4my^X˪VOdJQ-JQER/y6Q_uVB+kos慜M>Bh&qSj!Xn2ؠ
6hB :dKgqqauoqHsF]MNuv9LJ}7^pQ_e^pYB=Fw}A" (H9`It!A_oJQhjedwafڍybV]ȲOQt.zAw,)בHParIPNeJ6ӒB:l&ᝨ*Rfy.ӡ)U]<Orݚu:&4@s56Z>Gxi)MKA2rj} Z)O8OcF&gvg/&%kd\1y(JW҄X/ꅨihBTvExD2U'H:F)Gܰk%YﻲG#愰\pUeQ(.5MmubEݎ"O[d)1w\3]~.OIX3>tбw>8jRV?ԯm,ROv++X}Ǣ]c(+hGgIQȫA} 4M	8U5O<@<UZS׺2P,.fۚzw>®CaџvSƨ^HHTVef.CI	e{\gAErC[|z;f#qMlz"6,KyǶD=+Y;0˛D&F#HYy\ށL8+&pԓ"nސ#!T.MC`'Y5Tm(O[n9[H
h7NPNX|'iɠHp7,1.l+ ROs
x;p:2<oxD[R]|&?Hx;bHjIf<
ŃC%j:oqmWE0+%DݟC7GF&26ñp#("4"e"8v(:F} 5m/z<	gVP.aVIHx'bΡOc\rXg\,L 	Ed.FP,P4?KʫDon4$Q͊Z1iABP^Zept7lb'u
?HF0:!XDSg]NzJTj(ŏfR[XCv<ᬜ{H)MeʹAmOSz*d^ݔu$
cP$aΐoKtȓF$ghjY>ׂOcdYUʫ'hEΡ%i)ƾwtDfGa>qAwWl]w-U
-J#Irx%۳4&P΂I{yM:IO֥OoZږ;>6">iL'eSʕ3IzL#d{?^^ 4M95Rg&/p8fnd>(xi'4jvkHq%k1#PN`ZneRRUf7H;.(^<Q2}k
P&,<`,{ddЎRG2aXWɶ,u=iJwI!Ml1~8.9L1[;7BZX~|,	Y3%
9 < pJz˦JJᘜWF+mm[h'vq:":,b\K5HR1MCfWG{asܴXBoV>- D@@7`pjW%kGQfeqsCWI?qQ?GV1ZylcnںDbv!
ng&vh"GJp 1eGL3v'qCUYO9;1bVZRaeYī7n\KՈՙЁR< H:Pl|6|U%_Ǐ#դ"#P2֔a?Yow:}~t]XW&?GD@#;?(CES-YQ}	HtSqy^]ɱ_E%E{|B~^5J^r%TC @;hC C= *(4I\[F.Mu:uj,Z-OSTFOI{"Ge ]c[o|1D$$@9-೩2a]HYզQ!VxAp
Z}wՖ*-SiƋPa݋@=PS,6Z!".HX"fE#^"TE&{)^՗C8`5JH0' (t9!.l\X.*"\ jy}sO^Baq}G5;R>M|\\?hC=lB?rTm<NWqӚ0WF>+E
cQ5z_CCKa*"AfO0S@VA/WFHKM~˸MSpO&U5>RdΈEBz,1`AX pA2edI;B"zpJ<N%<Y$%PmKaNaE_.bތG@dD?|AVd
JgabȠH(1%*Mi.F\TFʗfIR`A7>%ntK]ЃVC$(F1\}^fJ#tXE	cLeȕ`鉅1dkyGBO&Z^P$	SŠHFT&5?fVRa~F5Q&%HJ.#@^6aT!$(M_a˙gS:}ĥt$=B;1'cJqsQűVhV$N˰t
(Ja)  nMd
V(X?DبgZm]q(@QN_v_ͩjZ:
yiQZ~8$?g)f>&a!laE˔:'@"q<^-l&UvT2.  `<cF̢*h}6$qNht(Y4kȶΙ\eBi%IP=@ D?L@¤ƫJ牥6 A"5&E|I&H؝DlH-l~@*iT?xE$$?H  M^,eyk$?hB  3,E. viިx*Nǒ_MW`Y`^_ֺ$!?SpBت
]md}elE`Pnޟr(`-N$ ACʱdբJ"C85>8>.ZWGOUizlܮ.N ʄ;@o5 @L@պFWzSTCg(>FҞƒwZy7ơ븪L$=SPE͈/llCI?MAnGm-/6lTfj
զRR5=pF+_7 @ph-	ZbQV0}_-'Mf.(K?gb=4+
A>0bKZq)&
N(1BNP,B8` s^fq3mlP ,2@*:~#f$-Z{qn0jCx5(?L3q+_PjsC*?;2GT VR'$a1ϑ70!ly&0kt%O+AlC1Vj7s<V=.KB^U]./bS<-iV	'0?t1(6EpD^ՙBF<`H
T1=^2 +X)%Hs4tN'4@o2HXYɉt11'uyg0֓0bC6Ed)5(a4&4[u'do
pgy)xR]1Qog(UXpf|,=?cF6/t=A܃bNfDMi3<?F>FEriEIKS?6V'-Pâ&ꋄ	iA!r-ėLr_;&Et-]I+>_LxH= @	H{ƀ7k	$}ޢИ;(f5~2's^CtMPBxjn	d48q9t @$ @"1W7{AiWwN`Z?4Yms7y7aB(VC7;wމ{v6>w]թ|mV?H2J㶘[㺹OHlmb7r1fMs/5hy87GxD 824 5WXad٦
VmRJys%S6‰M5 $DVzjz4mwi%, :6d*w:H`,l^7yM:f.yׯ#ș+n7atRu^; C06J_xt!\I& G69$2tyȬiK|..?%Ⱥ.:Ǜ	St9yEjy¿<.§s+S;OF(5:8<Cv=A8|um32O
67N53:6  A-4K`5#}nzNg!f;>C| *?Gz#>I=6\?dEIN$=x{.yjRmݒ`L5{ECm=o' ~=4K$FfM}]`Sf?@v&TaCC"D1fԸcG#*$J6 $Ê	Gve͖lHs΋<{/OT4?1M^u̚C2Ȭkƕ[ķsiBa$%V~toU]0T}Eav	ô.P2W<2vm۶Mm3kz8';<~hsu32$	?I }{n{J?j-jURcʟ{h9,
3ʿfs6,I[;ڪAqiJ+îB)˪n Dq̿Dz	$Ō b pB RJ2оFPRE0ɔ@	"DSK0$@-R=A"{0IMO,Q|GIT^TjXGq6hg;tS?ǎ#hا4ȢKUҢ<Q}]!օlZ5Wx3ZOHsVڄ&IoSC-GMح0hІT^ JnwI p"M^ouԻ4LBMe&HϠ1qA߫d,p%,7Jظ!Nn@YÉQgRjTcSL_ib^ԟvJh|AZ!W5k딕0suXM*:n Lnpd4!1UؘY,;jJL[R4}e\t=#d>;C[cna-в3ny7l	G;

B|a}Nfso:۱Y:8|a"1g#|oprwfCw,0 -d"Ȁ P-.8sEVY}@==iH<.P(n-=Fm$£d:a²bʩ{V4A(k:tUqz|hmς^A(B~\cȨ05j;"B(=l8`mKzEƩl@C]̘?5ɇc^FJBѐ.fۗIpyCi! ? PB
%CNh
DT8YɑSjP<T(H:փ jyC+~KSOYD0^M!0#hSe?⨬T$tG<Esthox2|6ٟ4r_ 9`ɣ-G4tIJP\FhĒahtQ'*C-?t0SRc@JvPt(EX2r]I$j(FV EMzhK'ӥҴl]3%:0
DO>zP-[$S*SA;H#ypa!c1 ={=tl92k,،afd4ֳm?aTT
҄82nqnֶe"5¬nU+ҼDTf {ϑVKqweֵ:|QT\@r+Vׄ]+fT^{FVX:pXtv~Al/ĨX`>N.5-+dUW*ʼ5e,%F@$
CnVwbxɑM17]&vmXvܴ){h]@֘^\-;
\:CQFxSƑ=st!3)X(Y;h
+ܵC`ieBZ
J#
wm3]zD#.o[ ܑ
LZlq:pu}yorf?g`ad{էtLs){BvmnKg[Ŧy?4$][ݶR{W9v]p#dT(@4fڦwER[0̸<eB*8S\ @V;7}-ܗ7yf_;w:?mpcp4LչtAмo7'Sgͥ*}B9[hp,=þ¬TKEZ6u6G##m5k+mx>bIU㽼cc?<Qy+shfi
=66pCAHwӑh&~>GT(2<Mn@<qb10?}}XKkw	9[
XK(K 
E:-ϤX1Dum<Ofh/VJ'ȾXx&~E&PNRpą0Zl&Gy	M.>dGj/URsDc
)-Kp/`.epOm$+6)NbcBDf*}Ǭ6ƭNMC
0&h+(pjGApঐI,MP1NQOedZK .1eekPk|ߌ1 PS~1#jr"1-W.{d\!)C
]iQ#E$1"r$i}P"5Ť,VPjr($kzbp(rMN#j1搆H +Q%r,91Z'Ԟ-2.p;m%&%jU2%ULr,rR0{#/r1'!MR
]4,s&3K 3%.1K2MSDr'/eedSgS*R)21#e7#7θnPj2K*q/5^NFS7{3;:O$! r3y^6Q18(ۦ/Q11٦<<s-i9w&6S7-4K Bjs04G4C+qV/?$M 97nbLB4GT`31f?ЂJTJIsqH˪KB}t$?LLHE"3L+JNtA@-O3INO%y(q/KmpBiItEJGA QRB+LS15:UQs/TM:CTL/KATTQ^V[Q_Js6u4M!=ϝشtXmE`YWVq5XUu[u[T\qR#fB[|-Q^5³QV5_uLmkU\5	`o5ܒ5aQ0	YxboSZ1vIm.6)a?VgB3EWdoeOv`"_fItPPW=fnc-+}v\g}1eMih)2hk[Ymb&Kvjyevk5vhVFkaNkUlliVF%m6n]kGQVn6ovWWloo.npF?pWag6Fwq4lMq!7v6Grro4/<9sgkEI7uUuAtCutYVM6v;f3v!-ts;uWޕigwioaxxwwQ7yHyS0z׉ws99w{cxu:g|f ! x   ,
  t    	8.7*:
070-424 Y p
1W2o/Y+p23W53oIr5FX7HsU	Q-R5S21jj2y's73RIY7WQ0qfAm+Sp(gSF
PM3nEoI2MMLTVtKgYNkrrQIuMnqjTmni , =-5NUbj4U3Q6m*ut/{Q8f?PLVZQnXkqLb^oqkmZklpw~tpl|31UKrpq{JS_o{egoyy{yzŖ|ȣ1;4:P?aEXHZ[U5ec5]_"cqd g7r s8f"v"v;LSPejNlouSsit}yxՁ{淈6RnVrLRVG[Yg[o^eȐ6ʘRȘjǣ]ȧbĨx˺gýwӫeլvشhڷz^opruɋׅ裗ѭЯΚԧŌζחǨܭţֹ˹׹Ǽئ̽ɴ̺潊㿓ǿǚ̱В̦ϲէӶϥ٧۴ 	H*\ȰÇ#JHŋ3joǏ CIɓ(S\ɲ˗;ʄI͛8sɳϟ;JѣH*]JPLJJիXjʵׯ`ÊKٳh:]۷pʥuݻx->fݾ+0ɵN+^</ǐ#Kxe2_̹ϠC.Xy4clM^ݲ4װc&=۰ڸs+JXľ7{xƓ.<-pͣǾ-Iyc7K}ݿW^AO2O/׿/ r_Cs&V*FV|va$D3ۉ*THA4b5@,֨C(ceD&ލF9!-
	Z%%\vyG[r^YRTflbsknIVCmfyZwKg|hPzҡ8Hg8?zD*H));ʁ1c
T|:)%ZCjJ=;縚:5jZFuS`I@mDmk̦80H 
{
*Ħ$iSd=:$-!o7[DJ,jOT$Vxl*'W Ƒ?-g;)8Փ@n0ͿCg`Mo%&X $?DFZj-7Yg +^Wh?tDƞPPՉ4A?{si#(q zumos@ؐB!#Y/uk^z P8K	I+C`OT(~O&~OݳA/ȁMQB/kDjA0&΀PnrR.	'Lk#+/Vxl#5纣h 	h? EDM@12Kjr՝{dM(vQuP[]@
 <<G=	ރ:#
h8ZB&a= c ` ;zXÃ\c L8 Fcɠl}/`lFⰬ=r?T݁ 5@ ڈ[1D;8Ax`$  Ô 8)@A@O/"RU2UNPa9ަ4꥙&bPIP") @ME6R, #=
PM~2;e1YrS1"炾W(1ҍc)N.ZH6|
TI"й;V%_@ƃ2MqeM  G
D)"0cA5/CfY!.tc?tJ `X$pt]3D(W{@ _hBiL+3;TOZ6Ea5$xɐ	di
GwT@B08Hx]!rI6R!e* gA6Z%de6ԫ\b(Gۃm %5,<o  ﶀ%o
V*xӼ Ԑ*8jnMS:+܃;ŮІ;P;80p#Ȅ(P	zm~{H|50&/!_5X:m0xYb=Mȗv^pK6@XJF	'fV5r׍"+_.M,O	ZYd0&X7\/f1ys.4⺒vlb?v8
c%)`gڨf|!+ZrI܁+
$;	djomvЫful.\JBt,vԘܤ]ms>r׭vd;>	.=Ew6@اRG
@de$`np
!$Q
oFvē-Ⅷ))ÝJ?^x/xk;6O(N=H7U_pFr"27rvkkLxmd+L{Zp@%"uңU`E8vE5sayk\ᨆ	- <_g =d4zKZrwngf{iJ*{gRqH\<7ɰgMT_҇wMTk_Q^Dj& x8Pr$Ek_Oڛ
}'KS`ee>:/|$zJ}7v{Tp =0 4B 0axxr0gֆ31w}4w{x7y8xdSVG4 	+h	T_C+1B#6h>؅0϶!UTT>  IېKp K2ȅix:Zhs;w3ׇ_q .qo*#	I PY0`:p]FyXbVXj'G}gGZo'T
z3;p YsR=A&"5z{[?Hpz?+r
q?!		XuM4TH.kws<6h](#{C<|t@?k0n8
·Th('^EuYHh9،h{(V-އVE`Y3p ",mp0x9BYxw	1xqAqdFdyC3zb7A  3$r~hj'{؃}p}1	  6+xz;)u:fY^=WWCp8H&AЙ@o 6qBy;IKTUqJÎhlaa֖gI%Q9 d#	
4,pF6A0 [ 	;^|r_ʸ{:3Y
b,N 	&`
?Z2GajyYڛxQw
4t_CxPY	YpKڠ>yiAJj >0I ~8q@-) C(*iY	oz()ʑ,
v8:z !P,(Pdi`DXHG6y-ew3ڊ+
vZQ O Ft rh{:SjRZ;jI@-  Y~jrZ!Jܐ#-8iWRymWګXڭ|XpZX	
)AT	CX 	hzY
کjJ왬AJy
H	Lz2prWj7sʧ*Y*ѥA6bYsRP
"}e21%^X	:P+R49D7J<~B DQ K-eUBÊ9	S&v 1?jʰ`nIMqʰ{;{0  ~sV4}GA 
$0IJo:Y `:C۴-Ѫt`*F@D0@zU΂张}U*qq\kT@' jڐ7"	0uWtۯ#k˼֐"	WBh<V0Sظ+uKK2K3˷!ܞ'Ѓ/ H [N
 	0#i6\_}ZdCÛk
;;#[[q,3t@ tCWm++~-a\1JSh
"|s
u+@A	38	 dm)ffiR+lĩ	\-<	Jg-1$._PCn̲NK\e<ȷlP̩rƬA	Z p_5,Qq8PQR@Í|}ƻ\݃;Ll˰'8j22da8s|˸LL</+";ҝ칝YQ :l*k7+T -a_,u,ԺLȊр0sL;P
wL  	39)c`:m,Esԛm8F
qy-{}q~FDͰU
ұs0&H9 1X!AENΑ=Ԡ-Xx|B׫MD"A3s4Z!ܵLHٵ<"a͏
m=ܐڷ
@=`a cv _ /<]@M#&竩p]ڞG9Z@P, Љc	@cl36rg;pMAj0E-塝*@ :ݿ
`	.<_mKMlmbK,]_P	@	@欝Ty/0P0T	p
c=N>J~j:-ޙpޙz{P@Cg_Ak	)tpH K+7}!~Kk|H^B}9>	ޙIN~s[v z }   + e0#)Qq^;}Nd^s3=;
u원	^BHP;_ m uRp`}BPFP@K-[1dF=D_p p;7fc]eB/B _0q#Paboc之N,߶q?'NC":l	<钸9	ज़p5ˣ:[, p	@ty)ԃ3 ,p! o(@ܦN쏹=/6_om{?
"X0T%Q3Р%uNE5nǌP˭K1eΤY͘RTn;se!(8/2i*^ˇ1T//׍`/BUYh%ۍpfnǺiUJV2Ff)Xb4D.^h`J (d 5KFE	(%m,mfkY(	}\I`XfXU֌WV(6W#(7E[k]mvRج2ErAO.Yj#3nB3i	h?#phm؇Xk#n4BDNGq1
-jB߲Q닣hGQqO?OE61(2 L?16:'+Q jzLpK6tn*z0qϨ4ŭR,qŮ^iQQ&(R`qcD
{MĠJ*{3I5 *p 炤ZuW7K+{&`% Ũ|jBQet[nuv-"[p[Lt"T?J!
:+cu\)7aaA'G܆%IhQY 1+gj34Je;maJ}y#uTw#TS,	Jۗ'b)-C}2`i
g/ͨ/l 'd9VϒK&C.QtUY[^s6E^eV27 f< 0cL2A4z)8Kg6lcQopٞiֹH{nɞhu[s9M6<6/&FВǞ	ǣK/}!A##b9͞)m/msu[>܅TWa*KE4J0o1Z*\6 p=?C^Vgn=L{'I$2F)ˈ5XB	󾭜$ZdGdK⹖-+]DРeBEA$H~E8/b;`dю4DD$4nȱUDBų^"( FlrVDѮ0Yb@yQQT7^DE0CH Rq4?BC T@q@@;р}X#bfFIJbt"JDф&~ 9C=Jw<"LR&ز#D@D*䘞l^1|8z=5w ? &D3jF="NJ@!VЈ)"`Dp$bΰ%Dԣ<ܱp;[Fu!!fHH4*Do~ 6!ZCi|6p0b2 $qݨڑ5&m  J2bm)+ԡEEcQhKOAIDB*Q`)h%(Pjz?XHh|ZM$(F*W#
# g$	zsP$ɴ	Vg)B	Oep>h@b@C3kZf["ƺڡhl-Zp#ĭSFEzUqe:6Hd	/ܚ 
u1TDtV^{<ݏH,(IQ]A3I_P~$dY2?Bq*8Z'/2h#[ِ&]!lCK5`rc |6Z,4)nЃ%h(|ԕO9Nn!j5M,Eyvîz\I_/您?R$7	co.ܜ[)CB9@'8Iu;:7ݠaCP:#4mv Hw!uZ!NC˄[Y]X\PY>JTA;J!euQ~r#91F
|Ocmd>b @( 
мugy6nSZ}s!h?}nKc8?8nN[ ؏j( p?Dq!dcEo~gN2Rh?#&ywÍhuN9['ݑg~,[zKm% `x5W:_;kw~G1&bHrˀL6ɻk\]U]̞'.q^zsB$r5VzĻGC*&7'@΂	[ JB">E3644K	?J="C40YP3p؆r	@?IfS"WeX>@k>x\IA;+t4@$0l8iȶ[O3=Q	e@]2=րԕ<<5{CWpQH2(t@I6@<	bE{K C~XM83;=4Ķ$1X=	؇_Y؆`L@1p9:Y뻓H 'iA:K\Ƌ,/>OP\+Z~bT8*LC*ڴW:/6D~
Q-uz {XaʹADJrH$pH\w`DĜD!vzjE:s\,0W6,A`?,Z{ňp  ğ9h3Ͱ_2x9HC!<yeFԈv({.^DzmFkQĈ(rz`DI{C+;DyIH(!Ʉb=8StSЇ1QҠJBBCJR<$fR(WXh߂oiHNoycKxK KX+BwPtW|ӫ9(yG}iUIH\( eP3 VCQd"EɋܦSȍ،(qR˵}PMFy2ħԸ<C`N彩Vl6tj Hh[Ȑp(hF(&J(_ 9+BM7?dDͺ5bD[ˈ}HQxnPwuK͙bqБoo,E匆57$EQ̳[[5x@%HzQm3H!POd[:"X؇WMoq0|PD=PHtӛ8bd	Ch[+z.=Dp<63%È?mQ1	c	AjjH0 )/L#(R6AR"',Q3ڇ\PUVRlB]1A*ة<:S5%Vb˞1GF 54iMQw\wj0xhj<W"XN}	O{	ueDSU]qp!YF髾lA&kASt)({X,PX)!G;<UX?Ìb3 (o
ő2Ye4QU`W+$e%}o pq|RWy:\YYKjCt2Efu95N֞iK01mwh+z#  csZ׀+De'_PUr`ܠ-ҤM\\t_	yQNUܲnݴ5j3ӌnu}/ W@޸<\om&ޘȇW`m"U=ڇ-ePg\`D3}E(6SVڀ] p!(p!2PH;]hާYj`!Pn,sPqw u0Uia})saղ&,s !ў8N0ۚhY2EzM P+AsX|
\`y5<
4~r(uaxF	1pHQ@AF-;ݘ!b,qdY ?j`LqeМZ#eS6M/
SፀeZ\^}
/fb`cUP$e~	F8vCE2FN?$8~m>nT35OPnHycg!-RӌuX[協U{6WU#D}se|xek
uf~anЅ~A~~PWdT%IG>|p5n݋'pи>	۰i6F|.f@	9QsXަhJywjNqB軐)ǉPInKE^NvB&i/3}zb~膪@Hjs%Ҧj8*w`ꗒY'@jʮ&w`n4rPWw~P25mw8DoZ} =&f[k˸ψkW(mΎυAhcz`m  'pvn/f tX@
N<Cp5jnjr.n.~n!moTW(߼P#@PpgɺΈ{~C ԕȄp6>
cV*v\S'RrhNFxCt%m-+rrJkL9B vrLzPJ^/P pp	 h6wn؈Uӭs̳W\^Y-Cwwn#tp,*(AO pHoRI0i$(vrM8kNrkmvX|^xcra쮉%={;!hgh
RVcFf|ⶎfw%GxG:uqDi8z  bOB^u:?Yqx|WxŇ4B~HoXKcGFN"Vzm(4ge(m>($@yqE]Q 3\܁	pgO' WhzVV"8aLrdpoutwE$)F[wSp'y|PG͋yI5F~oc4\nη{;//cFԯ~c3tb~kC	,X0!DU
a%D>hŌ1gP !ڤBL}B!9&IeFMz6(ҤJ2mt)>
5*ARZ+ذJՏe}vlRuz1bn!Ew+rCk;uܾ'_IOV̚7KZ̅jj8C	tFeBzB$榋?b&ʗE+*h?L+9@ӷsL)Y|ogmyc_ѽk^IE_<w{nqvV@8\w*UG9rh&QIjyF7EQ0bH'1)R4tE,pEl4j䏃AvV!܂BV]%$Q>ZgF%xd}+C |{B>b;A e$XJHuPE4QF BbF)G$*m8GM3:5D|7{zTgERgAw$v[+VmiYGa髖p1%]u)]U߯C9'?-W^IB:dQBMT< J(baR!D4|"PT&mMj[G2|1U^iYmu{!T(θVbҊ#NcF+OO>1ƞy"P&|Ejȑ;ItXC!1#Y(5A"Rhs~ms:@@rcQ*ӗ
z#}Tl-S[τRCrFxT4yx#HX>ڴ<>jSVU|u3O>twZMr4×x	nx^Bym#Xn/ MY>T)P&z8:馏Ĉ+IF"#K+Ho5G򾲠M,;̓$];P+4Eo
;^1
E>BWG1y?qʔI@4B%BCVÔ!%=Z\:A,7]?E$(	5c*F|-!B<*8T؃p1
o (AV)@M͈\HDh*HZǈF@D{HyJJ#wh˻ō|KJ
2)9юWE/(?43Ll!
-BiyTIMگ{DIFB hূEvQp(n6r.i
ZUgTR,2K\ިK}PݺG({4Y 4KGBUVFd"Nj$c":k4d*jpS#jUS!Hjƀy|C,[zǂ<Y!R1NL($ LW`:U-D==68%'9%H"H	y5د^cCmH
bZM$.!VǬkQYIBѣkv"/X @M@YP?t!iI+.L)((q-BZ!FSF7Q4(@5D23RP4.w^ZWnl1ߒeFz\@$dڋ'UW⣺L L<dD&P5~ rJO/*%!M,7BO)(H_wSŚe{ݜQuTN
u;Cd}c_F4C*Q_s!OlYt:SϠ!(&C-&`*+4ܶ<1Zۓrti0tdX0iS>M^&A\\,b.a"z%83Ɠ%iPlv47;Z[-]VQ6Uޫv!aᦀlGqlGzTq1egdt2q6&=Q4}5ᶇ,4 ׺ոajՕݭx4([7|Ǳ)cVar?!R_C`ÕBC48'ʙ+DfG;b#D9ll5W&V}ruK#f䃢C:"ꦴգhima;-\ϧŞ3-؄y3]v8jlEzC\]SrMyG
߇zxdt6
WGA
8~t|`LdM,Ibfo.ntl\g
:uڽf\(|ҧ_45|-ՊWA̨hxXߔ|ܚR0>C}ǵ@!	_aD~tH}I^+9 >7ٝtHRQO۹CpDD
9!MÀvͱ.eVIf,niR}G_A@x	[^RUܘ|	
"u>(EP@W,"WeU-mRf!u>8Ʉ>L6XT>da@ (5˜u)x6	XԐܸy[ST)
Wu +uى1Ge8EF}:R/@umFC>#*(*P\+6>CZ$W:dR,	!=-З(E`EbWeU!>.e=XZ-՛p)CɡX6)HaME	Z*e4ꕴecIJH[zX9"L&2H%LtuW
	e$fC=T <R2%iR!T֛
W%kUbeAX>/#>PaCd]v|%h:& b"*",ᚍHzK*tJb\u&!t55`r+xC:,Lz5EaQnx)KOjwpNrd?Cόfi#"@,EYЪiYfV*B"nI1gFqc*Bܥ,z}$gw
&#AH7TeĤXV!d"P(;*gИ}6T=|6ghj!YɗyET&m*C}E2J1JY?t6F#%sH$Li]z&E мh!LdRUzV)*nja0Ŧlڮ)iND&oYҘX'RŮ	t%5V%t^gaQ2A U#PKnN4]nj<[Dv&LZQ*\P./)/)BzG8< b&HiAi+!eB8+"Ǝ;ZcSk,I(^
z[ڃ,C9BB2@D*zڰ*#o\2pn槭1.dhK  YBfB>9f~v,X_~r荗TblZ5Ғق)nJН\|Qzl6Ql41LV
;XMcnV#CiYZ|E*Ү)Xn"5ƨV.:$x\y.DXމY-LԆ.nU.2G	M8TEKGD0LgUl֭.h	zyl=cAhq\ܞ؆㽞j]X8cْ/
L!N_[ .Gj/^}U'~YDhnn	ӞY>K V~++>qo-wi0amm> 8Ox-Rd@["C/<)$HCP`#(VO#R^-1 1-ѿ>~~ϒ:B>TC>E-Er.k{E9_dEã=AR|z&V*_պ2vpp-srZݪZT PYB;xn1/h29%gmH0Ng=D)r,J06WR,4X-,lr +aUi=l+FܽRo3N>,hX?onqtYCA _;$s!ꆾ0"oTZb#պs"6'7|sHqΧo+aL4p`sN[>
bPJ*F}] Eiiwl"EZ3R'VflT%'H2Z,D-#L(7C<tBK߮gVi\o~tU]o`jnD`[_PC vg;,4Y*FKVV'2ǝְF;k!βS/X#H+ON#'!D/=6,߬f-n\MUvkZUux$FbVD]r#sva:vv$s;kލ6B<GCCFx?\݃K7xoV_ 
 r_eխ}*_hs5 V/غrw#CV+qEhA&64Dd¢48B2vkkm=>܀S4y/EGcf*7DƣDX^lKg#e)z?i_t"C<DC#C\+%'LyƐCt0zpwY Gb{;YBdfk	Br\YG,%xEB%64}tlrkހIi/5O{	PX3Qy	cs?6dcdg0ޱx%<W+y!BE۸KӶ<,;~ݬc-?/pmR_bDRGG]uնuH򑺲PPlzC*e#Co-$"{mBrY]a"RlơbZLoW!kK3Ӿ͋VxxAtH#-!,vrT>伳S$;B=޳Ŗ=O	
*]YrYSO`W%~v3;q_܈++\&?8ؕ["84~u<˲܇z: e->8w> gHxG/1D<$xaA[XVa-vhH=yR#B#!OfJ)7OC8qAI6ujTSVz|ܺWOV-|֕>|?}oě?YpPz1U}2Wӕsth#B:
Cū74ӳi׶}wngo5X~msw2e{sO<2T1R &'2ޢC*;|i_m12<#
$AQ|kuĲ':t:Χ+(n0zj.DAUmF\nFK
H*dlKul+C4N}<lD=Jt2#	H9({Ѱ׮R.c3@9G m)%hP*+5ݔNw.E*s+՜>DϟNlR94BS2z<եM%O'AQ"h[m^dR[p\O9RTQ˷(\J-.5<W.N ˺[H ht`hӡ0v5	$"(Bqa%oH[t\\תb9t};F58]9mVBmb~\Ma	'Jl/L"[h@f(DY`nze_V:۾T4݄pAķ.Un8ƕLT%v{Goa$F&"3[$Em$WǻDsnVnm&.Ա0GÇM_CZz!cw/2v	R!qԝўe>)oQ<=qMˡ@f􌃪
A#"=愤C	]r{ֺS:2:6Rr?iH $fcPf˵HL^f<G@>0f[qrr~Q,H>1o^r3"Io/uN	m`TbĤӨ2 c,ȦЂ;VSOIK\M3Bb(zﰘ+1 OyRұY_@ť1r.]oTB<{	MzN㞀)at_\->aǎK[,>1ăDE0ġdR&sصNF4w(VCZ;TjqW9K@˳JVQK"d=@+cǏS?q'M&7mN:$E!B e&-YT֣|ERWrԢN)TЅn,hVS"ͪXkSQK);3CEfzhE"RVPO7 #	X'Z?3JHTXMQJYx~v]jT
U"*V*.Ҷ68bEk3y%wh7-f	4`NdIUDhB fJLwjV'xD@u,7quX)=p+ZcBz[%wnPeQ'"uO8{MvX)Q?bʸ?ԣUfkJ(\UYŪ"PX*mz7eX0VEm\8ZA8%nbaWlbXT[Bl\RwBQN8J@"&pGIujƺbo vC]Ӷ1|kd7xs[(룓YՅdurz"0$HL#e<R	EZ*;cg>Ϟ
tiW`*kL%zAt^j2(MapKBAT/+"ÚZ AaU#3"˶ٲr=2;_ޱ77ڀf;*3fDmvn-oH#
3<qn۴uE'8GVYbRbxq	[t1hwN3nϫL^n Ÿf)Vɞh Tx[CJ-.gYIST|MO:jmdOftజ[qH\B>Z7Pk~WsֹAĥl!UQhyʃZ35E|T^gR?G{nc2C"Zg\-pO%1Tn!a.%e*S.Cܚ'Cԡx#CNF3*
o!- /;B4 nh#PM.	L&7Le,D,
]ʭAB}1ǤgHf}>,p*a'x)A>CHU$P"JXɏ\B$Ҭnp*	?2ba*2QN$2(B AAk!KJqw
1TQp<Pp)O<F$q9/"d)1xR`mKgED k*(`,LA!|#f	yaQ"AH-"܏$
R,B`C$i&:füL#A:$5B414bqHh1|-y:dcҡJ(G
b\kԴ!m{f""N>%*Fh3Q'pNњ#N26,Y#dPdR.&+₞2-C'^:R!D(\gmm_[Ʀ"c	gNNRHTR"`c(\RR6.7҂p7ժL(sC
:Bl**H&RĴ('"8"gR>B,#4"2R,Ql`s6">DLGLN+֥7k+;l$
h/L$+Z0D8ޢ=2&E%N:N'Tb\rFL<F,) X"a~icbe`>{	}c'K:Whb iA9BM0gx/R)B&L>F4"oL,%4Sr=+B,5$	\Gthkri.ĎHL*QD8dA_QfnM! %K!Д1ȴ*SMa5-"FbTFg4&pO @OKb^O[ROd9Hn]T	u(?5GtDr h"20BME:FSִ-u"Ϡ!T4,`y57WM2Fl*!Ɓ@Z !"!
lX4Y=n\dKx3?sI p^#D9u{FB-:8OVl0"`S],)I[a~iUc{Xò:W4l#aqu`OBmߖmn* @& a      &  `F!J!Y!!aX	`"R6	7)NڶnX+H&gBqUgtz3AP*<@A1qĮR15uKqȑPf!c+o"Wv/.ʩ.61,TWva]4ȫn" tc pf@~A	" `&@  $2
@ } $!t!Vw/"YV+MLwu;M@ld+)Af+tӶCp }Ni&uGHd	9_ʬ\_X12J#LTu{1gq!n-aMab!
 >V8
$Ac@
`"8
 ~@aA  t5 *    `p;*ס'V7
ڰ΃D'Y{C8Lڡ^h|&xY*nP/Lb>Vd2c?L?u^3F移d_ͲaZ:a!yXx} W.`\& %X   |ڤHuAJ4`6ͅr2]`Hv43
l6:8xe!M-$< IchٰS*L`c4m6nW<"& 0V w>`2
ޠA`|	Y@^A !8t &BCDڃA<0ۋJoAOLeHM$#hDm1)6v_c<1>h!<o-k9+4k|m!!a ta.`	y@``@Alc9! J![aؤXDA	LeOҶm>t8EKeqQhC`t2õ^~[$y%G<nNøV~oM `    za<Y `|& c3L.Ocz
	 *=eUsЕjbGHh%FdI|9w4nj!UlIr܉+z 2!
MAo8`<X  , aF+܁  ` .輲Wܺ5,6M'3_>b(=**,#*mX?hj r[h-xP1eRl@)=}y1Rah !%X  ` >Va[``d}qK'0	'ѷlݚ2c/ZYAa}h*|y&9~	! 
A!{8:^
 Ac~#ҕ
ܸB&}cvb"˕MK3XFʧu[;x%r)sdRA}	Y
᫛	P a	הW DAtg>?UPP[+,-4s$ʹ#Rd[ww*K	cXD)i+˖d~ xA!C*;61HK5?F*<h)=@ȡD=4ҥD4R2Z5VXN%/_|
}ZTZ|qTџ[}'f¸;.36hƛ7?*܌W7.c<r==O  7{:ݼ{3*pkب|܊\j9FmnݺsJ,P>Z8WQŧ{_Pa<W.ޤȏ%mZ~}&`A޷Y=RaNHaJS:deaW$sUT?Nu9泎:̙O׭U_EUZJ?ߠGч׃=
_COd8Ҡ}w`aWP K4fffUWj|&rVG&HY+:UCQY1bGD5V&]_-|B1c<(iPd8bu%}6 S)hYTފk!ohFΞr~g>yTlT#sl[׫G^`<_xY)GaV
#E&P4Bf&j*YeH֪k<ᴉ6QI7VE%RN-S7'(Y8lU˝@15Ѝm(&,{RTcYOgo{aڦ^bߒA"LuV;։f}Tþ=,lVφfg]mmu*\YՆc[QT}7Gܑ>$7Î#Ӟ*]R \զn\5ֹTu/u6lmTvm^T>26T(KWNr).Ϧe!8H~ YG`c]n?K~U.18NCs/w+80OqEDeF{SKB8..0ȓAPLSKЧ-AxUk[X*T6@JwRFɉdN;x0NE$~i\EwbH/8oa˧C>z@,dV'DLj'EPJIY(ŲŁrNGdMNFQkZ/EZotxȳ:DVGR	.ˏE*Ґ̼8<]k#=YI0p828J&X2l,K9j͒(/rDH=Α>YOZ2W*#qn],LFfJ4W_"IMauEMH4	TseQ+<*vbI@JRċU.~>J~Ң2WY>'UjN	^ќ}|qy˫;{uyZrlpGGf)DS*@
Z+9QfCSUfuk#QjXGrDn$kC48x3YV2Ċ_sݞՐW	,.E5gD=K5CS?L	D--HHf`3ͫMJv$2^Wu5mJJV$)IR0qJI[{>(IK
,yɥ@riDxDJMdzWœ+"YMtv)?rԑuBJ2%>8gN
E"!iHG|t5ʪҡ2ASk#0g/mܑ==iU&F YP!yv-6e,u<A*7ˊs8:#m=զ+0Ie.ɧfh[/ig@x35aEI!tbX	hin!*CGE#_ E_<=v+#1aߦј)^rK˧e/bYF]4SlyFZWh˳-o+^m(ێ_6ؐ	OLY7Ը >宪DqTk]À{;P{YϘ4fFp0fS݊S@z}&rwؙuF)N-Ągnx ]7giC$[hnqnsc(H*ojK IdNeWQu5~ABz{ "AŎ1KV IrO}餱<#n"ͩmGj\[F=@ýxd辵 x8Lc|19xtnIm6q];zV5(%?A 2'%EC~<*.RDء7r$oPsef%'p|ctgȖg}rSSw"}NRD- Dvߗ\rF8ԳD-\jSE|"0/2D*&eBGkfe^
7~Q(MmhtA2STdVSHAv8s[nq#m8wdņ9z:Sj-`SV6G(j]#`9EDKns>(|5w&}17(N62eINq]'a ;vPFbewL)DH1`%3?a7BY54hmmtIFgVstvJ(y)8n1wCyփw35FG=Gt蓄tQ}#AIvܖ@y&Q=ƍN\WqYtA4+$).7|~7VKFȸ`o2/$bǐ))|vsH%Zy@zՕmIiKс_t-E5'nƖ善!3Kv9BE"f54&֌"Hx::y"VJ]WqMMG撺%(~Lwojȝ8x嗃ea fC87KN?pHd8(y#b~c0E@7'Xvoey9&h9V;7z{)TBtʛilѴUe!h#IDFF'Zc0YeHs~*$?EV \Q'y\Si%xywj6y[:g)Z!ƹZ96"̹ȒtՍh)&FU7ՋIrX{I/Ya54X꞉ȥZ	ygJHxvIDȦQңPxjF0I*	oMRR{rTh]#Z|h*p*tV9!cIp,.ǖ6z8¦7gKfX93pXI&<9dLQoJCa]L:
W*^WL
#Щ<hud(#й))m0C=Zڧ<6fs]* 
U&C!){ZuƄFtz"2#Gd̩I'ӁÉ6(@Jf3ʑnЗ%tz.+-`3#x딟I2 _鍞m8"H3A	%۝ڏp@rwG$!t/vM5fNcI'CVvZ4ˁybe
#'(GRvYC~hb?zb
f_JZtiڽSAjeuOu?crKmˤ+ r#*15#Y"]W%YbUx:7m c'~K x[园v2S)컎8t!i̶:+3$MSr:q&l5Q6H)DUD%Q^zn)Zm().Y7<VI8lL3m&kqBE!j$W2&ZLmqҊx۱uHE;N!̺Civx$sV$7v܏VK^BI]P{qxjbV(^3vDK?t++M9{ú]7ʝTjhXSµD8ruÖAÔC*CpW|	\xWlC1ݬX<WF+#l_Jmvʑ2Hr[wuj=8H3ܕǆmkʌEdv
],ˡ,#\r*g-ٳɕU
Q2-HX/2649E%p0f
4e|t)dK	pB-ɏx΄D}l@ɞh>&:<!	ˢ>߲ʯGfؒG9g>OH:.CBd
9d~-|]~b	z^AV|؈mybE|s(iKzaE(٫'2ΓǮrlm}'<OCwTu޼1+Ԃ0|0)vpMkhQ S)Km2YS}?2]ݷXHrBGw"|D1"lύ==,z)x`Z%䈠+l[Z۠4&y_ފΚWAL%Gث=HtwH0VhM@hkCJ)i8HXis$v.AL#N9qym[5)2+Hag\qXkI-Fn73d4HHI^s>qJ޸!w6z9ԫNԞ>Ql̓c,(?1Knpz!tO~-?ܿ6[lE彲|K>|=lbd~:YJX2ZTX.A̣`p[#SҸrjY.U#W8ir᪝Z>Ɍ
x~9=LPΠ#ש="OlHmi$HQ	2aBڪϒbve8_4+~v5[rŤ	JdD\jzEsL mgAz)95ex|LGLgσմO?amq2pn#`_{A6po3(JeAf[p1m'kv宅?U O@$hA|>}RhQbF<VO@#5O_JIY5mzΑ)iR#ϟ*	HtɈU*e*@SUŪϪx]R/Z#PeB"ժۺbU|VOVUmX}*|9eC~FXq,XbYZhv+7yd#D͛Oډyy'ڵ{(v)j⸹5^ݣ#:d,!r6gm]s0|ea7.z!O~|ָ/찛uί)HIXkm&n(ap
GGD)>tr+B9ƻGj |$(-I$gCCLvN;Iҳ\"-%"
̣)<0㇫yhX(_ZḓQ+G({ %5SOҾ%7Tc/3,L<SJd7Ybyv),5"MZIUP;4{T ғ.枕:DA!dѷ e KҨtSwAwU}chHW1U0~b2TS*W2qW?JXj`5'(B!*y}cEQ%$Fr\n9ݶХGTSy:zM"
졕ǰ4cxv:Vb))Kv[Hآ	{Ndjݱ*FP)7;snbS'G,|/5]u#J/}%wIWEHmhiu(`
]>=g\HĪ~[#C7j\31Gu) wWTWzM3@xZH^]'~}%,+
Q?NXzк"}-.[Wu#[Be)K#ҋ~9|#̜z*rVg)_ܔ;jZG.<Q*fdZכb1*GxdtCDad^%`s=A*SR_6wĨ'zpI6M Lb""nC	@(bLWKoY٢rmG	"p#ˇ8G"%dFBx/ץj8?R')!Aj(bbTP$F1m!7܋qVtQYLzJ;e_H#?tŐ0MXhar˚Y1ڔdCDny(MI~sU4uB-PZ:KpJi#WK(zРsB[
UøtU:g¤!cf);cz)JhJ-cLJeAhť$UQR"D#rj5j)P8u0LRáPY"?TSňWVZh4<v0ZjAѪ^²5M>TVnxFy?U	$2oUKB77Hr4q!bK]*ԱRUd	TĜ/|R
2Gr:,Kwyrf״H-+DR<6eeY\%r5I2ƹ4ZFxզ,knfQrj}JղzSVf}?CRWկt`R!ӑ]<NwlRFlQ(lމfZ`HDm[7B/[3n(q||yTEPЀ.̈́$16Y5zwTAp"MYEȭt%keZ"DRCiqdlE3N۔yYDmVt"/4Ujd:fJUɉR5 ֲ蔲iftBBKo
YʪNgK(_unjOwF(UӶB=Jc. ԭB~ֶegmlRm8tȞsK;IىfdvZ+-˪[y{?Lp+8%~tR! #I<uU7aV@	F>$Ѝ;V~%܀>SYA7D@u]؆)b>ůK4&!\InK-Gc ¯αԞ!{?Qgw׽#b~U=!3"5oڗilm1O21W^)6>δJ5ݨHHī}nDV람ﷳaO<[C4;bhȃz61ը	v<λ|Y8$@lw׋3w?㡿5 Oa. 60?!,y@AJv
d̴*6(A3#$Q7S$RA)	3q c6o	!dZ0&9B3(>T+jADBJ6*PvA-\')4ɍAщ'r;P3)c2ي?. W$h9X
_S8F1,`jz&ӈ۰yFB)@jLa+0$;PSsV$THXۑ|5p^FC?lbD),ZqFhՑHdkJ<,|	HD;iv э}B#l,[pQȢQ闧[R#$tiҬj$mDF1,2!GmT70T{W|ףŚ5Gȳ6HS\V)H2H""8Jʎ>,6-ʶR#A:1E(:5Ù9uM7D=K̡K4F8*!e\dN
f 2,	ȕ4ExA;YRMrC;(G},ڣ%9|jH#;ZR(iF3	\Yx$:yCJQQ+I8uKM4s
5LcMx͇Z5]CB@d8#̿&,TYQ&MN]Ղ΍Ps\,2G)*G# QѼ*$?봧 BOAǲCܧ\r8OM;K)ᡯy0$Ґ({;b-kR )U7M
y
ڨM:u;1Ic	DS!+TӋDP%ZђK0Oz:C4q&t͘4/lM˚9N\[.R͜DR"[S%DBU!@XF-k̄iϻJQ:^ҷQ6R9<||-267Foq埥4Ek.\$Rn{}ҏ1ŗ	9"JْU-SmʩQX%hJJ+հ:76	sJR?9HͶUI{3AyZໜ?윢UV=ZA"jʁZZ5Ȕ,zĴ!Kb=~=235E䐥1-FK#a;b\8\=Zպ"MAZDjD]k*
>/Ol;]Z̧%TEUjXlhSe09C*:0E,z>
/yeY$'jAŴ
MLXY`#JkR0L_Jpe;]̝}ͪ
^s\\|NCJ+8`XHF96ρ^%Ӻ@-fӿ`$p5!lڍ!aL%%Er=7!ؘNcDp`/^x܈B D#;6D&vŰ=Y)bZb]1Գ5_1VIԉ6ƾQ;α9܌ؤQ,ANޙ|p@
<EhdYsc.>+,d^^Fc`O>P+yHlB%ڽ?>]8pU\)y\'\*e\Mqa_<g75?0hݓv9;n:@<fMQ&鑕(gx>'')$gDe1Fsےg}Uy5ch~y;YhPhE8ȡ4NJv?%31έzKeP;hYhgjd>E(G@FYT{A<d<~Ԉ]6/]ZjG3=pI4ds1Tkxkx6&J@3J?.̌UePdҶ^~.B,TkȋR^ܵaP@ӕ*dZZQZe~kЫZidr^ܬɖg-zCRd4-csmVp~!8۶"zWPk
5uPn2mnNж:4]lFQPQM>%GpƺksN_*2_C5ˬڒB;QM^Hkh#ncn]S^k$kp&m(+$IcvCro'YqAV緣HsjsoؖX'qhsN"o8C%0@fie:lZ'-쇒N67&>tikO<T7R*+cRu=FW1IO\wW\rqYZ9
c76e_v#ѡ-Fg;
6މ¦󅉴nO)w/u#9xtc7h7	4tם݂Ugbm-
'rDȠ?et9 <YVU4?i53 kb bRbyUYFy]WH|H9UBĭkf~x7YkHb YzFy b'Dy4{mbjOD8H{낐lPE7:|uvxu>LJ'ы1E>6ˏO'cyaߨoz{qg	w[pdIfSt!{ٗ`6:vL~G579V:n]|E*lA|"LO_.\߾1dxE%1%Ȑ+=C2EwCwӡxC[ƛw?iB`B-t+׮^/u,ٲfώYh%w\v=Ew\q`l-Gyz,ԣJ#gz7teDu".Yџ,=dGiov7﫽^V^>F\v|WSWGC	#HMGfp1SٸfB1wĉ~min=uC`r-Ȝ)R\SmۅWs^]8uwquY1HniӊKkCta7w%(4T>pT)!nr!rrfuцYa&ߤ9x)tqwb)թ-O<tQ:g}K^W}A_hU֚cV*&ie]:oD >QKX~V"i7lF)Ӡ(J(D))A6ᮦYpW[op_J묾U*Yʗ v!˯HxHq|-l4i;dNE"j䷧kV<][SO*+2q󾴾*°BX+2?70_]]~"Uc1"B['(wo=*if_}c%`$Г Q	on	Ͻ}/σ׋oifd9H?^ma^Vc㩛Dvi*6Bdv(|6IS@	,4h;Tkq}_MNyOXČ*T/Ԏ)}n Sh# 5&kO7B0LYio{?Yla!\Ilu~NQ0΅u',*b
@? 5z7<&BQY[bvw}%.,@NFQXEBt'Q
YBd>/L_n)tjT F QwW"ΞG^AW$E.iCNFH3&EYR:1
cSv!4a7A_ A"aMRR$tFcjhZnuI #sD0a3PH0sZɜ0aR2')ĉ" v@5hK#>~"q39е0Dc5QȘQE+g"$DAlQ*~ӎ$0X D*NџfLO2( .$gs,W8>TD_(.L-U&Tx6JMIq+C	h=6pDQQpTƬ)[ejMN)peX(KqkEVyQ!CFdGeqgC	\V,ςv+ve}hO׎VPt\2NҽbMܖSyfqOсx՗bh^拏}gCZՅh,b,iXLHT%KooIh0!Nie ?`%V]΅.(+f#._B,
e'(6Z$T(v-=4H(!0)Yjѱn:!-ʠeK6O+%HY-%>$5#[4тk`n7D=8y%s\ 3$5;^`j9Iɓ#V9ɄJ*\ͯ[evD+[I79aq2V ?Nw^lʶ,yf;Z%nI^8I# {iM#{8tkLVQEXAWD1r&v02GU<Bv9KkGJ1j`&;d>pNKuGվx@Gm;!勞_;,-8.C("u,7Cgw	wLe&AbgѰQBQdD0vcڙ5?R4P g 	\BV6˻]vcqBڸAzbP߲jRZC7v:|'̝m(?	C TO{=ͧR C3v7qiROfkJ{${7G1,3raH&9G>ip*h*=mYxkUוQv@l#s)#0$#o3 9_w`-؇;Q}C=}Qz8Rdi-Zᒺy;@_5 @L [	 vT/q(j(`^)9`-RX"W= vTr	&A[lCЃY? ۅRq]Z,EU!T\GWP@[SP݃Ya b!p	5T?p  ⌞`VQ^ݔa-HMr8X2M
bn`CCȓ ؝J}
QzI}XM"D X?,N"tXT5 @(C R0ݠM\D<#6f'?P$b>2r"?XB=?C*d]%Gr$\$2 /#y!Ncݵ
!_N6C2^)$hCN=9JٱU=J=aXzS `Xo51yC7 E
KUNKODIʝ)ϝS'a}b12 +H%c4bLX>6ΕTH3v!%eZeƅE]g,blZ?AQC /EW2$cۃp&/_KDЭȚ(Td;2a}s!%crY_a=?CnBRoӦ+=Wv&sjΠ]=Fc]
cO<HxDT+e QCPgcb+'pm"{~WJD&rО|qgڈ`	FYXЁ Xu6(ɱa'oM5>C#Fg/.VhY_{Z%6(ըK9 T$ @(bebc}h_jX?(We	)ߘB(/UC@MgvdhR*J~(Q2nz.C*){j$tgypF%.*c\[j= Y],CkL&?tz*^ć^IAgXd5bN5x$Dfy¬>ABMA%, @JƶH
x
e9
jSs="Sr(c.gDldc⠅X	6D$qzڍYPJ=g~ҒgjhjL!Z?PBXlx
,@7kXe$Dg}'hVD fӚgZkŁX
BΜef'F=A8$ߍfRQږZz[m䀩T;lCenԂ bmm,D  Њ߶nDe^rr)N?| *?نlnKJ=6(?@Da$_+O`De@T@*&=6X/݃*.6oݔ(  h` .#&}!EJb#+;thKflF%؀C $t݂of~*|6^'**j,	`'́/Zhp險;&[<@pbd.BR8 @)2 ȆqIV3 k/J1-7)I?\%qeW܃(&alj2l02lLoBϮ$XI%/dd#$$;5,.&pH)0[bhb5wb#@ Xj2,F&~]#X	7_eo&#X/Kk[ψ= M ?1*;3c2E5Y%L2 sB"%[?S4B<I&hc?M/Ae"1uIO54>3[YHzhsL{$$CJ<qKP8OG;>`iXmR+8=?T-p. Lc5DXXnXp)ApB*>)$P)	
`̨XUD4^=/A?Β5b+bL)?bG&܀#c=X2eT4ne7WdFF;_4+EPv4iw]$]Hp n82k=?->Aj?2Bv;_I	Bw֦/gpqsy#=8* v#5Xjv`Zwq7EY'x;X hA&=d ,v-8ȭ5qcYG8K/{5$<'7=/5\j#U2*_
vS3Sm/OmM쀊CDKKòa1S'ޘ6S6 A0*$LulSykyw1C=LVC3CNzMrj&wm Q%znUD7@8L<he7?	xkZ= ?ϣC wm>WhMmI#N<>lxzOn:IBw(+ȁ+{C4Re]8~/ NplOpyϨq?a5l;79'佻_çWva@;hK6 e4O;{")Zxz@;%@b<h>4Ce4ʙzsXݚ|f։0<(C@#Ǽ2h#zyoV {>V[':
FΣ}AkFZz+O[p`q8̪#~6l>̒3fG/)5C~k97ecMïuJ{q~_MUW;;rY{=;}#6#9
κ;eO>O&B(`q4ROgK!@`A&TaC!F8bE1fԸcGNO'Qtp"˖%"R%Ù7k.L:ДFy&UiSO9޻@TrgGgRTϋd3DL	jsm܆uo_C7!ؿD0Rq,/Mne̜7fbF|tiӧ3­RvhA-l;(o'zF&ێ!R[pϡG$ΰRonvF^u35[n?>tmWerM2ϋ)++=BO	)lv)4'",ʻB̷l)@`,A*7!,p|@wk$RJ
')(K5,#|P),̋A gGH|i\E=3̟Rq8=C%jZgO3xJI-(h3NC/DS5&#(VԣqbĕRERBJQEcZR<u+Z7o/݈V^-\M`pT|m)rO-s{[nNWX~	.x#*f夅o#_|c;juTA9"j؇Fg5J1FO3n[yYoV!vzW,z}Κ硙]>,4Io.jn{2zZ<omb|n,qѦ2!T[-ONX`[I7%s-Ҥ1}Xδqkùn.Psoj)յr3'+qN_|^c.|MEjs'鯟|6留౷?֏=wlEvؘ]4<]*@M%,	AX1gz83ΐ/;.32l
bXҐ_V8)OT	7:nEbv妊W"ueշ h~[xtų(0j񃳂uE&	r8r	c
1z;~{nCHEn҅$h?"Nb^5Irgˮ;QO떫Vt!Zec&Pt$/yBK:Rf4Af&p4/;Jέ$S4ΣH0`
|戸EMsp|8	Wʊf)'Fy'ٰt/H/۞	OsxZXI(rT-ѩs~Zbq0R%(FgD/NK[J>aA'vIWP8CEM>p3-)iT~ԖBQWUDBԃф3S9Y%T?Zٚ䉵a6>Q-h%gNO&v5lG6;g^ٶiC8xZVk5Ayɱ,mi{4._k_k?prvR}ds[XNvM=1*7+`a]|u݆6K[WBfv\7kRWo+{^bwtuoNk߫\`QⰂ =ۢmmSZFT-[Mݼ{cx4Ff\O
.lbǒq3Lˁ3*KHEl2dSQ82	c<2	2SǶ$-j+ػD,356wsF	b=lH'in;b?Gm"
=l$KlҔ"<4sP^2mgE$La;jYϚ=5A|Zfbyd]{n_mlemisu9ӶvC_ۿ}l]nsCS%mIђ_5]O4ao+EhS=8pÏb_1qRxI^r|-wizYR9-^,<)_@  !    , P I    <?zGGGYT~RRQUSWUZTX\\ZpXq[zfgnfkgb~m|`p{nxov}x~vzpeblfohehrjvwkwixqopuvtue~j{k~wj|d{nprs{q~|u|}hzqzJv}z}KTld~cyi`^RY[Yghz|iaa|p{ySTUUYVZZ[fciaiadkajwW[_]kziw{pywmbmpyr}t|bxux~w\â^Ť`ū`ȧa̪cªwĮ|mýwѮdֲfֱhԻk۶i޹jӷsղ}ٵx߹{muwluuooprxtuxǐȧ¨ӳȽȖǢ̫İƳȵ̸ǵȶ̺̻սѼΣƥȩХѩãƩɬʬ̱ʹϸгһ͔ՠѵ׿ H@篡C Sxghb)3(P,HI
"L?ޓ#Ł2'IOWJT@*Ŕ)'M95sgJR*J(҂J:D_PuNRN\JL<ũGq]ʣ-_mKtnZ\=iЂt]1_)hs[,WBi)$`&izV5Q<ZQf@`bEXOXqT,h<0')|s}4PXKS@wG} 3Div%O>b2'YcGqUE\iaHs \!'RsI·`'U#AnJAcG/U[	UaHq	R%:Zd%aC"GZǕpsHcE=kUy^řAy'Uh0t5VF\SWT\\i#YYө=ׄV2"Q姐$	BP2XOZAMqe&?U R`γREtĪ℆6W\5RD{taKG,Qـ3fa;HqZVTkfejh&O4C=wtհq-gWB40\SãfUtrlI(+!|c<I!ab,y$mIA=RSj`iI>g~#,0X#50k?[DA9pIDczbIw;XZ`qGf*NV,[	Gѻ:VpWu5c.Q,ǅjC\=XdWCI*f̕!j
mK9aUڿli&EeHDa؃|XogOwx(f#FxFF)OR:N,<*cxK(&sa
+$8i|1Dr*X(N&
#9#O 	`8!9GBգ*M{'/掞''SB	8+hlPV<4cÈymcbÓ0.06$R0S%`Q9Xapݏ$kN$"@Qhު"da='K
@T<h¢
8#87|P ++O@+"L(vP#v
LV>1d %T;$Oȡ|AA14_nQ8Y'Jq D;|( `ccga>q I	e CMs14"l"0 u
5<ıQ
Dshk%pp `7i6"XkN϶ؑ+AVDU%XJJn @Fh5Id6-`UD%E+X$xE !i[@lenZX%RĠ)pFfG1"΂L솞kj!f÷xX%pBADyI`&XAW6$ 9j!PɎRr~H `q	@r8D2miH $$ 	lpG=~<BB|rFc=RBR ,>(@DhƆ;,E`2Dz@
zQ'2~4@@z?`L:8p"?h@9"8nۊw1v'<`	MP	 CA/\ /k'`)#H	x6Ǚqqh`̄6HBg?AG4`EPKszd	Ha` (<	L.S26S@'
s'0
 8f!`H l ,GDӜ.5(m,8hq`nq(
 ?sI"m C Ds<1*7-hpdp. h!y$qo~@ğ:	V[8ì=RЂ܀y8h8;0'x@!쁹ԥv"1+8xpCn"s4%^`YW|qJҖU$(@N+$PB	*<#ƀhc(Vqܢ ~`	#p8A!@8	].؇8l@d8\B&a+!8QEp;z+% b_sTx^'`NX @ŷoXxsPPAS1%<	fqUJ"m*` !    ,
  u    	8.7*:
070-424 Y p
1W2o/Y+p23W53oIr5FX7HsU	Q-R5R21Z31jj2y's73RIY7WQ0qfAm+Sp(gSF
PM3nEoI2MMLTVtKgYNkrrQIuMnqjTmni , =-5NUbj4U3Q6m*ut/{Q8f?PLVYRmYknPh_mllnZklpw~spm|31WNlopyJS_r|egoyy{yzŕ}ȥ1;4:P?aEXHZ[U5ec5]_"cqd g7r s8f"v"v;LSPejNlouSsitty{ф{ⷈ6WmVtIRVG[Yf[o~^fȐ6ɘRȘjǣ]Эi^onruʋ҆讘ʱӷЖէ❑ɒӶ⟸氒їǨة̪ոʹ׺Ǻئμɵʺ潊㿓ȹʼɕҴВ̧ϲլغϥ٧ܴ 	H*\ȰÇ#JHŋ3b'G CIɓ(S\ɲ˗0co\M8sɳϟ@
Z͏D*]ʴӧPJ6#MXjʵׯ99"KٳhӪ]˶۷Am]tt,߿OL0ʣ+*xǐK8eT̹3LӞA5M+>зYͻU98ē+TpУK>Qpc]4=u]aW~~y}`( Xw [4ٔ߃fTi]h r&ׄnex!Zp&%V,bK㌦bE7Xd(c΍;G|!C!QK:)EِGMyQ7ie['P&AVjleUbShdx]5$+)YJ'C~9袌Jp
R4YG6:]YiVoTߦ
;i)pPr}*Ayt砙e@5zUĺdhixkк$gOز}!G,5mL{y鹍Ӄ@.K=зm.=?@3 (w3JdjH,2O5	[ǭs P?GK[!dz)L?S7ٛUw lqK,,B?f`!?mlJ,\2\nHaNF\??&8@H #cԟ}v@A8M׭;޶jZ'ܳ@b8Nx9^_\LB{ji{?fTH #\:N%3 r(2Qܪ7h#3'/liP=FKᆪb]rW˺eױm3% 8NG Yevl)Gc.H p vcɆ:aAj?{ē693=%J@H҈0":#ƃDJ$(` ..
'FDY$j%P%1F&1$gcarw{p` ^B @Chȃ	ǆ~Ec#q%FMdC*	P8%V$LH-rH3)!sPRy˨&G48	|tb/xY͉
h{ #'hd2KkQ/G!'Y5c~%Chm]G~S
%e*h'W z`
:aCD>QViJZ=O-$fGRc$e%fΜr%8 9P!h1&܀ %4	ӧJ֘ʇU,팁"pՂd t(\ lXsˮ<^y	k"+ ,	bڕIDbXUF(^C3C>9`#/d@]O>9_Vy2	\"B8i6I?I.`CjJ@ Ѷ:VUՑ0mzF펙&z8Pc *ahd΄rHW5MOaR BVc Evh=n2%nx6-߃	KX7Msk#m%t?#Gl5W%Θ(3XJ-kcHX2QOo<pݡuhgرvd"W$b<]-0LBL,7FӄPc/Z.&;\HDuGp0DgΪ?U)c3yg5}&FT2H2^t %E
PX'Acz0ޱ1xѓAhh-i 8!zG	'a
#5bn;s5'np5@.	^=Z:*<44F̺Fg= pn'ѼG/=N6aC(Ҩ "ʮ><i)#eX678k>nǻ0%ssMcɆ(փ}p=ru"A̔N74wiuw]Gv(,?Z#=\2~N9}"1)^]ҁOa*_/
D\mTc20sPnK}ZrJ9D3$u4؇zs}b4R},];Mp0+KcNU{2}VTex'fwniRRV\0UBvP*)wKh&{z/H+Y{
8{eh tT5Qqg	%|[&b)[1(gZ؅Xx4Ȁ*P,	 `BPPbR$Sp
A#GRA-Xw5SW{IAn`}LM4s\wxX% 0NAzQ6E 3lKITtq05crBf,VR+hY`H[^hmcHfpVR/QȔO2vVi	ioY`~S'bx(X@Pz{Po MQ$0XPX,0ZT$G"6B>tȍa}䨐ḋhؐGHNSV 0hO@2p
@3{Z'F5,,ǈyYtȓil 0NI#h @0`4{.nV>A )K2鐯Ո;dHHl*[5iiTVi] C
3	lUX7)N_D1yr4b7f(Rp	f3	A605cy@T@Gp ?N)HXfykxWzHRQBh4 (	7`ws2K!)a$IǹAe	Ӟ4A0 t	Pt@q"9Dh?;}i?t)^my9,)'pe.Q5FG1#6J؃aC"!gxQҡ&k"o	h5x0z-Yڜpi9Pte*`=J?F࣋5>b1W"[ZxasR:H.C+1Z\9铢r 6
iD	J `[@T#`1oxH{z1[%M9$WI鐄ʢ8ə=y)p`.g
{<0?WM 4EJ@1PNrU騟i9:iɢdר./O6ci{K AJod1ag4$A0h:ۥ
ʕ$A HA7?wuJl0<p
|kCXD%WLG@!^3zPkjI(PqаI(v #`4n3j04<IOF$w%KIJڨjV[?ӵu@T7uyp
`Mՠ,P:óh0 OEy 
kCoZ$Y R#~#j79{NVYZgAK	ۀ  O0mWFwV5r}[%7kter9:O[{#˜ɴ		
k3x`3+?Q`[*5I"uh *f[!;!+Y1eٸr;iB<l @ y \8 `zT3;(Y['!xX:;lKوzBD6w 00Q C`j U3V
Kdk7ƹ/Ǌˮ8yʴgnZ;z<}\˜0<]!g9,b*Q 0
V 58'	+uܱ̥L3̸/ܴi+x
`˵a	4h0 RSrO|,õ5a4$/"|ٌ2LHl| " 4)`08jWŞ4 p~=v,C<-ǔ7mЛmpP , 04 3RSY'D0	Qj09=MqݨJ]?-Q9mW=q	RC S%3Ke-<L
*n}{ImLA׵L^S	&aFR#Rz Ja}fD-1ipלܞ+{L|}WN& ?
;-`@wr/=iݿ=l=JxM--pQ!ѯh0-)B!p"xMѣ׼Ӝ3k;l|
(AaI`ri/U$BV/+P軖=jiv=s1 @BQBżG&$OPE=![YSl^Nlr]a~rahiVr>Qm<єt. $C:LPҰRkǸιٝh7Nud޿ڌ2-	@N@ &g$%H`M; 
%n c/n m-NʮNuJ)a	>~]ڽc3(PRypnwM^ ߙ3_ˍl pOH]/jPP@ L<4Dћ~{e_OʍY8,e2g-0DѶ|NH	ՠ3C	cqFGZg@F	K`h-xz7؟p0/Z6~/BLn~@H SUoVf2',pN9/tߓso3,̐c׾H絜&8yT#XA	.dC%NXE<AX&ܱɇ
a~ͤYwnD?}\8hB|,&U SFteBk˭R"m+Wgt+س
=/=yNii~r\o_}tHoǾ:SRe̙5op{eUy6~dpmԸbMXMT׶ON-[Wƕ+]>0G紸P@߿"0!hZ?.` jʩ
g
᭻c-
J',⬓ESF"qG
<B	lao,d|@j&}rK.{
HMbBB/2-!䐠		0'	N	Ǡxk{.G[TPpdFR)=zӔx	R/h4=\" ApLV\sՕSIfTtMdfl֩>_T3.nNHn*HNݪ3ģOfNEz#CcVxa&2LVBvceg0'v\TlŔFϭR:rYtQwvx뢷{d~Hz/.`I,f֌zH76c؞&3Dx{4qNyeY}T]j;p7AFz.i>) GP̩kK7ݠ{@!ʦ[ul5xmPNeLWfDb⍯yw\9)@}tk"/hrI3'iS"w_UMX4獈vef.O·ʥ#AY\}+p\(m)x#:4 eOKZam/|Mz?F}kӰ,Nǆ;q_|dG7  l֝DIoz١UEE0Q"޼-Pp#r23yP<	½xhP
S[u%p"H 7>A&%)qbxDŉY|):e,QWJepZ؛ӑGyj<DAF"QAm!2RVg1w$PS:8zL@3KQB$0RJm)YϤFa >{V[\R70',%h	K iTH&*<l? p&@R:$@RR	!$ҹ?mOs]'-zЂtUIzˣ=#kĂ:詶d  УBӃu$::dA5[ZOW|0cRWE=yN-WJtx#c3e2/x(GQaDZʞ{$$d Ҟa b  {]!A#AHXqc!	Q٬wS*\<s5h,OkZ~E*(HRx#n;Iҷog@`17 8|C(G&@lA2HfLa#Xa2;0{If#0DapJyʬ89/TX.Wܡz5G"&L "^G3rU}HMѐ-2Ήb@3L@03r
G7>!/FfۏvEDOF\~*s9lrYRٷW/lܮK88$Dy=,%415IH@P@g@X#m&ptBǥqi"-t@S7r+MM S9&hک42t}4BS%)lQ$0^ XkC>am PAZC@ E湎#m6uo{*Ȼ5='N[HͬhmYG-pFh:Rlx#GOtc117ÔUaUzt|2	` 2h4im蠝:aryJXEE}'W6֯;ZȈxn_3y	ԃ@уGڝ@L(w#Ś%HƬ7x#ߦS:Zx㤲Q=`?Mp+{=C8{=02jh7=bzF >I3:,E`z>Tn )zЃ9#?Kz +[sY:/7Q?:@.k5Y'	;yk%)2C	˄
|S$!HʹC;	8x$@<"uBK˃yCB*+%pBR8 ds:Ժ0" CrSC_[{;)h$8x);jXn=0CDh<7PKO,#JKK(~#=T-t*Q,웦zX@FxŇCFP![|z )~л+>웋C 0oCF1Ȫtj7	g	$l1.t(ܛRt,sԔk)~(ǃ`8Fހň7%@6{8X.b  `P+F{siKi@]PsHE|Fǲ<4I:i'<H ?M|B+IV2̩r?u2V>1J[5D@aC8lKx{+D`{Fh8xFT!RF<"o<.KL¯0B+|dRKZ5yGz@vD<%GD,)	?58 Մ,d
YR	nn)
JބUM'0B£0$LB,Z2qI|N<L$-ç
ԋzȵ2ÈxL5S!-8dp5(*-OPÇ>Ԝz KPMQ
BPP	P

G*.:SW;mMmɜK@mhdZt$t2>]Id ʰY؇KR`լ#31e1rhn$ᤝw6}7ZNOk$0A%#N4Q)4->ɟ\b2S#=LE!8Õi{(`qUUk!=d	Kp^uU0
)uP
rP|M҉ ||skWU֙,NЊ2VE"%dhaZ>@lDLD#HaKR-Ɇ- ph ]@YXhd	 sJF,S,H"Pn\X:Q}K=[?%8IW*FŋxDxMed|O(bے{ #)$5ᒘZ`U8#@R#UmDQa46[f[(} Q#ۃ*=VSQ?ޛ%DmT-xFq\U:Wy\d{:0{<U݉pE)F*>dS幉uX)%u,%⍇KI9xjUYuamm/LN$׳Q_*3dW޲a[4q÷-у}A_̀$
,5Fmv4#(z4`pb	S]QMQv̲|@%T¤֨Y9ŵ|h@K~84;dĠE]JPW<BΠRX5*v,U !HRSNK 1ӕ^e5.Iƙ-8ٙG @&xswUE͵0+QJ J0[Nt(G#"8tV"KX8[Uq0GYu}NcԚI%=EM֜0̋|q@Df2XFK:ZLa\˨Z5Kuv^l#5#(7S.ݟu`>p7!,tԓj<}hD'??jmm/h+jfcQdi	 m`c;mR͵S͒k   K Ȇ*4҂%ͶbGg3{v'`eۂb5=!
jy7F05\h
?%fߦh?㱆Y#kh&üvfn^x}ic
ZNը~1	W[㗅)SHj[ꦦS !9VͫKd(>["QWQ=nk6㮽鈋FNn:q˅̱<~&@y#!jP&._nm Xj"6"HS#}BunP֑e<e.	õ'nQ9&n8oe^mf!azkw qL\rC=_S, 'UϕIe%qEʇ~P&r 0tH'u>i[MWXoJ*r:-iMHn9v!~5jN9k`F]Do>W1ƶmH xw_D_olJQ6KS# T>u!zF&u(jUr\Quu&p\_㽍=nL䔼k8=Ld<h?g@h 3=01ΰpSoqtH!y.JS KN@ocRom$DW碅Xmx,Gk%Ix;Gd>"(Ih}."m@שyYww'>jTod{Qp,fr@fxi:>c@ְ^NǬ߬qŲU} mxzԀ!^&myLEgIV~ .uR,oGctg7Z" WK:wKX>wu|x`~,H߻
Ça<q:߸7fh#Î2$9Qȋ$G^,ِ˓-eƄ)͒7?9r\FawF5j"h1*V]*D]~Z,ZEv=DyاM8)91-lxa_0`[T'Sl2̚7Oq%749lԪWF.lU>UwN)T7|ԩÇY>"4xܕ
㱛q"PBAGy3<U|{tY}O2EV.z4CsO=\T"@%Um}#n]I"J8a"b]%fȆYu$]3
%.쓍G1ӼO(CO(, ' #Ey$Dq~qBK&i:Vvej N)a>Zr[p$?[sA'uPvhUz^Jz|}N:QBGQ\<$2QMYe[VW^]bI#´M\rAFH4: d&ƂЎ?rONΔz-)$%2Inf}y%ȑCfi28Λ:s9ITz)E?d)Ltޤ51z'!J@}aC=jRVa)#xU~U[C6WM#$3@3A-$`4A&ycX?H1M 05ie^F)dX)ok
D}NBϿL>ݨ%Oa'n} ^#z
iaF=È5,Rn;"BKء!RxVZ{u^? p?,0
~%c,@
v6{^t>-nô߭^x9BhM{G0ĹsI,(=H׵?YY(2r+ n(+[%v|eH#`cH )5iKKJLA~^fX$46mWv((o9	8r{
)Mt$`=BIbPu397h
P[`CC5r5>Y~ynyBw`XSr750pۚ  002Ӓ,"ȏ~jL)ڸ%roF xP<Ꭴ(0CycSʓ:P%ܤ{>XIcT]0|@[Qx_ҒQ߹Т94TK$BId"%$%5  SG0ӝ&I0cx񤋥-*AGm㺌 U6cOxB)TA
RPԡnHG#J1T#<':HԁS4IF:Lus][5ww|\(4wJN-:ЪAj4[hS
J' ?A <}-lS(tmhu#K:M7ĪVh``*QքsGDfVQʄC_AxݏqpuA%~'4dAR2*H{%W+!JC gnEPkۑT P=|sHB5$&)W:Wuk߼Y\7[%rŕ8beCcz[AG(Rczk9:A1(L曈B#
fҲ$X6!	U"Դ1XBM	C>4IS|DJ$F҉QlKHlNqլ&wF&U"	dq*HG,e6R5/MPZyܕ1^$ģ(UT
Es#ϝA,4 QlƂi%[ߗrB]XR67i:|jTjQ?(u7ǎ1 Z=s
B}]M*t47|B	)eXz
-]VAw˷@AEZ0El(Rc{sJX$ȅߒ^	
87(jO8ʅF21/qxǐ5n]u\ ywm|A_lJL$q/7(j"F9W>d["YґtdxvgANc)DyP[8דdDJegG۶48	U<w;y'uv``t/Z׉ב1L  bTUC"#޴qªL#G)YĞ>@9,Ulgm<#<l=cPB,`|OiR_UFȅj]i;B}7]Z7_M\r090C70C3L8uWG!$x["̈́i	5[ B"Ncq2(}^!A< ^0eԃ)?pCt0$tQt;~b|FeQPSY1$%UX)D)p!C2vtwC,HDͽ ˡʼaL!؜;ء7ʫdBP+%T<Xp  A,(bUd.Qp4 !=4])h <; (&$(O,9j\i\-p <\RE!E3C/;
0D1GY<@I6#5NNY4`\`6v>)`j7̨,D!2#ؙB4 	.=d'? >Ac\<9($]*glL]%sXd*d$,2p-m|$n<0tZ2I~ldo5C303duZA8ؤ"0dUe5>IQ.Y$I%"ܦ2eʸunTgqje\4`Em%( ) xb]'( 4ēl_`+gUBSo HBc"3d74$3:`fYYʌ7ФX4zznhTRV9S##vu儤[Bq:A;le
ӑWBTMja@;lbj} x'eG@`zg*+f g7ao7H3	~;4CtC:DeP4DNbfRkj䝂YNJ̽́G9eTfT.D ;^·&T֍ cW6B@[LPQ.IA=T/%a禠jft^*>n*th:S5å^fimJUV)8d8 rm3cLS>	7`ιwݕBcJ#im&!#Rf*M 4BD ^!$A<h@#BOIIȂQpÑʪ}84=ZO]R,e"*(0^B*fZ9]{v^*m kHUcJrFqiZG_ƶ&$EhO̞R`#3Vf*#Y#@(#l!Ԩrj*Х2QPB  j+HE]Q")9)Ⱦu:gȪa'kA,(qC0ipEfZG8PyMC=x} *56V@RJPVJy^o&-,`ΩVnCt^*;ήEܷX|T"ClCv{2nB9 "j<A$mH V驅Co80*n2(\n6Id)2@YRm2DpW f%hBB~Jy5Lh2_>ڐ۔pa:⺯:C3Tȧj/^XAJ0f@ßTCdiRZp:뮫U+(E#o
\؆Ul40	~#0 6j"^2KzӊXʪ"n_rKj2QnsA|*C2Zc*KRGupOp^|qi-mq"7Km8wbTF '(͸P(3'k UqhA/vU ږ 2+C{8_ɏHr]:q9d҄29o`B\ܯ1WA'ĩs@s*:PsB `)qqbԮ]?~E@#RIjH2!4o<04x#/[-HA^OiL4=h!r-C.0.oEoe 3̦ZKB'"shဦ(D1ZJNiFDqfsThd U3;kU_a@ #'Up葵5'A2ǞDt:ӣ-]Ew,/]D.C1O$,m0vcMx('IDs4L˃i9몜oɜ~W(VH;s%a<j5!mV p#7]qZ+[gE6*nD-\{Dqv[_/q4~Ka 7j{{&s*Cf;]VԚ?tsPu9x3.3Y)kDܡVșZX 'E#AtBmR!8sr%l%8L/dZyRI4ڍ+b^ol򡯮!j9_$a9fB< {K|K AA*d&ry&FPnj;-i99725NEm퉢0eV|[o 8sj8ZsAKsxHd:Lp++J>ۈ:,7B:yIF+?1qc d< 08Yo{x675hbRyJ0OC2/!7#º%0=cʻ5rZ+PoRix㪦1D{d:aW>8V*tIEy: |Ńߓ&ቹ{}<96^+˷d!ЪXdx1o!Y!@:2@/43?Z)OAw~ V۩s63G6"/|aۓB/4 1K9|tߋ;GQwCD|ԢPv7~?E\KwaBe".YJ	cFN$i(QGI?%jtdL3!4m?+sgPC!>|\TPzkV[r[+Ҩc6ӯ\^n\rוW9U;w:uw]rȕ;|W{vyhHѥJ2ȏ@!j)>q܉zj/vҤPw7n|mrN#osk%W-Zh.DD)M%B/k<B}"Nɉ:O䨐"B!h{ob$KjBr²=)HEry#h1vGZ3놛vT!IJ+%RK#hO6-t+஻p3*nM59nKNF$s	((F(!IC0Kqawtꭥ2-;tURJ*n",uZmUqyUCj
Wq|!X%wF|fFc14J"U͐<HU JL	5?Jr5&}(Eq-pc3x౭
-N4ӹ8j$MbSAcDI	=-%!)&1ȐKDL/Ix>0Q+РRYaD	`>ŴJWjZqgKujqQZ/!rpFQų aR<dnxmOpT̂oGfX<w3chygЅ"FTT6Y(賡G!)%LY#?UzxY]bN:K+ vVkl_ĺZq0fg|XڪX@!ebmUR#H]z3h%Rpu/1ϡ8:9ѓ@0!;Ə%\{:r1 @@`r1bc҉û.(W=<5*9sS"WayQb[u<&j8#沽!K|d;a~|L]=c(_ڨEq  G8RDx JWBA)NS#8QMoBQ*Aq0;SKaP
r(#S]"hBeᱡL^wh}ػGh@;b=1{FLkVKHMoBzF4.(@:_ɶuz,DaڼH;p@(kD
l<A
)dIK~Ed
6LV* aOURLvLrn$&ZfFPƦvCK!	b<Lgt5+l^oa7խ*CˍW`%+ddNk/*躊	(/s I0 ;
p=H7<1ǢJ<Md%%O`!\<у42^ObR7Vڛfc(]$١ă$FdhNdf,+I
%Dw6]RL֩ά<*ʉh
WU~CҢst'[*xޱ#uq=d9}`ڡ6 G!G60cA#YP^W
"J.N<iHKTpkҍ%Ѷ2%J4[NH*	%'C!C'pP{XLKmjthVAC℔^5EDb/@
wtSk|2.jL_ظʙZi>>Aq]#0a|z	| (""H#
0n `L\S̖T<]JefEWedyFtcL	
9TK֮9A	&3QrςB',rmT2V+^0%̚7kj9;Zb[`o+2S78iTxG?{(\nfөCDiɒ4WE/ԟ]l0Nd
fP?vnͲ4).!#>ԁ̕4Q?M	#ι[m+z]ޫ5)-̺nv
P̘o97`o2+9"1p7avj(
S4)j4iUeLdG|h.kz&D%ϗ-R-m8h@F3<R6<6^}Se5cHwvFV]	$h.H1jl42+2
8L BNo44
I$5T^aF:i JJX5!dO'jm(nM <:FȌe"KЙAڦm'zU	,,tЮ1 *Ϻoί[Z⿾ab!al)!_z#-r_h68k%h6A/fKХ<.EIc/Hr<*~ITA| `(0Ld)N0BL:"pM>%;mT%n~pɄPʌ	#vL	N|/n.]OZl@!~2"-VBr#_K-%v.G34α:<%]>6Lɝ9tI9Q"H8a*K^dC#~?ch;iPx}q,z &(,O|jQYg!"p_b6K;Lʁ&GA:Х RC,6Q#Q0X0ga.1H)0ǃa${b:·R"$@`PlfT&fhp2'o'!늒7{s(-o)LaOͮq%8E*W1L!mA-kL!@RRM-~_<8BHl(-!0/>S֘^B9+0mRߚj/@@b%o%%>
Ab2A5y#㗂J'`36=!ڠ7WEW%gA`89#.NHbmc*N,7~ppp2-JkSR/(L["cH&r^N򄵘#9c3lb'$aBQ4τ*BTD;Dn[S3-ݼ
0F0v։ztGh<NN!Z pl#9736^ MġN呙2)IJ˓DMW..U[?PJ$j	CWjprɂD{QOPSU_kabtE~T"kpTu|9EN4\UAThu"
 "-1N%adBDpbJKŁY-LZEjdռeѣ֠[[	jb\S>
?2t<X&^n5x&5D_l>Y:5FV\0r-Er}mYUv!j:7E':Kv҂eUҘՁ tvSuO4p#:0t<ZbXQ?r`&
@H_^sN^vk567VxSYmZ6k|g`\!yX+1pKn2Nq밁f-=o6feLajcDpw똵tYML
tAdMUv%Xq$$K&#`&lC.Si4DRq^+wRwxOE9.A/l׊"hߜ!wӼ\cj2NᏼRps>pLRr%I4%ei0ГuW)WMsfbCrւHB=X=6#h(@$ԄS'!6DRHsW˄QXySP
VyEacdЇ!2y:^)NAHYsaba.҂b7@r<DK=6=!Kw"md7sqs=B.!,3i6B>#&0BsO;4f&/eӃD+R!ٝQ8y|n419zizϞv0{0]9:r2c.M4&Nؤ'KЁǄ(1gbbT:xd\׺4Ɨ"ɘF'٨Ye^RXVF6c"y|Ml"*HVvA-pv!-/J_mY+dogȶsKwSvM`CWJ=u *PR
hy5{b{6ڨ$:iD;jx2{^􅧑|@z7θ?+/EJ/AJ	@%I6_T.3{ykS&D6[)sw#"o':hZ \BcdGnҁAk]aai;^9J}λy-w7.&nk'NoӺdI+*p_x*[ujcZkq;Of%]s͗{!9 =<\C@H<ka(\-|j?ģzhh(iaaFZ0~ר1΂0')2\#{hvB =~/$-'AX`h8rmة{۠7_:"'h3<6v+U\c1}k{ۊn]
1Zh1i*=:T*0'!$Bw'|#*WW=r;qh)j31p2_ݙگPK6&3*\'	F3*K!aYsTǽR܇}}Q<ꈐ.CH)CX潫h2}JumߍSж
bڡD$yN@2J)cPxAC,Wֵ;kfK϶}9ڢQO)F#`Γ`"xb}Uع|٠NwR~B͉Q(G+bm*"+]/ʓ+baAjB0g)ؖEN^Bo)&аu(N9:}fZ{֋o Ah}x͚]d%d!{d$K$=w#R|	LΝ:!	3З#q=4)ϥL:}
5ԩTZ5qç?|`y,YaۚY,|tڝOu/_ի*r9.ǘ1bt|T}ƽ-;ɂE.X>Ń4h݆'x|s/vY|c.n⽃׶M5k8vrw܉-<U;x!_>Ȉ'FЮ=sdJ&mc5ې=.	5M5MESBC]a|ImhV~b"HbV`gXi$WnXlT`]E^|#`6"b뤓_F$St>;;x#Olmm&<wOrgŚpCg<ANv#l%u7VU*s[M#4}NA%db	'3"	8R׀R>hZ坅:TyTbkZwoYcY'5#WVKh#9uQ@#՗_ d7̨OO7t%唲mo-Uf<$;gW@ݫ' x	;Ouhv~<E'I 1
FLlI&s#\s+̨x"G V >nGJtF4>rMձֵd-<a+9G"VYT9.#ր-!ⳤ`I^ͤ*ꐓ:;Z0s씷SҨ88m)BSz'nOj&̙PySg'#S/P$žM玫.3r#|HF͝>^-.H|ʃ(Wlz,vVo&v]HHvTFV .y]6*h9;UM7O͸ՌE8(89pB	Iy2(*iQh}x,	_OvÏ<"#v3FA&pSW.(3[nyD,<$kF׭l[fE-D:RU@G>y>ըnus
Y4S^'7wi/#:$RhGB,`ƶc:(jM	Otr&wpRD٬Tu]fȁdU#r|+Ly"]dh.::W=m}"c(ԜNR9.,jJ\|#fMvjS)!g ^sTs	$IйK&A!P8:%<U  IRYa,?C\ު4MC$}7lJڬtfaڱ};7&oD Upzܿ8kB3$<+(PH^$za9<;K<hJMȪ<tJiJ*GM752MOԒhY쩍ȶ0HBѷ80oScµvcTW1}-^\ʤδfp88FIFHc{=7ʞ<ԫ&Oh
]w0اx0(elҫXB2	ZR6奱+RfL6LZl#3~+Ry 
kMQvx%Ӈ7)c;u0cpª]ٔ s#w8	)Hy#Ke-\?/!>S"B' U+kՑ?,Fʅhz.eD;Ì"n 1)Nq9L.8vċK`ZvHǎybc{:	[hsS~Jl|6\r(F1/nA(QGh͹z3I|`ĠhCLC4MIln>І64_ox6ē:eEi]ƖL:9XOX6kٟ -ЭX_G&L7B Ð)`i AJ7/S/kmkCP|JK'E94^UU)>ѐǃ#N=Vuc]SɯVRa(}#)oW}R;6*+T"~tf	RPL7}"=?[:Ӎ'8/z JÍc>KClu#ZV.K/n;L:7E˩:-oȥ_f6E<ZSQα@h<`=X
ce`hO">R;wm3%zXEzÆZP'PJs]q,C{Ĵ{'8u_T|>B|oZףͰȴoqW0&} NawUGq7SS"@IFBuG؅8pd߷Fq`U'`6'(gB`@fWZ52,9&g%2(xz885+b]*_4#!VuZt=1Tb5oA(#e9c٧\R_s~#YXIvg80Kb2I	a^v?UykQ`Y'  hhI!X"(Wפ"MS,4ShLq,FdLM5MyFPa><#zG6n6%F:DIk%88Eq"H!C#r爎zLQW
QS2k8X:6`"*	RXipHWaMDK{d'<jQ5-Rr΂0P׏<;S?Wh  dabYZ!K$pbCP?.?']p3\yqzB9r]@'kUOmR3jO>9yހ:xQLvA.LAJjg&C4s*,utEWfi`䡖CjRr*0Ù55qJ"(,#Ȃ?2Ǘ))ɢZ>b	<!DEZ3i֔FB5&/.%/Rހ7	/;@cwG:&&H?y(^ @	1ז`B:s(C3q3S`0㝂HY	0c(C'nIu5zfDM,h]JtTc_y
#XS&Jo+!M[uա:@F sSF}۷^Pҕ/ot1V8]?U!axjr*&IH0/r_f@5KbjX (ѭ _m%eh;i39mJCgN K"%
,#h,^xP-ȰbS of2*jlGSR,3%R3q9cU]DHmrQd2OXXrjVj?V1sX\I*E*(HUz2h*K*Ŧs9LN#9Z("xDK0nqyaְ}+EB6.i0#>$7}!E0jy9'$9JHCkjU gW³K
PajsYpa APRuϠ#!3$A bU*RY`!cKnLPJcBrZ{Us"*uʣxTѶr	YU1h|ET!c#cc%PSs.[:v(rtwEG~"EJ@`h4^3&{TxA@g/T[ݺ0S  jRzfzdf+Y@iqZ1(,",!x:}wk5n-LVDM'
"[@`gpԢ~^0&~cL6'	xye&02 L	CA[`)$Q@ஈɀ!Uk`eO4#b:ęſbh[+m{cL(02Q\Au ض"J<
qluSb%E"iWatF Uwp)x7l6;HeWkZq%l$}+<lΥg8 	m$B*˴;O(5K,gqG4P.)0!y$ϓ8/KisL?5-e$>p1Ed17vs%N}Cݨ"I?oQD~PH$#8^:!T",ݸ`Ѷ ʋ)q Ӷ<*&\Z`Z:]<-a?Zj,U|0O%TD ħi,,;Ws\o
$"$a{=>,}hMSc ?T0xdc,~
H{4'!#81O4RdCX>)(9Lˎj!&*5
ڳۥ%݋B,#LS]qVӶŝAMI]̐>ǿBRo7+k6GnkjKR/T7NwS&=w΅HT4'R),9ې 0;Acq09*PmyLXgGA.H3 4EY陞)kp:%!HJgLxJ{Qmя51o.6Ddܢ&-#y>gmP^%cwQԖcm/)KֲB@Ȩ&IP0 #򅍟Ь4ި`fzeQ;p	nCw镞R1ӡ<>UŴn#Γ뺥bU
K>ɞ.Q#7G6GuVKj8ndF::{~ 	g #<5 5,|	ϠצĈCW",{Q$
4eUH]_!/aUn~~/Uf!&?GR(X"A Hrli0=ez hO+j_m/\!US-vi9$s?多cd!Ѿc_s&vw XH^v" 	rN)m']z> Q?+H4k۶YF^xBc(ѣD5zH%'փ^zLSLÙSΝ	}TPEETRM>-OTU[gUV]úNwRD/:rmݖÚOlBuXۮ"76v%w߾vkX?|}7v(O}رTO:x#"XIX2	Ȓq͛dx|hB*/mڬAS025-aO	<M߳S|ǟ_~In?*ً(ZJ*Uv醯v"曃k!0}JD#h42JkS[)yxҨV`L&؁F^86N(h
yF\ꬹ;Da3q^+oʓI%;㓽%PCE(pQG+(RefJ'@	ѱ u2-UuY1gXAA1_§~1عg5+MRҢځW"x9,qgCBz%6H$&zqǄN#d774s:Kɴ?/Q/8cSH?~TnFU2%F0(*-U~ZRo>L3Ul ]WvYL]`~}:y\Hg%m{6!oh(@!4nG³54}~3Ϥzq\wpd & ^|
8`d	h%M܄|n{8&?=txeO/p.<dLJҡjQK=QĄJ.Q8qu[ZNG[]VE;ӄ-kyeɤR8fH(~Z57pܩ|dt`SS0a8&A)s|\t2:vЃ,]XD8BuK3\w!T/LҲ:і$dy!VGZo*-Gە5WY^Z:3ԴJGx-jY[8LRC8Gi<841m?q4x|э
Dw 4IAQNO=ARҔNw V$tKUь셷epHrJ^)*Q M=3)AgWQVҞł`3i3ƑԆb5>I1yAƕ5kJ䜟q$
QHJ+\x4Q7x>E'VQiHEZé-sKJU\&#1}bCNe.&/mL3TD[cJ?cAI5-	P3o<`qVMyq=?;9<Ųg y`rh"	GH;5eGXj|H֘ox![Գ03LK6AuhA$FAZ|oB^4l4l5JOqemf$ ;TbӬ4|O<4$@tHuts_=,%-v (LD,;fX_AƱ?\G+b̶2,e:J4vzQ7RZAq3ª/gu,4.2Cu>H񸑌jW(7qtq!e3RvT^b%t+$<A&;U1D$=95+M-lیg<QHwB8D;$8!
</x(6Jucǩ{>!T*ql,"$PXZ
qKm"o+bq3SYXJgbq4uF(W.&yIRoQ4}7	gjdǒlyr=J)%5L:R'Ms2ޅ,pAMM4	w\uB(  D  =  |c 6<P ǀlG&bЎIԂ(@i:)Nr< uտ~Tӝ6.
dZQgRҽ'bCd.g>*;fDϡ뎐jm(Sc&l,B+ǹ⁏B(6&1oߐckPp:XAmVM Ol4Y6Ў:4h} BK @cx9A(K\AN/4^~IXWbWk@LNKRㆭ;SSD[;亲TKP;ʊ0u1WZ;!Fbɥ	QQ!4耭h%*8<aj<`$#_٢ 7d'S}ȭ2(~8;yIxЯp2逾!(p(/r仸ǹDah08JMJ8mh: 3:8@A} apK 
 h   hpq:n ;FK0RVӺjD;hTp35;Ԃ;,q%UXaKtsyK"pʶ h;)|..(W@'/yyC'{xG8){9{0#?@,Rh8;ְ0@0(KsPM5D.3ȿvYL]`Kx?Jlx Q MSF45뺵3ƼF[FSkoWSgLTL
sGUb0dċ]rwPs8s,Q#j2kJ*ȳ<2*6%[	`jyHC"ƫN"I+@9yCG ${y ~3ٲB9ħ(q8N 9+	_l4Jh	:o ,؇8鋹\P5FID[ 0Q H
u:eLL;\ƲFGlQU0r
H]-
;AH\!zAisM,dh:ʠd 	N娢*ԑVH9T2ɬ9 6r|7q QAxO	Dʩrϻɟ\7 9q0P & \T_\ _`H==n@F  X{h KH;`	j8Id(J%
%ˬ:jQͤ@sSM %e\K'=
tG|;xisӠ0g;6U&uM{lʢP$qV{2|۞/?(9K+GB=wO=8)?ğ,NOUB̏iPL:) 0 %H    zTZn؅dFFs7F`Z6{ JPqDUs@$=xmy
xt
|UǕR}P	ܝ Zq\Q6"t"-bXHs*O<nX"7C-siYOx<r~zT,(O	U ZZH˺ixEli۰TF /a 8al_Pdp>j  [5*ۦ \Í5`\ÝɢAy<s1H3[ȈHͅ݌U,¦yH.TXP'Ԏ5 2GI #2ӫ9=D=腘x _`ԆJm }v`l 8`}֤C	 K0xVFDY`&It,"iw@nn-aaT]3u	T~m:s_]q(>04.;q5ӄ#y#5O3NT*b0AڠJE'8_ 3s@}Dh -#m[WtթL.E>]RMd(t@r;5ę4HZ6uZ}9M*]-#Xj'q : 8.(8lnfa>:aI|kf%mޣRH@'?2v& (L{x P$d_ݾl@ RNlE1I_h6l_;My*%St@sLBiQBrȂxJ入e]]a( B|i6+ ]˒AI8wr*~8'`^xAꩆ(BiIx (ŠuF4Vot
ąǶ8l{%pAGM,쯸al^
l&('s:M_'imەw7$g	HfVNJEjO%$nnQxx؋dSfr%ov5~,)! a_8)b qx BؤiXcp:]脂ie!F\m۾>
nݶxHpq'AtKwnS_2`Թ{0+u@uM>a(UPUܤ1YTfTm<q`D?nkC?tO9qo527]y΄XbVfTOPYR/uTM:UWhY)Wr[]?ax{	A(!`v=P*JaBX֎vw7&tei	M0,	J⦮JtyjzşAC0RڀzJTRRoډush1ס
s{s@]{^o؅Qބ'汌aU~BD&H1m΀m.avyCQh8Rt(3*IM#h	{ty	<qDެw(|3f/(f%=xGQ
}MZOo^n؅IYqB^Y|Bujas9]+]n &&.޽K0?.8$m*4naxɓpxWɇ>#lsg˕ܹ&t)ӦM9B*u*ժVbͪu+׮^._qq+ٍ؎0ݺv%/߾~#Gnժr#NlX*rk2ʔ#g0b̭̵kgs۷B붫7#ˑqo-U͛+	WZA\Ԇ雊TBB @#>#MF>2D=wO٤PJFRQ	OM7yPB]sSn#[܈?Ŝ+ZPW9{՘c!&N:P>%U>Ojf]Ƙ:|S%K`tIj/aRN;@q3>pnG)+PRPRw<IE'2) @+&zPyd=#T<œ$O< HaAmρ1 =5XSJ*ꪯáKX"T/Vōa[kдj9\JꈗvNÌVd~dBLrNBSOHϻ#:]fck`ݔYliBiҦ+Gq-T.PXt-*U,+{#y:1ʑ| ES&<'ө2!8GO*[s}fU-Tr]rIO\+F{Tu[;u7lsӵc-9qVCojM/7'q@Ftv[]]~wgw)Aъu@IEq~̑>8bQ*ϙkG=#NE>g6T!<!mҵ2M@:5E]u磟fU֊hmҫMV|KN⊎IuMnM\O3AMj(1%K܊&mpętÎqh9tC '<}z:"	`8d!jXqRZe#;BPюDDBG)ZLD{;Q/rTw#cp-Eg+K[K@#r Y^H3: 0(ăwKԎnc4.<"*!yvvh12*-c 8UM@zF$1D>ZHC1$Bzf|54oI2wSYhQQZG|X=G-K (:|S`'2ɮM5a$jګtiB `N)SJ'8`x.{Kɢ1/nPSSʝ1MF<=6	gT3ӎ\o@ɬ2 Xv2%j]kP9,9rg 	?S-<@Cȱ4ro$r^hq#qSz6nMPH)qʝ8xJHJ$+,`1o@ZZmP3HE%iX-"D!|FDd9j{xfָCSH;o]H^1!tUKZ,xI%t`7&]ҿ^"X01tY]T>K$yMn<;Jv9!k>,0sCZ
p8pz%S#UT}WMlYH7SzfP$RΑTiz\"dEkG{ɖӟ*QdE+G8ޅuU%_  .Ac@zFsp^2Bff\J1MN)ٷ {]~]I1	Ie">B#0	yCJĮukp'_V1rOJ
{sU{̱Jvd6:S1[RѕnGަ`=vlNSBNUkv[acD8׾E
_hͳ'):x[*eѪqF,	1G!h@-V8Y#v6jyj5!nه}wmEJZ\wlmf3Bc 
KCeP$;uH85IO g79ρ	Q-Z'Bpǭzݚ`@cf"O8dGUr1ԩ)A[_m%?ٍG63f߷F=ܱ{fع^ȂMEm9`^>(idނ|KBˊ)q}tŐơhᒪEE/ٞÞ	>XE]<\4 5}8HTH=ͦZOBJ<W%<WYН(GatˍaMIpdF)Nh4Mft`T ?dE>Iiɥ\$rvN9:hETXTV|;E!h͇8pY_.ZըGRa|xPEYohK*[n-şڰ!5rM	ZTa->\"*`)	 j;VM(@u ƑZ="p)ThǼ^8c\<ȢTɴC|5"GHClC.:a-Rd/z]Q؍!U(#Ya]EK7jO_e!AC)cMae%FJ^ĝ#UbɈph$Bh1uNNl-#0XQ!Dt+rmB$<IͲq4$K*OIN<SA;C+v!WRaSVPfTKX^KUTc	gF'WVɔ¥eK>A>ZRBxe\J@$ru@A/ eUhN\W rTQyaE@|AdDG
f2ufDIldJ8OIYهM^!%WP^cR)f!)_.	[9q&Ij.Bs
)ytNtÎYL,1^o0v>NɅŕg!ϕ>h"/'!Cnq8LV=QV,"Y!`e2Vffm䊐i6䈨^Օ\$ڜؘhW_	֔h)0 1PT`X"}1qT%PR"&0a)q&';ئni˱7 XWL⊠CiU44џ:<}5Ur/
hhBHvYiM\6#SJ7B'Jmcp#r֝|C/;r%R-btbIj )okxG$Щ\Xx[J&	7Ă-VE$N8ML4`,3yD86C.BcrӰ0Z[ME溆\]3kْHkJnXYmu$,.q-mbJ9Ǭ)O));B@}'%B$l]|PEŰ\VhUmϾ<<(E#	5.7yGnV(K`hޙm؛8:9PɤsT[j"9bHݦFVoܥm7/ʮYZiY8^N3fMy}7Y$ՁZ&JfJQ=`ϵ.r;񢕙-󲰉ߵ MU¼BKjXallsv2,.*il/oR/X.'R}'Ɏ' ^vnŃFPRE}<g,aV{3|BzkU~&桢pac#a/\**qFo.ޛ01*GF8iTw.($BI,̚/o=krUMpD=|C+ҵqM]NV2Rk;-8s#^mH_L	0(nr(cD(C% i;@2aot>rOyB/Ј }O=	2w?pdzdޱCPRR6o3 fsOWX5Wl0QcT n>f4IH=,UĕFp^;>@qq?eDd`0dHTDwȱM'2J7cϟtuMqUOcZ=*[͌c?#"F5GLoUIڭT/9lU*9N	;jTUTLE11Ö'IEEԴ*򰪼/tBPݱ
}p{D<cos~;HDysf;=E>W&lx$c26kc`?\\jEY*fqAWҊu~wB lGrGswsu\1T9HaFq
HHCDTOw+w^ѫ"giSl ϋ6#gj<S 尶FmEYzD&#@Bh<آUTOYŒp!mOeéI4K3VYm4Evc? y8yQR9Z`yR_JESoj,ĿzguUrdq	Aos\*Y@B}Lu'u/zӠtUNhE!$,6Iv78z{6M ^xr:79Wť*n	qd5AV7EƏ2F֬֝(u\ c:kQF?.@kmŦ˩=]2{SH}廁S}sO+h/嫓YTąWs%;赃K59]u,kX!ڋhT&g˫j,y&w쐔 |FE-ÒkE?0TV`a44ʹp2}9Ȓ#r;9Mq6s[P3Y]Y؏}ݚcs>Po;bWbѨ&'k+ŷu¬m"v3A'tT01pe{$lwđm@{;e;@8>xŻBx F8"A1fԸcGA9dG|ǍM ˂'	߸'Kٲ K\f7tǡ|#iSoߔ:]
:uek,/Iى=
v̅m;*vibwo+(^~]b^}U<˖%[Nyx[8/H
{&iSM`Ń:vCx^{7mSnx`B(fϞ{w)˿ifsrA/h7Vv"R*j$]t1	.J⋮oz@
/ (n1-O..#:#Q-GXsMq6M4)$:q-,_sݼdx8N!մk3"S9<f֓I=|hOΕ	'7EjKA!媫Jj.]|B֢ŷ.аKLlVo1-3&vzQogRtQ^lv2:-HZ&GlDG9ݢ6x21)ؠn:vqSߋ dd<
/OA]hgQ|&R6&*4KIO9B UR7
vf}rhv^mf}VvXfi:=kҤ\<ghgh3.:h֜lHpF,M(|>KNy}ՎߠX	<K&ll
P0d/ 	1|}>Q%	_f'ph11ȿ{/XaF;YuuYjx1sVI8ptD[5vv:2|
:,U,sz=$+Y NRV)뇥J }Dv8G(]pblX$!E9^bQ#$=i>>&)@9z?#uYڻz"=fIH8嶐ŏ80!v~[u$}Hx >I~8HPP|RO)IlGw|Y!acΝPvs9
'A<ې7Ɓ;uCC6!X@VDaf_KI~`>M 2EP3nYIgG@}'Acoyik^ۘ#"D` O}%პUq#TXhdDy0iwkf~b.eAFجC;^dQèU_W+PްoģCǼH;;<Eei{DM(᪍#inRNAcY0
{>JǑdk*>*]#U4t(dFDQdܜ(R08ӽ#H.d1Chb$H5鳤3o3&,v$$#MOo~	y#:YX15oQkZ(@JOZ}@:pQts#&O6Q 92_]ig4B}"?\gh1]?r4Y]N*ǰ'?l1ǁ@gqmk@z-'p]jR!Jv${Mm#GU	Z➇b02yf̕a+,w \V6oXlx)ƖEC( \VųRa{}\ER!eFuGIrtgģ#ًֹd&g#wPDsVNu=k>\P5IIkvl3)Lv`.ȳis_<DrE`6F2&[Ie$x68NƜ&jz#(	ڎDoin$]1̃,H|W{ڵPI$%9Yvc9LmBrV7HxX1к>o /0p+Ћ;FZL]ԁf3bݖ57Gbg+H* mvdntq%oɄv@?+cNpr¥q+ϳ#{1<YAXkKCU*Pg30FlykX@zAu]/bg3E*;T⮑g.9[,5ٜ8{ؽ#(UUmuk}&wf׻w 8y,ʬ&`/"a?0LT&	tC)&N0܌0̆N-ܪBTg>:jtw%>HqnZa%/6ȏ#|6 nxco'|BOÁPm'"OJO.%l$z )?	Z~ڔy.-ȡ6(prZn	:ir@aЂ0 j8$1̖ly:;l*M|0<bYawdAϪ4A$
,K
ъNvmJp1
($((&萕,kR.'	*xA҂)_OPv,,{|	
3c/8g0QߖyHxƮi H%5%~8hLm#gnAJ0qja$M%%CrNNG-b|**1iHAJfNBqQMS,$,ghCB,g"2ixH"6c`BpY	"oG.C(B-$ЪƩ#IF֘RrpFn2&%s<kV(h>bp{Тی-$jBĜwbwt0ahzh0+11ܺr΀&IH
f c38]Q~$H4*Kn̥SnR"Vn>Y0o2%s>8/r"0#HP$T">'p+&)/I CLF5:gMN6q3 B!Ųag2& Q$, .)::X	#0$ ȬK00ߥF<}3P`<S>t3 9>YuK?S("E4UAOF*As!0*oRk0C^2 f9(ڡ/S+:aI<W91/d<s (${CIH/=&s6JcP24<b'bp2<K4?x`B75o6w~fOS/dOB
YWO- s'f^'{i9!!Z5(dAA8vj1!TDK69EU	1ʂH&fVl
<I&9&CBs.*GF
T.Xs08΢&5+k
\Ik.u.	LeU$hɷ# !^-]fKT>6`+|HU+3lϕb%" W7"LLMdHve5Lx!>
bYǍvG(4,+[f2s`j@8/m
B"G;'4Mv3f!!{BNR6֍AS-SmrlyTNbm}m?+oVtrmK} %Fb(	S6\op1B%rwgHK0R>7BSH+uGY|gu 14 \vaIz⨂nd1%96F7D^$[LU~6ayS2iΐ<zIzK<QzEk"ʬ.bW3"e+rq&QyM+W327Ob"1i/N2XuD8H6Q;U{:Or$Pr8ժ
E<9ªaT+Şp;=c m`PKsrP{یXp5҉7ܷ%,j/r]v2TCm>*Y&82Xgpl7ءj6^"+5 y5:P!U 6l5`&6oy)v$Vb c'CoaqVs>x(8#^C3(ڷޗ#rU+mEV<
#'fwI	2F̆>,ܘ_}Pv7oWql5wV	G6$J
60cUn3rM
PhC"# xXc\9fw-!&grB0Ts6Qt6CW5Ju'f3:Fjn8HV8غA[cKyl*8$$H1-9Jڷ3aK">h`VE«A8F4^C>6ø5ݷ1q38CYAC~Bez2Cry,;6ߦz.1"jwCXI*^'U8Fwv[8x9lťC$~nV0ڞ۟[Ez>5OkKӃ'GB% )37@Tdeځ*-1ڻ_V#::\BDTklT	53ᘪx6-@Vल	!hLH{94$ᇻ:5}\
<;k{ZaCVeƥ=VOP*ڎxM#z"EHf{2j,=7h<ϊx͖ҐU|/jZ!i9U. 5c0)3ޕv\G-}#5QG^ICR1zTQX,otu@sDˑ؆GT޷C60/N	>]6:r7y 8]RN <3Pn`qܺHY;_7S*HckK a8#&̷'}W
933&_2s䊫B_q.uuBvZY*!3\qgF7xz.38Uo-J4YJ4]AW}]z[Vw6d>G:%y߅{$ܩ7>JrӞc@q{:frϔвYM܆E\}W,1xAGRخG%#8(IH{[v7_F'Z9g>2K602$F=̓cKx?넺G 	ǰÇ	gP7v2jG؉d׮dI;	ʫ0_zrǁT[S3ȏigȑ+=VoynZ}U y`ò;XAwo4iɝ<s
\/;hIwĸqHL{z'-MCLװc˞}p۸svm?z=~|̇T@s"Fqԋt$O"32fL(43oO>Tv>=U],JydFc4WcIPWY'RH|VXrgHgmEb[s\6fxab9dUOeOj#e=fjHa5PF)enڌsVp)vh6>/ڥz	x)SNOF%}
W(PdSk=EOSxG_)?>Mށ
F촙gFx!V]YM<ąWD@;^c@Db㍑չ#<AEۣ=$-i7-W+Q@UܱvAnE)'tk:>
x9ک !WDB{2AߢT(~	Rz!Q@'ҕV~,LWQvχsh-<0CgpCGHcfZڏgY$nnpܬFdm@2W&s^m~a66p&N7qTxQU"g!J1*1tV|7;@N<z*k*_W_I3tTU53%U>3|Ʌk}mhX`WM8&D\ZV_Ѡa۵_goÍdwnqaZwĐGo
Wo .qk}>5ƹSOGuvcb)WV󹠀JjXnZɢ\u!$zI|v"f#鎆y8oig`okr@!{H(b`Wo.!IO"նJieDS;SI@vq yEc2A lSڜ7RAMrTk!1II*(AVNiXTUdCJkUwT#h13XQUI֩Zw5 M{œHNa̦6dnr1~tElJp`TǏ-z#b8@JF*nEP 	tDĠżQ*L
AP,B-S;Y/[V.0D!Ue3GlMSIP͕mHa'6WS6Ӎ^R֚BV0gUADnz")>)+R.V)b˙J3NuZJAk3Ma65rT}0\JC0)3cSG]EgVHkWiihN/.9#6IC@{Q~CZǅ+sȑ@b(!!Wu$jՋn}0	F92$'$ёUR,$AR*^J)UtYZ>dzִ2i6Ƨ-mJu1dus}х\7jXGmu$ރ plAi`j%/]i>rÑtT/b׽w$(*i6}׉(#'e;:eR2hUx	QPaQ遘}ءma
j,RK[fT#z2J3dRS3sD@cDd\sDHQ^jLtA6*Maʀ&*2e.V'??VīDg%̈@+I&
LwHkY<m[|K~F5Wm.&Vl9ͱZAu^-^a>\GnV'Q/;j9&_`6ݔWHO݋ᗰ ]ٚK6::P+%0eAju;uYmMB;V%CRfV"oe}|l7pO?,Ν'wƚ?RU)8~NսVc6M ^K.nbI, Wu"4w
H%J )r^o2ދE鶔.K3aIcE(jKvJ/GxgU$e>Sn	}OR:	>+u8V#GFOydf3Ozttƀ@ezE%\r2PW_W.#;nU*	25w:p"jahh'}0R!'-}WSLx#$:v-Edb.r7[6qdV]rMT\?ֵGqG~TWOu
h(W4:RIgS^q1\5Yۖ:")(c?a;Y!q:3Ђ;E#IEڃnDǔL#p5>&XTMrESF'Nqd?sbh5TGk]]@Q*08x_A nF :W {vx:F:xC<R+}veԁwL!wQ\s$>>$Hec?vW?%V5/n4_Ry'XӘVa8w(ٸ'kX&V|88mJKH+gcDSC`|- 5:)Kj7	#Qo)pVg$(Tgd?.ȑg%Ui.iN&)>y?*&ie0A^Г6e	ǂ}:R!cg%;0;)	b!h\n,+ or!iy}_GZh)mlזorXLh6rǗdםq%RFvw꣋[rU681pz0faVAt#zYQ)wҠF1YIcAg`YbY@vhxA̹D8" M5)dcxڙMFq.rwjk䝻>dԒbNtb9(󈎎I>'Eƀ_	Hg)#m#1zu|&2%|V jY~L!!68ࢩY[4Mqc=F痈שc3UE/PZU!Ѫ I(V:X5!H@1ijh2Om^єIJ0gp(Rա0ڏh#02hJii/jLoIN(\Ujj>bu6m?F:>7Ve9exS VA^эjzUmuxte;v1,b);sR_+QxhከoZB46
pwxbw:JU>kt7R!װhV:'QN
(#8]kFc|{7Y'9YY.ZRD:[bKp	}pQ"EbBTH+qYec*6N{q4NdBT4N7^z@[O++b
u0[ou(2|5  XT"ud+KK]݊WCc3[[:
ڄD+c"/o$/ۑ.3rߙ#oTp%U?!ce.[fl{2쀠lPnGvdڼC1 ʬP)y*#+	4$Y{"a|WkS3<[~9FJ{9U`C8$Xr%ZeU-hԴX7&,SOR
Ԇ<Ks@vfPᦿXRL'Q|)*"(:7+# sbE2AELpzPUNĵP.WX>BFAjJkVʵi̵ƻNyrx&]iHtݸVQƦԚO <RՍ+CQ*QaL,*`;8`El`[K3R>MpcʮMLYc, #=Q),@0DIpWXƫ۔H xkzJ٫ȯbݛ159{ C3@=\wө~%B_˵X?FR7BF"VV&]{2;(f;D+deWgm0Yͯ)n|g,t X1| FQ5<8Ȋo6,9ɠL9T -P=6DR68VGf01(m<(eTMWeRt;wmgA汊UtՖx<P Zr	Ԙ\$2ad)qb<ڞȈwRe2ŅqV++hC9mP\za[{ls_s7m1݁}g,aEΉKha<SA5]ODIz1'w;(ը+ů!2
crTVZMA's}·n+ԝȸs!.<DvΧ#8@,qM߼8\%GiU,[R;!91Z
 !_mŶ$ҍnX/q(Ґ2nx
΋}$ɉ{A+ ϏѾ6ޏizlMԀ)}2&Mߧ~WA~;Ƽ\K'}\q\Wx #yL>v^`1"IiB1w胔]0
~L,Ib;ƣSwQNqki?^
n{8~日V9 Was12r!pӞ^;-<*4m 2O\w[:_VH>MyЫ6H#k&^QP@Urݔpm@[kcrQ[/l44#I8qy~#4" 0]T?e>oc_6T"T(%nkDМ1hrHaMZ^z)qW ;%4h@>O_Bر"y1^nbF!v7ϥTZwM Ov~7N	5sR6MZ*h3n%[Ya7v->nkΥ[]e
,\`5;-X{mkXkCȑ%lQO,OJWEne7n,dUu턕#/ȑ)nN"y%ɂ9pcRydshȝm<yMoBUT}Ύηr&/7
L-@T+Z0\j/20R7Bl:L>mWJkgoځؑ12Xkm5)q ɀ3C|~{!1CIsǒ9IHxk%\Gi
jK{[Mx'D(У ;A@ZS,PDt-?CjTG
DED#4Es'SɆdzƂ0ֆIuH[h.ǞtK
xɧ'xUMN;S%?)U4QC#{߲RB죿"+SٮTCEREqP"V7ldM5\[CH:JY$HL'	Z,+fI^@:iڅU
M'}Vs܊tGvbDWq(Dm0` !xB_<l,}bU]g6!eg :)5rdeYt%קe,	"̦{*7:7"Ŕ%O;j8{ÏI3La%cPdE]0?d=HjCp51HGtsaIBR++JdX,#s;غ'KJn24kG޵>"m&
a(>e/L)}M$u Q,[&B+3ڇ$g2`&T]G¡j&B1uH肳GHv ѦNmJNdd侮)$yupYk66ydBz4I5hO%tR;b Ei1aW_Ppcm\J5#s>V:"	ZZ׬Q5$Y):H{>(1	$ii	B'Ň]W
Yڦ^"R<\ Kf^Fd*EĹe^I\9E8C4|qV3d!+ph"k7HX9/"I#ÚgAFH:>R:IS{	*FIP,+2Yjn^z 5&f̣$A'LJY*1mh?4H6{4y>5H/*}Jk8iǦukE:A!R:=5<Ox+h(G>ʪitrdGַzzSC-r`ŋb]ڥ+m[Dį_+*]Dv4|	3PY&JVXڈՄDhmkIYbT7 ҵXo:,a>ɴ^xt<|:.~%zucxRw
cK~^
TSk45"xSnHsɄf!?B\R\Hh]d"|o+qb580).~@zÊc? A-==e_1/dXvX'R&ҡJ\|6YOreLi9D}l"VYFVjbU$zpmAT	I\=Hd]qCWP)aaG}>2z(,$f@[xXuwbk6[we3#jjǴEiY'5Ù֞mTHKi=2Gw:okuG{ )ӋcM	2㭃OOwo]#wʐ@$?Y|4P2xF4~8--P%[f44 C=,̣xy}#n@)0{nN3˚:@&j?A
sRݘ!bQy{wůlFTMJ!ѝD4895+&︸0DHP-f͞	YVTv`%~!1S[;F+7c=Z=  )K@ n+.:㊳A9;
WʛݳþY;²Ż)>ӯʲ/1ӯQ?`5ۭe*b3t4=C!Mbj=
mxvz( (.!k>UBA!+%ES,];ػ89{\BrB-ԭ",63 00q 4@X17cF= '9ӋC>BDy5>S["G|DKV85U>/{#jqZE'mm˳?9V6^1t5@q`87LzhapPsd1}CG1Y/o~ah5<2 Qx̘Ұ2;!nβkbۑ_cV\<WEuh0byH0F<p7@:Ї4F6$ɒ4Ixj hls;\=v$8%꺜яŀ*.=AstʏD>ơ"<<Ȃ*a?PXl-B9ڡHѣa5!vx@\0=D8L~їI$OI,o42WL\c*HhE Īq/[3?qz @3:בhx8N![	л&	R=|:N
dNu[BDOQ5v5\2AOi9B{Ԭ>\_D5P-X0p-ܰJ8x
nK
K/&<XJhq K k	Q>-LT(`>h;PҦߜMRդJ_CXP#b,`Pͭ*?e /a1b\Lw ,lHv\eTo폾bV>5KDSl?{tw3y]IM,Z-U߄U-N-9+N.P4ro{(@ķC0'@;ytV%>QE"Zu;}PJ)$~]U>X -D	bIPS}}6	XQ
K7 z."[p1@
ĻVEY(ÌMz6w}YA0*ؐQiZ/=J!U-Y؝񐈅Nu
Bۓ 3x K+C:[ԋ$${!ЎɈ&XqSt9|ׁx$q3%!е<!]Zt]sۉuNٝ.wDɑIX bP?I>ǜD݋Yܿ$ZOA#a Ϛ|GNZ,~]1a)%]iC]4P_1`2๸0VRd`GU`)>;ǹ4鷷yk21|MMʕZJ1"ӥ>աIau#5VXA3Eo8[=nv0bL@D)d4ߵ
..La&O`%
 sWٱc:Up0<pڦA
6K礤X@䴥'<0db &#B)&e
ǷYN,">؝j-!:ֿՇ*8=qB]ES]5)f
if==2@X&q%TYJ`qrNT;!Cȃ xa,-q92g9f:=9
[-Py'-|4װߊNdhM!duۺ%,Ϭ̔nYfq{휷G[vMͩ铏+Wa~,~E=,fXKYa)ʺ4@)	`#cĺ^`s[sUDlEiݙAM/Zi1V?y7;;g
؂~lَcnӌVfD䊚%J  zC<8Ep@C zS枉v_b꜈^|-Y&<&+ֿld3W`e$ZffeLU^Y1	8hjDuA!@	#.*l>!䰡.1n޸Oz'cq`)K	o=Q~^D]%5Nm}FyDc@("̔'ۯdWz w"lTX`eO5fpq2\&Zo0cqxo`4ɚ@FwP
uj  '@J=xAKߺGqM>w( 	jN@^e(W'	 (m\տWNlsh|kCGDǋ{,rL#ǹ6pHUgP;pm:zmiNq2o8[&z*א˼ae=qhX^Ճ@؍mܽ1GDגO%{(;Vi mLuBGA{jWo 9n432Y?n&QxKxDL1m$ONe;V[G{hmɋ.<bVec̨ 5q`.zq$13܅xo@qIF@{➺GDjs% 7d  g 
kP}'Rؐ;"F3?o"?VlweJCR̸QC5oVEh@yϊMj >qRɃk׃ał-;v!ڴjڴfapڒPm;->qr38-q3n1Ȓ'SVo3Y{DiLd*ZYn\ՠ:gjRO=.wxSg,¹d]MjL?m$h&>sz
8 {`zqVB %8CioEk܇05]EH)5s A4=S4Ac<}Xuމ;Yx'AFZ	vd4Oa0Iwiqق&X~o59&eA= ~y!ezM!Zp"T-j=MrHQ$ZRG%)VM荐TFuY}&kJ	3A1Xb?М!7n+Aj%`aĪM`\xnPncQ;.A:$nC-5ELAϣ5I*hoAcuO)FխVbZ
G&~]|M@'ACB:vXf	1ǙyZ4q̘ךP./!Fܸ?=q8EoJzEdq̞&<?CO .S lv#y	=tuZ<jP/U'Xf8P;Ғ5\]RwAN55Uv6eI"#c듕A`2z`m=<jQYגf!AٔM\	ଁ*oHL }W͍(=]帹CUn>nX5e'^$kYd`R) &@6AŻ 	@)@7VT"V"`{H,dH*8F?QS ŴG,QNEGOʠR'YVlȀvP[2(ƎBOd#AI* -P/3!t
U!?Ŭ~H7n-F|!ZC~(#D^d^	D2|=!L\:6ٍPcz4Ț˓eQj4
dVLm_@yIV#d̐~$>	0IXMdD%,U	Zd>H)6ҕ4`f0sdqZ4h*Vd-c~)6T:dCD}(&2+}&HW!M
0Jc рʌΐS3m):v	Cy<5y$
FAffE!o53Vh(yɴj2`/OJK2~DLX	)`b48. B@ZY{%dκQ^s&*
G.Nj<|&PyrP%Yڔ2bh6z 	,p%3mPå@ ։pe9zճIf7Z3ٓlgjBZp~e0q}Е1{ 5F^͖~K(R
 Fp,^t{&KٟHpVM3YE17=, +B 2e @D}eG ,XycƦn`HՅ2LbZ60&N'vsBzO~~FLZK5uoG他Mk䰄j`j9Aov06"Vۚ5#ݐFXi)-zTX͙uPWs-bjVCcrA3F% m~CkB?!cNL5saC8{;z4tM	):VmĲMRM5,B*d?@0
 4-[U=N *&<l<
qU6ITgĞ*ǫR̋B12Jݱڮo
xź5BaX>(<M3F? JjfKs
"7*2iZL-P[[wx5
g}$Yahu,oy&Dv@ŹJyR;2i8;avvcAĉNh,A(!y[WکTnٕQF8cJUeF
ݔ|Ej&ʝ-c+O $.f*lau	dy1t'<ѝ1A
~0;;ж^h.?B{g7^5XXOBj!@ B;$C	(5P>(CZu_0EWQt]ĂiaC]}i19HIݟp)`TT=t/\R _A9Fh.4[5FYe<jq`&i F I ;!d9[ESUlӫݜy] IWePAa4TLC;T-9B !ƚ0F<!,t
f&ƪuS4 \Vi_fL0K4Byg"](`!ay_t%vffc*bb4eXL>IA:$M!ڬ!#>= 1AZXlʽ *i"7N#8`$M;֡@R)fP8p@;
.J AC=Б/9IŚGA9t%\7C6kN݇,ڢTN=wAJ~^L|dep}ߤ&"%QvAJ$[Sj	eFBBBP4cly%Xd%C%4  (S
&O,eRnPz&_\%5F4%S.oaf~	;>h5n8=?P#r>uR"-JtB%ihNf~MaYghfc)nx>|5-9]HVcB@Ngt*fLȒ3Ql:E;A/'=A?>UJ$N\Qch&]t(]B\Ff>HT[K*=C F(=Ab~/g:(m^(Y52gjcSD^@2	Vi-]=4Dd$XUޘ.RhM1J[t&$Jy!cuOlɌl%=?->B!@`ONIb")~)
vBT!ip}O*(=I@ϦkLÏ5SvWz	֜IC*~B,<恢Ɂ$j;\ l%=h ,@+8@!Uk~IhH[FP)i֤(^0HFٗ>FTnMMCC6gZMC}1Qi_x67RB,elyhEzҩnW5E.-ZLЃCuRd"ZVm'cm	P<..ȩ$VvΚO9AJX2܀AH|ATξE&6$|V%aȪe,Mfaxn*)=D28B(=L QCB./G*Ȗ}%8*[`"y	ErI,8|C| KX*7`X.cbdA:=N&n Bi.NESZ=h(zP\N-*	ܰ$pl"b>)'>lNo˪,"C?ʊ])^ g<>hĘJPdg%Z9ٚZt&tbo%Uh0_$*.n?A3pc4P/=In!*j+T=/MHWΉALBqcNC|1J",!1cdh% PqצI=!K|NCO2a#qڑc(NGŰhn.̮@~l]*#c6<@'2La=S"P+lM[ư%0f"C63"Jbmq]_02%X.l9vJ<*} s|3GSKPCHP23l},r!^s&=tG,w+epnjcs)[T{MSź2Oct{8ZSZrjur)WZK60c>XՍ	:B!sOGC;ojV#5%tLu&<SVd_z,y6Ido+~oޥh<;O̥P^\ך$#,fn	tl6dvMfW=Vud**l6OMNgr]tmg74(9n
<!^x..MUʹrGp*f]\Oj7%T!;ޡ՚$fvKޘAF|,jLwo8L(b9	C+l#(73j"r_s(\uu:F[=/'
=80m,|w^K1h8dR3ѓ8krvۡ}#9h(BBE.2z8_^Ow6Yظ7O:c	B;?SFRvagOkY-CR/:
ra5	:/+U,z\.E%16a0`kM=cSїsߡRqPdpB@9{Y,W0գ^Swܑ?';YuK%s,lI{?t@,r7*O1:ܾcv=ݾ[~kRv9tuR_gc㠕}Aṿ<r7|lE]bC`r89(<stzR(qXͽҲ[!W4:ǩ,{s9(v'i>R$g(xVRy#u#y=b6[h^e"{$g<L\ c603+T>=a_`)s+ǢvN8ۃr2dB\<ȓ|^;aP]:Y'[h9^K2}'>%TbBc/K?	Ǎ3aDrpbF9vQq1ćT'R!'qO4X%F;yhPC{~)su^РN.aσ-$֏ceV[|g"ԊS#I-Ν[	6|1ȥi5-iOBԪU(Ƒt3dۑF}-3^B+-u3rE%^NxpÉ7̩xOwϹ8Cڗkw~Ս&|Æjw׷gr+	\'v"I,0$#("7ʊK<.AE113jA,=	$ Cn3I$ƅ.m6S$\R| rC(J,d2|rƘI3cr6|8yIVH͍s:/45YT-،5@|H%sQs"خMK:2"Rܔ>$U"2iqPL'\sTR
^JU4ec'p&aWK4-hPD+.lEuTp7KDK=MۼVs.pт-T4C
ZF܂>xCQԎu$t<`vASicEUj8`xde)fRVH}y墍>X6AN-_x'E׊lf-UYj.~zE,YIBur8{p-g?\Wkڣk*SF\=)]_E}ל7;:/_gBy[y#R}2YrenJs:Ӝ"W
ܳAC^|EiP'ךo|:өv4̈_rW,ԥGK rt /]f6ļKk;;`x#/@U^ggB	'AaiXCyR_ȲJg+۶O3!VfQďq[SY
ZEӴBgQyubF)dKH40Vu{ѪeGoQLSčpTdX125f$Q:G3#/Ʉ[(I)HB%4=2~|;D&"ERAVr+[xBH-{&I$r_.9Jh#P&j:*
XD*z\jsm^bHK\Lq.8KMAx4z$ J=DxӟJwS|KJuʉP,;b|VY6Rǥn|z̏4W-\6s̕?TN!9IUgNv7xSV:OU'M`1)N 5/pv-yٝW麲ut`,jJ+]FX4Jbi)I	B)Zb4Vͧ>A03=}.xk.:o˧
v>VRk:}e[
mq)L|(DJq7~hF::n|0Ԣ	N/?5%&
5-%"1G5q[Ĭx\k$!z)\v4LFOQ^'+\FauGqUدǹnVy nj1˚u!9JUΚpQ5*+*#Jj۶2,5ٗ<,.cXV3e)H,ecE'JegGcx̶Kif%љ,HG۰&ִPόr[
1+o:OH/WVX4KSګlw:Đ>k1[/@VH=jZ,̒jRVvbe`9coi|`QSk
j6{vKD;oU	}R 8DNu%8?Bk_BȉG{<qk{cq
AJb5澩ȅt~8#nem*N:7153U+iՇ
K/J6|aLGX/FN;#Y@{Xd)'5-d;#[O^,q8}}W޹usn;f{ƊAJ~8[_gߖ:9Ud|xZSWU?	NK{_Ϗ[c_߻%(hb&E~׬󑻚6j7-ub F -
Ўps'pp2PfZ+~>-[NbkO^OWHbEcr6mG~P<PHra&v	km
}
lб΋	mU/)+)PPE/7-   !    ,
  u    - 	=(+081166-3<998 X p	4X4p/Y*o43W3-r8T?I]Fq7FY4Oq=mvS	S/T4
U21ji2y(z+3RKU,UR'qfAo'Mo6l[QSH2nHoP2QPPKXrOkZWhqnRGsNomjVmol # ' 9 <#+1 >-1
NTai3Q1S7j+tt%{P6f?PLVZSnZfnRk[prkl[egkw~^rlTrrmWoo_{n02ZUoiopIS_f|ihnnxyrwx{ǐxǱwz035:J?aNT6ce6[^(kq'OPRilNqn^FuPuj{1_]qi_uhsԏzox75UpVrVgWm]kw^epǐ5˘QǗiˣ[Эh|^ogrutǔц貓ƧҴьԧ양ŎήʈՙӦʹΜīǩǴʹѩѩ׷ֹͺ쓎潍݃ͱôȓϱϔת 	H*\ȰÇ#JHŋ3b6-2CIɓ(S\ɲ˗0cnƽ@Лɳϟ@
Jѣ$ۡGdHJJիXju uvjKٳhӪY?lʝKK~˷߿pZw  ְǐ_X=h&1ѷ	.ШҙO-p	xstw@N7fs1ţ_z<ҳk뮂/PN~ }+`ZM}ɫgI%G:n (nT
Tnz뵗T.X8kY tOFõ,"c k,-#h#f@n(;!ՓAb1) Hed #;ZY-i;J9P=ة)tTO70SsőG )hsȠ|tSN:2*iy@5H1MZRL9wAXrqX*l=qV[ojc!F/qkn0HJ;M[= fۚ?zO#qkڲb@{Q)ܳfGX;
!!|D<\6|퀤30C6$N`h-,!=_ercpTE@!ba0oPuOr
Bhc#rQ-6ZA &3\	 44ψ)x[U?7.@۬Yy'ӿÁ]RC>)#e*<txh 2;/T)b@FR3~Pt.<2x*EV/{g=%ܲH2Q;'u==ܢ}c@ s .ȋaN 7C{C=2e%xC~TG {(A uAf T: 4=o`aW@D &+x w$(`?h!%#>DsĨ@4J% |)a*֜9.iq{8#B3E26NkGH?<Q
ew_h"K?nHbKb@?J[%RSʟԈ@N([\<X<8wDHS%K`	wEQ~ &&	"ZJqzibG,D/>D;~=냈Q@C7Bc<|nP]h*/2hB (8H}:r)J2=H,bsTM04BUyc?l=.p/=  >}*TԭXȫ^c^*X"hM ~
NwjMՔWZl^EUiP!* pn\ c%{LIͬlgK[nvJ=kw@!ܪN"&	9*QZ!/@ф{" ,k\P[=6.P~&,P  s[mB}teBxALlH@2BD ]w(NqdLe)w`*VኘT\)3?~*NQLBqo$T8`qG,T<ĔE	/WDEXu%nv85:B`+%#tXlo&Rui3'Mi 97rT Bs{_Z#vC@P!eHҸuu/ݚ:"ApA-BCє[ض-hPZn\,|k^6FLa(&h}a2ηۙBm7l/   R/| |H+}l͈x=/gE=v^ntɅ\Zi@y]49.4;#O!@LYI0H(

)%?aXx!T%B	/Jo^afHxQȈ^ʏEəq.$PTyU/]t|=QvpAP(H15Eh|*`\(o]/8K{pƢPaayrYC(MQb\1RGeq  *ވWTJ>IE
}F0 nX{wI7}Y4@UkV
g/5g(Q
lK=TP1ia#TQ(0p%aIs
0x0n2 V% pvQ
	 `_@ee!uZ \]Xx]e:OCu ?	Lu.ap < ^	chY_^b3SpuycdJ`Q
FCEV%(
B	a@<W\h`腘Յ؈Hpp7IS8
` a 2}AE82L$~g1(xXxYȈ^ShPzYQUD	"K04x$1!QPR:@ TWaŒx-	 )~G4#:st9G=Ps00@q#:ke7w/}Z8ʸ/8c3ٕhGMiAu`_ Rp72auT q
'b@{h9)HaIvDj#\2oFπ
%).;QD.RN]i⒓DҙA鏕sP	A11  c-fF1 &P Psw0xmhiʹ̹2i/)ٟ+)"(dMx%V)0>Ur b}g1ˁe?0 z +(k]i)IՁ5Yv dXgn;`Jp:~@ Z0  !@1t9	Z3
)ɦkIwbQ	Ht@/pq	cOtAGq&Of!9hipZ4Z6:7/j
Gi%.Ps(Ji y c+Q \8p"Ѣp֪lj<zm*,nr>h$V
Dz[ax+"xR߰e ̇!וʭ8ꭥJꭢ0@ƗTW!3V1P/0hzpX
VEu$-Kd;%aKv5KZz[PLo
zfYQ3SGdP @ywA
-0	A S5ƩJojS5TW۸	{m%&  1PtЕXu.Pᰩ;_P+ <p%6븋KXk
;`(B:o#xi^]kGctWt}ŷj`)kkKֵ7s 2@-%VuMEGzd$
q	*s
ADGAb`;

liPˣß
[),zh r*H|$2'` }j
@1#ȂB$FB8@̼J-v\ft +~Pk		/S1kCHXO0)GDAnЎG6Lnܭ{yf1ZAcR:
vRPޠREf| d9BJOgkF\|ܜèl*UryF'Zk/46i(n)/U˜Bpv`LP:
;+7"]͟\iZ9Jn2Z+4:;"Tq`yE`EPrQ<;+ZM]kdLST6	s s #}S%_3%N+a}%cΚ[tNKټdi){]
	jS
Ѝ )0TNJ&	@yQ
֥PaוC^_ͦs|x|)y'
NME/xxS6(
M8Ϙ	6z@k/YXMr>d
aCW,- 8T'#f\ .`!v&1W#\iaݟmʖm=}z=E~Ķ*\уɔ\7/Ox0EA
 C܉b݀ ~C	"%ȐDmbePA`ƣ-SmmLUΟ=`AFnQqwCk=p};]e!Ht
)ȁ
<upsM[ݿӝҌn݈[MڏnpֵPȊ;0 Q	/~/a$,e+4}KEݬ|ڍɞىWnQ%mc^:+P(؉`,pNXpb2d	\=ΎD￐>E!J)W7]%Nh\1GP3=KT4ۏ]vu~TNt!40|S9?Ѝ
jkA1A7tP5TSzkx
yGk
aqlvy,Kbo%g y&I21 &=U# 5: 4PO%GjC-/ v+AxA
uka<#."RTaC.iȏ;ܘ?Rϝ+x5u36t7f!P%SQuA}J{HWaŎ%[ٰ 3c.M۽q䛁i0Ev?k6AW*sմw_MY<I9E-3K<@*9RfН̚aJբ%^muRիyow\ 
oI@s)Z0Y owbȦNٿz/tݻ#kWS@4s1"0r)AJ#	ABH5	+06-06	'mA44 MRlG8CJi@F v0Rv4H$Tvs'Qf)dI̋Z`B2<CHڰN,3==;OOnm6CI)qj'EHWʖKgjoIE}Ԫf@UuUV[GzQL9L֬	XD|m	</V[AM98v |j uZe4`ʸUJ% ڙ5`M(5gާ v:=c)@`S\9ͼm0m[VdE0Зa[)Κavu7ޠN) U_X*XazI"a:eHS{7,;MM@SK4ghQ[5nYs$m&~h pNX\X!ՄW?ztKΝ5ª=!֝/A`SX!0dMܜ	;!q;\{u9[p.7i*گ9 =  Ht{z8oyy#_% ݝM;#WwMyDd
*e̖<Cw^ML	r;)ErVBjU2?P0C@E:F o@eY`s5n8/j0y2+x7p!F(Sa8N)c;$$1h)  0Љ{`B7v;Ey1vєcVo-
hįgx!Uǧx $d`@!BFS~t@F)4F:l{:sHS_&71x$+JwNJ\^f<KO1
n6=KE|"`1jx7b%M!G"IW%׉=gxRbsm#;8ʓ{Y={}3#(Ϛ$˲M`"U="-phF*c6!C Xf=(RP`SDXֳ=e12Eq֊a'xςҸNtHQׯ6aUuP6wاt8^N҆WN_XFRB>'H2Z.vP78:vUDڥd Ā%a  @4>tU@̢Fimq6I0BHG:jE`bޓoF:-	T48@Kv< JLtU^g-U`@jk%%/SIJ.GM:a` E,aiKKXWs#4DNo9!x8& Mdj!调繪4ttߐu\QPrd$)H$atBRo'fRee!#g;F&N7ohoɜ/=A*wX I@7[XUX@Z@:4l{p{ق7`z6ݧng5U̌Nq!NQߕ8gR;^R`>v×!)Φ3hlqs$kpD$5ވ;;adevoOO\
ngύ{`L]Є ]DEFrQv_EpPj^B'wdG蕷orCVeåy
z.5#z5^Ύu%}H1ଇ~U%=(Z:/C@&Ijgnɱd:X:n杧ORa!Wotp
QQtWQ	uܛ3o}&}F* `;Ue=\scjiJ30b2|)2<
"5ϐ9@5cĲ790K!KӮ>J! =%	n?p*()6\?s"KS Kk2дs 3
q>wr@,0l5R@4Y*#*G9*S`|dA@TiP0пi+/Ѐ	",\= |	:%L3 %MSKʲ-3 #>S1,<Y|	k7ܵ9^:(_#[1Jxx@lF$y PK܉|DIDLTMNHXp<[ 3>+9T,wBEӹ%L<p2sNQ4KAĮF`ںx/gHPA [UfĚ^FI?r|ɪPc	C/@\̓l|$l鰚ІNN@H'#pȁCT !!qHTk h$IoƔdI˽ɹ;@*;}t7-,	WK;,˹2ŃtTp(ʘhʥ+w
YeJT{v(쀌DKL'N'KrtKbB7Y9	TVLG.û9
A5LML(kУ,%<(2?$IKtܴ$M'2w@KEz+NXJLw@ܰ<@}+wL[xʤL#[RQgjz4Ϭ@`: <|͐	lsMTt4)={Cx
<RLe/NZD72\t
}+PLȚӅNTXbcx0- ]MTQG$0FюqEp/BRDC$]&σ% U	ӫM#+NNĴlЄЪ{XOTzE1R8|95PIaT4I?s"%۬,P942b΂@JI,W'E'=W TjPO`īWLPX՚@;[|
NN 26+XX7'.ᕤX<g>={p셷&qhDGRl+C'
ɝ|@LUPMBa0jL^N|}Մǳ5MpoX H3]ωz?R̬5	z(?YITK\8ٚHMR2-HP85.<WMuϐUluE1ML}V]ͥr<"DiHx(
}/5<`
#1\[s[o|^0u"˽Z͹{TRRNKIK)V _䄰O]Ф\ʤ}`LN]H񷩕0iҳ{:?X &!] U`$`p聏\0)0kVg&h&(u۹	<_i!#%qMɽ}\`	2wuY4{mCuN_wYXkձ选;#woXVΡRxT-		GYHxEGaoӽ{2sGM\W6W^	_V.GY
JU'3{@wQ:6GUx8иAbҡEʹnTc`޸uG(8^m&x;y^4".4nޚFUdF,v,Hd.ZMkdPex	Un  !YB JƬ !]/``	}( (xṁf~fcs,
MfyzW'Dv\d`aw*T\R	VRgQLWWlr@SpVg:shAM _HcVc3 ǐEˏ~Gxʇ' cc4 7Qip&lrnD^lgaC&WW<?։ +Ȇlz>fR⢻gdAj{ <J&.P/!:?<?@haĹkHG[x&F{DE=7H:\*gʛal^2AUoNdlЄQm_Ru6]ْ!("+!Q!&/">$ȅn
	b~c@sncqN,ݫ{xNxsnvOnFNsu։N(MElP$VN,J 3np:pӱn!̅&8nnM$q+fgAd+>/drn?qs4di4@(Ub4QlՃ"-}rBR7gp?γHt*+Qn1DdV^~s4h㠆t>InsNW&tC0;{KoiwdiJt؄#]H#W$w:!~8Ї(uce"vF!!4X_W'Hk1YI "v ̈q+avtnNA֎j/չ_\tJpq_1ms/]"{`Xp]iyy7z02:HT0
a2`=ݨH뀏u2	_hw֏`ĸDOwo1bqx',Ld;˞
~yqL>.NךM{]ڋ$!3:ЂB`kM0  (
Xz1oDPJ<s]nI`B==%(LLwiEv (vi5חMWrtǮu/يF=P _˯Jb݊RxS 1(,h 
2l@Oa.)7rQ(O5oQHVlQ[5y2Qs:wNGŃO=Nn݊SXMނ5ԨWRU]ZTLVSn%JS_v7Y܄Ĉ1YmN:gX1ħ4&M=&!ԪeX6ܺ) 5 frq7w{;?',%Q"uq=Q=&y3'P~wdQH)U{H `P!U`Te[
Wlua3[vؖq`a1cMF=Xh7*Z6ꨣ;	OJ P>(1ߐUZ))MCO;[WyA%=XGP>7FItH"NT6O=9B݉SUT_	2E*H"VF
jQGؕx)%Vu2T&ubE<hOetI-J?R,[hΒ, & t,T7\f NH-xJiPFtҙDW@<ş.A<D>tNǓP΀bj^Y_z`Zf׃EAZ׆|]ެQr,fXA:4ib,hb6ڲś;l&L6XRDe ,y5gzs+:Tv =\ҶF<@6AȩoxQ;z߬^-oć>1'y[,2(z1:oVϜjZ3?U"iVdR5jc:"l՘7RK@<z|i=6*?K٨DDGu߷?tAs@4^$k2DYN@@r1N@jcrUY Tޒu[ 4ЉQR#0x*:w,YI^ӽ{ =B@r#X%uc"(E2B1 g(ѦY$;OO_j!hӉ#H1FVH@Ͻ
T`,IHS*$5X%w*Eر@*"e2BޏlXX9L7}R5,r:8Ғ zLqnhlYY"$A	
*	 28dI@2IFpv~XJ'Nt$ЧD2Dd^V,::[ق5
6t#bIMGaލJS"Yr`@Q\ T̑V  @32HRnBE<b `\p#Ķ9	c 
g'iUj9wR@,(+e#aXL41BzN(F[(g4e<J=S'L[v|b;ؤAh:M9R~<P?ѧ3
uC6蓥%a'X=n#nUm/LX~kGCsT!<	ok\ +`	Mĕtwæiib*LI<J)4x= @ek%i]g KWRo(	"otjY)n#8U,%ALB'"H?aG@p~X
&ĨC]8(nEUk3{]CVJҲ; 7(;t)Irȩ>܁{=1X
aә'|ф	Tņ 	J9WD %!)նc|"@z$]e L'@X;a[=e3!<ďxZ[J=lM	GjCG- Bz^2SM{P336&F"NhЖ"_}2$ڶ>,XoJ< KNZ1SwWTZ&^by׮ĩ6^WH{LK2 aaM`ȉ↾1Sމ62 9qv~DvG<	 IcR}VA u[~l$tV̈:Wϯ슻(4Lyr7bmXz-/><jqY5*@P y+S5T[͉6	 gbA8RzLd6{zv850dGW[ դh}3̪7cmrN-ӷ5a6v /zl  .B<tAy<eVHOY"?菛LA7$BAtQU
u$];QWVp TL5Ed'_ߥZfݍ0V_6 3CE]	 Y<ϳYfTеޜÕу=U^7u`DY,_p,uL`̌"ӊ]_n!ע]&]Ԉ_Y^a	^jD㹃	*-UqCCm	-MHD @S,\RyZ-p-PU [zLS<!b#]"LX:AYED@eFh(ͨMő9wXՄ(H;XTCC	t=HI=<ݢ|C%C/B%@SLڔ΁d",%8OU`Kx-T#Ql`~9#\,cZ:fE9`EC;V)b<EU$$a D7c"BO-)]܍*"=@ qta^bAlĔH\<\.S|#2L~,G v,,^cPX%(b:SN%a:J9ϐVXߤuU"%委AdD&"["F(&[)H%jJ.dYI!Lc-8Ђ>d˒0VcAJ+  ?ved!H$#)h\&d>@4Gj6j&P[l!>4LUpqXVTTS7[&X5Zu+d'-a,!bldigA]^
D;M^Af.U.XJ3اAedf~hΞvDM^&Ii^h%D!ć(c&ZΊ>(ZF$J
&_dA@bl%?lB\@e)ҥ+@)Ab<!AC$YT{m&4)Cv}@,"mTõdYN1Bv5r,NR$Dy(m֖m&Zn:ƛN"mHU%';]LЖqBfh&ziu'\%ƕƔbܥ?$`%8-;DQ)8- a;?@0f74I;=X=Ct/g:A&J@Dk`,<*	ZhבUH#pJV~`Рn^!"fuYƐ!ƯUEg kۖW|nD?UѶ?+@|	"* ,,͸hvD&nB, ՟0]OD>9lSQ"Dښ&XUU*:)"o
ZFڑVrhn!6h(:au)il*wjbbdn]C=TI=EK;aX! Cl;$;zԖ"Sg-V056A6EQmvJ:/:pf/F¢ j%K[KZ.h0֥ 
	T
@KB  Ek/,)'K.,>" %(]	0OLmNTqapco2S6qTD1UU*,~SDtiC|l[a)P8A\ChTtBw;T=,=؆? 3^B~4|+Acr LǹTtkh8ZOS20lTr*mUZ̈́vf.weVe@*1Z<.w9)] kU4۞6O	䵆 Cl /C3R;D%Pg8,(Y5MU.Bh¶*.,:&DUHm3WhSzLqEܿYoG訂	
ihLu4]?6
ZbHMl@D+?cR6Bs(e,@'DG|=%KPV//"%4L,B5ɇ D[[ңW[/5Xb-^WUA0q"Hm*5C)d %& 3Bf,$eD7(g1nE|A+VvZj?8CQXn1nns5b-K3s@$,wALţ^ЅۖSRLcGwuo<RxǛ95\$^B>b4>sA
}#ƔH~+?
2tT^ HHVIC#.WgeF<H/D-AC.6ݶby<<8$y&5YD-2jqŌOŒ˭]/Ҳ\7.[txc`7)S*ē?y԰e|l'?igly/gƔ:DXגhӎʽ97D= 4PrL;nBsӳWp_5"p7|?#Y$uBL\Y&p!x%NR,5/9Jb9yD(th {O&då
>xy7E6|A'̀9EU;ΧF=t;$`M1լ@DmD48GXdN
ս'u({[%4!SbzZvxK<x+{loάo5nv;kBɐ(B"wחKej1ZhGV<]($*ͮ:(+-D
wD>4SwHUՋ3P%;s+DS9F,lNť/y_zX:}JoD}|2d<O]a6TA1<|_+CeɵC  % A.w bD)VxcF9vdH#h1Gj?Tь;w1K_R4z($Q"]$'OTZUgD6]zR.csEyIGεm;Q?`݂+^Nlݍg7oyo^·J
xǌ2bɇx1EЂIxŞ;V4ն	+ݺW[wUҤ.5EIT_6k?ܹϛ7-G-%~xoHnzVA_rJH l*."$&:Di',I+jKG2.8 5 ;x:sBұ|X+*SRdI^crÐMnm49:d8m"G9tsNWhQщ*2k瞊ig7x(;n{2 KPET2tL) \6ɧ_H' qV35	_$uתFꉭj]Eؚёq2jM[v/żHa-($w]$rԶ2LLw29;N8[eN`˓'LH7	u}<ڡ逞?OK}z&cu`%RU^#4㗙Wc5"vj	:ѫZig<)5XU\`G\z٥&G۲3&K!7H~'~XB#8"R'`l$&
3ޘ8Tt@%Z#jGN@%6AAFaadt?^{hĥR8wzz$>|zc!Pi6JuE`,a\Dkۺ%3vqw{AdJFH؈KD10
$08cjr\3`̑N	ucڙ	arD!ːw?@3G)x<T=>T@Y QcӠv%3ˇ/7%)ᘕ:fDD'(s$x/{D@P]׺o̔.u"8!qF9LPD	;:{-::L\ltm4֑"@*-fq
  zABv `;u"T7bLh{^Q{܃w_	fTu%dDp TDV-4bG0\]687#ōc`H2I٘ʹ0 9ۜr)EMlv9%1%Ca66Ԡtgq(<Q4Hf ª>Z*~܂)Pth	T>y"Vȡ<Y-zQZ!ѷ8.!SEmOƔ֖d'ƘNDYʠ9Sʙ-Pnjt,!E
F	,D+\	ʍePQbd}E*P=U%*@=сi#	?%:@` f1|ZAR$qT1c(\P?ub"F(+ͅ2H,.MM"$E.LqeD@@H+1*YSđif6t6ܚx\8il*)KZƅW:Frf
avgy`eU;(
%BD|  h˺  0HS?4p:B>a  6srmo!4D'RMV,RbԴ[I.*TID]kJF^d)&plelZTV6Y7k&Qf%WںY"^IaNͮsjLgOuT]xcr/Br%":X =BMExa4TC%?{Ɲ@DdwX78C.E^ 6Dm$A:[Jr-G1SmIR4>6eIjOq

=S@LCOMe'1uMHn;q|:K;t0jT&(?.K ?NMu>1iFrW>,5B%t!C,OX9rܘ9*L=sud@΍1~щt_vLr#"w)No6gcauC+\:>{9={qu
@= !bzp" %/$&'dh	h#`/^(j/
FxBO/v$4Ʋ/4^r+E$]	D18&ФM"0v86a:v70ιj揸8Hu
"A6! ` .AJ=AdF+ځMм!&͇j /q#h4igVTo'b#2Ph
lA,꣐0G$mI$8/إW"qʅİc^P086AE 4 a06bQHcT"n P%fJ`R&v%"A( ha.#!zE;.|THG&#  9Ly	.emwDnF6D`_nHL6/40O2Gk`HH-BKs֏8q-#̯7##Vԁ@R   "bS$A@O>d"&! |AVAz):f'1lҍxB"#	łĊ+"D'/Qo3Bɤ^J:S_J*%q]2Cr҄-	.9p8qjC0_:>)gr s6v E@bx&$%-$!"@n@a@` LT%D5goAf7#,vԶb8a	JAFJo14_J^tM;pnM9N8d1#ҕ	.a0)4!\BQ7l4At{1g `h,SFԃm% &2o
(H{nRkoA-Tu"X8cO	JOG"Zz}F,ZPH80)&elprY䣚3x,KT;/48.2y=KLGQN	P_컔£"l&0fd>5!
.
((S )P!>%hd%}B)BUE,Tlq#x2 W} jjoEzs~H66/^#I$Y1TK6dKt-n0""²[)|0\SPRN=G]cj>YacVP?6_9Rc 1%@G"Aob@Me<!@gĈNdY*b~Ҳ)X-fa|@3Bn4	 cb} 	`ROIcd#eJT3/+ײQK֮m֐,cJ:$??Bb!Cv	=52Mvdc񧖋^jo6a_Pfa	XπQ#QG|@+'WT`V""xg&`tseBuKZCb!|Wj#F@w:!F7-̨xJEb,7!63L/0/{{lz}M_.kGxהVlׅ>R\/B|i<ǖƯz)P^r^դ6x<BST %9? ,x"JA=?x  	*Ta E͈r')pA+j/V3D	k*!Bx"	Ԇj8Q{,/!J;砯:)ыP"|)c3ZaA쮡c4"a2irL"ȓ
p:`C5j8GGbTg!`gb>LVҒ-3eR
ktU @!#FE,Vx&߷eIM{tşhx6Bި
΂\yDv6b+<M嚡vZKjUŪ4Y"83d0`!bPp}}>گJ97!A	~(v`'%C5CdVb"6Tz4PZbv'G%XpP'w C(wAZa*dGyajx"hn,Aօ	JQś"=[P+:ڭB #QljZ{pAi!sqm,Ta?7"A;	>
ArK*APA	T  ڡVA W"g"!h ?"n @ 6G%'r+"~AW\Y9xX6|# '#Cޘ
2!"jA$vk7!YuMoCģc6*:*;c5y/
dq8GI0П;]8TN"8$\7"#*` :gAHWh-b8I&6>UťF"5BV!b</	**2h
 7܂[nANY5uBv0nM/Xź};+p6")ϻ6.[kj96#}{Zi-5k;xcR;@?$>`8Q׷d : faȇ;6   >:V& ''"E"ɗ|"h}sj"''c!B.,]
k4^qTkKOɬIUٌ,0
@@4B>V1a#R.3Nx"K" `-U "d^5 - BoO&bx1P6w.Ts}ȾʧܘeɈ5)	C Ir"\7`
{s]׉BN#P&EI<$Q(R:J)KN<u+!xc47cG'LZΥ;dO	S[x1E'5-M\u{JNWtr+ѭ·PiڤaV=*/USĔ9MٕZ%C zh,3z4ʹk۾;ݼ{  ɖC@z Фϥˀa 4H-/KRKp%ѼQ='_GQ<KX,]DJ${YaE-# BCTDde#Ec%
HQ-aeN/uR1UJzj9ZVU5U;$<%Բ+:]|J&Wdb_C6e*qet4&\FaJK# Ls1=3T3o~
jJZO_! i:<7)[s4Q;/񗄀ՒR߯l.+VR,KM$K$UTKȣU8B$`%x=Ue"&pVD<#-D"rrE'c?δ:ByCQSi!L9OȃIVY_iXmg		]Wzq_sMF"HgHM\LT|h?Z\WlMvf*?Dw6Jt1A7i'myӱ4gnPt-(,~EXHo-MĉDlH!"Bt&{/9'$H._fEITxaS2*{[cZ]oe+Xɛ4ӉD<*wI	(F Sw hi1m/hzxƁڅLӎfSaĭq zb8wEXB}#IZo)aE槈IP1uuxp-DDlSz'0l1=x;N긓|NNF_H)W,fR/0hM6 -q&|'.E&P4+)]Vbp-=  U)pblRB>Rd.	%MMI3
AV6][.N,DFl^q[.#1-D"]Q$'F4V	,`cGp$k(XP',^h'Hk<we&lELLx*8	u~)`:u"0Іlz//4MH} ,q˨JuT=1:<Cn*S|%M)-a1	Gǚ5l*jALNL_Z3܂4-|ғ}C!ĝ65Xe?볟| n\YZRvʍVĶK٨Ǌ/8_4yUl!Ɇ?zӠ
jKs5h _XUϋV5  %3
K\|`۴MhsΊ".GNb@l~ڐ="\1_u=9%	aEt\̆fbϲ&EI%(^
``bn{3h~0޲dCO(Q&ҕO]?[ʈq\ClnLecKf*E^VE"T
(Pr	xÝEK`ѡ|έ7T+ 6Ԡ%-ijظ7~k1&DRK("cYW'Pz8/0Ie=uJqymX,>p.uX`Q?pϴ)ٟhu	M=+&Uy"&^:X%5RxO"9N9pK4-0)ymPL!daqSLc$STCaST7Vi݁va,Je<~6-#`P|A!ӨKm9Q,J+$#]-kD0q:b~fK=<xحk2e<QtSF~O4dF.N,Lחe٠6eYМ4x\}|sXѴr<Sط}oF~$\8"r|
#p9&'{6۞$˛x>ɊNtI;YN$"7lprr̃G`U,r/D)Ac	3ie	Q
Tޖ'׀j'dSݥ]i4kV|5hnf_n}s|փlupC;.K2 JuQ'p>v~S	~S:"2Vj 
SU#xbנCyc2+Rud[;	["'P1$&~ei=#3 v4 b284[2{OsSǇ8y"&o}28Sa1-lu!b ~S qW#7apww	, ]cO3gbTQ}@i@y(Lc%GĠ.vkzt	45&R/'f48quS4hnZhvhbZP<-`-RPibQW ۧv!LԌk7dX3q:s[O4kAb&VO0\/H)r2;XcX1Ţ+y]ifq\~;u'[
{)@
94S{ɗuɴuG%.t};;Xb9I09W"W>Px.)	WlPaprabT0/ub	l
Cq[U'	0<cy2vBviK1C@!h#3dw	Vz)W6'qiiO{pI(חɞA9TC=܄c|C<-"I4T.LUc9Qa<uwlkSb{\Wxj8ʓH$	3 'vz(2Wiv9UAr!9>`\$& 3wpe{ tIigm	uAɥ]q&gWV heh!D 3V!`QJP*}:
 sV@< /l	-
[cbExdpO	ߠ$0cQX/N0s2z2k$ܧ;AT3XE+SASxIU
::4^dx^ fQ_L6_dgo#bɗ,OX?zv"p!OeEgbYI2x8"y(֚` xi+G&x[	H2-]N]BOo"'P5*= @@)TG* \Lj,;F .`pPB+	2θi8xҨB$>r[@kEנx1['rexT]	+L!WX/PZ3tײ{KCZT6kq`p*`  0@U$R 㱴Yg_toSVCQx*p0P
GUx	Qj1r
qZ$5?٩+?P
V)++G)b+Kk/S0sJ?TQx     A]	= /@kতR!=md2Y|KQX͋!@!oPqi@am[~ag'֏q)G`)dq	9e,
J1a^lǵA
b5K 
ǴA*(x ·qm8+̴-̟Ƃ h
bԺSaP+{
}JskǸVijJjh$= ev	"	
m}<Y.z]L
ɹil[siwLP` z,z
7q;q+   
z@6|䁴R/\}j&WGAZ
$I_>D%_@YpG!\+E13Htw-zJ>l~uE 
3]6a׵05b,{Mek\\WIːʙ$(6q+ր ؠ _ La)t$cԗ)-acB2"cŬK<9 ]0w{Z@F!lXH$@Be[yxD~%E@V3=C.`<]{N-RkJT:| ݍP	C0?!+7  δ2qbp
37[B"}f ؛Ż|՚л)CU,PVZ^ WX,(p0QG		ȸ2/
ixi㌬ =3O׈w)f8D2zEKFiOk4כ9)aI-浡	B`L2U3@ U0)A0A+P
z,_7Pvg=F8!LMBKu^[MQ;%
ӕw`Z{	Q1-ŀiyq2A!2i0T/`fAZNߐd!cq`B4Q
_uBl``Gȴ*Fـ|_ 0ҙp	)~p	4>isWxf(O
,AM[cXy_Y^[䰤z:ƣk;*s%{{qۮA Kt txrLʢ;z`8Ҙ3 OMbUjҗ.Û}vOEZ
#-ꑱ	
&/x<^@?(ܱk;X;zR4ޥIT[b< (@8՛T4מ݄RKAI+  }
	 0u}F>kE[$CAR@u.P3
V$ +񙠓Dq /ĪU'N4rJ&[[[
uDT]DIS'u>L3Ceˊ̬d7qbAuWuR鵉.ix֭!;
҂mdZmݞ\%q"KdݻN]omgW`FXbƍ/ͰojYfΛt:tO$y'I-:J\Kel|%Ie<\}ua6̕+UIRt`"FXvJoV[8dńYat(SDqR	qD[	[
ozH$Dz`zjL/f"AMhTM4䰰0$f+ǒRukPK
1'2J)Jb-	,R
ҢH8^ӭp1v{f"߀%]B($E:涺;>JL<bЛ<Q0g#u.i=l8ižr%Ʉ^O
ܨd+Imϰ.I;8C&uZ{RIVJ!iI墫EKZJo7\qE,̺LKt53
(29b'TlHN785:Ð%+`đ[[
]ĂM@b0y4I##TS2	^(pbWj0=xpBʟa0dЂVJ[\֠iS2lvEI"m߆;n9]u;/޾Q}pXRkmys	݀+]E+IX`n'+BFRdL: k袌C>Q^Yg<}KJr簗li0D+d"ggi&'ڑx"rk>-Kng;_~E.2@3yC`G1΁gN39k	@送s
vj'J
rYWKUA2N`bg%~\!$rt-&*K=ֵdE;U&`[XOxjGT&PTB6(HVr8~ãb#W>
 bErG>զ$8G0Oİ3p&,$ ٣B24SœOdV >Y+H0Y傊D;fhyH	KlB%dєXGnɅX(Gx [X<ǙЂv=}|P  @w% KradD%%G4IX_0cs/9buJ+u#-bG*Ϩ&e5
7̹#>pv]#(T:\!JQcS͜KgZQFni:$h3=>} T`o @	?H{ ᭗-ד)ą	8DE;w&̽898𨇮G8t!<u
1YP#J%T0Q8HphK!Q>*2N#,ZazWl܈2%.[pGgKۊ{n"ߠ\HO)eYպ_}wIn}?oL0otC: Pw, =4RZGx<+ `?1;clq-GK8k<^Y-r!'DB&e1JzQtܞ.j,T0X蔨RW> 2eT],-d*aX,P10_$	HbPQf%c
v-H#BЇH{  XI[3ك]
| ,Q
1gCXX\ 4G
ؙ[rvp@/&5iP8	
O=\EDB%5Q0`p''%ʉi&zE>xE(8l5{J6ȥA̸ULgE#٪jYK)"+VqNpYxG)p ~D 6 ud`f<XLfaqy	]Rmg~?X]#c nҋ;o|7jևDb	a`xg=,>p=~Lm$7)R#0r10u&Lg2U~UKbBQ6%LOqȣ(EHZkz#-J"uZs&T:Ҵ:úy: ͳ:xۧ[ j#0B{.J,M? CmcZʣ[RgK2 4X7p67<"+? *Cr}ؽ9';t7tz-v99`ˈ-
N+ 
		YL8`3iV?
R,&@j<C	.BD(0+* 4m#a&R8MfÖ:	ԄSE3eL5A
~X6AP3d; 5: 5 zΣ7X4	(T=*0Lk1jrB:G Hw  ȪRBZ4əXCѲ7{1h+f]EpE(2`.S)X	ȄORLq%P&kHl#z
8XOЎo/ \#bt#[г/[*:B	k,lS8tBn\;  )3:5l6BljӁ{0d`6g3Hl"C `o,8pX{;,!Nxh)&.X-EhD>H!>Nd%ЇLŚN
	* qP!JRy
5R9bӘ	̶9Q	a/ct@q	@,	Dj/Dx,?GTųMg{[_˔?pM   h0yһαKzz}~o3 S,yuayI'[]/ Di^)^TʎzL9сRM?#T84Ϛ0hUi))V{A+9ȴhFPE=k@uJ'TM|~ri(HEf.Lw聀l8CchP,Hw`W   ;=@G(  tXX_Rx9¸   v?RӏpӛӌݍHxCҒ//(bh>4aT5]iLH^YLAʁ8Z%r?JyEuXjZ3[bQ;\LEmlƳMִƵ1MgARȵSBíp5"AL*Y2?@HZSԅt zx*7'
0!5yHwx%ª<U_R`1x0(X9  ±X0٘XP]PYfFWOʓ`
@R*xTEZ9
Z2P%6;U.#1ZlUYйk۹DL
liE;Rs~C`'tmц fذvP]wP=T+no\ȺTp($%vt5oX ]X<8j0 pͻz؂R^v)^U/1aܙ8)1I7Њ.h_`FYxN2OȤdT(%ؕNJNY)
uXP	ղat0kW=JƐKe`o|`~+T v uH㶁8<0w{ 0n}, w&S܁tR[ivlNiWХvXx 6bե8^9c.Qc(z$@.I*D-0@d^ڗYYՇH`"+PZ])LH\)LĂ^ԯVW&=jTՄK 	
ۣ(`k)fOf\ffෘ/jID hBmnX\E"<maMx|=(1FR0;JHt(qN&(w6RB Fn]Ȉt)yc.㨭y80pFJXP"LFEMVJLSŏQ!к䦉%4.kIEeN+-edkLnfnYkx1i{`{4j#bbh'TX XȀ\#RXw6boNHRMUGglV sA SS=ñ8 GBd0mJ/IxG$OYTTXL@ E=9P=* 9\m"0Kc\MBъت`!9>k4ѴI/ŴtŤtmNfgw%_uAx~T'M_{,4H{ i<R /Ѓ ϋXF^?h1	Ǜzڷ!g@9	Y&=Jҥ0pE`r(ɓ!}dtA@(sAKWY4X843S˗3L*5b^iFSz@|t]o?֍_Lvuo9N~ȋlp[,whp?=H]WN@v@cfm1!rycqV7f ݀$/vGrbꏐ@I%RޕbJVEߐ+)߉9[2XeZ̈́Lx@[v:u.kG4v 3|y	F* r p7y(~mh,zXb8G6.{0iYRC%u{ʂ e_нw=j{tH3BIC'x|%Q@o˟\]uIm9zxė<y"Lpax`'W'K`L%%i"2d$2;Q+p֕W黒?YY%J+S+҅꬀B!$U+իNf9zՊ{4,۴dYq&T^aA!
1aRT{.<XAu?_>
ժ̦ONz5G>1ڶoέ{7޾Ə߈|9Γo|R݌obFP8J?I0.FZyϝt>FB=V1PY!e݂]c	i'(_'ܕXۅd\w6f*hM=4؃$V=tRDYilVB$9i)֤O㓳	WWb[rq-c\tUutݑ$RIಐtB|"
TL<`!T}@S=sECO[`BlՊ(vYh%J':V] (ʄ\&efmԌoI:bգ?lr5TY'f&J2	P%]nB_)'x[oqgDuBQwKiOdh0B<ON/C|1^qJcu4^P"*&:\x[0p:J(M_%5Rڔc`CL٢I`0+6٢4hd:b.9L❷{o%1p,ofqgpq%P~2L=jSX]?95*c:cˁ<,-,s"_Zڅ0`O\[#fg&enA[|=tf\ɕQHjW=Sfh?wl;y7߿Li^Hb]#	EDV4y~~Yd'ꜣO\?X$YAZHNvBfv3NfzBdYq*Ѫ{a#(2oD6#XОS#Q[i6i,G=	v>L,`7	`dbc|D_R0	Bt.,
&A.)}
՘yc"bP|B(kPU^Š%8<[wH<z30X jJ-J=NGͰhAoJ`;,mxQةmdH黆:w7Q%hЃ"tK0BT<(E+jщ	#Gs@D.
PBh5!ҁ$u*' OlЅd̓@FB'QlB@0jʄnF(0aQj58dHE3B5L43yyy_9w%+G`)`hQ|^^5H٢'O.͍ynaBBE;1b6=?&(/f#K Gz] ,a"?|\r	e!4J'XDcGYYL-53TYUw(c!*A+t	b*Of5{sBĘZď߼L)X" iïp1<ăצXӍd\7靈0nPvl)iqьL:)H<'X#&ED)3qz)HGF~J$i6sוhPS
.R6$ue;NW-3,`Cv(.i-^^U7
5YE!9&NWsV+X0XO9dnT['^xo  zĪRr 30.ܡhރpVbӞ01W|5X ^v>y6	݅h XDcEO@ɨèh#;(bƪ2YeC7SL3ЪVf=YEgxIg[M5|'h%?ԽPk:a-29kN</07K8}Jy Ðv`Hµ B v~6=v@G>1z" ͸/6xaG
`!żG _A=],cָ/bqciO{ǁsS!0M.6X$#6VL};([BdAِ`LU_ueDG|HΜ}f+t&f
V()39AiK_:~52lx<.;QTV < O8  ,d@CY  = ,@<d  ; B3C5`ح)$]h=@= Ag/`.C& 4Z2`:l&hC2*Ѐ;4Y5l*t 4!^䍖>-e^	}P<qHE8,lSq!~4J>TAdāЛuC,YA&ĎCUaBT%<hU	`<Ոȅ|L^x}_Hm XT+'h_`Fdml<ؤiCB
?)A;) ,T xA
! D)*؝:8 ڭ5)Z	?= 3c 3h?v  =?lB ì *d ;,)< M8C`ޚ|Hd@)
8&P!DGRsHG|[ԎɎaH-$C C !ӻ9.D|BN<DH&X(ĒRl(b.u-H%04YPZu?"d'^JU.RS=;\۸\Ρ+`BM=M]tBϵ ,J;? =A5 C)rB9ءAU؂ * :$4|Da6r`37 i 3| ;< =P=<<:??A5 Ă<4-|tBrI6 #m*0?=apM%U"FLXntax$,GEX2=XP20gYQ`!&$!D|PD%"EXC,``e]-JWtWB'"^(&/DdAbHI|b7\}mc\=kJ#*$9?O?Ap.*8@=p<CrBA)AA#<a)}v3*?d B2`@''I;$Mnڀ? C ,nf=l
   Rʀ= * # Lֽk"䠂e4@c!^-^qġ IumF	a:"YT"ORX}L"6O}a@EMΚ"6RUPNȠ3مYEfѰM"є	űdR
X̉B0Iڏ9EexSoaee zc9y' X@@<| CBx.0/?Br}f
p!BTz |I`<]18 B'֠?? </ ΃t>.X$=;c= *>",j܃L":d=thŃ"D5Ԙa<VCrHh@,888i"l,$$B^jN-$a4=(X~Quױ܈S&I3EjeEhJ/1OK-ƅ4baPd0DDOAh->y 3X\xF. 8 z
3A@!<C! C<hC҉,|donyf?`4z] 4n,.*$.:'=:
	0;p?xD@3rI/  0o)ǀ88tD1e!np	=Hv`b&V̛×1<UUĈ?DZ@fZ[3ⳛYY2k]-lX_^q[_mGcoI;)$C
lJ >&% :nBC<]$:3|Mm'&y@ $KAFy/=M?hpw҃	,J#,
-H*C`= 1	$so,3,p˺IF =LDpB0ps00x(ML"a) Q\XMw%HTŽZqEWY0i^- Dfh4.FP4j=iO6t0&̑YxjcpAA2볊A;BPo#)/JS8%!! T7ɀ//7I$ gn'#.rQ$}F.u)uun0F]/ E 84;B-A5`g,M,#vNTR𤄰,HB
-IaVfZ1&P"XkQ"GAW% .ZC=(5׸Dmvh4i`;Q# 4C: s?-&^w)@*aIC?d@X/{w5G]D\XΉA$)yq\2t'N0e[RL襣З.b	I4kCn6CBʝz٭x-&aJP-^꣝_-YMjlhHܖ7I ;p H}&@wu*>:C!h
9X<g'+ :|U5Ap<VEK#,u28*D̤ନ:	~LA$bі*igP}Bv]v1= fUyY093ٮ.v&)8d%|Co_kCE{{ol,B#u-lI/(">pҘ(VX [m)[jQ>s	u؏IDx2A#I6Áp|RPL|6?C`d_A>tA6ҠXMT@
'B+֌kŞ-'C<ět4Ch5&\jh}[9kF¢lp,@
c9@jv&TaC!F8bE1"%cG=F'K<Q2I˔+EI&((g֌H(-W>q/^|I4̒x[X00c,®\,
V+XʭxoհQp&{7`ìʲP&Q cR0V0d+'V3staˠ_uxeCcԷ_N_l4r5xqVIi~ʁBzwQM~^Fw/?u `׿̨II^IhLb~"'y9)RJyCHî8h+0Y1[`
O2y*G|L<.r.00`A{LyPO05A59,-#qF4$NV4c 4D8T-!u:	nC'NLҿOAUQI5GɥAl'W$:GbåbP+x
/t4Kb`42GaR,򑮆ıoI+r*+lu :NL8'_T#tEHEE>-_b#4<NUnlEB1RKc6RYna~iTe֜y5
W)'bW]D. .H菞*/Rd[GGY\,
9"w/*G'39HYC0NB̕ۂx=-R|C]A%r=b<S<bVM.>H7ѦƔ+;RMJ8	Yy? z%Q( ynuVv'(b]2 z8/?:۲Rxt<L>Ǻ+ˆ%7PLV5Y!dT8q"/F5ĝP1P?*Ӊ	P!%u&cQ
;s;E4Cq| x@?*<yb9%^.0DKI@0#ytT]aD%p1BtH10+]V!@K_b_DoM$Ga	aі~E5-dѺM*98d=;~h!rt3' Y P 4? Ё,R`QVb'E%(i=)ʕ82 uDLAːy$zTq=.[q_2RaԳ!dǕ4mP3|\WAIZ'ZKhrK-3#
Ѱ-2ܡ1Uus<1ChNS. 0H)1ΰB3H;r!BT3yA?#t\ȃ^!|E7|#Ȣ
T
^ X/,	\D
HxEa~{-DL%{K.HmF&8I!neTpMŧ~nbP*^gNhCLu*hvTOWkx(O xtt?GRhtHSh?HуlDxI4P*Lx82/ȃb$ %HQ<,{P
W$. * 0 rҲZ1GpK4t!_FNLd6U^!n)^J5 x)wЅs!Y$ pAI~7b rihoX	#<Q%O!;i\2|a^ǇC.{nAX,%+0+ Zè#9"`8?Vmj42*2LB@)Zr c&Sy\8V{EN;Ȅ̟=R8]ꅃMKCШFYSSCoܙ`uX}ѷ`@<wbfAuB@Ay|fqd(}IR	^KTq8@l/Tiݳ
cI@K0Y:}@[>	Aa\Id<4LF@HR9`B'υf_k
8k43p(ݣ3T/eq<1Suׇw
G!0]j q
7p!G)yBJ}T¾B,֓^y61	Pԧ\dAnʠM a٬Dż.N`dp$
b<,
.4j1
1,\"2K!DPADi4, PAp#<C&najC΅fo*Nfzf!y  ! Ӧފ8̊x  PP yDbV/%!.n-bn @4q@pknA,5A,bf,	檳0E
T"xp*iFIe.t+Dc`ncFcVaE*O0_$XA	c`OdcNFHcpR)" ht! >l~ xfd``F$TE$|aD"(/RB'"</17qN*.!f0 ^CalF!
q֞[@(%fq!#r+[4D	ǌCV4Po=(s/{pK*C	;`hQt8pC9!P x  @(z" AzHB$@$Dnd1B`r.BL&0's @!]d]D.BFRGQ iv	SIdAEHĭ*,LܭVO^z,@/0G1Az1#&e&әs!V>PlN * +4Eo| N>"a*  7դ738SRB/+ba` `؞:srؼ ($J`,	bΒ,AgP<D=[GVG(Ym\-ȥE)b-2B8=Tk-.[5&/6(B28VD-ndP8Ac>0A nE?EB"> V>af~4HQ  > `#6BKu!A8Ur%sXJ3&#bL` .MMTрث<,	?	!o?HP	kFʭkD-"ƢBDBB 20`6_/N
!Pq OXbdO(CoU7VFnvpOvvheda4Zu?`Y⁊  j`PlIAU]O*D#v&rK	ܯ`¯c@`D&:mB>(d3PBD\d ?Y ɊNܮ+K(T|B^"\G?^8lai//XU&øNV024pBһ8Xeevx 3  , ds1BtrЀ! > $Mr 1")@J	H>J'baANb;kvk::K$D`AB@CxSPwy,X1!,b`	܈@rڍ."?|O!Pif-}a7DNGՑB0XiP|c%lu1AGJ`ؠj[`!=A`![aI
2- `g JZ[">wt@n8g8q!~xNG9  '4!3!vW lS	*W)5a)d'!AG 
0~%8W	S bV?0B}Q̈GVO`jj5T5qCQ7je,1yQB>d  ˿OJ>xV  $3=¬iN`٨"Ӂj`jaFu'"UB7tF`p_OB9aLK $N %Y9wH;]#rX,$jkwmP?mDpڜ!0agB$"Qf࢟k<I"WᎥQ+3A.MZscuCB-.Xŋ!P4B>Ix雀5ab@Z!@/@*PJeĈ:!O*|XN9hYîEy6YTSIڧ]8x)y!*,$YE!Ksd{Q?ŷ:2*/"LTN̦9.1DsrSbr*OQ٣6<^ 
IC Ey䤈oj.
 k\N phAػT$/&rxw {t&ZԀ) A%KA5/5+	JVٰ"2dҒ!Pr8s
:ncŭq"l|ME\;b7jIrN	U$_W!6S;x"Lax z p]
 f*cfyzƍfEUcA93M+av\#Ē!`ԁ1!/". a:f*-{Kܲ`*Q+#Qbh$Df<ΣË@[^"8U4_946Ej/HmR;u|cL ׾:-`^k JSKC":!@NM~VuAΔMM$~!aך 6*>>;vʔrl\?kbQ+L{v	<Qm>5@}Ur26U0w˖cЅMiZ|
ǃTnJ#B7As |=I`[P/]t1o^1``tǏ C~,ӥd(Q	ƊKW2ɜiɒbr.F`ULaHXɄ0a8A0^8[2g+QZA
[`W`5
|X$V0#,6'Q2knթ{5~ŊS(LjĪU(ڭ]̩uMLToVnjs}ۤI*TgQO~nx!܀l|Ǿ{PX (H^;=C4W"ńVhIHE6<<aB0SL&JbG"1GJ)3:UӐC~,2)e`G`03BT0`dTQMUUaYP\S]1Rfeq\\y`pY	_XO`&i>C1cWpVd![i,tmʕg [(*Gq:uvJi?wcua	xzC,
!O;4\~F+V[=St6%kI,/%P_{>,Ȣ3Deh$u<cy$!UO)V1BO}ɐaOPePZ:'zىg\eIņ&aye	CCIcbBxT'uj'n	'ЭkZnnmjsl6\m͜q=X<Vݮmm責ބn
!Ȭ>dXkf<@KHU)ƾC:_Ŏ*\a2`yI1/20Qv奾!/	:)q%bYl[<qQ-gW1V5
&paO<Kwr^'.J'A&p;ЈM4a`4QjrӔpzs5YTNpuwxu0!uK@2u `P`ĒI!HбhtWqD0ͣ!sI_|!Ke42+!UWQwLI0%%-IӚ10>c3B/WEW08&-L&TIk\APReKHtBRiӛgÙ
r.Aa
#f:?Ȑo :0,dba bs9ƋK .ruS N.|A`ZI~D0|va˃$!H2/e!FEcA}iez 8`ňǔd`*` CZ$^f<]fi}N>$K,h&ƅ)e	 eS$t͖cC*6.4A媜a*QTKye̫^U*(B{dc! @6r4%bcwaF6}r!?:0ED!^c#ЖKD}B1,]GyfL{%;?8=)%#]aRM~@'	ShwPņ>aC>{r^婡lE	Mf.Y䴢7rxêVpLk)YuWUV=P̺zg|Ͱ7, x pB0UA%V?pxYE2Az랦JPֆdGZ;ٖ<N$U	 M]*CQ-մdHLFAH
N]<U}JsWCDl<3i');ƭż}ܚ)wNW(v8H19w=p< `==h[,~6rʱ}̢'m2`ϥa-#,L%08IJraWJDM*zz6}J =EE^e8=8PG[5˹i[] 5ѼcԬι}ܡ 퀵;܂fwz@Pfdc%vjSa`2VP*2їxp`<RYHϥh)R*c^"M'LgOi&@U#GyKud8#]ѠU}v_Ƽo1CE21  ~# &@l &;:6Ym4P\,b]Yd D,q'ws!p<nwCoT\SZ!Sw\$Yw@oSvW'F6a}TxU(hhQ)aV@0gV^`UrDJ sh$a|PQ
 p@8 `}1RCl<fc8~Vwc7"Z]Xmm bFA!w?q$nXB^_$Oap: C	Ah3$W3oTU0#8pWH|ahI :03V`Ks5JV_{:r>_h{{{'cpy HN&pk˧)PRE  !uɰ67lx(\$`/:"
 "`@eUF"FaPKmx:*1+xav:aJ	}	T>fQH5pW%^4A
U`^I3>VV3r 4{xƇ A GX &bb@J |09`c:6'W)P1	vWMOFv-;Ka =Ӛ'0r0W(a$'}b׵0ff>z5Ű|bAfOJ4UxrQ){V]W_AC()d`Âa  @5X B̐t cPb}@56lo#1O̧d_ cm18Q%j'線ya R!q c(1f~&HSK:8^a;Iq^PI?28zRIjÄq5B5՝3q)sʁaYcWe zCB
Cb
D
jk҂ݷ-Hkawc:Zɐٶ>(wF"0kemxTEZU@g֫n*9B'$Eɜ5wJd
xzb?qE5Q@ bg7\*r)pLQsLg +-$v}Bt G,k
͂MnXj |}N69Pjء8f'ʙ)ɢxw0y*&22i\p !&&2=/h^/;fjawS;s^b&?INq	t	){[r3Grr3gbU
oքM1  `
b@t    G z YM
Qp b
|ĶE)vz!pm)>vwK0Z(1+ovɰfX_IlIRh%pЉQ4Ckv *{p}rE9قb	jJcZg:c3 3GJ8|jNʲ
6p
p`P+˒ @`(00ɀ}< -
o੬uWQ
ilFmK)O;+ȳctI8R2%1u[f\W`xSVZƣ ֚p|ᜈHwg+UĈq*ŌEiJ+b*27sÄj _swQ
ɰ
3@,? YCpXMCtX @uP
b60sA燇LL0y0|F#J[,2`PiIP*񪰺xXf0@Iqpe &sx<IaK2&DIph"jT>_pWIEаȵ 2k__eJq[Y`h
j	fʦBW   з0$ At 4[,
?p-

H\hpy`v+aŤlgoAZa)%U@S_]b2vQ	3R&.Q(<YO:m$&=kgBHV(M4åԢap`WfAݷ
`KўP W-W[M`@
cCL\xd	WbtP:98XP>UF
ê<(̚=,E.$oBK;K&v,RtMp/a6T:fV\-hR.<>> h
Yt6܃MR  l7
o}D|-&813t
]>ex@`/M]Ф1t pq	` @
xtp㑡wȲsŵ@kL[c@0eh@[1X/0	` Inl\QAF3IR\Ϫj=yElƱ]G(gYYʾ搁J	tnr{D~N (Wz
` J;d 6 0W )p!PbL W Y  tM͂
u- x#Kd 4Z=s&Z_ⵓFW@<^E?n\no囲 uȃYn\x4i7 _c*%g"kO
IתIh	Npq48ى;+wkA:nA|Ƃt4-ѐk/L  J  | Y 	zebA
Ѐ ; @A>k"؉1+Us$X0ْ%o	Ç`Xά57006EI`<y%^yX4D)OQ+Fu,X/7j˗3i25#Qa?YwhbVxw+*[Õ$y:jo+LǉSW+fI]FuX-̘S'ɕ5j|xV3^̉wU,=[y}xj'^x{GjȿS=J6Q.5m) \)U_d 0˶`xoߦgGxg*fr 0ڈ0A@(9"(	#80l:)bdQ+j	vb	+4*+ЧǊ&i:j*bX(/tѫ'+$z	-4Q+1l2.4Q4Z	0]3Vݬ1GQ{{nŶ+~sg  6SuUVW#>Ec[T`?f qGV== avtNvz]? /Fi?p őr1t/҈],t7$H!!cAr#z<}z⊓Zᆋ(0HQ"2⩜e'Ϣ
>ɄR.,3^C2DQf:3
[G?53	\ξB8L
A?mJ:~'^uk;:G'$UB}|n@M_\{vȨ[rWy`s+ !lY }v	w?hhy،EeЍ.ɥ^*#?סXċؒĊqQ#% nI̈)H6%"cJ>Ly,
'm,aJP>gS[ԡ		IpB&4QtRQ%ʴ(Z:6)d4[ƅIx{yxG?4Q%Q7n̲;U@Al y:}f#C$iGj@&Ko$#\ 
=iK}a,$yVH+`@2Y,{(&A2ȣ
7J#L2z̃G,lyV"~I1Qo{Wa.\%1*pq%.h'Q`b(ZRjiQȨJu.D1 L{A@{Ⓛ Ub7R
gm P(C{7Mmn8 `	[;~>PGv1n4>ve؅3v}ᑐ$UbIeH@m+Q84F,+0H{WC0V*Q ţ
)EJLEKpf,|B=S`&&tY7pZM8&<A37E&9Wx18[%U
=yEУ|E}[?fq]Աƌ|` qrw0 ")`Neoi8i]JTx1T*AwUҒ" ɓ`XFJ0FWGTʸ&k:׾dgYXLccGBv G!0_`	F֜_0cD/ev:P'aiΠ6157bzBz]H!>-n8ϑ+íFvh|= @LC8*P6f6z?Niw4~d%.Z߁<*IdE܈MɩJ*[Muq
MGle]w]UE/3abL]@dC3H"CVg;X8'\BɚQiu;G|7CG>A '8qeA Ad H[9Z  hXsJ!?ǜN¤J0ԋvV]P,aj(a^kܕY6f$"{p-Vu#+S$28SeQM#AaLl[&t:me_>d
Q9ؼf6Jٵ@5ڑ*M*<Lp+ku'=WyWl~G;ڎi^?Jo`(J9z@3CF;Z0HΠT9Ȭ]ִ$ԧBuЫtD'ʁ#6{!X%"YG$F$],QZ++;f" +4xć5;۶NE&sn
<Eɦ@H"-q<ѨQ(2G!=w!砃m+ߒ`^ip@#:г6;i[Ш9K#z0:#ik.Iôd_H/YX?	9C?˂Cd+*[:3k%h0[xC61L'q_8H(-ǃ,);ҫA`nq際`34Bqd{ hjP)9bU^^4hrH󺗬86pby%쳤XT"CDB1Kd5y	y
2j
X]k*&pL07 ˊ^TJc 7A2eg$s*+=#{;KqlKp=;?/3҇ "x< AX/6D9wYdz/8ӈYH%йc?
C`ÉWܺ`%@^ҥM	cb(X,Xlŵ&Gos E_+A|hq\t!ExG0TЕSwA=EK@ ߰}XUp#'=p0RЕC˶;=PX9Hr/LC9
,%É0b-:
}`DEkIh0@RȄYص%e&O 
T D_,L<β,s@ 7$kK1!$Otkxkгk;p 3, m8Ή{xڰ;` }  {'ER cjZD"0`HH9`%x40`P(y$@0"Rje%-bj5+*X+=h#I L86XkũP,<yHJ`J;== !vDaF($Heo0Uvܨ]>#(؅.~
:XwШ(̈Em G-SWɈ	[ͺۃ)
[ŴKU:4V+$Xٹ8L%#b,$ɿVõraM,|+uz8P)
z?Ia5
=*Jt(:xXH=}SӐ2x 8P7SO̓e?h @ 7K!_␨%h23Z	z؄8Ө 
:;,`ZeH9ۈd+QV+i 4, _IXL8`+`q5f%]Rg5JNh\ף$77; Զ!ūP0hUٕUx]`ɋpx8Zk 	Y\-@*d %5ˈԁY;J.-ă ͣ0곝H<ڝsa3m{_पyZM"0s++hͲ63N5
88%uRJ+GC+@(;pS`l<ӈ{!Ӊh!\.i u e."0r=0P~ӈn`p![qXy0gȡuT!Έѕ:ip]}㚻UڈyX`%QQ		?v0CHV$44`y V3x,0_
1Bd?Ovr0ꘗL \+eĘL\vP1 MJWոSP-?8l
ؔ-.!/HjȨr(RX Xոةl)s9@^@3CkxcU4ч~yګU_}菰//h:Hx+"ő` SWPMVVi0B,1
.bR+q^n@6lp[cSW`Xlt{lk`.{`fA0ߨ 9vo(9j-ް 8FȃNXh<ڪbgHS}
!%ȑb%?OV.`
\SRpru]S>e8Ơlb|N#N s`ojވzX:ڕ*B@(:>p=x</|3ʶmk}) ,;?+B 㣃.^.q=E
Wфq [:ӞVUH!X; $%ru(
}f!It~(ܾsaQbE5K@oNӄDh\).ޔ}ppsנp_̈
ugޛ-AX >cMPXhUq*e@  QZ\AZX+Ԏkm	iNfMovv0frggny
	{ӦFpf&3˘a4lZc^-fcWj8]@`<{䐽bTZ4T@Brh7Vu/)o`ڣ3S|D\HAX5_D-*vcI2I(nu}Znz+06&f[Vs4?wnRej,?]{A@2|∇^+,w`K*޸ 5J%G?:n!Ĉz׮$,YZ*Wl&J7_tE,f>,	'РAÄ,|	6)TtȬiԧSS`ƎeM2-YW=LK6K1d&1'PSwE`+u$ZĠ,̕,@<gL_1R:a"U+La6Pl[öu;K'VSN'u;E:ݿOͪo=b!/YO^|J?|   G:T* @~06 JЃ=d0RU)&2bC\INB2`0--UVRQe<`GU05cW\WZhdYYbu,Q)L_aev5>bd2)v1q&cXW\aE1t9hlvC/I=pRlٶnuroFn):?wI'U
:t']xjChK>%{,:l| &ӐGSHPǏ:#ҭAӜ⠴$B2*ʛ]<<<ɱq1ҝB&TLnDȲ$M.0juZdF,beVu(0rWM!Y񵙡ZQX~S&&DtE*&lbJ()q*,%Jjn
tbCtom;U.1.}7
@t <; N?~ z2Zl; F0iM.\T^VJ,cW-&c
&d.	arN`>OC)U&(ϟ(;Y4OmZM5֘0eu (1BAVUD|U;	vF`1NAP=rH=^f IC`XqX,4i]Qx%{H% CuBX;n`$)ĜDŨ(GEyIy&ч$aJ_`#A
Ũ3CQd8gWDmbԡ
Tm0j&g5t 	ƪ<7v=NW $v  68)a§ûG    3CchM,	G6g!?DNTD&zO8{!KV$)bOJć(w¸BA;2$	D1:{uAb *)1ԳR8y<f3e
tѐ;PnXCOqI}R~LrZNPR+BK")0mݣi<+Z]!
4v	?\EE s
 =S  ^=PmŸr$OyHR>)fvL>I0CJvEAlAckw*̤AXtt/͉HREDMCVh>D
"xivQůj
*m@RƼd,9 '9*WN+n'"@B0>P`	SoI?Ι-zD @q  8)6G!dCCp@ tG5!a%2q@ns*
ExEpAr/xp%z2G&X<z{<Jb4&L2X1p>SQyG%ӛP5SJeGbO(Dh[Im`vT#իⲫ	! 50c]":Hx 
}[t#bC ? Xq"Ebc: hv8(ƐdI{#m/IQ'"Ŏ+GX))Th%a-	\
(FGLq3`4@xnD"Hz+!D9*
_9IFǦ4,0b~.-NtS(|@f
 p@,-sP hr.Tl	A ?cBXl{ m<*@bv $4bÖc,M42V363+<JbCr
\:Ʋ4klto`/i
 F7nrgDsC2Bbyf,8U
O)'`PJf~C=)Z67)`@<P|2A
X/\D[|D_т>±5*, 3hC, <,= , hIJ=(^D5(C`9D慖4UjC0AeWmDELQbl\ J1 db0d¿l0<iRˍ(FS'M@
1<AR CqUAUWX
 3=@QH
'r;A4%dl y.H<=<<K=d@(U ;`[5s4==ieV}SZ_lekE6*CE!\kQ_Ȉd SJH"LMԠlʑx
&衢eF
U'B? >
	~I(;<t{C8ĉYd,< ~"NK<0-Kڕ7tN+KKfԀ8˲X4?t@.9ĸ5L̂Qi1YśC`iS!Tlƌ=cЖnUA`d^L>WJea>C̘JI XA\A0R݉RhBWCn˭P\_OnKuE
IM#.~z`2ubNgQ @)CCU| 4}t 42"  e`Weg
ZCeT#6nACp	͖ёvJUJG1Ɲafq]&d,^Jֆdȱ!"eCTSErjk9iPkd ݧZ:<XU3= q>.9H='`u% ):HdU·!;$`ЍX{`D$꜆6J#[%j[V%]nŖD`4D	}I[%Xbzus1@UzJt1|MkbU_r<,|(Lخ+P?c܃]X=8'^kDdT`ε8$*,@<:!ˇ9>u A:C<k#XnV ghlY%	5*We_]q!DQl<XFƅ&R1>yORg,eH(jˉtte'= چ:  &хwB-;=M@*  G$*$*>?$XGC|7 G?xl lS7GSrP<dEp7h9~|֠|Q!:>Z΃&5^^XAq ǂOe!bDEIbJ&glb`({nA"Dkd fMSAdblhH'<mZ#QG8+D!L; և1C'p2MmZ݃  @C4@
p9	֊v8f%/N%ԃ4T`4ckZÞ^N(c,8u}I,vqa^VUI
]'0S},Fn_R'C'Pb։/p/UQmiBĲGM[U/x/}dVR H(p  DX6Ί؋M;.<pBd-pQlEX>,0l?NE	[c?^lϒp8 J_((&fѠвDlb8e(:&A,IEBD1<dђo'F&>p4M<zow$@ &2ܐ@1ZqH:Q?HDp?	=V>k)t:D<&婜aZPlVAk0Of
fDn+nanH&N&aj	hM݆'5&qʌ=xfCBRG>twCVG;oPV2)*8CsMt֌9-3{`=yĢ?To2p^ @6D|tPR(,)?A4ۺtźA};@pҖΰ=.atٮP/sUbZ,s&\B<$$LQ !Z&~3Y*C1uy/aA47e߬d@%'*=Tgx^>Ta;*D"l˹8:DWN:yZ(C *4Wme4^.mlLc&Ol6POFУnjK8rIS[,lJV/lAԆkǏF'G}9k?fyW& 3NDBIPuL!üYс.`؂T81	øVGC4r.ă$2h@(.D|у2~xVtFTT\BLfI6ƶH0t02nE<aR[2g'0'TAvBBk`?P$ˍX#7?u&\DkJ7ȃ?o-73 :hK):p0>	ԃ2~d Bӫu4ue5PCp5v)KH'.Lp[$jDɲР4]B` ;{u)f CilF')1d(l*Y1w9-ܜBDZo4;F,x?=ĂA@2 ( pt- 4*-A0ò7Il֥g:D<,8ioW<'K_<LXD[t_T+W<Gw_dL&$,6(cB<_9n(*,o(2Xڙ;c >'xHA::AsޘC` D=i4x!{3 lڗ29V;XMłveJ	I0yά0CB0(QY,QaW2`JtPԢ]eYulb̢,|W>r+X1Jݶv\^fG5vl%Fu0lY[0|tʠASE:t'F.'NZ,*ӽq
xpÅ{yr z z"w|xH}C`ȿoP_AӕN !/!<0#$he<*B^iz$ǦX&"Y*}

K)ꨃ^T*񠧈ꊧB29$)@1+꫘,J)D #Ls0@,LM8ĶVL3QV6L`' ML1H{HJ!ENRM%w 0@6QS	`[Na@{> `Txs(r@ '%8$Cc7%zRBj+ Y-J
 XHgI)x-){ҊE--2M+2l̓AP0<)˳P`cfDQ _$5w(%I#uVR߫: fpޚ	ɧǡ]u?ܸgXuJ`tA~zP `6Bvj.	&poo\]&0`ͯ*Hj1" Rca,+ t,Т8!	lQ 0@-їo
-
ߔl[n>@6.W|jS(ꑁ  {
6RjZ#7Be K>	JZ9%\10.(!\Ǖs~*˄r
?a<PtE/ƈ;+N)LN-,!H#
/AQ tlhEn2	ӓ(Ww0 zX{=\ {t`@&7M <pqTx 0 8,w.C`h>d&概qoES#Fۊ"!ި+Yai)MM])Uy3Ԉ"pt[<%x͆#H
dxPT< V6ьkaךsa  bU*Mh(%=4X{ @ Auj%/%TbP%QHW#8\)3f^CPů.U8X.(,Q]mgznӋҔdILQm8aGLBahe	hڷWVA;(Jj-nR[)kҳSRZ
r XF GX
ЍZ+$L渀be&V3V(tJC+pe^nT:lr.iĚb4E3b
_Ұx0t}1#2Q#^X:؈)f2fsǞ%!:
Ȍ&mR! 2[b}8IVNnQfA#?THp =OLp% ,93)HqTh/w+ClQZMd^ IvnXIb^zB okyX}tASQhGYPjRYȃK^6}_G+lNcHs7Ll.v*APG n,壨*:8J9Z3Jҫ##Ζe̯@isܤ]aB=X?wyKyZ!]<#/M]aaYgx?=/:3`bΘ/qBG^!=؞{ @ps}dˀ6L_Vky.< @Df|0dLyä,FA} 33fZ56AoDa8^|ıNJEb;lc私DP7
&uA	ukf[l92V֭XAY!&tv$f=@OٿO!  y̝s
y;2t *GY,w+^c] 
^dEu`Ĭ*Ȅ*.02xL0!.wf ,̳2L6!nαvC\'j	Bk-~e@	@pŕ	p9NSA=TB	٨܃	1bliڃ!a:!o%ڌ%,q>GX+"OtME*ĂugFm?w"B@'J4BaQl#|\ѱXϱpo @K.NA `ncc!ΐ!L~6a	:4`kt=й# #0/D<R\B 'оr4  .
`a.0KÜ)DF &w4JDfd	ML}2agddR&Ch/c|9Xc		bX̐	q(lAHj   H>@ͥ/z@BUq@Cq.aNsl*C	
($K"+m."+r҂uB#Dc"3yTnZuF5A%(jZ-Pb5UL?n2hRz R t:%Ux"NcX-r)!oLE$(bڌG*b̔
! &!> L P	!x-q$ .oեMǛrl
R(KLsKK m8&-Av4vvi
B$G" {0+lA@Vh&QfROTDac\ !\`+O0^`:|8A	&T`4a;@ԆjJG&		bKCj -eFؓs\a.1 	X7hN+O+ sJ0PA(0 #EP+
D
 l6"ga&DIԏ<CD_xE]F!nzx@>`2?8v|ԃ:
H;:=Xj>@UnI'd f Te<QDB.-Me+>0<GTtj0+($p$I6vN2BCe2atd3[xTEK4.l&f !  )XOncKI g4(#H<gn:42	L/\uu1%f߲Uq(v%*h//Vd`?M_m:t,1=AI)x(F2 fƱRĘe9kTe5F4ri~ `/2bX*/` "A~g4٘cY\@=&5IajT9N Tui'Jmߋe`G)·Gx)V#3ϳv.NuNod\NFTZc3w5M'}|V o= !8ŐSGkXuw(W
. @[x x#pLkB6{v\'7^B>*mx<G/X*/.1-x$L05VBbfd&q7+!c6xOs6`Vrfhma @	8"Y3p,ǄU*@'Px)!A	׆	lI!9G@eaTJﮈl
Dߠ8N>/r Ms?vDg -6{~3&p?xXAzWsܩ rQDwFb]!UQs1=/UU܆ E9a|j"R	 φɂ,E֬!`qb/ԉϚBEm H(hh`		#v#ӂ278®	A	rQ䙳xe87hi#89PccW~jJxTOJF̨	UhHNA	?`o8 < ÈŅ;Nۥ%RFTζa]m+Pvwdf"/8*0٘p7"u[aSjQ}taz&Cfvo}2(4BwZH1 V!`}U7:Q=i;\cj=@N!!xI%@;]J%'e[rsz U^%ߖLI9;tiJ, AVR'uMD$WcQ@D(Ļ :hJ"צe!UV7A:N}0 "RZ9<`8.	fH
BaBī.eSsY?)O"{@I~\wp;5#iJ!H"Cצe8D9ӧoE" . 
A	$ /Xe5 ^}R/:l7j2Z9z	<,!2  @CY#K0&& "]]=\">q:^ԗsH\^xt0
Ta>F~b>"/`ԡ:bz:3TC:k0n:!NK6}ݗ<lJ@V!>;h=lL`A!ꃣ4AzT%(^,L|cZvE埚)K{g9Oǯ~~3a\&VJfnfQ y^ fY!V2 1C	SVNnxUeLd n=u)  վTpڔ:;J@8=!fSU ?wb<xPٰ[1Ĉ`L'A|W	2ye]	I"+&+IdRWf$	,nf'+&bЊӤWfj4ѩ#
VR.bj:*QK_j<	S|bꋸÉb
8^k:3A7ݒ`2LGjHj g<ϛe C݌e[=z<%Ԙt=RuR[ұ}hqͦPCQsQUt`TE9MM=MSQ7aKW#SN5]eRWbQ
T_YfXYmE15"BVtUseEQ` ib҉ATOWd֊(q)e_%VAqf= P*i?̠\$]Zwu ݷhnU=GnlL!Vy0a~s޹M=܀ `9(Q0(NRHA+8BTW>ҺH5I#Yr"גxebcP'E&\fp	fet&=0ͬDiR%O>e iϙ7;4sJsZ4õ?%VGh5S =e3tk.KBHH!udއA8RjQKMń/]q.$7:U?om%'؅cab`1ca1^E;qf :,S ^o3?F;-uAmjK!Y| \n `ݳ?L;y*jHJ;lkeF&bI67Mq/Q݈­G"QA(&\X$G$AESw%sOa[R\򤃤#ad]xb&,.1#^{5Xpn1fGΤ0< b6l(@	  ]\cl Ѐ[x`N<PS'zه?9eҚ¡,\q"">vnZ@,C+{׽{}r4Q[^	FYe:!CID&
5f0;dX`;"&KX+ c&T: o! y$B ~ӎ"8  =h  tlPa4Tp4OiXyZvJ!B'dOm\8,)Ҡx~ZM'ydKD<qNL^NE{-ņ0MpIGzI!N⚁pfK0'_ɱU;tx)TZ(TACnJaOQ&6jviޥPmv6K=fj,Y8
U6.y>*XEEM?+9$Y	9er\j2LPd_&B:AM}30+a)]h*^sCbB ?Աٰ60F3 ͞Gk%LC"-gR$<0uJSEd+\SF"qH6h`_ӊqK@V\'G)բ8sUheTuZc&6#~bzD0/^{LmP %~ns_ G%bVfSIuH@:v6D'vg;d%W=/.2aCW-"SYep\,Tk"b\9`1*Jtpey-Y)NxD1FG̭sy+SŸIvsCN=:@(#_D` _P-|Cz?h;  *f;:<F6~=cuC [)TI2W(G
0d
	W&[{tY.9v("HB"+W/l[!e+wjqG557 l sĨ+~=+<lJn3\c}+M,:[%J`!TzjMV[bBJu}bK6/fҼ'K"YsF10A&x!sX0oM|ޘxA?ONB|jk|o   &y	e+v
'33h4g@Bz""7&c<7P75qA7"AsUJ{\1LVPURE|E.z	uB%v}aD	U`}+wpځ){bews~o8U30F0	~8
}4O=X,P2:5fsz,"SVcS"Ta&2t<h8BROUl9:u}?MsdvnEԄXh_a	3(F
[P*`6ԣ
mxwWayp	OSc}  7?EP	Q
p (426k87u7!SH(z2V@T-{&e#pe]!#4Ceu/z͇}/:%k6NXM_0
v`  OrsF ` c4ң%7wh
_	=刏q
Cݘ*Q= X[$si![p`z9UQs$K.1{ULe%l&@UUa`w7,rWxfaWEf{a8;	+p=W@x>
'S3cWU
  Am*) SpD3jjq)7&7]J{gD!8+rHoZ	VtЦimmcxql;SEp}7렓7_iV" #  p
oЅrd3%o1z>bD6ra#)x0)`'1zqPkATa"66TOBCtl7am$bي6RmTP!/4b	7
Z6Jcf;0yf}jrYIiS*1g`~] xp p"6 PHP,'>_X?`" aQ2? I KNCL*@f:[9u:7Xڂ}AavR%	Bi429m	PV`%\0PXE Jj*!:q>sf  gF;Y3s
q: pN(Zq~)"4 (6-!@zjql8>WAB:#OƭDk/Z]q*ne,vS$;r੷ա b qq4z'뷜QRCtPӸ `+A,PҏL
:Ð$
)+bs%.[@[7{9tL孮#<Fy®_0W(
mx}Aj Bp:q9 r;w{$f)hs7)`RQh,[  0J,@=$C'pA*P2.{9-}C};'KҗY'T]Gv9ELG"əCk;%0_v-w!\M
UtgrHX'x Hˡ=YaAkśN : REP -ݩ4 !XJ`@`	S*8J7;T+z"fUaS7#"Jg|4صL0 A0*/0t@(Fu6YCR[S3|pE<"RqpW̉
CpI GR)ieyн>s#{s7ײ7+!ālJ럱|70{" 9M%LaVM:{^W`f4 +_@1`ZpҋR5v1SMsr!,z˚}lʊ"Bǵ{BH꼦U|E	)e'Njsl`F,eE?áB㑩
pb W2-asqz
DLjRȳoHA%L8?sc!86@ltj1Bhy0bJ;^{9-eQquh^_%Dʡ~=~?M),5REx ŉmV(k<	G ?Z9AǞcRJ͊${ܥkZBrec&̊kk *aevvًν	n4  201 3@(0w`?z}pOؑj`4_NPֱ,:BmF}J,Y")XȌT'JulLg6RexMI!`0yыkm]vq
0?l`px@@52ܛ~Fnދ~	axot>'  g"P-*3g,٬GS$Aj}»-j괕]($]X0ZMܝaNp}4  QE9<a
^@	pˡ3%WlL6^{-#s*[r$X	2{2i<9$挼]t.$m]R,<#Bv&%+ж1?/^Dx`ٿ`4?* PÔj'4 r>G*ҏðHB [8"_۳R %,#\\"n::urcWa%6؜vı
]P  Ds 1t X=j4l(3Q-z=` 4u^4ry7|PB \^]*m;u zu(}	a1F O@M_×āV躗aڿS?7@R[(RlWhvRL5męS>@_-Y<ha+ȽIonCkp8OXe͞=Oa\V+r^q+p^]pO6l1,*^l8ȍ91W2kRX8/$kf4JQu|/~wCfHfuf=$BṠMR<
`:(!&1 LGgtv>nH  xii&lʟl".똁gފˬ	F Y.P4@lGԹѰjD̶,O2y-Ȭ`J>m7)Οm 1suD$Zz){(oAȎ:o'z	(:egϜ<d	aSSNI'tzaʓ|p$0t{5vG(p"j0ĕPcȢ/<0,=Kxdy y,mZ#5[y]îlZPrGMVMQ6B˲{82g xV	
v{(Tmh>:igJ @N/9d'xs	 ǉ
	YZx'w
"}rŐQ럡
6ek-zٲjqkleRki<\qRq݊Rm>
m,Ș(wL6IM)ʫ,U ԩ?Ƹ.x8?T|bedGA1.1##,H_Fk^9`mbRžBT4Y:vǷO{GpQcRGl=;BL̵M{޼}@Δ:npr~)z'Cu,baӎ`q\R g@<x) "xWQye<t-լVF Ř|"hԗ!\WjEY? l!VACS#>oHGCzhID8IJ=H@x V!Et2Yd5*d+F !Oy"ڲ5H/S$Ӝ4HeRxq\W8&׶h#EiJ@/_t߬ ś)'HX7x{$,#J`qV=

+$QAJ=^unHG,UQk*]缩e-dh$0ƙW͕b4i!c;p>;|b+^{t8]IӬ! <gՔV	T
$C&B.y.r+\-W<b0ߢ{"Qq:=@LaֲDl49jkyG_7IG;' P@lJKBO(uRXXE_/pB8Y[z؈;0z0Ae--K(a7H  *)%Z,1W*~E?zI!gǷ0rv\Iipjv @;P;6ۚNʝ}#pJGO@oD@()\*g<qdH &P,cD,C}oYWhIfyO~3'&FzAWǄGQILdJNAd9IϊySܬvRpt-s;qyHC|{h 葇i@IXRFy,[86Kjp3-v/}\&Ьh:icy J(rItuGTCF2)( Xr
Α3K&%Ϝ.Õj(\)Dz$z֬.Xaԗʚ1Жmb3L3Il%}n`# wx'ZvF <zQ:uG@Nr=:ɬ19#!x$L:A<ɤЌ"L鴙iSypXl\\$M֧)3hq8i\viGk3	 䎴T  )==ܱ\V4N*iMͧQ':Q?6֟
Fe},˫;ZD),/\=?oF^㉪'.] 2=*?@' h 	*5zwzjA5#`3@8( xXU	(9,Z"@00gQ/2;4k8Ø3C9&l60;cAV/3Apnh(xYh>Kw \j3
:Ĝ!HZ HnhXDډ@ЇrXaA5(0/6«jY1S5{B͘2)0ÿ 'p#=xPCf(f9y	C]kB1
h u	I+tTJЂ@;<2 *==;3#A 	9X%fWTA^d0,	|'  ;p;BۉT1:'HwXo`=xcǤ	4

[{0:>c;Z*[AA1J0E뚿c"Q3'<9gڑ(8kC-{ЀYi7@Dh.m<pzz*1
?ԔI$MxG}lR!8i7P8õcH|)cȂ,+ѸE|5+ι^)+|#Zp{@J]MzI3PHA +{4P!w [@rLDN	o6 D|$Z({KD	6ESB*/, `D8Juxl[E\v(U {(H(
؀[{ S3BQ'(wӖG	T`p 9%*þQDYpTT]BDuQTĠ^3QP>ҳ ?㰂EP2oʤHHJ)ӖPGhg ؄gdGj|,~ʛ`<;XQ"m>hcHNl]utsP)K`v'c K#m`r"8R=ʹ:ŉ"xJYغ?iLHR	P4ӄ%Q֓ДY2KTA(hH/`Rkmp#FX*\IՋףeZ(*^Ώ2 !O|s[(	*`MPI F /}X`A@!!8X@<P D]{`%Kh>SY?pӓR{0;cԦ=NԖ4Ĺ?$3/؂"ؐq$y
Ĺ_@Sp?#R88ՙ |	=%<{W5-]}_5b];}IdD2יwpM ǂp˴-rT<~Pr:(!0Su˽Ь/[\YM@-=sM^:~E!p`_#E<@!5?P=Unz`}o4@o(h4=33 'X0 0_q׵@]C (1W/ Ӕ.1u@5PYT`VгAY:DERUB#:YӣMf$o8>(GX/ߌ{Dz_E~8zixWS tj͉J!~	I-Iew_wDɫM䳊	"ϙʬANϝ}0>df]a8ړTf% <@V35DM<盎M#;@
`I{҃[ {g%/{Dd]ǃhJe͙h>@47p@or.^x0f <v UJw}hH>3
nO2U	 8σpĦy ,[cKuhjNB<d 4eBS6.p` [8H+^ʫBUYd}pƶy`kͩiF!'uup^	}Frbzez]vxmJ݉x /~p;,u$mX5ƦSigt [X[X[ol@ 򃜹R		Q9.J(~XuVpRPjml=ՖiWﻜؠ (wx[0 F|؄!A8~ +%ۮ 	~	z `ԹSs 24)u钎}A0=e@?ǐ5f-my=fZ QcH.
QxЄ2uݱ{d49RPsA$	x:WvQXZE+Сɖ*!vnƹt[E "֪NZctlt(>Ȝ1E- h 0}HoFlu0u(لWFP=6:A4Ņ8exhV7Z`ގS}Ymt3A`(R8	I]u&vה;r6b Ȁ>yBSK82[PA7|Є V@7&Vf?*!{?_si(̅ʚp5 Pn:d <}v7
Wcfa0N&9y 0 p?P׳p(q]bRؘt}הٺY=;MH?uK
yPٛy]m[wq ˯Tѭtof$?:
~|
} >~w yDt'P`<yu@3P`YԮ#21Ŏ?)r$ɒ&nƘ)s&͚6o̩s zfN  h&Л0jHvb1IRo4=A ңhG3
0as+yv|@c7/ێ2? '= ]gH<<B[W( ,-Av[<"uƾ߼g蟊#O|HZ-1ʀ2۞ZIt;'=YVʝ;߻{3/a#vb0'P=fU=HZ<	RME@ߠ&^=4U><S
4%㹳D3W4CeF?	=DTc@T`R=-PGx%H,`	[og]GW]G(Wb@7 h87@6 @@vƃ63xt ӈTO<1Pk:,=ficݰV!"~
YCӭ~;Zb<DUCFҀD[> l<߰ -YY<x喋Q^cS,k;nd;PS;iPIh8SL!DT's  = zPorb~3?Pj)? 
J?j?6o͖x-=tcH kNdSx%dz"#R=Rr1@ R@<t=`=ݳ lxd2uߜO;k{t£mC}xO857[ iT$NL.D=r8D
  Z	?,dc,߸RqtSM@MX#@F7p 0lVMLG@hɯK  )v	?3	讆	Pb"QdwxWI* Gգ!-q!A!8)n"!i#hMRIC

xц"1DEBjĺ 0mGM,$C7.D+P	x>@qPLQ0aH$j=p	8&7IM(@FB;AE ХeJ7Ø ]g6.Bj  /$؎`ɎЁ`X{j9Y- JBv4 WPĴ"{4Z-&:&
l-buқB!|8QZedcIGLAU0`O+	MThp!n$%`$zC59fv:<cgkv,G5@6-P*Ak -.-%x<-D:HRJpJ pHDwC9? HE$"uCc!O:"xUp B*-ߨASaxX k4(\jR{YNNI S@I!NIt2?6a ~D/SX(mL*T,H @$={k
P 1}:4[ep4 
8Z& yh&5P&L" 2vBh}fz<
F1{v?+S:`aDPm:L ;y9v!D?B$(	 s˲uNPA7q d ڇ?")DӾ xc#^%P̜|sIftE"hCV@#B1pbvwd
np(V;y_C<EQ< 7$K3HIMY"e.AwDm
_*Jّ?XЄkx
Xx=]n:v ;8ud 4Q@Sʏ$d&펤PHҎ!,j]=xv	J!F=ޱQ
lJ1^zaB|xqeLm,\쵢MpVZ;(JKR|EFWYב+W3-%IGhk 6 שLH+zFʾe`z3:R=IB-MďLE%J QXXIg)hA7|XQ)؊^Qíքd5ьH <)EF$V}C_@xYNW!`V#)	,[hF)<ďgۖDC'zHHXGRp\WHÖ`<%G<$R DU  h)Y,U<(ZxBX*TPTx;ܤI EG	zՠD=*TC<BBm,c5X!rx9[M]l`<Zǩ x
ĪHlqH,UcHE5\ =MlXc hƖ[IlB,c2Xi E ccgIF?La:Ă<ݘ\ T%`ٳQE؟)?\ڍ-ddSUoB-TFIv ؑ<؀>ď}JNAbZ5vDTFD hcNB8AZ*\ {EF7^uhB2RH8[.u;DM) EV:eg)Mԃ@U8%cNGD)Xj,btɥIB FaH]G?LVDʄ?&7	ph$*C@S6|N$)Ġg!C @'q?UH'[lkWmq)d]*Q(A<oփ-P `LX1 	, %&tlAEuL}Hlr*H7eIx"N\"OqjH[ YOt-
 C,?&<ǔ"Q V!G=H@,ffE:Hu~DPAP< &h;`*̦{ x<,NhhŞL!}NgWn~J*
*Fa2<qcxCPC
iϔ3`A>(.)5Ch"+?`%*je@tXD	 g 0þ8L蠺`:% 0)t׼̱^)rhйBtBLce0..SVHwi`e[hB=_b,ڈOT8-q$xN?DXew`tw&KbJSĚBΊ@,P(H81~*t 2L|RDF<tj)$C5flNYP4C8 " *FJlBfStHHCG0CCdBbHl xvȃ;x&&?mGx	&=@1;Ē	A mDG`p,n D3XdHASl@,ؒ[ Pk*蒅x:gWOƄ^9hrp*rȣGBDc~ſEl ̄)Hf # xn H瀞.0=BxX̤opF%RéDoH-l.? X&0s$M;t=$Xe}K	$hzx	p2rUdo΄Ԅ10XIB<lUϮ,8AD),rHK&ଢhH@?t
? @md*q"+Gp2jIV@O&L܂Z-I(% <pd T2"/DTgsJ;! kNZE\aCĄ*1= ,%LBCA(B8LФ$}aN86F2Ur|-|Vt0n?A5B%24b7D C`BU)N X@6D<7 pL8H= CxG|FBoOpDtO';BHx.DX)	hBW@=)FovȀqXm,qg",cBUt^$T	 D	&E>i_AeZvD̪]'?\XYBDDu1,OTEМ
<̀:Gwj}L*unlɄf}F1B-H**t1([?Jg$*l6ݥFzٵ2">lBZ8R}<XD Y%,>A@I"xD%R_8HfN4.QY-("Fㄌ,hcN<`:زfBnwR{ X?/D@`Wgt=4BLBʄ:-.]rt9B|?Ԧ-^frAQJWsk5E]$WIyv/P3 4H 05/hf[CupH[UBtrʃmCLx=׺`ʲy'`z6#2aE6 TD|YHc=@p[9"`z~t肄٠_@YWeD7 y*AE!Ah]`I3 7`&~NDK=DvM{i,(Trd+''rC[Wc{>ם2%Lzh?,r:ByTj|caŃspI	DWibIaL<O 6C@>(i+"xhEKeOe*:,Lx0~c|ät{Fu{LJvt4e-	_kMqx7ڳE0Jt
:@ +J2ݰ턌6T@=
OYþjE Om;0tI-4&ieD pwQ`T#yrшD_Y<+ GÍy}pfnW?Ӭ9|C>@8p`=&TV<!F`%"fԸT?>nO2naTXO^=A {`R#*#:hQG&UiSOE! fGk;  4감Jw6+rȿR47ziKC0@{GJTvJ @I߁	ki	@u?Vukׯa.j{/,׿{roi#*F;@"_j"}F ގPy݇gв&}L+ aPS- Ml!,x𘁨{Fɕ-& d 8J' ɀv@诟a)?0  Tfا  o@-":`-/S{9]J*1͡2N(> Ҩf YL-ZP8tBHM2 Q1I-SQm
2f𱅙}(9<.2((kM#~.GXHvߒEX xaX |=A SMWu7BnR'nbIV3f*Ј
PJAÑĉޢ \ЉMz+6HطA(!q3UtlaY{'a
2XnCF£I'/nȠG[TEb3<͔!n]T΋Z~<R9[7Z8N
 hEQ {31`	a7rJȟ[pCJ5 X8UV"?pi=݂&<GNtEd|٧G	#|n,r%6K <C~|lEk+>w|h:]j׀ިCv/\b2 Pⱓg 0xiK%x, 	  aç ?VWuLdêCuNAQKड\JÈ8$US /R	;b@:cɐmtcp@P7 B;U+n3)vHaJh>u~H1E 0R oHעS7GG"EHi_tpЍɢ2![ #EXqGAYy($d^qGaʔ匟2M\Ƀ_BFBwr$`R`mHG7JǔYɀQ')Qsnb#G! }&btk&=(?6->10Fe= 4v2%U1Ŭ
= \AуK/7M &DtlA(`Fψ[XWRzYj)N@5a%:p>ܱʡ#C)aT W#<(,Dn0+W(''uV%kao9`R	N:7qREJ%z
g9AuS2I`
pA(ňLfkMK	Pt0,fZ{[{1ᣰ gdF ' oTf:b8M4
IWJSd%/Y!^WZ ^ePp@r+~tZW!9
P}|@=;u0!\ad#Y[jU^R4tB@f&OÞiĆ{Pu~0C$U>-@.*`dE

!kVPkas?IgDAs[C4):tu|	K;CF*UwEFPɑxaR!Uh9 ΞaJ+4L*lwp8m4qs"6c T,AH}f
53B`>C& xD̎;l~9:C9AA.VPn0@BL/F;>l:HC0;Bo` 8T
 DPc^vBs
hu3/~;L2ǐ&`_5]
!|h7}LM N`&v-Zd9-j%s7ҵz !«y=0+" G2@B>WnbEqX*vq$|LziS?u@ 4"Jat<BO *,ThO6`	Jҁ W3T6B%>BlB.pcc>GZ+`Emdҡ(&`AMex0䔔Avf:6aH'3 0*vg"RjB$'Z0^ L-BNAFG/  	tP{?bF	/`8Be|h5AP"'V#Pp1C6Ha_72B1px8BqɑK% 4]&l10 Ph&Ka1 m# *#n,5JV0hʞR@* r#Ӆpg5RN5Z/5p`82&蘡  #"@ \n"5$Ner)O`XlAqZ..!Kr,SE+Ϛ%HARXrr/aDڒ:@S`}LLO<:>@/)AJALQFAJAH9`0 {q*s5|c*I}$T.6
o)芚L/`'%%Y8q&rc`A/Ѫv"5f) 1/:$9)L(@  c#.g7 ,`v6*2<1"M[c4A'q͌o4k*?45z254(A4AV ,A6sAMT]aZӨ@+t(a~ӊNwd2`	NGa!"WØ.Sp!I+.Y  D^ITG J!$Ycg:r4M!Y!$E-DMK+\'s2{	4,tOlS!*	jb@  uS_Cd!SM(; T*!Ui)Ԣ<$Fk(H*cXtW5)jJ#XX(!BrpY8Z5"FQ2Z?[u2fu\yL$0UZ`Q9ux@0]6 S_a^v,`bKarbUc7uVZ/Jd]MvOXaWv$ dcIOqfL` gMH!cVO뀖l!ަikB NOAevAM`SbJ/:7 Pv5uDȦmbVpaD-ikBSYcpGL
q%[VhQ "qg"eq	O  \rYQ&Ew mO#!-+\2   !    ,[ 1    Ik4GGGSCVGXMZIZS]M_N]P`OhJmLcQi|fSfXhVl[iVkYnXrNtRvTxV{[r\{Xx^te~cuubwayj}pzcg_\a\]wzfluur}~[^`gb`jbnpdfhrkmuvxnpÊəɖ˝ӈߎϧǬΣȪʹկ׵㐝εٿ                                                                                                                                                                                                                                                                                                                                                                               QAn)䄗01qP0T(G0S (,	fAQ
!a&,O,CepF+--S0)!P8L柰Krd^mNqdYp.Aì%ġ. !-,vx>b{$
mo0XR`!q9}砞Jkn*"8e
Q158_O@&($"}0DM àEB"X( ~!1qa̡ F<o `!:!*aT! .Hp 4DpD8 TpBX^Rw@Ȧ7E0^>8D.>~L fl@D,@@~CfK 	8  u\W~ЁbI QpXQ qK"%~@	2?A)x3A@ !    ,u G    GGGRDRD]S_M_M`N`PiZfShUjYjVlYnZtSvUp^yV|\q\t^}Yo`onjzrcvms`v`zlye{d~hg\fblhltqs{\]{fjnuyvxq~cp_^`hb`jmcnpeghrluvxpŤÕÌěċȘɖɤ΢Шŭϣϩƺܬկӱ㕲꡻㮝ν¿ۼĦ                                                                                                                                                                                                                                                                                                                            -YD!	P@XȄ	@E#P& <%J[H(EKEK<Nʋ4`Hu8	
	D(*ީ6.ZqRy*©HZY	`322J9%LбtG #r'%rW$!@zamNJȄ
,j!4/Z*0+"P %3L5$*2HԇA A%EcQB L
BZ&a-JKTmvB*1F)<xbLAj@MP%%DLUtm@A%AAkSaGǞ%b(@%v\ВK0,Oe	ETp<
dW
W!D}h2Qei)@(`@S,`x%7؆-	1CG4DM&VOPm)2fthA0cEx)>؃M4AN(#Dڨ#Р嚓0'j'LZ2TA>@ʀQG8ꚸ25ح9/BD2 $AzA8X{X#<pepE\#X6k~@_djz;'U@2O4|	4ƦaD.1Sކ0T|PQOvzN'u	$jVD+* 
kvI6 m!dmdK>pxm(|kک?^V tC8!6w3;фN(>nNk	K.7ݖx!+ɧ:1{C=1X$W`	 _J!|ws~3`򊔗 _'@-U@Oy㟎E Z0|F/ ;23||@aP@f;LX=+Ta}z0 ,!8ayjK4
@g!p:j7a`" ,1؁#p%{ڸvkB`@ x_LT/e`ݸ )lsqnN\<11  !    , 9    Ju=GGGQAXH\K_M`NcPfThUjXjVlYnYp^q\t^rbwhs`v`zkyd~p{d~h~fuw{~ghjmnpruvxĎŚəΤ̧ϩ٬Բع㕲꡻۽                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !HAC($
Jb!!	(@,hbG". ǓxX@I,(`I
:,Ђ|vc
N8D	HHec
RZM6=*4HxR'xAaB@08(u\lO*Dn߭5` 8BT}D!*&hh=!FS 2DA`Ofhb27-$4[0AEW(US(0
%(m D}DB} D4
dB	! GPBCr@ #h5(@
"$2Bh;(kD dEI_2Y! TYe&P&Pi$@WS6ieh/pI =0)"2p"@k "B#wN@D@0 	)BAmQ(
!	%4?@*
P	"߁U @@Lf
 (Pn ©	4P%* Q@ !    , +    GGG_M_MbQfShUjXiUlYoZq\s^scsav`zkxc~p{d~fw~hjmnpstvx~僙뀢ɛҔ̧ϩ٬Բ㕫眫㮺۽                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 ? C\@G<h>t!ǂ,ȓ	xaDV,4Pp$+,PBM|a *0@P#T$SNXA88:An
O88i3J@RyCI60A=hƀ@|Z4c$A8A0,dI(o' @xi`^sɗOon`۫s^xҙS_pl  " hЁf
!Pe 't?  *="l0
"vy z wX:sB=fC;Xe@ !    ,
  u 6+,9+&:
.38-'''(.1-59666 X q7P4m'[%u6n,3Z+7u8T?Aq9GV2Mn=mvS	P0X3
R21jf2z.u23QNQ6WR)pfAu*O|)`XTY@1pNpP2HHHCVXTA@^V@WWWFZrLs^ImnlTA~KwdiYgggfhvcuovoopnxv`www ) ;.+M	Wbg0V,P6m&t"{R7PFW\Vq\cpLl[rrll]dmqw|_mpXosmYro|i/2]YojtqHSv|ry|čzů{}-559GQ\7be5]^'io%ONNcoLvuxQfb]qiomuѐ}t{Ѹ4UqWmXeYj^ox^kxǏ5ɘSęjŢ\ίlrn{|{ǃɁťԮ΍Щ퓖Ǒϯ폯Ɋ̬̲֜ɵȹ쒌⼆ﭩ͊ۆʱôȗϰъ٪ 	H*\ȰÇ#JHŋ3bnTCIɓ(S\ɲ˗0cZɳϟ@
Jѣ$_qHJJիXj,;KٳhTw-ujʝKݻx}U0+^<UaKt˘W@̠ 	o%1AҨcd#Fs|j*|5ǉzEua_@oN!j]wyp#?ϾT~uO_&$k^r&K߂V(S%T 1 $ZOM'`TH,(MՄOd3.Ja6#(8:f j$^yXwcCل`[Қu)USl])Y\y֝|2ܗ@'Zh5ᄨX\ 墐61l6~^J-L駥)"	l`zꪊ"q!r>ӱQG٪kbh3HǀNd8]>kC8 գ"fSpv+.]tNЩ0 J܎KP_@;	(	\8kmzf]9kNEonQ*5PnLaeU%<2\8Se-d-@8t¡HeNf  ´٦*X@8K
,Ꚍ`h(X|uUo@ 4MvzxS;E0 2dk~vI>SaLѬ>}07о?s|=NpC +z<K:
F1ɢ8Ј?~{Kύv(-x_>|i}t4?q21@I(P$˻k/'ԳXb~ى}f@e!	67Ў 	R-/rnɞ$C<_,2([<M \oYM&<@Q-]:q]XD 'B[&r@tŢמ0&@ypxBR@'PTV=T{,a Hq!B"i<Vɓ<<ٖnCJX  I͍vLA +Oz6iY$2B%1
fLıZ1!C24X1!Ʊi¤ss*rlEMC'ԍufWi'dIj	
,7C*$lNy%nmtMBImǃS8"|r ȧP\SNYX%,psP*(MJOZtBxBA?fDцܰY~㙈xڝvĤ+MRTB[kG!C;U<ǚ=Wx&U4NtHEcԆ2pJ z-I=0'L Ɍq0V *rӠCT rd'ң8	!(|0[ie.kui+egK;MZB (B̦eD-D#NblkKQZw{?ܱ:)eڬr7>5WZ.r;5%~
<'NXXzC4`F(Ǻ5pd-ID
hQ=g&EJDe+}5L)`fbL`.\ˌPg'8;LE |1"$7E |4y1ɑֳ%oMiOp$N#9׃ ?[k _LJ[:<0f=؃@Rh2cN.B86$eƗεI)S&ɏl&dB"MVՉtC\@Y+q޵mP;S8 >~
ا&0毳2
*>hA4Bin߽2ڄ㌝= 豉UR~j{ोp򠚝02B @%'ͺV3E2@w75!ࠠ@Qꁨ Ň8qS_.,-?A^<Z'@ gdjKnr[%%2Fjژ%ATp@X3Mb!GL[ u
M<SAaeo׾1-+{m3R8a\0ȥu.@;c^MJՔrtlЪ3['8~8NB Pnдv.Sw.bw-WqeG=oG{~)u*~(Ł)5(e-凁t!ؒVQ	!I}t!QVV'.wc<./=+Ro1bqx('(GKXt)hvR3aPbc5Un:>nX8J4`DQV-V*%'
%
E	ńQ*BW|'.cJ6$:Eq$#6615A30zkQV~I~	%N8Xxk[++R6Ge BӀa6X6zhiǈX*HUWc㈻3S/q]̐C߰>
OpA{ըΕ*V1?vtƇ
(%GڂK~hP؇6t2A;q𨏂[623T1%p\)g唄!8~ȑb	Ŕ䑆ORf01t'z nB)È1*=1w1-bC'ɊQ6G؄鸎!UiPR9~R36*jo9 -N8Ė!DWB)#C:.8TɚIyRP B{XicYBdb r bz0B*=əR)A+6//$'Bٍ5Q㘑H9X9	9iIgZiX}gq,J#ǜk҆BU40IR乞J}i'E	is!!# jFj521 Tl<.DE6Xrtgz9z:4lQl_`3t!af;oډaTPwjKJISPBy1d@jpndjiR5$sX/F8 36j@3' s_Dʤ
xYOg)8Av'UpmJ$m!<WaJ12OncƃrʠtYZ~*{Z||~OdQg nW2X[$!(z;'Doz3wz_*6ʚNڱ}yj~e aN,c|pp9+1(Be)q.7Bn4Z]ڴ*J:%[9PKKKf~ 4{sz󉑷W
9LA)n_'U4֫SDz"i!ۑQ-*zʞi]@2W?qA vh@	9/EY@7s[[EڸS+{Xo2bG
 4ܵ}˲}B	w;uH p	#{ VKɔ{Ȼ[U!m'[g02!5[7/W0.ҳQ.Z;[);[[+lWz4nspqpHpQo72OfQ}jwl2C"Т
!PH%LY+Z{⹿K2 ړX_	m	Ԉs)1hI38Orj174 ?#Nœ۷m«؂h<Kfa<$}@ 	`JRpAlS?<:&y62Jt;KщY1D)k<àliln,alLO^C':;#yd'tQ.V8>:$o$wET2qUN񠣼ɥlj0L(LΩ,*++k[Dӳ<vg$0"GІIwĐ1Clwl}B#PѠݬo\ơʪǿ:acQO42F*(O(L̐a/\;84LM7ܤIƟ̞̱O[~3 g+)x
\'`s(]\9?|R}bKʄ };lڑW;~ YeԙW&Qb@ +R<%BP5΄ü{-MmSO鷭Y]A	 o&cZ0r9zu:'dDkG[JMR)L95=}cA@QB<<$mQ:#A7^dBXntwKw5ޑu#}ۀߐ=:~jpntqNNM[a@PFaV.iצi"3861c4-Mӟ	??%
ـ`CmȻ̔k8uo-ޜ?T.t 	 png'=A47u7zveZon*r-ِc.ؼ=v.)만y|B->\gA 
+I"$2=VlױȆQ&o~"o뼎u^l>6o3W^x~"ؒPQQ	? Q+AA	Sđxw"ɒS+\A7~''Nc,<r"M>{/	uC>KM9Ljx^do6\qt}<)dY'+:=A/-l?/O]^_yTF@?0jABlly>rz	!B؉O?(Ip<=:?nO?IeN@o,(oA	.dc`0խ5nG!E$YdJV˃DM7!:u8t\*I(RXF=uSJEEjjүF:lҗN>5٤E6UU\t!?i~UaV\#1|(xҲq1ygСE&MRLu!7,xV"s	];.-գm%*nnZ׹Yb޺yy^74w!fCu	|TħGQ  !_p@%*c*(uj0wz6v<M(PdQ;bF|+9-ljš~đ,B=iIPkXn  c@I,sL2 4d0N+Q(Qr*"N+$˻쑫й?Ӻjy1r%*,sVZk=5P[5:퟊ZR!X KV&OX/J[QH1:I#}tQo*1[!4B}t_!HeԌna`%PV^q>gu`ˤ
/!xU lXdEC`ti'*[Ļַ5Y)K1\(f!wEH^5{N2}SWRa0OjQ|q̅׫8cG,rVG▛dZz[/EwlBP0&/|.XzsGXSL@M}+amdurel],4wwԛpMJX$qP"|sQHgλ$+I`kʡx`!nfqSuO3lW6o%x-[Rvhwc𸅻U(đrR- 0PI ZBq @m"#b]ZC'6%mp|V#.oɫq9A_x80h
 ABQ(   l{9L XCCd!!B"},F1D-PF-H.,@%Dg8xNlQ^^ X+0{ke- =_}P{c|	G@5H㌵KWTeEI%IOd[J;Q\IgèIoHILR2G[{0Arvɼ2qB+Em	")0"K6y-\wd	NIEIxBPyMp==Co`IQ
Q&{bSkCrV8}2l(6!!hLC_8EĺropH]m.-zwLӛ@gH&iy}#("QLC5A|^dCA~+Qd5IV- -0k(1Ľү&"fYa[91)~ĘQV#A䈯>`UPc_7$"DWbJRULKٺ-&:w""ANװ0koT4u]VR
0DoʣA`	9{BtLڨ2[eb="+iAOy1_Wo24IL9THe5,"E/`m-흜Ch]:W̗!uesUYL4Itp3ԝX&U$p	Z^>	SHgXͫNclk*(Bޑ\	s>xrիw¨AM^pZKdJFY\=F5%0LRf44_IaQqFl7fwS^:FH]g&}2WÏ.͊h[,u4#W*-mmiWC_qӈ4H$.Wݖz{vŹ<3$ATvP's\\-\lBQrWۈ9bfnHhtYOǔ9zCЦgsuVk jzi3<(#2AE4E/u]wYM)qeyqB4G$>}	W^-)bqC	Y>H`ׂ>K3j+F/z@=qvK^ SR=KG
B03?|{钥r:>s:-?`b˱ޣ9+?;	ӫK%ۤts;sq+)(ѽW@GH;@R0a>V)~@R4 [8@@g$h&CI
mk1ꀫ>oCD;pҿ
7@.yт"$TBIl;7Xx[XЖBi P}*$8c:8C$54-UP!qA@;,FS>CA$?f갑l=[+0ᆺ;-X-[$GGD04),R+4EYiWAu0쫆aAjE{-r6F*;ߩ1=iHmsh|"+'тF0BI#"3GȰXB>J3 !xGa c
H_,WǥK_#9;mCOZa;>l4@k{ث&&%= `Dq2rI3TÈJ3TpI!|$}PSJ>(x#̬AyN9FCHFgf?DJOJ4?rQ	n,FDB_q'dYTAŚԮKcJ5(EĳB!L_@ıͤmb0ӄF3=Di\ȶ;"-V#ޔp<BGc;,NS>9;h	Q3Τ̉|N@C(8OX(Ӣ!]9yHғA;Ԏ\HK be̫&0=(-pHNx,d.SN.X1Ѥ}T:YԾȄ5\A(Et !	J;C#H%OD,bH	㺕;lA3	zNӂtKN2%N03}ŇvT#_=1xEu>](I Qh1؇0Nl)(CTxQDeTGűD
1$͘JAMA9%Л'57;IBYՔU!0]P}j_M#Ȩ8SdM*at>1GSlU*m͇)o}ל t(86i8t6HLrtR)?,#-*%ЏZL}OЂ0БG3e.<̊.4rUXJ6=	@+*Bp[YkT5-:mE	9卟U=x$URxPETLÃ.-GUѕm]ˀUYQѴѶXpȇiW[X[r@=#ˉq\uݫZ%MyEDʽܸE8[A=$DU(1#Z|\K,\7zX۝7^\s3)PXxk\!۫|U=VEDvE^iLaeRbtܦb!}#GTί&c%zS2(TiX[}C)Pd\Lcϣ9D׸#4ARURFv=yn/DVB~ f4%_u؊ݰM qH%e`kn-/0oB@YHp0i$
 PZܥO^FDM |OU6G0<}ֵH*9U6G#:I[Px,)FP>Ņѕ]_Q04f>;ɵ\;w-.uM_JZޘOuHfn=D{f(]u*/d59ṴS[&m·v@m,Vʽ]rXZLe]}mTYvZ\.gCzmһpU;նկLaS	G$dj=鯅I6k*4ŋ>
^N^Yn<4@eQ\@[<h6Wtdv}jdAi
nMcqMgpx_À_kfl_sߥ*0xX!͈y336ʆhƫ(7A(YX(HZY1=$YKq\Ȯf;U	蓝mܯâNFH;!DnmvX6(.
Ti.#n,LDYnlƵ*0sxb.־l	$c~8OFE~<fH-c%Eg{%faֺffSeFR[U]oE&iu]ZI7#&}&a*/6Ӗpho\&@AVo~,eeʉV&HGk^o6~fPmZ.	ZrUhx GpGs[X_BfK>&8	Yg5St\C'6otXg`^8C 6ҶƭdZop:O8--ߖ'A4f_xcfDV.jb_	v+LW{dOqyރ[tw|/&ղa$0J]^xNhm@vx\s0I/y:'EcTNy@#S<cawIGKt,lSNO;L{pl}af?t_W<
V'Mnxj{E^VN(iYs`ҞL7?<Je5qwG&<Yǽm;}`T8`h$mO=qnh0,a+0a"p-wT5tX$,	^2bRqh3'P:wj#~=۶H<t)TNrB]*V+ذbVT"a7-ܸrҭkw 4ՑL^-lp|3n'U C+
Qv<EUG\Q|uF(ԩ:!kKJΆ4QJCleȉ-Ǒ,yˏ-	d>Q[`*|}Fui$-	%|YAMSRgqa [1  : ]   y΂Q[@!Ug%6VEMLfbVH62L![ViF5USM3іTuuw=dvNWCe>ےNvtDGieH_@dZ^Th#{@#VZhUߌ8:L?pt˄ .z)@LడZj:5vFVXVԈep:SpfSp#.<"@F;6F[$ȂniVyГvJvї	I!w6	hzBj.DK`qNZ(L	_}zK}CϢuTSBC:1ř8Ub.(\"=Q>Xh++dl6p_&4@4Ec˶ uKoDW[JYfM.=4_)eTܫ;yN:#/(̔#b,S @JiF92#V^?Wjɏثh0
/4H+E\;F5]|S$B.bҼ#nK4tȓ-WSv-vymmtyXt2	QkYm:9Z@|8o8u$eqɆ$(sLeTZAWS0p
|n
A|tlL~Pj0^¶QkJYr,u$z!I`Ȝt]DËVxmN?<o'[d?I=QAwBE[ґ0L<20pcN'xDh`&b
PG?F{(0Jztk%3I">T%Ӥ3I`!
T
J["Tڧ
.V"%_[(&PBbu4j&H GhMaL2E}?pU> ]?ÓₒFƮR\Qka R,Rlֶ.nQ^b0/h 0g6`f s=bfѩu2@J@Y$4F  	
?s1'!e2+)Xj
hDb0-Cv47Mh{_[.9Ҵ7Җ kk:NG $,#"!S=qMiT<t'z)(brAqj |pK mt5eMȜY"W]f>)CT*
|&Y]1MW+5.DV#PRk5Vz.k,OEBIE+mQT C"O!U6L2A1>\\	\!j"W.";3qL!
ve#.'ݥ7b^J*r*/VW%ߒL{g׽!Eg\J PФx:T8SPYAׅ0WlyT`%nWXLebj(E+H@WXb#sILVUjVF/x+MNGQ!q<'V,,71SeV37$eAM %=H^_sH[d/[VWOSURr!sHbnh
U4@&iXfwhFI6F	CDEDj:	aBR3Ih练:,РS2:s6:l!`ឋձ1}0
(	)XT,Ll7Z^ qyd#UƀNzU.k1e>P@/_JdN<G;VRܙaW̱M]2
9o3`Y{Jp+W^,T 0;^!S--@	H3jh\G|KNOE<ng㊭LZ,K.e@8<*:,Wߑq8`CHGWYME4GI:ޭEͱWM1	NԛV#4XU0SW7Bo1@@G@	 d!\-S ULhSq]MAXA21\d5JE _A!"dWu_EtI bZ!DJ,TX^$O`T]W` YF* ,,<~x
 ֢\ºƠR!W=YZ9E4 cZXKX4.YwDDҡH-}FVb!W/vJ	?KyQl'|yh\ȂV-v\đouL цvHuQ2 8#P\MD[Yc6d#R*Z.eGA!҈#;WDݚLm"<ܚcW5IE?
"͙AFE(
)709$ߌ!-lHDڱG\lC(˩# dU$LSM֘SJ|OPyLps-̣D1%Ed@	7ET".艉U>D9j-LdW[T(½pQ$Ubq#@
JeUV_>Pl,ll	{9:1 ,$@Fʄ0-JJSTA2HXTLf&-eB<g9OeX[@͑Kf9ٖ "DZ_p^EHDWXC^`!X.ݽ@;x@J (u2XvV<"tg(ǈ--z	Y򽧖C@Iإ`M܀]f)h.$٘#^OZqfUV+u(sh!*GT`:4=F7I%R`OlXpT8½D6E1Auib|ÒJ>("
x>Ȍ:xr
nlH@,EVdJcJ9BDh4*DhA!ԕXLQ$R2(Iˬ}Ԍ!S^v	P6U8Ž8P4E~8BZ~=6Yb,d\>Ud[]l%*E
y4D!E,<#Kfʂ֤ $rcHhD+PAyWX+t8-dĻ*HJ܈z9REDۥ*t@Iln&'4KYh]$G$Cڙ(<W~\F|-WNnxE_սݘJr΋UO
,rm!5i4F+
HHT@-BC E	TRdMl!JlVԨ~IXTЙ#@BfYalXuʟd[~nWu PALݾUo4 aEB@y߳n>n6L.3
mDAt5$_8BQyA	4MnP!zl--5ER#lO<g-}?CG76Mur=]apLY~qᑗnyq]8uyE9FʀƌX©-t$!l0]
bFŚlFٽ(%'oE UfezEflMY/Wf7ftra(a*ꁱ0DSq+7E/wRJB@$GpH2Fl0F-vRE (fT!plb]˰o~٘*HI!bDXt)kTpYvfg4B8AC/T$1{b\/({0]0_,~
5W,c>xE4Gƚ_5wD4,q h8/̀k XZt"O-[.9xc*cy&{tƳL-4ps*'N}\,-|8b ɲesQGD6\ :Q/WRڄA8"sZmk%k$X`I._ͣ᳎B2彨5TJ%uuW&^)&CME,O@)2aM:=(vݏ[EYetJL 3vN3dܬ<s[=kK:k/5 45V0TT[j`U"+*xK27yՂZo%0Z+=
/	Gvp 1%nQDsudVB HAdA#zM|=8.[n0@LJu8oQ
 LW Nhd6Ov:H:o& #B#3!xxjfG-p`'oGͨmn0n!#ύ J
c~6pBWw+84<زGLɷǲLZ{nߙ#*:6߹[/x7:Jl_dHձ0-O@xǡ׈8CT7ͥW9
<5G\Gt[<7Ć3EyIWb4xf dl>My̋bEBj4|{
4!D$~NJyW䃟ޝ<8'}Q7 zC¸Ɛm
Bdu*B;0oxu|x~r7<.ezVvY2Qw`ykP#fwϧ^yC<O+(R}³tcg]16O.WjqQ/d{?uoΘ+5ҕUIx9*r'GЦܻJբ.D72/~zTuֲM*{+s+D7;(~ŪM<3%@y$B  XZáN6tbDo\ [&4yeJ&%
\3iִy	h4B)U4產GgV/)CoZyJVYXP)Sݬ kf#d*R+W쎻_R߸~xkፅhnșcW8Cs䏠ǝ!7Gqu7'G8A}{o#ŃܵO;5%+N[4Gɕw=;7}>ѢWwCuBV`PSSg  R	
-ڰ)zb
_(k⩉*tbʩu$ZVɉ
@$(
ɐBЊBDڪJ*L[HN2|Hk!NRK̰3,0pˏ 
S	2556sķNv[8yD.8	dS"'N7G!w3R.n!9%",ZEq\!@XZ`@b-iY(PņH\JY+zb)+B(J)'lQ	D
A-@B肅؇jD̑Jcs 4X4C5zX-IZL,H4CuK2 9LmVzHCC-Sh MvVcuU|b |a 
'sJ֚mQ(4m
[Z$&'W)tѲf2!m뭺%I˖}ﺥ2_댡lNRX)M=,!:X31,fOPm"Fm&-y%ty6B>q^?.puⅬf?uR|`kQcUG"^SD淼q)SP3NoךYb|Ĩ
**ሂ\>z\Y1	_hx/&Jw\a1bu0+X&C[Dt9't~'lzAq=$9Si#)nx|qD$7Y @ʈ"&\KG#
ͩi	BncF-I6h"m(7ԕkh

T Ñp+]J"0Z؂kx/3cKӕaIH턨nbvۚj(6nt\C="m0	wLz.7^!A#7ZD$"8f6s?ަ<<F9G&&5uti:\EыI`D&mSdMP Tްrm%-'Kq_Q
)_ꢎ%mĩLcy6/f>f5FIN)q@1pAs"x"q
TFDCY GY= G=^J!9Di @* Dbl{GGhe ?,~i#^;҄5سfKJ .Mp7rW T	3-k9WPfsc^%n8um":
FF|K:$Չ	TyGv+B<lwFMC8{l$PkH0˳<m3(KG` lZ )B   q|B[2MZ)jV[:
Ӗ `jAyիs-	TdIN]Dn|]&1l|CL{#(Dʉ?a4%;hwÿ10ʣ!Huh0S=&՟+>En
WE=og:)BNNrU@o)PA>FX[U+<!!9CI-x4ݑ0a
S^HpjJfc`sΆԮdsS!;N3ShZoNBy*I"AW
Hl@%EP<6srS?ȣb?2Ƕ7#i?ULEx+t0;OțHXJQZk*qeqP&aQ1r\\Ɋt#sр= *ы2 M:f	>	8;c4Qj<Cbx|M'N5%Ť}bQ"Rx#2GNLStd]KkQ`.L2z}TF*֟}%hxdQFPN*&
{IXܲDߖ		!ۗ8Gឃ2L5 L|gK߀11OJ@!\H.nfx&#N"Af|A7C`\nPI>g7yf<7a%
#^䇐@Kd,F, Zd!xLJ'VG;K&~+6D֐B(TA&t)EJ	`N'	.͕BH2,!hl$ ! Ԥi`B"om1:x8P0K6>6J2lSVz!`<A2LSp\;(Ò!ro.@U
o=EkbXn!6BFoo&pȮ	Pn ܬ ̈\GL/ah4>^M&I -w*"\J%	f "AL&k=`ğ|8eaxpgR
eZhg/װ"$i$)W`!iX
QDv.1#K` ` JkqYdٰT n&mO	 D	Fn+Z$2l&Na6a,TaAa%L#MemN4섭\%#`R1`ҫ3\ACO2gp*`P$ld</JÒ1)q4%"rHj&b
N4VC<$K d!t A@"lƲ<1b8$@p*bDOjoP.\	@<>?rYp6N

A23qA"PD:5N2	X=^O"^N*LRAިx!!@Z%σy42:3eڭ!AqdnTjNi0I\ǂ-KR<۴$T~	WE1AIf&~a>qod)k.
tFt*CP"\@\	bA!HBpa,T!p!AB
_A:ʝ@3<10>XpFW]ӽ#ޫw.A؁!AeF$8"D7K7m#/tJJi8 Ks0*/,]}u,VZNifOT_Wb?Vll#OmbA"!h&?MbQB@sA+ίo$؁잀0@(DVSb
a*!b2m)T.7H_ "lUW'W.tdX_d ""gT8EDpaAg{te%zP0|\;Nog*>5|  JdJAzo_=
N+c!i0u 	ؼV&taAbCB&(TR=$@\e0}d k$apo2ggTUuUylbX&J5W
Gij+2jVCXa!gHAl/x67{RTSnQ66nKVP8K@RlP+rE.~h0^EL!#Z`xcX?F>O"et.P'q'uɨvKRb
|!ށ( 8axLA@o6Ð7TxL!!JbXS4*5#/$kF8
0\o|A((	tu9x&ROlC9ԯT{4ŀr:wkò=bE#()rlZq3-b-$Id?4i>%d!P7`ŨQ5H@$*B- al6!@5|QqxvZVD /@t%=XaWa#un@:LA8""+yҶm7g!;jc{7Z/or"p#n~$I~&cKY/p7b<d<#xl|-$\e`Y"|xle+s/!d lw*XI,8q*N!gi2y,$K2M!8p'$إ"u&cډu:6J/OTBIq㠳g~Z("(\3z(x]!&J!vlfK`]kkVO29,+EC k| Ag}BRiDnyY/@3`u.k.bjD
n
Vwax!M!vRipy _aRLVf:$b}h/`aЎi!9|KS#yomMP6|(KcoִϧŇ&="p	H`4sjZ0ֶ{}гUDA,Ij<Z4v.}
al+(Fr6R@$bkZ\R}!A8$8R!y(9X*0U|uph*RZ":3Q*T!&9A<%ʲEks(N;O #)H <#$}/`BXpqTC~K[l'K[Z?c)lu˹|\M'F"v*F@7B-"A[/mf.`!"=f{*bTW#{au{."~2*k*X`gģ\ObyC
7y(2%i1|T;t=:$)S;6^$ٗ՜§={(*^opĨ86]"av Xp[ݢ0!:8z6^'!8:!fU'>k%UXJi[*չ!}%t}힋}!XMW#
K8$dЯ:P6(Dű+kUXueə_ H/Upb!3n7
H(&ݟ`Rbw!5=| ݿ=r4~`j)}A)\:B2+UJJ$)Tzub4{R_|2&S0e:-u;9N˖qY'PŃ3Zn@%eK%˨@wZ80(N}>@~"=+8dr4Y7zjahTԚ>:լ[~;ٴk7ju1J4ˣ?6)#*LUŢ:pU#GW>|I,y}x%>4'M؇		ӝYFNv5z	FDbNxQBc8#F
N84,D%DP 4RhtRHWI+QהS!bJH(MqK΍KN9XNrZ?<)YpjEY\ fW0?@X_XfFYa	A4cI]cZ* mJhh $ZYޤɑtswIYap٭cZ}J㭺DBNd5>VBH6E>5;^?	=bKTe#rW
$HrJ'Xyꎤj.R1xK?DrS"hL J*ЌU7ɢA%krH:qFRٙUf4lFM<ϩdv&؇)2Ls6,sUsr.N8xjbϹZwg<AG*H8NQ/'ZhH9U2,;
h	,7'F=JZTH$dPxX n#s0JԋgR~oW5UfNH W<&%4benu@E:(c%FeTdr`,/|=<P%e4ҩ)4xOC}p:U3׈,˪M#J?i +R`΀ފԥpI-0CPT3\БrB/T<BJzەF1t]Șxo!1ՍLC2׽x,,zCq3GM)I,3J59f3g<Y1:W@5:g'$PcHHܴIȈhNnaHx" AG$؜CХ2s k$Q#JX,X0
!'QDq0}~Zs"(E'JeТ7	pSCPqG犣|F5&݉8ሤD23jQP)Xb؏Ǳ0tA724WL2ǁ<bXHL]XWp\/&DͿ`9KDvKwr'ƕ%x.wb'(NM?Jz''b2^$sd-iFi^IB}$NZ2V
:Jd'ąJ5j+bD"E"A'Y(N{AS~\)\?4	F˔Dܸ%o#]Fe0-xp;>-+62NRH7\jZNYϋ*hN]QtuRaOu$H`ۯ')tlKӓ(qYE9:GC$H*0B8PFbI<R! B]AthډS1%Vi=Cފ5%3ܝq+AEw0%IB"i;'hX`	u+?8˙5\suH$Ga%.	a3YU5q!e)*mh@A6VUl"'0fe.tl BB)!kі0kH-"m,\m b",u󘷆XNpc̍Ab,JA&8f6G-:
OЙIr_39Us^_.L~^tb	ʂj!Nމ%(_a	>:=B @fv8k)_ޗCDH;iBЙZCW!@A@1cc`2ZDȀn\w4FBO7rnty5	ﴫ}:WҢ@w|-"OLz#i3ԪƇaDbʝkDZHCg6C~kF\%[Blʝµoںt8oχ؞]!\a)Dos#Ne:te/3˻m''fWopyr_!/F1a9ACYp,7a6bxY"5+e4 4k/0%dk.s
%cZ!l'\/tȖlʒ0TLtcB:11}%JU'DLDZq;\%vۇ<O}zzb^ǅ9Na= V~*m-~_P#JE!E!x3UhOwa )$iS @y@ۀ{-WQ`uۂ9-oTq/{2~Z0%c l9+7d%$&LO(sMV2dƄH}T} cfsD]H  
Hj1 [COfwoG#/J{f4mGq".q"V@5Lw8?exZNŀcH8 {q'e	B!I9rT9vY24r
*
`sdQaϕGۂ-8[]\w̨n{㒑MZXEըV t0-0(7{8 COb8hPo8GxWm#9O"wm*&+)q,f9`	
q)	'-)t[;qb3fG瓩wӍ;!Mbk᲌71ٔoP)	P2)@۠rqt[ɜ̓8  0-	    `8i(@!#4c%WMi'Z
$Y3	uQ= yU!A!%c1<	oAtcQekǹ}	/Z'{UgZDU,
|Ҝ=j3O`$-8,`hI	0>/=/4Աx~09Fh>wp[ [P P56+t?j$97oP
kg$8-v1<H-7WDk9\Qr+0 
̄RCaT>(8 ]F:^^-0(1`ɁW#Z:4Q*TpO-b+x7gb IGC0$9]7-@zlp vI 	zqR5Fi{j+u@	aR~)~ÄѪ;:ԧ9:

*ʳ);$]10GJ 
za44jAnD)wAw1qt_w

Y`$PڱH,a E\I%d,	J&]CrQr;р
5i-*ɄeBH1&Rd8=8,7X`
êNʷH
h(-M˵ğgA;oeA(xāi0GM!P _#
 P[9HPDBK7Q(k-=Yc('(p@Ekؓ=X`aSWn+\nCKpZ3[fr @û6
FZ  B+ $@>d`F/;rche"kKxxgNPS qijyH Zb"'K-xSk176 ?y9s;cLH[]bn|Ƹ\0K36,P}P Ŀ윌YHJHꓸuX<u~R*egWE^zv*@r[ HY0	[lQ?Zp-ѿи!ܑ	ŀ
E 'kxĘ\$Z `mƷΦc LD[6J(^
b:q˷nv3)T+ `3Y#HQ54q>_3űJqWNo; t (wGB1C鍷P,99 ty!I= ZD{InraB796id5~asT4rQ	?;(}˩1`7<ӳ<jA ě ~bg=R)Q5Աn5bJkW=Aw_ո  F{Z4b#8
;, u	al		Z఑ǰ`%^ٶm9$B(=i)ol}1Xiq%D-ڱ*n'@	:EM7ӹ/h$\lv\^Q8bP[ P'\ѿ#Y	oI
kK2fߛ߈&0Бd QwدɩxʷEvqYbO0n	#C<dUÞ9z,s5DNOo8biFdGqN=TVCdp	Za&	00	^	 `	CHHzyZϧ-J2ƕAfz 
GB
JBj3Ʒ
'|b'bp}ъ2˛Nڶu#[)I'۞/)V5"%oÝԓo
ttpPX[5:A.G@  !){&(		)B72(9嫫`|~Va2:\(`Lu_?$L}\~Z^]vmXw /#or/>08OpO4^D5`
' paz[jcB'fke	ޱql];a3ߩO,NdP<:|JFQ fU(NdD6{G|~V;A(ɖ:N }//' AI+S֭R_Opؘ1	Rn˖U[Q˖bJ|[&5Z5V*X)խLȒF+q$H>E)}r+J(G@q29v;hB*Hq'_F\c5f͘Uny2>8qr+Eqz[-EjUfh!;tК;F9Rԧݻ[lڵm#_ܽ}\n|By)V(]tՕq]vh>:v+
d'6JL;s|-\ǒ춌I(Tnq^щ'@'
ʓHA}RW
Eö
)[<6nF4k-@ZE(H[,%ryG)+@Χkm3NdKVr3q$̰nI  JE	Aeȕh Q3(;3hou:E<.<.&;*b%Ce&|af>|`EC؈$`8GIA&jOI%>)OBI|eC)"j?MqliJ*;*nوǏmTPø'%A%4.wr0r܁F|-q	|ZPi[n  k]=l1Qa_.[_=cE4QF<HN9h!Sh\X/&h"(BX%II$l]eMBCb,om#ix^YHG%A",rE^!7S]yGa,q,ʲ09٤H.Ɲɽd抡2}R,6Ynh&Si$=O|+㈓8lePBg퀖N衏NHK[Ѧu4
ǧ8#k`EB#>Q$+t_+6,,}%bqG<U8`"#6Dܘf&I$C#'MI1;*ÏAvYd%.wgL3I2HJXe(  MsiL	`|p)e7a B2u1MP	|%r>\XO?=Td)KgSe.B$.pA
| 3A@mbF &heï)@V$PfC%W@RİbZ"hl2;TtB4K;nw/c@3P<+Kfї#FF3ѣ#p\@"
QHl)	B<$
`(dHFz7	&=$8$Q	W-(3R]*
?rdbYϪq,bU(
W~E.@-:Oe<tر0td# 7$raή$Oa,bp(FAJ"6H
IeW=]tMh%а&^`Dd@RGf-J#.?,2Lnb-XYWB62dyjS"r=¤Bp|$4	sP$ cnQɔ:%`bHMX@Nj\4A:٩Xq)rU
'F1bUXu9h`Ґ1=SYbB"cd';-@bUjI-{I"!,F47@J,č7TȜ8Ͱere1`luмEn@KИwvBuhi::[R4i2%@,ׂ#-fMeH^Cu)+^WTT#*L I?.+a
oajc0r3Knw~)Z(}rU '$H.ԱLA%s0`U[8V\X4kFLs13`	FXy2QZo='[D,DH-}Q5c.	x4̲$5fyE<IFX-rXWҎ%L+蜈:0@Nz:ud$'QܤԡRMK=O&KGъj&Ը{kslwyڝf\mºx)P[HF1{#̽/Qqp	LjᜐLR[ei)5uS="Kd(ČrrүdX*gmxhJ&Fb4W:,5MA]n zv+L,UZ.8Jk|e̱-Wa	Ιq2 	O`Bl\(*U%,T*0P	9[YY2HY(- 㣉	ӂUHq,divh!!tb`_)[˻09+	]9x(:,4\ÞBM -;o'55|ɬbS*_Th0Dvi)9.$@ȓq(Y
PHBQkDP=[ؤ˨@Q*F@
C+ +Q ,wuN	2 U@"9Cf`H
	X5`Z	s1F*;
K]UH3⸳нHx;v3CBn.
+$3%ٹ+:J(ãC>$IP yH 8i/4/8¯=vDP:+=	NJ=N4K YIO$[	`B5?#1	EF	ƴC!Fs[ușP !A*OI»1 fB:[kƀ W)Xяȉ\9r ÇFHB`'H3ٛ=009VAh[AR!ʝ(Ө)+䌓P35!:_˞ɝIJT)N*u5=1D Z=5YqXI4٘;RNa[ZEVt86$Ȼ^ğP@ _H%( 4&h1	_ 'y<"#`0t,t,u؂	г-HѳM6L-|I2{'sD1MO m.h"|xAӚp38$
c>;.˄84ΒD?D6_; l5YQ1C40)[4O$68=OL:=a|)XI	MlC3(u8c$ APIf 4 jh3VbPL}(AbA؂7,hJhǿ9тRc@	$Jm(&E k {ػ8X9K>C,:S/QN7E(a>RehNR)T|ذ9E8ZQʏꐨӵ/8#4q	]
+Sr*#+h7arx|h4Hy^ZIђHQA``0i%"yMR,1QԄdAW!bR
@FX2͝+Lɑ(5JӄdqʮpZCGL
R\J$vѓΑY1X+oaWj9:T-z%hW x1	@1 =mLbXbA1l=<[A-+[3x

tR' =Ң0UW&Q
`+=q#ˠx޲H,aʵL\fa;X[\iW)=T8b  6I$S)T&^
H@%bޮ1arP $U$,ĥkF@)(]he^V =`(=ڐp-X_}	82WX8R`u8-B'xGx81kE>DB8R `')X'e^*nў[i*Exb5Ir1T$|"|0C% )PeZ:f3p$YY$[95	8`[q̬=35Kk9RHP!rHFp>%:E_iY`H\ie`\4~啾>_0nY,U+l2\fC&8ȇi9`p5`Ǌ(Yч 2AE.֗_HK48J
̙vpk	mx D0-%C+,g[)sfRe$hiQՙiMu J,5FT7u^gfPL`=.CXenrЂK଱ѕh7j`f8
jA'KH%jR-g=T^[F	~yu>Ʈ>Ȧo?lF<S~X%u{Uu;a ]51YjƤgf8[ [1b
4cr'tlh3&"H.U6.i.Q^	4\/(cof촀+wYPbl	 *p	9Z
} A3fHYm`8f؂	,kXF2rjAC=n:Jn꞊FF
h@)!,xb4|ryqΨr,^^rFF0opOM󣥚uPAP9bpR8eeUV,(gaXbHnB2ۆf`h58rnsutGXVB 򕰗㴎GxuA #'n(Xf\]ga^Z6sa1,i?&)}m>Xc
WA|x28[XjvB`:0j
Q2ԣ0`FwC:<a
#u1HrҘ.(o)Gou`WaEɥ%K΅tU1v
ss'Y0ÂQ,CFd
wǸ [H!(kwr{x%+qғh
ʘ+(+|JC&"NxVO{nP6\
?:o "Lp!ÆB(q"Ŋ/\k#ǎ;Vbe$ɒ&OrǑ!C6)3&&Ѵ2eB_Mpɓ\Sd&cQտ-njlYu+?v[&E{ָ*ҤFپ=-,|E#ny	d)TO GbSmڮ >X yLy[$Вim8q%{l؏0]HE=#n9r$vG%ǍSr=4ɹss!xq{>Na3ϯ@XC.UѠBaS<Q/ahITKOJ'NQhEP2E A<?SUuU^X?$ZBB:3$Sp`b$AIhUd3sZo0bilF;-w@gPk_Ӟ#
'ABAӞsBtASxܘwQ<N4Zk|}kkk_6O>H9@..8S.fXOh8"JU"NN/KSA
T^L9T3)dZgmqB%0\҈X#VIj+~:h4BZCi5B%yۤ|[	7q9Zh$3 &j6&ď;xww%z776[sSvk}"::wmZҲs*R8ELvIUPV脋
 5/MA9.̘BS]ro1WYULYc J*`U[(
uy@H^+eÈ%=|(&c~sQ暓1? }̊M{7>hsPO]}L7HeC!RNufFiUJJ5n r?(LܠE*x-n	>| sb,kYwޤE!pz۸
.NԚΕ4 qrOpҹ)D]Fy.ҀOa?Z7~}v
,RdZ%\Pg*.8 p`^Gt/0QM#J	f<A@D")"A+QR큄6GM+ bM`Mҷ5nl|Yo _3fo	bV_{= T8up ?31ADABjr0̓DJh*'
4;qaA$Ք 
QP fA"T%h(EDP\t-"$AII-#rr",
K1f0X0# 񁣫Îۂ,`5 dK$&0KSҒء/U,d$TȖ/#OcjF3x"#T|1D$l
NSqG5I<żalm;ysJTﰒ5OaYh
mz+q Rh 1 @q z2  RJ(آ۲R+Aǁ,a!(~F8p)+B A[Pm㨧@[0 KZ	hy}AƐ@(EuїTQtkFbĿcZBLGu,1i5sS@
Xb9-H18:KE+@F oaŀj1ֲ&2փs[8v钕)HE_(!!F3HVc	H8"')!Ib;4n#2[ZZQ#Ա[ȖEYfp>BaռF[7GixfW7@Z ~a 
m@usʭ:=uFd 4ȍ"ǳkј`vGDqmZ0gO2Q2@jF/7#b >
YV}$EM0*%?ex1Zc)F0  {3Y<l`(##Fe] ?D~
ʲumvmfvʝ	k`mTǖz*pOw]QJ ,F(EZWSJE[Pc$Q"q0ԅV9$[/>g	+
DN@*P؂ ֌fqN&4};Q\?D}b4^GB(*$8(\K]G.!Đ)K*2CST%[fw鸅bJJ"=ra8#"}trZFӛ/98F|T^@q"F, `ArxprxșCzpGX
F2@4ݤD]Iڞ)Wmޠm)uWZES9ES4ŀ
jMIxjA[[P> ܖ	EW	azݓAĐA%WJ^h[CĂ4"4!	0f[EN5UHQZD σ]U4]@C#H\$4=@YBoi-UYhA9L$@lM/B:ru А0}u>|,ϥDRzp|Cg}hI9?Z [[[(I?BD^E?R@]]h45]pD(r5ݔ$.9UY֍` 9Q?@f7эI8BdO"B- QGUy5B$><bAD$VX08AIL1CgE1LBI sE*N0beV=Ϙ	Tμ0_p<pW?/jJπ~5nα7CDO: 88Gp8PݙguAY?YWIݳ6	x$,9L_PZ.]xՏ$cY?FvԱC]u_ܝa& $^- UMb$OO%DXID.XQD@C^AUeH@T*½D9U_Q!U\m	;XĔWb%aЋA%DfZ@ b$2O="5y#M)g&mBh殈ul<j:dmESZZzZ[ !L; 8dݍZF!@ -tIZZ[}@4in\
jN|'WH\Dg~N0ԶԹ>*^2A@߃f%EV0	LW1ܽ\8i~\\!2բ_o.pcυJp# 4AIB~rPi#a:xx)zōӕa!FX5-rBMIKva5%vNz$bNĥjT}}N^v%Q~/@e24( L)F"U Äۿ'Z҅pk S4B^̧p\exO0Ę_@V<`CPf5tBkk8B:BhM*;iv	Z
z2@jEnvݱǚ¬򡉜:,DI,G̈8EfPŎUFJ_9 `*jN^u+T_04,RBh/~$0YJ*>e<ǓhYBPYe^Y,nG$dgJA u zim'IW]_!'^I?)0ꂬaM!F4~0G@D!l<}UnFn;ӪYTZlimAA"^T>`0>"UI/Y)~vyb8?5^Rzk߂7PgvhM}l"9IED]1g
비MB8CδM,˲DM8NBXNˌAͺ9AC@(1</NVQ)ɟ1(#P3sј9ĢĽZ6JL(ҐEͷRZ;ROjiB`{\A1'l4"BӆkW$@'mW=j5d({tD"2KPeKXX[G5LU L&<9C1-bbO]q'0 OqD9L%"E3^XOH\#qd@+HcXdbZ33CwBi8ِ6:CkA0|T)l$b?6pjŤtW}fSHHD`IJeŴIH[KoIp#PNu;)ARg[0WjQ]QPSg%49I*%t,B Ac.BzLs4 0(8G:R%ܫ`+r5r
7(!34mk~Csv;xtIPTx~!mKDLB$ʪ9I)ܛY0ph17ꇢEB ][(	Ý8-f$jRX.BYsd"v`&#tD:#`R13@cМ+UdC %ǔ0FB?74ӃyGįUn!dIöG xͶ[.:IMl$B*(%&JI0 TLSc[E1i,wNRBD`\Bqcb¯ĵ<C,<
'ؕX]4_w͠y7:P
9mU+ëy{BknAC|a)kW/W!jxG- K"LA@0-C9ANUQ1:8=97luT9sw.z6O@O:,Db5\ZqAdʽ+,o@p00&ar;2 =!l{{{l~:zIS<Ƨ>F廈%%OK-F`׽en؜ThZ>Bh@PmCQBD,59R2_ս]Pm;7nrC}CJ|WtJ99NdAnڻ4b	"rpmtK=AƓ^_ϑ0|<@֭q"$xF.Qlذ`c%\x0a"})15bS(<EP$-HӦKHJ%0%v姞Ooƴ;h8qkW_Fz;njm[aŕwջo_< /@Xq5@QDc K	s=4*UJV:5M2vhpRe
u}M[oE&YdiuzUv+teac Et`Ty2%̚:DibN!J&b5 9+FFĒHg!&b#~"EH"I4|%u<Zk&O,dʑ.NF,$2I(ʮ°R-K$h  bT|a*s 4aE`_X[@	%MNQvnҿ!us.2aF1')
צ#a)/0N<M--×u-lIVI(qjg-(1
<0L4J$K|h_x"1HL]ldE'$OH|^)m**+G"I**RI.X *Q 9 uLм2Q ̣u
-͊)&m6D7ឈEzJqy2'NK U R5V+رu+־-EX`pM)>\- \<equF"jF7t:qHٷ'tJ^{]F)]=ڦ%yvxꑌ;f++8z"zqNW#!i7dsݢE"{S ;q-4VxU)8pӄ)`ao&dڐ3mbHCtqK
۩B*Գ1(qXړF
A'TCkEzXBß,
dC(Ey;H"j(!,rILt!G{pz]#H7>INDq9!>B<UkL)ۧ6$~C	Q4i!eDbT1~0`apB5@O@&.\e` $kj(g8*X͇&,gw+<D]"D.шrtdZKGRKOlGBHƘ<ݱ 2BQ ?.! IZ+1݊#{T=)  )=ST$ xq@ZP3)=SD6,O@'	f.X5!$8"*T!f:󄻰]tS\C71BY6|yʑTxHq|A1$;	$Ŭ-dA8^"x:&	Dڐ?,haR\ԯZy?ذDp!zmJU<IG"MAI{i|^E~GpTI}g >R
f8ARq|4h,<I`V9|yK`U!&Bֵf+]Րa5Ug`jvH*{s,^pn%IdYpq"cV+N Od`@F]dgMLE$TQǴ;m$H ]31!΃vɉDmYdtɌВTGB Y EmADdj	1yߛ3Qo4JP6MԚuYǨ.Mzk#C0ׄh">RQ
"$-!)G 1dI$աnК(I}퉬(r)iU[Asy*4ږE%3Z4C)؜܇E,! a0Jy}ƳvZjr@mYA
Kc"4u*# @D@{/6ڂW2tk	6]Zjk@2ǡ`88"Ѫ69YءReavHdP5auKXY$HGO*x)
s#*	OTWDRGa<LNlbwKv25zз]" HPq/E9[㐴І yb{/U14F6ag'C3@@2:`ځ@K 
ooxc)"V<>a@<![?m@LnI."# Oɬ(\2A"XaHEN	;/PeDa܈͆h*:8rOv/㾫b:"cDAM8"ү'`K3hԡpf$ԡ2@dc4N#:"R!F6l @!z] hX#րFO|qrg¨"pQV72q8&As:!j06tt/\'<(_b)(FbG|:Aibt3LRaf|r"Q.̧3*ce>J qO3&"8C#k-^2!CpaLф2VqR.nXĀRAl|U#?*kXaY(A"N t	R6rc|!E [`Ӷ)\|P_^1vGd/"dv*p/"
#jt1d̤ L{ơЇ5XrN#$I.5K%%5#vhrApH1Yn- `zRN!/z#!hT+#=ĉ1+Va;,`kc
ıKе"a,_Ba͈	d%hG"1*$]@TOa@c8-% d t o( Ln rj#rN7fr4shv&eGg7)bT81[,mAŞS8,A/!`Z	oql
ˇ0#,4p<OJqPvQ"KbKz'C0E'!ˎPHARd&2
1q2D+D"EDh6W!z2"3.J1SIEj(0⼪5Rkh!84JnlJ'u:TF(LB*+2ԃNs8Сa$R$YaHIn4!S8(VA.R3$k/45wvgfD(~0%_R
2'"C]oEF2g/Nsb~  N0eEO4jǋI8F:p!KA׾*\[1'3:'SƠb='oA8ʁ؁@eDÉ_G0!tj=e#q0?aK Rlc7m-KN n/HV/!d1R1qXe_Vhv^fsC,=ygs*
*C3lڇejSin4OrkjWbIT5-JBlIX!;H<#msym]9Ȁء6 	@ lF*bJڲr=7$q;|+O6NcX[(Kڅ!aXW2-QFeHAatww֌aC&/UDNykjJ\.txK~V3Hq$g܄epna#|XIU5	 l!V:@X쀭<MZQaTĠ ün]5AwpaXaWmqB#2,1y?Zl]$/b+,!^!DcASͦP8J&:tBaxOFCWV^!.4VBVEq@IWsn{{ACF$"6 ֏?H~ٖv&:5,nӕ:U?s7rHaȊ/>y|bDQL4l"²AvCcQyz=P/!0;qGvaCa#NjG9wH|a,G6d1O"b+ |e,R.`JI6
DD]6j 8}Ta\} b`n	Zny-=S;r&W<ǒp!>tH{]>brT-9,!es)")V/?Pt:V&y8A^ARH
Da誡뚻!*Y+ʰb~+'uGMf<o\i7:1[,}Y*GL;2S@/rV_{'aYFzmSᶷ@|N"`?$"ݞNBF ̊#8]cĂE,FDvm+vЍ&6
C{s!R<c  ѿ\d|jns3:b*69l{
Xy.<ù.]0 ݠӆ#Nel:ؠđYYHn 0a]aFz*g׀qfqQ.VʎOfG\Z$	[Eu\̳0%&xOͥD7}0*rXgB}|nZHi.}!7 6rvRW:u:ӀB8<K/xHP
@W>Ck/yTK^<EX5B-
@Xxn#Xڡ&#]C"!Т<SfIbHZf)?tU=!E6C3pVWDd5.ܖuA]^9y %\;, 1St/p1P`VT,q_˩0c +X&Ǝ#c`1k=#6]%yCt١ŸZKȽ*<#.^^Z=eB+ኗy~+?5 "Di1&823H  Gu&Π5K6Eͱ%̪bL5(QZɲ]iĀѕ/1iɓ3@}=ih0X0eH	6fA|cI]#b[iݲ1u-*l1kBR׬&:a݂/5xR#pMBy
.LiTEDtt9rRPcÎdɟ?ўd	޿mr)=A$|PWm˙zν٣=p҃F˟O럏- -_3?^>0^;%L;mF>̈!I)Ҋ-qbB:&dNd`:OXQIa FQR3/g
^muUX3FYZ*klOFK%E]i&]{rKa}I$]FHV2Ic}q	19{5Gq%}r(?sFܦ-	1ٍZꫦάyߐ߮?O* >x  N+`t
s'⹻S\SF9ݸSd$_>9dTRʰATNr0
[fCZ5LJ#\qUXmͩU#^ 5B'cSLVRl6	0B?4R(i#м揤qW6pur
wljA`'*Bu8Sp-tܒ
 +;?(j!`(Cx".A%!oOЇU$RD5+L0:<\qZE%Z3ŚXŖKȓ`$[2`M8z;uRȗYOLCzlPC?ߧw%Tq$WKf*׈!ek-㩛'H
)GH  )rV  ($	Z'"E3ֱ4NŨCJ0sR|AjFb]O~B9DuRT$My0m%1Y*7/3K\
}1.ӊV	0XӘǼ'axBʧqbzڣ,E͇qN@IF"d&5QykF<iU߁լA򕰬`*Z0NRG&@*ˇL$[6t=\@d#"Vzk>NE!)GP)2c0f@#Wp-, tJ1&q-,=bCGN@{04
5>UFtP`D$)JoRs,E[hT9e,4Ig %pdZ*.mRTc!ĩ@Y0}$ ǀ5>CC4"DsB:A^ 	7Y g90EcZ0@4	<{7Mv\d!6LbZ?D-LEҗmuD#?Q"z.!(P`7C?,4^Hb!]CթlxT؄RՁ6.GK(zZo#
|HK> ?|@qB!PAo]ڵ +	)db$2xXiXg76ti+m810*˓ic26Ћ+*m.u\ ӗN;'?c|5{~['(e8ʕ'?k݅uPIs(!:YneZ@ӼR/SB}>d_uAaG01QBDp_X1 uL	{>G02E<Iq*$c\Tka񮵲R9<60BC.GL<+Є)!T.kT9*Zw x?TJ}Utx3܇n8lu~>t` 'f;DE	X*I*C'>>a
\	`Q{zOj2Alq0Mj5VkbAs0C*XcX`iF?6(B8AZ@aV \HdT'\08)J#d4jk.v|滩MSowӌ#v4V+zk[Z~Ƒ  ,-8Af8`y2R"0hf[mnہ1ܼ׍Z7ʶOl;;`UBS-b[؈=>O-pL\] fqwz1KhzhT|HRSrS8	JS	Ssxfr]y$TV7U >  iB$uUł8 +-AXT128A -A{Lxgii{{25ss8'b7bNf" kAYKCGa0jh#
f~t>!yuf'~@!(O&Hކ@sV/	 xZ Tfo_c@cc rTgW8AC1 ,$A28	p1&+!^a57_ ARrLx'Mq#js~ /a<k c҅pH6[;0 k}>'Pg~Fut0bG	HQW2È>b𠉰;)bFxIJXl61R:	,wU |,ǂ"$BvU),s7h_| 
6 P_AHKDy4$w`ir"BaPEM2WhOp;ass6>V4E;°
m P0kOggw&0vpOnSOMGqA%Z[Zz'y]ÑIIpw&ZJAl h7+qfC^BB8uL>(=A~1 X%	!9HX
. "a	|sm XOk~<+0StgE0˃ cPy%VWM1#'dxDy4Q+e9
f,(5)@餞 lv]șAg^{zQUr.K-Ԃ)A]	Ez7pLWeh7.3߶@Dl)sFip٢<!t騎
@Pk1$[O'%R҆1Ykf}XZZZA	Z ~
6`Hvtd2u=}7&UhKAXR1f%g@Jq]l!tp!AT)zbF"bUXuGF+ qtAn"
Gh ,wU-3
>.mЍɟ&r9Xx|63EFg<LqVJ7tS$Uk
PvQ= >/XJu"@AQv6!mX8ٺH0w
Q&xig@j`'2, V)B{=޹6R1@BMI9b ,Twd8$D-"_yC87`#̔MhYVH3$aXjJN貎IJ[$К90[% 30uZv
0̖ГZ 0(/3(8nocf	щ}GSq5ծozB!)3RO%	ljB+^{ӓ_orxB@hod=@9,@zI:F$H:/;'r/ˏa[t71pxA;jEXǫ۷P&ʫe$&
;{zvD5j?m2I>E݅?溮Ak )i2 EL77,ǲ^p'iAn,թAh)xErAW#DJbʲQč@1EPt)1\dP}}vulȪyZ˒
L/ 7ʫ;4ǸLS1T|Wf]]99gL|aFK)|Z,Aljhgh,یΰ$w,UV^\ѐ`L8C|j	a.Ja#aa(hN:CcP`ҘԼ<`}FtZKv͓PyEfpɇ[g[l!q4;*H*>CZ5SoىGw6U:¦5=,iȘ_c,#78_oRpD0Lسu8iB\,SeR@ H
~:0ԠH̻{ȚYm`|
̩r;nsci}0gKyj|ZYxrS  f+DпОX\un]p۩^D-˦,(|ڽ=4 So>ۊL8ehkGж bw|iɰGrib׍4	LAQ~'1VL1k<%@|
|ncZ<62aF	1R"M0<v2&I		a (H!xϾ	*"oBzl8pk"=.,!Ҍy>5"4  $!@ܰ !0@{LX"|c1$黽]0_V\q.gq.OgikgO354@q{}	;|	IX		BSjnPnI=rvo,!C˾gRxO7o2RU,4iA  ` ?p`*!qSXއwf:s&:@MYƩCG}X׵>V.FknlCh"L
AVv5)rWe w.5f1WM8/_|a D8r Fړ,80}D	  o!^?#VCCrgߟQR#glm6,ؚ1	l(l͚aLaB	YڢE%&rI)	3߿qԽYf>dbt2{Y%J.MRї`!}]M|ܤ'Yk$bLFPiծKvdΝ	ROt^i!y
8Xĉ  `Ҫ|çN?u)gСEFnh/gf S}  M$2c8.YvH?'uېѥLo']c)c=1کX?̂6Qrjb/`t";5i'nYDIJ҂-J#`F':ۇ2(F&J(ITr$*"ʫ*&-,0Oi
K,rOK !p!m͗bSgTƹ1(I56O@A'uxTGpDSŲN0UDiA. Imz4O<2jnV\Iv֙B1poXjCYJU1q-51Z%fH J%UHIn>H$|eVCJZ%?QFf>FML~iiHKY+Fb2H</",'"k3CS[N@E1u̇T|H6bsIk6h?Cc5Naŗ|،7$  iG2㙪@[Vkj4tؕ|"1 =dXeo-`qAװ`A`\B*^X@QڢG_JآD'iDx)GNnIH.y*1"7*	R/WΫ3SfIZiQpfDma&Ϸ@񁅁 j9i:Ӊ"?4|xC2ATftfH{xE)<!:\{AVfQV0L'g'Z6aN>قe9t7	6nľ-n"Oh0dQ(ACh+RHhEcKR"adLKR%Y]'~lY8?܌*"6Kd'=7mf3`#QB1jHJ  uk8x0QH1[q[Vd@g'-l6"C';DJnu \$ 瀐cs[`
uqAT܂LEq	]h0D(c=iw("V!i%IWqQ|lcab`{_#%'Øb3Lk䔊 JꘞMq$MdAXk t@ !0CN%`NbE4u6b`	І ʴF}C
OY`naQigGy8"ch2Bf=KZ;D Zx(R/adgT|aQؤHDd6чV:yEpە1Rr󉖒{jfŀ6c&]UGcn3ޗ,vpSyP?6* h@À菨1hRIW7T:d bx%F0fUcF*6smˡ}IkaAx&csuBeŘ"K`!nYE޵n0+F@СN,rKGa9
;QKdNL#4Ǐt.k~dr{{~KIeV~fQodKf&&t#5TK8Op@;4Q
8@;>_"F?|()lJ1)a="9bm!iw(eD!\ 9Ame-K;ĳ'EN-ԕZ-oytQ̈́P)PQ!f49oWle$g"1H-U/3,]Tfsh&ܩWiAC$}T'cl4ɄDV-ySD>  R>.|򀁄tU39|;`XDL]CV ;=6sْ9r}sќgjꇚ!Mh5Y&a3_bۂ>s~KߕkR=0jnak"ґF"*~,Y/Ȕ&Nm+I5}'42RЂpҟWiRU0C^Dp8bMKaӑHb&A1#+k/V,ΪV+.1؂,@or	4}j;p<'*	30Ϣ}Tڢ	"1⣻p0yF<@D1+y	!)-飖.뚙cݻWVD|VhhJ  *= $4R{h v fxyc
Xa:; h󛧻+k2'`!{!ݛ*K1@DV &؜P6˱@,,"v`U".H1p2hU@2wB[D70H,*-ಚ8Fѫ	
0H@½ 8s.R{B?Y;HY%W?B5BLΈ%L{	K gk3ȣX?꠺&ux)"e+Dm9<2eAMLǪ00b'a(U<&[W,'+#HXrS<|<TEa$-031A-]H}jAFح da5B;ۘyWp=$v<+&lB@G6!)C`z	YSL9}<%K5фp T)Jo4hHј7Q d+dĻqėy	I#fS1?h)ζJ-;,risj{B1Мsbͬ	"F(Jp;
h"4;-XFߩNH"Ad	
OQ5C;	BKG.$|Ì$B;P+LK@рiu "9(' p` dM$:'&SkF(N`2OD<;"(	!4E0O؇mZ/	O]]	F $)nDˎBG8h?8LJLUZ+YBFRU sM938Mq qADŠ5@МwI|bA'*m1e)s{sRr-'qIhgܬcEva	`Lϣhz7>
-vFኂ<E# Uܢ-HC}	~ԖQBP{UɌB8QX/5+eU9 NUQN o A#͐̈d"5RhMFrJ9ɍn)Nt2n&O&fPE)'Z^	vɠt!wձ)|
|W}Et;&|!O	L?#ۨ6(
bT,GTyBz."ԽpGQ)ԭٚAQʙB]P <L7H^QD\GfU&g:b|H!+kR[*dRłӚ(Pdn%[o#ׁY;`'r!#wmj;yw-	;	UJ%7Yd
z@ܗ8eϗXZ{Z%ͭ܄+ܠXcл2RXsUPCaخΠ
wХ{@ p@QhU=q:%3[ktɪ8_gۮMNi_1uʸ	jO| ,Z!4`~(
̍}kn ] ܊TsXH}%\λxO:=)mPG aАa]R۰G9}܀v^XR&B r0K]	_i0~П&Çzdmbc<k+Q\	*"lJ<1%u]\
fC|@07en\`mTQ.Tޘ E"aVu8aaTsṀ=Tev4zd5q e![H \)QhCfb	+Feȇ	I0fIHV);wMU00[t}[ ˱y1cF "x臮	Q}	1y^lm`jlO~!e&aEOJ؏Yaѭ4=e[	W'Ki۶)w
`NQQhZh02֙0/$XYkV|'cex!Y.01hy.a_	1~_N^b"[]D~3})
T\l.	0nKbИMX)\0iE%qMUHme08ZaHf,4?qTf#7( `LAV
XP*9i/\{9.!SŻj}	n4N,8ec
&;vq:o&AE h]ץ@F8}bb,2_fps:"r<-EȾS2ծ梉TEץpbCu҅"%p>ːB  ʍxB)-n0)j&1oʰySoIgtY&iFj|		RpJ_q<9VfY[;B^Ep-Ї[K7	%aBOЊ1PorTQG3c)0MåYY6۸P)T'vj^5T22^鬘Ck?!qh4gX_b'Pmn]0"Ł`6$2IiT_~gXrS}oJpdHקu-؇bpp٪2d1j:z }&9kQPulύFٻҳثCdzQjzOP}07读EtijWڎ7eJ y	X@9W}eDFٿRKna'R6\BT`2\qa*WnWnJo[v&-+nWlˆ
)T˭FHURBjUv`,K1-lJuW-RZgX-[Id$	եJov'F^EB|aǟ,5篑'ɇ#ERYF#hĔ0^$KfӮ]SlEi'H-&r|#Ƹ-Z0Dn:s;xXSN^69h/Sz+ 	8nIr	fu>-ܒ O$u$s!,OM,LOA%*=%UFH]ՋFcpH>5TL\*94F9ELDOME$;!Q1iVl
W-9I#ZUT1Zj]	ѹ4r]O*3b01Hlf&jt	1AfLIƩ'O	m[qÕMD
J8i_*#
>0N{,*=4S8 ϴM!; + >KC$ݲ5
R	z>1"ZLhQ;πH>(CF0&LpF?D3&Hk 8Ť\qS1$<!WLLʴ)	)%-1E$5SY¬UY0TUiшu[VU9S	'0c(?@da&fhp#r).Sڜ}'M$Jg
$q A
5fk96C  E|CBͤ"H`*1H?wނ~-Hx_v>lX3a0(nZ	m%tq܃̓#YCYӕuN\	/+t1l&"eOY
%Vp!FSQ\~@EKG}!q# G)Ff5`f|m05ۊ,n6"?'W^kt0:')Rq;(?BЌ8H	%@cJE;w	k\P E]g/!c;J6@O {-Ҕ1`{֑1GǶI)R&U,eUX#Vb&#fYBLjƖЏZt'lAyғ?QPP@UCtpTaD$A2M# 7p	BH\cDM8g1 ʡ"}.X-V ?PLw~wq̮	?Dtk\"<ȥQYWFv0dLz	ZFEL{Q*2SA)ߓXF 0r f$',,!F/Xv1	+P$2P0k4֙A|LG):2&b)rJubaĉVpÝ=h.%'hCo @?6Pz8~P 	j#Ɔv @>770d8gdibHʈr#@b7HZH`Htd-C)|L,	ͪBe3W1ĲMb'N@S4(bh!,Xnb F_u$ذ1XnVƛ2Gbű7 D!..\=XW1w\^&;$(̠Zt-(6;qB`"!!KysH!2Ȃ$+I4Fk3E@U$s>6ANuPFue*R~5y?Lκ_&Kq)x՗mp/XŅbQL$qWDPJ||ŷk$	ӿAVM<{V(fw݂2q3h;7$^`PpKqʣ(*M@ReRIӈ!Hu:(>WL(3YԣKXKWY9x&'Ns\ZmmZߎ	RkH+7t4PMgxmG:nwfa+	
mxcTUK(u]ursp=Yxn f{G/K1uM>(nGZy;E@b.2M/N\1x'MR/<9tJ_r/ܿ>'8`vs-O~Y.Q@ck܀FM(KaLwIQ
SDeNعMK?6b+#Cp4nTm\,8??|{%  	\ً% [fr	R``uϠa\D\LYǽXp	PM\4SpII,DC\UXh	P QI݄]l],MDB#FF;aXQJe͍⥴u\:qSMPeኴuSQbx?&H=1F}Yky-pD)s  8_LŰ^TuMLH!ɱDPp0$W\FHʌ~\1\ aZ;_i#mFCeXqƱU!.dB#9)ڹQ;Y"haT*<C )$wlBC8I}r |/
6Մ1șaPub0BM\H8e$m4RO;1y4P0MLlAD7?<jPYa#8hPMtFd'@ʊdtX	T1=%/L9Ldڬ9ц$<%D;	h?@G/J? h4 B⸤"TOvHR
sò%3T젝I\?d%EN	6LM8!7~E6'I^W(Sh0(W0,Pvx[O\Z;Bل!FLFpZIfayevfC("g_ul̊% u$Iq%Dd>l((rX,k/-l-Lܰ ,cmNv~m'E6EWx#{b9,ˁ;Ȝ$)u=~iXM"\*,64?HhP]|DM VkM"A$;&Q%ă|ʦzѼTNY2(䛸\= 9K8>ԠsQEL)TFRCpDOx\S0aMpQ8Ja|ښ
O&D*MdYe/=Eĕ%DFXi	g2^Mf[B9F4`>@Ifn˩$=±|8:pK- MJQHeN*IHv|,2t#EŬ8B8DxP$P^Ւ̷fKd'S*'U\ZϱYC~ZZCũž&b:`
#>*]J7>*I,]eQHbvu$~,>p-W* E씵n&6VvR>33X%Um-1Dl:-QPD'}yD0-iI-2#-R_=#YZZ"HFC)dj@nd%BZ(#u*hݕ*ϒ0ynj_Km,ˑ
*=%f
;C"Z!W
'eP!N)$UY ;>14URٶI-=I)ItF~*A
AflaYPgbE?CiQ&ފƦH_聜KoJ"; $@up(&, rdfX@ފ P112N%kD0Tu>bcW~IENxzN|e5mWI݉./u^ud1;0:qbr.eÚs
MVFT%DH˖2
W@"8PtF
?0EȋFv0@ĬMDٕÝDD>Ѳag)fR7/Isg,CrAhkPs q1<E9ufPW.l:/*,nƁf>;KgBI G h4 I.W#F*C3>DSb"pr0dAG%.YFdJrBgShDN(g&Ba((1,}qX07[ل'hu6hx; dBd
Y OupX&qm"cדJǭ5)*`h9͊hGB'u
203;mNp$a,4ttLfjLzLkLPN0P*(Ic ]sUtTҩQBs#+9WSduj]BD,5}<w=OxJi&L&҉w97A>G Ȧ˽W| pM&4DHmtd6GM01KǶ3/mzdA_)]b;: ZR>7ZGr.=hЏY8_FuCiSK.yn$ Oqrp<ȑBމ2Eru֯$,u@'ż"r$e$1/Ȩ-Z~LfVENȗL6;~/-ѨuӉ	PNM(fU%pñzEyZ'?WOS7|we7r"XE/1;oȎ(ܬW|<v(LubgseS%FҲF*vx%CR'	z&;I(NI,3lTcU|$8dJFj31+9Z749=E,LBffu<_ &'<n* _.s,tcǜ3}{WxċEB7^{	~Yhލ 7n[$dOvag<N3?<1
3ߦt͍ZZױJ(_I?7Pp%-||0xcF9z/Ƹ8/>+YtfLo%@(XR8.$[n	LBFu1b$m1q818kV[k֯Ǭ	ت1g	0s)&.ݹ[፫W-yB/-w 1zL,e6IP2}Z&.}Ri-aSmؖ&]`1	yOsq-1>5Ǎ-EB8E
rK'֍B3@ _ uTb? \1spq P	QgoIEB\`,fn GYǴB`l.`FG-C²,R.)4xvfm- È5hsL4Gn8ܼ1'KƫO1tOH?)!UTS亩O {¹GT$֪Nayꟊbݕ^iinhE)T
)}qzgR%#uTR#Z|EcQr1]L0C+43Z,l0_@0k|8c6..Ich7.Ǹ,1$Ҕ#BŇP>6$ec `Z_w*\a kpy=?j韥j[*pwt<t*UrJ! ї.wkws`&RmI;.DM,Btc(NsPX#98*qcQox.%~݃!T5(ڬ$;Wmpn?Eqf\hC|~z#u?[8xv7g|cf+05&%7ct,4afF	 ]b`ZgŰxXlr4wuCP&<p ?qxRשA'=Q
#aHHt}3 b l!pXGmO@GyCDr´@(oe_YEmq̸WFni0Mn!d`@<IdFW_e	
2sisC6DtKdE3H`2%(Gg8<	]b7iVD=&QTrt|,q<8ZBWZu6r$o=+D#sʱI ݥ3LD	rLF/iX9)GNO(;iL>S/u&niKdFaau<a4G̜y#fs<p^κyDKt ySN@HPHs7)	XeIbl
!D l1MSQDFpˈ20gD\%r@nYcWQRc /t&4TcXlj:FݥT3ۑa]ޣ] ex7#YҚqz#>$Bm{`c3
PXmLPl_?ЬDۦ؋&
dFp  H%n$I;E,I"gItd&$=	ISzӹXq5fUbsҥ/o6I"$;yE1FOzJL!xo{FuA@ x#PKTtm f{5WjaB!	aaa}'Jц%#ԑF/MJ%FI	7mpn dYLtF=0yb&CWd0EM1k:ʬp+'|:3"djP҄Ɗ9VdQ4\;	E=d hUC`=z%8	bcrG!XJ6#v4\.1T--XމglIbSax&IH]'*7Pe՗贃6uČ?<!;6sn|-  G-p0`iz70m،IAh* 
:ZmP~ebqpa\ QX%pR[mq/]p\}&,@q졞ƹQƜgg[Ta6AW7]8%v恊ͤ
7|HBIC~Sɯ:G=HW{$#A㴢aPL #8i(Fl֠dF2p`6h	4h:+c*bj(DcO霪Xa܎O*j<mxkS"G .2B&NDB:Ϝ%.$Ɓ()(gL DlD8V%E@G"L-Fc.\6r,Ho_|p+63h2x$lgN|Ɇ5bMeĬ#:AXa
ohLΎ#Ol$%|`n%W$z"ξQkFRi(i~B(D^3FGM%!DO\ROB$fD釶@¤4D'vȘȌɺ^1"NI)Jl+:^OXa"
Qɭ90[/1)Oj$}(%Bn@Bb F%/,B=!rd2BO^Vq&G\Z+I,Z#J|D#yt4r4$uIdQ!L`Mc㙰4<H%l֭n"DZ0pBnpQ$m*|9`' @"!bCZ%g.s-BZ#p8M Ғ겴EoLIL_/B2$.xK/KJ4ck\13sɘJ%;J"*p;CSF'!!j2#l"!Id=-D;Oh%Wp`jR:+WLBW"Pd#*e@p}e8JFF]N>./1LJ7ᓬlch,rLA颺xJ#GBohc2/&C^ڜeA l+9!`4b$N&/*ʡiIoBRWs{Z@W  {nEI7"UXtnT%<D/3M:LM3/D35pD$j0O?iS/?OjqR1PBPOHO OC/C6<8&:SCI'r:UTB5cT5*U٪1'"A#&N$OX1kmEbj`5Z#K-*V1o%9զ'$zČR"Z[\uV)S?IiJF/XmJAT^5dǐQ_@M tQ31&`u3Фv\$Dbco5yc+d=0b	=kZ~!| [c8ݬ2CtVVBC^ViAA j1Vp47fV'8Ձ:_j&"pN5UO5sTl^m$U_/~$B#TFlcCL7,Ubۃ9:OXE)T(	d$mX&jz&+*DMgBʰhQC%nl[EKb(& -w5M+~fN/%/ء^_/ƀ"0Tag㵴3{*6(FnnOtR!!%M6Fba@TT67mڦ'| x#*#'uPIPJ)@%)A*&BT*gcޭPxu]H>Fz4.pFNqK2B<hzXoä^`aVbXPy"4wxHu!M'E
w%X[bWYW?Pčc6*WΏ%HĞ&"*~b_#U0& r2a\մxS 2JlgIN"b.qejk/qY.XVa.wn#GB"M2LdIa}TQSyj`MS(cft%,%S[-?R' -!ZΙn$a^7Zr-"")/+K'
&Qà]u\UM?enx^_ZU43$}m|m٘:o|Ә R b#C̪
"a>W*2&4,~	nD#4K#2??pI}h)Y:XjE(f¨m|B>!>7Ŝ/y%9>9Mmo2}K/R/kL.ZL{/5BZa"otٺqSB~jq'cTUHbeHBD%tk?ZGz#^H.,y.Akc[3b8Bp8ڻF::cNxQm3DO_߄^$c ~QS[8kȘô?Bdsz{bfa)OhZfF(Ew	>T-Et\^x ?YcH&-hGI3-4vvB9#{I!Fw(atY)B0TL;7ۆ_"<7D'  lZHyϯV0q Fi_7Y5謏eb&0( g@57]BC0W/|/VaŠ<1:Mw_2O}|c|!"a(%bXX.5Q'7GWCRp@)U0@G]B6G}?8WBZD;݈?LUb?A1j|Z,MW1ߛ>S~|#cd;6 	vqGO"VR7["ؘ!Gh#`VY]}@<":-@b[`vY;!$)
˨u?s 'V>,pE`nI^!)QW1V~^AL'M'v!N |KZ <%yW6zXa"EEM5#D&4?NiNW!=;_W,K@ [DW0D|o\8I2@}J<rX	{	%-ma'͘<m)s@vceϞ[ oPO+ݪb(tVvRƼ٨+klQv[ʅvk'm)hmOoįXK7ޢ_19Hr#60L#͙=1D:ՙ(
_*X@PdDSŎCH}wH|c |,[=ܻ{F> $]b ?33L3mLaKT*d RPCT LSL0\XUOhV#\EadŌ|Eԅ"L5Tp?{9$@I$%ɞYrk^zٍ? Qm--?1P8'y>4?>FJh-ŐJ~W-{>Wۍ xd)IR01,"bL@eJM4$aU0Y̤0zŢ0ŊE]\,W0E1'Ȅ(?C$L:?cYY%>+ah	$_Z"Û|4^v}8t@sɗ+io̱%1u{`1A8c*LDޯ.,c@$3PU@o!t*KbNvq-^ǥ_7`TC-Uϒ^?$(ДٓiK8fbWpY\gGD浀|+OCs)3 sRmt>㤜ğA8,08E}03?htG5*8=F1jTTjTuFa[7]s)#zH\t;Аkܗ4jX)HK4*\ằ:v(8!|p>Q"FJ >+	OudNedjGZ J-YApwv	f1X2'b~wM0R窱GTSȷF4+.\c\36QɍF`xGFd2"D3 ;8Vn9m(   APra!\H1`GPcNG@D w+TmaJZL@'%"`=jb^1vF1}"' %w#-xğ@yCc91'#`cRjt+lD9ewQi8^˒N;`-Orж%s6fdؽn&TpQlZ1#K~Y궏u߸!tC!2AD:ۡ()u\N`GQ9mc딎! LX28-s$?jj*2&;	1xKz<|hV9jP7v1,0݈ZP*%0N'{"h+GVҴ3:=躚N
!v$
D$dEI aiFs PF`"cFbXSmaPaxVT	UCڲV<.qöN-$w.3f>.`e}S6h$f[ԵrU3\8'5"dhP!/r҂kuҰ\ߜ0'8)TXȞ0K$6%H]A$m5@VH4#x0OWjNd}峖u*ˉR< ݹy?T P?:
8B({jO*g'a
oUGބ.YpBaQ]ތL`/&uP(%Ki$t6}sqs1<3MG*򹎬#K?vʡTdbv"#|ec0 Pj⯷mf P3KQ|rXP86k	)`H_pϫYlg3LIMiF}GtKu8wHVM>
#
o8'CY+bpd/H-[xd(&^^ZhgbHW%;$V
OWFw@ޒv[FU8wl|ɝPvVbDV3]'T_؄sMn(:/#OlO7- )èwrQ5zhB '
' fסn1{2$Qa75oW!;DbMDLC!dg(Mli<j=Ԃgv\;U|r>0=bdD>xDVF(We1sAtAQ	'Dmq_CXh%Hzs1)Q(uZC{{QoavQ KSv.׈15Fbp\ƃM.BCV}u]TW7~0_Y/߁QC(72<XgHc$(G`"rzQFSa
4  V[7E7S,3pi$tqq7j0Pk%Vv(-${#CڡY3;L^hC8grIU&{ G(>1
V(S$ ^a%T(FbɢpvsNXp\cԇ>~1xj{X
77Zk2'We7ŒrAbAWH)g'T'hl}zW}mӌȑq<SW=;8E6" ޢLdڤ?4Ȏ9cpVj=DV 0[7.L2	00qb/b@1~@5@`aƜQI	p~ɝ70r	D2!
q_1I'u&733MTpS![!RiG)D\:ivmT=OOQid Wk0YdAmMe*)&ϖyܡ:rݩqY~A(aC))'eaX}xud$q {7 i]pTk|]F53Fqus >irH_)lsrQ(#m2X9()&ᑊEC"0@0Өg'K1!yAv"AD3,QTTF!hd<båzj:XNH#3qq60L0ue~OF~Jg1r8!y8m~6nH 8D1IP( *6;SMCgEHc
a=էGwjك
!FCb|7?/87j3E8ak~jw28nY:Ӯ!zqFezIYBҨ-' A;NjS=hog!T`f5qcŠ>-ܠ!7xӪx2sj(YlR@k10VYYuhA	5RtBlmaA_%7yDVQC(<SQO#Gs#u;q;k,3ƀG3%AtyEBFʩz3XlҴQ~`S:0JW(2rKoS*SA|H;"+_6f*>X69|q6Ѧٛʊ	 $t3X(do00bzV9=e&z01Edu{x &g,^'GkcmtJ\$i1O2ƽ3j\k֚xɺRR~ŗ:Z63uҾ?lB8  kH/<(
3DZC K<h1 v+(e\S!q6']O6cZײC&|B%z s2IF0U+2uȐ:J{dtZ1aƁVZ<:I+r"+/8E\jOKq3M5!쀍0`z /#9(\Bz`LJH:)l9ּ1΁`EG"0S6HL;Nj\ƚS%2=ՠ@@/`̗`&^y'f92QY0:8Ӡ#Qa(x`ae"8٪A̪Xҟ6?SMˋ=X7D6	^}-c-c#s&6)'lB/W&؈1S`ڸ|2201SI݁0ѪYabLb|M=UDs˸-e\I 8;p3u]rYV+8n !Ɓ}5):MJ*C{%T2%BQͩgKۑ;y 
E\'R)B݃!xsZMЃћ-;C½i z1ZU9Ѭ1$
1BǦHqI%e6h_(*n7^ДҗeJF^uJ C.*v,Ӛ!2՝r97;%5(S29zI!c.ztz&gE7(:eAU+ܝd.}⯂TFG.ՉN}-c+>k1z=0Sy}r["Y$nȆi~YL''%BRӇrA&]&/tiGSεҰlQc$?[N#<#ߎSg}J2I1$ؑWCP1$rf3бܞnQH!
H\;! X&(s4o,˧ݼ\2-p+NqAu]!"&)؈JC@醋ϱhnt96YߢnAlUmLЃ!q߃:OF4ߞ#yCTZ+XnCat1҉R+(J9Q&^2?첯y 1L߿46i[&=0)NF%R$bqR$.\0L"	)AvncwPCwSR-n݄ָ11`U?J_ԭefKq8ԝ=YX ŋ*TQaX`)ZL7+㥷Z8 CذMJЧjӭ[vӘE\6tqI%#I[K1w^35;aW_ϛފ^:ԬJc` U@iUX3Lbh 0B	'.
ς=uQBRyQbA{ϬRJaHsxJcÑ7 ~H Ң%%]zia%JcnR&B,zP) XRGYÊAʐ6g| Nqb l24RI'-!+?nI)|#QL͂c1ǟڮUMKMfm|u!穲XcCZ$ț댹̺J,RA>aQ6?HǉJ@͏R)JupHEQ_＋ C܁2ڂe?T<c [Yõan[K͛cS}FF:ءgZc۬|p<\̇B7K ]sZH	SZuVD__/F$(5oI-w[\XdhGgjcVKAypEʛ0sPF]۽pp0\RafJQq&N~7۬Wg}b@X#1uK>U+sU`[<wnտ-՘ñ<per8bħS[)ΰ0)2| _Xl~}mNw`| >raV#y눎d4y^`ŲdxqW~x/21~4׵ &Mh?|Ii!AG χ?ނPB!zDBj `#a\n Egd"23J׃MT&"8TW#G)Rh{yT9HB%vzL3?̅2-(B|AV)+1yqzƈ2&ƨQ`.D-o\
xC@C?#6Q`dTHb~yJ/		
4>a&jrYT4rIyo<'rZMF`nCqU8Ԃ2-	"Vԅ(0ϟiLJ6	P&=4̈bXXNu(6v/[hY<Yşt'xwN1%ǸdY 89la{J,{V}0Ќpa~
0{]C:$k]nFäB`ы+pM6:L;"C=(=񈌥#{VSyp	dج =E@ϲs-&#Y.%Anz@+Yn吖b4TTM?  z2Ź4X
Y	s: @Dт0+1ਗ਼ꤔe,Y4+l-}VY){PTt&Bكj*l~zªY/-J71N!Bea0 Cd!ga*zDaTr[:&[Z8݄'/U\tO{efE
@YUc4'w8]+\`9g"o0phG'( -2=MS]F7>c6 ѩ
(QTlLByKFKKTW߰qgG3$Ϥ^lru1BM2Pvu,] 0kvbx)es5Ǳ\/$,:U?*{F6!1N,Wa .VDթ9LQ4[Of? 5 a)y({ fpb׍.IW+SI@0f%>4Atp=ufq$bZ& 5(ǋ13[iCӃ?MOS&[=h ` 1CR"QbSFAz}FR] t]F
+n1s6& H_a, hơ&<Ft6$.ɑG}IȰ|f|ɱߺL=F#{\4Sxt&>Swc[xn   s  EAZg%im6xRK,?B<Ba3a(ɋ6I_}`g9>׀2R	;{7㽼p _W}@w(hň%|	/:Wc;F[X;S²0>"	gҸ!$dł3?{8Y0}><
(:>2飾]h p Eʪckl'?[B;PND@qB`Z$[$l$p6 *t3@[]E\<;l.6s9rfs{S#?x@!h>qъ]R!āy{rTʐuD)p6,?6X<%i.$8AT
z<pCx8l]b
xGGYG}RRA/̏Q*5[`,x@`ۊ=5ڔb,7H@#J2  Vp_Њ<h sp0(52ł",| :C\7IX%RIL=(yIؓY$wx"zpyrAx  8_"~{h0hC[4=*@EzsQ(N!DM*xD	!UlȼBp4Զ8I H \+p"pVP>OΥ]؊zxj fl$=5Bj)HhE?>*8(YzK`;$QL0&<ZُX8*xZ:zds(7ƀȬC Hp;^bEmCPd
L/w}FȪ5aQNhLkLȽPPƈp0W $Lhx(Ogzr8Xq#FxY)T3Bȼ%3ºP!
ȨT@, $
вHRX	yfv !KJ1XUȃ4<ɸ#{aH:$uҮ92he˱IQOT+l5\,a$KTh"ĳ	=hL`S
vdpLĀtPƥU1'R!']=<ɑ:i؋'*H1RjyGEi֛
NY-I
kNx:z{Np 9b|
w րϥL!+8ح%/ˮi*YȧRr;X!?! 2<R4Ƃ'<#b<x  U	QPu
Uh7,c
p  ` rX{4˲`+ T%ݬ$yT	٣:tZDhV[y!!"<)I褌h@V\ս	L@<	2%7xxffPRD3t!kK z8WU߬y	 FՋ	U]E.QRޭY#:`N;  ]材{؀5Ѭȃf h[IėZ݊90aH-`iS@!rQ38(f[H2!zhQ`s  1`+J~|-^Z܌;EyHPH>	@ b<=<"JBBw<p;pLXf8HN_I˫/[<e>
QM	a9GdB'xwɕË|94Ix\<l;3 wP&N(p8]z` $	
hK'%6N
Ώ*1~b?풶
h"W6	Tgh5{`CQx>2qΏM5UD!.

im<裆b PTp>/=dն݁|4x9{(vRs2` uX >/&K&s1VflCABE`
GjHH\yݸ0j`1Yf7[(m~EC`
U8ޛ h 4(:iARQQ&ɐ,n.%]Ke!n۲H$L;lUzuxuĥ&h &oGH8XX4BtG^+U60][s!;;xpof#8XSS{X7r#.ir!!]#nqhR"էݸ8P5J`x$=XUqh uP" *ȉ&H߾aV ?Ǫ3Q\/)/7,z*[8"hT[LM TKxXYCqͥpU |A_gȂz:?ΘE"m47brLjdX-G!-E~q	9Rfx: DJ@Gú!_t#z
#bAN
EN5xWȜg[4鹹uoI` p``I 1-W0#uy:Jm{:Yꮝ@򅌮nFqPV=4 nRǝs')#"XN OfM0p^W?A?'zccSM
!l}PzG*gfBhrkCaZpPC"sHswvxjMĶɩ{<Ǌ'9@4Vj.jHW>!X}8XM8QTB!Zl2.Pr#{ e}6&H"[	T'߸ >T }VQ`127VyK~y DN>wu "
 9PAQ>ćU'׮^+v,ٲfڇ b[SoEjҫ ^eԣ[Dm-)M[y `AVk7T>1A3޾.7%9ajJ9H0Q%lX hpwF@N4oЅ( P6AX%WkARX*Vt^0G\V*8J᳔r"xU9\p<BFƉt 4-z`T ,A? ݢ`B`܅[r٥_YYy&lH:QCwbQNK Kц]5fo`<o$LNQ4\>񬃃s4EnY*1Ws-W*ZB@,Jy1'^]z+Yr0evO7^ϧC EEЃ d>\D(
ҋPS	R%8	C1$
>ˢ@5:0FY׎&̼gtʀ1`@A(/ЋVrm[?ola%pwi6؞e)e"i u70!8;0h0Oɀb	 ^uA5>y!oӁ9uV0.yHO= @+!?[4AD.3-E관ޯyB:#8VaxNxg1	(btRY8. s@;{XmB0? 58|NEϒg"B/ h8d!:H2 pH)AptD1E>hE-ZH r: 	ص'Dh#"BqG.S߉IDPX0-<0l A"tBqh'^țL  ?C0@7,RT*tI$!$z\1>p2I1IlȢ[Ho7+qAtA F9	?PuSA6Qz8(%\
߮"5͐&12r(I$Bca-
5r/] N3	! 8$ l8޽e;'?!*.WWf2HJ@GI$oȃx. 0p K927pL@nVDJ%T&*ƞ)Or"hA /dbYaUh.XRp@G@:Rlf$	`A0)	#Kzj׻?@
D+mJElG'S Ng9zD&L#0P "^[TIi!~+S+]4U_-(Fӯ$"x2N9?At|  ֑|.MwKj)TbI5ao\Hx=U=$ CLl,8kD27 ! md^me1'P5'"AMԎB)sťa&n,Ғ!';0$4*̏A4vWp" >Y/B "!zaIEQ3Mntv`p l70@  :_Q*p+miAfJBAdA\	*q?ۧt[Nh9Zr0t!/mc?oafb"Tm}gJUj?(p U07*Ȟ73;S%6W{oJfyxM4|09,  DRuT{\^E9BLs1bSœ 
&!W|]Bj& ix4"ɨzQ|OW%:5"of- #$ :jK!8  XBT"
mT "_If	j%+VN0L»Һ<ܿVI&<4 Ӳea3 3&eLJԠiI{"0:jx8 xrRڝG72*Y(f/w>GodJ:/prRmhnt!`O
`h]_J,LHG=,5 ­ߗ{!xY`?-D_IkȓRTDIR@ȓJd'uNUE86+Br	kIll앋Ҁ\G%Nӵ}]xQ< $E~>j`NeuAȠ[#
M
E4uҀaT}`ߏJDyuOAt$"Y\bV^ 4̜9&ڔ``Ui`EU&k\CS`b6"ZĉX0HXJbaTH	0EeB3l`0Bh?N 29VWqTD9`2SiE"64
y
4uO)dIn	`	.T_aw">D}D+x!OYmufܢI"`E9X4$)Yd sDXA3!!aUR%L_8YN$wAd{1vM;C4U"[m[Z*fB4%Y\Cx.řLSJa]aY 
Yeb&\P}	p"՗sE_eќ  0XIÝfq0lFXD".٩	ID<؟,Egx
GEoAOA&wF,' m^yvM`	xgeLJIVI^ }>dɊE" @]IgB&`TtNA0@J%&=HA;lB3|C<ezDy鄪|H~&Ă58I~1jW̈`Ai2\VAG Dcɭۖ&|YHI4"Vŗp gC*-\hQb΅^)pLf	OYЃ*CUexgF<XȓTqXH	I(F)⡅'<^әI"Gx"MH;׭.Ga1~W4Ð"NgB*Sxg]be_aNLeȁ4 ;AGR%+k.rniHClsVă?:tjՊ6kƂI̩Cp(o\F @ƪ0EMM!Ȍ>D4@5MͮlЮSaPɬ\oÎx!\
zF@qF~jvRنvKVCmJ
L<z*' kD
+Y:OH읞XWrƶvt(mJIB^X-ok։JSaxAHlNl&`ZLn%۞>FrG@止URd2o
lY@
EHq0l4h6/l&."z3< o:^RcDYAnyZHx,Z,bo3Uqg,E'5ŋ VrDpX,ZMkjne(ٯHy. ` pvI'HEt&^J_1Zj</XdoA38Bn0 UpqBhĔlof԰;n"Bq	lL?P#!rqemo!;24*ݒE%qϬ>r&\EDp#&2i0lEI)CYVVmdN)i/)#03\ͅ&&rɈq3r[k6N#osy#32&)0K)a.3)4v7tUs9aoBo<$DpNDijtF>H'[[4tx2ߴ%g4^P*tP|ZtNg"4F4"QuЮ^eO7% {65.w_U?fu*qWUFLY	}u\lf$4/5RjGHGƲ&/N}v !    ,
  u    7+/>*:
.48-;<< Y q:X 4l'[*r,3Z+7u8T?Bp9GV2Mn=mvS	P0X3
R21jf2{-v23SPQ6WR)pfAr)R|)`XTY@1rLpP2KLLFZrLs^ImnlTA~KwdiYloo " ' 9 < ;.+J	Wbg0V,P6m!t:u"{R7PFS_KnOwpLkxD|c]gdkXve|e43Itr}yHScigouxyy-556FFXH[\7be5]^'cqe d9r q8f"t"u;ONNcpLkrxRfb4Zp_uF[G\]lvmwǏ5ǒIĒ]ОJЙ_ęjӥVȦw͵{ةc֩t۶g۶yxv̎Ђ͆ۘđ՜ڂ͗čƥ샥ȘЬ풶ΔŦڵʺ׹ǽѥѴ˺俍ɷǻɖѷΔ̨Ϲ٧ֺϣ٧۵ 	H*\ȰÇ#JHŋ3jmǏ CIɓ(S\ɲ˗)͛8sɳϟ@R)ѣH*]ʴin5;:JիXjʵׯ`ÊKٳc][[lʝT-ݻH˷Ǩ~+DǍ#K\˘3k.X`͠|l9K;Fͺ?WÞL۸qW*/\0>ͣK)tϭ_޼2n|8ϫw<z˟|>뇽x?Xxwr]|&g
6NMhad$1؉ц vX{(`0APycDxF晎hBYh$C.dVaĠTD>i=V$\v9]/NX~XUhUk^fpTC	q晤T#)h]م砈&Jyh**J9$f_w}3)KQf-@ªciYA̬&m\O>D?w
lIEZEf	?aų)EhbǾ\FrJ=;Kc6@;r*	{Ej?c`!? 0QgcqJd-⛠3@8qƨbe_$TĲ(,6Y)s? 1"RuVѡ!'ߡ-G\TKwG+3PYecV'ф?itqO5d ZJߠ^P=Lxjk#)d7#DP~t*{{t	 yH->BQ?+h5A@@xsCn'\sBЃ@Ԃ}CX'=b5b@ڬsu+ԺpĶ\iҊ@0`	򯮪[Kr"0X;9pQϋh&EG$N4 RzT>x%1
Ю?vV.`Chfp1đC/ P@;q tNpR㈤0HG tH̉x19vU==FcސE ?(ΫވGx4:ͤ=#vHED̷-:o!I#w#n25?Iq!<dؾ=@dB/8y$aPqBE+ֱ4l1&bNih);:oJMBŻqS:3H=5	V##&r8|AO]6<40	[P  s9S~g{MT	?ۜkF,
Env3iڌb	LrT/ZB mVJ4iɢJ&RfLm
ǡG`i0(}3*٥PNɴ/jX)z~V(MCTct-]YnU|h]Tcֹ.ՃKYjWn Enf|+kGI)mjf:V̢UҌ!sePQ]1_T-g*M#
 $k{։5VcF^}f]:]e8^^3orQ W~}*tk^ފC)(-#ɯMn;0Ҩ7*ҽ\.,WMapysFWe)zG;pH^p%^%l]}u<`6U;G1w%P2J,(Cw	r)  $dZһgurN6Lb0Y ,`X *|e`Ѩ|.9]3$,.LWHwU˲4\U;Z%Ͷj@t?23r*5}rY::m}l*y m),Rՙt%&}edH%9.ڢfZGՀvlfݰŭ2Dg .WI|*Ҝfႋ<#gPX:P~8|]~?GdhTsNwJt6_54WthSjЁ:W$8\O韶Kjl#v̳{nwyuQNt=gq8 :i:l]P*5J=	nT>nJ qyۣ;lŽp۵,Ͻ<198{=r}#Y{o{χr'9^_G+vR;ȋzD=wopk6\o 	w7%[yv#!v{wKyxywp>hu5u^VHr\'Wr#{w}ׂcw-Xc~KDW7Y%}M%lwhrb{6}wհt:ze2j{~fgyuGK脹ׂyW&pXDGhecq&B.xPCWWt&vKzckcwt@P	Հ  `||=@T_C
H&PHnl3RAЋ`Qjׇve8Hhhx0OI؆hGq(Ћq2dXX@[Ñh؈{{88hJ؊+("1Z&M"'츐<cȂȊ(iWtg"ؑ~9=%)>AEn)G؄8҈8[d		a"9(:*ɐ\Uhx.HP	4YIȄaq(=?fPUp7Y8wIRGhhXؖa!>YOTZv.%(Pw#g"YIw	8	~a3G[$rg)s?N	29`nԍّ􀒟2A'ٚqU9Q$J'H4RxIBlɏ9yIY}4)JLQbqo tƜѕϲoG޵YiWw5r֚3u
-gq",vgEikN	8`	qHOA?!I١=?ʣ?Z)XX(G:Zzq1&RJTjRz,**yeڠgJl0))NYI9X
)YUJ_'ꑇj樉s٤)Hh4X١٧T@Jq޸@ə?*)HWJIjĩ\
	K꩘ʬΊڨ)sYHm!ʐҭڄ᪥*ib8;
ګð+AKE6(ZOIR;q]k7IDҲ)6GbZ#;|Z9Aڏ4}@O+RBfS1
A~jGKh{7
[ Kjpkᗁy"ꃖюi?˱k6٩ *DH&w+t{x(^Jq[z*:ʸe{j;kuchI츯w:gKl{)[y%[{p˻T*9@}[ΛX+&kc{	q++{E;ڵ_۾ix{ڸifN[2vKjb=ٵ˾jhVlL,ʧi,"$tY'!/̻x6)2|V|UzƺVw[J 1+D\YAK{R`07d[Ů"4[K +pTdܲi4-ܪ<K׻}LOȱC`ȇ\.v6u;EK3	z,KXl/J+,\	<Ƅʩ\󙊌C[6,r˘ohřllU	K̢İdlCA8% 'Dt =Z\u[Џ{'!pƥL[KJYh&m, SzXί[ӳ<ӏϙݭ9l7͙1JJ&(P@jҷ,2=L4՘S[3MS IACt^
˷x,M]S-Uoܝq\vIM6L܀ڸmK!Qמ@ɘ}}Ճ؁{}GǷ(LU[0ϩ\BG'`ٞ=څKLXZ]ۆRݫ-S3Ԭد}ƍͰȻ}wۄZoRJq}gLҸ]ڃMa-Mő p$ٿK٧
܇әm.Х;z}н:}T'4vN^Ln(ᤙLl-|5t%v*̴c=6l7r[9;N.wa1n&n%.Mݵ=06WQt˭klMekCp^զ=yXk²]YJcC=NAA5:%HΝ=V=L^(w;/#ݫ.Ma[B0#Ѩql~	F0
L!͙:읞{]m[9ٓh5Eaj^h>Rm	F`	ͭɋ(vYSЩaˎǘ@8
f1TK	R`PP-,ꎘNaiJz}kb4R+>.Mq&F`P @C쮖-U0 ~.b2AT4{8>hjdϯ3OgAmu-ʜ?Id]{uTRT;!߲t[*Z4?xJnN	<D!vfs/UzY=ʱow'Hb$\xٖאk/ξ^I(?|.,C%Nņ1&̈@!Eק?SD9ҥz^M8uӧFbYQIqSQ	ZUTe%[lwS4[]m##pEܸwb_!eHЋuҬk	>(%isx.࣊&]ڴDMf͚kɈ%TΛo-p5[n^z"̡^
x_)άL+A^μ9gΝѿpP?6mr*]B3
..Ț8ÒK;笫(5BB3Ge2d2g=3:qǞnG |p@r
%ARH@vP.rOC2ˏgXTdQ.EqQ=EP/3CloH@y2(.±2TDˏO6Cr~0#Y%O:?#mnRS\U(/s
P"c6,Y&%JHKѺ#SULm3vilI'	],֑XoyΎޏͪȬ\0BGg5J+h9-3h__^II%t^;C,?H51o~`+gJцj֬)=cl=n=G&%\%w]byUd搢˭1_C[i5SPKa5:j	%FlMQۛďLg$JO{]rŔ߆8kh6ٷ&LwZX|k,$hհzL;=TFǱIML]3[ۼו;z}[x
Ojx ǪHi g=Kjaw?UL{ZAQdgGBuo]ۉ!G~󣟏޷B=/Cs(\Ƙ(F9i%ݹ)`[!=,qOd$L8x0$o"!M'v	^[8`6a'D!yt􈓭rWƲeU. Lnb+3Z	%1Ep]bXb꧜3vh$er;6o5|WlXF>(KRkۓ *V$7!d1uQ2:$}zC6GRқƀH$Gfinć
.8|DC3'-;,&g2pY򃘤^0{jpr݋*΀2(^&FqG[&Qb-B 5!)P2^n?"f< ͌GҔ֣ɋꤑ
BSl4[p%C_|MZъQ,#y)BG]HY0ID&Hr.4%ЌN&>eƫ*W-O^4`ZWƨ?COT\Z$iOWd*ʈТljjbhIN5^Yv.\nZ;l>K oOZվ5E	]Tc^[=^ӾM\N-U%BnD":YLxMMe{_
rnP\ m-i$bycƽi/ދ^d0QMpcX K!~JnՈ` Gjy)'7#C9?-VnV\pz7Or^$(P1xQ;VUN!@3IFxd@oiĂДd&_5(Vw\rZ۸2Qǋm5WfO˓!U_To$6awшc1ZF0:лRm`>@;Q2wDf	8)˚1e9wMeX&)/f$˸3^Q5q7g5tӌ+IW )ݰ5HPǥ"'4ծwU[&Gv76Fu;Qv}1.8R)ŷ!!<ٌօ.k<ݘ$hAM?8SGż{hUwaok8/sKXc.cZ-#G6a5ЀDC٭(:8lw,N'GB.=uN42:+yqTR3)^ѷ9f,''ݺǾ:YcGjkHp.{C6twL,Fxk!ys*vߞ`m37͇\N22Xf˓bѹvM_{L"YHІق/Ǣ	-c8h{ZQ>1 }$>`2N~;uSC?H=|bC{?
˜x
!?")u VȄV $ӆh[D-H˧xC1#꫾
(0#*2xX>G@x7=1mP+?8{a5C2%8?;rAT Tnn`:I;PBy-|x8x@]S+A\>0\XH|9Ś`CXhð rPe-Sۆ"wXı`CJ(;c/	4$47q6{89w$0l,RĉqtS/Tlr-SڼXaz1s$ê`-_.]r;Dw0Ƅ YFftƩIOD3ڏm쎣Us3;;x!Srd5*G7[G}6ܿ^jpaԆnD<Krd)B[?xOpL0V"~@InXs9ejGF˗,B!ƹIEUЮ`lnbTH-{Ȧ[L<ںʃҩ*n$*K<.j'Du9 ȢC)B'ǾLe;DTDdԍi@P˛	*[K9ǖ\,pL44O3ļ]h̊k(N2dh6!drNk{|ܚNqW<> Ob9$?IT@ dXT"윕~;@ͱ=Ȇ_<СIDbLHw%l]BE9ƈK*P'0D]5R7y8/:Q|?ArE|?z8ǉ
^o`$u%mxwI>P4@h	x{Ls!Ozx8s0|!X	2ְЂQS !,älkxcԦd TUN>PqUUc|M2V{X[Kص07:$_bE T
[Voh !G%Dd؆m,O:άF]x/tK"%{7=ђ {Q|M؊Y~8uƅ
A܆, e%H#<2&tƐP>8YU/d	xuSb٨R:ݚA仟hm֨͆EtʩXERK6hQٌUeUUs	}0LVTU܅@%Wý-\2ڠkc	s \ `d܆AketJ-&R2	[Z~zI,]Չ4|h-5x*'{Ļ<'J,'AP%\>Cl \H >Zrp\kVdX˔}@S>DƘ0uU.tTpUW3/5&`y<
e!tNൈ%]]Tn`E^{M*'MF6[mD(AZi*{9:K_|˟	!"\,^[l\톦	Fd을10֎EY22itz)9fY`5䓼.8c՟(\YȅG67]^mMdb3,.]~Ju3LPQz E:2}i89^e=N?}$R揀O!,bsiK(v^oVdkSDpPmwt8Ōk:Ye{=T^W̙+2Y_QvWB[0lfPulkbq@FHԴ6E	%PsуѤUYq_b;nZ8U{=6g۴qc֑Kd`u:}HGu
V(~^q tcD-ISE;! SYHs.Qɘ΢i֌k5\2i%lڤ+@vmX+6\b%IP[nlVPTDƳ$C&ؗhmEm!)2%	S5&ڢ-aR>>9ثG lt#lhlWnFrANVJ-kF()\=lYks(p4E̢Úk(1FV76qnuq3oc?,m#Pn$%pR<?Uako ?e;sہ%bݜ)&R*(fsp/X~ުSD\:Aaܟ^GnX%XǓ<inl *;UjY#BZlD縝aZL
]HeF@JG0W58|Ї`}dN8FK~P>J|N
AjI[_]}oYr"n8M?K5>vEot.vfgKO(6Zw-pu>
n/JnwLc<Lǻ⋚0vp"|hJ~>hs(_xn-
m̌wZ^96x\PrO%3b2ϊƋ \Umpє3ī%hQ:K*'-Y@s&j9[qr|Ѓ]߹]+]]$P }{rxӂt^h&pl䧋Ie^< ZN/N3	$HfQqhH<+]vmUn)zh||ȇAy͗wf|,vǆnv}XJp1Vۉ6]M#,h 
÷|I$	,q|h#z-s-^{*d	xiӦL>3ϟ5eQ`QJ2m)ԨRBhjQ+ذv%1!ٴj\\u\g.[|g?09x:ntܭ!EqF\Ё6k*jIjv?lJcK$Kҥ?ԧc3ܦAG
:ڷsG(Dا-vY\uя{W!\.-R@ VɄp5֐UNhueie6[!֝Sk	$A}(AӠBIģo cq;>RTЏETIwx :$QJe(z%ziV%7qyC_79fxLPvdMG#!7["Z}8]S9YAhgB̆0"R=иLo8S5?"	ܟB"̵*ӑUݔ+P~З[+!'ZbUCBٰ>?#2iD$$uÍI2ʥW|%)iknRK(a,sڙ۫		謵J\/EBV1!ea~iײr&8uAht:EM&W >'S$c=L߲>BپWu$P
ɢ+̩L¦mo5AfODt7}M,ˁЇZ03`	d^ڂMlx)K&Pq":(f:[_R(>#L*.;7j\Px7[첍֥~G/x]EN+zes5)at^ۋM6F!P#m47z]C6ҽE !`l R;5'Cɏv둰&N`<K
\p+hE+tUnN>GЊ\j&@smwD+ф:an(;:?w"qQ(`e+f<!(GQ
R)-9EBި\ʔpp/m9C  ;Ђ`tqjIG 4ĊU:b߰HXm!;jF^1T6G1l2H77deDq-(Ɏhrn#]9m9I8 3Eri (rŅjh+fd492*cےԿ]yi<(0п,,fh.˜75u0>)EQJ#Nu#Rx(VMO\	h*xx8.ޜ& HN7m̉^jЃڄ=Y(VRJuEH~t~aNcMsFG*df$9領*sHN픰Mzmه@uT(%!ѥ&?^6
#Uf1PzUR23N%͝_InJgqHU17YQL[jRjG#Tzo%K;ͲJ7*eAZ5-|{Ԯ6p-_X2ipj+n+Ԥ}HٟH͕.8Rv&bbMz!#!UJ܁Jhy#^}U`N7ҸL/O6&ޗ"J
|ڪ#%N7
&\&9JdКӺIte*R	<12Udb
ryvszm===y 㳞.-ǙaG%mHhJv:ЭKFCYk0S"CH4;qFiG<	RagG+Zǂe?=*4y.7-#5"\BFn-yHx*]ׁ@i&w9P7L&Wsk'u#NrQDr,@ц˲	p:a}[J#\LBx՝NMLܸ]?n6΅Wl+V[='Û(WcYw$]Eyo$kqiLgQNGFcD掅LCIXƨF+S"]&4!elbyl=j++xO,.a'cv%eXfPX*w3wL\Qds|tk9L)׃4kc$7-<.3T*]|h&68E"tZ&d= .͡1I$SX|}1ɥܶ=@U`8!^<t[8K8txIIҌteQ-MTUm]h]^):]ɱMGRơ{x	̅:8ʉۥ|BPZ9AO,R,VMXP
aȂ
鬋KƜQ-C4ߜ1-e]NbUΰPJK[AWeZ4K>zPvًY cx8Y7 NJPA|_E_1;\nLR՚^qTw@"	"%fTD`~c'k-`(F:۴0aC;|\,	1՜DoN/NY%$q!*DCCBp4bӔ,$6v$X[8}E:ݝ`xEHT"}_݁`ѐLRAQӞ#duh))ABb<%#y=A܁q:K2AGvw\q"I: $YDg[d9
[LQC,Q1J)$aQw8DbBGD~_bD`}iSpWff%(c%\K\aO1+*aʥOnIQ,)d@Dɏ`ufVg$hU&j+e7Hn!呍DM^Pz']NMTAZcP>&Vr8J.R,O QZ'Η'f'i<vNEZ}jT}[btS,rb`ƚ{`v0dلHpxe֓V]I4F(vvL`V|aXU`'e(&Ф[c.n_`ٕ8$@
̦n勸 miA'Ku&ƒRh)N Nrh(3(Da` B'xl
q!dUV{",bV.FJ҃JEi/UNBjEgdM!\OhuJ#jyXT`r%B(#IЊSj)$*nXjG+ȑ#х|ȉ\xÇA*0$ɉ̉uMXII=SQ?j,,*!e7(bsYc$
۞9D^Xg(+~Vc5+0_`
Bn>Q.ǺAEȤ> I&G#rQAz/$UI^H U9H 6,lb`䖗6uJ >(`}-c-L$Fp)ƠƭܚD,uAH~+ߦ~E/т}-bFu`<]["GL|lOB,؏jpاyh
H#x%0E B{d
330e\PiZr\Y\fG"5\l꞊).`bM,A!,l^-0X;[jIV6FR0VkZw:HZz2D&fkL𥼖vNo/ڇJefܑɤI+GpoԆ_eA#ȫ\<gB'MeSpoDt.q1Q),@m S''b	&cGhr'f@2,;~\%j5
nU[q*dnV۪cR^HDKP<ē	SF!$S#7(&LZ2th_'^*.Lܙ z2a|طJ-M2[]?0]Df
S>hJ!觓){.U^e6g]I 	799s%f<[qG k'E*s+~	ఞqHq6C7k{cDbB0'G,f?O||a]L.wZM5zSl<s֞z.p>R3uSmYFHKJ\mi:Ct
`~]>qYuZ_W06Ȯ?g2
^#RrUa2bt);KOEYs[-=,fvDd_d6Rl)K0Ծ>-wHR62,{/=\F+; 9K4_7!w8FO?vQ sRX^
R] 	bnwg0"]O&\,ĢpmLxa2;R_UGZk KF:6`>3#&w'`s8ifO;]>E!DaL%V&Wc0,YDpY"Ck#xyI4mu}K=w=p4eLڗs&'0'w^9)rX%,ٝ9e<V'Ό(lm_E4݄^.޷;:.AvXקk3Iz:/Ca3߻/Gǹ{߯WQfX~ =f8I7It5D|'p|z]ζRH$	j_N9C#qK7&x|9aez0Y(Y2SFu"j1|g'7to#1JL7˩K<ͧso h84<s
\N aOŉk֎]]WxyjWyjig$z`	C6r*E-v}}"}gYeM4[`Yi8q>0~.&Scrg4|zlG/nTedƋ}
N_e"|<HOăkғoXyt2Uɵ?	4x?6tbD)VxcF9v0_H#I4yeJ;,\Hr+E|ۧp>|ӧ(ң3WE}^$Cb{♛7e*KmĨJW^=x]<EX_Ë7v2Kɓ)W|sf*9w9f"a9zL8sP|.Z{>\cxzEHpxO\;O!%ͳV+1<zуB~qbٷwXt|׷t~COYڴ"Xc(w	)uGm))
-9j )젵Q>DюG+мxKO<\&(=(r)$`?\6uxG(D̅"*'#"H*",n LX.BԨN±;z"#LtN=#)E5%RABM2{
k4B	30<J 
ΫqƆ0DgRTRKՔA=t=%vk"ޱK"2TqHCi(u`Mۀ]yJa* b}Xt8NٰmHNj+["Gf qtܚսEsg(Wo^2&N[0ۈ>
щ܅uM+DB}txPNER5rܚәϨ9zY%U#2Pz\[w5CVe9!1~!@T%i9ڻ!H{,̞mt(1í{Ԋ^HJsP"|(m%1ḤujCts6:"y+2gb	Xr7ьEQ Őxԫ&-] WB>"X91|/hOM^t<]O"+D1aњ
R)& t
1FDH)K+VǶCv 
F72DC&A.y\Gg{WP2 kBjlFg/k[IDX/
gA;%@rp&V5Foc^MqRBBNn93.,w8ڐ&:;ιB\-8S(y55^(珶(.ʅz+?TJnk^<JD㯇WrɥvPDjX5{!Ws ST>Wf&!	AmBP2Z12'%-`l;t<+2@-=jeC(Rˊܲ72JV^D](ePRR! ʓB4t=EV%}+)J9uTiVX:02}>US24IEʲI+/dqv"σf8nSX!V
UdыO6Iq)\u+/3ZQ|}Z9׳UQ]	Gb.p+j>!ٽ6$%ڣarLk,WĨHv2:kLCbC(`ܨ3fPH×zHy UjUv'
]6_(cҮ'.+cW6aLbw*yQb|I2u4'\Q٦iAF;KQSȪCW hAB1j09N|J7WY>`f=DEc6ԭj:qYXƑ6kc{Qo45C&2hDҗ44HFHP(]jVS1f9hkJ
;*rbAlv,fufe=F7:8Jz5ZЁMvnI{?:2@?YN .ֱ!Q+)LWX@xJئuNSۧD<"^Pay5>n[nC-w	bt!^s3M}q[Ԥ1aȠ<"K8/i
v̵(?eʿ+AA&Y2r7C!.z?Q[(/o6%L5L¯eDydן>S<So ^,l{crT.x;\/~Ϸn[1:A_W\SG^JiDkH6~'Ц\+q%$َ	/nB#rΘB#&ol2PѼO?/q045^$~h_`mx8Dsj^yne6uNbl uo0F;z
%!0
wônpl0#59
VIdMjv zbtx"(P@+:jqkAbG14!0̐["8j3䎄	&ށ5$!\֢ׄ6"8"Edl/A`	"CHSE

5ڜJPf*gC^(d0WxMVb)Nu:+2a
YH'X9pQ$oO|NFȇ3\AhZ6rEl'QWabGVn؎vbR< o-nz=f21GR,݈?qP$
VrTb&gH4O`ׄ7r`~!m "27( i$&nX0Lo(%,/#3qF@-?H-ز-3A&J'{Ͼ~BZo(.QPD-L1X&(Õ
1S+c3#3S]Ϡ04Sr-Q%e4Qk5ɁDbGBLz"l͙S.F~Bvc3DƣNBA2\sx"p<CԖS-Q%R>A=cSBbFC">Ua6gj/M.W)!)9##,4!f#9Tn;SD#2mpLG-SYURO=a|3>SjFaFO&f'gcOաa9G(bXb68T!<lJ1,!:fJ*cC#y:SLS˰kľD˓3M`"^Q'R5Db6qOńOH)FH;BW""E3BSө &/2B1FlJLUe$UA**e$H
Upq"uBbTk"Jhs6OiSXqZ#)P%L[Y,(ِTS13Ku\5Uq%BU.ȳ]UT#U V8E"s&QMD?uGXu$+4ibrT!a	,4u2VR(qfKReIn^v.fmTp6g]'mqOht7ca|O>fs4PrfE:#N
vxle Z'Ul522A6{BWLVFL>P2E}D=BgwTp+&(ppt8)X/)*'hKb6UG2iy>Hc!	u"
 .dJD2dO=2u'Daw݊{DQquoCa6OCL֞5.`ɆhgTDʨ,W5sHtk΢m:Il}cƟuV~/А BR>HgbFXǀb!f6s<FF?k)#j-Q db}c1bu,ld.$[2^0&Ztk\:ĹjeO?3to7Ko6A&с|XgbuzRM~k:'M:U Ggc"8 ҊQ|0P0|)}5R3x>*Р~wLwsƘW_W#bGXA&ϡ|kX"W,djJ7*68'[) t	*ld W9W,c/٘Ubn'ꮀΙ0˼R#hJ08(k@A[JTS!j7/2B8Zp ,ču.lyak0-/LeWnQ.z,WLd6(vBZ:EϤ_iHL6dea>>6'"YƸ1Fd"[(XBêZ4=~g . 1~w^;UuMj7ȭ;0LMb=Ie&xgXځMA'e6Q9
5sРI&!Bw.<></9Ȩ^keOn۶e9G<s[x6|[;m_G?_B3+''efdfaujxj)bA`d@wRƷŕk3š⻐0O֘=<stBĀy|6y!oʕfMdj~.K$d&プz:*F6XBSQ<afWIOf"d={kREw\tb~;py3Eaܰܝ7 X_*	s=|$UޘguD#kꙙGUMø?ҍїXQZ&Β3LC2Pcy5g75<}>ա&e$-hBGdNl=m"I5ϛBYCm1o3(V{@W!9`![P(2+Bg(́Pbr_hŧyN
0$Q%!4]Ax1 {}8u/c'K$e:'A"x|6b~!!hJ'=c>ݫ7}Pˊk|th!μ*/>0[{Y駓B0|㢮o}XC 56\MiO>^Ad0ci	 s0/(3omÙy-}h%C?E"ZEmnf gWTWQJ#/;WOO}!݀} B&LR"94+:)V>Kx\BlKO:},YVd9Qɘ'Qć̙鰥}6y=:Ou{)>Zb\J55lגb݋7xdˊܹ܆i7޷Hz{~=8q֞T9ɔ+[,qnFzi_W(QB\{:s\a28\GN]؊IĶK+,*iR&Ѭ;SneKsyܺ3d%Viz=+ל®ǥ+xG _}EX\ Ri`NHaGęcn8ShBuX>M9%>"IéAK$9*G\bO;D6qH4C>eL];HOf{0!QvI5}c\3O<e
_W X
މg~if2֍&}^*w!NK9r
#MDL٣R%UI(a,&S?	?يҭ7])J蕴Q,aYV_ryւmsȬwbgKnZ膂jhhiJ%JAR@)l5i*	gv'M,RTOM"Jx$z.{T|=qf]r2N)MtFsؠ1X7vy#,]6.ډE9v!6X7\jCģv:K\!"'ZUDl<
3
yV?ubwzSSHn`3cٱמ6;j6M55,}4NڊSP-Q,Tbhy^U}&Y__xOtfؠR}</cRl6|04ۦAJT(N"Db1	ἶ
& Ē	у4PQW$Ffejܙ¦5/S\%&HuЩNM6
n&R
aۑI:U6xQ'9VLĂEY<'Q<&dB1B~pHSC2g+hC"gADK$jr9BSi	%\`G?v-GNAմm	vdbycv@)5By@)`B@CE0ы H܍?$+p~; eHiVRJ9lTa%&5vM (%Qm;!j>g5 !tHhBZzya!@ٰ+n^xQ/{ia&IJsO夞QL!AOT6#jiـVT\ȖrcObSQ$6*fc+GUaWR= .{ KʬX0Ga|Ɵ9M'`Nul=Df7f(uvP?^.Nf:|7"}-S Q|p8(d׆PG6$Xjg)ȣäY#TDX$h2cޔ|ka˕M"4uE]Wu ]D?K6+l`A3V&Fnձv(vpx[nZpeVBERd2ʰCUiQvJrl"VjZ軐l4D>I'҈]` K:eXvHn;p44G37~6Mr3Ȅ~5Uq2b7Hqe03Go/-L9s@4Њ@u"}G
y3L7}Lʴo-j>kLvv)yLPFs	yXx6^,9;í(":Q|nBz.nJ,:a_|ԅz*T	D&zAm"HOά0 kq_d'&Z:pu1`81QT~918ۑ`r'^
ːbnwL֒
@V:_ޛ(/SOȾЫDUٱOT\U5dL0(<Z
(tSMpKXR\rGx\
½ꨯPw{t8bA7oFsiU/}uwPTWLz;fDƸI*~jYGUEVL=	CKXBB.q8
?W@&dt\[KA(7.@E5TZ'\wj	{'q5'mv5ƷVʧgF"GLY-0p!UEg?'W~}$1Fa:82Q]D~4'mr3R'X?u>FuMJ^4jp#pYVր)GvGÇ&[R52L1A+,L*Fr}+Hw+%e!8BV`O!RAhHa\ayAoK84N$_T(>(eM#:e:_R8hg/nHQ1gl)Gb%x;|g1qrLc+ HQ"]]=h(X~@؉Ii,(wu1hdYIjXh!NDpXgz{$|苭{¸fŅ\"Ј5]P)׍͵ML0k(aA\GMb-BsxRA> Su' t:D4I)_:IdD Ik@I@pkl@ȔwwD)mTr	7}7ͅ%5 y@yEEyGX6Vy7n4zqJ4bWdrz94!Fdyedx!]F En	lQV$GQ1|F~Vf#b1]*cR+׳\ TW|_!8(Wt?>3X-t<u^yoS:H^QD{'°S4qJkXweKE?iP""LҌ)4FAcب}bb16$
)&yt;,Vƞ9h^OPH%[)R㨟P5JdXYW'`@ <		T4gSԠAgiukhKSrFozm1a'+4+B%E0>q!$]0~8Jn'o=M?*38cS^HE![	iu.0`	 aWk*Z"``519Ls=zN*zY5$%b󆱑AVJBG;g+`B2j\ssPvyB E*t2p 1yP:dU(EV0`p<1
	kDNAg}cKÑˉ=
EL(ӓ$JQ!%8WQB9(4IҮX4 C7cCZ cyn£'b_CdpwY\)@ Q 
p pX@ a"Ufe*R fYVmɲu2Ywφ;Ki7CK1+xH7#HGӥWXxzaRi˟j[ *@Suݠ  [^ t[{31긪iW]Tp1ۍwZ$zPdhz
g*A%怭ҙ#4XˇC!CGk ixڄH@Lw'C(Y1ď:'0 TUՠ (q{[|Ս=kJ#{eT3Ex$%s+))%L!'fRKBV*D[2p8>3R[t۵3eFdLR p	
	?p.  GKPe(9991d34ˇwf%2=ձa26\ࣩt7oDȻcFclL9ǈp0O	@Q0S_ T_Rö@6;:kku:BEz
L|t1B{&ʄYa29HSdA8a˵v![{S,ǚˬjPk:!6#J\5ZĹ2C%9X%D~}ΕQtoxnc%EڙJ	D('.j  Qd u gh;|;;3m3*B+1	P?X#3?P2BKUQH:jky֍(ugܔJ('iŋYi  /@ x;pUJ	_q@i#BMú$\HШtmX)[ژcRR0|4   6hHHb+f!豈7̅U蚖a].    zTGDYvλؽ")Hԯ"#;	7$ID\B,mMwTw<y\3S1eN:DW^Y}(X'
p Ӡ TJPZk
U(7l5d6l߹<x%,]rh9u3A!MnTpi5Du~iѹ+j섪ݦV7pSܖ1 @vN0^0	蠥#T~T@1m	;ć"h41aX,>.;(B Hx Sh.D\NH$Ю&oy5mT}r1 @N 	'P0f ޓgPuXT=H+7ک:ށ
KB$W!G{0˓%sn9_c>}#ٔ'nu_SH,@ 
қ`	`P ːk){8IwPُ")R7̓7E3w=JА77IEb/8wS֍i|i|젩(VF%	I%q p.  腈Q9H<8)@{'h >}cBK";	3F	$_ǂ-oɔP[RȐBJ:9K7*9s.'0x̓:=.]*xUwu¬egVX.îU/-\U9V^}/w3Wbƀ.?F?8USuB7Ƈ1XɌ?[um㼙Oǽ7S؏F"<8>sQˇW4
[\93-QL757l9)
U+ղnէKi++,K.bP&16JB?\
DTvH gh,`u0/6cG8jHz$|}ԑ.F(ʐ*ɡ#<Rep%=95R¤yMyS
ЫkA l4P/1#1SOB,aFX*1 8lYSPH!-tK2`[RXȢ~Ji::uHD	<(\ae\尙s:#&GOC%,BѱBQjҺ*S?CX/jq$ \uj`X*aA1pD]566]fqaW#e(ܹnlH-;s!sb2OR(s%\:kɥҚW+~|L4wѲ+1Rs<o^̙-V ,@Ehbb^nu	We&؛kVfRY|,g+" IBnZ1+2MIż2d]BɺsNxtmT`ANAIߴ5K#wZ  bdi HN,sᕙ`V,$+	qeQ]i%KxQ#&(BIWD(ޙB)AWc^z$HozbZWj8^[6"%؛Uh>*W\	A><9p6
q$9f+B:Kє'	'Z	#Ĵ$dpko	#%kZ[IdR%tR	mbםC"nԳrAtҔFo+uK^ң @@ccI1a,2%:FWH1CT<<>z#꣏*i0;`N
2;#uFhdB2+>,*h3Rܔ(GEȖ- xQ.,x.j(`+?@$6ә5e.#eS9AZ閒	U 	Q|$o9{3a&筟$O	LbbÁgQI šp8wh]!uԯ];n{X@\Y  iҍ\}`jZsDtt:	Ac:=>L-nDJLTUJpaE.2(Ֆ L|[Z͂7*k| qME	,}lzTUX ?Ad;Zh!޿`V}\Y_t2 {ԪV8㑊:n:DuyC#!%
k
\r2kY"0lak^VzW/גWI6e"zLEjhfPa B=X!ju2fkv
!$e-sZ{3¸A2H';\	 XEA*n:JDScXեG&(YpC[W?&kJ#ќr;aS ./,"RFrb>K.\AICbXuOpse초}r$>$O+&&ȂP+h\5 z[s%};r[`]|䍼 e]wR8A V**@	 ?X @b3g7©f_8QZlkSoa*93h92h}d5\A6in=Z6<fy#NKZ'Vx#V_T <OV#КQj!N{#%:lxڤF) i:}\Bwoہ e`ؐGw,
ٓB6g_VaY2/x7+og}o_jZq/   r5R50ܱKDVb69il9£긙'I8s3)Q=&> .	 yp!(C[1M4:7 acs;5B"Ae2#m  f҄ePib،5?<g<!鸩s- b&>Jg	8l!0&=ªN2PAP1Dij; BD>BCSHZ~(81s)z5<2$jӋ?s,I@娏!a-#	B8s4v;1
p×KCXᚚBԧ8r	MJ(4Y"8#btą>;;WXS,?q\Xz vЀa!"9A!ʦ[4č	`37ԉS'0r-!
0K+pHuफ%*`yݩ|t5}>~G񪥁#EE8  @/Z4IH l H	S9OI0<lE!ב#*s-\
ri	GIA%l=L
;귗%ErăR,/,N +1(𫐆Q-$kCŒBcxgF ҼMmL3HIjLvL0!<'@L:N.+u	ӧePA$y*EQMMQ|$bęM#뾾ɑ #ܥzp  X L?gEd\?0&4̶jC0B
TC2--J	z;M̽8.ҺlIᾼO\S,HŢđfDp?Zb63`b&|atOR`Gc01"yO%K*Ջ+	*F e/mtT@GZxJTӮ%Ӿ͢hUOB/Կ#3
?#T	3 1KULQ?3	#5(ni:UpLR$qU+-ͤLCTRڳ]R`.T?fmVi[lj + o?{Nz6jꋑ@5IMGZNCtCs
1則u5XkT ;"PᖆTUXYc.ʃ!ֹi6Ez 
Qg:T[jW=7	3\7\y)7xMן°q (G.NpZZx^58_[+[ř>8([1B/0eEԼ=KKfѕ}$Ct&@#K-t"4 hL0S=:sĉ]J.XAB]}13
|0[]ٝݶ]19*B}5^%WFB U0ܞ\Kk|]@&ռ*v҃]AhJpڦ="~_}եzP;4aŹhZ5^)<l'x x=*vj*ub7ťÁ@+S2\	l=]Fc)ԗˋ_E@B-OA-`XCKbTBal^Yw"8
0>f=VD5D_{sryyXRMC!Q@^Sb[¼DE;[ʃ3 ̞p'(c<WQb(e`\u-UV\=bڛ`1586A ybNc>2eŸ%AdiCfOCE_ܸp-qn)^^ʆe$	v;xjvk
V\Dy~*sL+̉IA\ Vp
a6]=V(H\@\5+`Kk&3&\*̔firQ!cQhgi3z*P4]M8vգDY=	9fdMDaV_hjJlf(k6r:{xԸN*F-
Vzu-ťs3l!mWZuZ	T70s)!Kiy1.?PN}I	'dk3`,^&6Uo-e Z6XL{kjTezT;l2G"G!fv#Lb[8d_08`ɤ\iJ8t .!-6ά#hFBpнn噏E nHGf6q)[Vq]cޥ%vmq.l3k+n=Һ'-=kj3
 rx/g%0jUiߵ O9dujt;?~d9@dj 6n+,pwb'&pt+'_:x-~2;8Gq$2_4d>mudؤss2K`8w[?+h="#CsvkTYH_=BKMWnR=_{ӋqeU/Wq^}|hbM6+je?md'QnJ6U~t~pbt3V
 ?w5%8T_W(
w+kVJo_?ŘC}%3@boxfUf6Ǔ!QS^n-k缣`p!Н,{Ǵgl.'W,=9lE#fu./aO|^;OTmob?%/r2|pd[zHC2&nIpϚ8ΔUq/5ϟ?}!Lp !y)6ѡBs6nTO#H";R"B)s&͚6vc_77*t(Ѣv4ZіN&DjNbͪuVv^UO}}VYhUhۓm͝Oo]c+R^x>bJdS2&+sJ4m.ac[U$ǽ,KXvȄqN7QJ#ўɟC.}:ͤs4^fr\eG<{Y
	fNAc]هPdKlKd`g,J"OCGo'Ruv'Y]?	ݍ?J\u:L]WVxOf5^Z-6_bSז:XZ`1ƥyyXO؁=Pd}FRy9,QPjJ՚>C#(܊	#n8#<>SK0ZfjqOLEiAYz}jVL_U_ɵ_`ŬoyD-E9UX2ig(`eLv	e?	bFRXhii<u)A14HLc%ܰ@Q%vk<:+x<;ؖUqLڬvE`mqI>5WtUےknkVhՊ̞¹obK?)/o Y=p3j$R)W<HUPsqMAVZ|V\qW<>lxEd{nd-*g~Z8hfU(XoJ_"^koCim/
npssӝ~wVBfi|dfʈ,n_1uO	]N.K,S=9!LȢvB(YXQ(Kݬ^Èh7NTٹNVʂ`ٚb)4qw8dy%=:d{OhNZUʋS$juj_>	g\!0D	C $ցD82 H6;n5qf#IIJbԸ31AAMm@1U=iYZ6<y)"ѡ~U.["?G4!\X.{8>(^q(pU}HT,8QUi0	&Gc}H\!dإՐe37gլf@%>yt2'93,$]N pi \t퀸Z<J#^`Ɠ(ss̢eXHbr%M{[X)2|16+".>\v9E[b8g.x~,%W NI.Eh1J4BEK)SDщ5KQ($xR'tX >*t94F1;M
؄\TV5Dg @eibdv]<UlkKآMQc(ȭ4<^kt3ePC^.Mi^!CK2>懌ecbY$ìJy}}B$Yj
6̷Q׶[HGv&\ZutX	؁hEtKc0{;}vWb#>Ԯ"e++"c3L]B&1*D)/`](EIu#܊OgyCޓed̺`Z=*鵯!Ξ"[-ˆe橢;U>+bĻg%^5E\",[b)r 6fcwi+#%rsh`/KVLZ3#s{"1jbIgIq[[O|>l EW/y-0EGoAbI
44h#Pc̣m2W%bDG*d>:H7K:-cL.bknjBcϽo;ƙB	(ǻl⸽$Na*&=s;l0;J9!i=?DYOWJWkjz'4WʥRTE>bi6Vˈvwvr3uO_.yHQ'{g#JеFf89ede"b1z9[p-y7!O#DDe'h5{[ՑktߞERqՂ#{tKLߤ. >å#@gt4p9S>OvP,t>ڦ{\!n2XR䜔uSȍ`v` Ǧ)W B8`A|Lӡu6SNɇMU	[u91A,C,]	
PŘFC= mЃWE!4O =2j
~
9^0R؈i^ա_Qyf!R빞ȭZi-ϵɛ">:OT Wr` ŉb4r	Ei]P!y]2JFXh:o|[➶E!O%.#uH!EPHD}&kH
aeƠ!Ar`UAV0~s0	JcLḘ[3"_LH5L<&NW$N"Q9:\:V
ci&TgqB /ن(ݻO/UZAdS5d2^2P<`C~O%5r#1xG}J**A\fVE>]Kl,#`p0`%OT"VSBf0UTZEoe%ahe&fV9WZ":\dKj^@:{OJcEpa\} z\d"'Fp>%t\&]	py%%u̚aicb]*JLk%AOi
Ċ#?%ƑV-%F!#*a dr
~֑RZsLVd&~\ imGbOIFMx].zR;f%3f5P䔨`~[bqNcGs4&\I'Wd.r	Lby	Fluh[~]b
:۳l%xHFz1V[NϤh՛"ґ( N$P<g=Iu̅و=JeE`uZ2֕٩&<bzfi`jy9[xi&.c`* P^LVi3  V&m.I29Yz QNzh;A`>{+ȓch۔̎NPƩJ2)dE^)bʯR#unegFv!$'uC$?iJFMҧNh26b~-ǼU+杽aȚS	eVh`gv!JahTn**zÊb*D:+*g0iT,OʪF,3}:LDb+56hFr[,9m`|ЦѮW]]K^Jj\Uh!.YRUb (Grkт-&)]䬱HbN^Z]ޥ4,i,tti +<Ԗ`">n"	in"Xhb%۞"RGVwf>-8ĞBy~,nvŹ-1.*1B.X9"2=os_Fo¬診QmBx $bR`g#'NW&^*K)^L&BDN S.u2%14*J2a|%zLڬofKڡ>Ӡv?`BԎJ6BThĞȠXu3pReR2l͂G>^ńJh{pf|q#-eXq.5\㥰 Wΰ󦱹۪*$#^͋&e^:"C
#=/OQi(m$}ݱ)3d6OqdYRq_\G $"c!24, sX6U%K3_z@6%INc+4hH\X0Non[..¯9lep1߳?Т
^qBJrǹPjEC`S(r`8ktVS:Z!|2t.FJ4Z]=j\pbrLL_v33Q*Qe݄etqtWZ"<+<7ĢK[= B`?%qd_O_'Gc6JdP^lsi[BO$6GG4aW	g"'W0f -pĎ/My5"4hG󧠕Q~Dm7kp1BL1>ϡV;6<b+}o@o
E'vD%C1xsP)P{FMm#VG|d|4dcF>JYcޣ?8KHsh[TNxQe.s5;8,w3tuoM\8GH'v{ࢤ
Lïe$/7+&?cA'/uۗ6.b9(3Dv4Ena6T	ds0L/?\j}*ʙbua%9D?L*J+ec?p񹾱CV{폙ҡg/c6z+3YID91j{:̩z5{Y2VGTtݦIH5xY/wTݘt_CY-핱Eʹ20y'-3اGxͅP9]@MzC=7{~|?oMtg:n{3rz1{+.7|s;t/^Z<*oɵ<%aE|proY9[uUjpsgwAwe7/3#Oj9+p#ӭ߼ O|ŧFrۧ5Kn+}ȷc`k2CB;V}D=(5~jrY-~O.t<Iě }gCCd-w狼E,P\҂?~ʧy>{R~(Os0/>ښ=!q+?;Y7NQŚ-,$@`&TX1Z4cG9Z俑%QMɔ/aƔ9̐5?ĹD]7GG&EQ>^U|Ê*ԭJ+vZJ[(B}+KKnX=lUaǅ$+vIq1ʠ6md˗1|b͙%4V>vM3ЉbէukWuݖ
\-۾p"^Wpa#"#ˊ%<><xշ_sKi{TԡMy5u:ʠzM-9Y%+9RBJΐŬ۪6t%&ӈ<ϤcQq\D{É!3- 4*.GAP°R)&P¹Ya'/Z#DJ)(NwԮ;3?@	QEt&"m4ԭR`#(J909OAð$Hބ%s>Eu,ŚZVX %shPD;FCQ # 1tLMR.&6S,<nܹsŊC̓|i&U:C{-헽d[Y	x֚$+K)pPKR]vќULbSWx<:kfDVoOG=gu>,Nmh7!8ێJ\8
)uQN.UqănYY>-cʌZ׾{	ȆGIsim'7NLwYC2UR1n<"a3Dy[i?@[S\y~Rm.\a+l&4Ωo93=UX	9mlvkI`DZ:on^%h55x%2gA.3DY zǒ6U*UrSB3Eۉn4>|"IPBم`HBA~!a+2s\	?ƍo+T@󓡩]S36.rC5RED4DF9EMgaD4/mfu>!x3P_;Y0^ A_QpKwls:wL}FJi>,XQddHY(I*E4!&#ʱ c页mO|dG6ZF,!gMm6慦&g1҄pL	s4șǸEn6P+bFLb@HYRj_AIDӍ#G2xbӑ8]8[5Ik;R2;':PM!(%Qv#B}T"EQ%f>-K)SnaiMx-UPӃͥd6obTGD}$,#oYPL3x:nԳZhAOjKswNluNH6*B}yIrkn?ᑫk+	5\6#i=2ّhcq0dQ7>4f8$^sHz4 u83_uWZzіnR	0Du}DX!UYR19D Ўf@=+Ip֭W'Eߌn]Sw=ͥ-=ψGq9јL
HAfԑ&_H%#	R$x]]LohY=0AU"n u!Z D  6'vqfVN`j7 3@G.H8v xrK+XC 7@=h+U	pF$լӱS)92U,tvN3y51 p9Ie}iM/H66Y7 E6\ZJ7v	X	lAj! $)"O+23z0xQlvCfe.o~ ,fͬۯ	=Љ: `u |,0Qinޗ7QX>uP+`hMӭPႾbNwL\' Pn#)nIIqkGu6ݭ=RW捹pAt?%Io,p5A#Pc`H Lǿ[D&{덧{z]fzA<15O<~yCD;$exJq/Y^}_ʥ]<( (	K1Cn+|G!
ghk'.ʇORհ_?yzq7Fgk# @ 2Z# a@>J0Ln\HWX< `:Þ.mJaԂb:hP0jgPe%dt/
2Ff'X#aLhCȪPP@nYmI&G !L"mXT6t;eGٜ
	);<"p=!8 ꏟpb+0R DrF)q1a01	W)}Hhe"K3~anG	S/
,N"
|!KкlLj&ƌO(1av!Jlf`cvXO"$@Vɱ1#kUB1/Q$I0oj3@13QĀ0΀{1iB#5r(WGRC \  <.!3R"  LҐ\(?'h/o2!A4!,&pDr(1r3͟z˱dY$: \5 J4  Vgm22z" !D ^LjI(A9D>MR3WN0=j;;3`
8@.4tAa" `P aqвڲ|%.s._$1q10q4S"`2!ܖ x3a P"3! *=4asDE,0m%9Q*4ٯ$kb7N6K ܡt' !F[Cu!H#
|&%l$IIfaI}vRTǸ;0#,h43!&t`Gqla3 Ϣ`\Hr':OƟ喲@UoTKcb%	r2R02A΀
,)h4SsOYOMeTϪ*EUFFA4a ` n3Bu"A >j41R)O5Z}*;`i_VNr|8`X-(!?3 n5`l2+'M@u_(ub;:7& NCF@˺h A!_5<p%4;9cbnLKc@Mqb a!b(Y[	O7vh=U-/ߒp1jMf-j%1b2 . $39p?6me#kPSDA<~+[c<VܚB1o"(*1mIUЛʬ#SU#)CFQ b=@  @#Ra"	B3@qP`ugn;vSj#!#2(	S " 
~`pw{KcY?i-
JraA>Tfw|{s4Wx'a0W6_W& V<<ƴĵ~ 3sC_ؖ3{'"E$O/I1UoVRK%X at2IcAXZi,d6]
uEExx;BtWKL7EOds-r؉WxcoF)QOP   ^<!w'a\q  NݡRfkø/@Z3w|5V{B=a4&: qD,vXg|Qv}e/	$/dUt`4x"	Yb>Z=B]݇EL^tVq{  4o3c%o7< z(iUJ)UTNM'  kgsЁn35 &&``h }9wBl"z ?䠠٣W>p"-?ڈ5z'W_k9<h|wq
L  r=73A 4AtilM4y:W=T}
x1a,u fy"VĖуeL[GhZϷyEI	FQrS}j z	p;[uMaKic˞O4L3!!"^7v4촍n`9'1tGv;T\%bz_41{-5HN;K- dp#F))ԴHVHx `Ӯ2 ^t,AJ:aC@ vxz-$}A\c)hH'C@f{2!j#Wiȃ|_md|P113CzG'K#BA\x A
<ȣM;|T@O8gYroa^k< N ϬJzrOӕ4Ky= "ax=M*A}ؕMM|͵ߦKU'*Fܡ ``6a-8t@ƱYμ؉;7=|1A04A# >9%xUY>iƘ&:F .!
C繼G*-`ɺ垻a2Nό7>ș.|=_}i
Aۃ|` l]N^>x:5Mo  ̕}+ՓC	Hl!;I(
b=ZY0d	̡5Gv3Ba|g~4^A{n~o7G` ׭^ri(_sa,} zQA(}n޵1l>sŘ?bv@>aBaŚtF_R/s_I]Ψ!e&}C߰K:~f
_"γu?Ou$< o 4:t(qE_Awŏ CIRdUL˗0cʜI͛8s)eL!ħr$ēB
|Iiҗ_-foΫXIʵׯ`ÊKAe2e9[MsCYNYhL̿o"yT.[8!TX}3'RϠCTc.,y-sͻo*W~tXtXسfh}gZuN/.]ˮnZ)%/`h7&(Y!i}Tx{]7(8?j X1Fxu^ŏ6h4hcB蕊|trY  P 0̍EPfwVemdI'ٔx4L39D^`\u^\i&F;bNs)矀6u($`jӠF*iVq%3駠Jܥ]*A\#OjweҔFu5*bk6Q`C*GmNQ=54
X}AUg]dnfIKF	cF^[j*{ekkTO(ᴚ'0Vj?n 9hhgЩYz܄Ws C\R(/XӺ,̬hܾ]l7WEN{,˙>L4v_em6#MגG3OUJϻ[`if[qj\%6ހmbȖGV7~nVoX-<;tg[t;Ms䚗!
'V@y/m .f~sR/oE=7ϰd55<   z;t2^t_Z>` 
!00ӄ#;a>4^[@}5pE|51SM0X˺mԽL(kG!}В
Wx
,!gHC/-2\jj>g,D!Q*R.~2!m8*zNVJ ř=1ɉf!4qAk"HG!)g*ƀ>q#eJQ!"k@.r}{'I:Nz!&G.qnt'8PU,)Ud,YO-]*˗rT.yaSc<I`frr ! K   ,
  u    7+/>*:
.48-;<< Y m u:X 4l'[*r,3Z+7u8T?Bp9GV2Mn=mvS	P0X3
R21gnf2{-v23SPQ6WR)pfAr)R|)`XTY@1rLpP2KLLFZrLs^ImnlTA~KwdiYloo " ' 9 < ;.+J	Wbg0V,P6m!t:u"{R7PFS_KnOwpLp}D|c[g`kXve|e/2Htr~yHScigovxyy-556FFXH[\7bf5]^'cqe d9r q8f"t"u;ONNcpLkrxRfb4ZpuF[G\]]lvlwǏ5ǒIĒ]ОJЙ_ęjӥVȦw͵{ةc֩t۶g۶yvv͌т̓ݑɑ՝ۂ͗čƣ샤ȘѬ풷ٔǧڶʹֺɽӥѴ˺俍ʻɖҸϔ̨Ϲ٧ֶϣ٧۵ 	H*\ȰÇ#JHŋ3joǏ CIɓ(S\ɲ˗;ʄI͛8sɳϟ;JѣH*]JPLJJիXjʵׯ`ÊKٳh:]۷pʥuݻx->fݾ+0ɵN+^</ǐ#Kxe2_̹ϠC.Xy4clM^ݲ4װc&=۰ڸs+JXľ7{xƓ.<-pͣǾ-Iyc7K}ݿW^AO2O/׿/ r_Cs&V*FV|va$D3ۉ*THA4b5@,֨C(ceD&ލF9!-
	Z%%\vyG[r^YRTflbsknI>S mfyZwyKg|hOIzҡ8HgL?yD*H));Ƒ@1X|:)%ZCNJ=;บ:3	]FuS`@lXmk̦@G 
{
*tĦ(iSdd=B.!o7^$oJ,j[OX	Yxl*'W?-g;s)C8Փ@mDqͿCg`Mo$+h #FDFZj-5YK@+^Wh$?هb'"*=x5wD߿wO?.dL8JHBQ=@ۨs2w(TIjvzt"æTk5｟EjA0$^.9L%C/dd;ܯ\WM YLH@ޓ55s?Z#:\A  v́p4~M"ҋ ధA(u":aQ}Y.UvP]c@bG!1Tk`CEBQ,<c_VKH)!Z!yG;d8F1Fbt𐨥\J7Ǧ*]Ul#K9ґ7$D3PC\%\a p{!"H*2D$-ZFٹ+Ƀq2)+R\e"m)!2xYCar0RkdIK0vyA!s7BDT3Tf-%X*rgjTg<9psL<M2ԝHtaS(wɎzTDC	QPc
FIrehCQʑv)C8g\R3S6QԱ 4b!0О+LAzМrI(G/O&+%W<`-M͸u WRr{G"ρMkJRְWjWa$bA"s%M+VɆ5k#mdT ¸	YkH'KZUGG÷/j-pMKV5l:"̂#Е?<zyJMuK]ƶ}/n+*6hNk+l]
W׭oѮCC P0TϖQosM@FJ邅6] =r%C}nB:񈑪].S0x@X+@kLxE0\Z6=JU^9^m)
c|W{:9,'4=zP}}L3nfe<0"YKpg$+8JW1V  	 Fs3Uπ4:$zMȟ2=dnŒWWu	lNubRTgEmcNd;hL,1..	7V]nY,qCMgć7ZN1yq;qI) r`Fhb%%|W\̖omXdp(=9tʌ5ҤP/o6o,ĖXμܭ"2<C9)s=Ncc!s!=Lñ疾Nw7$ˊB	X;zռ.zu=.yj{0Q<,s}>z+홻 gσs~pdx˸W/~ߘ5#;YEyopҰ(5^k^|c]؊8>H*zaY~n:HSw~YrSzpw7{7q}swmtt v-^IgTGzwu`}yx~l'"%ƄmF_V(zhly/~(~1Sl+Ą胸gw(`"{Ix~ %~чmGXGg#XQ gV&5L]~uyg{nxWtXõx$H9R:HjXȃh)h"S"%$whuk/%tJFhWVǆShw(.Y8$t"zqF~~''ȉ1y'}z#QXh8(&^8e}:1Ҏك;hsb8
iX~(`]]5Ae,|T88y 0#xIP yF)	pvy	1ɑF?d9YS)~T^%荳=i^*erg9UY̥`96\x[=W297M D	XvUxїgxюoyZYiXibPv`A(ٕ9a-i32Q9y9	X	*0u&` USYWي9lbJ$ƹ =aіiAV
:%THzQM0*٠췠LҐYKѡ&Gxyr3*Ǚ,J	8Q4rQA5Z
1
:Q<C)Fꢹ)ZT B+^Qzڥ8SWw1zyr	AazHJS4TJ:o*I!Z*%xJ^p1TOќߡjJTWq٩ 	**8Q2RA:NHȚf'|
	:^F/@yEmqGE蚬i99j0JpťA&ilZZZnUrYƘ	,I孋7oPo	KR>7z'+AТ)J2 ZK?;QJ%*Ȭ¹}ɢ:j1d\O[C+u!KJLjh:G UP
í/!`+ozKg+ڲ~Jɗ5:T<6n˞ƚP)Yq;"}~`A|).I7|YKKK$;u{;[ɮ	~`˒7ׯN0Q9E[jl+,*Qyrj:+櫶[f,SKkГ{ԇ;qaH]7
gٮ	2ͻ+y%B0L +;<SkHź*Kk۾:%Ăq&
R7<9L&Nز"LKKl:8D7(kz	H	lٻ{[Cq:\\-龳ے-l3 u'_{H	fKk],x#ٴ,:+`=+<? REc롾̽kp+&Ȏ;,.994¬%a!x
P~pa<ȩ̦ARΐ{^ό,5u;(|,|ۖۗ"`~NNL!kęZC,<W1= pŷ2=\<>Q!MX	pȱl쥑<w)1|ǢPku7Bm; ʸ ʩKڼxC%-,!
\}}@Ph3kƎ̗Wkt"0v] }LZ\~kRL ӏ,:*lM[GϢS՟ڟ]]d=eщM3<ڜ*q}Pb	R	KR
Z]-N}{bs-}ڝ{jJ\ ZMi,햼ٞ=3]}̗]Sd=VC,:JR\0Ō]mG9(qabk,$Χ-M$ԅG

UdA!-	R0
oL_+(sŋb̨mNղ`l-,܄9b2l\~=0Q-b<w~ҜEzP.A]nYRTX<
虀JdTd==@r~"On
1$R2f؁dΡh>BA̍|I
ͦKZ) o̞^~ʍNd~a:^-O񥾫Z=
qnG
	qÜ^KA:;ǵ4|)N,R'bQ<)J[=}Sѩk(OJ(lD*s}&Dog	1/nkcB=O],ol\pҚLwLc|2>?AՂO̰D+}<^={y6I,`Nq7R]f)iOMZnN 

`@35,pOۿnnߥw~ l|	#XA<XP`C#+HE5nx`ƎE$YI)UNqK9H3{k̺Y짱q7cڴ)ɇ-fY%ȘYOb
jŮ.GI92tXFwB?H_2`:EgΝ|nQE%%Xt5ei0b\KqnL#Aފ-HDKLHx/zYFsBת5hvaBojMS,_"k!7DS-⧷ͮ
;9*0B0ԈJ®n*fn'**qRo=8O:
EÑ웈YhAns6f#qK0DNH15)xLNM3K4ɼQ<<h;)p:̔|/?ԪMʄKRЩSPCkIU4&*D_&gX!S=;r9O+r4QI2tB>HQy !tHnӾawVIךH(m|q٦w̌qs/g SܭHQ?-(@ao!4:n.%DdJt	EW-x_q|n=zqO4@a~̒r6Rd+k&Hk	y8O&WP-l 4^Wiܙfջ
؏J>:i	Z$}(R,682(-2CN|b]j[;)ve*(6fppGoy'͡PiO|@?P7ڬ^vZ:!#⧛,Ţ7tK?SW]|zo3wwv|XF(\^2-!Z=%dI#[Li{ŸfP*i($nׁJ"~;<zB447L(C
QB4c`m$9`ަ'/kEq/߈vda9S#@oIX_v1~,	~f@ ?эn]#S,^xIL*}Ia:\&?wFtȧ.J8dyQ]DH1&-ܓD6e[$V>ʄd5Gq%4ZC|6W8@<hJ+(<@%rI=-k)1^< 9&l195B20
U:# ';ݥ5j\?.Ǉ)_,dnIeV;&>"I*bCIԇ"p$a>J."r	96JNl~>FZ	#50=>ȥ}	q3ˍâԱt	g,jIQUF2ĩI(Qc6ǼdNΫ0GҬb}D()"fPD%LLMQ?05Vbn^NDqdseQpq;H鄑gj	[kq݊SBG")AjBp4,*)9\UIMOG+oYwG3{8B6UWTmؖ&~B05.KS_rEX!ڈ./A'h>r'qTO=EDO+|ܳlǬ-"Yo{SC=ĸ@!p(TE_ɯp2!qÆ<{f!qR<
gԪMia@zß{r̫1da	ծ-q2`'peeftN
\G:nd9=ۮ8ee0R0GtXxXgCoѬ@s6mHud)\ζ]]H{䈡߮mx1U@67$-I gy[G	~8=]zu\iy}}>y)e%IG."~oYT>dK0!&0yrYB)y56\`}gK9|D.䧖1.G\ꨬG!-HK]:I#?71wmr7h?DfΆt@pCS&[>!iAxr:|9vlh#L+C@fb<r~@ ;D?~u]ޡWzOXLMt(jx+	mm(@| lh~o4,y_ۏ;QC*?!#&fU*r8K"?k(c+C,Xs!fS]tS{>8L,~#*bbMU[b*5گ݊Bq?K`&AA?i.Ї^ІI:SL@]	S(.383M`8kB;îQ?&j?# M'Zr;{þ(, -aam:.=At yi')	#LSEd*5LFӫS$yS1QigW{	g3":V0y*[	TQW&@@,_,"8bTVk܊|Cj&NIF)H#RkAU;X,7"Js8\,	Ќ{ġ	7!q2rZ~󍴪@,(B8|ȉD&5fsSSAJ+\?tk4mq}X9ƣt!荥ć#>)H 1=˫<:̄CT(?Ls uw֌JcG=J|1A;bʹ a9,JT%ȜlLLΜ	 $lA7EلKXM
.zl`XQj	NLL"N|N9t "7$EꄛwN ԈH~ysR%漘KP@ԭ\N*9Fѷ]L,0F4aQMcPPQ.`Jî8rx<]D(eOxSS2kZT&%"@Nër"J"MD`<)e=meKV	:Oӝa`IQ1Qd>^z= 5C:	[P#LJGdL
%c}ԇrĈx?/2ϹױɏKB`3Y:hV}  [BSZ*s;QUټJ#Ԕ`a%#@,zU;9CNW4ʇrP&pX(-#9ũwm11MW!UI*NZEBemDhpI}*GT?MPr"zhv7Ŕ-k[]-AKsұ	RՈt2X@i=P˪1iR2F9Sdķ|=mY[jC׸=ܽGٿPR[ERm$X?c1ӑ/{3φuMM䒈SMvj$u[={]m]C %)mTu)@ҼT[/RZVsʗz^	Վ4݌P,h-ͽU vKI_WC*׍_[4Xe%Z|#_ޕP|VWÈר
x4	Z1%IuȈsAHzNa4uUL=̨h_a<f+uGs*0J!ۈ؇N}`˕*lD(!=\ċ2ar=ǥЮAb10#=ʅ&Ya:~<唉PL?&PdO6~)MF48`B]ڜ'kX'l6;&K&`E9h!NVx_"W&Nrd";]qepƐQafum̥P\-JU1\Ʃ S<2e⠈q~55t΢c㧔cїz>iQiD`_>\هo6@ЇpVڠVdyލw]ofC]DZYvᚢY,wK_c
	F{>.?`qHp6L&>h/mZec% Sɑaea򭩒d/fjʾI妰ZD+ݽ4*;Z>ЇN1+7$:\N3XaueA)lP^`p%F"3)UCvkKd}rݦ=yXM~km,~6I&
ZSpt_CP̜n)fGrhb,Saa!v[(s#C\Y(ꢆW37- p$}>ZD3h}؇ /CDD8^ZgXOp<"?ܹec&_1Jdyn\!^oX;U)i+ȬMh槔_Ri={L4LRjM7Ep6Ìmn.es^Hؑtd/|NB<d9>+D~EϼF30B
&&umۺ@68O2nrxX!w[;y'!	vx@nrHy>jt4em_NMEN >Ubq=.~vk!/`o"Mx/vf^QJ4vgpdUy[vjǤ3CKu2
5~n([m-tgd{)
\eϸfV5=%y6f7#z/xlt;Mz@W|J ޅA3y{0vH2y{TqgN+G>q~
snBW6sɮX66ٝ_CRQKtǀW$SѮe͵'|N
f9}p]HVvg2|p|_@		,X
2l0_>%BhČ2r옑ǂ+JX!Cʜ)P&>yl(?2L'P~
,zDJ%?kOנʬڙ{5"ŚP/.lX"La"l,ǇW1d'Vƈ?}ė_(u3֪g5H;ݞ$*	Zw݂*3Ӳp'pre_ob;L<P2dɑƼ7d{Χ9Ʒo`jyk>d]XZIG)X]BԹyD>k\IYp?ē]ځ'eC(O9#;Pb
*aT}D$UTWBQJ$SJTW*t݁RLU5dx GCiN@u\pu#Tu7cm͕?8([z^s$E=B^68A@&tIẄ́OvɅ]t,9ǱڗҘ\xۡ*,m&XyuvY
յL7QId~*EmKmjktP:$aQfpw.M:%?TcWN8z60'dNKLg_B@7JA/eI{vTyu0NVKQĜԊ߄#PLoaځJ-'_	K5]Kqa$6aw㐣iRjm{</Ǥ5W]@
5TD^+6@>O;1> ߗ{9wuD٣gʛNIswKTk<v%B9uT8LSY91n[{>=o1xkr`q-G^ܝ㶂F	uL+9AoTzuC~deI:4,UZ]^H'	RP"xA!4!6a 9_:^wX	g#m&i']bc֕@ g+|rDo0 (AhV,}D7|%_DG/P5EpndOo,0qPb8NnpGQb(ECpӣ".hEʹdȱ#}"#JVX>Fa9_s?98{\"YWS,Nn*g9$Z-Fi#ȋHɜ%5nɓ-PYBRRLKb G?|qta-o|Y?bsGh:\?H (Ӡիf.nl{dL3JPeFr	riX<0w4QĨw;	@1ǢCVnB]^Nzh9&Q:ci12$ȸ:lr$	-̜46Fz**$[y+ B?40MCʜ/礚|`kcÿSALC*YkNS{TEI*>o~mR=Gz֚6hK<d),M8Dn|1(LXiH%%q1¹&1?bR:$"U=Tjd'K(K5O?ˑJZjb"΀Vޔ۹@E8vpӼ,g uwcQZd1gs"P@Ym,>Ry*LN=Ϫآ:,BvBҮ$LGUYGm[YtTA0u4o
vc^c<+MQruw?h&Mt"ք`.	Ya,4IO\u=nVQ؅lغEutT6c! WRkhX`y0><&֚5/~bL):u\,?PG&f=b9;wؠ(I"\|҇>q5}gL_K;PtLy[MViNhbYE_ad#Ue9}[Qj-{r%LKk]Zwl7 ]-qH+GjNU'F!qvN$Z[Y@_q.*I
ox:eN\GsRy];vA̤'ԃ$AcI|"eTBh 0r#qMM0	N uDhǔeW`X1t|w&ٓ9ٹ'fIQRq:̐ףb7ˉD"1=Ѐ!c\),!TÀE57sZ/&BnZC#q%@r[hz!KB viTjGnB"Yax=LU!A)E]_P Ȁ˴|׶نT} p8hSBQ]yD՜[qmh-ޛ_-B_Ξe}OLyZؙ߽͝$NAqxIGE<=0P*KCu.F5!%\3VglH&$>tF~JD֢)YH]ΌltS=b-SalrKuFdRqFX؀(tW|""<9NWKNSDq8+D!"-ͽyڼ/c>#cx83R^Vph~`?`JB6>K9DEbv~e]|N$Z_FGШHr*?BL$MFMflC^JMimcFzE<H<ԍ>L-!L^I1Xَ8JV֤YZONJKBSadFUJq](u"CEޗ^:ZX[\=e9T]m1ӔeG ƛ	XYfvexp<9gPh6%ũQ@tme޻ 9#%cj&rrgr^DTy֧ANY<u#5V&@rȖ,*PROl%}>SsFMf.EP]NjBE%NMlg<Q0"(-HlVdN$0&}'pAyUUt:pĐM%V)ߎZajqK%c)>M>!zmȣ뉥`"(RVHF`fE
>IUɥ G]B!-(n|a)l y%E`6HIT|jFӭHTu&bt`C:皆ʹ蛮aJdI_Q`b 1od<\gL!e*ГXNk|)6i%j]jYK`fx]Q}G)!MةY{aV
૒łlqL(>* "+BF$bWVGg@ L|@SjF
_JOl_:i! q$lLkF,jEG~<fĴ^K\Rg9g:JWJ]'
(l	*)@
϶][Gc̫tl+E@lLr"$L"d},GAM(SЏ]k:"mOU"iޫuh"W+Kc)w9a#.f(,ElЦb(j芊m8}E9fGIX:m]}]rGnMXzcu]cT'i'b.^-h~T!F$:flb8݄Xj8=u
md*C"4Ӭ4!P{ZW}.ym@3"Mo-!vs܆Mr!`oweLSqDD+|D.fIh!Âd)>XcګÔ`W&v=;Q% u!SR-|鈎]^:PZ:jj(TZlMBV+ Rň1gqRNbYb1"Bc'IY2Z)q[ofgȨEnDcq	N*^
!ChaئAi"jc7t3B%w])q*3&Kd͑ʨYFPivL q*⣗|ﲫ$V6;{@xC+3+'!!._:s3rmr><sv(D?M.6RɯO`4Gnn.n"lmHeFid Z*AS<z01q2r(%6
_aAcdpNsTf] E2nkq<B58xPuf;tXVYcK=K_&F_mj"d13di@i p d469[s2j1_^.lVꭜ iSvC) 38OK!P0-Oq27\#Vv":CA fuK]=ku^^4OpOJ1"U6[6>]Ν6#IVC#}QB~r!-:j	x _
^6mHDU"OhԋЄ^ _8Pav*7mO-3m>C:^ĸĩc(u&YqNB7^WuTn8, ;
wԬ8'y04m%K:8<LDm_e񭲏!~xcbkspY]:i-5epJң8XA^0dÞ?0 vz:Ib93z+sk'_6`ISڲMZ^
,F܀
̨֑g&z;Uf޷:Ďn<35X霿{+v+װsDyDЧQi[|Qmd`Bm:+YEe6XIzZo>P.+)Do
Og3CD}As
Q:qCM6`!"<7Đ;O>bgO$S}.tscxd,»y}}H1
?<gD:<i9N{J+Op{OQïzc=;[/^vDG#&E%']sV_F~h9~$GI^~!pLĿx?6DaAN0!ƈ9v菟E#I4yeJ+Y\$>avyM.ǓOx4zOJQ>QN(>>K5O|-3؞26ħ>+7'ď"2A@>+b=$qa|+xy.Gə9wt0kHcxqr|l۪dJ˒qvD}oǊk=/-ן\-ƽkE̚ :g/ƃ7^8s|KB<e}~Uhrr^+ɨd:0iz8}˰8ªͷJK&;.ki"`9&hy($[O2:"ܓ>"WRr&|IRkm*sk'sk(A2%0StԑJjܒk8LDHݜ,b+8!|. Uj! +F[H!Ѱ$H<&D2GPE/ JSQu(Qm̥JL!˫ʡ*kN4tb+67W-M 'cy0"!ZQ]]P;@Nmݍbh6eiŗk}~j*0I+?Op*_#_J	S ;q>zIMS"H~eJgXrx}s,_]2'0sQ24N^B.}2,^-Yd0θ!?`tbF#ɟ{Bt!o%잊-]p|oA\>qg*Ww^hJ7;JgtZjdjXݚÐĤzu3&RS&|ܫ"ŭovHGf_'~Vg*J!g5rա?{aA|ݠ-Ϭ{U뫃#;]z-ei
2Ke#n	~qB;=|3gb<(3ɒz@*u>䠘gb=lK{U>ߐ}{4uE*zO¢x![`']3E&:O&pi[I7BPTRzLF7҄h$WB7k
TRX7/^"r!d*>x}elGM6BaS@ȏC|NU!LpZ:A3Y^	;% ɒ+X0_#1U5ĥ}_aRZ9S;fDGP\c҅Pnft3%TTH1zd'B}>'% YgIMQ1
_-+$xLn;T$L㓂 ʌ %foRcNRwg;)W3|qU>Ec@-5T,udrI8ZO民!C˫(+]*O8?ZJ<bӭ"mZTdB2@组Zث&)kf4}EXܬiEMJu2[D
K~g%R;:RZJS+^CUO Tp4p/:UQ2,Hs_M	e&bݓ*N^٥0Uf(k}<Vpt?*MVQ^S6(r=Ojn1C+&-Wʡ"}lL)JT	2[S$眑F$NԶ,ʭL <ŜMUr=˹,tpHě)F/bAZBaP27iV4rER37	u&qTŚbRy8tHYln52@B9ydƺ[K.ɮLF6@!,6/2q@Z
M5f/oFk_˳HsM˷+vbPEQ[ JNbER(<ZUj*	j{q<A.2k;$_ք]hK!"kZBfe<,:sݸ;뉶ax]9=JQmnc	sQ9Sq$8ܰWo$S]d~ 6lx.5lwE t,{ۦsv*Bvn+%(E!s(څJ9ryt!$g(_nf	RE	>~]ќ=lwcoc5j回_#~/,-Fh(,sy3Yw2S4ZZpe7lb]ELjG:פHYt,FweOqW)( a6-rdzA.PbLvʆ)$㼫#NIV&pC6	h4g$h fzr(1P,O@h/>.kLPO<i)~)Lc`frkHHbf'	NMaڬAO5Pa|``A.*ZjF\PmT)pp~0{T(-r(hu#&.L&Qi!FJXgB׃!@^AFX0QJo$xD)w&Y%H3|]"P?-4	<%~

MS)Q..J/!C8B`m&cYAPQ鮀+HQ&s
&Ge-:Q7 q;C!IG-RC"ANFLL)MvH#Za	i[JҤjD%hr,g g.KhEx*#A.75A	( Ec	_l7R "(1G*!ZB#̝Cr"Yr-5n0.WsJzXl.a/'#"Bd}0$8k8jhڦ9*[Nnf#7% ʃ`Qi<#5Bqx.6_3	SB`xrYpUR?.'k80fa99s$:$eenC&B4=Ui=={.Oqp\!?	@yx,֡򧼌'07D4	HkS,Ȑ!^/KVwRT$?T&L0[ԧ&u&v%hFsP@X¼ 0A@`3CA랔7LCt7ħSTEpPT b󰈊Lp#/,';TtFNtT@W{E4PUzG/LT]Q#tQ H)O!-F9	`0HeO3]b[3YnJCIgRT6sWqLe2HX^Fau$GraE2@H3ʐA<#BUvs~
T^D^VoU_K_焀.>C@kg>-"YVi";W.Z\kN:riZ<2 7dB<>Z/LrCbH;S-OMu?gN?uuɄWSi
7i#G78aZ@TkX9Vb{Iy20.25UB;v(Cgq)_<MoV%~p>GWi%0j-,u'Wk<O@(4oИ`1NfӠ-	``c6<pfif/bw##YUxXAgP>7Bynb*&zk"+&Q6O8;dmB<Pqݕ!4L[Bhiv~Lr#?6Xӟ_&5"7iaGʘ
A!J$4{DO!A>6K]CUWFVN%hGܑKmoȕx$w֖ևɀ쀇gd%!yP$OO0Q);Hn5*ԃ FVE*RxTM4i VV]YdHUxV%YrHX]W6zXy'9Gqa6UWZAt1´&;ͮ'	:F+w,Xk;eYR`Pnnqܢ$^? yRbWEՔqI3*6.i;C&עAּ	J1jfcAF `}3ёfcY[:ureU}+" |ViuY\Ő8ΚE:HV$!ϣGCtG}m ,PfT<)w[z6ON"60  "ioS%&0uSki(iSGTpFmxV/<febsҴ(PdhyWg	LGA\:`/! 9xSxq}a"Ejb:7ڇRٰB9a$;-+FJG4sCc1PcGn1\Z krgw$  
 A! n:x5P$3t;R:wm@Wbڥ+QVW.10fniP(}Ya#!*  A\ !Q"Ęռv9КD_SF#7ti8KcOi.dc	U3kiUmz\hsg>$8 @,a@Cu˙P5`P|"277=!}V	JX:YVHgo[uHgx,C0G&{$H`!U |].   #ؙ<VǵעSB'2;KA~*WSy._bYUun+ps$pKa
ҡ  wYDpC|2|9{%?P),DȾ!u?rLVmd~VX<ลc&#go \yvffB|qB`$ƙ7z67Aľ5'R^;DTd##	_E<k>!3#1mE}ژ;Kgl"%aP^6  ^`N7!g=C:OJ{CMtH0?*ۇQFL*l"Ƒ7oč<9ϟ>|$YP;C'O'o,XԨϣL:}*ȚRV5֭\7RXUخA@˿2]럥a;ƌۧ tWVT`ҵ<.u9
e:~|lL1.vZ.C~ *uZT޽?5V
s'͛GsM{gwR;/oϫ[oN3v`gE;7_j3 Vs;pŭ	T@ncUdT\D4qBNV^~GB>8l%mɃ?Ԕq/W[N	Gn\ٕt!dKt_5G8bq=1Քe~Z9_hu`VxQV4ق}h`	4"tFQ"DgؐDbL;nēK;82R9jP)TdLMivJS4*k` `?X1"PF1pr?P*+fSl`V~Jxh(>->t(c~iԢ(y-Q6RJi<qL)X/ک!'iP
|^mqx*}=EǖQ@$?-]ZͪsD{	ϛ|F䩜VneSUiG+ѐ6ǠԒш/ U<ꎿpذ_]vCXQ%?0Cx?$PS10ͫM]]]ӴUU{2@Ek'y4MD9O;D-Fͤ9׆$k"DvmàֽRF}ym2Dt2ȰrlI;.^*O>{-:ĺq2:r	+!@5$
AG#T˔pHśm"is^n¼iztKܺCllIbQRc8"q@ ~9\<
؇3cq+d?xtjFX9n̝ג-f&*#ٚR2DU@@,&؎8a<$)aM')xQFx*2:0c}H[Ml+` g; 0q A/$)Lgk¢ Tن[-c*7-TG)!Q#m0:ɋ4 E%D:BG##	ΨId,T4>IsXxֽ([&INՙF4	aT/:Ɉb3؈`"jp*<͂3Gܤ^IId{ԞNYIf sXCCg`~y{bܥJҊ}QT[i1DhΌUm4"-veJJ65ULRCHCѠHg&ݬӜ.r,8UlWE-n?0t`͸IDQ͟+hU<4hy 2@tȘI[_:Sr%+ؑ+p53;?"	s?	^6. 
LDhjiG-dmEF~<_}M֚0/8L."5O&*AJkj%d$$|uh]_KG!q (ϡЃzۋMj2N]B'V	4`/a֍^x8Zf&̑w0FQsFJ^Q#@;Gɡ̞`@`vd
do~Iڒ${eU=?RT;OdyM((4;	#ϖ,тt,qlFb=R4Ĺ]<NA+[pxNZcmPy1~ިkL,Or~a{вbڀtr(QtE=4D#Fs0TaGE@TްfFƁha퓆Qw4#񊵃 1xr 1dVIWH~ k[NhV5Ej]]Υk'5T4PxWg~Y8tpSOMdg|Hz*7 Sx|MOp^?)ܖЄj~i.}؛ĺ#> u4{HkUo]]Ȟt^EhV Q#vlCo~u}rE1H#I%O?f$5Nzҙ 4Z}
a{6'A{U#vvBgRq|B`@fPw0 ``P-Zj=xs$2CdwenA`S.j$~FKN 5 *kVPV4%K"TuFv'V!jCX.gQCȅL) ` Dd !9W1gn6nzde\~t3X~wj,i%AQfăR@f6.wG
Wums6d#D7qUH+Յ(8 
ǐ Sd7LbCsF3'!RK~_,x'Pv'h~7?b#%aafhKtRQWasMĄ%*bV\gX&r$Tv@  @ds%(rFChf#-|sB8׌nd2cr'鰃d /EQvQuVewLSg 	q7FRW6{NX0BKb{C菴 ^Dw DdIsRd~[5#}R\![3pFfV8L88/ײ3!Ȅ=fxW&3ؓKX+",}1&"xFvq9$dfAڢBxRA'#ysQ`L樊5gA)iA	;p	30Ә3UCXe^qjq2T@^D]yDҐLZ
`	(xKy$Fĩ$GLIh6fihƦu	]kyRvCr.00,9&j `C}[9{$h7LrےcuAKAEF!.;zLMQ6o4u2AX5X*#7y^D.zCpoDOU%q1^?(}IQ^4PdHyKMupWµQM0ApI`{9x9$mAl:+DrJ(V!7ݡNRP 0   8 (P	xޓ+-qMQs-43fjA)q2Q>(hGo/xaI{Qbrɔ&vd]Mb3 aD[9}ՇJG:3ʑ؊4gUj L /pZ/u٪8"|v !*FW6*MR,
 Z	S[+@IfNG+"y2nUxVpSW<:T(C+{E[{(cGi PEI.{$W]ؚ&,1o`v4Z$Ѳq;"	aAviF'_;pV5s#t&ujh  pRD
]x<dWY'
Ri5AsJ؄%b;5fz!HzP[urqvǼ]&ùZr3QhU=g<76pwf6G'";)ꩇѿaW:\·	Lfk_Bҧ[\C'}f5~W!#fZ[zA"YwzLJ.09$&J]H02*<빅N,o|KFǛr[J(_@v7F/,~\</zVuǠ7u
u5}V˒N%Sl#A$³S7|L&]K)Jf!vÅ5|i0׳JD|󕵯H1QjL9V3!4a[Ş6ϋ<lnϞtk;9[R-o*A5Mt0q	+%<|lE=M5FUOA:ea{mj~go%
W<rЉd!
WWD.:QR}<CIwT48ovO\`z''bvLw5M(5k6YY~ՀȢKmS7^qXq-,E	(Mܶ$p;whP3PQ4+AԌ)p*WyMC7̏=	w7􂊍yEZ@ 	σs}8ur;Ӟ@f½qqM5Ӭ:>]}}:$$rMTDLMnp"ܴգs܆I\uF]̛V}LZ|p6+#=0ށͮvKCmYA$!F=R`FtR@~0afZ,fLtJ(Z*uLw	kNI+$]&(XsnV]-VgGiT$6VѼ.L~O^7qVnS||}kNM	ŝ#ȴI`ZJ,"5&<kl~W>!PRWW>0AFQDw~OGMs舝rW-U.ZĤ8M˜=3Yf.ݥ.GJ'#[ДXTG.I\Hǈ^1S8<=1"\Q@>J=F@n$ZI(B䥊u3m~93^v@VfEĺT']Ƭ	o5G	?R!_n$^i۬l19~|k_'ڂF(Qu[감Fr=wLjjËMHSoOP1Z/NLj;+<ތmr*u]R=k/lȴ"z sI)w].ՔI~ΡBP<-ZʶٺxϦtO;lqF^63#ONoy܃_&=NƮ9锾^@ O@|w"l@ZN1AQcr=9FCt6СApbΉ;wt?y?,*TQM
4*èS^ŚUTPYVXe͞}
k֪kêv+J+\QS~&DoC
V4YѡJAj$щŒ]ORf!R6勻mgۺŗpōsu6SO;i`=t*yBYoXBB,b3|~Cs6%s	32(,Z:A	'Bp 겓MtЦ@dh:t
03kNq:fsLTc1$H
pm;s%rK/Pù^LM"M:)	EFQCmH鮦)yQ.ײjS4KO?%uKR̫:%F5-oð
sѻh3H=9sfY)ҔԵicsI(X*Q%7CU0ô,UL_<m:~*^n&`'bq%d7*g&y?Gyɉ%uR(yɘ8+\dEݱP~]hk+[+˓SkI@;!cGtǔ@ˏ_`," Z#+nJ۬/ۺ\S5m;$L69N'nv& wѳh)ڣዳAָ6 (e嶱\Gt2}tp=fYl^׆iDfj}שnQ'~mŎo~NdѿqӆtP.oh'+uTh̰	ZuSȆ)xvV陥{	U=OK`Χ6>gmXX&}%vZPu@#xBĸFDüX,c[ʃ.,
Y
X0BUĠ3Xb`XNDvXp#{ܰS8qq+JWZCØ?Fp3܋ҥ (TFu}9#UȨOsDr0@8FTäU.'1lRnIQX'tq"bIHj{^>`!M6JtrH5;%fؙgie9D lR`IT-&&i>s4PV&u}1eѢ"XVT/HE$=R3\ & ,'Ud-E?!4"'miBMVОEI	-~GP2y &mvĥd6AqyYk2F(r1|&͂:TN1hB=4)*MwQjuRE+ܳǐjuYI9@^<>9J*wūPZtb<*%fNV..!8+"J&-{G8=gIϪecN4մ47֢46ڳ'^vW}'YD`UG(eBTfOmUbĶ-"g*/rfOt)EM,zyB4W_LA'5!ŏ?fOH̽Lć0mpZaMku}њ0Ypز,k})[bvUPЇfbt 9ڸ!k>W$<zԡ43TBb	1U i֫"z@3R؄XѪNre&o.	*nپjN%ElfO>?GP٦:l91G>nD;cJ/	Mjf32ޅVF눗E./nƹ5R:iW Zf`,%)-	X6OpŰlMۯO`[>;AZĆHuu
pWbʍsr馱,FPjs{,ܮY)ZhZ1|`
Eo&Y]K[!}_h(OEdWL.iW3'V"{v\5u~(z	$ǋ_ܳa*9|~](_T%.X<b?]Ch^qeN(dB5ϴ #dIWdO0~q};CrU<Ϗ=9Kؒg+ᠹ:	B8i?#._Dӓ=Zc4k/7G$14~cPԠ@kB3Ɉ	//rB۩-A7sx@ҽC25Ukc T峣tŉCHy*kcDT3;s1TDa
}@CC:<4D!G:l4=C2*5PEهr9г8ËZ?GDH4DS =DMH$  &9;Ri\@JA	38P25Yc8y,2BbaƱxKKFPAûSܴU3&B@-+G C7,tD8;"˷E< ;f$kE@Z,.䙅pvDl[Cp:aA'){Q(L2P=F:+5@PF,;`t88|
M$ȉeR9|Ġǥ"	c*OY@4˨	20DRC4L4Dat`INGT˷L\4+bDl#Kd\J4J*Ɵt!	ykKALl&SXy?͋Dɍ|ĳ4T6SH*Ԙ̉d\HL&l$HDN4SMN:ȋpu,L\P4[NG~;6ϒaTHLl"PdC<BѰH144r	1Qd<Q3 }R8!D}5N쓕DJ\>EC>GYN">$M5Ҫ=bS} 'OS҄I.MXkAQ*QP mfQ@SQ?r@;(;쟜Qոʐϧ`=&EEW+5G5
U4m,?3bQ5=U!DD#T4G
QNezV">87mLq+ո ԋ(M#7c&(TUăB0i՚VI/%XcEMZPB(< ,-bD\2Vbt=XRՇpGZ8ԣlF=RؔՉF6|*K
Y,YuYr(4[UFY&Y|L$!FV:LWLYPrɨ=ׄժU}21/%MV5r,5։vMS&VX[dZɽԢӺ[a1m	EEP֌hW}իԕyوE7\){\`ɾ\Gbįlκ;Y[cE؍Fj*U]91S2mk+ޯ;qChۄ故Qۓ=9h=B@[:ZB$_uAM]O&pq`ތZx[J&M_-jJ\ŞHmȄ\G}$5_h81eށX\U-G߀+A}5XQJ-.)uXY[	`D(/յ_U`j΀"aWv:|Ħ	.L/~EG=ܵZ'^cFl̝㾅DX<VV=ٌANw`3C0[F~2vdPpEJr=Nd	P&f0~eS`36ȭUu奴ZcY[o |NOP.t.A
>-Ua$йinF{f`^qAʘu6hQ&d1~
`4:}JD3DG@PF钠/>B\ՔX׋hJUd!Mi"euS偨_!֍`gƺ,M~~i\(鐮`fޑZn*Rc6tꤶ?c,L>hjro"JN-Ұ@Ng P_h ռ6ɖelul>Aun٭巹ھ_[WC惞~=[,Rf6<M-m@$mlme[`~stܮ"M5&b.lHAV5_溲N%@kDo&mH H vбVtY&pךNV0jBIb6H  vp(E(mR<F{,8ViQ1nׂj'pcfȱt+ Tom3*m-kF@y8nq R'1  `pr#pJ
(ԥ  +Ohֹ L -8؁ 4IbІt7ٹ9obsf<s>9q@@ 'IUwgtu^YFLOMhviY0O\jp > 	VYlXsitcrrbfH=v?z0O (uh xv]snE9.jˮl@fqr=GwhvWOw8};wo4nmvwZfypvUd w172AJ1arǜvb}彖F}x{?WWM l^m /g'ZF:WIsx/ogrx~)H(UauϦf?@{uithP!0r-kI MpWP
8H m()x|xGh/%mr0K  
R`o~{8v@S77~#qwY~v;uK-)؄(k|(>ע5p'pz  >	6|P`DVQ#ǎ?)r$ɒ&OLr%ˑ[>|	ӡLkħsE}2mS`ʅe  D$+}	"S[+v,ٲf6W:3Rl֐o\)hYj x۸%P'Vd#N[*7Eh?-z4&[jpvs_>
&,9j9*u-E9 LQ'qN  ڑf@Uή};9cf=<KevpY.v/3 (6A^j:YkGaVxtטX(BE-d접;i(TW=tCq*  &XXX:T l)u>sve05ink~&(G7%#OXaC`r0`xwzuut)ZǦj0c hP\  ؓ )fiUB^h쇀'(yF(`H`	&lC 03*툧j)y
vs'}I褣XLH<S:@P辛J\ܲͲ"pLZ* :3X'$-CbTlmR'/sݵdE2kytXs< ͒"P	BS#^ׇ#^ҍV+8#Vu ?ۈ5
aUSAc2'-(wL`PAŌ3}D L&KNmӧ׾G[Y爛AIR(8%X;E^T6Pw3?dy  |I =D_G!$CG5єgnKbԍ%x@0X#0t [$\"Hw GԣD9!HBEaqA0C*Ȅ! P61l
l"I(4Zk6$;X*'\8caqu (C?pku$'Sr?Z1! yv& @VfA  B,s%"t<$Q.$>v2\0%-7Ӹw`D %=WG=v&&9MSbEgQ*"mHN	|6aF%Yw\X9
sOhi!8e#3w<+z,3 `	[ecNtBֲt-yL(I ?ܣ \	hю4  lgJJGe`SRAÈgb+dl!T/_:5]j:5 |G
T,H[8@&؎+U+cՄǓ;CqkxgG!.8DTPɁ\DK嬱-w^Pc6춫F)0 "K"a!qY-mkNԝ(> i'
=pUUCW.}뻳ɭh<ݒhQ s#YzGK2  +ᐈ5d#^(ko
K~LNÂ{E1ЅDu!z%MArfe-C!Ǒ
~|BbAF:ʰ	Xq ђ'1K$k̸,W,LAÇ}2
~nIlN('ݒ(SSNi>t}6%rIR:4ሮGlq5=${<>U!"QY"$)&\_/	񢯕`GMg(ㄳz ɽ6STgiri}?=ǷjKݞvTM̾HXKA&JAUu@ ~O(ٶ4(<7>(%0FH{ D5*R߉2XaH8ϹJ"oI"@V@EoqB<ٺh4ImF@iX(~u| f(:ݝe9xzZ =H>#c J! p
n>&<(Y.I,`cklJx%^)UJyG	hxҁү'׹L FNS-E7
`Z}yf=TC'И!NY8ǥ	`ZƉXِ0)	?4Bqmބ RSƪ\`A;@,# A)[ UGK =؊5 
`O S
a.D!Z왜ܠba]ޕT9YhN9
l(	Ҏĵ`  iɡtøX H+쑊a!2JαD<X* ]\& `pW&~a":#nKveV3gPC,n6(!inb-u"F;ؑQ1_-
=Lt!"q^Ih#h9hZ"X05^c-NN%!&DC#K<#'vI$9
2$ 
(b>*$6!j  &"@. m#G7DCtAFd}B1E"L>1dJV9 /\qF}%L  I~QuJREv<UGN#8CdR|TZ~Z%,$yicP4 HA^XYU%Rv.T9<0TFTfc=X0b.&%\%wHBǴ Q^&fc\[XD;`&hfeY=d?x l&UD`QA+PDBZff	&0cC<0T1gs:'?zX$@9AZfvjvrgv̈́?B8z}6dXA&~aUj"C
LRrzh6e:T6&UX&n
g^hhIq&'v2(犲Qu~r(Yyxyew#O'}f~(P4h2)m$UPJve%c<gGԁLzi%7>J.Cpe){b$D)_ ©t&DQ]$jE$]2 @P@ZrFx;#Fjj;Jn*xFv[Jjkn&kߡ^BBRkZFzȰ^zƠr\zkjl嶪Z2&. !k-N+~kj,9.&*2,PX+FN.&lM\N(V~,ɞɮʢlvƬvl̶+,6,fl
ЖD@  !    ,n2     + ] mGGGE]V = Jh\tg|egy<>=C{\bklosuzvx~گgguƟƖ쁞툽ѹ㕪㚫૱Ǳ֪ޫײ                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             3d@0Ö*0\ȰÇ
B3jHqɍ*L8A%O|r[XsO)lӊ!?.:+E*IPS XqPp*G'`$)
]Ԑ$Tn![
1OD
[wݴ_͠F,#%\0ý|6Fϓ+T0Pа?c a(" H 	BM#)nn1Qvʏ!D@BKeĎQ"E\-dҾx?Dٱ}Kru @ ptetA90PB'#C}nO4 {}7    Q'n4@ء8:V1c| DW !    , , ' 6/>4*/=.&&&999 X o?V*r6WnR	S1
nf28p73OZR#nXT[A1mVqC3FFFCXV^V@XXXLs^ehYhhhaovxv`xxx 03)ZSk/U(n rQ6N@n|nzqc[iVnYrZr]jdtdxuwe}u|e}p?uvcz}~G`k{y4?76JUZ5b7]^9fq*JZ]pbYrp{\;ZqaivzmrhwlqopswŌ1ʗNdؤUթhnvvҁʮвɲӍċŔ߄Ĥ샧ÎəЙɘ̱ͥЧѰ̤ԫֵǧֵʺԻɽӦĻ»Կʼʻƺ֮ڻǩɸռʆǛ΍ϗҋָ֚ڥײ 	H*\ȰC|(bċ3jȱǌCNHɓ(Sjv ʗ0ZD93͛8sɳό&zhę5;&5ʴiӥNJ:D @`F\Ê=9rٳ18g+ڟe!z}K.ٲv=8";#;;Wc;6s6Ϡ?^!QhL}5gװy3tlS{{w6e?\y!=&w8tb_>3>4ԮްovDlaF!DQ&Ns<Rli ߂ERO 1B! hbD&h.(k!
X3㉩%%	أoH6#>> QNV.b3  )dw`BveVaukЁt.I}aDO4|
&G`){%#=IY)]5AEYFJgb*+S6̈́Ί>DEjJk% _V{_jb@H6jmr.eEnˮ`jz#FTuZLyZEìLFF챟]E]}[.\"B"4o(3.Y"d#Q4DO_^Â*S16kE>rv&ZxSt 7Y[	[#/٧vm ޷?̑k1847Ge
xG^9F?9ykzvߤl5էs
AD6lk{Ӿ跫]7<u>Q#`cZ3T'ϋQi/&yӿw{]j$,>jOx3x?10PQP(~ =yt dk[|."\B/sRrU:5b @BjEk*àO.3.P?ۉD'[@ml!C */(j¡]E14Gjk0v+q7ch$ыxG7@Js,F"5Y(F8,eQ;TjDԒz#$IJUT,%6:h$,8Ih䡶"l:IN(5$/ωee6  MG3LK9w)$Bs|\M=vذA\(COGJFyM\PHQo)'GyYƍhI!3}n(ER.:WPӨ{T" &($y5| i:UQw6=\3a}/fqƉ~UpVru&,J<Ϋ\KzTr1+6RV "7j'j<ҭ+5,9]&vKowecO=,*ԮJOج-cSQb(W	b-mJ
0I衾Ķ')!^Rfv|lܶb'!%i8:˄-RKڷ%,{u4Kb񘋽Rm[ռ3(+_X
;bw$V\Wben>,W-bJc@^_>Զ6nnZc;%,*SXZ>=nC[((*G ,Yhȹ\XL68jo#79q|b֯L/;Cѓ]$NTtFiU:c>\2aO{qfI2mu==OձtCTlO[QRi]&vi.vs=m.^s5g/_6qntpcyMP_xK݁4G})uI+g\3nr(\*5ʏfcI|":n̍5áGpo[Npg۾u͑8($pY&=l(T:e)dr$^7_]Mfi]KUT/v/ng} 1Vƅ+_S;Yc]%&?@-3wZvZL<dWꋇ{o~!p=S<n{n|7g{k<B䑇]Io|Lo~/O8iu-C=s*mV|x|SWm{qޗ7vxwWC}jAH|$f/H}9}$7prwl	za
,M5{5hzWw'>ȃ!bIb
20$1~~OX՗cpfX:p_MNW#~qiH!}XHt؀x(7 '{8qwݧ}1z#l8HgKqA	!2	&#d8{4Qxi'B(h~o}0(|Xq{[AԸ(bژЍZX%X(X*=tqYHj	sXa&u %~p		)8w͗Q{Yۆ>9?X'!~py9dQvq>w#^yISw0Migy5q:d?_وxsCIw g)sZv@r9،	aCCg)٨ɔHwgHvvhnוIXtCa!8ii^/3sYXi/i	=@@`)8ܘKY*6ٜщ舳wHݙY.ESY<iXJ_I8&1јhω	\92d/_Pg(ӞPH;(iH*-h}ٛX
:@ْy R9T:J}'
Q٠ɢKJc*	y5z)W:AizyKIj'ɝ)
%z:DOWv*tJUz:7Yᨐ %>0_*:ax<{*4xiU{a/.0Iix:8իL
(
y2Zqj:|H4Y0P9UZȆ
gj@ʝZ
x؟U)?B+PاHh"IS
zʰװk릳VT)xjvg3M$7+[¨ɪwh]z)AA	
	q`KP8${`NWie
:9 
FgYJ:
{BׯĺӶHf|p/ˏ
3r.kq;	"8iI(}be*'3+Iۃ ;p~鯌J Eylڡ;ڹyy3ŋt`%Z[F;ӇJ*{ן˭s[[&B iۯ5hAҋdZnj9	؋ڻCC|5ٵ7@@,F|̩/)!쮅ɽL
\`{!	?pꛭ#;k.<AN	
7Ь1|{$\~+ Z:tF\vwb6z¸oUṵ}?ں9=|.˶kFЈ[2ٟhg4
̚LK>둎k:lAÀιjʨ<"FjG;KīAy+lL2{ǋ8<~PAЬ9_MΛ̴;nlLK<
AjcI!a
!	B7<|C"h-˓̭ۨ}r, ,E} {p왑'ּrsr2'qb0Y@Ė<@ZU|<Ax찾s%ܙld$5^y` )htMz8ĔBk̫Aà\|Ek٣M-GgD	7 Ǫ ]=ٝ9Qg:*y*NZ9Pz(]>vKʽ]yݿ@(w]Z[?U:`WJMlgy\tCܺS4jr=yP	qF0}0݆Z-~ 5۷_л{L	cn=!= )~Q1.6rY91my+ܑ-f}Oh:O^`gp,~`.b>[-tvDX8iK+A]r7Q.`Ҡ鬽m]9YvY^M~PDDxyѮ$r@P0/6/ZAƻlNe͝FG-`pYy)jo"Wm
ޫZ@\?1@]B%yL״@ڀ@/|gAѪΖ$MHq	wz4AנecQq>HP>L[|	ENy7@%;ݔ4?IagNLvp/	ِ@xG 48!2\\51@w}+1o&Qq$~nPP)N
?(8h $q\_?̾Ng=/#X;@-[7|ذ7~]~)U>ҦC7u`Ν4_
9?{_g_SD:ե?|*u'k5JOiծe3ۚ)gn	.QBiè[vY$;x+U7LtY-gBrea0eˊWzHƑ}ours\w~Ţ8cƍ;GL8򵠓SzF퉓AjkAL}kmr~)kx)co߀,)bX`҈#>ΠƚoܲcEĩE1*JM@㪿!om=at]|lJ+B$ɦCPB/xg2:FjkA8ȞNh>6"JҥjlH 4̣sЋ3.\RS zI1@&3j.4YH+9CI;[?A瓡Էu#r
-@J/FP["ɹ@(W$ԋ12YU'4H_uOW)IG/v4X@=eqhr46۹0$0xuU$s:*<w	z#睔RV|x狭u齀%Ȩ>185dzZb~`xPJmk:#꘡@.ٻ+s/:˸'nhxPyZl-γOٮ^xAHUg_];?>Idֽӆқn裹~Y_#ݬlC_K4~(xG}@⳦قqEk|7/,!mHlh[w:n\	?]FwhYSJAq+2$sj!q{g 5+lBu-dKC;YhCv:K7W<ܠYX9	0',:Y0Zf`8ݧ6Ԋh>DQ	Ap1Fx|TD/* ݐ9ܡ7zCkp#G޸^rQfzv<8B39V@{aadHg))̏<:R@qMUYHꄑ4}̖
yAh
Yqv@ĀDw5XGGzm%e&yJ#4 =YF+dJ`b*jGMk8nL`5w[:PژXްNI	<h57J?o=#EM47Łapb(TSl*$a+}s}>=>h>	:^Е0%)e})Ԑ+
55)'vH`$WgR#;bi(0x&g'Mc9R	%ʩN|Pjf@̐E%*G"ϭ"*~:,Z^j\UT:YTV1:DsYbFu	:G<8b!iP#ӆ@W".Rtޤ,n~$r,)}3wD,r=cS#]5UP#Ԡ/>h'y3JD$w	b^\E'h@h6o3vz
Wk^3-r*_H֓YB#(	nAס[Cb0kLTE?Cb)p^,q99!4`ȱxQPܗS'5|vceD%!P_`95D0 d)=d'r9O	ĉ&K'#dȑgzSұ.|}x7$ys_qH_ytd>\ĐA'EKj*W, _7]Z:SmNIٮ8ۤ|=Ġ1j_AP=P:4d@V|Gzg>۳u8D)CY]}UCxclt!J!JDo04QL 8SA@!`$7*뜐c.E*[^vےN\/$]`Xz8]f7hQTKwYC7~vA!/2%s4|xs5=7Բޓ,'DǧLt"dmFO*rfBю>$&bw_2͓O+?Tf{Csf%N!{_x鸗;4xw9lFPLf=!|xtK8+G2NnA?ϕ8}*ówm>5~6:[ˣ/ڽYi1=Dc𦣩[k6	::-8w	<@S	 @@<郈;j*SP@`!*[ꑞҜ)1ykЁA2ÇãA+tj:v@"عBH1.\8;J,Cj+K2i"Ĳ#5	ÿrC}}Ӈqp#H#ʶv: 22O&z9S@C媍zD {'٘;;03	6BPԥ?67jЗ|;̰0@@0s y`&sќ7SLjD@/T4t:~|r	j N/4;	":zĥ1?`,Tv`"D(6aHc0zIٗLF
-?-AY3E	ͺaGW	Bs#4.B4|D}*h9\4,qidO3`dph-,	ڠ3˝H相S</q'S6Ib ȥaƠd1?(̤욷4jS͌!4JɬJ{]*  MP:Ӵ>l#8{I:TTMb
Aak0ۢ3J鹻2 j#Oy̏Y/LV  NwЭ<ө:QtHeN`
7i3@7M#dBH;`5kTL`1srPݭ	}CӇʂ	%!I`8Se"Vẇ;*7TO<08[
Hɿd,h<RL%5/؄Ah*ȼÓǼq/Ō;y@Lĕհ/PNϙXUe0 @Yqo2%yp9@J4T$EEm8Զ\P N[JYȭ/;ST@G	Os$
Fz2/<U
T5TҮ(V!=VւqA#\^+,هl&7ZBZ8D!`FEӒUL

y0cd4,RcH9
	%!,=/:SںIzXa"Td;0l5l\Ix
D0X-ؕ%y]HaB($F	uMbCb$҇eqJ
QL	\
sĖ q	X0Rެ0C?Rβ5{ƴ'IMd[W,!ǎt؆ME"W ĕ9
\,INu3U	dϕLYo	7KMG} 1E.JG0|$QBc4sMs\eSâ?5ԀؠԖ5?^崺ZKu3--_p*R2R'.;C&jQkm=^q&&K%RLv\`=^Y5G+DEڢQR"UF5_8ľ%qi{&IW ׳Y0bUPkۣC)t['&p1[݊$)#DS..Md,.aM;c<*]^:*"c3[oHȆBvX.ݑk-㢋zd^c*e =cf_Ua7.iDLa!Y6笿pczV?qt1 RZ_|FdD1[\3ѴcvȲbJ'
`TgU/hRN	F]4L|g%qXde,=5n_aFbyeeR.-Ņ	_ǂcG|\h4f@j8`lC|ƇA%1>_Dg麋cqeeTޑKo`DՌ%g2j"HmF)&CnYgh*q[L3+ 8tb5(b65W"2҇ciS׌6&}{=#:eeX^wFm0PTTGx]AE67 8HRȆioP=PÈmi;G}[b.f,`EjWŇmSa	hyhgnbcFh.cG~pĹULϖJ;B^m}֊>:cm,ן~yWByIBeHq:4i=fVl=lX`
y,X䗀qG랮Q<"+9?"?.[Xn	-r;r3VKφ][> #Ims̵k9k@W:hlꢐT+oX(t&`QeFr::faELuMU}߅,dWGNUvjx6rA{2g;q29!n=jL֛eAP3VWAf|PQhG΢[ES}$-R	DEswb_F4f>=JwR
g/J=VpANEgٹ2乺N.Y6z&_U?
F=v\r%t'1efl0	, _*p~hskp#nCHXmǔ	`
؆ַ'Fa\k6OF۳X,[ԁ\D.}xvpӂPJ(_Ԇz7q-͎Z7#΁L_tO]~P +8 B&laA~'Rh"ƌ7r/_ǐ?,i$ɂ QL̘@>|9nNgLH_΅.\o<{E
䗔(C(P
jЩZU+aյy>/;~$!<$Lx)UsgϜFsDhhEH5Huӭr2m{ϟWuN6vUl]]j۰SЧS֤Yzsp{a+:|/.:	J:-1m2^S5?TlY9\5W\v`e!V]Sw45ƒK&Rf>4>v>UYrR&]K9g<S4Vrr8Z9r"z(ш$$G6JusPHT9NEE}}Š=E`ՠD? x(rsѕi9*wp~D"Lo3'B^@Pԩ}ZQ=Q^]s=[U7qUFmVHN9=C3oIN7%*֮G-jkN@gzBQQa嬷AL^eU_WMX=%w
juM\Wn.Ij>5LىЛכgJ}(QTE-5Գ!GuuЏ?RlBCsX57.$cq)63z`?=Mƛ>+ZgweYiH-?إ_P5ٛCm=
[Vn]2nhuN϶FVmEm,<麴YE]xls!}UYJ:GCKՄ}v*%C]-̽{;{"1t7ehyxN:Gb,QC
N0M)|	b󧐜ic\h8m
>̝ʆ20!"giYpfI
!Q`U0q	^uiH6,blx2U`lxcmױ\Hm`r{ n3E0Myd8呔19Њ;"㒢-*f<ik1

ԏaV+]e+5:-RǬ*d3II:"6)kVҴ&yDo
TƋǼƫUF#Pb3
(2麻ca<hP/Y?z7C6
 i2}Z1$5qNҒL)7ɕrs9WФ$XIۙTrNDQ*ej19.刏<5J]]8Mx)訢y2rĦHbҚYJpL-2#3#'OԳF$[7BO	O2Wڐӕ: Ch&]g%B~uJڔ&Qg%Z)J6CHSW0%pUjWDk>aXZ>3vbCYt p	@(Y!^ăhhW ڪU)dIҲjs09IªXċ.):%\"61|,*_}9ؔF}Vʺ^W+!ۡFv;3$_U㮳V<D_k."V,oHvHBQ]gqgǞ}e>Hp,׹Z'17m̬ZŞgWF>\5 TڪC-(BH11tjrDD% sohyd4sc3LQTKhs&z~A$4,,Ȧ.L)8 4Ǯ-w!)3stϬfM#	2F+7cJ0xAoR`OFs*,+㪓>2gatjj;@S;wpT>,,E&t_ZSa4VN\qKb`Ϊ"J$iQەYαa8O3{#iV>'#H%^h_)u4QUHz"^mɼ6
?{o\%G'WM'>XCG	@yuԹYдL(sqts3JS*09-1"Dnэ^u?9YO2r3~/a6{XխJ(_0'p#39/$gLʜ琢7'8#/}|Hl	ЪɐXa՗Gϩ!LY?AyWM_y][pD1aTͨQD?]e`QSBAF!L_֕ [u ߻lanD^M`bMN0MoޥӀeKXS	>ˍ! !ShY 
J;ym!a>0ҝ]`Vr)#]	Ҡr?VCL8\HSa.yFbEݡV塵)!!iH\rjƦDqX8(R^) )1[)F"Q2M5 6AџKX$I@a);RPh"Q5ETE}EZtBm	T뼟ǄA p]XZQ ]u݌GLIHd[uSJ]í,朩C7XaY!R-QM1jXE_ [)_t8wW<wA	ˬaU84ISlI89~yJK
FT=+D8M\EqMm\R6%~!&I1t]6rx+~K}~}%H#H%glSZZNK-O>C>F̌e^]ۄ*:vudXD`e!V\]FF[qhQ"e7uX&:RD$Z>% _FR$@aU)eC6'khWLؠ	KvZyd`ŕxghwfz׎Z-bG)ODԥQĜDrPҪ^!BtAe)e~!H[ }iAeyde%I
cK)9D?Jc
T>)Ĉ^RuLBa\41>4K h#ƒwdw+R͡b`"E'ݣn"b=)m>©S)}\Nl%ivTibDktL'DYD*ȔuZ Q i3hQEk
Rj`L(4iZѭ{괵%ɥ;D:Q	k^n,-k EL`jũ^@hjɎލ"saRQԸFGpPOHn J|hO,WPԕ% *Bک*xn$GFr~RN a\VlIhlSZjF1z➝l⩁zs,d܃dKj?ò
E\-VõH:li$LrT
6_k|3"K5\ڷ\+pN.s	@GI{lLhPnPv NjɆhĒm6!F.5V6v4*ۊ.D7fM6hCEa &iR
&rl"cSdfmltQdn+,Fwj&b|o>Z[J{lFYVo/]B_'bVnOJr(V膖d%0tf`Dz
*-EhX0񭢦ǭ	ARMdI28GitͱĐ>+D/D`$yrRqI(qZرf1OG@1ٷlJ	;8lS8Kj g.o(Eyű[Q醖'>`ZƊBp6FlZLGz\4rz,FoBA0|"&30$=	rZg̨xi*MѤro!npedIh쉠0-Z+N*şC3$#D'za&Xi(SeAIP9:Sω^jsgɤ(N	4!m._8́*UAY2k*bkb`i(	Y4^ǚ<-3 #1#!,m0>,gn	p0B(`.P*ߑ2lyI+k;&KEҦrp:UӌJҦ D/z	g{/&	'05vb#i]CM*S6IWu4e6u:O-Ǫ+NNCRfI 
IJ@<#!['A6ob?ӳVPq\e]XYb2?[jïMG\  XCwG0u]'ҟbuWJ$E (5: 1V:Hq8L-|@C>9h&&%FHhxyТB^_3'<?t 7YkukWWrת1K{/
:92u2s &Nm0{jakB61N~0-&T:F&@IAxty:9;;-yf:tMW7W0gv,4>(1wL56# :
^~k˽Q8F%7xd/J5:kyF@tfpx>A1=C;h)?8x6{naT̃V{*dWqh+㍫r^;WDFy;="YP!ݫҦt\$O>kxP]_tyPzӝ0UkU\zܶ~|5 <W#<Y<1sj'c#g.*tv:pckӗCISȮϸȺo3"ػ苦:K=%8h+E3$@(ֽ{u87P
~umA_qlmL

b`'NVh`;mOEEz4RlT=7Ҿ'>,O=~;Ьǯ󯇛;~,["?}3x`>|d(PĂ)VP5jdȋEdI8oʐey3%:Y9SJ~I2QK6ujԋRi}rOk>tҥO+?RԷoăh}T_޵E\ܣbmW_R_ʨ)_b/YRGbd)*wZz?E)E)vlٳi;mְE+v8pci%N<ۣ@sTojkRA|gƖqF*symz~:4jͿX;<}M(b8{P}+Ǭt&-G}'/ *.D*O)`(E;Ekaҏ'x
t
Vr&L>.ǁб+BpEPB<B>@PDfq*:ʱʮ9T*h˥(iIz葫HL*?SiXZҪO24;8g!lA"QFnLtIDNODS*n!Tk_d!h#Lu/$W5+EmW	`E&.1ݬ(c6NhopPbf7R,SD!?Ĕ!ADYDQX/i:ꚺ!Ǿ8b,K"<(l"';>y^#0	d`
OB-0t͓Z>B1l(-ZNiveP9#:
Ed<5ҫ,lWJ+rв'~2>oTG	pLp#pЙ
C>)L"tL$dSR1udݡTF@RS;v="܇lk[R1
t TT<86B,cWXgHuW"DdK(2c
sR!AdH'4'
<&)piB!xG23
f.*2ҩػf=1Hrc9*%LeMBy\w2Q`aFd@ lֶ8>`fFqdQS-Єi;x̣lgpzl>L?MFI*/ؠ$vq&o)
_?iቍd*JwjY	i6)9s	aC t	EYSVx4e
6n2\b)kCO2fp"$%ΉΕʭɓgEXG`gD>Oؼ%.ŦU&(<wRgt2jfE/RtAЁ0r󔤤cR4deT#FraL6WdؓCHbÁG
S0K/4i?<楫P!<89ų-E'UY&dhZ7D_es"$=\<ܥGoTYt`O9 ʶto,{TH "5G'70`Ѫ}i9O:0gV&u){;1u!lH.Ae:L-L:n"^"KXa[M*aq9g<Ւ4Ws~뼹וI*Nd0B~;6,*#9{rPYQǘa5
5]Ly4b>x2X[Kmܺ%2,W٤JP 0.ts-![3֠1#:*ad݄ sSQk@E:fQi2U>sW(!VBz+C*EӁq\fOM ʐ.	Ar02û+&"Pe"@Wж#:9[T=˴ql=8g-SqVhNTp햅K1#tBhV$</`2ӣ9!qk"$ gغסQĈ^;<UdD+|#9pqPiypi{旫P{'H)dyw"*G9&Qqtހ_KN$//SBlo<lDC)}wo|Kq9b!:t9(C8Pi2ίC	cuKbhq8~Gt4W&I:>	V.Y.ZbNݸ/+,øFh`7 P,6n*he|Vhe# Z^/Bhj"P	z, ^XG.rEr;lاdҐiߌq8lM6L)4$tGkNcB*~,>nbk)MHˎ	ºXRfMHER.QjLA ;A9++&N&I boҏ#/Ћt"`lG/	aI	Lg@;ExeEFҀ@Dj0--=#6|QCc:1>.NW:)0ȧ O|΢(j`q.Rd00t"f-w6/8ҫBJBB~MT^b'QX+쪦d ҡRۈpO7$<f<d1j _w.@TV͂).!"B2ētR^BqLoR+~ѿB)E/J9`/FJ߾<4b޲3-߶	!Jl&c^
=q,7N4.d@ *B!!2CpDQ0:M&)"BCEgh#ϑ6.MCxpyR/	ӃNF, 7pR
P|	C:S.Ҭ|,e%'Q9#QQ*}d@:S ȒY.KӀ_AI&?pRW2P4E(7'@8! b"T1|rC*sb"4T-[3Tg8 .ȋ.!S'=Ssh=pyrHzq4F|H(goD8@J *"Rn99K!3L)B
]Ka23q/S礣^3/"8̑EbLh&Y@BԣZqTc\EOA)HFll.a+Q/H(   [ " "A9h%#tXDVq5!.8p5_)EV`4IgL(\4D@BPBbavUlbv6=GÈu0ZS U[[ "rJM:4+K3t<"L3h8k-_"ɈXnBZ3^2>V<a>%WLo/K|d@: ea!`%3A35YRzFpFZ^K"BD*hGhr L'1=	hkh$&@Ƅ''֋6*bKq'S& Qu[  oEOx[&D$+^o¸cL'0b~r=P+s+.t.&tV3^P吵v+Hv9ȿv)VV\ !0@w; ]h'<_ZL2E|9{)``ͯA&aԖloe&cKIFZa7Fo8u[ faeaeI&yb]e MӟHzUoMKf,s)^:cfv^
u>&Zlf~nu26f'[    4`@&!*:y&qEE93勵4"o/WGB`VӀڬ)U,!IhƖW7뱏IV6 F  94@JA"7WƁqg3O'2S:Y)`ϸʚ˕`j}-&HH8Z%f삍C/njGwL7o%5@ \axu@>"->!Bz_YWBt te*-&B`bIXS=zVhBt<wWՌ!!n:84IGvĚjAS-v)ybFK5,T4jAf1u%[eߦ.Ow?tmgl~ͩl?qmoD)`րQxx>>ME"RKcFQ	Q/bDҝ;jV~d<gB-\U&n?"r b1č۫YW)@JBn`@Rg 8/GT>#/z]DUPdMȲW.Ѣ|<Lf
i-g$TQv@E%C&2$CdTSVWTW:0).:e[5 a[G9á:0[zaqM$::DH.;Mtb6"d@kWs$sLA%tϺƮ0I"cb?i/Vrl(Rb\+ ꖢR5 ћB`(2óW?jr+ܙ[ OeSAh/fCKF:|KehЋZţw[BbvoXV`ʇE雲BˁktU:shy'W1Ψ\ 6=4F':ǝu[7);Q;ۺM//[*@  Awb A%=g?v.\ڸ2*j!HXEv>QWGDmL9>!1tQ5\=hYIƲC =wֻF;E{UIͧB>`\&<բ0i/=Fk@k|)B=+6=䁔>AUНVwLK_>@  o5cǚcW<=[b;cicB1x9x0ȕKF(De =(L>$gX%&\1N՜81G:{.R5pWe\歕&ǃ%}psDqHO		/۳=TQL%z4g¹v~H^}.\?ZD{[wGN8Qx)v<0}5T8C'ħOE:c2yeʏW~܇ƈulc1jz3@Q;zI#Ը6%8󟿩R'Rԧvu:_X)$KVgç6yB[l`sx ߝh9	5x7x̗2MNp&>'Yxɔeo޸svaK12qiA#m_l[i38}Q"T[up/7׹gXs|uͪ{9	(LwCg):eKvTV]Y)\LFj!zhgFq0UdHV]xai>v[Q4[iE y56 M" 46G"uX|'ـNBIY6PkyK6!~xPCf8HcSB(iap|VA7Q;C5]Zmt;zv(GCVw}٩;BedAD$F_4 <cy9jDb`&9XBNvty
2IDJɐ[O5hɀ7Nh82dW>-Se\K
a  `͡_"#`3kBlKQwul#CZiEQiBjkMyjqU
F )CD '׉>HuN݆JE[)#׈,uYhd¢^bEO4{9  |Gڍ7mk\3C*!ϴj0+Y~O\O]<9hO8bBjukZZ-2Wwp@`hف~C}^6p`H꣖GDsg}SX )d5#5@QOP$QO[jB7-jcRAK%7ˠx.|
G%p/}Ʉdc*%2#y1k!׾gmsלZ2qhJ<䠊 @ɀw`2P,aW#,	֒Sn[ϬcC# 
 xxB+⎨!l=K	ⴳ)7+]ґJwQO
w}!20EgX* Gf`XEd Bލ8F   $O3;MO25YeVISa85	Ѭ'	cV)AALhvqr'ҕZDJ^w=vxB喲9ER&8X'a\'p//?1Z-d&{gJf7:iz3	?Snydܝܖ	6an0uDG'P2(M3(TAh`y̮%iP< @`Iebc9y20'ө%%v%g=uv#R$@LLXՐtNiGТ@7;h@:O|Ek57w5HW5ϯ(%6s - @ _ `&d+s;}L0'ґ)Q	œӴOM($ڔ,J7fl($8VC
eЁtBz):e^ksM%,m
׉ h@佃G {·ӦM,;䲠dNH]$@G0`PLH[Qv
6SpvB8%T.on!LA7U}eAl8RKG&:ũS)frA;T.y2EĪFI(`ٞVm` QH<"׹)&'a"P:AKhSfew31CҔ.Ub-dD(>L%3t	85[i)!ћI8\#y$d/7 ,8:7Q[(v4T4w O=ɐ <Uqk	:1$P!V`1Dw^A\!<n<rf/y>p$0|fśɺQWAdI:i͗Bd&"W@]  aw[aρwthrY)k (^^8K*^@d.үiES}&4P[Svލn hʛ理H>"ux[Iaŷ]`baNC꾷^w mڰ[q08;
"<{BDk7!H\7ށu1A,xuv\|$1HWHۃy-tyGSDu.}31xd>E3&S@w\f=wǂBw'Jv\qZ$0g$Qb(Xgyuh>Vh7Q}~9_>3J$"w"5ႜnFwU5Q6'87pvxv]F^9duXYgh9yd2؂ k-X"8Zv9+G$.JVU[ジ$)U:G0ґa<>UGkՇ~W?t}LhgA$$D0(-yOt~NNV'7P.>A"Tщa")X"	wP^Jqxdz	ȀHMH{usmXd,ׅc!BQ@g5DԐb[AAtv;#A؊zxH<}5I)+iG3PlZ'F:{S[)2"
2"GH#Gt4I;6S.WQ81DrW˘'3@ Ha4siPd9F!֖Zp$gYH]f	o2)BVm&kErlG'vIJT}i9P0є7H?G9HkW<i$)׆!o8!RTkG'hGaDwEYi;FR3$IgFY(c}"q>hYvz#9!hr;reTǑ~{TєP6oMQ߁pd!&u
}=dI Q>Trzkɚ	e~U(j#Z%c4?:	D9pX'r<>=Xxh51CmV*Li-pYr\X*ǱZ!P0JtS>XtfU`c:$>N9r`ׅ Iv[yLiX`jXec
"7*m;xIXcyi"'MdzDz_?8iA?s-WCq	|`1Cy4#[8ww^dyuEh.שT)qD'#7yb&@p-Z#jXy4~rӰzD[E.uȱ4Q	`#mPIF{(aj,;;i
 e5:=W릤ӳ̕gʜHk-8J jKDC83.TZW^ih;˚
ed	DkA<qk}}v0;'%Q8I
d c<y4r!fv{4F@")AtTtj^XK$lr*>+#'H4"|i6ƞw	3VQ@hܫ+cɷ8*N־yPI|I^!ɔEAņ*:'{-7F_j:)kzK[dZFEkMh H&+~Ż`)x>n,{"鵷oW"@qV#45*5)i&{|G{RuJEzkRJP̴ٻ$\cy<nb{qG:/[sZ֛tgpyYǭW݊9Sq/Jk %YwI`ٯeg{d
 <Fr6M4oz
Ǯe=3NkתPU;!lˌ5FV@\'V	!D9H;	G	+9V>uI=:E{v4A܋Jfz ,0hJ/CkE\ mǰ]	nY%=Ef`Xf${)i;jqС$Ea͏eBqH]!!{Y.s&-#Vj9@A	iU19rqxĩtW=zڷxJFț_"r	eOak50@'4p-ݫ
o4	iA[g70qk6N͐ѭ>ؓvHUU-{J[M퉐'( ;_ЗTv42<H}FUҙ8EqkP
T$ MT'杉\Իm.h[F"-n!|=g=z<2G7-o<6ݬJ29҆;ۭZ!~*b`uj:}p[	y2m嬭|$_uݧEGI0ձ/W1b
S*i*qEʍͶAܜS!G_΂k2Y!Ig 0XMdBq&Ln#)IL=M%w[Wn?	Ⴍܑޑ{(5<2UNf{lCoڕ^uM	셖sY~O[L"IO	o}Hb"̷DAیInh~5Sˏy:2잼=l\Kh΋ɨUj:"u<\e|cLjg!UiI&2{vǜɓJ@	-ZV߷quN2oҝu:氻T O[zy ZtkeJ=h,'uPUfuև'qv_gnmѝo+6[/yދ\ m5b-v<.!TM'AoLTԫRϡ-q12#OmD-d ϟ3P?}~)FD;&^aPŋej\Rb>XpK2Gfy2TPTңD>hӤLUUխ]̩XVu`:l D5rTIfdap՗Q@mKsg㣔[5G9DfҥM}Zj9UlʹByBG䎿"w*dq581_K3~A͔4kovGK=0}yO&tm+<oO S޾c!.".HJ.flqhHIonh)KI3>4O>\,ݫoi@Qzjfk~qv!"S/ џH,qPd<˘<Q=ۑ?R[M9Q?9OC+-|НFBRəIv⹋PB%Ahh%2C1MݓӑTsq^8RCd(`KOUc?,eP#dA,J],
Q՟^3;W֢\7e,!_s%0҆Q-fb/lӑ`(OQL:$v]%nlSQݎ5ҠiWUw7khXhGMxJ0y$FVUdUiC9{?|E(}H~cf(Ynv/!36(i:k5cv	χIM9l{a|ʖ/6ھYƨ1&D+o_Zw+ySUםw3)A`5K.	:jtMu_<dqO|GSu<MNPKfBÚmi^"3P^5Q*u+(X2	[`"fµ}kԡ
2[F~0rہ>ע$5HC`M;HM[]GzFWvu8.6A?.QoR|X7 JvAW	F{;{,SEbK&2鹭 AT7%Z#CťO!k>a&
_t	~"3"`xFL7PTueh'Oʦ0Skk"j;%d
8`m^?3+l'lTfOQM|dQ>r#DmV	$4 w@(g8 zɂE>eɌjUW?MD*vJZÁrL(XNs[숲hPHeS{B<ʩi,I,Cԟ]6;&c\HsTařvd+L&2{Qڻ
C_+*%PU'b*ַuRSqwM묹9lՓ
o?5p*&J:D֔UNcYi-z`Uf:̖e#epSëD!\JuLdElWXA@HXOɊQN*JkD3Յ<McX=u.QUv)$Wr%>\,|eeb]g6RQޮj;r`6OYx]9)c~t1bɺ=kקq@8M*A9P1r2J0D5*|Svu˞>X?UU6rHҠBWrtHeL&3>w]B(%[iFśP"aB)&J4S??<g"b

؋VehuWsWr]Y<i^#58rCG8E9⚮N&5|]k4:O-WP{ÊD#3c`׉BSH!G*icz㶎u-Eל?LQlUm-v؉ 9A6Abvx]t2lZ %IqԦV8iVoX&0TLOg4g9tl&c5ns9vd!96JcB҃|:jUr;yTlX"x/H;6DKnư$鵮Gv/$1'. J9g%BÌs<8w~8Y/jA&r``ls^/շ19ww2}^.'a#svȀ7Չ=:i0;>K٩'/0	k<-p(r𾋻;߃{[@̠QںH n*H980ہ2)>=x9
<ł7;VA?,1Xڛ;S>=iAtC*ܴ:rC9[һ63-%չ+!詁-F"4C@A=-C?KdAhB,Ӯ<ÂMSPR4ŊT,0*+!2\DKBC;9?L)|C8cTTF"$L(zh\D8[B}><K `ll@>ߺDdƉ=}Xw>HԼY	82I@pdC|"G 0Gko6|#ǅH4CXCE:F~H8KFx4$ICH9'LTAt|ӻȎc\Ǒ$I	r@>,mģ4IĳIIIiƟ\H	3乩Cl?IcJJɪƫwLMM'-JɥK
<K5M!lˇ,pMP<vS|K9EtlAK̯+$̂@ÌFH	Gaؔ ȾHMRGҌFTMH%=	F<dD<P |  xlHG^-$,Z
l  mp$L GsĆGhldH\S˨ćh0;dͰOJ
rDHr8;h4c |x9(G=,?|xhHKJK<*zLx,	4NO-G Lt#ݘ]M,hK۴gLw;w<M@rx@ Є9pK,(. MS0N  $eH܄SPҘ-LhШ	LTCsh AT9ԅE'50Ӥ  @Հ^}u)T<IȖnćFMe*7][L5rXQ	D  p-\@BmdLqG#tK\S@c(;
lVx|HHGVcIdehk,gbgedEjEыU$LSlmMuqRPeTblXDUDe팉=acٟZِ 4SSQA]nșY:ZC6ڠHڔsԬɮѯUm[Vuh]XWۄnN N}u1u[ۺAV
8    87_Hp՗]7\4Tu\j3h{npxAYP 8oKu%m#ڭTۥP]ڠByH\*POmϨ.^-ޱ6W}Kζ*yr H D  [`lXO|XХŇUDWG":]ɜ7E,-P-Pup%,8g\V Θ^P|ʹӏeܫYƹ*X5@iuW(4mVbM+=VM޸a9#΄O{(^7xlHG @]*伇]bӘ  sa=~`lG+5l8  H,͋U~DPbS;]Ua5G8Y+ G8eMWY7>	@^  Hd0qM90ӱ];
b
eGEelC9^^fqv" 	;ah ]xj.4nH~4~
6`P HŇh6n[g`Pr ^cZ9g[{p di fQ#(vH~
0ƆBN%WE%`d#}/{ Onl+`i Q
Ȕe$ޢfMK{]ƭ&)67Hf] ujІ@> ܲUϏY^{s<i$.%0G _0fD8 -dcʐ6k5Dv {
Dd,n E dHO8eDvf<meu[)j67rl]( Vf۬xuZSY憚WfmJ^Wqj۴jxg+SZ<]~i>ՐN+vM;H q!&oveh^ݱyd͸
6k*hc klgH&ObN\  ˭]>Ea$.E]c&g_+~Y*Հ(cH^-0 Kj3inh`i ]@Ք`&klb?'a6tlxmnqef	E(0WmD'f[N"oK Xʮ{ 뽮lȔDO /n6la4Q[=WޥY@'B_q؀0 nv6
R SqQ*qGLoVm"v/j Rlȇ90((vxHr wgnNlu=YHz[9 gxOyi擟vg-k\vC"jop)vae @_,z!Gl9tuh86x%UЀ VpPT]zovc7{Ӹ*6AFsq-H'XݳVo^k  pTDs	XSNPշjKZ_ }
65P0XO@EfX}^tc=wdޓ&8f pBx?g>-vW`ݿ"Lpa{,5YÊ_h9oE$+,r%˖._)s&Mj┙͙7{4d {%e-&_ի*F+v,ٲf5mK<E~u{-[uk#p,Js Fxk~C,Ikcqc ;B#lqXD Ly!ܓ.oy=XyIlΝG75 Nņwi#sg~={k#W%1GG>NORtWQU fQOמRX}:Y؃me||i@[( dl
*[c|\a Lh☣}uFS}BraCS:k !YDnO|  `%ҡ;_ηO;JFBDMF&,S	~i Gd Pst~qO?y^ǹ {E$sT~H H\jp_~֚6m88b NV!\wV"0W課ˎn揫v-9 P# !    ,  'u$$$+++333<<<FFFMMMTTT\\\cccjjjvvv|||g{csw}z{lpjko|swx|~||{zw~}삇¥ĳƦƈǔ؈Փǡѣ凤ř˖˛ĕǙʝߏؚʛП̤ƷҥҲ̤ʹ֪׸疬堮⳶誻贳ķǻռ¼ѷ½º»ʼʻ͢Ȼҩںʺٽ׿ܮܳ߹ 	H*\ȰÇ#JHŋ3! CIɓ(S\ɲ˗	Efҁg0sɳϟ@
IT8ʴӧPJZY*(Iׯ`ÊKQT<6]˶۷pS;7ݻCס( ۷ᓄ+>@Ő#?Wɘ*gg @ׇ	SO|ro"m^ziԪ$μ-mK׈Onjk+Hz9P󎎾AQsvO;mb D36( DڀnO
 >"qt8`?֭(EVጦqH8hQw؛L4tH>\uTRK1)eBNiUXiu\deZفi@*3]&p
_f7Ҝ|:eb7NDpGZHNDtӥLҵaJzKN"ԨVe@jxWeիLQhq(IN%F[t ]AlH6شH2*ؒXG5V$`$mBA!ZkKлm]ۼ 7)=lgr3Lh@FP/Telde+y{3'Em@7E:Dɋ}Y27#מAWϘ	?ǆpF5ݭ*XDDԆFxuAZ8vCC@#CDɜA'~%(|͍7Ԣ1}PPtPt('%qJ~gjd"UNŅK\*L
iSmD\0
5i<v4DGlNP?[\?}Ǝ&;~0+ZcBC(~o߾F=#k;4*?KtH*d qFt
Y
C	u?r4'|!vr;ġCBj_;&0
X̢+n>E ֥B+"Y"H:ґ_p9/%md:/Ip2GFƷ8񑐌G'4ITtˏ!9d~G!JL%WI	!	e%ƒF#M^2".=s}Q ]B@yG4K݈bORБyg|#/ledѤ:ש`CA6Qo%Ů@3sƅUg$ُ9@'JQIfY{;kU?Q^V(#=G:d'Q%rYX:H4@s8`l^g	зJ{NgSZYhf$q#Q'@5!Z]QU4(TTpńMM\kѩ2(\KX	QX2p\^R*Q&-f:K!:@xDc4Z^Rͺ=,j\F!3""N$j,l;4Rj<f4ݱ첖%Uf/p]j.l@0ݝ#JpJ
Bp?PSJVuJP%,ol(o`ւGiFf8(7)!5	L:4p)nUdfWp~o1Z#$LӘCh|ܷR*?rK8nN>nːbݔ)T#Y.fL.0l7}3ykv-7^],w4jl4v_1kL990W8QU/(..-#ϥ>ȩQV[G|nHu4YQN^`
π҂}Y&q,<#la9qlAp~oBU^h򺳬;u<]^]DS>O(*5',\ۇQ)[7'ܽxh;E	<N;_cԭ6Twuz/=ΣsTߛJAG2[{^*83jāۜ~U7mE3Gu}qe'WB9Ur!0%9.Jn$l|-x\;{jUdA#f\C]TRɫ^uGIx=Vhm=EVxC>{Bjߞ5޳6y+24XA3bn;sBP]!݋ٷb hGhh1zuUϗ0(&aWVA[bb]%['{ask'9Fh69i6'Tdf8XWaR`W'/wG-Ag3'6{zn&}oLE{pAoPzQrtF[:|BVwGKWhb(og'4GC'VRH>u'0dUbNe)x#`zQ)w"$:PtqD4]qхP3FtOXIn!B,Q1mT/̤ԇ(2eӇlZ،]T<jt#i:h[ݱ|iY\v'dw(CȎgk#~wX&&DRGhk-%S,HԄUhθqirB&uoUr#A;!T#YjM/0(7ɅzQXx7ւ~.h1U(j1'Jh݈#5F1{Hgi"JryGh?L	hȑ6z~tVthe?h#FE$@YKE.VKUHR|Xl8p/qG;	69Qۈcmh#iOPTrR*2v8(Fy+j؏W	z5q;Zǹs-	r/x#N
F)䩔lǏXC֗Ĺ[Tm8O6iVb'SI
yVdɄ9H@&9X/YIiNIt+4iWb3E,6INɆAQnw( ɡC&AYy&Px#)@Yw*6@4F89\NRttHDJ֔X^2P_^ sp'_p#(H7'Kycsj}9Hcy~ٙ	tA^[kg&OAWM!sgx
(pɔf7H&V
h7v8/s;iO'@S:EɫaJnԮs)4
M 
@

;	#d~cRjaeՑ(RӈK1rVf*4jVfk {w*S.D7 ,OsV9]=;\gt*k0ԤEnDOA	 :Җihip1:<۳>K&E(~纮H{#K{ִQG;I/:k7,s\e1)mѳz{ũz`^f#:kQۻZLNd4hixҹ<K+	j˦|+2&vk[[nE$w.Rp
mQGʺ;C̽'z'y.qCѯm&2[24þhh{כۮV6ʺst$ZYc^̫\E!LpI@DUMۨr*kLh\'GILp3`v!K؉E2u;2ũ{HDG::91!;@qP;'-AwL;:j|~C7|#}K`ʡjpkƟ\V<G<vr0܊DRs(=C1HZpn*˴Ƃƹ,4,)˻PĻV&pR0RzT^e閒̦^L&e(]\ȮT&ay	 p6**~lDzZZ˷ی̙+hL+mZ[M|=aaqb `QQoKjz#}%]g7mj:p1ڜ;MEӎ{=p  b(
p_4VxLЋ 6-*zXw_k\cxmʀ֌O#Q 1C tMI+z/JȈ<CYW%
$io=LgLďF\BDA  p!'> 	>Fi,sl҃엯7ȅ]+ƶP9־]ӟj*W< "A`3  A5NR\UͷˈJo5,fPkmm# ` A	
ov~X -)(A Nh<lñ}ۆK,0->1do	@ J a@:  y	&Fγ<XJ޴z󔜺d_̉,zޜ6ۋpP?]2^8,92!	@	0 ,F^̻.-dTN-ocyB*;ZȐɭu>zq 	v o5n~x9U>*Έ"<|`]]>޻ʀ?U^ht Y 0 -qZl|?ϒ<9m
.ӷ8^]=!/:?"J:aM T q/RN<.ԐTȐ0$UNBƈe+$]lZ?|X毾r[ ~k϶Μ|앱OzoC/Љ|G/]׉/@s$Af A +v\n>Ǥ6ɮ'ˆOd_ۿ3CY.ۙrNo̭$X÷5%NXE;_XҤ|)U+Ȓ`?1c{5v2u\q`%ZshOH	=tSP6jPЂXeM>#Ьע&mVуp"QkZ~ן++%诠_ĈOJ+ucȑ; `"!,;ܹʕ-GS;a9I\ з93MꖡTKm~Z Tfj𫸝˭m7hzβ2nk'/2>ϣzf3GPV}~)NT[n\ȟ{j6j7m	3J⌳R!sFHTǘ-s<ɔR?{4JheM|<#ȥfi5vrn뺈v-.
*1K*43+MS!3)J+;FϻNA%  ҁ&[ըQK<Fԭ)2ˊDsMDIҨ9H8澜m}UA?	N
)F5ն#i`Rh SN=%EԝzZq=٪X)|X|V-DCkj׆!{rp߆F6AɎxxvFV_K\}< 9Rl[t4J(ɧ^5.Q4_k7Wif`bãe8_v,BN,2f]5MnkEB#N 5^gauz~U/<ݔ̓"xRNsMd'71XGf,XǑqN皗x&-h+z|֟7W?sHt9kTO|Wc@`Qw23E1
А?@$adqI9Dk׿E>Ujs
V1INX:בυ%Z3;;$.<5#A,C@X,(Q(83Pl
w/ ^-1#TH<~cH ,k[T@
`c
$Mv(E%Y$eg  Pz ( z	E@RAș0ܸ{uO&?_$IR,oLw;X{&_6P5фֶ0+1@(C41Rq 
8HAԲ	D.ّjm $0MH9ORoh73ȷ
,\֔Cn
|N'@Caxujt'_y"
,8\@ZK3>pXcJJk(T ;U f1uC\_stYI·~%(Y(E4 9	@Dգ=_( Ez X<%  . ᩣ-ڤmp40@ǽc`Z?$QGbtLn!QoLưk}H\"?xcF	"dñdL5Iag3)BVyF5'Uم@) <VM	7TbUNر8򄑰aԎ\poܬd{#;.?XtSoۃ <p<(F:
ʷg.o@ @t4nsȌIU0slH\HIagՙbs]̋4#de,>ְ5L .9α-ka˸$&crs;M(?O^i,
5AeKΜrf8?~꺨r;;"hIfIBI%5"oqYA࣍)W*<nAm\Yl&q群sOQfE
=hM$/G!+zWOl$xZyYϺ摆4HiVUM`1-RWA0N9=
Js	
oPpV*nqz?\7Ơ0!'bGdOdv
U~cMCZ	ougetF`A!l)v'뼭S\C(G8|n"H[ Kc7zlji>Q^eܭĝwH'T7W.G3|'dxw
hגO/(b,o HD(~zChhL,$NTx*4=)
..峲⣦Qb)sy>K9`'2<f0Ӕ*ښ="P~):-hx 8\xؿtP	J0(k"o>Z+0#"2Rw#s?8q<[2x t@_q8Ёh
"H8x x!t-ڙ*ړk;ۘRB*\)Ó0b&c0\&$3XĎ@CZ6xpx@<P:aL3[?D8؄~Z*RDB#TP	^
mЪk6L$v@$	qҤO0o4StUs+|9.蠹QY!*$`"x:@ F]CөcL:sCxðƓЁx-mxD2;ʶ7Z#LY pqCa2}4$+cA>k21L@.IĠc sH۾99;>Gq<+JI $D6ܙ|p[iJ0,70@,L2Jse*J7+f0J_#AHX1 í|F,Ё AmjRЄ(YbFK#KLشL;l}1B¦4}+qD3okå>EL|͒4gs˧ R|I#JKIRԉYN`	O9BLS̰>΁WCŜU9HqCW0lXC:bԾf@5 >(x? `4@L#2|=E2U2ȹ7̋NI,NUNR©a@QɻCJ:8aCDR,BBX: T4 ,T%u&v%okΡPFQ>8Gj	@3vYƓӾʉH]3<SyQt@QHo8ܬo|  &՞TN@
u,7.-T~jNBr=HȾģ5U Cɋt@^] Ƚb-AҔCx $<\%UIu$|)κ(LVUPuDLlUsS+9>(JC}HQ)Ԅܟ$T\e*@Fտ \~ -JEBXr:`YZ}=QզsL.-IGjޛWUzp2P[MҤ:,*Xx\jQIF=XLԼAoD8XT<pi-; B:teEN|s]r8QtW=UWܣ+\x\\ b%ӰLǪ$kBDkfTЀؚ:ǏmuA&I<LbNݺ}>2x"wyT<کz ? F^dM15=d ;{Z[DlZl8Х k6z]jpȶ@NGNSgpWSxǽU^'ڋ3 z^8U\;C84%5@,&(ߕ]_8 ia˒_mT1b$OaI^l'[Q
V2(
P=\F	v/h"8Wj9aӸQQ>;cu $͇cи` K݂BdEn]R3##v+\ 亵G#٠|.#["CUWci3KchNȔ/iAP-]tX i	ND&#Tm-C4-pgQDHLWCV(M=
b'҂@g]^EZj_em`NI	.c8Ѐ< Ð_t| E	kGxV"7o2*cwJ^Nvۿ\ vY3}ncn\al^@n>Q>@zhNm@nhfEK k!@h"h&2wpP#$x]W&96pL+,̱9MEd?<x\}cj̆7f~(%m~o%ꔄؕmah&؀%ȃ> [S&am=k*MbW]niozb-]JgÖR> u|M\4l#4DYS}*f4Nɪs,flpȆ %`@0vhnp͉!rRJ.3p8y-4d	QvR{BiFctMh\Ǎؤn^\no6)\]xZM&߬Bҫ?-> `C1GvX)ȑϞo:LF`a/gLN;#DRݕG20txzp:cr쟃Hy\~5`iVMXuǏ<&Tb+?>J>Єj/_0hm['F.b^Ǧ`8+x6vtޛ^wkJy>j-xӢ<3u%Ʌy-9܀6ONZs%ϥs8szO	}IWǇI<x&3⛱xxJ['@龎v>qnt{0\Wpeft^J,JG<tJgiW8gn2m5b6RWzTWs~I`0|mk@mж[nox$rUۊ뗖M_@i`F^H f18Ccow_l\.ho"w$xzFRE&*_z8؀$NLcn &}uz-! |
,(@3E+XpCDԈaÑ-g(főr`=xC#)fReJݽZ7uVxƖZ/Tc?n-ܸrҭS Ή!};ԇ".l0|ׄm1ȏu&r>o׮af17*qڄI0cԺav._7T[nɵ Ä0wBiro5Mܸ9A)E=Sa׈Sg
_:z\i)O){,=c{SW?L: Du5ψ]0!aA*i&gIƚ7%NgyXPI)f4Լfbl:[c9X]GKr}Q>#JJl"P=va*7wqx0DOT̜`7VKG|R)wѠb(	o@4Q"و*>"~*"g-㌥	&c3a#*nCFUSM<J6Prߝ	rQFY%sWfI	M7^^2Y{wSrTBӎV<͠d}NYV=Y #nVhI5!V
<6yxfx)kXq8
*j0Ԭ0t5:bϯSGb˜Q3Dϴj'r.Yu_^fHƈ&Z3S}6U3/T홨1L/S	}[`FE
vXkŏUzΨa0
Ȣ|	X:\5lr:?V8mdSPnM%jҵ=QNb3FQ\QgS?i_sUORK)X$iD/?LE7UxK_i[9o!7*9c#8e:9k0FW`G?d_Y jٓBȝx3r(% wwEa52=eCGST* "Rk[Dm}VE!,.qF#$N1+, qnFb*X.F vx0v`W㩆1DmLZV	kHL:Auz&1$"	Oh4Dokzm-_l9&0#U9_"+s..aVD?ƥCRSeWP4q9B#aF7!bPgjs$IX|"oRfܙӠJ'HjF3@cnP"(xemJpy,X̕"QRE tTư}S6аܫY2k1،:!vl)A1x\2$	%?%$r3煣$L!PtEtZ-r?B:B	CA@\c[r:r^oLNISf7iw0VTlX'1n~tRk
wa8VRXZhFEQAez%P|	""6@J.UqKhQEkZ6l[MbJFQk,3dŠb%1vf"h}VaZӸ(,3	Y˂`-TScZe5B=h ѐ#E.V-%*;{/4	j*+4>p-%B	0Ȳq6X͆Qt1<VV}"2VRz;*L	&vvyC$2pk<h䭰?,fƨreDNudG{iOTZ4;&)+Scb#
; kEiq cR6XU}YY[q@VNMp9j$1^0^('goeXk^	\j(ot>_N1Ѣn6Pq(61@!r?cEw=ucY/["P2_1)KZ4.._Bns~0E#`ZXw]o\<DN{LET0"l2#[>0و94Vg6^lD<lmo2(z*$
TJ4~n#VjCJ[VĮO˽~Y+Ē.$:t\vG̀j#wxU"*41jTQt#XrMJեuyH=U֤0[f\ÉYi6J7xQAF]%(^00PYQC1SA9(_XIWqI=Eq̈́<EAԜE\DlOUt|4C1BC|ǫ~^^ ^f\bΩNޙřc\]Bi,])maP?C:p GB-$HбPШėm[m%rLQG0]ޭZXhD_SK10=a\<WEuDv(ca0SPmNay\Ԁa)B&dC4)	AIEI%cI	\Il(Z@Z$b|=x=8*"aMCEG56:1@"܃IzF*H_P2@cN,#3.YDL4X mc@77b/
(dP!fB!n;c[`NK!O? =\CϬ]PITDW0ZF^D=!S5Ju!8!S\"\ׁJQM:H!İ$TfƁ 7UgԊB0`e*B&0UDd&per$0Xҕ<_LAe(g\E5D90^-]E}E~"D/Rc6E؜0a$dgEN" HimZB؀lk6
Z&l4l6 nf(:K먘o#|h'@`eU(rf؁Ǉ
D=$SB%-wG>y"&X&4FK؍G\^F'|aŰP~J_(*(* >%9z:B5xG`֤A,tWv>^baIYda(0\1LDaECܕyM
V"	!/g_wȤbi]Yc\F&f]@((8
(9l0dWݞ*&ؖPI'B稕hhA4JzDFj^JEx=UDq<ܣ@@a}!SIP)ƪ=fP꧀bi%A/@iTUf!MX܌%.@Y؋j+%B=ADD=$Ed_M'eM3K]j>ORSlO~HnvCFHT#^\́΁%HTB%B:
U"Xqls%[,WVi41DUE"MC52<LY5eY0`W}nQNTO3ف9,RFAm\܆%Xe-*)/0:cn:0 #zܹ,4Y׵(\ZJnA%ZM3hgEe\L>UXmÜM`NfvLwKn¶bdrpgP/A@*PF
f*pN:֯C!@C
RbR5gAqB?PaDjŔ9|Jk*Pj-fJqۆN%0BC4p8*@0m&XF7L3HAp58srZXf+t_+BqFbo'cT=4ԚKoQd֗lfj5mC9x<F%dr\pX"#WJ:f!b(u::Kݹ#@dbZ*/2OZp+`,bE52RFaWP@e1ESMf*he-8WfahYC5t38s\:9V}-<wXC7X3S3^>p* MbNR4.De^ȯ>UiEbG֥vbVGWDaEP0QqKK*]O lZk 'J\#FR5˜gv4h, 'X-F7H4=E2T:F7PC0PiSyN40:1?+hths>"(>a--lJ,IT4ZGJlOUWXYZi.J.APH\p6ڊH66͹p8%T
{*iK9v|HPF8
5W4lkqHg?s~bRqO0ŨrߩEDXBZEuau`7k	a	x˒ybO"}7sl=3geq0zN6Hfe		KVB-/4{::.<8K[(óee5P4LÞ7nGa:'.͋@ Ufakdu:agЧ%/Fֶ߅2xe)MEgQ~9Pm}N*,;[pƢ%9͵Dz麋]FeDT:mn2qDz2WpDb,8)}E<t5;cxw_נzaaIJ&s63Ժ1UHHqj]Mvů{t]5/l>\d%B7DF&Pă>(Ĺ6NgT[oxӁ r3oEW<FGP,q'DZrME9,z|-zNWbkc}3\lg|hQg|ap9̇/Diɼ|jFd>M z9lu=7bͶ5rs?g	e*A:ƿs*Ů0 J̍*)MYݩ'
H'7bکptfy\ߣm6G,Phl7W!_B-D444D="_E Dju,3a5g(R{͠gǐAYRGJmfgYC92&L#K$1%L |#ԝS5uZ^1`ƊkF,<zNsZ5Сwl\s3fZOYl	O5|qbŋY/JtgC͛9ww[>Рu92_7ϫY:4ޮa}w۱C&(mNKaDs7ȭ_x֤ë&]$9w]n!f"5Ҥ'Jp)Ϝ:KsIq|3	J>׬!2`Ŵb,i`2,бУziB 3јjg$R{СtܑBLHP5f =J(!obR7RA%lxdZDgigj0O~jhHCy Q!|p>kDJ#1|IY'FS%Z8cT	ƚCtວz)Q.]DǬY+ڸ|l{? 2(=$)3Hŕn6/I^zAK-KĒ27)Cƚx謦jNE1gYѬ4`qʇ4QR4>.TM?SQud̸Jң3裎jŪDeD:OZۂG:jP۲>f
2h^{ sznzAl%9ĒNt	)a kn؏LU"	ecE{(*J8AMPi։Sk r4PQզc)WS֨Fcxkb@ѡZ-Ԫjı	Ѯ[{I3o.+%)K5
81ygh%.A8X#tjR';e#rb־W	;A#I?QPc	ƁW*"PQ	dVBz(Hh&\NS32?jE#lJ14zeDu__5d@a־|Iۚ:I 讄7LnH/lȭ9G<q3\Ms1ӐCNˁGôFjI:	J\h9C5Q)riW AEn7.)Qủ0s	ŝ)i(V4fOպF4)-#<6#l(Y8@::GUFƕKTD.!
K$q9}/OƨP}Q94p]U蔥/NZuD#0V2HPL<'2O }l$"^pB+Yt>~)wNՓF^	?LtI2U28Td*^xaWDYuN0D H5ҢHӸN{I@2eMb&+*EbUhډ<u714U:u
s*!vWN`uUٺmlC1
9>>lq\MY)fb˖6:8*?DǔPg(ϟ^# V$Gp{[jV&VU%NR{Uz+e5|DW8^95P:d7cŤvdfg>^Q|989naYIA(NCºSIr/,o&4Myqw$Jx9O9Q4XVAZ?%!{|`+ezV7P&fr "x#bzHE*Q^ g *IEG F:HA<eL}ɻ8
J>ːؚNi}.Q5XW-GNUI";ZP 1!m\C!73e"}Tbk_5L48)hA+h!R(C.'*}>t6ٚ1yJ5CM-I.3Si>e# WNΫJ+Zլ?X}Ds'7;ys3чQWWL/f*%AXșTc~ՉUcI,OZ.9!NZ62x14)Te<Qt/<X>d<(<.ĴEV?:\oG`1ҫ^@uxn6pN 6,'!A^aXȁB9N:'0;- 0V%t,BNBG@UP:+$bN#̈i$JF'IȌ~jBq о\(P^J/1>#K!D# $FC|GsRHFHOTj.Ha4?<k-*hd
J.#Ρ
U	,:#le')$O0̨װ*z-EJPfGEs7&n6Bx8dlA:!'<NN굄ì#}`*@H Fl(a"2DSk[P!Kl$Tp|YstLL	eݩN/B0PnhnR!$	0KԱuNV7-24F:0ΤAhh@+|/("XeFŤXP` R{Ĩ-|>p+0O&r//#rq 
&Bi臄(zIsʊ20(0ˏQ%1zI_#5qR+_/*^xMhn64xR$v,`] DĔ+(P"\}Z|n(OXj"!}#%C.R$R$) ',|5(e##pʼQ7MH0E(p5A8P4b#\s7\^v΁ΠF%Gb,@(f
/#M'>/}jQN*Aa.e&1|2OEeeK"R<P|pD"TS(}2t(/d	cZrS7cDe?[0h*YT38!I3pKS+M3"xFBPG8ajNF@~ޢE f*d-F$Lg0x1h#0d+Y/`.(E<DĨ|*ꌘ5C6F3BrdR%R&2xgmOLS#PSSS)F7+iFWqAU!x,>pL;tcP4s.	k-N $-&ᅌ?E10-QeZƀ,`Q./b|R聜5C՜6j:tCr(kt"JbmMH('d"`AM]vE6{Qp^O*Jg.u54V8d-!f,S.<kJ(^0
6rrP+,B,Hcӎ	)/k"R$aBkѹOPiu]O^mZe*,0bO
$H^)s]vY4ΦZ'"G?!"23%TsAȤʢE:Pìb@aBaK[S,LvKiVQ TrjPfǁ.fB}2l7lTzgsQhzCAt.7ZOn|Fʗo6R*vBIdy4AAF6:lBwq9>nnZS3s).fcTB??gn".JЍj+Lyzzb#퇁8}x6_Qj	1<|EƐZT](!E˦o:mhQ>ʠflA	GfIlx)r/ݦb^wBg',"ODU	A0!b/k'.E*e3,Oz_GRI4#8etE7CoKd8fMa"ōeY`$\HvzHXq. P X2t.4T8~Bhi8[,N].O`QX&$;Y9)G¢GƷ_}
KFjJ'HcKƃaG1A!>*oCbϜ7LJIătEHFVr="f671	9'h@c`B0&뮮~NZBy܂Ylv'x	Hlb`&S"S{$va[5bGC`ظH &AtxT)FW'/k	.a>&{<G%bɄ,$M1Hpx3YB~d|zzFZ{w,T3c{[*5xʈjyDa%4K8vaD)rkP[j݂#Ֆr@/Bb^JvoDmِD,@d3PIM<t.:Sb,=+b(Ih#i)ue֠H/0J\~Q^2q(#aڸN>70AB!!{Bu1KsgC!{VXsn"/Ԋv;?Y6V	d)qm*Jm'<)?'*n}׈u<59=TN%"#4P<̃qρ
mAOBM<$?+Z4AU{8~<0NhM+@Π>^ay[
PpjjmwUNݧBr=6%D}މmTqFo#7~B 0pʅR!欙gLL)'a&|x%OjgI=m.:'LCb؇@y`?TT>kEf|]2{E$+hc壣ob^nP[4dyh9hz9ȡgLc)F**WY	PҨ_@^F`RU3k;F<~XG?ɐ'_9 "]#0"dg+Zƍ@o޺ykR6Hvw۹s+gBhY:ck%9[lʥ+ͫRK/e5߽SZd$bzg<tYgwޭE6zǔ3tJ;'5ޭX0t/ɤK/\'az~}-8ݼyë׻ċ?<~~0IZN1U!Iz(ruo63gVʖ-TVdL)Uh[yOjvO5H3Xc&Օ_4C=h2^?o%fA4H҃$xlc:r{:ؖnlV=m\VGؕ	e^~	^yxӝ)]u؍4I&]AyGt$yؠr^759X-DE*s9K38
XUb5S`VOV5& *<?L]V<e: i_xVYX~e)lӚO㚖~XIn.йI&xq5m
vzw:?/O7џIY3DRw>+JM5HT*UV5UWӌf gLn+i	?Y1U#amVR{rצmNr"^kY<^Kvp>̙ۜBd>.xeIwK'&gC 1A|/{#5XM3(JQ&U%X#SaVV"Pb%[I]Xhr$0Tkzi6Yؔcs56{=XdmE1ZvX:ek_9[3cM~b5Ь>d'P?6>:R-*Id}mpLv7Eπ8ȡ}<>-C%*<GUcV΂MPs<Bb$IW1JW,B;8xUjJ#&+LG3Țꡈ0f=U+lj#qoCL⮷}ll1:9625Mo9K&ӏk<-1pXD|Pd2	GWɊ<W]y(V([hALF=80E4b`V4=/WJJD)-3dϊZ-2y"3]0b$9fƃьq[gHǑx{ATH?C=*sH04"0Hɇ1bT#:֕->)ip<kBa6!)XJ&uA7󝮖WtT:㨿٦Sj-'&JIE*8$o[9ZtsdMD X4ր0 "BN=RM*Jq8%ro\dSɒ2>UvjFRդ,|ZKŞcgfIE%XԖKg%*wTgvU}bQf`Śa.X$ֲJHu)RsuXt]$9h"}X>4<^dT>xj+YSeW&IsF]8!ylvf)bnCbbh2|jJV
ь 3)i6fmOܭuTi|q\-.QS<A,sr$K.2(#옧o+~9.I|DrC1XJ,MJ:UЄX!cȭ+VR1`Whva0[jc45l1;RoVB7n5[~.,2?l}9=]T5*	\mPro+2ݕDpF6!tdsha<Ft@ \v[Y+ҥZ<aÁyUb.m&;wX%w]kx8_i۰Y	So{n`U4Jk[Ӻ4׸drK@d\|/zN&<:6tD%v>Ǟ	y4`6r1:s
AY؍Aފ$JQ	KPB1C3iL/&'¸lvIVNmw6yи9zK.]d[W?un۟^~:YAbeT߮0 ~.qKʢ(Mn-6H4>EB	j⦟+>
يr' `aBA3qVsTg[G[VUTvzzZ*gl<7sMt5W#6&XDEUA"l*:77|hR|iuyB.&#?$Pp`^v!1g`390X1q~6"2C	g:$3 ')<bhb*&2310S<&qrp%D]SOTŐ\KMYD\x%x%zd{Ql&p${yA_e%"艞H47hvL6"HuC'.76
!?  7|R@t?~xn
`v1HPP?,XsQ)#
B	JR)"҉{qR!,∝Kbg`<~-T]C͐83TrSRz(MFfU¥Y5T]\Cw岉UQl"rlA'sUw{kpA.F\7Rա78T'Tݰ،DВSK`( )opNto!2#joaBÑ vpb<Q)K@qA
8y8I*$j\O#XXUE%9UB6z'H[gb'SC)&%? /10[A^԰K!PI@ěH
} ب|:d#}YhJgR*pȀoi
vb1g	d`p9})!9ܒ&WEGdwiZK7d$eуs<TǓur8m#8RGЋQ1#80 _ TǍ)\`顜 *tbP/Irh`SqM;ӏY] ~YM a$Rj-Cj
1hu岠Q7҃:>ٰ D1IƹA0s*-1`pJbp*@ZolQy``$|٣r\Fb7CMS%R*9åVJc&Z!q][G'lZ/$/DmL!Px  'v 
mzq JL;57ERC=: 2m9fxJڗ{!,9G[1ԓ %wY` zs+8/7s/BkU@&~ٛ :a!:EXe;^QpKo+Sb$L*2"j5 iLAb,D
"1ZBD[-"Ykٱ8h'xS'j[!0ځP51J|
!gp#ʅG{aJcaXhYBDқ$5h5^'rZM-t15tAdA$ѶS$rrtvxy룦3r|K'!-Kmm.1XKvWAPQ6	0:`)K-.KnZb#-į*,r)&łCf5i=غ-E,2$;5L:g~ý7:/;!W|1!uZx(TY@[^
.: !5KͳY2JMG^ $
ZxQO3	*KU»R-Rq7éLSRüq8̱<¬7VpeSiP&K3Z{Hd,qnP@{<wE-Bw}:4@9aʐa1[Pf ӌ@.ZTRc+ta:}!Y-۴Ƞð,R!5>9#EۄzɻQhGeR.{Tcޠ<}2@.+2^*SgWT1aX2w:'vϐ9ʃ!VqM]A^ǍiFjvS!L*K982Z3"R°LPð"`"|6g}NH7t=)kr/rGJHuExyM @Av0(*$)^X@Z3d%p{P):wwfӻѪ8-4SbQݎ*WDT,=wZ]mhinC&	VcO!wpkuhMGX1ZI*[A@!"gPwÜ` P#B-óJk#r7"-;κL$\Zl53.7F!F>CVm葌~̼YP]:c8XyA亗*ٕ2QsdI P
l PJ7q<b8ǖ焁5ZE$ü!%Wr5c5ɈܲW'iIUk<{5V^}}נQ'L+@y]EHu<"ZO\N:PvVI`	~z!ge2Hc" \詂sl5ژ]17
dxYBZ[V$Su%PE &;tVdF'd!z$({5qN0ҽ>у5'1r"Hx8DnK!8HONTs1
sa14|mq{R"-{3pxz+Q2C=m;{%sjG$1*ٴ",l8=KN>6kd4l	O齇k6@Hm> ;'<{!0O+ț/Am
OKp{
 ]ߡtdfr樻I;`ZH)S7;Rw<"DY_&jlUFp{{FG;k7t;`"mtܱ [|Dh_n^KuDPu0!m;w>O3yn5rRS$>lo#ICU9?J6YۘR?3VԔ'wU񬎽oTfڰOتk^CW^=CGO1=t5!KoaZcٕڠ?~zѡ3kt}OƝ+Izʒ%WY{f3Õ#<<9_/n}o7;!AꖾCݿ|OJĊ9FlPJisn%\"hf"+}hIi&K)y9Q((*NZI(κ|j23
1æJ+*rBg<[z,jIͰzMHPOIzGL9.Щv4B.:Dό{J/ҁ
8|@(ʇ ۨn@OZAUɜ	y%rRAQq~

:")eTg6i1fآ1L" W(ٴJɰԫx2IcS6ξr2܌t`7{,NӮŋ:mbR.>j8d25ROtS<Q-F8=h&_'G[N%r	i',):H?4H+JY}%HPƙsƑR2$k.{l6Hl$R'Iq^w4XzLMsΕEή.R]<tQ&dO>Ee4@Ƞu'wh|6	%fa*
9&<(Xw:JYꨞsƮ/L[{ᩪ!ͨe|ҍ]>1x0ȸVhB*	LM\0,L|Co 8A
vtA6n8dGѪuDex,YbpT(&9HN$8FԤ25DD4XAx81[d!h#WRbpF3᥿iKXh8*D<NL з
Ґ0jH|`wP25sX4I`ὤx6;1I4""6y0%B-&JK8x(E5Gʋ?D?3f8Y8#qnN5#/!0#cĿҝ Hz7%s>B0䟡"73mvJm+h.Ċ3#!0boD'#2rL0EL0Mɱp;I3cKi)\U6/x 6}d;)?ӫ_-(C~l!zԺVB#?#;.56shFh ѐFJ#M8DXb0HZ~-,\$1dEi>(EyM3a%.]UfV`Jj՝U XKυlH70=>	 ǻ`̮~0иF/$!eQ 6aJ^qVAW1rCՔ %1ZK%_4s=r`B|]Q=LԵ&%G-:QmNi6hTۦϼs?.dsO,@華{)	;EzE/RRuװ,{&#Bx)RC͡sվ\"D&>+Xa S}t*>~{zĆgIqB~61w@5
W.Kr".R6QH*PA0 E_|#B#_U"!#+j1Ԑ Ț&L2$^GH(ƌ?U3<`\4b!L<ؗEi|:jUcvgEtHq=dv.a[PnLȪ=%V}ZV~$w-j9٬"VH;[2(nb?!xյ[~5e<ȶ0ƓrA"Kt4v<9$T_=r8W.V/%AelHR4zqPIUGpenl4hr$J{W"xNUuۈ&mG{7b!a#<_WZޤƬ&-0'a{Y?x`L!oȟ?6Cɳ225}|^ds 䅆󬟓N
9Q[؈yh*Mx:wS;F[cBA#klr[*miy;?72'PCs"w*y'ʿ	:َ8R9,L*@k+hb+.CM94:\$$ę^hˆ; "jҍM
;[r K73PdZа0cl~"x83oB+-4䂿@52,Cq	y.9<D/BDP$v|X63|aahșz~6!h,^0(XѬ j,"x[8hB|
(1E*+'z`	`7"+{  e|-+|bLjȍ(WFA 8\2r@5$+>ip(N}'8H^82~TE<K^UXX≐a;kA^:rs"9	d 7h1*'{fXB9`V#cl#g,&!5ɱJJ@x,
Eͩ2!ÁOrz̔,(6VQb6iȝJ,9I@H}*UK'hH/2>p	s Ĕ={J83ia$L ?x9('[L 88h|Py?M mq١0ˈ=~ jjFh#P$x3N#9h3(k0H	% d"Rp[r5K&6x	"P܈*xҋ&!ٖL?B92S9F)QDb)@IܴnNFɲ  F$FO'H^2@,|67QJ8KUJI9^Y ܈X	SZju7m>fi7p	3д >&qyx$9WӴ-D}7z<B?;؜+|/'8\O)0TeNсNF^G~*҄D25l-8a5i9KJkDXXfg	)XN)cBhs>FG3p
Sy/2C} T}]ƀL^t_WEG5ѐ!Yh#Ut6BHiDXnDi\X.비2M>O)8C!xxz)R|ʹ&cBxFAa[ʑEXh1=Ìy< qNJQ"wd,]ЅBU9hCJϞϔAU,	5aSUO!~ OXYX2(NRͺQol;3MLKˬg(<lSx)[Q[]A4A6TEۭX_+JVxVB2Ug	0U!:U/~	axVp`WXn@Jh#qCQOL%ɾ	Uu0y-둰Ie? v#R$#' 	LU6(QL!b.]/F=\`b=]	6'sD]	%NJD5\(/bVPWؙxYl[-J8gpPƼK^喪Zӊ{0c0AҾ)1ak}ȭgf=ۍbAUf"ɓiN?]x`nNlՂ	xd|p0:,&pXwn7/Ѵg\zNjJJ  	ez[q{&^*|-L9g ?axWXeV"֪ǀMݼl<7,z ,܃_
+GS3?ݱ,t5n됢W`S8KG!&jyo}B`A;tm*͛)4lTlNoFk<IC2,hlÔާ-f`@Ɉ&KמG	KN\2j83͉7nq˅MiXnO :`;y/3h{Lu1
{i>nrh1h}|M،M+Gwǃ2MpUgf4\dގ70lxC[p`;Y7=,ܡOs]}f6i1	Z	0q0vs%Ģ1I&ۈhG}r7rox3p4?Hs]sf\EmXUp N*Oį6?b:t=RK؄%=l}ؘW06P?txN+k¥KC'k$_Ї;\F8鏃u_'Uؑ1Wg/sM!%KY,wy蹍p0phhm=`/:XmOԸT%3 68W1Ϲ`PM;P&y3*9S$?;0oi'GSEj&sd?s7ă	4sȕ̍〆NDp_}U73Dsݖ.=XmMxcU^N(-0(gvAq'1LcVoVZח/3,fhj?vb7g\sh%iaX5qЧ
,ϒ*Vl),(h%kG}瞉q$>|˓'iu)s&Arf
2`5x~H4h<.]
رyS
4^֟B>*ej]*iA\rMu.]oiV]zu+'#Nxq|C5)L۹seo_[}&sg9挚ץ9VY{Ιb ?-Yz"A}:c~ hx/!9=#T0aKvZR5"X2ۗPMDMiM%i֬IM70F+7>eTb\JUTPu1VM%TMc<ebRt	߈\auO%]3^#<HWCYd$A%ɄeOBVcY7dLiCjlQpg8sb95g4Yқ	Fz|KwP79x,sQ4O4-Q"34c`m$FA%YXքly(1c嫮e"f8]>+[4჎^}݃NuY玄$֘tHP5Z6nh%Du66G`v©MjevNb$,[pgR˨J#87ݤ`̑oA֘l-&(9ZvYcPo<QmKT=C%-<8s1=iMUD5.6V-SƈkRxd4YegT*	7*٘&1bI+s9%iN5]sB}F+DR{巟Hɬ3>|_>b+P77Rŏ_uZM3TiZH-YB"J"B0"?CāFq4T%М%#^6`1qsF6P%fauᯈCZX;H(2xdI&+#Brq>M.h!d(@70$gNЗQ&\, 1-MZlZNtFe;JR@nd.$$bԘճ\E$4!Ec	5FB(:i	1)	V4h3
x\=}Az"ohlR[$+4<cJa]A\:~#RL=jm~g q%+dg!Œv[+	8LI#eNOf2HH#)
	vK0L0IDnؙ؅Pfp>F>7g9!3Әl9@3) A`Y3ԝ<	=y**$`me$9؃_emB TD'QXUO3(Bi(?	BD#Q^sӬF-_T[nu5XCǜI.V>Շ9bM09 sY>'G}CǸhlrWot`G<Rkx2A-[W-c,ep6Jx@G<bqPH'g@\+IKlFnmn *kCnH<(LP*>lq1`Ӓ(}>}3Q[AW/amZ7H#44lGQzbkYX	%ph׉gu3[;O*tX	-,&Ũ3a7c@uX{bcҨ2;bWL1%TX!܆WD>HaY7<m
%3u,Y2(_䡬ȒksP,Z!fϖ-F6h5$mvMa\c<oⅨs)|ePK]iP?_B$&Ǎiy:po5	^5hXzHmhxAoފ٦6cO*{%ޕ3E+[0	N ѵaJҦs$rppZqw	^m 52YcJ,P%29s;j	i Td!3ڣ]qHFØaL$!`=)6JI{B*~%KfN6?^.wכ]]ZRxxX-kF9XBT%,9́H/XL4A1XXy;xYѺ]ۺ)8BE]T`HFyM`XZHadZN:QqFu0k0X	ka%$YTm>A,`XE%FzeQ}=]N7@:`!"Iˉ`]5`EAXP߸`IC͈u_^(!,i)!m9BZBTYv`D"
FFdLTfImɜDsM٨QL("y+SA,IUb I)`<RC58RDݤL`T\> apbX0!ѹQK]~DaQݖ#1d c\\?bZ/77v6t#t7]TA1cA.#ɑxLLX^LH
|%cLW*VObDV>ԥU E،C GGVDDщҤdd<&44)dh_uONdnc
%/%Qbc!e\捕XuF<Y~QT9XÀ!jV	oXOHLx	ʄ^QĀH]\ctBB^
Q4a"zAbVaN3H&Uc>je&݁tˣKI~ĵmI/f.`	9AĬcmbGlQjFwU$w諽@HX9{BAsIRE)hٞĚʹLL]h۹A_˱8ܨg<A_!&܀KWctDH(ʘL:hڤIIfD&2< e> S>uF!
H¸ӣQrF)l5	֣{-۲'YAjB{Rd|~)C][8ZV<f=&zR~LkdV꩞kId\T*&m!fkhhcL*ˌGp-I4x9Dr؁>+@BJ,|WiT+I (uY]E|۫Tw^S%O%խIf|V_vbI][I1/5k~H0n+hD?뭌+0A#11,K*RlzlBt5
9sIͱt*DuBZhА>L#<#ʶR]A*Գ@U`I $)ż=ח"ZmGFH8}GY:ki.-2ڗ5-0](6N7V-ʎg`u,@C4U͐Yg$9kCXI׃m/$Ђ++Zh>ZrYv| ƾX:\"ԄlYf<`P།K`z=},JZ_Q&oG.H_?).p=-E-8R/B2UQNǬ)gTSNԆ1@lҘv<$C-$YHQBefRA,M[54@C PxdPDC_+>Zf+.0d		g"IԢDʢBZ͢-V7)P,0p.Gm&JjYrP"q*Nwur,aLX?B@%CdD-dTO*8b.AJq8)WL_Pb[ر\,E6*~$|JA@Z'όb9H?tC&c]NqVBtLo{hĄBHD4(1,-BADЊ,X-0J*4.-'( ȑR3QEJ$8i 6REձ79M玃%(K'	'gr3Mٮ%oEhqcm-,7kGuE3sĒ4+ތ/qtG7Co^N@%@Ul`9+BlUa@	D!C,e, 5va\"[l]CMS9߶k!\5#<Cͣ٢F"(FrpLfKi]-aj1i_ϼFQAsBmAx#4MV$s1ЌC5cS7p>ZB?U쥟4R_&FV1'$OmCOn,JT0Ncp4ܩ˙fɄ(@l	soZ^_Y7c.^tĔw/1.^1񌨣Õ8ɂ-9$v|D@B'	i1B<Bڻ+ԍL49ׇ;xX@B%R" B_TclܧbiܝUL#)CYDYbmu_kA9^sKꨲB	2=ytHI -רԄ)\n7S}6^D҇qbR|MȞRzAѹmC<_,;Ýd'r#\5%(}@І)§[#cgW5eUYԚiLǻzB5YE\/kA<rh. 䚶!L}c"<ҵȶ,TyZQ]]
zUt};c:Yk}b	5?(Ž#L	>s_S7iM!
Xf|wh&\GHtCG.Ӳuv$@`9/>tADUaLgaS>uj=1,уHYM&QC(,ȻcH`F_ًYB
<XD/50J
LLc@#?A;!ꋶ4^0gΜsV'\˖+-F_lʵ3@rZ~f<}=+)}.Wbl5պRxM_YƑ%_׮lރ7{솽Uݰ];Wpar6<!<reFjϬ=,9DQJO5 H ֽ7Ȗ=w}>r[ԭm}mOZD"/0r1H`N˭2Xڼacfc<m;

6j)*}Taê70沥  gg1D16+jk`4l.!ëDxr<[P!%댫*IB2TXJJ:Kb-h@q82t)|F":0Ԋ=nlsG_|9=pE@!'1NjEWܢWİ0ȩQɊ}X"@yK!	2#qFDRk=%Py1x0yHGyR-"-7)%:]B-q5|(qdM(G#MD%$8~!
駐jJ(	EQpA:d
3NRE핪RK%HO}XNA1h}}4]GO?4F1k2|El/e {yV\q{16ܻ/K$;s M͚-c{&Jx܎2fu!IѿbbK6PE:0"QSuT[y:YŒ5pCiYQ+֯xښ븚ƌQZF
.=칺q@KLە7k,%6)xFR0klAPR@QsI:@!FD#tӮ#<ObYPbgpwWa]RA⡏ATlB.HE(2$04aH4thTp?ƑFe-nȌ>beY6-fG? 	Xy+]j@L0ghJy*8HSdPD9R7!>,ҝAd-Nu)/6(}PyX"'CW4JB]
O`P\ɦ4ʸkGpƨ>4҅Cƈ<23XЮ*Q=hy2*$\DoN"(T|a60>wk4fP7g*HZ|ԒPeHg7ڜbZˊB=!9ʓCie?3f2e9 !6tzHy!%f!%{MAvs^-o9#3ܗlQdZj3dR)Ds kkBJ"R|r(GXZln8YLY>E:LuCIS@Ɛ:dl*@ZІcVE4"?Il2hX3adθ]-`[Cn˱*9:ۋAVC5	ZĎ3) ]aU"QA(13`0Xμj-:Z0m%/->ZWN#!M_2\)Y.1"DEj+|\?dJd75a&Ӟ$6Dh'_r'gUc<s<W^UoȖ&K_)ˏZ}5;t>c	DVl }^(N `a&&Z^s*>ӎl3tlz;=R!OO}a#Rd7H>7ĉa
d q*b93Үj+,ѐyNsacȮe<)_o' 854stS2@Ix{Fa-cR4Q-D5'3OԤ!a-ۊǵol_(c8mGxq<OR$Kɭ85;o(
r`Y*Ҕr S!)1c!#X{lcSx6xipc0Ù*в3*w&u-9B×pRN`LfI3=#G#Ѻ2P6Ԏ9C<@qrн#!OʾC}tD=F<(KolqI	C܅jEAZ=0=&Ri.p\w%}s<a-roWmn ȥ_IL@4@_3$qȥ*2TVL*v"дxC((Pub+$n$RaQl(""aZyl5^cŎ. NDܥABȏ?;֏)EZ1GDcւk!0Y0F,2]3\B^6L4Rx`'C) 3HT/NdPCVp8|*rDQΆ-!>f)PxȁF"b`&HJ+Th΀@{Cԅ)چ!RDp!&C/&$kn
4\06AA^8 6A5<oA0dI(ÌoamOf]k:%r#!f1P0b"Q(,%+, +l۪g
-D+@)!z뼃/ZjDԐQ0N"c/0~+
!,QH@qd?CÂ`2I4o6,%8֮"ƥBL:20"$[Q\7B$l:9NCz1+~JfbL)(0f̭)ATRO-hZ+Cčb-CV1C~HG10#	4*qq0Om"-#2g8$ziȀg$#b$d%FGȁǊoeV9cX@l!F9ͬT! @(¬C7WU 48.}ΌCR0g," N]Вe;	r4TD4DC@.WH0"zTG??cCB9\%l@'z
%dB	$PZ"4-&U "^!:1r,L6lET7 N-ҦCP0JG#4HHs:,~L;IG#Y R _D.?"TsjIOFo ڴ%tN=M"m=$"i 896")zqb^+{h\a'K̼!01YN &@6E)Jw§eޱ/
G/&+pYnmH7$IIìQX*|^2=²H/Zn$RO"1r0;X-dNs"K]u~3#MP( #f>T
Q]zQMOʍ& ``?n\lb$03UâE(~'V;/&04jrWE&X5R>,.h QK 0@*ԐEgK"h3zcuUiE)\u(v<i!Q$l, X4v" b(l?A `bnA{* H @&<sBqq-aES]
T
O\<74V\!NU0i*DeIt6ē!;)B(C'?Ct68r2i&c#<isq+%:$Qk-%z	"ʀBr'F% (6_``Z  Th7'wG 
kB/xjpOt):dPsCX!*XHa.@/tÞ5&P-ĲB)VM7Mti+42~oj(t.=8BᄈL@zA  $@ˍa&bfΫ)#ַ
DLaw6 aJ-zT[brE*bွ"GkFTΪAWWv'2g5%q'$@	|ᒑ%d;vAɶTFEvf=WzXjnn1t<IU΄RS-E>. xFƌQ
 `ƙ  xa)dfPdUpM1⡟1i)K u\Y{إ85 E^C(脷"`4MOJD7H)hua[C_MDR9qItt"g9>9 R$TaNbkTn
Ѝ\		2 
  ൯lS *|Y-2/ZX9i0Z8sl%0{L2CNE,Xuavu#rpqf854]))|#LU9Z8''^Aė 	F(f[o@B !7Z/ ~K۟CXi~T6HtƁĢDaL!
 $"jkc7NyvMHBPy<:~{QXG2*-|\c:	oQ[>gbJ	 n;T H͠&d*_A 14)KWB*&pZrd>9M*Qq.iqG)2Pͪ"s!o äghM+Cz6b,a!ā+lAft[l)yA)MUbGeV
^ 	+TB  
HBX5$/71Bv3YF(F؞Q*;,c6qgtv\%+`'$S?DiMEBv$@A7~mAWuT30S={ZW',q=ĩSLa	.B`f`=iwY9뭾Uhk
6dޟeHnt_cБ±R_&`N6TxLJc2 nh:bB&. }3GP7[)\VVYYECr2;Ӫc3g#c(QreK6f)$wō.O0O߼g<ISED4`YH}}HU_I.Z<`5,Xy{d{k~g̘ڸr]`2̺0<
f1ǐ#?KϚ(),s/5'h$iZ×:5V}zu兄?}z>}pd+TO[xNxW=:}ŋ9p	h#U3-ى(qզMet*"1)DoԆ
EMj<E4PU@Rma

}3NU>}Vu?OYfs̍leţbSfP7(Wc~Za %tYuP
<8b?A<#	=jYɶxi'jx>曟	Wp>҄t
^Ë/(C'|Ury*%CTG8isD<C*UgR`+ 29DN.21-F!fՅnisQH"0$`ENZU]X;387k3a)9Z%iWcWdH5ϡSͽ#OXZn٧iyB&T6?:*J >̓5aZk\s'ϧqeiqs)aTDU-A.da뫖PsFX + OXԠLbal!o,J6Bk֊ B.R
c7?QUҹO<#u<%C/> ׂ&/_=U)WM=VÎ%'рq
`:OzkLq̐4(4C7/Y*d4wG*)D4usJeP<T* }c4UbT?0ِ劵
PPl6T+QKJ)

FK%G_Bw%-g~&nwhg1d:%=CN@wiɎ]8;s7Gzًr')_t|EsWc;Ԥ>]+Қ+A:-'6+o`MBC!ڀ6t)>6h8̈wPHH8)zD$Ή.0124<q*HͤXbkMVK*+7Ex1PJ(Y<|tcN/|X瘴j>ƨ0Ge8>Ɵ9a	JIp.I
6,@Bi`&C6DHo|[ÕQ.#:%OU><:'0-.)^&Ŕ1,:(kO!oXr|72ǚIٔ(+rйvvƪH/͹wV'z+OD%s,-Uh"{6HU!;"BH/\H1+<% MmUG")GS #'nyRw/0M9*䅉B|z˰7:[l NTk~&96Z@wJZ4YD
'#W3pz!#rUqsB#AH<&H^5X[ќTTClf:\%2XZdXRreq8G9mv2<\2D.ۄǑSZ.8jP98"x3G3';T&#=_*c6<r<\P-DBd6*@jmؖe{Й6#CU`*&&	_lJKrdcSICB<pWڔ`Rd\GxMo?ʚ"*A{f<S>3REjvclWd$rGOH<tIm4dHGAo-HWƀuR[
>X9^<>X=w(gZt.d(4{Q@ws<ӨUjb&@̡}]l $s@7p=#4}9Pv3`0icdpDø!׮>mB,ow"-O͘NR];$;M9AgTUTzeL;bza2
F@;sG3AZ+S"JFp}I.Fȸk-Fqe*[`||hZFy'>D;21}z2GQs=id=BFzNҖ40tO0rp3O'XSOg
v0cGP{ $Rh0vl@}
ǒvQQ-r( b~,~	!6#9S'cdV/cy(dkd!]lXk#M>aUlބrltA'{"AWf0BC{| `m@0.SѠX;b}] O7aAQmv<~`NWQ[+慍qPxdX\T$xxjX\1E&E
 3y4=Сe2=8C{XefbO3Op(qu3W4Hl`	h"]`Ti}0qܲS(4Utw3wq1Dx[&xwx%0 sd?yk h5MS4EV|Xldz_s(Pa5{Ӷt4rԏ5oѠ
puPHC.ѐhi	kׄ,;~!~TQ:0BI2CjA5`ChT?pUkcp҇1/g
Q5sȕICm(>IGODYc+,O<Om	v?s#n@! OQx,YlYf
X
TP&հSQ-~:05i[!W2)Gx'?1yB)<S9,Wy8s	):x)5Xi==yt I)`Ɯ;A )
8tWn
abНh0i-B}9 ~I3`cBI[埞3./6wK;$rN=𡆶|Mk!+aEzEܡO;_ S%
[)fWFCGGUqѩ`;zG
#ʸ|)a	ʁH--i7O`&J*`
#Ơty9	j*4/#i9Ϡ9$xnJt]DdڍܘU	^]j'
<㡉(#	Z"HmXW
@ig?0&fU Uf)<a	IwQJ祚SoS'Kσ0	ʭ<IyJM)UO6D 8x 3
aSdZ: O	{_)m"*W+5
pm
XH: Zx!p
o40Og"`WwKF2<7CNUWճSh"3F0L+	Q[eS0Z3/Jӡt7d+m
`5hۖm`	"Ѷ8a Ph@fYNk"T?ѥ*tR[[
$bkE~j:ҵr{cZ_H#l==0sܦ?G>[[4rlۖgp08pZ UPQ -P}oVJhMhb(` Fjx(=qj
[!ʿ
QdACM\"l
\MZ= ge(*¢5]X1UÂ
qh5`8IBM
 oRP8L0bHpp]+0(ܸd|%Y\JlH'dq]u8T5s~)5ӻz{u%Q|'x0rbɋ+ϋ?Y3@{kCxQı@䙫Ivl]@aba0,5#bCg@Iy{,6uyjku]vM9'\a΋!3DsY4tq{g`0,`Axs~I!v,ip,"T\/ѐ'S$)BIGōW*źrjߜlDa49!W{h*Uqxg` zJ6toOHr}0ˋ7bNƛ#Mb[l̊m!!MdE(M]͵޹f-ҷ)Wv)LWIGw{b*2d	8b
@P.R0Ap"f wrݼR4(9-x<t-ǳ-H)TA[U4,ʓsNր)
Wc+:ۿ"VMZ5
g
elgQ"ooIj0tMt}cY1WZ҅;8mPj+d\|oƪ{E|"`
έMtO͈?ǕaQ 4du+ y|)6fok-/b`эi0i8w2вa׹Yty^Js9I~)6{Ebv.0-<ȷ
YS{qpT\nQQio Qf->V>H*@g*$>3 nC\xމ1ں?tOĚsBM|x-&&L,ZPmp45X)
6A\m<ЂY-hH!a9;B-($*fސkexʑ\^LͼyY~dq=2m%ô-r^Vy&Ծ*(Z+Yke `?oxä%xCTW?UIO߼qNO_cxGơDy<-C&4<1?bOk0>#eSQ6Z҄V^V].tYièVskI6M;,9r}.p`FxF3$bpɒUYw&>FJ.1ԮN"OU7nҌ@S%(2zM!]<߰m990xݮmq9YDrx=W?d;&>ϘQlѠ+k@t*/BP?J@Z?ˮzB9'!^# <<qD|Nsk̎6&cŒL3X:4Ģ!![P;F.rB6h2|K7t
aU1ÕK'd,(1H1\'8jO>cC	Bʚ{gBJ+-"@(J)	-	D2kBFN;/'2qx̱TQ!^TU+XTcr(݈b4
L~8.0[N}\!('Ǿ|3&?ՋACJt	l
EE'"ոTVGUR-j	Vv=Q$iFQU3 29&5kCd6ou-ߒ{KSL1q9tE8a;;Fif:'=@igaFO=ثϴ?|ic)J)JA \PBA|ĖK*f	{E\PŎȂ1ud蕢qijUFjccCJ(?x#.1</I<u['o#tJs=(rOF6d.~tT)CI]AU6tVsf`4+vȌ*BKKX{61OIƀ^*`[ 4xilb"31) Mw(;%qI'<)3A<2PaBD*KW8%AAP-MG׵n?Js«!82cbh5lg!˫VPL͈Qhhp-L]@CtX0sאZ`	!/q__C-&tS>%j(ǭ	GtQPc\Y*v-$OD ab&u:Iz7\XT
f&I+5YV8IЦ+8Ip`fb5M;yMI9ԘG&K8sc9੠>S*y9"(-dˬު)HjI8D3+p!@Ze}e8È*Z*&	b~qM(1z* ZC%Uo:qG$Y'uu:9֣dd-gqV!#!k(JhzH$XH5bG('ZP)c nrrq^Ӂf5L[K5B-C2tW*WU.D(aZBx"1>tPNX:kf&+V-
!얆 k!cДi+S|93A-m[ZC<=5s@)ftX<8?(W"=Lu]pjv!2skK$+]ߛ&VZc2&9m0CC¬ْ-c3C>z3qvnUQa(|(xfpSfZێۘIL;\Sd]YDN	Û+X(3SR&i\j@.;9P3gDl}|ØEH'0"Bֈ*mqcsOUK%TUt~w$<-)y[I0+ZU^;Cǂ-jþPAD!QpvB8K$62!ӢVϝo=WIw?ʎ=z86g5hRq7­o5ᬾ!-5]І!ᰢax/ifi~!׈{K	brw3U"nѓ˔۶SԚ_&,|nSH1X9#wz|Jr:Z"@5[3X`Q#;dXx1/['o	Í{rvizx9)i
*&mor*CY'γJI"=GJA=@(s S3[3	[hXCXh(
(Ux0X!>^qj4':3'Bx؍KD~)/j3$p!ԉ114'*K;BS
BY ËX8p6d;t;ê!í)l˾?C%A@}2N:?w3:Sd H9#KDۣL 	!pWqsPJCd}(:Lft;ֈyd),	<\36hĉЛL$Ix8wB.q:QG#ZRŨ'<+H0c=s9EK(3&!ɍ/} I,hLƱA*)"ERG90@JO$EɲS,dJ$4chB YZkخ^LȲ$+Z[K%[!9WK6/@;{n	rAL<I
a>\4z
2T
FyE?KIYM:\=k!۱I1p"{C|ξ@H$RkI30870".FF}0w I:SJb?ʄ䂱傘C?OX7tc: ԌcOi<zP1XPd!
, [	-
r;5 1_DlA@TqDRN z6ǼD	2G %=A@DO u,ChzYJ ūR(M
ܡ)X1	[Pg̅q@S1PBl"53'Sr)j"(3$zIGQC	J*G$}kĒ7Le?ZJ7T	+}s.1)r(͌3(FZ@2rFc?`k$BXA%%-$T
LҌ'pVDr#v2s.,p@@,Q(S`-+l͌ͫ*!U #Ļ{ӾtXC436x0;]KG
fZDK3ݪV"|?ϢCYzjYUB@Y7aI;$)틮ͫ81XUݡ@@U勥uƷ;6h06Q)9.Qu)6c-Brz#QNaq-Jʑ*M:FkTLcҮۚg.?u*}|6(!Uܹ\g,/=mӊڞ8TI3/;QW2rDB="Lj7BVMߥOPq.N.=\ܙxދmóUhV܉\,sZx嫚']ryT57˛3I[pxbo2s;`TE?TzϨ`=5[p޿YZ
KX\c,d:Fa@v>C8R_,?@UBKذ_ߎB±գySCs*b
pBkb-C`E0MMɀ8^XemQ8\9(:~`W92]Af^%XɌuQ9p#y  "8B''nsdN'B1$r-k+^$!0e/}>-]6(\[p:v,Wac)03>"U~&R 5Lx(?%NK.v.݋$*G%bYXWzW U}/ށNZH6(3猾96a? c]%	|"U0pf ޭuO6'KsKFcEJIxTJZG0ť(}hh'~&,p,0I3|L&	闉cm9^@csMq kEmQ)+	Z稘*6]׿fiV`~v\6qlfj=^(pX-a3۬Υ &MU ǰ-Y,&ʗߖQ]
p[! f(z!W^բFKԮ^!Q\hlVe>(x_2iAi bUo>ԡ#d"kU&GQ$UB'Hǵ
W/XîjɆ.3<<"3LELVEm=_[5 p%R#@h'p0^RcNxy212R4&1Xc~_㏻}pojBC>mqtM	+̼J[J;p
j@HJ؋,?)edaʸ#u?KWXr{_֑I8<7+Ǭ8kMkJbG:ZCj}&yNRU/U)V8א+u1a1?>1BPex9ZK&WֶGSvR4Y͓r~qvEI&_ʌtmn׽'y6/EyPw#Jb#/ڭ6U۱I*}IF=~ѩiJPDxC[#F`PONҦgRdؔ$Rm1P/X߱c`Z}X?~q)K:3y߽?sFxQ97C'YsEc?'|'O3}( wU%OwRf}u;؏5(h_ܟkBW5Ǎ [!ĈG"ƌ-Q#Ȑ qI*WlRI)S5w^3;Ee¤JRlpioA=q!;rݪ
Jװ	#_4[hֱrpc]5b>IS/OKaR'.f?}`i):(sD6Q@WviRǠgԩuH4&g͔){*o)\]ψCK.]4[s{WP'"q.RyԢ^*<epMyg&m
:Ji68E?6MEapq6 "c8SSaV`#+=@p߹x䙇}Xg_cmp*>7Eg! 	Gy&KfᚳYX6]ؚIsĕh"rJPcbl;&s>
d	ASސnL&f9y5]dbPfN.bN"MIƉnv9k:l*RtYȧR8(Jh0J4 AKA
Pj1 djצ} z*(u+l@ܒ?zI+a櫃{,9)Iɫ2Uqu%K-q'38Ƌ0ΑY1zꮻi-O6ļ_~j̤UT+m(+>]>٬^*f1km5q5Ԇm&,UlL92TY!*0N>//3T3n\A9:7BW'9t*C\ԠaiOg
&1q(
fpB!k+/j*<JRc6gEPp&&}-u>lS"G)bv
S&x{ݴ>f$MTCmQXTsP/)Х!qO 60Oaaڐ't\Mj9kǓA1` &ELkiV.5P
T8X
X#RWಓµ 8_`ArB Æ.D!QH"c byDU٪8)]H}L[^І]g!sp
"=$5+\<h>rqxiCi@,9")!%GTI'$8SŔKk6C*W4	v,в-	.r2H+4O>>?	2lT[gb!Y'\	GɋpDSJmwҋʜMj\'D=Zk?2.^樠9(^=- ,3̱`IddVMxmэiRJ/)u)}[WӃI C#Ho#\rRԹ@.R?EpH~<op&&W~('Z2&E]gJO_inefSraȘcR9;PuKi BѦ-BnQ<R!um1Rd=y6۳Cy:fUqaViM7bK+4A gKBr	5yS|4XirAgצ[m1'֑R4` 	jP-@^&1W7ez(N1Q<kU!9U;ߗk,h0ȉ}f>K8Uv)fі,N3ќ^1~351!gczжIW3d+undGweP.G>-(aewᴔ>hL!qjպ$LH~ĖG[0ҶB-p\ص㊒[lK\;	:kn e؄x*S{ţB
!|Yat";EgnO8J-':PPt$JO-8{n;$FPNJBz̸Hak)y:WJ=i~Cգ?g+dM+ik}ahO]{C;F}S-u>^ڥ<V`Ŋ*BgDT:5Dݟ\i7!=|~G}r»>mwƼFn|H5Wa"޷7{}׿Nɗ^\]U(i ^ܙF9Ŝu	Pױh `\e\a`j1`^Q`F)`n`N0rٟQ.`	X4	؉Oua	aT栠(EO ZKJ-%[1H!O8\3 azohF@&eޚ 鏄xMF9P)	\XbA.N?(%ߐmb%z>l&fM':ZEܚdS=h*JN<u9+"^B̹((>@LD؃TG\1[2.#3#` a9M &ih#W -8>9D
#2R@6m\Rc(# d@(j\(%ٖ$F0YPrE/PX+`k8#,
(4 %j	#f&01M֤&N:}_np%)"bIq}^B.#n89j#>6,&YN&JYaMX%ňC@Be1b&AP@m([VքeNY^&f`=rHmtC\xmBQDERI!_fTѦ.&cUGlB8%R=N0)ڄ@>^&5t^ I
PB83fi*符&l%lfayrF(c][ڧL<C~&耋X%qi㙤5`(IЉ<))5ֹ3l?<dN()InB|%Xz]0IU#2!2#Xl:Y}
`RIhNXmT#d'ѠO\L)\? IȄJLg7a47qC^	]V	*dU %FL(d]Izc"*]b:fKImN <(uD
P&LLnB$	4Nf.(deh|2o壮3ln>TgW\PJulvڿMB
lBDT1:)I|ƣ׉9me^>E6iQn(i%5jObN\H3!^RUj@P=o\Țv!j]vYvHs25hi+m#a@hV\,<C0#$ľ	aRBG(ZlѪΨ#*f
`"rBP#	'9A,@0 DJm: {fӚaSo,%OT{rH9"H BiFl5fD?	%J@ bӆDO.m.my-B'"^D
(xE
mf.V%%XnPpn o(fH^mղߪoʝFҙ(5 £'&-E	,
$fɧN	`'.܅l0G2gMiN(t*nankP	%.V
lV?q)b $gwpW$H#.ѮDFf䱘 #72h8@-rH,F?(ĭ"m},6_/=I>rP].	xLq,.r耫2 sJez:nA
Jrc4>qlhˮ$/nHP	i3(0  58/O8rƪ+(T47iVFU.K,D#m9*K4@\4FF#lXT0a2`)@#3!Ш4]ʣc@t	%Ij6D|ħ	Ee%>"T_zgJrr5Er:2<4E"/bϩ%HGp-,Hl@8\saf%J/VV/l S'
#ڡ݂K.3ڐM@CTwj
T3Htl& $Jr`eȫ(o'-ija?O4cWQmYu ]q6a}}d^kĸJtG>+plo-T![93o%[aeWN>;_sPӥƅumZo4&2".rwyp˷x$MpZ.t:+NP"ۥ FE;.mDܺm!
rxcg'o7cKlFED\*HaRpakΩu.p7]euz;OdS(xpqG:k:V)9D//+z!jD'E;ݹY[ym'FmM/
#	M
|hX	#¶jt`	."Fy#fIOմoѕoǕ2%Ō?Tw7r.:c.vjN%>|DY9mzs&vO:ƖOGODh渭	`qKHd`U!V.%NI{δA3n[NJiIw9ߔ8<n0@vBͻRz_v9w/jk0DƛnDvPK;fY<ZCp?C{ȿaMO9Ejm,K-8HHpE8EiH}2S_P{IVP}Kx:tB{x$-T5;;@Gנxګ/AϺPvC$#wy&fſ&Hn .7i\/KMv}M8Ba83kO	(:>p򙈭nuڮg揬n՚VB'D^smhOtD;C;@
0Zl;nLDP0B YsaB	QdBUD6H G#%:d	$Y. 
:TX3tlH7ghKK6ujTSfDHt)gXȕQM$q>8ƟVHQ	B;򤨉"jRdI&rdɓ)WD29V)]UC6uCG<R$@ly!kqcSsQI1ՌztөhYH%Ez;MدM} *ܦlQM>+ʚR(\ٺ.1ڮϳκV
(J;AGj2|R@RB(ЦB $9t+(AK7zfgVۏAt(i2 zR#JTrєI!|ɴ{s
O0i`lFH1E
t | ;CI
8=ԣ:"2,)>6UfiUȕQz jl~BU#LP}TO9d+;M;ݪVE	#	0tحYˆ0=6 l)ʑ#ׅl}mD8;xB- Q-OSNj̼H^eZ)}%Q!j<A>|hH}ҙ4"+=[kW:YtȂ--sD)ANYz1d6**/8!⚥N9
jq)i=^2K4,].1n]
z]w3CBt<u bӿzAJN 8:
]uаo RKP!١r9i H}	LYr7hN]Sxp+<TC_K5IEC8mp	kfScBM#
Vl3Ăl8'nDq |%=>1pzb]hJueo.b	A. ܊-"j
D4 kcuOQvP XTD2
.'}c0
rDOxj(8[XɖM1b!68rD1ff$q#HXk$ "B%n."ђؕl5ņl
|		0B< r!%gqeI64;kRȳU&\INt0/Dl&o6Q'ش`fN'IskNP$Nܜ#3Pa:JP
TƼӝbЂ`0 Z+,`fQ j<	Hޥ!eTi(X"=|1ĬY7QE3JObsVD	W/'*ZUkѬUiZU"N3J*@o,"d(<#[م(0%O=z6VHjEAe1ꈫer@DU<*î,`xTX"֘Ap0 Ce^t:^<ӃܑCQ*nkT1Lk>KPӁsFaf缗9i߭PBnelaNHvXnI>
mYW/_'ns5*3`i%$dj	M2g-c||gurVF%S\3k\^~$N1Zf~{Gb_^Y̘/˙eL+\G@{): KdBwzeD,&<1=qViUFRC	I@ZruN!3My)_hz]<4߸3HlL8@X-JrF5$gl1Mv@2
JU$R)'$f՜-pYAH~H!*L	e7avMf&e{[SnqLÃezFT_.ͮtmd[5Sl^ZL]I'IzlN/hTN>뭥wKY4A\{$Iď/W"jf}Wbo`L;:W]	
+-aTna>
w
Y`\>	S)>p^Q	7Ys܆TM86o7Ynmμ:)E%'g~|c'-C~5~ERo{nʉP%(2D J,P" )3))xFmmk7".dB
r(F.m "BǨ)~&-
nZ*P

gzO+$b23@P_ЖaְNh}7kNVdbPDFe
<q'60_$(;QHL>Fu8 ~WQ``ȴh1k2hfm]60]!b-T1+HL)j4t&ўQfdEg1Tn>qH1N
R!tubnN""c6N#"$jMJRh$QA%奶^re2H6!leґ'n8i'QRpNb$U B#36*'Rp%52   !    ,
  u . 
>160420-110 Z n2V 6u/[;4V@]BmBu8FZ6ZpS	P0U6
jy)}#4SKR3@M#rfAi&V}?o_U]K1nKkL2NNNNTsYgroVAhGot`Xgggpugwww " ' : < ?,2S
Wbh/Q4S3j*w1|R>OOW\Yo[coOl\psklD|^cnrw}oWornYrn{p/7[ZojurGSk|hituwx||ƋzŮ||1%5>7(CNH6I7oc8]^!kv(PVJerUwqoTrf{&]qipmvА}u{Ф8UqWmYfYk^q{^lyǏ7ɛS¡^ίmro|x}ƅȄŦԮΎЩ쓗Ŏϯʊכͧ˰¬ɩƳ˺ػԸź쓎㽈Ήۇʰôȓέπګ 	H*\ȰÇ#JHŋ3b<F ,CIɓ(S\ɲ˗0cɭŽ2ɳϟ@
Jѣ$m_$]HJJիXj&lvjKٳhӪ?dʝKݻx˷Q
Na ^̸TssL++k9
|LhbS^T̺In (`7O>siEIH,/wp֍@Aӓ|9{'~%0׍G^yh22@$LlW߄VhKfڶ $O !	% @V4dȥ 6vMD
#r8Xdc  !CjKVb}C~q9CdVHB`$ɂeőG )'I]`iWM7$gh]J1T6*lZ\y֟fڜ9* [qjju$z*V=ʘ
7,I'j=@ZA(R

f6[7<晑lF}t $mE|ӹE.qʂr|C.hSO+]LJiR0TWaEl\,
4o>4*\%VwC9	8I(cFX7vXb9'mtEJtYUgmF߰
&}h؉A
P)iT([vW6D߰-_]}x8O=7%' g	c3GtEuqM樷TdyQ(
庙8r0OOr(^l:Ӌg/7P#0#3).yhR?81Ψ8ŝIE&WD9,ls?܃[KX~fϵIOҔxsLD- )kiZ"j1{݋r09MJ2Biq0j6QFr'HǂF5(tע61 C1(xإrF
=-
.Ju3ډCK 0!X'}䉒vH'Md"ɴ&\_÷P,ӉPk٘i<SV~ɣ+UrZ+fi*>Nܑ%/SZ-Q׾!7PI4)+Z5M|	
d3&{o MIv0۴F%B M^B!LBPvJg=BEO|3["l:t6(MiBZ"8#C{>dk>52vNHugRiQkS9̩EWΦ	S!KSԤg]*~R-KLu2@N6+Hv$lZ	#Ӆ6+HQANn׫q΢։]Y5zƔ'YEf9E·lֳmRY
P]epX؅`錭ںeV",&inZרM;%İw7iVXF;3Fc?e+a7>UҠeI  s ݅,'o"ٔAcX'5x*%RW	E~"DA.p^{"7 )8fD[6%"qd'\ uL2+CNo|@ agG,DˬrB#,c6͌pAqEs2~d%i w""Nti"ӟNrY\d*D6oE4C64HiXdgsUH^ZTQΉ8]R QA 2(BI8+3䓤=K}mA,/^Nr=wqF[K"<U#0jS-A$)^lF9ػWr<DAJ^ﻡ86gW)BދC_p	~5;4R/_D4X<U(Ǘ7pM8{:Nto@'Y\9, #BC:(3yF$+z \㮣.,Z㰹S6t#	(^7- @csiah?w@9=xҏ|$t;.ĉk%s2ÛM߫B6C	n@n:嘞o>O{6쉩1Ar"?0y9fZ>BzYW|~g:7<ԧz8!owF^Õ/.B~1<wHEAa'z7#wN1}t
zF^Bh3CJv"ŁsX6~*A	v{w1)c}+8wTXO;3}	e/Kd}"!Q3C&ga>(fYuA@o%R(X5wH4hw]N*w1NX-~Wf'+?ty!An8278Ait6Q!SZ|Xb z h҂8}hNbwPTXe
X'VQluJ 9\\W5geղ1ψN^~(t/,(zNo^H)FfVW//ZM:dy.1SbLh]X((SgXeP%fQ̡&aQ.8u/E2P)cLou03U}^h鈻h0X}(#i! bǌ~ȴ!a8%zFS)m
tJNxhA40(y9!h:He X6CxkixVhոOĖU43gi%t(SXtǔ2ɗUz		F:8PDe$A(uAXvM)a3?ђ0c#KGɛ瘔`8	)ȈwHUg-(r!ex/i$n
әY8h%b`z~ꞥgIw ;ṑٝf*)-,梕Ւ154(\24c!<= C3uQ	駱F'EmUufbv݁UZJlcDaCBIpL_YJJ*^wgzbh{I=!'ډ{fTG223gvhEٗTڧRzّyOR

-PY]Q-c'lV+!>oJ2ҐT,
H՝ xꤸ	OZHIRnl!3v?F|u/mZZ_Zd_I2CǡB{j:J^)yR**X#gjZ`  P6' ,@v3*ZNq<ȄBkAYb(Kw*zNښڴ	ekթTg#/GC(>tJ1o"^֕>Q,D@!.dVG+EJGHȋW藋NS%"{]E3WhmD
>?3l+S3{Z=)jUշ[tQZK^8N^[]i"L&py'an=IMS	svBDJg]ǸKNۻ:HۤUJj]-U\>,ʺ0cj3Br֫5buZ4&uI*WkۗQi-,d4vcv"V_si>gsrTe`l˿++{{5]\K~{+<xK-GqH;Lm2/ᶁ>5⌯[_̎YܚL驚ٸ몗:jPɋ[^h}$S
UHs+vt&S6ráMJiJי[AYLʍŐYK2͌Ánd I<Y)ֲXD!d?r'[Z6{Rfk)ͽ)LɁȈ~YklÎlLAt29u<Z ~46y 0/۔b^%*	`XKͼK<,,\K̮	9f%)䗒l6C+&Gɕ&%lpgUk;$>
7߅Vt̂Sz)ԇ
ڭ=ݔ=t-UgE U8*cġˮi_h	2a#RJUfJK,OQ@``mVlƖr=7@}]wůmzZI$q2aބteE O63١4/*4;$g)_ea`Qm$H׭-"c_ܤKM%J-܀	c @a$ 4)a$b\6zן	P-P/R1}ځ{]ͰߺȚ-n=}(%0	܀[J"m$p|'r\E	2q6A%na/(em=tڱڻ7.8ޑ̌{NAȎD0L䐾RpX_i<!w]ac.֢CkeաM5ے,{ߪY>N>~kPMNO.T.-	\Y31MHˁ%]i⩞E[Dl=ԃ6~[uײ~wNJ@ Rg_.FkΓg-qcC?o䍮u5|.ɈNzˊ%nnCs8nSg7A%osxBBoWxRHyΚ1N7(~yMګT>ξQ]2*Fȉk"kBa]xث(;3n8o< @DwKnO.
3o׎l'c*8ڴtqso^n鹻ԜͿ/d?yqO $H0Է+C%D G!E$YI)UԄ$`XCP^5Aj5k}SLwBڔ*TT>m鷭^vlUW=ڴUQ}[VMsVTYz.޶T:﷚A#xe̙5c'́,"4̍&kرI߫J6lUPz[qEدOt1ԼxRԽ߲5=Só]G7חf3/l"TFn{hTpPzpC;P2rĆQ2MÇhPH`1qaP#K?l;
?ۊH|$l+,c2>xҭs0Ō,h	:0h9Ғ _RzsPB0+ IX@T4@UmOo4ǚȾrLP>)4S-%Y
JZ}ʽԕJ\M2%|u027Ԍ΂u#O㑯v[nnbv"|xhhzh		?4ԁQ"/+y
@ZqXoK/D4Yr1u,LW)#sYg1v:-Htw%c{4
regQ'"2' ^}*3Hc1[5XajU,ka%`y k͒&:O>Y hߐ ;a0hPRHn>!k(2W~^R.ي`\okM>'%(C()m;ڽU! wQHPʳ55PXz d#MwȚ=hB'HlBU>Wnxɥwf<ɮlu]Ta\cT2,0A9ysSޠecaUr` q6f
w,p2z_> E}"СHR~:0MK>ڤEY_ؤ":ΊaĢ`&B 繩o&$6b(I,.ra!nH \PfP fFp$E4bP(EF5!L0YIS$a9rW.>lU@**IP%%v J(YyD
c4yHlf!@r9eEM%!.VCAt(} QWQDK"cب^ "~fw$`JQ/v`s49I u1lnP1y7jv[dbM! 84H#CTH$H>GOAG|_N
B몵NBɨ;<p=իI9Ń2<Qd$׻q7 G>T0&ZJ0):cvvfFQbT{!7'FWOT7P1J
[E+-UfR>Ayx+jhwo!V2`n h <fƐF}BWM7) oS?J:gamVu<ڥJjh{BAJŃ=f!(q\Qn||B$֮v#&?q?Lh!p+;7獖3eȔQ]W .VdƖ~>v?^yqVD"s2@[R"t !+S *\2z]
U 4Af%Fc=Q(D}ND]G@PkuJq˕%
F!>mC|Ue>	\W6+
-SYt*Eظ +dF!wщŢ]hQ!'BAꍐX|OO-Yֿ^m+Z2BX.Ms[6G:%/_}a֠\l J<?3$6v4Q-%nHSY"Lu̾6 rCw-[%?}Km,t]h3@pB\UFXU%B>L]ehq/11?Z;N@CejT-}k>5bۄ<a^jHxĥDWv5} H;qQܚ)ɖ{]xN$Bi/g~S&<`ѕN5ggn-^a&5B7xy<f/Ym1ˆwZ>ܓqn8a+8z?|k@l .I4k9P4곾C|8/@-b7#ۺ`:0x-A70 	[+&k=Px=PCT.7uҍ[1<$^(D	-薙@ r<i'Z7?Js{)ӒˋP}ӋԲ2[Ģ+8; b"d %X|@'X) X#1`vB) {6@M`9G;4;#O4<>؄HDC?ȳ-  FPDY=GFWdY8:DM$&|y<PT.tq8J98+X&8JH 
 Hk8i^n;/Xhйi,\|5/-j<GҠ@<rֹ<Drqգ0L4&NDI{īj 9 3uJx`]$ňx"ab"W"CkTF}üb(ވ(l4A_
ۧ(SB MGO䨷2ʣ$viR6x[CLKk!pߔOPLL+CTtΧˊ|:G4:w;")ҰBX'<&;PB+e9o pJ&nMJUH|xK
N,`--I4F-\&7.PH$<sOiI:#c8Lr8ZeM&P  -.x(KP,@,4tPD"Ё8!hE:%7yKcA<GI?уKѪЯx{"A][ !]9O;RcJʋ ",|@Q  "+3I 1s(S$0ӉTS"U z8%s胍dJ냺QeDT41B5IՎ<A;I3:$lب[\=jŕTGRpB,UhxY]28S9Z|P`XMXm#?=7%=pVhu/b@hK	"	2o<Gd^2=W;T׻?%3\
8\%Wyd Ҁ6*X+'OLjU'Xe oH4(Ք؎364<}9? ;" Vy%5'riDeNpPB5IEUMCt,H"	W@rG岄% ]M}GD8D [;yyYE{1Ih8؂C  ` X ־a;#|H\p{VM*%\tôvkdid52م]mL5NN֕<,5z2ԫLGCGT&T	MyXk㆓h-۶@_eC,YUͺ?e`\})Fr_$`aMesΨ-ѵK\+	%LeC8nHc⪄$XljOˁ.n@饍aAkP"0V7 !v_"FiP쏊/lkb##\(0ueݷcC|4=Z輂h8JRzTOEW֫Ղ.ca@m0EUR#	VE,^;V5MeT >F{ԗ/Y'\Ma
oM]2y:4MIeZȤd]DTbaVbZd>%US&UEis#	oab%rN֕4/|dϢZ	p(צSjSDv
xNUv>zD>)1#.L~AOt+cmCrRs iiN*2q	oE[HG.ĭW7jvY_O%.I}#a/ PeNRؒ0#@TZ.5&$OKĄ|A;RF6M;lzJϕ?Qa#S}ZaJx[J8mH^`el経l5-ܚf
P{|lu01p8mX%[-eџ5rP^uQDr=V.:^n;iJvX'Rd8i	n@D(\5Gifl!ȃ!pV^o"p	8Ma|Y&r-&&"1yj'Vm`m־%HhB\U(<(ڸL{Xc L%X%kJX@XMei^8pA nLHi
3P #8"!=\-\Q`֞a#9WYjнيs[mU-B8:pT~_F,n_p=~c}M>+PE
aᙽRއ{(M'tO_U8QqVoU֜V܁hb>0R׳ ^gaT˥ΞeV4F8mlDkWwb3;QnRi%q
ij	+IŀۆDI0uE4$"7rSHM&7:5j`{HluH|`s"_UƥR&hxMyjDݏQ{vdWe@UD#E3eVQܖjvz!twGm*qqNQ'Rl"In'
@pr@@AM{pqD,ybAMee緬ԘD/?'WzmWs(cܭ869:D ~af mQJ	>hƌ7rF|0 ߿oh_  gҬi&Μ4Q@I2%	0G49Fu2m)F8 tu<	֬ZrEr䈪b#[TDƲ9D-Pz7oFbDRsԴX1*ǋU&6M2c"?ϚB}iTHw:رQZlلU~FӞM^<3*˲i/#61aZb"~!R}`A
?0CJ[}FIp/(LQPb	rO($GWuuaW>5{1DFӬ![oBO4}WxM+-6md'dYo)6qgQJ`cT&6%hSFuMv!g<w{rz	Z	{9SPaDJPڢZ`i?P2|H8VYAh9DXoQ**z(5N#cfvܑZpd:moڷa	.q?$FVE`&F?%-"mC"Kw9bcCJhy3L2QKi'{IDP%q)W b(qk̪	B"JG40f-6igEfM[i)Mms}KjX
j6bYۺBr9j˩Fщ	%Krs2(tǷQqElN}(2QA9 ɝ4iJ˪9audʈ1Jky-͌doZ&-dA=W[g$m/nڏ=7m;wFڪq qfrɜgި?sD%K(rH<zcgYDPKBx,)	s :QLhʂ)J0*$ YʢV9Q|
E=瘌(0!- iF2זue5᳖Z]:W|ĩ']Y@,SʶҐ7وzC%GVa2 u@A[
iу H2H!Gźv+2
gf9{˂dH`"hՈ'48P{1McےƼͨ&n*h.*mxKRX58TD
\m_<'~':6.{LȢB 1cyl)`KB |<@l)qPY"wz!cK)2Un@[4$'L-H%5闋QV6]R:RD-aRKťudA 7f3A87!"bxLyaʝLϱrYIor+Yq2blyb<AbI^ a>ld0hg( 2/UfvR&jZVkHfzM_a|0adm-҈2tփPTS	:6U'-Y@qJrcC&J 'h23A]bIe'UM8{s hlT#mm"YiMjp|v4ToL5Bk#ԎV8L]Gq;NuWߊS<v,:F5b\
FF?3/E
("	@)%_IH>JWd!fxE!p^U[\A>EL?4b3#eC7i&bװ#b8L~-mǈa)#OLKJ,>31Qs󑱬cHƅ8D2[ew4p{<ZPf䀌$a4w]1TuEV׬$Ӌ̽9۫!9ܽp|6́r$eSf-Qіc]{^j)+.o&ls<ߔS9Q"7TmOPii9T(>9GH TPXgk$Tٯ%e\aEkʼWn^Vj!)Q M64&)YIHJVz?Q]SiL9,D-D$ᒊ6Bﱠ4~U9xP@4-s砼7 *%HM}`м<O(_!9Oj 6ztqzF@1u`}c4鑴${]՛%gɴr%4EĒOKw=OeĻӔ1FD|/.iPzԪqbG=2I*['O70LD
i%Y{^,[h)qۋpԾ6^AKlLǟ=E_sMjVۅjɛPGI
6p͑yB 89⁄}ȄE~HFH9J<Α@`[Xn&މ^tvJ"UgdEKfm>I̍kAO`k}R
)u2_9wPCV&rEL-ı#d@PN]ncFTgHa$ҾTPͥE]=4 [X
>m&)_(V5B"DlFbQf EZkbZl[k0l(~	+MQnD_24dU)L!LaRBday,?xO~w~IT\Q	,S7e8Za)Fw-$ᖑ> {Ib94T>!^yDm|IA`F2Md0HTg[Xb0Q`9HrS'r$-6-D!Oq_/% TD8/LVOzAtD(ܤp%0K(F4FpLtmfN)۲^[,0tcVxH8]!
eH G]Peqf&.Jgr0fcF!9nr$Al!}zh$Mfp%pDk&OjN"i	f9!5%\k\ phmAsճ#t
^Xd<B3Y'?E)yx&g~D}>ڍ=Qbh"haFf&.	+Ǖ@֢Cq(p\ijJ!ǱCXFCג5H^jH
P̱ĊNs:XPF \'""dۓ
OzzB
Pᆖr]VbuOp~b0(Gh5u_C*hmDJRB,U&#]7QB#<!bF<R>hsٓKģ !,HVPP*K~xߗP:*\ujBx쁈j>?GDGٻ5|b.OQ"&([mhOmhF-H))6pGCLMaizGPDpkOGiDQSK0K(,'&	0R(H=좌j!\ƲWVLzA",8r^Rnˎ	*(4֤ l`جii.HH FRbi	vִRrx^Fk2	U0*q-%HB%*do8O8cBU֭ʙJrPX.Y,iƾcrVx8T[+Lö-]b1G\ab͕dIieQ	m &XqkAqnF:,/]m(jimK>IުZwEZIG>זP
Zj&PiPn[A+lyDdݼK.f,VIE&}ޛo""ۚ`iF4`3/$l(O_ib@pܟ.@hĽnJS #M-_
/W# i{1ʪ'b1ᱦKA"`Җl1OFn,n,Ϫ]-R*k%2F|D2Pf\jmEL"6h 'l3C-Sh o@y2Iĉ&OX9ΪT[)2׊9 onEJ ?4xZ"kuhg8Q|TF'J9[Qo"=s15a_ >-0FC^RxD)؞C ]MDS4x|RUZ4cK:wDKÂmDK31+.$nt>ش\EցxgX' V`nl$(eH.B4pju
-e`0XoH:_Ir <ouơRJN?pyx?D__B`49gRJPD76rU~[_@]$h\Vd!kjmv0AIĝBF/|3tp}vn̟ۥnư&9{DKuy^>'Ld?xqoNlJIhɭqn~D>lW0g7I8V0C0kޭb*HYv"HAӏJ=avծcsPFlsyݚ%3tpw_z]CCC3h(^w*MO_|Hd9w}?Qd,eoD[8	=8X4X"3F$3i!񠿅PH6wĜD: p͡mez*z;˒\ng~f+DUdp69䬷F!%ì䵒OaKy_pODIHD3E4Y>uLx|F(LSlyŒqFЅ#A`\&]Gn;)p^mwͪxBkE6KbjCrkUK皈f(1<rG@#NJiFE %C>?uEx=p6}J$
sPϿ~SKPM4ν9, .+*]LžʩvW»F1pˢP%B"M7E pHR5RQ4rFHgzplGw'ړCĭo76	R:D`BĐ)CD	Bj7{IT $\ygN;yhPC5JX*@ 8UUzUXLKEHVX eU$D^
6m#H֥e>#!BT1b@vӄJSoN)J\PAY2gT224Ǧoj5A٤q4_;ɹ;777&C۹W}ः1mϨq&@޻^`C{"␉-bqn4ɜGM&Bʨ%p"(5쉄0'&|07L'U圮
KŬQ#
`
#ˮ,8b= d"k0$1".DyTȺ41ܜT>͵pN2KL83=C*9٢31>o)(!(UH=Da6gC<ȤB=!Hs^5\)6'MT@dEj%Tu"XhN|kU҇"ŐV,/"BDl=L,>xrY+5ҘST>m9ڔNЅP5YS7MY	cj%6SP7dP:|+3CBOC05>J95$eY x(M& ~fuUo&9gk8ej#!A}E|HhS6lfaP吼q."ؤ܉ynEpÛTl,$bu<"#++z7@ٷ~ϴDEnSdٔ,7yر<s6ukS6@YLSBJJz>L9V=5%IO1tSiL&YƦPr%J&8cjZ3G C5&VRp&\V"(.E6R`  B>!IK"K (<iPd"idÓ$&~Mn;xOuhS$H %)ƊBBG9;Qϥ|(jPĥ=<Chz %wq}َ"pH-uțt%J(Vr&3jJnAEb,GM4rqUFrKWʈ\8ёߪpp3R(g?FΤ3M"Nǜw=wF]tMwg*NU$5J%\Op^VC̟Q>̱z4#1⥉eXhc H=JBPQ% dʀ÷PYV?X Yt7!$(b%,o	KmیBqB׸iH-CCp?Iy ,9لh:`GLKqISN؆7MY?xnӋC)0$: mĠ&BGmHOD.zNSFv${8%VKBrMb5!ɂT&RS egb>!êi|0# A9G	{* !!4NkBU@u=KzODƫLӡb+F:ֱ8[\_Ql:.fx\5~jȌAPLL{HFjAӪZ23JۨY-	rITOڜKԣ:ioe()aAxZqtt-[L΋ש*]U9̉&BQDPSLrJ}Qe$Sd;9O{mʓStPiX<*=g"XKsD&Kǁ%D|B8NSĦXZ@rJ.lJ171Symdg`Bc B:ݩxA7}P7卻%Bf %+X1`f9d@0gf잓&Ix(3Qcm*'f^Sc,*>cs<]KvZPD2ȁb!{&`o
>Vj0)ӆJ'DJVjbVͰ!ҕ}.nٵntwT@mSj"``Cit5^uh@&q&I&rmVYm(귉8ӈ(^V.~w):=yNѩR3(
}G-|Z`'n;"oKyRv,5B	#\g1WvOlʪ;KHuܞjd|
Gċ'"0d誎^lhvB2ԉYHCTa6HDj cwȉuzbp"NIe `l4Pt/degވ׈0^JHRքNrelRP!|B5!*)')NAf*lom¥V~:I0b4cwBX	F6DeG G%ܥHOr!_@D9$c3ddj⚘5R&.n"6b4"`zO>O>tTMzp; e;#2gDe|@|	]
!<l柊f*?qަMX*%خ1B^XXl n\iHM.@Z)|b,l'g@Oc3ΤA
rqCJEMGDl+atTe&a0 ""J
Q"r#Piv)>D3LYop`F-*,,zD	 {|~`
m"]֋Xf_BP6ddatLIuw"NTw,5ACd'eOJgx*ad5P$TB 8bxCKg#A+EC$68	"In$* %8rCedkJ ZkP)& ]1O6-E@*t$6m.d*`2ke"M6c3H9!KNaH:NDL0%Hv6.B6QLO
'%f6DEO!  w">dm8,>ZX*fXF`e+üA<R#ē7ƱZ#"D@D><-L)#LcTKv@ݭ2bI6C/  w"K	,C9T#QIi;,&t,&4xGF$MZrujBuMLP&)>Ue&싊#Ɣ!|ĄF֘<KգhPt:-!}Lae;hޔ<у,dICɔm^CA:Hdy,[A1\[L\0Sr:5'A1 Tg1InʌC`Z0O@NnLP5j2.Cʤ@BNƊ^њ%inI5W;a# k"+q<	RcP:fJg.faLNǑ/*Fd"Z`Q)D*XDVAh*"F o0-5eӢ.*
'lA1d+ǩGDj*bv<a2$75הu]	('vY&aT2,O`nĮ'aAKhfM*aLR,aL1nv"&@6JNAY̶y`/& `aCb,$5+QK+c;Vt	'>u1TY6!KC lwwB㫒ď8dNFYSetL;hjt*ZMDL<x5ALy^Wv-D( #Eգ5DfNn?&+m"=BC%vM<7fUs]NVBIWXaE&-4X(RFo$BB/' p|d)kѕ
3aTaF9ckxGbcvКLzm6iP4Vh'2-38a	5&"Rҷ^&B1amO2&S;ע"C/M*?٢Mb?iLV*)GQʣ7Bppގ@ςb	,JnC
!Tm't dmy"A RD
S!R0jL4MI96yuwJ󛢙ʩ߄nBGmaT#?V9p39D#(g[gB]}-1Pf+Q{j.&n Ipkk6b2.ڴ5&	*d*P5M*DC$6+X`\z\QF .Z٧xBb1`F	z">!l( KR	A9jW7-`[%"Qh7;oiE/Y۩b/K$50x`	ڣ7%AQp&
|U(0B~8a;DuÝ+B~":#%*M)6u_|'pp؜6.koqZZU0Sv{eiBmz's1}@	~ ^c">!A}[`4Vs"ZcQL{ڞTcN$:̙@¯^o%=Y鎐M](C~lr/αE{LTNǈKR3AĐ4`׃"F?yr&'&h+<}{ȏ*20U@&ވ`	on	a"\~6A@gC\i[Zzf`*tNfHQdܻ̙"H:z:#:`	4aD)}>o$e,agLi8a ,;rBO$۬FȜa"mV.	(8qs"@&tD_Zҩ}n\{Cx0$ }!e;5AJj(bW!E}YbVwqϰ!+LtheR^V(M8A	*u
J(pfA~BE	`g"H֤sS*4]!{)=#ޖMC<!tB)&7C]V*I<**E*i~Lul6!\DȯL#0tύqV.ls,q`% P!lL߿SBTj=uYԔJ,YRiB&"$	Iao̅2߷f*t\J|eP<}~C3R9C[RSCIm3m#lTJQچ)ٿxjvvZLQ2Dv&ҋ!e^&;nIÖ,qǜS9t,H&|DT=u;ݼ{<}K&͑PN0SKܻЈ D^Vz.#G/>չI{$ rО*D>J(U R(+QM5|bH!hҐAcU V& 2!!*$&($mBVV\e*(tTK6iՓOY֒ZynA钕K%MVU9D\P2	v"!0%{U&E"sEg=4?)uȥq)s8ܑ6Uqj
pNNQ|rn*H]⑷	8P^G|~'aa'>H0GJ!(5%K"ʼ
A0>C ɣ&G息l+8)D2Q͓MQB^ٔn[TkM_}Ey$EH+h(bpsbo('%^9/%VvdidQf6~,ucPs\ kjvn6s*F*kP,|xD$]Ąm&I=zDa="=S߀C(ńd+It"ո-zOT>5 MYdOa9B#d'W,
RNfQnRR!)J0ay.fɼV=EeQ$eJuRyZ\#5 7H0ipsHI(B+=N19QZX#&۳}% g[ʍ"&I	$I+!wN^ظǽғP!GL4ь[Ć@!T^H4/btJ&vGMp|F!BH@jbeC]"-e|Rbf	{ܣ-e/Weq rR
udx	;C@8jQ		r!,1T90	TC|*fE!zwD.+|hP:LQ=bvR)*
xh#J==8n,afo"M֤	ͤ'E:RL^"e&
YeF'24(Mrj8Z^mtL%mZ&J%dud-k   h8qpEi)ꙑ~IEX~ V.C@¤$$=0 ڢ%h^˟q+<*is T{LRX2)A!HE5{"lh$009VӨʙVHQk˪2&OJ\VUwRڪ׭d&;Yyō|H#8c^3,5CS8T>">P*O( ! PD2xZbËk*W2%/Ȃ;$|r:N,	cFZA$1MF/cEL? /bc^K]F鋏3V*{K
zЄ9K=% ?V`87^O	?L[:`8Xbu}Haɀ^!"Y6i~Q	(1<ϏiS8${	l[f[K"8g+>ƣCYJ
(vQiTYrYj{˅.CwɲNpҺ̟mV.H6`rK.΃4go[Qb%q|#RLj-xʎ޴G`O7ʓGF%|JS'?nj  u]e\cJ	AaV{U햙7*EBX,p5>Hc(),ޚȑDLqM҅~KRl!/C=`xb#a	(rfxBADixHWO@dIB?
qs35(RmfK%
ٚ"vcR?D`,R8S⩘,19Y5xH_QM'iU-qQNer0C&T&a1?'>L0!ܶХ	"PZO@+,	&Vck(%/<ut<s`=H
p{	y#601|ѧW,=VFZ<a1As<?h~oT&TSOp(MpUhTHf7_p,Dtyy(G1F}tBeq#&x.|	Rzp	5'VQfsb2	EB#ebPK@ts]?w
.U(:FZsl54XER,e$u>
q6nCR+1Ʒ`v|R|f~~tT |b6{p5TP	4obkhihpQfȐ
 QMpB@ nbq?ysURk&" gb3hY'RhG#)P;~A)&'VPAچ'eFrV>1&u	|BSb	N(pbVc0)}rw"pUEp)*
MH xu,q0戙F!ӈ8a%"L@!h'!}lg]'fJ7K!P+k^$\Kb5e?Tɕ3Q^FlCPrmʆ2BR
vB)T@ #4iZa(^ro	$fgyĶUi4Uw*ix	
V[18Q9r5''z he=aVZњ@I3%Js֨KpZF%tBFYl;"J"1'\YyeY*qB
a'01I'(")F5rRKŇ9}gQ^)shq5d!Ci*fb&2sxT@$i!K
`e4H=#@К5VWI"RYF'2:s͠$aț:J|ŌW(;WECIB}jD&c\$hIfFc:40MvGgُɦKi)tl7_Mx'1GqB18dˑv5J	z]KPWZ?w̹g7QV#0eGlO1!{<zũKQEERN!\Xvk#1DJ)ӄfYEP(pi;(zʗ:G0m(jBKhO)AcCAJQէj-}&,IKL@OJc.Kp+n`{`b?g"JiRp#0MBHX}H0(f]o5k|
S(rp\0+*[7*P	M90Y\xrs7Vtzv}wKy>zS*BsCVC┘*NЂdHz*}9%;$z`jkz
a* 

a5*Z=(Zą0Fr}1!Nt!cȻJ٭3 A0;,]cEGl'y5(@拾U0qA%TAVvnBl#{QMbzjqaA	.JQj󢩸9SvA#$11A9|)Ra1`aZk
Hv̻<jHL[U5krt^5iX7'dhþKdS%,+
Jd!ՈfrldF	vǱU,2,L7:ѐuL02VAEza,; q[	5Sy&QRQWEK6m\kҵҺTd|?CeRńl
YC9}"4*A]7*pԴ !ο<_o|Nd2@Pye1%&1>0<{$ge_`)a5zCE#q23)p	a;{Azp	?ׂߩ3E#QCj |p-f Wڛ+Mˡ^1M(^PT:n7
LOC*ё+-Rρ
qCWļWC8h@ r/<	JpR RS+'`306\mt%DBiSeHcѿjw{AEʫҮޅFUtMſ-P	R2Am̩A+07z1VP"*{vbiV
S`C.B,:׹ ל.} yLex tBRRYǻQFw|>|Z(f(vڿqf$\N=^$EB\@9z"UۻK@r3+&$ GaBA
tBӱ,5,&dٽ[R||jxCX@S ,`\#tKѩ#?gPkAYmk2؄GeDZᾁ)
>
T J:;0b*]$PIvrP|K( A Zb|$A+D+tلop5X
=͋MVOh$
U<}p?`S3cnV	0jHaZ`"b#&\	Ό*R&ǳ>K|K!T>1v_'FN#'̀DOru]@&I¼_|-s+=;qZ-LNXH>/cNErD
Sw-nɨzak"\]aɈp:=qrnmA%5	F"$B qѡCSFжC3xPCD}CJP'QH%%CD	6-]SJTt-bI|%7EETRM>UP̍D 
*e͞={ZlUKHT^w\YUU>RAb4zrSM9GE3%}	Ǆ?}KL.ꔡ%L훦B
)ңD.YRd_(s%ފRnS"E.)¦ɜP$:j͖l:D.m)-&Kr_'Ͳ$>FA l2OJJF§6(d	ElZi&G$ѦRf'?*ƗFo1GiH)>HLH#z.kI4+R!,sXb &;|k^d٬8/oX3-bC\>VSEG5ZAThߨK)C.>
%bEkĜiSG;zь^DZTDAPG!J!$qSJ0P#
]vJH\x -x\CAQ%\sEF(¯u%+$ BH!<Gò XJ"$&˲*VU3) DИH^u aσM;TyCᔺT$PCE28U2QL4?و;cRRSͱ8
Rbdغ+@Dtf!IdeVi5oT<H[l۴dpMo<,
Gܭy^W)s6W/2%^e4>Da
@ZG"|b;c?|jQBVb.9KhV$cdˏ-KQ)Es8u֒3~$PDMJxFRPq9{؆svaW	Զ700F`%8pY B4E.rp1B&.v9G
Uns\ds4MbDЧ5P;HGv}D2C!Gӛ$lw4'RMͼh$RLl;h-&\(bH+~ m KH{P"RLT-pKADetj%p`(FQRGy޲AVrЃ7KZI2d@{aLh1Fr"RژL$bH37{ԧ\YRq3.mtl8ф%|?a'FG.{#%CbКDtŃ:icLr6Gn1&)QDiQHFK
۲|ҦQeN#箲8}^:1v#CD3g>6EBMF,A1A
l'buDH"氢Φw-:Ȣosz$֤.VQL4P7@D!D)8X7FGL'	iIE;Rn.*&)c՚)cJ2aq5)ӜԕeHķ+z1t
  UQUБ@Ns	]wِ('L{sAѬebjɰfwH9'.$!"${M|D؊::g"	HZZ\!=mnyҕ;VD,q H`#=@OISI\pAr	&}>|pM0/f4ч>lיTpMfrb;F30*
N-Ċ
Pf3k(HS}sA嵌@_\J7O){!!AP v	~&,L #C*-E
J5@
@L{lq_@:
%R<N$jI` DH\)rH[1]A M8])-V**7ʴ)+yU2)G)vR ǉp⻱3iP⼆Xu7O}3ꨈSډI%f"À&,a")jQC2W@AIoEۢT=aHOv]L	iN9b['/qC	Nn_iUf+d[Cz>T@Εy.ܽpF1	y􏓋
6B?-oAA$i2XJ܋=Ax|;U<b`"#j42d[f[Od^D#8@,у|MA%UZDvmCLRL	;+
X1A !k!
#V"C҈<ûq
h2 hPSM<Y%ل <!p50B#, 
q 6!ɉ=#إ/tt=)@Ѱ8ш :
	N3l1j*Bj	oQ @c:ێ?sx ,85Cxh?hb2A:D!L	S3pJTk;kضӫ02"(7`2".QÓ<qA Ad-&`VQ2j<8#AJARY!|(MB*=8Sxᗒx/=cH8{>)P73S)>"	o8/FP@Y2P>4莎0
MD`;;IL
X&0A8
M<{d``x((^!e [*1ZET(R PTȶus#s{'77(2pďp{'7B<# ȶx'?RvxGV#B!2(
"%p8^U04YJ[X%h$Ia<*	BɃ0Ay#d9-RGDPTSO9JN4aFfb;{Z(ð[ŎJ5VLCL@8Kg))˭ L <FƭF,K"Spl@!F仧`GM-%ۜZ9M ݌[Mgʘ0Ҩ&NȦ*BA$#QrZF{K.t$b,
6"jYR H5SE!6F\PXd		$`rΕm|Pb̃42k6n#*wҔ&IZ=
sΔsEuI)Q<qQR0钂OH) ZCXbL% 	S1;aC ">PkL"[htӖ2l@䳎	s0!@QZT(GP[PJJcJ}PZD6KLդ+QN}7+*2TL[)G#L

KL
#C<
A' |	\UXb\$k
kV(wYdU۶$,Q0M.Y;*M ^R.DJ3N7Bㄲm#l00ptӞkSCEQNPY7uqDvD*4!h9F@b AD"UY=YL,^lYM;--T=FX-.iƬ04r0֒ۢ]}I@_Q	lɷc8[e۵MֶuWs8[ppۇS)^Ӂ]IU&Ua>儮*XtPWCS6UC8θRXX@+I+#XWs=(2h8?;"IUU15㽁ޒtV	@M՚"3s3cT*`kh-TPdHd%-|xcn2'´Z[K?ђ8`(I[0+I`0\!My"Ј)X\r]&s8\׎)}"WP?""㝗>;;S)4ʴ޸9MJGLDÏҌ 'mQo,PHTI=ゖ4)Pc>k㕪m6=1ȶ<F@@d-n_DF(#9eT^y%˨s؋0Y0M8Tب/hh̀NM[@a}sYO&0JH8 R(!3aY8Gpk@L4B]*haT"JK"w5
~Sg~ Z45he[15nhǫ4dx{'PN$b7@F<4BM_\])Y#0L7eTDU;|eT Z@ʙ
p"$hT=p|H/:6l.&g={qLlFXkk:M|ӭʫ]$9ݖF9	s2ġ6B }ٳDYIUYHf	y	A2M`SnhBH`.>Əo1r@.=Эpn!{҄6={=*L!w
 T0Aɑ/:z]*HR<+"7<[r59SC	Sh
ƾw򈨛DpH9Jspx>( Y
DPbVJ}&ePIJ_ŝ,fqKQ ZXUiϞ]/4ѭ;v2
c+<'bx)M{G死X 67[>83!UޛЌRcNXlW 6fkkWjS?KxɕYXh7Eݖ4BX%=ExfZQ
./ ^u!qMbH5a'aZ,-dOe/v@RdwlLmJOsiyG&9!|:|wP*ޓ3ٸ@O&@A)-j:J>v확Dl.ɤI51u0ty(E`;P[y/e$g}ZqpOeYZ)r~pe_ہȇ݃xY80e
S/}h5ؑ8NƢ&HGIΰ6?P>ΐVS
tHd)SK]æ%L۶aHI"lah.G0B*#ɒjќ&T$!:ҡ+Qyhg͜>*'QB"Mt)ӥ9*fr*ժVbͪu+׮^+9UfϢMnu	#DzuXZ;[ >EBD/aH|{7^^!IEV^ahb"
:}Lbǩ	0Z	X2H}dr#4h${HEY)X0QK3YRT[2E!RB,ۚZQ8VCJIc61ԟOLT2CO9T}QXbTV\o#E]xuNW[?ea]*Oc@]T*{giIDlKJF-4R'ߘ*,%)R>HB^Z)]}^E HCC2_iUp-eM?Ur"tO2;QT!dR	*BZ+IxVګ*t^Uب98a<"+%DO{QfC8y' _Kk1bHj Te%RȚQny	EשHVB#|Z]iNJ2-unUM!ww?GMhpF(4j281LtqJԪ?#ժZG#4Ӽh)7l]i)
e&cft&{l,pm;Ĳ>-l1|\2G*?HfIACyjG5Mm%?21A$22杚"x"VRmS
"@EʞI0+"*r(6`C^ΤTIϩ*%sWKwmr׌<(׍T6<`Ґ{6hۆiItcFZ#$mdӮGi7FaQ'@8}3)O1IdA(NrS<yjM&pS)!87Oe:DңN1;tB `#H<Y<W(PMdgJP"e{b#>|j 9g@H0vOBGbō/T)8Ɖd	Jծlp_$nA+pj"Aa9)b訐?PD;DdE'99zC1.cce		E,BxGSŌ"Q)cyS=QE+l'6*!=9
cwf#Ji{sgQ]7ҳYPˏp4WHW8*5r!S0f`K[N4
l1(NpE8,ixmp8\Il4#yai% u
lINFk0o)J	rm"7U eYz*2Na"qe(C;YGnzPjƓqS91'N*x"6%RqT@6,e!{ޥ4O=*5N%Z2caD"#Z*J͌F7-	Y*H&f	 e7K֢J)	JAK$)ň&झR(D,hN$)dR
͈&d"bGL&qNTMP
󢉈ȬVk[Ѽnp9U;k'/J>Zܽi"ƖD{Y="-	W<LwY(/PVTib@fpxIEsR#7 #|É27#!]F*&K6 S)]8^C A7E$8y06RL?"`@wBOYX~T:FWlPBLqV[u3>4ɊQl[:G_$s Y1ڌ/,.G0d`9H,"(E'ȵDhvjK"q)1D 
}SpT@FijT;M6(rB\dtãZs>II?fɮ1 P	.+YG:q'ln8n~BI5Iݼxz{p6\C},LWM($
>&_#Nչ|FÖl0+a0&v 	5z36익K^=b _:tnWo	J`Z% nw#s%9h-\rvJ^=E|ZR1T2$d(Dtue2ʊC7y~c?a~g9XXdDv2IfEXGفmU$`U|؅ G 	 ppl&9@C	[ %W|+lhHHٓŵEK(QI8D^pB/Mû1,hIpB(FRFrԽmL=8IFpLE(|MFΟĩYMLx܎?R"()x9MDEPB2TGQX%Pa:`5$U,ϫL(b]+&߂x+7 l>
@|@ ՘1>i]
Yњ `Wz 
H~lPic(  @?@{  \D 		TIl9}`D=#%ٝ]t]͠eVbIMr?qYL?IѸJ<!QA;>HrGT͕^[7N(,$),:wΜTLm>BRiIx	!Bd_&$UXZtL$!h%L
!Vp6_
*\آ7إ]8?KT*P >18j
c5c|j t.>|	INc	|.&*&b6n  LC_Jj>jc6<&ցc8&=.1.8`ؠdZ +LhQgSD`0t.x+Mgp$ !B(F܌Ē Ht8Ig!KH<q`iWfBRR{? %I؂I:Ē &S4i!,؍b}Y%%MtՅiE[P5_8|ߎc6hj26Jp&&>fdbf#n#֙b |& s fY8~L6
gzf Pgm?d^e@gn`ב_Ho^>i`=znJ2E>:'ȍt~H,4=O%YW'{Z"d($؂kJz'!ĹM]r>|yq%~zwdPE0! ه&RWWMLQzԄ!U?ؐڐZEF j&4_n
Df?Kc=:IčDk
\,r)ȜR,%>揚,<0~"	&9mD.i"J>)F@ b! jnT	ltB*K^YVU?eDLN+uzjI M^I1en ܖ2DL9*!ܖ	л\wPD 2n!>갚tr%D& Z"%/h(%ƠG%r(h]7БR"   8jp$&q p	pmf(萒8" kߓvl>)G_jc~Ď&ijV#Įl5<.d%*7&-_#r"NFH?<4DimVEfMdd4L>f gm8kXmgFДUhZu=ԋodP0ax*Cs0B
m0BeD0 fTFCEZX6CHLE<|%deͺ.%ğE(ޥ7 EA):&  ºGqѯæ#	x_2_Ho6e8J.oZq&/H(gJf&U	lʩ*d2Jp >EYdh!dͧDgPFg8o1ruIbo碜]i~R@o(L(ٞHL+AFT~1wX~m(j.!r/ٍ1..MsNdU,,J&^b,<;7pg~fL3
\ᴦd9p(_9(iqfl$J|l,rb,Vز&2,F*kEHlBB $3橧!9sI,5F0FWF73ĕB&8AU,.PPAPDM	>K>s?O_PB-`AvQSDNt1__mT \#Nr6"#_ddF&?X)n˶^Z&M"R*Ê%oQRX,SEDJ䍭A+h.籒zj^94+9IdF-6ha6$N
+nFaxTS_MzDٲ&SIUi1-"qwqW!7"; N'7L4_,϶/E@npr#g#"N9~#w[r_AF<7lDrZ s	Z`jxi?w7"4*hXa8lbMe*ƁURV-mGJˉɩ6*en3}}Bdv!.̍Ī= ^2j9r&8/co"lcxFJ(w;M^Dm_..SkEmE*}0OAh>- y"A	'X!Fw}bD̂!ܧM]PoP^Y`NA U@zۆ{Nb|Ązv!3Rn[zaEWG#'!<_؁cΦ{[,8}\$u^ڭdaVeD]|°P$`hAr&CdҶۍK?ķHn,[6cVLpsP{.+­'v+_M||DTD2X}]|m1a<@cLWu)2Kɸ<̋Xȓм.;tfifug<w=aV[+h.L? srBbDZYFD80ڶ/dM0mg5LЙɋ!@S^Ā{IGU 
<w?(CCI<@O"E0mSaCL:?aCDRC9R:t($&QQeJoaƔ9f͙Yć"`aMG&UiSO<jUW9B5G 1_ Qm[UUm]uf*wkۮH9]_ ǫs`vEvT(3),&LfqBgSX̅IbԈ)&ِ w(qi%)n=4]Q-Yʴ=ӣB
%ݒ"l4k_oPLI)4&Kkn8J%LHDF =zHHB$
dCJI,QL(h-#q*. H0$a0]t!#
,K+He(HX(CGMX-%BA%К%Z	Far)Q``NYhGdNQĨZY/B@ɎBE*/RSHAU?,	hMJ"E2
pJ*p؅]VNUViڋH0r1Go-WHBB^c?I]bH)0E
N4YMYN*<%sLN35)Pla8@'N%NHet&UlF.P:/y,RZb5{UXA"240\ l(duJ80d=Umh{ l[s}0j.յ]UGyB{SE.跪)ĠE) /2a7ч5NB'\IFXcCN*Z.Tjʱ	쎾=]%ϼ/RPzHY6oV	l,<<ufZ0aB9R	by3@|(@9LS]wiH0{a
6R"2XJ&C,$5J0Yfa.|&NL SDYN1-`0 QeQjB8v"uJS3ɓC,%
UZy y%H&,VCInT[1IM}7IUGEAákq!\"Je.=a
a8HYfbbTCÈL%Fj0I*(s"Eq3M餉h="<ٻx64`?Q(>*%x5U'DgKr?1l##Ip%5IBM<nʟئo97H01|&,Zr;JΑW%IVRp
:^TlU.sLqL
,y&&T#&Xl<ğw=v;F,aѾ5x3FR)1bLUlOCc3P2&ODhmkɈ_2ZbQ`d#A'fM9	mdjwECpZ*5%x}Q_qs%K9GqZ
*ЋHGA
YR0^3l)Mvgpz	|<*OKL@Q6YLС;ifFX/Gh-Ql;ځ@UVHErz-숳[-oDF-7 6$7po'ۊil
N$|N	L\^1\\B%SG?[is8My/>1_&}!
Q¥Z俪rjxE
.,iVӆTT5qNy]^|j2E*k!ٻ$SD`2bjGN#Z;Ώ?
1Cvv6sju*SҐ"&W!rKo-"
JT `3ֵ>,X3N9=crF~kRդcপѐa4>Xt/=UDh`mİxf
&MHjZ+Cg4<F0=jlL^lNY/#falEڈ6]d56<f?<<7Q]2-bEUokQE4A>TdZʉΕ;A+'7(܉W]%9M<>e^/%G/n^i[]U",?4,.B0H!'IٙDM,qL!91"	IXkҴvfbejĊ:ÚZL."pEj<Hǐ&D,ȭg(F,F=
O':0΍<$>BC,	6o}nN|̌(p"p%fp)ֶ1섏L&Jb6a
OJ *&K BF"4B#DBcΡ־b @	bD6#9@! S%v
P?j&R!cwxQC!B0A6ŠI,1ej(?EFܜ##\k Omg$6nx)H+)T	BF>vYP[&BΩj/,r
/#Jn
b XI \b@m4j'8A!9AL䆯,RG@c#&@e,B5dMep)	Rh6&m<@ENl#c3Beq(.eEtBFMEl0);e/5i7>"ўe'klCFpMf0vPALHi4[`!oϪpF8(@P11p&Dz "n!$JԊ3*HN
ZH/#e$)@O	%)˱,;nݧ<o}4 O2;Tk(~bBgtR)ll)q$>ެrXf"d`J+QJs(pbdBX(2>SL+SFn,]b* ،.}/"Â/ o&A:oS1
<
fDzPF84/`oEmN㤠e(*7MR 
R	8=18eiu=S9SljBЏ^%:r;3!CcmPJS<e(.(NI(o>WcTB|'TF'fP(QAab0W(F
p
<4tC/-z
|Ce'8a2d0sBEWTv6b!76FP,fd
edÉRV,:
<k@L7k?@s:ǔ:qL4&YشT$"BE>':oaEOSDFbpb3vQѬ߂k[[JM$)!bq>BU5MjVGy,VHҰ tbU@h"Vg2Kd!"X5sbbaW]X@b-.^2eF lbFJǊ#+S0kTH'
^!d~&)-:Aj_sLAMme`bpY?U7aVvDl=N[4pa-V\)0ue	+ﻪbf3ђPuXUPza~v
@hcVAk7Ʈ$mA"HC[64<SkvXGN:q	"V!Akă"DO	dDȱ#dj(
7T+5JE%r:oLFfW .!(ά(rp.!(ҤQɕw&>=('s?! xTiwq*|G|V01B1
$crgyk
l
&&.y|
҈
"V41S`@3.
Աۖ 68D~	@ (^C>L!Kf$
ҧ<Hh~4`&N9F~[`oq3 ,'b>F>Rb+vt\ m-k7N5gzA+zvXzxhs,
r("X2@
eЁ}夎laʰГlcC 4Xoм}anq'YGYñ.NjҠ!&5<|?=_e!(IYLj'GVJ8dBndsbW'+	CFǙq7$o.HT)uZE~\8N+iKn!U8Y^!z^.&AĀ zXLyu74Y"9NhàdjE9Jn=,8anKGw':]3g6̃à?.hddСj*զUe/w.oY("fXφ?.6,(ro繞9SDt/B2eT9gv豋{/ͭzYzE`984la"@
vb|ٰ?ß-bڡ['4hc+28uG5O΃`6lDRjr{H}H%JUdzn{r9{ Wr=8Vq i`6wX@;)zPl&@6,Fidr\-xIgYz[u"v@^!|	23
v+NAPl!t\&mM&PG	6`癓4JN+@Ddl
I!eTQ&Q
Tf<"@e\3(K([R&jeqGI$v(̾rԦsN{]E|/wjkG'iaBhz`Z -B
rai3rg	!y|,3E7=4N&DwK%SM얹"w4xY;щ(_(/0U$WLqi:?jӦr-"#@;YCed[i̬|^'(7}B1h~J[7J;aҴzߺ	IƠ %Ld?c![0oẂ	:C$#+-&Cl"hB:qNTC{6hَ":U)Rj^k{xh&uBg(#ϔUJQCL&Y+F'Viv"!s>kkwwě\|@yT0fz d	)QtÆXH̖(Q<|X:|CG$M@:*d]d.bѢ%
'&@̚XBERTFg1QJF1YҨQ&d
UժP:թ% eM"k"mztpaEREL#[B"K3gP{5g|Л{!aqc׬s4Yѵ{S"J0ƼϽ)NHM@#oHXOӫ__{$B}C 9U߿T+S Y2R!Hu ]PDuHUGTw^UCE.0Q!VKR-TD-BPG%TNM)ITLVA]-ф_Ku]((7z$\2G a1#E"v"L"Tfpn5<d*Y"`h? je.jfahUgt){Yޙ#^꫰
*g
3ZT߯^_',X>Ud-S`i-]<QYS.T҉&R6:=LΎLI7[pUf6){UUV(r		#B`Ⅾ^D̈`n^ҨbP&Ҟj9	h<=YJoJ#mA'd\Mpy^-de
>$`9 U˟'WNU5Jp2#:!-`HaDJSB6EuL0REOi)ՋN;@a@CAPv˲RPWV[{7e{u?ť!r:tmiBw-m6^ uHUYԢnho3d!-fa<>Mmiz=5ho܄	vm/(ЁV0!{),q{(7sB9EV1UpL0:**$5ډ,ЉZ%{]X 	Cٞ9N0(gЄ&]%",b1X҇!<	Cio++[	{⾘=g!q2Ee@E
PQjF|<B5ۋ*L̥.,iMVŶ} [a)f.	pE^wD)C
CU9s9xg=)E=qREZb
I0Ͱ`KbTkI#FSrP{CӲDF=2yM
DFJ2/7yV	&hEөϔBTJ63]:PuPAPW7UwÂhB<th!pE-*HnsD`³h
ΉЉNaBm!|"'P
=
aPDDThN7a$*&XQi2Rj38Q8h6ݼ顧	q\zMUSU2vYn|QxkpZ!E'$*EIbUzE'MRTؚB]w{R, n[Ud]0FSJ=eщs&møXp8
'41! IqN(p^gQy3ȑCEVbQqC"IeL44=xo7dkTc]KMwL$D7K:y,8"z5'7X xoC}؊/#6`5C$>$
F8PǓ^xx#&JQ"Ё(J(N؞4^YC !O/tL=GC$r/9J叕:*3ؔGx153eVZQhf7/*HQWA B7 p
@  zF4s8*lq#Z47
90<Js><X)[/%6$
JlM㥖*{إ%R0дAU4p6G622kl

_1nQ8*|ݤnd;g}'U(چ0 HnbߴUgE[V2dN>~BsSUEݍrDFx
VAZE'|/)hGү0*La4,v/jѺR%k*m
Q7m01D!!9̗ <t
ǘyJו)Gwdw!Dx׀(R%pcN*,`vWeG'R !H`_ySz]zWs`JA
S{9DD{D@p{4WbTwt;UX ^b@q|C#U_\ORA@066¶}Z1%rTI\<uJ =
0Bzvn"AR]
v&QfRSJUfmw+S$`U!6A QGr66k5gG,UXpz.Hr#3X&".{0S4gaEx#Up`_ cX_  #cP;Ѝ/[bFSx|L$@AOEyXlrȁT1]"<#mwquU35[aIcFJ
d)>JJSmfKX%~G$pKU  X6mpx *lq[0Xz h* pWTHsX.LDH.b[HDՎ/Wh+c%Tcy1^Wt&L>@u
&3S(3?nSi$wQTfyK%X
,pS%sUX1i*U*Up6cHFa?	AQ:"`=MA8֌Q{@8Z6"cGtcX`rS I7[0T0߉dxD]{Zzzlx}q&Ql>ۦM5µSPؠfP&]gmX(J*ZeGGUF=Ac%eAgU G9r%7,z9X`BTV"YOL4"/0c@Cѷ/!F@t2Dy|Nr&@L Vr>dQ
Rqױ	fisJwvt)\nUgjptrypp<kAFug*J$B!q6/	 uτ-1rF9KI4"{v{wr\P+w{Rt"2DO	/*FO.qN	ض	smĆXJu{їus7B'"m2 eRq@	rH
ozޠ]8*|Ɓ3:Ŗ^U^q^4U2ISyU"aU t  PAC!Y`0T1:OZ`_P@,*8&ca1C=
s=)O/s Y	аFJQi*y<kGv"e6Cc'ǡ(x41;qv) ^6U%;gsL
`hLhpIgH^ɔ|c$Vy	g'J\۵I (z6ڃpX9{= @aʛ~O	g1
I.}}Mzj6F癆*d2uuTAqؠmRؠ	3j[o?{ocW:*C7^"l#F6YL9
B+`պfrdr#9k+Vnw+kTp{~tTbDi*j;T	m/EkUOv[X UNi'ðї}(u|7"#j	z=
(9<SI\(໱$i|UO\H1x/2p
2A&?pUrUo3@k*gI	}#r{aς,DWYȿR/]y#	L0As;Js2l#t	ɦ	ВbOZv֑Qv9DDP>IekIA?fD쉄gxTĄ,"L=ûQ<
X<5y*a-6p^Z^71Uq\QЂ0CgAhقz
a!W#-(Db 5k7"!A:4TD`/66C f/IkM@fY6Zφ!ӛ3p{zV-%
>psH

#xobX7
ĀU{gp*60"bK_[MϬx0yyNA'_:f-
	4Yܲ<7BPA+VAa.7j]/dBR'>7Y	ͯF($[$զAl㮬[͆8+igkދ&k[S"Ět-KLE@7l@%L-:VgKHpĊ2fA߸qBA
ANzǟr:X`Ctqqud,4/Ma?i
RP0Gqbm}CPn/X08}WHdrΗ|&==o2wA&Ynrnh'RJhnoze^Z g	'Lu^i\@=A2$hE:AtgdY{Uhٿӈ|#zM!
cI9;ͯGqP'Ml5ʆؑ䛓/ítlz1FG
!n@=5L.Đ{NtVsLDL`g+};/bLp::^ugqh6+8*@u1h8 |%jtT/GmvZ5^Pl#p_ζcœ{N10z!I|`R} JVQTȉ.g1phWk|hS}*^#XA	.DHPꟊo*jp BTXDO1cl_s}Z;Ӕ*h%Zt蘠7[UŋQD T.YVI-aeR86,-Y	3,&Kr	t5yF2j4X6ZƉ2)sUD>$Ԑ(g6_(MJx.!
]#E\#,wK/g?Yb^}%Eٓ[Q"gDw}-@(|Q00p@$T4!s6'6#4PH@%H YL+B@$	b!^	]XŝEs9ȜjHXũ1
 *JXK*j
-@Ҡs૯X9sX80ÚD|eNO&hdA)Ő	L.&kXzz^B4CK𤄮dS
|CG.)/,QN=tMD`3b+/ZE6Lؓ0o`."	Pw\rD0EB	@u7!
Hh#T$RZ4LDaIhbj KɨЪhb ѮR+,1ꬴZO6XlRK>cj@
>!bYFgoh-+LN!)H]3Gv$|ĐBZuCCz3ON\e;3|nd}wCEP| ;\@sw񱯢bI0[W` yr&b:񽠟4ب/0mgɧ/j)R*GΊ
ML>9'ΰ )*L*d/e/`	
kB+N`f2)`Đvb
̅8,	+7q+astB8ZV	C,.X{a9 Fج$A#b(p$bCi Pϸ.wiѼBa cKt!9([ơXl
DxE'Df]p߻XȢmK1] @
-a_,NyKwI*tjbW(Eʂ@Z1DIAqB"i tM((C F/pЃةŀfm;9	:,EK#juG,%[ދB8[q@nS3DP	8DEP9$@$ Q ذ 6QD{A!CiU4yE
n
+\
ŗaBcMpYW?@R,_%9ю1$J8(/S(/XKc:
h?,l.)8 oG<B@w\,+f4ʝXpaiz~ȇCP %$%k"I"II;sa$?'2Z (pػ(_.1ZH &PbE42>1e	13:}oaμCP/nRbфaCPTc8[th='Z BPis6RN9a^ZU!F8!4onWrVo]O7
{ Ӈ
,MȧZ}pj|"L*>SI˶#pA0')VcR/n
"H
wc8m	1Y%.Y`XoaAv3J3?TÂrf((b"/߃6x.a7aYcz9aAeMX]M]) u5p=Cs)xK3@l$҇^rP"yabNP6 DH2lc+*t"nb(e#IE53ЬQJ KY'p+}"
	#!D#hiCX]+u[C\1x=7t57(rOmN.s"#ey-EX\35 3, &REg<XC76)!@iTܶnɐڞ
%E^DePӚ]@5@=E1hK>Loy~
2d!G-щ=̷m8/6_kW*_lMgӆͽ	#W66?HԥÇ7Pt!;l3-| #胮S IP8jDPƯ"DdYk}Ջt]r!QJ(.xNKp%Aq;Yȩ?k&Ȍ@/W1}載븇[`0]g*b4eAJAW5Qrڜ#+(9ދzri9,%\{1: @:Kۡ':8:6#*ЇZPjڅ%»ZĂr2o)9HɘF@q&|l`3 ?D[qؔD& ZC8] &_4ؓ!4=h='Tπ1iƻJ"Q哏Q%t:P^뻈؈pv|`	P5l7T#6):dM )<̣=CS⒂0ů?$* KV;	LtHyG|<D/3@4l CzABR +RL F:Y[FPF0>㓬`	t҄@[{:#	1*'K"y	6:
ш!si Gkà8ÓpCd-Pĕ*7FJI@(MQ1JL	D"|;;>@4EqɃ*ᠡ8^RFpRY+f鬎ʖ(TjHp	ok "Q	 @1.ˡ-0P!L@ô^ H=TpL-aȅ(*36bCNH$Wb)@p8@
Ħy}`T2Lx0E<%HPƳ
]	JG ł^ 'GˠF+00K©hq>P5\IǑ"`C#<tSʺ)*	U:!(X(#K<|>1ҋ-+&P?Cp(7%hH@xRr	Ѥ1Lʳ m3"RHNĴB`&8S[+/E8&zh	קA,NN+<hK:W蓗*zI:F%z8K\؂0PG'Te* pSU;S9Fފ;H&hф\*ĩ18K<.#IYA@3%U`<tDB@$W@J,%PpN먴S4`daF,>ykz[X 	\	I0:(0*:%'QzAT$ Č%	P(	?hم9ȃ
3E|UZEe D:OD+L<NQї${t&VP!µ [W!K<=bRN48b8ShbW}|܁8'PFl	e(rPܶ|itD %4k1cǅX]آ 9|P`-"k)Sȓ?,ѱ(Q{D:륋03L ImF43PtZނ}BDZ'(hԛR[.҄Ap=%hԳ4z346+	*jSɏҾ?')R:yBtԈo{L5
bIjA݄t$0̚&sZJe%7c]}Z/Ѯu^`{HѐI쀯Z	[ ]M)6v`5+=<4y%Ƒ+2Umc[>D9@:R\{]sX	zI!aMk2|qa¶ AG2kא?\H*(/+b^vc ȸeU);7VCbYV)6̀M^TIEJ_G⸸7,M)-`x>c|-3!`9|&GFj~	,bɢeSP~:vNvѥ<$!Pձ	Tx>A\UehU$.,ZX5i:嚞	ⲹhAC@gf֑leIT[O|yݕq<vB-ngv"%Zg:{s5	coX}jS	qtJ  t 
y>~1ІB
mPC)UA<?kPLYO\6P=P^}bhIFޜeŠ%ݤj}>$l k稕>ߐ_e[E__hRR 4F[!L	oq9\57pAis؝` R#Zl療[
莮$١(حԮ/Cr2V>, ƭ nFq\bGDrmef %(CS]PH`BlT&=Jcl8c[dmsm?osNtbsQKЄk1Xcc&Pp	?`E>8@q&ȅuJll &l@ȵM6f֧J9fj5nK輪>c9Fcc0BÃ9NoXdI8j4!נ1;v' 'ohpa"ϡǾ"QGՄwփQ6Drc DFˠ$L<zw{kYw3JꔷJB0Z'_`'[ːy#WHbװ|=߮z7V;ܣCߧԑG8^xd>A{`6غlAmt6˔tFz-c)G?EYN$1eIL02؈@2D%='𛦈"#cȠAF.i%4#H:u22DRS)QYڣKJ*TGB}d?lBUTȐSTob*
?t,ek]K.^ .$̍l2̚7s39O ̑	n(Xh:+:$A@d$l*H3-ҘҧOW'^"2ek`(9Q=|ZTĉ'㿧Ү2'0J	ȉ,		:BSa,`D4(-ą0@3BEtHqvdKN"FLKDMXN`7TQ(q!T5eZ$2WVaUKUZQ2+"c%a^[HVu"Dt%"'uuH nr,V:(^YoDOs Pei|O  ezv颮:>骋1c>wxTd|"_|Gy#(KQAPaIq2#*( QO8BD<rԈJ?R8Ѓ2aKIMKBؒ?T1E>xUKJYUT%ҥXM%hBDf5wVבa^'^ v}Iz5Yk(sBn&	p>	ꨧizr6jK
e栂iHk༰@T,㻘7H7P;m`~;?(R,+]P1q@"fhB\Y\,K2/J.:0#ز"K1H>fϦI`SRVR?ha	ܙrZv0]jCH˄g?mA	T6[ 35A!MBT(f*|SőiƁZm
XRa W]K$0H!KY*qPr@l!BH-p.ׂ@TX4@Z
RB(ačbA |	J/FKEՉx[T#b!T!29HFPzaMrI/SXt0)MI
"""ZB!|Tט<Pwq 3r2erfURn`GM-$Uc΂)aY8Ko^#(2<q x9#v"XMQ?ڊO,5|Pu
RHg^kB	GPFK 8,B.-!FR2=4A	ܜK0_/qXhaT7J!>YJ9'E`,TS)SA$g0D9iO͗p:_ 
m`A &MJ9~d&\
)M@pfZZQˡLmP\bW0gAzc
){Pϴ@94r\,W,>g"kh[4a9G02E0UhELI0Q9_Ѓ^G%HRy>;^O;V)J
-B\aWGeyׂUy%S#uc~zgʩEܔ\`ϰJ8d"
|QUz6ĩeHCx81uĈX<E$1ZN?+4hPNQ$`ԐC+*Ĥ!2
宋_4ɿjh	:K҄-"1C4@D0˨8]bxR>j"ʁת@K=b/wXX	d7[iN8I&MY+=aP#`(J0Gʴh~x8\YU0VX
{)i?Lggunt3ɵ%|9BU`1I.6<&X2f hܦKm?A)̹)Aҟ?aÔUS!UdfT9rENE7@ARP/P[%Rmgl*j0 qTӫ<qH,|"qi6|X9E2J cvBܑP@.nE0Ae1D~.f7 K(wDj)b,_%WeTay%Aw@AltGEsA<qHH5ԃ~ìB6W3H/+<N"q:Yc
Jht:81:og"R#x)!V#-Dq喇Hǘsf$js%@H0=4-}%'PxuDu=Å^C>lB+UU5Z0WqaF&I0Y]@phF[Jqʦ$7ʣ _=ѐ&Ss
\5Ϙh]VxXxTa	ULV%x,PGTF\HA[_	D8@!xH8Tٝ[=T&R@J@B#O86x?X!TA,TW܃AEPC94U͗TPU %ݗ$^^rnCZp,_v  
Aƥ$tؘCb9JGyx_Dĳ!}!т,R˸j=%0i|H,8tG`	&>hpYD 5N"-6(|#T't`^'LՌ/c*	鉌|}~e-ؕ܊7ee P(hLM FUNc^m
DɭPed=,KDEDG@}DBGBa B݋ĖdeIA$1fHKl)N07=HX#dOW`\Re1U܃RBՍà5'|D9T%VfD@XzZMbDcUܸ%c,GeCx,]pT}(݇c2mL{a"HB'VE2VߘٛpHE^CbDSD*͔pxeCdC -rX(Ez	YRȰD]0ɞH<c25&c#'YȬՓHgFrMnE`Qg'Yf!'_$#uea@edBUQaٟAHA̋fHK2KԎj'|CvW$RU[E(mRBQO@gR[aFU62dĥpZEʙ%؀j|
ҨTP20 S`Qvb"LATa_<E{ nANDYFܽKM"ZԫJD,:,^.A((
/>\6G6<)aPU(+5VPg*Dfi\(qH#\MߴFmp#2aٌʆХ
k%xmgFcbL]ÀGf{,ja\h,Tihth!j('>|dޡ%)G
q}.f0ƾΤ!.)TU]!E.^\w`E?(--fVq_`/'5Xkbnm՚-h]kq
iFcPmhTкc8~=?@[R6(~-2AVBU&CHVFp,)z:A4&pI2B[f"M؄>,,(~U#ҍHi!y.	WX
D{S^ƉIbb-kPZj2GkPZ~Zmڈ==.Cbl~p9xD͟Z]DkHm	Ų+uuiKD" 1.AlT"Y!('T)meU]
'"̠䜩GGqF M	)Ӭxk=^!	%^1C.|q{p¤C
vd:U <0CjFoe٘uʆnK6R"AH$H✱G-4UV2ɏ(7Z&l*3+ђ4FYb62
c9a2M@!\@tf1mvc֯!^ݍ:kv>dAFD8d,Bi-QB$PB;FH(rL%cLN.Z0WpōbWRg	nt*QAH%
7~4q7>`tbcجf߄0bUfЈixF;dbۢG;H>:Wc9[km,J.<{$DJ 6Oj':-F"X/"a]ť`U<`+C{	Ry`ȹ^uq87Zoi1m60Fţ8 9A4fDPrx o1U3@q>(g5߅bL!n([yG֖VC-H8 )rplb5($!<$@S4%PAW\4L:v&
B)+EZIIsZ/8cexaikn0ֳVfF|RW>9j@u7!,(b3.MUuqLv۽5{lMt]H$K@/V7*H@'/Z	@ܓDuA[#b6ժp@2z72JJptiZFՔH\_/:ݯ>5{WsH5uKVNh.&	;Ip	R&F*s{e\ttB10ƙ;'m0]B68gw%&<ko6Fz\\Y)a=ZeJZ*W/@837'L<//vzXHOkz؟D99[Vm]DĦ!(Q"l|n)R;$]e`;̬BZ#=*=G>=ϴ`6zwCڣ?
ea}kP3eϱ'	Je56ws#>߶X5߫D |jEˏ,"D< #&J2hK"d_ą(RdĐ!7bbFM4IqI,-Q!H3iBbTkeDE.yQNTBH|OEE*d)jRC$(+TٲحGo2voe rֵ{o^XD&Mçqbŋ7v9T$	F5T6l

-P]mwbh׶}6*yӒ?ݽkSJ<7'&zA&"Ɗ}[a\?)Fc-nK2( 4bdtDCEb\#DhfidcBZ%BjJt,EjJ*K᪪JI":MJßKp&'B1Gόdl2J30ʎ|(t2T`0|8L2BCl/0FIk6z"9iEC
Yv谣:[#O%m͎y4&46zKgaD	CSi?@0俻Dp%:i$NVj%}d&s)*K
[ﹰ)Kx*OW4BFm* %GҊ P,\܈HHPmKv_P)^MB	(y.s.&|o˕S>ۓXC9*%﹏bbBD&kVd9ټ&F.9TO!Flԃ)ZPVZO<<(0gPmzYC*"l]a%"bIdZ5ەH72	^2u5	@pذ&l-/+#M"(Ήs^8?Q@%*"
biPmIS&%#h9x><yht		%u4iȪ4
G
qeÒ_}&m#d,t[7T$L7Ic)aQ猤l.L5_	:͉7Tp_D0vPfA	nPvTqf3<52ld+àe	GNr{RTI7DG#{`)(
(-+ZRX"l%z!v$
F;%4`a!üK5(
 5,H8h$-	&[KL`9Rb/LDͤNfU'pP
|!⥌'SqΠ(QKC	UFK>}l?T[BG,B>бG(* 
!ȬrG"Ǣ(rbڒKO~f_x[`4ɋ~^)TD#2",|0l3nh@M.i'28QMǛAt^3egJsv'](j;19ă #h(^Zch.b:џxL(m}k`Y¹w]FH e\FHY`D0~酢9&0IR5W]бބO9zRq?:y9TO@&2
5&=(."=!&Ey^jqM; x1[V2TNt_RwPA9frbMԤ5%Y{àgB	0P)k10.D*pyxm[nɱm|T9Y\
)Y8(]&Ǫpw!n??͞ELBIsݑHLg*c%iNx=ߟXѭX7	k[oHV5iZN3B*()bI3F>L9rԮ5LDyEwmwQ8PACJYQ'"d.:e&V!}
=]<#+"NN{?ҕAҵU(%S@Vp`#"29)',ŞK("S s$)^!01G
zruQecY/N.EkSWLN\Gdv "T2 "=Ў|JU$e&o9'r/Z-"}ԊYjaNCtO%{m6
x"Ʈa0FW\_%J`ң1_0/hP˒\jSIgXHQlx/1rslTŗRՙ/t4{ 竼<>AdU8}k!ȑ'09 +'EnQhns`i\g419^p1oò I&8âFcc&6"7`ΆJ/cBKIwzɚ0͂TJw+zF!櫲KjFa̭oi>`|&Ͱ8bXdB(M)mF߸ЏH0B  nVI.<J I`*c`ɲD 1|܏"p%r/XH4^cw*#bx}met#Gf窈 =<qvJ:hplh^*$f1#{8*&DΪΡ
@a+,n%ߠ1*°pBD$bOT0Q0B1ba&X/DF50]Z'/{!ul{*"HP؈P
Lg˙:QL	H=@9dzO>\1h	UĬN?gERbZBAj(z,M[o)	B/&Cr(/<q'QJhrRa754EA܅.2+/<.n) rpc!7trnvdp.vhhY0jXR JɖUO%]i.;:6B,V)pDD*Em,&Pq<,3.(Saq^ʒ%$*DdJtJNF0c@Q|E#iO>{hBcm#O\>n$(%"i4kV@Xy֬$BW'k!8B/("8aOs%BKDd,C&մSLS"XG=
X- %b+cɥpJG/g%/q#"b=)dp0#<^hvl'O(2ef&:-L%A%&&4ۂ Aj6D&(
7gZ8EoQ]H U]d_X 24KTiH'(HK.EE/D2̕$fюuI4"f7TNtcdjnM40LMpNv~dCʎm"%JP4Q5|ۺiμPH"MC|Lu7)1Ea"Sߐs(9"d `YXD#3Dn`I3>6d9/0X1f6b%6ZyZ%!)">6Q¡©[0O?2˶
!H^(_OBVX3;	aj)"hD@{s)0>baQ.A`4rD+ci0&C:}tTcrD*8"e	n13-%I]T5'`q3s%BGZkkĔu^b Bdָ3
<NPTb?:"cMC!IkIO&{
AіVLPu#%V#.27RB)"15 mf5q13]|X)C5sDg5H5z62`-3U-uq Kd-h}h׷H
Q"By9!ҵk35mM0c2V_dBw7|B(MFm*5Go,~.</$	b9Ә45^He@WC:3JEсe2ru1Rtd6~C"`/@S؜8pAfevPњVx2!z!TR{OV<E$^!nϗPDRϴ'hDb@Cq48mWJm9q)xJV)1tS#N_ȑ}	!?325dQWTwkBRPGPujOz&w2T"Aj)H}qoS8n(#^)"&Y4P,+-Jqw!<(35^914eWU5$cI1Y$7is`-i[ؘQ|ט;ЕJ! PY"<&z{Z?7Jm7"8ah@A*G(\d`Z)V~#6?ՈD$8ǀ-mt04|z݄.<Ψ'rL̅b2lZ1̒#1>tdn׫/dX8wgRɈM'DdṖ]YɢzBi${f)xm	YG@*EYڗ8[`:/dKĳ1nR3KqcxUEcq0 JB{*XF݄/c/6㔟S!Q;2@Y6rFlBGNl[ZVl.˹WQk*,a
QSb4p3NBg+W"5x;scKT+(sa81Ԝ.2VT%ӈR:jìacPXؔ؈.+TB5b)vŖ{	[>E6B|io\D@)|~Ǣccvh["!fJB79`o"SwXp:kKq!iaGnrwu9 #mD%ӱc>g<ȗF$xKAA(jYƾ
*~Xzcu1	r0n0r8,kyo;W^Ù`bݯaMYq?C]*xuKu;s%_ܸZR
3QVrEߩv3uѼg䌲|jvdAuk\DC3΍/ɐ=HRV^VJHqV_"nj2j.1êEg#p
^ݒӝjqΰ[|gx13ǭְg39&ћz#e(͖gRX=8'bY8djֺ<<g.ur#oFi	Ur"ɤ+X׿1ܢe|ICi36?=%h= "֬cq@2aҐa,*1A1C&#^0#[5jD##[,zp?C-]lħЙuh%=2f'C9DKH\v5,j6mZK`*Vڹh:K7޹K,M!ĚP a(M5	s-&)ѤK>:լ[m TG4>MyƇ
ױz;Z̛;b<ftcqH%\^}'˻Y2чң͈gL6:ǓR$u#SJ5UpRD|T(xUCV!\c?u^$2՗ek*
cg9Bo\N>	eR&GBe}ih2cݖ>#=8}ЭYTJT>5_wDQ5D'2Dex,LQQ_D1EDTx`*5!G)X C-jH~Q!(-p{?Ę"`UYR0%"HZje}c?*dfnf5;?0igf7f枋i&gВmhN ZllI`"m	]1dzޭDV&7_JKIgK{G)(MHNUfтMp*PE%!!?A#cy%e9SeWR_*,YY"&YAr³ͦwr}ByPbmV'̜!^Ca]*с5)w'|D{Pzj(/_7.ؠP&!Ts#G)a? Rֆ@C"?TP՝PV"L]lդiRLa*x+ni["Tvkؕ,-Or,	*F>+'3>&!#-gmDr} },L2:tTeRq	3P,܎,!"⡏{KF,=eC{9XGU1[V4q~Q#/2$@Ep6&' lL"a A40-'dhdP2N@-RhG3Nf $~g'C;$A'ysy#|h"|H⌦Țm1[[d,`AeX%&<G *"qߎƋ	E3z%KWb9̫!C\yd$D:ALUQʡ'Kb/\R(rJa:b&
qw8ĉ`˖!V>^Q(hP4^pRE[IaX`/dI嬪U˕#Td5 ,z,?8ZNA$9FcO '`J@3Pʄ6іgA4R>zYU"1)BJeă.Rr.m6mdç?Ɠoh[$YR>^u[HF8k[%77Zdȹu$ 0;}ByЂ\H)i;Y\RQ̆;hj;hT7˚,!mܲڴ<@?fK[I`*|ip	qH:U2ۚ5xǤ)i@	Y7(-8YS;TU)Kr',g=M]922M%HHoJN2HvD'4+<EWSM_#pMBF
8W#6zՏ1X O(NVTMwf(B_.ò1фQ[4ij͎ug;Gڦ$GcQHp	Ǆ'ӄ!r]#ޒ"b\'8?\d924Ցo8Yt 	@C$t-Seʕ,R)H'[\
JRY%YJ-(Yµ79Ctx¬LwXghcPt/2{8Qզ\ٙ%-4jmlȂ,%59ݬP-*hpw]ռd}-b?Ȟ.fX? ,IIO(Ҟ<S9fNUWs/D*:j6&PL-!2j5hvnӁͶ*8]jV)TTڅ.tmGBdmtܜ-:m CX903>SZB4ĴPLoFoSYw.>$g6?6O|>g$T*&}+8?cr#UvQ-%4&kjB~h691y'3Xu1{P<Qz6C';
&znAC;6<*F`4va	4uB\wL.f|ၽU&hU[AVfoǂ(%}G@A8ROqtG7cDx5h&:sY'#NHfJ=yUgJ&5`%bJzzFmZ%R1uCwS|{G?eoqcG4V"7wbD|7hj4v/7S&3xMq*?X0ζPFZYgF~Laah'RtyYAHpQguf4ЌyAi2-$ ?j
Բj?^BOvC$!q}g-$@ӏA`4IXlrYf0Qt7BSmB3214CV#{C[v"[arhCp=53adGo9E8IO
'&GiUY$?POޢ	#%P~x^0^c9R$lZ&juYBF2fRYC'!<.d{sYQM7aE)Q9M%?vA{q	>_,H?|6(7- x@'\r ;~XH2TH:41t3zhJ	nch9eh{@,+)E9o*I-9>RrTeV5<b-pjew/ד鈨@$ZܣU"7D/ؠ<CXIՕ4sgk%t`inR]V ,)9>2=?A ozQ$ET>OEoNb-郪1YV0šAٱ&UYpF\BUqWKtL4h)uuQ. ,ocZ8$誟Y6Uiۈ%4.2*]h#Wf#A!^cɐъI^Hz F8V'*4z"ꚣ,u!VN]T-a|,@ʰpgbYG [OBU}hO
I'G1xI;&:$m`Ιz4{ŲSIK>:⮕uE.D&xz,|{.Z54/ВZ\]E։ 3M7HM֚Cȱqi4	J(9KfBJ^C&g	rv*ÛC<X@{B[RӸ4vG pLYf:%ZvG$D7[M-y%.F1/</1QYynA
qZ[Q4ȭ>Hw<U` `ǔu GM/הLAU䚯A8#)67$9*HA
DDa9aVcpz+LTg(s=L6*EDLH4aMU>pwz7[l<6>YC$JV2 VQ&^lUA[59{,a	}ڜD;Ǆ:4 y<lB8zhqQ"6 \.jd,ti[̥$PE5."-]>%nܠY)y8ae~q3öJmaM!@\AͶB+(N8)w'8P|ɌM>*7q\"Ŷ@Z?Q\b-MY^V٠0I-AKlL';4̟ Kd1V=d&.RBU?N
U%Yz.3g83Q^ iW#`nڷYys'Z0z 80 "u@txp:M=c -Tٯ#<\4\;(-}[bRbMyӇQ~q%AȱY )9>8+Hg - Hے{=ĭ8lvE,g?t}S\k}.T%%b=7 S8MڵABC7lZ}QJW'd="ùѴ5کBcuT\ԲZ2q2d&>GP1Lݵ$%g~cVpAddb;s5~](wr췯9chMܻt'{3
;_Ngۃ,7 
īqF\7vtp8vtWo4]ZXApk>K߇U
w̸r*)%N >kp':2<ȪRܣa<b˚cn.HOR$ör/R%jE3-9P[$1[bʦoun <yyJ({LD1HyL4Ҿ'펊ҧ~"r|M[ۤFf8eht}jqTԅMg75禑Eޥ>荷AC'nf|*{A^ cR<.Ҏ8*:tU$.qK ab{t~8c$@mU07J*-\fo-Gqƾ^@~z'J*n;_./A'2tRE>/ |ݛa
oCto\pE}xeo.kO ߿P,}PBiB`.T ^\X,=~ɑBtD]Bt+qbQ%3C20K
ELFK2i"TNRj5-IXnؐ*:
?iM	}.De.h"P؆B@|GdΝ=&$'<,1o|U34M"*ȝCgEpmL|.?\.o1btILKR2VX-zkMџF>hq$Ber^PZ06Ǳ$MTF@,	B?1ľCXBTLGϾ	`.H3߀K#Z\b;I[<b	󦣎z&)X,%jЙ%Nzt>вbjLAVs9A/t6P X@4RI'BJ)||̱зP4T 2JF%L	YN;թ^B)_+H$ʒKeCsYF2jﳫ, TcH/"KH׾BA KH3 {8`jw?@	YV5c\ҦH_eK}}0=3D2m.Be3R1ުLL|_c! ]WAsT -3;Nrea4a/B?e9|/#c*!}^&<.S=4
2r/Tba-rTF:Nqşe!n̙+6]Hv5R%D0E[iӺ-Ŏ̻9BW8e9\o+-IB#QePbQ
E<\<7%]Kn7@KytajfM204:TD2ȪvV	{ ߨ[|O!޳QB33a4ܤ+	ѝ'^U+?SB# G3 
D&HyʃD3G02Qdcqy"Q;Є)!*Hh{AzF}qﴵTp	NJ^rc+6ё|$
Е.w  ko3%1q^s>PtMpH"X"otCH-$̰7P(j3!ѤkOlٺv :cXWʸJӕ1
Ƚp(dqT*)P6. E:4J2@"F/Fd%.БgN͂M<'H"FpDgQA 4>y1qH}Y3۬OC"u	PT`7YLe6dq)(;#l^Ja'УcZ/;nB  H/٪C6<xfv$SbЃ@gTld%P=]2}U'Q( BȔ&9>7Ij#"]k] ĦD,Z}IXB|8YE(m̅ntBm24jLe6L/XD0wF*ϸ6!Tș"^*xUUTNOjBm@
5٦t%\wy2yTC 77҄ڐ:="s͙`Eack+62r#u0nm
/g"YO3/U4CucؒE%uW&`k!K[wDغpiHc~H!5\ǽhe3^gϔJ/d>א; fA2|Me&&35IHmMDLCA?d6#%xQ1HoR%wsBp=0Ͷ3ET  kż&#ڡpB\<l^ҍWinP"tEiY1YDmKX*tuҘp-CK"[P׽Jo\\?n'yZ6*ALm_	7ؔAv2;@17bAHho[):ՍŞ\Hg25G:%_HB#KzfKCRA5N\X71g.JKf{/GZtSu4bnTO0Kᯧvm@$=$cwbТ7"$5xo2_}Ci466e!^LH:( ?BOW<nHvmiu͙SmX&B}b:\j9"FRÈxpখ3/I.Q+DQb3ӫM   6HrI!5~y?یAdbhj0A㸌gHA:!;#eX{>&  4B#6!1*o`$!vx3SÀA\";A+D$PD:PI*-RzQ78v؆- C2ԆQ$R,P$$ pӭzٲ@ kQЋ' @d%rHDB 9F(*w~jsӏĄH^u8FD(:1a,
6:.Ȁ[D J$B:+(ǰIFe&y(ÚĈGnA) VxЄN	۲{2KW':9`,kt3P	6>tH?JcݫbWS ,p a' ^SЄ^n PCpB ;ȃrJ, <ar!B>KȠl&̰׈×8C;S6{~( ؄sIЅ{  x4I8096!u_.KH5̍<ȟLCy9$ۨ'l԰4c}p?,S0D+X0l=fB,^LC0"zCN$$6H>$ɗƀдHzyEH%l̤=#:( H ЌॶYP$I IcIM  qN9>gLTg,(ˍ#QyyD7Z,;J˿R)8  dqpHSα, 9ΑGmpI0ꃶt ڹ2#Q)ءHCQJ8{!wD;;)%QrLH؂ H^lP"ЭnTDڼ 7_#sKZ<bOmxR
\2$v|C9`
j{*JUJH Jb#N7'UmIIzB-D`֏MLCq3muˣ
%%ܨЭ@ԊA\ Lq؇|G#Ty `l!#Ӎh(+qIJlGZU[0I"CzpѪP;uP Vy$tDq腢ňmUhaC ]5CƷqW*4Q)"!$񤝅KB[]2	IIy%r	yh
5i  W@ڴ6WY5T@	%Ta"Eؔe]O+Yf
Vt:"l ۺg	N"| 1
D|Qg`+j(4mZր_'Cx[KޓKM+I{; )ӁŴ
*oT<ɡǰ5֩aF%sbıP-r2XHpe8Qj=@ 8\[V=TKM8cyRYTqˈa$`46巣ӈQ3;~;sxeESCr ԅ@xӔ]Tr;+9Ј;Kmpe.SFp)&Q? )m)ؾMH;PmяR--ZRƐAۻPj#^2۾NTFsAyc$#]?{0  MQ @鋲GTD݀i51l:xPJZ$&LJOSt#LaXN|nrH6'h++[4,v}9`0a'&XqQ,J(350uɎ
;!@ă`8 ^H^pMhsK5DIdf44[ވV8fhȜA*##
eBYt(mp80P M @blhޅ%6ؚ=mH@H	C1omA$/w%֣{   膸@MP 73%G]JP`1M;(ݠ+HJӈoZ5vЪ[Wq`6 0x	n/7!NPglA۔zWc$ So[ߡ+,_trPە67qݿ烰;Ld	nf0ѠrbGXF7ѽlbzi[oiOgե9WDߑ[5g-֬ @ԹTH|9}~`Q5
>c#RLҨDaDq8M7@I5kUarih=_=zڊ^(|Gh8_FFJvOik~ݶd.Lunrxt1lxt燠T"'{ʈ)en)45D &רm<g]	A/OvT3IsY6]g_P_yѥ]In EpD@6r,64+;Ɠ
}(͡zYh*ouBs|"OT!+@J!xr vPAɼHAot	\=U7ߏg[1*
1-3ȸ?'"[6FD5
U):(򬭹޾}=I,9q/3E/TPǧ|'p@s߾Gp!ÆԤE(/
DE"	 -*D$4}#&$7Ң a̩s'Ϟ>*t(ѢF"MzBT@cpR90 SSE
1ޣ#C Lljj)YCUC,H`IW zB)>s*TTu
63  Nsbάy3Ξ?
<QpNZ\A ]/r
bg _KMT ?|3ȤUݏ,3 &ϣO~=Css5Qʇ4ǘ:lFXqDL_%WRT{} $hi^m5A4^|xU瞌3X7^鴢PD16D7bSs)=C``EvQSSggU-9t/y9mDN{٧IcBxt$>VNY%	gN'BqS  $E 6贚Q, @̍S*j4v)a%BFGbBڽ[ZFN'N??*mCt`G~&
7i6b1ҫ +z.d@<k\𨓙Gm%v<=}=Sfd3X0@Z[KIbsLX&bi?tP>tݜD<7S4#B`D-:4$jfx;7V5*{m,ŝ^2D/VaDO(h@!i}ujxbeL aT7r}^fWP-9`fK> H!3_ S|spC։nQQxp,DoǮWŁMxrT~b@:y=^PX  HnqB .    B!'!Q܈
DU"jCH~a_jh.+ Lg; zį'8 Ȣ B.GAcJ3AEW'T^	R:)*2F(.D_ī`')	vJ=Ґ pQ}BJaAmFG=TA]%N	""1K?&qN#|&1[@<h@i!mAfNt.Ahv( XƋ`HQb3}OFs4OR7lc?$50C *:#I'+Ӹ8(m3ڡVs财L<Ĭ\Ʃ͇B`sK#bL^P'pP+U0"($c`P%
bLf?3eB!]p]h!X?Լ0J]*fS,QY(ʤ ;
(5Y)+UE 3Hʠ1◁<k?l+SWА爓`DzJL9(R ?5I,ᇞXvġC1m6M_[ZI{y"BÈH.|)ZhVזcb71GENT#"|q[$i218ŏR:GFCA& [F!icj7
Vd\#giBI Lp
@w_'Ys?cLXFN]98C[#!CTaMR϶ ,56oe!'	mhMirT3"rSyC.1~,jXEDdJ ip"[MZiRY7 E2sy쨴lv9+~	$@YvXѝUR<@#"P:9~Ql	+:ʟGوl  yrd1*Cm<LUm^CJc;5*RD/It	^C ~(Zo0FAӶ0mA@ oԝOxP<iCԄGMD)0R=.T"`U!9˰2rwVBѳ:SdǋEw1D$jC(a	|OGQ=hx݋BTle_Xpv]~#LVޮIe+lD"FHES2!=Bcކ6uL\dviVyA?zq%zK+$cjtMM{g>{kL'jk2H ER@C@$8(V+>(B߻|CZ%@YzCE:[kDͅ9@_H^z@ȫ]ϾxTFBOC)T[ $HSi*ŔHnSrz()`7L  <VtGkL(Ql*bZTazDHA_}?a>4 _=LH3	!G8EP}Z @4	 L@;	YE㩘@9%(Yzф99[9d%PI1_HE0Ǉ 	L&bgbGbAD$`]=	<@A\4bZ.bćqbFAϠP\D%( qC$E9B	]4F+fc?NMhcPFD^ %
Fp@'7-?z$NFxyGuţDYNP*p
#Ca3B<h'YVġ|dPvFOvOmH!FNA2I~	MBeL	Vd52CdO\5"GbvP݉%Wne\}^{Іh܃9B	W%rd_%]:f쬝W\%gMy gL $Pq 9DDEy$JcOSlĐIHd&J9HeKƀ? Cp]VEc\Y2QLdk2CćsDcg gf܃h	#bDZzJ<cN(٦NfXz6gk[b&\>@'|c,rM]x
jHg{>&V,R@
9  M %ClI̥\!&˅8BZC3l?%Pa^m\zHG}aRx  nM|sXsg<CxfI&LKRjQDs|Sij$'i	y(] C_]<
qJ
YńVi@3?`$a1m\f]RIW&C
6hg䣄^Dʜ&ꮆyAGZlyeꘪj곂)Rthf
:@DMx V]{1\YR1἖2a\gpf9`hgD.gQ$²yz0٦j,Q-kT2lUz؀q[ʚB\X!X,qk6'b٫Y~$<YQB,wvi̶~p#z`h$ZyڏĴkЂCSrgg\}\bx͚%/MK\a"mkDy-EC'!ekF'ielJnN8)t IN6dlg@Nւ>Ġ	$$u<MDr	.PCBZʍɑiynN.	AI%j.2=  .fiaRn-?|kP6	!Rf=(nm:H< /Qĺd "0A9h)4.X-@'38ZE.~CMVRMcK
.?4
H*7X LA0$UH9AEć)-1rCLS>܄V0,P;~`1=x(1tCEq
jL[xڱ[R:_~="DI2^
\°&ٯz(W(;DZJġ 2E`K2Lk-&=E!f.&7  < p
ڒ039xB}U-2sn򡘓+c\@  !    ,
  p    6+081165-998 X p	4X4p/Y*o43W3-r8T?I]Fq7FY4Oq=mvS	S/T4
U21ji2y(z+3RKU,UR'qfAo'Mo6l[QSH2nHoP2QPPKXrOkZWhqnRGsNomjVmol + >-1
NTai3Q1S7j+tt%{P6f?PLVZSnZfnRk[prkl[egkw~^rnVrrmWoo_{n02ZUoiopIS_f|nx{ǐxǱwz035:J?aNT6ce6[^(kq'OPRilNqn^FuPuj{1_]qi_uhsԏzox75UpVrVgWm]kw^epǐ5˘QǗiˣ[Эh|^ogrutǔц貓ƧҴьԧ양ŎήʈՙӦʹΜ˴ͺ쓎潍݃ͱôȓϱϔ̦βֶ֧Ϥ٧ܵ          	H*\Ȑa>|#JHŋ3jȱǏ CIɓ(SDL˗0c<M ɳϟ@&_>H*})ΥPJJ*}C-ʪׯVKٳh'^BPdʝ[$H߿a:mzcȝ˘3&A~oj]mw&xJU-YFH#!sCEooƋJ+iˣKn*<5}O|yzZv3n=Fk FsOnzrC`h<r  +& `6ނ#6}VZ^3_U 7,(5{u
:.M4$Oe5Jd1Ru?Rw0 EPFI=!c!r@tݖd^rsY70CIrligB P-7X4wvnhk xVz痽XjY7 D
Z&=qԥ=ѳ
PA B=8-9jT*/-V[5]ɳmUX@&uen}1>ذ35ON>p9w;P)=OGO|юu[鐔,rP)CG*3DWX	 fL7\B5ݔ\FЗ2"NwPScZiT=$6Bb-c|~c6?jQH5WgW%+c@^/ =V(w氛eIot^!sm.Wp
Og5E<%&W_9S)4m20<ݵ[5p>R?՝FdM 9>dDϚ L-`dGV4=0 Ozp 9HF7@4~!+I7PtU.-s[<! c)`7V4c@0f";&ω=za#;z5LwEx<cc*e&FIw\{q
@(D8%T]"8;a\`S&Xr)y<ï85\5iN껆?~
b x"Aŧ6*6d"%*3E$A8#^6#@tM,BAC.M@a,@	W֡Ie`S"B&Z  >Ȑ!t"XhRQǕo>Z,` p0eDr8tX Gq'a@S|"jVߎcǈ@p41A'$dq9p\jM<K#&RZ`E%M";]TZ)d'KJV<pe	*Y\P=:9lgK#w{Xp.0Җd#iS}1ZؕdB(%;VV8ZETIh'
">LA EGx.b*cK宋q  \/w?~Ys&;,(t4/NpvyE2 X997Dj=K	P:]H7/0Aԅ-LeoB-ĆJxE
L#G҉+v  (PaPx3o+ œ
Wvx4PB倂Y#4^1wUA{N{W>s `;8&	NM8|yqa~N\?Mb))~(#$Ĉ:$h5r˩M;8<={UAqnH=:_[$h=p&V)VphHOu:K 0CP$N2K~$"qAg
̵=ă	Bx$˛ Ӡ/!1`bo%T`5➹ַscmC5 Pg[y?G#z ̰Sc2Tza 1C08э6Ox";3r~TA,;ac/a7棸|W_[K^P{A >!Pa)u_@s%B`,N'_[}9FJCf9"5~>P<|,32PXbhzE:z!IdB!4p  /`p	7 ~(Q?JtUDt'$zp`oU0k׀aǠ\rq%Z:0U85BP<Wu u`	2WPG<g3-5sq		0hpHM2j)z  `_QX[zx
~ȇ~x_a1Op"rNWQ$4psh.a
P }CU$XXY~
}(؊EVQ;^ BjPL
A`
cQ	Bڳoj%jp19c04vH{؇
Ň昇5C :-`X 
1~;	0 @5/ LK$z먎؇P(B^ [AjYqP4=BD&-0Ͷ?aQQ$ @B x=QwHŎE!َUpQ&!+ OVHU	0!`tz-r>)88 @T3\S8NuyWّ[z)MiUv_ @R5Av$`o
A$cҁ?q1GHY雎٘	Y1Q(U@KWe+WPXL/:{CM8Rxp9YV	IY9Y)Y\	#z@Vh_95pSsE	Z`+p@"0 /`tO|؛șU%Ju#))[W)H#4bր& S]qP\Ed:s 
bd1vcqJ(*s!]	^j+
)i(ڕ!1g&8QHV0E  pnMZ  1\EIl3
f*1	gjZZǜ"Ued,mOUus
!l njٱop ֦I/jj:b-3.	>eKVD,`t=$z7	qVr}΅"Ӡq&'j[ʭ٦3Q 30<ǅ	P*V	{y( %Ȁu pyڢiٴWcʢG{Q+	ǪzF:)Epv}0V.@  ySH*J0p
kl˦KJkKO{H+z	Ǳu01ed9^`,{bxpPpa0p A"
gZ+NkZ«Kn"z@# .oʀ`uﶧl}Ȣ[κ`u8(qa(QƇDKe븏K;k< <^iXpPAȓ"7'.0~AyAj`@]̤[d0QF&GVG"G}QKVsiFTJ
<BjLV;nv-1RD E{7ud
*v@v	|GFAYb;`@lz|	kaz=pƋ1T'_-sAk~/C<`'Jw Y*KǨ{}HK[>JyfK4R7F&З|TG\N&pgnAc(GnIk,Rεy[Νf4@~C[RƇ	BO$Ǡ
`!͎g@tl'EyIN1Fϴܼ|$ߚ;%xfUqi`EdWƢāE`
Qg([RpS7$@񗁙Т;n
Dʰ,&ͼ-]ֲkmƆ#K#ÞI1@ :&'q?F@# *&aqD+`>4XVf`-ȳC	΍;l=j] ]e̹!p
<%AJM_Θ7UCʑ]1'v S0@
aa wRѬarҪo<ڤMްThV 4<i`@	@@t@C 4ҳ$>,7
E|am(=޻S6nj
ya@ 7   ,o-ܬh_v7
B-Mc?EQA=j@A	 Χ!n`\laY4d-7rSS7	1 \u7#!QlJ`lR릘|#ĖK[K#<B-ےe
yPA	ܢFc` b
C(06 Py}$}ޜҳ~ǕniWA/J -[	6Bq 'vG6d	g?	:Sj &b+*Ԯ..jb.Ġ,51
uG:? Q/abC$sN|+rLa:Gʰg.%'ndj>oR.~lQ%n^(+ym(` ݴȐ)p
k`p@Q4*pݞ&"g֝.*YpMd!(Akpl*>=ǇHr4kfKj#^`1eىMNN=/+EˠM/yc} e^ ӌ_
Dr"S|0x>$/ $X༂C%;CfXQ#ŋ=qD&A\)$ėSl$͎5U8sGo~Xd$
?zBXx6p:O%[Xz |A:9[]y_p)1
+eaEbұOCeEF>%*a̟}5kժ:DMmImSմoo,]4ifGoc-)7/X1?L'8:n	cA{ϧ70akڗk@Aa+L.}DCN@kh{sRM؀Cqk$ʧ6tHDdHno(t0ī.zܹ& .apK0cE+bn _U9D1;\n,
Q8eLQD_46VhtRJ8dH!PJc|	%$˚ )"CJ]5Xd߳&~1`Km1
e:` Α4Ás'ZSx3^|՗8C}WQzImY}RuxUL9$9`6ْ<=y2dSV9HБgwΕiه\@3WЂ%D܈EiLt8^ލڷ]1~C
vȨI 䫱6Y4K 3KLIreKz)Bd~ǍɢG/&AGS%ƭ#G#Ҭf뀫WS`?QγFf@cɁ
i|p裗~aD(nz{-t]~@C5eMTcTjQڂS[g5Qst;N)`2HxЃ+@Pޚ^=lOam
R_.$PRd";R׵Q
ΣBCPas;p!Xl'   6dg axF=ȀB "< :聃C[a(m. 4"ICijB*SA剼SA*!|c
 ֑Q`CA;P<=°Fc X"aM~1L!2|t(:O'`+Gjj"S%zAZSN%$c'1Wu;H=B =V=r<׾]stɡf:34	l(#mv!6δs*H)Xb*@Aأ`S#.*1m2&EKYP%bK]F*dbf4g.%rEW4jֳ8)JEkTgK<5@Fvg4xAKs/_$YSՁ&
澧]W{HKHZVt[WOx1VȺ#?$ˍtx4}t G/
 lÈ-$3;JVD%;Q=HζBJhw6=<A,a{4m%8huF#%^i+{+j۬MEfZېF!r׭1wW3 pu  Buq7
.y"CWT{auT2a	4qyd4Gׯp
ٵ	ˣLH=.5}2z 3 zt3#G:Yi`V @ZpB­v+ X&f	vAqt9Wf޵bZb͟pu <NRl)il |1B/ ڛx12LȕQm@BC9\=Ⱥza[?:wHJ|!9ь(MIxbZf?'b2;i4&y1_iJoЁެ3(z0]Nnh[P&=sέJ|bژko[LE|#[\DSlYy' &&l@ k^rG7D^U%7(Ρ@-A@|L	\NyKq|ۜ?q7]v	EM셎bU%D2+B?q},#aA4i+nċ~(ZK-8IOVV?_~Կ^xvЃ«{A@0?~=;+[x;kU#?2>~зҼ[s:CS+^<H1A=5?i?ÿ+@O+j6n@$,J7A m` QR ɡP#gдWh*z=@2X:>֪<{1A8<^CۨC{A>Գ sh?y'2C`mHB}$)i"w
0~+@TH.B
&zS51!zkh|C;/7$8"SA*k:;'FX1AKz؆Dp标7MC誂  RL	TأU#U[}`Ydbt]A:aT:8ȤZ?Cf|CƓBr@plp}x-x1|4{yG~ ŝ,@G
=FP5$=LHɛ<؉\;$#"=WHa&E~hlHĐ!!2
(sI=9 MVyDEiH2Ŕ>A5$rոYHL<T^4:H_;?-#chqjtc`kTKL  XJnHN09 s$LʞLLAiLƼ@$#><F#HE]|H$봉5t!q׌y ͇nh渽Q@Nz-۹yTND̄GApE,J?h?i&<ΪLx:(ρ6,ͰA	ć'OllE0O":)P%B xARsyPԴK!UkWc}Nʫ*<Q5Q6H4	=>2/<3~H0˴OSMTs oRr}0Qt4y J\R82B%<BJRQۑE\Q1a6cS[QL7Ӡ75|"LӴi?@5TN:<UhĶmH pJ WyU؇EԕT.,RM5>0U=S\,+4NQQ[EO8$5b=\qjdTBd,z@ (RLy8u,2JVt֤ ih!dRu%L.JVH`RAЭ;s,S6WO̼U^4=$kԤϊU&H@cTVOT~%lۇ4X4 4`Ж4M(6R80V8V .fhE/ܡQdih<ͳyU~}M}L3ZX}%"mOX'BEVUL2=;[8 hu*2y@7JOX޽8JhzB]ʁHĝǡD%U(UۣxkSm3]UZ*QН_Oq:dsխ"Z+E DhQ`#V!+Ù -}^q	8|P/4MO80{,g^V %RP׭̣+Q!U^_<]9Z@3_5%FSem{ݵQPc`"4z27@_zQ葠E*/Pe}T$Mٙ" 2"@pʝCa<<EU%_zDP]Id-QηMB*^m,
SM]U[h!yUu*!,y`nc6JH@<N<J{^+c@ #dBrDUcX<8Łd_JQ~ZP來HZ-@ZVTVWXYj xԩMq(;~D~І9b.!Į0Iini^TmR=It # pgSer3{J>7	xfڣ_|j}&\˕ځb)h+[Qh.Nt4Hzʇc `03.sƠʐ,qH<cO5$ L$0iqr><gH:mgJ{AZ}v>/*WfbcWA'Em
psR3Z.6 /P Pxh&liD\\#x\{0@z#O7HnooO0ݧv_"	pѨoQ>+Uǻ\9ZiQ [Sm[hfBbz 4zحx2Dn4"!K,hn~^+# -Wy9?`%pUjXpм!Oen]ZX0ۢ}bcQEY]
7jT%m0cXсzR +ln=.fuc2t~tܟ[e	&ϗzo|)u GUsFEEŰu+YmfmVM.hD=ߩᴨk݋UBlT c"N~  7<y=7[rnN ]])FrQ(R݂H*~m[u?>-vUk}x_HR$R䪄sԽxiqG^w},osQnFoo\y{t^uoO_J'rA]͂u<x|s3ʇN{ 2Pv΁qiyC4T0c&(P?h~ZOZ	POyO|yy8+z[vpm~!Q[	w+Uݒ
 awGy  .iۇuI 5 anj'W ^f~@yW'jLG];ÏyQMVߍ$bwn_0
1{نzϟOO5'~,h 
b!L.~o7r#BJ_¯RD2Q%̘2."p#>уBt]-j(RDȟTRR+ሠ'b
3VlY~@H8PҝT]x랒Ko^t<0S{/׷yCVl1⿠.H.(G[җ;@z<Ѯ]I"~]tL"LƤH8f'oޜ ؇ޚ	ړ;xnaX%PEzo#%hw!B$5B aDDdH R\u@OXge~8k4d}fW`YXaezU#fQȏca_.RV["MHos]&Yq^i}e%^A.9Y&qjA% ?  maŝrZ_E}&=2t
24băRd
cY~O\8͊E(#hJ&+(8⎕㙌+	d,A G\C%pXyˉIqȑ{sR0 6@<4&A. SDR?H oLl&04ķ V
Q{053FD%T='cتXj?Hb4Fb{j>[#AzЁV
<618<H><)҈"^o&kvm\\kd ( 짦" P6ɃL vsSNv&:CE7	5y	8LoRH$8<F Ar'ʏDt,CHcy|bjKaH޳Nd}b7&|-ˣysvAtI'M2"6=oqk_͛,R>!<'@:  0d cuh@H\R<dx
TʁkUdw:	v<^xDIq陋QFK@a,av' jn'>El|jRַ.\bltG!$,P']ޑG1a9!&!eǀ@"cXS
"t
XPgjǈEf2etOL*{dYY2nCƲ^
"(5A^4-mk#@z`?1ix$8g2t$% B>	绎1LIq<G4>ed$B)0IphDVpxhEj<иf2,ȗ&Av$.w35IfM)i4b[+WL4!L7E(<|0^@<xXrR
'(@ Dh4"տPn~@hX:&5t'a2SQn	b-9YIRTFt<|l_449X3Eوc4KeirTkð+X>80i/  Ћ%,#@=  NjQ 2cs+LH:%
?6V?UkZ*Fx]Lz3V&)LU,m0)ޏ[r~aCvln:k4q#訄O,Qc0L@~!"%Iۇ%#HS@NHݶL+5膺+Y$.-m# wwMzK_3~KfNkc=m!q`5OcfR볛([4MB	vn	1J`D70men79h$VeC[l>6!~<Q_))Jb<&ڕ^k\ł99Hs),9gόsD[Lr6'<N7T!q~><*7(2s)F@ڊ oiH˹X}1x=RZMvm5Cي`:/|Q|uH.s2T0F2E<D(E~~rcY$r1}5yX^5]粰4AшI<7LݿhGq\^4mǫp0 ymFg0b8qi-}0oQDck p=.EO
2a	[/Nz[jSn"(;| Wpﰦx~0DWykpt $ˁy5yV5[Ö́BNd?HeB)>h/ &B` 0XCL:CK=`]W1_i8oþM)XȬ`uH>ZL͈<a*Ϋe_`[WMT)	%^B"ě" v\r̜3m֡O\I<t4~<`  8èC: 1SQrH[X}$[UPNr˼UX+D
9__PhėUa 	}Quab|גfD#|Fyy^5fƄ1 /LOAѕ	bHb]:/"[W)=q]!F?yE&	aBA(1a΄*/qZb"`dH0..ߡfŰe4!O$qdGPLDDQuC	&;S}CX|tDLv&rup |bY΁+NV(Uwx})0)0-E%)Q0^Ʃfm1Aa_(QQV#dTl66`МNrdXjD>t>@	>CRCT5:B!)ԇ?*r` d'!Ft"U)A3@(TA @\K^bE^naVdT.
Yl瓽	k DO-2TքJfXc5$BCPbP C#x`Q	q*̦>lݠAI7)X·e=՛qvgRlOAA(B괢Z~Y%µ!tD^
]dJVT.U/-b_!^MB@^ڼ^$M:ggFvPAC&G)A=䍽z oHlBI7,pW&fhqQ=YrEt}ÑΥX+5i)a@)cN(墕jQFIr}	z_a|Ap,Gr\!mefae:G7(@L
5Oތ}lAT}*:֡6#I	=C^2'HVJ!(9YhvEN BlF*٥Ҫ'F!G_Hv\1F0&5c͖YUkMF&i5v+A|7%4X@.TE},.\;5	 ,ʽ^4| 
PD1Nij^
dAX6Y]	B |A|D`ERT-FᲐ'F{#m~)Ɩ!G msnfJ<A(m(> Q!,)6DD%,)@н78$:Dغc~U ==+mQl٠z"0'
sʩvK̋LIID|z|V"az,U=޶lʩٕ`3erȮr$霷&7>NHDCǉA;IFlIh>0*TbB dh߸olej\(HWh=.4u"F~d/]oփ.ZOǬ(kӘZqL4Ȇp@z&"1Ѿqpfj-> ߌ"LMXCnYh߫
Ñ9.XQ7TA@t=zP+wBʎ%<PqYAFEgYA.q,:FK+_A.-.fKB5Tbc6ӵޜp@g  }L: )gr&5HCd%V1m?
hzP>!ɐJr.Kn/#b(G]))&AE+ʮ|`1Wb)B.1(h~xM&Bhwi7d<
=>Hb <?ulB"0-APȠfrUtrD-/x!u'e_1)z1EaίVnG> 쭪'Ah-DJB\PڔepY +`T  @p`L+s+D!K=ө2h$.Qu>Ak,]*-BbbB46(.1Ȓ4ERhܝWM_C1F3F\eg}411T́sHuBoG}ȃU'>\s8A7O`m#MNML
]^k+{xU U]B4d|lK6LGhǅIi/s3ca&xfc|Vg^L*5.962m|ir3L` PĢ_AmMUG&Tt%/_+evwy'X`7HPXl,CǦ4H[day/3$P{nĉz}1qt&spfqr;qz<@CzrD58nqCbD~=@K:$+lSB#ߏ{Ցwk(_q6썦7ʺ{J) fa: >w[.rtGVj^"B`;/g2mM#>\M3A3q+G(0L5޽w}Bȃ.  bI0
p=LdN<]:ywg+,ܮzuX2mܲ(|'%02nfEƯ̿|?N"ptfYf }c"ȃؼ.&={9kc}VwXA#X_pJx=k<0/,]
DʦB̛Txr%:tLwܽk'W^`3'u	~ ٪ǿ`JWKۥd,3֟EqvD=PuN`ApΝ:?|8_B*z,#iX4'2aTsfNOXyĕ|䩨O=@07q1>&iiJ鹚=~d`mun\sֵ{o^{ҳ~lH$l :HE$)'X^]Nrhє A2z4#^2kIѣh?xNȈ Dyr?
H`#FVz!=Ag8^|CKzޞ1U\JJj"00jEJ*iB(LjZ0)$袧x&C ȅKn BUuܑy<g/9ndEM.K$m6؎-$0b"Wr,ÏE1	@|M$9CH L>6Π,:=@PKt$H#PMiziO;%g:
X"ʪhS;Ic.dB)դG+z|Ѐu|)!Jl#^<Lx,,R+1r4 j=->0#|3?#:ď Fӯ"N!:<PJFԼ0HӉ"G/R!BbpיX%TPBR.D'J*foD%C3I`'>},X,%#&TRB!;Ұ$o4ԍ&bc&s<IbS:Q=ｑ4R@iG7UAxP"י.yU6qPDzމVH1*H$CO	+QJ+k
Gub:^j~ `I ARȽ2q?Ёymq]RfgFBW&\m#Ī:EPYN:#a4N>Ova$@'JPt
sxdgXԬ"eA"B 0Wanl@XnBGD.  fĈd X &%p`!w atdz |AkP';2ze)YCȮCjN)
uI`UE)^R\1h>)6zYE}CH7`J$Ep`|C09Ѐa0aOvŨZ1ah9pB>{$!
<͙u" F8XBAB.J!F|$܉ϢA̦(pC7|StMND"EcMlNgR4b%%R @q  xaX!5Eܲ xA^p02(@ #s-[FANbH@t͗(1%N4M0qN#DP
#1a1'Rb>dtʍ#aQ}Ɣ<BM('G")4$P,)8VZ0MeQD|c<!Y/Q	Ǽ!h@్C7,&   WHGj+DH$H04m?;& jm#@QPy$@V4t
9)PI$#n[)H7a;쎪%ܝIO<35fE4dr"Pf"DV2A)F~k_}qR,nѣ0LG%0 ƟghC[lB8#F8yE2`){m11֥	ŻqJ"|`Xil[Vz@#H#J#d[5"КVLV*)dbM' bv.حi܌e*uTeM,p&CuPd< d;  P`$\T
Ju&Q!xZ\fY
N\lN[Kqڃ&{I6ͭSc1uN\\S"N2^c)pR+a	n8W6/Eǐ	XʆmZ;z*,z,.`Lnw݇g-K0qFq$Z%~7*/VoU#c4HmL~M!LꇆEĎ̈FLv_ON/n"c/V$>V/q9T&̼T78͈(anLR&k&rd~rb0!ex6֩HB@.A

+"kdD^qt/lL5d]F@^n-_%|C5`9,J>@aV)PȦS(QΕzPff˺%̺{Zm-g'N&	&qy⎪O p&n"N4  96A)(L"ʠ&FM?.`P)Z'`,j.
h
	2Pb8 V<"̰wH'>KI"pۤkʼo+Ũ0܏QmM{z.ga)*' QX݄f$R{0(BÇ!ZE@ T@DD¼@:&PDj,I(lJH# (hnƌ06h/
&J^&
SL
8@@pk #]j.BTF.bNq$-N'P? j*֮B +)!` A%iA#{r+	TȠAF H@!Aә@FH1Andd$
Haj4*L$	:T.**oN
 NQhZn:PsvSl{#QB#PP N12xjxF!'"!a3M
Q%"/'>6Qqaf 
m8.'DEZVDZ0AI`-xL4:;!nT+)׼M7,@&LӰڂ=??I4PDL'3.4(r.4'-ϲ 5ADSbK\ni`E  0(\s,J#F"&n\T,#
  H9KH)KSMࣺ`~aO,͸Qbֲwj/GFo޵Q?}	@Oa(v&hPTބve2:3JDʰ2C7(S8A0LDhE4R U}$8Wi.
-- bvBFi+z0Qp%KiPp*0ZEru|[3p=O:Gd+A"PîNuj _/b&lq.`0aA't ""iލWb:zfAD[F.VG .i`,"LAA|2nD9=toKoh4:'i*B;P	;+`
FK C͡Zb":%Ɩ<g/"emVP^n)oE(cVp(rނ2IwB|  gnfai$R-0WsЦmG%.p0BP8@\}AMNm~V7)aU
Kyg.@b8(g
 X1Akg:Z&:]5>?Ͷfq3VP_u*$PBO.!ūU*A' 1Nb 34(Ur9Q@**>C$PH8NJj e~@N ֈi%b-$kSxŢ6J#BAg .bAZ)aY7`nc734`B@avXf!vk}Mҵ>ܢ]ȔO$Qh	@3tGp\(A*n0q&CoF4xr쬶BX e$pqjAFMA"*2<yYXfT @Y܈g1FV!	UyZվ9_	-V^͂)2Yh)@AbX'@*蘝BmPmo>tnk/};b I{$B!.
ZQ!60e Wa&(U"w%&cY/pPTЀlƈUbwcp|L!9g(a3\!тxH&AO+i[xf:CYyIk/8Ri2S.~n@8)dj	!Z$VMA#vb}w~Kx1P
[//z!U<pĄ]J4өfBU8*Co!Pu\q, "2j[f!-2 fԷe<䈄|["Vu2Jp^enhcyE.Ɓ@^\ћhr 8Fb!C@3U{tj@a{vI~>O-0kHB 1ADQaiz%29FgAbZ*<|rU`[<CMCG k
ATy
Tod{\'0.!5Y7֩  @a&9CcJ-8#<5"˓*d^-`;B^z	a"J$Ƃa:'qm.<xYm-D-4ɲkCO	_%@D	WCVi|a =.v\"S-gµ$`0  ra.E**AVzڻ^" nrJbHnpHGn|+*>mLHLǻƦ8<Na\:2nC|pOj&TY$s5$Џ?H"](8dZiQ'WOi{~g]@?&Sbf8 E|$~ FaIB0  En@oI^bXE#eSL)':߂ BBtDH&-S*2
)ArQGELHEsBƊ;u_6A9tz@mML4ϩE{3((Bq>_MM.ab}s/)ȉN0)"s7=o1E:%92a#ɣ:oǒ	zz,k~?zF#<ċ?<)؍w Qʲo:~C3\{-?kσKu2|Be+T@@`Ha+D
"1PqIruN=9@A Q@((e N#1bJyp@F2(H#R"7ÏSL9QgUAŏW_=)iZ]H[OG15V"KTAZ21:(b"uW#z52WGsU4"LSbZgSe؛ta 	cTds<p*[̝jʪr  tM	
@<9D0P]%^cA %_|
x:@΁f+Fd.8BZ@0aXV)&B#L#͊"b5*tBBYRBdS\r9\	QCuTO"ܕiV)$NlZ'31MCgHaqHa㐟C;
&vt(&:j5ӑI==r 00PZs?Bno,kحMwv=LjPP"n Z1؀
i_&kD)Xc-Ǡ0e.č`|&!*HcTU$PLdL[
"rȊгU"0.V:i)J3rȇFQ^,g%K!POe2iNe-D;Y_|cpkBfKÓ_|(MkLG8i$kg*	n`^8` OTxk_û0u
7x<MkPY3P*VT Xvۜ$qiZD!2!Auh""nx/H#j 1#WgH,HF2)\!M{[ғt'}o]/fBQ&8X0M1гe.`B(EpWà'fiL:ܠ2snĪ҉5lGjV! <jUх"
rA*n@\*D]Q F4V; apAHӠ11i鸤i؏
FETHg{@P$d2p,8Ċ=
t~2C+2~8	V|rJ>i8x&e.@EVH H5b4~XA2c7d{pjst]i  
PE Քb:ygDZs	."?x=Pԉh!s '~2MHE8id%d\&{d)%]I9Y뭔)	O)~.^Y&O #P%~h(%vB!F	#'Xz*qˎ 
k\Dc'zcd~i'cr93G% 8dwm}c0!/v8SqLBb}ׂ̱bEYx3t&b⩸#S0lBI:|PoES" EOxrHdT$x"ҒȂe$';8G,kGHaL)82ɊHc\3,PKKDCmY^1#կ6B$/_Rc U +O  ;!tXB8aWges'>g	2&5+҉Ft'6I+ʴ"NjN׼-gYZSW/(Y,0	p7P4rg+%^DAu0~BCO0Z*8Ok|oauj%JuI[Sj!T@@r
._d"|
JE},18N6E#̏X:\9:]\AIY_ʒ\큣,`R2R3Y-X^_|A"0$`ACq`%gz:`+Ypkvį.\!;C8ucE81dE;4dTX1a]6XdiJd$/]c"ZF|
yB.O|X}P| "2Rߓ<KcMˠZ~'(yX- N#O)7b  eAa"
e|?@P!t5%em#g:?01$#}05ESOu$YsYqpȣhZrL~!t!Up5L4qqcwȆmqDy1ny!f0H7r	1!.@0Te=l{+b(dQs4Gf<A'uT	+#GT`W]7q7PX%H<1}Kfфk2LaP'pYQ	4axx(cexuqqn`Gt[IT::1D	!EAU >Z@"QvmuLHu?Ia
?ȥvGQ1IHeQڣ2?XP3~?~@
4|i\ȓEivry(3x0w:'jCQj0@Rݢ\@sU;f=pBA[U3['mDZ"pFm@
R11U2Yvf!c>?A3$}9T@#tPG2)#?H[4TׂZGII7w.Fsh briRbL0; `o8d9Fn[QUmU}Eb
#A5Ii}f9p8W(	" N`tqgK(58ar>'YA4h!*aEdyi&樀r(OeEcNJ)|	8CCevUj7&l91Ӑ3_g5:Ⅻe%IhG_B2ۥ=Bqk	"s$
AUt	^u36Wsb5ɡxۨ5k8
V4V Nr Y zo
dDd-PUFTL>BlE{4m(x@pɑ?!QdC#贈r^ZHvVaGvn!wBJW0hHiwj3R?5Yxv	:[g(ԍy17H֛/w4ssDۂk	 A9pF: "M;
WfӣmLuD;1L8tY3U7a
_(R@p zՊIqM?`0)K54u|:tǨ}1e*:XO
aj, QWk2u_ƛpz0lz
^ɖ5QTZlZQêm2$<2^r1$] ˊ6sꥍ XJ%[2MvU:}u68:8A3XbH(ǋpڵԬZB3Vf+0
n@pMa谶Qr9܂9sKu뾼	qU0QpIlcdHV/)Ԥy搹T?nv>Dupɻ(m@K)&5sF%v񮌁WܦkL_؂Z㡎"+A*p@B@  dpWIж'q,u-$#+1N0{i@{/Ku	)ê"S'/	xxg<5X\̐+#qȫv84:3,VLCT!h  T+  @@r)AMı*75"OI"kIn bS1Kj/z0" 8zX!?ZKjܗ3ПE$PV
B%A
Uʅɞ4묁4Tc+dLN~L$ pQ`o@A
@̤I̡*Es"npK]a4X
eaY~xsVf<"w*	xxb{U\)z9Qj׉*@_*Q<(J0ݱQ6  °LpN
/Ӣg UӟIee PI8fF](u
jna&V{X81TIкH{B~a(P 	o@hD}b_8q#
**bк	]WAacR8 C4ap V:]ٟ?4-	-iv#F?aF4F@@0y0oe1h@1cA2Ew S*/	,Kf	YQm4WEoš2tނɜ<^ޫơa;	`кA@L:
hYp	0pn ր!z,1n=;͵*0!&{F~PPwC 	Жܜ EF*KT>'3
J`Q3\^tL(nqT	vN +Lpo NP	!͌S.'jӥ^EN%#$V
جpL (JmAdSFX0~@P|qWavTsʻ]Ӻ怃X*A xf	/TپoѺ`nAy!+l Na&ӽr#*'Rjr@`Xc>^A
0pN{73>Y~38IoϷT	R7A
FUV߹1[:UU	Э%r7AY!L1`waqrE@TA;اYe O ?t 1$B>D"Ĉ-^
H @ A^N\q4>◨NP:ى"SIBd'?Z81VEPTF0y¤!p}zJ_U;&Ou7aZ<WOv:n@^/#s\Eja
I4,WH^Lw^`DlڵmLѱϬyfmZG\r͝?]rRY<Ǐ :]BHT:7g+{!$P4HTR2b%t\r"&?Cg|Ki.Idi$><iN꫰1ŬNVd+2E.hä/C4SvjQ1Q
'h6i/94NC-z\MiY+.ݐlͳiiN<f:CE4QEet9dIpɢ.C/@L7e=@Apӎ@?RoABWX&	&'`9	EL1Sz2ДD}
)i@IʓM2ũN
8ײdκr[d/%Jd^⥢0
+/R"(E{3Ͷ[5KAHyňy9&P-m+Q_9fg^TL9N߃$Ro3 դUZzI&A@	Ӏ)Y6G11ӈz)zk5.N*\=vU} 6=YĔmc
˱+pN$\RM:Q4xe"olOdPqEfgvۏRqֹ#$=*mN(OzO	&Pkt4lre[k5Pzh1q)sݛdn*Y̲ҵ.eHKzj8G^"#g
 bZn6S@~iaBΆ7aw"<%"
V|C&G>(<R1yQHIPUP/q'
0!B`J5$C_K9,LcDP[t.q"I|bFಓV4tdL9b'Jc`䅋&pQPҙu%0Uf\uzal=^T'	4z4DfSϔgfqO4*PܻP58'ɲt&|-Da0d-eoY!>K'r^#`&/)Q"ЄSH
kj!ĥW601mS7=d`wԧ}YKukfR3)dVGI<"Xx&A>yMxDjuF:>H[K`J7aBn[Vb$xA2B(vǍk1P╇qX*K8Exn`Sδit !k}Sf wp
'Zjr-}\o	 *BPN6؊5cNaH %Yѷb/f@.aVf{XH#r=(YULP#!Cx2  K0$-iAlB"mC\@"SN c  X?8`E$@ *A	)&ET%S,4\.(xUT(%u*f8lOڶ	/fATW|bKnOQETjrH ɘJC٩
G"bN3\1ڔ56ٖ:,ֳ1JL|ǸNk [P#8~tx` (7`
 xm%Z(A}# ^[z4Q1Za2qʫr|iD-Weu	5%2 E"%<ibV>Ii-b/{5Y,?ʓ9_ebbHtK\4J0W_-[(-}h9GQz @k)SYC ؝lQ, |,~hp9Tc  ĆyD*TJ,.8i>A8GBƜpk@衻uB:|&|W0IZ'f-ƎBGE2Կ@_|)10]nTI
&
"Ɣxfaْ-i)[Mú[=ѺX _<x(7x9(h1m     K tP72(7Ђk7CP#@;(ێ U؇P4 ;~@84 7 ̋3"RPP ÿ=8y ÈW80CP(7B0=WC:#*!"cགྷ$t?]8[# D@|	:8
0:+H|N>I:#AyXA[@h@Fa|@'25S [2z} *0oBh2E 7!u0v,@*PBRHJX$#/0Ӏ"l1JH S s ( 6SP2p5,).izÔTI#`ÖdЫò2eq&Pq.'_!
ىMIvB:cA*FF/:Ɋ9Gc;È&AZ0p
:E:z$82-yc4L[kY
%)ȇk}lA8# 2B2o7Mzx })~`'\BkȂ}Ѐbެ&#H2hM ȅn   %@6䡇T{=N[*@{@< `+Ps?X/Ph[#DIGH#@9/9(@ZT|H0?8E{Ep xbA1z 
:Y\TyQZ̎iL*ȴ4 \Hz t!d1~2Jh2P`:lK3܌Rk  eC%ŀ|7标BB>
H[B4Q 7Ӄϣz I)ɐJ=P0oiQ-+RЭ8a"a:6JhZ?'uJ 3	c-\ƺ%U:wBפM2 \S!}6QͻC"%m7X Xk  `;t(X<y !w2}TBNIC%Yi*"I;8؈U*TDr2Opj:JK>40/XM{T<Yۇ3~+Z@+s>Pz0XQZQmYVVZ?'RvcۺaMvHnD+Ў9S OkHihHmN 5  ؇:   " X~E>Ezx	k@΋@ݔe*ْ}PiSz0*zYH1++p7pZO.+5ICX^_;DK(\/zF3MQ4 9rJ0EɴļgKR|F[Ba25Ԁu3G J@u:~`a~ܗل̇wz/-4\߲XTip-5܎  87@0	l` SE[EM]u=<p0P,C0S _^(>(~;;#qJP4T_9	(+R}H믌U1`˯	ϱYyֹ-8FKX^@RWjSM$;H-9hlxb)a\%&އ%LPMe~9[-U0^m Q@ޥM  sy]d@Q@Hpc<OIIȽ(W= /p>*,s)imf&ȥI<i
eD2sC_E%KiHJ ہd#ɣYRc>fǬ5hkf%d8zp)L1k,uFAta~0glդ9  \$++X/\߲ҷ} 1'va+x^ ǈv^L)i82^آVi!28#(^ ߝf.ߋ:_1J:j'`+
&@Z UA
IeCPFH_SȋCvN>Hźd־^ƿ64l 솀5^/1#l3aJx9{57J@xMy i΅о<JP}ƄMb1gڷPC0p@i.#BӨt,>N>J8?GPkoOC@Ӛ_CCCګ UF؀!j; 
Q;i0Kekf|p7sP'^ch4b|^ }  aJzvjMm}~b޴q<MPM+'wrݶ?#űx;>""&){/I֛iC&j9-=p4+8DyqxPOsOOOwLxe1AA3y>_;BY`(J8ɒ0އ0
pֶogz\uÞq_8]rp|]0EݻC2/ SP' 54-'Ǆߺ.w"C"c=QY&j"scH%M"X,=gp<{Oy?O+`jJ	PߡHQʒC:&]U\D0* 5VPyan}8:./aX~Y =~|@><8%c-+< {:?T/)spw
ԩz AD$:#I G~VɕtԂd(~,c&N<j"jcGבG<u'G@!I"SrHҧOFWA1MQ#cqz(Q"E6yʛw#EA<4D8#ؓ"Ex/Uάz?-z4ҦO:Ů_-{6ڶoέ{w`zx}uq8O|9FF1:t]izxA@Pt%g#ԊF+[yZD2RL"bL%?D2UUXuĖXd5WWdblxV\t4,bWh(40uJ=H5`I6Te^t]֤OB]WWb[b)s!c^BQgo6T: w	A$*$4\aOO${D:8((@=4M@ =E)҂H',cV%6j[(#lZIX]4Ǹv=Qa:r$!HAfً4JVPbmR>I%߂ۓd&늩gNllCsqx憎'D{;QOX+=9_N *.N vJ8ԑV$:YLz\L!eH4rckexI##@	{kP5Vd;Rf$h1ʚ1"݅Wk˭ޖ۵_ˮc:g:g祅о1{Tµs@LK*6iN2@"GޓrdS%"tW'$4X,W$z'ʉ$s!R9xKklO${e>,VvL#-fֈ/2ugVchZ7u_ngqRϮB~-^3VC(.p(cr{ctc%'=QJT,,QD'PAW ,Z.u]I#ë)#K%2H-80,Ә=3io^/j\#G/B
	1=e$-Xp:P̰Y	ı0J%X`ᳫ5`Dw\%Dcbev,sYq\!(GځDմ_)bCJy@e<Ez<dEylUժ6F2lgd#9ip}r\g7-Mb|yIL&h(IN ׄ
EiBGLĈj:UT6%::X.s@%P73rgK0187223
͠5FMZ-UL#&F1^͗A9կ&d'Ys{dg`\ ~?T7*	;^[΄?`dtNpkMA(>U2I~,EVoF:fXÒ1Хҩ0BLEO-$RVZ1ȕO鯲g&uz1\-V36N⮨=jaV#gU7`}ET7{u%:	G8w5t#to^PEby~Я*C
MI^6aFIsT1}"Z,KB"tl*LKc I 2ͽgbcD=RW˵)+n3gfLX/}q=Aѯ~}'Kߌk*BxS
>V,["C*i#%HU#`N*ڇrr"NOY~4F*TqdWЦ,#L!Rn.(j!4P<:D#ZGJFgYo:M-KRepMשLK?nwy&`):3*N'M8BQlyxP_t[
D3Qo?h8@SˍPB!FgmmKZ<(fmlmr-/H:y4U+bXof3OZEyAV/[ljY5tG 5GO!w7FRoz`܈kAW{X#AF!EC7wN86z]S<8NG*Gb#I x0Tn~S]LR(wi9?c'n0U[E#zj՘H`R}()PƬhfARԖ
iHUG].` `h_m=n)]GXLƤH1>؁*Ü坸I>mpЃ>F==dC%@/Ѓ+,BC 0  ?[уLP 7  G+P+Wz[k8B(灞	<=^OBA([vaZ@#)E$%BEdL
mΩ=hPW.`RG>TN#!,]i1Mab?Ж'p`TtmQs%dQE)#=IC_.5BFY5|C6fc(  ?t L  0=  8X  xA7B/8q7>Sl%k?n ?AC l= Gc+*|" 0 ^.<4H"H&6h\
	 & h 0,dZL!zeI=)ܑʑ;I]C=P
ƍh᣼N:HJD:@T8,dGx|̍MJd5]zb$&EP""XMŏPVC$5ɅY)[	!HI_"XP.IgPOJY,e2j6B7 @<A^XCO^ B!H% @@O& #GT*`":t,:TBA.ÃP%dn?L5>Y
"<1    =>,B 	trCC7%d7 gN!V}N 
KRค+(RQtT>etIOaFU*X.x. ]`%g<#%="LZB"di@砊UH-,R.Cb-@#ajJH&Y5%l->M=Sa &p 	&xjJj*kAM ?A; DA1tDC%(V} AHV$&  4'00X>>H 2$/ }9\ /  ;jC CLdC]C@(C@#x	C~dR EbB8+nB8CP!USet|!F%FKrIEܨZ>BNR,#]ZAaG}#Jߧ\ $PdP4ƩY=,̒(l'[XūU -# 
2.f^Ԙ	4qir>`ӸM4S?h0dуN*2d*ATn.du fp^*%j/&>X@u2$* @D
r.lk<A-ƃ<,B	  IꇾB$=@ǮT C: 0:4*E"HB:b(0gEΓUbpB4., tDkQC^Z2ǎ,YZJʦR #1[bPapJxQY(\D$~,I5#t)'م\9$[BЁ2$-d AI
Rt6rg\clbj}R`%(̀8pCw~B&L+,*?PBZ 
dGtgƙdy+`-+D(Dn:+H>䶦f*%;.7 ;DbB &0/?ЃG4AvĜCFtAzטUw8m$Y]xS0xR>pG\{jiJ%A",9JŜlla4%BLB<eEcM(E Ԋ,-YP0fA`P"#X<FlӔLe4J9Gy&EVmOi2^G5 /^j}. /
@B8(pījA܍$@5x D0TI`2$0,o*l;6V1zCf @]^Xۢ8@/8O	sn	32Qþm(83
A4/6tD9lP6sDiBl[D}%Gp?DplD"R`qLC(QI 3GC(
w l)ưn~H)#4j`fT)ۓ"TEwQuU05%BPnB2/C
7d=<5!  ^=C4/ -X/*@ X'$!+?')2D:!IF>\@<])&LC-d<)6c3G,snDdf6a/iˇie?DN8AzGqJNߕ~:batYDʕ0C3ujԊRx0iQ	:MqwwzM<n7GA.8nf5^Gh2V:HCzo ag2._ 16G ykT'n	tpP{5<9p(҃DuZZ0OsvACQ"2eJlBmO_Oxi, BpcVmcrENBCwI!X-u#mF`wx_TH7+"q5r6۬ @/hvn2)Cnjuw: tIz@: (& &XALgS},4{mDd\Ū	]ml!rD7wܹ.V1iKGʶByOƘ%]]Z`缎Ƃ Ư(DװlLթG4B7bqF9QXc\CD%g&(`
+,N:rk  f7 /CaU}sճK@,%&[ϡEEXA{oOmExܯJ@s"	?~:g`&4yɩS18PJ(H~Nyd
Y\qGQ'3ip#NvbԨO@91_ϟG?թTGPz6z
h7M"LЦUFBt"lntMx,1e">~Ǭsŏz2ɵOS mB7W	 x\ŋ^xqֽwo߿nUǑ'Grʙ*Weݕߧ?#Ϗ#btTMv߳\P
:鮀t
2!'`	' b⢝7B"Ĺ"ij	w($aĔ:*LQ"2(Qzha䘲:,-L
Syr|+K-LR\S-n-~Y=q\$x(z-G!TI)U8cSTHmnML8#U\ae#/,@ť
XQܐ{OA	i",Z$&&pd[pEEٖ'D$DIFDDԷ@7ߣb*>:J!Qj~5*,61.3tMMR9 z|  (lyI_TVMTԡFբB`9#01$łta"لpϹ(5zD8t	DȤz@IđI帣SZtiu!zZOpz|!^?I%/B0O1$zث1i&h1MFK.=x.6㟙ooIswN= WS=ZW*LPC@Y6PHh (J0"
[vBDE"U<Ғ~*وF(CDQb9FK# W
v0PN$B:(q(P2-ؕa<7/ Ԓ<7-/zMt2QLe˩Գ*1mI}*hK*P
ê(,	  91! BBܲH-J7n낉L8bA4"	}HIzAl1шx!2UVL 8"C009D^b&4lueMi:M< 1к.ӋbrHV5mF
9Vx`{h:EvCwH"a@HH$H]$1zF11JWi2tE
C,]&{4A
/_F/T$%cE42LMMun1 ܌% ^G! .\DBΉN7rj:k'r>pM!k	Jc ``BF@j	$D5	ُ&:'#(M>ʔS`"QzHtT\22w2һis<m"66 uxYτM(MOus+2$  b ?02 	ː^oje^y}S!f!>X`F.൯{}I׹U!:XPo%Hݼw?`]慹#ݐHz01G"ҐF\QVS,Pu7y՘5.DNQM%rY&?178d6bսU|廞젣;z0S?8XU.`W<T\HIH0A\$T,fiиu )e؄KN **?	&P"
M^pGl(cI 1,lG-qcNf*ܼ鲣@B^ 	p=,@ڀijJr@;!x!(H.=M9=f8ҙny
\^
o]`tG#
4ASs	u ɅFd6FwtqMp¨jP.^6bb=2{xaF0&GM`c0(C	.kJCP֒^l;`TnHAF4 `oᎺՄYo4,pKHauf75p7GC~qAz~W#O8/ *Oa#ɱysi'8?:}8,4	X@!\#d{TӨ0eH'[rӈo;VPaNvn
`lG.BDeo@bI܀-NlƁP(gN4(!P
Hθ0:n:d{hȦ7 
@ܡgF%\#i`:M8ş	¡^m#/
-	D\h78	(j	N)6B"Fa<łN'j떢ͦ(cɎxuJf(a2*QfT`.2< *a41!0!f
޸f (N{#V$Bӎף		A
>@TGeʐB%."	b%#e\-]*Db\)|CQ!SƢ_n v$!,h*)" f 	0r\(%@   4  `2f0a4(a@0g֫i}qL#U \.7 ߑ
`0	@P6bBbBdaZm'`6Ɛ;B6¡XqfM"	'z&PLA HDJG4*_b7%aT^("&8A&}>+
cɆJ)xKʌ;w7 @5
TbQgl faP *LrzrSRzC#1V.=P:r700	.b^@"$ &3YfZJ>Eo%7C9"05'6KDP7Ṇh(^-(&.)BI$Gt"DE'J"&LOrrEl&As
KR-N	C(Մ)0ܰA5BQf5SOM@O  Ft1`E6*04fTcx94	ЁGA4SR#СB%7Ё6T=0bc#lڐ2@턅 ʅB`ԡ!אSMB	G,	m~#Im$rtDGa^g~]M#N4Lմ)s:A1M9bkM{;C4"Nircp&΁L. $ PaOj M.g?hL  n8TfTK57PAӽާ:1yxa lV bFb @!3X	Y;BETGKlICe{*@b*NDb$.Ć#*rEu#LH^"JT(NlkHx)&_&_ggo'4-h;ӂx-!a:!tb#E2pPL `nF@Jd1A  a̬ \a rȭ8|6vM2VU-47ֿ/ j6J a8b % EYm
Pb
rjCj @$HDPme]B]NEt^&bd'$u%Ӷsu,(ttGFNdy^6V
5^`2xrlvF,  `Q2(yzˆ6fq#^!xl#C)wi

 ;hC(L:x	
X <Slq23YeԜ YJ7=S<:"ХaHš rQrS*t7"!,u /WLse_3bU'-tעhyD .6` S#.ԏ{c4@jvQsrN2Yr} @Ph!g
yyU+TDWbjiOx!*=
p'l:%,
SNy6m .S#jAn@b@Tu9
<1NģR#XKLIA++^HD?s`y%{t$D +Ӂ  x`h#@bN&Z#rAtͲ=O j# l Z'[7*ڢ1BURwi0y!Bf
CYz0
LU#C#:"#XzE:^Y#x4JB]^d=婭:		a r'RC(8A%UIt.fxab(bzŇ.(\Mv7f^  m =+gfQw_Fk_6V !/,{P!` PS7GVܣSWb@Wy F~{7bZ-*:
JtA:{ڨ꾜](n2Z
ɲ;NBQl^TˤZ_Z\2z&BLaY'&YHZL7LbNjFTˊa8`	+(SahF <)?,#E9hO}b	~q}V2˫x'~e/GaQ	ǟ&H|C{\Vs3 sV
N*=hO鶺7r-vC`V^b!^"1L)wihw:1sO~KMz0$7f8Pn@c%LPCO\  `pHgС@Q%cϭ+)2{ SZ54܇jݾaj#~Ԯ@ #mZl\;A»srEJ4$!UW	&1,o^ks)8g2L)v9[&iӥvzOINdsD p˴`G FcR_Q Fķħy)>]|<T!۟fiܡ˿`=nW ai!\Z  q@f֬+IE,'N`ɂRKDQ9zĢ#%:y	
& 5qXW@:r$С2"	.0'Mrӧ#a5QW#5uF>۩Vz8]#IWv[i2bNnIoMˉl9Lϩ9S2c䩳ϝ1)Mtg]Sdrq!:zY!Z~dC f^μУKNzسknt;v$Fq=W[re/w#BŊyB˗ (^$fxtO:\.W<ĆM$rEMHE"yF-T1#N؄)	u#(#E4$MT
uI\XIHeMW]nMÏ4[^%e_~u)n	'1W)4v&dq2"-&y	&Zj@<xn=ĳ<p.jꩨ4Z*Ūi*+QŇ
}b?U8rџ
&8{nD"vBB!J!NJ-d[R'8,"G0FtT9لC`\qϏ>T(L LE5J(SbՉv[bZ<V$-8Vr#I$|d	V#L~4XD2
"&Z5>u8샇1CAUp?g5)+I%N	EV2|W_ԒWgfETXVBDN@-3].aq/JKC7]8oUG	S+ATP8F:UO#J=DB\",=)Q=v1"!w\\2*3Dپ4'adoTa~fh\j-MF#5|#n])@]6c+[0HpUx >*Oall:7tB@+^
EQBr(j1
ps)H[:B2R!ǌP4ň1Ge<ƥ	PQd'PS~I<b	T#G4E"2G#D"5?ǖ,˘%.ӦS	,4`&'Ƅ erV4I;aW kĀ2LЃ(ܬ{L
k.t!@{Pqb,$.0ִ-/XT@saO;B=B^+<4JDC"325V"I)~'`P ~$o'O^-DbHFϭt0/FI#1tE4ǠYҔJNfec<ImK,'P%'"	>E߰/AУAeMZ݆4SrAL (4rX*'M㣊sG#A<2DNg椥
W\n	c#dt
LP".5nub-$7j
Sb:j@I)5!"*QŞLIP((!zcG~)f3x2@Z832NUU.MfN9X+H N>dəB~l7HBE	)m;8bY!G|3%\A\UE}(I+tO5'=|G,B;V1,PP"CLtbC9jG
WBe-|
Iy
{lCg)ŖpV"ǬM*=)dyIs¿)0^ DirBT[(nӠuO6Ci{a
oi1ߐc  9wBОQ_ϲ'@Rc"s\Ŕua	VE䑸v[2FElY<9&Jd,ȧ{$
H][ y$REo$`)ɾ2^1ɩ2^asBbb@KM ̦_Y893S `"0\j_nh>x#Pubޜ&RA(g'b͕ȷ-P"xy;tFx7֊,5aSp=AF>rJ-9MBШ<4G3Of1erU v5%+ߋ{]ļ+'5mo.qJ!6=p64 !: `ȞBFlxec?Ƭf-Fh$sBݑ04wcB"M"pIT/PRF .s&
GfSoc\l\@<rwgIAAJI&?xzAiI8?@4r{cqkw|PWpkPWh`7)tƔQ6lP3
2Q87 ^b{~k9ׂVa)!P5dg``S&
//nR"LPR3;JPFWf]AyNyABCH=L`[	-qZǠDTӐzX%A_ČDiEUHo2&D2'ڸ	*@   	  5+@ 0t,X_ul(g2
9ub
{v3Y	v!c=!
0.~w<;ڢ":Pp0)qXZ,eHuU .=ag'4S%`zY⌞3q^cB3GhQXJ?~]pWU{U1G|8RX	
 `Pj0`Ȅ  X62u#}ZGuVku^g VY~ІRuw
BPWFA;e3A*Qsq)#C9uyA#pNE'PWa%fVCET<E>;ERY4ec'G4xdy 0~ٛd@R6cwhp}}O1~	 0D#6Io9a;qly0XBY!Nx2XNwף=fJsRu<󛽙VH2Q~N!oĜqruAS('ॢobr_ IƘUހrVsjpw܀*!t`JwPa i.	kVuЏPbhTJXЇlm:;q27xB uX02Z-b 3	rǤ*h3]OQf]$H>$FPa]Ez!hh)SɄ{g
iķzѦPuAs$Fz   
u`v0td ܀ pZekO9T੊I,!b EС:f.Ӈb	`1R"zEª-aЫ&A	/ʺ!1!PyHRO:	*S{~A&|Wi"g3NQU])НqsԱ5j0pWvC	: C	F	^b ,Ta5;뀩Xu
 R&KY%km2Kjn-9w˳~0*c&T!nq8Jcד[O[OpOP10p$`[<"
R*qp{]T_2ӠD%:)Cxx3
U
BGz i`@teC6v	`+ӡ(k*`0-{C.)=ƈU99k!,
(r` d<)DQUDCpS85+z$2qs{x8
g.h~L8`ԙhx+]Z'iE\z{ql "
X	_v  0|[ /  7ҡ
V07( 
E\Щжvtm9jEBl	FĶjEiFZAݜT/`˒S^͚Me`8Pvog=ӤOƠWmN!?'qXpKrW[ts.],	@ F{tָq	p
r(`,MðxkTo0@ #$_54#w
lE\*CZĹ0Z@a!BxznNOћ֚U`gv$@$2H@rVǕa30eعTm¶Ϙ,U7GUg
`X#INQ		0|)6<ױ`0 @B F@k 3)`	0
=XR-Ev;%c8
\`-;:wC~dJ#!QRwm3 c7ڲ8JE2w+M>P\24$5'zg=H	AZ@|3}iwrso#arbIPV05!d i6*ŝB`0^0Mʟ*P1y
~=^]9W CLHL@	+~/6o#G)CRڵ>e| j.̡jp)ag( I5c7c륇a
캌|@	C%	ŠP(<kٖCgpw5
h'DhX`CG)ӠԖ=PG#Q~P^$E}9Y 4!PL::C-B<xIfe`pDףΌͬ|eo8b=>R+oLؼsgЁ}TT)'Q{ㅍ־ėLÍ<M(vc`_,40ya  p
}Bz)	# 
pԽhAV]
|Â>Nן@@-ceF;H-頸##f"l&rZ}HD#Q~|-5Rpxk~9lUv"@Nf"]dк`nQĮK	MPuEnKx$ALG 	$JcE5nG!E 5=hHܔe ,goϟ 0JM~hI찎[DL6ə*$/Yn+VT8f.B˘\qΥ
/xaEݹ\|
.]'recWЪb,0g]r'Dr.h(D5i(a9y|%DXdGɣGMjMLG	p~@_/źY|wHMkrR鎠@}\T#k$}Mʏ#N>p;a}kNtP@NA
?
+о)$
g}F \#ekfx1e`*?{  X6獡^,e2 '}pv(Q$T܇wVj9rƱ-k,h"KиBXl4{Q41ͮ"WmZF%Mҁ5'tenR-<)<ոp6.
}ӣ߾$8CS@9#E㧑HZK5d?~C%xӥW@ѝ^F)J)Tds `,#x⑦
*J,}g)B ؑU T -*Ex9C}g Hf`ExA@;'ګGs0&Ub4+6L30r+\ZDq	$	]&U'&2WC	'kk9RojT{tpD|=	!#z1qP\q#?Z@}
%AW{?$tB}WwOS\ςv>aG'Y~,`H|ŔcR  F*  |Aj,(qxHad+@J.ѳ{F\4.IS2/ (Yj3ʈ;8{`hH6hlY*prģ8	zD"|,p#ꑈ;:X(+`XëL#PD&: hD.Q(_׻A7}P@\됇p'zhd''4h/q
|?4j+IC)ӍA&-idRMCLFA"%JC)Ǐz"U`\좊C~f\Åǘ@2c)LmDbL,6 	lC	⹈8qqÏy9}H=4dtixn!g="4# `c$dlԉFԎ $
ki =B>}P9i<l&,ʲ} k&gu_]*Q	  6I4hϧ$#D( Ԉ-攋fdX0*xq-Kcžx!N]v/g4n2a`!
 f9&$HF+F*!2np)*SX69H89MHcq#@"RqI1I}:!2H]C%O$	'ub  Ja	`Y_qf \1v	G
z$3	 @H7|p5V30
eEdA/-e+H
Elk3ی 1d*YZa4p[~{014tbqg<c7\s	rA'ݎL,[w|DtH#0z͏|L'x˩ܕ_]Pwا6 w`J"J6"%&6I4 8رDPč{& ,?80o$B6DE;jH$CS#0mbAU2h7Ko+lY'ت/oѡj4ܩViaYB?'άs)DS,
+'G@'">]iȗH܅ݭzY
ޅ:. R%k(Xpe]frkYh@P9r=(z/2eOX0|-X\e(!jQq2iɜvf@.Co!;g	_tlxeg4IG+
 +s\T#ٺ=u;WkQ3A&lާ7$7tp{pM-?v]"o"Ȩ%8	PMJȂ7~p	v`\+'q@T+0U8-K.آ')ʈ438Zȭj3wh[3QH0S4`	qz= 3(L	.hIpX jәj/Fhiq)عu۹A=~yOҀbQXxze?HMt0C/@x/@ }A"`x@z0 8!<|(n,2Ί<A),22-P͋$M;tsAȘ5k%ݺPQxZ@"(PHY=&
dY9C@2|Fh/i/6t#b/x>iK5y5tCzU
aB28cXHLI񂧰*4!yE$aPqK
*0 X/w@,2,}aQx@n"?(Sp A-] Q8M8w:.%Z8(XK1HBP`~G욎'&l9wXtXǁڜB9(#5BD8ÁAxi C>zHȤ9H%%k;qXJN0Yb؇2[ӈz
zl /4Ʌnw[7ūȢ1!c\'M͋ƌ-O\kxˍ89~@Gp(aȜ&=|P* 䣹(L[#M4QBf$6y))띨;M6xXL*@N$݈Z@Kؤ\Up+s( Ȫsp4 9M+ 1F!` <F,K~XF0hK!X S!1FT%ڈ+ܽx )kє"3&0yx/CÍ(<]qQ$9+NWUR	=$V@S -؇M	: 5Jhqr@aIqP#͈v-y8e{ \',1Ȉ!F}Kq 3k!\}JՋZٸHݳ;B'p|GǁԝD46jD(d)_`$>H4;3Y+l%-
2,zH	NXWdȀ8IꄁA$[J06D"S, n
eX`!0<+-;8ptX-pLOGňѡ}ً@4]q((xd`MÛ
PĈ54,Z)p6z@QqA1*VZ;͐dXNT醄iW~6I-_)|2nvI[k *([\,x DSx5JHt ``*\\om* !P',N]XF@VJTוU'鈜'5!FApX]1͙18*ϔ͈9MClHLL+HD0k%ZCٴ_V/٤KhB=ޞ7P	[\Vz   WΑ!&%4)E@ CHPlSRTOo*@QO:5U9~K,"歀tbw'>
PGUwЧ(}:/U(L$zD&f]9BIň.^мUZ3Z:5eޘOH}cr78u8UCZeH	JЂXDq@*4LJ5 `ŉV#I4 `reƞQ ^G_Ƹag2A7;Խ+L'''hOS5gu"^vKU-SP'1C؏M#չ34czM/zYO#Vê57pKl1Y wKx+Mdi +myt _h䜆qIj	a d%*y7oz!XXuS8Oah،P\a0HfQً&@By̾ⱞ՘P$xTQUfD(lԉZ4/#M;깎^]HBͧY֞}p ik*0aqPS1` d0 Vk  p 2WP	MrXr ᦑ2gf@Va]N6T/sTEeԶK!G%I~&"ԹTmƛށtC3̴y{nZ+HSQӴyzHZ!MMV%1*abis(!ȟKy tYēk冃yh	pŷm	y0̠PoNJ:QO桅{axے㢅]K?G]vTNAb!Pz/'.Uo~0㙊>2u|v^xuRSlqbɶcTqhnJ8Ē65P֧|;~+9x@@kH,k&5 0׏1.І Z$*Rp@s{wUp~g',pۅ<ppo a&xҍ^8\(N'|(pWkҔQ@xX+&v>nǶy镄z;^gQv>{:&_ieX -q)@ϒbR{gvUt(W1_E^P  ~$X,
2a1^*HIF`#HXb+Wflɂkt9+VM`8YW`ˉ́=Bi:K}B5	$HP+xI֬N9yJiI:%ذ&M'iXHM6y4$YNI1B4MR'Du$	Q̑iYs$ɍ>k̨Z 	5sqd6ۜHqqwbHRn×9ҧS@	 y7/o9'=@x0ߦ,:&3Fwlg\*DBdMTA4@ !.!QW(M.]:9tE,:]QK-S,:DFuMTOTQUY5UAq5,feHO&VRp5Wjw]a^`a)*T"I6f!eI@tf'-=ٚks>M\GnVz@= *X5 ݽ]%>iuf#3AJC	M`#;Fш"bŨȏ;4NM8xTDD,Gcj4eTGOU	ZrU^}UPoa%3ASe
p $/V`ᎹI3ZIFZ6-&)9kyh6im֛jjjn)tntz5I3G
ps_a'aԩ(+r   C0| 0x=x1czY3^;@d%-@X\)n,N@.GhOGV˿Nn$A:&,;X5@˕ș@&uQ_f<PZ=`ჅgΈ0̪h㣯L~]4t'qAIw@qWCl=42T(a1Jt	G%3uЍ`N>mø,qEt$b`A@%Sj\Iq(B'ݒXXh_JZ(¤,zKJi,b:E=ʓﰔ,)#A\P
4i&4L4#	c5I\Q;	іv4=MS7dR  Fl *ST- 6`G t  P @.!~ bYù0B =4~Br;HvK+ZpqH^*"?	GN8LzB{9HWS&KQeMR3а<ea0idL2͠
G"""Q6D"o)di2 n<ʡL؀Hd2#)*>J1|	Bކ4\k8ŨnI6S!+䇆M!)щPC$"<BqnF*AF!}DRZt [S
,x!R-O'e
kBSӗȎ `Z``R2 ^]PP_cLz4H#fnAI!R)nBY  U#,=, i@o xq2("֠z, 2^d̶N2eW]qHJDtvV%/Y"Kv"WG?j`0!-('Pz^ea(p1'7)Ι
N~T%<xh.1I(@"eݙV:C"jn&5و⓺xqsUX*`s	l
5Rk@S遏lk!h0*AⱋZ@۰.,ŉ8BNk]W qc'aRrd;xe)r %' ,?"\@1dt[GlTVH)9Ia-hh+Ym
pd9hQ93ŭnKkH^i#gά7n8K	8 R@>l"p0.yZBxY	}da0C<(QB
J(aLl}Q	 S¯.>!uz.ȻDG2Q+g?)ϾqA#{	LV@#4Ytn~|ewZиR1.YBʙr;Խ|\}?xtofR6
F(`gN1VEҰp69ڞ	"L& mU3!0,a N習 68qKw
i: U\u~hpĈ[yӼ$Eؽ،%5NO蓍9)@E;`ᝂ TĤCĕŒm]I	i@C J!B^HEh#Hl\wiʣ Mam\Rè(xp9<@ 4&d&H%$
=@UDM4B A<10)@)mBa%ń-[.@XmXDۍ
M@`K\mN\[pؿȄS09[iq,8u)hh[zYc]X<]#7V[loBaLJL#<Ȟe $F|\Nv-M%2xR&_f$Q/-% =$1 [m)C?|l~>5 z|@$X (DAjDKB fرO-P"~":EɄ̓1:$-I셵=YT	e[zNTY<)酕Ė@4,\EAÇ).WcʙOqU>-Ac$Loa 
 /4݊FΦtyـ	&M<v"PaX*<:t$/(	Ƀ(Jq%DY_1b
BZ	İ.V
/pH-H#e 4mg%@Y%,\cW\4A@=@m  @ &?\O8$уu!cFeN<\udd ͇YoxCi~BCB9Pn_
X(0@M&9)L}xڤ2	'xE/=}J~Gnl'uR
D;HhX`(݃~^7"AQxSW,(gWɐIY^MhQą_E\2\g8VT(`L#B^=F֨nk?V׋Muay`ըJV+txߛ@
l}C>БM>aBqX>B|UD' l)b\*xCg,>`Vg	SҢICZ^Œ`¸qV<(\^tz̙WYMa"Y$hq#hdlfq _m\4\7L}=A
-yCENwC })&R/у0
5li7|4$L|'XΈ)ƠM%*`|"&t%,_S)STe^
ŨR(]((0.JEE4cEeub0Ђ|̙	d dq<nf0A$'>(`CiV+`0Q@& 8A}
, >Wi@wA)s^4TaDt'S~DU:-Kz|`0&ţS=q20	CÜlFȮ^t 2A76_l4yF"I¤<R.qE</:=`&Zk fNu7\=,x@/-InB.(/8%
2!ȨPb`@w9AX xB@ C.. G0䚝)'@K؏[0VL(eeVZ,=%V=5Xs3j9RAF"X,md\q#HЃ YcF#4ml\2N]mhC0\CW#G|z%v(	`#֒C^1it){ȃ0<唈V@l~;@y0L+-lBiE^.\X=5 ZIЂͦ	Fd5CGY(d6#JI-4J9oӺ6;
@'1A|r(I'3īAӱz&%@/-۰ Cݠ]	DK" :G~)d@V';'2xX :HFD#p,>.SW-`pȄְX<s1@PTنoDbAXcdH:5=x>-Cz38@sspմdkxa`7KE28GS$^=p?\B^D;$Lkj埪L424N?SH:Le03%E5tO(_.D"h$(#gDe0Bjk%Ϯ{[s7[O=~~73n0+iPBSaB@d{i70@BAG1v\bq!&?y  :tkAGppplS-'U6_,'-ߋ:alO.u]#,ꥻ0g7EVhbvg5`8Ҹtj@H++Ku9]]7āo{Y  A/xRT`C!d+==s`PZJu%ERC_RJ2ܱm8,CVo?Q4E.eF#%鎒iŻ'\Dř`9"Zw`e4ue4B0l;Í& 4\q7{1@PBA:})@I/د@< f_ި9/<"N&Djs]@򌏎J)lDn;AMl3Ƹ򴩮X3.[p3G 6ΑW@;:;o(`>*^z*A"x -i^2> '6=MrLU /
aB6t|l<9A=p*(aЋ&-9ħfL2-,FL+WfN@ΊuEТ'N)XNdU*TVuN=WfUTñU:q+aV:i	/ޯTG~IBj/&vUH2{w'uѴ!t(,h%į$ԳMϦّ݈!,۶$DbJ6pۈh)<uJNW~:۹wG&w`h{C|ٷwBz;Ց~&s} l ʋc  `~
0e~@&x>*fuY/xtaGbYJ`'0%*rK.eJ!QGYkH !.'˼e&&y,5iHZ̳5q(D;M5DA$zjPi$:FUn8EzRKfUU .
) Jh\uu}N)
 £/)oymR!E Var!  
ְaSB!#cI!凘+^X^F^%Gdȁe2Zjȹ+2Kh.h'T'2-{(:>l2%3.!9"mRQ0DHF?ukt(B!aԬY]yA p$׮^{W&|(b? t|0WQkT& Lqq~^bzF{5jt8/(~!zRH'DHۢI(b֚	G:#,Q8LH.,7ONy͇4:*I؀cDSv4ג4Bňg8:}H;نoh?(!4@=Bʰn  "`gd(8pM	?P9Ѓ p7- ",\:~rh^:J:D/5t,r\D,qJ|!	-#%JtqǏ	Ɠn9y-*fQ&1gBҁ(O&)uB*qB?/1- a `ҖJ[ޒ!(Yb#Z?B2X5}p`%Vs<X%  F"C1"ȉG=+#KBꜰ:=Nݒ֑.^aH$Z,yǃB@X1PxS?ǅBbMa']OB$ŽN\a$Mzȏ5_4NzJBo`͔e|DEf? KbDa k|Qzt	Ң\J||BL$N~E	eѹ`jOҥâU{RDb4;Xe!⠢WܒQq)@tt-(Gɬ,1#=2Hѩ!*j$Q,T-^)3Ť#-4i*?RF=p? b@G]>Q 0؀+ykd ƷֆBopBzѝN\Ҥ{(2,QbzcBDYn-gƅbmE1iL
DT.4ccpQ-hjI:4I`᷏nԄ2-Ն){j*&o]&@1@4ھ64|ổ 4+E pl^;,[Cـ-1Q^BN%k˃I{騈J0+%$+1NL)y
1mB<Xb4=,!!c[
1rdD4JPV."X}iBz::I
g #dȡ~EՁ9ŜyC	>._JҲa{3p%3w;x8Cܥx|^"疈( uPL}3)lm9Vb?2f`I
2+nM̖:&p(svCc)y7ݐM9B	nX*f#4pwRU.
 8|ܣFt1݅h:% KV0$)D7dAvn]ck/*JNyCji3EѡwB/'HI:."Iag([4ܡȜ`7Œ9zil1ceҨHˎ|!_܉II'ʗ<.?qS0ӆahIr'<Dă
a(*¨Bp$BA,`0a6 h;4b/
))\ORgHIH.˴jJ4#ng,`(p0hLdN:w8OF&czd4pf
82
,DiKf*zƓ
vC~̍bnZI* ݊n#<C%+:$ CkNVT``<Jx`f6V(R/b!!b_f0f+®u(<lH.笂K-ڄNJV4*1
yYg
4C)c/	ii8a.bbƆ
Abm
!?  BAe\E! `'T(i&U/jPHhΡĆq`I jՆdzJ
/CKK@ .dK!@k!6~.2 ) GO7͸<imNzJ"c@`a'$K1&hRR$!'!T!6n(/BR!Z%CӎbB5gAFRm(krR+jPP)%Jք1x.D,+8D`9Jj!bhD)<)nʺp
5HI!AľN  B! £V%12r[BVŨAAZ.>Ƀ#"5=	vjd'dD,(0'}twA\	0Go0!A(o02r-/
pL*GƵH29Odl+,!|R%ȳ$쮍}gΥ45U0? ` @@SCBX1"	@Rk(A`   =BB8` !C 1,J4(5/EAmsu`+a:b(7Ą؊4mV?d<⍞TրI;P!3=0$jHLۧ~AMOc<W
<.
@ /hCp&Y"O[TXQWH\FA__- @CAR @E)R46QZxAU	rP+Qpt`@Zg,fdeb3uj+%XG&hdej$+!TQ6E8̔L!a\;.&VQ%*#$<R1[aЊYC_M#8bW!FA$u(|	$rA>P!PDeDTԯJDݡtQ'Bu/`h-btpG9sg"wg14
j⍊I u<NsFaڨzQPl.!S N!+abTTYN!nƆ#A
 oƊ, Dp=c}HT]T,('[xzGig$(S`X9EKw:	#oLnx9y
BjaT!$)=9eڳLPƵ!dHaq fZ &p"-#,a-C!(aX#FZAlp0\q"E[&E7(bl:quj6"\O2
wbXK	5搚0Q{~'hFbEhx-%L{[JhlMq60!!
!&hM!:Pr@[1r/l 0?V Vr?X#<$ v;^15F\IL*nI'Hea
`Aa2+Nf`hŔTcLw{WIuMMHa3PT!z;
xTzuMYœ2  neu2Ȩלs`?qf N3=X0"@s?6U^MwHT':Vq)8+܁apUj}1Y3!Phgzgl	 ]JL\}!	S1  @=b1׃?X& A $ `ZnCfpQfG
~xA̭a13'(&t	.4F9F}Tĳ6ZXN+X~g[	<!T*!Zz:eZj"x~Ldç#{u !A"r!RRu` !!!Z0m .A 6!!Vڙ@trZdB=!9EGatz$(R'GJZ.+<ր),C98	X0nn3N		jA,m#4ɑ,\~Ը6\Z!F<Bq_=b%5
ҖNy<ߦ`>/G0#P"Aa=sٹ<ԾEĠ<K8ap~yeHZf=HNzؖՍ~'hWJg(Yi1+nRReDFankg6!A! x!..N"%
X<ߠe=C	?!&1b|Ś
@!Ue](}tX1eMa֜q45YUvhqwliKJOg{hAt7=ѱ@óV588>b]!J4` ab"<ٜa"7PQ^,*
֣£~~ 4`kܣ`"B<busFiaGd:mƽ:ilǊW	!VPP =5}KgXx! e +ӎޅxHϠĉ+ZѢ<7"1ʕ,[ti.?k0Yz2^+A}C"RB@ ` TVORL4(6,]={0h^7pYt#j`v:ŷ/]'J9F,'puaPjt\':w~gMk23DNQ"GNJjаcC&84Ӑ&?>I6+
6B)(ӻ#}:##VZ7@~dN7ZC=2LpDlҟDRf4@d30~b"T ņ+*&,QE4Ӎ&$UYĔV$XWX8oLX\
j[bbbN4`n&m)OmfmBrzٛhA8rM!"z2P#b#u騤^uѡGzN*E0GT>\T!?(5=3e2κ_&ԣQBGn-h`<dhX5Yd	0܌%#J߆D 7RKXKNMB$Tϗn6Ǐ(Wffqæ(dI',nr FeNf蠝(kBhoggNL(l%Aq0Aϱ=4?\)U3IyWMz*+=#`R¢CUO[!%,^T臆Pޝ<oSӐxEtU/4H>,e 	C	ߒT"ƲDO"3@H|@_)0[ha@L1^z]Lu^"Xſ9x32곘	xVhj4m\1WPI?jm^׭~*P" 	>IL`pGV`D#q4=I  .rEAA?B0:k"	QD!z ]0Yv"w^$d.YH-DxKx8{nƽq,"3ۼv$,'?ԠPl"?hA0bQv1*j@Ut=
aPVFO)!C"@I3 N0z􊖼V.k`HBʃP"<T	уs.Ií*k%N|"2EC.T&ᕉ1CmqNlB#!7olGy&E%4A1N"iADcEUZyaTq@\5*T5%*"dMr?i7Kāc&@@S(LЕԱo6 @ $k@0/a]djKM(b;~D%KojUfp]MdA7.*K8EZe>#k%,8ƾH#ӑd'*LT{LG)PDq( mǘ%A/@"G7zA}3mcC@	F \j:w:@  857h4 @@:!rmPW>q[Ii
^gs{yadɲDx9gn)L$
i}pl*վzid$p?v:}OڪAYǼA:   5xP/dmB9fT4'cCa"=Hҋ(bҰ̖T"=4`F%կbݕs1b׵nWt''ى5/$p?	S|k(↡":["1ufDV${>Dpqlcl]PPE(~dA?`Et08*l{ q;W0M Zd,5Bf1bwG/J31c~Yc,c dO^<zOcЍz%M=;guh8R~<hMĖel!@	2MrC@C;1QDO<f9Z6?ȱo"xA+azLڦo%EV]=	:f=p2"Lǩ3>z4>EQr0|1#EX/"T:QvTU{bT00	 [D   yQT cw	S_d0`؋}pѿb<!},Ñ?`u]@|1]["x)&Y"yEyq>UrFY>'Y=PEs4PK*5*kz=ss'/po+!0CMV!RV0P vP	d!5vGU  5rS[=q  7nc!f5"oqO7>ƣ1Y7&4ptAX`O3y}B=vaF<C(z/3)pzȑqW NZA1U7cP8>wB ֗78 B]q C950~rVVX+eT)0@a7/q͂:
iD`gPP[x~aE}Ng&WgqpChYkqNT2'>%vbPb1Jzա4Q5<|KAm\ "oAX9r݀$!`?Y /  I A` !ǈGRDY"NhWt <sWT`EVy((q$|/aq;ЉQrXZE*ucs!9*+Uq91:"7妋37W@b"oE@/v0
OH:OX@H	$d^x7[$'27bV`]8iq&tNs7%9b'&	jeY8ib	ŜDYUHHGc-2v
`7h@U+A7/pu҆	)P_R_w
!e`PL2a
C_rA.Kb]Q	P h-F;s%HG1ӜhW1qiD:pW؀yp7㝤VbyqY%&zXQ0cSc1V0	;)Bf! OBdu?=P>)Z(T*4+q	i5 %.qC-<ohtchv8`(YFOP*62q=W:y{i1߉va@hb4Y)Nz0siu2A
Ͳ		ZR#
7	vj)T	    &0hp:|C"~*ĪhA*N&'N7`cEw2O3P9ؗGJH}%4@4-7Ў$4*U 
XJxz KQt2~ A6B`y(n,ȂeuBI!*h$hTtPW&ɤ(b>Ds[җ2kF5˞b$
8zP ),Fz
?	1T y++73gT@'4kP!r| Cq˽ ǐ	96i"  ϲrp Bh5JD+0g8F1+qWxi)5[7Sa됔=MbɁk'ߺHKz^䊽	K:C P=q6Nv {i#k0e"PڽML:vs	f@,
2(`R	1I]F+:G7Pd	K~yqYPyrqBzjJ-,Es[   JC Y.%'*!B3.CĹm6gAL: ,,s 1;PEdx%\7sppx]=|Ώ{ɐҊOkJl$,'(N(*`?rK 9p
`6|@!:@T Hi ?#}g_|e p[7`D|7l;X`<gE^d1ek#ΉRb~'Wrz^4PcɮGc	*E=D/Qf9!f?7lp/MҍPp:p*ePJܰܲ-5A`
7A]ND`q`qHOlb$CX[r{WՁ|ka-&AH#\A1k.,{ٴQ5˾L@9lg,BMϦd/QBE)~\Pi #B 409*@ڙqNIxgiucw9&[Bo܈ϧ+H?1MHtLW!	[?&[(P`:ʼ,ǾU`>k`p"#-@oݐqLWو#blο@Ϳ`';ے{jW1G}T#^,r94ݚZڟRn	βd[?@1Pp0I N8GNRX8|/AJ[҃!^,;Ə_jZ;ij	&<@[ny۲H`(z\<IE1g<-ⷒscg!g2+g춼	=O
K<A\(4:-@UӛeڦS.^ۗ2{yѳHa4 |H9!
^HZ<N>s,/26h 
gnۀ$p%t	ZU[$3:Rf 9Y7R:RլUy>}Tz;ܖL(XXH>k#T@AA
W0c|-+u}^Mpj-a
)u8X <9EwH` !KNj ?':`:~ lIFMqeaF,"J%G0!58m&M`-!-D=zB1UԨf)UU~ExXeZM=.f"܇p֤xfԽ([` $ߛYdʕ-_l^uhd]櫘;vxa'3
|޹୫$UQy5VB.r/ΎKh
wH*2&&/aB^p){R#9z⊞1!j꛲`ZÍ,L 
aB*nA#|cL6,Q *1Gw䑬7SJ(ˢD}eࡏ倛.8XMQƔ脳tZOCDDسI@sϒ<ԎA(GCJ)*jNǢxǊ'SIcU6bpHe  @,̎x}By2Yee*zc(Y,pg~6e YC[u9~n݁xC薞	(!Qe(7	c!Q(:߻<}2&ވ<Iő؉ioE'#HB䑫lIpKB(+gҪ@'gE8{.;Ul$,yj2kxk! ^ĥjj|6	`T"IݣBLn@47j0zd֔DҌ-u{D	~+3DJ_	~ﻅ^<{saz>D˽G?ɣұӱѡ+Iy~m4(84˚ @1qs}8B,p2<:{헥46OBzpnxmlG,vu{m:2@@qB_\ ℥Xo"@N0c0%Q	NC(iB!$ꢒMY*"=nDm4324Z=F-X^e
~A%Cuы8%7(U6F  AERi`jڮ"vRn.MP n\&ȑ
JP?#P(BaO6	$g	*QJ̅XRֲ-np"MY`?DXBdȅ5Ǭ"H" Ta/VӚ	`0*d\aQDz!`- F[1DgR,XDqYM:~[$d{Xp"4ɐ,% D=رAeNbBٷLQ*?J[S2"|,4	0<#z+XA.7h @,LX$O*=L|F#	V XB!CTC$-@y	YH-Q 7xJoh2r!hAD0%4vcFqd2M2eKɣk| Ѐ*4\4
э%P`:jZC,iaf&V4K,Hfp"K `N7ڊj~rKS}R2PDOeibQDgsХH!Ie	[29`%~YqJl0)47\są# PJfwU,#D,Pc@+/gBc+pG\zs{5Jb		I#%APlx4n}%샎0?1^fѣhFɂ/ k|:%)ELWAC[̀<H|ˤM>@E-+=anAbc=%|>m#LH<WRJu%n\z7yGA=J}"4L	3dZ܈#4 `FE}e|]#2BHbqab6beC"3l1ȸ
mN}>g!챡y)?ۜN-\򼕓B ~%Ks8ysc\cj6dY#pA<}w28lY>QhCs`bBs+c$  Dv=,u8,}t&2pCi1K<
+"?y7Ϗj02}z;q?X<tD>ȸO}&Ic֦^	M:c#Ɠq^Ҥ{ksDv9qSC99h|پi_xm8IM

zRAm:"p7L 'q@C˨pD;n##rY9o`78FzuHa-ɵ#õ9{B
![ %(,cȓMˏ[![#у9̠["9+:  kո;~PD~ٌC բkp n#c/ D
Xx3AtP*d(\()\3:˜04)BP)4F:$S$rM(@`D0A܇cm&eCfYD _RP4бH'P\N$	kZ$ۤq&lr<jX/9 0̍W$kGhҀ1&L  Xnl4C(QFHoI`(Jj;"(IE$9 XGM'~ΣC:P<ȜRHUl3,k	5	+X6ODY]$i(* 13H-x)qLx-ҐSy0yμGEnH7=q4~0K<-#G<.EłHAAE?L6,\!Z/HHӹ9t
Ǻ90$67/8:awH	QJ A93oDCh2d:pAk y`	58M0ˈ{@ͭM$	N2t:JBȈ(N꤫Bm6ĕ5$5qfdS8@yx|4Py шLq"R!b0J`'$S Jӫ`J~((0D(cp,O8<}˯64QC,Jek0;NB.0÷d3 s*	^a9G~:0"(Aqc28,2)6E )D׀J̖q@G(MNGǩ	)BH܈GEL	s :EQ(wR&LPf,) ccrr8w@AMR!iU,Vՠ}@JfaAeSؔMڔJ.~DNtP~KueZNKJWȂ}ENO|H}(2b4PsXpT77i萹-Bz@>O20C	8]$]/~"TN
LSڏ,Up\wYveхNHڲ8ձLR%aL@$SAEC.'a%J 8n@ z ;%}Ϊzl,ӓ0.r}q$ AJ`ZvMZХQΤ_%WN0ԘCC  y;f͌ *zyZU1%k%E( pd_ +QƔV)u;0|@n FX`Пxͻvr
-6cMI0D3)l*аb4#py  'aM8\IōnUIAnEXLN' zhoz7|M0^|8~V9cje^ֈl6LP88+7v Eۄ=xը9`e˸Mxl(dMfg8`]48 &UоPw
spYKdh]>\[W_>ca)8~Bֱ Q)< xbPCY?ՕT1W@l矾WvK8ۚӬaIz S  9AY~t^
4[`kXnY^g()4 mT8*}].K(1ǈ[~;x?Uhuȍܯ[k>H|%uyP|P ]H\sÄprݲHupipxP_*;0|-knK3:޹al`ȠDP 3MD\+f>cvm,~ (@܇i8okS@v:k~ @:ܥcpIAcXSBDCD	z8B&]Ō&phk.CoVM챰C9#ΌBخXF[=<D.`r|"[XJLp쟒="Sp2MUq΍x~%oHwH-^kC 4 $k$Qǖ3Hnp	3$/OcIX'åzP{&+P1wޜb^oY°C=k$&DڢHdf*(8_@;gLDi8#&z_#Lq%#Ep2RA岸F  %nLHB]o3h>mcY?ɠ꽑:8&5hP0 p~uXqO=z\ {&{')7+/f8Q#bYs<6ni{ +x3F= 5  ɇ{7H^qrAjGfy 6w2x7X ST7w|Lw/7.߁pɐW$)$ɇ u8尿e<'yQx4m`S  ᓇs͝9:\po9xFxgad'uOy =P@p ?"W8pÜY6t7."ir0$9S%k !!=YB(q"[Q̘C?~UŒ&O,nS~
0$8,8=% @>;MI(G`A<b+v,ٲW%o8+w.ݺv+~hEy, :(=RR`e-Sx1@;􄣛NAYκXG^M/{:C@~#Quqߚ>-|1OCK=.I7EOs f
ôߝΚ|ϯ?QZ=@|>"2!әy  s 5a%b"`a9q7hƏ,bE9bD#cmCZba?c/k<'!	tU7VaILC]\T"`HW&V"t8sYg`jP1
:]1&CƏaeCN@yXEDiWƏ-6PbHyQ]Q!@@ EC*%!C  ÒM`EZ!Лp^UI Avb+WV> pْ[nY+=uM{쁐"	]dUNX<b%,? ^X)?T$(Ia,-
)pZ>\1\%ZDNojX(3k%$4oUlOcE8t@WZ+b&zY`aXd.5%1^rw=2k1B0nj5ly p W29ࠡtuAz JYv{x׿/K@"s*աum`aK]nVQӴGY 54csJhzѓ/ޱ6n-(<KSy@e!@&|IH!#uhAd"G%T5Cm>xs'y3=聏n!א{%5-/2fGn$VB_5ETXQ19|>;l} d5MA qĹr54&TQd`  A"?pCp"
I!f5fp$m<Q7$ 0,5Ȇ,zd\d8c:s2/u(=R
ҳPxLzTXnn N[a5ic4(9`h_Ə;( M,PI"@F
qY)8"z0 u1}`'? cZ%^ҒnmyA>$f7D |*z qG)Y42>_C[ޠ  CՒ&)"I`ɠ"yMs>6(5a? <eW>!a4/X"H(EQ| ybI4t\CTP=D!@GRB_AFX"c84/6=-kBժf ŷF} ^!vD\7h%fÂ	47O\@=	LqEGz|諕9 h$Jug`78(\P?(@`Z_Ȗ{C7*i I٪XԹ6"$8LCaˋ4/P냻QWX/mkI 1M&d *%A9DI9!

Xl5&J	)`	kb,^LbʇƲ. $`}EQhf_zbI8c8+dPc"DT7ЃYQ,[,CA=|uRrPX/Ε !OT~QKs铘Tj-3[UAў` Bq?H) pc=R Y[CV9:2O(bZQNp(ꛆ+sm_k=F9M" fC=c	HKhv3FBjC@?dH7
>vo)$ih7-B=n9a~fpC (F9O>S˗jo}R@R`&.=IdLF&x\"")?(JFKBQA4Oug7gŞTl"9@i ۃV͐7bDH{r*RMt$@^upp]4C\"@D\=M1X	&$>$"=p @XY$% |_`0L-\<4L$۽y	fIe
F<a9D,(@aX
<@oyP<`\\>L\ȃp,e
R(@	a<E>X 
V8YA6 V4~(1D ک  (D[NP9^h&?LTZ>Y"	F~7t`^ >X\LS\h]9`9@JbY C^}{paS@I@\ >\@ٺoE>)a6e`9%UM*$kC5Xp*	B``a`9Eԃ)c}tB` @jR#5ytK6Lэ~׀Mʢ4EI @(I^(Ƙ9Hb:a T幢cXCG7`%(E֖؈@g /,B9YRYXLtd$d@&	`$y)h9BL
.-)K]<dI	Gt< PekU[(}529t\dPޅE% <HMI(fX߅EZdyQGEӈ"g`7 tkp=(HaXQKЃfQGgE=mf_BiYs ]^ NhF
hXA?E|IYPBA(F!DMZf`|5Yx']Q6L-/Y  :dL#%gI(bVR@qi
h\t {`J%
FsM.C# XXd($9X(_.4 :h8e^e\4CД`&P @A1|Cl6@<)i`sZZa'EGMVJ0	&4(HxbE:ȪIwR:|g$p^^( <?AhP lS)|Fb\cV,B?꽞L\&]J9_^ggFf`c*Vs)@f9p a	dDl^|! @4BoOdhI%JDPV)0D(#Z)
=Иt&PE>p+yX4=<ף Cf&lX0o>E\UR) &P!T`""iq;ZHVd m>D<BTYBh2!+^\E%TGt4BfUPE/(IH_Y2@6Z@
KC5H6xJLXQF>p9<i]0FG 令q.Bȃ)XdF6AR 4\,FŁԝƊP9dMErh@;`"`0rp+?\ ñ`N>^0N(UC<;>t@۔^YhU eE C(L^DhqUEb)L4d 
2c,LQQC^El]vY+hC&慦1C4 \aNWYDZXEs,929X	΋Q$(LóN	lViJdH/'.CMֶ{&dri^"fJ9 "&JN4I[ 1Vl
@L$@!'R/\C @F6Hc43'/+	C=.B5Gi 4{f\jYA#8o7QfEUXATB^Q@(4MD&PApbլ*VXlcylcC8XBPY# t>%BsMZ2x1Vb,0IK@6Cq(#.4p@uN?:h5ZCT\;zN ,_5XEwek _wujXN.0T%!XE|ht\V1DʶH5)Y䥥2,\haA%%MItSY \TX\f!.u5j7vhCGpdMVb4?J5꺔7\,Op pc6yoH&),@E@MlkuL87*M @HL^!<4wl0FݘuG] ] '6VvV9x@#ŨBw27dGhKq(>4B>'`̮˖˙f00kq΂K	@i`8v\4UX9raJqmi!%XhaF:kqME0z_YPOQWLq~P9h-,AӨőQ5(@Q4p`)e`P&$=hF+4!C]A:hTXp:Y be {IQ"{kh@u
 =@DEDY99|V\)SG[Z2Y4h0 |1( 2Y4<;7B#^_R> G,-;2̳6N\ V|(1 Q؊THX=V/}B)|\S4:QM͔T8/`V5 K۳~E<YpkNTA	.CJtB!c> ܃y<X! q8[/Tmhd"&>[U/j jG>;BLE8<ZT5@t#  x&T07 l,R1"7 UL  dɌN22#2whFi^i1@.i	M$S<41ʳ0KOF:jUWfպkW SL XD( Kz@T+TؕE%4p:*J9,\L 8I쀪| C
e I2s#vqm۷qֽwhƪfA`q jzP)OIz=i0i^uNκBZ.S n*JH&z0P̷!P	)-#ãYƢc@DX%C3+		 HD-L!Bz}̈G*Sq0!JHaq0i,A,3L}81,Ec	"g̒R99%Y/z"IΣ	*}Nq2$aǃ=;ǜ4KGαT"JTQވO[qU]G)T]Q,@ yBQXZs*90
pE9gN0Bw;
tO[O9JAUyA׃NX	"*3~⨅ Xz~q$z\ 1#2ǂk1R8l&B9vo{iTcKkd<Xq!n \*zNAvӤ},#}, h jED /I<q甗mNYW_y,EitωꙆ nagpa: YF[~1]ڤ4LA
w., x棘\RI4nHo1JP;A%KF~6ҏ7Sx z7XC TA3 Grxܣb|{<40<J!dx7&lB!(<% @D0dBUXD!Nh\aaU#e?@"DVBG%nxc 8I(9/*O<(A3pCP,? UeRÄ m4!}D s&Y
ZC8"d	uE-܈[,CD)>A5]HhHMx_`c!C<H !
Bc  `!\>FBDNդ
%37PhSuOh)5@G2}-cb#k]7( . @#m#
=L1!	GaMAQZs0\$3ܥ$	vX>%["OoYH!0
SD.+ (0r<])A +o",8=%UzHd`KT z&k,\( 8d?|
X8 E
8QBuAs9`V!YYZ.0lB  N,Iw#ԡA	JyA<+1 t\؛}jWhJ:Gdݰc,samT1'- Et	PIР DfV8ņ|l@XB]JI'i<'`+!hs)˝Zҕ(H0Fr8"$$ܘU1mJR#Jd| )Z&
xd!iy9F(\D9s"F6|T2HSqAX1`ea,eUtfpRgS,#|Cs
	ךiU!spEXCl c	92_Y ș<2Lqq ^ȩV@ ֵ5`l3&Qwr6~˽4  `ZxWƐĒ%9a UpE`&l *GGvU|Ƶj\0 B6[t/܁Hre=iPC EQ H4q	 ~j%Wp|Cd	 EENH[d'Z 
ʬ@H@B\n@5E8V4#f/2s%1
cCOppD)P4(Z J01
(wRqѪܧ]&WgyAF$`M]@e~Sv0/hw~,b / 
deåK kn;_A.&Vqg쀊eTO),"EP%Sj/4'jERuԇӗnh/lp!Tn%aǠ*A$ *
II 0El ^@ڮ,RǝTA.b! `bX6x^/.@px/Qt  <bh@oeK12D:ʴ|kN!$xNJ2`֪"akQe8-B܃ &4:!؀  ŝKmF> a<u1e#dFK眂`](9@_P>fBAqή!jq(wC,BC\lMC$BNa5lu!LBH	~VH)Ёf
ddmX8n*(j l>\ &o<Bg"aR`#'X̬H*+!(Nmr+[G%mc=b~B)6!(f4L!!+2`FA@_0Fw@!rh(T!(a%9" -"xAL>`FFf4+  XQ&5> ( m6@
%  (<#C~ (5*`.L@Ά6La7L坪b碂 Go"v
$a<NlN;LT'J,$P}2Rq%rb,r@&A3CmpSB	fS*ϡ*~"BB0=5QCu7B+,r+. PK"4uC#s̐ wKB( ̔7m VfvBot8c I1"+@0 1@4Q@rT7@C6d1#!)ʠP.gJUW"ޞ7CaJj7&!#-J8a;  A:xaV,`''|'B΁j,RK9WcUO	0pZ~F78arC*"^qd 2u^vWAh*VbV&, @`$taMW7\H=b6a݌$NOgqxzv7$`hC]bM7C,r >}jAn+eEkKV *4P1aP2;kL#*a@Pq1*a>+POm`Yvq'מYk3]sKCCYYwЇqEBt@Cq!H 75jG5,otuw2ZzFGB,RAvykC"z%RH0,U+Ȁ/kozWށB"{HDĵ+.2u+1jUB<@c"R"XOH}kKQ)E-JaW=86{C >KDQͧ4]x"#Dx@|_bT*J*+42_|Y 6Xfvh}8& h!A
	x/7<T5"7XovX͆ߍA؅iAdJzkx%@ P& $uE5+DFB]ǂ&NXq.aei =9B!{A4s㶖yYY7Fh@w3p[9t&*Ark/Lt-lYUqz2Jvqg`vCy nU|3dOBPw\  n͹M^V"k
NA9W#Zq7͹d@$١x):XQh)УzNUEz:9͙n` YfTԸϗ?Zm,jZ3}CS0` &XMA[;b٫.S(j$#P$~,3ث
|cz!4 [tad:'Yx;-p-;Q^i@=7@L,"HQ[nG:F_yo[ގ c7C)_,P7{q/#!9!H<p{qJ)"A[#õZ!r,!_23,@dρPߺ'Źu49Apj !    ,R  <    &mO~\?fAjAGGGEQ~iEX 9 I/YEw՝Z^9UOgO{\[گgĳƌ͌ә                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  iHʠ!c!02J0СA5Xq 	R`$AȎ]HQAʖ.I.7]!L*% ̘) pP*(
`%bXa @2v#^j #E4.``C~ B#e=D	0D1c;cNH0ƈFL&0fĬ	M۸sͻNȓ+_μ !    ,T D+      - 	=+-.+9	364-44/ @ X o	5Y 2h-Z&m.1K7(E+7uLu-@i-Ct!^u=Cn5Xu=mvS	I5T0S1	R21gni2w'}#4OWfAs(IT@1oHqI3FFFCVVTA@ZD_W]V_^WnNMcMrs`_npg # ' 8 = ?.3I I^
_]fces2Z0]&o)t${N@SkLwnLuqaz,*?1NjlIEHUQSfggoyw{v$:(<&5>NEXH[W6ao6]^2me f"v"w;JXXkoNwRty{cky/VuGj]vĈ%ǉ=Ȑ&ǒ<И>ǊIƓIƔ]МJЙ]ȖiԦRɥvتd׬v۶gڵygx}͋ʏŃۑ͙ʙم詪ʧΦպľ´΅Ϩ۹ε׸ϹާǦƨͶѩҳ׻˷濌͚Ʋƌ˖̌Ε֛Ω̳Դϣ٨ݴ 	H*\ȰÇ#'brVXƍ;zLXA#6?!L7;n@OLHj@ui 85Qxk#A {tՑwP;20_cq"Q^	Zol?oY ]' TOQ,訁ha8WogDsdgKHpf;l9EJ
*|	`D<Ҵt_v&I9Q8p|k'޿;^e01?~ P>刖8ݩ4PVDRY6  CETb? 064*9S@   IQat |=\=#y2@)Gc@ؑ>xo}]?^&@せHQ4B|V?0J*tR`  VxC[c?|Dp@;OTr@VTFM@, $>K0VEL 7sͧDrE5/nEC=	$O)5芀0U7!Aܮ
DKloi2?nt5=8*5b=a K<`7\SP@# #'D#Pt̺Ȭ@(Cw@Ylq*ILնAuqrt@*C`F*4ڶDPD3kRӃ<DC"BWS ;`q&2e<56o766xqMt-S0 	PQ,)n#"[zDS`I0$Ys < $=#C?FJQ=JE1M-=S@1?ӈÐ?AA؀c!5	@ |C6;lPTy2dCa@`l@ J\D&ӱp" <T"(wCZ`0v;NY ςH%v@5EBS0$hA=T`ăOE0  Xa| qV w,.#RMc[ 1O0|Bb	x"v A  m	cA1J eh>@8HA+X ) e e~jC<He F4}  >R<8C@9dC@ D>ӆ~<h6cyy,R/!6^D`|fD*F {<+? 'eGjjU2?D4jFH=:6Y5|V4bc$.Ś+ C<r PcBIE{PBB8(8GaHzzjGy$*ޙXHC ;#0Q@(F >M,j:pT'@`AP|F,0@m"\c% !@| 2  	zօ?&1{JH	A,t+cHȣH
Ӣ8Ȉ;MR=/zg&eVLU#S|(GcǷ(Ki)Yߨ9|t5(@[ZG ךvko!CA"_J]Mj,Ґ$3P!]2 !iFJ9a&v#yOui|![X}35GZVSI0 O:\ p PavSiBק/h|EMa{(,-P5ItK+j=2ƅ[ȜT""5r>Ae$@	- 9  e5`Q¨vUN'k>iެ1+NcC=
 30M55^TfJpVC @2
>UQ} P spyZ	*wwȁcA#@
h*1wCe)+6Х;m(nXxHZ3=]@
$
fK?dnшɨh1#<@ѷ1i`^?pƌc:*AV7%"E b״OcZ1@,Q8BIt=ڍa
ǅR D@jZaO9R aӂtCuVMj*[>PxTB+H/;M$k`1oĻ	OAw ؠ|@@ B`QG}<%*
UeTf>6^USp rq]>,QE	-o5e`*SW &t8	Q%^\3cP0rP[Qd"JFU& !    ,n  4      . 
>+/>+:
+*)>7.9?0-6;8 Y a m u8V5m,V&m%u2-M6!u.Cq=mvS	P0P*lf2u3}#4S@V _V$nfAn Ai#[h9X}$BT@1mVn^3JIJ]kvsXBcMrkfWkkg $ ( : < ?*4EZ J^
_]fces#q$z?e9q"{QNTXW\Yp[drtqt^cdihnkqy|nsszw~yw,35__o`~vtGHES}igo~xy%9(==CKW6e]nf#q8f"v!z;CZebxEtys#@r$<Ȑ&ǒ<И(И>ËSɚJʛ^МJ̦J˦^צKѣ_Ħe˧tרbڹvŷ蕖ԃϬݠδ̳֢祦纺žǅϨݣֻ̦ƨͶξغӷɸ㿓ŕƻ۷ʶԩǌΓ՛΍Η֛ל΢ϵֵ֢ئ޴ 	H*SÆ	#J8ŉ3
WѢC 芡G!S#ſRTNT	% 0ei˘w(NjiE6DSZJWTAۚ'KU)`,ك6Y;# A.SuH b @:Z	<%N\&i܉H,Q5E(MkZԅ(ɓ(QXhx]1HVVomtD}TPYD@UFX 
§ :#5h !kHTNGUPH$@t#^~r?v0X
BXPAL Fg`4M@CP<S?o0?Gԃ tcLOM7   0F	TΘdV?<s?lFgbPyR?c  XWВVYAxVz@PR2ꌛ*d:dj馢
n騠bjFbJESk18?}mO  f ,K:J@0$ O%I	;;!Ylrn: 
x#mq7:C_gD:TCR?!Se=S2#2S4
ԩa`az0l=()kg!$ rOcсK)b%h*kE1dƏa>Q&MKh @@Ҁ  UMP2d$7)AFxIZqdRQ_kG3{ƚF9S+NFahl{m&[n,V&9HP1Hk}TtQ2QTdDp|KOÄ%,"P2,`r<S=)D~C)!i4 n`?H?HPB`FA'X
_<f>   t ^sp4՘a&a/ltH`?>QQUOXZu#m/v   5g}'vq+~=Vdc A扐V1$	EʄJqI3<^,Q)EcbBELD.}pt.a7.@!#C`* iaASȺiRҤ( \Pb?4n@&>:+%-x»%${T	 0L89M.nY	اPl
V<ZF< B7xg"3!Dg~d!	?KQ[ȁDt{G=8Z{eJx*jQq3\(@$JIMA:T@!s	$AWM-<9 `	Uf-ax@P%A&2@  xt&n{.4	KIP (7o?!| :t0Ҟ EJFv48d#@UOyܶ^)4`@,o$=2D:Ĉ*bpDHdE4ZLwRVWpU6T}!_q/rT*0VkԳ~5I@UcՌWZ5*БXO1Mđ^S!AL\b.3g1 )NاX@j`334`0bFҖSCR 4nr	f K(^a$^ 3 
n:`BȸQ#kuf<x1Q*cJ $`FZCPDAL'?1C? ~أiتPZ<$nXa`G` akH9Y8#P2/Ѝpܴbk  h IÌA6`?@'{
t8"7X1#Qlܧ"TI[@AQt#QFnR.-A iֵHAPTѷ7Dީ)>khxuaW]	y/ր
=7 9@z(Ga#aF}2tk8 h[a !    ,  $ <    GGG[6`MQPTUYZ]V[Y]^a]a]a`bdf`eehmnst_dafeidihlfliniokqntpvsysyy}v}x~@O|d܂Xp7zx$с䖗픙铕çϩҬݱγپި裥粳                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     HXJaÃ#Xbċ"Ŋ1^" C<ʘ cL1 `fA02py\:tCoX`ڴhOX@LNGakWDQMXjׯP<bUX7@  \ !`Hҝ
󇋡,l(K	(%"5n108@3}Z.at3O=~CARצ` +P4]2(eҋGfv&L0Tf0
2H*"хAT]JQaa f%F	94RGFPaEDJ%EA_%e)XǄp F1Ac@   A4	vKHPc`B3Hb	GLA '`^Q)4q_DZ`I1$%CP AZXdeV^IAQbmE`ğ斒A*:aA*kFS-QPPXAs݊i[u	4j da
ju!EҙBP9Qу6mc@CVKGR
FC .m^
mEѰuQTЬT@LCDpȎvv5,A,p :ɭ1xaPD`@cW	ɂGcybQK)	TT
L !    ,  |,    6+092264-111 X p	4Y 5q1Y*o43V4,r8T?G]Go7EX2Qr=mvT	R0T5
V21jh2y'z*3RJU+VS&qfAo(Mn:nRI4oGnN2NNOLYr\m_UirmOGsRokkXooo + >.2	NUai4R1W7k+t"{R8f?PLVZUn[dlZk[prkl\eimw~^opVqroXqo{q02XWnjrqISp|py{ǐzưy{066<L?aNT6df6[^%kr(NQRkkNtp^FtNvm{1_]pj_qjvВ}rz72TpWpWfXl]ox^hpȑ7˘PǗjˣ[ϮjpixywƉρƤӲЍҨ쎓ŏϯɈ֜Ц˷ʵ̺쒌徍ﭩˋ܇˲ĵǖϰƈɖ՛΃Ζш֙׫    	H*\P=JHŋ3jȑ7 bHɓ(S\ɲˎ~IC{	^ɳgBx00ϧѣH*]ʔc?A^ӫX;`ÊKvi6.,9J=Nʝ11f ˷_\	ä808%1o1q˘3k6	JuFXJq	ß$^s޽Y\:bdU	8皷s`RmسkjZ7ۨ=a0>cXkO}
T5τ$`qg&`Fs\qW Gtr-G t8@i("{S%=Z5"x4Fx$ G*>W}b3Hu0(`Y%vb	dn@,֕`$FccFؖbk}xE	2!=*B
Z}C[& F*iJzc n=)47_IjF5 2!	N.Z:
% s#?oj[JlY,l(Z@I@a7 %kC6nbT~9U;p @|:ʡpRߤ8@EeբzR`aE@prhM>ntXs)dHQ$ D`V%7]<EpdNnU3O1Ax4SL}m&Xd^^Q H	uFYu*A&ezp	~7N? |qUyj8JfǣQ<f"AM=զE7]uz${RQoH/v,޾{'|K#ǿfm{7o}X?0J_QE*;b>^	9/#FD9Q	8T~xqC,+ :@=PŠei@*hnn"p\HXnH@+B"kXȺ@$U`l^wBD@@å0ZX̢~.ʡBP#m/TQDDɮ:ut6%"-oG
g (ḛN}jHJZrVR F $d%rCV0 ZڡLlκ( 	,:^%kYGLC1CD~4eC$X˲	&[%/GO"UF8QNG͙b&zS8D5̄H|C(tJ㰄uPH=IъjQe2
RN(&G"[KD!`v(Aժiњ`RέG}glgҊ8iP܌"J4"&zӪZPDxshZSTa$ЁZCBW\8#1R"W]Qfp \XJ.(#qB Ae\"=@]d=C]buֺ֎TNVĐa!*W=dIF&Ԇ`1Yc '}Zt)8!!f/V-B8TДHbǹэ/t".ۦAӁxJF+y`0ѥ/l.h{TH	f790G,\千!>9AU
{V,$aK$t_~Pvyiܳx
iMW)n
"`G?N1zLŰkV6?tm2lۮyc֔y+B#!y	QN6ѯX<DZy@&n>^p2fdKհajK^feo&*$xn	jX'NՌK8unٛkk[;Ƣcz_E_-'	%X`wGso7b	Ax;fI/%ܯ6SC(-*G"}mn.>:C}썤WpbnSȑߚs3pj<wGl[gKjdY%gpĘ!$fh&Xh
[:gr,[zps}z'it_6kB6uIw	 `N"GҖ|b̽S->ZbOuJ
:B/yb/}%0AQ<U."UXmc0{4o|pO?Zw-= `:'}f9[m*yp/?oߟ?UtFus45r^H\ceB	tGPWhvGyH'uGpe7sOf70b# V]S"a	._Up[!,`THhUm
w~u|IhxaJAu?"o?Glc[%?}_%a" p f2
r.]"HkO~s~t8vwxq]GrYeuuE/gP"o(4S`TAc}v
yK聞ȉrX6 Ħ4?}(x F 5VV-YxAhQ-XyrHwx{(Mu(xUHYe[fa3l 8R<!0f?@FJֈXv\ԍXh~he7>2,*q[Eb=YƋ_&bh-#`сhVv(@g)ׁǁژ{H6x88׏Ŏ%9U"IF(DnW;Pn}a\%-'X>)~vXWbI^izXU))TX!V[zyNMFU2)#:h&gNpB[X.ɓe79|X{a)sgiyhS$,cC Bwn!W'Hq4(H!N	XuWɘm1шfi(0יŔrxntGQa,22LIY1YbP4!?+ml"W]ٖ Ըiʙx	y(ɟFؘq|DE:Ep#ěWnQ5E"1 )xmiI)ٜ!:	cŹBN
1S%Y*9t' wP&@frH؍)$LhH	CiYXOX%L	hS):qT7CWZ8TV*ǥw^z%
`zOU]1^ͱ^Y(Q	310⠤xc,Kyf#*ʢږOzSzYvjUpS喅|_@|Vi@	'G 
`P W,3V&j]	[zH9z2J)Ixyhl!!@z݃:^g Tj{:'N8@U=VUjpɯxXꁓYڢʖVE1E"{$ޤ:Q <#U
Li	b'1	xh(|nx+"9"+K/;ګjZ5&[UzSuF=@U-6jJ-a,` Vy;o"4[gA`4h0+xS0ٮmxזہ{
hKy}u@G6[$JӚQ6 lA`
Gbda>gy[;`l{H8O@Hain(A(2,{&`N?ݴU  B CN3ih	 sPZSڮae+,Kzo;1۶Ի \KQ1@{mDL	0d6Ds=c"҄q8@ a9fNZS xعj4b֛_P~ЙKf+s33()Q"ЭkA!|q)HBbO-yNزXLȾڟ%9C6&jNɀ#qdu1	7(Pp2 "Ӏ4,iU
ǬgO!9wۃkR6R)
HAh2c
ᴈ+h%1.ؔgZţ˯:ЩnL̷w4Ͱ+H%ԧaA
`F6
$#a	ll@pӾKں,$|<?*빓
ј4a)ABNV2@Xa` $ P%.fD#aN70AO%m ,|K]|X\ImЧۨ9]Y$x#a(Q!@\~eY{@4\&  6PX|-˕4Ǭ}ԟȌܤ) ̈́ziQ`ݠ	xu4JIMAP&"W*)@0j`t[ wGջAm2k^VlJ@œE^IA۠	,PޚzOMJ`bduX  0sN 8 
	
.]GiOlȈ\_`تK!.n&-8'2-LA)p?vqwA P> 
s-
f`y`~@=8KK@opm}{+
>f[QF.>>ؚ̇BM;̣dZL؍.-^  I{Hd	MY(ɠJ>S<AP+N/@6=j&q	OJrĶQSɀ CěNL)O%^V||'*@V&,9ATmZs!hS$EJb0  jp
09@CO8KxܻKܹ#ߗ(^`)?i8 GIp2a&X`<1_a;ݙzzT?[ߨ߉)?0Fð?딆PR^Kݔ@0OJ?fS_!
4Р*UJP(!F谢B6T0CQ\I(S۲uT͛SUq0$ZQکgCj%UYnU1&ZlPquڸ%JP;iy7/Oibz4yrȔ%jTQ9,0T2b3Km2'Yl3&Mk͞{/\4cC/g|k,@kzLN0` 
#883<xgߴ}1<x4ڏX#;832 LlA[({M6ٺ)&o6n9{~g^ZeLaC[t1){r<E(IaZǀR=&E(OAʎ$ҢJ-ḺRȄ8C4CˢÜoIsPBvKq?{` /ՊJ+&Cu2jlԪ/B3S5/ӌ5$#2e.6:gó;%
,Z1  -Øl (&`
ȘS(SQ͋hb$_]}uZo`&`*dX +a}eX7v$پip3 !Q Z'9c٨3X Q` 晉RN ӖZ7T@pߘ_73/WZM+K6^ukTpⲻN4	U%38NFd-9~L&џ6Ț7ȩ wTYp-m	(q8")^>zc!{u{#a{z a}v.]_3SgDl[Gjo4[2ACjr&!EG]ح:|/zEKkm[ldFU FMAݛb2XcuUƓoԤF5P^%a{k~a<r9u|D';X "\ڭIU]&,QqmHcũ%`YyMF~%3T!1~p`{ *BC#C$YdIK3zTņ9aj'1>B;XfPb6n'd٤.)|ʈ!y83øT p8Yd2& $>B_J40 >w"	Xa;XR&4xZRdm C>#5$np$>p ;7h1dM+Z
IB_tWK\],V\SwO**b4FjT!k2BXy3Af4>"
 $IR:+>[uOc)8`tiӎȤѕnj=y;rXTjd
2fWb.yT0&& Q&Ii5'T4^qmc8xֳ}dEs1ɓqaRauXܯ%0]P/yZUEjYJ]$jT+`洩YښLo9 @p(mo<(5@Nj	>`\窳%ѝnK@꥓LnDRU{c]|[^J֪arj{5C [DJAn6po葈j%Rzp9 LFҼUܽعm; K]X/r<["JرjxgW֌^e⒪4֥Ɛ)j76]?
xSyc	 (7eT[KI0A>CU kVyNx
Ʇx6kQNE/Z#qxMRsڏ,J_'4oBѯ|c*)T{P0
nFgMk[{g*6X>@_x%-;_Ն7!{|6Kux_%nL6MκnxjG!o.p̀46yf~DӘ|q.1TJ|P|z;m]l	KބTD-H"p<6J?Ra
}U9RR7%9n<EyE.b~`RJwN4e)u-^vG96v dp/I]zWT"[[BhuR9sreI$ #W#8=Y'%74γԋђ)՗IOqګȬ/4G3Jz_z້%57>;J
3hU8qP>Ij&s.<6󇛲Wg'[	J +gC
 R
B'۶diC%@eJK o){	 tQ؎6
?K 5T>BAV+x"a.>0Q;ӢԣZ6&LOD(p6!,.Cw647!
eH nHD<Cxvr[k	YCD5lĘx&iK8R16N1Csd4b6A?+Ec/K&\Ch/;Dx5ʯ!CMy.PB7N0`	q 8TF0!uk
<~F5냨F|+Fx:4q*SB[QÈ۰ZB'"$/}~qB+H2Oi:\+tz C.ax`-H-CI? "pq W	hI̾'[;SM8{hP#A0+D$*-Ehtt	4Htky&cx؍rJuK)0 a` 8Oaq$KjV0<S@hZIE"DGZ<B̌ÿQ gciU*,؍$ӾrYJK8M2JXc	u	sM8PƛA#sN~1"xΘ<WNGO+IIh;Z
yLKq|KJHǚ& L5!M~hI؁~p	`]SKCU3$05"0N̽ 6(4OCuŬAZzS ⶦLhz4vxdAQ}ROK<IR1ɱ-e&0.@ d܂㔼Y$(>0#0='܋b;RE~ϐ(TD=G3To}ǂt3#,dYMdWU\|җC5UM9H`W1ݪN^e,V+Vc1"(1w`:+8 W8UxL3BM5O4E0#K֛.|W[o U6O
DH+,$%(ŁKY08Pb5mX^K0?0DKXXO>"Drm/+QIٖNY]B}GCB1~QZ0LEp-!'݆Sxة^pV
WU]S_dNk4gjUFX3b-/m1]Y\o>]5SǍ}ҊpR2LMT3P`ʰі0\Є
M݆}PlNeIڵݦxVjX~ȶ[MD-ޘ=eiLMt4"9:i25JԽUJxRz(Pڔ$!dR	պ
ԥ߯U [Lh6]`|!bG	l]5]ǻ2O0^K>9[DX,6Wz5.{CdHv0 -u~"?4U!ՍX0Ebh˘`h'SwN,.BM :^܂Z~E6^7DH9'_CRduYV-I(_aMv`+dz D%;(_kX]P~֎Si`T^#jX^dY[			ۃ^he?$Y]NT4c	x ZY<戲PSZkHt@F
S;a0) {zbHd	-,.ZvZ!; <SN65F$ʗ>A`-v-.(Z&VCYUhķnG(\}EEcRM^oC6"iNܓN;H,op
  K(E`4*U?ѭy`CR"꘠nX$D;J{#~Ň;gg>~jP3L-~TkHkn.(>| ј~TM%=aӼc
WR9VUI851Pm @n	0	|P `<xxj5QdӖ'S&%yE{htV6sOuύHk[5.v56dHYDhDힲ*`ZmPie!6K؁t"DJo0^S @^Um>b#؍d-1|5&E h><4IsN?C2*Y܅c[@yikt,UlIqLIQ{xZIXzmXf+.o`_+o$r^me"FIzMtL%6 v
bj4RSe8	`>FGtkad;kYUPa+vKw)=`ɞppxn	hy6I]g6zEHĪf':ve4V<Wh<OِQBN/V"7CDh8&asO	D<IuIIȂ2DWM-
r gg0q,ڥd[ҩ "V:wv{`&ل cGn5sј8k2RnEwOoBAOORT~EzUgM~\gO.?jվ1mˉg^]PZ\Q	vmՌwكO{~*=7nR	>KDvHGtt}|<	
WL9 Ir<pUZ-_Sd$  @$)h <wk'J4瞿XDb5tGȐ!y&ҙč"UfJ&MU-k&N?Ydt͢Is.9QQ[NYtTS*l84+ѫUkT?*UK-\M,B߾D-[K,.QĂ'nȒ'SR\),@KˢG.mZ6?3Pr6ܺ%ۂ ~#RP Hp>2bĥU?	H>.m(fQbٴ,OJbe*O`߯JW7V|WW`g]If	a5A]x":`:q%u<et0@1(<
%;&8$G\p$AqwܑHC!ua]wqGk鄢?E%Y9^M'Sn'WyiV *%zHԕNUa\@xW;vH~a"1_EF@C	*([C >,=cI*2? (q%A
OC@D[8D|4c]xИJǟSGՇ.)dEӻLy}gC/(R&zdnFN^|
إap!r	M`8*36ڃ2C?HJB60+Lo`?KoH ,p̥~PіܓufHxGd
ȹ{GMG:gJӼHmUS8VvD=EdL<"p&Āq8	qaDv'$p+mf?n70`mٓ5"N1ϲdCkG0IYHWN͊F!֥z䌸f"d蓺Low](KzW5e?X	/P0M@D2T.kL,14pSߘ\pB'hHʀ'BCZK?8 40n,UHяHfyJkR@KS*!\>c-PKCQ%+=OC?kOh*ɟR?	mn*8X/@fs
"6\so里HG*Upo#JD{l+k  t$3210eD!m8B@"ӘgD ELQU" @"2TI;-qc ʍGqw[c8kNBC"j0bld?!PZ2.0*`0Pe	Vq31 6 =2`1cP	%*, YŲ#4	K t-:D&HYQTRE|ى>yJNlƔHn}R7wL=<yJ(`0g51пD1$ֺ){f
݌B">Ube?@J#Ս.KjRbi*&ӌ@LLJoj4 .g;$1I"ԆSjS*O([mFtK~[*UwM(\ˢ }@nk`L՟70i{ʌ?`2N!|)eYhG2 hfXLԈr@>dzUSEhGo<Lyj-m	<x+nGnkk/-oW1ڹT6	nTI%3V!߈"Rsq8TȎy.' 񆐃_P8ؙa`7
pʣlS0 @ X$PRz Eh9BZ`C"
EP^,OlWp|d	gJ|b*yӿT<9]Xqd,l+1cV7.PǺadҨEEMHVUy}(+'yeF?0 6tGX p"}QUH fټ*ɸGgQV;פo'`zaImZoWR;<n3'f)֚SP?mZ%h9P܅2d)OJ}=pf(3<[^6IQ7̴;7zkY"e-7őeKΜt=g#'.x?NY'Zԋ?QaܥB?1ꭔyaQȄc8d슙׭M6	ʲlR -QU#) xmdAaK!!V3؝$9'a*̓OhDǳ 40EK=8CwGcX&g4R=|m1UFsQ#8SmdlIaT(@5diIF)NZ	_^@'_݌?;xCd;Ѓ8L_u]۹	CD͙1!B*u2[wDӡI(W-ERyݨ5^UXpR@ŇqőJp8q>T#iάXQ
9FY
ǐ6d \Z@wĈιW>>$Ѐ8lP[aY pD!!O+8"͙5CY(MXQKx!^EVVeZqWxQ_W4Ƈe 4r^@Qb#zވH\,Z``all`΅Iyg0['MbұL?LC(y۫+Gֱ[rXFz,"OB͔p/らIJF`MY8Qͤm#a}ZE7|I } 6'NqVC^"|
lYB"$aH[p=\#:E@
eqxPdAW:d5,@* $+^deG&/SHfu/4ce$gBkUYt3:_X{l&;-aՇy6U\œh,$C;f%=`uH_`$v#66JM%hpFC`%vC+@?(C1ZLoTM_YfY$_G6KLdMY4xeVKtf ]\RQqXo=⟺L8P*%a&>ƀ6 RHɅH 6g=ZX'@ZDxa'Z Ѐ?pÎ0CM,>E*XGKz"DFDt+l~A5UNL(|& $X5V<hLe$82a4X1ҏ9V^URnoFA<M=e4g[rF'M`njCC:?C"(" C?hy*!D<D{a&AARB֐NyiɄP 3>c|P.j7A#S<^%VGTN"0 .<T;
6p.'lWF)%N^y`Yr*4N?dR\8DĺAICJ=Ah!|R˖ kHOŝZ$zزS 
QikˋQͪe`a(>y%jF"8_qjB+
aerH
F@녗KX®hٍp-Q?é~⌌CȂEŶ*p*b8te)Oؑ]ȔY*ld[*̢QZVl-\Pmai5~n{XF"T2-D[Z&E?C<6B[xT#iEٺ-ZF;A CB%LːƑl++߲BAG{abj[D0[zi΄G߷bޕaMnkBi.tطRF1-0#b^ä	2*$g?0/`ȬVЎ"C<`1	i[DDn W6fA̧VDhbP.fV UܿL$0޵]V1Ft{LQUpO{P?UjCkk$04g_otC7iuG,dLh-]BE*UÎȭhXAXFF*:1'o/"LiS ANں(NˀJ}?h!EU! q=."4E嬝0V]r(sp2S҅47@h $pTE8$Bʗ%\T&dt]1Cz,eC0)8}$B!A44WD6ӄvlq;cNFuφ+Yn3FF[0r?@j
GuHE2t0
ACP"E7+&N_EEui,ʍ؃-2bsFXK+*,23B܁*55w q+]*O:{P:K0UͶ5]0Qdԅ=O̠z[%t'+tNvu;N(Z̃(k]GnPxΩ2`weD94bPHN0-,+e9VgjMj4WO~h20n+^ v#Covorpj*5 6P$[?sF bH8!A86Yu7d֯Ib耐z7pA50~Dž"0c8d"߂9n1rNOGۅdĢ1ں68ќ)] qNxc0v8{.EqAU6 &FZ;4vXFw9`t=
&ʒ ?u"6m)$`A%0Fd+A2>bwfS_O]h1(%l;"z(:< FFܮ_ZeAՆ4[p"w%'Fޒcуt%؆ $=GaAL3)L1>xEf,j0G"agBb gcKHxfl'2SWlSSU:5_sRUxU&8Z"x!Cs% Vd̃7 ګO+s =7TT)`d(öt|)mIS"{1ff)NC7Ap6āN#D Η]hڄͽs_}솻3~peJ7!NXbdr@%zAڿwo($[8(D>yH)G8GF	J}$JjeSƗ$I"`BHكHV'C@83J?#IuRQ)ZRJ*Ksț8cSH=U74fѣ;Sdjt{$>ʬE:~"	mZD4]BV%pZJTEg%7Y a:Т{%2\۶m9kthѣI6Mz ;b)?5MjP/x(4~ǑBjXF $Bb+{A)@oO<+^H#G@|TyuI[.JZ*ڪ*B*rPA*ꫭv	ԫВ/E3kR+dNCEʮfD*ᑳτ;$G '0Ɵ6xd
|1  .<3e)N;h3	n锃3!ڤn4;Kb<k(<"?}c& Цlb)N	ӡЩLj*SQ?$¦ʐ'PE&ĺB-*/##1F<#qTiLD"B.UWm&4=6ZI&:obv 1 a0Eu=aX?Dǈ;a0":YE $<h"XQTQ#0#ƙNĤN?I<)W7*iB0XH\oUױѭp51}/M	FlF6jW2y* ώ+[Lp`jx$qAo&y^Kx(b*{H	tYaL #0Bj-,N! bH;Cx?66"g86>j)l[UR
Ph	ߨs*:/JUVԟDR\~ؘѳ5bFDcd]$F22H#:7dI`A$mD2d#6HFodAdMבBbud#4x!wH#((pLf14T_ԴYH|X\
~7LRmkĪK"v$EpN6	HEb&$2$]\$nl!¼CCb'w8oAdcFj&)`0~BXT1N΁@D,!OC9Y$¡*E"$Qx<( B)HK)A(
@;}GKF@Z7!d*EZiK#	$!)@C\Hv^Ăt&R9MISĀ$0: CK08H z/|q :-} 0@Na
]@]coNN	>y1p.B9PNob1x[\;q$J X(B:1pXI{^ҡ2t٣d+W2%&Ҧѭe,#!PZ}V&Sa1#I;d4-<z.3P60fH PZj$J"
"qaZbO@,`vU6$2խB(BJBH cN="ALyC!V˄e
f;%-XիYpVC#DSbJ)l"%H+"v Pb&10oe7p-4G7! h  /0qH=@NI$,K5j$y	,Lb   0Az8cr(1w!8>_Nc3/`nC"²+G~7VQ.icAG?N=JؠMV,~D\=z6Zӵ5k"#2A̓y;J-F7-o&-4""6j7j *0~X.u@?چ+`v{B{$/hmN1)H܊shɻ \yg؇E!%y$5D%hJG`pD_f}P!;)&nlawlZ,(igם"mIɲsw2`q[t#`J?o]a?I|3 yd0QAf  $GAOu&CzcHĺj^	}A$ȩp]VqfS
N$SFE@nDeID}縉 "6Li:BMne}J
]oƶ4ZM0%DܨH[ O,3Ŧa"K2O$Td@gr bpDN0ZMdOhGFv|G:<HL	/)" ۸:!x2Dah)pBb+p,B{'Jh*j؄FSbD~,7A
/PGQXjBPPĂ~੠ aThjl`tp4؀P@:TH$ ` MDPYAy:C c	K:Mu*w#[noAjpNlVgtJ}*A@dn	FVl.4!@̒D0"1[a/.G 0pbPsj7`7>&υ2ء I0dVi\!	wbo1NW
1c	Y@0pA
Ju:"xۺC~TTV$~@e.DdezM.4*(IgGI-pFc>mġG2/,3ǠL,Q$1^QN$-M> JZa߰ Tcf^p1J'ͥ%ˋq  ,a6}J$a`&B*aM*7 MN*N49unA$
-,&/\{&/9%,8k$m*n0?ҏogPJ	A$2uH"?mN:F5.0I!Ϣ%J.O3$Ws2Z*ڡ1R$\
D f`R `t`^+s$ G*a
8Xa̔$#SNi=aR.NS4	<	S$n!21@@4btā?ؐ(0kT*0t.W@LA$DtDaD1VV;oNZ\"EOnR{[2\J-VSIBء~a ! lԦ$AJ*Ai   6!XDX;Ad:nONxꔾ &<64`,Q"F #at?2*	1@[@5YI$ZDBSHSTKB01uUTD$	FVGa|ba`AW}E  W+-4|2&Z,5.ʶ/T	I@̀^S`Ä&a&q.^+ 7 jqMIdA;FMT$aa2bCfb8 0v4(>+<V$܁~¶2@a!@.q\BR IKP4XuU@(DF""^jE6.W,44%1Z(ZE$hEN$7@<@ӼAJA9M!JA  ^LTʫT@;AC*`*+6tpgNȿ0mOGJ CH	>j#@U$:w _  x! :yS?w$7 j@JQhgz{	w"4:iXY5FX,me,t+N[Ccs$
A7EL)xV)(sIh@j6Z;NMޔVs{ut_=noN"t辎=j' $4
|CD:USnQY^'f!
!F%Bf>'$fUBcChC)c|@a4:SXbkѢWuTG֓.BCT#`"$VutHL`k%&4L\<uHUɬYfcVy?t#w>R	 cc9DV /ubEt.,@R'0CR6:&VF5BӸzyh},hNT/@GM{bXdT-Jj-*,T΁umB6G 2Ϻs]44H$
@JCoKkJ0 z8ahlxN؇ZҮ	:;q|jVZ9d	AVx7f%@ƊH^gH!YJBw&[*aE<
JB>"4AhH}-W#	:Z,vBqgqF/``fڸ8A!ϸ4~ڒŁl$z=3ӻѨc2꼫q;*

	#HQPhWʢ8	`'~<uBc:b!SB8h7/>$bFNͩE9AFF/r4 a M+-a/a2V{W.HB_k`7Bʣŀ6hZy!H8i9ƼM]2Y羚hBCi
Ƀ
^V`$nF,{1A|˪4&QWVcEh0]
JS7dEӍA|:t1{bጦBifJ65	F5A#'QyN]}eH.{܌hCڛ\^  kĴM{a: ccxN*_䩉
	dAy{AXz,TkR#b:$0)@\ '7s䊀+]xG1=؆"%aχ+>®4xe$k}-u\.#)l~m;6Bh@?M!&XAEsC¾͞U+YnwbAޥO!a$PE
*ZJ?x"B8U>JQ'RF"K1I,[d24g󦐚5<rH9)UbiT58TEMթ	UUijɪ5XM89)n\-2_d,T+7~!BL(Q~%^;8ҕhfMC=ϤK>:լ[~> (0/ܥo 3)kJV̛;μq"2;WŢ^
N!Lp7i(
ϐjިTKRPZFP%_&لM1Ť]DQ:wSDj4QG	Q)MR{XbgZ5 RI\`%%S!8HamI7*"C$dH"iY%Rbv唚t[^~	fbnݙaH\hJ[@Ggsҁ8afKlJ+QNM4hI!X!}%5AtYx"ʜOBAHbtL;,K,Jź
OAܭ4utB⁧QG"EcFWX$i,b[n\@j5<$(Beb|f]df~+oz9n}jrk'J)Wgw'(9pL7MXġP( 4~	"-4dP* EQuE<TCPU`U,KjOsiM;"!ƥb(H+Y"m\W]\~%N5qEj-ro8L0g)yҜ;Wx1D9r-4@sh5R%g"!)"CrS,35"%
$<sGQO=N[E](TXUMIc1ٗ!r.Ya5d_{n\Bps!&*p`EɕrZaFj9ILp9#u+ǡ
B>,GQDrF1>*\H/ȋV0T܎X;bh4&΢C0!EJqi!Ķ"%߁ C(K$]i?l$GV23 %*r*WQlaQAhpX3gCB	Mr jB, !g*Y8Bj?+xiȋZETI$AL jJx2Tw`
*KY=$mHт9GlI۷ Cv0uqYn$oLhf	<r0[#Є|s!PYI3i'#GI\	1(*xb
Qd!$QXJ(BZeF<E h|jW9Ȓ,7TDN*&?p'@o|PJrN}nYI3xxԣbo <d$9
ty+*s.0Nr9ɜe)]lg=J
 	iNRtLX3D׌qK!Z3RM"-:(q/AVT"^"HS3?ǡ:{KR}^Շ)Rs;׶}_#3&K ps0KjX&@8L'8
nq9X>rBQ
VvKUAG8VWW{
}P@7oO*԰h]TŊDRe_KL+Xk àPUUL,ɘF.&`;y]ZB15O)90t(xPpB$esYQ&aB;J<<|8+zr!;5]5v\*WU-qE ۢ(Dh%r;udt@M;wT*C6e+3a
⭏p6u wDyvF?7LZE'VJ
EC'KD!4 fZE!L7exefˈlN-!c/51HUnOi"zɳ kYq#vKULPMomLnyž˧te99	>0}=
;η}SQ*'uTsy4Ңg#!LEȘ9仇$׊>N+2Nfa惬Ac8_,hmG]6lr$d41z,l%~Ukܺ(쟦0jP(M6 0(p: {Emwrs@w".bTCC0
a"Kڥ
 <4FVY*VϳTc<n$ tutC75]pM
d(N,5<Ec*V #}4HRvu_B8'fa

P 
`P0hwQ-!Qo`H`@3&tix 2[s(>
T)2k3367CMj*s1;WTY5Fc!_rd<@N|mH ՊG_I(U@B?2Shg b0 0  0P  AP~u/qv6Gz'31u)qU`7mi@MP
?㏞rqTCUT*TDщ3Xe4.8k֊%9(8dD3fxӄZ(1p0P800 P	  \PfM'!Z~Fot1IʑhY@PpWpiExBgwWqX7$"kݣ	PJU*?7!
5ң#?h)}(kv$vf1/@R8Pp  7pޠ9I 	Rb  @p
H.~̡V Zu2ȕj+sGQJD	!bR*QQU | JXM:H".X-jY-BSO13&D4D*[كd\d1NS$@}feimh@%0)p;   R)	Q9Y闤@I$᠓ް ɐ U@nIةo	A`r!fvga`S`

DSV_ͲTj
 G]T	NE\%Dϕmxc!
eCts$1ȂB*8{9{97j0;@ "۠ߠ ` b
󠓼Y	1 lp's!F11
ia8axBBȶ5([ejS?D	"QyNYĳ *Sy=d:d&&X+z.AfvQs6%*2JXF%jT:PA BIg:Y @J0	7}R0rIf
h˦ve!QHqIBPN0(iaE[gdMj	Xq`ykG"&$;	f"7rU[¹UQt<HtPhuYdôUGsd@ v[Ί̺  eU1	jgQ`uq j
JHYE'AUpN e%Mv(R±6c"b3pAR* 	*w_6d5q9s6MSfa^ѶtTanp<%Q </DfA40ag+ŧ:j[ hh\yggDA{o֯|&vbu(Fp7іpASiϐ>11B:x(,jbj)'"	$<lԴO-hG4a,ʒZjdTp6?.j|P"/r,Q]]N@O$39|` @x0  Z	
 8yof1BKǥ&ZB02anZ(nv(
y,
|UQ0cYUG	3ula7yPb51V@ڡTᙰVz4ˤ0g˻]Qӿ)mCa$}Ѳz$̃n@+ʠu&o2'!o0(Q@0izxB+< țsp KۄE"-`-0",kUCuJ*8-*rfӏ{j1Ӥa7 ڮ5%8[cFjT M[K7K%#pz('o%k&l)ZpZZ	o ]A׎j3+]1/;NE^DUP2+}W	+5m[\Oj-Rr3
ӖPԸMhۓ`')%@gRm!켦!e1hcZWpa(dbK=W)ED2\"	I{ЗO[PV	+bOkF$Jb٤!e Jt-2.K/cSĳ˙#/'$*0H9(SJ+j+pJD0*'7q
S0
Ǫuv(	]MP&
ȱ EDUr*кq$dCAMOe⇬
`ebAZyguTkfuy+m0̈́A-Q̱͡VM~!q+oGAYiF
U0BVyݪT1xHBSf"p%Q-	an*71
0^`tk/Ӿg	F@Zf;r-̋/$%paBk~ϝYleOY%$fp1F(0?'L.|1VMM څx+zr	~ߗ2W/g$ .z*f5,5`a44B\.Oe賊]oYifhbQ+QJFD1wqPnvJN.(ȱN-c"T1d/PKݎfҎCCp6{Mb} ̒jBH"K%OD-J׮4}R&	DRʐ'YwQL5m7DM=}&>+*#F<mj$U^ŚUV]"9THadq@ )߯)9'NpW,M7)5f&xQTZ[-R	̙F<eq2cڔ)sЛF?,rd9t9RID
J%_eUjFN=^"MJK	q㢄-iݿOǘE)11nQE&ֲ@`AYdAj
PXz
+?̊C!2qH B"Eت˟R# sr\k>k1&bmn1Eg5Qjˬ6E 2rMĭݢJ(d&UFQ",ҟdkǤ,ig}4JYD S=ÔKAxj&}Q% Ǎ P?IP `<W_ԊAVAV\eq5(,\**HLQڨ8ĖæF[*"p"+\#0tj>/'~W02 S$ˉ1$DY[1mKElSe&mbL&֜76·˙F01$7!ONZe7%}Dr#8j/SWL;I;t&v쉣D  h 4PG!1,*Aj_''`Am3UQj{&')_V)T'9|D}Z:+$
"J)\tFr
+/0.jrC1&^(7K%jBDbF{5*LLbdC#	D_ئ~p6Ig+ijqy2TĐD&2/UZІ6$KC&.?iE$Q*AG;b~\fB 0 #ā,Da %bmFrs쁁
\ᔸċ +n
-k5W"AER$+YbP-l9*fY*)QY]>^W:/8He)&0odL$yhDE O^j54f4iH"rcVc!YBu""sɉHoA9Qt_w*J	e		K0$ix LDQ	hDVb  >1@bV\G$b	!@1(B*ƍb!7 P*Pth5QkM4[SV1-m	$*B˃`Y_PE)G'("eֈCt9! %4h'c5#7GiK iZ2'-v(!CTCdP:A$⨡-J8c·d_ㄩh"jC@8z/0 Og~1P pư=!P{<`'ߐ=J"?ECm&}҆Xch0
Q׸f4Y:SNK+q/#FQL>tĩQ"\foc٪
H|oKf"3դo&JFK"8Ev<9uQ©")^2A_L>!Dyݧ&k^B[;5xKacֆ$  A&cV=Rfv:<}hM";Q߀5ۧͳp}59s2"A[EA
]]ZQ*T|+ЄMl9$FT2S! IJғ%kJm^ЌoGjtaιXj$'4ؼ{J$<Rqֻ2pa]ODUbVi˧DH+o5?w,zoX@*o@fKA
dS"K(PP`AQ0  Tl\@71   ((R09G;{ȁL۠(Cp#*=ܸSyㆌeMȩ[V'n"UBQG+D(R
Cx65N)buǔkjL$ƴ$UG3;NNs,BT(vy1xY)VU6qm/ۗW_b6m Bq`P9B96uйCpDoq ([`Ita0ZWZт 9sS\?[8X>;6p~ѩqZ`bˌPQWT@%+_+ $8M󣂰PrQ)jFrYWے[[_$至JÅ4(O)ɸXK\SyD+D0bbͻ(TΣ&Kn1:P蠀H  Q_ v=|ҧz۷½6azȦyp vvb-D(o-jdPVІ2S01 ( }v8P0Y9 C3y?#?X?۹  =.8R6{4ڴM+El摈~XRCHȌؐXkѤ"ǊHDY-{(6:6ArcC&e:1C1)dBLBP搳2<N >w=} cH5loh'z 0 { SɿUrˬ!~D c=ϋV8>vK@rCLh?3zX,.mZ3bipI˧ |pq/C::rk:I{	f$Y4Ns<CplL$6)ͨ8W+p*̚vSTٵBG+29L$2BCȄ48DH   WĀB8nñK>K=H[=I-2|h4zN위u7wá- I^8I<7ϓ.8{#(q@K'
K
qh<#5 q+w{|U:Ĥt̄Q;-YHn S[LbQbs)F'j B8"D`&KMMd"qܓ12zhR>˦(~H=I{S=K@=wΏKhAtCHY1ŹU *
PE\1:#Y>q_*#{ҕ"J&Ch ̷VIFgt[cx0`6# eТ:/$]	(> M,1)EP؀u&zR`@0-XЇjDH #	X@ەw,
 4 3-<KHF*.MuP91:d%˄	Z.h'Ze,JJ{M?btTTVRMR`$)VȨ/JA)y9G-9U:UV#RSM6~0*%ǻ+%|u}MLܢXX%[7ad`UȦoXSZF]YEݝlq.Z4U	͸l	Ȑ3#`*pZ>%Rh:`uƩR?rpAvm ۟
$ڌۄG[$jX;F#Kx%BF=iԴ	ɍÝ}p9Gefc`ULa;#mIH|!>]#0˪ CtRZ/+IR$LALQknLML	r_ Lp_jAQJ"̓%	xe>vSg3H	bzR>VA&d`1aLU]&!H#h	8Zp/@5Rx썩uTGgݰ&pG\(ɄFV}w4/LpQ蘵9V7ND1F1{c	c?p@F.sFa1˟Xd/e13R0-PK7"?VK4M#Sy\ulܞG@CVe{Hu5L; KD4i")	 'mncqF.rsNFgY\ZLd%0Ha!Ї*ȃ<RU+SFښp S'h;-TVH81,L	j,bYC8	^Q8%qf0`≙LDH!;I:`"jL1fٖ	܎ꜭK6UءaRRZb$\`kJ4S=)6p 5PF(Hۚhb1[H(YZ8adv8՜i8V.QX@D8X0zlj&uRnk	cئmdF9BS>z	)O'PUU4$xQOSFj$l/hN*i4TTIbqlJpKAy`L@AɎ;؇iX6YjڄzmDWOG]b
֑q!΃*ͨ+an'+h)d)mr QSQ ohdF}/n@&1wlLHi0ci0H0Hi79"`d`up~RϔCV{cFtc)a>1g !#V(Up<辋n)wd'Pkນj0X&[s׵}h}Q*rlj;Z@Pw*aqbjxΜp	MiQ9>7yj%jXw7APB~ʫ\Lw|g̕-ϭݩЂ{nUjAOKwH.k.𷉸yqV_e\&Cm=*߰,܄oX.ǔb$ǔ(	s@sNDHmB@pն<{WeXKno?xr8
Hq 0jqƁlW'Έ$ 12NȸUHX/VU\~˘Ze,'NONHI&4ҨS=UFi<d(C>S\NAPĥRi&L-RWCf
E\BRtVحoɆ/"D4Di\}^Qt[Q%[hvh3kGp͈Uk/#vժYW2>-|8'rΟC.}:RBWI'މ?.XI/UŏcJA#@#Arp? B썳=_B JF!`yRNxG!9&y?8TN4M"
ǔ*MeĢ#M2#Zja<Pe!V5`"YՕ"YeG65S]\e"Tdir	aeXcicFaf%dz"i%Úk{Xcݖn{&mfw
pr4rꏥDv$=	wuv]>^y䵷ꭗkyI8A
A@.B<Ċ&dD,+	CFEpъNbE J&%U6č61OjM7"gF=I*@fNYr)"_IĨ-ҤT(ǖ[vV*6gfF)Zp<̄Ur'yVo`V5	XaUK3`)'=2%p~:]ܡŉ]wsw*ĥZ$8C)@0]w	p	ЪNҸBy
_j)̂ޟ	B^:+'AzCHT".^H$3zR,:9"MOHM5#QhxXÓ5#Wȕ+g\c?PHT$K*sg`	N<5*&0K4-jGm)x܆L_2 ') <D&d7nx#)[8a	`	=4[pkX4h(,#VQU:@h4#SNHqb1ڰpE$ :\

*kIhDO݃<>?*@I`im!	 
 EQ v	9HTLx\ZtH#Q#WM\y)`	TfzRXwɗ`3D69}Iw"R0~dDed/DDL|&4yLNpPL5᧴!8h!_.#n0ȉFż)0[R S)W|x rB61JyOpep/7L*T qiF
ZtvQaen|$H~Tȧ* ?ƣ+BnrAGRU'/}3$BEJ\z
O²FC4!8ąAR*_tdY	h!c$+j35xӥ}iLiEq;
Z:*ZTm]RRQ5sHuԠE*Jо!nMASX2(0N&TWaRJa|r] 2	STEwq{FENjk攺<~*E,#YBXy*B&/DwmErtJ'=N\u#엹tP[$ÂmcOY!}J$`N.5RFhwqNޡz6mӉdVy'3:6Р`{iT2!QV@D*Ne"
"'H67%<ݛte\@MXa49寁au/׆bOFVv(U*0HFE*q~X>n]Btd>qBb!a(͌8le׾cTΨȇB_yuN`ʣ(Õ)I.Ȗ;/_i*?O<zG2&1,I
"D!9OwjڢH*y~@
.B|(G[Q7@  @P	']ѧ)3loLC5]"qK}~rb׻M#5Q1>*\.U݉5$J$ 0χ.?ȚtTщBH$~h>)+;z:&IPy΂pѓ	M@LE+:hd:G{!fa&U6FqgIO\fUJ"ꤴC6_ѥ:mF9opJ>ՙP8$hP@( օM qǿN@TaRpٗcmMTWݱIHѝqu`@݃MNƤ@|	qyAAMGOX$}V)׼Xq0^*_9Ae*t?(ܙd__L8TҏDTGMf([4itO)2_eDf@ZTCH4YB%Td4kD 8UB`nAyO}Qސ*l ݔM
iDKy?Wr-E!Ww%X8 RF wX!}${xʋAMTF!-ً)*N}_M8U-5QmdF|3Q&[#N)H'm5_˼F5I++b;ؓUi.tET"5ƚ㉗vuL^]P[N鈛# {»I|cW!K$A$qA A')Ђ)XO_m#fU0N8F$`5A5&Gv.t!<%ZdIM"-h݅x#nI&|OC;EhݙTb&
 sev)B`lC7t7SrͲiv%QRP vʩ\&]#\g:\v] e%0Ȋ]LX(f,yDdJ^JGD	@$h2HkakĖтP,-lb!آF4)煠i\i]Vm$l\RЉ+^h%t7S9T ZURW6| yCQ`ᬩrpe (`2_jF@!AT>UC$E>޺KhIe=OΈZ
E=p-̂Cb娐
I2W<[Uf*lOO5ᖣFf&Prr~F7D9WFݚB)Yi0u
&+¸S*%J
lł}Lգ~$^LUhNCbħv[*B,xmIf!iה=Yv`!28!	Vٵ=?^LdWą^%kiEuVhP+v~Z[w~ɧk۾ecz؅Sz4U6h!N"!ȭHS!mzG,B8,Ļr*Ȳ-fdDfD9biB`I܅Jv\SWxƜFKb"&DN
5OR5(sNkNVt aj-vvV+J0GN)yoz,pmXSGfVǳVHߖALLL>RDHB*ml(_1N!DBZ!0jfLߖ[8IT4BŸmK)" F"(M''.'_`-,
OD;Fkzi瘚okqЎpBf&gU%-OpNGB*d
(ϿDF\-hNi$Q6܌Єj>GܬHijb,#pnVqŵf[l( `bͰΤ(- {kQa0q%R/"TP+Fv*B1l23t1C?U5c3 V5~AA^Yz%Ah(G).nK8Kt*9`aO
B)ԧ"&/>bňКߐ_	t$<(&0:).oVkfsך%2V+k27sOi/C? >/A6Cosvs!78V3+TczAX =*H2^H&	^ǝlRh.nކqZmm-I! mITv_corQIJ&4pݴtvj)=tpe7l  B? ; DAR8a8GuTo<Z5+NVkm!n!shpd}sNTCDrpEFuJ"h&(\LR n",ehuW2ntgClk+ۖ,"ehVj%k8\~47\F$1    0?(DSCU7q./AzRBLH@TSouh^ohZ#xK?kFnv$͞\}_$H*mƈP<W$v'z-R	T"RCTeI5m|"HxKO-6IWЖx=@!  = ;$z%`P7xFːq9TيÆq8^\A^yh<q|9P,Rpof"7AHPd&*#zyx#;3m+\EdT*F0m-;E sFhkēs|R:R6 , ȯC7܀=d :C:Ը?HB$:"!"q/A}s/TSR/B`D|U!%Ǖ;GpҴ=*R;(ђ8åDVilM*81!ڢ09/=x!c-aDsW,J_c|`fczPN|vHF(  ظ2Sz4cKs@5`4WB R{TKaJǯz49Ht<=XgydC@uA;*?ww;AvK@85
$F2⤑&*1f%NtVh5j)!'1xeKA4j(9qh?x0m*t"x(<U)E<toTGԂ2}Gͪԩg3aJv!tIS]w{Ң [pa&ecǏ!G<r93 3qlj߷, PDgo?IYy-Q98VIG>]Vױg%BhY+81z{HÈ*|9CW0\BV1"VA
/l変h*F'jqz
윘+B'Љ8R.ϊ%d&piI+[䑙f2䖌niȉ 'ZDLRwJ-jR$**q6BiEd}FJL<-ad+1,Sк4/zKTEMt^&&S&#Z.ØJm7ؙDL},IhgZ
R:SQ: {;#o0'RF\gC>dϾD'p*0.EjYeG[h)#lPADr,"E C
npġJtyiY]+h$n҈L	ɘ0'X¨/2,EBy)/1D"Un\s"xȂe9Jk|&@5L<mB˞FZ,O `fZ%IT{`GNcm"K0Aƈ;h»+O5Y>32sEI!
n5ЕG\pZ(UY
6:qL) 
'x'\Rf1D$وn
G&Zc-|Ej4RK%g^~/ZM6M&huBZ?a	j_4QjQ2aT& 010?Њ@ow?8b؍8a7^7A0U:y#fA=\RnY~V.t]bH-TAaÈ)h!+(Lp%;+^B6'#"RO
' 	Vq,l,ܵRzWjx&ECif*&wEc"nZiըYǿ$h`d2ȥNS>)SjM|iUp7v(A+3L
6	NY8d~LQyNxY(1|\D(Gqs\1:.]@]F򱮈ł+nЄ쨢D:$Q	'U;؂!$ 	F6YȼI$e&,JT aI&[-A{5%7rTS0݂'=ӘB
#u%$ Ob;aO
.T 8k)NrV*
!64yM%[	 ustPh qQ3E.8
V#ӉBpVa+''@IC0uD[F2*$ӝCRAbFTQ1xOe9b2UCPuI?2d0*,'5UgfY[ˢPC)Z42J[ _×cE57P  l%?3B&  .P#
M*ВED!jU ~SbɆȍo
#(Fj#@W*\sttW u)5GZa=FhVzKxai9)&|_wP9"OG"R#4+
&K!lI}RB1,3}u*EEGZ?k]j{^dWs(YBSG2` {#UNơqd\9[H89
pmʑ .ٝ,|  Έ烐k5f~[V]qh/m"}KG(b
=T^ܙ	@"|ݦ'Y!rF~z9?LC H5*O
e`qyyذ|Uяg)KyK\y M87vo9K`1LD@9QboIBǇ+ľfH3}
[+G<@j8ε5"(yCz1rtH:q!AOi<r<6-!,VɍiH	)J lJ(hDh*cȡ(ή hNJ !j	%DRon  h@ LAjKTo xڄ\0#Af/cp:>j
]
Ш(J@V>&Jи /梋[-#)#~xDG!@

d*/h"ʫ2)	v"(DX;<Z,2QaJ1hhFôm"p&}N ˊԤ(naD|ܪ\,D.BPPZ"   5D&&#6R~$o@ !o	ç*P%L~p~Aȹ~й&1>
#P`#AP:
q&a򁼺K$ErbP.	 QD8)Iv1NA Y&F$lNlIYBh4P"
OPLW	  < RD-%SpA^8L>k2n .ZϪQaZq  (@ 2Du<Ab!x.,2FT$#aK8Ta`I=VRJ*	 j'*d2FI¬
A&h$N$HvKH$.na'MHi#2A6Bna!7tc5vb h 3|/4ơh0*%bb#r"hT8#pI23jx!Fefp$GȁJ\#pb"W6<b\	!.7>Ϙ7e	*k4'n2}n)b*() -d٢&~Q%jb	Qj0tlT)ʩN ` RKmAIukB+Gqr<@.sVn#`xJe.03ZEMFX
	Y	8#MXPT5JI	QI]% b$G&FA2#tV	z"´QjgP! )OL9!;e&O[fp1<5%!"cH_Ŏxa:OVaNE`b@ Tip
 ͨN=H:uUāe{cNE33X]4!̌aG`ԨYaztf!Fʏ5hu.I]"@z p1#T
(A"R!F8[&}aefǕh&nBJ2NWL='<i+tFS,+e $8-fm1J1nO:(U>bCln
@@iOWK3YjàkKa{$vTtz<px$F|q'lq5gAEƏF %tdv|cn	!Dd,8;$+p;s#P_#bb)D-VŊt-2wNpA+jr2CZ!7xRyvx"!5DN)#wG
~vmhA41}	Pn2M4zOМX@wɁbtkɘ|A
~!n"f
WIc'U71 Bh3E"+rDHK\2fFƩDuR2(PM"LOD*ԢSvsAbU*[*[P?WP>AW!52!a v PZ4.!^R!GD`X-`g@8V6X23j$lԑ&"olv[3"[xCrJ!j-#"&I&g	 1tL5:&91a-.qcq?q+p~Jeg(T9$vp"&H2-fRYb qc`XaHAD[:tPWE2Ʌؘ-Q|w
<F	Yb#rblTSCF\aT3G@{a,JA!GAp^1y^$91$ټj(q;)bY3OrU( 6sӂ%!xv~H9@0 Rv=|jy%"eݙ
 ס(x58 Vz
(CrZWZC&	R$}9I7{b'bjlF(m&Ti"H""e]UzTaoc*%r{  cӂb}sK|OΧeH!<%aAPnػ\aAAhnNZj%8:⛭@=Zs}ϝW<Ǩ
!-
1@3¿
<r{
L!TC^j#%wëL:]	4ZJ/Rsfl9-d%	1{%Ҕ	{N+0rr<"r\)5<݃x #A?۠u=5\-Aۙ;zjCA q
з%оh\n><[z2h"|$
Vq"7""HN)maD	f6'"&.^oƴ,DIT9.X%D: sd		qч;<GýJ'c'b  ?]4t#5m!1Axk
@D ~\hD$9Z<?
#$  O^[w<N6GGR<F8	L1,F|~"$JxO>y^]zv^MK|Rb Vv:m3fY&1A~)p`V*UR g t*\ȰBsxfa_Hb\C|T¥KW(S\F%ԗě8yqG#Ңիh/WlYЊLO''j*UjVV'MfyGk'<r֬>}ꤑ#GauRJ*	GbPQ4	o5 ADHf15j2RvoMcoʴhQ?r-"j͛vmHa)s復cZn͟k(;opOӫ_oME
0a`톿o	{c/c΁R8NAI,u!\LAJ2]TaSWr>@1d
QF0$\x83J)Od^VM88f=bVVOS-MՈv_vCX#MUf0t
6hؖ"wKwV"䦝Զ&hnm&,"uaꝦe꫰d	/s7$1X pc @`?iς]b)(Q`/NQK"3
#R*F'4%B\V$g]aieVJU
W_
%X^5)H#kمW)ѪI/KExT!F<BB<0'$ yeZjmdҨ)<X:vnZ50ϡVr^jdm	M/p c1_
C뵣NCsO5CdXEIVKZTPǋN=wo}WbTQW'CH";qb+WXTb|:HY:a-	uW^{a#7Wc2^]T`h</r^kH]hҪԦ?qSC !@RAZ)ym@'8~Ӟ<Π sxCوBڰ0$DJR`k<0@ G[ C!9.Xrj8WC!Dǋt	IGV׋+|b:Ɓ=VHV+DHC0zq46l'lH'c*&#U3>qߟDcǜ:D@ *-m(L=7ƪҏb9)aA
Fh%9HaԨAB.~d Cr(yAfcYBQGDx1o-dWC^ .1Q"󪗽+P(WTF.l):/P09مX!Im,c]>vlzt`l4!0DdeeL;E<bz,=ҨJJijsf9!\DMXjZa @6b~`CƢóX~CH5Z8uRvCkyĄ
`DHD~*"RPAvxqQ4^ŉD^NDlQcy||2Rޖ"[!|FT3
`ZĦ8TzKM1jnRuT&NuȤģQ/` $vgYB?o`b
&IL0uH+t)֝u!c	Da.EX_v,hu8%;	W4O 2i'9OcxəTP'pYBA
am&٩'hY50YJOջ)	J}!ڐ~ʽva<$!ea<f0^Z07*fi cd
m;.,OXt"x_1ph.J!<R"!sBX+]A$k&P(*3$)Ë⽬")b&3"4l6ľC<B8HOS)ުnSNC(r!j` |Ei2 G- `  Uh+BMG+8heX$ 䙖=Dc
Mn,)9z!sdʆvgqbcΊ<W$w{+и#2؈4h_LoMMpH{1 xsOl#B6"ja3p|ԟp0I:0bǬ_97y	~#*< `IF
N@~BXA*$	,+0icWflr
.CF1Ptl7xS0{;XcuG	ٳg[8VUq&'Y=*[;gS2':^B"UE{WsgqTggW#r{^J
P`hɗhi2;0&tLPCj; br3m) @p 0@RaNf.93QvQ@Pզ7bq7Cm/q?2#;J02<ҋ$1O$ <nD:B"q2p/
BB'8sgu5{ǏLu@	Th^'MgiU+`m#%ab `4AB`p 0	B) a !`%rv
Ȁ "a (mSOmP:m0F0d3%Z%cpUxL1}Ex"'8qy*V\/5\Q32Y(
JqpTXq)TُWJxVȀvؐ}6o7sd	V΄_`U(Wfp` T 	 	X4	co+"S D
|'4(m*HP9YX%==d!0kEO!< NJI:▬m@t:(Np[M0 3H
'Ryq¥e!eB73ѥpIrqxwQH*Ac#)y}1  st৛-f0P B4	j@s `rEUٰ ~Q 4UyXr9/Q+'Di,2l}*2F'F$Z9;00[2;àIw%pH@Z =	G z2 % '1F)ZХ)Rb&R
5pvI
	aR5STO
UKc	v_ '0'`BApb,p pLɴL4	  0,7  
0	qX:	ZГ)!FbN`2RL4FWNApN00OL2V!n FmVb=bBzc'Vhy8hHy_aS9籄e*W%5S^b^1jYp
đؔ
,@`, k  A  g1 ŰVmV\`@r	&L@gU3Y+7yN'6jN7F2)h#?#6V2@ŸyA0
ϣmjHRye.5RM0w
Qx2hj1hbIj?Fڏ@MJף Kx@P
+U	5P B9	Q@``-`Wp`*!7C	QBv%Le{h2Vl+hDm^me0$%ZoiS`vPHP fM`G[@)2ژIf	|f*}4rE:W {p>%	M&>x@i
( H+T4p
^  +[[0摓$u-|NЀ
3O<\|O]@MԳ%Z';	aɣx\+6c]ҿwyf\u	eObzlTxWД`$ӃᔐqdI0qTZ4JeUL"4u` EB͉hf@p&"B\BlLK|	:50
KlxMaq|F'҂kΓEF<VP_#/`q!%8
qQzyxd!=$4Pݔ[HQz4q;rSaEpG?KP4ƱJ]W5G,` 
5݈Ԉ5i*I\8m@%-9i@채1P@N朼2˼-~-<UdY䠽 7Lp[gm$`lS
.%xM`%c\33ql'de1	@ H@ۢ3Gwy(	L|^+` K	`f}m8Cpr@ B.H+  	pqT	7Y+7
u 3OSim:V<XT
<#N⯺0`<y:2Kg]
"L`F~"t>a	>EPn4gpQnVcTUd qX>fa`U4^*qЂΝG1Hp- 4ᗝNX]OB@/LE6	~uKR+А}3`IM%M;2_^@x!VRɀ(-M
zf3ٞo>]qKL_^ܱ |A`]swnKo]	Aֵ4&!kqĪ ֿ'5uep[Af`
c
;2s>~N -D+>Zd/-P'F6zҾ-\(WJ(3>HDޭyT}{T:-*A":g,r3  y HO'R;hP@Nxŋ#O(NKPFeJU°YfM.Uϟ`\H++z-eSڢZ|)qyJɋ"[.qOrbŊZUg%+UZN<[ItP*Ԥ#M9A숯[+he,Djt$F8SZiѢj e=߷W_wx&H2mb9&E&RA޽9+_ys怌b^  Xn6`g=4@qR#qJUHJhU';iT#Fp$! ,1cHdl'i(kR)"*©򊜔BɫPB YʚKI*뉷(_qYJlQJy&ii\LBiR4;ПB4GKOA159Cٍ7E9G!Eκnxn[μMVLPA{l F}a @I?_3`$R JS9QE{Z0CaE؉)t)Ъߛ}*ȦvUIRɳ8+宪Bɉ,ĥ/8**ɉTaM5QS{	'LQ*YgqIxB:-?ӳ܉AClj^DCVMO3:jbW^u[a%o¹vvP }q aQg[qnlw vڰAB#qƖJBLr"v'`xl!!f+L-.m
yRI1R乼 d(O	\=iNp~1';*g);Cқ"0N7=k
cUЀI"Ɯ伭;ӏ%X.#P/  >d!*4y#Q'R!h3%Q R=YAD}.U:݄G*+vL)t.JU Ȭd(ScU~+,X20
4^[ PQjuvbxl'lMC*N.bT-&Q'"HЂh "!e%={A%#P!_C (-k$qP8ҳ#4Mx0_H>pQ!Ta[4-Y(
G}l-lȴ7
t"XR kBG$#d}eJ|laFQd"F|f6arƦwL*zT2:<O3%q`$kCQ~| 	!;`"8=\I4ZK]$ފ% C4/y`XYMH>n#
Z~H\wXJbr*{Z˖Q/l";gr؞c.B!es"!Nþ,")p0q^d&zz"rd(aYYmF}*Le]GCY ?֠KV-
Mxe!EB4kzIxx,BG0a 2QlcY^nm)P]h{Քc$[B2KURAg kyХmQ=|=^:!zXmi9F	GD&t&$j:Mmj@kPՔP!!JXAǓը/vdr}+ U`+pC愶#$	q攫u!䑪ѷbY cHv%<j9YV6ެ{K[rJ2GF.HvB^j_$ʄzfc>̄tBv,MhsPTɡ#;)-3'sՀ2`|]:v*F^낲 YF8 `#xtUB@67SUpTQb@& KWFjAo-Y2cG˽qw(Dd8bCZ5j4 )E$
(^'-H)ҬfG	ejL*Yя"g6ֺ6pGxVjWNxS%7p\	haU
PVaq8"М&l9B"E*O=6℔,=;\B1!CI3WLn%#H-bt`Q0	К-7A*20Y06R*<఍ȟs8XCU1ە+{='X% aHkk8#'Y2\IQ#:^x1#
!0+K#ki#!' o{* ВRP6(I$FP˛-*FQy+C&28DVA[.Q )=COq8CA$TXB:/X%b'Ƅ1   w7˹A15+K,#{3?cG$q:-ZYxn3R#brx-:9\Dq$sŲXE72xX$Ӹ`9CM.a<C(LЩqL/(D[JTDc@oܽvHpo (!pS@t֐;awtQ:s$
˹o	C=l>L@ұ.?-c{,!ș32xcI@4θM<8<j*0`[Hơ$*TFHXJi,%8/i$=	'|e1h(3liA5z|ȡ+[;<@1*?g3]	i3\(J#-qX9+I,|`I+	ĸỄ0Eqyp.Hx(-ۘ3ʮ{ س$ENQXXJR4<Ӊ ak>ӖrBNJUP#p18}PL]AͮXȧ'aR
7ΐH≋_ɔ`3Rpj8B+ڔɋ+طZ3J\A(A.ٸdc0-$mƑCSokSOmz8T9LL][(7|.JT1QT6n*@R͋2ո[3W\Mh=7$"ꢩeR+(dYd-'eJ1Q֭lN2ekZ04 VS:Zͱv8e`ں:R DɄ(XD;H%HI֚D#"(*IQGp#$lF"[8YY=4= H@UЇTKJYZO٨LZ8iYMhB̀XGUqy]}\7SV#9_0]+1ɼ[\ƛ=ȀK\INm,qX]`F<<-\jpA&z;|.AJɔjMZ]Ȅ^}ZܻA  f^&&0S@1X&e!1Xh[a#Rtr?B@@.]%FĩP'.ϔ86Q-\/3I<Й?APXa\EtPJrFY(alB,%^@jd"LjD^aJyH&>f9:S?]G^"yZꇊI 8_Ȋ˓LЉ!FpݿHCo`|*V\U͒8?3&D)EZļ-m۪ܽBNP͍<D*ӉKcݟMg
 CH#1嵠"QBEfrCk5_yQx+Xhr Wj1"~eлXMH]D
iE8)$c@2%3Q&E\.Bh7ÐD Nh9D&)6I;*=*HXBP^)Y#3Z+h=LxքHO 	0xOaqpJtxh@!:MHAjP+fAF\<4>Mk0e}8|.Yd(;3^z<);'v28d=@&\6VkQf$t
Q!pƦ<ơҼ8ƔfVC(&g֖VORR7兴U]ڄc56 ^LnhsSBN`Bj
SꋒQf |I_<r_f`	];a箈DɸɅZ܏[I^E"DQl6}FBW\\ F+#ф:lCt*؎i:3NaNAd[_Џ`],gbSZ&覩n׉)^lOU8V0 fc	dAd}X;C-Efk*tXJ1#s|6\-h`uk3}͑HnUĀ$u3ݵ Bp{P]EǆRr|/YƔ{ =b_0#I4ZvhVq=XVj%TmT؇Q.PSh
8] +v5GZKj:Y[ĉv؇dpT0 f+&G	ptsȧsF+2tr76#
☊$'PP(ΘH4M`.ܺ}ISDPLwM໑b&<31ܱ6XI6k -xH.\]KRIpA4T0U2LXiibQ!gG	eЇ6%zvȆK ,h 
2laq"N@ߨ{?q7׏T6 Sy)FBdeg2duVRR}J*qqYe+ذhHدj{hm9U.^'9W᯾~&P/O"iFw9'FMmĤ,dMJoՔ5;jDx _'\#G;6AKwԡE21ЭC374C-|QCy}|~,ֲad>~-W0"7 < @01?<OJSKja*@└8$BIsыd5F)2$0b2ƴ=B5SA !3TI-W(V[`Z]ٖ5Wc~,⅚_v1F`w*"\݅fOBgFh-4KAk	cdmDhM8achvKC?\A"ݙgH56\yhw؁x1"A[{
"8 &TS<\}t7#		A)4i#>$NY,fUD-(eDcJB
(Zp  p#C6-%uВt_|1TO+@Xe|i\m,$W_եXTyg	}Yvs-Hk&)VPwքBJassnj$v;Ь`",Gzrk>8FB25_Ddȡ%Dx ;fp!˻4008P
2J ߾Ӯ'M 0`9`RI65\`jJVxZd4f/-{/Vş]YN<FPl>52dSZ[BfAPa
4VMW&4m1V~P
vU+ڛwwCqρztrA?am"[Ԙ@ADȫ<F{AB*7}U*qD&I@PR#U| _}CFq	`\BJ
3R2#A/-+;K7>2)D(Yb1CXh~"#>)TghtéTzʩɆ4ɥЦj4m0#8
!\xBWf1놉c?v8,*Y"H2A`釷X#FDՎT,LH
`@USp/7u\5VC3WN)= lwcǦR$R$d>uZdfIgD* MMr\ m+$aFrijO8$cFPꖑP)XֆT]*FU8pGm(3ou\y<"ށMa݃4!𡸁ӆ@SaQ΁ `lhG!Lզ%wCI@C0hB02Av\CFIb"cu2i[h
3Ԉt٥RT"~q:B@O$2%}`2QUiM#Ugz_DM09R*Dՠ+:yY /_5,c-b;uΆڑV]lgQܙos07`o 0b@Rr(#ãWdK0bq$WA0j%-.U
Ӓ$Z_-cR2Tg@Г	z<
g@ʂVDِYH4OȚVC5dۤ0RdĮJZcQ! b`B;8o5y]: M@Cfuv¹# S2ܨ,%ꛢf4 E,ra>q\cWH8g,x3Y>=;2,dT4MSI  Y۟&w:JZ]l)H7(<XmE:5Ag9~ծse`G؊]Iae֟s 1!t 0m#9n
TeܱHDTwTaX>̰r]
.@5oxpnIjy?5ژFF%Y0SpVեe:/%*!FĮ<fxB=:ߴs[s 9~y|#_ֵc> $<ZrlA,$`X1i*<D%@t=̀¾GDQBHޔ$Rya^ZԖ0\A\Ix
ƅ)\JXmWqMdޜpP^yք=]_1eBr"sTSDJklӵ,wD]ӳyݵď  C?`L0$@p\2ŎMI 8Y>LB$*,YοAR>qMInWMVtIW-]J΢ן\+tXB	*(՜d`E1F*<ցۖ8U<Z&LazՁq	(e-D= $Ԁ?9=:D ^ɖl9J` dCø;$H+?KhJDIqs
Lɠ"̨b˼" b^ImPCM@xNPb
0-~A##0A*hNAe!P!ޔ8zG0`A9,jU]V$A(8C	L)]!KV	\yCQp5Wa hpdHEIZ`XΜ`šdXR,柘KRMͨHp(ԆlMC$!`a8#5X4Qǖ@:ZGJ7ٜ9U,A*!uQ5\އ=Alۃ|?A̃h]pQIf[G%  rB?XNAf2ēDIC/CA"-WD\fZ^^ho-	F5XL$QeҟQndI/iRflUYZΕ^kxPlUe&99 Z[@8}#]%N)X'״ggA	 @}?J @dHEpp @C1[$(1I&2I$-׊zj(OblW{ץh0UJ .m,$U]܌d|JBWuDF2r`m-p?9ۚ"Kg_Ebe"*BD@  \$Xm'nI%R?\5(?Lab^=NIH1(AC/ŊOiwZbbzٗ,?k^_Dy]J{(>vJYIkH~!/PNQ"ha)P҉q!XEyc["L8!<<@>6<(: TFdu#NdD5d)x^?V	mQiDĎgzBDJEhdANMLC˾.Rm^-IޏmIn@pzYQтPxZ#F0H3>3^L#\z}m86뛪@''5ܘU% @l %.DЎ.8GM1NeajVN(nALE2EhC*֔IEnC9nX,lĮ1c{# /PV/@HM#PkdB'!UC\~Z -ѩ6&#ߠ-bGD>5ΡrNBDtAɑ ,T$)2%r	A|erHaCMTB"~j.JrWWxO
k{	J-rM&F8d],#ܒU}ڤ0A]tjkNX]1&pӮq7oZ*V~@BfDHq27,<aX,:(f^@LGDCĒAnEZPɤ2X,pbϰz`4].
-a!tT'2k0?e/؈eD4/s-B))JdaZ_gd8ABg1G<<+<#cN"<A(9mdJ(fl-,A0CXhDx̖	zb_ebP]o6p&mb2,3<*ֶ[mmYXS7"u5'614a*D55518m9ۇm5^:<H sNf<H*:C% jEΎ@Jg~'$ d9jAa`
{	kĪlW@dץ̍̜^7MΉt^]-8g/+"Pl h;JtYUSR]'t-\lK5D]Rˌ?]1b_YC83M9<ouAT Dh1*/?=0K47$'FpBYt_wI`w2\L')w)lɬ^q-^g*@8-HgPxZI
4yx-B -,D%vfж[s|a|XxwcyX<o8CD2$BQp?ٯK;$@-9?K9Ct sB b	`Cl}~ +Cjf8Ж
l	wR#©rLP^_h-6!/I:-bFliy`B9)5o?|s':r8#ĵi >hB%>bDC2<T$ηgMQArHBʈRo`Jx&cL~~Ctx=-&ϐ؏JٰA:\)-r]A ]iK
A-h:f3VP"|+3Gts|{X5gV]vwOA"L;@؃X*OB]L4y8uJ,DE¨#Ěgxt)XBqZϞc?٨r@UXႡ/cxk1Qi1+_
,Ez
~,SFD$GM3x-C6dxȟ*-!ȱ!}"h<Z?Cxa,0(NC5zh6`H]?	AzkV+am>K<`('UT/H#Z;T(8uW|uqbŋ[ale>+#52Y94h'y- 9ӧk9WɬN=ɓխođF99&p=Iă'oD%	g%HG*.E !U
>^z2 D$J!9-1~	ǨpyP  (<Шy X *xG  8]JQ{0ǟ^DFQ+KGQ+R(UI2r $,˸RJ%2]'6j6}k-lM4ѷY8{ \	FC.P.˃Π&ioJJș$C.՗Y$WTxq!kɦǟy ǀ$pfDb PEgj,Deٖ!aXR l{Z."JUFJʇ~tܒJ/Պ;KPicdnΉRt_"ŋ??	F69QI	NRnRGjnM)@C@]_pU QCH(V01#iKUgW^"⥒*h!m}oZ}ᬶiZZmˠtrHKwr]_3*CҊ{~Q8_UsMctӉw3R>ncJo|:/n8?+eݠMӟ#1d4[J1"LNr%Ʇɐk!soZ{;IƊ)0o	dя0a hY)mC-%\8`P^)![T0a87%`ReJ6b|Q5ወ2f=Ղwӟ<'Xϊ"RV-*eaV8AllཁXG0~N;	&a9A|L&JAzQd4A|G2fJ`adIW2ȼrG!$x\FBv͒JAUNF+$7kM~D0wI:Nb<[b3+~Qz%4B8@C=yRjĨ}g'B5TcE5ǐCF+E$]sЯp"×7)b17Uz'[%h
'(څ#*)[e#I`G+"\S㘌911O\8,ʣ؜j|΃c~*͂Ejg<OX<ynǋYlFivrD=$.
~Dk5G@(Cp~ }éA
b)#ڠbPRnDR/G!a^F8?J 2guD51S=JItB:Nq[{Y⫿TT3Nx}'zI([Ȩ,gK,=fgK?H+htlCAW$HBx D$z7	 4{@uQ",Cq\e+u@$?őr$ (;GM"٩WaTׁXsf+E։Fu".~VƉcgs?%1Kie<3qE2*̀g31чpb	M ˑC.2<b uz}*h6\Z
#ָ-s<9	T"7K/*  c,m(`'gY]iuYwH=і9e@1`;+<ѽks5%k"kd͋	>s(4ysx`;)8]G`vp~AiN5qT44~Cf} `+ IP͂>l#zam=ୠ;+wD`/&%&[Vi{{[zQCskI1e0d<,Μ}
BPWhNoRܜ.~Ch.2fX$cFRY}#O3.L!4y>#<~a
>
=]l#2HKL[p1ϋ v| ]d1075ȧCܹE"@!/{a.JDG_݇ۧtv]Ux^+
iZgM4f"xDn0-8ĆB	tdE&ZJ#X)"p#T,ze-|dR@b2 `).,oGnl
"dzG qji£.dYJ-_RЇrk
B
Ͻ< <fA83n`(e!.4z n4'ypd*f>LPi>Li!j@f3Ae^@(*P!ZᵮDAơv=^"	+ɦ.׈g+ Q(ڐ1z!/êD'KMH q  1f )4jL 4LxN&*'AcxBSfc;7 
le%fT  E(,j( !TNơ0)|JH. r\rd*b΂"
ϑs&ci$NPq/dǼuN\cc9,4m? %fF̟<@%:B@D%D@Bt3GJ%Ob~!t&8r TTAȜ(8v\-/pI"7oplA-yHuOMiʌ3rObPܬu#K Se3!h!=P"5)M0!~h0A R>~
bC;BP~)z'db0x*܊p8ǁB> 09< (R`+/+}JI3"B*pDm+<<DhSMm QbP 0{.eM,;԰>&!NAoF"j9:!JT@iZ
LrgCSWf5I]j-˒ʈVkHj50	,gRD/T!tR+ ZR(.Lǳt1HN.u[Ug4349OQFP'AP!3f$OB{"!ShD H@b2TEgI0/T! ʐU( Y&
bmpUeB'p(N4.R .H>
 |bsZd=sU.N	pOtPGNuQ+8n	@YBl@>!C/ua$@L%$a~d-yHpd"^'XeI?-ue/^U$J'ڂ(fp+@arL˰k1Pg"=4 Ca2ޤvMQR_5kBP/l745vg{ *D	dk&jDg} %E6qHP/``'sHT!`[!0׀*\Xltucu^-Ƞo <hahS0"v)k[5<Nap?ĭ6O37k	y!1A7vf""TN j}`#f~wO洂I]jI(ڔIdnbH!r-lM_d*j]BqBEB
8+vn2MbBC70|J# h/Y3^#3n 3PvQ!-q_0/c`" P#VVn@SILXr~RXm@d"]bt(,.Kᘛ--(F)BG-&A0`Cv)Mqi٫> OOCC9wqNϨ  ׿uUyX,:8GB!Tc|5eBA&A}vŎ#nKsmII8XbH vb d/̣vC
(l*Z<<Bi׌<3Yko?Z4	XyȡyWɔu65QV0nhN4A&b_"5!֑2!!`-:-8G_l(J`~yYU9e.ւ:SFva<uvNZ4P>72gNЃ㯫_/ŭ: blQgs٤H3T> VбgΗUOmj7EUʒڅI@/f[D n
aRʮ,et^ġ+-ab:EṟҾë[:l7wִLxd3B W@]cU{Nc d	nae` h*OffAٲ` -F!4V!aƅj[l|e-|0fHtυBقE9!pUǬ9DLwDNjC3+u ]4#TGpҖc#+A=$MK6r~dsg!\(S|-0q^ΐIrr(C&a:Iύq$9lVX"?$Yf tAbzq[śpx9NM:t!}NRL7:y5l|ƍRSA=Ak~aQ(A."Ľ(Gff)d@4`"=*]PG$jįѢo2ΎWѕ.Sx5t^\a(}>ͤ4%ᥛ5i,!gN7gT A%l=a6Q<4G$L
 4}XCX=*Yqbކ<w<0ȹԂ煂ƅn.Am^12	HjEcq?l.#?>*A{^ؖɢQ1N2eVVCx@
J!d  Bv̸0	B8ӽ)1\?xQE`̟8UB|	3̙4kڌ_0,*#$y߷JTߤR&ϖ֭\KرdkrdVB'^ʖ}-Y'H.Zh*eW\^gi͒{.Z9rđɎdmTmd4rs"٭#'	qEXȑz6_	Aʄ<yrL.ҭrM=rk\Z upPUShtI#yq6Y
Pv9H`^(FBs{W10<8SV]BaV>_i8mXŋYbmceO)tXDYee֤e}vVld5rngXc?4o4?V|O5i	tҝ?P"hGhH
'	35=}H$N!tQ0e?܀7j4Q^
0 R"M$Z.(8BqZQk(moҬXBiLjf?K^^ylb6rBM|ڐOkV^iYH;:Ҧo"-ݒdq^ݡ4#Bd U78^QQ>gr!Rh;s @Op|3JLhbF+RKk;V]QWΒ8y/aږ5E-_vmۤ-Sb)\^9lM3ctO$8#ք֥hΝABqJ!bLzr$eI`3=
RHà
 L c NG|5ztztGT*L?(p<7+ẗX$DN-pGu|O)6 ItR5x]_4Rn5{992~%!<09頑AEaaXHwqYd	LxȤi  4.cRM&ȭ3j@| ?ŜMBCbaHʷu/}cXRدVJ?!La# Vh)FaT%SM%-ůci%-OkbKH2΄0CpLNC5^1k@hJ <5b!"4DTR=̌U2dvջQP!ad<gԊF~	; %AO,X5_4΁Kye68jP^	Jn9cg`ǜ<@uGBKB@Ӂ*đdj6y "eiq{ aT1)"04o@A%b:JtWCƖcYa$1e{HZrysr:hݜJ],DKji2%KQEa1,S@~pw.ZWq 		5!t?A*h"%Umuv@}F_. %b@ 5+և.RGʹcJ7f6r]z5!T%J/i/XB%1i~%C7)өNBC8!UNG,l;l\<|C=8pM{x{-rΦ'4 P!-f<D@PÖ啫Bw9O1YziKb>75p9As!GQK+^(5se##*,b$΄TSB٥ WE{`3q*oTȼxbXBC?1 @^;0,`|117FkS|֤ׄmgT-<u6	"ّ`zk!hqsRC:Y`Tiɵ'5B~?FMT"W)2]o>^@ES ⓠ#mH.7o PobmUrE=d_Գj;e:ڦj!1(ݭ<[c`0"}dpȋM!<DJ-3݇C<TgPơ4Dmd*!L]{˩|Z3t唟85x@(1 ,n@e_TT6\7kg8$GeㄯrY02jhB-1JSu0KoZӜ=#0Ac".SWOF6^bʋ81r	MTyx7	A)YU 0RqE bE\Wq"rNA'WQ/IgfӢW56ߖ__wvWwH1|բXEݲ$yQ5Q	q8Iw3J%&@iס1Zg(&<
yߠW	@)=qUvTU5TRs	Q4A?s)
 D:<  
pPCt>WXawf0RVDOB{$X,%.X7A|R%6xoI5-qYR}pbJe.xbs30 pRMq;54$]mP 
2k)C+	R3a	|*ڃz9ry
aT zh@FrbF{|m~"rjAn/XXor&%vrPJ9}#R'p1RJiQ7vc!%S=.ㅸ"!H @*'pLkBU;+	 + 2	VQOD<33	ݔ*'b_{qNmfQO!fWn$m`Q[sp!Z&qBiL8s~w2*U yM2
,2+Kt  ^`)C)[E `VQM*ЁKz	ZbnnA5RnYr9qQt\9^y|cɃ!"0}&Ґc 3sw	ahr3&U!G4G3kAc>ŗ(` jTՆ¤pW6
9`3<cW
c'zQg6rv?88hxcY-5vvJ$97`'/5y9~	LC+?@`wb2)(yWX e$U"s  AVJ!T*$2nzFf6OX`QҢ?`=(oh}9&KhKui0pPx2=K9cASљ"G bgP
 ` iq2\zV:G<	*bMU@$Tgd>zg#fD{oS5Ex7|!{/^ɏ^QJsel"1b
		3QcwoWj:!!3s0 P 
٬2j 	 8ʃvVy7p&$F>dB=Xt@$}[VH{tp#p;9D:&Fj%Mz

,93$b	69eSyQ7ո5tNUfPQx@	Kb3d\0^^j6VeeZvѩ|A{pqcd7x;K%vU2Q}r!${w骲jF^+w +
ySjl@g{ K>c2	"6 0cp@B	{VWl0I&*WtաXf*Omd-ɫ5#<wϹJf1JaԝW##rW;Hɦ=2QEk   !;DLcTڇf{,#ƻt(ubB'|)ܯ+/Z-ʼC@	Z+)Q8C	!S.CEPi`S|;qr
E߅LS1Ug `	 4XsNIIf?2OI"re16~Fy&M"?xnYJR 	qTC3t&Wx[eP#N˳*UC|!]pDq
D yᾅ+Dvx^n,^mt^-X~|zޜ<HRr,PY(KF5:"4'=k ٰ E;жsE*0:yE :r&: 5ḓict02ʜulJRfM0fz\li!!Dl<mp*c WS)N  @*YɪҺشЛL M%Pj| >	qضqR? |ؔAj˃}#qq=r	p؁1+q8S	
P$chPפJ֮RT%30`
p՚rs=8sCB҉(**`>vI"+#~]I
q(ɣe$Q6wgPRn*p   8'D+<ۨYCższ^Opt0E-~->-̩}aI<(Pi"}N:GeTSB=3n P٨R$+0 XK E`N` 24`  =md"s-(Zz9b"Le` ҁ82|K5l>^4l{(a	 PASx:cR@J<8; :c`NDPg~n   ><	/qAϞU6Oo.+m{0BM^!,8q")-7qU0KB4"O(Q O<s͈KA2LgC_/+k~B03k12ү"|r/-c!WpNZ"Cϰ7ȓɠMMl
h=4*jEZ2lyPp50r<N%WvA|L$UaN'M/1] ơ>:c2 O)8 (:L!NUBq)^Ę*}.BGa'N{K):  cTЗt#gϟDAP:d/
gT c'JZmݾm{lm;ˋYɕ(	&F|!՚$o#\4Hˎ5rҤexגk|^IlڴaX**RiDTsIK
r`<96Y3pGG/Rj|0-) ))
z7	G;aCq, K5kz4!RH0[><l3(:|3Ds*\5
Uџ\.lmkj2ybJA{H){rSȥ0JkGS(P)1ǣj;dM+7G}*={z.,OIh*it.t'5Hߪ]('BEHT1JyTGLlSW|@3G.u.#ԥr6!*r 17Z){x{Fcd6l9vIyΔĬE<1\Io"H$a`.©d hED h)Gq]mR]fkrI'>]t	WQUU˟YHs	ZqFP-`ׇR#(;rkhYqE)UH7-.ϟz8mI&`o jKG߱1;9zPٲ>DiK#uzHRT+-R,8'duSGLV$ܟ_{x~hV#kjٟ7miKqN/L<Fl/ɒ5)4yHŀA>o盲`GA+SW~u\OyF>,Ě]#t5eq7|Cn7
N
Pcs$g:@$6I4@ІAS1A	`&=\p**8ӛ>ە}ɔȰ~5H*+s&8Er9	3]H '*aO*?QTnvL>qd)J+8*R<)J@!-L3csu?բfe-ELtK~%Q ÙDIt))ar\rj92HrÐOS:)`[I	nR-2V2A!K^*G#Ă'7Uݭ  Иc)SlfXcJL)HYNև86Η24g P̐?2PjcPRٖ#tUW":*bпY49TI<Њ}  U(8HVq^:ıbݵ"5l`"}kz1b%C H8,t*Xj5}W/Je	L ;FLV2D)2M	`\̡
2J{J?<p.$cMCVy~<f5QraƄ#Y"VgI@ވ]e+gDNT+0s%LS{a 8b#Zb
P@sv``e5҇%	+TqK0,U_E.tP"w]_Wϖ	?x9IZe.O)^
!Q s)Ym`)h( |j]l숁1Xk5#֩]nqLJ⻺ko-`*oCGw90+IIqyTO]X/yCA tHIaqC=7C7!b͑k@?耵F}++ jw왃* fL1:t6T31bͮw}G)؁*է'	BčBs#=SqUv}qsfW)	(Lk `CRdyS"ADwo(GfBy7l@sa:$d= qgT[ %	 L!I9d|A^j*]H&j=RE~fcx{t7߂>g9oȃ#nψ2 ;*(KRD' )**Zb^0ݒB_8
m<z5tRg2KeI[O_,xdƔHA(J$H%-Kr-zs Lߐoɳ@fYZ=38`9Ijᝈ4k#Yt| <~8_෱PH  6skPD.07sҳ*k\(H ʭb:&j 
(3*3&{g6x>3$:	
y370K~ ){زʺXRB`ª%҅K+&שe0 ۗ)(e+ g+;$݁9y2]y !S<DXt(1UƂ	e٧%	$C?[ʪ k)P^ 7P4C4RF@5t8`KP'qAȆAd(>y@d젒@10q~:آR41Y8ڧhৎq0{7GƔǍ
\DDzJO;01̊ 
x	,|	oDȒ
y *L?3Dr;QJ
SR-3@Dۙ&,x}dLIB|
KeHX;3| 
K` LI/GX Yspk|˱	<&zGNh{L&#8\~%pdd$;
͌ׁÆt┇		r"RR>T8)1Y?T$4ڄQ.hnKA~;ԇG	јhV@5E%390zm}/q  pAEL:k9,HI	9-'i :.#0Kxy80 9&
3T{j+yX u8JcVM;8TZw=Q'ZKl _H|IX @2#h27	_i.^z
IL{XmL8TP*3[Upk}6ЫyQ)aFv@<}B@ӌP|z* 
8}P  /wtLՐ@v VbRp-Kxנ,DI8Y؇gUsE.AfeqYhS Rq B٬a&0gR١8B7uo P3`e$k4XEܳAM0UQ0 j:ފS;䯋80Yec-__XM P=982@{5[|,#Mmo(|B%!@W_d)6U =<숰FpvE"nMt8/]GjӸ3@pPE J3~,J۵r8}6$<мC;AH"G3S5لirX4KSxrh-	{x e >3T#q~%q;ii|^VcI(@90֧3@8A*jHXx5ا	y"Nj]* |FvQHbx1U;@۩	\\WXXfDH|F EoX}v^?f+ۡH+{Ua Z0ܠ`0 pYQ`,>ّ,-6_D[=[Yhd6(#M3( ҇~h8 xWe`]qK8sS	U(M
eSEK:ȉBPWLjfMC}}&j-A1{@sUsIYj|!{`5Y_. X$9&H>H /q)nb/ɢ\bɵspHoXT7zf{NC'nyPJ` E"f҆8_H>.$§g7NH0M He6#mr&<mn켈6/TmD<cHm8Wm6!DU]apd2
K/1!h;L"@11d%v#g~3!z |}p&~Q.,R frYnJKp\71sNR@,p@T<$1+
x,=h*Xk,
hbdv&St0sFQrZ4e+Jj)<)6pY8+Ihv0N4  )A+P&{|Xw<\+IeuI%ڒ6(rjkX4VO+w%a2R0Wl텊q6QhD*.K0q[ۧoWM}p
 a ?en-hѨ#3ΎV=WQ>[-ݬNètT^:HKt}ގI챇`nU͈D܌ 0O13O7},m`/j7:.mdx<Gwcz Y)xϧ;ikX !RH(
SJl/:"SUXIؖ0\'1_f BP0k/ޑJ^!WB'P["}hfy^4xi/>~8@
s8hfP.*#((?Fr-[oq <頶dKtuE7hZc꼈TVǙԉzο^w/m}PY1 0+wbd%2|	xH  }gh"8
7C"LpaRS!Ŋō @0$
c=%QmKX8&ҟ8(x3AM>*t(ѢF"MZlJ)y8hՎS1UpcB!	 U)ѠCĝCǞeb*R{"z	8q'Tڄ{a( A&e{;9L3	 Î-{6F7ҍ˶e?S`k3`{0Jbn<q(DAL!dGX c	^F@7'k;<c;y24GC 4]B(R(>c	X@*Ͷ? VD)/#0I6d0pE:CݓQH)d|fK
XTcO69[IAY~**ؘ2O d\	Z*Yw'Ep0= ÌxP$ydP>5%Ep9PpO* ,Of/bYKz	^@QSci%m0TA{mwIY.DP;',ALwG9=hYA$PgbmmS/,O6&F+Czu(0'f+Cb+i$@
a.TIV!\ QkBQd&s_N쑪TfPE4'c/3Rc.<݌X`U8L%OA4AUP锂
}s
HW_EP*XfŇ`co	ud^AP$=SWBܷenQ 2VD ?TTY %Y7Yk`dLL%rbR%j2Nv
y=3OB` D^V zlD :j}$D;cOqh&qNbB
 @vz՛wQON+ssBG%Jy
\ CT(+jf
fB7%6h$qB2m:
D Rl?GրK0!Zh#iSQ/;qC9 I)~_C:|dMFtEΉBqh{I~²Xegs% 
ڴ&E""1Rf 0(ȖBj3bq>\!b"PO9䒀Q"IJ 00@$^0=GC(.UKF&19~ rH SHÚڑ"9[q)'tT<E)NHbr}E &o=rT&Ѣ1j#"l8P1X-<U*v?*~!5$^?B =zNI&m\HK&RDs*QOOH< ]($ (KRJ 
'  "Q*/n=٨$P!bX*[7zG  #(9]Zz  @eEFſc
lD8{y'lJ##!ȍΡ8H;+KH;6` Q #,o{diU["|IἋq>y >5OmFJ)\1I2VâP}kF=<}CDcGd|?=*(c ,G6^߭D &#IB>|z҄!؁?\wm*0~kl,Qb&H4oEjZ*̂tx@{q覴Ch$N\}:!'@|7ù9ܐ8at(+.]v! đwZo;IBƤD~\!/#%Fփ<	Q["5M9ժs%?KOjR_4y(CwTh ~z'lHLc pD2z21|xNԦHiXv?B٪mnc:n@GAR\`( * @
SeH.lsŐ+7$޸AG4 W¶c=(F"D H"*M<m'^i<(A6	UN0- ,n8yR?hJ1giDn(ݷE汀|<R[dz$D+'ı>=ӑ?YkPG#޾dܱ̑"d!'Nҝp-OǟHb T ͋U@:EYO;,>{piU+nw.Ϟ"<S4`8#G7S	%0Ø#5A,9\!B?㿷 Ovh7=vD`	zHP@D@ADvlY)0  _mPˈ]sIlj,pO_<āYLś<YPHHpPL`)lJ[%2)`LYƜP<f`¯B"YQB-X[|ݽBC"U(PA$%CӃOQhnZP2AqC	d@
N})	MhR *V VUXLFƼCG!K40<$X"Q0Nd(Rׂu0@1]Tp-V8^y%c="\PC 7ą ExE B g?֞	"K6NH?X#IL =dܹ$)(P		DD{x֎	YDM~R?Ё$*&E%BwOBj)B¹ Tb2<=5y>8s%OA,PI3uA܅W9|yGp(=݄R" 9Ra  H%YSYĺ>$_=eUH,#[DghUy$EhAx2&bf|$ E?c.gQdѤP%^HW>]e^މiDax51:&[lz$ .4@1!B_Z|ŪDhR7@KÆh]R8ǅIIĉtBHl~gB
~7B5x(cxBXBX	蘭<TyơF;xQ!OA \BLBi1@pA`VP5%PC8jY@rzBAF%s텙=S)m;FDW^]|N=/
hQ[;
lA99HBd`	CHRp.>|y$2%g0eRQIL %áC)MaC"kQSB %㲈*.;ڎy݅2ԨRBPr\?BL¹]PCxb`3_ЌpBi: p<l@BiOzk[M$mC8pvD] 	kR@>),WA1^" ö`"xilВSKI?E{Ipޙi'CpCRC>(	A(}(
,=@NHZF<p  XZŲpvf'Ql΃hۢ2û7k}A&8C*@QlU$·* @϶">^.0G\wECTQ2D_ާClܓIj8fn~z.mDTX
ƴD%tʈ&۠OPiI~T)(k6p馇%(@*Bak-cB؊y=8 vlH5UN	b<EÙj%/ՆC%7P=A170{g2lHAPI&nӚ^ TTl#$% i5H(vBzEcȏtİPp6$@11R|	0A
F5/?~>`GF;'H0*ɈC*XfOhg; &-CD{E% @ gUp颐Bq4@6b(*ɂIA|PJ'mLH=,@E?Pdx.4lA+XlZ3U
*|r/5rzT]A@.hB
á@ljzlj'=8sզFH?P8(2'VM^JPC'HDT~Ùm
+?tY֊2R<gL"D
`\AE*TCEKz+VA&T']P;Z0ˏдPoTi? s !    ,  |,    6+192263-9:9 X p	4Y 5q1Y*o53X5*r8T?G]Go8EX2Qr=mvT	R0T5
V21jh2y'z*3RJU+VS&qfAo(Mn:nSI3oGoO2OOPLYr\m_UirmOGsRolkXmpl + >.2	NUai4R1W7k+t"{R8f?PLVZSmZek[p[mpjl[fglw~^olZmnpWpp{s12WQnhroHSi|owzƏ~Уv|066<L?aNT6df6[^%kr(NQRkkNtp^FtNwl{1_^qe_sh}̹px72TnXqVfYk^hw^epȑ7˘PǗiѤYϬhpfqutǋц縏éӳьӦ양čϯﰙ·Χ׬ŧػ˶ٺźۦʺ˵͹後ۄұϼǕбɉɖӘ͇Ζҋ֚ͦα֧ոϣ٧ݴ    	H*\P=JHŋ3jȑ"8 NHɓ(S\ɲˎr9C]{/s3!<Cp׳ѣH*]ʱD|ɴի}bׯ`ÊUJM@;#R˶EcÐⶮݻx^#%pR	K4pǐ#t3}VqVi#YS^-y\:^ף$shNU{;ҲAF	lvf(j	_ϾTu JGo @ gՍ#$5LV_ep =hz`$U0 `SYX%N@@iŨ_A"?!P?6iD<֏
PI1= S~Q:Xcvi)#(e=!y$\ҩC<R~Fr$^Xd"t5τQFyFLj
ڡZE!礑 CmU?AC*gjT;n  Av'8'@N;H֫EcASPj6C+GvJ2PXB{nX澫5[Ã<C<}9s*L/,}ceUdFp5WI1K HptXb	Wr7*c?{lhE	2(i(͆0rETݓ)p*CV#%pV9gvq'g/ud@-XM}TdL	iK5=4FD(''e[3FՋGKo^OFvݐN*d"1ＳwBS$DDG`F/sg|QHe0O.Woº(3Bcd,P:O=O 6 YځD!Z2 
Z
z6]AG ,dK(Ђ ET'f$Zo07CI/1(AĐ?EDAIhh XaIpJH6fA@D QY1pȚǙkpcE v`t2
CQLd*$mcC:1PhO,FEz#QF.Gq=,w#ƍ?d%dЅ
}ThJ<{8-/n1 1ɜw:nz3^t+,4	B7L )wzz^q&9-WS#<,G*ByЪ ST)+ZǅzLi-Z쑁htWLeZH,mR!G1	RhOW	-KIrn`W9wT´<F&"tLXPZL j9nia46shݫI&34*^>ޔxzg q5ggXgh3xvě򢳚ӬilJ a; y1 E!)no.F5cUcyN3V.4 lW#\]V׽}i|n*ܜЃ "2ABF'Km+ߨ6ة7K`:҇GoG0)5im&FMPZXqEb լ>[ǐKdң29j8'o`62a^۽=9`#K-4&x' zAY+
][|2A8&;ٻW#4 bxg;@W:hm4{x!1fvpCA	B,"agRπwa33`]	z.jz:5eHö~\ad
9A 6&p</mk;ӈE|>YB@FoKo?g׾u5M݊*#:}׀|4j""%~o7|6Ob<V]~c4̇HRV9hY0&NL85
9쑯B\đ>-w8WJxinKqbEgwy~v>rT0K%x	{)^xr[z	y#'ݧoyz"krgc~{Ozڢѩzr`uHuؽ!0A%"	#Oڦ{R1^+4/زέ_n `ІyWv-pxfkI'uLPrK	NV7`LCt$	Gw(xWF]ghts
Ѐ:rx`@%	U }pd|(wg~x~Nhx7kGnzxdpbCkeP:0}&5f@(3*
\K'|'wo|GH|7e|w!5`"[u'`m0l  EE``Gp\PjFMH~{e8GR/j^X|5	;9 t  uu6	0q P{Wq$ yLh<Qh(Өdq]R69$_373  3@CLGx򉻷c
ii6>=4 ƐQ:&
`?q3]xeWԉوzG~3ɐ8	GtC`ƠCe\	5&0Ø. B 9=ej7y5)|x9If5s%zs<q0
`?P:#x*,Af#:HB/vH`~Bt!fwGA0
@= Hp9!	X)0.`DxAӕ9zygzYwH]/l8wg}w [)Rn ɑo0p\a^~9PFDJ֕ØHxYx8eI|-DF˙nbp)G#? ?r  IYiP9dYYFhieH)e9<9:Cl]$j@ +0
 1}	!-Q`'zstSI=Л|ɦ1*~xxzzXr,q@`<p   60		ad>ϥphv(pzv4u8|up{̉KCj	oR#YԑS*:	3sz=	kzIh
x
	1ij	Кj"rbs`p-YF5oڟ(x>JobӐP6`?b`a:=֢\nJ˪IA=;*?9k@+ 0` ;k==.i	+fz{Գ
Z_q f y{Y` V	07@SK:'c9SxH*h#7zmb>@+LQg  [gQd:<?J`6q]).kzc+rnRo)ANh	󰮳[TԺ]11'_VkF˼zyIc' (ـusQ#p ٲ(A)_31ڰѣ4k`"<d@x.GP%-	P1\t+L["̭5K*˘8qV	[,P0pV?W*pF|UUXZiQf	GULi	Yv󠰅0@ @*plQ!(Jl4ӆڵ8ǄȬzyz_1f1	"71@ s@  E@L fzܸSm ~ŸK  \T
4ed& 5/6hLӌ˧wL;͢f{Ȁ̼<$mk qP&FK* 0](2=ФK Ic;M&șˍPC=!`X <@qUڛs0ݩ2=Ӌvj
RP-YzIKp	PpF5;`%\̓@*Ba@fiy,jиw͠}۸״؁-/1  69z}ZҮ@PH+
1ٝ֐ԍ\XBݾrЃEHMKp۷<؆y6c7]J/d- -Mݱ7
Ӥ=lߝ~u]$<PѴM޷.1ɱ89Po @)5`
}~pNAjhFǦv{@>!.#ݐ Qߍn7qS!q9^;z>>@^p^~<ၬL^*yj>'!	Zp  Z+l<&&UpS] 
w%su>X6yݴ^M2ΰ>4nQfgCh m4 aqN|za.ӟmсtm~M ͼ
>$^~`"J@L	WEl
6h%arw }n紶3p=^ cu8N 
َս%){}kn(o*n	dr:`jloݮ
O`(qwn
MOQYޠ{ѡZ_$`?@CT`d rjYUi]MvOxkgH߻-!N	k_ ZOOzNlM?NO_$1~o0N1
Q  #XA	.da{">XEi 0ʟ=Ҥ/ɆTdRATM6qD(z0qI
!ѧE	J4!UWZ ֌Xz-8ٯ`c-q

`Kyۗ/f'ځ"cȑ%OlIӳ0g	LVJ2ΞLKf*lճ[;𯒋G<jƷrlRj6c)7Zsb^s)旧sH6`"1õ ~,{--7h9qD@,*6O!z;ݚ;gcN @<fDiE#v !Q |"'NAd0<(ƅ(*qL#OM8,:IZtŹ,˞o	 rRʬtӋȐ0IS2Q4ʖT%˛pP6WM!/M6;|3O:46E94Ox	g	54Ǆ
#8v\ R(b@fI%# VUǝ{ᔂYVlrLBLN=N(V==$J젵Tנhz͟y~$WIe
~ǂJ0L>r=^Tbr t(&h= >J!b*M%Y!3ZXFAyLn$A9C4o+uy$1{pehQ\݁P%!"યpׄ֭a`ku<6Y&Xv{ڐY#SL-<x)gr Hϡ2 ~lr÷h4Czj=>ϬښǦpC53v1Xd%gfm]b4#ߵ`-l=OQ$kB! ɠBh\V}d_IG0=$C6V+֕eM;\7',]p8FHdsk<я1/ߠ[dHAHb LHxFˑO_Q;
"z1CMkSJnZ.gX#1`DGY9@1qFnb_EP%yd'10Bx
[L7Ƒ s#X ɆHͯ&ȯ%RADd5`Q\s 1&-%^Ɋ|("6ny<RP$̂	=HshI0?X%4Ǥ$/8F#jERwҌ}L2$eA  DASD qX#11:יƂÕ2IG|}{Y)
-iУ*"h$T?eyH7z)%-T0PANr|ljYVdcK3M9ZЎ"Pi9FGZ=a`LBz43H!"LkkyfiZA%2DHvT ҠŤp:-4T2vfGldHLg8؂m!`v>{6B6	¤] @f\`7IEBGd1M?]h1ݠT/M~f&A$H5`,`{vy%U
JF Bpߣ> [[Ey-/wS6>1l/OͭNa@I6W7z.iĒ~8I ?% |$2L!q6(L=  @PhP)ɮj?K+=$p/r"U֗LٙxQ4)D5[@Ck =|J[dlw/dNK]xN<򪹈`/:}usgh:nti3tsL;(JF)tr5~c>&*p2m3Z1ůK-KO?A+y;`v:40!r]3O.ۢ5ícЌ.c]ԁDBL8c`GI?Ru{gZGg*5!8 rUZ`kGU_^t3C_k._RPϧ9aך-ǭ'To JFpJ19Ā!
F@
!.m{%}(:Hu[,	ۥBO:r6A8 B1S9vdz1 >Ue+y˹9(H>Z|s(}^0<p vxvA? /!R.='fh99Ð;@*+;W2kzh35ȫ+s<8   腝ɏi l0{ct#!@2`Al7д+)(.>DD#l$T0K.Mch2dwJ64k@O9rCPd# 7TCl4;4xo{C(ɿ|+ÐSD-C5e<xDʵq5	ɣnjł)-x""1 xY4;8ų3;;K3'_tk(Dܐ"	g	F6)*j\ȂؤGW$o3} hs8"IxEX?3Z?C{Z/H;Fh쫆,?!Lii|$'Fk󇰄Ɇ@b 1^(=֛I0G Gd:Ei2({"4{_dH&̅3@IFHF)B铙"K@{B:OcH`MC?Iɺ#0"H+[:~t+d254Ȥ\CJ\4iw0ƌlǺ
|CLT} 
 PX  kH hcЌ /|KÚL;:xcc	|X&ܓ\3TTDΈtOz) ,O&tQ@M跋L.j  aQq s A2cǼMPK\PIB	]
PɽU!H4Q$:N>N@ƢBƹqjʨEVHRY80vAɐ( K^-" *Ӝ1%c\
P`2;o28	*idB(S;Q;ڔ@=)Cq~ ] (por'EPkR+N*2;RMR~P}QD4(MB<FjUXLtSW%xw ]5O&j_e^}x>s>,f$v Pt!@"HԺIRT;LWqrKsŉJ2DʚUTZHv5ywxJ	۷0;]lvU*	6,2  $j S S[|BMU
UY"p#Qu(s0Yqz5>D :^5lp$0k11+8f8oHS 2S[*mY,й[[%BlU!ʿ@TUST\x'H=϶̍	mmQ5Լx#}R@y PCX]'BxXP ޖAL1W>D[9^U}X?o|A=>-N}O<8M)PE  ]?#ۥCJö!;nER?Ƚ9[`SMW'jSPD)ᷰ(h.ZͭX/ elxDeo[< >۽9,-cVQ+;𭦨`83vF{ ZiL㇪H4H]\厯cY$@F}ЇGq0X-(IL  NZ,W`&^ֺ46qbPmZ*JT	Ve0Y|e6Hn~巀c&rXL`
eA2)"5%qK:dT6M6rfY,	Pg.TxV1}{3|&2c|&he0b,c]ƈt0 "y0e#"fkCJ"H#⑽.hb+6n0ܠ鞭iViHixx(˼e~{0ѰIqvy=aP/@/219.OH׃B(qƕfiרB<2k뷁UL,T5n5Ze-&T   !d th0$#ތ4tJe2" YX$.OF
s֧ěS6p"cEl~>&Z13jWyn؇tOC@ Dy~;!ӆEoKE"u;c(9ZPbZ	[Cnjpi0bp~&Fv@pM0nB³r403dj Q_>XMqx%|X`M#t^xΩrxh777^I°X}2/_jc,e6kff/,2:T`d<7I CqCv[DWt	=IGeU&EҔ;vx(j:^Ƣ9^u-Iu_3GX(Xh7XO  `Lf;>	AuUeE-J'V6V!"Ov)(O#	*pyU*`PwnuFuw,IhYĩuрah[GksR,`o&xbkeCmC0 G!"'wޟ%RJt3BW}yUQ'ud)ync 3 Rh [ovgP7EwoUc0{&C{׃$O h Q{kNBϝGٙj=h{@th \Sq0	+ozQ*9uvK=@٦гCg@G
w 
2l8Ak޻$	Ȓ*9\钠˘,eʇ&h\RƆ5f(ҤJ2m=b ;T!,Gƒ-;6(r	O!b,ܸG|x+ju{7ݻu)dȰ!C1f(w4\ǁiQ.Mp3No_G"v'%ywߜx.S%C1#ZҧSsbI  X(.,YPCH1S[=uq bY֌eg}Zh-՚uRtZBQ8IcmЄRq#M
4TO+mRi(Ey$4 3O  UZ$Dy*{DMiy`ZAD{_y@g`f`'0>0ezx)=U8Q%jd=Dd?'~-ut[nl=
X<Rr4A(d	:StF@b$
`V$ʘq@~=_c9_^d=+WzX f

gPaSJXqXIǙ/tM6:4.jO.@[Lr#F1pL$,}ouJs
3$2xWv{zsǸQʪfh)oBEMSG~dϾon:m1u
԰Kf/E-t `=|8 @8-t&tS<!{b<}
G}gJ|`zsbƼ'~<2YFܳB.]9P(;oGccJ;	->8hP7/|x' I&S@׻(FIB`ά}"1:]BA=2~Ѓ;	P, `Sj>۱+HWHG5pO*x%GqyJNB=Eo
@V40{`C)t hX0|H7|8q˙#85KqU9@.``@t(;3^RtH+7 Y	]D6 S{)l=`,'G1xb@V`5Q6  +Uay27c|b_uN$&vK)9!I@R) IJD4IųЄFvy:k1N{ZJ?4P0  E?8 PGA=.C~:W,/҇sOgp,B
tyy,ͩSbOyyc-tSm9m9rn8<U0ҡ Фd@akxJ$t I<aQ@{έLH.I#)IkJ&>@]M<!8Fb;܁O|h
Kc*v0%!HTr!̍b5!bB\6)@DL!TBPbـU-8a(<cDqU/7ly""`hC;Yw!ZվESULpDl=t|j?J{@\k	U&kIU䃭ls(֛Ɇ|#%j 80
dI>J;j$@ { bq"ʌ	3!+MìJJPaft~3:[|	UFv0T{iPnF'nC}$"Sws.g[B1㈏Mд9n^H!X	Š!Ncwb( m(^!u;[0Np"IY&Rg!)R|y[	=(\͢E/ב&$EjLB,#TRjǎgGZ`ř	B*2 0ԀW (M$ +T'fX;r!KܢxY'Zr| IoZo{CB BęvM'O!nBSUxrXE r]497B43 @d 9>a0VLoS'k VV$^KidE|L*&guhPsGEZNA`aƣF\V]^@B#uJR8<<x:8%Y!ju!x$5@{<  
 /JwPTAP _М!bd`IĚ\QYh@,_ <܁ f8NY1]EM9FGXUAQx!KՓoIX=9|Yǈ|!-(CC,$p?  0܁Vl|z5D=am㰇	nςÝiC[h!A `Aȁa !EaZM8XYՋM)	5ZH!8Pv}\
ARe(.<  4\A|	-aG4ɬ%|&$i(_ )6D>$(]pBԅ,6d&C; Hm!oZ@3IXI=ZyMBvR6#Cߌ0Wyq|$ 9<(	 @W|E?l9@\?xx m@&G ]
$3`DB*$Xx44$^cځaxH)TMMaKܭ̤L9MÜm`!6.$c}Rf(}|=##fa%=A}[	$D WZ^q; 1aB\ǐ)A&ޥ]_Id_fAD2´SzG&!X_&IdBRHpmaAN0nfC^Gk;YO:׉Bnhu Ox5XeET8"'t/.8&i%<@~Gx$8	D=$ u(B09HeAy|bֵ\_E=3͌~BAd yy  i[ efDaq?Hh:m^lhf틦 lK;"fu=9;d<= 6x"E³E0p _bX*ȥzh) -_ɂmCE&]LE@ dB[!HGDh@R*-!Ob"eP*6Ĕhiā;1 |$	5l%+(*i9<WHB7@?BA   $Q?iۖŔ*>By&k.ǟ͜CTaf@@!4$~[)ºl&i>hkސ,ZHulmD6,lni $ ,?4>T@0@]A#J!Y %(HGy+C-&
E,:D) dAB"'|B?\-k!X8f.(DnN"S+;-D l-5Vmo.e-E?t :L5|?p@1\'&f"I;` nT ٬2.ڃ<)Cgz,N
-̜ѵ.CGiH-}  4!<Aځ'>oYAdZ)eo/-YY֢҅J(\Ho#Mq҈Z#G*eS.D{T1 @94>D#T@"ipw#xWY 1<:|zM .߅\BLO햅)gB0 (,;|' ";P+]-ʇ&q!m?%6./APUq7\dq?H*	D5hր4q7&8[[ L;|{H?*]	6 X=4@PԌR`>B^#Gl%%_\2eL^X'D:P$[+r944 @3;2AjA2/HZK[ &,ޖڠ;T>X1l5߫O7럊.|-hF`;v;&AL"ʒiPmC,deenC%D{I&3K`2' (f14rC;t+! ?<JC|q.Z_' $;3"2+رP柴m3d75JU,mSk+'T.*@lTh8(sY;@Cu*4[n.D_#&QCP& (0=  ]-IP,/46.AdBhB(8'}j疈8OK0cZCHԶ9\nvpbxЀWwuHI0$C |aV4&NՅi]Q!vF҅KEDP>H[vI碟&ohC_a@HfBLE;+a(6ib8N	)؟j$Ðqa;64Ú͋Qb;L$Ը@$gn{x A!/Ϲ- BMJ.CL1̨ ]ԕ$HBff/!y
COIJtyc8:bȻtkMj3CD;v4v#Ak5l6$X_xU#Ȁ>,C&`nq?/<4!BܵdO^,4%B^|-ԇ)D: 69 E0D94C8JO8V!O1k0AABW}Uk"ݒ;X4ƎL#5VpAC_!xqD! 0_.!)!AE3Ira
Ĵ@6$ҫ9)e["Aeƻ&DU"zOMImq~ZMI/4Խ3
5߯_+w7Ʈ{
ZK4S9V!W(} {.Ih	C4hP9xU<^g*hCyhHA3f$
B\NrxEhPD|5'OttSIw_֑Vkݸw3k}euK[sۧUH{mfI6|Iaŋ	[urdɓ)W|sfDth>D6}ڈ >vlٳi~(ԧy6Ço#D,D ql񙿍XѤ~"I~T:~m)$D5AQS^~kڇ鋮%I1()/'=Ex#{S-Sȹd-2| b7MmTkaN%h Bq8hA(&i#
!f(I2Q{滏Ji+	+
'..+!F}tm5݌RM)rܙQS8&\a,h(<hȘ"Kʭ3yI0¬	v΄Tg2SMr$xwКzpbP+Oډ&
0y|ݗ_2Q*Uܴ@2rJm5jS`bI:oʇYh:	-*j*i+3W{P&	K߆"!Zy[9ɃNs+tv	TBWޯ/	I%g.SY$ŅQZBAѳ\I'|"A78\HH%o%Y䫠9&CѶՅ&0
ӛf]|Xo<6,NrZ˪\O.'$TliJ0)~9Ts;nԆ#ijSԇFX	&6Q$61=x~tA%Iח)㠙3ȼt!`򑟽>GU"#11DЖZDd-\AxȠ
<^QɣGhXò`Y[lGKeOn[fCASDp
9.*lcJ+8EUFǑwd#N2,C$LK0pb
'ӕLhX< E[wiS޹3B$.\)YG-SamY
r۞nɄb5)IPR038N)%H,H%c=2"<Ȱk
4,5ZFfR`ǳ{LP>hnMOƒHƫ|ўMÅ>,-`QNNIR4P:>oٛn<prE6S%&=\V/"UC!fKsŜ4D=k1rt@fyGRq/01%xSb;Doa=@J3Y6nD(r1b3=؄>q!3c#PK)+0iq³Wg@çmYUIP%܁xA6N.jUMrF6D]MbUn-	5@6 H;!j  Z;#meAzйǍQu	JHB*,j"E//X)K"&\|i&gGԶc eX"tvpzj]RUzD3RpJMf6KkYy![c؃ (qvC  0
h"dr#4:H^ATAq}`(!%qK.$!cyJX0sO5C-	Ul/mugMh?ёgςcp61 %8@n  
$  vlc?n*튢SmSubɲR)8uƔpP$cOqfGIbS$R/ѤZIg9>N݈iַ ܳ8Zw>Q!?@
 7fp#9 ^#  !!LwQ
I|6dzRĀ# L'b>U(}Z@m8dL!lC<Ùj	Ec<.`vhTov/p(.n;6+}y@8A	` @1gǸ?arA 0Q vP9tT&4=]eQ	Oס(WNl^Q՘bSp;ٲ_kg۹,9υ*5w}c۹6?;;w q(^c[ M'cOhDA.@@`
>*4H/'NCtz/)3C(k}G Z8h,I&kΜGhJ.K܍PgҴP**MzPt*څAʢư !d@Ha$A*>Tbz&E a&22TBa*((4 ꯔ n	J%\pkriLNJV	.bfd2 a EJ	Ҟ
kB0cĐP!@Ȑp J zր
` a%SHcS*eL*(1T<daBR㓀`
FA6&nc*X1V:@XH.c%!tdht%=C>JVeH((NoDANƁ2BaQ+!# d Р,! !O%ph瀠4ZC!!i!gd٪@x78)ej"zΈSV"0fB\i0)#*)B&uD)dO|Zr.MD,6O*acR8%c 
oTbtDBC.#E.->R%L0`voc8'VQ%ܳH`1:-@M"Li$YH<B+=`K BE44ZjD[B7E6m'7趌7!~Pn8O1: O$Bb,  P 
b::gn.aDB|B<j0>䳌b^~BWLΈJw,@1s̄	1փB"6M%ރ@L]O$-\GPPUA22 rRr
!oPCjCf~nRIgU0s)Z4Z&d"K/2#++^Gg80nALeNNŃ<)%<OO$CJ.PU\C$nfbdRsB2m~t`γks#O !s"`qL ${`xULbLM#h.#YU!I)M"OCh:).OyUfRu\UG#buH1FP.Cg
ҁIVEUԇq^PBEB`	W1"S,!BvL&&6 tXmMUu
3BQD[5UkfajVEngb,FH))'Tvt|XcF!
G_cj	4VK,",`A0b&)CFY628!m/%aQopiszE3-GACR|AC8|cb^o|Mc5"~jsW%_<#VC~TWhجd 2q1wVY>vXQ1MhAAV3%+2ya[v./6ƮW)cT!{EOUznV	~aH
K}'Uej*G`ue-tvT3wV xJz*ը2zgy.Dxϩ&8W3P',|yGn3G( v@=7jˁ0a^~x	>Ã",0&N9l<mXPN#x3xA56CqD(Av.yx!B635Sk
( Ym8<KE|YؘN
x ?!۴kKyXr*{Օ?bc1XÁCĂOkToؘYfX1`¬#CRbXZ.pcx9|7:4&ƭR7pBT1Yx,	bU;^1eN:"Bs"AsW\ylButF5X5i=mPP=$ӒbB, > `    Gz27{[.E2ZXrɫ/|b|Kjp7B!c@ҡ]UA6R#tH4"L0avY%#gydbӦ6OᚼBZ`VlM"cұG" ذ  d`i , Ap
aAf) D`]ROaRC`>|3q=ryG{T6Bc^mAd$
X	RaUzcb9'$R"[kK2%SmUҹ_J3xmIc{M
OT/\AP*~@a@!    `,
 a9 
N@,<2uE
(焢OSVAؚ'7T*N.Gù 7izWW*vs_N"Gpxh'd&X&#
0̂ƼoF."[<ηUe]ȯ`h:`@@] O D9!9
S'|e{BTFPv:+* 	ARfHX	)FEdeS1+/Ab44?vϑeBBdxT	?ba?@$	ႄWUO"}b9:,=A iȒ` 1d dt ,I.c2amw51~3wH ݡp[ꁜ٥0u: 9#Z4w262ͽX2_|
7B&M1ĉbv3x}<i/J{|	y'kڼǝ<{	ġD#,h9{P{1Bv`OC/ddBkpN `#=]3.q
pA}Xz4f0oϔA>}#[~ٴk۾;wk#F	
p1H>9UpԔZm	ML\r4Yr`{-QjYj4Axat"T!̗3b 5DID\G郡zw{CEbEb4	4bG;I*S/儣Ac?$D"CA8U?߼`i3UYmFW[e#	|B,P6 p1(A
>} 4XJ	@  L0f PC?q  	k1?O;|sgټ@if46hjFBpw8%GDAȖkAUTQ?pvفw?T0IA,-ٳ44b  -hICvO4(BD(a!ƴcZ>4Pq19o9t"CLQ;C<,L6N;co4eQ$V v8 	笁U8f3(t
4h	:pKީϒI	\MNLC=D@@q  ClSh}AXJéijs>Qj)jqFϯÏ+TBt?3^Aߞ{϶ݶr.<:xȺ ~Z?6x!+$r>ً!j6g{<\t|Fmt1O>c?QG	p3#
OAϿ1 Ȇؖ"Ѭ `Fv4h,젇 vL@6A,|# xa/ 8AH)	  ʀJZqp,47TpLDofq!9nHD8(hAv8w,車Yc@G|FXQ	K\#j|7uR@XC"Ry2:ʆw~`+BF7QTG$Dwc-oyL# ذ$N%JV̑C  L @ 8j^(v&AKXȪ6$~bLO&
5O$B*+mVEsvłC61H:Pr6FW	zRq4k> |yg0G
$ B$$H!919y
.DLz$
%L4P?xƊtʰ%.ϊ֣   Ek`UbI$@GLHK-:p聏vUl MPBR^X`,/5k[_.I)-gRś18XI"VՕ0v	( p<ONCAM)a;	R@?-dOo
T bS-({#zGuGVcW*(^eQZ>vҬim0.qĥI=DLM[PfȄd5Hk@	jfpiX"l0B	f-[F~65 ףb5J(KO~mWBupj6b.-	sfB:@\UtRϱJ>Җ%f4wiO[@ZA ^rԥ*1H?eqr/V-PL.uFT&jUX@ku
}@18 (_ZKR%{h`  4# 033  :IpJX9Zdɪ
ύP{޲ߍx:hWp[*)l<TO0aitak>{֛ŭF B3и wt
"L-+v@́`<	sI跓☷яZ 匡P	 pЖfȝPqd_ҁŇߴb33\t+؝f(sA=Pa';Ԕ?`P#>w){H\9I7H_|ꈪZ~w0=@̀Ub/o/X$pgEW%UЂ.B\ )y73aLz?ɣw5'zwɠ@>ޫV!*Dioa,H嗪OJ{H4w*{Ȁ`e8X*xfZo
:p	Mwtf#xٲ@]h&`V.&!grrd<)=s12#!s3'"5QI HthWJ&8
؀]hv{5XV9_0]Ɓgaeg}p
-]9S bhFhW	 ir7,< r_t'x	T>Ȋ^(_)p
F8fH@03ȧ|Uw&8rLF1c70:}&@5eS4.rT " H~~7/H1ЉM"*U_eأ	`8Ia(B9hZp\	mV$Gg&*.-1iq{hxޢ5X<!<q~ܒ~w C~`33Q?(h!  C	$1i^hE*eeG{+GQ|Zp?GG7RΘgߑ
+3xf0 ]x!h%h]!< "IW~Xi~>1&AP@GȄ*  J<_d)!yk&9v
*VaPhojwo8Sp9spؘ+	k4Rxb-|)}דS9hHTu;q.AX<C;0<?1,
[ُPS56g.ʜ96 	CPvZ Q):"ioӕM
a-KP}ǂ`xA|䍌TҙHI>Sw;ei*ң	V#'#*`fvH	B_-e`*
@oIcaaSƗ9RzF\@R󌸚.:ץK .^;B)?
?"qzyR##3b=qG}h0/菅:	؀sW8թ@
ywoèfPM&pPGA]:qq' Oy)Pu0T

jZzi䊅^e0yP3[bn#+|qG!ByHGj:x:&.tj-3h'ǬR<xHZ"cGճD;JJ{G\Y?ˊN4eAvE8UW+IrLLAvx}?ٙ*s緦G:9k$/0E|Z'#[1,[y<¹"ѹ[
&EX_29JB)r]Q!5_3f'[[z[
k{`f'U*IT@&KITYAsq6^x z8(HFYm
	H8r;y[#˕MM7Y<q"MV)w\ƦK1(|\|VO$[xE3PaU+'kF3M o
yȇ1:->,S36;ՙ"r{mqjZ?"$fг="Tc1ARȆLq%~!H΂*J=t<<Ϋwnl[e:Qv8ZEd;^ ZA,9䡘,wy]8\Q2UQ90j,0b?}
pͼt|3v?!L<|L\Q}kmgeEp[V[d\жЙ1+5l*}U (n9\-ѭ+Lّ*Ђ|XJ淡3xH虛!A4[8EAtPZ[>xj6mP͈WERӍgmՅ,r߭܌D

LyM**6+-_Sͻ 
Ǳ-:a}-8).:?~g<~a*k:^<H"!s!QZ|&ƝW;ϊ<n/,{lo=M-T݅?GJ}*{}s@TPwpGʚ;KN%;GGdz/{Ņ Nr jH}{y:޿h^mj=L˭]|cڍWX(8cNzfKiN+A8
~w$EzN:rq0=ϲy?|g]T1ݽ "r)	;иmU>F=޾仞-[wdP·,[O;ŮP췤Ex8cw}k̇0	+Rلn<3zz҅-r۱ ;nUc]qV	o<s\\&8\8pP|Q
ER	P
0x~>")&C/ڃHa
%Wh㡾&O_m"s=r˭;[1   0)NQnϊpDD9}IboQL8}MJ*:ukp+eM:zn4Lإ}!7G; %L-BB=DZDƍ>SQI.D2%I
kwĈ5mÙM=}9OСذe7RUԅS^mH)ӪTZVXe͞E#mݾu5b"NçSDнw)'\/diu|TXqq	+*j	TTc|fXn"&K)-oGRէ/tZ aax3=s,*qDoBhA3DKF"5,Л:s0@ġKn,ij)/A/0CPü:+"C1ESqB}pB2wF²/i]D#4d6ۚ5&bx-Aqd,JN9:m&xADCۯ<=7~1ƥITiI,koEBFCZʫ'SO?D>QD "┿VdUW##K!#V'*,S!WHҟΒ]r5m&T	&Esd4
S1*,ΰ.ςKHQ;{;us~i'P&="H#	x}@IVIPAuʫ?cT5.RKS%rt}5faZev)̋*^uMTa%8"$_{r!D[&EQd'*WL5Q7AZSxN_g8;|,CŸHf`*Xbهq)<B<s7gJad|Xa9ucKW[u"Vq4Ƕؚp:kRib۫K¦|ʅV5ӶDHNz.OwߗB?rOb<HVY(pC+7\pcgBM,r.a5Ё1tf:,VFU@x
hfB,E* cAc@IjȖp%&O0[!t,`ĺ36\^@8&|D<{X#sG@_;"@샀ܣxBЏB {( ǐo`$_C;4xB|X^dZ"N 4)%i^CgMy+=IoXÐ+vS}e{aBEخMVDϼԓ|cC落]`AHFU%#14FGy/Hv3-EYޓ<m A-O#AIv6nnZ:2T@ I5*^ʆd7%pm+?^uˈFnD}^=᧱=$%57A%n
(,Nwvի3F#C  Ћ~X XZX(XH]ȊŇ- QhF/ʊm<<Q!W-!k	XTMA4`."x;8~4SMIEc8$|&!N1Z?t\7Uz  d{,*^IX͆\׀T)ÚH
 K+.f/EK`xTXz*%Ȍ(:&2͒BZ(B\Tv]=&촧pjbI?DQM~CS\gZu.PGUɖwg2\, Hex
~ :Vj!x(¡uHgI~Q(8E+ ReҬ!SBγ-{#AcX[paR56	=1B%"vSpA#PSg&D3>*djx!p'I rxqBl.i5k^ TPOGȉйbJ@HC#:ŏtlf?M,YhZd"̄q4xj*}BWqFbVX>LɌִF\Gd[?xcKlIM-ώHjW"H.y		y88pSH5T Gb)#PP3n"L8>4о*42,>LYpJʓdSr54\&dI/Q.9BPlm/
M֓2uL1}[fga0F|Jl0y:jA88?aHBd	^؇I@o')uY;ʳ(<-ч8k{N#9[ږ;q)KAaF`Z*di&y[Clڎ냏[6q6R>"F2L    d@qX/3x )?Чk?CzH;ZIX$+۠x@@SD] A4A~+qÍl4kcZ&H9q85:1D$qBq*:	xy:F{§sオ0:	$z48x+0^(Q( `G迼#P Ŀpl+tOpsGQ`Q<3!i4IЅ)͋)0$H%ҀJ,*V\=0Ϛ]%H=`Z]rYN13ٵfЎyj>y1Ws|FJ,<F-t16A	BCxv0Ǟ =I'u$mGh$Pwǆ,k 8 2 ) Pv;C~PH{ {~@J#HT qɅpZ9ʹ4rHtDuPlF(,=h9.WΙЖmialBH%KJKhJ@>Y[4zB1zB諪+K]J*ʶl>K1i؇5|7JN- Z3t	CPȮ 26`z( u0Mj#iׄMHԋY0L͇N[00͉dUp!L4k!Nذ\=t!=)SV`@Ơxlʵ|dal [о!KPfkЇкʙ6 n{0hM8'J x'`]IP!p
h508~6 ?zȳ:W	|@SMKVT840a")]^u-҈aPʊ3<F[H(8VPT6]6!.!Vٝ&R%ӐU#A@j{5'10H P9LپU	PeTH~~LU) .cpa~d{Xmd3*bb%Lǜo@ s0PT -8K 't&J!`b[4F3EbIEBWNʍ܄#d\Eǈ),ʱpA0%X!)9D5T-5-Ƒ%ه\##h䛕>/GE	8B#4\P3~:50D2HL(׮`py=" ̳Q[ }D pQrۜ	|8<=A1۰F؅^SN/!kMLst8N	;NV3aZX:E5:µY3ݦF ٛKJ@^95r  5-U [%؇y?{h }(r z7hHe_P!Tx }up<L,ȈUMaM(ܙ{dt`
k(YXWX|ZR%ENV!sSF@T	%D}V1ѭFOứ*FbT5c   1+\|; Kx͔2I } (COЇm^c][V
WXE<0d+,`*3M|H]U0]J|HԸOb\b*e}@{i#\lwp:M-C bP	u
Df*~au+Yx~RH(hǌt}$M۬g콑,8AmkduHDlQ#YG6\N8ʹH=92&襤lle`i3i#J^vekMivTDm"pY3	%Lj'}0(C+h0c޷.Fbv ~$LWZ9g=g}(8A`Ro^TI8dT\l4qIFXmQI|tE{NOD=5 :Y]]~T[֖$웪FڮH{@ 1.q6+Pk& wӂ}7[ OPK|/Q;kcrg* E<ht)$ץӌCHf
oUn9Eϑ F.I"Qo2fdac\|:/p2amEqDPh=2tM76c Շk2pg}P  .$_J)?.5d>vw0/<NJ{(W*
kWsCT|=`0%hː@'?UO8X&$TD(]JIH2^]L}F6Y,jȆW_+8~Ѐ$
7] ler@,/f/ohW]X_sy3_Aə\h9MwosKA%XIlm)wCe1T	ia\pX˕UhUGPq
FQ0;$yv9ÿ~MZk"kqexn[oE*^_{Wj05\UPWDo%h9԰WE{)0-2Ax1~t޺8iK86Aa?N9jg'{x }+*(|8o@rY Lpa,>: EB!r\Ŋ>'2_?$t.]LR)Zd̉^qVFYQW.@*rEUzEWM28N+t?.ZdK+߸%9RD%_sYFoU$y%Dli2gKx4ҢKK^֍;6͜omRBPKƏ#OΟk75};[q"k3͂2%(TV$w)s#y4J/_3_褓SJQ\r`eҥU
\xVE&S9v-D*42w@^(_" v#@![%XdR~iOkek?a!喦4%ԍ8(Wgr;<٧ε(X K=@	@QEė(هE\F 
8O~S:ICSME]+\z*Lde	E)tm):!V9	Y+PEd%pdmYm63ik`Vo󎙐![\̓aSC1PhJ10=1DtP=DG0ti}EN(EO\1L(,@B+NU\"T\Q!+\pbHT֭`mXI֩lґ4&ik[m>K`r+ IZ tS$E ۔U^$6NИȕc	A8	/ģ^w@="[cW@X, tr3,h$/X 	I8S`THV&@T5N9n=lE KUZLBc8lFw!Fe7y?,1]nՏw3ْw/0ENr!q	S:8!)90khÎ au!uf2Xk ;cx :/H!aT.Q3#>P'>O\q"2
j,+Yao)H֊B?}L	r#	47HFP.VR?wxeq$	WC
ӤBΈ972}h4PH:hv }	0|zqKoC@MYA/S|˦E@b,#V?2k0@jՂ[ A#O*/d*s~"q;ļqxaJ)EU2M`dK]4i5)rA&%0vL`5P;0)|qR$@[P7UUZ@#4xk  *2E,*f#
c}$+_Z0x/x\"ʼXoKBesBJSL_g
LR~ɔ,KӘvuvdʹA L/8I   x"a  "S<YlXHM}Uz(?6ŉSjD@b\!#h'R"|ne}={nGVXB,mяf9a5wP(čG!l&R&K	(BJ8hj%ob6Ŧl-# Gǐ~lXsڑŊLnV]
E9ËNR#`4
|w!_V}ʄuS_[ԂyOzb2{'rYp㷇j2$i0hD!l>⊾i+áOƑ;
y2cZaf;㞀ʛK?NyX@ 	/>9.ExaX*H0w$|RIaTX	?%r3\Z6b%bY4|v.&@x~Wp#_[30բ81יt ߸@4p{v0bxt ܑC9кnAC{&A NN	l/#hi"څ>cCb]S1nQ.vcX%PDgp/ˑgsz2rW9YRqH)ۑq88(xn0  U׮uk 
]X C{ aK΍"?V6J8хk_]%+|tCzKnXAP]t$pN̶&a{Vl72ft׸4pA<5i#1-DȀ4JQ=BM<Ȭt[HqA@0^ǴsDឪI8ȫwH:
HªDpAVD}Yݱ*dH`:A=Rܹ9
fM#@v(=C9􃿩ɔ@= O alC5`=؁h> Q<MBvd mCq$+f'@	B`DE@ZYű;>MMՐӝ
C:V@e]0~7U:"(&0Ĭݏ F
E0Pv@d!!Iu k QD9"zZEb#7$$l?\6 @ 0N?P    #j)dE=\ 4@l(48s@|U?"$Zq㱱-JW<m֡.WU#W6Z0AZV*D$Ӑ,%]5TIe)	" $8,^=TJACl$L LGi vHB LtO	LA:q@,   D%P$[-$VP_MAC.>S1.ᆸцHEVQYTD5UWsQDX.AݎME;Cd]z6'!hI>jZGc %A`Q8L8Ch2O@,PC(CRV<V@7 @\|tC':p'njt APXQjJC-J- @lY0AsUa_DV?!yg
7iӎXC![Ҋ[?g`v8Hcߕ^e@'LBRIBp؂r"m@D0< ;Z^ @9AHL̈́ %Ԁ=AxؼεQDDPCeȊp:$#![]B؏U~D	FG82[%uYzGZ.)y	TR!ƒpGR%~@d8`8PTkn4^XC!`(~G;ȋ،#\@^?$ pڦT4H^e\su@o.Y$J0Tr".F:TgV`봪
|zOX7$nGyX1;]8ɣ:&Z##"xH=
L^iqk8dP1i>70"D G$*G7 Ě=ᖎ5=&®Ol֠n`Go"i&lQA1yœm]0ޓ;zgerx6Ǚ&wC:X9c+Y)KCn-*AtMBt$( @	qE@	A|2*=dB	\q5ͨȑj,$<8@I>`\lPjO բ*)1n2Om\Q9Ti@Ec\GD9kz6O*B* 1!HrDZv>hF9\jg}oݲ/av6pU*=t9LC'@0C  ; pLN i= ;l ɪɊnӞ-6HɬYUt=ّ~D"gr惵լ%2nW\%Lf?8q2~!DD1wbs0b3re]4H-֥mܲ1=^ƚdN>C3JC%>$<A,wXxp\p/*&
*D:blmtZTҎEL %T`\xŌ!vPP{v6exIH%d-zsP8sXʡNNv@\"'|	$@V1t  C7j@8|?Y>G>	/4/4JA)0J.7`.QuB#E@|+[^JIIc֟-,j-P#,A+@N?ģdٟv4⼃`o7{7"6I$d?N;H=N>=@Uzk娫A
'[f(BSY_(-aSn2ET<tQ*(e[ҺHGx?ihwD3;4q4G=v->VPCb	"vvv?؃ocp71qC288 Bx!l.>P208y7xPt[7MO7)|0~=z.P<x/&C-[cHxUu&JRYEٵ4`CN2_gb_6'}44x1fQɓ\󢵂nF_GܟP$p$ = $|$XG C&y[uir&Wy1^2{OG<c8!Go0RxoSpFSc'-R_mio?>?.v'qEbg?t<d:̡V1Z x%$G,C;:ې`d\o.*-C؂{J}gg#҅,K>9.7}[}	˙fgEH{TYx}pz;bs\Lo<CJy:)C1;@Nj
tdIݔ?wwpn,Dw{g'ODT|eG4%/Hxy_a9H:4k'_ՅXF˃6P4H=k3h)gX mx=TJL?Ap? (>|,U9Hxws5j<y{ǻw9x=q{}-[~6@RE%?!C*dUU\\kbquʕ[o.1SdqE7I*}ҭl92_G4HH#B:hf+Aՙ\>;d	S[o+vաJo%m߾^^Ç13TŮiW腿lVi5	 \]cӧQ}pukQ)۟{ /i1Ykxq^T!ysw/+C磢aw*j.QU-2))TU'YeL}Tv~YWMvia'ҡ-5|jtC*J,)˴Ȃ xbĶBFy
y<j }  1r`-4-r*	-j78YXs/P9c-rSն!d!D%\!Ϣf{)&Za*@/w3QTArD%PɇCjdKDy1gD1Vu0{\D6/q7Pp xA{aQʬV62]]sN|s
]G3t<.C*l8qM%%QIҊ(RLۉ	+*Q1RUg٩GjW]/:DxؤufiG.2{.`Y`  $61וw0Y+K_྘"_>I'πJO;.
==V"6VܠQ K4&tr<,|)
+w 
e*V\d.zX ~ђC-{ǯ{~ @&_'py}{
`;IjM^^. q0pI8
CB"vp#8{<RYQ)ZDU:x
'0NX{1;MQZJ7;Mwp5e0PKwiҚ!a=`O{Yf䘉1ȵ+\c :"v| *Ƙ"iƥ2n.
a`3D  Qr9GRtT,D!Nh(e*)۔+X&o*/AcCƸl	My
RqF:J>LR"2fz"SGkB?. Gp$@B*!$r(\dqYdD&JĒcT9tg Yܢ:
WTezRyn*Y+ )]i4.[WڥK`وx 13YzL1x4`EM.Śj1_g[%NI"2ӵC5`vLʮ|]cAפ8MUL
t`F]l;E[>(Ans(Wy(iU[t`-+
!t%v1;ޡW*ZjS+Ɗa,"\DR*VUdMn(̨>aI 8 p]Js63q@FWԸ&{D
`T[HPlCT8:@*Ҧ0o*E%K	CómL1l.s"jv%:nUj+"J<]	)7j1sZP3Zb"+=l{4aN&`逆7vV^2Kľ'k"(mc/
REP+s ٌTLb\GDlƎMfɄGqGLgUZ{"#1FRkxL$?>) ƽ%Qhpq
	 ṽ R(7 JD̀|W@5k1q6: ILrsC#Iױfa1l&(QLf|TL:&TarBb"665WP|ԥhp_m#i@bV%/-7%ҬuJ#A4_Bsz+t-B,}V9Ĺrq!s9h1}D8$~liE(D8PC\eJ%QKBg1K5q8+>ǩ:LfES=ms0].v  ]F/r6&@ rnf@ܚr!(*}MfqTL{RܙzɴҰzPf8O{O6ޏM=D#\MxTf6.reҍ4` ?AJLxz輍Nb j.*n .k%NA#oz/&E&hK\@MV(ri{)U6l7$!!0"f0BgxBXpd0!/H  ^ #J$P,
(4q`#8|"¤c@c6L(@,I$\Vv |~7<ve	_6PG)kDj*Ɓ7!eҐGJ0""4iBvU60QB#Rex bSt$d"bh*YtH/|Y-IQjB"֞D﫰 0/52nĳnnj$Q]e>`q<1) "BI,Z	=1NvbfP$qgr!NV~gl" "h)KYi<Ez.a#rJQh%NܺD&,)0.JV
1:0E=O)UBAnBAz()Eaf 8M$CgPƎJ02,J	!~{RG,"  d9eľ NBOqͽba!4*	1=0ǂDʱ_Ӯ& eR(Cb:)}sAR+%RBVA7g>A3/hm+Y-g~"D2E
ۂ/Mozx ۺSfb
SSTB;!vAy22q"3 
ODsitQk. .@AfB(N=Kf6q/@ejfD4-d!J[@EU56]pPgh1j&"b;k&3Hɣtp%j!`<AʄDaV331ES3(1fc55iC6m3kNY2"bQX
}҇ 9;JDR$/)3f h&v􀊁1)81LtcnI12w2@P5!"\JKp14QG)'Z!d@OsTTD(lvrU++txP4"@pzj* ,~@"dU˰IRFJ2(!  }fSd`HlϢa=pfupVCJQ8*cGOk!dId3L.nLeB5w()VC0tG fexՠ.ykj,Ep 'l3Ntg./=+:ׅAF ȥlY`!m5."I!91b@rV"Jj<(OSeqY}M%IXl)4)i6W4նF<nt4Bu"D%X,i#bx 8a$Ƈ@7wgKMJJހ`I(ʌiBmG3%<9V0M%"2LQSXX=?S=4@zK,~7$~$a	xP*xCsksFVm7[trCrPS!1^7"A`|؁`&yE:$p۴4+ld`N )·qf*&+I9apk%>&$4ko"/?̎'u8eeӗxT،7UE,f+dE[s%BybuxL- X$* xc#YkƐSD ` Z*7@1Zy*JT6a,UocbA!V	A)Mô8ŴlRX5XX11f7"/
Fٛb g"ho,a"ib2lhK:$G'm  *#t4)VnB>z	Hq92;~bߒ"z{Y3cD%lf4lBjhCwXY4:uCtC	WJ(Pw {d0O@2К/qzkl{a~  ~)T#7D{k{>A?msji8fbpz%2@J6uV<B\&X֧E(R&dCf4͹:«Z$AdiP [m咓Q^HHCSflFO;{yV U/˃r?oV)@$wd)]ΙKC*bBAbg	 h*Z-.1DOlJHۡ *zgCo@!A~8ۡb `<!B`6190qQuX:=4" Y@DPG=S˟4˥Arᑥ)rg-͹r_͇դx&0*"Pe @4(AA8۫Ӹle,``X E|]'b<P60о"oGoSpml]eʁ?	f\e4e'MSldhcٳ"-Bt)y޹-<l^%A*jXtm.weFR	U7 +3[ȡ,ۻ~9,Ǜc2V'dqk;ˍR7&L4p{)gU Z{
oI.Zgi~:g=筇*n--Ϸ=}:I  M޽~^WZ_  EUbsTdx&YYobՍղA
P~e(`jdEE&$s"+jռ7ߙ:.{lD 81#ȰÇ\}m@gCI=',)2K,c>ş$+%GFk/dҡH*]:VPJJ|K棢jT.ejٳdl*sťmWEd|^UE)"IbL2ʕI.ǹ4Θ5<GS/a{M;#V,	NR#D[$CV:pK(Pw4 I:[1D_x+/i/?0,O:M6|e R$C^Ur=xVV
+{?$deJY|:%C	`$>c2!fqh&?K(ZjZC6oɣsd[pr)WfsAsH%iݝdO8%(T;  >Xp~6ЂD9
}gMR@r@
H2ؐWNu=&Jr"RZ*W>zCJ
6ca)Q#OhScgOZhGv#,[^&dfqO<arH#wIvSBMby3#G9%KO<н9;08p~zTIUujT\ejUVuR4Ϫ&q%Ul[oEl]1B=,#@lb@⇙<J6ҶqRDH"ʖ\n>f<@Р9pr>r3P'pᠭqLǐ~dOub5j꥔?G٘x9WjI**SσCWiآR=s!}JW+ӏA]ӾuhLvݙ<_k?8=Ŷlۖmp37~}pB\߆;Mt|pBhf0 HJi  0<<>TQ.dv.s]U\;}e  #%x&:Xhx1K磻P,V`z˞J3"]Mf62on!6Kn"SWB% y@4  GxN>r J`  @P!R>DcR5bLuP.J8Vy݃R;^ȇ7DJT E94?|+Ò$]1"ֺD( l(%\Tv.,},H?d	B5  [6sǆ,!|J
]CxF 0A@T n$T,Y3N4
WlIѨWi˲v--%w
Q6BE2h19"ش^R%X5-S]'In՛fnZ4Y͐C<I~!yN u#  @RXxpXD$ C-;-@$
Zur<@(XP		ow%u#:L*rX LLS:$Tkюp"Z`Zi\JԌmq+*owCgB8.bDUd$ 0 [Q3 1"#vqLN eB%ʅ.!V^Pe+@,`2lBG΂ՊZ2)[B9etbh
gM"{DB9	W%-('m? (۸|Y)A]
;nS^PȺЂ'墚h%T1~};<2u`ėŕOa/8B@5`S]2Kq
$@G a%^uأdXy5WOEaG߁$Vf1tQfC
aele	#<zϓ	]h"mBYO7%2}ix5杠ې_yZPX0IlxuKa<$ ` jpI}-c$kl4rY¢ce^[6`<L1OK;_Zmv+("$>u>/ݛ6_mlzbg.>LWIc2 l nܩ:j؉$j μ
tR&hpTYG6԰l9)Ep!G^Yt
ud 2ZpQ:}iCveɺ뷛E\dH:\8Ĺ	uV%H" zΈ5(D5XԂ=J>D\(Ů<qa`L-lwggG!t:,wt6DS%S1u
db+Yܓ|ʔoMKEpv*|c'@ ~#a`@&10 ⃇@%`\U6`OeGQdP
USACW;$+֖CgXAR(mp\`r"-u#Mwn\K{LWt,vTboVD|~ӂ[[qc|5@pOM 0
p	!?1`71	3vQ1[XpC1(yexIeynf#l `	xt6yR}~44$fn8Z{
!(LD%H\"i&\Iu78o1&pjd02=AaUO	) '21x@'rgH*T23U4Xg1<s(J3Qn	:>DJ{t5mHLb%a72\·f	xՉ90w	qc P@k7;qdN2)fU9gn+r;#Ө	v<2w<׸zR#WWHh{#+4Dzh{WbA@$0F|\\onS?e0` u@p !q"q(7r^^FrA*)B+`giQrfziR8Bn"}{)%$:rh{Za&>Ecb	v;17]Gc2AUw䡜i	 1`]v(A)*>qW7Z؅a2UDy8yDC',AZ Z-bK80Z
ZKKܳ%u3=	'[X]|T2?0e0
܀ (O2t72#ScVI$xXz$BZ!+S(4Il&u8P!
4
w?GZzLPQmf$hH%Uw%/UX*'xу0r(D  
+ 1p
3:W>r!9)rz4
Āf.ٞ1	~1Z`SY6	z]
2Pg$=t.>A|2XI ȡ`	8Y ~~	2 3T1@ ڗ@eA6P!Q1Z; SXKZJC[تը8G,Y<zFd{RK(U-%QB202\ F|2kvzT*!	6h9!	2 
,p(F 09ۗ[p{E%\ƖRAsvY{<xaʓnvQyuSx{-z|Va=4Qiu*Z6U&q@~3T%`T#ъ>	ss8PHe5$	2h\s$K1Jv;+zJvW`UJA	{a+ZH'eZ8SJ 8@,[a{[xN!aw 9U\:d 
ܯ@<ڣ`EfF):	{j3R/Y*+{LgC42̚1u7$ޢ$O`x%K0%vo3iǾI>р6NLe P:UK0ۥ] IaL$M,jIlB_r*)	{$Imvsl[ynF=YeYhJjQ=SƸ[/fckAS2pUkbq)]G\	򅐗̷3)*y\s|n)aw,J~Lڋۢ%$d[SDσ ]i	F1Г  ` c0
1R #JѮٝFQB%QG+S
M|=0IJy sPY+_\j=",b+φBMJ> p-  G	A)k06a֩M) ]Vk( I2sI#r+2;
LL4V1C]AΖ->{A]'ۈt@55*w! 	? ֆ1qh=ߕaS1srJ\Jdl~ {0}ZQ݊ͫ
&,]ޫUB9
˚?2a~c<daPkPƿ!ZNy 1Ȱ][^WTPYEs\-a;Ӱ+=nf4[Z܍a=/~K?mޭ齫>J=cG&Fߒ+1Ȱ P  0*mdGAV֫b-aƘ
bHV͍59`I33gZ;rC5Bn9[rvkıɴoqQVMPNX8qk:}hL)kEOp]fHk6;MYP	4뤎S.5?/҃--^ԨQ.*\Jn])򛩭>X-_h
|k/pW c.P'vYxo&F+%ڎ+Gb;{uF%~"g>L~H|QUXfO(O`J`"#SKU+a@ #uoYA 'c|D2E#N雡FObAJQ-J=dĥߕki4n[3 9	.dC%NXE0Ө1G q2AovYM7ԗO.&%II>QwL3*ujMTkτ廷v-E=Pܹr[Nm>y|]p&vːMM<YQ+mܹ=ygNwfkر_XmmK\s_?8YqɕoRΗ+Qg޽溝
1U(\g2,	mc܂+/EYL0pgE*l%|҇!V[(4}YWV5dHh&pz~4TrI&6qnq!H!n#};"<Jh&lbS'[= =
$Tʫ
)T1'0+g-H!B=,BQIe-$elqwd-Ѣ'u2*%F$iW`u։j$Hp@{4sLjk*6ܳq$z*N?ڥM@)W@
*DZt7PSGvSGU4U,FUY[5AN+U~8 f/Uye#i)M7N>֩ZbRo퓯\H%\pݨ*+&_@4EPN՗9-_mAaNFQ'UK;ъOcx{!y,e+u7ܢI^HhR矻:!Xn*5Bp3'Mj:>Z`8>		>0vC9DؑAg\U;ň)KXͥRy   ;@$-~p٢7Ȟ $jCdsZEvtOuFq#wSOEwS("kK5	50+$C%8EKm/o
F,#阎w#H:q]<_}RrdgIL Mh,ؐ:amlW.gTQJx(A9t`f6	-m~L@!sd{(FHԡ e_t .70@<!!n}ÝI10B.CMbc8]I\Ǟ]1nc=bW\(EB-?PK'#5)ZH)2~HbYHdD+U,7P8cfK$QbH$z[ Iu(ZSnBד`Ny~K-xr!ӹN&(n>)`'G&5uOurЊ/.IuIQJkhI?r @4sU0KꏏU!"=ސJx,E^kMgzerj~;+EmZ9*5k鬥*|Mm.>P3AD((DtDO(^AFw:d+чo$ #%q SeX2LҾ?ǛDi|͵wͩKhF2$IUXCHEfIP~$ddjeD[:$MpepN+6G,  '#ȅQ?`t|Pp	qyr
.[HiI^#IGX.5VPS 2'HIL,vDq
XGp#'x!%jkȕŃޑH2Lĝ8sN7ti9d2Pb_Tp{K>q)HS3^6[=GKW?3Ppe9$II~ !_<+y$ŕ5tM^w&4aQL.ȐHtr3+k1a)Og7&*Q{T-խrVDL/aeliմ$ 4^bhU$@9A 	+WkD[mԭPy ۱ɸqnX(D#dwnj:>滵{/&w:oV?uZ-)ʚW" ᆖ. A YLā98aE5X8"i9*x&[NO'Ei]~RZvJV'oCs+d~cpC]>3mėgl=۶҇7hI"~BڠB ~v?EQwi3,l5z~LZ'-IҐɧ(%N0;Pq;k{( t%0+铮ʫ*RI IB{u0/kb&Ȧ![x#\:
5sԣKq=@)DJ*l3M۪WAy㛻뢙O)l3RJA=\j "G~`~8!|b,oXnaO:%
A![vJrѪP\hQr@8%qЀ.J4s1R4,Yhh9=\h0{(y 3}>G7B/&`MHBP+2ytʇVP$*4EBŬI3?1%-A8_M|%CI>=6 pi>>DI8q!`i20І6xDm	[X0=+:yˠEP}<;E*V;캂ЀZ$\ߘ0`6f7H$*{Ĕd9k,z5kI$@}8	
R
!&c#L022=(HJ35Y/|JM'P{80+Ɩr%
<XX(8ː"m$?ck. pKL̡'P4yR$8TB$`MYK
BP8µ\{j]Mm 4b61q@IP6ASN_@(zh!@?xƌLtGĚ;{|y/+30HFQ/{Eڨy1<!I p ,h;D/ŴPR	$Yj%0  >3ƼάWDP:?;QʏHiO+,T 'thYD2s'ʉ` x,5d2q"00c#S˱.1q+$P@<N<=-
L	B+?x*<*~G}<@T$B@Эj蠾*nX\&c" ?HX)_DCH墜1H@#%AQVHb-tV1ډG@QѴ&VڳG"RrTغqRKUK7P{Yv!)}eCWP#\Qc V%OJkX΅h:QTZD'iGXHY!ʭT0oAP9KcYM#`Y~}1ó\i	m  Z`@&P`00&d܈V]w?żn[  C1[.kE-Vn}@8ZEHCیU%i~ 
0$S7m|WE*;$ qȅZ+3!D̄PK*U@ѲەJ% x[S=FdlJh1"ڋX2I1`)%)c8&.jo܈~"U_x!L/iJP<x@Vi8)WQe[5R=GE	y`Nm`&M{P6@r_8s[]p    Qb3oc8@QAb%39Llbp])?Db./tG$t
ܚ[^{聅RūH"(0>\-xt%a ) Hf +`;;EG(RVIq-H2!M:-VU.R]B(9cȕͳR(_~(=vȄªAxXfX〄tՕ~(85HQ6b}ت@6#(LcdOg+DPj]=nMYVٺͳ`Z64h:nqIZiaKx+\l2цCY\9sL%JVQlPS2jR>@.^G]tGjhrM
Hʡb;[)8=*.fN`kZז.NI8iአJN#p%b..yb)euj|YrjKrlYZ`:f5%0dZ@- ;WeI8N{−@^iĈ<ĿnDg8ԢAWcWVnG3j>N޿J5VjHvhy >^ Ama4|(pG.V4O{gynLi6a\ǈcp x?;#\em~h`E]&OxQت1W#al\/lܽHb`q`SE]Ij@ AP_@h1 Is^YnzU{%as(aȆA}'Ӆm*8]u~]EV+$3nJqOMW\DuRtSeY6MT9_z( A`)x9nj_8%$Yr nX%Tp̫mb+)pO}NeN_7^d8Wu{ v5Q.ѥi3K`d^!y ,Y8A^c{z$va5ӊJ\g-oyQr1g*r?eweu\deI  dCn2@D ވuzȸ`F㖑W+R`0;*= ]xNsu#qxxdM?`?PhHyXy[VоYy`i`hUvba| $+ "^Ү|{؁_8 ݛv*VJWS1Yd%2l(p`ÈIdXŅɋ!F?>,$ʔ)Kl)=cƔie͚7w,psgNG4C 	짋)֬ZܵB[iwB	+ڭK-Kc
Em|a]{ժĊ3ne9ǒuËS5AP!=#T!4Wd-qk%U#v9O[:&{fq7AW\F&Og;u(fς ɽno	A}|yMq	zzd4ւV? @ $dd2FK8 ,M\HL(BAVLlV[If?0nKtR!'_Op@"sR4W%zGJ9S77CS4	=byl iU?j @ 䠕N(R9!z8XH&T*H8CЈ+؈u.uzTR^d0q(ڙLD<RqW̒
zrIA1Hٳ8h1IYA"Q^ԙgc@dg"KȠt⡲	Dk):(F0ӥ\}ZA4+*ߚ*#	,[AJ,'Յŗ_\( jYb{t-ˊʹ".qsM("M"j*l/(+Ս#R%dփ?I6Kw$)g㉪$(v0g̋UR͕"P*9x=ҥ3.OJSuI[r#^}ߪ3~@rs"S+$^Ӭr0	%0V<6nړ>g-yΊpyͯDj:~3;"ͤ2e8^©w#{|`HqȣG2(уqn0ځ0HxT}'rU>Ÿ,3ٞɯ*;錨jX"VI2l]I4bvl d o6(G =|)
灂e`G濗Hp v
qY.G~H_h6SW]'D`Ara'WI#,E	`lċ$ԏTqNvXYYczE&ffW$iLX򒥳&ǔ~PB9J<d7bXŇt'4qX:(,=H ߴB [)!!f$A )iBtմ2G! p'By  щ;)X/(vy< ?'Á$P2SABQjJf62Na<NJSa?fֵ$S=<	-<ưSbjB7!a"BUPEzIE	s87'Xud[Ve+j#f <uID .Y@/fy,dXJ]5]UksYthsiT'8i𦶼<:Cƀ]AA0
7
Z¶HG)+O02DYa"܇<x53R$٨&"T01'gddu
ңLL<6<J9Hd,?
#8O8l:#(z}7Hg9!y,LI)PTP#`G;'TJfN`&+ FB ?Bl$de Š}}ՠrsIBO?@5|%Fd+W!> Ne h 1>aK&c]hzEF\:y2
OiJڻ~6^q hGL24L-t\GZkj 8 1_rb;>OneI!MTYl_$67ed 8A{-H7KJz @`IZܥ
Pw_N{OWVfUrq
Kwda gt<o>	]@@9Vs  jI;8nsUy2G+Z!IaA(]"畕쥳8H}NV1쨞I_66wݪvh Yey kQ NRjS~%'( E,w]"%%^L`;pؠm>ߟtO)$'aZPA1|^LLN# ]?oD(mȃ44%5Wd
M~DIAhy':yV'	5ޑ~x^@!86@`QlDRb@SZUBrpD'@7 `gg!<68y@B 8L ^LNqR pV-2 @ x|HCu-" ZaK 5و+aj4 ՔmGW~@"`h"4F4Ѵ=];ل~ rr"-I,#PW80rE8y>,_KPBC=l9B).p!KL1'vQA֓7?8ǍĈhl$D\]K@tPU!E! H$Ea8"ΑC=դ$QV7<@&zPk}Cd[-%$)\VH=B&MQv*R$&NA<T[}S%EPeŬAKmC!y4TGUc>	 @ hCeuH΅$`il#hCם# O?t	V	6#VMߕ]WƎk
D;p=%M_ B?&pq8X B!=E_[z{vP! k9G&LrOZ@:W 8⒤LpS}cgI@ H>-D-Lr	iV#mY%CA-:؃t!`{|CYNI|݅VdQnJ9CHh^ (TO;|mEI!{`*T8  "`f ۾m()V<Pyvh Єa+}݄=DÄU!'9s=4?8Zil78dच~*,I	$@ P\Z@ˮP48)HtnR^!EB&lNfw^@qzg vn(zH?(v #V@9`^Ot@ ǥ@&BM]( Fʆ(YrMHEfNj6rŢG^9d|Cʒ* @C?' .E Ro2kX(	4b;1d' yhr|ܧG^?|Cn/C!=y:!nzރe&O P)D,+؍Cq=t b:AZQ)?C7%&rX-]$(@M.2gL-n1 A	+6mӚ֣y8@A¦M*.Q~]+zhC \bE8)=uO âĮ
D=h@>ԆnZ" ZT!-UoK(hnL.2ؤ\H@)-VN>D6)ZꂘVEig)0K̒Ȯ|
$r p@3,ʄ=A> Bƕ	AUkD@Zx+[&1D	J	/e0:Mp8*4ȅI]M#ED%SNW-.AJi-`]Y'E;oh$|R :]$lC /[QBzRpg
,2\M(PȰaz_n2*=trm<hȇ׀0kT{ژ$-EF%^|B8/xAp:3?D$ 3^@8)2@ yH)rO" T̢P1K9YbEL_&
KPHu3Js?C ňyԥli.KP68Ew顐|o6΍܄11{^ߪ4211zLƎ44EHrnSz'`   g.mVh^.sz 4iuk4̃tɴC&OeF*&KȫHB$tK\!l& e5pn&>DB-\bò&&;0dZ8!%Y\՜GR=B۸W- l]ZGCw-0TˎwK B)q/\$$,'lJfkD_wEy@<b/Ǒ\*A<	6.8j͚ϾE+}J
i@/ - MytosWj<@OrX@N<Bx3N,E;@è^=rA4C|Ю9ۏ5`	,6K@`*iV$R#5mX ~XULőX&6VLavvghD7tBszwOB !7^@6j+J9 +p.+".CǫMp\Zg!I TI?<\ (J3z(_ʃXvOv8xwH.=	@dݜh V.:W/IIn~if5S1AmQ5-_zw
߅CPA1  <?Qأ֘s=y,!l9َLy#n<קDlVug%{K0I!ThUD/@ l{G	 L8Az~3檏R;vT@ZSM`8  'H6t(Av70*@UA>zԩ2XslM´SM; |~7+ڣ&f>֫Ȫv4uJtf`A;>2?ѪӊpW?{qk ϯ=?	1И,
}n\DB@hHe{S%K23'saڈePC5ziRK$ (, 2Ô4 qUhVȠuQJ+SF^vM9ڼI]ż$+۩H0^ŋ7vR{D°6,A&m1Υ)J@U1qFqߺyj4myr˙7؏p	m1panl*D.F|
 GuҶnMo gr>̫rH4	/i )1棐*/gh3J;ŕ<k' Xr}ȥ	¢IʦZG+;O0 ୟxOy  81)OK d8ƃ: ;E 68ҥ~,(PTjш@M@i(UlK	ͅbOɅa 溽̓V]lB3 Dl;Cd$2 [NTiUJ,
Nmu ;{i-Jd $^p!v ;gP4hiÕ D	Zƙ)@$ KbtdDŝ⊉-E_BH^ͥGpaa`1NQxjg=h"餕7@W4Q#Gm$CJQ	+Be$IHSoD4+P/Jq6e0xۥkO	FƱ p#OfP gz;  ]v7"D_,[v_>3P$ N>qc2Hg߰_(;@90׳ ]EQU6شyg
pD	gnI|A.zg@pp˹".}H74! d))IHP}H%@Pp*P9IJd.9art(<
B )n8B OdB>J'c( uiGΌ8ѫ,;)F;~Ip#ǥꇠ"F{t{q5Lak@XIK
XR1&GpVa8"%1D*tB*$j%yK0= ep `-$o8Z)/z"TDс1);'  *Т/΁h \AI"@@=7h,3 SRd2PR5$ŁLB1N&xK?>O
E"%&*:1go90yIwi%LdAA1Cr1"F~1!Xj1('l ?N75ATJ8ㅒI%ؐtMJ;hѾH	aMGY$Mւ0|B]oh'jp-	-XPa;Sِ}hci4104S	bRzCxvJ	9pGְ_C~7i`$b}|
$2R~fpTv7h|	=Ȱ pr&jzjkjcG8R 1g {	Ru#,LΣ@q Crd,qq1<2d,Ph%E42H45h9a88 ` >@  6/8A5Aq<cCh[u%y9pQSwH2+#cH>J;qKH10Az@p@=0aI*J 
LRMҍ.><-F*nW;x\P|%X!V}5}A̖wcQIcǦ0Trj햽&mx%Y%BtwL7 nl.pRoJ$00cꫣAM
}KVpd`hG&j$qӅ)NI #mj$D=\8t!K&Yy"rc''&GyasH` ?}c\|K!Dl캶$EQ@_LB}PAt;'E7DKubԐA1>U͙sS%n#Ld'^fIo>'{SůiGc
F8]$+1SOS2M@gje 
3@( P`H2\"XbaFar $nN\/ Op 9 `K<o6&ڤm|D'!.ޜj޸N02lMȁ4 "Qqܬ!*^( ]@ gPDߜF66 	nae9aCސ(PNE	 l0  !    ,  {*    6+192263-9:9 X p	4Y 5q1Y*o53X5*r8T?G]Go8EX2Qr=mvT	R0T5
V21jh2y'z*3RJU+VS&qfAo(Mn:nSI3oGnN2OOPLYr\m_UirmOGsRolkXmpl + >.2	NUai4R1W7k+t"{R8f?PLVZSmZelZo[mpjl[fglw~^olYllpWpp{s12WQmhqoHSj|owzƏ~Сw{066<L?aNT6df6[^%kr(NQRkkNtp^FtNwm{1_]pd_rh}̺px~72SoXqVfXk^hw^epȑ7˘PǗiѤYϬhpfqutƋц絑éԳьҦ양čί·Χקغ˷ٹƺۦȺ˵ι後܄ҲǕаɉɖЍԚ͇Ζҋ֙ͦα֧շϣ٧ݴ    	H*\p=\ePװ"{3jȱǏ C&gND\ɲ˗0cʜIc?c͟@
eHvC*]ʴӧihGԫX,& ,ZÊKkNҧOpn]˷߸noۊH*^q/=Ÿ˘AKouz6iX,ӰcfloUlkc;Xȓ+Z@PH-سk4NNH'*?= ˟O8jNvG'˭[ Q0F(afe"IyN8p 	(	C@PuxY?g<U$FZXu>b݄(b%)@#(eT#~ci0<Ry3f_ h'sec?mD	Ҟ|EfFhYq@8#{e JʶhM>p@٦F*K ꫙s
+pXujLi>6=+S?R:Wu HfԎf%gW}cECP\yܽbaoM U  ;]vOO?rDZ49d]r"_oZk,Ժ63ur94\q}W,#iMZHG-|&1'
*\rJFN8(hku+QlmrE#^k<>-RkEq(#Hg1Wn[9S%M}j騧~(gOT:ۿ^S?#Eƻ^{O7Si^M'LDQ/o_𔢿UՅMBӅo~V`đe^fZ^O@RAI6 ,>LnB.C" j(R"Jȃ!̡7P'8SEvo2x
:<6R8
"U4v!HPQy_	t#ؗ$T:ڑyV𪸬+`8玈LsB+8 y !R"7m<Fȕa*x21?iȄDo4%ya̱04~ AƊ)Dp @P5+IMN2)zdЩJxM!)@yjzj(ǂtӏ`G?:zǴ4OYJӑtg.	-9}4MIсd)X+z%2hQ|"lu%)HYQ& p`/2m=Q.K	8߼dPo$e2miUe6O y@/ Cjp-;eB9kPt$i  dS5Q\p?=,;*̰-$^B@"Ϧ=vE,GN^&=d#xiM9ZӖVZe9,PEb eMȨWߎ}ntq+Moc]ᾁEK.u^Y0MUP^A9ozXVm0BiO@ oعҍ͚43J;_J1M{bz%Q,V!پ2u%4q*ErD [*<}@*|ETձy99Ρr1'/2^Ew\g).gJ2[TI1*ܢ{rDh-?RV¶ Co0TvphGGԍT	cgj9^z!%;Z59j&{.6;H"HPG(wƨm}g^X[Ξ	g"O`|أ^o[qkE0@o4.ćMlNĹZF1L܊HqxUpvxθ[s8aobX 2@~I*fquA(guk6O7l 󿏱n{36xuM.@Y`G bBz;'g]ӹwY'nABi#=
k=@ '(;Pv~Nҹ1nV=Q,-tyE06 *=@<?o{ktgS7>Eey&Kyws*`0 m5	0q  zg }y}x*(7jP& N$?5BP2(", 29	%#7g}lw}՗ZXg*;Tuյ<ӠLWR[ 9ȣ%BЧzsTtWyQGi}X#:Dӗ0@0w3T_V	5&0p, v#@Qx:P&pxurX~Hlvz5
a0
<7x},p~AfP"t}8{.xokzdv0
@%Vr# V1	fh@s#h:H+炯xM/Ȃ3K˖ [Rn :)o`pVakq9p
&BϘ	8Nׇ pLvB-"  irt̐cΘ:(Wl90lj!Hl1@EgrWY̰٘<ou7}fixp!P 	&K{P q00 o360		ᘎ+;
1z:|gYxiI{wlxU	[BcW4')Gi	s г(x(S((-Xƙ ɕfwIU"p/8Yb !נ"ў :d`y	32G}&mv;3Q&[2 v b5,<b`zj:S $Ve9'yֹ,yk(0`  *i:#ət(x]8d4q9Snי` Q	07g
q(ǡGWs5xh[c_  fOo4ESj[^5}FWjJ\hJMxӃJ	󀠺ʫ*DG:gj:Jjuc' (`yp *@jH	zʤOڮwM!:d@-[P٪T{UŰlVoju6ڙQJ !X6]Q	ֺ+0Q0PWz)\8iJRv{hy6$nUI[7C	2`1	y\:?*TD(K&?{mW8rKo90 -i(  Xml	qkq@xh[jj򚱐e@  {{O	3eP% )KlXY|4ɏ:DB뻔gR+@kq9%Z( uL	(	@JqK&Kj1K* B!`X
=vkZ	b&<njo+F˱j!AIa9	0AGB@T@=+fk˶H\`ŶF|y AŗP16W#t`sG@)
9ƆǓ<hYħA,|˗4AzaƐ1]3*Y-2Kɼ
<ulw\ʑ~Į#,	a˸|@`k(eCw5%B	 `
~0]Rx,l͗δjl,ݐ  !ucf+REf}@Й;Gs;J57P] p$rcf× [R	 
"GY	dX{ҳ:C<M+ACP|ѪlSa~'<h@+4@_bݘdfL469o}nNӎFxm{}`v  =wK	~S|y`=ٍ1m٢9vknܟmaMײ\yڪm!!p7sK):ێ	]	A^m
q=nm׍ݪS7f6@G	jנvْMhИz"ǜzLڥ6׌2}#A.ઽq39MGiA>zMmmݙ<Lׂ\ 2~q=\8l`<QeEz-^U`&^A}71
L Zq 8J
Т	Lq./]Ɲl}{vK}²\QP.ڝ Vaj72 BF"Ve> ZKʝ7N)J,'.M	A	j1:nieq
DyȠlpuON8= p	Zʱp( 7A!q
>e9Hjb5=>)Q<m!lмOSC[b "0^:/|5Vw%sRA	z*|u !
YpY>A>1ʰrB)}LL vMY_>󠌭ښh"P@ ?PGΜ  r1~|0>y:avmUI_a O`N 4:$XA	.:G'uģ,io{'#j8=~ͤYR	,xaqAdgOI2<J)OQ3>HAJ/>x#蕡KiծeۖY2Z]WnߺV`!P}s#4 V wX9݌&{eLD \Yǁ*(RN5]m"-v4ɕ_sG{?^/= w8- *KeYP1l3Aa]S2/-ukP?,9Rp7x"K2\;L(pDI@I/rC/=joB!b w>-75#ǩM/S+IE\&r%,Kr{L4Yg ~1wI!I6CPHD$I¬ڒ,	:*uTT'ȐF_"E:\o=ugSPA:TJD2Y*?L/KĂ'&2})-PZܶ.p  
v-V!B k&*\IzMMS|bu綬PMD+[3ߵwJ6*!,qŲ\IW9z6ThMYkāp8;	2Ʀ^8P #[bg6[+뇞+rpeTS=l ,Qg;,V{I
dEiŌ22oh+hNaAa FZmc9[Mt~vk]CGhu"p"[</C~, Ɵz^n &p!hq҃b%<RsG=ɏRuGZw\oKQ|AI@;xDA 
X
H?a`C3qv(N@:A*h
HuOB9EkI雊y2;NYqL2.[l(nD$ -E 8 d)@EbTy@ `A\1Bp A!ŇVN,N*¨*Eg}rF>Q?<߃e!l9/	.{2aDD2Z Sq;אfChhDső=*c
輻!Y 0BjIF6
9,]a*4IÒj$f38GWr9HǛAeFMNYҲ2>0(B]*zDSCTPXsfQ8R٧ӍKT]8Qcq9b@(RuxZvOܨq>+c~֩u0F@6v}C3(1O*QTR|w)NWLĦATyI']&QoDD.┫@yY.7")I2P,d)4t/kbjHi5).O6;gc[D  pӫ]Q!,	
HVc+:SC)Yjit85L&mb8[ Gq{>HJOO4Q@\Af`ZL/	yU}7B娷ČTct^8   @?!lHv$w*|| `4FMI&xrdHur@Ft,ajv _YY6IʉAgV܉qPCſ1@rm$,{I(g6i5 j&xV9\%x!ް.^KLq<<lh q "G|2h"W.ЍCpL39H{#]QG7]4lv9_Y-Yjr[fE}cE9G FbgT\<pBF.C{=bCϭ5&3D?L6PmԴn(ЩoÓ:ޚ㉙=oz){\;9	\"p.Kaff-32X큀ANm<=vTmQ1Wiw}#ahzFAth	Mz)$,/\H
sNڕxOva;LH%^x_( ME0k$S(ByuV;o<`B.Oϧ	e0SP#}ӤV=ZUǃv,^@^M{6IA2zm PRB 9K i\õPùB0P(kț!+sYp8? A"Kl!70+{80z3 ;1$+[<"<	۹ԸEs(Ƴ.))Ө˃+1/)#= ~Ѐx1q8'ȅ5"?P'$Ԉ#d	"	d%[p2ha3C@fD>#\NDh<((v6/h-@ A*7 >;"\ (C0S

TG|DE7fTBOk<l>Ɇ2*q+3.4~؀r"ZQo P'	C<<r"P8' "Ч:xB`a\b	s&,BRL{F̣ĨnlGE\s[ۡ+87S2IEõS z ,L#E
"P\:JqFtD̚tČDs<eeF!˂@A|<xɧʁ[@vƠF|+{~}䱚4bLEA(SL,<D`ȇ'뺬gJS-<4nD,iKQ#I+3T2gW)bvѽ=  J*"5;@Dˤ̤	Hed2Ȼ¸,ϰo6Aԏk+AMѤq{Kclx{ zA3@L 3Ǵ5,cʼ̆! &@*Ņs6+e`Oi$k<yOddbA
}x3|IL 4e:B0vLLNcID 
4O"JhOjt$I=UHϴѻM0GqRX$/v X zLp xPBP (O5-P@	2bԃӊ6R  JLT\ñ>_&$!TlKrSEt05gHO  GPR1~ڵ" 4R,g 1%63}Hd5
, %[7ߠ6iB-0<N鰪KCMb3!2WQL0`N@y9ZN)" ,UCKU3	4XS*ͫH@}ӎQ0م]VIg5@ : HP9|;47 'ӑ"E:BXOA)C?bH(e5$ZYۇRMX*mځ؇t@EC@ Dy~h1謌3"5.\[ch?̜d\4]ܔD\})QMy`<bEX>=VIJmf1Q9r -Q L=	QõRPECK\F٩WqO
|$øMM`?MZ+굗x̠kPDYr8ThUrU#R% лcES	!{JZ#Ҙu̸Iվ*brQ`6赍Ǎ`h7XO _pT+	ayPI;OMٵ5SaO(8!JOZߥ_ӲaO(E>}pb1biӛs a[%2b^,>MB6~uma9Bxʙ;Lxaˏ`|d,abɸe6{pXx 塄Z<{ԏhMU6:]԰-,\_C02uRc=݅b2zh4֌G:Ml~.;T)Moq0ЙJ b+ V14mc-(%5:Ѓ\=^*D,QthUh䍟4qi#nni
Ę {` v g:!c@]7{瀩<F*#hFa_c6^jODf4h]`Ư^FDxB'{US1=|ghPr8׹NcPB|__NDEOnv?֘_"Z\cdeq85me-xyHwȯŉmP#˼mQYv[Vʾa6~9hMSm^	 ЄSЮ)~C80d{7PiHIP 23.zncQ.8P 8l
;]eIQ)\O
.տPY{+z-}1m6 }q7 eq';Z +tr6p$O8n'7l=`}V >
{:ڶ5n@Shq(j
OCk  [\­g-cE= N8',ctik	:k=0H79nrDK+ƚNҀ-6H)fs=xh]5v LZLpy( ݶ}GW{/[}JG<Og6N1focxzUH܊:Uj0/zxr )~hVOXXgZ  'oWjx=*Mg?(0\kOyC7@f>0 9-T*khOIPnk3nSԸUwH7/SͣbPr5	5H|ygu=仙`AWZȡIBx}<>L[<Ѓ4NL+ehi2)q+co0{-f~ɶqXPx|
	ޫfަ];_̴& U6MR#12 BF9?rDLh/!B"HBi4
ǎ Cd'=z'$q2ݻaG2m)ԨRJI$gحH'٥J^("
صUK1iZU.lx4 QhCpZ]{o^yMP{ 
^4nz0>QgAP Jx`ƕ;:|zj"()UrtYNOhN(zO((W+ZxOY[Y[߿CGwq;w)%XTdHŧF84iH1=Q2C6071XL0(!o-ԣ>1C	GFD(Qr)i.!L'uwS2z282Qo9{O#K&HReVjW'SmC\؟L)Vu&'Re?P5M  ?1` 4	i\=S ;ߘb?N2#lB5[D$۲1YI$QǕ	yr<aCx6pU	X]f1
U*W(ғ^5f[>up/ū1  d`s:k8a@`7#:`p
0 StɇCJlT?(dpQ mUrtr\G3~1y3t=%ϼu/yu=r.Wzςɠ =Xd320(9C	7·<3r j; Kxz=(l[=QmD?JܲFyey gHٰkU|_T}_mpS%6xC  Y! x&"{x@b=hGVD uLf'<rgXSx%X.AJɫNv}S1
Qfl;a''Y2p~\Nї:/)X[Eָ/E(j
aRf/ `2s&Q
(s
jؼG	:SwE|PDx=!sB;wBN6(#LyI؍G+]=E/$e73O*fפ/E}q#3$.e,3Q`qh<. *IS&1 :V'LC#=1fEEE,T4X
24P 3eҴ (p@K>uKC(qxJ8
>ϊB6/!+} '.q_n~ʑZ`, χ@0 )5@3\+HEjEYD%<خ(9X!uJ>t%D;aR {8B&hM3~	կb{T;K? *꧎i Zժ*F51 #↋\	㑪m-PԠ  W6p=sh$ EPg0a"$ıPQ@Y!l%$KB(NĚ4v	1"jc!I:81ovi[ ")1Qag9Bu iK;(O qhRŎv 09R9GH!B(JvKK}$#<)L El=CBJOtϐ?#m<poؔڦ$%#w,U+OIܧ̃Ʀ<$Iabf%yĠ#x	15$ cO#e1{H=0A8BHv,`* T~g7ҞR$)qa+ޒ#%	@[@B1g+ԽJz;3ř)i>fշF6u6$)<nĊ:vd#EiaɃKhx,Y`pd6D*3{h <9^$T@}nܴA%pݔqH6	)9EJB !}6vJuvDQq+ 	jς(~bD:ns6B~Mq ;  CP48E '{pGW`
^A .  )m!
TC酉:F}݆yJ8	3Agϟ8mzQ?]
xI?GYEoqE6{f= H0L  C$@/@3Aj_؀:hA?>=5Ql9Cô>@_c!DL	FhSD	O\xD!|B1 "[!	Ăݝ!	, ڟa;|,=HOO`pQ؟ZZ S'8p 4H\xðq!H	  h0L
PMكRlߵ5Np$I:.8x*=&,?""<348] :J_9f!|5)_b!K6%q1TA1 @94>@Ӈ "(]X
xNæpE|H%-D*E.Jn.˹)DEHU,A9?' C"W)M0JhB  8EC:9BD>.h8XW<fR5{LV7)JW$@P#C?\:pZ;v%Hh	lWwC/Ț?@F` Ŝ"MZIH$	kC|[N,AdHPa3d9 3\#9CCSZ8|؝}A	\0DYbf`4~C;O^  WTɥ87j"]H;%?UUgQRhxXX6dBJ͔tDn<&AoD!kWESp䀵9<f+4~?8CqC|C	J|cB') `bv%9`<\ RC;	ՁbYg]ฆ=g-"Hh bb(< (\Pf@$Hf8BuJ>	ֆP,X(HH&tK$/9 \SprQY!<C|3Sj܁AMV( KAT\i=qEv>đC>8 ílK=vl텥T!B4p) f7L0Vg;X*A=5̀F<D&WtF|[-@È 'CC0E?Bo"΋baD]1j1-.Q&0'pj1	>͑") c^$YE;ֽcS[tڴF<L$X_X):<_F   |$D+	 H+ jnk晾6aIRL0A@J@D9,lC<Co4%!_[`gr*$[V)Cnn	rqbrpӐei.dɒJEL;lelϾ`k $(QY{B#Ȁ>C&.'/<3SHDψ-b	*)+L*)]:(@80ނD9F*ji]4ъt/6,˖n6AAi֪ܪV_J;6,{3-z)D LW2E;   f5-m٠Nˀ
 ?$,B4V1p*"VLU#<C!њ!J' p' 0Y*]aH¼;xl˳x7
Wqq0$7P %1D.:oՅ(8*"Tq!Bo<!=vqyqܐ1MqB1x1b.&1ϙ1[3f2U=X.![=DiP, [X=DΚўZ9si$s1GkSp2j#&<vJO?8 '-YR`8HyR N/O%Li!ŝl4unI|<nU//9[%0ڃ:4X/`;l$iQ4_&SQD%lB*m@vw."q*S%\4CjzMR\lѧ'JWta1%X+M'V4`߆isO6	5cbU5<5V`6D*tBuDIHC1T4=C;0HѰJs5T[Ox^RpKBL[k
/>>r`GatQkb')coPC3aXofH@so(UcAF	rEGKƪY벆AEZI0{%_ʣQ=7g]r?s^3wq->J`ƥaO!w=|7I *&Hn2z7tM4+7VliK?>"EO˶ض~lV(|0\ZOTC75L[\"퇷y=l+	TF(,0&TR'A?'f35PDuU4U_hcv=Å9E"p=y!Bjn3b1JrR=J;9F5]]NQt<Tyyi7j09,P2A9\vB3f¢ R2B@#rp~G	gw^uFJ~ćnXDxn	[\#EΚ`ߝ5?CEau*'ImHPD{m(Ѕf;Pp{CBS!TBGQܯBL0S_s;ϻl׻zqC =} ;xW<9'|".8C7L`]'tC<Ora4;Si.v˔@{W+$,Ez<D ,|_,|$!XzF]0ד#BT:S;nŰ.R{<ev1 yk[Y+;=9AHK=۷="1KdE;C{9lQQ4"X4V?_X8X1M5"8/[Sb[Ļ~3o`ڵ{Y1D
U4dh$J.udH#I^P!Ş;弒3aִygN;yg?g`;u7M|PuDT#[v5ɝ
Eć"Ftun\s	*T%IRلdI5v	!ɇ!z{UjtPFp+zҥIkgR8scI)V,4gu{Ta%[ƙ۹s?"]ٷwQ@X}!c#,	`*무j5" ǠTpe%#m1	AEC%:ݞ&(JшdOgz(;.2d"ߴ.R+uJ<jÒ%z(4=:sv @0~q  (dI HmVa)ΩJ4H:ü.pRb+)^Jk/F̕$+ǦgkŦ{"W9,i%-gtwNͤQN\3J9ͤ[mVP
bOmٔv+ _az퉡&]	 @Ȉ0Er(It'O9CG%Է"-#|8տTQb@%u^auCQ>LezAh5a'~fCM5i[3Lp\qS)8;6w۽y y&7ކCq ءo:9zʭbNBJK-=d-U9SjdObVbr&]J&Z F6'ZIwcsHھS;|ܝ~Pf{{z pxGOB}DG }A,~\'ZKb}b]{He|Lv%\M.P	W1/Y+~G+bE+!G+:DMgDlRhyj8cI|:_w&nJAp3?N5!y< +ŐѷGa )QIP/{|bІA=PVĕhʈh苫W(A6]>n%Gh+hXEH%rt$Zli*b$=4kT1l5bN`#⠇XP8M~	 _R%k?zp"܄4Xe
1f W6Y|P!" a
hU_RAw8É1͇L;bvT+Y,c57'͹Cg5XaĜ-Ng:)ZVhmH7O$ĜY	z{CߠA	[X r^~ dQpA %ۊpY,{8SUU'?袡8j(Gqj%*4h5MVE)fZt}֗C\2îc.ʳ7#*P1b#$0|iԫ=\0P 2hO~LFi*luK
Ҟ͉&.QE\
 xk'Y3ĥgSC&>c jyGm<ȉJ'Yw{[]PVߛUzG6ໝua6H's % C 
5)p~+!lѾ)B(0(#wl%$'.Aơ[DG=ĤbK)/5|7[Sm]Ht\QSE/zkz'6\l1D돒vKS>A@*#G(r(d[.f7KF0bhL#WMc6.,ct|<&|~>֋x4Xko
!a)W&mNNE*cSTa֝ 
7!D"Pd5@d~i05䌁[zӪG)!G|=\Κ O֞ȟ\٥j	ǜ($L{P-[;
K/}WAEڕtg奘2Z{qYWjʛ%E#ny3nwujy^#|o2NdkAU1t@Y6Ӵ?t	%L1@4|Hxh&NiZiaR4nzO<~O3*pn9.H=E=(**-vXd\gu|de@Fe N`d	f#Jc	0'AG~Op:N/'Yv/Sb"3û9v\XNEN^0ئ*.E+$+t'-e@R&|`0
J/DB0@D)93P20'a ƫ	yT=fNt-NDA(FP典C$D`- ؍
aa~
wa1'ix":&B-2*	wQīcQUrm~O'c1X*,/HFeeXawfv/PqB1-je +0.Ɣ*G$+r.\z7"!0$NrnA[f~arB N&'7A s:bH@%TPGu0(dP܆p+,2BMeHqDm	2'lES2. lQ"J"!2p4C6E#Hb\M$21BMA@' &Ap @~V   a@ $151Hg/3Qpd\4Q.<d:j)XQ
TaDh
q& sws'Ӡ%h!F#r"6Dc#-Mm$Ԥ-'mk;F<n\;g L<'a$&  d ,a A$I^
A`Ae@ۥ@3&T3=$v>fHG'wS'PCLG1k"$OexJBnDRf/i 2s"t"F!Ð&!F*Hr$IE#<x̜3!zJ;A[&=s|@>@!    Ρn 
@($
 >~a" 
N@
]Xn.Pu44TQ-uTc19jAOBFu@dK`	T/6]7sbEJC,WzGFh#P5.}B@!:qc@C%Yoz<cZwm׬t JS$=l{lq%&
 "ܴ?a:`@@(U f^"o	pd!
aLbb'B-W)1dBB!21eZ)s
3 6?/*M$XfVv*o3NhzJ,7cVy6I=6%0YI;dgm;SlUZW~zZ7~6O[jBQaG$j\q0@^!_-` ޕ]@F
t)"ABsA*֠^nRR3kCP&vt,FS1S)[3BE}h3r >gbgj>όzo3ai+KpB¤70p;tIa$B7פ明llAn	@^aa)׃G 6}!(aa-@^a>(?$^a`)")D!`!Ny"E,đ*8zaB݃.φ,/ARBC:u6
Pjf`	'!h4G!f,{j^Iz;j9.~闎:9[eY!sac D	V" UTM' b"%4
    o  : N@Z In&ᅡ"kL3?`iBfjI5W
]wo6Dxyw^QUhix,'6!92>"&4%L_R6|,[H7j$ƖX~lif_^	 A=`AUʵ1'OA(j`hZ0(^ Oadz^a# 8`?ɡR]C: 6LbOH'ZyLXIB+:4قӺT൨`
sfN}fz VE89VY2>n4s'<fc|YNwMC82;<>LB4M J>XznAt>Eճsy[!@a a	?F^ ȀP  d	ءNH|y.1z'=TXFB@ra6MfBo^aymm"XRgi'[=M\[ą~Cŋ!C@a)ua_^س  _& 8 U@TEB&8@!f ^%ػd=t@VHEb a
!7Q1P RA9v"w	J &Ffƾri}4(y.$%v=7|˦J~ݞ!+厽;' @):_p(atE;$aRX̠!A7z`  !B_`EtIJH}uRQg@(?$/, E"U
<x @]c'aH'RFip_iaPd"̸d)<C89qr*!S@z@@@&2Zj k٬<Oj,C?{In,BX!	 ~-<ʕ,[4⃈̙3ؼ3'N4}I3ԩ䊞<4ҥ'liSDD=jKK~Q2k:&dsEZ&]	Ӥ)Z2A,jC0U:4agy:T	dK93Thҥ͛'!*T^Ѥ9٤BMDٴkۮM)7׼̚!Dċ/Ϝ9ϚoߦW:CT!q=S"үo_  ^	h)hO  >0}8dtU4@`<(K$JQ~8T"(&"SNaDK@r9@)GU\-cYC8D6Ip-V"6 X"I=auId3`JV3Ѷ!OT;ŬkYg~Ҧ[[۠T'g	iݤJ݃><cBŨ (#="%!8 
Tz*+NJ-T?,J0!5UPJ*em,Ԧ҄\n$c%v<4"Y#_*ya9SLf{rhzZ^=Sgyh?qg6(_q)
.JJbsQUKQsD''1+pZiCV>c1$w-Ĕ5Ҥ!$e&Eԥ#6a6qg=Ci35pCO93	pqz?x!4fLN(".*eE<
>D9G>I'Ēdi`Hfqab	q6O?x6=oٗ;֒?cqR<v&,\{O~~i+%
9TDL[EU)s\&<	rovdsRvn$E]PՔN];$c/D0g<vDjmsXjfD|DM)qLĐDģȯ48Ll!L
)"
H+rj!K:%cI*iR1E,AzK_A-kD|(NfBD#g6m
Mx-׋ۨ70zF9@VTaI+_i=~,SADQw^ЂʨMGH [3dk'ԖDFi	K9ՈA{`L9
L&NוP<wb39'❦q+>VCPkǦT-7*)ˈJbt-'{hed2@ 
Rp[ STj2!DJ2Ǹ v7ɴS)b5\(ܞ%>#3엛ý[͆;ljC4%qӚSCʉuک.\yW,ҥd2̦j%/
Q(*(LP3ΔZ4?6!-yեIwy]iS&j~iN%1X"Ԯd\j%5Qr5ћX9Ʌi^o[]N*Pz{JjcOt	^ӗ+5@˔S%(-1)}lce,\HTqޅ	NQ&s.K9mAKp;WK$ږ)իUnX܃28Ao~(,|Q,LD.r$RJƕNQҘ`F\J^.Slv$-ů8jKGJ\
:b<٣ܣjc-
2gTs#ƒIQ'Yqx#k@YIK{(\L`O]nyI{v4n7{ze@`Y{&*BƼ	^VZfe-xIVv19י4{R8ǉsGgBGmJؤ\M'>.ppzTxG^IٯJX6ţc+YYwdb
I	U!?/\͸,ɎPRr])w"Ο-sUU7nzޚT:}kPobuo]]G"w71	{[U2!/'LvȳKk$ |0.k>#g`
KƭX4ՓW=ASe#rr{hR({z(QgT)R.R9"8J,Wǅ+[q\vhrr	#O_C<SѰҧ1;a=oM1ڱUQiɥ=o\[R7V3$V %)u{{c{7ǁ |#(&DE1tw8
qIQ0K08̗bU}>#"-LtL
FzTAd`sRX@4yHH%c264%@y<"]|y`JO7VuҀ$/v{XaHV(|(x'x(88{ea/3e0He216qB^~"8G9]6l6_M@EfhF`H	$T'AHVųCw&b=3Dlh2$wX0p=bzP}>gā{Ȏ'؈H8RpV4?Q0h11^Tp5R9>¶quԔl>,M8Y<҄m6uhząPmh`CsJ.B`sTt IFgDz'zR)0TzpR\]kxW{ꨎ؈x؏{zHis)!`d,!
Y8/!'+R),(wJ`%I(لYL@MDG!;daNPsV~G} tBs&b0ex<h/n'#stUzcT 2hpَcչu^v`9 sYPdB>E0|8g?R9
KA:}L--Y;@w$.Kdbxx ;'%!tVhifa15AUIt'xQˉtS	|I=ZݩuID9(RL0B119[w0l`h
"lM:? 4ݧ$ 6YCxZCIaX/1&͘JQ[iglFTI/z9)O>i੖gYaEjqIiڣJ:v69M"OJv,^4}-3^Sp}G\Х3`-uw2`Y~ء>xqsBxF0I}/6"hbèGI⁏ʩkH{!
8#J+GRaBR8jYrr
#0Ҕ	E f.95g@:9
˨<ۺ!
V .05g]&[t
>4a CCj*8
Jb@Pv
@,|N!-3}W{9f$-HrSfJHM;7)%QĈ%Z<:~0LEnhzMCj0M)DWPz|*)K2AGЯK9P5^E3&IdQd-Zj.NtB~*(ۡ5h)%<&B+zZI"){%DvU|,x\;}M&a2vqL+)ƥ\MK5SXvAjrqKq!+i.3.6ơI:@ZǍC̭ſ	1`uz^lp9EÒ48,]U['MLTٛ"(q m}||B[C#ʛjxzy'*xRG<+Vcs]EZ?7c,Ed1Q(^Pp|V${Lb@֛HA5|mz{૓7J`P++\쾙<&ę{*Zt=r"SlБIA;v-hD$`{8 mLbN?ɰfJ&	4Sna1-1)A(½`[,yAtU·Ci#F,h2 4Ko(Ttx1p_` 0sРh8_wETfXdW^4hlXÂ`qr(]4-Ԍ+;x3lQj..ēD1n΀.P10dM	rz<u7^ֵMP   ||V8nXs^0n|,lݔ'	ګEݱZ0AAHHZp\뼾b\tkBOQ}tqO/V	7ycۯK@<Pb "d  }E,qL=
sq-kDf@%vl]+=SX*{޽ϠG$ο\CA$*ԛ]eakK-tC'(Z~,Pi1w[I*r ` `k `P	Pe}=v!~ek|s
<r1ƺL=T@=GTȠlGM:\T:7ߚ]LBo@5^I;%6y8jnXg    `*``A
`U c]RE%e^Ü\l>l@+ 3|lm~Vp䢉
4m:8mOdhT	VR^nNZ^]xB0<M1@ *adQ``Pp	Z3+-h?Mۡ@T+7M+#xX@M`]Å7s})LڛMOFmģ=/+tzS\WQ.d  *`Ɛ 
BOoҠ ~`!	Oqۯų"
HueLeVF,Eۑl? uכp+:e@pƄ.$._sF O@F/@x*a"x,fhi#<L<y~[ҤC.ęRH
lWPI.ETң&!*dhҳw&a^
SSJeVXefk?_S3'7	 !88F?{1=OG}XL
aɉ:Zhңŗ*PD|1RZl#@xu(|gEUFC*.X19W]5Y$v&dUg'EMWʷ΄9r|-\hV
h9x#xrƠ}Nb	%X%yJ)zx1(bQI&
gѐ?ZdwGӐEmD8l7DH`gD| -uvl67ESN5#|-zo(-> %
Td *Ta:.r/MTSqJ-%YdSS5|/ՇzDD! IzF~&t	|(\K&ᡩaCiDK_ıK^Lѐb)?oGuewq*& YG5ǞعK{
`KI DٲMjXڈ87R|%
/Ћ/G+og*62U(\MY	BhSRSQdrmle -a xj}صq$c]Wjژs[t
*fq,zW]ۍ㗲!  ^x, J% V1pN0`ǟO\Prr2.94Q@7NY35}\Y"j8*(SgT6oT[T%|[D&V]B>Eg	隺!6 5$hەAhZ~V7#0<VJo"
Ox%@G$'q)XD|ClcsiǚPs#7v Q&2D@
 ?0AIA졁laX@ax 
:6wZޛN6=	eA>ҡ[G{ۛB0>\-;Sܵ3o~Ut)N]&IL	!@B(q2hm
b71 JM!Iaٰ+0\\;gbCBDҸMJG'>I @% Dp4  y/7A;m( l3n?0MǰбNvcd"O~2HG:FQC
#'Dͩ* %VDr Z&/4Mr {915*=`AGHʒl'`	pd'%JvpC H5	g"z4~  
浘}<)Aɂ @ @0a<뢀!Lb3ִ)p
;E?Ȑ$􎪊=E8E!*ђy# ye`$>j
 DM9TwG)UI 8$OwJ)PPc8+=Xm-UBlO
+Zm *ɛY˳2㐇zU+a3L"\㢫Q44i, b;y8Tqve gA+ځÉ 0~ݍl[rBYȂ6E	R&cIG\I$U⏝Y~9?ѩH	$ADMPMRZgQ$`WG!D*D[JLpm}+	EoEN9D!. q0va)`8 34F `ρP=ʠhe5oz2@~ jIZ15{Q
ԲqA8<;ٳp[/~ѐuQW+埱9P,!0&y%ATܗ׺5{gkPB64Ȕ1` i@ 'lAq7+P,(Q%{4@+ rM[;pQa#6ehħwfewtH@ÐlXt45h&'xg ڧ/>@!Ku ЫV U \cmc~V~Kh	W5!Jtr) \ LIP@D	oVF0'p,E.b4 0xB{=,\9x[|G|<3ĳ-)(<<.PT& /B.jarYY~i %ba%󽚫wrI0ZcCpsk5>% Q ~ aX /|&(h'Ҿ0( 'C@(.v?<.77T5+D4X<0cGs*ʃ&ÊHyAİ~5l8#+Ӑbҹ	ChOspi~8bP8+ƀ6  Pt2r <;9,ỶC
7}05;@BD2U(ƛ$FDt*ɣ@xTIPܸpVbYAZ^\<D5!E	ZtJ@D9XB@e<fH{@+[+  ?/:'Z,Y OP-uKv# ;ٸC-zSGB(YĘ@3K:LKAܼTJ3X˛V ;5I`<B<>IIdq&~Є˸6Y,0rx6}2k0zP  (ǰtNuó;;:iK
<*䪞$@D-ǒ2#NQ@*h@@bHM%E IE|pT=Nӥ`	BwX IM^A_4;atct'L{z%9%C\+ ~Ѐ'"0ԦQXѬX#ZшG>:
S4( P$|<.} ~+ēBJHiaO<L`Uю\vQ%HM%
L\V(٠i0w`5t5C>-,{r(&b	:P$b82h̝xeUՋ)N!"9:,үd
\  =<yR⪂k.(P4{G,-MO5\!UiWYDۑ/8;ɇ=d+|=M#LblQnqqNȄ5(CjiHR]#%ɲ$(YD?KF
:$/eEO/mlDl¬ա<)XYqWJcExmz	A`*%t#5!fW͹EՌ50ء5l%uyXpȇg@9Y7b(@RM8C-xٹD,Q@҂V茿<w)&Pl<Z<S;8M8PH)űڂ 9gyM	_L[j[IqjyHmЀұ Yx2 +c\Δݨ]&V(R:.x#D՞CȻ2`|	]t݂ Z4YCk/RF#m B`PWTy`!|E[]~ԶԀ5PlN }(c8okJ'Uѐ_8j]M|FKGb<)@?@ =hZ\sE9"_XEeP ;^I%u^aًTPԵ+!eɡ {5{ )Qh/+GaǺs#8(aRT	_7K `Ը
Hc* 1.86Z٤@3lq%WuLߪZH[QPA]9>G%K.a0qyfONVqxO xm,X]+abСQd܍:^ YZH߳83R* 㒲YݫK5L#*G<㢙[tV܉`&SdVD4ueY̭UIl}vԳgyfdq5ovި_Ҁ2/y"s@BR=n(Va@.Pé Il]m/PK>ScA%WChŮ2F8v^R@n>^kL`&6`l0y
?"*2ӱ/"ueRs1|f0l|H39Og
dă#̣ϡҖ0mzphrFuxڮ9dR9yŶ:!]
ͳJnnFVcª
'IՆQGx}  (,,X$^6OAֱH&1oih4jfO 8&k$q`=Hp}jN!v}j4PjP5Ef~OMKMk[HP [8-02rc0~؀s b@ rps\`"Hr?/l~Ltcϖ$77O]a	Vs&%ݽZX?>Ӳ%ja.nj}qqc
M~"	+8li+A %y'f\ի52ޑ4~@6"V}hvOV]}c
̇uHr(*ljE?6P\
AŊD	ZܻEGwwwq|PeoQ{ ;phb_9(&nh4"NI^OxfPY	jR*TxyUT`mH9q(g<G"| [D^{fqͬP竟az,mi   YR] ^96Xq(&{Qc_vaMXOd7i}I6uSDHE%|\5Y.}W0ߒEjbI+?)rHBTD$K"FnlhV,a
*4("D=CTi(SL׏T3b9*r4(M6u-۶n½z*=2#3 =0 on h+r?6 ]yY"-,>Eo-^˔X=F̭OV}S)'\FD*.Rĕn}㖯^rJw3uD&-2qUt4ȕL,3'"xnV%8O?_% TpRVWIeOnMW`Z
%R?Ӟ#8aчL 1bx?İ8uC9}$-#'e@6"Dȓ-ɖkZTmUW'"I&O:-
\R9إ	nݩPɤ=rZH*L(e% -$}-2~752ȤlSԆBYn83ZE(lхpa8"Zߌ$;s6  0$VW=9N Pf   )?O\L &?r4N[޶t_h)mu_uձC)&&ݧKB
1'ىY1KwZ&-b("KGSiu)Inz ϼx`hL!
3Uh[U$8UOH= +N$cw 
h{Ŝ0?fC:l=AxD,-E`XZ[Y/ƦhGtΘ&]'^f&棺$Hz/urEI)uDG%3hZ N@ϩceIQrkI%KmP4|qHBLң45hC@9#GgLs)7 q
 (51?Q,(E)̈́wH$G^t1<G7Q|~NHĆ8<QA$BrEpvLX@j	8Ѿ3ȫ%D)jT|5@b!!/[DI p)!r& G H~;#/٣  Am15XD 񕧱Hhą/0ǓsI#|ܐ<">ÜT\`D$1$G>B1a*Y*D9ܜ&e)T35f[ܨEC˺yȭ Ty8q- h_"+ʒvPZG 1GڏtdE=dd3v,egζrBmbKS3
=xCM9.O֜VMxbBȖ@5Q;Q>>AsSшTAeBԂO%V=,OzLn$@r# 6?TX@$C00j`bst $0
Vt2AAhTNTu_BRȒlNSq8fHsB&n{~t1${C"E,=i)j,ǌL@r׼SsWRy^TX>-8cZ*$ݘ$t`'HBA	2HG `B{zd @"u2%u ]y,KA%t	k%T^Na-i+i$̈9Cn=2$ob-']	4T6s\N+EpgX?+o)OATFhy=Uj!6PIңQL	 1[̎  /-;6P>9<r[Q+fUP!k/GĆc6S˒C=Q#r.͋;R^xPÖ%+Sڡդ#̔mў$Pi"&B4fێG`d ͓bA?: ?J (u鎆 dj-/*ɥqL}juYT2g:똌̬fӼ~2㽰6IÓGqk{'+omxS&=~$g1,K!7B	Ǩb۹\A+[p 8	$d	I#ѥ&]]tYXn!z-\;YWS!bB\a鲱cTj7Dj%0K`|6KLP
-C)P4q׊5EA^,$G\(؃>=>L<)MV8و(Hsy_AtUAuۙh5AQ4mD~eU}ğ^E؂biH؃ 61C]C?h_d; (B@4 >IWq""Y[kLi[sZ!Al1iSx8ќG@GYSAdDY`qYGJB1
L|B蕧_4(Y@GXڥ_A>ރ}vȈLX$=H<X@G$?%]AIN	]A2
5Z\nAۘp2UM+HSՉDT.nq‑AUY5F[~TGCña`ҤCvPHM4Xp?N?x9Eɀ	cHAAnХ`HV)_)nYLDHXZGLF,xQ1LDb6MDJ]>0F8EJDQQ!JZ\?Qm|j!lѢe#	`R1 Ah%fCl%"u"@Y
'e@2>BX(JeLy0ЉIFIiH%!٩U:	I.a>8z՗[(Wr2~3,Aޭ4&5n
NmHQLJQV}&[9f/Dˍ7(7@9oL4Xe\hKdlLA(:FL
`F4SIщ-D:A%vL{Ecv Dd׍K%`WMgLQˬ}DO%\O5P<ehE5DF!H6N$: +ENlh[^QU9e].&vqgT$H +nQ6%6)H[XD-Acۭ$b\=TDFkU#n<G`1r~)iyڝ!Y0p$ a@C1.*q:*K@*\CjI`cxIj<tygxMǫ梺MXgK\i+<QC>d~h̬T^^G%}f#jV^ejB\;
 @oPp@a,Lhd,mY]r1Ck/}lCzڙ0pjy{BUwhCJ,僕,drH⥡iBh
5%lnKCgL  '>-].m,Wh蔟z׎YwĨrA`2.)z3*K1o]y[0GJ> <QRH@7~S8VH?h^? 0Nbb^b"g+OqHeՊwkH&I i1͞&-"i:dmz0*ёDjXU*vB"xl<MvYEzoHC;.XDc8k1\ܳT^Gj#m夆ՒrPRIĄ\˙)K<`JxfG*.HL1VMGNO1V`e:cC$ۑ'-)܀nE9A
eZEbDI8HCe|D2qF $)/?j袱sӱC7*ĨbGvёrD1!k'qdME4gޙ8${!JE&1A6&f#,)1ڬ*$$ (X bʜHB\C>(G#2ҊN*;8'/1*
3~DE	Q:nԚ!R%1tj~"𧇸J>`/QR3ՌN##3Jzr>QH8Tb$85y/^GFQ8HtàtXÐDѴ-_6f%
eˤP2~.IAذR%/%TWTS!#'?\N+"QitKÒՅHBX3[d"qj  E,uq Du.w!Ut`kE:hpzm	1S{'dN!lS:ŷzzQ:usTdG|iVk%Zx5sn;H1@%@W+/sPNY]ZTkQaKHw# ^~vK!zn7-IqpKdN0_[0Cef㹳?9!eOxQs>ˠ?X)mkÅaKAo\G#ǵBrE1w4g}ipBF[{D:CS Y%6ꬮ7{DD1faw}Ã:#Ps3<7kAdHys>nĄ 9O	#Ugp	@ &rxDvt	Sp~ogywYCtHx:ˠpsustl}+;k~藷1<̊iX~1C-En{ sz*v4+uQﱺvT{gBѬ+<O`38"3ͪkܕCӿ<$.QH>K(zK@Sm4	mX;"q]?9b7$3op Ij0xN)21%~O[?Ñ{fvkůpݷ3%a<s=$l2X?H|=,k3`[Hm\v
,b #l4Oc."6Dr34QYDs>x;gk6kaS}OUX&82i=@`8 Aq&WB!F8bE1f(^Gtqȏ'MNVK/alyΟ>lb0UEU\.N㘬*5RM]Uu&Zw/èS\	)Z4WrLeʍn>\QaGs4a?'-d}?g,=zг!wZj!֖`T!ݿ{h)|~'WHQd%iԮ#{L:tiqTƳ⢶&D*Yw-XiVkZ)G510TL'r6se
롱R!2?FKђA9Ň9ʹbƁd1p  Rb#LR#@n$)CXNرh,T:O22"(K+ǫ70"\MrDbZ"R*Ȗ#	٢00td>3F?>, ASQAZy1mӑCGy17"uV`I*UIY 추K͞"03=ʬ(ңbno*.dB<%|Ⱥ?iKdbT0pT+	r161 QQbN5A15FADjh=ńʙm}ȇ{ Pg؍+6ʏn`',u&l'b\*1
d"7ϭT6K2+-Wիk328ؒx ̟TPC+Χ`W՘c-$0G+AqJşGgq="h'S  @fx
좖mv"NӚwHǣbτӊT(umM&zGn{?%ah	jNqFfy4b7Jm`VKPu9CуKh؂"`Kw5\LbIH;5E	 ӪC[ʡ׾u\3`ζ
&%H*M*oVE5P`Y,T)EL"Uc)~hUK@t9#DđI `Ws>lx;\su#6F xDC:jHO-sYd\c
20N*PyS*&{d\91Ԥq.2W7QA=V&b%u3BDFV:U	rB&h8	JX&|)JNiw)V,SG1	3$J{0"Pɵ,}V娢ֆ5a,*exMsoH ϿꎑJX1%TK,Sl=b##dD>AGB'"FJ^XÕavL#-7':GQ~hb 8`X-p0bT#(Fgr]=ٞ0u1E>Nn"E	d}eTBչ~MNq0?T}PJq|>$938󁈸bUj$!BMy ?Zwd YQN:,f{84$J0a6чTJ$kZc-oM"/9kn+(B:E$@A	>p,O;5 9A+DjUdB
dqGXa*& b	:Ke=RC X^ͦ~h`j!Cg<'!r)zEBdHfDvFWD5o	2d ĈHo#E6cHG+.0bA<ءb+vn"b*T%h=XH	޳pgVJNNyAq`  mCNd4ӤP!^2"gß69l\UU9["/q٣;j굨LA(F[c?85(t$pwip
8|nAvD~g	K4CҀl(];D0)y|lJ6Q;J:-MFv完3ygz)GY0l|SPFCjQ=dt	˛s;
h%JI{Mҝٞ=1|"4T(UӥϽۧbT-!GpLػޔ{H_re!5b[[fr+/yUD$A 5aGfH&!   ddVJXMzf,``nj!DI,b/$ⶄcHnge",(b"OaPDC-dNG_}fLpc2Ʈ !nDSlZc
~F@!  $MboJ> fAp/.p|&B!6a*^$!΄Q -)-^֔"abɰp|^Ƀ"r
3<Of|v^	* '$9^o#ay *ȱ9mKd%b<>MԂ|>N(¨h".GaO¢.pA
=bR4מMK/"p6
6pu~&  a cgQeYB*w^jyKJIR9Ҷ&^L턐O/PmfsVFDֶ#i1p*20-]a؉#2>rDJب%DKwua&AV`'N)b d}+(6vp-N)o2"2	I!b$hM
"+c*% $T/"/0m0 " 5^</2 f,&XPSςG5eY8SwN*]3#Bk[BN6-N殫+&!57eB(
8(B.$*sf0S"@a mE17J̥'=whcaFaRXgO*Y'&B<NnB.,7,_CKD	
t_2!TS`Pdpt7JȡF?qTO3C?5ji!.\>s5+'2B\!>}l+MM+Slro:c'.?0N/_T˴!u	!cQ2OuT*u`T!,tgxx^S'AZETV/LSq"lP6+BLT,arb,ACc#ЩYͫLp@MqrQW[IU\/͞Qu( `u z^TsI1tF?W}fb
#|`A-6iQvpx+kBcSm;AXEvAFZ[tXvTfT+$ubg   lf,h6Kuh3yC@!^)f ~Figu<0,B6ETԖӖ8PC3e
4ld{*#ȻR#
6 i,\WE
#nvGsr@Ζg@! /'}hdh.8`|[b
! SXA(4=luWWtUlym,`IM'y0@"x}W֜xFZF~%ou0$?W@/(fS9ɩ"FP7i
 KLv ,}2wapHMLH":taV{~Iukwv{B?lCB'8$6#G),zZ#8mttF/WBvO|[h&0@r!9EIJ! A2lbXuvU"
T3*`G+2qX-؎ppRh	tEINE׼P O3\vbG7E*Fl8r*3=! ȁRuGhb X3bM질B'BAa1kTm¨uCǀhK@N8EO7ǵeFm4LI!"qQvH@_*!V1Ρ`|4K-#,#~(B-MOXl1wva=kS	֗Cp8&%y:1Q/Qy4φjQ;6cr-uk ͝e=gvAjqWj)#(ׁKubYgB#nPxW7V5X#8a0Jo9Ww6,ФWXC{a_!r  ff!{@AvAA쁜9{ĻE[=`Jjo"MdHD"vSՐl*d?2l[zxu3RAP5r؀ӮI3Dt3p,[8#^!^ 1J`̷޳2!s2Yu[(a#\ e bԔ|py24<79Aۍ`zS!oıٹwjS|#aB F.a[J!Jy#n|ݒZh#B;ǃM5]W'Ԍ&(8ղ<<~64Rzz4U9Ĳ;
J+]lΗڹ#&=i:s87I=);bOĔ"tvw%߮$B4&l-qۢpZ66<~z,+l]4=$RU٥ ,*}s^]"$)i!I{F](WxA |**vBo;ta}="\ȪoI\Ϗ{iBT  y|j `cFSp&t>:ICz[)~1!(/vg:w"+DYK8Q
Uk5wҷaK`ܮ&(@!3ԣ仳O)?=r<L*̉+V1B_{P?d+^^3 1ٟ ,	8p3*\ȰC`dIRf7+=ȱǎ O(@=>ʜIs<8W罄?8(Q
2,ǪӧPFeHTTtu$9ɪ`2qpS`S1AHrchݨ,T8ۛ%fR.`Uȷޏ>o.Q䨳gG2̼d֪Ԉm܍P#_Ct+oh ~ "Smkrۓ.tюeʞ0U7"a[&pѮRLW~wPv@^VhQdI֘iOk,g,qh%dZj-(BqlF#X"Nx=" $2<Á@6iވ0>ЀHK\vPyH}Sz5	B{	'lU"+'G}Q!bQ"Mae25aBN[Bpv#<C6#7Ҧ@2ЏM=7Xf3>$$>NW&B&u2qՄ|9?:dW*`_h
BƗUX$i+.dhňkb9֪m TheD#"O;118gL:@870lMK:J?\X%THuHbqV>Lˑ+MC٢*"`P*li؟26I1uFmz[ڙ+$ `=3kl#Ṽ Z>yM[xclO:ΧJ{-yεIձDu"o
ae15bĢ26GN(f"n_JC5z7
8P߫ZMe~83X0 <L6&NL@INz:<NWi2H3<y
i]:4|!lڢ Ly"ͿM,T.et{{#_>1Z'		KGsxB2`QDs!S="̂{JV]mjL˝B;G=$q´
z1`PBDF*"e&=hC1ئBX=2q ؎6D̃ G.6'A<^oҕ&S_]zZj0AQNHG2.\/Dƅj^ AB^5ټ3^(Uö^iFIӞ胍>9xh)Z  ^:Ȓ0p	9
d?A3э(GóNKHek@߅s.fa {ّ*b9;Cnb-"0ntM:mh hGx"/;. 3Ix5V9I|8 TfzTJH;j)iL?omvq^)LMRA_+4u!آ*#qSգs	:q`X:rQ
rVhUhqIrBׄص=TLY'o!R,[F#
8)5v~7=/2ϲ<|:Zp+M	^
Qj[сsaZ1K?

#p09#%$|1#.+~v]gQfSR:ŏ#qǧL־riKlmPJecIxbCT풗C8LR1F\Pפ3EO0qפqV#kZk=Hv!Damd#~Y}Y'a%4GO3i7-eǀC^Zxk\`f 	P`1@YBdl:7dt\'x!#xBX?1DIr/C'ZMM_kښਹ9!Ns@-7V49Hs{bA`Wn.΍"ۏfULT	x{iha
?w֟=6v"PgsCƁYJ|+9vg[:R_3!*|Wi$6㖦ٽ""$C2R)j-Xꗐ*ڥFҵ"u۬^GEjl؇G%i7uQ&ο]ԢC!/T̬ߍ(RL܌
Li=-*-|#8x!Cp7hK`u:#v31?Gd|Rrn'$}fMQxb,Yy" ,_7!oujyjtUy dBzrpz	*@rאPhS9HO0X+n~:xiv((yRH#^}NW_5#""TeC2MudPk Pn$B1w	aS0"ס5FBs;6x' $;#'D/BdaD/351}7(4u~C3ҌAfKwf-#dP`2+)&Kvq1- xn;XsL-CfuRjBr8Sw-02/z(Z~a:>!}(ʡZ(Ja   p 2x3⊃'2f^@GցALxe(鋋HB;I"!k1`ev"А
.gb~ It4`+'{dЅ |\Rj?&i'5˧ ris̷nJ/)oT_oUw`Q0pczޣz&bUD(rz$`gw+Dyĉ}PgӶ%iWu^(Mx`a}A
 /5Uo9(L6
eR7{!b d)r3'\0`0Y"51$1a+Y	!'ji4ѓ6DrOc-X*H*ǐꙇ2#VBTd20 {wb1l  ɠiD'A	d,ra4M Mhd'A)1dS%*NkӞه)n"4Jg*rp0
`ld@
>sG8F
e՗G#0+ PgA)Hs&%Xisr
YJ	}"Ѹź6)D9"@ Il9F%2`;guZ  [RJPᡪQ-5ס4^yK)ĝ_9Ղs씧9O/ʰise~S7~UWOCᚏc'@ID94%1D	NgJՉ{+87JqubRj.#-8=t.2*61jk:(hD A[츉gctQvM82	A@'	8I_0LPswxlOB%2F<8j*"XRǚN3N:`a)@0@ uV[%ֵ! 0|h3%PP $ m1x
 9iXhB&Xr4kSK7y*;t~X61}U3p  Z07#{y3'D濼y1].7˪ˆm*:xkn
M4ش)+9
P$n\kA	g[ٸЅpK˲P0SM0
~;JdThU/ªìbj"HÍF0軖yvJ7,e&{w 60^,5	`Ppq3
	s	 6wq$ҋ~˰(1սiuyl\[@lߚNt^Ǟ9@0+1b`3!;6ߵceBy !mW!5 )v*~M-zC>sJ%sAv	i\!vw]hp`P% 1AȆ٪L
U,}s+e3rvt#}^̹pC	 El 
8ZЏ21	1v`Jd0+@Z%Μ4ȫmZ5m[c\ykI`7-@@MT!2 J]@Bȱ'8G_ڂbXmj\@_޼\o_^ys?o!XvˊB
mP6uqgl*pEm"
-?j3  Ќ0Af
X>)
a<'"7v1Rs
нYªŭ6p]ΐK2LO:2!wW9RѶC=-p*,Bhh.R&o})}~bI}ʢ>
8	?XS8<A@ Dh2  LR_0[%.h2MӦ̕<
N(	@K>@!s)9kvTn1%D Mj r
q=+~ū912sM^g7*7ˑSgݰN{V `8{N؝$Pg3ͱ% MĬѥ4ҊWҧIֵnNI[.qM鎕]6gh{f3!ל~>+pȆ @r:h1̛RL>z1.<L_O{"8+H UoB?	6j@p6u&`YG 3Ș9fRD֗ip۹#6$TKl$Id@& ت4gh_.
.Qx1Xp+,	$h",_"Ϫc>MT03r6k۠Yy
^{$gLX 	IM"ESRO Sp \bv}gI4	!v,]qO3M.uᬬD57A$ȑ#EK8|P^B5nxϟǁ 9$i6Hn)rˍbT	pQ`'K!&G  )2't(L3V~7, |Ď%[aÖMńIU\TLX&M_[Enj1yOZ',|jXnDzZaP8Ipq#~j'䠳g!)'&HӟB@5Hº[lFgۺ-UL8sā8F,:H4\6m>(`FY%
j'\dDk8HqHb~0@}@ xAq"O*Su0*2jo;3@TP#7S!*鲃ʉ0B|I"JGX?#%ďR{$DC'FP?_Ԛ봘 )*XWaJ82M/dHY243=#PR㰍RA5P!g l`3rvwNiGIPUu!	@%C4mI^zZUp5a`q$T9Xcf	LY;ٕ>U or"(UD-nAjHg9c g_Q[l'Οc}JVeaj=Ϻ0:vz3=L#&kEf;vޘI2MfI`~DP4EaDΩ	co^@~iZ ~N)-Z*˺ZA]գixX\d	86tv}'٠h-אʟ0iqIq G{D])${S@Mq56*Z=Sk>]0.,;1mǝ@\Hd)xzHby@ N Fa8$A;eF6@@3+0BX{b	"~mD O^@Ǵ"\4:u)C%nQ@/9.r 
~k?b#u8#
ŏВ[ m%	H%JƉݲ<İ8	*U`Ҹo7F ʡr#?Q Hѣ 8$ya2wdc{>Wtؙ@
!֌[MYș%"2R4P.,*c al#2@!OFgE	A @"D:a\1Mq(l!Ɲ GJ@fS,;HP'Aq&SNI{㓡debE=L9[BYHzFyHJ03lQ {CZ(O' ' HVW H'c31餓%FI8diKV:aqdʖ
9V-<j) 8"MQRi
&PC҆|׸!ORkn&)-):xXp$PKc2ŔE=e.#Pi G;YJj^" 1 >byQ*!Q|w]F'ƙ)Fɓ"iH(OȴO,FELצ5Eն*FD-dS#Ln:..^$
G	/-|1YƆ(<\ 5 `Or( ׏h ?1]Nxq{Y}+RT#nO
0hı8ƃkֵ' /	1>rĬ8պXl<܈25ha4x
uy 4M!0p]x'`EDq2C yrmaDЄ&(B݋(L@bd<E3kġqOJY! 
 cd׶2mP)Dh@>p%Ot["H*̍n;9YއFv:7;<캭K/c'[$u"dA'FW*c?\hyqNq]܎ag%`q?|C j4nB@`A	^XN>nVZ͟hLAC{lEIMsl -%@(ΓohP<PZh@_),+W)F/X	5 kkÖE1#19cuiS0:AR!NI@J +Ћ}
_4AKq+A\Y>S>RZ@j2X~MH 1H  	2 k[r?aX<'}( p-c@"y@ ʓkC@Ley(SѸT)zƀ!3J;CAM@Dy)/?YmOl؈)hUڄ!b'I~i*Aɽԙy0N45AW4D!C
di,S\4	8}ӰQC(%{
'<?P3+DOc<4.7iB~lFL+>
5 (n}[	0 GJ<Ɓ|AȆX; H[sł4HAa(*Bhۋw!0XAl0HFL,:SB
P&$41HЛI<+ H|iPt\Ǻ3g0
|CAEN,ʃX;
cGF!K²\k&Q206(_|G (({
.cLD/5h̶ҌH?l۔ɬL1p  Љg  ٍPGb1qx)XKx*b̼;Lw9zQit 2"OTy8kh*`r@HBHDz  TCρ(NL3%3Áx6ǬØK'y~\h@cНh  { pi@C8tMX6DU1Ey' ADHt*SC*5^L܉'ߒ$ejL0DC|3R&Jx:@LIRLHU(9	m( NpK;BHtΟC^zIFMD@`Y{4$>BU (6@R//bT
#iB* Ih7G~ uLƑhKC*G[M#X2hMJEVZޘ .%89	xB{ɐ6m⸳3WPuOD(Np2ZZ{T}=Yxm~1lIc@D ! hc@@7HpW}3X#TvDE}cN}~x?`*b(W$ZH٢ׁ.;Bvy[[[[gٷLf=SدeOiX/}V}ӷh
28Sȏت]au]]Im#Pʧ@~p-GO5Yn(/}	 ) eb[HyH u=?,ޥoxL`NژxZ8	HS\#ߗ':{\h!ĮRR<i©ɋ4=X>܉OeBؙ؇gBEQ]P0  M[` Ջ@^hP˒a%\Hцh;_N0#}USp'#غvD# =-ǌ @ P(__ %c?)8ʄٱva  0XU	zx )xأ[0Hd+'`-BpZx/T]d\o |h!
ȂVO1PW7,X <p%6`o>hUW)z:9,t@(Jf5 cIS@H]	{h]bcA Nhsj.?C)Ld~
fg̨"D	 ܊	z "Y_xN>w }昙\D>mi/ƈhviV[	z#-Mpi^	C8x J.,Ԃcv	t|vBmQj; }I<RL A,5P :)=Q/]竆Qų"Xi~
2 -ԇ~X`p tƈq(A \0LlipiTl<aml6i:(B8{;(.k\i] 
8&TM.n8 &<\VƑ{ߦn*kкyb=Q @oȂCE`i˰u8 bp/xk]lD^TN*Qn.(BPܩ9چ	ՈvNJΈbZk(֧؇qTD.QI]qv?PЀ3)ߑ^'9[6qKХ;NlX撰
<X2Bg@6@p	H0 0t!Ł1{|@s6*|k/ޞX*?)[?$mGW]q	i;4gA],\}w1RQ,	R`OwX{^	ti yqً- v7SqC8';'u6"f:|ތ^swFWwϠa2(x`z	HȁrS^]/< Oh!XU9Lhvj> x.I@ DBҮ9Mqqll1?<ꆍv }dR{EÚ6lxq__OQ zOjxV5v.ab}0f
V7o
9w~~耽AH$	x  /fy!.뙭]TXgUEf_͇Vynp,B+g^h9,>/@	L QnU(jHmEu{,h 
2l!Ĉ'Rhѡ1a@Tc %Rڳ`_?QF"& 9=u2 7#9$
2P`Qy.I 2:u԰bǒ-k6{&Ͳu# k FK ^`%"WdQO  Ph
lqf̖r6h!	e5pùD5ز˞^ǄNzqRS+#0E8DNLp~ $8Xa70'k
!<ۢ𲝫x]z>!R4	3Pb1JGwcNW 3B`(8!Cϸ!㐡D"$|#Cd5h5ԏp}O9'#=@DVp.hTP`?c@<xQuӉW:5I CboR	)k]:UTx<QZJ <FOr?'>Qg `E?eLL $BAk\AA13(X8g{>\ Vi:Bd\ș6pJ=c*Ar=8>J,5h:Rc	'  hꎦzPm $ҧ-{=#;҈dDuY-;RfU[P<1OLXC|Ć9`d[=nL`˶}&n#m&qDəЁ DA=4Ed@LUح_%\TaA=Ed UPh=7u_7=@Ÿ:}9<AiC(3E0ø6M5#vNm7H|MM!u9QmѤO<c;
|?d3f쳱wkO2S18[ɐKh 5;$I2e HQ /kFAh; '%Dls>Č,r3`^{ڑlIn	|!c%6  %@	[ 8tC!"\g
E=#H;r7rA0b`hzC1c yEQTRB(<CKGפdli<i(B %I1!3~xqlDydSl覿!4"c)KQ90eBB6J   qCsBVq<Y7酧1>βan2;)-G!,$ NCcbYO?>Mg20Ln~Gt$Y/">Q&@A?dϮǹxw1\RԠ.U>
` (5J lLy:xCqtcN{ VztQK[%)GH#h+ PUban!d:1*sL+{dPAJ\5t<Q! 0ԊOx17ֲ:EH;1dCW0pڈ'x <(P_	֡H"xMp#ѵ#%Qu(X	~`Lh
3@ `Ql!k/6y>ep5)	p+^ " >GBN׏2ۮBa1f&Ξs\a`,9pH>LHmC&ыs1Ђ`ۻj#ג&t\>Kq \8,)w9bx\yH._)QLeȢ`&Bhs3 Z3s|	rB1`Qm.@DOۇd#~lpY!)JIi>ŀbhB& NA"ɔ%R_ڞNP>7qy|`)v|8͡N.4CSZL!h׆ *4#+m #ou	gD<T)tM)00JbM<mK1D ԏd)׿cFSL%> cu:L8 PͳΣZ* q&jDа` egF$N`QI':E 05p @O޸Q<.RlD&"
rSd=λA h	)_ tiODH$GçT#Ҭ8`0l gP%t!P=&gF`	'B7&SҎ7x)a0Tyx/#h>NF-D  9IEpCXWCeHplI ;mĥi ̀3 @	a%$ =\i ZD6a<cOhCzSCIBrQY C4Ed'`A
=W 4`C
JF8 kt9 @0M>'ԖSA0A!(Kj!#& !~/xGН45X8D;1͙6$1`5,= Qi  P9CX(Md< @ l?A.5`~ԆVMCx88NB9~M""C<5_?GL4Pal3t[W8Y,Uf994ݣvy#4|L:NU?|CL\y8dpB;d5Q$N
kL|
-(JE?	nI\Smؤ_-M܇ 5
J V$\Cd9Ȝ$5t#A0,XC[D$L$4X2zCS  7 &Q>@/L=_&űi"Da(O <$mib&EBjTMGq(CR9=PXd&t'l\P];F:$<" "g<d(X̃&$c		sT7P@&ܧzL)؃=F?JJe,@|$ej$?X|J6@
'(8l _.x3ggUdhJDp'Y<`=zZQ=0@l^("~=h SW8]@ hcātlX-~xhla'LA'  !    ,       GGGILLQQUSWUYV[X]Z_[`\a`ebgdjgmhnkqntpvqvqxszv}xёᕚ駩ϦѩҬޡﮱ                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         1@P,H!B` hF('NxxB	&Zxp"H80	 .GpM6|IA5o
iI.=с ?J@J2uT_2$QX! ,C8AAG'h	`		$!p 44!2e|"F%T0"Lcex` 3MH !͝oZ`Pr !    , E W    . 
>-.7	*/)>9/9?=.:35 Z o1V 6u&m;4Z7A^R	P0Z31if2}!O^S@V _M$vfAp*KnL2wz>GGGVYn]ttpELxRkyyNopw /';OQg9R0]4r.tV?HQVZXm\bl^o[pmjl^cglw~^olYhlpWop{w/:][idrnFU`|r|kinvwrt{zǓ~Сw|5=CH\e]cy!y:WNVtgKwtuSzu]pc_nh}̺px~็#QlXpWeXj]hu^dpȒ7ǙIÜ\џKЙ_ȓl̤\ͬglfputƌ͋ąٝΒȖՊéձЍҧ얊䭍貑Čα͇Щ¬«Ƴ˺۷ռȸͻ׿ӹ翋܄ҲȕѰ˔ʥϱ֦ոϣڧݴ ]|*\Ȱ?|
!:Hŋ3jĈܷ CIɓ(S\Ҝč0c\ ?2) 8ϟ@vdIѣH\g	ЗMjicү`ÊMtيݫaOg]uݻxÚ+z$'>|**ΊLc8wOϓAMHĠ{~vu۸!󋕄$7hƹ++8n
_uX(ν<5?;H'7VϿR!B24y2E+)H" bvaKr$$)=QBn܇_u%3hWs-?`Gmы6aUvHvU$Yz?SiL*Ci	#"JBd`?"B*$惻%LK2ߖ#A KL/%)DXygCL9fy@=DSvhvuIQ9?g%."%.jjXS"qWgkF+-gVhM$&+Җ,z:
:.vmSl`8lVʮ쐓=0$F
W֯n[*_<c
gP=Om\wln0W,/,k	}ؼ?S^dwzY:3s4-5GtR?lA:f%mDR}] ;:nnKeՔ-{שZ6U73Wm0-m@j}`Gxg4[~͙mZ[U
+7&ڔrr>Mg^>x-Z7GMsd9R~c<ڛ磁N3g/\|/==dɓ<)F=7|hˎIOB	A"_g+ur`1$0Fq&d)h%E2
d`$Bm;#1D'&Ɛ	 $W!Y
e<IЁG!cX7U)qm$P
t]D^3b=%aVLx#,B	0fRXM'>B&}l9HA4c!cHs#$D@@q(	,2C8  d59NL1)(IB.S%K@@5PҰ,7p7Ґ{@{%H:?~w_zYEEB)XG77[	MM,'8y9΂sTc{d+7lm%B9gP)lH:/ױ)!X;<f^,G6 EؓCcI"4f<&d v_H=)vI2Rg|dZIBCZD1>ʠOE4#a+VZ?ZH|CMC_V	'Dƥ)i?p, h0LCӠ^bÚ~<(R{V>lebT*X
טA2,e@ Ȉ?)pM04؉$MUb}a:fRoxTN"溢pA ^dP B$&j((2J\;T2-)Ie4OOFaE iS.4Qpx&"7y:Xmba\S~UH?FzD3GKؔ!%	@͚T	F)yV0# AŠ(yL.Jڱ8"Bt3ٿUH>6ŲR;NLӒlH@W{C9>A,RƵXkIy
]HpA X2qz`#65ܐ]FֲvJlM֫A9$Pw 65ZT4on,N9{߶ 0=ً$;݇>h䌸I-cz޷2ԸiTc~;~~xƳvm[8tN{(QXQ!8-k^F9	z!D
9dD?B[8<$z]Fk;O.kLInîlTj,v-?󶸼sl(%P:~³o3zܣt>Gv޶LATRCNtav.}olh3(}Ѭp{!HHڥOq3O?}_L?t7r}$
~w	7qr7sevxzVw
vD
G[f0{-Ksw~ 
Af)x	zP'sP#v7|6m%$
#Htt  H8XC+UMwNt:Yօs  X;}lgyh`gm7/or @py%FecW4ۑ}F~8Cs~V膇ԡ%A8|9LsPt(Yg
?ֈKƊՅw)X؉'8eԸx P{a	"9{o؎ٸgx~=x~Hъs`j]nOxfa|Hu-Bl8UׄfUArpIH[ւهqǐ
W  B;jǋ ɓ&;D醔hȂ?
,H@)ppppgP9UAwmI=ct	 ycٗ2闲7eÖ)|])ZIsypr`(o8㙹G@ጧZ	OOP0Xq2

lIGYX7y69vYP;`@Kyb	Ap@&_(+F{3 ڝYQɁy
8	
A)dx$R65#J8h?٠L	:ƉXZ	ӟU$*S>?
A
I?:<:>lpAZt|h#AQA9R
i4*Z?X	8xUIg':l[	r)\0!?!vjǙd({ڧ	*ꤴ.3J*.L: Ya
Uz3I'皟f yGx:Pf
$uvcz
I	wYڷ{%zl"*
1. ܊6
:f1f7!m9PzUְ  WT:ʫJ]Yddw	Ǭjv9
!sd;4(6s,/FijuhyHK^kzb?+wc0ڴJ:k`21W{hYi1<+a
ژȚ'ruQ]E(_stk:@kհh64mõ+6O3aHڬ0(0Q^*4PK
adΈ6kZ+9ȱ s1;2V
z˼78੧+&d`	ʳXR+b (˹

bڿ3rI/A+8K;vq~ݸ	} ۾˭3	J㺜iG)*ܽ-̠Idsj@;+ACh抂.K,3L+z 0/:!tk	p	D|kõi
ǵihw,Oڔ
2thPḛ̑jjI,iPz)y19;ɛl0?ܼ2Rkr®PYr|ʺZpgz1|({@ʖYX+(!l.|-G?x~|@ν\|V*̡hU󬵐 ,t̛qm<LLk|2@whI>F/Q[9ݴ{;}6Mƿq=ֳ{͊K֬U,ΎzMźM+ưΫ`ڡK6Ϭ$ȵSю,{s©]QlvtͭĬdg{zhh:j͐12~7ҭԷɹ[y]@תcZͪU]1<&!9pZi̟(;l\z̈=X	PvNZ*n{,_՞_um`%6.}X-$-%>ۭ3jtK~z\Lmi>qFΕ@Y=޽.RMzP2=a㒉_[4ew<M͎	ŗ:Vιmpz9_DJ3XRi$4--[# έ]2Ln0} Qt8<ehg]y阎~s
w/nS>}~y
`׈}vh EDѡn|ۧ1\ɵ'~~Nk {zb.ˁж(m"zhK{ս\Kƞкm;z0 ur`V;d44ρPcWQ:,^M8(K~zP^͜h4FT.˪=3_(8m}~@~),M{{Pe9k(G[oB$Ea~pj"*u5=Mz	 a\4xzk<ߍgO 왿8p8д,m2ɀ$8]bp`\LΌ/p*
]y{⟟-{Q螐џ$H>:}p >NE5n(9ʫǏ_=y?^NTR3ۡ*s ZF!CRDu8
ӨFe*uM4zyw'A#9p:אB"q_1R1M,'LLROD|:T(T]6mTTR9-}k6n؈g[9+ǉHy^F܃"H<y[)4s^>7'zb~ң߁կҘU-
M~sh;칂2&.;Z)RD*Q!4FӯRS5yM6#S| d!91*+,3	Eo*Ej/XƢrQ4p*DSp@1H$P8L"r+#KE2.	E/C6k <o)U:T5x#H@( BO1悈N8y&UG=BHT'SQ3ʌ>hhOC pŕu\pXO=ȕ]!|-8ٌ^6R+&sij)C0

\<Usbwv'Zom]H}d#JY	;6iMx":TXĸ(pq|Jصdg+wC\oexXT.rNg+,l˞=Nڔpb)hSfi飞:-oi^O[Uǽq9φK8֖p26]-;~GZ=PѴrq"}j#\w8X}hS>ԛ-NI1?pۿ[iۥS
)sG[l@kh' RD$"B4=:zlJL@'-e*DiXZ 䅆XЈ9(C(x3{^&ҍbv	k&YUhxaT%#r
!QHrsdN\nCsDh4OM Нx:0]ܚ9EOhclP+6ȫe8()XAUA!!a"EvPL;MȤ|x>;c-2FG"4(sذCe *\2@%ĈH'YL`/UD%~X%-׾cѤO9tf3.7eH؃}=Pc$S+t|W*s-NLBq؅v	kJwZ}{'"MAzҀLb&J%DD+{G<f3T\NĠhĈh\S*ph,a@T90uh5>ȵr	.MD|
vAO(^Q&5'*>J)m}e`r,yTdaEfR1(I"Qbva(OUݼTUah_O#F:USEtAQK}Wq0a"%mؽͺWa#oiMے7n L8Ғ}}O&ZtF3R9{q8hC,QZX](Q^^4%|b1a	{
|hD똖	|{!bs
16yjM6҆5A*?zEy8&Yvr9dȮ܍X"/f0(mwI0qI͈>+4ElUwɡqA$h#sGH>%Zux#zhZGG|EF]y_TYʦ9
 Mn52m{6{tOA3fg\c/qt.\<-0×[s;`R!׽uR&U8+p#.nnд{@XU"Hb{ѦmO YoyE9vN4NLncJ	H*vj'Oi촑66/x,5:"	*4A|漼aaP
ɧ:>ĺ3#C*>l
)cHwzS.==#tP[] C$pptІS	KQklnzDHVr42*&92BtV#I8a C1ks*]FrkA2	
ubKlTh%gs(%3{H>q} ۫ٓP<(e<c<貳>:=(Ӄ#N0
c;x0:s;-@ÛCzX?$<h]8,p<@,I|<j<>BdKsr?B3|pT(jO`12{!

.0xt~N<@>;@Ӂ3b;AAZ}0ppAmI0Cw@/^+p~h ?@74 `jxDt><jBO|o0(dC[4CWD7?pw
HU9C	<A, |@JpDܶ9kyX(+q,( J17GPǊ2tۘ	+wx8ٹ?)(9bcI8s&DʈO1y(GđӃj)|.܁607CXIq*
9YT{4<<}p'|^G"_Yt;Ƨ\cFibJh
#h DmoIdKK{HPGKTɚd$LI=wAF:,sKb8pP=\d$󸩑Q$8t 0mN+=@;3=8ðsEtl|AJ//YP(êtPHLQ;w(L0Gk8ϴLmX$4  =tƲI 40 B0EX` .Bkl*7m.́ЁaKKLqb3#xQ^+TNhzQ TSIϦ6y P{RPͱ{*\BԪV25SAS4]S{5I8J/;ƜQA1-zh]ULGScQ8k
9EQKR,=@PV5=UXY5=0P}8uS``W?%(ir+GODT)#<AUp45(Kb6}I4GM< w9-apjx.E݋ǐM|]FXYۃb`9,{|+))3q4VA
=,RUxDϖ- %K>	qՉ$S3u_l#SF(Z
MZ[pт?ej![-KpXӰ}: Y %DׂشYSM+ԃ+2YЛxcGx=w@C?\
A\8͛Qѫ(Y˽\^\υ&QBB3ΊƂh_UYT]9U]V2%*~W<[-ӕj
B5Diָ"{?Iȉ)ލ_T|8,#IH =:۴)-PܬEj2ޢ]IZ&hfU	 gCU+(LYU
dO9m =HY(ZݴFd	@CUMPxݤM#&`$606ދcwy\+:< E1Ia]A|m$R @Y#{UŃMD @:}ێbZFFVG&RHNʮ4Z6\a\1Ĳe[pFn<a>heً2E]9bk Hǃd} Rh%X,>dc|!4La=>*se6]Y`Mh܋5Meu-)b~$?郤efɰ$F-_QQJc0>Ћ.SF`
va5̀I=
X(ZFI8,dvՖ Fjvah= 챶濝U@>n"iZVbjj(ƕ&jGXOʽiTΊ1C,$ 8R| n]_`.v<AD(2ЅꋐBNm=瘌j m6=kHƠ,rha)nFkYp>[H-O*][U0]sed<I>H慾yFVd%e6^ۿ&ZMbpo/pr.ǜ|ur1nq 8D\]qW!# ne|8jfEGD۬j<+Zu3%\܈6밆1trNtOGXsq8]֍uАoi
Jg9fHYOHͽ@qj*D'Z3ef!X`]?0umvn/pMΘ(7]85̝LA&ѯ$;phu;qqaFidW5ʷ5(#_NknxtAQqwI[:s"c9XxDHYwGfb	OmeNwZZHvnL@fxN\VxZ+!uQ{"Ȏl`g]HA toz'z9yxtFV ij>E/|m,?ppFg^b${18R(][g_|{fnjMF;|butdOb	!FdC7SvEI(F-rGnc~䦆_p帴8O`lS;sH
Ë8$`z7(~\ BVK0AxקQ#>|0a2ѳ"=1E)Tc'P07}G󙐥˦\jЬ	wpUbłՁCR;3Vpͷ/hw8S]@ Ip@hZD<n9O6Bħɔ},2ndf1tw'ħhһZ[q~@_:kɂ=7۹6wB'jl$P}-,HQF9O,"Jz\U@CI'RI}^V!%\\SBĵGqt4Le@CZjaxt#x;&Qɐ}y"FIa a@M"~H }Dh xqE,h#8XP*:]N"BTs"ubU!,>':`#[nՕA;j9X$_:)C*I"a@b?@@fGyQr}!OuG&yAM=TXj֖ٝoxT)KiL1(F֤8`WzrVXPg>!Óz%:iD3HhPH)$Vդd:Q톼]p}hU"4-[3ufMmZGX]aud*O@Aye߭Dĉ#ć
ɱ6;e<LwDϹozKM!7#"ϑK>]YۮЕG7Rc奢ծF0u}5&eND]͑H	~;2s%߆23L.'
!q2|O|r={E>][|Hߔ?	Cf6S?1"imqh;du
7</e)AT6,EPZ.W𱰅1OW&^}Y:cJDk?& dE_P%DWo#<"])nl1	Ek;YQt\p<pE#Nu*(ZԚ=>GzA %O$/|?HX0_8c4AX]v$)VFIƊٵ#<N4()
?'Ȗk#ovFy\!aTH9GL@g>!~S%/&Cd	14=*w<Ԅv2/&{(F5R٭8J#0S_җ.>aµSt#vb^s\</TP 8:)':$: 1(BDg&<(AO$B2*.51Y1H9^aADDPAh̤P^c3;
v;0ڼhvm9G,1D/t!޳7낲
<AlE F8MɈ/yG4(fB}sZ;w((nzpv9\H'L<ծƥq~4*Rz~
ŘnQ$Q	&i[Ĭ
4KVHi _/lW}=ܓ\w)Uֶi|8PقkqxGUr8ڲ¶4+/1[\-)H=
'\ 8)MW=rSq~ + Xvly@'{	q1i>Wco#V`v7X9`_$
BH5X?~9<kPŕ$<L$6A81]̕:e>;oP >J.i8Rn2"^+T-2"^]=r63~y"Zkx} 8"1	$n1чp ,"jU"|?(OS/tjh:+ЩJ`W
hlVٚ*oƭk6s~Wsx+Kɨ#	I6LWhY8{<#cqDfnVMe>pd]n"%!*+o~ZKlf^Sc}&,qQ|;oAHyb?!$0L#W$ܖUˇ-|Vw#DlJjt	UOˬCVړ/f@z't?i)OE;E.яp؇ܾBXKݒ\sJ?>] 5>ae;SWɪՇb xGhУk]/\2#m|b#$a$C*p[%V!PB'R5i<YKX<E5	uU]mڗiH5 \=EPJ[䃧YJ	AA:z{yudDAHS)ߓYdD,|TQ?%X1HVHYZW_	äǑ`\BaaxWwiŏn`ׁfN(5$^ɔJHQ Rs|]Urc!-r"2XG!$DXL"#`yPхh   ci<|E~ۛmPP2b=*XԦ#xD3"~8XAP`^~Ȓ O9:ѹד-HH><5(K-Tԃ6C1!"
MnePxJ# T>\ %:Dc!`,CzWdtToYVJށ̃۱,*b>.e5c/
QG\9Пs!iGSFY|$NŊU\C76$G
 B@VHAL+Iu=?C\ITߤ(M O`afP% b~Rv\YTfmP\U@!hAc h֏y~eXG@ cV&;|f`#\л%`p""juG>ծK5saQ*SzvΈC$w.5~yCB<|J[PIfFc~	>F<Ι]֣=RD]=,-R "VnhJPtNgW^h.@D:v}a,g8aU
hJFݭO9B oNI
 "[W,$(>RE<K,TNlG0\LER1;|)6ǎ)OZ,AD#,ZdL	a*07e!oI)lJ
^L Yi̠]mvDXy^v͘ŎYT6[L3&B"ef)$QG]$̠ʐ f^+r~=j+fRp͑URи򒹞mJ]6ʤhgBy½xBGlƩe*LU%'+ H&BkG	:A1LB_<C-2Yh^:nQm%(UDbnΑj
rPߚYR~Z@XA(8>ݕ AVhU"@yu)ÑIlfچBKZ~PKH2Z.YVPҀ[\BB:%j]adHFn?ldd--X'(f\Pō)*^陬
5:]Ʈ($.TKVԑlhEtACCBR_wD-GDLM	Dx~'zbAP8hwW)	ǒ!qq0UW<xlkm֌vpp"plHBRgS."\p܂LeB,aj0&N.+z'gw8
7
e'BMm?#Z~ޤpH0\eiMJt='>O[D-G`fSozãH*Ա[:Nb90d@XRoq^"dS9r4](tW0㑼ŋ$ALhg:J'Q A+i ذDR*:^DزoOD6$Y0 ~#e-4x-H,Ąo5Bn7SR%{evDBkEĆana)x-ƀm?7>Xoāq.O/`<4DRᢤBSjG0-T0ײH49ƿJ9S$9|Vƴhk2Jr=&Dnl&ek(Rlop'x`)WwG2Q_|!GK),tZZA|d`['i9%]Ïq)/_g׎n;ޛALrV?(ԯ<DCxX}nMi6uEVEbJ Լp-֤6vF9$8#\]6<\<F߳GȈ)?LNc+ۊl\ݯya52zE'nL,!,|bH{&F3P}se#Dm^E )"A6/i3c7v8wUW'KyWv-;.`6VڸZZOc]sӒ&C4+)I Ǹeps	tStk+XwF_D/E!&MZđ[C?)K$>PcBP+
,~wIm$nt^@KZ~
kIqKMExBCO{ذ1qxw8|
!"g
x +H/tژ7&ڽ'|A2LS#ĕ]Lc5x3Wݜ<"'65Ln<3SԅR2:y8<$BBE |)Fl:96GR,?,I3'i [L\@gA|o\z!>(0$C(@s'LcA9v}9(4 0xpn.C9M{P?-IlvH2\y3eEX9ڭ;H/ni϶[7o51A=ﲎ?wtÄ7:?`;ZM٠KP9-b6JZO~V+G߂$?&D :$'+H+ @$:$
cB@П<@ eJyCʔG#xbO#HC!5SGDӟReR>BvudO5ٳQZk٦]HEը
q]4d)Us|6|X`spБr^Kp>Gܺe/̓K+$aa0FA	(qWe̚˔'@}'ejZVD:@|RӇ4hWƊ7۶پ5[n:0RAT:<1Ͱ~'	+<E
R4Y$L5$Z	b%G Vn t@
b#q)`@trD<bҪ"
%R)<~j GXR=*fIB6Y=܁:3g/&dh?$'(.<b ,vsM"rh7N9B߂N@'G1LrGʨjW
O .g.ڪL
MfM7ۜT|4Os?!le:4$l4FTRpA  4G6V",XE!	<|Tccߪ1&;><jŒ꣏x쪻=6XyB6X6)^}6,K>kV[l[p!sCdHѤPu/bsu:y·NMƈƁ.$Te)G[[Ud`G~P"e0c&٢kyNUz&.T<i,hJp^3+HI3xZχBwƁ&Y#Bbm?~kNys|z>Yd<cWdHeen=>܋g6r~[KEt]8pHs:!|RZD !l:򏮙DH©.WUyɬWCYzPΗ+,/*XUc5:gҴ⾝=K4O4A  OjL uAdI&NwFjVb؇Q xVM6VM[74o S!HD+#>(4|FeNOφdrA5NXRX13AB"恽H>ѵMI0"Ua ~n=y7Q(,\<2,%UɡHJ0>e&^4B)Jo˔NPtQVn[B DkH*%Ŋ+@XHLTS[iM]2vuig"O`r	*VK ,S5I¬1')9QbT$}S
Z]-WC&(J I/a	B	yŎ4eDWr>k9#T+E'̕|sN==|x/T>q#du\VP `P\a?&:^66!٠GZNƫSR0&^
@8Gh-t
NXDnK,JxSʞӲ'T)̏~O:FU^Ɔ
L@jȇfI#%QErû冹p,,j[&~.{v]J>Q20pT"{8qie.A~GT
&>
|XG$T5YkQ /bߕ!Ca՘I@zc3/'ȼޖzŐ9zYDi/)?UAe2twZ*9SPT 5zub^ <9f.2Qߐd*,7x%ӡw	2o:\MI8JobT'<AOi<yZ$IşQpDx5+n)7ș.B@A`T.2>Ęh})ф3eeb7"oJi0=O*Up+hMq!8GjRYbA.ˇ9
gcXBSd"Ѷ@]Jtw$#,|]by)ot!s(OxE+uybR:,gCyY2dHvΙi-ۅ	-0T{[=S9>`,I!Iω=cܮ^VZYw9R%kLi4!E:@0Eٌ^E$<6f%gۘ/2*
L9c'\{2{"Ľ\d`ԼE%N?K<
n	(UPv. ` =F>6-G !銊O~4jn8*+cM0{"gq^dEs$P&n؅˶(^	*wpf
0%~$
P	tdch;vKp--'+1hQ0L1nN0
(k0		-.TBУ0N~jU$~9,WfHG)OuQ3όBz
Q\	1L (!א <Ny'bQxOŁˎ
K,`
"P (O d>ѿ0\Nʪ!&G
PKI&RGH5J2p#hbG.U1~07Aʈ#1bnL}$<2))M#/:˓	}"V<ӊʒ :XxMto`²-'$	66<1%DL$8*D~4S0=0FW2XmtTBs*hQ%$Ҋ+QT33TBR5ή3En #bF"*%}7ފra2c|AbѤ鱤b:kp@{*m+eݰD?̳Mqn͊
nB4
@@r,9\ozk ?n.nL650,Jgd&Y'9˳0
Oc3W ?32NT23,FQ&P+iVJ L52toRI??7k)&N'#03u.酬R	'6;WUDd4n"s;G{׶B#TΒ%RY$U7K6uSA=_$%)$DM=3r<pʮ?˂=Q>y%d#u ^0@?˱FPLOR$c8S
Y0u'4A@&*3j
;Qf2.xr!ء0/5#=ٱ) uQRsdB!"E<<άxYQ¡"RA&C~S"T~c3B3%ԅu{+>tD%mDj|!l[^IG
n C`G'_<Bkjg<6-uA,y(&S7u1@hmcz
D}bC?pȚoI0 5x!!cJ`vq_UP53JRj ,B?	-|Z0֣tGon8ҶTxR\;\{g}o5,y&71ly='Fi%1%nHssai<Wa咚চ@Q$&LJcՌ?~ov y)U7~Á q/D
w0SWj`>bS0%xC@JIWvL0hX\t1°6W  8qgV-4/ᚦ"3w
w!R`lf+ %b(r5-Y9AYY'4}P/djCG@xإbLω؏2 (nhyqruKQs6jw@"rM-6mTXm\ySTwbmC;'BQw͘4@?cא'!
"07.{-E4䶖8jt	4MW X}EH0I@L|Y}sKcW(jciOrsG35DE@yJ٣e!=o-nJeHPBqR<%4Lck1xE}z[3cPmzpetrtk4;qa=Q{/ uӄ/{F%`FDtG5|A}Bdw@lYyJ:y:g<Tͯ0':u[\-"ie%5x	L3t?+"CHuS%̹@	c/[82vት]9yMZöA3GՂ#ƳN#a#0?xq5{}I$Ⱥ.%9D!tLVmynC; a,;-|{>U 0e^^jS"y_o:%h⧅_dgB{B?)¼:Ꮓy[4%%p<	;	M\!$Q )Yh6lbt{<!sfgTz/lF'CdbA]a;cz[ sQZ
j&F	$]<0T0l{՚~%?
gWxp']9g(AfJ&3s<z<׏&(x̃*o#:@]:na<RBU97&ixcn?"0L1ʁVr{<^1Wo=s4`s;;"!D{HI&v#
jV9#BUS#88@JEB[ob`G|cˎ
φz|={>5IrGꙝI@H13~"晞xo\>vqML
q*ϳ%E}z~ Y-eAGE< LjlrQ#<$tŃu	mą_/XC|nR(rl6-<"CHر!bV[>}&"
I<8q? y"O,3{<#VB2{D1_8:Q>>{GT6Sa9>RzOxM}+I-ں}#b&[v|//0>|:%X!jqƊcJ}1BDa8,"GdXA<_`GMŶݴDE"GQ+հ}P>o$Հ !    ,  |,    6+092264-222 X p	4Y 5q1Y*o43V4+r8T?G]Go7EX2Qr=mvT	R0T5
V21jh2y'z*3RJU+VS&qfAo(Mn:nRI4oGnN2OOOLYr\m_UirmOGsRokkXnnn + >.2	NUai4R1W7k+t"{R8f?PLVZUn[elZk[prkk\ejnw~^omWqroXqn{q02XWnirqHSj|py{Ǐzưy{066<L?aNT6df6[^%kr(NQRkkNtp^FtNvm{1_]qj_rjvБ}rz72TqWpWfXl]ox^ipȑ7˘PǗjʣ[ϮjpiyzwƊςŤҲЍӨ쏓ŏϯɈ֛Ц˶ʵ̺쒍徍ˋ܇ʱôȔϯƈɖ՛͆Ζц֙׫    	H*\P=JHŋ3jȑ7 bHɓ(S\ɲˎ~IC{	^ɳgBx00ϧѣH*]ʔc?A^ӫX;`ÊKvi6.,9J=Nʝ11f ˷_\	ä808%1o1q˘3k6	JuFXJq	ß$^s޽Y\:bdU	8皷s`RmسkjZ7ۨ=a0>cXkO}
T5τ$`qg&`Fs\qW Gtr-G t8@i("{S%=Z5"x4Fx$ G*>W}b3Hu0(`Y%vb	dn@,֕`$FccFؖbk}xE	2!=*B
Z}C[& F*iJzc n=)47_IjF5 2!	N.Z:
% s#?oj[JlY,l(Z@I@a7 %kC6nbT~9U;p @|:ʡpRߤ8@EeբzR`aE@prhM>ntXs)dHQ$ D`V%7]<EpdNnU3O1Ax4SL}m&Xd^^Q H	uFYu*A&ezp	~7N? |qUyj8JfǣQ<f"AM=զE7]uz${RQoH/v,޾{'|K#ǿfm{7o}X?0J_QE*;b>^	9/#FD9Q	8T~xqC,+ :@=PŠei@*hnn"p\HXnH@+B"kXȺ@$cZJ "Fp2.ʢhspQ	mL|=* B8,H.x,!oy?R<0G	,cuSWXJZ\T0!!k(""H$`
`s=FI`̥.Yg?dB )&[U$]rf.{9D~b0	,ˤ%,p"=j#EImԤ!*b&4CtJ㰄vPIS=IъnQe2
F)6G"[KD!`v(A4Q狪 2)Qۙ"o(F;AT7XͣN*j!iF"ڣVUI6tlCjVJ.n@ckC&9(f%a!$#mIL1A:\P.B a .Ez+z!	CU#{hL`8b@rt+\ݴBRgqBBr=_ [3q ')#1%NtK_V5E]]M08K^W @a9!/;󭯄{_\m]	jSnrW` NY(ʛO}rˊi
%^Hb ŝmNPs&;9Z#	Oq
BA2яS̰S?ԥjBa[an$!ȃHNr6p4X<ľd=w6b'(2n>p2f)i\հajL^}&<$xo	j`'ȐNK8unٛkk[;֢c{Y(Sl*/ވ%&$@pNjwon"GtH2p:!Jkh8(9:K'VxKkZsn[搖KjfY%	H
D'gh&XFHUPZFjow]N'ǜтyqŃ<Z6a,Sg+q-l@ DX-W+NN;^v.=bGSy}*A`b |_	=`${@Qnxo;Y?yTig^ZijDe!z'AϩWP[*;a/هOYҽcfXVg̽?P&P L7}4Mfsu{`~tr|Eudvp168q=aV'Eb q	6Nd+FC_mw~7vxgpHgy!|ut$XsƂ\	YWh_h  0oFauV'~{7tx*)O8]Gz[evE/>Lo(4SaTAȄChexXW< kYVqAlJdwp`ARsiBL}7[{{h~wshgURHr}WV3k Ӎ/ʸ#a3ddNJ:Yv]H-Hugp"X/#Âj:])+a&]36-#`ёhv(@g)~ԁ8G|؁ۈS,Ru(ZH#D(Dnk<Pn}gՈXvxyٸ~'8fIbi7"u+Y!uVtwZiRU2,#:h&iOpr[I;gH'gI17)y=iS$,cC VCgVS-9H38H!N [Uёg}.iyʹ/י8!LGwwI"#3J^@`1YbP4=֎DEW]ikYΉl	-=,IWWKoOS%pG	
QnLE"1 &ymM~$ٟ|4E2ytZDJFr9weŘa#Ԁi.ڒȜ,&#ږ,DDC_)eUr%Vz	S):1u5UA|XZ
-yxꄅJZ
DNccM|zt6ɦAfJZpJC(pQ	310␤6D!	᛻gy_:Y*
ڥUT|T_B|A[[Z
@P W`H#xUɊ]$:饑9Ihjzjٮ8W'yx<=Wus}dG1	PNj"(8@V=$U K)/JV*Oj$[:eD!%
QNҎ}DU!M} B͓>T a	b'1	h(|m\z&{[ ٲzU*꯺)k4MDF=@DU-:;@)f`*B0Up _ZJ*2_g	bRZ(*=X]jvon\dA5M+?`o n  FF@1F(xS/i;3y˯)Z*ڻ^IOPH62W+A&C}a!	ƴMw+:  01s{	 0`)ʫ{e˨:\ۼLjh	5*7|/>`d6Ds=c"T8@0a9fNjS":[j<ȉh;\9%UwF>=cNi<ـ"kA!|^)HrbM&|KLń2Kze{kQ$US1d=+Np#3E:P'p	' !J0!eO̵˹e&,W,𑳺=Xe%BX
HAi2c
;h%1\Yڇ̐Lȝ\}ZE YQ"daA
`Fn
$#a	hl@PXKj̥?ϊ<yz̟IE@PYf!d%_	 ]MBp 3]BkGq0t~;01p!ϘtyИ;AMF}L}fԧ2RM	gk01Bv+FA{")XaQ&M@4\&  rm8 lI4ۓLLCE]jK]G0R<ɶ&`ݠ	q/ttM##$Z*ʧ@0j`t[0גGDMScnIA۠	*pޠ"#v>x0 4	,zmV[4ߐ  0sN `-|vԓ}\-ѽ^.݊]<愌"ȗ=+FVAK8WA)p?q;ATA8QQ6.HH<_.aG!,٪@opa͑QKGQ)`1,ۓ!`$܀".X.ԎeY薘=+i @fe{Hdʾ=.8JܽݽLmlؗˠ$a>5Hдm 7lI8 ~Vj|L?yƌU,%t$piFհ1j@
IE@!0=lWod+X?MHMVOKLvY?]iPh8  J`'28f%#|~?UMGnyNOPD-(%?dddZNh//赸dM9Q7	/}7||؁P?濿^,~[&_n.dȰ<%J =5n_;uaHRޢxdK1ed)fפ4uO(n6N$bTaNSQN}Q;Tի8U~;kY?Ӣ+֬[p:Yo~;o߮˖ڽ|{%7-WUlW`>{0$/\4cCeϦ]f,@ke۷AN0`h#83:jNNnߴ"]1]i#qվ5_X᳍vv4xYg4 o 6{~g^eL	@
+#{r9B᪢I!ǀ5:&En;+2ROJ=&j!iH2" 0%A܉sY@$L8رg v,ɢؔs&N9&ۈ*M#~jtFQ kG$ے2O0<-<ƋMRK-RY;3LM#lPdhXdg  gcdI&z#7LEF5)>1jw>P3KI'E^YE5˶NXwr2D,uoz,k% hbC&ӀXn0 h4viu>IנEqk`LT}OmK)M:=*&USGe1,KƵ	bi#9ayn_D=A	z[*'#!<Yg ԟEcJ+tjmz|Dz%zҾ2ʧId!,̉#F%#4&aV>o*0 obRsA ]8iqƣr<*[d438
}SiU^Rjҝ}EvK8!d6-$`6iyH"EO b7)'K/||TxfxR\^~bWw/U@zO[j"vu6_NL /2j@R?qP陡=#EDf3N|09&,-A$4Ij'1#	jAb3Z%#	BW,-DR !\?93Yeq	A@!ݸ8ڱD4!9@ЈX-b܇?)qN+`yQ&I*lݰ%_݊!^<<z6iA9fC%(M 7a.YD2Y
"3D)is_Lk
OtщdL?#7]'_7vaD,6Q ܀P nW0edHEZMGg5Q&4J-|O'I,K57Os)c; {& cGe5+T.^)]ej`xVƲ♆+Xduh$Wtѕ:gv-Q$&sձe:ɾ.$,Y9R3O*$x Z4ԄCj[_8x[lPo?[nq( *FsB2^-L{/gW%[NG20*y_gJBrr	|eﺻ$oicpd8 LCJ<Go;j\h*bV$7H5l98Vj.ξ~w$~P9j73@ucKc	 (X7dLK10!=9Uf̊a)d3M3CR+VTօDgL	sלkVHUj,фBSTA&@Whq7㆓=L᠜pܢQ~6|J;uMgƸ$bC5O%.ֱf>tDhlKu'X<ZA"+S}1:՘flx 3L].xfo~sg*d>p.4؄T mH"ap<3eI?Ra
}*ayG0Ѻ&6n!=8nDx~a4]-'ZӰXRX+&Iu)6
kU>bGuy#~c+_K( F&u@o~$W$I<uxx!]<Mݺg"泫2UOu*LV&hՇc/R-RcshU-1~3
z,^{0)S{>>xm
!ͩ1^_38c"
7ӱQ?% ZQC`ss@6Ȗ{H-6-K5T`82AW yq$pr.d[۵D	c%̛[DB#CHkw ,öeH nȖ41ԉ7`I@	{_155y3;C>dd
@@@#B!|õ)JH:6 R3RCh%$;D>tl܁By-8$7N Xq [3h6 44- .C샡;*1suƖ?z'CܩBjm쩇#|IA'n)B|JGEh%~"͘GzԈt 
N(Jڠ5yxf~V؂$؂a-" "xeT
~vAC;CӳT	=IAqqz:0YġĸR@z)yҠqa!I
X
LQ#?`#%
{ˮ@Ⱥ
v|l\D8̟IZI>}jBJwGIKLzdJн#3Cդ186Ys|`\ЉƐA#3<̃<NmJΧ W6Ν΢bIn|ĥ$Glѣ R|wjhQ`L4B)M r/6,]P05ˈ@QC	ղ>0u0"0ES沜ҳѡ"<m,?<_N=I3o &&ik=xLJDOX	1M$H(i+u.@ ڐSA/>@K#0
IJӾ=Mu'˿Bi=̖=KJMl#;?JKՄ'ǩ4U8M/$MHQ1XժٰMX5,KK1"0w7Pw8Ժ#Y)NN@W&dBnՌ"L@{\9N.zEB4+8Pb /W]w-##HUXU$t1@QBl؍<֏]0kۃSk8X{E`dX
ِۆS( bעnVޣ	WxU-ڴNU.ک`gQ.f-ԵY]!	YoNKU:%Rɵ\\RT!t2PAem	MIPmX܀]=ӴPcT]Xد
QԔZ~F,""9MQ<ޅ:w7KM6Q
D5DԫrոJRz#	ߠ4شd@Be	M_SX#(]4խߨ()?Peb]V"AQTeDըj*`]CQ8h#;MB3JF\ !m2.AAhxP~kKXlP_@raX ݴLр}
>paju*(bQ}<Z8]I[]Y`TxT4D66ƕ%!^R1PIY(_Mv*dz@ud&;(5\>JdCJbERNkUWX;5xYx]64eg0`z`*l) K@a {zb,xZr\!@#"0|H#0PLVM$"4"bSFeKĭNTWg>BUz Eȑ
,r!S܍	1dE98`  鱄)-UdE3f*ZU`՚,$FE!M$;WNmwfjIN>X٨^j:eVVf@u`Rk[=쇵nk>臙^8FWCҼncTK@(6  i@-W3 KʶlX̓sN~>u]-yEUkŔ~^FN*0B
2dHiD(+Dx6!	hՎ%evPP9*k.H-dB+o0$j%bUg~jrPum$Bp>4mlsb٥m"$ciGٯt\p/M/d	_8unq@6XEg&';eaFv&NLEh)3b]p
*⋳VvBh԰\CsA8֌B,;Oqj!xGƮoaFgI6ꭺuH
gKEHCQad3v-e5'dx(b]ٶptRfh6CDs5nDg>K̐9ʹ;pHIȂ2D QMW]uXwGrxu<_
֕EI۽a`F}ɍbYVp`;GLyI|jootlQ@4otv@ŶJUz'W?ݪ_0&6P{W׵ѹ)TG:kwCo\wsM|DLx=ͼ l@	o{ڴ]UG }˦80H<X`˄>$ϳΜk(n-R%"Fq,bT1ǋ!5r8aƇ%/nL9jƕɄXSK [(scÓ<1T3ǔ<!{)QbDRՄ"DK."UNٴmkm۸c=k.޼%ИEDk0ĊoP/ް3_,7s-IF.mt F<3҇ܺq11U	,X|epQŔ"],9rhRJ|t(KDNRBwyTڵlBZzmȾ\u\XZ\ׁqa<UE MA!Σ ;q!I\Rb2	O-+hH6Xw$>yܶ}?	qW@=呄EuߖuTU'K?v멧{ԽǒP}I`UUVhO"reggQ`qXW% _!JH>)u7 Ġ7cXR<t*ck6+iy<bE?4P:rL9J@'z"]9gG(evlD&NfC"UpbfGqzTgOIE"Kg;]%(Y	(pS%Ϋ	 a
?zq̀h4$"IbC 1xk9&3
mFnFrF q(G]YIm\bw-eDn{JHymMU^R2T^(	UƯʵ dcp[.v'$p&ŗ g09EfЈ:	/F2P9,2410XBF!N]䌳S*~"w-&-bj-HB5z][^%ROwWWi5H2}huepk%~!%'Y>Tᪧxa]|@Qd(`^ҕVf8Xa<"h0ᤁAw4Sᔆ#xt(Dq]_Lҝ-/'7ə1(v
*.̷d(*.{ЂѨťP|J?8DH\LV/X;4 ` 8R%,Ɉ7F!Uvd3D1:K
YX"P14  X9ܡ|pd$#)8$*o]O0)"%lo^.u	p/"!ƭ(ma_Z(į*g|#U!U"y#+EebAe {db<3V$:Bݡ
yfQS2gB"R[k.3%L4u{2e55d\b9DdZ˽iTK7MDo?=<3rME0V~l( !Qp@ ~f$kh?\DpCgxH.*H*2=[r#Nz2[.*&l2i<E?OM5.
(oQ1%\jH
ȏb&*QL1FYG(T`Bϓ*S.+9|`4X\i
IvGZɣ*=RZ-z.^jx%ӃcTJ;,n0o$0D@[v/-S?ϸ-G?:93 T.0fMn&Z:!8WF="йX]i<ivQgCDr+-
zmKo<	}{$LװjY[PK2Et+dt#0=
{֍
#)m6)ljlr*Fq[qxC0ȵ&B @cTn'r[6{uE]	=1e/y&ցKwzB1JS%:DmvźD%cV05oTZMl	'a폈M@_6e$RCR
g}=Sf1<HgrY5wC!!_ֹ!DST6se!f9$whyf|q֦}j'Gv]8Y<-r[cQ"lAu	G7!N,/7U\1I#IKCA
Ha^hmn7XB /B=!а\Wqd"3T% zGvhBJT̕vn7/؈n+)q^(DPP"ݯV_`ݘʠG5%
ף-`GSdbp?(oĀ젇8^HUY~5jutݷ""V]Uޮ)rq^Sx^DKDuO]c\́Q֗2iYYV|NM<lT0uU=E
VDh	vC"Mn>HPFi% 'ʴƹFsm$"$'CAEJ٤D@ ^hǵ|QIPLu{us%
ܔiB t Yہ,HUS8_ZDߔ_&?8F9niD&;.`	˩q
^@uPot:#)@B!rד8]<iD`iQaxl׈ObO$b1WLH#cL)Q a0%E5tZ(M`"$Z\O]H=ʅ	9]O.b:d|5,@* $   ?|!@	)\R#X]aJrԡ_ՔlD8R^J2RM0 re9܅~$C;܋&X7mTBbE A!C\l^^CD}$b<02C=˄?$Fo`&4F0ZZ8_=RG YXFeKUGIL"|cOp%.A1Ze4lZBW(eU`C]p}W
@9!	%z Ѐ?pC0d+\\i_ *|&AǭEd)P+G 	}Vfv8S~`jD!\
VCNTEQ"TCZtfg]Μ"D
0ЖҭzC:?C"(" C?<馌e!g^hx'FB$n*8(*$}J^T;
[cTMW$&n.Do2ևc!:~#ъj%:^$C%,ZtUd[Q-<hh`' A	ꥠ9g98Y!CLCAC%gnhƂ')(iU!i)qDESj iFأH,j<nOT*vD N<Ŧ""t"'OAΆX@**T dt*]pB*
'$u?ÖBaCȂ=rih\8D+ $inI!*R(P|Bz&TcD }a;ܳգdD0"Ԋ^$B%Q@
큄E?uvj6N^Q*vFR\H,JȻ~,E;ABK?XBɴ @~B$m+˲BR데sU,iIhf
Z8"m轜"wGY襣&L݈}qŝm~Trb,unRݲ*e?HlUuC8fKDJAk&.* Uq1/@ F%npDވMJoP.5&]aEX+` fkئэSTV؇nFO Y$o4D&dUmt7xb49j]pLh $]<!P UCa$ill](YgtiCL&"n0+	8:	 ]pQMq}0b:kZ`W"Nd5وx<څQY@ftZB2XUb\0\$C(/_jB_7|C	OLM4+8$A%&o]R0iؤD&$~,24rA$OmzOZZ(s2C՚21b*]	F,䦶Q1WH/
3_Ro&%!T4tb"J؃~Br:>碩i܁*h>3A?D^D	~T 
_-ToUf)rDyI@]dLڒV7D $N)BkM1(Z\t?<@6 a`P4iަ4DQ'P7 |ޅ͈dSO9XIDm̠[3np8(0k5GҢBX&nQp*je+]nwS-N^[] q٪[.CO1c48!
's?4V Zvi'8bT<,;o6R1$*olKXrYqǮ#J`M7*E*`a<&/~7hb+,GKsdZ4}7C68	%7bz4=eKى+t"X{=,?LThe_ ?>x{8@rC#UFpKS*}57Ō(pcYwDCeu0]GڡN7DwڪP)a?rt\48ryEeKwD~ۡ#.уt%hF{ $h= E ) 0>2%9:FUJqAR.Xs5vPttc52D:DthbӀ tvA/?L"!Jϥt]y$͚wlr =7ST)_]()\;^)l8J5Ż芡ޅ'viX5ābn \*^sk>Ms0rķuū=\5W*u{RpJ2ՙEHg<Yt[Sw9%P]tC;p |#ws
 )XE S`x,z;hnw\&l\5ԻnAA$ENJ"@ 2~]K#XAm	b &[_łz]~%B2`"[r]6 Dn4x76tbD)Vp ;b)?5MjP/]tfLmIrgN: y 5eO@\DH,b5)UwS+b!r4 Q5J8'EU8U/Q[lxaar8.brQrᇉ=c&t·-BAKbkRT{6"-%qߢڻgהS99tZdﶞ;jU`~3ɗ7p  e(Ƙ6&M  8	ŦB$ :sJA(Щ$j)$#D?кc-i@*S lJ,3s̰ĹgK3$\H@+R.Rk$/5dӍKȬDLIf
J HEp.x<^!?Ԅ@w&}ԡ6ZI&	coBv 1 a0Eu }VX'$:T\h#*[wB&gC~"+<,8+GK0Ur\&'J'4#Ij^|	+⭲+MLK;[͟~4DmDN넃'7-5	E9ldCOEmwЏ/6Xe./ ƀTf@nBgy:*")Ɉ_YiՉo2B{`C"
"ID=@*EVX#xF?ܿjrGJ%8ϒ!,Mmv|}-HUv4 r'0\ތ6lϏ+dEJ6ylhrxMjGW'#!eH!zodG,jMyB'wn!BRvmKR K
lk[~baZ(Yg]WW]+W&%-rEt`v:w)t18:!Qi:Y"b'v$vN1`9HZ<8yY|7}*DV@#{I;l,@$ N У cT#bl^G9H(FJ꤀/P"D0Y&HPeR=]AzIH
yI%HJCT#:t~I5eLME4"!+D!7 CC.LQ"eHe=2{h,=$#hC L U8)NHCkˊrG::K/'Ɏ:Pn[)>%2㲣(B\x
rJRD9s4Pm尤v/[A^s;Dd"+wBPT6{&"`אvbxyXQf?Ql̐TA%ڳ HܓD↞
:X> {G:hY*)ZZJ'MjY@BhA)R.HW5p+Ł8E0q3TÐ֫1륨f!TZqfü"e5rVD8quQ!:&璳+:"F7Z6 0 !	.X| ;	@6DCڐNiDD/I@  ?
$X%g˿"PpF\P!ӺrMɇ3:pK\`)X/#aiB#֬0p&ī]9
6k4"= j"H\j	 "]`C+O `^C"!≈ܨ;  BӅe  hp`M?ljd@˴&J %*HZ6rRdۂ *֔y`fJ%SP-c*e
rɭK}E]M11H"/NOA(iL	؂OF05B`npԐ=VX}x<J0>v3 `>R>@*WBr`54g3[`$0mBG;A
=JۦswU(`;ArQF"Ih?\ŻAb\
w5;i%eh^=e`L&ɫzV7q㹃fpEaydF3 '5b!?_H?6T}mȂǋ~`
8O찏):ًۭx{vʀ	O'ĩ:ARGxDx<cW~* nIq-T#IVJ$΋ܥ.g 7,:`b
0:`CLRNX !Lc/, AGjl`Jڏ"؀P@ޣ:g!6F ` vDOBd(r`'(LBlXVК@oKL0Pqօ_"/0R"IVpႉsDp2zt@8$bb!YxH.Pzw . /V@v|Niΐ%&J&n|n4ء @=aF#h\!	nʎA:k%VQX 'bܲ" B&p 9k:A^#18% lDFqKVL$Et$B'\u,dzo(YlP	dP7,qM+aT#L!{%j ̠=Z!ְ 4bfSv0(Ag ,aā-i!aUB|!ALR3łX"i!M
)xkA1'">D( lRn<al%!mFH$/څ^DDG΂'799b&	8E5\PJ	a!I~!"XVnL{16<z7rr,7m:z/`!U&|̇!#
 ,k/I?x><`1BhA`'lC2Y&p373K<-)S"!  +B ]s!n,@ߘ0 7ũ%NGz/k,%5O*Ǘ":3`c+ZsV2d*0a6/dMH7
+	07ĉ°OL< Ca~a !R r$=*N̠Ai   $!O	tBXa2#d)leEW4o\rE4L"q	!P@
js$I177p<@&k.04}2:ʆLL8cOM?&vN7*vu4=?fO44/⪡z(X+[.Lē!.Pycc"c(,x|1$gatPp@̀԰_CbVFD* )dk)۠u"(5!u!܁ւT,@(6s	mgBR:iYKq'bLcbMK!6<'bvMt4LbsO>qx쪇Г85P&@<@3=0M!3yAA  &S&@b> 2# W!!koE"IEB(:"~ G* [mՂHºl	6\oB7B(s8J+aqm-JT	S@܌т-B;#;aD:hCF*/6
v#f"BP!
Aa.NG&{XOiP=`h@بw*WAPVaj|6}Xbkl'
H8OZ@	 $bM`[]nH_N $]!n6
ᚶOR8#gnpt\bD
#3Хm@a%tuv=y#SG'nP<?CVQhw$4bX#֋ٱ"4L@F&4@@׎l{yev!es4X.j/	#ec/&oIܮ5@&4CS\S$&tw;8"v)U6b/sa62m!aP>PRuY, cG<sS ck~- XO7!+I+EtM()d	 A
X,6(.61@'"Oxg
!#Ib!ߴ4dy]_]Q"Hd3-
^~#c-
uK >˲O<SNcwBhg.U }<&A!*YŁ!A(-*3%3Xґ4bl
8ʀ	E.Hd[,=H;P!L$8	'!ubF()G7,"TbAA;<9]~5!7a' A8!7xwOSsj`AmUWHB}d-aN!jkg@{}%Zk-)dk@	Ó0+ BAdlb+Ap/JOYB7a\V:#rJ,NH(:ib|
(l$I	NgG(f)+,y	#x		U;Ff!ۛ>j/^h8$] &p!L`CMhn~/[7B|-W
	"[oreࡀ]c#˄qWyk;aN귻! }Y&.Z,"Οp6Rw0-vAc]6uߐVK:agҡy@!6<1{EE!{Emmb!ӡե ևF!.d[r;qMc7|912_U!a/6D0ڣ8Y٥ 	 >bH$۳P"faTdN/uք; "Y}%)6d	DK"r7;"P^Ǒ$K<2ʕ,[|	3} \IVIz	'!AM2Rˈ$IXY5U$FV+	uRG"5׎U-ĩBG3>F3Z5E	WwoT$&jd%T(cRbDDHTd˺f}V!rH]K8|nfU};f.dF%C`!p':NV퐸GW̘"iɒ-ZTM+}BD'&SH`xڂeŦTT[hU\yu8Q P*J+U\M4HyIq!c59vHXW"q({։6Z2Tn*mej\n[nCf'moep#؄3fr&%I,DrB6e5T$(b%xL"gDUCqj:O!īET\ZnVNgZ+ыaw`DOU&G4DHGuv&H@("W?j"inp-"*/JdW)M q+J"zI+"8qzXAg^F%{Ved)7Q*Bs>|,:д*+g]+V@qVBQ,++H4+V&G.`-"g?J$ՌH*F"R[]ãox0)[xl4Mr8_"$UDl%7Q"̩~'O|#j[U["[RE4KD|G!!Xެ3_ϊ.O:hb=J2vʓ's=$\&~˓&hT(#mS]83q+F^Evx#e1(Чf0&#K4DR)FwϨ~ܡ@+h -+rYZ!AzTVCjG{l&!!Ǌ@H5̬_a0q[uk1wEO{@]MK;S!,n$4ٍp$w`h((ąl},)>cx3KK\뀈`
s(dupDSybF$TqHQJM}GjWÒȴ
)E55Bx:(hB<Б"J!h1N*6vGvvT<cqr!pJ|{NhّrS,D	a!DJ(ifS4YL}Y,Q*i].ViV"WⰬfPOgVȅ	N@.Ƅ8քCfqPmkoN233E핊T뇚!@Vr)Q\ c;Y#:)D4ӝéM+ՎkeeS9Qܟ	MMs2T
%)S2GJ2Ya;N ҺFt|qҜ8J>0tũKKřw8Ar،nbɹ
rRCb/`SR<h)1,+\ޖ"m/41)je
r $JT
8=!pf3 1Nq%cOA o"
Ǒ]e^$S"#cu2O I,H!ir2쾌/ID3B:@x
|	1Ӭ٥O]Ñ!w&mTDAEK3۬rpZ&'JzUv=\ʨ *(RZ'{?jBV෪m~I!=cP>$<$9̽~s$ra+0IH%J@1A4/+f1{Q]BU4ɅfUW7RK,4	b!vO,x@öruuc|qধ3Ha!LቐaWF@{⋠`wzͲ<iNpDF:>T"bQܧ-8\f/~`lA8pv$ 0w.RUǂ7yg{tS0w͇+!߈)y7xPc :^V>?cd4Kƛ7C:~sW.͖4(Oq&
~SaJIĸ wH6y'Hx@y2)%3;y8`  ` 0 @Gf
D&%'Mz{]M{VFn1eȖD,Vf"t9
#fOR-$;S/7X6F_h&!U98jcAk膣&gx~qyF"Kqဤ2g pb0 0  0P  A0z,2x*JC.<&gR!S,2{U0nh=l΀Ǣ9,Sa# f _H#?և[OeW[huDu8-XuvKhG"x3jq}-H@ŀ1p0PH00 @	  \pf'-ZRkj0h(A&D@&U]@pSs+`mӌ D>Nnfn;#	M"PvSg_gCv;2ਕ(E^p` `  p`	q9  Pp p	q h/rydDMÑQS#NE+a5BT}wl pFAqNpov(I'uTfm'7NxX.s$24PW_)!'1~
%/q[	~D"/xX)P)`҈Q `yɐQ0|yz Am	PyWdr!B&Z5r$as385@0Кȱl
LpF`nc/@6v$nYv	CJpA}QgvS`oGOYAv!
)~W	!P~w-)c	D}	~1;y ߠ 0` b
@sY	1 lܰ@I*$)4 j\Xd `!
]s]R#5S?sy #TP9g4'A06 	t?b} }WRh"A1MK	Q*Q-#OHp'UIevPoop>B4	@r$0  ɏqL@m
bp`
xy*]jJJZrN
&Ln1J!U
#eqW$Mf\ZHq ufCAj!.1oX;ðIa9<bg)q'8zKPBqEx?31C=~,@小{**  $01	!$1\FCQ5"p=\ *[4Eυ]D<bW@˖d>gӹ`+r'a#Ѻ}&2Z)	!AvJYJns.`hk6pq18`*%ybwHH-a3	@|Ybpf(H8<\!#5591H\2(F0d&]]1fw,(>GJ&Lj fշ	H.|I$P?8elqR
M`ttPo:P( &BvZ;/`0lL` 00  Z	
 ;d&! NcN"G,B$2wۑV(pFMgpFWgĢÇ	<IXw/K:ڢJQ@CQ.
XW,`ı&k~e6*%)A@$oM?{\e)3yv|0b
qjl@-ʐ,";s(<Z4\'0]=O652
˯`8̋%Q'WGopD7P=#6	(q(u3fv!%%XИ4(&t;!KwK&p.?App1l	,%Ppq@3m{M k7("=6j :+=\TcHLv V	*>hHr*95p.jv+̈́И.I	vAJjSwBΏcPN
V
Yv̰(7Ԁ΀rQDrmC#5= ׀E]<1! =I !5pW@Z	QM`w0-+ؼ@3	9v	ά)E_sC4z<]q^Wa('("Э*ӿ9CCVKcou|L01 J䙵&cNW.&FʳdT"n!
S0
]uuFoeˠMfË Y2Af$@R^Ƽ#!hêУwKϱVgJ#4Ѝ(L@I*i=qOQs_rEA^Q6]PSpcgN9$At(guc}"Am褦N$Jq&NOp2'tjF B@B
K!p'K*\nX:N֓ LcND_]@	00NtS&N:^Me^#ڄvJBfx.Si׬0hVYi¾Cr*l(ih\m/^OEክNs)ePn$&6 9H^->B	f(0=IGȭvbeipSw$!R^J`K P#U	j:;lq0ZIrQі\Ts5F
He)rN@|#A|\
&z=H? IDDPQč:.Y"D,i%K<**8U[!DiJP*]h_JᵫfiG5=jREH>EOĚU}&3xS5nZmݾU$[Xݕ%k^|qK@!lt?YdɌrd!FIĬb$ 7n/lqNJ&6UFMTD![ -Z8Q0mZ&6T3Lٳ+}`AY"KP-zLLqFZ('ȢD,i}Jf(YDH)0Cxp6xAhSڇo0!UR	xh ȒU fD!$2$-躋VY!F0[%1#03-c,LL31S+Ͳ$8Ym<ٜR 'zT9&tCƐL 1D ELnԡJE; Q$/~r'(
*:"(jiZJCgjO5>'/E,;Coo5YǫC]I~H`Ǟ8 o ,@X`2-2c7H&3ô$dUsU^kLIg^+L5?0RL$<M;$gO*s\lTR|sC9$EG&H0M?JDzG9:.UO7TUQs5U~MY]vEaTĐD**fZk-C^A7tM.ٕ=ܔ$Y+1GvbQUT@ ('~ĘB (Nd69z7!&RHV0|2 >SK.˛'J(w0/L?ViBbq!MEb<JGn57X4(&0qNdlS-bQbȦHdozUJ+Qn CHD<nB3N*QDt{
JgŜ\[׸X=	hA lGb  >1@bB(V\Gb@1b7 pD9ʬO23)Ŵ9iKeU'HKaUh8AM6 T>	aSIL¨F%AbO9'!N&6UCmtXRE<yDzp%qQgVQYj(2vX8JBI<՜XYEEt.*QE=9Α)XV! =Ā<L?2My(@t7cÑФ=o %xJ(0 miCBw||*:V21qu}j/W)b|ChLIp65|jPȇ(sz뀊<`HG|B)p@pI4]It(CHL(%6(pu%F%"Ro)yD鏢t(`zab8$38x*5X  %q`?v5PAH+G[<l
jXլ0N#'$eHJHA̈́XNFZ+@R0
S r3\DNxBr)lG>qT)nwxRtRMȊrTUnᰅjnS(I?	'8
bp9vp5*g&WcɃ߀jJf$Tߨ*^AiK,$@]S`   :c  @QQ H ?&-;xCpQF	Uv%05Ise:;!8 <Bp*V1_kٔ 4㟇$)ŴiJԐ?fxAoЙCZbz<RDю$!G44,CfT0oDٚns,BUGBMr`y&80I('!uv:W?u a\7DZܛkjf>&M ;t4{]jF`ލ$HZeaxvO=kg6brqd)	fŜ2
R!T_8?Yl0CPyr@9,[	O89Y;5痿~̐U_K"PW)X7%h)shWڡn7t.~:PְR˺H  _ v;H$$L46yazyp vBb-HAXo*jؑdPVІx/S0b. ( Ovص^P0zq6P@<˳B͋S0o˥ی\26 )_+ *1'8ʱ[Q &'uYwRCpqڎx~Y
Rj-H٧~)3h:3Bl8?{A¿ZKe8[@lJ  4Ҫ$910c:	B8  ȴy00FoPjX:BC4/R{ !0jclP qCAB
K*B-½p3-X	h|X9I'Zrܣ;Y1sc>C(A
'L= &ItBKGЎT0ٲBxA[SI#:,zE[T.\]   WLZ5n4gK;K;M@ F:I*Ȼ/|h4zKru H -hF^F̴.ЯPL$O%9Hi0B.L 2 aq++w9@@U#бL?l򚗜D#vr8G̸`sIr䢎!(3'衕36B(ZR.31Jˬ[~0Y8B6xa
KP Q Im<A4DFB:dL
t~LobL k3	0y"m%y@TM"QU0(4@_*+Ē=qQ@&4&H1&GIo:,kKT&IUL$ĉKwhhLȾIySR	,Ӧhx~ 
qE#Jՙ"R%ә?o eՊ`(XЇjDH #
\U@\Hȩ֑ 4H3*:KhVUG鈰+#=R4 ¨ Wl(; Č"+=C9,|}GuC)I<7ܚ(z(Sӌ{wÊ=U<!"LJ	b>ۊ~0Xp	jTNY՛=qs!FX=}JP8MZCm/64q¬ȓ8C;X3YHИHzR2zDσC)E<H2&,0#cزYjӬXsC-. A<3atdiYг(EzPR<5޻҄۱-[QE|8CŐ&A1ɥ;tRȃ{5/*KSGAɆe\x )cC<2K,
rX͸LJj(G5,Jx]qщ9ڵN
uTZEï=k޷<Xh!  @^9P@-ݓp/=Rxe,!&p!=e"A8ӶQm &K|Va:nΕ`
Q	v]HOV.7CF)aU"^vdm3-< 4Q9H؂u+h<P!1/pQ1#&x\p,?ݰ&5؃qR{X25&XKW6PQɕ<.9
Љ"Ȝ@d`0DxEF~{vd& z(P e)ѝЇ*ȃ<PTS+`&ecBq4&&MuȠMY:'H8Qr*MXF؎|WaE8D^&,Veaq	DIȏÏ
YDgu^jxgy	zN&-(\B1< =rChbO@2Ѝ}
U |i=]dޛ[ '[͸iac)JÏSXl
<Q`3@EDw-
_jqETBƐNn&M{&~"M^z8k9A^COC#	F,1Oe+|lAdI}2!k1֎f~	"["<e5֛gn 	0iΏX} tve9(@t&q1@nxfnwD#nإF9Q΃*PJ'V_Y&{k'+@&urPN">3JI 'w2!HIl'EІfLf(/Z2p3KH}=hh2.
_1cxf91EyqqM4qS
r.a# R^)X'Sed!.AykL]EѠjj8bG8脇A;Q	9Z%SUE&TVw(>wj>Y~*Opc>o	iNj*B*J"3^KՏʹP]YHŰy%,\u&7nQV-yu#=mh.5w+o{hU+GMlH FJ9xQ 6fV[H-_lQ@cBC<gc>)"]ppThvW?X6tPhmegRnox"A	*_"eV.y~f͙!<XȃUhC_CxrneOy-]F]_`816>l556Z	MTpL&Tp=Dxƙ]o
nE
lWx(߶to "LCS(q"Ŋ/b̨Qb{2$ƒǡkeU.rʔĩ"U$&H$	*t(ѡH U#Ԩq@V4k<T
RJr'NGQRKP#'M5*U:jR0Q8?gRLntڢE>cZJϛ0)gDΥA+"ҦMgB]D,i
.\%K%I5}Aq6n-_TÄ%KoD3^jҫ_(`AD4dc2`
r`B!*$0=z4@"hS">(Lӊ,B)0aOEcPH !Y$SF"*FASD8FdpJAbpZO@x9%DNلDHP>%Vʈ$ALVYgٚm)r"dY&,ߖ~kd"C͡Y*w^j=]"t]=g$ܝxtFM5W$j٢"vl͊6cOy>@<X8چhHɅ6Q{j!	!&(  	|B	4HrI@A6ҰEBpK4hSy)7>\SA\2+KᨔPOFY*?A
/W]lr9AY'oR}fIndFA9*V)<)8ۧ$)jD0jZhRӏ)$ro*rgI2vMPv&,[9g5,z&S<FG裎
"t]7ްz8>@  
o[g.4=OC.@һEö]v`o~/'-sS>8)o?yJwc#p&++ A^
pc.y9A'<qB-2\)NQ7fVjTљ0)9jԦQy C|* @K5H2zӪ\Eg=~&%t8P"w,`BWsCܧr#st5!dg001
"_#	XCSP"a({>0$"?
/{	IE$*L#Q{"ixs~|ǽ@$CeBh1!'0
M4bP	t4$nHJ1Aq+\va3`)gЄB\hO(ڟHC4!8DXj͈eRÁ,T~FBhD#HjC#A]A@\g}b:<Rr\C̓(}jy!rv!I"gHer	$(KYhB"ĉ9?}sC_W xi%ҫ%?aU@(&6!ls\ȀN%\
M	LeO,YxY]Z\,zSbؖJT-3p!$JQ` }?bG)fa[xbNFsD#nqF<yGmhZ_Tb<jt&jc*<2?NO"g<`"[	=lu]+H[~`ۻGj|s$a)N~/Qn՘Ֆ(_HYbℽꧭMs݅*OLdbT-k2\%I &D[&y=$+|ӤY0/ɇgXQ)5aW/85T:8^+SJ|( R?5t4bm!
q'úrUZc*i5$7`7ĖpZBB   2L9ȑ	}I$#[f?mm]>wHv{Y2-1a謌6df@g0l(jA@"5@3C9e##>AAyb
xt i!vc:	HPaK&X
KH43\G"dp>%غ!JBTq",J5AD%mڐFҎ/MQqW@
$!ݝpLF_H ԛAFBf"z⒅DJH~ᡶ̦Lz"`wa66C*t{l_Ƥч5{6I(ޣ'
LgUPY^E䅥q@жMXCͨJU#$F5dЉ4O?F91@ }Ʊ}
`\[i%T%B| y)R|8U%SLh0ҕGpOO]p|%RcqGf\Yf)f@IG\jIПi$ASoMA؂PX,<` }%v	59v@|q!Tv }"P#FA"A$U2܍
"dNy!BdRaX*72GU;mD29R2yaaq .C]\[_&VNUD *L5 5E,V:"$SHS*@Tt-HZטXA`])8͝|,FITTCvڽY# m\ʣ܂"4ȗ3Fm?ox#OP 
x7!UplC7t7CPO!އӔuYED=~K\,-dR&F4$k=$DOEK0ѭL	P@LWLo}EIBX]YDڤBL^Fm΂YI_q^!DQ	>-iDƢۣBm]B-wF|poUcZQuze}v%(7@Ȓ@VDmV]YV&HAVfZ(B\jhY!EgphPhd,Hi*PV%STd>X ՍIEDE9Ԥ	/Ţĝ4ª}ؚ-	jGAv*=%XƖb.pui`nF?TÂ2D;TNYj[}e7^yLe@-YY߅Rj,y~(EVH9Ȩ*DO֟Z, SAWhԅ8F9/̦Ԧr:^(AL[^!(5\	ՔZ@ya!un0V
MFqɧWfܔD%<HF%)7d"D\[5VbZV&vhSPIjqŮ#.P4QL^6bD,B ΌÔT$[訍h)<:ص"4A.D!DTu]sYݭ-ƁYᗢLe$VvF2X9"Jl<XUxp'
8++7H,u4.*Bb7qS6jL\Pll:.Ǧl(GSRh0/$HZt@ՉֱM{}N0B:A!@Q0BP:ٴ{IA z1%B
B#`'RUYǧ)"G" }XbX5X;Hr
"pg:O(8d7iR< tOx㺨x.kNRDźڶp"? @ƯislA"uFiF5ۥpQJ>
{+>"L	Wz9ة	.c"xW+)-0XGΩq͵-eQ'\*{ۊoF1CL9p1-:mjR@OdAA@] >:1PTAlRLT(n
Ə:A~ϴɛiJMHE+&n."(%q'2࢈"
"fo?@BR<&g܄yokq/YQ!q\[5'D= ; WAq:pǪ枌pf^R BTA2bf)g#ZM
Ð#]EZw2
Ir3Vih
pUed0^J)MYeq(U"ey)vHs}bsR[(=jq@| /	p?BD :s;30=kF͍\,hؚl19P[A#^Գebh1uZ	,wک>#"JtvqFG5h1GqiPuNM3\*nO7q)C"=`  0  C?`0C`?/`)	vA7&XX'YsjeSvETA7Uz,-^{hAb_%-.?ZbcDhRF)X-ڇ3wF,
"e8[GF0UN'2U}kWq6R_=@!  = ;$ty%`77<wHXA3w}7kSHD888fB+ؖ:-270SݷruP,БPYe*>AbbD]|SDWFGؠCd6,#IWHجFZ0jiOG4uT:qOV߀?19WsC?ss$A8WYs*L"P_8=B|.U8B+TB;5S@ OTyIQA4O|r̫B,oh)I?0
v2@^!l-c-@A (ٚM	z/\qt3϶+}d2)  `sA+C:/1t376<7;;ATq%DA?A8sA\3LXg*j{naEFùVpLz@@L5۬>D;ۜ}[Z]	͂~	zd>ې]GeפY F$Mc|4`#<8cg3J,=I!JGSCiH;x
MM|1Q4mm|=D?3=%,8AOW?%^@,?L{$p=@$K@c`A
aaÅ[ hUbˈ F 9#d/aƄ	_Up2*?[g$UHxeKSJPדZNJYuRG'TadՆ8qĉFRSJ̔JR"EjK&ݩv[(SLnh-ᔋeڴy&E)ęgj1C&sLUEW3&ͫoy5x/%K%MϡG>=%K#Jdzw}N/qyѧW}5R~c*  g?8*Bav&@G},Ihg?*HuڋIH$	(#^'R#B%YAXzi'.#Y/[h)%+h%jșf"$Jh	Gi8g쒋.Ҋ&$jbOı y	ʜjT#mEࡦR<#2Kz.ED;EF,2UV[m8E;jN_n9VΞmgd>1 aQ@606(I0%FA{`Ga#,!1pDHWl"쒑ƏB
Ē)bR(H%].(&q2UB/*F竫gSz
h
Hxb-&("eeRRf+IHiBהf;z[Yd	ItNVDKiMۀk-2F9[HL^4ZE%θ:_PcƟCrM\ Pd IpVIf yߝ!.U̸]t3|qqRA":hf%biWb2)..Έa2%K[SORe/*%oZfqbkT75	sjD*2(M_fa%;	Z¬jt10.(C@h74EҐhGJx=SԬW8\nR.DXD%9X?ĳz1Dh*:`G;`q@A&@$c1+g $BBd@oakF1zdzъ	H'4+"I>Xc[JSR?hrEy *[@`FS<p)Xzl .sM6(R	LB#C]*8UmU,Y1ajոD*W0i]E%^';@t׸ndҚ|\bh)RJ 'WϘƆB6PE!y `
W%*Z	 uRВAڔD*r 	IG/ˣq{3>U.p
VL˽(EKfR(⧗eNmPN8Uhs-DC""*}se* К"!CהI?ȹO\R2fa gŬ
^4ԩOᴦ0l*<G<hBh2Eqɗ K `Ԉ7/vT¤(%PK4@P`^zO\è{RKNzj:~A+h'WȘ'&Uay / JH@,т>,,buf!<Àj$UxeBxL-NS}C.SyD˩Ϥ-QibY\JzaZCju7	i"1o#w(#&k<^!*`Hb׽x`}pH]qd}I88
iʑ!豙, Hހ%֑	ZV?т\a	Z-°3I#(\g'.hgQʊ#.XX0$i1!k	`,F1py)-gLCԥl牫jVbՙVrne(^R`G1{b͡N ʁqgKZT]DDLL['>ٵ>z]%[I+qF|IG)gQ|dK52IK4-S
![(D.I"PTkl4m➉[l;̬Sqj_<))ވA4j%,G9"ArB6h8!?Ԫǁ } Cw:уJ& ~?(I1(݃R]%ɒ"L'|dE`/F!

t),nĮ"b"RR
:B"Lx$Z5Ã 1mlfг$VLR憞@ASI*%E& `  E]Hh.%Tg*
], R `Ų@ !^\mZmE'&K֖GLa~AG~A~{G A{F1L%P٬`6A`}`ڢ.pj!Ra/M"`bh	DY\8Hz<TFFI]VOg8r􊃆ށo8pljAe@ ? < >%?vA^ 0J%!=~Հ TEGPq/c>0|v6q,%hRf	۬*TѰMN 2m}I#DJjA1<HVp)8^
AQT G(%
9ŜƌVT,qzVqWv9rrq=?Z]aA`ka"4#ry*(2bf@A"q%{$Q2%S|j
xJ88g"ā
z!eKKĊ[(_	&ND/bphd*Sd	_sR,PF	EWlT7rN@T G.&(0<j`/4@AԨ ` R=4u4!5f`$MbvmOk7W>%À89tK
	"L
za`QᖚI-&ga(Q'
Na'Ǵ`j"Yfp!6C8F=#jpL1NB]%
RdBR!;W,24sR Mơ0AAĀ+T  4wtY%"jHHIj6IO5
 ,Vr|%8cR&'
v:
ʢfFNdMe3OpC`
*(0r4=ZN%(/=r5-ВA!.S)%V5<5	c8S]3%ҷ*zJZh W 8@  !Y6=x<
	 ZsH_"P?
h[[ژ
'7{3|>%\à	!9"p:uIz:<p-'t	pd<,r)"Hii ++fm=*nQU3f#d%R.SIm7<CfP tdV.A#Ѿ	A4\'dgLw>@v{E]H`b""6G)6c צl\y!}nHL7Lj
~!sĴg
հq'(N	hNbJ,o&T1Ƙ(c"Dtt#.et7|nlU*TKCSu)qz7wnbO&6<X>D[
2
a"@&!
WD|GTM."z+
 'Lf~a9Jxlx
 J}cO5o^H0~!%-׃"GǓkg1=NÒ\X(f	XmE61B?҉1a=+-%SET\kUaUVfdk+%R7piCUE㘵wܸR Xb 1EɏH9~Gk1pԑ7 y2+IdY&WA&LvJ"_a,TNaIOOfNГ=a#tN6`M9Q犗+<SZ7	cWAG|WepP\֜ ae¡.\4AxXxؐK&V$1d
	BnN$N|mŵ|ZA$׶y@=(B&j2o&gɊ}t9b<QY֦V9UD`Dz_/0ˍstb+VΊ6Zax!!VYRٻ˾A[Xv׬vS9Sy1{4af.%.AA>`wb|b#>:~3wuճQ|~b8 hH:omp*ni<OզA6"@J	h=o3.xjRc"t^%+=H+SpR߮;VW42x)1C;Лx%0`2DBCQg*JJ
o$?{3GS]=8vX[oC
B*f(mn-j0vM)f])gArkc.P'?}˿҇a^.0-[ZhMݿYf9e.&<I%ꁻcϥ=)b  2kx?ȅ;bx7&
lt[==||b'N/Ccbk
 KM_iܰݔa'ô֦s="ۂ2ɏ{Fڽ+gxN[YPv?{B]SlCv8^Xo8&ȁoHEQ=I#61>CЌC*ABD8A{La
@Ke=A| RBFI۴5ch
G(N<af"(	fA~	RZU9lB?=wG1\,ޢPbF~Tŋ<&auOR>\ 	Ĕi*4BpHŋ3jȱǏ CEe  Ba`톿om1Q*MUBŔ8NXjʅKRyQUJ^hӦsUH|FVY4E^bʢ8JܨROj՚U,N"G%Ή'LFMRۚeŉ#GNn59ȉRu/8U+[)R&66b#VpYb5CK_2D<jj 	\x{{/^&ݯ_	"j,&нeSO?@%6D8?}c nI>,% K=` S/ PhU5Um%䐮tUETQYjE	FD\u`V\T
-YaX-OpX-NCNc]Ƅ*YXdMx!,ܳ#D#5QʋmtZKvHGT!qǍSaf$E!$R5)Izd"{	<JEl+ABA6lG03\38`3<ԁ9sP?"ns04>k-IUEDZ 	LtR\D0Wcs.ZrYOhXN,BPl^AebJiv>A/0DeϠiNma4[HґiXq<
iHH"
؋ޮ4wzAwKs߀Q?T#Esx#C6QL4	0Nb
hQ?U_4fD\z^28|ECpZmt%EL\_D2)z &+FZգ]ud,7!O3jFGkE9қ#MLRqSFZ+[QGn	,"@`mn*ҏg> A&YۨAࢉ|#91{85%Џ\@&/K#Px1|QdW~IURSztų@q!4rD/$2~Ih7A3
g?\SyMFpaHf#S&2☲Y#,\uAQ# Z"WX"4hR	uf:#ڄA q6<b\1D 0!СE27 q$ÈG62^^b*B\bDT0Q-s)6VWL\0/)+xA4d ?4-yqD?Ĝ	N&3rI(͓d#ӈYTd8B <U>#/g>f 	-f/rKmV%DIVg"(E4@T 0"KDNXGAO1$ 	!bN,A:+Tq^FZ4})k'Pc)	;(ZP] w!+BaV S``P"${=9
Jq?>Mo+	.rj71r02֢ۭ>HY󫐠*hVQ&BeM`{a"t1?1J1B07dĉQğ@  zt
k_MKBOt
VjC+(,/#6EBiRLe8Җ+8dM0lV(*dj]Gur~MhoC 8b )[@gG˅<B8*[@\j2eM<xƳLVD(WoEr,T9D %ԣ   +2*q`Uc jD#1bYWWld3"Iq0.9RlE1'bFPdo1whfTD0spF+tfݢtiENVT?qhp$m[uQ*_>Ee"E!c%*`׿F/1oĠPv`rAHA!ut8^H%Cat|"RZP}Qf
rUFVXJzh߈9"(XLl7$[4'+ܕ~\-F\SH3bsH>qĴ%'dцC'b%A?*!f~2La#6Hl4 ߨ8tV#%b&RpXΆP:"b; b٢m) @`w0 0um8EGF@0fnPܳGZ;JFHeCe^qAQW3G2l&a
$[&+>4/,
uZ]Qrq{(B?[5p3
E|PJ| !}cs0
_iUswsvq ~ajB@"pM~τ`!A	11P9%Ob `G$8&?Wp 	=)P a0QCr$.+(-1xFxxZ 9FÃx$G1>hLh&0QqLG5eq2ܣG猌7qyF]dwo+!@5#1!
dsts7pш@PLM0Ȁ'u@-ւ-dM=V`6AVc`WP@0 O1  (u%|axW
|).hx7%5XG荑P⨏^@l(N< Iq&(fQ6y{zzvP7He{ >pq@Gh#6Srth"k0yfC`B,74iu1Gkt_'
(f0P8B49%81k D3EVNٰ Q X(aAm;NjY.B#3/5yV03x1Xcz$S3 `w&hR
zS(831qҗÚ_1)LSSY^u0"T9}WŒmYLpBUc	bW ' 0'`9sEApt"`C8C<4  6* 
08	S0H/000](xpGvš3F!r1Zr	?%kkX	ťr]ek^X($:ʱf	3TȤ=zyr1zxr#|'+6Щr1WsTU	{}0VAb<	p
9dpD0	$B P MjBmP$N Gq`>DqxaiwǈQ6t)LExx/O{FJ}qoTЄʆ:ӭen3ɄS<Z
i$'{T?noq8pbTJ#A6[51Is"͹	?77 NB@` `"k2WP&q	{WtbI<  amy8*mhT;WP;Fyqz%QpKQ8:zWbֶn+fS	4䰅g3eBz)]lR9|rʩ"7Y5C{DIKxPa
( (!4p
p%
	  	
ruzFGGq
| Sm?U+Z] tD1Z&(&3L2okzXJ]Ri2I⭵L]TUɷiUp$	&A_3 b:9pPcP
`4!3P͈N|Ot"{
	1Q0
{pu`EcCf7cj{{I<]%Rh<KAN/>pz쏛҄VHfl(`>:-QXDGtxgx[{PoEp'%*1}շA)(A4	ʠ(b0+!  VLȬ`iP ٠ 1ql̛HLιq21j
s w0MkJGCIʪnp<yH2z<Aw@^xБQ
pFv2`
]ڑ!ufa?qfSKҀo1qxw@>`0Ӣ"!	gAhڒt,C=77t
,` J	`fu7:j$9cmr( i"f) 9P	@'8!MŰk6zed#P{)tmMrĥ_V]Hh]
if!z2I0n<\zOP
?!L|l#-I{,>( *2M]}1e=7LR Wf2a݃JV4*i.>>P!qPX5r#%d&zPɬS"Tkjr_7{Р䃴3pU3TXЛ{D?!jޅ>L$`#'4e1L]#DQ*a~.	G,ʐD0	P0.k&n=<!"Q<9vmưl	;{e`
Fs<msA
=<Ш7RѺ0oR,E(-ڟqK$T"NwsV{* bڜfYsi"k,-ߐW8AL"OLhrzml-?o^#dAϗBo%YZ`Ǵn<x|m_JфlR(eSG89pV 1DɌqz^ctz U۷!sCK`+E=7dNV>,<nFD6=,KpoA	KaП*UU	g0Ał	XcBuxSQ2^)SrK`\M\J7)+Wz%Z͈VhbԖr-+<յrfy*Ӳ^Xe_8![JQJ=qԷI&}5rrO/9\8iҨo&F9+וGIM<чUv"Hɶ"Cu~(4jvg¤&ɕoZ?x3-ّCRIrLǿ]y }SێA;q %[P #(q(Jā;-TNTUF{` '%b	00¦_C_'#RTGlJ*+$Dȉrz,/R@H&e>2Lr&p̯
9=RG/187ä<D;EM7Ik.Hy7.UDjϺO;U9UG@Z+k' btxkUvYGUI d"#qAq2-UBq(u>2F^Xb7*fdEZ) #B 
SbKJ*r#U<	/*Z'ttp{,NrB2mS0EeC~#Dj>TRC0K15DSSc9EbeUOkav3ǟKn''v
 Mp+!0CNRq"
H/|<%*^W^sbtU+v鷨/L	+`tY,wF̲ 7kL |it~@?ÏAdG1īyLNڐ.E[N&>%qGRp  /b	V"
! đF[r{\\! NB|Sf(!ZJЩ
4RIp0$%8:H>pQ!TH#h%)(
.DXWlA%@,vV ?b%LbAH^=AF0Tf1Zs4E	E'0fh8a9BH>WRoRa4gR;Bfǀd*Q@#8<b!ܨA?>bK
B#R+0TV!AHA)paBN"&^%N'<Sr `qq(C"(%Cȁ,o(ļHLLĜ5%s''x"4pSWjADHW@2J-`bL9Ier8,!vEؠ?rth*h0GЏ Ї$A\:ār79Pdl(̵kw`a=yQ0l
OlvRG~:F-:qI-*c` 2Ex+͢-A4yG'	i+U	.&,MИTvE}@-PRLZo~C$- GNUT[NWqyrVb%?* U`f2(0'
NdEShZȸB9+/4 ^7,UWm@O;:2viL{`ehG+#X>]%qI=M/-J[~ĺ^i$s+;dl`b5Re^jjU9)W=߱j7_~mhC}&1p o3G2Z A,"?K <?[N+hf̋)88N9v %ڳ.Tɶ[`(w,]bS+dyTĶ	}w `1qkFfGŮ#&Y Tnp>@7S-Cݹ"jqpXZ/f v
t!;wa̵nӜ̙ĺ@#o("d]=xnoBišb{vO4+2߉bNHGT$ƕYJu[	?ľ16Ch7N6a_ 5_h X=&I5<Vώ=f~ ?Q90 N Fk>`i- #&uT'p;>Yq?)2!Sdh#`XX$&jYCz,!)3X1FϠVHa;˔;N*4{RJT4Q9a99pC_{6 Sk
QZ'N0q!ʲgk;pEJ6j8i,9 .+C@rCzQvkAx Aq 1	qCӍLyIL`kUU*Wh %+vH8o pS@0yC?46,sA?[i?vҘՙ
#<X9# 7+'S@;8*aY9I$zDߚ3U
T#(qt[=!VdIA4O_܍CN=cQF#l]TBE2ճ0\F䫆9e91h[`!W+KpB:#=>*`iѩ|D%q* D03!2̭pDbC0+&@yc4˛ɃHŐhx(ȔXxփʣ!{xb|JdhJAJQ >:S9lLmK<^1 n`qVS
1
<rK+8L2,ZH6ر!F<2-+_-ND3+	IT&)Iլ잰M\Żx2+ʮIjIҋMi8k={DƍJΖsB2)JO*fK !Y{	3t!9̛ı[3|B0zn

&/ڝHL@'`>O$8,FX`?zDHT+i$!EYN"QدkqX\O G*}VZ0b6Z!6Nh,&+fC({*hLj[>UDmCQЧPQ7ۚ(7T7, T=.Fh)QMXXMUThaĄY=Z0PRkBiUQM9[*hM0>P|V%50JxC C4z!KR	A!@PŐ#{1Tޱ/H##G}TtFTz)XݡM& X)OxP:NQJJblN\YdLFԯ[ma-!JIV刹 lZ%J'
ھ9**yr,'אR"x=
k[X$	ԃrc6r.=؄/hiXPIh<QJ<ʕIO큌iMU2KxYZbR*d|3[jݣa]d4BEF]YcU&F-ZaJyشիĈKk:t[;ܥ~0vO)?cc@5Um
\}-D6@& )
4cAT{&5@j~0C*[A`YBh˄P]ٝF*XZ\]Pb!VG15jgqѠ&-.Kx+I|X;ׁ͛HD{)cP.X$WD=̹D3ěu0) n(DBd7\ψ6Y8$BA_d/H4f94fJ$߲ڽEF$*ջ)nٺli'6,iOYd    Ajx&yAA_p}Wx%>#0}[EQDIL|F2`<7HZ. N.貲TبH*%9a\l8Մ<IH"JR~EE]厞^$RC(U#EyDM0 ֚ey!P.`	@A~zC!!	?űzċe&nhK)}F@E+ #}$VĻegTx&К*QH[lU 3>d.ۧ{)\PF5\AѶ&*XJ`;m$ܵ]Xr]iРY K ڇ^
ωH2Sj5N꼒k37UȴV0 bb N	NddR#o_V<X(}H)IrH46v^

y-{"\qXLpUThAAqTI{MAaŃRr~]*=QJ!NFS0[="e4eZJM(^Q.PSh
8 rKG&gYu*jZ}|,gys v؇dpT0;0_v,t8bmku3߆@U#s؊@@<YFuI(l \yNCm/Q})ƀ9R1E.1xHVRN8P{zJɌ;T0UHϳE URVRY (O)eЇ6 zvȆKsx98Z64X:(&li6yHQ%4h>̊_V#dY^tF?L\{JwvPtx߹cb}K<I4pΨu#+h?H6VGr*H{"U(ru;HlfB$np,h<) 'f?{_.7r#Ȑ"K  FI0QFrҟ*N@*q;iu(Lb`AxjΠ>d(Dk/+`ǒE/F	Xʊrڢe?tkK)Њ;IĊˋĳodVNob'{:nZ9z2G5rb:&
Ʈ%{q7jlΊHҥ7E4P9(xU>$CC:t7HyHbE<~*"( bH5NZ`?E?0$X$8UQ)"GuSP	t9"A𤊌>UTc
)4[8d `ѡ|WAAEeu-(H>V_wDahҦ_VS`uYd9?E^Zhq:D[Xmi&[#7[no~քm9enN2t-wL$@^zT	= !`&,2-b@cD"\h"HE=ߚ@+ZLDcF`Kg8 O>BOBR(x*)t'= Nn4	 ȋ?ΕXe/WBYiͨmEVxf\vpe3|XYϠyz!5Nxҩ~~lR=nUݖpQ'},Zĥ|JpNOIq
̸CE7^y,x|2^Ps^V>HyV=ˎ=pĭҍ>&=7X;,S:cN# iM(?%2`aPiW$^^aʐE.6)?lY~V8gʅgN,GbpfeAGB9x8ĩ'a퀬INsNE)Pk!L&bNфE

'T1vE .?aq8aHq"cHAP&@LtX#̛ĒBԎHx^H
`$4()8`0zOa
cHӣ/88 5""T< iEђ.{9É*OM4CG̉$ǩ
"'R3*.n?јʃpqhT)=h?Si[EC*o<jD(*(Ef[ h="xg☕j#Z\гα&  pt 8\g ` .vt|hEf`i4Q	G<DI `ЄA=e `݊W},czm|1bfr<~$]ɽ24BT6B<iF4YbUQTmY8WKS|Dd=fϦͤ/:?Rjd0,WxK>"}#s#"?ǡE3pcd5hhos07`o b`ȐGsQ$1ztV2JǇ]iYHe탙]Q>Ɖq-703_ @:57SA51O(jf^	pB#ldU˹ަU#!qR'\$x6kU6pOcyml<O/Ѝ'FB}$ #E)5hk	%%BTN P^" uXiq$!I0-lpA]u7y-23Aj^Z*FEcTr`6j4GA* ?:6"~9NCt=bSZ}ӊxAP
s 1u 0lV	pہ$rTbIX>̐oٛI1L=TM_'f0J+Zs_PS\QN[3J+f5&H٦P MPVQdýaJL`za8ͬɭx@4-p UPi%Hyr[P(=0JIY BXEڋC^+m~Ǒ{ɐ4ɷ.׽ m7XSf"fJC%{4e
)eORxN@uHxMqd ~=3EXyDsC8?p6~5YGH/wfCHQl@ <I]FZ$7DY¼>LB$$*֊|e	iG)\PerCot\	}A4ЕҴmUdPdFDlƧ?rCU<czN5ea!HEybZEfm"mBD=xHAaH 5KCK6,CB8p ZPFTȔ?$홙l` U%-U\c`\d<|jcFU*`'nb}Dʵ @##0A*MA0!P!ï.VX16]xE
hn2C?@ʖ=@BAD LJhD[Ȗ7<%@D;LH
[$	GCU@\'ExY幉E\ϴ"	IydF4UUW-( ɕG|835A*y$P䈣!Tyx77P5G*X9QP5$2AC|CA̃0:
J18%  @KBc$ĔJhD>M;9U4\B) P MT	Ɓz,~mjtkk/F'uD^Xު a.5S>c6fB)\!!=ڮM8U<Ia5AK)h'~PuqU&#[=  <7h ġ$ 	{WPDqB(E@  |H;ýΔľe|D"Y? 11frbwOyC	l
kTQUfU|]nZǎJ1q(Ќrkdk4t(i@eTZ7G7cu<QW)爅ʴFd|S @ZĖ]F0YpW$%O?BZ5?L?	 Dez%^1\&B\hgrdPLQ]fo4(J +I[bbލͣO{̀ըlʐvͱFqe)jprPp_ae)PAYGa=Ug<Agg@ ,<(: THU
 @UTC%a%,fT
pD높Vm*djH~j%2M3dfioH)Cfbmmjn^%X#|
i<5r6ǐ0r!hZT|kt!|k8ek
A֎gqg#% @=  dr&=D8|[A1d<+T(ªM@LG$mmXLjVh1H^egʅ9,]lI"-)hƭj-x說`^sgnISҨ4Br,F#ʰUe	
^zXGՆ&dqixj@@K!@B8]NvL+Ari/G@䫸]! 4SBȔ5QGQDe^lD>dǾF&UxIhvęlмnb,?fˊf(S6.夶TP.M
P\c@0]ޅE|`&KONx*@Sp/yoACzZHoAЃ|8 	rqD5UAK< {%A9tE]~)T\p.^ęZ{]ALƢ! MBGXmQ>`P$F)PL,VngEoV.qZݐBvZC<m)!aiD"mFAȋ9PkL4j CeZ*ALnG!ٛEp&2ɑdpUIal&r2dUm|d"I.0M	cJn"02#31q<A1WY/YACڦY4CHC$Dt_K>TCHnG
R:3Yfz,RƜѬˑҟʫ69.(1GUmd*n)(rZ R6Ӿ7B-D5b#4UNo+_B@oX5)GsAT WDAͳo*/?=G uaspB[P_>fV^)		iwjjai2IxJҏ- vl,
)
Q
*ƒzĮ^m in-,$R$q9XAt'0Z/ge[OcK	'PkeYCْ˂A)>$A$Ce07!sٸC"X	<O!=<Ҋ=_J{&@CE!7} 
Gd{*|^fp`yלqXrL9b4@6pnU݆Ah@$yC"0Cp1PA?@+&<??$̃":QNdKDPM-DK4$dHGCDzK^,|I>r}_2fאIz}66pg+&cJ-V5-HlPPn\)^z<Hmz\@AGm{A`utOA" DwȇÉXKo|G\ۘUw8PNDvI= J,wGbwWLnEyŁʁ$'S#2q0|OE~x]y{OIXLZgHE?L0+?b@х'mS=8GdġCxgc2,ѥ{DýCWߋLYGخ8TGTET=}I[\GD2w_pC	׸xy=[Avslnlc#,.-FGBpBjgi·7*D+3D8ԡ
 ?	4xaB]?I "C9v4(f@50G*?q1HK)\(Nm5ziң,BN>+MeJ-Z9UlXJ	DlYNZ\8$@w8A{{:ida'7nƎըdM)<l'Kάّ#פQ$ٳ5)kLy>ߡ+-}ȕ/}jɝd(x֪Wv7.׫t^c%Ĭw䜋op,"e/!AF qJAkA	Gj
'*n
2q+ZH2rB(\Jk+EǱGJkG~I/1'NP{l˞hdZ832MGjaef_㖃ȄD3EnL~n9kN!UDH^*V}\o Aie(O{@`^UǀVWU0hi$ %N
+P4,-
ŭV[rKT"rb.JkK]jt
{$E2+S-7K۲ЮkPK,_"cQn)0eL:Lw3J58kAH,HIBJ#<G_֨$tTiWebj {%&q`XT$!qRRmZn[b|wGwᭅ,yZM+".)M u$JDV85.uLbX7S4R["e
	8LCLiCMeCbC%G$v湷QC&~RgWAJlXdX)~RзQ4BA	gCBM\	$o
5\%z
]<,n_H¶Z7xM	4UjTP|0iD7MLaM9 ]$q'Ҭe"ZjD7Zf=7^KJ=$Xz"?QV4PNb	?JbbI tB8Qx(rcVB` !@0Vg8XA(xXp"]a"AFs!-E(09,j|0M	khj#Ĉfܤ&&vuzڔ"cSu~TXoF,΁)稱gq#9Ud *5rdA(#AڠbOġP6mQ8.ɶO0Cs'Ցu)ZIE\^tBɭ0/x\3
$\	JT2&oj"yDQ4U<4q5g)V><q\A~rlfEl׋2Exg@Vx7% G#UP,C4;Q%	J 1ZII$=é-1XYaJp2vp_Z.%2vt\Nc&sE%3-q2C|Xn`9D:#'wME
N,*[Lp1tMRݱ"{"uA¡ vdcOiWET  ƐzڰWQ e$=Ɂ	[k49'm	7nQ9
p]rFBmu2_,|YaBK7<V8	݌yCf7,O@Y7u35&!^j
g#?atu
j7FSwK'm!#fAp6hO%EH .8aQ8dԷɾu
qFB	'g#U
z@ION]ݱb,)f5WMk:jE4bᦛށtED!੧(UI<~a
Iʞ,aO<5{(
yo S5A@ ߀9VJmDap¯MIBJQ*1巄t)*Z6l6$bG)m"wV#ӭfuCM۱9}{Mg7).l=Gw[G+L`Lzw>m&>t7ViZI(dx K`ƨ`[a$PbZD -\d9KB|L$69L:SjSHYgr220E<	.׾Uc]⋗㽬rwč;3o9?Z R3L쉯 g xa!(鄯&P!BF#`a vCb6¤V%f!&om# P O)z @h5VŘ6B"*,Jڅ+0LKЯN2Ԯ-fG`b]2J"￠"y
az'f,  f|F b2Nơ0J#(I&bYE|N4&pc Xb&4bxÐp	ECM6onb^EH^J`$㾄bJ,Nc]J.4IB|Fh z
MCQ(:!4|x p"8Zn `TA\#d%;A,pRJbm6#,&AZ\ (tJ \pejd-'dM&ǸD̍r/!5掫pְ36r*0!Rm7 R~
"0xj¼!3nz'r%$aPE> To%;B"4"^K P"&6q#>`S(5l $$!
\P!(YcVu$PF,/pTȩBO3u̙Ăj<b".
߮	11  rǌZ
q97 11S h't|l+b*$RS%ACh2&r~"'69b Z ((O	9b5&bH+s,˅2.;k"<$뱬-mK.342h* E:
SĨ@{1! .)'1&D^S7@=d%BU:TQt!$&*CN7
 BN	"GqtZHʢU&/&z
-2&Cd;"۳ē30-kPI:cj2?<0MgHhNA#!&r^!&YF!&`itQ#yn>Onh`0=@aP2#JuNU+1
nU,`)ta~T,*0YW*Wgv(L0bg.>-_c<uB@a 1#.+\%@yF"T'dC``ؕ:d(!@@Vm9:A+a9O}XX?@@(=bwNd6rup|:$оrVOv.fW93PL-fpЉ RAZ6
HpIAZ
jC@3/kckURwh d!!zp-EA6"B#ġ<ZL $m=7)b5sUp*%eh"%uqa0J7.YwVPacvځL}Zv1);fj3Ouxa+e&FP40DZ:-!*U.A8WUn$hOAl&p=&A0`\=֗}"_ƒ9.ldHmi.0B'd:	*Ҍt9mt͂Scu	x5R8AjT봅cDkmr,B" PBbwWY!vEnl&=
Ak)RU]xh0ws+K6PWlcJt'xG7SxG$CZa?fw !Rpwo  OҒ!7$Q{"%BtR1dRy  zJ`>+zo"5!bP0?x!LbU~YpR9o+$s]`:/ˌBD$-³y.ᒈvܳ	jdS,Y/D\|gRi ; 9 )wj#8.9 v4!&&r%@"he(6ʢW9hO(6'r(JJ=@ A8alO		KLFƙQ9+p.dKI0m-1H:)x-,Za.cKhTRکOMwr#z0SB' FဂA.	&`a@训(&&̦"'At=$ip0]q pe*ԙbIݫݨԨ%XY+Zuy6k3Cau:'al d"|BiUVg\KCkUbxo<>4>HkBNi	t.WHCʐy~L6L,˜$=O7Y\huprZ*݉)vV3A!A#H"w'N#f^Ud@4
2cm&(h%l&h!·W̫"aӼ0c2E]$]0q+,++.I[mG5.?|be5T01HSA7NÃc>4YBz Nbnz  U,UDK`fA\ꕱ#@!h`\ؑ5ᘿu|]伳+t`z*enr)<<0܁1\`"555aћ />PV\]| >	ZA2\A%2f~Sa&+|`UCW/&R7bu(lY%aah H38+2B/h~/B
K۝bq].Hm$%wZm+dX}N:cީpԑb(E7]^X ,"a \%0l^{'D!_vh@ecM(^7zY>n^5   /;0&g+ĉ!W+ƍ;h	Gq֬r(k/Ti~j䈣&:u?rN:ztdM96Oת#4BRpz_"EҏWPCvޡ~ Vɔ+[c_3/[qxPjR$N:s.8-ċ?<Q*UN۹~=<B'JHĪw%\V~9G%Q#LYT,hVgyuHUj!oiHN<,:u5B"<H^ye-Ie-vP5 dE)`BB
ie#Ad`Nx0 [ pOC	# 8Ee1>1ANifn.j# nu]Ol3	o*Kyz,`SA#"#}IZDJaV>A^uKVZvU(9,=N2y5i}#@"I!	.e(gI`Ag*'@fRjtfZ|9@pavim	00p
	fBǔW1nB*Z*VاT:Q
)IEN`&	"V9TIᱥ܉AM8A,""wSMظуLrp8Wi. "ǖ_ΦOwO
cgդ@r;COR}7tD븼F8bť҇AՔ/R)I3O2kұ3kSM[!jq]WaɇFf*B)BɴQdArP>ڨa;t5tkp`8 W
9Q2%jpmFq3Cp!~ű9|co:AF6@*'_ax$J6Tmhm4d0$=T	D"iy;/dMel3>QL<IldP*0!=@p!8 :a `OʅT8tj(pP<AZ@ߘÆ"aFv(q	>Qr*/xKtR'DS8ť%	05GhiD15Q|.Ƹ}ؖ$-q1(i#kM68`){Ta<_ڐx7ARҔ*oTքlSZ"B*ppde,qT̖7Gf3KRo;3pR/iKYX8{Rj=aUU=;H2S:MA<J$]8H!ᰛ?PM(eb#ƙ(&$t0LN tL515p3r)w՘HHJ;'@
`azbLJ]M6L!gdU):aX"ZR֍O+rc-qͫ`2)fG(u{=)KHdS
+9nP Pme12E(Fax(p(ds&OT	BD6fSIT:'ju#E6hr;ZW|Y.[齩/E \E&Ы2~T΁-Mݰn]USj	}if Tif	p0r657rb41J9b!4C$j~g#ZnrljAx9\y5֏Tm}AІoHߪ_
sdcJ)\*|`dp308JXT	kOŀCKspA=#e!*U2>?rs0[>SU+'*F JY].Ɯly@ܟ\rCP{)1E.Q-7Ofompn^;y0kI\,6.h{y	-UR O;A8xAQn#5y{c'uTڊ #$`!ε벜AN9VvKʝ5YV}[!rlK	z "	jVij)VH'|wu$o)X)#f J T;Tdey\3eyw>[N'!X*~r"!Gw5tM`OoP߆{q|kB	B&($BSw
r0
tBbcR 
$
q%,Xi#8P~1g96&:lBqaq~E!BqKju5 r!xb>pD*avyݳ?-<8$N_PR`pqLvB_2AT k8|$Q&``S402	,0g(C(Bg"&dMO3UՌ==hA'pz)vD6{!tr_X7uQI~2v20PApP7%UII$ ԑf@<E
v	1'4XRh` K/0׋#aq )]ӔD`!-#W͸ykVR]B*v5sq1:"$tW~ehR	w}SfrQq.yQBQ~2
x-` 䐤u}ll`041u1Q%Ccq&c*(ecs/z0S\cv,͂fA_؎muD%ORIf`(ouf8WX0~ZX$Kk& j  K"7$%qCDGy"$)QMFeXkϸ1'Hz)z^s"
2mєq@8X_ɗdd`JuI~Fɡu P	1}A0|g5V60_	!0X$Is2';2\~"-aq#Bryj
Vs(!h"1f@jNСS9W		@"|c)C/Qu0`   @0:义c  p.
xAh  c|Ƣs%j#Y?'6mE1UxUL"ha5Yzцy^؍bfJ6;__Ba?7AIc	6dS,s%qy"mtTfPso@	kbxc@Rqx6KDUAFUGd,d!)%)	ҭgXz]֧eݳscڛXP
30Uw 
.O҈A 
K
!	!հn&h&P WRA8g 4`@~tyQL|1F~<7#?rO!\pAK^_v>ͦC|SAmx{~HNxJbq&#/sI&0PgtJeYnJi~.+(.S;c}x8Q?is6U\EJ?EkBa~rt`*x	C	?lCx:Pi$a&SѶ(5	*db1+Cx\<3d#;%U{/]]lC)K}G
	 :
Bh`)ĵHb&9sd	6ܯb - Z~Ce.ۋG5|W\h+ec8xf?{L	)`q	|zQ0Y2Q9:@Ѹ@nwJٰ qA:8QIC 5ɩ$ Y P&0?WIduGĤ4y*?ySWq<R{1ȑ1$Lp$PlgY-)e&%P&2q:v|1arU_$Nft<f	`{Efā|,9 ٠ aJr	 ,Dc0z) "Rhp0nPg`0orx	=~+_(]OM:GlH;"^M\ehdWt$4Q/[w1a)un <y0p   }Jݼz8}0(B_
)`qpTO 4*ЮuVsP]F(Y?hC`_P$)t/Zl0J  82!B0 ҜPY$p J=F '@ҍ`Z?Y貱<)A)$eN=!e\?ε0,aq ,oMF5~(f	 n
udR@906 Z@rzJtEܰM$B  9Z3DИVr3]3 Nw˪M@T*L L֑j-XQvn1Yж&y$J 6&X@cD&).p`a=X\ [L;T)T|q+Ҁ_5V8s
]V#֖|c=懺C$TYnyѩCBk
Mu&2~Ƒb`pHphw0mIЬy?q%ZʨEkn>|d2n=Y%/Q
106|1ظJJ0J A=	zJ 7G/`n B7<VϬLoad7e^;TR֑P%|؍E&:όRxJ Em~6  O@tc_"!h, #F]<~R$ȁ2%9X+դQ2y!՚De#\KL)4FM:y2S\(֪*0|Y]VHm,B Sq'S}KfL.TQܨ	T[*͋!ОdZhm _?|Cǁ%.')u:@]Z&ܟuZ8q	Ӧ@s4;N#EZ)3AW<yGvYjJ.HR'`xl6iA5UX0H&COLWPRşlbdǟK- Z( "8D>;RF.;dʑ'I)OFfhs+j2I%E?ÁRxH*@qt4UF/Ndl$
C20Ҿ&@̾Q@8 FOWEYE"QWk {,Qۧ/2͒kS;Kf&Ȅ);*)	p.Mk;J9P%(} <Ե (FaHV>tKDX :@14b憊?EK@<ǁT r[aa N+྘LK#GZqzWݶ	bS yz%3kD@N$! РQ@)+QAo0ǞqF	oh@D{~;q{hb\d{\8X\&3 /39鎓/7z藮i]ڬvzKJgf⺯؃V8 @k;.|N&A
8B'.!Knx8K'`}9#I&fKZ|wMBuy@Ո"_B[Le `VSK.8ZXv={?S;wIb"=B*`xs Ӗ 2bd>"*hJ%%=\d R0$+$Ɯbށ`^Y@jcs)r0{(KH9hB֏TE$(#ncf("B& _^_ QR:tVgd9I#n6MtcJ"x@ p (d8/'LȖj
¼2Dgr4#V&<d#& ^g%/՘2Ҡt舖y`
 9S Pj	y<Ǽ4/)ZPKȁLQ(`HMl'"fy5iHMUG4ԡmJ.CGH=
l/C^ @>r- e="vj1k^5#bCt=6g)$B
IHmځ`4"a!w..jl	U*ǨRWURA U8 z]"r<0*mZiA&nu(0|G"E=j=`) 61s4mWWkS1&<GqCCI>q6}C!$áGSGtk<wGYoxbD 2cTB\GiJTq S%H|[8[۲}G%a-0Ds%M6v
ve(Zlc%F;'lAW 61|FAJlC #)ȲhDn1("iR9Q?$Æ(fhA t~	G~c 1 8֕8ʲ+e'M.vPIKai!"na`es
I_skҎYR{2H k";H:4Ɔ}] \;%xUw=TFCks=yQ7zi Es-1i
{d}>t̃܈1q؃)8kD	L.^F1Dz BA);SDǡŬ9}]ӨG(-
^A$ǣi\L,_5g|by x`Q?N3FaO LyH;<;#==3	]ڣ.:Ҟ_j'\	2@!ߕ"AD-{0uAި^x?XwR@}u)7<`?.1{`!;8ڽ9R٣4P 8i`֒!'r Zًh!c-ૹ18<DXt8XyKK௃E:y?k@z;G꛿?yrx,(<qKq2ӐAQN<8`KX"q dH%X-I~c#)v~1p\-1Z-r!&~:6q0b30@#!)h8cS3lHDzsx8%b<op$CrE1>*@rp/ы}yN(:#e();<#CfԹ;HxЇ!o!4DҰQwǀ  +8ud kyEQ*G؉	Gh\ k 4&qz8'{NHƌNAe$˘jPQUI:9@y (*k2ƁF`ɍ}t0FZPɟtl|L'{	z&{7F =h7~1*xI,l(VK"
3i̿  IL0_s$MV	q4 @񱧿AŌ2<#N[Otr.H)X8:JH Zz6 * FKOvsTIPz;lL_$,QEK[d?BGX;l_H$IXlHeb:< zX}qO}yP{ӳ)T+HAǷEIQ:%6 'Y"Bv@}B@ ύhɠSU@  R b<`ULAû+v,ڐ,G5]ūbiV3I8U؇!\>%BϾs=#(}A3#rM_3NR!	c.Bj5P U8\;!Z-|BBK^sB૔EKhKk,NK I 
QEB<K80uRJ1JPWilR>a4%tHDFCyuZ*]4XVk.=~H%UjHhPFȋ#7`oNшBFViN9=C;&,Cق8tX^Gn2@qM9Ky%p8IHp:TAW!}:jC107(6ֺ[vXu]nb!ᦈp*O =m.*[v3DI(9 RҠ3 pjXxL-")z_Mf9ՙaJ?!Qq={-cЁ`ȼh0%DH A=oЈQFvhhSZă(B 0ی^ `O6` x!ǯas۹&-S [aԸ]aUϷȱd;vN)(O(#@3( R҇~hb8FF_p-(Iۼ7Q05yH)yY4b9ؔe7}1cDC<]Q`eDU0IoIG坘Xhcd-ms@x_"&LNpIć!J/[Q&c`v:$nifFu~1N2ew&YD_''C1[ShdN 8b铘c@GH>ی'd6S +MC_|҂Vւj!APfhB<]o\(7+ cA3z 6}P!n@i$G=).)j>!:L!?yMjꂶU 0FI H tA4J3Pֺp4*(gFo0ۿ!f>ex+F<K'ٓ2F`4@8l??AɎ=#>֘V(bB4  V=lj:J!ȇE:>BMqݍcPѰ]ivKgvm 1C9[1RGO:ZIH@*)KaKM>GU5,謄>>QQV^vcWh!+/h: K0pF2;I0)lH߈` Sxm&L1j!ޢ]x8uA1p,+k7 QBF_zT)xWAKL_&"'?mfS-je`H([_p]X;NyC<%erw{f4ڋPqJHte uJP  )e^RBШ~YE9t%hnA9&l`o^z#`3@ ఇf8Pfͩ9%TygXt;Fo@q|g76{Ai9=`T4Cq҄!c<VP#t:\3Q`u1XwaH&rzBYT  փ,f8F_fRD"yzE+rlbKhyv'~>*@%pe3dQP0{U>B&_DCy攲Ze0U#qn7j2]~kpwWDHk^DmH0"Lp!CK @\Êr'?Ocڑ@Cq/:yq'Ϟ>*t(ѢF
(R2j*U~Y50NF L0 轴8}hI7v aըqWilp?	52aUu+*_s	!j /k7*ڶoέg?q ,>K-sO*|Jy裘UQWĥ_* i %o;aH|Ex0Uc
5	#5[CSs$$A6`N
=	ЧL?dC\mbTVWWF@@q($ƌ#ІЖEAXEO	ef#nxY2uJ$fB` TIlA$ #٧u"/A֏XV`٘%`Ox>̓?6a
vZ)nb^	Y2@$r\W!DZ8c њ ?zЙ5aR[}ϞQ Df28,  R$PmdSZlE*B$J6	_J6ꄚg#$>dJ+.4
ff7{=ȃE6H\MR ^tO:كB
)  @jqciū:t&O%&Ek=%lTBm\7$FfL1ӴT%E)&>"Esnv2e)d$Pf"%dOKk s
<xۧs2Cyde>}Nh$AQ߻E'}sp%鶥pKgE gv @GQݫj
VD|5GUc'sW b=98$73  x\3 |cH6IhBB!ޭ/*\a!(n.9HI"	 L!HDx==s06PsatT`|A҆&X9qmv]YVGcW8 1r d@G-A 8P<H]?NW&bA2)Dp ÞأV·v`r[R)DZUD(292Ii cJʐ~bc%4Nz5!.^* @xX
z` P R`H-Dlsg,O>  'iAz  p`EFA5{`bu%ki-79oTlV;6`OU$='K[: FhC3ij l`SU"h"XڑH$>l	%
x{@G0Ŏ~	82 1Di W4j]=,`.BPă|cpxB1UP6@ɈdWT׸&$e%~@QOtjZKkZhP.C*GY-"P"u2R *hMI"$3Ěn |':z77hv\$$(]R3 @q$FfWRըP(iMETnii1m6dTNpx;a*|P(ax52gHv/<Z-$dadģePH$ ɇ9}8Z=tg?yD8Ua 6_yr8,U&*"(_J:,aoK!ӑ( M,Ҋ]P.A`6# ~A` )`}\kRЄAB!\H4G# ;ȋC7!?	|}lTo<7b U.Zfm"|`3$uMV*8t?:y-uQ& S^Dn 	ڰI@
8P~7C̀9_lȠeȰ{ĬFnss6-Nܭd=V_?WDKLrY̺DX6W*ȧ2E"R#ī@/DPG{kYWomFR=DF\~@pYWO
\4 n6TZeg:*% f;;8ʙP蓡`.mXOo?{G:;42DaF69wP$s#js	C/-T1_\O)+:	͇{{;Y"#JuN0_ZG<5= l_7tAoPAP^YIk$7B@Z؅5 >x*Y=tY UaM ڈI]L[Bg]B)<FV`PHf EYHi%0 дF̱[@; La醙lW% "|ZEnaOxC}[ED @U%EhC?p`aC0߈I?J<I",Z$)ďGZZ\kUp	aQM"87Q!Й?1)m32<=܍Yq>C@OA,`3DTKW9|:وLHx ȌQD?  B@U  #	ŗyE"G.I@ |DF
H$NM|TlUSL2x$A$$ J?B2.XPWC9e$OO*ړՉ"6<@d@GA8 ^Lzڐ$|4@1`BGĸ{D]d<D~L&=l&~FJs-DW\WB&AL%G?"O+T\:%ljG.^ıdrF;O'ήpЙBLB\Md'OEA?VPD'>TVLIXHRzzev,۽݋:Cgz	%	&`(gr>DgOCOdNn$E;GmA99HB|"[z41$zZnS7eO(&PLBa8PEdEX7 Xc;$G=,iDICimQ̅BH*N$ȭF$EZ(Cm  5(	Te 2$=i6ƅi<ā`p0ȽSpiC/\Vfi)Q)@im\@iDb䟌92`ɹeX  ^HJu#4&BδPj.& XdC	|0PD其kB$	dcCpCK*UC>(C<f~(&kCA.у4iO$jOY9GqVnI+\wD<( !t?+27N^z%8(@hY<F$nDek?A	ue%ֹ@5cC]6bYmb@B8#l~\lnX%|Ud|NAx}T)(TXֶk6Oʴ
%(@*?3+?	%hlNFكpE?PyҪo-.(yTC	;^?F&ZB+<@VYDC%7L.4A1|Y&CS%`-4'atmCc`B n @ {
7D3.>L0X,VX\nq*kc$$]ELOB$oC/LRiHZs0FM-cU>pF;'T+)*C*LbIj;@JFCQvE%+ q.ags4!(*A0dw|XG'nLX+؃H?0[$Bu
Z.\mA+X/pZsD51p^
$*/5~,X,:DCrlmܨͲdd*=8 $~H?8(@wv` ൪K*LdGPCBʍ( 97\Wwp&!y,($@1l[e*T&*<bph/sNCq*f?웇p@/DjsCp !    ,
  p . 
>8>3*/9/9?=.(((888 Z o8W 6u.[;5^J]Bo7AZT	P0V;
jz$w'3R@n-Ln=ojAjB2GGGWWWVYnW`vhP@kf[gggaovpvoxxx ( ?'<WTai3Z/T%p&v%{N@VZYp\ck[qrll^chlw~]qmVqrmWon_{o0[YogopHSi|nx{ǏxƱw{-15?YLN5oh6]_"jt(TO@asQyuyGsm]ri^khtԐ{oy้5TpVqVeWm^kw]epǏ7ĝWdâ]ϭf|mgrutǔȃƨԴҍѧ양ŎϯȄ՗ϯ˲ɶŻ쓎鳓ÕڀƸôɔѲҎɤϱէ۶Ϧۦݶ             	H*\Ȑ!=z#JHŋ3jȱǏ CIɓ(S4M˗0c<M ɳϟ@hDH*uΥPJJj*eWXr}Kٳ9HQh(ܛ˷߿1GU7D^xl"mLHQp
̠FOC^ͺ*')Rpܺn"ͻ&8	4]-r.pQGk+hɭsT- 7NWh	'At} PGSMK0(]xCꧏ <$
uQUwAL4BK@W5FK.  EDICHK[4*.|XfW)V-#5*3H-`B Kk H VƩg܄=	9(z.(I`z	V!HNQm*jG8LlԪXMvT(K?92x@Ժ7 <kRRǙ	nBvRT5UUz$&fYE(ֵّ|(7(FsyaGF -@WbpUC
h$,#T(	rTVS&+TM9լ3k	PSefU>X֍Dˑ	l%k\T]yIsU"ƪR+؄q2ۏ6܀%@]
4FH o=Zi%c%yu4c[wuS.WW눾@K_mtr˝&o) 4@wF۠Anf;P5^d^^Ln%Up'0n?-~O}7f	_VTSݎ"ȢtuC!(p9')X:kы#yl  @yń(H}/핬WBڞ	d~`l8@S;֔4<ЇKᖈuzYq&;WDj, a-jo8b@$Nx\'2FQ pĶtpd$-c#Px5Dʏ"%1IvBp:Nd09$3+Gf;LGJ8H%DR_So,~x8x
`!)ՒIQ(I"ڇlI͙\sEF.g]HJ:+ Y2nE-WFZ>M!@JЂa'.V$Wڊ=r*##Pn Hʫ@#Ϝ(GJV#WL%d@GK$}O#uhcS^S&!pԊ.y#Pz`-(YJX܇HS0UPQvA~ک{־կcQğaA	Ƶ$ȚnsNOvl,8jTBJu>nwWg>YqA2L",%6Z0ݖ2y1ov;4ԕ}9ך|0D JGͯ~]8Ox\yj%]>9گ'U^BZ%UvPIΌpR ?k-hrKxeLx>q MAꈧ.'=3bN|_&5Ec( 2uL	C ^IzXľZ/Dmdڈk4#j5x^Ip% Գa6;oc=f )Υ	1Jwo]2h񢹲FbLFCկb$>BT${FX955~WrTh*Mue7B&6wxpʒXC@38! wpsqqukY-ٳ#XӿH
 %s#iK*rhq6Wm}Com\Adtq.leӒe,>JLP't;(R3*P @ɣ'ɜ6LqEU^	>=ebDޝ>E{ǻ#	b-Kn0r	hs<-8TLnToZuhSꢇԦSeꋃkZ2^rNJLb.W	!m8uz?:=ʤܫ\YagZӧ/m:GYp`G,@1}lfwyG~{}z}5{gxf~%qc1%`4w!j%&uUp7_&U }#!M&Zxgŀ=Qwg{І!!/R.<VzV,  .`K(tAqPp.A.f}ņ%if2hhH.
SX̴ LUU/g8s'AMޗ<Z؉}:z)sևS	f0uF٢D@(<!bTByf7B(whۗ}{83jx(.Gh2E5St/SУe#<8JULIc*W׌=C=3E7.H~.l%b4G=Wh	#*l1`-`0&}kfAȉXvxȌwzdXDna+C%u6f#-CGx,kq8Ѹ/؀Ϩɘ}Xzf;TR]8Uyya֎K% RֆiRj'1fQ,9gii0YP]ُ5b
 %YUu1E.fk9j'"&š)|
bt6LfR)P8dI鉐X)՚A0nuS<6We-o-c;^a57d3!˙YieI\Hؙ	aEL^>Z$>HkD(pM$M/Ƙb-	9+\)+_ΕF_D.kֳg9O4xi)uo@œ#~-&(JI، b}88Bawk,>^2,MytbvW=/z-ƛ+{+)R
򩥔	R8ǲBiđTGR(FAI҄I(`IpwrVy8ʨW/:9	{G5Q4aPe,#fDsjiiنJ\Z^*٧圻UE$h?sđvB'J׊10/q8evk^x*#R:39cٟ
nيbe-vlzf{pQʰa`g*WtJDZ^:ಙP*YWڳCFus&Wb3Uj(ֺs&w^.IԥX#aN[)饽JSʸ__Yy@%viťl˰CF8qV 2~9x޸_
 k*(R:^껱_;9`h%4mlݺđ+Mj6UY?C45[Uhi]zkK괺ڻ,J]Y%zVzz"q5fF8\FW׽da¤a`k
x+3![]14+7 `P<V
<6SPGѐ4V,OQ)_14lT&a,	"X+(c
15ӄjA|OeN`It
;[& Q1hXR·Y아U
ɜɡ7a1Pi\.lq+n2Ka`qZ&B~yS1ݕ{[ ȼkv8`&K)(ů~%Iz4X_)<K[=;X>CNX]&|W1,ɽ[ܸl.],<ɼjQfֆ,G<c2(6/N9YGMZyaI7i`[\И[e\п#Yz1ݱ иz`%[(geCjK'8jyo3KD?&M^^T`oY@%]@ω['쫎KS 6XGK0EF[QLde[F,@Wë˸i$k蜷WJO[]/(COXQqg0\Z[$Ώ@xWg-׺3ڸJA=8͕<a1͢F]2e*r
 Qy"@zTt^<qQ
aӽR`j4Ȇks[l]gU*p9la(fAv#'"^KI^4a=^.PA{ӈv7"NXԽh50zQ?'CGbNÂ\P@m17#GI^pXT9edY̜XAEz~Ö/Sh+A,
c./AY4^d2$?w~Y.!Μn~T}VknQ^ﹾq <dA{>jy<}T3_\v>N^BZ<L.L#ރ
)Rf=	a$ wG/ m8d	b?Nz)*Ŵ*X?i}_L^iOoP*24X	 oHqgl(EXIN^N-δn.O_egJuNmU>6@JHwi\1Xw	/??W.Oq_.l-ݢaa/pk3@crM[&v!0 Tzݼ/ԝŀg\*U#X#+JHpaj6Dؐ8AQ"ǍC&ZI&QZPɃ0NLX>|	OA2җ(΁8)wSQ>
MWaŎ%[YisD[845:_^Әu&c/M>L	H+b.8aE-7{iг)]3AS~Zh0KXxC'ނ&x-5龪ܖ3^u1:Js=*' )b;{
m~ɳ	j7N
,2=
p1.A-'`|I+nQ%{J:0AjBP<kFB`,nԫf+[ȨzIoN0"lM!AJ8Z0
D W6's9iNrBBnD*zѩŨ%9JDPH#TE1go+GR0JL ƄI([+|i''7͔Vp\y07¤L˾RXvAfRK,3<Ũe
}vӨdJ\tUשydg)fuf/
s2'bViĢfcC}ք*\3&l#p 5\cs65USϬPxl%ozBT{Yy6(g9}aសJp:)*nI!xb>rZeU&T;c_Wؚl&1VM.auor(efyjRi# b3rY\xE}L)RSGDJk	fC9&'<YF3ox/8u[U>iQ:CF@_7 GA7n"Իꛝ{)cZoU7 p9%=;Kmz'bXވ#jhJj3-[Ha}<}3aZQ DH[FF1ȍ"3Q5ǩG*{  2-5ylbjR725]2.#H/*'I;򐈟!jheS(JhjxHDzE(@`E!8״Q-cab 7{>c;h=J^rc&V1Cs,byhU
Io=p(}\! Hq-TsxHlf( "Nh@rXMD)
WAtn`XGRJMa3[	PlӰ)(uH0MƟPCGA9DL+(д_a*#C6]R[$@EGG2T(=7lSǼыc{xЂ<vZDucqJGBR~ȏ
\C}T mtS؇Ls8@gpkOYPsBTWJnDmc@
˪nlct<\mcE-COB2
-pN"R="ue
B#.'TXv07 \<YS8(Ĉ_NVrpv*cY3@L9G1L
]ʬy"eg)K}cgNQ}gJArҍR89oz3zBI	hbl|kk3a-ȁjTZ#ć [W\&g{U	b8T@ w\ܰ	3JǸ	+kF@}jdY8f4XNTUdOW1zސUcjkC3Lf(̹ԹSY/)!)|ƢCЂ&>hHQahTW]傞{Ӟ昒ܙP'	A,vrQ
g?qk3Z׼̐aG<(  0-G$7i1mlRqV&+O>?n<3jIӲ;֪->|\w(iA9̍ H\0jr 9iNٗV?-d	3Ly9&WTGg)Mx~-5c[dR'`qe\=ZߺYNbd<0Ch5P뵊F,C;X(ŢpjSXl}(o̍۪FQ^5HzpCpǞIDOzd,'v.}  w	-hS@=㳠˶ :'u%M S&N0وz;9(!&c
M輜<0
431+æ\KyGJiC܃X@ȇn{გ'ʨ-k>Uۏ0R<XBP5C?7ʘ+CAAT	@
X <9"NjȤa[$!f=*j{7P$i|ڇZI3Dֲ=C*B24C!dm*8A$DPp18BAKn8x'8E9[k47.tIX۝UZuۚѐCC\	btùiH}0?<}FC̞C#m8Sz6  QsvoD$0MHY{̽TȇP`X/-Y	I*ctȤÝF#A09,]d	&#>\:+6҇;XB챍ң
CYF4%{YL̡,2(Bȡy.H=`t ̉t B79aA~:2d5\ttE9|bH#	#:ğ!`I3
eJLF8)aKG <ѫhLHJRMb(i{lPbEMcLμEK@xkЌHJ:>
%!Ad5#<(%OLHHHKx  Dxh_p̎R>G{Ё ,M9βcH<<4Zѐ5M8lS	@0UT9QHGA5e?>XQ;Dƙja0Gmh
`N[7Q8#$(\Ї
x%%ޛJ(85x*	mGPR%[LF\4k݄;|C+9E<tV:Sr!2HmT.{ѡ(TyHGD7CȤ )BK.,8}!x6RWMܣU}[5x;*mUUl9oӄU&U54N5=C\<T_U<4|܇Xl֖V;*џppMD3F̤nJ}W 	j` x  U(}%mR* 9XU=ax4*9=|֍DMSX34>͐EH]ȅ<hM̠jITAF,̳V?WD,l+<Yx1B@e1<$XQZRjʶ{"MXe~Җ	7/$X޺M_|ep:4H:Nb'Sh\^\)T\L~iP)H6,ph8C  MAQ]WX!]8@7k	Ё[. \v 9UPac[v^t}[͈!HDY5Y^jT+C_m).ʬJIryK䋲;*5`eRTE(	va<R7ΰH^F(ӐYa=N	8C-Hf%NF=ȃA(W\mBb®k%b\zqy Sh<+Sx].Z5
}R ,@`s9`)Z6X]EF6ግ<a:86f3E\dlE<Y6H圛X1g?mIGdB4C`_MLLƦr<:G wQFB@nḱ(V6`;-M=]N@7<P}H_V[@8eNb~=Ό dP28 liHF\ČRXoҡx`b>#h']@)ŉȅ`E끅YuP%m[Џf^޶0SkHŹͣh١H?+i1E?lI!On (jK?.&==[.8ڮpݨWJj{ZJ+ŉ3u@[u(_E/qp0fJ#>.f"	ےEdHoNA4m#6Cun!XL}Wn6?=((N݅}HʆneHx1e{|`Tdh  p:':27dN^n VG554d؊nYF\N'Ǳj	]P GEWz} ;-p.΁MȉzXpm*|N(=5&B4Ґ^`iX.qncdLpl`d=v8g.Mgm,oqT	X2P&B8hбp{	Prj0WR4Hj5G@(e[ڎsP.2Ic4]a?/tN[.Ym5f'iZpbx:8LNolkKW8U X BexĦlY\" Wg@e-0h#b'e?pGUhjpkl
-`d`4?(aVi<>H7fH]SeHnT^ٓ$xl@V]l6T:M܇&g)fr꫟J*N$DChBU2ꁾj2	MO:_[v</1ps9[2*Ag~Ϩ?hv؟GW[`\XȼY%bQB5SX x.
!z#x.0  ;
d7|V4Ӭއ	./~,ʟ=X|Rj+q%PJrrڨQJtHqŃV!}qzȉ۾?BTeG.Tr`}	EB,O}Bz4ШA*U*UWYU*bǒ-k#TKhpEk.޼z(4!>F18al7sYϜӤS8VnP"y&2bwv#w19nxl&&o@>&}*fhr5,]Q"I>oc>Y^=z3hRKS_eHG桕F6!O H
[T!8:RIJSI% I%8#bYd&֣f>~kI&"Qmoi#=ŉtpu˕}܅/KqBK%ޜrW'M'{1|btDp=PTLS2!#Ta"bU45eA"R
* d>rCkOc$7 lm>$kp`HJS&oar%G~v$]:2'AұMqS'{[}gH+u[@dX0*!ClRzj _ëX՘P`2:  9i8jbYˣ7kaO,F>Y&G0<-uD]]٭Kѻ͑MK
D7/"ũzf%(iٓ>|D1/|PUKeq*ޱP˴r*|:xU	<򅸦DD2"dNCjT{pZ:<M({	fs2w6si6KpI/ͯwC		sRbau<. 2zܯ`"@LY,UR#]H!0A䦳QfG Dr+N`$bAv4F"YG$8Ag-lm8<IG.h;Ja%֓f("iHL'ujd8z׻-eQ
1rU   %+F(|NU3<hI)RZA1)퐔p0z 2!sH]:בJ8$Ttxj	D~ Wtǋ	 !cc]b2Mr"`|gqZ(Z&hxNW
OP "4<AM	8r[[ޒPLb7M:-ene
S_XbK_mPiXӠڇNq(PBrFED<fEj긑t.f+"LAb^HV=$ZB`oPhCCv5J$hfR31nT.V]hݙ77m.$H֜(P4,7}qETRN+xmB5!B)ڙណrV,/
(j(ڥzhf0(&54gam^_7%7V7nG
^h:G1Keeфٕxb֑t%^tfK
@QCUXA
0uT2u(`P
=TF%~ 0¡Y ՐRB总@+AӠ<|52Lx	# nP/p&ŷ~۠}G2mt[V$įd/?D0{7w)o{|b!|p8M6(k4lK=&H":D
h2X=
A508P4yP8&V'C8)C`8SGz7CDHĚ$O*j=bgVfÇDk!7oKA+pL%R}nE(ig4
cOi6$)OX9.*0x5t0hJ_O)kaO͓M ԣO4ԾeD:3ėfwT<	3EaR_;~zCP.[տi7Λs΋>U/3Lv	AQ5:袆`3v5$}֠aX{P*ɮa('D'yXs2'ݍ:;EI݃SfJV=Nes"ІΰGAV)Fܖ˸]r @-#d"!׮cɩ	o.g̻HBtWKT6XKYF%[cyhGϕؼD e$mϘ]aHYԂdO57S	
ŻUu-!]7tPbDapȌ 
7XHNnto,ܧQޙ
yThSC1X$І0_F@X41A ˲yĒ,$,{Ew[H:zD[st,!HtUY$NmXP#
~%2L)5`Ȥ aHE% tH[$ƋB:-@H<WjD> 	fj~iAlC&^%8-O^5D&4Xt@)GAZQߜD|F`"p#U1ĺ#:NUVd"R8y2(POPäE%\[,݈ TBq"բI`@%=Y[@!cdw\m.A*Q$ӥ7tLDFdD۸Oy[RK	S\U!%!ԠM#
`R%kB[UW@$OHP
aT,"pzpBa2h dV
NdT"ϬLL$	)l*I%@TQpŬ$SSJKT9ݠH*蹞W2܈ޚTs
٣,VE	g?"5EJ;,\F`)5$5x9_FUHۍ՛ЈDXdާlf	EZD#@L1c,c6Yxm@=&lHcdImTfG(D9X
:lV DsYoBE[u"R !P[V9y &'ħ~hH5'Iɴa8x&[@iziA&B*FpX
uDm:t8DMy(ERH$'e(I$UnnZ Uԁ)#`]T}Q16bPgDFz*Ngd@	Ԍ]Y \pB ,@" .JN\NBa@MNjW1x@_ihY {PFUGD,eܣ#BԵR*LIʦB'.W^6/vNūiJNyz]~!e|,%\hXD(FaՈ\MͶR@ξf͒D(PҐ5&EFL4yЄ*F,GUe+{;Joz)$`ۖGN5NSSwb,ʛ9XepNrn{iNzhN]XȾJUIZc	-@&-fњABq!%*EB4BX-Dj-sR=.*oVz-2lgD-۶-"&OSlB^/%*#p,|UyUKfI XǮ^ajhBĩh@]1<(Yn?Ƅ7Dc/r.vr.Tգnfi!Xdlz%Dv	^# \KB(>PN,+@*/ŧ mtjT!p߀*䩂.h Ҷ]M0T0p`KECDx#A(	>R@Xգ;@Hk"bGMyp$YihA*nQE% P<=[ܩz0R^LfE7*Xq  Kt0$$kՓ&Ulp ;D!?ְUev<*ڢMHt<>(tkL/9^Y!2dq>6 -$0ȲP ^!@0t0 ,,Z]E	EA)؆X8q~FP*L{A?0UܮYHDs8EDxǵ㢆&/ fo)?{@oZR'B&FCKl*9@JW\4=>(
VTPEI7̴ᠴdŭ06W0sOjtO c4#hi0O1gicCc_놲HEU>e&盁jV74jsbXZ߰]DD4]\PT_O"RxE`%`GCXlf`ogO~T(mեVLvFD2h'8hB4	ju7ϐRWo(a7LKD%v7Gq&gI06HYXP?[w#;grO(dk%\{$`7aXEGGEe˘K#~c]`+Z~?$xMg4.kwƵ&*jpx{]{E4txP܂psK-ܵ'E82U>j}ir+-&N[3$^S,#J{yPDCb<D#\PɧCb|7;dą}╊]|n4h9]Qkvn.iѦ {+Zd:W'=vp+2<;{ͽn(Y8Bk5**x)D-nerS|<,PD1O ('Q~;;( ;: 0H/xgck4#hWy&	l{uY@¼`vTeu7FKv0MټXq3r9-B_,$#9+(7#t"[
z)y߉0'/<ː<5<Kg>t)D@ivYhg>k6A|k;m֟҇L0<%},ѫVt<p~9s5J;c/qDXB¡պr>x9\0>n!d{E<[] 'G h_B6tbD)2T@oRpqb@4yJ)i&2\gN;yࡊa=R7|4ѣ:v:ѤQHFpJu
GGXk3[L*	4#>{T(NVCiTJ[=[}W`z2Dr冋\Hpb9^}Qn݉pm;o c+p5<DIۅhuGcH/eN-U~|So	7SH3NZ
B|(,qJzTQ*BrHiHC24h|+J@ej*ikG5 .#)T2/%I:0B(ŵמ\ B3Ͱ"˃|#NxC 2၇LoNȻYQ$@N=} hzB>u ܫF?\=F1m\CpM(:<|0L) \*3v+KaFa*M&rdGd=Pеbڳr50R_D˲}3X0 tj4TC0`ޅ7.=i<cvDe*mNd=[Hj(Y7a]/F	0I!#(hninZ
p LУAסRmOZ֖Eon	sA6zCRޘqpc*d.<:cW3S.?v-#TVHG!3eut4}8^.9ltClS;DF8gȜmo@PԄ2Y@2F9jF(KGXsֵ-DT"<DB4H<A"Kkhb%0?zXgCIaKBH)I2g5!\cX-(aBp鱌y#DD! CPmO75Q7}40]!h{JՖ 5%D L)$! 
ςPRঐZkn$ILYK֠v,b9,.{)]<Lf%/%/$`B%&L䡿dˀ2dWt 6vf^$NLؘm;ޙn(GQnx"7a34lg
'328R҄@iFz 		a<J ILfj&ĬXVݨV@UJK"z#JD`FnƭbBva.''~лH](B}J>\jYI/DI"jaRbZuGΐ17R$9DM7	Be2=뙃!pc!XlOFOiQ=f0Z>Z"DIh.OC*k(DtOY@|2Ipkz4`bYYBDfG%~x,lZ⒖y0f$ԱHDzuN]DfN<֨AS7#PxNp>zƠhܰmNc"J_aVM5N432竣cCG@J۶R	.M"ʥ`D*lHPEKn0w%Ky"LG]BK8u$yGt/lu4~&!%/p2(^sav,"Fx:C-(۰1!u4;h#'Q-SQL9ld"sHT$D#=ZUt4kQm%k\R5rێ˦F2H!g}mlst_ejpĸ1/J121_b#wC 5u8 [!ܼ]%R7ջ0&EHG÷x0zFft*eتޒ#  `fkaז: Ij@$9 B\$ȭ 
qODhD	־{Pm]2mlf!9[&bHcLM27%,S_|q[=0L72'm@6'?DԀO``qz{!V2_jXjE\o N	$!4ѣk]*=䲋RC{;7|leDx=|z1mAua)!4`YXHg*tޥ=Jd(BKIK܈97N"2l9$`$**PpZ!zfJ 2" 0j"fZb?j܇=%Z	|pnn@٨xFA*m"pʼBKbbi 9JƌD'+K֌ڬtjbvIR)3"3	&,#z$7d`RLP:f7XoĮgǶJ!R 
k	g$&1|~g2Z=d, Ȯn|U):٠&	zKb,p+p,*+2ޅK ,E<A܍QlHmhQkt! !d5PC/P/Fa"1FF/(b2>:OGxAewrVqQA{|%0U0X+kt%xƲ{S*0j @Z~RAĔ.
ڜQ*8*Bo"m nȅ[\JfnCD2k0qP`1)a?\2jH΂RB!ǌHciI.9	Nx5#Jb:l#f8$CT%#&H2@ 1'H2t,?D(q6c(~S20*r)mM+b-C[L"o@e(p)b~@lcao(!H.0lP0ƌ~Hbl!8g!'#Fx<zPT7J$)^NэhgPr=6o{H#Z샆N=B 2|8I2R`L4h@ `:#;k*,3Dn'r<#"'0BJfB3[,A?BHjflv(`&MbgQL0D272TL`aNJg)##Ta(n`D8x GQvg;"C-z3=T 8}ľt%>2"t1HBG~	%d;鸴mLZ|L!,P/FTv!^lcXN''` 8euaљS 1rR"*Ab`7BMr!exL@55FC.%eSJ!AKix.#ڪ0UjAĳj#꧎^#B "s+V˒.KDXEL(>D*deoP _>5U7>7aLc혪0_.#I 2=ڤ2ɤ&sOG.ae$RvxaW%HT0eTeZtfgoU6'>G5!aQQ%s@0RK'6!V{%,*^}:KH#'V%m׆vjPn6ʮN"<Y6=uAE[v ^dUy-`g"x`b@]bQ's!b4v؋4JCuY!!ȋ(LTTwS}9p0hgUz8kknE#zkS 4l#b *[}fr dI8>U'Va6;~ڰtY7"q4%@!4Fր7_@pq"uO)!^vqAmi.A<r+Dr@T 'vc:"/Eeu8@g̡xAԠk4cP.%Be  '.iKtL83Y%xdP$4R&Bmַ}Iv[Kqo)z`"=feb,g@@$ēubD.vx:V!k%
1^9 A?tv~wB0TC-OT'n7";DE%y6ٛedKH6s$V(I_. %`E:>:kV!%G^B"(	* )>pn#. 6$,dzaCZ&q6倶$t4'b/BayTJ8G=m`L2v'*oT3`UۉQfVw#N9dG!bL!|sң%")9#[A4b	!	j"qnTaŕPTTy^6ZjMF	`?Du ,ae6'7&aY4NP, IvqYs!s	B;~PGC/!"Pv@Aw>"w(90H37X %	J%!m;7"BǺ& Zb?."^Cga@`Ih< D%/{!X~!znX6.mb/SFy[,ʨ/EaAX68KwEz>fNݶPhLu<VhTm5:(B͟:C#~vLPShOT$=0bGq2Sh|IyͳNE}X6#u\(]\})tJ6]3)*Ȕc/nv@M?a@B@Old0c^s"D@'TPay +b2_טt%ᇳ]`:&52h:nU=cTUP:7d<"}a?~.k6:b"Î	;#%p@Ӧ٦B*[}PKof9$Ը"0A5hDa,LdzVCNzaZZ*)['xTAGbąAOtApڒY	P-$a'g'N@sxfQ5*'@y<0!e:TА}q  ;z2ȑ$K<2ʕ,[F"dZa" 1;֋#СDQh<,Y؍ԍICè<"ZǍ=n5$cq`kivj+Ʀ2XwC'pvm'J%Nɚ*R]G!z=X-Re[QU)b%*ŬƉ6㑎h;Y[7U;,vrPȐK+qbC}!"D(h(@Ew2#kq
:X{߯`a Q# T@M.MHa^aSF& u
R	uP`Ue֊A5ZjM敋IJ=C#_(eyC7"-DtRi"]l422mrX`P%</Sifex"hǍUSyquk5$\gɚ9V%\7UDfudǈGIy|D #qdd@g+Ëj!IlBxT"= (mHm^mV&aG YTS<t>4Ru.7# /0#K-7 WCq8M_x\{kؚVl{ ǱzZ<8:s,3VCB\vHkLC&$u/$Rzq75y'q~
gӧE# mNx!D Q)Fu%cW.))FzģT>>~}P7pS&F {hvefԦdnBIYt"w2̒sA#Giջk Ѷ,Zbj'*/`$_A<&{mI/+BCm gsBjpTQuMdf9Q*(B)0Erv!:`C0?/޸Pq%:<h_FѼ=AlͱKtBM{ZTrF3vO(|CU`n;T9'o_iu1t#Q<&M0Y,)OJtq3W?B<"QLUVȃ~d80e0߅l|,*a2,mR}809V/,*p>ܕ&7%ъ#u1<VjQ`&TGI&>_ӟXk׶s􊢞<bϓHIORSKr|eXbрNL%Hx~`a7DIСd8L/26D&ș乆؃󎑱Mu@%M'Hқx$!G0>DPtD>F:GwO'M/kLEA6pn5R
ЊZleN}RRf%
.m༰Q:r$3CF;thA5DkG5%&KCkN4w1"@1lcU64 k:+α$H+<=ԣs!dv
6Cxٺme#apYn!(A6K,vJGXR ^)DX{Iȓ)bnG?ّJJf`JjPSL]g</i|qb}&?Qъ\9;6t^w:DsGF
$=pQfF~Xۏ>
g~B*7KzҔO$/&%rR,fԤMԺbf8s	d 7Ő8J!Q7%KlxMŬI |쭿j$:$ɵ9Gv*sڮY$sÆBSOs=x%OxK1˄иIN;!d6+t,n>|qX@fk:3$0hDLHHΆ2Mp)wyI95Ăô6gpDF|FX^SٹC/WJΉ9uKG%)Pz]ޖ	y^^5CBy	aGG1+3w?M=(5,3'v@5pRܤBWγ6[T|ʊ¹0!KAC\pl^RLLl}+~J{zKqRa.h/ȑgccBdJ;2l@e^g2\\d[UqHwUWVGI%aD|a|@ɇ^"dU>`7|GU2RQyL 6+pulC6S5%@0a|w7~~ Y@fkȆAxa@
PK3<PB1/bki 	?ƁG|@ez=h7{Y5}ڤct(tufi=E	4*iqHз\z![+g+m3mEdR!c~Ϙ~w mȍ,J8Q+99m4w/KF63A"9gGrQ	?V%X2Plh^gsXGzyMQH"WV~	ᅯX||p3*[gn?(2 |YW+51AAGXvh	7X5H&#~GJ( n 98!S
oH-Z0F21׎L`D`>ď 6sE"^ysw@1#V$b4D	a\&.866В$nց p"2amdb^AI"[YWPo|e^Fg^IG	=^ĔtRRS2"-81!
8& $8f19(mo99cрjLhTICJw	D(|e1`ew6Ȱ'mւu SuN+^vIfsV	=d囿iaķ6יH,Y@˒3! P:QW ܐ)   
@)0d-`Y
 nJtR=y#Cy1tY:2h:1
0Dp2ȕeXgAn]	\P$2mE!(?%IV'?8.7h7|CZ!aQ 6j0@    	 I:b
CkHF#!axb=gybb7c	rr0:	(P?,!Z ǥ^)2\dd&؅5l+{¥IG%wup4E԰**8! !ჱq d!p9Ҝ}D[YD1?ФJ.4[:`(3=1+9vn E5d)'+59GYNNq| 	be*u6Nr7P5 +;ESt
g,F07- k1Yi)2 4dIQ 1+%![
2/`!!٣bi<p>@
P,>:$6aB"GfIUpGLb; tM'I*Yǂ$A(1`UbE%~ !1ƅYhJo˰	\!hS	 18	
)JqBQ@Cm4-(Q
CqKK@97n[C؂8L3}8Д^eekxI]z1&'!>u?	۰#Z{8],j%,7L	LPR	'+ҕ 5q
≕k6bGQ3X
0Z#.;3IA
H1KK`
^JpBp)G	\фp ]b@7 zM{`e &qW&(:4MgţR$?ahk-ɡw!)k',%X{"}TZ<cSblbZ["C[M
_:DϫCW<CTxߋtVz`\&Qd{ 7iF>)4/iGJ !V|0R*VB10a-w׶68e	1mRaE
B`[8vR0l/0xBr-T~8̑䡈ir|%_*%jewPԻὂ<Xs݌:<9{5qh1,6~ O?̓ Ôӧ}tX&։aE
Ibڷd7$ 	+z!У- M:93޳\#99,/rF)7+vPvI/'kpBC!:T8
8^Iӽ^WA_S׬%k0&wQz||%b"iG4idTE55m)KqWsG;[T
-'A,{.l7/bSjE0>I[BL[0
KLLG=?yli kb&7UhE?YZUW6iѝWNLy a,V~gSh +(pQsvei|;xREdAyN8Ýoi'>{Z;-AB>LMLrrDp0~Z&gx1U6(HmV]?iNUi f* 	L@AI+y	u6|6Ւz!wMg6$Y_8xXj#<#A{#,^xh^13sX,y`k@8
ĲexUM|@pԵEOta%MvĆ֊$&!>AQॵhgzP	+nS-$1]t R8)Rq^B)2v}b(r`wi3R
@Dv	,'8m,v}R4TUUM|{@䨸fI%oe0/ jCP!2^ybQ<y kP>nb7LLLbۨS%N).&=y𹨐O^)}Ln'DEx\;|jPU2sU+y@~VXaEVZ`ZUԏrśG}X>bƈqǏCKJЋE9i&rD@%ҨJ3(G&Dv';(Rx=|2V#Xvcj=mjG
"Ɣ2I&W`"3g:8fj"jA"*Dr0CPCR0DG!1EWnK(~BFn ,Gwnn6a$Ĺ&5Xm5\V͛׆hglVE:D@v[D=IE!n6cF7Q%yꡪ(r=.I4<PhN#jN"=:0B
BCW#ՈaVF	 S(S*W  F[eY^ŀT|6[l1K(z2\膞܈cՔX͛}6/!D^N;IH7[.OQC1!DS̃;>F=Q>c5'?1үxy`>(ԇ-٩bWUUTVVgI4a,\n!z%CGA1bQA?eRJR'FۧztUT oh1mq\j'FxozI}P7rkTc+/u#;7TEX8h$MJR=*Z.9_2B;~*vn+r"C<<0ꯒ'5 F 	v}"i
 P	qDY_[_v./؂1sb&2sFVbu}#qȉI챏&6&81̉yǸ"pQ"aʑr҄mvSÜw`qDA`&TUEaxM0'pCd
v?O|Dd	.C?d%R)H=L` jX 'IN&TMP hl eG'Y03WA
UXÚmi:iZcÃ~甌
!<&#k7x+^kMXpbBE:wDAj3:8u{ %	ac(y%Iő"#&!;Y0=&3%dR#r!	ka%BaDpD
Ƒ hZ[r n3qDmJEqr.aGn-8J&ej ,Ӱ,j掾eιD'ɍU6,,7N<PvRn۔ܾe7Hdv#ІFܠ&DjzDq8_36M;:u;{R".
@9}:1zu#yYBSFտQ9Q%TZ߬L'
8:U
d'@b,Oy$e%1HUlT^ &!hrJmHA B@LVa l0$	W2<Ғ´p2Dx-݈fpd$ɰН7 VDI]BtV-Ǝ7 H`Ih6`		eɄ	wdF&fIz&P6TC >qjT<9W5%"KEݓQ,+R)1B?Nj$ǀx󪙌kC- E($} `<F)O3]rkdESELl)#8ph)95D+ B6CpTxLׯ`t 씧E)b'f2"c( }BP~>zD&QRXКPjGmtY0dWm @K5li\ULEXECbi0ޱU4/vXc4$Yࡖ<Yvzg2ST#{yaHsaSC?\<f?qX)@ÃZ]'{Ey+CHMF$gpd&\$74J	Jl" EJS\)AS ;+s0J8I=gKu+C+rsbj	Gб]=a恰j)=D&lS/['",(ZpzzK%Q)(*AOh0!4`>Kҗ!KI	;x(H;#.?K6q	d܇V`D.k`WQ Ea;P;W@)v:ҼB<n8SQi#CGӱd7  誱B:` vA(7C
q++8[1&B#$bsixq#y'X&Xa3&}X@JX+IL; 8?3PF;Kۇ"ȴE;"L!_CR:C"0B4KM`qH@;O46ĠIQŢĊ
I }A
,ȕK:`Tj R<:Tq1d	jȕb<S!bJ*%N
@J㈃Ɵ(&z rd`3&4{'y!ØQG\@6ЄD4)1IHx#3H3bhY5Ѿ(d Ī5}4=A? 5D!H(JLa/^@\0M4
14QJWQVJf*+%^	n%m,Kuayi	,o,;2!㈫hlۈlL:L wR'kQ i'Uq$U`6hKP()>"!-Y&>X4@M<Г<A<%L䴨1ŨEj::*PĂ钕K?Ncj0 0<J\lBa_:S$	E*nϤR2UT3dSbn<|#\aKDe 0PQjm1n!RQ5p\X e`HI}&!}``ޘI!Ns"3?㹋!Xc?!= VXI`?ɚ)Rc5EUTFGԑ|<h0 XUqLP691N Uy 5N Ba`j[0гի:_r7(ac(K0-fmk B3n&p6X$yRܬ7>[X;3J0$S"1D-U=c0VAKix	d;x
ST;*PEح YݯUL^)=Q3<\\XZqб̣ u̟&FLj[ PspR8!p2ZgG٣<\%`70;[H9ֈ1L(Xv9/i,$CF#4}(`4iD9O9͈Ո]	^a	3ENC\!ƻ".!>6&jܴ1_=%,&,{sJ p*`ROU]sZ_/;3c4K3ɜ(tq$Jk)X6`yid$NB#aq!@B}Ww%K,5:=v(NӥAͅ%(L9}#YLJCcF@Tefcλqh>(${SrJH\ 2ֈ7.ݑMZ;Xz+zJ
p'x5`F6cRtÄK}4d|Z@Rx®=<::?ʏ`Va%by&6Fs.3tvd=Nz!PB[A&EN"Xh*pIָVta?<XL#6ҌNHW8eI9DA4@k{3".ة6]i>0v>FatvjrLV=en[g$ȁ3{nw_VG#x³!H/WaAF빛Ixe2zi
$4x8m^eC]Pٷ䉆INԣ06_֑ھIVLmz tJ!hx'1)L& 4@>X05Cn4$/aD;N?PCd/:((	ّ:/La#4@v8  W*G3GPpm7$aj;jpumFЈ{X5X0nl0	OW1䏑#14.-iȄeA .<l9U
D4nxCC
Pٍi(r;91,o񉉍`)Dc?0m1'%NhXs`p77GQ荷qVovpmGlX4Co6	oXබ厍y(q!..	\\NQF\VM䀅SR{*=4X=@S(nV\L5OdAmv|1i3vlZQKtv	و& t)nDR^*}Barb?xi뗃_4F#9}ݴ#DkHWHDDKr <;^	xh~oFHypl)R-*$rs^pw}zs$<@wbm$mH%wg<ky15VȺy&9O([o[n&
VN/.ʵ-BWSiW0
#.%)Vˏ-ɗ0
cуL߾"'!>`/d:l'I^-jxhe)s̚̩s'Ϟ>*t(ѢF"M*tՏNB}GԪVbcj7<xTR_ܨԚ5Iriń[KP!>zYDQyg?D8qsJȆajsr\>Xw-
t{ 5jh=)s*0M{~߹cg'Lz2=։l2CyLG퐡GC!ȘSO"/z0)!K-qgSM8)rء*QDU)'Y+آ,֊S9xX= Te5Ch[N@Z9lŃCuIa
HOq~	57d(adCxOeO,=lrg82v&=D	u&]u+0 &(tvZ$YLїx|{	kzjLjO!4QytT GHI%H([,2ʄaBӆڪ?Ӎ\XcXdWl*gIC77tC
U9t*i"6 ]D+~	>f׸iJ8dgӜըy܁Gfy$(<"(2HTܤRy3'oufJ1iLh4H*>]yJ	"NuT_&ʑr<oNu]wm-B7)S7w㭷<XbIX<,΍i찢覻WdKJ)@JCl%O],'K``LTIIę!΀tG 2^Nl6;4LAxC$@D>9fH#ӂub$k3 P;lo;>0
n('=Ah",
7éKd>[Ӊ:ʝ<Qb8qHK(xx,ಯSD!}rw	5e4ky:=%אql0r+p)B7܇Y>>aH;mocsA`5ݏ $Aaky O9I._3¤0yKt$昇! >PW$x҉#FB3(OM@A!s Pj ͅP@
RBn d*

*%(PE%b6JFb.#eTEYtC5XM	ەqvLG6dPFN6&АHf2I5F196C;R1RIլ{ч'fvh_-烌Y<LNS+)B*/O"A	"laK	66@1	^ʂ*hP#GNJ(   2F _JAf!WVa5B10yK! wN&1ͪ8HV fYj jz2wB?Q!5sBЂpp
U	KX5(VD%2+=J`uWhC\Q/ވ`zFP'0AW!oc(6 h&ek*FzQ8bQet|Hv3k7oDXjm"H|B1 {_/Ėc[aK[Mmn6'-` 'Rr KrWz&*a{`
XmS樺1^>3M.F\C4AL!=L	G#Fj6Hgrh0 ;-kXME1Q^EE>
r9[(B
#V319lTX,8q,=&K#d&TBc$J<5i*?]!+0O7hj# \(1-?KлOyE0&ZN2$	LZzU
GWSҥC8ͯ6'GiSurTZO(njB'TCƤ e{1A)CK9{6x݆0Wqjېb)WІT蹞HKzP%r^:YPݣ00`u_XXat8ǥ:dcj7>&0'X~>z.8D%R?#Hq7uMOSdu
A)\|ĖG4ObH=_<hHx] ݤPѵ	>@%Z `#6IUx(vtѕcVxRpWa^
-Z
a4EP%;]F9 Ư=aCT	}7!aԁ0!OԐATB9E)D~a܀P[dɞN\AIɜ_0rr_a=LW%ԑ]e% mSgŘ"\#]Cq4'AnYǥR(x@R$Q")u%lCBt1 P.6*]Q,֮{,KAX\ ݝE'i5%əi%%ia[=DD>Iݥ	@yӚAݝ
%uC5YZ	BZY4QC@HőOnG^Q#TUtESpTHH%=8b0A$$FMbO!I,4_ArN(d(Q5Uq=MO,^[CW	߿ؑ_jY_{P@( Ll`.nt]U6\7~$dHe8<],9WyrՖ	iuqBoӞ)ҵeiPCL>CFTIiyݚ]	@]ewB#@dU`JQ|ޤ@OF޴Y)Oi^%AU>qBQ++`ɻaXC\C1Gedԑ ɠ>!Iy"<'%
aZYFtx|R$ʔ-!h/4c[)Bh&PHfpV4ӱr`lV@QcaT]oՉmyiI
E>im$ug)@M]wnѱ`chƪ@:D}gL~rB>뽋XD:Hq8h+f%YJA+`e<t@}Fh$N	9AՏ fx(<12R>sA.Ŝ)u|IC:iMRhFazĘ)7̐A^5DedixgUpمaa	 31*=	7  ؚmQQ{N|vl}]ѥZdHjTQZ4[l&De-AnaB+0JC\eL!_`PAi LLC/&տ=DXCƂ:µR&ƏikNU|kjզȽw0\kmk:*fQ<Oy49	@{iHd ( ʀUޮ lʮNF,҈|QBQ^}λtSEISUN^$`)>d(OL2N)Nj^_+MUO0nA5Mz\G{JGOʇ.##`LieqHК	%}Z]n㵙	W4ƺ- ͓nwl6Q|jej$,"6!`.΅fbJ-^Ɠ)6%O\	=q1o20Xm1Zϣn¨p>թnH0@2]65DwΦQxWozqՍ	*.S'Gʮ,loK.搑x9ĻA@A^AD5HqP1aX&`{qUND (6X"2
+>lo#$c0OQ7"]J JMHn,eF$6\I
xY%
I+0,)Q,ΌKg}K3[)	*$o5̋0q%4cأ\0=uYTNh(O<>,*I^BkOآl#e[(/ܥ8cB10>Ҧ>ՔڒFD0EkEǄkkQqݠr	!tgOڈTpEl/V hSK@@,b-XACQ6S{C5DTcC,-+DF7Z-RĢqT^>kZlbwϟf8B/X0#PVmjB/]-Hdf.dDaf{vgCtg@N6sTYxbV0v&4)XqbR{C%(p/ X+MFQs'e;D+أ3`io-U$wG L?f2R#b+"C(6EPpc;!LUjy!1xg^k˄hx"9T*)R[#X87|Mݥr/695d%mXhs`Ur,*B']6fui	' &hCpCmL\D-d?pJ<cOtznNO6}y6M/s6iN7 -,+W@%J(h"*"͸rW\՛s"3(j=Xm"1a%AA-Nc-`3R.և+h66bCD9c!8KXHkjPr5)WiZL%nҗ{;ʻ@=VT;Q}:xLI	W
-Oܪ+0mVbjQZ֖3
2Gk<k[Ϡܵe0Nx[0B,"<%跖?& Bļ{#bewyOpЫ~4F]ݫ@	?gF}iːE|.l֫T)eS@A;EW*A`|°$\|6;)ΑuCFWv&&I$I]JP@8ڷYE{p_;>{-j4bŉl!Cyb4dI'C2= E9&ɔ*qYaO?:hQG&UiS /J
C($>nSTSP7=KPm[>|;\=n[7Hu`C	f& גD)*Z1YKP""JZ)Cz2g?15ԟ9q[nA~j8U#"J;{,Ċ鐏F8R&G{j= @E>
in^^r	CiAQIIzF;  @1A	A;nh<ѫsDJBi%ׂr+/%T2U0,ƍuYȮh\LY}aRzVS M	\SOՠ2?Ib?p<JӅz'P;.;Gy;@CYۃdU>TdӞkD#\|cZ^#OJ䐗Pkp)sMW]%MM AQ1EF~ǑRF R*⶜,/,!GKZlqĄ
)he.	x&Ǜ<Cہ6?kCU+5V|!r窳~r҅vnň!"~ℸRMEUw툈G/iFk[} >n;q vd#fsڅ̡D`<(uA]й!!W GQ@؇gSF	94d(ǁ*ݨn&riHQEDzchHG`'L+Xq@^N^y0
%0۰	~LRc%&6ڌ@Y#fC׆xGCsX01Ҟ\mOOA owЇ dUx7Eqi@9͕&8K9ct]T#3Z48.wb>N}o'b7JH4F|}yU0*,1y/[r`x )LeRS#@W~q,q4%\,hD([`5`.*u4ab5c
6DKZo[~X@HTb91 Y[FdTVN!)Ds AP]J PQ F#"E~I+#0N节!5ȥ12|=yŸgH},d0e}2	N$"fͨ&ٌ	܇,ikGc{JRoV#2D#&|&ӡ%*nlfL
,*1	-R+$"uC;\=@f%:XBDd7&rSg?IP"ZGR 'r]%	zʣYL`@
(X2;U*EZb$	,XZMR\,IeP;-n&94etK\eC\B07LZ$ ]#\pǚG={gù<Ⴞ"cn8rbzf6TbZ2A(Ma)8ur(+l#;`* @xT#N!HU;nh-ZQWۼ<]E7[7_hʐnx70JF{
5	Mh.L{t	$lb&¦XdN%4!uMLvW毩ƪ-L:b'Iwqt[X B#9VOc6
GУW)-qَ&7d֊H:RPB:r@L@5oَ\Clvg>{ODg]F!L&<{}_ZEeJhЄ [wK8^Hɒ9S&TȮ]-M	Y+*UWgzMേa{Bj54khCd/x|-g$6ޏw'hsRڒ(rb  UtiZy hC0 wCG2",SI#GH!wH/#Q|A$1]o|wrq	Uɨi xo s}A5^ي:65rۼ0+s,72ޱ`	U`5Ngjkj	TPo`FԮC+=ٮ-Ɉ܉rEzLH+z*@f,  s/+t'<xĂ!vGl$(J' ¸,4%1V$..:'@	} `ҋej(
!58mS\A5 j
х.B,"J:.@DΚ B@ jő #N#A(q\, OBME%ȠB*xd`O,zǡCJ Mp hEx^BGP
B,CG0$.bP.zbZ`	Lnp!1mg~
bn  0BmQ]#8@,n!LaJd:TmD :UbnVn$#vqňǬyT\[|B&vB8G|_NGdF(FH*LvC.ѥV1IQ da В`	~ e23zzl昉	.L	
g%5د]!J4l&٦'	4dn"3%w.7C R2(^Qo<p !qDde*1#6b[
oCa  S2	y0hd+n'^(zCc.*0*"@yG FiȐ0|0<)3p ļ63Ieg("m4m&4n@	+<R54#,#B/iF4E2/U7BDoT V'#*2	B:#@fHI%+Ss/\ͥB9uu`
 BvAvhK ,c MRW&8IpA2.'|˓EG
Vz֔ _A@#$o5u53<B$w7`V"4'N{.!JD>,9隌BVno؆R=BΔ<Ys`aαTȰ+7spp^r|gFHZ$S}QS >?8ạBT0AXu beL! evLE3 2^6h`!bJaԘ
Spq!d	Ga1Y9e6#Y.A{l[&'EDtsRT=B]gh:fLnMڠEG#*b#!``1<dGdG2&nd?IWd!ϐT/!VVL^AT.UGDu}`L|xvI	lѦ'V6j7k'zJ6rJ
9tC5~l(r]j)U@s!^	*;+#t_nN<m!ad#hqTaR.+2B@@S۬>OwRoR'~ϻ:0!fbUmRNgel52j	p5WIS	hioysҊtӘc{["$7 B"u!.!~/vk@H	촩aNUx(#t zo	?vq|сv:k`$BeaM`wdp`0 wI9!lb$-^t6`Np8Kfb@8gL {ChJbAisfmiC bA֘)R 1#+#t9`E#NM(-A7o)>7pu!C-RKn^qp)<tV7~zs
O*OAt3Ć±=j*]Zt$v+@b%_W,c斠Tt83kx R`}yVxYM!9a	n 6RzimQ*4y	ke	$X	'R`"Q(2(m`3).7j S{B%n` 6AG>t2"5B=ҡU(s Bfڼ	 e[]g*RTI`T4=N n'0	0.a@K.g{ [182	jt!yNc{czB 5MGk7(Ć9`c*ɕVITLɰ$>@nVV9 Wh;/ZM(&svkaDRGw^D,4,uy;
J΀[d2pwb/y_Az7w{2(dzњhnFt5j88/' !Z`WO((¦  1w!E9#x&P?Z=7n <ホ'q;*'Abՙb_htKuR-"B}|<Lє 42sWܗJ4X
(.'x	0Df]k)#{ymC5,khS@ytlh ƦܗT'΍.xVUs!TB͕'<+IA=ځ7DݢIV NBaDa=Ԏz4P@GpHz=! Jx !g @i93:GM(Z`!RrT5<8)݉SxU:(|Bp:Z~ߡ{:u j\We|9#[K)ކ(Kuqq5;q;ۖ(J&OI.ݥ'0o/vR`82'J΄rh!,{/	`ѳD5ٟ|ځYk
(L	^	ZKs	G>%y=t"Y\}Js[ix[J7 	ugw	\x(iDbE|'qŏ{wlAGE{LYqL>-ԇlS=\JS=QeFիXjʵׯ`ÊKV+ ,}R[}&s(NZZ-oN5*=LK az"C2ϠCOd*ܖ,RkV`imI*J.lEq"xDĕs"DX=[sWDhώs{1ieՐ?@~H5NzV41'NĿ,r>i祇Sķ2d-GY!#J0)PCN;%	UQ*J<D1)⑋8RdE̓S,TYDiH&$Y		p>CQO V @%MXk|.MH&1%)q&ڜIt&IHڟHф8^us)Lƛ-U0
0q\ҍr(q+\"vCҦuqxuDPˤܧ#Ts7T~'2^\ހ+T%`2@V$HщxSc{ZtSL4 7樣J$;ԮQE'>8c[U @O5SF8rJ`aUݤt-FekvE|e((-2	SG.r%޹itej,\g]jСgD,	kV@9(P;aՍ<DTZhԐ9\;+D"C"J/ (1#ANInCMônKk5lU  U@s@

,bS|ɭ-ILeD6?ZiB4lK%ۢ2Q&=RifsvTmTBB65#HzS- KXWy!7caAQBFx8
dJ;l
f,B%HH'ڐr@j%eH(J,@w` 7č8`7E,YwdbUJ&ȀO|5SL
7#A+=ЊEb<RD6&6J0uÄM4MhTUL`#CXDV4h)x((Y7mɫB">e^a6ˡds> |"uBtQ:6*_n|4N 0[BE*w
Nf&`O3DStCn:) DK""87H*LgmB&xRhW؈)ʦ"B'7<(zr.>V56a%Anp(z8bUy&&6:_ѹkuc@q@'9axFQ7%Jz#%1 oI`7*&sdJ̾G,g/èFⳏ/6CdzG2
kjBJf
9oH*l	ضS0!>)QsY2VqW<8X=Hr
?5hE[c%&5DYDś9IHrҨ]0q]E;vN"@`<sy[+ +KA1rc\Ah	+$`<FRFQ+5lъ&ضQbkka5s
&4
TFke
MU;V*Uy3VAZŖD^+u4b9DRJ2#ҹ
V+Nr[$(
N'RW@G!jXk'Xo|69L-p
иơtnDf?h!
DiD|'HQd
#XYC !l|+o*Vk
ZWۇ=6LIVn3Ba>*kە&H~"a/T\|-U{.D_  %%X@ uQ`T hq@	 G.Zav ;c |dXQ	os*S
ܛ4B+RRiM$+%{r7zv+$4jL!BCƢo**Ba[Puzl^=999 Dϑ"$/
n'SR<ZTG1kJU	j    {l/ #[T<;+iK;Q=x!Z<ZHhaTJ&ТyԒW	<`Keway)A5L pvp	&xd>wPՀ<VQ7L$cXE'_?{8RVfE_7`"7_6W
6{:L1Ԑi{:{R(Es#%
 R%s^W  EHXaX011M_ c&>T>g1c'4v\!v~d[RIh'4ѥ6T+?I6YmA\dsJi&VW (a	P	#8IAm7E+X͆L0y4C@	a""GEcJX:wUWUorSG0V+S7X1c41)@<XjFt`bt  sOSc0lu8Qw8'~Hz~(W([>uP 4ؖmjѕM@d	ZB
 neq?rp~gb'wH DUr^AXO{3_xq{ P	:6"g2VW+K#q&jdF<Q	D|`4<E %PB;rh%% < c51 }GU3s2c{$'~xb&6lYf&geJAI'oB <)
.9@L!Y
D6b]Rh"$'TsV]x XQX  0hy`b#&_M{	W".W_Dy@w%j9}S	(BYE<"!+%&O}iPtkXfĘd%UqYc	3{Tl)L6mZ<@(JIOC@D`zPzMJ\)@TvR	S*~7f*	~>wW1pig^)jfbB$D	 z.n%y?{9:xEwkI@˷ ٠H!P6O	YxAtb~!b  >%²|  &lYQuqG|Zs94_gP'P'W@vj?ƹx!`UZåKh*mpft	Cģ[[qT!6YтXqQ7,y%{0"r'rerj Uqb#c&p 6ái%hFXp9
jF1<:
l3u 9xxҊ&lmAԣv(DG{&tq))Q\:Tgpfw¸N%vr~\q	%x,ԑ%xz~W-6!_*V0Fsi+aXX`2}%W9`
*OA}ZaVOt7 r<rHY1-jZRP01φ6I1BS ܊KUA	g))@T0*Aw'@,wYKD++!je[1~SUbZ?q5x\a.92ٱT:b/)7uXXXXR	n%CwRd1vjQrز:jo&k5PW}
UT;ՇbFlP鐨 `'(>c\j7?4q(Wa@n妤JbBp\eJkJKא^C G	hSUbݑfcV㽉¤@,,b:9Wzc9RK`ĻŃj3|vQ;Qj{!{Z6jЧs@#jsPUk3al		
ivB 'ouSBʈ˿\8{KI¹AfxYв4K6E&~[M0Wf{jyI
'q,4/8/70@M_f JZr@Km+rbOca1Z7P|C|D<v)>;%TTĊL6Z+}HGjV@4SiP	s\ȀK[ R8 -ٴ?L@\g1+tUU&w(] ,|+[jX-0L;h"/G.&G9l/i!;l/

4;F|lQ	8kJp%raOXPai12Ff2ڡJ($Sj-Jo;Nw -ZBpbWǒځ@bIL)"^]	a6@xwǝp\CʏA[17]pwP}C>!{S"bZ8/.#{GRt%o1XJWEڝ;5%isE3%F<D{^UV;XGҚm̦^H-%m؏pn|FpoɒIgUn]Un5*MUEyVsL!E+tC'bDɟKiP#M$#47HOr]41Am!(}nOq3karv2@&&3KHqf4
QΩ+~Ј]pdI\kC,6B+J`fqb={4GM+Cn&z_/TdWC;-YAӞiGiY~Yu#XLsKVbm?sz]ED*6̩bd~V]ƃƪa!wL.^U19]Y*N*VnB)^CKQ#B3_=Զ.7N^<oEpBДMQ?G](s${;ԇjq%ztds	t֎^Br) ,Va4}M4l:PU`Acذa,*	_1!."4뚑0aBV5x!FT2rɛ79	!ވ#ȒT`n#z96kI%#ȫ>Zhlvad,˖ݻ|E6"\ذ=Ud={=\8pʙdLX_СC/ƍӾJ
qoQ  ( uo|0]}&8C7p]mۣ*Eb=ꪙ3m\ryoW-H_~}+K,YBb	S醇%htЖ&$'1HrRV6zWRH$"b4*q#!z*ěX.~
+\zꏠBɜAk@@@0K7d8+}ѫ#N<l>Oǂ3"z ܸ1B%9 @mtSN;Ս:Jλ}jBg}R`544\NZG	:vo* +e&pgUnP*|&.
QhVZBܜf҈Cb\iɡJK9+<!zZA("Z'aJ%C<ɣ;tc-@rL4ä34>P3;F=	s>\3@	uO&K9ۧh 4ؠzpU  SJ5kVJmcn5De(Vnb.ks&Z棻٫lxAuPKF!W݄P*o6LqTq%B"'^#bqQW+1!bbIjg?`"l~ǔ$z<B/sZ˭:E4}B32SN}Fξ@`+SdӇEՄ'P 9lUNPܰjP ,IR-:9jq%,YX# m@9ZTIP
\K"VP^"YIZK&kS."L,Q?hbĄX<7C`R%0'C HKw("=/f-^gfc瘞_of;jlĐLd'-R `5h J.PJA h%J`RaH5b'jTJ8L&0>#/C-0
C5!&5@D"82Eiq$GC顦5P\C+EIDb$-)FK'h1"wC ͕>4/M{C;e2-"x$\&f{`GC1H<>E3}CT@(,)p^ŐU4JGnɵPX\ Уel5ۃ,c~	'lBN	S&+!.*ath"=ĥBx$^QX*8"Pt&E"E~b+(B >Y\vlMԕ /\ ;T"0$P4V4wP?=ؑӝlV#M_O5S'ug:WSABDʻ#t)mKNnH6&45XVc@+$[sEj}EQЖ뛛cz
COnKUbL,[(']¾HکBJ ĩ!(nМem&w8rhr#m0%ݨLj@0f87M[8KJ'*tip* 5Qv:
 0c   CKpU!H]*Q$S2΃A(biHYbZybJ=^#Ga!4CT"iʣEZfG25z؎62sZ̖5sJ&!nc!GS{{rirY@WMv@`R`T6Zɦt|:iB#*r\UTpWnEC!INdÀq"T']cLO#!'CY3zGvA2>ѭC0xNVhqѻ(hŤ!EnP:oF\Sb49!VR*J:Ul!TAL#s3[rU!kҶc[+V&!0v,A<s^*oW&ڜ֜a*$$/U6N7%47&hGFXqCqKTĚz<!Q18(EX; 2"s4ѻ,
#vctR7DΘV%=cG*7ZRܫEॆP ڀx 9T(9H s{069VN8025U!"Ē
0K@0ꗧ3X:)-ka*A& )oph0S	J('	L;`Mp7ǐSy#jR
R"¯X<_KZ4`Vi1Y:

߻1@>&N`K(ÿ
nBGt<o

	@58'`(Ӝ=		Ƈx1cK#{B16	:DopkY7jJd	;	E-9"I\Q჎bABZUēC񕫲%x*ƨAWIIฤ	@X* ]20b&'mBc"k[&jbЫ
+0s(>	-A}86?	DnJ	&X𿉹XS(2ܚosĎ5;ɓ@`E0k.Ԕ	V` 5\Ȕx޸JYI,kbtXFp&iۇ+ e9tyDCYǱ"'XH̢['O3܇-#YZL:v  @r0:H-)ËD'(L5J2;2c.1SΩ [#TޘjX\2#7ۍQ 8JR3{|dklPc0ְW3-v"o[TP,4:CV?%PaLLͺPo,ޡ񒿈;1Q-s@ND=J@.A|F7$MJEqUR[FU1I)sl&d#zP,Fb:Os=/|a"W>
},
#H D	3l'H}ȑ-
dlq@	8AI)@tM@IS݆HqJ+}VO9 \8j+j/=IcZ
<6S%W[98s˜W"r{GÊWWxwQ"?uw:Dmc=dP6XߙEe{UNd8*4UY-2QR]E:aIÓ!A
ZY%5!1`AaX#4nR*	+0<+[+ aXW>z8G1!XYx=G}L}"U6a,*I'<̃
lXjLZ
8BIu#J@]M5	nٿ@×|}cR/ \zˆEj NԼ)ڒ+M#	[ˁuˉ>諾~24G~~P
>|j1V?tHD,^KSq
%AՏ孻P;ະmmյZ%UM>y]p.>e횩a1bZ QZ(rV=ŅKS5mZ1cCW{!	dL[H,j.`W|
3I"!T3;Р][*ց	%J17vXP}EYG->K>Rф~^@EI͠YP Eejt7˔Xq6rN%Հ )Y$6b2Ep[j3vɹK2|_c1&,y̾gYnwh[З8*PPK:+	XXiTE56SM;Jn<xM%-FPtRTU]]$lN)h=$c=@ hjݔX2]8[#p[ՉWO$:bvmG&Pb(	j~	&01yW1̲{_|T6x@:^	KTXyӻ`(:JG~M4I6PaULv=.$ˤ2)mPEM ?kM-<ˉvZf4Rj++-kbhK&X*憐=
L1?<JxT,	RAeX'ZyއJeb`أ%(`ѽKI6%zIY:}85a pqR GI]֥y`m>PA %Eeۅ[%H>(Rʂ>	C[4XG~Мf"8(Q:*i?oBAOX\zNiymsP%膵<&IVU#hHl5l:ihz[}GH b0RW" pm=3V8*ʥQ]B-P	#_vpopȁ^&zgikirQy[_"Pv<(J:n j:$RX? ^U~Ԡ0-\H\h;U?QqMȁN\fX	lHatR?O/񢂍D4J3ߘ +GKRk|Hz]5tW%Gȑ=mc0Ή#H?IcI=!܇ϟ!Cl?(LшBa䠠!)4p_}4'Т܁uG̘wrt<ughΚ<xt+iRdU:lFZr:Oj,Wj:j@ݧ`5nqb/.l0 0j!rJ7dyTR]ȜQ7eN|ou.[m1n*LpVKL^Qn:k[MNwTeҊ:+"ֳgj_,*׳w#gˈz1`_D~7DH4FLP,!GDΆRJ7ł"G",xUBPJӄx%w<OH,G!#FAS |r*#T>tR;|Y!UAL%[e<FP%euy'EgA>PM]uV '@wqtx. #YYZ8Ur5oRLt^uTy2!TRGD~BDGvl]"߲_
QWA,}NPV4!J-xaBCl+nGq#w)bYg#<10IeO?T%2I	U@JAE.SzVerX1ZjIjP21IO`B 32:}WbM5^^|W2TI\veY  g8=
-^+T&M,x
r6ʶg5F{_]7K!{O衄KN%&.8={/IO'2YΓ>!,OДqdN$71D\>;۵Y
B;=;T]ܤ= 3>n f9d2Σi5rh-T^-&4XN,6JWnw\cV۱Ug-ۀj	h@3EBqA	Z<l"D5bC2p/A!CB]X
"$"$GްI֎n J"@V@GKPL1)z63Ni~# a  D5 T/S,/)87
qcոh2B7*H8*T8	$ƀ%mmx֐^n{KYJ!G 9F8 !?"2"G0!P.x Eɽnd`:.Qav:0.'S"z>癍 WɊLyɦQ RF&%L5F5%$׳q" ߜLS#ZAQĔc7D؄@`Q$ۼQAZn/#aj#n)2CDP%DhnDx_*Nre)١IJ!IX0	mҏJk.6<xd)rǆ@Lsi">q#.hrzvK^ JH /K D)8fҘ&8G=NAmw֡B+
U0Ao(	Erq![GOB%jπdXtD~y!d(0ܹBd>$_hd!Q p	G`(*ʈDtѳ$+΢MtiP> ѩj)P&   2)ߡڦ7 \F4;=Isq4$Qiy;UwVlǁQ}J)4{0֣8m'\
jx0t^oWBQ,%I#n#ds(Abfm1)%Y ,6j̕Ж!5E Q5Mͽ(*/$<#3L#ĉA3TM0$G[K쵭th&lWnx~:G*0c֭DZ1$BCںM^@3Dq!#+%ZxYd6!>&v:,A
}xkl>eoK8mAJ}'kkZ1'pZM1*GA?v#˛ZSx_1Y
|<׽NܰZϋ[ۻX|dbpr\ETL:A0® bȣ!|;ء5r@x	O($ _8DU@Mu5&+K\'<r<[Py4Kn|pb;FOhS G1q(M_8ʐGxJGxI4ܲ<=8DSz|9|P$P\	<ؕ`EFXNA%A탉\,B 2xP @EeiO]DuygDE<V͓e`!ɅD"}^d	=caIxP[-^տ1^
©byX`噗~PG}&ހx[ 6%7-N_F܉iD]BМ9L\B1K@aMaU UT]dIKM
 Y j8JLY8B^Cg,#Gٌ]=W.BC ^M1&L vlxYCl +PA50bp K^4NF- 	l^94.1!K<c&XcRh1QpߏEeC
_#XN= UF\jMFM^TB&܉7sᕃ-CC\
xD$2GDjW%v:1`ŉW	APYhf#bB$踤KBċCZ,AE16܁7(!a%	Q%%RQsAXURTf=TF%# VX~gԴ[d4ғuuIG<!cA'`@avW&\+4f/V/MC<u1ڱW2-cVz`A`+%d¾Hj"D(GŊLˆ,9laڑTcgAHQC<tXXJTfMx^i`\	%ؕ2M5T e8܄)a f0BCDbxpCB^,Þ.D5fEPč"1Jƕᐸ5LKl_H%(6!0BL qXA,^QFt*O	D!2ar_k%ɒ!EdmߝO]!Ψ;E_
@.bCx䩍%wx)CM11h(DeGq&}pR`(A0WЂжD%ZɕB줋ZH8D9鞋T6D>E*jV*ēqbi]iuwrԘ^b۳mC0At
\T(\sgb%#>NT>ڈ..dxýJ5+.jdU=(jt$V}	m&TlTCӰAmǒ΢PP,QB*P0ACڑ@nqF ,8|ȐnFO A-:(@ΖitiTE"#lEUZ ffC͞&J,ȭa/бHL:,Ȇ"d%\B܅'9nB.Kt`園"(AKHB!@E#@AfY!@S X4>Y%^ZFm:ϘpLcg)a8B]AkwEb%d &j4]\'.ߊ{G~lCx!SŚ*%&H&&F Ύ2PE2VIDJ>tSPCφ!	׆*MTN|J IEA ̡Li_"Z W\۴!`
fCmMm/yqgRcR/,` Jz(iՌ"9ΊĽ:Ņ1p&¬H*%AX8%(4ՑY= 8$Y*@X2X:̧ԬI]pX@YkaF se"69&v-2g5dwt GN3򟽫|,f)4,pXH3'DWM~_,HETI<	 gÓ1O20	kV  @.XQE5$/A5`)]@U;ÌإF	yAz4vl/*29/md	*,gf&gdtA1A*&)]Zhh,"u50x	3jbPx!T!3[d&t>m%5xiͤ]Q%;u ϵ⎆>bdGvA4ܘ$RveJo0%ԯ|eqFeb&	ZSbAPjDQDPb$T-ys]pV\L=Op# E)#%a7]/"EMM4\Wg߭>7-1Tc#d(JSA1/S``DS
EzˤŖdG"n ŞM7vN2؃bd'8|6D3I&CEa44olA)XAK
<)t%≔ٮ_Ok}Yߠ,9y}/w7Y+zeރsq}]ӶTvAQӐC;nkV%s`!M\LOɨjƄEa
7D!! A`7.HQRJ}e?k&	mT |CK{$\ ܵ\gDzmOfV݆{E80%v23ȩ,Iťl@z!lv845TlQ^u0gT8T
;L r y`P ! <|  |<]@@M|<W#b)_#цoE?*_<yPr~T.G(HrVOnBlplC\jxp:]|R	b莮4q ˄L`CS xC| (>As~M[KJqo=6ta%SpQ",BVGG!:
fL3iʤf+&-1Rs&@s2Ĉ+KL\+TW\:BZ\2BULBCȵgT"w=Y c]?uO׆x.-DvGPf͂rΞEI/
*%`*]Zѝׯq=v/ƝB}/Jo02)gNK~{v AZIN
Nܧ`vٷw~ p9ӓ] P(  N !on'
_B+\1³}.IKĮѕ!"ĥH\(Ʀ)V*[	BloҮ!"ˋr!XFɅc3(ҡcd#a	{3Mэ7wKf|hLp!e^ eJ+Fa	!D-Pߣ';zLhM܈8F!W:jȃHi~CdCŰF=QDJgƬF,Ʈlsd21u}HJȮR܍!2rʡ; M<Lڑs=j÷7;X A(=aPه@
Q]\U3uYT]Ցb(Q  &WZrdWP{2Vd'dH"b}XULťlev)VXYZq#KL."}0x
o`lS8aܧP'-ㅔᘴ@D}i@e\8	aZd B.ߧny}ǎyLH	!fjt)6C
o*LVfD{/K/qʎV$HpX5.-pQܔ4<)Jt5%.'!\KX4|kTfbyh^Wd0CCS	GsF}U5(&#E/~=Hx*:0#6
TQE*!j A!GhO~Lh<mI%&\bm;YXF]:uM2
xipsR*$5}`wpqENwhrȺ6B(1yqb8 .@y `TEW0DT:F)0`y܈TOr0&N9!*l,jQX᭩h"S\1 A>0+XK*$I)a^n`"ߤuxb!9NN%.uL_G8vIǉ  5Pe Obg d  BP'4	R9$w|kt! 	}ݚLZ HJ
REFlA&E˕cA`t#KXӸ$Ku\ZBePwd |86 C8,;jL;`29bq (CƱ1@j+[ jz^U=ᆡZ]߉A=Wk|(}/(NE~mQFX0li3b{h3lB|B)\AA|_w>4&isNԅJyhlB14q!$ 	u~:brs_XmP 	3ކ#AaWoakHkIec?u԰2UK2D H+k*1kSP1Sn!_xN_9ۇ)|eZNhgή4M~Rz0@	 D`[PַzFǉ*>S  1F Ҩ K(}(tRkY'Dam}) 	rYTnq΁5%*g`{P2KXxCs<%u&\ڦufmu!A͗B+qCh3r'[;F57`yM_U98Ѓ%@cn>@aH3>ȍG9ڲe9QfQbZ)1iyJ+s:d*=j;ZӅ]Q^*Svll
R Pp8 HV(	?Bꣽ y;c@ 8$ |шf!N/ o;~nXj&j2*!$*HꐌI!BmlFD֦+^oJvJtq'xJDl2`ir§JH2/+rFgʠ
$koO`",B@ * ,.l<搾* -"#@VdVj#AFk! & (k6pJD6˕^[BE q~6:kNl𶎄#h/&#cJzxE_!@+8pa	HtOJuF
N!{!cp#!a4MJe" %pi n@C298z A N;,"8b6m<V)>2D`܆Hg1,p0jϵtbrg`Imd1tv#ʦ	d`f#;#(B" {N#!⭬a#i;K{-gADV*9fϱL<WCW"#7`XBT)BPmcDa%EO/dPF
(y+v#Ƞdlpxq'ătQ}L.GɎ]a*鈀
d*o4v@c.!9*@
eA:ị0h#<(;;gFa"@ feh1;MqG#2
b2됶"1mDA!MD\4m(բ"ZL@	/Zjs-|k!L2r3|K|ta*g9(UT10E¿lv=9"@JK#/G!
,OE#?#+d(^A'?/[J`R\:HRZ.^ZbO6AHD4DY)|ofǞȧvv_@Kba)Gg)a	rTqú78?<*jyrCP* ax!Wh5ugQ=E.k@'->8>(q==*Nk- vC?%>LL4QBU3 iQsQ[R5Qy, F7Ks 6H7dp%>OB?#AraT@,dYj{,fiR! * G#Iף.$=(t"DRÜEXqF*&B	ZQq@	6RZӃbmE(*$r.fF	"4		8)p-7)+Achghy#b0c##gƻSh;z܉>+9(7%,g=.i'L kIwRHPET%_'6`vm.>T`	*"V3r3Dh|)"G 9a	8ۼc>ЧA!v"~gB2	:ĀQaXI{FwtgR fR t0|Z% =sCooDFq(t$b$FkD5.T&;hywJFD,l_'bEc7S#G	7n8!	q
_C99p;>ݪ5Ϻ~	zG: ޡtC "4"x->tugaA#m^h4`.AOբ*n6y׊ˆ}L(,<hDȐa73 8ٮln$Vu}~𮧍@O;&T@sh獥'A|~-"= NR.F\%<aAt4]~H&\/3{yymxJ~rlXrXcAbSJo!|4h}'Oљ4F$b?&hF"V zgst.O# "Sjn\DLGRp$:H*k'|1L yu3frxmLCHr|!nLaaT8቏WPҸMۊC!<N eaw &[?S.3P,f̈z^F+n!^!G-K|Y$cn_]KN2 Q=ZV.Ⱥ K:~8W4@xb3.E?l})6&ڔp7$r!Bz= y0z:!Qaz@ۿ߃
TK[gz'*>n!  "A嵁f!EB+tABD$=B5,ǟٵADᶓCXT/8꜑ fʺL֔MKBߛqë
!Ā:2 8|=ƴQ;|!"fhձig(j@Y%*FERͷ!T%f]a.ř^Y4ѫW`0DL)Fb,g#68ڼ! $N!e=Ʈ8|[]V: {ˇdeL#T!8=h;=n'zv'aB_
yڹk[dLL*Xo]_ wCAٹunEqyzBvUqHnUѼ(|H{=vqGhh!hwWz Kx&S~Łc? f#z&}ed!դ~67GD*E)DT7jIlQg`N5:LvM1lc%Tr=$f#*!ܑM+!ީCPhx"e	Bsq%AHD?OB*E=ҏ闾"Z|} XAl	#Kjsrz0 d+I 6Y99@b:{JhY'#k!(3iA~ Ҿ}: +""dj o8DH$X	Xȑ!9H'Q~q)rK-QR祙8 N@d#(TC(8۝E\zg>>GKg׵lۺM&6ܹ89@[(d b	I'y&:ѤK>:&8xT_dBorwA ׽CXۯW̛#Yb2BKĪEػgﻷ\~Q>oLMy_|8kʤPEßK᭗GYORS]XSVnqEXw3P,|b=yŕl>xō^q">^  @.|!>t8Q\N>	eRDlBiek,d5 Mcf9%`z \5GNu]$=1{e45]CDzgiBzGQ,hNQ$ti)IbrLNU@TxXȄ5P2*5NrS') a(Xh5P (Z".6	n⎛na 8V7Yƍ	u)@>O%כV7C)hpGGy'Q^K;7);KmSD!d,>쓪,jST|V u;bM*Z5U3>"V	pZIOc_>T<Soj浤暾 URf I(b5K\',
]SG/0]z1EIS*
ʓ}wrJ0 4;*V$ @"$F;9\D})PsMO%|s>$c=l~a_o nOBkvVù:Yvf|<'LnO	BPRKLu"$V*%AR*Tw?V"WA}hyOr׸ЃoەehLs>R@DC!D--qψF(G{S  @/ bڔ-=^#
LQs:U,粆!pOHc޳A>.H`@!Dă+|zhKTqID'j}$yZA(q ^cG, p8Tczi|F0R	]+^T4IÉ&219/+Q4<\ 9؞)+JB*B d:)EFcʊ!c9!薒Cx\Y^\ˮ0MN5+9&4=	/i8qc<S
.N@&)PMS}8ܰbG5N
H4r*pV`12V('QBӅ "lPJzPE~%rqEX|٘2Y@__Z@c0-i6"0T;MUmLި4GX;SZ)6('=#"4!t	BO`İ(s	#{(pʍ@Zn`e<$Tc_i@f@]4 heqTQ[I|e)#" 475l42UƬNҡ>x]A>Ѱ$AZs
{Eg (K
	zc&Ɛ?챡܁x()L̵qb?mUCC @ihܥ487fGCƔk Ew-F F N'8Wr[f}
"aQt*}TJQde:s
wn=͢臠;~5SxXJcT7{'s.>0ZdiFpmDEC׋74݃`NX0֧5λ	a+H)p;}H	lW)|k%#X<tWٷ`^
EKM#p172:r׼s֫>*hldg_$j)`PlR (P"ruRqA̒ &AdѺ0cF^KY2tP\Dv}磌J,/[LRJaƜfQCUW 1ePib*Ї%ʎ(.ҋ# Sоũ67;M0>@*P.x;K4r%Qbw%O@lT3BYp<_$}b!0 nC&]%f5WGϢb#7VpP`L0 ޔ|/%eNp.Vz??X%iD.Fq4cwwRfqwD~GsQ*QfRx < "KD^KsQ{%w{!ia@#@/E@xMN .tEQ	tWYGi$LW&`1q7v(]!W}HPxwbSP'YlEqfZ2"3lF+Җ:'iym8	(<BzczyFYUIz[-Hua\p	P0i=T-$ac{'VDZ%Qx'qD`&7HSrXr%Dy&Gl*lXf~Bss;x!
@K6Pt~7).qPwm{P6Z6g    `
꓏UIAEĕ\ :Sz,a{7FDfgudH9e^]uE9!A134Ay_VfB;2R/BD&<#UO$:|?{%	[zp
s|VIDUG&n>XC)"i}rBkVx~w~2X/ _r!UeeJ2I"?Tzѐ\ #%h/).@	vc'P>iP|$ ep|V/:bZg1=	&}$Ex]
p9'b1a&{"%BW<''33k98IzjE!$E7%F(.0 @oZ[D[Cn$¹Ţ6##kFEO֜s^䡑fVAy׋1&;ǓΖW5Q! bs*Libnr{W"7[I0PPKbd0HaZ5{CE>@Aab}a/I(aH	9|U;ɖweQIx`F-2yHZz¤Oa$bV"T>b`[X|tEE7pĕ/.v># ^0Yq:kdqBW'jW՗lVyA;&*ғ AC&Fg@W±M <ưqS<suX>Ր}4Vs%őcdJqB%QH'	J	s4ul8+B3+1q<z6!z$Gh/h-a+cRu"B\Wj)aK(xOH3rj1f3ͻx+C:1e2~`$5I|z2pglQqA{QOD.k#p>P   F !(%u?ASBۗ!bqQc]x+ۑxe*2"> )ۛI3ዷ0baz pIƯfEr7vVZ/_j$J3P5P 7o65Mps%Ke8VQb
ꮂ@	JHJIeydvvVaC/ָ\pb5FqĴAe/t%[%$/B6[4p3 `Oվ"F#/8aУ bjq%')~d3
1%~`<뼃ˣCr7kg0d55m{h%Jbig$y8S<.[uTa
|\4C&wA&>\Vgaw99(;V/B/'`'EE1}).d:4{Nk/?jcZ*jMjs`$5hUYYuUU$"TR3J(GƓۢ(+W@˽!3̀|֗I"=k(<cRXDɣ_7I.RNϔ.H4lboǣ<dSA/IIL$SW;67ժ!/3qț!ՀvJ+3H(1):J+n	r"-~x#^A7q!a4a,&Q%ebݦ=6pTQ6 8/Ve\>Q6-˫E#LV/ MdnwّȆK~E%o-d\Zb1FKjs/*AMv|a,M#VgNB>vcEPojYw$$Zl=2L ѧIhdўRJ1 (C+~"M5)JahȢ!ЏtQ,KXqpsSnG? 76FV:Nvp+$N#&SՕ ըa5aM.@J}h~k`='y̝\_b't;kN	sALbg|QSE̶1L1$ɗA{%톈N}Ūw*wx)[a_yE.>s*#ݺLvL輎?XaM?wH|rjCp\$e  8.cNnfR&z߫!ln=b)SCB)#$<ֈW)s#ARS>	cbbaa}|ӁrGNc% FhhX F-"o7J)lqFΜΊC3 HL@(q^&1-	,xG3@2示rUe-5aGN&R=.Py`wo6INULoi-@Hh'Y"aO#^#&)7vK?ko, 0D?.{ 1jn9OB>q}
QF=~RHC8J.bߨQr#)X))=z{JRgy[TTJBݧV]~N,eZhVZ\ge[TAUO& ,YiB	u\scFY1yTµYhҥMVȉ۾IsP($W @q*YTC[r_-֬}ѥ{];wu@BHO3Ô+uX П%OB	~8IHM,A0lIF!J o$ #zF?F*ڧ8^t\+ꬫqr+aKQ6\oQL?z/tJA}L	@ʗ9rC	dM7f5zQ$%r#n DIc`|+vtIҧ-< @#/~SBTh%skCFNB0,|3W]w#GѬ%-7VGAԙP*QR4".EFޱR4G!U˕>".$Z̘ED֘1n	%8	S4K^F8Ӕ=_bk0L !knp'7) `0 ^LM須	_U!01VYq3	K:ja?8ܸv:vgGBHF^:yK#kU(Ӯf	9#n%aIJo7g_oHIrLX.:jrqsOxS;r,7!bBF%*pkWIY%s7iQnMtfr$NuK;'Շ?6ei';66z,}9ImR77$Oy5a	%(C@!dzb@<$r%\	(Eaux&6) c&~CF+0dCHc22GVtAyPA\OY0 2J7i$>9IʖC<	n2>CB!ci&=b*9cFRLf E2lܚ,j2Cj9֖t$II2\%\2x%I!\H5BNPiZH%,WHt3d4Y4AS4YLɑ&7ʧ*)H8)-Ă<"'GYSLQ!AaCp%drfǬ jBu%7#nnMaP!yfFuNP9ObSS"8q7(s#KR6N8eT<QO9f c71K`(n49d!YWI;rC3NFŪCm4y^2=f062c␘wSS<i*W'F$q|	`.
Ml.PUA,&
`1fEKPIp9Bo&S fشѰڋ4J='5An%_R9ؐp6OXCIqlnJ 2qh797{oz4(
4ymXWUR`ن}CRC-qqk001)bbP^0dȢ;;o&m+1*tOЫ47SRc!14E)/L»wx8ZWwEh+,foAБ8˛fC Љ9<2CR>DuFcߤ
isQsM33<Q`D2۬fZOOnģ()(SwLM{ap>v$4E!eTA[j|h'V$v6O0?ϗ1jb!OZFwjv{9iC j$-d5byȓޘsLwypafK#͔CTN+d@G	tI膤WM	U_	 FW</ #wȽ)gwDtѕ?Ҥ1$q3(b+LXSR^::~]u4S[%GIվVf@p^g$K7tDI2/ޗ2RBϜ퐵SӰaڈM5{# Kw37(|c3;Z^8U| H|W3I71TU;dN^Y?ƪ2?<z?/wk`}V1dvO|	P"p7a:cd;PRQjPXY6F8@DS:{8!J<*>aʮ̛ Hc8'$')'ې14y~q۹`ճ<l8*pck1)+(ȉqF;`950rc:Z.̈/9){%Y	6ɒva	-\->&rVK(Nh0r/>9ƒa1{YCڒ4@I#䯋&.zԨ3xj?02	D2k<NOQ!+\-n$93\!K*;3p0Y G{R7"#4JXGN #* <>À:2		[qL@4!	>; 
̐,W2,@AĚʱB=B	H H5C$>rOĝ@	x)+Ji~ٶa-PBv@HQȺͨ13{)`#3	ə0B0,!ӹJ r̟F"|Χ;;HDˉ Q'4{|¦dO	$1F:(8  "N@唞D8qA?ѫz遈1<xl'Kω4p+Q?EC*ю(DqnC095;Ph,	ǟ,@5S1:L˂ʈHPQ9#QǎČ M	HO9PЌT\14:ۋ	z" ر@35U]C	I09~ð/4Qb:ۋSA̔ҭhp\	#щ>qA;AR2˜VMbϼ	/@!@^5S6%& 	딙XZ2-Ft!͂pJŒbAx4Hԣ/8Il=PѹJuf%qR׍8#(	ó#*4ܒ4 K-`P8	:4 *<_}ت]|4Y=3UY%*f6J:JZ{hq@FpC~Qުh!GSt)MDCڤAW!ՑHtQwII'չd|½0όXU9@@ƍ?d E\ճu`H,\Œz	È)OSዜXVD~ϳ=]YE|\Z-J>9ڎY߮ڇ^4ؐ(R})4əƅ 5b
0`;PtMd?ݏ[_S8ˬH	zE
T5߽_B!MVы5r➎4:%FL!݈PδxD6a1⍌~u3j_Zޘ\	,ߔbс\R		w`p9E!NqW1:	\Iz[R.,&6nc7(&}!u$-La:JV$+L̿9u3ore,EL#GrPR]`LE@1O321X$MS>eT&f"D}GPU=Uѹ煘82(B߅^݀ê+&vČQs:>س1|y(pgq.D8g@Ru^lrAELUI}&N0Ո<HJ	FWC/ː
Z"BfBY3Sכ&h!d95MR_[.ԧhE^*
+Ž,5|}|4A|@I@GF66)5fv[:a4!ixF@K9'.cfe=H܏|<a6̳,-*8Դa*3n"]ln2%ڌ-x6*UYlm%\CC񹍵 bknl6e]4FfP4l-<	ܐ,Pֈ{`lxN˶kv,%/oN]FeY̹.f:	)qIB>>%>RdF}sXpaayIqcpEc;B )C\N9`!3 Pq'{k"]B q3<ÛqB	r,As+F"_(,FBy
ˏ^OAlAX1r60/I* bPY<q<JtE?a$ΒMUj$9Z>2	o>L	\Scx]uǄ`٘	!Bq`vĄ񦝝$g$3tP08	ڶ>k8&ev'kCԏȍj`C.啾p6@*_R8ݏ0D!31GCCfx7\C큌46&Og94@E01&g8/3E)=7=+!RIS{K4(+0K/zXa	xeر<A0heArWo 38hLMYVp 2!Ӎv	ZZpCRe~Fٜ]ӵ]jmQ.}dXX8̢*\j8V9gŧҜFy&:341.HAO}"G/D6T    bFqqHGِ	}qlQ Q$*t(ѢF"Mt)ӦN1V2hB%=@Eh֡
.yN8	゘L4#j/C 8 t=nd D@3^ !ͬy3Ξ?БEN`+\b(SJ0c	 UV2Sʸ?̹R 6O,އpaկ/~<$xJ K=Q '9p	/ HpS_d=W|>47JT-h#X'bM=EO| 8IԗXAV I,	'յ2`KCDfP	 LЋ)UcYg>B	U	>ѓ%P!\R#[-p'D8B]҇J]גPM7uB
!#'\bi,:#P#ijx'*'IuIVӕR@VMmM b>A]mrۭB)$ B#j4}ѕY;sB淔~ܕ55B$c&TU۰C<nK'k DOcK s[%
CC. sBqb]?v#HU^sCnܫ SU*:+*%O>1 E6~2s]"_YUU 9}Г:	W ~uqp23)r&HvcvFFP"#Mؕ_k)\adg$x>fB{eЧWeB}PocCU]P3&
q?au2%6 'ޢ	{G1mj0
h@YH"&Z܈#"8AOo׹+	QKʖPz!(üP	q~0wui E[J5DHWJU*D.LDum<Tb%&9#|$2MxGG&UQKBUE/6hP#(bќB52B22>E09t9	aAEj~BŸcX*H(" $DH_AI2$S|  Z@,bF@P83iDX*#Qysx~)+9dc&;Ỷ,P4Hl(-n>0HJp)U#il[eq'E+"ِϞ\9/&15YES(عД]	I-ӟ&yP]@1:ASԦ$1䴑(Fl
@SJ6,Գ!7Ϧ3cpN-X:E1)2 <CjZ[Q&BZL&e *eÒ:RGنO(D:F*m+dyc[SJL<JE=o-$ҳI-Pck
I5kV\'M&-IJ4m?EE
ƶH)sKQ`f<ɹbKS6L{BMG^'f$#C`_%Ta]^q$caT?DHoH?,d$`w_q)Yldʶ	'
D}(Ƹf6ObZ1լoc"frt]&KqwXQj॑̂TTi,sJbEik\j0浳sgzN:K<zAPL}^M9BV|PԺZe |T<!pt,p׳HKEd=喲O%
NONg^wyHn3Pp2Cy	ETsͬT2'Rkv#\D)Ay*pdҌgG(
79H-eɨ*@".zb̗ĉq9l%*?gctL.v4oR)HÍbZ#=)@(>\!'-}2$z(N/KF4Phw@rxn")$|Wo_:rmnxuz<SWFUg޹*Ko{߱hL0ܨ g45*>sX䳚p`})ThCM v3??IG^lOUEMrpp`IgDE}a@`Dpj}Ix!Xs={SxxJ-¤֠iY`՛h0g@	jR ~{JaR<B4h|SS,Z*aglQ	6td~%ƛa>jLY^^ŇDj؄a#2E\x{MYW#S97!!E	b,֠x(@<	'*Ad   ZG,ݒO0nQɉZ9V5
ē"6cx| ]A8#xKa(W;fQf (G$AGG"y!a7"dEؕaO8ZdHHS-dJf\IJ*Ea^CdM&D٤aRN\CldPN:;f_cRH1:eR*@[#F%G]eRjxVǆeRnEcd?eZ.eQ8M|b\cLPSڥ`t	^^#Nғ3b`$M""f6U!6ftdWd{YHRF|fuh#iux;҄(K&YF$l`QB5Ba"R& [(B,g,bq:e\<'(TubĖpgn&iƆ*~DXy>k$b'ݕ%nƘtg`~Jh !    ,
  p    6+081165-998 X p	4X4p/Y*o43W3-r8T?I]Fq7FY4Oq=mvS	S/T4
U21ji2y(z+3RKU,UR'qfAo'Mo6l[QSH2nHoP2QPPKXrOkZWhqnRGsNomjVmol + >-1
NTai3Q1S7j+tt%{P6f?PLVZSnZfnRk[prkl[egkw~^rnVrrmWoo_{n02ZUoiopIS_f|nx{ǐxǱwz035:J?aNT6ce6[^(kq'OPRilNqn^FuPuj{1_]qi_uhsԏzox75UpVrVgWm]kw^epǐ5˘QǗiˣ[Эh|^ogrutǔц貓ƧҴьԧ양ŎήʈՙӦʹΜ˴ͺ쓎潍݃ͱôȓϱϔ̦βֶ֧Ϥ٧ܵ          	H*\Ȑa>|#JHŋ3jȱǏ CIɓ(SDL˗0c<M ɳϟ@&_>H*})ΥPJJ*}C-ʪׯVKٳh'^BPdʝ[$H߿a:mzcȝ˘3&A~oj]mw&xJU-YFH#!sCEooƋJ+iˣKn*<5}O|yzZv3n=Fk FsOnzrC`h<r  +& `6ނ#6}VZ^3_U 7,(5{u
:.M4$Oe5Jd1Ru?Rw0 EPFI=!c!r@tݖd^rsY70CIrligB P-7X4wvnhk xVz痽XjY7 D
Z&=qԥ=ѳ
PA B=8-9jT*/-V[5]ɳmUX@&uen}1>ذ35ON>p9w;P)=OGO|юu[鐔,rP)CG*3DWX	 fL7\B5ݔ\FЗ2"NwPScZiT=$6Bb-c|~c6?jQH5WgW%+c@^/ =V(w氛eIot^!sm.Wp
Og5E<%&W_9S)4m20<ݵ[5p>R?՝FdM 9>dDϚ L-`dGV4=0 Ozp 9HF7@4~!+I7PtU.-s[<! c)`7V4c@0f";&ω=za#;z5LwEx<cc*e&FIw\{q
@(D8%T]"8;a\`S&Xr)y<ï85\5iN껆?~
b x"Aŧ6*6d"%*3E$A8#^6#@tM,BAC.M@a,@	W֡Ie`S"B&Z  >Ȑ!t"XhRQǕo>Z,` p0eDr8tX Gq'a@S|"jVߎcǈ@p41A'$dq9p\jM<K#&RZ`E%M";]TZ)d'KJV<pe	*Y\P=:9lgK#w{Xp.0Җd#iS}1ZؕdB(%;VV8ZETIh'
">LA EGx.b*cK宋q  \/w?~Ys&;,(t4/NpvyE2 X997Dj=K	P:]H7/0Aԅ-LeoB-ĆJxE
L#G҉+v  (PaPx3o+ œ
Wvx4PB倂Y#4^1wUA{N{W>s `;8&	NM8|yqa~N\?Mb))~(#$Ĉ:$h5r˩M;8<={UAqnH=:_[$h=p&V)VphHOu:K 0CP$N2K~$"qAg
̵=ă	Bx$˛ Ӡ/!1`bo%T`5➹ַscmC5 Pg[y?G#z ̰Sc2Tza 1C08э6Ox";3r~TA,;ac/a7棸|W_[K^P{A >!Pa)u_@s%B`,N'_[}9FJCf9"5~>P<|,32PXbhzE:z!IdB!4p  /`p	7 ~(Q?JtUDt'$zp`oU0k׀aǠ\rq%Z:0U85BP<Wu u`	2WPG<g3-5sq		0hpHM2j)z  `_QX[zx
~ȇ~x_a1Op"rNWQ$4psh.a
P }CU$XXY~
}(؊EVQ;^ BjPL
A`
cQ	Bڳoj%jp19c04vH{؇
Ň昇5C :-`X 
1~;	0 @5/ LK$z먎؇P(B^ [AjYqP4=BD&-0Ͷ?aQQ$ @B x=QwHŎE!َUpQ&!+ OVHU	0!`tz-r>)88 @T3\S8NuyWّ[z)MiUv_ @R5Av$`o
A$cҁ?q1GHY雎٘	Y1Q(U@KWe+WPXL/:{CM8Rxp9YV	IY9Y)Y\	#z@Vh_95pSsE	Z`+p@"0 /`tO|؛șU%Ju#))[W)H#4bր& S]qP\Ed:s 
bd1vcqJ(*s!]	^j+
)i(ڕ!1g&8QHV0E  pnMZ  1\EIl3
f*1	gjZZǜ"Ued,mOUus
!l njٱop ֦I/jj:b-3.	>eKVD,`t=$z7	qVr}΅"Ӡq&'j[ʭ٦3Q 30<ǅ	P*V	{y( %Ȁu pyڢiٴWcʢG{Q+	ǪzF:)Epv}0V.@  ySH*J0p
kl˦KJkKO{H+z	Ǳu01ed9^`,{bxpPpa0p A"
gZ+NkZ«Kn"z@# .oʀ`uﶧl}Ȣ[κ`u8(qa(QƇDKe븏K;k< <^iXpPAȓ"7'.0~AyAj`@]̤[d0QF&GVG"G}QKVsiFTJ
<BjLV;nv-1RD E{7ud
*v@v	|GFAYb;`@lz|	kaz=pƋ1T'_-sAk~/C<`'Jw Y*KǨ{}HK[>JyfK4R7F&З|TG\N&pgnAc(GnIk,Rεy[Νf4@~C[RƇ	BO$Ǡ
`!͎g@tl'EyIN1Fϴܼ|$ߚ;%xfUqi`EdWƢāE`
Qg([RpS7$@񗁙Т;n
Dʰ,&ͼ-]ֲkmƆ#K#ÞI1@ :&'q?F@# *&aqD+`>4XVf`-ȳC	΍;l=j] ]e̹!p
<%AJM_Θ7UCʑ]1'v S0@
aa wRѬarҪo<ڤMްThV 4<i`@	@@t@C 4ҳ$>,7
E|am(=޻S6nj
ya@ 7   ,o-ܬh_v7
B-Mc?EQA=j@A	 Χ!n`\laY4d-7rSS7	1 \u7#!QlJ`lR릘|#ĖK[K#<B-ےe
yPA	ܢFc` b
C(06 Py}$}ޜҳ~ǕniWA/J -[	6Bq 'vG6d	g?	:Sj &b+*Ԯ..jb.Ġ,51
uG:? Q/abC$sN|+rLa:Gʰg.%'ndj>oR.~lQ%n^(+ym(` ݴȐ)p
k`p@Q4*pݞ&"g֝.*YpMd!(Akpl*>=ǇHr4kfKj#^`1eىMNN=/+EˠM/yc} e^ ӌ_
Dr"S|0x>$/ $X༂C%;CfXQ#ŋ=qD&A\)$ėSl$͎5U8sGo~Xd$
?zBXx6p:O%[Xz |A:9[]y_p)1
+eaEbұOCeEF>%*a̟}5kժ:DMmImSմoo,]4ifGoc-)7/X1?L'8:n	cA{ϧ70akڗk@Aa+L.}DCN@kh{sRM؀Cqk$ʧ6tHDdHno(t0ī.zܹ& .apK0cE+bn _U9D1;\n,
Q8eLQD_46VhtRJ8dH!PJc|	%$˚ )"CJ]5Xd߳&~1`Km1
e:` Α4Ás'ZSx3^|՗8C}WQzImY}RuxUL9$9`6ْ<=y2dSV9HБgwΕiه\@3WЂ%D܈EiLt8^ލڷ]1~C
vȨI 䫱6Y4K 3KLIreKz)Bd~ǍɢG/&AGS%ƭ#G#Ҭf뀫WS`?QγFf@cɁ
i|p裗~aD(nz{-t]~@C5eMTcTjQڂS[g5Qst;N)`2HxЃ+@Pޚ^=lOam
R_.$PRd";R׵Q
ΣBCPas;p!Xl'   6dg axF=ȀB "< :聃C[a(m. 4"ICijB*SA剼SA*!|c
 ֑Q`CA;P<=°Fc X"aM~1L!2|t(:O'`+Gjj"S%zAZSN%$c'1Wu;H=B =V=r<׾]stɡf:34	l(#mv!6δs*H)Xb*@Aأ`S#.*1m2&EKYP%bK]F*dbf4g.%rEW4jֳ8)JEkTgK<5@Fvg4xAKs/_$YSՁ&
澧]W{HKHZVt[WOx1VȺ#?$ˍtx4}t G/
 lÈ-$3;JVD%;Q=HζBJhw6=<A,a{4m%8huF#%^i+{+j۬MEfZېF!r׭1wW3 pu  Buq7
.y"CWT{auT2a	4qyd4Gׯp
ٵ	ˣLH=.5}2z 3 zt3#G:Yi`V @ZpB­v+ X&f	vAqt9Wf޵bZb͟pu <NRl)il |1B/ ڛx12LȕQm@BC9\=Ⱥza[?:wHJ|!9ь(MIxbZf?'b2;i4&y1_iJoЁެ3(z0]Nnh[P&=sέJ|bژko[LE|#[\DSlYy' &&l@ k^rG7D^U%7(Ρ@-A@|L	\NyKq|ۜ?q7]v	EM셎bU%D2+B?q},#aA4i+nċ~(ZK-8IOVV?_~Կ^xvЃ«{A@0?~=;+[x;kU#?2>~зҼ[s:CS+^<H1A=5?i?ÿ+@O+j6n@$,J7A m` QR ɡP#gдWh*z=@2X:>֪<{1A8<^CۨC{A>Գ sh?y'2C`mHB}$)i"w
0~+@TH.B
&zS51!zkh|C;/7$8"SA*k:;'FX1AKz؆Dp标7MC誂  RL	TأU#U[}`Ydbt]A:aT:8ȤZ?Cf|CƓBr@plp}x-x1|4{yG~ ŝ,@G
=FP5$=LHɛ<؉\;$#"=WHa&E~hlHĐ!!2
(sI=9 MVyDEiH2Ŕ>A5$rոYHL<T^4:H_;?-#chqjtc`kTKL  XJnHN09 s$LʞLLAiLƼ@$#><F#HE]|H$봉5t!q׌y ͇nh渽Q@Nz-۹yTND̄GApE,J?h?i&<ΪLx:(ρ6,ͰA	ć'OllE0O":)P%B xARsyPԴK!UkWc}Nʫ*<Q5Q6H4	=>2/<3~H0˴OSMTs oRr}0Qt4y J\R82B%<BJRQۑE\Q1a6cS[QL7Ӡ75|"LӴi?@5TN:<UhĶmH pJ WyU؇EԕT.,RM5>0U=S\,+4NQQ[EO8$5b=\qjdTBd,z@ (RLy8u,2JVt֤ ih!dRu%L.JVH`RAЭ;s,S6WO̼U^4=$kԤϊU&H@cTVOT~%lۇ4X4 4`Ж4M(6R80V8V .fhE/ܡQdih<ͳyU~}M}L3ZX}%"mOX'BEVUL2=;[8 hu*2y@7JOX޽8JhzB]ʁHĝǡD%U(UۣxkSm3]UZ*QН_Oq:dsխ"Z+E DhQ`#V!+Ù -}^q	8|P/4MO80{,g^V %RP׭̣+Q!U^_<]9Z@3_5%FSem{ݵQPc`"4z27@_zQ葠E*/Pe}T$Mٙ" 2"@pʝCa<<EU%_zDP]Id-QηMB*^m,
SM]U[h!yUu*!,y`nc6JH@<N<J{^+c@ #dBrDUcX<8Łd_JQ~ZP來HZ-@ZVTVWXYj xԩMq(;~D~І9b.!Į0Iini^TmR=It # pgSer3{J>7	xfڣ_|j}&\˕ځb)h+[Qh.Nt4Hzʇc `03.sƠʐ,qH<cO5$ L$0iqr><gH:mgJ{AZ}v>/*WfbcWA'Em
psR3Z.6 /P Pxh&liD\\#x\{0@z#O7HnooO0ݧv_"	pѨoQ>+Uǻ\9ZiQ [Sm[hfBbz 4zحx2Dn4"!K,hn~^+# -Wy9?`%pUjXpм!Oen]ZX0ۢ}bcQEY]
7jT%m0cXсzR +ln=.fuc2t~tܟ[e	&ϗzo|)u GUsFEEŰu+YmfmVM.hD=ߩᴨk݋UBlT c"N~  7<y=7[rnN ]])FrQ(R݂H*~m[u?>-vUk}x_HR$R䪄sԽxiqG^w},osQnFoo\y{t^uoO_J'rA]͂u<x|s3ʇN{ 2Pv΁qiyC4T0c&(P?h~ZOZ	POyO|yy8+z[vpm~!Q[	w+Uݒ
 awGy  .iۇuI 5 anj'W ^f~@yW'jLG];ÏyQMVߍ$bwn_0
1{نzϟOO5'~,h 
b!L.~o7r#BJ_¯RD2Q%̘2."p#>уBt]-j(RDȟTRR+ሠ'b
3VlY~@H8PҝT]x랒Ko^t<0S{/׷yCVl1⿠.H.(G[җ;@z<Ѯ]I"~]tL"LƤH8f'oޜ ؇ޚ	ړ;xnaX%PEzo#%hw!B$5B aDDdH R\u@OXge~8k4d}fW`YXaezU#fQȏca_.RV["MHos]&Yq^i}e%^A.9Y&qjA% ?  maŝrZ_E}&=2t
24băRd
cY~O\8͊E(#hJ&+(8⎕㙌+	d,A G\C%pXyˉIqȑ{sR0 6@<4&A. SDR?H oLl&04ķ V
Q{053FD%T='cتXj?Hb4Fb{j>[#AzЁV
<618<H><)҈"^o&kvm\\kd ( 짦" P6ɃL vsSNv&:CE7	5y	8LoRH$8<F Ar'ʏDt,CHcy|bjKaH޳Nd}b7&|-ˣysvAtI'M2"6=oqk_͛,R>!<'@:  0d cuh@H\R<dx
TʁkUdw:	v<^xDIq陋QFK@a,av' jn'>El|jRַ.\bltG!$,P']ޑG1a9!&!eǀ@"cXS
"t
XPgjǈEf2etOL*{dYY2nCƲ^
"(5A^4-mk#@z`?1ix$8g2t$% B>	绎1LIq<G4>ed$B)0IphDVpxhEj<иf2,ȗ&Av$.w35IfM)i4b[+WL4!L7E(<|0^@<xXrR
'(@ Dh4"տPn~@hX:&5t'a2SQn	b-9YIRTFt<|l_449X3Eوc4KeirTkð+X>80i/  Ћ%,#@=  NjQ 2cs+LH:%
?6V?UkZ*Fx]Lz3V&)LU,m0)ޏ[r~aCvln:k4q#訄O,Qc0L@~!"%Iۇ%#HS@NHݶL+5膺+Y$.-m# wwMzK_3~KfNkc=m!q`5OcfR볛([4MB	vn	1J`D70men79h$VeC[l>6!~<Q_))Jb<&ڕ^k\ł99Hs),9gόsD[Lr6'<N7T!q~><*7(2s)F@ڊ oiH˹X}1x=RZMvm5Cي`:/|Q|uH.s2T0F2E<D(E~~rcY$r1}5yX^5]粰4AшI<7LݿhGq\^4mǫp0 ymFg0b8qi-}0oQDck p=.EO
2a	[/Nz[jSn"(;| Wpﰦx~0DWykpt $ˁy5yV5[Ö́BNd?HeB)>h/ &B` 0XCL:CK=`]W1_i8oþM)XȬ`uH>ZL͈<a*Ϋe_`[WMT)	%^B"ě" v\r̜3m֡O\I<t4~<`  8èC: 1SQrH[X}$[UPNr˼UX+D
9__PhėUa 	}Quab|גfD#|Fyy^5fƄ1 /LOAѕ	bHb]:/"[W)=q]!F?yE&	aBA(1a΄*/qZb"`dH0..ߡfŰe4!O$qdGPLDDQuC	&;S}CX|tDLv&rup |bY΁+NV(Uwx})0)0-E%)Q0^Ʃfm1Aa_(QQV#dTl66`МNrdXjD>t>@	>CRCT5:B!)ԇ?*r` d'!Ft"U)A3@(TA @\K^bE^naVdT.
Yl瓽	k DO-2TքJfXc5$BCPbP C#x`Q	q*̦>lݠAI7)X·e=՛qvgRlOAA(B괢Z~Y%µ!tD^
]dJVT.U/-b_!^MB@^ڼ^$M:ggFvPAC&G)A=䍽z oHlBI7,pW&fhqQ=YrEt}ÑΥX+5i)a@)cN(墕jQFIr}	z_a|Ap,Gr\!mefae:G7(@L
5Oތ}lAT}*:֡6#I	=C^2'HVJ!(9YhvEN BlF*٥Ҫ'F!G_Hv\1F0&5c͖YUkMF&i5v+A|7%4X@.TE},.\;5	 ,ʽ^4| 
PD1Nij^
dAX6Y]	B |A|D`ERT-FᲐ'F{#m~)Ɩ!G msnfJ<A(m(> Q!,)6DD%,)@н78$:Dغc~U ==+mQl٠z"0'
sʩvK̋LIID|z|V"az,U=޶lʩٕ`3erȮr$霷&7>NHDCǉA;IFlIh>0*TbB dh߸olej\(HWh=.4u"F~d/]oփ.ZOǬ(kӘZqL4Ȇp@z&"1Ѿqpfj-> ߌ"LMXCnYh߫
Ñ9.XQ7TA@t=zP+wBʎ%<PqYAFEgYA.q,:FK+_A.-.fKB5Tbc6ӵޜp@g  }L: )gr&5HCd%V1m?
hzP>!ɐJr.Kn/#b(G]))&AE+ʮ|`1Wb)B.1(h~xM&Bhwi7d<
=>Hb <?ulB"0-APȠfrUtrD-/x!u'e_1)z1EaίVnG> 쭪'Ah-DJB\PڔepY +`T  @p`L+s+D!K=ө2h$.Qu>Ak,]*-BbbB46(.1Ȓ4ERhܝWM_C1F3F\eg}411T́sHuBoG}ȃU'>\s8A7O`m#MNML
]^k+{xU U]B4d|lK6LGhǅIi/s3ca&xfc|Vg^L*5.962m|ir3L` PĢ_AmMUG&Tt%/_+evwy'X`7HPXl,CǦ4H[day/3$P{nĉz}1qt&spfqr;qz<@CzrD58nqCbD~=@K:$+lSB#ߏ{Ցwk(_q6썦7ʺ{J) fa: >w[.rtGVj^"B`;/g2mM#>\M3A3q+G(0L5޽w}Bȃ.  bI0
p=LdN<]:ywg+,ܮzuX2mܲ(|'%02nfEƯ̿|?N"ptfYf }c"ȃؼ.&={9kc}VwXA#X_pJx=k<0/,]
DʦB̛Txr%:tLwܽk'W^`3'u	~ ٪ǿ`JWKۥd,3֟EqvD=PuN`ApΝ:?|8_B*z,#iX4'2aTsfNOXyĕ|䩨O=@07q1>&iiJ鹚=~d`mun\sֵ{o^{ҳ~lH$l :HE$)'X^]Nrhє A2z4#^2kIѣh?xNȈ Dyr?
H`#FVz!=Ag8^|CKzޞ1U\JJj"00jEJ*iB(LjZ0)$袧x&C ȅKn BUuܑy<g/9ndEM.K$m6؎-$0b"Wr,ÏE1	@|M$9CH L>6Π,:=@PKt$H#PMiziO;%g:
X"ʪhS;Ic.dB)դG+z|Ѐu|)!Jl#^<Lx,,R+1r4 j=->0#|3?#:ď Fӯ"N!:<PJFԼ0HӉ"G/R!BbpיX%TPBR.D'J*foD%C3I`'>},X,%#&TRB!;Ұ$o4ԍ&bc&s<IbS:Q=ｑ4R@iG7UAxP"י.yU6qPDzމVH1*H$CO	+QJ+k
Gub:^j~ `I ARȽ2q?Ёymq]RfgFBW&\m#Ī:EPYN:#a4N>Ova$@'JPt
sxdgXԬ"eA"B 0Wanl@XnBGD.  fĈd X &%p`!w atdz |AkP';2ze)YCȮCjN)
uI`UE)^R\1h>)6zYE}CH7`J$Ep`|C09Ѐa0aOvŨZ1ah9pB>{$!
<͙u" F8XBAB.J!F|$܉ϢA̦(pC7|StMND"EcMlNgR4b%%R @q  xaX!5Eܲ xA^p02(@ #s-[FANbH@t͗(1%N4M0qN#DP
#1a1'Rb>dtʍ#aQ}Ɣ<BM('G")4$P,)8VZ0MeQD|c<!Y/Q	Ǽ!h@్C7,&   WHGj+DH$H04m?;& jm#@QPy$@V4t
9)PI$#n[)H7a;쎪%ܝIO<35fE4dr"Pf"DV2A)F~k_}qR,nѣ0LG%0 ƟghC[lB8#F8yE2`){m11֥	ŻqJ"|`Xil[Vz@#H#J#d[5"КVLV*)dbM' bv.حi܌e*uTeM,p&CuPd< d;  P`$\T
Ju&Q!xZ\fY
N\lN[Kqڃ&{I6ͭSc1uN\\S"N2^c)pR+a	n8W6/Eǐ	XʆmZ;z*,z,.`Lnw݇g-K0qFq$Z%~7*/VoU#c4HmL~M!LꇆEĎ̈FLv_ON/n"c/V$>V/q9T&̼T78͈(anLR&k&rd~rb0!ex6֩HB@.A

+"kdD^qt/lL5d]F@^n-_%|C5`9,J>@aV)PȦS(QΕzPff˺%̺{Zm-g'N&	&qy⎪O p&n"N4  96A)(L"ʠ&FM?.`P)Z'`,j.
h
	2Pb8 V<"̰wH'>KI"pۤkʼo+Ũ0܏QmM{z.ga)*' QX݄f$R{0(BÇ!ZE@ T@DD¼@:&PDj,I(lJH# (hnƌ06h/
&J^&
SL
8@@pk #]j.BTF.bNq$-N'P? j*֮B +)!` A%iA#{r+	TȠAF H@!Aә@FH1Andd$
Haj4*L$	:T.**oN
 NQhZn:PsvSl{#QB#PP N12xjxF!'"!a3M
Q%"/'>6Qqaf 
m8.'DEZVDZ0AI`-xL4:;!nT+)׼M7,@&LӰڂ=??I4PDL'3.4(r.4'-ϲ 5ADSbK\ni`E  0(\s,J#F"&n\T,#
  H9KH)KSMࣺ`~aO,͸Qbֲwj/GFo޵Q?}	@Oa(v&hPTބve2:3JDʰ2C7(S8A0LDhE4R U}$8Wi.
-- bvBFi+z0Qp%KiPp*0ZEru|[3p=O:Gd+A"PîNuj _/b&lq.`0aA't ""iލWb:zfAD[F.VG .i`,"LAA|2nD9=toKoh4:'i*B;P	;+`
FK C͡Zb":%Ɩ<g/"emVP^n)oE(cVp(rނ2IwB|  gnfai$R-0WsЦmG%.p0BP8@\}AMNm~V7)aU
Kyg.@b8(g
 X1Akg:Z&:]5>?Ͷfq3VP_u*$PBO.!ūU*A' 1Nb 34(Ur9Q@**>C$PH8NJj e~@N ֈi%b-$kSxŢ6J#BAg .bAZ)aY7`nc734`B@avXf!vk}Mҵ>ܢ]ȔO$Qh	@3tGp\(A*n0q&CoF4xr쬶BX e$pqjAFMA"*2<yYXfT @Y܈g1FV!	UyZվ9_	-V^͂)2Yh)@AbX'@*蘝BmPmo>tnk/};b I{$B!.
ZQ!60e Wa&(U"w%&cY/pPTЀlƈUbwcp|L!9g(a3\!тxH&AO+i[xf:CYyIk/8Ri2S.~n@8)dj	!Z$VMA#vb}w~Kx1P
[//z!U<pĄ]J4өfBU8*Co!Pu\q, "2j[f!-2 fԷe<䈄|["Vu2Jp^enhcyE.Ɓ@^\ћhr 8Fb!C@3U{tj@a{vI~>O-0kHB 1ADQaiz%29FgAbZ*<|rU`[<CMCG k
ATy
Tod{\'0.!5Y7֩  @a&9CcJ-8#<5"˓*d^-`;B^z	a"J$Ƃa:'qm.<xYm-D-4ɲkCO	_%@D	WCVi|a =.v\"S-gµ$`0  ra.E**AVzڻ^" nrJbHnpHGn|+*>mLHLǻƦ8<Na\:2nC|pOj&TY$s5$Џ?H"](8dZiQ'WOi{~g]@?&Sbf8 E|$~ FaIB0  En@oI^bXE#eSL)':߂ BBtDH&-S*2
)ArQGELHEsBƊ;u_6A9tz@mML4ϩE{3((Bq>_MM.ab}s/)ȉN0)"s7=o1E:%92a#ɣ:oǒ	zz,k~?zF#<ċ?<)؍w Qʲo:~C3\{-?kσKu2|Be+T@@`Ha+D
"1PqIruN=9@A Q@((e N#1bJyp@F2(H#R"7ÏSL9QgUAŏW_=)iZ]H[OG15V"KTAZ21:(b"uW#z52WGsU4"LSbZgSe؛ta 	cTds<p*[̝jʪr  tM	
@<9D0P]%^cA %_|
x:@΁f+Fd.8BZ@0aXV)&B#L#͊"b5*tBBYRBdS\r9\	QCuTO"ܕiV)$NlZ'31MCgHaqHa㐟C;
&vt(&:j5ӑI==r 00PZs?Bno,kحMwv=LjPP"n Z1؀
i_&kD)Xc-Ǡ0e.č`|&!*HcTU$PLdL[
"rȊгU"0.V:i)J3rȇFQ^,g%K!POe2iNe-D;Y_|cpkBfKÓ_|(MkLG8i$kg*	n`^8` OTxk_û0u
7x<MkPY3P*VT Xvۜ$qiZD!2!Auh""nx/H#j 1#WgH,HF2)\!M{[ғt'}o]/fBQ&8X0M1гe.`B(EpWà'fiL:ܠ2snĪ҉5lGjV! <jUх"
rA*n@\*D]Q F4V; apAHӠ11i鸤i؏
FETHg{@P$d2p,8Ċ=
t~2C+2~8	V|rJ>i8x&e.@EVH H5b4~XA2c7d{pjst]i  
PE Քb:ygDZs	."?x=Pԉh!s '~2MHE8id%d\&{d)%]I9Y뭔)	O)~.^Y&O #P%~h(%vB!F	#'Xz*qˎ 
k\Dc'zcd~i'cr93G% 8dwm}c0!/v8SqLBb}ׂ̱bEYx3t&b⩸#S0lBI:|PoES" EOxrHdT$x"ҒȂe$';8G,kGHaL)82ɊHc\3,PKKDCmY^1#կ6B$/_Rc U +O  ;!tXB8aWges'>g	2&5+҉Ft'6I+ʴ"NjN׼-gYZSW/(Y,0	p7P4rg+%^DAu0~BCO0Z*8Ok|oauj%JuI[Sj!T@@r
._d"|
JE},18N6E#̏X:\9:]\AIY_ʒ\큣,`R2R3Y-X^_|A"0$`ACq`%gz:`+Ypkvį.\!;C8ucE81dE;4dTX1a]6XdiJd$/]c"ZF|
yB.O|X}P| "2Rߓ<KcMˠZ~'(yX- N#O)7b  eAa"
e|?@P!t5%em#g:?01$#}05ESOu$YsYqpȣhZrL~!t!Up5L4qqcwȆmqDy1ny!f0H7r	1!.@0Te=l{+b(dQs4Gf<A'uT	+#GT`W]7q7PX%H<1}Kfфk2LaP'pYQ	4axx(cexuqqn`Gt[IT::1D	!EAU >Z@"QvmuLHu?Ia
?ȥvGQ1IHeQڣ2?XP3~?~@
4|i\ȓEivry(3x0w:'jCQj0@Rݢ\@sU;f=pBA[U3['mDZ"pFm@
R11U2Yvf!c>?A3$}9T@#tPG2)#?H[4TׂZGII7w.Fsh briRbL0; `o8d9Fn[QUmU}Eb
#A5Ii}f9p8W(	" N`tqgK(58ar>'YA4h!*aEdyi&樀r(OeEcNJ)|	8CCevUj7&l91Ӑ3_g5:Ⅻe%IhG_B2ۥ=Bqk	"s$
AUt	^u36Wsb5ɡxۨ5k8
V4V Nr Y zo
dDd-PUFTL>BlE{4m(x@pɑ?!QdC#贈r^ZHvVaGvn!wBJW0hHiwj3R?5Yxv	:[g(ԍy17H֛/w4ssDۂk	 A9pF: "M;
WfӣmLuD;1L8tY3U7a
_(R@p zՊIqM?`0)K54u|:tǨ}1e*:XO
aj, QWk2u_ƛpz0lz
^ɖ5QTZlZQêm2$<2^r1$] ˊ6sꥍ XJ%[2MvU:}u68:8A3XbH(ǋpڵԬZB3Vf+0
n@pMa谶Qr9܂9sKu뾼	qU0QpIlcdHV/)Ԥy搹T?nv>Dupɻ(m@K)&5sF%v񮌁WܦkL_؂Z㡎"+A*p@B@  dpWIж'q,u-$#+1N0{i@{/Ku	)ê"S'/	xxg<5X\̐+#qȫv84:3,VLCT!h  T+  @@r)AMı*75"OI"kIn bS1Kj/z0" 8zX!?ZKjܗ3ПE$PV
B%A
Uʅɞ4묁4Tc+dLN~L$ pQ`o@A
@̤I̡*Es"npK]a4X
eaY~xsVf<"w*	xxb{U\)z9Qj׉*@_*Q<(J0ݱQ6  °LpN
/Ӣg UӟIee PI8fF](u
jna&V{X81TIкH{B~a(P 	o@hD}b_8q#
**bк	]WAacR8 C4ap V:]ٟ?4-	-iv#F?aF4F@@0y0oe1h@1cA2Ew S*/	,Kf	YQm4WEoš2tނɜ<^ޫơa;	`кA@L:
hYp	0pn ր!z,1n=;͵*0!&{F~PPwC 	Жܜ EF*KT>'3
J`Q3\^tL(nqT	vN +Lpo NP	!͌S.'jӥ^EN%#$V
جpL (JmAdSFX0~@P|qWavTsʻ]Ӻ怃X*A xf	/TپoѺ`nAy!+l Na&ӽr#*'Rjr@`Xc>^A
0pN{73>Y~38IoϷT	R7A
FUV߹1[:UU	Э%r7AY!L1`waqrE@TA;اYe O ?t 1$B>D"Ĉ-^
H @ A^N\q4>◨NP:ى"SIBd'?Z81VEPTF0y¤!p}zJ_U;&Ou7aZ<WOv:n@^/#s\Eja
I4,WH^Lw^`DlڵmLѱϬyfmZG\r͝?]rRY<Ǐ :]BHT:7g+{!$P4HTR2b%t\r"&?Cg|Ki.Idi$><iN꫰1ŬNVd+2E.hä/C4SvjQ1Q
'h6i/94NC-z\MiY+.ݐlͳiiN<f:CE4QEet9dIpɢ.C/@L7e=@Apӎ@?RoABWX&	&'`9	EL1Sz2ДD}
)i@IʓM2ũN
8ײdκr[d/%Jd^⥢0
+/R"(E{3Ͷ[5KAHyňy9&P-m+Q_9fg^TL9N߃$Ro3 դUZzI&A@	Ӏ)Y6G11ӈz)zk5.N*\=vU} 6=YĔmc
˱+pN$\RM:Q4xe"olOdPqEfgvۏRqֹ#$=*mN(OzO	&Pkt4lre[k5Pzh1q)sݛdn*Y̲ҵ.eHKzj8G^"#g
 bZn6S@~iaBΆ7aw"<%"
V|C&G>(<R1yQHIPUP/q'
0!B`J5$C_K9,LcDP[t.q"I|bFಓV4tdL9b'Jc`䅋&pQPҙu%0Uf\uzal=^T'	4z4DfSϔgfqO4*PܻP58'ɲt&|-Da0d-eoY!>K'r^#`&/)Q"ЄSH
kj!ĥW601mS7=d`wԧ}YKukfR3)dVGI<"Xx&A>yMxDjuF:>H[K`J7aBn[Vb$xA2B(vǍk1P╇qX*K8Exn`Sδit !k}Sf wp
'Zjr-}\o	 *BPN6؊5cNaH %Yѷb/f@.aVf{XH#r=(YULP#!Cx2  K0$-iAlB"mC\@"SN c  X?8`E$@ *A	)&ET%S,4\.(xUT(%u*f8lOڶ	/fATW|bKnOQETjrH ɘJC٩
G"bN3\1ڔ56ٖ:,ֳ1JL|ǸNk [P#8~tx` (7`
 xm%Z(A}# ^[z4Q1Za2qʫr|iD-Weu	5%2 E"%<ibV>Ii-b/{5Y,?ʓ9_ebbHtK\4J0W_-[(-}h9GQz @k)SYC ؝lQ, |,~hp9Tc  ĆyD*TJ,.8i>A8GBƜpk@衻uB:|&|W0IZ'f-ƎBGE2Կ@_|)10]nTI
&
"Ɣxfaْ-i)[Mú[=ѺX _<x(7x9(h1m     K tP72(7Ђk7CP#@;(ێ U؇P4 ;~@84 7 ̋3"RPP ÿ=8y ÈW80CP(7B0=WC:#*!"cགྷ$t?]8[# D@|	:8
0:+H|N>I:#AyXA[@h@Fa|@'25S [2z} *0oBh2E 7!u0v,@*PBRHJX$#/0Ӏ"l1JH S s ( 6SP2p5,).izÔTI#`ÖdЫò2eq&Pq.'_!
ىMIvB:cA*FF/:Ɋ9Gc;È&AZ0p
:E:z$82-yc4L[kY
%)ȇk}lA8# 2B2o7Mzx })~`'\BkȂ}Ѐbެ&#H2hM ȅn   %@6䡇T{=N[*@{@< `+Ps?X/Ph[#DIGH#@9/9(@ZT|H0?8E{Ep xbA1z 
:Y\TyQZ̎iL*ȴ4 \Hz t!d1~2Jh2P`:lK3܌Rk  eC%ŀ|7标BB>
H[B4Q 7Ӄϣz I)ɐJ=P0oiQ-+RЭ8a"a:6JhZ?'uJ 3	c-\ƺ%U:wBפM2 \S!}6QͻC"%m7X Xk  `;t(X<y !w2}TBNIC%Yi*"I;8؈U*TDr2Opj:JK>40/XM{T<Yۇ3~+Z@+s>Pz0XQZQmYVVZ?'RvcۺaMvHnD+Ў9S OkHihHmN 5  ؇:   " X~E>Ezx	k@΋@ݔe*ْ}PiSz0*zYH1++p7pZO.+5ICX^_;DK(\/zF3MQ4 9rJ0EɴļgKR|F[Ba25Ԁu3G J@u:~`a~ܗل̇wz/-4\߲XTip-5܎  87@0	l` SE[EM]u=<p0P,C0S _^(>(~;;#qJP4T_9	(+R}H믌U1`˯	ϱYyֹ-8FKX^@RWjSM$;H-9hlxb)a\%&އ%LPMe~9[-U0^m Q@ޥM  sy]d@Q@Hpc<OIIȽ(W= /p>*,s)imf&ȥI<i
eD2sC_E%KiHJ ہd#ɣYRc>fǬ5hkf%d8zp)L1k,uFAta~0glդ9  \$++X/\߲ҷ} 1'va+x^ ǈv^L)i82^آVi!28#(^ ߝf.ߋ:_1J:j'`+
&@Z UA
IeCPFH_SȋCvN>Hźd־^ƿ64l 솀5^/1#l3aJx9{57J@xMy i΅о<JP}ƄMb1gڷPC0p@i.#BӨt,>N>J8?GPkoOC@Ӛ_CCCګ UF؀!j; 
Q;i0Kekf|p7sP'^ch4b|^ }  aJzvjMm}~b޴q<MPM+'wrݶ?#űx;>""&){/I֛iC&j9-=p4+8DyqxPOsOOOwLxe1AA3y>_;BY`(J8ɒ0އ0
pֶogz\uÞq_8]rp|]0EݻC2/ SP' 54-'Ǆߺ.w"C"c=QY&j"scH%M"X,=gp<{Oy?O+`jJ	PߡHQʒC:&]U\D0* 5VPyan}8:./aX~Y =~|@><8%c-+< {:?T/)spw
ԩz AD$:#I G~VɕtԂd(~,c&N<j"jcGבG<u'G@!I"SrHҧOFWA1MQ#cqz(Q"E6yʛw#EA<4D8#ؓ"Ex/Uάz?-z4ҦO:Ů_-{6ڶoέ{w`zx}uq8O|9FF1:t]izxA@Pt%g#ԊF+[yZD2RL"bL%?D2UUXuĖXd5WWdblxV\t4,bWh(40uJ=H5`I6Te^t]֤OB]WWb[b)s!c^BQgo6T: w	A$*$4\aOO${D:8((@=4M@ =E)҂H',cV%6j[(#lZIX]4Ǹv=Qa:r$!HAfً4JVPbmR>I%߂ۓd&늩gNllCsqx憎'D{;QOX+=9_N *.N vJ8ԑV$:YLz\L!eH4rckexI##@	{kP5Vd;Rf$h1ʚ1"݅Wk˭ޖ۵_ˮc:g:g祅о1{Tµs@LK*6iN2@"GޓrdS%"tW'$4X,W$z'ʉ$s!R9xKklO${e>,VvL#-fֈ/2ugVchZ7u_ngqRϮB~-^3VC(.p(cr{ctc%'=QJT,,QD'PAW ,Z.u]I#ë)#K%2H-80,Ә=3io^/j\#G/B
	1=e$-Xp:P̰Y	ı0J%X`ᳫ5`Dw\%Dcbev,sYq\!(GځDմ_)bCJy@e<Ez<dEylUժ6F2lgd#9ip}r\g7-Mb|yIL&h(IN ׄ
EiBGLĈj:UT6%::X.s@%P73rgK0187223
͠5FMZ-UL#&F1^͗A9կ&d'Ys{dg`\ ~?T7*	;^[΄?`dtNpkMA(>U2I~,EVoF:fXÒ1Хҩ0BLEO-$RVZ1ȕO鯲g&uz1\-V36N⮨=jaV#gU7`}ET7{u%:	G8w5t#to^PEby~Я*C
MI^6aFIsT1}"Z,KB"tl*LKc I 2ͽgbcD=RW˵)+n3gfLX/}q=Aѯ~}'Kߌk*BxS
>V,["C*i#%HU#`N*ڇrr"NOY~4F*TqdWЦ,#L!Rn.(j!4P<:D#ZGJFgYo:M-KRepMשLK?nwy&`):3*N'M8BQlyxP_t[
D3Qo?h8@SˍPB!FgmmKZ<(fmlmr-/H:y4U+bXof3OZEyAV/[ljY5tG 5GO!w7FRoz`܈kAW{X#AF!EC7wN86z]S<8NG*Gb#I x0Tn~S]LR(wi9?c'n0U[E#zj՘H`R}()PƬhfARԖ
iHUG].` `h_m=n)]GXLƤH1>؁*Ü坸I>mpЃ>F==dC%@/Ѓ+,BC 0  ?[уLP 7  G+P+Wz[k8B(灞	<=^OBA([vaZ@#)E$%BEdL
mΩ=hPW.`RG>TN#!,]i1Mab?Ж'p`TtmQs%dQE)#=IC_.5BFY5|C6fc(  ?t L  0=  8X  xA7B/8q7>Sl%k?n ?AC l= Gc+*|" 0 ^.<4H"H&6h\
	 & h 0,dZL!zeI=)ܑʑ;I]C=P
ƍh᣼N:HJD:@T8,dGx|̍MJd5]zb$&EP""XMŏPVC$5ɅY)[	!HI_"XP.IgPOJY,e2j6B7 @<A^XCO^ B!H% @@O& #GT*`":t,:TBA.ÃP%dn?L5>Y
"<1    =>,B 	trCC7%d7 gN!V}N 
KRค+(RQtT>etIOaFU*X.x. ]`%g<#%="LZB"di@砊UH-,R.Cb-@#ajJH&Y5%l->M=Sa &p 	&xjJj*kAM ?A; DA1tDC%(V} AHV$&  4'00X>>H 2$/ }9\ /  ;jC CLdC]C@(C@#x	C~dR EbB8+nB8CP!USet|!F%FKrIEܨZ>BNR,#]ZAaG}#Jߧ\ $PdP4ƩY=,̒(l'[XūU -# 
2.f^Ԙ	4qir>`ӸM4S?h0dуN*2d*ATn.du fp^*%j/&>X@u2$* @D
r.lk<A-ƃ<,B	  IꇾB$=@ǮT C: 0:4*E"HB:b(0gEΓUbpB4., tDkQC^Z2ǎ,YZJʦR #1[bPapJxQY(\D$~,I5#t)'م\9$[BЁ2$-d AI
Rt6rg\clbj}R`%(̀8pCw~B&L+,*?PBZ 
dGtgƙdy+`-+D(Dn:+H>䶦f*%;.7 ;DbB &0/?ЃG4AvĜCFtAzטUw8m$Y]xS0xR>pG\{jiJ%A",9JŜlla4%BLB<eEcM(E Ԋ,-YP0fA`P"#X<FlӔLe4J9Gy&EVmOi2^G5 /^j}. /
@B8(pījA܍$@5x D0TI`2$0,o*l;6V1zCf @]^Xۢ8@/8O	sn	32Qþm(83
A4/6tD9lP6sDiBl[D}%Gp?DplD"R`qLC(QI 3GC(
w l)ưn~H)#4j`fT)ۓ"TEwQuU05%BPnB2/C
7d=<5!  ^=C4/ -X/*@ X'$!+?')2D:!IF>\@<])&LC-d<)6c3G,snDdf6a/iˇie?DN8AzGqJNߕ~:batYDʕ0C3ujԊRx0iQ	:MqwwzM<n7GA.8nf5^Gh2V:HCzo ag2._ 16G ykT'n	tpP{5<9p(҃DuZZ0OsvACQ"2eJlBmO_Oxi, BpcVmcrENBCwI!X-u#mF`wx_TH7+"q5r6۬ @/hvn2)Cnjuw: tIz@: (& &XALgS},4{mDd\Ū	]ml!rD7wܹ.V1iKGʶByOƘ%]]Z`缎Ƃ Ư(DװlLթG4B7bqF9QXc\CD%g&(`
+,N:rk  f7 /CaU}sճK@,%&[ϡEEXA{oOmExܯJ@s"	?~:g`&4yɩS18PJ(H~Nyd
Y\qGQ'3ip#NvbԨO@91_ϟG?թTGPz6z
h7M"LЦUFBt"lntMx,1e">~Ǭsŏz2ɵOS mB7W	 x\ŋ^xqֽwo߿nUǑ'Grʙ*Weݕߧ?#Ϗ#btTMv߳\P
:鮀t
2!'`	' b⢝7B"Ĺ"ij	w($aĔ:*LQ"2(Qzha䘲:,-L
Syr|+K-LR\S-n-~Y=q\$x(z-G!TI)U8cSTHmnML8#U\ae#/,@ť
XQܐ{OA	i",Z$&&pd[pEEٖ'D$DIFDDԷ@7ߣb*>:J!Qj~5*,61.3tMMR9 z|  (lyI_TVMTԡFբB`9#01$łta"لpϹ(5zD8t	DȤz@IđI帣SZtiu!zZOpz|!^?I%/B0O1$zث1i&h1MFK.=x.6㟙ooIswN= WS=ZW*LPC@Y6PHh (J0"
[vBDE"U<Ғ~*وF(CDQb9FK# W
v0PN$B:(q(P2-ؕa<7/ Ԓ<7-/zMt2QLe˩Գ*1mI}*hK*P
ê(,	  91! BBܲH-J7n낉L8bA4"	}HIzAl1шx!2UVL 8"C009D^b&4lueMi:M< 1к.ӋbrHV5mF
9Vx`{h:EvCwH"a@HH$H]$1zF11JWi2tE
C,]&{4A
/_F/T$%cE42LMMun1 ܌% ^G! .\DBΉN7rj:k'r>pM!k	Jc ``BF@j	$D5	ُ&:'#(M>ʔS`"QzHtT\22w2һis<m"66 uxYτM(MOus+2$  b ?02 	ː^oje^y}S!f!>X`F.൯{}I׹U!:XPo%Hݼw?`]慹#ݐHz01G"ҐF\QVS,Pu7y՘5.DNQM%rY&?178d6bսU|廞젣;z0S?8XU.`W<T\HIH0A\$T,fiиu )e؄KN **?	&P"
M^pGl(cI 1,lG-qcNf*ܼ鲣@B^ 	p=,@ڀijJr@;!x!(H.=M9=f8ҙny
\^
o]`tG#
4ASs	u ɅFd6FwtqMp¨jP.^6bb=2{xaF0&GM`c0(C	.kJCP֒^l;`TnHAF4 `oᎺՄYo4,pKHauf75p7GC~qAz~W#O8/ *Oa#ɱysi'8?:}8,4	X@!\#d{TӨ0eH'[rӈo;VPaNvn
`lG.BDeo@bI܀-NlƁP(gN4(!P
Hθ0:n:d{hȦ7 
@ܡgF%\#i`:M8ş	¡^m#/
-	D\h78	(j	N)6B"Fa<łN'j떢ͦ(cɎxuJf(a2*QfT`.2< *a41!0!f
޸f (N{#V$Bӎף		A
>@TGeʐB%."	b%#e\-]*Db\)|CQ!SƢ_n v$!,h*)" f 	0r\(%@   4  `2f0a4(a@0g֫i}qL#U \.7 ߑ
`0	@P6bBbBdaZm'`6Ɛ;B6¡XqfM"	'z&PLA HDJG4*_b7%aT^("&8A&}>+
cɆJ)xKʌ;w7 @5
TbQgl faP *LrzrSRzC#1V.=P:r700	.b^@"$ &3YfZJ>Eo%7C9"05'6KDP7Ṇh(^-(&.)BI$Gt"DE'J"&LOrrEl&As
KR-N	C(Մ)0ܰA5BQf5SOM@O  Ft1`E6*04fTcx94	ЁGA4SR#СB%7Ё6T=0bc#lڐ2@턅 ʅB`ԡ!אSMB	G,	m~#Im$rtDGa^g~]M#N4Lմ)s:A1M9bkM{;C4"Nircp&΁L. $ PaOj M.g?hL  n8TfTK57PAӽާ:1yxa lV bFb @!3X	Y;BETGKlICe{*@b*NDb$.Ć#*rEu#LH^"JT(NlkHx)&_&_ggo'4-h;ӂx-!a:!tb#E2pPL `nF@Jd1A  a̬ \a rȭ8|6vM2VU-47ֿ/ j6J a8b % EYm
Pb
rjCj @$HDPme]B]NEt^&bd'$u%Ӷsu,(ttGFNdy^6V
5^`2xrlvF,  `Q2(yzˆ6fq#^!xl#C)wi

 ;hC(L:x	
X <Slq23YeԜ YJ7=S<:"ХaHš rQrS*t7"!,u /WLse_3bU'-tעhyD .6` S#.ԏ{c4@jvQsrN2Yr} @Ph!g
yyU+TDWbjiOx!*=
p'l:%,
SNy6m .S#jAn@b@Tu9
<1NģR#XKLIA++^HD?s`y%{t$D +Ӂ  x`h#@bN&Z#rAtͲ=O j# l Z'[7*ڢ1BURwi0y!Bf
CYz0
LU#C#:"#XzE:^Y#x4JB]^d=婭:		a r'RC(8A%UIt.fxab(bzŇ.(\Mv7f^  m =+gfQw_Fk_6V !/,{P!` PS7GVܣSWb@Wy F~{7bZ-*:
JtA:{ڨ꾜](n2Z
ɲ;NBQl^TˤZ_Z\2z&BLaY'&YHZL7LbNjFTˊa8`	+(SahF <)?,#E9hO}b	~q}V2˫x'~e/GaQ	ǟ&H|C{\Vs3 sV
N*=hO鶺7r-vC`V^b!^"1L)wihw:1sO~KMz0$7f8Pn@c%LPCO\  `pHgС@Q%cϭ+)2{ SZ54܇jݾaj#~Ԯ@ #mZl\;A»srEJ4$!UW	&1,o^ks)8g2L)v9[&iӥvzOINdsD p˴`G FcR_Q Fķħy)>]|<T!۟fiܡ˿`=nW ai!\Z  q@f֬+IE,'N`ɂRKDQ9zĢ#%:y	
& 5qXW@:r$С2"	.0'Mrӧ#a5QW#5uF>۩Vz8]#IWv[i2bNnIoMˉl9Lϩ9S2c䩳ϝ1)Mtg]Sdrq!:zY!Z~dC f^μУKNzسknt;v$Fq=W[re/w#BŊyB˗ (^$fxtO:\.W<ĆM$rEMHE"yF-T1#N؄)	u#(#E4$MT
uI\XIHeMW]nMÏ4[^%e_~u)n	'1W)4v&dq2"-&y	&Zj@<xn=ĳ<p.jꩨ4Z*Ūi*+QŇ
}b?U8rџ
&8{nD"vBB!J!NJ-d[R'8,"G0FtT9لC`\qϏ>T(L LE5J(SbՉv[bZ<V$-8Vr#I$|d	V#L~4XD2
"&Z5>u8샇1CAUp?g5)+I%N	EV2|W_ԒWgfETXVBDN@-3].aq/JKC7]8oUG	S+ATP8F:UO#J=DB\",=)Q=v1"!w\\2*3Dپ4'adoTa~fh\j-MF#5|#n])@]6c+[0HpUx >*Oall:7tB@+^
EQBr(j1
ps)H[:B2R!ǌP4ň1Ge<ƥ	PQd'PS~I<b	T#G4E"2G#D"5?ǖ,˘%.ӦS	,4`&'Ƅ erV4I;aW kĀ2LЃ(ܬ{L
k.t!@{Pqb,$.0ִ-/XT@saO;B=B^+<4JDC"325V"I)~'`P ~$o'O^-DbHFϭt0/FI#1tE4ǠYҔJNfec<ImK,'P%'"	>E߰/AУAeMZ݆4SrAL (4rX*'M㣊sG#A<2DNg椥
W\n	c#dt
LP".5nub-$7j
Sb:j@I)5!"*QŞLIP((!zcG~)f3x2@Z832NUU.MfN9X+H N>dəB~l7HBE	)m;8bY!G|3%\A\UE}(I+tO5'=|G,B;V1,PP"CLtbC9jG
WBe-|
Iy
{lCg)ŖpV"ǬM*=)dyIs¿)0^ DirBT[(nӠuO6Ci{a
oi1ߐc  9wBОQ_ϲ'@Rc"s\Ŕua	VE䑸v[2FElY<9&Jd,ȧ{$
H][ y$REo$`)ɾ2^1ɩ2^asBbb@KM ̦_Y893S `"0\j_nh>x#Pubޜ&RA(g'b͕ȷ-P"xy;tFx7֊,5aSp=AF>rJ-9MBШ<4G3Of1erU v5%+ߋ{]ļ+'5mo.qJ!6=p64 !: `ȞBFlxec?Ƭf-Fh$sBݑ04wcB"M"pIT/PRF .s&
GfSoc\l\@<rwgIAAJI&?xzAiI8?@4r{cqkw|PWpkPWh`7)tƔQ6lP3
2Q87 ^b{~k9ׂVa)!P5dg``S&
//nR"LPR3;JPFWf]AyNyABCH=L`[	-qZǠDTӐzX%A_ČDiEUHo2&D2'ڸ	*@   	  5+@ 0t,X_ul(g2
9ub
{v3Y	v!c=!
0.~w<;ڢ":Pp0)qXZ,eHuU .=ag'4S%`zY⌞3q^cB3GhQXJ?~]pWU{U1G|8RX	
 `Pj0`Ȅ  X62u#}ZGuVku^g VY~ІRuw
BPWFA;e3A*Qsq)#C9uyA#pNE'PWa%fVCET<E>;ERY4ec'G4xdy 0~ٛd@R6cwhp}}O1~	 0D#6Io9a;qly0XBY!Nx2XNwף=fJsRu<󛽙VH2Q~N!oĜqruAS('ॢobr_ IƘUހrVsjpw܀*!t`JwPa i.	kVuЏPbhTJXЇlm:;q27xB uX02Z-b 3	rǤ*h3]OQf]$H>$FPa]Ez!hh)SɄ{g
iķzѦPuAs$Fz   
u`v0td ܀ pZekO9T੊I,!b EС:f.Ӈb	`1R"zEª-aЫ&A	/ʺ!1!PyHRO:	*S{~A&|Wi"g3NQU])НqsԱ5j0pWvC	: C	F	^b ,Ta5;뀩Xu
 R&KY%km2Kjn-9w˳~0*c&T!nq8Jcד[O[OpOP10p$`[<"
R*qp{]T_2ӠD%:)Cxx3
U
BGz i`@teC6v	`+ӡ(k*`0-{C.)=ƈU99k!,
(r` d<)DQUDCpS85+z$2qs{x8
g.h~L8`ԙhx+]Z'iE\z{ql "
X	_v  0|[ /  7ҡ
V07( 
E\Щжvtm9jEBl	FĶjEiFZAݜT/`˒S^͚Me`8Pvog=ӤOƠWmN!?'qXpKrW[ts.],	@ F{tָq	p
r(`,MðxkTo0@ #$_54#w
lE\*CZĹ0Z@a!BxznNOћ֚U`gv$@$2H@rVǕa30eعTm¶Ϙ,U7GUg
`X#INQ		0|)6<ױ`0 @B F@k 3)`	0
=XR-Ev;%c8
\`-;:wC~dJ#!QRwm3 c7ڲ8JE2w+M>P\24$5'zg=H	AZ@|3}iwrso#arbIPV05!d i6*ŝB`0^0Mʟ*P1y
~=^]9W CLHL@	+~/6o#G)CRڵ>e| j.̡jp)ag( I5c7c륇a
캌|@	C%	ŠP(<kٖCgpw5
h'DhX`CG)ӠԖ=PG#Q~P^$E}9Y 4!PL::C-B<xIfe`pDףΌͬ|eo8b=>R+oLؼsgЁ}TT)'Q{ㅍ־ėLÍ<M(vc`_,40ya  p
}Bz)	# 
pԽhAV]
|Â>Nן@@-ceF;H-頸##f"l&rZ}HD#Q~|-5Rpxk~9lUv"@Nf"]dк`nQĮK	MPuEnKx$ALG 	$JcE5nG!E 5=hHܔe ,goϟ 0JM~hI찎[DL6ə*$/Yn+VT8f.B˘\qΥ
/xaEݹ\|
.]'recWЪb,0g]r'Dr.h(D5i(a9y|%DXdGɣGMjMLG	p~@_/źY|wHMkrR鎠@}\T#k$}Mʏ#N>p;a}kNtP@NA
?
+о)$
g}F \#ekfx1e`*?{  X6獡^,e2 '}pv(Q$T܇wVj9rƱ-k,h"KиBXl4{Q41ͮ"WmZF%Mҁ5'tenR-<)<ոp6.
}ӣ߾$8CS@9#E㧑HZK5d?~C%xӥW@ѝ^F)J)Tds `,#x⑦
*J,}g)B ؑU T -*Ex9C}g Hf`ExA@;'ګGs0&Ub4+6L30r+\ZDq	$	]&U'&2WC	'kk9RojT{tpD|=	!#z1qP\q#?Z@}
%AW{?$tB}WwOS\ςv>aG'Y~,`H|ŔcR  F*  |Aj,(qxHad+@J.ѳ{F\4.IS2/ (Yj3ʈ;8{`hH6hlY*prģ8	zD"|,p#ꑈ;:X(+`XëL#PD&: hD.Q(_׻A7}P@\됇p'zhd''4h/q
|?4j+IC)ӍA&-idRMCLFA"%JC)Ǐz"U`\좊C~f\Åǘ@2c)LmDbL,6 	lC	⹈8qqÏy9}H=4dtixn!g="4# `c$dlԉFԎ $
ki =B>}P9i<l&,ʲ} k&gu_]*Q	  6I4hϧ$#D( Ԉ-攋fdX0*xq-Kcžx!N]v/g4n2a`!
 f9&$HF+F*!2np)*SX69H89MHcq#@"RqI1I}:!2H]C%O$	'ub  Ja	`Y_qf \1v	G
z$3	 @H7|p5V30
eEdA/-e+H
Elk3ی 1d*YZa4p[~{014tbqg<c7\s	rA'ݎL,[w|DtH#0z͏|L'x˩ܕ_]Pwا6 w`J"J6"%&6I4 8رDPč{& ,?80o$B6DE;jH$CS#0mbAU2h7Ko+lY'ت/oѡj4ܩViaYB?'άs)DS,
+'G@'">]iȗH܅ݭzY
ޅ:. R%k(Xpe]frkYh@P9r=(z/2eOX0|-X\e(!jQq2iɜvf@.Co!;g	_tlxeg4IG+
 +s\T#ٺ=u;WkQ3A&lާ7$7tp{pM-?v]"o"Ȩ%8	PMJȂ7~p	v`\+'q@T+0U8-K.آ')ʈ438Zȭj3wh[3QH0S4`	qz= 3(L	.hIpX jәj/Fhiq)عu۹A=~yOҀbQXxze?HMt0C/@x/@ }A"`x@z0 8!<|(n,2Ί<A),22-P͋$M;tsAȘ5k%ݺPQxZ@"(PHY=&
dY9C@2|Fh/i/6t#b/x>iK5y5tCzU
aB28cXHLI񂧰*4!yE$aPqK
*0 X/w@,2,}aQx@n"?(Sp A-] Q8M8w:.%Z8(XK1HBP`~G욎'&l9wXtXǁڜB9(#5BD8ÁAxi C>zHȤ9H%%k;qXJN0Yb؇2[ӈz
zl /4Ʌnw[7ūȢ1!c\'M͋ƌ-O\kxˍ89~@Gp(aȜ&=|P* 䣹(L[#M4QBf$6y))띨;M6xXL*@N$݈Z@Kؤ\Up+s( Ȫsp4 9M+ 1F!` <F,K~XF0hK!X S!1FT%ڈ+ܽx )kє"3&0yx/CÍ(<]qQ$9+NWUR	=$V@S -؇M	: 5Jhqr@aIqP#͈v-y8e{ \',1Ȉ!F}Kq 3k!\}JՋZٸHݳ;B'p|GǁԝD46jD(d)_`$>H4;3Y+l%-
2,zH	NXWdȀ8IꄁA$[J06D"S, n
eX`!0<+-;8ptX-pLOGňѡ}ً@4]q((xd`MÛ
PĈ54,Z)p6z@QqA1*VZ;͐dXNT醄iW~6I-_)|2nvI[k *([\,x DSx5JHt ``*\\om* !P',N]XF@VJTוU'鈜'5!FApX]1͙18*ϔ͈9MClHLL+HD0k%ZCٴ_V/٤KhB=ޞ7P	[\Vz   WΑ!&%4)E@ CHPlSRTOo*@QO:5U9~K,"歀tbw'>
PGUwЧ(}:/U(L$zD&f]9BIň.^мUZ3Z:5eޘOH}cr78u8UCZeH	JЂXDq@*4LJ5 `ŉV#I4 `reƞQ ^G_Ƹag2A7;Խ+L'''hOS5gu"^vKU-SP'1C؏M#չ34czM/zYO#Vê57pKl1Y wKx+Mdi +myt _h䜆qIj	a d%*y7oz!XXuS8Oah،P\a0HfQً&@By̾ⱞ՘P$xTQUfD(lԉZ4/#M;깎^]HBͧY֞}p ik*0aqPS1` d0 Vk  p 2WP	MrXr ᦑ2gf@Va]N6T/sTEeԶK!G%I~&"ԹTmƛށtC3̴y{nZ+HSQӴyzHZ!MMV%1*abis(!ȟKy tYēk冃yh	pŷm	y0̠PoNJ:QO桅{axے㢅]K?G]vTNAb!Pz/'.Uo~0㙊>2u|v^xuRSlqbɶcTqhnJ8Ē65P֧|;~+9x@@kH,k&5 0׏1.І Z$*Rp@s{wUp~g',pۅ<ppo a&xҍ^8\(N'|(pWkҔQ@xX+&v>nǶy镄z;^gQv>{:&_ieX -q)@ϒbR{gvUt(W1_E^P  ~$X,
2a1^*HIF`#HXb+Wflɂkt9+VM`8YW`ˉ́=Bi:K}B5	$HP+xI֬N9yJiI:%ذ&M'iXHM6y4$YNI1B4MR'Du$	Q̑iYs$ɍ>k̨Z 	5sqd6ۜHqqwbHRn×9ҧS@	 y7/o9'=@x0ߦ,:&3Fwlg\*DBdMTA4@ !.!QW(M.]:9tE,:]QK-S,:DFuMTOTQUY5UAq5,feHO&VRp5Wjw]a^`a)*T"I6f!eI@tf'-=ٚks>M\GnVz@= *X5 ݽ]%>iuf#3AJC	M`#;Fш"bŨȏ;4NM8xTDD,Gcj4eTGOU	ZrU^}UPoa%3ASe
p $/V`ᎹI3ZIFZ6-&)9kyh6im֛jjjn)tntz5I3G
ps_a'aԩ(+r   C0| 0x=x1czY3^;@d%-@X\)n,N@.GhOGV˿Nn$A:&,;X5@˕ș@&uQ_f<PZ=`ჅgΈ0̪h㣯L~]4t'qAIw@qWCl=42T(a1Jt	G%3uЍ`N>mø,qEt$b`A@%Sj\Iq(B'ݒXXh_JZ(¤,zKJi,b:E=ʓﰔ,)#A\P
4i&4L4#	c5I\Q;	іv4=MS7dR  Fl *ST- 6`G t  P @.!~ bYù0B =4~Br;HvK+ZpqH^*"?	GN8LzB{9HWS&KQeMR3а<ea0idL2͠
G"""Q6D"o)di2 n<ʡL؀Hd2#)*>J1|	Bކ4\k8ŨnI6S!+䇆M!)щPC$"<BqnF*AF!}DRZt [S
,x!R-O'e
kBSӗȎ `Z``R2 ^]PP_cLz4H#fnAI!R)nBY  U#,=, i@o xq2("֠z, 2^d̶N2eW]qHJDtvV%/Y"Kv"WG?j`0!-('Pz^ea(p1'7)Ι
N~T%<xh.1I(@"eݙV:C"jn&5و⓺xqsUX*`s	l
5Rk@S遏lk!h0*AⱋZ@۰.,ŉ8BNk]W qc'aRrd;xe)r %' ,?"\@1dt[GlTVH)9Ia-hh+Ym
pd9hQ93ŭnKkH^i#gά7n8K	8 R@>l"p0.yZBxY	}da0C<(QB
J(aLl}Q	 S¯.>!uz.ȻDG2Q+g?)ϾqA#{	LV@#4Ytn~|ewZиR1.YBʙr;Խ|\}?xtofR6
F(`gN1VEҰp69ڞ	"L& mU3!0,a N習 68qKw
i: U\u~hpĈ[yӼ$Eؽ،%5NO蓍9)@E;`ᝂ TĤCĕŒm]I	i@C J!B^HEh#Hl\wiʣ Mam\Rè(xp9<@ 4&d&H%$
=@UDM4B A<10)@)mBa%ń-[.@XmXDۍ
M@`K\mN\[pؿȄS09[iq,8u)hh[zYc]X<]#7V[loBaLJL#<Ȟe $F|\Nv-M%2xR&_f$Q/-% =$1 [m)C?|l~>5 z|@$X (DAjDKB fرO-P"~":EɄ̓1:$-I셵=YT	e[zNTY<)酕Ė@4,\EAÇ).WcʙOqU>-Ac$Loa 
 /4݊FΦtyـ	&M<v"PaX*<:t$/(	Ƀ(Jq%DY_1b
BZ	İ.V
/pH-H#e 4mg%@Y%,\cW\4A@=@m  @ &?\O8$уu!cFeN<\udd ͇YoxCi~BCB9Pn_
X(0@M&9)L}xڤ2	'xE/=}J~Gnl'uR
D;HhX`(݃~^7"AQxSW,(gWɐIY^MhQą_E\2\g8VT(`L#B^=F֨nk?V׋Muay`ըJV+txߛ@
l}C>БM>aBqX>B|UD' l)b\*xCg,>`Vg	SҢICZ^Œ`¸qV<(\^tz̙WYMa"Y$hq#hdlfq _m\4\7L}=A
-yCENwC })&R/у0
5li7|4$L|'XΈ)ƠM%*`|"&t%,_S)STe^
ŨR(]((0.JEE4cEeub0Ђ|̙	d dq<nf0A$'>(`CiV+`0Q@& 8A}
, >Wi@wA)s^4TaDt'S~DU:-Kz|`0&ţS=q20	CÜlFȮ^t 2A76_l4yF"I¤<R.qE</:=`&Zk fNu7\=,x@/-InB.(/8%
2!ȨPb`@w9AX xB@ C.. G0䚝)'@K؏[0VL(eeVZ,=%V=5Xs3j9RAF"X,md\q#HЃ YcF#4ml\2N]mhC0\CW#G|z%v(	`#֒C^1it){ȃ0<唈V@l~;@y0L+-lBiE^.\X=5 ZIЂͦ	Fd5CGY(d6#JI-4J9oӺ6;
@'1A|r(I'3īAӱz&%@/-۰ Cݠ]	DK" :G~)d@V';'2xX :HFD#p,>.SW-`pȄְX<s1@PTنoDbAXcdH:5=x>-Cz38@sspմdkxa`7KE28GS$^=p?\B^D;$Lkj埪L424N?SH:Le03%E5tO(_.D"h$(#gDe0Bjk%Ϯ{[s7[O=~~73n0+iPBSaB@d{i70@BAG1v\bq!&?y  :tkAGppplS-'U6_,'-ߋ:alO.u]#,ꥻ0g7EVhbvg5`8Ҹtj@H++Ku9]]7āo{Y  A/xRT`C!d+==s`PZJu%ERC_RJ2ܱm8,CVo?Q4E.eF#%鎒iŻ'\Dř`9"Zw`e4ue4B0l;Í& 4\q7{1@PBA:})@I/د@< f_ި9/<"N&Djs]@򌏎J)lDn;AMl3Ƹ򴩮X3.[p3G 6ΑW@;:;o(`>*^z*A"x -i^2> '6=MrLU /
aB6t|l<9A=p*(aЋ&-9ħfL2-,FL+WfN@ΊuEТ'N)XNdU*TVuN=WfUTñU:q+aV:i	/ޯTG~IBj/&vUH2{w'uѴ!t(,h%į$ԳMϦّ݈!,۶$DbJ6pۈh)<uJNW~:۹wG&w`h{C|ٷwBz;Ց~&s} l ʋc  `~
0e~@&x>*fuY/xtaGbYJ`'0%*rK.eJ!QGYkH !.'˼e&&y,5iHZ̳5q(D;M5DA$zjPi$:FUn8EzRKfUU .
) Jh\uu}N)
 £/)oymR!E Var!  
ְaSB!#cI!凘+^X^F^%Gdȁe2Zjȹ+2Kh.h'T'2-{(:>l2%3.!9"mRQ0DHF?ukt(B!aԬY]yA p$׮^{W&|(b? t|0WQkT& Lqq~^bzF{5jt8/(~!zRH'DHۢI(b֚	G:#,Q8LH.,7ONy͇4:*I؀cDSv4ג4Bňg8:}H;نoh?(!4@=Bʰn  "`gd(8pM	?P9Ѓ p7- ",\:~rh^:J:D/5t,r\D,qJ|!	-#%JtqǏ	Ɠn9y-*fQ&1gBҁ(O&)uB*qB?/1- a `ҖJ[ޒ!(Yb#Z?B2X5}p`%Vs<X%  F"C1"ȉG=+#KBꜰ:=Nݒ֑.^aH$Z,yǃB@X1PxS?ǅBbMa']OB$ŽN\a$Mzȏ5_4NzJBo`͔e|DEf? KbDa k|Qzt	Ң\J||BL$N~E	eѹ`jOҥâU{RDb4;Xe!⠢WܒQq)@tt-(Gɬ,1#=2Hѩ!*j$Q,T-^)3Ť#-4i*?RF=p? b@G]>Q 0؀+ykd ƷֆBopBzѝN\Ҥ{(2,QbzcBDYn-gƅbmE1iL
DT.4ccpQ-hjI:4I`᷏nԄ2-Ն){j*&o]&@1@4ھ64|ổ 4+E pl^;,[Cـ-1Q^BN%k˃I{騈J0+%$+1NL)y
1mB<Xb4=,!!c[
1rdD4JPV."X}iBz::I
g #dȡ~EՁ9ŜyC	>._JҲa{3p%3w;x8Cܥx|^"疈( uPL}3)lm9Vb?2f`I
2+nM̖:&p(svCc)y7ݐM9B	nX*f#4pwRU.
 8|ܣFt1݅h:% KV0$)D7dAvn]ck/*JNyCji3EѡwB/'HI:."Iag([4ܡȜ`7Œ9zil1ceҨHˎ|!_܉II'ʗ<.?qS0ӆahIr'<Dă
a(*¨Bp$BA,`0a6 h;4b/
))\ORgHIH.˴jJ4#ng,`(p0hLdN:w8OF&czd4pf
82
,DiKf*zƓ
vC~̍bnZI* ݊n#<C%+:$ CkNVT``<Jx`f6V(R/b!!b_f0f+®u(<lH.笂K-ڄNJV4*1
yYg
4C)c/	ii8a.bbƆ
Abm
!?  BAe\E! `'T(i&U/jPHhΡĆq`I jՆdzJ
/CKK@ .dK!@k!6~.2 ) GO7͸<imNzJ"c@`a'$K1&hRR$!'!T!6n(/BR!Z%CӎbB5gAFRm(krR+jPP)%Jք1x.D,+8D`9Jj!bhD)<)nʺp
5HI!AľN  B! £V%12r[BVŨAAZ.>Ƀ#"5=	vjd'dD,(0'}twA\	0Go0!A(o02r-/
pL*GƵH29Odl+,!|R%ȳ$쮍}gΥ45U0? ` @@SCBX1"	@Rk(A`   =BB8` !C 1,J4(5/EAmsu`+a:b(7Ą؊4mV?d<⍞TրI;P!3=0$jHLۧ~AMOc<W
<.
@ /hCp&Y"O[TXQWH\FA__- @CAR @E)R46QZxAU	rP+Qpt`@Zg,fdeb3uj+%XG&hdej$+!TQ6E8̔L!a\;.&VQ%*#$<R1[aЊYC_M#8bW!FA$u(|	$rA>P!PDeDTԯJDݡtQ'Bu/`h-btpG9sg"wg14
j⍊I u<NsFaڨzQPl.!S N!+abTTYN!nƆ#A
 oƊ, Dp=c}HT]T,('[xzGig$(S`X9EKw:	#oLnx9y
BjaT!$)=9eڳLPƵ!dHaq fZ &p"-#,a-C!(aX#FZAlp0\q"E[&E7(bl:quj6"\O2
wbXK	5搚0Q{~'hFbEhx-%L{[JhlMq60!!
!&hM!:Pr@[1r/l 0?V Vr?X#<$ v;^15F\IL*nI'Hea
`Aa2+Nf`hŔTcLw{WIuMMHa3PT!z;
xTzuMYœ2  neu2Ȩלs`?qf N3=X0"@s?6U^MwHT':Vq)8+܁apUj}1Y3!Phgzgl	 ]JL\}!	S1  @=b1׃?X& A $ `ZnCfpQfG
~xA̭a13'(&t	.4F9F}Tĳ6ZXN+X~g[	<!T*!Zz:eZj"x~Ldç#{u !A"r!RRu` !!!Z0m .A 6!!Vڙ@trZdB=!9EGatz$(R'GJZ.+<ր),C98	X0nn3N		jA,m#4ɑ,\~Ը6\Z!F<Bq_=b%5
ҖNy<ߦ`>/G0#P"Aa=sٹ<ԾEĠ<K8ap~yeHZf=HNzؖՍ~'hWJg(Yi1+nRReDFankg6!A! x!..N"%
X<ߠe=C	?!&1b|Ś
@!Ue](}tX1eMa֜q45YUvhqwliKJOg{hAt7=ѱ@óV588>b]!J4` ab"<ٜa"7PQ^,*
֣£~~ 4`kܣ`"B<busFiaGd:mƽ:ilǊW	!VPP =5}KgXx! e +ӎޅxHϠĉ+ZѢ<7"1ʕ,[ti.?k0Yz2^+A}C"RB@ ` TVORL4(6,]={0h^7pYt#j`v:ŷ/]'J9F,'puaPjt\':w~gMk23DNQ"GNJjаcC&84Ӑ&?>I6+
6B)(ӻ#}:##VZ7@~dN7ZC=2LpDlҟDRf4@d30~b"T ņ+*&,QE4Ӎ&$UYĔV$XWX8oLX\
j[bbbN4`n&m)OmfmBrzٛhA8rM!"z2P#b#u騤^uѡGzN*E0GT>\T!?(5=3e2κ_&ԣQBGn-h`<dhX5Yd	0܌%#J߆D 7RKXKNMB$Tϗn6Ǐ(Wffqæ(dI',nr FeNf蠝(kBhoggNL(l%Aq0Aϱ=4?\)U3IyWMz*+=#`R¢CUO[!%,^T臆Pޝ<oSӐxEtU/4H>,e 	C	ߒT"ƲDO"3@H|@_)0[ha@L1^z]Lu^"Xſ9x32곘	xVhj4m\1WPI?jm^׭~*P" 	>IL`pGV`D#q4=I  .rEAA?B0:k"	QD!z ]0Yv"w^$d.YH-DxKx8{nƽq,"3ۼv$,'?ԠPl"?hA0bQv1*j@Ut=
aPVFO)!C"@I3 N0z􊖼V.k`HBʃP"<T	уs.Ií*k%N|"2EC.T&ᕉ1CmqNlB#!7olGy&E%4A1N"iADcEUZyaTq@\5*T5%*"dMr?i7Kāc&@@S(LЕԱo6 @ $k@0/a]djKM(b;~D%KojUfp]MdA7.*K8EZe>#k%,8ƾH#ӑd'*LT{LG)PDq( mǘ%A/@"G7zA}3mcC@	F \j:w:@  857h4 @@:!rmPW>q[Ii
^gs{yadɲDx9gn)L$
i}pl*վzid$p?v:}OڪAYǼA:   5xP/dmB9fT4'cCa"=Hҋ(bҰ̖T"=4`F%կbݕs1b׵nWt''ى5/$p?	S|k(↡":["1ufDV${>Dpqlcl]PPE(~dA?`Et08*l{ q;W0M Zd,5Bf1bwG/J31c~Yc,c dO^<zOcЍz%M=;guh8R~<hMĖel!@	2MrC@C;1QDO<f9Z6?ȱo"xA+azLڦo%EV]=	:f=p2"Lǩ3>z4>EQr0|1#EX/"T:QvTU{bT00	 [D   yQT cw	S_d0`؋}pѿb<!},Ñ?`u]@|1]["x)&Y"yEyq>UrFY>'Y=PEs4PK*5*kz=ss'/po+!0CMV!RV0P vP	d!5vGU  5rS[=q  7nc!f5"oqO7>ƣ1Y7&4ptAX`O3y}B=vaF<C(z/3)pzȑqW NZA1U7cP8>wB ֗78 B]q C950~rVVX+eT)0@a7/q͂:
iD`gPP[x~aE}Ng&WgqpChYkqNT2'>%vbPb1Jzա4Q5<|KAm\ "oAX9r݀$!`?Y /  I A` !ǈGRDY"NhWt <sWT`EVy((q$|/aq;ЉQrXZE*ucs!9*+Uq91:"7妋37W@b"oE@/v0
OH:OX@H	$d^x7[$'27bV`]8iq&tNs7%9b'&	jeY8ib	ŜDYUHHGc-2v
`7h@U+A7/pu҆	)P_R_w
!e`PL2a
C_rA.Kb]Q	P h-F;s%HG1ӜhW1qiD:pW؀yp7㝤VbyqY%&zXQ0cSc1V0	;)Bf! OBdu?=P>)Z(T*4+q	i5 %.qC-<ohtchv8`(YFOP*62q=W:y{i1߉va@hb4Y)Nz0siu2A
Ͳ		ZR#
7	vj)T	    &0hp:|C"~*ĪhA*N&'N7`cEw2O3P9ؗGJH}%4@4-7Ў$4*U 
XJxz KQt2~ A6B`y(n,ȂeuBI!*h$hTtPW&ɤ(b>Ds[җ2kF5˞b$
8zP ),Fz
?	1T y++73gT@'4kP!r| Cq˽ ǐ	96i"  ϲrp Bh5JD+0g8F1+qWxi)5[7Sa됔=MbɁk'ߺHKz^䊽	K:C P=q6Nv {i#k0e"PڽML:vs	f@,
2(`R	1I]F+:G7Pd	K~yqYPyrqBzjJ-,Es[   JC Y.%'*!B3.CĹm6gAL: ,,s 1;PEdx%\7sppx]=|Ώ{ɐҊOkJl$,'(N(*`?rK 9p
`6|@!:@T Hi ?#}g_|e p[7`D|7l;X`<gE^d1ek#ΉRb~'Wrz^4PcɮGc	*E=D/Qf9!f?7lp/MҍPp:p*ePJܰܲ-5A`
7A]ND`q`qHOlb$CX[r{WՁ|ka-&AH#\A1k.,{ٴQ5˾L@9lg,BMϦd/QBE)~\Pi #B 409*@ڙqNIxgiucw9&[Bo܈ϧ+H?1MHtLW!	[?&[(P`:ʼ,ǾU`>k`p"#-@oݐqLWو#blο@Ϳ`';ے{jW1G}T#^,r94ݚZڟRn	βd[?@1Pp0I N8GNRX8|/AJ[҃!^,;Ə_jZ;ij	&<@[ny۲H`(z\<IE1g<-ⷒscg!g2+g춼	=O
K<A\(4:-@UӛeڦS.^ۗ2{yѳHa4 |H9!
^HZ<N>s,/26h 
gnۀ$p%t	ZU[$3:Rf 9Y7R:RլUy>}Tz;ܖL(XXH>k#T@AA
W0c|-+u}^Mpj-a
)u8X <9EwH` !KNj ?':`:~ lIFMqeaF,"J%G0!58m&M`-!-D=zB1UԨf)UU~ExXeZM=.f"܇p֤xfԽ([` $ߛYdʕ-_l^uhd]櫘;vxa'3
|޹୫$UQy5VB.r/ΎKh
wH*2&&/aB^p){R#9z⊞1!j꛲`ZÍ,L 
aB*nA#|cL6,Q *1Gw䑬7SJ(ˢD}eࡏ倛.8XMQƔ脳tZOCDDسI@sϒ<ԎA(GCJ)*jNǢxǊ'SIcU6bpHe  @,̎x}By2Yee*zc(Y,pg~6e YC[u9~n݁xC薞	(!Qe(7	c!Q(:߻<}2&ވ<Iő؉ioE'#HB䑫lIpKB(+gҪ@'gE8{.;Ul$,yj2kxk! ^ĥjj|6	`T"IݣBLn@47j0zd֔DҌ-u{D	~+3DJ_	~ﻅ^<{saz>D˽G?ɣұӱѡ+Iy~m4(84˚ @1qs}8B,p2<:{헥46OBzpnxmlG,vu{m:2@@qB_\ ℥Xo"@N0c0%Q	NC(iB!$ꢒMY*"=nDm4324Z=F-X^e
~A%Cuы8%7(U6F  AERi`jڮ"vRn.MP n\&ȑ
JP?#P(BaO6	$g	*QJ̅XRֲ-np"MY`?DXBdȅ5Ǭ"H" Ta/VӚ	`0*d\aQDz!`- F[1DgR,XDqYM:~[$d{Xp"4ɐ,% D=رAeNbBٷLQ*?J[S2"|,4	0<#z+XA.7h @,LX$O*=L|F#	V XB!CTC$-@y	YH-Q 7xJoh2r!hAD0%4vcFqd2M2eKɣk| Ѐ*4\4
э%P`:jZC,iaf&V4K,Hfp"K `N7ڊj~rKS}R2PDOeibQDgsХH!Ie	[29`%~YqJl0)47\są# PJfwU,#D,Pc@+/gBc+pG\zs{5Jb		I#%APlx4n}%샎0?1^fѣhFɂ/ k|:%)ELWAC[̀<H|ˤM>@E-+=anAbc=%|>m#LH<WRJu%n\z7yGA=J}"4L	3dZ܈#4 `FE}e|]#2BHbqab6beC"3l1ȸ
mN}>g!챡y)?ۜN-\򼕓B ~%Ks8ysc\cj6dY#pA<}w28lY>QhCs`bBs+c$  Dv=,u8,}t&2pCi1K<
+"?y7Ϗj02}z;q?X<tD>ȸO}&Ic֦^	M:c#Ɠq^Ҥ{ksDv9qSC99h|پi_xm8IM

zRAm:"p7L 'q@C˨pD;n##rY9o`78FzuHa-ɵ#õ9{B
![ %(,cȓMˏ[![#у9̠["9+:  kո;~PD~ٌC բkp n#c/ D
Xx3AtP*d(\()\3:˜04)BP)4F:$S$rM(@`D0A܇cm&eCfYD _RP4бH'P\N$	kZ$ۤq&lr<jX/9 0̍W$kGhҀ1&L  Xnl4C(QFHoI`(Jj;"(IE$9 XGM'~ΣC:P<ȜRHUl3,k	5	+X6ODY]$i(* 13H-x)qLx-ҐSy0yμGEnH7=q4~0K<-#G<.EłHAAE?L6,\!Z/HHӹ9t
Ǻ90$67/8:awH	QJ A93oDCh2d:pAk y`	58M0ˈ{@ͭM$	N2t:JBȈ(N꤫Bm6ĕ5$5qfdS8@yx|4Py шLq"R!b0J`'$S Jӫ`J~((0D(cp,O8<}˯64QC,Jek0;NB.0÷d3 s*	^a9G~:0"(Aqc28,2)6E )D׀J̖q@G(MNGǩ	)BH܈GEL	s :EQ(wR&LPf,) ccrr8w@AMR!iU,Vՠ}@JfaAeSؔMڔJ.~DNtP~KueZNKJWȂ}ENO|H}(2b4PsXpT77i萹-Bz@>O20C	8]$]/~"TN
LSڏ,Up\wYveхNHڲ8ձLR%aL@$SAEC.'a%J 8n@ z ;%}Ϊzl,ӓ0.r}q$ AJ`ZvMZХQΤ_%WN0ԘCC  y;f͌ *zyZU1%k%E( pd_ +QƔV)u;0|@n FX`Пxͻvr
-6cMI0D3)l*аb4#py  'aM8\IōnUIAnEXLN' zhoz7|M0^|8~V9cje^ֈl6LP88+7v Eۄ=xը9`e˸Mxl(dMfg8`]48 &UоPw
spYKdh]>\[W_>ca)8~Bֱ Q)< xbPCY?ՕT1W@l矾WvK8ۚӬaIz S  9AY~t^
4[`kXnY^g()4 mT8*}].K(1ǈ[~;x?Uhuȍܯ[k>H|%uyP|P ]H\sÄprݲHupipxP_*;0|-knK3:޹al`ȠDP 3MD\+f>cvm,~ (@܇i8okS@v:k~ @:ܥcpIAcXSBDCD	z8B&]Ō&phk.CoVM챰C9#ΌBخXF[=<D.`r|"[XJLp쟒="Sp2MUq΍x~%oHwH-^kC 4 $k$Qǖ3Hnp	3$/OcIX'åzP{&+P1wޜb^oY°C=k$&DڢHdf*(8_@;gLDi8#&z_#Lq%#Ep2RA岸F  %nLHB]o3h>mcY?ɠ꽑:8&5hP0 p~uXqO=z\ {&{')7+/f8Q#bYs<6ni{ +x3F= 5  ɇ{7H^qrAjGfy 6w2x7X ST7w|Lw/7.߁pɐW$)$ɇ u8尿e<'yQx4m`S  ᓇs͝9:\po9xFxgad'uOy =P@p ?"W8pÜY6t7."ir0$9S%k !!=YB(q"[Q̘C?~UŒ&O,nS~
0$8,8=% @>;MI(G`A<b+v,ٲW%o8+w.ݺv+~hEy, :(=RR`e-Sx1@;􄣛NAYκXG^M/{:C@~#Quqߚ>-|1OCK=.I7EOs f
ôߝΚ|ϯ?QZ=@|>"2!әy  s 5a%b"`a9q7hƏ,bE9bD#cmCZba?c/k<'!	tU7VaILC]\T"`HW&V"t8sYg`jP1
:]1&CƏaeCN@yXEDiWƏ-6PbHyQ]Q!@@ EC*%!C  ÒM`EZ!Лp^UI Avb+WV> pْ[cA_0lG);`%ψJVT)!VS E)MuAr2rѪb`o %! HEEܐNOQJ֏u<V°M2LV%4VO7tuNcc&zY`aXd.5%1^rw=2jk1B n[j5dnp W29ࠡtuAz JYv{xֻF@ͻIJWhTֵu.wiYEMӒeu\VxF%)EO:~ƊǏ-L-+S=P9p2CNBCCdz$>*q850Kh0= zBB4J\Ʋ*+@!f0GpC- )$W8WM*  INpCD841 0!Bb8QٲЀ7<O$V1cw94:'	hY(k
&f`
_=*,7h')%/y_ڏw0C4/I@ 	L&A"p #8*ryH	=P:J>zw$Ǵ΃J % @|@,o (PU* K%DR$hEexN1 EA  <Lԇ!IDaI(#A5 "#F}l@=)QU <e;!-4/.Z(EQ %{ yb-*Bz\ECTP= FR_AFT"c8V/),gƍ[`GcbpC  / ET"؇"vJaB '-y
d"MWTK>%{OA  z4`\e i%ELl30	.(;c /[-?"nP%8T',=v5?(Bq4rUpňI	@.`NV
:`RAGL/|ƄC	!! 	k%b^Lbʇƒ. $|REf_ vbIG53~+TPc"A7YQ`Ox8@_役 S h>NQGUTn/͡BOBoPlU9{F8 OB^Xdt\15 |n`2`G
ġik(j0Jl3;Ji8B>yPo5Ya آfIoDPǼM$ ւ>pqz
rp
HO,Mf8ăÞ%~0R+TpE4@@#TC
hMPqԑo)Lb{O*^
a\;ɂI(D K||Y%l[	ӘuI08i ?`^xq-|ѓ׀ ^DV0(
^{ 9C֤0=Ojbb ) ~뢩2Oq!"@dIqy/&l )lp PW^mFa@" k@=,UA k>^: ],(@aX
< EjyM<`J5\\,>L\ȃpe
R(@	0<E> 
DV8Y3 R4A~1D٣  (ZNP9A^d&?L^D~7t_^ >\ S\hX]9ȃ`9Cו GaY CZ{x O@(I<[ >\@XĒoE>) 3(%XpC(	B`ha?C\M="IGP+ _$nG@:~tGIwT,
]W
B8|cVQ7ٚbC:Z85=~tC]l^$fHoy"b-Ʉ_p5 46J	8
 \N` t)9 BdL
B*]<d	ۑ"Gt< 8dY]"p`]\î(CK&EX8]XT(JYAϽޙ2IhP]X[PW=ԃ6Ґ!e`7 kp=($RXQKЃb[D%E=@[en^BeEo Y͐^dNhC
X.E|IYPB!<HHwTe҅eÄhڲ  C>@VRBh:| @Т쭞WfbTt {`J%zFsC#WXd( 9Xd^. :hQ8d^C\,C`
tDA2 7\x,&):M	{ g]4z)(|cT`Bqm&VT\:IeR:,g]B^L<?bAP 89$4bET"YSzV,BA/ib[&]Fu^^eUFf`c)Vo)@b9a	pd,k^(!Vh^LC(e{裶9ItKٯ\ve&aCt")X 꾢%f]`<)0VEREo=
2l ]f9QF}MbQ%0*^`R*<j "iĕ_+ZVl . ,*XB2!*^\E%TGt4BTeY^DWIq$	= C\ޡ|?-!<16JLGQw.m>J߾pԍ9$W]0G݆gm-Bȃ)XdECG5AR \,B,zP9Brh@;["HZ
*?\ C`N>h^NUC*>t@]YLU eE C(۶ dpUn^aH4d 
B2cJƘLQQ@ê^ElI^o
cKY(h"۾0C4 \`NWY,BXõEsQ)!19W	 ƋQHCN	T/UiJlaH/pĚ{&L1޶g^fJ9 pV"z&JN4pIh[oRL
ɈcAdzBK[..>5h! dn$.IaXf0K>;{,)<2@6 0ra4ԑ4B8 JSYlVI%U`_
kOs]/^l$ HMiE&=%5B._S\B.؁'sErE/(oЮZ2^hN("1dTz>puں.N-0'YG TLSؘ󹠃6T>DUNN]WX_E\UdI,^NM[tXZpN.#uX`|4tJㄝ[]RTbLZ
,Sؙ{_nрÔ@q5]*D7I`B%₏W T7ujFY'
1~G0@(P4Yl4vtXgE15Vh)t6EWX`­"]$CDfˬ~qC  pNUBA.ȃ:jwuc94{LEm_nY]cHsߊ+qXp)(_faÊ j߅qgKqv>4B!$lf{`|pˇf0E )t@ rx/B,͸y 
|<CZsDs .wUylTJB_\@f=~\ЄZhXP=QW4uw~49dp-'ס$(Q4p\eDP&=h%!C]A:h4Xp:Y\NezI@"jkhu]
 =5@$E,dU&=XG*fr:>7}pɮENptWa+"`rXp[ 'pf޶~|lP@q=U X9M9{^SEiE&ۍRCIMQTE?L4əEQ<	PCM: 
Lq4L@F`_|ڏ]ÛEUD-AXl1dtTYL)0&$@-=g)ҟ?_ɦ6 .ti=,6u!XD [\ڣ>j X?>:BB:E$ZT>@[1_E>́84~xر2rnK8dLfRi`ٔy\1I(cE>CLuc@T`A"aC|	!F*J9, q#ĳ&%!5`F6hD(/ &Epx:hQG&UiSOD *~,@'tߢ%xt 5PeTs'OGz(aP=*^{eY2 +"=5 u/-&(72qkׯaǖ=vmF 5.DsPn@P.U-
2Twn$:	<>3񶿮 ASXD442+LP%ڇ:&;E


"@N,6ƫ(J  9o d[z<s*2zsxLIၧ7Dc/S1Gt2(F t!*9	h8: 瘁8 +Qz@P n`gs)Tq6L%rS@yԔ'@&++%[qUxS8j! RO,  ~#W1 9!豀Ј^. 8W_&B9M_{ciԼcy7Jmd<` n &!@zN!v\̐}i루},(LG .4 =ǩspƙI9[W_fS `EUMNڃa`>z!`O%&* ʚCqjm$j2+ܡ#NkrxS(JIZgk'k4NYA/ f1dBFL<Yok 9S2e g 0؝!eрn9%
aϐ"0{%(SN9 A	EouF*f%bpCq,9h_D!SfĻ5 2ĸdsKb?G@q xj`C TFɍ?d⏋X4,b8G42hd-kDÍ.LBYLfabh !<0%5eOa^xlȐ+)iZh  X%e4!eC	T 8F$u lE UXHƢAp yHSa
4>3zD+=nHe.v_a,D޲5Hs(0X2p@5*{ D
QhNA(FL%hgkNaXAuD0<xE(^3P /D@Ƚ}ZU"14P fA1f7iGZ*3qqH&|a)䙐ٝrPR#)ӂh#(5A hA/ DH~<pC
GOāCQQ4!:w6ѥvšB& 
\4@9&CAN$0K/Ե6ЁvT5H?x)Xш	P'hj(U?iPJJ}x)_7-$|ёyRQD7 yjnip7η/fc(u@ɢ	e>*ʃJ48E6r ,@Â;PfUJ\ؘW]!B
샠uKa]c&ъyS NRq+(xHitt ]°k5SϫƁL!MZ	c5y0 %k%JaNdiT X.BF 7BBKfCT[ɣ ȅ
W6PY=OJ7rB)j;bd5/l' l(& Ea\jmo(gR<o<cBa.,By7(Ba:&0MytlH#Gv$}sX*D uԬF@QLf(oJ@(,e
&BM
=.k,񠌕HyR8`S/H@AFaw	"@ѡc[4dP0rȨ-AAc:/xAQE* ۨ=d"; C/>&V)"kw=Į#,B9PD:SȦ/4GD 2#2X|oCU =%,ZxݫV.n;(3Q*a{}HIA8V
'xRx8xq>IUHvio_zaaN7 (B̦E1a6' J)
L Po#*"7 o	U aa冢N:(.x YK'(2 ͒ؐa!H		kR/6  x ؀ @J@Fa /	0ZNM(  4EG 8@2&Yrp)ar&_ 0{L.P6R*(+~l̂B40BB'E`]LqayHAʢtH(Ё	#c,m&)i ΦKM1Q\fP`e@&ۄ"=aQJcO*Xì &\M؜#СIol J>~u,BB(6Ae~L!Ym0hM/2`F!VE6#=2	}10L" x{8>`FҞ- evP䱾)"Ll@@a*b6  (P"7~& q# jb2׬..f ,!#mI@))(q(% V
<q"D5-NL4Q>DbH5"+Ρghx r@.a;y+9s9>e@(})%"s"b#o'3=Փu*p0SD). 7-<(hFԀ+{(#'4b @aG	5*!0aeg<'TBb@C#"6~t0@0{s09:8M^NA^hF!@Vt6@ B5fbEځ`$*/qHLM[05sAD؍6FAb%J14  Avx*LaLL)UbdDs(@΁M+C2mb;`Q聿Hl=j
RX:Fz6g!~bCr(e[Kq Էg~z Nf\Pm5^ /~G^*.(!4:^LWXf6Ƨ7%-5aU
$IIʴBʢ 6(`#,
pc0Dv/R#Tv~dwaAb)Zl>?V5)J1!K.j嶐HLk?#  [fbP	gI dnW܌X2k,[c?=UaUV:gqA~T"q!Bwޘ6&Z5BF/tq7b!6>

{$kcj0Rc'$)wWb @g! -joy<{OHu0.0ɰ(S|A*"*އo{""bi7$IꁞW6tc/kc @8ÏJv	s%m-r u("PW)>w4*]B E]c[a8V)DX)bP1bqtcaj.8gH%d6VBA lQ'QRa!pR*sJV@_`(-@9['QNZĵUT]k&< sp_yuX5âGe򎗕9LpPaczcXfgyL^fCx  s7yZ@9I ▝@dم
NQ`8)a_{}bd`*٢I7C9:" E5AOzbNAQY:*hmz,@F؎/-͡za21z(:l@2x:"YBt"H0`  ثAHz_`׺( Ȉ"#S2X
 {6;(#w4'`3dČ?[b '6jS,``TEyIctطa:и)@+{:SbLەC :]$H/ە)a1;"2z{7vJ۫ wI+V3B@ρkѹq7 !    ,p67 D    GGG                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@
JѣH*]ʴӓ *Ӏ1H@*UZ ,cEJgm5%\rօwn^vmk +N ! +   ,l                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                H*\ȰÇ#JH ;{
    "name": "d3-dependency-wheel",
    "version": "1.1.0",
    "description": "Dependency Wheel",
    "main": "js/d3.dependencyWheel.js",
    "repository": {
        "type": "git",
        "url": "git+https://github.com/fzaninotto/DependencyWheel.git"
    },
    "license": "MIT",
    "bugs": {
        "url": "https://github.com/fzaninotto/DependencyWheel/issues"
    },
    "homepage": "https://github.com/fzaninotto/DependencyWheel#readme"
}
{
    "_readme": [
        "This file locks the dependencies of your project to a known state",
        "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file"
    ],
    "hash": "6fb62b8098949cfb3ac0c4695a70dc7e",
    "packages": [
        {
            "name": "athari/yalinqo",
            "version": "dev-master",
            "source": {
                "type": "git",
                "url": "https://github.com/Athari/YaLinqo.git",
                "reference": "6b3247909e037f218cca624c561d8a47ceeed6d2"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/Athari/YaLinqo/zipball/6b3247909e037f218cca624c561d8a47ceeed6d2",
                "reference": "6b3247909e037f218cca624c561d8a47ceeed6d2",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3"
            },
            "type": "library",
            "autoload": {
                "files": [
                    "YaLinqo/Linq.php"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "Simplified BSD"
            ],
            "authors": [
                {
                    "name": "Alexander Prokhorov"
                }
            ],
            "description": "YaLinqo, a LINQ-to-objects library for PHP",
            "homepage": "https://github.com/Athari/YaLinqo",
            "keywords": [
                "linq",
                "linqo",
                "query",
                "statistic"
            ],
            "time": "2013-05-08 12:59:02"
        },
        {
            "name": "doctrine/annotations",
            "version": "v1.1.2",
            "source": {
                "type": "git",
                "url": "https://github.com/doctrine/annotations.git",
                "reference": "40db0c96985aab2822edbc4848b3bd2429e02670"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/doctrine/annotations/zipball/40db0c96985aab2822edbc4848b3bd2429e02670",
                "reference": "40db0c96985aab2822edbc4848b3bd2429e02670",
                "shasum": ""
            },
            "require": {
                "doctrine/lexer": "1.*",
                "php": ">=5.3.2"
            },
            "require-dev": {
                "doctrine/cache": "1.*"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.0.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Doctrine\\Common\\Annotations\\": "lib/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Jonathan Wage",
                    "email": "jonwage@gmail.com",
                    "homepage": "http://www.jwage.com/"
                },
                {
                    "name": "Guilherme Blanco",
                    "email": "guilhermeblanco@gmail.com",
                    "homepage": "http://www.instaclick.com"
                },
                {
                    "name": "Roman Borschel",
                    "email": "roman@code-factory.org"
                },
                {
                    "name": "Benjamin Eberlei",
                    "email": "kontakt@beberlei.de"
                },
                {
                    "name": "Johannes Schmitt",
                    "email": "schmittjoh@gmail.com",
                    "homepage": "http://jmsyst.com",
                    "role": "Developer of wrapped JMSSerializerBundle"
                }
            ],
            "description": "Docblock Annotations Parser",
            "homepage": "http://www.doctrine-project.org",
            "keywords": [
                "annotations",
                "docblock",
                "parser"
            ],
            "time": "2013-06-16 21:33:03"
        },
        {
            "name": "doctrine/cache",
            "version": "v1.2.0",
            "source": {
                "type": "git",
                "url": "https://github.com/doctrine/cache.git",
                "reference": "d0e4447707a064a5814b18cb0dcc2f24185f6179"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/doctrine/cache/zipball/d0e4447707a064a5814b18cb0dcc2f24185f6179",
                "reference": "d0e4447707a064a5814b18cb0dcc2f24185f6179",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.2"
            },
            "conflict": {
                "doctrine/common": ">2.2,<2.4"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.0.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Doctrine\\Common\\Cache\\": "lib/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Jonathan Wage",
                    "email": "jonwage@gmail.com",
                    "homepage": "http://www.jwage.com/"
                },
                {
                    "name": "Guilherme Blanco",
                    "email": "guilhermeblanco@gmail.com",
                    "homepage": "http://www.instaclick.com"
                },
                {
                    "name": "Roman Borschel",
                    "email": "roman@code-factory.org"
                },
                {
                    "name": "Benjamin Eberlei",
                    "email": "kontakt@beberlei.de"
                },
                {
                    "name": "Johannes Schmitt",
                    "email": "schmittjoh@gmail.com",
                    "homepage": "http://jmsyst.com",
                    "role": "Developer of wrapped JMSSerializerBundle"
                }
            ],
            "description": "Caching library offering an object-oriented API for many cache backends",
            "homepage": "http://www.doctrine-project.org",
            "keywords": [
                "cache",
                "caching"
            ],
            "time": "2013-09-26 19:23:25"
        },
        {
            "name": "doctrine/collections",
            "version": "v1.1",
            "source": {
                "type": "git",
                "url": "https://github.com/doctrine/collections.git",
                "reference": "560f29c39cfcfbcd210e5d549d993a39d898b04b"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/doctrine/collections/zipball/560f29c39cfcfbcd210e5d549d993a39d898b04b",
                "reference": "560f29c39cfcfbcd210e5d549d993a39d898b04b",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.2"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.1.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Doctrine\\Common\\Collections\\": "lib/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Jonathan Wage",
                    "email": "jonwage@gmail.com",
                    "homepage": "http://www.jwage.com/"
                },
                {
                    "name": "Guilherme Blanco",
                    "email": "guilhermeblanco@gmail.com",
                    "homepage": "http://www.instaclick.com"
                },
                {
                    "name": "Roman Borschel",
                    "email": "roman@code-factory.org"
                },
                {
                    "name": "Benjamin Eberlei",
                    "email": "kontakt@beberlei.de"
                },
                {
                    "name": "Johannes Schmitt",
                    "email": "schmittjoh@gmail.com",
                    "homepage": "http://jmsyst.com",
                    "role": "Developer of wrapped JMSSerializerBundle"
                }
            ],
            "description": "Collections Abstraction library",
            "homepage": "http://www.doctrine-project.org",
            "keywords": [
                "array",
                "collections",
                "iterator"
            ],
            "time": "2013-03-07 12:15:54"
        },
        {
            "name": "doctrine/common",
            "version": "v2.4.1",
            "source": {
                "type": "git",
                "url": "https://github.com/doctrine/common.git",
                "reference": "ceb18cf9b0230f3ea208b6238130fd415abda0a7"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/doctrine/common/zipball/ceb18cf9b0230f3ea208b6238130fd415abda0a7",
                "reference": "ceb18cf9b0230f3ea208b6238130fd415abda0a7",
                "shasum": ""
            },
            "require": {
                "doctrine/annotations": "1.*",
                "doctrine/cache": "1.*",
                "doctrine/collections": "1.*",
                "doctrine/inflector": "1.*",
                "doctrine/lexer": "1.*",
                "php": ">=5.3.2"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "2.4.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Doctrine\\Common\\": "lib/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Jonathan Wage",
                    "email": "jonwage@gmail.com",
                    "homepage": "http://www.jwage.com/"
                },
                {
                    "name": "Guilherme Blanco",
                    "email": "guilhermeblanco@gmail.com",
                    "homepage": "http://www.instaclick.com"
                },
                {
                    "name": "Roman Borschel",
                    "email": "roman@code-factory.org"
                },
                {
                    "name": "Benjamin Eberlei",
                    "email": "kontakt@beberlei.de"
                },
                {
                    "name": "Johannes Schmitt",
                    "email": "schmittjoh@gmail.com",
                    "homepage": "http://jmsyst.com",
                    "role": "Developer of wrapped JMSSerializerBundle"
                }
            ],
            "description": "Common Library for Doctrine projects",
            "homepage": "http://www.doctrine-project.org",
            "keywords": [
                "annotations",
                "collections",
                "eventmanager",
                "persistence",
                "spl"
            ],
            "time": "2013-09-07 10:20:34"
        },
        {
            "name": "doctrine/data-fixtures",
            "version": "v1.0.0",
            "source": {
                "type": "git",
                "url": "https://github.com/doctrine/data-fixtures.git",
                "reference": "b4a135c7db56ecc4602b54a2184368f440cac33e"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/b4a135c7db56ecc4602b54a2184368f440cac33e",
                "reference": "b4a135c7db56ecc4602b54a2184368f440cac33e",
                "shasum": ""
            },
            "require": {
                "doctrine/common": ">=2.2,<2.5-dev",
                "php": ">=5.3.2"
            },
            "require-dev": {
                "doctrine/orm": ">=2.2,<2.5-dev"
            },
            "suggest": {
                "doctrine/mongodb-odm": "For loading MongoDB ODM fixtures",
                "doctrine/orm": "For loading ORM fixtures",
                "doctrine/phpcr-odm": "For loading PHPCR ODM fixtures"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.0.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Doctrine\\Common\\DataFixtures": "lib/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Jonathan Wage",
                    "email": "jonwage@gmail.com",
                    "homepage": "http://www.jwage.com/"
                }
            ],
            "description": "Data Fixtures for all Doctrine Object Managers",
            "homepage": "http://www.doctrine-project.org",
            "keywords": [
                "database"
            ],
            "time": "2013-07-10 17:04:07"
        },
        {
            "name": "doctrine/dbal",
            "version": "v2.4.0",
            "source": {
                "type": "git",
                "url": "https://github.com/doctrine/dbal.git",
                "reference": "3eb557f144ec41e6e84997e43acb1946c92fbc88"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/doctrine/dbal/zipball/3eb557f144ec41e6e84997e43acb1946c92fbc88",
                "reference": "3eb557f144ec41e6e84997e43acb1946c92fbc88",
                "shasum": ""
            },
            "require": {
                "doctrine/common": "~2.4",
                "php": ">=5.3.2"
            },
            "require-dev": {
                "phpunit/phpunit": "3.7.*",
                "symfony/console": "~2.0"
            },
            "suggest": {
                "symfony/console": "Allows use of the command line interface"
            },
            "type": "library",
            "autoload": {
                "psr-0": {
                    "Doctrine\\DBAL\\": "lib/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Jonathan Wage",
                    "email": "jonwage@gmail.com",
                    "homepage": "http://www.jwage.com/"
                },
                {
                    "name": "Guilherme Blanco",
                    "email": "guilhermeblanco@gmail.com",
                    "homepage": "http://www.instaclick.com"
                },
                {
                    "name": "Roman Borschel",
                    "email": "roman@code-factory.org"
                },
                {
                    "name": "Benjamin Eberlei",
                    "email": "kontakt@beberlei.de"
                }
            ],
            "description": "Database Abstraction Layer",
            "homepage": "http://www.doctrine-project.org",
            "keywords": [
                "database",
                "dbal",
                "persistence",
                "queryobject"
            ],
            "time": "2013-09-07 10:49:18"
        },
        {
            "name": "doctrine/doctrine-bundle",
            "version": "dev-master",
            "target-dir": "Doctrine/Bundle/DoctrineBundle",
            "source": {
                "type": "git",
                "url": "https://github.com/doctrine/DoctrineBundle.git",
                "reference": "a41322d452354ee1e01b1e0f25c4f2ae3ca77ed3"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/a41322d452354ee1e01b1e0f25c4f2ae3ca77ed3",
                "reference": "a41322d452354ee1e01b1e0f25c4f2ae3ca77ed3",
                "shasum": ""
            },
            "require": {
                "doctrine/dbal": ">=2.2,<2.6-dev",
                "jdorn/sql-formatter": "~1.1",
                "php": ">=5.3.2",
                "symfony/doctrine-bridge": "~2.2",
                "symfony/framework-bundle": "~2.2"
            },
            "require-dev": {
                "doctrine/orm": ">=2.2,<2.5-dev",
                "symfony/validator": "~2.2",
                "symfony/yaml": "~2.2"
            },
            "suggest": {
                "doctrine/orm": "The Doctrine ORM integration is optional in the bundle.",
                "symfony/web-profiler-bundle": "to use the data collector"
            },
            "type": "symfony-bundle",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.2.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Doctrine\\Bundle\\DoctrineBundle": ""
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Fabien Potencier",
                    "email": "fabien@symfony.com"
                },
                {
                    "name": "Symfony Community",
                    "homepage": "http://symfony.com/contributors"
                },
                {
                    "name": "Benjamin Eberlei",
                    "email": "kontakt@beberlei.de"
                }
            ],
            "description": "Symfony DoctrineBundle",
            "homepage": "http://www.doctrine-project.org",
            "keywords": [
                "database",
                "dbal",
                "orm",
                "persistence"
            ],
            "time": "2013-09-18 11:44:15"
        },
        {
            "name": "doctrine/doctrine-fixtures-bundle",
            "version": "v2.2.0",
            "target-dir": "Doctrine/Bundle/FixturesBundle",
            "source": {
                "type": "git",
                "url": "https://github.com/doctrine/DoctrineFixturesBundle.git",
                "reference": "c811f96f0cf83b997e3a3ed037cac729bbe3e803"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/doctrine/DoctrineFixturesBundle/zipball/c811f96f0cf83b997e3a3ed037cac729bbe3e803",
                "reference": "c811f96f0cf83b997e3a3ed037cac729bbe3e803",
                "shasum": ""
            },
            "require": {
                "doctrine/data-fixtures": "~1.0",
                "doctrine/doctrine-bundle": "~1.0",
                "php": ">=5.3.2",
                "symfony/doctrine-bridge": "~2.1"
            },
            "type": "symfony-bundle",
            "extra": {
                "branch-alias": {
                    "dev-master": "2.1.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Doctrine\\Bundle\\FixturesBundle": ""
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Fabien Potencier",
                    "email": "fabien@symfony.com"
                },
                {
                    "name": "Symfony Community",
                    "homepage": "http://symfony.com/contributors"
                },
                {
                    "name": "Doctrine Project",
                    "homepage": "http://www.doctrine-project.org"
                }
            ],
            "description": "Symfony DoctrineFixturesBundle",
            "homepage": "http://www.doctrine-project.org",
            "keywords": [
                "Fixture",
                "persistence"
            ],
            "time": "2013-09-05 11:23:37"
        },
        {
            "name": "doctrine/inflector",
            "version": "v1.0",
            "source": {
                "type": "git",
                "url": "https://github.com/doctrine/inflector.git",
                "reference": "54b8333d2a5682afdc690060c1cf384ba9f47f08"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/doctrine/inflector/zipball/54b8333d2a5682afdc690060c1cf384ba9f47f08",
                "reference": "54b8333d2a5682afdc690060c1cf384ba9f47f08",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.2"
            },
            "type": "library",
            "autoload": {
                "psr-0": {
                    "Doctrine\\Common\\Inflector\\": "lib/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Jonathan Wage",
                    "email": "jonwage@gmail.com",
                    "homepage": "http://www.jwage.com/"
                },
                {
                    "name": "Guilherme Blanco",
                    "email": "guilhermeblanco@gmail.com",
                    "homepage": "http://www.instaclick.com"
                },
                {
                    "name": "Roman Borschel",
                    "email": "roman@code-factory.org"
                },
                {
                    "name": "Benjamin Eberlei",
                    "email": "kontakt@beberlei.de"
                },
                {
                    "name": "Johannes Schmitt",
                    "email": "schmittjoh@gmail.com",
                    "homepage": "http://jmsyst.com",
                    "role": "Developer of wrapped JMSSerializerBundle"
                }
            ],
            "description": "Common String Manipulations with regard to casing and singular/plural rules.",
            "homepage": "http://www.doctrine-project.org",
            "keywords": [
                "inflection",
                "pluarlize",
                "singuarlize",
                "string"
            ],
            "time": "2013-01-10 21:49:15"
        },
        {
            "name": "doctrine/lexer",
            "version": "v1.0",
            "source": {
                "type": "git",
                "url": "https://github.com/doctrine/lexer.git",
                "reference": "2f708a85bb3aab5d99dab8be435abd73e0b18acb"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/doctrine/lexer/zipball/2f708a85bb3aab5d99dab8be435abd73e0b18acb",
                "reference": "2f708a85bb3aab5d99dab8be435abd73e0b18acb",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.2"
            },
            "type": "library",
            "autoload": {
                "psr-0": {
                    "Doctrine\\Common\\Lexer\\": "lib/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Guilherme Blanco",
                    "email": "guilhermeblanco@gmail.com",
                    "homepage": "http://www.instaclick.com"
                },
                {
                    "name": "Roman Borschel",
                    "email": "roman@code-factory.org"
                },
                {
                    "name": "Johannes Schmitt",
                    "email": "schmittjoh@gmail.com",
                    "homepage": "http://jmsyst.com",
                    "role": "Developer of wrapped JMSSerializerBundle"
                }
            ],
            "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.",
            "homepage": "http://www.doctrine-project.org",
            "keywords": [
                "lexer",
                "parser"
            ],
            "time": "2013-01-12 18:59:04"
        },
        {
            "name": "doctrine/orm",
            "version": "v2.4.0",
            "source": {
                "type": "git",
                "url": "https://github.com/doctrine/doctrine2.git",
                "reference": "57705e0d781719b96daf322a6d6f66ff21e3cdc9"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/doctrine/doctrine2/zipball/57705e0d781719b96daf322a6d6f66ff21e3cdc9",
                "reference": "57705e0d781719b96daf322a6d6f66ff21e3cdc9",
                "shasum": ""
            },
            "require": {
                "doctrine/collections": "~1.1",
                "doctrine/dbal": "~2.4",
                "ext-pdo": "*",
                "php": ">=5.3.2",
                "symfony/console": "~2.0"
            },
            "require-dev": {
                "satooshi/php-coveralls": "dev-master",
                "symfony/yaml": "~2.1"
            },
            "suggest": {
                "symfony/yaml": "If you want to use YAML Metadata Mapping Driver"
            },
            "bin": [
                "bin/doctrine",
                "bin/doctrine.php"
            ],
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "2.4.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Doctrine\\ORM\\": "lib/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Jonathan Wage",
                    "email": "jonwage@gmail.com",
                    "homepage": "http://www.jwage.com/"
                },
                {
                    "name": "Guilherme Blanco",
                    "email": "guilhermeblanco@gmail.com",
                    "homepage": "http://www.instaclick.com"
                },
                {
                    "name": "Roman Borschel",
                    "email": "roman@code-factory.org"
                },
                {
                    "name": "Benjamin Eberlei",
                    "email": "kontakt@beberlei.de"
                }
            ],
            "description": "Object-Relational-Mapper for PHP",
            "homepage": "http://www.doctrine-project.org",
            "keywords": [
                "database",
                "orm"
            ],
            "time": "2013-09-07 16:19:56"
        },
        {
            "name": "friendsofsymfony/rest",
            "version": "0.8.0",
            "target-dir": "FOS/Rest",
            "source": {
                "type": "git",
                "url": "https://github.com/FriendsOfSymfony/FOSRest.git",
                "reference": "9a84df8220553e2ae3163b8325a3c4c2e9792426"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/FriendsOfSymfony/FOSRest/zipball/9a84df8220553e2ae3163b8325a3c4c2e9792426",
                "reference": "9a84df8220553e2ae3163b8325a3c4c2e9792426",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.2",
                "symfony/http-foundation": "~2.0"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "0.8.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "FOS\\Rest": ""
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Lukas Kahwe Smith",
                    "email": "smith@pooteeweet.org"
                },
                {
                    "name": "FriendsOfSymfony Community",
                    "homepage": "https://github.com/FriendsOfSymfony/FOSRest/contributors"
                }
            ],
            "description": "This library provides various tools to develop RESTful API's",
            "homepage": "http://friendsofsymfony.github.com",
            "keywords": [
                "rest"
            ],
            "time": "2013-03-02 20:35:05"
        },
        {
            "name": "friendsofsymfony/rest-bundle",
            "version": "0.13.1",
            "target-dir": "FOS/RestBundle",
            "source": {
                "type": "git",
                "url": "https://github.com/FriendsOfSymfony/FOSRestBundle.git",
                "reference": "2c3434f17fdbbcc22c2da2737b04234646749463"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/FriendsOfSymfony/FOSRestBundle/zipball/2c3434f17fdbbcc22c2da2737b04234646749463",
                "reference": "2c3434f17fdbbcc22c2da2737b04234646749463",
                "shasum": ""
            },
            "require": {
                "doctrine/inflector": "1.0.*",
                "friendsofsymfony/rest": ">=0.7.0,<0.9.0-dev",
                "php": ">=5.3.2",
                "symfony/framework-bundle": "~2.1",
                "willdurand/negotiation": "1.0.*"
            },
            "conflict": {
                "jms/serializer": "<0.12",
                "jms/serializer-bundle": "<0.11"
            },
            "require-dev": {
                "jms/serializer-bundle": "0.12.*",
                "sensio/framework-extra-bundle": "~2.1",
                "symfony/form": "~2.1",
                "symfony/security": "~2.1",
                "symfony/yaml": "~2.1"
            },
            "suggest": {
                "jms/serializer-bundle": "Add support for advanced serialization capabilities, recommended, requires 0.12.*",
                "sensio/framework-extra-bundle": "Add support for route annotations and the view response listener",
                "symfony/serializer": "Add support for basic serialization capabilities, requires >=2.0,<2.3-dev"
            },
            "type": "symfony-bundle",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.0-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "FOS\\RestBundle": ""
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Lukas Kahwe Smith",
                    "email": "smith@pooteeweet.org"
                },
                {
                    "name": "FriendsOfSymfony Community",
                    "homepage": "https://github.com/friendsofsymfony/FOSRestBundle/contributors"
                },
                {
                    "name": "Konstantin Kudryashov",
                    "email": "ever.zet@gmail.com",
                    "homepage": "http://everzet.com"
                }
            ],
            "description": "This Bundle provides various tools to rapidly develop RESTful API's with Symfony2",
            "homepage": "http://friendsofsymfony.github.com",
            "keywords": [
                "rest"
            ],
            "time": "2013-08-15 13:30:47"
        },
        {
            "name": "friendsofsymfony/user-bundle",
            "version": "dev-master",
            "target-dir": "FOS/UserBundle",
            "source": {
                "type": "git",
                "url": "https://github.com/FriendsOfSymfony/FOSUserBundle.git",
                "reference": "5e236332c3934fbc16b79eff3cf6ee9ee21b7519"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/FriendsOfSymfony/FOSUserBundle/zipball/5e236332c3934fbc16b79eff3cf6ee9ee21b7519",
                "reference": "5e236332c3934fbc16b79eff3cf6ee9ee21b7519",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.2",
                "symfony/form": "~2.1",
                "symfony/framework-bundle": "~2.1",
                "symfony/security-bundle": "~2.1"
            },
            "require-dev": {
                "doctrine/doctrine-bundle": "*",
                "swiftmailer/swiftmailer": ">=4.3, <6.0",
                "symfony/validator": "~2.1",
                "symfony/yaml": "~2.1",
                "twig/twig": "~1.5",
                "willdurand/propel-typehintable-behavior": "dev-master"
            },
            "suggest": {
                "willdurand/propel-typehintable-behavior": "Needed when using the propel implementation"
            },
            "type": "symfony-bundle",
            "extra": {
                "branch-alias": {
                    "dev-master": "2.0.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "FOS\\UserBundle": ""
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Christophe Coevoet",
                    "email": "stof@notk.org"
                },
                {
                    "name": "Thibault Duplessis",
                    "email": "thibault.duplessis@gmail.com",
                    "homepage": "http://ornicar.github.com"
                },
                {
                    "name": "FriendsOfSymfony Community",
                    "homepage": "https://github.com/friendsofsymfony/FOSUserBundle/contributors"
                }
            ],
            "description": "Symfony FOSUserBundle",
            "homepage": "http://friendsofsymfony.github.com",
            "keywords": [
                "User management"
            ],
            "time": "2013-10-02 23:38:05"
        },
        {
            "name": "fzaninotto/faker",
            "version": "v1.2.0",
            "source": {
                "type": "git",
                "url": "https://github.com/fzaninotto/Faker.git",
                "reference": "4ad4bc4b5c8d3c0f3cf55d2fedc2f65b313ec62f"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/4ad4bc4b5c8d3c0f3cf55d2fedc2f65b313ec62f",
                "reference": "4ad4bc4b5c8d3c0f3cf55d2fedc2f65b313ec62f",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.3"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.2.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Faker": "src/",
                    "Faker\\PHPUnit": "test/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "François Zaninotto"
                }
            ],
            "description": "Faker is a PHP library that generates fake data for you.",
            "keywords": [
                "data",
                "faker",
                "fixtures"
            ],
            "time": "2013-06-09 18:05:57"
        },
        {
            "name": "gedmo/doctrine-extensions",
            "version": "v2.3.7",
            "source": {
                "type": "git",
                "url": "https://github.com/l3pp4rd/DoctrineExtensions.git",
                "reference": "0aa660ffea298b630b8ded7bd2a7eae0d8619fdb"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/l3pp4rd/DoctrineExtensions/zipball/0aa660ffea298b630b8ded7bd2a7eae0d8619fdb",
                "reference": "0aa660ffea298b630b8ded7bd2a7eae0d8619fdb",
                "shasum": ""
            },
            "require": {
                "doctrine/common": ">=2.2,<2.5-dev",
                "php": ">=5.3.2"
            },
            "require-dev": {
                "doctrine/common": ">=2.4.0-RC3",
                "doctrine/dbal": ">=2.4.0-RC1",
                "doctrine/mongodb": ">=1.0.3",
                "doctrine/mongodb-odm": ">=1.0.0-BETA9",
                "doctrine/orm": ">=2.4.0-RC1",
                "symfony/yaml": "2.3.1"
            },
            "suggest": {
                "doctrine/dbal": ">=2.3.2",
                "doctrine/mongodb": ">=1.0.1",
                "doctrine/mongodb-odm": ">=1.0.0-BETA7",
                "doctrine/orm": ">=2.3.2"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "2.3.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Gedmo\\": "lib/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "David Buchmann",
                    "email": "david@liip.ch"
                },
                {
                    "name": "Gediminas Morkevicius",
                    "email": "gediminas.morkevicius@gmail.com"
                },
                {
                    "name": "Gustavo Falco",
                    "email": "comfortablynumb84@gmail.com"
                }
            ],
            "description": "Doctrine2 behavioral extensions",
            "homepage": "http://gediminasm.org/",
            "keywords": [
                "Blameable",
                "behaviors",
                "doctrine2",
                "extensions",
                "gedmo",
                "loggable",
                "nestedset",
                "sluggable",
                "sortable",
                "timestampable",
                "translatable",
                "tree",
                "uploadable"
            ],
            "time": "2013-08-18 07:18:44"
        },
        {
            "name": "guzzle/common",
            "version": "v3.7.4",
            "target-dir": "Guzzle/Common",
            "source": {
                "type": "git",
                "url": "https://github.com/guzzle/common.git",
                "reference": "5126e268446c7e7df961b89128d71878e0652432"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/guzzle/common/zipball/5126e268446c7e7df961b89128d71878e0652432",
                "reference": "5126e268446c7e7df961b89128d71878e0652432",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.2",
                "symfony/event-dispatcher": ">=2.1"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "3.7-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Guzzle\\Common": ""
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "description": "Common libraries used by Guzzle",
            "homepage": "http://guzzlephp.org/",
            "keywords": [
                "collection",
                "common",
                "event",
                "exception"
            ],
            "time": "2013-10-02 20:47:00"
        },
        {
            "name": "guzzle/http",
            "version": "v3.7.4",
            "target-dir": "Guzzle/Http",
            "source": {
                "type": "git",
                "url": "https://github.com/guzzle/http.git",
                "reference": "3420035adcf312d62a2e64f3e6b3e3e590121786"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/guzzle/http/zipball/3420035adcf312d62a2e64f3e6b3e3e590121786",
                "reference": "3420035adcf312d62a2e64f3e6b3e3e590121786",
                "shasum": ""
            },
            "require": {
                "guzzle/common": "self.version",
                "guzzle/parser": "self.version",
                "guzzle/stream": "self.version",
                "php": ">=5.3.2"
            },
            "suggest": {
                "ext-curl": "*"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "3.7-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Guzzle\\Http": ""
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Michael Dowling",
                    "email": "mtdowling@gmail.com",
                    "homepage": "https://github.com/mtdowling"
                }
            ],
            "description": "HTTP libraries used by Guzzle",
            "homepage": "http://guzzlephp.org/",
            "keywords": [
                "Guzzle",
                "client",
                "curl",
                "http",
                "http client"
            ],
            "time": "2013-09-20 22:05:53"
        },
        {
            "name": "guzzle/parser",
            "version": "v3.7.4",
            "target-dir": "Guzzle/Parser",
            "source": {
                "type": "git",
                "url": "https://github.com/guzzle/parser.git",
                "reference": "a25c2ddda1c52fb69a4ee56eb530b13ddd9573c2"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/guzzle/parser/zipball/a25c2ddda1c52fb69a4ee56eb530b13ddd9573c2",
                "reference": "a25c2ddda1c52fb69a4ee56eb530b13ddd9573c2",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.2"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "3.7-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Guzzle\\Parser": ""
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "description": "Interchangeable parsers used by Guzzle",
            "homepage": "http://guzzlephp.org/",
            "keywords": [
                "URI Template",
                "cookie",
                "http",
                "message",
                "url"
            ],
            "time": "2013-07-11 22:46:03"
        },
        {
            "name": "guzzle/stream",
            "version": "v3.7.4",
            "target-dir": "Guzzle/Stream",
            "source": {
                "type": "git",
                "url": "https://github.com/guzzle/stream.git",
                "reference": "a86111d9ac7db31d65a053c825869409fe8fc83f"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/guzzle/stream/zipball/a86111d9ac7db31d65a053c825869409fe8fc83f",
                "reference": "a86111d9ac7db31d65a053c825869409fe8fc83f",
                "shasum": ""
            },
            "require": {
                "guzzle/common": "self.version",
                "php": ">=5.3.2"
            },
            "suggest": {
                "guzzle/http": "To convert Guzzle request objects to PHP streams"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "3.7-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Guzzle\\Stream": ""
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Michael Dowling",
                    "email": "mtdowling@gmail.com",
                    "homepage": "https://github.com/mtdowling"
                }
            ],
            "description": "Guzzle stream wrapper component",
            "homepage": "http://guzzlephp.org/",
            "keywords": [
                "Guzzle",
                "component",
                "stream"
            ],
            "time": "2013-07-30 22:07:23"
        },
        {
            "name": "imagine/imagine",
            "version": "v0.4.1",
            "source": {
                "type": "git",
                "url": "https://github.com/avalanche123/Imagine.git",
                "reference": "9d644b6940a7b30a4c9de1873b625e6a686533be"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/avalanche123/Imagine/zipball/9d644b6940a7b30a4c9de1873b625e6a686533be",
                "reference": "9d644b6940a7b30a4c9de1873b625e6a686533be",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.2"
            },
            "require-dev": {
                "sami/sami": "dev-master"
            },
            "type": "library",
            "autoload": {
                "psr-0": {
                    "Imagine": "lib/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Bulat Shakirzyanov",
                    "email": "mallluhuct@gmail.com",
                    "homepage": "http://avalanche123.com"
                }
            ],
            "description": "Image processing for PHP 5.3",
            "homepage": "http://imagine.readthedocs.org/",
            "keywords": [
                "drawing",
                "graphics",
                "image manipulation",
                "image processing"
            ],
            "time": "2012-12-13 18:31:18"
        },
        {
            "name": "incenteev/composer-parameter-handler",
            "version": "v2.0.0",
            "target-dir": "Incenteev/ParameterHandler",
            "source": {
                "type": "git",
                "url": "https://github.com/Incenteev/ParameterHandler.git",
                "reference": "2310d74a751025f02221e0faf69d31440df71b73"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/Incenteev/ParameterHandler/zipball/2310d74a751025f02221e0faf69d31440df71b73",
                "reference": "2310d74a751025f02221e0faf69d31440df71b73",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.3",
                "symfony/yaml": "~2.0"
            },
            "require-dev": {
                "composer/composer": "*"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "2.0.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Incenteev\\ParameterHandler": ""
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Christophe Coevoet",
                    "email": "stof@notk.org"
                }
            ],
            "description": "Composer script handling your ignored parameter file",
            "homepage": "https://github.com/Incenteev/ParameterHandler",
            "keywords": [
                "parameters management"
            ],
            "time": "2013-04-06 17:15:44"
        },
        {
            "name": "jdorn/sql-formatter",
            "version": "v1.2.9",
            "source": {
                "type": "git",
                "url": "https://github.com/jdorn/sql-formatter.git",
                "reference": "bd1f09133f6dbbe0713856910e58ea9480c2be58"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/jdorn/sql-formatter/zipball/bd1f09133f6dbbe0713856910e58ea9480c2be58",
                "reference": "bd1f09133f6dbbe0713856910e58ea9480c2be58",
                "shasum": ""
            },
            "require": {
                "php": ">=5.2.4"
            },
            "require-dev": {
                "phpunit/phpunit": "3.7.*"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.3.x-dev"
                }
            },
            "autoload": {
                "classmap": [
                    "lib"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Jeremy Dorn",
                    "email": "jeremy@jeremydorn.com",
                    "homepage": "http://jeremydorn.com/"
                }
            ],
            "description": "a PHP SQL highlighting library",
            "homepage": "https://github.com/jdorn/sql-formatter/",
            "keywords": [
                "highlight",
                "sql"
            ],
            "time": "2013-04-26 18:42:52"
        },
        {
            "name": "jms/metadata",
            "version": "1.4.2",
            "source": {
                "type": "git",
                "url": "https://github.com/schmittjoh/metadata.git",
                "reference": "246d7096801ce29b5aea30a1abf0277ccfb9f055"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/schmittjoh/metadata/zipball/246d7096801ce29b5aea30a1abf0277ccfb9f055",
                "reference": "246d7096801ce29b5aea30a1abf0277ccfb9f055",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.0"
            },
            "require-dev": {
                "doctrine/cache": "~1.0"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.4.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Metadata\\": "src/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "Apache"
            ],
            "authors": [
                {
                    "name": "Johannes M. Schmitt",
                    "email": "schmittjoh@gmail.com",
                    "homepage": "http://jmsyst.com",
                    "role": "Developer of wrapped JMSSerializerBundle"
                }
            ],
            "description": "Class/method/property metadata management in PHP",
            "keywords": [
                "annotations",
                "metadata",
                "xml",
                "yaml"
            ],
            "time": "2013-09-13 09:05:44"
        },
        {
            "name": "jms/parser-lib",
            "version": "1.0.0",
            "source": {
                "type": "git",
                "url": "https://github.com/schmittjoh/parser-lib.git",
                "reference": "c509473bc1b4866415627af0e1c6cc8ac97fa51d"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/schmittjoh/parser-lib/zipball/c509473bc1b4866415627af0e1c6cc8ac97fa51d",
                "reference": "c509473bc1b4866415627af0e1c6cc8ac97fa51d",
                "shasum": ""
            },
            "require": {
                "phpoption/phpoption": ">=0.9,<2.0-dev"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.0-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "JMS\\": "src/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "Apache2"
            ],
            "description": "A library for easily creating recursive-descent parsers.",
            "time": "2012-11-18 18:08:43"
        },
        {
            "name": "jms/serializer",
            "version": "0.13.0",
            "source": {
                "type": "git",
                "url": "https://github.com/schmittjoh/serializer.git",
                "reference": "9e0fcd00a374e9ad484687628c6c25ab1083ea5a"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/schmittjoh/serializer/zipball/9e0fcd00a374e9ad484687628c6c25ab1083ea5a",
                "reference": "9e0fcd00a374e9ad484687628c6c25ab1083ea5a",
                "shasum": ""
            },
            "require": {
                "doctrine/annotations": "1.*",
                "jms/metadata": "~1.1",
                "jms/parser-lib": "1.*",
                "php": ">=5.3.2",
                "phpcollection/phpcollection": ">=0.1,<0.3-dev"
            },
            "require-dev": {
                "doctrine/orm": ">=2.1,<2.4-dev",
                "symfony/filesystem": "2.*",
                "symfony/form": ">=2.1,<2.2-dev",
                "symfony/translation": ">=2.0,<2.2-dev",
                "symfony/validator": ">=2.0,<2.2-dev",
                "symfony/yaml": "2.*",
                "twig/twig": ">=1.8,<2.0-dev"
            },
            "suggest": {
                "symfony/yaml": "Required if you'd like to serialize data to YAML format."
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "0.13-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "JMS\\Serializer": "src/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "Apache2"
            ],
            "authors": [
                {
                    "name": "Johannes M. Schmitt",
                    "email": "schmittjoh@gmail.com",
                    "homepage": "http://jmsyst.com",
                    "role": "Developer of wrapped JMSSerializerBundle"
                }
            ],
            "description": "Library for (de-)serializing data of any complexity; supports XML, JSON, and YAML.",
            "homepage": "http://jmsyst.com/libs/serializer",
            "keywords": [
                "deserialization",
                "jaxb",
                "json",
                "serialization",
                "xml"
            ],
            "time": "2013-07-29 13:39:49"
        },
        {
            "name": "jms/serializer-bundle",
            "version": "0.12.0",
            "target-dir": "JMS/SerializerBundle",
            "source": {
                "type": "git",
                "url": "https://github.com/schmittjoh/JMSSerializerBundle.git",
                "reference": "5531198a73c4adee669a8a2d1452999349822771"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/schmittjoh/JMSSerializerBundle/zipball/5531198a73c4adee669a8a2d1452999349822771",
                "reference": "5531198a73c4adee669a8a2d1452999349822771",
                "shasum": ""
            },
            "require": {
                "jms/serializer": "~0.11",
                "php": ">=5.3.2",
                "symfony/framework-bundle": "~2.1"
            },
            "require-dev": {
                "doctrine/doctrine-bundle": "*",
                "doctrine/orm": "*",
                "symfony/browser-kit": "*",
                "symfony/class-loader": "*",
                "symfony/css-selector": "*",
                "symfony/finder": "*",
                "symfony/form": "*",
                "symfony/process": "*",
                "symfony/twig-bundle": "*",
                "symfony/validator": "*",
                "symfony/yaml": "*"
            },
            "suggest": {
                "jms/di-extra-bundle": "Required to get lazy loading (de)serialization visitors, ~1.3"
            },
            "type": "symfony-bundle",
            "extra": {
                "branch-alias": {
                    "dev-master": "0.12-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "JMS\\SerializerBundle": ""
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "Apache2"
            ],
            "authors": [
                {
                    "name": "Johannes M. Schmitt",
                    "email": "schmittjoh@gmail.com",
                    "homepage": "http://jmsyst.com",
                    "role": "Developer of wrapped JMSSerializerBundle"
                }
            ],
            "description": "Allows you to easily serialize, and deserialize data of any complexity",
            "homepage": "http://jmsyst.com/bundles/JMSSerializerBundle",
            "keywords": [
                "deserialization",
                "jaxb",
                "json",
                "serialization",
                "xml"
            ],
            "time": "2013-07-29 12:36:36"
        },
        {
            "name": "jms/translation-bundle",
            "version": "1.1.0",
            "target-dir": "JMS/TranslationBundle",
            "source": {
                "type": "git",
                "url": "https://github.com/schmittjoh/JMSTranslationBundle.git",
                "reference": "6f03035a38badaf8c48767c7664c3196df1eebdf"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/schmittjoh/JMSTranslationBundle/zipball/6f03035a38badaf8c48767c7664c3196df1eebdf",
                "reference": "6f03035a38badaf8c48767c7664c3196df1eebdf",
                "shasum": ""
            },
            "require": {
                "nikic/php-parser": "0.9.1",
                "symfony/console": "*",
                "symfony/framework-bundle": "~2.1"
            },
            "conflict": {
                "twig/twig": "1.10.2"
            },
            "require-dev": {
                "jms/di-extra-bundle": ">=1.1",
                "sensio/framework-extra-bundle": "*",
                "symfony/browser-kit": "*",
                "symfony/class-loader": "*",
                "symfony/css-selector": "*",
                "symfony/finder": "*",
                "symfony/form": "*",
                "symfony/process": "*",
                "symfony/security": "*",
                "symfony/twig-bundle": "*",
                "symfony/validator": "*",
                "symfony/yaml": "*"
            },
            "type": "symfony-bundle",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.1-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "JMS\\TranslationBundle": ""
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "Apache2"
            ],
            "authors": [
                {
                    "name": "Johannes M. Schmitt",
                    "email": "schmittjoh@gmail.com",
                    "homepage": "http://jmsyst.com",
                    "role": "Developer of wrapped JMSSerializerBundle"
                }
            ],
            "description": "Puts the Symfony2 Translation Component on steroids",
            "homepage": "http://jmsyst.com/bundles/JMSTranslationBundle",
            "keywords": [
                "extract",
                "extraction",
                "i18n",
                "interface",
                "multilanguage",
                "translation",
                "ui",
                "webinterface"
            ],
            "time": "2013-06-08 14:08:19"
        },
        {
            "name": "knplabs/gaufrette",
            "version": "v0.1.4",
            "source": {
                "type": "git",
                "url": "https://github.com/KnpLabs/Gaufrette.git",
                "reference": "3738125aa5e1f3cc430b91085f4578ce5a4383bc"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/KnpLabs/Gaufrette/zipball/3738125aa5e1f3cc430b91085f4578ce5a4383bc",
                "reference": "3738125aa5e1f3cc430b91085f4578ce5a4383bc",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.2"
            },
            "require-dev": {
                "amazonwebservices/aws-sdk-for-php": "1.5.*",
                "doctrine/dbal": ">=2.3",
                "dropbox-php/dropbox-php": "*",
                "herzult/php-ssh": "*",
                "phpspec/phpspec2": "1.0.*",
                "rackspace/php-cloudfiles": "*"
            },
            "suggest": {
                "amazonwebservices/aws-sdk-for-php": "to use the Amazon S3 adapter",
                "doctrine/dbal": "to use the Doctrine DBAL adapter",
                "dropbox-php/dropbox-php": "to use the Dropbox adapter",
                "ext-apc": "to use the APC adapter",
                "ext-curl": "*",
                "ext-mbstring": "*",
                "ext-mongo": "*",
                "ext-zip": "to use the Zip adapter",
                "knplabs/knp-gaufrette-bundle": "*"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "0.2.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Gaufrette": "src/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "The contributors",
                    "homepage": "http://github.com/knplabs/Gaufrette/contributors"
                },
                {
                    "name": "KnpLabs Team",
                    "homepage": "http://knplabs.com"
                }
            ],
            "description": "PHP5 library that provides a filesystem abstraction layer",
            "homepage": "http://knplabs.com",
            "keywords": [
                "abstraction",
                "file",
                "filesystem",
                "media"
            ],
            "time": "2013-01-25 08:51:55"
        },
        {
            "name": "knplabs/knp-gaufrette-bundle",
            "version": "v0.1.4",
            "target-dir": "Knp/Bundle/GaufretteBundle",
            "source": {
                "type": "git",
                "url": "https://github.com/KnpLabs/KnpGaufretteBundle.git",
                "reference": "c6da43595c5c697f16d2a7ae10433c353d523f08"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/KnpLabs/KnpGaufretteBundle/zipball/c6da43595c5c697f16d2a7ae10433c353d523f08",
                "reference": "c6da43595c5c697f16d2a7ae10433c353d523f08",
                "shasum": ""
            },
            "require": {
                "knplabs/gaufrette": "0.1.4",
                "symfony/framework-bundle": "2.*"
            },
            "require-dev": {
                "symfony/console": "2.*",
                "symfony/yaml": "2.*"
            },
            "type": "symfony-bundle",
            "extra": {
                "branch-alias": {
                    "dev-master": "0.2.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Knp\\Bundle\\GaufretteBundle": ""
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Antoine Hérault",
                    "email": "antoine.herault@gmail.com",
                    "homepage": "https://github.com/Herzult"
                },
                {
                    "name": "The contributors",
                    "homepage": "https://github.com/knplabs/KnpGaufretteBundle/contributors"
                }
            ],
            "description": "Allows to easily use the Gaufrette library in a Symfony project",
            "homepage": "http://knplabs.com",
            "keywords": [
                "abstraction",
                "file",
                "filesystem",
                "media"
            ],
            "time": "2013-01-30 11:41:55"
        },
        {
            "name": "knplabs/knp-menu",
            "version": "v1.1.2",
            "source": {
                "type": "git",
                "url": "https://github.com/KnpLabs/KnpMenu.git",
                "reference": "f8e867268f63f561c1adadd6cbb5d8524f921873"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/KnpLabs/KnpMenu/zipball/f8e867268f63f561c1adadd6cbb5d8524f921873",
                "reference": "f8e867268f63f561c1adadd6cbb5d8524f921873",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.0"
            },
            "require-dev": {
                "pimple/pimple": "*",
                "silex/silex": "1.0.*",
                "twig/twig": ">=1.2,<2.0-dev"
            },
            "suggest": {
                "pimple/pimple": "for the built-in implementations of the menu provider and renderer provider",
                "silex/silex": "for the integration with your silex application",
                "twig/twig": "for the TwigRenderer and the integration with your templates"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.1.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Knp\\Menu\\": "src/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Christophe Coevoet",
                    "email": "stof@notk.org"
                },
                {
                    "name": "KnpLabs",
                    "homepage": "http://knplabs.com"
                },
                {
                    "name": "Symfony Community",
                    "homepage": "https://github.com/KnpLabs/KnpMenu/contributors"
                }
            ],
            "description": "An object oriented menu library",
            "homepage": "http://knplabs.com",
            "keywords": [
                "menu",
                "tree"
            ],
            "time": "2012-06-10 16:20:40"
        },
        {
            "name": "knplabs/knp-menu-bundle",
            "version": "1.1.x-dev",
            "target-dir": "Knp/Bundle/MenuBundle",
            "source": {
                "type": "git",
                "url": "https://github.com/KnpLabs/KnpMenuBundle.git",
                "reference": "2fecac02614e5a006f674dd5dd754eeaeca060b9"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/KnpLabs/KnpMenuBundle/zipball/2fecac02614e5a006f674dd5dd754eeaeca060b9",
                "reference": "2fecac02614e5a006f674dd5dd754eeaeca060b9",
                "shasum": ""
            },
            "require": {
                "knplabs/knp-menu": "~1.1",
                "symfony/framework-bundle": "~2.0"
            },
            "type": "symfony-bundle",
            "autoload": {
                "psr-0": {
                    "Knp\\Bundle\\MenuBundle": ""
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Christophe Coevoet",
                    "email": "stof@notk.org"
                },
                {
                    "name": "Knplabs",
                    "homepage": "http://knplabs.com"
                },
                {
                    "name": "Symfony Community",
                    "homepage": "https://github.com/KnpLabs/KnpMenuBundle/contributors"
                }
            ],
            "description": "This bundle provides an integration of the KnpMenu library",
            "keywords": [
                "menu"
            ],
            "time": "2013-05-25 10:20:03"
        },
        {
            "name": "knplabs/knp-snappy",
            "version": "0.1.2",
            "source": {
                "type": "git",
                "url": "https://github.com/KnpLabs/snappy.git",
                "reference": "1f56b336f8e158b57dcfce007234363cbb54192b"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/KnpLabs/snappy/zipball/1f56b336f8e158b57dcfce007234363cbb54192b",
                "reference": "1f56b336f8e158b57dcfce007234363cbb54192b",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.0"
            },
            "suggest": {
                "google/wkhtmltopdf-amd64": "Provide wkhtmltopdf-amd64 binary, use version `0.11.0-RC1` as dependency",
                "google/wkhtmltopdf-i386": "Provide wkhtmltopdf-i386 binary, use version `0.11.0-RC1` as dependency",
                "symfony/process": "Process Component of Symfony2."
            },
            "type": "library",
            "autoload": {
                "psr-0": {
                    "Knp\\Snappy": "src/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "KnpLabs Team",
                    "homepage": "http://knplabs.com"
                },
                {
                    "name": "Symfony Community",
                    "homepage": "http://github.com/KnpLabs/snappy/contributors"
                }
            ],
            "description": "PHP5 library allowing thumbnail, snapshot or PDF generation from a url or a html page. Wrapper for wkhtmltopdf/wkhtmltoimage.",
            "homepage": "http://github.com/KnpLabs/snappy",
            "keywords": [
                "knp",
                "knplabs",
                "pdf",
                "snapshot",
                "thumbnail",
                "wkhtmltopdf"
            ],
            "time": "2013-09-06 14:16:50"
        },
        {
            "name": "knplabs/knp-snappy-bundle",
            "version": "dev-master",
            "target-dir": "Knp/Bundle/SnappyBundle",
            "source": {
                "type": "git",
                "url": "https://github.com/KnpLabs/KnpSnappyBundle.git",
                "reference": "d0ea8e4adbc6389a0eb99e2c03db97cfad73742e"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/KnpLabs/KnpSnappyBundle/zipball/d0ea8e4adbc6389a0eb99e2c03db97cfad73742e",
                "reference": "d0ea8e4adbc6389a0eb99e2c03db97cfad73742e",
                "shasum": ""
            },
            "require": {
                "knplabs/knp-snappy": "*",
                "php": ">=5.3.2",
                "symfony/framework-bundle": ">=2.0.0"
            },
            "type": "symfony-bundle",
            "autoload": {
                "psr-0": {
                    "Knp\\Bundle\\SnappyBundle": ""
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "KnpLabs Team",
                    "homepage": "http://knplabs.com"
                },
                {
                    "name": "Symfony Community",
                    "homepage": "http://github.com/KnpLabs/KnpSnappyBundle/contributors"
                }
            ],
            "description": "Easily create PDF and images in Symfony2 by converting Twig/HTML templates.",
            "homepage": "http://github.com/KnpLabs/KnpSnappyBundle",
            "keywords": [
                "bundle",
                "knp",
                "knplabs",
                "pdf",
                "snappy"
            ],
            "time": "2013-07-18 15:02:44"
        },
        {
            "name": "kriswallsmith/assetic",
            "version": "v1.1.2",
            "source": {
                "type": "git",
                "url": "https://github.com/kriswallsmith/assetic.git",
                "reference": "735cffd3982c6e8cdebe292d5db39d077f65890f"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/kriswallsmith/assetic/zipball/735cffd3982c6e8cdebe292d5db39d077f65890f",
                "reference": "735cffd3982c6e8cdebe292d5db39d077f65890f",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.1",
                "symfony/process": "~2.1"
            },
            "require-dev": {
                "cssmin/cssmin": "*",
                "joliclic/javascript-packer": "*",
                "kamicane/packager": "*",
                "leafo/lessphp": "*",
                "leafo/scssphp": "*",
                "leafo/scssphp-compass": "*",
                "mrclay/minify": "*",
                "phpunit/phpunit": "~3.7",
                "ptachoire/cssembed": "*",
                "twig/twig": "~1.6"
            },
            "suggest": {
                "leafo/lessphp": "Assetic provides the integration with the lessphp LESS compiler",
                "leafo/scssphp": "Assetic provides the integration with the scssphp SCSS compiler",
                "leafo/scssphp-compass": "Assetic provides the integration with the SCSS compass plugin",
                "ptachoire/cssembed": "Assetic provides the integration with phpcssembed to embed data uris",
                "twig/twig": "Assetic provides the integration with the Twig templating engine"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.1-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Assetic": "src/"
                },
                "files": [
                    "src/functions.php"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Kris Wallsmith",
                    "email": "kris.wallsmith@gmail.com",
                    "homepage": "http://kriswallsmith.net/"
                }
            ],
            "description": "Asset Management for PHP",
            "homepage": "https://github.com/kriswallsmith/assetic",
            "keywords": [
                "assets",
                "compression",
                "minification"
            ],
            "time": "2013-07-19 00:03:27"
        },
        {
            "name": "liip/doctrine-cache-bundle",
            "version": "1.0.3",
            "target-dir": "Liip/DoctrineCacheBundle",
            "source": {
                "type": "git",
                "url": "https://github.com/liip/LiipDoctrineCacheBundle.git",
                "reference": "4e90369883927df579db36eae69a50aa23b5aa77"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/liip/LiipDoctrineCacheBundle/zipball/4e90369883927df579db36eae69a50aa23b5aa77",
                "reference": "4e90369883927df579db36eae69a50aa23b5aa77",
                "shasum": ""
            },
            "require": {
                "doctrine/common": ">=2.2",
                "php": ">=5.3.0",
                "symfony/symfony": ">=2.0"
            },
            "type": "symfony-bundle",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.0.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Liip\\DoctrineCacheBundle\\": ""
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Liip AG",
                    "homepage": "http://www.liip.ch/"
                }
            ],
            "description": "This Bundle provides integration into Symfony2 with the Doctrine Common Cache layer.",
            "keywords": [
                "Symfony2",
                "cache"
            ],
            "time": "2013-08-08 14:44:34"
        },
        {
            "name": "liip/imagine-bundle",
            "version": "v0.9.4",
            "target-dir": "Liip/ImagineBundle",
            "source": {
                "type": "git",
                "url": "https://github.com/liip/LiipImagineBundle.git",
                "reference": "7b2cd5c8af3fb6602eecc83fb4dac74986a97bdb"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/liip/LiipImagineBundle/zipball/7b2cd5c8af3fb6602eecc83fb4dac74986a97bdb",
                "reference": "7b2cd5c8af3fb6602eecc83fb4dac74986a97bdb",
                "shasum": ""
            },
            "require": {
                "imagine/imagine": "0.4.*",
                "php": ">=5.3.2",
                "symfony/filesystem": ">=2.0.16,~2.0",
                "symfony/finder": ">=2.0.16,~2.0",
                "symfony/framework-bundle": ">=2.0.16,~2.0"
            },
            "require-dev": {
                "symfony/yaml": ">=2.0.16,~2.0",
                "twig/twig": ">=1.0,<2.0-dev"
            },
            "suggest": {
                "twig/twig": ">=1.0,<2.0-dev"
            },
            "type": "symfony-bundle",
            "autoload": {
                "psr-0": {
                    "Liip\\ImagineBundle": ""
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Liip and other contributors",
                    "homepage": "https://github.com/liip/LiipImagineBundle/contributors"
                }
            ],
            "description": "This Bundle assists in imagine manipulation using the imagine library",
            "homepage": "http://liip.ch",
            "keywords": [
                "image",
                "imagine"
            ],
            "time": "2013-05-14 20:16:40"
        },
        {
            "name": "mathiasverraes/money",
            "version": "dev-master",
            "source": {
                "type": "git",
                "url": "https://github.com/mathiasverraes/money.git",
                "reference": "7ad21182d92451c461734069300e5668c8e2d2c5"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/mathiasverraes/money/zipball/7ad21182d92451c461734069300e5668c8e2d2c5",
                "reference": "7ad21182d92451c461734069300e5668c8e2d2c5",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.3"
            },
            "require-dev": {
                "phpunit/phpunit": "3.7.*"
            },
            "suggest": {
                "Sylius/SyliusMoneyBundle": "Sylius' Symfony2 integration with Money library",
                "pink-tie/money-bundle": "Pink-Tie's Symfony2 integration with Money library"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.3.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Money": "lib"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Mathias Verraes",
                    "email": "mathias@verraes.net",
                    "role": "Developer of wrapped Money library"
                }
            ],
            "description": "PHP implementation of Fowler's Money pattern",
            "homepage": "http://verraes.net/2011/04/fowler-money-pattern-in-php/",
            "keywords": [
                "Generic Sub-domain",
                "Value Object",
                "money"
            ],
            "time": "2013-09-18 19:36:25"
        },
        {
            "name": "monolog/monolog",
            "version": "1.6.0",
            "source": {
                "type": "git",
                "url": "https://github.com/Seldaek/monolog.git",
                "reference": "f72392d0e6eb855118f5a84e89ac2d257c704abd"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/Seldaek/monolog/zipball/f72392d0e6eb855118f5a84e89ac2d257c704abd",
                "reference": "f72392d0e6eb855118f5a84e89ac2d257c704abd",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.0",
                "psr/log": "~1.0"
            },
            "require-dev": {
                "doctrine/couchdb": "dev-master",
                "mlehner/gelf-php": "1.0.*",
                "raven/raven": "0.5.*"
            },
            "suggest": {
                "doctrine/couchdb": "Allow sending log messages to a CouchDB server",
                "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
                "ext-mongo": "Allow sending log messages to a MongoDB server",
                "mlehner/gelf-php": "Allow sending log messages to a GrayLog2 server",
                "raven/raven": "Allow sending log messages to a Sentry server"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.6.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Monolog": "src/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Jordi Boggiano",
                    "email": "j.boggiano@seld.be",
                    "homepage": "http://seld.be",
                    "role": "Developer"
                }
            ],
            "description": "Sends your logs to files, sockets, inboxes, databases and various web services",
            "homepage": "http://github.com/Seldaek/monolog",
            "keywords": [
                "log",
                "logging",
                "psr-3"
            ],
            "time": "2013-07-28 22:38:30"
        },
        {
            "name": "nikic/php-parser",
            "version": "v0.9.1",
            "source": {
                "type": "git",
                "url": "https://github.com/nikic/PHP-Parser.git",
                "reference": "b1cc9ce676b4350b23d0fafc8244d08eee2fe287"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/b1cc9ce676b4350b23d0fafc8244d08eee2fe287",
                "reference": "b1cc9ce676b4350b23d0fafc8244d08eee2fe287",
                "shasum": ""
            },
            "require": {
                "php": ">=5.2"
            },
            "type": "library",
            "autoload": {
                "psr-0": {
                    "PHPParser": "lib/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD"
            ],
            "authors": [
                {
                    "name": "Nikita Popov"
                }
            ],
            "description": "A PHP parser written in PHP",
            "keywords": [
                "parser",
                "php"
            ],
            "time": "2012-04-23 22:52:11"
        },
        {
            "name": "omnipay/omnipay",
            "version": "dev-master",
            "source": {
                "type": "git",
                "url": "https://github.com/adrianmacneil/omnipay.git",
                "reference": "381d1abbd12a7fc8d70497f4735aa83fdf71ead3"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/adrianmacneil/omnipay/zipball/381d1abbd12a7fc8d70497f4735aa83fdf71ead3",
                "reference": "381d1abbd12a7fc8d70497f4735aa83fdf71ead3",
                "shasum": ""
            },
            "require": {
                "guzzle/http": "~3.1",
                "php": ">=5.3.2",
                "symfony/http-foundation": "~2.1"
            },
            "require-dev": {
                "guzzle/plugin-mock": "~3.1",
                "mockery/mockery": "~0.7",
                "phpunit/phpunit": "~3.7.16",
                "silex/silex": "1.0.*@dev",
                "squizlabs/php_codesniffer": "~1.4.4",
                "twig/twig": "~1.12"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.0.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Omnipay": "src/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Adrian Macneil",
                    "email": "adrian@adrianmacneil.com"
                }
            ],
            "description": "A framework agnostic, multi-gateway payment processing library",
            "homepage": "https://github.com/adrianmacneil/omnipay",
            "keywords": [
                "2checkout",
                "2co",
                "auth.net",
                "authorize",
                "authorize.net",
                "buckaroo",
                "cardsave",
                "commweb",
                "dps",
                "egate",
                "eway",
                "express",
                "gateway",
                "gocardless",
                "ideal",
                "merchant",
                "migs",
                "mollie",
                "multisafepay",
                "netaxept",
                "netbanx",
                "pay",
                "payfast",
                "payflow",
                "payment",
                "paymentexpress",
                "paypal",
                "pin",
                "purchase",
                "rapid",
                "sagepay",
                "securepay",
                "stripe",
                "tala",
                "tala-payments",
                "targetpay",
                "twocheckout",
                "worldpay"
            ],
            "time": "2013-10-06 07:38:53"
        },
        {
            "name": "pagerfanta/pagerfanta",
            "version": "v1.0.1",
            "source": {
                "type": "git",
                "url": "https://github.com/whiteoctober/Pagerfanta.git",
                "reference": "9568187b789a39a3933c71e4e28b60fc2c26b70d"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/whiteoctober/Pagerfanta/zipball/9568187b789a39a3933c71e4e28b60fc2c26b70d",
                "reference": "9568187b789a39a3933c71e4e28b60fc2c26b70d",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.0"
            },
            "require-dev": {
                "doctrine/mongodb-odm": "*",
                "doctrine/orm": "2.*",
                "mandango/mandango": "*",
                "propel/propel1": "~1.6",
                "solarium/solarium": "dev-develop"
            },
            "suggest": {
                "doctrine/mongodb-odm": "To use the DoctrineODMMongoDBAdapter.",
                "doctrine/orm": "To use the DoctrineORMAdapter.",
                "mandango/mandango": "To use the MandangoAdapter.",
                "propel/propel1": "To use the PropelAdapter",
                "solarium/solarium": "To use the SolariumAdapter."
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.0.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Pagerfanta\\": "src/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Pablo Díez",
                    "email": "pablodip@gmail.com",
                    "homepage": "http://github.com/pablodip"
                }
            ],
            "description": "Pagination for PHP 5.3",
            "keywords": [
                "page",
                "pagination",
                "paginator",
                "paging"
            ],
            "time": "2013-09-23 08:06:55"
        },
        {
            "name": "phpcollection/phpcollection",
            "version": "0.2.0",
            "source": {
                "type": "git",
                "url": "https://github.com/schmittjoh/php-collection.git",
                "reference": "acb02a921bb364f360ce786b13455345063c4a07"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/schmittjoh/php-collection/zipball/acb02a921bb364f360ce786b13455345063c4a07",
                "reference": "acb02a921bb364f360ce786b13455345063c4a07",
                "shasum": ""
            },
            "require": {
                "phpoption/phpoption": "1.*"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "0.2-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "PhpCollection": "src/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "Apache2"
            ],
            "authors": [
                {
                    "name": "Johannes M. Schmitt",
                    "email": "schmittjoh@gmail.com",
                    "homepage": "http://jmsyst.com",
                    "role": "Developer of wrapped JMSSerializerBundle"
                }
            ],
            "description": "General-Purpose Collection Library for PHP",
            "keywords": [
                "collection",
                "list",
                "map",
                "sequence",
                "set"
            ],
            "time": "2013-01-23 15:16:14"
        },
        {
            "name": "phpoption/phpoption",
            "version": "1.3.0",
            "source": {
                "type": "git",
                "url": "https://github.com/schmittjoh/php-option.git",
                "reference": "1c7e8016289d17d83ced49c56d0f266fd0568941"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/1c7e8016289d17d83ced49c56d0f266fd0568941",
                "reference": "1c7e8016289d17d83ced49c56d0f266fd0568941",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.0"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.3-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "PhpOption\\": "src/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "Apache2"
            ],
            "authors": [
                {
                    "name": "Johannes M. Schmitt",
                    "email": "schmittjoh@gmail.com",
                    "homepage": "http://jmsyst.com",
                    "role": "Developer of wrapped JMSSerializerBundle"
                }
            ],
            "description": "Option Type for PHP",
            "keywords": [
                "language",
                "option",
                "php",
                "type"
            ],
            "time": "2013-05-19 11:09:35"
        },
        {
            "name": "psr/log",
            "version": "1.0.0",
            "source": {
                "type": "git",
                "url": "https://github.com/php-fig/log.git",
                "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/php-fig/log/zipball/fe0936ee26643249e916849d48e3a51d5f5e278b",
                "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b",
                "shasum": ""
            },
            "type": "library",
            "autoload": {
                "psr-0": {
                    "Psr\\Log\\": ""
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "PHP-FIG",
                    "homepage": "http://www.php-fig.org/"
                }
            ],
            "description": "Common interface for logging libraries",
            "keywords": [
                "log",
                "psr",
                "psr-3"
            ],
            "time": "2012-12-21 11:40:51"
        },
        {
            "name": "sensio/distribution-bundle",
            "version": "v2.3.4",
            "target-dir": "Sensio/Bundle/DistributionBundle",
            "source": {
                "type": "git",
                "url": "https://github.com/sensiolabs/SensioDistributionBundle.git",
                "reference": "66df91b4bd637a83299d8072aed3658bfd3b3021"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/sensiolabs/SensioDistributionBundle/zipball/66df91b4bd637a83299d8072aed3658bfd3b3021",
                "reference": "66df91b4bd637a83299d8072aed3658bfd3b3021",
                "shasum": ""
            },
            "require": {
                "symfony/framework-bundle": "~2.2"
            },
            "type": "symfony-bundle",
            "extra": {
                "branch-alias": {
                    "dev-master": "2.3.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Sensio\\Bundle\\DistributionBundle": ""
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Fabien Potencier",
                    "email": "fabien@symfony.com"
                }
            ],
            "description": "The base bundle for the Symfony Distributions",
            "keywords": [
                "configuration",
                "distribution"
            ],
            "time": "2013-08-22 05:04:53"
        },
        {
            "name": "stof/doctrine-extensions-bundle",
            "version": "v1.1.0",
            "target-dir": "Stof/DoctrineExtensionsBundle",
            "source": {
                "type": "git",
                "url": "https://github.com/stof/StofDoctrineExtensionsBundle.git",
                "reference": "0aa21137bcae43241ffa047946bbdd46b91a2b0a"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/stof/StofDoctrineExtensionsBundle/zipball/0aa21137bcae43241ffa047946bbdd46b91a2b0a",
                "reference": "0aa21137bcae43241ffa047946bbdd46b91a2b0a",
                "shasum": ""
            },
            "require": {
                "gedmo/doctrine-extensions": "2.3.*",
                "php": ">=5.3.2",
                "symfony/framework-bundle": "~2.1"
            },
            "suggest": {
                "doctrine/doctrine-bundle": "to use the ORM extensions",
                "doctrine/mongodb-odm-bundle": "to use the MongoDB ODM extensions"
            },
            "type": "symfony-bundle",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.1.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Stof\\DoctrineExtensionsBundle": ""
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Christophe Coevoet",
                    "email": "stof@notk.org"
                }
            ],
            "description": "Integration of the gedmo/doctrine-extensions with Symfony2",
            "homepage": "https://github.com/stof/StofDoctrineExtensionsBundle",
            "keywords": [
                "behaviors",
                "doctrine2",
                "extensions",
                "gedmo",
                "loggable",
                "nestedset",
                "sluggable",
                "sortable",
                "timestampable",
                "translatable",
                "tree"
            ],
            "time": "2013-06-23 16:53:41"
        },
        {
            "name": "swiftmailer/swiftmailer",
            "version": "v5.0.2",
            "source": {
                "type": "git",
                "url": "https://github.com/swiftmailer/swiftmailer.git",
                "reference": "f3917ecef35a4e4d98b303eb9fee463bc983f379"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/f3917ecef35a4e4d98b303eb9fee463bc983f379",
                "reference": "f3917ecef35a4e4d98b303eb9fee463bc983f379",
                "shasum": ""
            },
            "require": {
                "php": ">=5.2.4"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "5.1-dev"
                }
            },
            "autoload": {
                "files": [
                    "lib/swift_required.php"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Fabien Potencier",
                    "email": "fabien@symfony.com"
                },
                {
                    "name": "Chris Corbyn"
                }
            ],
            "description": "Swiftmailer, free feature-rich PHP mailer",
            "homepage": "http://swiftmailer.org",
            "keywords": [
                "mail",
                "mailer"
            ],
            "time": "2013-08-30 12:35:21"
        },
        {
            "name": "symfony/assetic-bundle",
            "version": "v2.3.0",
            "target-dir": "Symfony/Bundle/AsseticBundle",
            "source": {
                "type": "git",
                "url": "https://github.com/symfony/AsseticBundle.git",
                "reference": "146dd3cb46b302bd471560471c6aaa930483dac1"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/symfony/AsseticBundle/zipball/146dd3cb46b302bd471560471c6aaa930483dac1",
                "reference": "146dd3cb46b302bd471560471c6aaa930483dac1",
                "shasum": ""
            },
            "require": {
                "kriswallsmith/assetic": "~1.1",
                "php": ">=5.3.0",
                "symfony/framework-bundle": "~2.1"
            },
            "require-dev": {
                "symfony/class-loader": "~2.1",
                "symfony/console": "~2.1",
                "symfony/css-selector": "~2.1",
                "symfony/dom-crawler": "~2.1",
                "symfony/form": "~2.1",
                "symfony/twig-bundle": "~2.1",
                "symfony/yaml": "~2.1"
            },
            "suggest": {
                "symfony/twig-bundle": "~2.1"
            },
            "type": "symfony-bundle",
            "extra": {
                "branch-alias": {
                    "dev-master": "2.1.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Symfony\\Bundle\\AsseticBundle": ""
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Kris Wallsmith",
                    "email": "kris.wallsmith@gmail.com",
                    "homepage": "http://kriswallsmith.net/"
                }
            ],
            "description": "Integrates Assetic into Symfony2",
            "homepage": "https://github.com/symfony/AsseticBundle",
            "keywords": [
                "assets",
                "compression",
                "minification"
            ],
            "time": "2013-05-16 05:32:23"
        },
        {
            "name": "symfony/icu",
            "version": "v1.2.0",
            "target-dir": "Symfony/Component/Icu",
            "source": {
                "type": "git",
                "url": "https://github.com/symfony/Icu.git",
                "reference": "7299cd3d8d6602103d1ebff5d0a9917b7bc6de72"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/symfony/Icu/zipball/7299cd3d8d6602103d1ebff5d0a9917b7bc6de72",
                "reference": "7299cd3d8d6602103d1ebff5d0a9917b7bc6de72",
                "shasum": ""
            },
            "require": {
                "lib-icu": ">=4.4",
                "php": ">=5.3.3",
                "symfony/intl": "~2.3"
            },
            "type": "library",
            "autoload": {
                "psr-0": {
                    "Symfony\\Component\\Icu\\": ""
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Symfony Community",
                    "homepage": "http://symfony.com/contributors"
                },
                {
                    "name": "Bernhard Schussek",
                    "email": "bschussek@gmail.com"
                }
            ],
            "description": "Contains an excerpt of the ICU data and classes to load it.",
            "homepage": "http://symfony.com",
            "keywords": [
                "icu",
                "intl"
            ],
            "time": "2013-06-03 18:32:58"
        },
        {
            "name": "symfony/monolog-bundle",
            "version": "v2.3.0",
            "target-dir": "Symfony/Bundle/MonologBundle",
            "source": {
                "type": "git",
                "url": "https://github.com/symfony/MonologBundle.git",
                "reference": "03ed73bc11367b3156cc21f22ac37c7f70fcd10a"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/symfony/MonologBundle/zipball/03ed73bc11367b3156cc21f22ac37c7f70fcd10a",
                "reference": "03ed73bc11367b3156cc21f22ac37c7f70fcd10a",
                "shasum": ""
            },
            "require": {
                "monolog/monolog": "~1.3",
                "php": ">=5.3.2",
                "symfony/config": "~2.2-beta2",
                "symfony/dependency-injection": "~2.2-beta2",
                "symfony/monolog-bridge": "~2.2-beta2"
            },
            "require-dev": {
                "symfony/yaml": "~2.2-beta2"
            },
            "type": "symfony-bundle",
            "extra": {
                "branch-alias": {
                    "dev-master": "2.2.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Symfony\\Bundle\\MonologBundle": ""
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Fabien Potencier",
                    "email": "fabien@symfony.com"
                },
                {
                    "name": "Symfony Community",
                    "homepage": "http://symfony.com/contributors"
                }
            ],
            "description": "Symfony MonologBundle",
            "homepage": "http://symfony.com",
            "keywords": [
                "log",
                "logging"
            ],
            "time": "2013-05-27 18:06:55"
        },
        {
            "name": "symfony/swiftmailer-bundle",
            "version": "v2.3.4",
            "target-dir": "Symfony/Bundle/SwiftmailerBundle",
            "source": {
                "type": "git",
                "url": "https://github.com/symfony/SwiftmailerBundle.git",
                "reference": "f5e5d12629c26a835c7aa1d74e2e041486b92d93"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/symfony/SwiftmailerBundle/zipball/f5e5d12629c26a835c7aa1d74e2e041486b92d93",
                "reference": "f5e5d12629c26a835c7aa1d74e2e041486b92d93",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.2",
                "swiftmailer/swiftmailer": ">=4.2.0,<5.1-dev",
                "symfony/swiftmailer-bridge": "~2.1"
            },
            "require-dev": {
                "symfony/config": "~2.1",
                "symfony/dependency-injection": "~2.1",
                "symfony/http-kernel": "~2.1",
                "symfony/yaml": "~2.1"
            },
            "type": "symfony-bundle",
            "extra": {
                "branch-alias": {
                    "dev-master": "2.2-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Symfony\\Bundle\\SwiftmailerBundle": ""
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Fabien Potencier",
                    "email": "fabien@symfony.com"
                },
                {
                    "name": "Symfony Community",
                    "homepage": "http://symfony.com/contributors"
                }
            ],
            "description": "Symfony SwiftmailerBundle",
            "homepage": "http://symfony.com",
            "time": "2013-08-22 13:32:58"
        },
        {
            "name": "symfony/symfony",
            "version": "v2.3.5",
            "source": {
                "type": "git",
                "url": "https://github.com/symfony/symfony.git",
                "reference": "aa5626cd2a359567c948ebdeeca68d948640302f"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/symfony/symfony/zipball/aa5626cd2a359567c948ebdeeca68d948640302f",
                "reference": "aa5626cd2a359567c948ebdeeca68d948640302f",
                "shasum": ""
            },
            "require": {
                "doctrine/common": "~2.2",
                "php": ">=5.3.3",
                "psr/log": "~1.0",
                "symfony/icu": "~1.0",
                "twig/twig": "~1.11"
            },
            "replace": {
                "symfony/browser-kit": "self.version",
                "symfony/class-loader": "self.version",
                "symfony/config": "self.version",
                "symfony/console": "self.version",
                "symfony/css-selector": "self.version",
                "symfony/debug": "self.version",
                "symfony/dependency-injection": "self.version",
                "symfony/doctrine-bridge": "self.version",
                "symfony/dom-crawler": "self.version",
                "symfony/event-dispatcher": "self.version",
                "symfony/filesystem": "self.version",
                "symfony/finder": "self.version",
                "symfony/form": "self.version",
                "symfony/framework-bundle": "self.version",
                "symfony/http-foundation": "self.version",
                "symfony/http-kernel": "self.version",
                "symfony/intl": "self.version",
                "symfony/locale": "self.version",
                "symfony/monolog-bridge": "self.version",
                "symfony/options-resolver": "self.version",
                "symfony/process": "self.version",
                "symfony/propel1-bridge": "self.version",
                "symfony/property-access": "self.version",
                "symfony/proxy-manager-bridge": "self.version",
                "symfony/routing": "self.version",
                "symfony/security": "self.version",
                "symfony/security-bundle": "self.version",
                "symfony/serializer": "self.version",
                "symfony/stopwatch": "self.version",
                "symfony/swiftmailer-bridge": "self.version",
                "symfony/templating": "self.version",
                "symfony/translation": "self.version",
                "symfony/twig-bridge": "self.version",
                "symfony/twig-bundle": "self.version",
                "symfony/validator": "self.version",
                "symfony/web-profiler-bundle": "self.version",
                "symfony/yaml": "self.version"
            },
            "require-dev": {
                "doctrine/data-fixtures": "1.0.*",
                "doctrine/dbal": "~2.2",
                "doctrine/orm": "~2.2,>=2.2.3",
                "ircmaxell/password-compat": "1.0.*",
                "monolog/monolog": "~1.3",
                "ocramius/proxy-manager": ">=0.3.1,<0.4-dev",
                "propel/propel1": "1.6.*"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "2.3-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Symfony\\": "src/"
                },
                "classmap": [
                    "src/Symfony/Component/HttpFoundation/Resources/stubs",
                    "src/Symfony/Component/Intl/Resources/stubs"
                ],
                "files": [
                    "src/Symfony/Component/Intl/Resources/stubs/functions.php"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Fabien Potencier",
                    "email": "fabien@symfony.com"
                },
                {
                    "name": "Symfony Community",
                    "homepage": "http://symfony.com/contributors"
                }
            ],
            "description": "The Symfony PHP framework",
            "homepage": "http://symfony.com",
            "keywords": [
                "framework"
            ],
            "time": "2013-09-27 07:31:40"
        },
        {
            "name": "twig/extensions",
            "version": "v1.0.0",
            "source": {
                "type": "git",
                "url": "https://github.com/fabpot/Twig-extensions.git",
                "reference": "921799aaf05f88af749d72912d6b154dfeb9a03e"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/fabpot/Twig-extensions/zipball/921799aaf05f88af749d72912d6b154dfeb9a03e",
                "reference": "921799aaf05f88af749d72912d6b154dfeb9a03e",
                "shasum": ""
            },
            "require": {
                "twig/twig": "1.*"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.0.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Twig_Extensions_": "lib/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Fabien Potencier",
                    "email": "fabien@symfony.com"
                }
            ],
            "description": "Common additional features for Twig that do not directly belong in core",
            "homepage": "https://github.com/fabpot/Twig-extensions",
            "keywords": [
                "debug",
                "i18n",
                "text"
            ],
            "time": "2013-02-28 14:21:30"
        },
        {
            "name": "twig/twig",
            "version": "v1.14.0",
            "source": {
                "type": "git",
                "url": "https://github.com/fabpot/Twig.git",
                "reference": "224fc55635d544a2ec8edb3592be18db5a093f59"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/fabpot/Twig/zipball/224fc55635d544a2ec8edb3592be18db5a093f59",
                "reference": "224fc55635d544a2ec8edb3592be18db5a093f59",
                "shasum": ""
            },
            "require": {
                "php": ">=5.2.4"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.14-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Twig_": "lib/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Fabien Potencier",
                    "email": "fabien@symfony.com"
                },
                {
                    "name": "Armin Ronacher",
                    "email": "armin.ronacher@active-4.com"
                }
            ],
            "description": "Twig, the flexible, fast, and secure template language for PHP",
            "homepage": "http://twig.sensiolabs.org",
            "keywords": [
                "templating"
            ],
            "time": "2013-10-03 06:41:20"
        },
        {
            "name": "white-october/pagerfanta-bundle",
            "version": "dev-master",
            "target-dir": "WhiteOctober/PagerfantaBundle",
            "source": {
                "type": "git",
                "url": "https://github.com/whiteoctober/WhiteOctoberPagerfantaBundle.git",
                "reference": "d02dcf3fb08e57267dfdae73687a20601157e6a5"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/whiteoctober/WhiteOctoberPagerfantaBundle/zipball/d02dcf3fb08e57267dfdae73687a20601157e6a5",
                "reference": "d02dcf3fb08e57267dfdae73687a20601157e6a5",
                "shasum": ""
            },
            "require": {
                "pagerfanta/pagerfanta": "1.0.*",
                "symfony/framework-bundle": "~2.1",
                "symfony/property-access": "~2.2"
            },
            "type": "symfony-bundle",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.0.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "WhiteOctober\\PagerfantaBundle": ""
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Pablo Díez",
                    "email": "pablodip@gmail.com",
                    "homepage": "http://github.com/pablodip"
                }
            ],
            "description": "Bundle to use Pagerfanta with Symfony2",
            "keywords": [
                "page",
                "paging"
            ],
            "time": "2013-09-26 11:26:40"
        },
        {
            "name": "willdurand/negotiation",
            "version": "1.0.1",
            "source": {
                "type": "git",
                "url": "https://github.com/willdurand/Negotiation.git",
                "reference": "6021e6a9e14d6ab62dcd4f83364058d4978d6890"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/willdurand/Negotiation/zipball/6021e6a9e14d6ab62dcd4f83364058d4978d6890",
                "reference": "6021e6a9e14d6ab62dcd4f83364058d4978d6890",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.0"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.0-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Negotiation": "src/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "William Durand",
                    "email": "william.durand1@gmail.com",
                    "homepage": "http://www.willdurand.fr"
                }
            ],
            "description": "Content Negotiation tools for PHP provided as a standalone library.",
            "homepage": "http://williamdurand.fr/Negotiation/",
            "keywords": [
                "accept",
                "content",
                "format",
                "header",
                "negotiation"
            ],
            "time": "2013-08-01 14:42:09"
        }
    ],
    "packages-dev": [
        {
            "name": "behat/behat",
            "version": "v2.4.6",
            "source": {
                "type": "git",
                "url": "https://github.com/Behat/Behat.git",
                "reference": "f1d2964667cf4b21bb6c2c1564f26829a6954155"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/Behat/Behat/zipball/f1d2964667cf4b21bb6c2c1564f26829a6954155",
                "reference": "f1d2964667cf4b21bb6c2c1564f26829a6954155",
                "shasum": ""
            },
            "require": {
                "behat/gherkin": "~2.2.9",
                "php": ">=5.3.1",
                "symfony/config": "~2.0",
                "symfony/console": "~2.0",
                "symfony/dependency-injection": "~2.0",
                "symfony/event-dispatcher": "~2.0",
                "symfony/finder": "~2.0",
                "symfony/translation": "~2.0",
                "symfony/yaml": "~2.0"
            },
            "require-dev": {
                "phpunit/phpunit": "~3.7.19"
            },
            "suggest": {
                "behat/mink-extension": "for integration with Mink testing framework",
                "behat/symfony2-extension": "for integration with Symfony2 web framework",
                "behat/yii-extension": "for integration with Yii web framework"
            },
            "bin": [
                "bin/behat"
            ],
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-develop": "2.4-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Behat\\Behat": "src/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Konstantin Kudryashov",
                    "email": "ever.zet@gmail.com",
                    "homepage": "http://everzet.com"
                }
            ],
            "description": "Scenario-oriented BDD framework for PHP 5.3",
            "homepage": "http://behat.org/",
            "keywords": [
                "BDD",
                "Behat",
                "Symfony2"
            ],
            "time": "2013-06-06 10:46:48"
        },
        {
            "name": "behat/gherkin",
            "version": "v2.2.9",
            "source": {
                "type": "git",
                "url": "https://github.com/Behat/Gherkin.git",
                "reference": "cca2c477921ca38578d6e9759ea5e450f29c2d8f"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/Behat/Gherkin/zipball/cca2c477921ca38578d6e9759ea5e450f29c2d8f",
                "reference": "cca2c477921ca38578d6e9759ea5e450f29c2d8f",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.1",
                "symfony/finder": ">=2.0,<2.4-dev"
            },
            "require-dev": {
                "symfony/config": ">=2.0,<2.4-dev",
                "symfony/translation": ">=2.0,<2.4-dev",
                "symfony/yaml": ">=2.0,<2.4-dev"
            },
            "suggest": {
                "symfony/config": "If you want to use Config component to manage resources",
                "symfony/translation": "If you want to use Symfony2 translations adapter",
                "symfony/yaml": "If you want to parse features, represented in YAML files"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-develop": "2.2-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Behat\\Gherkin": "src/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Konstantin Kudryashov",
                    "email": "ever.zet@gmail.com",
                    "homepage": "http://everzet.com"
                }
            ],
            "description": "Gherkin DSL parser for PHP 5.3",
            "homepage": "http://behat.org/",
            "keywords": [
                "BDD",
                "Behat",
                "DSL",
                "Symfony2",
                "parser"
            ],
            "time": "2013-03-02 10:38:40"
        },
        {
            "name": "behat/mink",
            "version": "v1.5.0",
            "source": {
                "type": "git",
                "url": "https://github.com/Behat/Mink.git",
                "reference": "0769e6d9726c140a54dbf827a438c0f9912749fe"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/Behat/Mink/zipball/0769e6d9726c140a54dbf827a438c0f9912749fe",
                "reference": "0769e6d9726c140a54dbf827a438c0f9912749fe",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.1",
                "symfony/css-selector": "~2.0"
            },
            "suggest": {
                "behat/mink-browserkit-driver": "extremely fast headless driver for Symfony\\Kernel-based apps (Sf2, Silex)",
                "behat/mink-goutte-driver": "fast headless driver for any app without JS emulation",
                "behat/mink-selenium2-driver": "slow, but JS-enabled driver for any app (requires Selenium2)",
                "behat/mink-zombie-driver": "fast and JS-enabled headless driver for any app (requires node.js)"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-develop": "1.5.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Behat\\Mink": "src/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Konstantin Kudryashov",
                    "email": "ever.zet@gmail.com",
                    "homepage": "http://everzet.com"
                }
            ],
            "description": "Web acceptance testing framework for PHP 5.3",
            "homepage": "http://mink.behat.org/",
            "keywords": [
                "browser",
                "testing",
                "web"
            ],
            "time": "2013-04-13 23:39:27"
        },
        {
            "name": "behat/mink-browserkit-driver",
            "version": "v1.1.0",
            "source": {
                "type": "git",
                "url": "https://github.com/Behat/MinkBrowserKitDriver.git",
                "reference": "63960c8fcad4529faad1ff33e950217980baa64c"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/Behat/MinkBrowserKitDriver/zipball/63960c8fcad4529faad1ff33e950217980baa64c",
                "reference": "63960c8fcad4529faad1ff33e950217980baa64c",
                "shasum": ""
            },
            "require": {
                "behat/mink": "~1.5.0",
                "php": ">=5.3.1",
                "symfony/browser-kit": "~2.0",
                "symfony/dom-crawler": "~2.0"
            },
            "require-dev": {
                "silex/silex": "@dev"
            },
            "type": "mink-driver",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.1.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Behat\\Mink\\Driver": "src/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Konstantin Kudryashov",
                    "email": "ever.zet@gmail.com",
                    "homepage": "http://everzet.com"
                }
            ],
            "description": "Symfony2 BrowserKit driver for Mink framework",
            "homepage": "http://mink.behat.org/",
            "keywords": [
                "Mink",
                "Symfony2",
                "browser",
                "testing"
            ],
            "time": "2013-04-13 23:46:30"
        },
        {
            "name": "behat/mink-extension",
            "version": "v1.1.4",
            "source": {
                "type": "git",
                "url": "https://github.com/Behat/MinkExtension.git",
                "reference": "b4522f19fe96d423883f2e3650615e19d3a48c05"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/Behat/MinkExtension/zipball/b4522f19fe96d423883f2e3650615e19d3a48c05",
                "reference": "b4522f19fe96d423883f2e3650615e19d3a48c05",
                "shasum": ""
            },
            "require": {
                "behat/behat": "~2.4.5",
                "behat/mink": ">=1.4.3,<1.6-dev",
                "php": ">=5.3.2"
            },
            "require-dev": {
                "behat/mink-goutte-driver": "~1.0"
            },
            "type": "behat-extension",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.1.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Behat\\MinkExtension": "src/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Konstantin Kudryashov",
                    "email": "ever.zet@gmail.com",
                    "homepage": "http://everzet.com"
                }
            ],
            "description": "Mink extension for Behat",
            "homepage": "http://mink.behat.org",
            "keywords": [
                "browser",
                "gui",
                "test",
                "web"
            ],
            "time": "2013-06-04 12:18:22"
        },
        {
            "name": "behat/mink-selenium2-driver",
            "version": "v1.1.1",
            "source": {
                "type": "git",
                "url": "https://github.com/Behat/MinkSelenium2Driver.git",
                "reference": "bcf1b537de37db6db0822d9e7bd97e600fd7a476"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/Behat/MinkSelenium2Driver/zipball/bcf1b537de37db6db0822d9e7bd97e600fd7a476",
                "reference": "bcf1b537de37db6db0822d9e7bd97e600fd7a476",
                "shasum": ""
            },
            "require": {
                "behat/mink": "~1.5.0",
                "instaclick/php-webdriver": "~1.0.12",
                "php": ">=5.3.1"
            },
            "type": "mink-driver",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.1.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Behat\\Mink\\Driver": "src/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Konstantin Kudryashov",
                    "email": "ever.zet@gmail.com",
                    "homepage": "http://everzet.com"
                },
                {
                    "name": "Pete Otaqui",
                    "email": "pete@otaqui.com",
                    "homepage": "https://github.com/pete-otaqui"
                }
            ],
            "description": "Selenium2 (WebDriver) driver for Mink framework",
            "homepage": "http://mink.behat.org/",
            "keywords": [
                "ajax",
                "browser",
                "javascript",
                "selenium",
                "testing",
                "webdriver"
            ],
            "time": "2013-06-02 19:09:45"
        },
        {
            "name": "behat/symfony2-extension",
            "version": "v1.0.2",
            "source": {
                "type": "git",
                "url": "https://github.com/Behat/Symfony2Extension.git",
                "reference": "cb68f8b30b33ad51b0832a39c3886c7244889ace"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/Behat/Symfony2Extension/zipball/cb68f8b30b33ad51b0832a39c3886c7244889ace",
                "reference": "cb68f8b30b33ad51b0832a39c3886c7244889ace",
                "shasum": ""
            },
            "require": {
                "behat/behat": "~2.4.5",
                "php": ">=5.3.2",
                "symfony/framework-bundle": "~2.0"
            },
            "require-dev": {
                "behat/mink": "~1.4.3",
                "behat/mink-browserkit-driver": "~1.0.4",
                "behat/mink-extension": "~1.0.1",
                "symfony/symfony": "~2.1"
            },
            "type": "behat-extension",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.0.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Behat\\Symfony2Extension": "src/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Konstantin Kudryashov",
                    "email": "ever.zet@gmail.com",
                    "homepage": "http://everzet.com"
                }
            ],
            "description": "Symfony2 framework extension for Behat",
            "homepage": "http://behat.org",
            "keywords": [
                "BDD",
                "framework",
                "symfony"
            ],
            "time": "2013-06-06 20:36:08"
        },
        {
            "name": "instaclick/php-webdriver",
            "version": "1.0.17",
            "source": {
                "type": "git",
                "url": "https://github.com/instaclick/php-webdriver.git",
                "reference": "47a6019553a7a5b42d35493276ffc2c9252c53d5"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/instaclick/php-webdriver/zipball/47a6019553a7a5b42d35493276ffc2c9252c53d5",
                "reference": "47a6019553a7a5b42d35493276ffc2c9252c53d5",
                "shasum": ""
            },
            "require": {
                "ext-curl": "*",
                "php": ">=5.3.2"
            },
            "bin": [
                "bin/webunit"
            ],
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.0.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "WebDriver": "lib/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "Apache-2.0"
            ],
            "authors": [
                {
                    "name": "Justin Bishop",
                    "email": "jubishop@gmail.com",
                    "role": "Developer"
                },
                {
                    "name": "Anthon Pang",
                    "email": "apang@softwaredevelopment.ca",
                    "role": "Fork Maintainer"
                }
            ],
            "description": "PHP WebDriver for Selenium 2",
            "homepage": "http://instaclick.com/",
            "keywords": [
                "browser",
                "selenium",
                "webdriver",
                "webtest"
            ],
            "time": "2013-10-04 15:03:51"
        },
        {
            "name": "phpspec/php-diff",
            "version": "v1.0.1",
            "source": {
                "type": "git",
                "url": "https://github.com/phpspec/php-diff.git",
                "reference": "8d82ac415225fac373a4073ba14b1fe286aa2312"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/phpspec/php-diff/zipball/8d82ac415225fac373a4073ba14b1fe286aa2312",
                "reference": "8d82ac415225fac373a4073ba14b1fe286aa2312",
                "shasum": ""
            },
            "type": "library",
            "autoload": {
                "psr-0": {
                    "Diff": "lib/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Chris Boulton",
                    "homepage": "http://github.com/chrisboulton"
                }
            ],
            "description": "A comprehensive library for generating differences between two hashable objects (strings or arrays).",
            "time": "2012-11-08 08:55:45"
        },
        {
            "name": "phpspec/phpspec",
            "version": "dev-master",
            "source": {
                "type": "git",
                "url": "https://github.com/phpspec/phpspec.git",
                "reference": "d8f64251d27dc1bb17b76608d620374b6b51f9ff"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/phpspec/phpspec/zipball/d8f64251d27dc1bb17b76608d620374b6b51f9ff",
                "reference": "d8f64251d27dc1bb17b76608d620374b6b51f9ff",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.3",
                "phpspec/php-diff": "~1.0.0",
                "phpspec/prophecy": "~1.0.2",
                "symfony/console": "~2.1",
                "symfony/event-dispatcher": "~2.1",
                "symfony/finder": "~2.1",
                "symfony/yaml": "~2.1"
            },
            "suggest": {
                "whatthejeff/nyancat-scoreboard": "~1.1 – Enables the Nyan Cat formatter"
            },
            "bin": [
                "bin/phpspec"
            ],
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "2.0.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "PhpSpec": "src/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Konstantin Kudryashov",
                    "email": "ever.zet@gmail.com",
                    "homepage": "http://everzet.com"
                },
                {
                    "name": "Marcello Duarte",
                    "homepage": "http://marcelloduarte.net/"
                }
            ],
            "description": "Specification-oriented BDD framework for PHP 5.3+",
            "homepage": "http://phpspec.net/",
            "keywords": [
                "BDD",
                "SpecBDD",
                "TDD",
                "spec",
                "specification",
                "testing",
                "tests"
            ],
            "time": "2013-10-04 08:02:36"
        },
        {
            "name": "phpspec/prophecy",
            "version": "v1.0.4",
            "source": {
                "type": "git",
                "url": "https://github.com/phpspec/prophecy.git",
                "reference": "79d9c8bd94801bffbf9b56964f6438762da6d8cd"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/phpspec/prophecy/zipball/79d9c8bd94801bffbf9b56964f6438762da6d8cd",
                "reference": "79d9c8bd94801bffbf9b56964f6438762da6d8cd",
                "shasum": ""
            },
            "require-dev": {
                "phpspec/phpspec": "2.0.*"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.0.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Prophecy\\": "src/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Konstantin Kudryashov",
                    "email": "ever.zet@gmail.com",
                    "homepage": "http://everzet.com"
                },
                {
                    "name": "Marcello Duarte",
                    "email": "marcello.duarte@gmail.com"
                }
            ],
            "description": "Highly opinionated mocking framework for PHP 5.3+",
            "homepage": "http://phpspec.org",
            "keywords": [
                "Double",
                "Dummy",
                "fake",
                "mock",
                "spy",
                "stub"
            ],
            "time": "2013-08-10 11:11:45"
        }
    ],
    "aliases": [

    ],
    "minimum-stability": "stable",
    "stability-flags": {
        "athari/yalinqo": 20,
        "doctrine/doctrine-bundle": 20,
        "friendsofsymfony/user-bundle": 20,
        "knplabs/knp-menu-bundle": 20,
        "knplabs/knp-gaufrette-bundle": 20,
        "knplabs/knp-snappy-bundle": 20,
        "mathiasverraes/money": 20,
        "omnipay/omnipay": 20,
        "white-october/pagerfanta-bundle": 20,
        "behat/behat": 0,
        "phpspec/phpspec": 20
    },
    "platform": {
        "php": ">=5.3.3"
    },
    "platform-dev": [

    ]
}
{
    "name":        "sylius/sylius",
    "type":        "project",
    "description": "Modern ecommerce for Symfony2",
    "license":     "MIT",
    "homepage":    "http://sylius.org",
    "authors": [
        {
            "name":     "Paweł Jędrzejewski",
            "homepage": "http://pjedrzejewski.com"
        },
        {
            "name":     "Sylius project",
            "homepage": "http://sylius.org"
        },
        {
            "name":     "Community contributions",
            "homepage": "http://github.com/Sylius/Sylius/contributors"
        }
    ],
    "require": {
        "php":                                  ">=5.3.3",

        "athari/yalinqo":                       "*@dev",
        "doctrine/doctrine-bundle":             "1.2.*@dev",
        "doctrine/doctrine-fixtures-bundle":    "2.2.*",
        "doctrine/orm":                         "~2.3",
        "friendsofsymfony/rest-bundle":         "0.13.*",
        "friendsofsymfony/user-bundle":         "2.0.*@dev",
        "fzaninotto/faker":                     "1.2.*",
        "incenteev/composer-parameter-handler": "~2.0",
        "jms/serializer-bundle":                "0.12.*",
        "jms/translation-bundle":               "1.1.*",
        "knplabs/knp-menu-bundle":              "*@dev",
        "knplabs/knp-gaufrette-bundle":         "*@dev",
        "knplabs/knp-snappy-bundle":            "*@dev",
        "liip/doctrine-cache-bundle":           "*",
        "liip/imagine-bundle":                  "0.9.*",
        "mathiasverraes/money":                 "*@dev",
        "omnipay/omnipay":                      "*@dev",
        "sensio/distribution-bundle":           "2.3.*",
        "stof/doctrine-extensions-bundle":      "1.1.*",
        "symfony/assetic-bundle":               "2.3.*",
        "symfony/intl":                         "~2.3",
        "symfony/monolog-bundle":               "2.3.*",
        "symfony/swiftmailer-bundle":           "2.3.*",
        "symfony/symfony":                      "~2.3",
        "twig/extensions":                      "1.0.*",
        "white-october/pagerfanta-bundle":      "1.0.*@dev"
    },
    "require-dev": {
        "behat/behat":                  "2.4.*@stable",
        "behat/symfony2-extension":     "*",
        "behat/mink-extension":         "*",
        "behat/mink-browserkit-driver": "*",
        "phpspec/phpspec":              "2.0.*@dev",
        "behat/mink-selenium2-driver":  "*"
    },
    "scripts": {
        "post-install-cmd": [
            "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
        ],
        "post-update-cmd": [
            "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
        ]
    },
    "autoload": {
        "psr-0": { "Sylius\\": "src/" }
    },
    "config": {
        "bin-dir": "bin"
    },
    "extra": {
        "symfony-app-dir": "app",
        "symfony-web-dir": "web",
        "incenteev-parameters": {
            "file": "app/config/parameters.yml"
        }
    }
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta charset="utf-8" />
        <title>Exakat's PHP code review</title>
        <style type="text/css">
            body, html
            {
                margin: 0; padding: 0; height: 100%; overflow: hidden;
            }

            #content
            {
                position:absolute; left: 0; right: 0; bottom: 0; top: 0px; 
            }
        </style>
    </head>
    <body>
        <div id="content">
            <iframe name="main" width="100%" height="100%" frameborder="0" src="./data/index.html" />
        </div>
    </body>
</html>   Bud1                                                                     bwspblob                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             @                                              @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  d a t abwspblob   bplist00	
			]ShowStatusBar_SidebarWidthTenElevenOrLater[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar[ShowPathbar	#@k`     		_{{-846, 590}, {770, 436}}	'FR^u                                d a t adsclbool    d a t alsvCblob  bplist00	
HIHJLXiconSize_showIconPreview_calculateAllSizesWcolumns_scrollPositionYXtextSize_scrollPositionXZsortColumn_useRelativeDates_viewOptionsVersion#@0      	"&+05:?DWvisibleUwidthYascendingZidentifier		TnameXubiquity#\dateModified	#[dateCreated'(Tsizea	,-Tkinds		12Ulabeld	67WversionK	;<Xcomments,	@A^dateLastOpenedEYdateAdded#        #@(      Tname	    & 8 L T f o                 	,./09EFGPUWXYbgijktz|}~             M                  d a t alsvpblob  bplist00	
HIHJDXiconSize_showIconPreview_calculateAllSizesWcolumns_scrollPositionYXtextSize_scrollPositionXZsortColumn_useRelativeDates_viewOptionsVersion#@0      	!&+/49>CXcomments^dateLastOpened\dateModified[dateCreatedTsizeUlabelTkindWversionTname WvisibleUwidthYascendingUindex,	#%(*	(.13	a68d	;=	s	@BK	DE 		#        #@(      Tname	   & 8 L T f o            )17AGHKLNWXZ[]fgijluvwy             L                  d a t avSrnlong                                                                                                                                                                                                                                                                                                                                                         E                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         DSDB                                 `                                                  @                                                @                                                @       Modified[dateCreatedTsizeUlabelTkindWversionTname WvisibleUwidthYascendingUindex,	#%(*	(.13	a68d	;=	s	@BK	DE 		#        #@(      Tname	   & 8 L T f o            )17AGHKLNWXZ[]fgijluvwy             L                  d a t avSrnlong                                                                                                                                                                                                                                                                                                                                             
    		<section class="content-header">
    		<h1>
    		  {{TITLE}}
    		</h1>
    		</section>

    		<!-- Main content -->
    		<section id="files_overview" class="content">
    			<div class="row">
    				<div class="col-xs-12">
    					<div class="box">
    				    <div class="box-body">
    				      <table id="bloc-datatables" class="table table-bordered table-striped">
    				        <thead>
    				          <tr>
    				            {{TABLE_HEADERS}}
    				          </tr>
    				        </thead>
    				        <tbody>
                    {{TABLE_ROWS}}
    				        </tbody>
    				      </table>
    				    </div><!-- /.box-body -->
    				  </div><!-- /.box -->
    				</div>
    			</div>
    		</section>
    		<!-- /.content -->

        <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          Appinfo()
        </h1>
        <p>The phpinfo() of the application.</a>
        </section>

        <!-- Main content -->
        <section id="used_settings" class="content">
        	<div class="box">
        		<div class="box-body">
        			<div class="row">
        				<div class="col-xs-12">
                          {{APPINFO}}
        			  </div>
        			</div>
        		</div>
        	</div>
        </section>
      </div>
    </div>
        <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          Level 1 
        </h1>
        </section>

        <!-- Main content -->
        <section class="content" id="issues">

        	<div class="box">
        		<div class="box-body">
This is the Level 1 issues, found in your code. 
Once you have finished, you should tackle the issues of <a href="level2.html">Level 2</a>. 
{{TOTAL}} issues were found.
        			<div id="facets" class="filter clearfix"></div>
        			<table class="table table-striped">
                   		<thead>
                   			<tr>
                   				<th>Analysis</th>
                   				<th>File</th>
                   				<th>Code</th>
                          <th></th>
                   				<th>Severity</th>
                   				<th>Time To Fix</th>
                   				<th>Recipe</th>
                   			</tr>
                   		</thead>
                   		<tbody id="results">
                   		</tbody>
                   	</table>
        		</div>
        	</div>

        </section>
        <!-- Main content -->
        <section class="content" id="dashboard">

          <div class="row">
            <div class="col-md-12">
              <div class="box">
                <div class="box-header with-border">
                  <h3 class="box-title">Foreach Favorites Blind Variables</h3>
                </div>
                <div class="box-body chart-responsive">
                  <div class="chart" id="filename"></div>
                  <div class="clearfix">
                    <div class="block-cell-name bold">Variable</div>
                    <div class="block-cell-issue bold text-center">Count</div>
                  </div>
                  {{TOPFILE}}
                </div>
              </div>
            </div>
          </div>
        </section>
        <!-- Main content -->
        <section class="content" id="dashboard">

          <div class="row">
            <div class="col-md-12">
              <div class="box">
                <div class="box-header with-border">
                  <h3 class="box-title">{{TYPE}} Depth</h3>
                </div>
                <div class="box-body chart-responsive">
                  <div class="chart" id="filename"></div>
                  <div class="clearfix">
                    <div class="block-cell-name bold">{{TYPE}}</div>
                    <div class="block-cell-issue bold text-center">Depth</div>
                  </div>
                  {{TOPFILE}}
                </div>
              </div>
            </div>
          </div>
        </section>
        <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          {{TITLE}}
        </h1>
        </section>

        <!-- Main content -->
        <section id="used_settings" class="content">
        	<div class="box">
        		<div class="box-body">
        			<div class="row">
        				<div class="col-xs-12">
        					<p class="textLead">Here is the report on errors, level by level.</p>
        					<table class="table table-striped">
        						<tr></tr>
        						<tr><th>Analysis</th><th>Number</th><th>Grade</th></tr>
        						{{LEVELS}}
        					</table>
            		</div>
        			</div>
        		</div>
        	</div>
        </section>
        <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          External services
        </h1>
        </section>

        <!-- Main content -->
        <section id="used_settings" class="content">
        	<div class="box">
        		<div class="box-body">
        			<div class="row">
        				<div class="col-xs-12">
        					<p class="textLead">This is the list of external services that the project uses. External services are Saas plat-form that may be configured by adding a special file in the code.</p>
        					<table class="table table-striped">
        						<tr></tr>
        						<tr><th>Service</th><th>File</th><th>Home Page</th></tr>
        						{{EXTERNAL_SERVICES}}
        					</table>
            		</div>
        			</div>
        		</div>
        	</div>
        </section>
        <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          Weekly code review <WEEK>
        </h1>
        <p><FULLWEEK></p>
        </section>

        <!-- Main content -->
        <section class="content" id="issues">

        	<div class="box">
        		<div class="box-body">
        			<div id="facets" class="filter clearfix"></div>
        			<table class="table table-striped">
                   		<thead>
                   			<tr>
                   				<th>Analysis</th>
                   				<th>File</th>
                   				<th>Code</th>
                   				<th>Severity</th>
                   				<th>Time To Fix</th>
                   				<th>Recipe</th>
                   			</tr>
                   		</thead>
                   		<tbody id="results">
                   		</tbody>
                   	</table>
        		</div>
        	</div>

        </section>
          <!-- Content Header (Page header) -->
        <section class="content-header">
          <h1>
            Favorites
          </h1>
        </section>

        <!-- Main content -->
        <section class="content" id="dashboard">

          <div class="row">
            {{FAVORITES}}
          </div>
        </section>
        <!-- Main content -->
        <section class="content" id="dashboard">

          <div class="row">
            <div class="col-md-12">
              <div class="box">
                <div class="box-header with-border">
                  <h3 class="box-title">Local variables counts</h3>
                </div>
                <div class="box-body chart-responsive">
                  <div class="chart" id="filename"></div>
                  <div class="clearfix">
                    <div class="block-cell-name bold">Number of local variables</div>
                    <div class="block-cell-issue bold text-center">Count</div>
                  </div>
                  {{TOPFILE}}
                </div>
              </div>
            </div>
          </div>
        </section>
        <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          {{TITLE}}
        </h1>
        </section>

        <!-- Main content -->
        <section class="content" id="issues">

        	<div class="box">
        		<div class="box-body">
        			<div id="facets" class="filter clearfix"></div>
        			<table class="table table-striped">
                   		<thead>
                   			<tr>
                   				<th>Analysis</th>
                   				<th>File</th>
                   				<th>Code</th>
                          <th></th>
                   				<th>Severity</th>
                   				<th>Time To Fix</th>
                   				<th>Recipe</th>
                   			</tr>
                   		</thead>
                   		<tbody id="results">
                   		</tbody>
                   	</table>
        		</div>
        	</div>

        </section>
        <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          Statistics
        </h1>
        </section>

        <!-- Main content -->
        <section id="used_settings" class="content">
        	<div class="box">
        		<div class="box-body">
        			<div class="row">
        				<div class="col-xs-12">
        					<p class="textLead">
        					Here are various stats of different structures in the application.
        					</p>
        					<table class="table table-striped">
        						<tr></tr>
        						<tr><th>Element</th><th>Count</th></tr>
        						{{STATS}}
        					</table>
            		</div>
        			</div>
        		</div>
        	</div>
        </section>
        <!-- Main content -->
        <section class="content" id="dashboard">

          <div class="row">
            <div class="col-md-12">
              <div class="box">
                  {{AUDIT_DATE}}
              </div>
            </div>

            <div class="col-md-6">
              {{BLOCHASHDATA}}
            </div>

            <div class="col-md-3">
              <div class="box">
                <div class="box-header with-border">
                  <h3 class="box-title">Graded issues</h3>
                </div>
                <div class="box-body chart-responsive">
                <br />
                <br />
                  {{GRADED_ISSUES}}
                </div>
                <br />
                <br />
                <br />
                <br />
                <!-- /.box-body -->
              </div>
            </div>

            <div class="col-md-3">
              <div class="box">
                <div class="box-header with-border">
                  <h3 class="box-title">Blocking issues</h3>
                </div>
                <br />
                <br />
                <br />
                  {{BLOCKING_ISSUES}}
                <br />
                <br />
                <br />
                <br />
                <br />
                <br />
                <!-- /.box-body -->
              </div>
            </div>
          </div>

          <div class="row">
            <div class="col-md-6">
              <div class="box">
                <div class="box-header with-border">
                  <h3 class="box-title">Graded Analysis</h3>
                </div>
                <div class="box-body chart-responsive">
                  <div class="clearfix">
                    <div class="block-cell-name bold">Analysis</div>
                    <div class="block-cell-issue bold text-center">Issues</div>
                  </div>
                  {{GRADED_FILES}}
                </div>
              </div>
            </div>

            <div class="col-md-6">
              <div class="box">
                <div class="box-header with-border">
                  <h3 class="box-title">Blocking Analysis</h3>
                </div>
                <div class="box-body chart-responsive">
                  <div class="clearfix">
                    <div class="block-cell-name bold">Analysers</div>
                    <div class="block-cell-issue bold text-center">Issues</div>
                  </div>
                  {{BLOCKING_FILES}}
                </div>
              </div>
            </div>
          </div>
        </section>
        <!-- Sidebar Menu -->
        <ul class="sidebar-menu">
          <li class="header">&nbsp;</li>
          <!-- Optionally, you can add icons to the links -->
          <li class="active"><a href="index.html"><i class="fa fa-dashboard"></i> <span>Dashboard</span></a></li>
          <li><a href="compatibility_compilations.html"><i class="fa fa-circle-o"></i>Compilations</a></li>
          <li><a href="compatibility_php73.html"><i class="fa fa-circle-o"></i>Compatibility PHP 7.3</a></li>
          <li><a href="issues.html"><i class="fa fa-circle-o"></i>Compatibility Violations</a></li>
          <li><a href="suggestions.html"><i class="fa fa-circle-o"></i>Suggestions</a></li>
          <li class="treeview">
            <a href="#"><i class="fa fa-sticky-note-o"></i> <span>Annexes</span><i class="fa fa-angle-left pull-right"></i></a>
            <ul class="treeview-menu">
              <li><a href="annex_settings.html"><i class="fa fa-circle-o"></i>Analyses Settings</a></li>
              <li><a href="proc_files.html"><i class="fa fa-circle-o"></i>Processed Files</a></li>
              <li><a href="proc_analyses.html"><i class="fa fa-circle-o"></i>Processed Analyses</a></li>
              <li><a href="analyses_doc.html"><i class="fa fa-circle-o"></i>Analyses Documentation</a></li>
              <li><a href="codes.html"><i class="fa fa-circle-o"></i>Codes</a></li>
              <li><a href="credits.html"><i class="fa fa-circle-o"></i>Credits</a></li>
            </ul>
          </li>
        </ul>
        <!-- /.sidebar-menu -->    		<!-- Content Header (Page header) -->
    		<section class="content-header">
    		<h1>
              {{TITLE}}
    		</h1>
    		</section>

    		<!-- Main content -->
    		<section id="used_settings" class="content">
    			<div class="box">
    				<div class="box-body">
    					<div class="row">
    						<div class="col-xs-12">
        							<p class="textLead">This is the list of settings used to process the code.</p>
        							<table class="table table-striped">
        								<tr></tr>
        								<tr><th>Setting</th><th>Value</th></tr>
        								{{SETTINGS}}
        							</table>
    		    		    </div>
    					</div>
    				</div>
    			</div>
    		</section>
        <!-- Main content -->
        <section class="content" id="dashboard">

          <div class="row">
            <div class="col-md-12">
              <div class="box">
                  {{AUDIT_DATE}}
              </div>
            </div>

            <div class="col-md-6">
              {{BLOCHASHDATA}}
            </div>

            <div class="col-md-3">
              <div class="box">
                <div class="box-header with-border">
                  <h3 class="box-title">Issues Breakdown</h3>
                </div>
                <div class="box-body chart-responsive">
                  <div id="donut-chart_issues"></div>
                  <div class="clearfix">
                    <div class="block-cell bold">Category</div>
                    <div class="block-cell bold text-center">Issues</div>
                  </div>
                  {{BLOCISSUES}}
                </div>
                <!-- /.box-body -->
              </div>
            </div>

            <div class="col-md-3">
              <div class="box">
                <div class="box-header with-border">
                  <h3 class="box-title">Severity Breakdown</h3>
                </div>
                <div class="box-body chart-responsive">
                  <div id="donut-chart_severity"></div>
                  <div class="clearfix">
                    <div class="block-cell bold">Category</div>
                    <div class="block-cell bold text-center">Issues</div>
                  </div>
                  {{BLOCSEVERITY}}
                </div>
                <!-- /.box-body -->
              </div>
            </div>
          </div>

          <div class="row">
            <div class="col-md-6">
              <div class="box">
                <div class="box-header with-border">
                  <h3 class="box-title">Filename Overview</h3>
                </div>
                <div class="box-body chart-responsive">
                  <div class="chart" id="filename"></div>
                  <div class="clearfix">
                    <div class="block-cell-name bold">TOP 10 Filename</div>
                    <div class="block-cell-issue bold text-center">Issues</div>
                  </div>
                  {{TOPFILE}}
                </div>
              </div>
            </div>

            <div class="col-md-6">
              <div class="box">
                <div class="box-header with-border">
                  <h3 class="box-title">Analyses Overview</h3>
                </div>
                <div class="box-body chart-responsive">
                  <div class="chart" id="container"></div>
                  <div class="clearfix">
                    <div class="block-cell-name bold">TOP 10 Analyser</div>
                    <div class="block-cell-issue bold text-center">Issues</div>
                  </div>
                  {{TOPANALYZER}}
                </div>
              </div>
            </div>
          </div>
        </section>
   Bud1           
                                                           sbwspblob                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             f o n t sbwspblob   bplist00		]ShowStatusBar[ShowPathbar[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar			_{{-846, 591}, {770, 436}}	%1=I`myz{|}~                                f o n t svSrnlong       s c r i p t sbwspblob   bplist00	
			]ShowStatusBar_SidebarWidthTenElevenOrLater[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar[ShowPathbar	#@k`     		_{{-1345, 435}, {770, 436}}	'FR^u                                s c r i p t svSrnlong                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    @                                              @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   E  
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       DSDB                                 `                                                   @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          Issues
        </h1>
        </section>

        <!-- Main content -->
        <section class="content" id="issues">
            This are all the {{TOTAL}} issues found in the current repository.
        	<div class="box">
        		<div class="box-body">
        			<div id="facets" class="filter clearfix"></div>
        			<table class="table table-striped">
                   		<thead>
                   			<tr>
                   				<th>Analysis</th>
                   				<th>File</th>
                   				<th>Code</th>
                   				<th>Severity</th>
                   				<th>Time To Fix</th>
                   				<th>Recipe</th>
                   			</tr>
                   		</thead>
                   		<tbody id="results">
                   		</tbody>
                   	</table>
        		</div>
        	</div>

        </section>
        <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          Processed Files
        </h1>
        </section>

        <!-- Main content -->
        <section id="used_settings" class="content">
        	<div class="row">
        		<div class="col-sm-6">
        			<div class="box">
        				<div class="box-header with-border">
        	        <h3 class="box-title"><b>Processed Files</b></h3>
        	      </div>
        				<div class="box-body">
        					<div class="row">
        						<div class="col-xs-12">
        							<p class="textLead">This is the list of processed files. Any file that is in the project, but not in the list below was omitted in the analyze. <br>
        							<br>
        							This may be due to configuration file, compilation error, wrong extension (including no extension).</p>
        							<table class="table table-striped">
        								<tr>
        								</tr><tr><th>File</th>
        								</tr>
        								{{FILES}}
        							</table>
        		    		</div>
        					</div>
        				</div>
        			</div>
        		</div>

        		<div class="col-sm-6">
        			<div class="box">
        				<div class="box-header with-border">
        	        <h3 class="box-title"><b>Non-processed Files</b></h3>
        	      </div>
        				<div class="box-body">
        					<div class="row">
        						<div class="col-xs-12">
        							<p class="textLead">This is the list of processed files. Any file that is in the project, but not in the list below was omitted in the analyze. <br>
        							<br>
        							This may be due to configuration file, compilation error, wrong extension (including no extension).</p>
        							<table class="table table-striped">
        								<tr></tr>
        								<tr><th>File</th>
        								<th>Reason</th>
        								</tr>
        								{{NON-FILES}}
        							</table>
        			    	</div>
        					</div>
        				</div>
        			</div>
        		</div>
        	</div>
        </section>
      </div>
    </div>
        <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          PHP Compilations directives
        </h1>
        </section>

        <!-- Main content -->
        <section id="used_settings" class="content">
        	<div class="box">
        		<div class="box-body">
        			<div class="row">
        				<div class="col-xs-12">
        					<p class="textLead">This is a suggestion of compilation directive to use when compiling PHP specifically for the audited code. </p>
        					<p class="textLead">The selection made below is based on the extension usage, found in the code (--enable, --with) and also the absence of usage (--disable, --without).  </p>
        					<p class="textLead">Some local extensions (--pdo-mysql, --with-libmbfl...) are also mentionned for help. </p>
        				</div>
                        <div class="col-xs-12" id="results">
<blockquote>
  <p>{{COMPILATION}}</p>
</blockquote>
                        </div>
            		</div>
        			</div>
        		</div>
        	</div>
        </section>
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="description" content="{{PROJECT_NAME}} : PHP static analysis report by Exakat (https://www.exakat.io/) ">
  <meta name="generator" content="Exakat {{EXAKAT_VERSION}} (build {{EXAKAT_BUILD}})">
  <title>{{TITLE}}, by Exakat</title>
  <!-- Tell the browser to be responsive to screen width -->
  <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">

  <link rel="apple-touch-icon" href="apple-touch-icon.png">
  <!-- Place favicon.ico in the root directory -->

  <link rel="stylesheet" href="styles/vendor.css">
  <link rel="stylesheet" href="styles/exakat.css">

  <link rel="stylesheet" href="styles/main.css">
  <link rel="stylesheet" href="styles/tree.css">
  
  <script src="scripts/vendor/modernizr.js"></script>
  <script src="scripts/clipboard.min.js"></script>
  

  <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
  <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
  <!--[if lt IE 9]>
  <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
  <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
  <![endif]-->
</head>
<body class="hold-transition skin-yellow-light sidebar-mini">
  <div class="wrapper">

    <!-- Main Header -->
    <header class="main-header">

      <!-- Logo -->
      <a href="index.html" class="logo">
        <!-- mini logo for sidebar mini 50x50 pixels -->
        <span class="logo-mini"><b>{{PROJECT_LETTER}}</b></span>
        <!-- logo for regular state and mobile devices -->
        <span class="logo-lg">{{PROJECT}}</span>
      </a>

      <!-- Header Navbar -->
      <nav class="navbar navbar-static-top" role="navigation">
        <!-- Sidebar toggle button-->
        <a href="#" class="sidebar-toggle" data-toggle="offcanvas" role="button">
          <span class="sr-only">Toggle navigation</span>
        </a>
      </nav>
    </header>
    <!-- Left side column. contains the logo and sidebar -->
    <aside class="main-sidebar">

      <!-- sidebar: style can be found in sidebar.less -->
      <section class="sidebar">
        {{SIDEBARMENU}}
      </section>
      <!-- /.sidebar -->
    </aside>

    <!-- Content Wrapper. Contains page content -->
    <div id="main">
      <div class="content-wrapper" id="ajax-content">
        <!-- Main content -->
        <!-- Content Header (Page header) -->
        {{BLOC-MAIN}}
        <!-- /.content -->
      </div>
    </div>
    <!-- /.content-wrapper -->

    <!-- Main Footer -->
    <footer class="main-footer">
      <!-- To the right -->
      <div class="pull-right hidden-xs">
        <span class="logo-exakat">
          <img src="images/logo.png" alt="Exakat">
          An <a href="https://www.exakat.io" title="exakat">Exakat</a> report
        </span>
      </div>
      <!-- Default to the left -->
<strong>.</strong>
      
    </footer>

    <!-- Control Sidebar -->
    <aside class="control-sidebar control-sidebar-dark">
      <!-- Create the tabs -->
      <ul class="nav nav-tabs nav-justified control-sidebar-tabs">
        <li class="active"><a href="#control-sidebar-home-tab" data-toggle="tab"><i class="fa fa-home"></i></a></li>
        <li><a href="#control-sidebar-settings-tab" data-toggle="tab"><i class="fa fa-gears"></i></a></li>
      </ul>
    </aside>
    <!-- /.control-sidebar -->
    <!-- Add the sidebar's background. This div must be placed
         immediately after the control sidebar -->
    <div class="control-sidebar-bg"></div>
  </div>
  <!-- ./wrapper -->

  <script src="scripts/vendor.js"></script>
  <script src="scripts/exakat.js"></script>
  <script src="scripts/facetedsearch.js"></script>
  {{BLOC-JS}}

</body>
</html>
        
    		<!-- Content Header (Page header) -->
    		<section class="content-header">
    		<h1>
              {{TITLE}}
    		</h1>
    		</section>

    		<!-- Main content -->
    		<section id="used_settings" class="content">
    			<div class="box">
    				<div class="box-body">
    					<div class="row">
    						<div class="col-xs-12">
        							<p class="textLead">This is the configuration used to process the code.</p>
        							<p>You may use this configuration in the projects/***/config.ini file. </p>
                                    <textarea id="ini_config" rows=20 cols=100 style="font-family:Inconsolata">{{CONFIG_INI}}</textarea>
                                    <p><button class="copy_button" data-clipboard-target="#ini_config">Cut to clipboard</button></p>
        							<p>You may use this configuration in the .exakat.yaml file.</p>
                                    <textarea id="yaml_config" rows=20 cols=100 style="font-family:Inconsolata">{{CONFIG_YAML}}</textarea>
                                    <p><button class="copy_button" data-clipboard-target="#yaml_config">Cut to clipboard</button></p>
    		    		    </div>
    					</div>
    				</div>
    			</div>
    		</section>
        <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          {{TITLE}}
        </h1>
        </section>

        <!-- Main content -->
        <section id="used_settings" class="content">
        	<div class="box">
        		<div class="box-body">
        			<div class="row">
        				<div class="col-xs-12">
        					<p class="textLead">This is an overview of the recommended directives for your application. 
The most important directives have been collected here, for a quick review. 
The whole list of directive is available as a link to the manual, when applicable. 

When an extension is missing from the list below, either it as no specific configuration directive, 
or it is not used by the current code.</p>
        					<table class="table table-striped">
        						<tr></tr>
        						<tr><th>Directive</th><th>Suggestion</th><th>Description</th></tr>
        						{{DIRECTIVE_LIST}}
        					</table>
            		</div>
        			</div>
        		</div>
        	</div>
        </section>
        <!-- Main content -->
        <section class="content" id="dashboard">

          <div class="row">
            <div class="col-md-12">
              <div class="box">
                <div class="box-header with-border">
                  <h3 class="box-title">{{TITLE}}</h3>
                </div>
                <div class="box-body chart-responsive">
                  <div class="chart" id="filename"></div>
                  <div class="clearfix">
                    <div class="block-cell-name bold">Extension</div>
                    <div class="block-cell-issue bold text-center">Calls</div>
                  </div>
                  {{TOPFILE}}
                </div>
              </div>
            </div>
          </div>
        </section>
        <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          php-cs-fixer configuration
        </h1>
        </section>

        <!-- Main content -->
        <section id="used_settings" class="content">
        	<div class="box">
        		<div class="box-body">
        			<div class="row">
        				<div class="col-xs-12">
        					<p class="textLead">This is a suggestion of configuration directives to use when fixing code en masse with <a href="https://github.com/FriendsOfPHP/PHP-CS-Fixer">php-cs-fixer</a>.</p>
        					<p class="textLead">Include the code below in your .php_cs file, at the root of the source code.</p>
        				</div>
                        <div class="col-xs-12" id="results">
<blockquote>
  <p>{{COMPILATION}}</p>
</blockquote>
                        </div>
            		</div>
        			</div>
        		</div>
        	</div>
        </section>
PNG

   IHDR    @     SIDATxgpU(A$_EQ$IdDQ2HQsY00C`\`NWWWU/eٵ{u9{ 5    k_cA ,     q   @w   @w     q   @w   @w     q   @w   @w     q    q   @w     q    q   @w     q   \tiӦMGr
   ;ԩS\lܹǏC   w 3u)RĔI&x"   ;oXreѢEo7,Y$<<q   7o^<N2e۶mw   @ի.l׮믿^|yƊ   NhhT3g?\b̙3{)իw]   wx'OFCٳg۶mv
Ϟ=P<~ܹsEIqZj)Rwޑ;evڴiWZ   y#ʔ)&M+OQF=zȦ		9sÇwرf͚kƌƍ?SfͪW_|YfM8u7;v,   _kT67oe#O͛'M$:^v%Kȑ#QDvO#   )rYaՇɓ-5{J5ŋ'LЩ)/_>   wdҥk$Ir-LdСC   q;d˸{a$K-ݥk   q;d!xb<xB,2q:5ĉӪU۷oSU   wĐ%&88
裏Rٳzg    aΝc6$6lL⼄nӦӧOg    N@OިKE+LJFʕ1+VѣG+G   @mOdd420ݺuN9H]䱔\b'    wӵkWcްaC̮vOb\{!g    .##zZ,5v$fl$:3gܹZͷ~;   Y    ]	]7^R%> f])pڵØ?9rĐ Y    -			/ҥK[mRjժ&$\DzyWnյ>iҤ0*|    n?V\/_>D|W_y5۪W]n'IDݻw8}>    qr'*,YҚw})gʔI~>֭[5ڛo~zcg    vR\A8qbxof=z+V#F0||    n"""ĉcB-dg=|Yl3;v_uƔ,    6H{Ts_b{fd7nxʕ+kyB
"   ;RĄ׬Y.:ujʔ)N0O<nWGg߾}Z^6UT/^L,    N)RĄ[s[ܹӲeKӥK7yH](U_fg    vQF&].2]w}wܸqR]+^ZK7n	Y    Phީal !EvJYYfIx{yuӿg   "&L{uɇ9XB*\rœבu5Z"j*oψ   @mƷ~Ո갰0,<|0mڴn#֠Ag    6cҥoaxO?v{.   ^Q~(Ξ=[o,_v9    w!uֽk)YClR֭M   ۏ3g*UDDD(֭[6b9s攽;    #(+WϑZŎ{f   @m[Ԏ,QhK`z6ho    w["o׮]={F<sĉ8qZ"E>}    i߾BD2:O?u4iuig    dܸqFiӦF6n'N,    ݖ,Yēfɒ%$$0F'000^x&mk}5<o    ݯٸq'aݲe1Y/\IGz)7s9  _o>,X lu	;v̇#Dw jժ:R1t"Fj;㏝w?Q!C`tV^v=Ì3|;HqƎy7u}9rq(/_Vŋ	`HLuК4iq"; ⎸⎸ےׯ@D9Rdɒn#s  ; ⎸p%VT=g	Õ$ITmGw qqwΝSh͉^d(q.b%B/_n"; ⎸⎸ےSNo߾D/2eʸՈ#3Zq@w@w[rq'L2u!qGww:xmFN<)u]D?@9w  qG=ejҥ.,,LZPQܹca#; ⎸⎸ےaÆ~ۻOe# ;;nKƎ
*s/^Ij8q6md͑#; ⎸⎸ے^z?۠;v,a1E&VX,w qGqGmI˖-֭[~۷ogɒ%mx3c#; ⎸⎸ےի+åP9SпhH"|   _#BU"##kժ" {,,%k)   ;⮉<y(
X5oE4:t`Y  ##$uԞRJzٳiӦKMɟyԨQRrǎ׮]lu"7G qGqG8@0		q{#GH2eHs&Zd-(b|󍬢Aw @w݋R	nt:uu.޻w/((H/ZhuM&L(-%,
iWɓ'6;  ; 8qe,SLV(7)?E\&<x` ⎸⎸ۏKZ9<|01/{vܛ ⎸⎸ۏZ9Ϥo7 TR%s# ##CV[<d$NСC6;  ; (T,~r';wnL'ƍ{w @w@wՂL ,o޼>̾}ŋ!g϶uG qGqGm,Ѷxj\z5mڴ1?|ԗbgΜy))   ;+VX9RHa~9HTDU\N}wEy_xAYuS`CY	q qqClITid~LӐD5ѣG{/_>-[,  iРs+iҤm۶Im۶Ŋ땣zԷ	ܹc  q@WGY$~ڥKhgȐ!ቑ[Y2gΜbŊy1c   ; ⎸Dyָq&MȮ?\|ڵk7i&00PV<+Vi,鯂:u2eJ#ٴiS  q@wJHٳgŽzϲfZ^3g޿5jTLsoӦ+D~|RҨ_;  #/d˞=
[orr
#""dULOPyp   ;⮣|WڴM>Ç~Lӗ<,ԴnS;  ; ZIgA4wyoY2eֳRɱaÆ;vիWj	#G  q@ɖ-ېŏ_KD"h]L?v؃./W}uԑJ?~5wܩ&K,;  #/y7܆f͚BHHHL]Sn7n~qYWӡC][We0  {n-!1BV,CߺuSC'Nq @wZBvUF@VhyK%]gyLB w qZl6^R>ũӗu,s֞:b9rڹ._=9]cw @w@w駟W5:}!=od=9ĉ5Ν;;  #$IСC98qhL#j<+U#Nn#  ; ⎸ZvZ]j5~3Fl[VTSN!  ; ⎸ׯ;ocǎ՘.ŋ6Cl٢.\@ w q?,X6Xo&~ɓkdck٢z-  q@cnUxqM\zj̕}~E=}Xw   q_Zh6X͚5sج/^7n\-RjUAn .sq qqe˖u,喥nݺZ$_|> Բq @w3gNZz|!-}RLdPP0o<g7m_ ;;nI޽+Wbws9)&_~i߾ධLlw   qqqFÆn-kF<xtLX֭[%?%Kƥn#  ; |q={v)϶J*gwv1amגRsƫ#Yb4jq c}])iUFoܦM.]~ݻF5y9sf/Zʕcȑ#۸qO>$a;ۈ;]VBS+VL̓Ν6ReʔqLpfΜ%9p-ZQq1l^ZǎFp={v]r)22B!xYf6j0UT;ۈ;ng1CT֭<yhI2ݜ*1w̙ /?\h4iZ($P"}Y\סC3>|0<ڤOoٲ]SF܁Fܝ 7ѣ۷o}iJ"+^s<fձcGrL-6hL9rmw?[|C4iݻ{ܽ(Yd>WXvE社ɓǲ!o޼d͚#֜ '":u*X`R-[xݻwo/@2ӧOwjr%K8C_XA䚞={zu0\t	q!ԾΟ?+Myٳg?ZY$PX={l޼Q'Bc!_?|Kv[g^6S>FÓs)Cfɒ啑4hի2qį_}ŋ͌Ç;O>v{tdЭ[4
kv;D |Cl!@JԦ-i`8ӥK׵ׯ}uo_~5⮆V^X`2s[~X6nÆ'&Iʖ4jҤ[o3J=;vhyY63߿ qo۶»BK%UV^k׮.[D	"-uV&svocЦ6}YaP(`/ڠمNر'NݐkԫWŐF})vrr:l2Yc?yL(봐rkd,]tի7k֬w&LXtippZjt.FC X#uzaYǩM|۶-i`P%w޶I&M|ˊϯՖb,"6KqL6͓חϽzr(MR.iϪĽG{^Yq4j(]jԩ5.\	|-Z4鬥xڔBse,Ydok׮TZqi}	ϯ,Tߌ6qnȯg*,r]%_'OSܾfʕn&'O.5M=F.^UwxNN?}J=b
C)۬6~d۷1>};!-V%w߈,biu9-/C-K24>|ao޼YÛ=<<Ÿ}=,HQ}Ο?vfʋ\}AFK_8deuTK6l`HrdM6q[,~̙^G~ԩR@W_ѻfaϚ徢و#l-R_hR*>?,;| G>[˖-kΝ[Tjض[
8ʏC]4h!O`%m7~q큖߾RD*9Fl$k׮!C駟*v]0
3[w^w.~7q>|gٳ-RZN"ܹ]mR޷RǢEJn]$AyCBM@[1m~|	u]+M6nϲw^.7AI+iٳ{׿ʱmٲ%UOڷ#`.Hg%W;h9lBm8UTM??V^I5HG[drqڵ䫕9sM6y8o퉮]fSq駟+g&/#Gt#MgӟxCEUVZ7zeoߥϏ-[6yX.U_{D?ojf0rۇ}v3oKK ٽvsfw\ѣZUEQF|5k'n
q_1glO;Y~,]Xmjhz)p{>]
=zyNbUI6nuqߺu9I~޽ۨa]U/5h<cƌnYT)n޼)_/فy^eb;ܨS.?״iΫVʅ]#7߹sر#rkڴoݺUzukԨ.iK.%K#v4ᇎ'O]JE_;{Ȉ;FT&mڴ'O4jRnwC+V̎)ikGW
WM
=W_.ӠA}Y
-",O6)ih_
,+.֬Y%et[0#F_ƲJ,
qB=rϣ*^m.7n4HR#q}}葱ve-lgs[ZUjĴmTboU;vRqG}ƍ>gc3wj	nM֙HLK<y,˚G%=De%KH_+aS>Yl5qO"oΜ	IC_r繍{7vp~Kk'<%hذ]VK#דo=_/4f{fLrݻ;siXGmҥ-5+*m(QRsX}nݺsQG_2e.^<WY3\\n6m ? Cn!,R>t=uKG{-I&rS{6|ر]X<4}!j޼K٫W5}t(|4<po8s&MzeM~.?ԥC-De7'~#Vܥz!mzۖm5ڵk}RGwj>쳠 oСCݎ6vYM$;\hƌFRsW|'ϟwW%wxVҒa?S܈r]LCD*w[ޤa*:-$!#%شiӗ{v0+Wtg=z4p믿\p:DŪ}oܹs|7̬,uZef=|Ȳ]oz5rqWD~y2 1cƘkUTq=9,VCEI%ӑ䁁ƞTeUos4SV.!5W/[7KK;wFm6B(7M~"'O\rFq|-ɓ'߰a=v+;utsQ˃OqRҥj_Z7Ob)P|y3q)KrٹAۈ1HwyGa(R&;.~׷ozҤI!C|=\ LC9ﺔS=sP"$9lqZg׮]
OsqWgĈz!b\bI!8q]m%KzԲD>]k,gR?Ns@1۵3gP{,ҵWj}#VLLn<wu?~{wGۡClaGqv>|vᚖ-[6;&M4ʥJ*ehEYn4_M'O!*TpS>=.#/NvۈW]MJ*ɝoڲe\M\z[LR{ű<4'"Ԝԩ@3[*THuҤ\hϑҨEo0qznǏW6Eqn{nݺy޿{u)bkJno{vՕQF>!ZJ5۷9.T͛ץB *+W1.Ed־bŲĉQ6]q^ZrN9s7ڷo::mڴky{uRF-LŋwȑC*(|i=9s0ݻ)g fN&{vc+W.ynC!QX/~?XWctFǾ}k-F~RP~>Y!;hD*)]]~(<Ŏ:֭[<?ǡŽjժx#mlq˫W޹sWWZBJٸN@@]Kzy{ÆS?}w"K2Ț5e⊬Us{o`rcrǎmj?{SSzEΝ:*o{n]=~ƵEB63q v1nZ.ԩS=+_Ϟ=-IK;G|\"]*cLKjݺrvrYﵐ__6wJ={o٤!OIrqGK.4t@1(Ξ=H{'ĝv.?NmjӧOxDtBBر#{'HM!]CSzi=uԻvhџ	&$mmquֹn(&fzOVX';⮋$I(+QYjrYUz4l^.o؋{߿sqw8Fr~SQk,MLǎue^魳qG]j=RLԩS[9&x<,^ĽbŊ>-/'Zd#1ҢEס4iIEj׮mx֭+LXv#FMWFA=ya\~U*F)"l!ի.Lۈ;
Omf7lP5nݺ	㑢N⎸|ܹ(ǹV	l:-w+2mTҤmF w?)Rpׯ[v.\о̄5?O>%#z>l"-Z4W<?TU+sOt]K?m۶xN?nrqG :eddeߪU+؄;;v>t\BwCk;wnWfݺu<9Z|ک?~%K4VX8qܲ;wgO{6$#Xt븤MֲnQ,YCr#N	Hq7<yuܼy?xw#a&pT_Cq/[<> w]+ݺusB
Yv3gu&k׼:$	̛7ϚQEwO۷LLv>L9Cv/^&/D۷o'yK5U굓ۈ;⮕bŊKr,;J*R8{Yfe# O<6YG/#e>~)R0Y
lBbxOO0m.UIrqG#LQnܸeǟ7o^+ݬYo磏>l6'wGPxq%ƣqƢ>sT,"ɓ'ߴiosy̙36⎸A34PewϜ9#Z\T]fS{V
q6ݻi?KΜ9ՖG^ 
寿X}ȑ#(褗'1mqwÝ;weذa	z%key٨7o̘1<˔)Ǐwg43FjƳlٲI9իWC2|En]u]Yfzc]V߽{۫ov#7mqwŕ+Weܸqyyƍ.ud~<5jųqGAXmk׮Y9R!eʔų݄С5vrqSq

r)SXv#Gg&Lԭ[W˵E/ݫ6Y41%Jd͛obŊe˗w}vdpN!ru?M6!=mq={a	ʭĉkOo޽{__
שq	&k7}c!!ƍk+O<Iٍ:uK[dޫ}a]FY}Ez{!yf-|lٲie`b2;xmۨf|'4ŷp7]Dn#+f̘6.W妸Tћ+V]8p޺uC@d޽F*ǎQ{A_Xpa.q֘zD
%eϞ!w>m\vaiJaχzС7nܾ}ȑ#U:Zj⎸!V7Yqۚm*=z"ܺuޣGw٭irqGk׮nbxstw^op!`82@M}$al*ʍuxr)w?}޸qY!{NWꫯHrqG_D(,O ?U͛#~Meu<~0K,_GL|:8O{"۲B
RhQ9q81mqe˺ʻ댙^~=nܸʭ?22qGRJiЪU+^A[٥.]%7u_mYqe͙3[dc7yBn# 7\XblӦM}[ViL6UMj֬!=._R:H!իW꺈 Ͼr_?};wnI'RF4sdO:哦tbZqGA&Ijv';thO.7xdjK4it}(qcIrqGI7:(}qҔ7on~b=^QB{>D޸p9aW^V7o^F"beΜ9Nt{~ff{⎸򷚇=>b'O^c捺.7hϚ5SK[)FrqGݻe޽	̪-[.D;x̙3+t{9@ז,Yi&2o\i%dKtT3ѰPˊ{׮?k<[o$\2Jn#,X6(wجwy⎸toK.Xgחu;՝07޵t<|.?-^Μ	z뭷H]rqwq#!C>jpヸ5ju*U"ϑr:ݻ&RPB
']pa09Ln#.mڸ+ۜ:N:R'NDwx%"= {_I_gyFcGy~߰߿7mڴj'͚5'{Ln#~-noGu٩sOteɓ'gɒ%		AwCxP,GyxcǎݠA'OZkbq_`^=9V8ԩS w
{ӿzj9\L_nT^}ذa۷o^?k `	$8w7hݺՅ5Q".=_i)nܸJ$ۈ_/_vv_9(ǌʮIwy7&t0~⎸kd=_oK)qY&V>N>eq.F+aǎm~YAn#.>tԩSCd͌4HE2e^&gN1cd0`}cHlc}Tj֬q-iMqq{h#O-->Zj6:_=wf̘m&LҦw0TRݺuӨoaÆa+,vD0q\&w+WG,ye0DdQEeݼEO:`C*9O܅%K)D{n69u8LGgZH<{qGAׯ+B
~4%ß8lزe#={
OZ($$wҢEطoki\'&00E|Ư"&U׬Yx:dwaa
>}Mn#%Jrk "ٳGiɡ;`;TjRۨAFG2߼yOFYRTqj{<ZFWzel(;&$PѢEF⎸^ڷoO?upΝ`19͛TqZhm۶6/꺅D*UPvٳoeʔ͛Θ5f.]:itᗟԷ--Ȓ%Z+cƌwytQT^&wѣcѳgO]$J%u%J$1GL䆓!J&͙3A^)/m;y7w^0D˽qHjc4i]([%;!m矮cpB?m۶C-y#}4-[椹#`K6YKIxJ=zeRL+i^R }]XrOTrFܝ/:Ҟɟ}ɒ%;\ݎŋ;l;Ta2H:߳gQziSkԨß:fq\rED齔!!Mn#A.;vl=DešI4֭[A~DT8qs/߿_ԩ}>)]r#xqFpMLLnۈÑ'.3gNvq3dpGqȚ5 *XzhVXjr#F2eJOW622`6;~E Zs$I%WݻwL@mE6yǎ4>HHwm6vIn[!wGq=ׁ޽W_}6KҧOrJgqo#gW^M{=jŊeDcՂ%7^O]<yBB7rFܝ޽{j?.t<xϳg.^v)[!7,aaa;y}y"	+VTBxnݺZfHm?w|
Ӳۛ&w2k,?>|.O^_SN({@|=zQFǏތԾ-Pjܸ#6l OTw22IZ5(Żʫ~g钛!C֭Q?ؙ&w"͕\DAԈȂ̙3KŘJ*o犌<|~ݺuef`μzժU;X<y(ԼS8]qˊeׯ/] M(->;rHzҁ
5Umq7Zj.p7mS/U4[vBW\Yma^_]tT5aa
r-#
Wmrqw
r7N:eʔ.Vؓ'Owu1ڣ.\ئZ|sٳbkwrHmqMĉc
ųz2ף#wɒ%q㚚>}J{Xl+0۷YdqWS`6;ׯG}m_~I<:cƌ;X&6K.Ǩ}vƍh[JOV٠En#Cڂ.BФICȑ#-Cի;Y"<y,+b7o&!!b%|C4w&['klUR{Be6⎸f.
Ƽ:FrVYl>D߿WM#zԋ;wnW{ZhpլYCP!WV ټyBCGrqGܝ?".Ŀtjժōך"ӧOGlBMO
S&o޼xE*T`p͝Yn,ROBiս{wRJEn#N.BcD\#nݒVVR[SYCѣ;wyGBͶ?^~j/u¹	X?\`֭zkI3ZƩ.L<I!祠$#Gӧ1rH;w? [|ċӧ;3gY3_AA'^>C8;&-[5&pT6⎸ۘgϞ^|IAIGU;oժUeW,YRMܹ%u_ҿL5couUＬ?)OΨc6⎸ۘ.ر(ڵk{]ti[wM{.>AZS&MwӧOS{={vYY٪U+t6M]
9_ۈ;nW֯w՗!eʔ~kaaa2eJӦM٢]ETKm7R(*uNY+MqW[ʑۈ;nKƍb4ɓV6lXݺuԔE>׌gϞjAsaG!
!ߴ,̭[K#'l"~z+W.O]ؾ}BwОFw[ҾwԜrei``ƍ˘1cdmz=ڵkװaêU~g2dpuoX;x_jb=h@jX`5V@]9s&Ⱦ+ FwQ\9/Vft5Y.77n,Rnif"k'QECdYRt3,ٲeR;Qٲe-Zjņwaƌ
	/3%w~Du	b)={vFJ
<I4t0Ȉ;xsg||^M燌P/hݺYx]+,BJs&'w woe=QdKL@H(Q._yw~.{.L;zd}w ?_?g
	f*rrqwAAnVթSj4dQBg͚U7U\Ym۶ZjE|ѻkD~ԨQcĉ
ew09r*XŃҥKpFyC삕閊Ȋ)jOfܸsKrrYrI;+W&M,5`^iw]?uͻr)K,i^piӦVZ9+KJ*ծ]YfݺuS_nc#2F۶m|RS;];,U}̘Ѻ/ Dn&Nq|0*$|``J&6~WWhUɳMߴ_zɎz=?+V,JW/yf	)uO>o[FLNGGH71!6m	Ԁ}]{W謔s9sSq3922>EGMݻ;{Ŋ0ǎ>Yf"/ ,Ν[ɓ''ۈ(]OEȘ1T9tcRqd:!Xt "1ԻEMɤ}E_?($ѣm6dz6m;SnZrm۶yc9⎸ۋJ9rRĉ	r_e'¨ѿ?&Tv!w)i@e̙vvn#',,Ri=#_ŋ%Nt!;e1WV]a={:^x>ZӦMiΈ8ꚩ<NA_ZՕ+m&g̘a9O7,9s{tw7V+;=oXnޕΦ9_U+-1)mrn#g2_Coܸ!R<):ZWs		߀vRJuv7H̙3>
-	RטTct
 q4|Mr۩۞Ç#<cǎs@ZIaÆ8pyw0Uޞ]!2XmH;vl+ĉG?eǴٿin޼q	Y&U&Gɹ۞o=z'"ѽtWLHu=;hDj-)K^#+y5ioCz	W1ko*ŋW[n&Kvdn#TRn?n8[ӧ'O\u>xSN;B{JٲevԩS05ׯd'"͆w,\8_!GAn;2wۣEs'L`ˀ ~1:(""SGAK9MnVZ9sf0͚5;`-e|9~5Yf}֎ٳmHB'8cǦKNוe4=8:jO^h͛i(7ΥIK]_Vnm9eʔQ"GF2h@.[v^n#&((H'Nh	9s)RD4ƞ={s<ajN\Nmٸq#A>}J**AA'u622PBHVhqw<FqBxraۛuiI>KFkR8;xwRכ9Nyufq;ڽ{wkysv9A]vלie[m۶Rjժ;x܊{,5ѺQΫV=W\>~0MX<sDUMn$w;|B7oFn;)w{ӵkW-2e;wJKQ؛7o;xBϞ=՚Wj޶mʺ<x@hVʔ)-6rtj"-a牻 ^|#iҤcrq7}I}N.xD_z}2f嵧r*yYn*V6X٤7ˇ7ґ.,YH!Ç#ۈ)Z۱ `&VPf}8>LmrOZ)?ĉ6lFypC
!

+7)InۈX-qȑ8+ |ג'M63gdݺuU׷TTVUjx.7,q׎>Wmg6nc4q$a.]PNz(Ĩ>Ǟ *矛?`,\VMTWqNdnݺgEn; w {XqV@2X;駟Xd
6S}RֽJ*jڤ(dl3l(W⮋-[(ĉo&mFm"\v8+ 2y捈SB
8'NLdj߬R'60`@_UǐUϏz">~B۶mCn=wkmg^6F%J\}2upe!ؼy;cer.-[V!w2"m%X]]6
;@Ծf͚ittl䓂tcƌ	]RxqF[BZn"
\\!ƍ%mۈX]\2
;DGtJGn{?L~@LѠA}\JcyNS9' 
HSOunr/	Cn{5wS`A/U
;Dƫ}jҲ*\Uߖ"E
\NmC?ϟIyy=y>x]ѣG)|Æu}sq+5P
V+W.I-ǺukX}߿WcZ_#վbL~8,adl5X޽5Q;w5d,[W<'mۈ]9rK4&)l	S{xZ\e%JV^bŊd̲glyk;w/_>k,<xСCN?^!{~9mF̙:6IgqBֺcqP+MPJŎKaM̑M~.?tl{*#۴iݯ__Eܹsȫ[~^_|y~"<'OP{.?vmݮtQ$H⎸Gݥ
cҲ.6#KKB-iKleMfxƌR)˜FS$G[qGܕ\׭[F*.]*LR'cΜ9:#lQԩSm6nK.^y;wV@\rK۩L&+|5f)$``uH^|ѯ]|<m{6nKZj7OF[qgqŦjßHh۩TٵkZUa(P@.ex޽Uj;6mݖ\vMH={V@YhS-CDĉ}5li^j
S
{%e/%qO:03o	ۈ?mYr%
ߊ{LԞS_pNvfZ̥Toȍ:%TOݫWǎ10zRQ]vy룓6n?nݺ%*#V@Vܗ,YvJ*Zeŋw):n
˕+^C֔K+ʨa+MXXUo.٥@ի'mFG׮]B0rHww˖-qHigKXiVKX<?gϞTȑ+W.C"$I#B*UԊ)eȐܶxn#ݻ.w.w6wqs̘1]-
r߂y͗7MÆ牻H:m~޶G[qCqEJ3BǨLTkX!/mڴVBʔ)gu
ݾ,+dCU)S&{_=(褟,^68Nn#U+/_m=gΜRጁR>I6S^][(DR9da>lUrc	&ijrsUnSlYS;L܅ɓ'5sqϞ=_G[q7q߰af(S&&MѣG=y<mM|/; ]OMn(]'aBwA?rqw9r÷1
_R;OV@l={ZZm:ӧR'-9MTָUWYnI#y|ڕDVmݖL:ՓHRFFFb; 8	yMJQ.×5r/ +ua._" Tˑs͚53gKԄFvDlܸsN׿)ۀSV-uVq @
)RNҥr˗/*9q]ٹsEN[>[j)e+#G[wrF-D=´i0W    q.)R0
=z\w    ݋<~(Ԯ]sE   w/rϣ?~q   @ܽȱc<t@^w    [l۶͐@ q   @ܽҥK	̙3W    qӧO7$5B^w    [믆"K,+   {A@q   @ܽB>}EΝW    q
?QH6-    ^cǎĉ(,   OVQX    q7pԨQE   wiܸȘ1#
    ӤI믇b;    n0M656"X,   L͍ҥKX    q7c#Fbw    `vjlDڶm"    >؈ԯ_E   w>}R
    gc#RjU,q   @&"""aFDZb;    n<%K40"bw    xFm`Dn݊"    <y$C#o޼X,   {UVyY+k.q   @ܽ-Tڷmۆ"    w	OB7nܦM>}yE   w3Μ9ɧJGׯ_G[   @M%   Enot%44a   w T$HbiҤY~=
;    >F<^x_}M<w   @-ƍ_$IiӦa   n-L2ژ^x=   w+"5"O8   ;         ;    ;             ;             ;             ;    ;         ;    ;         ;    N>9JN    IENDB`        <!-- Main content -->
        <section class="content" id="dashboard">

          <div class="row">
            <div class="col-md-12">
              <div class="box">
                  {{AUDIT_DATE}}
              </div>
            </div>

            <div class="col-md-6">
              {{BLOCHASHDATA}}
            </div>

            <div class="col-md-6">
              <div class="box">
                <div class="box-header with-border">
                  <h3 class="box-title">Severity Breakdown</h3>
                </div>
                <div class="box-body chart-responsive">
                  <div id="donut-chart_severity"></div>
                  <div class="clearfix">
                    <div class="block-cell bold">Category</div>
                    <div class="block-cell bold text-center">Issues</div>
                  </div>
                  {{BLOCSEVERITY}}
                </div>
                <!-- /.box-body -->
              </div>
            </div>
          </div>

          <div class="row">
            <div class="col-md-6">
              <div class="box">
                <div class="box-header with-border">
                  <h3 class="box-title">Filename Overview</h3>
                </div>
                <div class="box-body chart-responsive">
                  <div class="chart" id="filename"></div>
                  <div class="clearfix">
                    <div class="block-cell-name bold">TOP 10 Filename</div>
                    <div class="block-cell-issue bold text-center">Issues</div>
                  </div>
                  {{TOPFILE}}
                </div>
              </div>
            </div>

            <div class="col-md-6">
              <div class="box">
                <div class="box-header with-border">
                  <h3 class="box-title">Analyses Overview</h3>
                </div>
                <div class="box-body chart-responsive">
                  <div class="chart" id="container"></div>
                  <div class="clearfix">
                    <div class="block-cell-name bold">TOP 10 Analyser</div>
                    <div class="block-cell-issue bold text-center">Issues</div>
                  </div>
                  {{TOPANALYZER}}
                </div>
              </div>
            </div>
          </div>
        </section>
        <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          Dynamic Code
        </h1>
        </section>

        <!-- Main content -->
        <section id="used_settings" class="content">
        	<div class="box">
        		<div class="box-body">
        			<div class="row">
        				<div class="col-xs-12">
        					<p class="textLead">This is the list of dynamic codes, such as variable variable, variable methods or variables constants. They are executed with the value of the variables, and are often not analyzed statically. You may use the list below to review them manually.</p>
        					<table class="table table-striped">
        						<tr></tr>
        						<tr><th>Code</th><th>File</th><th>Line</th></tr>
        						{{DYNAMIC_CODE}}
        					</table>
            		</div>
        			</div>
        		</div>
        	</div>
        </section>
        <!-- Main content -->
        <section class="content" id="dashboard">

          <div class="row">
            <div class="col-md-12">
              <div class="box">
                <div class="box-header with-border">
                  <h3 class="box-title">Property counts</h3>
                </div>
                <div class="box-body chart-responsive">
                  <div class="chart" id="filename"></div>
                  <div class="clearfix">
                    <div class="block-cell-name bold">Number of property</div>
                    <div class="block-cell-issue bold text-center">Count</div>
                  </div>
                  {{TOPFILE}}
                </div>
              </div>
            </div>
          </div>
        </section>
        <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          New Issues
        </h1>
        </section>

        <!-- Main content -->
        <section class="content" id="issues">
        This reports displays the list of {{TOTAL}} new issues found in the most recent audit, compared to the previous audit. The full report, including unchanged issues, are in the next section.
        	<div class="box">
        		<div class="box-body">
        			<div id="facets" class="filter clearfix"></div>
        			<table class="table table-striped">
                   		<thead>
                   			<tr>
                   				<th>Analysis</th>
                   				<th>File</th>
                   				<th>Code</th>
                   				<th>Severity</th>
                   				<th>Time To Fix</th>
                   				<th>Recipe</th>
                   			</tr>
                   		</thead>
                   		<tbody id="results">
                   		</tbody>
                   	</table>
        		</div>
        	</div>

        </section>
        <!-- Main content -->
        <section class="content" id="dashboard">

          <div class="row">
            <div class="col-md-12">
              <div class="box">
                <div class="box-header with-border">
                  <h3 class="box-title">Method counts</h3>
                </div>
                <div class="box-body chart-responsive">
                  <div class="chart" id="filename"></div>
                  <div class="clearfix">
                    <div class="block-cell-name bold">Number of methods</div>
                    <div class="block-cell-issue bold text-center">Count</div>
                  </div>
                  {{TOPFILE}}
                </div>
              </div>
            </div>
          </div>
        </section>
        <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          {{TITLE}}
        </h1>
        </section>

        <!-- Main content -->
        <section id="used_settings" class="content">
        	<div class="box">
        		<div class="box-body">
        			<div class="row">
        				<div class="col-xs-12">
        					<p class="textLead">{{DESCRIPTION}}.</p>
        					<table class="table table-striped">
        						<tr></tr>
        						<tr><th>Value</th><th>Count</th><th>File:Line</th></tr>
        						{{TABLE}}
        					</table>
            		</div>
        			</div>
        		</div>
        	</div>
        </section>
        <!-- Content Header (Page header) -->
        <section class="content-header">
          <h1>
            Analyzers Documentation
          </h1>
        </section>

        <!-- Main content -->
        <section id="used_settings" class="content">
          <div class="box">
            <div class="box-body">
              <div class="row">
                <div class="col-xs-12">
                  {{BLOC-ANALYZERS}}
                </div>
              </div>
            </div>
          </div>
        </section>        <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          Issues
        </h1>
        </section>

        <!-- Main content -->
        <section class="content" id="issues">
            <p>List of violations of project's preferences : any unusual usage is reported.</p>
        	<div class="box">
        		<div class="box-body">
        			<div id="facets" class="filter clearfix"></div>
        			<table class="table table-striped">
                   		<thead>
                   			<tr>
                   				<th>Analysis</th>
                   				<th>File</th>
                   				<th>Code</th>
                          <th></th>
                   				<th>Severity</th>
                   				<th>Time To Fix</th>
                   				<th>Recipe</th>
                   			</tr>
                   		</thead>
                   		<tbody id="results">
                   		</tbody>
                   	</table>
        		</div>
        	</div>

        </section>
        <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          Issues
        </h1>
        </section>

        <!-- Main content -->
        <section class="content" id="issues">
            This are all the {{TOTAL}} issues found in the current repository.
        	<div class="box">
        		<div class="box-body">
        			<div id="facets" class="filter clearfix"></div>
        			<table class="table table-striped">
                   		<thead>
                   			<tr>
                   				<th>Analysis</th>
                   				<th>File</th>
                   				<th>Code</th>
                   				<th>Severity</th>
                   				<th>Time To Fix</th>
                   				<th>Recipe</th>
                   			</tr>
                   		</thead>
                   		<tbody id="results">
                   		</tbody>
                   	</table>
        		</div>
        	</div>

        </section>
        <!-- Main content -->
        <section class="content" id="dashboard">

          <div class="row">
            <div class="col-md-12">
              <div class="box">
                <div class="box-header with-border">
                  <h3 class="box-title">Typehint statistics</h3>
                </div>
                All custom types are under the name 'interfaces'. Unused scalar types are not shown. 
                <div class="box-body chart-responsive">
                  <div class="chart" id="filename"></div>
                  <div class="clearfix">
                    <div class="block-cell-name bold">Typehint</div>
                    <div class="block-cell-issue bold text-center">Count</div>
                  </div>
                  {{TOPFILE}}
                </div>
              </div>
            </div>
          </div>
        </section>
        <!-- Sidebar Menu -->
        <ul class="sidebar-menu">
          <li class="header">&nbsp;</li>
          <!-- Optionally, you can add icons to the links -->
          <li class="active"><a href="index.html"><i class="fa fa-dashboard"></i> <span>Dashboard</span></a></li>
          <li><a href="files.html"><i class="fa fa-file-code-o"></i> <span>Files</span></a></li>
          <li><a href="analyses.html"><i class="fa fa-line-chart"></i> <span>Analysis</span></a></li>
          <li><a href="neoissues.html"><i class="fa fa-flag"></i> <span>New Issues</span></a></li>
          <li><a href="issues.html"><i class="fa fa-flag"></i> <span>Issues</span></a></li>
          <li><a href="security_issues.html"><i class="fa fa-flag"></i> <span>Security</span></a></li>
          <li><a href="performances_issues.html"><i class="fa fa-flag"></i> <span>Performances</span></a></li>
          <li><a href="deadcode_issues.html"><i class="fa fa-flag"></i> <span>Dead code</span></a></li>
          <li class="treeview">
            <a href="#"><i class="fa fa-certificate"></i> <span>Compatibility</span><i class="fa fa-angle-left pull-right"></i></a>
            <ul class="treeview-menu">
              <li><a href="compatibility_compilations.html"><i class="fa fa-circle-o"></i>Compilations</a></li>
              <li><a href="compatibility_version.html"><i class="fa fa-circle-o"></i>PHP Version</a></li>
              {{COMPATIBILITIES}}
              <li><a href="compatibility_issues.html"><i class="fa fa-circle-o"></i>Compatibility Violations</a></li>
            </ul>
          </li>
          <li class="treeview">
            <a href="#"><i class="fa fa-certificate"></i> <span>Favorites</span><i class="fa fa-angle-left pull-right"></i></a>
            <ul class="treeview-menu">
              <li><a href="favorites_dashboard.html"><i class="fa fa-circle-o"></i>Overview</a></li>
              <li><a href="favorites_issues.html"><i class="fa fa-circle-o"></i>Violations</a></li>
            </ul>
          </li>
          <li><a href="suggestions.html"><i class="fa fa-flag"></i> <span>Suggestions</span></a></li>
          <li class="treeview">
            <a href="#"><i class="fa fa-sliders"></i> <span>Audit logs</span><i class="fa fa-angle-left pull-right"></i></a>
            <ul class="treeview-menu">
              <li><a href="appinfo.html"><i class="fa fa-circle-o"></i>Appinfo()</a></li>
              <li><a href="bugfixes.html"><i class="fa fa-circle-o"></i>Bugfixes</a></li>
              <li><a href="php_compilation.html"><i class="fa fa-circle-o"></i>PHP Compilation Directives</a></li>
              <li><a href="directive_list.html"><i class="fa fa-circle-o"></i>Directive List</a></li>
              <li><a href="altered_directives.html"><i class="fa fa-circle-o"></i>Altered Directive</a></li>
              <li><a href="extension_list.html"><i class="fa fa-circle-o"></i>Extensions usage</a></li>
              <li><a href="ext_lib.html"><i class="fa fa-circle-o"></i>External Libraries</a></li>
              <li><a href="external_services.html"><i class="fa fa-circle-o"></i>External services</a></li>
              <li><a href="parameters_counts.html"><i class="fa fa-circle-o"></i>Parameters counts</a></li>
              <li><a href="changed_classes.html"><i class="fa fa-circle-o"></i>Changed classes</a></li>
              <li><a href="stats.html"><i class="fa fa-circle-o"></i>Statistics</a></li>
              <li><a href="visibility_suggestions.html"><i class="fa fa-circle-o"></i>Visibility Review</a></li>
              <li><a href="class_options_suggestions.html"><i class="fa fa-circle-o"></i>Final/Abstract Review</a></li>
              <li><a href="complex_expressions.html"><i class="fa fa-circle-o"></i>Complex Expressions</a></li>
              <li><a href="cit_size.html"><i class="fa fa-circle-o"></i>Classes size</a></li>
              <li><a href="method_size.html"><i class="fa fa-circle-o"></i>Method size</a></li>
              <li><a href="classes_depth.html"><i class="fa fa-circle-o"></i>Classes depth</a></li>
              <li><a href="concentrated_issues.html"><i class="fa fa-circle-o"></i>Concentrated issues</a></li>
              <li><a href="identical_files.html"><i class="fa fa-circle-o"></i>Identical Files</a></li>
              <li><a href="no_issues.html"><i class="fa fa-circle-o"></i>No Issues</a></li>
            </ul>
          </li>
          <li class="treeview">
            <a href="#"><i class="fa fa-list-ul"></i> <span>Inventories</span><i class="fa fa-angle-left pull-right"></i></a>
            <ul class="treeview-menu">
              <li><a href="dynamic_code.html"><i class="fa fa-circle-o"></i>Dynamic codes</a></li>
              <li><a href="globals.html"><i class="fa fa-circle-o"></i>Global variables</a></li>
              <li><a href="error_messages.html"><i class="fa fa-circle-o"></i>Error messages</a></li>
              <li><a href="inventories_exceptions.html"><i class="fa fa-circle-o"></i>Exceptions tree</a></li>
              <li><a href="inventories_namespaces.html"><i class="fa fa-circle-o"></i>Namespaces tree</a></li>
              <li><a href="inventories_classtree.html"><i class="fa fa-circle-o"></i>Classes tree</a></li> 
              <li><a href="inventories_traittree.html"><i class="fa fa-circle-o"></i>Traits tree</a></li> 
              <li><a href="inventories_traitmatrix.html"><i class="fa fa-circle-o"></i>Traits matrix</a></li> 
              <li><a href="inventories_interfacetree.html"><i class="fa fa-circle-o"></i>Interfaces tree</a></li> 
              <li><a href="phpfunctions_list.html"><i class="fa fa-circle-o"></i>PHP native function usage</a></li>
              <li><a href="phpconstants_list.html"><i class="fa fa-circle-o"></i>PHP native constants usage</a></li>
              <li><a href="phpclasses_list.html"><i class="fa fa-circle-o"></i>PHP native classes usage</a></li>
              <li><a href="files_tree.html"><i class="fa fa-circle-o"></i>Files dependencies</a></li>
              <li><a href="variables_confusing.html"><i class="fa fa-circle-o"></i>Confusing variables</a></li>
              {{INVENTORIES}}
            </ul>
          </li>
          <li class="treeview">
            <a href="#"><i class="fa fa-sticky-note-o"></i> <span>Annexes</span><i class="fa fa-angle-left pull-right"></i></a>
            <ul class="treeview-menu">
              <li><a href="annex_settings.html"><i class="fa fa-circle-o"></i>Engine Settings</a></li>
              <li><a href="annex_config.html"><i class="fa fa-circle-o"></i>Audit Configuration</a></li>
              <li><a href="proc_files.html"><i class="fa fa-circle-o"></i>Processed Files</a></li>
              <li><a href="proc_analyses.html"><i class="fa fa-circle-o"></i>Processed Analyses</a></li>
              <li><a href="analyses_doc.html"><i class="fa fa-circle-o"></i>Analyses Documentation</a></li>
              <li><a href="codes.html"><i class="fa fa-circle-o"></i>Codes</a></li>
              <li><a href="credits.html"><i class="fa fa-circle-o"></i>Credits</a></li>
            </ul>
          </li>
        </ul>
        <!-- /.sidebar-menu -->
    		<section class="content-header">
    		<h1>
    		  {{TITLE}}
    		</h1>
    		</section>

    		<!-- Main content -->
    		<section id="files_overview" class="content">
    			<div class="row">
    				<div class="col-xs-12">
    					<div class="box">
    				    <div class="box-body">
    				      <table id="bloc-datatables" class="table table-bordered table-striped">
    				        <thead>
    				          <tr>
    				            <th>Filename</th>
    				            <th>LoC</th>
    				            <th>Issues</th>
    				            <th>Analysers</th>
    				          </tr>
    				        </thead>
    				        <tbody>
                    {{BLOC-FILES}}
    				        </tbody>
    				      </table>
    				    </div><!-- /.box-body -->
    				  </div><!-- /.box -->
    				</div>
    			</div>
    		</section>
    		<!-- /.content -->

        <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          Identical files
        </h1>
        </section>

        <!-- Main content -->
        <section id="used_settings" class="content">
        	<div class="box">
        		<div class="box-body">
        			<div class="row">
        				<div class="col-xs-12">
        					<p class="textLead">Here is the list of identical files in the application.</p>
        					<table class="table table-striped">
        						<tr></tr>
        						<tr><th>Count</th><th>Files</th></tr>
        						{{IDENTICAL}}
        					</table>
            		</div>
        			</div>
        		</div>
        	</div>
        </section>
        <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          Issues
        </h1>
        </section>

        <!-- Main content -->
        <section class="content" id="issues">
            This are all the {{TOTAL}} issues found in the current repository.
        	<div class="box">
        		<div class="box-body">
        			<div id="facets" class="filter clearfix"></div>
        			<table class="table table-striped">
                   		<thead>
                   			<tr>
                   				<th>Analysis</th>
                   				<th>File</th>
                   				<th>Code</th>
                   				<th>Severity</th>
                   				<th>Time To Fix</th>
                   				<th>Recipe</th>
                   			</tr>
                   		</thead>
                   		<tbody id="results">
                   		</tbody>
                   	</table>
        		</div>
        	</div>

        </section>
        <!-- Main content -->
        <section class="content" id="dashboard">

          <div class="row">
            <div class="col-md-12">
              <div class="box">
                <div class="box-header with-border">
                  <h3 class="box-title">Indentation levels</h3>
                </div>
                <div class="box-body chart-responsive">
                  <div class="chart" id="filename"></div>
                  <div class="clearfix">
                    <div class="block-cell-name bold">Number of indentations</div>
                    <div class="block-cell-issue bold text-center">Count</div>
                  </div>
                  {{TOPFILE}}
                </div>
              </div>
            </div>
          </div>
        </section>
        <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          Source code
        </h1>
        </section>

        <!-- Main content -->
        <section class="content" id="issues">

        	<div class="box">
        		<div class="box-body">
        			<div id="facets" class="filter clearfix"></div>
                        <div class="dropdown">
                          <button id="filename" class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
                            File list
                            <span class="caret"></span>
                          </button>
                        <ul class="dropdown-menu" aria-labelledby="dropdownMenu1" style="max-height: 450px; overflow: auto;">
                            {{FILES}}
                        </ul>
                        </div>
                      <div class="row">
                        <div class="col-xs-12" id="results">
                            <p>Select a file to display.</p>
                        </div>
                      </div>
        		</div>
        	</div>

        </section>
        <!-- Main content -->
        <section class="content" id="dashboard">

          <div class="row">
            <div class="col-md-12">
              <div class="box">
                <div class="box-header with-border">
                  <h3 class="box-title">Dereferencing levels</h3>
                </div>
                <div class="box-body chart-responsive">
                  <div class="chart" id="filename"></div>
                  <div class="clearfix">
                    <div class="block-cell-name bold">Number of dereferencing</div>
                    <div class="block-cell-issue bold text-center">Count</div>
                  </div>
                  {{TOPFILE}}
                </div>
              </div>
            </div>
          </div>
        </section>
        <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          {{TITLE}}
        </h1>
        </section>

        <!-- Main content -->
        <section class="content" id="issues">
            <p>List of violations of project's preferences : any unusual usage is reported.</p>
        	<div class="box">
        		<div class="box-body">
        			<div id="facets" class="filter clearfix"></div>
        			<table class="table table-striped">
                   		<thead>
                   			<tr>
                   				<th>Analysis</th>
                   				<th>File</th>
                   				<th>Code</th>
                          <th></th>
                   				<th>Severity</th>
                   				<th>Time To Fix</th>
                   				<th>Recipe</th>
                   			</tr>
                   		</thead>
                   		<tbody id="results">
                   		</tbody>
                   	</table>
        		</div>
        	</div>

        </section>
        <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          PHP Minor versions impact report
        </h1>
        </section>

        <!-- Main content -->
        <section id="used_settings" class="content">
        	<div class="box">
        		<div class="box-body">
        			<div class="row">
        				<div class="col-xs-12">
        					<p class="textLead">This is the list of bugfixes, found in minor versions of PHP that may impact your code.</p>
        					<table class="table table-striped">
        						<tr></tr>
        						<tr><th>Title</th><th>7.3</th><th>7.2</th><th>7.1</th><th>7.0</th><th>php-src</th><th>Bugs</th><th>CVE</th></tr>
        						{{BUG_FIXES}}
        					</table>
            		</div>
        			</div>
        		</div>
        	</div>
        </section>
@charset "utf-8";@import url(https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic);
/*!
 *   AdminLTE v2.3.5
 *   Author: Almsaeed Studio
 *	 Website: Almsaeed Studio <http://almsaeedstudio.com>
 *   License: Open source - MIT
 *           Please visit http://opensource.org/licenses/MIT for more information
!*/body,html{min-height:100%}.layout-boxed body,.layout-boxed html{height:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Source Sans Pro,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:400;overflow-x:hidden;overflow-y:auto}.wrapper{min-height:100%;position:relative;overflow:hidden}.wrapper:after,.wrapper:before{content:" ";display:table}.wrapper:after{clear:both}.layout-boxed .wrapper{max-width:1250px;margin:0 auto;min-height:100%;box-shadow:0 0 8px rgba(0,0,0,.5);position:relative}.layout-boxed{background:url(../img/boxed-bg.jpg) repeat fixed}.content-wrapper,.main-footer,.right-side{-webkit-transition:-webkit-transform .3s ease-in-out,margin .3s ease-in-out;-moz-transition:-moz-transform .3s ease-in-out,margin .3s ease-in-out;-o-transition:-o-transform .3s ease-in-out,margin .3s ease-in-out;transition:transform .3s ease-in-out,margin .3s ease-in-out;margin-left:230px;z-index:820}.layout-top-nav .content-wrapper,.layout-top-nav .main-footer,.layout-top-nav .right-side{margin-left:0}@media (max-width:767px){.content-wrapper,.main-footer,.right-side{margin-left:0}}@media (min-width:768px){.sidebar-collapse .content-wrapper,.sidebar-collapse .main-footer,.sidebar-collapse .right-side{margin-left:0}}@media (max-width:767px){.sidebar-open .content-wrapper,.sidebar-open .main-footer,.sidebar-open .right-side{-webkit-transform:translate(230px);-ms-transform:translate(230px);-o-transform:translate(230px);transform:translate(230px)}}.content-wrapper,.right-side{min-height:100%;background-color:#ecf0f5;z-index:800}.main-footer{background:#fff;padding:15px;color:#444;border-top:1px solid #d2d6de}.fixed .left-side,.fixed .main-header,.fixed .main-sidebar{position:fixed}.fixed .main-header{top:0;right:0;left:0}.fixed .content-wrapper,.fixed .right-side{padding-top:50px}@media (max-width:767px){.fixed .content-wrapper,.fixed .right-side{padding-top:100px}}.fixed.layout-boxed .wrapper{max-width:100%}body.hold-transition .content-wrapper,body.hold-transition .left-side,body.hold-transition .main-footer,body.hold-transition .main-header .logo,body.hold-transition .main-header .navbar,body.hold-transition .main-sidebar,body.hold-transition .right-side{-webkit-transition:none;-o-transition:none;transition:none}.content{min-height:250px;padding:15px;margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:Source Sans Pro,sans-serif}a{color:#3c8dbc}a:active,a:focus,a:hover{outline:none;text-decoration:none;color:#72afd2}.page-header{margin:10px 0 20px;font-size:22px}.page-header>small{color:#666;display:block;margin-top:5px}.main-header{position:relative;max-height:100px;z-index:1030}.main-header .navbar{-webkit-transition:margin-left .3s ease-in-out;-o-transition:margin-left .3s ease-in-out;transition:margin-left .3s ease-in-out;margin-bottom:0;margin-left:230px;border:none;min-height:50px;border-radius:0}.layout-top-nav .main-header .navbar{margin-left:0}.main-header #navbar-search-input.form-control{background:hsla(0,0%,100%,.2);border-color:transparent}.main-header #navbar-search-input.form-control:active,.main-header #navbar-search-input.form-control:focus{border-color:rgba(0,0,0,.1);background:hsla(0,0%,100%,.9)}.main-header #navbar-search-input.form-control::-moz-placeholder{color:#ccc;opacity:1}.main-header #navbar-search-input.form-control:-ms-input-placeholder{color:#ccc}.main-header #navbar-search-input.form-control::-webkit-input-placeholder{color:#ccc}.main-header .navbar-custom-menu,.main-header .navbar-right{float:right}@media (max-width:991px){.main-header .navbar-custom-menu a,.main-header .navbar-right a{color:inherit;background:transparent}}@media (max-width:767px){.main-header .navbar-right{float:none}.navbar-collapse .main-header .navbar-right{margin:7.5px -15px}.main-header .navbar-right>li{color:inherit;border:0}}.main-header .sidebar-toggle{float:left;background-color:transparent;background-image:none;padding:15px;font-family:fontAwesome}.main-header .sidebar-toggle:before{content:"\f0c9"}.main-header .sidebar-toggle:hover{color:#fff}.main-header .sidebar-toggle:active,.main-header .sidebar-toggle:focus{background:transparent}.main-header .sidebar-toggle .icon-bar{display:none}.main-header .navbar .nav>li.user>a>.fa,.main-header .navbar .nav>li.user>a>.glyphicon,.main-header .navbar .nav>li.user>a>.ion{margin-right:5px}.main-header .navbar .nav>li>a>.label{position:absolute;top:9px;right:7px;text-align:center;font-size:9px;padding:2px 3px;line-height:.9}.main-header .logo{-webkit-transition:width .3s ease-in-out;-o-transition:width .3s ease-in-out;transition:width .3s ease-in-out;display:block;float:left;height:50px;font-size:20px;line-height:50px;text-align:center;width:230px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;padding:0 15px;font-weight:300;overflow:hidden}.main-header .logo .logo-lg{display:block}.main-header .logo .logo-mini{display:none}.main-header .navbar-brand{color:#fff}.content-header{position:relative;padding:15px 15px 0}.content-header>h1{margin:0;font-size:24px}.content-header>h1>small{font-size:15px;display:inline-block;padding-left:4px;font-weight:300}.content-header>.breadcrumb{float:right;background:transparent;margin-top:0;margin-bottom:0;font-size:12px;padding:7px 5px;position:absolute;top:15px;right:10px;border-radius:2px}.content-header>.breadcrumb>li>a{color:#444;text-decoration:none;display:inline-block}.content-header>.breadcrumb>li>a>.fa,.content-header>.breadcrumb>li>a>.glyphicon,.content-header>.breadcrumb>li>a>.ion{margin-right:5px}.content-header>.breadcrumb>li+li:before{content:'>\00a0'}@media (max-width:991px){.content-header>.breadcrumb{position:relative;margin-top:5px;top:0;right:0;float:none;background:#d2d6de;padding-left:10px}.content-header>.breadcrumb li:before{color:#97a0b3}}.navbar-toggle{color:#fff;border:0;margin:0;padding:15px}@media (max-width:991px){.navbar-custom-menu .navbar-nav>li{float:left}.navbar-custom-menu .navbar-nav{margin:0;float:left}.navbar-custom-menu .navbar-nav>li>a{padding-top:15px;padding-bottom:15px;line-height:20px}}@media (max-width:767px){.main-header{position:relative}.main-header .logo,.main-header .navbar{width:100%;float:none}.main-header .navbar{margin:0}.main-header .navbar-custom-menu{float:right}}@media (max-width:991px){.navbar-collapse.pull-left{float:none!important}.navbar-collapse.pull-left+.navbar-custom-menu{display:block;position:absolute;top:0;right:40px}}.left-side,.main-sidebar{position:absolute;top:0;left:0;padding-top:50px;min-height:100%;width:230px;z-index:810;-webkit-transition:-webkit-transform .3s ease-in-out,width .3s ease-in-out;-moz-transition:-moz-transform .3s ease-in-out,width .3s ease-in-out;-o-transition:-o-transform .3s ease-in-out,width .3s ease-in-out;transition:transform .3s ease-in-out,width .3s ease-in-out}@media (max-width:767px){.left-side,.main-sidebar{padding-top:100px;-webkit-transform:translate(-230px);-ms-transform:translate(-230px);-o-transform:translate(-230px);transform:translate(-230px)}}@media (min-width:768px){.sidebar-collapse .left-side,.sidebar-collapse .main-sidebar{-webkit-transform:translate(-230px);-ms-transform:translate(-230px);-o-transform:translate(-230px);transform:translate(-230px)}}@media (max-width:767px){.sidebar-open .left-side,.sidebar-open .main-sidebar{-webkit-transform:translate(0);-ms-transform:translate(0);-o-transform:translate(0);transform:translate(0)}}.sidebar{padding-bottom:10px}.sidebar-form input:focus{border-color:transparent}.user-panel{position:relative;width:100%;padding:10px;overflow:hidden}.user-panel:after,.user-panel:before{content:" ";display:table}.user-panel:after{clear:both}.user-panel>.image>img{width:100%;max-width:45px;height:auto}.user-panel>.info{padding:5px 5px 5px 15px;line-height:1;position:absolute;left:55px}.user-panel>.info>p{font-weight:600;margin-bottom:9px}.user-panel>.info>a{text-decoration:none;padding-right:5px;margin-top:3px;font-size:11px}.user-panel>.info>a>.fa,.user-panel>.info>a>.glyphicon,.user-panel>.info>a>.ion{margin-right:3px}.sidebar-menu{list-style:none;margin:0;padding:0}.sidebar-menu>li{position:relative;margin:0;padding:0}.sidebar-menu>li>a{padding:12px 5px 12px 15px;display:block}.sidebar-menu>li>a>.fa,.sidebar-menu>li>a>.glyphicon,.sidebar-menu>li>a>.ion{width:20px}.sidebar-menu>li .badge,.sidebar-menu>li .label{margin-right:5px}.sidebar-menu>li .badge{margin-top:3px}.sidebar-menu li.header{padding:10px 25px 10px 15px;font-size:12px}.sidebar-menu li>a>.pull-right-container>.fa-angle-left{width:auto;height:auto;padding:0;margin-right:10px}.sidebar-menu li.active>a>.pull-right-container>.fa-angle-left{-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg)}.sidebar-menu li.active>.treeview-menu{display:block}.sidebar-menu .treeview-menu{display:none;list-style:none;padding:0;margin:0;padding-left:5px}.sidebar-menu .treeview-menu .treeview-menu{padding-left:20px}.sidebar-menu .treeview-menu>li{margin:0}.sidebar-menu .treeview-menu>li>a{padding:5px 5px 5px 15px;display:block;font-size:14px}.sidebar-menu .treeview-menu>li>a>.fa,.sidebar-menu .treeview-menu>li>a>.glyphicon,.sidebar-menu .treeview-menu>li>a>.ion{width:20px}.sidebar-menu .treeview-menu>li>a>.fa-angle-down,.sidebar-menu .treeview-menu>li>a>.pull-right-container>.fa-angle-left{width:auto}@media (min-width:768px){.sidebar-mini.sidebar-collapse .content-wrapper,.sidebar-mini.sidebar-collapse .main-footer,.sidebar-mini.sidebar-collapse .right-side{margin-left:50px!important;z-index:840}.sidebar-mini.sidebar-collapse .main-sidebar{-webkit-transform:translate(0);-ms-transform:translate(0);-o-transform:translate(0);transform:translate(0);width:50px!important;z-index:850}.sidebar-mini.sidebar-collapse .sidebar-menu>li{position:relative}.sidebar-mini.sidebar-collapse .sidebar-menu>li>a{margin-right:0}.sidebar-mini.sidebar-collapse .sidebar-menu>li>a>span{border-top-right-radius:4px}.sidebar-mini.sidebar-collapse .sidebar-menu>li:not(.treeview)>a>span{border-bottom-right-radius:4px}.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{padding-top:5px;padding-bottom:5px;border-bottom-right-radius:4px}.sidebar-mini.sidebar-collapse .sidebar-menu>li:hover>.treeview-menu,.sidebar-mini.sidebar-collapse .sidebar-menu>li:hover>a>span:not(.pull-right){display:block!important;position:absolute;width:180px;left:50px}.sidebar-mini.sidebar-collapse .sidebar-menu>li:hover>a>span{top:0;margin-left:-3px;padding:12px 5px 12px 20px;background-color:inherit}.sidebar-mini.sidebar-collapse .sidebar-menu>li:hover>a>.pull-right-container{float:right;width:auto!important;left:200px!important;top:10px!important}.sidebar-mini.sidebar-collapse .sidebar-menu>li:hover>a>.pull-right-container>.label:not(:first-of-type){display:none}.sidebar-mini.sidebar-collapse .sidebar-menu>li:hover>.treeview-menu{top:44px;margin-left:0}.sidebar-mini.sidebar-collapse .main-sidebar .user-panel>.info,.sidebar-mini.sidebar-collapse .sidebar-form,.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu,.sidebar-mini.sidebar-collapse .sidebar-menu>li>a>.pull-right,.sidebar-mini.sidebar-collapse .sidebar-menu>li>a>span,.sidebar-mini.sidebar-collapse .sidebar-menu li.header{display:none!important;-webkit-transform:translateZ(0)}.sidebar-mini.sidebar-collapse .main-header .logo{width:50px}.sidebar-mini.sidebar-collapse .main-header .logo>.logo-mini{display:block;margin-left:-15px;margin-right:-15px;font-size:18px}.sidebar-mini.sidebar-collapse .main-header .logo>.logo-lg{display:none}.sidebar-mini.sidebar-collapse .main-header .navbar{margin-left:50px}}.main-sidebar .user-panel,.sidebar-menu,.sidebar-menu>li.header{white-space:nowrap;overflow:hidden}.sidebar-menu:hover{overflow:visible}.sidebar-form,.sidebar-menu>li.header{overflow:hidden;text-overflow:clip}.sidebar-menu li>a{position:relative}.sidebar-menu li>a>.pull-right-container{position:absolute;right:10px;top:50%;margin-top:-7px}.control-sidebar-bg{position:fixed;z-index:1000;bottom:0}.control-sidebar,.control-sidebar-bg{top:0;right:-230px;width:230px;-webkit-transition:right .3s ease-in-out;-o-transition:right .3s ease-in-out;transition:right .3s ease-in-out}.control-sidebar{position:absolute;padding-top:50px;z-index:1010}@media (max-width:768px){.control-sidebar{padding-top:100px}}.control-sidebar>.tab-content{padding:10px 15px}.control-sidebar-open .control-sidebar,.control-sidebar-open .control-sidebar-bg,.control-sidebar.control-sidebar-open,.control-sidebar.control-sidebar-open+.control-sidebar-bg{right:0}@media (min-width:768px){.control-sidebar-open .content-wrapper,.control-sidebar-open .main-footer,.control-sidebar-open .right-side{margin-right:230px}}.nav-tabs.control-sidebar-tabs>li:first-of-type>a,.nav-tabs.control-sidebar-tabs>li:first-of-type>a:focus,.nav-tabs.control-sidebar-tabs>li:first-of-type>a:hover{border-left-width:0}.nav-tabs.control-sidebar-tabs>li>a{border-radius:0}.nav-tabs.control-sidebar-tabs>li>a,.nav-tabs.control-sidebar-tabs>li>a:hover{border-top:none;border-right:none;border-left:1px solid transparent;border-bottom:1px solid transparent}.nav-tabs.control-sidebar-tabs>li>a .icon{font-size:16px}.nav-tabs.control-sidebar-tabs>li.active>a,.nav-tabs.control-sidebar-tabs>li.active>a:active,.nav-tabs.control-sidebar-tabs>li.active>a:focus,.nav-tabs.control-sidebar-tabs>li.active>a:hover{border-top:none;border-right:none;border-bottom:none}@media (max-width:768px){.nav-tabs.control-sidebar-tabs{display:table}.nav-tabs.control-sidebar-tabs>li{display:table-cell}}.control-sidebar-heading{font-weight:400;font-size:16px;padding:10px 0;margin-bottom:10px}.control-sidebar-subheading{display:block;font-weight:400;font-size:14px}.control-sidebar-menu{list-style:none;padding:0;margin:0 -15px}.control-sidebar-menu>li>a{display:block;padding:10px 15px}.control-sidebar-menu>li>a:after,.control-sidebar-menu>li>a:before{content:" ";display:table}.control-sidebar-menu>li>a:after{clear:both}.control-sidebar-menu>li>a>.control-sidebar-subheading{margin-top:0}.control-sidebar-menu .menu-icon{float:left;width:35px;height:35px;border-radius:50%;text-align:center;line-height:35px}.control-sidebar-menu .menu-info{margin-left:45px;margin-top:3px}.control-sidebar-menu .menu-info>.control-sidebar-subheading{margin:0}.control-sidebar-menu .menu-info>p{margin:0;font-size:11px}.control-sidebar-menu .progress{margin:0}.control-sidebar-dark{color:#b8c7ce}.control-sidebar-dark,.control-sidebar-dark+.control-sidebar-bg{background:#222d32}.control-sidebar-dark .nav-tabs.control-sidebar-tabs{border-bottom:#1c2529}.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a{background:#181f23;color:#b8c7ce}.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a:focus,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a:hover{border-left-color:#141a1d;border-bottom-color:#141a1d}.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a:active,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a:focus,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a:hover{background:#1c2529}.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a:hover{color:#fff}.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li.active>a,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li.active>a:active,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li.active>a:focus,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li.active>a:hover{background:#222d32;color:#fff}.control-sidebar-dark .control-sidebar-heading,.control-sidebar-dark .control-sidebar-subheading{color:#fff}.control-sidebar-dark .control-sidebar-menu>li>a:hover{background:#1e282c}.control-sidebar-dark .control-sidebar-menu>li>a .menu-info>p{color:#b8c7ce}.control-sidebar-light{color:#5e5e5e}.control-sidebar-light,.control-sidebar-light+.control-sidebar-bg{background:#f9fafc;border-left:1px solid #d2d6de}.control-sidebar-light .nav-tabs.control-sidebar-tabs{border-bottom:#d2d6de}.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a{background:#e8ecf4;color:#444}.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a:focus,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a:hover{border-left-color:#d2d6de;border-bottom-color:#d2d6de}.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a:active,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a:focus,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a:hover{background:#eff1f7}.control-sidebar-light .nav-tabs.control-sidebar-tabs>li.active>a,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li.active>a:active,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li.active>a:focus,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li.active>a:hover{background:#f9fafc;color:#111}.control-sidebar-light .control-sidebar-heading,.control-sidebar-light .control-sidebar-subheading{color:#111}.control-sidebar-light .control-sidebar-menu{margin-left:-14px}.control-sidebar-light .control-sidebar-menu>li>a:hover{background:#f4f4f5}.control-sidebar-light .control-sidebar-menu>li>a .menu-info>p{color:#5e5e5e}.dropdown-menu{box-shadow:none;border-color:#eee}.dropdown-menu>li>a{color:#777}.dropdown-menu>li>a>.fa,.dropdown-menu>li>a>.glyphicon,.dropdown-menu>li>a>.ion{margin-right:10px}.dropdown-menu>li>a:hover{background-color:#e1e3e9;color:#333}.dropdown-menu>.divider{background-color:#eee}.navbar-nav>.messages-menu>.dropdown-menu,.navbar-nav>.notifications-menu>.dropdown-menu,.navbar-nav>.tasks-menu>.dropdown-menu{width:280px;padding:0;margin:0;top:100%}.navbar-nav>.messages-menu>.dropdown-menu>li,.navbar-nav>.notifications-menu>.dropdown-menu>li,.navbar-nav>.tasks-menu>.dropdown-menu>li{position:relative}.navbar-nav>.messages-menu>.dropdown-menu>li.header,.navbar-nav>.notifications-menu>.dropdown-menu>li.header,.navbar-nav>.tasks-menu>.dropdown-menu>li.header{border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0;background-color:#fff;padding:7px 10px;border-bottom:1px solid #f4f4f4;color:#444;font-size:14px}.navbar-nav>.messages-menu>.dropdown-menu>li.footer>a,.navbar-nav>.notifications-menu>.dropdown-menu>li.footer>a,.navbar-nav>.tasks-menu>.dropdown-menu>li.footer>a{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px;font-size:12px;background-color:#fff;padding:7px 10px;border-bottom:1px solid #eee;color:#444!important;text-align:center}@media (max-width:991px){.navbar-nav>.messages-menu>.dropdown-menu>li.footer>a,.navbar-nav>.notifications-menu>.dropdown-menu>li.footer>a,.navbar-nav>.tasks-menu>.dropdown-menu>li.footer>a{background:#fff!important;color:#444!important}}.navbar-nav>.messages-menu>.dropdown-menu>li.footer>a:hover,.navbar-nav>.notifications-menu>.dropdown-menu>li.footer>a:hover,.navbar-nav>.tasks-menu>.dropdown-menu>li.footer>a:hover{text-decoration:none;font-weight:400}.navbar-nav>.messages-menu>.dropdown-menu>li .menu,.navbar-nav>.notifications-menu>.dropdown-menu>li .menu,.navbar-nav>.tasks-menu>.dropdown-menu>li .menu{max-height:200px;margin:0;padding:0;list-style:none;overflow-x:hidden}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a,.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a,.navbar-nav>.tasks-menu>.dropdown-menu>li .menu>li>a{display:block;white-space:nowrap;border-bottom:1px solid #f4f4f4}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a:hover,.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a:hover,.navbar-nav>.tasks-menu>.dropdown-menu>li .menu>li>a:hover{background:#f4f4f4;text-decoration:none}.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a{color:#444;overflow:hidden;text-overflow:ellipsis;padding:10px}.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a>.fa,.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a>.glyphicon,.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a>.ion{width:20px}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a{margin:0;padding:10px}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a>div>img{margin:auto 10px auto auto;width:40px;height:40px}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a>h4{padding:0;margin:0 0 0 45px;color:#444;font-size:15px;position:relative}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a>h4>small{color:#999;font-size:10px;position:absolute;top:0;right:0}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a>p{margin:0 0 0 45px;font-size:12px;color:#888}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a:after,.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a:before{content:" ";display:table}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a:after{clear:both}.navbar-nav>.tasks-menu>.dropdown-menu>li .menu>li>a{padding:10px}.navbar-nav>.tasks-menu>.dropdown-menu>li .menu>li>a>h3{font-size:14px;padding:0;margin:0 0 10px;color:#666}.navbar-nav>.tasks-menu>.dropdown-menu>li .menu>li>a>.progress{padding:0;margin:0}.navbar-nav>.user-menu>.dropdown-menu{border-top-right-radius:0;border-top-left-radius:0;padding:1px 0 0;border-top-width:0;width:280px}.navbar-nav>.user-menu>.dropdown-menu,.navbar-nav>.user-menu>.dropdown-menu>.user-body{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.navbar-nav>.user-menu>.dropdown-menu>li.user-header{height:175px;padding:10px;text-align:center}.navbar-nav>.user-menu>.dropdown-menu>li.user-header>img{z-index:5;height:90px;width:90px;border:3px solid;border-color:transparent;border-color:hsla(0,0%,100%,.2)}.navbar-nav>.user-menu>.dropdown-menu>li.user-header>p{z-index:5;color:#fff;color:hsla(0,0%,100%,.8);font-size:17px;margin-top:10px}.navbar-nav>.user-menu>.dropdown-menu>li.user-header>p>small{display:block;font-size:12px}.navbar-nav>.user-menu>.dropdown-menu>.user-body{padding:15px;border-bottom:1px solid #f4f4f4;border-top:1px solid #ddd}.navbar-nav>.user-menu>.dropdown-menu>.user-body:after,.navbar-nav>.user-menu>.dropdown-menu>.user-body:before{content:" ";display:table}.navbar-nav>.user-menu>.dropdown-menu>.user-body:after{clear:both}.navbar-nav>.user-menu>.dropdown-menu>.user-body a{color:#444!important}@media (max-width:991px){.navbar-nav>.user-menu>.dropdown-menu>.user-body a{background:#fff!important;color:#444!important}}.navbar-nav>.user-menu>.dropdown-menu>.user-footer{background-color:#f9f9f9;padding:10px}.navbar-nav>.user-menu>.dropdown-menu>.user-footer:after,.navbar-nav>.user-menu>.dropdown-menu>.user-footer:before{content:" ";display:table}.navbar-nav>.user-menu>.dropdown-menu>.user-footer:after{clear:both}.navbar-nav>.user-menu>.dropdown-menu>.user-footer .btn-default{color:#666}@media (max-width:991px){.navbar-nav>.user-menu>.dropdown-menu>.user-footer .btn-default:hover{background-color:#f9f9f9}}.navbar-nav>.user-menu .user-image{float:left;width:25px;height:25px;border-radius:50%;margin-right:10px;margin-top:-2px}@media (max-width:767px){.navbar-nav>.user-menu .user-image{float:none;margin-right:0;margin-top:-8px;line-height:10px}}.open:not(.dropup)>.animated-dropdown-menu{backface-visibility:visible!important;-webkit-animation:flipInX .7s both;-o-animation:flipInX .7s both;animation:flipInX .7s both}@keyframes flipInX{0%{transform:perspective(400px) rotateX(90deg);transition-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotateX(-20deg);transition-timing-function:ease-in}60%{transform:perspective(400px) rotateX(10deg);opacity:1}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);-webkit-transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-20deg);-webkit-transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px)}}.navbar-custom-menu>.navbar-nav>li{position:relative}.navbar-custom-menu>.navbar-nav>li>.dropdown-menu{position:absolute;right:0;left:auto}@media (max-width:991px){.navbar-custom-menu>.navbar-nav{float:right}.navbar-custom-menu>.navbar-nav>li{position:static}.navbar-custom-menu>.navbar-nav>li>.dropdown-menu{position:absolute;right:5%;left:auto;border:1px solid #ddd;background:#fff}}.form-control{border-radius:0;box-shadow:none;border-color:#d2d6de}.form-control:focus{border-color:#3c8dbc;box-shadow:none}.form-control:-ms-input-placeholder,.form-control::-moz-placeholder,.form-control::-webkit-input-placeholder{color:#bbb;opacity:1}.form-control:not(select){-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-group.has-success label{color:#00a65a}.form-group.has-success .form-control{border-color:#00a65a;box-shadow:none}.form-group.has-success .help-block{color:#00a65a}.form-group.has-warning label{color:#f39c12}.form-group.has-warning .form-control{border-color:#f39c12;box-shadow:none}.form-group.has-warning .help-block{color:#f39c12}.form-group.has-error label{color:#dd4b39}.form-group.has-error .form-control{border-color:#dd4b39;box-shadow:none}.form-group.has-error .help-block{color:#dd4b39}.input-group .input-group-addon{border-radius:0;border-color:#d2d6de;background-color:#fff}.btn-group-vertical .btn.btn-flat:first-of-type,.btn-group-vertical .btn.btn-flat:last-of-type{border-radius:0}.icheck>label{padding-left:0}.form-control-feedback.fa{line-height:34px}.form-group-lg .form-control+.form-control-feedback.fa,.input-group-lg+.form-control-feedback.fa,.input-lg+.form-control-feedback.fa{line-height:46px}.form-group-sm .form-control+.form-control-feedback.fa,.input-group-sm+.form-control-feedback.fa,.input-sm+.form-control-feedback.fa{line-height:30px}.progress,.progress>.progress-bar{-webkit-box-shadow:none;box-shadow:none}.progress,.progress .progress-bar,.progress>.progress-bar,.progress>.progress-bar .progress-bar{border-radius:1px}.progress-sm,.progress.sm{height:10px}.progress-sm,.progress-sm .progress-bar,.progress.sm,.progress.sm .progress-bar{border-radius:1px}.progress-xs,.progress.xs{height:7px}.progress-xs,.progress-xs .progress-bar,.progress.xs,.progress.xs .progress-bar{border-radius:1px}.progress-xxs,.progress.xxs{height:3px}.progress-xxs,.progress-xxs .progress-bar,.progress.xxs,.progress.xxs .progress-bar{border-radius:1px}.progress.vertical{position:relative;width:30px;height:200px;display:inline-block;margin-right:10px}.progress.vertical>.progress-bar{width:100%;position:absolute;bottom:0}.progress.vertical.progress-sm,.progress.vertical.sm{width:20px}.progress.vertical.progress-xs,.progress.vertical.xs{width:10px}.progress.vertical.progress-xxs,.progress.vertical.xxs{width:3px}.progress-group .progress-text{font-weight:600}.progress-group .progress-number{float:right}.table tr>td .progress{margin:0}.progress-bar-light-blue,.progress-bar-primary{background-color:#3c8dbc}.progress-striped .progress-bar-light-blue,.progress-striped .progress-bar-primary{background-image:-webkit-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-image:-o-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 25%,transparent 50%,hsla(0,0%,100%,.15) 50%,hsla(0,0%,100%,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent)}.progress-bar-green,.progress-bar-success{background-color:#00a65a}.progress-striped .progress-bar-green,.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-image:-o-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 25%,transparent 50%,hsla(0,0%,100%,.15) 50%,hsla(0,0%,100%,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent)}.progress-bar-aqua,.progress-bar-info{background-color:#00c0ef}.progress-striped .progress-bar-aqua,.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-image:-o-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 25%,transparent 50%,hsla(0,0%,100%,.15) 50%,hsla(0,0%,100%,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent)}.progress-bar-warning,.progress-bar-yellow{background-color:#f39c12}.progress-striped .progress-bar-warning,.progress-striped .progress-bar-yellow{background-image:-webkit-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-image:-o-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 25%,transparent 50%,hsla(0,0%,100%,.15) 50%,hsla(0,0%,100%,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent)}.progress-bar-danger,.progress-bar-red{background-color:#dd4b39}.progress-striped .progress-bar-danger,.progress-striped .progress-bar-red{background-image:-webkit-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-image:-o-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 25%,transparent 50%,hsla(0,0%,100%,.15) 50%,hsla(0,0%,100%,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent)}.small-box{border-radius:2px;position:relative;display:block;margin-bottom:20px;box-shadow:0 1px 1px rgba(0,0,0,.1)}.small-box>.inner{padding:10px}.small-box>.small-box-footer{position:relative;text-align:center;padding:3px 0;color:#fff;color:hsla(0,0%,100%,.8);display:block;z-index:10;background:rgba(0,0,0,.1);text-decoration:none}.small-box>.small-box-footer:hover{color:#fff;background:rgba(0,0,0,.15)}.small-box h3{font-size:38px;font-weight:700;margin:0 0 10px;white-space:nowrap;padding:0}.small-box p{font-size:15px}.small-box p>small{display:block;color:#f9f9f9;font-size:13px;margin-top:5px}.small-box h3,.small-box p{z-index:5}.small-box .icon{-webkit-transition:all .3s linear;-o-transition:all .3s linear;transition:all .3s linear;position:absolute;top:-10px;right:10px;z-index:0;font-size:90px;color:rgba(0,0,0,.15)}.small-box:hover{text-decoration:none;color:#f9f9f9}.small-box:hover .icon{font-size:95px}@media (max-width:767px){.small-box{text-align:center}.small-box .icon{display:none}.small-box p{font-size:12px}}.box{position:relative;border-radius:3px;background:#fff;border-top:3px solid #d2d6de;margin-bottom:20px;width:100%;box-shadow:0 1px 1px rgba(0,0,0,.1)}.box.box-primary{border-top-color:#3c8dbc}.box.box-info{border-top-color:#00c0ef}.box.box-danger{border-top-color:#dd4b39}.box.box-warning{border-top-color:#f39c12}.box.box-success{border-top-color:#00a65a}.box.box-default{border-top-color:#d2d6de}.box.collapsed-box .box-body,.box.collapsed-box .box-footer{display:none}.box .nav-stacked>li{border-bottom:1px solid #f4f4f4;margin:0}.box .nav-stacked>li:last-of-type{border-bottom:none}.box.height-control .box-body{max-height:300px;overflow:auto}.box .border-right{border-right:1px solid #f4f4f4}.box .border-left{border-left:1px solid #f4f4f4}.box.box-solid{border-top:0}.box.box-solid>.box-header .btn.btn-default{background:transparent}.box.box-solid>.box-header .btn:hover,.box.box-solid>.box-header a:hover{background:rgba(0,0,0,.1)}.box.box-solid.box-default{border:1px solid #d2d6de}.box.box-solid.box-default>.box-header{color:#444;background:#d2d6de;background-color:#d2d6de}.box.box-solid.box-default>.box-header .btn,.box.box-solid.box-default>.box-header a{color:#444}.box.box-solid.box-primary{border:1px solid #3c8dbc}.box.box-solid.box-primary>.box-header{color:#fff;background:#3c8dbc;background-color:#3c8dbc}.box.box-solid.box-primary>.box-header .btn,.box.box-solid.box-primary>.box-header a{color:#fff}.box.box-solid.box-info{border:1px solid #00c0ef}.box.box-solid.box-info>.box-header{color:#fff;background:#00c0ef;background-color:#00c0ef}.box.box-solid.box-info>.box-header .btn,.box.box-solid.box-info>.box-header a{color:#fff}.box.box-solid.box-danger{border:1px solid #dd4b39}.box.box-solid.box-danger>.box-header{color:#fff;background:#dd4b39;background-color:#dd4b39}.box.box-solid.box-danger>.box-header .btn,.box.box-solid.box-danger>.box-header a{color:#fff}.box.box-solid.box-warning{border:1px solid #f39c12}.box.box-solid.box-warning>.box-header{color:#fff;background:#f39c12;background-color:#f39c12}.box.box-solid.box-warning>.box-header .btn,.box.box-solid.box-warning>.box-header a{color:#fff}.box.box-solid.box-success{border:1px solid #00a65a}.box.box-solid.box-success>.box-header{color:#fff;background:#00a65a;background-color:#00a65a}.box.box-solid.box-success>.box-header .btn,.box.box-solid.box-success>.box-header a{color:#fff}.box.box-solid>.box-header>.box-tools .btn{border:0;box-shadow:none}.box.box-solid[class*=bg]>.box-header{color:#fff}.box .box-group>.box{margin-bottom:5px}.box .knob-label{text-align:center;color:#333;font-weight:100;font-size:12px;margin-bottom:.3em}.box>.loading-img,.box>.overlay,.overlay-wrapper>.loading-img,.overlay-wrapper>.overlay{position:absolute;top:0;left:0;width:100%;height:100%}.box .overlay,.overlay-wrapper .overlay{z-index:50;background:hsla(0,0%,100%,.7);border-radius:3px}.box .overlay>.fa,.overlay-wrapper .overlay>.fa{position:absolute;top:50%;left:50%;margin-left:-15px;margin-top:-15px;color:#000;font-size:30px}.box .overlay.dark,.overlay-wrapper .overlay.dark{background:rgba(0,0,0,.5)}.box-body:after,.box-body:before,.box-footer:after,.box-footer:before,.box-header:after,.box-header:before{content:" ";display:table}.box-body:after,.box-footer:after,.box-header:after{clear:both}.box-header{color:#444;display:block;padding:10px;position:relative}.box-header.with-border{border-bottom:1px solid #f4f4f4}.collapsed-box .box-header.with-border{border-bottom:none}.box-header .box-title,.box-header>.fa,.box-header>.glyphicon,.box-header>.ion{display:inline-block;font-size:18px;margin:0;line-height:1}.box-header>.fa,.box-header>.glyphicon,.box-header>.ion{margin-right:5px}.box-header>.box-tools{position:absolute;right:10px;top:5px}.box-header>.box-tools [data-toggle=tooltip]{position:relative}.box-header>.box-tools.pull-right .dropdown-menu{right:0;left:auto}.btn-box-tool{padding:5px;font-size:12px;background:transparent;color:#97a0b3}.btn-box-tool:hover,.open .btn-box-tool{color:#606c84}.btn-box-tool.btn:active{box-shadow:none}.box-body{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px;padding:10px}.no-header .box-body{border-top-right-radius:3px;border-top-left-radius:3px}.box-body>.table{margin-bottom:0}.box-body .fc{margin-top:5px}.box-body .full-width-chart{margin:-19px}.box-body.no-padding .full-width-chart{margin:-9px}.box-body .box-pane{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:3px}.box-body .box-pane-right{border-bottom-left-radius:0}.box-body .box-pane-right,.box-footer{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:3px}.box-footer{border-bottom-left-radius:3px;border-top:1px solid #f4f4f4;padding:10px;background-color:#fff}.chart-legend{margin:10px 0}@media (max-width:991px){.chart-legend>li{float:left;margin-right:10px}}.box-comments{background:#f7f7f7}.box-comments .box-comment{padding:8px 0;border-bottom:1px solid #eee}.box-comments .box-comment:after,.box-comments .box-comment:before{content:" ";display:table}.box-comments .box-comment:after{clear:both}.box-comments .box-comment:last-of-type{border-bottom:0}.box-comments .box-comment:first-of-type{padding-top:0}.box-comments .box-comment img{float:left}.box-comments .comment-text{margin-left:40px;color:#555}.box-comments .username{color:#444;display:block;font-weight:600}.box-comments .text-muted{font-weight:400;font-size:12px}.todo-list{margin:0;padding:0;list-style:none;overflow:auto}.todo-list>li{border-radius:2px;padding:10px;background:#f4f4f4;margin-bottom:2px;border-left:2px solid #e6e7e8;color:#444}.todo-list>li:last-of-type{margin-bottom:0}.todo-list>li>input[type=checkbox]{margin:0 10px 0 5px}.todo-list>li .text{display:inline-block;margin-left:5px;font-weight:600}.todo-list>li .label{margin-left:10px;font-size:9px}.todo-list>li .tools{display:none;float:right;color:#dd4b39}.todo-list>li .tools>.fa,.todo-list>li .tools>.glyphicon,.todo-list>li .tools>.ion{margin-right:5px;cursor:pointer}.todo-list>li:hover .tools{display:inline-block}.todo-list>li.done{color:#999}.todo-list>li.done .text{text-decoration:line-through;font-weight:500}.todo-list>li.done .label{background:#d2d6de!important}.todo-list .danger{border-left-color:#dd4b39}.todo-list .warning{border-left-color:#f39c12}.todo-list .info{border-left-color:#00c0ef}.todo-list .success{border-left-color:#00a65a}.todo-list .primary{border-left-color:#3c8dbc}.todo-list .handle{display:inline-block;cursor:move;margin:0 5px}.chat{padding:5px 20px 5px 10px}.chat .item{margin-bottom:10px}.chat .item:after,.chat .item:before{content:" ";display:table}.chat .item:after{clear:both}.chat .item>img{width:40px;height:40px;border:2px solid transparent;border-radius:50%}.chat .item>.online{border:2px solid #00a65a}.chat .item>.offline{border:2px solid #dd4b39}.chat .item>.message{margin-left:55px;margin-top:-40px}.chat .item>.message>.name{display:block;font-weight:600}.chat .item>.attachment{border-radius:3px;background:#f4f4f4;margin-left:65px;margin-right:15px;padding:10px}.chat .item>.attachment>h4{margin:0 0 5px;font-weight:600;font-size:14px}.chat .item>.attachment>.filename,.chat .item>.attachment>p{font-weight:600;font-size:13px;font-style:italic;margin:0}.chat .item>.attachment:after,.chat .item>.attachment:before{content:" ";display:table}.chat .item>.attachment:after{clear:both}.box-input{max-width:200px}.modal .panel-body{color:#444}.info-box{display:block;min-height:90px;background:#fff;width:100%;box-shadow:0 1px 1px rgba(0,0,0,.1);border-radius:2px;margin-bottom:15px}.info-box small{font-size:14px}.info-box .progress{background:rgba(0,0,0,.2);margin:5px -10px;height:2px}.info-box .progress,.info-box .progress .progress-bar{border-radius:0}.info-box .progress .progress-bar{background:#fff}.info-box-icon{border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px;display:block;float:left;height:90px;width:90px;text-align:center;font-size:45px;line-height:90px;background:rgba(0,0,0,.2)}.info-box-icon>img{max-width:100%}.info-box-content{padding:5px 10px;margin-left:90px}.info-box-number{display:block;font-weight:700;font-size:18px}.info-box-text,.progress-description{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.info-box-text{text-transform:uppercase}.info-box-more{display:block}.progress-description{margin:0}.timeline{position:relative;margin:0 0 30px;padding:0;list-style:none}.timeline:before{content:'';position:absolute;top:0;bottom:0;width:4px;background:#ddd;left:31px;margin:0;border-radius:2px}.timeline>li{position:relative;margin-right:10px;margin-bottom:15px}.timeline>li:after,.timeline>li:before{content:" ";display:table}.timeline>li:after{clear:both}.timeline>li>.timeline-item{-webkit-box-shadow:0 1px 1px rgba(0,0,0,.1);box-shadow:0 1px 1px rgba(0,0,0,.1);border-radius:3px;margin-top:0;background:#fff;color:#444;margin-left:60px;margin-right:15px;padding:0;position:relative}.timeline>li>.timeline-item>.time{color:#999;float:right;padding:10px;font-size:12px}.timeline>li>.timeline-item>.timeline-header{margin:0;color:#555;border-bottom:1px solid #f4f4f4;padding:10px;font-size:16px;line-height:1.1}.timeline>li>.timeline-item>.timeline-header>a{font-weight:600}.timeline>li>.timeline-item>.timeline-body,.timeline>li>.timeline-item>.timeline-footer{padding:10px}.timeline>li>.fa,.timeline>li>.glyphicon,.timeline>li>.ion{width:30px;height:30px;font-size:15px;line-height:30px;position:absolute;color:#666;background:#d2d6de;border-radius:50%;text-align:center;left:18px;top:0}.timeline>.time-label>span{font-weight:600;padding:5px;display:inline-block;background-color:#fff;border-radius:4px}.timeline-inverse>li>.timeline-item{background:#f0f0f0;border:1px solid #ddd;-webkit-box-shadow:none;box-shadow:none}.timeline-inverse>li>.timeline-item>.timeline-header{border-bottom-color:#ddd}.btn{border-radius:3px;-webkit-box-shadow:none;box-shadow:none;border:1px solid transparent}.btn.uppercase{text-transform:uppercase}.btn.btn-flat{border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;border-width:1px}.btn:active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);-moz-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn:focus{outline:none}.btn.btn-file{position:relative;overflow:hidden}.btn.btn-file>input[type=file]{position:absolute;top:0;right:0;min-width:100%;min-height:100%;font-size:100px;text-align:right;opacity:0;filter:alpha(opacity=0);outline:none;background:#fff;cursor:inherit;display:block}.btn-default{background-color:#f4f4f4;color:#444;border-color:#ddd}.btn-default.hover,.btn-default:active,.btn-default:hover{background-color:#e7e7e7}.btn-primary{background-color:#3c8dbc;border-color:#367fa9}.btn-primary.hover,.btn-primary:active,.btn-primary:hover{background-color:#367fa9}.btn-success{background-color:#00a65a;border-color:#008d4c}.btn-success.hover,.btn-success:active,.btn-success:hover{background-color:#008d4c}.btn-info{background-color:#00c0ef;border-color:#00acd6}.btn-info.hover,.btn-info:active,.btn-info:hover{background-color:#00acd6}.btn-danger{background-color:#dd4b39;border-color:#d73925}.btn-danger.hover,.btn-danger:active,.btn-danger:hover{background-color:#d73925}.btn-warning{background-color:#f39c12;border-color:#e08e0b}.btn-warning.hover,.btn-warning:active,.btn-warning:hover{background-color:#e08e0b}.btn-outline{border:1px solid #fff;background:transparent;color:#fff}.btn-outline:active,.btn-outline:focus,.btn-outline:hover{color:hsla(0,0%,100%,.7);border-color:hsla(0,0%,100%,.7)}.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn[class*=bg-]:hover{-webkit-box-shadow:inset 0 0 100px rgba(0,0,0,.2);box-shadow:inset 0 0 100px rgba(0,0,0,.2)}.btn-app{border-radius:3px;position:relative;padding:15px 5px;margin:0 0 10px 10px;min-width:80px;height:60px;text-align:center;color:#666;border:1px solid #ddd;background-color:#f4f4f4;font-size:12px}.btn-app>.fa,.btn-app>.glyphicon,.btn-app>.ion{font-size:20px;display:block}.btn-app:hover{background:#f4f4f4;color:#444;border-color:#aaa}.btn-app:active,.btn-app:focus{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);-moz-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-app>.badge{position:absolute;top:-3px;right:-10px;font-size:10px;font-weight:400}.callout{border-radius:3px;margin:0 0 20px;padding:15px 30px 15px 15px;border-left:5px solid #eee}.callout a{color:#fff;text-decoration:underline}.callout a:hover{color:#eee}.callout h4{margin-top:0;font-weight:600}.callout p:last-child{margin-bottom:0}.callout .highlight,.callout code{background-color:#fff}.callout.callout-danger{border-color:#c23321}.callout.callout-warning{border-color:#c87f0a}.callout.callout-info{border-color:#0097bc}.callout.callout-success{border-color:#00733e}.alert{border-radius:3px}.alert h4{font-weight:600}.alert .icon{margin-right:10px}.alert .close{color:#000;opacity:.2;filter:alpha(opacity=20)}.alert .close:hover{opacity:.5;filter:alpha(opacity=50)}.alert a{color:#fff;text-decoration:underline}.alert-success{border-color:#008d4c}.alert-danger,.alert-error{border-color:#d73925}.alert-warning{border-color:#e08e0b}.alert-info{border-color:#00acd6}.nav>li>a:active,.nav>li>a:focus,.nav>li>a:hover{color:#444;background:#f7f7f7}.nav-pills>li>a{border-radius:0;border-top:3px solid transparent;color:#444}.nav-pills>li>a>.fa,.nav-pills>li>a>.glyphicon,.nav-pills>li>a>.ion{margin-right:5px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{border-top-color:#3c8dbc}.nav-pills>li.active>a{font-weight:600}.nav-stacked>li>a{border-radius:0;border-top:0;border-left:3px solid transparent;color:#444}.nav-stacked>li.active>a,.nav-stacked>li.active>a:hover{background:transparent;color:#444;border-top:0;border-left-color:#3c8dbc}.nav-stacked>li.header{border-bottom:1px solid #ddd;color:#777;margin-bottom:10px;padding:5px 10px;text-transform:uppercase}.nav-tabs-custom{margin-bottom:20px;background:#fff;box-shadow:0 1px 1px rgba(0,0,0,.1);border-radius:3px}.nav-tabs-custom>.nav-tabs{margin:0;border-bottom-color:#f4f4f4;border-top-right-radius:3px;border-top-left-radius:3px}.nav-tabs-custom>.nav-tabs>li{border-top:3px solid transparent;margin-bottom:-2px;margin-right:5px}.nav-tabs-custom>.nav-tabs>li>a{color:#444;border-radius:0}.nav-tabs-custom>.nav-tabs>li>a.text-muted{color:#999}.nav-tabs-custom>.nav-tabs>li>a,.nav-tabs-custom>.nav-tabs>li>a:hover{background:transparent;margin:0}.nav-tabs-custom>.nav-tabs>li>a:hover{color:#999}.nav-tabs-custom>.nav-tabs>li:not(.active)>a:active,.nav-tabs-custom>.nav-tabs>li:not(.active)>a:focus,.nav-tabs-custom>.nav-tabs>li:not(.active)>a:hover{border-color:transparent}.nav-tabs-custom>.nav-tabs>li.active{border-top-color:#3c8dbc}.nav-tabs-custom>.nav-tabs>li.active:hover>a,.nav-tabs-custom>.nav-tabs>li.active>a{background-color:#fff;color:#444}.nav-tabs-custom>.nav-tabs>li.active>a{border-top-color:transparent;border-left-color:#f4f4f4;border-right-color:#f4f4f4}.nav-tabs-custom>.nav-tabs>li:first-of-type{margin-left:0}.nav-tabs-custom>.nav-tabs>li:first-of-type.active>a{border-left-color:transparent}.nav-tabs-custom>.nav-tabs.pull-right{float:none!important}.nav-tabs-custom>.nav-tabs.pull-right>li{float:right}.nav-tabs-custom>.nav-tabs.pull-right>li:first-of-type{margin-right:0}.nav-tabs-custom>.nav-tabs.pull-right>li:first-of-type>a{border-left-width:1px}.nav-tabs-custom>.nav-tabs.pull-right>li:first-of-type.active>a{border-left-color:#f4f4f4;border-right-color:transparent}.nav-tabs-custom>.nav-tabs>li.header{line-height:35px;padding:0 10px;font-size:20px;color:#444}.nav-tabs-custom>.nav-tabs>li.header>.fa,.nav-tabs-custom>.nav-tabs>li.header>.glyphicon,.nav-tabs-custom>.nav-tabs>li.header>.ion{margin-right:5px}.nav-tabs-custom>.tab-content{background:#fff;padding:10px;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.nav-tabs-custom .dropdown.open>a:active,.nav-tabs-custom .dropdown.open>a:focus{background:transparent;color:#999}.nav-tabs-custom.tab-primary>.nav-tabs>li.active{border-top-color:#3c8dbc}.nav-tabs-custom.tab-info>.nav-tabs>li.active{border-top-color:#00c0ef}.nav-tabs-custom.tab-danger>.nav-tabs>li.active{border-top-color:#dd4b39}.nav-tabs-custom.tab-warning>.nav-tabs>li.active{border-top-color:#f39c12}.nav-tabs-custom.tab-success>.nav-tabs>li.active{border-top-color:#00a65a}.nav-tabs-custom.tab-default>.nav-tabs>li.active{border-top-color:#d2d6de}.pagination>li>a{background:#fafafa;color:#666}.pagination.pagination-flat>li>a{border-radius:0!important}.products-list{list-style:none;margin:0;padding:0}.products-list>.item{border-radius:3px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.1);box-shadow:0 1px 1px rgba(0,0,0,.1);padding:10px 0;background:#fff}.products-list>.item:after,.products-list>.item:before{content:" ";display:table}.products-list>.item:after{clear:both}.products-list .product-img{float:left}.products-list .product-img img{width:50px;height:50px}.products-list .product-info{margin-left:60px}.products-list .product-title{font-weight:600}.products-list .product-description{display:block;color:#999;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.product-list-in-box>.item{-webkit-box-shadow:none;box-shadow:none;border-radius:0;border-bottom:1px solid #f4f4f4}.product-list-in-box>.item:last-of-type{border-bottom-width:0}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{border-top:1px solid #f4f4f4}.table>thead>tr>th{border-bottom:2px solid #f4f4f4}.table tr td .progress{margin-top:5px}.table-bordered,.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #f4f4f4}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table.no-border,.table.no-border td,.table.no-border th{border:0}table.text-center,table.text-center td,table.text-center th{text-align:center}.table.align th{text-align:left}.table.align td{text-align:right}.label-default{background-color:#d2d6de;color:#444}.direct-chat .box-body{border-bottom-right-radius:0;border-bottom-left-radius:0;position:relative;overflow-x:hidden;padding:0}.direct-chat-messages,.direct-chat.chat-pane-open .direct-chat-contacts{-webkit-transform:translate(0);-ms-transform:translate(0);-o-transform:translate(0);transform:translate(0)}.direct-chat-messages{padding:10px;height:250px;overflow:auto}.direct-chat-msg,.direct-chat-text{display:block}.direct-chat-msg{margin-bottom:10px}.direct-chat-msg:after,.direct-chat-msg:before{content:" ";display:table}.direct-chat-msg:after{clear:both}.direct-chat-contacts,.direct-chat-messages{-webkit-transition:-webkit-transform .5s ease-in-out;-moz-transition:-moz-transform .5s ease-in-out;-o-transition:-o-transform .5s ease-in-out;transition:transform .5s ease-in-out}.direct-chat-text{border-radius:5px;position:relative;padding:5px 10px;background:#d2d6de;border:1px solid #d2d6de;margin:5px 0 0 50px;color:#444}.direct-chat-text:after,.direct-chat-text:before{position:absolute;right:100%;top:15px;border:solid transparent;border-right-color:#d2d6de;content:' ';height:0;width:0;pointer-events:none}.direct-chat-text:after{border-width:5px;margin-top:-5px}.direct-chat-text:before{border-width:6px;margin-top:-6px}.right .direct-chat-text{margin-right:50px;margin-left:0}.right .direct-chat-text:after,.right .direct-chat-text:before{right:auto;left:100%;border-right-color:transparent;border-left-color:#d2d6de}.direct-chat-img{border-radius:50%;float:left;width:40px;height:40px}.right .direct-chat-img{float:right}.direct-chat-info{display:block;margin-bottom:2px;font-size:12px}.direct-chat-name{font-weight:600}.direct-chat-timestamp{color:#999}.direct-chat-contacts-open .direct-chat-contacts{-webkit-transform:translate(0);-ms-transform:translate(0);-o-transform:translate(0);transform:translate(0)}.direct-chat-contacts{-webkit-transform:translate(101%);-ms-transform:translate(101%);-o-transform:translate(101%);transform:translate(101%);position:absolute;top:0;bottom:0;height:250px;width:100%;background:#222d32;color:#fff;overflow:auto}.contacts-list>li{border-bottom:1px solid rgba(0,0,0,.2);padding:10px;margin:0}.contacts-list>li:after,.contacts-list>li:before{content:" ";display:table}.contacts-list>li:after{clear:both}.contacts-list>li:last-of-type{border-bottom:none}.contacts-list-img{border-radius:50%;width:40px;float:left}.contacts-list-info{margin-left:45px;color:#fff}.contacts-list-name,.contacts-list-status{display:block}.contacts-list-name{font-weight:600}.contacts-list-status{font-size:12px}.contacts-list-date{color:#aaa;font-weight:400}.contacts-list-msg{color:#999}.direct-chat-danger .right>.direct-chat-text{background:#dd4b39;border-color:#dd4b39;color:#fff}.direct-chat-danger .right>.direct-chat-text:after,.direct-chat-danger .right>.direct-chat-text:before{border-left-color:#dd4b39}.direct-chat-primary .right>.direct-chat-text{background:#3c8dbc;border-color:#3c8dbc;color:#fff}.direct-chat-primary .right>.direct-chat-text:after,.direct-chat-primary .right>.direct-chat-text:before{border-left-color:#3c8dbc}.direct-chat-warning .right>.direct-chat-text{background:#f39c12;border-color:#f39c12;color:#fff}.direct-chat-warning .right>.direct-chat-text:after,.direct-chat-warning .right>.direct-chat-text:before{border-left-color:#f39c12}.direct-chat-info .right>.direct-chat-text{background:#00c0ef;border-color:#00c0ef;color:#fff}.direct-chat-info .right>.direct-chat-text:after,.direct-chat-info .right>.direct-chat-text:before{border-left-color:#00c0ef}.direct-chat-success .right>.direct-chat-text{background:#00a65a;border-color:#00a65a;color:#fff}.direct-chat-success .right>.direct-chat-text:after,.direct-chat-success .right>.direct-chat-text:before{border-left-color:#00a65a}.users-list>li{width:25%;float:left;padding:10px;text-align:center}.users-list>li img{border-radius:50%;max-width:100%;height:auto}.users-list>li>a:hover,.users-list>li>a:hover .users-list-name{color:#999}.users-list-date,.users-list-name{display:block}.users-list-name{font-weight:600;color:#444;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.users-list-date{color:#999;font-size:12px}.carousel-control.left,.carousel-control.right{background-image:none}.carousel-control>.fa{font-size:40px;position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-20px}.modal{background:rgba(0,0,0,.3)}.modal-content{border-radius:0;-webkit-box-shadow:0 2px 3px rgba(0,0,0,.125);box-shadow:0 2px 3px rgba(0,0,0,.125);border:0}@media (min-width:768px){.modal-content{-webkit-box-shadow:0 2px 3px rgba(0,0,0,.125);box-shadow:0 2px 3px rgba(0,0,0,.125)}}.modal-header{border-bottom-color:#f4f4f4}.modal-footer{border-top-color:#f4f4f4}.modal-primary .modal-footer,.modal-primary .modal-header{border-color:#307095}.modal-warning .modal-footer,.modal-warning .modal-header{border-color:#c87f0a}.modal-info .modal-footer,.modal-info .modal-header{border-color:#0097bc}.modal-success .modal-footer,.modal-success .modal-header{border-color:#00733e}.modal-danger .modal-footer,.modal-danger .modal-header{border-color:#c23321}.box-widget{border:none;position:relative}.widget-user .widget-user-header{padding:20px;height:120px;border-top-right-radius:3px;border-top-left-radius:3px}.widget-user .widget-user-username{margin-top:0;margin-bottom:5px;font-size:25px;font-weight:300;text-shadow:0 1px 1px rgba(0,0,0,.2)}.widget-user .widget-user-desc{margin-top:0}.widget-user .widget-user-image{position:absolute;top:65px;left:50%;margin-left:-45px}.widget-user .widget-user-image>img{width:90px;height:auto;border:3px solid #fff}.widget-user .box-footer{padding-top:30px}.widget-user-2 .widget-user-header{padding:20px;border-top-right-radius:3px;border-top-left-radius:3px}.widget-user-2 .widget-user-username{margin-top:5px;margin-bottom:5px;font-size:25px;font-weight:300}.widget-user-2 .widget-user-desc{margin-top:0}.widget-user-2 .widget-user-desc,.widget-user-2 .widget-user-username{margin-left:75px}.widget-user-2 .widget-user-image>img{width:65px;height:auto;float:left}.mailbox-messages>.table{margin:0}.mailbox-controls{padding:5px}.mailbox-controls.with-border,.mailbox-read-info{border-bottom:1px solid #f4f4f4}.mailbox-read-info{padding:10px}.mailbox-read-info h3{font-size:20px;margin:0}.mailbox-read-info h5{margin:0;padding:5px 0 0}.mailbox-read-time{color:#999;font-size:13px}.mailbox-read-message{padding:10px}.mailbox-attachments li{float:left;width:200px;border:1px solid #eee;margin-bottom:10px;margin-right:10px}.mailbox-attachment-name{font-weight:700;color:#666}.mailbox-attachment-icon,.mailbox-attachment-info,.mailbox-attachment-size{display:block}.mailbox-attachment-info{padding:10px;background:#f4f4f4}.mailbox-attachment-size{color:#999;font-size:12px}.mailbox-attachment-icon{text-align:center;font-size:65px;color:#666;padding:20px 10px}.mailbox-attachment-icon.has-img{padding:0}.mailbox-attachment-icon.has-img>img{max-width:100%;height:auto}.lockscreen{background:#d2d6de}.lockscreen-logo{font-size:35px;text-align:center;margin-bottom:25px;font-weight:300}.lockscreen-logo a{color:#444}.lockscreen-wrapper{max-width:400px;margin:0 auto;margin-top:10%}.lockscreen .lockscreen-name{text-align:center;font-weight:600}.lockscreen-item{border-radius:4px;padding:0;background:#fff;position:relative;margin:10px auto 30px;width:290px}.lockscreen-image{border-radius:50%;position:absolute;left:-10px;top:-25px;background:#fff;padding:5px;z-index:10}.lockscreen-image>img{border-radius:50%;width:70px;height:70px}.lockscreen-credentials{margin-left:70px}.lockscreen-credentials .form-control{border:0}.lockscreen-credentials .btn{background-color:#fff;border:0;padding:0 10px}.lockscreen-footer{margin-top:10px}.login-logo,.register-logo{font-size:35px;text-align:center;margin-bottom:25px;font-weight:300}.login-logo a,.register-logo a{color:#444}.login-page,.register-page{background:#d2d6de}.login-box,.register-box{width:360px;margin:7% auto}@media (max-width:768px){.login-box,.register-box{width:90%;margin-top:20px}}.login-box-body,.register-box-body{background:#fff;padding:20px;border-top:0;color:#666}.login-box-body .form-control-feedback,.register-box-body .form-control-feedback{color:#777}.login-box-msg,.register-box-msg{margin:0;text-align:center;padding:0 20px 20px}.social-auth-links{margin:10px 0}.error-page{width:600px;margin:20px auto 0}@media (max-width:991px){.error-page{width:100%}}.error-page>.headline{float:left;font-size:100px;font-weight:300}@media (max-width:991px){.error-page>.headline{float:none;text-align:center}}.error-page>.error-content{margin-left:190px;display:block}@media (max-width:991px){.error-page>.error-content{margin-left:0}}.error-page>.error-content>h3{font-weight:300;font-size:25px}@media (max-width:991px){.error-page>.error-content>h3{text-align:center}}.invoice{position:relative;background:#fff;border:1px solid #f4f4f4;padding:20px;margin:10px 25px}.invoice-title{margin-top:0}.profile-user-img{margin:0 auto;width:100px;padding:3px;border:3px solid #d2d6de}.profile-username{font-size:21px;margin-top:5px}.post{border-bottom:1px solid #d2d6de;margin-bottom:15px;padding-bottom:15px;color:#666}.post:last-of-type{border-bottom:0;margin-bottom:0;padding-bottom:0}.post .user-block{margin-bottom:15px}.btn-social{position:relative;padding-left:44px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn-social>:first-child{position:absolute;left:0;top:0;bottom:0;width:32px;line-height:34px;font-size:1.6em;text-align:center;border-right:1px solid rgba(0,0,0,.2)}.btn-social.btn-lg{padding-left:61px}.btn-social.btn-lg>:first-child{line-height:45px;width:45px;font-size:1.8em}.btn-social.btn-sm{padding-left:38px}.btn-social.btn-sm>:first-child{line-height:28px;width:28px;font-size:1.4em}.btn-social.btn-xs{padding-left:30px}.btn-social.btn-xs>:first-child{line-height:20px;width:20px;font-size:1.2em}.btn-social-icon{position:relative;padding-left:44px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;height:34px;width:34px;padding:0}.btn-social-icon>:first-child{position:absolute;left:0;top:0;bottom:0;width:32px;line-height:34px;font-size:1.6em;text-align:center;border-right:1px solid rgba(0,0,0,.2)}.btn-social-icon.btn-lg{padding-left:61px}.btn-social-icon.btn-lg>:first-child{line-height:45px;width:45px;font-size:1.8em}.btn-social-icon.btn-sm{padding-left:38px}.btn-social-icon.btn-sm>:first-child{line-height:28px;width:28px;font-size:1.4em}.btn-social-icon.btn-xs{padding-left:30px}.btn-social-icon.btn-xs>:first-child{line-height:20px;width:20px;font-size:1.2em}.btn-social-icon>:first-child{border:none;text-align:center;width:100%}.btn-social-icon.btn-lg{height:45px;width:45px;padding-left:0;padding-right:0}.btn-social-icon.btn-sm{height:30px;width:30px;padding-left:0;padding-right:0}.btn-social-icon.btn-xs{height:22px;width:22px;padding-left:0;padding-right:0}.btn-adn{color:#fff;background-color:#d87a68;border-color:rgba(0,0,0,.2)}.btn-adn.active,.btn-adn.focus,.btn-adn:active,.btn-adn:focus,.btn-adn:hover,.open>.dropdown-toggle.btn-adn{color:#fff;background-color:#ce563f;border-color:rgba(0,0,0,.2)}.btn-adn.active,.btn-adn:active,.open>.dropdown-toggle.btn-adn{background-image:none}.btn-adn .badge{color:#d87a68;background-color:#fff}.btn-bitbucket{color:#fff;background-color:#205081;border-color:rgba(0,0,0,.2)}.btn-bitbucket.active,.btn-bitbucket.focus,.btn-bitbucket:active,.btn-bitbucket:focus,.btn-bitbucket:hover,.open>.dropdown-toggle.btn-bitbucket{color:#fff;background-color:#163758;border-color:rgba(0,0,0,.2)}.btn-bitbucket.active,.btn-bitbucket:active,.open>.dropdown-toggle.btn-bitbucket{background-image:none}.btn-bitbucket .badge{color:#205081;background-color:#fff}.btn-dropbox{color:#fff;background-color:#1087dd;border-color:rgba(0,0,0,.2)}.btn-dropbox.active,.btn-dropbox.focus,.btn-dropbox:active,.btn-dropbox:focus,.btn-dropbox:hover,.open>.dropdown-toggle.btn-dropbox{color:#fff;background-color:#0d6aad;border-color:rgba(0,0,0,.2)}.btn-dropbox.active,.btn-dropbox:active,.open>.dropdown-toggle.btn-dropbox{background-image:none}.btn-dropbox .badge{color:#1087dd;background-color:#fff}.btn-facebook{color:#fff;background-color:#3b5998;border-color:rgba(0,0,0,.2)}.btn-facebook.active,.btn-facebook.focus,.btn-facebook:active,.btn-facebook:focus,.btn-facebook:hover,.open>.dropdown-toggle.btn-facebook{color:#fff;background-color:#2d4373;border-color:rgba(0,0,0,.2)}.btn-facebook.active,.btn-facebook:active,.open>.dropdown-toggle.btn-facebook{background-image:none}.btn-facebook .badge{color:#3b5998;background-color:#fff}.btn-flickr{color:#fff;background-color:#ff0084;border-color:rgba(0,0,0,.2)}.btn-flickr.active,.btn-flickr.focus,.btn-flickr:active,.btn-flickr:focus,.btn-flickr:hover,.open>.dropdown-toggle.btn-flickr{color:#fff;background-color:#cc006a;border-color:rgba(0,0,0,.2)}.btn-flickr.active,.btn-flickr:active,.open>.dropdown-toggle.btn-flickr{background-image:none}.btn-flickr .badge{color:#ff0084;background-color:#fff}.btn-foursquare{color:#fff;background-color:#f94877;border-color:rgba(0,0,0,.2)}.btn-foursquare.active,.btn-foursquare.focus,.btn-foursquare:active,.btn-foursquare:focus,.btn-foursquare:hover,.open>.dropdown-toggle.btn-foursquare{color:#fff;background-color:#f71752;border-color:rgba(0,0,0,.2)}.btn-foursquare.active,.btn-foursquare:active,.open>.dropdown-toggle.btn-foursquare{background-image:none}.btn-foursquare .badge{color:#f94877;background-color:#fff}.btn-github{color:#fff;background-color:#444;border-color:rgba(0,0,0,.2)}.btn-github.active,.btn-github.focus,.btn-github:active,.btn-github:focus,.btn-github:hover,.open>.dropdown-toggle.btn-github{color:#fff;background-color:#2b2b2b;border-color:rgba(0,0,0,.2)}.btn-github.active,.btn-github:active,.open>.dropdown-toggle.btn-github{background-image:none}.btn-github .badge{color:#444;background-color:#fff}.btn-google{color:#fff;background-color:#dd4b39;border-color:rgba(0,0,0,.2)}.btn-google.active,.btn-google.focus,.btn-google:active,.btn-google:focus,.btn-google:hover,.open>.dropdown-toggle.btn-google{color:#fff;background-color:#c23321;border-color:rgba(0,0,0,.2)}.btn-google.active,.btn-google:active,.open>.dropdown-toggle.btn-google{background-image:none}.btn-google .badge{color:#dd4b39;background-color:#fff}.btn-instagram{color:#fff;background-color:#3f729b;border-color:rgba(0,0,0,.2)}.btn-instagram.active,.btn-instagram.focus,.btn-instagram:active,.btn-instagram:focus,.btn-instagram:hover,.open>.dropdown-toggle.btn-instagram{color:#fff;background-color:#305777;border-color:rgba(0,0,0,.2)}.btn-instagram.active,.btn-instagram:active,.open>.dropdown-toggle.btn-instagram{background-image:none}.btn-instagram .badge{color:#3f729b;background-color:#fff}.btn-linkedin{color:#fff;background-color:#007bb6;border-color:rgba(0,0,0,.2)}.btn-linkedin.active,.btn-linkedin.focus,.btn-linkedin:active,.btn-linkedin:focus,.btn-linkedin:hover,.open>.dropdown-toggle.btn-linkedin{color:#fff;background-color:#005983;border-color:rgba(0,0,0,.2)}.btn-linkedin.active,.btn-linkedin:active,.open>.dropdown-toggle.btn-linkedin{background-image:none}.btn-linkedin .badge{color:#007bb6;background-color:#fff}.btn-microsoft{color:#fff;background-color:#2672ec;border-color:rgba(0,0,0,.2)}.btn-microsoft.active,.btn-microsoft.focus,.btn-microsoft:active,.btn-microsoft:focus,.btn-microsoft:hover,.open>.dropdown-toggle.btn-microsoft{color:#fff;background-color:#125acd;border-color:rgba(0,0,0,.2)}.btn-microsoft.active,.btn-microsoft:active,.open>.dropdown-toggle.btn-microsoft{background-image:none}.btn-microsoft .badge{color:#2672ec;background-color:#fff}.btn-openid{color:#fff;background-color:#f7931e;border-color:rgba(0,0,0,.2)}.btn-openid.active,.btn-openid.focus,.btn-openid:active,.btn-openid:focus,.btn-openid:hover,.open>.dropdown-toggle.btn-openid{color:#fff;background-color:#da7908;border-color:rgba(0,0,0,.2)}.btn-openid.active,.btn-openid:active,.open>.dropdown-toggle.btn-openid{background-image:none}.btn-openid .badge{color:#f7931e;background-color:#fff}.btn-pinterest{color:#fff;background-color:#cb2027;border-color:rgba(0,0,0,.2)}.btn-pinterest.active,.btn-pinterest.focus,.btn-pinterest:active,.btn-pinterest:focus,.btn-pinterest:hover,.open>.dropdown-toggle.btn-pinterest{color:#fff;background-color:#9f191f;border-color:rgba(0,0,0,.2)}.btn-pinterest.active,.btn-pinterest:active,.open>.dropdown-toggle.btn-pinterest{background-image:none}.btn-pinterest .badge{color:#cb2027;background-color:#fff}.btn-reddit{color:#000;background-color:#eff7ff;border-color:rgba(0,0,0,.2)}.btn-reddit.active,.btn-reddit.focus,.btn-reddit:active,.btn-reddit:focus,.btn-reddit:hover,.open>.dropdown-toggle.btn-reddit{color:#000;background-color:#bcddff;border-color:rgba(0,0,0,.2)}.btn-reddit.active,.btn-reddit:active,.open>.dropdown-toggle.btn-reddit{background-image:none}.btn-reddit .badge{color:#eff7ff;background-color:#000}.btn-soundcloud{color:#fff;background-color:#f50;border-color:rgba(0,0,0,.2)}.btn-soundcloud.active,.btn-soundcloud.focus,.btn-soundcloud:active,.btn-soundcloud:focus,.btn-soundcloud:hover,.open>.dropdown-toggle.btn-soundcloud{color:#fff;background-color:#c40;border-color:rgba(0,0,0,.2)}.btn-soundcloud.active,.btn-soundcloud:active,.open>.dropdown-toggle.btn-soundcloud{background-image:none}.btn-soundcloud .badge{color:#f50;background-color:#fff}.btn-tumblr{color:#fff;background-color:#2c4762;border-color:rgba(0,0,0,.2)}.btn-tumblr.active,.btn-tumblr.focus,.btn-tumblr:active,.btn-tumblr:focus,.btn-tumblr:hover,.open>.dropdown-toggle.btn-tumblr{color:#fff;background-color:#1c2d3f;border-color:rgba(0,0,0,.2)}.btn-tumblr.active,.btn-tumblr:active,.open>.dropdown-toggle.btn-tumblr{background-image:none}.btn-tumblr .badge{color:#2c4762;background-color:#fff}.btn-twitter{color:#fff;background-color:#55acee;border-color:rgba(0,0,0,.2)}.btn-twitter.active,.btn-twitter.focus,.btn-twitter:active,.btn-twitter:focus,.btn-twitter:hover,.open>.dropdown-toggle.btn-twitter{color:#fff;background-color:#2795e9;border-color:rgba(0,0,0,.2)}.btn-twitter.active,.btn-twitter:active,.open>.dropdown-toggle.btn-twitter{background-image:none}.btn-twitter .badge{color:#55acee;background-color:#fff}.btn-vimeo{color:#fff;background-color:#1ab7ea;border-color:rgba(0,0,0,.2)}.btn-vimeo.active,.btn-vimeo.focus,.btn-vimeo:active,.btn-vimeo:focus,.btn-vimeo:hover,.open>.dropdown-toggle.btn-vimeo{color:#fff;background-color:#1295bf;border-color:rgba(0,0,0,.2)}.btn-vimeo.active,.btn-vimeo:active,.open>.dropdown-toggle.btn-vimeo{background-image:none}.btn-vimeo .badge{color:#1ab7ea;background-color:#fff}.btn-vk{color:#fff;background-color:#587ea3;border-color:rgba(0,0,0,.2)}.btn-vk.active,.btn-vk.focus,.btn-vk:active,.btn-vk:focus,.btn-vk:hover,.open>.dropdown-toggle.btn-vk{color:#fff;background-color:#466482;border-color:rgba(0,0,0,.2)}.btn-vk.active,.btn-vk:active,.open>.dropdown-toggle.btn-vk{background-image:none}.btn-vk .badge{color:#587ea3;background-color:#fff}.btn-yahoo{color:#fff;background-color:#720e9e;border-color:rgba(0,0,0,.2)}.btn-yahoo.active,.btn-yahoo.focus,.btn-yahoo:active,.btn-yahoo:focus,.btn-yahoo:hover,.open>.dropdown-toggle.btn-yahoo{color:#fff;background-color:#500a6f;border-color:rgba(0,0,0,.2)}.btn-yahoo.active,.btn-yahoo:active,.open>.dropdown-toggle.btn-yahoo{background-image:none}.btn-yahoo .badge{color:#720e9e;background-color:#fff}.fc-button{background:#f4f4f4;background-image:none;color:#444;border-color:#ddd;border-bottom-color:#ddd}.fc-button.hover,.fc-button:active,.fc-button:hover{background-color:#e9e9e9}.fc-header-title h2{font-size:15px;line-height:1.6em;color:#666;margin-left:10px}.fc-header-right{padding-right:10px}.fc-header-left{padding-left:10px}.fc-widget-header{background:#fafafa}.fc-grid{width:100%;border:0}.fc-widget-content:first-of-type,.fc-widget-header:first-of-type{border-left:0;border-right:0}.fc-widget-content:last-of-type,.fc-widget-header:last-of-type{border-right:0}.fc-toolbar{padding:10px;margin:0}.fc-day-number{font-size:20px;font-weight:300;padding-right:10px}.fc-color-picker{list-style:none;margin:0;padding:0}.fc-color-picker>li{float:left;font-size:30px;margin-right:5px;line-height:30px}.fc-color-picker>li .fa{-webkit-transition:-webkit-transform .3s linear;-moz-transition:-moz-transform linear .3s;-o-transition:-o-transform linear .3s;transition:transform .3s linear}.fc-color-picker>li .fa:hover{-webkit-transform:rotate(30deg);-ms-transform:rotate(30deg);-o-transform:rotate(30deg);transform:rotate(30deg)}#add-new-event{-webkit-transition:all .3s linear;-o-transition:all linear .3s;transition:all .3s linear}.external-event{padding:5px 10px;font-weight:700;margin-bottom:4px;box-shadow:0 1px 1px rgba(0,0,0,.1);text-shadow:0 1px 1px rgba(0,0,0,.1);border-radius:3px;cursor:move}.external-event:hover{box-shadow:inset 0 0 90px rgba(0,0,0,.2)}.select2-container--default.select2-container--focus,.select2-container--default:active,.select2-container--default:focus,.select2-selection.select2-container--focus,.select2-selection:active,.select2-selection:focus{outline:none}.select2-container--default .select2-selection--single,.select2-selection .select2-selection--single{border:1px solid #d2d6de;border-radius:0;padding:6px 12px;height:34px}.select2-container--default.select2-container--open{border-color:#3c8dbc}.select2-dropdown{border:1px solid #d2d6de;border-radius:0}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#3c8dbc;color:#fff}.select2-results__option{padding:6px 12px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{padding-left:0;padding-right:0;height:auto;margin-top:-4px}.select2-container[dir=rtl] .select2-selection--single .select2-selection__rendered{padding-right:6px;padding-left:20px}.select2-container--default .select2-selection--single .select2-selection__arrow{height:28px;right:3px}.select2-container--default .select2-selection--single .select2-selection__arrow b{margin-top:0}.select2-dropdown .select2-search__field,.select2-search--inline .select2-search__field{border:1px solid #d2d6de}.select2-dropdown .select2-search__field:focus,.select2-search--inline .select2-search__field:focus{outline:none;border:1px solid #3c8dbc}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option[aria-selected=true],.select2-container--default .select2-results__option[aria-selected=true]:hover{color:#444}.select2-container--default .select2-selection--multiple{border:1px solid #d2d6de;border-radius:0}.select2-container--default .select2-selection--multiple:focus{border-color:#3c8dbc}.select2-container--default.select2-container--focus .select2-selection--multiple{border-color:#d2d6de}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#3c8dbc;border-color:#367fa9;padding:1px 10px;color:#fff}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{margin-right:5px;color:hsla(0,0%,100%,.7)}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#fff}.select2-container .select2-selection--single .select2-selection__rendered{padding-right:10px}.pad{padding:10px}.margin{margin:10px}.margin-bottom{margin-bottom:20px}.margin-bottom-none{margin-bottom:0}.margin-r-5{margin-right:5px}.inline{display:inline}.description-block{display:block;margin:10px 0;text-align:center}.description-block.margin-bottom{margin-bottom:25px}.description-block>.description-header{margin:0;padding:0;font-weight:600;font-size:16px}.description-block>.description-text{text-transform:uppercase}.alert-danger,.alert-error,.alert-info,.alert-success,.alert-warning,.bg-aqua,.bg-aqua-active,.bg-black,.bg-black-active,.bg-blue,.bg-blue-active,.bg-fuchsia,.bg-fuchsia-active,.bg-green,.bg-green-active,.bg-light-blue,.bg-light-blue-active,.bg-lime,.bg-lime-active,.bg-maroon,.bg-maroon-active,.bg-navy,.bg-navy-active,.bg-olive,.bg-olive-active,.bg-orange,.bg-orange-active,.bg-purple,.bg-purple-active,.bg-red,.bg-red-active,.bg-teal,.bg-teal-active,.bg-yellow,.bg-yellow-active,.callout.callout-danger,.callout.callout-info,.callout.callout-success,.callout.callout-warning,.label-danger,.label-info,.label-primary,.label-success,.label-warning,.modal-danger .modal-body,.modal-danger .modal-footer,.modal-danger .modal-header,.modal-info .modal-body,.modal-info .modal-footer,.modal-info .modal-header,.modal-primary .modal-body,.modal-primary .modal-footer,.modal-primary .modal-header,.modal-success .modal-body,.modal-success .modal-footer,.modal-success .modal-header,.modal-warning .modal-body,.modal-warning .modal-footer,.modal-warning .modal-header{color:#fff!important}.bg-gray{color:#000;background-color:#d2d6de!important}.bg-gray-light{background-color:#f7f7f7}.bg-black{background-color:#111!important}.alert-danger,.alert-error,.bg-red,.callout.callout-danger,.label-danger,.modal-danger .modal-body{background-color:#dd4b39!important}.alert-warning,.bg-yellow,.callout.callout-warning,.label-warning,.modal-warning .modal-body{background-color:#f39c12!important}.alert-info,.bg-aqua,.callout.callout-info,.label-info,.modal-info .modal-body{background-color:#00c0ef!important}.bg-blue{background-color:#0073b7!important}.bg-light-blue,.label-primary,.modal-primary .modal-body{background-color:#3c8dbc!important}.alert-success,.bg-green,.callout.callout-success,.label-success,.modal-success .modal-body{background-color:#00a65a!important}.bg-navy{background-color:#001f3f!important}.bg-teal{background-color:#39cccc!important}.bg-olive{background-color:#3d9970!important}.bg-lime{background-color:#01ff70!important}.bg-orange{background-color:#ff851b!important}.bg-fuchsia{background-color:#f012be!important}.bg-purple{background-color:#605ca8!important}.bg-maroon{background-color:#d81b60!important}.bg-gray-active{color:#000;background-color:#b5bbc8!important}.bg-black-active{background-color:#000!important}.bg-red-active,.modal-danger .modal-footer,.modal-danger .modal-header{background-color:#d33724!important}.bg-yellow-active,.modal-warning .modal-footer,.modal-warning .modal-header{background-color:#db8b0b!important}.bg-aqua-active,.modal-info .modal-footer,.modal-info .modal-header{background-color:#00a7d0!important}.bg-blue-active{background-color:#005384!important}.bg-light-blue-active,.modal-primary .modal-footer,.modal-primary .modal-header{background-color:#357ca5!important}.bg-green-active,.modal-success .modal-footer,.modal-success .modal-header{background-color:#008d4c!important}.bg-navy-active{background-color:#001a35!important}.bg-teal-active{background-color:#30bbbb!important}.bg-olive-active{background-color:#368763!important}.bg-lime-active{background-color:#00e765!important}.bg-orange-active{background-color:#ff7701!important}.bg-fuchsia-active{background-color:#db0ead!important}.bg-purple-active{background-color:#555299!important}.bg-maroon-active{background-color:#ca195a!important}[class^=bg-].disabled{opacity:.65;filter:alpha(opacity=65)}.text-red{color:#dd4b39!important}.text-yellow{color:#f39c12!important}.text-aqua{color:#00c0ef!important}.text-blue{color:#0073b7!important}.text-black{color:#111!important}.text-light-blue{color:#3c8dbc!important}.text-green{color:#00a65a!important}.text-gray{color:#d2d6de!important}.text-navy{color:#001f3f!important}.text-teal{color:#39cccc!important}.text-olive{color:#3d9970!important}.text-lime{color:#01ff70!important}.text-orange{color:#ff851b!important}.text-fuchsia{color:#f012be!important}.text-purple{color:#605ca8!important}.text-maroon{color:#d81b60!important}.link-muted{color:#7a869d}.link-muted:focus,.link-muted:hover{color:#606c84}.link-black{color:#666}.link-black:focus,.link-black:hover{color:#999}.hide{display:none!important}.no-border{border:0!important}.no-padding{padding:0!important}.no-margin{margin:0!important}.no-shadow{box-shadow:none!important}.chart-legend,.contacts-list,.list-unstyled,.mailbox-attachments,.users-list{list-style:none;margin:0;padding:0}.list-group-unbordered>.list-group-item{border-left:0;border-right:0;border-radius:0;padding-left:0;padding-right:0}.flat{border-radius:0!important}.text-bold,.text-bold.table td,.text-bold.table th{font-weight:700}.text-sm{font-size:12px}.jqstooltip{padding:5px!important;width:auto!important;height:auto!important}.bg-teal-gradient{background:#39cccc!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#39cccc),color-stop(1,#7adddd))!important;background:-ms-linear-gradient(bottom,#39cccc,#7adddd)!important;background:-moz-linear-gradient(center bottom,#39cccc 0,#7adddd 100%)!important;background:-o-linear-gradient(#7adddd,#39cccc)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#7adddd',endColorstr='#39cccc',GradientType=0)!important;color:#fff}.bg-light-blue-gradient{background:#3c8dbc!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#3c8dbc),color-stop(1,#67a8ce))!important;background:-ms-linear-gradient(bottom,#3c8dbc,#67a8ce)!important;background:-moz-linear-gradient(center bottom,#3c8dbc 0,#67a8ce 100%)!important;background:-o-linear-gradient(#67a8ce,#3c8dbc)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#67a8ce',endColorstr='#3c8dbc',GradientType=0)!important;color:#fff}.bg-blue-gradient{background:#0073b7!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#0073b7),color-stop(1,#0089db))!important;background:-ms-linear-gradient(bottom,#0073b7,#0089db)!important;background:-moz-linear-gradient(center bottom,#0073b7 0,#0089db 100%)!important;background:-o-linear-gradient(#0089db,#0073b7)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0089db',endColorstr='#0073b7',GradientType=0)!important;color:#fff}.bg-aqua-gradient{background:#00c0ef!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#00c0ef),color-stop(1,#14d1ff))!important;background:-ms-linear-gradient(bottom,#00c0ef,#14d1ff)!important;background:-moz-linear-gradient(center bottom,#00c0ef 0,#14d1ff 100%)!important;background:-o-linear-gradient(#14d1ff,#00c0ef)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#14d1ff',endColorstr='#00c0ef',GradientType=0)!important;color:#fff}.bg-yellow-gradient{background:#f39c12!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#f39c12),color-stop(1,#f7bc60))!important;background:-ms-linear-gradient(bottom,#f39c12,#f7bc60)!important;background:-moz-linear-gradient(center bottom,#f39c12 0,#f7bc60 100%)!important;background:-o-linear-gradient(#f7bc60,#f39c12)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f7bc60',endColorstr='#f39c12',GradientType=0)!important;color:#fff}.bg-purple-gradient{background:#605ca8!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#605ca8),color-stop(1,#9491c4))!important;background:-ms-linear-gradient(bottom,#605ca8,#9491c4)!important;background:-moz-linear-gradient(center bottom,#605ca8 0,#9491c4 100%)!important;background:-o-linear-gradient(#9491c4,#605ca8)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#9491c4',endColorstr='#605ca8',GradientType=0)!important;color:#fff}.bg-green-gradient{background:#00a65a!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#00a65a),color-stop(1,#00ca6d))!important;background:-ms-linear-gradient(bottom,#00a65a,#00ca6d)!important;background:-moz-linear-gradient(center bottom,#00a65a 0,#00ca6d 100%)!important;background:-o-linear-gradient(#00ca6d,#00a65a)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ca6d',endColorstr='#00a65a',GradientType=0)!important;color:#fff}.bg-red-gradient{background:#dd4b39!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#dd4b39),color-stop(1,#e47365))!important;background:-ms-linear-gradient(bottom,#dd4b39,#e47365)!important;background:-moz-linear-gradient(center bottom,#dd4b39 0,#e47365 100%)!important;background:-o-linear-gradient(#e47365,#dd4b39)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e47365',endColorstr='#dd4b39',GradientType=0)!important;color:#fff}.bg-black-gradient{background:#111!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#111),color-stop(1,#2b2b2b))!important;background:-ms-linear-gradient(bottom,#111,#2b2b2b)!important;background:-moz-linear-gradient(center bottom,#111 0,#2b2b2b 100%)!important;background:-o-linear-gradient(#2b2b2b,#111)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#2b2b2b',endColorstr='#111111',GradientType=0)!important;color:#fff}.bg-maroon-gradient{background:#d81b60!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#d81b60),color-stop(1,#e73f7c))!important;background:-ms-linear-gradient(bottom,#d81b60,#e73f7c)!important;background:-moz-linear-gradient(center bottom,#d81b60 0,#e73f7c 100%)!important;background:-o-linear-gradient(#e73f7c,#d81b60)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e73f7c',endColorstr='#d81b60',GradientType=0)!important;color:#fff}.description-block .description-icon{font-size:16px}.no-pad-top{padding-top:0}.position-static{position:static!important}.list-header{font-size:15px;padding:10px 4px;font-weight:700;color:#666}.list-seperator{height:1px;background:#f4f4f4;margin:15px 0 9px}.list-link>a{padding:4px;color:#777}.list-link>a:hover{color:#222}.font-light{font-weight:300}.user-block:after,.user-block:before{content:" ";display:table}.user-block:after{clear:both}.user-block img{width:40px;height:40px;float:left}.user-block .comment,.user-block .description,.user-block .username{display:block;margin-left:50px}.user-block .username{font-size:16px;font-weight:600}.user-block .description{color:#999;font-size:13px}.user-block.user-block-sm .comment,.user-block.user-block-sm .description,.user-block.user-block-sm .username{margin-left:40px}.user-block.user-block-sm .username{font-size:14px}.box-comments .box-comment img,.img-lg,.img-md,.img-sm,.user-block.user-block-sm img{float:left}.box-comments .box-comment img,.img-sm,.user-block.user-block-sm img{width:30px!important;height:30px!important}.img-sm+.img-push{margin-left:40px}.img-md{width:60px;height:60px}.img-md+.img-push{margin-left:70px}.img-lg{width:100px;height:100px}.img-lg+.img-push{margin-left:110px}.img-bordered{border:3px solid #d2d6de;padding:3px}.img-bordered-sm{border:2px solid #d2d6de;padding:2px}.attachment-block{border:1px solid #f4f4f4;padding:5px;margin-bottom:10px;background:#f7f7f7}.attachment-block .attachment-img{max-width:100px;max-height:100px;height:auto;float:left}.attachment-block .attachment-pushed{margin-left:110px}.attachment-block .attachment-heading{margin:0}.attachment-block .attachment-text{color:#555}.connectedSortable{min-height:100px}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sort-highlight{background:#f4f4f4;border:1px dashed #ddd;margin-bottom:10px}.full-opacity-hover{opacity:.65;filter:alpha(opacity=65)}.full-opacity-hover:hover{opacity:1;filter:alpha(opacity=100)}.chart{position:relative;overflow:hidden;width:100%}.chart canvas,.chart svg{width:100%!important}@media print{.content-header,.left-side,.main-header,.main-sidebar,.no-print{display:none!important}.content-wrapper,.main-footer,.right-side{margin-left:0!important;min-height:0!important;-webkit-transform:translate(0)!important;-ms-transform:translate(0)!important;-o-transform:translate(0)!important;transform:translate(0)!important}.fixed .content-wrapper,.fixed .right-side{padding-top:0!important}.invoice{width:100%;border:0;margin:0;padding:0}.invoice-col{float:left;width:33.3333333%}.table-responsive{overflow:auto}.table-responsive>.table tr td,.table-responsive>.table tr th{white-space:normal!important}}.skin-yellow-light .main-header .navbar{background-color:#f39c12}.skin-yellow-light .main-header .navbar .nav>li>a{color:#fff}.skin-yellow-light .main-header .navbar .nav .open>a,.skin-yellow-light .main-header .navbar .nav .open>a:focus,.skin-yellow-light .main-header .navbar .nav .open>a:hover,.skin-yellow-light .main-header .navbar .nav>.active>a,.skin-yellow-light .main-header .navbar .nav>li>a:active,.skin-yellow-light .main-header .navbar .nav>li>a:focus,.skin-yellow-light .main-header .navbar .nav>li>a:hover,.skin-yellow-light .main-header .navbar .sidebar-toggle:hover{background:rgba(0,0,0,.1);color:#f6f6f6}.skin-yellow-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-yellow-light .main-header .navbar .sidebar-toggle:hover{background-color:#e08e0b}@media (max-width:767px){.skin-yellow-light .main-header .navbar .dropdown-menu li.divider{background-color:hsla(0,0%,100%,.1)}.skin-yellow-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-yellow-light .main-header .navbar .dropdown-menu li a:hover{background:#e08e0b}}.skin-yellow-light .main-header .logo{background-color:#f39c12;color:#fff;border-bottom:0 solid transparent}.skin-yellow-light .main-header .logo:hover{background-color:#f39a0d}.skin-yellow-light .main-header li.user-header{background-color:#f39c12}.skin-yellow-light .content-header{background:transparent}.skin-yellow-light .left-side,.skin-yellow-light .main-sidebar,.skin-yellow-light .wrapper{background-color:#f9fafc}.skin-yellow-light .content-wrapper,.skin-yellow-light .main-footer{border-left:1px solid #d2d6de}.skin-yellow-light .user-panel>.info,.skin-yellow-light .user-panel>.info>a{color:#444}.skin-yellow-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-yellow-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-yellow-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-yellow-light .sidebar-menu>li.active>a,.skin-yellow-light .sidebar-menu>li:hover>a{color:#000;background:#f4f4f5}.skin-yellow-light .sidebar-menu>li.active{border-left-color:#f39c12}.skin-yellow-light .sidebar-menu>li.active>a{font-weight:600}.skin-yellow-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-yellow-light .sidebar a{color:#444}.skin-yellow-light .sidebar a:hover{text-decoration:none}.skin-yellow-light .treeview-menu>li>a{color:#777}.skin-yellow-light .treeview-menu>li.active>a,.skin-yellow-light .treeview-menu>li>a:hover{color:#000}.skin-yellow-light .treeview-menu>li.active>a{font-weight:600}.skin-yellow-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px}.skin-yellow-light .sidebar-form .btn,.skin-yellow-light .sidebar-form input[type=text]{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-yellow-light .sidebar-form input[type=text]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-yellow-light .sidebar-form input[type=text]:focus,.skin-yellow-light .sidebar-form input[type=text]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-yellow-light .sidebar-form input[type=text]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-yellow-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-yellow-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}}table.dataTable{clear:both;margin-top:6px!important;margin-bottom:6px!important;max-width:none!important;border-collapse:separate!important}table.dataTable td,table.dataTable th{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}table.dataTable td.dataTables_empty,table.dataTable th.dataTables_empty{text-align:center}table.dataTable.nowrap td,table.dataTable.nowrap th{white-space:nowrap}div.dataTables_wrapper div.dataTables_length label{font-weight:400;text-align:left;white-space:nowrap}div.dataTables_wrapper div.dataTables_length select{width:75px;display:inline-block}div.dataTables_wrapper div.dataTables_filter{text-align:right}div.dataTables_wrapper div.dataTables_filter label{font-weight:400;white-space:nowrap;text-align:left}div.dataTables_wrapper div.dataTables_filter input{margin-left:.5em;display:inline-block;width:auto}div.dataTables_wrapper div.dataTables_info{padding-top:8px;white-space:nowrap}div.dataTables_wrapper div.dataTables_paginate{margin:0;white-space:nowrap;text-align:right}div.dataTables_wrapper div.dataTables_paginate ul.pagination{margin:2px 0;white-space:nowrap}div.dataTables_wrapper div.dataTables_processing{position:absolute;top:50%;left:50%;width:200px;margin-left:-100px;margin-top:-26px;text-align:center;padding:1em 0}table.dataTable thead>tr>td.sorting,table.dataTable thead>tr>td.sorting_asc,table.dataTable thead>tr>td.sorting_desc,table.dataTable thead>tr>th.sorting,table.dataTable thead>tr>th.sorting_asc,table.dataTable thead>tr>th.sorting_desc{padding-right:30px}table.dataTable thead>tr>td:active,table.dataTable thead>tr>th:active{outline:none}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_desc_disabled{cursor:pointer;position:relative}table.dataTable thead .sorting:after,table.dataTable thead .sorting_asc:after,table.dataTable thead .sorting_asc_disabled:after,table.dataTable thead .sorting_desc:after,table.dataTable thead .sorting_desc_disabled:after{position:absolute;bottom:8px;right:8px;display:block;font-family:Glyphicons Halflings;opacity:.5}table.dataTable thead .sorting:after{opacity:.2;content:"\e150"}table.dataTable thead .sorting_asc:after{content:"\e155"}table.dataTable thead .sorting_desc:after{content:"\e156"}table.dataTable thead .sorting_asc_disabled:after,table.dataTable thead .sorting_desc_disabled:after{color:#eee}div.dataTables_scrollHead table.dataTable{margin-bottom:0!important}div.dataTables_scrollBody table{border-top:none;margin-top:0!important;margin-bottom:0!important}div.dataTables_scrollBody table thead .sorting:after,div.dataTables_scrollBody table thead .sorting_asc:after,div.dataTables_scrollBody table thead .sorting_desc:after{display:none}div.dataTables_scrollBody table tbody tr:first-child td,div.dataTables_scrollBody table tbody tr:first-child th{border-top:none}div.dataTables_scrollFoot table{margin-top:0!important;border-top:none}@media screen and (max-width:767px){div.dataTables_wrapper div.dataTables_filter,div.dataTables_wrapper div.dataTables_info,div.dataTables_wrapper div.dataTables_length,div.dataTables_wrapper div.dataTables_paginate{text-align:center}}table.dataTable.table-condensed>thead>tr>th{padding-right:20px}table.dataTable.table-condensed .sorting:after,table.dataTable.table-condensed .sorting_asc:after,table.dataTable.table-condensed .sorting_desc:after{top:6px;right:6px}table.table-bordered.dataTable td,table.table-bordered.dataTable th{border-left-width:0}table.table-bordered.dataTable td:last-child,table.table-bordered.dataTable th:last-child{border-right-width:0}div.dataTables_scrollHead table.table-bordered,table.table-bordered.dataTable tbody td,table.table-bordered.dataTable tbody th{border-bottom-width:0}div.table-responsive>div.dataTables_wrapper>div.row{margin:0}div.table-responsive>div.dataTables_wrapper>div.row>div[class^=col-]:first-child{padding-left:0}div.table-responsive>div.dataTables_wrapper>div.row>div[class^=col-]:last-child{padding-right:0}.multiselect-container{position:absolute;list-style-type:none;margin:0;padding:0}.multiselect-container .input-group{margin:5px}.multiselect-container>li{padding:0}.multiselect-container>li>a.multiselect-all label{font-weight:700}.multiselect-container>li.multiselect-group label{margin:0;padding:3px 20px;height:100%;font-weight:700}.multiselect-container>li.multiselect-group-clickable label{cursor:pointer}.multiselect-container>li>a{padding:0}.multiselect-container>li>a>label{margin:0;height:100%;cursor:pointer;font-weight:400;padding:3px 20px 3px 40px}.multiselect-container>li>a>label.checkbox,.multiselect-container>li>a>label.radio{margin:0}.multiselect-container>li>a>label>input[type=checkbox]{margin-bottom:5px}.btn-group>.btn-group:nth-child(2)>.multiselect.btn{border-top-left-radius:4px;border-bottom-left-radius:4px}.form-inline .multiselect-container label.checkbox,.form-inline .multiselect-container label.radio{padding:3px 20px 3px 40px}.form-inline .multiselect-container li a label.checkbox input[type=checkbox],.form-inline .multiselect-container li a label.radio input[type=radio]{margin-left:-20px;margin-right:0}body{margin:0}#mocha{font:20px/1.5 Helvetica Neue,Helvetica,Arial,sans-serif;margin:60px 50px}#mocha li,#mocha ul{margin:0;padding:0}#mocha ul{list-style:none}#mocha h1,#mocha h2{margin:0}#mocha h1{margin-top:15px;font-size:1em;font-weight:200}#mocha h1 a{text-decoration:none;color:inherit}#mocha h1 a:hover{text-decoration:underline}#mocha .suite .suite h1{margin-top:0;font-size:.8em}#mocha .hidden{display:none}#mocha h2{font-size:12px;font-weight:400;cursor:pointer}#mocha .suite,#mocha .test{margin-left:15px}#mocha .test{overflow:hidden}#mocha .test.pending:hover h2:after{content:'(pending)';font-family:arial,sans-serif}#mocha .test.pass.medium .duration{background:#c09853}#mocha .test.pass.slow .duration{background:#b94a48}#mocha .test.pass:before{content:'✓';font-size:12px;display:block;float:left;margin-right:5px;color:#00d6b2}#mocha .test.pass .duration{font-size:9px;margin-left:5px;padding:2px 5px;color:#fff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.2);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.2);box-shadow:inset 0 1px 1px rgba(0,0,0,.2);-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px}#mocha .test.pass.fast .duration{display:none}#mocha .test.pending{color:#0b97c4}#mocha .test.pending:before{content:'◦';color:#0b97c4}#mocha .test.fail{color:#c00}#mocha .test.fail pre{color:#000}#mocha .test.fail:before{content:'✖';font-size:12px;display:block;float:left;margin-right:5px;color:#c00}#mocha .test pre.error{color:#c00;max-height:300px;overflow:auto}#mocha .test .html-error{overflow:auto;color:#000;line-height:1.5;display:block;float:left;clear:left;font:12px/1.5 monaco,monospace;margin:5px;padding:15px;border:1px solid #eee;max-width:85%;max-width:calc(100% - 42px);max-height:300px;word-wrap:break-word;border-bottom-color:#ddd;-webkit-border-radius:3px;-webkit-box-shadow:0 1px 3px #eee;-moz-border-radius:3px;-moz-box-shadow:0 1px 3px #eee;border-radius:3px}#mocha .test .html-error pre.error{border:none;-webkit-border-radius:none;-webkit-box-shadow:none;-moz-border-radius:none;-moz-box-shadow:none;padding:0;margin:0;margin-top:18px;max-height:none}#mocha .test pre{display:block;float:left;clear:left;font:12px/1.5 monaco,monospace;margin:5px;padding:15px;border:1px solid #eee;max-width:85%;max-width:calc(100% - 42px);word-wrap:break-word;border-bottom-color:#ddd;-webkit-border-radius:3px;-webkit-box-shadow:0 1px 3px #eee;-moz-border-radius:3px;-moz-box-shadow:0 1px 3px #eee;border-radius:3px}#mocha .test h2{position:relative}#mocha .test a.replay{position:absolute;top:3px;right:0;text-decoration:none;vertical-align:middle;display:block;width:15px;height:15px;line-height:15px;text-align:center;background:#eee;font-size:15px;-moz-border-radius:15px;border-radius:15px;-webkit-transition:opacity .2s;-moz-transition:opacity .2s;transition:opacity .2s;opacity:.3;color:#888}#mocha .test:hover a.replay{opacity:1}#mocha-report.fail .test.pass,#mocha-report.pass .test.fail,#mocha-report.pending .test.fail,#mocha-report.pending .test.pass{display:none}#mocha-report.pending .test.pass.pending{display:block}#mocha-error{color:#c00;font-size:1.5em;font-weight:100;letter-spacing:1px}#mocha-stats{position:fixed;top:15px;right:10px;font-size:12px;margin:0;color:#888;z-index:1}#mocha-stats .progress{float:right;padding-top:0;height:auto;box-shadow:none;background-color:initial}#mocha-stats em{color:#000}#mocha-stats a{text-decoration:none;color:inherit}#mocha-stats a:hover{border-bottom:1px solid #eee}#mocha-stats li{display:inline-block;margin:0 5px;list-style:none;padding-top:11px}#mocha-stats canvas{width:40px;height:40px}#mocha code .comment{color:#ddd}#mocha code .init{color:#2f6fad}#mocha code .string{color:#5890ad}#mocha code .keyword{color:#8a6343}#mocha code .number{color:#2f6fad}@media screen and (max-device-width:480px){#mocha{margin:60px 0}#mocha #stats{position:absolute}}.morris-hover{position:absolute;z-index:1000}.morris-hover.morris-default-style{border-radius:10px;padding:6px;color:#666;background:hsla(0,0%,100%,.8);border:2px solid hsla(0,0%,90%,.8);font-family:sans-serif;font-size:12px;text-align:center}.morris-hover.morris-default-style .morris-hover-row-label{font-weight:700;margin:.25em 0}.morris-hover.morris-default-style .morris-hover-point{white-space:nowrap;margin:.1em 0};
@charset "UTF-8";@font-face{font-family:Source Sans Pro;src:url(../fonts/sourcesanspro-bold-webfont.woff2) format("woff2"),url(../fonts/sourcesanspro-bold-webfont.woff) format("woff");font-weight:600;font-style:normal}@font-face{font-family:Source Sans Pro;src:url(../fonts/sourcesanspro-regular-webfont.woff2) format("woff2"),url(../fonts/sourcesanspro-regular-webfont.woff) format("woff");font-weight:400;font-style:normal}

/*!
 * Bootstrap v3.3.6 (http://getbootstrap.com)
 * Copyright 2011-2015 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 */
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}

/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{background:transparent!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:Glyphicons Halflings;src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format("embedded-opentype"),url(../fonts/glyphicons-halflings-regular.woff2) format("woff2"),url(../fonts/glyphicons-halflings-regular.woff) format("woff"),url(../fonts/glyphicons-halflings-regular.ttf) format("truetype"),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format("svg")}.glyphicon{position:relative;top:1px;display:inline-block;font-family:Glyphicons Halflings;font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before,.glyphicon-btc:before,.glyphicon-xbt:before{content:"\e227"}.glyphicon-jpy:before,.glyphicon-yen:before{content:"\00a5"}.glyphicon-rub:before,.glyphicon-ruble:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*,:after,:before{box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:transparent}body{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.428571429;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.initialism,.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline{margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.428571429}dt{font-weight:700}dd{margin-left:0}.dl-horizontal dd:after,.dl-horizontal dd:before{content:" ";display:table}.dl-horizontal dd:after{clear:both}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.428571429;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.428571429}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,Courier New,monospace}code{color:#c7254e;background-color:#f9f2f4;border-radius:4px}code,kbd{padding:2px 4px;font-size:90%}kbd{color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.container:after,.container:before{content:" ";display:table}.container:after{clear:both}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.container-fluid:after,.container-fluid:before{content:" ";display:table}.container-fluid:after{clear:both}.row{margin-left:-15px;margin-right:-15px}.row:after,.row:before{content:" ";display:table}.row:after{clear:both}.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-1{width:8.3333333333%}.col-xs-2{width:16.6666666667%}.col-xs-3{width:25%}.col-xs-4{width:33.3333333333%}.col-xs-5{width:41.6666666667%}.col-xs-6{width:50%}.col-xs-7{width:58.3333333333%}.col-xs-8{width:66.6666666667%}.col-xs-9{width:75%}.col-xs-10{width:83.3333333333%}.col-xs-11{width:91.6666666667%}.col-xs-12{width:100%}.col-xs-pull-0{right:auto}.col-xs-pull-1{right:8.3333333333%}.col-xs-pull-2{right:16.6666666667%}.col-xs-pull-3{right:25%}.col-xs-pull-4{right:33.3333333333%}.col-xs-pull-5{right:41.6666666667%}.col-xs-pull-6{right:50%}.col-xs-pull-7{right:58.3333333333%}.col-xs-pull-8{right:66.6666666667%}.col-xs-pull-9{right:75%}.col-xs-pull-10{right:83.3333333333%}.col-xs-pull-11{right:91.6666666667%}.col-xs-pull-12{right:100%}.col-xs-push-0{left:auto}.col-xs-push-1{left:8.3333333333%}.col-xs-push-2{left:16.6666666667%}.col-xs-push-3{left:25%}.col-xs-push-4{left:33.3333333333%}.col-xs-push-5{left:41.6666666667%}.col-xs-push-6{left:50%}.col-xs-push-7{left:58.3333333333%}.col-xs-push-8{left:66.6666666667%}.col-xs-push-9{left:75%}.col-xs-push-10{left:83.3333333333%}.col-xs-push-11{left:91.6666666667%}.col-xs-push-12{left:100%}.col-xs-offset-0{margin-left:0}.col-xs-offset-1{margin-left:8.3333333333%}.col-xs-offset-2{margin-left:16.6666666667%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-4{margin-left:33.3333333333%}.col-xs-offset-5{margin-left:41.6666666667%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-7{margin-left:58.3333333333%}.col-xs-offset-8{margin-left:66.6666666667%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-10{margin-left:83.3333333333%}.col-xs-offset-11{margin-left:91.6666666667%}.col-xs-offset-12{margin-left:100%}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-1{width:8.3333333333%}.col-sm-2{width:16.6666666667%}.col-sm-3{width:25%}.col-sm-4{width:33.3333333333%}.col-sm-5{width:41.6666666667%}.col-sm-6{width:50%}.col-sm-7{width:58.3333333333%}.col-sm-8{width:66.6666666667%}.col-sm-9{width:75%}.col-sm-10{width:83.3333333333%}.col-sm-11{width:91.6666666667%}.col-sm-12{width:100%}.col-sm-pull-0{right:auto}.col-sm-pull-1{right:8.3333333333%}.col-sm-pull-2{right:16.6666666667%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.3333333333%}.col-sm-pull-5{right:41.6666666667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.3333333333%}.col-sm-pull-8{right:66.6666666667%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.3333333333%}.col-sm-pull-11{right:91.6666666667%}.col-sm-pull-12{right:100%}.col-sm-push-0{left:auto}.col-sm-push-1{left:8.3333333333%}.col-sm-push-2{left:16.6666666667%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.3333333333%}.col-sm-push-5{left:41.6666666667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.3333333333%}.col-sm-push-8{left:66.6666666667%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.3333333333%}.col-sm-push-11{left:91.6666666667%}.col-sm-push-12{left:100%}.col-sm-offset-0{margin-left:0}.col-sm-offset-1{margin-left:8.3333333333%}.col-sm-offset-2{margin-left:16.6666666667%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.3333333333%}.col-sm-offset-5{margin-left:41.6666666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.3333333333%}.col-sm-offset-8{margin-left:66.6666666667%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.3333333333%}.col-sm-offset-11{margin-left:91.6666666667%}.col-sm-offset-12{margin-left:100%}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-1{width:8.3333333333%}.col-md-2{width:16.6666666667%}.col-md-3{width:25%}.col-md-4{width:33.3333333333%}.col-md-5{width:41.6666666667%}.col-md-6{width:50%}.col-md-7{width:58.3333333333%}.col-md-8{width:66.6666666667%}.col-md-9{width:75%}.col-md-10{width:83.3333333333%}.col-md-11{width:91.6666666667%}.col-md-12{width:100%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.3333333333%}.col-md-pull-2{right:16.6666666667%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.3333333333%}.col-md-pull-5{right:41.6666666667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.3333333333%}.col-md-pull-8{right:66.6666666667%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.3333333333%}.col-md-pull-11{right:91.6666666667%}.col-md-pull-12{right:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.3333333333%}.col-md-push-2{left:16.6666666667%}.col-md-push-3{left:25%}.col-md-push-4{left:33.3333333333%}.col-md-push-5{left:41.6666666667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.3333333333%}.col-md-push-8{left:66.6666666667%}.col-md-push-9{left:75%}.col-md-push-10{left:83.3333333333%}.col-md-push-11{left:91.6666666667%}.col-md-push-12{left:100%}.col-md-offset-0{margin-left:0}.col-md-offset-1{margin-left:8.3333333333%}.col-md-offset-2{margin-left:16.6666666667%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.3333333333%}.col-md-offset-5{margin-left:41.6666666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.3333333333%}.col-md-offset-8{margin-left:66.6666666667%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.3333333333%}.col-md-offset-11{margin-left:91.6666666667%}.col-md-offset-12{margin-left:100%}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-1{width:8.3333333333%}.col-lg-2{width:16.6666666667%}.col-lg-3{width:25%}.col-lg-4{width:33.3333333333%}.col-lg-5{width:41.6666666667%}.col-lg-6{width:50%}.col-lg-7{width:58.3333333333%}.col-lg-8{width:66.6666666667%}.col-lg-9{width:75%}.col-lg-10{width:83.3333333333%}.col-lg-11{width:91.6666666667%}.col-lg-12{width:100%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.3333333333%}.col-lg-pull-2{right:16.6666666667%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.3333333333%}.col-lg-pull-5{right:41.6666666667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.3333333333%}.col-lg-pull-8{right:66.6666666667%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.3333333333%}.col-lg-pull-11{right:91.6666666667%}.col-lg-pull-12{right:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.3333333333%}.col-lg-push-2{left:16.6666666667%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.3333333333%}.col-lg-push-5{left:41.6666666667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.3333333333%}.col-lg-push-8{left:66.6666666667%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.3333333333%}.col-lg-push-11{left:91.6666666667%}.col-lg-push-12{left:100%}.col-lg-offset-0{margin-left:0}.col-lg-offset-1{margin-left:8.3333333333%}.col-lg-offset-2{margin-left:16.6666666667%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.3333333333%}.col-lg-offset-5{margin-left:41.6666666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.3333333333%}.col-lg-offset-8{margin-left:66.6666666667%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.3333333333%}.col-lg-offset-11{margin-left:91.6666666667%}.col-lg-offset-12{margin-left:100%}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777}caption,th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered,.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{margin:0;min-width:0}fieldset,legend{padding:0;border:0}legend{display:block;width:100%;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{padding-top:7px}.form-control,output{display:block;font-size:14px;line-height:1.428571429;color:#555}.form-control{width:100%;height:34px;padding:6px 12px;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control:focus{border-color:#66afe9;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{border:0;background-color:transparent}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{line-height:34px}.input-group-sm>.input-group-btn>input[type=date].btn,.input-group-sm>.input-group-btn>input[type=datetime-local].btn,.input-group-sm>.input-group-btn>input[type=month].btn,.input-group-sm>.input-group-btn>input[type=time].btn,.input-group-sm>input[type=date].form-control,.input-group-sm>input[type=date].input-group-addon,.input-group-sm>input[type=datetime-local].form-control,.input-group-sm>input[type=datetime-local].input-group-addon,.input-group-sm>input[type=month].form-control,.input-group-sm>input[type=month].input-group-addon,.input-group-sm>input[type=time].form-control,.input-group-sm>input[type=time].input-group-addon,.input-group-sm input[type=date],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],.input-group-sm input[type=time],input[type=date].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm,input[type=time].input-sm{line-height:30px}.input-group-lg>.input-group-btn>input[type=date].btn,.input-group-lg>.input-group-btn>input[type=datetime-local].btn,.input-group-lg>.input-group-btn>input[type=month].btn,.input-group-lg>.input-group-btn>input[type=time].btn,.input-group-lg>input[type=date].form-control,.input-group-lg>input[type=date].input-group-addon,.input-group-lg>input[type=datetime-local].form-control,.input-group-lg>input[type=datetime-local].input-group-addon,.input-group-lg>input[type=month].form-control,.input-group-lg>input[type=month].input-group-addon,.input-group-lg>input[type=time].form-control,.input-group-lg>input[type=time].input-group-addon,.input-group-lg input[type=date],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],.input-group-lg input[type=time],input[type=date].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg,input[type=time].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox-inline input[type=checkbox],.checkbox input[type=checkbox],.radio-inline input[type=radio],.radio input[type=radio]{position:absolute;margin-left:-20px;margin-top:4px\9}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.checkbox-inline.disabled,.checkbox.disabled label,.radio-inline.disabled,.radio.disabled label,fieldset[disabled] .checkbox-inline,fieldset[disabled] .checkbox label,fieldset[disabled] .radio-inline,fieldset[disabled] .radio label,fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0;min-height:34px}.form-control-static.input-lg,.form-control-static.input-sm,.input-group-lg>.form-control-static.form-control,.input-group-lg>.form-control-static.input-group-addon,.input-group-lg>.input-group-btn>.form-control-static.btn,.input-group-sm>.form-control-static.form-control,.input-group-sm>.form-control-static.input-group-addon,.input-group-sm>.input-group-btn>.form-control-static.btn{padding-left:0;padding-right:0}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn,.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.input-group-sm>.input-group-btn>select.btn,.input-group-sm>select.form-control,.input-group-sm>select.input-group-addon,select.input-sm{height:30px;line-height:30px}.input-group-sm>.input-group-btn>select[multiple].btn,.input-group-sm>.input-group-btn>textarea.btn,.input-group-sm>select[multiple].form-control,.input-group-sm>select[multiple].input-group-addon,.input-group-sm>textarea.form-control,.input-group-sm>textarea.input-group-addon,select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn,.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.input-group-lg>.input-group-btn>select.btn,.input-group-lg>select.form-control,.input-group-lg>select.input-group-addon,select.input-lg{height:46px;line-height:46px}.input-group-lg>.input-group-btn>select[multiple].btn,.input-group-lg>.input-group-btn>textarea.btn,.input-group-lg>select[multiple].form-control,.input-group-lg>select[multiple].input-group-addon,.input-group-lg>textarea.form-control,.input-group-lg>textarea.input-group-addon,select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-group-lg>.form-control+.form-control-feedback,.input-group-lg>.input-group-addon+.form-control-feedback,.input-group-lg>.input-group-btn>.btn+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-group-sm>.form-control+.form-control-feedback,.input-group-sm>.input-group-addon+.form-control-feedback,.input-group-sm>.input-group-btn>.btn+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success.checkbox-inline label,.has-success.checkbox label,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.radio-inline label,.has-success.radio label{color:#3c763d}.has-success .form-control{border-color:#3c763d;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning.checkbox-inline label,.has-warning.checkbox label,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.radio-inline label,.has-warning.radio label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error.checkbox-inline label,.has-error.checkbox label,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.radio-inline label,.has-error.radio label{color:#a94442}.has-error .form-control{border-color:#a94442;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-group:after,.form-horizontal .form-group:before{content:" ";display:table}.form-horizontal .form-group:after{clear:both}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.428571429;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{outline:0;background-image:none;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.btn-default:hover,.open>.btn-default.dropdown-toggle{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.btn-default.dropdown-toggle.focus,.open>.btn-default.dropdown-toggle:focus,.open>.btn-default.dropdown-toggle:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.btn-default.dropdown-toggle{background-image:none}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary.active,.btn-primary:active,.btn-primary:hover,.open>.btn-primary.dropdown-toggle{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.btn-primary.dropdown-toggle.focus,.open>.btn-primary.dropdown-toggle:focus,.open>.btn-primary.dropdown-toggle:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.active,.btn-primary:active,.open>.btn-primary.dropdown-toggle{background-image:none}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success.active,.btn-success:active,.btn-success:hover,.open>.btn-success.dropdown-toggle{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.btn-success.dropdown-toggle.focus,.open>.btn-success.dropdown-toggle:focus,.open>.btn-success.dropdown-toggle:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.btn-success.dropdown-toggle{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info.active,.btn-info:active,.btn-info:hover,.open>.btn-info.dropdown-toggle{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.btn-info.dropdown-toggle.focus,.open>.btn-info.dropdown-toggle:focus,.open>.btn-info.dropdown-toggle:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.btn-info.dropdown-toggle{background-image:none}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.btn-warning:hover,.open>.btn-warning.dropdown-toggle{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.btn-warning.dropdown-toggle.focus,.open>.btn-warning.dropdown-toggle:focus,.open>.btn-warning.dropdown-toggle:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.btn-warning.dropdown-toggle{background-image:none}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger.active,.btn-danger:active,.btn-danger:hover,.open>.btn-danger.dropdown-toggle{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.btn-danger.dropdown-toggle.focus,.open>.btn-danger.dropdown-toggle:focus,.open>.btn-danger.dropdown-toggle:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.btn-danger.dropdown-toggle{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#337ab7;font-weight:400;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height,visibility;transition-property:height,visibility;-webkit-transition-duration:.35s;transition-duration:.35s;-webkit-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.428571429;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0;background-color:#337ab7}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar:after,.btn-toolbar:before{content:" ";display:table}.btn-toolbar:after{clear:both}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group-lg.btn-group>.btn+.dropdown-toggle,.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{box-shadow:none}.btn .caret{margin-left:0}.btn-group-lg>.btn .caret,.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-group-lg>.btn .caret,.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before{content:" ";display:table}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio],[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.input-group-addon.btn{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.input-group-addon.btn{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group .form-control:first-child{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group .form-control:last-child{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{font-size:0;white-space:nowrap}.input-group-btn,.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav:after,.nav:before{content:" ";display:table}.nav:after{clear:both}.nav>li,.nav>li>a{position:relative;display:block}.nav>li>a{padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.428571429;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified,.nav-tabs.nav-justified{width:100%}.nav-justified>li,.nav-tabs.nav-justified>li{float:none}.nav-justified>li>a,.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li,.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a,.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified,.nav-tabs.nav-justified{border-bottom:0}.nav-tabs-justified>li>a,.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a,.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar:after,.navbar:before{content:" ";display:table}.navbar:after{clear:both}@media (min-width:768px){.navbar{border-radius:4px}}.navbar-header:after,.navbar-header:before{content:" ";display:table}.navbar-header:after{clear:both}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.1);-webkit-overflow-scrolling:touch}.navbar-collapse:after,.navbar-collapse:before{content:" ";display:table}.navbar-collapse:after{clear:both}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container-fluid .navbar-brand,.navbar>.container .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{margin:8px -15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.1),0 1px 0 hsla(0,0%,100%,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.btn-group-sm>.navbar-btn.btn,.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.btn-group-xs>.navbar-btn.btn,.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-nav>li>a,.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{background-color:#e7e7e7;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#090909}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>li>a,.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#090909}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{background-color:#090909;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/ ";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.428571429;text-decoration:none;color:#337ab7;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;background-color:#337ab7;border-color:#337ab7;cursor:default}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager:after,.pager:before{content:" ";display:table}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label:empty{display:none}.btn .label{position:relative;top:-1px}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;background-color:#eee}.jumbotron,.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container-fluid .jumbotron,.container .jumbotron{border-radius:6px;padding-left:15px;padding-right:15px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container-fluid .jumbotron,.container .jumbotron{padding-left:60px;padding-right:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{display:block;max-width:100%;height:auto;margin-left:auto;margin-right:auto}.thumbnail .caption{padding:9px;color:#333}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{0%{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{text-decoration:none;color:#555;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{background-color:#eee;color:#777;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-body:after,.panel-body:before{content:" ";display:table}.panel-body:after{clear:both}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle,.panel-title{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.list-group+.panel-footer,.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table-responsive>.table caption,.panel>.table caption{padding-left:15px;padding-right:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal,.modal-open{overflow:hidden}.modal{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translateY(-25%);transform:translateY(-25%);-webkit-transition:-webkit-transform .3s ease-out;transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0);transform:translate(0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header:after,.modal-header:before{content:" ";display:table}.modal-header:after{clear:both}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.428571429}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer:after,.modal-footer:before{content:" ";display:table}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.428571429;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:12px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px}.tooltip.top-left .tooltip-arrow,.tooltip.top-right .tooltip-arrow{bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{left:5px}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.428571429;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:14px;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel,.carousel-inner{position:relative}.carousel-inner{overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:left .6s ease-in-out;transition:left .6s ease-in-out}.carousel-inner>.item>a>img,.carousel-inner>.item>img{display:block;max-width:100%;height:auto;line-height:1}@media (-webkit-transform-3d),all and (transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);left:0}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);left:0}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{-webkit-transform:translateZ(0);transform:translateZ(0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:transparent}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5),rgba(0,0,0,.0001));background-image:linear-gradient(90deg,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001));background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000',endColorstr='#00000000',GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001),rgba(0,0,0,.5));background-image:linear-gradient(90deg,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5));background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000',endColorstr='#80000000',GradientType=1)}.carousel-control:focus,.carousel-control:hover{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000\9;background-color:transparent}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:after,.clearfix:before{content:" ";display:table}.clearfix:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}

/*!
 *  Font Awesome 4.6.3 by @davegandy - http://fontawesome.io - @fontawesome
 *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
 */@font-face{font-family:FontAwesome;src:url(../fonts/fontawesome-webfont.eot?v=4.6.3);src:url(../fonts/fontawesome-webfont.eot?#iefix&v=4.6.3) format("embedded-opentype"),url(../fonts/fontawesome-webfont.woff2?v=4.6.3) format("woff2"),url(../fonts/fontawesome-webfont.woff?v=4.6.3) format("woff"),url(../fonts/fontawesome-webfont.ttf?v=4.6.3) format("truetype"),url(../fonts/fontawesome-webfont.svg?v=4.6.3#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.3333333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.2857142857em;text-align:center}.fa-ul{padding-left:0;margin-left:2.1428571429em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.1428571429em;width:2.1428571429em;top:.1428571429em;text-align:center}.fa-li.fa-lg{left:-1.8571428571em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scaleY(-1);transform:scaleY(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-close:before,.fa-remove:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-cog:before,.fa-gear:before{content:""}.fa-trash-o:before{content:""}.fa-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-repeat:before,.fa-rotate-right:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before{content:""}.fa-check-circle:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-exclamation-triangle:before,.fa-warning:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-cogs:before,.fa-gears:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before{content:""}.fa-arrow-circle-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-floppy-o:before,.fa-save:before{content:""}.fa-square:before{content:""}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-sort:before,.fa-unsorted:before{content:""}.fa-sort-desc:before,.fa-sort-down:before{content:""}.fa-sort-asc:before,.fa-sort-up:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-gavel:before,.fa-legal:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-bolt:before,.fa-flash:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-clipboard:before,.fa-paste:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-chain-broken:before,.fa-unlink:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:""}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:""}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:""}.fa-eur:before,.fa-euro:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-inr:before,.fa-rupee:before{content:""}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:""}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:""}.fa-krw:before,.fa-won:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-try:before,.fa-turkish-lira:before{content:""}.fa-plus-square-o:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-bank:before,.fa-institution:before,.fa-university:before{content:""}.fa-graduation-cap:before,.fa-mortar-board:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:""}.fa-file-archive-o:before,.fa-file-zip-o:before{content:""}.fa-file-audio-o:before,.fa-file-sound-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:""}.fa-empire:before,.fa-ge:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-paper-plane:before,.fa-send:before{content:""}.fa-paper-plane-o:before,.fa-send-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-bed:before,.fa-hotel:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-y-combinator:before,.fa-yc:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-television:before,.fa-tv:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:""}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-sign-language:before,.fa-signing:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.browserupgrade{margin:.2em 0;background:#ccc;color:#000;padding:.2em 0}body{font-family:Source Sans Pro,Helvetica Neue,Helvetica,Arial,sans-serif}.skin-yellow-light .main-footer{padding:0;line-height:52px}.skin-yellow-light .main-footer .logo-exakat{display:inline-block;line-height:normal;padding:10px;height:50px}.skin-yellow-light .main-footer .logo-exakat>img{max-height:100%;width:auto;margin-right:10px}.skin-yellow-light .content-header{padding:20px;background:#e9edf2;border-bottom:1px solid #dee2e8}.sidebar-menu li.active>a>.fa-angle-left{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.sidebar-menu li>a>.pull-right{width:auto!important;margin:0 15px;position:absolute;right:0}pre{padding:0;background:none;border:none;white-space:pre-line;line-height:inherit;word-break:break-all;word-wrap:break-word;border-radius:0;background-color:none;-moz-tab-size:2;-o-tab-size:2;tab-size:2}pre code{white-space:pre;border:1px solid #ddd;padding:0}.hljs{display:block;overflow-x:auto;background:#fff;color:#000}.hljs-comment,.hljs-quote,.hljs-variable{color:green}.hljs-built_in,.hljs-keyword,.hljs-name,.hljs-selector-tag,.hljs-tag{color:#00f}.hljs-addition,.hljs-attribute,.hljs-literal,.hljs-section,.hljs-string,.hljs-template-tag,.hljs-template-variable,.hljs-title,.hljs-type{color:#a31515}.hljs-deletion,.hljs-meta,.hljs-selector-attr,.hljs-selector-pseudo{color:#2b91af}.hljs-doctag{color:gray}.hljs-attr{color:red}.hljs-bullet,.hljs-link,.hljs-symbol{color:#00b0e8}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}#donut-chart_issues,#donut-chart_severity{max-height:120px}.main-footer strong{color:#fff}#dashboard .sub-div{float:left;width:50%;padding:0 15px;margin-bottom:15px}#dashboard .sub-div .title{font-size:14px;font-weight:700;margin-right:10px;margin-bottom:10px;display:inline-block}#dashboard .sub-div .title span{display:block}#dashboard .sub-div .value{font-size:32px;display:inline-block}#dashboard .sub-div .progress{width:72%;display:inline-block;margin-right:10px}#dashboard .sub-div .pourcentage{width:15%;display:inline-block;vertical-align:top;font-size:20px;font-weight:700;line-height:100%}#dashboard .block-cell,#dashboard .block-cell-issue,#dashboard .block-cell-name{float:left;width:50%;font-size:16px}#dashboard .bold.block-cell,#dashboard .bold.block-cell-issue,#dashboard .bold.block-cell-name{font-weight:700;margin-bottom:10px}#dashboard .block-cell-name{width:75%}#dashboard .block-cell-issue{width:25%}.chart{margin-bottom:25px}#files_overview div.dataTables_wrapper div.dataTables_filter{text-align:left}#files_overview div.dataTables_wrapper div.dataTables_filter input{margin-left:0}#analysers div.dataTables_wrapper div.dataTables_filter{text-align:left}#issues .filter{margin-bottom:0}#issues .filter .btn-group{width:100%}#issues .filter .btn-group .multiselect{width:100%;text-align:left;border:0 none;border-bottom:1px solid #ccc;border-radius:0 none}#issues .filter .btn-group .multiselect .caret{float:right;margin-top:10px}#issues .filter .multiselect-container{min-width:100%}#issues .filter .multiselect-container>li{padding:10px}#issues .filter .multiselect-container>li>a{padding:3px 0}#issues .filter .facetitem{cursor:pointer}#issues .filter .facetitem .check{display:inline-block;width:20px;height:20px;border:2px solid #545454;float:left;position:relative;margin-right:10px}#issues .filter .facetitem.activefacet .check:before{content:"";display:block;width:10px;height:10px;position:absolute;top:3px;left:3px;background-color:#545454}#issues .filter #analyzer,#issues .filter #file{width:30%;padding-right:5px}#issues .filter #file{width:30%}#issues .filter #complexity,#issues .filter #receipt,#issues .filter #severity{width:10%;padding-right:5px}#issues .table>tbody>tr>th{border-top:0 none}#issues .table .fa-plus{cursor:pointer}#issues .bottomline{margin-bottom:5px;width:10%;display:inline-block;height:33px;line-height:33px;text-align:right}#issues .bottomline .facettotalcount,#issues .bottomline .orderby{display:none}#issues .bottomline .deselectstartover{cursor:pointer}#issues .fullcode{display:none;clear:both;overflow:hidden}#issues .fullcode td{background-color:#f8f8f8;padding:0}#issues .fullcode .analyzer_help{width:40%;float:left;padding:15px;background-color:#f1f1f1}#issues .fullcode pre{width:60%;padding:15px;float:left;background:transparent}#issues .fullcode pre code{padding:.5em;border:none;background:transparent}.exakat_short_text {
  display: block;
  width: 100px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}   ul.tree, ul.tree ul {
    list-style: none;
     margin: 0;
     padding: 0;
   } 
   ul.tree ul {
     margin-left: 10px;
   }
   ul.tree li {
     margin: 0;
     padding: 0 7px;
     line-height: 20px;
     color: #369;
     font-weight: bold;
     border-left:1px solid rgb(100,100,100);

   }
   ul.tree li:last-child {
       border-left:none;
   }
   ul.tree li:before {
      position:relative;
      top:-0.3em;
      height:1em;
      width:12px;
      color:white;
      border-bottom:1px solid rgb(100,100,100);
      content:"";
      display:inline-block;
      left:-7px;
   }
   ul.tree li:last-child:before {
      border-left:1px solid rgb(100,100,100);   
   }        <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          Suggestions
        </h1>
        </section>

        <!-- Main content -->
        <section class="content" id="issues">

        	<div class="box">
        		<div class="box-body">
        		<p>Here are a few suggestions to make your code more modern. Those are often overlooked PHP features and syntax evolutions.</p>
        			<div id="facets" class="filter clearfix"></div>
        			<table class="table table-striped">
                   		<thead>
                   			<tr>
                   				<th>Analysis</th>
                   				<th>File</th>
                   				<th>Code</th>
                          <th></th>
                   				<th>Severity</th>
                   				<th>Time To Fix</th>
                   				<th>Recipe</th>
                   			</tr>
                   		</thead>
                   		<tbody id="results">
                   		</tbody>
                   	</table>
        		</div>
        	</div>

        </section>

    		<section class="content-header">
    		<h1>
    		  Complex expressions
    		</h1>
    		</section>

    		<!-- Main content -->
    		<section id="files_overview" class="content">
    			<div class="row">
    				<div class="col-xs-12">
    				    <p>
Here is the list of the most complex expressions used in the code. A complex expression is an expression that requires more than 20 tokens to be build. 
    				    </p>
    				    <p>
Literal arrays are omitted.
    				    </p>
    					<div class="box">
    				    <div class="box-body">
    				      <table id="bloc-datatables" class="table table-bordered table-striped">
    				        <thead>
    				          <tr>
    				            <th>File</th>
    				            <th>Count</th>
    				            <th>Expression</th>
    				          </tr>
    				        </thead>
    				        <tbody>
                    {{BLOC-EXPRESSIONS}}
    				        </tbody>
    				      </table>
    				    </div><!-- /.box-body -->
    				  </div><!-- /.box -->
    				</div>
    			</div>
    		</section>
    		<!-- /.content -->

        <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          Security Issues
        </h1>
        </section>

        <!-- Main content -->
        <section class="content" id="issues">

        	<div class="box">
        		<div class="box-body">
        			<div id="facets" class="filter clearfix"></div>
        			<table class="table table-striped">
                   		<thead>
                   			<tr>
                   				<th>Analyzer</th>
                   				<th>File</th>
                   				<th>Code</th>
                          <th></th>
                   				<th>Severity</th>
                   				<th>Time To Fix</th>
                   				<th>Recipe</th>
                   			</tr>
                   		</thead>
                   		<tbody id="results">
                   		</tbody>
                   	</table>
        		</div>
        	</div>

        </section>
        <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          Used Settings
        </h1>
        </section>

        <!-- Main content -->
        <section id="used_settings" class="content">
        	<div class="box">
        		<div class="box-body">
        			<div class="row">
        				<div class="col-xs-12">
        					<table class="table table-striped">
                                {{SETTINGS}}
        					</table>
        			  </div>
        			</div>
        		</div>
        	</div>
        </section>
      </div>
    </div>
        <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          {{TITLE}}
        </h1>
        </section>

        <!-- Main content -->
        <section id="used_settings" class="content">
        	<div class="box">
        		<div class="box-body">
        			<div class="row">
        				<div class="col-xs-12">
        					<p class="textLead">{{DESCRIPTION}}.</p>
        					<table class="table table-striped">
        						<tr></tr>
        						<tr><th>Analyze</th><th>Status</th></tr>
        						{{COMPATIBILITY}}
        					</table>
            		</div>
        			</div>
        		</div>
        	</div>
        </section>

    		<section class="content-header">
    		<h1>
    		  No Issues Analysis
    		</h1>
    		</section>

    		<!-- Main content -->
    		<section id="files_overview" class="content">
    			<div class="row">
    				<div class="col-xs-12">
    				    <p>
Here is the list of analysis that didn't yield any results. The more there are here, the better you're coding. 
    				    </p>
    					<div class="box">
    				    <div class="box-body">
    				      <table id="bloc-datatables" class="table table-bordered table-striped">
    				        <thead>
    				          <tr>
    				            <th>Analysis</th>
    				          </tr>
    				        </thead>
    				        <tbody>
                    {{BLOC-FILES}}
    				        </tbody>
    				      </table>
    				    </div><!-- /.box-body -->
    				  </div><!-- /.box -->
    				</div>
    			</div>
    		</section>
    		<!-- /.content -->

        <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          Level 4
        </h1>
        </section>

        <!-- Main content -->
        <section class="content" id="issues">

        	<div class="box">
        		<div class="box-body">
This is the Level 4 issues, found in your code. 
You should tackle those issues once <a href="data/level2.html">Level 3</a> are done. 
{{TOTAL}} issues were found.
        			<div id="facets" class="filter clearfix"></div>
        			<table class="table table-striped">
                   		<thead>
                   			<tr>
                   				<th>Analysis</th>
                   				<th>File</th>
                   				<th>Code</th>
                          <th></th>
                   				<th>Severity</th>
                   				<th>Time To Fix</th>
                   				<th>Recipe</th>
                   			</tr>
                   		</thead>
                   		<tbody id="results">
                   		</tbody>
                   	</table>
        		</div>
        	</div>

        </section>
/*! highlight.js v9.5.0 | BSD3 License | git.io/hljslicense */
!function(e){var n="object"==typeof window&&window||"object"==typeof self&&self;"undefined"!=typeof exports?e(exports):n&&(n.hljs=e({}),"function"==typeof define&&define.amd&&define([],function(){return n.hljs}))}(function(e){function n(e){return e.replace(/[&<>]/gm,function(e){return I[e]})}function t(e){return e.nodeName.toLowerCase()}function r(e,n){var t=e&&e.exec(n);return t&&0===t.index}function a(e){return k.test(e)}function i(e){var n,t,r,i,o=e.className+" ";if(o+=e.parentNode?e.parentNode.className:"",t=B.exec(o))return R(t[1])?t[1]:"no-highlight";for(o=o.split(/\s+/),n=0,r=o.length;r>n;n++)if(i=o[n],a(i)||R(i))return i}function o(e,n){var t,r={};for(t in e)r[t]=e[t];if(n)for(t in n)r[t]=n[t];return r}function u(e){var n=[];return function r(e,a){for(var i=e.firstChild;i;i=i.nextSibling)3===i.nodeType?a+=i.nodeValue.length:1===i.nodeType&&(n.push({event:"start",offset:a,node:i}),a=r(i,a),t(i).match(/br|hr|img|input/)||n.push({event:"stop",offset:a,node:i}));return a}(e,0),n}function c(e,r,a){function i(){return e.length&&r.length?e[0].offset!==r[0].offset?e[0].offset<r[0].offset?e:r:"start"===r[0].event?e:r:e.length?e:r}function o(e){function r(e){return" "+e.nodeName+'="'+n(e.value)+'"'}l+="<"+t(e)+w.map.call(e.attributes,r).join("")+">"}function u(e){l+="</"+t(e)+">"}function c(e){("start"===e.event?o:u)(e.node)}for(var s=0,l="",f=[];e.length||r.length;){var g=i();if(l+=n(a.substr(s,g[0].offset-s)),s=g[0].offset,g===e){f.reverse().forEach(u);do c(g.splice(0,1)[0]),g=i();while(g===e&&g.length&&g[0].offset===s);f.reverse().forEach(o)}else"start"===g[0].event?f.push(g[0].node):f.pop(),c(g.splice(0,1)[0])}return l+n(a.substr(s))}function s(e){function n(e){return e&&e.source||e}function t(t,r){return new RegExp(n(t),"m"+(e.cI?"i":"")+(r?"g":""))}function r(a,i){if(!a.compiled){if(a.compiled=!0,a.k=a.k||a.bK,a.k){var u={},c=function(n,t){e.cI&&(t=t.toLowerCase()),t.split(" ").forEach(function(e){var t=e.split("|");u[t[0]]=[n,t[1]?Number(t[1]):1]})};"string"==typeof a.k?c("keyword",a.k):E(a.k).forEach(function(e){c(e,a.k[e])}),a.k=u}a.lR=t(a.l||/\w+/,!0),i&&(a.bK&&(a.b="\\b("+a.bK.split(" ").join("|")+")\\b"),a.b||(a.b=/\B|\b/),a.bR=t(a.b),a.e||a.eW||(a.e=/\B|\b/),a.e&&(a.eR=t(a.e)),a.tE=n(a.e)||"",a.eW&&i.tE&&(a.tE+=(a.e?"|":"")+i.tE)),a.i&&(a.iR=t(a.i)),null==a.r&&(a.r=1),a.c||(a.c=[]);var s=[];a.c.forEach(function(e){e.v?e.v.forEach(function(n){s.push(o(e,n))}):s.push("self"===e?a:e)}),a.c=s,a.c.forEach(function(e){r(e,a)}),a.starts&&r(a.starts,i);var l=a.c.map(function(e){return e.bK?"\\.?("+e.b+")\\.?":e.b}).concat([a.tE,a.i]).map(n).filter(Boolean);a.t=l.length?t(l.join("|"),!0):{exec:function(){return null}}}}r(e)}function l(e,t,a,i){function o(e,n){for(var t=0;t<n.c.length;t++)if(r(n.c[t].bR,e))return n.c[t]}function u(e,n){if(r(e.eR,n)){for(;e.endsParent&&e.parent;)e=e.parent;return e}return e.eW?u(e.parent,n):void 0}function c(e,n){return!a&&r(n.iR,e)}function g(e,n){var t=N.cI?n[0].toLowerCase():n[0];return e.k.hasOwnProperty(t)&&e.k[t]}function h(e,n,t,r){var a=r?"":y.classPrefix,i='<span class="'+a,o=t?"":C;return i+=e+'">',i+n+o}function p(){var e,t,r,a;if(!E.k)return n(B);for(a="",t=0,E.lR.lastIndex=0,r=E.lR.exec(B);r;)a+=n(B.substr(t,r.index-t)),e=g(E,r),e?(M+=e[1],a+=h(e[0],n(r[0]))):a+=n(r[0]),t=E.lR.lastIndex,r=E.lR.exec(B);return a+n(B.substr(t))}function d(){var e="string"==typeof E.sL;if(e&&!x[E.sL])return n(B);var t=e?l(E.sL,B,!0,L[E.sL]):f(B,E.sL.length?E.sL:void 0);return E.r>0&&(M+=t.r),e&&(L[E.sL]=t.top),h(t.language,t.value,!1,!0)}function b(){k+=null!=E.sL?d():p(),B=""}function v(e){k+=e.cN?h(e.cN,"",!0):"",E=Object.create(e,{parent:{value:E}})}function m(e,n){if(B+=e,null==n)return b(),0;var t=o(n,E);if(t)return t.skip?B+=n:(t.eB&&(B+=n),b(),t.rB||t.eB||(B=n)),v(t,n),t.rB?0:n.length;var r=u(E,n);if(r){var a=E;a.skip?B+=n:(a.rE||a.eE||(B+=n),b(),a.eE&&(B=n));do E.cN&&(k+=C),E.skip||(M+=E.r),E=E.parent;while(E!==r.parent);return r.starts&&v(r.starts,""),a.rE?0:n.length}if(c(n,E))throw new Error('Illegal lexeme "'+n+'" for mode "'+(E.cN||"<unnamed>")+'"');return B+=n,n.length||1}var N=R(e);if(!N)throw new Error('Unknown language: "'+e+'"');s(N);var w,E=i||N,L={},k="";for(w=E;w!==N;w=w.parent)w.cN&&(k=h(w.cN,"",!0)+k);var B="",M=0;try{for(var I,j,O=0;;){if(E.t.lastIndex=O,I=E.t.exec(t),!I)break;j=m(t.substr(O,I.index-O),I[0]),O=I.index+j}for(m(t.substr(O)),w=E;w.parent;w=w.parent)w.cN&&(k+=C);return{r:M,value:k,language:e,top:E}}catch(T){if(T.message&&-1!==T.message.indexOf("Illegal"))return{r:0,value:n(t)};throw T}}function f(e,t){t=t||y.languages||E(x);var r={r:0,value:n(e)},a=r;return t.filter(R).forEach(function(n){var t=l(n,e,!1);t.language=n,t.r>a.r&&(a=t),t.r>r.r&&(a=r,r=t)}),a.language&&(r.second_best=a),r}function g(e){return y.tabReplace||y.useBR?e.replace(M,function(e,n){return y.useBR&&"\n"===e?"<br>":y.tabReplace?n.replace(/\t/g,y.tabReplace):void 0}):e}function h(e,n,t){var r=n?L[n]:t,a=[e.trim()];return e.match(/\bhljs\b/)||a.push("hljs"),-1===e.indexOf(r)&&a.push(r),a.join(" ").trim()}function p(e){var n,t,r,o,s,p=i(e);a(p)||(y.useBR?(n=document.createElementNS("http://www.w3.org/1999/xhtml","div"),n.innerHTML=e.innerHTML.replace(/\n/g,"").replace(/<br[ \/]*>/g,"\n")):n=e,s=n.textContent,r=p?l(p,s,!0):f(s),t=u(n),t.length&&(o=document.createElementNS("http://www.w3.org/1999/xhtml","div"),o.innerHTML=r.value,r.value=c(t,u(o),s)),r.value=g(r.value),e.innerHTML=r.value,e.className=h(e.className,p,r.language),e.result={language:r.language,re:r.r},r.second_best&&(e.second_best={language:r.second_best.language,re:r.second_best.r}))}function d(e){y=o(y,e)}function b(){if(!b.called){b.called=!0;var e=document.querySelectorAll("pre code");w.forEach.call(e,p)}}function v(){addEventListener("DOMContentLoaded",b,!1),addEventListener("load",b,!1)}function m(n,t){var r=x[n]=t(e);r.aliases&&r.aliases.forEach(function(e){L[e]=n})}function N(){return E(x)}function R(e){return e=(e||"").toLowerCase(),x[e]||x[L[e]]}var w=[],E=Object.keys,x={},L={},k=/^(no-?highlight|plain|text)$/i,B=/\blang(?:uage)?-([\w-]+)\b/i,M=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,C="</span>",y={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0},I={"&":"&amp;","<":"&lt;",">":"&gt;"};return e.highlight=l,e.highlightAuto=f,e.fixMarkup=g,e.highlightBlock=p,e.configure=d,e.initHighlighting=b,e.initHighlightingOnLoad=v,e.registerLanguage=m,e.listLanguages=N,e.getLanguage=R,e.inherit=o,e.IR="[a-zA-Z]\\w*",e.UIR="[a-zA-Z_]\\w*",e.NR="\\b\\d+(\\.\\d+)?",e.CNR="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",e.BNR="\\b(0b[01]+)",e.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",e.BE={b:"\\\\[\\s\\S]",r:0},e.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[e.BE]},e.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[e.BE]},e.PWM={b:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|like)\b/},e.C=function(n,t,r){var a=e.inherit({cN:"comment",b:n,e:t,c:[]},r||{});return a.c.push(e.PWM),a.c.push({cN:"doctag",b:"(?:TODO|FIXME|NOTE|BUG|XXX):",r:0}),a},e.CLCM=e.C("//","$"),e.CBCM=e.C("/\\*","\\*/"),e.HCM=e.C("#","$"),e.NM={cN:"number",b:e.NR,r:0},e.CNM={cN:"number",b:e.CNR,r:0},e.BNM={cN:"number",b:e.BNR,r:0},e.CSSNM={cN:"number",b:e.NR+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",r:0},e.RM={cN:"regexp",b:/\//,e:/\/[gimuy]*/,i:/\n/,c:[e.BE,{b:/\[/,e:/\]/,r:0,c:[e.BE]}]},e.TM={cN:"title",b:e.IR,r:0},e.UTM={cN:"title",b:e.UIR,r:0},e.METHOD_GUARD={b:"\\.\\s*"+e.UIR,r:0},e});hljs.registerLanguage("css",function(e){var c="[a-zA-Z-][a-zA-Z0-9_-]*",t={b:/[A-Z\_\.\-]+\s*:/,rB:!0,e:";",eW:!0,c:[{cN:"attribute",b:/\S/,e:":",eE:!0,starts:{eW:!0,eE:!0,c:[{b:/[\w-]+\(/,rB:!0,c:[{cN:"built_in",b:/[\w-]+/},{b:/\(/,e:/\)/,c:[e.ASM,e.QSM]}]},e.CSSNM,e.QSM,e.ASM,e.CBCM,{cN:"number",b:"#[0-9A-Fa-f]+"},{cN:"meta",b:"!important"}]}}]};return{cI:!0,i:/[=\/|'\$]/,c:[e.CBCM,{cN:"selector-id",b:/#[A-Za-z0-9_-]+/},{cN:"selector-class",b:/\.[A-Za-z0-9_-]+/},{cN:"selector-attr",b:/\[/,e:/\]/,i:"$"},{cN:"selector-pseudo",b:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{b:"@(font-face|page)",l:"[a-z-]+",k:"font-face page"},{b:"@",e:"[{;]",i:/:/,c:[{cN:"keyword",b:/\w+/},{b:/\s/,eW:!0,eE:!0,r:0,c:[e.ASM,e.QSM,e.CSSNM]}]},{cN:"selector-tag",b:c,r:0},{b:"{",e:"}",i:/\S/,c:[e.CBCM,t]}]}});hljs.registerLanguage("javascript",function(e){return{aliases:["js","jsx"],k:{keyword:"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise"},c:[{cN:"meta",r:10,b:/^\s*['"]use (strict|asm)['"]/},{cN:"meta",b:/^#!/,e:/$/},e.ASM,e.QSM,{cN:"string",b:"`",e:"`",c:[e.BE,{cN:"subst",b:"\\$\\{",e:"\\}"}]},e.CLCM,e.CBCM,{cN:"number",v:[{b:"\\b(0[bB][01]+)"},{b:"\\b(0[oO][0-7]+)"},{b:e.CNR}],r:0},{b:"("+e.RSR+"|\\b(case|return|throw)\\b)\\s*",k:"return throw case",c:[e.CLCM,e.CBCM,e.RM,{b:/</,e:/(\/\w+|\w+\/)>/,sL:"xml",c:[{b:/<\w+\s*\/>/,skip:!0},{b:/<\w+/,e:/(\/\w+|\w+\/)>/,skip:!0,c:["self"]}]}],r:0},{cN:"function",bK:"function",e:/\{/,eE:!0,c:[e.inherit(e.TM,{b:/[A-Za-z$_][0-9A-Za-z$_]*/}),{cN:"params",b:/\(/,e:/\)/,eB:!0,eE:!0,c:[e.CLCM,e.CBCM]}],i:/\[|%/},{b:/\$[(.]/},e.METHOD_GUARD,{cN:"class",bK:"class",e:/[{;=]/,eE:!0,i:/[:"\[\]]/,c:[{bK:"extends"},e.UTM]},{bK:"constructor",e:/\{/,eE:!0}],i:/#(?!!)/}});hljs.registerLanguage("php",function(e){var c={b:"\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*"},i={cN:"meta",b:/<\?(php)?|\?>/},t={cN:"string",c:[e.BE,i],v:[{b:'b"',e:'"'},{b:"b'",e:"'"},e.inherit(e.ASM,{i:null}),e.inherit(e.QSM,{i:null})]},a={v:[e.BNM,e.CNM]};return{aliases:["php3","php4","php5","php6"],cI:!0,k:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally",c:[e.HCM,e.C("//","$",{c:[i]}),e.C("/\\*","\\*/",{c:[{cN:"doctag",b:"@[A-Za-z]+"}]}),e.C("__halt_compiler.+?;",!1,{eW:!0,k:"__halt_compiler",l:e.UIR}),{cN:"string",b:/<<<['"]?\w+['"]?$/,e:/^\w+;?$/,c:[e.BE,{cN:"subst",v:[{b:/\$\w+/},{b:/\{\$/,e:/\}/}]}]},i,{cN:"keyword",b:/\$this\b/},c,{b:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{cN:"function",bK:"function",e:/[;{]/,eE:!0,i:"\\$|\\[|%",c:[e.UTM,{cN:"params",b:"\\(",e:"\\)",c:["self",c,e.CBCM,t,a]}]},{cN:"class",bK:"class interface",e:"{",eE:!0,i:/[:\(\$"]/,c:[{bK:"extends implements"},e.UTM]},{bK:"namespace",e:";",i:/[\.']/,c:[e.UTM]},{bK:"use",e:";",c:[e.UTM]},{b:"=>"},t,a]}});hljs.registerLanguage("xml",function(s){var e="[A-Za-z0-9\\._:-]+",t={eW:!0,i:/</,r:0,c:[{cN:"attr",b:e,r:0},{b:/=\s*/,r:0,c:[{cN:"string",endsParent:!0,v:[{b:/"/,e:/"/},{b:/'/,e:/'/},{b:/[^\s"'=<>`]+/}]}]}]};return{aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist"],cI:!0,c:[{cN:"meta",b:"<!DOCTYPE",e:">",r:10,c:[{b:"\\[",e:"\\]"}]},s.C("<!--","-->",{r:10}),{b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{b:/<\?(php)?/,e:/\?>/,sL:"php",c:[{b:"/\\*",e:"\\*/",skip:!0}]},{cN:"tag",b:"<style(?=\\s|>|$)",e:">",k:{name:"style"},c:[t],starts:{e:"</style>",rE:!0,sL:["css","xml"]}},{cN:"tag",b:"<script(?=\\s|>|$)",e:">",k:{name:"script"},c:[t],starts:{e:"</script>",rE:!0,sL:["actionscript","javascript","handlebars","xml"]}},{cN:"meta",v:[{b:/<\?xml/,e:/\?>/,r:10},{b:/<\?\w+/,e:/\?>/}]},{cN:"tag",b:"</?",e:"/?>",c:[{cN:"name",b:/[^\/><\s]+/,r:0},t]}]}});

$(document).ready(function() {
      $('pre code').each(function(i, block) {
        hljs.highlightBlock(block);
      });
    });/*!
 * clipboard.js v2.0.4
 * https://zenorocha.github.io/clipboard.js
 * 
 * Licensed MIT © Zeno Rocha
 */
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return function(n){var o={};function r(t){if(o[t])return o[t].exports;var e=o[t]={i:t,l:!1,exports:{}};return n[t].call(e.exports,e,e.exports,r),e.l=!0,e.exports}return r.m=n,r.c=o,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=0)}([function(t,e,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=function(){function o(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(t,e,n){return e&&o(t.prototype,e),n&&o(t,n),t}}(),a=o(n(1)),c=o(n(3)),u=o(n(4));function o(t){return t&&t.__esModule?t:{default:t}}var l=function(t){function o(t,e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o);var n=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,(o.__proto__||Object.getPrototypeOf(o)).call(this));return n.resolveOptions(e),n.listenClick(t),n}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(o,c.default),i(o,[{key:"resolveOptions",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===r(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=(0,u.default)(t,"click",function(t){return e.onClick(t)})}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new a.default({action:this.action(e),target:this.target(e),text:this.text(e),container:this.container,trigger:e,emitter:this})}},{key:"defaultAction",value:function(t){return s("action",t)}},{key:"defaultTarget",value:function(t){var e=s("target",t);if(e)return document.querySelector(e)}},{key:"defaultText",value:function(t){return s("text",t)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:["copy","cut"],e="string"==typeof t?[t]:t,n=!!document.queryCommandSupported;return e.forEach(function(t){n=n&&!!document.queryCommandSupported(t)}),n}}]),o}();function s(t,e){var n="data-clipboard-"+t;if(e.hasAttribute(n))return e.getAttribute(n)}t.exports=l},function(t,e,n){"use strict";var o,r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=function(){function o(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(t,e,n){return e&&o(t.prototype,e),n&&o(t,n),t}}(),a=n(2),c=(o=a)&&o.__esModule?o:{default:o};var u=function(){function e(t){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),this.resolveOptions(t),this.initSelection()}return i(e,[{key:"resolveOptions",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.container=t.container,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function(){var t=this,e="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[e?"right":"left"]="-9999px";var n=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=n+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=(0,c.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=(0,c.default)(this.target),this.copyText()}},{key:"copyText",value:function(){var e=void 0;try{e=document.execCommand(this.action)}catch(t){e=!1}this.handleResult(e)}},{key:"handleResult",value:function(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(t){if(void 0!==t){if(!t||"object"!==(void 0===t?"undefined":r(t))||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function(){return this._target}}]),e}();t.exports=u},function(t,e){t.exports=function(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var o=window.getSelection(),r=document.createRange();r.selectNodeContents(t),o.removeAllRanges(),o.addRange(r),e=o.toString()}return e}},function(t,e){function n(){}n.prototype={on:function(t,e,n){var o=this.e||(this.e={});return(o[t]||(o[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var o=this;function r(){o.off(t,r),e.apply(n,arguments)}return r._=e,this.on(t,r,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),o=0,r=n.length;o<r;o++)n[o].fn.apply(n[o].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),o=n[t],r=[];if(o&&e)for(var i=0,a=o.length;i<a;i++)o[i].fn!==e&&o[i].fn._!==e&&r.push(o[i]);return r.length?n[t]=r:delete n[t],this}},t.exports=n},function(t,e,n){var d=n(5),h=n(6);t.exports=function(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!d.string(e))throw new TypeError("Second argument must be a String");if(!d.fn(n))throw new TypeError("Third argument must be a Function");if(d.node(t))return s=e,f=n,(l=t).addEventListener(s,f),{destroy:function(){l.removeEventListener(s,f)}};if(d.nodeList(t))return a=t,c=e,u=n,Array.prototype.forEach.call(a,function(t){t.addEventListener(c,u)}),{destroy:function(){Array.prototype.forEach.call(a,function(t){t.removeEventListener(c,u)})}};if(d.string(t))return o=t,r=e,i=n,h(document.body,o,r,i);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList");var o,r,i,a,c,u,l,s,f}},function(t,n){n.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},n.nodeList=function(t){var e=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===e||"[object HTMLCollection]"===e)&&"length"in t&&(0===t.length||n.node(t[0]))},n.string=function(t){return"string"==typeof t||t instanceof String},n.fn=function(t){return"[object Function]"===Object.prototype.toString.call(t)}},function(t,e,n){var a=n(7);function i(t,e,n,o,r){var i=function(e,n,t,o){return function(t){t.delegateTarget=a(t.target,n),t.delegateTarget&&o.call(e,t)}}.apply(this,arguments);return t.addEventListener(n,i,r),{destroy:function(){t.removeEventListener(n,i,r)}}}t.exports=function(t,e,n,o,r){return"function"==typeof t.addEventListener?i.apply(null,arguments):"function"==typeof n?i.bind(null,document).apply(null,arguments):("string"==typeof t&&(t=document.querySelectorAll(t)),Array.prototype.map.call(t,function(t){return i(t,e,n,o,r)}))}},function(t,e){if("undefined"!=typeof Element&&!Element.prototype.matches){var n=Element.prototype;n.matches=n.matchesSelector||n.mozMatchesSelector||n.msMatchesSelector||n.oMatchesSelector||n.webkitMatchesSelector}t.exports=function(t,e){for(;t&&9!==t.nodeType;){if("function"==typeof t.matches&&t.matches(e))return t;t=t.parentNode}}}])});new ClipboardJS('.copy_button');
function _init(){"use strict";$.AdminLTE.layout={activate:function(){var t=this;t.fix(),t.fixSidebar(),$(window,".wrapper").resize(function(){t.fix(),t.fixSidebar()})},fix:function(){var t=$(".main-header").outerHeight()+$(".main-footer").outerHeight(),e=$(window).height(),i=$(".sidebar").height();if($("body").hasClass("fixed"))$(".content-wrapper, .right-side").css("min-height",e-$(".main-footer").outerHeight());else{var n;e>=i?($(".content-wrapper, .right-side").css("min-height",e-t),n=e-t):($(".content-wrapper, .right-side").css("min-height",i),n=i);var r=$($.AdminLTE.options.controlSidebarOptions.selector);"undefined"!=typeof r&&r.height()>n&&$(".content-wrapper, .right-side").css("min-height",r.height())}},fixSidebar:function(){return $("body").hasClass("fixed")?("undefined"==typeof $.fn.slimScroll&&window.console&&window.console.error("Error: the fixed layout requires the slimscroll plugin!"),void($.AdminLTE.options.sidebarSlimScroll&&"undefined"!=typeof $.fn.slimScroll&&($(".sidebar").slimScroll({destroy:!0}).height("auto"),$(".sidebar").slimscroll({height:$(window).height()-$(".main-header").height()+"px",color:"rgba(0,0,0,0.2)",size:"3px"})))):void("undefined"!=typeof $.fn.slimScroll&&$(".sidebar").slimScroll({destroy:!0}).height("auto"))}},$.AdminLTE.pushMenu={activate:function(t){var e=$.AdminLTE.options.screenSizes;$(document).on("click",t,function(t){t.preventDefault(),$(window).width()>e.sm-1?$("body").hasClass("sidebar-collapse")?$("body").removeClass("sidebar-collapse").trigger("expanded.pushMenu"):$("body").addClass("sidebar-collapse").trigger("collapsed.pushMenu"):$("body").hasClass("sidebar-open")?$("body").removeClass("sidebar-open").removeClass("sidebar-collapse").trigger("collapsed.pushMenu"):$("body").addClass("sidebar-open").trigger("expanded.pushMenu")}),$(".content-wrapper").click(function(){$(window).width()<=e.sm-1&&$("body").hasClass("sidebar-open")&&$("body").removeClass("sidebar-open")}),($.AdminLTE.options.sidebarExpandOnHover||$("body").hasClass("fixed")&&$("body").hasClass("sidebar-mini"))&&this.expandOnHover()},expandOnHover:function(){var t=this,e=$.AdminLTE.options.screenSizes.sm-1;$(".main-sidebar").hover(function(){$("body").hasClass("sidebar-mini")&&$("body").hasClass("sidebar-collapse")&&$(window).width()>e&&t.expand()},function(){$("body").hasClass("sidebar-mini")&&$("body").hasClass("sidebar-expanded-on-hover")&&$(window).width()>e&&t.collapse()})},expand:function(){$("body").removeClass("sidebar-collapse").addClass("sidebar-expanded-on-hover")},collapse:function(){$("body").hasClass("sidebar-expanded-on-hover")&&$("body").removeClass("sidebar-expanded-on-hover").addClass("sidebar-collapse")}},$.AdminLTE.tree=function(t){var e=this,i=$.AdminLTE.options.animationSpeed;$(document).off("click",t+" li a").on("click",t+" li a",function(t){var n=$(this),r=n.next();if(r.is(".treeview-menu")&&r.is(":visible")&&!$("body").hasClass("sidebar-collapse"))r.slideUp(i,function(){r.removeClass("menu-open")}),r.parent("li").removeClass("active");else if(r.is(".treeview-menu")&&!r.is(":visible")){var o=n.parents("ul").first(),s=o.find("ul:visible").slideUp(i);s.removeClass("menu-open");var a=n.parent("li");r.slideDown(i,function(){r.addClass("menu-open"),o.find("li.active").removeClass("active"),a.addClass("active"),e.layout.fix()})}r.is(".treeview-menu")&&t.preventDefault()})},$.AdminLTE.controlSidebar={activate:function(){var t=this,e=$.AdminLTE.options.controlSidebarOptions,i=$(e.selector),n=$(e.toggleBtnSelector);n.on("click",function(n){n.preventDefault(),i.hasClass("control-sidebar-open")||$("body").hasClass("control-sidebar-open")?t.close(i,e.slide):t.open(i,e.slide)});var r=$(".control-sidebar-bg");t._fix(r),$("body").hasClass("fixed")?t._fixForFixed(i):$(".content-wrapper, .right-side").height()<i.height()&&t._fixForContent(i)},open:function(t,e){e?t.addClass("control-sidebar-open"):$("body").addClass("control-sidebar-open")},close:function(t,e){e?t.removeClass("control-sidebar-open"):$("body").removeClass("control-sidebar-open")},_fix:function(t){var e=this;if($("body").hasClass("layout-boxed")){if(t.css("position","absolute"),t.height($(".wrapper").height()),e.hasBindedResize)return;$(window).resize(function(){e._fix(t)}),e.hasBindedResize=!0}else t.css({position:"fixed",height:"auto"})},_fixForFixed:function(t){t.css({position:"fixed","max-height":"100%",overflow:"auto","padding-bottom":"50px"})},_fixForContent:function(t){$(".content-wrapper, .right-side").css("min-height",t.height())}},$.AdminLTE.boxWidget={selectors:$.AdminLTE.options.boxWidgetOptions.boxWidgetSelectors,icons:$.AdminLTE.options.boxWidgetOptions.boxWidgetIcons,animationSpeed:$.AdminLTE.options.animationSpeed,activate:function(t){var e=this;t||(t=document),$(t).on("click",e.selectors.collapse,function(t){t.preventDefault(),e.collapse($(this))}),$(t).on("click",e.selectors.remove,function(t){t.preventDefault(),e.remove($(this))})},collapse:function(t){var e=this,i=t.parents(".box").first(),n=i.find("> .box-body, > .box-footer, > form  >.box-body, > form > .box-footer");i.hasClass("collapsed-box")?(t.children(":first").removeClass(e.icons.open).addClass(e.icons.collapse),n.slideDown(e.animationSpeed,function(){i.removeClass("collapsed-box")})):(t.children(":first").removeClass(e.icons.collapse).addClass(e.icons.open),n.slideUp(e.animationSpeed,function(){i.addClass("collapsed-box")}))},remove:function(t){var e=t.parents(".box").first();e.slideUp(this.animationSpeed)}}}if(function(t,e){"object"==typeof module&&"object"==typeof module.exports?module.exports=t.document?e(t,!0):function(t){if(!t.document)throw new Error("jQuery requires a window with a document");return e(t)}:e(t)}("undefined"!=typeof window?window:this,function(t,e){function i(t){var e=!!t&&"length"in t&&t.length,i=ot.type(t);return"function"!==i&&!ot.isWindow(t)&&("array"===i||0===e||"number"==typeof e&&e>0&&e-1 in t)}function n(t,e,i){if(ot.isFunction(e))return ot.grep(t,function(t,n){return!!e.call(t,n,t)!==i});if(e.nodeType)return ot.grep(t,function(t){return t===e!==i});if("string"==typeof e){if(gt.test(e))return ot.filter(e,t,i);e=ot.filter(e,t)}return ot.grep(t,function(t){return Q.call(e,t)>-1!==i})}function r(t,e){for(;(t=t[e])&&1!==t.nodeType;);return t}function o(t){var e={};return ot.each(t.match(wt)||[],function(t,i){e[i]=!0}),e}function s(){V.removeEventListener("DOMContentLoaded",s),t.removeEventListener("load",s),ot.ready()}function a(){this.expando=ot.expando+a.uid++}function l(t,e,i){var n;if(void 0===i&&1===t.nodeType)if(n="data-"+e.replace(Dt,"-$&").toLowerCase(),i=t.getAttribute(n),"string"==typeof i){try{i="true"===i||"false"!==i&&("null"===i?null:+i+""===i?+i:At.test(i)?ot.parseJSON(i):i)}catch(r){}_t.set(t,e,i)}else i=void 0;return i}function h(t,e,i,n){var r,o=1,s=20,a=n?function(){return n.cur()}:function(){return ot.css(t,e,"")},l=a(),h=i&&i[3]||(ot.cssNumber[e]?"":"px"),c=(ot.cssNumber[e]||"px"!==h&&+l)&&Et.exec(ot.css(t,e));if(c&&c[3]!==h){h=h||c[3],i=i||[],c=+l||1;do o=o||".5",c/=o,ot.style(t,e,c+h);while(o!==(o=a()/l)&&1!==o&&--s)}return i&&(c=+c||+l||0,r=i[1]?c+(i[1]+1)*i[2]:+i[2],n&&(n.unit=h,n.start=c,n.end=r)),r}function c(t,e){var i="undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e||"*"):"undefined"!=typeof t.querySelectorAll?t.querySelectorAll(e||"*"):[];return void 0===e||e&&ot.nodeName(t,e)?ot.merge([t],i):i}function u(t,e){for(var i=0,n=t.length;i<n;i++)Ct.set(t[i],"globalEval",!e||Ct.get(e[i],"globalEval"))}function p(t,e,i,n,r){for(var o,s,a,l,h,p,d=e.createDocumentFragment(),f=[],g=0,m=t.length;g<m;g++)if(o=t[g],o||0===o)if("object"===ot.type(o))ot.merge(f,o.nodeType?[o]:o);else if(Ft.test(o)){for(s=s||d.appendChild(e.createElement("div")),a=(Rt.exec(o)||["",""])[1].toLowerCase(),l=Bt[a]||Bt._default,s.innerHTML=l[1]+ot.htmlPrefilter(o)+l[2],p=l[0];p--;)s=s.lastChild;ot.merge(f,s.childNodes),s=d.firstChild,s.textContent=""}else f.push(e.createTextNode(o));for(d.textContent="",g=0;o=f[g++];)if(n&&ot.inArray(o,n)>-1)r&&r.push(o);else if(h=ot.contains(o.ownerDocument,o),s=c(d.appendChild(o),"script"),h&&u(s),i)for(p=0;o=s[p++];)Ot.test(o.type||"")&&i.push(o);return d}function d(){return!0}function f(){return!1}function g(){try{return V.activeElement}catch(t){}}function m(t,e,i,n,r,o){var s,a;if("object"==typeof e){"string"!=typeof i&&(n=n||i,i=void 0);for(a in e)m(t,a,i,n,e[a],o);return t}if(null==n&&null==r?(r=i,n=i=void 0):null==r&&("string"==typeof i?(r=n,n=void 0):(r=n,n=i,i=void 0)),r===!1)r=f;else if(!r)return t;return 1===o&&(s=r,r=function(t){return ot().off(t),s.apply(this,arguments)},r.guid=s.guid||(s.guid=ot.guid++)),t.each(function(){ot.event.add(this,e,r,n,i)})}function v(t,e){return ot.nodeName(t,"table")&&ot.nodeName(11!==e.nodeType?e:e.firstChild,"tr")?t.getElementsByTagName("tbody")[0]||t.appendChild(t.ownerDocument.createElement("tbody")):t}function y(t){return t.type=(null!==t.getAttribute("type"))+"/"+t.type,t}function b(t){var e=Ut.exec(t.type);return e?t.type=e[1]:t.removeAttribute("type"),t}function x(t,e){var i,n,r,o,s,a,l,h;if(1===e.nodeType){if(Ct.hasData(t)&&(o=Ct.access(t),s=Ct.set(e,o),h=o.events)){delete s.handle,s.events={};for(r in h)for(i=0,n=h[r].length;i<n;i++)ot.event.add(e,r,h[r][i])}_t.hasData(t)&&(a=_t.access(t),l=ot.extend({},a),_t.set(e,l))}}function w(t,e){var i=e.nodeName.toLowerCase();"input"===i&&It.test(t.type)?e.checked=t.checked:"input"!==i&&"textarea"!==i||(e.defaultValue=t.defaultValue)}function S(t,e,i,n){e=K.apply([],e);var r,o,s,a,l,h,u=0,d=t.length,f=d-1,g=e[0],m=ot.isFunction(g);if(m||d>1&&"string"==typeof g&&!nt.checkClone&&Wt.test(g))return t.each(function(r){var o=t.eq(r);m&&(e[0]=g.call(this,r,o.html())),S(o,e,i,n)});if(d&&(r=p(e,t[0].ownerDocument,!1,t,n),o=r.firstChild,1===r.childNodes.length&&(r=o),o||n)){for(s=ot.map(c(r,"script"),y),a=s.length;u<d;u++)l=r,u!==f&&(l=ot.clone(l,!0,!0),a&&ot.merge(s,c(l,"script"))),i.call(t[u],l,u);if(a)for(h=s[s.length-1].ownerDocument,ot.map(s,b),u=0;u<a;u++)l=s[u],Ot.test(l.type||"")&&!Ct.access(l,"globalEval")&&ot.contains(h,l)&&(l.src?ot._evalUrl&&ot._evalUrl(l.src):ot.globalEval(l.textContent.replace(Xt,"")))}return t}function T(t,e,i){for(var n,r=e?ot.filter(e,t):t,o=0;null!=(n=r[o]);o++)i||1!==n.nodeType||ot.cleanData(c(n)),n.parentNode&&(i&&ot.contains(n.ownerDocument,n)&&u(c(n,"script")),n.parentNode.removeChild(n));return t}function k(t,e){var i=ot(e.createElement(t)).appendTo(e.body),n=ot.css(i[0],"display");return i.detach(),n}function C(t){var e=V,i=Gt[t];return i||(i=k(t,e),"none"!==i&&i||(Yt=(Yt||ot("<iframe frameborder='0' width='0' height='0'/>")).appendTo(e.documentElement),e=Yt[0].contentDocument,e.write(),e.close(),i=k(t,e),Yt.detach()),Gt[t]=i),i}function _(t,e,i){var n,r,o,s,a=t.style;return i=i||Jt(t),s=i?i.getPropertyValue(e)||i[e]:void 0,""!==s&&void 0!==s||ot.contains(t.ownerDocument,t)||(s=ot.style(t,e)),i&&!nt.pixelMarginRight()&&Vt.test(s)&&qt.test(e)&&(n=a.width,r=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=s,s=i.width,a.width=n,a.minWidth=r,a.maxWidth=o),void 0!==s?s+"":s}function A(t,e){return{get:function(){return t()?void delete this.get:(this.get=e).apply(this,arguments)}}}function D(t){if(t in ne)return t;for(var e=t[0].toUpperCase()+t.slice(1),i=ie.length;i--;)if(t=ie[i]+e,t in ne)return t}function L(t,e,i){var n=Et.exec(e);return n?Math.max(0,n[2]-(i||0))+(n[3]||"px"):e}function E(t,e,i,n,r){for(var o=i===(n?"border":"content")?4:"width"===e?1:0,s=0;o<4;o+=2)"margin"===i&&(s+=ot.css(t,i+Pt[o],!0,r)),n?("content"===i&&(s-=ot.css(t,"padding"+Pt[o],!0,r)),"margin"!==i&&(s-=ot.css(t,"border"+Pt[o]+"Width",!0,r))):(s+=ot.css(t,"padding"+Pt[o],!0,r),"padding"!==i&&(s+=ot.css(t,"border"+Pt[o]+"Width",!0,r)));return s}function P(t,e,i){var n=!0,r="width"===e?t.offsetWidth:t.offsetHeight,o=Jt(t),s="border-box"===ot.css(t,"boxSizing",!1,o);if(r<=0||null==r){if(r=_(t,e,o),(r<0||null==r)&&(r=t.style[e]),Vt.test(r))return r;n=s&&(nt.boxSizingReliable()||r===t.style[e]),r=parseFloat(r)||0}return r+E(t,e,i||(s?"border":"content"),n,o)+"px"}function M(t,e){for(var i,n,r,o=[],s=0,a=t.length;s<a;s++)n=t[s],n.style&&(o[s]=Ct.get(n,"olddisplay"),i=n.style.display,e?(o[s]||"none"!==i||(n.style.display=""),""===n.style.display&&Mt(n)&&(o[s]=Ct.access(n,"olddisplay",C(n.nodeName)))):(r=Mt(n),"none"===i&&r||Ct.set(n,"olddisplay",r?i:ot.css(n,"display"))));for(s=0;s<a;s++)n=t[s],n.style&&(e&&"none"!==n.style.display&&""!==n.style.display||(n.style.display=e?o[s]||"":"none"));return t}function I(t,e,i,n,r){return new I.prototype.init(t,e,i,n,r)}function R(){return t.setTimeout(function(){re=void 0}),re=ot.now()}function O(t,e){var i,n=0,r={height:t};for(e=e?1:0;n<4;n+=2-e)i=Pt[n],r["margin"+i]=r["padding"+i]=t;return e&&(r.opacity=r.width=t),r}function B(t,e,i){for(var n,r=(j.tweeners[e]||[]).concat(j.tweeners["*"]),o=0,s=r.length;o<s;o++)if(n=r[o].call(i,e,t))return n}function F(t,e,i){var n,r,o,s,a,l,h,c,u=this,p={},d=t.style,f=t.nodeType&&Mt(t),g=Ct.get(t,"fxshow");i.queue||(a=ot._queueHooks(t,"fx"),null==a.unqueued&&(a.unqueued=0,l=a.empty.fire,a.empty.fire=function(){a.unqueued||l()}),a.unqueued++,u.always(function(){u.always(function(){a.unqueued--,ot.queue(t,"fx").length||a.empty.fire()})})),1===t.nodeType&&("height"in e||"width"in e)&&(i.overflow=[d.overflow,d.overflowX,d.overflowY],h=ot.css(t,"display"),c="none"===h?Ct.get(t,"olddisplay")||C(t.nodeName):h,"inline"===c&&"none"===ot.css(t,"float")&&(d.display="inline-block")),i.overflow&&(d.overflow="hidden",u.always(function(){d.overflow=i.overflow[0],d.overflowX=i.overflow[1],d.overflowY=i.overflow[2]}));for(n in e)if(r=e[n],se.exec(r)){if(delete e[n],o=o||"toggle"===r,r===(f?"hide":"show")){if("show"!==r||!g||void 0===g[n])continue;f=!0}p[n]=g&&g[n]||ot.style(t,n)}else h=void 0;if(ot.isEmptyObject(p))"inline"===("none"===h?C(t.nodeName):h)&&(d.display=h);else{g?"hidden"in g&&(f=g.hidden):g=Ct.access(t,"fxshow",{}),o&&(g.hidden=!f),f?ot(t).show():u.done(function(){ot(t).hide()}),u.done(function(){var e;Ct.remove(t,"fxshow");for(e in p)ot.style(t,e,p[e])});for(n in p)s=B(f?g[n]:0,n,u),n in g||(g[n]=s.start,f&&(s.end=s.start,s.start="width"===n||"height"===n?1:0))}}function N(t,e){var i,n,r,o,s;for(i in t)if(n=ot.camelCase(i),r=e[n],o=t[i],ot.isArray(o)&&(r=o[1],o=t[i]=o[0]),i!==n&&(t[n]=o,delete t[i]),s=ot.cssHooks[n],s&&"expand"in s){o=s.expand(o),delete t[n];for(i in o)i in t||(t[i]=o[i],e[i]=r)}else e[n]=r}function j(t,e,i){var n,r,o=0,s=j.prefilters.length,a=ot.Deferred().always(function(){delete l.elem}),l=function(){if(r)return!1;for(var e=re||R(),i=Math.max(0,h.startTime+h.duration-e),n=i/h.duration||0,o=1-n,s=0,l=h.tweens.length;s<l;s++)h.tweens[s].run(o);return a.notifyWith(t,[h,o,i]),o<1&&l?i:(a.resolveWith(t,[h]),!1)},h=a.promise({elem:t,props:ot.extend({},e),opts:ot.extend(!0,{specialEasing:{},easing:ot.easing._default},i),originalProperties:e,originalOptions:i,startTime:re||R(),duration:i.duration,tweens:[],createTween:function(e,i){var n=ot.Tween(t,h.opts,e,i,h.opts.specialEasing[e]||h.opts.easing);return h.tweens.push(n),n},stop:function(e){var i=0,n=e?h.tweens.length:0;if(r)return this;for(r=!0;i<n;i++)h.tweens[i].run(1);return e?(a.notifyWith(t,[h,1,0]),a.resolveWith(t,[h,e])):a.rejectWith(t,[h,e]),this}}),c=h.props;for(N(c,h.opts.specialEasing);o<s;o++)if(n=j.prefilters[o].call(h,t,c,h.opts))return ot.isFunction(n.stop)&&(ot._queueHooks(h.elem,h.opts.queue).stop=ot.proxy(n.stop,n)),n;return ot.map(c,B,h),ot.isFunction(h.opts.start)&&h.opts.start.call(t,h),ot.fx.timer(ot.extend(l,{elem:t,anim:h,queue:h.opts.queue})),h.progress(h.opts.progress).done(h.opts.done,h.opts.complete).fail(h.opts.fail).always(h.opts.always)}function $(t){return t.getAttribute&&t.getAttribute("class")||""}function H(t){return function(e,i){"string"!=typeof e&&(i=e,e="*");var n,r=0,o=e.toLowerCase().match(wt)||[];if(ot.isFunction(i))for(;n=o[r++];)"+"===n[0]?(n=n.slice(1)||"*",(t[n]=t[n]||[]).unshift(i)):(t[n]=t[n]||[]).push(i)}}function z(t,e,i,n){function r(a){var l;return o[a]=!0,ot.each(t[a]||[],function(t,a){var h=a(e,i,n);return"string"!=typeof h||s||o[h]?s?!(l=h):void 0:(e.dataTypes.unshift(h),r(h),!1)}),l}var o={},s=t===_e;return r(e.dataTypes[0])||!o["*"]&&r("*")}function W(t,e){var i,n,r=ot.ajaxSettings.flatOptions||{};for(i in e)void 0!==e[i]&&((r[i]?t:n||(n={}))[i]=e[i]);return n&&ot.extend(!0,t,n),t}function U(t,e,i){for(var n,r,o,s,a=t.contents,l=t.dataTypes;"*"===l[0];)l.shift(),void 0===n&&(n=t.mimeType||e.getResponseHeader("Content-Type"));if(n)for(r in a)if(a[r]&&a[r].test(n)){l.unshift(r);break}if(l[0]in i)o=l[0];else{for(r in i){if(!l[0]||t.converters[r+" "+l[0]]){o=r;break}s||(s=r)}o=o||s}if(o)return o!==l[0]&&l.unshift(o),i[o]}function X(t,e,i,n){var r,o,s,a,l,h={},c=t.dataTypes.slice();if(c[1])for(s in t.converters)h[s.toLowerCase()]=t.converters[s];for(o=c.shift();o;)if(t.responseFields[o]&&(i[t.responseFields[o]]=e),!l&&n&&t.dataFilter&&(e=t.dataFilter(e,t.dataType)),l=o,o=c.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(s=h[l+" "+o]||h["* "+o],!s)for(r in h)if(a=r.split(" "),a[1]===o&&(s=h[l+" "+a[0]]||h["* "+a[0]])){s===!0?s=h[r]:h[r]!==!0&&(o=a[0],c.unshift(a[1]));break}if(s!==!0)if(s&&t["throws"])e=s(e);else try{e=s(e)}catch(u){return{state:"parsererror",error:s?u:"No conversion from "+l+" to "+o}}}return{state:"success",data:e}}function Y(t,e,i,n){var r;if(ot.isArray(e))ot.each(e,function(e,r){i||Ee.test(t)?n(t,r):Y(t+"["+("object"==typeof r&&null!=r?e:"")+"]",r,i,n)});else if(i||"object"!==ot.type(e))n(t,e);else for(r in e)Y(t+"["+r+"]",e[r],i,n)}function G(t){return ot.isWindow(t)?t:9===t.nodeType&&t.defaultView}var q=[],V=t.document,J=q.slice,K=q.concat,Z=q.push,Q=q.indexOf,tt={},et=tt.toString,it=tt.hasOwnProperty,nt={},rt="2.2.4",ot=function(t,e){return new ot.fn.init(t,e)},st=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,at=/^-ms-/,lt=/-([\da-z])/gi,ht=function(t,e){return e.toUpperCase()};ot.fn=ot.prototype={jquery:rt,constructor:ot,selector:"",length:0,toArray:function(){return J.call(this)},get:function(t){return null!=t?t<0?this[t+this.length]:this[t]:J.call(this)},pushStack:function(t){var e=ot.merge(this.constructor(),t);return e.prevObject=this,e.context=this.context,e},each:function(t){return ot.each(this,t)},map:function(t){return this.pushStack(ot.map(this,function(e,i){return t.call(e,i,e)}))},slice:function(){return this.pushStack(J.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(t){var e=this.length,i=+t+(t<0?e:0);return this.pushStack(i>=0&&i<e?[this[i]]:[])},end:function(){return this.prevObject||this.constructor()},push:Z,sort:q.sort,splice:q.splice},ot.extend=ot.fn.extend=function(){var t,e,i,n,r,o,s=arguments[0]||{},a=1,l=arguments.length,h=!1;for("boolean"==typeof s&&(h=s,s=arguments[a]||{},a++),"object"==typeof s||ot.isFunction(s)||(s={}),a===l&&(s=this,a--);a<l;a++)if(null!=(t=arguments[a]))for(e in t)i=s[e],n=t[e],s!==n&&(h&&n&&(ot.isPlainObject(n)||(r=ot.isArray(n)))?(r?(r=!1,o=i&&ot.isArray(i)?i:[]):o=i&&ot.isPlainObject(i)?i:{},s[e]=ot.extend(h,o,n)):void 0!==n&&(s[e]=n));return s},ot.extend({expando:"jQuery"+(rt+Math.random()).replace(/\D/g,""),isReady:!0,error:function(t){throw new Error(t)},noop:function(){},isFunction:function(t){return"function"===ot.type(t)},isArray:Array.isArray,isWindow:function(t){return null!=t&&t===t.window},isNumeric:function(t){var e=t&&t.toString();return!ot.isArray(t)&&e-parseFloat(e)+1>=0},isPlainObject:function(t){var e;if("object"!==ot.type(t)||t.nodeType||ot.isWindow(t))return!1;if(t.constructor&&!it.call(t,"constructor")&&!it.call(t.constructor.prototype||{},"isPrototypeOf"))return!1;for(e in t);return void 0===e||it.call(t,e)},isEmptyObject:function(t){var e;for(e in t)return!1;return!0},type:function(t){return null==t?t+"":"object"==typeof t||"function"==typeof t?tt[et.call(t)]||"object":typeof t},globalEval:function(t){var e,i=eval;t=ot.trim(t),t&&(1===t.indexOf("use strict")?(e=V.createElement("script"),e.text=t,V.head.appendChild(e).parentNode.removeChild(e)):i(t))},camelCase:function(t){return t.replace(at,"ms-").replace(lt,ht)},nodeName:function(t,e){return t.nodeName&&t.nodeName.toLowerCase()===e.toLowerCase()},each:function(t,e){var n,r=0;if(i(t))for(n=t.length;r<n&&e.call(t[r],r,t[r])!==!1;r++);else for(r in t)if(e.call(t[r],r,t[r])===!1)break;return t},trim:function(t){return null==t?"":(t+"").replace(st,"")},makeArray:function(t,e){var n=e||[];return null!=t&&(i(Object(t))?ot.merge(n,"string"==typeof t?[t]:t):Z.call(n,t)),n},inArray:function(t,e,i){return null==e?-1:Q.call(e,t,i)},merge:function(t,e){for(var i=+e.length,n=0,r=t.length;n<i;n++)t[r++]=e[n];return t.length=r,t},grep:function(t,e,i){for(var n,r=[],o=0,s=t.length,a=!i;o<s;o++)n=!e(t[o],o),n!==a&&r.push(t[o]);return r},map:function(t,e,n){var r,o,s=0,a=[];if(i(t))for(r=t.length;s<r;s++)o=e(t[s],s,n),null!=o&&a.push(o);else for(s in t)o=e(t[s],s,n),null!=o&&a.push(o);return K.apply([],a)},guid:1,proxy:function(t,e){var i,n,r;if("string"==typeof e&&(i=t[e],e=t,t=i),ot.isFunction(t))return n=J.call(arguments,2),r=function(){return t.apply(e||this,n.concat(J.call(arguments)))},r.guid=t.guid=t.guid||ot.guid++,r},now:Date.now,support:nt}),"function"==typeof Symbol&&(ot.fn[Symbol.iterator]=q[Symbol.iterator]),ot.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(t,e){tt["[object "+e+"]"]=e.toLowerCase()});var ct=function(t){function e(t,e,i,n){var r,o,s,a,l,h,u,d,f=e&&e.ownerDocument,g=e?e.nodeType:9;if(i=i||[],"string"!=typeof t||!t||1!==g&&9!==g&&11!==g)return i;if(!n&&((e?e.ownerDocument||e:$)!==M&&P(e),e=e||M,R)){if(11!==g&&(h=vt.exec(t)))if(r=h[1]){if(9===g){if(!(s=e.getElementById(r)))return i;if(s.id===r)return i.push(s),i}else if(f&&(s=f.getElementById(r))&&N(e,s)&&s.id===r)return i.push(s),i}else{if(h[2])return Z.apply(i,e.getElementsByTagName(t)),i;if((r=h[3])&&w.getElementsByClassName&&e.getElementsByClassName)return Z.apply(i,e.getElementsByClassName(r)),i}if(w.qsa&&!X[t+" "]&&(!O||!O.test(t))){if(1!==g)f=e,d=t;else if("object"!==e.nodeName.toLowerCase()){for((a=e.getAttribute("id"))?a=a.replace(bt,"\\$&"):e.setAttribute("id",a=j),u=C(t),o=u.length,l=pt.test(a)?"#"+a:"[id='"+a+"']";o--;)u[o]=l+" "+p(u[o]);d=u.join(","),f=yt.test(t)&&c(e.parentNode)||e}if(d)try{return Z.apply(i,f.querySelectorAll(d)),i}catch(m){}finally{a===j&&e.removeAttribute("id")}}}return A(t.replace(at,"$1"),e,i,n)}function i(){function t(i,n){return e.push(i+" ")>S.cacheLength&&delete t[e.shift()],t[i+" "]=n}var e=[];return t}function n(t){return t[j]=!0,t}function r(t){var e=M.createElement("div");try{return!!t(e)}catch(i){return!1}finally{e.parentNode&&e.parentNode.removeChild(e),e=null}}function o(t,e){for(var i=t.split("|"),n=i.length;n--;)S.attrHandle[i[n]]=e}function s(t,e){var i=e&&t,n=i&&1===t.nodeType&&1===e.nodeType&&(~e.sourceIndex||G)-(~t.sourceIndex||G);if(n)return n;if(i)for(;i=i.nextSibling;)if(i===e)return-1;return t?1:-1}function a(t){return function(e){var i=e.nodeName.toLowerCase();return"input"===i&&e.type===t}}function l(t){return function(e){var i=e.nodeName.toLowerCase();return("input"===i||"button"===i)&&e.type===t}}function h(t){return n(function(e){return e=+e,n(function(i,n){for(var r,o=t([],i.length,e),s=o.length;s--;)i[r=o[s]]&&(i[r]=!(n[r]=i[r]))})})}function c(t){return t&&"undefined"!=typeof t.getElementsByTagName&&t}function u(){}function p(t){for(var e=0,i=t.length,n="";e<i;e++)n+=t[e].value;return n}function d(t,e,i){var n=e.dir,r=i&&"parentNode"===n,o=z++;return e.first?function(e,i,o){for(;e=e[n];)if(1===e.nodeType||r)return t(e,i,o)}:function(e,i,s){var a,l,h,c=[H,o];if(s){for(;e=e[n];)if((1===e.nodeType||r)&&t(e,i,s))return!0}else for(;e=e[n];)if(1===e.nodeType||r){if(h=e[j]||(e[j]={}),l=h[e.uniqueID]||(h[e.uniqueID]={}),(a=l[n])&&a[0]===H&&a[1]===o)return c[2]=a[2];if(l[n]=c,c[2]=t(e,i,s))return!0}}}function f(t){return t.length>1?function(e,i,n){for(var r=t.length;r--;)if(!t[r](e,i,n))return!1;return!0}:t[0]}function g(t,i,n){for(var r=0,o=i.length;r<o;r++)e(t,i[r],n);return n}function m(t,e,i,n,r){for(var o,s=[],a=0,l=t.length,h=null!=e;a<l;a++)(o=t[a])&&(i&&!i(o,n,r)||(s.push(o),h&&e.push(a)));return s}function v(t,e,i,r,o,s){return r&&!r[j]&&(r=v(r)),o&&!o[j]&&(o=v(o,s)),n(function(n,s,a,l){var h,c,u,p=[],d=[],f=s.length,v=n||g(e||"*",a.nodeType?[a]:a,[]),y=!t||!n&&e?v:m(v,p,t,a,l),b=i?o||(n?t:f||r)?[]:s:y;if(i&&i(y,b,a,l),r)for(h=m(b,d),r(h,[],a,l),c=h.length;c--;)(u=h[c])&&(b[d[c]]=!(y[d[c]]=u));if(n){if(o||t){if(o){for(h=[],c=b.length;c--;)(u=b[c])&&h.push(y[c]=u);o(null,b=[],h,l)}for(c=b.length;c--;)(u=b[c])&&(h=o?tt(n,u):p[c])>-1&&(n[h]=!(s[h]=u))}}else b=m(b===s?b.splice(f,b.length):b),o?o(null,s,b,l):Z.apply(s,b)})}function y(t){for(var e,i,n,r=t.length,o=S.relative[t[0].type],s=o||S.relative[" "],a=o?1:0,l=d(function(t){return t===e},s,!0),h=d(function(t){return tt(e,t)>-1},s,!0),c=[function(t,i,n){var r=!o&&(n||i!==D)||((e=i).nodeType?l(t,i,n):h(t,i,n));return e=null,r}];a<r;a++)if(i=S.relative[t[a].type])c=[d(f(c),i)];else{if(i=S.filter[t[a].type].apply(null,t[a].matches),i[j]){for(n=++a;n<r&&!S.relative[t[n].type];n++);return v(a>1&&f(c),a>1&&p(t.slice(0,a-1).concat({value:" "===t[a-2].type?"*":""})).replace(at,"$1"),i,a<n&&y(t.slice(a,n)),n<r&&y(t=t.slice(n)),n<r&&p(t))}c.push(i)}return f(c)}function b(t,i){var r=i.length>0,o=t.length>0,s=function(n,s,a,l,h){var c,u,p,d=0,f="0",g=n&&[],v=[],y=D,b=n||o&&S.find.TAG("*",h),x=H+=null==y?1:Math.random()||.1,w=b.length;for(h&&(D=s===M||s||h);f!==w&&null!=(c=b[f]);f++){if(o&&c){for(u=0,s||c.ownerDocument===M||(P(c),a=!R);p=t[u++];)if(p(c,s||M,a)){l.push(c);break}h&&(H=x)}r&&((c=!p&&c)&&d--,n&&g.push(c))}if(d+=f,r&&f!==d){for(u=0;p=i[u++];)p(g,v,s,a);if(n){if(d>0)for(;f--;)g[f]||v[f]||(v[f]=J.call(l));v=m(v)}Z.apply(l,v),h&&!n&&v.length>0&&d+i.length>1&&e.uniqueSort(l)}return h&&(H=x,D=y),g};return r?n(s):s}var x,w,S,T,k,C,_,A,D,L,E,P,M,I,R,O,B,F,N,j="sizzle"+1*new Date,$=t.document,H=0,z=0,W=i(),U=i(),X=i(),Y=function(t,e){return t===e&&(E=!0),0},G=1<<31,q={}.hasOwnProperty,V=[],J=V.pop,K=V.push,Z=V.push,Q=V.slice,tt=function(t,e){for(var i=0,n=t.length;i<n;i++)if(t[i]===e)return i;return-1},et="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",it="[\\x20\\t\\r\\n\\f]",nt="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",rt="\\["+it+"*("+nt+")(?:"+it+"*([*^$|!~]?=)"+it+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+nt+"))|)"+it+"*\\]",ot=":("+nt+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+rt+")*)|.*)\\)|)",st=new RegExp(it+"+","g"),at=new RegExp("^"+it+"+|((?:^|[^\\\\])(?:\\\\.)*)"+it+"+$","g"),lt=new RegExp("^"+it+"*,"+it+"*"),ht=new RegExp("^"+it+"*([>+~]|"+it+")"+it+"*"),ct=new RegExp("="+it+"*([^\\]'\"]*?)"+it+"*\\]","g"),ut=new RegExp(ot),pt=new RegExp("^"+nt+"$"),dt={ID:new RegExp("^#("+nt+")"),CLASS:new RegExp("^\\.("+nt+")"),TAG:new RegExp("^("+nt+"|[*])"),ATTR:new RegExp("^"+rt),PSEUDO:new RegExp("^"+ot),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+it+"*(even|odd|(([+-]|)(\\d*)n|)"+it+"*(?:([+-]|)"+it+"*(\\d+)|))"+it+"*\\)|)","i"),bool:new RegExp("^(?:"+et+")$","i"),needsContext:new RegExp("^"+it+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+it+"*((?:-\\d)?\\d*)"+it+"*\\)|)(?=[^-]|$)","i")},ft=/^(?:input|select|textarea|button)$/i,gt=/^h\d$/i,mt=/^[^{]+\{\s*\[native \w/,vt=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,yt=/[+~]/,bt=/'|\\/g,xt=new RegExp("\\\\([\\da-f]{1,6}"+it+"?|("+it+")|.)","ig"),wt=function(t,e,i){var n="0x"+e-65536;return n!==n||i?e:n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320)},St=function(){P()};try{Z.apply(V=Q.call($.childNodes),$.childNodes),V[$.childNodes.length].nodeType}catch(Tt){Z={apply:V.length?function(t,e){K.apply(t,Q.call(e))}:function(t,e){for(var i=t.length,n=0;t[i++]=e[n++];);t.length=i-1}}}w=e.support={},k=e.isXML=function(t){var e=t&&(t.ownerDocument||t).documentElement;return!!e&&"HTML"!==e.nodeName},P=e.setDocument=function(t){var e,i,n=t?t.ownerDocument||t:$;return n!==M&&9===n.nodeType&&n.documentElement?(M=n,I=M.documentElement,R=!k(M),(i=M.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",St,!1):i.attachEvent&&i.attachEvent("onunload",St)),w.attributes=r(function(t){return t.className="i",!t.getAttribute("className")}),w.getElementsByTagName=r(function(t){return t.appendChild(M.createComment("")),!t.getElementsByTagName("*").length}),w.getElementsByClassName=mt.test(M.getElementsByClassName),w.getById=r(function(t){return I.appendChild(t).id=j,!M.getElementsByName||!M.getElementsByName(j).length}),w.getById?(S.find.ID=function(t,e){if("undefined"!=typeof e.getElementById&&R){var i=e.getElementById(t);return i?[i]:[]}},S.filter.ID=function(t){var e=t.replace(xt,wt);return function(t){return t.getAttribute("id")===e}}):(delete S.find.ID,S.filter.ID=function(t){var e=t.replace(xt,wt);return function(t){var i="undefined"!=typeof t.getAttributeNode&&t.getAttributeNode("id");return i&&i.value===e}}),S.find.TAG=w.getElementsByTagName?function(t,e){return"undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t):w.qsa?e.querySelectorAll(t):void 0}:function(t,e){var i,n=[],r=0,o=e.getElementsByTagName(t);if("*"===t){for(;i=o[r++];)1===i.nodeType&&n.push(i);return n}return o},S.find.CLASS=w.getElementsByClassName&&function(t,e){if("undefined"!=typeof e.getElementsByClassName&&R)return e.getElementsByClassName(t)},B=[],O=[],(w.qsa=mt.test(M.querySelectorAll))&&(r(function(t){I.appendChild(t).innerHTML="<a id='"+j+"'></a><select id='"+j+"-\r\\' msallowcapture=''><option selected=''></option></select>",t.querySelectorAll("[msallowcapture^='']").length&&O.push("[*^$]="+it+"*(?:''|\"\")"),t.querySelectorAll("[selected]").length||O.push("\\["+it+"*(?:value|"+et+")"),t.querySelectorAll("[id~="+j+"-]").length||O.push("~="),t.querySelectorAll(":checked").length||O.push(":checked"),t.querySelectorAll("a#"+j+"+*").length||O.push(".#.+[+~]")}),r(function(t){var e=M.createElement("input");e.setAttribute("type","hidden"),t.appendChild(e).setAttribute("name","D"),t.querySelectorAll("[name=d]").length&&O.push("name"+it+"*[*^$|!~]?="),t.querySelectorAll(":enabled").length||O.push(":enabled",":disabled"),t.querySelectorAll("*,:x"),O.push(",.*:")})),(w.matchesSelector=mt.test(F=I.matches||I.webkitMatchesSelector||I.mozMatchesSelector||I.oMatchesSelector||I.msMatchesSelector))&&r(function(t){w.disconnectedMatch=F.call(t,"div"),F.call(t,"[s!='']:x"),B.push("!=",ot)}),O=O.length&&new RegExp(O.join("|")),B=B.length&&new RegExp(B.join("|")),e=mt.test(I.compareDocumentPosition),N=e||mt.test(I.contains)?function(t,e){var i=9===t.nodeType?t.documentElement:t,n=e&&e.parentNode;return t===n||!(!n||1!==n.nodeType||!(i.contains?i.contains(n):t.compareDocumentPosition&&16&t.compareDocumentPosition(n)))}:function(t,e){if(e)for(;e=e.parentNode;)if(e===t)return!0;return!1},Y=e?function(t,e){if(t===e)return E=!0,0;var i=!t.compareDocumentPosition-!e.compareDocumentPosition;return i?i:(i=(t.ownerDocument||t)===(e.ownerDocument||e)?t.compareDocumentPosition(e):1,1&i||!w.sortDetached&&e.compareDocumentPosition(t)===i?t===M||t.ownerDocument===$&&N($,t)?-1:e===M||e.ownerDocument===$&&N($,e)?1:L?tt(L,t)-tt(L,e):0:4&i?-1:1)}:function(t,e){if(t===e)return E=!0,0;var i,n=0,r=t.parentNode,o=e.parentNode,a=[t],l=[e];if(!r||!o)return t===M?-1:e===M?1:r?-1:o?1:L?tt(L,t)-tt(L,e):0;if(r===o)return s(t,e);for(i=t;i=i.parentNode;)a.unshift(i);for(i=e;i=i.parentNode;)l.unshift(i);for(;a[n]===l[n];)n++;return n?s(a[n],l[n]):a[n]===$?-1:l[n]===$?1:0},M):M},e.matches=function(t,i){return e(t,null,null,i)},e.matchesSelector=function(t,i){if((t.ownerDocument||t)!==M&&P(t),i=i.replace(ct,"='$1']"),w.matchesSelector&&R&&!X[i+" "]&&(!B||!B.test(i))&&(!O||!O.test(i)))try{var n=F.call(t,i);if(n||w.disconnectedMatch||t.document&&11!==t.document.nodeType)return n}catch(r){}return e(i,M,null,[t]).length>0},e.contains=function(t,e){return(t.ownerDocument||t)!==M&&P(t),N(t,e)},
e.attr=function(t,e){(t.ownerDocument||t)!==M&&P(t);var i=S.attrHandle[e.toLowerCase()],n=i&&q.call(S.attrHandle,e.toLowerCase())?i(t,e,!R):void 0;return void 0!==n?n:w.attributes||!R?t.getAttribute(e):(n=t.getAttributeNode(e))&&n.specified?n.value:null},e.error=function(t){throw new Error("Syntax error, unrecognized expression: "+t)},e.uniqueSort=function(t){var e,i=[],n=0,r=0;if(E=!w.detectDuplicates,L=!w.sortStable&&t.slice(0),t.sort(Y),E){for(;e=t[r++];)e===t[r]&&(n=i.push(r));for(;n--;)t.splice(i[n],1)}return L=null,t},T=e.getText=function(t){var e,i="",n=0,r=t.nodeType;if(r){if(1===r||9===r||11===r){if("string"==typeof t.textContent)return t.textContent;for(t=t.firstChild;t;t=t.nextSibling)i+=T(t)}else if(3===r||4===r)return t.nodeValue}else for(;e=t[n++];)i+=T(e);return i},S=e.selectors={cacheLength:50,createPseudo:n,match:dt,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(t){return t[1]=t[1].replace(xt,wt),t[3]=(t[3]||t[4]||t[5]||"").replace(xt,wt),"~="===t[2]&&(t[3]=" "+t[3]+" "),t.slice(0,4)},CHILD:function(t){return t[1]=t[1].toLowerCase(),"nth"===t[1].slice(0,3)?(t[3]||e.error(t[0]),t[4]=+(t[4]?t[5]+(t[6]||1):2*("even"===t[3]||"odd"===t[3])),t[5]=+(t[7]+t[8]||"odd"===t[3])):t[3]&&e.error(t[0]),t},PSEUDO:function(t){var e,i=!t[6]&&t[2];return dt.CHILD.test(t[0])?null:(t[3]?t[2]=t[4]||t[5]||"":i&&ut.test(i)&&(e=C(i,!0))&&(e=i.indexOf(")",i.length-e)-i.length)&&(t[0]=t[0].slice(0,e),t[2]=i.slice(0,e)),t.slice(0,3))}},filter:{TAG:function(t){var e=t.replace(xt,wt).toLowerCase();return"*"===t?function(){return!0}:function(t){return t.nodeName&&t.nodeName.toLowerCase()===e}},CLASS:function(t){var e=W[t+" "];return e||(e=new RegExp("(^|"+it+")"+t+"("+it+"|$)"))&&W(t,function(t){return e.test("string"==typeof t.className&&t.className||"undefined"!=typeof t.getAttribute&&t.getAttribute("class")||"")})},ATTR:function(t,i,n){return function(r){var o=e.attr(r,t);return null==o?"!="===i:!i||(o+="","="===i?o===n:"!="===i?o!==n:"^="===i?n&&0===o.indexOf(n):"*="===i?n&&o.indexOf(n)>-1:"$="===i?n&&o.slice(-n.length)===n:"~="===i?(" "+o.replace(st," ")+" ").indexOf(n)>-1:"|="===i&&(o===n||o.slice(0,n.length+1)===n+"-"))}},CHILD:function(t,e,i,n,r){var o="nth"!==t.slice(0,3),s="last"!==t.slice(-4),a="of-type"===e;return 1===n&&0===r?function(t){return!!t.parentNode}:function(e,i,l){var h,c,u,p,d,f,g=o!==s?"nextSibling":"previousSibling",m=e.parentNode,v=a&&e.nodeName.toLowerCase(),y=!l&&!a,b=!1;if(m){if(o){for(;g;){for(p=e;p=p[g];)if(a?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;f=g="only"===t&&!f&&"nextSibling"}return!0}if(f=[s?m.firstChild:m.lastChild],s&&y){for(p=m,u=p[j]||(p[j]={}),c=u[p.uniqueID]||(u[p.uniqueID]={}),h=c[t]||[],d=h[0]===H&&h[1],b=d&&h[2],p=d&&m.childNodes[d];p=++d&&p&&p[g]||(b=d=0)||f.pop();)if(1===p.nodeType&&++b&&p===e){c[t]=[H,d,b];break}}else if(y&&(p=e,u=p[j]||(p[j]={}),c=u[p.uniqueID]||(u[p.uniqueID]={}),h=c[t]||[],d=h[0]===H&&h[1],b=d),b===!1)for(;(p=++d&&p&&p[g]||(b=d=0)||f.pop())&&((a?p.nodeName.toLowerCase()!==v:1!==p.nodeType)||!++b||(y&&(u=p[j]||(p[j]={}),c=u[p.uniqueID]||(u[p.uniqueID]={}),c[t]=[H,b]),p!==e)););return b-=r,b===n||b%n===0&&b/n>=0}}},PSEUDO:function(t,i){var r,o=S.pseudos[t]||S.setFilters[t.toLowerCase()]||e.error("unsupported pseudo: "+t);return o[j]?o(i):o.length>1?(r=[t,t,"",i],S.setFilters.hasOwnProperty(t.toLowerCase())?n(function(t,e){for(var n,r=o(t,i),s=r.length;s--;)n=tt(t,r[s]),t[n]=!(e[n]=r[s])}):function(t){return o(t,0,r)}):o}},pseudos:{not:n(function(t){var e=[],i=[],r=_(t.replace(at,"$1"));return r[j]?n(function(t,e,i,n){for(var o,s=r(t,null,n,[]),a=t.length;a--;)(o=s[a])&&(t[a]=!(e[a]=o))}):function(t,n,o){return e[0]=t,r(e,null,o,i),e[0]=null,!i.pop()}}),has:n(function(t){return function(i){return e(t,i).length>0}}),contains:n(function(t){return t=t.replace(xt,wt),function(e){return(e.textContent||e.innerText||T(e)).indexOf(t)>-1}}),lang:n(function(t){return pt.test(t||"")||e.error("unsupported lang: "+t),t=t.replace(xt,wt).toLowerCase(),function(e){var i;do if(i=R?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return i=i.toLowerCase(),i===t||0===i.indexOf(t+"-");while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var i=t.location&&t.location.hash;return i&&i.slice(1)===e.id},root:function(t){return t===I},focus:function(t){return t===M.activeElement&&(!M.hasFocus||M.hasFocus())&&!!(t.type||t.href||~t.tabIndex)},enabled:function(t){return t.disabled===!1},disabled:function(t){return t.disabled===!0},checked:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&!!t.checked||"option"===e&&!!t.selected},selected:function(t){return t.parentNode&&t.parentNode.selectedIndex,t.selected===!0},empty:function(t){for(t=t.firstChild;t;t=t.nextSibling)if(t.nodeType<6)return!1;return!0},parent:function(t){return!S.pseudos.empty(t)},header:function(t){return gt.test(t.nodeName)},input:function(t){return ft.test(t.nodeName)},button:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&"button"===t.type||"button"===e},text:function(t){var e;return"input"===t.nodeName.toLowerCase()&&"text"===t.type&&(null==(e=t.getAttribute("type"))||"text"===e.toLowerCase())},first:h(function(){return[0]}),last:h(function(t,e){return[e-1]}),eq:h(function(t,e,i){return[i<0?i+e:i]}),even:h(function(t,e){for(var i=0;i<e;i+=2)t.push(i);return t}),odd:h(function(t,e){for(var i=1;i<e;i+=2)t.push(i);return t}),lt:h(function(t,e,i){for(var n=i<0?i+e:i;--n>=0;)t.push(n);return t}),gt:h(function(t,e,i){for(var n=i<0?i+e:i;++n<e;)t.push(n);return t})}},S.pseudos.nth=S.pseudos.eq;for(x in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})S.pseudos[x]=a(x);for(x in{submit:!0,reset:!0})S.pseudos[x]=l(x);return u.prototype=S.filters=S.pseudos,S.setFilters=new u,C=e.tokenize=function(t,i){var n,r,o,s,a,l,h,c=U[t+" "];if(c)return i?0:c.slice(0);for(a=t,l=[],h=S.preFilter;a;){n&&!(r=lt.exec(a))||(r&&(a=a.slice(r[0].length)||a),l.push(o=[])),n=!1,(r=ht.exec(a))&&(n=r.shift(),o.push({value:n,type:r[0].replace(at," ")}),a=a.slice(n.length));for(s in S.filter)!(r=dt[s].exec(a))||h[s]&&!(r=h[s](r))||(n=r.shift(),o.push({value:n,type:s,matches:r}),a=a.slice(n.length));if(!n)break}return i?a.length:a?e.error(t):U(t,l).slice(0)},_=e.compile=function(t,e){var i,n=[],r=[],o=X[t+" "];if(!o){for(e||(e=C(t)),i=e.length;i--;)o=y(e[i]),o[j]?n.push(o):r.push(o);o=X(t,b(r,n)),o.selector=t}return o},A=e.select=function(t,e,i,n){var r,o,s,a,l,h="function"==typeof t&&t,u=!n&&C(t=h.selector||t);if(i=i||[],1===u.length){if(o=u[0]=u[0].slice(0),o.length>2&&"ID"===(s=o[0]).type&&w.getById&&9===e.nodeType&&R&&S.relative[o[1].type]){if(e=(S.find.ID(s.matches[0].replace(xt,wt),e)||[])[0],!e)return i;h&&(e=e.parentNode),t=t.slice(o.shift().value.length)}for(r=dt.needsContext.test(t)?0:o.length;r--&&(s=o[r],!S.relative[a=s.type]);)if((l=S.find[a])&&(n=l(s.matches[0].replace(xt,wt),yt.test(o[0].type)&&c(e.parentNode)||e))){if(o.splice(r,1),t=n.length&&p(o),!t)return Z.apply(i,n),i;break}}return(h||_(t,u))(n,e,!R,i,!e||yt.test(t)&&c(e.parentNode)||e),i},w.sortStable=j.split("").sort(Y).join("")===j,w.detectDuplicates=!!E,P(),w.sortDetached=r(function(t){return 1&t.compareDocumentPosition(M.createElement("div"))}),r(function(t){return t.innerHTML="<a href='#'></a>","#"===t.firstChild.getAttribute("href")})||o("type|href|height|width",function(t,e,i){if(!i)return t.getAttribute(e,"type"===e.toLowerCase()?1:2)}),w.attributes&&r(function(t){return t.innerHTML="<input/>",t.firstChild.setAttribute("value",""),""===t.firstChild.getAttribute("value")})||o("value",function(t,e,i){if(!i&&"input"===t.nodeName.toLowerCase())return t.defaultValue}),r(function(t){return null==t.getAttribute("disabled")})||o(et,function(t,e,i){var n;if(!i)return t[e]===!0?e.toLowerCase():(n=t.getAttributeNode(e))&&n.specified?n.value:null}),e}(t);ot.find=ct,ot.expr=ct.selectors,ot.expr[":"]=ot.expr.pseudos,ot.uniqueSort=ot.unique=ct.uniqueSort,ot.text=ct.getText,ot.isXMLDoc=ct.isXML,ot.contains=ct.contains;var ut=function(t,e,i){for(var n=[],r=void 0!==i;(t=t[e])&&9!==t.nodeType;)if(1===t.nodeType){if(r&&ot(t).is(i))break;n.push(t)}return n},pt=function(t,e){for(var i=[];t;t=t.nextSibling)1===t.nodeType&&t!==e&&i.push(t);return i},dt=ot.expr.match.needsContext,ft=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,gt=/^.[^:#\[\.,]*$/;ot.filter=function(t,e,i){var n=e[0];return i&&(t=":not("+t+")"),1===e.length&&1===n.nodeType?ot.find.matchesSelector(n,t)?[n]:[]:ot.find.matches(t,ot.grep(e,function(t){return 1===t.nodeType}))},ot.fn.extend({find:function(t){var e,i=this.length,n=[],r=this;if("string"!=typeof t)return this.pushStack(ot(t).filter(function(){for(e=0;e<i;e++)if(ot.contains(r[e],this))return!0}));for(e=0;e<i;e++)ot.find(t,r[e],n);return n=this.pushStack(i>1?ot.unique(n):n),n.selector=this.selector?this.selector+" "+t:t,n},filter:function(t){return this.pushStack(n(this,t||[],!1))},not:function(t){return this.pushStack(n(this,t||[],!0))},is:function(t){return!!n(this,"string"==typeof t&&dt.test(t)?ot(t):t||[],!1).length}});var mt,vt=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,yt=ot.fn.init=function(t,e,i){var n,r;if(!t)return this;if(i=i||mt,"string"==typeof t){if(n="<"===t[0]&&">"===t[t.length-1]&&t.length>=3?[null,t,null]:vt.exec(t),!n||!n[1]&&e)return!e||e.jquery?(e||i).find(t):this.constructor(e).find(t);if(n[1]){if(e=e instanceof ot?e[0]:e,ot.merge(this,ot.parseHTML(n[1],e&&e.nodeType?e.ownerDocument||e:V,!0)),ft.test(n[1])&&ot.isPlainObject(e))for(n in e)ot.isFunction(this[n])?this[n](e[n]):this.attr(n,e[n]);return this}return r=V.getElementById(n[2]),r&&r.parentNode&&(this.length=1,this[0]=r),this.context=V,this.selector=t,this}return t.nodeType?(this.context=this[0]=t,this.length=1,this):ot.isFunction(t)?void 0!==i.ready?i.ready(t):t(ot):(void 0!==t.selector&&(this.selector=t.selector,this.context=t.context),ot.makeArray(t,this))};yt.prototype=ot.fn,mt=ot(V);var bt=/^(?:parents|prev(?:Until|All))/,xt={children:!0,contents:!0,next:!0,prev:!0};ot.fn.extend({has:function(t){var e=ot(t,this),i=e.length;return this.filter(function(){for(var t=0;t<i;t++)if(ot.contains(this,e[t]))return!0})},closest:function(t,e){for(var i,n=0,r=this.length,o=[],s=dt.test(t)||"string"!=typeof t?ot(t,e||this.context):0;n<r;n++)for(i=this[n];i&&i!==e;i=i.parentNode)if(i.nodeType<11&&(s?s.index(i)>-1:1===i.nodeType&&ot.find.matchesSelector(i,t))){o.push(i);break}return this.pushStack(o.length>1?ot.uniqueSort(o):o)},index:function(t){return t?"string"==typeof t?Q.call(ot(t),this[0]):Q.call(this,t.jquery?t[0]:t):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(t,e){return this.pushStack(ot.uniqueSort(ot.merge(this.get(),ot(t,e))))},addBack:function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}}),ot.each({parent:function(t){var e=t.parentNode;return e&&11!==e.nodeType?e:null},parents:function(t){return ut(t,"parentNode")},parentsUntil:function(t,e,i){return ut(t,"parentNode",i)},next:function(t){return r(t,"nextSibling")},prev:function(t){return r(t,"previousSibling")},nextAll:function(t){return ut(t,"nextSibling")},prevAll:function(t){return ut(t,"previousSibling")},nextUntil:function(t,e,i){return ut(t,"nextSibling",i)},prevUntil:function(t,e,i){return ut(t,"previousSibling",i)},siblings:function(t){return pt((t.parentNode||{}).firstChild,t)},children:function(t){return pt(t.firstChild)},contents:function(t){return t.contentDocument||ot.merge([],t.childNodes)}},function(t,e){ot.fn[t]=function(i,n){var r=ot.map(this,e,i);return"Until"!==t.slice(-5)&&(n=i),n&&"string"==typeof n&&(r=ot.filter(n,r)),this.length>1&&(xt[t]||ot.uniqueSort(r),bt.test(t)&&r.reverse()),this.pushStack(r)}});var wt=/\S+/g;ot.Callbacks=function(t){t="string"==typeof t?o(t):ot.extend({},t);var e,i,n,r,s=[],a=[],l=-1,h=function(){for(r=t.once,n=e=!0;a.length;l=-1)for(i=a.shift();++l<s.length;)s[l].apply(i[0],i[1])===!1&&t.stopOnFalse&&(l=s.length,i=!1);t.memory||(i=!1),e=!1,r&&(s=i?[]:"")},c={add:function(){return s&&(i&&!e&&(l=s.length-1,a.push(i)),function n(e){ot.each(e,function(e,i){ot.isFunction(i)?t.unique&&c.has(i)||s.push(i):i&&i.length&&"string"!==ot.type(i)&&n(i)})}(arguments),i&&!e&&h()),this},remove:function(){return ot.each(arguments,function(t,e){for(var i;(i=ot.inArray(e,s,i))>-1;)s.splice(i,1),i<=l&&l--}),this},has:function(t){return t?ot.inArray(t,s)>-1:s.length>0},empty:function(){return s&&(s=[]),this},disable:function(){return r=a=[],s=i="",this},disabled:function(){return!s},lock:function(){return r=a=[],i||(s=i=""),this},locked:function(){return!!r},fireWith:function(t,i){return r||(i=i||[],i=[t,i.slice?i.slice():i],a.push(i),e||h()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!n}};return c},ot.extend({Deferred:function(t){var e=[["resolve","done",ot.Callbacks("once memory"),"resolved"],["reject","fail",ot.Callbacks("once memory"),"rejected"],["notify","progress",ot.Callbacks("memory")]],i="pending",n={state:function(){return i},always:function(){return r.done(arguments).fail(arguments),this},then:function(){var t=arguments;return ot.Deferred(function(i){ot.each(e,function(e,o){var s=ot.isFunction(t[e])&&t[e];r[o[1]](function(){var t=s&&s.apply(this,arguments);t&&ot.isFunction(t.promise)?t.promise().progress(i.notify).done(i.resolve).fail(i.reject):i[o[0]+"With"](this===n?i.promise():this,s?[t]:arguments)})}),t=null}).promise()},promise:function(t){return null!=t?ot.extend(t,n):n}},r={};return n.pipe=n.then,ot.each(e,function(t,o){var s=o[2],a=o[3];n[o[1]]=s.add,a&&s.add(function(){i=a},e[1^t][2].disable,e[2][2].lock),r[o[0]]=function(){return r[o[0]+"With"](this===r?n:this,arguments),this},r[o[0]+"With"]=s.fireWith}),n.promise(r),t&&t.call(r,r),r},when:function(t){var e,i,n,r=0,o=J.call(arguments),s=o.length,a=1!==s||t&&ot.isFunction(t.promise)?s:0,l=1===a?t:ot.Deferred(),h=function(t,i,n){return function(r){i[t]=this,n[t]=arguments.length>1?J.call(arguments):r,n===e?l.notifyWith(i,n):--a||l.resolveWith(i,n)}};if(s>1)for(e=new Array(s),i=new Array(s),n=new Array(s);r<s;r++)o[r]&&ot.isFunction(o[r].promise)?o[r].promise().progress(h(r,i,e)).done(h(r,n,o)).fail(l.reject):--a;return a||l.resolveWith(n,o),l.promise()}});var St;ot.fn.ready=function(t){return ot.ready.promise().done(t),this},ot.extend({isReady:!1,readyWait:1,holdReady:function(t){t?ot.readyWait++:ot.ready(!0)},ready:function(t){(t===!0?--ot.readyWait:ot.isReady)||(ot.isReady=!0,t!==!0&&--ot.readyWait>0||(St.resolveWith(V,[ot]),ot.fn.triggerHandler&&(ot(V).triggerHandler("ready"),ot(V).off("ready"))))}}),ot.ready.promise=function(e){return St||(St=ot.Deferred(),"complete"===V.readyState||"loading"!==V.readyState&&!V.documentElement.doScroll?t.setTimeout(ot.ready):(V.addEventListener("DOMContentLoaded",s),t.addEventListener("load",s))),St.promise(e)},ot.ready.promise();var Tt=function(t,e,i,n,r,o,s){var a=0,l=t.length,h=null==i;if("object"===ot.type(i)){r=!0;for(a in i)Tt(t,e,a,i[a],!0,o,s)}else if(void 0!==n&&(r=!0,ot.isFunction(n)||(s=!0),h&&(s?(e.call(t,n),e=null):(h=e,e=function(t,e,i){return h.call(ot(t),i)})),e))for(;a<l;a++)e(t[a],i,s?n:n.call(t[a],a,e(t[a],i)));return r?t:h?e.call(t):l?e(t[0],i):o},kt=function(t){return 1===t.nodeType||9===t.nodeType||!+t.nodeType};a.uid=1,a.prototype={register:function(t,e){var i=e||{};return t.nodeType?t[this.expando]=i:Object.defineProperty(t,this.expando,{value:i,writable:!0,configurable:!0}),t[this.expando]},cache:function(t){if(!kt(t))return{};var e=t[this.expando];return e||(e={},kt(t)&&(t.nodeType?t[this.expando]=e:Object.defineProperty(t,this.expando,{value:e,configurable:!0}))),e},set:function(t,e,i){var n,r=this.cache(t);if("string"==typeof e)r[e]=i;else for(n in e)r[n]=e[n];return r},get:function(t,e){return void 0===e?this.cache(t):t[this.expando]&&t[this.expando][e]},access:function(t,e,i){var n;return void 0===e||e&&"string"==typeof e&&void 0===i?(n=this.get(t,e),void 0!==n?n:this.get(t,ot.camelCase(e))):(this.set(t,e,i),void 0!==i?i:e)},remove:function(t,e){var i,n,r,o=t[this.expando];if(void 0!==o){if(void 0===e)this.register(t);else{ot.isArray(e)?n=e.concat(e.map(ot.camelCase)):(r=ot.camelCase(e),e in o?n=[e,r]:(n=r,n=n in o?[n]:n.match(wt)||[])),i=n.length;for(;i--;)delete o[n[i]]}(void 0===e||ot.isEmptyObject(o))&&(t.nodeType?t[this.expando]=void 0:delete t[this.expando])}},hasData:function(t){var e=t[this.expando];return void 0!==e&&!ot.isEmptyObject(e)}};var Ct=new a,_t=new a,At=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Dt=/[A-Z]/g;ot.extend({hasData:function(t){return _t.hasData(t)||Ct.hasData(t)},data:function(t,e,i){return _t.access(t,e,i)},removeData:function(t,e){_t.remove(t,e)},_data:function(t,e,i){return Ct.access(t,e,i)},_removeData:function(t,e){Ct.remove(t,e)}}),ot.fn.extend({data:function(t,e){var i,n,r,o=this[0],s=o&&o.attributes;if(void 0===t){if(this.length&&(r=_t.get(o),1===o.nodeType&&!Ct.get(o,"hasDataAttrs"))){for(i=s.length;i--;)s[i]&&(n=s[i].name,0===n.indexOf("data-")&&(n=ot.camelCase(n.slice(5)),l(o,n,r[n])));Ct.set(o,"hasDataAttrs",!0)}return r}return"object"==typeof t?this.each(function(){_t.set(this,t)}):Tt(this,function(e){var i,n;if(o&&void 0===e){if(i=_t.get(o,t)||_t.get(o,t.replace(Dt,"-$&").toLowerCase()),void 0!==i)return i;if(n=ot.camelCase(t),i=_t.get(o,n),void 0!==i)return i;if(i=l(o,n,void 0),void 0!==i)return i}else n=ot.camelCase(t),this.each(function(){var i=_t.get(this,n);_t.set(this,n,e),t.indexOf("-")>-1&&void 0!==i&&_t.set(this,t,e)})},null,e,arguments.length>1,null,!0)},removeData:function(t){return this.each(function(){_t.remove(this,t)})}}),ot.extend({queue:function(t,e,i){var n;if(t)return e=(e||"fx")+"queue",n=Ct.get(t,e),i&&(!n||ot.isArray(i)?n=Ct.access(t,e,ot.makeArray(i)):n.push(i)),n||[]},dequeue:function(t,e){e=e||"fx";var i=ot.queue(t,e),n=i.length,r=i.shift(),o=ot._queueHooks(t,e),s=function(){ot.dequeue(t,e)};"inprogress"===r&&(r=i.shift(),n--),r&&("fx"===e&&i.unshift("inprogress"),delete o.stop,r.call(t,s,o)),!n&&o&&o.empty.fire()},_queueHooks:function(t,e){var i=e+"queueHooks";return Ct.get(t,i)||Ct.access(t,i,{empty:ot.Callbacks("once memory").add(function(){Ct.remove(t,[e+"queue",i])})})}}),ot.fn.extend({queue:function(t,e){var i=2;return"string"!=typeof t&&(e=t,t="fx",i--),arguments.length<i?ot.queue(this[0],t):void 0===e?this:this.each(function(){var i=ot.queue(this,t,e);ot._queueHooks(this,t),"fx"===t&&"inprogress"!==i[0]&&ot.dequeue(this,t)})},dequeue:function(t){return this.each(function(){ot.dequeue(this,t)})},clearQueue:function(t){return this.queue(t||"fx",[])},promise:function(t,e){var i,n=1,r=ot.Deferred(),o=this,s=this.length,a=function(){--n||r.resolveWith(o,[o])};for("string"!=typeof t&&(e=t,t=void 0),t=t||"fx";s--;)i=Ct.get(o[s],t+"queueHooks"),i&&i.empty&&(n++,i.empty.add(a));return a(),r.promise(e)}});var Lt=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,Et=new RegExp("^(?:([+-])=|)("+Lt+")([a-z%]*)$","i"),Pt=["Top","Right","Bottom","Left"],Mt=function(t,e){return t=e||t,"none"===ot.css(t,"display")||!ot.contains(t.ownerDocument,t)},It=/^(?:checkbox|radio)$/i,Rt=/<([\w:-]+)/,Ot=/^$|\/(?:java|ecma)script/i,Bt={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};Bt.optgroup=Bt.option,Bt.tbody=Bt.tfoot=Bt.colgroup=Bt.caption=Bt.thead,Bt.th=Bt.td;var Ft=/<|&#?\w+;/;!function(){var t=V.createDocumentFragment(),e=t.appendChild(V.createElement("div")),i=V.createElement("input");i.setAttribute("type","radio"),i.setAttribute("checked","checked"),i.setAttribute("name","t"),e.appendChild(i),nt.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="<textarea>x</textarea>",nt.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var Nt=/^key/,jt=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,$t=/^([^.]*)(?:\.(.+)|)/;ot.event={global:{},add:function(t,e,i,n,r){var o,s,a,l,h,c,u,p,d,f,g,m=Ct.get(t);if(m)for(i.handler&&(o=i,i=o.handler,r=o.selector),i.guid||(i.guid=ot.guid++),(l=m.events)||(l=m.events={}),(s=m.handle)||(s=m.handle=function(e){return"undefined"!=typeof ot&&ot.event.triggered!==e.type?ot.event.dispatch.apply(t,arguments):void 0}),e=(e||"").match(wt)||[""],h=e.length;h--;)a=$t.exec(e[h])||[],d=g=a[1],f=(a[2]||"").split(".").sort(),d&&(u=ot.event.special[d]||{},d=(r?u.delegateType:u.bindType)||d,u=ot.event.special[d]||{},c=ot.extend({type:d,origType:g,data:n,handler:i,guid:i.guid,selector:r,needsContext:r&&ot.expr.match.needsContext.test(r),namespace:f.join(".")},o),(p=l[d])||(p=l[d]=[],p.delegateCount=0,u.setup&&u.setup.call(t,n,f,s)!==!1||t.addEventListener&&t.addEventListener(d,s)),u.add&&(u.add.call(t,c),c.handler.guid||(c.handler.guid=i.guid)),r?p.splice(p.delegateCount++,0,c):p.push(c),ot.event.global[d]=!0)},remove:function(t,e,i,n,r){var o,s,a,l,h,c,u,p,d,f,g,m=Ct.hasData(t)&&Ct.get(t);if(m&&(l=m.events)){for(e=(e||"").match(wt)||[""],h=e.length;h--;)if(a=$t.exec(e[h])||[],d=g=a[1],f=(a[2]||"").split(".").sort(),d){for(u=ot.event.special[d]||{},d=(n?u.delegateType:u.bindType)||d,p=l[d]||[],a=a[2]&&new RegExp("(^|\\.)"+f.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=o=p.length;o--;)c=p[o],!r&&g!==c.origType||i&&i.guid!==c.guid||a&&!a.test(c.namespace)||n&&n!==c.selector&&("**"!==n||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,u.remove&&u.remove.call(t,c));s&&!p.length&&(u.teardown&&u.teardown.call(t,f,m.handle)!==!1||ot.removeEvent(t,d,m.handle),delete l[d])}else for(d in l)ot.event.remove(t,d+e[h],i,n,!0);ot.isEmptyObject(l)&&Ct.remove(t,"handle events")}},dispatch:function(t){t=ot.event.fix(t);var e,i,n,r,o,s=[],a=J.call(arguments),l=(Ct.get(this,"events")||{})[t.type]||[],h=ot.event.special[t.type]||{};if(a[0]=t,t.delegateTarget=this,!h.preDispatch||h.preDispatch.call(this,t)!==!1){for(s=ot.event.handlers.call(this,t,l),e=0;(r=s[e++])&&!t.isPropagationStopped();)for(t.currentTarget=r.elem,i=0;(o=r.handlers[i++])&&!t.isImmediatePropagationStopped();)t.rnamespace&&!t.rnamespace.test(o.namespace)||(t.handleObj=o,t.data=o.data,n=((ot.event.special[o.origType]||{}).handle||o.handler).apply(r.elem,a),void 0!==n&&(t.result=n)===!1&&(t.preventDefault(),t.stopPropagation()));return h.postDispatch&&h.postDispatch.call(this,t),t.result}},handlers:function(t,e){var i,n,r,o,s=[],a=e.delegateCount,l=t.target;if(a&&l.nodeType&&("click"!==t.type||isNaN(t.button)||t.button<1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&(l.disabled!==!0||"click"!==t.type)){for(n=[],i=0;i<a;i++)o=e[i],r=o.selector+" ",void 0===n[r]&&(n[r]=o.needsContext?ot(r,this).index(l)>-1:ot.find(r,this,null,[l]).length),n[r]&&n.push(o);n.length&&s.push({elem:l,handlers:n})}return a<e.length&&s.push({elem:this,handlers:e.slice(a)}),s},props:"altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(t,e){return null==t.which&&(t.which=null!=e.charCode?e.charCode:e.keyCode),t}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(t,e){var i,n,r,o=e.button;return null==t.pageX&&null!=e.clientX&&(i=t.target.ownerDocument||V,n=i.documentElement,r=i.body,t.pageX=e.clientX+(n&&n.scrollLeft||r&&r.scrollLeft||0)-(n&&n.clientLeft||r&&r.clientLeft||0),t.pageY=e.clientY+(n&&n.scrollTop||r&&r.scrollTop||0)-(n&&n.clientTop||r&&r.clientTop||0)),t.which||void 0===o||(t.which=1&o?1:2&o?3:4&o?2:0),t}},fix:function(t){if(t[ot.expando])return t;var e,i,n,r=t.type,o=t,s=this.fixHooks[r];for(s||(this.fixHooks[r]=s=jt.test(r)?this.mouseHooks:Nt.test(r)?this.keyHooks:{}),n=s.props?this.props.concat(s.props):this.props,t=new ot.Event(o),e=n.length;e--;)i=n[e],t[i]=o[i];return t.target||(t.target=V),3===t.target.nodeType&&(t.target=t.target.parentNode),s.filter?s.filter(t,o):t},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==g()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===g()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&ot.nodeName(this,"input"))return this.click(),!1},_default:function(t){return ot.nodeName(t.target,"a")}},beforeunload:{postDispatch:function(t){void 0!==t.result&&t.originalEvent&&(t.originalEvent.returnValue=t.result)}}}},ot.removeEvent=function(t,e,i){t.removeEventListener&&t.removeEventListener(e,i)},ot.Event=function(t,e){return this instanceof ot.Event?(t&&t.type?(this.originalEvent=t,this.type=t.type,this.isDefaultPrevented=t.defaultPrevented||void 0===t.defaultPrevented&&t.returnValue===!1?d:f):this.type=t,e&&ot.extend(this,e),this.timeStamp=t&&t.timeStamp||ot.now(),void(this[ot.expando]=!0)):new ot.Event(t,e)},ot.Event.prototype={constructor:ot.Event,isDefaultPrevented:f,isPropagationStopped:f,isImmediatePropagationStopped:f,isSimulated:!1,preventDefault:function(){var t=this.originalEvent;this.isDefaultPrevented=d,t&&!this.isSimulated&&t.preventDefault()},stopPropagation:function(){var t=this.originalEvent;this.isPropagationStopped=d,t&&!this.isSimulated&&t.stopPropagation()},stopImmediatePropagation:function(){var t=this.originalEvent;this.isImmediatePropagationStopped=d,t&&!this.isSimulated&&t.stopImmediatePropagation(),this.stopPropagation()}},ot.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(t,e){ot.event.special[t]={delegateType:e,bindType:e,handle:function(t){var i,n=this,r=t.relatedTarget,o=t.handleObj;return r&&(r===n||ot.contains(n,r))||(t.type=o.origType,i=o.handler.apply(this,arguments),t.type=e),i}}}),ot.fn.extend({on:function(t,e,i,n){return m(this,t,e,i,n)},one:function(t,e,i,n){return m(this,t,e,i,n,1)},off:function(t,e,i){var n,r;if(t&&t.preventDefault&&t.handleObj)return n=t.handleObj,ot(t.delegateTarget).off(n.namespace?n.origType+"."+n.namespace:n.origType,n.selector,n.handler),this;if("object"==typeof t){for(r in t)this.off(r,e,t[r]);return this}return e!==!1&&"function"!=typeof e||(i=e,e=void 0),i===!1&&(i=f),this.each(function(){ot.event.remove(this,t,i,e)})}});var Ht=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,zt=/<script|<style|<link/i,Wt=/checked\s*(?:[^=]|=\s*.checked.)/i,Ut=/^true\/(.*)/,Xt=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;ot.extend({htmlPrefilter:function(t){return t.replace(Ht,"<$1></$2>")},clone:function(t,e,i){var n,r,o,s,a=t.cloneNode(!0),l=ot.contains(t.ownerDocument,t);if(!(nt.noCloneChecked||1!==t.nodeType&&11!==t.nodeType||ot.isXMLDoc(t)))for(s=c(a),o=c(t),n=0,r=o.length;n<r;n++)w(o[n],s[n]);if(e)if(i)for(o=o||c(t),s=s||c(a),n=0,r=o.length;n<r;n++)x(o[n],s[n]);else x(t,a);return s=c(a,"script"),s.length>0&&u(s,!l&&c(t,"script")),a},cleanData:function(t){for(var e,i,n,r=ot.event.special,o=0;void 0!==(i=t[o]);o++)if(kt(i)){if(e=i[Ct.expando]){if(e.events)for(n in e.events)r[n]?ot.event.remove(i,n):ot.removeEvent(i,n,e.handle);i[Ct.expando]=void 0}i[_t.expando]&&(i[_t.expando]=void 0)}}}),ot.fn.extend({domManip:S,detach:function(t){return T(this,t,!0)},remove:function(t){return T(this,t)},text:function(t){return Tt(this,function(t){return void 0===t?ot.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=t)})},null,t,arguments.length)},append:function(){return S(this,arguments,function(t){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var e=v(this,t);e.appendChild(t)}})},prepend:function(){return S(this,arguments,function(t){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var e=v(this,t);e.insertBefore(t,e.firstChild)}})},before:function(){return S(this,arguments,function(t){this.parentNode&&this.parentNode.insertBefore(t,this)})},after:function(){return S(this,arguments,function(t){this.parentNode&&this.parentNode.insertBefore(t,this.nextSibling)})},empty:function(){for(var t,e=0;null!=(t=this[e]);e++)1===t.nodeType&&(ot.cleanData(c(t,!1)),t.textContent="");return this},clone:function(t,e){return t=null!=t&&t,e=null==e?t:e,this.map(function(){return ot.clone(this,t,e)})},html:function(t){return Tt(this,function(t){var e=this[0]||{},i=0,n=this.length;if(void 0===t&&1===e.nodeType)return e.innerHTML;if("string"==typeof t&&!zt.test(t)&&!Bt[(Rt.exec(t)||["",""])[1].toLowerCase()]){t=ot.htmlPrefilter(t);try{for(;i<n;i++)e=this[i]||{},1===e.nodeType&&(ot.cleanData(c(e,!1)),e.innerHTML=t);e=0}catch(r){}}e&&this.empty().append(t)},null,t,arguments.length)},replaceWith:function(){var t=[];return S(this,arguments,function(e){var i=this.parentNode;ot.inArray(this,t)<0&&(ot.cleanData(c(this)),i&&i.replaceChild(e,this))},t)}}),ot.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(t,e){ot.fn[t]=function(t){for(var i,n=[],r=ot(t),o=r.length-1,s=0;s<=o;s++)i=s===o?this:this.clone(!0),ot(r[s])[e](i),Z.apply(n,i.get());return this.pushStack(n)}});var Yt,Gt={HTML:"block",BODY:"block"},qt=/^margin/,Vt=new RegExp("^("+Lt+")(?!px)[a-z%]+$","i"),Jt=function(e){var i=e.ownerDocument.defaultView;return i&&i.opener||(i=t),i.getComputedStyle(e)},Kt=function(t,e,i,n){var r,o,s={};for(o in e)s[o]=t.style[o],t.style[o]=e[o];r=i.apply(t,n||[]);for(o in e)t.style[o]=s[o];return r},Zt=V.documentElement;!function(){function e(){a.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",a.innerHTML="",Zt.appendChild(s);var e=t.getComputedStyle(a);i="1%"!==e.top,o="2px"===e.marginLeft,n="4px"===e.width,a.style.marginRight="50%",r="4px"===e.marginRight,Zt.removeChild(s)}var i,n,r,o,s=V.createElement("div"),a=V.createElement("div");a.style&&(a.style.backgroundClip="content-box",a.cloneNode(!0).style.backgroundClip="",nt.clearCloneStyle="content-box"===a.style.backgroundClip,s.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",s.appendChild(a),ot.extend(nt,{pixelPosition:function(){return e(),i},boxSizingReliable:function(){return null==n&&e(),n},pixelMarginRight:function(){return null==n&&e(),r},reliableMarginLeft:function(){return null==n&&e(),o},reliableMarginRight:function(){var e,i=a.appendChild(V.createElement("div"));return i.style.cssText=a.style.cssText="-webkit-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",i.style.marginRight=i.style.width="0",a.style.width="1px",Zt.appendChild(s),e=!parseFloat(t.getComputedStyle(i).marginRight),Zt.removeChild(s),a.removeChild(i),e}}))}();var Qt=/^(none|table(?!-c[ea]).+)/,te={position:"absolute",visibility:"hidden",display:"block"},ee={letterSpacing:"0",fontWeight:"400"},ie=["Webkit","O","Moz","ms"],ne=V.createElement("div").style;ot.extend({cssHooks:{opacity:{get:function(t,e){if(e){var i=_(t,"opacity");return""===i?"1":i}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(t,e,i,n){if(t&&3!==t.nodeType&&8!==t.nodeType&&t.style){var r,o,s,a=ot.camelCase(e),l=t.style;return e=ot.cssProps[a]||(ot.cssProps[a]=D(a)||a),s=ot.cssHooks[e]||ot.cssHooks[a],void 0===i?s&&"get"in s&&void 0!==(r=s.get(t,!1,n))?r:l[e]:(o=typeof i,"string"===o&&(r=Et.exec(i))&&r[1]&&(i=h(t,e,r),o="number"),null!=i&&i===i&&("number"===o&&(i+=r&&r[3]||(ot.cssNumber[a]?"":"px")),nt.clearCloneStyle||""!==i||0!==e.indexOf("background")||(l[e]="inherit"),s&&"set"in s&&void 0===(i=s.set(t,i,n))||(l[e]=i)),void 0)}},css:function(t,e,i,n){var r,o,s,a=ot.camelCase(e);return e=ot.cssProps[a]||(ot.cssProps[a]=D(a)||a),s=ot.cssHooks[e]||ot.cssHooks[a],s&&"get"in s&&(r=s.get(t,!0,i)),void 0===r&&(r=_(t,e,n)),
"normal"===r&&e in ee&&(r=ee[e]),""===i||i?(o=parseFloat(r),i===!0||isFinite(o)?o||0:r):r}}),ot.each(["height","width"],function(t,e){ot.cssHooks[e]={get:function(t,i,n){if(i)return Qt.test(ot.css(t,"display"))&&0===t.offsetWidth?Kt(t,te,function(){return P(t,e,n)}):P(t,e,n)},set:function(t,i,n){var r,o=n&&Jt(t),s=n&&E(t,e,n,"border-box"===ot.css(t,"boxSizing",!1,o),o);return s&&(r=Et.exec(i))&&"px"!==(r[3]||"px")&&(t.style[e]=i,i=ot.css(t,e)),L(t,i,s)}}}),ot.cssHooks.marginLeft=A(nt.reliableMarginLeft,function(t,e){if(e)return(parseFloat(_(t,"marginLeft"))||t.getBoundingClientRect().left-Kt(t,{marginLeft:0},function(){return t.getBoundingClientRect().left}))+"px"}),ot.cssHooks.marginRight=A(nt.reliableMarginRight,function(t,e){if(e)return Kt(t,{display:"inline-block"},_,[t,"marginRight"])}),ot.each({margin:"",padding:"",border:"Width"},function(t,e){ot.cssHooks[t+e]={expand:function(i){for(var n=0,r={},o="string"==typeof i?i.split(" "):[i];n<4;n++)r[t+Pt[n]+e]=o[n]||o[n-2]||o[0];return r}},qt.test(t)||(ot.cssHooks[t+e].set=L)}),ot.fn.extend({css:function(t,e){return Tt(this,function(t,e,i){var n,r,o={},s=0;if(ot.isArray(e)){for(n=Jt(t),r=e.length;s<r;s++)o[e[s]]=ot.css(t,e[s],!1,n);return o}return void 0!==i?ot.style(t,e,i):ot.css(t,e)},t,e,arguments.length>1)},show:function(){return M(this,!0)},hide:function(){return M(this)},toggle:function(t){return"boolean"==typeof t?t?this.show():this.hide():this.each(function(){Mt(this)?ot(this).show():ot(this).hide()})}}),ot.Tween=I,I.prototype={constructor:I,init:function(t,e,i,n,r,o){this.elem=t,this.prop=i,this.easing=r||ot.easing._default,this.options=e,this.start=this.now=this.cur(),this.end=n,this.unit=o||(ot.cssNumber[i]?"":"px")},cur:function(){var t=I.propHooks[this.prop];return t&&t.get?t.get(this):I.propHooks._default.get(this)},run:function(t){var e,i=I.propHooks[this.prop];return this.options.duration?this.pos=e=ot.easing[this.easing](t,this.options.duration*t,0,1,this.options.duration):this.pos=e=t,this.now=(this.end-this.start)*e+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),i&&i.set?i.set(this):I.propHooks._default.set(this),this}},I.prototype.init.prototype=I.prototype,I.propHooks={_default:{get:function(t){var e;return 1!==t.elem.nodeType||null!=t.elem[t.prop]&&null==t.elem.style[t.prop]?t.elem[t.prop]:(e=ot.css(t.elem,t.prop,""),e&&"auto"!==e?e:0)},set:function(t){ot.fx.step[t.prop]?ot.fx.step[t.prop](t):1!==t.elem.nodeType||null==t.elem.style[ot.cssProps[t.prop]]&&!ot.cssHooks[t.prop]?t.elem[t.prop]=t.now:ot.style(t.elem,t.prop,t.now+t.unit)}}},I.propHooks.scrollTop=I.propHooks.scrollLeft={set:function(t){t.elem.nodeType&&t.elem.parentNode&&(t.elem[t.prop]=t.now)}},ot.easing={linear:function(t){return t},swing:function(t){return.5-Math.cos(t*Math.PI)/2},_default:"swing"},ot.fx=I.prototype.init,ot.fx.step={};var re,oe,se=/^(?:toggle|show|hide)$/,ae=/queueHooks$/;ot.Animation=ot.extend(j,{tweeners:{"*":[function(t,e){var i=this.createTween(t,e);return h(i.elem,t,Et.exec(e),i),i}]},tweener:function(t,e){ot.isFunction(t)?(e=t,t=["*"]):t=t.match(wt);for(var i,n=0,r=t.length;n<r;n++)i=t[n],j.tweeners[i]=j.tweeners[i]||[],j.tweeners[i].unshift(e)},prefilters:[F],prefilter:function(t,e){e?j.prefilters.unshift(t):j.prefilters.push(t)}}),ot.speed=function(t,e,i){var n=t&&"object"==typeof t?ot.extend({},t):{complete:i||!i&&e||ot.isFunction(t)&&t,duration:t,easing:i&&e||e&&!ot.isFunction(e)&&e};return n.duration=ot.fx.off?0:"number"==typeof n.duration?n.duration:n.duration in ot.fx.speeds?ot.fx.speeds[n.duration]:ot.fx.speeds._default,null!=n.queue&&n.queue!==!0||(n.queue="fx"),n.old=n.complete,n.complete=function(){ot.isFunction(n.old)&&n.old.call(this),n.queue&&ot.dequeue(this,n.queue)},n},ot.fn.extend({fadeTo:function(t,e,i,n){return this.filter(Mt).css("opacity",0).show().end().animate({opacity:e},t,i,n)},animate:function(t,e,i,n){var r=ot.isEmptyObject(t),o=ot.speed(e,i,n),s=function(){var e=j(this,ot.extend({},t),o);(r||Ct.get(this,"finish"))&&e.stop(!0)};return s.finish=s,r||o.queue===!1?this.each(s):this.queue(o.queue,s)},stop:function(t,e,i){var n=function(t){var e=t.stop;delete t.stop,e(i)};return"string"!=typeof t&&(i=e,e=t,t=void 0),e&&t!==!1&&this.queue(t||"fx",[]),this.each(function(){var e=!0,r=null!=t&&t+"queueHooks",o=ot.timers,s=Ct.get(this);if(r)s[r]&&s[r].stop&&n(s[r]);else for(r in s)s[r]&&s[r].stop&&ae.test(r)&&n(s[r]);for(r=o.length;r--;)o[r].elem!==this||null!=t&&o[r].queue!==t||(o[r].anim.stop(i),e=!1,o.splice(r,1));!e&&i||ot.dequeue(this,t)})},finish:function(t){return t!==!1&&(t=t||"fx"),this.each(function(){var e,i=Ct.get(this),n=i[t+"queue"],r=i[t+"queueHooks"],o=ot.timers,s=n?n.length:0;for(i.finish=!0,ot.queue(this,t,[]),r&&r.stop&&r.stop.call(this,!0),e=o.length;e--;)o[e].elem===this&&o[e].queue===t&&(o[e].anim.stop(!0),o.splice(e,1));for(e=0;e<s;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete i.finish})}}),ot.each(["toggle","show","hide"],function(t,e){var i=ot.fn[e];ot.fn[e]=function(t,n,r){return null==t||"boolean"==typeof t?i.apply(this,arguments):this.animate(O(e,!0),t,n,r)}}),ot.each({slideDown:O("show"),slideUp:O("hide"),slideToggle:O("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(t,e){ot.fn[t]=function(t,i,n){return this.animate(e,t,i,n)}}),ot.timers=[],ot.fx.tick=function(){var t,e=0,i=ot.timers;for(re=ot.now();e<i.length;e++)t=i[e],t()||i[e]!==t||i.splice(e--,1);i.length||ot.fx.stop(),re=void 0},ot.fx.timer=function(t){ot.timers.push(t),t()?ot.fx.start():ot.timers.pop()},ot.fx.interval=13,ot.fx.start=function(){oe||(oe=t.setInterval(ot.fx.tick,ot.fx.interval))},ot.fx.stop=function(){t.clearInterval(oe),oe=null},ot.fx.speeds={slow:600,fast:200,_default:400},ot.fn.delay=function(e,i){return e=ot.fx?ot.fx.speeds[e]||e:e,i=i||"fx",this.queue(i,function(i,n){var r=t.setTimeout(i,e);n.stop=function(){t.clearTimeout(r)}})},function(){var t=V.createElement("input"),e=V.createElement("select"),i=e.appendChild(V.createElement("option"));t.type="checkbox",nt.checkOn=""!==t.value,nt.optSelected=i.selected,e.disabled=!0,nt.optDisabled=!i.disabled,t=V.createElement("input"),t.value="t",t.type="radio",nt.radioValue="t"===t.value}();var le,he=ot.expr.attrHandle;ot.fn.extend({attr:function(t,e){return Tt(this,ot.attr,t,e,arguments.length>1)},removeAttr:function(t){return this.each(function(){ot.removeAttr(this,t)})}}),ot.extend({attr:function(t,e,i){var n,r,o=t.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof t.getAttribute?ot.prop(t,e,i):(1===o&&ot.isXMLDoc(t)||(e=e.toLowerCase(),r=ot.attrHooks[e]||(ot.expr.match.bool.test(e)?le:void 0)),void 0!==i?null===i?void ot.removeAttr(t,e):r&&"set"in r&&void 0!==(n=r.set(t,i,e))?n:(t.setAttribute(e,i+""),i):r&&"get"in r&&null!==(n=r.get(t,e))?n:(n=ot.find.attr(t,e),null==n?void 0:n))},attrHooks:{type:{set:function(t,e){if(!nt.radioValue&&"radio"===e&&ot.nodeName(t,"input")){var i=t.value;return t.setAttribute("type",e),i&&(t.value=i),e}}}},removeAttr:function(t,e){var i,n,r=0,o=e&&e.match(wt);if(o&&1===t.nodeType)for(;i=o[r++];)n=ot.propFix[i]||i,ot.expr.match.bool.test(i)&&(t[n]=!1),t.removeAttribute(i)}}),le={set:function(t,e,i){return e===!1?ot.removeAttr(t,i):t.setAttribute(i,i),i}},ot.each(ot.expr.match.bool.source.match(/\w+/g),function(t,e){var i=he[e]||ot.find.attr;he[e]=function(t,e,n){var r,o;return n||(o=he[e],he[e]=r,r=null!=i(t,e,n)?e.toLowerCase():null,he[e]=o),r}});var ce=/^(?:input|select|textarea|button)$/i,ue=/^(?:a|area)$/i;ot.fn.extend({prop:function(t,e){return Tt(this,ot.prop,t,e,arguments.length>1)},removeProp:function(t){return this.each(function(){delete this[ot.propFix[t]||t]})}}),ot.extend({prop:function(t,e,i){var n,r,o=t.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&ot.isXMLDoc(t)||(e=ot.propFix[e]||e,r=ot.propHooks[e]),void 0!==i?r&&"set"in r&&void 0!==(n=r.set(t,i,e))?n:t[e]=i:r&&"get"in r&&null!==(n=r.get(t,e))?n:t[e]},propHooks:{tabIndex:{get:function(t){var e=ot.find.attr(t,"tabindex");return e?parseInt(e,10):ce.test(t.nodeName)||ue.test(t.nodeName)&&t.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),nt.optSelected||(ot.propHooks.selected={get:function(t){var e=t.parentNode;return e&&e.parentNode&&e.parentNode.selectedIndex,null},set:function(t){var e=t.parentNode;e&&(e.selectedIndex,e.parentNode&&e.parentNode.selectedIndex)}}),ot.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){ot.propFix[this.toLowerCase()]=this});var pe=/[\t\r\n\f]/g;ot.fn.extend({addClass:function(t){var e,i,n,r,o,s,a,l=0;if(ot.isFunction(t))return this.each(function(e){ot(this).addClass(t.call(this,e,$(this)))});if("string"==typeof t&&t)for(e=t.match(wt)||[];i=this[l++];)if(r=$(i),n=1===i.nodeType&&(" "+r+" ").replace(pe," ")){for(s=0;o=e[s++];)n.indexOf(" "+o+" ")<0&&(n+=o+" ");a=ot.trim(n),r!==a&&i.setAttribute("class",a)}return this},removeClass:function(t){var e,i,n,r,o,s,a,l=0;if(ot.isFunction(t))return this.each(function(e){ot(this).removeClass(t.call(this,e,$(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof t&&t)for(e=t.match(wt)||[];i=this[l++];)if(r=$(i),n=1===i.nodeType&&(" "+r+" ").replace(pe," ")){for(s=0;o=e[s++];)for(;n.indexOf(" "+o+" ")>-1;)n=n.replace(" "+o+" "," ");a=ot.trim(n),r!==a&&i.setAttribute("class",a)}return this},toggleClass:function(t,e){var i=typeof t;return"boolean"==typeof e&&"string"===i?e?this.addClass(t):this.removeClass(t):ot.isFunction(t)?this.each(function(i){ot(this).toggleClass(t.call(this,i,$(this),e),e)}):this.each(function(){var e,n,r,o;if("string"===i)for(n=0,r=ot(this),o=t.match(wt)||[];e=o[n++];)r.hasClass(e)?r.removeClass(e):r.addClass(e);else void 0!==t&&"boolean"!==i||(e=$(this),e&&Ct.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||t===!1?"":Ct.get(this,"__className__")||""))})},hasClass:function(t){var e,i,n=0;for(e=" "+t+" ";i=this[n++];)if(1===i.nodeType&&(" "+$(i)+" ").replace(pe," ").indexOf(e)>-1)return!0;return!1}});var de=/\r/g,fe=/[\x20\t\r\n\f]+/g;ot.fn.extend({val:function(t){var e,i,n,r=this[0];{if(arguments.length)return n=ot.isFunction(t),this.each(function(i){var r;1===this.nodeType&&(r=n?t.call(this,i,ot(this).val()):t,null==r?r="":"number"==typeof r?r+="":ot.isArray(r)&&(r=ot.map(r,function(t){return null==t?"":t+""})),e=ot.valHooks[this.type]||ot.valHooks[this.nodeName.toLowerCase()],e&&"set"in e&&void 0!==e.set(this,r,"value")||(this.value=r))});if(r)return e=ot.valHooks[r.type]||ot.valHooks[r.nodeName.toLowerCase()],e&&"get"in e&&void 0!==(i=e.get(r,"value"))?i:(i=r.value,"string"==typeof i?i.replace(de,""):null==i?"":i)}}}),ot.extend({valHooks:{option:{get:function(t){var e=ot.find.attr(t,"value");return null!=e?e:ot.trim(ot.text(t)).replace(fe," ")}},select:{get:function(t){for(var e,i,n=t.options,r=t.selectedIndex,o="select-one"===t.type||r<0,s=o?null:[],a=o?r+1:n.length,l=r<0?a:o?r:0;l<a;l++)if(i=n[l],(i.selected||l===r)&&(nt.optDisabled?!i.disabled:null===i.getAttribute("disabled"))&&(!i.parentNode.disabled||!ot.nodeName(i.parentNode,"optgroup"))){if(e=ot(i).val(),o)return e;s.push(e)}return s},set:function(t,e){for(var i,n,r=t.options,o=ot.makeArray(e),s=r.length;s--;)n=r[s],(n.selected=ot.inArray(ot.valHooks.option.get(n),o)>-1)&&(i=!0);return i||(t.selectedIndex=-1),o}}}}),ot.each(["radio","checkbox"],function(){ot.valHooks[this]={set:function(t,e){if(ot.isArray(e))return t.checked=ot.inArray(ot(t).val(),e)>-1}},nt.checkOn||(ot.valHooks[this].get=function(t){return null===t.getAttribute("value")?"on":t.value})});var ge=/^(?:focusinfocus|focusoutblur)$/;ot.extend(ot.event,{trigger:function(e,i,n,r){var o,s,a,l,h,c,u,p=[n||V],d=it.call(e,"type")?e.type:e,f=it.call(e,"namespace")?e.namespace.split("."):[];if(s=a=n=n||V,3!==n.nodeType&&8!==n.nodeType&&!ge.test(d+ot.event.triggered)&&(d.indexOf(".")>-1&&(f=d.split("."),d=f.shift(),f.sort()),h=d.indexOf(":")<0&&"on"+d,e=e[ot.expando]?e:new ot.Event(d,"object"==typeof e&&e),e.isTrigger=r?2:3,e.namespace=f.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+f.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),i=null==i?[e]:ot.makeArray(i,[e]),u=ot.event.special[d]||{},r||!u.trigger||u.trigger.apply(n,i)!==!1)){if(!r&&!u.noBubble&&!ot.isWindow(n)){for(l=u.delegateType||d,ge.test(l+d)||(s=s.parentNode);s;s=s.parentNode)p.push(s),a=s;a===(n.ownerDocument||V)&&p.push(a.defaultView||a.parentWindow||t)}for(o=0;(s=p[o++])&&!e.isPropagationStopped();)e.type=o>1?l:u.bindType||d,c=(Ct.get(s,"events")||{})[e.type]&&Ct.get(s,"handle"),c&&c.apply(s,i),c=h&&s[h],c&&c.apply&&kt(s)&&(e.result=c.apply(s,i),e.result===!1&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||u._default&&u._default.apply(p.pop(),i)!==!1||!kt(n)||h&&ot.isFunction(n[d])&&!ot.isWindow(n)&&(a=n[h],a&&(n[h]=null),ot.event.triggered=d,n[d](),ot.event.triggered=void 0,a&&(n[h]=a)),e.result}},simulate:function(t,e,i){var n=ot.extend(new ot.Event,i,{type:t,isSimulated:!0});ot.event.trigger(n,null,e)}}),ot.fn.extend({trigger:function(t,e){return this.each(function(){ot.event.trigger(t,e,this)})},triggerHandler:function(t,e){var i=this[0];if(i)return ot.event.trigger(t,e,i,!0)}}),ot.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(t,e){ot.fn[e]=function(t,i){return arguments.length>0?this.on(e,null,t,i):this.trigger(e)}}),ot.fn.extend({hover:function(t,e){return this.mouseenter(t).mouseleave(e||t)}}),nt.focusin="onfocusin"in t,nt.focusin||ot.each({focus:"focusin",blur:"focusout"},function(t,e){var i=function(t){ot.event.simulate(e,t.target,ot.event.fix(t))};ot.event.special[e]={setup:function(){var n=this.ownerDocument||this,r=Ct.access(n,e);r||n.addEventListener(t,i,!0),Ct.access(n,e,(r||0)+1)},teardown:function(){var n=this.ownerDocument||this,r=Ct.access(n,e)-1;r?Ct.access(n,e,r):(n.removeEventListener(t,i,!0),Ct.remove(n,e))}}});var me=t.location,ve=ot.now(),ye=/\?/;ot.parseJSON=function(t){return JSON.parse(t+"")},ot.parseXML=function(e){var i;if(!e||"string"!=typeof e)return null;try{i=(new t.DOMParser).parseFromString(e,"text/xml")}catch(n){i=void 0}return i&&!i.getElementsByTagName("parsererror").length||ot.error("Invalid XML: "+e),i};var be=/#.*$/,xe=/([?&])_=[^&]*/,we=/^(.*?):[ \t]*([^\r\n]*)$/gm,Se=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Te=/^(?:GET|HEAD)$/,ke=/^\/\//,Ce={},_e={},Ae="*/".concat("*"),De=V.createElement("a");De.href=me.href,ot.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:me.href,type:"GET",isLocal:Se.test(me.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Ae,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":ot.parseJSON,"text xml":ot.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(t,e){return e?W(W(t,ot.ajaxSettings),e):W(ot.ajaxSettings,t)},ajaxPrefilter:H(Ce),ajaxTransport:H(_e),ajax:function(e,i){function n(e,i,n,a){var h,u,y,b,w,T=i;2!==x&&(x=2,l&&t.clearTimeout(l),r=void 0,s=a||"",S.readyState=e>0?4:0,h=e>=200&&e<300||304===e,n&&(b=U(p,S,n)),b=X(p,b,S,h),h?(p.ifModified&&(w=S.getResponseHeader("Last-Modified"),w&&(ot.lastModified[o]=w),w=S.getResponseHeader("etag"),w&&(ot.etag[o]=w)),204===e||"HEAD"===p.type?T="nocontent":304===e?T="notmodified":(T=b.state,u=b.data,y=b.error,h=!y)):(y=T,!e&&T||(T="error",e<0&&(e=0))),S.status=e,S.statusText=(i||T)+"",h?g.resolveWith(d,[u,T,S]):g.rejectWith(d,[S,T,y]),S.statusCode(v),v=void 0,c&&f.trigger(h?"ajaxSuccess":"ajaxError",[S,p,h?u:y]),m.fireWith(d,[S,T]),c&&(f.trigger("ajaxComplete",[S,p]),--ot.active||ot.event.trigger("ajaxStop")))}"object"==typeof e&&(i=e,e=void 0),i=i||{};var r,o,s,a,l,h,c,u,p=ot.ajaxSetup({},i),d=p.context||p,f=p.context&&(d.nodeType||d.jquery)?ot(d):ot.event,g=ot.Deferred(),m=ot.Callbacks("once memory"),v=p.statusCode||{},y={},b={},x=0,w="canceled",S={readyState:0,getResponseHeader:function(t){var e;if(2===x){if(!a)for(a={};e=we.exec(s);)a[e[1].toLowerCase()]=e[2];e=a[t.toLowerCase()]}return null==e?null:e},getAllResponseHeaders:function(){return 2===x?s:null},setRequestHeader:function(t,e){var i=t.toLowerCase();return x||(t=b[i]=b[i]||t,y[t]=e),this},overrideMimeType:function(t){return x||(p.mimeType=t),this},statusCode:function(t){var e;if(t)if(x<2)for(e in t)v[e]=[v[e],t[e]];else S.always(t[S.status]);return this},abort:function(t){var e=t||w;return r&&r.abort(e),n(0,e),this}};if(g.promise(S).complete=m.add,S.success=S.done,S.error=S.fail,p.url=((e||p.url||me.href)+"").replace(be,"").replace(ke,me.protocol+"//"),p.type=i.method||i.type||p.method||p.type,p.dataTypes=ot.trim(p.dataType||"*").toLowerCase().match(wt)||[""],null==p.crossDomain){h=V.createElement("a");try{h.href=p.url,h.href=h.href,p.crossDomain=De.protocol+"//"+De.host!=h.protocol+"//"+h.host}catch(T){p.crossDomain=!0}}if(p.data&&p.processData&&"string"!=typeof p.data&&(p.data=ot.param(p.data,p.traditional)),z(Ce,p,i,S),2===x)return S;c=ot.event&&p.global,c&&0===ot.active++&&ot.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Te.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(ye.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=xe.test(o)?o.replace(xe,"$1_="+ve++):o+(ye.test(o)?"&":"?")+"_="+ve++)),p.ifModified&&(ot.lastModified[o]&&S.setRequestHeader("If-Modified-Since",ot.lastModified[o]),ot.etag[o]&&S.setRequestHeader("If-None-Match",ot.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||i.contentType)&&S.setRequestHeader("Content-Type",p.contentType),S.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Ae+"; q=0.01":""):p.accepts["*"]);for(u in p.headers)S.setRequestHeader(u,p.headers[u]);if(p.beforeSend&&(p.beforeSend.call(d,S,p)===!1||2===x))return S.abort();w="abort";for(u in{success:1,error:1,complete:1})S[u](p[u]);if(r=z(_e,p,i,S)){if(S.readyState=1,c&&f.trigger("ajaxSend",[S,p]),2===x)return S;p.async&&p.timeout>0&&(l=t.setTimeout(function(){S.abort("timeout")},p.timeout));try{x=1,r.send(y,n)}catch(T){if(!(x<2))throw T;n(-1,T)}}else n(-1,"No Transport");return S},getJSON:function(t,e,i){return ot.get(t,e,i,"json")},getScript:function(t,e){return ot.get(t,void 0,e,"script")}}),ot.each(["get","post"],function(t,e){ot[e]=function(t,i,n,r){return ot.isFunction(i)&&(r=r||n,n=i,i=void 0),ot.ajax(ot.extend({url:t,type:e,dataType:r,data:i,success:n},ot.isPlainObject(t)&&t))}}),ot._evalUrl=function(t){return ot.ajax({url:t,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},ot.fn.extend({wrapAll:function(t){var e;return ot.isFunction(t)?this.each(function(e){ot(this).wrapAll(t.call(this,e))}):(this[0]&&(e=ot(t,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&e.insertBefore(this[0]),e.map(function(){for(var t=this;t.firstElementChild;)t=t.firstElementChild;return t}).append(this)),this)},wrapInner:function(t){return ot.isFunction(t)?this.each(function(e){ot(this).wrapInner(t.call(this,e))}):this.each(function(){var e=ot(this),i=e.contents();i.length?i.wrapAll(t):e.append(t)})},wrap:function(t){var e=ot.isFunction(t);return this.each(function(i){ot(this).wrapAll(e?t.call(this,i):t)})},unwrap:function(){return this.parent().each(function(){ot.nodeName(this,"body")||ot(this).replaceWith(this.childNodes)}).end()}}),ot.expr.filters.hidden=function(t){return!ot.expr.filters.visible(t)},ot.expr.filters.visible=function(t){return t.offsetWidth>0||t.offsetHeight>0||t.getClientRects().length>0};var Le=/%20/g,Ee=/\[\]$/,Pe=/\r?\n/g,Me=/^(?:submit|button|image|reset|file)$/i,Ie=/^(?:input|select|textarea|keygen)/i;ot.param=function(t,e){var i,n=[],r=function(t,e){e=ot.isFunction(e)?e():null==e?"":e,n[n.length]=encodeURIComponent(t)+"="+encodeURIComponent(e)};if(void 0===e&&(e=ot.ajaxSettings&&ot.ajaxSettings.traditional),ot.isArray(t)||t.jquery&&!ot.isPlainObject(t))ot.each(t,function(){r(this.name,this.value)});else for(i in t)Y(i,t[i],e,r);return n.join("&").replace(Le,"+")},ot.fn.extend({serialize:function(){return ot.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var t=ot.prop(this,"elements");return t?ot.makeArray(t):this}).filter(function(){var t=this.type;return this.name&&!ot(this).is(":disabled")&&Ie.test(this.nodeName)&&!Me.test(t)&&(this.checked||!It.test(t))}).map(function(t,e){var i=ot(this).val();return null==i?null:ot.isArray(i)?ot.map(i,function(t){return{name:e.name,value:t.replace(Pe,"\r\n")}}):{name:e.name,value:i.replace(Pe,"\r\n")}}).get()}}),ot.ajaxSettings.xhr=function(){try{return new t.XMLHttpRequest}catch(e){}};var Re={0:200,1223:204},Oe=ot.ajaxSettings.xhr();nt.cors=!!Oe&&"withCredentials"in Oe,nt.ajax=Oe=!!Oe,ot.ajaxTransport(function(e){var i,n;if(nt.cors||Oe&&!e.crossDomain)return{send:function(r,o){var s,a=e.xhr();if(a.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(s in e.xhrFields)a[s]=e.xhrFields[s];e.mimeType&&a.overrideMimeType&&a.overrideMimeType(e.mimeType),e.crossDomain||r["X-Requested-With"]||(r["X-Requested-With"]="XMLHttpRequest");for(s in r)a.setRequestHeader(s,r[s]);i=function(t){return function(){i&&(i=n=a.onload=a.onerror=a.onabort=a.onreadystatechange=null,"abort"===t?a.abort():"error"===t?"number"!=typeof a.status?o(0,"error"):o(a.status,a.statusText):o(Re[a.status]||a.status,a.statusText,"text"!==(a.responseType||"text")||"string"!=typeof a.responseText?{binary:a.response}:{text:a.responseText},a.getAllResponseHeaders()))}},a.onload=i(),n=a.onerror=i("error"),void 0!==a.onabort?a.onabort=n:a.onreadystatechange=function(){4===a.readyState&&t.setTimeout(function(){i&&n()})},i=i("abort");try{a.send(e.hasContent&&e.data||null)}catch(l){if(i)throw l}},abort:function(){i&&i()}}}),ot.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(t){return ot.globalEval(t),t}}}),ot.ajaxPrefilter("script",function(t){void 0===t.cache&&(t.cache=!1),t.crossDomain&&(t.type="GET")}),ot.ajaxTransport("script",function(t){if(t.crossDomain){var e,i;return{send:function(n,r){e=ot("<script>").prop({charset:t.scriptCharset,src:t.url}).on("load error",i=function(t){e.remove(),i=null,t&&r("error"===t.type?404:200,t.type)}),V.head.appendChild(e[0])},abort:function(){i&&i()}}}});var Be=[],Fe=/(=)\?(?=&|$)|\?\?/;ot.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var t=Be.pop()||ot.expando+"_"+ve++;return this[t]=!0,t}}),ot.ajaxPrefilter("json jsonp",function(e,i,n){var r,o,s,a=e.jsonp!==!1&&(Fe.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Fe.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=ot.isFunction(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Fe,"$1"+r):e.jsonp!==!1&&(e.url+=(ye.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return s||ot.error(r+" was not called"),s[0]},e.dataTypes[0]="json",o=t[r],t[r]=function(){s=arguments},n.always(function(){void 0===o?ot(t).removeProp(r):t[r]=o,e[r]&&(e.jsonpCallback=i.jsonpCallback,Be.push(r)),s&&ot.isFunction(o)&&o(s[0]),s=o=void 0}),"script"}),ot.parseHTML=function(t,e,i){if(!t||"string"!=typeof t)return null;"boolean"==typeof e&&(i=e,e=!1),e=e||V;var n=ft.exec(t),r=!i&&[];return n?[e.createElement(n[1])]:(n=p([t],e,r),r&&r.length&&ot(r).remove(),ot.merge([],n.childNodes))};var Ne=ot.fn.load;ot.fn.load=function(t,e,i){if("string"!=typeof t&&Ne)return Ne.apply(this,arguments);var n,r,o,s=this,a=t.indexOf(" ");return a>-1&&(n=ot.trim(t.slice(a)),t=t.slice(0,a)),ot.isFunction(e)?(i=e,e=void 0):e&&"object"==typeof e&&(r="POST"),s.length>0&&ot.ajax({url:t,type:r||"GET",dataType:"html",data:e}).done(function(t){o=arguments,s.html(n?ot("<div>").append(ot.parseHTML(t)).find(n):t)}).always(i&&function(t,e){s.each(function(){i.apply(this,o||[t.responseText,e,t])})}),this},ot.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(t,e){ot.fn[e]=function(t){return this.on(e,t)}}),ot.expr.filters.animated=function(t){return ot.grep(ot.timers,function(e){return t===e.elem}).length},ot.offset={setOffset:function(t,e,i){var n,r,o,s,a,l,h,c=ot.css(t,"position"),u=ot(t),p={};"static"===c&&(t.style.position="relative"),a=u.offset(),o=ot.css(t,"top"),l=ot.css(t,"left"),h=("absolute"===c||"fixed"===c)&&(o+l).indexOf("auto")>-1,h?(n=u.position(),s=n.top,r=n.left):(s=parseFloat(o)||0,r=parseFloat(l)||0),ot.isFunction(e)&&(e=e.call(t,i,ot.extend({},a))),null!=e.top&&(p.top=e.top-a.top+s),null!=e.left&&(p.left=e.left-a.left+r),"using"in e?e.using.call(t,p):u.css(p)}},ot.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ot.offset.setOffset(this,t,e)});var e,i,n=this[0],r={top:0,left:0},o=n&&n.ownerDocument;if(o)return e=o.documentElement,ot.contains(e,n)?(r=n.getBoundingClientRect(),i=G(o),{top:r.top+i.pageYOffset-e.clientTop,left:r.left+i.pageXOffset-e.clientLeft}):r},position:function(){if(this[0]){var t,e,i=this[0],n={top:0,left:0};return"fixed"===ot.css(i,"position")?e=i.getBoundingClientRect():(t=this.offsetParent(),e=this.offset(),ot.nodeName(t[0],"html")||(n=t.offset()),n.top+=ot.css(t[0],"borderTopWidth",!0),n.left+=ot.css(t[0],"borderLeftWidth",!0)),{top:e.top-n.top-ot.css(i,"marginTop",!0),left:e.left-n.left-ot.css(i,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var t=this.offsetParent;t&&"static"===ot.css(t,"position");)t=t.offsetParent;return t||Zt})}}),ot.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,e){var i="pageYOffset"===e;ot.fn[t]=function(n){return Tt(this,function(t,n,r){var o=G(t);return void 0===r?o?o[e]:t[n]:void(o?o.scrollTo(i?o.pageXOffset:r,i?r:o.pageYOffset):t[n]=r)},t,n,arguments.length)}}),ot.each(["top","left"],function(t,e){ot.cssHooks[e]=A(nt.pixelPosition,function(t,i){if(i)return i=_(t,e),Vt.test(i)?ot(t).position()[e]+"px":i})}),ot.each({Height:"height",Width:"width"},function(t,e){ot.each({padding:"inner"+t,content:e,"":"outer"+t},function(i,n){ot.fn[n]=function(n,r){var o=arguments.length&&(i||"boolean"!=typeof n),s=i||(n===!0||r===!0?"margin":"border");return Tt(this,function(e,i,n){var r;return ot.isWindow(e)?e.document.documentElement["client"+t]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+t],r["scroll"+t],e.body["offset"+t],r["offset"+t],r["client"+t])):void 0===n?ot.css(e,i,s):ot.style(e,i,n,s)},e,o?n:void 0,o,null)}})}),ot.fn.extend({bind:function(t,e,i){return this.on(t,null,e,i)},unbind:function(t,e){return this.off(t,null,e)},delegate:function(t,e,i,n){return this.on(e,t,i,n)},undelegate:function(t,e,i){return 1===arguments.length?this.off(t,"**"):this.off(e,t||"**",i)},size:function(){return this.length}}),ot.fn.andSelf=ot.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return ot});var je=t.jQuery,$e=t.$;return ot.noConflict=function(e){return t.$===ot&&(t.$=$e),e&&t.jQuery===ot&&(t.jQuery=je),ot},e||(t.jQuery=t.$=ot),ot}),"undefined"==typeof jQuery)throw new Error("AdminLTE requires jQuery");if($.AdminLTE={},$.AdminLTE.options={navbarMenuSlimscroll:!0,navbarMenuSlimscrollWidth:"3px",navbarMenuHeight:"200px",animationSpeed:500,sidebarToggleSelector:"[data-toggle='offcanvas']",sidebarPushMenu:!0,sidebarSlimScroll:!0,sidebarExpandOnHover:!1,enableBoxRefresh:!0,enableBSToppltip:!0,BSTooltipSelector:"[data-toggle='tooltip']",enableFastclick:!1,enableControlSidebar:!0,controlSidebarOptions:{toggleBtnSelector:"[data-toggle='control-sidebar']",selector:".control-sidebar",slide:!0},enableBoxWidget:!0,boxWidgetOptions:{boxWidgetIcons:{collapse:"fa-minus",open:"fa-plus",remove:"fa-times"},boxWidgetSelectors:{remove:'[data-widget="remove"]',collapse:'[data-widget="collapse"]'}},directChat:{enable:!0,contactToggleSelector:'[data-widget="chat-pane-toggle"]'},colors:{lightBlue:"#3c8dbc",red:"#f56954",green:"#00a65a",aqua:"#00c0ef",yellow:"#f39c12",blue:"#0073b7",navy:"#001F3F",teal:"#39CCCC",olive:"#3D9970",lime:"#01FF70",orange:"#FF851B",fuchsia:"#F012BE",purple:"#8E24AA",maroon:"#D81B60",black:"#222222",gray:"#d2d6de"},screenSizes:{xs:480,sm:768,md:992,lg:1200}},$(function(){"use strict";$("body").removeClass("hold-transition"),"undefined"!=typeof AdminLTEOptions&&$.extend(!0,$.AdminLTE.options,AdminLTEOptions);var t=$.AdminLTE.options;_init(),$.AdminLTE.layout.activate(),$.AdminLTE.tree(".sidebar"),t.enableControlSidebar&&$.AdminLTE.controlSidebar.activate(),t.navbarMenuSlimscroll&&"undefined"!=typeof $.fn.slimscroll&&$(".navbar .menu").slimscroll({height:t.navbarMenuHeight,alwaysVisible:!1,size:t.navbarMenuSlimscrollWidth}).css("width","100%"),t.sidebarPushMenu&&$.AdminLTE.pushMenu.activate(t.sidebarToggleSelector),t.enableBSToppltip&&$("body").tooltip({selector:t.BSTooltipSelector}),t.enableBoxWidget&&$.AdminLTE.boxWidget.activate(),t.enableFastclick&&"undefined"!=typeof FastClick&&FastClick.attach(document.body),t.directChat.enable&&$(document).on("click",t.directChat.contactToggleSelector,function(){var t=$(this).parents(".direct-chat").first();t.toggleClass("direct-chat-contacts-open")}),$('.btn-group[data-toggle="btn-toggle"]').each(function(){var t=$(this);$(this).find(".btn").on("click",function(e){t.find(".btn.active").removeClass("active"),$(this).addClass("active"),e.preventDefault()})})}),function(t){"use strict";t.fn.boxRefresh=function(e){function i(t){t.append(o),r.onLoadStart.call(t)}function n(t){t.find(o).remove(),r.onLoadDone.call(t)}var r=t.extend({trigger:".refresh-btn",source:"",onLoadStart:function(t){return t},onLoadDone:function(t){return t}},e),o=t('<div class="overlay"><div class="fa fa-refresh fa-spin"></div></div>');return this.each(function(){if(""===r.source)return void(window.console&&window.console.log("Please specify a source first - boxRefresh()"));var e=t(this),o=e.find(r.trigger).first();o.on("click",function(t){t.preventDefault(),i(e),e.find(".box-body").load(r.source,function(){n(e)})})})}}(jQuery),function(t){"use strict";t.fn.activateBox=function(){t.AdminLTE.boxWidget.activate(this)},t.fn.toggleBox=function(){var e=t(t.AdminLTE.boxWidget.selectors.collapse,this);t.AdminLTE.boxWidget.collapse(e)},t.fn.removeBox=function(){var e=t(t.AdminLTE.boxWidget.selectors.remove,this);t.AdminLTE.boxWidget.remove(e)}}(jQuery),function(t){"use strict";t.fn.todolist=function(e){var i=t.extend({onCheck:function(t){return t},onUncheck:function(t){return t}},e);return this.each(function(){"undefined"!=typeof t.fn.iCheck?(t("input",this).on("ifChecked",function(){var e=t(this).parents("li").first();e.toggleClass("done"),i.onCheck.call(e)}),t("input",this).on("ifUnchecked",function(){var e=t(this).parents("li").first();e.toggleClass("done"),i.onUncheck.call(e)})):t("input",this).on("change",function(){var e=t(this).parents("li").first();e.toggleClass("done"),t("input",e).is(":checked")?i.onCheck.call(e):i.onUncheck.call(e)})})}}(jQuery),function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],function(e){return t(e,window,document)}):"object"==typeof exports?module.exports=function(e,i){return e||(e=window),i||(i="undefined"!=typeof window?require("jquery"):require("jquery")(e)),t(i,e,e.document)}:t(jQuery,window,document)}(function(t,e,i,n){"use strict";function r(e){var i,n,o="a aa ai ao as b fn i m o s ",s={};t.each(e,function(t,a){i=t.match(/^([^A-Z]+?)([A-Z])/),i&&o.indexOf(i[1]+" ")!==-1&&(n=t.replace(i[0],i[2].toLowerCase()),s[n]=t,"o"===i[1]&&r(e[t]))}),e._hungarianMap=s}function o(e,i,s){e._hungarianMap||r(e);var a;t.each(i,function(r,l){
a=e._hungarianMap[r],a===n||!s&&i[a]!==n||("o"===a.charAt(0)?(i[a]||(i[a]={}),t.extend(!0,i[a],i[r]),o(e[a],i[a],s)):i[a]=i[r])})}function s(t){var e=qt.defaults.oLanguage,i=t.sZeroRecords;!t.sEmptyTable&&i&&"No data available in table"===e.sEmptyTable&&It(t,t,"sZeroRecords","sEmptyTable"),!t.sLoadingRecords&&i&&"Loading..."===e.sLoadingRecords&&It(t,t,"sZeroRecords","sLoadingRecords"),t.sInfoThousands&&(t.sThousands=t.sInfoThousands);var n=t.sDecimal;n&&zt(n)}function a(t){fe(t,"ordering","bSort"),fe(t,"orderMulti","bSortMulti"),fe(t,"orderClasses","bSortClasses"),fe(t,"orderCellsTop","bSortCellsTop"),fe(t,"order","aaSorting"),fe(t,"orderFixed","aaSortingFixed"),fe(t,"paging","bPaginate"),fe(t,"pagingType","sPaginationType"),fe(t,"pageLength","iDisplayLength"),fe(t,"searching","bFilter"),"boolean"==typeof t.sScrollX&&(t.sScrollX=t.sScrollX?"100%":""),"boolean"==typeof t.scrollX&&(t.scrollX=t.scrollX?"100%":"");var e=t.aoSearchCols;if(e)for(var i=0,n=e.length;i<n;i++)e[i]&&o(qt.models.oSearch,e[i])}function l(e){fe(e,"orderable","bSortable"),fe(e,"orderData","aDataSort"),fe(e,"orderSequence","asSorting"),fe(e,"orderDataType","sortDataType");var i=e.aDataSort;i&&!t.isArray(i)&&(e.aDataSort=[i])}function h(e){if(!qt.__browser){var i={};qt.__browser=i;var n=t("<div/>").css({position:"fixed",top:0,left:0,height:1,width:1,overflow:"hidden"}).append(t("<div/>").css({position:"absolute",top:1,left:1,width:100,overflow:"scroll"}).append(t("<div/>").css({width:"100%",height:10}))).appendTo("body"),r=n.children(),o=r.children();i.barWidth=r[0].offsetWidth-r[0].clientWidth,i.bScrollOversize=100===o[0].offsetWidth&&100!==r[0].clientWidth,i.bScrollbarLeft=1!==Math.round(o.offset().left),i.bBounding=!!n[0].getBoundingClientRect().width,n.remove()}t.extend(e.oBrowser,qt.__browser),e.oScroll.iBarWidth=qt.__browser.barWidth}function c(t,e,i,r,o,s){var a,l=r,h=!1;for(i!==n&&(a=i,h=!0);l!==o;)t.hasOwnProperty(l)&&(a=h?e(a,t[l],l,t):t[l],h=!0,l+=s);return a}function u(e,n){var r=qt.defaults.column,o=e.aoColumns.length,s=t.extend({},qt.models.oColumn,r,{nTh:n?n:i.createElement("th"),sTitle:r.sTitle?r.sTitle:n?n.innerHTML:"",aDataSort:r.aDataSort?r.aDataSort:[o],mData:r.mData?r.mData:o,idx:o});e.aoColumns.push(s);var a=e.aoPreSearchCols;a[o]=t.extend({},qt.models.oSearch,a[o]),p(e,o,t(n).data())}function p(e,i,r){var s=e.aoColumns[i],a=e.oClasses,h=t(s.nTh);if(!s.sWidthOrig){s.sWidthOrig=h.attr("width")||null;var c=(h.attr("style")||"").match(/width:\s*(\d+[pxem%]+)/);c&&(s.sWidthOrig=c[1])}r!==n&&null!==r&&(l(r),o(qt.defaults.column,r),r.mDataProp===n||r.mData||(r.mData=r.mDataProp),r.sType&&(s._sManualType=r.sType),r.className&&!r.sClass&&(r.sClass=r.className),t.extend(s,r),It(s,r,"sWidth","sWidthOrig"),r.iDataSort!==n&&(s.aDataSort=[r.iDataSort]),It(s,r,"aDataSort"));var u=s.mData,p=A(u),d=s.mRender?A(s.mRender):null,f=function(t){return"string"==typeof t&&t.indexOf("@")!==-1};s._bAttrSrc=t.isPlainObject(u)&&(f(u.sort)||f(u.type)||f(u.filter)),s._setter=null,s.fnGetData=function(t,e,i){var r=p(t,e,n,i);return d&&e?d(r,e,t,i):r},s.fnSetData=function(t,e,i){return D(u)(t,e,i)},"number"!=typeof u&&(e._rowReadObject=!0),e.oFeatures.bSort||(s.bSortable=!1,h.addClass(a.sSortableNone));var g=t.inArray("asc",s.asSorting)!==-1,m=t.inArray("desc",s.asSorting)!==-1;s.bSortable&&(g||m)?g&&!m?(s.sSortingClass=a.sSortableAsc,s.sSortingClassJUI=a.sSortJUIAscAllowed):!g&&m?(s.sSortingClass=a.sSortableDesc,s.sSortingClassJUI=a.sSortJUIDescAllowed):(s.sSortingClass=a.sSortable,s.sSortingClassJUI=a.sSortJUI):(s.sSortingClass=a.sSortableNone,s.sSortingClassJUI="")}function d(t){if(t.oFeatures.bAutoWidth!==!1){var e=t.aoColumns;vt(t);for(var i=0,n=e.length;i<n;i++)e[i].nTh.style.width=e[i].sWidth}var r=t.oScroll;""===r.sY&&""===r.sX||gt(t),Ft(t,null,"column-sizing",[t])}function f(t,e){var i=v(t,"bVisible");return"number"==typeof i[e]?i[e]:null}function g(e,i){var n=v(e,"bVisible"),r=t.inArray(i,n);return r!==-1?r:null}function m(e){var i=0;return t.each(e.aoColumns,function(e,n){n.bVisible&&"none"!==t(n.nTh).css("display")&&i++}),i}function v(e,i){var n=[];return t.map(e.aoColumns,function(t,e){t[i]&&n.push(e)}),n}function y(t){var e,i,r,o,s,a,l,h,c,u=t.aoColumns,p=t.aoData,d=qt.ext.type.detect;for(e=0,i=u.length;e<i;e++)if(l=u[e],c=[],!l.sType&&l._sManualType)l.sType=l._sManualType;else if(!l.sType){for(r=0,o=d.length;r<o;r++){for(s=0,a=p.length;s<a&&(c[s]===n&&(c[s]=k(t,s,e,"type")),h=d[r](c[s],t),h||r===d.length-1)&&"html"!==h;s++);if(h){l.sType=h;break}}l.sType||(l.sType="string")}}function b(e,i,r,o){var s,a,l,h,c,p,d,f=e.aoColumns;if(i)for(s=i.length-1;s>=0;s--){d=i[s];var g=d.targets!==n?d.targets:d.aTargets;for(t.isArray(g)||(g=[g]),l=0,h=g.length;l<h;l++)if("number"==typeof g[l]&&g[l]>=0){for(;f.length<=g[l];)u(e);o(g[l],d)}else if("number"==typeof g[l]&&g[l]<0)o(f.length+g[l],d);else if("string"==typeof g[l])for(c=0,p=f.length;c<p;c++)("_all"==g[l]||t(f[c].nTh).hasClass(g[l]))&&o(c,d)}if(r)for(s=0,a=r.length;s<a;s++)o(s,r[s])}function x(e,i,r,o){var s=e.aoData.length,a=t.extend(!0,{},qt.models.oRow,{src:r?"dom":"data",idx:s});a._aData=i,e.aoData.push(a);for(var l=e.aoColumns,h=0,c=l.length;h<c;h++)l[h].sType=null;e.aiDisplayMaster.push(s);var u=e.rowIdFn(i);return u!==n&&(e.aIds[u]=a),!r&&e.oFeatures.bDeferRender||R(e,s,r,o),s}function w(e,i){var n;return i instanceof t||(i=t(i)),i.map(function(t,i){return n=I(e,i),x(e,n.data,i,n.cells)})}function S(t,e){return e._DT_RowIndex!==n?e._DT_RowIndex:null}function T(e,i,n){return t.inArray(n,e.aoData[i].anCells)}function k(t,e,i,r){var o=t.iDraw,s=t.aoColumns[i],a=t.aoData[e]._aData,l=s.sDefaultContent,h=s.fnGetData(a,r,{settings:t,row:e,col:i});if(h===n)return t.iDrawError!=o&&null===l&&(Mt(t,0,"Requested unknown parameter "+("function"==typeof s.mData?"{function}":"'"+s.mData+"'")+" for row "+e+", column "+i,4),t.iDrawError=o),l;if(h!==a&&null!==h||null===l||r===n){if("function"==typeof h)return h.call(a)}else h=l;return null===h&&"display"==r?"":h}function C(t,e,i,n){var r=t.aoColumns[i],o=t.aoData[e]._aData;r.fnSetData(o,n,{settings:t,row:e,col:i})}function _(e){return t.map(e.match(/(\\.|[^\.])+/g)||[""],function(t){return t.replace(/\\./g,".")})}function A(e){if(t.isPlainObject(e)){var i={};return t.each(e,function(t,e){e&&(i[t]=A(e))}),function(t,e,r,o){var s=i[e]||i._;return s!==n?s(t,e,r,o):t}}if(null===e)return function(t){return t};if("function"==typeof e)return function(t,i,n,r){return e(t,i,n,r)};if("string"!=typeof e||e.indexOf(".")===-1&&e.indexOf("[")===-1&&e.indexOf("(")===-1)return function(t,i){return t[e]};var r=function(e,i,o){var s,a,l,h;if(""!==o)for(var c=_(o),u=0,p=c.length;u<p;u++){if(s=c[u].match(ge),a=c[u].match(me),s){if(c[u]=c[u].replace(ge,""),""!==c[u]&&(e=e[c[u]]),l=[],c.splice(0,u+1),h=c.join("."),t.isArray(e))for(var d=0,f=e.length;d<f;d++)l.push(r(e[d],i,h));var g=s[0].substring(1,s[0].length-1);e=""===g?l:l.join(g);break}if(a)c[u]=c[u].replace(me,""),e=e[c[u]]();else{if(null===e||e[c[u]]===n)return n;e=e[c[u]]}}return e};return function(t,i){return r(t,i,e)}}function D(e){if(t.isPlainObject(e))return D(e._);if(null===e)return function(){};if("function"==typeof e)return function(t,i,n){e(t,"set",i,n)};if("string"!=typeof e||e.indexOf(".")===-1&&e.indexOf("[")===-1&&e.indexOf("(")===-1)return function(t,i){t[e]=i};var i=function(e,r,o){for(var s,a,l,h,c,u=_(o),p=u[u.length-1],d=0,f=u.length-1;d<f;d++){if(a=u[d].match(ge),l=u[d].match(me),a){if(u[d]=u[d].replace(ge,""),e[u[d]]=[],s=u.slice(),s.splice(0,d+1),c=s.join("."),t.isArray(r))for(var g=0,m=r.length;g<m;g++)h={},i(h,r[g],c),e[u[d]].push(h);else e[u[d]]=r;return}l&&(u[d]=u[d].replace(me,""),e=e[u[d]](r)),null!==e[u[d]]&&e[u[d]]!==n||(e[u[d]]={}),e=e[u[d]]}p.match(me)?e=e[p.replace(me,"")](r):e[p.replace(ge,"")]=r};return function(t,n){return i(t,n,e)}}function L(t){return le(t.aoData,"_aData")}function E(t){t.aoData.length=0,t.aiDisplayMaster.length=0,t.aiDisplay.length=0,t.aIds={}}function P(t,e,i){for(var r=-1,o=0,s=t.length;o<s;o++)t[o]==e?r=o:t[o]>e&&t[o]--;r!=-1&&i===n&&t.splice(r,1)}function M(t,e,i,r){var o,s,a=t.aoData[e],l=function(i,n){for(;i.childNodes.length;)i.removeChild(i.firstChild);i.innerHTML=k(t,e,n,"display")};if("dom"!==i&&(i&&"auto"!==i||"dom"!==a.src)){var h=a.anCells;if(h)if(r!==n)l(h[r],r);else for(o=0,s=h.length;o<s;o++)l(h[o],o)}else a._aData=I(t,a,r,r===n?n:a._aData).data;a._aSortData=null,a._aFilterData=null;var c=t.aoColumns;if(r!==n)c[r].sType=null;else{for(o=0,s=c.length;o<s;o++)c[o].sType=null;O(t,a)}}function I(e,i,r,o){var s,a,l,h=[],c=i.firstChild,u=0,p=e.aoColumns,d=e._rowReadObject;o=o!==n?o:d?{}:[];var f=function(t,e){if("string"==typeof t){var i=t.indexOf("@");if(i!==-1){var n=t.substring(i+1),r=D(t);r(o,e.getAttribute(n))}}},g=function(e){if(r===n||r===u)if(a=p[u],l=t.trim(e.innerHTML),a&&a._bAttrSrc){var i=D(a.mData._);i(o,l),f(a.mData.sort,e),f(a.mData.type,e),f(a.mData.filter,e)}else d?(a._setter||(a._setter=D(a.mData)),a._setter(o,l)):o[u]=l;u++};if(c)for(;c;)s=c.nodeName.toUpperCase(),"TD"!=s&&"TH"!=s||(g(c),h.push(c)),c=c.nextSibling;else{h=i.anCells;for(var m=0,v=h.length;m<v;m++)g(h[m])}var y=i.firstChild?i:i.nTr;if(y){var b=y.getAttribute("id");b&&D(e.rowId)(o,b)}return{data:o,cells:h}}function R(e,n,r,o){var s,a,l,h,c,u=e.aoData[n],p=u._aData,d=[];if(null===u.nTr){for(s=r||i.createElement("tr"),u.nTr=s,u.anCells=d,s._DT_RowIndex=n,O(e,u),h=0,c=e.aoColumns.length;h<c;h++)l=e.aoColumns[h],a=r?o[h]:i.createElement(l.sCellType),a._DT_CellIndex={row:n,column:h},d.push(a),r&&!l.mRender&&l.mData===h||t.isPlainObject(l.mData)&&l.mData._===h+".display"||(a.innerHTML=k(e,n,h,"display")),l.sClass&&(a.className+=" "+l.sClass),l.bVisible&&!r?s.appendChild(a):!l.bVisible&&r&&a.parentNode.removeChild(a),l.fnCreatedCell&&l.fnCreatedCell.call(e.oInstance,a,k(e,n,h),p,n,h);Ft(e,"aoRowCreatedCallback",null,[s,p,n])}u.nTr.setAttribute("role","row")}function O(e,i){var n=i.nTr,r=i._aData;if(n){var o=e.rowIdFn(r);if(o&&(n.id=o),r.DT_RowClass){var s=r.DT_RowClass.split(" ");i.__rowc=i.__rowc?de(i.__rowc.concat(s)):s,t(n).removeClass(i.__rowc.join(" ")).addClass(r.DT_RowClass)}r.DT_RowAttr&&t(n).attr(r.DT_RowAttr),r.DT_RowData&&t(n).data(r.DT_RowData)}}function B(e){var i,n,r,o,s,a=e.nTHead,l=e.nTFoot,h=0===t("th, td",a).length,c=e.oClasses,u=e.aoColumns;for(h&&(o=t("<tr/>").appendTo(a)),i=0,n=u.length;i<n;i++)s=u[i],r=t(s.nTh).addClass(s.sClass),h&&r.appendTo(o),e.oFeatures.bSort&&(r.addClass(s.sSortingClass),s.bSortable!==!1&&(r.attr("tabindex",e.iTabIndex).attr("aria-controls",e.sTableId),_t(e,s.nTh,i))),s.sTitle!=r[0].innerHTML&&r.html(s.sTitle),jt(e,"header")(e,r,s,c);if(h&&H(e.aoHeader,a),t(a).find(">tr").attr("role","row"),t(a).find(">tr>th, >tr>td").addClass(c.sHeaderTH),t(l).find(">tr>th, >tr>td").addClass(c.sFooterTH),null!==l){var p=e.aoFooter[0];for(i=0,n=p.length;i<n;i++)s=u[i],s.nTf=p[i].cell,s.sClass&&t(s.nTf).addClass(s.sClass)}}function F(e,i,r){var o,s,a,l,h,c,u,p,d,f=[],g=[],m=e.aoColumns.length;if(i){for(r===n&&(r=!1),o=0,s=i.length;o<s;o++){for(f[o]=i[o].slice(),f[o].nTr=i[o].nTr,a=m-1;a>=0;a--)e.aoColumns[a].bVisible||r||f[o].splice(a,1);g.push([])}for(o=0,s=f.length;o<s;o++){if(u=f[o].nTr)for(;c=u.firstChild;)u.removeChild(c);for(a=0,l=f[o].length;a<l;a++)if(p=1,d=1,g[o][a]===n){for(u.appendChild(f[o][a].cell),g[o][a]=1;f[o+p]!==n&&f[o][a].cell==f[o+p][a].cell;)g[o+p][a]=1,p++;for(;f[o][a+d]!==n&&f[o][a].cell==f[o][a+d].cell;){for(h=0;h<p;h++)g[o+h][a+d]=1;d++}t(f[o][a].cell).attr("rowspan",p).attr("colspan",d)}}}}function N(e){var i=Ft(e,"aoPreDrawCallback","preDraw",[e]);if(t.inArray(!1,i)!==-1)return void dt(e,!1);var r=[],o=0,s=e.asStripeClasses,a=s.length,l=(e.aoOpenRows.length,e.oLanguage),h=e.iInitDisplayStart,c="ssp"==$t(e),u=e.aiDisplay;e.bDrawing=!0,h!==n&&h!==-1&&(e._iDisplayStart=c?h:h>=e.fnRecordsDisplay()?0:h,e.iInitDisplayStart=-1);var p=e._iDisplayStart,d=e.fnDisplayEnd();if(e.bDeferLoading)e.bDeferLoading=!1,e.iDraw++,dt(e,!1);else if(c){if(!e.bDestroying&&!U(e))return}else e.iDraw++;if(0!==u.length)for(var f=c?0:p,g=c?e.aoData.length:d,v=f;v<g;v++){var y=u[v],b=e.aoData[y];null===b.nTr&&R(e,y);var x=b.nTr;if(0!==a){var w=s[o%a];b._sRowStripe!=w&&(t(x).removeClass(b._sRowStripe).addClass(w),b._sRowStripe=w)}Ft(e,"aoRowCallback",null,[x,b._aData,o,v]),r.push(x),o++}else{var S=l.sZeroRecords;1==e.iDraw&&"ajax"==$t(e)?S=l.sLoadingRecords:l.sEmptyTable&&0===e.fnRecordsTotal()&&(S=l.sEmptyTable),r[0]=t("<tr/>",{"class":a?s[0]:""}).append(t("<td />",{valign:"top",colSpan:m(e),"class":e.oClasses.sRowEmpty}).html(S))[0]}Ft(e,"aoHeaderCallback","header",[t(e.nTHead).children("tr")[0],L(e),p,d,u]),Ft(e,"aoFooterCallback","footer",[t(e.nTFoot).children("tr")[0],L(e),p,d,u]);var T=t(e.nTBody);T.children().detach(),T.append(t(r)),Ft(e,"aoDrawCallback","draw",[e]),e.bSorted=!1,e.bFiltered=!1,e.bDrawing=!1}function j(t,e){var i=t.oFeatures,n=i.bSort,r=i.bFilter;n&&Tt(t),r?V(t,t.oPreviousSearch):t.aiDisplay=t.aiDisplayMaster.slice(),e!==!0&&(t._iDisplayStart=0),t._drawHold=e,N(t),t._drawHold=!1}function $(e){var i=e.oClasses,n=t(e.nTable),r=t("<div/>").insertBefore(n),o=e.oFeatures,s=t("<div/>",{id:e.sTableId+"_wrapper","class":i.sWrapper+(e.nTFoot?"":" "+i.sNoFooter)});e.nHolding=r[0],e.nTableWrapper=s[0],e.nTableReinsertBefore=e.nTable.nextSibling;for(var a,l,h,c,u,p,d=e.sDom.split(""),f=0;f<d.length;f++){if(a=null,l=d[f],"<"==l){if(h=t("<div/>")[0],c=d[f+1],"'"==c||'"'==c){for(u="",p=2;d[f+p]!=c;)u+=d[f+p],p++;if("H"==u?u=i.sJUIHeader:"F"==u&&(u=i.sJUIFooter),u.indexOf(".")!=-1){var g=u.split(".");h.id=g[0].substr(1,g[0].length-1),h.className=g[1]}else"#"==u.charAt(0)?h.id=u.substr(1,u.length-1):h.className=u;f+=p}s.append(h),s=t(h)}else if(">"==l)s=s.parent();else if("l"==l&&o.bPaginate&&o.bLengthChange)a=ht(e);else if("f"==l&&o.bFilter)a=q(e);else if("r"==l&&o.bProcessing)a=pt(e);else if("t"==l)a=ft(e);else if("i"==l&&o.bInfo)a=nt(e);else if("p"==l&&o.bPaginate)a=ct(e);else if(0!==qt.ext.feature.length)for(var m=qt.ext.feature,v=0,y=m.length;v<y;v++)if(l==m[v].cFeature){a=m[v].fnInit(e);break}if(a){var b=e.aanFeatures;b[l]||(b[l]=[]),b[l].push(a),s.append(a)}}r.replaceWith(s),e.nHolding=null}function H(e,i){var n,r,o,s,a,l,h,c,u,p,d,f=t(i).children("tr"),g=function(t,e,i){for(var n=t[e];n[i];)i++;return i};for(e.splice(0,e.length),o=0,l=f.length;o<l;o++)e.push([]);for(o=0,l=f.length;o<l;o++)for(n=f[o],c=0,r=n.firstChild;r;){if("TD"==r.nodeName.toUpperCase()||"TH"==r.nodeName.toUpperCase())for(u=1*r.getAttribute("colspan"),p=1*r.getAttribute("rowspan"),u=u&&0!==u&&1!==u?u:1,p=p&&0!==p&&1!==p?p:1,h=g(e,o,c),d=1===u,a=0;a<u;a++)for(s=0;s<p;s++)e[o+s][h+a]={cell:r,unique:d},e[o+s].nTr=n;r=r.nextSibling}}function z(t,e,i){var n=[];i||(i=t.aoHeader,e&&(i=[],H(i,e)));for(var r=0,o=i.length;r<o;r++)for(var s=0,a=i[r].length;s<a;s++)!i[r][s].unique||n[s]&&t.bSortCellsTop||(n[s]=i[r][s].cell);return n}function W(e,i,n){if(Ft(e,"aoServerParams","serverParams",[i]),i&&t.isArray(i)){var r={},o=/(.*?)\[\]$/;t.each(i,function(t,e){var i=e.name.match(o);if(i){var n=i[0];r[n]||(r[n]=[]),r[n].push(e.value)}else r[e.name]=e.value}),i=r}var s,a=e.ajax,l=e.oInstance,h=function(t){Ft(e,null,"xhr",[e,t,e.jqXHR]),n(t)};if(t.isPlainObject(a)&&a.data){s=a.data;var c=t.isFunction(s)?s(i,e):s;i=t.isFunction(s)&&c?c:t.extend(!0,i,c),delete a.data}var u={data:i,success:function(t){var i=t.error||t.sError;i&&Mt(e,0,i),e.json=t,h(t)},dataType:"json",cache:!1,type:e.sServerMethod,error:function(i,n,r){var o=Ft(e,null,"xhr",[e,null,e.jqXHR]);t.inArray(!0,o)===-1&&("parsererror"==n?Mt(e,0,"Invalid JSON response",1):4===i.readyState&&Mt(e,0,"Ajax error",7)),dt(e,!1)}};e.oAjaxData=i,Ft(e,null,"preXhr",[e,i]),e.fnServerData?e.fnServerData.call(l,e.sAjaxSource,t.map(i,function(t,e){return{name:e,value:t}}),h,e):e.sAjaxSource||"string"==typeof a?e.jqXHR=t.ajax(t.extend(u,{url:a||e.sAjaxSource})):t.isFunction(a)?e.jqXHR=a.call(l,i,h,e):(e.jqXHR=t.ajax(t.extend(u,a)),a.data=s)}function U(t){return!t.bAjaxDataGet||(t.iDraw++,dt(t,!0),W(t,X(t),function(e){Y(t,e)}),!1)}function X(e){var i,n,r,o,s=e.aoColumns,a=s.length,l=e.oFeatures,h=e.oPreviousSearch,c=e.aoPreSearchCols,u=[],p=St(e),d=e._iDisplayStart,f=l.bPaginate!==!1?e._iDisplayLength:-1,g=function(t,e){u.push({name:t,value:e})};g("sEcho",e.iDraw),g("iColumns",a),g("sColumns",le(s,"sName").join(",")),g("iDisplayStart",d),g("iDisplayLength",f);var m={draw:e.iDraw,columns:[],order:[],start:d,length:f,search:{value:h.sSearch,regex:h.bRegex}};for(i=0;i<a;i++)r=s[i],o=c[i],n="function"==typeof r.mData?"function":r.mData,m.columns.push({data:n,name:r.sName,searchable:r.bSearchable,orderable:r.bSortable,search:{value:o.sSearch,regex:o.bRegex}}),g("mDataProp_"+i,n),l.bFilter&&(g("sSearch_"+i,o.sSearch),g("bRegex_"+i,o.bRegex),g("bSearchable_"+i,r.bSearchable)),l.bSort&&g("bSortable_"+i,r.bSortable);l.bFilter&&(g("sSearch",h.sSearch),g("bRegex",h.bRegex)),l.bSort&&(t.each(p,function(t,e){m.order.push({column:e.col,dir:e.dir}),g("iSortCol_"+t,e.col),g("sSortDir_"+t,e.dir)}),g("iSortingCols",p.length));var v=qt.ext.legacy.ajax;return null===v?e.sAjaxSource?u:m:v?u:m}function Y(t,e){var i=function(t,i){return e[t]!==n?e[t]:e[i]},r=G(t,e),o=i("sEcho","draw"),s=i("iTotalRecords","recordsTotal"),a=i("iTotalDisplayRecords","recordsFiltered");if(o){if(1*o<t.iDraw)return;t.iDraw=1*o}E(t),t._iRecordsTotal=parseInt(s,10),t._iRecordsDisplay=parseInt(a,10);for(var l=0,h=r.length;l<h;l++)x(t,r[l]);t.aiDisplay=t.aiDisplayMaster.slice(),t.bAjaxDataGet=!1,N(t),t._bInitComplete||at(t,e),t.bAjaxDataGet=!0,dt(t,!1)}function G(e,i){var r=t.isPlainObject(e.ajax)&&e.ajax.dataSrc!==n?e.ajax.dataSrc:e.sAjaxDataProp;return"data"===r?i.aaData||i[r]:""!==r?A(r)(i):i}function q(e){var n=e.oClasses,r=e.sTableId,o=e.oLanguage,s=e.oPreviousSearch,a=e.aanFeatures,l='<input type="search" class="'+n.sFilterInput+'"/>',h=o.sSearch;h=h.match(/_INPUT_/)?h.replace("_INPUT_",l):h+l;var c=t("<div/>",{id:a.f?null:r+"_filter","class":n.sFilter}).append(t("<label/>").append(h)),u=function(){var t=(a.f,this.value?this.value:"");t!=s.sSearch&&(V(e,{sSearch:t,bRegex:s.bRegex,bSmart:s.bSmart,bCaseInsensitive:s.bCaseInsensitive}),e._iDisplayStart=0,N(e))},p=null!==e.searchDelay?e.searchDelay:"ssp"===$t(e)?400:0,d=t("input",c).val(s.sSearch).attr("placeholder",o.sSearchPlaceholder).bind("keyup.DT search.DT input.DT paste.DT cut.DT",p?we(u,p):u).bind("keypress.DT",function(t){if(13==t.keyCode)return!1}).attr("aria-controls",r);return t(e.nTable).on("search.dt.DT",function(t,n){if(e===n)try{d[0]!==i.activeElement&&d.val(s.sSearch)}catch(r){}}),c[0]}function V(t,e,i){var r=t.oPreviousSearch,o=t.aoPreSearchCols,s=function(t){r.sSearch=t.sSearch,r.bRegex=t.bRegex,r.bSmart=t.bSmart,r.bCaseInsensitive=t.bCaseInsensitive},a=function(t){return t.bEscapeRegex!==n?!t.bEscapeRegex:t.bRegex};if(y(t),"ssp"!=$t(t)){Z(t,e.sSearch,i,a(e),e.bSmart,e.bCaseInsensitive),s(e);for(var l=0;l<o.length;l++)K(t,o[l].sSearch,l,a(o[l]),o[l].bSmart,o[l].bCaseInsensitive);J(t)}else s(e);t.bFiltered=!0,Ft(t,null,"search",[t])}function J(e){for(var i,n,r=qt.ext.search,o=e.aiDisplay,s=0,a=r.length;s<a;s++){for(var l=[],h=0,c=o.length;h<c;h++)n=o[h],i=e.aoData[n],r[s](e,i._aFilterData,n,i._aData,h)&&l.push(n);o.length=0,t.merge(o,l)}}function K(t,e,i,n,r,o){if(""!==e)for(var s,a=t.aiDisplay,l=Q(e,n,r,o),h=a.length-1;h>=0;h--)s=t.aoData[a[h]]._aFilterData[i],l.test(s)||a.splice(h,1)}function Z(t,e,i,n,r,o){var s,a,l,h=Q(e,n,r,o),c=t.oPreviousSearch.sSearch,u=t.aiDisplayMaster;if(0!==qt.ext.search.length&&(i=!0),a=tt(t),e.length<=0)t.aiDisplay=u.slice();else for((a||i||c.length>e.length||0!==e.indexOf(c)||t.bSorted)&&(t.aiDisplay=u.slice()),s=t.aiDisplay,l=s.length-1;l>=0;l--)h.test(t.aoData[s[l]]._sFilterRow)||s.splice(l,1)}function Q(e,i,n,r){if(e=i?e:ve(e),n){var o=t.map(e.match(/"[^"]+"|[^ ]+/g)||[""],function(t){if('"'===t.charAt(0)){var e=t.match(/^"(.*)"$/);t=e?e[1]:t}return t.replace('"',"")});e="^(?=.*?"+o.join(")(?=.*?")+").*$"}return new RegExp(e,r?"i":"")}function tt(t){var e,i,n,r,o,s,a,l,h=t.aoColumns,c=qt.ext.type.search,u=!1;for(i=0,r=t.aoData.length;i<r;i++)if(l=t.aoData[i],!l._aFilterData){for(s=[],n=0,o=h.length;n<o;n++)e=h[n],e.bSearchable?(a=k(t,i,n,"filter"),c[e.sType]&&(a=c[e.sType](a)),null===a&&(a=""),"string"!=typeof a&&a.toString&&(a=a.toString())):a="",a.indexOf&&a.indexOf("&")!==-1&&(ye.innerHTML=a,a=be?ye.textContent:ye.innerText),a.replace&&(a=a.replace(/[\r\n]/g,"")),s.push(a);l._aFilterData=s,l._sFilterRow=s.join("  "),u=!0}return u}function et(t){return{search:t.sSearch,smart:t.bSmart,regex:t.bRegex,caseInsensitive:t.bCaseInsensitive}}function it(t){return{sSearch:t.search,bSmart:t.smart,bRegex:t.regex,bCaseInsensitive:t.caseInsensitive}}function nt(e){var i=e.sTableId,n=e.aanFeatures.i,r=t("<div/>",{"class":e.oClasses.sInfo,id:n?null:i+"_info"});return n||(e.aoDrawCallback.push({fn:rt,sName:"information"}),r.attr("role","status").attr("aria-live","polite"),t(e.nTable).attr("aria-describedby",i+"_info")),r[0]}function rt(e){var i=e.aanFeatures.i;if(0!==i.length){var n=e.oLanguage,r=e._iDisplayStart+1,o=e.fnDisplayEnd(),s=e.fnRecordsTotal(),a=e.fnRecordsDisplay(),l=a?n.sInfo:n.sInfoEmpty;a!==s&&(l+=" "+n.sInfoFiltered),l+=n.sInfoPostFix,l=ot(e,l);var h=n.fnInfoCallback;null!==h&&(l=h.call(e.oInstance,e,r,o,s,a,l)),t(i).html(l)}}function ot(t,e){var i=t.fnFormatNumber,n=t._iDisplayStart+1,r=t._iDisplayLength,o=t.fnRecordsDisplay(),s=r===-1;return e.replace(/_START_/g,i.call(t,n)).replace(/_END_/g,i.call(t,t.fnDisplayEnd())).replace(/_MAX_/g,i.call(t,t.fnRecordsTotal())).replace(/_TOTAL_/g,i.call(t,o)).replace(/_PAGE_/g,i.call(t,s?1:Math.ceil(n/r))).replace(/_PAGES_/g,i.call(t,s?1:Math.ceil(o/r)))}function st(t){var e,i,n,r=t.iInitDisplayStart,o=t.aoColumns,s=t.oFeatures,a=t.bDeferLoading;if(!t.bInitialised)return void setTimeout(function(){st(t)},200);for($(t),B(t),F(t,t.aoHeader),F(t,t.aoFooter),dt(t,!0),s.bAutoWidth&&vt(t),e=0,i=o.length;e<i;e++)n=o[e],n.sWidth&&(n.nTh.style.width=wt(n.sWidth));Ft(t,null,"preInit",[t]),j(t);var l=$t(t);("ssp"!=l||a)&&("ajax"==l?W(t,[],function(i){var n=G(t,i);for(e=0;e<n.length;e++)x(t,n[e]);t.iInitDisplayStart=r,j(t),dt(t,!1),at(t,i)},t):(dt(t,!1),at(t)))}function at(t,e){t._bInitComplete=!0,(e||t.oInit.aaData)&&d(t),Ft(t,null,"plugin-init",[t,e]),Ft(t,"aoInitComplete","init",[t,e])}function lt(t,e){var i=parseInt(e,10);t._iDisplayLength=i,Nt(t),Ft(t,null,"length",[t,i])}function ht(e){for(var i=e.oClasses,n=e.sTableId,r=e.aLengthMenu,o=t.isArray(r[0]),s=o?r[0]:r,a=o?r[1]:r,l=t("<select/>",{name:n+"_length","aria-controls":n,"class":i.sLengthSelect}),h=0,c=s.length;h<c;h++)l[0][h]=new Option(a[h],s[h]);var u=t("<div><label/></div>").addClass(i.sLength);return e.aanFeatures.l||(u[0].id=n+"_length"),u.children().append(e.oLanguage.sLengthMenu.replace("_MENU_",l[0].outerHTML)),t("select",u).val(e._iDisplayLength).bind("change.DT",function(i){lt(e,t(this).val()),N(e)}),t(e.nTable).bind("length.dt.DT",function(i,n,r){e===n&&t("select",u).val(r)}),u[0]}function ct(e){var i=e.sPaginationType,n=qt.ext.pager[i],r="function"==typeof n,o=function(t){N(t)},s=t("<div/>").addClass(e.oClasses.sPaging+i)[0],a=e.aanFeatures;return r||n.fnInit(e,s,o),a.p||(s.id=e.sTableId+"_paginate",e.aoDrawCallback.push({fn:function(t){if(r){var e,i,s=t._iDisplayStart,l=t._iDisplayLength,h=t.fnRecordsDisplay(),c=l===-1,u=c?0:Math.ceil(s/l),p=c?1:Math.ceil(h/l),d=n(u,p);for(e=0,i=a.p.length;e<i;e++)jt(t,"pageButton")(t,a.p[e],e,d,u,p)}else n.fnUpdate(t,o)},sName:"pagination"})),s}function ut(t,e,i){var n=t._iDisplayStart,r=t._iDisplayLength,o=t.fnRecordsDisplay();0===o||r===-1?n=0:"number"==typeof e?(n=e*r,n>o&&(n=0)):"first"==e?n=0:"previous"==e?(n=r>=0?n-r:0,n<0&&(n=0)):"next"==e?n+r<o&&(n+=r):"last"==e?n=Math.floor((o-1)/r)*r:Mt(t,0,"Unknown paging action: "+e,5);var s=t._iDisplayStart!==n;return t._iDisplayStart=n,s&&(Ft(t,null,"page",[t]),i&&N(t)),s}function pt(e){return t("<div/>",{id:e.aanFeatures.r?null:e.sTableId+"_processing","class":e.oClasses.sProcessing}).html(e.oLanguage.sProcessing).insertBefore(e.nTable)[0]}function dt(e,i){e.oFeatures.bProcessing&&t(e.aanFeatures.r).css("display",i?"block":"none"),Ft(e,null,"processing",[e,i])}function ft(e){var i=t(e.nTable);i.attr("role","grid");var n=e.oScroll;if(""===n.sX&&""===n.sY)return e.nTable;var r=n.sX,o=n.sY,s=e.oClasses,a=i.children("caption"),l=a.length?a[0]._captionSide:null,h=t(i[0].cloneNode(!1)),c=t(i[0].cloneNode(!1)),u=i.children("tfoot"),p="<div/>",d=function(t){return t?wt(t):null};u.length||(u=null);var f=t(p,{"class":s.sScrollWrapper}).append(t(p,{"class":s.sScrollHead}).css({overflow:"hidden",position:"relative",border:0,width:r?d(r):"100%"}).append(t(p,{"class":s.sScrollHeadInner}).css({"box-sizing":"content-box",width:n.sXInner||"100%"}).append(h.removeAttr("id").css("margin-left",0).append("top"===l?a:null).append(i.children("thead"))))).append(t(p,{"class":s.sScrollBody}).css({position:"relative",overflow:"auto",width:d(r)}).append(i));u&&f.append(t(p,{"class":s.sScrollFoot}).css({overflow:"hidden",border:0,width:r?d(r):"100%"}).append(t(p,{"class":s.sScrollFootInner}).append(c.removeAttr("id").css("margin-left",0).append("bottom"===l?a:null).append(i.children("tfoot")))));var g=f.children(),m=g[0],v=g[1],y=u?g[2]:null;return r&&t(v).on("scroll.DT",function(t){var e=this.scrollLeft;m.scrollLeft=e,u&&(y.scrollLeft=e)}),t(v).css(o&&n.bCollapse?"max-height":"height",o),e.nScrollHead=m,e.nScrollBody=v,e.nScrollFoot=y,e.aoDrawCallback.push({fn:gt,sName:"scrolling"}),f[0]}function gt(e){var i,r,o,s,a,l,h,c,u,p=e.oScroll,g=p.sX,m=p.sXInner,v=p.sY,y=p.iBarWidth,b=t(e.nScrollHead),x=b[0].style,w=b.children("div"),S=w[0].style,T=w.children("table"),k=e.nScrollBody,C=t(k),_=k.style,A=t(e.nScrollFoot),D=A.children("div"),L=D.children("table"),E=t(e.nTHead),P=t(e.nTable),M=P[0],I=M.style,R=e.nTFoot?t(e.nTFoot):null,O=e.oBrowser,B=O.bScrollOversize,F=le(e.aoColumns,"nTh"),N=[],j=[],$=[],H=[],W=function(t){var e=t.style;e.paddingTop="0",e.paddingBottom="0",e.borderTopWidth="0",e.borderBottomWidth="0",e.height=0},U=k.scrollHeight>k.clientHeight;if(e.scrollBarVis!==U&&e.scrollBarVis!==n)return e.scrollBarVis=U,void d(e);e.scrollBarVis=U,P.children("thead, tfoot").remove(),R&&(l=R.clone().prependTo(P),r=R.find("tr"),s=l.find("tr")),a=E.clone().prependTo(P),i=E.find("tr"),o=a.find("tr"),a.find("th, td").removeAttr("tabindex"),g||(_.width="100%",b[0].style.width="100%"),t.each(z(e,a),function(t,i){h=f(e,t),i.style.width=e.aoColumns[h].sWidth}),R&&mt(function(t){t.style.width=""},s),u=P.outerWidth(),""===g?(I.width="100%",B&&(P.find("tbody").height()>k.offsetHeight||"scroll"==C.css("overflow-y"))&&(I.width=wt(P.outerWidth()-y)),u=P.outerWidth()):""!==m&&(I.width=wt(m),u=P.outerWidth()),mt(W,o),mt(function(e){$.push(e.innerHTML),N.push(wt(t(e).css("width")))},o),mt(function(e,i){t.inArray(e,F)!==-1&&(e.style.width=N[i])},i),t(o).height(0),R&&(mt(W,s),mt(function(e){H.push(e.innerHTML),j.push(wt(t(e).css("width")))},s),mt(function(t,e){t.style.width=j[e]},r),t(s).height(0)),mt(function(t,e){t.innerHTML='<div class="dataTables_sizing" style="height:0;overflow:hidden;">'+$[e]+"</div>",t.style.width=N[e]},o),R&&mt(function(t,e){t.innerHTML='<div class="dataTables_sizing" style="height:0;overflow:hidden;">'+H[e]+"</div>",t.style.width=j[e]},s),P.outerWidth()<u?(c=k.scrollHeight>k.offsetHeight||"scroll"==C.css("overflow-y")?u+y:u,B&&(k.scrollHeight>k.offsetHeight||"scroll"==C.css("overflow-y"))&&(I.width=wt(c-y)),""!==g&&""===m||Mt(e,1,"Possible column misalignment",6)):c="100%",_.width=wt(c),x.width=wt(c),R&&(e.nScrollFoot.style.width=wt(c)),v||B&&(_.height=wt(M.offsetHeight+y));var X=P.outerWidth();T[0].style.width=wt(X),S.width=wt(X);var Y=P.height()>k.clientHeight||"scroll"==C.css("overflow-y"),G="padding"+(O.bScrollbarLeft?"Left":"Right");S[G]=Y?y+"px":"0px",R&&(L[0].style.width=wt(X),D[0].style.width=wt(X),D[0].style[G]=Y?y+"px":"0px"),P.children("colgroup").insertBefore(P.children("thead")),C.scroll(),!e.bSorted&&!e.bFiltered||e._drawHold||(k.scrollTop=0)}function mt(t,e,i){for(var n,r,o=0,s=0,a=e.length;s<a;){for(n=e[s].firstChild,r=i?i[s].firstChild:null;n;)1===n.nodeType&&(i?t(n,r,o):t(n,o),o++),n=n.nextSibling,r=i?r.nextSibling:null;s++}}function vt(i){var n,r,o,s=i.nTable,a=i.aoColumns,l=i.oScroll,h=l.sY,c=l.sX,u=l.sXInner,p=a.length,g=v(i,"bVisible"),y=t("th",i.nTHead),b=s.getAttribute("width"),x=s.parentNode,w=!1,S=i.oBrowser,T=S.bScrollOversize,k=s.style.width;for(k&&k.indexOf("%")!==-1&&(b=k),n=0;n<g.length;n++)r=a[g[n]],null!==r.sWidth&&(r.sWidth=yt(r.sWidthOrig,x),w=!0);if(T||!w&&!c&&!h&&p==m(i)&&p==y.length)for(n=0;n<p;n++){var C=f(i,n);null!==C&&(a[C].sWidth=wt(y.eq(n).width()))}else{var _=t(s).clone().css("visibility","hidden").removeAttr("id");_.find("tbody tr").remove();var A=t("<tr/>").appendTo(_.find("tbody"));for(_.find("thead, tfoot").remove(),_.append(t(i.nTHead).clone()).append(t(i.nTFoot).clone()),_.find("tfoot th, tfoot td").css("width",""),y=z(i,_.find("thead")[0]),n=0;n<g.length;n++)r=a[g[n]],y[n].style.width=null!==r.sWidthOrig&&""!==r.sWidthOrig?wt(r.sWidthOrig):"",r.sWidthOrig&&c&&t(y[n]).append(t("<div/>").css({width:r.sWidthOrig,margin:0,padding:0,border:0,height:1}));if(i.aoData.length)for(n=0;n<g.length;n++)o=g[n],r=a[o],t(bt(i,o)).clone(!1).append(r.sContentPadding).appendTo(A);t("[name]",_).removeAttr("name");var D=t("<div/>").css(c||h?{position:"absolute",top:0,left:0,height:1,right:0,overflow:"hidden"}:{}).append(_).appendTo(x);c&&u?_.width(u):c?(_.css("width","auto"),_.removeAttr("width"),_.width()<x.clientWidth&&b&&_.width(x.clientWidth)):h?_.width(x.clientWidth):b&&_.width(b);var L=0;for(n=0;n<g.length;n++){var E=t(y[n]),P=E.outerWidth()-E.width(),M=S.bBounding?Math.ceil(y[n].getBoundingClientRect().width):E.outerWidth();L+=M,a[g[n]].sWidth=wt(M-P)}s.style.width=wt(L),D.remove()}if(b&&(s.style.width=wt(b)),(b||c)&&!i._reszEvt){var I=function(){t(e).bind("resize.DT-"+i.sInstance,we(function(){d(i)}))};T?setTimeout(I,1e3):I(),i._reszEvt=!0}}function yt(e,n){if(!e)return 0;var r=t("<div/>").css("width",wt(e)).appendTo(n||i.body),o=r[0].offsetWidth;return r.remove(),o}function bt(e,i){var n=xt(e,i);if(n<0)return null;var r=e.aoData[n];return r.nTr?r.anCells[i]:t("<td/>").html(k(e,n,i,"display"))[0]}function xt(t,e){for(var i,n=-1,r=-1,o=0,s=t.aoData.length;o<s;o++)i=k(t,o,e,"display")+"",i=i.replace(xe,""),i=i.replace(/&nbsp;/g," "),i.length>n&&(n=i.length,r=o);return r}function wt(t){return null===t?"0px":"number"==typeof t?t<0?"0px":t+"px":t.match(/\d$/)?t+"px":t}function St(e){var i,r,o,s,a,l,h,c=[],u=e.aoColumns,p=e.aaSortingFixed,d=t.isPlainObject(p),f=[],g=function(e){e.length&&!t.isArray(e[0])?f.push(e):t.merge(f,e)};for(t.isArray(p)&&g(p),d&&p.pre&&g(p.pre),g(e.aaSorting),d&&p.post&&g(p.post),i=0;i<f.length;i++)for(h=f[i][0],s=u[h].aDataSort,r=0,o=s.length;r<o;r++)a=s[r],l=u[a].sType||"string",f[i]._idx===n&&(f[i]._idx=t.inArray(f[i][1],u[a].asSorting)),c.push({src:h,col:a,dir:f[i][1],index:f[i]._idx,type:l,formatter:qt.ext.type.order[l+"-pre"]});return c}function Tt(t){var e,i,n,r,o,s=[],a=qt.ext.type.order,l=t.aoData,h=(t.aoColumns,0),c=t.aiDisplayMaster;for(y(t),o=St(t),e=0,i=o.length;e<i;e++)r=o[e],r.formatter&&h++,Dt(t,r.col);if("ssp"!=$t(t)&&0!==o.length){for(e=0,n=c.length;e<n;e++)s[c[e]]=e;h===o.length?c.sort(function(t,e){var i,n,r,a,h,c=o.length,u=l[t]._aSortData,p=l[e]._aSortData;for(r=0;r<c;r++)if(h=o[r],i=u[h.col],n=p[h.col],a=i<n?-1:i>n?1:0,0!==a)return"asc"===h.dir?a:-a;return i=s[t],n=s[e],i<n?-1:i>n?1:0}):c.sort(function(t,e){var i,n,r,h,c,u,p=o.length,d=l[t]._aSortData,f=l[e]._aSortData;for(r=0;r<p;r++)if(c=o[r],i=d[c.col],n=f[c.col],u=a[c.type+"-"+c.dir]||a["string-"+c.dir],h=u(i,n),0!==h)return h;return i=s[t],n=s[e],i<n?-1:i>n?1:0})}t.bSorted=!0}function kt(t){for(var e,i,n=t.aoColumns,r=St(t),o=t.oLanguage.oAria,s=0,a=n.length;s<a;s++){var l=n[s],h=l.asSorting,c=l.sTitle.replace(/<.*?>/g,""),u=l.nTh;u.removeAttribute("aria-sort"),l.bSortable?(r.length>0&&r[0].col==s?(u.setAttribute("aria-sort","asc"==r[0].dir?"ascending":"descending"),i=h[r[0].index+1]||h[0]):i=h[0],
e=c+("asc"===i?o.sSortAscending:o.sSortDescending)):e=c,u.setAttribute("aria-label",e)}}function Ct(e,i,r,o){var s,a=e.aoColumns[i],l=e.aaSorting,h=a.asSorting,c=function(e,i){var r=e._idx;return r===n&&(r=t.inArray(e[1],h)),r+1<h.length?r+1:i?null:0};if("number"==typeof l[0]&&(l=e.aaSorting=[l]),r&&e.oFeatures.bSortMulti){var u=t.inArray(i,le(l,"0"));u!==-1?(s=c(l[u],!0),null===s&&1===l.length&&(s=0),null===s?l.splice(u,1):(l[u][1]=h[s],l[u]._idx=s)):(l.push([i,h[0],0]),l[l.length-1]._idx=0)}else l.length&&l[0][0]==i?(s=c(l[0]),l.length=1,l[0][1]=h[s],l[0]._idx=s):(l.length=0,l.push([i,h[0]]),l[0]._idx=0);j(e),"function"==typeof o&&o(e)}function _t(t,e,i,n){var r=t.aoColumns[i];Ot(e,{},function(e){r.bSortable!==!1&&(t.oFeatures.bProcessing?(dt(t,!0),setTimeout(function(){Ct(t,i,e.shiftKey,n),"ssp"!==$t(t)&&dt(t,!1)},0)):Ct(t,i,e.shiftKey,n))})}function At(e){var i,n,r,o=e.aLastSort,s=e.oClasses.sSortColumn,a=St(e),l=e.oFeatures;if(l.bSort&&l.bSortClasses){for(i=0,n=o.length;i<n;i++)r=o[i].src,t(le(e.aoData,"anCells",r)).removeClass(s+(i<2?i+1:3));for(i=0,n=a.length;i<n;i++)r=a[i].src,t(le(e.aoData,"anCells",r)).addClass(s+(i<2?i+1:3))}e.aLastSort=a}function Dt(t,e){var i,n=t.aoColumns[e],r=qt.ext.order[n.sSortDataType];r&&(i=r.call(t.oInstance,t,e,g(t,e)));for(var o,s,a=qt.ext.type.order[n.sType+"-pre"],l=0,h=t.aoData.length;l<h;l++)o=t.aoData[l],o._aSortData||(o._aSortData=[]),o._aSortData[e]&&!r||(s=r?i[l]:k(t,l,e,"sort"),o._aSortData[e]=a?a(s):s)}function Lt(e){if(e.oFeatures.bStateSave&&!e.bDestroying){var i={time:+new Date,start:e._iDisplayStart,length:e._iDisplayLength,order:t.extend(!0,[],e.aaSorting),search:et(e.oPreviousSearch),columns:t.map(e.aoColumns,function(t,i){return{visible:t.bVisible,search:et(e.aoPreSearchCols[i])}})};Ft(e,"aoStateSaveParams","stateSaveParams",[e,i]),e.oSavedState=i,e.fnStateSaveCallback.call(e.oInstance,e,i)}}function Et(e,i){var r,o,s=e.aoColumns;if(e.oFeatures.bStateSave){var a=e.fnStateLoadCallback.call(e.oInstance,e);if(a&&a.time){var l=Ft(e,"aoStateLoadParams","stateLoadParams",[e,a]);if(t.inArray(!1,l)===-1){var h=e.iStateDuration;if(!(h>0&&a.time<+new Date-1e3*h)&&s.length===a.columns.length){for(e.oLoadedState=t.extend(!0,{},a),a.start!==n&&(e._iDisplayStart=a.start,e.iInitDisplayStart=a.start),a.length!==n&&(e._iDisplayLength=a.length),a.order!==n&&(e.aaSorting=[],t.each(a.order,function(t,i){e.aaSorting.push(i[0]>=s.length?[0,i[1]]:i)})),a.search!==n&&t.extend(e.oPreviousSearch,it(a.search)),r=0,o=a.columns.length;r<o;r++){var c=a.columns[r];c.visible!==n&&(s[r].bVisible=c.visible),c.search!==n&&t.extend(e.aoPreSearchCols[r],it(c.search))}Ft(e,"aoStateLoaded","stateLoaded",[e,a])}}}}}function Pt(e){var i=qt.settings,n=t.inArray(e,le(i,"nTable"));return n!==-1?i[n]:null}function Mt(t,i,n,r){if(n="DataTables warning: "+(t?"table id="+t.sTableId+" - ":"")+n,r&&(n+=". For more information about this error, please see http://datatables.net/tn/"+r),i)e.console&&console.log&&console.log(n);else{var o=qt.ext,s=o.sErrMode||o.errMode;if(t&&Ft(t,null,"error",[t,r,n]),"alert"==s)alert(n);else{if("throw"==s)throw new Error(n);"function"==typeof s&&s(t,r,n)}}}function It(e,i,r,o){return t.isArray(r)?void t.each(r,function(n,r){t.isArray(r)?It(e,i,r[0],r[1]):It(e,i,r)}):(o===n&&(o=r),void(i[r]!==n&&(e[o]=i[r])))}function Rt(e,i,n){var r;for(var o in i)i.hasOwnProperty(o)&&(r=i[o],t.isPlainObject(r)?(t.isPlainObject(e[o])||(e[o]={}),t.extend(!0,e[o],r)):n&&"data"!==o&&"aaData"!==o&&t.isArray(r)?e[o]=r.slice():e[o]=r);return e}function Ot(e,i,n){t(e).bind("click.DT",i,function(t){e.blur(),n(t)}).bind("keypress.DT",i,function(t){13===t.which&&(t.preventDefault(),n(t))}).bind("selectstart.DT",function(){return!1})}function Bt(t,e,i,n){i&&t[e].push({fn:i,sName:n})}function Ft(e,i,n,r){var o=[];if(i&&(o=t.map(e[i].slice().reverse(),function(t,i){return t.fn.apply(e.oInstance,r)})),null!==n){var s=t.Event(n+".dt");t(e.nTable).trigger(s,r),o.push(s.result)}return o}function Nt(t){var e=t._iDisplayStart,i=t.fnDisplayEnd(),n=t._iDisplayLength;e>=i&&(e=i-n),e-=e%n,(n===-1||e<0)&&(e=0),t._iDisplayStart=e}function jt(e,i){var n=e.renderer,r=qt.ext.renderer[i];return t.isPlainObject(n)&&n[i]?r[n[i]]||r._:"string"==typeof n?r[n]||r._:r._}function $t(t){return t.oFeatures.bServerSide?"ssp":t.ajax||t.sAjaxSource?"ajax":"dom"}function Ht(t,e){var i=[],n=Ue.numbers_length,r=Math.floor(n/2);return e<=n?i=ce(0,e):t<=r?(i=ce(0,n-2),i.push("ellipsis"),i.push(e-1)):t>=e-1-r?(i=ce(e-(n-2),e),i.splice(0,0,"ellipsis"),i.splice(0,0,0)):(i=ce(t-r+2,t+r-1),i.push("ellipsis"),i.push(e-1),i.splice(0,0,"ellipsis"),i.splice(0,0,0)),i.DT_el="span",i}function zt(e){t.each({num:function(t){return Xe(t,e)},"num-fmt":function(t){return Xe(t,e,ee)},"html-num":function(t){return Xe(t,e,Kt)},"html-num-fmt":function(t){return Xe(t,e,Kt,ee)}},function(t,i){Ut.type.order[t+e+"-pre"]=i,t.match(/^html\-/)&&(Ut.type.search[t+e]=Ut.type.search.html)})}function Wt(t){return function(){var e=[Pt(this[qt.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return qt.ext.internal[t].apply(this,e)}}var Ut,Xt,Yt,Gt,qt=function(e){this.$=function(t,e){return this.api(!0).$(t,e)},this._=function(t,e){return this.api(!0).rows(t,e).data()},this.api=function(t){return new Xt(t?Pt(this[Ut.iApiIndex]):this)},this.fnAddData=function(e,i){var r=this.api(!0),o=t.isArray(e)&&(t.isArray(e[0])||t.isPlainObject(e[0]))?r.rows.add(e):r.row.add(e);return(i===n||i)&&r.draw(),o.flatten().toArray()},this.fnAdjustColumnSizing=function(t){var e=this.api(!0).columns.adjust(),i=e.settings()[0],r=i.oScroll;t===n||t?e.draw(!1):""===r.sX&&""===r.sY||gt(i)},this.fnClearTable=function(t){var e=this.api(!0).clear();(t===n||t)&&e.draw()},this.fnClose=function(t){this.api(!0).row(t).child.hide()},this.fnDeleteRow=function(t,e,i){var r=this.api(!0),o=r.rows(t),s=o.settings()[0],a=s.aoData[o[0][0]];return o.remove(),e&&e.call(this,s,a),(i===n||i)&&r.draw(),a},this.fnDestroy=function(t){this.api(!0).destroy(t)},this.fnDraw=function(t){this.api(!0).draw(t)},this.fnFilter=function(t,e,i,r,o,s){var a=this.api(!0);null===e||e===n?a.search(t,i,r,s):a.column(e).search(t,i,r,s),a.draw()},this.fnGetData=function(t,e){var i=this.api(!0);if(t!==n){var r=t.nodeName?t.nodeName.toLowerCase():"";return e!==n||"td"==r||"th"==r?i.cell(t,e).data():i.row(t).data()||null}return i.data().toArray()},this.fnGetNodes=function(t){var e=this.api(!0);return t!==n?e.row(t).node():e.rows().nodes().flatten().toArray()},this.fnGetPosition=function(t){var e=this.api(!0),i=t.nodeName.toUpperCase();if("TR"==i)return e.row(t).index();if("TD"==i||"TH"==i){var n=e.cell(t).index();return[n.row,n.columnVisible,n.column]}return null},this.fnIsOpen=function(t){return this.api(!0).row(t).child.isShown()},this.fnOpen=function(t,e,i){return this.api(!0).row(t).child(e,i).show().child()[0]},this.fnPageChange=function(t,e){var i=this.api(!0).page(t);(e===n||e)&&i.draw(!1)},this.fnSetColumnVis=function(t,e,i){var r=this.api(!0).column(t).visible(e);(i===n||i)&&r.columns.adjust().draw()},this.fnSettings=function(){return Pt(this[Ut.iApiIndex])},this.fnSort=function(t){this.api(!0).order(t).draw()},this.fnSortListener=function(t,e,i){this.api(!0).order.listener(t,e,i)},this.fnUpdate=function(t,e,i,r,o){var s=this.api(!0);return i===n||null===i?s.row(e).data(t):s.cell(e,i).data(t),(o===n||o)&&s.columns.adjust(),(r===n||r)&&s.draw(),0},this.fnVersionCheck=Ut.fnVersionCheck;var i=this,r=e===n,c=this.length;r&&(e={}),this.oApi=this.internal=Ut.internal;for(var d in qt.ext.internal)d&&(this[d]=Wt(d));return this.each(function(){var d,f={},g=c>1?Rt(f,e,!0):e,m=0,v=this.getAttribute("id"),y=!1,S=qt.defaults,T=t(this);if("table"!=this.nodeName.toLowerCase())return void Mt(null,0,"Non-table node initialisation ("+this.nodeName+")",2);a(S),l(S.column),o(S,S,!0),o(S.column,S.column,!0),o(S,t.extend(g,T.data()));var k=qt.settings;for(m=0,d=k.length;m<d;m++){var C=k[m];if(C.nTable==this||C.nTHead.parentNode==this||C.nTFoot&&C.nTFoot.parentNode==this){var _=g.bRetrieve!==n?g.bRetrieve:S.bRetrieve,D=g.bDestroy!==n?g.bDestroy:S.bDestroy;if(r||_)return C.oInstance;if(D){C.oInstance.fnDestroy();break}return void Mt(C,0,"Cannot reinitialise DataTable",3)}if(C.sTableId==this.id){k.splice(m,1);break}}null!==v&&""!==v||(v="DataTables_Table_"+qt.ext._unique++,this.id=v);var L=t.extend(!0,{},qt.models.oSettings,{sDestroyWidth:T[0].style.width,sInstance:v,sTableId:v});L.nTable=this,L.oApi=i.internal,L.oInit=g,k.push(L),L.oInstance=1===i.length?i:T.dataTable(),a(g),g.oLanguage&&s(g.oLanguage),g.aLengthMenu&&!g.iDisplayLength&&(g.iDisplayLength=t.isArray(g.aLengthMenu[0])?g.aLengthMenu[0][0]:g.aLengthMenu[0]),g=Rt(t.extend(!0,{},S),g),It(L.oFeatures,g,["bPaginate","bLengthChange","bFilter","bSort","bSortMulti","bInfo","bProcessing","bAutoWidth","bSortClasses","bServerSide","bDeferRender"]),It(L,g,["asStripeClasses","ajax","fnServerData","fnFormatNumber","sServerMethod","aaSorting","aaSortingFixed","aLengthMenu","sPaginationType","sAjaxSource","sAjaxDataProp","iStateDuration","sDom","bSortCellsTop","iTabIndex","fnStateLoadCallback","fnStateSaveCallback","renderer","searchDelay","rowId",["iCookieDuration","iStateDuration"],["oSearch","oPreviousSearch"],["aoSearchCols","aoPreSearchCols"],["iDisplayLength","_iDisplayLength"],["bJQueryUI","bJUI"]]),It(L.oScroll,g,[["sScrollX","sX"],["sScrollXInner","sXInner"],["sScrollY","sY"],["bScrollCollapse","bCollapse"]]),It(L.oLanguage,g,"fnInfoCallback"),Bt(L,"aoDrawCallback",g.fnDrawCallback,"user"),Bt(L,"aoServerParams",g.fnServerParams,"user"),Bt(L,"aoStateSaveParams",g.fnStateSaveParams,"user"),Bt(L,"aoStateLoadParams",g.fnStateLoadParams,"user"),Bt(L,"aoStateLoaded",g.fnStateLoaded,"user"),Bt(L,"aoRowCallback",g.fnRowCallback,"user"),Bt(L,"aoRowCreatedCallback",g.fnCreatedRow,"user"),Bt(L,"aoHeaderCallback",g.fnHeaderCallback,"user"),Bt(L,"aoFooterCallback",g.fnFooterCallback,"user"),Bt(L,"aoInitComplete",g.fnInitComplete,"user"),Bt(L,"aoPreDrawCallback",g.fnPreDrawCallback,"user"),L.rowIdFn=A(g.rowId),h(L);var E=L.oClasses;if(g.bJQueryUI?(t.extend(E,qt.ext.oJUIClasses,g.oClasses),g.sDom===S.sDom&&"lfrtip"===S.sDom&&(L.sDom='<"H"lfr>t<"F"ip>'),L.renderer?t.isPlainObject(L.renderer)&&!L.renderer.header&&(L.renderer.header="jqueryui"):L.renderer="jqueryui"):t.extend(E,qt.ext.classes,g.oClasses),T.addClass(E.sTable),L.iInitDisplayStart===n&&(L.iInitDisplayStart=g.iDisplayStart,L._iDisplayStart=g.iDisplayStart),null!==g.iDeferLoading){L.bDeferLoading=!0;var P=t.isArray(g.iDeferLoading);L._iRecordsDisplay=P?g.iDeferLoading[0]:g.iDeferLoading,L._iRecordsTotal=P?g.iDeferLoading[1]:g.iDeferLoading}var M=L.oLanguage;t.extend(!0,M,g.oLanguage),""!==M.sUrl&&(t.ajax({dataType:"json",url:M.sUrl,success:function(e){s(e),o(S.oLanguage,e),t.extend(!0,M,e),st(L)},error:function(){st(L)}}),y=!0),null===g.asStripeClasses&&(L.asStripeClasses=[E.sStripeOdd,E.sStripeEven]);var I=L.asStripeClasses,R=T.children("tbody").find("tr").eq(0);t.inArray(!0,t.map(I,function(t,e){return R.hasClass(t)}))!==-1&&(t("tbody tr",this).removeClass(I.join(" ")),L.asDestroyStripes=I.slice());var O,B=[],F=this.getElementsByTagName("thead");if(0!==F.length&&(H(L.aoHeader,F[0]),B=z(L)),null===g.aoColumns)for(O=[],m=0,d=B.length;m<d;m++)O.push(null);else O=g.aoColumns;for(m=0,d=O.length;m<d;m++)u(L,B?B[m]:null);if(b(L,g.aoColumnDefs,O,function(t,e){p(L,t,e)}),R.length){var N=function(t,e){return null!==t.getAttribute("data-"+e)?e:null};t(R[0]).children("th, td").each(function(t,e){var i=L.aoColumns[t];if(i.mData===t){var r=N(e,"sort")||N(e,"order"),o=N(e,"filter")||N(e,"search");null===r&&null===o||(i.mData={_:t+".display",sort:null!==r?t+".@data-"+r:n,type:null!==r?t+".@data-"+r:n,filter:null!==o?t+".@data-"+o:n},p(L,t))}})}var j=L.oFeatures;if(g.bStateSave&&(j.bStateSave=!0,Et(L,g),Bt(L,"aoDrawCallback",Lt,"state_save")),g.aaSorting===n){var $=L.aaSorting;for(m=0,d=$.length;m<d;m++)$[m][1]=L.aoColumns[m].asSorting[0]}At(L),j.bSort&&Bt(L,"aoDrawCallback",function(){if(L.bSorted){var e=St(L),i={};t.each(e,function(t,e){i[e.src]=e.dir}),Ft(L,null,"order",[L,e,i]),kt(L)}}),Bt(L,"aoDrawCallback",function(){(L.bSorted||"ssp"===$t(L)||j.bDeferRender)&&At(L)},"sc");var W=T.children("caption").each(function(){this._captionSide=T.css("caption-side")}),U=T.children("thead");0===U.length&&(U=t("<thead/>").appendTo(this)),L.nTHead=U[0];var X=T.children("tbody");0===X.length&&(X=t("<tbody/>").appendTo(this)),L.nTBody=X[0];var Y=T.children("tfoot");if(0===Y.length&&W.length>0&&(""!==L.oScroll.sX||""!==L.oScroll.sY)&&(Y=t("<tfoot/>").appendTo(this)),0===Y.length||0===Y.children().length?T.addClass(E.sNoFooter):Y.length>0&&(L.nTFoot=Y[0],H(L.aoFooter,L.nTFoot)),g.aaData)for(m=0;m<g.aaData.length;m++)x(L,g.aaData[m]);else(L.bDeferLoading||"dom"==$t(L))&&w(L,t(L.nTBody).children("tr"));L.aiDisplay=L.aiDisplayMaster.slice(),L.bInitialised=!0,y===!1&&st(L)}),i=null,this},Vt={},Jt=/[\r\n]/g,Kt=/<.*?>/g,Zt=/^[\w\+\-]/,Qt=/[\w\+\-]$/,te=new RegExp("(\\"+["/",".","*","+","?","|","(",")","[","]","{","}","\\","$","^","-"].join("|\\")+")","g"),ee=/[',$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfk]/gi,ie=function(t){return!t||t===!0||"-"===t},ne=function(t){var e=parseInt(t,10);return!isNaN(e)&&isFinite(t)?e:null},re=function(t,e){return Vt[e]||(Vt[e]=new RegExp(ve(e),"g")),"string"==typeof t&&"."!==e?t.replace(/\./g,"").replace(Vt[e],"."):t},oe=function(t,e,i){var n="string"==typeof t;return!!ie(t)||(e&&n&&(t=re(t,e)),i&&n&&(t=t.replace(ee,"")),!isNaN(parseFloat(t))&&isFinite(t))},se=function(t){return ie(t)||"string"==typeof t},ae=function(t,e,i){if(ie(t))return!0;var n=se(t);return n?!!oe(pe(t),e,i)||null:null},le=function(t,e,i){var r=[],o=0,s=t.length;if(i!==n)for(;o<s;o++)t[o]&&t[o][e]&&r.push(t[o][e][i]);else for(;o<s;o++)t[o]&&r.push(t[o][e]);return r},he=function(t,e,i,r){var o=[],s=0,a=e.length;if(r!==n)for(;s<a;s++)t[e[s]][i]&&o.push(t[e[s]][i][r]);else for(;s<a;s++)o.push(t[e[s]][i]);return o},ce=function(t,e){var i,r=[];e===n?(e=0,i=t):(i=e,e=t);for(var o=e;o<i;o++)r.push(o);return r},ue=function(t){for(var e=[],i=0,n=t.length;i<n;i++)t[i]&&e.push(t[i]);return e},pe=function(t){return t.replace(Kt,"")},de=function(t){var e,i,n,r=[],o=t.length,s=0;t:for(i=0;i<o;i++){for(e=t[i],n=0;n<s;n++)if(r[n]===e)continue t;r.push(e),s++}return r};qt.util={throttle:function(t,e){var i,r,o=e!==n?e:200;return function(){var e=this,s=+new Date,a=arguments;i&&s<i+o?(clearTimeout(r),r=setTimeout(function(){i=n,t.apply(e,a)},o)):(i=s,t.apply(e,a))}},escapeRegex:function(t){return t.replace(te,"\\$1")}};var fe=function(t,e,i){t[e]!==n&&(t[i]=t[e])},ge=/\[.*?\]$/,me=/\(\)$/,ve=qt.util.escapeRegex,ye=t("<div>")[0],be=ye.textContent!==n,xe=/<.*?>/g,we=qt.util.throttle,Se=[],Te=Array.prototype,ke=function(e){var i,n,r=qt.settings,o=t.map(r,function(t,e){return t.nTable});return e?e.nTable&&e.oApi?[e]:e.nodeName&&"table"===e.nodeName.toLowerCase()?(i=t.inArray(e,o),i!==-1?[r[i]]:null):e&&"function"==typeof e.settings?e.settings().toArray():("string"==typeof e?n=t(e):e instanceof t&&(n=e),n?n.map(function(e){return i=t.inArray(this,o),i!==-1?r[i]:null}).toArray():void 0):[]};Xt=function(e,i){if(!(this instanceof Xt))return new Xt(e,i);var n=[],r=function(t){var e=ke(t);e&&(n=n.concat(e))};if(t.isArray(e))for(var o=0,s=e.length;o<s;o++)r(e[o]);else r(e);this.context=de(n),i&&t.merge(this,i),this.selector={rows:null,cols:null,opts:null},Xt.extend(this,this,Se)},qt.Api=Xt,t.extend(Xt.prototype,{any:function(){return 0!==this.count()},concat:Te.concat,context:[],count:function(){return this.flatten().length},each:function(t){for(var e=0,i=this.length;e<i;e++)t.call(this,this[e],e,this);return this},eq:function(t){var e=this.context;return e.length>t?new Xt(e[t],this[t]):null},filter:function(t){var e=[];if(Te.filter)e=Te.filter.call(this,t,this);else for(var i=0,n=this.length;i<n;i++)t.call(this,this[i],i,this)&&e.push(this[i]);return new Xt(this.context,e)},flatten:function(){var t=[];return new Xt(this.context,t.concat.apply(t,this.toArray()))},join:Te.join,indexOf:Te.indexOf||function(t,e){for(var i=e||0,n=this.length;i<n;i++)if(this[i]===t)return i;return-1},iterator:function(t,e,i,r){var o,s,a,l,h,c,u,p,d=[],f=this.context,g=this.selector;for("string"==typeof t&&(r=i,i=e,e=t,t=!1),s=0,a=f.length;s<a;s++){var m=new Xt(f[s]);if("table"===e)o=i.call(m,f[s],s),o!==n&&d.push(o);else if("columns"===e||"rows"===e)o=i.call(m,f[s],this[s],s),o!==n&&d.push(o);else if("column"===e||"column-rows"===e||"row"===e||"cell"===e)for(u=this[s],"column-rows"===e&&(c=Ee(f[s],g.opts)),l=0,h=u.length;l<h;l++)p=u[l],o="cell"===e?i.call(m,f[s],p.row,p.column,s,l):i.call(m,f[s],p,s,l,c),o!==n&&d.push(o)}if(d.length||r){var v=new Xt(f,t?d.concat.apply([],d):d),y=v.selector;return y.rows=g.rows,y.cols=g.cols,y.opts=g.opts,v}return this},lastIndexOf:Te.lastIndexOf||function(t,e){return this.indexOf.apply(this.toArray.reverse(),arguments)},length:0,map:function(t){var e=[];if(Te.map)e=Te.map.call(this,t,this);else for(var i=0,n=this.length;i<n;i++)e.push(t.call(this,this[i],i));return new Xt(this.context,e)},pluck:function(t){return this.map(function(e){return e[t]})},pop:Te.pop,push:Te.push,reduce:Te.reduce||function(t,e){return c(this,t,e,0,this.length,1)},reduceRight:Te.reduceRight||function(t,e){return c(this,t,e,this.length-1,-1,-1)},reverse:Te.reverse,selector:null,shift:Te.shift,sort:Te.sort,splice:Te.splice,toArray:function(){return Te.slice.call(this)},to$:function(){return t(this)},toJQuery:function(){return t(this)},unique:function(){return new Xt(this.context,de(this))},unshift:Te.unshift}),Xt.extend=function(e,i,n){if(n.length&&i&&(i instanceof Xt||i.__dt_wrapper)){var r,o,s,a=function(t,e,i){return function(){var n=e.apply(t,arguments);return Xt.extend(n,n,i.methodExt),n}};for(r=0,o=n.length;r<o;r++)s=n[r],i[s.name]="function"==typeof s.val?a(e,s.val,s):t.isPlainObject(s.val)?{}:s.val,i[s.name].__dt_wrapper=!0,Xt.extend(e,i[s.name],s.propExt)}},Xt.register=Yt=function(e,i){if(t.isArray(e))for(var n=0,r=e.length;n<r;n++)Xt.register(e[n],i);else{var o,s,a,l,h=e.split("."),c=Se,u=function(t,e){for(var i=0,n=t.length;i<n;i++)if(t[i].name===e)return t[i];return null};for(o=0,s=h.length;o<s;o++){l=h[o].indexOf("()")!==-1,a=l?h[o].replace("()",""):h[o];var p=u(c,a);p||(p={name:a,val:{},methodExt:[],propExt:[]},c.push(p)),o===s-1?p.val=i:c=l?p.methodExt:p.propExt}}},Xt.registerPlural=Gt=function(e,i,r){Xt.register(e,r),Xt.register(i,function(){var e=r.apply(this,arguments);return e===this?this:e instanceof Xt?e.length?t.isArray(e[0])?new Xt(e.context,e[0]):e[0]:n:e})};var Ce=function(e,i){if("number"==typeof e)return[i[e]];var n=t.map(i,function(t,e){return t.nTable});return t(n).filter(e).map(function(e){var r=t.inArray(this,n);return i[r]}).toArray()};Yt("tables()",function(t){return t?new Xt(Ce(t,this.context)):this}),Yt("table()",function(t){var e=this.tables(t),i=e.context;return i.length?new Xt(i[0]):e}),Gt("tables().nodes()","table().node()",function(){return this.iterator("table",function(t){return t.nTable},1)}),Gt("tables().body()","table().body()",function(){return this.iterator("table",function(t){return t.nTBody},1)}),Gt("tables().header()","table().header()",function(){return this.iterator("table",function(t){return t.nTHead},1)}),Gt("tables().footer()","table().footer()",function(){return this.iterator("table",function(t){return t.nTFoot},1)}),Gt("tables().containers()","table().container()",function(){return this.iterator("table",function(t){return t.nTableWrapper},1)}),Yt("draw()",function(t){return this.iterator("table",function(e){"page"===t?N(e):("string"==typeof t&&(t="full-hold"!==t),j(e,t===!1))})}),Yt("page()",function(t){return t===n?this.page.info().page:this.iterator("table",function(e){ut(e,t)})}),Yt("page.info()",function(t){if(0===this.context.length)return n;var e=this.context[0],i=e._iDisplayStart,r=e.oFeatures.bPaginate?e._iDisplayLength:-1,o=e.fnRecordsDisplay(),s=r===-1;return{page:s?0:Math.floor(i/r),pages:s?1:Math.ceil(o/r),start:i,end:e.fnDisplayEnd(),length:r,recordsTotal:e.fnRecordsTotal(),recordsDisplay:o,serverSide:"ssp"===$t(e)}}),Yt("page.len()",function(t){return t===n?0!==this.context.length?this.context[0]._iDisplayLength:n:this.iterator("table",function(e){lt(e,t)})});var _e=function(t,e,i){if(i){var n=new Xt(t);n.one("draw",function(){i(n.ajax.json())})}if("ssp"==$t(t))j(t,e);else{dt(t,!0);var r=t.jqXHR;r&&4!==r.readyState&&r.abort(),W(t,[],function(i){E(t);for(var n=G(t,i),r=0,o=n.length;r<o;r++)x(t,n[r]);j(t,e),dt(t,!1)})}};Yt("ajax.json()",function(){var t=this.context;if(t.length>0)return t[0].json}),Yt("ajax.params()",function(){var t=this.context;if(t.length>0)return t[0].oAjaxData}),Yt("ajax.reload()",function(t,e){return this.iterator("table",function(i){_e(i,e===!1,t)})}),Yt("ajax.url()",function(e){var i=this.context;return e===n?0===i.length?n:(i=i[0],i.ajax?t.isPlainObject(i.ajax)?i.ajax.url:i.ajax:i.sAjaxSource):this.iterator("table",function(i){t.isPlainObject(i.ajax)?i.ajax.url=e:i.ajax=e})}),Yt("ajax.url().load()",function(t,e){return this.iterator("table",function(i){_e(i,e===!1,t)})});var Ae=function(e,i,r,o,s){var a,l,h,c,u,p,d=[],f=typeof i;for(i&&"string"!==f&&"function"!==f&&i.length!==n||(i=[i]),h=0,c=i.length;h<c;h++)for(l=i[h]&&i[h].split?i[h].split(","):[i[h]],u=0,p=l.length;u<p;u++)a=r("string"==typeof l[u]?t.trim(l[u]):l[u]),a&&a.length&&(d=d.concat(a));var g=Ut.selector[e];if(g.length)for(h=0,c=g.length;h<c;h++)d=g[h](o,s,d);return de(d)},De=function(e){return e||(e={}),e.filter&&e.search===n&&(e.search=e.filter),t.extend({search:"none",order:"current",page:"all"},e)},Le=function(t){for(var e=0,i=t.length;e<i;e++)if(t[e].length>0)return t[0]=t[e],t[0].length=1,t.length=1,t.context=[t.context[e]],t;return t.length=0,t},Ee=function(e,i){var n,r,o,s=[],a=e.aiDisplay,l=e.aiDisplayMaster,h=i.search,c=i.order,u=i.page;if("ssp"==$t(e))return"removed"===h?[]:ce(0,l.length);if("current"==u)for(n=e._iDisplayStart,r=e.fnDisplayEnd();n<r;n++)s.push(a[n]);else if("current"==c||"applied"==c)s="none"==h?l.slice():"applied"==h?a.slice():t.map(l,function(e,i){return t.inArray(e,a)===-1?e:null});else if("index"==c||"original"==c)for(n=0,r=e.aoData.length;n<r;n++)"none"==h?s.push(n):(o=t.inArray(n,a),(o===-1&&"removed"==h||o>=0&&"applied"==h)&&s.push(n));return s},Pe=function(e,i,r){var o=function(i){var o=ne(i);if(null!==o&&!r)return[o];var s=Ee(e,r);if(null!==o&&t.inArray(o,s)!==-1)return[o];if(!i)return s;if("function"==typeof i)return t.map(s,function(t){var n=e.aoData[t];return i(t,n._aData,n.nTr)?t:null});var a=ue(he(e.aoData,s,"nTr"));if(i.nodeName){if(i._DT_RowIndex!==n)return[i._DT_RowIndex];if(i._DT_CellIndex)return[i._DT_CellIndex.row];var l=t(i).closest("*[data-dt-row]");return l.length?[l.data("dt-row")]:[]}if("string"==typeof i&&"#"===i.charAt(0)){var h=e.aIds[i.replace(/^#/,"")];if(h!==n)return[h.idx]}return t(a).filter(i).map(function(){return this._DT_RowIndex}).toArray()};return Ae("row",i,o,e,r)};Yt("rows()",function(e,i){e===n?e="":t.isPlainObject(e)&&(i=e,e=""),i=De(i);var r=this.iterator("table",function(t){return Pe(t,e,i)},1);return r.selector.rows=e,r.selector.opts=i,r}),Yt("rows().nodes()",function(){return this.iterator("row",function(t,e){return t.aoData[e].nTr||n},1)}),Yt("rows().data()",function(){return this.iterator(!0,"rows",function(t,e){return he(t.aoData,e,"_aData")},1)}),Gt("rows().cache()","row().cache()",function(t){return this.iterator("row",function(e,i){var n=e.aoData[i];return"search"===t?n._aFilterData:n._aSortData},1)}),Gt("rows().invalidate()","row().invalidate()",function(t){return this.iterator("row",function(e,i){M(e,i,t)})}),Gt("rows().indexes()","row().index()",function(){return this.iterator("row",function(t,e){return e},1)}),Gt("rows().ids()","row().id()",function(t){for(var e=[],i=this.context,n=0,r=i.length;n<r;n++)for(var o=0,s=this[n].length;o<s;o++){var a=i[n].rowIdFn(i[n].aoData[this[n][o]]._aData);e.push((t===!0?"#":"")+a)}return new Xt(i,e)}),Gt("rows().remove()","row().remove()",function(){var t=this;return this.iterator("row",function(e,i,r){var o,s,a,l,h,c,u=e.aoData,p=u[i];for(u.splice(i,1),o=0,s=u.length;o<s;o++)if(h=u[o],c=h.anCells,null!==h.nTr&&(h.nTr._DT_RowIndex=o),null!==c)for(a=0,l=c.length;a<l;a++)c[a]._DT_CellIndex.row=o;P(e.aiDisplayMaster,i),P(e.aiDisplay,i),P(t[r],i,!1),Nt(e);var d=e.rowIdFn(p._aData);d!==n&&delete e.aIds[d]}),this.iterator("table",function(t){for(var e=0,i=t.aoData.length;e<i;e++)t.aoData[e].idx=e}),this}),Yt("rows.add()",function(e){var i=this.iterator("table",function(t){var i,n,r,o=[];for(n=0,r=e.length;n<r;n++)i=e[n],i.nodeName&&"TR"===i.nodeName.toUpperCase()?o.push(w(t,i)[0]):o.push(x(t,i));return o},1),n=this.rows(-1);return n.pop(),t.merge(n,i),n}),Yt("row()",function(t,e){return Le(this.rows(t,e))}),Yt("row().data()",function(t){var e=this.context;return t===n?e.length&&this.length?e[0].aoData[this[0]]._aData:n:(e[0].aoData[this[0]]._aData=t,M(e[0],this[0],"data"),this)}),Yt("row().node()",function(){var t=this.context;return t.length&&this.length?t[0].aoData[this[0]].nTr||null:null}),Yt("row.add()",function(e){e instanceof t&&e.length&&(e=e[0]);var i=this.iterator("table",function(t){return e.nodeName&&"TR"===e.nodeName.toUpperCase()?w(t,e)[0]:x(t,e)});return this.row(i[0])});var Me=function(e,i,n,r){var o=[],s=function(i,n){if(t.isArray(i)||i instanceof t)for(var r=0,a=i.length;r<a;r++)s(i[r],n);else if(i.nodeName&&"tr"===i.nodeName.toLowerCase())o.push(i);else{var l=t("<tr><td/></tr>").addClass(n);t("td",l).addClass(n).html(i)[0].colSpan=m(e),o.push(l[0])}};s(n,r),i._details&&i._details.remove(),i._details=t(o),i._detailsShow&&i._details.insertAfter(i.nTr)},Ie=function(t,e){var i=t.context;if(i.length){var r=i[0].aoData[e!==n?e:t[0]];r&&r._details&&(r._details.remove(),r._detailsShow=n,r._details=n)}},Re=function(t,e){var i=t.context;if(i.length&&t.length){var n=i[0].aoData[t[0]];n._details&&(n._detailsShow=e,e?n._details.insertAfter(n.nTr):n._details.detach(),Oe(i[0]))}},Oe=function(t){var e=new Xt(t),i=".dt.DT_details",n="draw"+i,r="column-visibility"+i,o="destroy"+i,s=t.aoData;e.off(n+" "+r+" "+o),le(s,"_details").length>0&&(e.on(n,function(i,n){t===n&&e.rows({page:"current"}).eq(0).each(function(t){var e=s[t];e._detailsShow&&e._details.insertAfter(e.nTr)})}),e.on(r,function(e,i,n,r){if(t===i)for(var o,a=m(i),l=0,h=s.length;l<h;l++)o=s[l],o._details&&o._details.children("td[colspan]").attr("colspan",a)}),e.on(o,function(i,n){if(t===n)for(var r=0,o=s.length;r<o;r++)s[r]._details&&Ie(e,r)}))},Be="",Fe=Be+"row().child",Ne=Fe+"()";Yt(Ne,function(t,e){var i=this.context;return t===n?i.length&&this.length?i[0].aoData[this[0]]._details:n:(t===!0?this.child.show():t===!1?Ie(this):i.length&&this.length&&Me(i[0],i[0].aoData[this[0]],t,e),this)}),Yt([Fe+".show()",Ne+".show()"],function(t){return Re(this,!0),this}),Yt([Fe+".hide()",Ne+".hide()"],function(){return Re(this,!1),this}),Yt([Fe+".remove()",Ne+".remove()"],function(){return Ie(this),this}),Yt(Fe+".isShown()",function(){var t=this.context;return!(!t.length||!this.length)&&(t[0].aoData[this[0]]._detailsShow||!1)});var je=/^(.+):(name|visIdx|visible)$/,$e=function(t,e,i,n,r){for(var o=[],s=0,a=r.length;s<a;s++)o.push(k(t,r[s],e));return o},He=function(e,i,n){var r=e.aoColumns,o=le(r,"sName"),s=le(r,"nTh"),a=function(i){var a=ne(i);if(""===i)return ce(r.length);if(null!==a)return[a>=0?a:r.length+a];if("function"==typeof i){var l=Ee(e,n);return t.map(r,function(t,n){return i(n,$e(e,n,0,0,l),s[n])?n:null})}var h="string"==typeof i?i.match(je):"";if(h)switch(h[2]){case"visIdx":case"visible":var c=parseInt(h[1],10);if(c<0){var u=t.map(r,function(t,e){return t.bVisible?e:null});return[u[u.length+c]]}return[f(e,c)];case"name":return t.map(o,function(t,e){return t===h[1]?e:null});default:return[]}if(i.nodeName&&i._DT_CellIndex)return[i._DT_CellIndex.column];var p=t(s).filter(i).map(function(){return t.inArray(this,s)}).toArray();if(p.length||!i.nodeName)return p;var d=t(i).closest("*[data-dt-column]");return d.length?[d.data("dt-column")]:[]};return Ae("column",i,a,e,n)},ze=function(e,i,r){var o,s,a,l,h=e.aoColumns,c=h[i],u=e.aoData;if(r===n)return c.bVisible;if(c.bVisible!==r){if(r){var p=t.inArray(!0,le(h,"bVisible"),i+1);for(s=0,a=u.length;s<a;s++)l=u[s].nTr,o=u[s].anCells,l&&l.insertBefore(o[i],o[p]||null)}else t(le(e.aoData,"anCells",i)).detach();c.bVisible=r,F(e,e.aoHeader),F(e,e.aoFooter),Lt(e)}};Yt("columns()",function(e,i){e===n?e="":t.isPlainObject(e)&&(i=e,e=""),i=De(i);var r=this.iterator("table",function(t){return He(t,e,i)},1);return r.selector.cols=e,r.selector.opts=i,r}),Gt("columns().header()","column().header()",function(t,e){return this.iterator("column",function(t,e){return t.aoColumns[e].nTh},1)}),Gt("columns().footer()","column().footer()",function(t,e){return this.iterator("column",function(t,e){return t.aoColumns[e].nTf},1)}),Gt("columns().data()","column().data()",function(){return this.iterator("column-rows",$e,1)}),Gt("columns().dataSrc()","column().dataSrc()",function(){return this.iterator("column",function(t,e){return t.aoColumns[e].mData},1)}),Gt("columns().cache()","column().cache()",function(t){return this.iterator("column-rows",function(e,i,n,r,o){return he(e.aoData,o,"search"===t?"_aFilterData":"_aSortData",i)},1)}),Gt("columns().nodes()","column().nodes()",function(){return this.iterator("column-rows",function(t,e,i,n,r){return he(t.aoData,r,"anCells",e)},1)}),Gt("columns().visible()","column().visible()",function(t,e){var i=this.iterator("column",function(e,i){return t===n?e.aoColumns[i].bVisible:void ze(e,i,t)});return t!==n&&(this.iterator("column",function(i,n){Ft(i,null,"column-visibility",[i,n,t,e])}),(e===n||e)&&this.columns.adjust()),i}),Gt("columns().indexes()","column().index()",function(t){return this.iterator("column",function(e,i){return"visible"===t?g(e,i):i},1)}),Yt("columns.adjust()",function(){return this.iterator("table",function(t){d(t)},1)}),Yt("column.index()",function(t,e){if(0!==this.context.length){var i=this.context[0];if("fromVisible"===t||"toData"===t)return f(i,e);if("fromData"===t||"toVisible"===t)return g(i,e)}}),Yt("column()",function(t,e){return Le(this.columns(t,e))});var We=function(e,i,r){var o,s,a,l,h,c,u,p=e.aoData,d=Ee(e,r),f=ue(he(p,d,"anCells")),g=t([].concat.apply([],f)),m=e.aoColumns.length,v=function(i){var r="function"==typeof i;if(null===i||i===n||r){for(s=[],a=0,l=d.length;a<l;a++)for(o=d[a],h=0;h<m;h++)c={row:o,column:h},r?(u=p[o],i(c,k(e,o,h),u.anCells?u.anCells[h]:null)&&s.push(c)):s.push(c);return s}if(t.isPlainObject(i))return[i];var f=g.filter(i).map(function(t,e){return{row:e._DT_CellIndex.row,column:e._DT_CellIndex.column}}).toArray();return f.length||!i.nodeName?f:(u=t(i).closest("*[data-dt-row]"),u.length?[{row:u.data("dt-row"),column:u.data("dt-column")}]:[])};return Ae("cell",i,v,e,r)};Yt("cells()",function(e,i,r){if(t.isPlainObject(e)&&(e.row===n?(r=e,e=null):(r=i,i=null)),t.isPlainObject(i)&&(r=i,i=null),null===i||i===n)return this.iterator("table",function(t){return We(t,e,De(r))});var o,s,a,l,h,c=this.columns(i,r),u=this.rows(e,r),p=this.iterator("table",function(t,e){for(o=[],s=0,a=u[e].length;s<a;s++)for(l=0,h=c[e].length;l<h;l++)o.push({row:u[e][s],column:c[e][l]});return o},1);return t.extend(p.selector,{cols:i,rows:e,opts:r}),p}),Gt("cells().nodes()","cell().node()",function(){return this.iterator("cell",function(t,e,i){var r=t.aoData[e];return r&&r.anCells?r.anCells[i]:n},1)}),Yt("cells().data()",function(){return this.iterator("cell",function(t,e,i){return k(t,e,i)},1)}),Gt("cells().cache()","cell().cache()",function(t){return t="search"===t?"_aFilterData":"_aSortData",this.iterator("cell",function(e,i,n){return e.aoData[i][t][n]},1)}),Gt("cells().render()","cell().render()",function(t){return this.iterator("cell",function(e,i,n){return k(e,i,n,t)},1)}),Gt("cells().indexes()","cell().index()",function(){return this.iterator("cell",function(t,e,i){return{row:e,column:i,columnVisible:g(t,i)}},1)}),Gt("cells().invalidate()","cell().invalidate()",function(t){return this.iterator("cell",function(e,i,n){
M(e,i,t,n)})}),Yt("cell()",function(t,e,i){return Le(this.cells(t,e,i))}),Yt("cell().data()",function(t){var e=this.context,i=this[0];return t===n?e.length&&i.length?k(e[0],i[0].row,i[0].column):n:(C(e[0],i[0].row,i[0].column,t),M(e[0],i[0].row,"data",i[0].column),this)}),Yt("order()",function(e,i){var r=this.context;return e===n?0!==r.length?r[0].aaSorting:n:("number"==typeof e?e=[[e,i]]:e.length&&!t.isArray(e[0])&&(e=Array.prototype.slice.call(arguments)),this.iterator("table",function(t){t.aaSorting=e.slice()}))}),Yt("order.listener()",function(t,e,i){return this.iterator("table",function(n){_t(n,t,e,i)})}),Yt("order.fixed()",function(e){if(!e){var i=this.context,r=i.length?i[0].aaSortingFixed:n;return t.isArray(r)?{pre:r}:r}return this.iterator("table",function(i){i.aaSortingFixed=t.extend(!0,{},e)})}),Yt(["columns().order()","column().order()"],function(e){var i=this;return this.iterator("table",function(n,r){var o=[];t.each(i[r],function(t,i){o.push([i,e])}),n.aaSorting=o})}),Yt("search()",function(e,i,r,o){var s=this.context;return e===n?0!==s.length?s[0].oPreviousSearch.sSearch:n:this.iterator("table",function(n){n.oFeatures.bFilter&&V(n,t.extend({},n.oPreviousSearch,{sSearch:e+"",bRegex:null!==i&&i,bSmart:null===r||r,bCaseInsensitive:null===o||o}),1)})}),Gt("columns().search()","column().search()",function(e,i,r,o){return this.iterator("column",function(s,a){var l=s.aoPreSearchCols;return e===n?l[a].sSearch:void(s.oFeatures.bFilter&&(t.extend(l[a],{sSearch:e+"",bRegex:null!==i&&i,bSmart:null===r||r,bCaseInsensitive:null===o||o}),V(s,s.oPreviousSearch,1)))})}),Yt("state()",function(){return this.context.length?this.context[0].oSavedState:null}),Yt("state.clear()",function(){return this.iterator("table",function(t){t.fnStateSaveCallback.call(t.oInstance,t,{})})}),Yt("state.loaded()",function(){return this.context.length?this.context[0].oLoadedState:null}),Yt("state.save()",function(){return this.iterator("table",function(t){Lt(t)})}),qt.versionCheck=qt.fnVersionCheck=function(t){for(var e,i,n=qt.version.split("."),r=t.split("."),o=0,s=r.length;o<s;o++)if(e=parseInt(n[o],10)||0,i=parseInt(r[o],10)||0,e!==i)return e>i;return!0},qt.isDataTable=qt.fnIsDataTable=function(e){var i=t(e).get(0),n=!1;return t.each(qt.settings,function(e,r){var o=r.nScrollHead?t("table",r.nScrollHead)[0]:null,s=r.nScrollFoot?t("table",r.nScrollFoot)[0]:null;r.nTable!==i&&o!==i&&s!==i||(n=!0)}),n},qt.tables=qt.fnTables=function(e){var i=!1;t.isPlainObject(e)&&(i=e.api,e=e.visible);var n=t.map(qt.settings,function(i){if(!e||e&&t(i.nTable).is(":visible"))return i.nTable});return i?new Xt(n):n},qt.camelToHungarian=o,Yt("$()",function(e,i){var n=this.rows(i).nodes(),r=t(n);return t([].concat(r.filter(e).toArray(),r.find(e).toArray()))}),t.each(["on","one","off"],function(e,i){Yt(i+"()",function(){var e=Array.prototype.slice.call(arguments);e[0].match(/\.dt\b/)||(e[0]+=".dt");var n=t(this.tables().nodes());return n[i].apply(n,e),this})}),Yt("clear()",function(){return this.iterator("table",function(t){E(t)})}),Yt("settings()",function(){return new Xt(this.context,this.context)}),Yt("init()",function(){var t=this.context;return t.length?t[0].oInit:null}),Yt("data()",function(){return this.iterator("table",function(t){return le(t.aoData,"_aData")}).flatten()}),Yt("destroy()",function(i){return i=i||!1,this.iterator("table",function(n){var r,o=n.nTableWrapper.parentNode,s=n.oClasses,a=n.nTable,l=n.nTBody,h=n.nTHead,c=n.nTFoot,u=t(a),p=t(l),d=t(n.nTableWrapper),f=t.map(n.aoData,function(t){return t.nTr});n.bDestroying=!0,Ft(n,"aoDestroyCallback","destroy",[n]),i||new Xt(n).columns().visible(!0),d.unbind(".DT").find(":not(tbody *)").unbind(".DT"),t(e).unbind(".DT-"+n.sInstance),a!=h.parentNode&&(u.children("thead").detach(),u.append(h)),c&&a!=c.parentNode&&(u.children("tfoot").detach(),u.append(c)),n.aaSorting=[],n.aaSortingFixed=[],At(n),t(f).removeClass(n.asStripeClasses.join(" ")),t("th, td",h).removeClass(s.sSortable+" "+s.sSortableAsc+" "+s.sSortableDesc+" "+s.sSortableNone),n.bJUI&&(t("th span."+s.sSortIcon+", td span."+s.sSortIcon,h).detach(),t("th, td",h).each(function(){var e=t("div."+s.sSortJUIWrapper,this);t(this).append(e.contents()),e.detach()})),p.children().detach(),p.append(f);var g=i?"remove":"detach";u[g](),d[g](),!i&&o&&(o.insertBefore(a,n.nTableReinsertBefore),u.css("width",n.sDestroyWidth).removeClass(s.sTable),r=n.asDestroyStripes.length,r&&p.children().each(function(e){t(this).addClass(n.asDestroyStripes[e%r])}));var m=t.inArray(n,qt.settings);m!==-1&&qt.settings.splice(m,1)})}),t.each(["column","row","cell"],function(t,e){Yt(e+"s().every()",function(t){var i=this.selector.opts,r=this;return this.iterator(e,function(o,s,a,l,h){t.call(r[e](s,"cell"===e?a:i,"cell"===e?i:n),s,a,l,h)})})}),Yt("i18n()",function(e,i,r){var o=this.context[0],s=A(e)(o.oLanguage);return s===n&&(s=i),r!==n&&t.isPlainObject(s)&&(s=s[r]!==n?s[r]:s._),s.replace("%d",r)}),qt.version="1.10.12",qt.settings=[],qt.models={},qt.models.oSearch={bCaseInsensitive:!0,sSearch:"",bRegex:!1,bSmart:!0},qt.models.oRow={nTr:null,anCells:null,_aData:[],_aSortData:null,_aFilterData:null,_sFilterRow:null,_sRowStripe:"",src:null,idx:-1},qt.models.oColumn={idx:null,aDataSort:null,asSorting:null,bSearchable:null,bSortable:null,bVisible:null,_sManualType:null,_bAttrSrc:!1,fnCreatedCell:null,fnGetData:null,fnSetData:null,mData:null,mRender:null,nTh:null,nTf:null,sClass:null,sContentPadding:null,sDefaultContent:null,sName:null,sSortDataType:"std",sSortingClass:null,sSortingClassJUI:null,sTitle:null,sType:null,sWidth:null,sWidthOrig:null},qt.defaults={aaData:null,aaSorting:[[0,"asc"]],aaSortingFixed:[],ajax:null,aLengthMenu:[10,25,50,100],aoColumns:null,aoColumnDefs:null,aoSearchCols:[],asStripeClasses:null,bAutoWidth:!0,bDeferRender:!1,bDestroy:!1,bFilter:!0,bInfo:!0,bJQueryUI:!1,bLengthChange:!0,bPaginate:!0,bProcessing:!1,bRetrieve:!1,bScrollCollapse:!1,bServerSide:!1,bSort:!0,bSortMulti:!0,bSortCellsTop:!1,bSortClasses:!0,bStateSave:!1,fnCreatedRow:null,fnDrawCallback:null,fnFooterCallback:null,fnFormatNumber:function(t){return t.toString().replace(/\B(?=(\d{3})+(?!\d))/g,this.oLanguage.sThousands)},fnHeaderCallback:null,fnInfoCallback:null,fnInitComplete:null,fnPreDrawCallback:null,fnRowCallback:null,fnServerData:null,fnServerParams:null,fnStateLoadCallback:function(t){try{return JSON.parse((t.iStateDuration===-1?sessionStorage:localStorage).getItem("DataTables_"+t.sInstance+"_"+location.pathname))}catch(e){}},fnStateLoadParams:null,fnStateLoaded:null,fnStateSaveCallback:function(t,e){try{(t.iStateDuration===-1?sessionStorage:localStorage).setItem("DataTables_"+t.sInstance+"_"+location.pathname,JSON.stringify(e))}catch(i){}},fnStateSaveParams:null,iStateDuration:7200,iDeferLoading:null,iDisplayLength:10,iDisplayStart:0,iTabIndex:0,oClasses:{},oLanguage:{oAria:{sSortAscending:": activate to sort column ascending",sSortDescending:": activate to sort column descending"},oPaginate:{sFirst:"First",sLast:"Last",sNext:"Next",sPrevious:"Previous"},sEmptyTable:"No data available in table",sInfo:"Showing _START_ to _END_ of _TOTAL_ entries",sInfoEmpty:"Showing 0 to 0 of 0 entries",sInfoFiltered:"(filtered from _MAX_ total entries)",sInfoPostFix:"",sDecimal:"",sThousands:",",sLengthMenu:"Show _MENU_ entries",sLoadingRecords:"Loading...",sProcessing:"Processing...",sSearch:"Search:",sSearchPlaceholder:"",sUrl:"",sZeroRecords:"No matching records found"},oSearch:t.extend({},qt.models.oSearch),sAjaxDataProp:"data",sAjaxSource:null,sDom:"lfrtip",searchDelay:null,sPaginationType:"simple_numbers",sScrollX:"",sScrollXInner:"",sScrollY:"",sServerMethod:"GET",renderer:null,rowId:"DT_RowId"},r(qt.defaults),qt.defaults.column={aDataSort:null,iDataSort:-1,asSorting:["asc","desc"],bSearchable:!0,bSortable:!0,bVisible:!0,fnCreatedCell:null,mData:null,mRender:null,sCellType:"td",sClass:"",sContentPadding:"",sDefaultContent:null,sName:"",sSortDataType:"std",sTitle:null,sType:null,sWidth:null},r(qt.defaults.column),qt.models.oSettings={oFeatures:{bAutoWidth:null,bDeferRender:null,bFilter:null,bInfo:null,bLengthChange:null,bPaginate:null,bProcessing:null,bServerSide:null,bSort:null,bSortMulti:null,bSortClasses:null,bStateSave:null},oScroll:{bCollapse:null,iBarWidth:0,sX:null,sXInner:null,sY:null},oLanguage:{fnInfoCallback:null},oBrowser:{bScrollOversize:!1,bScrollbarLeft:!1,bBounding:!1,barWidth:0},ajax:null,aanFeatures:[],aoData:[],aiDisplay:[],aiDisplayMaster:[],aIds:{},aoColumns:[],aoHeader:[],aoFooter:[],oPreviousSearch:{},aoPreSearchCols:[],aaSorting:null,aaSortingFixed:[],asStripeClasses:null,asDestroyStripes:[],sDestroyWidth:0,aoRowCallback:[],aoHeaderCallback:[],aoFooterCallback:[],aoDrawCallback:[],aoRowCreatedCallback:[],aoPreDrawCallback:[],aoInitComplete:[],aoStateSaveParams:[],aoStateLoadParams:[],aoStateLoaded:[],sTableId:"",nTable:null,nTHead:null,nTFoot:null,nTBody:null,nTableWrapper:null,bDeferLoading:!1,bInitialised:!1,aoOpenRows:[],sDom:null,searchDelay:null,sPaginationType:"two_button",iStateDuration:0,aoStateSave:[],aoStateLoad:[],oSavedState:null,oLoadedState:null,sAjaxSource:null,sAjaxDataProp:null,bAjaxDataGet:!0,jqXHR:null,json:n,oAjaxData:n,fnServerData:null,aoServerParams:[],sServerMethod:null,fnFormatNumber:null,aLengthMenu:null,iDraw:0,bDrawing:!1,iDrawError:-1,_iDisplayLength:10,_iDisplayStart:0,_iRecordsTotal:0,_iRecordsDisplay:0,bJUI:null,oClasses:{},bFiltered:!1,bSorted:!1,bSortCellsTop:null,oInit:null,aoDestroyCallback:[],fnRecordsTotal:function(){return"ssp"==$t(this)?1*this._iRecordsTotal:this.aiDisplayMaster.length},fnRecordsDisplay:function(){return"ssp"==$t(this)?1*this._iRecordsDisplay:this.aiDisplay.length},fnDisplayEnd:function(){var t=this._iDisplayLength,e=this._iDisplayStart,i=e+t,n=this.aiDisplay.length,r=this.oFeatures,o=r.bPaginate;return r.bServerSide?o===!1||t===-1?e+n:Math.min(e+t,this._iRecordsDisplay):!o||i>n||t===-1?n:i},oInstance:null,sInstance:null,iTabIndex:0,nScrollHead:null,nScrollFoot:null,aLastSort:[],oPlugins:{},rowIdFn:null,rowId:null},qt.ext=Ut={buttons:{},classes:{},builder:"-source-",errMode:"alert",feature:[],search:[],selector:{cell:[],column:[],row:[]},internal:{},legacy:{ajax:null},pager:{},renderer:{pageButton:{},header:{}},order:{},type:{detect:[],search:{},order:{}},_unique:0,fnVersionCheck:qt.fnVersionCheck,iApiIndex:0,oJUIClasses:{},sVersion:qt.version},t.extend(Ut,{afnFiltering:Ut.search,aTypes:Ut.type.detect,ofnSearch:Ut.type.search,oSort:Ut.type.order,afnSortData:Ut.order,aoFeatures:Ut.feature,oApi:Ut.internal,oStdClasses:Ut.classes,oPagination:Ut.pager}),t.extend(qt.ext.classes,{sTable:"dataTable",sNoFooter:"no-footer",sPageButton:"paginate_button",sPageButtonActive:"current",sPageButtonDisabled:"disabled",sStripeOdd:"odd",sStripeEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"sorting_asc",sSortDesc:"sorting_desc",sSortable:"sorting",sSortableAsc:"sorting_asc_disabled",sSortableDesc:"sorting_desc_disabled",sSortableNone:"sorting_disabled",sSortColumn:"sorting_",sFilterInput:"",sLengthSelect:"",sScrollWrapper:"dataTables_scroll",sScrollHead:"dataTables_scrollHead",sScrollHeadInner:"dataTables_scrollHeadInner",sScrollBody:"dataTables_scrollBody",sScrollFoot:"dataTables_scrollFoot",sScrollFootInner:"dataTables_scrollFootInner",sHeaderTH:"",sFooterTH:"",sSortJUIAsc:"",sSortJUIDesc:"",sSortJUI:"",sSortJUIAscAllowed:"",sSortJUIDescAllowed:"",sSortJUIWrapper:"",sSortIcon:"",sJUIHeader:"",sJUIFooter:""}),function(){var e="";e="";var i=e+"ui-state-default",n=e+"css_right ui-icon ui-icon-",r=e+"fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix";t.extend(qt.ext.oJUIClasses,qt.ext.classes,{sPageButton:"fg-button ui-button "+i,sPageButtonActive:"ui-state-disabled",sPageButtonDisabled:"ui-state-disabled",sPaging:"dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi ui-buttonset-multi paging_",sSortAsc:i+" sorting_asc",sSortDesc:i+" sorting_desc",sSortable:i+" sorting",sSortableAsc:i+" sorting_asc_disabled",sSortableDesc:i+" sorting_desc_disabled",sSortableNone:i+" sorting_disabled",sSortJUIAsc:n+"triangle-1-n",sSortJUIDesc:n+"triangle-1-s",sSortJUI:n+"carat-2-n-s",sSortJUIAscAllowed:n+"carat-1-n",sSortJUIDescAllowed:n+"carat-1-s",sSortJUIWrapper:"DataTables_sort_wrapper",sSortIcon:"DataTables_sort_icon",sScrollHead:"dataTables_scrollHead "+i,sScrollFoot:"dataTables_scrollFoot "+i,sHeaderTH:i,sFooterTH:i,sJUIHeader:r+" ui-corner-tl ui-corner-tr",sJUIFooter:r+" ui-corner-bl ui-corner-br"})}();var Ue=qt.ext.pager;t.extend(Ue,{simple:function(t,e){return["previous","next"]},full:function(t,e){return["first","previous","next","last"]},numbers:function(t,e){return[Ht(t,e)]},simple_numbers:function(t,e){return["previous",Ht(t,e),"next"]},full_numbers:function(t,e){return["first","previous",Ht(t,e),"next","last"]},_numbers:Ht,numbers_length:7}),t.extend(!0,qt.ext.renderer,{pageButton:{_:function(e,n,r,o,s,a){var l,h,c,u=e.oClasses,p=e.oLanguage.oPaginate,d=e.oLanguage.oAria.paginate||{},f=0,g=function(i,n){var o,c,m,v,y=function(t){ut(e,t.data.action,!0)};for(o=0,c=n.length;o<c;o++)if(v=n[o],t.isArray(v)){var b=t("<"+(v.DT_el||"div")+"/>").appendTo(i);g(b,v)}else{switch(l=null,h="",v){case"ellipsis":i.append('<span class="ellipsis">&#x2026;</span>');break;case"first":l=p.sFirst,h=v+(s>0?"":" "+u.sPageButtonDisabled);break;case"previous":l=p.sPrevious,h=v+(s>0?"":" "+u.sPageButtonDisabled);break;case"next":l=p.sNext,h=v+(s<a-1?"":" "+u.sPageButtonDisabled);break;case"last":l=p.sLast,h=v+(s<a-1?"":" "+u.sPageButtonDisabled);break;default:l=v+1,h=s===v?u.sPageButtonActive:""}null!==l&&(m=t("<a>",{"class":u.sPageButton+" "+h,"aria-controls":e.sTableId,"aria-label":d[v],"data-dt-idx":f,tabindex:e.iTabIndex,id:0===r&&"string"==typeof v?e.sTableId+"_"+v:null}).html(l).appendTo(i),Ot(m,{action:v},y),f++)}};try{c=t(n).find(i.activeElement).data("dt-idx")}catch(m){}g(t(n).empty(),o),c&&t(n).find("[data-dt-idx="+c+"]").focus()}}}),t.extend(qt.ext.type.detect,[function(t,e){var i=e.oLanguage.sDecimal;return oe(t,i)?"num"+i:null},function(t,e){if(t&&!(t instanceof Date)&&(!Zt.test(t)||!Qt.test(t)))return null;var i=Date.parse(t);return null!==i&&!isNaN(i)||ie(t)?"date":null},function(t,e){var i=e.oLanguage.sDecimal;return oe(t,i,!0)?"num-fmt"+i:null},function(t,e){var i=e.oLanguage.sDecimal;return ae(t,i)?"html-num"+i:null},function(t,e){var i=e.oLanguage.sDecimal;return ae(t,i,!0)?"html-num-fmt"+i:null},function(t,e){return ie(t)||"string"==typeof t&&t.indexOf("<")!==-1?"html":null}]),t.extend(qt.ext.type.search,{html:function(t){return ie(t)?t:"string"==typeof t?t.replace(Jt," ").replace(Kt,""):""},string:function(t){return ie(t)?t:"string"==typeof t?t.replace(Jt," "):t}});var Xe=function(t,e,i,n){return 0===t||t&&"-"!==t?(e&&(t=re(t,e)),t.replace&&(i&&(t=t.replace(i,"")),n&&(t=t.replace(n,""))),1*t):-(1/0)};t.extend(Ut.type.order,{"date-pre":function(t){return Date.parse(t)||0},"html-pre":function(t){return ie(t)?"":t.replace?t.replace(/<.*?>/g,"").toLowerCase():t+""},"string-pre":function(t){return ie(t)?"":"string"==typeof t?t.toLowerCase():t.toString?t.toString():""},"string-asc":function(t,e){return t<e?-1:t>e?1:0},"string-desc":function(t,e){return t<e?1:t>e?-1:0}}),zt(""),t.extend(!0,qt.ext.renderer,{header:{_:function(e,i,n,r){t(e.nTable).on("order.dt.DT",function(t,o,s,a){if(e===o){var l=n.idx;i.removeClass(n.sSortingClass+" "+r.sSortAsc+" "+r.sSortDesc).addClass("asc"==a[l]?r.sSortAsc:"desc"==a[l]?r.sSortDesc:n.sSortingClass)}})},jqueryui:function(e,i,n,r){t("<div/>").addClass(r.sSortJUIWrapper).append(i.contents()).append(t("<span/>").addClass(r.sSortIcon+" "+n.sSortingClassJUI)).appendTo(i),t(e.nTable).on("order.dt.DT",function(t,o,s,a){if(e===o){var l=n.idx;i.removeClass(r.sSortAsc+" "+r.sSortDesc).addClass("asc"==a[l]?r.sSortAsc:"desc"==a[l]?r.sSortDesc:n.sSortingClass),i.find("span."+r.sSortIcon).removeClass(r.sSortJUIAsc+" "+r.sSortJUIDesc+" "+r.sSortJUI+" "+r.sSortJUIAscAllowed+" "+r.sSortJUIDescAllowed).addClass("asc"==a[l]?r.sSortJUIAsc:"desc"==a[l]?r.sSortJUIDesc:n.sSortingClassJUI)}})}}});var Ye=function(t){return"string"==typeof t?t.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;"):t};return qt.render={number:function(t,e,i,n,r){return{display:function(o){if("number"!=typeof o&&"string"!=typeof o)return o;var s=o<0?"-":"",a=parseFloat(o);if(isNaN(a))return Ye(o);o=Math.abs(a);var l=parseInt(o,10),h=i?e+(o-l).toFixed(i).substring(2):"";return s+(n||"")+l.toString().replace(/\B(?=(\d{3})+(?!\d))/g,t)+h+(r||"")}}},text:function(){return{display:Ye}}},t.extend(qt.ext.internal,{_fnExternApiFunc:Wt,_fnBuildAjax:W,_fnAjaxUpdate:U,_fnAjaxParameters:X,_fnAjaxUpdateDraw:Y,_fnAjaxDataSrc:G,_fnAddColumn:u,_fnColumnOptions:p,_fnAdjustColumnSizing:d,_fnVisibleToColumnIndex:f,_fnColumnIndexToVisible:g,_fnVisbleColumns:m,_fnGetColumns:v,_fnColumnTypes:y,_fnApplyColumnDefs:b,_fnHungarianMap:r,_fnCamelToHungarian:o,_fnLanguageCompat:s,_fnBrowserDetect:h,_fnAddData:x,_fnAddTr:w,_fnNodeToDataIndex:S,_fnNodeToColumnIndex:T,_fnGetCellData:k,_fnSetCellData:C,_fnSplitObjNotation:_,_fnGetObjectDataFn:A,_fnSetObjectDataFn:D,_fnGetDataMaster:L,_fnClearTable:E,_fnDeleteIndex:P,_fnInvalidate:M,_fnGetRowElements:I,_fnCreateTr:R,_fnBuildHead:B,_fnDrawHead:F,_fnDraw:N,_fnReDraw:j,_fnAddOptionsHtml:$,_fnDetectHeader:H,_fnGetUniqueThs:z,_fnFeatureHtmlFilter:q,_fnFilterComplete:V,_fnFilterCustom:J,_fnFilterColumn:K,_fnFilter:Z,_fnFilterCreateSearch:Q,_fnEscapeRegex:ve,_fnFilterData:tt,_fnFeatureHtmlInfo:nt,_fnUpdateInfo:rt,_fnInfoMacros:ot,_fnInitialise:st,_fnInitComplete:at,_fnLengthChange:lt,_fnFeatureHtmlLength:ht,_fnFeatureHtmlPaginate:ct,_fnPageChange:ut,_fnFeatureHtmlProcessing:pt,_fnProcessingDisplay:dt,_fnFeatureHtmlTable:ft,_fnScrollDraw:gt,_fnApplyToChildren:mt,_fnCalculateColumnWidths:vt,_fnThrottle:we,_fnConvertToWidth:yt,_fnGetWidestNode:bt,_fnGetMaxLenString:xt,_fnStringToCss:wt,_fnSortFlatten:St,_fnSort:Tt,_fnSortAria:kt,_fnSortListener:Ct,_fnSortAttachListener:_t,_fnSortingClasses:At,_fnSortData:Dt,_fnSaveState:Lt,_fnLoadState:Et,_fnSettingsFromNode:Pt,_fnLog:Mt,_fnMap:It,_fnBindAction:Ot,_fnCallbackReg:Bt,_fnCallbackFire:Ft,_fnLengthOverflow:Nt,_fnRenderer:jt,_fnDataSource:$t,_fnRowAttributes:O,_fnCalculateEnd:function(){}}),t.fn.dataTable=qt,qt.$=t,t.fn.dataTableSettings=qt.settings,t.fn.dataTableExt=qt.ext,t.fn.DataTable=function(e){return t(this).dataTable(e).api()},t.each(qt,function(e,i){t.fn.DataTable[e]=i}),t.fn.dataTable}),function(t){"function"==typeof define&&define.amd?define(["jquery","datatables.net"],function(e){return t(e,window,document)}):"object"==typeof exports?module.exports=function(e,i){return e||(e=window),i&&i.fn.dataTable||(i=require("datatables.net")(e,i).$),t(i,e,e.document)}:t(jQuery,window,document)}(function(t,e,i,n){"use strict";var r=t.fn.dataTable;return t.extend(!0,r.defaults,{dom:"<'row'<'col-sm-6'l><'col-sm-6'f>><'row'<'col-sm-12'tr>><'row'<'col-sm-5'i><'col-sm-7'p>>",renderer:"bootstrap"}),t.extend(r.ext.classes,{sWrapper:"dataTables_wrapper form-inline dt-bootstrap",sFilterInput:"form-control input-sm",sLengthSelect:"form-control input-sm",sProcessing:"dataTables_processing panel panel-default"}),r.ext.renderer.pageButton.bootstrap=function(e,n,o,s,a,l){var h,c,u,p=new r.Api(e),d=e.oClasses,f=e.oLanguage.oPaginate,g=e.oLanguage.oAria.paginate||{},m=0,v=function(i,n){var r,s,u,y,b=function(e){e.preventDefault(),t(e.currentTarget).hasClass("disabled")||p.page()==e.data.action||p.page(e.data.action).draw("page")};for(r=0,s=n.length;r<s;r++)if(y=n[r],t.isArray(y))v(i,y);else{switch(h="",c="",y){case"ellipsis":h="&#x2026;",c="disabled";break;case"first":h=f.sFirst,c=y+(a>0?"":" disabled");break;case"previous":h=f.sPrevious,c=y+(a>0?"":" disabled");break;case"next":h=f.sNext,c=y+(a<l-1?"":" disabled");break;case"last":h=f.sLast,c=y+(a<l-1?"":" disabled");break;default:h=y+1,c=a===y?"active":""}h&&(u=t("<li>",{"class":d.sPageButton+" "+c,id:0===o&&"string"==typeof y?e.sTableId+"_"+y:null}).append(t("<a>",{href:"#","aria-controls":e.sTableId,"aria-label":g[y],"data-dt-idx":m,tabindex:e.iTabIndex}).html(h)).appendTo(i),e.oApi._fnBindAction(u,{action:y},b),m++)}};try{u=t(n).find(i.activeElement).data("dt-idx")}catch(y){}v(t(n).empty().html('<ul class="pagination"/>').children("ul"),s),u&&t(n).find("[data-dt-idx="+u+"]").focus()},r}),"undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(t){"use strict";var e=t.fn.jquery.split(" ")[0].split(".");if(e[0]<2&&e[1]<9||1==e[0]&&9==e[1]&&e[2]<1||e[0]>2)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3")}(jQuery),+function(t){"use strict";function e(){var t=document.createElement("bootstrap"),e={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var i in e)if(void 0!==t.style[i])return{end:e[i]};return!1}t.fn.emulateTransitionEnd=function(e){var i=!1,n=this;t(this).one("bsTransitionEnd",function(){i=!0});var r=function(){i||t(n).trigger(t.support.transition.end)};return setTimeout(r,e),this},t(function(){t.support.transition=e(),t.support.transition&&(t.event.special.bsTransitionEnd={bindType:t.support.transition.end,delegateType:t.support.transition.end,handle:function(e){if(t(e.target).is(this))return e.handleObj.handler.apply(this,arguments)}})})}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var i=t(this),r=i.data("bs.alert");r||i.data("bs.alert",r=new n(this)),"string"==typeof e&&r[e].call(i)})}var i='[data-dismiss="alert"]',n=function(e){t(e).on("click",i,this.close)};n.VERSION="3.3.6",n.TRANSITION_DURATION=150,n.prototype.close=function(e){function i(){s.detach().trigger("closed.bs.alert").remove()}var r=t(this),o=r.attr("data-target");o||(o=r.attr("href"),o=o&&o.replace(/.*(?=#[^\s]*$)/,""));var s=t(o);e&&e.preventDefault(),s.length||(s=r.closest(".alert")),s.trigger(e=t.Event("close.bs.alert")),e.isDefaultPrevented()||(s.removeClass("in"),t.support.transition&&s.hasClass("fade")?s.one("bsTransitionEnd",i).emulateTransitionEnd(n.TRANSITION_DURATION):i())};var r=t.fn.alert;t.fn.alert=e,t.fn.alert.Constructor=n,t.fn.alert.noConflict=function(){return t.fn.alert=r,this},t(document).on("click.bs.alert.data-api",i,n.prototype.close)}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var n=t(this),r=n.data("bs.button"),o="object"==typeof e&&e;r||n.data("bs.button",r=new i(this,o)),"toggle"==e?r.toggle():e&&r.setState(e)})}var i=function(e,n){this.$element=t(e),this.options=t.extend({},i.DEFAULTS,n),this.isLoading=!1};i.VERSION="3.3.6",i.DEFAULTS={loadingText:"loading..."},i.prototype.setState=function(e){var i="disabled",n=this.$element,r=n.is("input")?"val":"html",o=n.data();e+="Text",null==o.resetText&&n.data("resetText",n[r]()),setTimeout(t.proxy(function(){n[r](null==o[e]?this.options[e]:o[e]),"loadingText"==e?(this.isLoading=!0,n.addClass(i).attr(i,i)):this.isLoading&&(this.isLoading=!1,n.removeClass(i).removeAttr(i))},this),0)},i.prototype.toggle=function(){var t=!0,e=this.$element.closest('[data-toggle="buttons"]');if(e.length){var i=this.$element.find("input");"radio"==i.prop("type")?(i.prop("checked")&&(t=!1),e.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==i.prop("type")&&(i.prop("checked")!==this.$element.hasClass("active")&&(t=!1),this.$element.toggleClass("active")),i.prop("checked",this.$element.hasClass("active")),t&&i.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var n=t.fn.button;t.fn.button=e,t.fn.button.Constructor=i,t.fn.button.noConflict=function(){return t.fn.button=n,this},t(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(i){var n=t(i.target);n.hasClass("btn")||(n=n.closest(".btn")),e.call(n,"toggle"),t(i.target).is('input[type="radio"]')||t(i.target).is('input[type="checkbox"]')||i.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(e){t(e.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(e.type))})}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var n=t(this),r=n.data("bs.carousel"),o=t.extend({},i.DEFAULTS,n.data(),"object"==typeof e&&e),s="string"==typeof e?e:o.slide;r||n.data("bs.carousel",r=new i(this,o)),"number"==typeof e?r.to(e):s?r[s]():o.interval&&r.pause().cycle()})}var i=function(e,i){this.$element=t(e),this.$indicators=this.$element.find(".carousel-indicators"),this.options=i,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",t.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",t.proxy(this.pause,this)).on("mouseleave.bs.carousel",t.proxy(this.cycle,this))};i.VERSION="3.3.6",i.TRANSITION_DURATION=600,i.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},i.prototype.keydown=function(t){if(!/input|textarea/i.test(t.target.tagName)){switch(t.which){case 37:this.prev();break;case 39:this.next();break;default:return}t.preventDefault()}},i.prototype.cycle=function(e){return e||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(t.proxy(this.next,this),this.options.interval)),this},i.prototype.getItemIndex=function(t){return this.$items=t.parent().children(".item"),this.$items.index(t||this.$active)},i.prototype.getItemForDirection=function(t,e){var i=this.getItemIndex(e),n="prev"==t&&0===i||"next"==t&&i==this.$items.length-1;if(n&&!this.options.wrap)return e;var r="prev"==t?-1:1,o=(i+r)%this.$items.length;return this.$items.eq(o)},i.prototype.to=function(t){var e=this,i=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(t>this.$items.length-1||t<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){e.to(t)}):i==t?this.pause().cycle():this.slide(t>i?"next":"prev",this.$items.eq(t))},i.prototype.pause=function(e){return e||(this.paused=!0),this.$element.find(".next, .prev").length&&t.support.transition&&(this.$element.trigger(t.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},i.prototype.next=function(){if(!this.sliding)return this.slide("next")},i.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},i.prototype.slide=function(e,n){var r=this.$element.find(".item.active"),o=n||this.getItemForDirection(e,r),s=this.interval,a="next"==e?"left":"right",l=this;if(o.hasClass("active"))return this.sliding=!1;var h=o[0],c=t.Event("slide.bs.carousel",{relatedTarget:h,direction:a});if(this.$element.trigger(c),!c.isDefaultPrevented()){if(this.sliding=!0,s&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var u=t(this.$indicators.children()[this.getItemIndex(o)]);u&&u.addClass("active")}var p=t.Event("slid.bs.carousel",{relatedTarget:h,direction:a});return t.support.transition&&this.$element.hasClass("slide")?(o.addClass(e),o[0].offsetWidth,r.addClass(a),o.addClass(a),r.one("bsTransitionEnd",function(){o.removeClass([e,a].join(" ")).addClass("active"),r.removeClass(["active",a].join(" ")),l.sliding=!1,setTimeout(function(){l.$element.trigger(p)},0)}).emulateTransitionEnd(i.TRANSITION_DURATION)):(r.removeClass("active"),o.addClass("active"),this.sliding=!1,this.$element.trigger(p)),s&&this.cycle(),this}};var n=t.fn.carousel;t.fn.carousel=e,t.fn.carousel.Constructor=i,t.fn.carousel.noConflict=function(){return t.fn.carousel=n,this};var r=function(i){var n,r=t(this),o=t(r.attr("data-target")||(n=r.attr("href"))&&n.replace(/.*(?=#[^\s]+$)/,""));if(o.hasClass("carousel")){var s=t.extend({},o.data(),r.data()),a=r.attr("data-slide-to");a&&(s.interval=!1),e.call(o,s),a&&o.data("bs.carousel").to(a),i.preventDefault()}};t(document).on("click.bs.carousel.data-api","[data-slide]",r).on("click.bs.carousel.data-api","[data-slide-to]",r),t(window).on("load",function(){t('[data-ride="carousel"]').each(function(){var i=t(this);e.call(i,i.data())})})}(jQuery),+function(t){"use strict";function e(e){var i,n=e.attr("data-target")||(i=e.attr("href"))&&i.replace(/.*(?=#[^\s]+$)/,"");return t(n)}function i(e){return this.each(function(){var i=t(this),r=i.data("bs.collapse"),o=t.extend({},n.DEFAULTS,i.data(),"object"==typeof e&&e);!r&&o.toggle&&/show|hide/.test(e)&&(o.toggle=!1),r||i.data("bs.collapse",r=new n(this,o)),"string"==typeof e&&r[e]()})}var n=function(e,i){this.$element=t(e),this.options=t.extend({},n.DEFAULTS,i),this.$trigger=t('[data-toggle="collapse"][href="#'+e.id+'"],[data-toggle="collapse"][data-target="#'+e.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};n.VERSION="3.3.6",n.TRANSITION_DURATION=350,n.DEFAULTS={toggle:!0},n.prototype.dimension=function(){var t=this.$element.hasClass("width");return t?"width":"height"},n.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var e,r=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(r&&r.length&&(e=r.data("bs.collapse"),e&&e.transitioning))){var o=t.Event("show.bs.collapse");if(this.$element.trigger(o),!o.isDefaultPrevented()){r&&r.length&&(i.call(r,"hide"),e||r.data("bs.collapse",null));var s=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[s](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var a=function(){this.$element.removeClass("collapsing").addClass("collapse in")[s](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!t.support.transition)return a.call(this);var l=t.camelCase(["scroll",s].join("-"));this.$element.one("bsTransitionEnd",t.proxy(a,this)).emulateTransitionEnd(n.TRANSITION_DURATION)[s](this.$element[0][l])}}}},n.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var e=t.Event("hide.bs.collapse");if(this.$element.trigger(e),!e.isDefaultPrevented()){var i=this.dimension();this.$element[i](this.$element[i]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var r=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return t.support.transition?void this.$element[i](0).one("bsTransitionEnd",t.proxy(r,this)).emulateTransitionEnd(n.TRANSITION_DURATION):r.call(this)}}},n.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},n.prototype.getParent=function(){return t(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(t.proxy(function(i,n){var r=t(n);this.addAriaAndCollapsedClass(e(r),r)},this)).end()},n.prototype.addAriaAndCollapsedClass=function(t,e){var i=t.hasClass("in");t.attr("aria-expanded",i),e.toggleClass("collapsed",!i).attr("aria-expanded",i)};var r=t.fn.collapse;t.fn.collapse=i,t.fn.collapse.Constructor=n,t.fn.collapse.noConflict=function(){return t.fn.collapse=r,this},t(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(n){var r=t(this);r.attr("data-target")||n.preventDefault();var o=e(r),s=o.data("bs.collapse"),a=s?"toggle":r.data();i.call(o,a)})}(jQuery),+function(t){"use strict";function e(e){var i=e.attr("data-target");i||(i=e.attr("href"),i=i&&/#[A-Za-z]/.test(i)&&i.replace(/.*(?=#[^\s]*$)/,""));var n=i&&t(i);return n&&n.length?n:e.parent()}function i(i){i&&3===i.which||(t(r).remove(),t(o).each(function(){var n=t(this),r=e(n),o={relatedTarget:this
};r.hasClass("open")&&(i&&"click"==i.type&&/input|textarea/i.test(i.target.tagName)&&t.contains(r[0],i.target)||(r.trigger(i=t.Event("hide.bs.dropdown",o)),i.isDefaultPrevented()||(n.attr("aria-expanded","false"),r.removeClass("open").trigger(t.Event("hidden.bs.dropdown",o)))))}))}function n(e){return this.each(function(){var i=t(this),n=i.data("bs.dropdown");n||i.data("bs.dropdown",n=new s(this)),"string"==typeof e&&n[e].call(i)})}var r=".dropdown-backdrop",o='[data-toggle="dropdown"]',s=function(e){t(e).on("click.bs.dropdown",this.toggle)};s.VERSION="3.3.6",s.prototype.toggle=function(n){var r=t(this);if(!r.is(".disabled, :disabled")){var o=e(r),s=o.hasClass("open");if(i(),!s){"ontouchstart"in document.documentElement&&!o.closest(".navbar-nav").length&&t(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(t(this)).on("click",i);var a={relatedTarget:this};if(o.trigger(n=t.Event("show.bs.dropdown",a)),n.isDefaultPrevented())return;r.trigger("focus").attr("aria-expanded","true"),o.toggleClass("open").trigger(t.Event("shown.bs.dropdown",a))}return!1}},s.prototype.keydown=function(i){if(/(38|40|27|32)/.test(i.which)&&!/input|textarea/i.test(i.target.tagName)){var n=t(this);if(i.preventDefault(),i.stopPropagation(),!n.is(".disabled, :disabled")){var r=e(n),s=r.hasClass("open");if(!s&&27!=i.which||s&&27==i.which)return 27==i.which&&r.find(o).trigger("focus"),n.trigger("click");var a=" li:not(.disabled):visible a",l=r.find(".dropdown-menu"+a);if(l.length){var h=l.index(i.target);38==i.which&&h>0&&h--,40==i.which&&h<l.length-1&&h++,~h||(h=0),l.eq(h).trigger("focus")}}}};var a=t.fn.dropdown;t.fn.dropdown=n,t.fn.dropdown.Constructor=s,t.fn.dropdown.noConflict=function(){return t.fn.dropdown=a,this},t(document).on("click.bs.dropdown.data-api",i).on("click.bs.dropdown.data-api",".dropdown form",function(t){t.stopPropagation()}).on("click.bs.dropdown.data-api",o,s.prototype.toggle).on("keydown.bs.dropdown.data-api",o,s.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",s.prototype.keydown)}(jQuery),+function(t){"use strict";function e(e,n){return this.each(function(){var r=t(this),o=r.data("bs.modal"),s=t.extend({},i.DEFAULTS,r.data(),"object"==typeof e&&e);o||r.data("bs.modal",o=new i(this,s)),"string"==typeof e?o[e](n):s.show&&o.show(n)})}var i=function(e,i){this.options=i,this.$body=t(document.body),this.$element=t(e),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,t.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};i.VERSION="3.3.6",i.TRANSITION_DURATION=300,i.BACKDROP_TRANSITION_DURATION=150,i.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},i.prototype.toggle=function(t){return this.isShown?this.hide():this.show(t)},i.prototype.show=function(e){var n=this,r=t.Event("show.bs.modal",{relatedTarget:e});this.$element.trigger(r),this.isShown||r.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',t.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){n.$element.one("mouseup.dismiss.bs.modal",function(e){t(e.target).is(n.$element)&&(n.ignoreBackdropClick=!0)})}),this.backdrop(function(){var r=t.support.transition&&n.$element.hasClass("fade");n.$element.parent().length||n.$element.appendTo(n.$body),n.$element.show().scrollTop(0),n.adjustDialog(),r&&n.$element[0].offsetWidth,n.$element.addClass("in"),n.enforceFocus();var o=t.Event("shown.bs.modal",{relatedTarget:e});r?n.$dialog.one("bsTransitionEnd",function(){n.$element.trigger("focus").trigger(o)}).emulateTransitionEnd(i.TRANSITION_DURATION):n.$element.trigger("focus").trigger(o)}))},i.prototype.hide=function(e){e&&e.preventDefault(),e=t.Event("hide.bs.modal"),this.$element.trigger(e),this.isShown&&!e.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),t(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),t.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",t.proxy(this.hideModal,this)).emulateTransitionEnd(i.TRANSITION_DURATION):this.hideModal())},i.prototype.enforceFocus=function(){t(document).off("focusin.bs.modal").on("focusin.bs.modal",t.proxy(function(t){this.$element[0]===t.target||this.$element.has(t.target).length||this.$element.trigger("focus")},this))},i.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",t.proxy(function(t){27==t.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},i.prototype.resize=function(){this.isShown?t(window).on("resize.bs.modal",t.proxy(this.handleUpdate,this)):t(window).off("resize.bs.modal")},i.prototype.hideModal=function(){var t=this;this.$element.hide(),this.backdrop(function(){t.$body.removeClass("modal-open"),t.resetAdjustments(),t.resetScrollbar(),t.$element.trigger("hidden.bs.modal")})},i.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},i.prototype.backdrop=function(e){var n=this,r=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var o=t.support.transition&&r;if(this.$backdrop=t(document.createElement("div")).addClass("modal-backdrop "+r).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",t.proxy(function(t){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(t.target===t.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),o&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!e)return;o?this.$backdrop.one("bsTransitionEnd",e).emulateTransitionEnd(i.BACKDROP_TRANSITION_DURATION):e()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var s=function(){n.removeBackdrop(),e&&e()};t.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",s).emulateTransitionEnd(i.BACKDROP_TRANSITION_DURATION):s()}else e&&e()},i.prototype.handleUpdate=function(){this.adjustDialog()},i.prototype.adjustDialog=function(){var t=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&t?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!t?this.scrollbarWidth:""})},i.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},i.prototype.checkScrollbar=function(){var t=window.innerWidth;if(!t){var e=document.documentElement.getBoundingClientRect();t=e.right-Math.abs(e.left)}this.bodyIsOverflowing=document.body.clientWidth<t,this.scrollbarWidth=this.measureScrollbar()},i.prototype.setScrollbar=function(){var t=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",t+this.scrollbarWidth)},i.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},i.prototype.measureScrollbar=function(){var t=document.createElement("div");t.className="modal-scrollbar-measure",this.$body.append(t);var e=t.offsetWidth-t.clientWidth;return this.$body[0].removeChild(t),e};var n=t.fn.modal;t.fn.modal=e,t.fn.modal.Constructor=i,t.fn.modal.noConflict=function(){return t.fn.modal=n,this},t(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(i){var n=t(this),r=n.attr("href"),o=t(n.attr("data-target")||r&&r.replace(/.*(?=#[^\s]+$)/,"")),s=o.data("bs.modal")?"toggle":t.extend({remote:!/#/.test(r)&&r},o.data(),n.data());n.is("a")&&i.preventDefault(),o.one("show.bs.modal",function(t){t.isDefaultPrevented()||o.one("hidden.bs.modal",function(){n.is(":visible")&&n.trigger("focus")})}),e.call(o,s,this)})}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var n=t(this),r=n.data("bs.tooltip"),o="object"==typeof e&&e;!r&&/destroy|hide/.test(e)||(r||n.data("bs.tooltip",r=new i(this,o)),"string"==typeof e&&r[e]())})}var i=function(t,e){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",t,e)};i.VERSION="3.3.6",i.TRANSITION_DURATION=150,i.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},i.prototype.init=function(e,i,n){if(this.enabled=!0,this.type=e,this.$element=t(i),this.options=this.getOptions(n),this.$viewport=this.options.viewport&&t(t.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var r=this.options.trigger.split(" "),o=r.length;o--;){var s=r[o];if("click"==s)this.$element.on("click."+this.type,this.options.selector,t.proxy(this.toggle,this));else if("manual"!=s){var a="hover"==s?"mouseenter":"focusin",l="hover"==s?"mouseleave":"focusout";this.$element.on(a+"."+this.type,this.options.selector,t.proxy(this.enter,this)),this.$element.on(l+"."+this.type,this.options.selector,t.proxy(this.leave,this))}}this.options.selector?this._options=t.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},i.prototype.getDefaults=function(){return i.DEFAULTS},i.prototype.getOptions=function(e){return e=t.extend({},this.getDefaults(),this.$element.data(),e),e.delay&&"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),e},i.prototype.getDelegateOptions=function(){var e={},i=this.getDefaults();return this._options&&t.each(this._options,function(t,n){i[t]!=n&&(e[t]=n)}),e},i.prototype.enter=function(e){var i=e instanceof this.constructor?e:t(e.currentTarget).data("bs."+this.type);return i||(i=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,i)),e instanceof t.Event&&(i.inState["focusin"==e.type?"focus":"hover"]=!0),i.tip().hasClass("in")||"in"==i.hoverState?void(i.hoverState="in"):(clearTimeout(i.timeout),i.hoverState="in",i.options.delay&&i.options.delay.show?void(i.timeout=setTimeout(function(){"in"==i.hoverState&&i.show()},i.options.delay.show)):i.show())},i.prototype.isInStateTrue=function(){for(var t in this.inState)if(this.inState[t])return!0;return!1},i.prototype.leave=function(e){var i=e instanceof this.constructor?e:t(e.currentTarget).data("bs."+this.type);if(i||(i=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,i)),e instanceof t.Event&&(i.inState["focusout"==e.type?"focus":"hover"]=!1),!i.isInStateTrue())return clearTimeout(i.timeout),i.hoverState="out",i.options.delay&&i.options.delay.hide?void(i.timeout=setTimeout(function(){"out"==i.hoverState&&i.hide()},i.options.delay.hide)):i.hide()},i.prototype.show=function(){var e=t.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(e);var n=t.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(e.isDefaultPrevented()||!n)return;var r=this,o=this.tip(),s=this.getUID(this.type);this.setContent(),o.attr("id",s),this.$element.attr("aria-describedby",s),this.options.animation&&o.addClass("fade");var a="function"==typeof this.options.placement?this.options.placement.call(this,o[0],this.$element[0]):this.options.placement,l=/\s?auto?\s?/i,h=l.test(a);h&&(a=a.replace(l,"")||"top"),o.detach().css({top:0,left:0,display:"block"}).addClass(a).data("bs."+this.type,this),this.options.container?o.appendTo(this.options.container):o.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var c=this.getPosition(),u=o[0].offsetWidth,p=o[0].offsetHeight;if(h){var d=a,f=this.getPosition(this.$viewport);a="bottom"==a&&c.bottom+p>f.bottom?"top":"top"==a&&c.top-p<f.top?"bottom":"right"==a&&c.right+u>f.width?"left":"left"==a&&c.left-u<f.left?"right":a,o.removeClass(d).addClass(a)}var g=this.getCalculatedOffset(a,c,u,p);this.applyPlacement(g,a);var m=function(){var t=r.hoverState;r.$element.trigger("shown.bs."+r.type),r.hoverState=null,"out"==t&&r.leave(r)};t.support.transition&&this.$tip.hasClass("fade")?o.one("bsTransitionEnd",m).emulateTransitionEnd(i.TRANSITION_DURATION):m()}},i.prototype.applyPlacement=function(e,i){var n=this.tip(),r=n[0].offsetWidth,o=n[0].offsetHeight,s=parseInt(n.css("margin-top"),10),a=parseInt(n.css("margin-left"),10);isNaN(s)&&(s=0),isNaN(a)&&(a=0),e.top+=s,e.left+=a,t.offset.setOffset(n[0],t.extend({using:function(t){n.css({top:Math.round(t.top),left:Math.round(t.left)})}},e),0),n.addClass("in");var l=n[0].offsetWidth,h=n[0].offsetHeight;"top"==i&&h!=o&&(e.top=e.top+o-h);var c=this.getViewportAdjustedDelta(i,e,l,h);c.left?e.left+=c.left:e.top+=c.top;var u=/top|bottom/.test(i),p=u?2*c.left-r+l:2*c.top-o+h,d=u?"offsetWidth":"offsetHeight";n.offset(e),this.replaceArrow(p,n[0][d],u)},i.prototype.replaceArrow=function(t,e,i){this.arrow().css(i?"left":"top",50*(1-t/e)+"%").css(i?"top":"left","")},i.prototype.setContent=function(){var t=this.tip(),e=this.getTitle();t.find(".tooltip-inner")[this.options.html?"html":"text"](e),t.removeClass("fade in top bottom left right")},i.prototype.hide=function(e){function n(){"in"!=r.hoverState&&o.detach(),r.$element.removeAttr("aria-describedby").trigger("hidden.bs."+r.type),e&&e()}var r=this,o=t(this.$tip),s=t.Event("hide.bs."+this.type);if(this.$element.trigger(s),!s.isDefaultPrevented())return o.removeClass("in"),t.support.transition&&o.hasClass("fade")?o.one("bsTransitionEnd",n).emulateTransitionEnd(i.TRANSITION_DURATION):n(),this.hoverState=null,this},i.prototype.fixTitle=function(){var t=this.$element;(t.attr("title")||"string"!=typeof t.attr("data-original-title"))&&t.attr("data-original-title",t.attr("title")||"").attr("title","")},i.prototype.hasContent=function(){return this.getTitle()},i.prototype.getPosition=function(e){e=e||this.$element;var i=e[0],n="BODY"==i.tagName,r=i.getBoundingClientRect();null==r.width&&(r=t.extend({},r,{width:r.right-r.left,height:r.bottom-r.top}));var o=n?{top:0,left:0}:e.offset(),s={scroll:n?document.documentElement.scrollTop||document.body.scrollTop:e.scrollTop()},a=n?{width:t(window).width(),height:t(window).height()}:null;return t.extend({},r,s,a,o)},i.prototype.getCalculatedOffset=function(t,e,i,n){return"bottom"==t?{top:e.top+e.height,left:e.left+e.width/2-i/2}:"top"==t?{top:e.top-n,left:e.left+e.width/2-i/2}:"left"==t?{top:e.top+e.height/2-n/2,left:e.left-i}:{top:e.top+e.height/2-n/2,left:e.left+e.width}},i.prototype.getViewportAdjustedDelta=function(t,e,i,n){var r={top:0,left:0};if(!this.$viewport)return r;var o=this.options.viewport&&this.options.viewport.padding||0,s=this.getPosition(this.$viewport);if(/right|left/.test(t)){var a=e.top-o-s.scroll,l=e.top+o-s.scroll+n;a<s.top?r.top=s.top-a:l>s.top+s.height&&(r.top=s.top+s.height-l)}else{var h=e.left-o,c=e.left+o+i;h<s.left?r.left=s.left-h:c>s.right&&(r.left=s.left+s.width-c)}return r},i.prototype.getTitle=function(){var t,e=this.$element,i=this.options;return t=e.attr("data-original-title")||("function"==typeof i.title?i.title.call(e[0]):i.title)},i.prototype.getUID=function(t){do t+=~~(1e6*Math.random());while(document.getElementById(t));return t},i.prototype.tip=function(){if(!this.$tip&&(this.$tip=t(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},i.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},i.prototype.enable=function(){this.enabled=!0},i.prototype.disable=function(){this.enabled=!1},i.prototype.toggleEnabled=function(){this.enabled=!this.enabled},i.prototype.toggle=function(e){var i=this;e&&(i=t(e.currentTarget).data("bs."+this.type),i||(i=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,i))),e?(i.inState.click=!i.inState.click,i.isInStateTrue()?i.enter(i):i.leave(i)):i.tip().hasClass("in")?i.leave(i):i.enter(i)},i.prototype.destroy=function(){var t=this;clearTimeout(this.timeout),this.hide(function(){t.$element.off("."+t.type).removeData("bs."+t.type),t.$tip&&t.$tip.detach(),t.$tip=null,t.$arrow=null,t.$viewport=null})};var n=t.fn.tooltip;t.fn.tooltip=e,t.fn.tooltip.Constructor=i,t.fn.tooltip.noConflict=function(){return t.fn.tooltip=n,this}}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var n=t(this),r=n.data("bs.popover"),o="object"==typeof e&&e;!r&&/destroy|hide/.test(e)||(r||n.data("bs.popover",r=new i(this,o)),"string"==typeof e&&r[e]())})}var i=function(t,e){this.init("popover",t,e)};if(!t.fn.tooltip)throw new Error("Popover requires tooltip.js");i.VERSION="3.3.6",i.DEFAULTS=t.extend({},t.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),i.prototype=t.extend({},t.fn.tooltip.Constructor.prototype),i.prototype.constructor=i,i.prototype.getDefaults=function(){return i.DEFAULTS},i.prototype.setContent=function(){var t=this.tip(),e=this.getTitle(),i=this.getContent();t.find(".popover-title")[this.options.html?"html":"text"](e),t.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof i?"html":"append":"text"](i),t.removeClass("fade top bottom left right in"),t.find(".popover-title").html()||t.find(".popover-title").hide()},i.prototype.hasContent=function(){return this.getTitle()||this.getContent()},i.prototype.getContent=function(){var t=this.$element,e=this.options;return t.attr("data-content")||("function"==typeof e.content?e.content.call(t[0]):e.content)},i.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var n=t.fn.popover;t.fn.popover=e,t.fn.popover.Constructor=i,t.fn.popover.noConflict=function(){return t.fn.popover=n,this}}(jQuery),+function(t){"use strict";function e(i,n){this.$body=t(document.body),this.$scrollElement=t(t(i).is(document.body)?window:i),this.options=t.extend({},e.DEFAULTS,n),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",t.proxy(this.process,this)),this.refresh(),this.process()}function i(i){return this.each(function(){var n=t(this),r=n.data("bs.scrollspy"),o="object"==typeof i&&i;r||n.data("bs.scrollspy",r=new e(this,o)),"string"==typeof i&&r[i]()})}e.VERSION="3.3.6",e.DEFAULTS={offset:10},e.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},e.prototype.refresh=function(){var e=this,i="offset",n=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),t.isWindow(this.$scrollElement[0])||(i="position",n=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var e=t(this),r=e.data("target")||e.attr("href"),o=/^#./.test(r)&&t(r);return o&&o.length&&o.is(":visible")&&[[o[i]().top+n,r]]||null}).sort(function(t,e){return t[0]-e[0]}).each(function(){e.offsets.push(this[0]),e.targets.push(this[1])})},e.prototype.process=function(){var t,e=this.$scrollElement.scrollTop()+this.options.offset,i=this.getScrollHeight(),n=this.options.offset+i-this.$scrollElement.height(),r=this.offsets,o=this.targets,s=this.activeTarget;if(this.scrollHeight!=i&&this.refresh(),e>=n)return s!=(t=o[o.length-1])&&this.activate(t);if(s&&e<r[0])return this.activeTarget=null,this.clear();for(t=r.length;t--;)s!=o[t]&&e>=r[t]&&(void 0===r[t+1]||e<r[t+1])&&this.activate(o[t])},e.prototype.activate=function(e){this.activeTarget=e,this.clear();var i=this.selector+'[data-target="'+e+'"],'+this.selector+'[href="'+e+'"]',n=t(i).parents("li").addClass("active");n.parent(".dropdown-menu").length&&(n=n.closest("li.dropdown").addClass("active")),n.trigger("activate.bs.scrollspy")},e.prototype.clear=function(){t(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var n=t.fn.scrollspy;t.fn.scrollspy=i,t.fn.scrollspy.Constructor=e,t.fn.scrollspy.noConflict=function(){return t.fn.scrollspy=n,this},t(window).on("load.bs.scrollspy.data-api",function(){t('[data-spy="scroll"]').each(function(){var e=t(this);i.call(e,e.data())})})}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var n=t(this),r=n.data("bs.tab");r||n.data("bs.tab",r=new i(this)),"string"==typeof e&&r[e]()})}var i=function(e){this.element=t(e)};i.VERSION="3.3.6",i.TRANSITION_DURATION=150,i.prototype.show=function(){var e=this.element,i=e.closest("ul:not(.dropdown-menu)"),n=e.data("target");if(n||(n=e.attr("href"),n=n&&n.replace(/.*(?=#[^\s]*$)/,"")),!e.parent("li").hasClass("active")){var r=i.find(".active:last a"),o=t.Event("hide.bs.tab",{relatedTarget:e[0]}),s=t.Event("show.bs.tab",{relatedTarget:r[0]});if(r.trigger(o),e.trigger(s),!s.isDefaultPrevented()&&!o.isDefaultPrevented()){var a=t(n);this.activate(e.closest("li"),i),this.activate(a,a.parent(),function(){r.trigger({type:"hidden.bs.tab",relatedTarget:e[0]}),e.trigger({type:"shown.bs.tab",relatedTarget:r[0]})})}}},i.prototype.activate=function(e,n,r){function o(){s.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),e.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),a?(e[0].offsetWidth,e.addClass("in")):e.removeClass("fade"),e.parent(".dropdown-menu").length&&e.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),r&&r()}var s=n.find("> .active"),a=r&&t.support.transition&&(s.length&&s.hasClass("fade")||!!n.find("> .fade").length);s.length&&a?s.one("bsTransitionEnd",o).emulateTransitionEnd(i.TRANSITION_DURATION):o(),s.removeClass("in")};var n=t.fn.tab;t.fn.tab=e,t.fn.tab.Constructor=i,t.fn.tab.noConflict=function(){return t.fn.tab=n,this};var r=function(i){i.preventDefault(),e.call(t(this),"show")};t(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',r).on("click.bs.tab.data-api",'[data-toggle="pill"]',r)}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var n=t(this),r=n.data("bs.affix"),o="object"==typeof e&&e;r||n.data("bs.affix",r=new i(this,o)),"string"==typeof e&&r[e]()})}var i=function(e,n){this.options=t.extend({},i.DEFAULTS,n),this.$target=t(this.options.target).on("scroll.bs.affix.data-api",t.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",t.proxy(this.checkPositionWithEventLoop,this)),this.$element=t(e),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};i.VERSION="3.3.6",i.RESET="affix affix-top affix-bottom",i.DEFAULTS={offset:0,target:window},i.prototype.getState=function(t,e,i,n){var r=this.$target.scrollTop(),o=this.$element.offset(),s=this.$target.height();if(null!=i&&"top"==this.affixed)return r<i&&"top";if("bottom"==this.affixed)return null!=i?!(r+this.unpin<=o.top)&&"bottom":!(r+s<=t-n)&&"bottom";var a=null==this.affixed,l=a?r:o.top,h=a?s:e;return null!=i&&r<=i?"top":null!=n&&l+h>=t-n&&"bottom"},i.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(i.RESET).addClass("affix");var t=this.$target.scrollTop(),e=this.$element.offset();return this.pinnedOffset=e.top-t},i.prototype.checkPositionWithEventLoop=function(){setTimeout(t.proxy(this.checkPosition,this),1)},i.prototype.checkPosition=function(){if(this.$element.is(":visible")){var e=this.$element.height(),n=this.options.offset,r=n.top,o=n.bottom,s=Math.max(t(document).height(),t(document.body).height());"object"!=typeof n&&(o=r=n),"function"==typeof r&&(r=n.top(this.$element)),"function"==typeof o&&(o=n.bottom(this.$element));var a=this.getState(s,e,r,o);if(this.affixed!=a){null!=this.unpin&&this.$element.css("top","");var l="affix"+(a?"-"+a:""),h=t.Event(l+".bs.affix");if(this.$element.trigger(h),h.isDefaultPrevented())return;this.affixed=a,this.unpin="bottom"==a?this.getPinnedOffset():null,this.$element.removeClass(i.RESET).addClass(l).trigger(l.replace("affix","affixed")+".bs.affix")}"bottom"==a&&this.$element.offset({top:s-e-o})}};var n=t.fn.affix;t.fn.affix=e,t.fn.affix.Constructor=i,t.fn.affix.noConflict=function(){return t.fn.affix=n,this},t(window).on("load",function(){t('[data-spy="affix"]').each(function(){var i=t(this),n=i.data();n.offset=n.offset||{},null!=n.offsetBottom&&(n.offset.bottom=n.offsetBottom),null!=n.offsetTop&&(n.offset.top=n.offsetTop),e.call(i,n)})})}(jQuery),!function(t){"use strict";function e(t,e){for(var i=0;i<t.length;++i)e(t[i],i)}function i(e,i){this.$select=t(e),this.$select.attr("data-placeholder")&&(i.nonSelectedText=this.$select.data("placeholder")),this.options=this.mergeOptions(t.extend({},i,this.$select.data())),this.originalOptions=this.$select.clone()[0].options,this.query="",this.searchTimeout=null,this.lastToggledInput=null,this.options.multiple="multiple"===this.$select.attr("multiple"),this.options.onChange=t.proxy(this.options.onChange,this),this.options.onDropdownShow=t.proxy(this.options.onDropdownShow,this),this.options.onDropdownHide=t.proxy(this.options.onDropdownHide,this),this.options.onDropdownShown=t.proxy(this.options.onDropdownShown,this),this.options.onDropdownHidden=t.proxy(this.options.onDropdownHidden,this),this.buildContainer(),this.buildButton(),this.buildDropdown(),this.buildSelectAll(),this.buildDropdownOptions(),this.buildFilter(),this.updateButtonText(),this.updateSelectAll(),this.options.disableIfEmpty&&t("option",this.$select).length<=0&&this.disable(),this.$select.hide().after(this.$container)}"undefined"!=typeof ko&&ko.bindingHandlers&&!ko.bindingHandlers.multiselect&&(ko.bindingHandlers.multiselect={after:["options","value","selectedOptions"],init:function(e,i,n,r,o){var s=t(e),a=ko.toJS(i());if(s.multiselect(a),n.has("options")){var l=n.get("options");ko.isObservable(l)&&ko.computed({read:function(){l(),setTimeout(function(){var t=s.data("multiselect");t&&t.updateOriginalOptions(),s.multiselect("rebuild")},1)},disposeWhenNodeIsRemoved:e})}if(n.has("value")){var h=n.get("value");ko.isObservable(h)&&ko.computed({read:function(){h(),setTimeout(function(){s.multiselect("refresh")},1)},disposeWhenNodeIsRemoved:e}).extend({rateLimit:100,notifyWhenChangesStop:!0})}if(n.has("selectedOptions")){var c=n.get("selectedOptions");ko.isObservable(c)&&ko.computed({read:function(){c(),setTimeout(function(){s.multiselect("refresh")},1)},disposeWhenNodeIsRemoved:e}).extend({rateLimit:100,notifyWhenChangesStop:!0})}ko.utils.domNodeDisposal.addDisposeCallback(e,function(){s.multiselect("destroy")})},update:function(e,i,n,r,o){var s=t(e),a=ko.toJS(i());s.multiselect("setOptions",a),s.multiselect("rebuild")}}),i.prototype={defaults:{buttonText:function(e,i){if(0===e.length)return this.nonSelectedText;if(this.allSelectedText&&e.length===t("option",t(i)).length&&1!==t("option",t(i)).length&&this.multiple)return this.selectAllNumber?this.allSelectedText+" ("+e.length+")":this.allSelectedText;if(e.length>this.numberDisplayed)return e.length+" "+this.nSelectedText;var n="",r=this.delimiterText;return e.each(function(){var e=void 0!==t(this).attr("label")?t(this).attr("label"):t(this).text();n+=e+r}),n.substr(0,n.length-2)},buttonTitle:function(e,i){if(0===e.length)return this.nonSelectedText;var n="",r=this.delimiterText;return e.each(function(){var e=void 0!==t(this).attr("label")?t(this).attr("label"):t(this).text();n+=e+r}),n.substr(0,n.length-2)},optionLabel:function(e){return t(e).attr("label")||t(e).text()},onChange:function(t,e){},onDropdownShow:function(t){},onDropdownHide:function(t){},onDropdownShown:function(t){},onDropdownHidden:function(t){},onSelectAll:function(){},enableHTML:!1,buttonClass:"btn btn-default",inheritClass:!1,buttonWidth:"auto",buttonContainer:'<div class="btn-group" />',dropRight:!1,selectedClass:"active",maxHeight:!1,checkboxName:!1,includeSelectAllOption:!1,includeSelectAllIfMoreThan:0,selectAllText:" Select all",selectAllValue:"multiselect-all",selectAllName:!1,selectAllNumber:!0,enableFiltering:!1,enableCaseInsensitiveFiltering:!1,enableClickableOptGroups:!1,filterPlaceholder:"Search",filterBehavior:"text",includeFilterClearBtn:!0,preventInputChangeEvent:!1,nonSelectedText:"None selected",nSelectedText:"selected",allSelectedText:"All selected",numberDisplayed:3,disableIfEmpty:!1,delimiterText:", ",templates:{button:'<button type="button" class="multiselect dropdown-toggle" data-toggle="dropdown"><span class="multiselect-selected-text"></span> <b class="caret"></b></button>',ul:'<ul class="multiselect-container dropdown-menu"></ul>',filter:'<li class="multiselect-item filter"><div class="input-group"><span class="input-group-addon"><i class="glyphicon glyphicon-search"></i></span><input class="form-control multiselect-search" type="text"></div></li>',filterClearBtn:'<span class="input-group-btn"><button class="btn btn-default multiselect-clear-filter" type="button"><i class="glyphicon glyphicon-remove-circle"></i></button></span>',li:'<li><a tabindex="0"><label></label></a></li>',divider:'<li class="multiselect-item divider"></li>',liGroup:'<li class="multiselect-item multiselect-group"><label></label></li>'}},constructor:i,buildContainer:function(){this.$container=t(this.options.buttonContainer),this.$container.on("show.bs.dropdown",this.options.onDropdownShow),this.$container.on("hide.bs.dropdown",this.options.onDropdownHide),this.$container.on("shown.bs.dropdown",this.options.onDropdownShown),this.$container.on("hidden.bs.dropdown",this.options.onDropdownHidden)},buildButton:function(){this.$button=t(this.options.templates.button).addClass(this.options.buttonClass),this.$select.attr("class")&&this.options.inheritClass&&this.$button.addClass(this.$select.attr("class")),this.$select.prop("disabled")?this.disable():this.enable(),this.options.buttonWidth&&"auto"!==this.options.buttonWidth&&(this.$button.css({width:this.options.buttonWidth,overflow:"hidden","text-overflow":"ellipsis"}),this.$container.css({width:this.options.buttonWidth}));var e=this.$select.attr("tabindex");e&&this.$button.attr("tabindex",e),this.$container.prepend(this.$button)},buildDropdown:function(){this.$ul=t(this.options.templates.ul),this.options.dropRight&&this.$ul.addClass("pull-right"),this.options.maxHeight&&this.$ul.css({"max-height":this.options.maxHeight+"px","overflow-y":"auto","overflow-x":"hidden"}),this.$container.append(this.$ul)},buildDropdownOptions:function(){this.$select.children().each(t.proxy(function(e,i){var n=t(i),r=n.prop("tagName").toLowerCase();n.prop("value")!==this.options.selectAllValue&&("optgroup"===r?this.createOptgroup(i):"option"===r&&("divider"===n.data("role")?this.createDivider():this.createOptionValue(i)))},this)),t("li input",this.$ul).on("change",t.proxy(function(e){var i=t(e.target),n=i.prop("checked")||!1,r=i.val()===this.options.selectAllValue;this.options.selectedClass&&(n?i.closest("li").addClass(this.options.selectedClass):i.closest("li").removeClass(this.options.selectedClass));var o=i.val(),s=this.getOptionByValue(o),a=t("option",this.$select).not(s),l=t("input",this.$container).not(i);if(r&&(n?this.selectAll():this.deselectAll()),r||(n?(s.prop("selected",!0),this.options.multiple?s.prop("selected",!0):(this.options.selectedClass&&t(l).closest("li").removeClass(this.options.selectedClass),t(l).prop("checked",!1),a.prop("selected",!1),
this.$button.click()),"active"===this.options.selectedClass&&a.closest("a").css("outline","")):s.prop("selected",!1)),this.$select.change(),this.updateButtonText(),this.updateSelectAll(),this.options.onChange(s,n),this.options.preventInputChangeEvent)return!1},this)),t("li a",this.$ul).on("mousedown",function(t){if(t.shiftKey)return!1}),t("li a",this.$ul).on("touchstart click",t.proxy(function(e){e.stopPropagation();var i=t(e.target);if(e.shiftKey&&this.options.multiple){i.is("label")&&(e.preventDefault(),i=i.find("input"),i.prop("checked",!i.prop("checked")));var n=i.prop("checked")||!1;if(null!==this.lastToggledInput&&this.lastToggledInput!==i){var r=i.closest("li").index(),o=this.lastToggledInput.closest("li").index();if(r>o){var s=o;o=r,r=s}++o;var a=this.$ul.find("li").slice(r,o).find("input");a.prop("checked",n),this.options.selectedClass&&a.closest("li").toggleClass(this.options.selectedClass,n);for(var l=0,h=a.length;l<h;l++){var c=t(a[l]),u=this.getOptionByValue(c.val());u.prop("selected",n)}}i.trigger("change")}i.is("input")&&!i.closest("li").is(".multiselect-item")&&(this.lastToggledInput=i),i.blur()},this)),this.$container.off("keydown.multiselect").on("keydown.multiselect",t.proxy(function(e){if(!t('input[type="text"]',this.$container).is(":focus"))if(9===e.keyCode&&this.$container.hasClass("open"))this.$button.click();else{var i=t(this.$container).find("li:not(.divider):not(.disabled) a").filter(":visible");if(!i.length)return;var n=i.index(i.filter(":focus"));38===e.keyCode&&n>0?n--:40===e.keyCode&&n<i.length-1?n++:~n||(n=0);var r=i.eq(n);if(r.focus(),32===e.keyCode||13===e.keyCode){var o=r.find("input");o.prop("checked",!o.prop("checked")),o.change()}e.stopPropagation(),e.preventDefault()}},this)),this.options.enableClickableOptGroups&&this.options.multiple&&t("li.multiselect-group",this.$ul).on("click",t.proxy(function(e){e.stopPropagation();var i=t(e.target).parent(),n=i.nextUntil("li.multiselect-group"),r=n.filter(":visible:not(.disabled)"),o=!0,s=r.find("input");s.each(function(){o=o&&t(this).prop("checked")}),s.prop("checked",!o).trigger("change")},this))},createOptionValue:function(e){var i=t(e);i.is(":selected")&&i.prop("selected",!0);var n=this.options.optionLabel(e),r=i.val(),o=this.options.multiple?"checkbox":"radio",s=t(this.options.templates.li),a=t("label",s);a.addClass(o),this.options.enableHTML?a.html(" "+n):a.text(" "+n);var l=t("<input/>").attr("type",o);this.options.checkboxName&&l.attr("name",this.options.checkboxName),a.prepend(l);var h=i.prop("selected")||!1;l.val(r),r===this.options.selectAllValue&&(s.addClass("multiselect-item multiselect-all"),l.parent().parent().addClass("multiselect-all")),a.attr("title",i.attr("title")),this.$ul.append(s),i.is(":disabled")&&l.attr("disabled","disabled").prop("disabled",!0).closest("a").attr("tabindex","-1").closest("li").addClass("disabled"),l.prop("checked",h),h&&this.options.selectedClass&&l.closest("li").addClass(this.options.selectedClass)},createDivider:function(e){var i=t(this.options.templates.divider);this.$ul.append(i)},createOptgroup:function(e){var i=t(e).prop("label"),n=t(this.options.templates.liGroup);this.options.enableHTML?t("label",n).html(i):t("label",n).text(i),this.options.enableClickableOptGroups&&n.addClass("multiselect-group-clickable"),this.$ul.append(n),t(e).is(":disabled")&&n.addClass("disabled"),t("option",e).each(t.proxy(function(t,e){this.createOptionValue(e)},this))},buildSelectAll:function(){"number"==typeof this.options.selectAllValue&&(this.options.selectAllValue=this.options.selectAllValue.toString());var e=this.hasSelectAll();if(!e&&this.options.includeSelectAllOption&&this.options.multiple&&t("option",this.$select).length>this.options.includeSelectAllIfMoreThan){this.options.includeSelectAllDivider&&this.$ul.prepend(t(this.options.templates.divider));var i=t(this.options.templates.li);t("label",i).addClass("checkbox"),this.options.enableHTML?t("label",i).html(" "+this.options.selectAllText):t("label",i).text(" "+this.options.selectAllText),this.options.selectAllName?t("label",i).prepend('<input type="checkbox" name="'+this.options.selectAllName+'" />'):t("label",i).prepend('<input type="checkbox" />');var n=t("input",i);n.val(this.options.selectAllValue),i.addClass("multiselect-item multiselect-all"),n.parent().parent().addClass("multiselect-all"),this.$ul.prepend(i),n.prop("checked",!1)}},buildFilter:function(){if(this.options.enableFiltering||this.options.enableCaseInsensitiveFiltering){var e=Math.max(this.options.enableFiltering,this.options.enableCaseInsensitiveFiltering);if(this.$select.find("option").length>=e){if(this.$filter=t(this.options.templates.filter),t("input",this.$filter).attr("placeholder",this.options.filterPlaceholder),this.options.includeFilterClearBtn){var i=t(this.options.templates.filterClearBtn);i.on("click",t.proxy(function(e){clearTimeout(this.searchTimeout),this.$filter.find(".multiselect-search").val(""),t("li",this.$ul).show().removeClass("filter-hidden"),this.updateSelectAll()},this)),this.$filter.find(".input-group").append(i)}this.$ul.prepend(this.$filter),this.$filter.val(this.query).on("click",function(t){t.stopPropagation()}).on("input keydown",t.proxy(function(e){13===e.which&&e.preventDefault(),clearTimeout(this.searchTimeout),this.searchTimeout=this.asyncFunction(t.proxy(function(){if(this.query!==e.target.value){this.query=e.target.value;var i,n;t.each(t("li",this.$ul),t.proxy(function(e,r){var o=t("input",r).length>0?t("input",r).val():"",s=t("label",r).text(),a="";if("text"===this.options.filterBehavior?a=s:"value"===this.options.filterBehavior?a=o:"both"===this.options.filterBehavior&&(a=s+"\n"+o),o!==this.options.selectAllValue&&s){var l=!1;this.options.enableCaseInsensitiveFiltering&&a.toLowerCase().indexOf(this.query.toLowerCase())>-1?l=!0:a.indexOf(this.query)>-1&&(l=!0),t(r).toggle(l).toggleClass("filter-hidden",!l),t(r).hasClass("multiselect-group")?(i=r,n=l):(l&&t(i).show().removeClass("filter-hidden"),!l&&n&&t(r).show().removeClass("filter-hidden"))}},this))}this.updateSelectAll()},this),300,this)},this))}}},destroy:function(){this.$container.remove(),this.$select.show(),this.$select.data("multiselect",null)},refresh:function(){t("option",this.$select).each(t.proxy(function(e,i){var n=t("li input",this.$ul).filter(function(){return t(this).val()===t(i).val()});t(i).is(":selected")?(n.prop("checked",!0),this.options.selectedClass&&n.closest("li").addClass(this.options.selectedClass)):(n.prop("checked",!1),this.options.selectedClass&&n.closest("li").removeClass(this.options.selectedClass)),t(i).is(":disabled")?n.attr("disabled","disabled").prop("disabled",!0).closest("li").addClass("disabled"):n.prop("disabled",!1).closest("li").removeClass("disabled")},this)),this.updateButtonText(),this.updateSelectAll()},select:function(e,i){t.isArray(e)||(e=[e]);for(var n=0;n<e.length;n++){var r=e[n];if(null!==r&&void 0!==r){var o=this.getOptionByValue(r),s=this.getInputByValue(r);void 0!==o&&void 0!==s&&(this.options.multiple||this.deselectAll(!1),this.options.selectedClass&&s.closest("li").addClass(this.options.selectedClass),s.prop("checked",!0),o.prop("selected",!0),i&&this.options.onChange(o,!0))}}this.updateButtonText(),this.updateSelectAll()},clearSelection:function(){this.deselectAll(!1),this.updateButtonText(),this.updateSelectAll()},deselect:function(e,i){t.isArray(e)||(e=[e]);for(var n=0;n<e.length;n++){var r=e[n];if(null!==r&&void 0!==r){var o=this.getOptionByValue(r),s=this.getInputByValue(r);void 0!==o&&void 0!==s&&(this.options.selectedClass&&s.closest("li").removeClass(this.options.selectedClass),s.prop("checked",!1),o.prop("selected",!1),i&&this.options.onChange(o,!1))}}this.updateButtonText(),this.updateSelectAll()},selectAll:function(e,i){var e="undefined"==typeof e||e,n=t("li input[type='checkbox']:enabled",this.$ul),r=n.filter(":visible"),o=n.length,s=r.length;if(e?(r.prop("checked",!0),t("li:not(.divider):not(.disabled)",this.$ul).filter(":visible").addClass(this.options.selectedClass)):(n.prop("checked",!0),t("li:not(.divider):not(.disabled)",this.$ul).addClass(this.options.selectedClass)),o===s||e===!1)t("option:enabled",this.$select).prop("selected",!0);else{var a=r.map(function(){return t(this).val()}).get();t("option:enabled",this.$select).filter(function(e){return t.inArray(t(this).val(),a)!==-1}).prop("selected",!0)}i&&this.options.onSelectAll()},deselectAll:function(e){var e="undefined"==typeof e||e;if(e){var i=t("li input[type='checkbox']:not(:disabled)",this.$ul).filter(":visible");i.prop("checked",!1);var n=i.map(function(){return t(this).val()}).get();t("option:enabled",this.$select).filter(function(e){return t.inArray(t(this).val(),n)!==-1}).prop("selected",!1),this.options.selectedClass&&t("li:not(.divider):not(.disabled)",this.$ul).filter(":visible").removeClass(this.options.selectedClass)}else t("li input[type='checkbox']:enabled",this.$ul).prop("checked",!1),t("option:enabled",this.$select).prop("selected",!1),this.options.selectedClass&&t("li:not(.divider):not(.disabled)",this.$ul).removeClass(this.options.selectedClass)},rebuild:function(){this.$ul.html(""),this.options.multiple="multiple"===this.$select.attr("multiple"),this.buildSelectAll(),this.buildDropdownOptions(),this.buildFilter(),this.updateButtonText(),this.updateSelectAll(),this.options.disableIfEmpty&&t("option",this.$select).length<=0?this.disable():this.enable(),this.options.dropRight&&this.$ul.addClass("pull-right")},dataprovider:function(i){var n=0,r=this.$select.empty();t.each(i,function(i,o){var s;t.isArray(o.children)?(n++,s=t("<optgroup/>").attr({label:o.label||"Group "+n,disabled:!!o.disabled}),e(o.children,function(e){s.append(t("<option/>").attr({value:e.value,label:e.label||e.value,title:e.title,selected:!!e.selected,disabled:!!e.disabled}))})):s=t("<option/>").attr({value:o.value,label:o.label||o.value,title:o.title,selected:!!o.selected,disabled:!!o.disabled}),r.append(s)}),this.rebuild()},enable:function(){this.$select.prop("disabled",!1),this.$button.prop("disabled",!1).removeClass("disabled")},disable:function(){this.$select.prop("disabled",!0),this.$button.prop("disabled",!0).addClass("disabled")},setOptions:function(t){this.options=this.mergeOptions(t)},mergeOptions:function(e){return t.extend(!0,{},this.defaults,this.options,e)},hasSelectAll:function(){return t("li.multiselect-all",this.$ul).length>0},updateSelectAll:function(){if(this.hasSelectAll()){var e=t("li:not(.multiselect-item):not(.filter-hidden) input:enabled",this.$ul),i=e.length,n=e.filter(":checked").length,r=t("li.multiselect-all",this.$ul),o=r.find("input");n>0&&n===i?(o.prop("checked",!0),r.addClass(this.options.selectedClass),this.options.onSelectAll()):(o.prop("checked",!1),r.removeClass(this.options.selectedClass))}},updateButtonText:function(){var e=this.getSelected();this.options.enableHTML?t(".multiselect .multiselect-selected-text",this.$container).html(this.options.buttonText(e,this.$select)):t(".multiselect .multiselect-selected-text",this.$container).text(this.options.buttonText(e,this.$select)),t(".multiselect",this.$container).attr("title",this.options.buttonTitle(e,this.$select))},getSelected:function(){return t("option",this.$select).filter(":selected")},getOptionByValue:function(e){for(var i=t("option",this.$select),n=e.toString(),r=0;r<i.length;r+=1){var o=i[r];if(o.value===n)return t(o)}},getInputByValue:function(e){for(var i=t("li input",this.$ul),n=e.toString(),r=0;r<i.length;r+=1){var o=i[r];if(o.value===n)return t(o)}},updateOriginalOptions:function(){this.originalOptions=this.$select.clone()[0].options},asyncFunction:function(t,e,i){var n=Array.prototype.slice.call(arguments,3);return setTimeout(function(){t.apply(i||window,n)},e)},setAllSelectedText:function(t){this.options.allSelectedText=t,this.updateButtonText()}},t.fn.multiselect=function(e,n,r){return this.each(function(){var o=t(this).data("multiselect"),s="object"==typeof e&&e;o||(o=new i(this,s),t(this).data("multiselect",o)),"string"==typeof e&&(o[e](n,r),"destroy"===e&&t(this).data("multiselect",!1))})},t.fn.multiselect.Constructor=i,t(function(){t("select[data-role=multiselect]").multiselect()})}(window.jQuery),function(t){var e,i,n="0.4.2",r="hasOwnProperty",o=/[\.\/]/,s="*",a=function(){},l=function(t,e){return t-e},h={n:{}},c=function(t,n){t=String(t);var r,o=i,s=Array.prototype.slice.call(arguments,2),a=c.listeners(t),h=0,u=[],p={},d=[],f=e;e=t,i=0;for(var g=0,m=a.length;g<m;g++)"zIndex"in a[g]&&(u.push(a[g].zIndex),a[g].zIndex<0&&(p[a[g].zIndex]=a[g]));for(u.sort(l);u[h]<0;)if(r=p[u[h++]],d.push(r.apply(n,s)),i)return i=o,d;for(g=0;g<m;g++)if(r=a[g],"zIndex"in r)if(r.zIndex==u[h]){if(d.push(r.apply(n,s)),i)break;do if(h++,r=p[u[h]],r&&d.push(r.apply(n,s)),i)break;while(r)}else p[r.zIndex]=r;else if(d.push(r.apply(n,s)),i)break;return i=o,e=f,d.length?d:null};c._events=h,c.listeners=function(t){var e,i,n,r,a,l,c,u,p=t.split(o),d=h,f=[d],g=[];for(r=0,a=p.length;r<a;r++){for(u=[],l=0,c=f.length;l<c;l++)for(d=f[l].n,i=[d[p[r]],d[s]],n=2;n--;)e=i[n],e&&(u.push(e),g=g.concat(e.f||[]));f=u}return g},c.on=function(t,e){if(t=String(t),"function"!=typeof e)return function(){};for(var i=t.split(o),n=h,r=0,s=i.length;r<s;r++)n=n.n,n=n.hasOwnProperty(i[r])&&n[i[r]]||(n[i[r]]={n:{}});for(n.f=n.f||[],r=0,s=n.f.length;r<s;r++)if(n.f[r]==e)return a;return n.f.push(e),function(t){+t==+t&&(e.zIndex=+t)}},c.f=function(t){var e=[].slice.call(arguments,1);return function(){c.apply(null,[t,null].concat(e).concat([].slice.call(arguments,0)))}},c.stop=function(){i=1},c.nt=function(t){return t?new RegExp("(?:\\.|\\/|^)"+t+"(?:\\.|\\/|$)").test(e):e},c.nts=function(){return e.split(o)},c.off=c.unbind=function(t,e){if(!t)return void(c._events=h={n:{}});var i,n,a,l,u,p,d,f=t.split(o),g=[h];for(l=0,u=f.length;l<u;l++)for(p=0;p<g.length;p+=a.length-2){if(a=[p,1],i=g[p].n,f[l]!=s)i[f[l]]&&a.push(i[f[l]]);else for(n in i)i[r](n)&&a.push(i[n]);g.splice.apply(g,a)}for(l=0,u=g.length;l<u;l++)for(i=g[l];i.n;){if(e){if(i.f){for(p=0,d=i.f.length;p<d;p++)if(i.f[p]==e){i.f.splice(p,1);break}!i.f.length&&delete i.f}for(n in i.n)if(i.n[r](n)&&i.n[n].f){var m=i.n[n].f;for(p=0,d=m.length;p<d;p++)if(m[p]==e){m.splice(p,1);break}!m.length&&delete i.n[n].f}}else{delete i.f;for(n in i.n)i.n[r](n)&&i.n[n].f&&delete i.n[n].f}i=i.n}},c.once=function(t,e){var i=function(){return c.unbind(t,i),e.apply(this,arguments)};return c.on(t,i)},c.version=n,c.toString=function(){return"You are running Eve "+n},"undefined"!=typeof module&&module.exports?module.exports=c:"undefined"!=typeof define?define("eve",[],function(){return c}):t.eve=c}(this),!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.Raphael=e():t.Raphael=e()}(this,function(){return function(t){function e(n){if(i[n])return i[n].exports;var r=i[n]={exports:{},id:n,loaded:!1};return t[n].call(r.exports,r,r.exports,e),r.loaded=!0,r.exports}var i={};return e.m=t,e.c=i,e.p="",e(0)}([function(t,e,i){var n,r;n=[i(1),i(3),i(4)],r=function(t){return t}.apply(e,n),!(void 0!==r&&(t.exports=r))},function(t,e,i){var n,r;n=[i(2)],r=function(t){function e(i){if(e.is(i,"function"))return b?i():t.on("raphael.DOMload",i);if(e.is(i,Y))return e._engine.create[D](e,i.splice(0,3+e.is(i[0],U))).add(i);var n=Array.prototype.slice.call(arguments,0);if(e.is(n[n.length-1],"function")){var r=n.pop();return b?r.call(e._engine.create[D](e,n)):t.on("raphael.DOMload",function(){r.call(e._engine.create[D](e,n))})}return e._engine.create[D](e,arguments)}function i(t){if("function"==typeof t||Object(t)!==t)return t;var e=new t.constructor;for(var n in t)t[k](n)&&(e[n]=i(t[n]));return e}function n(t,e){for(var i=0,n=t.length;n>i;i++)if(t[i]===e)return t.push(t.splice(i,1)[0])}function r(t,e,i){function r(){var o=Array.prototype.slice.call(arguments,0),s=o.join("␀"),a=r.cache=r.cache||{},l=r.count=r.count||[];return a[k](s)?(n(l,s),i?i(a[s]):a[s]):(l.length>=1e3&&delete a[l.shift()],l.push(s),a[s]=t[D](e,o),i?i(a[s]):a[s])}return r}function o(){return this.hex}function s(t,e){for(var i=[],n=0,r=t.length;r-2*!e>n;n+=2){var o=[{x:+t[n-2],y:+t[n-1]},{x:+t[n],y:+t[n+1]},{x:+t[n+2],y:+t[n+3]},{x:+t[n+4],y:+t[n+5]}];e?n?r-4==n?o[3]={x:+t[0],y:+t[1]}:r-2==n&&(o[2]={x:+t[0],y:+t[1]},o[3]={x:+t[2],y:+t[3]}):o[0]={x:+t[r-2],y:+t[r-1]}:r-4==n?o[3]=o[2]:n||(o[0]={x:+t[n],y:+t[n+1]}),i.push(["C",(-o[0].x+6*o[1].x+o[2].x)/6,(-o[0].y+6*o[1].y+o[2].y)/6,(o[1].x+6*o[2].x-o[3].x)/6,(o[1].y+6*o[2].y-o[3].y)/6,o[2].x,o[2].y])}return i}function a(t,e,i,n,r){var o=-3*e+9*i-9*n+3*r,s=t*o+6*e-12*i+6*n;return t*s-3*e+3*i}function l(t,e,i,n,r,o,s,l,h){null==h&&(h=1),h=h>1?1:0>h?0:h;for(var c=h/2,u=12,p=[-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816],d=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472],f=0,g=0;u>g;g++){var m=c*p[g]+c,v=a(m,t,i,r,s),y=a(m,e,n,o,l),b=v*v+y*y;f+=d[g]*N.sqrt(b)}return c*f}function h(t,e,i,n,r,o,s,a,h){if(!(0>h||l(t,e,i,n,r,o,s,a)<h)){var c,u=1,p=u/2,d=u-p,f=.01;for(c=l(t,e,i,n,r,o,s,a,d);H(c-h)>f;)p/=2,d+=(h>c?1:-1)*p,c=l(t,e,i,n,r,o,s,a,d);return d}}function c(t,e,i,n,r,o,s,a){if(!(j(t,i)<$(r,s)||$(t,i)>j(r,s)||j(e,n)<$(o,a)||$(e,n)>j(o,a))){var l=(t*n-e*i)*(r-s)-(t-i)*(r*a-o*s),h=(t*n-e*i)*(o-a)-(e-n)*(r*a-o*s),c=(t-i)*(o-a)-(e-n)*(r-s);if(c){var u=l/c,p=h/c,d=+u.toFixed(2),f=+p.toFixed(2);if(!(d<+$(t,i).toFixed(2)||d>+j(t,i).toFixed(2)||d<+$(r,s).toFixed(2)||d>+j(r,s).toFixed(2)||f<+$(e,n).toFixed(2)||f>+j(e,n).toFixed(2)||f<+$(o,a).toFixed(2)||f>+j(o,a).toFixed(2)))return{x:u,y:p}}}}function u(t,i,n){var r=e.bezierBBox(t),o=e.bezierBBox(i);if(!e.isBBoxIntersect(r,o))return n?0:[];for(var s=l.apply(0,t),a=l.apply(0,i),h=j(~~(s/5),1),u=j(~~(a/5),1),p=[],d=[],f={},g=n?0:[],m=0;h+1>m;m++){var v=e.findDotsAtSegment.apply(e,t.concat(m/h));p.push({x:v.x,y:v.y,t:m/h})}for(m=0;u+1>m;m++)v=e.findDotsAtSegment.apply(e,i.concat(m/u)),d.push({x:v.x,y:v.y,t:m/u});for(m=0;h>m;m++)for(var y=0;u>y;y++){var b=p[m],x=p[m+1],w=d[y],S=d[y+1],T=H(x.x-b.x)<.001?"y":"x",k=H(S.x-w.x)<.001?"y":"x",C=c(b.x,b.y,x.x,x.y,w.x,w.y,S.x,S.y);if(C){if(f[C.x.toFixed(4)]==C.y.toFixed(4))continue;f[C.x.toFixed(4)]=C.y.toFixed(4);var _=b.t+H((C[T]-b[T])/(x[T]-b[T]))*(x.t-b.t),A=w.t+H((C[k]-w[k])/(S[k]-w[k]))*(S.t-w.t);_>=0&&1.001>=_&&A>=0&&1.001>=A&&(n?g++:g.push({x:C.x,y:C.y,t1:$(_,1),t2:$(A,1)}))}}return g}function p(t,i,n){t=e._path2curve(t),i=e._path2curve(i);for(var r,o,s,a,l,h,c,p,d,f,g=n?0:[],m=0,v=t.length;v>m;m++){var y=t[m];if("M"==y[0])r=l=y[1],o=h=y[2];else{"C"==y[0]?(d=[r,o].concat(y.slice(1)),r=d[6],o=d[7]):(d=[r,o,r,o,l,h,l,h],r=l,o=h);for(var b=0,x=i.length;x>b;b++){var w=i[b];if("M"==w[0])s=c=w[1],a=p=w[2];else{"C"==w[0]?(f=[s,a].concat(w.slice(1)),s=f[6],a=f[7]):(f=[s,a,s,a,c,p,c,p],s=c,a=p);var S=u(d,f,n);if(n)g+=S;else{for(var T=0,k=S.length;k>T;T++)S[T].segment1=m,S[T].segment2=b,S[T].bez1=d,S[T].bez2=f;g=g.concat(S)}}}}}return g}function d(t,e,i,n,r,o){null!=t?(this.a=+t,this.b=+e,this.c=+i,this.d=+n,this.e=+r,this.f=+o):(this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0)}function f(){return this.x+M+this.y+M+this.width+" × "+this.height}function g(t,e,i,n,r,o){function s(t){return((u*t+c)*t+h)*t}function a(t,e){var i=l(t,e);return((f*i+d)*i+p)*i}function l(t,e){var i,n,r,o,a,l;for(r=t,l=0;8>l;l++){if(o=s(r)-t,H(o)<e)return r;if(a=(3*u*r+2*c)*r+h,H(a)<1e-6)break;r-=o/a}if(i=0,n=1,r=t,i>r)return i;if(r>n)return n;for(;n>i;){if(o=s(r),H(o-t)<e)return r;t>o?i=r:n=r,r=(n-i)/2+i}return r}var h=3*e,c=3*(n-e)-h,u=1-h-c,p=3*i,d=3*(r-i)-p,f=1-p-d;return a(t,1/(200*o))}function m(t,e){var i=[],n={};if(this.ms=e,this.times=1,t){for(var r in t)t[k](r)&&(n[Z(r)]=t[r],i.push(Z(r)));i.sort(ct)}this.anim=n,this.top=i[i.length-1],this.percents=i}function v(i,n,r,o,s,a){r=Z(r);var l,h,c,u,p,f,m=i.ms,v={},y={},b={};if(o)for(S=0,T=oe.length;T>S;S++){var x=oe[S];if(x.el.id==n.id&&x.anim==i){x.percent!=r?(oe.splice(S,1),c=1):h=x,n.attr(x.totalOrigin);break}}else o=+y;for(var S=0,T=i.percents.length;T>S;S++){if(i.percents[S]==r||i.percents[S]>o*i.top){r=i.percents[S],p=i.percents[S-1]||0,m=m/i.top*(r-p),u=i.percents[S+1],l=i.anim[r];break}o&&n.attr(i.anim[i.percents[S]])}if(l){if(h)h.initstatus=o,h.start=new Date-h.ms*o;else{for(var C in l)if(l[k](C)&&(it[k](C)||n.paper.customAttributes[k](C)))switch(v[C]=n.attr(C),null==v[C]&&(v[C]=et[C]),y[C]=l[C],it[C]){case U:b[C]=(y[C]-v[C])/m;break;case"colour":v[C]=e.getRGB(v[C]);var _=e.getRGB(y[C]);b[C]={r:(_.r-v[C].r)/m,g:(_.g-v[C].g)/m,b:(_.b-v[C].b)/m};break;case"path":var A=Rt(v[C],y[C]),D=A[1];for(v[C]=A[0],b[C]=[],S=0,T=v[C].length;T>S;S++){b[C][S]=[0];for(var E=1,P=v[C][S].length;P>E;E++)b[C][S][E]=(D[S][E]-v[C][S][E])/m}break;case"transform":var M=n._,O=jt(M[C],y[C]);if(O)for(v[C]=O.from,y[C]=O.to,b[C]=[],b[C].real=!0,S=0,T=v[C].length;T>S;S++)for(b[C][S]=[v[C][S][0]],E=1,P=v[C][S].length;P>E;E++)b[C][S][E]=(y[C][S][E]-v[C][S][E])/m;else{var B=n.matrix||new d,F={_:{transform:M.transform},getBBox:function(){return n.getBBox(1)}};v[C]=[B.a,B.b,B.c,B.d,B.e,B.f],Ft(F,y[C]),y[C]=F._.transform,b[C]=[(F.matrix.a-B.a)/m,(F.matrix.b-B.b)/m,(F.matrix.c-B.c)/m,(F.matrix.d-B.d)/m,(F.matrix.e-B.e)/m,(F.matrix.f-B.f)/m]}break;case"csv":var N=I(l[C])[R](w),j=I(v[C])[R](w);if("clip-rect"==C)for(v[C]=j,b[C]=[],S=j.length;S--;)b[C][S]=(N[S]-v[C][S])/m;y[C]=N;break;default:for(N=[][L](l[C]),j=[][L](v[C]),b[C]=[],S=n.paper.customAttributes[C].length;S--;)b[C][S]=((N[S]||0)-(j[S]||0))/m}var $=l.easing,H=e.easing_formulas[$];if(!H)if(H=I($).match(J),H&&5==H.length){var z=H;H=function(t){return g(t,+z[1],+z[2],+z[3],+z[4],m)}}else H=ut;if(f=l.start||i.start||+new Date,x={anim:i,percent:r,timestamp:f,start:f+(i.del||0),status:0,initstatus:o||0,stop:!1,ms:m,easing:H,from:v,diff:b,to:y,el:n,callback:l.callback,prev:p,next:u,repeat:a||i.times,origin:n.attr(),totalOrigin:s},oe.push(x),o&&!h&&!c&&(x.stop=!0,x.start=new Date-m*o,1==oe.length))return ae();c&&(x.start=new Date-x.ms*o),1==oe.length&&se(ae)}t("raphael.anim.start."+n.id,n,i)}}function y(t){for(var e=0;e<oe.length;e++)oe[e].el.paper==t&&oe.splice(e--,1)}e.version="2.2.0",e.eve=t;var b,x,w=/[, ]+/,S={circle:1,rect:1,path:1,ellipse:1,text:1,image:1},T=/\{(\d+)\}/g,k="hasOwnProperty",C={doc:document,win:window},_={was:Object.prototype[k].call(C.win,"Raphael"),is:C.win.Raphael},A=function(){this.ca=this.customAttributes={}},D="apply",L="concat",E="ontouchstart"in C.win||C.win.DocumentTouch&&C.doc instanceof DocumentTouch,P="",M=" ",I=String,R="split",O="click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend touchcancel"[R](M),B={mousedown:"touchstart",mousemove:"touchmove",mouseup:"touchend"},F=I.prototype.toLowerCase,N=Math,j=N.max,$=N.min,H=N.abs,z=N.pow,W=N.PI,U="number",X="string",Y="array",G=Object.prototype.toString,q=(e._ISURL=/^url\(['"]?(.+?)['"]?\)$/i,/^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\))\s*$/i),V={NaN:1,Infinity:1,"-Infinity":1},J=/^(?:cubic-)?bezier\(([^,]+),([^,]+),([^,]+),([^\)]+)\)/,K=N.round,Z=parseFloat,Q=parseInt,tt=I.prototype.toUpperCase,et=e._availableAttrs={"arrow-end":"none","arrow-start":"none",blur:0,"clip-rect":"0 0 1e9 1e9",cursor:"default",cx:0,cy:0,fill:"#fff","fill-opacity":1,font:'10px "Arial"',"font-family":'"Arial"',"font-size":"10","font-style":"normal","font-weight":400,gradient:0,height:0,href:"http://raphaeljs.com/","letter-spacing":0,opacity:1,path:"M0,0",r:0,rx:0,ry:0,src:"",stroke:"#000","stroke-dasharray":"","stroke-linecap":"butt","stroke-linejoin":"butt","stroke-miterlimit":0,"stroke-opacity":1,"stroke-width":1,target:"_blank","text-anchor":"middle",title:"Raphael",transform:"",width:0,x:0,y:0,"class":""},it=e._availableAnimAttrs={blur:U,"clip-rect":"csv",cx:U,cy:U,fill:"colour","fill-opacity":U,"font-size":U,height:U,opacity:U,path:"path",r:U,rx:U,ry:U,stroke:"colour","stroke-opacity":U,"stroke-width":U,transform:"transform",width:U,x:U,y:U},nt=/[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*/,rt={hs:1,rg:1},ot=/,?([achlmqrstvxz]),?/gi,st=/([achlmrqstvz])[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*)+)/gi,at=/([rstm])[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*)+)/gi,lt=/(-?\d*\.?\d*(?:e[\-+]?\d+)?)[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*/gi,ht=(e._radial_gradient=/^r(?:\(([^,]+?)[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*([^\)]+?)\))?/,{}),ct=function(t,e){return Z(t)-Z(e)},ut=function(t){return t},pt=e._rectPath=function(t,e,i,n,r){return r?[["M",t+r,e],["l",i-2*r,0],["a",r,r,0,0,1,r,r],["l",0,n-2*r],["a",r,r,0,0,1,-r,r],["l",2*r-i,0],["a",r,r,0,0,1,-r,-r],["l",0,2*r-n],["a",r,r,0,0,1,r,-r],["z"]]:[["M",t,e],["l",i,0],["l",0,n],["l",-i,0],["z"]]},dt=function(t,e,i,n){return null==n&&(n=i),[["M",t,e],["m",0,-n],["a",i,n,0,1,1,0,2*n],["a",i,n,0,1,1,0,-2*n],["z"]]},ft=e._getPath={path:function(t){return t.attr("path")},circle:function(t){var e=t.attrs;return dt(e.cx,e.cy,e.r)},ellipse:function(t){var e=t.attrs;return dt(e.cx,e.cy,e.rx,e.ry)},rect:function(t){var e=t.attrs;return pt(e.x,e.y,e.width,e.height,e.r)},image:function(t){var e=t.attrs;return pt(e.x,e.y,e.width,e.height)},text:function(t){var e=t._getBBox();return pt(e.x,e.y,e.width,e.height)},set:function(t){var e=t._getBBox();return pt(e.x,e.y,e.width,e.height)}},gt=e.mapPath=function(t,e){if(!e)return t;var i,n,r,o,s,a,l;for(t=Rt(t),r=0,s=t.length;s>r;r++)for(l=t[r],o=1,a=l.length;a>o;o+=2)i=e.x(l[o],l[o+1]),n=e.y(l[o],l[o+1]),l[o]=i,l[o+1]=n;return t};if(e._g=C,e.type=C.win.SVGAngle||C.doc.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")?"SVG":"VML","VML"==e.type){var mt,vt=C.doc.createElement("div");if(vt.innerHTML='<v:shape adj="1"/>',mt=vt.firstChild,mt.style.behavior="url(#default#VML)",!mt||"object"!=typeof mt.adj)return e.type=P;vt=null}e.svg=!(e.vml="VML"==e.type),e._Paper=A,e.fn=x=A.prototype=e.prototype,e._id=0,e._oid=0,e.is=function(t,e){return e=F.call(e),"finite"==e?!V[k](+t):"array"==e?t instanceof Array:"null"==e&&null===t||e==typeof t&&null!==t||"object"==e&&t===Object(t)||"array"==e&&Array.isArray&&Array.isArray(t)||G.call(t).slice(8,-1).toLowerCase()==e},e.angle=function(t,i,n,r,o,s){if(null==o){var a=t-n,l=i-r;return a||l?(180+180*N.atan2(-l,-a)/W+360)%360:0}return e.angle(t,i,o,s)-e.angle(n,r,o,s)},e.rad=function(t){return t%360*W/180},e.deg=function(t){return Math.round(180*t/W%360*1e3)/1e3},e.snapTo=function(t,i,n){if(n=e.is(n,"finite")?n:10,e.is(t,Y)){for(var r=t.length;r--;)if(H(t[r]-i)<=n)return t[r]}else{t=+t;var o=i%t;if(n>o)return i-o;if(o>t-n)return i-o+t}return i};e.createUUID=function(t,e){return function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(t,e).toUpperCase()}}(/[xy]/g,function(t){var e=16*N.random()|0,i="x"==t?e:3&e|8;return i.toString(16)});e.setWindow=function(i){t("raphael.setWindow",e,C.win,i),C.win=i,C.doc=C.win.document,e._engine.initWin&&e._engine.initWin(C.win)};var yt=function(t){if(e.vml){var i,n=/^\s+|\s+$/g;try{var o=new ActiveXObject("htmlfile");o.write("<body>"),o.close(),i=o.body}catch(s){i=createPopup().document.body}var a=i.createTextRange();yt=r(function(t){try{i.style.color=I(t).replace(n,P);var e=a.queryCommandValue("ForeColor");return e=(255&e)<<16|65280&e|(16711680&e)>>>16,"#"+("000000"+e.toString(16)).slice(-6)}catch(r){return"none"}})}else{var l=C.doc.createElement("i");l.title="Raphaël Colour Picker",l.style.display="none",C.doc.body.appendChild(l),yt=r(function(t){return l.style.color=t,C.doc.defaultView.getComputedStyle(l,P).getPropertyValue("color")})}return yt(t)},bt=function(){return"hsb("+[this.h,this.s,this.b]+")"},xt=function(){return"hsl("+[this.h,this.s,this.l]+")"},wt=function(){return this.hex},St=function(t,i,n){if(null==i&&e.is(t,"object")&&"r"in t&&"g"in t&&"b"in t&&(n=t.b,i=t.g,t=t.r),null==i&&e.is(t,X)){var r=e.getRGB(t);t=r.r,i=r.g,n=r.b}return(t>1||i>1||n>1)&&(t/=255,i/=255,n/=255),[t,i,n]},Tt=function(t,i,n,r){t*=255,i*=255,n*=255;var o={r:t,g:i,b:n,hex:e.rgb(t,i,n),toString:wt};return e.is(r,"finite")&&(o.opacity=r),o};e.color=function(t){var i;return e.is(t,"object")&&"h"in t&&"s"in t&&"b"in t?(i=e.hsb2rgb(t),t.r=i.r,t.g=i.g,t.b=i.b,t.hex=i.hex):e.is(t,"object")&&"h"in t&&"s"in t&&"l"in t?(i=e.hsl2rgb(t),t.r=i.r,t.g=i.g,t.b=i.b,t.hex=i.hex):(e.is(t,"string")&&(t=e.getRGB(t)),e.is(t,"object")&&"r"in t&&"g"in t&&"b"in t?(i=e.rgb2hsl(t),t.h=i.h,t.s=i.s,t.l=i.l,i=e.rgb2hsb(t),t.v=i.b):(t={hex:"none"},t.r=t.g=t.b=t.h=t.s=t.v=t.l=-1)),t.toString=wt,t},e.hsb2rgb=function(t,e,i,n){this.is(t,"object")&&"h"in t&&"s"in t&&"b"in t&&(i=t.b,e=t.s,n=t.o,t=t.h),t*=360;var r,o,s,a,l;return t=t%360/60,l=i*e,a=l*(1-H(t%2-1)),r=o=s=i-l,t=~~t,r+=[l,a,0,0,a,l][t],o+=[a,l,l,a,0,0][t],s+=[0,0,a,l,l,a][t],Tt(r,o,s,n)},e.hsl2rgb=function(t,e,i,n){this.is(t,"object")&&"h"in t&&"s"in t&&"l"in t&&(i=t.l,e=t.s,t=t.h),(t>1||e>1||i>1)&&(t/=360,e/=100,i/=100),t*=360;var r,o,s,a,l;return t=t%360/60,l=2*e*(.5>i?i:1-i),a=l*(1-H(t%2-1)),r=o=s=i-l/2,t=~~t,r+=[l,a,0,0,a,l][t],o+=[a,l,l,a,0,0][t],s+=[0,0,a,l,l,a][t],Tt(r,o,s,n)},e.rgb2hsb=function(t,e,i){i=St(t,e,i),t=i[0],e=i[1],i=i[2];var n,r,o,s;return o=j(t,e,i),s=o-$(t,e,i),n=0==s?null:o==t?(e-i)/s:o==e?(i-t)/s+2:(t-e)/s+4,n=(n+360)%6*60/360,r=0==s?0:s/o,{h:n,s:r,b:o,toString:bt}},e.rgb2hsl=function(t,e,i){i=St(t,e,i),t=i[0],e=i[1],i=i[2];var n,r,o,s,a,l;return s=j(t,e,i),a=$(t,e,i),l=s-a,n=0==l?null:s==t?(e-i)/l:s==e?(i-t)/l+2:(t-e)/l+4,n=(n+360)%6*60/360,o=(s+a)/2,r=0==l?0:.5>o?l/(2*o):l/(2-2*o),{h:n,s:r,l:o,toString:xt}},e._path2string=function(){return this.join(",").replace(ot,"$1")};e._preload=function(t,e){var i=C.doc.createElement("img");i.style.cssText="position:absolute;left:-9999em;top:-9999em",i.onload=function(){e.call(this),this.onload=null,C.doc.body.removeChild(this)},i.onerror=function(){C.doc.body.removeChild(this)},C.doc.body.appendChild(i),i.src=t};e.getRGB=r(function(t){if(!t||(t=I(t)).indexOf("-")+1)return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:o};if("none"==t)return{r:-1,g:-1,b:-1,hex:"none",toString:o};!(rt[k](t.toLowerCase().substring(0,2))||"#"==t.charAt())&&(t=yt(t));var i,n,r,s,a,l,h=t.match(q);return h?(h[2]&&(r=Q(h[2].substring(5),16),n=Q(h[2].substring(3,5),16),i=Q(h[2].substring(1,3),16)),h[3]&&(r=Q((a=h[3].charAt(3))+a,16),n=Q((a=h[3].charAt(2))+a,16),i=Q((a=h[3].charAt(1))+a,16)),h[4]&&(l=h[4][R](nt),i=Z(l[0]),
"%"==l[0].slice(-1)&&(i*=2.55),n=Z(l[1]),"%"==l[1].slice(-1)&&(n*=2.55),r=Z(l[2]),"%"==l[2].slice(-1)&&(r*=2.55),"rgba"==h[1].toLowerCase().slice(0,4)&&(s=Z(l[3])),l[3]&&"%"==l[3].slice(-1)&&(s/=100)),h[5]?(l=h[5][R](nt),i=Z(l[0]),"%"==l[0].slice(-1)&&(i*=2.55),n=Z(l[1]),"%"==l[1].slice(-1)&&(n*=2.55),r=Z(l[2]),"%"==l[2].slice(-1)&&(r*=2.55),("deg"==l[0].slice(-3)||"°"==l[0].slice(-1))&&(i/=360),"hsba"==h[1].toLowerCase().slice(0,4)&&(s=Z(l[3])),l[3]&&"%"==l[3].slice(-1)&&(s/=100),e.hsb2rgb(i,n,r,s)):h[6]?(l=h[6][R](nt),i=Z(l[0]),"%"==l[0].slice(-1)&&(i*=2.55),n=Z(l[1]),"%"==l[1].slice(-1)&&(n*=2.55),r=Z(l[2]),"%"==l[2].slice(-1)&&(r*=2.55),("deg"==l[0].slice(-3)||"°"==l[0].slice(-1))&&(i/=360),"hsla"==h[1].toLowerCase().slice(0,4)&&(s=Z(l[3])),l[3]&&"%"==l[3].slice(-1)&&(s/=100),e.hsl2rgb(i,n,r,s)):(h={r:i,g:n,b:r,toString:o},h.hex="#"+(16777216|r|n<<8|i<<16).toString(16).slice(1),e.is(s,"finite")&&(h.opacity=s),h)):{r:-1,g:-1,b:-1,hex:"none",error:1,toString:o}},e),e.hsb=r(function(t,i,n){return e.hsb2rgb(t,i,n).hex}),e.hsl=r(function(t,i,n){return e.hsl2rgb(t,i,n).hex}),e.rgb=r(function(t,e,i){function n(t){return t+.5|0}return"#"+(16777216|n(i)|n(e)<<8|n(t)<<16).toString(16).slice(1)}),e.getColor=function(t){var e=this.getColor.start=this.getColor.start||{h:0,s:1,b:t||.75},i=this.hsb2rgb(e.h,e.s,e.b);return e.h+=.075,e.h>1&&(e.h=0,e.s-=.2,e.s<=0&&(this.getColor.start={h:0,s:1,b:e.b})),i.hex},e.getColor.reset=function(){delete this.start},e.parsePathString=function(t){if(!t)return null;var i=kt(t);if(i.arr)return _t(i.arr);var n={a:7,c:6,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,z:0},r=[];return e.is(t,Y)&&e.is(t[0],Y)&&(r=_t(t)),r.length||I(t).replace(st,function(t,e,i){var o=[],s=e.toLowerCase();if(i.replace(lt,function(t,e){e&&o.push(+e)}),"m"==s&&o.length>2&&(r.push([e][L](o.splice(0,2))),s="l",e="m"==e?"l":"L"),"r"==s)r.push([e][L](o));else for(;o.length>=n[s]&&(r.push([e][L](o.splice(0,n[s]))),n[s]););}),r.toString=e._path2string,i.arr=_t(r),r},e.parseTransformString=r(function(t){if(!t)return null;var i=[];return e.is(t,Y)&&e.is(t[0],Y)&&(i=_t(t)),i.length||I(t).replace(at,function(t,e,n){var r=[];F.call(e);n.replace(lt,function(t,e){e&&r.push(+e)}),i.push([e][L](r))}),i.toString=e._path2string,i});var kt=function(t){var e=kt.ps=kt.ps||{};return e[t]?e[t].sleep=100:e[t]={sleep:100},setTimeout(function(){for(var i in e)e[k](i)&&i!=t&&(e[i].sleep--,!e[i].sleep&&delete e[i])}),e[t]};e.findDotsAtSegment=function(t,e,i,n,r,o,s,a,l){var h=1-l,c=z(h,3),u=z(h,2),p=l*l,d=p*l,f=c*t+3*u*l*i+3*h*l*l*r+d*s,g=c*e+3*u*l*n+3*h*l*l*o+d*a,m=t+2*l*(i-t)+p*(r-2*i+t),v=e+2*l*(n-e)+p*(o-2*n+e),y=i+2*l*(r-i)+p*(s-2*r+i),b=n+2*l*(o-n)+p*(a-2*o+n),x=h*t+l*i,w=h*e+l*n,S=h*r+l*s,T=h*o+l*a,k=90-180*N.atan2(m-y,v-b)/W;return(m>y||b>v)&&(k+=180),{x:f,y:g,m:{x:m,y:v},n:{x:y,y:b},start:{x:x,y:w},end:{x:S,y:T},alpha:k}},e.bezierBBox=function(t,i,n,r,o,s,a,l){e.is(t,"array")||(t=[t,i,n,r,o,s,a,l]);var h=It.apply(null,t);return{x:h.min.x,y:h.min.y,x2:h.max.x,y2:h.max.y,width:h.max.x-h.min.x,height:h.max.y-h.min.y}},e.isPointInsideBBox=function(t,e,i){return e>=t.x&&e<=t.x2&&i>=t.y&&i<=t.y2},e.isBBoxIntersect=function(t,i){var n=e.isPointInsideBBox;return n(i,t.x,t.y)||n(i,t.x2,t.y)||n(i,t.x,t.y2)||n(i,t.x2,t.y2)||n(t,i.x,i.y)||n(t,i.x2,i.y)||n(t,i.x,i.y2)||n(t,i.x2,i.y2)||(t.x<i.x2&&t.x>i.x||i.x<t.x2&&i.x>t.x)&&(t.y<i.y2&&t.y>i.y||i.y<t.y2&&i.y>t.y)},e.pathIntersection=function(t,e){return p(t,e)},e.pathIntersectionNumber=function(t,e){return p(t,e,1)},e.isPointInsidePath=function(t,i,n){var r=e.pathBBox(t);return e.isPointInsideBBox(r,i,n)&&p(t,[["M",i,n],["H",r.x2+10]],1)%2==1},e._removedFactory=function(e){return function(){t("raphael.log",null,"Raphaël: you are calling to method “"+e+"” of removed object",e)}};var Ct=e.pathBBox=function(t){var e=kt(t);if(e.bbox)return i(e.bbox);if(!t)return{x:0,y:0,width:0,height:0,x2:0,y2:0};t=Rt(t);for(var n,r=0,o=0,s=[],a=[],l=0,h=t.length;h>l;l++)if(n=t[l],"M"==n[0])r=n[1],o=n[2],s.push(r),a.push(o);else{var c=It(r,o,n[1],n[2],n[3],n[4],n[5],n[6]);s=s[L](c.min.x,c.max.x),a=a[L](c.min.y,c.max.y),r=n[5],o=n[6]}var u=$[D](0,s),p=$[D](0,a),d=j[D](0,s),f=j[D](0,a),g=d-u,m=f-p,v={x:u,y:p,x2:d,y2:f,width:g,height:m,cx:u+g/2,cy:p+m/2};return e.bbox=i(v),v},_t=function(t){var n=i(t);return n.toString=e._path2string,n},At=e._pathToRelative=function(t){var i=kt(t);if(i.rel)return _t(i.rel);e.is(t,Y)&&e.is(t&&t[0],Y)||(t=e.parsePathString(t));var n=[],r=0,o=0,s=0,a=0,l=0;"M"==t[0][0]&&(r=t[0][1],o=t[0][2],s=r,a=o,l++,n.push(["M",r,o]));for(var h=l,c=t.length;c>h;h++){var u=n[h]=[],p=t[h];if(p[0]!=F.call(p[0]))switch(u[0]=F.call(p[0]),u[0]){case"a":u[1]=p[1],u[2]=p[2],u[3]=p[3],u[4]=p[4],u[5]=p[5],u[6]=+(p[6]-r).toFixed(3),u[7]=+(p[7]-o).toFixed(3);break;case"v":u[1]=+(p[1]-o).toFixed(3);break;case"m":s=p[1],a=p[2];default:for(var d=1,f=p.length;f>d;d++)u[d]=+(p[d]-(d%2?r:o)).toFixed(3)}else{u=n[h]=[],"m"==p[0]&&(s=p[1]+r,a=p[2]+o);for(var g=0,m=p.length;m>g;g++)n[h][g]=p[g]}var v=n[h].length;switch(n[h][0]){case"z":r=s,o=a;break;case"h":r+=+n[h][v-1];break;case"v":o+=+n[h][v-1];break;default:r+=+n[h][v-2],o+=+n[h][v-1]}}return n.toString=e._path2string,i.rel=_t(n),n},Dt=e._pathToAbsolute=function(t){var i=kt(t);if(i.abs)return _t(i.abs);if(e.is(t,Y)&&e.is(t&&t[0],Y)||(t=e.parsePathString(t)),!t||!t.length)return[["M",0,0]];var n=[],r=0,o=0,a=0,l=0,h=0;"M"==t[0][0]&&(r=+t[0][1],o=+t[0][2],a=r,l=o,h++,n[0]=["M",r,o]);for(var c,u,p=3==t.length&&"M"==t[0][0]&&"R"==t[1][0].toUpperCase()&&"Z"==t[2][0].toUpperCase(),d=h,f=t.length;f>d;d++){if(n.push(c=[]),u=t[d],u[0]!=tt.call(u[0]))switch(c[0]=tt.call(u[0]),c[0]){case"A":c[1]=u[1],c[2]=u[2],c[3]=u[3],c[4]=u[4],c[5]=u[5],c[6]=+(u[6]+r),c[7]=+(u[7]+o);break;case"V":c[1]=+u[1]+o;break;case"H":c[1]=+u[1]+r;break;case"R":for(var g=[r,o][L](u.slice(1)),m=2,v=g.length;v>m;m++)g[m]=+g[m]+r,g[++m]=+g[m]+o;n.pop(),n=n[L](s(g,p));break;case"M":a=+u[1]+r,l=+u[2]+o;default:for(m=1,v=u.length;v>m;m++)c[m]=+u[m]+(m%2?r:o)}else if("R"==u[0])g=[r,o][L](u.slice(1)),n.pop(),n=n[L](s(g,p)),c=["R"][L](u.slice(-2));else for(var y=0,b=u.length;b>y;y++)c[y]=u[y];switch(c[0]){case"Z":r=a,o=l;break;case"H":r=c[1];break;case"V":o=c[1];break;case"M":a=c[c.length-2],l=c[c.length-1];default:r=c[c.length-2],o=c[c.length-1]}}return n.toString=e._path2string,i.abs=_t(n),n},Lt=function(t,e,i,n){return[t,e,i,n,i,n]},Et=function(t,e,i,n,r,o){var s=1/3,a=2/3;return[s*t+a*i,s*e+a*n,s*r+a*i,s*o+a*n,r,o]},Pt=function(t,e,i,n,o,s,a,l,h,c){var u,p=120*W/180,d=W/180*(+o||0),f=[],g=r(function(t,e,i){var n=t*N.cos(i)-e*N.sin(i),r=t*N.sin(i)+e*N.cos(i);return{x:n,y:r}});if(c)k=c[0],C=c[1],S=c[2],T=c[3];else{u=g(t,e,-d),t=u.x,e=u.y,u=g(l,h,-d),l=u.x,h=u.y;var m=(N.cos(W/180*o),N.sin(W/180*o),(t-l)/2),v=(e-h)/2,y=m*m/(i*i)+v*v/(n*n);y>1&&(y=N.sqrt(y),i=y*i,n=y*n);var b=i*i,x=n*n,w=(s==a?-1:1)*N.sqrt(H((b*x-b*v*v-x*m*m)/(b*v*v+x*m*m))),S=w*i*v/n+(t+l)/2,T=w*-n*m/i+(e+h)/2,k=N.asin(((e-T)/n).toFixed(9)),C=N.asin(((h-T)/n).toFixed(9));k=S>t?W-k:k,C=S>l?W-C:C,0>k&&(k=2*W+k),0>C&&(C=2*W+C),a&&k>C&&(k-=2*W),!a&&C>k&&(C-=2*W)}var _=C-k;if(H(_)>p){var A=C,D=l,E=h;C=k+p*(a&&C>k?1:-1),l=S+i*N.cos(C),h=T+n*N.sin(C),f=Pt(l,h,i,n,o,0,a,D,E,[C,A,S,T])}_=C-k;var P=N.cos(k),M=N.sin(k),I=N.cos(C),O=N.sin(C),B=N.tan(_/4),F=4/3*i*B,j=4/3*n*B,$=[t,e],z=[t+F*M,e-j*P],U=[l+F*O,h-j*I],X=[l,h];if(z[0]=2*$[0]-z[0],z[1]=2*$[1]-z[1],c)return[z,U,X][L](f);f=[z,U,X][L](f).join()[R](",");for(var Y=[],G=0,q=f.length;q>G;G++)Y[G]=G%2?g(f[G-1],f[G],d).y:g(f[G],f[G+1],d).x;return Y},Mt=function(t,e,i,n,r,o,s,a,l){var h=1-l;return{x:z(h,3)*t+3*z(h,2)*l*i+3*h*l*l*r+z(l,3)*s,y:z(h,3)*e+3*z(h,2)*l*n+3*h*l*l*o+z(l,3)*a}},It=r(function(t,e,i,n,r,o,s,a){var l,h=r-2*i+t-(s-2*r+i),c=2*(i-t)-2*(r-i),u=t-i,p=(-c+N.sqrt(c*c-4*h*u))/2/h,d=(-c-N.sqrt(c*c-4*h*u))/2/h,f=[e,a],g=[t,s];return H(p)>"1e12"&&(p=.5),H(d)>"1e12"&&(d=.5),p>0&&1>p&&(l=Mt(t,e,i,n,r,o,s,a,p),g.push(l.x),f.push(l.y)),d>0&&1>d&&(l=Mt(t,e,i,n,r,o,s,a,d),g.push(l.x),f.push(l.y)),h=o-2*n+e-(a-2*o+n),c=2*(n-e)-2*(o-n),u=e-n,p=(-c+N.sqrt(c*c-4*h*u))/2/h,d=(-c-N.sqrt(c*c-4*h*u))/2/h,H(p)>"1e12"&&(p=.5),H(d)>"1e12"&&(d=.5),p>0&&1>p&&(l=Mt(t,e,i,n,r,o,s,a,p),g.push(l.x),f.push(l.y)),d>0&&1>d&&(l=Mt(t,e,i,n,r,o,s,a,d),g.push(l.x),f.push(l.y)),{min:{x:$[D](0,g),y:$[D](0,f)},max:{x:j[D](0,g),y:j[D](0,f)}}}),Rt=e._path2curve=r(function(t,e){var i=!e&&kt(t);if(!e&&i.curve)return _t(i.curve);for(var n=Dt(t),r=e&&Dt(e),o={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},s={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},a=(function(t,e,i){var n,r,o={T:1,Q:1};if(!t)return["C",e.x,e.y,e.x,e.y,e.x,e.y];switch(!(t[0]in o)&&(e.qx=e.qy=null),t[0]){case"M":e.X=t[1],e.Y=t[2];break;case"A":t=["C"][L](Pt[D](0,[e.x,e.y][L](t.slice(1))));break;case"S":"C"==i||"S"==i?(n=2*e.x-e.bx,r=2*e.y-e.by):(n=e.x,r=e.y),t=["C",n,r][L](t.slice(1));break;case"T":"Q"==i||"T"==i?(e.qx=2*e.x-e.qx,e.qy=2*e.y-e.qy):(e.qx=e.x,e.qy=e.y),t=["C"][L](Et(e.x,e.y,e.qx,e.qy,t[1],t[2]));break;case"Q":e.qx=t[1],e.qy=t[2],t=["C"][L](Et(e.x,e.y,t[1],t[2],t[3],t[4]));break;case"L":t=["C"][L](Lt(e.x,e.y,t[1],t[2]));break;case"H":t=["C"][L](Lt(e.x,e.y,t[1],e.y));break;case"V":t=["C"][L](Lt(e.x,e.y,e.x,t[1]));break;case"Z":t=["C"][L](Lt(e.x,e.y,e.X,e.Y))}return t}),l=function(t,e){if(t[e].length>7){t[e].shift();for(var i=t[e];i.length;)c[e]="A",r&&(u[e]="A"),t.splice(e++,0,["C"][L](i.splice(0,6)));t.splice(e,1),g=j(n.length,r&&r.length||0)}},h=function(t,e,i,o,s){t&&e&&"M"==t[s][0]&&"M"!=e[s][0]&&(e.splice(s,0,["M",o.x,o.y]),i.bx=0,i.by=0,i.x=t[s][1],i.y=t[s][2],g=j(n.length,r&&r.length||0))},c=[],u=[],p="",d="",f=0,g=j(n.length,r&&r.length||0);g>f;f++){n[f]&&(p=n[f][0]),"C"!=p&&(c[f]=p,f&&(d=c[f-1])),n[f]=a(n[f],o,d),"A"!=c[f]&&"C"==p&&(c[f]="C"),l(n,f),r&&(r[f]&&(p=r[f][0]),"C"!=p&&(u[f]=p,f&&(d=u[f-1])),r[f]=a(r[f],s,d),"A"!=u[f]&&"C"==p&&(u[f]="C"),l(r,f)),h(n,r,o,s,f),h(r,n,s,o,f);var m=n[f],v=r&&r[f],y=m.length,b=r&&v.length;o.x=m[y-2],o.y=m[y-1],o.bx=Z(m[y-4])||o.x,o.by=Z(m[y-3])||o.y,s.bx=r&&(Z(v[b-4])||s.x),s.by=r&&(Z(v[b-3])||s.y),s.x=r&&v[b-2],s.y=r&&v[b-1]}return r||(i.curve=_t(n)),r?[n,r]:n},null,_t),Ot=(e._parseDots=r(function(t){for(var i=[],n=0,r=t.length;r>n;n++){var o={},s=t[n].match(/^([^:]*):?([\d\.]*)/);if(o.color=e.getRGB(s[1]),o.color.error)return null;o.opacity=o.color.opacity,o.color=o.color.hex,s[2]&&(o.offset=s[2]+"%"),i.push(o)}for(n=1,r=i.length-1;r>n;n++)if(!i[n].offset){for(var a=Z(i[n-1].offset||0),l=0,h=n+1;r>h;h++)if(i[h].offset){l=i[h].offset;break}l||(l=100,h=r),l=Z(l);for(var c=(l-a)/(h-n+1);h>n;n++)a+=c,i[n].offset=a+"%"}return i}),e._tear=function(t,e){t==e.top&&(e.top=t.prev),t==e.bottom&&(e.bottom=t.next),t.next&&(t.next.prev=t.prev),t.prev&&(t.prev.next=t.next)}),Bt=(e._tofront=function(t,e){e.top!==t&&(Ot(t,e),t.next=null,t.prev=e.top,e.top.next=t,e.top=t)},e._toback=function(t,e){e.bottom!==t&&(Ot(t,e),t.next=e.bottom,t.prev=null,e.bottom.prev=t,e.bottom=t)},e._insertafter=function(t,e,i){Ot(t,i),e==i.top&&(i.top=t),e.next&&(e.next.prev=t),t.next=e.next,t.prev=e,e.next=t},e._insertbefore=function(t,e,i){Ot(t,i),e==i.bottom&&(i.bottom=t),e.prev&&(e.prev.next=t),t.prev=e.prev,e.prev=t,t.next=e},e.toMatrix=function(t,e){var i=Ct(t),n={_:{transform:P},getBBox:function(){return i}};return Ft(n,e),n.matrix}),Ft=(e.transformPath=function(t,e){return gt(t,Bt(t,e))},e._extractTransform=function(t,i){if(null==i)return t._.transform;i=I(i).replace(/\.{3}|\u2026/g,t._.transform||P);var n=e.parseTransformString(i),r=0,o=0,s=0,a=1,l=1,h=t._,c=new d;if(h.transform=n||[],n)for(var u=0,p=n.length;p>u;u++){var f,g,m,v,y,b=n[u],x=b.length,w=I(b[0]).toLowerCase(),S=b[0]!=w,T=S?c.invert():0;"t"==w&&3==x?S?(f=T.x(0,0),g=T.y(0,0),m=T.x(b[1],b[2]),v=T.y(b[1],b[2]),c.translate(m-f,v-g)):c.translate(b[1],b[2]):"r"==w?2==x?(y=y||t.getBBox(1),c.rotate(b[1],y.x+y.width/2,y.y+y.height/2),r+=b[1]):4==x&&(S?(m=T.x(b[2],b[3]),v=T.y(b[2],b[3]),c.rotate(b[1],m,v)):c.rotate(b[1],b[2],b[3]),r+=b[1]):"s"==w?2==x||3==x?(y=y||t.getBBox(1),c.scale(b[1],b[x-1],y.x+y.width/2,y.y+y.height/2),a*=b[1],l*=b[x-1]):5==x&&(S?(m=T.x(b[3],b[4]),v=T.y(b[3],b[4]),c.scale(b[1],b[2],m,v)):c.scale(b[1],b[2],b[3],b[4]),a*=b[1],l*=b[2]):"m"==w&&7==x&&c.add(b[1],b[2],b[3],b[4],b[5],b[6]),h.dirtyT=1,t.matrix=c}t.matrix=c,h.sx=a,h.sy=l,h.deg=r,h.dx=o=c.e,h.dy=s=c.f,1==a&&1==l&&!r&&h.bbox?(h.bbox.x+=+o,h.bbox.y+=+s):h.dirtyT=1}),Nt=function(t){var e=t[0];switch(e.toLowerCase()){case"t":return[e,0,0];case"m":return[e,1,0,0,1,0,0];case"r":return 4==t.length?[e,0,t[2],t[3]]:[e,0];case"s":return 5==t.length?[e,1,1,t[3],t[4]]:3==t.length?[e,1,1]:[e,1]}},jt=e._equaliseTransform=function(t,i){i=I(i).replace(/\.{3}|\u2026/g,t),t=e.parseTransformString(t)||[],i=e.parseTransformString(i)||[];for(var n,r,o,s,a=j(t.length,i.length),l=[],h=[],c=0;a>c;c++){if(o=t[c]||Nt(i[c]),s=i[c]||Nt(o),o[0]!=s[0]||"r"==o[0].toLowerCase()&&(o[2]!=s[2]||o[3]!=s[3])||"s"==o[0].toLowerCase()&&(o[3]!=s[3]||o[4]!=s[4]))return;for(l[c]=[],h[c]=[],n=0,r=j(o.length,s.length);r>n;n++)n in o&&(l[c][n]=o[n]),n in s&&(h[c][n]=s[n])}return{from:l,to:h}};e._getContainer=function(t,i,n,r){var o;return o=null!=r||e.is(t,"object")?t:C.doc.getElementById(t),null!=o?o.tagName?null==i?{container:o,width:o.style.pixelWidth||o.offsetWidth,height:o.style.pixelHeight||o.offsetHeight}:{container:o,width:i,height:n}:{container:1,x:t,y:i,width:n,height:r}:void 0},e.pathToRelative=At,e._engine={},e.path2curve=Rt,e.matrix=function(t,e,i,n,r,o){return new d(t,e,i,n,r,o)},function(t){function i(t){return t[0]*t[0]+t[1]*t[1]}function n(t){var e=N.sqrt(i(t));t[0]&&(t[0]/=e),t[1]&&(t[1]/=e)}t.add=function(t,e,i,n,r,o){var s,a,l,h,c=[[],[],[]],u=[[this.a,this.c,this.e],[this.b,this.d,this.f],[0,0,1]],p=[[t,i,r],[e,n,o],[0,0,1]];for(t&&t instanceof d&&(p=[[t.a,t.c,t.e],[t.b,t.d,t.f],[0,0,1]]),s=0;3>s;s++)for(a=0;3>a;a++){for(h=0,l=0;3>l;l++)h+=u[s][l]*p[l][a];c[s][a]=h}this.a=c[0][0],this.b=c[1][0],this.c=c[0][1],this.d=c[1][1],this.e=c[0][2],this.f=c[1][2]},t.invert=function(){var t=this,e=t.a*t.d-t.b*t.c;return new d(t.d/e,-t.b/e,-t.c/e,t.a/e,(t.c*t.f-t.d*t.e)/e,(t.b*t.e-t.a*t.f)/e)},t.clone=function(){return new d(this.a,this.b,this.c,this.d,this.e,this.f)},t.translate=function(t,e){this.add(1,0,0,1,t,e)},t.scale=function(t,e,i,n){null==e&&(e=t),(i||n)&&this.add(1,0,0,1,i,n),this.add(t,0,0,e,0,0),(i||n)&&this.add(1,0,0,1,-i,-n)},t.rotate=function(t,i,n){t=e.rad(t),i=i||0,n=n||0;var r=+N.cos(t).toFixed(9),o=+N.sin(t).toFixed(9);this.add(r,o,-o,r,i,n),this.add(1,0,0,1,-i,-n)},t.x=function(t,e){return t*this.a+e*this.c+this.e},t.y=function(t,e){return t*this.b+e*this.d+this.f},t.get=function(t){return+this[I.fromCharCode(97+t)].toFixed(4)},t.toString=function(){return e.svg?"matrix("+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)].join()+")":[this.get(0),this.get(2),this.get(1),this.get(3),0,0].join()},t.toFilter=function(){return"progid:DXImageTransform.Microsoft.Matrix(M11="+this.get(0)+", M12="+this.get(2)+", M21="+this.get(1)+", M22="+this.get(3)+", Dx="+this.get(4)+", Dy="+this.get(5)+", sizingmethod='auto expand')"},t.offset=function(){return[this.e.toFixed(4),this.f.toFixed(4)]},t.split=function(){var t={};t.dx=this.e,t.dy=this.f;var r=[[this.a,this.c],[this.b,this.d]];t.scalex=N.sqrt(i(r[0])),n(r[0]),t.shear=r[0][0]*r[1][0]+r[0][1]*r[1][1],r[1]=[r[1][0]-r[0][0]*t.shear,r[1][1]-r[0][1]*t.shear],t.scaley=N.sqrt(i(r[1])),n(r[1]),t.shear/=t.scaley;var o=-r[0][1],s=r[1][1];return 0>s?(t.rotate=e.deg(N.acos(s)),0>o&&(t.rotate=360-t.rotate)):t.rotate=e.deg(N.asin(o)),t.isSimple=!(+t.shear.toFixed(9)||t.scalex.toFixed(9)!=t.scaley.toFixed(9)&&t.rotate),t.isSuperSimple=!+t.shear.toFixed(9)&&t.scalex.toFixed(9)==t.scaley.toFixed(9)&&!t.rotate,t.noRotation=!+t.shear.toFixed(9)&&!t.rotate,t},t.toTransformString=function(t){var e=t||this[R]();return e.isSimple?(e.scalex=+e.scalex.toFixed(4),e.scaley=+e.scaley.toFixed(4),e.rotate=+e.rotate.toFixed(4),(e.dx||e.dy?"t"+[e.dx,e.dy]:P)+(1!=e.scalex||1!=e.scaley?"s"+[e.scalex,e.scaley,0,0]:P)+(e.rotate?"r"+[e.rotate,0,0]:P)):"m"+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)]}}(d.prototype);for(var $t=function(){this.returnValue=!1},Ht=function(){return this.originalEvent.preventDefault()},zt=function(){this.cancelBubble=!0},Wt=function(){return this.originalEvent.stopPropagation()},Ut=function(t){var e=C.doc.documentElement.scrollTop||C.doc.body.scrollTop,i=C.doc.documentElement.scrollLeft||C.doc.body.scrollLeft;return{x:t.clientX+i,y:t.clientY+e}},Xt=function(){return C.doc.addEventListener?function(t,e,i,n){var r=function(t){var e=Ut(t);return i.call(n,t,e.x,e.y)};if(t.addEventListener(e,r,!1),E&&B[e]){var o=function(e){for(var r=Ut(e),o=e,s=0,a=e.targetTouches&&e.targetTouches.length;a>s;s++)if(e.targetTouches[s].target==t){e=e.targetTouches[s],e.originalEvent=o,e.preventDefault=Ht,e.stopPropagation=Wt;break}return i.call(n,e,r.x,r.y)};t.addEventListener(B[e],o,!1)}return function(){return t.removeEventListener(e,r,!1),E&&B[e]&&t.removeEventListener(B[e],o,!1),!0}}:C.doc.attachEvent?function(t,e,i,n){var r=function(t){t=t||C.win.event;var e=C.doc.documentElement.scrollTop||C.doc.body.scrollTop,r=C.doc.documentElement.scrollLeft||C.doc.body.scrollLeft,o=t.clientX+r,s=t.clientY+e;return t.preventDefault=t.preventDefault||$t,t.stopPropagation=t.stopPropagation||zt,i.call(n,t,o,s)};t.attachEvent("on"+e,r);var o=function(){return t.detachEvent("on"+e,r),!0};return o}:void 0}(),Yt=[],Gt=function(e){for(var i,n=e.clientX,r=e.clientY,o=C.doc.documentElement.scrollTop||C.doc.body.scrollTop,s=C.doc.documentElement.scrollLeft||C.doc.body.scrollLeft,a=Yt.length;a--;){if(i=Yt[a],E&&e.touches){for(var l,h=e.touches.length;h--;)if(l=e.touches[h],l.identifier==i.el._drag.id){n=l.clientX,r=l.clientY,(e.originalEvent?e.originalEvent:e).preventDefault();break}}else e.preventDefault();var c,u=i.el.node,p=u.nextSibling,d=u.parentNode,f=u.style.display;C.win.opera&&d.removeChild(u),u.style.display="none",c=i.el.paper.getElementByPoint(n,r),u.style.display=f,C.win.opera&&(p?d.insertBefore(u,p):d.appendChild(u)),c&&t("raphael.drag.over."+i.el.id,i.el,c),n+=s,r+=o,t("raphael.drag.move."+i.el.id,i.move_scope||i.el,n-i.el._drag.x,r-i.el._drag.y,n,r,e)}},qt=function(i){e.unmousemove(Gt).unmouseup(qt);for(var n,r=Yt.length;r--;)n=Yt[r],n.el._drag={},t("raphael.drag.end."+n.el.id,n.end_scope||n.start_scope||n.move_scope||n.el,i);Yt=[]},Vt=e.el={},Jt=O.length;Jt--;)!function(t){e[t]=Vt[t]=function(i,n){return e.is(i,"function")&&(this.events=this.events||[],this.events.push({name:t,f:i,unbind:Xt(this.shape||this.node||C.doc,t,i,n||this)})),this},e["un"+t]=Vt["un"+t]=function(i){for(var n=this.events||[],r=n.length;r--;)n[r].name!=t||!e.is(i,"undefined")&&n[r].f!=i||(n[r].unbind(),n.splice(r,1),!n.length&&delete this.events);return this}}(O[Jt]);Vt.data=function(i,n){var r=ht[this.id]=ht[this.id]||{};if(0==arguments.length)return r;if(1==arguments.length){if(e.is(i,"object")){for(var o in i)i[k](o)&&this.data(o,i[o]);return this}return t("raphael.data.get."+this.id,this,r[i],i),r[i]}return r[i]=n,t("raphael.data.set."+this.id,this,n,i),this},Vt.removeData=function(t){return null==t?ht[this.id]={}:ht[this.id]&&delete ht[this.id][t],this},Vt.getData=function(){return i(ht[this.id]||{})},Vt.hover=function(t,e,i,n){return this.mouseover(t,i).mouseout(e,n||i)},Vt.unhover=function(t,e){return this.unmouseover(t).unmouseout(e)};var Kt=[];Vt.drag=function(i,n,r,o,s,a){function l(l){(l.originalEvent||l).preventDefault();var h=l.clientX,c=l.clientY,u=C.doc.documentElement.scrollTop||C.doc.body.scrollTop,p=C.doc.documentElement.scrollLeft||C.doc.body.scrollLeft;if(this._drag.id=l.identifier,E&&l.touches)for(var d,f=l.touches.length;f--;)if(d=l.touches[f],this._drag.id=d.identifier,d.identifier==this._drag.id){h=d.clientX,c=d.clientY;break}this._drag.x=h+p,this._drag.y=c+u,!Yt.length&&e.mousemove(Gt).mouseup(qt),Yt.push({el:this,move_scope:o,start_scope:s,end_scope:a}),n&&t.on("raphael.drag.start."+this.id,n),i&&t.on("raphael.drag.move."+this.id,i),r&&t.on("raphael.drag.end."+this.id,r),t("raphael.drag.start."+this.id,s||o||this,l.clientX+p,l.clientY+u,l)}return this._drag={},Kt.push({el:this,start:l}),this.mousedown(l),this},Vt.onDragOver=function(e){e?t.on("raphael.drag.over."+this.id,e):t.unbind("raphael.drag.over."+this.id)},Vt.undrag=function(){for(var i=Kt.length;i--;)Kt[i].el==this&&(this.unmousedown(Kt[i].start),Kt.splice(i,1),t.unbind("raphael.drag.*."+this.id));!Kt.length&&e.unmousemove(Gt).unmouseup(qt),Yt=[]},x.circle=function(t,i,n){var r=e._engine.circle(this,t||0,i||0,n||0);return this.__set__&&this.__set__.push(r),r},x.rect=function(t,i,n,r,o){var s=e._engine.rect(this,t||0,i||0,n||0,r||0,o||0);return this.__set__&&this.__set__.push(s),s},x.ellipse=function(t,i,n,r){var o=e._engine.ellipse(this,t||0,i||0,n||0,r||0);return this.__set__&&this.__set__.push(o),o},x.path=function(t){t&&!e.is(t,X)&&!e.is(t[0],Y)&&(t+=P);var i=e._engine.path(e.format[D](e,arguments),this);return this.__set__&&this.__set__.push(i),i},x.image=function(t,i,n,r,o){var s=e._engine.image(this,t||"about:blank",i||0,n||0,r||0,o||0);return this.__set__&&this.__set__.push(s),s},x.text=function(t,i,n){var r=e._engine.text(this,t||0,i||0,I(n));return this.__set__&&this.__set__.push(r),r},x.set=function(t){!e.is(t,"array")&&(t=Array.prototype.splice.call(arguments,0,arguments.length));var i=new he(t);return this.__set__&&this.__set__.push(i),i.paper=this,i.type="set",i},x.setStart=function(t){this.__set__=t||this.set()},x.setFinish=function(t){var e=this.__set__;return delete this.__set__,e},x.getSize=function(){var t=this.canvas.parentNode;return{width:t.offsetWidth,height:t.offsetHeight}},x.setSize=function(t,i){return e._engine.setSize.call(this,t,i)},x.setViewBox=function(t,i,n,r,o){return e._engine.setViewBox.call(this,t,i,n,r,o)},x.top=x.bottom=null,x.raphael=e;var Zt=function(t){var e=t.getBoundingClientRect(),i=t.ownerDocument,n=i.body,r=i.documentElement,o=r.clientTop||n.clientTop||0,s=r.clientLeft||n.clientLeft||0,a=e.top+(C.win.pageYOffset||r.scrollTop||n.scrollTop)-o,l=e.left+(C.win.pageXOffset||r.scrollLeft||n.scrollLeft)-s;return{y:a,x:l}};x.getElementByPoint=function(t,e){var i=this,n=i.canvas,r=C.doc.elementFromPoint(t,e);if(C.win.opera&&"svg"==r.tagName){var o=Zt(n),s=n.createSVGRect();s.x=t-o.x,s.y=e-o.y,s.width=s.height=1;var a=n.getIntersectionList(s,null);a.length&&(r=a[a.length-1])}if(!r)return null;for(;r.parentNode&&r!=n.parentNode&&!r.raphael;)r=r.parentNode;return r==i.canvas.parentNode&&(r=n),r=r&&r.raphael?i.getById(r.raphaelid):null},x.getElementsByBBox=function(t){var i=this.set();return this.forEach(function(n){e.isBBoxIntersect(n.getBBox(),t)&&i.push(n)}),i},x.getById=function(t){for(var e=this.bottom;e;){if(e.id==t)return e;e=e.next}return null},x.forEach=function(t,e){for(var i=this.bottom;i;){if(t.call(e,i)===!1)return this;i=i.next}return this},x.getElementsByPoint=function(t,e){var i=this.set();return this.forEach(function(n){n.isPointInside(t,e)&&i.push(n)}),i},Vt.isPointInside=function(t,i){var n=this.realPath=ft[this.type](this);return this.attr("transform")&&this.attr("transform").length&&(n=e.transformPath(n,this.attr("transform"))),e.isPointInsidePath(n,t,i)},Vt.getBBox=function(t){if(this.removed)return{};var e=this._;return t?(!e.dirty&&e.bboxwt||(this.realPath=ft[this.type](this),e.bboxwt=Ct(this.realPath),e.bboxwt.toString=f,e.dirty=0),e.bboxwt):((e.dirty||e.dirtyT||!e.bbox)&&(!e.dirty&&this.realPath||(e.bboxwt=0,this.realPath=ft[this.type](this)),e.bbox=Ct(gt(this.realPath,this.matrix)),e.bbox.toString=f,e.dirty=e.dirtyT=0),e.bbox)},Vt.clone=function(){if(this.removed)return null;var t=this.paper[this.type]().attr(this.attr());return this.__set__&&this.__set__.push(t),t},Vt.glow=function(t){if("text"==this.type)return null;t=t||{};var e={width:(t.width||10)+(+this.attr("stroke-width")||1),fill:t.fill||!1,opacity:null==t.opacity?.5:t.opacity,offsetx:t.offsetx||0,offsety:t.offsety||0,color:t.color||"#000"},i=e.width/2,n=this.paper,r=n.set(),o=this.realPath||ft[this.type](this);o=this.matrix?gt(o,this.matrix):o;for(var s=1;i+1>s;s++)r.push(n.path(o).attr({stroke:e.color,fill:e.fill?e.color:"none","stroke-linejoin":"round","stroke-linecap":"round","stroke-width":+(e.width/i*s).toFixed(3),opacity:+(e.opacity/i).toFixed(3)}));return r.insertBefore(this).translate(e.offsetx,e.offsety)};var Qt=function(t,i,n,r,o,s,a,c,u){return null==u?l(t,i,n,r,o,s,a,c):e.findDotsAtSegment(t,i,n,r,o,s,a,c,h(t,i,n,r,o,s,a,c,u))},te=function(t,i){return function(n,r,o){n=Rt(n);for(var s,a,l,h,c,u="",p={},d=0,f=0,g=n.length;g>f;f++){if(l=n[f],"M"==l[0])s=+l[1],a=+l[2];else{if(h=Qt(s,a,l[1],l[2],l[3],l[4],l[5],l[6]),d+h>r){if(i&&!p.start){if(c=Qt(s,a,l[1],l[2],l[3],l[4],l[5],l[6],r-d),u+=["C"+c.start.x,c.start.y,c.m.x,c.m.y,c.x,c.y],o)return u;p.start=u,u=["M"+c.x,c.y+"C"+c.n.x,c.n.y,c.end.x,c.end.y,l[5],l[6]].join(),d+=h,s=+l[5],a=+l[6];continue}if(!t&&!i)return c=Qt(s,a,l[1],l[2],l[3],l[4],l[5],l[6],r-d),{x:c.x,y:c.y,alpha:c.alpha}}d+=h,s=+l[5],a=+l[6]}u+=l.shift()+l}return p.end=u,c=t?d:i?p:e.findDotsAtSegment(s,a,l[0],l[1],l[2],l[3],l[4],l[5],1),c.alpha&&(c={x:c.x,y:c.y,alpha:c.alpha}),c}},ee=te(1),ie=te(),ne=te(0,1);e.getTotalLength=ee,e.getPointAtLength=ie,e.getSubpath=function(t,e,i){if(this.getTotalLength(t)-i<1e-6)return ne(t,e).end;var n=ne(t,i,1);return e?ne(n,e).end:n},Vt.getTotalLength=function(){var t=this.getPath();if(t)return this.node.getTotalLength?this.node.getTotalLength():ee(t)},Vt.getPointAtLength=function(t){var e=this.getPath();if(e)return ie(e,t)},Vt.getPath=function(){var t,i=e._getPath[this.type];if("text"!=this.type&&"set"!=this.type)return i&&(t=i(this)),t},Vt.getSubpath=function(t,i){var n=this.getPath();if(n)return e.getSubpath(n,t,i)};var re=e.easing_formulas={linear:function(t){return t},"<":function(t){return z(t,1.7)},">":function(t){return z(t,.48)},"<>":function(t){var e=.48-t/1.04,i=N.sqrt(.1734+e*e),n=i-e,r=z(H(n),1/3)*(0>n?-1:1),o=-i-e,s=z(H(o),1/3)*(0>o?-1:1),a=r+s+.5;return 3*(1-a)*a*a+a*a*a},backIn:function(t){var e=1.70158;return t*t*((e+1)*t-e)},backOut:function(t){t-=1;var e=1.70158;return t*t*((e+1)*t+e)+1},elastic:function(t){return t==!!t?t:z(2,-10*t)*N.sin((t-.075)*(2*W)/.3)+1},bounce:function(t){var e,i=7.5625,n=2.75;return 1/n>t?e=i*t*t:2/n>t?(t-=1.5/n,e=i*t*t+.75):2.5/n>t?(t-=2.25/n,e=i*t*t+.9375):(t-=2.625/n,e=i*t*t+.984375),e}};re.easeIn=re["ease-in"]=re["<"],re.easeOut=re["ease-out"]=re[">"],re.easeInOut=re["ease-in-out"]=re["<>"],re["back-in"]=re.backIn,re["back-out"]=re.backOut;var oe=[],se=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){setTimeout(t,16)},ae=function(){for(var i=+new Date,n=0;n<oe.length;n++){var r=oe[n];if(!r.el.removed&&!r.paused){var o,s,a=i-r.start,l=r.ms,h=r.easing,c=r.from,u=r.diff,p=r.to,d=(r.t,r.el),f={},g={};if(r.initstatus?(a=(r.initstatus*r.anim.top-r.prev)/(r.percent-r.prev)*l,r.status=r.initstatus,delete r.initstatus,r.stop&&oe.splice(n--,1)):r.status=(r.prev+(r.percent-r.prev)*(a/l))/r.anim.top,!(0>a))if(l>a){var m=h(a/l);for(var y in c)if(c[k](y)){switch(it[y]){case U:o=+c[y]+m*l*u[y];break;case"colour":o="rgb("+[le(K(c[y].r+m*l*u[y].r)),le(K(c[y].g+m*l*u[y].g)),le(K(c[y].b+m*l*u[y].b))].join(",")+")";break;case"path":o=[];for(var b=0,x=c[y].length;x>b;b++){o[b]=[c[y][b][0]];for(var w=1,S=c[y][b].length;S>w;w++)o[b][w]=+c[y][b][w]+m*l*u[y][b][w];o[b]=o[b].join(M)}o=o.join(M);break;case"transform":if(u[y].real)for(o=[],b=0,x=c[y].length;x>b;b++)for(o[b]=[c[y][b][0]],w=1,S=c[y][b].length;S>w;w++)o[b][w]=c[y][b][w]+m*l*u[y][b][w];else{var T=function(t){return+c[y][t]+m*l*u[y][t]};o=[["m",T(0),T(1),T(2),T(3),T(4),T(5)]]}break;case"csv":if("clip-rect"==y)for(o=[],b=4;b--;)o[b]=+c[y][b]+m*l*u[y][b];break;default:var C=[][L](c[y]);for(o=[],b=d.paper.customAttributes[y].length;b--;)o[b]=+C[b]+m*l*u[y][b]}f[y]=o}d.attr(f),function(e,i,n){setTimeout(function(){t("raphael.anim.frame."+e,i,n)})}(d.id,d,r.anim)}else{if(function(i,n,r){setTimeout(function(){t("raphael.anim.frame."+n.id,n,r),t("raphael.anim.finish."+n.id,n,r),e.is(i,"function")&&i.call(n)})}(r.callback,d,r.anim),d.attr(p),oe.splice(n--,1),r.repeat>1&&!r.next){for(s in p)p[k](s)&&(g[s]=r.totalOrigin[s]);r.el.attr(g),v(r.anim,r.el,r.anim.percents[0],null,r.totalOrigin,r.repeat-1)}r.next&&!r.stop&&v(r.anim,r.el,r.next,null,r.totalOrigin,r.repeat)}}}oe.length&&se(ae)},le=function(t){return t>255?255:0>t?0:t};Vt.animateWith=function(t,i,n,r,o,s){var a=this;if(a.removed)return s&&s.call(a),a;var l=n instanceof m?n:e.animation(n,r,o,s);v(l,a,l.percents[0],null,a.attr());for(var h=0,c=oe.length;c>h;h++)if(oe[h].anim==i&&oe[h].el==t){oe[c-1].start=oe[h].start;break}return a},Vt.onAnimation=function(e){return e?t.on("raphael.anim.frame."+this.id,e):t.unbind("raphael.anim.frame."+this.id),this},m.prototype.delay=function(t){var e=new m(this.anim,this.ms);return e.times=this.times,e.del=+t||0,e},m.prototype.repeat=function(t){var e=new m(this.anim,this.ms);return e.del=this.del,e.times=N.floor(j(t,0))||1,e},e.animation=function(t,i,n,r){if(t instanceof m)return t;!e.is(n,"function")&&n||(r=r||n||null,n=null),t=Object(t),i=+i||0;var o,s,a={};for(s in t)t[k](s)&&Z(s)!=s&&Z(s)+"%"!=s&&(o=!0,a[s]=t[s]);if(o)return n&&(a.easing=n),r&&(a.callback=r),new m({100:a},i);if(r){var l=0;for(var h in t){var c=Q(h);t[k](h)&&c>l&&(l=c)}l+="%",!t[l].callback&&(t[l].callback=r)}return new m(t,i)},Vt.animate=function(t,i,n,r){var o=this;if(o.removed)return r&&r.call(o),o;var s=t instanceof m?t:e.animation(t,i,n,r);return v(s,o,s.percents[0],null,o.attr()),o},Vt.setTime=function(t,e){return t&&null!=e&&this.status(t,$(e,t.ms)/t.ms),this},Vt.status=function(t,e){var i,n,r=[],o=0;if(null!=e)return v(t,this,-1,$(e,1)),this;for(i=oe.length;i>o;o++)if(n=oe[o],n.el.id==this.id&&(!t||n.anim==t)){if(t)return n.status;r.push({anim:n.anim,status:n.status})}return t?0:r},Vt.pause=function(e){for(var i=0;i<oe.length;i++)oe[i].el.id!=this.id||e&&oe[i].anim!=e||t("raphael.anim.pause."+this.id,this,oe[i].anim)!==!1&&(oe[i].paused=!0);return this},Vt.resume=function(e){for(var i=0;i<oe.length;i++)if(oe[i].el.id==this.id&&(!e||oe[i].anim==e)){var n=oe[i];t("raphael.anim.resume."+this.id,this,n.anim)!==!1&&(delete n.paused,this.status(n.anim,n.status))}return this},Vt.stop=function(e){for(var i=0;i<oe.length;i++)oe[i].el.id!=this.id||e&&oe[i].anim!=e||t("raphael.anim.stop."+this.id,this,oe[i].anim)!==!1&&oe.splice(i--,1);return this},t.on("raphael.remove",y),t.on("raphael.clear",y),Vt.toString=function(){return"Raphaël’s object"};var he=function(t){if(this.items=[],this.length=0,this.type="set",t)for(var e=0,i=t.length;i>e;e++)!t[e]||t[e].constructor!=Vt.constructor&&t[e].constructor!=he||(this[this.items.length]=this.items[this.items.length]=t[e],this.length++)},ce=he.prototype;ce.push=function(){for(var t,e,i=0,n=arguments.length;n>i;i++)t=arguments[i],!t||t.constructor!=Vt.constructor&&t.constructor!=he||(e=this.items.length,this[e]=this.items[e]=t,this.length++);return this},ce.pop=function(){return this.length&&delete this[this.length--],this.items.pop()},ce.forEach=function(t,e){for(var i=0,n=this.items.length;n>i;i++)if(t.call(e,this.items[i],i)===!1)return this;return this};for(var ue in Vt)Vt[k](ue)&&(ce[ue]=function(t){return function(){var e=arguments;return this.forEach(function(i){i[t][D](i,e)})}}(ue));return ce.attr=function(t,i){if(t&&e.is(t,Y)&&e.is(t[0],"object"))for(var n=0,r=t.length;r>n;n++)this.items[n].attr(t[n]);else for(var o=0,s=this.items.length;s>o;o++)this.items[o].attr(t,i);return this},ce.clear=function(){for(;this.length;)this.pop()},ce.splice=function(t,e,i){t=0>t?j(this.length+t,0):t,e=j(0,$(this.length-t,e));var n,r=[],o=[],s=[];for(n=2;n<arguments.length;n++)s.push(arguments[n]);for(n=0;e>n;n++)o.push(this[t+n]);for(;n<this.length-t;n++)r.push(this[t+n]);var a=s.length;for(n=0;n<a+r.length;n++)this.items[t+n]=this[t+n]=a>n?s[n]:r[n-a];for(n=this.items.length=this.length-=e-a;this[n];)delete this[n++];return new he(o)},ce.exclude=function(t){
for(var e=0,i=this.length;i>e;e++)if(this[e]==t)return this.splice(e,1),!0},ce.animate=function(t,i,n,r){(e.is(n,"function")||!n)&&(r=n||null);var o,s,a=this.items.length,l=a,h=this;if(!a)return this;r&&(s=function(){!--a&&r.call(h)}),n=e.is(n,X)?n:s;var c=e.animation(t,i,n,s);for(o=this.items[--l].animate(c);l--;)this.items[l]&&!this.items[l].removed&&this.items[l].animateWith(o,c,c),this.items[l]&&!this.items[l].removed||a--;return this},ce.insertAfter=function(t){for(var e=this.items.length;e--;)this.items[e].insertAfter(t);return this},ce.getBBox=function(){for(var t=[],e=[],i=[],n=[],r=this.items.length;r--;)if(!this.items[r].removed){var o=this.items[r].getBBox();t.push(o.x),e.push(o.y),i.push(o.x+o.width),n.push(o.y+o.height)}return t=$[D](0,t),e=$[D](0,e),i=j[D](0,i),n=j[D](0,n),{x:t,y:e,x2:i,y2:n,width:i-t,height:n-e}},ce.clone=function(t){t=this.paper.set();for(var e=0,i=this.items.length;i>e;e++)t.push(this.items[e].clone());return t},ce.toString=function(){return"Raphaël‘s set"},ce.glow=function(t){var e=this.paper.set();return this.forEach(function(i,n){var r=i.glow(t);null!=r&&r.forEach(function(t,i){e.push(t)})}),e},ce.isPointInside=function(t,e){var i=!1;return this.forEach(function(n){return n.isPointInside(t,e)?(i=!0,!1):void 0}),i},e.registerFont=function(t){if(!t.face)return t;this.fonts=this.fonts||{};var e={w:t.w,face:{},glyphs:{}},i=t.face["font-family"];for(var n in t.face)t.face[k](n)&&(e.face[n]=t.face[n]);if(this.fonts[i]?this.fonts[i].push(e):this.fonts[i]=[e],!t.svg){e.face["units-per-em"]=Q(t.face["units-per-em"],10);for(var r in t.glyphs)if(t.glyphs[k](r)){var o=t.glyphs[r];if(e.glyphs[r]={w:o.w,k:{},d:o.d&&"M"+o.d.replace(/[mlcxtrv]/g,function(t){return{l:"L",c:"C",x:"z",t:"m",r:"l",v:"c"}[t]||"M"})+"z"},o.k)for(var s in o.k)o[k](s)&&(e.glyphs[r].k[s]=o.k[s])}}return t},x.getFont=function(t,i,n,r){if(r=r||"normal",n=n||"normal",i=+i||{normal:400,bold:700,lighter:300,bolder:800}[i]||400,e.fonts){var o=e.fonts[t];if(!o){var s=new RegExp("(^|\\s)"+t.replace(/[^\w\d\s+!~.:_-]/g,P)+"(\\s|$)","i");for(var a in e.fonts)if(e.fonts[k](a)&&s.test(a)){o=e.fonts[a];break}}var l;if(o)for(var h=0,c=o.length;c>h&&(l=o[h],l.face["font-weight"]!=i||l.face["font-style"]!=n&&l.face["font-style"]||l.face["font-stretch"]!=r);h++);return l}},x.print=function(t,i,n,r,o,s,a,l){s=s||"middle",a=j($(a||0,1),-1),l=j($(l||1,3),1);var h,c=I(n)[R](P),u=0,p=0,d=P;if(e.is(r,"string")&&(r=this.getFont(r)),r){h=(o||16)/r.face["units-per-em"];for(var f=r.face.bbox[R](w),g=+f[0],m=f[3]-f[1],v=0,y=+f[1]+("baseline"==s?m+ +r.face.descent:m/2),b=0,x=c.length;x>b;b++){if("\n"==c[b])u=0,T=0,p=0,v+=m*l;else{var S=p&&r.glyphs[c[b-1]]||{},T=r.glyphs[c[b]];u+=p?(S.w||r.w)+(S.k&&S.k[c[b]]||0)+r.w*a:0,p=1}T&&T.d&&(d+=e.transformPath(T.d,["t",u*h,v*h,"s",h,h,g,y,"t",(t-g)/h,(i-y)/h]))}}return this.path(d).attr({fill:"#000",stroke:"none"})},x.add=function(t){if(e.is(t,"array"))for(var i,n=this.set(),r=0,o=t.length;o>r;r++)i=t[r]||{},S[k](i.type)&&n.push(this[i.type]().attr(i));return n},e.format=function(t,i){var n=e.is(i,Y)?[0][L](i):arguments;return t&&e.is(t,X)&&n.length-1&&(t=t.replace(T,function(t,e){return null==n[++e]?P:n[e]})),t||P},e.fullfill=function(){var t=/\{([^\}]+)\}/g,e=/(?:(?:^|\.)(.+?)(?=\[|\.|$|\()|\[('|")(.+?)\2\])(\(\))?/g,i=function(t,i,n){var r=n;return i.replace(e,function(t,e,i,n,o){e=e||n,r&&(e in r&&(r=r[e]),"function"==typeof r&&o&&(r=r()))}),r=(null==r||r==n?t:r)+""};return function(e,n){return String(e).replace(t,function(t,e){return i(t,e,n)})}}(),e.ninja=function(){if(_.was)C.win.Raphael=_.is;else{window.Raphael=void 0;try{delete window.Raphael}catch(t){}}return e},e.st=ce,t.on("raphael.DOMload",function(){b=!0}),function(t,i,n){function r(){/in/.test(t.readyState)?setTimeout(r,9):e.eve("raphael.DOMload")}null==t.readyState&&t.addEventListener&&(t.addEventListener(i,n=function(){t.removeEventListener(i,n,!1),t.readyState="complete"},!1),t.readyState="loading"),r()}(document,"DOMContentLoaded"),e}.apply(e,n),!(void 0!==r&&(t.exports=r))},function(t,e,i){var n,r;!function(i){var o,s,a="0.4.2",l="hasOwnProperty",h=/[\.\/]/,c="*",u=function(){},p=function(t,e){return t-e},d={n:{}},f=function(t,e){t=String(t);var i,n=s,r=Array.prototype.slice.call(arguments,2),a=f.listeners(t),l=0,h=[],c={},u=[],d=o;o=t,s=0;for(var g=0,m=a.length;m>g;g++)"zIndex"in a[g]&&(h.push(a[g].zIndex),a[g].zIndex<0&&(c[a[g].zIndex]=a[g]));for(h.sort(p);h[l]<0;)if(i=c[h[l++]],u.push(i.apply(e,r)),s)return s=n,u;for(g=0;m>g;g++)if(i=a[g],"zIndex"in i)if(i.zIndex==h[l]){if(u.push(i.apply(e,r)),s)break;do if(l++,i=c[h[l]],i&&u.push(i.apply(e,r)),s)break;while(i)}else c[i.zIndex]=i;else if(u.push(i.apply(e,r)),s)break;return s=n,o=d,u.length?u:null};f._events=d,f.listeners=function(t){var e,i,n,r,o,s,a,l,u=t.split(h),p=d,f=[p],g=[];for(r=0,o=u.length;o>r;r++){for(l=[],s=0,a=f.length;a>s;s++)for(p=f[s].n,i=[p[u[r]],p[c]],n=2;n--;)e=i[n],e&&(l.push(e),g=g.concat(e.f||[]));f=l}return g},f.on=function(t,e){if(t=String(t),"function"!=typeof e)return function(){};for(var i=t.split(h),n=d,r=0,o=i.length;o>r;r++)n=n.n,n=n.hasOwnProperty(i[r])&&n[i[r]]||(n[i[r]]={n:{}});for(n.f=n.f||[],r=0,o=n.f.length;o>r;r++)if(n.f[r]==e)return u;return n.f.push(e),function(t){+t==+t&&(e.zIndex=+t)}},f.f=function(t){var e=[].slice.call(arguments,1);return function(){f.apply(null,[t,null].concat(e).concat([].slice.call(arguments,0)))}},f.stop=function(){s=1},f.nt=function(t){return t?new RegExp("(?:\\.|\\/|^)"+t+"(?:\\.|\\/|$)").test(o):o},f.nts=function(){return o.split(h)},f.off=f.unbind=function(t,e){if(!t)return void(f._events=d={n:{}});var i,n,r,o,s,a,u,p=t.split(h),g=[d];for(o=0,s=p.length;s>o;o++)for(a=0;a<g.length;a+=r.length-2){if(r=[a,1],i=g[a].n,p[o]!=c)i[p[o]]&&r.push(i[p[o]]);else for(n in i)i[l](n)&&r.push(i[n]);g.splice.apply(g,r)}for(o=0,s=g.length;s>o;o++)for(i=g[o];i.n;){if(e){if(i.f){for(a=0,u=i.f.length;u>a;a++)if(i.f[a]==e){i.f.splice(a,1);break}!i.f.length&&delete i.f}for(n in i.n)if(i.n[l](n)&&i.n[n].f){var m=i.n[n].f;for(a=0,u=m.length;u>a;a++)if(m[a]==e){m.splice(a,1);break}!m.length&&delete i.n[n].f}}else{delete i.f;for(n in i.n)i.n[l](n)&&i.n[n].f&&delete i.n[n].f}i=i.n}},f.once=function(t,e){var i=function(){return f.unbind(t,i),e.apply(this,arguments)};return f.on(t,i)},f.version=a,f.toString=function(){return"You are running Eve "+a},"undefined"!=typeof t&&t.exports?t.exports=f:(n=[],r=function(){return f}.apply(e,n),!(void 0!==r&&(t.exports=r)))}(this)},function(t,e,i){var n,r;n=[i(1)],r=function(t){if(!t||t.svg){var e="hasOwnProperty",i=String,n=parseFloat,r=parseInt,o=Math,s=o.max,a=o.abs,l=o.pow,h=/[, ]+/,c=t.eve,u="",p=" ",d="http://www.w3.org/1999/xlink",f={block:"M5,0 0,2.5 5,5z",classic:"M5,0 0,2.5 5,5 3.5,3 3.5,2z",diamond:"M2.5,0 5,2.5 2.5,5 0,2.5z",open:"M6,1 1,3.5 6,6",oval:"M2.5,0A2.5,2.5,0,0,1,2.5,5 2.5,2.5,0,0,1,2.5,0z"},g={};t.toString=function(){return"Your browser supports SVG.\nYou are running Raphaël "+this.version};var m=function(n,r){if(r){"string"==typeof n&&(n=m(n));for(var o in r)r[e](o)&&("xlink:"==o.substring(0,6)?n.setAttributeNS(d,o.substring(6),i(r[o])):n.setAttribute(o,i(r[o])))}else n=t._g.doc.createElementNS("http://www.w3.org/2000/svg",n),n.style&&(n.style.webkitTapHighlightColor="rgba(0,0,0,0)");return n},v=function(e,r){var h="linear",c=e.id+r,p=.5,d=.5,f=e.node,g=e.paper,v=f.style,y=t._g.doc.getElementById(c);if(!y){if(r=i(r).replace(t._radial_gradient,function(t,e,i){if(h="radial",e&&i){p=n(e),d=n(i);var r=2*(d>.5)-1;l(p-.5,2)+l(d-.5,2)>.25&&(d=o.sqrt(.25-l(p-.5,2))*r+.5)&&.5!=d&&(d=d.toFixed(5)-1e-5*r)}return u}),r=r.split(/\s*\-\s*/),"linear"==h){var x=r.shift();if(x=-n(x),isNaN(x))return null;var w=[0,0,o.cos(t.rad(x)),o.sin(t.rad(x))],S=1/(s(a(w[2]),a(w[3]))||1);w[2]*=S,w[3]*=S,w[2]<0&&(w[0]=-w[2],w[2]=0),w[3]<0&&(w[1]=-w[3],w[3]=0)}var T=t._parseDots(r);if(!T)return null;if(c=c.replace(/[\(\)\s,\xb0#]/g,"_"),e.gradient&&c!=e.gradient.id&&(g.defs.removeChild(e.gradient),delete e.gradient),!e.gradient){y=m(h+"Gradient",{id:c}),e.gradient=y,m(y,"radial"==h?{fx:p,fy:d}:{x1:w[0],y1:w[1],x2:w[2],y2:w[3],gradientTransform:e.matrix.invert()}),g.defs.appendChild(y);for(var k=0,C=T.length;C>k;k++)y.appendChild(m("stop",{offset:T[k].offset?T[k].offset:k?"100%":"0%","stop-color":T[k].color||"#fff","stop-opacity":isFinite(T[k].opacity)?T[k].opacity:1}))}}return m(f,{fill:b(c),opacity:1,"fill-opacity":1}),v.fill=u,v.opacity=1,v.fillOpacity=1,1},y=function(){var t=document.documentMode;return t&&(9===t||10===t)},b=function(t){if(y())return"url('#"+t+"')";var e=document.location,i=e.protocol+"//"+e.host+e.pathname+e.search;return"url('"+i+"#"+t+"')"},x=function(t){var e=t.getBBox(1);m(t.pattern,{patternTransform:t.matrix.invert()+" translate("+e.x+","+e.y+")"})},w=function(n,r,o){if("path"==n.type){for(var s,a,l,h,c,p=i(r).toLowerCase().split("-"),d=n.paper,v=o?"end":"start",y=n.node,b=n.attrs,x=b["stroke-width"],w=p.length,S="classic",T=3,k=3,C=5;w--;)switch(p[w]){case"block":case"classic":case"oval":case"diamond":case"open":case"none":S=p[w];break;case"wide":k=5;break;case"narrow":k=2;break;case"long":T=5;break;case"short":T=2}if("open"==S?(T+=2,k+=2,C+=2,l=1,h=o?4:1,c={fill:"none",stroke:b.stroke}):(h=l=T/2,c={fill:b.stroke,stroke:"none"}),n._.arrows?o?(n._.arrows.endPath&&g[n._.arrows.endPath]--,n._.arrows.endMarker&&g[n._.arrows.endMarker]--):(n._.arrows.startPath&&g[n._.arrows.startPath]--,n._.arrows.startMarker&&g[n._.arrows.startMarker]--):n._.arrows={},"none"!=S){var _="raphael-marker-"+S,A="raphael-marker-"+v+S+T+k+"-obj"+n.id;t._g.doc.getElementById(_)?g[_]++:(d.defs.appendChild(m(m("path"),{"stroke-linecap":"round",d:f[S],id:_})),g[_]=1);var D,L=t._g.doc.getElementById(A);L?(g[A]++,D=L.getElementsByTagName("use")[0]):(L=m(m("marker"),{id:A,markerHeight:k,markerWidth:T,orient:"auto",refX:h,refY:k/2}),D=m(m("use"),{"xlink:href":"#"+_,transform:(o?"rotate(180 "+T/2+" "+k/2+") ":u)+"scale("+T/C+","+k/C+")","stroke-width":(1/((T/C+k/C)/2)).toFixed(4)}),L.appendChild(D),d.defs.appendChild(L),g[A]=1),m(D,c);var E=l*("diamond"!=S&&"oval"!=S);o?(s=n._.arrows.startdx*x||0,a=t.getTotalLength(b.path)-E*x):(s=E*x,a=t.getTotalLength(b.path)-(n._.arrows.enddx*x||0)),c={},c["marker-"+v]="url(#"+A+")",(a||s)&&(c.d=t.getSubpath(b.path,s,a)),m(y,c),n._.arrows[v+"Path"]=_,n._.arrows[v+"Marker"]=A,n._.arrows[v+"dx"]=E,n._.arrows[v+"Type"]=S,n._.arrows[v+"String"]=r}else o?(s=n._.arrows.startdx*x||0,a=t.getTotalLength(b.path)-s):(s=0,a=t.getTotalLength(b.path)-(n._.arrows.enddx*x||0)),n._.arrows[v+"Path"]&&m(y,{d:t.getSubpath(b.path,s,a)}),delete n._.arrows[v+"Path"],delete n._.arrows[v+"Marker"],delete n._.arrows[v+"dx"],delete n._.arrows[v+"Type"],delete n._.arrows[v+"String"];for(c in g)if(g[e](c)&&!g[c]){var P=t._g.doc.getElementById(c);P&&P.parentNode.removeChild(P)}}},S={"-":[3,1],".":[1,1],"-.":[3,1,1,1],"-..":[3,1,1,1,1,1],". ":[1,3],"- ":[4,3],"--":[8,3],"- .":[4,3,1,3],"--.":[8,3,1,3],"--..":[8,3,1,3,1,3]},T=function(t,e,n){if(e=S[i(e).toLowerCase()]){for(var r=t.attrs["stroke-width"]||"1",o={round:r,square:r,butt:0}[t.attrs["stroke-linecap"]||n["stroke-linecap"]]||0,s=[],a=e.length;a--;)s[a]=e[a]*r+(a%2?1:-1)*o;m(t.node,{"stroke-dasharray":s.join(",")})}else m(t.node,{"stroke-dasharray":"none"})},k=function(n,o){var l=n.node,c=n.attrs,p=l.style.visibility;l.style.visibility="hidden";for(var f in o)if(o[e](f)){if(!t._availableAttrs[e](f))continue;var g=o[f];switch(c[f]=g,f){case"blur":n.blur(g);break;case"title":var y=l.getElementsByTagName("title");if(y.length&&(y=y[0]))y.firstChild.nodeValue=g;else{y=m("title");var b=t._g.doc.createTextNode(g);y.appendChild(b),l.appendChild(y)}break;case"href":case"target":var S=l.parentNode;if("a"!=S.tagName.toLowerCase()){var k=m("a");S.insertBefore(k,l),k.appendChild(l),S=k}"target"==f?S.setAttributeNS(d,"show","blank"==g?"new":g):S.setAttributeNS(d,f,g);break;case"cursor":l.style.cursor=g;break;case"transform":n.transform(g);break;case"arrow-start":w(n,g);break;case"arrow-end":w(n,g,1);break;case"clip-rect":var C=i(g).split(h);if(4==C.length){n.clip&&n.clip.parentNode.parentNode.removeChild(n.clip.parentNode);var A=m("clipPath"),D=m("rect");A.id=t.createUUID(),m(D,{x:C[0],y:C[1],width:C[2],height:C[3]}),A.appendChild(D),n.paper.defs.appendChild(A),m(l,{"clip-path":"url(#"+A.id+")"}),n.clip=D}if(!g){var L=l.getAttribute("clip-path");if(L){var E=t._g.doc.getElementById(L.replace(/(^url\(#|\)$)/g,u));E&&E.parentNode.removeChild(E),m(l,{"clip-path":u}),delete n.clip}}break;case"path":"path"==n.type&&(m(l,{d:g?c.path=t._pathToAbsolute(g):"M0,0"}),n._.dirty=1,n._.arrows&&("startString"in n._.arrows&&w(n,n._.arrows.startString),"endString"in n._.arrows&&w(n,n._.arrows.endString,1)));break;case"width":if(l.setAttribute(f,g),n._.dirty=1,!c.fx)break;f="x",g=c.x;case"x":c.fx&&(g=-c.x-(c.width||0));case"rx":if("rx"==f&&"rect"==n.type)break;case"cx":l.setAttribute(f,g),n.pattern&&x(n),n._.dirty=1;break;case"height":if(l.setAttribute(f,g),n._.dirty=1,!c.fy)break;f="y",g=c.y;case"y":c.fy&&(g=-c.y-(c.height||0));case"ry":if("ry"==f&&"rect"==n.type)break;case"cy":l.setAttribute(f,g),n.pattern&&x(n),n._.dirty=1;break;case"r":"rect"==n.type?m(l,{rx:g,ry:g}):l.setAttribute(f,g),n._.dirty=1;break;case"src":"image"==n.type&&l.setAttributeNS(d,"href",g);break;case"stroke-width":1==n._.sx&&1==n._.sy||(g/=s(a(n._.sx),a(n._.sy))||1),l.setAttribute(f,g),c["stroke-dasharray"]&&T(n,c["stroke-dasharray"],o),n._.arrows&&("startString"in n._.arrows&&w(n,n._.arrows.startString),"endString"in n._.arrows&&w(n,n._.arrows.endString,1));break;case"stroke-dasharray":T(n,g,o);break;case"fill":var P=i(g).match(t._ISURL);if(P){A=m("pattern");var M=m("image");A.id=t.createUUID(),m(A,{x:0,y:0,patternUnits:"userSpaceOnUse",height:1,width:1}),m(M,{x:0,y:0,"xlink:href":P[1]}),A.appendChild(M),function(e){t._preload(P[1],function(){var t=this.offsetWidth,i=this.offsetHeight;m(e,{width:t,height:i}),m(M,{width:t,height:i})})}(A),n.paper.defs.appendChild(A),m(l,{fill:"url(#"+A.id+")"}),n.pattern=A,n.pattern&&x(n);break}var I=t.getRGB(g);if(I.error){if(("circle"==n.type||"ellipse"==n.type||"r"!=i(g).charAt())&&v(n,g)){if("opacity"in c||"fill-opacity"in c){var R=t._g.doc.getElementById(l.getAttribute("fill").replace(/^url\(#|\)$/g,u));if(R){var O=R.getElementsByTagName("stop");m(O[O.length-1],{"stop-opacity":("opacity"in c?c.opacity:1)*("fill-opacity"in c?c["fill-opacity"]:1)})}}c.gradient=g,c.fill="none";break}}else delete o.gradient,delete c.gradient,!t.is(c.opacity,"undefined")&&t.is(o.opacity,"undefined")&&m(l,{opacity:c.opacity}),!t.is(c["fill-opacity"],"undefined")&&t.is(o["fill-opacity"],"undefined")&&m(l,{"fill-opacity":c["fill-opacity"]});I[e]("opacity")&&m(l,{"fill-opacity":I.opacity>1?I.opacity/100:I.opacity});case"stroke":I=t.getRGB(g),l.setAttribute(f,I.hex),"stroke"==f&&I[e]("opacity")&&m(l,{"stroke-opacity":I.opacity>1?I.opacity/100:I.opacity}),"stroke"==f&&n._.arrows&&("startString"in n._.arrows&&w(n,n._.arrows.startString),"endString"in n._.arrows&&w(n,n._.arrows.endString,1));break;case"gradient":("circle"==n.type||"ellipse"==n.type||"r"!=i(g).charAt())&&v(n,g);break;case"opacity":c.gradient&&!c[e]("stroke-opacity")&&m(l,{"stroke-opacity":g>1?g/100:g});case"fill-opacity":if(c.gradient){R=t._g.doc.getElementById(l.getAttribute("fill").replace(/^url\(#|\)$/g,u)),R&&(O=R.getElementsByTagName("stop"),m(O[O.length-1],{"stop-opacity":g}));break}default:"font-size"==f&&(g=r(g,10)+"px");var B=f.replace(/(\-.)/g,function(t){return t.substring(1).toUpperCase()});l.style[B]=g,n._.dirty=1,l.setAttribute(f,g)}}_(n,o),l.style.visibility=p},C=1.2,_=function(n,o){if("text"==n.type&&(o[e]("text")||o[e]("font")||o[e]("font-size")||o[e]("x")||o[e]("y"))){var s=n.attrs,a=n.node,l=a.firstChild?r(t._g.doc.defaultView.getComputedStyle(a.firstChild,u).getPropertyValue("font-size"),10):10;if(o[e]("text")){for(s.text=o.text;a.firstChild;)a.removeChild(a.firstChild);for(var h,c=i(o.text).split("\n"),p=[],d=0,f=c.length;f>d;d++)h=m("tspan"),d&&m(h,{dy:l*C,x:s.x}),h.appendChild(t._g.doc.createTextNode(c[d])),a.appendChild(h),p[d]=h}else for(p=a.getElementsByTagName("tspan"),d=0,f=p.length;f>d;d++)d?m(p[d],{dy:l*C,x:s.x}):m(p[0],{dy:0});m(a,{x:s.x,y:s.y}),n._.dirty=1;var g=n._getBBox(),v=s.y-(g.y+g.height/2);v&&t.is(v,"finite")&&m(p[0],{dy:v})}},A=function(t){return t.parentNode&&"a"===t.parentNode.tagName.toLowerCase()?t.parentNode:t},D=function(e,i){this[0]=this.node=e,e.raphael=!0,this.id=t._oid++,e.raphaelid=this.id,this.matrix=t.matrix(),this.realPath=null,this.paper=i,this.attrs=this.attrs||{},this._={transform:[],sx:1,sy:1,deg:0,dx:0,dy:0,dirty:1},!i.bottom&&(i.bottom=this),this.prev=i.top,i.top&&(i.top.next=this),i.top=this,this.next=null},L=t.el;D.prototype=L,L.constructor=D,t._engine.path=function(t,e){var i=m("path");e.canvas&&e.canvas.appendChild(i);var n=new D(i,e);return n.type="path",k(n,{fill:"none",stroke:"#000",path:t}),n},L.rotate=function(t,e,r){if(this.removed)return this;if(t=i(t).split(h),t.length-1&&(e=n(t[1]),r=n(t[2])),t=n(t[0]),null==r&&(e=r),null==e||null==r){var o=this.getBBox(1);e=o.x+o.width/2,r=o.y+o.height/2}return this.transform(this._.transform.concat([["r",t,e,r]])),this},L.scale=function(t,e,r,o){if(this.removed)return this;if(t=i(t).split(h),t.length-1&&(e=n(t[1]),r=n(t[2]),o=n(t[3])),t=n(t[0]),null==e&&(e=t),null==o&&(r=o),null==r||null==o)var s=this.getBBox(1);return r=null==r?s.x+s.width/2:r,o=null==o?s.y+s.height/2:o,this.transform(this._.transform.concat([["s",t,e,r,o]])),this},L.translate=function(t,e){return this.removed?this:(t=i(t).split(h),t.length-1&&(e=n(t[1])),t=n(t[0])||0,e=+e||0,this.transform(this._.transform.concat([["t",t,e]])),this)},L.transform=function(i){var n=this._;if(null==i)return n.transform;if(t._extractTransform(this,i),this.clip&&m(this.clip,{transform:this.matrix.invert()}),this.pattern&&x(this),this.node&&m(this.node,{transform:this.matrix}),1!=n.sx||1!=n.sy){var r=this.attrs[e]("stroke-width")?this.attrs["stroke-width"]:1;this.attr({"stroke-width":r})}return n.transform=this.matrix.toTransformString(),this},L.hide=function(){return this.removed||(this.node.style.display="none"),this},L.show=function(){return this.removed||(this.node.style.display=""),this},L.remove=function(){var e=A(this.node);if(!this.removed&&e.parentNode){var i=this.paper;i.__set__&&i.__set__.exclude(this),c.unbind("raphael.*.*."+this.id),this.gradient&&i.defs.removeChild(this.gradient),t._tear(this,i),e.parentNode.removeChild(e),this.removeData();for(var n in this)this[n]="function"==typeof this[n]?t._removedFactory(n):null;this.removed=!0}},L._getBBox=function(){if("none"==this.node.style.display){this.show();var t=!0}var e,i=!1;this.paper.canvas.parentElement?e=this.paper.canvas.parentElement.style:this.paper.canvas.parentNode&&(e=this.paper.canvas.parentNode.style),e&&"none"==e.display&&(i=!0,e.display="");var n={};try{n=this.node.getBBox()}catch(r){n={x:this.node.clientLeft,y:this.node.clientTop,width:this.node.clientWidth,height:this.node.clientHeight}}finally{n=n||{},i&&(e.display="none")}return t&&this.hide(),n},L.attr=function(i,n){if(this.removed)return this;if(null==i){var r={};for(var o in this.attrs)this.attrs[e](o)&&(r[o]=this.attrs[o]);return r.gradient&&"none"==r.fill&&(r.fill=r.gradient)&&delete r.gradient,r.transform=this._.transform,r}if(null==n&&t.is(i,"string")){if("fill"==i&&"none"==this.attrs.fill&&this.attrs.gradient)return this.attrs.gradient;if("transform"==i)return this._.transform;for(var s=i.split(h),a={},l=0,u=s.length;u>l;l++)i=s[l],i in this.attrs?a[i]=this.attrs[i]:t.is(this.paper.customAttributes[i],"function")?a[i]=this.paper.customAttributes[i].def:a[i]=t._availableAttrs[i];return u-1?a:a[s[0]]}if(null==n&&t.is(i,"array")){for(a={},l=0,u=i.length;u>l;l++)a[i[l]]=this.attr(i[l]);return a}if(null!=n){var p={};p[i]=n}else null!=i&&t.is(i,"object")&&(p=i);for(var d in p)c("raphael.attr."+d+"."+this.id,this,p[d]);for(d in this.paper.customAttributes)if(this.paper.customAttributes[e](d)&&p[e](d)&&t.is(this.paper.customAttributes[d],"function")){var f=this.paper.customAttributes[d].apply(this,[].concat(p[d]));this.attrs[d]=p[d];for(var g in f)f[e](g)&&(p[g]=f[g])}return k(this,p),this},L.toFront=function(){if(this.removed)return this;var e=A(this.node);e.parentNode.appendChild(e);var i=this.paper;return i.top!=this&&t._tofront(this,i),this},L.toBack=function(){if(this.removed)return this;var e=A(this.node),i=e.parentNode;i.insertBefore(e,i.firstChild),t._toback(this,this.paper);this.paper;return this},L.insertAfter=function(e){if(this.removed||!e)return this;var i=A(this.node),n=A(e.node||e[e.length-1].node);return n.nextSibling?n.parentNode.insertBefore(i,n.nextSibling):n.parentNode.appendChild(i),t._insertafter(this,e,this.paper),this},L.insertBefore=function(e){if(this.removed||!e)return this;var i=A(this.node),n=A(e.node||e[0].node);return n.parentNode.insertBefore(i,n),t._insertbefore(this,e,this.paper),this},L.blur=function(e){var i=this;if(0!==+e){var n=m("filter"),r=m("feGaussianBlur");i.attrs.blur=e,n.id=t.createUUID(),m(r,{stdDeviation:+e||1.5}),n.appendChild(r),i.paper.defs.appendChild(n),i._blur=n,m(i.node,{filter:"url(#"+n.id+")"})}else i._blur&&(i._blur.parentNode.removeChild(i._blur),delete i._blur,delete i.attrs.blur),i.node.removeAttribute("filter");return i},t._engine.circle=function(t,e,i,n){var r=m("circle");t.canvas&&t.canvas.appendChild(r);var o=new D(r,t);return o.attrs={cx:e,cy:i,r:n,fill:"none",stroke:"#000"},o.type="circle",m(r,o.attrs),o},t._engine.rect=function(t,e,i,n,r,o){var s=m("rect");t.canvas&&t.canvas.appendChild(s);var a=new D(s,t);return a.attrs={x:e,y:i,width:n,height:r,rx:o||0,ry:o||0,fill:"none",stroke:"#000"},a.type="rect",m(s,a.attrs),a},t._engine.ellipse=function(t,e,i,n,r){var o=m("ellipse");t.canvas&&t.canvas.appendChild(o);var s=new D(o,t);return s.attrs={cx:e,cy:i,rx:n,ry:r,fill:"none",stroke:"#000"},s.type="ellipse",m(o,s.attrs),s},t._engine.image=function(t,e,i,n,r,o){var s=m("image");m(s,{x:i,y:n,width:r,height:o,preserveAspectRatio:"none"}),s.setAttributeNS(d,"href",e),t.canvas&&t.canvas.appendChild(s);var a=new D(s,t);return a.attrs={x:i,y:n,width:r,height:o,src:e},a.type="image",a},t._engine.text=function(e,i,n,r){var o=m("text");e.canvas&&e.canvas.appendChild(o);var s=new D(o,e);return s.attrs={x:i,y:n,"text-anchor":"middle",text:r,"font-family":t._availableAttrs["font-family"],"font-size":t._availableAttrs["font-size"],stroke:"none",fill:"#000"},s.type="text",k(s,s.attrs),s},t._engine.setSize=function(t,e){return this.width=t||this.width,this.height=e||this.height,this.canvas.setAttribute("width",this.width),this.canvas.setAttribute("height",this.height),this._viewBox&&this.setViewBox.apply(this,this._viewBox),this},t._engine.create=function(){var e=t._getContainer.apply(0,arguments),i=e&&e.container,n=e.x,r=e.y,o=e.width,s=e.height;if(!i)throw new Error("SVG container not found.");var a,l=m("svg"),h="overflow:hidden;";return n=n||0,r=r||0,o=o||512,s=s||342,m(l,{height:s,version:1.1,width:o,xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"}),1==i?(l.style.cssText=h+"position:absolute;left:"+n+"px;top:"+r+"px",t._g.doc.body.appendChild(l),a=1):(l.style.cssText=h+"position:relative",i.firstChild?i.insertBefore(l,i.firstChild):i.appendChild(l)),i=new t._Paper,i.width=o,i.height=s,i.canvas=l,i.clear(),i._left=i._top=0,a&&(i.renderfix=function(){}),i.renderfix(),i},t._engine.setViewBox=function(t,e,i,n,r){c("raphael.setViewBox",this,this._viewBox,[t,e,i,n,r]);var o,a,l=this.getSize(),h=s(i/l.width,n/l.height),u=this.top,d=r?"xMidYMid meet":"xMinYMin";for(null==t?(this._vbSize&&(h=1),delete this._vbSize,o="0 0 "+this.width+p+this.height):(this._vbSize=h,o=t+p+e+p+i+p+n),m(this.canvas,{viewBox:o,preserveAspectRatio:d});h&&u;)a="stroke-width"in u.attrs?u.attrs["stroke-width"]:1,u.attr({"stroke-width":a}),u._.dirty=1,u._.dirtyT=1,u=u.prev;return this._viewBox=[t,e,i,n,!!r],this},t.prototype.renderfix=function(){var t,e=this.canvas,i=e.style;try{t=e.getScreenCTM()||e.createSVGMatrix()}catch(n){t=e.createSVGMatrix()}var r=-t.e%1,o=-t.f%1;(r||o)&&(r&&(this._left=(this._left+r)%1,i.left=this._left+"px"),o&&(this._top=(this._top+o)%1,i.top=this._top+"px"))},t.prototype.clear=function(){t.eve("raphael.clear",this);for(var e=this.canvas;e.firstChild;)e.removeChild(e.firstChild);this.bottom=this.top=null,(this.desc=m("desc")).appendChild(t._g.doc.createTextNode("Created with Raphaël "+t.version)),e.appendChild(this.desc),e.appendChild(this.defs=m("defs"))},t.prototype.remove=function(){c("raphael.remove",this),this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas);for(var e in this)this[e]="function"==typeof this[e]?t._removedFactory(e):null};var E=t.st;for(var P in L)L[e](P)&&!E[e](P)&&(E[P]=function(t){return function(){var e=arguments;return this.forEach(function(i){i[t].apply(i,e)})}}(P))}}.apply(e,n),!(void 0!==r&&(t.exports=r))},function(t,e,i){var n,r;n=[i(1)],r=function(t){if(!t||t.vml){var e="hasOwnProperty",i=String,n=parseFloat,r=Math,o=r.round,s=r.max,a=r.min,l=r.abs,h="fill",c=/[, ]+/,u=t.eve,p=" progid:DXImageTransform.Microsoft",d=" ",f="",g={M:"m",L:"l",C:"c",Z:"x",m:"t",l:"r",c:"v",z:"x"},m=/([clmz]),?([^clmz]*)/gi,v=/ progid:\S+Blur\([^\)]+\)/g,y=/-?[^,\s-]+/g,b="position:absolute;left:0;top:0;width:1px;height:1px;behavior:url(#default#VML)",x=21600,w={path:1,rect:1,image:1},S={circle:1,ellipse:1},T=function(e){var n=/[ahqstv]/gi,r=t._pathToAbsolute;if(i(e).match(n)&&(r=t._path2curve),n=/[clmz]/g,r==t._pathToAbsolute&&!i(e).match(n)){var s=i(e).replace(m,function(t,e,i){var n=[],r="m"==e.toLowerCase(),s=g[e];return i.replace(y,function(t){r&&2==n.length&&(s+=n+g["m"==e?"l":"L"],n=[]),n.push(o(t*x))}),s+n});return s}var a,l,h=r(e);s=[];for(var c=0,u=h.length;u>c;c++){a=h[c],l=h[c][0].toLowerCase(),"z"==l&&(l="x");for(var p=1,v=a.length;v>p;p++)l+=o(a[p]*x)+(p!=v-1?",":f);s.push(l)}return s.join(d)},k=function(e,i,n){var r=t.matrix();return r.rotate(-e,.5,.5),{dx:r.x(i,n),dy:r.y(i,n)}},C=function(t,e,i,n,r,o){var s=t._,a=t.matrix,c=s.fillpos,u=t.node,p=u.style,f=1,g="",m=x/e,v=x/i;if(p.visibility="hidden",e&&i){if(u.coordsize=l(m)+d+l(v),p.rotation=o*(0>e*i?-1:1),o){var y=k(o,n,r);n=y.dx,r=y.dy}if(0>e&&(g+="x"),0>i&&(g+=" y")&&(f=-1),p.flip=g,u.coordorigin=n*-m+d+r*-v,c||s.fillsize){var b=u.getElementsByTagName(h);b=b&&b[0],u.removeChild(b),c&&(y=k(o,a.x(c[0],c[1]),a.y(c[0],c[1])),b.position=y.dx*f+d+y.dy*f),s.fillsize&&(b.size=s.fillsize[0]*l(e)+d+s.fillsize[1]*l(i)),u.appendChild(b)}p.visibility="visible"}};t.toString=function(){return"Your browser doesn’t support SVG. Falling down to VML.\nYou are running Raphaël "+this.version};var _=function(t,e,n){for(var r=i(e).toLowerCase().split("-"),o=n?"end":"start",s=r.length,a="classic",l="medium",h="medium";s--;)switch(r[s]){case"block":case"classic":case"oval":case"diamond":case"open":case"none":a=r[s];break;case"wide":case"narrow":h=r[s];break;case"long":case"short":l=r[s]}var c=t.node.getElementsByTagName("stroke")[0];c[o+"arrow"]=a,c[o+"arrowlength"]=l,c[o+"arrowwidth"]=h},A=function(r,l){r.attrs=r.attrs||{};var u=r.node,p=r.attrs,g=u.style,m=w[r.type]&&(l.x!=p.x||l.y!=p.y||l.width!=p.width||l.height!=p.height||l.cx!=p.cx||l.cy!=p.cy||l.rx!=p.rx||l.ry!=p.ry||l.r!=p.r),v=S[r.type]&&(p.cx!=l.cx||p.cy!=l.cy||p.r!=l.r||p.rx!=l.rx||p.ry!=l.ry),y=r;for(var b in l)l[e](b)&&(p[b]=l[b]);if(m&&(p.path=t._getPath[r.type](r),r._.dirty=1),l.href&&(u.href=l.href),l.title&&(u.title=l.title),l.target&&(u.target=l.target),l.cursor&&(g.cursor=l.cursor),"blur"in l&&r.blur(l.blur),(l.path&&"path"==r.type||m)&&(u.path=T(~i(p.path).toLowerCase().indexOf("r")?t._pathToAbsolute(p.path):p.path),r._.dirty=1,"image"==r.type&&(r._.fillpos=[p.x,p.y],r._.fillsize=[p.width,p.height],C(r,1,1,0,0,0))),"transform"in l&&r.transform(l.transform),v){var k=+p.cx,A=+p.cy,L=+p.rx||+p.r||0,E=+p.ry||+p.r||0;u.path=t.format("ar{0},{1},{2},{3},{4},{1},{4},{1}x",o((k-L)*x),o((A-E)*x),o((k+L)*x),o((A+E)*x),o(k*x)),r._.dirty=1}if("clip-rect"in l){var M=i(l["clip-rect"]).split(c);if(4==M.length){M[2]=+M[2]+ +M[0],M[3]=+M[3]+ +M[1];var I=u.clipRect||t._g.doc.createElement("div"),R=I.style;R.clip=t.format("rect({1}px {2}px {3}px {0}px)",M),u.clipRect||(R.position="absolute",R.top=0,R.left=0,R.width=r.paper.width+"px",R.height=r.paper.height+"px",u.parentNode.insertBefore(I,u),I.appendChild(u),u.clipRect=I)}l["clip-rect"]||u.clipRect&&(u.clipRect.style.clip="auto")}if(r.textpath){var O=r.textpath.style;l.font&&(O.font=l.font),l["font-family"]&&(O.fontFamily='"'+l["font-family"].split(",")[0].replace(/^['"]+|['"]+$/g,f)+'"'),l["font-size"]&&(O.fontSize=l["font-size"]),l["font-weight"]&&(O.fontWeight=l["font-weight"]),l["font-style"]&&(O.fontStyle=l["font-style"])}if("arrow-start"in l&&_(y,l["arrow-start"]),"arrow-end"in l&&_(y,l["arrow-end"],1),null!=l.opacity||null!=l.fill||null!=l.src||null!=l.stroke||null!=l["stroke-width"]||null!=l["stroke-opacity"]||null!=l["fill-opacity"]||null!=l["stroke-dasharray"]||null!=l["stroke-miterlimit"]||null!=l["stroke-linejoin"]||null!=l["stroke-linecap"]){var B=u.getElementsByTagName(h),F=!1;if(B=B&&B[0],!B&&(F=B=P(h)),"image"==r.type&&l.src&&(B.src=l.src),l.fill&&(B.on=!0),null!=B.on&&"none"!=l.fill&&null!==l.fill||(B.on=!1),B.on&&l.fill){var N=i(l.fill).match(t._ISURL);if(N){B.parentNode==u&&u.removeChild(B),B.rotate=!0,B.src=N[1],B.type="tile";var j=r.getBBox(1);B.position=j.x+d+j.y,r._.fillpos=[j.x,j.y],t._preload(N[1],function(){r._.fillsize=[this.offsetWidth,this.offsetHeight]})}else B.color=t.getRGB(l.fill).hex,B.src=f,B.type="solid",t.getRGB(l.fill).error&&(y.type in{circle:1,ellipse:1}||"r"!=i(l.fill).charAt())&&D(y,l.fill,B)&&(p.fill="none",p.gradient=l.fill,B.rotate=!1)}if("fill-opacity"in l||"opacity"in l){var $=((+p["fill-opacity"]+1||2)-1)*((+p.opacity+1||2)-1)*((+t.getRGB(l.fill).o+1||2)-1);$=a(s($,0),1),B.opacity=$,B.src&&(B.color="none")}u.appendChild(B);var H=u.getElementsByTagName("stroke")&&u.getElementsByTagName("stroke")[0],z=!1;!H&&(z=H=P("stroke")),(l.stroke&&"none"!=l.stroke||l["stroke-width"]||null!=l["stroke-opacity"]||l["stroke-dasharray"]||l["stroke-miterlimit"]||l["stroke-linejoin"]||l["stroke-linecap"])&&(H.on=!0),("none"==l.stroke||null===l.stroke||null==H.on||0==l.stroke||0==l["stroke-width"])&&(H.on=!1);var W=t.getRGB(l.stroke);H.on&&l.stroke&&(H.color=W.hex),$=((+p["stroke-opacity"]+1||2)-1)*((+p.opacity+1||2)-1)*((+W.o+1||2)-1);var U=.75*(n(l["stroke-width"])||1);if($=a(s($,0),1),null==l["stroke-width"]&&(U=p["stroke-width"]),l["stroke-width"]&&(H.weight=U),U&&1>U&&($*=U)&&(H.weight=1),H.opacity=$,l["stroke-linejoin"]&&(H.joinstyle=l["stroke-linejoin"]||"miter"),H.miterlimit=l["stroke-miterlimit"]||8,l["stroke-linecap"]&&(H.endcap="butt"==l["stroke-linecap"]?"flat":"square"==l["stroke-linecap"]?"square":"round"),"stroke-dasharray"in l){var X={"-":"shortdash",".":"shortdot","-.":"shortdashdot","-..":"shortdashdotdot",". ":"dot","- ":"dash","--":"longdash","- .":"dashdot","--.":"longdashdot","--..":"longdashdotdot"};H.dashstyle=X[e](l["stroke-dasharray"])?X[l["stroke-dasharray"]]:f}z&&u.appendChild(H)}if("text"==y.type){y.paper.canvas.style.display=f;var Y=y.paper.span,G=100,q=p.font&&p.font.match(/\d+(?:\.\d*)?(?=px)/);g=Y.style,p.font&&(g.font=p.font),p["font-family"]&&(g.fontFamily=p["font-family"]),p["font-weight"]&&(g.fontWeight=p["font-weight"]),p["font-style"]&&(g.fontStyle=p["font-style"]),q=n(p["font-size"]||q&&q[0])||10,g.fontSize=q*G+"px",y.textpath.string&&(Y.innerHTML=i(y.textpath.string).replace(/</g,"&#60;").replace(/&/g,"&#38;").replace(/\n/g,"<br>"));var V=Y.getBoundingClientRect();y.W=p.w=(V.right-V.left)/G,y.H=p.h=(V.bottom-V.top)/G,y.X=p.x,y.Y=p.y+y.H/2,("x"in l||"y"in l)&&(y.path.v=t.format("m{0},{1}l{2},{1}",o(p.x*x),o(p.y*x),o(p.x*x)+1));for(var J=["x","y","text","font","font-family","font-weight","font-style","font-size"],K=0,Z=J.length;Z>K;K++)if(J[K]in l){y._.dirty=1;break}switch(p["text-anchor"]){case"start":y.textpath.style["v-text-align"]="left",y.bbx=y.W/2;break;case"end":y.textpath.style["v-text-align"]="right",y.bbx=-y.W/2;break;
default:y.textpath.style["v-text-align"]="center",y.bbx=0}y.textpath.style["v-text-kern"]=!0}},D=function(e,o,s){e.attrs=e.attrs||{};var a=(e.attrs,Math.pow),l="linear",h=".5 .5";if(e.attrs.gradient=o,o=i(o).replace(t._radial_gradient,function(t,e,i){return l="radial",e&&i&&(e=n(e),i=n(i),a(e-.5,2)+a(i-.5,2)>.25&&(i=r.sqrt(.25-a(e-.5,2))*(2*(i>.5)-1)+.5),h=e+d+i),f}),o=o.split(/\s*\-\s*/),"linear"==l){var c=o.shift();if(c=-n(c),isNaN(c))return null}var u=t._parseDots(o);if(!u)return null;if(e=e.shape||e.node,u.length){e.removeChild(s),s.on=!0,s.method="none",s.color=u[0].color,s.color2=u[u.length-1].color;for(var p=[],g=0,m=u.length;m>g;g++)u[g].offset&&p.push(u[g].offset+d+u[g].color);s.colors=p.length?p.join():"0% "+s.color,"radial"==l?(s.type="gradientTitle",s.focus="100%",s.focussize="0 0",s.focusposition=h,s.angle=0):(s.type="gradient",s.angle=(270-c)%360),e.appendChild(s)}return 1},L=function(e,i){this[0]=this.node=e,e.raphael=!0,this.id=t._oid++,e.raphaelid=this.id,this.X=0,this.Y=0,this.attrs={},this.paper=i,this.matrix=t.matrix(),this._={transform:[],sx:1,sy:1,dx:0,dy:0,deg:0,dirty:1,dirtyT:1},!i.bottom&&(i.bottom=this),this.prev=i.top,i.top&&(i.top.next=this),i.top=this,this.next=null},E=t.el;L.prototype=E,E.constructor=L,E.transform=function(e){if(null==e)return this._.transform;var n,r=this.paper._viewBoxShift,o=r?"s"+[r.scale,r.scale]+"-1-1t"+[r.dx,r.dy]:f;r&&(n=e=i(e).replace(/\.{3}|\u2026/g,this._.transform||f)),t._extractTransform(this,o+e);var s,a=this.matrix.clone(),l=this.skew,h=this.node,c=~i(this.attrs.fill).indexOf("-"),u=!i(this.attrs.fill).indexOf("url(");if(a.translate(1,1),u||c||"image"==this.type)if(l.matrix="1 0 0 1",l.offset="0 0",s=a.split(),c&&s.noRotation||!s.isSimple){h.style.filter=a.toFilter();var p=this.getBBox(),g=this.getBBox(1),m=p.x-g.x,v=p.y-g.y;h.coordorigin=m*-x+d+v*-x,C(this,1,1,m,v,0)}else h.style.filter=f,C(this,s.scalex,s.scaley,s.dx,s.dy,s.rotate);else h.style.filter=f,l.matrix=i(a),l.offset=a.offset();return null!==n&&(this._.transform=n,t._extractTransform(this,n)),this},E.rotate=function(t,e,r){if(this.removed)return this;if(null!=t){if(t=i(t).split(c),t.length-1&&(e=n(t[1]),r=n(t[2])),t=n(t[0]),null==r&&(e=r),null==e||null==r){var o=this.getBBox(1);e=o.x+o.width/2,r=o.y+o.height/2}return this._.dirtyT=1,this.transform(this._.transform.concat([["r",t,e,r]])),this}},E.translate=function(t,e){return this.removed?this:(t=i(t).split(c),t.length-1&&(e=n(t[1])),t=n(t[0])||0,e=+e||0,this._.bbox&&(this._.bbox.x+=t,this._.bbox.y+=e),this.transform(this._.transform.concat([["t",t,e]])),this)},E.scale=function(t,e,r,o){if(this.removed)return this;if(t=i(t).split(c),t.length-1&&(e=n(t[1]),r=n(t[2]),o=n(t[3]),isNaN(r)&&(r=null),isNaN(o)&&(o=null)),t=n(t[0]),null==e&&(e=t),null==o&&(r=o),null==r||null==o)var s=this.getBBox(1);return r=null==r?s.x+s.width/2:r,o=null==o?s.y+s.height/2:o,this.transform(this._.transform.concat([["s",t,e,r,o]])),this._.dirtyT=1,this},E.hide=function(){return!this.removed&&(this.node.style.display="none"),this},E.show=function(){return!this.removed&&(this.node.style.display=f),this},E.auxGetBBox=t.el.getBBox,E.getBBox=function(){var t=this.auxGetBBox();if(this.paper&&this.paper._viewBoxShift){var e={},i=1/this.paper._viewBoxShift.scale;return e.x=t.x-this.paper._viewBoxShift.dx,e.x*=i,e.y=t.y-this.paper._viewBoxShift.dy,e.y*=i,e.width=t.width*i,e.height=t.height*i,e.x2=e.x+e.width,e.y2=e.y+e.height,e}return t},E._getBBox=function(){return this.removed?{}:{x:this.X+(this.bbx||0)-this.W/2,y:this.Y-this.H,width:this.W,height:this.H}},E.remove=function(){if(!this.removed&&this.node.parentNode){this.paper.__set__&&this.paper.__set__.exclude(this),t.eve.unbind("raphael.*.*."+this.id),t._tear(this,this.paper),this.node.parentNode.removeChild(this.node),this.shape&&this.shape.parentNode.removeChild(this.shape);for(var e in this)this[e]="function"==typeof this[e]?t._removedFactory(e):null;this.removed=!0}},E.attr=function(i,n){if(this.removed)return this;if(null==i){var r={};for(var o in this.attrs)this.attrs[e](o)&&(r[o]=this.attrs[o]);return r.gradient&&"none"==r.fill&&(r.fill=r.gradient)&&delete r.gradient,r.transform=this._.transform,r}if(null==n&&t.is(i,"string")){if(i==h&&"none"==this.attrs.fill&&this.attrs.gradient)return this.attrs.gradient;for(var s=i.split(c),a={},l=0,p=s.length;p>l;l++)i=s[l],i in this.attrs?a[i]=this.attrs[i]:t.is(this.paper.customAttributes[i],"function")?a[i]=this.paper.customAttributes[i].def:a[i]=t._availableAttrs[i];return p-1?a:a[s[0]]}if(this.attrs&&null==n&&t.is(i,"array")){for(a={},l=0,p=i.length;p>l;l++)a[i[l]]=this.attr(i[l]);return a}var d;null!=n&&(d={},d[i]=n),null==n&&t.is(i,"object")&&(d=i);for(var f in d)u("raphael.attr."+f+"."+this.id,this,d[f]);if(d){for(f in this.paper.customAttributes)if(this.paper.customAttributes[e](f)&&d[e](f)&&t.is(this.paper.customAttributes[f],"function")){var g=this.paper.customAttributes[f].apply(this,[].concat(d[f]));this.attrs[f]=d[f];for(var m in g)g[e](m)&&(d[m]=g[m])}d.text&&"text"==this.type&&(this.textpath.string=d.text),A(this,d)}return this},E.toFront=function(){return!this.removed&&this.node.parentNode.appendChild(this.node),this.paper&&this.paper.top!=this&&t._tofront(this,this.paper),this},E.toBack=function(){return this.removed?this:(this.node.parentNode.firstChild!=this.node&&(this.node.parentNode.insertBefore(this.node,this.node.parentNode.firstChild),t._toback(this,this.paper)),this)},E.insertAfter=function(e){return this.removed?this:(e.constructor==t.st.constructor&&(e=e[e.length-1]),e.node.nextSibling?e.node.parentNode.insertBefore(this.node,e.node.nextSibling):e.node.parentNode.appendChild(this.node),t._insertafter(this,e,this.paper),this)},E.insertBefore=function(e){return this.removed?this:(e.constructor==t.st.constructor&&(e=e[0]),e.node.parentNode.insertBefore(this.node,e.node),t._insertbefore(this,e,this.paper),this)},E.blur=function(e){var i=this.node.runtimeStyle,n=i.filter;return n=n.replace(v,f),0!==+e?(this.attrs.blur=e,i.filter=n+d+p+".Blur(pixelradius="+(+e||1.5)+")",i.margin=t.format("-{0}px 0 0 -{0}px",o(+e||1.5))):(i.filter=n,i.margin=0,delete this.attrs.blur),this},t._engine.path=function(t,e){var i=P("shape");i.style.cssText=b,i.coordsize=x+d+x,i.coordorigin=e.coordorigin;var n=new L(i,e),r={fill:"none",stroke:"#000"};t&&(r.path=t),n.type="path",n.path=[],n.Path=f,A(n,r),e.canvas&&e.canvas.appendChild(i);var o=P("skew");return o.on=!0,i.appendChild(o),n.skew=o,n.transform(f),n},t._engine.rect=function(e,i,n,r,o,s){var a=t._rectPath(i,n,r,o,s),l=e.path(a),h=l.attrs;return l.X=h.x=i,l.Y=h.y=n,l.W=h.width=r,l.H=h.height=o,h.r=s,h.path=a,l.type="rect",l},t._engine.ellipse=function(t,e,i,n,r){var o=t.path();o.attrs;return o.X=e-n,o.Y=i-r,o.W=2*n,o.H=2*r,o.type="ellipse",A(o,{cx:e,cy:i,rx:n,ry:r}),o},t._engine.circle=function(t,e,i,n){var r=t.path();r.attrs;return r.X=e-n,r.Y=i-n,r.W=r.H=2*n,r.type="circle",A(r,{cx:e,cy:i,r:n}),r},t._engine.image=function(e,i,n,r,o,s){var a=t._rectPath(n,r,o,s),l=e.path(a).attr({stroke:"none"}),c=l.attrs,u=l.node,p=u.getElementsByTagName(h)[0];return c.src=i,l.X=c.x=n,l.Y=c.y=r,l.W=c.width=o,l.H=c.height=s,c.path=a,l.type="image",p.parentNode==u&&u.removeChild(p),p.rotate=!0,p.src=i,p.type="tile",l._.fillpos=[n,r],l._.fillsize=[o,s],u.appendChild(p),C(l,1,1,0,0,0),l},t._engine.text=function(e,n,r,s){var a=P("shape"),l=P("path"),h=P("textpath");n=n||0,r=r||0,s=s||"",l.v=t.format("m{0},{1}l{2},{1}",o(n*x),o(r*x),o(n*x)+1),l.textpathok=!0,h.string=i(s),h.on=!0,a.style.cssText=b,a.coordsize=x+d+x,a.coordorigin="0 0";var c=new L(a,e),u={fill:"#000",stroke:"none",font:t._availableAttrs.font,text:s};c.shape=a,c.path=l,c.textpath=h,c.type="text",c.attrs.text=i(s),c.attrs.x=n,c.attrs.y=r,c.attrs.w=1,c.attrs.h=1,A(c,u),a.appendChild(h),a.appendChild(l),e.canvas.appendChild(a);var p=P("skew");return p.on=!0,a.appendChild(p),c.skew=p,c.transform(f),c},t._engine.setSize=function(e,i){var n=this.canvas.style;return this.width=e,this.height=i,e==+e&&(e+="px"),i==+i&&(i+="px"),n.width=e,n.height=i,n.clip="rect(0 "+e+" "+i+" 0)",this._viewBox&&t._engine.setViewBox.apply(this,this._viewBox),this},t._engine.setViewBox=function(e,i,n,r,o){t.eve("raphael.setViewBox",this,this._viewBox,[e,i,n,r,o]);var s,a,l=this.getSize(),h=l.width,c=l.height;return o&&(s=c/r,a=h/n,h>n*s&&(e-=(h-n*s)/2/s),c>r*a&&(i-=(c-r*a)/2/a)),this._viewBox=[e,i,n,r,!!o],this._viewBoxShift={dx:-e,dy:-i,scale:l},this.forEach(function(t){t.transform("...")}),this};var P;t._engine.initWin=function(t){var e=t.document;e.styleSheets.length<31?e.createStyleSheet().addRule(".rvml","behavior:url(#default#VML)"):e.styleSheets[0].addRule(".rvml","behavior:url(#default#VML)");try{!e.namespaces.rvml&&e.namespaces.add("rvml","urn:schemas-microsoft-com:vml"),P=function(t){return e.createElement("<rvml:"+t+' class="rvml">')}}catch(i){P=function(t){return e.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">')}}},t._engine.initWin(t._g.win),t._engine.create=function(){var e=t._getContainer.apply(0,arguments),i=e.container,n=e.height,r=e.width,o=e.x,s=e.y;if(!i)throw new Error("VML container not found.");var a=new t._Paper,l=a.canvas=t._g.doc.createElement("div"),h=l.style;return o=o||0,s=s||0,r=r||512,n=n||342,a.width=r,a.height=n,r==+r&&(r+="px"),n==+n&&(n+="px"),a.coordsize=1e3*x+d+1e3*x,a.coordorigin="0 0",a.span=t._g.doc.createElement("span"),a.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;",l.appendChild(a.span),h.cssText=t.format("top:0;left:0;width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden",r,n),1==i?(t._g.doc.body.appendChild(l),h.left=o+"px",h.top=s+"px",h.position="absolute"):i.firstChild?i.insertBefore(l,i.firstChild):i.appendChild(l),a.renderfix=function(){},a},t.prototype.clear=function(){t.eve("raphael.clear",this),this.canvas.innerHTML=f,this.span=t._g.doc.createElement("span"),this.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;",this.canvas.appendChild(this.span),this.bottom=this.top=null},t.prototype.remove=function(){t.eve("raphael.remove",this),this.canvas.parentNode.removeChild(this.canvas);for(var e in this)this[e]="function"==typeof this[e]?t._removedFactory(e):null;return!0};var M=t.st;for(var I in E)E[e](I)&&!M[e](I)&&(M[I]=function(t){return function(){var e=arguments;return this.forEach(function(i){i[t].apply(i,e)})}}(I))}}.apply(e,n),!(void 0!==r&&(t.exports=r))}])}),function t(e,i,n){function r(s,a){if(!i[s]){if(!e[s]){var l="function"==typeof require&&require;if(!a&&l)return l(s,!0);if(o)return o(s,!0);var h=new Error("Cannot find module '"+s+"'");throw h.code="MODULE_NOT_FOUND",h}var c=i[s]={exports:{}};e[s][0].call(c.exports,function(t){var i=e[s][1][t];return r(i?i:t)},c,c.exports,t,e,i,n)}return i[s].exports}for(var o="function"==typeof require&&require,s=0;s<n.length;s++)r(n[s]);return r}({1:[function(t,e,i){(function(i,n){function r(){for(var t=(new a).getTime();p.length&&(new a).getTime()-t<100;)p.shift()();u=p.length?l(r,0):null}i.stdout=t("browser-stdout")();var o=t("./lib/mocha"),s=new o({reporter:"html"}),a=n.Date,l=n.setTimeout,h=(n.setInterval,n.clearTimeout,n.clearInterval,[]),c=n.onerror;i.removeListener=function(t,e){if("uncaughtException"==t){c?n.onerror=c:n.onerror=function(){};var i=o.utils.indexOf(h,e);i!=-1&&h.splice(i,1)}},i.on=function(t,e){"uncaughtException"==t&&(n.onerror=function(t,i,n){return e(new Error(t+" ("+i+":"+n+")")),!s.allowUncaught},h.push(e))},s.suite.removeAllListeners("pre-require");var u,p=[];o.Runner.immediately=function(t){p.push(t),u||(u=l(r,0))},s.throwError=function(t){throw o.utils.forEach(h,function(e){e(t)}),t},s.ui=function(t){return o.prototype.ui.call(this,t),this.suite.emit("pre-require",n,null,this),this},s.setup=function(t){"string"==typeof t&&(t={ui:t});for(var e in t)this[e](t[e]);return this},s.run=function(t){var e=s.options;s.globals("location");var i=o.utils.parseQuery(n.location.search||"");return i.grep&&s.grep(new RegExp(i.grep)),i.fgrep&&s.grep(i.fgrep),i.invert&&s.invert(),o.prototype.run.call(s,function(i){var r=n.document;r&&r.getElementById("mocha")&&e.noHighlighting!==!0&&o.utils.highlightTags("code"),t&&t(i)})},o.process=i,n.Mocha=o,n.mocha=s,e.exports=n}).call(this,t("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./lib/mocha":14,_process:58,"browser-stdout":42}],2:[function(t,e,i){e.exports=function(t){return function(){}}},{}],3:[function(t,e,i){function n(t){return"[object Array]"===o.call(t)}function r(){}i.EventEmitter=r;var o=Object.prototype.toString;r.prototype.on=function(t,e){return this.$events||(this.$events={}),this.$events[t]?n(this.$events[t])?this.$events[t].push(e):this.$events[t]=[this.$events[t],e]:this.$events[t]=e,this},r.prototype.addListener=r.prototype.on,r.prototype.once=function(t,e){function i(){n.removeListener(t,i),e.apply(this,arguments)}var n=this;return i.listener=e,this.on(t,i),this},r.prototype.removeListener=function(t,e){if(this.$events&&this.$events[t]){var i=this.$events[t];if(n(i)){for(var r=-1,o=0,s=i.length;o<s;o++)if(i[o]===e||i[o].listener&&i[o].listener===e){r=o;break}if(r<0)return this;i.splice(r,1),i.length||delete this.$events[t]}else(i===e||i.listener&&i.listener===e)&&delete this.$events[t]}return this},r.prototype.removeAllListeners=function(t){return void 0===t?(this.$events={},this):(this.$events&&this.$events[t]&&(this.$events[t]=null),this)},r.prototype.listeners=function(t){return this.$events||(this.$events={}),this.$events[t]||(this.$events[t]=[]),n(this.$events[t])||(this.$events[t]=[this.$events[t]]),this.$events[t]},r.prototype.emit=function(t){if(!this.$events)return!1;var e=this.$events[t];if(!e)return!1;var i=Array.prototype.slice.call(arguments,1);if("function"==typeof e)e.apply(this,i);else{if(!n(e))return!1;for(var r=e.slice(),o=0,s=r.length;o<s;o++)r[o].apply(this,i)}return!0}},{}],4:[function(t,e,i){function n(){this.percent=0,this.size(0),this.fontSize(11),this.font("helvetica, arial, sans-serif")}e.exports=n,n.prototype.size=function(t){return this._size=t,this},n.prototype.text=function(t){return this._text=t,this},n.prototype.fontSize=function(t){return this._fontSize=t,this},n.prototype.font=function(t){return this._font=t,this},n.prototype.update=function(t){return this.percent=t,this},n.prototype.draw=function(t){try{var e=Math.min(this.percent,100),i=this._size,n=i/2,r=n,o=n,s=n-1,a=this._fontSize;t.font=a+"px "+this._font;var l=2*Math.PI*(e/100);t.clearRect(0,0,i,i),t.strokeStyle="#9f9f9f",t.beginPath(),t.arc(r,o,s,0,l,!1),t.stroke(),t.strokeStyle="#eee",t.beginPath(),t.arc(r,o,s-1,0,l,!0),t.stroke();var h=this._text||(0|e)+"%",c=t.measureText(h).width;t.fillText(h,r-c/2+1,o+a/2-1)}catch(u){}return this}},{}],5:[function(t,e,i){(function(t){i.isatty=function(){return!0},i.getWindowSize=function(){return"innerHeight"in t?[t.innerHeight,t.innerWidth]:[640,480]}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],6:[function(t,e,i){function n(){}e.exports=n,n.prototype.runnable=function(t){return arguments.length?(this.test=this._runnable=t,this):this._runnable},n.prototype.timeout=function(t){return arguments.length?(this.runnable().timeout(t),this):this.runnable().timeout()},n.prototype.enableTimeouts=function(t){return this.runnable().enableTimeouts(t),this},n.prototype.slow=function(t){return this.runnable().slow(t),this},n.prototype.skip=function(){return this.runnable().skip(),this},n.prototype.retries=function(t){return arguments.length?(this.runnable().retries(t),this):this.runnable().retries()},n.prototype.inspect=function(){return JSON.stringify(this,function(t,e){return"runnable"===t||"test"===t?void 0:e},2)}},{}],7:[function(t,e,i){function n(t,e){r.call(this,t,e),this.type="hook"}var r=t("./runnable"),o=t("./utils").inherits;e.exports=n,o(n,r),n.prototype.error=function(t){return arguments.length?void(this._error=t):(t=this._error,this._error=null,t)}},{"./runnable":35,"./utils":39}],8:[function(t,e,i){var n=t("../suite"),r=t("../test"),o=t("escape-string-regexp");e.exports=function(e){var i=[e];e.on("pre-require",function(s,a,l){var h=t("./common")(i,s);s.before=h.before,s.after=h.after,s.beforeEach=h.beforeEach,s.afterEach=h.afterEach,s.run=l.options.delay&&h.runWithSuite(e),s.describe=s.context=function(t,e){var r=n.create(i[0],t);return r.file=a,i.unshift(r),e.call(r),i.shift(),r},s.xdescribe=s.xcontext=s.describe.skip=function(t,e){var r=n.create(i[0],t);r.pending=!0,i.unshift(r),e.call(r),i.shift()},s.describe.only=function(t,e){var i=s.describe(t,e);return l.grep(i.fullTitle()),i};var c=s.it=s.specify=function(t,e){var n=i[0];n.isPending()&&(e=null);var o=new r(t,e);return o.file=a,n.addTest(o),o};s.it.only=function(t,e){var i=c(t,e),n="^"+o(i.fullTitle())+"$";return l.grep(new RegExp(n)),i},s.xit=s.xspecify=s.it.skip=function(t){s.it(t)},s.it.retries=function(t){s.retries(t)}})}},{"../suite":37,"../test":38,"./common":9,"escape-string-regexp":49}],9:[function(t,e,i){"use strict";e.exports=function(t,e){return{runWithSuite:function(t){return function(){t.run()}},before:function(e,i){t[0].beforeAll(e,i)},after:function(e,i){t[0].afterAll(e,i)},beforeEach:function(e,i){t[0].beforeEach(e,i)},afterEach:function(e,i){t[0].afterEach(e,i)},test:{skip:function(t){e.test(t)},retries:function(t){e.retries(t)}}}}},{}],10:[function(t,e,i){var n=t("../suite"),r=t("../test");e.exports=function(t){function e(t,o){var s;for(var a in t)if("function"==typeof t[a]){var l=t[a];switch(a){case"before":i[0].beforeAll(l);break;case"after":i[0].afterAll(l);break;case"beforeEach":i[0].beforeEach(l);break;case"afterEach":i[0].afterEach(l);break;default:var h=new r(a,l);h.file=o,i[0].addTest(h)}}else s=n.create(i[0],a),i.unshift(s),e(t[a],o),i.shift()}var i=[t];t.on("require",e)}},{"../suite":37,"../test":38}],11:[function(t,e,i){i.bdd=t("./bdd"),i.tdd=t("./tdd"),i.qunit=t("./qunit"),i.exports=t("./exports")},{"./bdd":8,"./exports":10,"./qunit":12,"./tdd":13}],12:[function(t,e,i){var n=t("../suite"),r=t("../test"),o=t("escape-string-regexp");e.exports=function(e){var i=[e];e.on("pre-require",function(s,a,l){var h=t("./common")(i,s);s.before=h.before,s.after=h.after,s.beforeEach=h.beforeEach,s.afterEach=h.afterEach,s.run=l.options.delay&&h.runWithSuite(e),s.suite=function(t){i.length>1&&i.shift();var e=n.create(i[0],t);return e.file=a,i.unshift(e),e},s.suite.only=function(t,e){var i=s.suite(t,e);l.grep(i.fullTitle())},s.test=function(t,e){var n=new r(t,e);return n.file=a,i[0].addTest(n),n},s.test.only=function(t,e){var i=s.test(t,e),n="^"+o(i.fullTitle())+"$";l.grep(new RegExp(n))},s.test.skip=h.test.skip,s.test.retries=h.test.retries})}},{"../suite":37,"../test":38,"./common":9,"escape-string-regexp":49}],13:[function(t,e,i){var n=t("../suite"),r=t("../test"),o=t("escape-string-regexp");e.exports=function(e){var i=[e];e.on("pre-require",function(s,a,l){var h=t("./common")(i,s);s.setup=h.beforeEach,s.teardown=h.afterEach,s.suiteSetup=h.before,s.suiteTeardown=h.after,s.run=l.options.delay&&h.runWithSuite(e),s.suite=function(t,e){var r=n.create(i[0],t);return r.file=a,i.unshift(r),e.call(r),i.shift(),r},s.suite.skip=function(t,e){var r=n.create(i[0],t);r.pending=!0,i.unshift(r),e.call(r),i.shift()},s.suite.only=function(t,e){var i=s.suite(t,e);l.grep(i.fullTitle())},s.test=function(t,e){var n=i[0];n.isPending()&&(e=null);var o=new r(t,e);return o.file=a,n.addTest(o),o},s.test.only=function(t,e){var i=s.test(t,e),n="^"+o(i.fullTitle())+"$";l.grep(new RegExp(n))},s.test.skip=h.test.skip,s.test.retries=h.test.retries})}},{"../suite":37,"../test":38,"./common":9,"escape-string-regexp":49}],14:[function(t,e,i){(function(n,r,o){function s(t){return h.join(o,"../images",t+".png")}function a(t){t=t||{},this.files=[],this.options=t,t.grep&&this.grep(new RegExp(t.grep)),t.fgrep&&this.grep(t.fgrep),this.suite=new i.Suite("",new i.Context),this.ui(t.ui),this.bail(t.bail),this.reporter(t.reporter,t.reporterOptions),"undefined"!=typeof t.timeout&&null!==t.timeout&&this.timeout(t.timeout),"undefined"!=typeof t.retries&&null!==t.retries&&this.retries(t.retries),this.useColors(t.useColors),null!==t.enableTimeouts&&this.enableTimeouts(t.enableTimeouts),t.slow&&this.slow(t.slow)}var l=t("escape-string-regexp"),h=t("path"),c=t("./reporters"),u=t("./utils");if(i=e.exports=a,!n.browser){var p=n.cwd();e.paths.push(p,h.join(p,"node_modules"))}i.utils=u,i.interfaces=t("./interfaces"),i.reporters=c,i.Runnable=t("./runnable"),i.Context=t("./context"),i.Runner=t("./runner"),i.Suite=t("./suite"),i.Hook=t("./hook"),i.Test=t("./test"),a.prototype.bail=function(t){return arguments.length||(t=!0),this.suite.bail(t),this},a.prototype.addFile=function(t){return this.files.push(t),this},a.prototype.reporter=function(e,i){if("function"==typeof e)this._reporter=e;else{e=e||"spec";var n;if(c[e]&&(n=c[e]),!n)try{n=t(e)}catch(r){r.message.indexOf("Cannot find module")!==-1?console.warn('"'+e+'" reporter not found'):console.warn('"'+e+'" reporter blew up with error:\n'+r.stack)}if(n||"teamcity"!==e||console.warn("The Teamcity reporter was moved to a package named mocha-teamcity-reporter (https://npmjs.org/package/mocha-teamcity-reporter)."),!n)throw new Error('invalid reporter "'+e+'"');this._reporter=n}return this.options.reporterOptions=i,this},a.prototype.ui=function(e){if(e=e||"bdd",this._ui=i.interfaces[e],!this._ui)try{this._ui=t(e)}catch(n){throw new Error('invalid interface "'+e+'"')}return this._ui=this._ui(this.suite),this.suite.on("pre-require",function(t){i.afterEach=t.afterEach||t.teardown,i.after=t.after||t.suiteTeardown,i.beforeEach=t.beforeEach||t.setup,i.before=t.before||t.suiteSetup,i.describe=t.describe||t.suite,i.it=t.it||t.test,i.setup=t.setup||t.beforeEach,i.suiteSetup=t.suiteSetup||t.before,i.suiteTeardown=t.suiteTeardown||t.after,i.suite=t.suite||t.describe,i.teardown=t.teardown||t.afterEach,i.test=t.test||t.it,i.run=t.run}),this},a.prototype.loadFiles=function(e){var i=this,n=this.suite;this.files.forEach(function(e){e=h.resolve(e),n.emit("pre-require",r,e,i),n.emit("require",t(e),e,i),n.emit("post-require",r,e,i)}),e&&e()},a.prototype._growl=function(e,i){var n=t("growl");e.on("end",function(){var t=i.stats;if(t.failures){var r=t.failures+" of "+e.total+" tests failed";n(r,{name:"mocha",title:"Failed",image:s("error")})}else n(t.passes+" tests passed in "+t.duration+"ms",{name:"mocha",title:"Passed",image:s("ok")})})},a.prototype.grep=function(t){return this.options.grep="string"==typeof t?new RegExp(l(t)):t,this},a.prototype.invert=function(){return this.options.invert=!0,this},a.prototype.ignoreLeaks=function(t){return this.options.ignoreLeaks=Boolean(t),this},a.prototype.checkLeaks=function(){return this.options.ignoreLeaks=!1,this},a.prototype.fullTrace=function(){return this.options.fullStackTrace=!0,this},a.prototype.growl=function(){return this.options.growl=!0,this},a.prototype.globals=function(t){return this.options.globals=(this.options.globals||[]).concat(t),this},a.prototype.useColors=function(t){return void 0!==t&&(this.options.useColors=t),this},a.prototype.useInlineDiffs=function(t){return this.options.useInlineDiffs=void 0!==t&&t,this},a.prototype.timeout=function(t){return this.suite.timeout(t),this},a.prototype.retries=function(t){return this.suite.retries(t),this},a.prototype.slow=function(t){return this.suite.slow(t),this},a.prototype.enableTimeouts=function(t){return this.suite.enableTimeouts(!arguments.length||void 0===t||t),this},a.prototype.asyncOnly=function(){return this.options.asyncOnly=!0,this},a.prototype.noHighlighting=function(){return this.options.noHighlighting=!0,this},a.prototype.allowUncaught=function(){return this.options.allowUncaught=!0,this},a.prototype.delay=function(){return this.options.delay=!0,this},a.prototype.run=function(t){function e(e){s.done?s.done(e,t):t&&t(e)}this.files.length&&this.loadFiles();var n=this.suite,r=this.options;r.files=this.files;var o=new i.Runner(n,r.delay),s=new this._reporter(o,r);return o.ignoreLeaks=r.ignoreLeaks!==!1,o.fullStackTrace=r.fullStackTrace,o.asyncOnly=r.asyncOnly,o.allowUncaught=r.allowUncaught,r.grep&&o.grep(r.grep,r.invert),r.globals&&o.globals(r.globals),r.growl&&this._growl(o,s),void 0!==r.useColors&&(i.reporters.Base.useColors=r.useColors),i.reporters.Base.inlineDiffs=r.useInlineDiffs,o.run(e)}}).call(this,t("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},"/lib")},{"./context":6,"./hook":7,"./interfaces":11,"./reporters":22,"./runnable":35,"./runner":36,"./suite":37,"./test":38,"./utils":39,_process:58,"escape-string-regexp":49,growl:51,path:43}],15:[function(t,e,i){function n(t){var e=/^((?:\d+)?\.?\d+) *(ms|seconds?|s|minutes?|m|hours?|h|days?|d|years?|y)?$/i.exec(t);if(e){var i=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"y":return i*u;case"days":case"day":case"d":return i*c;case"hours":case"hour":case"h":return i*h;case"minutes":case"minute":case"m":return i*l;case"seconds":case"second":case"s":return i*a;case"ms":return i}}}function r(t){return t>=c?Math.round(t/c)+"d":t>=h?Math.round(t/h)+"h":t>=l?Math.round(t/l)+"m":t>=a?Math.round(t/a)+"s":t+"ms"}function o(t){return s(t,c,"day")||s(t,h,"hour")||s(t,l,"minute")||s(t,a,"second")||t+" ms"}function s(t,e,i){if(!(t<e))return t<1.5*e?Math.floor(t/e)+" "+i:Math.ceil(t/e)+" "+i+"s"}var a=1e3,l=60*a,h=60*l,c=24*h,u=365.25*c;e.exports=function(t,e){return e=e||{},"string"==typeof t?n(t):e["long"]?o(t):r(t)}},{}],16:[function(t,e,i){function n(t){this.message=t}e.exports=n},{}],17:[function(t,e,i){(function(n,r){function o(t){var e=this.stats={suites:0,tests:0,passes:0,pending:0,failures:0},i=this.failures=[];t&&(this.runner=t,t.stats=e,t.on("start",function(){e.start=new y}),t.on("suite",function(t){e.suites=e.suites||0,t.root||e.suites++}),t.on("test end",function(){e.tests=e.tests||0,e.tests++}),t.on("pass",function(t){e.passes=e.passes||0,t.duration>t.slow()?t.speed="slow":t.duration>t.slow()/2?t.speed="medium":t.speed="fast",e.passes++}),t.on("fail",function(t,n){e.failures=e.failures||0,e.failures++,t.err=n,i.push(t)}),t.on("end",function(){e.end=new y,e.duration=new y-e.start}),t.on("pending",function(){e.pending++}))}function s(t,e){return t=String(t),Array(e-t.length+1).join(" ")+t}function a(t,e){var i=h(t,"WordsWithSpace",e),n=i.split("\n");if(n.length>4){var r=String(n.length).length;i=n.map(function(t,e){return s(++e,r)+" | "+t}).join("\n")}return i="\n"+x("diff removed","actual")+" "+x("diff added","expected")+"\n\n"+i+"\n",i=i.replace(/^/gm,"      ")}function l(t,e){function i(t){return e&&(t=c(t)),"+"===t[0]?r+u("diff added",t):"-"===t[0]?r+u("diff removed",t):t.match(/\@\@/)?null:t.match(/\\ No newline/)?null:r+t}function n(t){return"undefined"!=typeof t&&null!==t}var r="      ",o=f.createPatch("string",t.actual,t.expected),s=o.split("\n").splice(4);return"\n      "+u("diff added","+ expected")+" "+u("diff removed","- actual")+"\n\n"+s.map(i).filter(n).join("\n")}function h(t,e,i){var n=i?c(t.actual):t.actual,r=i?c(t.expected):t.expected;return f["diff"+e](n,r).map(function(t){return t.added?u("diff added",t.value):t.removed?u("diff removed",t.value):t.value}).join("")}function c(t){return t.replace(/\t/g,"<tab>").replace(/\r/g,"<CR>").replace(/\n/g,"<LF>\n")}function u(t,e){return e.split("\n").map(function(e){return x(t,e)}).join("\n")}function p(t,e){return w.call(t)===w.call(e)}var d=t("tty"),f=t("diff"),g=t("../ms"),m=t("../utils"),v=n.browser?null:t("supports-color");i=e.exports=o;var y=r.Date,b=(r.setTimeout,r.setInterval,r.clearTimeout,r.clearInterval,d.isatty(1)&&d.isatty(2));i.useColors=!n.browser&&(v||void 0!==n.env.MOCHA_COLORS),i.inlineDiffs=!1,i.colors={pass:90,fail:31,"bright pass":92,"bright fail":91,"bright yellow":93,pending:36,suite:0,"error title":0,"error message":31,"error stack":90,checkmark:32,fast:90,medium:33,slow:31,green:32,light:90,"diff gutter":90,"diff added":32,"diff removed":31},i.symbols={ok:"✓",err:"✖",dot:"․"},"win32"===n.platform&&(i.symbols.ok="√",i.symbols.err="×",i.symbols.dot=".");var x=i.color=function(t,e){return i.useColors?"["+i.colors[t]+"m"+e+"[0m":String(e)};i.window={width:75},b&&(i.window.width=n.stdout.getWindowSize?n.stdout.getWindowSize(1)[0]:d.getWindowSize()[1]),i.cursor={hide:function(){b&&n.stdout.write("[?25l")},show:function(){b&&n.stdout.write("[?25h")},deleteLine:function(){b&&n.stdout.write("[2K")},beginningOfLine:function(){b&&n.stdout.write("[0G")},CR:function(){b?(i.cursor.deleteLine(),i.cursor.beginningOfLine()):n.stdout.write("\r")}},i.list=function(t){console.log(),t.forEach(function(t,e){var n,r,o=x("error title","  %s) %s:\n")+x("error message","     %s")+x("error stack","\n%s\n"),s=t.err;r=s.message&&"function"==typeof s.message.toString?s.message+"":"function"==typeof s.inspect?s.inspect()+"":"";var h=s.stack||r,c=h.indexOf(r),u=s.actual,d=s.expected,f=!0;if(c===-1?n=r:(c+=r.length,n=h.slice(0,c),h=h.slice(c+1)),s.uncaught&&(n="Uncaught "+n),s.showDiff!==!1&&p(u,d)&&void 0!==d){f=!1,m.isString(u)&&m.isString(d)||(s.actual=u=m.stringify(u),s.expected=d=m.stringify(d)),o=x("error title","  %s) %s:\n%s")+x("error stack","\n%s\n");var g=r.match(/^([^:]+): expected/);n="\n      "+x("error message",g?g[1]:n),n+=i.inlineDiffs?a(s,f):l(s,f)}h=h.replace(/^/gm,"  "),console.log(o,e+1,t.fullTitle(),n,h)})},o.prototype.epilogue=function(){var t,e=this.stats;console.log(),t=x("bright pass"," ")+x("green"," %d passing")+x("light"," (%s)"),console.log(t,e.passes||0,g(e.duration)),e.pending&&(t=x("pending"," ")+x("pending"," %d pending"),console.log(t,e.pending)),e.failures&&(t=x("fail","  %d failing"),console.log(t,e.failures),o.list(this.failures),console.log()),console.log()};var w=Object.prototype.toString}).call(this,t("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"../ms":15,"../utils":39,_process:58,diff:48,"supports-color":43,tty:5}],18:[function(t,e,i){function n(t){function e(){return Array(i).join("  ")}r.call(this,t);var i=2;t.on("suite",function(t){t.root||(++i,console.log('%s<section class="suite">',e()),++i,console.log("%s<h1>%s</h1>",e(),o.escape(t.title)),console.log("%s<dl>",e()))}),t.on("suite end",function(t){t.root||(console.log("%s</dl>",e()),--i,console.log("%s</section>",e()),--i)}),t.on("pass",function(t){console.log("%s  <dt>%s</dt>",e(),o.escape(t.title));var i=o.escape(o.clean(t.body));console.log("%s  <dd><pre><code>%s</code></pre></dd>",e(),i)}),t.on("fail",function(t,i){console.log('%s  <dt class="error">%s</dt>',e(),o.escape(t.title));var n=o.escape(o.clean(t.fn.body));console.log('%s  <dd class="error"><pre><code>%s</code></pre></dd>',e(),n),console.log('%s  <dd class="error">%s</dd>',e(),o.escape(i))})}var r=t("./base"),o=t("../utils");i=e.exports=n},{"../utils":39,"./base":17}],19:[function(t,e,i){(function(n){function r(t){o.call(this,t);var e=this,i=.75*o.window.width|0,r=-1;t.on("start",function(){n.stdout.write("\n")}),t.on("pending",function(){++r%i===0&&n.stdout.write("\n  "),n.stdout.write(a("pending",o.symbols.dot))}),t.on("pass",function(t){++r%i===0&&n.stdout.write("\n  "),"slow"===t.speed?n.stdout.write(a("bright yellow",o.symbols.dot)):n.stdout.write(a(t.speed,o.symbols.dot))}),t.on("fail",function(){++r%i===0&&n.stdout.write("\n  "),n.stdout.write(a("fail",o.symbols.dot))}),t.on("end",function(){console.log(),e.epilogue()})}var o=t("./base"),s=t("../utils").inherits,a=o.color;i=e.exports=r,s(r,o)}).call(this,t("_process"))},{"../utils":39,"./base":17,_process:58}],20:[function(t,e,i){(function(n,r){function o(e){var i=t("jade"),o=h(r,"/templates/coverage.jade"),c=l(o,"utf8"),u=i.compile(c,{filename:o}),p=this;a.call(this,e,!1),e.on("end",function(){n.stdout.write(u({cov:p.cov,coverageClass:s}))})}function s(t){return t>=75?"high":t>=50?"medium":t>=25?"low":"terrible";
}var a=t("./json-cov"),l=t("fs").readFileSync,h=t("path").join;i=e.exports=o}).call(this,t("_process"),"/lib/reporters")},{"./json-cov":23,_process:58,fs:43,jade:43,path:43}],21:[function(t,e,i){(function(n){function r(t){function e(t){A[0]&&A[0].appendChild(t)}function i(){var t=d.tests/this.total*100|0;n&&n.update(t).draw(r);var e=new v-d.start;c(x,d.passes),c(S,d.failures),c(k,(e/1e3).toFixed(2))}p.call(this,t);var n,r,o=this,d=this.stats,g=a(y),b=g.getElementsByTagName("li"),x=b[1].getElementsByTagName("em")[0],w=b[1].getElementsByTagName("a")[0],S=b[2].getElementsByTagName("em")[0],T=b[2].getElementsByTagName("a")[0],k=b[3].getElementsByTagName("em")[0],C=g.getElementsByTagName("canvas")[0],_=a('<ul id="mocha-report"></ul>'),A=[_],D=document.getElementById("mocha");if(C.getContext){var L=window.devicePixelRatio||1;C.style.width=C.width,C.style.height=C.height,C.width*=L,C.height*=L,r=C.getContext("2d"),r.scale(L,L),n=new f}return D?(u(w,"click",function(t){t.preventDefault(),h();var e=/pass/.test(_.className)?"":" pass";_.className=_.className.replace(/fail|pass/g,"")+e,_.className.trim()&&l("test pass")}),u(T,"click",function(t){t.preventDefault(),h();var e=/fail/.test(_.className)?"":" fail";_.className=_.className.replace(/fail|pass/g,"")+e,_.className.trim()&&l("test fail")}),D.appendChild(g),D.appendChild(_),n&&n.size(40),t.on("suite",function(t){if(!t.root){var e=o.suiteURL(t),i=a('<li class="suite"><h1><a href="%s">%s</a></h1></li>',e,m(t.title));A[0].appendChild(i),A.unshift(document.createElement("ul")),i.appendChild(A[0])}}),t.on("suite end",function(t){t.root||A.shift()}),t.on("pass",function(t){var n=o.testURL(t),r='<li class="test pass %e"><h2>%e<span class="duration">%ems</span> <a href="%s" class="replay">‣</a></h2></li>',s=a(r,t.speed,t.title,t.duration,n);o.addCodeToggle(s,t.body),e(s),i()}),t.on("fail",function(t){var n,r=a('<li class="test fail"><h2>%e <a href="%e" class="replay">‣</a></h2></li>',t.title,o.testURL(t)),s=t.err.toString();if("[object Error]"===s&&(s=t.err.message),t.err.stack){var l=t.err.stack.indexOf(t.err.message);n=l===-1?t.err.stack:t.err.stack.substr(t.err.message.length+l)}else t.err.sourceURL&&void 0!==t.err.line&&(n="\n("+t.err.sourceURL+":"+t.err.line+")");n=n||"",t.err.htmlMessage&&n?r.appendChild(a('<div class="html-error">%s\n<pre class="error">%e</pre></div>',t.err.htmlMessage,n)):t.err.htmlMessage?r.appendChild(a('<div class="html-error">%s</div>',t.err.htmlMessage)):r.appendChild(a('<pre class="error">%e%e</pre>',s,n)),o.addCodeToggle(r,t.body),e(r),i()}),void t.on("pending",function(t){var n=a('<li class="test pass pending"><h2>%e</h2></li>',t.title);e(n),i()})):s("#mocha div missing, add it to your document")}function o(t){var e=window.location.search;return e&&(e=e.replace(/[?&]grep=[^&\s]*/g,"").replace(/^&/,"?")),window.location.pathname+(e?e+"&":"?")+"grep="+encodeURIComponent(g(t))}function s(t){document.body.appendChild(a('<div id="mocha-error">%s</div>',t))}function a(t){var e=arguments,i=document.createElement("div"),n=1;return i.innerHTML=t.replace(/%([se])/g,function(t,i){switch(i){case"s":return String(e[n++]);case"e":return m(e[n++])}}),i.firstChild}function l(t){for(var e=document.getElementsByClassName("suite"),i=0;i<e.length;i++){var n=e[i].getElementsByClassName(t);n.length||(e[i].className+=" hidden")}}function h(){for(var t=document.getElementsByClassName("suite hidden"),e=0;e<t.length;++e)t[e].className=t[e].className.replace("suite hidden","suite")}function c(t,e){t.textContent?t.textContent=e:t.innerText=e}function u(t,e,i){t.addEventListener?t.addEventListener(e,i,!1):t.attachEvent("on"+e,i)}var p=t("./base"),d=t("../utils"),f=t("../browser/progress"),g=t("escape-string-regexp"),m=d.escape,v=n.Date;n.setTimeout,n.setInterval,n.clearTimeout,n.clearInterval;i=e.exports=r;var y='<ul id="mocha-stats"><li class="progress"><canvas width="40" height="40"></canvas></li><li class="passes"><a href="javascript:void(0);">passes:</a> <em>0</em></li><li class="failures"><a href="javascript:void(0);">failures:</a> <em>0</em></li><li class="duration">duration: <em>0</em>s</li></ul>';r.prototype.suiteURL=function(t){return o(t.fullTitle())},r.prototype.testURL=function(t){return o(t.fullTitle())},r.prototype.addCodeToggle=function(t,e){var i=t.getElementsByTagName("h2")[0];u(i,"click",function(){n.style.display="none"===n.style.display?"block":"none"});var n=a("<pre><code>%e</code></pre>",d.clean(e));t.appendChild(n),n.style.display="none"}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"../browser/progress":4,"../utils":39,"./base":17,"escape-string-regexp":49}],22:[function(t,e,i){i.Base=i.base=t("./base"),i.Dot=i.dot=t("./dot"),i.Doc=i.doc=t("./doc"),i.TAP=i.tap=t("./tap"),i.JSON=i.json=t("./json"),i.HTML=i.html=t("./html"),i.List=i.list=t("./list"),i.Min=i.min=t("./min"),i.Spec=i.spec=t("./spec"),i.Nyan=i.nyan=t("./nyan"),i.XUnit=i.xunit=t("./xunit"),i.Markdown=i.markdown=t("./markdown"),i.Progress=i.progress=t("./progress"),i.Landing=i.landing=t("./landing"),i.JSONCov=i["json-cov"]=t("./json-cov"),i.HTMLCov=i["html-cov"]=t("./html-cov"),i.JSONStream=i["json-stream"]=t("./json-stream")},{"./base":17,"./doc":18,"./dot":19,"./html":21,"./html-cov":20,"./json":25,"./json-cov":23,"./json-stream":24,"./landing":26,"./list":27,"./markdown":28,"./min":29,"./nyan":30,"./progress":31,"./spec":32,"./tap":33,"./xunit":34}],23:[function(t,e,i){(function(n,r){function o(t,e){h.call(this,t),e=1===arguments.length||e;var i=this,o=[],a=[],c=[];t.on("test end",function(t){o.push(t)}),t.on("pass",function(t){c.push(t)}),t.on("fail",function(t){a.push(t)}),t.on("end",function(){var t=r._$jscoverage||{},h=i.cov=s(t);h.stats=i.stats,h.tests=o.map(l),h.failures=a.map(l),h.passes=c.map(l),e&&n.stdout.write(JSON.stringify(h,null,2))})}function s(t){var e={instrumentation:"node-jscoverage",sloc:0,hits:0,misses:0,coverage:0,files:[]};for(var i in t)if(Object.prototype.hasOwnProperty.call(t,i)){var n=a(i,t[i]);e.files.push(n),e.hits+=n.hits,e.misses+=n.misses,e.sloc+=n.sloc}return e.files.sort(function(t,e){return t.filename.localeCompare(e.filename)}),e.sloc>0&&(e.coverage=e.hits/e.sloc*100),e}function a(t,e){var i={filename:t,coverage:0,hits:0,misses:0,sloc:0,source:{}};return e.source.forEach(function(t,n){n++,0===e[n]?(i.misses++,i.sloc++):void 0!==e[n]&&(i.hits++,i.sloc++),i.source[n]={source:t,coverage:void 0===e[n]?"":e[n]}}),i.coverage=i.hits/i.sloc*100,i}function l(t){return{duration:t.duration,currentRetry:t.currentRetry(),fullTitle:t.fullTitle(),title:t.title}}var h=t("./base");i=e.exports=o}).call(this,t("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./base":17,_process:58}],24:[function(t,e,i){(function(n){function r(t){s.call(this,t);var e=this,i=t.total;t.on("start",function(){console.log(JSON.stringify(["start",{total:i}]))}),t.on("pass",function(t){console.log(JSON.stringify(["pass",o(t)]))}),t.on("fail",function(t,e){t=o(t),t.err=e.message,t.stack=e.stack||null,console.log(JSON.stringify(["fail",t]))}),t.on("end",function(){n.stdout.write(JSON.stringify(["end",e.stats]))})}function o(t){return{title:t.title,fullTitle:t.fullTitle(),duration:t.duration,currentRetry:t.currentRetry()}}var s=t("./base");i=e.exports=r}).call(this,t("_process"))},{"./base":17,_process:58}],25:[function(t,e,i){(function(n){function r(t){a.call(this,t);var e=this,i=[],r=[],s=[],l=[];t.on("test end",function(t){i.push(t)}),t.on("pass",function(t){l.push(t)}),t.on("fail",function(t){s.push(t)}),t.on("pending",function(t){r.push(t)}),t.on("end",function(){var a={stats:e.stats,tests:i.map(o),pending:r.map(o),failures:s.map(o),passes:l.map(o)};t.testResults=a,n.stdout.write(JSON.stringify(a,null,2))})}function o(t){return{title:t.title,fullTitle:t.fullTitle(),duration:t.duration,currentRetry:t.currentRetry(),err:s(t.err||{})}}function s(t){var e={};return Object.getOwnPropertyNames(t).forEach(function(i){e[i]=t[i]},t),e}var a=t("./base");i=e.exports=r}).call(this,t("_process"))},{"./base":17,_process:58}],26:[function(t,e,i){(function(n){function r(t){function e(){var t=Array(r).join("-");return"  "+l("runway",t)}o.call(this,t);var i=this,r=.75*o.window.width|0,s=t.total,h=n.stdout,c=l("plane","✈"),u=-1,p=0;t.on("start",function(){h.write("\n\n\n  "),a.hide()}),t.on("test end",function(t){var i=u===-1?r*++p/s|0:u;"failed"===t.state&&(c=l("plane crash","✈"),u=i),h.write("["+(r+1)+"D[2A"),h.write(e()),h.write("\n  "),h.write(l("runway",Array(i).join("⋅"))),h.write(c),h.write(l("runway",Array(r-i).join("⋅")+"\n")),h.write(e()),h.write("[0m")}),t.on("end",function(){a.show(),console.log(),i.epilogue()})}var o=t("./base"),s=t("../utils").inherits,a=o.cursor,l=o.color;i=e.exports=r,o.colors.plane=0,o.colors["plane crash"]=31,o.colors.runway=90,s(r,o)}).call(this,t("_process"))},{"../utils":39,"./base":17,_process:58}],27:[function(t,e,i){(function(n){function r(t){o.call(this,t);var e=this,i=0;t.on("start",function(){console.log()}),t.on("test",function(t){n.stdout.write(a("pass","    "+t.fullTitle()+": "))}),t.on("pending",function(t){var e=a("checkmark","  -")+a("pending"," %s");console.log(e,t.fullTitle())}),t.on("pass",function(t){var e=a("checkmark","  "+o.symbols.dot)+a("pass"," %s: ")+a(t.speed,"%dms");l.CR(),console.log(e,t.fullTitle(),t.duration)}),t.on("fail",function(t){l.CR(),console.log(a("fail","  %d) %s"),++i,t.fullTitle())}),t.on("end",e.epilogue.bind(e))}var o=t("./base"),s=t("../utils").inherits,a=o.color,l=o.cursor;i=e.exports=r,s(r,o)}).call(this,t("_process"))},{"../utils":39,"./base":17,_process:58}],28:[function(t,e,i){(function(n){function r(t){function e(t){return Array(h).join("#")+" "+t}function i(t,e){var n=e,r=a+t.title;return e=e[r]=e[r]||{suite:t},t.suites.forEach(function(t){i(t,e)}),n}function r(t,e){++e;var i,n="";for(var o in t)"suite"!==o&&(o!==a&&(i=" - ["+o.substring(1)+"]",i+="(#"+s.slug(t[o].suite.fullTitle())+")\n",n+=Array(e).join("  ")+i),n+=r(t[o],e));return n}function l(t){var e=i(t,{});return r(e,0)}o.call(this,t);var h=0,c="";l(t.suite),t.on("suite",function(t){++h;var i=s.slug(t.fullTitle());c+='<a name="'+i+'"></a>\n',c+=e(t.title)+"\n"}),t.on("suite end",function(){--h}),t.on("pass",function(t){var e=s.clean(t.body);c+=t.title+".\n",c+="\n```js\n",c+=e+"\n",c+="```\n\n"}),t.on("end",function(){n.stdout.write("# TOC\n"),n.stdout.write(l(t.suite)),n.stdout.write(c)})}var o=t("./base"),s=t("../utils"),a="$";i=e.exports=r}).call(this,t("_process"))},{"../utils":39,"./base":17,_process:58}],29:[function(t,e,i){(function(n){function r(t){o.call(this,t),t.on("start",function(){n.stdout.write("[2J"),n.stdout.write("[1;3H")}),t.on("end",this.epilogue.bind(this))}var o=t("./base"),s=t("../utils").inherits;i=e.exports=r,s(r,o)}).call(this,t("_process"))},{"../utils":39,"./base":17,_process:58}],30:[function(t,e,i){(function(n){function r(t){s.call(this,t);var e=this,i=.75*s.window.width|0,n=this.nyanCatWidth=11;this.colorIndex=0,this.numberOfLines=4,this.rainbowColors=e.generateColors(),this.scoreboardWidth=5,this.tick=0,this.trajectories=[[],[],[],[]],this.trajectoryWidthMax=i-n,t.on("start",function(){s.cursor.hide(),e.draw()}),t.on("pending",function(){e.draw()}),t.on("pass",function(){e.draw()}),t.on("fail",function(){e.draw()}),t.on("end",function(){s.cursor.show();for(var t=0;t<e.numberOfLines;t++)o("\n");e.epilogue()})}function o(t){n.stdout.write(t)}var s=t("./base"),a=t("../utils").inherits;i=e.exports=r,a(r,s),r.prototype.draw=function(){this.appendRainbow(),this.drawScoreboard(),this.drawRainbow(),this.drawNyanCat(),this.tick=!this.tick},r.prototype.drawScoreboard=function(){function t(t,e){o(" "),o(s.color(t,e)),o("\n")}var e=this.stats;t("green",e.passes),t("fail",e.failures),t("pending",e.pending),o("\n"),this.cursorUp(this.numberOfLines)},r.prototype.appendRainbow=function(){for(var t=this.tick?"_":"-",e=this.rainbowify(t),i=0;i<this.numberOfLines;i++){var n=this.trajectories[i];n.length>=this.trajectoryWidthMax&&n.shift(),n.push(e)}},r.prototype.drawRainbow=function(){var t=this;this.trajectories.forEach(function(e){o("["+t.scoreboardWidth+"C"),o(e.join("")),o("\n")}),this.cursorUp(this.numberOfLines)},r.prototype.drawNyanCat=function(){var t=this,e=this.scoreboardWidth+this.trajectories[0].length,i="["+e+"C",n="";o(i),o("_,------,"),o("\n"),o(i),n=t.tick?"  ":"   ",o("_|"+n+"/\\_/\\ "),o("\n"),o(i),n=t.tick?"_":"__";var r=t.tick?"~":"^";o(r+"|"+n+this.face()+" "),o("\n"),o(i),n=t.tick?" ":"  ",o(n+'""  "" '),o("\n"),this.cursorUp(this.numberOfLines)},r.prototype.face=function(){var t=this.stats;return t.failures?"( x .x)":t.pending?"( o .o)":t.passes?"( ^ .^)":"( - .-)"},r.prototype.cursorUp=function(t){o("["+t+"A")},r.prototype.cursorDown=function(t){o("["+t+"B")},r.prototype.generateColors=function(){for(var t=[],e=0;e<42;e++){var i=Math.floor(Math.PI/3),n=e*(1/6),r=Math.floor(3*Math.sin(n)+3),o=Math.floor(3*Math.sin(n+2*i)+3),s=Math.floor(3*Math.sin(n+4*i)+3);t.push(36*r+6*o+s+16)}return t},r.prototype.rainbowify=function(t){if(!s.useColors)return t;var e=this.rainbowColors[this.colorIndex%this.rainbowColors.length];return this.colorIndex+=1,"[38;5;"+e+"m"+t+"[0m"}}).call(this,t("_process"))},{"../utils":39,"./base":17,_process:58}],31:[function(t,e,i){(function(n){function r(t,e){o.call(this,t);var i=this,r=.5*o.window.width|0,s=t.total,h=0,c=-1;e=e||{},e.open=e.open||"[",e.complete=e.complete||"▬",e.incomplete=e.incomplete||o.symbols.dot,e.close=e.close||"]",e.verbose=!1,t.on("start",function(){console.log(),l.hide()}),t.on("test end",function(){h++;var t=h/s,i=r*t|0,o=r-i;(i!==c||e.verbose)&&(c=i,l.CR(),n.stdout.write("[J"),n.stdout.write(a("progress","  "+e.open)),n.stdout.write(Array(i).join(e.complete)),n.stdout.write(Array(o).join(e.incomplete)),n.stdout.write(a("progress",e.close)),e.verbose&&n.stdout.write(a("progress"," "+h+" of "+s)))}),t.on("end",function(){l.show(),console.log(),i.epilogue()})}var o=t("./base"),s=t("../utils").inherits,a=o.color,l=o.cursor;i=e.exports=r,o.colors.progress=90,s(r,o)}).call(this,t("_process"))},{"../utils":39,"./base":17,_process:58}],32:[function(t,e,i){function n(t){function e(){return Array(n).join("  ")}r.call(this,t);var i=this,n=0,o=0;t.on("start",function(){console.log()}),t.on("suite",function(t){++n,console.log(s("suite","%s%s"),e(),t.title)}),t.on("suite end",function(){--n,1===n&&console.log()}),t.on("pending",function(t){var i=e()+s("pending","  - %s");console.log(i,t.title)}),t.on("pass",function(t){var i;"fast"===t.speed?(i=e()+s("checkmark","  "+r.symbols.ok)+s("pass"," %s"),a.CR(),console.log(i,t.title)):(i=e()+s("checkmark","  "+r.symbols.ok)+s("pass"," %s")+s(t.speed," (%dms)"),a.CR(),console.log(i,t.title,t.duration))}),t.on("fail",function(t){a.CR(),console.log(e()+s("fail","  %d) %s"),++o,t.title)}),t.on("end",i.epilogue.bind(i))}var r=t("./base"),o=t("../utils").inherits,s=r.color,a=r.cursor;i=e.exports=n,o(n,r)},{"../utils":39,"./base":17}],33:[function(t,e,i){function n(t){o.call(this,t);var e=1,i=0,n=0;t.on("start",function(){var e=t.grepTotal(t.suite);console.log("%d..%d",1,e)}),t.on("test end",function(){++e}),t.on("pending",function(t){console.log("ok %d %s # SKIP -",e,r(t))}),t.on("pass",function(t){i++,console.log("ok %d %s",e,r(t))}),t.on("fail",function(t,i){n++,console.log("not ok %d %s",e,r(t)),i.stack&&console.log(i.stack.replace(/^/gm,"  "))}),t.on("end",function(){console.log("# tests "+(i+n)),console.log("# pass "+i),console.log("# fail "+n)})}function r(t){return t.fullTitle().replace(/#/g,"")}var o=t("./base");i=e.exports=n},{"./base":17}],34:[function(t,e,i){(function(n,r){function o(t,e){a.call(this,t);var i=this.stats,n=[],r=this;if(e.reporterOptions&&e.reporterOptions.output){if(!c.createWriteStream)throw new Error("file output not supported in browser");p.sync(d.dirname(e.reporterOptions.output)),r.fileStream=c.createWriteStream(e.reporterOptions.output)}t.on("pending",function(t){n.push(t)}),t.on("pass",function(t){n.push(t)}),t.on("fail",function(t){n.push(t)}),t.on("end",function(){r.write(s("testsuite",{name:"Mocha Tests",tests:i.tests,failures:i.failures,errors:i.failures,skipped:i.tests-i.failures-i.passes,timestamp:(new f).toUTCString(),time:i.duration/1e3||0},!1)),n.forEach(function(t){r.test(t)}),r.write("</testsuite>")})}function s(t,e,i,n){var r,o=i?"/>":">",s=[];for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&s.push(a+'="'+u(e[a])+'"');return r="<"+t+(s.length?" "+s.join(" "):"")+o,n&&(r+=n+"</"+t+o),r}var a=t("./base"),l=t("../utils"),h=l.inherits,c=t("fs"),u=l.escape,p=t("mkdirp"),d=t("path"),f=r.Date;r.setTimeout,r.setInterval,r.clearTimeout,r.clearInterval;i=e.exports=o,h(o,a),o.prototype.done=function(t,e){this.fileStream?this.fileStream.end(function(){e(t)}):e(t)},o.prototype.write=function(t){this.fileStream?this.fileStream.write(t+"\n"):"object"==typeof n&&n.stdout?n.stdout.write(t+"\n"):console.log(t)},o.prototype.test=function(t){var e={classname:t.parent.fullTitle(),name:t.title,time:t.duration/1e3||0};if("failed"===t.state){var i=t.err;this.write(s("testcase",e,!1,s("failure",{},!1,u(i.message)+"\n"+u(i.stack))))}else t.isPending()?this.write(s("testcase",e,!1,s("skipped",{},!0))):this.write(s("testcase",e,!0))}}).call(this,t("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"../utils":39,"./base":17,_process:58,fs:43,mkdirp:55,path:43}],35:[function(t,e,i){(function(i){function n(t,e){this.title=t,this.fn=e,this.body=(e||"").toString(),this.async=e&&e.length,this.sync=!this.async,this._timeout=2e3,this._slow=75,this._enableTimeouts=!0,this.timedOut=!1,this._trace=new Error("done() called multiple times"),this._retries=-1,this._currentRetry=0,this.pending=!1}var r=t("events").EventEmitter,o=t("./pending"),s=t("debug")("mocha:runnable"),a=t("./ms"),l=t("./utils"),h=l.inherits,c=i.Date,u=i.setTimeout,p=(i.setInterval,i.clearTimeout),d=(i.clearInterval,Object.prototype.toString);e.exports=n,h(n,r),n.prototype.timeout=function(t){return arguments.length?(0===t&&(this._enableTimeouts=!1),"string"==typeof t&&(t=a(t)),s("timeout %d",t),this._timeout=t,this.timer&&this.resetTimeout(),this):this._timeout},n.prototype.slow=function(t){return arguments.length?("string"==typeof t&&(t=a(t)),s("timeout %d",t),this._slow=t,this):this._slow},n.prototype.enableTimeouts=function(t){return arguments.length?(s("enableTimeouts %s",t),this._enableTimeouts=t,this):this._enableTimeouts},n.prototype.skip=function(){throw new o},n.prototype.isPending=function(){return this.pending||this.parent&&this.parent.isPending()},n.prototype.retries=function(t){return arguments.length?void(this._retries=t):this._retries},n.prototype.currentRetry=function(t){return arguments.length?void(this._currentRetry=t):this._currentRetry},n.prototype.fullTitle=function(){return this.parent.fullTitle()+" "+this.title},n.prototype.clearTimeout=function(){p(this.timer)},n.prototype.inspect=function(){return JSON.stringify(this,function(t,e){if("_"!==t[0])return"parent"===t?"#<Suite>":"ctx"===t?"#<Context>":e},2)},n.prototype.resetTimeout=function(){var t=this,e=this.timeout()||1e9;this._enableTimeouts&&(this.clearTimeout(),this.timer=u(function(){t._enableTimeouts&&(t.callback(new Error("timeout of "+e+"ms exceeded. Ensure the done() callback is being called in this test.")),t.timedOut=!0)},e))},n.prototype.globals=function(t){return arguments.length?void(this._allowedGlobals=t):this._allowedGlobals},n.prototype.run=function(t){function e(t){s||(s=!0,a.emit("error",t||new Error("done() called multiple times; stacktrace may be inaccurate")))}function i(i){var n=a.timeout();if(!a.timedOut){if(o)return e(i||a._trace);a.clearTimeout(),a.duration=new c-h,o=!0,!i&&a.duration>n&&a._enableTimeouts&&(i=new Error("timeout of "+n+"ms exceeded. Ensure the done() callback is being called in this test.")),t(i)}}function n(t){var e=t.call(u);if(e&&"function"==typeof e.then)a.resetTimeout(),e.then(function(){return i(),null},function(t){i(t||new Error("Promise rejected with no or falsy reason"))});else{if(a.asyncOnly)return i(new Error("--async-only option in use without declaring `done()` or returning a promise"));i()}}function r(t){t.call(u,function(t){return t instanceof Error||"[object Error]"===d.call(t)?i(t):t?i("[object Object]"===Object.prototype.toString.call(t)?new Error("done() invoked with non-Error: "+JSON.stringify(t)):new Error("done() invoked with non-Error: "+t)):void i()})}var o,s,a=this,h=new c,u=this.ctx;if(u&&u.runnable&&u.runnable(this),this.callback=i,this.async){if(this.resetTimeout(),this.allowUncaught)return r(this.fn);try{r(this.fn)}catch(p){i(l.getError(p))}}else{if(this.allowUncaught)return n(this.fn),void i();try{this.isPending()?i():n(this.fn)}catch(p){i(l.getError(p))}}}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./ms":15,"./pending":16,"./utils":39,debug:2,events:3}],36:[function(t,e,i){(function(i,n){function r(t,e){var i=this;this._globals=[],this._abort=!1,this._delay=e,this.suite=t,this.started=!1,this.total=t.total(),this.failures=0,this.on("test end",function(t){i.checkGlobals(t)}),this.on("hook end",function(t){i.checkGlobals(t)}),this._defaultGrep=/.*/,this.grep(this._defaultGrep),this.globals(this.globalProps().concat(a()))}function o(t){function e(t){for(var e=0;e<t.length;e++)delete t[e].fn}w(t._beforeAll)&&e(t._beforeAll),w(t._beforeEach)&&e(t._beforeEach),w(t._afterAll)&&e(t._afterAll),w(t._afterEach)&&e(t._afterEach);for(var i=0;i<t.tests.length;i++)delete t.tests[i].fn}function s(t,e){return f(e,function(e){if(/^d+/.test(e))return!1;if(n.navigator&&/^getInterface/.test(e))return!1;if(n.navigator&&/^\d+/.test(e))return!1;if(/^mocha-/.test(e))return!1;var i=f(t,function(t){return~t.indexOf("*")?0===e.indexOf(t.split("*")[0]):e===t});return!(i.length||n.navigator&&"onerror"===e)})}function a(){if("object"==typeof i&&"string"==typeof i.version){var t=i.version.split("."),e=c.reduce(t,function(t,e){return t<<8|e});if(e<2315)return["errno"]}return[]}var l=t("events").EventEmitter,h=t("./pending"),c=t("./utils"),u=c.inherits,p=t("debug")("mocha:runner"),d=t("./runnable"),f=c.filter,g=c.indexOf,m=c.keys,v=c.stackTraceFilter(),y=c.stringify,b=c.type,x=c.undefinedError,w=c.isArray,S=["setTimeout","clearTimeout","setInterval","clearInterval","XMLHttpRequest","Date","setImmediate","clearImmediate"];e.exports=r,r.immediately=n.setImmediate||i.nextTick,u(r,l),r.prototype.grep=function(t,e){return p("grep %s",t),this._grep=t,this._invert=e,this.total=this.grepTotal(this.suite),this},r.prototype.grepTotal=function(t){var e=this,i=0;return t.eachTest(function(t){var n=e._grep.test(t.fullTitle());e._invert&&(n=!n),n&&i++}),i},r.prototype.globalProps=function(){for(var t=m(n),e=0;e<S.length;++e)~g(t,S[e])||t.push(S[e]);return t},r.prototype.globals=function(t){return arguments.length?(p("globals %j",t),this._globals=this._globals.concat(t),this):this._globals},r.prototype.checkGlobals=function(t){if(!this.ignoreLeaks){var e,i=this._globals,n=this.globalProps();t&&(i=i.concat(t._allowedGlobals||[])),this.prevGlobalsLength!==n.length&&(this.prevGlobalsLength=n.length,e=s(i,n),this._globals=this._globals.concat(e),e.length>1?this.fail(t,new Error("global leaks detected: "+e.join(", "))):e.length&&this.fail(t,new Error("global leak detected: "+e[0])))}},r.prototype.fail=function(t,e){++this.failures,t.state="failed",e instanceof Error||e&&"string"==typeof e.message||(e=new Error("the "+b(e)+" "+y(e)+" was thrown, throw an Error :)")),e.stack=this.fullStackTrace||!e.stack?e.stack:v(e.stack),this.emit("fail",t,e)},r.prototype.failHook=function(t,e){t.ctx&&t.ctx.currentTest&&(t.originalTitle=t.originalTitle||t.title,t.title=t.originalTitle+' for "'+t.ctx.currentTest.title+'"'),this.fail(t,e),this.suite.bail()&&this.emit("end")},r.prototype.hook=function(t,e){function i(t){var r=o[t];return r?(s.currentRunnable=r,r.ctx.currentTest=s.test,s.emit("hook",r),r.listeners("error").length||r.on("error",function(t){s.failHook(r,t)}),void r.run(function(o){var a=r.error();if(a&&s.fail(s.test,a),o){if(!(o instanceof h))return s.failHook(r,o),e(o);n.pending=!0}s.emit("hook end",r),delete r.ctx.currentTest,i(++t)})):e()}var n=this.suite,o=n["_"+t],s=this;r.immediately(function(){i(0)})},r.prototype.hooks=function(t,e,i){function n(s){return r.suite=s,s?void r.hook(t,function(t){if(t){var s=r.suite;return r.suite=o,i(t,s)}n(e.pop())}):(r.suite=o,i())}var r=this,o=this.suite;n(e.pop())},r.prototype.hookUp=function(t,e){var i=[this.suite].concat(this.parents()).reverse();this.hooks(t,i,e)},r.prototype.hookDown=function(t,e){var i=[this.suite].concat(this.parents());this.hooks(t,i,e)},r.prototype.parents=function(){for(var t=this.suite,e=[];t.parent;)t=t.parent,e.push(t);return e},r.prototype.runTest=function(t){var e=this,i=this.test;if(this.asyncOnly&&(i.asyncOnly=!0),this.allowUncaught)return i.allowUncaught=!0,i.run(t);try{i.on("error",function(t){e.fail(i,t)}),i.run(t)}catch(n){t(n)}},r.prototype.runTests=function(t,e){function i(t,n,r){var o=s.suite;s.suite=r?n.parent:n,s.suite?s.hookUp("afterEach",function(t,r){return s.suite=o,t?i(t,r,!0):void e(n)}):(s.suite=o,e(n))}function n(l,c){if(s.failures&&t._bail)return e();if(s._abort)return e();if(l)return i(l,c,!0);if(o=a.shift(),!o)return e();var u=s._grep.test(o.fullTitle());return s._invert&&(u=!u),u?o.isPending()?(s.emit("pending",o),s.emit("test end",o),n()):(s.emit("test",s.test=o),void s.hookDown("beforeEach",function(e,r){return t.isPending()?(s.emit("pending",o),s.emit("test end",o),n()):e?i(e,r,!1):(s.currentRunnable=s.test,void s.runTest(function(t){if(o=s.test,t){var e=o.currentRetry();if(t instanceof h)o.pending=!0,s.emit("pending",o);else{if(e<o.retries()){var i=o.clone();return i.currentRetry(e+1),a.unshift(i),s.hookUp("afterEach",n)}s.fail(o,t)}return s.emit("test end",o),t instanceof h?n():s.hookUp("afterEach",n)}o.state="passed",s.emit("pass",o),s.emit("test end",o),s.hookUp("afterEach",n)}))})):void(s._grep!==s._defaultGrep?r.immediately(n):n())}var o,s=this,a=t.tests.slice();this.next=n,this.hookErr=i,n()},r.prototype.runSuite=function(t,e){function i(e){if(e)return e===t?n():n(e);if(s._abort)return n();var a=t.suites[o++];return a?void(s._grep!==s._defaultGrep?r.immediately(function(){s.runSuite(a,i)}):s.runSuite(a,i)):n()}function n(n){s.suite=t,s.nextSuite=i,l?e(n):(l=!0,delete s.test,s.hook("afterAll",function(){s.emit("suite end",t),e(n)}))}var o=0,s=this,a=this.grepTotal(t),l=!1;return p("run suite %s",t.fullTitle()),!a||s.failures&&t._bail?e():(this.emit("suite",this.suite=t),this.nextSuite=i,void this.hook("beforeAll",function(e){return e?n():void s.runTests(t,i)}))},r.prototype.uncaught=function(t){t?p("uncaught exception %s",t!==function(){return this}.call(t)?t:t.message||t):(p("uncaught undefined exception"),t=x()),t.uncaught=!0;var e=this.currentRunnable;if(!e)return e=new d("Uncaught error outside test suite"),e.parent=this.suite,void(this.started?this.fail(e,t):(this.emit("start"),this.fail(e,t),this.emit("end")));if(e.clearTimeout(),!e.state){if(this.fail(e,t),"test"===e.type)return this.emit("test end",e),void this.hookUp("afterEach",this.next);if("hook"===e.type){var i=this.suite;return e.fullTitle().indexOf("after each")>-1?this.hookErr(t,i,!0):e.fullTitle().indexOf("before each")>-1?this.hookErr(t,i,!1):this.nextSuite(i)}this.emit("end")}},r.prototype.run=function(t){function e(t){r.uncaught(t)}function n(){r.started=!0,r.emit("start"),r.runSuite(s,function(){p("finished running"),r.emit("end")})}var r=this,s=this.suite;return t=t||function(){},p("start"),this.on("suite end",o),this.on("end",function(){p("end"),i.removeListener("uncaughtException",e),t(r.failures)}),i.on("uncaughtException",e),this._delay?(this.emit("waiting",s),s.once("run",n)):n(),this},r.prototype.abort=function(){return p("aborting"),this._abort=!0,this}}).call(this,t("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./pending":16,"./runnable":35,"./utils":39,_process:58,debug:2,events:3}],37:[function(t,e,i){function n(t,e){function i(){}this.title=t,i.prototype=e,this.ctx=new i,this.suites=[],this.tests=[],this.pending=!1,this._beforeEach=[],this._beforeAll=[],this._afterEach=[],this._afterAll=[],this.root=!t,this._timeout=2e3,this._enableTimeouts=!0,this._slow=75,this._bail=!1,this._retries=-1,this.delayed=!1}var r=t("events").EventEmitter,o=t("./hook"),s=t("./utils"),a=s.inherits,l=t("debug")("mocha:suite"),h=t("./ms");i=e.exports=n,i.create=function(t,e){var i=new n(e,t.ctx);return i.parent=t,e=i.fullTitle(),t.addSuite(i),i},a(n,r),n.prototype.clone=function(){var t=new n(this.title);return l("clone"),t.ctx=this.ctx,t.timeout(this.timeout()),t.retries(this.retries()),t.enableTimeouts(this.enableTimeouts()),t.slow(this.slow()),t.bail(this.bail()),t},n.prototype.timeout=function(t){return arguments.length?("0"===t.toString()&&(this._enableTimeouts=!1),"string"==typeof t&&(t=h(t)),l("timeout %d",t),this._timeout=parseInt(t,10),this):this._timeout},n.prototype.retries=function(t){return arguments.length?(l("retries %d",t),this._retries=parseInt(t,10)||0,this):this._retries},n.prototype.enableTimeouts=function(t){return arguments.length?(l("enableTimeouts %s",t),this._enableTimeouts=t,this):this._enableTimeouts},n.prototype.slow=function(t){return arguments.length?("string"==typeof t&&(t=h(t)),l("slow %d",t),this._slow=t,this):this._slow},n.prototype.bail=function(t){return arguments.length?(l("bail %s",t),this._bail=t,this):this._bail},n.prototype.isPending=function(){return this.pending||this.parent&&this.parent.isPending()},n.prototype.beforeAll=function(t,e){if(this.isPending())return this;"function"==typeof t&&(e=t,t=e.name),t='"before all" hook'+(t?": "+t:"");var i=new o(t,e);return i.parent=this,i.timeout(this.timeout()),i.retries(this.retries()),i.enableTimeouts(this.enableTimeouts()),i.slow(this.slow()),i.ctx=this.ctx,this._beforeAll.push(i),this.emit("beforeAll",i),this},n.prototype.afterAll=function(t,e){if(this.isPending())return this;"function"==typeof t&&(e=t,t=e.name),t='"after all" hook'+(t?": "+t:"");var i=new o(t,e);return i.parent=this,i.timeout(this.timeout()),i.retries(this.retries()),i.enableTimeouts(this.enableTimeouts()),i.slow(this.slow()),i.ctx=this.ctx,this._afterAll.push(i),this.emit("afterAll",i),this},n.prototype.beforeEach=function(t,e){if(this.isPending())return this;"function"==typeof t&&(e=t,t=e.name),t='"before each" hook'+(t?": "+t:"");var i=new o(t,e);return i.parent=this,i.timeout(this.timeout()),i.retries(this.retries()),i.enableTimeouts(this.enableTimeouts()),i.slow(this.slow()),i.ctx=this.ctx,this._beforeEach.push(i),this.emit("beforeEach",i),this},n.prototype.afterEach=function(t,e){if(this.isPending())return this;"function"==typeof t&&(e=t,t=e.name),t='"after each" hook'+(t?": "+t:"");var i=new o(t,e);return i.parent=this,i.timeout(this.timeout()),i.retries(this.retries()),i.enableTimeouts(this.enableTimeouts()),i.slow(this.slow()),i.ctx=this.ctx,this._afterEach.push(i),this.emit("afterEach",i),this},n.prototype.addSuite=function(t){return t.parent=this,t.timeout(this.timeout()),t.retries(this.retries()),t.enableTimeouts(this.enableTimeouts()),t.slow(this.slow()),t.bail(this.bail()),this.suites.push(t),this.emit("suite",t),this},n.prototype.addTest=function(t){return t.parent=this,t.timeout(this.timeout()),t.retries(this.retries()),t.enableTimeouts(this.enableTimeouts()),t.slow(this.slow()),t.ctx=this.ctx,this.tests.push(t),this.emit("test",t),this},n.prototype.fullTitle=function(){if(this.parent){var t=this.parent.fullTitle();if(t)return t+" "+this.title}return this.title},n.prototype.total=function(){return s.reduce(this.suites,function(t,e){return t+e.total()},0)+this.tests.length},n.prototype.eachTest=function(t){return s.forEach(this.tests,t),s.forEach(this.suites,function(e){e.eachTest(t);
}),this},n.prototype.run=function(){this.root&&this.emit("run")}},{"./hook":7,"./ms":15,"./utils":39,debug:2,events:3}],38:[function(t,e,i){function n(t,e){r.call(this,t,e),this.pending=!e,this.type="test"}var r=t("./runnable"),o=t("./utils").inherits;e.exports=n,o(n,r),n.prototype.clone=function(){var t=new n(this.title,this.fn);return t.timeout(this.timeout()),t.slow(this.slow()),t.enableTimeouts(this.enableTimeouts()),t.retries(this.retries()),t.currentRetry(this.currentRetry()),t.globals(this.globals()),t.parent=this.parent,t.file=this.file,t.ctx=this.ctx,t}},{"./runnable":35,"./utils":39}],39:[function(t,e,i){(function(e,n){function r(t){return!~v.indexOf(t)}function o(t){return t.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\/\/(.*)/gm,'<span class="comment">//$1</span>').replace(/('.*?')/gm,'<span class="string">$1</span>').replace(/(\d+\.\d+)/gm,'<span class="number">$1</span>').replace(/(\d+)/gm,'<span class="number">$1</span>').replace(/\bnew[ \t]+(\w+)/gm,'<span class="keyword">new</span> <span class="init">$1</span>').replace(/\b(function|new|throw|return|var|if|else)\b/gm,'<span class="keyword">$1</span>')}function s(t,e){switch(e=e||i.type(t)){case"function":return"[Function]";case"object":return"{}";case"array":return"[]";default:return t.toString()}}function a(t,e,n){function r(t,e){return new Array(e).join(t)}function o(t){switch(i.type(t)){case"null":case"undefined":t="["+t+"]";break;case"array":case"object":t=a(t,e,n+1);break;case"boolean":case"regexp":case"symbol":case"number":t=0===t&&1/t===-(1/0)?"-0":t.toString();break;case"date":var r;r=isNaN(t.getTime())?t.toString():t.toISOString?t.toISOString():m(t),t="[Date: "+r+"]";break;case"buffer":var o=t.toJSON();o=o.data&&o.type?o.data:o,t="[Buffer: "+a(o,2,n+1)+"]";break;default:t="[Function]"===t||"[Circular]"===t?t:JSON.stringify(t)}return t}if("undefined"==typeof e)return o(t);n=n||1;var s=e*n,l=y(t)?"[":"{",h=y(t)?"]":"}",c="number"==typeof t.length?t.length:i.keys(t).length;for(var u in t)Object.prototype.hasOwnProperty.call(t,u)&&(--c,l+="\n "+r(" ",s)+(y(t)?"":'"'+u+'": ')+o(t[u])+(c?",":""));return l+(1!==l.length?"\n"+r(" ",--s)+h:h)}var l=t("path").basename,h=t("debug")("mocha:watch"),c=t("fs").existsSync||t("path").existsSync,u=t("glob"),p=t("path").join,d=t("fs").readdirSync,f=t("fs").statSync,g=t("fs").watchFile,m=t("to-iso-string"),v=["node_modules",".git"];i.inherits=t("util").inherits,i.escape=function(t){return String(t).replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")},i.forEach=function(t,e,i){for(var n=0,r=t.length;n<r;n++)e.call(i,t[n],n)},i.isString=function(t){return"string"==typeof t},i.map=function(t,e,i){for(var n=[],r=0,o=t.length;r<o;r++)n.push(e.call(i,t[r],r,t));return n},i.indexOf=function(t,e,i){for(var n=i||0,r=t.length;n<r;n++)if(t[n]===e)return n;return-1},i.reduce=function(t,e,i){for(var n=i,r=0,o=t.length;r<o;r++)n=e(n,t[r],r,t);return n},i.filter=function(t,e){for(var i=[],n=0,r=t.length;n<r;n++){var o=t[n];e(o,n,t)&&i.push(o)}return i},i.keys="function"==typeof Object.keys?Object.keys:function(t){var e=[],i=Object.prototype.hasOwnProperty;for(var n in t)i.call(t,n)&&e.push(n);return e},i.watch=function(t,e){var i={interval:100};t.forEach(function(t){h("file %s",t),g(t,i,function(i,n){n.mtime<i.mtime&&e(t)})})};var y="function"==typeof Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)};i.isArray=y,"undefined"!=typeof n&&n.prototype&&(n.prototype.toJSON=n.prototype.toJSON||function(){return Array.prototype.slice.call(this,0)}),i.files=function(t,e,n){n=n||[],e=e||["js"];var o=new RegExp("\\.("+e.join("|")+")$");return d(t).filter(r).forEach(function(r){r=p(t,r),f(r).isDirectory()?i.files(r,e,n):r.match(o)&&n.push(r)}),n},i.slug=function(t){return t.toLowerCase().replace(/ +/g,"-").replace(/[^-\w]/g,"")},i.clean=function(t){t=t.replace(/\r\n?|[\n\u2028\u2029]/g,"\n").replace(/^\uFEFF/,"").replace(/^function *\(.*\)\s*\{|\(.*\) *=> *\{?/,"").replace(/\s+\}$/,"");var e=t.match(/^\n?( *)/)[1].length,n=t.match(/^\n?(\t*)/)[1].length,r=new RegExp("^\n?"+(n?"\t":" ")+"{"+(n?n:e)+"}","gm");return t=t.replace(r,""),i.trim(t)},i.trim=function(t){return t.replace(/^\s+|\s+$/g,"")},i.parseQuery=function(t){return i.reduce(t.replace("?","").split("&"),function(t,e){var i=e.indexOf("="),n=e.slice(0,i),r=e.slice(++i);return t[n]=decodeURIComponent(r),t},{})},i.highlightTags=function(t){for(var e=document.getElementById("mocha").getElementsByTagName(t),i=0,n=e.length;i<n;++i)e[i].innerHTML=o(e[i].innerHTML)},i.type=function(t){return void 0===t?"undefined":null===t?"null":"undefined"!=typeof n&&n.isBuffer(t)?"buffer":Object.prototype.toString.call(t).replace(/^\[.+\s(.+?)\]$/,"$1").toLowerCase()},i.stringify=function(t){var e=i.type(t);if(!~i.indexOf(["object","array","function"],e)){if("buffer"!==e)return a(t);var n=t.toJSON();return a(n.data&&n.type?n.data:n,2).replace(/,(\n|$)/g,"$1")}for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r))return a(i.canonicalize(t),2).replace(/,(\n|$)/g,"$1");return s(t,e)},i.isBuffer=function(t){return"undefined"!=typeof n&&n.isBuffer(t)},i.canonicalize=function(t,e){function n(t,i){e.push(t),i(),e.pop()}var r,o,a=i.type(t);if(e=e||[],i.indexOf(e,t)!==-1)return"[Circular]";switch(a){case"undefined":case"buffer":case"null":r=t;break;case"array":n(t,function(){r=i.map(t,function(t){return i.canonicalize(t,e)})});break;case"function":for(o in t){r={};break}if(!r){r=s(t,a);break}case"object":r=r||{},n(t,function(){i.forEach(i.keys(t).sort(),function(n){r[n]=i.canonicalize(t[n],e)})});break;case"date":case"number":case"regexp":case"boolean":case"symbol":r=t;break;default:r=t+""}return r},i.lookupFiles=function b(t,e,i){var n=[],r=new RegExp("\\.("+e.join("|")+")$");if(!c(t)){if(!c(t+".js")){if(n=u.sync(t),!n.length)throw new Error("cannot resolve path (or pattern) '"+t+"'");return n}t+=".js"}try{var o=f(t);if(o.isFile())return t}catch(s){return}return d(t).forEach(function(o){o=p(t,o);try{var s=f(o);if(s.isDirectory())return void(i&&(n=n.concat(b(o,e,i))))}catch(a){return}s.isFile()&&r.test(o)&&"."!==l(o)[0]&&n.push(o)}),n},i.undefinedError=function(){return new Error("Caught undefined error, did you throw without specifying what?")},i.getError=function(t){return t||i.undefinedError()},i.stackTraceFilter=function(){function t(t){return~t.indexOf("node_modules"+r+"mocha"+r)||~t.indexOf("components"+r+"mochajs"+r)||~t.indexOf("components"+r+"mocha"+r)||~t.indexOf(r+"mocha.js")}function n(t){return~t.indexOf("(timers.js:")||~t.indexOf("(events.js:")||~t.indexOf("(node.js:")||~t.indexOf("(module.js:")||~t.indexOf("GeneratorFunctionPrototype.next (native)")||!1}var r="/",o="undefined"==typeof document?{node:!0}:{browser:!0},s=o.node?e.cwd()+r:("undefined"==typeof location?window.location:location).href.replace(/\/[^\/]*$/,"/");return function(e){return e=e.split("\n"),e=i.reduce(e,function(e,i){return t(i)?e:o.node&&n(i)?e:(/\(?.+:\d+:\d+\)?$/.test(i)&&(i=i.replace(s,"")),e.push(i),e)},[]),e.join("\n")}}}).call(this,t("_process"),t("buffer").Buffer)},{_process:58,buffer:45,debug:2,fs:43,glob:43,path:43,"to-iso-string":72,util:75}],40:[function(t,e,i){"use strict";function n(){for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",e=0,i=t.length;e<i;++e)l[e]=t[e],h[t.charCodeAt(e)]=e;h["-".charCodeAt(0)]=62,h["_".charCodeAt(0)]=63}function r(t){var e,i,n,r,o,s,a=t.length;if(a%4>0)throw new Error("Invalid string. Length must be a multiple of 4");o="="===t[a-2]?2:"="===t[a-1]?1:0,s=new c(3*a/4-o),n=o>0?a-4:a;var l=0;for(e=0,i=0;e<n;e+=4,i+=3)r=h[t.charCodeAt(e)]<<18|h[t.charCodeAt(e+1)]<<12|h[t.charCodeAt(e+2)]<<6|h[t.charCodeAt(e+3)],s[l++]=r>>16&255,s[l++]=r>>8&255,s[l++]=255&r;return 2===o?(r=h[t.charCodeAt(e)]<<2|h[t.charCodeAt(e+1)]>>4,s[l++]=255&r):1===o&&(r=h[t.charCodeAt(e)]<<10|h[t.charCodeAt(e+1)]<<4|h[t.charCodeAt(e+2)]>>2,s[l++]=r>>8&255,s[l++]=255&r),s}function o(t){return l[t>>18&63]+l[t>>12&63]+l[t>>6&63]+l[63&t]}function s(t,e,i){for(var n,r=[],s=e;s<i;s+=3)n=(t[s]<<16)+(t[s+1]<<8)+t[s+2],r.push(o(n));return r.join("")}function a(t){for(var e,i=t.length,n=i%3,r="",o=[],a=16383,h=0,c=i-n;h<c;h+=a)o.push(s(t,h,h+a>c?c:h+a));return 1===n?(e=t[i-1],r+=l[e>>2],r+=l[e<<4&63],r+="=="):2===n&&(e=(t[i-2]<<8)+t[i-1],r+=l[e>>10],r+=l[e>>4&63],r+=l[e<<2&63],r+="="),o.push(r),o.join("")}i.toByteArray=r,i.fromByteArray=a;var l=[],h=[],c="undefined"!=typeof Uint8Array?Uint8Array:Array;n()},{}],41:[function(t,e,i){},{}],42:[function(t,e,i){(function(i){function n(t){return this instanceof n?(t=t||{},r.call(this,t),void(this.label=void 0!==t.label?t.label:"stdout")):new n(t)}var r=t("stream").Writable,o=t("util").inherits;e.exports=n,o(n,r),n.prototype._write=function(t,e,n){var r=t.toString?t.toString():t;this.label===!1?console.log(r):console.log(this.label+":",r),i.nextTick(n)}}).call(this,t("_process"))},{_process:58,stream:59,util:75}],43:[function(t,e,i){arguments[4][41][0].apply(i,arguments)},{dup:41}],44:[function(t,e,i){(function(e){"use strict";var n=t("buffer"),r=n.Buffer,o=n.SlowBuffer,s=n.kMaxLength||2147483647;i.alloc=function(t,e,i){if("function"==typeof r.alloc)return r.alloc(t,e,i);if("number"==typeof i)throw new TypeError("encoding must not be number");if("number"!=typeof t)throw new TypeError("size must be a number");if(t>s)throw new RangeError("size is too large");var n=i,o=e;void 0===o&&(n=void 0,o=0);var a=new r(t);if("string"==typeof o)for(var l=new r(o,n),h=l.length,c=-1;++c<t;)a[c]=l[c%h];else a.fill(o);return a},i.allocUnsafe=function(t){if("function"==typeof r.allocUnsafe)return r.allocUnsafe(t);if("number"!=typeof t)throw new TypeError("size must be a number");if(t>s)throw new RangeError("size is too large");return new r(t)},i.from=function(t,i,n){if("function"==typeof r.from&&(!e.Uint8Array||Uint8Array.from!==r.from))return r.from(t,i,n);if("number"==typeof t)throw new TypeError('"value" argument must not be a number');if("string"==typeof t)return new r(t,i);if("undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer){var o=i;if(1===arguments.length)return new r(t);"undefined"==typeof o&&(o=0);var s=n;if("undefined"==typeof s&&(s=t.byteLength-o),o>=t.byteLength)throw new RangeError("'offset' is out of bounds");if(s>t.byteLength-o)throw new RangeError("'length' is out of bounds");return new r(t.slice(o,o+s))}if(r.isBuffer(t)){var a=new r(t.length);return t.copy(a,0,0,t.length),a}if(t){if(Array.isArray(t)||"undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return new r(t);if("Buffer"===t.type&&Array.isArray(t.data))return new r(t.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")},i.allocUnsafeSlow=function(t){if("function"==typeof r.allocUnsafeSlow)return r.allocUnsafeSlow(t);if("number"!=typeof t)throw new TypeError("size must be a number");if(t>=s)throw new RangeError("size is too large");return new o(t)}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{buffer:45}],45:[function(t,e,i){(function(e){"use strict";function n(){try{var t=new Uint8Array(1);return t.foo=function(){return 42},42===t.foo()&&"function"==typeof t.subarray&&0===t.subarray(1,1).byteLength}catch(e){return!1}}function r(){return s.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function o(t,e){if(r()<e)throw new RangeError("Invalid typed array length");return s.TYPED_ARRAY_SUPPORT?(t=new Uint8Array(e),t.__proto__=s.prototype):(null===t&&(t=new s(e)),t.length=e),t}function s(t,e,i){if(!(s.TYPED_ARRAY_SUPPORT||this instanceof s))return new s(t,e,i);if("number"==typeof t){if("string"==typeof e)throw new Error("If encoding is specified then the first argument must be a string");return c(this,t)}return a(this,t,e,i)}function a(t,e,i,n){if("number"==typeof e)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer?d(t,e,i,n):"string"==typeof e?u(t,e,i):f(t,e)}function l(t){if("number"!=typeof t)throw new TypeError('"size" argument must be a number')}function h(t,e,i,n){return l(e),e<=0?o(t,e):void 0!==i?"string"==typeof n?o(t,e).fill(i,n):o(t,e).fill(i):o(t,e)}function c(t,e){if(l(e),t=o(t,e<0?0:0|g(e)),!s.TYPED_ARRAY_SUPPORT)for(var i=0;i<e;i++)t[i]=0;return t}function u(t,e,i){if("string"==typeof i&&""!==i||(i="utf8"),!s.isEncoding(i))throw new TypeError('"encoding" must be a valid string encoding');var n=0|v(e,i);return t=o(t,n),t.write(e,i),t}function p(t,e){var i=0|g(e.length);t=o(t,i);for(var n=0;n<i;n+=1)t[n]=255&e[n];return t}function d(t,e,i,n){if(e.byteLength,i<0||e.byteLength<i)throw new RangeError("'offset' is out of bounds");if(e.byteLength<i+(n||0))throw new RangeError("'length' is out of bounds");return e=void 0===n?new Uint8Array(e,i):new Uint8Array(e,i,n),s.TYPED_ARRAY_SUPPORT?(t=e,t.__proto__=s.prototype):t=p(t,e),t}function f(t,e){if(s.isBuffer(e)){var i=0|g(e.length);return t=o(t,i),0===t.length?t:(e.copy(t,0,0,i),t)}if(e){if("undefined"!=typeof ArrayBuffer&&e.buffer instanceof ArrayBuffer||"length"in e)return"number"!=typeof e.length||V(e.length)?o(t,0):p(t,e);if("Buffer"===e.type&&Z(e.data))return p(t,e.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function g(t){if(t>=r())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r().toString(16)+" bytes");return 0|t}function m(t){return+t!=t&&(t=0),s.alloc(+t)}function v(t,e){if(s.isBuffer(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var i=t.length;if(0===i)return 0;for(var n=!1;;)switch(e){case"ascii":case"binary":case"raw":case"raws":return i;case"utf8":case"utf-8":case void 0:return U(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*i;case"hex":return i>>>1;case"base64":return G(t).length;default:if(n)return U(t).length;e=(""+e).toLowerCase(),n=!0}}function y(t,e,i){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===i||i>this.length)&&(i=this.length),i<=0)return"";if(i>>>=0,e>>>=0,i<=e)return"";for(t||(t="utf8");;)switch(t){case"hex":return M(this,e,i);case"utf8":case"utf-8":return D(this,e,i);case"ascii":return E(this,e,i);case"binary":return P(this,e,i);case"base64":return A(this,e,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,e,i);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function b(t,e,i){var n=t[e];t[e]=t[i],t[i]=n}function x(t,e,i,n){function r(t,e){return 1===o?t[e]:t.readUInt16BE(e*o)}var o=1,s=t.length,a=e.length;if(void 0!==n&&(n=String(n).toLowerCase(),"ucs2"===n||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;o=2,s/=2,a/=2,i/=2}for(var l=-1,h=0;i+h<s;h++)if(r(t,i+h)===r(e,l===-1?0:h-l)){if(l===-1&&(l=h),h-l+1===a)return(i+l)*o}else l!==-1&&(h-=h-l),l=-1;return-1}function w(t,e,i,n){i=Number(i)||0;var r=t.length-i;n?(n=Number(n),n>r&&(n=r)):n=r;var o=e.length;if(o%2!==0)throw new Error("Invalid hex string");n>o/2&&(n=o/2);for(var s=0;s<n;s++){var a=parseInt(e.substr(2*s,2),16);if(isNaN(a))return s;t[i+s]=a}return s}function S(t,e,i,n){return q(U(e,t.length-i),t,i,n)}function T(t,e,i,n){return q(X(e),t,i,n)}function k(t,e,i,n){return T(t,e,i,n)}function C(t,e,i,n){return q(G(e),t,i,n)}function _(t,e,i,n){return q(Y(e,t.length-i),t,i,n)}function A(t,e,i){return 0===e&&i===t.length?J.fromByteArray(t):J.fromByteArray(t.slice(e,i))}function D(t,e,i){i=Math.min(t.length,i);for(var n=[],r=e;r<i;){var o=t[r],s=null,a=o>239?4:o>223?3:o>191?2:1;if(r+a<=i){var l,h,c,u;switch(a){case 1:o<128&&(s=o);break;case 2:l=t[r+1],128===(192&l)&&(u=(31&o)<<6|63&l,u>127&&(s=u));break;case 3:l=t[r+1],h=t[r+2],128===(192&l)&&128===(192&h)&&(u=(15&o)<<12|(63&l)<<6|63&h,u>2047&&(u<55296||u>57343)&&(s=u));break;case 4:l=t[r+1],h=t[r+2],c=t[r+3],128===(192&l)&&128===(192&h)&&128===(192&c)&&(u=(15&o)<<18|(63&l)<<12|(63&h)<<6|63&c,u>65535&&u<1114112&&(s=u))}}null===s?(s=65533,a=1):s>65535&&(s-=65536,n.push(s>>>10&1023|55296),s=56320|1023&s),n.push(s),r+=a}return L(n)}function L(t){var e=t.length;if(e<=Q)return String.fromCharCode.apply(String,t);for(var i="",n=0;n<e;)i+=String.fromCharCode.apply(String,t.slice(n,n+=Q));return i}function E(t,e,i){var n="";i=Math.min(t.length,i);for(var r=e;r<i;r++)n+=String.fromCharCode(127&t[r]);return n}function P(t,e,i){var n="";i=Math.min(t.length,i);for(var r=e;r<i;r++)n+=String.fromCharCode(t[r]);return n}function M(t,e,i){var n=t.length;(!e||e<0)&&(e=0),(!i||i<0||i>n)&&(i=n);for(var r="",o=e;o<i;o++)r+=W(t[o]);return r}function I(t,e,i){for(var n=t.slice(e,i),r="",o=0;o<n.length;o+=2)r+=String.fromCharCode(n[o]+256*n[o+1]);return r}function R(t,e,i){if(t%1!==0||t<0)throw new RangeError("offset is not uint");if(t+e>i)throw new RangeError("Trying to access beyond buffer length")}function O(t,e,i,n,r,o){if(!s.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>r||e<o)throw new RangeError('"value" argument is out of bounds');if(i+n>t.length)throw new RangeError("Index out of range")}function B(t,e,i,n){e<0&&(e=65535+e+1);for(var r=0,o=Math.min(t.length-i,2);r<o;r++)t[i+r]=(e&255<<8*(n?r:1-r))>>>8*(n?r:1-r)}function F(t,e,i,n){e<0&&(e=4294967295+e+1);for(var r=0,o=Math.min(t.length-i,4);r<o;r++)t[i+r]=e>>>8*(n?r:3-r)&255}function N(t,e,i,n,r,o){if(i+n>t.length)throw new RangeError("Index out of range");if(i<0)throw new RangeError("Index out of range")}function j(t,e,i,n,r){return r||N(t,e,i,4,3.4028234663852886e38,-3.4028234663852886e38),K.write(t,e,i,n,23,4),i+4}function $(t,e,i,n,r){return r||N(t,e,i,8,1.7976931348623157e308,-1.7976931348623157e308),K.write(t,e,i,n,52,8),i+8}function H(t){if(t=z(t).replace(tt,""),t.length<2)return"";for(;t.length%4!==0;)t+="=";return t}function z(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}function W(t){return t<16?"0"+t.toString(16):t.toString(16)}function U(t,e){e=e||1/0;for(var i,n=t.length,r=null,o=[],s=0;s<n;s++){if(i=t.charCodeAt(s),i>55295&&i<57344){if(!r){if(i>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(e-=3)>-1&&o.push(239,191,189);continue}r=i;continue}if(i<56320){(e-=3)>-1&&o.push(239,191,189),r=i;continue}i=(r-55296<<10|i-56320)+65536}else r&&(e-=3)>-1&&o.push(239,191,189);if(r=null,i<128){if((e-=1)<0)break;o.push(i)}else if(i<2048){if((e-=2)<0)break;o.push(i>>6|192,63&i|128)}else if(i<65536){if((e-=3)<0)break;o.push(i>>12|224,i>>6&63|128,63&i|128)}else{if(!(i<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(i>>18|240,i>>12&63|128,i>>6&63|128,63&i|128)}}return o}function X(t){for(var e=[],i=0;i<t.length;i++)e.push(255&t.charCodeAt(i));return e}function Y(t,e){for(var i,n,r,o=[],s=0;s<t.length&&!((e-=2)<0);s++)i=t.charCodeAt(s),n=i>>8,r=i%256,o.push(r),o.push(n);return o}function G(t){return J.toByteArray(H(t))}function q(t,e,i,n){for(var r=0;r<n&&!(r+i>=e.length||r>=t.length);r++)e[r+i]=t[r];return r}function V(t){return t!==t}var J=t("base64-js"),K=t("ieee754"),Z=t("isarray");i.Buffer=s,i.SlowBuffer=m,i.INSPECT_MAX_BYTES=50,s.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:n(),i.kMaxLength=r(),s.poolSize=8192,s._augment=function(t){return t.__proto__=s.prototype,t},s.from=function(t,e,i){return a(null,t,e,i)},s.TYPED_ARRAY_SUPPORT&&(s.prototype.__proto__=Uint8Array.prototype,s.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&s[Symbol.species]===s&&Object.defineProperty(s,Symbol.species,{value:null,configurable:!0})),s.alloc=function(t,e,i){return h(null,t,e,i)},s.allocUnsafe=function(t){return c(null,t)},s.allocUnsafeSlow=function(t){return c(null,t)},s.isBuffer=function(t){return!(null==t||!t._isBuffer)},s.compare=function(t,e){if(!s.isBuffer(t)||!s.isBuffer(e))throw new TypeError("Arguments must be Buffers");if(t===e)return 0;for(var i=t.length,n=e.length,r=0,o=Math.min(i,n);r<o;++r)if(t[r]!==e[r]){i=t[r],n=e[r];break}return i<n?-1:n<i?1:0},s.isEncoding=function(t){switch(String(t).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"raw":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},s.concat=function(t,e){if(!Z(t))throw new TypeError('"list" argument must be an Array of Buffers');if(0===t.length)return s.alloc(0);var i;if(void 0===e)for(e=0,i=0;i<t.length;i++)e+=t[i].length;var n=s.allocUnsafe(e),r=0;for(i=0;i<t.length;i++){var o=t[i];if(!s.isBuffer(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(n,r),r+=o.length}return n},s.byteLength=v,s.prototype._isBuffer=!0,s.prototype.swap16=function(){var t=this.length;if(t%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var e=0;e<t;e+=2)b(this,e,e+1);return this},s.prototype.swap32=function(){var t=this.length;if(t%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var e=0;e<t;e+=4)b(this,e,e+3),b(this,e+1,e+2);return this},s.prototype.toString=function(){var t=0|this.length;return 0===t?"":0===arguments.length?D(this,0,t):y.apply(this,arguments)},s.prototype.equals=function(t){if(!s.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t||0===s.compare(this,t)},s.prototype.inspect=function(){var t="",e=i.INSPECT_MAX_BYTES;return this.length>0&&(t=this.toString("hex",0,e).match(/.{2}/g).join(" "),this.length>e&&(t+=" ... ")),"<Buffer "+t+">"},s.prototype.compare=function(t,e,i,n,r){if(!s.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===i&&(i=t?t.length:0),void 0===n&&(n=0),void 0===r&&(r=this.length),e<0||i>t.length||n<0||r>this.length)throw new RangeError("out of range index");if(n>=r&&e>=i)return 0;if(n>=r)return-1;if(e>=i)return 1;if(e>>>=0,i>>>=0,n>>>=0,r>>>=0,this===t)return 0;for(var o=r-n,a=i-e,l=Math.min(o,a),h=this.slice(n,r),c=t.slice(e,i),u=0;u<l;++u)if(h[u]!==c[u]){o=h[u],a=c[u];break}return o<a?-1:a<o?1:0},s.prototype.indexOf=function(t,e,i){if("string"==typeof e?(i=e,e=0):e>2147483647?e=2147483647:e<-2147483648&&(e=-2147483648),e>>=0,0===this.length)return-1;if(e>=this.length)return-1;if(e<0&&(e=Math.max(this.length+e,0)),"string"==typeof t&&(t=s.from(t,i)),s.isBuffer(t))return 0===t.length?-1:x(this,t,e,i);if("number"==typeof t)return s.TYPED_ARRAY_SUPPORT&&"function"===Uint8Array.prototype.indexOf?Uint8Array.prototype.indexOf.call(this,t,e):x(this,[t],e,i);throw new TypeError("val must be string, number or Buffer")},s.prototype.includes=function(t,e,i){return this.indexOf(t,e,i)!==-1},s.prototype.write=function(t,e,i,n){if(void 0===e)n="utf8",i=this.length,e=0;else if(void 0===i&&"string"==typeof e)n=e,i=this.length,e=0;else{if(!isFinite(e))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");e=0|e,isFinite(i)?(i=0|i,void 0===n&&(n="utf8")):(n=i,i=void 0)}var r=this.length-e;if((void 0===i||i>r)&&(i=r),t.length>0&&(i<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return w(this,t,e,i);case"utf8":case"utf-8":return S(this,t,e,i);case"ascii":return T(this,t,e,i);case"binary":return k(this,t,e,i);case"base64":return C(this,t,e,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return _(this,t,e,i);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var Q=4096;s.prototype.slice=function(t,e){var i=this.length;t=~~t,e=void 0===e?i:~~e,t<0?(t+=i,t<0&&(t=0)):t>i&&(t=i),e<0?(e+=i,e<0&&(e=0)):e>i&&(e=i),e<t&&(e=t);var n;if(s.TYPED_ARRAY_SUPPORT)n=this.subarray(t,e),n.__proto__=s.prototype;else{var r=e-t;n=new s(r,(void 0));for(var o=0;o<r;o++)n[o]=this[o+t]}return n},s.prototype.readUIntLE=function(t,e,i){t=0|t,e=0|e,i||R(t,e,this.length);for(var n=this[t],r=1,o=0;++o<e&&(r*=256);)n+=this[t+o]*r;return n},s.prototype.readUIntBE=function(t,e,i){t=0|t,e=0|e,i||R(t,e,this.length);for(var n=this[t+--e],r=1;e>0&&(r*=256);)n+=this[t+--e]*r;return n},s.prototype.readUInt8=function(t,e){return e||R(t,1,this.length),this[t]},s.prototype.readUInt16LE=function(t,e){return e||R(t,2,this.length),this[t]|this[t+1]<<8},s.prototype.readUInt16BE=function(t,e){return e||R(t,2,this.length),this[t]<<8|this[t+1]},s.prototype.readUInt32LE=function(t,e){return e||R(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},s.prototype.readUInt32BE=function(t,e){return e||R(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},s.prototype.readIntLE=function(t,e,i){t=0|t,e=0|e,i||R(t,e,this.length);for(var n=this[t],r=1,o=0;++o<e&&(r*=256);)n+=this[t+o]*r;return r*=128,n>=r&&(n-=Math.pow(2,8*e)),n},s.prototype.readIntBE=function(t,e,i){t=0|t,e=0|e,i||R(t,e,this.length);for(var n=e,r=1,o=this[t+--n];n>0&&(r*=256);)o+=this[t+--n]*r;return r*=128,o>=r&&(o-=Math.pow(2,8*e)),o},s.prototype.readInt8=function(t,e){return e||R(t,1,this.length),128&this[t]?(255-this[t]+1)*-1:this[t]},s.prototype.readInt16LE=function(t,e){e||R(t,2,this.length);var i=this[t]|this[t+1]<<8;return 32768&i?4294901760|i:i},s.prototype.readInt16BE=function(t,e){e||R(t,2,this.length);var i=this[t+1]|this[t]<<8;return 32768&i?4294901760|i:i},s.prototype.readInt32LE=function(t,e){return e||R(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},s.prototype.readInt32BE=function(t,e){return e||R(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},s.prototype.readFloatLE=function(t,e){return e||R(t,4,this.length),K.read(this,t,!0,23,4)},s.prototype.readFloatBE=function(t,e){return e||R(t,4,this.length),K.read(this,t,!1,23,4)},s.prototype.readDoubleLE=function(t,e){return e||R(t,8,this.length),K.read(this,t,!0,52,8)},s.prototype.readDoubleBE=function(t,e){return e||R(t,8,this.length),K.read(this,t,!1,52,8)},s.prototype.writeUIntLE=function(t,e,i,n){if(t=+t,e=0|e,i=0|i,!n){var r=Math.pow(2,8*i)-1;O(this,t,e,i,r,0)}var o=1,s=0;for(this[e]=255&t;++s<i&&(o*=256);)this[e+s]=t/o&255;return e+i},s.prototype.writeUIntBE=function(t,e,i,n){if(t=+t,e=0|e,i=0|i,!n){var r=Math.pow(2,8*i)-1;O(this,t,e,i,r,0)}var o=i-1,s=1;for(this[e+o]=255&t;--o>=0&&(s*=256);)this[e+o]=t/s&255;return e+i},s.prototype.writeUInt8=function(t,e,i){return t=+t,e=0|e,i||O(this,t,e,1,255,0),s.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},s.prototype.writeUInt16LE=function(t,e,i){return t=+t,e=0|e,i||O(this,t,e,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):B(this,t,e,!0),e+2},s.prototype.writeUInt16BE=function(t,e,i){return t=+t,e=0|e,i||O(this,t,e,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):B(this,t,e,!1),e+2},s.prototype.writeUInt32LE=function(t,e,i){return t=+t,e=0|e,i||O(this,t,e,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):F(this,t,e,!0),e+4},s.prototype.writeUInt32BE=function(t,e,i){return t=+t,e=0|e,i||O(this,t,e,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):F(this,t,e,!1),e+4},s.prototype.writeIntLE=function(t,e,i,n){if(t=+t,e=0|e,!n){var r=Math.pow(2,8*i-1);O(this,t,e,i,r-1,-r)}var o=0,s=1,a=0;for(this[e]=255&t;++o<i&&(s*=256);)t<0&&0===a&&0!==this[e+o-1]&&(a=1),this[e+o]=(t/s>>0)-a&255;return e+i},s.prototype.writeIntBE=function(t,e,i,n){if(t=+t,e=0|e,!n){var r=Math.pow(2,8*i-1);O(this,t,e,i,r-1,-r)}var o=i-1,s=1,a=0;for(this[e+o]=255&t;--o>=0&&(s*=256);)t<0&&0===a&&0!==this[e+o+1]&&(a=1),this[e+o]=(t/s>>0)-a&255;return e+i},s.prototype.writeInt8=function(t,e,i){return t=+t,e=0|e,i||O(this,t,e,1,127,-128),s.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},s.prototype.writeInt16LE=function(t,e,i){return t=+t,e=0|e,i||O(this,t,e,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):B(this,t,e,!0),e+2},s.prototype.writeInt16BE=function(t,e,i){return t=+t,e=0|e,i||O(this,t,e,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):B(this,t,e,!1),e+2},s.prototype.writeInt32LE=function(t,e,i){return t=+t,e=0|e,i||O(this,t,e,4,2147483647,-2147483648),s.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):F(this,t,e,!0),e+4},s.prototype.writeInt32BE=function(t,e,i){return t=+t,e=0|e,i||O(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),s.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):F(this,t,e,!1),e+4},s.prototype.writeFloatLE=function(t,e,i){return j(this,t,e,!0,i)},s.prototype.writeFloatBE=function(t,e,i){return j(this,t,e,!1,i)},s.prototype.writeDoubleLE=function(t,e,i){return $(this,t,e,!0,i)},s.prototype.writeDoubleBE=function(t,e,i){return $(this,t,e,!1,i)},s.prototype.copy=function(t,e,i,n){if(i||(i=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n<i&&(n=i),n===i)return 0;if(0===t.length||0===this.length)return 0;if(e<0)throw new RangeError("targetStart out of bounds");if(i<0||i>=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e<n-i&&(n=t.length-e+i);var r,o=n-i;if(this===t&&i<e&&e<n)for(r=o-1;r>=0;r--)t[r+e]=this[r+i];else if(o<1e3||!s.TYPED_ARRAY_SUPPORT)for(r=0;r<o;r++)t[r+e]=this[r+i];else Uint8Array.prototype.set.call(t,this.subarray(i,i+o),e);return o},s.prototype.fill=function(t,e,i,n){if("string"==typeof t){if("string"==typeof e?(n=e,e=0,i=this.length):"string"==typeof i&&(n=i,i=this.length),1===t.length){var r=t.charCodeAt(0);r<256&&(t=r)}if(void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!s.isEncoding(n))throw new TypeError("Unknown encoding: "+n)}else"number"==typeof t&&(t=255&t);if(e<0||this.length<e||this.length<i)throw new RangeError("Out of range index");if(i<=e)return this;e>>>=0,i=void 0===i?this.length:i>>>0,t||(t=0);var o;if("number"==typeof t)for(o=e;o<i;o++)this[o]=t;else{var a=s.isBuffer(t)?t:U(new s(t,n).toString()),l=a.length;for(o=0;o<i-e;o++)this[o+e]=a[o%l]}return this};var tt=/[^+\/0-9A-Za-z-_]/g}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"base64-js":40,ieee754:52,isarray:46}],46:[function(t,e,i){var n={}.toString;e.exports=Array.isArray||function(t){return"[object Array]"==n.call(t)}},{}],47:[function(t,e,i){(function(t){function e(t){return Array.isArray?Array.isArray(t):"[object Array]"===m(t)}function n(t){return"boolean"==typeof t}function r(t){return null===t}function o(t){return null==t}function s(t){return"number"==typeof t}function a(t){return"string"==typeof t}function l(t){return"symbol"==typeof t}function h(t){return void 0===t}function c(t){return"[object RegExp]"===m(t)}function u(t){return"object"==typeof t&&null!==t}function p(t){return"[object Date]"===m(t)}function d(t){return"[object Error]"===m(t)||t instanceof Error}function f(t){return"function"==typeof t}function g(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||"undefined"==typeof t}function m(t){return Object.prototype.toString.call(t)}i.isArray=e,i.isBoolean=n,i.isNull=r,i.isNullOrUndefined=o,i.isNumber=s,i.isString=a,i.isSymbol=l,i.isUndefined=h,i.isRegExp=c,i.isObject=u,i.isDate=p,i.isError=d,i.isFunction=f,i.isPrimitive=g,i.isBuffer=t.isBuffer}).call(this,{isBuffer:t("../../is-buffer/index.js")})},{"../../is-buffer/index.js":54}],48:[function(t,e,i){!function(t,i){function n(t,e,i){if(Array.prototype.map)return Array.prototype.map.call(t,e,i);for(var n=new Array(t.length),r=0,o=t.length;r<o;r++)n[r]=e.call(i,t[r],r,t);return n}function r(t){return{newPos:t.newPos,components:t.components.slice(0)}}function o(t){for(var e=[],i=0;i<t.length;i++)t[i]&&e.push(t[i]);return e}function s(t){var e=t;return e=e.replace(/&/g,"&amp;"),
e=e.replace(/</g,"&lt;"),e=e.replace(/>/g,"&gt;"),e=e.replace(/"/g,"&quot;")}function a(t,e,i){e=e||[],i=i||[];var n;for(n=0;n<e.length;n+=1)if(e[n]===t)return i[n];var r;if("[object Array]"===c.call(t)){for(e.push(t),r=new Array(t.length),i.push(r),n=0;n<t.length;n+=1)r[n]=a(t[n],e,i);e.pop(),i.pop()}else if("object"==typeof t&&null!==t){e.push(t),r={},i.push(r);var o,s=[];for(o in t)s.push(o);for(s.sort(),n=0;n<s.length;n+=1)o=s[n],r[o]=a(t[o],e,i);e.pop(),i.pop()}else r=t;return r}function l(t,e,i,r){for(var o=0,s=t.length,a=0,l=0;o<s;o++){var h=t[o];if(h.removed){if(h.value=i.slice(l,l+h.count).join(""),l+=h.count,o&&t[o-1].added){var c=t[o-1];t[o-1]=t[o],t[o]=c}}else{if(!h.added&&r){var u=e.slice(a,a+h.count);u=n(u,function(t,e){var n=i[l+e];return n.length>t.length?n:t}),h.value=u.join("")}else h.value=e.slice(a,a+h.count).join("");a+=h.count,h.added||(l+=h.count)}}return t}function h(t){this.ignoreWhitespace=t}var c=Object.prototype.toString;h.prototype={diff:function(t,e,n){function o(t){return n?(setTimeout(function(){n(i,t)},0),!0):t}function s(){for(var n=-1*u;n<=u;n+=2){var s,p=d[n-1],f=d[n+1],g=(f?f.newPos:0)-n;p&&(d[n-1]=i);var m=p&&p.newPos+1<h,v=f&&0<=g&&g<c;if(m||v){if(!m||v&&p.newPos<f.newPos?(s=r(f),a.pushComponent(s.components,i,!0)):(s=p,s.newPos++,a.pushComponent(s.components,!0,i)),g=a.extractCommon(s,e,t,n),s.newPos+1>=h&&g+1>=c)return o(l(s.components,e,t,a.useLongestToken));d[n]=s}else d[n]=i}u++}var a=this;if(e===t)return o([{value:e}]);if(!e)return o([{value:t,removed:!0}]);if(!t)return o([{value:e,added:!0}]);e=this.tokenize(e),t=this.tokenize(t);var h=e.length,c=t.length,u=1,p=h+c,d=[{newPos:-1,components:[]}],f=this.extractCommon(d[0],e,t,0);if(d[0].newPos+1>=h&&f+1>=c)return o([{value:e.join("")}]);if(n)!function m(){setTimeout(function(){return u>p?n():void(s()||m())},0)}();else for(;u<=p;){var g=s();if(g)return g}},pushComponent:function(t,e,i){var n=t[t.length-1];n&&n.added===e&&n.removed===i?t[t.length-1]={count:n.count+1,added:e,removed:i}:t.push({count:1,added:e,removed:i})},extractCommon:function(t,e,i,n){for(var r=e.length,o=i.length,s=t.newPos,a=s-n,l=0;s+1<r&&a+1<o&&this.equals(e[s+1],i[a+1]);)s++,a++,l++;return l&&t.components.push({count:l}),t.newPos=s,a},equals:function(t,e){var i=/\S/;return t===e||this.ignoreWhitespace&&!i.test(t)&&!i.test(e)},tokenize:function(t){return t.split("")}};var u=new h,p=new h((!0)),d=new h;p.tokenize=d.tokenize=function(t){return o(t.split(/(\s+|\b)/))};var f=new h((!0));f.tokenize=function(t){return o(t.split(/([{}:;,]|\s+)/))};var g=new h,m=new h;m.ignoreTrim=!0,g.tokenize=m.tokenize=function(t){for(var e=[],i=t.split(/^/m),n=0;n<i.length;n++){var r=i[n],o=i[n-1],s=o&&o[o.length-1];"\n"===r&&"\r"===s?e[e.length-1]=e[e.length-1].slice(0,-1)+"\r\n":(this.ignoreTrim&&(r=r.trim(),n<i.length-1&&(r+="\n")),e.push(r))}return e};var v=new h;v.tokenize=function(t){var e=[],i=t.split(/(\n|\r\n)/);i[i.length-1]||i.pop();for(var n=0;n<i.length;n++){var r=i[n];n%2?e[e.length-1]+=r:e.push(r)}return e};var y=new h;y.tokenize=function(t){return o(t.split(/(\S.+?[.!?])(?=\s+|$)/))};var b=new h;b.useLongestToken=!0,b.tokenize=g.tokenize,b.equals=function(t,e){return g.equals(t.replace(/,([\r\n])/g,"$1"),e.replace(/,([\r\n])/g,"$1"))};var x={Diff:h,diffChars:function(t,e,i){return u.diff(t,e,i)},diffWords:function(t,e,i){return p.diff(t,e,i)},diffWordsWithSpace:function(t,e,i){return d.diff(t,e,i)},diffLines:function(t,e,i){return g.diff(t,e,i)},diffTrimmedLines:function(t,e,i){return m.diff(t,e,i)},diffSentences:function(t,e,i){return y.diff(t,e,i)},diffCss:function(t,e,i){return f.diff(t,e,i)},diffJson:function(t,e,n){return b.diff("string"==typeof t?t:JSON.stringify(a(t),i,"  "),"string"==typeof e?e:JSON.stringify(a(e),i,"  "),n)},createTwoFilesPatch:function(t,e,i,r,o,s){function a(t){return n(t,function(t){return" "+t})}function l(t,e,i){var n=c[c.length-2],r=e===c.length-2,o=e===c.length-3&&i.added!==n.added;/\n$/.test(i.value)||!r&&!o||t.push("\\ No newline at end of file")}var h=[];t==e&&h.push("Index: "+t),h.push("==================================================================="),h.push("--- "+t+("undefined"==typeof o?"":"\t"+o)),h.push("+++ "+e+("undefined"==typeof s?"":"\t"+s));var c=v.diff(i,r);c.push({value:"",lines:[]});for(var u=0,p=0,d=[],f=1,g=1,m=0;m<c.length;m++){var y=c[m],b=y.lines||y.value.replace(/\n$/,"").split("\n");if(y.lines=b,y.added||y.removed){if(!u){var x=c[m-1];u=f,p=g,x&&(d=a(x.lines.slice(-4)),u-=d.length,p-=d.length)}d.push.apply(d,n(b,function(t){return(y.added?"+":"-")+t})),l(d,m,y),y.added?g+=b.length:f+=b.length}else{if(u)if(b.length<=8&&m<c.length-2)d.push.apply(d,a(b));else{var w=Math.min(b.length,4);h.push("@@ -"+u+","+(f-u+w)+" +"+p+","+(g-p+w)+" @@"),h.push.apply(h,d),h.push.apply(h,a(b.slice(0,w))),b.length<=4&&l(h,m,y),u=0,p=0,d=[]}f+=b.length,g+=b.length}}return h.join("\n")+"\n"},createPatch:function(t,e,i,n,r){return x.createTwoFilesPatch(t,t,e,i,n,r)},applyPatch:function(t,e){for(var i=e.split("\n"),n=[],r=0,o=!1,s=!1;r<i.length&&!/^@@/.test(i[r]);)r++;for(;r<i.length;r++)if("@"===i[r][0]){var a=i[r].split(/@@ -(\d+),(\d+) \+(\d+),(\d+) @@/);n.unshift({start:a[3],oldlength:+a[2],removed:[],newlength:a[4],added:[]})}else"+"===i[r][0]?n[0].added.push(i[r].substr(1)):"-"===i[r][0]?n[0].removed.push(i[r].substr(1)):" "===i[r][0]?(n[0].added.push(i[r].substr(1)),n[0].removed.push(i[r].substr(1))):"\\"===i[r][0]&&("+"===i[r-1][0]?o=!0:"-"===i[r-1][0]&&(s=!0));var l=t.split("\n");for(r=n.length-1;r>=0;r--){for(var h=n[r],c=0;c<h.oldlength;c++)if(l[h.start-1+c]!==h.removed[c])return!1;Array.prototype.splice.apply(l,[h.start-1,h.oldlength].concat(h.added))}if(o)for(;!l[l.length-1];)l.pop();else s&&l.push("");return l.join("\n")},convertChangesToXML:function(t){for(var e=[],i=0;i<t.length;i++){var n=t[i];n.added?e.push("<ins>"):n.removed&&e.push("<del>"),e.push(s(n.value)),n.added?e.push("</ins>"):n.removed&&e.push("</del>")}return e.join("")},convertChangesToDMP:function(t){for(var e,i,n=[],r=0;r<t.length;r++)e=t[r],i=e.added?1:e.removed?-1:0,n.push([i,e.value]);return n},canonicalize:a};"undefined"!=typeof e&&e.exports?e.exports=x:"function"==typeof define&&define.amd?define([],function(){return x}):"undefined"==typeof t.JsDiff&&(t.JsDiff=x)}(this)},{}],49:[function(t,e,i){"use strict";var n=/[|\\{}()[\]^$+*?.]/g;e.exports=function(t){if("string"!=typeof t)throw new TypeError("Expected a string");return t.replace(n,"\\$&")}},{}],50:[function(t,e,i){function n(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function r(t){return"function"==typeof t}function o(t){return"number"==typeof t}function s(t){return"object"==typeof t&&null!==t}function a(t){return void 0===t}e.exports=n,n.EventEmitter=n,n.prototype._events=void 0,n.prototype._maxListeners=void 0,n.defaultMaxListeners=10,n.prototype.setMaxListeners=function(t){if(!o(t)||t<0||isNaN(t))throw TypeError("n must be a positive number");return this._maxListeners=t,this},n.prototype.emit=function(t){var e,i,n,o,l,h;if(this._events||(this._events={}),"error"===t&&(!this._events.error||s(this._events.error)&&!this._events.error.length)){if(e=arguments[1],e instanceof Error)throw e;throw TypeError('Uncaught, unspecified "error" event.')}if(i=this._events[t],a(i))return!1;if(r(i))switch(arguments.length){case 1:i.call(this);break;case 2:i.call(this,arguments[1]);break;case 3:i.call(this,arguments[1],arguments[2]);break;default:o=Array.prototype.slice.call(arguments,1),i.apply(this,o)}else if(s(i))for(o=Array.prototype.slice.call(arguments,1),h=i.slice(),n=h.length,l=0;l<n;l++)h[l].apply(this,o);return!0},n.prototype.addListener=function(t,e){var i;if(!r(e))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",t,r(e.listener)?e.listener:e),this._events[t]?s(this._events[t])?this._events[t].push(e):this._events[t]=[this._events[t],e]:this._events[t]=e,s(this._events[t])&&!this._events[t].warned&&(i=a(this._maxListeners)?n.defaultMaxListeners:this._maxListeners,i&&i>0&&this._events[t].length>i&&(this._events[t].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[t].length),"function"==typeof console.trace&&console.trace())),this},n.prototype.on=n.prototype.addListener,n.prototype.once=function(t,e){function i(){this.removeListener(t,i),n||(n=!0,e.apply(this,arguments))}if(!r(e))throw TypeError("listener must be a function");var n=!1;return i.listener=e,this.on(t,i),this},n.prototype.removeListener=function(t,e){var i,n,o,a;if(!r(e))throw TypeError("listener must be a function");if(!this._events||!this._events[t])return this;if(i=this._events[t],o=i.length,n=-1,i===e||r(i.listener)&&i.listener===e)delete this._events[t],this._events.removeListener&&this.emit("removeListener",t,e);else if(s(i)){for(a=o;a-- >0;)if(i[a]===e||i[a].listener&&i[a].listener===e){n=a;break}if(n<0)return this;1===i.length?(i.length=0,delete this._events[t]):i.splice(n,1),this._events.removeListener&&this.emit("removeListener",t,e)}return this},n.prototype.removeAllListeners=function(t){var e,i;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[t]&&delete this._events[t],this;if(0===arguments.length){for(e in this._events)"removeListener"!==e&&this.removeAllListeners(e);return this.removeAllListeners("removeListener"),this._events={},this}if(i=this._events[t],r(i))this.removeListener(t,i);else if(i)for(;i.length;)this.removeListener(t,i[i.length-1]);return delete this._events[t],this},n.prototype.listeners=function(t){var e;return e=this._events&&this._events[t]?r(this._events[t])?[this._events[t]]:this._events[t].slice():[]},n.prototype.listenerCount=function(t){if(this._events){var e=this._events[t];if(r(e))return 1;if(e)return e.length}return 0},n.listenerCount=function(t,e){return t.listenerCount(e)}},{}],51:[function(t,e,i){(function(n){function r(t){for(var e,i=n.env.PATH.split(":"),r=0,o=i.length;r<o;++r)if(e=h.join(i[r],t),c(e))return e}function o(t,e,i){var n,r,e=e||{},i=i||function(){};if(e.exec&&(s={type:"Custom",pkg:e.exec,range:[]}),!s)return i(new Error("growl not supported on this platform"));if(r=[s.pkg],n=e.image)switch(s.type){case"Darwin-Growl":var o,l=h.extname(n).substr(1);o=o||"icns"==l&&"iconpath",o=o||/^[A-Z]/.test(n)&&"appIcon",o=o||/^png|gif|jpe?g$/.test(l)&&"image",o=o||l&&(n=l)&&"icon",o=o||"icon",r.push("--"+o,p(n));break;case"Darwin-NotificationCenter":r.push(s.icon,p(n));break;case"Linux":r.push(s.icon,p(n)),e.sticky||r.push("--hint=int:transient:1");break;case"Windows":r.push(s.icon+p(n))}if(e.sticky&&r.push(s.sticky),e.priority){var c=e.priority+"";s.priority.range.indexOf(c);~s.priority.range.indexOf(c)&&r.push(s.priority,e.priority)}switch(e.sound&&"Darwin-NotificationCenter"===s.type&&r.push(s.sound,e.sound),e.name&&"Darwin-Growl"===s.type&&r.push("--name",e.name),s.type){case"Darwin-Growl":r.push(s.msg),r.push(p(t).replace(/\\n/g,"\n")),e.title&&r.push(p(e.title));break;case"Darwin-NotificationCenter":r.push(s.msg);var u=p(t),d=u.replace(/\\n/g,"\n");r.push(d),e.title&&(r.push(s.title),r.push(p(e.title))),e.subtitle&&(r.push(s.subtitle),r.push(p(e.subtitle))),e.url&&(r.push(s.url),r.push(p(e.url)));break;case"Linux-Growl":r.push(s.msg),r.push(p(t).replace(/\\n/g,"\n")),e.title&&r.push(p(e.title)),s.host&&r.push(s.host.cmd,s.host.hostname);break;case"Linux":e.title?(r.push(p(e.title)),r.push(s.msg),r.push(p(t).replace(/\\n/g,"\n"))):r.push(p(t).replace(/\\n/g,"\n"));break;case"Windows":r.push(p(t).replace(/\\n/g,"\n")),e.title&&r.push(s.title+p(e.title)),e.url&&r.push(s.url+p(e.url));break;case"Custom":r[0]=function(i){var n=e.title?e.title+": "+t:t,o=i.replace(/(^|[^%])%s/g,"$1"+p(n));return o===i&&r.push(p(n)),o}(r[0])}a(r.join(" "),i)}var s,a=t("child_process").exec,l=t("fs"),h=t("path"),c=l.existsSync||h.existsSync,u=t("os"),p=JSON.stringify;switch(u.type()){case"Darwin":s=r("terminal-notifier")?{type:"Darwin-NotificationCenter",pkg:"terminal-notifier",msg:"-message",title:"-title",subtitle:"-subtitle",icon:"-appIcon",sound:"-sound",url:"-open",priority:{cmd:"-execute",range:[]}}:{type:"Darwin-Growl",pkg:"growlnotify",msg:"-m",sticky:"--sticky",priority:{cmd:"--priority",range:[-2,-1,0,1,2,"Very Low","Moderate","Normal","High","Emergency"]}};break;case"Linux":s=r("growl")?{type:"Linux-Growl",pkg:"growl",msg:"-m",title:"-title",subtitle:"-subtitle",host:{cmd:"-H",hostname:"192.168.33.1"}}:{type:"Linux",pkg:"notify-send",msg:"",sticky:"-t 0",icon:"-i",priority:{cmd:"-u",range:["low","normal","critical"]}};break;case"Windows_NT":s={type:"Windows",pkg:"growlnotify",msg:"",sticky:"/s:true",title:"/t:",icon:"/i:",url:"/cu:",priority:{cmd:"/p:",range:[-2,-1,0,1,2]}}}i=e.exports=o,i.version="1.4.1"}).call(this,t("_process"))},{_process:58,child_process:43,fs:43,os:56,path:43}],52:[function(t,e,i){i.read=function(t,e,i,n,r){var o,s,a=8*r-n-1,l=(1<<a)-1,h=l>>1,c=-7,u=i?r-1:0,p=i?-1:1,d=t[e+u];for(u+=p,o=d&(1<<-c)-1,d>>=-c,c+=a;c>0;o=256*o+t[e+u],u+=p,c-=8);for(s=o&(1<<-c)-1,o>>=-c,c+=n;c>0;s=256*s+t[e+u],u+=p,c-=8);if(0===o)o=1-h;else{if(o===l)return s?NaN:(d?-1:1)*(1/0);s+=Math.pow(2,n),o-=h}return(d?-1:1)*s*Math.pow(2,o-n)},i.write=function(t,e,i,n,r,o){var s,a,l,h=8*o-r-1,c=(1<<h)-1,u=c>>1,p=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:o-1,f=n?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=c):(s=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-s))<1&&(s--,l*=2),e+=s+u>=1?p/l:p*Math.pow(2,1-u),e*l>=2&&(s++,l/=2),s+u>=c?(a=0,s=c):s+u>=1?(a=(e*l-1)*Math.pow(2,r),s+=u):(a=e*Math.pow(2,u-1)*Math.pow(2,r),s=0));r>=8;t[i+d]=255&a,d+=f,a/=256,r-=8);for(s=s<<r|a,h+=r;h>0;t[i+d]=255&s,d+=f,s/=256,h-=8);t[i+d-f]|=128*g}},{}],53:[function(t,e,i){"function"==typeof Object.create?e.exports=function(t,e){t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(t,e){t.super_=e;var i=function(){};i.prototype=e.prototype,t.prototype=new i,t.prototype.constructor=t}},{}],54:[function(t,e,i){e.exports=function(t){return!(null==t||!(t._isBuffer||t.constructor&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)))}},{}],55:[function(t,e,i){(function(i){function n(t,e,a,l){"function"==typeof e?(a=e,e={}):e&&"object"==typeof e||(e={mode:e});var h=e.mode,c=e.fs||o;void 0===h&&(h=s&~i.umask()),l||(l=null);var u=a||function(){};t=r.resolve(t),c.mkdir(t,h,function(i){if(!i)return l=l||t,u(null,l);switch(i.code){case"ENOENT":n(r.dirname(t),e,function(i,r){i?u(i,r):n(t,e,u,r)});break;default:c.stat(t,function(t,e){t||!e.isDirectory()?u(i,l):u(null,l)})}})}var r=t("path"),o=t("fs"),s=parseInt("0777",8);e.exports=n.mkdirp=n.mkdirP=n,n.sync=function a(t,e,n){e&&"object"==typeof e||(e={mode:e});var l=e.mode,h=e.fs||o;void 0===l&&(l=s&~i.umask()),n||(n=null),t=r.resolve(t);try{h.mkdirSync(t,l),n=n||t}catch(c){switch(c.code){case"ENOENT":n=a(r.dirname(t),e,n),a(t,e,n);break;default:var u;try{u=h.statSync(t)}catch(p){throw c}if(!u.isDirectory())throw c}}return n}}).call(this,t("_process"))},{_process:58,fs:43,path:43}],56:[function(t,e,i){i.endianness=function(){return"LE"},i.hostname=function(){return"undefined"!=typeof location?location.hostname:""},i.loadavg=function(){return[]},i.uptime=function(){return 0},i.freemem=function(){return Number.MAX_VALUE},i.totalmem=function(){return Number.MAX_VALUE},i.cpus=function(){return[]},i.type=function(){return"Browser"},i.release=function(){return"undefined"!=typeof navigator?navigator.appVersion:""},i.networkInterfaces=i.getNetworkInterfaces=function(){return{}},i.arch=function(){return"javascript"},i.platform=function(){return"browser"},i.tmpdir=i.tmpDir=function(){return"/tmp"},i.EOL="\n"},{}],57:[function(t,e,i){(function(t){"use strict";function i(e,i,n,r){if("function"!=typeof e)throw new TypeError('"callback" argument must be a function');var o,s,a=arguments.length;switch(a){case 0:case 1:return t.nextTick(e);case 2:return t.nextTick(function(){e.call(null,i)});case 3:return t.nextTick(function(){e.call(null,i,n)});case 4:return t.nextTick(function(){e.call(null,i,n,r)});default:for(o=new Array(a-1),s=0;s<o.length;)o[s++]=arguments[s];return t.nextTick(function(){e.apply(null,o)})}}!t.version||0===t.version.indexOf("v0.")||0===t.version.indexOf("v1.")&&0!==t.version.indexOf("v1.8.")?e.exports=i:e.exports=t.nextTick}).call(this,t("_process"))},{_process:58}],58:[function(t,e,i){function n(){c&&a&&(c=!1,a.length?h=a.concat(h):u=-1,h.length&&r())}function r(){if(!c){var t=setTimeout(n);c=!0;for(var e=h.length;e;){for(a=h,h=[];++u<e;)a&&a[u].run();u=-1,e=h.length}a=null,c=!1,clearTimeout(t)}}function o(t,e){this.fun=t,this.array=e}function s(){}var a,l=e.exports={},h=[],c=!1,u=-1;l.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var i=1;i<arguments.length;i++)e[i-1]=arguments[i];h.push(new o(t,e)),1!==h.length||c||setTimeout(r,0)},o.prototype.run=function(){this.fun.apply(null,this.array)},l.title="browser",l.browser=!0,l.env={},l.argv=[],l.version="",l.versions={},l.on=s,l.addListener=s,l.once=s,l.off=s,l.removeListener=s,l.removeAllListeners=s,l.emit=s,l.binding=function(t){throw new Error("process.binding is not supported")},l.cwd=function(){return"/"},l.chdir=function(t){throw new Error("process.chdir is not supported")},l.umask=function(){return 0}},{}],59:[function(t,e,i){function n(){r.call(this)}e.exports=n;var r=t("events").EventEmitter,o=t("inherits");o(n,r),n.Readable=t("readable-stream/readable.js"),n.Writable=t("readable-stream/writable.js"),n.Duplex=t("readable-stream/duplex.js"),n.Transform=t("readable-stream/transform.js"),n.PassThrough=t("readable-stream/passthrough.js"),n.Stream=n,n.prototype.pipe=function(t,e){function i(e){t.writable&&!1===t.write(e)&&h.pause&&h.pause()}function n(){h.readable&&h.resume&&h.resume()}function o(){c||(c=!0,t.end())}function s(){c||(c=!0,"function"==typeof t.destroy&&t.destroy())}function a(t){if(l(),0===r.listenerCount(this,"error"))throw t}function l(){h.removeListener("data",i),t.removeListener("drain",n),h.removeListener("end",o),h.removeListener("close",s),h.removeListener("error",a),t.removeListener("error",a),h.removeListener("end",l),h.removeListener("close",l),t.removeListener("close",l)}var h=this;h.on("data",i),t.on("drain",n),t._isStdio||e&&e.end===!1||(h.on("end",o),h.on("close",s));var c=!1;return h.on("error",a),t.on("error",a),h.on("end",l),h.on("close",l),t.on("close",l),t.emit("pipe",h),t}},{events:50,inherits:53,"readable-stream/duplex.js":61,"readable-stream/passthrough.js":67,"readable-stream/readable.js":68,"readable-stream/transform.js":69,"readable-stream/writable.js":70}],60:[function(t,e,i){arguments[4][46][0].apply(i,arguments)},{dup:46}],61:[function(t,e,i){e.exports=t("./lib/_stream_duplex.js")},{"./lib/_stream_duplex.js":62}],62:[function(t,e,i){"use strict";function n(t){return this instanceof n?(h.call(this,t),c.call(this,t),t&&t.readable===!1&&(this.readable=!1),t&&t.writable===!1&&(this.writable=!1),this.allowHalfOpen=!0,t&&t.allowHalfOpen===!1&&(this.allowHalfOpen=!1),void this.once("end",r)):new n(t)}function r(){this.allowHalfOpen||this._writableState.ended||a(o,this)}function o(t){t.end()}var s=Object.keys||function(t){var e=[];for(var i in t)e.push(i);return e};e.exports=n;var a=t("process-nextick-args"),l=t("core-util-is");l.inherits=t("inherits");var h=t("./_stream_readable"),c=t("./_stream_writable");l.inherits(n,h);for(var u=s(c.prototype),p=0;p<u.length;p++){var d=u[p];n.prototype[d]||(n.prototype[d]=c.prototype[d])}},{"./_stream_readable":64,"./_stream_writable":66,"core-util-is":47,inherits:53,"process-nextick-args":57}],63:[function(t,e,i){"use strict";function n(t){return this instanceof n?void r.call(this,t):new n(t)}e.exports=n;var r=t("./_stream_transform"),o=t("core-util-is");o.inherits=t("inherits"),o.inherits(n,r),n.prototype._transform=function(t,e,i){i(null,t)}},{"./_stream_transform":65,"core-util-is":47,inherits:53}],64:[function(t,e,i){(function(i){"use strict";function n(t,e,i){return N?t.prependListener(e,i):void(t._events&&t._events[e]?A(t._events[e])?t._events[e].unshift(i):t._events[e]=[i,t._events[e]]:t.on(e,i))}function r(e,i){F=F||t("./_stream_duplex"),e=e||{},this.objectMode=!!e.objectMode,i instanceof F&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var n=e.highWaterMark,r=this.objectMode?16:16384;this.highWaterMark=n||0===n?n:r,this.highWaterMark=~~this.highWaterMark,this.buffer=[],this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(B||(B=t("string_decoder/").StringDecoder),this.decoder=new B(e.encoding),this.encoding=e.encoding)}function o(e){return F=F||t("./_stream_duplex"),this instanceof o?(this._readableState=new r(e,this),this.readable=!0,e&&"function"==typeof e.read&&(this._read=e.read),void D.call(this)):new o(e)}function s(t,e,i,n,r){var o=c(e,i);if(o)t.emit("error",o);else if(null===i)e.reading=!1,u(t,e);else if(e.objectMode||i&&i.length>0)if(e.ended&&!r){var s=new Error("stream.push() after EOF");t.emit("error",s)}else if(e.endEmitted&&r){var l=new Error("stream.unshift() after end event");t.emit("error",l)}else{var h;!e.decoder||r||n||(i=e.decoder.write(i),h=!e.objectMode&&0===i.length),r||(e.reading=!1),h||(e.flowing&&0===e.length&&!e.sync?(t.emit("data",i),t.read(0)):(e.length+=e.objectMode?1:i.length,r?e.buffer.unshift(i):e.buffer.push(i),e.needReadable&&p(t))),f(t,e)}else r||(e.reading=!1);return a(e)}function a(t){return!t.ended&&(t.needReadable||t.length<t.highWaterMark||0===t.length)}function l(t){return t>=j?t=j:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}function h(t,e){return 0===e.length&&e.ended?0:e.objectMode?0===t?0:1:null===t||isNaN(t)?e.flowing&&e.buffer.length?e.buffer[0].length:e.length:t<=0?0:(t>e.highWaterMark&&(e.highWaterMark=l(t)),t>e.length?e.ended?e.length:(e.needReadable=!0,0):t)}function c(t,e){var i=null;return P.isBuffer(e)||"string"==typeof e||null===e||void 0===e||t.objectMode||(i=new TypeError("Invalid non-string/buffer chunk")),i}function u(t,e){if(!e.ended){if(e.decoder){var i=e.decoder.end();i&&i.length&&(e.buffer.push(i),e.length+=e.objectMode?1:i.length)}e.ended=!0,p(t)}}function p(t){var e=t._readableState;e.needReadable=!1,e.emittedReadable||(O("emitReadable",e.flowing),e.emittedReadable=!0,e.sync?_(d,t):d(t))}function d(t){O("emit readable"),t.emit("readable"),x(t)}function f(t,e){e.readingMore||(e.readingMore=!0,_(g,t,e))}function g(t,e){for(var i=e.length;!e.reading&&!e.flowing&&!e.ended&&e.length<e.highWaterMark&&(O("maybeReadMore read 0"),t.read(0),i!==e.length);)i=e.length;e.readingMore=!1}function m(t){return function(){var e=t._readableState;O("pipeOnDrain",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&E(t,"data")&&(e.flowing=!0,x(t))}}function v(t){O("readable nexttick read 0"),t.read(0)}function y(t,e){e.resumeScheduled||(e.resumeScheduled=!0,_(b,t,e))}function b(t,e){e.reading||(O("resume read 0"),t.read(0)),e.resumeScheduled=!1,t.emit("resume"),x(t),e.flowing&&!e.reading&&t.read(0)}function x(t){var e=t._readableState;if(O("flow",e.flowing),e.flowing)do var i=t.read();while(null!==i&&e.flowing)}function w(t,e){var i,n=e.buffer,r=e.length,o=!!e.decoder,s=!!e.objectMode;if(0===n.length)return null;if(0===r)i=null;else if(s)i=n.shift();else if(!t||t>=r)i=o?n.join(""):1===n.length?n[0]:P.concat(n,r),n.length=0;else if(t<n[0].length){var a=n[0];i=a.slice(0,t),n[0]=a.slice(t)}else if(t===n[0].length)i=n.shift();else{i=o?"":M.allocUnsafe(t);for(var l=0,h=0,c=n.length;h<c&&l<t;h++){var u=n[0],p=Math.min(t-l,u.length);o?i+=u.slice(0,p):u.copy(i,l,0,p),p<u.length?n[0]=u.slice(p):n.shift(),l+=p}}return i}function S(t){var e=t._readableState;if(e.length>0)throw new Error('"endReadable()" called on non-empty stream');e.endEmitted||(e.ended=!0,_(T,e,t))}function T(t,e){t.endEmitted||0!==t.length||(t.endEmitted=!0,e.readable=!1,e.emit("end"))}function k(t,e){for(var i=0,n=t.length;i<n;i++)e(t[i],i)}function C(t,e){for(var i=0,n=t.length;i<n;i++)if(t[i]===e)return i;return-1}e.exports=o;var _=t("process-nextick-args"),A=t("isarray");o.ReadableState=r;var D,L=t("events").EventEmitter,E=function(t,e){return t.listeners(e).length};!function(){try{D=t("stream")}catch(e){}finally{D||(D=t("events").EventEmitter)}}();var P=t("buffer").Buffer,M=t("buffer-shims"),I=t("core-util-is");I.inherits=t("inherits");var R=t("util"),O=void 0;O=R&&R.debuglog?R.debuglog("stream"):function(){};var B;I.inherits(o,D);var F,F,N="function"==typeof L.prototype.prependListener;o.prototype.push=function(t,e){var i=this._readableState;return i.objectMode||"string"!=typeof t||(e=e||i.defaultEncoding,e!==i.encoding&&(t=M.from(t,e),e="")),s(this,i,t,e,!1)},o.prototype.unshift=function(t){var e=this._readableState;return s(this,e,t,"",!0)},o.prototype.isPaused=function(){return this._readableState.flowing===!1},o.prototype.setEncoding=function(e){return B||(B=t("string_decoder/").StringDecoder),this._readableState.decoder=new B(e),this._readableState.encoding=e,this};var j=8388608;o.prototype.read=function(t){O("read",t);var e=this._readableState,i=t;if(("number"!=typeof t||t>0)&&(e.emittedReadable=!1),0===t&&e.needReadable&&(e.length>=e.highWaterMark||e.ended))return O("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?S(this):p(this),null;if(t=h(t,e),0===t&&e.ended)return 0===e.length&&S(this),null;var n=e.needReadable;O("need readable",n),(0===e.length||e.length-t<e.highWaterMark)&&(n=!0,O("length less than watermark",n)),(e.ended||e.reading)&&(n=!1,O("reading or ended",n)),n&&(O("do read"),e.reading=!0,e.sync=!0,0===e.length&&(e.needReadable=!0),this._read(e.highWaterMark),e.sync=!1),n&&!e.reading&&(t=h(i,e));var r;return r=t>0?w(t,e):null,null===r&&(e.needReadable=!0,t=0),e.length-=t,0!==e.length||e.ended||(e.needReadable=!0),i!==t&&e.ended&&0===e.length&&S(this),null!==r&&this.emit("data",r),r},o.prototype._read=function(t){this.emit("error",new Error("not implemented"))},o.prototype.pipe=function(t,e){function r(t){O("onunpipe"),t===p&&s()}function o(){O("onend"),t.end()}function s(){O("cleanup"),t.removeListener("close",h),t.removeListener("finish",c),t.removeListener("drain",v),t.removeListener("error",l),t.removeListener("unpipe",r),p.removeListener("end",o),p.removeListener("end",s),p.removeListener("data",a),y=!0,!d.awaitDrain||t._writableState&&!t._writableState.needDrain||v()}function a(e){O("ondata");var i=t.write(e);!1===i&&((1===d.pipesCount&&d.pipes===t||d.pipesCount>1&&C(d.pipes,t)!==-1)&&!y&&(O("false write response, pause",p._readableState.awaitDrain),p._readableState.awaitDrain++),p.pause())}function l(e){O("onerror",e),u(),t.removeListener("error",l),0===E(t,"error")&&t.emit("error",e)}function h(){t.removeListener("finish",c),u()}function c(){O("onfinish"),t.removeListener("close",h),u()}function u(){O("unpipe"),p.unpipe(t)}var p=this,d=this._readableState;switch(d.pipesCount){case 0:d.pipes=t;break;case 1:d.pipes=[d.pipes,t];break;default:d.pipes.push(t)}d.pipesCount+=1,O("pipe count=%d opts=%j",d.pipesCount,e);var f=(!e||e.end!==!1)&&t!==i.stdout&&t!==i.stderr,g=f?o:s;d.endEmitted?_(g):p.once("end",g),t.on("unpipe",r);var v=m(p);t.on("drain",v);var y=!1;return p.on("data",a),n(t,"error",l),t.once("close",h),t.once("finish",c),t.emit("pipe",p),d.flowing||(O("pipe resume"),p.resume()),t},o.prototype.unpipe=function(t){var e=this._readableState;if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes?this:(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this),this);if(!t){var i=e.pipes,n=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var r=0;r<n;r++)i[r].emit("unpipe",this);return this}var o=C(e.pipes,t);return o===-1?this:(e.pipes.splice(o,1),e.pipesCount-=1,1===e.pipesCount&&(e.pipes=e.pipes[0]),t.emit("unpipe",this),this)},o.prototype.on=function(t,e){var i=D.prototype.on.call(this,t,e);if("data"===t&&!1!==this._readableState.flowing&&this.resume(),"readable"===t&&!this._readableState.endEmitted){var n=this._readableState;n.readableListening||(n.readableListening=!0,n.emittedReadable=!1,n.needReadable=!0,n.reading?n.length&&p(this,n):_(v,this))}return i},o.prototype.addListener=o.prototype.on,o.prototype.resume=function(){var t=this._readableState;return t.flowing||(O("resume"),t.flowing=!0,y(this,t)),this},o.prototype.pause=function(){return O("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(O("pause"),this._readableState.flowing=!1,this.emit("pause")),this},o.prototype.wrap=function(t){var e=this._readableState,i=!1,n=this;t.on("end",function(){if(O("wrapped end"),e.decoder&&!e.ended){var t=e.decoder.end();t&&t.length&&n.push(t)}n.push(null)}),t.on("data",function(r){if(O("wrapped data"),e.decoder&&(r=e.decoder.write(r)),(!e.objectMode||null!==r&&void 0!==r)&&(e.objectMode||r&&r.length)){var o=n.push(r);o||(i=!0,t.pause())}});for(var r in t)void 0===this[r]&&"function"==typeof t[r]&&(this[r]=function(e){return function(){return t[e].apply(t,arguments)}}(r));var o=["error","close","destroy","pause","resume"];return k(o,function(e){t.on(e,n.emit.bind(n,e))}),n._read=function(e){O("wrapped _read",e),i&&(i=!1,t.resume())},n},o._fromList=w}).call(this,t("_process"))},{"./_stream_duplex":62,_process:58,buffer:45,"buffer-shims":44,"core-util-is":47,events:50,inherits:53,isarray:60,"process-nextick-args":57,"string_decoder/":71,util:41}],65:[function(t,e,i){"use strict";function n(t){this.afterTransform=function(e,i){return r(t,e,i)},this.needTransform=!1,this.transforming=!1,this.writecb=null,this.writechunk=null,this.writeencoding=null}function r(t,e,i){var n=t._transformState;n.transforming=!1;var r=n.writecb;if(!r)return t.emit("error",new Error("no writecb in Transform class"));n.writechunk=null,n.writecb=null,null!==i&&void 0!==i&&t.push(i),r(e);var o=t._readableState;o.reading=!1,(o.needReadable||o.length<o.highWaterMark)&&t._read(o.highWaterMark)}function o(t){if(!(this instanceof o))return new o(t);a.call(this,t),this._transformState=new n(this);var e=this;this._readableState.needReadable=!0,this._readableState.sync=!1,t&&("function"==typeof t.transform&&(this._transform=t.transform),"function"==typeof t.flush&&(this._flush=t.flush)),this.once("prefinish",function(){"function"==typeof this._flush?this._flush(function(t){s(e,t)}):s(e)})}function s(t,e){if(e)return t.emit("error",e);var i=t._writableState,n=t._transformState;if(i.length)throw new Error("Calling transform done when ws.length != 0");if(n.transforming)throw new Error("Calling transform done when still transforming");return t.push(null)}e.exports=o;var a=t("./_stream_duplex"),l=t("core-util-is");l.inherits=t("inherits"),l.inherits(o,a),o.prototype.push=function(t,e){return this._transformState.needTransform=!1,a.prototype.push.call(this,t,e)},o.prototype._transform=function(t,e,i){throw new Error("Not implemented")},o.prototype._write=function(t,e,i){var n=this._transformState;if(n.writecb=i,n.writechunk=t,n.writeencoding=e,!n.transforming){var r=this._readableState;(n.needTransform||r.needReadable||r.length<r.highWaterMark)&&this._read(r.highWaterMark)}},o.prototype._read=function(t){var e=this._transformState;null!==e.writechunk&&e.writecb&&!e.transforming?(e.transforming=!0,this._transform(e.writechunk,e.writeencoding,e.afterTransform)):e.needTransform=!0}},{"./_stream_duplex":62,"core-util-is":47,inherits:53}],66:[function(t,e,i){(function(i){"use strict";function n(){}function r(t,e,i){this.chunk=t,this.encoding=e,this.callback=i,this.next=null}function o(e,i){E=E||t("./_stream_duplex"),
e=e||{},this.objectMode=!!e.objectMode,i instanceof E&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var n=e.highWaterMark,r=this.objectMode?16:16384;this.highWaterMark=n||0===n?n:r,this.highWaterMark=~~this.highWaterMark,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1;var o=e.decodeStrings===!1;this.decodeStrings=!o,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(t){f(i,t)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new S(this)}function s(e){return E=E||t("./_stream_duplex"),this instanceof s||this instanceof E?(this._writableState=new o(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev)),void _.call(this)):new s(e)}function a(t,e){var i=new Error("write after end");t.emit("error",i),T(e,i)}function l(t,e,i,n){var r=!0,o=!1;return null===i?o=new TypeError("May not write null values to stream"):D.isBuffer(i)||"string"==typeof i||void 0===i||e.objectMode||(o=new TypeError("Invalid non-string/buffer chunk")),o&&(t.emit("error",o),T(n,o),r=!1),r}function h(t,e,i){return t.objectMode||t.decodeStrings===!1||"string"!=typeof e||(e=L.from(e,i)),e}function c(t,e,i,n,o){i=h(e,i,n),D.isBuffer(i)&&(n="buffer");var s=e.objectMode?1:i.length;e.length+=s;var a=e.length<e.highWaterMark;if(a||(e.needDrain=!0),e.writing||e.corked){var l=e.lastBufferedRequest;e.lastBufferedRequest=new r(i,n,o),l?l.next=e.lastBufferedRequest:e.bufferedRequest=e.lastBufferedRequest,e.bufferedRequestCount+=1}else u(t,e,!1,s,i,n,o);return a}function u(t,e,i,n,r,o,s){e.writelen=n,e.writecb=s,e.writing=!0,e.sync=!0,i?t._writev(r,e.onwrite):t._write(r,o,e.onwrite),e.sync=!1}function p(t,e,i,n,r){--e.pendingcb,i?T(r,n):r(n),t._writableState.errorEmitted=!0,t.emit("error",n)}function d(t){t.writing=!1,t.writecb=null,t.length-=t.writelen,t.writelen=0}function f(t,e){var i=t._writableState,n=i.sync,r=i.writecb;if(d(i),e)p(t,i,n,e,r);else{var o=y(i);o||i.corked||i.bufferProcessing||!i.bufferedRequest||v(t,i),n?k(g,t,i,o,r):g(t,i,o,r)}}function g(t,e,i,n){i||m(t,e),e.pendingcb--,n(),x(t,e)}function m(t,e){0===e.length&&e.needDrain&&(e.needDrain=!1,t.emit("drain"))}function v(t,e){e.bufferProcessing=!0;var i=e.bufferedRequest;if(t._writev&&i&&i.next){var n=e.bufferedRequestCount,r=new Array(n),o=e.corkedRequestsFree;o.entry=i;for(var s=0;i;)r[s]=i,i=i.next,s+=1;u(t,e,!0,e.length,r,"",o.finish),e.pendingcb++,e.lastBufferedRequest=null,o.next?(e.corkedRequestsFree=o.next,o.next=null):e.corkedRequestsFree=new S(e)}else{for(;i;){var a=i.chunk,l=i.encoding,h=i.callback,c=e.objectMode?1:a.length;if(u(t,e,!1,c,a,l,h),i=i.next,e.writing)break}null===i&&(e.lastBufferedRequest=null)}e.bufferedRequestCount=0,e.bufferedRequest=i,e.bufferProcessing=!1}function y(t){return t.ending&&0===t.length&&null===t.bufferedRequest&&!t.finished&&!t.writing}function b(t,e){e.prefinished||(e.prefinished=!0,t.emit("prefinish"))}function x(t,e){var i=y(e);return i&&(0===e.pendingcb?(b(t,e),e.finished=!0,t.emit("finish")):b(t,e)),i}function w(t,e,i){e.ending=!0,x(t,e),i&&(e.finished?T(i):t.once("finish",i)),e.ended=!0,t.writable=!1}function S(t){var e=this;this.next=null,this.entry=null,this.finish=function(i){var n=e.entry;for(e.entry=null;n;){var r=n.callback;t.pendingcb--,r(i),n=n.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}}e.exports=s;var T=t("process-nextick-args"),k=!i.browser&&["v0.10","v0.9."].indexOf(i.version.slice(0,5))>-1?setImmediate:T;s.WritableState=o;var C=t("core-util-is");C.inherits=t("inherits");var _,A={deprecate:t("util-deprecate")};!function(){try{_=t("stream")}catch(e){}finally{_||(_=t("events").EventEmitter)}}();var D=t("buffer").Buffer,L=t("buffer-shims");C.inherits(s,_);var E;o.prototype.getBuffer=function(){for(var t=this.bufferedRequest,e=[];t;)e.push(t),t=t.next;return e},function(){try{Object.defineProperty(o.prototype,"buffer",{get:A.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.")})}catch(t){}}();var E;s.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},s.prototype.write=function(t,e,i){var r=this._writableState,o=!1;return"function"==typeof e&&(i=e,e=null),D.isBuffer(t)?e="buffer":e||(e=r.defaultEncoding),"function"!=typeof i&&(i=n),r.ended?a(this,i):l(this,r,t,i)&&(r.pendingcb++,o=c(this,r,t,e,i)),o},s.prototype.cork=function(){var t=this._writableState;t.corked++},s.prototype.uncork=function(){var t=this._writableState;t.corked&&(t.corked--,t.writing||t.corked||t.finished||t.bufferProcessing||!t.bufferedRequest||v(this,t))},s.prototype.setDefaultEncoding=function(t){if("string"==typeof t&&(t=t.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((t+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+t);return this._writableState.defaultEncoding=t,this},s.prototype._write=function(t,e,i){i(new Error("not implemented"))},s.prototype._writev=null,s.prototype.end=function(t,e,i){var n=this._writableState;"function"==typeof t?(i=t,t=null,e=null):"function"==typeof e&&(i=e,e=null),null!==t&&void 0!==t&&this.write(t,e),n.corked&&(n.corked=1,this.uncork()),n.ending||n.finished||w(this,n,i)}}).call(this,t("_process"))},{"./_stream_duplex":62,_process:58,buffer:45,"buffer-shims":44,"core-util-is":47,events:50,inherits:53,"process-nextick-args":57,"util-deprecate":73}],67:[function(t,e,i){e.exports=t("./lib/_stream_passthrough.js")},{"./lib/_stream_passthrough.js":63}],68:[function(t,e,i){(function(n){var r=function(){try{return t("stream")}catch(e){}}();i=e.exports=t("./lib/_stream_readable.js"),i.Stream=r||i,i.Readable=i,i.Writable=t("./lib/_stream_writable.js"),i.Duplex=t("./lib/_stream_duplex.js"),i.Transform=t("./lib/_stream_transform.js"),i.PassThrough=t("./lib/_stream_passthrough.js"),!n.browser&&"disable"===n.env.READABLE_STREAM&&r&&(e.exports=r)}).call(this,t("_process"))},{"./lib/_stream_duplex.js":62,"./lib/_stream_passthrough.js":63,"./lib/_stream_readable.js":64,"./lib/_stream_transform.js":65,"./lib/_stream_writable.js":66,_process:58}],69:[function(t,e,i){e.exports=t("./lib/_stream_transform.js")},{"./lib/_stream_transform.js":65}],70:[function(t,e,i){e.exports=t("./lib/_stream_writable.js")},{"./lib/_stream_writable.js":66}],71:[function(t,e,i){function n(t){if(t&&!l(t))throw new Error("Unknown encoding: "+t)}function r(t){return t.toString(this.encoding)}function o(t){this.charReceived=t.length%2,this.charLength=this.charReceived?2:0}function s(t){this.charReceived=t.length%3,this.charLength=this.charReceived?3:0}var a=t("buffer").Buffer,l=a.isEncoding||function(t){switch(t&&t.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}},h=i.StringDecoder=function(t){switch(this.encoding=(t||"utf8").toLowerCase().replace(/[-_]/,""),n(t),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=o;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=s;break;default:return void(this.write=r)}this.charBuffer=new a(6),this.charReceived=0,this.charLength=0};h.prototype.write=function(t){for(var e="";this.charLength;){var i=t.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:t.length;if(t.copy(this.charBuffer,this.charReceived,0,i),this.charReceived+=i,this.charReceived<this.charLength)return"";t=t.slice(i,t.length),e=this.charBuffer.slice(0,this.charLength).toString(this.encoding);var n=e.charCodeAt(e.length-1);if(!(n>=55296&&n<=56319)){if(this.charReceived=this.charLength=0,0===t.length)return e;break}this.charLength+=this.surrogateSize,e=""}this.detectIncompleteChar(t);var r=t.length;this.charLength&&(t.copy(this.charBuffer,0,t.length-this.charReceived,r),r-=this.charReceived),e+=t.toString(this.encoding,0,r);var r=e.length-1,n=e.charCodeAt(r);if(n>=55296&&n<=56319){var o=this.surrogateSize;return this.charLength+=o,this.charReceived+=o,this.charBuffer.copy(this.charBuffer,o,0,o),t.copy(this.charBuffer,0,0,o),e.substring(0,r)}return e},h.prototype.detectIncompleteChar=function(t){for(var e=t.length>=3?3:t.length;e>0;e--){var i=t[t.length-e];if(1==e&&i>>5==6){this.charLength=2;break}if(e<=2&&i>>4==14){this.charLength=3;break}if(e<=3&&i>>3==30){this.charLength=4;break}}this.charReceived=e},h.prototype.end=function(t){var e="";if(t&&t.length&&(e=this.write(t)),this.charReceived){var i=this.charReceived,n=this.charBuffer,r=this.encoding;e+=n.slice(0,i).toString(r)}return e}},{buffer:45}],72:[function(t,e,i){function n(t){return t.getUTCFullYear()+"-"+r(t.getUTCMonth()+1)+"-"+r(t.getUTCDate())+"T"+r(t.getUTCHours())+":"+r(t.getUTCMinutes())+":"+r(t.getUTCSeconds())+"."+String((t.getUTCMilliseconds()/1e3).toFixed(3)).slice(2,5)+"Z"}function r(t){var e=t.toString();return 1===e.length?"0"+e:e}e.exports=n},{}],73:[function(t,e,i){(function(t){function i(t,e){function i(){if(!r){if(n("throwDeprecation"))throw new Error(e);n("traceDeprecation")?console.trace(e):console.warn(e),r=!0}return t.apply(this,arguments)}if(n("noDeprecation"))return t;var r=!1;return i}function n(e){try{if(!t.localStorage)return!1}catch(i){return!1}var n=t.localStorage[e];return null!=n&&"true"===String(n).toLowerCase()}e.exports=i}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],74:[function(t,e,i){e.exports=function(t){return t&&"object"==typeof t&&"function"==typeof t.copy&&"function"==typeof t.fill&&"function"==typeof t.readUInt8}},{}],75:[function(t,e,i){(function(e,n){function r(t,e){var n={seen:[],stylize:s};return arguments.length>=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),g(e)?n.showHidden=e:e&&i._extend(n,e),w(n.showHidden)&&(n.showHidden=!1),w(n.depth)&&(n.depth=2),w(n.colors)&&(n.colors=!1),w(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=o),l(n,t,n.depth)}function o(t,e){var i=r.styles[e];return i?"["+r.colors[i][0]+"m"+t+"["+r.colors[i][1]+"m":t}function s(t,e){return t}function a(t){var e={};return t.forEach(function(t,i){e[t]=!0}),e}function l(t,e,n){if(t.customInspect&&e&&_(e.inspect)&&e.inspect!==i.inspect&&(!e.constructor||e.constructor.prototype!==e)){var r=e.inspect(n,t);return b(r)||(r=l(t,r,n)),r}var o=h(t,e);if(o)return o;var s=Object.keys(e),g=a(s);if(t.showHidden&&(s=Object.getOwnPropertyNames(e)),C(e)&&(s.indexOf("message")>=0||s.indexOf("description")>=0))return c(e);if(0===s.length){if(_(e)){var m=e.name?": "+e.name:"";return t.stylize("[Function"+m+"]","special")}if(S(e))return t.stylize(RegExp.prototype.toString.call(e),"regexp");if(k(e))return t.stylize(Date.prototype.toString.call(e),"date");if(C(e))return c(e)}var v="",y=!1,x=["{","}"];if(f(e)&&(y=!0,x=["[","]"]),_(e)){var w=e.name?": "+e.name:"";v=" [Function"+w+"]"}if(S(e)&&(v=" "+RegExp.prototype.toString.call(e)),k(e)&&(v=" "+Date.prototype.toUTCString.call(e)),C(e)&&(v=" "+c(e)),0===s.length&&(!y||0==e.length))return x[0]+v+x[1];if(n<0)return S(e)?t.stylize(RegExp.prototype.toString.call(e),"regexp"):t.stylize("[Object]","special");t.seen.push(e);var T;return T=y?u(t,e,n,g,s):s.map(function(i){return p(t,e,n,g,i,y)}),t.seen.pop(),d(T,v,x)}function h(t,e){if(w(e))return t.stylize("undefined","undefined");if(b(e)){var i="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return t.stylize(i,"string")}return y(e)?t.stylize(""+e,"number"):g(e)?t.stylize(""+e,"boolean"):m(e)?t.stylize("null","null"):void 0}function c(t){return"["+Error.prototype.toString.call(t)+"]"}function u(t,e,i,n,r){for(var o=[],s=0,a=e.length;s<a;++s)P(e,String(s))?o.push(p(t,e,i,n,String(s),!0)):o.push("");return r.forEach(function(r){r.match(/^\d+$/)||o.push(p(t,e,i,n,r,!0))}),o}function p(t,e,i,n,r,o){var s,a,h;if(h=Object.getOwnPropertyDescriptor(e,r)||{value:e[r]},h.get?a=h.set?t.stylize("[Getter/Setter]","special"):t.stylize("[Getter]","special"):h.set&&(a=t.stylize("[Setter]","special")),P(n,r)||(s="["+r+"]"),a||(t.seen.indexOf(h.value)<0?(a=m(i)?l(t,h.value,null):l(t,h.value,i-1),a.indexOf("\n")>-1&&(a=o?a.split("\n").map(function(t){return"  "+t}).join("\n").substr(2):"\n"+a.split("\n").map(function(t){return"   "+t}).join("\n"))):a=t.stylize("[Circular]","special")),w(s)){if(o&&r.match(/^\d+$/))return a;s=JSON.stringify(""+r),s.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.substr(1,s.length-2),s=t.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=t.stylize(s,"string"))}return s+": "+a}function d(t,e,i){var n=0,r=t.reduce(function(t,e){return n++,e.indexOf("\n")>=0&&n++,t+e.replace(/\u001b\[\d\d?m/g,"").length+1},0);return r>60?i[0]+(""===e?"":e+"\n ")+" "+t.join(",\n  ")+" "+i[1]:i[0]+e+" "+t.join(", ")+" "+i[1]}function f(t){return Array.isArray(t)}function g(t){return"boolean"==typeof t}function m(t){return null===t}function v(t){return null==t}function y(t){return"number"==typeof t}function b(t){return"string"==typeof t}function x(t){return"symbol"==typeof t}function w(t){return void 0===t}function S(t){return T(t)&&"[object RegExp]"===D(t)}function T(t){return"object"==typeof t&&null!==t}function k(t){return T(t)&&"[object Date]"===D(t)}function C(t){return T(t)&&("[object Error]"===D(t)||t instanceof Error)}function _(t){return"function"==typeof t}function A(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||"undefined"==typeof t}function D(t){return Object.prototype.toString.call(t)}function L(t){return t<10?"0"+t.toString(10):t.toString(10)}function E(){var t=new Date,e=[L(t.getHours()),L(t.getMinutes()),L(t.getSeconds())].join(":");return[t.getDate(),O[t.getMonth()],e].join(" ")}function P(t,e){return Object.prototype.hasOwnProperty.call(t,e)}var M=/%[sdj%]/g;i.format=function(t){if(!b(t)){for(var e=[],i=0;i<arguments.length;i++)e.push(r(arguments[i]));return e.join(" ")}for(var i=1,n=arguments,o=n.length,s=String(t).replace(M,function(t){if("%%"===t)return"%";if(i>=o)return t;switch(t){case"%s":return String(n[i++]);case"%d":return Number(n[i++]);case"%j":try{return JSON.stringify(n[i++])}catch(e){return"[Circular]"}default:return t}}),a=n[i];i<o;a=n[++i])s+=m(a)||!T(a)?" "+a:" "+r(a);return s},i.deprecate=function(t,r){function o(){if(!s){if(e.throwDeprecation)throw new Error(r);e.traceDeprecation?console.trace(r):console.error(r),s=!0}return t.apply(this,arguments)}if(w(n.process))return function(){return i.deprecate(t,r).apply(this,arguments)};if(e.noDeprecation===!0)return t;var s=!1;return o};var I,R={};i.debuglog=function(t){if(w(I)&&(I=e.env.NODE_DEBUG||""),t=t.toUpperCase(),!R[t])if(new RegExp("\\b"+t+"\\b","i").test(I)){var n=e.pid;R[t]=function(){var e=i.format.apply(i,arguments);console.error("%s %d: %s",t,n,e)}}else R[t]=function(){};return R[t]},i.inspect=r,r.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},r.styles={special:"cyan",number:"yellow","boolean":"yellow",undefined:"grey","null":"bold",string:"green",date:"magenta",regexp:"red"},i.isArray=f,i.isBoolean=g,i.isNull=m,i.isNullOrUndefined=v,i.isNumber=y,i.isString=b,i.isSymbol=x,i.isUndefined=w,i.isRegExp=S,i.isObject=T,i.isDate=k,i.isError=C,i.isFunction=_,i.isPrimitive=A,i.isBuffer=t("./support/isBuffer");var O=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];i.log=function(){console.log("%s - %s",E(),i.format.apply(i,arguments))},i.inherits=t("inherits"),i._extend=function(t,e){if(!e||!T(e))return t;for(var i=Object.keys(e),n=i.length;n--;)t[i[n]]=e[i[n]];return t}}).call(this,t("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./support/isBuffer":74,_process:58,inherits:53}]},{},[1]),function(){var t,e,i,n,r=[].slice,o=function(t,e){return function(){return t.apply(e,arguments)}},s={}.hasOwnProperty,a=function(t,e){function i(){this.constructor=t}for(var n in e)s.call(e,n)&&(t[n]=e[n]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},l=[].indexOf||function(t){for(var e=0,i=this.length;e<i;e++)if(e in this&&this[e]===t)return e;return-1};e=window.Morris={},t=jQuery,e.EventEmitter=function(){function t(){}return t.prototype.on=function(t,e){return null==this.handlers&&(this.handlers={}),null==this.handlers[t]&&(this.handlers[t]=[]),this.handlers[t].push(e),this},t.prototype.fire=function(){var t,e,i,n,o,s,a;if(i=arguments[0],t=2<=arguments.length?r.call(arguments,1):[],null!=this.handlers&&null!=this.handlers[i]){for(s=this.handlers[i],a=[],n=0,o=s.length;n<o;n++)e=s[n],a.push(e.apply(null,t));return a}},t}(),e.commas=function(t){var e,i,n,r;return null!=t?(n=t<0?"-":"",e=Math.abs(t),i=Math.floor(e).toFixed(0),n+=i.replace(/(?=(?:\d{3})+$)(?!^)/g,","),r=e.toString(),r.length>i.length&&(n+=r.slice(i.length)),n):"-"},e.pad2=function(t){return(t<10?"0":"")+t},e.Grid=function(i){function n(e){this.resizeHandler=o(this.resizeHandler,this);var i=this;if("string"==typeof e.element?this.el=t(document.getElementById(e.element)):this.el=t(e.element),null==this.el||0===this.el.length)throw new Error("Graph container element not found");"static"===this.el.css("position")&&this.el.css("position","relative"),this.options=t.extend({},this.gridDefaults,this.defaults||{},e),"string"==typeof this.options.units&&(this.options.postUnits=e.units),this.raphael=new Raphael(this.el[0]),this.elementWidth=null,this.elementHeight=null,this.dirty=!1,this.selectFrom=null,this.init&&this.init(),this.setData(this.options.data),this.el.bind("mousemove",function(t){var e,n,r,o,s;return n=i.el.offset(),s=t.pageX-n.left,i.selectFrom?(e=i.data[i.hitTest(Math.min(s,i.selectFrom))]._x,r=i.data[i.hitTest(Math.max(s,i.selectFrom))]._x,o=r-e,i.selectionRect.attr({x:e,width:o})):i.fire("hovermove",s,t.pageY-n.top)}),this.el.bind("mouseleave",function(t){return i.selectFrom&&(i.selectionRect.hide(),i.selectFrom=null),i.fire("hoverout")}),this.el.bind("touchstart touchmove touchend",function(t){var e,n;return n=t.originalEvent.touches[0]||t.originalEvent.changedTouches[0],e=i.el.offset(),i.fire("hovermove",n.pageX-e.left,n.pageY-e.top)}),this.el.bind("click",function(t){var e;return e=i.el.offset(),i.fire("gridclick",t.pageX-e.left,t.pageY-e.top)}),this.options.rangeSelect&&(this.selectionRect=this.raphael.rect(0,0,0,this.el.innerHeight()).attr({fill:this.options.rangeSelectColor,stroke:!1}).toBack().hide(),this.el.bind("mousedown",function(t){var e;return e=i.el.offset(),i.startRange(t.pageX-e.left)}),this.el.bind("mouseup",function(t){var e;return e=i.el.offset(),i.endRange(t.pageX-e.left),i.fire("hovermove",t.pageX-e.left,t.pageY-e.top)})),this.options.resize&&t(window).bind("resize",function(t){return null!=i.timeoutId&&window.clearTimeout(i.timeoutId),i.timeoutId=window.setTimeout(i.resizeHandler,100)}),this.el.css("-webkit-tap-highlight-color","rgba(0,0,0,0)"),this.postInit&&this.postInit()}return a(n,i),n.prototype.gridDefaults={dateFormat:null,axes:!0,grid:!0,gridLineColor:"#aaa",gridStrokeWidth:.5,gridTextColor:"#888",gridTextSize:12,gridTextFamily:"sans-serif",gridTextWeight:"normal",hideHover:!1,yLabelFormat:null,xLabelAngle:0,numLines:5,padding:25,parseTime:!0,postUnits:"",preUnits:"",ymax:"auto",ymin:"auto 0",goals:[],goalStrokeWidth:1,goalLineColors:["#666633","#999966","#cc6666","#663333"],events:[],eventStrokeWidth:1,eventLineColors:["#005a04","#ccffbb","#3a5f0b","#005502"],rangeSelect:null,rangeSelectColor:"#eef",resize:!1},n.prototype.setData=function(t,i){var n,r,o,s,a,l,h,c,u,p,d,f,g,m,v;return null==i&&(i=!0),this.options.data=t,null==t||0===t.length?(this.data=[],this.raphael.clear(),void(null!=this.hover&&this.hover.hide())):(f=this.cumulative?0:null,g=this.cumulative?0:null,this.options.goals.length>0&&(a=Math.min.apply(Math,this.options.goals),s=Math.max.apply(Math,this.options.goals),g=null!=g?Math.min(g,a):a,f=null!=f?Math.max(f,s):s),this.data=function(){var i,n,s;for(s=[],o=i=0,n=t.length;i<n;o=++i)h=t[o],l={src:h},l.label=h[this.options.xkey],this.options.parseTime?(l.x=e.parseDate(l.label),this.options.dateFormat?l.label=this.options.dateFormat(l.x):"number"==typeof l.label&&(l.label=new Date(l.label).toString())):(l.x=o,this.options.xLabelFormat&&(l.label=this.options.xLabelFormat(l))),u=0,l.y=function(){var t,e,i,n;for(i=this.options.ykeys,n=[],r=t=0,e=i.length;t<e;r=++t)d=i[r],m=h[d],"string"==typeof m&&(m=parseFloat(m)),null!=m&&"number"!=typeof m&&(m=null),null!=m&&(this.cumulative?u+=m:null!=f?(f=Math.max(m,f),g=Math.min(m,g)):f=g=m),this.cumulative&&null!=u&&(f=Math.max(u,f),g=Math.min(u,g)),n.push(m);return n}.call(this),s.push(l);return s}.call(this),this.options.parseTime&&(this.data=this.data.sort(function(t,e){return(t.x>e.x)-(e.x>t.x)})),this.xmin=this.data[0].x,this.xmax=this.data[this.data.length-1].x,this.events=[],this.options.events.length>0&&(this.options.parseTime?this.events=function(){var t,i,r,o;for(r=this.options.events,o=[],t=0,i=r.length;t<i;t++)n=r[t],o.push(e.parseDate(n));return o}.call(this):this.events=this.options.events,this.xmax=Math.max(this.xmax,Math.max.apply(Math,this.events)),this.xmin=Math.min(this.xmin,Math.min.apply(Math,this.events))),this.xmin===this.xmax&&(this.xmin-=1,this.xmax+=1),this.ymin=this.yboundary("min",g),this.ymax=this.yboundary("max",f),this.ymin===this.ymax&&(g&&(this.ymin-=1),this.ymax+=1),(v=this.options.axes)!==!0&&"both"!==v&&"y"!==v&&this.options.grid!==!0||(this.options.ymax===this.gridDefaults.ymax&&this.options.ymin===this.gridDefaults.ymin?(this.grid=this.autoGridLines(this.ymin,this.ymax,this.options.numLines),this.ymin=Math.min(this.ymin,this.grid[0]),this.ymax=Math.max(this.ymax,this.grid[this.grid.length-1])):(c=(this.ymax-this.ymin)/(this.options.numLines-1),this.grid=function(){var t,e,i,n;for(n=[],p=t=e=this.ymin,i=this.ymax;c>0?t<=i:t>=i;p=t+=c)n.push(p);return n}.call(this))),this.dirty=!0,i?this.redraw():void 0)},n.prototype.yboundary=function(t,e){var i,n;return i=this.options["y"+t],"string"==typeof i?"auto"===i.slice(0,4)?i.length>5?(n=parseInt(i.slice(5),10),null==e?n:Math[t](e,n)):null!=e?e:0:parseInt(i,10):i},n.prototype.autoGridLines=function(t,e,i){var n,r,o,s,a,l,h,c,u;return a=e-t,u=Math.floor(Math.log(a)/Math.log(10)),h=Math.pow(10,u),r=Math.floor(t/h)*h,n=Math.ceil(e/h)*h,l=(n-r)/(i-1),1===h&&l>1&&Math.ceil(l)!==l&&(l=Math.ceil(l),n=r+l*(i-1)),r<0&&n>0&&(r=Math.floor(t/l)*l,n=Math.ceil(e/l)*l),l<1?(s=Math.floor(Math.log(l)/Math.log(10)),o=function(){var t,e;for(e=[],c=t=r;l>0?t<=n:t>=n;c=t+=l)e.push(parseFloat(c.toFixed(1-s)));return e}()):o=function(){var t,e;for(e=[],c=t=r;l>0?t<=n:t>=n;c=t+=l)e.push(c);return e}(),o},n.prototype._calc=function(){var t,e,i,n,r,o,s,a;if(r=this.el.width(),i=this.el.height(),(this.elementWidth!==r||this.elementHeight!==i||this.dirty)&&(this.elementWidth=r,this.elementHeight=i,this.dirty=!1,this.left=this.options.padding,this.right=this.elementWidth-this.options.padding,this.top=this.options.padding,this.bottom=this.elementHeight-this.options.padding,(s=this.options.axes)!==!0&&"both"!==s&&"y"!==s||(o=function(){var t,i,n,r;for(n=this.grid,r=[],t=0,i=n.length;t<i;t++)e=n[t],r.push(this.measureText(this.yAxisFormat(e)).width);return r}.call(this),this.left+=Math.max.apply(Math,o)),(a=this.options.axes)!==!0&&"both"!==a&&"x"!==a||(t=function(){var t,e,i;for(i=[],n=t=0,e=this.data.length;0<=e?t<e:t>e;n=0<=e?++t:--t)i.push(this.measureText(this.data[n].text,-this.options.xLabelAngle).height);return i}.call(this),this.bottom-=Math.max.apply(Math,t)),this.width=Math.max(1,this.right-this.left),this.height=Math.max(1,this.bottom-this.top),this.dx=this.width/(this.xmax-this.xmin),this.dy=this.height/(this.ymax-this.ymin),this.calc))return this.calc()},n.prototype.transY=function(t){return this.bottom-(t-this.ymin)*this.dy},n.prototype.transX=function(t){return 1===this.data.length?(this.left+this.right)/2:this.left+(t-this.xmin)*this.dx},n.prototype.redraw=function(){if(this.raphael.clear(),this._calc(),this.drawGrid(),this.drawGoals(),this.drawEvents(),this.draw)return this.draw()},n.prototype.measureText=function(t,e){var i,n;return null==e&&(e=0),n=this.raphael.text(100,100,t).attr("font-size",this.options.gridTextSize).attr("font-family",this.options.gridTextFamily).attr("font-weight",this.options.gridTextWeight).rotate(e),i=n.getBBox(),n.remove(),i},n.prototype.yAxisFormat=function(t){return this.yLabelFormat(t)},n.prototype.yLabelFormat=function(t){return"function"==typeof this.options.yLabelFormat?this.options.yLabelFormat(t):""+this.options.preUnits+e.commas(t)+this.options.postUnits},n.prototype.drawGrid=function(){var t,e,i,n,r,o,s,a;if(this.options.grid!==!1||(r=this.options.axes)===!0||"both"===r||"y"===r){for(o=this.grid,a=[],i=0,n=o.length;i<n;i++)t=o[i],e=this.transY(t),(s=this.options.axes)!==!0&&"both"!==s&&"y"!==s||this.drawYAxisLabel(this.left-this.options.padding/2,e,this.yAxisFormat(t)),this.options.grid?a.push(this.drawGridLine("M"+this.left+","+e+"H"+(this.left+this.width))):a.push(void 0);return a}},n.prototype.drawGoals=function(){var t,e,i,n,r,o,s;for(o=this.options.goals,s=[],i=n=0,r=o.length;n<r;i=++n)e=o[i],t=this.options.goalLineColors[i%this.options.goalLineColors.length],s.push(this.drawGoal(e,t));return s},n.prototype.drawEvents=function(){var t,e,i,n,r,o,s;for(o=this.events,s=[],i=n=0,r=o.length;n<r;i=++n)e=o[i],t=this.options.eventLineColors[i%this.options.eventLineColors.length],s.push(this.drawEvent(e,t));return s},n.prototype.drawGoal=function(t,e){return this.raphael.path("M"+this.left+","+this.transY(t)+"H"+this.right).attr("stroke",e).attr("stroke-width",this.options.goalStrokeWidth)},n.prototype.drawEvent=function(t,e){return this.raphael.path("M"+this.transX(t)+","+this.bottom+"V"+this.top).attr("stroke",e).attr("stroke-width",this.options.eventStrokeWidth)},n.prototype.drawYAxisLabel=function(t,e,i){return this.raphael.text(t,e,i).attr("font-size",this.options.gridTextSize).attr("font-family",this.options.gridTextFamily).attr("font-weight",this.options.gridTextWeight).attr("fill",this.options.gridTextColor).attr("text-anchor","end")},n.prototype.drawGridLine=function(t){return this.raphael.path(t).attr("stroke",this.options.gridLineColor).attr("stroke-width",this.options.gridStrokeWidth)},n.prototype.startRange=function(t){return this.hover.hide(),this.selectFrom=t,this.selectionRect.attr({x:t,width:0}).show()},n.prototype.endRange=function(t){var e,i;if(this.selectFrom)return i=Math.min(this.selectFrom,t),e=Math.max(this.selectFrom,t),this.options.rangeSelect.call(this.el,{start:this.data[this.hitTest(i)].x,end:this.data[this.hitTest(e)].x}),this.selectFrom=null},n.prototype.resizeHandler=function(){return this.timeoutId=null,this.raphael.setSize(this.el.width(),this.el.height()),this.redraw()},n}(e.EventEmitter),e.parseDate=function(t){var e,i,n,r,o,s,a,l,h,c,u;return"number"==typeof t?t:(i=t.match(/^(\d+) Q(\d)$/),r=t.match(/^(\d+)-(\d+)$/),o=t.match(/^(\d+)-(\d+)-(\d+)$/),a=t.match(/^(\d+) W(\d+)$/),l=t.match(/^(\d+)-(\d+)-(\d+)[ T](\d+):(\d+)(Z|([+-])(\d\d):?(\d\d))?$/),h=t.match(/^(\d+)-(\d+)-(\d+)[ T](\d+):(\d+):(\d+(\.\d+)?)(Z|([+-])(\d\d):?(\d\d))?$/),i?new Date(parseInt(i[1],10),3*parseInt(i[2],10)-1,1).getTime():r?new Date(parseInt(r[1],10),parseInt(r[2],10)-1,1).getTime():o?new Date(parseInt(o[1],10),parseInt(o[2],10)-1,parseInt(o[3],10)).getTime():a?(c=new Date(parseInt(a[1],10),0,1),4!==c.getDay()&&c.setMonth(0,1+(4-c.getDay()+7)%7),c.getTime()+6048e5*parseInt(a[2],10)):l?l[6]?(s=0,"Z"!==l[6]&&(s=60*parseInt(l[8],10)+parseInt(l[9],10),"+"===l[7]&&(s=0-s)),Date.UTC(parseInt(l[1],10),parseInt(l[2],10)-1,parseInt(l[3],10),parseInt(l[4],10),parseInt(l[5],10)+s)):new Date(parseInt(l[1],10),parseInt(l[2],10)-1,parseInt(l[3],10),parseInt(l[4],10),parseInt(l[5],10)).getTime():h?(u=parseFloat(h[6]),e=Math.floor(u),n=Math.round(1e3*(u-e)),h[8]?(s=0,"Z"!==h[8]&&(s=60*parseInt(h[10],10)+parseInt(h[11],10),"+"===h[9]&&(s=0-s)),Date.UTC(parseInt(h[1],10),parseInt(h[2],10)-1,parseInt(h[3],10),parseInt(h[4],10),parseInt(h[5],10)+s,e,n)):new Date(parseInt(h[1],10),parseInt(h[2],10)-1,parseInt(h[3],10),parseInt(h[4],10),parseInt(h[5],10),e,n).getTime()):new Date(parseInt(t,10),0,1).getTime())},e.Hover=function(){function i(i){null==i&&(i={}),this.options=t.extend({},e.Hover.defaults,i),this.el=t("<div class='"+this.options["class"]+"'></div>"),this.el.hide(),this.options.parent.append(this.el)}return i.defaults={"class":"morris-hover morris-default-style"},i.prototype.update=function(t,e,i){return t?(this.html(t),this.show(),this.moveTo(e,i)):this.hide()},i.prototype.html=function(t){return this.el.html(t)},i.prototype.moveTo=function(t,e){var i,n,r,o,s,a;return s=this.options.parent.innerWidth(),o=this.options.parent.innerHeight(),n=this.el.outerWidth(),i=this.el.outerHeight(),r=Math.min(Math.max(0,t-n/2),s-n),null!=e?(a=e-i-10,a<0&&(a=e+10,a+i>o&&(a=o/2-i/2))):a=o/2-i/2,this.el.css({left:r+"px",top:parseInt(a)+"px"})},i.prototype.show=function(){return this.el.show()},i.prototype.hide=function(){return this.el.hide()},i}(),e.Line=function(t){function i(t){return this.hilight=o(this.hilight,this),this.onHoverOut=o(this.onHoverOut,this),this.onHoverMove=o(this.onHoverMove,this),this.onGridClick=o(this.onGridClick,this),this instanceof e.Line?void i.__super__.constructor.call(this,t):new e.Line(t)}return a(i,t),i.prototype.init=function(){if("always"!==this.options.hideHover)return this.hover=new e.Hover({parent:this.el}),this.on("hovermove",this.onHoverMove),this.on("hoverout",this.onHoverOut),this.on("gridclick",this.onGridClick)},i.prototype.defaults={lineWidth:3,pointSize:4,lineColors:["#0b62a4","#7A92A3","#4da74d","#afd8f8","#edc240","#cb4b4b","#9440ed"],pointStrokeWidths:[1],pointStrokeColors:["#ffffff"],pointFillColors:[],smooth:!0,xLabels:"auto",xLabelFormat:null,xLabelMargin:24,hideHover:!1},i.prototype.calc=function(){return this.calcPoints(),this.generatePaths()},i.prototype.calcPoints=function(){var t,e,i,n,r,o;for(r=this.data,o=[],i=0,n=r.length;i<n;i++)t=r[i],t._x=this.transX(t.x),t._y=function(){var i,n,r,o;for(r=t.y,o=[],i=0,n=r.length;i<n;i++)e=r[i],null!=e?o.push(this.transY(e)):o.push(e);return o}.call(this),o.push(t._ymax=Math.min.apply(Math,[this.bottom].concat(function(){var i,n,r,o;for(r=t._y,o=[],i=0,n=r.length;i<n;i++)e=r[i],null!=e&&o.push(e);return o}())));return o},i.prototype.hitTest=function(t){var e,i,n,r,o;if(0===this.data.length)return null;for(o=this.data.slice(1),e=n=0,r=o.length;n<r&&(i=o[e],!(t<(i._x+this.data[e]._x)/2));e=++n);return e},i.prototype.onGridClick=function(t,e){var i;return i=this.hitTest(t),this.fire("click",i,this.data[i].src,t,e)},i.prototype.onHoverMove=function(t,e){var i;return i=this.hitTest(t),this.displayHoverForRow(i)},i.prototype.onHoverOut=function(){if(this.options.hideHover!==!1)return this.displayHoverForRow(null)},i.prototype.displayHoverForRow=function(t){var e;return null!=t?((e=this.hover).update.apply(e,this.hoverContentForRow(t)),this.hilight(t)):(this.hover.hide(),this.hilight())},i.prototype.hoverContentForRow=function(t){var e,i,n,r,o,s,a;for(n=this.data[t],e="<div class='morris-hover-row-label'>"+n.label+"</div>",a=n.y,i=o=0,s=a.length;o<s;i=++o)r=a[i],e+="<div class='morris-hover-point' style='color: "+this.colorFor(n,i,"label")+"'>\n  "+this.options.labels[i]+":\n  "+this.yLabelFormat(r)+"\n</div>";return"function"==typeof this.options.hoverCallback&&(e=this.options.hoverCallback(t,this.options,e,n.src)),[e,n._x,n._ymax]},i.prototype.generatePaths=function(){var t,i,n,r;return this.paths=function(){var o,s,a,h;for(h=[],
i=o=0,s=this.options.ykeys.length;0<=s?o<s:o>s;i=0<=s?++o:--o)r="boolean"==typeof this.options.smooth?this.options.smooth:(a=this.options.ykeys[i],l.call(this.options.smooth,a)>=0),t=function(){var t,e,r,o;for(r=this.data,o=[],t=0,e=r.length;t<e;t++)n=r[t],void 0!==n._y[i]&&o.push({x:n._x,y:n._y[i]});return o}.call(this),t.length>1?h.push(e.Line.createPath(t,r,this.bottom)):h.push(null);return h}.call(this)},i.prototype.draw=function(){var t;if((t=this.options.axes)!==!0&&"both"!==t&&"x"!==t||this.drawXAxis(),this.drawSeries(),this.options.hideHover===!1)return this.displayHoverForRow(this.data.length-1)},i.prototype.drawXAxis=function(){var t,i,n,r,o,s,a,l,h,c,u=this;for(a=this.bottom+this.options.padding/2,o=null,r=null,t=function(t,e){var i,n,s,l,h;return i=u.drawXAxisLabel(u.transX(e),a,t),h=i.getBBox(),i.transform("r"+-u.options.xLabelAngle),n=i.getBBox(),i.transform("t0,"+n.height/2+"..."),0!==u.options.xLabelAngle&&(l=-.5*h.width*Math.cos(u.options.xLabelAngle*Math.PI/180),i.transform("t"+l+",0...")),n=i.getBBox(),(null==o||o>=n.x+n.width||null!=r&&r>=n.x)&&n.x>=0&&n.x+n.width<u.el.width()?(0!==u.options.xLabelAngle&&(s=1.25*u.options.gridTextSize/Math.sin(u.options.xLabelAngle*Math.PI/180),r=n.x-s),o=n.x-u.options.xLabelMargin):i.remove()},n=this.options.parseTime?1===this.data.length&&"auto"===this.options.xLabels?[[this.data[0].label,this.data[0].x]]:e.labelSeries(this.xmin,this.xmax,this.width,this.options.xLabels,this.options.xLabelFormat):function(){var t,e,i,n;for(i=this.data,n=[],t=0,e=i.length;t<e;t++)s=i[t],n.push([s.label,s.x]);return n}.call(this),n.reverse(),c=[],l=0,h=n.length;l<h;l++)i=n[l],c.push(t(i[0],i[1]));return c},i.prototype.drawSeries=function(){var t,e,i,n,r,o;for(this.seriesPoints=[],t=e=n=this.options.ykeys.length-1;n<=0?e<=0:e>=0;t=n<=0?++e:--e)this._drawLineFor(t);for(o=[],t=i=r=this.options.ykeys.length-1;r<=0?i<=0:i>=0;t=r<=0?++i:--i)o.push(this._drawPointFor(t));return o},i.prototype._drawPointFor=function(t){var e,i,n,r,o,s;for(this.seriesPoints[t]=[],o=this.data,s=[],n=0,r=o.length;n<r;n++)i=o[n],e=null,null!=i._y[t]&&(e=this.drawLinePoint(i._x,i._y[t],this.colorFor(i,t,"point"),t)),s.push(this.seriesPoints[t].push(e));return s},i.prototype._drawLineFor=function(t){var e;if(e=this.paths[t],null!==e)return this.drawLinePath(e,this.colorFor(null,t,"line"),t)},i.createPath=function(t,i,n){var r,o,s,a,l,h,c,u,p,d,f,g,m,v;for(c="",i&&(s=e.Line.gradients(t)),u={y:null},a=m=0,v=t.length;m<v;a=++m)r=t[a],null!=r.y&&(null!=u.y?i?(o=s[a],h=s[a-1],l=(r.x-u.x)/4,p=u.x+l,f=Math.min(n,u.y+l*h),d=r.x-l,g=Math.min(n,r.y-l*o),c+="C"+p+","+f+","+d+","+g+","+r.x+","+r.y):c+="L"+r.x+","+r.y:i&&null==s[a]||(c+="M"+r.x+","+r.y)),u=r;return c},i.gradients=function(t){var e,i,n,r,o,s,a,l;for(i=function(t,e){return(t.y-e.y)/(t.x-e.x)},l=[],n=s=0,a=t.length;s<a;n=++s)e=t[n],null!=e.y?(r=t[n+1]||{y:null},o=t[n-1]||{y:null},null!=o.y&&null!=r.y?l.push(i(o,r)):null!=o.y?l.push(i(o,e)):null!=r.y?l.push(i(e,r)):l.push(null)):l.push(null);return l},i.prototype.hilight=function(t){var e,i,n,r,o;if(null!==this.prevHilight&&this.prevHilight!==t)for(e=i=0,r=this.seriesPoints.length-1;0<=r?i<=r:i>=r;e=0<=r?++i:--i)this.seriesPoints[e][this.prevHilight]&&this.seriesPoints[e][this.prevHilight].animate(this.pointShrinkSeries(e));if(null!==t&&this.prevHilight!==t)for(e=n=0,o=this.seriesPoints.length-1;0<=o?n<=o:n>=o;e=0<=o?++n:--n)this.seriesPoints[e][t]&&this.seriesPoints[e][t].animate(this.pointGrowSeries(e));return this.prevHilight=t},i.prototype.colorFor=function(t,e,i){return"function"==typeof this.options.lineColors?this.options.lineColors.call(this,t,e,i):"point"===i?this.options.pointFillColors[e%this.options.pointFillColors.length]||this.options.lineColors[e%this.options.lineColors.length]:this.options.lineColors[e%this.options.lineColors.length]},i.prototype.drawXAxisLabel=function(t,e,i){return this.raphael.text(t,e,i).attr("font-size",this.options.gridTextSize).attr("font-family",this.options.gridTextFamily).attr("font-weight",this.options.gridTextWeight).attr("fill",this.options.gridTextColor)},i.prototype.drawLinePath=function(t,e,i){return this.raphael.path(t).attr("stroke",e).attr("stroke-width",this.lineWidthForSeries(i))},i.prototype.drawLinePoint=function(t,e,i,n){return this.raphael.circle(t,e,this.pointSizeForSeries(n)).attr("fill",i).attr("stroke-width",this.pointStrokeWidthForSeries(n)).attr("stroke",this.pointStrokeColorForSeries(n))},i.prototype.pointStrokeWidthForSeries=function(t){return this.options.pointStrokeWidths[t%this.options.pointStrokeWidths.length]},i.prototype.pointStrokeColorForSeries=function(t){return this.options.pointStrokeColors[t%this.options.pointStrokeColors.length]},i.prototype.lineWidthForSeries=function(t){return this.options.lineWidth instanceof Array?this.options.lineWidth[t%this.options.lineWidth.length]:this.options.lineWidth},i.prototype.pointSizeForSeries=function(t){return this.options.pointSize instanceof Array?this.options.pointSize[t%this.options.pointSize.length]:this.options.pointSize},i.prototype.pointGrowSeries=function(t){return Raphael.animation({r:this.pointSizeForSeries(t)+3},25,"linear")},i.prototype.pointShrinkSeries=function(t){return Raphael.animation({r:this.pointSizeForSeries(t)},25,"linear")},i}(e.Grid),e.labelSeries=function(i,n,r,o,s){var a,l,h,c,u,p,d,f,g,m,v;if(h=200*(n-i)/r,l=new Date(i),d=e.LABEL_SPECS[o],void 0===d)for(v=e.AUTO_LABEL_ORDER,g=0,m=v.length;g<m;g++)if(c=v[g],p=e.LABEL_SPECS[c],h>=p.span){d=p;break}for(void 0===d&&(d=e.LABEL_SPECS.second),s&&(d=t.extend({},d,{fmt:s})),a=d.start(l),u=[];(f=a.getTime())<=n;)f>=i&&u.push([d.fmt(a),f]),d.incr(a);return u},i=function(t){return{span:60*t*1e3,start:function(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours())},fmt:function(t){return""+e.pad2(t.getHours())+":"+e.pad2(t.getMinutes())},incr:function(e){return e.setUTCMinutes(e.getUTCMinutes()+t)}}},n=function(t){return{span:1e3*t,start:function(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes())},fmt:function(t){return""+e.pad2(t.getHours())+":"+e.pad2(t.getMinutes())+":"+e.pad2(t.getSeconds())},incr:function(e){return e.setUTCSeconds(e.getUTCSeconds()+t)}}},e.LABEL_SPECS={decade:{span:1728e8,start:function(t){return new Date(t.getFullYear()-t.getFullYear()%10,0,1)},fmt:function(t){return""+t.getFullYear()},incr:function(t){return t.setFullYear(t.getFullYear()+10)}},year:{span:1728e7,start:function(t){return new Date(t.getFullYear(),0,1)},fmt:function(t){return""+t.getFullYear()},incr:function(t){return t.setFullYear(t.getFullYear()+1)}},month:{span:24192e5,start:function(t){return new Date(t.getFullYear(),t.getMonth(),1)},fmt:function(t){return""+t.getFullYear()+"-"+e.pad2(t.getMonth()+1)},incr:function(t){return t.setMonth(t.getMonth()+1)}},week:{span:6048e5,start:function(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate())},fmt:function(t){return""+t.getFullYear()+"-"+e.pad2(t.getMonth()+1)+"-"+e.pad2(t.getDate())},incr:function(t){return t.setDate(t.getDate()+7)}},day:{span:864e5,start:function(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate())},fmt:function(t){return""+t.getFullYear()+"-"+e.pad2(t.getMonth()+1)+"-"+e.pad2(t.getDate())},incr:function(t){return t.setDate(t.getDate()+1)}},hour:i(60),"30min":i(30),"15min":i(15),"10min":i(10),"5min":i(5),minute:i(1),"30sec":n(30),"15sec":n(15),"10sec":n(10),"5sec":n(5),second:n(1)},e.AUTO_LABEL_ORDER=["decade","year","month","week","day","hour","30min","15min","10min","5min","minute","30sec","15sec","10sec","5sec","second"],e.Area=function(i){function n(i){var o;return this instanceof e.Area?(o=t.extend({},r,i),this.cumulative=!o.behaveLikeLine,"auto"===o.fillOpacity&&(o.fillOpacity=o.behaveLikeLine?.8:1),void n.__super__.constructor.call(this,o)):new e.Area(i)}var r;return a(n,i),r={fillOpacity:"auto",behaveLikeLine:!1},n.prototype.calcPoints=function(){var t,e,i,n,r,o,s;for(o=this.data,s=[],n=0,r=o.length;n<r;n++)t=o[n],t._x=this.transX(t.x),e=0,t._y=function(){var n,r,o,s;for(o=t.y,s=[],n=0,r=o.length;n<r;n++)i=o[n],this.options.behaveLikeLine?s.push(this.transY(i)):(e+=i||0,s.push(this.transY(e)));return s}.call(this),s.push(t._ymax=Math.max.apply(Math,t._y));return s},n.prototype.drawSeries=function(){var t,e,i,n,r,o,s,a;for(this.seriesPoints=[],e=this.options.behaveLikeLine?function(){o=[];for(var t=0,e=this.options.ykeys.length-1;0<=e?t<=e:t>=e;0<=e?t++:t--)o.push(t);return o}.apply(this):function(){s=[];for(var t=r=this.options.ykeys.length-1;r<=0?t<=0:t>=0;r<=0?t++:t--)s.push(t);return s}.apply(this),a=[],i=0,n=e.length;i<n;i++)t=e[i],this._drawFillFor(t),this._drawLineFor(t),a.push(this._drawPointFor(t));return a},n.prototype._drawFillFor=function(t){var e;if(e=this.paths[t],null!==e)return e+="L"+this.transX(this.xmax)+","+this.bottom+"L"+this.transX(this.xmin)+","+this.bottom+"Z",this.drawFilledPath(e,this.fillForSeries(t))},n.prototype.fillForSeries=function(t){var e;return e=Raphael.rgb2hsl(this.colorFor(this.data[t],t,"line")),Raphael.hsl(e.h,this.options.behaveLikeLine?.9*e.s:.75*e.s,Math.min(.98,this.options.behaveLikeLine?1.2*e.l:1.25*e.l))},n.prototype.drawFilledPath=function(t,e){return this.raphael.path(t).attr("fill",e).attr("fill-opacity",this.options.fillOpacity).attr("stroke","none")},n}(e.Line),e.Bar=function(i){function n(i){return this.onHoverOut=o(this.onHoverOut,this),this.onHoverMove=o(this.onHoverMove,this),this.onGridClick=o(this.onGridClick,this),this instanceof e.Bar?void n.__super__.constructor.call(this,t.extend({},i,{parseTime:!1})):new e.Bar(i)}return a(n,i),n.prototype.init=function(){if(this.cumulative=this.options.stacked,"always"!==this.options.hideHover)return this.hover=new e.Hover({parent:this.el}),this.on("hovermove",this.onHoverMove),this.on("hoverout",this.onHoverOut),this.on("gridclick",this.onGridClick)},n.prototype.defaults={barSizeRatio:.75,barGap:3,barColors:["#0b62a4","#7a92a3","#4da74d","#afd8f8","#edc240","#cb4b4b","#9440ed"],barOpacity:1,barRadius:[0,0,0,0],xLabelMargin:50},n.prototype.calc=function(){var t;if(this.calcBars(),this.options.hideHover===!1)return(t=this.hover).update.apply(t,this.hoverContentForRow(this.data.length-1))},n.prototype.calcBars=function(){var t,e,i,n,r,o,s;for(o=this.data,s=[],t=n=0,r=o.length;n<r;t=++n)e=o[t],e._x=this.left+this.width*(t+.5)/this.data.length,s.push(e._y=function(){var t,n,r,o;for(r=e.y,o=[],t=0,n=r.length;t<n;t++)i=r[t],null!=i?o.push(this.transY(i)):o.push(null);return o}.call(this));return s},n.prototype.draw=function(){var t;return(t=this.options.axes)!==!0&&"both"!==t&&"x"!==t||this.drawXAxis(),this.drawSeries()},n.prototype.drawXAxis=function(){var t,e,i,n,r,o,s,a,l,h,c,u,p;for(h=this.bottom+(this.options.xAxisLabelTopPadding||this.options.padding/2),s=null,o=null,p=[],t=c=0,u=this.data.length;0<=u?c<u:c>u;t=0<=u?++c:--c)a=this.data[this.data.length-1-t],e=this.drawXAxisLabel(a._x,h,a.label),l=e.getBBox(),e.transform("r"+-this.options.xLabelAngle),i=e.getBBox(),e.transform("t0,"+i.height/2+"..."),0!==this.options.xLabelAngle&&(r=-.5*l.width*Math.cos(this.options.xLabelAngle*Math.PI/180),e.transform("t"+r+",0...")),(null==s||s>=i.x+i.width||null!=o&&o>=i.x)&&i.x>=0&&i.x+i.width<this.el.width()?(0!==this.options.xLabelAngle&&(n=1.25*this.options.gridTextSize/Math.sin(this.options.xLabelAngle*Math.PI/180),o=i.x-n),p.push(s=i.x-this.options.xLabelMargin)):p.push(e.remove());return p},n.prototype.drawSeries=function(){var t,e,i,n,r,o,s,a,l,h,c,u,p,d,f;return i=this.width/this.options.data.length,a=this.options.stacked?1:this.options.ykeys.length,t=(i*this.options.barSizeRatio-this.options.barGap*(a-1))/a,this.options.barSize&&(t=Math.min(t,this.options.barSize)),u=i-t*a-this.options.barGap*(a-1),s=u/2,f=this.ymin<=0&&this.ymax>=0?this.transY(0):null,this.bars=function(){var a,u,g,m;for(g=this.data,m=[],n=a=0,u=g.length;a<u;n=++a)l=g[n],r=0,m.push(function(){var a,u,g,m;for(g=l._y,m=[],h=a=0,u=g.length;a<u;h=++a)d=g[h],null!==d?(f?(p=Math.min(d,f),e=Math.max(d,f)):(p=d,e=this.bottom),o=this.left+n*i+s,this.options.stacked||(o+=h*(t+this.options.barGap)),c=e-p,this.options.verticalGridCondition&&this.options.verticalGridCondition(l.x)&&this.drawBar(this.left+n*i,this.top,i,Math.abs(this.top-this.bottom),this.options.verticalGridColor,this.options.verticalGridOpacity,this.options.barRadius),this.options.stacked&&(p-=r),this.drawBar(o,p,t,c,this.colorFor(l,h,"bar"),this.options.barOpacity,this.options.barRadius),m.push(r+=c)):m.push(null);return m}.call(this));return m}.call(this)},n.prototype.colorFor=function(t,e,i){var n,r;return"function"==typeof this.options.barColors?(n={x:t.x,y:t.y[e],label:t.label},r={index:e,key:this.options.ykeys[e],label:this.options.labels[e]},this.options.barColors.call(this,n,r,i)):this.options.barColors[e%this.options.barColors.length]},n.prototype.hitTest=function(t){return 0===this.data.length?null:(t=Math.max(Math.min(t,this.right),this.left),Math.min(this.data.length-1,Math.floor((t-this.left)/(this.width/this.data.length))))},n.prototype.onGridClick=function(t,e){var i;return i=this.hitTest(t),this.fire("click",i,this.data[i].src,t,e)},n.prototype.onHoverMove=function(t,e){var i,n;return i=this.hitTest(t),(n=this.hover).update.apply(n,this.hoverContentForRow(i))},n.prototype.onHoverOut=function(){if(this.options.hideHover!==!1)return this.hover.hide()},n.prototype.hoverContentForRow=function(t){var e,i,n,r,o,s,a,l;for(n=this.data[t],e="<div class='morris-hover-row-label'>"+n.label+"</div>",l=n.y,i=s=0,a=l.length;s<a;i=++s)o=l[i],e+="<div class='morris-hover-point' style='color: "+this.colorFor(n,i,"label")+"'>\n  "+this.options.labels[i]+":\n  "+this.yLabelFormat(o)+"\n</div>";return"function"==typeof this.options.hoverCallback&&(e=this.options.hoverCallback(t,this.options,e,n.src)),r=this.left+(t+.5)*this.width/this.data.length,[e,r]},n.prototype.drawXAxisLabel=function(t,e,i){var n;return n=this.raphael.text(t,e,i).attr("font-size",this.options.gridTextSize).attr("font-family",this.options.gridTextFamily).attr("font-weight",this.options.gridTextWeight).attr("fill",this.options.gridTextColor)},n.prototype.drawBar=function(t,e,i,n,r,o,s){var a,l;return a=Math.max.apply(Math,s),l=0===a||a>n?this.raphael.rect(t,e,i,n):this.raphael.path(this.roundedRect(t,e,i,n,s)),l.attr("fill",r).attr("fill-opacity",o).attr("stroke","none")},n.prototype.roundedRect=function(t,e,i,n,r){return null==r&&(r=[0,0,0,0]),["M",t,r[0]+e,"Q",t,e,t+r[0],e,"L",t+i-r[1],e,"Q",t+i,e,t+i,e+r[1],"L",t+i,e+n-r[2],"Q",t+i,e+n,t+i-r[2],e+n,"L",t+r[3],e+n,"Q",t,e+n,t,e+n-r[3],"Z"]},n}(e.Grid),e.Donut=function(i){function n(i){this.resizeHandler=o(this.resizeHandler,this),this.select=o(this.select,this),this.click=o(this.click,this);var n=this;if(!(this instanceof e.Donut))return new e.Donut(i);if(this.options=t.extend({},this.defaults,i),"string"==typeof i.element?this.el=t(document.getElementById(i.element)):this.el=t(i.element),null===this.el||0===this.el.length)throw new Error("Graph placeholder not found.");void 0!==i.data&&0!==i.data.length&&(this.raphael=new Raphael(this.el[0]),this.options.resize&&t(window).bind("resize",function(t){return null!=n.timeoutId&&window.clearTimeout(n.timeoutId),n.timeoutId=window.setTimeout(n.resizeHandler,100)}),this.setData(i.data))}return a(n,i),n.prototype.defaults={colors:["#0B62A4","#3980B5","#679DC6","#95BBD7","#B0CCE1","#095791","#095085","#083E67","#052C48","#042135"],backgroundColor:"#FFFFFF",labelColor:"#000000",formatter:e.commas,resize:!1},n.prototype.redraw=function(){var t,i,n,r,o,s,a,l,h,c,u,p,d,f,g,m,v,y,b,x,w,S,T;for(this.raphael.clear(),i=this.el.width()/2,n=this.el.height()/2,d=(Math.min(i,n)-10)/3,u=0,x=this.values,f=0,v=x.length;f<v;f++)p=x[f],u+=p;for(l=5/(2*d),t=1.9999*Math.PI-l*this.data.length,s=0,o=0,this.segments=[],w=this.values,r=g=0,y=w.length;g<y;r=++g)p=w[r],h=s+l+t*(p/u),c=new e.DonutSegment(i,n,2*d,d,s,h,this.data[r].color||this.options.colors[o%this.options.colors.length],this.options.backgroundColor,o,this.raphael),c.render(),this.segments.push(c),c.on("hover",this.select),c.on("click",this.click),s=h,o+=1;for(this.text1=this.drawEmptyDonutLabel(i,n-10,this.options.labelColor,15,800),this.text2=this.drawEmptyDonutLabel(i,n+10,this.options.labelColor,14),a=Math.max.apply(Math,this.values),o=0,S=this.values,T=[],m=0,b=S.length;m<b;m++){if(p=S[m],p===a){this.select(o);break}T.push(o+=1)}return T},n.prototype.setData=function(t){var e;return this.data=t,this.values=function(){var t,i,n,r;for(n=this.data,r=[],t=0,i=n.length;t<i;t++)e=n[t],r.push(parseFloat(e.value));return r}.call(this),this.redraw()},n.prototype.click=function(t){return this.fire("click",t,this.data[t])},n.prototype.select=function(t){var e,i,n,r,o,s;for(s=this.segments,r=0,o=s.length;r<o;r++)i=s[r],i.deselect();return n=this.segments[t],n.select(),e=this.data[t],this.setLabels(e.label,this.options.formatter(e.value,e))},n.prototype.setLabels=function(t,e){var i,n,r,o,s,a,l,h;return i=2*(Math.min(this.el.width()/2,this.el.height()/2)-10)/3,o=1.8*i,r=i/2,n=i/3,this.text1.attr({text:t,transform:""}),s=this.text1.getBBox(),a=Math.min(o/s.width,r/s.height),this.text1.attr({transform:"S"+a+","+a+","+(s.x+s.width/2)+","+(s.y+s.height)}),this.text2.attr({text:e,transform:""}),l=this.text2.getBBox(),h=Math.min(o/l.width,n/l.height),this.text2.attr({transform:"S"+h+","+h+","+(l.x+l.width/2)+","+l.y})},n.prototype.drawEmptyDonutLabel=function(t,e,i,n,r){var o;return o=this.raphael.text(t,e,"").attr("font-size",n).attr("fill",i),null!=r&&o.attr("font-weight",r),o},n.prototype.resizeHandler=function(){return this.timeoutId=null,this.raphael.setSize(this.el.width(),this.el.height()),this.redraw()},n}(e.EventEmitter),e.DonutSegment=function(t){function e(t,e,i,n,r,s,a,l,h,c){this.cx=t,this.cy=e,this.inner=i,this.outer=n,this.color=a,this.backgroundColor=l,this.index=h,this.raphael=c,this.deselect=o(this.deselect,this),this.select=o(this.select,this),this.sin_p0=Math.sin(r),this.cos_p0=Math.cos(r),this.sin_p1=Math.sin(s),this.cos_p1=Math.cos(s),this.is_long=s-r>Math.PI?1:0,this.path=this.calcSegment(this.inner+3,this.inner+this.outer-5),this.selectedPath=this.calcSegment(this.inner+3,this.inner+this.outer),this.hilight=this.calcArc(this.inner)}return a(e,t),e.prototype.calcArcPoints=function(t){return[this.cx+t*this.sin_p0,this.cy+t*this.cos_p0,this.cx+t*this.sin_p1,this.cy+t*this.cos_p1]},e.prototype.calcSegment=function(t,e){var i,n,r,o,s,a,l,h,c,u;return c=this.calcArcPoints(t),i=c[0],r=c[1],n=c[2],o=c[3],u=this.calcArcPoints(e),s=u[0],l=u[1],a=u[2],h=u[3],"M"+i+","+r+("A"+t+","+t+",0,"+this.is_long+",0,"+n+","+o)+("L"+a+","+h)+("A"+e+","+e+",0,"+this.is_long+",1,"+s+","+l)+"Z"},e.prototype.calcArc=function(t){var e,i,n,r,o;return o=this.calcArcPoints(t),e=o[0],n=o[1],i=o[2],r=o[3],"M"+e+","+n+("A"+t+","+t+",0,"+this.is_long+",0,"+i+","+r)},e.prototype.render=function(){var t=this;return this.arc=this.drawDonutArc(this.hilight,this.color),this.seg=this.drawDonutSegment(this.path,this.color,this.backgroundColor,function(){return t.fire("hover",t.index)},function(){return t.fire("click",t.index)})},e.prototype.drawDonutArc=function(t,e){return this.raphael.path(t).attr({stroke:e,"stroke-width":2,opacity:0})},e.prototype.drawDonutSegment=function(t,e,i,n,r){return this.raphael.path(t).attr({fill:e,stroke:i,"stroke-width":3}).hover(n).click(r)},e.prototype.select=function(){if(!this.selected)return this.seg.animate({path:this.selectedPath},150,"<>"),this.arc.animate({opacity:1},150,"<>"),this.selected=!0},e.prototype.deselect=function(){if(this.selected)return this.seg.animate({path:this.path},150,"<>"),this.arc.animate({opacity:0},150,"<>"),this.selected=!1},e}(e.EventEmitter)}.call(this),function(t,e){"object"==typeof module&&module.exports?module.exports=t.document?e(t):e:t.Highcharts=e(t)}("undefined"!=typeof window?window:this,function(t){function e(e,i){var n="Highcharts error #"+e+": www.highcharts.com/errors/"+e;if(i)throw Error(n);t.console&&console.log(n)}function i(t,e,i){this.options=e,this.elem=t,this.prop=i}function n(){var t,e,i=arguments,n={},r=function(t,e){var i,n;"object"!=typeof t&&(t={});for(n in e)e.hasOwnProperty(n)&&(i=e[n],t[n]=i&&"object"==typeof i&&"[object Array]"!==Object.prototype.toString.call(i)&&"renderTo"!==n&&"number"!=typeof i.nodeType?r(t[n]||{},i):e[n]);return t};for(i[0]===!0&&(n=i[1],i=Array.prototype.slice.call(i,2)),e=i.length,t=0;t<e;t++)n=r(n,i[t]);return n}function r(t,e){return parseInt(t,e||10)}function o(t){return"string"==typeof t}function s(t){return t&&"object"==typeof t}function a(t){return"[object Array]"===Object.prototype.toString.call(t)}function l(t,e){for(var i=t.length;i--;)if(t[i]===e){t.splice(i,1);break}}function h(t){return t!==R&&null!==t}function c(t,e,i){var n,r;if(o(e))h(i)?t.setAttribute(e,i):t&&t.getAttribute&&(r=t.getAttribute(e));else if(h(e)&&s(e))for(n in e)t.setAttribute(n,e[n]);return r}function u(t){return a(t)?t:[t]}function p(t,e,i){return e?setTimeout(t,e,i):void t.call(0,i)}function d(t,e){bt&&!Ct&&e&&e.opacity!==R&&(e.filter="alpha(opacity="+100*e.opacity+")"),Vt(t.style,e)}function f(t,e,i,n,r){return t=ot.createElement(t),e&&Vt(t,e),r&&d(t,{padding:0,border:"none",margin:0}),i&&d(t,i),n&&n.appendChild(t),t}function g(t,e){var i=function(){};return i.prototype=new t,Vt(i.prototype,e),i}function m(t,e,i){return Array((e||2)+1-String(t).length).join(i||0)+t}function v(t){return 6e4*(U&&U(t)||W||0)}function y(t,e){for(var i,n,r,o,s,a="{",l=!1,h=[];(a=t.indexOf(a))!==-1;){if(i=t.slice(0,a),l){for(n=i.split(":"),r=n.shift().split("."),s=r.length,i=e,o=0;o<s;o++)i=i[r[o]];n.length&&(n=n.join(":"),r=/\.([0-9])/,o=N.lang,s=void 0,/f$/.test(n)?(s=(s=n.match(r))?s[1]:-1,null!==i&&(i=rt.numberFormat(i,s,o.decimalPoint,n.indexOf(",")>-1?o.thousandsSep:""))):i=j(n,i))}h.push(i),t=t.slice(a+1),a=(l=!l)?"}":"{"}return h.push(t),h.join("")}function b(t){return st.pow(10,lt(st.log(t)/st.LN10))}function x(t,e,i,n,r){var o,s=t,i=Kt(i,1);for(o=t/i,e||(e=[1,2,2.5,5,10],n===!1&&(1===i?e=[1,2,5,10]:i<=.1&&(e=[1/i]))),n=0;n<e.length&&(s=e[n],!(r&&s*i>=t||!r&&o<=(e[n]+(e[n+1]||e[n]))/2));n++);return s*=i}function w(t,e){var i,n,r=t.length;for(n=0;n<r;n++)t[n].safeI=n;for(t.sort(function(t,n){return i=e(t,n),0===i?t.safeI-n.safeI:i}),n=0;n<r;n++)delete t[n].safeI}function S(t){for(var e=t.length,i=t[0];e--;)t[e]<i&&(i=t[e]);return i}function T(t){for(var e=t.length,i=t[0];e--;)t[e]>i&&(i=t[e]);return i}function k(t,e){for(var i in t)t[i]&&t[i]!==e&&t[i].destroy&&t[i].destroy(),delete t[i]}function C(t){F||(F=f(It)),t&&F.appendChild(t),F.innerHTML=""}function _(t,e){return parseFloat(t.toPrecision(e||14))}function A(t,e){e.renderer.globalAnimation=Kt(t,e.animation)}function D(t){return s(t)?n(t):{duration:t?500:0}}function L(){var e=N.global,i=e.useUTC,n=i?"getUTC":"get",r=i?"setUTC":"set";H=e.Date||t.Date,W=i&&e.timezoneOffset,U=i&&e.getTimezoneOffset,z=function(t,e,n,r,o,s){var a;return i?(a=H.UTC.apply(0,arguments),a+=v(a)):a=new H(t,e,Kt(n,1),Kt(r,0),Kt(o,0),Kt(s,0)).getTime(),a},X=n+"Minutes",Y=n+"Hours",G=n+"Day",q=n+"Date",V=n+"Month",J=n+"FullYear",K=r+"Milliseconds",Z=r+"Seconds",Q=r+"Minutes",tt=r+"Hours",et=r+"Date",it=r+"Month",nt=r+"FullYear"}function E(t){return this instanceof E?void this.init(t):new E(t)}function P(){}function M(t,e,i,n){this.axis=t,this.pos=e,this.type=i||"",this.isNew=!0,!i&&!n&&this.addLabel()}function I(t,e,i,n,r){var o=t.chart.inverted;this.axis=t,this.isNegative=i,this.options=e,this.x=n,this.total=null,this.points={},this.stack=r,this.rightCliff=this.leftCliff=0,this.alignOptions={align:e.align||(o?i?"left":"right":"center"),verticalAlign:e.verticalAlign||(o?"middle":i?"bottom":"top"),y:Kt(e.y,o?4:i?14:-6),x:Kt(e.x,o?i?-6:6:0)},this.textAlign=e.textAlign||(o?i?"right":"left":"center")}var R,O,B,F,N,j,$,H,z,W,U,X,Y,G,q,V,J,K,Z,Q,tt,et,it,nt,rt,ot=t.document,st=Math,at=st.round,lt=st.floor,ht=st.ceil,ct=st.max,ut=st.min,pt=st.abs,dt=st.cos,ft=st.sin,gt=st.PI,mt=2*gt/360,vt=t.navigator&&t.navigator.userAgent||"",yt=t.opera,bt=/(msie|trident|edge)/i.test(vt)&&!yt,xt=ot&&8===ot.documentMode,wt=!bt&&/AppleWebKit/.test(vt),St=/Firefox/.test(vt),Tt=/(Mobile|Android|Windows Phone)/.test(vt),kt="http://www.w3.org/2000/svg",Ct=ot&&ot.createElementNS&&!!ot.createElementNS(kt,"svg").createSVGRect,_t=St&&parseInt(vt.split("Firefox/")[1],10)<4,At=ot&&!Ct&&!bt&&!!ot.createElement("canvas").getContext,Dt={},Lt=0,Et=function(){},Pt=[],Mt=0,It="div",Rt=/^[0-9]+$/,Ot=["plotTop","marginRight","marginBottom","plotLeft"],Bt={};rt=t.Highcharts?e(16,!0):{win:t},rt.seriesTypes=Bt;var Ft,Nt,jt,$t,Ht,zt,Wt,Ut,Xt,Yt,Gt,qt=[];i.prototype={dSetter:function(){var t,e=this.paths[0],i=this.paths[1],n=[],r=this.now,o=e.length;if(1===r)n=this.toD;else if(o===i.length&&r<1)for(;o--;)t=parseFloat(e[o]),n[o]=isNaN(t)?e[o]:r*parseFloat(i[o]-t)+t;else n=i;this.elem.attr("d",n)},update:function(){var t=this.elem,e=this.prop,i=this.now,n=this.options.step;this[e+"Setter"]?this[e+"Setter"]():t.attr?t.element&&t.attr(e,i):t.style[e]=i+this.unit,n&&n.call(t,i,this)},run:function(t,e,i){var n,r=this,o=function(t){return!o.stopped&&r.step(t)};this.startTime=+new H,this.start=t,this.end=e,this.unit=i,this.now=this.start,this.pos=0,o.elem=this.elem,o()&&1===qt.push(o)&&(o.timerId=setInterval(function(){for(n=0;n<qt.length;n++)qt[n]()||qt.splice(n--,1);qt.length||clearInterval(o.timerId)},13))},step:function(t){var e,i=+new H,n=this.options;e=this.elem;var r,o=n.complete,s=n.duration,a=n.curAnim;if(e.attr&&!e.element)e=!1;else if(t||i>=s+this.startTime){this.now=this.end,this.pos=1,this.update(),t=a[this.prop]=!0;for(r in a)a[r]!==!0&&(t=!1);t&&o&&o.call(e),e=!1}else this.pos=n.easing((i-this.startTime)/s),this.now=this.start+(this.end-this.start)*this.pos,this.update(),e=!0;return e},initPath:function(t,e,i){var n,e=e||"",r=t.shift,o=e.indexOf("C")>-1,s=o?7:3,e=e.split(" "),i=[].concat(i),a=t.isArea,l=a?2:1,h=function(t){for(n=t.length;n--;)("M"===t[n]||"L"===t[n])&&t.splice(n+1,0,t[n+1],t[n+2],t[n+1],t[n+2])};if(o&&(h(e),h(i)),r<=i.length/s&&e.length===i.length)for(;r--;)i=i.slice(0,s).concat(i),a&&(i=i.concat(i.slice(i.length-s)));if(t.shift=0,e.length)for(t=i.length;e.length<t;)r=e.slice().splice(e.length/l-s,s*l),o&&(r[s-6]=r[s-2],r[s-5]=r[s-1]),[].splice.apply(e,[e.length/l,0].concat(r));return[e,i]}};var Vt=rt.extend=function(t,e){var i;t||(t={});for(i in e)t[i]=e[i];return t},Jt=rt.isNumber=function(t){return"number"==typeof t&&!isNaN(t)},Kt=rt.pick=function(){var t,e,i=arguments,n=i.length;for(t=0;t<n;t++)if(e=i[t],e!==R&&null!==e)return e},Zt=rt.wrap=function(t,e,i){var n=t[e];t[e]=function(){var t=Array.prototype.slice.call(arguments);return t.unshift(n),i.apply(this,t)}};j=function(t,e,i){if(!Jt(e))return N.lang.invalidDate||"";var n,t=Kt(t,"%Y-%m-%d %H:%M:%S"),r=new H(e-v(e)),o=r[Y](),s=r[G](),a=r[q](),l=r[V](),h=r[J](),c=N.lang,u=c.weekdays,p=c.shortWeekdays,r=Vt({a:p?p[s]:u[s].substr(0,3),A:u[s],d:m(a),e:m(a,2," "),w:s,b:c.shortMonths[l],B:c.months[l],m:m(l+1),y:h.toString().substr(2,2),Y:h,H:m(o),k:o,I:m(o%12||12),l:o%12||12,M:m(r[X]()),p:o<12?"AM":"PM",P:o<12?"am":"pm",S:m(r.getSeconds()),L:m(at(e%1e3),3)},rt.dateFormats);for(n in r)for(;t.indexOf("%"+n)!==-1;)t=t.replace("%"+n,"function"==typeof r[n]?r[n](e):r[n]);return i?t.substr(0,1).toUpperCase()+t.substr(1):t},$={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},rt.numberFormat=function(t,e,i,n){var o,s,t=+t||0,e=+e,a=N.lang,l=(t.toString().split(".")[1]||"").length,h=Math.abs(t);return e===-1?e=Math.min(l,20):Jt(e)||(e=2),o=String(r(h.toFixed(e))),s=o.length>3?o.length%3:0,i=Kt(i,a.decimalPoint),n=Kt(n,a.thousandsSep),t=t<0?"-":"",t+=s?o.substr(0,s)+n:"",t+=o.substr(s).replace(/(\d{3})(?=\d)/g,"$1"+n),e&&(n=Math.abs(h-o+Math.pow(10,-Math.max(e,l)-1)),t+=i+n.toFixed(e).slice(2)),t},Math.easeInOutSine=function(t){return-.5*(Math.cos(Math.PI*t)-1)},Ft=function(e,i){var n;return"width"===i?Math.min(e.offsetWidth,e.scrollWidth)-Ft(e,"padding-left")-Ft(e,"padding-right"):"height"===i?Math.min(e.offsetHeight,e.scrollHeight)-Ft(e,"padding-top")-Ft(e,"padding-bottom"):(n=t.getComputedStyle(e,void 0))&&r(n.getPropertyValue(i))},Nt=function(t,e){return e.indexOf?e.indexOf(t):[].indexOf.call(e,t)},$t=function(t,e){return[].filter.call(t,e)},zt=function(t,e){for(var i=[],n=0,r=t.length;n<r;n++)i[n]=e.call(t[n],t[n],n,t);return i},Ht=function(e){var i=ot.documentElement,e=e.getBoundingClientRect();return{top:e.top+(t.pageYOffset||i.scrollTop)-(i.clientTop||0),left:e.left+(t.pageXOffset||i.scrollLeft)-(i.clientLeft||0)}},Gt=function(t){for(var e=qt.length;e--;)qt[e].elem===t&&(qt[e].stopped=!0)},jt=function(t,e){return Array.prototype.forEach.call(t,e)},Wt=function(e,i,n){function r(i){i.target=i.srcElement||t,n.call(e,i)}var o=e.hcEvents=e.hcEvents||{};e.addEventListener?e.addEventListener(i,n,!1):e.attachEvent&&(e.hcEventsIE||(e.hcEventsIE={}),e.hcEventsIE[n.toString()]=r,e.attachEvent("on"+i,r)),o[i]||(o[i]=[]),o[i].push(n)},Ut=function(t,e,i){function n(e,i){t.removeEventListener?t.removeEventListener(e,i,!1):t.attachEvent&&(i=t.hcEventsIE[i.toString()],t.detachEvent("on"+e,i))}function r(){var i,r,o;if(t.nodeName)for(o in e?(i={},i[e]=!0):i=a,i)if(a[o])for(r=a[o].length;r--;)n(o,a[o][r])}var o,s,a=t.hcEvents;a&&(e?(o=a[e]||[],i?(s=Nt(i,o),s>-1&&(o.splice(s,1),a[e]=o),n(e,i)):(r(),a[e]=[])):(r(),t.hcEvents={}))},Xt=function(t,e,i,n){var r;r=t.hcEvents;var o,s,i=i||{};if(ot.createEvent&&(t.dispatchEvent||t.fireEvent))r=ot.createEvent("Events"),r.initEvent(e,!0,!0),r.target=t,Vt(r,i),t.dispatchEvent?t.dispatchEvent(r):t.fireEvent(e,r);else if(r)for(r=r[e]||[],o=r.length,i.preventDefault||(i.preventDefault=function(){i.defaultPrevented=!0}),i.target=t,i.type||(i.type=e),e=0;e<o;e++)s=r[e],s.call(t,i)===!1&&i.preventDefault();n&&!i.defaultPrevented&&n(i)},Yt=function(t,e,r){var o,a,l,h,c="";s(r)||(o=arguments,r={duration:o[2],easing:o[3],complete:o[4]}),Jt(r.duration)||(r.duration=400),r.easing="function"==typeof r.easing?r.easing:Math[r.easing]||Math.easeInOutSine,r.curAnim=n(e);for(h in e)l=new i(t,r,h),a=null,"d"===h?(l.paths=l.initPath(t,t.d,e.d),l.toD=e.d,o=0,a=1):t.attr?o=t.attr(h):(o=parseFloat(Ft(t,h))||0,"opacity"!==h&&(c="px")),a||(a=e[h]),a.match&&a.match("px")&&(a=a.replace(/px/g,"")),l.run(o,a,c)},t.jQuery&&(t.jQuery.fn.highcharts=function(){var t=[].slice.call(arguments);if(this[0])return t[0]?(new(rt[o(t[0])?t.shift():"Chart"])(this[0],t[0],t[1]),this):Pt[c(this[0],"data-highcharts-chart")]}),ot&&!ot.defaultView&&(Ft=function(t,e){var i;return i={width:"clientWidth",height:"clientHeight"}[e],t.style[e]?r(t.style[e]):("opacity"===e&&(e="filter"),i?(t.style.zoom=1,Math.max(t[i]-2*Ft(t,"padding"),0)):(i=t.currentStyle[e.replace(/\-(\w)/g,function(t,e){return e.toUpperCase()})],"filter"===e&&(i=i.replace(/alpha\(opacity=([0-9]+)\)/,function(t,e){return e/100})),""===i?1:r(i)))}),Array.prototype.forEach||(jt=function(t,e){for(var i=0,n=t.length;i<n;i++)if(e.call(t[i],t[i],i,t)===!1)return i}),Array.prototype.indexOf||(Nt=function(t,e){var i,n=0;if(e)for(i=e.length;n<i;n++)if(e[n]===t)return n;return-1}),Array.prototype.filter||($t=function(t,e){for(var i=[],n=0,r=t.length;n<r;n++)e(t[n],n)&&i.push(t[n]);return i}),rt.Fx=i,rt.inArray=Nt,rt.each=jt,rt.grep=$t,rt.offset=Ht,rt.map=zt,rt.addEvent=Wt,rt.removeEvent=Ut,rt.fireEvent=Xt,rt.animate=Yt,rt.animObject=D,rt.stop=Gt,N={colors:"#7cb5ec,#434348,#90ed7d,#f7a35c,#8085e9,#f15c80,#e4d354,#2b908f,#f45b5b,#91e8e1".split(","),symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:"January,February,March,April,May,June,July,August,September,October,November,December".split(","),shortMonths:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec".split(","),weekdays:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday".split(","),decimalPoint:".",numericSymbols:"k,M,G,T,P,E".split(","),resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{useUTC:!0,canvasToolsURL:"http://code.highcharts.com/modules/canvas-tools.js",
VMLRadialGradientURL:"http://code.highcharts.com/4.2.5/gfx/vml-radial-gradient.png"},chart:{borderColor:"#4572A7",borderRadius:0,defaultSeriesType:"line",ignoreHiddenSeries:!0,spacing:[10,10,15,10],backgroundColor:"#FFFFFF",plotBorderColor:"#C0C0C0",resetZoomButton:{theme:{zIndex:20},position:{align:"right",x:-10,y:10}}},title:{text:"Chart title",align:"center",margin:15,style:{color:"#333333",fontSize:"18px"},widthAdjust:-44},subtitle:{text:"",align:"center",style:{color:"#555555"},widthAdjust:-44},plotOptions:{line:{allowPointSelect:!1,showCheckbox:!1,animation:{duration:1e3},events:{},lineWidth:2,marker:{lineWidth:0,radius:4,lineColor:"#FFFFFF",states:{hover:{enabled:!0,lineWidthPlus:1,radiusPlus:2},select:{fillColor:"#FFFFFF",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{align:"center",formatter:function(){return null===this.y?"":rt.numberFormat(this.y,-1)},style:{color:"contrast",fontSize:"11px",fontWeight:"bold",textShadow:"0 0 6px contrast, 0 0 3px contrast"},verticalAlign:"bottom",x:0,y:0,padding:5},cropThreshold:300,pointRange:0,softThreshold:!0,states:{hover:{lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{marker:{}}},stickyTracking:!0,turboThreshold:1e3}},labels:{style:{position:"absolute",color:"#3E576F"}},legend:{enabled:!0,align:"center",layout:"horizontal",labelFormatter:function(){return this.name},borderColor:"#909090",borderRadius:0,navigation:{activeColor:"#274b6d",inactiveColor:"#CCC"},shadow:!1,itemStyle:{color:"#333333",fontSize:"12px",fontWeight:"bold"},itemHoverStyle:{color:"#000"},itemHiddenStyle:{color:"#CCC"},itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"white",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:Ct,backgroundColor:"rgba(249, 249, 249, .85)",borderWidth:1,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %b %e, %H:%M:%S.%L",second:"%A, %b %e, %H:%M:%S",minute:"%A, %b %e, %H:%M",hour:"%A, %b %e, %H:%M",day:"%A, %b %e, %Y",week:"Week from %A, %b %e, %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerFormat:'<span style="font-size: 10px">{point.key}</span><br/>',pointFormat:'<span style="color:{point.color}">●</span> {series.name}: <b>{point.y}</b><br/>',shadow:!0,snap:Tt?25:10,style:{color:"#333333",cursor:"default",fontSize:"12px",padding:"8px",pointerEvents:"none",whiteSpace:"nowrap"}},credits:{enabled:!0,text:"Highcharts.com",href:"http://www.highcharts.com",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#909090",fontSize:"9px"}}};var Qt=N.plotOptions,te=Qt.line;L(),E.prototype={parsers:[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(t){return[r(t[1]),r(t[2]),r(t[3]),parseFloat(t[4],10)]}},{regex:/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/,parse:function(t){return[r(t[1],16),r(t[2],16),r(t[3],16),1]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(t){return[r(t[1]),r(t[2]),r(t[3]),1]}}],init:function(t){var e,i,n,r;if((this.input=t)&&t.stops)this.stops=zt(t.stops,function(t){return new E(t[1])});else for(n=this.parsers.length;n--&&!i;)r=this.parsers[n],(e=r.regex.exec(t))&&(i=r.parse(e));this.rgba=i||[]},get:function(t){var e,i=this.input,r=this.rgba;return this.stops?(e=n(i),e.stops=[].concat(e.stops),jt(this.stops,function(i,n){e.stops[n]=[e.stops[n][0],i.get(t)]})):e=r&&Jt(r[0])?"rgb"===t||!t&&1===r[3]?"rgb("+r[0]+","+r[1]+","+r[2]+")":"a"===t?r[3]:"rgba("+r.join(",")+")":i,e},brighten:function(t){var e,i=this.rgba;if(this.stops)jt(this.stops,function(e){e.brighten(t)});else if(Jt(t)&&0!==t)for(e=0;e<3;e++)i[e]+=r(255*t),i[e]<0&&(i[e]=0),i[e]>255&&(i[e]=255);return this},setOpacity:function(t){return this.rgba[3]=t,this}},P.prototype={opacity:1,textProps:"direction,fontSize,fontWeight,fontFamily,fontStyle,color,lineHeight,width,textDecoration,textOverflow,textShadow".split(","),init:function(t,e){this.element="span"===e?f(e):ot.createElementNS(kt,e),this.renderer=t},animate:function(t,e,i){return e=Kt(e,this.renderer.globalAnimation,!0),Gt(this),e?(i&&(e.complete=i),Yt(this,t,e)):this.attr(t,null,i),this},colorGradient:function(t,e,i){var r,o,s,l,c,u,p,d,f,g,m,v,y=this.renderer,b=[];if(t.linearGradient?o="linearGradient":t.radialGradient&&(o="radialGradient"),o){s=t[o],c=y.gradients,p=t.stops,g=i.radialReference,a(s)&&(t[o]=s={x1:s[0],y1:s[1],x2:s[2],y2:s[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===o&&g&&!h(s.gradientUnits)&&(l=s,s=n(s,y.getRadialAttr(g,l),{gradientUnits:"userSpaceOnUse"}));for(m in s)"id"!==m&&b.push(m,s[m]);for(m in p)b.push(p[m]);b=b.join(","),c[b]?g=c[b].attr("id"):(s.id=g="highcharts-"+Lt++,c[b]=u=y.createElement(o).attr(s).add(y.defs),u.radAttr=l,u.stops=[],jt(p,function(t){0===t[1].indexOf("rgba")?(r=E(t[1]),d=r.get("rgb"),f=r.get("a")):(d=t[1],f=1),t=y.createElement("stop").attr({offset:t[0],"stop-color":d,"stop-opacity":f}).add(u),u.stops.push(t)})),v="url("+y.url+"#"+g+")",i.setAttribute(e,v),i.gradient=b,t.toString=function(){return v}}},applyTextShadow:function(t){var e,i=this.element,n=t.indexOf("contrast")!==-1,o={},s=this.renderer.forExport,a=s||i.style.textShadow!==R&&!bt;n&&(o.textShadow=t=t.replace(/contrast/g,this.renderer.getContrast(i.style.fill))),(wt||s)&&(o.textRendering="geometricPrecision"),a?this.css(o):(this.fakeTS=!0,this.ySetter=this.xSetter,e=[].slice.call(i.getElementsByTagName("tspan")),jt(t.split(/\s?,\s?/g),function(t){var n,o,s=i.firstChild,t=t.split(" ");n=t[t.length-1],(o=t[t.length-2])&&jt(e,function(t,e){var a;0===e&&(t.setAttribute("x",i.getAttribute("x")),e=i.getAttribute("y"),t.setAttribute("y",e||0),null===e&&i.setAttribute("y",0)),a=t.cloneNode(1),c(a,{"class":"highcharts-text-shadow",fill:n,stroke:n,"stroke-opacity":1/ct(r(o),3),"stroke-width":o,"stroke-linejoin":"round"}),i.insertBefore(a,s)})}))},attr:function(t,e,i){var n,r,o,s=this.element,a=this;if("string"==typeof t&&e!==R&&(n=t,t={},t[n]=e),"string"==typeof t)a=(this[t+"Getter"]||this._defaultGetter).call(this,t,s);else{for(n in t)e=t[n],o=!1,this.symbolName&&/^(x|y|width|height|r|start|end|innerR|anchorX|anchorY)/.test(n)&&(r||(this.symbolAttr(t),r=!0),o=!0),!this.rotation||"x"!==n&&"y"!==n||(this.doTransform=!0),o||(o=this[n+"Setter"]||this._defaultSetter,o.call(this,e,n,s),this.shadows&&/^(width|height|visibility|x|y|d|transform|cx|cy|r)$/.test(n)&&this.updateShadows(n,e,o));this.doTransform&&(this.updateTransform(),this.doTransform=!1)}return i&&i(),a},updateShadows:function(t,e,i){for(var n=this.shadows,r=n.length;r--;)i.call(n[r],"height"===t?Math.max(e-(n[r].cutHeight||0),0):"d"===t?this.d:e,t,n[r])},addClass:function(t){var e=this.element,i=c(e,"class")||"";return i.indexOf(t)===-1&&c(e,"class",i+" "+t),this},symbolAttr:function(t){var e=this;jt("x,y,r,start,end,width,height,innerR,anchorX,anchorY".split(","),function(i){e[i]=Kt(t[i],e[i])}),e.attr({d:e.renderer.symbols[e.symbolName](e.x,e.y,e.width,e.height,e)})},clip:function(t){return this.attr("clip-path",t?"url("+this.renderer.url+"#"+t.id+")":"none")},crisp:function(t){var e,i,n={},r=this.strokeWidth||0;i=at(r)%2/2,t.x=lt(t.x||this.x||0)+i,t.y=lt(t.y||this.y||0)+i,t.width=lt((t.width||this.width||0)-2*i),t.height=lt((t.height||this.height||0)-2*i),t.strokeWidth=r;for(e in t)this[e]!==t[e]&&(this[e]=n[e]=t[e]);return n},css:function(t){var e,i,n=this.styles,o={},s=this.element,a="";if(e=!n,t&&t.color&&(t.fill=t.color),n)for(i in t)t[i]!==n[i]&&(o[i]=t[i],e=!0);if(e){if(e=this.textWidth=t&&t.width&&"text"===s.nodeName.toLowerCase()&&r(t.width)||this.textWidth,n&&(t=Vt(n,o)),this.styles=t,e&&(At||!Ct&&this.renderer.forExport)&&delete t.width,bt&&!Ct)d(this.element,t);else{n=function(t,e){return"-"+e.toLowerCase()};for(i in t)a+=i.replace(/([A-Z])/g,n)+":"+t[i]+";";c(s,"style",a)}e&&this.added&&this.renderer.buildText(this)}return this},on:function(t,e){var i=this,n=i.element;return B&&"click"===t?(n.ontouchstart=function(t){i.touchEventFired=H.now(),t.preventDefault(),e.call(n,t)},n.onclick=function(t){(vt.indexOf("Android")===-1||H.now()-(i.touchEventFired||0)>1100)&&e.call(n,t)}):n["on"+t]=e,this},setRadialReference:function(t){var e=this.renderer.gradients[this.element.gradient];return this.element.radialReference=t,e&&e.radAttr&&e.animate(this.renderer.getRadialAttr(t,e.radAttr)),this},translate:function(t,e){return this.attr({translateX:t,translateY:e})},invert:function(){return this.inverted=!0,this.updateTransform(),this},updateTransform:function(){var t=this.translateX||0,e=this.translateY||0,i=this.scaleX,n=this.scaleY,r=this.inverted,o=this.rotation,s=this.element;r&&(t+=this.attr("width"),e+=this.attr("height")),t=["translate("+t+","+e+")"],r?t.push("rotate(90) scale(-1,1)"):o&&t.push("rotate("+o+" "+(s.getAttribute("x")||0)+" "+(s.getAttribute("y")||0)+")"),(h(i)||h(n))&&t.push("scale("+Kt(i,1)+" "+Kt(n,1)+")"),t.length&&s.setAttribute("transform",t.join(" "))},toFront:function(){var t=this.element;return t.parentNode.appendChild(t),this},align:function(t,e,i){var n,r,s,a,h={};return r=this.renderer,s=r.alignedObjects,t?(this.alignOptions=t,this.alignByTranslate=e,(!i||o(i))&&(this.alignTo=n=i||"renderer",l(s,this),s.push(this),i=null)):(t=this.alignOptions,e=this.alignByTranslate,n=this.alignTo),i=Kt(i,r[n],r),n=t.align,r=t.verticalAlign,s=(i.x||0)+(t.x||0),a=(i.y||0)+(t.y||0),"right"!==n&&"center"!==n||(s+=(i.width-(t.width||0))/{right:1,center:2}[n]),h[e?"translateX":"x"]=at(s),"bottom"!==r&&"middle"!==r||(a+=(i.height-(t.height||0))/({bottom:1,middle:2}[r]||1)),h[e?"translateY":"y"]=at(a),this[this.placed?"animate":"attr"](h),this.placed=!0,this.alignAttr=h,this},getBBox:function(t,e){var i,n,r,o,s=this.renderer,a=this.element,l=this.styles;n=this.textStr;var h,c,u,p=a.style,d=s.cache,f=s.cacheKeys;if(r=Kt(e,this.rotation),o=r*mt,n!==R&&(u=["",r||0,l&&l.fontSize,a.style.width].join(","),u=""===n||Rt.test(n)?"num:"+n.toString().length+u:n+u),u&&!t&&(i=d[u]),!i){if(a.namespaceURI===kt||s.forExport){try{c=this.fakeTS&&function(t){jt(a.querySelectorAll(".highcharts-text-shadow"),function(e){e.style.display=t})},St&&p.textShadow?(h=p.textShadow,p.textShadow=""):c&&c("none"),i=a.getBBox?Vt({},a.getBBox()):{width:a.offsetWidth,height:a.offsetHeight},h?p.textShadow=h:c&&c("")}catch(g){}(!i||i.width<0)&&(i={width:0,height:0})}else i=this.htmlGetBBox();if(s.isSVG&&(s=i.width,n=i.height,bt&&l&&"11px"===l.fontSize&&"16.9"===n.toPrecision(3)&&(i.height=n=14),r&&(i.width=pt(n*ft(o))+pt(s*dt(o)),i.height=pt(n*dt(o))+pt(s*ft(o)))),u){for(;f.length>250;)delete d[f.shift()];d[u]||f.push(u),d[u]=i}}return i},show:function(t){return this.attr({visibility:t?"inherit":"visible"})},hide:function(){return this.attr({visibility:"hidden"})},fadeOut:function(t){var e=this;e.animate({opacity:0},{duration:t||150,complete:function(){e.attr({y:-9999})}})},add:function(t){var e,i=this.renderer,n=this.element;return t&&(this.parentGroup=t),this.parentInverted=t&&t.inverted,void 0!==this.textStr&&i.buildText(this),this.added=!0,(!t||t.handleZ||this.zIndex)&&(e=this.zIndexSetter()),e||(t?t.element:i.box).appendChild(n),this.onAdd&&this.onAdd(),this},safeRemoveChild:function(t){var e=t.parentNode;e&&e.removeChild(t)},destroy:function(){var t,e,i=this,n=i.element||{},r=i.shadows,o=i.renderer.isSVG&&"SPAN"===n.nodeName&&i.parentGroup;if(n.onclick=n.onmouseout=n.onmouseover=n.onmousemove=n.point=null,Gt(i),i.clipPath&&(i.clipPath=i.clipPath.destroy()),i.stops){for(e=0;e<i.stops.length;e++)i.stops[e]=i.stops[e].destroy();i.stops=null}for(i.safeRemoveChild(n),r&&jt(r,function(t){i.safeRemoveChild(t)});o&&o.div&&0===o.div.childNodes.length;)n=o.parentGroup,i.safeRemoveChild(o.div),delete o.div,o=n;i.alignTo&&l(i.renderer.alignedObjects,i);for(t in i)delete i[t];return null},shadow:function(t,e,i){var n,r,o,s,a,l,h=[],u=this.element;if(t){for(s=Kt(t.width,3),a=(t.opacity||.15)/s,l=this.parentInverted?"(-1,-1)":"("+Kt(t.offsetX,1)+", "+Kt(t.offsetY,1)+")",n=1;n<=s;n++)r=u.cloneNode(0),o=2*s+1-2*n,c(r,{isShadow:"true",stroke:t.color||"black","stroke-opacity":a*n,"stroke-width":o,transform:"translate"+l,fill:"none"}),i&&(c(r,"height",ct(c(r,"height")-o,0)),r.cutHeight=o),e?e.element.appendChild(r):u.parentNode.insertBefore(r,u),h.push(r);this.shadows=h}return this},xGetter:function(t){return"circle"===this.element.nodeName&&(t={x:"cx",y:"cy"}[t]||t),this._defaultGetter(t)},_defaultGetter:function(t){return t=Kt(this[t],this.element?this.element.getAttribute(t):null,0),/^[\-0-9\.]+$/.test(t)&&(t=parseFloat(t)),t},dSetter:function(t,e,i){t&&t.join&&(t=t.join(" ")),/(NaN| {2}|^$)/.test(t)&&(t="M 0 0"),i.setAttribute(e,t),this[e]=t},dashstyleSetter:function(t){var e,i=this["stroke-width"];if("inherit"===i&&(i=1),t=t&&t.toLowerCase()){for(t=t.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(","),e=t.length;e--;)t[e]=r(t[e])*i;t=t.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",t)}},alignSetter:function(t){this.element.setAttribute("text-anchor",{left:"start",center:"middle",right:"end"}[t])},opacitySetter:function(t,e,i){this[e]=t,i.setAttribute(e,t)},titleSetter:function(t){var e=this.element.getElementsByTagName("title")[0];e||(e=ot.createElementNS(kt,"title"),this.element.appendChild(e)),e.firstChild&&e.removeChild(e.firstChild),e.appendChild(ot.createTextNode(String(Kt(t),"").replace(/<[^>]*>/g,"")))},textSetter:function(t){t!==this.textStr&&(delete this.bBox,this.textStr=t,this.added&&this.renderer.buildText(this))},fillSetter:function(t,e,i){"string"==typeof t?i.setAttribute(e,t):t&&this.colorGradient(t,e,i)},visibilitySetter:function(t,e,i){"inherit"===t?i.removeAttribute(e):i.setAttribute(e,t)},zIndexSetter:function(t,e){var i,n,o,s=this.renderer,a=this.parentGroup,s=(a||s).element||s.box,l=this.element;i=this.added;var c;if(h(t)&&(l.zIndex=t,t=+t,this[e]===t&&(i=!1),this[e]=t),i){for((t=this.zIndex)&&a&&(a.handleZ=!0),a=s.childNodes,c=0;c<a.length&&!o;c++)i=a[c],n=i.zIndex,i!==l&&(r(n)>t||!h(t)&&h(n))&&(s.insertBefore(l,i),o=!0);o||s.appendChild(l)}return o},_defaultSetter:function(t,e,i){i.setAttribute(e,t)}},P.prototype.yGetter=P.prototype.xGetter,P.prototype.translateXSetter=P.prototype.translateYSetter=P.prototype.rotationSetter=P.prototype.verticalAlignSetter=P.prototype.scaleXSetter=P.prototype.scaleYSetter=function(t,e){this[e]=t,this.doTransform=!0},P.prototype["stroke-widthSetter"]=P.prototype.strokeSetter=function(t,e,i){this[e]=t,this.stroke&&this["stroke-width"]?(this.strokeWidth=this["stroke-width"],P.prototype.fillSetter.call(this,this.stroke,"stroke",i),i.setAttribute("stroke-width",this["stroke-width"]),this.hasStroke=!0):"stroke-width"===e&&0===t&&this.hasStroke&&(i.removeAttribute("stroke"),this.hasStroke=!1)};var ee=function(){this.init.apply(this,arguments)};ee.prototype={Element:P,init:function(e,i,n,r,o,s){var a,r=this.createElement("svg").attr({version:"1.1"}).css(this.getStyle(r));a=r.element,e.appendChild(a),e.innerHTML.indexOf("xmlns")===-1&&c(a,"xmlns",kt),this.isSVG=!0,this.box=a,this.boxWrapper=r,this.alignedObjects=[],this.url=(St||wt)&&ot.getElementsByTagName("base").length?t.location.href.replace(/#.*?$/,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"",this.createElement("desc").add().element.appendChild(ot.createTextNode("Created with Highcharts 4.2.5")),this.defs=this.createElement("defs").add(),this.allowHTML=s,this.forExport=o,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.setSize(i,n,!1);var l;St&&e.getBoundingClientRect&&(this.subPixelFix=i=function(){d(e,{left:0,top:0}),l=e.getBoundingClientRect(),d(e,{left:ht(l.left)-l.left+"px",top:ht(l.top)-l.top+"px"})},i(),Wt(t,"resize",i))},getStyle:function(t){return this.style=Vt({fontFamily:'"Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif',fontSize:"12px"},t)},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var e=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),k(this.gradients||{}),this.gradients=null,e&&(this.defs=e.destroy()),this.subPixelFix&&Ut(t,"resize",this.subPixelFix),this.alignedObjects=null},createElement:function(t){var e=new this.Element;return e.init(this,t),e},draw:function(){},getRadialAttr:function(t,e){return{cx:t[0]-t[2]/2+e.cx*t[2],cy:t[1]-t[2]/2+e.cy*t[2],r:e.r*t[2]}},buildText:function(t){for(var e,i,n,o=t.element,s=this,a=s.forExport,l=Kt(t.textStr,"").toString(),h=l.indexOf("<")!==-1,u=o.childNodes,p=c(o,"x"),f=t.styles,g=t.textWidth,m=f&&f.lineHeight,v=f&&f.textShadow,y=f&&"ellipsis"===f.textOverflow,b=u.length,x=g&&!t.added&&this.box,w=function(t){return m?r(m):s.fontMetrics(/(px|em)$/.test(t&&t.style.fontSize)?t.style.fontSize:f&&f.fontSize||s.style.fontSize||12,t).h},S=function(t){return t.replace(/&lt;/g,"<").replace(/&gt;/g,">")};b--;)o.removeChild(u[b]);h||v||y||l.indexOf(" ")!==-1?(e=/<.*style="([^"]+)".*>/,i=/<.*href="(http[^"]+)".*>/,x&&x.appendChild(o),l=h?l.replace(/<(b|strong)>/g,'<span style="font-weight:bold">').replace(/<(i|em)>/g,'<span style="font-style:italic">').replace(/<a/g,"<span").replace(/<\/(b|strong|i|em|a)>/g,"</span>").split(/<br.*?>/g):[l],l=$t(l,function(t){return""!==t}),jt(l,function(r,l){var h,u=0,r=r.replace(/^\s+|\s+$/g,"").replace(/<span/g,"|||<span").replace(/<\/span>/g,"</span>|||");h=r.split("|||"),jt(h,function(r){if(""!==r||1===h.length){var m,v={},b=ot.createElementNS(kt,"tspan");if(e.test(r)&&(m=r.match(e)[1].replace(/(;| |^)color([ :])/,"$1fill$2"),c(b,"style",m)),i.test(r)&&!a&&(c(b,"onclick",'location.href="'+r.match(i)[1]+'"'),d(b,{cursor:"pointer"})),r=S(r.replace(/<(.|\n)*?>/g,"")||" ")," "!==r){if(b.appendChild(ot.createTextNode(r)),u?v.dx=0:l&&null!==p&&(v.x=p),c(b,v),o.appendChild(b),!u&&l&&(!Ct&&a&&d(b,{display:"block"}),c(b,"dy",w(b))),g){for(var x,T,v=r.replace(/([^\^])-/g,"$1- ").split(" "),k=h.length>1||l||v.length>1&&"nowrap"!==f.whiteSpace,C=[],_=w(b),A=1,D=t.rotation,L=r,E=L.length;(k||y)&&(v.length||C.length);)t.rotation=0,x=t.getBBox(!0),T=x.width,!Ct&&s.forExport&&(T=s.measureSpanWidth(b.firstChild.data,t.styles)),x=T>g,void 0===n&&(n=x),y&&n?(E/=2,""===L||!x&&E<.5?v=[]:(L=r.substring(0,L.length+(x?-1:1)*ht(E)),v=[L+(g>3?"…":"")],b.removeChild(b.firstChild))):x&&1!==v.length?(b.removeChild(b.firstChild),C.unshift(v.pop())):(v=C,C=[],v.length&&(A++,b=ot.createElementNS(kt,"tspan"),c(b,{dy:_,x:p}),m&&c(b,"style",m),o.appendChild(b)),T>g&&(g=T)),v.length&&b.appendChild(ot.createTextNode(v.join(" ").replace(/- /g,"-")));t.rotation=D}u++}}})}),n&&t.attr("title",t.textStr),x&&x.removeChild(o),v&&t.applyTextShadow&&t.applyTextShadow(v)):o.appendChild(ot.createTextNode(S(l)))},getContrast:function(t){return t=E(t).rgba,t[0]+t[1]+t[2]>384?"#000000":"#FFFFFF"},button:function(t,e,i,r,o,s,a,l,h){var c,u,p,d,f,g,m=this.label(t,e,i,h,null,null,null,null,"button"),v=0,t={x1:0,y1:0,x2:0,y2:1},o=n({"stroke-width":1,stroke:"#CCCCCC",fill:{linearGradient:t,stops:[[0,"#FEFEFE"],[1,"#F6F6F6"]]},r:2,padding:5,style:{color:"black"}},o);return p=o.style,delete o.style,s=n(o,{stroke:"#68A",fill:{linearGradient:t,stops:[[0,"#FFF"],[1,"#ACF"]]}},s),d=s.style,delete s.style,a=n(o,{stroke:"#68A",fill:{linearGradient:t,stops:[[0,"#9BD"],[1,"#CDF"]]}},a),f=a.style,delete a.style,l=n(o,{style:{color:"#CCC"}},l),g=l.style,delete l.style,Wt(m.element,bt?"mouseover":"mouseenter",function(){3!==v&&m.attr(s).css(d)}),Wt(m.element,bt?"mouseout":"mouseleave",function(){3!==v&&(c=[o,s,a][v],u=[p,d,f][v],m.attr(c).css(u))}),m.setState=function(t){(m.state=v=t)?2===t?m.attr(a).css(f):3===t&&m.attr(l).css(g):m.attr(o).css(p)},m.on("click",function(t){3!==v&&r.call(m,t)}).attr(o).css(Vt({cursor:"default"},p))},crispLine:function(t,e){return t[1]===t[4]&&(t[1]=t[4]=at(t[1])-e%2/2),t[2]===t[5]&&(t[2]=t[5]=at(t[2])+e%2/2),t},path:function(t){var e={fill:"none"};return a(t)?e.d=t:s(t)&&Vt(e,t),this.createElement("path").attr(e)},circle:function(t,e,i){return t=s(t)?t:{x:t,y:e,r:i},e=this.createElement("circle"),e.xSetter=e.ySetter=function(t,e,i){i.setAttribute("c"+e,t)},e.attr(t)},arc:function(t,e,i,n,r,o){return s(t)&&(e=t.y,i=t.r,n=t.innerR,r=t.start,o=t.end,t=t.x),t=this.symbol("arc",t||0,e||0,i||0,i||0,{innerR:n||0,start:r||0,end:o||0}),t.r=i,t},rect:function(t,e,i,n,r,o){var r=s(t)?t.r:r,a=this.createElement("rect"),t=s(t)?t:t===R?{}:{x:t,y:e,width:ct(i,0),height:ct(n,0)};return o!==R&&(a.strokeWidth=o,t=a.crisp(t)),r&&(t.r=r),a.rSetter=function(t,e,i){c(i,{rx:t,ry:t})},a.attr(t)},setSize:function(t,e,i){var n=this.alignedObjects,r=n.length;for(this.width=t,this.height=e,this.boxWrapper[Kt(i,!0)?"animate":"attr"]({width:t,height:e});r--;)n[r].align()},g:function(t){var e=this.createElement("g");return h(t)?e.attr({"class":"highcharts-"+t}):e},image:function(t,e,i,n,r){var o={preserveAspectRatio:"none"};return arguments.length>1&&Vt(o,{x:e,y:i,width:n,height:r}),o=this.createElement("image").attr(o),o.element.setAttributeNS?o.element.setAttributeNS("http://www.w3.org/1999/xlink","href",t):o.element.setAttribute("hc-svg-href",t),o},symbol:function(t,e,i,n,r,o){var s,a,l,h=this,c=this.symbols[t],c=c&&c(at(e),at(i),n,r,o),u=/^url\((.*?)\)$/;return c?(s=this.path(c),Vt(s,{symbolName:t,x:e,y:i,width:n,height:r}),o&&Vt(s,o)):u.test(t)&&(l=function(t,e){t.element&&(t.attr({width:e[0],height:e[1]}),t.alignByTranslate||t.translate(at((n-e[0])/2),at((r-e[1])/2)))},a=t.match(u)[1],t=Dt[a]||o&&o.width&&o.height&&[o.width,o.height],s=this.image(a).attr({x:e,y:i}),s.isImg=!0,t?l(s,t):(s.attr({width:0,height:0}),f("img",{onload:function(){0===this.width&&(d(this,{position:"absolute",top:"-999em"}),ot.body.appendChild(this)),l(s,Dt[a]=[this.width,this.height]),this.parentNode&&this.parentNode.removeChild(this),h.imgCount--,!h.imgCount&&Pt[h.chartIndex].onload&&Pt[h.chartIndex].onload()},src:a}),this.imgCount++)),s},symbols:{circle:function(t,e,i,n){var r=.166*i;return["M",t+i/2,e,"C",t+i+r,e,t+i+r,e+n,t+i/2,e+n,"C",t-r,e+n,t-r,e,t+i/2,e,"Z"]},square:function(t,e,i,n){return["M",t,e,"L",t+i,e,t+i,e+n,t,e+n,"Z"]},triangle:function(t,e,i,n){return["M",t+i/2,e,"L",t+i,e+n,t,e+n,"Z"]},"triangle-down":function(t,e,i,n){return["M",t,e,"L",t+i,e,t+i/2,e+n,"Z"]},diamond:function(t,e,i,n){return["M",t+i/2,e,"L",t+i,e+n/2,t+i/2,e+n,t,e+n/2,"Z"]},arc:function(t,e,i,n,r){var o=r.start,i=r.r||i||n,s=r.end-.001,n=r.innerR,a=r.open,l=dt(o),h=ft(o),c=dt(s),s=ft(s),r=r.end-o<gt?0:1;return["M",t+i*l,e+i*h,"A",i,i,0,r,1,t+i*c,e+i*s,a?"M":"L",t+n*c,e+n*s,"A",n,n,0,r,0,t+n*l,e+n*h,a?"":"Z"]},callout:function(t,e,i,n,r){var o,s=ut(r&&r.r||0,i,n),a=s+6,l=r&&r.anchorX,r=r&&r.anchorY;return o=["M",t+s,e,"L",t+i-s,e,"C",t+i,e,t+i,e,t+i,e+s,"L",t+i,e+n-s,"C",t+i,e+n,t+i,e+n,t+i-s,e+n,"L",t+s,e+n,"C",t,e+n,t,e+n,t,e+n-s,"L",t,e+s,"C",t,e,t,e,t+s,e],l&&l>i&&r>e+a&&r<e+n-a?o.splice(13,3,"L",t+i,r-6,t+i+6,r,t+i,r+6,t+i,e+n-s):l&&l<0&&r>e+a&&r<e+n-a?o.splice(33,3,"L",t,r+6,t-6,r,t,r-6,t,e+s):r&&r>n&&l>t+a&&l<t+i-a?o.splice(23,3,"L",l+6,e+n,l,e+n+6,l-6,e+n,t+s,e+n):r&&r<0&&l>t+a&&l<t+i-a&&o.splice(3,3,"L",l-6,e,l,e-6,l+6,e,i-s,e),o}},clipRect:function(t,e,i,n){var r="highcharts-"+Lt++,o=this.createElement("clipPath").attr({id:r}).add(this.defs),t=this.rect(t,e,i,n,0).add(o);return t.id=r,t.clipPath=o,t.count=0,t},text:function(t,e,i,n){var r=At||!Ct&&this.forExport,o={};return!n||!this.allowHTML&&this.forExport?(o.x=Math.round(e||0),i&&(o.y=Math.round(i)),(t||0===t)&&(o.text=t),t=this.createElement("text").attr(o),r&&t.css({position:"absolute"}),n||(t.xSetter=function(t,e,i){var n,r,o=i.getElementsByTagName("tspan"),s=i.getAttribute(e);for(r=0;r<o.length;r++)n=o[r],n.getAttribute(e)===s&&n.setAttribute(e,t);i.setAttribute(e,t)}),t):this.html(t,e,i)},fontMetrics:function(e,i){var n,o,e=e||this.style.fontSize;return!e&&i&&t.getComputedStyle&&(i=i.element||i,e=(n=t.getComputedStyle(i,""))&&n.fontSize),e=/px/.test(e)?r(e):/em/.test(e)?12*parseFloat(e):12,n=e<24?e+3:at(1.2*e),o=at(.8*n),{h:n,b:o,f:e}},rotCorr:function(t,e,i){var n=t;return e&&i&&(n=ct(n*dt(e*mt),4)),{x:-t/3*ft(e*mt),y:n}},label:function(t,e,i,r,o,s,a,l,c){var u,p,d,f,g,m,v,y,b,x,w,S=this,T=S.g(c),k=S.text("",0,0,a).attr({zIndex:1}),C=0,_=3,A=0,D=0,L={};b=function(){var t,e;t=k.element.style,p=(void 0===d||void 0===f||T.styles.textAlign)&&h(k.textStr)&&k.getBBox(),T.width=(d||p.width||0)+2*_+A,T.height=(f||p.height||0)+2*_,v=_+S.fontMetrics(t&&t.fontSize,k).b,y&&(u||(t=D,e=(l?-v:0)+D,T.box=u=r?S.symbol(r,t,e,T.width,T.height,L):S.rect(t,e,T.width,T.height,0,L["stroke-width"]),u.isImg||u.attr("fill","none"),u.add(T)),u.isImg||u.attr(Vt({width:at(T.width),height:at(T.height)},L)),L=null)},x=function(){var t,e=T.styles,e=e&&e.textAlign,i=A+_;t=l?0:v,h(d)&&p&&("center"===e||"right"===e)&&(i+={center:.5,right:1}[e]*(d-p.width)),i===k.x&&t===k.y||(k.attr("x",i),t!==R&&k.attr("y",t)),k.x=i,k.y=t},w=function(t,e){u?u.attr(t,e):L[t]=e},T.onAdd=function(){k.add(T),T.attr({text:t||0===t?t:"",x:e,y:i}),u&&h(o)&&T.attr({anchorX:o,anchorY:s})},T.widthSetter=function(t){d=t},T.heightSetter=function(t){f=t},T.paddingSetter=function(t){h(t)&&t!==_&&(_=T.padding=t,x())},T.paddingLeftSetter=function(t){h(t)&&t!==A&&(A=t,x())},T.alignSetter=function(t){t={left:0,center:.5,right:1}[t],t!==C&&(C=t,p&&T.attr({x:g}))},T.textSetter=function(t){t!==R&&k.textSetter(t),b(),x()},T["stroke-widthSetter"]=function(t,e){t&&(y=!0),D=t%2/2,w(e,t)},T.strokeSetter=T.fillSetter=T.rSetter=function(t,e){"fill"===e&&t&&(y=!0),w(e,t)},T.anchorXSetter=function(t,e){o=t,w(e,at(t)-D-g)},T.anchorYSetter=function(t,e){s=t,w(e,t-m)},T.xSetter=function(t){T.x=t,C&&(t-=C*((d||p.width)+2*_)),g=at(t),T.attr("translateX",g)},T.ySetter=function(t){m=T.y=at(t),T.attr("translateY",m)};var E=T.css;return Vt(T,{css:function(t){if(t){var e={},t=n(t);jt(T.textProps,function(i){t[i]!==R&&(e[i]=t[i],delete t[i])}),k.css(e)}return E.call(T,t)},getBBox:function(){return{width:p.width+2*_,height:p.height+2*_,x:p.x-_,y:p.y-_}},shadow:function(t){return u&&u.shadow(t),T},destroy:function(){Ut(T.element,"mouseenter"),Ut(T.element,"mouseleave"),k&&(k=k.destroy()),u&&(u=u.destroy()),P.prototype.destroy.call(T),T=S=b=x=w=null}})}},O=ee,Vt(P.prototype,{htmlCss:function(t){var e=this.element;return(e=t&&"SPAN"===e.tagName&&t.width)&&(delete t.width,this.textWidth=e,this.updateTransform()),t&&"ellipsis"===t.textOverflow&&(t.whiteSpace="nowrap",t.overflow="hidden"),this.styles=Vt(this.styles,t),d(this.element,t),this},htmlGetBBox:function(){var t=this.element;return"text"===t.nodeName&&(t.style.position="absolute"),{x:t.offsetLeft,y:t.offsetTop,width:t.offsetWidth,height:t.offsetHeight}},htmlUpdateTransform:function(){if(this.added){var t=this.renderer,e=this.element,i=this.translateX||0,n=this.translateY||0,o=this.x||0,s=this.y||0,a=this.textAlign||"left",l={left:0,center:.5,right:1}[a],c=this.shadows,u=this.styles;if(d(e,{marginLeft:i,marginTop:n}),c&&jt(c,function(t){d(t,{marginLeft:i+1,marginTop:n+1})}),this.inverted&&jt(e.childNodes,function(i){t.invertChild(i,e)}),"SPAN"===e.tagName){var c=this.rotation,p=r(this.textWidth),f=u&&u.whiteSpace,g=[c,a,e.innerHTML,this.textWidth,this.textAlign].join(",");g!==this.cTT&&(u=t.fontMetrics(e.style.fontSize).b,h(c)&&this.setSpanRotation(c,l,u),e.offsetWidth>p&&/[ \-]/.test(e.textContent||e.innerText)?(d(e,{width:p+"px",display:"block",whiteSpace:f||"normal"}),this.hasTextWidth=!0):this.hasTextWidth&&(d(e,{width:"",display:"",whiteSpace:f||"nowrap"}),this.hasTextWidth=!1),this.getSpanCorrection(this.hasTextWidth?p:e.offsetWidth,u,l,c,a)),d(e,{left:o+(this.xCorr||0)+"px",top:s+(this.yCorr||0)+"px"}),wt&&(u=e.offsetHeight),this.cTT=g}}else this.alignOnAdd=!0},setSpanRotation:function(t,e,i){var n={},r=bt?"-ms-transform":wt?"-webkit-transform":St?"MozTransform":yt?"-o-transform":"";n[r]=n.transform="rotate("+t+"deg)",n[r+(St?"Origin":"-origin")]=n.transformOrigin=100*e+"% "+i+"px",d(this.element,n)},getSpanCorrection:function(t,e,i){this.xCorr=-t*i,this.yCorr=-e}}),Vt(ee.prototype,{html:function(t,e,i){var n=this.createElement("span"),r=n.element,o=n.renderer,s=o.isSVG,a=function(t,e){jt(["opacity","visibility"],function(i){Zt(t,i+"Setter",function(t,i,n,r){t.call(this,i,n,r),e[n]=i})})};return n.textSetter=function(t){t!==r.innerHTML&&delete this.bBox,r.innerHTML=this.textStr=t,n.htmlUpdateTransform()},s&&a(n,n.element.style),n.xSetter=n.ySetter=n.alignSetter=n.rotationSetter=function(t,e){"align"===e&&(e="textAlign"),n[e]=t,n.htmlUpdateTransform()},n.attr({text:t,x:at(e),y:at(i)}).css({position:"absolute",fontFamily:this.style.fontFamily,fontSize:this.style.fontSize}),r.style.whiteSpace="nowrap",n.css=n.htmlCss,s&&(n.add=function(t){var e,i=o.box.parentNode,s=[];if(this.parentGroup=t){if(e=t.div,!e){for(;t;)s.push(t),t=t.parentGroup;jt(s.reverse(),function(t){var n,r=c(t.element,"class");r&&(r={className:r}),e=t.div=t.div||f(It,r,{position:"absolute",left:(t.translateX||0)+"px",top:(t.translateY||0)+"px",opacity:t.opacity},e||i),n=e.style,Vt(t,{translateXSetter:function(e,i){n.left=e+"px",t[i]=e,t.doTransform=!0},translateYSetter:function(e,i){n.top=e+"px",t[i]=e,t.doTransform=!0}}),a(t,n)})}}else e=i;return e.appendChild(r),n.added=!0,n.alignOnAdd&&n.htmlUpdateTransform(),n}),n}});var ie;if(!Ct&&!At){ie={init:function(t,e){var i=["<",e,' filled="f" stroked="f"'],n=["position: ","absolute",";"],r=e===It;("shape"===e||r)&&n.push("left:0;top:0;width:1px;height:1px;"),n.push("visibility: ",r?"hidden":"visible"),i.push(' style="',n.join(""),'"/>'),e&&(i=r||"span"===e||"img"===e?i.join(""):t.prepVML(i),this.element=f(i)),this.renderer=t},add:function(t){var e=this.renderer,i=this.element,n=e.box,r=t&&t.inverted,n=t?t.element||t:n;return t&&(this.parentGroup=t),r&&e.invertChild(i,n),n.appendChild(i),this.added=!0,this.alignOnAdd&&!this.deferUpdateTransform&&this.updateTransform(),this.onAdd&&this.onAdd(),this},updateTransform:P.prototype.htmlUpdateTransform,setSpanRotation:function(){var t=this.rotation,e=dt(t*mt),i=ft(t*mt);d(this.element,{filter:t?["progid:DXImageTransform.Microsoft.Matrix(M11=",e,", M12=",-i,", M21=",i,", M22=",e,", sizingMethod='auto expand')"].join(""):"none"})},getSpanCorrection:function(t,e,i,n,r){var o,s=n?dt(n*mt):1,a=n?ft(n*mt):0,l=Kt(this.elemHeight,this.element.offsetHeight);this.xCorr=s<0&&-t,this.yCorr=a<0&&-l,o=s*a<0,this.xCorr+=a*e*(o?1-i:i),this.yCorr-=s*e*(n?o?i:1-i:1),r&&"left"!==r&&(this.xCorr-=t*i*(s<0?-1:1),n&&(this.yCorr-=l*i*(a<0?-1:1)),d(this.element,{textAlign:r}))},pathToVML:function(t){for(var e=t.length,i=[];e--;)Jt(t[e])?i[e]=at(10*t[e])-5:"Z"===t[e]?i[e]="x":(i[e]=t[e],!t.isArc||"wa"!==t[e]&&"at"!==t[e]||(i[e+5]===i[e+7]&&(i[e+7]+=t[e+7]>t[e+5]?1:-1),i[e+6]===i[e+8]&&(i[e+8]+=t[e+8]>t[e+6]?1:-1)));return i.join(" ")||"x"},clip:function(t){var e,i=this;return t?(e=t.members,l(e,i),e.push(i),i.destroyClip=function(){l(e,i)},t=t.getCSS(i)):(i.destroyClip&&i.destroyClip(),t={clip:xt?"inherit":"rect(auto)"}),i.css(t)},css:P.prototype.htmlCss,safeRemoveChild:function(t){t.parentNode&&C(t)},destroy:function(){return this.destroyClip&&this.destroyClip(),P.prototype.destroy.apply(this)},on:function(e,i){return this.element["on"+e]=function(){var e=t.event;e.target=e.srcElement,i(e)},this},cutOffPath:function(t,e){var i,t=t.split(/[ ,]/);return i=t.length,9!==i&&11!==i||(t[i-4]=t[i-2]=r(t[i-2])-10*e),t.join(" ")},shadow:function(t,e,i){var n,o,s,a,l,h,c,u=[],p=this.element,d=this.renderer,g=p.style,m=p.path;if(m&&"string"!=typeof m.value&&(m="x"),l=m,t){for(h=Kt(t.width,3),c=(t.opacity||.15)/h,n=1;n<=3;n++)a=2*h+1-2*n,i&&(l=this.cutOffPath(m.value,a+.5)),s=['<shape isShadow="true" strokeweight="',a,'" filled="false" path="',l,'" coordsize="10 10" style="',p.style.cssText,'" />'],o=f(d.prepVML(s),null,{left:r(g.left)+Kt(t.offsetX,1),top:r(g.top)+Kt(t.offsetY,1)}),i&&(o.cutOff=a+1),s=['<stroke color="',t.color||"black",'" opacity="',c*n,'"/>'],
f(d.prepVML(s),null,null,o),e?e.element.appendChild(o):p.parentNode.insertBefore(o,p),u.push(o);this.shadows=u}return this},updateShadows:Et,setAttr:function(t,e){xt?this.element[t]=e:this.element.setAttribute(t,e)},classSetter:function(t){this.element.className=t},dashstyleSetter:function(t,e,i){(i.getElementsByTagName("stroke")[0]||f(this.renderer.prepVML(["<stroke/>"]),null,null,i))[e]=t||"solid",this[e]=t},dSetter:function(t,e,i){var n=this.shadows,t=t||[];if(this.d=t.join&&t.join(" "),i.path=t=this.pathToVML(t),n)for(i=n.length;i--;)n[i].path=n[i].cutOff?this.cutOffPath(t,n[i].cutOff):t;this.setAttr(e,t)},fillSetter:function(t,e,i){var n=i.nodeName;"SPAN"===n?i.style.color=t:"IMG"!==n&&(i.filled="none"!==t,this.setAttr("fillcolor",this.renderer.color(t,i,e,this)))},"fill-opacitySetter":function(t,e,i){f(this.renderer.prepVML(["<",e.split("-")[0],' opacity="',t,'"/>']),null,null,i)},opacitySetter:Et,rotationSetter:function(t,e,i){i=i.style,this[e]=i[e]=t,i.left=-at(ft(t*mt)+1)+"px",i.top=at(dt(t*mt))+"px"},strokeSetter:function(t,e,i){this.setAttr("strokecolor",this.renderer.color(t,i,e,this))},"stroke-widthSetter":function(t,e,i){i.stroked=!!t,this[e]=t,Jt(t)&&(t+="px"),this.setAttr("strokeweight",t)},titleSetter:function(t,e){this.setAttr(e,t)},visibilitySetter:function(t,e,i){"inherit"===t&&(t="visible"),this.shadows&&jt(this.shadows,function(i){i.style[e]=t}),"DIV"===i.nodeName&&(t="hidden"===t?"-999em":0,xt||(i.style[e]=t?"visible":"hidden"),e="top"),i.style[e]=t},xSetter:function(t,e,i){this[e]=t,"x"===e?e="left":"y"===e&&(e="top"),this.updateClipping?(this[e]=t,this.updateClipping()):i.style[e]=t},zIndexSetter:function(t,e,i){i.style[e]=t}},ie["stroke-opacitySetter"]=ie["fill-opacitySetter"],rt.VMLElement=ie=g(P,ie),ie.prototype.ySetter=ie.prototype.widthSetter=ie.prototype.heightSetter=ie.prototype.xSetter;var ne={Element:ie,isIE8:vt.indexOf("MSIE 8.0")>-1,init:function(t,e,i,n){var r;if(this.alignedObjects=[],n=this.createElement(It).css(Vt(this.getStyle(n),{position:"relative"})),r=n.element,t.appendChild(n.element),this.isVML=!0,this.box=r,this.boxWrapper=n,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.setSize(e,i,!1),!ot.namespaces.hcv){ot.namespaces.add("hcv","urn:schemas-microsoft-com:vml");try{ot.createStyleSheet().cssText="hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } "}catch(o){ot.styleSheets[0].cssText+="hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } "}}},isHidden:function(){return!this.box.offsetWidth},clipRect:function(t,e,i,n){var r=this.createElement(),o=s(t);return Vt(r,{members:[],count:0,left:(o?t.x:t)+1,top:(o?t.y:e)+1,width:(o?t.width:i)-1,height:(o?t.height:n)-1,getCSS:function(t){var e=t.element,i=e.nodeName,t=t.inverted,n=this.top-("shape"===i?e.offsetTop:0),r=this.left,e=r+this.width,o=n+this.height,n={clip:"rect("+at(t?r:n)+"px,"+at(t?o:e)+"px,"+at(t?e:o)+"px,"+at(t?n:r)+"px)"};return!t&&xt&&"DIV"===i&&Vt(n,{width:e+"px",height:o+"px"}),n},updateClipping:function(){jt(r.members,function(t){t.element&&t.css(r.getCSS(t))})}})},color:function(t,e,i,n){var r,o,s,a=this,l=/^rgba/,h="none";if(t&&t.linearGradient?s="gradient":t&&t.radialGradient&&(s="pattern"),s){var c,u,p,d,g,m,v,y,b=t.linearGradient||t.radialGradient,x="",t=t.stops,w=[],S=function(){o=['<fill colors="'+w.join(",")+'" opacity="',g,'" o:opacity2="',d,'" type="',s,'" ',x,'focus="100%" method="any" />'],f(a.prepVML(o),null,null,e)};if(p=t[0],y=t[t.length-1],p[0]>0&&t.unshift([0,p[1]]),y[0]<1&&t.push([1,y[1]]),jt(t,function(t,e){l.test(t[1])?(r=E(t[1]),c=r.get("rgb"),u=r.get("a")):(c=t[1],u=1),w.push(100*t[0]+"% "+c),e?(g=u,m=c):(d=u,v=c)}),"fill"===i)if("gradient"===s)i=b.x1||b[0]||0,t=b.y1||b[1]||0,p=b.x2||b[2]||0,b=b.y2||b[3]||0,x='angle="'+(90-180*st.atan((b-t)/(p-i))/gt)+'"',S();else{var T,h=b.r,k=2*h,C=2*h,_=b.cx,A=b.cy,D=e.radialReference,h=function(){D&&(T=n.getBBox(),_+=(D[0]-T.x)/T.width-.5,A+=(D[1]-T.y)/T.height-.5,k*=D[2]/T.width,C*=D[2]/T.height),x='src="'+N.global.VMLRadialGradientURL+'" size="'+k+","+C+'" origin="0.5,0.5" position="'+_+","+A+'" color2="'+v+'" ',S()};n.added?h():n.onAdd=h,h=m}else h=c}else l.test(t)&&"IMG"!==e.tagName?(r=E(t),n[i+"-opacitySetter"](r.get("a"),i,e),h=r.get("rgb")):(h=e.getElementsByTagName(i),h.length&&(h[0].opacity=1,h[0].type="solid"),h=t);return h},prepVML:function(t){var e=this.isIE8,t=t.join("");return e?(t=t.replace("/>",' xmlns="urn:schemas-microsoft-com:vml" />'),t=t.indexOf('style="')===-1?t.replace("/>",' style="display:inline-block;behavior:url(#default#VML);" />'):t.replace('style="','style="display:inline-block;behavior:url(#default#VML);')):t=t.replace("<","<hcv:"),t},text:ee.prototype.html,path:function(t){var e={coordsize:"10 10"};return a(t)?e.d=t:s(t)&&Vt(e,t),this.createElement("shape").attr(e)},circle:function(t,e,i){var n=this.symbol("circle");return s(t)&&(i=t.r,e=t.y,t=t.x),n.isCircle=!0,n.r=i,n.attr({x:t,y:e})},g:function(t){var e;return t&&(e={className:"highcharts-"+t,"class":"highcharts-"+t}),this.createElement(It).attr(e)},image:function(t,e,i,n,r){var o=this.createElement("img").attr({src:t});return arguments.length>1&&o.attr({x:e,y:i,width:n,height:r}),o},createElement:function(t){return"rect"===t?this.symbol(t):ee.prototype.createElement.call(this,t)},invertChild:function(t,e){var i=this,n=e.style,o="IMG"===t.tagName&&t.style;d(t,{flip:"x",left:r(n.width)-(o?r(o.top):1),top:r(n.height)-(o?r(o.left):1),rotation:-90}),jt(t.childNodes,function(e){i.invertChild(e,t)})},symbols:{arc:function(t,e,i,n,r){var o=r.start,s=r.end,a=r.r||i||n,i=r.innerR,n=dt(o),l=ft(o),h=dt(s),c=ft(s);return s-o===0?["x"]:(o=["wa",t-a,e-a,t+a,e+a,t+a*n,e+a*l,t+a*h,e+a*c],r.open&&!i&&o.push("e","M",t,e),o.push("at",t-i,e-i,t+i,e+i,t+i*h,e+i*c,t+i*n,e+i*l,"x","e"),o.isArc=!0,o)},circle:function(t,e,i,n,r){return r&&(i=n=2*r.r),r&&r.isCircle&&(t-=i/2,e-=n/2),["wa",t,e,t+i,e+n,t+i,e+n/2,t+i,e+n/2,"e"]},rect:function(t,e,i,n,r){return ee.prototype.symbols[h(r)&&r.r?"callout":"square"].call(0,t,e,i,n,r)}}};rt.VMLRenderer=ie=function(){this.init.apply(this,arguments)},ie.prototype=n(ee.prototype,ne),O=ie}ee.prototype.measureSpanWidth=function(t,e){var i,n=ot.createElement("span");return i=ot.createTextNode(t),n.appendChild(i),d(n,e),this.box.appendChild(n),i=n.offsetWidth,C(n),i};var re;At&&(rt.CanVGRenderer=ie=function(){kt="http://www.w3.org/1999/xhtml"},ie.prototype.symbols={},re=function(){function t(){var t,i=e.length;for(t=0;t<i;t++)e[t]();e=[]}var e=[];return{push:function(i,n){if(0===e.length){var r=ot.getElementsByTagName("head")[0],o=ot.createElement("script");o.type="text/javascript",o.src=n,o.onload=t,r.appendChild(o)}e.push(i)}}}(),O=ie),M.prototype={addLabel:function(){var t,e=this.axis,i=e.options,r=e.chart,o=e.categories,s=e.names,a=this.pos,l=i.labels,c=e.tickPositions,u=a===c[0],p=a===c[c.length-1],s=o?Kt(o[a],s[a],a):a,o=this.label,c=c.info;e.isDatetimeAxis&&c&&(t=i.dateTimeLabelFormats[c.higherRanks[a]||c.unitName]),this.isFirst=u,this.isLast=p,i=e.labelFormatter.call({axis:e,chart:r,isFirst:u,isLast:p,dateTimeLabelFormat:t,value:e.isLog?_(e.lin2log(s)):s}),h(o)?o&&o.attr({text:i}):(this.labelLength=(this.label=o=h(i)&&l.enabled?r.renderer.text(i,0,0,l.useHTML).css(n(l.style)).add(e.labelGroup):null)&&o.getBBox().width,this.rotation=0)},getLabelSize:function(){return this.label?this.label.getBBox()[this.axis.horiz?"height":"width"]:0},handleOverflow:function(t){var e,i=this.axis,n=t.x,r=i.chart.chartWidth,o=i.chart.spacing,s=Kt(i.labelLeft,ut(i.pos,o[3])),o=Kt(i.labelRight,ct(i.pos+i.len,r-o[1])),a=this.label,l=this.rotation,h={left:0,center:.5,right:1}[i.labelAlign],c=a.getBBox().width,u=i.getSlotWidth(),p=u,d=1,f={};l?l<0&&n-h*c<s?e=at(n/dt(l*mt)-s):l>0&&n+h*c>o&&(e=at((r-n)/dt(l*mt))):(r=n+(1-h)*c,n-h*c<s?p=t.x+p*(1-h)-s:r>o&&(p=o-t.x+p*h,d=-1),p=ut(u,p),p<u&&"center"===i.labelAlign&&(t.x+=d*(u-p-h*(u-ut(c,p)))),(c>p||i.autoRotation&&a.styles.width)&&(e=p)),e&&(f.width=e,i.options.labels.style.textOverflow||(f.textOverflow="ellipsis"),a.css(f))},getPosition:function(t,e,i,n){var r=this.axis,o=r.chart,s=n&&o.oldChartHeight||o.chartHeight;return{x:t?r.translate(e+i,null,null,n)+r.transB:r.left+r.offset+(r.opposite?(n&&o.oldChartWidth||o.chartWidth)-r.right-r.left:0),y:t?s-r.bottom+r.offset-(r.opposite?r.height:0):s-r.translate(e+i,null,null,n)-r.transB}},getLabelPosition:function(t,e,i,n,r,o,s,a){var l=this.axis,c=l.transA,u=l.reversed,p=l.staggerLines,d=l.tickRotCorr||{x:0,y:0},f=r.y;return h(f)||(f=0===l.side?i.rotation?-8:-i.getBBox().height:2===l.side?d.y+8:dt(i.rotation*mt)*(d.y-i.getBBox(!1,0).height/2)),t=t+r.x+d.x-(o&&n?o*c*(u?-1:1):0),e=e+f-(o&&!n?o*c*(u?1:-1):0),p&&(i=s/(a||1)%p,l.opposite&&(i=p-i-1),e+=i*(l.labelOffset/p)),{x:t,y:at(e)}},getMarkPath:function(t,e,i,n,r,o){return o.crispLine(["M",t,e,"L",t+(r?0:-i),e+(r?i:0)],n)},render:function(t,e,i){var n=this.axis,r=n.options,o=n.chart.renderer,s=n.horiz,a=this.type,l=this.label,h=this.pos,c=r.labels,u=this.gridLine,p=a?a+"Grid":"grid",d=a?a+"Tick":"tick",f=r[p+"LineWidth"],g=r[p+"LineColor"],m=r[p+"LineDashStyle"],p=n.tickSize(d),d=r[d+"Color"],v=this.mark,y=c.step,b=!0,x=n.tickmarkOffset,w=this.getPosition(s,h,x,e),S=w.x,w=w.y,T=s&&S===n.pos+n.len||!s&&w===n.pos?-1:1,i=Kt(i,1);this.isActive=!0,f&&(h=n.getPlotLinePath(h+x,f*T,e,!0),u===R&&(u={stroke:g,"stroke-width":f},m&&(u.dashstyle=m),a||(u.zIndex=1),e&&(u.opacity=0),this.gridLine=u=f?o.path(h).attr(u).add(n.gridGroup):null),!e&&u&&h&&u[this.isNew?"attr":"animate"]({d:h,opacity:i})),p&&(n.opposite&&(p[0]=-p[0]),a=this.getMarkPath(S,w,p[0],p[1]*T,s,o),v?v.animate({d:a,opacity:i}):this.mark=o.path(a).attr({stroke:d,"stroke-width":p[1],opacity:i}).add(n.axisGroup)),l&&Jt(S)&&(l.xy=w=this.getLabelPosition(S,w,l,s,c,x,t,y),this.isFirst&&!this.isLast&&!Kt(r.showFirstLabel,1)||this.isLast&&!this.isFirst&&!Kt(r.showLastLabel,1)?b=!1:s&&!n.isRadial&&!c.step&&!c.rotation&&!e&&0!==i&&this.handleOverflow(w),y&&t%y&&(b=!1),b&&Jt(w.y)?(w.opacity=i,l[this.isNew?"attr":"animate"](w),this.isNew=!1):l.attr("y",-9999))},destroy:function(){k(this,this.axis)}},rt.PlotLineOrBand=function(t,e){this.axis=t,e&&(this.options=e,this.id=e.id)},rt.PlotLineOrBand.prototype={render:function(){var t,e=this,i=e.axis,r=i.horiz,o=e.options,s=o.label,a=e.label,l=o.width,c=o.to,u=o.from,p=h(u)&&h(c),d=o.value,f=o.dashStyle,g=e.svgElem,m=[],v=o.color,y=Kt(o.zIndex,0),b=o.events,x={},w=i.chart.renderer,m=i.log2lin;if(i.isLog&&(u=m(u),c=m(c),d=m(d)),l)m=i.getPlotLinePath(d,l),x={stroke:v,"stroke-width":l},f&&(x.dashstyle=f);else{if(!p)return;m=i.getPlotBandPath(u,c,o),v&&(x.fill=v),o.borderWidth&&(x.stroke=o.borderColor,x["stroke-width"]=o.borderWidth)}if(x.zIndex=y,g)m?(g.show(),g.animate({d:m})):(g.hide(),a&&(e.label=a=a.destroy()));else if(m&&m.length&&(e.svgElem=g=w.path(m).attr(x).add(),b))for(t in o=function(t){g.on(t,function(i){b[t].apply(e,[i])})},b)o(t);return s&&h(s.text)&&m&&m.length&&i.width>0&&i.height>0&&!m.flat?(s=n({align:r&&p&&"center",x:r?!p&&4:10,verticalAlign:!r&&p&&"middle",y:r?p?16:10:p?6:-4,rotation:r&&!p&&90},s),this.renderLabel(s,m,p,y)):a&&a.hide(),e},renderLabel:function(t,e,i,n){var r=this.label,o=this.axis.chart.renderer;r||(r={align:t.textAlign||t.align,rotation:t.rotation},r.zIndex=n,this.label=r=o.text(t.text,0,0,t.useHTML).attr(r).css(t.style).add()),n=[e[1],e[4],i?e[6]:e[1]],e=[e[2],e[5],i?e[7]:e[2]],i=S(n),o=S(e),r.align(t,!1,{x:i,y:o,width:T(n)-i,height:T(e)-o}),r.show()},destroy:function(){l(this.axis.plotLinesAndBands,this),delete this.axis,k(this)}};var oe=rt.Axis=function(){this.init.apply(this,arguments)};oe.prototype={defaultOptions:{dateTimeLabelFormats:{millisecond:"%H:%M:%S.%L",second:"%H:%M:%S",minute:"%H:%M",hour:"%H:%M",day:"%e. %b",week:"%e. %b",month:"%b '%y",year:"%Y"},endOnTick:!1,gridLineColor:"#D8D8D8",labels:{enabled:!0,style:{color:"#606060",cursor:"default",fontSize:"11px"},x:0},lineColor:"#C0D0E0",lineWidth:1,minPadding:.01,maxPadding:.01,minorGridLineColor:"#E0E0E0",minorGridLineWidth:1,minorTickColor:"#A0A0A0",minorTickLength:2,minorTickPosition:"outside",startOfWeek:1,startOnTick:!1,tickColor:"#C0D0E0",tickLength:10,tickmarkPlacement:"between",tickPixelInterval:100,tickPosition:"outside",title:{align:"middle",style:{color:"#707070"}},type:"linear"},defaultYAxisOptions:{endOnTick:!0,gridLineWidth:1,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8},lineWidth:0,maxPadding:.05,minPadding:.05,startOnTick:!0,title:{rotation:270,text:"Values"},stackLabels:{enabled:!1,formatter:function(){return rt.numberFormat(this.total,-1)},style:n(Qt.line.dataLabels.style,{color:"#000000"})}},defaultLeftAxisOptions:{labels:{x:-15},title:{rotation:270}},defaultRightAxisOptions:{labels:{x:15},title:{rotation:90}},defaultBottomAxisOptions:{labels:{autoRotation:[-45],x:0},title:{rotation:0}},defaultTopAxisOptions:{labels:{autoRotation:[-45],x:0},title:{rotation:0}},init:function(t,e){var i=e.isX;this.chart=t,this.horiz=t.inverted?!i:i,this.coll=(this.isXAxis=i)?"xAxis":"yAxis",this.opposite=e.opposite,this.side=e.side||(this.horiz?this.opposite?0:2:this.opposite?1:3),this.setOptions(e);var n=this.options,r=n.type;this.labelFormatter=n.labels.formatter||this.defaultLabelFormatter,this.userOptions=e,this.minPixelPadding=0,this.reversed=n.reversed,this.visible=n.visible!==!1,this.zoomEnabled=n.zoomEnabled!==!1,this.categories=n.categories||"category"===r,this.names=this.names||[],this.isLog="logarithmic"===r,this.isDatetimeAxis="datetime"===r,this.isLinked=h(n.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=n.minRange||n.maxZoom,this.range=n.range,this.offset=n.offset||0,this.stacks={},this.oldStacks={},this.stacksTouched=0,this.min=this.max=null,this.crosshair=Kt(n.crosshair,u(t.options.tooltip.crosshairs)[i?0:1],!1);var o,n=this.options.events;Nt(this,t.axes)===-1&&(i&&!this.isColorAxis?t.axes.splice(t.xAxis.length,0,this):t.axes.push(this),t[this.coll].push(this)),this.series=this.series||[],t.inverted&&i&&this.reversed===R&&(this.reversed=!0),this.removePlotLine=this.removePlotBand=this.removePlotBandOrLine;for(o in n)Wt(this,o,n[o]);this.isLog&&(this.val2lin=this.log2lin,this.lin2val=this.lin2log)},setOptions:function(t){this.options=n(this.defaultOptions,this.isXAxis?{}:this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],n(N[this.coll],t))},defaultLabelFormatter:function(){var t,e=this.axis,i=this.value,n=e.categories,r=this.dateTimeLabelFormat,o=N.lang.numericSymbols,s=o&&o.length,a=e.options.labels.format,e=e.isLog?i:e.tickInterval;if(a)t=y(a,this);else if(n)t=i;else if(r)t=j(r,i);else if(s&&e>=1e3)for(;s--&&t===R;)n=Math.pow(1e3,s+1),e>=n&&10*i%n===0&&null!==o[s]&&(t=rt.numberFormat(i/n,-1)+o[s]);return t===R&&(t=pt(i)>=1e4?rt.numberFormat(i,-1):rt.numberFormat(i,-1,R,"")),t},getSeriesExtremes:function(){var t=this,e=t.chart;t.hasVisibleSeries=!1,t.dataMin=t.dataMax=t.threshold=null,t.softThreshold=!t.isXAxis,t.buildStacks&&t.buildStacks(),jt(t.series,function(i){if(i.visible||!e.options.chart.ignoreHiddenSeries){var n,r=i.options,o=r.threshold;t.hasVisibleSeries=!0,t.isLog&&o<=0&&(o=null),t.isXAxis?(r=i.xData,r.length&&(i=S(r),!Jt(i)&&!(i instanceof H)&&(r=$t(r,function(t){return Jt(t)}),i=S(r)),t.dataMin=ut(Kt(t.dataMin,r[0]),i),t.dataMax=ct(Kt(t.dataMax,r[0]),T(r)))):(i.getExtremes(),n=i.dataMax,i=i.dataMin,h(i)&&h(n)&&(t.dataMin=ut(Kt(t.dataMin,i),i),t.dataMax=ct(Kt(t.dataMax,n),n)),h(o)&&(t.threshold=o),r.softThreshold&&!t.isLog||(t.softThreshold=!1))}})},translate:function(t,e,i,n,r,o){var s=this.linkedParent||this,a=1,l=0,h=n?s.oldTransA:s.transA,n=n?s.oldMin:s.min,c=s.minPixelPadding,r=(s.isOrdinal||s.isBroken||s.isLog&&r)&&s.lin2val;return h||(h=s.transA),i&&(a*=-1,l=s.len),s.reversed&&(a*=-1,l-=a*(s.sector||s.len)),e?(t=t*a+l,t-=c,t=t/h+n,r&&(t=s.lin2val(t))):(r&&(t=s.val2lin(t)),"between"===o&&(o=.5),t=a*(t-n)*h+l+a*c+(Jt(o)?h*o*s.pointRange:0)),t},toPixels:function(t,e){return this.translate(t,!1,!this.horiz,null,!0)+(e?0:this.pos)},toValue:function(t,e){return this.translate(t-(e?0:this.pos),!0,!this.horiz,null,!0)},getPlotLinePath:function(t,e,i,n,r){var o,s,a,l=this.chart,h=this.left,c=this.top,u=i&&l.oldChartHeight||l.chartHeight,p=i&&l.oldChartWidth||l.chartWidth;o=this.transB;var d=function(t,e,i){return(t<e||t>i)&&(n?t=ut(ct(e,t),i):a=!0),t},r=Kt(r,this.translate(t,null,null,i)),t=i=at(r+o);return o=s=at(u-r-o),Jt(r)?this.horiz?(o=c,s=u-this.bottom,t=i=d(t,h,h+this.width)):(t=h,i=p-this.right,o=s=d(o,c,c+this.height)):a=!0,a&&!n?null:l.renderer.crispLine(["M",t,o,"L",i,s],e||1)},getLinearTickPositions:function(t,e,i){var n,r=_(lt(e/t)*t),o=_(ht(i/t)*t),s=[];if(e===i&&Jt(e))return[e];for(e=r;e<=o&&(s.push(e),e=_(e+t),e!==n);)n=e;return s},getMinorTickPositions:function(){var t,e=this.options,i=this.tickPositions,n=this.minorTickInterval,r=[],o=this.pointRangePadding||0;t=this.min-o;var o=this.max+o,s=o-t;if(s&&s/n<this.len/3)if(this.isLog)for(o=i.length,t=1;t<o;t++)r=r.concat(this.getLogTickPositions(n,i[t-1],i[t],!0));else if(this.isDatetimeAxis&&"auto"===e.minorTickInterval)r=r.concat(this.getTimeTicks(this.normalizeTimeTickInterval(n),t,o,e.startOfWeek));else for(i=t+(i[0]-t)%n;i<=o;i+=n)r.push(i);return 0!==r.length&&this.trimTicks(r,e.startOnTick,e.endOnTick),r},adjustForMinRange:function(){var t,e,i,n,r,o,s,a=this.options,l=this.min,c=this.max,u=this.dataMax-this.dataMin>=this.minRange;this.isXAxis&&this.minRange===R&&!this.isLog&&(h(a.min)||h(a.max)?this.minRange=null:(jt(this.series,function(t){for(r=t.xData,i=o=t.xIncrement?1:r.length-1;i>0;i--)n=r[i]-r[i-1],(e===R||n<e)&&(e=n)}),this.minRange=ut(5*e,this.dataMax-this.dataMin))),c-l<this.minRange&&(s=this.minRange,t=(s-c+l)/2,t=[l-t,Kt(a.min,l-t)],u&&(t[2]=this.dataMin),l=T(t),c=[l+s,Kt(a.max,l+s)],u&&(c[2]=this.dataMax),c=S(c),c-l<s&&(t[0]=c-s,t[1]=Kt(a.min,c-s),l=T(t))),this.min=l,this.max=c},getClosest:function(){var t;return jt(this.series,function(e){var i=e.closestPointRange;!e.noSharedTooltip&&h(i)&&(t=h(t)?ut(t,i):i)}),t},setAxisTranslation:function(t){var e,i=this,n=i.max-i.min,r=i.axisPointRange||0,s=0,a=0,l=i.linkedParent,h=!!i.categories,c=i.transA,u=i.isXAxis;(u||h||r)&&(l?(s=l.minPointOffset,a=l.pointRangePadding):(e=i.getClosest(),jt(i.series,function(t){var n=h?1:u?Kt(t.options.pointRange,e,0):i.axisPointRange||0,t=t.options.pointPlacement;r=ct(r,n),i.single||(s=ct(s,o(t)?0:n/2),a=ct(a,"on"===t?0:n))})),l=i.ordinalSlope&&e?i.ordinalSlope/e:1,i.minPointOffset=s*=l,i.pointRangePadding=a*=l,i.pointRange=ut(r,n),u&&(i.closestPointRange=e)),t&&(i.oldTransA=c),i.translationSlope=i.transA=c=i.len/(n+a||1),i.transB=i.horiz?i.left:i.bottom,i.minPixelPadding=c*s},minFromRange:function(){return this.max-this.range},setTickInterval:function(t){var i,n,r,o,s=this,a=s.chart,l=s.options,c=s.isLog,u=s.log2lin,p=s.isDatetimeAxis,d=s.isXAxis,f=s.isLinked,g=l.maxPadding,m=l.minPadding,v=l.tickInterval,y=l.tickPixelInterval,w=s.categories,S=s.threshold,T=s.softThreshold;!p&&!w&&!f&&this.getTickAmount(),r=Kt(s.userMin,l.min),o=Kt(s.userMax,l.max),f?(s.linkedParent=a[s.coll][l.linkedTo],a=s.linkedParent.getExtremes(),s.min=Kt(a.min,a.dataMin),s.max=Kt(a.max,a.dataMax),l.type!==s.linkedParent.options.type&&e(11,1)):(!T&&h(S)&&(s.dataMin>=S?(i=S,m=0):s.dataMax<=S&&(n=S,g=0)),s.min=Kt(r,i,s.dataMin),s.max=Kt(o,n,s.dataMax)),c&&(!t&&ut(s.min,Kt(s.dataMin,s.min))<=0&&e(10,1),s.min=_(u(s.min),15),s.max=_(u(s.max),15)),s.range&&h(s.max)&&(s.userMin=s.min=r=ct(s.min,s.minFromRange()),s.userMax=o=s.max,s.range=null),Xt(s,"foundExtremes"),s.beforePadding&&s.beforePadding(),s.adjustForMinRange(),w||s.axisPointRange||s.usePercentage||f||!h(s.min)||!h(s.max)||!(u=s.max-s.min)||(!h(r)&&m&&(s.min-=u*m),!h(o)&&g&&(s.max+=u*g)),Jt(l.floor)&&(s.min=ct(s.min,l.floor)),Jt(l.ceiling)&&(s.max=ut(s.max,l.ceiling)),T&&h(s.dataMin)&&(S=S||0,!h(r)&&s.min<S&&s.dataMin>=S?s.min=S:!h(o)&&s.max>S&&s.dataMax<=S&&(s.max=S)),s.tickInterval=s.min===s.max||void 0===s.min||void 0===s.max?1:f&&!v&&y===s.linkedParent.options.tickPixelInterval?v=s.linkedParent.tickInterval:Kt(v,this.tickAmount?(s.max-s.min)/ct(this.tickAmount-1,1):void 0,w?1:(s.max-s.min)*y/ct(s.len,y)),d&&!t&&jt(s.series,function(t){t.processData(s.min!==s.oldMin||s.max!==s.oldMax)}),s.setAxisTranslation(!0),s.beforeSetTickPositions&&s.beforeSetTickPositions(),s.postProcessTickInterval&&(s.tickInterval=s.postProcessTickInterval(s.tickInterval)),s.pointRange&&!v&&(s.tickInterval=ct(s.pointRange,s.tickInterval)),t=Kt(l.minTickInterval,s.isDatetimeAxis&&s.closestPointRange),!v&&s.tickInterval<t&&(s.tickInterval=t),p||c||v||(s.tickInterval=x(s.tickInterval,null,b(s.tickInterval),Kt(l.allowDecimals,!(s.tickInterval>.5&&s.tickInterval<5&&s.max>1e3&&s.max<9999)),!!this.tickAmount)),!this.tickAmount&&this.len&&(s.tickInterval=s.unsquish()),this.setTickPositions()},setTickPositions:function(){var t,e,i=this.options,n=i.tickPositions,r=i.tickPositioner,o=i.startOnTick,s=i.endOnTick;this.tickmarkOffset=this.categories&&"between"===i.tickmarkPlacement&&1===this.tickInterval?.5:0,this.minorTickInterval="auto"===i.minorTickInterval&&this.tickInterval?this.tickInterval/5:i.minorTickInterval,this.tickPositions=t=n&&n.slice(),!t&&(t=this.isDatetimeAxis?this.getTimeTicks(this.normalizeTimeTickInterval(this.tickInterval,i.units),this.min,this.max,i.startOfWeek,this.ordinalPositions,this.closestPointRange,!0):this.isLog?this.getLogTickPositions(this.tickInterval,this.min,this.max):this.getLinearTickPositions(this.tickInterval,this.min,this.max),t.length>this.len&&(t=[t[0],t.pop()]),this.tickPositions=t,r&&(r=r.apply(this,[this.min,this.max])))&&(this.tickPositions=t=r),this.isLinked||(this.trimTicks(t,o,s),this.min===this.max&&h(this.min)&&!this.tickAmount&&(e=!0,this.min-=.5,this.max+=.5),this.single=e,!n&&!r&&this.adjustTickAmount())},trimTicks:function(t,e,i){var n=t[0],r=t[t.length-1],o=this.minPointOffset||0;if(e)this.min=n;else for(;this.min-o>t[0];)t.shift();if(i)this.max=r;else for(;this.max+o<t[t.length-1];)t.pop();0===t.length&&h(n)&&t.push((r+n)/2)},alignToOthers:function(){var t,e={},i=this.options;return this.chart.options.chart.alignTicks!==!1&&i.alignTicks!==!1&&jt(this.chart[this.coll],function(i){var n=i.options,n=[i.horiz?n.left:n.top,n.width,n.height,n.pane].join(",");i.series.length&&(e[n]?t=!0:e[n]=1)}),t},getTickAmount:function(){var t=this.options,e=t.tickAmount,i=t.tickPixelInterval;!h(t.tickInterval)&&this.len<i&&!this.isRadial&&!this.isLog&&t.startOnTick&&t.endOnTick&&(e=2),!e&&this.alignToOthers()&&(e=ht(this.len/i)+1),e<4&&(this.finalTickAmt=e,e=5),this.tickAmount=e},adjustTickAmount:function(){var t=this.tickInterval,e=this.tickPositions,i=this.tickAmount,n=this.finalTickAmt,r=e&&e.length;if(r<i){for(;e.length<i;)e.push(_(e[e.length-1]+t));this.transA*=(r-1)/(i-1),this.max=e[e.length-1]}else r>i&&(this.tickInterval*=2,this.setTickPositions());if(h(n)){for(t=i=e.length;t--;)(3===n&&t%2===1||n<=2&&t>0&&t<i-1)&&e.splice(t,1);this.finalTickAmt=R}},setScale:function(){var t,e;this.oldMin=this.min,this.oldMax=this.max,this.oldAxisLength=this.len,this.setAxisSize(),e=this.len!==this.oldAxisLength,jt(this.series,function(e){(e.isDirtyData||e.isDirty||e.xAxis.isDirty)&&(t=!0)}),e||t||this.isLinked||this.forceRedraw||this.userMin!==this.oldUserMin||this.userMax!==this.oldUserMax||this.alignToOthers()?(this.resetStacks&&this.resetStacks(),this.forceRedraw=!1,this.getSeriesExtremes(),this.setTickInterval(),this.oldUserMin=this.userMin,this.oldUserMax=this.userMax,this.isDirty||(this.isDirty=e||this.min!==this.oldMin||this.max!==this.oldMax)):this.cleanStacks&&this.cleanStacks()},setExtremes:function(t,e,i,n,r){var o=this,s=o.chart,i=Kt(i,!0);jt(o.series,function(t){delete t.kdTree}),r=Vt(r,{min:t,max:e}),Xt(o,"setExtremes",r,function(){o.userMin=t,o.userMax=e,o.eventArgs=r,i&&s.redraw(n)})},zoom:function(t,e){var i=this.dataMin,n=this.dataMax,r=this.options,o=ut(i,Kt(r.min,i)),r=ct(n,Kt(r.max,n));return this.allowZoomOutside||(h(i)&&t<=o&&(t=o),h(n)&&e>=r&&(e=r)),this.displayBtn=t!==R||e!==R,this.setExtremes(t,e,!1,R,{trigger:"zoom"}),!0},setAxisSize:function(){var t=this.chart,e=this.options,i=e.offsetLeft||0,n=this.horiz,r=Kt(e.width,t.plotWidth-i+(e.offsetRight||0)),o=Kt(e.height,t.plotHeight),s=Kt(e.top,t.plotTop),e=Kt(e.left,t.plotLeft+i),i=/%$/;i.test(o)&&(o=Math.round(parseFloat(o)/100*t.plotHeight)),i.test(s)&&(s=Math.round(parseFloat(s)/100*t.plotHeight+t.plotTop)),this.left=e,this.top=s,this.width=r,this.height=o,this.bottom=t.chartHeight-o-s,this.right=t.chartWidth-r-e,this.len=ct(n?r:o,0),this.pos=n?e:s},getExtremes:function(){var t=this.isLog,e=this.lin2log;return{min:t?_(e(this.min)):this.min,max:t?_(e(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(t){var e=this.isLog,i=this.lin2log,n=e?i(this.min):this.min,e=e?i(this.max):this.max;return null===t?t=e<0?e:n:n>t?t=n:e<t&&(t=e),this.translate(t,0,1,0,1)},autoLabelAlign:function(t){return t=(Kt(t,0)-90*this.side+720)%360,t>15&&t<165?"right":t>195&&t<345?"left":"center"},tickSize:function(t){var e=this.options,i=e[t+"Length"],n=Kt(e[t+"Width"],"tick"===t&&this.isXAxis?1:0);if(n&&i)return"inside"===e[t+"Position"]&&(i=-i),[i,n]},labelMetrics:function(){return this.chart.renderer.fontMetrics(this.options.labels.style.fontSize,this.ticks[0]&&this.ticks[0].label)},unsquish:function(){var t,e,i,n=this.options.labels,r=this.horiz,o=this.tickInterval,s=o,a=this.len/(((this.categories?1:0)+this.max-this.min)/o),l=n.rotation,c=this.labelMetrics(),u=Number.MAX_VALUE,p=function(t){return t/=a||1,t=t>1?ht(t):1,t*o};return r?(i=!n.staggerLines&&!n.step&&(h(l)?[l]:a<Kt(n.autoRotationLimit,80)&&n.autoRotation))&&jt(i,function(i){var n;(i===l||i&&i>=-90&&i<=90)&&(e=p(pt(c.h/ft(mt*i))),n=e+pt(i/360),n<u&&(u=n,t=i,s=e))}):n.step||(s=p(c.h)),this.autoRotation=i,this.labelRotation=Kt(t,l),s},getSlotWidth:function(){var t=this.chart,e=this.horiz,i=this.options.labels,n=Math.max(this.tickPositions.length-(this.categories?0:1),1),r=t.margin[3];return e&&(i.step||0)<2&&!i.rotation&&(this.staggerLines||1)*t.plotWidth/n||!e&&(r&&r-t.spacing[3]||.33*t.chartWidth)},renderUnsquish:function(){var t,e,i,r=this.chart,s=r.renderer,a=this.tickPositions,l=this.ticks,h=this.options.labels,c=this.horiz,u=this.getSlotWidth(),p=ct(1,at(u-2*(h.padding||5))),d={},f=this.labelMetrics(),g=h.style.textOverflow,m=0;if(o(h.rotation)||(d.rotation=h.rotation||0),this.autoRotation)jt(a,function(t){(t=l[t])&&t.labelLength>m&&(m=t.labelLength)}),m>p&&m>f.h?d.rotation=this.labelRotation:this.labelRotation=0;else if(u&&(t={width:p+"px"},!g))for(t.textOverflow="clip",e=a.length;!c&&e--;)i=a[e],(p=l[i].label)&&("ellipsis"===p.styles.textOverflow?p.css({textOverflow:"clip"}):l[i].labelLength>u&&p.css({width:u+"px"}),p.getBBox().height>this.len/a.length-(f.h-f.f)&&(p.specCss={textOverflow:"ellipsis"}));d.rotation&&(t={width:(m>.5*r.chartHeight?.33*r.chartHeight:r.chartHeight)+"px"},!g)&&(t.textOverflow="ellipsis"),(this.labelAlign=h.align||this.autoLabelAlign(this.labelRotation))&&(d.align=this.labelAlign),jt(a,function(e){var i=(e=l[e])&&e.label;i&&(i.attr(d),t&&i.css(n(t,i.specCss)),delete i.specCss,e.rotation=d.rotation)}),this.tickRotCorr=s.rotCorr(f.b,this.labelRotation||0,0!==this.side)},hasData:function(){return this.hasVisibleSeries||h(this.min)&&h(this.max)&&!!this.tickPositions},getOffset:function(){var t,e,i,n,r=this,o=r.chart,s=o.renderer,a=r.options,l=r.tickPositions,c=r.ticks,u=r.horiz,p=r.side,d=o.inverted?[1,0,3,2][p]:p,f=0,g=0,m=a.title,v=a.labels,y=0,b=r.opposite,x=o.axisOffset,o=o.clipOffset,w=[-1,1,1,-1][p],S=r.axisParent,T=this.tickSize("tick");if(t=r.hasData(),r.showAxis=e=t||Kt(a.showEmpty,!0),r.staggerLines=r.horiz&&v.staggerLines,r.axisGroup||(r.gridGroup=s.g("grid").attr({zIndex:a.gridZIndex||1}).add(S),r.axisGroup=s.g("axis").attr({zIndex:a.zIndex||2}).add(S),r.labelGroup=s.g("axis-labels").attr({zIndex:v.zIndex||7}).addClass("highcharts-"+r.coll.toLowerCase()+"-labels").add(S)),t||r.isLinked)jt(l,function(t){c[t]?c[t].addLabel():c[t]=new M(r,t)}),r.renderUnsquish(),v.reserveSpace!==!1&&(0===p||2===p||{1:"left",3:"right"}[p]===r.labelAlign||"center"===r.labelAlign)&&jt(l,function(t){y=ct(c[t].getLabelSize(),y)}),r.staggerLines&&(y*=r.staggerLines,r.labelOffset=y*(r.opposite?-1:1));else for(n in c)c[n].destroy(),delete c[n];m&&m.text&&m.enabled!==!1&&(r.axisTitle||((n=m.textAlign)||(n=(u?{low:"left",middle:"center",high:"right"}:{low:b?"right":"left",middle:"center",high:b?"left":"right"})[m.align]),r.axisTitle=s.text(m.text,0,0,m.useHTML).attr({zIndex:7,rotation:m.rotation||0,align:n}).addClass("highcharts-"+this.coll.toLowerCase()+"-title").css(m.style).add(r.axisGroup),r.axisTitle.isNew=!0),e&&(f=r.axisTitle.getBBox()[u?"height":"width"],i=m.offset,g=h(i)?0:Kt(m.margin,u?5:10)),r.axisTitle[e?"show":"hide"](!0)),r.offset=w*Kt(a.offset,x[p]),r.tickRotCorr=r.tickRotCorr||{x:0,y:0},s=0===p?-r.labelMetrics().h:2===p?r.tickRotCorr.y:0,g=Math.abs(y)+g,y&&(g-=s,g+=w*(u?Kt(v.y,r.tickRotCorr.y+8*w):v.x)),r.axisTitleMargin=Kt(i,g),x[p]=ct(x[p],r.axisTitleMargin+f+w*r.offset,g,t&&l.length&&T?T[0]:0),a=a.offset?0:2*lt(a.lineWidth/2),o[d]=ct(o[d],a)},getLinePath:function(t){var e=this.chart,i=this.opposite,n=this.offset,r=this.horiz,o=this.left+(i?this.width:0)+n,n=e.chartHeight-this.bottom-(i?this.height:0)+n;return i&&(t*=-1),e.renderer.crispLine(["M",r?this.left:o,r?n:this.top,"L",r?e.chartWidth-this.right:o,r?n:e.chartHeight-this.bottom],t)},getTitlePosition:function(){var t=this.horiz,e=this.left,i=this.top,n=this.len,o=this.options.title,s=t?e:i,a=this.opposite,l=this.offset,h=o.x||0,c=o.y||0,u=r(o.style.fontSize||12),n={low:s+(t?0:n),middle:s+n/2,high:s+(t?n:0)}[o.align],e=(t?i+this.height:e)+(t?1:-1)*(a?-1:1)*this.axisTitleMargin+(2===this.side?u:0);return{x:t?n+h:e+(a?this.width:0)+l+h,y:t?e+c-(a?this.height:0)+l:n+c}},render:function(){var t,e,i,n=this,r=n.chart,o=r.renderer,s=n.options,a=n.isLog,l=n.lin2log,h=n.isLinked,c=n.tickPositions,u=n.axisTitle,d=n.ticks,f=n.minorTicks,g=n.alternateBands,m=s.stackLabels,v=s.alternateGridColor,y=n.tickmarkOffset,b=s.lineWidth,x=r.hasRendered&&Jt(n.oldMin),w=n.showAxis,S=D(o.globalAnimation);n.labelEdge.length=0,n.overlap=!1,jt([d,f,g],function(t){for(var e in t)t[e].isActive=!1}),(n.hasData()||h)&&(n.minorTickInterval&&!n.categories&&jt(n.getMinorTickPositions(),function(t){f[t]||(f[t]=new M(n,t,"minor")),x&&f[t].isNew&&f[t].render(null,!0),f[t].render(null,!1,1)}),c.length&&(jt(c,function(t,e){(!h||t>=n.min&&t<=n.max)&&(d[t]||(d[t]=new M(n,t)),x&&d[t].isNew&&d[t].render(e,!0,.1),d[t].render(e))}),y&&(0===n.min||n.single))&&(d[-1]||(d[-1]=new M(n,(-1),null,(!0))),d[-1].render(-1)),v&&jt(c,function(t,o){i=c[o+1]!==R?c[o+1]+y:n.max-y,o%2===0&&t<n.max&&i<=n.max+(r.polar?-y:y)&&(g[t]||(g[t]=new rt.PlotLineOrBand(n)),e=t+y,g[t].options={from:a?l(e):e,to:a?l(i):i,color:v},g[t].render(),g[t].isActive=!0)}),n._addedPlotLB||(jt((s.plotLines||[]).concat(s.plotBands||[]),function(t){n.addPlotBandOrLine(t)}),n._addedPlotLB=!0)),jt([d,f,g],function(t){var e,i,n=[],o=S.duration;for(e in t)t[e].isActive||(t[e].render(e,!1,0),t[e].isActive=!1,n.push(e));p(function(){for(i=n.length;i--;)t[n[i]]&&!t[n[i]].isActive&&(t[n[i]].destroy(),delete t[n[i]])},t!==g&&r.hasRendered&&o?o:0)}),b&&(t=n.getLinePath(b),n.axisLine?n.axisLine.animate({d:t}):n.axisLine=o.path(t).attr({stroke:s.lineColor,"stroke-width":b,zIndex:7}).add(n.axisGroup),n.axisLine[w?"show":"hide"](!0)),u&&w&&(u[u.isNew?"attr":"animate"](n.getTitlePosition()),u.isNew=!1),m&&m.enabled&&n.renderStackTotals(),n.isDirty=!1},redraw:function(){this.visible&&(this.render(),jt(this.plotLinesAndBands,function(t){t.render()})),jt(this.series,function(t){t.isDirty=!0})},destroy:function(t){var e,i=this,n=i.stacks,r=i.plotLinesAndBands;t||Ut(i);for(e in n)k(n[e]),n[e]=null;for(jt([i.ticks,i.minorTicks,i.alternateBands],function(t){
k(t)}),t=r.length;t--;)r[t].destroy();jt("stackTotalGroup,axisLine,axisTitle,axisGroup,cross,gridGroup,labelGroup".split(","),function(t){i[t]&&(i[t]=i[t].destroy())}),this.cross&&this.cross.destroy()},drawCrosshair:function(t,e){var i,n,r,o=this.crosshair;this.crosshair&&(h(e)||!Kt(o.snap,!0))!==!1?(Kt(o.snap,!0)?h(e)&&(i=this.isXAxis?e.plotX:this.len-e.plotY):i=this.horiz?t.chartX-this.pos:this.len-t.chartY+this.pos,i=this.isRadial?this.getPlotLinePath(this.isXAxis?e.x:Kt(e.stackY,e.y))||null:this.getPlotLinePath(null,null,null,null,i)||null,null===i?this.hideCrosshair():(n=this.categories&&!this.isRadial,r=Kt(o.width,n?this.transA:1),this.cross?this.cross.attr({d:i,visibility:"visible","stroke-width":r}):(n={"pointer-events":"none","stroke-width":r,stroke:o.color||(n?"rgba(155,200,255,0.2)":"#C0C0C0"),zIndex:Kt(o.zIndex,2)},o.dashStyle&&(n.dashstyle=o.dashStyle),this.cross=this.chart.renderer.path(i).attr(n).add()))):this.hideCrosshair()},hideCrosshair:function(){this.cross&&this.cross.hide()}},Vt(oe.prototype,{getPlotBandPath:function(t,e){var i=this.getPlotLinePath(e,null,null,!0),n=this.getPlotLinePath(t,null,null,!0);return n&&i?(n.flat=n.toString()===i.toString(),n.push(i[4],i[5],i[1],i[2])):n=null,n},addPlotBand:function(t){return this.addPlotBandOrLine(t,"plotBands")},addPlotLine:function(t){return this.addPlotBandOrLine(t,"plotLines")},addPlotBandOrLine:function(t,e){var i=new rt.PlotLineOrBand(this,t).render(),n=this.userOptions;return i&&(e&&(n[e]=n[e]||[],n[e].push(t)),this.plotLinesAndBands.push(i)),i},removePlotBandOrLine:function(t){for(var e=this.plotLinesAndBands,i=this.options,n=this.userOptions,r=e.length;r--;)e[r].id===t&&e[r].destroy();jt([i.plotLines||[],n.plotLines||[],i.plotBands||[],n.plotBands||[]],function(e){for(r=e.length;r--;)e[r].id===t&&l(e,e[r])})}}),oe.prototype.getTimeTicks=function(t,e,i,n){var r,o=[],s={},a=N.global.useUTC,l=new H(e-v(e)),c=t.unitRange,u=t.count;if(h(e)){l[K](c>=$.second?0:u*lt(l.getMilliseconds()/u)),c>=$.second&&l[Z](c>=$.minute?0:u*lt(l.getSeconds()/u)),c>=$.minute&&l[Q](c>=$.hour?0:u*lt(l[X]()/u)),c>=$.hour&&l[tt](c>=$.day?0:u*lt(l[Y]()/u)),c>=$.day&&l[et](c>=$.month?1:u*lt(l[q]()/u)),c>=$.month&&(l[it](c>=$.year?0:u*lt(l[V]()/u)),r=l[J]()),c>=$.year&&(r-=r%u,l[nt](r)),c===$.week&&l[et](l[q]()-l[G]()+Kt(n,1)),e=1,(W||U)&&(l=l.getTime(),l=new H(l+v(l))),r=l[J]();for(var n=l.getTime(),p=l[V](),d=l[q](),f=!a||!!U,g=($.day+(a?v(l):6e4*l.getTimezoneOffset()))%$.day;n<i;)o.push(n),c===$.year?n=z(r+e*u,0):c===$.month?n=z(r,p+e*u):!f||c!==$.day&&c!==$.week?n+=c*u:n=z(r,p,d+e*u*(c===$.day?1:7)),e++;o.push(n),jt($t(o,function(t){return c<=$.hour&&t%$.day===g}),function(t){s[t]="day"})}return o.info=Vt(t,{higherRanks:s,totalRange:c*u}),o},oe.prototype.normalizeTimeTickInterval=function(t,e){var i,n=e||[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2]],["week",[1,2]],["month",[1,2,3,4,6]],["year",null]],r=n[n.length-1],o=$[r[0]],s=r[1];for(i=0;i<n.length&&(r=n[i],o=$[r[0]],s=r[1],!(n[i+1]&&t<=(o*s[s.length-1]+$[n[i+1][0]])/2));i++);return o===$.year&&t<5*o&&(s=[1,2,5]),n=x(t/o,s,"year"===r[0]?ct(b(t/o),1):1),{unitRange:o,count:n,unitName:r[0]}},oe.prototype.getLogTickPositions=function(t,e,i,n){var r=this.options,o=this.len,s=this.lin2log,a=this.log2lin,l=[];if(n||(this._minorAutoInterval=null),t>=.5)t=at(t),l=this.getLinearTickPositions(t,e,i);else if(t>=.08)for(var h,c,u,p,d,o=lt(e),r=t>.3?[1,2,4]:t>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9];o<i+1&&!d;o++)for(c=r.length,h=0;h<c&&!d;h++)u=a(s(o)*r[h]),u>e&&(!n||p<=i)&&p!==R&&l.push(p),p>i&&(d=!0),p=u;else e=s(e),i=s(i),t=r[n?"minorTickInterval":"tickInterval"],t=Kt("auto"===t?null:t,this._minorAutoInterval,(i-e)*(r.tickPixelInterval/(n?5:1))/((n?o/this.tickPositions.length:o)||1)),t=x(t,null,b(t)),l=zt(this.getLinearTickPositions(t,e,i),a),n||(this._minorAutoInterval=t/5);return n||(this.tickInterval=t),l},oe.prototype.log2lin=function(t){return st.log(t)/st.LN10},oe.prototype.lin2log=function(t){return st.pow(10,t)};var se=rt.Tooltip=function(){this.init.apply(this,arguments)};se.prototype={init:function(t,e){var i=e.borderWidth,n=e.style,o=r(n.padding);this.chart=t,this.options=e,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.label=t.renderer.label("",0,0,e.shape||"callout",null,null,e.useHTML,null,"tooltip").attr({padding:o,fill:e.backgroundColor,"stroke-width":i,r:e.borderRadius,zIndex:8}).css(n).css({padding:0}).add().attr({y:-9999}),At||this.label.shadow(e.shadow),this.shared=e.shared},destroy:function(){this.label&&(this.label=this.label.destroy()),clearTimeout(this.hideTimer),clearTimeout(this.tooltipTimeout)},move:function(t,e,i,n){var r=this,o=r.now,s=r.options.animation!==!1&&!r.isHidden&&(pt(t-o.x)>1||pt(e-o.y)>1),a=r.followPointer||r.len>1;Vt(o,{x:s?(2*o.x+t)/3:t,y:s?(o.y+e)/2:e,anchorX:a?R:s?(2*o.anchorX+i)/3:i,anchorY:a?R:s?(o.anchorY+n)/2:n}),r.label.attr(o),s&&(clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){r&&r.move(t,e,i,n)},32))},hide:function(t){var e=this;clearTimeout(this.hideTimer),t=Kt(t,this.options.hideDelay,500),this.isHidden||(this.hideTimer=p(function(){e.label[t?"fadeOut":"hide"](),e.isHidden=!0},t))},getAnchor:function(t,e){var i,n,r,o=this.chart,s=o.inverted,a=o.plotTop,l=o.plotLeft,h=0,c=0,t=u(t);return i=t[0].tooltipPos,this.followPointer&&e&&(e.chartX===R&&(e=o.pointer.normalize(e)),i=[e.chartX-o.plotLeft,e.chartY-a]),i||(jt(t,function(t){n=t.series.yAxis,r=t.series.xAxis,h+=t.plotX+(!s&&r?r.left-l:0),c+=(t.plotLow?(t.plotLow+t.plotHigh)/2:t.plotY)+(!s&&n?n.top-a:0)}),h/=t.length,c/=t.length,i=[s?o.plotWidth-c:h,this.shared&&!s&&t.length>1&&e?e.chartY-a:s?o.plotHeight-h:c]),zt(i,at)},getPosition:function(t,e,i){var n,r=this.chart,o=this.distance,s={},a=i.h||0,l=["y",r.chartHeight,e,i.plotY+r.plotTop,r.plotTop,r.plotTop+r.plotHeight],h=["x",r.chartWidth,t,i.plotX+r.plotLeft,r.plotLeft,r.plotLeft+r.plotWidth],c=!this.followPointer&&Kt(i.ttBelow,!r.inverted==!!i.negative),u=function(t,e,i,n,r,l){var h=i<n-o,u=n+o+i<e,p=n-o-i;if(n+=o,c&&u)s[t]=n;else if(!c&&h)s[t]=p;else if(h)s[t]=ut(l-i,p-a<0?p:p-a);else{if(!u)return!1;s[t]=ct(r,n+a+i>e?n:n+a)}},p=function(t,e,i,n){var r;return n<o||n>e-o?r=!1:s[t]=n<i/2?1:n>e-i/2?e-i-2:n-i/2,r},d=function(t){var e=l;l=h,h=e,n=t},f=function(){u.apply(0,l)!==!1?p.apply(0,h)===!1&&!n&&(d(!0),f()):n?s.x=s.y=0:(d(!0),f())};return(r.inverted||this.len>1)&&d(),f(),s},defaultFormatter:function(t){var e,i=this.points||u(this);return e=[t.tooltipFooterHeaderFormatter(i[0])],e=e.concat(t.bodyFormatter(i)),e.push(t.tooltipFooterHeaderFormatter(i[0],!0)),e.join("")},refresh:function(t,e){var i,n,r,o,s=this.chart,a=this.label,l=this.options,h={},c=[];o=l.formatter||this.defaultFormatter;var p,h=s.hoverPoints,d=this.shared;clearTimeout(this.hideTimer),this.followPointer=u(t)[0].series.tooltipOptions.followPointer,r=this.getAnchor(t,e),i=r[0],n=r[1],!d||t.series&&t.series.noSharedTooltip?h=t.getLabelConfig():(s.hoverPoints=t,h&&jt(h,function(t){t.setState()}),jt(t,function(t){t.setState("hover"),c.push(t.getLabelConfig())}),h={x:t[0].category,y:t[0].y},h.points=c,this.len=c.length,t=t[0]),o=o.call(h,this),h=t.series,this.distance=Kt(h.tooltipOptions.distance,16),o===!1?this.hide():(this.isHidden&&(Gt(a),a.attr("opacity",1).show()),a.attr({text:o}),p=l.borderColor||t.color||h.color||"#606060",a.attr({stroke:p}),this.updatePosition({plotX:i,plotY:n,negative:t.negative,ttBelow:t.ttBelow,h:r[2]||0}),this.isHidden=!1),Xt(s,"tooltipRefresh",{text:o,x:i+s.plotLeft,y:n+s.plotTop,borderColor:p})},updatePosition:function(t){var e=this.chart,i=this.label,i=(this.options.positioner||this.getPosition).call(this,i.width,i.height,t);this.move(at(i.x),at(i.y||0),t.plotX+e.plotLeft,t.plotY+e.plotTop)},getXDateFormat:function(t,e,i){var n,r,o,e=e.dateTimeLabelFormats,s=i&&i.closestPointRange,a={millisecond:15,second:12,minute:9,hour:6,day:3},l="millisecond";if(s){o=j("%m-%d %H:%M:%S.%L",t.x);for(r in $){if(s===$.week&&+j("%w",t.x)===i.options.startOfWeek&&"00:00:00.000"===o.substr(6)){r="week";break}if($[r]>s){r=l;break}if(a[r]&&o.substr(a[r])!=="01-01 00:00:00.000".substr(a[r]))break;"week"!==r&&(l=r)}r&&(n=e[r])}else n=e.day;return n||e.year},tooltipFooterHeaderFormatter:function(t,e){var i=e?"footer":"header",n=t.series,r=n.tooltipOptions,o=r.xDateFormat,s=n.xAxis,a=s&&"datetime"===s.options.type&&Jt(t.key),i=r[i+"Format"];return a&&!o&&(o=this.getXDateFormat(t,r,s)),a&&o&&(i=i.replace("{point.key}","{point.key:"+o+"}")),y(i,{point:t,series:n})},bodyFormatter:function(t){return zt(t,function(t){var e=t.series.tooltipOptions;return(e.pointFormatter||t.point.tooltipFormatter).call(t.point,e.pointFormat)})}};var ae;B=ot&&ot.documentElement.ontouchstart!==R;var le=rt.Pointer=function(t,e){this.init(t,e)};if(le.prototype={init:function(t,e){var i,n=e.chart,r=n.events,o=At?"":n.zoomType,n=t.inverted;this.options=e,this.chart=t,this.zoomX=i=/x/.test(o),this.zoomY=o=/y/.test(o),this.zoomHor=i&&!n||o&&n,this.zoomVert=o&&!n||i&&n,this.hasZoom=i||o,this.runChartClick=r&&!!r.click,this.pinchDown=[],this.lastValidTouch={},rt.Tooltip&&e.tooltip.enabled&&(t.tooltip=new se(t,e.tooltip),this.followTouchMove=Kt(e.tooltip.followTouchMove,!0)),this.setDOMEvents()},normalize:function(e,i){var n,r,e=e||t.event;return e.target||(e.target=e.srcElement),r=e.touches?e.touches.length?e.touches.item(0):e.changedTouches[0]:e,i||(this.chartPosition=i=Ht(this.chart.container)),r.pageX===R?(n=ct(e.x,e.clientX-i.left),r=e.y):(n=r.pageX-i.left,r=r.pageY-i.top),Vt(e,{chartX:at(n),chartY:at(r)})},getCoordinates:function(t){var e={xAxis:[],yAxis:[]};return jt(this.chart.axes,function(i){e[i.isXAxis?"xAxis":"yAxis"].push({axis:i,value:i.toValue(t[i.horiz?"chartX":"chartY"])})}),e},runPointActions:function(t){var e,i,n,r,o=this.chart,s=o.series,a=o.tooltip,l=!!a&&a.shared,h=o.hoverPoint,c=o.hoverSeries,u=[Number.MAX_VALUE,Number.MAX_VALUE],p=[],d=[];if(!l&&!c)for(e=0;e<s.length;e++)!s[e].directTouch&&s[e].options.stickyTracking||(s=[]);if(c&&(l?c.noSharedTooltip:c.directTouch)&&h?d=[h]:(jt(s,function(e){i=e.noSharedTooltip&&l,n=!l&&e.directTouch,e.visible&&!i&&!n&&Kt(e.options.enableMouseTracking,!0)&&(r=e.searchPoint(t,!i&&1===e.kdDimensions))&&p.push(r)}),jt(p,function(t){t&&jt(["dist","distX"],function(e,i){if(Jt(t[e])){var n=t[e]===u[i]&&t.series.group.zIndex>=d[i].series.group.zIndex;(t[e]<u[i]||n)&&(u[i]=t[e],d[i]=t)}})})),l)for(e=p.length;e--;)(p[e].clientX!==d[1].clientX||p[e].series.noSharedTooltip)&&p.splice(e,1);d[0]&&(d[0]!==this.prevKDPoint||a&&a.isHidden)?l&&!d[0].series.noSharedTooltip?(p.length&&a&&a.refresh(p,t),jt(p,function(e){e.onMouseOver(t,e!==(c&&c.directTouch&&h||d[0]))}),this.prevKDPoint=d[1]):(a&&a.refresh(d[0],t),c&&c.directTouch||d[0].onMouseOver(t),this.prevKDPoint=d[0]):(s=c&&c.tooltipOptions.followPointer,a&&s&&!a.isHidden&&(s=a.getAnchor([{}],t),a.updatePosition({plotX:s[0],plotY:s[1]}))),this._onDocumentMouseMove||(this._onDocumentMouseMove=function(t){Pt[ae]&&Pt[ae].pointer.onDocumentMouseMove(t)},Wt(ot,"mousemove",this._onDocumentMouseMove)),jt(l?p:[Kt(h,d[1])],function(e){jt(o.axes,function(i){(!e||e.series[i.coll]===i)&&i.drawCrosshair(t,e)})})},reset:function(t,e){var i=this.chart,n=i.hoverSeries,r=i.hoverPoint,o=i.hoverPoints,s=i.tooltip,a=s&&s.shared?o:r;t&&a&&jt(u(a),function(e){e.series.isCartesian&&void 0===e.plotX&&(t=!1)}),t?s&&a&&(s.refresh(a),r&&(r.setState(r.state,!0),jt(i.axes,function(t){Kt(t.crosshair&&t.crosshair.snap,!0)?t.drawCrosshair(null,r):t.hideCrosshair()}))):(r&&r.onMouseOut(),o&&jt(o,function(t){t.setState()}),n&&n.onMouseOut(),s&&s.hide(e),this._onDocumentMouseMove&&(Ut(ot,"mousemove",this._onDocumentMouseMove),this._onDocumentMouseMove=null),jt(i.axes,function(t){t.hideCrosshair()}),this.hoverX=i.hoverPoints=i.hoverPoint=null)},scaleGroups:function(t,e){var i,n=this.chart;jt(n.series,function(r){i=t||r.getPlotBox(),r.xAxis&&r.xAxis.zoomEnabled&&(r.group.attr(i),r.markerGroup&&(r.markerGroup.attr(i),r.markerGroup.clip(e?n.clipRect:null)),r.dataLabelsGroup&&r.dataLabelsGroup.attr(i))}),n.clipRect.attr(e||n.clipBox)},dragStart:function(t){var e=this.chart;e.mouseIsDown=t.type,e.cancelClick=!1,e.mouseDownX=this.mouseDownX=t.chartX,e.mouseDownY=this.mouseDownY=t.chartY},drag:function(t){var e,i=this.chart,n=i.options.chart,r=t.chartX,o=t.chartY,s=this.zoomHor,a=this.zoomVert,l=i.plotLeft,h=i.plotTop,c=i.plotWidth,u=i.plotHeight,p=this.selectionMarker,d=this.mouseDownX,f=this.mouseDownY,g=n.panKey&&t[n.panKey+"Key"];p&&p.touch||(r<l?r=l:r>l+c&&(r=l+c),o<h?o=h:o>h+u&&(o=h+u),this.hasDragged=Math.sqrt(Math.pow(d-r,2)+Math.pow(f-o,2)),this.hasDragged>10&&(e=i.isInsidePlot(d-l,f-h),i.hasCartesianSeries&&(this.zoomX||this.zoomY)&&e&&!g&&!p&&(this.selectionMarker=p=i.renderer.rect(l,h,s?1:c,a?1:u,0).attr({fill:n.selectionMarkerFill||"rgba(69,114,167,0.25)",zIndex:7}).add()),p&&s&&(r-=d,p.attr({width:pt(r),x:(r>0?0:r)+d})),p&&a&&(r=o-f,p.attr({height:pt(r),y:(r>0?0:r)+f})),e&&!p&&n.panning&&i.pan(t,n.panning)))},drop:function(t){var e=this,i=this.chart,n=this.hasPinched;if(this.selectionMarker){var r,o={originalEvent:t,xAxis:[],yAxis:[]},s=this.selectionMarker,a=s.attr?s.attr("x"):s.x,l=s.attr?s.attr("y"):s.y,c=s.attr?s.attr("width"):s.width,u=s.attr?s.attr("height"):s.height;(this.hasDragged||n)&&(jt(i.axes,function(i){if(i.zoomEnabled&&h(i.min)&&(n||e[{xAxis:"zoomX",yAxis:"zoomY"}[i.coll]])){var s=i.horiz,p="touchend"===t.type?i.minPixelPadding:0,d=i.toValue((s?a:l)+p),s=i.toValue((s?a+c:l+u)-p);o[i.coll].push({axis:i,min:ut(d,s),max:ct(d,s)}),r=!0}}),r&&Xt(i,"selection",o,function(t){i.zoom(Vt(t,n?{animation:!1}:null))})),this.selectionMarker=this.selectionMarker.destroy(),n&&this.scaleGroups()}i&&(d(i.container,{cursor:i._cursor}),i.cancelClick=this.hasDragged>10,i.mouseIsDown=this.hasDragged=this.hasPinched=!1,this.pinchDown=[])},onContainerMouseDown:function(t){t=this.normalize(t),t.preventDefault&&t.preventDefault(),this.dragStart(t)},onDocumentMouseUp:function(t){Pt[ae]&&Pt[ae].pointer.drop(t)},onDocumentMouseMove:function(t){var e=this.chart,i=this.chartPosition,t=this.normalize(t,i);i&&!this.inClass(t.target,"highcharts-tracker")&&!e.isInsidePlot(t.chartX-e.plotLeft,t.chartY-e.plotTop)&&this.reset()},onContainerMouseLeave:function(t){var e=Pt[ae];e&&(t.relatedTarget||t.toElement)&&(e.pointer.reset(),e.pointer.chartPosition=null)},onContainerMouseMove:function(t){var e=this.chart;h(ae)&&Pt[ae]&&Pt[ae].mouseIsDown||(ae=e.index),t=this.normalize(t),t.returnValue=!1,"mousedown"===e.mouseIsDown&&this.drag(t),(this.inClass(t.target,"highcharts-tracker")||e.isInsidePlot(t.chartX-e.plotLeft,t.chartY-e.plotTop))&&!e.openMenu&&this.runPointActions(t)},inClass:function(t,e){for(var i;t;){if(i=c(t,"class")){if(i.indexOf(e)!==-1)return!0;if(i.indexOf("highcharts-container")!==-1)return!1}t=t.parentNode}},onTrackerMouseOut:function(t){var e=this.chart.hoverSeries,t=t.relatedTarget||t.toElement;!e||!t||e.options.stickyTracking||this.inClass(t,"highcharts-tooltip")||this.inClass(t,"highcharts-series-"+e.index)||e.onMouseOut()},onContainerClick:function(t){var e=this.chart,i=e.hoverPoint,n=e.plotLeft,r=e.plotTop,t=this.normalize(t);e.cancelClick||(i&&this.inClass(t.target,"highcharts-tracker")?(Xt(i.series,"click",Vt(t,{point:i})),e.hoverPoint&&i.firePointEvent("click",t)):(Vt(t,this.getCoordinates(t)),e.isInsidePlot(t.chartX-n,t.chartY-r)&&Xt(e,"click",t)))},setDOMEvents:function(){var t=this,e=t.chart.container;e.onmousedown=function(e){t.onContainerMouseDown(e)},e.onmousemove=function(e){t.onContainerMouseMove(e)},e.onclick=function(e){t.onContainerClick(e)},Wt(e,"mouseleave",t.onContainerMouseLeave),1===Mt&&Wt(ot,"mouseup",t.onDocumentMouseUp),B&&(e.ontouchstart=function(e){t.onContainerTouchStart(e)},e.ontouchmove=function(e){t.onContainerTouchMove(e)},1===Mt&&Wt(ot,"touchend",t.onDocumentTouchEnd))},destroy:function(){var t;Ut(this.chart.container,"mouseleave",this.onContainerMouseLeave),Mt||(Ut(ot,"mouseup",this.onDocumentMouseUp),Ut(ot,"touchend",this.onDocumentTouchEnd)),clearInterval(this.tooltipTimeout);for(t in this)this[t]=null}},Vt(rt.Pointer.prototype,{pinchTranslate:function(t,e,i,n,r,o){(this.zoomHor||this.pinchHor)&&this.pinchTranslateDirection(!0,t,e,i,n,r,o),(this.zoomVert||this.pinchVert)&&this.pinchTranslateDirection(!1,t,e,i,n,r,o)},pinchTranslateDirection:function(t,e,i,n,r,o,s,a){var l,h,c,u=this.chart,p=t?"x":"y",d=t?"X":"Y",f="chart"+d,g=t?"width":"height",m=u["plot"+(t?"Left":"Top")],v=a||1,y=u.inverted,b=u.bounds[t?"h":"v"],x=1===e.length,w=e[0][f],S=i[0][f],T=!x&&e[1][f],k=!x&&i[1][f],i=function(){!x&&pt(w-T)>20&&(v=a||pt(S-k)/pt(w-T)),h=(m-S)/v+w,l=u["plot"+(t?"Width":"Height")]/v};i(),e=h,e<b.min?(e=b.min,c=!0):e+l>b.max&&(e=b.max-l,c=!0),c?(S-=.8*(S-s[p][0]),x||(k-=.8*(k-s[p][1])),i()):s[p]=[S,k],y||(o[p]=h-m,o[g]=l),o=y?1/v:v,r[g]=l,r[p]=e,n[y?t?"scaleY":"scaleX":"scale"+d]=v,n["translate"+d]=o*m+(S-o*w)},pinch:function(t){var e=this,i=e.chart,n=e.pinchDown,r=t.touches,o=r.length,s=e.lastValidTouch,a=e.hasZoom,l=e.selectionMarker,h={},c=1===o&&(e.inClass(t.target,"highcharts-tracker")&&i.runTrackerClick||e.runChartClick),u={};o>1&&(e.initiated=!0),a&&e.initiated&&!c&&t.preventDefault(),zt(r,function(t){return e.normalize(t)}),"touchstart"===t.type?(jt(r,function(t,e){n[e]={chartX:t.chartX,chartY:t.chartY}}),s.x=[n[0].chartX,n[1]&&n[1].chartX],s.y=[n[0].chartY,n[1]&&n[1].chartY],jt(i.axes,function(t){if(t.zoomEnabled){var e=i.bounds[t.horiz?"h":"v"],n=t.minPixelPadding,r=t.toPixels(Kt(t.options.min,t.dataMin)),o=t.toPixels(Kt(t.options.max,t.dataMax)),s=ut(r,o),r=ct(r,o);e.min=ut(t.pos,s-n),e.max=ct(t.pos+t.len,r+n)}}),e.res=!0):n.length&&(l||(e.selectionMarker=l=Vt({destroy:Et,touch:!0},i.plotBox)),e.pinchTranslate(n,r,h,l,u,s),e.hasPinched=a,e.scaleGroups(h,u),!a&&e.followTouchMove&&1===o?this.runPointActions(e.normalize(t)):e.res&&(e.res=!1,this.reset(!1,0)))},touch:function(t,e){var i,n=this.chart;ae=n.index,1===t.touches.length?(t=this.normalize(t),n.isInsidePlot(t.chartX-n.plotLeft,t.chartY-n.plotTop)&&!n.openMenu?(e&&this.runPointActions(t),"touchmove"===t.type&&(n=this.pinchDown,i=!!n[0]&&Math.sqrt(Math.pow(n[0].chartX-t.chartX,2)+Math.pow(n[0].chartY-t.chartY,2))>=4),Kt(i,!0)&&this.pinch(t)):e&&this.reset()):2===t.touches.length&&this.pinch(t)},onContainerTouchStart:function(t){this.touch(t,!0)},onContainerTouchMove:function(t){this.touch(t)},onDocumentTouchEnd:function(t){Pt[ae]&&Pt[ae].pointer.drop(t)}}),t.PointerEvent||t.MSPointerEvent){var he={},ce=!!t.PointerEvent,ue=function(){var t,e=[];e.item=function(t){return this[t]};for(t in he)he.hasOwnProperty(t)&&e.push({pageX:he[t].pageX,pageY:he[t].pageY,target:he[t].target});return e},pe=function(t,e,i,n){"touch"!==t.pointerType&&t.pointerType!==t.MSPOINTER_TYPE_TOUCH||!Pt[ae]||(n(t),n=Pt[ae].pointer,n[e]({type:i,target:t.currentTarget,preventDefault:Et,touches:ue()}))};Vt(le.prototype,{onContainerPointerDown:function(t){pe(t,"onContainerTouchStart","touchstart",function(t){he[t.pointerId]={pageX:t.pageX,pageY:t.pageY,target:t.currentTarget}})},onContainerPointerMove:function(t){pe(t,"onContainerTouchMove","touchmove",function(t){he[t.pointerId]={pageX:t.pageX,pageY:t.pageY},he[t.pointerId].target||(he[t.pointerId].target=t.currentTarget)})},onDocumentPointerUp:function(t){pe(t,"onDocumentTouchEnd","touchend",function(t){delete he[t.pointerId]})},batchMSEvents:function(t){t(this.chart.container,ce?"pointerdown":"MSPointerDown",this.onContainerPointerDown),t(this.chart.container,ce?"pointermove":"MSPointerMove",this.onContainerPointerMove),t(ot,ce?"pointerup":"MSPointerUp",this.onDocumentPointerUp)}}),Zt(le.prototype,"init",function(t,e,i){t.call(this,e,i),this.hasZoom&&d(e.container,{"-ms-touch-action":"none","touch-action":"none"})}),Zt(le.prototype,"setDOMEvents",function(t){t.apply(this),(this.hasZoom||this.followTouchMove)&&this.batchMSEvents(Wt)}),Zt(le.prototype,"destroy",function(t){this.batchMSEvents(Ut),t.call(this)})}var de=rt.Legend=function(t,e){this.init(t,e)};de.prototype={init:function(t,e){var i=this,r=e.itemStyle,o=e.itemMarginTop||0;this.options=e,e.enabled&&(i.itemStyle=r,i.itemHiddenStyle=n(r,e.itemHiddenStyle),i.itemMarginTop=o,i.padding=r=Kt(e.padding,8),i.initialItemX=r,i.initialItemY=r-5,i.maxItemWidth=0,i.chart=t,i.itemHeight=0,i.symbolWidth=Kt(e.symbolWidth,16),i.pages=[],i.render(),Wt(i.chart,"endResize",function(){i.positionCheckboxes()}))},colorizeItem:function(t,e){var i,n=this.options,r=t.legendItem,o=t.legendLine,s=t.legendSymbol,a=this.itemHiddenStyle.color,n=e?n.itemStyle.color:a,l=e?t.legendColor||t.color||"#CCC":a,a=t.options&&t.options.marker,h={fill:l};if(r&&r.css({fill:n,color:n}),o&&o.attr({stroke:l}),s){if(a&&s.isMarker)for(i in h.stroke=l,a=t.convertAttribs(a))r=a[i],r!==R&&(h[i]=r);s.attr(h)}},positionItem:function(t){var e=this.options,i=e.symbolPadding,e=!e.rtl,n=t._legendItemPos,r=n[0],n=n[1],o=t.checkbox;(t=t.legendGroup)&&t.element&&t.translate(e?r:this.legendWidth-r-2*i-4,n),o&&(o.x=r,o.y=n)},destroyItem:function(t){var e=t.checkbox;jt(["legendItem","legendLine","legendSymbol","legendGroup"],function(e){t[e]&&(t[e]=t[e].destroy())}),e&&C(t.checkbox)},destroy:function(){var t=this.group,e=this.box;e&&(this.box=e.destroy()),t&&(this.group=t.destroy())},positionCheckboxes:function(t){var e,i=this.group.alignAttr,n=this.clipHeight||this.legendHeight,r=this.titleHeight;i&&(e=i.translateY,jt(this.allItems,function(o){var s,a=o.checkbox;a&&(s=e+r+a.y+(t||0)+3,d(a,{left:i.translateX+o.checkboxOffset+a.x-20+"px",top:s+"px",display:s>e-6&&s<e+n-6?"":"none"}))}))},renderTitle:function(){var t=this.padding,e=this.options.title,i=0;e.text&&(this.title||(this.title=this.chart.renderer.label(e.text,t-3,t-4,null,null,null,null,null,"legend-title").attr({zIndex:1}).css(e.style).add(this.group)),t=this.title.getBBox(),i=t.height,this.offsetWidth=t.width,this.contentGroup.attr({translateY:i})),this.titleHeight=i},setText:function(t){var e=this.options;t.legendItem.attr({text:e.labelFormat?y(e.labelFormat,t):e.labelFormatter.call(t)})},renderItem:function(t){var e=this.chart,i=e.renderer,r=this.options,o="horizontal"===r.layout,s=this.symbolWidth,a=r.symbolPadding,l=this.itemStyle,h=this.itemHiddenStyle,c=this.padding,u=o?Kt(r.itemDistance,20):0,p=!r.rtl,d=r.width,f=r.itemMarginBottom||0,g=this.itemMarginTop,m=this.initialItemX,v=t.legendItem,y=t.series&&t.series.drawLegendSymbol?t.series:t,b=y.options,b=this.createCheckboxForItem&&b&&b.showCheckbox,x=r.useHTML;v||(t.legendGroup=i.g("legend-item").attr({zIndex:1}).add(this.scrollGroup),t.legendItem=v=i.text("",p?s+a:-a,this.baseline||0,x).css(n(t.visible?l:h)).attr({align:p?"left":"right",zIndex:2}).add(t.legendGroup),this.baseline||(this.fontMetrics=i.fontMetrics(l.fontSize,v),this.baseline=this.fontMetrics.f+3+g,v.attr("y",this.baseline)),y.drawLegendSymbol(this,t),this.setItemEvents&&this.setItemEvents(t,v,x,l,h),b&&this.createCheckboxForItem(t)),this.colorizeItem(t,t.visible),this.setText(t),i=v.getBBox(),s=t.checkboxOffset=r.itemWidth||t.legendItemWidth||s+a+i.width+u+(b?20:0),this.itemHeight=a=at(t.legendItemHeight||i.height),o&&this.itemX-m+s>(d||e.chartWidth-2*c-m-r.x)&&(this.itemX=m,this.itemY+=g+this.lastLineHeight+f,this.lastLineHeight=0),this.maxItemWidth=ct(this.maxItemWidth,s),this.lastItemY=g+this.itemY+f,this.lastLineHeight=ct(a,this.lastLineHeight),t._legendItemPos=[this.itemX,this.itemY],o?this.itemX+=s:(this.itemY+=g+a+f,this.lastLineHeight=a),this.offsetWidth=d||ct((o?this.itemX-m-u:s)+c,this.offsetWidth)},getAllItems:function(){var t=[];return jt(this.chart.series,function(e){var i=e.options;Kt(i.showInLegend,!h(i.linkedTo)&&R,!0)&&(t=t.concat(e.legendItems||("point"===i.legendType?e.data:e)))}),t},adjustMargins:function(t,e){var i=this.chart,n=this.options,r=n.align.charAt(0)+n.verticalAlign.charAt(0)+n.layout.charAt(0);this.display&&!n.floating&&jt([/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/],function(o,s){o.test(r)&&!h(t[s])&&(i[Ot[s]]=ct(i[Ot[s]],i.legend[(s+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][s]*n[s%2?"x":"y"]+Kt(n.margin,12)+e[s]))})},render:function(){var t,e,i,n,r=this,o=r.chart,s=o.renderer,a=r.group,l=r.box,h=r.options,c=r.padding,u=h.borderWidth,p=h.backgroundColor;r.itemX=r.initialItemX,r.itemY=r.initialItemY,r.offsetWidth=0,r.lastItemY=0,a||(r.group=a=s.g("legend").attr({zIndex:7}).add(),r.contentGroup=s.g().attr({zIndex:1}).add(a),r.scrollGroup=s.g().add(r.contentGroup)),r.renderTitle(),t=r.getAllItems(),w(t,function(t,e){return(t.options&&t.options.legendIndex||0)-(e.options&&e.options.legendIndex||0)}),h.reversed&&t.reverse(),r.allItems=t,r.display=e=!!t.length,r.lastLineHeight=0,jt(t,function(t){r.renderItem(t)}),i=(h.width||r.offsetWidth)+c,n=r.lastItemY+r.lastLineHeight+r.titleHeight,n=r.handleOverflow(n),n+=c,(u||p)&&(l?i>0&&n>0&&(l[l.isNew?"attr":"animate"](l.crisp({width:i,height:n})),l.isNew=!1):(r.box=l=s.rect(0,0,i,n,h.borderRadius,u||0).attr({stroke:h.borderColor,"stroke-width":u||0,fill:p||"none"}).add(a).shadow(h.shadow),l.isNew=!0),l[e?"show":"hide"]()),r.legendWidth=i,r.legendHeight=n,jt(t,function(t){r.positionItem(t)}),e&&a.align(Vt({width:i,height:n},h),!0,"spacingBox"),o.isResizing||this.positionCheckboxes()},handleOverflow:function(t){var e,i,n=this,r=this.chart,o=r.renderer,s=this.options,a=s.y,a=r.spacingBox.height+("top"===s.verticalAlign?-a:a)-this.padding,l=s.maxHeight,h=this.clipRect,c=s.navigation,u=Kt(c.animation,!0),p=c.arrowSize||12,d=this.nav,f=this.pages,g=this.padding,m=this.allItems,v=function(t){h.attr({height:t}),n.contentGroup.div&&(n.contentGroup.div.style.clip="rect("+g+"px,9999px,"+(g+t)+"px,0)")};return"horizontal"===s.layout&&(a/=2),l&&(a=ut(a,l)),f.length=0,t>a&&c.enabled!==!1?(this.clipHeight=e=ct(a-20-this.titleHeight-g,0),this.currentPage=Kt(this.currentPage,1),this.fullHeight=t,jt(m,function(t,n){var r=t._legendItemPos[1],o=at(t.legendItem.getBBox().height),s=f.length;(!s||r-f[s-1]>e&&(i||r)!==f[s-1])&&(f.push(i||r),s++),n===m.length-1&&r+o-f[s-1]>e&&f.push(r),r!==i&&(i=r)}),h||(h=n.clipRect=o.clipRect(0,g,9999,0),n.contentGroup.clip(h)),v(e),d||(this.nav=d=o.g().attr({zIndex:1}).add(this.group),this.up=o.symbol("triangle",0,0,p,p).on("click",function(){n.scroll(-1,u)}).add(d),this.pager=o.text("",15,10).css(c.style).add(d),this.down=o.symbol("triangle-down",0,0,p,p).on("click",function(){n.scroll(1,u)}).add(d)),n.scroll(0),t=a):d&&(v(r.chartHeight),d.hide(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),t},scroll:function(t,e){var i=this.pages,n=i.length,r=this.currentPage+t,o=this.clipHeight,s=this.options.navigation,a=s.activeColor,s=s.inactiveColor,l=this.pager,h=this.padding;r>n&&(r=n),r>0&&(e!==R&&A(e,this.chart),this.nav.attr({translateX:h,translateY:o+this.padding+7+this.titleHeight,visibility:"visible"}),this.up.attr({fill:1===r?s:a}).css({cursor:1===r?"default":"pointer"}),l.attr({text:r+"/"+n}),this.down.attr({x:18+this.pager.getBBox().width,fill:r===n?s:a}).css({cursor:r===n?"default":"pointer"}),i=-i[r-1]+this.initialItemY,this.scrollGroup.animate({translateY:i}),this.currentPage=r,this.positionCheckboxes(i))}},ie=rt.LegendSymbolMixin={drawRectangle:function(t,e){var i=t.options.symbolHeight||t.fontMetrics.f;e.legendSymbol=this.chart.renderer.rect(0,t.baseline-i+1,t.symbolWidth,i,t.options.symbolRadius||0).attr({zIndex:3}).add(e.legendGroup)},drawLineMarker:function(t){var e,i=this.options,n=i.marker,r=t.symbolWidth,o=this.chart.renderer,s=this.legendGroup,t=t.baseline-at(.3*t.fontMetrics.b);i.lineWidth&&(e={"stroke-width":i.lineWidth},i.dashStyle&&(e.dashstyle=i.dashStyle),this.legendLine=o.path(["M",0,t,"L",r,t]).attr(e).add(s)),n&&n.enabled!==!1&&(i=n.radius,this.legendSymbol=n=o.symbol(this.symbol,r/2-i,t-i,2*i,2*i,n).add(s),n.isMarker=!0)}},(/Trident\/7\.0/.test(vt)||St)&&Zt(de.prototype,"positionItem",function(t,e){var i=this,n=function(){e._legendItemPos&&t.call(i,e)};n(),setTimeout(n)});var fe=rt.Chart=function(){this.getArgs.apply(this,arguments)};rt.chart=function(t,e,i){return new fe(t,e,i)},fe.prototype={callbacks:[],getArgs:function(){var t=[].slice.call(arguments);(o(t[0])||t[0].nodeName)&&(this.renderTo=t.shift()),this.init(t[0],t[1])},init:function(t,e){var i,r=t.series;t.series=null,i=n(N,t),i.series=t.series=r,this.userOptions=t,r=i.chart,this.margin=this.splashArray("margin",r),this.spacing=this.splashArray("spacing",r);var o=r.events;this.bounds={h:{},v:{}},this.callback=e,this.isResizing=0,this.options=i,this.axes=[],this.series=[],this.hasCartesianSeries=r.showAxes;var s,a=this;if(a.index=Pt.length,Pt.push(a),Mt++,r.reflow!==!1&&Wt(a,"load",function(){a.initReflow()}),o)for(s in o)Wt(a,s,o[s]);a.xAxis=[],a.yAxis=[],a.animation=!At&&Kt(r.animation,!0),a.pointCount=a.colorCounter=a.symbolCounter=0,a.firstRender()},initSeries:function(t){var i=this.options.chart;return(i=Bt[t.type||i.type||i.defaultSeriesType])||e(17,!0),i=new i,i.init(this,t),i},isInsidePlot:function(t,e,i){var n=i?e:t,t=i?t:e;return n>=0&&n<=this.plotWidth&&t>=0&&t<=this.plotHeight},redraw:function(t){var e,i,n=this.axes,r=this.series,o=this.pointer,s=this.legend,a=this.isDirtyLegend,l=this.hasCartesianSeries,h=this.isDirtyBox,c=r.length,u=c,p=this.renderer,d=p.isHidden(),f=[];for(A(t,this),d&&this.cloneRenderTo(),this.layOutTitles();u--;)if(t=r[u],t.options.stacking&&(e=!0,t.isDirty)){i=!0;break}if(i)for(u=c;u--;)t=r[u],t.options.stacking&&(t.isDirty=!0);jt(r,function(t){t.isDirty&&"point"===t.options.legendType&&(t.updateTotals&&t.updateTotals(),a=!0),t.isDirtyData&&Xt(t,"updatedData")}),a&&s.options.enabled&&(s.render(),this.isDirtyLegend=!1),e&&this.getStacks(),l&&!this.isResizing&&(this.maxTicks=null,jt(n,function(t){t.setScale()})),this.getMargins(),l&&(jt(n,function(t){t.isDirty&&(h=!0)}),jt(n,function(t){var i=t.min+","+t.max;t.extKey!==i&&(t.extKey=i,f.push(function(){Xt(t,"afterSetExtremes",Vt(t.eventArgs,t.getExtremes())),delete t.eventArgs})),(h||e)&&t.redraw()})),h&&this.drawChartBox(),jt(r,function(t){t.isDirty&&t.visible&&(!t.isCartesian||t.xAxis)&&t.redraw()}),o&&o.reset(!0),p.draw(),Xt(this,"redraw"),d&&this.cloneRenderTo(!0),jt(f,function(t){t.call()})},get:function(t){var e,i,n=this.axes,r=this.series;for(e=0;e<n.length;e++)if(n[e].options.id===t)return n[e];for(e=0;e<r.length;e++)if(r[e].options.id===t)return r[e];for(e=0;e<r.length;e++)for(i=r[e].points||[],n=0;n<i.length;n++)if(i[n].id===t)return i[n];return null},getAxes:function(){var t=this,e=this.options,i=e.xAxis=u(e.xAxis||{}),e=e.yAxis=u(e.yAxis||{});jt(i,function(t,e){t.index=e,t.isX=!0}),jt(e,function(t,e){t.index=e}),i=i.concat(e),jt(i,function(e){new oe(t,e)})},getSelectedPoints:function(){var t=[];return jt(this.series,function(e){t=t.concat($t(e.points||[],function(t){return t.selected}))}),t},getSelectedSeries:function(){return $t(this.series,function(t){return t.selected})},setTitle:function(t,e,i){var r,o,s=this,a=s.options;o=a.title=n(a.title,t),r=a.subtitle=n(a.subtitle,e),a=r,jt([["title",t,o],["subtitle",e,a]],function(t){var e=t[0],i=s[e],n=t[1],t=t[2];i&&n&&(s[e]=i=i.destroy()),t&&t.text&&!i&&(s[e]=s.renderer.text(t.text,0,0,t.useHTML).attr({align:t.align,"class":"highcharts-"+e,zIndex:t.zIndex||4}).css(t.style).add())}),s.layOutTitles(i)},layOutTitles:function(t){var e=0,i=this.title,n=this.subtitle,r=this.options,o=r.title,r=r.subtitle,s=this.renderer,a=this.spacingBox;!i||(i.css({width:(o.width||a.width+o.widthAdjust)+"px"}).align(Vt({y:s.fontMetrics(o.style.fontSize,i).b-3},o),!1,a),o.floating||o.verticalAlign)||(e=i.getBBox().height),n&&(n.css({width:(r.width||a.width+r.widthAdjust)+"px"}).align(Vt({y:e+(o.margin-13)+s.fontMetrics(r.style.fontSize,i).b},r),!1,a),!r.floating&&!r.verticalAlign&&(e=ht(e+n.getBBox().height))),i=this.titleOffset!==e,this.titleOffset=e,!this.isDirtyBox&&i&&(this.isDirtyBox=i,this.hasRendered&&Kt(t,!0)&&this.isDirtyBox&&this.redraw())},getChartSize:function(){var t=this.options.chart,e=t.width,t=t.height,i=this.renderToClone||this.renderTo;h(e)||(this.containerWidth=Ft(i,"width")),h(t)||(this.containerHeight=Ft(i,"height")),
this.chartWidth=ct(0,e||this.containerWidth||600),this.chartHeight=ct(0,Kt(t,this.containerHeight>19?this.containerHeight:400))},cloneRenderTo:function(t){var e=this.renderToClone,i=this.container;t?e&&(this.renderTo.appendChild(i),C(e),delete this.renderToClone):(i&&i.parentNode===this.renderTo&&this.renderTo.removeChild(i),this.renderToClone=e=this.renderTo.cloneNode(0),d(e,{position:"absolute",top:"-9999px",display:"block"}),e.style.setProperty&&e.style.setProperty("display","block","important"),ot.body.appendChild(e),i&&e.appendChild(i))},getContainer:function(){var t,i,n,s=this.options,a=s.chart;t=this.renderTo;var l="highcharts-"+Lt++;t||(this.renderTo=t=a.renderTo),o(t)&&(this.renderTo=t=ot.getElementById(t)),t||e(13,!0),i=r(c(t,"data-highcharts-chart")),Jt(i)&&Pt[i]&&Pt[i].hasRendered&&Pt[i].destroy(),c(t,"data-highcharts-chart",this.index),t.innerHTML="",!a.skipClone&&!t.offsetWidth&&this.cloneRenderTo(),this.getChartSize(),i=this.chartWidth,n=this.chartHeight,this.container=t=f(It,{className:"highcharts-container"+(a.className?" "+a.className:""),id:l},Vt({position:"relative",overflow:"hidden",width:i+"px",height:n+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)"},a.style),this.renderToClone||t),this._cursor=t.style.cursor,this.renderer=new(rt[a.renderer]||O)(t,i,n,a.style,a.forExport,s.exporting&&s.exporting.allowHTML),At&&this.renderer.create(this,t,i,n),this.renderer.chartIndex=this.index},getMargins:function(t){var e=this.spacing,i=this.margin,n=this.titleOffset;this.resetMargins(),n&&!h(i[0])&&(this.plotTop=ct(this.plotTop,n+this.options.title.margin+e[0])),this.legend.adjustMargins(i,e),this.extraBottomMargin&&(this.marginBottom+=this.extraBottomMargin),this.extraTopMargin&&(this.plotTop+=this.extraTopMargin),t||this.getAxisMargins()},getAxisMargins:function(){var t=this,e=t.axisOffset=[0,0,0,0],i=t.margin;t.hasCartesianSeries&&jt(t.axes,function(t){t.visible&&t.getOffset()}),jt(Ot,function(n,r){h(i[r])||(t[n]+=e[r])}),t.setChartSize()},reflow:function(e){var i=this,n=i.options.chart,r=i.renderTo,o=n.width||Ft(r,"width"),s=n.height||Ft(r,"height"),n=e?e.target:t;i.hasUserSize||i.isPrinting||!o||!s||n!==t&&n!==ot||(o===i.containerWidth&&s===i.containerHeight||(clearTimeout(i.reflowTimeout),i.reflowTimeout=p(function(){i.container&&(i.setSize(o,s,!1),i.hasUserSize=null)},e?100:0)),i.containerWidth=o,i.containerHeight=s)},initReflow:function(){var e=this,i=function(t){e.reflow(t)};Wt(t,"resize",i),Wt(e,"destroy",function(){Ut(t,"resize",i)})},setSize:function(t,e,i){var n,r,o=this,s=o.renderer;o.isResizing+=1,A(i,o),o.oldChartHeight=o.chartHeight,o.oldChartWidth=o.chartWidth,h(t)&&(o.chartWidth=n=ct(0,at(t)),o.hasUserSize=!!n),h(e)&&(o.chartHeight=r=ct(0,at(e))),t=s.globalAnimation,(t?Yt:d)(o.container,{width:n+"px",height:r+"px"},t),o.setChartSize(!0),s.setSize(n,r,i),o.maxTicks=null,jt(o.axes,function(t){t.isDirty=!0,t.setScale()}),jt(o.series,function(t){t.isDirty=!0}),o.isDirtyLegend=!0,o.isDirtyBox=!0,o.layOutTitles(),o.getMargins(),o.redraw(i),o.oldChartHeight=null,Xt(o,"resize"),p(function(){o&&Xt(o,"endResize",null,function(){o.isResizing-=1})},D(t).duration)},setChartSize:function(t){var e,i,n,r,o=this.inverted,s=this.renderer,a=this.chartWidth,l=this.chartHeight,h=this.options.chart,c=this.spacing,u=this.clipOffset;this.plotLeft=e=at(this.plotLeft),this.plotTop=i=at(this.plotTop),this.plotWidth=n=ct(0,at(a-e-this.marginRight)),this.plotHeight=r=ct(0,at(l-i-this.marginBottom)),this.plotSizeX=o?r:n,this.plotSizeY=o?n:r,this.plotBorderWidth=h.plotBorderWidth||0,this.spacingBox=s.spacingBox={x:c[3],y:c[0],width:a-c[3]-c[1],height:l-c[0]-c[2]},this.plotBox=s.plotBox={x:e,y:i,width:n,height:r},a=2*lt(this.plotBorderWidth/2),o=ht(ct(a,u[3])/2),s=ht(ct(a,u[0])/2),this.clipBox={x:o,y:s,width:lt(this.plotSizeX-ct(a,u[1])/2-o),height:ct(0,lt(this.plotSizeY-ct(a,u[2])/2-s))},t||jt(this.axes,function(t){t.setAxisSize(),t.setAxisTranslation()})},resetMargins:function(){var t=this;jt(Ot,function(e,i){t[e]=Kt(t.margin[i],t.spacing[i])}),t.axisOffset=[0,0,0,0],t.clipOffset=[0,0,0,0]},drawChartBox:function(){var t,e=this.options.chart,i=this.renderer,n=this.chartWidth,r=this.chartHeight,o=this.chartBackground,s=this.plotBackground,a=this.plotBorder,l=this.plotBGImage,h=e.borderWidth||0,c=e.backgroundColor,u=e.plotBackgroundColor,p=e.plotBackgroundImage,d=e.plotBorderWidth||0,f=this.plotLeft,g=this.plotTop,m=this.plotWidth,v=this.plotHeight,y=this.plotBox,b=this.clipRect,x=this.clipBox;t=h+(e.shadow?8:0),(h||c)&&(o?o.animate(o.crisp({width:n-t,height:r-t})):(o={fill:c||"none"},h&&(o.stroke=e.borderColor,o["stroke-width"]=h),this.chartBackground=i.rect(t/2,t/2,n-t,r-t,e.borderRadius,h).attr(o).addClass("highcharts-background").add().shadow(e.shadow))),u&&(s?s.animate(y):this.plotBackground=i.rect(f,g,m,v,0).attr({fill:u}).add().shadow(e.plotShadow)),p&&(l?l.animate(y):this.plotBGImage=i.image(p,f,g,m,v).add()),b?b.animate({width:x.width,height:x.height}):this.clipRect=i.clipRect(x),d&&(a?(a.strokeWidth=-d,a.animate(a.crisp({x:f,y:g,width:m,height:v}))):this.plotBorder=i.rect(f,g,m,v,0,-d).attr({stroke:e.plotBorderColor,"stroke-width":d,fill:"none",zIndex:1}).add()),this.isDirtyBox=!1},propFromSeries:function(){var t,e,i,n=this,r=n.options.chart,o=n.options.series;jt(["inverted","angular","polar"],function(s){for(t=Bt[r.type||r.defaultSeriesType],i=n[s]||r[s]||t&&t.prototype[s],e=o&&o.length;!i&&e--;)(t=Bt[o[e].type])&&t.prototype[s]&&(i=!0);n[s]=i})},linkSeries:function(){var t=this,e=t.series;jt(e,function(t){t.linkedSeries.length=0}),jt(e,function(e){var i=e.options.linkedTo;o(i)&&(i=":previous"===i?t.series[e.index-1]:t.get(i))&&(i.linkedSeries.push(e),e.linkedParent=i,e.visible=Kt(e.options.visible,i.options.visible,e.visible))})},renderSeries:function(){jt(this.series,function(t){t.translate(),t.render()})},renderLabels:function(){var t=this,e=t.options.labels;e.items&&jt(e.items,function(i){var n=Vt(e.style,i.style),o=r(n.left)+t.plotLeft,s=r(n.top)+t.plotTop+12;delete n.left,delete n.top,t.renderer.text(i.html,o,s).attr({zIndex:2}).css(n).add()})},render:function(){var t,e,i,n,r=this.axes,o=this.renderer,s=this.options;this.setTitle(),this.legend=new de(this,s.legend),this.getStacks&&this.getStacks(),this.getMargins(!0),this.setChartSize(),t=this.plotWidth,e=this.plotHeight-=21,jt(r,function(t){t.setScale()}),this.getAxisMargins(),i=t/this.plotWidth>1.1,n=e/this.plotHeight>1.05,(i||n)&&(this.maxTicks=null,jt(r,function(t){(t.horiz&&i||!t.horiz&&n)&&t.setTickInterval(!0)}),this.getMargins()),this.drawChartBox(),this.hasCartesianSeries&&jt(r,function(t){t.visible&&t.render()}),this.seriesGroup||(this.seriesGroup=o.g("series-group").attr({zIndex:3}).add()),this.renderSeries(),this.renderLabels(),this.showCredits(s.credits),this.hasRendered=!0},showCredits:function(e){e.enabled&&!this.credits&&(this.credits=this.renderer.text(e.text,0,0).on("click",function(){e.href&&(t.location.href=e.href)}).attr({align:e.position.align,zIndex:8}).css(e.style).add().align(e.position))},destroy:function(){var t,e=this,i=e.axes,n=e.series,r=e.container,o=r&&r.parentNode;for(Xt(e,"destroy"),Pt[e.index]=R,Mt--,e.renderTo.removeAttribute("data-highcharts-chart"),Ut(e),t=i.length;t--;)i[t]=i[t].destroy();for(t=n.length;t--;)n[t]=n[t].destroy();jt("title,subtitle,chartBackground,plotBackground,plotBGImage,plotBorder,seriesGroup,clipRect,credits,pointer,scroller,rangeSelector,legend,resetZoomButton,tooltip,renderer".split(","),function(t){var i=e[t];i&&i.destroy&&(e[t]=i.destroy())}),r&&(r.innerHTML="",Ut(r),o&&C(r));for(t in e)delete e[t]},isReadyToRender:function(){var e=this;return!(!Ct&&t==t.top&&"complete"!==ot.readyState||At&&!t.canvg)||(At?re.push(function(){e.firstRender()},e.options.global.canvasToolsURL):ot.attachEvent("onreadystatechange",function(){ot.detachEvent("onreadystatechange",e.firstRender),"complete"===ot.readyState&&e.firstRender()}),!1)},firstRender:function(){var t=this,e=t.options;t.isReadyToRender()&&(t.getContainer(),Xt(t,"init"),t.resetMargins(),t.setChartSize(),t.propFromSeries(),t.getAxes(),jt(e.series||[],function(e){t.initSeries(e)}),t.linkSeries(),Xt(t,"beforeRender"),rt.Pointer&&(t.pointer=new le(t,e)),t.render(),t.renderer.draw(),!t.renderer.imgCount&&t.onload&&t.onload(),t.cloneRenderTo(!0))},onload:function(){var t=this;jt([this.callback].concat(this.callbacks),function(e){e&&void 0!==t.index&&e.apply(t,[t])}),Xt(t,"load"),this.onload=null},splashArray:function(t,e){var i=e[t],i=s(i)?i:[i,i,i,i];return[Kt(e[t+"Top"],i[0]),Kt(e[t+"Right"],i[1]),Kt(e[t+"Bottom"],i[2]),Kt(e[t+"Left"],i[3])]}};var ne=rt.CenteredSeriesMixin={getCenter:function(){var t,e,i=this.options,n=this.chart,r=2*(i.slicedOffset||0),o=n.plotWidth-2*r,n=n.plotHeight-2*r,s=i.center,s=[Kt(s[0],"50%"),Kt(s[1],"50%"),i.size||"100%",i.innerSize||0],a=ut(o,n);for(t=0;t<4;++t)e=s[t],i=t<2||2===t&&/%$/.test(e),s[t]=(/%$/.test(e)?[o,n,a,s[2]][t]*parseFloat(e)/100:parseFloat(e))+(i?r:0);return s[3]>s[2]&&(s[3]=s[2]),s}},ge=function(){};ge.prototype={init:function(t,e,i){return this.series=t,this.color=t.color,this.applyOptions(e,i),this.pointAttr={},t.options.colorByPoint&&(e=t.options.colors||t.chart.options.colors,this.color=this.color||e[t.colorCounter++],t.colorCounter===e.length)&&(t.colorCounter=0),t.chart.pointCount++,this},applyOptions:function(t,e){var i=this.series,n=i.options.pointValKey||i.pointValKey,t=ge.prototype.optionsToObject.call(this,t);return Vt(this,t),this.options=this.options?Vt(this.options,t):t,n&&(this.y=this[n]),this.isNull=null===this.x||null===this.y,void 0===this.x&&i&&(this.x=void 0===e?i.autoIncrement():e),this},optionsToObject:function(t){var e={},i=this.series,n=i.options.keys,r=n||i.pointArrayMap||["y"],o=r.length,s=0,l=0;if(Jt(t)||null===t)e[r[0]]=t;else if(a(t))for(!n&&t.length>o&&(i=typeof t[0],"string"===i?e.name=t[0]:"number"===i&&(e.x=t[0]),s++);l<o;)n&&void 0===t[s]||(e[r[l]]=t[s]),s++,l++;else"object"==typeof t&&(e=t,t.dataLabels&&(i._hasPointLabels=!0),t.marker&&(i._hasPointMarkers=!0));return e},destroy:function(){var t,e=this.series.chart,i=e.hoverPoints;e.pointCount--,i&&(this.setState(),l(i,this),!i.length)&&(e.hoverPoints=null),this===e.hoverPoint&&this.onMouseOut(),(this.graphic||this.dataLabel)&&(Ut(this),this.destroyElements()),this.legendItem&&e.legend.destroyItem(this);for(t in this)this[t]=null},destroyElements:function(){for(var t,e=["graphic","dataLabel","dataLabelUpper","connector","shadowGroup"],i=6;i--;)t=e[i],this[t]&&(this[t]=this[t].destroy())},getLabelConfig:function(){return{x:this.category,y:this.y,color:this.color,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}},tooltipFormatter:function(t){var e=this.series,i=e.tooltipOptions,n=Kt(i.valueDecimals,""),r=i.valuePrefix||"",o=i.valueSuffix||"";return jt(e.pointArrayMap||["y"],function(e){e="{point."+e,(r||o)&&(t=t.replace(e+"}",r+e+"}"+o)),t=t.replace(e+"}",e+":,."+n+"f}")}),y(t,{point:this,series:this.series})},firePointEvent:function(t,e,i){var n=this,r=this.series.options;(r.point.events[t]||n.options&&n.options.events&&n.options.events[t])&&this.importEvents(),"click"===t&&r.allowPointSelect&&(i=function(t){n.select&&n.select(null,t.ctrlKey||t.metaKey||t.shiftKey)}),Xt(this,t,e,i)},visible:!0};var me=rt.Series=function(){};me.prototype={isCartesian:!0,type:"line",pointClass:ge,sorted:!0,requireSorting:!0,pointAttrToOptions:{stroke:"lineColor","stroke-width":"lineWidth",fill:"fillColor",r:"radius"},directTouch:!1,axisTypes:["xAxis","yAxis"],colorCounter:0,parallelArrays:["x","y"],init:function(t,e){var i,n,r=this,o=t.series,s=function(t,e){return Kt(t.options.index,t._i)-Kt(e.options.index,e._i)};r.chart=t,r.options=e=r.setOptions(e),r.linkedSeries=[],r.bindAxes(),Vt(r,{name:e.name,state:"",pointAttr:{},visible:e.visible!==!1,selected:e.selected===!0}),At&&(e.animation=!1),n=e.events;for(i in n)Wt(r,i,n[i]);(n&&n.click||e.point&&e.point.events&&e.point.events.click||e.allowPointSelect)&&(t.runTrackerClick=!0),r.getColor(),r.getSymbol(),jt(r.parallelArrays,function(t){r[t+"Data"]=[]}),r.setData(e.data,!1),r.isCartesian&&(t.hasCartesianSeries=!0),o.push(r),r._i=o.length-1,w(o,s),this.yAxis&&w(this.yAxis.series,s),jt(o,function(t,e){t.index=e,t.name=t.name||"Series "+(e+1)})},bindAxes:function(){var t,i=this,n=i.options,r=i.chart;jt(i.axisTypes||[],function(o){jt(r[o],function(e){t=e.options,(n[o]===t.index||n[o]!==R&&n[o]===t.id||n[o]===R&&0===t.index)&&(e.series.push(i),i[o]=e,e.isDirty=!0)}),!i[o]&&i.optionalAxis!==o&&e(18,!0)})},updateParallelArrays:function(t,e){var i=t.series,n=arguments,r=Jt(e)?function(n){var r="y"===n&&i.toYData?i.toYData(t):t[n];i[n+"Data"][e]=r}:function(t){Array.prototype[e].apply(i[t+"Data"],Array.prototype.slice.call(n,2))};jt(i.parallelArrays,r)},autoIncrement:function(){var t,e=this.options,i=this.xIncrement,n=e.pointIntervalUnit,i=Kt(i,e.pointStart,0);return this.pointInterval=t=Kt(this.pointInterval,e.pointInterval,1),n&&(e=new H(i),"day"===n?e=+e[et](e[q]()+t):"month"===n?e=+e[it](e[V]()+t):"year"===n&&(e=+e[nt](e[J]()+t)),t=e-i),this.xIncrement=i+t,i},setOptions:function(t){var e=this.chart,i=e.options.plotOptions,e=e.userOptions||{},r=e.plotOptions||{},o=i[this.type];return this.userOptions=t,i=n(o,i.series,t),this.tooltipOptions=n(N.tooltip,N.plotOptions[this.type].tooltip,e.tooltip,r.series&&r.series.tooltip,r[this.type]&&r[this.type].tooltip,t.tooltip),null===o.marker&&delete i.marker,this.zoneAxis=i.zoneAxis,t=this.zones=(i.zones||[]).slice(),!i.negativeColor&&!i.negativeFillColor||i.zones||t.push({value:i[this.zoneAxis+"Threshold"]||i.threshold||0,color:i.negativeColor,fillColor:i.negativeFillColor}),t.length&&h(t[t.length-1].value)&&t.push({color:this.color,fillColor:this.fillColor}),i},getCyclic:function(t,e,i){var n=this.userOptions,r="_"+t+"Index",o=t+"Counter";e||(h(n[r])?e=n[r]:(n[r]=e=this.chart[o]%i.length,this.chart[o]+=1),e=i[e]),this[t]=e},getColor:function(){this.options.colorByPoint?this.options.color=null:this.getCyclic("color",this.options.color||Qt[this.type].color,this.chart.options.colors)},getSymbol:function(){var t=this.options.marker;this.getCyclic("symbol",t.symbol,this.chart.options.symbols),/^url/.test(this.symbol)&&(t.radius=0)},drawLegendSymbol:ie.drawLineMarker,setData:function(t,i,n,r){var s,l=this,c=l.points,u=c&&c.length||0,p=l.options,d=l.chart,f=null,g=l.xAxis,m=g&&!!g.categories,v=p.turboThreshold,y=this.xData,b=this.yData,x=(s=l.pointArrayMap)&&s.length,t=t||[];if(s=t.length,i=Kt(i,!0),r!==!1&&s&&u===s&&!l.cropped&&!l.hasGroupedData&&l.visible)jt(t,function(t,e){c[e].update&&t!==p.data[e]&&c[e].update(t,!1,null,!1)});else{if(l.xIncrement=null,l.colorCounter=0,jt(this.parallelArrays,function(t){l[t+"Data"].length=0}),v&&s>v){for(n=0;null===f&&n<s;)f=t[n],n++;if(Jt(f)){for(m=Kt(p.pointStart,0),f=Kt(p.pointInterval,1),n=0;n<s;n++)y[n]=m,b[n]=t[n],m+=f;l.xIncrement=m}else if(a(f))if(x)for(n=0;n<s;n++)f=t[n],y[n]=f[0],b[n]=f.slice(1,x+1);else for(n=0;n<s;n++)f=t[n],y[n]=f[0],b[n]=f[1];else e(12)}else for(n=0;n<s;n++)t[n]!==R&&(f={series:l},l.pointClass.prototype.applyOptions.apply(f,[t[n]]),l.updateParallelArrays(f,n),m&&h(f.name))&&(g.names[f.x]=f.name);for(o(b[0])&&e(14,!0),l.data=[],l.options.data=l.userOptions.data=t,n=u;n--;)c[n]&&c[n].destroy&&c[n].destroy();g&&(g.minRange=g.userMinRange),l.isDirty=l.isDirtyData=d.isDirtyBox=!0,n=!1}"point"===p.legendType&&(this.processData(),this.generatePoints()),i&&d.redraw(n)},processData:function(t){var i,n=this.xData,r=this.yData,o=n.length;i=0;var s,a,l,h=this.xAxis,c=this.options;l=c.cropThreshold;var u,p,d=this.getExtremesFromAll||c.getExtremesFromAll,f=this.isCartesian,c=h&&h.val2lin,g=h&&h.isLog;if(f&&!this.isDirty&&!h.isDirty&&!this.yAxis.isDirty&&!t)return!1;for(h&&(t=h.getExtremes(),u=t.min,p=t.max),f&&this.sorted&&!d&&(!l||o>l||this.forceCrop)&&(n[o-1]<u||n[0]>p?(n=[],r=[]):(n[0]<u||n[o-1]>p)&&(i=this.cropData(this.xData,this.yData,u,p),n=i.xData,r=i.yData,i=i.start,s=!0)),l=n.length||1;--l;)o=g?c(n[l])-c(n[l-1]):n[l]-n[l-1],o>0&&(a===R||o<a)?a=o:o<0&&this.requireSorting&&e(15);this.cropped=s,this.cropStart=i,this.processedXData=n,this.processedYData=r,this.closestPointRange=a},cropData:function(t,e,i,n){var r,o=t.length,s=0,a=o,l=Kt(this.cropShoulder,1);for(r=0;r<o;r++)if(t[r]>=i){s=ct(0,r-l);break}for(i=r;i<o;i++)if(t[i]>n){a=i+l;break}return{xData:t.slice(s,a),yData:e.slice(s,a),start:s,end:a}},generatePoints:function(){var t,e,i,n,r=this.options.data,o=this.data,s=this.processedXData,a=this.processedYData,l=this.pointClass,h=s.length,c=this.cropStart||0,p=this.hasGroupedData,d=[];for(o||p||(o=[],o.length=r.length,o=this.data=o),n=0;n<h;n++)e=c+n,p?(d[n]=(new l).init(this,[s[n]].concat(u(a[n]))),d[n].dataGroup=this.groupMap[n]):(o[e]?i=o[e]:r[e]!==R&&(o[e]=i=(new l).init(this,r[e],s[n])),d[n]=i),d[n].index=e;if(o&&(h!==(t=o.length)||p))for(n=0;n<t;n++)n===c&&!p&&(n+=h),o[n]&&(o[n].destroyElements(),o[n].plotX=R);this.data=o,this.points=d},getExtremes:function(t){var e,i=this.yAxis,n=this.processedXData,r=[],o=0;e=this.xAxis.getExtremes();var s,a,l,h,c=e.min,u=e.max,t=t||this.stackedYData||this.processedYData||[];for(e=t.length,h=0;h<e;h++)if(a=n[h],l=t[h],s=null!==l&&l!==R&&(!i.isLog||l.length||l>0),a=this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||(n[h+1]||a)>=c&&(n[h-1]||a)<=u,s&&a)if(s=l.length)for(;s--;)null!==l[s]&&(r[o++]=l[s]);else r[o++]=l;this.dataMin=S(r),this.dataMax=T(r)},translate:function(){this.processedXData||this.processData(),this.generatePoints();for(var t,i,n,r,o=this.options,s=o.stacking,a=this.xAxis,l=a.categories,c=this.yAxis,u=this.points,p=u.length,d=!!this.modifyValue,f=o.pointPlacement,g="between"===f||Jt(f),m=o.threshold,v=o.startFromThreshold?m:0,y=Number.MAX_VALUE,o=0;o<p;o++){var b=u[o],x=b.x,w=b.y;i=b.low;var S=s&&c.stacks[(this.negStacks&&w<(v?0:m)?"-":"")+this.stackKey];c.isLog&&null!==w&&w<=0&&(b.y=w=null,e(10)),b.plotX=t=_(ut(ct(-1e5,a.translate(x,0,0,0,1,f,"flags"===this.type)),1e5)),s&&this.visible&&!b.isNull&&S&&S[x]&&(r=this.getStackIndicator(r,x,this.index),S=S[x],w=S.points[r.key],i=w[0],w=w[1],i===v&&(i=Kt(m,c.min)),c.isLog&&i<=0&&(i=null),b.total=b.stackTotal=S.total,b.percentage=S.total&&b.y/S.total*100,b.stackY=w,S.setOffset(this.pointXOffset||0,this.barW||0)),b.yBottom=h(i)?c.translate(i,0,1,0,1):null,d&&(w=this.modifyValue(w,b)),b.plotY=i="number"==typeof w&&w!==1/0?ut(ct(-1e5,c.translate(w,0,1,0,1)),1e5):R,b.isInside=i!==R&&i>=0&&i<=c.len&&t>=0&&t<=a.len,b.clientX=g?a.translate(x,0,0,0,1):t,b.negative=b.y<(m||0),b.category=l&&l[b.x]!==R?l[b.x]:b.x,b.isNull||(void 0!==n&&(y=ut(y,pt(t-n))),n=t)}this.closestPointRangePx=y},getValidPoints:function(t,e){var i=this.chart;return $t(t||this.points||[],function(t){return!(e&&!i.isInsidePlot(t.plotX,t.plotY,i.inverted))&&!t.isNull})},setClip:function(t){var e=this.chart,i=this.options,n=e.renderer,r=e.inverted,o=this.clipBox,s=o||e.clipBox,a=this.sharedClipKey||["_sharedClip",t&&t.duration,t&&t.easing,s.height,i.xAxis,i.yAxis].join(","),l=e[a],h=e[a+"m"];l||(t&&(s.width=0,e[a+"m"]=h=n.clipRect(-99,r?-e.plotLeft:-e.plotTop,99,r?e.chartWidth:e.chartHeight)),e[a]=l=n.clipRect(s)),t&&(l.count+=1),i.clip!==!1&&(this.group.clip(t||o?l:e.clipRect),this.markerGroup.clip(h),this.sharedClipKey=a),t||(l.count-=1,l.count<=0&&a&&e[a]&&(o||(e[a]=e[a].destroy()),e[a+"m"]&&(e[a+"m"]=e[a+"m"].destroy())))},animate:function(t){var e,i=this.chart,n=this.options.animation;n&&!s(n)&&(n=Qt[this.type].animation),t?this.setClip(n):(e=this.sharedClipKey,(t=i[e])&&t.animate({width:i.plotSizeX},n),i[e+"m"]&&i[e+"m"].animate({width:i.plotSizeX+99},n),this.animate=null)},afterAnimate:function(){this.setClip(),Xt(this,"afterAnimate")},drawPoints:function(){var t,e,i,n,r,o,s,a,l,h,c,u,p=this.points,d=this.chart,f=this.options.marker,g=this.pointAttr[""],m=this.markerGroup,v=Kt(f.enabled,this.xAxis.isRadial,this.closestPointRangePx>2*f.radius);if(f.enabled!==!1||this._hasPointMarkers)for(n=p.length;n--;)r=p[n],e=lt(r.plotX),i=r.plotY,l=r.graphic,h=r.marker||{},c=!!r.marker,t=v&&h.enabled===R||h.enabled,u=r.isInside,t&&Jt(i)&&null!==r.y?(t=r.pointAttr[r.selected?"select":""]||g,o=t.r,s=Kt(h.symbol,this.symbol),a=0===s.indexOf("url"),l?l[u?"show":"hide"](!0).attr(t).animate(Vt({x:e-o,y:i-o},l.symbolName?{width:2*o,height:2*o}:{})):u&&(o>0||a)&&(r.graphic=d.renderer.symbol(s,e-o,i-o,2*o,2*o,c?h:f).attr(t).add(m))):l&&(r.graphic=l.destroy())},convertAttribs:function(t,e,i,n){var r,o,s=this.pointAttrToOptions,a={},t=t||{},e=e||{},i=i||{},n=n||{};for(r in s)o=s[r],a[r]=Kt(t[o],e[r],i[r],n[r]);return a},getAttribs:function(){var t,e,i,n=this,r=n.options,o=Qt[n.type].marker?r.marker:r,s=o.states,a=s.hover,l=n.color,c=n.options.negativeColor,u={stroke:l,fill:l},p=n.points||[],d=[],f=n.pointAttrToOptions;t=n.hasPointSpecificOptions;var g=o.lineColor,m=o.fillColor;e=r.turboThreshold;var v,y,b=n.zones,x=n.zoneAxis||"y";if(r.marker?(a.radius=a.radius||o.radius+a.radiusPlus,a.lineWidth=a.lineWidth||o.lineWidth+a.lineWidthPlus):(a.color=a.color||E(a.color||l).brighten(a.brightness).get(),a.negativeColor=a.negativeColor||E(a.negativeColor||c).brighten(a.brightness).get()),d[""]=n.convertAttribs(o,u),jt(["hover","select"],function(t){d[t]=n.convertAttribs(s[t],d[""])}),n.pointAttr=d,l=p.length,!e||l<e||t)for(;l--;){if(e=p[l],(o=e.options&&e.options.marker||e.options)&&o.enabled===!1&&(o.radius=0),u=null,b.length){for(t=0,u=b[t];e[x]>=u.value;)u=b[++t];e.color=e.fillColor=u=Kt(u.color,n.color)}if(t=r.colorByPoint||e.color,e.options)for(y in f)h(o[f[y]])&&(t=!0);t?(o=o||{},i=[],s=o.states||{},t=s.hover=s.hover||{},r.marker&&(!e.negative||t.fillColor||a.fillColor)||(t[n.pointAttrToOptions.fill]=t.color||!e.options.color&&a[e.negative&&c?"negativeColor":"color"]||E(e.color).brighten(t.brightness||a.brightness).get()),v={color:e.color},m||(v.fillColor=e.color),g||(v.lineColor=e.color),o.hasOwnProperty("color")&&!o.color&&delete o.color,u&&!a.fillColor&&(t.fillColor=u),i[""]=n.convertAttribs(Vt(v,o),d[""]),i.hover=n.convertAttribs(s.hover,d.hover,i[""]),i.select=n.convertAttribs(s.select,d.select,i[""])):i=d,e.pointAttr=i}},destroy:function(){var t,e,i,n,r=this,o=r.chart,s=/AppleWebKit\/533/.test(vt),a=r.data||[];for(Xt(r,"destroy"),Ut(r),jt(r.axisTypes||[],function(t){(n=r[t])&&(l(n.series,r),n.isDirty=n.forceRedraw=!0)}),r.legendItem&&r.chart.legend.destroyItem(r),t=a.length;t--;)(e=a[t])&&e.destroy&&e.destroy();r.points=null,clearTimeout(r.animationTimeout);for(i in r)r[i]instanceof P&&!r[i].survive&&(t=s&&"group"===i?"hide":"destroy",r[i][t]());o.hoverSeries===r&&(o.hoverSeries=null),l(o.series,r);for(i in r)delete r[i]},getGraphPath:function(t,e,i){var n,r,o=this,s=o.options,a=s.step,l=[],t=t||o.points;return(n=t.reversed)&&t.reverse(),(a={right:1,center:2}[a]||a&&3)&&n&&(a=4-a),s.connectNulls&&!e&&!i&&(t=this.getValidPoints(t)),jt(t,function(n,c){var u=n.plotX,p=n.plotY,d=t[c-1];(n.leftCliff||d&&d.rightCliff)&&!i&&(r=!0),n.isNull&&!h(e)&&c>0?r=!s.connectNulls:n.isNull&&!e?r=!0:(0===c||r?d=["M",n.plotX,n.plotY]:o.getPointSpline?d=o.getPointSpline(t,n,c):a?(d=1===a?["L",d.plotX,p]:2===a?["L",(d.plotX+u)/2,d.plotY,"L",(d.plotX+u)/2,p]:["L",u,d.plotY],d.push("L",u,p)):d=["L",u,p],l.push.apply(l,d),r=!1)}),o.graphPath=l},drawGraph:function(){var t=this,e=this.options,i=[["graph",e.lineColor||this.color,e.dashStyle]],n=e.lineWidth,r="square"!==e.linecap,o=(this.gappedPath||this.getGraphPath).call(this),s=this.fillGraph&&this.color||"none";jt(this.zones,function(n,r){i.push(["zoneGraph"+r,n.color||t.color,n.dashStyle||e.dashStyle])}),jt(i,function(i,a){var l=i[0],h=t[l];h?h.animate({d:o}):(n||s)&&o.length&&(h={stroke:i[1],"stroke-width":n,fill:s,zIndex:1},i[2]?h.dashstyle=i[2]:r&&(h["stroke-linecap"]=h["stroke-linejoin"]="round"),t[l]=t.chart.renderer.path(o).attr(h).add(t.group).shadow(a<2&&e.shadow))})},applyZones:function(){var t,e,i,n,r,o,s,a=this,l=this.chart,h=l.renderer,c=this.zones,u=this.clips||[],p=this.graph,d=this.area,f=ct(l.chartWidth,l.chartHeight),g=this[(this.zoneAxis||"y")+"Axis"],m=g.reversed,v=l.inverted,y=g.horiz,b=!1;c.length&&(p||d)&&g.min!==R&&(p&&p.hide(),d&&d.hide(),n=g.getExtremes(),jt(c,function(c,x){t=m?y?l.plotWidth:0:y?0:g.toPixels(n.min),t=ut(ct(Kt(e,t),0),f),e=ut(ct(at(g.toPixels(Kt(c.value,n.max),!0)),0),f),b&&(t=e=g.toPixels(n.max)),r=Math.abs(t-e),o=ut(t,e),s=ct(t,e),g.isXAxis?(i={x:v?s:o,y:0,width:r,height:f},y||(i.x=l.plotHeight-i.x)):(i={x:0,y:v?s:o,width:f,height:r},y&&(i.y=l.plotWidth-i.y)),l.inverted&&h.isVML&&(i=g.isXAxis?{x:0,y:m?o:s,height:i.width,width:l.chartWidth}:{x:i.y-l.plotLeft-l.spacingBox.x,y:0,width:i.height,height:l.chartHeight}),u[x]?u[x].animate(i):(u[x]=h.clipRect(i),p&&a["zoneGraph"+x].clip(u[x]),d&&a["zoneArea"+x].clip(u[x])),b=c.value>n.max}),this.clips=u)},invertGroups:function(){function t(){var t={width:e.yAxis.len,height:e.xAxis.len};jt(["group","markerGroup"],function(i){e[i]&&e[i].attr(t).invert()})}var e=this,i=e.chart;e.xAxis&&(Wt(i,"resize",t),Wt(e,"destroy",function(){Ut(i,"resize",t)}),t(),e.invertGroups=t)},plotGroup:function(t,e,i,n,r){var o=this[t],s=!o;return s&&(this[t]=o=this.chart.renderer.g(e).attr({zIndex:n||.1}).add(r),o.addClass("highcharts-series-"+this.index)),o.attr({visibility:i})[s?"attr":"animate"](this.getPlotBox()),o},getPlotBox:function(){var t=this.chart,e=this.xAxis,i=this.yAxis;return t.inverted&&(e=i,i=this.xAxis),{translateX:e?e.left:t.plotLeft,translateY:i?i.top:t.plotTop,scaleX:1,scaleY:1}},render:function(){var t,e=this,i=e.chart,n=e.options,r=!!e.animate&&i.renderer.isSVG&&D(n.animation).duration,o=e.visible?"inherit":"hidden",s=n.zIndex,a=e.hasRendered,l=i.seriesGroup;t=e.plotGroup("group","series",o,s,l),e.markerGroup=e.plotGroup("markerGroup","markers",o,s,l),r&&e.animate(!0),e.getAttribs(),t.inverted=!!e.isCartesian&&i.inverted,e.drawGraph&&(e.drawGraph(),e.applyZones()),jt(e.points,function(t){t.redraw&&t.redraw()}),e.drawDataLabels&&e.drawDataLabels(),e.visible&&e.drawPoints(),e.drawTracker&&e.options.enableMouseTracking!==!1&&e.drawTracker(),i.inverted&&e.invertGroups(),n.clip!==!1&&!e.sharedClipKey&&!a&&t.clip(i.clipRect),r&&e.animate(),a||(e.animationTimeout=p(function(){e.afterAnimate()},r)),e.isDirty=e.isDirtyData=!1,e.hasRendered=!0},redraw:function(){var t=this.chart,e=this.isDirty||this.isDirtyData,i=this.group,n=this.xAxis,r=this.yAxis;i&&(t.inverted&&i.attr({width:t.plotWidth,height:t.plotHeight}),i.animate({translateX:Kt(n&&n.left,t.plotLeft),translateY:Kt(r&&r.top,t.plotTop)})),this.translate(),this.render(),e&&delete this.kdTree},kdDimensions:1,kdAxisArray:["clientX","plotY"],searchPoint:function(t,e){var i=this.xAxis,n=this.yAxis,r=this.chart.inverted;return this.searchKDTree({clientX:r?i.len-t.chartY+i.pos:t.chartX-i.pos,plotY:r?n.len-t.chartX+n.pos:t.chartY-n.pos},e)},buildKDTree:function(){function t(i,n,r){var o,s;if(s=i&&i.length)return o=e.kdAxisArray[n%r],i.sort(function(t,e){return t[o]-e[o]}),s=Math.floor(s/2),{point:i[s],left:t(i.slice(0,s),n+1,r),right:t(i.slice(s+1),n+1,r)}}var e=this,i=e.kdDimensions;delete e.kdTree,p(function(){e.kdTree=t(e.getValidPoints(null,!e.directTouch),i,i)},e.options.kdNow?0:1)},searchKDTree:function(t,e){function i(t,e,a,l){var c,u,p=e.point,d=n.kdAxisArray[a%l],f=p;return u=h(t[r])&&h(p[r])?Math.pow(t[r]-p[r],2):null,c=h(t[o])&&h(p[o])?Math.pow(t[o]-p[o],2):null,c=(u||0)+(c||0),p.dist=h(c)?Math.sqrt(c):Number.MAX_VALUE,p.distX=h(u)?Math.sqrt(u):Number.MAX_VALUE,d=t[d]-p[d],c=d<0?"left":"right",u=d<0?"right":"left",e[c]&&(c=i(t,e[c],a+1,l),f=c[s]<f[s]?c:p),e[u]&&Math.sqrt(d*d)<f[s]&&(t=i(t,e[u],a+1,l),f=t[s]<f[s]?t:f),f}var n=this,r=this.kdAxisArray[0],o=this.kdAxisArray[1],s=e?"distX":"dist";if(this.kdTree||this.buildKDTree(),this.kdTree)return i(t,this.kdTree,this.kdDimensions,this.kdDimensions)}},I.prototype={destroy:function(){k(this,this.axis)},render:function(t){var e=this.options,i=e.format,i=i?y(i,this):e.formatter.call(this);this.label?this.label.attr({text:i,visibility:"hidden"}):this.label=this.axis.chart.renderer.text(i,null,null,e.useHTML).css(e.style).attr({align:this.textAlign,rotation:e.rotation,visibility:"hidden"}).add(t)},setOffset:function(t,e){var i=this.axis,n=i.chart,r=n.inverted,o=i.reversed,o=this.isNegative&&!o||!this.isNegative&&o,s=i.translate(i.usePercentage?100:this.total,0,0,0,1),i=i.translate(0),i=pt(s-i),a=n.xAxis[0].translate(this.x)+t,l=n.plotHeight,o={x:r?o?s:s-i:a,y:r?l-a-e:o?l-s-i:l-s,width:r?i:e,height:r?e:i};(r=this.label)&&(r.align(this.alignOptions,null,o),o=r.alignAttr,r[this.options.crop===!1||n.isInsidePlot(o.x,o.y)?"show":"hide"](!0))}},fe.prototype.getStacks=function(){var t=this;jt(t.yAxis,function(t){t.stacks&&t.hasVisibleSeries&&(t.oldStacks=t.stacks)}),jt(t.series,function(e){!e.options.stacking||e.visible!==!0&&t.options.chart.ignoreHiddenSeries!==!1||(e.stackKey=e.type+Kt(e.options.stack,""))})},oe.prototype.buildStacks=function(){var t,e,i=this.series,n=Kt(this.options.reversedStacks,!0),r=i.length;if(!this.isXAxis){for(this.usePercentage=!1,e=r;e--;)i[n?e:r-e-1].setStackedPoints();for(e=r;e--;)t=i[n?e:r-e-1],t.setStackCliffs&&t.setStackCliffs();if(this.usePercentage)for(e=0;e<r;e++)i[e].setPercentStacks()}},oe.prototype.renderStackTotals=function(){var t,e,i=this.chart,n=i.renderer,r=this.stacks,o=this.stackTotalGroup;o||(this.stackTotalGroup=o=n.g("stack-labels").attr({visibility:"visible",zIndex:6}).add()),o.translate(i.plotLeft,i.plotTop);for(t in r)for(e in i=r[t])i[e].render(o)},oe.prototype.resetStacks=function(){var t,e,i=this.stacks;if(!this.isXAxis)for(t in i)for(e in i[t])i[t][e].touched<this.stacksTouched?(i[t][e].destroy(),delete i[t][e]):(i[t][e].total=null,i[t][e].cum=0)},oe.prototype.cleanStacks=function(){var t,e,i;if(!this.isXAxis){this.oldStacks&&(t=this.stacks=this.oldStacks);for(e in t)for(i in t[e])t[e][i].cum=t[e][i].total}},me.prototype.setStackedPoints=function(){if(this.options.stacking&&(this.visible===!0||this.chart.options.chart.ignoreHiddenSeries===!1)){var t,e,i,n,r,o,s,a=this.processedXData,l=this.processedYData,h=[],c=l.length,u=this.options,p=u.threshold,d=u.startFromThreshold?p:0,f=u.stack,u=u.stacking,g=this.stackKey,m="-"+g,v=this.negStacks,y=this.yAxis,b=y.stacks,x=y.oldStacks;for(y.stacksTouched+=1,r=0;r<c;r++)o=a[r],s=l[r],t=this.getStackIndicator(t,o,this.index),n=t.key,i=(e=v&&s<(d?0:p))?m:g,b[i]||(b[i]={}),b[i][o]||(x[i]&&x[i][o]?(b[i][o]=x[i][o],b[i][o].total=null):b[i][o]=new I(y,y.options.stackLabels,e,o,f)),i=b[i][o],null!==s&&(i.points[n]=i.points[this.index]=[Kt(i.cum,d)],i.touched=y.stacksTouched,t.index>0&&this.singleStacks===!1&&(i.points[n][0]=i.points[this.index+","+o+",0"][0])),"percent"===u?(e=e?g:m,v&&b[e]&&b[e][o]?(e=b[e][o],i.total=e.total=ct(e.total,i.total)+pt(s)||0):i.total=_(i.total+(pt(s)||0))):i.total=_(i.total+(s||0)),i.cum=Kt(i.cum,d)+(s||0),null!==s&&(i.points[n].push(i.cum),h[r]=i.cum);"percent"===u&&(y.usePercentage=!0),this.stackedYData=h,y.oldStacks={}}},me.prototype.setPercentStacks=function(){var t,e=this,i=e.stackKey,n=e.yAxis.stacks,r=e.processedXData;jt([i,"-"+i],function(i){for(var o,s,a,l=r.length;l--;)s=r[l],t=e.getStackIndicator(t,s,e.index),o=(a=n[i]&&n[i][s])&&a.points[t.key],(s=o)&&(a=a.total?100/a.total:0,s[0]=_(s[0]*a),s[1]=_(s[1]*a),e.stackedYData[l]=s[1])})},me.prototype.getStackIndicator=function(t,e,i){return h(t)&&t.x===e?t.index++:t={x:e,index:0},t.key=[i,e,t.index].join(","),t},Vt(fe.prototype,{addSeries:function(t,e,i){var n,r=this;return t&&(e=Kt(e,!0),Xt(r,"addSeries",{options:t},function(){n=r.initSeries(t),r.isDirtyLegend=!0,r.linkSeries(),e&&r.redraw(i)})),n},addAxis:function(t,e,i,r){var o=e?"xAxis":"yAxis",s=this.options,t=n(t,{index:this[o].length,isX:e});new oe(this,t),s[o]=u(s[o]||{}),s[o].push(t),Kt(i,!0)&&this.redraw(r)},showLoading:function(t){var e=this,i=e.options,n=e.loadingDiv,r=i.loading,o=function(){n&&d(n,{left:e.plotLeft+"px",top:e.plotTop+"px",width:e.plotWidth+"px",height:e.plotHeight+"px"})};n||(e.loadingDiv=n=f(It,{className:"highcharts-loading"},Vt(r.style,{
zIndex:10,display:"none"}),e.container),e.loadingSpan=f("span",null,r.labelStyle,n),Wt(e,"redraw",o)),e.loadingSpan.innerHTML=t||i.lang.loading,e.loadingShown||(d(n,{opacity:0,display:""}),Yt(n,{opacity:r.style.opacity},{duration:r.showDuration||0}),e.loadingShown=!0),o()},hideLoading:function(){var t=this.options,e=this.loadingDiv;e&&Yt(e,{opacity:0},{duration:t.loading.hideDuration||100,complete:function(){d(e,{display:"none"})}}),this.loadingShown=!1}}),Vt(ge.prototype,{update:function(t,e,i,n){function r(){l.applyOptions(t),null===l.y&&c&&(l.graphic=c.destroy()),s(t)&&!a(t)&&(l.redraw=function(){c&&c.element&&t&&t.marker&&t.marker.symbol&&(l.graphic=c.destroy()),t&&t.dataLabels&&l.dataLabel&&(l.dataLabel=l.dataLabel.destroy()),l.redraw=null}),o=l.index,h.updateParallelArrays(l,o),d&&l.name&&(d[l.x]=l.name),p.data[o]=s(p.data[o])&&!a(p.data[o])?l.options:t,h.isDirty=h.isDirtyData=!0,!h.fixedBox&&h.hasCartesianSeries&&(u.isDirtyBox=!0),"point"===p.legendType&&(u.isDirtyLegend=!0),e&&u.redraw(i)}var o,l=this,h=l.series,c=l.graphic,u=h.chart,p=h.options,d=h.xAxis&&h.xAxis.names,e=Kt(e,!0);n===!1?r():l.firePointEvent("update",{options:t},r)},remove:function(t,e){this.series.removePoint(Nt(this,this.series.data),t,e)}}),Vt(me.prototype,{addPoint:function(t,e,i,n){var r,o=this,s=o.options,a=o.data,l=o.graph,h=o.area,c=o.chart,u=o.xAxis&&o.xAxis.names,p=l&&l.shift||0,d=["graph","area"],l=s.data,f=o.xData;if(A(n,c),i){for(n=o.zones.length;n--;)d.push("zoneGraph"+n,"zoneArea"+n);jt(d,function(t){o[t]&&(o[t].shift=p+(s.step?2:1))})}if(h&&(h.isArea=!0),e=Kt(e,!0),h={series:o},o.pointClass.prototype.applyOptions.apply(h,[t]),d=h.x,n=f.length,o.requireSorting&&d<f[n-1])for(r=!0;n&&f[n-1]>d;)n--;o.updateParallelArrays(h,"splice",n,0,0),o.updateParallelArrays(h,n),u&&h.name&&(u[d]=h.name),l.splice(n,0,t),r&&(o.data.splice(n,0,null),o.processData()),"point"===s.legendType&&o.generatePoints(),i&&(a[0]&&a[0].remove?a[0].remove(!1):(a.shift(),o.updateParallelArrays(h,"shift"),l.shift())),o.isDirty=!0,o.isDirtyData=!0,e&&(o.getAttribs(),c.redraw())},removePoint:function(t,e,i){var n=this,r=n.data,o=r[t],s=n.points,a=n.chart,l=function(){s&&s.length===r.length&&s.splice(t,1),r.splice(t,1),n.options.data.splice(t,1),n.updateParallelArrays(o||{series:n},"splice",t,1),o&&o.destroy(),n.isDirty=!0,n.isDirtyData=!0,e&&a.redraw()};A(i,a),e=Kt(e,!0),o?o.firePointEvent("remove",null,l):l()},remove:function(t,e){var i=this,n=i.chart;Xt(i,"remove",null,function(){i.destroy(),n.isDirtyLegend=n.isDirtyBox=!0,n.linkSeries(),Kt(t,!0)&&n.redraw(e)})},update:function(t,e){var i,r=this,o=this.chart,s=this.userOptions,a=this.type,l=Bt[a].prototype,h=["group","markerGroup","dataLabelsGroup"];(t.type&&t.type!==a||void 0!==t.zIndex)&&(h.length=0),jt(h,function(t){h[t]=r[t],delete r[t]}),t=n(s,{animation:!1,index:this.index,pointStart:this.xData[0]},{data:this.options.data},t),this.remove(!1);for(i in l)this[i]=R;Vt(this,Bt[t.type||a].prototype),jt(h,function(t){r[t]=h[t]}),this.init(o,t),o.linkSeries(),Kt(e,!0)&&o.redraw(!1)}}),Vt(oe.prototype,{update:function(t,e){var i=this.chart,t=i.options[this.coll][this.options.index]=n(this.userOptions,t);this.destroy(!0),this._addedPlotLB=this.chart._labelPanes=R,this.init(i,Vt(t,{events:R})),i.isDirtyBox=!0,Kt(e,!0)&&i.redraw()},remove:function(t){for(var e=this.chart,i=this.coll,n=this.series,r=n.length;r--;)n[r]&&n[r].remove(!1);l(e.axes,this),l(e[i],this),e.options[i].splice(this.options.index,1),jt(e[i],function(t,e){t.options.index=e}),this.destroy(),e.isDirtyBox=!0,Kt(t,!0)&&e.redraw()},setTitle:function(t,e){this.update({title:t},e)},setCategories:function(t,e){this.update({categories:t},e)}});var ve=g(me);Bt.line=ve,Qt.area=n(te,{softThreshold:!1,threshold:0});var ye=g(me,{type:"area",singleStacks:!1,getStackPoints:function(){var t,e,i,n=[],r=[],o=this.xAxis,s=this.yAxis,a=s.stacks[this.stackKey],l={},h=this.points,c=this.index,u=s.series,p=u.length,d=Kt(s.options.reversedStacks,!0)?1:-1;if(this.options.stacking){for(e=0;e<h.length;e++)l[h[e].x]=h[e];for(i in a)null!==a[i].total&&r.push(i);r.sort(function(t,e){return t-e}),t=zt(u,function(){return this.visible}),jt(r,function(i,h){var u,f,g=0;if(l[i]&&!l[i].isNull)n.push(l[i]),jt([-1,1],function(n){var o=1===n?"rightNull":"leftNull",s=0,g=a[r[h+n]];if(g)for(e=c;e>=0&&e<p;)u=g.points[e],u||(e===c?l[i][o]=!0:t[e]&&(f=a[i].points[e])&&(s-=f[1]-f[0])),e+=d;l[i][1===n?"rightCliff":"leftCliff"]=s});else{for(e=c;e>=0&&e<p;){if(u=a[i].points[e]){g=u[1];break}e+=d}g=s.toPixels(g,!0),n.push({isNull:!0,plotX:o.toPixels(i,!0),plotY:g,yBottom:g})}})}return n},getGraphPath:function(t){var e,i,n,r,o=me.prototype.getGraphPath,s=this.options,a=s.stacking,l=this.yAxis,h=[],c=[],u=this.index,p=l.stacks[this.stackKey],d=s.threshold,f=l.getThreshold(s.threshold),s=s.connectNulls||"percent"===a,g=function(e,i,r){var o,s,g=t[e],e=a&&p[g.x].points[u],m=g[r+"Null"]||0,r=g[r+"Cliff"]||0,g=!0;r||m?(o=(m?e[0]:e[1])+r,s=e[0]+r,g=!!m):!a&&t[i]&&t[i].isNull&&(o=s=d),void 0!==o&&(c.push({plotX:n,plotY:null===o?f:l.getThreshold(o),isNull:g}),h.push({plotX:n,plotY:null===s?f:l.getThreshold(s)}))},t=t||this.points;for(a&&(t=this.getStackPoints()),e=0;e<t.length;e++)i=t[e].isNull,n=Kt(t[e].rectPlotX,t[e].plotX),r=Kt(t[e].yBottom,f),(!i||s)&&(s||g(e,e-1,"left"),i&&!a&&s||(c.push(t[e]),h.push({x:e,plotX:n,plotY:r})),s||g(e,e+1,"right"));return e=o.call(this,c,!0,!0),h.reversed=!0,i=o.call(this,h,!0,!0),i.length&&(i[0]="L"),e=e.concat(i),o=o.call(this,c,!1,s),this.areaPath=e,o},drawGraph:function(){this.areaPath=[],me.prototype.drawGraph.apply(this);var t=this,e=this.areaPath,i=this.options,n=[["area",this.color,i.fillColor]];jt(this.zones,function(e,r){n.push(["zoneArea"+r,e.color||t.color,e.fillColor||i.fillColor])}),jt(n,function(n){var r=n[0],o=t[r];o?o.animate({d:e}):(o={fill:n[2]||n[1],zIndex:0},n[2]||(o["fill-opacity"]=Kt(i.fillOpacity,.75)),t[r]=t.chart.renderer.path(e).attr(o).add(t.group))})},drawLegendSymbol:ie.drawRectangle});return Bt.area=ye,Qt.spline=n(te),ve=g(me,{type:"spline",getPointSpline:function(t,e,i){var n,r,o,s,a=e.plotX,l=e.plotY,h=t[i-1],i=t[i+1];if(h&&!h.isNull&&i&&!i.isNull){t=h.plotY,o=i.plotX;var i=i.plotY,c=0;n=(1.5*a+h.plotX)/2.5,r=(1.5*l+t)/2.5,o=(1.5*a+o)/2.5,s=(1.5*l+i)/2.5,o!==n&&(c=(s-r)*(o-a)/(o-n)+l-s),r+=c,s+=c,r>t&&r>l?(r=ct(t,l),s=2*l-r):r<t&&r<l&&(r=ut(t,l),s=2*l-r),s>i&&s>l?(s=ct(i,l),r=2*l-s):s<i&&s<l&&(s=ut(i,l),r=2*l-s),e.rightContX=o,e.rightContY=s}return e=["C",Kt(h.rightContX,h.plotX),Kt(h.rightContY,h.plotY),Kt(n,a),Kt(r,l),a,l],h.rightContX=h.rightContY=null,e}}),Bt.spline=ve,Qt.areaspline=n(Qt.area),ye=ye.prototype,ve=g(ve,{type:"areaspline",getStackPoints:ye.getStackPoints,getGraphPath:ye.getGraphPath,setStackCliffs:ye.setStackCliffs,drawGraph:ye.drawGraph,drawLegendSymbol:ie.drawRectangle}),Bt.areaspline=ve,Qt.column=n(te,{borderColor:"#FFFFFF",borderRadius:0,groupPadding:.2,marker:null,pointPadding:.1,minPointLength:0,cropThreshold:50,pointRange:null,states:{hover:{brightness:.1,shadow:!1,halo:!1},select:{color:"#C0C0C0",borderColor:"#000000",shadow:!1}},dataLabels:{align:null,verticalAlign:null,y:null},softThreshold:!1,startFromThreshold:!0,stickyTracking:!1,tooltip:{distance:6},threshold:0}),ve=g(me,{type:"column",pointAttrToOptions:{stroke:"borderColor",fill:"color",r:"borderRadius"},cropShoulder:0,directTouch:!0,trackerGroups:["group","dataLabelsGroup"],negStacks:!0,init:function(){me.prototype.init.apply(this,arguments);var t=this,e=t.chart;e.hasRendered&&jt(e.series,function(e){e.type===t.type&&(e.isDirty=!0)})},getColumnMetrics:function(){var t,e=this,i=e.options,n=e.xAxis,r=e.yAxis,o=n.reversed,s={},a=0;i.grouping===!1?a=1:jt(e.chart.series,function(i){var n,o=i.options,l=i.yAxis;i.type===e.type&&i.visible&&r.len===l.len&&r.pos===l.pos&&(o.stacking?(t=i.stackKey,s[t]===R&&(s[t]=a++),n=s[t]):o.grouping!==!1&&(n=a++),i.columnIndex=n)});var l=ut(pt(n.transA)*(n.ordinalSlope||i.pointRange||n.closestPointRange||n.tickInterval||1),n.len),h=l*i.groupPadding,c=(l-2*h)/a,i=ut(i.maxPointWidth||n.len,Kt(i.pointWidth,c*(1-2*i.pointPadding)));return e.columnMetrics={width:i,offset:(c-i)/2+(h+((e.columnIndex||0)+(o?1:0))*c-l/2)*(o?-1:1)},e.columnMetrics},crispCol:function(t,e,i,n){var r=this.chart,o=this.borderWidth,s=-(o%2?.5:0),o=o%2?.5:1;return r.inverted&&r.renderer.isVML&&(o+=1),i=Math.round(t+i)+s,t=Math.round(t)+s,i-=t,n=Math.round(e+n)+o,s=pt(e)<=.5&&n>.5,e=Math.round(e)+o,n-=e,s&&n&&(e-=1,n+=1),{x:t,y:e,width:i,height:n}},translate:function(){var t=this,e=t.chart,i=t.options,n=t.borderWidth=Kt(i.borderWidth,t.closestPointRange*t.xAxis.transA<2?0:1),r=t.yAxis,o=t.translatedThreshold=r.getThreshold(i.threshold),s=Kt(i.minPointLength,5),a=t.getColumnMetrics(),l=a.width,h=t.barW=ct(l,1+2*n),c=t.pointXOffset=a.offset;e.inverted&&(o-=.5),i.pointPadding&&(h=ht(h)),me.prototype.translate.apply(t),jt(t.points,function(i){var n,a=ut(Kt(i.yBottom,o),9e4),u=999+pt(a),u=ut(ct(-u,i.plotY),r.len+u),p=i.plotX+c,d=h,f=ut(u,a),g=ct(u,a)-f;pt(g)<s&&s&&(g=s,n=!r.reversed&&!i.negative||r.reversed&&i.negative,f=pt(f-o)>s?a-s:o-(n?s:0)),i.barX=p,i.pointWidth=l,i.tooltipPos=e.inverted?[r.len+r.pos-e.plotLeft-u,t.xAxis.len-p-d/2,g]:[p+d/2,u+r.pos-e.plotTop,g],i.shapeType="rect",i.shapeArgs=t.crispCol(p,f,d,g)})},getSymbol:Et,drawLegendSymbol:ie.drawRectangle,drawGraph:Et,drawPoints:function(){var t,e,i=this,r=this.chart,o=i.options,s=r.renderer,a=o.animationLimit||250;jt(i.points,function(l){var c,u=l.graphic;Jt(l.plotY)&&null!==l.y?(t=l.shapeArgs,c=h(i.borderWidth)?{"stroke-width":i.borderWidth}:{},e=l.pointAttr[l.selected?"select":""]||i.pointAttr[""],u?(Gt(u),u.attr(c).attr(e)[r.pointCount<a?"animate":"attr"](n(t))):l.graphic=s[l.shapeType](t).attr(c).attr(e).add(l.group||i.group).shadow(o.shadow,null,o.stacking&&!o.borderRadius)):u&&(l.graphic=u.destroy())})},animate:function(t){var e=this,i=this.yAxis,n=e.options,r=this.chart.inverted,o={};Ct&&(t?(o.scaleY=.001,t=ut(i.pos+i.len,ct(i.pos,i.toPixels(n.threshold))),r?o.translateX=t-i.len:o.translateY=t,e.group.attr(o)):(o[r?"translateX":"translateY"]=i.pos,e.group.animate(o,Vt(D(e.options.animation),{step:function(t,i){e.group.attr({scaleY:ct(.001,i.pos)})}})),e.animate=null))},remove:function(){var t=this,e=t.chart;e.hasRendered&&jt(e.series,function(e){e.type===t.type&&(e.isDirty=!0)}),me.prototype.remove.apply(t,arguments)}}),Bt.column=ve,Qt.bar=n(Qt.column),ye=g(ve,{type:"bar",inverted:!0}),Bt.bar=ye,Qt.scatter=n(te,{lineWidth:0,marker:{enabled:!0},tooltip:{headerFormat:'<span style="color:{point.color}">●</span> <span style="font-size: 10px;"> {series.name}</span><br/>',pointFormat:"x: <b>{point.x}</b><br/>y: <b>{point.y}</b><br/>"}}),ye=g(me,{type:"scatter",sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"],takeOrdinalPosition:!1,kdDimensions:2,drawGraph:function(){this.options.lineWidth&&me.prototype.drawGraph.call(this)}}),Bt.scatter=ye,Qt.pie=n(te,{borderColor:"#FFFFFF",borderWidth:1,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{distance:30,enabled:!0,formatter:function(){return null===this.y?void 0:this.point.name},x:0},ignoreHiddenPoint:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,states:{hover:{brightness:.1,shadow:!1}},stickyTracking:!1,tooltip:{followPointer:!0}}),te={type:"pie",isCartesian:!1,pointClass:g(ge,{init:function(){ge.prototype.init.apply(this,arguments);var t,e=this;return e.name=Kt(e.name,"Slice"),t=function(t){e.slice("select"===t.type)},Wt(e,"select",t),Wt(e,"unselect",t),e},setVisible:function(t,e){var i=this,n=i.series,r=n.chart,o=n.options.ignoreHiddenPoint,e=Kt(e,o);t!==i.visible&&(i.visible=i.options.visible=t=t===R?!i.visible:t,n.options.data[Nt(i,n.data)]=i.options,jt(["graphic","dataLabel","connector","shadowGroup"],function(e){i[e]&&i[e][t?"show":"hide"](!0)}),i.legendItem&&r.legend.colorizeItem(i,t),!t&&"hover"===i.state&&i.setState(""),o&&(n.isDirty=!0),e&&r.redraw())},slice:function(t,e,i){var n=this.series;A(i,n.chart),Kt(e,!0),this.sliced=this.options.sliced=t=h(t)?t:!this.sliced,n.options.data[Nt(this,n.data)]=this.options,t=t?this.slicedTranslation:{translateX:0,translateY:0},this.graphic.animate(t),this.shadowGroup&&this.shadowGroup.animate(t)},haloPath:function(t){var e=this.shapeArgs,i=this.series.chart;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(i.plotLeft+e.x,i.plotTop+e.y,e.r+t,e.r+t,{innerR:this.shapeArgs.r,start:e.start,end:e.end})}}),requireSorting:!1,directTouch:!0,noSharedTooltip:!0,trackerGroups:["group","dataLabelsGroup"],axisTypes:[],pointAttrToOptions:{stroke:"borderColor","stroke-width":"borderWidth",fill:"color"},animate:function(t){var e=this,i=e.points,n=e.startAngleRad;t||(jt(i,function(t){var i=t.graphic,r=t.shapeArgs;i&&(i.attr({r:t.startR||e.center[3]/2,start:n,end:n}),i.animate({r:r.r,start:r.start,end:r.end},e.options.animation))}),e.animate=null)},updateTotals:function(){var t,e,i=0,n=this.points,r=n.length,o=this.options.ignoreHiddenPoint;for(t=0;t<r;t++)e=n[t],i+=o&&!e.visible?0:e.y;for(this.total=i,t=0;t<r;t++)e=n[t],e.percentage=i>0&&(e.visible||!o)?e.y/i*100:0,e.total=i},generatePoints:function(){me.prototype.generatePoints.call(this),this.updateTotals()},translate:function(t){this.generatePoints();var e,i,n,r,o,s=0,a=this.options,l=a.slicedOffset,h=l+a.borderWidth,c=a.startAngle||0,u=this.startAngleRad=gt/180*(c-90),c=(this.endAngleRad=gt/180*(Kt(a.endAngle,c+360)-90))-u,p=this.points,d=a.dataLabels.distance,a=a.ignoreHiddenPoint,f=p.length;for(t||(this.center=t=this.getCenter()),this.getX=function(e,i){return n=st.asin(ut((e-t[1])/(t[2]/2+d),1)),t[0]+(i?-1:1)*dt(n)*(t[2]/2+d)},r=0;r<f;r++)o=p[r],e=u+s*c,a&&!o.visible||(s+=o.percentage/100),i=u+s*c,o.shapeType="arc",o.shapeArgs={x:t[0],y:t[1],r:t[2]/2,innerR:t[3]/2,start:at(1e3*e)/1e3,end:at(1e3*i)/1e3},n=(i+e)/2,n>1.5*gt?n-=2*gt:n<-gt/2&&(n+=2*gt),o.slicedTranslation={translateX:at(dt(n)*l),translateY:at(ft(n)*l)},e=dt(n)*t[2]/2,i=ft(n)*t[2]/2,o.tooltipPos=[t[0]+.7*e,t[1]+.7*i],o.half=n<-gt/2||n>gt/2?1:0,o.angle=n,h=ut(h,d/2),o.labelPos=[t[0]+e+dt(n)*d,t[1]+i+ft(n)*d,t[0]+e+dt(n)*h,t[1]+i+ft(n)*h,t[0]+e,t[1]+i,d<0?"center":o.half?"right":"left",n]},drawGraph:null,drawPoints:function(){var t,e,i,n,r,o,s=this,a=s.chart.renderer,l=s.options.shadow;l&&!s.shadowGroup&&(s.shadowGroup=a.g("shadow").add(s.group)),jt(s.points,function(h){null!==h.y&&(e=h.graphic,r=h.shapeArgs,i=h.shadowGroup,n=h.pointAttr[h.selected?"select":""],n.stroke||(n.stroke=n.fill),l&&!i&&(i=h.shadowGroup=a.g("shadow").add(s.shadowGroup)),t=h.sliced?h.slicedTranslation:{translateX:0,translateY:0},i&&i.attr(t),e?e.setRadialReference(s.center).attr(n).animate(Vt(r,t)):(o={"stroke-linejoin":"round"},h.visible||(o.visibility="hidden"),h.graphic=e=a[h.shapeType](r).setRadialReference(s.center).attr(n).attr(o).attr(t).add(s.group).shadow(l,i)))})},searchPoint:Et,sortByAngle:function(t,e){t.sort(function(t,i){return void 0!==t.angle&&(i.angle-t.angle)*e})},drawLegendSymbol:ie.drawRectangle,getCenter:ne.getCenter,getSymbol:Et},te=g(me,te),Bt.pie=te,me.prototype.drawDataLabels=function(){var t,e,i,r,o=this,s=o.options,a=s.cursor,l=s.dataLabels,c=o.points,u=o.hasRendered||0,p=Kt(l.defer,!0),d=o.chart.renderer;(l.enabled||o._hasPointLabels)&&(o.dlProcessOptions&&o.dlProcessOptions(l),r=o.plotGroup("dataLabelsGroup","data-labels",p&&!u?"hidden":"visible",l.zIndex||6),p&&(r.attr({opacity:+u}),u||Wt(o,"afterAnimate",function(){o.visible&&r.show(),r[s.animation?"animate":"attr"]({opacity:1},{duration:200})})),e=l,jt(c,function(c){var u,p,f,g,m=c.dataLabel,v=c.connector,b=!0,x={};if(t=c.dlOptions||c.options&&c.options.dataLabels,u=Kt(t&&t.enabled,e.enabled)&&null!==c.y,m&&!u)c.dataLabel=m.destroy();else if(u){if(l=n(e,t),g=l.style,u=l.rotation,p=c.getLabelConfig(),i=l.format?y(l.format,p):l.formatter.call(p,l),g.color=Kt(l.color,g.color,o.color,"black"),m)h(i)?(m.attr({text:i}),b=!1):(c.dataLabel=m=m.destroy(),v&&(c.connector=v.destroy()));else if(h(i)){m={fill:l.backgroundColor,stroke:l.borderColor,"stroke-width":l.borderWidth,r:l.borderRadius||0,rotation:u,padding:l.padding,zIndex:1},"contrast"===g.color&&(x.color=l.inside||l.distance<0||s.stacking?d.getContrast(c.color||o.color):"#000000"),a&&(x.cursor=a);for(f in m)m[f]===R&&delete m[f];m=c.dataLabel=d[u?"text":"label"](i,0,-9999,l.shape,null,null,l.useHTML).attr(m).css(Vt(g,x)).add(r).shadow(l.shadow)}m&&o.alignDataLabel(c,m,l,null,b)}}))},me.prototype.alignDataLabel=function(t,e,i,n,r){var o=this.chart,s=o.inverted,a=Kt(t.plotX,-9999),l=Kt(t.plotY,-9999),h=e.getBBox(),c=o.renderer.fontMetrics(i.style.fontSize).b,u=i.rotation,p=i.align,d=this.visible&&(t.series.forceDL||o.isInsidePlot(a,at(l),s)||n&&o.isInsidePlot(a,s?n.x+1:n.y+n.height-1,s)),f="justify"===Kt(i.overflow,"justify");d&&(n=Vt({x:s?o.plotWidth-l:a,y:at(s?o.plotHeight-a:l),width:0,height:0},n),Vt(i,{width:h.width,height:h.height}),u?(f=!1,s=o.renderer.rotCorr(c,u),s={x:n.x+i.x+n.width/2+s.x,y:n.y+i.y+{top:0,middle:.5,bottom:1}[i.verticalAlign]*n.height},e[r?"attr":"animate"](s).attr({align:p}),a=(u+720)%360,a=a>180&&a<360,"left"===p?s.y-=a?h.height:0:"center"===p?(s.x-=h.width/2,s.y-=h.height/2):"right"===p&&(s.x-=h.width,s.y-=a?0:h.height)):(e.align(i,null,n),s=e.alignAttr),f?this.justifyDataLabel(e,i,s,h,n,r):Kt(i.crop,!0)&&(d=o.isInsidePlot(s.x,s.y)&&o.isInsidePlot(s.x+h.width,s.y+h.height)),i.shape&&!u&&e.attr({anchorX:t.plotX,anchorY:t.plotY})),d||(Gt(e),e.attr({y:-9999}),e.placed=!1)},me.prototype.justifyDataLabel=function(t,e,i,n,r,o){var s,a,l=this.chart,h=e.align,c=e.verticalAlign,u=t.box?0:t.padding||0;s=i.x+u,s<0&&("right"===h?e.align="left":e.x=-s,a=!0),s=i.x+n.width-u,s>l.plotWidth&&("left"===h?e.align="right":e.x=l.plotWidth-s,a=!0),s=i.y+u,s<0&&("bottom"===c?e.verticalAlign="top":e.y=-s,a=!0),s=i.y+n.height-u,s>l.plotHeight&&("top"===c?e.verticalAlign="bottom":e.y=l.plotHeight-s,a=!0),a&&(t.placed=!o,t.align(e,null,r))},Bt.pie&&(Bt.pie.prototype.drawDataLabels=function(){var t,e,i,n,r,o,s,a,l,h,c,u=this,p=u.data,d=u.chart,f=u.options.dataLabels,g=Kt(f.connectorPadding,10),m=Kt(f.connectorWidth,1),v=d.plotWidth,y=d.plotHeight,b=Kt(f.softConnector,!0),x=f.distance,w=u.center,S=w[2]/2,k=w[1],C=x>0,_=[[],[]],A=[0,0,0,0],D=function(t,e){return e.y-t.y};if(u.visible&&(f.enabled||u._hasPointLabels)){for(me.prototype.drawDataLabels.apply(u),jt(p,function(t){t.dataLabel&&t.visible&&(_[t.half].push(t),t.dataLabel._pos=null)}),h=2;h--;){var L,E=[],P=[],M=_[h],I=M.length;if(I){for(u.sortByAngle(M,h-.5),c=p=0;!p&&M[c];)p=M[c]&&M[c].dataLabel&&(M[c].dataLabel.getBBox().height||21),c++;if(x>0){for(r=ut(k+S+x,d.plotHeight),c=ct(0,k-S-x);c<=r;c+=p)E.push(c);if(r=E.length,I>r){for(t=[].concat(M),t.sort(D),c=I;c--;)t[c].rank=c;for(c=I;c--;)M[c].rank>=r&&M.splice(c,1);I=M.length}for(c=0;c<I;c++){t=M[c],o=t.labelPos,t=9999;var R,O;for(O=0;O<r;O++)R=pt(E[O]-o[1]),R<t&&(t=R,L=O);if(L<c&&null!==E[c])L=c;else for(r<I-c+L&&null!==E[c]&&(L=r-I+c);null===E[L];)L++;P.push({i:L,y:E[L]}),E[L]=null}P.sort(D)}for(c=0;c<I;c++)t=M[c],o=t.labelPos,n=t.dataLabel,l=t.visible===!1?"hidden":"inherit",t=o[1],x>0?(r=P.pop(),L=r.i,a=r.y,(t>a&&null!==E[L+1]||t<a&&null!==E[L-1])&&(a=ut(ct(0,t),d.plotHeight))):a=t,s=f.justify?w[0]+(h?-1:1)*(S+x):u.getX(a===k-S-x||a===k+S+x?t:a,h),n._attr={visibility:l,align:o[6]},n._pos={x:s+f.x+({left:g,right:-g}[o[6]]||0),y:a+f.y-10},n.connX=s,n.connY=a,null===this.options.size&&(r=n.width,s-r<g?A[3]=ct(at(r-s+g),A[3]):s+r>v-g&&(A[1]=ct(at(s+r-v+g),A[1])),a-p/2<0?A[0]=ct(at(-a+p/2),A[0]):a+p/2>y&&(A[2]=ct(at(a+p/2-y),A[2])))}}(0===T(A)||this.verifyDataLabelOverflow(A))&&(this.placeDataLabels(),C&&m&&jt(this.points,function(t){e=t.connector,o=t.labelPos,(n=t.dataLabel)&&n._pos&&t.visible?(l=n._attr.visibility,s=n.connX,a=n.connY,i=b?["M",s+("left"===o[6]?5:-5),a,"C",s,a,2*o[2]-o[4],2*o[3]-o[5],o[2],o[3],"L",o[4],o[5]]:["M",s+("left"===o[6]?5:-5),a,"L",o[2],o[3],"L",o[4],o[5]],e?(e.animate({d:i}),e.attr("visibility",l)):t.connector=e=u.chart.renderer.path(i).attr({"stroke-width":m,stroke:f.connectorColor||t.color||"#606060",visibility:l}).add(u.dataLabelsGroup)):e&&(t.connector=e.destroy())}))}},Bt.pie.prototype.placeDataLabels=function(){jt(this.points,function(t){var e=t.dataLabel;e&&t.visible&&((t=e._pos)?(e.attr(e._attr),e[e.moved?"animate":"attr"](t),e.moved=!0):e&&e.attr({y:-9999}))})},Bt.pie.prototype.alignDataLabel=Et,Bt.pie.prototype.verifyDataLabelOverflow=function(t){var e,i=this.center,n=this.options,r=n.center,o=n.minSize||80,s=o;return null!==r[0]?s=ct(i[2]-ct(t[1],t[3]),o):(s=ct(i[2]-t[1]-t[3],o),i[0]+=(t[3]-t[1])/2),null!==r[1]?s=ct(ut(s,i[2]-ct(t[0],t[2])),o):(s=ct(ut(s,i[2]-t[0]-t[2]),o),i[1]+=(t[0]-t[2])/2),s<i[2]?(i[2]=s,i[3]=Math.min(/%$/.test(n.innerSize||0)?s*parseFloat(n.innerSize||0)/100:parseFloat(n.innerSize||0),s),this.translate(i),this.drawDataLabels&&this.drawDataLabels()):e=!0,e}),Bt.column&&(Bt.column.prototype.alignDataLabel=function(t,e,i,r,o){var s=this.chart.inverted,a=t.series,l=t.dlBox||t.shapeArgs,h=Kt(t.below,t.plotY>Kt(this.translatedThreshold,a.yAxis.len)),c=Kt(i.inside,!!this.options.stacking);l&&(r=n(l),r.y<0&&(r.height+=r.y,r.y=0),l=r.y+r.height-a.yAxis.len,l>0&&(r.height-=l),s&&(r={x:a.yAxis.len-r.y-r.height,y:a.xAxis.len-r.x-r.width,width:r.height,height:r.width}),c||(s?(r.x+=h?0:r.width,r.width=0):(r.y+=h?r.height:0,r.height=0))),i.align=Kt(i.align,!s||c?"center":h?"right":"left"),i.verticalAlign=Kt(i.verticalAlign,s||c?"middle":h?"top":"bottom"),me.prototype.alignDataLabel.call(this,t,e,i,r,o)}),function(t){var e=t.Chart,i=t.each,n=t.pick,r=t.addEvent;e.prototype.callbacks.push(function(t){function e(){var e=[];i(t.series,function(t){var r=t.options.dataLabels,o=t.dataLabelCollections||["dataLabel"];(r.enabled||t._hasPointLabels)&&!r.allowOverlap&&t.visible&&i(o,function(r){i(t.points,function(t){t[r]&&(t[r].labelrank=n(t.labelrank,t.shapeArgs&&t.shapeArgs.height),e.push(t[r]))})})}),t.hideOverlappingLabels(e)}e(),r(t,"redraw",e)}),e.prototype.hideOverlappingLabels=function(t){var e,n,r,o,s,a,l,h,c,u=t.length;for(n=0;n<u;n++)(e=t[n])&&(e.oldOpacity=e.opacity,e.newOpacity=1);for(t.sort(function(t,e){return(e.labelrank||0)-(t.labelrank||0)}),n=0;n<u;n++)for(r=t[n],e=n+1;e<u;++e)o=t[e],r&&o&&r.placed&&o.placed&&0!==r.newOpacity&&0!==o.newOpacity&&(s=r.alignAttr,a=o.alignAttr,l=r.parentGroup,h=o.parentGroup,c=2*(r.box?0:r.padding),s=!(a.x+h.translateX>s.x+l.translateX+(r.width-c)||a.x+h.translateX+(o.width-c)<s.x+l.translateX||a.y+h.translateY>s.y+l.translateY+(r.height-c)||a.y+h.translateY+(o.height-c)<s.y+l.translateY))&&((r.labelrank<o.labelrank?r:o).newOpacity=0);i(t,function(t){var e,i;t&&(i=t.newOpacity,t.oldOpacity!==i&&t.placed&&(i?t.show(!0):e=function(){t.hide()},t.alignAttr.opacity=i,t[t.isOld?"animate":"attr"](t.alignAttr,null,e)),t.isOld=!0)})}}(rt),te=rt.TrackerMixin={drawTrackerPoint:function(){var t=this,e=t.chart,i=e.pointer,n=t.options.cursor,r=n&&{cursor:n},o=function(t){for(var i,n=t.target;n&&!i;)i=n.point,n=n.parentNode;i!==R&&i!==e.hoverPoint&&i.onMouseOver(t)};jt(t.points,function(t){t.graphic&&(t.graphic.element.point=t),t.dataLabel&&(t.dataLabel.element.point=t)}),t._hasTracking||(jt(t.trackerGroups,function(e){t[e]&&(t[e].addClass("highcharts-tracker").on("mouseover",o).on("mouseout",function(t){i.onTrackerMouseOut(t)}).css(r),B)&&t[e].on("touchstart",o)}),t._hasTracking=!0)},drawTrackerGraph:function(){var t=this,e=t.options,i=e.trackByArea,n=[].concat(i?t.areaPath:t.graphPath),r=n.length,o=t.chart,s=o.pointer,a=o.renderer,l=o.options.tooltip.snap,h=t.tracker,c=e.cursor,u=c&&{cursor:c},p=function(){o.hoverSeries!==t&&t.onMouseOver()},d="rgba(192,192,192,"+(Ct?1e-4:.002)+")";if(r&&!i)for(c=r+1;c--;)"M"===n[c]&&n.splice(c+1,0,n[c+1]-l,n[c+2],"L"),(c&&"M"===n[c]||c===r)&&n.splice(c,0,"L",n[c-2]+l,n[c-1]);h?h.attr({d:n}):(t.tracker=a.path(n).attr({"stroke-linejoin":"round",visibility:t.visible?"visible":"hidden",stroke:d,fill:i?d:"none","stroke-width":e.lineWidth+(i?0:2*l),zIndex:2}).add(t.group),jt([t.tracker,t.markerGroup],function(t){t.addClass("highcharts-tracker").on("mouseover",p).on("mouseout",function(t){s.onTrackerMouseOut(t)}).css(u),B&&t.on("touchstart",p)}))}},Bt.column&&(ve.prototype.drawTracker=te.drawTrackerPoint),Bt.pie&&(Bt.pie.prototype.drawTracker=te.drawTrackerPoint),Bt.scatter&&(ye.prototype.drawTracker=te.drawTrackerPoint),Vt(de.prototype,{setItemEvents:function(t,e,i,n,r){var o=this;(i?e:t.legendGroup).on("mouseover",function(){t.setState("hover"),e.css(o.options.itemHoverStyle)}).on("mouseout",function(){e.css(t.visible?n:r),t.setState()}).on("click",function(e){var i=function(){t.setVisible&&t.setVisible()},e={browserEvent:e};t.firePointEvent?t.firePointEvent("legendItemClick",e,i):Xt(t,"legendItemClick",e,i)})},createCheckboxForItem:function(t){t.checkbox=f("input",{type:"checkbox",checked:t.selected,defaultChecked:t.selected},this.options.itemCheckboxStyle,this.chart.container),Wt(t.checkbox,"click",function(e){Xt(t.series||t,"checkboxClick",{checked:e.target.checked,item:t},function(){t.select()})})}}),N.legend.itemStyle.cursor="pointer",Vt(fe.prototype,{showResetZoom:function(){var t=this,e=N.lang,i=t.options.chart.resetZoomButton,n=i.theme,r=n.states,o="chart"===i.relativeTo?null:"plotBox";this.resetZoomButton=t.renderer.button(e.resetZoom,null,null,function(){t.zoomOut()},n,r&&r.hover).attr({align:i.position.align,title:e.resetZoomTitle}).add().align(i.position,!1,o)},zoomOut:function(){var t=this;Xt(t,"selection",{resetSelection:!0},function(){t.zoom()})},zoom:function(t){var e,i,n=this.pointer,r=!1;!t||t.resetSelection?jt(this.axes,function(t){e=t.zoom()}):jt(t.xAxis.concat(t.yAxis),function(t){var i=t.axis,o=i.isXAxis;(n[o?"zoomX":"zoomY"]||n[o?"pinchX":"pinchY"])&&(e=i.zoom(t.min,t.max),i.displayBtn&&(r=!0))}),i=this.resetZoomButton,r&&!i?this.showResetZoom():!r&&s(i)&&(this.resetZoomButton=i.destroy()),e&&this.redraw(Kt(this.options.chart.animation,t&&t.animation,this.pointCount<100))},pan:function(t,e){var i,n=this,r=n.hoverPoints;r&&jt(r,function(t){t.setState()}),jt("xy"===e?[1,0]:[1],function(e){var e=n[e?"xAxis":"yAxis"][0],r=e.horiz,o=t[r?"chartX":"chartY"],r=r?"mouseDownX":"mouseDownY",s=n[r],a=(e.pointRange||0)/2,l=e.getExtremes(),h=e.toValue(s-o,!0)+a,a=e.toValue(s+e.len-o,!0)-a,s=s>o;e.series.length&&(s||h>ut(l.dataMin,l.min))&&(!s||a<ct(l.dataMax,l.max))&&(e.setExtremes(h,a,!1,!1,{trigger:"pan"}),i=!0),n[r]=o}),i&&n.redraw(!1),d(n.container,{cursor:"move"})}}),Vt(ge.prototype,{select:function(t,e){var i=this,n=i.series,r=n.chart,t=Kt(t,!i.selected);i.firePointEvent(t?"select":"unselect",{accumulate:e},function(){i.selected=i.options.selected=t,n.options.data[Nt(i,n.data)]=i.options,i.setState(t&&"select"),e||jt(r.getSelectedPoints(),function(t){t.selected&&t!==i&&(t.selected=t.options.selected=!1,n.options.data[Nt(t,n.data)]=t.options,t.setState(""),t.firePointEvent("unselect"))})})},onMouseOver:function(t,e){var i=this.series,n=i.chart,r=n.tooltip,o=n.hoverPoint;n.hoverSeries!==i&&i.onMouseOver(),o&&o!==this&&o.onMouseOut(),this.series&&(this.firePointEvent("mouseOver"),r&&(!r.shared||i.noSharedTooltip)&&r.refresh(this,t),this.setState("hover"),!e)&&(n.hoverPoint=this)},onMouseOut:function(){var t=this.series.chart,e=t.hoverPoints;this.firePointEvent("mouseOut"),e&&Nt(this,e)!==-1||(this.setState(),t.hoverPoint=null)},importEvents:function(){if(!this.hasImportedEvents){var t,e=n(this.series.options.point,this.options).events;this.events=e;for(t in e)Wt(this,t,e[t]);this.hasImportedEvents=!0}},setState:function(t,e){var i,r=lt(this.plotX),o=this.plotY,s=this.series,a=s.options.states,l=Qt[s.type].marker&&s.options.marker,h=l&&!l.enabled,c=l&&l.states[t],u=c&&c.enabled===!1,p=s.stateMarkerGraphic,d=this.marker||{},f=s.chart,g=s.halo,t=t||"";i=this.pointAttr[t]||s.pointAttr[t],t===this.state&&!e||this.selected&&"select"!==t||a[t]&&a[t].enabled===!1||t&&(u||h&&c.enabled===!1)||t&&d.states&&d.states[t]&&d.states[t].enabled===!1||(this.graphic?(l=l&&this.graphic.symbolName&&i.r,this.graphic.attr(n(i,l?{x:r-l,y:o-l,width:2*l,height:2*l}:{})),p&&p.hide()):(t&&c&&(l=c.radius,d=d.symbol||s.symbol,p&&p.currentSymbol!==d&&(p=p.destroy()),p?p[e?"animate":"attr"]({x:r-l,y:o-l}):d&&(s.stateMarkerGraphic=p=f.renderer.symbol(d,r-l,o-l,2*l,2*l).attr(i).add(s.markerGroup),p.currentSymbol=d)),p&&(p[t&&f.isInsidePlot(r,o,f.inverted)?"show":"hide"](),p.element.point=this)),(r=a[t]&&a[t].halo)&&r.size?(g||(s.halo=g=f.renderer.path().add(f.seriesGroup)),g.attr(Vt({fill:this.color||s.color,"fill-opacity":r.opacity,zIndex:-1},r.attributes))[e?"animate":"attr"]({d:this.haloPath(r.size)})):g&&g.attr({d:[]}),this.state=t)},haloPath:function(t){var e=this.series,i=e.chart,n=e.getPlotBox(),r=i.inverted,o=Math.floor(this.plotX);return i.renderer.symbols.circle(n.translateX+(r?e.yAxis.len-this.plotY:o)-t,n.translateY+(r?e.xAxis.len-o:this.plotY)-t,2*t,2*t)}}),Vt(me.prototype,{onMouseOver:function(){var t=this.chart,e=t.hoverSeries;e&&e!==this&&e.onMouseOut(),this.options.events.mouseOver&&Xt(this,"mouseOver"),this.setState("hover"),t.hoverSeries=this},onMouseOut:function(){var t=this.options,e=this.chart,i=e.tooltip,n=e.hoverPoint;e.hoverSeries=null,n&&n.onMouseOut(),this&&t.events.mouseOut&&Xt(this,"mouseOut"),i&&!t.stickyTracking&&(!i.shared||this.noSharedTooltip)&&i.hide(),this.setState()},setState:function(t){var e=this.options,i=this.graph,n=e.states,r=e.lineWidth,e=0,t=t||"";if(this.state!==t&&(this.state=t,!(n[t]&&n[t].enabled===!1)&&(t&&(r=n[t].lineWidth||r+(n[t].lineWidthPlus||0)),i&&!i.dashstyle)))for(t={"stroke-width":r},i.attr(t);this["zoneGraph"+e];)this["zoneGraph"+e].attr(t),e+=1},setVisible:function(t,e){var i,n=this,r=n.chart,o=n.legendItem,s=r.options.chart.ignoreHiddenSeries,a=n.visible;i=(n.visible=t=n.userOptions.visible=t===R?!a:t)?"show":"hide",jt(["group","dataLabelsGroup","markerGroup","tracker"],function(t){n[t]&&n[t][i]()}),r.hoverSeries!==n&&(r.hoverPoint&&r.hoverPoint.series)!==n||n.onMouseOut(),o&&r.legend.colorizeItem(n,t),n.isDirty=!0,n.options.stacking&&jt(r.series,function(t){t.options.stacking&&t.visible&&(t.isDirty=!0)}),jt(n.linkedSeries,function(e){e.setVisible(t,!1)}),s&&(r.isDirtyBox=!0),e!==!1&&r.redraw(),Xt(n,i)},show:function(){this.setVisible(!0)},hide:function(){this.setVisible(!1)},select:function(t){this.selected=t=t===R?!this.selected:t,this.checkbox&&(this.checkbox.checked=t),Xt(this,t?"select":"unselect")},drawTracker:te.drawTrackerGraph}),Vt(rt,{Color:E,Point:ge,Tick:M,Renderer:O,SVGElement:P,SVGRenderer:ee,arrayMin:S,arrayMax:T,charts:Pt,correctFloat:_,dateFormat:j,error:e,format:y,pathAnim:void 0,getOptions:function(){return N},hasBidiBug:_t,isTouchDevice:Tt,setOptions:function(t){return N=n(!0,N,t),L(),N},addEvent:Wt,removeEvent:Ut,createElement:f,discardElement:C,css:d,each:jt,map:zt,merge:n,splat:u,stableSort:w,extendClass:g,pInt:r,svg:Ct,canvas:At,vml:!Ct&&!At,product:"Highcharts",version:"4.2.5"}),rt}),function(t){"object"==typeof module&&module.exports?module.exports=t:t(Highcharts)}(function(t){function e(t,e,i){this.init(t,e,i)}var i=t.arrayMin,n=t.arrayMax,r=t.each,o=t.extend,s=t.isNumber,a=t.merge,l=t.map,h=t.pick,c=t.pInt,u=t.correctFloat,p=t.getOptions().plotOptions,d=t.seriesTypes,f=t.extendClass,g=t.splat,m=t.wrap,v=t.Axis,y=t.Tick,b=t.Point,x=t.Pointer,w=t.CenteredSeriesMixin,S=t.TrackerMixin,T=t.Series,k=Math,C=k.round,_=k.floor,A=k.max,D=t.Color,L=function(){};o(e.prototype,{init:function(t,e,i){var n=this,o=n.defaultOptions;n.chart=e,n.options=t=a(o,e.angular?{background:{}}:void 0,t),(t=t.background)&&r([].concat(g(t)).reverse(),function(t){var e=t.backgroundColor,r=i.userOptions,t=a(n.defaultBackgroundOptions,t);e&&(t.backgroundColor=e),t.color=t.backgroundColor,i.options.plotBands.unshift(t),r.plotBands=r.plotBands||[],r.plotBands!==i.options.plotBands&&r.plotBands.unshift(t)})},defaultOptions:{center:["50%","50%"],size:"85%",startAngle:0},defaultBackgroundOptions:{shape:"circle",borderWidth:1,borderColor:"silver",backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#FFF"],[1,"#DDD"]]},
from:-Number.MAX_VALUE,innerRadius:0,to:Number.MAX_VALUE,outerRadius:"105%"}});var E=v.prototype,y=y.prototype,P={getOffset:L,redraw:function(){this.isDirty=!1},render:function(){this.isDirty=!1},setScale:L,setCategories:L,setTitle:L},M={isRadial:!0,defaultRadialGaugeOptions:{labels:{align:"center",x:0,y:null},minorGridLineWidth:0,minorTickInterval:"auto",minorTickLength:10,minorTickPosition:"inside",minorTickWidth:1,tickLength:10,tickPosition:"inside",tickWidth:2,title:{rotation:0},zIndex:2},defaultRadialXOptions:{gridLineWidth:1,labels:{align:null,distance:15,x:0,y:null},maxPadding:0,minPadding:0,showLastLabel:!1,tickLength:0},defaultRadialYOptions:{gridLineInterpolation:"circle",labels:{align:"right",x:-3,y:-2},showLastLabel:!1,title:{x:4,text:null,rotation:90}},setOptions:function(t){t=this.options=a(this.defaultOptions,this.defaultRadialOptions,t),t.plotBands||(t.plotBands=[])},getOffset:function(){E.getOffset.call(this),this.chart.axisOffset[this.side]=0,this.center=this.pane.center=w.getCenter.call(this.pane)},getLinePath:function(t,e){var i=this.center,e=h(e,i[2]/2-this.offset);return this.chart.renderer.symbols.arc(this.left+i[0],this.top+i[1],e,e,{start:this.startAngleRad,end:this.endAngleRad,open:!0,innerR:0})},setAxisTranslation:function(){E.setAxisTranslation.call(this),this.center&&(this.transA=this.isCircular?(this.endAngleRad-this.startAngleRad)/(this.max-this.min||1):this.center[2]/2/(this.max-this.min||1),this.minPixelPadding=this.isXAxis?this.transA*this.minPointOffset:0)},beforeSetTickPositions:function(){this.autoConnect&&(this.max+=this.categories&&1||this.pointRange||this.closestPointRange||0)},setAxisSize:function(){E.setAxisSize.call(this),this.isRadial&&(this.center=this.pane.center=t.CenteredSeriesMixin.getCenter.call(this.pane),this.isCircular&&(this.sector=this.endAngleRad-this.startAngleRad),this.len=this.width=this.height=this.center[2]*h(this.sector,1)/2)},getPosition:function(t,e){return this.postTranslate(this.isCircular?this.translate(t):0,h(this.isCircular?e:this.translate(t),this.center[2]/2)-this.offset)},postTranslate:function(t,e){var i=this.chart,n=this.center,t=this.startAngleRad+t;return{x:i.plotLeft+n[0]+Math.cos(t)*e,y:i.plotTop+n[1]+Math.sin(t)*e}},getPlotBandPath:function(t,e,i){var n,r=this.center,o=this.startAngleRad,s=r[2]/2,a=[h(i.outerRadius,"100%"),i.innerRadius,h(i.thickness,10)],u=/%$/,p=this.isCircular;return"polygon"===this.options.gridLineInterpolation?r=this.getPlotLinePath(t).concat(this.getPlotLinePath(e,!0)):(t=Math.max(t,this.min),e=Math.min(e,this.max),p||(a[0]=this.translate(t),a[1]=this.translate(e)),a=l(a,function(t){return u.test(t)&&(t=c(t,10)*s/100),t}),"circle"!==i.shape&&p?(t=o+this.translate(t),e=o+this.translate(e)):(t=-Math.PI/2,e=1.5*Math.PI,n=!0),r=this.chart.renderer.symbols.arc(this.left+r[0],this.top+r[1],a[0],a[0],{start:Math.min(t,e),end:Math.max(t,e),innerR:h(a[1],a[0]-a[2]),open:n})),r},getPlotLinePath:function(t,e){var i,n,o,s=this,a=s.center,l=s.chart,h=s.getPosition(t);return s.isCircular?o=["M",a[0]+l.plotLeft,a[1]+l.plotTop,"L",h.x,h.y]:"circle"===s.options.gridLineInterpolation?(t=s.translate(t))&&(o=s.getLinePath(0,t)):(r(l.xAxis,function(t){t.pane===s.pane&&(i=t)}),o=[],t=s.translate(t),a=i.tickPositions,i.autoConnect&&(a=a.concat([a[0]])),e&&(a=[].concat(a).reverse()),r(a,function(e,r){n=i.getPosition(e,t),o.push(r?"L":"M",n.x,n.y)})),o},getTitlePosition:function(){var t=this.center,e=this.chart,i=this.options.title;return{x:e.plotLeft+t[0]+(i.x||0),y:e.plotTop+t[1]-{high:.5,middle:.25,low:0}[i.align]*t[2]+(i.y||0)}}};m(E,"init",function(t,i,n){var r,s,l,c=i.angular,u=i.polar,p=n.isX,d=c&&p;l=i.options;var f=n.pane||0;c?(o(this,d?P:M),(s=!p)&&(this.defaultRadialOptions=this.defaultRadialGaugeOptions)):u&&(o(this,M),this.defaultRadialOptions=(s=p)?this.defaultRadialXOptions:a(this.defaultYAxisOptions,this.defaultRadialYOptions)),(c||u)&&(i.inverted=!1,l.chart.zoomType=null),t.call(this,i,n),d||!c&&!u||(t=this.options,i.panes||(i.panes=[]),this.pane=(r=i.panes[f]=i.panes[f]||new e(g(l.pane)[f],i,this),i=r),l=i.options,this.startAngleRad=i=(l.startAngle-90)*Math.PI/180,this.endAngleRad=l=(h(l.endAngle,l.startAngle+360)-90)*Math.PI/180,this.offset=t.offset||0,(this.isCircular=s)&&void 0===n.max&&l-i===2*Math.PI&&(this.autoConnect=!0))}),m(E,"autoLabelAlign",function(t){if(!this.isRadial)return t.apply(this,[].slice.call(arguments,1))}),m(y,"getPosition",function(t,e,i,n,r){var o=this.axis;return o.getPosition?o.getPosition(i):t.call(this,e,i,n,r)}),m(y,"getLabelPosition",function(t,e,i,n,r,o,s,a,l){var c=this.axis,u=o.y,p=20,d=o.align,f=(c.translate(this.pos)+c.startAngleRad+Math.PI/2)/Math.PI*180%360;return c.isRadial?(t=c.getPosition(this.pos,c.center[2]/2+h(o.distance,-25)),"auto"===o.rotation?n.attr({rotation:f}):null===u&&(u=c.chart.renderer.fontMetrics(n.styles.fontSize).b-n.getBBox().height/2),null===d&&(c.isCircular?(this.label.getBBox().width>c.len*c.tickInterval/(c.max-c.min)&&(p=0),d=f>p&&f<180-p?"left":f>180+p&&f<360-p?"right":"center"):d="center",n.attr({align:d})),t.x+=o.x,t.y+=u):t=t.call(this,e,i,n,r,o,s,a,l),t}),m(y,"getMarkPath",function(t,e,i,n,r,o,s){var a=this.axis;return a.isRadial?(t=a.getPosition(this.pos,a.center[2]/2+n),e=["M",e,i,"L",t.x,t.y]):e=t.call(this,e,i,n,r,o,s),e}),p.arearange=a(p.area,{lineWidth:1,marker:null,threshold:null,tooltip:{pointFormat:'<span style="color:{series.color}">●</span> {series.name}: <b>{point.low}</b> - <b>{point.high}</b><br/>'},trackByArea:!0,dataLabels:{align:null,verticalAlign:null,xLow:0,xHigh:0,yLow:0,yHigh:0},states:{hover:{halo:!1}}}),d.arearange=f(d.area,{type:"arearange",pointArrayMap:["low","high"],dataLabelCollections:["dataLabel","dataLabelUpper"],toYData:function(t){return[t.low,t.high]},pointValKey:"low",deferTranslatePolar:!0,highToXY:function(t){var e=this.chart,i=this.xAxis.postTranslate(t.rectPlotX,this.yAxis.len-t.plotHigh);t.plotHighX=i.x-e.plotLeft,t.plotHigh=i.y-e.plotTop},translate:function(){var t=this,e=t.yAxis;d.area.prototype.translate.apply(t),r(t.points,function(t){var i=t.low,n=t.high,r=t.plotY;null===n||null===i?t.isNull=!0:(t.plotLow=r,t.plotHigh=e.translate(n,0,1,0,1))}),this.chart.polar&&r(this.points,function(e){t.highToXY(e)})},getGraphPath:function(){var t,e,i,n=this.points,r=[],o=[],s=n.length,a=T.prototype.getGraphPath;i=this.options;for(var l=i.step,s=n.length;s--;)t=n[s],!t.isNull&&(!n[s+1]||n[s+1].isNull)&&o.push({plotX:t.plotX,plotY:t.plotLow}),e={plotX:t.plotX,plotY:t.plotHigh,isNull:t.isNull},o.push(e),r.push(e),!t.isNull&&(!n[s-1]||n[s-1].isNull)&&o.push({plotX:t.plotX,plotY:t.plotLow});return n=a.call(this,n),l&&(l===!0&&(l="left"),i.step={left:"right",center:"center",right:"left"}[l]),r=a.call(this,r),o=a.call(this,o),i.step=l,i=[].concat(n,r),!this.chart.polar&&"M"===o[0]&&(o[0]="L"),this.areaPath=this.areaPath.concat(n,o),i},drawDataLabels:function(){var t,e,i,n=this.data,r=n.length,o=[],s=T.prototype,a=this.options.dataLabels,l=a.align,h=a.verticalAlign,c=a.inside,u=this.chart.inverted;if(a.enabled||this._hasPointLabels){for(t=r;t--;)(e=n[t])&&(i=c?e.plotHigh<e.plotLow:e.plotHigh>e.plotLow,e.y=e.high,e._plotY=e.plotY,e.plotY=e.plotHigh,o[t]=e.dataLabel,e.dataLabel=e.dataLabelUpper,e.below=i,u?l||(a.align=i?"right":"left"):h||(a.verticalAlign=i?"top":"bottom"),a.x=a.xHigh,a.y=a.yHigh);for(s.drawDataLabels&&s.drawDataLabels.apply(this,arguments),t=r;t--;)(e=n[t])&&(i=c?e.plotHigh<e.plotLow:e.plotHigh>e.plotLow,e.dataLabelUpper=e.dataLabel,e.dataLabel=o[t],e.y=e.low,e.plotY=e._plotY,e.below=!i,u?l||(a.align=i?"left":"right"):h||(a.verticalAlign=i?"bottom":"top"),a.x=a.xLow,a.y=a.yLow);s.drawDataLabels&&s.drawDataLabels.apply(this,arguments)}a.align=l,a.verticalAlign=h},alignDataLabel:function(){d.column.prototype.alignDataLabel.apply(this,arguments)},setStackedPoints:L,getSymbol:L,drawPoints:L}),p.areasplinerange=a(p.arearange),d.areasplinerange=f(d.arearange,{type:"areasplinerange",getPointSpline:d.spline.prototype.getPointSpline}),function(){var t=d.column.prototype;p.columnrange=a(p.column,p.arearange,{lineWidth:1,pointRange:null}),d.columnrange=f(d.arearange,{type:"columnrange",translate:function(){var e,i,n=this,o=n.yAxis,s=n.xAxis,a=s.startAngleRad,l=n.chart,c=n.xAxis.isRadial;t.translate.apply(n),r(n.points,function(t){var r,u,p=t.shapeArgs,d=n.options.minPointLength;t.plotHigh=i=o.translate(t.high,0,1,0,1),t.plotLow=t.plotY,u=i,r=h(t.rectPlotY,t.plotY)-i,Math.abs(r)<d?(d-=r,r+=d,u-=d/2):r<0&&(r*=-1,u-=r),c?(e=t.barX+a,t.shapeType="path",t.shapeArgs={d:n.polarArc(u+r,u,e,e+t.pointWidth)}):(p.height=r,p.y=u,t.tooltipPos=l.inverted?[o.len+o.pos-l.plotLeft-u-r/2,s.len+s.pos-l.plotTop-p.x-p.width/2,r]:[s.left-l.plotLeft+p.x+p.width/2,o.pos-l.plotTop+u+r/2,r])})},directTouch:!0,trackerGroups:["group","dataLabelsGroup"],drawGraph:L,crispCol:t.crispCol,pointAttrToOptions:t.pointAttrToOptions,drawPoints:t.drawPoints,drawTracker:t.drawTracker,getColumnMetrics:t.getColumnMetrics,animate:function(){return t.animate.apply(this,arguments)},polarArc:function(){return t.polarArc.apply(this,arguments)}})}(),p.gauge=a(p.line,{dataLabels:{enabled:!0,defer:!1,y:15,borderWidth:1,borderColor:"silver",borderRadius:3,crop:!1,verticalAlign:"top",zIndex:2},dial:{},pivot:{},tooltip:{headerFormat:""},showInLegend:!1}),S={type:"gauge",pointClass:f(b,{setState:function(t){this.state=t}}),angular:!0,directTouch:!0,drawGraph:L,fixedBox:!0,forceDL:!0,trackerGroups:["group","dataLabelsGroup"],translate:function(){var t=this.yAxis,e=this.options,i=t.center;this.generatePoints(),r(this.points,function(n){var r=a(e.dial,n.dial),o=c(h(r.radius,80))*i[2]/200,l=c(h(r.baseLength,70))*o/100,u=c(h(r.rearLength,10))*o/100,p=r.baseWidth||3,d=r.topWidth||1,f=e.overshoot,g=t.startAngleRad+t.translate(n.y,null,null,null,!0);s(f)?(f=f/180*Math.PI,g=Math.max(t.startAngleRad-f,Math.min(t.endAngleRad+f,g))):e.wrap===!1&&(g=Math.max(t.startAngleRad,Math.min(t.endAngleRad,g))),g=180*g/Math.PI,n.shapeType="path",n.shapeArgs={d:r.path||["M",-u,-p/2,"L",l,-p/2,o,-d/2,o,d/2,l,p/2,-u,p/2,"z"],translateX:i[0],translateY:i[1],rotation:g},n.plotX=i[0],n.plotY=i[1]})},drawPoints:function(){var t=this,e=t.yAxis.center,i=t.pivot,n=t.options,o=n.pivot,s=t.chart.renderer;r(t.points,function(e){var i=e.graphic,r=e.shapeArgs,o=r.d,l=a(n.dial,e.dial);i?(i.animate(r),r.d=o):e.graphic=s[e.shapeType](r).attr({stroke:l.borderColor||"none","stroke-width":l.borderWidth||0,fill:l.backgroundColor||"black",rotation:r.rotation,zIndex:1}).add(t.group)}),i?i.animate({translateX:e[0],translateY:e[1]}):t.pivot=s.circle(0,0,h(o.radius,5)).attr({"stroke-width":o.borderWidth||0,stroke:o.borderColor||"silver",fill:o.backgroundColor||"black",zIndex:2}).translate(e[0],e[1]).add(t.group)},animate:function(t){var e=this;t||(r(e.points,function(t){var i=t.graphic;i&&(i.attr({rotation:180*e.yAxis.startAngleRad/Math.PI}),i.animate({rotation:t.shapeArgs.rotation},e.options.animation))}),e.animate=null)},render:function(){this.group=this.plotGroup("group","series",this.visible?"visible":"hidden",this.options.zIndex,this.chart.seriesGroup),T.prototype.render.call(this),this.group.clip(this.chart.clipRect)},setData:function(t,e){T.prototype.setData.call(this,t,!1),this.processData(),this.generatePoints(),h(e,!0)&&this.chart.redraw()},drawTracker:S&&S.drawTrackerPoint},d.gauge=f(d.line,S),p.boxplot=a(p.column,{fillColor:"#FFFFFF",lineWidth:1,medianWidth:2,states:{hover:{brightness:-.3}},threshold:null,tooltip:{pointFormat:'<span style="color:{point.color}">●</span> <b> {series.name}</b><br/>Maximum: {point.high}<br/>Upper quartile: {point.q3}<br/>Median: {point.median}<br/>Lower quartile: {point.q1}<br/>Minimum: {point.low}<br/>'},whiskerLength:"50%",whiskerWidth:2}),d.boxplot=f(d.column,{type:"boxplot",pointArrayMap:["low","q1","median","q3","high"],toYData:function(t){return[t.low,t.q1,t.median,t.q3,t.high]},pointValKey:"high",pointAttrToOptions:{fill:"fillColor",stroke:"color","stroke-width":"lineWidth"},drawDataLabels:L,translate:function(){var t=this.yAxis,e=this.pointArrayMap;d.column.prototype.translate.apply(this),r(this.points,function(i){r(e,function(e){null!==i[e]&&(i[e+"Plot"]=t.translate(i[e],0,1,0,1))})})},drawPoints:function(){var t,e,i,n,o,s,a,l,c,u,p,d,f,g,m,v,y,b,x,w,S,T,k,A=this,D=A.options,L=A.chart.renderer,E=A.doQuartiles!==!1,P=A.options.whiskerLength;r(A.points,function(r){c=r.graphic,S=r.shapeArgs,p={},g={},v={},T=r.color||A.color,void 0!==r.plotY&&(t=r.pointAttr[r.selected?"selected":""],y=S.width,b=_(S.x),x=b+y,w=C(y/2),e=_(E?r.q1Plot:r.lowPlot),i=_(E?r.q3Plot:r.lowPlot),n=_(r.highPlot),o=_(r.lowPlot),p.stroke=r.stemColor||D.stemColor||T,p["stroke-width"]=h(r.stemWidth,D.stemWidth,D.lineWidth),p.dashstyle=r.stemDashStyle||D.stemDashStyle,g.stroke=r.whiskerColor||D.whiskerColor||T,g["stroke-width"]=h(r.whiskerWidth,D.whiskerWidth,D.lineWidth),v.stroke=r.medianColor||D.medianColor||T,v["stroke-width"]=h(r.medianWidth,D.medianWidth,D.lineWidth),a=p["stroke-width"]%2/2,l=b+w+a,u=["M",l,i,"L",l,n,"M",l,e,"L",l,o],E&&(a=t["stroke-width"]%2/2,l=_(l)+a,e=_(e)+a,i=_(i)+a,b+=a,x+=a,d=["M",b,i,"L",b,e,"L",x,e,"L",x,i,"L",b,i,"z"]),P&&(a=g["stroke-width"]%2/2,n+=a,o+=a,k=/%$/.test(P)?w*parseFloat(P)/100:P/2,f=["M",l-k,n,"L",l+k,n,"M",l-k,o,"L",l+k,o]),a=v["stroke-width"]%2/2,s=C(r.medianPlot)+a,m=["M",b,s,"L",x,s],c?(r.stem.animate({d:u}),P&&r.whiskers.animate({d:f}),E&&r.box.animate({d:d}),r.medianShape.animate({d:m})):(r.graphic=c=L.g().add(A.group),r.stem=L.path(u).attr(p).add(c),P&&(r.whiskers=L.path(f).attr(g).add(c)),E&&(r.box=L.path(d).attr(t).add(c)),r.medianShape=L.path(m).attr(v).add(c)))})},setStackedPoints:L}),p.errorbar=a(p.boxplot,{color:"#000000",grouping:!1,linkedTo:":previous",tooltip:{pointFormat:'<span style="color:{point.color}">●</span> {series.name}: <b>{point.low}</b> - <b>{point.high}</b><br/>'},whiskerWidth:null}),d.errorbar=f(d.boxplot,{type:"errorbar",pointArrayMap:["low","high"],toYData:function(t){return[t.low,t.high]},pointValKey:"high",doQuartiles:!1,drawDataLabels:d.arearange?d.arearange.prototype.drawDataLabels:L,getColumnMetrics:function(){return this.linkedParent&&this.linkedParent.columnMetrics||d.column.prototype.getColumnMetrics.call(this)}}),p.waterfall=a(p.column,{lineWidth:1,lineColor:"#333",dashStyle:"dot",borderColor:"#333",dataLabels:{inside:!0},states:{hover:{lineWidthPlus:0}}}),d.waterfall=f(d.column,{type:"waterfall",upColorProp:"fill",pointValKey:"y",translate:function(){var t,e,i,n,r,o,s,a,l,c=this.options,p=this.yAxis,f=h(c.minPointLength,5),g=c.threshold,m=c.stacking;for(d.column.prototype.translate.apply(this),this.minPointLengthOffset=0,s=a=g,e=this.points,t=0,c=e.length;t<c;t++)i=e[t],o=this.processedYData[t],n=i.shapeArgs,l=(r=m&&p.stacks[(this.negStacks&&o<g?"-":"")+this.stackKey])?r[i.x].points[this.index+","+t]:[0,o],i.isSum?i.y=u(o):i.isIntermediateSum&&(i.y=u(o-a)),r=A(s,s+i.y)+l[0],n.y=p.translate(r,0,1),i.isSum?(n.y=p.translate(l[1],0,1),n.height=Math.min(p.translate(l[0],0,1),p.len)-n.y+this.minPointLengthOffset):i.isIntermediateSum?(n.y=p.translate(l[1],0,1),n.height=Math.min(p.translate(a,0,1),p.len)-n.y+this.minPointLengthOffset,a=l[1]):(0!==s&&(n.height=o>0?p.translate(s,0,1)-n.y:p.translate(s,0,1)-p.translate(s-o,0,1)),s+=o),n.height<0&&(n.y+=n.height,n.height*=-1),i.plotY=n.y=C(n.y)-this.borderWidth%2/2,n.height=A(C(n.height),.001),i.yBottom=n.y+n.height,n.height<=f&&(n.height=f,this.minPointLengthOffset+=f),n.y-=this.minPointLengthOffset,n=i.plotY+(i.negative?n.height:0)-this.minPointLengthOffset,this.chart.inverted?i.tooltipPos[0]=p.len-n:i.tooltipPos[1]=n},processData:function(t){var e,i,n,r,o,s,a,l=this.yData,h=this.options.data,c=l.length;for(n=i=r=o=this.options.threshold||0,a=0;a<c;a++)s=l[a],e=h&&h[a]?h[a]:{},"sum"===s||e.isSum?l[a]=u(n):"intermediateSum"===s||e.isIntermediateSum?l[a]=u(i):(n+=s,i+=s),r=Math.min(n,r),o=Math.max(n,o);T.prototype.processData.call(this,t),this.dataMin=r,this.dataMax=o},toYData:function(t){return t.isSum?0===t.x?null:"sum":t.isIntermediateSum?0===t.x?null:"intermediateSum":t.y},getAttribs:function(){d.column.prototype.getAttribs.apply(this,arguments);var e=this,i=e.options,n=i.states,o=i.upColor||e.color,i=t.Color(o).brighten(.1).get(),s=a(e.pointAttr),l=e.upColorProp;s[""][l]=o,s.hover[l]=n.hover.upColor||i,s.select[l]=n.select.upColor||o,r(e.points,function(t){t.options.color||(t.y>0?(t.pointAttr=s,t.color=o):t.pointAttr=e.pointAttr)})},getGraphPath:function(){var t,e,i,n=this.data,r=n.length,o=C(this.options.lineWidth+this.borderWidth)%2/2,s=[];for(i=1;i<r;i++)e=n[i].shapeArgs,t=n[i-1].shapeArgs,e=["M",t.x+t.width,t.y+o,"L",e.x,t.y+o],n[i-1].y<0&&(e[2]+=t.height,e[5]+=t.height),s=s.concat(e);return s},getExtremes:L,drawGraph:T.prototype.drawGraph}),p.polygon=a(p.scatter,{marker:{enabled:!1}}),d.polygon=f(d.scatter,{type:"polygon",fillGraph:!0,getSegmentPath:function(t){return T.prototype.getSegmentPath.call(this,t).concat("z")},drawGraph:T.prototype.drawGraph,drawLegendSymbol:t.LegendSymbolMixin.drawRectangle}),p.bubble=a(p.scatter,{dataLabels:{formatter:function(){return this.point.z},inside:!0,verticalAlign:"middle"},marker:{lineColor:null,lineWidth:1},minSize:8,maxSize:"20%",softThreshold:!1,states:{hover:{halo:{size:5}}},tooltip:{pointFormat:"({point.x}, {point.y}), Size: {point.z}"},turboThreshold:0,zThreshold:0,zoneAxis:"z"}),S=f(b,{haloPath:function(){return b.prototype.haloPath.call(this,this.shapeArgs.r+this.series.options.states.hover.halo.size)},ttBelow:!1}),d.bubble=f(d.scatter,{type:"bubble",pointClass:S,pointArrayMap:["y","z"],parallelArrays:["x","y","z"],trackerGroups:["group","dataLabelsGroup"],bubblePadding:!0,zoneAxis:"z",pointAttrToOptions:{stroke:"lineColor","stroke-width":"lineWidth",fill:"fillColor"},applyOpacity:function(t){var e=this.options.marker,i=h(e.fillOpacity,.5),t=t||e.fillColor||this.color;return 1!==i&&(t=D(t).setOpacity(i).get("rgba")),t},convertAttribs:function(){var t=T.prototype.convertAttribs.apply(this,arguments);return t.fill=this.applyOpacity(t.fill),t},getRadii:function(t,e,i,n){var r,o,s,a=this.zData,l=[],h=this.options,c="width"!==h.sizeBy,u=h.zThreshold,p=e-t;for(o=0,r=a.length;o<r;o++)s=a[o],h.sizeByAbsoluteValue&&null!==s&&(s=Math.abs(s-u),e=Math.max(e-u,Math.abs(t-u)),t=0),null===s?s=null:s<t?s=i/2-1:(s=p>0?(s-t)/p:.5,c&&s>=0&&(s=Math.sqrt(s)),s=k.ceil(i+s*(n-i))/2),l.push(s);this.radii=l},animate:function(t){var e=this.options.animation;t||(r(this.points,function(t){var i=t.graphic,t=t.shapeArgs;i&&t&&(i.attr("r",1),i.animate({r:t.r},e))}),this.animate=null)},translate:function(){var t,e,i,n=this.data,r=this.radii;for(d.scatter.prototype.translate.call(this),t=n.length;t--;)e=n[t],i=r?r[t]:0,s(i)&&i>=this.minPxSize/2?(e.shapeType="circle",e.shapeArgs={x:e.plotX,y:e.plotY,r:i},e.dlBox={x:e.plotX-i,y:e.plotY-i,width:2*i,height:2*i}):e.shapeArgs=e.plotY=e.dlBox=void 0},drawLegendSymbol:function(t,e){var i=this.chart.renderer,n=i.fontMetrics(t.itemStyle.fontSize).f/2;e.legendSymbol=i.circle(n,t.baseline-n,n).attr({zIndex:3}).add(e.legendGroup),e.legendSymbol.isMarker=!0},drawPoints:d.column.prototype.drawPoints,alignDataLabel:d.column.prototype.alignDataLabel,buildKDTree:L,applyZones:L}),v.prototype.beforePadding=function(){var t=this,e=this.len,o=this.chart,a=0,l=e,u=this.isXAxis,p=u?"xData":"yData",d=this.min,f={},g=k.min(o.plotWidth,o.plotHeight),m=Number.MAX_VALUE,v=-Number.MAX_VALUE,y=this.max-d,b=e/y,x=[];r(this.series,function(e){var s=e.options;!e.bubblePadding||!e.visible&&o.options.chart.ignoreHiddenSeries||(t.allowZoomOutside=!0,x.push(e),u&&(r(["minSize","maxSize"],function(t){var e=s[t],i=/%$/.test(e),e=c(e);f[t]=i?g*e/100:e}),e.minPxSize=f.minSize,e.maxPxSize=f.maxSize,e=e.zData,e.length&&(m=h(s.zMin,k.min(m,k.max(i(e),s.displayNegative===!1?s.zThreshold:-Number.MAX_VALUE))),v=h(s.zMax,k.max(v,n(e))))))}),r(x,function(e){var i,n=e[p],r=n.length;if(u&&e.getRadii(m,v,e.minPxSize,e.maxPxSize),y>0)for(;r--;)s(n[r])&&t.dataMin<=n[r]&&n[r]<=t.dataMax&&(i=e.radii[r],a=Math.min((n[r]-d)*b-i,a),l=Math.max((n[r]-d)*b+i,l))}),x.length&&y>0&&!this.isLog&&(l-=e,b*=(e+a-l)/e,r([["min","userMin",a],["max","userMax",l]],function(e){void 0===h(t.options[e[0]],t[e[1]])&&(t[e[0]]+=e[2]/b)}))},function(){function t(t,e){var i=this.chart,n=this.options.animation,r=this.group,o=this.markerGroup,s=this.xAxis.center,a=i.plotLeft,l=i.plotTop;i.polar?i.renderer.isSVG&&(n===!0&&(n={}),e?(i={translateX:s[0]+a,translateY:s[1]+l,scaleX:.001,scaleY:.001},r.attr(i),o&&o.attr(i)):(i={translateX:a,translateY:l,scaleX:1,scaleY:1},r.animate(i,n),o&&o.animate(i,n),this.animate=null)):t.call(this,e)}var e,i=T.prototype,n=x.prototype;i.searchPointByAngle=function(t){var e=this.chart,i=this.xAxis.pane.center;return this.searchKDTree({clientX:180+Math.atan2(t.chartX-i[0]-e.plotLeft,t.chartY-i[1]-e.plotTop)*(-180/Math.PI)})},m(i,"buildKDTree",function(t){this.chart.polar&&(this.kdByAngle?this.searchPoint=this.searchPointByAngle:this.kdDimensions=2),t.apply(this)}),i.toXY=function(t){var e,i=this.chart,n=t.plotX;e=t.plotY,t.rectPlotX=n,t.rectPlotY=e,e=this.xAxis.postTranslate(t.plotX,this.yAxis.len-e),t.plotX=t.polarPlotX=e.x-i.plotLeft,t.plotY=t.polarPlotY=e.y-i.plotTop,this.kdByAngle?(i=(n/Math.PI*180+this.xAxis.pane.options.startAngle)%360,i<0&&(i+=360),t.clientX=i):t.clientX=t.plotX},d.spline&&m(d.spline.prototype,"getPointSpline",function(t,e,i,n){var r,o,s,a,l,h,c;return this.chart.polar?(r=i.plotX,o=i.plotY,t=e[n-1],s=e[n+1],this.connectEnds&&(t||(t=e[e.length-2]),s||(s=e[1])),t&&s&&(a=t.plotX,l=t.plotY,e=s.plotX,h=s.plotY,a=(1.5*r+a)/2.5,l=(1.5*o+l)/2.5,s=(1.5*r+e)/2.5,c=(1.5*o+h)/2.5,e=Math.sqrt(Math.pow(a-r,2)+Math.pow(l-o,2)),h=Math.sqrt(Math.pow(s-r,2)+Math.pow(c-o,2)),a=Math.atan2(l-o,a-r),l=Math.atan2(c-o,s-r),c=Math.PI/2+(a+l)/2,Math.abs(a-c)>Math.PI/2&&(c-=Math.PI),a=r+Math.cos(c)*e,l=o+Math.sin(c)*e,s=r+Math.cos(Math.PI+c)*h,c=o+Math.sin(Math.PI+c)*h,i.rightContX=s,i.rightContY=c),n?(i=["C",t.rightContX||t.plotX,t.rightContY||t.plotY,a||r,l||o,r,o],t.rightContX=t.rightContY=null):i=["M",r,o]):i=t.call(this,e,i,n),i}),m(i,"translate",function(t){var e=this.chart;if(t.call(this),e.polar&&(this.kdByAngle=e.tooltip&&e.tooltip.shared,!this.preventPostTranslate))for(t=this.points,e=t.length;e--;)this.toXY(t[e])}),m(i,"getGraphPath",function(t,e){var i=this;return this.chart.polar&&(e=e||this.points,this.options.connectEnds!==!1&&e[0]&&null!==e[0].y&&(this.connectEnds=!0,e.splice(e.length,0,e[0])),r(e,function(t){void 0===t.polarPlotY&&i.toXY(t)})),t.apply(this,[].slice.call(arguments,1))}),m(i,"animate",t),d.column&&(e=d.column.prototype,e.polarArc=function(t,e,i,n){var r=this.xAxis.center,o=this.yAxis.len;return this.chart.renderer.symbols.arc(r[0],r[1],o-e,null,{start:i,end:n,innerR:o-h(t,o)})},m(e,"animate",t),m(e,"translate",function(t){var e,i,n,r=this.xAxis,o=r.startAngleRad;if(this.preventPostTranslate=!0,t.call(this),r.isRadial)for(e=this.points,n=e.length;n--;)i=e[n],t=i.barX+o,i.shapeType="path",i.shapeArgs={d:this.polarArc(i.yBottom,i.plotY,t,t+i.pointWidth)},this.toXY(i),i.tooltipPos=[i.plotX,i.plotY],i.ttBelow=i.plotY>r.center[1]}),m(e,"alignDataLabel",function(t,e,n,r,o,s){this.chart.polar?(t=e.rectPlotX/Math.PI*180,null===r.align&&(r.align=t>20&&t<160?"left":t>200&&t<340?"right":"center"),null===r.verticalAlign&&(r.verticalAlign=t<45||t>315?"bottom":t>135&&t<225?"top":"middle"),i.alignDataLabel.call(this,e,n,r,o,s)):t.call(this,e,n,r,o,s)})),m(n,"getCoordinates",function(t,e){var i=this.chart,n={xAxis:[],yAxis:[]};return i.polar?r(i.axes,function(t){var r=t.isXAxis,o=t.center,s=e.chartX-o[0]-i.plotLeft,o=e.chartY-o[1]-i.plotTop;n[r?"xAxis":"yAxis"].push({axis:t,value:t.translate(r?Math.PI-Math.atan2(s,o):Math.sqrt(Math.pow(s,2)+Math.pow(o,2)),!0)})}):n=t.call(this,e),n})}()}),function(t){"object"==typeof module&&module.exports?module.exports=t:t(Highcharts)}(function(t){var e,i=t.win,n=i.document,r=t.Chart,o=t.addEvent,s=t.removeEvent,a=t.fireEvent,l=t.createElement,h=t.discardElement,c=t.css,u=t.merge,p=t.each,d=t.extend,f=t.splat,g=Math.max,m=t.isTouchDevice,v=t.Renderer.prototype.symbols,y=t.getOptions();d(y.lang,{printChart:"Print chart",downloadPNG:"Download PNG image",downloadJPEG:"Download JPEG image",downloadPDF:"Download PDF document",downloadSVG:"Download SVG vector image",contextButtonTitle:"Chart context menu"}),y.navigation={menuStyle:{border:"1px solid #A0A0A0",background:"#FFFFFF",padding:"5px 0"},menuItemStyle:{padding:"0 10px",background:"none",color:"#303030",fontSize:m?"14px":"11px"},menuItemHoverStyle:{background:"#4572A5",color:"#FFFFFF"},buttonOptions:{symbolFill:"#E0E0E0",symbolSize:14,symbolStroke:"#666",symbolStrokeWidth:3,symbolX:12.5,symbolY:10.5,align:"right",buttonSpacing:3,height:22,theme:{fill:"white",stroke:"none"},verticalAlign:"top",width:24}},y.exporting={type:"image/png",url:"http://export.highcharts.com/",printMaxWidth:780,buttons:{contextButton:{menuClassName:"highcharts-contextmenu",symbol:"menu",_titleKey:"contextButtonTitle",menuItems:[{textKey:"printChart",onclick:function(){this.print()}},{separator:!0},{textKey:"downloadPNG",onclick:function(){this.exportChart()}},{textKey:"downloadJPEG",onclick:function(){this.exportChart({type:"image/jpeg"})}},{textKey:"downloadPDF",onclick:function(){this.exportChart({type:"application/pdf"})}},{textKey:"downloadSVG",onclick:function(){this.exportChart({type:"image/svg+xml"})}}]}}},t.post=function(t,e,i){var r,t=l("form",u({method:"post",action:t,enctype:"multipart/form-data"},i),{display:"none"},n.body);for(r in e)l("input",{type:"hidden",name:r,value:e[r]},null,t);t.submit(),h(t)},d(r.prototype,{sanitizeSVG:function(t){return t.replace(/zIndex="[^"]+"/g,"").replace(/isShadow="[^"]+"/g,"").replace(/symbolName="[^"]+"/g,"").replace(/jQuery[0-9]+="[^"]+"/g,"").replace(/url\([^#]+#/g,"url(#").replace(/<svg /,'<svg xmlns:xlink="http://www.w3.org/1999/xlink" ').replace(/ (NS[0-9]+\:)?href=/g," xlink:href=").replace(/\n/," ").replace(/<\/svg>.*?$/,"</svg>").replace(/(fill|stroke)="rgba\(([ 0-9]+,[ 0-9]+,[ 0-9]+),([ 0-9\.]+)\)"/g,'$1="rgb($2)" $1-opacity="$3"').replace(/&nbsp;/g," ").replace(/&shy;/g,"­").replace(/<IMG /g,"<image ").replace(/<(\/?)TITLE>/g,"<$1title>").replace(/height=([^" ]+)/g,'height="$1"').replace(/width=([^" ]+)/g,'width="$1"').replace(/hc-svg-href="([^"]+)">/g,'xlink:href="$1"/>').replace(/ id=([^" >]+)/g,' id="$1"').replace(/class=([^" >]+)/g,'class="$1"').replace(/ transform /g," ").replace(/:(path|rect)/g,"$1").replace(/style="([^"]+)"/g,function(t){return t.toLowerCase()})},getChartHTML:function(){return this.container.innerHTML},getSVG:function(e){var i,r,o,s,a,c=this,g=u(c.options,e),m=g.exporting.allowHTML;return n.createElementNS||(n.createElementNS=function(t,e){return n.createElement(e)}),r=l("div",null,{position:"absolute",top:"-9999em",width:c.chartWidth+"px",height:c.chartHeight+"px"},n.body),o=c.renderTo.style.width,a=c.renderTo.style.height,o=g.exporting.sourceWidth||g.chart.width||/px$/.test(o)&&parseInt(o,10)||600,a=g.exporting.sourceHeight||g.chart.height||/px$/.test(a)&&parseInt(a,10)||400,d(g.chart,{animation:!1,renderTo:r,forExport:!0,renderer:"SVGRenderer",width:o,height:a}),g.exporting.enabled=!1,delete g.data,g.series=[],p(c.series,function(t){s=u(t.userOptions,{animation:!1,enableMouseTracking:!1,showCheckbox:!1,visible:t.visible}),s.isInternal||g.series.push(s)}),e&&p(["xAxis","yAxis"],function(t){p(f(e[t]),function(e,i){g[t][i]=u(g[t][i],e)})}),i=new t.Chart(g,c.callback),p(["xAxis","yAxis"],function(t){p(c[t],function(e,n){var r=i[t][n],o=e.getExtremes(),s=o.userMin,o=o.userMax;r&&(void 0!==s||void 0!==o)&&r.setExtremes(s,o,!0,!1)})}),o=i.getChartHTML(),g=null,i.destroy(),h(r),m&&(r=o.match(/<\/svg>(.*?$)/))&&(r='<foreignObject x="0" y="0" width="200" height="200"><body xmlns="http://www.w3.org/1999/xhtml">'+r[1]+"</body></foreignObject>",o=o.replace("</svg>",r+"</svg>")),o=this.sanitizeSVG(o),o=o.replace(/(url\(#highcharts-[0-9]+)&quot;/g,"$1").replace(/&quot;/g,"'")},getSVGForExport:function(t,e){var i=this.options.exporting;return this.getSVG(u({chart:{borderRadius:0}},i.chartOptions,e,{exporting:{sourceWidth:t&&t.sourceWidth||i.sourceWidth,sourceHeight:t&&t.sourceHeight||i.sourceHeight}}))},exportChart:function(e,i){var n=this.getSVGForExport(e,i),e=u(this.options.exporting,e);t.post(e.url,{filename:e.filename||"chart",type:e.type,width:e.width||0,scale:e.scale||2,svg:n},e.formAttributes)},print:function(){var t,e,r,o=this,s=o.container,l=[],h=s.parentNode,c=n.body,u=c.childNodes,d=o.options.exporting.printMaxWidth;o.isPrinting||(o.isPrinting=!0,o.pointer.reset(null,0),a(o,"beforePrint"),(r=d&&o.chartWidth>d)&&(t=o.hasUserSize,e=[o.chartWidth,o.chartHeight,!1],o.setSize(d,o.chartHeight,!1)),p(u,function(t,e){1===t.nodeType&&(l[e]=t.style.display,t.style.display="none")}),c.appendChild(s),i.focus(),i.print(),setTimeout(function(){h.appendChild(s),p(u,function(t,e){1===t.nodeType&&(t.style.display=l[e])}),o.isPrinting=!1,r&&(o.setSize.apply(o,e),o.hasUserSize=t),a(o,"afterPrint")},1e3))},contextMenu:function(t,e,i,r,a,h,u){var f,m,v,y=this,b=y.options.navigation,x=b.menuItemStyle,w=y.chartWidth,S=y.chartHeight,T="cache-"+t,k=y[T],C=g(a,h),_=function(e){y.pointer.inClass(e.target,t)||m()};k||(y[T]=k=l("div",{className:t},{position:"absolute",zIndex:1e3,padding:C+"px"},y.container),f=l("div",null,d({MozBoxShadow:"3px 3px 10px #888",WebkitBoxShadow:"3px 3px 10px #888",boxShadow:"3px 3px 10px #888"},b.menuStyle),k),m=function(){c(k,{display:"none"}),u&&u.setState(0),y.openMenu=!1},o(k,"mouseleave",function(){v=setTimeout(m,500)}),o(k,"mouseenter",function(){clearTimeout(v)}),o(n,"mouseup",_),o(y,"destroy",function(){s(n,"mouseup",_)}),p(e,function(t){if(t){var e=t.separator?l("hr",null,null,f):l("div",{onmouseover:function(){c(this,b.menuItemHoverStyle)},onmouseout:function(){c(this,x)},onclick:function(e){e&&e.stopPropagation(),m(),t.onclick&&t.onclick.apply(y,arguments)},innerHTML:t.text||y.options.lang[t.textKey]},d({cursor:"pointer"},x),f);y.exportDivElements.push(e)}}),y.exportDivElements.push(f,k),y.exportMenuWidth=k.offsetWidth,y.exportMenuHeight=k.offsetHeight),e={display:"block"},i+y.exportMenuWidth>w?e.right=w-i-a-C+"px":e.left=i-C+"px",r+h+y.exportMenuHeight>S&&"top"!==u.alignOptions.verticalAlign?e.bottom=S-r-C+"px":e.top=r+h-C+"px",c(k,e),y.openMenu=!0},addButton:function(i){var n,r,o=this,s=o.renderer,a=u(o.options.navigation.buttonOptions,i),l=a.onclick,h=a.menuItems,c={stroke:a.symbolStroke,fill:a.symbolFill},p=a.symbolSize||12;if(o.btnCount||(o.btnCount=0),o.exportDivElements||(o.exportDivElements=[],o.exportSVGElements=[]),a.enabled!==!1){var f,g=a.theme,m=g.states,v=m&&m.hover,m=m&&m.select;delete g.states,l?f=function(t){t.stopPropagation(),l.call(o,t)}:h&&(f=function(){o.contextMenu(r.menuClassName,h,r.translateX,r.translateY,r.width,r.height,r),r.setState(2)}),a.text&&a.symbol?g.paddingLeft=t.pick(g.paddingLeft,25):a.text||d(g,{width:a.width,height:a.height,padding:0}),r=s.button(a.text,0,0,f,g,v,m).attr({title:o.options.lang[a._titleKey],"stroke-linecap":"round",zIndex:3}),r.menuClassName=i.menuClassName||"highcharts-menu-"+o.btnCount++,a.symbol&&(n=s.symbol(a.symbol,a.symbolX-p/2,a.symbolY-p/2,p,p).attr(d(c,{"stroke-width":a.symbolStrokeWidth||1,zIndex:1})).add(r)),r.add().align(d(a,{width:r.width,x:t.pick(a.x,e)}),!0,"spacingBox"),e+=(r.width+a.buttonSpacing)*("right"===a.align?-1:1),o.exportSVGElements.push(r,n)}},destroyExport:function(t){var e,i,t=t.target;for(e=0;e<t.exportSVGElements.length;e++)(i=t.exportSVGElements[e])&&(i.onclick=i.ontouchstart=null,t.exportSVGElements[e]=i.destroy());for(e=0;e<t.exportDivElements.length;e++)i=t.exportDivElements[e],s(i,"mouseleave"),t.exportDivElements[e]=i.onmouseout=i.onmouseover=i.ontouchstart=i.onclick=null,h(i)}}),v.menu=function(t,e,i,n){return["M",t,e+2.5,"L",t+i,e+2.5,"M",t,e+n/2+.5,"L",t+i,e+n/2+.5,"M",t,e+n-1.5,"L",t+i,e+n-1.5]},r.prototype.callbacks.push(function(t){var i,n=t.options.exporting,r=n.buttons;if(e=0,n.enabled!==!1){for(i in r)t.addButton(r[i]);o(t,"destroy",t.destroyExport)}})}),function(){function t(e,i,n){
if(e===i)return 0!==e||1/e==1/i;if(null==e||null==i)return e===i;if(e._chain&&(e=e._wrapped),i._chain&&(i=i._wrapped),e.isEqual&&T.isFunction(e.isEqual))return e.isEqual(i);if(i.isEqual&&T.isFunction(i.isEqual))return i.isEqual(e);var r=h.call(e);if(r!=h.call(i))return!1;switch(r){case"[object String]":return e==String(i);case"[object Number]":return e!=+e?i!=+i:0==e?1/e==1/i:e==+i;case"[object Date]":case"[object Boolean]":return+e==+i;case"[object RegExp]":return e.source==i.source&&e.global==i.global&&e.multiline==i.multiline&&e.ignoreCase==i.ignoreCase}if("object"!=typeof e||"object"!=typeof i)return!1;for(var o=n.length;o--;)if(n[o]==e)return!0;n.push(e);var s=0,a=!0;if("[object Array]"==r){if(s=e.length,a=s==i.length)for(;s--&&(a=s in e==s in i&&t(e[s],i[s],n)););}else{if("constructor"in e!="constructor"in i||e.constructor!=i.constructor)return!1;for(var l in e)if(T.has(e,l)&&(s++,!(a=T.has(i,l)&&t(e[l],i[l],n))))break;if(a){for(l in i)if(T.has(i,l)&&!s--)break;a=!s}}return n.pop(),a}var e=this,i=e._,n={},r=Array.prototype,o=Object.prototype,s=Function.prototype,a=r.slice,l=r.unshift,h=o.toString,c=o.hasOwnProperty,u=r.forEach,p=r.map,d=r.reduce,f=r.reduceRight,g=r.filter,m=r.every,v=r.some,y=r.indexOf,b=r.lastIndexOf,x=Array.isArray,w=Object.keys,S=s.bind,T=function(t){return new R(t)};"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=T),exports._=T):e._=T,T.VERSION="1.3.3";var k=T.each=T.forEach=function(t,e,i){if(null!=t)if(u&&t.forEach===u)t.forEach(e,i);else if(t.length===+t.length){for(var r=0,o=t.length;r<o;r++)if(r in t&&e.call(i,t[r],r,t)===n)return}else for(var s in t)if(T.has(t,s)&&e.call(i,t[s],s,t)===n)return};T.map=T.collect=function(t,e,i){var n=[];return null==t?n:p&&t.map===p?t.map(e,i):(k(t,function(t,r,o){n[n.length]=e.call(i,t,r,o)}),t.length===+t.length&&(n.length=t.length),n)},T.reduce=T.foldl=T.inject=function(t,e,i,n){var r=arguments.length>2;if(null==t&&(t=[]),d&&t.reduce===d)return n&&(e=T.bind(e,n)),r?t.reduce(e,i):t.reduce(e);if(k(t,function(t,o,s){r?i=e.call(n,i,t,o,s):(i=t,r=!0)}),!r)throw new TypeError("Reduce of empty array with no initial value");return i},T.reduceRight=T.foldr=function(t,e,i,n){var r=arguments.length>2;if(null==t&&(t=[]),f&&t.reduceRight===f)return n&&(e=T.bind(e,n)),r?t.reduceRight(e,i):t.reduceRight(e);var o=T.toArray(t).reverse();return n&&!r&&(e=T.bind(e,n)),r?T.reduce(o,e,i,n):T.reduce(o,e)},T.find=T.detect=function(t,e,i){var n;return C(t,function(t,r,o){if(e.call(i,t,r,o))return n=t,!0}),n},T.filter=T.select=function(t,e,i){var n=[];return null==t?n:g&&t.filter===g?t.filter(e,i):(k(t,function(t,r,o){e.call(i,t,r,o)&&(n[n.length]=t)}),n)},T.reject=function(t,e,i){var n=[];return null==t?n:(k(t,function(t,r,o){e.call(i,t,r,o)||(n[n.length]=t)}),n)},T.every=T.all=function(t,e,i){var r=!0;return null==t?r:m&&t.every===m?t.every(e,i):(k(t,function(t,o,s){if(!(r=r&&e.call(i,t,o,s)))return n}),!!r)};var C=T.some=T.any=function(t,e,i){e||(e=T.identity);var r=!1;return null==t?r:v&&t.some===v?t.some(e,i):(k(t,function(t,o,s){if(r||(r=e.call(i,t,o,s)))return n}),!!r)};T.include=T.contains=function(t,e){var i=!1;return null==t?i:y&&t.indexOf===y?t.indexOf(e)!=-1:i=C(t,function(t){return t===e})},T.invoke=function(t,e){var i=a.call(arguments,2);return T.map(t,function(t){return(T.isFunction(e)?e||t:t[e]).apply(t,i)})},T.pluck=function(t,e){return T.map(t,function(t){return t[e]})},T.max=function(t,e,i){if(!e&&T.isArray(t)&&t[0]===+t[0])return Math.max.apply(Math,t);if(!e&&T.isEmpty(t))return-(1/0);var n={computed:-(1/0)};return k(t,function(t,r,o){var s=e?e.call(i,t,r,o):t;s>=n.computed&&(n={value:t,computed:s})}),n.value},T.min=function(t,e,i){if(!e&&T.isArray(t)&&t[0]===+t[0])return Math.min.apply(Math,t);if(!e&&T.isEmpty(t))return 1/0;var n={computed:1/0};return k(t,function(t,r,o){var s=e?e.call(i,t,r,o):t;s<n.computed&&(n={value:t,computed:s})}),n.value},T.shuffle=function(t){var e,i=[];return k(t,function(t,n,r){e=Math.floor(Math.random()*(n+1)),i[n]=i[e],i[e]=t}),i},T.sortBy=function(t,e,i){var n=T.isFunction(e)?e:function(t){return t[e]};return T.pluck(T.map(t,function(t,e,r){return{value:t,criteria:n.call(i,t,e,r)}}).sort(function(t,e){var i=t.criteria,n=e.criteria;return void 0===i?1:void 0===n?-1:i<n?-1:i>n?1:0}),"value")},T.groupBy=function(t,e){var i={},n=T.isFunction(e)?e:function(t){return t[e]};return k(t,function(t,e){var r=n(t,e);(i[r]||(i[r]=[])).push(t)}),i},T.sortedIndex=function(t,e,i){i||(i=T.identity);for(var n=0,r=t.length;n<r;){var o=n+r>>1;i(t[o])<i(e)?n=o+1:r=o}return n},T.toArray=function(t){return t?T.isArray(t)?a.call(t):T.isArguments(t)?a.call(t):t.toArray&&T.isFunction(t.toArray)?t.toArray():T.values(t):[]},T.size=function(t){return T.isArray(t)?t.length:T.keys(t).length},T.first=T.head=T.take=function(t,e,i){return null==e||i?t[0]:a.call(t,0,e)},T.initial=function(t,e,i){return a.call(t,0,t.length-(null==e||i?1:e))},T.last=function(t,e,i){return null==e||i?t[t.length-1]:a.call(t,Math.max(t.length-e,0))},T.rest=T.tail=function(t,e,i){return a.call(t,null==e||i?1:e)},T.compact=function(t){return T.filter(t,function(t){return!!t})},T.flatten=function(t,e){return T.reduce(t,function(t,i){return T.isArray(i)?t.concat(e?i:T.flatten(i)):(t[t.length]=i,t)},[])},T.without=function(t){return T.difference(t,a.call(arguments,1))},T.uniq=T.unique=function(t,e,i){var n=i?T.map(t,i):t,r=[];return t.length<3&&(e=!0),T.reduce(n,function(i,n,o){return(e?T.last(i)===n&&i.length:T.include(i,n))||(i.push(n),r.push(t[o])),i},[]),r},T.union=function(){return T.uniq(T.flatten(arguments,!0))},T.intersection=T.intersect=function(t){var e=a.call(arguments,1);return T.filter(T.uniq(t),function(t){return T.every(e,function(e){return T.indexOf(e,t)>=0})})},T.difference=function(t){var e=T.flatten(a.call(arguments,1),!0);return T.filter(t,function(t){return!T.include(e,t)})},T.zip=function(){for(var t=a.call(arguments),e=T.max(T.pluck(t,"length")),i=new Array(e),n=0;n<e;n++)i[n]=T.pluck(t,""+n);return i},T.indexOf=function(t,e,i){if(null==t)return-1;var n,r;if(i)return n=T.sortedIndex(t,e),t[n]===e?n:-1;if(y&&t.indexOf===y)return t.indexOf(e);for(n=0,r=t.length;n<r;n++)if(n in t&&t[n]===e)return n;return-1},T.lastIndexOf=function(t,e){if(null==t)return-1;if(b&&t.lastIndexOf===b)return t.lastIndexOf(e);for(var i=t.length;i--;)if(i in t&&t[i]===e)return i;return-1},T.range=function(t,e,i){arguments.length<=1&&(e=t||0,t=0),i=arguments[2]||1;for(var n=Math.max(Math.ceil((e-t)/i),0),r=0,o=new Array(n);r<n;)o[r++]=t,t+=i;return o};var _=function(){};T.bind=function(t,e){var i,n;if(t.bind===S&&S)return S.apply(t,a.call(arguments,1));if(!T.isFunction(t))throw new TypeError;return n=a.call(arguments,2),i=function(){if(!(this instanceof i))return t.apply(e,n.concat(a.call(arguments)));_.prototype=t.prototype;var r=new _,o=t.apply(r,n.concat(a.call(arguments)));return Object(o)===o?o:r}},T.bindAll=function(t){var e=a.call(arguments,1);return 0==e.length&&(e=T.functions(t)),k(e,function(e){t[e]=T.bind(t[e],t)}),t},T.memoize=function(t,e){var i={};return e||(e=T.identity),function(){var n=e.apply(this,arguments);return T.has(i,n)?i[n]:i[n]=t.apply(this,arguments)}},T.delay=function(t,e){var i=a.call(arguments,2);return setTimeout(function(){return t.apply(null,i)},e)},T.defer=function(t){return T.delay.apply(T,[t,1].concat(a.call(arguments,1)))},T.throttle=function(t,e){var i,n,r,o,s,a,l=T.debounce(function(){s=o=!1},e);return function(){i=this,n=arguments;var h=function(){r=null,s&&t.apply(i,n),l()};return r||(r=setTimeout(h,e)),o?s=!0:a=t.apply(i,n),l(),o=!0,a}},T.debounce=function(t,e,i){var n;return function(){var r=this,o=arguments,s=function(){n=null,i||t.apply(r,o)};i&&!n&&t.apply(r,o),clearTimeout(n),n=setTimeout(s,e)}},T.once=function(t){var e,i=!1;return function(){return i?e:(i=!0,e=t.apply(this,arguments))}},T.wrap=function(t,e){return function(){var i=[t].concat(a.call(arguments,0));return e.apply(this,i)}},T.compose=function(){var t=arguments;return function(){for(var e=arguments,i=t.length-1;i>=0;i--)e=[t[i].apply(this,e)];return e[0]}},T.after=function(t,e){return t<=0?e():function(){if(--t<1)return e.apply(this,arguments)}},T.keys=w||function(t){if(t!==Object(t))throw new TypeError("Invalid object");var e=[];for(var i in t)T.has(t,i)&&(e[e.length]=i);return e},T.values=function(t){return T.map(t,T.identity)},T.functions=T.methods=function(t){var e=[];for(var i in t)T.isFunction(t[i])&&e.push(i);return e.sort()},T.extend=function(t){return k(a.call(arguments,1),function(e){for(var i in e)t[i]=e[i]}),t},T.pick=function(t){var e={};return k(T.flatten(a.call(arguments,1)),function(i){i in t&&(e[i]=t[i])}),e},T.defaults=function(t){return k(a.call(arguments,1),function(e){for(var i in e)null==t[i]&&(t[i]=e[i])}),t},T.clone=function(t){return T.isObject(t)?T.isArray(t)?t.slice():T.extend({},t):t},T.tap=function(t,e){return e(t),t},T.isEqual=function(e,i){return t(e,i,[])},T.isEmpty=function(t){if(null==t)return!0;if(T.isArray(t)||T.isString(t))return 0===t.length;for(var e in t)if(T.has(t,e))return!1;return!0},T.isElement=function(t){return!(!t||1!=t.nodeType)},T.isArray=x||function(t){return"[object Array]"==h.call(t)},T.isObject=function(t){return t===Object(t)},T.isArguments=function(t){return"[object Arguments]"==h.call(t)},T.isArguments(arguments)||(T.isArguments=function(t){return!(!t||!T.has(t,"callee"))}),T.isFunction=function(t){return"[object Function]"==h.call(t)},T.isString=function(t){return"[object String]"==h.call(t)},T.isNumber=function(t){return"[object Number]"==h.call(t)},T.isFinite=function(t){return T.isNumber(t)&&isFinite(t)},T.isNaN=function(t){return t!==t},T.isBoolean=function(t){return t===!0||t===!1||"[object Boolean]"==h.call(t)},T.isDate=function(t){return"[object Date]"==h.call(t)},T.isRegExp=function(t){return"[object RegExp]"==h.call(t)},T.isNull=function(t){return null===t},T.isUndefined=function(t){return void 0===t},T.has=function(t,e){return c.call(t,e)},T.noConflict=function(){return e._=i,this},T.identity=function(t){return t},T.times=function(t,e,i){for(var n=0;n<t;n++)e.call(i,n)},T.escape=function(t){return(""+t).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;").replace(/\//g,"&#x2F;")},T.result=function(t,e){if(null==t)return null;var i=t[e];return T.isFunction(i)?i.call(t):i},T.mixin=function(t){k(T.functions(t),function(e){B(e,T[e]=t[e])})};var A=0;T.uniqueId=function(t){var e=A++;return t?t+e:e},T.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var D=/.^/,L={"\\":"\\","'":"'",r:"\r",n:"\n",t:"\t",u2028:"\u2028",u2029:"\u2029"};for(var E in L)L[L[E]]=E;var P=/\\|'|\r|\n|\t|\u2028|\u2029/g,M=/\\(\\|'|r|n|t|u2028|u2029)/g,I=function(t){return t.replace(M,function(t,e){return L[e]})};T.template=function(t,e,i){i=T.defaults(i||{},T.templateSettings);var n="__p+='"+t.replace(P,function(t){return"\\"+L[t]}).replace(i.escape||D,function(t,e){return"'+\n_.escape("+I(e)+")+\n'"}).replace(i.interpolate||D,function(t,e){return"'+\n("+I(e)+")+\n'"}).replace(i.evaluate||D,function(t,e){return"';\n"+I(e)+"\n;__p+='"})+"';\n";i.variable||(n="with(obj||{}){\n"+n+"}\n"),n="var __p='';var print=function(){__p+=Array.prototype.join.call(arguments, '')};\n"+n+"return __p;\n";var r=new Function(i.variable||"obj","_",n);if(e)return r(e,T);var o=function(t){return r.call(this,t,T)};return o.source="function("+(i.variable||"obj")+"){\n"+n+"}",o},T.chain=function(t){return T(t).chain()};var R=function(t){this._wrapped=t};T.prototype=R.prototype;var O=function(t,e){return e?T(t).chain():t},B=function(t,e){R.prototype[t]=function(){var t=a.call(arguments);return l.call(t,this._wrapped),O(e.apply(T,t),this._chain)}};T.mixin(T),k(["pop","push","reverse","shift","sort","splice","unshift"],function(t){var e=r[t];R.prototype[t]=function(){var i=this._wrapped;e.apply(i,arguments);var n=i.length;return"shift"!=t&&"splice"!=t||0!==n||delete i[0],O(i,this._chain)}}),k(["concat","join","slice"],function(t){var e=r[t];R.prototype[t]=function(){return O(e.apply(this._wrapped,arguments),this._chain)}}),R.prototype.chain=function(){return this._chain=!0,this},R.prototype.value=function(){return this._wrapped}}.call(this);$(document).ready(function() {
      $('#bloc-datatables').DataTable({
        "paging": true,
        "lengthChange": true,
        "searching": true,
        "ordering": true,
        "info": true,
        "autoWidth": false,
        "dom":'<"row"<"search col-sm-6"f><"top col-sm-6 text-right"l>>rt<"pull-left"i>p<"clear">',
        language: {
          searchPlaceholder: "Search",
          search: "_INPUT_",
          "lengthMenu": "_MENU_"
        }
      });
    });;(function(){

/**
 * Please note that when passing in custom templates for 
 * listItemTemplate and orderByTemplate to keep the classes as
 * they are used in the code at other locations as well.
 */

var defaults = {
  items              : [{a:2,b:1,c:2},{a:2,b:2,c:1},{a:1,b:1,c:1},{a:3,b:3,c:1}],
  facets             : {'a': 'Title A', 'b': 'Title B', 'c': 'Title C'},
  resultSelector     : '#results',
  facetSelector      : '#facets',
  facetContainer     : '<div class=facetsearch id=<%= id %> ></div>',
  facetTitleTemplate : '<h3 class=facettitle><%= title %></h3>',
  facetListContainer : '<div class=facetlist></div>',
  listItemTemplate   : '<div class=facetitem id="<%= id %>"><%= name %> <span class=facetitemcount>(<%= count %>)</span></div>',
  bottomContainer    : '<div class=bottomline></div>',
  orderByTemplate    : '<div class=orderby><span class="orderby-title">Sort by: </span><ul><% _.each(options, function(value, key) { %>'+
                       '<li class=orderbyitem id=orderby_<%= key %>>'+
                       '<%= value %> </li> <% }); %></ul></div>',
  countTemplate      : '<div class=facettotalcount><%= count %> Results</div>',
  deselectTemplate   : '<a class="deselectstartover btn btn-danger btn-xs">Deselect all filters</a>',
  resultTemplate     : '<div class=facetresultbox><%= name %></div>',
  noResults          : '<div class=results>Sorry, but no items match these criteria</div>',
  orderByOptions     : {'a': 'by A', 'b': 'by B', 'RANDOM': 'by random'},
  state              : {
                         orderBy : false,
                         filters : {}
                       },
  showMoreTemplate   : '<tfoot class=text-center><tr><td colspan=7><span id=showmorebutton><i class="fa fa-spin fa-refresh "></i> Loading more</span></td></tdr</tfoot>',
  enablePagination   : true,
  paginationCount    : 20
}

/**
 * This is the first function / variable that gets exported into the 
 * jQuery namespace. Pass in your own settings (see above) to initialize
 * the faceted search
 */
var settings = {};
jQuery.facetelize = function(usersettings) {
  $.extend(settings, defaults, usersettings);
  settings.currentResults = [];
  settings.facetStore     = {};
  $(settings.facetSelector).data("settings", settings);
  initFacetCount();
  filter();
  order();
  createFacetUI();
  updateResults();
}

/**
 * This is the second function / variable that gets exported into the 
 * jQuery namespace. Use it to update everything if you messed with
 * the settings object
 */
jQuery.facetUpdate = function() {
  filter();
  order();
  updateFacetUI();
  updateResults();
}

/**
 * The following section contains the logic of the faceted search
 */

/**
 * initializes all facets and their individual filters 
 */
function initFacetCount() {
  _.each(settings.facets, function(facettitle, facet) {
    settings.facetStore[facet] = {};
  });
  _.each(settings.items, function(item) {
   // intialize the count to be zero
    _.each(settings.facets, function(facettitle, facet) {
      if ($.isArray(item[facet])) {
        _.each(item[facet], function(facetitem) {
          settings.facetStore[facet][facetitem] = settings.facetStore[facet][facetitem] || {count: 0, id: _.uniqueId(item.analyzer_md5), analyzer: item.analyzer, file: item.file, data_analyzer: item.analyzer_md5, data_file: item.file_md5}
        });
      } else {
        if (item[facet] !== undefined) {
          settings.facetStore[facet][item[facet]] = settings.facetStore[facet][item[facet]] || {count: 0, id: _.uniqueId(item.analyzer_md5), analyzer: item.analyzer, file: item.file, data_analyzer: item.analyzer_md5, data_file: item.file_md5}
        }
      }
    });
  });
  // sort it:
  _.each(settings.facetStore, function(facet, facettitle) {
    var sorted = _.keys(settings.facetStore[facettitle]).sort();
    if (settings.facetSortOption && settings.facetSortOption[facettitle]) {
      sorted = _.union(settings.facetSortOption[facettitle], sorted);
    }
    var sortedstore = {};
    _.each(sorted, function(el) {
      sortedstore[el] = settings.facetStore[facettitle][el];
    });
    settings.facetStore[facettitle] = sortedstore;
  });
}

/**
 * resets the facet count
 */
function resetFacetCount() {
  _.each(settings.facetStore, function(items, facetname) {
    _.each(items, function(value, itemname) {
      settings.facetStore[facetname][itemname].count = 0;
    });
  });
}

/**
 * Filters all items from the settings according to the currently 
 * set filters and stores the results in the settings.currentResults.
 * The number of items in each filter from each facet is also updated
 */
function filter() {
  // first apply the filters to the items
  settings.currentResults = _.select(settings.items, function(item) {
    var filtersApply = true;
    _.each(settings.state.filters, function(filter, facet) {
      if ($.isArray(item[facet])) {
         var inters = _.intersect(item[facet], filter);
         if (inters.length == 0) {
           filtersApply = false;
         }
      } else {
        if (filter.length && _.indexOf(filter, item[facet]) == -1) {
          filtersApply = false;
        }
      }
    });
    return filtersApply;
  });
  // Update the count for each facet and item:
  // intialize the count to be zero
  resetFacetCount();
  // then reduce the items to get the current count for each facet
  _.each(settings.facets, function(facettitle, facet) {
    _.each(settings.currentResults, function(item) {
      if ($.isArray(item[facet])) {
        _.each(item[facet], function(facetitem) {
          settings.facetStore[facet][facetitem].count += 1;
        });
      } else {
        if (item[facet] !== undefined) {
          settings.facetStore[facet][item[facet]].count += 1;
        }
      }
    });
  });
  // remove confusing 0 from facets where a filter has been set
  _.each(settings.state.filters, function(filters, facettitle) {
    _.each(settings.facetStore[facettitle], function(facet) {
      if (facet.count == 0 && settings.state.filters[facettitle].length) facet.count = "+";
    });
  });
  settings.state.shownResults = 0;
}

/**
 * Orders the currentResults according to the settings.state.orderBy variable
 */ 
function order() {
  if (settings.state.orderBy) {
    $(".activeorderby").removeClass("activeorderby");
    $('#orderby_'+settings.state.orderBy).addClass("activeorderby");
    settings.currentResults = _.sortBy(settings.currentResults, function(item) {
      if (settings.state.orderBy == 'RANDOM') {
        return Math.random()*10000;
      } else {
        return item[settings.state.orderBy];
      }
    });
  }
}

/**
 * The given facetname and filtername are activated or deactivated
 * depending on what they were beforehand. This causes the items to
 * be filtered again and the UI is updated accordingly.
 */
function toggleFilter(key, value) {
  settings.state.filters[key] = settings.state.filters[key] || [] ;
  if (_.indexOf(settings.state.filters[key], value) == -1) {
    settings.state.filters[key].push(value);
  } else {
    settings.state.filters[key] = _.without(settings.state.filters[key], value);
    if (settings.state.filters[key].length == 0) {
      delete settings.state.filters[key];
    }
  }
  filter();
}

/**
 * The following section contains the presentation of the faceted search
 */

/**
 * This function is only called once, it creates the facets ui.
 */
function createFacetUI() {
  var itemtemplate  = _.template(settings.listItemTemplate);
  var titletemplate = _.template(settings.facetTitleTemplate);
  var containertemplate = _.template(settings.facetContainer);
  
  $(settings.facetSelector).html("");
  _.each(settings.facets, function(facettitle, facet) {
    var facetHtml     = $(containertemplate({id: facet}));
    var facetItem     = {title: facettitle};
    var facetItemHtml = $(titletemplate(facetItem));

    facetHtml.append(facetItemHtml);
    var facetlist = $(settings.facetListContainer);
    var filteritemsort = [];
    _.each(settings.facetStore[facet], function(filter, filtername){
      var item = {id: filter.id, data_analyzer: filter.data_analyzer, data_file: filter.data_file,  name: filtername, count: filter.count};
      filteritemsort.push(item);
      /*var filteritem  = $(itemtemplate(item));
      if (_.indexOf(settings.state.filters[facet], filtername) >= 0) {
        filteritem.addClass("activefacet");
      }
      facetlist.append(filteritem);*/
    });
    $.each(_.sortBy(filteritemsort, 'count').reverse(), function(key, value){
      var filteritem  = $(itemtemplate(value));
      facetlist.append(filteritem);
    });
    facetHtml.append(facetlist);
    $(settings.facetSelector).append(facetHtml);
  });
  // add the click event handler to each facet item:
  $('.facetitem').click(function(event){
    event.stopPropagation();
    var filter = getFilterById(this.id);
    toggleFilter(filter.facetname, filter.filtername);
    $(settings.facetSelector).trigger("facetedsearchfacetclick", filter);
    order();
    updateFacetUI();
    updateResults();
  });
  // Append total result count
  var bottom = $(settings.bottomContainer);
  countHtml = _.template(settings.countTemplate, {count: settings.currentResults.length});
  $(bottom).append(countHtml);
  // generate the "order by" options:
  var ordertemplate = _.template(settings.orderByTemplate);
  var itemHtml = $(ordertemplate({'options': settings.orderByOptions}));
  $(bottom).append(itemHtml);
  $(settings.facetSelector).append(bottom);
  $('.orderbyitem').each(function(){
    var id = this.id.substr(8);
    if (settings.state.orderBy == id) {
      $(this).addClass("activeorderby");
    }
  });
  // add the click event handler to each "order by" item:
  $('.orderbyitem').click(function(event){
    var id = this.id.substr(8);
    settings.state.orderBy = id;
    $(settings.facetSelector).trigger("facetedsearchorderby", id);
    settings.state.shownResults = 0;
    order();
    updateResults();
  });
  // Append deselect filters button
  var deselect = $(settings.deselectTemplate).click(function(event){
    settings.state.filters = {};
    jQuery.facetUpdate();
  });
  $(bottom).append(deselect);
  $(settings.facetSelector).trigger("facetuicreated");
}

/**
 * get a facetname and filtername by the unique id that is created in the beginning
 */
function getFilterById(id) {
  var result = false;
  _.each(settings.facetStore, function(facet, facetname) {
    _.each(facet, function(filter, filtername){
      if (filter.id == id) {
        result =  {'facetname': facetname, 'filtername': filtername};
      }
    });
  });
  return result;
}

/**
 * This function is only called whenever a filter has been added or removed
 * It adds a class to the active filters and shows the correct number for each
 */
function updateFacetUI() {
  var itemtemplate = _.template(settings.listItemTemplate);
  _.each(settings.facetStore, function(facet, facetname) {
    _.each(facet, function(filter, filtername){
      var item = {id: filter.id, name: filtername, count: filter.count, analyzer: filter.analyzer, file: filter.file, data_analyzer: filter.analyzer_md5, data_file: filter.file_md5};
      var filteritem  = $(itemtemplate(item)).html();
      $("#"+filter.id).html(filteritem);
      if (settings.state.filters[facetname] && _.indexOf(settings.state.filters[facetname], filtername) >= 0) {
        $("#"+filter.id).addClass("activefacet");
      } else {
        $("#"+filter.id).removeClass("activefacet");
      }
    });
  });
  countHtml = _.template(settings.countTemplate, {count: settings.currentResults.length});
  $(settings.facetSelector + ' .facettotalcount').replaceWith(countHtml);
  $('.fa-plus').on('click', function() {
    $(this).parents('tr').next().siblings('.fullcode').slideUp();
    $(this).parents('tr').next().slideToggle();
  });
}

/**
 * Updates the the list of results according to the filters that have been set
 */
function updateResults() {
  $(settings.resultSelector).html(settings.currentResults.length == 0 ? settings.noResults : "");
  showMoreResults();
}

var moreButton;
function showMoreResults() {
  var showNowCount = 
      settings.enablePagination ? 
      Math.min(settings.currentResults.length - settings.state.shownResults, settings.paginationCount) : 
      settings.currentResults.length;
  var itemHtml = "";
  var template = _.template(settings.resultTemplate);
  for (var i = settings.state.shownResults; i < settings.state.shownResults + showNowCount; i++) {
    var item = $.extend(settings.currentResults[i], {
      totalItemNr    : i,
      batchItemNr    : i - settings.state.shownResults,
      batchItemCount : showNowCount
    });
    var itemHtml = itemHtml + template(item);
  }
  $(settings.resultSelector).append(itemHtml);

  $('.fa-plus').on('click', function() {
    $(this).parents('tr').next().siblings('.fullcode').slideUp();
    $(this).parents('tr').next().slideToggle();
  });
  if (!moreButton) {
    moreButton = $(window).scroll(function() {
      if($(window).scrollTop() == $(document).height() - $(window).height()) {
        showMoreResults();
      }
    });
    /*$(settings.resultSelector).after($(settings.showMoreTemplate));*/
  }
  if (settings.state.shownResults == 0) {
    moreButton.show();
  }
  settings.state.shownResults += showNowCount;
  if (settings.state.shownResults >= settings.currentResults.length) {
    $(settings.showMoreTemplate).hide();
  }
  $(settings.resultSelector).trigger("facetedsearchresultupdate");
}

})();
    $(document).ready(function() {
      Morris.Donut({
        element: 'donut-chart_issues',
        resize: true,
        colors: ["#3c8dbc", "#f56954", "#00a65a", "#1424b8"],
        data: [
          {label: "Minor", value: 133},
          {label: "None", value: 129},
          {label: "Major", value: 129},
          {label: "Critical", value: 2}
        ]
      });
      Morris.Donut({
        element: 'donut-chart_severity',
        resize: true,
        colors: ["#3c8dbc", "#f56954", "#00a65a", "#1424b8"],
        data: [
          {label: "Download Sales", value: 12},
          {label: "In-Store Sales", value: 30},
          {label: "Mail-Order Sales", value: 20}
        ]
      });
      Highcharts.theme = {
         colors: ["#F56954", "#f7a35c", "#ffea6f", "#D2D6DE"],
         chart: {
            backgroundColor: null,
            style: {
               fontFamily: "Dosis, sans-serif"
            }
         },
         title: {
            style: {
               fontSize: '16px',
               fontWeight: 'bold',
               textTransform: 'uppercase'
            }
         },
         tooltip: {
            borderWidth: 0,
            backgroundColor: 'rgba(219,219,216,0.8)',
            shadow: false
         },
         legend: {
            itemStyle: {
               fontWeight: 'bold',
               fontSize: '13px'
            }
         },
         xAxis: {
            gridLineWidth: 1,
            labels: {
               style: {
                  fontSize: '12px'
               }
            }
         },
         yAxis: {
            minorTickInterval: 'auto',
            title: {
               style: {
                  textTransform: 'uppercase'
               }
            },
            labels: {
               style: {
                  fontSize: '12px'
               }
            }
         },
         plotOptions: {
            candlestick: {
               lineColor: '#404048'
            }
         },


         // General
         background2: '#F0F0EA'
      };

      // Apply the theme
      Highcharts.setOptions(Highcharts.theme);

      $('#filename').highcharts({
          credits: {
            enabled: false
          },

          exporting: {
            enabled: false
          },

          chart: {
              type: 'column'
          },
          title: {
              text: ''
          },
          xAxis: {
              categories: ['Apples', 'Oranges', 'Pears', 'Grapes', 'Bananas', 'Peanapple', 'Strawberry', 'Sugar', 'Salt', 'Rice', 'whatever']
          },
          yAxis: {
              min: 0,
              title: {
                  text: ''
              },
              stackLabels: {
                  enabled: false,
                  style: {
                      fontWeight: 'bold',
                      color: (Highcharts.theme && Highcharts.theme.textColor) || 'gray'
                  }
              }
          },
          legend: {
              align: 'right',
              x: 0,
              verticalAlign: 'top',
              y: -10,
              floating: false,
              backgroundColor: (Highcharts.theme && Highcharts.theme.background2) || 'white',
              borderColor: '#CCC',
              borderWidth: 1,
              shadow: false
          },
          tooltip: {
              headerFormat: '<b>{point.x}</b><br/>',
              pointFormat: '{series.name}: {point.y}<br/>Total: {point.stackTotal}'
          },
          plotOptions: {
              column: {
                  stacking: 'normal',
                  dataLabels: {
                      enabled: false,
                      color: (Highcharts.theme && Highcharts.theme.dataLabelsColor) || 'white',
                      style: {
                          textShadow: '0 0 3px black'
                      }
                  }
              }
          },
          series: [{
              name: 'Critical',
              data: [5, 3, 4, 7, 2, 5, 3, 4, 7, 2, 9]
          }, {
              name: 'Major',
              data: [2, 2, 3, 2, 1, 5, 3, 4, 7, 2, 9]
          }, {
              name: 'Minor',
              data: [3, 4, 4, 2, 5, 5, 3, 4, 7, 2, 9]
          }, {
              name: 'none',
              data: [3, 4, 4, 2, 5, 5, 3, 4, 7, 2, 9]
          }]
      });

      $('#container').highcharts({
          credits: {
            enabled: false
          },

          exporting: {
            enabled: false
          },

          chart: {
              type: 'column'
          },
          title: {
              text: ''
          },
          xAxis: {
              categories: ['Apples', 'Oranges', 'Pears', 'Grapes', 'Bananas', 'Peanapple', 'Strawberry', 'Sugar', 'Salt', 'Rice', 'whatever']
          },
          yAxis: {
              min: 0,
              title: {
                  text: ''
              },
              stackLabels: {
                  enabled: false,
                  style: {
                      fontWeight: 'bold',
                      color: (Highcharts.theme && Highcharts.theme.textColor) || 'gray'
                  }
              }
          },
          legend: {
              align: 'right',
              x: 0,
              verticalAlign: 'top',
              y: -10,
              floating: false,
              backgroundColor: (Highcharts.theme && Highcharts.theme.background2) || 'white',
              borderColor: '#CCC',
              borderWidth: 1,
              shadow: false
          },
          tooltip: {
              headerFormat: '<b>{point.x}</b><br/>',
              pointFormat: '{series.name}: {point.y}<br/>Total: {point.stackTotal}'
          },
          plotOptions: {
              column: {
                  stacking: 'normal',
                  dataLabels: {
                      enabled: false,
                      color: (Highcharts.theme && Highcharts.theme.dataLabelsColor) || 'white',
                      style: {
                          textShadow: '0 0 3px black'
                      }
                  }
              }
          },
          series: [{
              name: 'Critical',
              data: [5, 3, 4, 7, 2, 5, 3, 4, 7, 2, 9]
          }, {
              name: 'Major',
              data: [2, 2, 3, 2, 1, 5, 3, 4, 7, 2, 9]
          }, {
              name: 'Minor',
              data: [3, 4, 4, 2, 5, 5, 3, 4, 7, 2, 9]
          }, {
              name: 'none',
              data: [3, 4, 4, 2, 5, 5, 3, 4, 7, 2, 9]
          }]
      });
    });        <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          Performances issues
        </h1>
        </section>

        <!-- Main content -->
        <section class="content" id="issues">

        	<div class="box">
        		<div class="box-body">
        			<div id="facets" class="filter clearfix"></div>
        			<table class="table table-striped">
                   		<thead>
                   			<tr>
                   				<th>Analysis</th>
                   				<th>File</th>
                   				<th>Code</th>
                          <th></th>
                   				<th>Severity</th>
                   				<th>Time To Fix</th>
                   				<th>Recipe</th>
                   			</tr>
                   		</thead>
                   		<tbody id="results">
                   		</tbody>
                   	</table>
        		</div>
        	</div>

        </section>
        <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          Similar looking variables
        </h1>
        </section>

        <!-- Main content -->
        <section id="used_settings" class="content">
        	<div class="box">
        		<div class="box-body">
        			<div class="row">
        				<div class="col-xs-12">
        					<p class="textLead">This is the list of similar looking variables, found across the application.</p>
        					<table class="table table-striped">
        						<tr></tr>
        						<tr><th>Variable</th><th>Variables</th><th>Reason</th></tr>
        						{{CONTENT}}
        					</table>
            		</div>
        			</div>
        		</div>
        	</div>
        </section>
        <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          Altered directives
        </h1>
        </section>

        <!-- Main content -->
        <section id="used_settings" class="content">
        	<div class="box">
        		<div class="box-body">
        			<div class="row">
        				<div class="col-xs-12">
        					<p class="textLead">This is an overview of the directives that are modified or read inside the application's code.</p>
        					<table class="table table-striped">
        						<tr></tr>
        						<tr><th>Alteration</th><th>File</th><th>Line</th></tr>
        						{{ALTERED_DIRECTIVES}}
        					</table>
            		</div>
        			</div>
        		</div>
        	</div>
        </section>
        <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          {{TITLE}}
        </h1>
        </section>

        <!-- Main content -->
        <section id="used_settings" class="content">
        	<div class="box">
        		<div class="box-body">
        			<div class="row">
        				<div class="col-xs-12">
        					<table class="table table-striped">
        						<tr></tr>
        						<tr><th>Version</th><th>Count</th></tr>
        						{{COMPILATIONS}}
        					</table>
            		</div>
        			</div>
        		</div>
        	</div>
        </section>
        <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          External libraries
        </h1>
        </section>

        <!-- Main content -->
        <section id="used_settings" class="content">
        	<div class="box">
        		<div class="box-body">
        			<div class="row">
        				<div class="col-xs-12">
        					<p class="textLead">This is the list of external libraries that were found while analyzing this repository. Those libraries are often big and shouldn't be analyzed with your code, so they were omitted automatically (configuration was added to config.ini).</p>
        					<table class="table table-striped">
        						<tr></tr>
        						<tr><th>Library</th><th>Folder/File</th><th>Home page</th></tr>
        						{{LIBRARIES}}
        					</table>
            		</div>
        			</div>
        		</div>
        	</div>
        </section>
        <!-- Main content -->
        <section class="content" id="dashboard">

          <div class="row">
            <div class="col-md-12">
              <div class="box">
                <div class="box-header with-border">
                  <h3 class="box-title">Method parameter counts</h3>
                </div>
                <div class="box-body chart-responsive">
                  <div class="chart" id="filename"></div>
                  <div class="clearfix">
                    <div class="block-cell-name bold">Number of parameters</div>
                    <div class="block-cell-issue bold text-center">Count</div>
                  </div>
                  {{TOPFILE}}
                </div>
              </div>
            </div>
          </div>
        </section>
        <!-- Main content -->
        <section class="content" id="dashboard">

          <div class="row">
            <div class="col-md-12">
              <div class="box">
                <div class="box-header with-border">
                  <h3 class="box-title">Changed Classes</h3>
                </div>
                <div class="box-body chart-responsive">
                  <div class="chart" id="filename"></div>
                  <table>
                    <tr>
                      <th>Class</th>
                      <th>Constant / Property / Method</th>
                    </tr>
                  {{CHANGED_CLASSES}}
                  </table>
                </div>
              </div>
            </div>
          </div>
        </section>
        <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          Level 3
        </h1>
        </section>

        <!-- Main content -->
        <section class="content" id="issues">

        	<div class="box">
        		<div class="box-body">
This is the Level 3 issues, found in your code. 
You should tackle those issues once <a href="data/level2.html">Level 2</a> are done. 
{{TOTAL}} issues were found.
        			<div id="facets" class="filter clearfix"></div>
        			<table class="table table-striped">
                   		<thead>
                   			<tr>
                   				<th>Analysis</th>
                   				<th>File</th>
                   				<th>Code</th>
                          <th></th>
                   				<th>Severity</th>
                   				<th>Time To Fix</th>
                   				<th>Recipe</th>
                   			</tr>
                   		</thead>
                   		<tbody id="results">
                   		</tbody>
                   	</table>
        		</div>
        	</div>

        </section>
        <!-- Content Header (Page header) -->
        <section class="content-header">
          <h1>
            {{TITLE}}
          </h1>
        </section>

        <!-- Main content -->
        <section id="analysers" class="content">
          <div class="row">
            <div class="col-xs-12">
              <div class="box">
                <div class="box-body">
                  <table id="bloc-datatables" class="table table-bordered table-striped">
                    <thead>
                      <tr>
                        <th>Label</th>
                        <th>Recipes</th>
                        <th>Issues</th>
                        <th>Files</th>
                        <th>Severity</th>
                        <th>Frequence</th>
                      </tr>
                    </thead>
                    <tbody>
                     {{BLOC-ANALYZERS}}
                    </tbody>
                  </table>
                </div><!-- /.box-body -->
              </div><!-- /.box -->
            </div>
          </div>
        </section>    		<!-- Content Header (Page header) -->
    		<section class="content-header">
    		<h1>
              {{TITLE}}
    		</h1>
    		</section>

    		<!-- Main content -->
    		<section id="used_settings" class="content">
    			<div class="box">
    				<div class="box-body">
    					<div class="row">
    						<div class="col-xs-12">
        							<p class="textLead">This is the tailored ruleset, build with the analysis that returned results with this audit.</p>
        							<p>You may use this configuration in a future project, or a new one, by adding it to config/rulesets.ini files, with a name. </p>
                                    <textarea id="ini_config" rows=20 cols=100 style="font-family:Inconsolata">{{RULESET}}</textarea>
                                    <p><button class="copy_button" data-clipboard-target="#ini_config">Cut to clipboard</button></p>
    		    		    </div>
    					</div>
    				</div>
    			</div>
    		</section>
        <!-- Main content -->
        <section class="content" id="dashboard">

          <div class="row">
            <div class="col-md-12">
              <div class="box">
                  {{AUDIT_DATE}}
              </div>
            </div>

            <div class="col-md-6">
              {{BLOCHASHDATA}}
            </div>

            <div class="col-md-6">
              {{BLOCKBYWEEK}}
            </div>

          </div>

          <div class="row">
            <div class="col-md-6">
              <div class="box">
                <div class="box-header with-border">
                  <h3 class="box-title">Filename Overview</h3>
                </div>
                <div class="box-body chart-responsive">
                  <div class="chart" id="filename"></div>
                  <div class="clearfix">
                    <div class="block-cell-name bold">TOP 10 Filename</div>
                    <div class="block-cell-issue bold text-center">Issues</div>
                  </div>
                  {{TOPFILE}}
                </div>
              </div>
            </div>

            <div class="col-md-6">
              <div class="box">
                <div class="box-header with-border">
                  <h3 class="box-title">Analyses Overview</h3>
                </div>
                <div class="box-body chart-responsive">
                  <div class="chart" id="container"></div>
                  <div class="clearfix">
                    <div class="block-cell-name bold">TOP 10 Analyser</div>
                    <div class="block-cell-issue bold text-center">Issues</div>
                  </div>
                  {{TOPANALYZER}}
                </div>
              </div>
            </div>
          </div>
        </section>
        <!-- Main content -->
        <section class="content" id="dashboard">

          <div class="row">
            <div class="col-md-12">
              <div class="box">
                <div class="box-header with-border">
                  <h3 class="box-title">{{TYPE}} Size</h3>
                </div>
                <div class="box-body chart-responsive">
                  <div class="chart" id="filename"></div>
                  <div class="clearfix">
                    <div class="block-cell-name bold">{{TYPE}}</div>
                    <div class="block-cell-issue bold text-center">Size</div>
                  </div>
                  {{TOPFILE}}
                </div>
              </div>
            </div>
          </div>
        </section>
        <!-- Sidebar Menu -->
        <ul class="sidebar-menu">
          <li class="header">&nbsp;</li>
          <!-- Optionally, you can add icons to the links -->
          <li class="active"><a href="index.html"><i class="fa fa-dashboard"></i> <span>Dashboard</span></a></li>
          <li><a href="compatibility_compilations.html"><i class="fa fa-circle-o"></i>Compilations</a></li>
          <li><a href="compatibility_shopware.html"><i class="fa fa-circle-o"></i>Compatibility Shopware</a></li>
          <li><a href="compatibility_issues.html"><i class="fa fa-circle-o"></i>Compatibility Issues</a></li>
          <li><a href="suggestions.html"><i class="fa fa-circle-o"></i>Suggestions</a></li>
          <li><a href="security_issues.html"><i class="fa fa-circle-o"></i>Security</a></li>
          <li class="treeview">
            <a href="#"><i class="fa fa-sticky-note-o"></i> <span>Annexes</span><i class="fa fa-angle-left pull-right"></i></a>
            <ul class="treeview-menu">
              <li><a href="annex_settings.html"><i class="fa fa-circle-o"></i>Analyses Settings</a></li>
              <li><a href="proc_files.html"><i class="fa fa-circle-o"></i>Processed Files</a></li>
              <li><a href="proc_analyses.html"><i class="fa fa-circle-o"></i>Processed Analyses</a></li>
              <li><a href="analyses_doc.html"><i class="fa fa-circle-o"></i>Analyses Documentation</a></li>
              <li><a href="codes.html"><i class="fa fa-circle-o"></i>Codes</a></li>
              <li><a href="credits.html"><i class="fa fa-circle-o"></i>Credits</a></li>
            </ul>
          </li>
        </ul>
        <!-- /.sidebar-menu --># robotstxt.org/

User-agent: * 
Disallow:
        <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          Credits
        </h1>
        </section>

        <!-- Main content -->
        <section id="used_settings" class="content">
        	<div class="box">
        		<div class="box-body">
        			<div class="row">
        				<div class="col-xs-12">
        					<p>This report has been build, thanks to the following other Open Source projects.</p>
          				<div class="about-inner">
            				<h3 class="page-header">AdminLTE</h3>
            				<p>By the adminLTE team : Open-source admin theme for you.</p>
            				<p>Homepage - <a href="https://almsaeedstudio.com/" target="_blank">https://almsaeedstudio.com/</a></p>
            				<h3 class="page-header">jQuery</h3>
            				<p>By the jQuery Foundation</p>
            				<p>Homepage - <a href="http://jquery.com/" target="_blank">http://jquery.com/</a><p>
            				<p>Twitter - <a href="https://twitter.com/jQuery" target="_blank">https://twitter.com/jQuery</a></p>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </section>
    		<!-- Content Header (Page header) -->
    		<section class="content-header">
    		<h1>
    		  {{TITLE}}
    		</h1>
    		</section>

    		<!-- Main content -->
    		<section id="used_settings" class="content">
    			<div class="box">
    				<div class="box-body">
    					<div class="row">
    						<div class="col-xs-12">
    							<p class="textLead">This is the list of analyses that were run. Those that doesn't have result will not be listed in the 'Analyses' section.<br>
    							<br />
    							This may be due to PHP version or PHP configuration incompatibilities.</p>
    							<table class="table table-striped">
    								<tr></tr>
    								<tr><th>Analysis</th>
    								    <th>Code</th>
    								</tr>
    								{{ANALYZERS}}
    								</tr>
    							</table>
    		    		    </div>
    					</div>
    				</div>
    			</div>
    		</section>

    		<section class="content-header">
    		<h1>
    		  Concentrated issues
    		</h1>
    		</section>

    		<!-- Main content -->
    		<section id="files_overview" class="content">
    			<div class="row">
    				<div class="col-xs-12">
    				    <p>
Here is the list of the lines that generated the most issues.
    				    </p>
    					<div class="box">
    				    <div class="box-body">
    				      <table id="bloc-datatables" class="table table-bordered table-striped">
    				        <thead>
    				          <tr>
    				            <th>File</th>
    				            <th>Count</th>
    				            <th>Analysis</th>
    				          </tr>
    				        </thead>
    				        <tbody>
                    {{BLOC-EXPRESSIONS}}
    				        </tbody>
    				      </table>
    				    </div><!-- /.box-body -->
    				  </div><!-- /.box -->
    				</div>
    			</div>
    		</section>
    		<!-- /.content -->

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata></metadata>
<defs>
<font id="fontawesomeregular" horiz-adv-x="1536" >
<font-face units-per-em="1792" ascent="1536" descent="-256" />
<missing-glyph horiz-adv-x="448" />
<glyph unicode=" "  horiz-adv-x="448" />
<glyph unicode="&#x09;" horiz-adv-x="448" />
<glyph unicode="&#xa0;" horiz-adv-x="448" />
<glyph unicode="&#xa8;" horiz-adv-x="1792" />
<glyph unicode="&#xa9;" horiz-adv-x="1792" />
<glyph unicode="&#xae;" horiz-adv-x="1792" />
<glyph unicode="&#xb4;" horiz-adv-x="1792" />
<glyph unicode="&#xc6;" horiz-adv-x="1792" />
<glyph unicode="&#xd8;" horiz-adv-x="1792" />
<glyph unicode="&#x2000;" horiz-adv-x="768" />
<glyph unicode="&#x2001;" horiz-adv-x="1537" />
<glyph unicode="&#x2002;" horiz-adv-x="768" />
<glyph unicode="&#x2003;" horiz-adv-x="1537" />
<glyph unicode="&#x2004;" horiz-adv-x="512" />
<glyph unicode="&#x2005;" horiz-adv-x="384" />
<glyph unicode="&#x2006;" horiz-adv-x="256" />
<glyph unicode="&#x2007;" horiz-adv-x="256" />
<glyph unicode="&#x2008;" horiz-adv-x="192" />
<glyph unicode="&#x2009;" horiz-adv-x="307" />
<glyph unicode="&#x200a;" horiz-adv-x="85" />
<glyph unicode="&#x202f;" horiz-adv-x="307" />
<glyph unicode="&#x205f;" horiz-adv-x="384" />
<glyph unicode="&#x2122;" horiz-adv-x="1792" />
<glyph unicode="&#x221e;" horiz-adv-x="1792" />
<glyph unicode="&#x2260;" horiz-adv-x="1792" />
<glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" />
<glyph unicode="&#xf000;" horiz-adv-x="1792" d="M1699 1350q0 -35 -43 -78l-632 -632v-768h320q26 0 45 -19t19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45t45 19h320v768l-632 632q-43 43 -43 78q0 23 18 36.5t38 17.5t43 4h1408q23 0 43 -4t38 -17.5t18 -36.5z" />
<glyph unicode="&#xf001;" d="M1536 1312v-1120q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v537l-768 -237v-709q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89 t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v967q0 31 19 56.5t49 35.5l832 256q12 4 28 4q40 0 68 -28t28 -68z" />
<glyph unicode="&#xf002;" horiz-adv-x="1664" d="M1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -52 -38 -90t-90 -38q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5 t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" />
<glyph unicode="&#xf003;" horiz-adv-x="1792" d="M1664 32v768q-32 -36 -69 -66q-268 -206 -426 -338q-51 -43 -83 -67t-86.5 -48.5t-102.5 -24.5h-1h-1q-48 0 -102.5 24.5t-86.5 48.5t-83 67q-158 132 -426 338q-37 30 -69 66v-768q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1664 1083v11v13.5t-0.5 13 t-3 12.5t-5.5 9t-9 7.5t-14 2.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5q0 -168 147 -284q193 -152 401 -317q6 -5 35 -29.5t46 -37.5t44.5 -31.5t50.5 -27.5t43 -9h1h1q20 0 43 9t50.5 27.5t44.5 31.5t46 37.5t35 29.5q208 165 401 317q54 43 100.5 115.5t46.5 131.5z M1792 1120v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" />
<glyph unicode="&#xf004;" horiz-adv-x="1792" d="M896 -128q-26 0 -44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124t127 -344q0 -221 -229 -450l-623 -600 q-18 -18 -44 -18z" />
<glyph unicode="&#xf005;" horiz-adv-x="1664" d="M1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -21 -10.5 -35.5t-30.5 -14.5q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455 l502 -73q56 -9 56 -46z" />
<glyph unicode="&#xf006;" horiz-adv-x="1664" d="M1137 532l306 297l-422 62l-189 382l-189 -382l-422 -62l306 -297l-73 -421l378 199l377 -199zM1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -50 -41 -50q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500 l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455l502 -73q56 -9 56 -46z" />
<glyph unicode="&#xf007;" horiz-adv-x="1408" d="M1408 131q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q9 0 42 -21.5t74.5 -48t108 -48t133.5 -21.5t133.5 21.5t108 48t74.5 48t42 21.5q61 0 111.5 -20t85.5 -53.5t62 -81 t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" />
<glyph unicode="&#xf008;" horiz-adv-x="1920" d="M384 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 320v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 704v128q0 26 -19 45t-45 19h-128 q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 -64v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM384 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45 t45 -19h128q26 0 45 19t19 45zM1792 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 704v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1792 320v128 q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 704v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19 t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1920 1248v-1344q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1344q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
<glyph unicode="&#xf009;" horiz-adv-x="1664" d="M768 512v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM768 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 512v-384q0 -52 -38 -90t-90 -38 h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" />
<glyph unicode="&#xf00a;" horiz-adv-x="1792" d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 288v-192q0 -40 -28 -68t-68 -28h-320 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28 h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192 q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68z" />
<glyph unicode="&#xf00b;" horiz-adv-x="1792" d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-960 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28 h960q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68z" />
<glyph unicode="&#xf00c;" horiz-adv-x="1792" d="M1671 970q0 -40 -28 -68l-724 -724l-136 -136q-28 -28 -68 -28t-68 28l-136 136l-362 362q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -295l656 657q28 28 68 28t68 -28l136 -136q28 -28 28 -68z" />
<glyph unicode="&#xf00d;" horiz-adv-x="1408" d="M1298 214q0 -40 -28 -68l-136 -136q-28 -28 -68 -28t-68 28l-294 294l-294 -294q-28 -28 -68 -28t-68 28l-136 136q-28 28 -28 68t28 68l294 294l-294 294q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -294l294 294q28 28 68 28t68 -28l136 -136q28 -28 28 -68 t-28 -68l-294 -294l294 -294q28 -28 28 -68z" />
<glyph unicode="&#xf00e;" horiz-adv-x="1664" d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-224q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v224h-224q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h224v224q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-224h224 q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5 t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" />
<glyph unicode="&#xf010;" horiz-adv-x="1664" d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-576q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h576q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5z M1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z " />
<glyph unicode="&#xf011;" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61t-298 61t-245 164t-164 245t-61 298q0 182 80.5 343t226.5 270q43 32 95.5 25t83.5 -50q32 -42 24.5 -94.5t-49.5 -84.5q-98 -74 -151.5 -181t-53.5 -228q0 -104 40.5 -198.5t109.5 -163.5t163.5 -109.5 t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5q0 121 -53.5 228t-151.5 181q-42 32 -49.5 84.5t24.5 94.5q31 43 84 50t95 -25q146 -109 226.5 -270t80.5 -343zM896 1408v-640q0 -52 -38 -90t-90 -38t-90 38t-38 90v640q0 52 38 90t90 38t90 -38t38 -90z" />
<glyph unicode="&#xf012;" horiz-adv-x="1792" d="M256 96v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 224v-320q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1024 480v-576q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23 v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1408 864v-960q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 1376v-1472q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1472q0 14 9 23t23 9h192q14 0 23 -9t9 -23z" />
<glyph unicode="&#xf013;" d="M1024 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1536 749v-222q0 -12 -8 -23t-20 -13l-185 -28q-19 -54 -39 -91q35 -50 107 -138q10 -12 10 -25t-9 -23q-27 -37 -99 -108t-94 -71q-12 0 -26 9l-138 108q-44 -23 -91 -38 q-16 -136 -29 -186q-7 -28 -36 -28h-222q-14 0 -24.5 8.5t-11.5 21.5l-28 184q-49 16 -90 37l-141 -107q-10 -9 -25 -9q-14 0 -25 11q-126 114 -165 168q-7 10 -7 23q0 12 8 23q15 21 51 66.5t54 70.5q-27 50 -41 99l-183 27q-13 2 -21 12.5t-8 23.5v222q0 12 8 23t19 13 l186 28q14 46 39 92q-40 57 -107 138q-10 12 -10 24q0 10 9 23q26 36 98.5 107.5t94.5 71.5q13 0 26 -10l138 -107q44 23 91 38q16 136 29 186q7 28 36 28h222q14 0 24.5 -8.5t11.5 -21.5l28 -184q49 -16 90 -37l142 107q9 9 24 9q13 0 25 -10q129 -119 165 -170q7 -8 7 -22 q0 -12 -8 -23q-15 -21 -51 -66.5t-54 -70.5q26 -50 41 -98l183 -28q13 -2 21 -12.5t8 -23.5z" />
<glyph unicode="&#xf014;" horiz-adv-x="1408" d="M512 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM768 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1024 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576 q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1152 76v948h-896v-948q0 -22 7 -40.5t14.5 -27t10.5 -8.5h832q3 0 10.5 8.5t14.5 27t7 40.5zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832 q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h309l70 167q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23z" />
<glyph unicode="&#xf015;" horiz-adv-x="1664" d="M1408 544v-480q0 -26 -19 -45t-45 -19h-384v384h-256v-384h-384q-26 0 -45 19t-19 45v480q0 1 0.5 3t0.5 3l575 474l575 -474q1 -2 1 -6zM1631 613l-62 -74q-8 -9 -21 -11h-3q-13 0 -21 7l-692 577l-692 -577q-12 -8 -24 -7q-13 2 -21 11l-62 74q-8 10 -7 23.5t11 21.5 l719 599q32 26 76 26t76 -26l244 -204v195q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-408l219 -182q10 -8 11 -21.5t-7 -23.5z" />
<glyph unicode="&#xf016;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z " />
<glyph unicode="&#xf017;" d="M896 992v-448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf018;" horiz-adv-x="1920" d="M1111 540v4l-24 320q-1 13 -11 22.5t-23 9.5h-186q-13 0 -23 -9.5t-11 -22.5l-24 -320v-4q-1 -12 8 -20t21 -8h244q12 0 21 8t8 20zM1870 73q0 -73 -46 -73h-704q13 0 22 9.5t8 22.5l-20 256q-1 13 -11 22.5t-23 9.5h-272q-13 0 -23 -9.5t-11 -22.5l-20 -256 q-1 -13 8 -22.5t22 -9.5h-704q-46 0 -46 73q0 54 26 116l417 1044q8 19 26 33t38 14h339q-13 0 -23 -9.5t-11 -22.5l-15 -192q-1 -14 8 -23t22 -9h166q13 0 22 9t8 23l-15 192q-1 13 -11 22.5t-23 9.5h339q20 0 38 -14t26 -33l417 -1044q26 -62 26 -116z" />
<glyph unicode="&#xf019;" horiz-adv-x="1664" d="M1280 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 416v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h465l135 -136 q58 -56 136 -56t136 56l136 136h464q40 0 68 -28t28 -68zM1339 985q17 -41 -14 -70l-448 -448q-18 -19 -45 -19t-45 19l-448 448q-31 29 -14 70q17 39 59 39h256v448q0 26 19 45t45 19h256q26 0 45 -19t19 -45v-448h256q42 0 59 -39z" />
<glyph unicode="&#xf01a;" d="M1120 608q0 -12 -10 -24l-319 -319q-11 -9 -23 -9t-23 9l-320 320q-15 16 -7 35q8 20 30 20h192v352q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-352h192q14 0 23 -9t9 -23zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273 t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf01b;" d="M1118 660q-8 -20 -30 -20h-192v-352q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v352h-192q-14 0 -23 9t-9 23q0 12 10 24l319 319q11 9 23 9t23 -9l320 -320q15 -16 7 -35zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198 t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf01c;" d="M1023 576h316q-1 3 -2.5 8t-2.5 8l-212 496h-708l-212 -496q-1 -2 -2.5 -8t-2.5 -8h316l95 -192h320zM1536 546v-482q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v482q0 62 25 123l238 552q10 25 36.5 42t52.5 17h832q26 0 52.5 -17t36.5 -42l238 -552 q25 -61 25 -123z" />
<glyph unicode="&#xf01d;" d="M1184 640q0 -37 -32 -55l-544 -320q-15 -9 -32 -9q-16 0 -32 8q-32 19 -32 56v640q0 37 32 56q33 18 64 -1l544 -320q32 -18 32 -55zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf01e;" d="M1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l138 138q-148 137 -349 137q-104 0 -198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5q119 0 225 52t179 147q7 10 23 12q14 0 25 -9 l137 -138q9 -8 9.5 -20.5t-7.5 -22.5q-109 -132 -264 -204.5t-327 -72.5q-156 0 -298 61t-245 164t-164 245t-61 298t61 298t164 245t245 164t298 61q147 0 284.5 -55.5t244.5 -156.5l130 129q29 31 70 14q39 -17 39 -59z" />
<glyph unicode="&#xf021;" d="M1511 480q0 -5 -1 -7q-64 -268 -268 -434.5t-478 -166.5q-146 0 -282.5 55t-243.5 157l-129 -129q-19 -19 -45 -19t-45 19t-19 45v448q0 26 19 45t45 19h448q26 0 45 -19t19 -45t-19 -45l-137 -137q71 -66 161 -102t187 -36q134 0 250 65t186 179q11 17 53 117 q8 23 30 23h192q13 0 22.5 -9.5t9.5 -22.5zM1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-26 0 -45 19t-19 45t19 45l138 138q-148 137 -349 137q-134 0 -250 -65t-186 -179q-11 -17 -53 -117q-8 -23 -30 -23h-199q-13 0 -22.5 9.5t-9.5 22.5v7q65 268 270 434.5t480 166.5 q146 0 284 -55.5t245 -156.5l130 129q19 19 45 19t45 -19t19 -45z" />
<glyph unicode="&#xf022;" horiz-adv-x="1792" d="M384 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M384 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1536 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5z M1536 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5zM1536 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5 t9.5 -22.5zM1664 160v832q0 13 -9.5 22.5t-22.5 9.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1792 1248v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47 t47 -113z" />
<glyph unicode="&#xf023;" horiz-adv-x="1152" d="M320 768h512v192q0 106 -75 181t-181 75t-181 -75t-75 -181v-192zM1152 672v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v192q0 184 132 316t316 132t316 -132t132 -316v-192h32q40 0 68 -28t28 -68z" />
<glyph unicode="&#xf024;" horiz-adv-x="1792" d="M320 1280q0 -72 -64 -110v-1266q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v1266q-64 38 -64 110q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -25 -12.5 -38.5t-39.5 -27.5q-215 -116 -369 -116q-61 0 -123.5 22t-108.5 48 t-115.5 48t-142.5 22q-192 0 -464 -146q-17 -9 -33 -9q-26 0 -45 19t-19 45v742q0 32 31 55q21 14 79 43q236 120 421 120q107 0 200 -29t219 -88q38 -19 88 -19q54 0 117.5 21t110 47t88 47t54.5 21q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf025;" horiz-adv-x="1664" d="M1664 650q0 -166 -60 -314l-20 -49l-185 -33q-22 -83 -90.5 -136.5t-156.5 -53.5v-32q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-32q71 0 130 -35.5t93 -95.5l68 12q29 95 29 193q0 148 -88 279t-236.5 209t-315.5 78 t-315.5 -78t-236.5 -209t-88 -279q0 -98 29 -193l68 -12q34 60 93 95.5t130 35.5v32q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v32q-88 0 -156.5 53.5t-90.5 136.5l-185 33l-20 49q-60 148 -60 314q0 151 67 291t179 242.5 t266 163.5t320 61t320 -61t266 -163.5t179 -242.5t67 -291z" />
<glyph unicode="&#xf026;" horiz-adv-x="768" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45z" />
<glyph unicode="&#xf027;" horiz-adv-x="1152" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 35.5 t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142z" />
<glyph unicode="&#xf028;" horiz-adv-x="1664" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 35.5 t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142zM1408 640q0 -153 -85 -282.5t-225 -188.5q-13 -5 -25 -5q-27 0 -46 19t-19 45q0 39 39 59q56 29 76 44q74 54 115.5 135.5t41.5 173.5t-41.5 173.5 t-115.5 135.5q-20 15 -76 44q-39 20 -39 59q0 26 19 45t45 19q13 0 26 -5q140 -59 225 -188.5t85 -282.5zM1664 640q0 -230 -127 -422.5t-338 -283.5q-13 -5 -26 -5q-26 0 -45 19t-19 45q0 36 39 59q7 4 22.5 10.5t22.5 10.5q46 25 82 51q123 91 192 227t69 289t-69 289 t-192 227q-36 26 -82 51q-7 4 -22.5 10.5t-22.5 10.5q-39 23 -39 59q0 26 19 45t45 19q13 0 26 -5q211 -91 338 -283.5t127 -422.5z" />
<glyph unicode="&#xf029;" horiz-adv-x="1408" d="M384 384v-128h-128v128h128zM384 1152v-128h-128v128h128zM1152 1152v-128h-128v128h128zM128 129h384v383h-384v-383zM128 896h384v384h-384v-384zM896 896h384v384h-384v-384zM640 640v-640h-640v640h640zM1152 128v-128h-128v128h128zM1408 128v-128h-128v128h128z M1408 640v-384h-384v128h-128v-384h-128v640h384v-128h128v128h128zM640 1408v-640h-640v640h640zM1408 1408v-640h-640v640h640z" />
<glyph unicode="&#xf02a;" horiz-adv-x="1792" d="M63 0h-63v1408h63v-1408zM126 1h-32v1407h32v-1407zM220 1h-31v1407h31v-1407zM377 1h-31v1407h31v-1407zM534 1h-62v1407h62v-1407zM660 1h-31v1407h31v-1407zM723 1h-31v1407h31v-1407zM786 1h-31v1407h31v-1407zM943 1h-63v1407h63v-1407zM1100 1h-63v1407h63v-1407z M1226 1h-63v1407h63v-1407zM1352 1h-63v1407h63v-1407zM1446 1h-63v1407h63v-1407zM1635 1h-94v1407h94v-1407zM1698 1h-32v1407h32v-1407zM1792 0h-63v1408h63v-1408z" />
<glyph unicode="&#xf02b;" d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5 l715 -714q37 -39 37 -91z" />
<glyph unicode="&#xf02c;" horiz-adv-x="1920" d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5 l715 -714q37 -39 37 -91zM1899 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-36 0 -59 14t-53 45l470 470q37 37 37 90q0 52 -37 91l-715 714q-38 38 -102 64.5t-117 26.5h224q53 0 117 -26.5t102 -64.5l715 -714q37 -39 37 -91z" />
<glyph unicode="&#xf02d;" horiz-adv-x="1664" d="M1639 1058q40 -57 18 -129l-275 -906q-19 -64 -76.5 -107.5t-122.5 -43.5h-923q-77 0 -148.5 53.5t-99.5 131.5q-24 67 -2 127q0 4 3 27t4 37q1 8 -3 21.5t-3 19.5q2 11 8 21t16.5 23.5t16.5 23.5q23 38 45 91.5t30 91.5q3 10 0.5 30t-0.5 28q3 11 17 28t17 23 q21 36 42 92t25 90q1 9 -2.5 32t0.5 28q4 13 22 30.5t22 22.5q19 26 42.5 84.5t27.5 96.5q1 8 -3 25.5t-2 26.5q2 8 9 18t18 23t17 21q8 12 16.5 30.5t15 35t16 36t19.5 32t26.5 23.5t36 11.5t47.5 -5.5l-1 -3q38 9 51 9h761q74 0 114 -56t18 -130l-274 -906 q-36 -119 -71.5 -153.5t-128.5 -34.5h-869q-27 0 -38 -15q-11 -16 -1 -43q24 -70 144 -70h923q29 0 56 15.5t35 41.5l300 987q7 22 5 57q38 -15 59 -43zM575 1056q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5 t-16.5 -22.5zM492 800q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5t-16.5 -22.5z" />
<glyph unicode="&#xf02e;" horiz-adv-x="1280" d="M1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289q0 34 19.5 62t52.5 41q21 9 44 9h1048z" />
<glyph unicode="&#xf02f;" horiz-adv-x="1664" d="M384 0h896v256h-896v-256zM384 640h896v384h-160q-40 0 -68 28t-28 68v160h-640v-640zM1536 576q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 576v-416q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-160q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68 v160h-224q-13 0 -22.5 9.5t-9.5 22.5v416q0 79 56.5 135.5t135.5 56.5h64v544q0 40 28 68t68 28h672q40 0 88 -20t76 -48l152 -152q28 -28 48 -76t20 -88v-256h64q79 0 135.5 -56.5t56.5 -135.5z" />
<glyph unicode="&#xf030;" horiz-adv-x="1920" d="M960 864q119 0 203.5 -84.5t84.5 -203.5t-84.5 -203.5t-203.5 -84.5t-203.5 84.5t-84.5 203.5t84.5 203.5t203.5 84.5zM1664 1280q106 0 181 -75t75 -181v-896q0 -106 -75 -181t-181 -75h-1408q-106 0 -181 75t-75 181v896q0 106 75 181t181 75h224l51 136 q19 49 69.5 84.5t103.5 35.5h512q53 0 103.5 -35.5t69.5 -84.5l51 -136h224zM960 128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
<glyph unicode="&#xf031;" horiz-adv-x="1664" d="M725 977l-170 -450q33 0 136.5 -2t160.5 -2q19 0 57 2q-87 253 -184 452zM0 -128l2 79q23 7 56 12.5t57 10.5t49.5 14.5t44.5 29t31 50.5l237 616l280 724h75h53q8 -14 11 -21l205 -480q33 -78 106 -257.5t114 -274.5q15 -34 58 -144.5t72 -168.5q20 -45 35 -57 q19 -15 88 -29.5t84 -20.5q6 -38 6 -57q0 -4 -0.5 -13t-0.5 -13q-63 0 -190 8t-191 8q-76 0 -215 -7t-178 -8q0 43 4 78l131 28q1 0 12.5 2.5t15.5 3.5t14.5 4.5t15 6.5t11 8t9 11t2.5 14q0 16 -31 96.5t-72 177.5t-42 100l-450 2q-26 -58 -76.5 -195.5t-50.5 -162.5 q0 -22 14 -37.5t43.5 -24.5t48.5 -13.5t57 -8.5t41 -4q1 -19 1 -58q0 -9 -2 -27q-58 0 -174.5 10t-174.5 10q-8 0 -26.5 -4t-21.5 -4q-80 -14 -188 -14z" />
<glyph unicode="&#xf032;" horiz-adv-x="1408" d="M555 15q74 -32 140 -32q376 0 376 335q0 114 -41 180q-27 44 -61.5 74t-67.5 46.5t-80.5 25t-84 10.5t-94.5 2q-73 0 -101 -10q0 -53 -0.5 -159t-0.5 -158q0 -8 -1 -67.5t-0.5 -96.5t4.5 -83.5t12 -66.5zM541 761q42 -7 109 -7q82 0 143 13t110 44.5t74.5 89.5t25.5 142 q0 70 -29 122.5t-79 82t-108 43.5t-124 14q-50 0 -130 -13q0 -50 4 -151t4 -152q0 -27 -0.5 -80t-0.5 -79q0 -46 1 -69zM0 -128l2 94q15 4 85 16t106 27q7 12 12.5 27t8.5 33.5t5.5 32.5t3 37.5t0.5 34v35.5v30q0 982 -22 1025q-4 8 -22 14.5t-44.5 11t-49.5 7t-48.5 4.5 t-30.5 3l-4 83q98 2 340 11.5t373 9.5q23 0 68.5 -0.5t67.5 -0.5q70 0 136.5 -13t128.5 -42t108 -71t74 -104.5t28 -137.5q0 -52 -16.5 -95.5t-39 -72t-64.5 -57.5t-73 -45t-84 -40q154 -35 256.5 -134t102.5 -248q0 -100 -35 -179.5t-93.5 -130.5t-138 -85.5t-163.5 -48.5 t-176 -14q-44 0 -132 3t-132 3q-106 0 -307 -11t-231 -12z" />
<glyph unicode="&#xf033;" horiz-adv-x="1024" d="M0 -126l17 85q6 2 81.5 21.5t111.5 37.5q28 35 41 101q1 7 62 289t114 543.5t52 296.5v25q-24 13 -54.5 18.5t-69.5 8t-58 5.5l19 103q33 -2 120 -6.5t149.5 -7t120.5 -2.5q48 0 98.5 2.5t121 7t98.5 6.5q-5 -39 -19 -89q-30 -10 -101.5 -28.5t-108.5 -33.5 q-8 -19 -14 -42.5t-9 -40t-7.5 -45.5t-6.5 -42q-27 -148 -87.5 -419.5t-77.5 -355.5q-2 -9 -13 -58t-20 -90t-16 -83.5t-6 -57.5l1 -18q17 -4 185 -31q-3 -44 -16 -99q-11 0 -32.5 -1.5t-32.5 -1.5q-29 0 -87 10t-86 10q-138 2 -206 2q-51 0 -143 -9t-121 -11z" />
<glyph unicode="&#xf034;" horiz-adv-x="1792" d="M1744 128q33 0 42 -18.5t-11 -44.5l-126 -162q-20 -26 -49 -26t-49 26l-126 162q-20 26 -11 44.5t42 18.5h80v1024h-80q-33 0 -42 18.5t11 44.5l126 162q20 26 49 26t49 -26l126 -162q20 -26 11 -44.5t-42 -18.5h-80v-1024h80zM81 1407l54 -27q12 -5 211 -5q44 0 132 2 t132 2q36 0 107.5 -0.5t107.5 -0.5h293q6 0 21 -0.5t20.5 0t16 3t17.5 9t15 17.5l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 48t-14.5 73.5t-7.5 35.5q-6 8 -12 12.5t-15.5 6t-13 2.5t-18 0.5t-16.5 -0.5 q-17 0 -66.5 0.5t-74.5 0.5t-64 -2t-71 -6q-9 -81 -8 -136q0 -94 2 -388t2 -455q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27 q19 42 19 383q0 101 -3 303t-3 303v117q0 2 0.5 15.5t0.5 25t-1 25.5t-3 24t-5 14q-11 12 -162 12q-33 0 -93 -12t-80 -26q-19 -13 -34 -72.5t-31.5 -111t-42.5 -53.5q-42 26 -56 44v383z" />
<glyph unicode="&#xf035;" d="M81 1407l54 -27q12 -5 211 -5q44 0 132 2t132 2q70 0 246.5 1t304.5 0.5t247 -4.5q33 -1 56 31l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 47.5t-15 73.5t-7 36q-10 13 -27 19q-5 2 -66 2q-30 0 -93 1t-103 1 t-94 -2t-96 -7q-9 -81 -8 -136l1 -152v52q0 -55 1 -154t1.5 -180t0.5 -153q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27 q7 16 11.5 74t6 145.5t1.5 155t-0.5 153.5t-0.5 89q0 7 -2.5 21.5t-2.5 22.5q0 7 0.5 44t1 73t0 76.5t-3 67.5t-6.5 32q-11 12 -162 12q-41 0 -163 -13.5t-138 -24.5q-19 -12 -34 -71.5t-31.5 -111.5t-42.5 -54q-42 26 -56 44v383zM1310 125q12 0 42 -19.5t57.5 -41.5 t59.5 -49t36 -30q26 -21 26 -49t-26 -49q-4 -3 -36 -30t-59.5 -49t-57.5 -41.5t-42 -19.5q-13 0 -20.5 10.5t-10 28.5t-2.5 33.5t1.5 33t1.5 19.5h-1024q0 -2 1.5 -19.5t1.5 -33t-2.5 -33.5t-10 -28.5t-20.5 -10.5q-12 0 -42 19.5t-57.5 41.5t-59.5 49t-36 30q-26 21 -26 49 t26 49q4 3 36 30t59.5 49t57.5 41.5t42 19.5q13 0 20.5 -10.5t10 -28.5t2.5 -33.5t-1.5 -33t-1.5 -19.5h1024q0 2 -1.5 19.5t-1.5 33t2.5 33.5t10 28.5t20.5 10.5z" />
<glyph unicode="&#xf036;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45 t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf037;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h896q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45t-45 -19 h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h640q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf038;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45 t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf039;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45 t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf03a;" horiz-adv-x="1792" d="M256 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM256 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5 t9.5 -22.5zM256 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344 q13 0 22.5 -9.5t9.5 -22.5zM256 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5 t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192 q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5z" />
<glyph unicode="&#xf03b;" horiz-adv-x="1792" d="M384 992v-576q0 -13 -9.5 -22.5t-22.5 -9.5q-14 0 -23 9l-288 288q-9 9 -9 23t9 23l288 288q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5 t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088 q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" />
<glyph unicode="&#xf03c;" horiz-adv-x="1792" d="M352 704q0 -14 -9 -23l-288 -288q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v576q0 13 9.5 22.5t22.5 9.5q14 0 23 -9l288 -288q9 -9 9 -23zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5 t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088 q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" />
<glyph unicode="&#xf03d;" horiz-adv-x="1792" d="M1792 1184v-1088q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-403 403v-166q0 -119 -84.5 -203.5t-203.5 -84.5h-704q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h704q119 0 203.5 -84.5t84.5 -203.5v-165l403 402q18 19 45 19q12 0 25 -5 q39 -17 39 -59z" />
<glyph unicode="&#xf03e;" horiz-adv-x="1920" d="M640 960q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 576v-448h-1408v192l320 320l160 -160l512 512zM1760 1280h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-1216q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v1216 q0 13 -9.5 22.5t-22.5 9.5zM1920 1248v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
<glyph unicode="&#xf040;" d="M363 0l91 91l-235 235l-91 -91v-107h128v-128h107zM886 928q0 22 -22 22q-10 0 -17 -7l-542 -542q-7 -7 -7 -17q0 -22 22 -22q10 0 17 7l542 542q7 7 7 17zM832 1120l416 -416l-832 -832h-416v416zM1515 1024q0 -53 -37 -90l-166 -166l-416 416l166 165q36 38 90 38 q53 0 91 -38l235 -234q37 -39 37 -91z" />
<glyph unicode="&#xf041;" horiz-adv-x="1024" d="M768 896q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1024 896q0 -109 -33 -179l-364 -774q-16 -33 -47.5 -52t-67.5 -19t-67.5 19t-46.5 52l-365 774q-33 70 -33 179q0 212 150 362t362 150t362 -150t150 -362z" />
<glyph unicode="&#xf042;" d="M768 96v1088q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf043;" horiz-adv-x="1024" d="M512 384q0 36 -20 69q-1 1 -15.5 22.5t-25.5 38t-25 44t-21 50.5q-4 16 -21 16t-21 -16q-7 -23 -21 -50.5t-25 -44t-25.5 -38t-15.5 -22.5q-20 -33 -20 -69q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 512q0 -212 -150 -362t-362 -150t-362 150t-150 362 q0 145 81 275q6 9 62.5 90.5t101 151t99.5 178t83 201.5q9 30 34 47t51 17t51.5 -17t33.5 -47q28 -93 83 -201.5t99.5 -178t101 -151t62.5 -90.5q81 -127 81 -275z" />
<glyph unicode="&#xf044;" horiz-adv-x="1792" d="M888 352l116 116l-152 152l-116 -116v-56h96v-96h56zM1328 1072q-16 16 -33 -1l-350 -350q-17 -17 -1 -33t33 1l350 350q17 17 1 33zM1408 478v-190q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832 q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-14 -14 -32 -8q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v126q0 13 9 22l64 64q15 15 35 7t20 -29zM1312 1216l288 -288l-672 -672h-288v288zM1756 1084l-92 -92 l-288 288l92 92q28 28 68 28t68 -28l152 -152q28 -28 28 -68t-28 -68z" />
<glyph unicode="&#xf045;" horiz-adv-x="1664" d="M1408 547v-259q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h255v0q13 0 22.5 -9.5t9.5 -22.5q0 -27 -26 -32q-77 -26 -133 -60q-10 -4 -16 -4h-112q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832 q66 0 113 47t47 113v214q0 19 18 29q28 13 54 37q16 16 35 8q21 -9 21 -29zM1645 1043l-384 -384q-18 -19 -45 -19q-12 0 -25 5q-39 17 -39 59v192h-160q-323 0 -438 -131q-119 -137 -74 -473q3 -23 -20 -34q-8 -2 -12 -2q-16 0 -26 13q-10 14 -21 31t-39.5 68.5t-49.5 99.5 t-38.5 114t-17.5 122q0 49 3.5 91t14 90t28 88t47 81.5t68.5 74t94.5 61.5t124.5 48.5t159.5 30.5t196.5 11h160v192q0 42 39 59q13 5 25 5q26 0 45 -19l384 -384q19 -19 19 -45t-19 -45z" />
<glyph unicode="&#xf046;" horiz-adv-x="1664" d="M1408 606v-318q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-10 -10 -23 -10q-3 0 -9 2q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832 q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v254q0 13 9 22l64 64q10 10 23 10q6 0 12 -3q20 -8 20 -29zM1639 1095l-814 -814q-24 -24 -57 -24t-57 24l-430 430q-24 24 -24 57t24 57l110 110q24 24 57 24t57 -24l263 -263l647 647q24 24 57 24t57 -24l110 -110 q24 -24 24 -57t-24 -57z" />
<glyph unicode="&#xf047;" horiz-adv-x="1792" d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-384v-384h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v384h-384v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45 t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h384v384h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45t-19 -45t-45 -19h-128v-384h384v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" />
<glyph unicode="&#xf048;" horiz-adv-x="1024" d="M979 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19z" />
<glyph unicode="&#xf049;" horiz-adv-x="1792" d="M1747 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19l710 710 q19 19 32 13t13 -32v-710q4 11 13 19z" />
<glyph unicode="&#xf04a;" horiz-adv-x="1664" d="M1619 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-8 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-19 19 -19 45t19 45l710 710q19 19 32 13t13 -32v-710q5 11 13 19z" />
<glyph unicode="&#xf04b;" horiz-adv-x="1408" d="M1384 609l-1328 -738q-23 -13 -39.5 -3t-16.5 36v1472q0 26 16.5 36t39.5 -3l1328 -738q23 -13 23 -31t-23 -31z" />
<glyph unicode="&#xf04c;" d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45zM640 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf04d;" d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf04e;" horiz-adv-x="1664" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q19 -19 19 -45t-19 -45l-710 -710q-19 -19 -32 -13t-13 32v710q-5 -10 -13 -19z" />
<glyph unicode="&#xf050;" horiz-adv-x="1792" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19l-710 -710 q-19 -19 -32 -13t-13 32v710q-5 -10 -13 -19z" />
<glyph unicode="&#xf051;" horiz-adv-x="1024" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19z" />
<glyph unicode="&#xf052;" horiz-adv-x="1538" d="M14 557l710 710q19 19 45 19t45 -19l710 -710q19 -19 13 -32t-32 -13h-1472q-26 0 -32 13t13 32zM1473 0h-1408q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19z" />
<glyph unicode="&#xf053;" horiz-adv-x="1280" d="M1171 1235l-531 -531l531 -531q19 -19 19 -45t-19 -45l-166 -166q-19 -19 -45 -19t-45 19l-742 742q-19 19 -19 45t19 45l742 742q19 19 45 19t45 -19l166 -166q19 -19 19 -45t-19 -45z" />
<glyph unicode="&#xf054;" horiz-adv-x="1280" d="M1107 659l-742 -742q-19 -19 -45 -19t-45 19l-166 166q-19 19 -19 45t19 45l531 531l-531 531q-19 19 -19 45t19 45l166 166q19 19 45 19t45 -19l742 -742q19 -19 19 -45t-19 -45z" />
<glyph unicode="&#xf055;" d="M1216 576v128q0 26 -19 45t-45 19h-256v256q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-256h-256q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h256v-256q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v256h256q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5 t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf056;" d="M1216 576v128q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5 t103 -385.5z" />
<glyph unicode="&#xf057;" d="M1149 414q0 26 -19 45l-181 181l181 181q19 19 19 45q0 27 -19 46l-90 90q-19 19 -46 19q-26 0 -45 -19l-181 -181l-181 181q-19 19 -45 19q-27 0 -46 -19l-90 -90q-19 -19 -19 -46q0 -26 19 -45l181 -181l-181 -181q-19 -19 -19 -45q0 -27 19 -46l90 -90q19 -19 46 -19 q26 0 45 19l181 181l181 -181q19 -19 45 -19q27 0 46 19l90 90q19 19 19 46zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf058;" d="M1284 802q0 28 -18 46l-91 90q-19 19 -45 19t-45 -19l-408 -407l-226 226q-19 19 -45 19t-45 -19l-91 -90q-18 -18 -18 -46q0 -27 18 -45l362 -362q19 -19 45 -19q27 0 46 19l543 543q18 18 18 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf059;" d="M896 160v192q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h192q14 0 23 9t9 23zM1152 832q0 88 -55.5 163t-138.5 116t-170 41q-243 0 -371 -213q-15 -24 8 -42l132 -100q7 -6 19 -6q16 0 25 12q53 68 86 92q34 24 86 24q48 0 85.5 -26t37.5 -59 q0 -38 -20 -61t-68 -45q-63 -28 -115.5 -86.5t-52.5 -125.5v-36q0 -14 9 -23t23 -9h192q14 0 23 9t9 23q0 19 21.5 49.5t54.5 49.5q32 18 49 28.5t46 35t44.5 48t28 60.5t12.5 81zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf05a;" d="M1024 160v160q0 14 -9 23t-23 9h-96v512q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h96v-320h-96q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h448q14 0 23 9t9 23zM896 1056v160q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23 t23 -9h192q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf05b;" d="M1197 512h-109q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h109q-32 108 -112.5 188.5t-188.5 112.5v-109q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v109q-108 -32 -188.5 -112.5t-112.5 -188.5h109q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-109 q32 -108 112.5 -188.5t188.5 -112.5v109q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-109q108 32 188.5 112.5t112.5 188.5zM1536 704v-128q0 -26 -19 -45t-45 -19h-143q-37 -161 -154.5 -278.5t-278.5 -154.5v-143q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v143 q-161 37 -278.5 154.5t-154.5 278.5h-143q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h143q37 161 154.5 278.5t278.5 154.5v143q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-143q161 -37 278.5 -154.5t154.5 -278.5h143q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf05c;" d="M1097 457l-146 -146q-10 -10 -23 -10t-23 10l-137 137l-137 -137q-10 -10 -23 -10t-23 10l-146 146q-10 10 -10 23t10 23l137 137l-137 137q-10 10 -10 23t10 23l146 146q10 10 23 10t23 -10l137 -137l137 137q10 10 23 10t23 -10l146 -146q10 -10 10 -23t-10 -23 l-137 -137l137 -137q10 -10 10 -23t-10 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5 t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf05d;" d="M1171 723l-422 -422q-19 -19 -45 -19t-45 19l-294 294q-19 19 -19 45t19 45l102 102q19 19 45 19t45 -19l147 -147l275 275q19 19 45 19t45 -19l102 -102q19 -19 19 -45t-19 -45zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198 t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf05e;" d="M1312 643q0 161 -87 295l-754 -753q137 -89 297 -89q111 0 211.5 43.5t173.5 116.5t116 174.5t43 212.5zM313 344l755 754q-135 91 -300 91q-148 0 -273 -73t-198 -199t-73 -274q0 -162 89 -299zM1536 643q0 -157 -61 -300t-163.5 -246t-245 -164t-298.5 -61t-298.5 61 t-245 164t-163.5 246t-61 300t61 299.5t163.5 245.5t245 164t298.5 61t298.5 -61t245 -164t163.5 -245.5t61 -299.5z" />
<glyph unicode="&#xf060;" d="M1536 640v-128q0 -53 -32.5 -90.5t-84.5 -37.5h-704l293 -294q38 -36 38 -90t-38 -90l-75 -76q-37 -37 -90 -37q-52 0 -91 37l-651 652q-37 37 -37 90q0 52 37 91l651 650q38 38 91 38q52 0 90 -38l75 -74q38 -38 38 -91t-38 -91l-293 -293h704q52 0 84.5 -37.5 t32.5 -90.5z" />
<glyph unicode="&#xf061;" d="M1472 576q0 -54 -37 -91l-651 -651q-39 -37 -91 -37q-51 0 -90 37l-75 75q-38 38 -38 91t38 91l293 293h-704q-52 0 -84.5 37.5t-32.5 90.5v128q0 53 32.5 90.5t84.5 37.5h704l-293 294q-38 36 -38 90t38 90l75 75q38 38 90 38q53 0 91 -38l651 -651q37 -35 37 -90z" />
<glyph unicode="&#xf062;" horiz-adv-x="1664" d="M1611 565q0 -51 -37 -90l-75 -75q-38 -38 -91 -38q-54 0 -90 38l-294 293v-704q0 -52 -37.5 -84.5t-90.5 -32.5h-128q-53 0 -90.5 32.5t-37.5 84.5v704l-294 -293q-36 -38 -90 -38t-90 38l-75 75q-38 38 -38 90q0 53 38 91l651 651q35 37 90 37q54 0 91 -37l651 -651 q37 -39 37 -91z" />
<glyph unicode="&#xf063;" horiz-adv-x="1664" d="M1611 704q0 -53 -37 -90l-651 -652q-39 -37 -91 -37q-53 0 -90 37l-651 652q-38 36 -38 90q0 53 38 91l74 75q39 37 91 37q53 0 90 -37l294 -294v704q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-704l294 294q37 37 90 37q52 0 91 -37l75 -75q37 -39 37 -91z" />
<glyph unicode="&#xf064;" horiz-adv-x="1792" d="M1792 896q0 -26 -19 -45l-512 -512q-19 -19 -45 -19t-45 19t-19 45v256h-224q-98 0 -175.5 -6t-154 -21.5t-133 -42.5t-105.5 -69.5t-80 -101t-48.5 -138.5t-17.5 -181q0 -55 5 -123q0 -6 2.5 -23.5t2.5 -26.5q0 -15 -8.5 -25t-23.5 -10q-16 0 -28 17q-7 9 -13 22 t-13.5 30t-10.5 24q-127 285 -127 451q0 199 53 333q162 403 875 403h224v256q0 26 19 45t45 19t45 -19l512 -512q19 -19 19 -45z" />
<glyph unicode="&#xf065;" d="M755 480q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23zM1536 1344v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332 q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf066;" d="M768 576v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45zM1523 1248q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45 t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23z" />
<glyph unicode="&#xf067;" horiz-adv-x="1408" d="M1408 800v-192q0 -40 -28 -68t-68 -28h-416v-416q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v416h-416q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h416v416q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-416h416q40 0 68 -28t28 -68z" />
<glyph unicode="&#xf068;" horiz-adv-x="1408" d="M1408 800v-192q0 -40 -28 -68t-68 -28h-1216q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h1216q40 0 68 -28t28 -68z" />
<glyph unicode="&#xf069;" horiz-adv-x="1664" d="M1482 486q46 -26 59.5 -77.5t-12.5 -97.5l-64 -110q-26 -46 -77.5 -59.5t-97.5 12.5l-266 153v-307q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v307l-266 -153q-46 -26 -97.5 -12.5t-77.5 59.5l-64 110q-26 46 -12.5 97.5t59.5 77.5l266 154l-266 154 q-46 26 -59.5 77.5t12.5 97.5l64 110q26 46 77.5 59.5t97.5 -12.5l266 -153v307q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-307l266 153q46 26 97.5 12.5t77.5 -59.5l64 -110q26 -46 12.5 -97.5t-59.5 -77.5l-266 -154z" />
<glyph unicode="&#xf06a;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM896 161v190q0 14 -9 23.5t-22 9.5h-192q-13 0 -23 -10t-10 -23v-190q0 -13 10 -23t23 -10h192 q13 0 22 9.5t9 23.5zM894 505l18 621q0 12 -10 18q-10 8 -24 8h-220q-14 0 -24 -8q-10 -6 -10 -18l17 -621q0 -10 10 -17.5t24 -7.5h185q14 0 23.5 7.5t10.5 17.5z" />
<glyph unicode="&#xf06b;" d="M928 180v56v468v192h-320v-192v-468v-56q0 -25 18 -38.5t46 -13.5h192q28 0 46 13.5t18 38.5zM472 1024h195l-126 161q-26 31 -69 31q-40 0 -68 -28t-28 -68t28 -68t68 -28zM1160 1120q0 40 -28 68t-68 28q-43 0 -69 -31l-125 -161h194q40 0 68 28t28 68zM1536 864v-320 q0 -14 -9 -23t-23 -9h-96v-416q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28t-28 68v416h-96q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h440q-93 0 -158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5q107 0 168 -77l128 -165l128 165q61 77 168 77q93 0 158.5 -65.5t65.5 -158.5 t-65.5 -158.5t-158.5 -65.5h440q14 0 23 -9t9 -23z" />
<glyph unicode="&#xf06c;" horiz-adv-x="1792" d="M1280 832q0 26 -19 45t-45 19q-172 0 -318 -49.5t-259.5 -134t-235.5 -219.5q-19 -21 -19 -45q0 -26 19 -45t45 -19q24 0 45 19q27 24 74 71t67 66q137 124 268.5 176t313.5 52q26 0 45 19t19 45zM1792 1030q0 -95 -20 -193q-46 -224 -184.5 -383t-357.5 -268 q-214 -108 -438 -108q-148 0 -286 47q-15 5 -88 42t-96 37q-16 0 -39.5 -32t-45 -70t-52.5 -70t-60 -32q-30 0 -51 11t-31 24t-27 42q-2 4 -6 11t-5.5 10t-3 9.5t-1.5 13.5q0 35 31 73.5t68 65.5t68 56t31 48q0 4 -14 38t-16 44q-9 51 -9 104q0 115 43.5 220t119 184.5 t170.5 139t204 95.5q55 18 145 25.5t179.5 9t178.5 6t163.5 24t113.5 56.5l29.5 29.5t29.5 28t27 20t36.5 16t43.5 4.5q39 0 70.5 -46t47.5 -112t24 -124t8 -96z" />
<glyph unicode="&#xf06d;" horiz-adv-x="1408" d="M1408 -160v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1152 896q0 -78 -24.5 -144t-64 -112.5t-87.5 -88t-96 -77.5t-87.5 -72t-64 -81.5t-24.5 -96.5q0 -96 67 -224l-4 1l1 -1 q-90 41 -160 83t-138.5 100t-113.5 122.5t-72.5 150.5t-27.5 184q0 78 24.5 144t64 112.5t87.5 88t96 77.5t87.5 72t64 81.5t24.5 96.5q0 94 -66 224l3 -1l-1 1q90 -41 160 -83t138.5 -100t113.5 -122.5t72.5 -150.5t27.5 -184z" />
<glyph unicode="&#xf06e;" horiz-adv-x="1792" d="M1664 576q-152 236 -381 353q61 -104 61 -225q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 121 61 225q-229 -117 -381 -353q133 -205 333.5 -326.5t434.5 -121.5t434.5 121.5t333.5 326.5zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5 t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1792 576q0 -34 -20 -69q-140 -230 -376.5 -368.5t-499.5 -138.5t-499.5 139t-376.5 368q-20 35 -20 69t20 69q140 229 376.5 368t499.5 139t499.5 -139t376.5 -368q20 -35 20 -69z" />
<glyph unicode="&#xf070;" horiz-adv-x="1792" d="M555 201l78 141q-87 63 -136 159t-49 203q0 121 61 225q-229 -117 -381 -353q167 -258 427 -375zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1307 1151q0 -7 -1 -9 q-105 -188 -315 -566t-316 -567l-49 -89q-10 -16 -28 -16q-12 0 -134 70q-16 10 -16 28q0 12 44 87q-143 65 -263.5 173t-208.5 245q-20 31 -20 69t20 69q153 235 380 371t496 136q89 0 180 -17l54 97q10 16 28 16q5 0 18 -6t31 -15.5t33 -18.5t31.5 -18.5t19.5 -11.5 q16 -10 16 -27zM1344 704q0 -139 -79 -253.5t-209 -164.5l280 502q8 -45 8 -84zM1792 576q0 -35 -20 -69q-39 -64 -109 -145q-150 -172 -347.5 -267t-419.5 -95l74 132q212 18 392.5 137t301.5 307q-115 179 -282 294l63 112q95 -64 182.5 -153t144.5 -184q20 -34 20 -69z " />
<glyph unicode="&#xf071;" horiz-adv-x="1792" d="M1024 161v190q0 14 -9.5 23.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -23.5v-190q0 -14 9.5 -23.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 23.5zM1022 535l18 459q0 12 -10 19q-13 11 -24 11h-220q-11 0 -24 -11q-10 -7 -10 -21l17 -457q0 -10 10 -16.5t24 -6.5h185 q14 0 23.5 6.5t10.5 16.5zM1008 1469l768 -1408q35 -63 -2 -126q-17 -29 -46.5 -46t-63.5 -17h-1536q-34 0 -63.5 17t-46.5 46q-37 63 -2 126l768 1408q17 31 47 49t65 18t65 -18t47 -49z" />
<glyph unicode="&#xf072;" horiz-adv-x="1408" d="M1376 1376q44 -52 12 -148t-108 -172l-161 -161l160 -696q5 -19 -12 -33l-128 -96q-7 -6 -19 -6q-4 0 -7 1q-15 3 -21 16l-279 508l-259 -259l53 -194q5 -17 -8 -31l-96 -96q-9 -9 -23 -9h-2q-15 2 -24 13l-189 252l-252 189q-11 7 -13 23q-1 13 9 25l96 97q9 9 23 9 q6 0 8 -1l194 -53l259 259l-508 279q-14 8 -17 24q-2 16 9 27l128 128q14 13 30 8l665 -159l160 160q76 76 172 108t148 -12z" />
<glyph unicode="&#xf073;" horiz-adv-x="1664" d="M128 -128h288v288h-288v-288zM480 -128h320v288h-320v-288zM128 224h288v320h-288v-320zM480 224h320v320h-320v-320zM128 608h288v288h-288v-288zM864 -128h320v288h-320v-288zM480 608h320v288h-320v-288zM1248 -128h288v288h-288v-288zM864 224h320v320h-320v-320z M512 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1248 224h288v320h-288v-320zM864 608h320v288h-320v-288zM1248 608h288v288h-288v-288zM1280 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64 q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47 h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
<glyph unicode="&#xf074;" horiz-adv-x="1792" d="M666 1055q-60 -92 -137 -273q-22 45 -37 72.5t-40.5 63.5t-51 56.5t-63 35t-81.5 14.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q250 0 410 -225zM1792 256q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192q-32 0 -85 -0.5t-81 -1t-73 1 t-71 5t-64 10.5t-63 18.5t-58 28.5t-59 40t-55 53.5t-56 69.5q59 93 136 273q22 -45 37 -72.5t40.5 -63.5t51 -56.5t63 -35t81.5 -14.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1792 1152q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5 v192h-256q-48 0 -87 -15t-69 -45t-51 -61.5t-45 -77.5q-32 -62 -78 -171q-29 -66 -49.5 -111t-54 -105t-64 -100t-74 -83t-90 -68.5t-106.5 -42t-128 -16.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q48 0 87 15t69 45t51 61.5t45 77.5q32 62 78 171q29 66 49.5 111 t54 105t64 100t74 83t90 68.5t106.5 42t128 16.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" />
<glyph unicode="&#xf075;" horiz-adv-x="1792" d="M1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22q-17 -2 -30.5 9t-17.5 29v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281 q0 130 71 248.5t191 204.5t286 136.5t348 50.5q244 0 450 -85.5t326 -233t120 -321.5z" />
<glyph unicode="&#xf076;" d="M1536 704v-128q0 -201 -98.5 -362t-274 -251.5t-395.5 -90.5t-395.5 90.5t-274 251.5t-98.5 362v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-128q0 -52 23.5 -90t53.5 -57t71 -30t64 -13t44 -2t44 2t64 13t71 30t53.5 57t23.5 90v128q0 26 19 45t45 19h384 q26 0 45 -19t19 -45zM512 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45zM1536 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf077;" horiz-adv-x="1792" d="M1683 205l-166 -165q-19 -19 -45 -19t-45 19l-531 531l-531 -531q-19 -19 -45 -19t-45 19l-166 165q-19 19 -19 45.5t19 45.5l742 741q19 19 45 19t45 -19l742 -741q19 -19 19 -45.5t-19 -45.5z" />
<glyph unicode="&#xf078;" horiz-adv-x="1792" d="M1683 728l-742 -741q-19 -19 -45 -19t-45 19l-742 741q-19 19 -19 45.5t19 45.5l166 165q19 19 45 19t45 -19l531 -531l531 531q19 19 45 19t45 -19l166 -165q19 -19 19 -45.5t-19 -45.5z" />
<glyph unicode="&#xf079;" horiz-adv-x="1920" d="M1280 32q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-8 0 -13.5 2t-9 7t-5.5 8t-3 11.5t-1 11.5v13v11v160v416h-192q-26 0 -45 19t-19 45q0 24 15 41l320 384q19 22 49 22t49 -22l320 -384q15 -17 15 -41q0 -26 -19 -45t-45 -19h-192v-384h576q16 0 25 -11l160 -192q7 -11 7 -21 zM1920 448q0 -24 -15 -41l-320 -384q-20 -23 -49 -23t-49 23l-320 384q-15 17 -15 41q0 26 19 45t45 19h192v384h-576q-16 0 -25 12l-160 192q-7 9 -7 20q0 13 9.5 22.5t22.5 9.5h960q8 0 13.5 -2t9 -7t5.5 -8t3 -11.5t1 -11.5v-13v-11v-160v-416h192q26 0 45 -19t19 -45z " />
<glyph unicode="&#xf07a;" horiz-adv-x="1664" d="M640 0q0 -52 -38 -90t-90 -38t-90 38t-38 90t38 90t90 38t90 -38t38 -90zM1536 0q0 -52 -38 -90t-90 -38t-90 38t-38 90t38 90t90 38t90 -38t38 -90zM1664 1088v-512q0 -24 -16.5 -42.5t-40.5 -21.5l-1044 -122q13 -60 13 -70q0 -16 -24 -64h920q26 0 45 -19t19 -45 t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 11 8 31.5t16 36t21.5 40t15.5 29.5l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t19.5 -15.5t13 -24.5t8 -26t5.5 -29.5t4.5 -26h1201q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf07b;" horiz-adv-x="1664" d="M1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" />
<glyph unicode="&#xf07c;" horiz-adv-x="1920" d="M1879 584q0 -31 -31 -66l-336 -396q-43 -51 -120.5 -86.5t-143.5 -35.5h-1088q-34 0 -60.5 13t-26.5 43q0 31 31 66l336 396q43 51 120.5 86.5t143.5 35.5h1088q34 0 60.5 -13t26.5 -43zM1536 928v-160h-832q-94 0 -197 -47.5t-164 -119.5l-337 -396l-5 -6q0 4 -0.5 12.5 t-0.5 12.5v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158z" />
<glyph unicode="&#xf07d;" horiz-adv-x="768" d="M704 1216q0 -26 -19 -45t-45 -19h-128v-1024h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v1024h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45z" />
<glyph unicode="&#xf07e;" horiz-adv-x="1792" d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-1024v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h1024v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" />
<glyph unicode="&#xf080;" horiz-adv-x="2048" d="M640 640v-512h-256v512h256zM1024 1152v-1024h-256v1024h256zM2048 0v-128h-2048v1536h128v-1408h1920zM1408 896v-768h-256v768h256zM1792 1280v-1152h-256v1152h256z" />
<glyph unicode="&#xf081;" d="M1280 926q-56 -25 -121 -34q68 40 93 117q-65 -38 -134 -51q-61 66 -153 66q-87 0 -148.5 -61.5t-61.5 -148.5q0 -29 5 -48q-129 7 -242 65t-192 155q-29 -50 -29 -106q0 -114 91 -175q-47 1 -100 26v-2q0 -75 50 -133.5t123 -72.5q-29 -8 -51 -8q-13 0 -39 4 q21 -63 74.5 -104t121.5 -42q-116 -90 -261 -90q-26 0 -50 3q148 -94 322 -94q112 0 210 35.5t168 95t120.5 137t75 162t24.5 168.5q0 18 -1 27q63 45 105 109zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5 t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf082;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-188v595h199l30 232h-229v148q0 56 23.5 84t91.5 28l122 1v207q-63 9 -178 9q-136 0 -217.5 -80t-81.5 -226v-171h-200v-232h200v-595h-532q-119 0 -203.5 84.5t-84.5 203.5v960 q0 119 84.5 203.5t203.5 84.5h960z" />
<glyph unicode="&#xf083;" horiz-adv-x="1792" d="M928 704q0 14 -9 23t-23 9q-66 0 -113 -47t-47 -113q0 -14 9 -23t23 -9t23 9t9 23q0 40 28 68t68 28q14 0 23 9t9 23zM1152 574q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM128 0h1536v128h-1536v-128zM1280 574q0 159 -112.5 271.5 t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM256 1216h384v128h-384v-128zM128 1024h1536v118v138h-828l-64 -128h-644v-128zM1792 1280v-1280q0 -53 -37.5 -90.5t-90.5 -37.5h-1536q-53 0 -90.5 37.5t-37.5 90.5v1280 q0 53 37.5 90.5t90.5 37.5h1536q53 0 90.5 -37.5t37.5 -90.5z" />
<glyph unicode="&#xf084;" horiz-adv-x="1792" d="M832 1024q0 80 -56 136t-136 56t-136 -56t-56 -136q0 -42 19 -83q-41 19 -83 19q-80 0 -136 -56t-56 -136t56 -136t136 -56t136 56t56 136q0 42 -19 83q41 -19 83 -19q80 0 136 56t56 136zM1683 320q0 -17 -49 -66t-66 -49q-9 0 -28.5 16t-36.5 33t-38.5 40t-24.5 26 l-96 -96l220 -220q28 -28 28 -68q0 -42 -39 -81t-81 -39q-40 0 -68 28l-671 671q-176 -131 -365 -131q-163 0 -265.5 102.5t-102.5 265.5q0 160 95 313t248 248t313 95q163 0 265.5 -102.5t102.5 -265.5q0 -189 -131 -365l355 -355l96 96q-3 3 -26 24.5t-40 38.5t-33 36.5 t-16 28.5q0 17 49 66t66 49q13 0 23 -10q6 -6 46 -44.5t82 -79.5t86.5 -86t73 -78t28.5 -41z" />
<glyph unicode="&#xf085;" horiz-adv-x="1920" d="M896 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1664 128q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1152q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5zM1280 731v-185q0 -10 -7 -19.5t-16 -10.5l-155 -24q-11 -35 -32 -76q34 -48 90 -115q7 -10 7 -20q0 -12 -7 -19q-23 -30 -82.5 -89.5t-78.5 -59.5q-11 0 -21 7l-115 90q-37 -19 -77 -31q-11 -108 -23 -155q-7 -24 -30 -24h-186q-11 0 -20 7.5t-10 17.5 l-23 153q-34 10 -75 31l-118 -89q-7 -7 -20 -7q-11 0 -21 8q-144 133 -144 160q0 9 7 19q10 14 41 53t47 61q-23 44 -35 82l-152 24q-10 1 -17 9.5t-7 19.5v185q0 10 7 19.5t16 10.5l155 24q11 35 32 76q-34 48 -90 115q-7 11 -7 20q0 12 7 20q22 30 82 89t79 59q11 0 21 -7 l115 -90q34 18 77 32q11 108 23 154q7 24 30 24h186q11 0 20 -7.5t10 -17.5l23 -153q34 -10 75 -31l118 89q8 7 20 7q11 0 21 -8q144 -133 144 -160q0 -9 -7 -19q-12 -16 -42 -54t-45 -60q23 -48 34 -82l152 -23q10 -2 17 -10.5t7 -19.5zM1920 198v-140q0 -16 -149 -31 q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20 t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31zM1920 1222v-140q0 -16 -149 -31q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68 q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70 q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31z" />
<glyph unicode="&#xf086;" horiz-adv-x="1792" d="M1408 768q0 -139 -94 -257t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224 q0 139 94 257t256.5 186.5t353.5 68.5t353.5 -68.5t256.5 -186.5t94 -257zM1792 512q0 -120 -71 -224.5t-195 -176.5q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7 q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230z" />
<glyph unicode="&#xf087;" d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 768q0 51 -39 89.5t-89 38.5h-352q0 58 48 159.5t48 160.5q0 98 -32 145t-128 47q-26 -26 -38 -85t-30.5 -125.5t-59.5 -109.5q-22 -23 -77 -91q-4 -5 -23 -30t-31.5 -41t-34.5 -42.5 t-40 -44t-38.5 -35.5t-40 -27t-35.5 -9h-32v-640h32q13 0 31.5 -3t33 -6.5t38 -11t35 -11.5t35.5 -12.5t29 -10.5q211 -73 342 -73h121q192 0 192 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5q32 1 53.5 47t21.5 81zM1536 769 q0 -89 -49 -163q9 -33 9 -69q0 -77 -38 -144q3 -21 3 -43q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5h-36h-93q-96 0 -189.5 22.5t-216.5 65.5q-116 40 -138 40h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h274q36 24 137 155q58 75 107 128 q24 25 35.5 85.5t30.5 126.5t62 108q39 37 90 37q84 0 151 -32.5t102 -101.5t35 -186q0 -93 -48 -192h176q104 0 180 -76t76 -179z" />
<glyph unicode="&#xf088;" d="M256 1088q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 512q0 35 -21.5 81t-53.5 47q15 17 25 47.5t10 55.5q0 69 -53 119q18 32 18 69t-17.5 73.5t-47.5 52.5q5 30 5 56q0 85 -49 126t-136 41h-128q-131 0 -342 -73q-5 -2 -29 -10.5 t-35.5 -12.5t-35 -11.5t-38 -11t-33 -6.5t-31.5 -3h-32v-640h32q16 0 35.5 -9t40 -27t38.5 -35.5t40 -44t34.5 -42.5t31.5 -41t23 -30q55 -68 77 -91q41 -43 59.5 -109.5t30.5 -125.5t38 -85q96 0 128 47t32 145q0 59 -48 160.5t-48 159.5h352q50 0 89 38.5t39 89.5z M1536 511q0 -103 -76 -179t-180 -76h-176q48 -99 48 -192q0 -118 -35 -186q-35 -69 -102 -101.5t-151 -32.5q-51 0 -90 37q-34 33 -54 82t-25.5 90.5t-17.5 84.5t-31 64q-48 50 -107 127q-101 131 -137 155h-274q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5 h288q22 0 138 40q128 44 223 66t200 22h112q140 0 226.5 -79t85.5 -216v-5q60 -77 60 -178q0 -22 -3 -43q38 -67 38 -144q0 -36 -9 -69q49 -74 49 -163z" />
<glyph unicode="&#xf089;" horiz-adv-x="896" d="M832 1504v-1339l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41z" />
<glyph unicode="&#xf08a;" horiz-adv-x="1792" d="M1664 940q0 81 -21.5 143t-55 98.5t-81.5 59.5t-94 31t-98 8t-112 -25.5t-110.5 -64t-86.5 -72t-60 -61.5q-18 -22 -49 -22t-49 22q-24 28 -60 61.5t-86.5 72t-110.5 64t-112 25.5t-98 -8t-94 -31t-81.5 -59.5t-55 -98.5t-21.5 -143q0 -168 187 -355l581 -560l580 559 q188 188 188 356zM1792 940q0 -221 -229 -450l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5 q224 0 351 -124t127 -344z" />
<glyph unicode="&#xf08b;" horiz-adv-x="1664" d="M640 96q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h320q13 0 22.5 -9.5t9.5 -22.5q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-66 0 -113 -47t-47 -113v-704 q0 -66 47 -113t113 -47h288h11h13t11.5 -1t11.5 -3t8 -5.5t7 -9t2 -13.5zM1568 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45z" />
<glyph unicode="&#xf08c;" d="M237 122h231v694h-231v-694zM483 1030q-1 52 -36 86t-93 34t-94.5 -34t-36.5 -86q0 -51 35.5 -85.5t92.5 -34.5h1q59 0 95 34.5t36 85.5zM1068 122h231v398q0 154 -73 233t-193 79q-136 0 -209 -117h2v101h-231q3 -66 0 -694h231v388q0 38 7 56q15 35 45 59.5t74 24.5 q116 0 116 -157v-371zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf08d;" horiz-adv-x="1152" d="M480 672v448q0 14 -9 23t-23 9t-23 -9t-9 -23v-448q0 -14 9 -23t23 -9t23 9t9 23zM1152 320q0 -26 -19 -45t-45 -19h-429l-51 -483q-2 -12 -10.5 -20.5t-20.5 -8.5h-1q-27 0 -32 27l-76 485h-404q-26 0 -45 19t-19 45q0 123 78.5 221.5t177.5 98.5v512q-52 0 -90 38 t-38 90t38 90t90 38h640q52 0 90 -38t38 -90t-38 -90t-90 -38v-512q99 0 177.5 -98.5t78.5 -221.5z" />
<glyph unicode="&#xf08e;" horiz-adv-x="1792" d="M1408 608v-320q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v320 q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1792 1472v-512q0 -26 -19 -45t-45 -19t-45 19l-176 176l-652 -652q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l652 652l-176 176q-19 19 -19 45t19 45t45 19h512q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf090;" d="M1184 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45zM1536 992v-704q0 -119 -84.5 -203.5t-203.5 -84.5h-320q-13 0 -22.5 9.5t-9.5 22.5 q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q66 0 113 47t47 113v704q0 66 -47 113t-113 47h-288h-11h-13t-11.5 1t-11.5 3t-8 5.5t-7 9t-2 13.5q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf091;" horiz-adv-x="1664" d="M458 653q-74 162 -74 371h-256v-96q0 -78 94.5 -162t235.5 -113zM1536 928v96h-256q0 -209 -74 -371q141 29 235.5 113t94.5 162zM1664 1056v-128q0 -71 -41.5 -143t-112 -130t-173 -97.5t-215.5 -44.5q-42 -54 -95 -95q-38 -34 -52.5 -72.5t-14.5 -89.5q0 -54 30.5 -91 t97.5 -37q75 0 133.5 -45.5t58.5 -114.5v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 69 58.5 114.5t133.5 45.5q67 0 97.5 37t30.5 91q0 51 -14.5 89.5t-52.5 72.5q-53 41 -95 95q-113 5 -215.5 44.5t-173 97.5t-112 130t-41.5 143v128q0 40 28 68t68 28h288v96 q0 66 47 113t113 47h576q66 0 113 -47t47 -113v-96h288q40 0 68 -28t28 -68z" />
<glyph unicode="&#xf092;" d="M519 336q4 6 -3 13q-9 7 -14 2q-4 -6 3 -13q9 -7 14 -2zM491 377q-5 7 -12 4q-6 -4 0 -12q7 -8 12 -5q6 4 0 13zM450 417q2 4 -5 8q-7 2 -8 -2q-3 -5 4 -8q8 -2 9 2zM471 394q2 1 1.5 4.5t-3.5 5.5q-6 7 -10 3t1 -11q6 -6 11 -2zM557 319q2 7 -9 11q-9 3 -13 -4 q-2 -7 9 -11q9 -3 13 4zM599 316q0 8 -12 8q-10 0 -10 -8t11 -8t11 8zM638 323q-2 7 -13 5t-9 -9q2 -8 12 -6t10 10zM1280 640q0 212 -150 362t-362 150t-362 -150t-150 -362q0 -167 98 -300.5t252 -185.5q18 -3 26.5 5t8.5 20q0 52 -1 95q-6 -1 -15.5 -2.5t-35.5 -2t-48 4 t-43.5 20t-29.5 41.5q-23 59 -57 74q-2 1 -4.5 3.5l-8 8t-7 9.5t4 7.5t19.5 3.5q6 0 15 -2t30 -15.5t33 -35.5q16 -28 37.5 -42t43.5 -14t38 3.5t30 9.5q7 47 33 69q-49 6 -86 18.5t-73 39t-55.5 76t-19.5 119.5q0 79 53 137q-24 62 5 136q19 6 54.5 -7.5t60.5 -29.5l26 -16 q58 17 128 17t128 -17q11 7 28.5 18t55.5 26t57 9q29 -74 5 -136q53 -58 53 -137q0 -57 -14 -100.5t-35.5 -70t-53.5 -44.5t-62.5 -26t-68.5 -12q35 -31 35 -95q0 -40 -0.5 -89t-0.5 -51q0 -12 8.5 -20t26.5 -5q154 52 252 185.5t98 300.5zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf093;" horiz-adv-x="1664" d="M1280 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 288v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h427q21 -56 70.5 -92 t110.5 -36h256q61 0 110.5 36t70.5 92h427q40 0 68 -28t28 -68zM1339 936q-17 -40 -59 -40h-256v-448q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v448h-256q-42 0 -59 40q-17 39 14 69l448 448q18 19 45 19t45 -19l448 -448q31 -30 14 -69z" />
<glyph unicode="&#xf094;" d="M1407 710q0 44 -7 113.5t-18 96.5q-12 30 -17 44t-9 36.5t-4 48.5q0 23 5 68.5t5 67.5q0 37 -10 55q-4 1 -13 1q-19 0 -58 -4.5t-59 -4.5q-60 0 -176 24t-175 24q-43 0 -94.5 -11.5t-85 -23.5t-89.5 -34q-137 -54 -202 -103q-96 -73 -159.5 -189.5t-88 -236t-24.5 -248.5 q0 -40 12.5 -120t12.5 -121q0 -23 -11 -66.5t-11 -65.5t12 -36.5t34 -14.5q24 0 72.5 11t73.5 11q57 0 169.5 -15.5t169.5 -15.5q181 0 284 36q129 45 235.5 152.5t166 245.5t59.5 275zM1535 712q0 -165 -70 -327.5t-196 -288t-281 -180.5q-124 -44 -326 -44 q-57 0 -170 14.5t-169 14.5q-24 0 -72.5 -14.5t-73.5 -14.5q-73 0 -123.5 55.5t-50.5 128.5q0 24 11 68t11 67q0 40 -12.5 120.5t-12.5 121.5q0 111 18 217.5t54.5 209.5t100.5 194t150 156q78 59 232 120q194 78 316 78q60 0 175.5 -24t173.5 -24q19 0 57 5t58 5 q81 0 118 -50.5t37 -134.5q0 -23 -5 -68t-5 -68q0 -10 1 -18.5t3 -17t4 -13.5t6.5 -16t6.5 -17q16 -40 25 -118.5t9 -136.5z" />
<glyph unicode="&#xf095;" horiz-adv-x="1408" d="M1408 296q0 -27 -10 -70.5t-21 -68.5q-21 -50 -122 -106q-94 -51 -186 -51q-27 0 -52.5 3.5t-57.5 12.5t-47.5 14.5t-55.5 20.5t-49 18q-98 35 -175 83q-128 79 -264.5 215.5t-215.5 264.5q-48 77 -83 175q-3 9 -18 49t-20.5 55.5t-14.5 47.5t-12.5 57.5t-3.5 52.5 q0 92 51 186q56 101 106 122q25 11 68.5 21t70.5 10q14 0 21 -3q18 -6 53 -76q11 -19 30 -54t35 -63.5t31 -53.5q3 -4 17.5 -25t21.5 -35.5t7 -28.5q0 -20 -28.5 -50t-62 -55t-62 -53t-28.5 -46q0 -9 5 -22.5t8.5 -20.5t14 -24t11.5 -19q76 -137 174 -235t235 -174 q2 -1 19 -11.5t24 -14t20.5 -8.5t22.5 -5q18 0 46 28.5t53 62t55 62t50 28.5q14 0 28.5 -7t35.5 -21.5t25 -17.5q25 -15 53.5 -31t63.5 -35t54 -30q70 -35 76 -53q3 -7 3 -21z" />
<glyph unicode="&#xf096;" horiz-adv-x="1408" d="M1120 1280h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v832q0 66 -47 113t-113 47zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832 q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf097;" horiz-adv-x="1280" d="M1152 1280h-1024v-1242l423 406l89 85l89 -85l423 -406v1242zM1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289 q0 34 19.5 62t52.5 41q21 9 44 9h1048z" />
<glyph unicode="&#xf098;" d="M1280 343q0 11 -2 16q-3 8 -38.5 29.5t-88.5 49.5l-53 29q-5 3 -19 13t-25 15t-21 5q-18 0 -47 -32.5t-57 -65.5t-44 -33q-7 0 -16.5 3.5t-15.5 6.5t-17 9.5t-14 8.5q-99 55 -170.5 126.5t-126.5 170.5q-2 3 -8.5 14t-9.5 17t-6.5 15.5t-3.5 16.5q0 13 20.5 33.5t45 38.5 t45 39.5t20.5 36.5q0 10 -5 21t-15 25t-13 19q-3 6 -15 28.5t-25 45.5t-26.5 47.5t-25 40.5t-16.5 18t-16 2q-48 0 -101 -22q-46 -21 -80 -94.5t-34 -130.5q0 -16 2.5 -34t5 -30.5t9 -33t10 -29.5t12.5 -33t11 -30q60 -164 216.5 -320.5t320.5 -216.5q6 -2 30 -11t33 -12.5 t29.5 -10t33 -9t30.5 -5t34 -2.5q57 0 130.5 34t94.5 80q22 53 22 101zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf099;" horiz-adv-x="1664" d="M1620 1128q-67 -98 -162 -167q1 -14 1 -42q0 -130 -38 -259.5t-115.5 -248.5t-184.5 -210.5t-258 -146t-323 -54.5q-271 0 -496 145q35 -4 78 -4q225 0 401 138q-105 2 -188 64.5t-114 159.5q33 -5 61 -5q43 0 85 11q-112 23 -185.5 111.5t-73.5 205.5v4q68 -38 146 -41 q-66 44 -105 115t-39 154q0 88 44 163q121 -149 294.5 -238.5t371.5 -99.5q-8 38 -8 74q0 134 94.5 228.5t228.5 94.5q140 0 236 -102q109 21 205 78q-37 -115 -142 -178q93 10 186 50z" />
<glyph unicode="&#xf09a;" horiz-adv-x="1024" d="M959 1524v-264h-157q-86 0 -116 -36t-30 -108v-189h293l-39 -296h-254v-759h-306v759h-255v296h255v218q0 186 104 288.5t277 102.5q147 0 228 -12z" />
<glyph unicode="&#xf09b;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5q0 -251 -146.5 -451.5t-378.5 -277.5q-27 -5 -40 7t-13 30q0 3 0.5 76.5t0.5 134.5q0 97 -52 142q57 6 102.5 18t94 39t81 66.5t53 105t20.5 150.5q0 119 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44l-38 -24 q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-85 13.5q-45 -113 -8 -204q-79 -87 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-39 -36 -49 -103q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52t-49.5 24l-20 3q-21 0 -29 -4.5 t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -88.5t0.5 -54.5q0 -18 -13 -30t-40 -7q-232 77 -378.5 277.5t-146.5 451.5q0 209 103 385.5t279.5 279.5t385.5 103zM291 305q3 7 -7 12 q-10 3 -13 -2q-3 -7 7 -12q9 -6 13 2zM322 271q7 5 -2 16q-10 9 -16 3q-7 -5 2 -16q10 -10 16 -3zM352 226q9 7 0 19q-8 13 -17 6q-9 -5 0 -18t17 -7zM394 184q8 8 -4 19q-12 12 -20 3q-9 -8 4 -19q12 -12 20 -3zM451 159q3 11 -13 16q-15 4 -19 -7t13 -15q15 -6 19 6z M514 154q0 13 -17 11q-16 0 -16 -11q0 -13 17 -11q16 0 16 11zM572 164q-2 11 -18 9q-16 -3 -14 -15t18 -8t14 14z" />
<glyph unicode="&#xf09c;" horiz-adv-x="1664" d="M1664 960v-256q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-192h96q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h672v192q0 185 131.5 316.5t316.5 131.5 t316.5 -131.5t131.5 -316.5z" />
<glyph unicode="&#xf09d;" horiz-adv-x="1920" d="M1760 1408q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600zM160 1280q-13 0 -22.5 -9.5t-9.5 -22.5v-224h1664v224q0 13 -9.5 22.5t-22.5 9.5h-1600zM1760 0q13 0 22.5 9.5t9.5 22.5v608h-1664v-608 q0 -13 9.5 -22.5t22.5 -9.5h1600zM256 128v128h256v-128h-256zM640 128v128h384v-128h-384z" />
<glyph unicode="&#xf09e;" horiz-adv-x="1408" d="M384 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 69q2 -28 -17 -48q-18 -21 -47 -21h-135q-25 0 -43 16.5t-20 41.5q-22 229 -184.5 391.5t-391.5 184.5q-25 2 -41.5 20t-16.5 43v135q0 29 21 47q17 17 43 17h5q160 -13 306 -80.5 t259 -181.5q114 -113 181.5 -259t80.5 -306zM1408 67q2 -27 -18 -47q-18 -20 -46 -20h-143q-26 0 -44.5 17.5t-19.5 42.5q-12 215 -101 408.5t-231.5 336t-336 231.5t-408.5 102q-25 1 -42.5 19.5t-17.5 43.5v143q0 28 20 46q18 18 44 18h3q262 -13 501.5 -120t425.5 -294 q187 -186 294 -425.5t120 -501.5z" />
<glyph unicode="&#xf0a0;" d="M1040 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1296 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1408 160v320q0 13 -9.5 22.5t-22.5 9.5 h-1216q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h1216q13 0 22.5 9.5t9.5 22.5zM178 640h1180l-157 482q-4 13 -16 21.5t-26 8.5h-782q-14 0 -26 -8.5t-16 -21.5zM1536 480v-320q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113v320q0 25 16 75 l197 606q17 53 63 86t101 33h782q55 0 101 -33t63 -86l197 -606q16 -50 16 -75z" />
<glyph unicode="&#xf0a1;" horiz-adv-x="1792" d="M1664 896q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5v-384q0 -52 -38 -90t-90 -38q-417 347 -812 380q-58 -19 -91 -66t-31 -100.5t40 -92.5q-20 -33 -23 -65.5t6 -58t33.5 -55t48 -50t61.5 -50.5q-29 -58 -111.5 -83t-168.5 -11.5t-132 55.5q-7 23 -29.5 87.5 t-32 94.5t-23 89t-15 101t3.5 98.5t22 110.5h-122q-66 0 -113 47t-47 113v192q0 66 47 113t113 47h480q435 0 896 384q52 0 90 -38t38 -90v-384zM1536 292v954q-394 -302 -768 -343v-270q377 -42 768 -341z" />
<glyph unicode="&#xf0a2;" horiz-adv-x="1792" d="M912 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM246 128h1300q-266 300 -266 832q0 51 -24 105t-69 103t-121.5 80.5t-169.5 31.5t-169.5 -31.5t-121.5 -80.5t-69 -103t-24 -105q0 -532 -266 -832z M1728 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q190 -28 307 -158.5 t117 -282.5q0 -139 19.5 -260t50 -206t74.5 -158.5t85 -119.5t91 -88z" />
<glyph unicode="&#xf0a3;" d="M1376 640l138 -135q30 -28 20 -70q-12 -41 -52 -51l-188 -48l53 -186q12 -41 -19 -70q-29 -31 -70 -19l-186 53l-48 -188q-10 -40 -51 -52q-12 -2 -19 -2q-31 0 -51 22l-135 138l-135 -138q-28 -30 -70 -20q-41 11 -51 52l-48 188l-186 -53q-41 -12 -70 19q-31 29 -19 70 l53 186l-188 48q-40 10 -52 51q-10 42 20 70l138 135l-138 135q-30 28 -20 70q12 41 52 51l188 48l-53 186q-12 41 19 70q29 31 70 19l186 -53l48 188q10 41 51 51q41 12 70 -19l135 -139l135 139q29 30 70 19q41 -10 51 -51l48 -188l186 53q41 12 70 -19q31 -29 19 -70 l-53 -186l188 -48q40 -10 52 -51q10 -42 -20 -70z" />
<glyph unicode="&#xf0a4;" horiz-adv-x="1792" d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 768q0 51 -39 89.5t-89 38.5h-576q0 20 15 48.5t33 55t33 68t15 84.5q0 67 -44.5 97.5t-115.5 30.5q-24 0 -90 -139q-24 -44 -37 -65q-40 -64 -112 -145q-71 -81 -101 -106 q-69 -57 -140 -57h-32v-640h32q72 0 167 -32t193.5 -64t179.5 -32q189 0 189 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5h331q52 0 90 38t38 90zM1792 769q0 -105 -75.5 -181t-180.5 -76h-169q-4 -62 -37 -119q3 -21 3 -43 q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5q-133 0 -322 69q-164 59 -223 59h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h288q10 0 21.5 4.5t23.5 14t22.5 18t24 22.5t20.5 21.5t19 21.5t14 17q65 74 100 129q13 21 33 62t37 72t40.5 63t55 49.5 t69.5 17.5q125 0 206.5 -67t81.5 -189q0 -68 -22 -128h374q104 0 180 -76t76 -179z" />
<glyph unicode="&#xf0a5;" horiz-adv-x="1792" d="M1376 128h32v640h-32q-35 0 -67.5 12t-62.5 37t-50 46t-49 54q-2 3 -3.5 4.5t-4 4.5t-4.5 5q-72 81 -112 145q-14 22 -38 68q-1 3 -10.5 22.5t-18.5 36t-20 35.5t-21.5 30.5t-18.5 11.5q-71 0 -115.5 -30.5t-44.5 -97.5q0 -43 15 -84.5t33 -68t33 -55t15 -48.5h-576 q-50 0 -89 -38.5t-39 -89.5q0 -52 38 -90t90 -38h331q-15 -17 -25 -47.5t-10 -55.5q0 -69 53 -119q-18 -32 -18 -69t17.5 -73.5t47.5 -52.5q-4 -24 -4 -56q0 -85 48.5 -126t135.5 -41q84 0 183 32t194 64t167 32zM1664 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45 t45 -19t45 19t19 45zM1792 768v-640q0 -53 -37.5 -90.5t-90.5 -37.5h-288q-59 0 -223 -59q-190 -69 -317 -69q-142 0 -230 77.5t-87 217.5l1 5q-61 76 -61 178q0 22 3 43q-33 57 -37 119h-169q-105 0 -180.5 76t-75.5 181q0 103 76 179t180 76h374q-22 60 -22 128 q0 122 81.5 189t206.5 67q38 0 69.5 -17.5t55 -49.5t40.5 -63t37 -72t33 -62q35 -55 100 -129q2 -3 14 -17t19 -21.5t20.5 -21.5t24 -22.5t22.5 -18t23.5 -14t21.5 -4.5h288q53 0 90.5 -37.5t37.5 -90.5z" />
<glyph unicode="&#xf0a6;" d="M1280 -64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 700q0 189 -167 189q-26 0 -56 -5q-16 30 -52.5 47.5t-73.5 17.5t-69 -18q-50 53 -119 53q-25 0 -55.5 -10t-47.5 -25v331q0 52 -38 90t-90 38q-51 0 -89.5 -39t-38.5 -89v-576 q-20 0 -48.5 15t-55 33t-68 33t-84.5 15q-67 0 -97.5 -44.5t-30.5 -115.5q0 -24 139 -90q44 -24 65 -37q64 -40 145 -112q81 -71 106 -101q57 -69 57 -140v-32h640v32q0 72 32 167t64 193.5t32 179.5zM1536 705q0 -133 -69 -322q-59 -164 -59 -223v-288q0 -53 -37.5 -90.5 t-90.5 -37.5h-640q-53 0 -90.5 37.5t-37.5 90.5v288q0 10 -4.5 21.5t-14 23.5t-18 22.5t-22.5 24t-21.5 20.5t-21.5 19t-17 14q-74 65 -129 100q-21 13 -62 33t-72 37t-63 40.5t-49.5 55t-17.5 69.5q0 125 67 206.5t189 81.5q68 0 128 -22v374q0 104 76 180t179 76 q105 0 181 -75.5t76 -180.5v-169q62 -4 119 -37q21 3 43 3q101 0 178 -60q139 1 219.5 -85t80.5 -227z" />
<glyph unicode="&#xf0a7;" d="M1408 576q0 84 -32 183t-64 194t-32 167v32h-640v-32q0 -35 -12 -67.5t-37 -62.5t-46 -50t-54 -49q-9 -8 -14 -12q-81 -72 -145 -112q-22 -14 -68 -38q-3 -1 -22.5 -10.5t-36 -18.5t-35.5 -20t-30.5 -21.5t-11.5 -18.5q0 -71 30.5 -115.5t97.5 -44.5q43 0 84.5 15t68 33 t55 33t48.5 15v-576q0 -50 38.5 -89t89.5 -39q52 0 90 38t38 90v331q46 -35 103 -35q69 0 119 53q32 -18 69 -18t73.5 17.5t52.5 47.5q24 -4 56 -4q85 0 126 48.5t41 135.5zM1280 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 580 q0 -142 -77.5 -230t-217.5 -87l-5 1q-76 -61 -178 -61q-22 0 -43 3q-54 -30 -119 -37v-169q0 -105 -76 -180.5t-181 -75.5q-103 0 -179 76t-76 180v374q-54 -22 -128 -22q-121 0 -188.5 81.5t-67.5 206.5q0 38 17.5 69.5t49.5 55t63 40.5t72 37t62 33q55 35 129 100 q3 2 17 14t21.5 19t21.5 20.5t22.5 24t18 22.5t14 23.5t4.5 21.5v288q0 53 37.5 90.5t90.5 37.5h640q53 0 90.5 -37.5t37.5 -90.5v-288q0 -59 59 -223q69 -190 69 -317z" />
<glyph unicode="&#xf0a8;" d="M1280 576v128q0 26 -19 45t-45 19h-502l189 189q19 19 19 45t-19 45l-91 91q-18 18 -45 18t-45 -18l-362 -362l-91 -91q-18 -18 -18 -45t18 -45l91 -91l362 -362q18 -18 45 -18t45 18l91 91q18 18 18 45t-18 45l-189 189h502q26 0 45 19t19 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf0a9;" d="M1285 640q0 27 -18 45l-91 91l-362 362q-18 18 -45 18t-45 -18l-91 -91q-18 -18 -18 -45t18 -45l189 -189h-502q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h502l-189 -189q-19 -19 -19 -45t19 -45l91 -91q18 -18 45 -18t45 18l362 362l91 91q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf0aa;" d="M1284 641q0 27 -18 45l-362 362l-91 91q-18 18 -45 18t-45 -18l-91 -91l-362 -362q-18 -18 -18 -45t18 -45l91 -91q18 -18 45 -18t45 18l189 189v-502q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v502l189 -189q19 -19 45 -19t45 19l91 91q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf0ab;" d="M1284 639q0 27 -18 45l-91 91q-18 18 -45 18t-45 -18l-189 -189v502q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-502l-189 189q-19 19 -45 19t-45 -19l-91 -91q-18 -18 -18 -45t18 -45l362 -362l91 -91q18 -18 45 -18t45 18l91 91l362 362q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf0ac;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1042 887q-2 -1 -9.5 -9.5t-13.5 -9.5q2 0 4.5 5t5 11t3.5 7q6 7 22 15q14 6 52 12q34 8 51 -11 q-2 2 9.5 13t14.5 12q3 2 15 4.5t15 7.5l2 22q-12 -1 -17.5 7t-6.5 21q0 -2 -6 -8q0 7 -4.5 8t-11.5 -1t-9 -1q-10 3 -15 7.5t-8 16.5t-4 15q-2 5 -9.5 10.5t-9.5 10.5q-1 2 -2.5 5.5t-3 6.5t-4 5.5t-5.5 2.5t-7 -5t-7.5 -10t-4.5 -5q-3 2 -6 1.5t-4.5 -1t-4.5 -3t-5 -3.5 q-3 -2 -8.5 -3t-8.5 -2q15 5 -1 11q-10 4 -16 3q9 4 7.5 12t-8.5 14h5q-1 4 -8.5 8.5t-17.5 8.5t-13 6q-8 5 -34 9.5t-33 0.5q-5 -6 -4.5 -10.5t4 -14t3.5 -12.5q1 -6 -5.5 -13t-6.5 -12q0 -7 14 -15.5t10 -21.5q-3 -8 -16 -16t-16 -12q-5 -8 -1.5 -18.5t10.5 -16.5 q2 -2 1.5 -4t-3.5 -4.5t-5.5 -4t-6.5 -3.5l-3 -2q-11 -5 -20.5 6t-13.5 26q-7 25 -16 30q-23 8 -29 -1q-5 13 -41 26q-25 9 -58 4q6 1 0 15q-7 15 -19 12q3 6 4 17.5t1 13.5q3 13 12 23q1 1 7 8.5t9.5 13.5t0.5 6q35 -4 50 11q5 5 11.5 17t10.5 17q9 6 14 5.5t14.5 -5.5 t14.5 -5q14 -1 15.5 11t-7.5 20q12 -1 3 17q-5 7 -8 9q-12 4 -27 -5q-8 -4 2 -8q-1 1 -9.5 -10.5t-16.5 -17.5t-16 5q-1 1 -5.5 13.5t-9.5 13.5q-8 0 -16 -15q3 8 -11 15t-24 8q19 12 -8 27q-7 4 -20.5 5t-19.5 -4q-5 -7 -5.5 -11.5t5 -8t10.5 -5.5t11.5 -4t8.5 -3 q14 -10 8 -14q-2 -1 -8.5 -3.5t-11.5 -4.5t-6 -4q-3 -4 0 -14t-2 -14q-5 5 -9 17.5t-7 16.5q7 -9 -25 -6l-10 1q-4 0 -16 -2t-20.5 -1t-13.5 8q-4 8 0 20q1 4 4 2q-4 3 -11 9.5t-10 8.5q-46 -15 -94 -41q6 -1 12 1q5 2 13 6.5t10 5.5q34 14 42 7l5 5q14 -16 20 -25 q-7 4 -30 1q-20 -6 -22 -12q7 -12 5 -18q-4 3 -11.5 10t-14.5 11t-15 5q-16 0 -22 -1q-146 -80 -235 -222q7 -7 12 -8q4 -1 5 -9t2.5 -11t11.5 3q9 -8 3 -19q1 1 44 -27q19 -17 21 -21q3 -11 -10 -18q-1 2 -9 9t-9 4q-3 -5 0.5 -18.5t10.5 -12.5q-7 0 -9.5 -16t-2.5 -35.5 t-1 -23.5l2 -1q-3 -12 5.5 -34.5t21.5 -19.5q-13 -3 20 -43q6 -8 8 -9q3 -2 12 -7.5t15 -10t10 -10.5q4 -5 10 -22.5t14 -23.5q-2 -6 9.5 -20t10.5 -23q-1 0 -2.5 -1t-2.5 -1q3 -7 15.5 -14t15.5 -13q1 -3 2 -10t3 -11t8 -2q2 20 -24 62q-15 25 -17 29q-3 5 -5.5 15.5 t-4.5 14.5q2 0 6 -1.5t8.5 -3.5t7.5 -4t2 -3q-3 -7 2 -17.5t12 -18.5t17 -19t12 -13q6 -6 14 -19.5t0 -13.5q9 0 20 -10t17 -20q5 -8 8 -26t5 -24q2 -7 8.5 -13.5t12.5 -9.5l16 -8t13 -7q5 -2 18.5 -10.5t21.5 -11.5q10 -4 16 -4t14.5 2.5t13.5 3.5q15 2 29 -15t21 -21 q36 -19 55 -11q-2 -1 0.5 -7.5t8 -15.5t9 -14.5t5.5 -8.5q5 -6 18 -15t18 -15q6 4 7 9q-3 -8 7 -20t18 -10q14 3 14 32q-31 -15 -49 18q0 1 -2.5 5.5t-4 8.5t-2.5 8.5t0 7.5t5 3q9 0 10 3.5t-2 12.5t-4 13q-1 8 -11 20t-12 15q-5 -9 -16 -8t-16 9q0 -1 -1.5 -5.5t-1.5 -6.5 q-13 0 -15 1q1 3 2.5 17.5t3.5 22.5q1 4 5.5 12t7.5 14.5t4 12.5t-4.5 9.5t-17.5 2.5q-19 -1 -26 -20q-1 -3 -3 -10.5t-5 -11.5t-9 -7q-7 -3 -24 -2t-24 5q-13 8 -22.5 29t-9.5 37q0 10 2.5 26.5t3 25t-5.5 24.5q3 2 9 9.5t10 10.5q2 1 4.5 1.5t4.5 0t4 1.5t3 6q-1 1 -4 3 q-3 3 -4 3q7 -3 28.5 1.5t27.5 -1.5q15 -11 22 2q0 1 -2.5 9.5t-0.5 13.5q5 -27 29 -9q3 -3 15.5 -5t17.5 -5q3 -2 7 -5.5t5.5 -4.5t5 0.5t8.5 6.5q10 -14 12 -24q11 -40 19 -44q7 -3 11 -2t4.5 9.5t0 14t-1.5 12.5l-1 8v18l-1 8q-15 3 -18.5 12t1.5 18.5t15 18.5q1 1 8 3.5 t15.5 6.5t12.5 8q21 19 15 35q7 0 11 9q-1 0 -5 3t-7.5 5t-4.5 2q9 5 2 16q5 3 7.5 11t7.5 10q9 -12 21 -2q7 8 1 16q5 7 20.5 10.5t18.5 9.5q7 -2 8 2t1 12t3 12q4 5 15 9t13 5l17 11q3 4 0 4q18 -2 31 11q10 11 -6 20q3 6 -3 9.5t-15 5.5q3 1 11.5 0.5t10.5 1.5 q15 10 -7 16q-17 5 -43 -12zM879 10q206 36 351 189q-3 3 -12.5 4.5t-12.5 3.5q-18 7 -24 8q1 7 -2.5 13t-8 9t-12.5 8t-11 7q-2 2 -7 6t-7 5.5t-7.5 4.5t-8.5 2t-10 -1l-3 -1q-3 -1 -5.5 -2.5t-5.5 -3t-4 -3t0 -2.5q-21 17 -36 22q-5 1 -11 5.5t-10.5 7t-10 1.5t-11.5 -7 q-5 -5 -6 -15t-2 -13q-7 5 0 17.5t2 18.5q-3 6 -10.5 4.5t-12 -4.5t-11.5 -8.5t-9 -6.5t-8.5 -5.5t-8.5 -7.5q-3 -4 -6 -12t-5 -11q-2 4 -11.5 6.5t-9.5 5.5q2 -10 4 -35t5 -38q7 -31 -12 -48q-27 -25 -29 -40q-4 -22 12 -26q0 -7 -8 -20.5t-7 -21.5q0 -6 2 -16z" />
<glyph unicode="&#xf0ad;" horiz-adv-x="1664" d="M384 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1028 484l-682 -682q-37 -37 -90 -37q-52 0 -91 37l-106 108q-38 36 -38 90q0 53 38 91l681 681q39 -98 114.5 -173.5t173.5 -114.5zM1662 919q0 -39 -23 -106q-47 -134 -164.5 -217.5 t-258.5 -83.5q-185 0 -316.5 131.5t-131.5 316.5t131.5 316.5t316.5 131.5q58 0 121.5 -16.5t107.5 -46.5q16 -11 16 -28t-16 -28l-293 -169v-224l193 -107q5 3 79 48.5t135.5 81t70.5 35.5q15 0 23.5 -10t8.5 -25z" />
<glyph unicode="&#xf0ae;" horiz-adv-x="1792" d="M1024 128h640v128h-640v-128zM640 640h1024v128h-1024v-128zM1280 1152h384v128h-384v-128zM1792 320v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 832v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19 t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf0b0;" horiz-adv-x="1408" d="M1403 1241q17 -41 -14 -70l-493 -493v-742q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-256 256q-19 19 -19 45v486l-493 493q-31 29 -14 70q17 39 59 39h1280q42 0 59 -39z" />
<glyph unicode="&#xf0b1;" horiz-adv-x="1792" d="M640 1280h512v128h-512v-128zM1792 640v-480q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v480h672v-160q0 -26 19 -45t45 -19h320q26 0 45 19t19 45v160h672zM1024 640v-128h-256v128h256zM1792 1120v-384h-1792v384q0 66 47 113t113 47h352v160q0 40 28 68 t68 28h576q40 0 68 -28t28 -68v-160h352q66 0 113 -47t47 -113z" />
<glyph unicode="&#xf0b2;" d="M1283 995l-355 -355l355 -355l144 144q29 31 70 14q39 -17 39 -59v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l144 144l-355 355l-355 -355l144 -144q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l144 -144 l355 355l-355 355l-144 -144q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v448q0 26 19 45t45 19h448q42 0 59 -40q17 -39 -14 -69l-144 -144l355 -355l355 355l-144 144q-31 30 -14 69q17 40 59 40h448q26 0 45 -19t19 -45v-448q0 -42 -39 -59q-13 -5 -25 -5q-26 0 -45 19z " />
<glyph unicode="&#xf0c0;" horiz-adv-x="1920" d="M593 640q-162 -5 -265 -128h-134q-82 0 -138 40.5t-56 118.5q0 353 124 353q6 0 43.5 -21t97.5 -42.5t119 -21.5q67 0 133 23q-5 -37 -5 -66q0 -139 81 -256zM1664 3q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5 t43 97.5t62 81t85.5 53.5t111.5 20q10 0 43 -21.5t73 -48t107 -48t135 -21.5t135 21.5t107 48t73 48t43 21.5q61 0 111.5 -20t85.5 -53.5t62 -81t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM640 1280q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75 t75 -181zM1344 896q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5zM1920 671q0 -78 -56 -118.5t-138 -40.5h-134q-103 123 -265 128q81 117 81 256q0 29 -5 66q66 -23 133 -23q59 0 119 21.5t97.5 42.5 t43.5 21q124 0 124 -353zM1792 1280q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181z" />
<glyph unicode="&#xf0c1;" horiz-adv-x="1664" d="M1456 320q0 40 -28 68l-208 208q-28 28 -68 28q-42 0 -72 -32q3 -3 19 -18.5t21.5 -21.5t15 -19t13 -25.5t3.5 -27.5q0 -40 -28 -68t-68 -28q-15 0 -27.5 3.5t-25.5 13t-19 15t-21.5 21.5t-18.5 19q-33 -31 -33 -73q0 -40 28 -68l206 -207q27 -27 68 -27q40 0 68 26 l147 146q28 28 28 67zM753 1025q0 40 -28 68l-206 207q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l208 -208q27 -27 68 -27q42 0 72 31q-3 3 -19 18.5t-21.5 21.5t-15 19t-13 25.5t-3.5 27.5q0 40 28 68t68 28q15 0 27.5 -3.5t25.5 -13t19 -15 t21.5 -21.5t18.5 -19q33 31 33 73zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-206 207q-83 83 -83 203q0 123 88 209l-88 88q-86 -88 -208 -88q-120 0 -204 84l-208 208q-84 84 -84 204t85 203l147 146q83 83 203 83q121 0 204 -85l206 -207 q83 -83 83 -203q0 -123 -88 -209l88 -88q86 88 208 88q120 0 204 -84l208 -208q84 -84 84 -204z" />
<glyph unicode="&#xf0c2;" horiz-adv-x="1920" d="M1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088q-185 0 -316.5 131.5t-131.5 316.5q0 132 71 241.5t187 163.5q-2 28 -2 43q0 212 150 362t362 150q158 0 286.5 -88t187.5 -230q70 62 166 62q106 0 181 -75t75 -181q0 -75 -41 -138q129 -30 213 -134.5t84 -239.5z " />
<glyph unicode="&#xf0c3;" horiz-adv-x="1664" d="M1527 88q56 -89 21.5 -152.5t-140.5 -63.5h-1152q-106 0 -140.5 63.5t21.5 152.5l503 793v399h-64q-26 0 -45 19t-19 45t19 45t45 19h512q26 0 45 -19t19 -45t-19 -45t-45 -19h-64v-399zM748 813l-272 -429h712l-272 429l-20 31v37v399h-128v-399v-37z" />
<glyph unicode="&#xf0c4;" horiz-adv-x="1792" d="M960 640q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1260 576l507 -398q28 -20 25 -56q-5 -35 -35 -51l-128 -64q-13 -7 -29 -7q-17 0 -31 8l-690 387l-110 -66q-8 -4 -12 -5q14 -49 10 -97q-7 -77 -56 -147.5t-132 -123.5q-132 -84 -277 -84 q-136 0 -222 78q-90 84 -79 207q7 76 56 147t131 124q132 84 278 84q83 0 151 -31q9 13 22 22l122 73l-122 73q-13 9 -22 22q-68 -31 -151 -31q-146 0 -278 84q-82 53 -131 124t-56 147q-5 59 15.5 113t63.5 93q85 79 222 79q145 0 277 -84q83 -52 132 -123t56 -148 q4 -48 -10 -97q4 -1 12 -5l110 -66l690 387q14 8 31 8q16 0 29 -7l128 -64q30 -16 35 -51q3 -36 -25 -56zM579 836q46 42 21 108t-106 117q-92 59 -192 59q-74 0 -113 -36q-46 -42 -21 -108t106 -117q92 -59 192 -59q74 0 113 36zM494 91q81 51 106 117t-21 108 q-39 36 -113 36q-100 0 -192 -59q-81 -51 -106 -117t21 -108q39 -36 113 -36q100 0 192 59zM672 704l96 -58v11q0 36 33 56l14 8l-79 47l-26 -26q-3 -3 -10 -11t-12 -12q-2 -2 -4 -3.5t-3 -2.5zM896 480l96 -32l736 576l-128 64l-768 -431v-113l-160 -96l9 -8q2 -2 7 -6 q4 -4 11 -12t11 -12l26 -26zM1600 64l128 64l-520 408l-177 -138q-2 -3 -13 -7z" />
<glyph unicode="&#xf0c5;" horiz-adv-x="1792" d="M1696 1152q40 0 68 -28t28 -68v-1216q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v288h-544q-40 0 -68 28t-28 68v672q0 40 20 88t48 76l408 408q28 28 76 48t88 20h416q40 0 68 -28t28 -68v-328q68 40 128 40h416zM1152 939l-299 -299h299v299zM512 1323l-299 -299 h299v299zM708 676l316 316v416h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h512v256q0 40 20 88t48 76zM1664 -128v1152h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h896z" />
<glyph unicode="&#xf0c6;" horiz-adv-x="1408" d="M1404 151q0 -117 -79 -196t-196 -79q-135 0 -235 100l-777 776q-113 115 -113 271q0 159 110 270t269 111q158 0 273 -113l605 -606q10 -10 10 -22q0 -16 -30.5 -46.5t-46.5 -30.5q-13 0 -23 10l-606 607q-79 77 -181 77q-106 0 -179 -75t-73 -181q0 -105 76 -181 l776 -777q63 -63 145 -63q64 0 106 42t42 106q0 82 -63 145l-581 581q-26 24 -60 24q-29 0 -48 -19t-19 -48q0 -32 25 -59l410 -410q10 -10 10 -22q0 -16 -31 -47t-47 -31q-12 0 -22 10l-410 410q-63 61 -63 149q0 82 57 139t139 57q88 0 149 -63l581 -581q100 -98 100 -235 z" />
<glyph unicode="&#xf0c7;" d="M384 0h768v384h-768v-384zM1280 0h128v896q0 14 -10 38.5t-20 34.5l-281 281q-10 10 -34 20t-39 10v-416q0 -40 -28 -68t-68 -28h-576q-40 0 -68 28t-28 68v416h-128v-1280h128v416q0 40 28 68t68 28h832q40 0 68 -28t28 -68v-416zM896 928v320q0 13 -9.5 22.5t-22.5 9.5 h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5zM1536 896v-928q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h928q40 0 88 -20t76 -48l280 -280q28 -28 48 -76t20 -88z" />
<glyph unicode="&#xf0c8;" d="M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf0c9;" d="M1536 192v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 704v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 1216v-128q0 -26 -19 -45 t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf0ca;" horiz-adv-x="1792" d="M384 128q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 640q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5 t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1152q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z M1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" />
<glyph unicode="&#xf0cb;" horiz-adv-x="1792" d="M381 -84q0 -80 -54.5 -126t-135.5 -46q-106 0 -172 66l57 88q49 -45 106 -45q29 0 50.5 14.5t21.5 42.5q0 64 -105 56l-26 56q8 10 32.5 43.5t42.5 54t37 38.5v1q-16 0 -48.5 -1t-48.5 -1v-53h-106v152h333v-88l-95 -115q51 -12 81 -49t30 -88zM383 543v-159h-362 q-6 36 -6 54q0 51 23.5 93t56.5 68t66 47.5t56.5 43.5t23.5 45q0 25 -14.5 38.5t-39.5 13.5q-46 0 -81 -58l-85 59q24 51 71.5 79.5t105.5 28.5q73 0 123 -41.5t50 -112.5q0 -50 -34 -91.5t-75 -64.5t-75.5 -50.5t-35.5 -52.5h127v60h105zM1792 224v-192q0 -13 -9.5 -22.5 t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1123v-99h-335v99h107q0 41 0.5 122t0.5 121v12h-2q-8 -17 -50 -54l-71 76l136 127h106v-404h108zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5 t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" />
<glyph unicode="&#xf0cc;" horiz-adv-x="1792" d="M1760 640q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1728q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h1728zM483 704q-28 35 -51 80q-48 97 -48 188q0 181 134 309q133 127 393 127q50 0 167 -19q66 -12 177 -48q10 -38 21 -118q14 -123 14 -183q0 -18 -5 -45l-12 -3l-84 6 l-14 2q-50 149 -103 205q-88 91 -210 91q-114 0 -182 -59q-67 -58 -67 -146q0 -73 66 -140t279 -129q69 -20 173 -66q58 -28 95 -52h-743zM990 448h411q7 -39 7 -92q0 -111 -41 -212q-23 -55 -71 -104q-37 -35 -109 -81q-80 -48 -153 -66q-80 -21 -203 -21q-114 0 -195 23 l-140 40q-57 16 -72 28q-8 8 -8 22v13q0 108 -2 156q-1 30 0 68l2 37v44l102 2q15 -34 30 -71t22.5 -56t12.5 -27q35 -57 80 -94q43 -36 105 -57q59 -22 132 -22q64 0 139 27q77 26 122 86q47 61 47 129q0 84 -81 157q-34 29 -137 71z" />
<glyph unicode="&#xf0cd;" d="M48 1313q-37 2 -45 4l-3 88q13 1 40 1q60 0 112 -4q132 -7 166 -7q86 0 168 3q116 4 146 5q56 0 86 2l-1 -14l2 -64v-9q-60 -9 -124 -9q-60 0 -79 -25q-13 -14 -13 -132q0 -13 0.5 -32.5t0.5 -25.5l1 -229l14 -280q6 -124 51 -202q35 -59 96 -92q88 -47 177 -47 q104 0 191 28q56 18 99 51q48 36 65 64q36 56 53 114q21 73 21 229q0 79 -3.5 128t-11 122.5t-13.5 159.5l-4 59q-5 67 -24 88q-34 35 -77 34l-100 -2l-14 3l2 86h84l205 -10q76 -3 196 10l18 -2q6 -38 6 -51q0 -7 -4 -31q-45 -12 -84 -13q-73 -11 -79 -17q-15 -15 -15 -41 q0 -7 1.5 -27t1.5 -31q8 -19 22 -396q6 -195 -15 -304q-15 -76 -41 -122q-38 -65 -112 -123q-75 -57 -182 -89q-109 -33 -255 -33q-167 0 -284 46q-119 47 -179 122q-61 76 -83 195q-16 80 -16 237v333q0 188 -17 213q-25 36 -147 39zM1536 -96v64q0 14 -9 23t-23 9h-1472 q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h1472q14 0 23 9t9 23z" />
<glyph unicode="&#xf0ce;" horiz-adv-x="1664" d="M512 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23 v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 160v192 q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192 q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1664 1248v-1088q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1344q66 0 113 -47t47 -113 z" />
<glyph unicode="&#xf0d0;" horiz-adv-x="1664" d="M1190 955l293 293l-107 107l-293 -293zM1637 1248q0 -27 -18 -45l-1286 -1286q-18 -18 -45 -18t-45 18l-198 198q-18 18 -18 45t18 45l1286 1286q18 18 45 18t45 -18l198 -198q18 -18 18 -45zM286 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM636 1276 l196 -60l-196 -60l-60 -196l-60 196l-196 60l196 60l60 196zM1566 798l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM926 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98z" />
<glyph unicode="&#xf0d1;" horiz-adv-x="1792" d="M640 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM256 640h384v256h-158q-13 0 -22 -9l-195 -195q-9 -9 -9 -22v-30zM1536 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM1792 1216v-1024q0 -15 -4 -26.5t-13.5 -18.5 t-16.5 -11.5t-23.5 -6t-22.5 -2t-25.5 0t-22.5 0.5q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-64q-3 0 -22.5 -0.5t-25.5 0t-22.5 2t-23.5 6t-16.5 11.5t-13.5 18.5t-4 26.5q0 26 19 45t45 19v320q0 8 -0.5 35t0 38 t2.5 34.5t6.5 37t14 30.5t22.5 30l198 198q19 19 50.5 32t58.5 13h160v192q0 26 19 45t45 19h1024q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf0d2;" d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103q-111 0 -218 32q59 93 78 164q9 34 54 211q20 -39 73 -67.5t114 -28.5q121 0 216 68.5t147 188.5t52 270q0 114 -59.5 214t-172.5 163t-255 63q-105 0 -196 -29t-154.5 -77t-109 -110.5t-67 -129.5t-21.5 -134 q0 -104 40 -183t117 -111q30 -12 38 20q2 7 8 31t8 30q6 23 -11 43q-51 61 -51 151q0 151 104.5 259.5t273.5 108.5q151 0 235.5 -82t84.5 -213q0 -170 -68.5 -289t-175.5 -119q-61 0 -98 43.5t-23 104.5q8 35 26.5 93.5t30 103t11.5 75.5q0 50 -27 83t-77 33 q-62 0 -105 -57t-43 -142q0 -73 25 -122l-99 -418q-17 -70 -13 -177q-206 91 -333 281t-127 423q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf0d3;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-725q85 122 108 210q9 34 53 209q21 -39 73.5 -67t112.5 -28q181 0 295.5 147.5t114.5 373.5q0 84 -35 162.5t-96.5 139t-152.5 97t-197 36.5q-104 0 -194.5 -28.5t-153 -76.5 t-107.5 -109.5t-66.5 -128t-21.5 -132.5q0 -102 39.5 -180t116.5 -110q13 -5 23.5 0t14.5 19q10 44 15 61q6 23 -11 42q-50 62 -50 150q0 150 103.5 256.5t270.5 106.5q149 0 232.5 -81t83.5 -210q0 -168 -67.5 -286t-173.5 -118q-60 0 -97 43.5t-23 103.5q8 34 26.5 92.5 t29.5 102t11 74.5q0 49 -26.5 81.5t-75.5 32.5q-61 0 -103.5 -56.5t-42.5 -139.5q0 -72 24 -121l-98 -414q-24 -100 -7 -254h-183q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960z" />
<glyph unicode="&#xf0d4;" d="M917 631q0 26 -6 64h-362v-132h217q-3 -24 -16.5 -50t-37.5 -53t-66.5 -44.5t-96.5 -17.5q-99 0 -169 71t-70 171t70 171t169 71q92 0 153 -59l104 101q-108 100 -257 100q-160 0 -272 -112.5t-112 -271.5t112 -271.5t272 -112.5q165 0 266.5 105t101.5 270zM1262 585 h109v110h-109v110h-110v-110h-110v-110h110v-110h110v110zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf0d5;" horiz-adv-x="2304" d="M1437 623q0 -208 -87 -370.5t-248 -254t-369 -91.5q-149 0 -285 58t-234 156t-156 234t-58 285t58 285t156 234t234 156t285 58q286 0 491 -192l-199 -191q-117 113 -292 113q-123 0 -227.5 -62t-165.5 -168.5t-61 -232.5t61 -232.5t165.5 -168.5t227.5 -62 q83 0 152.5 23t114.5 57.5t78.5 78.5t49 83t21.5 74h-416v252h692q12 -63 12 -122zM2304 745v-210h-209v-209h-210v209h-209v210h209v209h210v-209h209z" />
<glyph unicode="&#xf0d6;" horiz-adv-x="1920" d="M768 384h384v96h-128v448h-114l-148 -137l77 -80q42 37 55 57h2v-288h-128v-96zM1280 640q0 -70 -21 -142t-59.5 -134t-101.5 -101t-138 -39t-138 39t-101.5 101t-59.5 134t-21 142t21 142t59.5 134t101.5 101t138 39t138 -39t101.5 -101t59.5 -134t21 -142zM1792 384 v512q-106 0 -181 75t-75 181h-1152q0 -106 -75 -181t-181 -75v-512q106 0 181 -75t75 -181h1152q0 106 75 181t181 75zM1920 1216v-1152q0 -26 -19 -45t-45 -19h-1792q-26 0 -45 19t-19 45v1152q0 26 19 45t45 19h1792q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf0d7;" horiz-adv-x="1024" d="M1024 832q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf0d8;" horiz-adv-x="1024" d="M1024 320q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
<glyph unicode="&#xf0d9;" horiz-adv-x="640" d="M640 1088v-896q0 -26 -19 -45t-45 -19t-45 19l-448 448q-19 19 -19 45t19 45l448 448q19 19 45 19t45 -19t19 -45z" />
<glyph unicode="&#xf0da;" horiz-adv-x="640" d="M576 640q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19t-19 45v896q0 26 19 45t45 19t45 -19l448 -448q19 -19 19 -45z" />
<glyph unicode="&#xf0db;" horiz-adv-x="1664" d="M160 0h608v1152h-640v-1120q0 -13 9.5 -22.5t22.5 -9.5zM1536 32v1120h-640v-1152h608q13 0 22.5 9.5t9.5 22.5zM1664 1248v-1216q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1344q66 0 113 -47t47 -113z" />
<glyph unicode="&#xf0dc;" horiz-adv-x="1024" d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45zM1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
<glyph unicode="&#xf0dd;" horiz-adv-x="1024" d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf0de;" horiz-adv-x="1024" d="M1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
<glyph unicode="&#xf0e0;" horiz-adv-x="1792" d="M1792 826v-794q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v794q44 -49 101 -87q362 -246 497 -345q57 -42 92.5 -65.5t94.5 -48t110 -24.5h1h1q51 0 110 24.5t94.5 48t92.5 65.5q170 123 498 345q57 39 100 87zM1792 1120q0 -79 -49 -151t-122 -123 q-376 -261 -468 -325q-10 -7 -42.5 -30.5t-54 -38t-52 -32.5t-57.5 -27t-50 -9h-1h-1q-23 0 -50 9t-57.5 27t-52 32.5t-54 38t-42.5 30.5q-91 64 -262 182.5t-205 142.5q-62 42 -117 115.5t-55 136.5q0 78 41.5 130t118.5 52h1472q65 0 112.5 -47t47.5 -113z" />
<glyph unicode="&#xf0e1;" d="M349 911v-991h-330v991h330zM370 1217q1 -73 -50.5 -122t-135.5 -49h-2q-82 0 -132 49t-50 122q0 74 51.5 122.5t134.5 48.5t133 -48.5t51 -122.5zM1536 488v-568h-329v530q0 105 -40.5 164.5t-126.5 59.5q-63 0 -105.5 -34.5t-63.5 -85.5q-11 -30 -11 -81v-553h-329 q2 399 2 647t-1 296l-1 48h329v-144h-2q20 32 41 56t56.5 52t87 43.5t114.5 15.5q171 0 275 -113.5t104 -332.5z" />
<glyph unicode="&#xf0e2;" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5 t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298z" />
<glyph unicode="&#xf0e3;" horiz-adv-x="1792" d="M1771 0q0 -53 -37 -90l-107 -108q-39 -37 -91 -37q-53 0 -90 37l-363 364q-38 36 -38 90q0 53 43 96l-256 256l-126 -126q-14 -14 -34 -14t-34 14q2 -2 12.5 -12t12.5 -13t10 -11.5t10 -13.5t6 -13.5t5.5 -16.5t1.5 -18q0 -38 -28 -68q-3 -3 -16.5 -18t-19 -20.5 t-18.5 -16.5t-22 -15.5t-22 -9t-26 -4.5q-40 0 -68 28l-408 408q-28 28 -28 68q0 13 4.5 26t9 22t15.5 22t16.5 18.5t20.5 19t18 16.5q30 28 68 28q10 0 18 -1.5t16.5 -5.5t13.5 -6t13.5 -10t11.5 -10t13 -12.5t12 -12.5q-14 14 -14 34t14 34l348 348q14 14 34 14t34 -14 q-2 2 -12.5 12t-12.5 13t-10 11.5t-10 13.5t-6 13.5t-5.5 16.5t-1.5 18q0 38 28 68q3 3 16.5 18t19 20.5t18.5 16.5t22 15.5t22 9t26 4.5q40 0 68 -28l408 -408q28 -28 28 -68q0 -13 -4.5 -26t-9 -22t-15.5 -22t-16.5 -18.5t-20.5 -19t-18 -16.5q-30 -28 -68 -28 q-10 0 -18 1.5t-16.5 5.5t-13.5 6t-13.5 10t-11.5 10t-13 12.5t-12 12.5q14 -14 14 -34t-14 -34l-126 -126l256 -256q43 43 96 43q52 0 91 -37l363 -363q37 -39 37 -91z" />
<glyph unicode="&#xf0e4;" horiz-adv-x="1792" d="M384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM576 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1004 351l101 382q6 26 -7.5 48.5t-38.5 29.5 t-48 -6.5t-30 -39.5l-101 -382q-60 -5 -107 -43.5t-63 -98.5q-20 -77 20 -146t117 -89t146 20t89 117q16 60 -6 117t-72 91zM1664 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 1024q0 53 -37.5 90.5 t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1472 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1792 384q0 -261 -141 -483q-19 -29 -54 -29h-1402q-35 0 -54 29 q-141 221 -141 483q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
<glyph unicode="&#xf0e5;" horiz-adv-x="1792" d="M896 1152q-204 0 -381.5 -69.5t-282 -187.5t-104.5 -255q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5t104.5 255t-104.5 255t-282 187.5t-381.5 69.5zM1792 640 q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281q0 174 120 321.5 t326 233t450 85.5t450 -85.5t326 -233t120 -321.5z" />
<glyph unicode="&#xf0e6;" horiz-adv-x="1792" d="M704 1152q-153 0 -286 -52t-211.5 -141t-78.5 -191q0 -82 53 -158t149 -132l97 -56l-35 -84q34 20 62 39l44 31l53 -10q78 -14 153 -14q153 0 286 52t211.5 141t78.5 191t-78.5 191t-211.5 141t-286 52zM704 1280q191 0 353.5 -68.5t256.5 -186.5t94 -257t-94 -257 t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224q0 139 94 257t256.5 186.5 t353.5 68.5zM1526 111q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129 q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230q0 -120 -71 -224.5t-195 -176.5z" />
<glyph unicode="&#xf0e7;" horiz-adv-x="896" d="M885 970q18 -20 7 -44l-540 -1157q-13 -25 -42 -25q-4 0 -14 2q-17 5 -25.5 19t-4.5 30l197 808l-406 -101q-4 -1 -12 -1q-18 0 -31 11q-18 15 -13 39l201 825q4 14 16 23t28 9h328q19 0 32 -12.5t13 -29.5q0 -8 -5 -18l-171 -463l396 98q8 2 12 2q19 0 34 -15z" />
<glyph unicode="&#xf0e8;" horiz-adv-x="1792" d="M1792 288v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320 q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192q0 52 38 90t90 38h512v192h-96q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-96v-192h512q52 0 90 -38t38 -90v-192h96q40 0 68 -28t28 -68 z" />
<glyph unicode="&#xf0e9;" horiz-adv-x="1664" d="M896 708v-580q0 -104 -76 -180t-180 -76t-180 76t-76 180q0 26 19 45t45 19t45 -19t19 -45q0 -50 39 -89t89 -39t89 39t39 89v580q33 11 64 11t64 -11zM1664 681q0 -13 -9.5 -22.5t-22.5 -9.5q-11 0 -23 10q-49 46 -93 69t-102 23q-68 0 -128 -37t-103 -97 q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -28 -17q-18 0 -29 17q-4 6 -14.5 24t-17.5 28q-43 60 -102.5 97t-127.5 37t-127.5 -37t-102.5 -97q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -29 -17q-17 0 -28 17q-4 6 -14.5 24t-17.5 28q-43 60 -103 97t-128 37q-58 0 -102 -23t-93 -69 q-12 -10 -23 -10q-13 0 -22.5 9.5t-9.5 22.5q0 5 1 7q45 183 172.5 319.5t298 204.5t360.5 68q140 0 274.5 -40t246.5 -113.5t194.5 -187t115.5 -251.5q1 -2 1 -7zM896 1408v-98q-42 2 -64 2t-64 -2v98q0 26 19 45t45 19t45 -19t19 -45z" />
<glyph unicode="&#xf0ea;" horiz-adv-x="1792" d="M768 -128h896v640h-416q-40 0 -68 28t-28 68v416h-384v-1152zM1024 1312v64q0 13 -9.5 22.5t-22.5 9.5h-704q-13 0 -22.5 -9.5t-9.5 -22.5v-64q0 -13 9.5 -22.5t22.5 -9.5h704q13 0 22.5 9.5t9.5 22.5zM1280 640h299l-299 299v-299zM1792 512v-672q0 -40 -28 -68t-68 -28 h-960q-40 0 -68 28t-28 68v160h-544q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1088q40 0 68 -28t28 -68v-328q21 -13 36 -28l408 -408q28 -28 48 -76t20 -88z" />
<glyph unicode="&#xf0eb;" horiz-adv-x="1024" d="M736 960q0 -13 -9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5q0 46 -54 71t-106 25q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5q50 0 99.5 -16t87 -54t37.5 -90zM896 960q0 72 -34.5 134t-90 101.5t-123 62t-136.5 22.5t-136.5 -22.5t-123 -62t-90 -101.5t-34.5 -134 q0 -101 68 -180q10 -11 30.5 -33t30.5 -33q128 -153 141 -298h228q13 145 141 298q10 11 30.5 33t30.5 33q68 79 68 180zM1024 960q0 -155 -103 -268q-45 -49 -74.5 -87t-59.5 -95.5t-34 -107.5q47 -28 47 -82q0 -37 -25 -64q25 -27 25 -64q0 -52 -45 -81q13 -23 13 -47 q0 -46 -31.5 -71t-77.5 -25q-20 -44 -60 -70t-87 -26t-87 26t-60 70q-46 0 -77.5 25t-31.5 71q0 24 13 47q-45 29 -45 81q0 37 25 64q-25 27 -25 64q0 54 47 82q-4 50 -34 107.5t-59.5 95.5t-74.5 87q-103 113 -103 268q0 99 44.5 184.5t117 142t164 89t186.5 32.5 t186.5 -32.5t164 -89t117 -142t44.5 -184.5z" />
<glyph unicode="&#xf0ec;" horiz-adv-x="1792" d="M1792 352v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5q-12 0 -24 10l-319 320q-9 9 -9 22q0 14 9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h1376q13 0 22.5 -9.5t9.5 -22.5zM1792 896q0 -14 -9 -23l-320 -320q-9 -9 -23 -9 q-13 0 -22.5 9.5t-9.5 22.5v192h-1376q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1376v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" />
<glyph unicode="&#xf0ed;" horiz-adv-x="1920" d="M1280 608q0 14 -9 23t-23 9h-224v352q0 13 -9.5 22.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-352h-224q-13 0 -22.5 -9.5t-9.5 -22.5q0 -14 9 -23l352 -352q9 -9 23 -9t23 9l351 351q10 12 10 24zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088 q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" />
<glyph unicode="&#xf0ee;" horiz-adv-x="1920" d="M1280 672q0 14 -9 23l-352 352q-9 9 -23 9t-23 -9l-351 -351q-10 -12 -10 -24q0 -14 9 -23t23 -9h224v-352q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5v352h224q13 0 22.5 9.5t9.5 22.5zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088 q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" />
<glyph unicode="&#xf0f0;" horiz-adv-x="1408" d="M384 192q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM1408 131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190q0 68 5.5 131t24 138t47.5 132.5t81 103t120 60.5q-22 -52 -22 -120v-203q-58 -20 -93 -70t-35 -111q0 -80 56 -136t136 -56 t136 56t56 136q0 61 -35.5 111t-92.5 70v203q0 62 25 93q132 -104 295 -104t295 104q25 -31 25 -93v-64q-106 0 -181 -75t-75 -181v-89q-32 -29 -32 -71q0 -40 28 -68t68 -28t68 28t28 68q0 42 -32 71v89q0 52 38 90t90 38t90 -38t38 -90v-89q-32 -29 -32 -71q0 -40 28 -68 t68 -28t68 28t28 68q0 42 -32 71v89q0 68 -34.5 127.5t-93.5 93.5q0 10 0.5 42.5t0 48t-2.5 41.5t-7 47t-13 40q68 -15 120 -60.5t81 -103t47.5 -132.5t24 -138t5.5 -131zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5 t271.5 -112.5t112.5 -271.5z" />
<glyph unicode="&#xf0f1;" horiz-adv-x="1408" d="M1280 832q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 832q0 -62 -35.5 -111t-92.5 -70v-395q0 -159 -131.5 -271.5t-316.5 -112.5t-316.5 112.5t-131.5 271.5v132q-164 20 -274 128t-110 252v512q0 26 19 45t45 19q6 0 16 -2q17 30 47 48 t65 18q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5q-33 0 -64 18v-402q0 -106 94 -181t226 -75t226 75t94 181v402q-31 -18 -64 -18q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5q35 0 65 -18t47 -48q10 2 16 2q26 0 45 -19t19 -45v-512q0 -144 -110 -252 t-274 -128v-132q0 -106 94 -181t226 -75t226 75t94 181v395q-57 21 -92.5 70t-35.5 111q0 80 56 136t136 56t136 -56t56 -136z" />
<glyph unicode="&#xf0f2;" horiz-adv-x="1792" d="M640 1152h512v128h-512v-128zM288 1152v-1280h-64q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h64zM1408 1152v-1280h-1024v1280h128v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h128zM1792 928v-832q0 -92 -66 -158t-158 -66h-64v1280h64q92 0 158 -66 t66 -158z" />
<glyph unicode="&#xf0f3;" horiz-adv-x="1792" d="M912 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM1728 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q50 42 91 88t85 119.5t74.5 158.5 t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q190 -28 307 -158.5t117 -282.5q0 -139 19.5 -260t50 -206t74.5 -158.5t85 -119.5t91 -88z" />
<glyph unicode="&#xf0f4;" horiz-adv-x="1920" d="M1664 896q0 80 -56 136t-136 56h-64v-384h64q80 0 136 56t56 136zM0 128h1792q0 -106 -75 -181t-181 -75h-1280q-106 0 -181 75t-75 181zM1856 896q0 -159 -112.5 -271.5t-271.5 -112.5h-64v-32q0 -92 -66 -158t-158 -66h-704q-92 0 -158 66t-66 158v736q0 26 19 45 t45 19h1152q159 0 271.5 -112.5t112.5 -271.5z" />
<glyph unicode="&#xf0f5;" horiz-adv-x="1408" d="M640 1472v-640q0 -61 -35.5 -111t-92.5 -70v-779q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v779q-57 20 -92.5 70t-35.5 111v640q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45 t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45zM1408 1472v-1600q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v512h-224q-13 0 -22.5 9.5t-9.5 22.5v800q0 132 94 226t226 94h256q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf0f6;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M384 736q0 14 9 23t23 9h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64zM1120 512q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704zM1120 256q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704 q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704z" />
<glyph unicode="&#xf0f7;" horiz-adv-x="1408" d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 -128h384v1536h-1152v-1536h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224zM1408 1472v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h1280q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf0f8;" horiz-adv-x="1408" d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 -128h384v1152h-256v-32q0 -40 -28 -68t-68 -28h-448q-40 0 -68 28t-28 68v32h-256v-1152h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224zM896 1056v320q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-96h-128v96q0 13 -9.5 22.5 t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v96h128v-96q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1408 1088v-1280q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1280q0 26 19 45t45 19h320 v288q0 40 28 68t68 28h448q40 0 68 -28t28 -68v-288h320q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf0f9;" horiz-adv-x="1920" d="M640 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM256 640h384v256h-158q-14 -2 -22 -9l-195 -195q-7 -12 -9 -22v-30zM1536 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5zM1664 800v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM1920 1344v-1152 q0 -26 -19 -45t-45 -19h-192q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-128q-26 0 -45 19t-19 45t19 45t45 19v416q0 26 13 58t32 51l198 198q19 19 51 32t58 13h160v320q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf0fa;" horiz-adv-x="1792" d="M1280 416v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM640 1152h512v128h-512v-128zM256 1152v-1280h-32 q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h32zM1440 1152v-1280h-1088v1280h160v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h160zM1792 928v-832q0 -92 -66 -158t-158 -66h-32v1280h32q92 0 158 -66t66 -158z" />
<glyph unicode="&#xf0fb;" horiz-adv-x="1920" d="M1920 576q-1 -32 -288 -96l-352 -32l-224 -64h-64l-293 -352h69q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-96h-160h-64v32h64v416h-160l-192 -224h-96l-32 32v192h32v32h128v8l-192 24v128l192 24v8h-128v32h-32v192l32 32h96l192 -224h160v416h-64v32h64h160h96 q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-69l293 -352h64l224 -64l352 -32q261 -58 287 -93z" />
<glyph unicode="&#xf0fc;" horiz-adv-x="1664" d="M640 640v384h-256v-256q0 -53 37.5 -90.5t90.5 -37.5h128zM1664 192v-192h-1152v192l128 192h-128q-159 0 -271.5 112.5t-112.5 271.5v320l-64 64l32 128h480l32 128h960l32 -192l-64 -32v-800z" />
<glyph unicode="&#xf0fd;" d="M1280 192v896q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-512v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-896q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h512v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf0fe;" d="M1280 576v128q0 26 -19 45t-45 19h-320v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-320q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h320v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h320q26 0 45 19t19 45zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf100;" horiz-adv-x="1024" d="M627 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23zM1011 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23 t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23z" />
<glyph unicode="&#xf101;" horiz-adv-x="1024" d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM979 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23 l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
<glyph unicode="&#xf102;" horiz-adv-x="1152" d="M1075 224q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM1075 608q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393 q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
<glyph unicode="&#xf103;" horiz-adv-x="1152" d="M1075 672q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23zM1075 1056q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23 t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
<glyph unicode="&#xf104;" horiz-adv-x="640" d="M627 992q0 -13 -10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
<glyph unicode="&#xf105;" horiz-adv-x="640" d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
<glyph unicode="&#xf106;" horiz-adv-x="1152" d="M1075 352q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
<glyph unicode="&#xf107;" horiz-adv-x="1152" d="M1075 800q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
<glyph unicode="&#xf108;" horiz-adv-x="1920" d="M1792 544v832q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5zM1920 1376v-1088q0 -66 -47 -113t-113 -47h-544q0 -37 16 -77.5t32 -71t16 -43.5q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19 t-19 45q0 14 16 44t32 70t16 78h-544q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
<glyph unicode="&#xf109;" horiz-adv-x="1920" d="M416 256q-66 0 -113 47t-47 113v704q0 66 47 113t113 47h1088q66 0 113 -47t47 -113v-704q0 -66 -47 -113t-113 -47h-1088zM384 1120v-704q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5t9.5 22.5v704q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5z M1760 192h160v-96q0 -40 -47 -68t-113 -28h-1600q-66 0 -113 28t-47 68v96h160h1600zM1040 96q16 0 16 16t-16 16h-160q-16 0 -16 -16t16 -16h160z" />
<glyph unicode="&#xf10a;" horiz-adv-x="1152" d="M640 128q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1024 288v960q0 13 -9.5 22.5t-22.5 9.5h-832q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h832q13 0 22.5 9.5t9.5 22.5zM1152 1248v-1088q0 -66 -47 -113t-113 -47h-832 q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h832q66 0 113 -47t47 -113z" />
<glyph unicode="&#xf10b;" horiz-adv-x="768" d="M464 128q0 33 -23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5t23.5 -56.5t56.5 -23.5t56.5 23.5t23.5 56.5zM672 288v704q0 13 -9.5 22.5t-22.5 9.5h-512q-13 0 -22.5 -9.5t-9.5 -22.5v-704q0 -13 9.5 -22.5t22.5 -9.5h512q13 0 22.5 9.5t9.5 22.5zM480 1136 q0 16 -16 16h-160q-16 0 -16 -16t16 -16h160q16 0 16 16zM768 1152v-1024q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v1024q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" />
<glyph unicode="&#xf10c;" d="M768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103 t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf10d;" horiz-adv-x="1664" d="M768 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z M1664 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z" />
<glyph unicode="&#xf10e;" horiz-adv-x="1664" d="M768 1216v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136zM1664 1216 v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136z" />
<glyph unicode="&#xf110;" horiz-adv-x="1792" d="M526 142q0 -53 -37.5 -90.5t-90.5 -37.5q-52 0 -90 38t-38 90q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1024 -64q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM320 640q0 -53 -37.5 -90.5t-90.5 -37.5 t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1522 142q0 -52 -38 -90t-90 -38q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM558 1138q0 -66 -47 -113t-113 -47t-113 47t-47 113t47 113t113 47t113 -47t47 -113z M1728 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1088 1344q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1618 1138q0 -93 -66 -158.5t-158 -65.5q-93 0 -158.5 65.5t-65.5 158.5 q0 92 65.5 158t158.5 66q92 0 158 -66t66 -158z" />
<glyph unicode="&#xf111;" d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf112;" horiz-adv-x="1792" d="M1792 416q0 -166 -127 -451q-3 -7 -10.5 -24t-13.5 -30t-13 -22q-12 -17 -28 -17q-15 0 -23.5 10t-8.5 25q0 9 2.5 26.5t2.5 23.5q5 68 5 123q0 101 -17.5 181t-48.5 138.5t-80 101t-105.5 69.5t-133 42.5t-154 21.5t-175.5 6h-224v-256q0 -26 -19 -45t-45 -19t-45 19 l-512 512q-19 19 -19 45t19 45l512 512q19 19 45 19t45 -19t19 -45v-256h224q713 0 875 -403q53 -134 53 -333z" />
<glyph unicode="&#xf113;" horiz-adv-x="1664" d="M640 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1280 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1440 320 q0 120 -69 204t-187 84q-41 0 -195 -21q-71 -11 -157 -11t-157 11q-152 21 -195 21q-118 0 -187 -84t-69 -204q0 -88 32 -153.5t81 -103t122 -60t140 -29.5t149 -7h168q82 0 149 7t140 29.5t122 60t81 103t32 153.5zM1664 496q0 -207 -61 -331q-38 -77 -105.5 -133t-141 -86 t-170 -47.5t-171.5 -22t-167 -4.5q-78 0 -142 3t-147.5 12.5t-152.5 30t-137 51.5t-121 81t-86 115q-62 123 -62 331q0 237 136 396q-27 82 -27 170q0 116 51 218q108 0 190 -39.5t189 -123.5q147 35 309 35q148 0 280 -32q105 82 187 121t189 39q51 -102 51 -218 q0 -87 -27 -168q136 -160 136 -398z" />
<glyph unicode="&#xf114;" horiz-adv-x="1664" d="M1536 224v704q0 40 -28 68t-68 28h-704q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68v-960q0 -40 28 -68t68 -28h1216q40 0 68 28t28 68zM1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320 q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" />
<glyph unicode="&#xf115;" horiz-adv-x="1920" d="M1781 605q0 35 -53 35h-1088q-40 0 -85.5 -21.5t-71.5 -52.5l-294 -363q-18 -24 -18 -40q0 -35 53 -35h1088q40 0 86 22t71 53l294 363q18 22 18 39zM640 768h768v160q0 40 -28 68t-68 28h-576q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68 v-853l256 315q44 53 116 87.5t140 34.5zM1909 605q0 -62 -46 -120l-295 -363q-43 -53 -116 -87.5t-140 -34.5h-1088q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158v-160h192q54 0 99 -24.5t67 -70.5q15 -32 15 -68z " />
<glyph unicode="&#xf116;" horiz-adv-x="1792" />
<glyph unicode="&#xf117;" horiz-adv-x="1792" />
<glyph unicode="&#xf118;" d="M1134 461q-37 -121 -138 -195t-228 -74t-228 74t-138 195q-8 25 4 48.5t38 31.5q25 8 48.5 -4t31.5 -38q25 -80 92.5 -129.5t151.5 -49.5t151.5 49.5t92.5 129.5q8 26 32 38t49 4t37 -31.5t4 -48.5zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5 t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf119;" d="M1134 307q8 -25 -4 -48.5t-37 -31.5t-49 4t-32 38q-25 80 -92.5 129.5t-151.5 49.5t-151.5 -49.5t-92.5 -129.5q-8 -26 -31.5 -38t-48.5 -4q-26 8 -38 31.5t-4 48.5q37 121 138 195t228 74t228 -74t138 -195zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204 t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf11a;" d="M1152 448q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h640q26 0 45 -19t19 -45zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf11b;" horiz-adv-x="1920" d="M832 448v128q0 14 -9 23t-23 9h-192v192q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-192h-192q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h192v-192q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v192h192q14 0 23 9t9 23zM1408 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5 t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1920 512q0 -212 -150 -362t-362 -150q-192 0 -338 128h-220q-146 -128 -338 -128q-212 0 -362 150 t-150 362t150 362t362 150h896q212 0 362 -150t150 -362z" />
<glyph unicode="&#xf11c;" horiz-adv-x="1920" d="M384 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM512 624v-96q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h224q16 0 16 -16zM384 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 368v-96q0 -16 -16 -16 h-864q-16 0 -16 16v96q0 16 16 16h864q16 0 16 -16zM768 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM640 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1024 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16 h96q16 0 16 -16zM896 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1280 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1664 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1152 880v-96 q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1664 880v-352q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h112v240q0 16 16 16h96q16 0 16 -16zM1792 128v896h-1664v-896 h1664zM1920 1024v-896q0 -53 -37.5 -90.5t-90.5 -37.5h-1664q-53 0 -90.5 37.5t-37.5 90.5v896q0 53 37.5 90.5t90.5 37.5h1664q53 0 90.5 -37.5t37.5 -90.5z" />
<glyph unicode="&#xf11d;" horiz-adv-x="1792" d="M1664 491v616q-169 -91 -306 -91q-82 0 -145 32q-100 49 -184 76.5t-178 27.5q-173 0 -403 -127v-599q245 113 433 113q55 0 103.5 -7.5t98 -26t77 -31t82.5 -39.5l28 -14q44 -22 101 -22q120 0 293 92zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9 h-64q-14 0 -23 9t-9 23v1266q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102 q-15 -9 -33 -9q-16 0 -32 8q-32 19 -32 56v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55z" />
<glyph unicode="&#xf11e;" horiz-adv-x="1792" d="M832 536v192q-181 -16 -384 -117v-185q205 96 384 110zM832 954v197q-172 -8 -384 -126v-189q215 111 384 118zM1664 491v184q-235 -116 -384 -71v224q-20 6 -39 15q-5 3 -33 17t-34.5 17t-31.5 15t-34.5 15.5t-32.5 13t-36 12.5t-35 8.5t-39.5 7.5t-39.5 4t-44 2 q-23 0 -49 -3v-222h19q102 0 192.5 -29t197.5 -82q19 -9 39 -15v-188q42 -17 91 -17q120 0 293 92zM1664 918v189q-169 -91 -306 -91q-45 0 -78 8v-196q148 -42 384 90zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v1266 q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102q-15 -9 -33 -9q-16 0 -32 8 q-32 19 -32 56v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55z" />
<glyph unicode="&#xf120;" horiz-adv-x="1664" d="M585 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23zM1664 96v-64q0 -14 -9 -23t-23 -9h-960q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h960q14 0 23 -9 t9 -23z" />
<glyph unicode="&#xf121;" horiz-adv-x="1920" d="M617 137l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23zM1208 1204l-373 -1291q-4 -13 -15.5 -19.5t-23.5 -2.5l-62 17q-13 4 -19.5 15.5t-2.5 24.5 l373 1291q4 13 15.5 19.5t23.5 2.5l62 -17q13 -4 19.5 -15.5t2.5 -24.5zM1865 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23z" />
<glyph unicode="&#xf122;" horiz-adv-x="1792" d="M640 454v-70q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-69l-397 -398q-19 -19 -19 -45t19 -45zM1792 416q0 -58 -17 -133.5t-38.5 -138t-48 -125t-40.5 -90.5l-20 -40q-8 -17 -28 -17q-6 0 -9 1 q-25 8 -23 34q43 400 -106 565q-64 71 -170.5 110.5t-267.5 52.5v-251q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-262q411 -28 599 -221q169 -173 169 -509z" />
<glyph unicode="&#xf123;" horiz-adv-x="1664" d="M1186 579l257 250l-356 52l-66 10l-30 60l-159 322v-963l59 -31l318 -168l-60 355l-12 66zM1638 841l-363 -354l86 -500q5 -33 -6 -51.5t-34 -18.5q-17 0 -40 12l-449 236l-449 -236q-23 -12 -40 -12q-23 0 -34 18.5t-6 51.5l86 500l-364 354q-32 32 -23 59.5t54 34.5 l502 73l225 455q20 41 49 41q28 0 49 -41l225 -455l502 -73q45 -7 54 -34.5t-24 -59.5z" />
<glyph unicode="&#xf124;" horiz-adv-x="1408" d="M1401 1187l-640 -1280q-17 -35 -57 -35q-5 0 -15 2q-22 5 -35.5 22.5t-13.5 39.5v576h-576q-22 0 -39.5 13.5t-22.5 35.5t4 42t29 30l1280 640q13 7 29 7q27 0 45 -19q15 -14 18.5 -34.5t-6.5 -39.5z" />
<glyph unicode="&#xf125;" horiz-adv-x="1664" d="M557 256h595v595zM512 301l595 595h-595v-595zM1664 224v-192q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v224h-864q-14 0 -23 9t-9 23v864h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224v224q0 14 9 23t23 9h192q14 0 23 -9t9 -23 v-224h851l246 247q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-247 -246v-851h224q14 0 23 -9t9 -23z" />
<glyph unicode="&#xf126;" horiz-adv-x="1024" d="M288 64q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM288 1216q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM928 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1024 1088q0 -52 -26 -96.5t-70 -69.5 q-2 -287 -226 -414q-68 -38 -203 -81q-128 -40 -169.5 -71t-41.5 -100v-26q44 -25 70 -69.5t26 -96.5q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 52 26 96.5t70 69.5v820q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136q0 -52 -26 -96.5t-70 -69.5v-497 q54 26 154 57q55 17 87.5 29.5t70.5 31t59 39.5t40.5 51t28 69.5t8.5 91.5q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136z" />
<glyph unicode="&#xf127;" horiz-adv-x="1664" d="M439 265l-256 -256q-10 -9 -23 -9q-12 0 -23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23zM608 224v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM384 448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23t9 23t23 9h320 q14 0 23 -9t9 -23zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-334 335q-21 21 -42 56l239 18l273 -274q27 -27 68 -27.5t68 26.5l147 146q28 28 28 67q0 40 -28 68l-274 275l18 239q35 -21 56 -42l336 -336q84 -86 84 -204zM1031 1044l-239 -18 l-273 274q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l274 -274l-18 -240q-35 21 -56 42l-336 336q-84 86 -84 204q0 120 85 203l147 146q83 83 203 83q121 0 204 -85l334 -335q21 -21 42 -56zM1664 960q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9 t-9 23t9 23t23 9h320q14 0 23 -9t9 -23zM1120 1504v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM1527 1353l-256 -256q-11 -9 -23 -9t-23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23z" />
<glyph unicode="&#xf128;" horiz-adv-x="1024" d="M704 280v-240q0 -16 -12 -28t-28 -12h-240q-16 0 -28 12t-12 28v240q0 16 12 28t28 12h240q16 0 28 -12t12 -28zM1020 880q0 -54 -15.5 -101t-35 -76.5t-55 -59.5t-57.5 -43.5t-61 -35.5q-41 -23 -68.5 -65t-27.5 -67q0 -17 -12 -32.5t-28 -15.5h-240q-15 0 -25.5 18.5 t-10.5 37.5v45q0 83 65 156.5t143 108.5q59 27 84 56t25 76q0 42 -46.5 74t-107.5 32q-65 0 -108 -29q-35 -25 -107 -115q-13 -16 -31 -16q-12 0 -25 8l-164 125q-13 10 -15.5 25t5.5 28q160 266 464 266q80 0 161 -31t146 -83t106 -127.5t41 -158.5z" />
<glyph unicode="&#xf129;" horiz-adv-x="640" d="M640 192v-128q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64v384h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-576h64q26 0 45 -19t19 -45zM512 1344v-192q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v192 q0 26 19 45t45 19h256q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf12a;" horiz-adv-x="640" d="M512 288v-224q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v224q0 26 19 45t45 19h256q26 0 45 -19t19 -45zM542 1344l-28 -768q-1 -26 -20.5 -45t-45.5 -19h-256q-26 0 -45.5 19t-20.5 45l-28 768q-1 26 17.5 45t44.5 19h320q26 0 44.5 -19t17.5 -45z" />
<glyph unicode="&#xf12b;" d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3l-9 -21q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109zM1534 846v-206h-514l-3 27 q-4 28 -4 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q83 65 188 65q110 0 178 -59.5t68 -158.5q0 -56 -24.5 -103t-62 -76.5t-81.5 -58.5t-82 -50.5t-65.5 -51.5t-30.5 -63h232v80 h126z" />
<glyph unicode="&#xf12c;" d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3l-9 -21q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109zM1536 -50v-206h-514l-4 27 q-3 45 -3 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q80 65 188 65q110 0 178 -59.5t68 -158.5q0 -66 -34.5 -118.5t-84 -86t-99.5 -62.5t-87 -63t-41 -73h232v80h126z" />
<glyph unicode="&#xf12d;" horiz-adv-x="1920" d="M896 128l336 384h-768l-336 -384h768zM1909 1205q15 -34 9.5 -71.5t-30.5 -65.5l-896 -1024q-38 -44 -96 -44h-768q-38 0 -69.5 20.5t-47.5 54.5q-15 34 -9.5 71.5t30.5 65.5l896 1024q38 44 96 44h768q38 0 69.5 -20.5t47.5 -54.5z" />
<glyph unicode="&#xf12e;" horiz-adv-x="1664" d="M1664 438q0 -81 -44.5 -135t-123.5 -54q-41 0 -77.5 17.5t-59 38t-56.5 38t-71 17.5q-110 0 -110 -124q0 -39 16 -115t15 -115v-5q-22 0 -33 -1q-34 -3 -97.5 -11.5t-115.5 -13.5t-98 -5q-61 0 -103 26.5t-42 83.5q0 37 17.5 71t38 56.5t38 59t17.5 77.5q0 79 -54 123.5 t-135 44.5q-84 0 -143 -45.5t-59 -127.5q0 -43 15 -83t33.5 -64.5t33.5 -53t15 -50.5q0 -45 -46 -89q-37 -35 -117 -35q-95 0 -245 24q-9 2 -27.5 4t-27.5 4l-13 2q-1 0 -3 1q-2 0 -2 1v1024q2 -1 17.5 -3.5t34 -5t21.5 -3.5q150 -24 245 -24q80 0 117 35q46 44 46 89 q0 22 -15 50.5t-33.5 53t-33.5 64.5t-15 83q0 82 59 127.5t144 45.5q80 0 134 -44.5t54 -123.5q0 -41 -17.5 -77.5t-38 -59t-38 -56.5t-17.5 -71q0 -57 42 -83.5t103 -26.5q64 0 180 15t163 17v-2q-1 -2 -3.5 -17.5t-5 -34t-3.5 -21.5q-24 -150 -24 -245q0 -80 35 -117 q44 -46 89 -46q22 0 50.5 15t53 33.5t64.5 33.5t83 15q82 0 127.5 -59t45.5 -143z" />
<glyph unicode="&#xf130;" horiz-adv-x="1152" d="M1152 832v-128q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-217 24 -364.5 187.5t-147.5 384.5v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -185 131.5 -316.5t316.5 -131.5 t316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45zM896 1216v-512q0 -132 -94 -226t-226 -94t-226 94t-94 226v512q0 132 94 226t226 94t226 -94t94 -226z" />
<glyph unicode="&#xf131;" horiz-adv-x="1408" d="M271 591l-101 -101q-42 103 -42 214v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -53 15 -113zM1385 1193l-361 -361v-128q0 -132 -94 -226t-226 -94q-55 0 -109 19l-96 -96q97 -51 205 -51q185 0 316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45v-128 q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-125 13 -235 81l-254 -254q-10 -10 -23 -10t-23 10l-82 82q-10 10 -10 23t10 23l1234 1234q10 10 23 10t23 -10l82 -82q10 -10 10 -23 t-10 -23zM1005 1325l-621 -621v512q0 132 94 226t226 94q102 0 184.5 -59t116.5 -152z" />
<glyph unicode="&#xf132;" horiz-adv-x="1280" d="M1088 576v640h-448v-1137q119 63 213 137q235 184 235 360zM1280 1344v-768q0 -86 -33.5 -170.5t-83 -150t-118 -127.5t-126.5 -103t-121 -77.5t-89.5 -49.5t-42.5 -20q-12 -6 -26 -6t-26 6q-16 7 -42.5 20t-89.5 49.5t-121 77.5t-126.5 103t-118 127.5t-83 150 t-33.5 170.5v768q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf133;" horiz-adv-x="1664" d="M128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280 q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
<glyph unicode="&#xf134;" horiz-adv-x="1408" d="M512 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 1376v-320q0 -16 -12 -25q-8 -7 -20 -7q-4 0 -7 1l-448 96q-11 2 -18 11t-7 20h-256v-102q111 -23 183.5 -111t72.5 -203v-800q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v800 q0 106 62.5 190.5t161.5 114.5v111h-32q-59 0 -115 -23.5t-91.5 -53t-66 -66.5t-40.5 -53.5t-14 -24.5q-17 -35 -57 -35q-16 0 -29 7q-23 12 -31.5 37t3.5 49q5 10 14.5 26t37.5 53.5t60.5 70t85 67t108.5 52.5q-25 42 -25 86q0 66 47 113t113 47t113 -47t47 -113 q0 -33 -14 -64h302q0 11 7 20t18 11l448 96q3 1 7 1q12 0 20 -7q12 -9 12 -25z" />
<glyph unicode="&#xf135;" horiz-adv-x="1664" d="M1440 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1664 1376q0 -249 -75.5 -430.5t-253.5 -360.5q-81 -80 -195 -176l-20 -379q-2 -16 -16 -26l-384 -224q-7 -4 -16 -4q-12 0 -23 9l-64 64q-13 14 -8 32l85 276l-281 281l-276 -85q-3 -1 -9 -1 q-14 0 -23 9l-64 64q-17 19 -5 39l224 384q10 14 26 16l379 20q96 114 176 195q188 187 358 258t431 71q14 0 24 -9.5t10 -22.5z" />
<glyph unicode="&#xf136;" horiz-adv-x="1792" d="M1745 763l-164 -763h-334l178 832q13 56 -15 88q-27 33 -83 33h-169l-204 -953h-334l204 953h-286l-204 -953h-334l204 953l-153 327h1276q101 0 189.5 -40.5t147.5 -113.5q60 -73 81 -168.5t0 -194.5z" />
<glyph unicode="&#xf137;" d="M909 141l102 102q19 19 19 45t-19 45l-307 307l307 307q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf138;" d="M717 141l454 454q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l307 -307l-307 -307q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf139;" d="M1165 397l102 102q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l307 307l307 -307q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf13a;" d="M813 237l454 454q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-307 -307l-307 307q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf13b;" horiz-adv-x="1408" d="M1130 939l16 175h-884l47 -534h612l-22 -228l-197 -53l-196 53l-13 140h-175l22 -278l362 -100h4v1l359 99l50 544h-644l-15 181h674zM0 1408h1408l-128 -1438l-578 -162l-574 162z" />
<glyph unicode="&#xf13c;" horiz-adv-x="1792" d="M275 1408h1505l-266 -1333l-804 -267l-698 267l71 356h297l-29 -147l422 -161l486 161l68 339h-1208l58 297h1209l38 191h-1208z" />
<glyph unicode="&#xf13d;" horiz-adv-x="1792" d="M960 1280q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1792 352v-352q0 -22 -20 -30q-8 -2 -12 -2q-13 0 -23 9l-93 93q-119 -143 -318.5 -226.5t-429.5 -83.5t-429.5 83.5t-318.5 226.5l-93 -93q-9 -9 -23 -9q-4 0 -12 2q-20 8 -20 30v352 q0 14 9 23t23 9h352q22 0 30 -20q8 -19 -7 -35l-100 -100q67 -91 189.5 -153.5t271.5 -82.5v647h-192q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h192v163q-58 34 -93 92.5t-35 128.5q0 106 75 181t181 75t181 -75t75 -181q0 -70 -35 -128.5t-93 -92.5v-163h192q26 0 45 -19 t19 -45v-128q0 -26 -19 -45t-45 -19h-192v-647q149 20 271.5 82.5t189.5 153.5l-100 100q-15 16 -7 35q8 20 30 20h352q14 0 23 -9t9 -23z" />
<glyph unicode="&#xf13e;" horiz-adv-x="1152" d="M1056 768q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v320q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45q0 106 -75 181t-181 75t-181 -75t-75 -181 v-320h736z" />
<glyph unicode="&#xf140;" d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM1152 640q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM1280 640q0 -212 -150 -362t-362 -150t-362 150 t-150 362t150 362t362 150t362 -150t150 -362zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf141;" horiz-adv-x="1408" d="M384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM896 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM1408 800v-192q0 -40 -28 -68t-68 -28h-192 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" />
<glyph unicode="&#xf142;" horiz-adv-x="384" d="M384 288v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 1312v-192q0 -40 -28 -68t-68 -28h-192 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" />
<glyph unicode="&#xf143;" d="M512 256q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM863 162q-13 232 -177 396t-396 177q-14 1 -24 -9t-10 -23v-128q0 -13 8.5 -22t21.5 -10q154 -11 264 -121t121 -264q1 -13 10 -21.5t22 -8.5h128q13 0 23 10 t9 24zM1247 161q-5 154 -56 297.5t-139.5 260t-205 205t-260 139.5t-297.5 56q-14 1 -23 -9q-10 -10 -10 -23v-128q0 -13 9 -22t22 -10q204 -7 378 -111.5t278.5 -278.5t111.5 -378q1 -13 10 -22t22 -9h128q13 0 23 10q11 9 9 23zM1536 1120v-960q0 -119 -84.5 -203.5 t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf144;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1152 585q32 18 32 55t-32 55l-544 320q-31 19 -64 1q-32 -19 -32 -56v-640q0 -37 32 -56 q16 -8 32 -8q17 0 32 9z" />
<glyph unicode="&#xf145;" horiz-adv-x="1792" d="M1024 1084l316 -316l-572 -572l-316 316zM813 105l618 618q19 19 19 45t-19 45l-362 362q-18 18 -45 18t-45 -18l-618 -618q-19 -19 -19 -45t19 -45l362 -362q18 -18 45 -18t45 18zM1702 742l-907 -908q-37 -37 -90.5 -37t-90.5 37l-126 126q56 56 56 136t-56 136 t-136 56t-136 -56l-125 126q-37 37 -37 90.5t37 90.5l907 906q37 37 90.5 37t90.5 -37l125 -125q-56 -56 -56 -136t56 -136t136 -56t136 56l126 -125q37 -37 37 -90.5t-37 -90.5z" />
<glyph unicode="&#xf146;" d="M1280 576v128q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h896q26 0 45 19t19 45zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 t84.5 -203.5z" />
<glyph unicode="&#xf147;" horiz-adv-x="1408" d="M1152 736v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h832q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5 t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf148;" horiz-adv-x="1024" d="M1018 933q-18 -37 -58 -37h-192v-864q0 -14 -9 -23t-23 -9h-704q-21 0 -29 18q-8 20 4 35l160 192q9 11 25 11h320v640h-192q-40 0 -58 37q-17 37 9 68l320 384q18 22 49 22t49 -22l320 -384q27 -32 9 -68z" />
<glyph unicode="&#xf149;" horiz-adv-x="1024" d="M32 1280h704q13 0 22.5 -9.5t9.5 -23.5v-863h192q40 0 58 -37t-9 -69l-320 -384q-18 -22 -49 -22t-49 22l-320 384q-26 31 -9 69q18 37 58 37h192v640h-320q-14 0 -25 11l-160 192q-13 14 -4 34q9 19 29 19z" />
<glyph unicode="&#xf14a;" d="M685 237l614 614q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-467 -467l-211 211q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l358 -358q19 -19 45 -19t45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5 t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf14b;" d="M404 428l152 -152l-52 -52h-56v96h-96v56zM818 818q14 -13 -3 -30l-291 -291q-17 -17 -30 -3q-14 13 3 30l291 291q17 17 30 3zM544 128l544 544l-288 288l-544 -544v-288h288zM1152 736l92 92q28 28 28 68t-28 68l-152 152q-28 28 -68 28t-68 -28l-92 -92zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf14c;" d="M1280 608v480q0 26 -19 45t-45 19h-480q-42 0 -59 -39q-17 -41 14 -70l144 -144l-534 -534q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l534 534l144 -144q18 -19 45 -19q12 0 25 5q39 17 39 59zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960 q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf14d;" d="M1005 435l352 352q19 19 19 45t-19 45l-352 352q-30 31 -69 14q-40 -17 -40 -59v-160q-119 0 -216 -19.5t-162.5 -51t-114 -79t-76.5 -95.5t-44.5 -109t-21.5 -111.5t-5 -110.5q0 -181 167 -404q10 -12 25 -12q7 0 13 3q22 9 19 33q-44 354 62 473q46 52 130 75.5 t224 23.5v-160q0 -42 40 -59q12 -5 24 -5q26 0 45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf14e;" d="M640 448l256 128l-256 128v-256zM1024 1039v-542l-512 -256v542zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf150;" d="M1145 861q18 -35 -5 -66l-320 -448q-19 -27 -52 -27t-52 27l-320 448q-23 31 -5 66q17 35 57 35h640q40 0 57 -35zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf151;" d="M1145 419q-17 -35 -57 -35h-640q-40 0 -57 35q-18 35 5 66l320 448q19 27 52 27t52 -27l320 -448q23 -31 5 -66zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf152;" d="M1088 640q0 -33 -27 -52l-448 -320q-31 -23 -66 -5q-35 17 -35 57v640q0 40 35 57q35 18 66 -5l448 -320q27 -19 27 -52zM1280 160v960q0 14 -9 23t-23 9h-960q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h960q14 0 23 9t9 23zM1536 1120v-960q0 -119 -84.5 -203.5 t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf153;" horiz-adv-x="1024" d="M976 229l35 -159q3 -12 -3 -22.5t-17 -14.5l-5 -1q-4 -2 -10.5 -3.5t-16 -4.5t-21.5 -5.5t-25.5 -5t-30 -5t-33.5 -4.5t-36.5 -3t-38.5 -1q-234 0 -409 130.5t-238 351.5h-95q-13 0 -22.5 9.5t-9.5 22.5v113q0 13 9.5 22.5t22.5 9.5h66q-2 57 1 105h-67q-14 0 -23 9 t-9 23v114q0 14 9 23t23 9h98q67 210 243.5 338t400.5 128q102 0 194 -23q11 -3 20 -15q6 -11 3 -24l-43 -159q-3 -13 -14 -19.5t-24 -2.5l-4 1q-4 1 -11.5 2.5l-17.5 3.5t-22.5 3.5t-26 3t-29 2.5t-29.5 1q-126 0 -226 -64t-150 -176h468q16 0 25 -12q10 -12 7 -26 l-24 -114q-5 -26 -32 -26h-488q-3 -37 0 -105h459q15 0 25 -12q9 -12 6 -27l-24 -112q-2 -11 -11 -18.5t-20 -7.5h-387q48 -117 149.5 -185.5t228.5 -68.5q18 0 36 1.5t33.5 3.5t29.5 4.5t24.5 5t18.5 4.5l12 3l5 2q13 5 26 -2q12 -7 15 -21z" />
<glyph unicode="&#xf154;" horiz-adv-x="1024" d="M1020 399v-367q0 -14 -9 -23t-23 -9h-956q-14 0 -23 9t-9 23v150q0 13 9.5 22.5t22.5 9.5h97v383h-95q-14 0 -23 9.5t-9 22.5v131q0 14 9 23t23 9h95v223q0 171 123.5 282t314.5 111q185 0 335 -125q9 -8 10 -20.5t-7 -22.5l-103 -127q-9 -11 -22 -12q-13 -2 -23 7 q-5 5 -26 19t-69 32t-93 18q-85 0 -137 -47t-52 -123v-215h305q13 0 22.5 -9t9.5 -23v-131q0 -13 -9.5 -22.5t-22.5 -9.5h-305v-379h414v181q0 13 9 22.5t23 9.5h162q14 0 23 -9.5t9 -22.5z" />
<glyph unicode="&#xf155;" horiz-adv-x="1024" d="M978 351q0 -153 -99.5 -263.5t-258.5 -136.5v-175q0 -14 -9 -23t-23 -9h-135q-13 0 -22.5 9.5t-9.5 22.5v175q-66 9 -127.5 31t-101.5 44.5t-74 48t-46.5 37.5t-17.5 18q-17 21 -2 41l103 135q7 10 23 12q15 2 24 -9l2 -2q113 -99 243 -125q37 -8 74 -8q81 0 142.5 43 t61.5 122q0 28 -15 53t-33.5 42t-58.5 37.5t-66 32t-80 32.5q-39 16 -61.5 25t-61.5 26.5t-62.5 31t-56.5 35.5t-53.5 42.5t-43.5 49t-35.5 58t-21 66.5t-8.5 78q0 138 98 242t255 134v180q0 13 9.5 22.5t22.5 9.5h135q14 0 23 -9t9 -23v-176q57 -6 110.5 -23t87 -33.5 t63.5 -37.5t39 -29t15 -14q17 -18 5 -38l-81 -146q-8 -15 -23 -16q-14 -3 -27 7q-3 3 -14.5 12t-39 26.5t-58.5 32t-74.5 26t-85.5 11.5q-95 0 -155 -43t-60 -111q0 -26 8.5 -48t29.5 -41.5t39.5 -33t56 -31t60.5 -27t70 -27.5q53 -20 81 -31.5t76 -35t75.5 -42.5t62 -50 t53 -63.5t31.5 -76.5t13 -94z" />
<glyph unicode="&#xf156;" horiz-adv-x="898" d="M898 1066v-102q0 -14 -9 -23t-23 -9h-168q-23 -144 -129 -234t-276 -110q167 -178 459 -536q14 -16 4 -34q-8 -18 -29 -18h-195q-16 0 -25 12q-306 367 -498 571q-9 9 -9 22v127q0 13 9.5 22.5t22.5 9.5h112q132 0 212.5 43t102.5 125h-427q-14 0 -23 9t-9 23v102 q0 14 9 23t23 9h413q-57 113 -268 113h-145q-13 0 -22.5 9.5t-9.5 22.5v133q0 14 9 23t23 9h832q14 0 23 -9t9 -23v-102q0 -14 -9 -23t-23 -9h-233q47 -61 64 -144h171q14 0 23 -9t9 -23z" />
<glyph unicode="&#xf157;" horiz-adv-x="1027" d="M603 0h-172q-13 0 -22.5 9t-9.5 23v330h-288q-13 0 -22.5 9t-9.5 23v103q0 13 9.5 22.5t22.5 9.5h288v85h-288q-13 0 -22.5 9t-9.5 23v104q0 13 9.5 22.5t22.5 9.5h214l-321 578q-8 16 0 32q10 16 28 16h194q19 0 29 -18l215 -425q19 -38 56 -125q10 24 30.5 68t27.5 61 l191 420q8 19 29 19h191q17 0 27 -16q9 -14 1 -31l-313 -579h215q13 0 22.5 -9.5t9.5 -22.5v-104q0 -14 -9.5 -23t-22.5 -9h-290v-85h290q13 0 22.5 -9.5t9.5 -22.5v-103q0 -14 -9.5 -23t-22.5 -9h-290v-330q0 -13 -9.5 -22.5t-22.5 -9.5z" />
<glyph unicode="&#xf158;" horiz-adv-x="1280" d="M1043 971q0 100 -65 162t-171 62h-320v-448h320q106 0 171 62t65 162zM1280 971q0 -193 -126.5 -315t-326.5 -122h-340v-118h505q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-505v-192q0 -14 -9.5 -23t-22.5 -9h-167q-14 0 -23 9t-9 23v192h-224q-14 0 -23 9t-9 23v128 q0 14 9 23t23 9h224v118h-224q-14 0 -23 9t-9 23v149q0 13 9 22.5t23 9.5h224v629q0 14 9 23t23 9h539q200 0 326.5 -122t126.5 -315z" />
<glyph unicode="&#xf159;" horiz-adv-x="1792" d="M514 341l81 299h-159l75 -300q1 -1 1 -3t1 -3q0 1 0.5 3.5t0.5 3.5zM630 768l35 128h-292l32 -128h225zM822 768h139l-35 128h-70zM1271 340l78 300h-162l81 -299q0 -1 0.5 -3.5t1.5 -3.5q0 1 0.5 3t0.5 3zM1382 768l33 128h-297l34 -128h230zM1792 736v-64q0 -14 -9 -23 t-23 -9h-213l-164 -616q-7 -24 -31 -24h-159q-24 0 -31 24l-166 616h-209l-167 -616q-7 -24 -31 -24h-159q-11 0 -19.5 7t-10.5 17l-160 616h-208q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h175l-33 128h-142q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h109l-89 344q-5 15 5 28 q10 12 26 12h137q26 0 31 -24l90 -360h359l97 360q7 24 31 24h126q24 0 31 -24l98 -360h365l93 360q5 24 31 24h137q16 0 26 -12q10 -13 5 -28l-91 -344h111q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-145l-34 -128h179q14 0 23 -9t9 -23z" />
<glyph unicode="&#xf15a;" horiz-adv-x="1280" d="M1167 896q18 -182 -131 -258q117 -28 175 -103t45 -214q-7 -71 -32.5 -125t-64.5 -89t-97 -58.5t-121.5 -34.5t-145.5 -15v-255h-154v251q-80 0 -122 1v-252h-154v255q-18 0 -54 0.5t-55 0.5h-200l31 183h111q50 0 58 51v402h16q-6 1 -16 1v287q-13 68 -89 68h-111v164 l212 -1q64 0 97 1v252h154v-247q82 2 122 2v245h154v-252q79 -7 140 -22.5t113 -45t82.5 -78t36.5 -114.5zM952 351q0 36 -15 64t-37 46t-57.5 30.5t-65.5 18.5t-74 9t-69 3t-64.5 -1t-47.5 -1v-338q8 0 37 -0.5t48 -0.5t53 1.5t58.5 4t57 8.5t55.5 14t47.5 21t39.5 30 t24.5 40t9.5 51zM881 827q0 33 -12.5 58.5t-30.5 42t-48 28t-55 16.5t-61.5 8t-58 2.5t-54 -1t-39.5 -0.5v-307q5 0 34.5 -0.5t46.5 0t50 2t55 5.5t51.5 11t48.5 18.5t37 27t27 38.5t9 51z" />
<glyph unicode="&#xf15b;" d="M1024 1024v472q22 -14 36 -28l408 -408q14 -14 28 -36h-472zM896 992q0 -40 28 -68t68 -28h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h800v-544z" />
<glyph unicode="&#xf15c;" d="M1468 1060q14 -14 28 -36h-472v472q22 -14 36 -28zM992 896h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h800v-544q0 -40 28 -68t68 -28zM1152 160v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704 q14 0 23 9t9 23zM1152 416v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM1152 672v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23z" />
<glyph unicode="&#xf15d;" horiz-adv-x="1664" d="M1191 1128h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1572 -23 v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -11v-2l14 2q9 2 30 2h248v119h121zM1661 874v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162 l230 -662h70z" />
<glyph unicode="&#xf15e;" horiz-adv-x="1664" d="M1191 104h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1661 -150 v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162l230 -662h70zM1572 1001v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -10v-3l14 3q9 1 30 1h248 v119h121z" />
<glyph unicode="&#xf160;" horiz-adv-x="1792" d="M736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1792 -32v-192q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832 q14 0 23 -9t9 -23zM1600 480v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1408 992v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1216 1504v-192q0 -14 -9 -23t-23 -9h-256 q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23z" />
<glyph unicode="&#xf161;" horiz-adv-x="1792" d="M1216 -32v-192q0 -14 -9 -23t-23 -9h-256q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192 q14 0 23 -9t9 -23zM1408 480v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1600 992v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1792 1504v-192q0 -14 -9 -23t-23 -9h-832 q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832q14 0 23 -9t9 -23z" />
<glyph unicode="&#xf162;" d="M1346 223q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23 zM1486 165q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5 t82 -252.5zM1456 882v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165z" />
<glyph unicode="&#xf163;" d="M1346 1247q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9 t9 -23zM1456 -142v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165zM1486 1189q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13 q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5t82 -252.5z" />
<glyph unicode="&#xf164;" horiz-adv-x="1664" d="M256 192q0 26 -19 45t-45 19q-27 0 -45.5 -19t-18.5 -45q0 -27 18.5 -45.5t45.5 -18.5q26 0 45 18.5t19 45.5zM416 704v-640q0 -26 -19 -45t-45 -19h-288q-26 0 -45 19t-19 45v640q0 26 19 45t45 19h288q26 0 45 -19t19 -45zM1600 704q0 -86 -55 -149q15 -44 15 -76 q3 -76 -43 -137q17 -56 0 -117q-15 -57 -54 -94q9 -112 -49 -181q-64 -76 -197 -78h-36h-76h-17q-66 0 -144 15.5t-121.5 29t-120.5 39.5q-123 43 -158 44q-26 1 -45 19.5t-19 44.5v641q0 25 18 43.5t43 20.5q24 2 76 59t101 121q68 87 101 120q18 18 31 48t17.5 48.5 t13.5 60.5q7 39 12.5 61t19.5 52t34 50q19 19 45 19q46 0 82.5 -10.5t60 -26t40 -40.5t24 -45t12 -50t5 -45t0.5 -39q0 -38 -9.5 -76t-19 -60t-27.5 -56q-3 -6 -10 -18t-11 -22t-8 -24h277q78 0 135 -57t57 -135z" />
<glyph unicode="&#xf165;" horiz-adv-x="1664" d="M256 960q0 -26 -19 -45t-45 -19q-27 0 -45.5 19t-18.5 45q0 27 18.5 45.5t45.5 18.5q26 0 45 -18.5t19 -45.5zM416 448v640q0 26 -19 45t-45 19h-288q-26 0 -45 -19t-19 -45v-640q0 -26 19 -45t45 -19h288q26 0 45 19t19 45zM1545 597q55 -61 55 -149q-1 -78 -57.5 -135 t-134.5 -57h-277q4 -14 8 -24t11 -22t10 -18q18 -37 27 -57t19 -58.5t10 -76.5q0 -24 -0.5 -39t-5 -45t-12 -50t-24 -45t-40 -40.5t-60 -26t-82.5 -10.5q-26 0 -45 19q-20 20 -34 50t-19.5 52t-12.5 61q-9 42 -13.5 60.5t-17.5 48.5t-31 48q-33 33 -101 120q-49 64 -101 121 t-76 59q-25 2 -43 20.5t-18 43.5v641q0 26 19 44.5t45 19.5q35 1 158 44q77 26 120.5 39.5t121.5 29t144 15.5h17h76h36q133 -2 197 -78q58 -69 49 -181q39 -37 54 -94q17 -61 0 -117q46 -61 43 -137q0 -32 -15 -76z" />
<glyph unicode="&#xf166;" d="M919 233v157q0 50 -29 50q-17 0 -33 -16v-224q16 -16 33 -16q29 0 29 49zM1103 355h66v34q0 51 -33 51t-33 -51v-34zM532 621v-70h-80v-423h-74v423h-78v70h232zM733 495v-367h-67v40q-39 -45 -76 -45q-33 0 -42 28q-6 16 -6 54v290h66v-270q0 -24 1 -26q1 -15 15 -15 q20 0 42 31v280h67zM985 384v-146q0 -52 -7 -73q-12 -42 -53 -42q-35 0 -68 41v-36h-67v493h67v-161q32 40 68 40q41 0 53 -42q7 -21 7 -74zM1236 255v-9q0 -29 -2 -43q-3 -22 -15 -40q-27 -40 -80 -40q-52 0 -81 38q-21 27 -21 86v129q0 59 20 86q29 38 80 38t78 -38 q21 -28 21 -86v-76h-133v-65q0 -51 34 -51q24 0 30 26q0 1 0.5 7t0.5 16.5v21.5h68zM785 1079v-156q0 -51 -32 -51t-32 51v156q0 52 32 52t32 -52zM1318 366q0 177 -19 260q-10 44 -43 73.5t-76 34.5q-136 15 -412 15q-275 0 -411 -15q-44 -5 -76.5 -34.5t-42.5 -73.5 q-20 -87 -20 -260q0 -176 20 -260q10 -43 42.5 -73t75.5 -35q137 -15 412 -15t412 15q43 5 75.5 35t42.5 73q20 84 20 260zM563 1017l90 296h-75l-51 -195l-53 195h-78l24 -69t23 -69q35 -103 46 -158v-201h74v201zM852 936v130q0 58 -21 87q-29 38 -78 38q-51 0 -78 -38 q-21 -29 -21 -87v-130q0 -58 21 -87q27 -38 78 -38q49 0 78 38q21 27 21 87zM1033 816h67v370h-67v-283q-22 -31 -42 -31q-15 0 -16 16q-1 2 -1 26v272h-67v-293q0 -37 6 -55q11 -27 43 -27q36 0 77 45v-40zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960 q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf167;" d="M971 292v-211q0 -67 -39 -67q-23 0 -45 22v301q22 22 45 22q39 0 39 -67zM1309 291v-46h-90v46q0 68 45 68t45 -68zM343 509h107v94h-312v-94h105v-569h100v569zM631 -60h89v494h-89v-378q-30 -42 -57 -42q-18 0 -21 21q-1 3 -1 35v364h-89v-391q0 -49 8 -73 q12 -37 58 -37q48 0 102 61v-54zM1060 88v197q0 73 -9 99q-17 56 -71 56q-50 0 -93 -54v217h-89v-663h89v48q45 -55 93 -55q54 0 71 55q9 27 9 100zM1398 98v13h-91q0 -51 -2 -61q-7 -36 -40 -36q-46 0 -46 69v87h179v103q0 79 -27 116q-39 51 -106 51q-68 0 -107 -51 q-28 -37 -28 -116v-173q0 -79 29 -116q39 -51 108 -51q72 0 108 53q18 27 21 54q2 9 2 58zM790 1011v210q0 69 -43 69t-43 -69v-210q0 -70 43 -70t43 70zM1509 260q0 -234 -26 -350q-14 -59 -58 -99t-102 -46q-184 -21 -555 -21t-555 21q-58 6 -102.5 46t-57.5 99 q-26 112 -26 350q0 234 26 350q14 59 58 99t103 47q183 20 554 20t555 -20q58 -7 102.5 -47t57.5 -99q26 -112 26 -350zM511 1536h102l-121 -399v-271h-100v271q-14 74 -61 212q-37 103 -65 187h106l71 -263zM881 1203v-175q0 -81 -28 -118q-37 -51 -106 -51q-67 0 -105 51 q-28 38 -28 118v175q0 80 28 117q38 51 105 51q69 0 106 -51q28 -37 28 -117zM1216 1365v-499h-91v55q-53 -62 -103 -62q-46 0 -59 37q-8 24 -8 75v394h91v-367q0 -33 1 -35q3 -22 21 -22q27 0 57 43v381h91z" />
<glyph unicode="&#xf168;" horiz-adv-x="1408" d="M597 869q-10 -18 -257 -456q-27 -46 -65 -46h-239q-21 0 -31 17t0 36l253 448q1 0 0 1l-161 279q-12 22 -1 37q9 15 32 15h239q40 0 66 -45zM1403 1511q11 -16 0 -37l-528 -934v-1l336 -615q11 -20 1 -37q-10 -15 -32 -15h-239q-42 0 -66 45l-339 622q18 32 531 942 q25 45 64 45h241q22 0 31 -15z" />
<glyph unicode="&#xf169;" d="M685 771q0 1 -126 222q-21 34 -52 34h-184q-18 0 -26 -11q-7 -12 1 -29l125 -216v-1l-196 -346q-9 -14 0 -28q8 -13 24 -13h185q31 0 50 36zM1309 1268q-7 12 -24 12h-187q-30 0 -49 -35l-411 -729q1 -2 262 -481q20 -35 52 -35h184q18 0 25 12q8 13 -1 28l-260 476v1 l409 723q8 16 0 28zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf16a;" horiz-adv-x="1792" d="M1280 640q0 37 -30 54l-512 320q-31 20 -65 2q-33 -18 -33 -56v-640q0 -38 33 -56q16 -8 31 -8q20 0 34 10l512 320q30 17 30 54zM1792 640q0 -96 -1 -150t-8.5 -136.5t-22.5 -147.5q-16 -73 -69 -123t-124 -58q-222 -25 -671 -25t-671 25q-71 8 -124.5 58t-69.5 123 q-14 65 -21.5 147.5t-8.5 136.5t-1 150t1 150t8.5 136.5t22.5 147.5q16 73 69 123t124 58q222 25 671 25t671 -25q71 -8 124.5 -58t69.5 -123q14 -65 21.5 -147.5t8.5 -136.5t1 -150z" />
<glyph unicode="&#xf16b;" horiz-adv-x="1792" d="M402 829l494 -305l-342 -285l-490 319zM1388 274v-108l-490 -293v-1l-1 1l-1 -1v1l-489 293v108l147 -96l342 284v2l1 -1l1 1v-2l343 -284zM554 1418l342 -285l-494 -304l-338 270zM1390 829l338 -271l-489 -319l-343 285zM1239 1418l489 -319l-338 -270l-494 304z" />
<glyph unicode="&#xf16c;" d="M1289 -96h-1118v480h-160v-640h1438v640h-160v-480zM347 428l33 157l783 -165l-33 -156zM450 802l67 146l725 -339l-67 -145zM651 1158l102 123l614 -513l-102 -123zM1048 1536l477 -641l-128 -96l-477 641zM330 65v159h800v-159h-800z" />
<glyph unicode="&#xf16d;" d="M1024 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1162 640q0 -164 -115 -279t-279 -115t-279 115t-115 279t115 279t279 115t279 -115t115 -279zM1270 1050q0 -38 -27 -65t-65 -27t-65 27t-27 65t27 65t65 27t65 -27t27 -65zM768 1270 q-7 0 -76.5 0.5t-105.5 0t-96.5 -3t-103 -10t-71.5 -18.5q-50 -20 -88 -58t-58 -88q-11 -29 -18.5 -71.5t-10 -103t-3 -96.5t0 -105.5t0.5 -76.5t-0.5 -76.5t0 -105.5t3 -96.5t10 -103t18.5 -71.5q20 -50 58 -88t88 -58q29 -11 71.5 -18.5t103 -10t96.5 -3t105.5 0t76.5 0.5 t76.5 -0.5t105.5 0t96.5 3t103 10t71.5 18.5q50 20 88 58t58 88q11 29 18.5 71.5t10 103t3 96.5t0 105.5t-0.5 76.5t0.5 76.5t0 105.5t-3 96.5t-10 103t-18.5 71.5q-20 50 -58 88t-88 58q-29 11 -71.5 18.5t-103 10t-96.5 3t-105.5 0t-76.5 -0.5zM1536 640q0 -229 -5 -317 q-10 -208 -124 -322t-322 -124q-88 -5 -317 -5t-317 5q-208 10 -322 124t-124 322q-5 88 -5 317t5 317q10 208 124 322t322 124q88 5 317 5t317 -5q208 -10 322 -124t124 -322q5 -88 5 -317z" />
<glyph unicode="&#xf16e;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM698 640q0 88 -62 150t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150zM1262 640q0 88 -62 150 t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150z" />
<glyph unicode="&#xf170;" d="M768 914l201 -306h-402zM1133 384h94l-459 691l-459 -691h94l104 160h522zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf171;" horiz-adv-x="1408" d="M815 677q8 -63 -50.5 -101t-111.5 -6q-39 17 -53.5 58t-0.5 82t52 58q36 18 72.5 12t64 -35.5t27.5 -67.5zM926 698q-14 107 -113 164t-197 13q-63 -28 -100.5 -88.5t-34.5 -129.5q4 -91 77.5 -155t165.5 -56q91 8 152 84t50 168zM1165 1240q-20 27 -56 44.5t-58 22 t-71 12.5q-291 47 -566 -2q-43 -7 -66 -12t-55 -22t-50 -43q30 -28 76 -45.5t73.5 -22t87.5 -11.5q228 -29 448 -1q63 8 89.5 12t72.5 21.5t75 46.5zM1222 205q-8 -26 -15.5 -76.5t-14 -84t-28.5 -70t-58 -56.5q-86 -48 -189.5 -71.5t-202 -22t-201.5 18.5q-46 8 -81.5 18 t-76.5 27t-73 43.5t-52 61.5q-25 96 -57 292l6 16l18 9q223 -148 506.5 -148t507.5 148q21 -6 24 -23t-5 -45t-8 -37zM1403 1166q-26 -167 -111 -655q-5 -30 -27 -56t-43.5 -40t-54.5 -31q-252 -126 -610 -88q-248 27 -394 139q-15 12 -25.5 26.5t-17 35t-9 34t-6 39.5 t-5.5 35q-9 50 -26.5 150t-28 161.5t-23.5 147.5t-22 158q3 26 17.5 48.5t31.5 37.5t45 30t46 22.5t48 18.5q125 46 313 64q379 37 676 -50q155 -46 215 -122q16 -20 16.5 -51t-5.5 -54z" />
<glyph unicode="&#xf172;" d="M848 666q0 43 -41 66t-77 1q-43 -20 -42.5 -72.5t43.5 -70.5q39 -23 81 4t36 72zM928 682q8 -66 -36 -121t-110 -61t-119 40t-56 113q-2 49 25.5 93t72.5 64q70 31 141.5 -10t81.5 -118zM1100 1073q-20 -21 -53.5 -34t-53 -16t-63.5 -8q-155 -20 -324 0q-44 6 -63 9.5 t-52.5 16t-54.5 32.5q13 19 36 31t40 15.5t47 8.5q198 35 408 1q33 -5 51 -8.5t43 -16t39 -31.5zM1142 327q0 7 5.5 26.5t3 32t-17.5 16.5q-161 -106 -365 -106t-366 106l-12 -6l-5 -12q26 -154 41 -210q47 -81 204 -108q249 -46 428 53q34 19 49 51.5t22.5 85.5t12.5 71z M1272 1020q9 53 -8 75q-43 55 -155 88q-216 63 -487 36q-132 -12 -226 -46q-38 -15 -59.5 -25t-47 -34t-29.5 -54q8 -68 19 -138t29 -171t24 -137q1 -5 5 -31t7 -36t12 -27t22 -28q105 -80 284 -100q259 -28 440 63q24 13 39.5 23t31 29t19.5 40q48 267 80 473zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf173;" horiz-adv-x="1024" d="M944 207l80 -237q-23 -35 -111 -66t-177 -32q-104 -2 -190.5 26t-142.5 74t-95 106t-55.5 120t-16.5 118v544h-168v215q72 26 129 69.5t91 90t58 102t34 99t15 88.5q1 5 4.5 8.5t7.5 3.5h244v-424h333v-252h-334v-518q0 -30 6.5 -56t22.5 -52.5t49.5 -41.5t81.5 -14 q78 2 134 29z" />
<glyph unicode="&#xf174;" d="M1136 75l-62 183q-44 -22 -103 -22q-36 -1 -62 10.5t-38.5 31.5t-17.5 40.5t-5 43.5v398h257v194h-256v326h-188q-8 0 -9 -10q-5 -44 -17.5 -87t-39 -95t-77 -95t-118.5 -68v-165h130v-418q0 -57 21.5 -115t65 -111t121 -85.5t176.5 -30.5q69 1 136.5 25t85.5 50z M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf175;" horiz-adv-x="768" d="M765 237q8 -19 -5 -35l-350 -384q-10 -10 -23 -10q-14 0 -24 10l-355 384q-13 16 -5 35q9 19 29 19h224v1248q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1248h224q21 0 29 -19z" />
<glyph unicode="&#xf176;" horiz-adv-x="768" d="M765 1043q-9 -19 -29 -19h-224v-1248q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1248h-224q-21 0 -29 19t5 35l350 384q10 10 23 10q14 0 24 -10l355 -384q13 -16 5 -35z" />
<glyph unicode="&#xf177;" horiz-adv-x="1792" d="M1792 736v-192q0 -14 -9 -23t-23 -9h-1248v-224q0 -21 -19 -29t-35 5l-384 350q-10 10 -10 23q0 14 10 24l384 354q16 14 35 6q19 -9 19 -29v-224h1248q14 0 23 -9t9 -23z" />
<glyph unicode="&#xf178;" horiz-adv-x="1792" d="M1728 643q0 -14 -10 -24l-384 -354q-16 -14 -35 -6q-19 9 -19 29v224h-1248q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h1248v224q0 21 19 29t35 -5l384 -350q10 -10 10 -23z" />
<glyph unicode="&#xf179;" horiz-adv-x="1408" d="M1393 321q-39 -125 -123 -250q-129 -196 -257 -196q-49 0 -140 32q-86 32 -151 32q-61 0 -142 -33q-81 -34 -132 -34q-152 0 -301 259q-147 261 -147 503q0 228 113 374q112 144 284 144q72 0 177 -30q104 -30 138 -30q45 0 143 34q102 34 173 34q119 0 213 -65 q52 -36 104 -100q-79 -67 -114 -118q-65 -94 -65 -207q0 -124 69 -223t158 -126zM1017 1494q0 -61 -29 -136q-30 -75 -93 -138q-54 -54 -108 -72q-37 -11 -104 -17q3 149 78 257q74 107 250 148q1 -3 2.5 -11t2.5 -11q0 -4 0.5 -10t0.5 -10z" />
<glyph unicode="&#xf17a;" horiz-adv-x="1664" d="M682 530v-651l-682 94v557h682zM682 1273v-659h-682v565zM1664 530v-786l-907 125v661h907zM1664 1408v-794h-907v669z" />
<glyph unicode="&#xf17b;" horiz-adv-x="1408" d="M493 1053q16 0 27.5 11.5t11.5 27.5t-11.5 27.5t-27.5 11.5t-27 -11.5t-11 -27.5t11 -27.5t27 -11.5zM915 1053q16 0 27 11.5t11 27.5t-11 27.5t-27 11.5t-27.5 -11.5t-11.5 -27.5t11.5 -27.5t27.5 -11.5zM103 869q42 0 72 -30t30 -72v-430q0 -43 -29.5 -73t-72.5 -30 t-73 30t-30 73v430q0 42 30 72t73 30zM1163 850v-666q0 -46 -32 -78t-77 -32h-75v-227q0 -43 -30 -73t-73 -30t-73 30t-30 73v227h-138v-227q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73l-1 227h-74q-46 0 -78 32t-32 78v666h918zM931 1255q107 -55 171 -153.5t64 -215.5 h-925q0 117 64 215.5t172 153.5l-71 131q-7 13 5 20q13 6 20 -6l72 -132q95 42 201 42t201 -42l72 132q7 12 20 6q12 -7 5 -20zM1408 767v-430q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73v430q0 43 30 72.5t72 29.5q43 0 73 -29.5t30 -72.5z" />
<glyph unicode="&#xf17c;" d="M663 1125q-11 -1 -15.5 -10.5t-8.5 -9.5q-5 -1 -5 5q0 12 19 15h10zM750 1111q-4 -1 -11.5 6.5t-17.5 4.5q24 11 32 -2q3 -6 -3 -9zM399 684q-4 1 -6 -3t-4.5 -12.5t-5.5 -13.5t-10 -13q-7 -10 -1 -12q4 -1 12.5 7t12.5 18q1 3 2 7t2 6t1.5 4.5t0.5 4v3t-1 2.5t-3 2z M1254 325q0 18 -55 42q4 15 7.5 27.5t5 26t3 21.5t0.5 22.5t-1 19.5t-3.5 22t-4 20.5t-5 25t-5.5 26.5q-10 48 -47 103t-72 75q24 -20 57 -83q87 -162 54 -278q-11 -40 -50 -42q-31 -4 -38.5 18.5t-8 83.5t-11.5 107q-9 39 -19.5 69t-19.5 45.5t-15.5 24.5t-13 15t-7.5 7 q-14 62 -31 103t-29.5 56t-23.5 33t-15 40q-4 21 6 53.5t4.5 49.5t-44.5 25q-15 3 -44.5 18t-35.5 16q-8 1 -11 26t8 51t36 27q37 3 51 -30t4 -58q-11 -19 -2 -26.5t30 -0.5q13 4 13 36v37q-5 30 -13.5 50t-21 30.5t-23.5 15t-27 7.5q-107 -8 -89 -134q0 -15 -1 -15 q-9 9 -29.5 10.5t-33 -0.5t-15.5 5q1 57 -16 90t-45 34q-27 1 -41.5 -27.5t-16.5 -59.5q-1 -15 3.5 -37t13 -37.5t15.5 -13.5q10 3 16 14q4 9 -7 8q-7 0 -15.5 14.5t-9.5 33.5q-1 22 9 37t34 14q17 0 27 -21t9.5 -39t-1.5 -22q-22 -15 -31 -29q-8 -12 -27.5 -23.5 t-20.5 -12.5q-13 -14 -15.5 -27t7.5 -18q14 -8 25 -19.5t16 -19t18.5 -13t35.5 -6.5q47 -2 102 15q2 1 23 7t34.5 10.5t29.5 13t21 17.5q9 14 20 8q5 -3 6.5 -8.5t-3 -12t-16.5 -9.5q-20 -6 -56.5 -21.5t-45.5 -19.5q-44 -19 -70 -23q-25 -5 -79 2q-10 2 -9 -2t17 -19 q25 -23 67 -22q17 1 36 7t36 14t33.5 17.5t30 17t24.5 12t17.5 2.5t8.5 -11q0 -2 -1 -4.5t-4 -5t-6 -4.5t-8.5 -5t-9 -4.5t-10 -5t-9.5 -4.5q-28 -14 -67.5 -44t-66.5 -43t-49 -1q-21 11 -63 73q-22 31 -25 22q-1 -3 -1 -10q0 -25 -15 -56.5t-29.5 -55.5t-21 -58t11.5 -63 q-23 -6 -62.5 -90t-47.5 -141q-2 -18 -1.5 -69t-5.5 -59q-8 -24 -29 -3q-32 31 -36 94q-2 28 4 56q4 19 -1 18l-4 -5q-36 -65 10 -166q5 -12 25 -28t24 -20q20 -23 104 -90.5t93 -76.5q16 -15 17.5 -38t-14 -43t-45.5 -23q8 -15 29 -44.5t28 -54t7 -70.5q46 24 7 92 q-4 8 -10.5 16t-9.5 12t-2 6q3 5 13 9.5t20 -2.5q46 -52 166 -36q133 15 177 87q23 38 34 30q12 -6 10 -52q-1 -25 -23 -92q-9 -23 -6 -37.5t24 -15.5q3 19 14.5 77t13.5 90q2 21 -6.5 73.5t-7.5 97t23 70.5q15 18 51 18q1 37 34.5 53t72.5 10.5t60 -22.5zM626 1152 q3 17 -2.5 30t-11.5 15q-9 2 -9 -7q2 -5 5 -6q10 0 7 -15q-3 -20 8 -20q3 0 3 3zM1045 955q-2 8 -6.5 11.5t-13 5t-14.5 5.5q-5 3 -9.5 8t-7 8t-5.5 6.5t-4 4t-4 -1.5q-14 -16 7 -43.5t39 -31.5q9 -1 14.5 8t3.5 20zM867 1168q0 11 -5 19.5t-11 12.5t-9 3q-14 -1 -7 -7l4 -2 q14 -4 18 -31q0 -3 8 2zM921 1401q0 2 -2.5 5t-9 7t-9.5 6q-15 15 -24 15q-9 -1 -11.5 -7.5t-1 -13t-0.5 -12.5q-1 -4 -6 -10.5t-6 -9t3 -8.5q4 -3 8 0t11 9t15 9q1 1 9 1t15 2t9 7zM1486 60q20 -12 31 -24.5t12 -24t-2.5 -22.5t-15.5 -22t-23.5 -19.5t-30 -18.5 t-31.5 -16.5t-32 -15.5t-27 -13q-38 -19 -85.5 -56t-75.5 -64q-17 -16 -68 -19.5t-89 14.5q-18 9 -29.5 23.5t-16.5 25.5t-22 19.5t-47 9.5q-44 1 -130 1q-19 0 -57 -1.5t-58 -2.5q-44 -1 -79.5 -15t-53.5 -30t-43.5 -28.5t-53.5 -11.5q-29 1 -111 31t-146 43q-19 4 -51 9.5 t-50 9t-39.5 9.5t-33.5 14.5t-17 19.5q-10 23 7 66.5t18 54.5q1 16 -4 40t-10 42.5t-4.5 36.5t10.5 27q14 12 57 14t60 12q30 18 42 35t12 51q21 -73 -32 -106q-32 -20 -83 -15q-34 3 -43 -10q-13 -15 5 -57q2 -6 8 -18t8.5 -18t4.5 -17t1 -22q0 -15 -17 -49t-14 -48 q3 -17 37 -26q20 -6 84.5 -18.5t99.5 -20.5q24 -6 74 -22t82.5 -23t55.5 -4q43 6 64.5 28t23 48t-7.5 58.5t-19 52t-20 36.5q-121 190 -169 242q-68 74 -113 40q-11 -9 -15 15q-3 16 -2 38q1 29 10 52t24 47t22 42q8 21 26.5 72t29.5 78t30 61t39 54q110 143 124 195 q-12 112 -16 310q-2 90 24 151.5t106 104.5q39 21 104 21q53 1 106 -13.5t89 -41.5q57 -42 91.5 -121.5t29.5 -147.5q-5 -95 30 -214q34 -113 133 -218q55 -59 99.5 -163t59.5 -191q8 -49 5 -84.5t-12 -55.5t-20 -22q-10 -2 -23.5 -19t-27 -35.5t-40.5 -33.5t-61 -14 q-18 1 -31.5 5t-22.5 13.5t-13.5 15.5t-11.5 20.5t-9 19.5q-22 37 -41 30t-28 -49t7 -97q20 -70 1 -195q-10 -65 18 -100.5t73 -33t85 35.5q59 49 89.5 66.5t103.5 42.5q53 18 77 36.5t18.5 34.5t-25 28.5t-51.5 23.5q-33 11 -49.5 48t-15 72.5t15.5 47.5q1 -31 8 -56.5 t14.5 -40.5t20.5 -28.5t21 -19t21.5 -13t16.5 -9.5z" />
<glyph unicode="&#xf17d;" d="M1024 36q-42 241 -140 498h-2l-2 -1q-16 -6 -43 -16.5t-101 -49t-137 -82t-131 -114.5t-103 -148l-15 11q184 -150 418 -150q132 0 256 52zM839 643q-21 49 -53 111q-311 -93 -673 -93q-1 -7 -1 -21q0 -124 44 -236.5t124 -201.5q50 89 123.5 166.5t142.5 124.5t130.5 81 t99.5 48l37 13q4 1 13 3.5t13 4.5zM732 855q-120 213 -244 378q-138 -65 -234 -186t-128 -272q302 0 606 80zM1416 536q-210 60 -409 29q87 -239 128 -469q111 75 185 189.5t96 250.5zM611 1277q-1 0 -2 -1q1 1 2 1zM1201 1132q-185 164 -433 164q-76 0 -155 -19 q131 -170 246 -382q69 26 130 60.5t96.5 61.5t65.5 57t37.5 40.5zM1424 647q-3 232 -149 410l-1 -1q-9 -12 -19 -24.5t-43.5 -44.5t-71 -60.5t-100 -65t-131.5 -64.5q25 -53 44 -95q2 -6 6.5 -17.5t7.5 -16.5q36 5 74.5 7t73.5 2t69 -1.5t64 -4t56.5 -5.5t48 -6.5t36.5 -6 t25 -4.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf17e;" d="M1173 473q0 50 -19.5 91.5t-48.5 68.5t-73 49t-82.5 34t-87.5 23l-104 24q-30 7 -44 10.5t-35 11.5t-30 16t-16.5 21t-7.5 30q0 77 144 77q43 0 77 -12t54 -28.5t38 -33.5t40 -29t48 -12q47 0 75.5 32t28.5 77q0 55 -56 99.5t-142 67.5t-182 23q-68 0 -132 -15.5 t-119.5 -47t-89 -87t-33.5 -128.5q0 -61 19 -106.5t56 -75.5t80 -48.5t103 -32.5l146 -36q90 -22 112 -36q32 -20 32 -60q0 -39 -40 -64.5t-105 -25.5q-51 0 -91.5 16t-65 38.5t-45.5 45t-46 38.5t-54 16q-50 0 -75.5 -30t-25.5 -75q0 -92 122 -157.5t291 -65.5 q73 0 140 18.5t122.5 53.5t88.5 93.5t33 131.5zM1536 256q0 -159 -112.5 -271.5t-271.5 -112.5q-130 0 -234 80q-77 -16 -150 -16q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5q0 73 16 150q-80 104 -80 234q0 159 112.5 271.5t271.5 112.5q130 0 234 -80 q77 16 150 16q143 0 273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -73 -16 -150q80 -104 80 -234z" />
<glyph unicode="&#xf180;" horiz-adv-x="1280" d="M1000 1102l37 194q5 23 -9 40t-35 17h-712q-23 0 -38.5 -17t-15.5 -37v-1101q0 -7 6 -1l291 352q23 26 38 33.5t48 7.5h239q22 0 37 14.5t18 29.5q24 130 37 191q4 21 -11.5 40t-36.5 19h-294q-29 0 -48 19t-19 48v42q0 29 19 47.5t48 18.5h346q18 0 35 13.5t20 29.5z M1227 1324q-15 -73 -53.5 -266.5t-69.5 -350t-35 -173.5q-6 -22 -9 -32.5t-14 -32.5t-24.5 -33t-38.5 -21t-58 -10h-271q-13 0 -22 -10q-8 -9 -426 -494q-22 -25 -58.5 -28.5t-48.5 5.5q-55 22 -55 98v1410q0 55 38 102.5t120 47.5h888q95 0 127 -53t10 -159zM1227 1324 l-158 -790q4 17 35 173.5t69.5 350t53.5 266.5z" />
<glyph unicode="&#xf181;" d="M704 192v1024q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-1024q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1376 576v640q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-640q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408 q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf182;" horiz-adv-x="1280" d="M1280 480q0 -40 -28 -68t-68 -28q-51 0 -80 43l-227 341h-45v-132l247 -411q9 -15 9 -33q0 -26 -19 -45t-45 -19h-192v-272q0 -46 -33 -79t-79 -33h-160q-46 0 -79 33t-33 79v272h-192q-26 0 -45 19t-19 45q0 18 9 33l247 411v132h-45l-227 -341q-29 -43 -80 -43 q-40 0 -68 28t-28 68q0 29 16 53l256 384q73 107 176 107h384q103 0 176 -107l256 -384q16 -24 16 -53zM864 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
<glyph unicode="&#xf183;" horiz-adv-x="1024" d="M1024 832v-416q0 -40 -28 -68t-68 -28t-68 28t-28 68v352h-64v-912q0 -46 -33 -79t-79 -33t-79 33t-33 79v464h-64v-464q0 -46 -33 -79t-79 -33t-79 33t-33 79v912h-64v-352q0 -40 -28 -68t-68 -28t-68 28t-28 68v416q0 80 56 136t136 56h640q80 0 136 -56t56 -136z M736 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
<glyph unicode="&#xf184;" d="M773 234l350 473q16 22 24.5 59t-6 85t-61.5 79q-40 26 -83 25.5t-73.5 -17.5t-54.5 -45q-36 -40 -96 -40q-59 0 -95 40q-24 28 -54.5 45t-73.5 17.5t-84 -25.5q-46 -31 -60.5 -79t-6 -85t24.5 -59zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf185;" horiz-adv-x="1792" d="M1472 640q0 117 -45.5 223.5t-123 184t-184 123t-223.5 45.5t-223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5t45.5 -223.5t123 -184t184 -123t223.5 -45.5t223.5 45.5t184 123t123 184t45.5 223.5zM1748 363q-4 -15 -20 -20l-292 -96v-306q0 -16 -13 -26q-15 -10 -29 -4 l-292 94l-180 -248q-10 -13 -26 -13t-26 13l-180 248l-292 -94q-14 -6 -29 4q-13 10 -13 26v306l-292 96q-16 5 -20 20q-5 17 4 29l180 248l-180 248q-9 13 -4 29q4 15 20 20l292 96v306q0 16 13 26q15 10 29 4l292 -94l180 248q9 12 26 12t26 -12l180 -248l292 94 q14 6 29 -4q13 -10 13 -26v-306l292 -96q16 -5 20 -20q5 -16 -4 -29l-180 -248l180 -248q9 -12 4 -29z" />
<glyph unicode="&#xf186;" d="M1262 233q-54 -9 -110 -9q-182 0 -337 90t-245 245t-90 337q0 192 104 357q-201 -60 -328.5 -229t-127.5 -384q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51q144 0 273.5 61.5t220.5 171.5zM1465 318q-94 -203 -283.5 -324.5t-413.5 -121.5q-156 0 -298 61 t-245 164t-164 245t-61 298q0 153 57.5 292.5t156 241.5t235.5 164.5t290 68.5q44 2 61 -39q18 -41 -15 -72q-86 -78 -131.5 -181.5t-45.5 -218.5q0 -148 73 -273t198 -198t273 -73q118 0 228 51q41 18 72 -13q14 -14 17.5 -34t-4.5 -38z" />
<glyph unicode="&#xf187;" horiz-adv-x="1792" d="M1088 704q0 26 -19 45t-45 19h-256q-26 0 -45 -19t-19 -45t19 -45t45 -19h256q26 0 45 19t19 45zM1664 896v-960q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v960q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1728 1344v-256q0 -26 -19 -45t-45 -19h-1536 q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1536q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf188;" horiz-adv-x="1664" d="M1632 576q0 -26 -19 -45t-45 -19h-224q0 -171 -67 -290l208 -209q19 -19 19 -45t-19 -45q-18 -19 -45 -19t-45 19l-198 197q-5 -5 -15 -13t-42 -28.5t-65 -36.5t-82 -29t-97 -13v896h-128v-896q-51 0 -101.5 13.5t-87 33t-66 39t-43.5 32.5l-15 14l-183 -207 q-20 -21 -48 -21q-24 0 -43 16q-19 18 -20.5 44.5t15.5 46.5l202 227q-58 114 -58 274h-224q-26 0 -45 19t-19 45t19 45t45 19h224v294l-173 173q-19 19 -19 45t19 45t45 19t45 -19l173 -173h844l173 173q19 19 45 19t45 -19t19 -45t-19 -45l-173 -173v-294h224q26 0 45 -19 t19 -45zM1152 1152h-640q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5z" />
<glyph unicode="&#xf189;" horiz-adv-x="1920" d="M1917 1016q23 -64 -150 -294q-24 -32 -65 -85q-78 -100 -90 -131q-17 -41 14 -81q17 -21 81 -82h1l1 -1l1 -1l2 -2q141 -131 191 -221q3 -5 6.5 -12.5t7 -26.5t-0.5 -34t-25 -27.5t-59 -12.5l-256 -4q-24 -5 -56 5t-52 22l-20 12q-30 21 -70 64t-68.5 77.5t-61 58 t-56.5 15.5q-3 -1 -8 -3.5t-17 -14.5t-21.5 -29.5t-17 -52t-6.5 -77.5q0 -15 -3.5 -27.5t-7.5 -18.5l-4 -5q-18 -19 -53 -22h-115q-71 -4 -146 16.5t-131.5 53t-103 66t-70.5 57.5l-25 24q-10 10 -27.5 30t-71.5 91t-106 151t-122.5 211t-130.5 272q-6 16 -6 27t3 16l4 6 q15 19 57 19l274 2q12 -2 23 -6.5t16 -8.5l5 -3q16 -11 24 -32q20 -50 46 -103.5t41 -81.5l16 -29q29 -60 56 -104t48.5 -68.5t41.5 -38.5t34 -14t27 5q2 1 5 5t12 22t13.5 47t9.5 81t0 125q-2 40 -9 73t-14 46l-6 12q-25 34 -85 43q-13 2 5 24q17 19 38 30q53 26 239 24 q82 -1 135 -13q20 -5 33.5 -13.5t20.5 -24t10.5 -32t3.5 -45.5t-1 -55t-2.5 -70.5t-1.5 -82.5q0 -11 -1 -42t-0.5 -48t3.5 -40.5t11.5 -39t22.5 -24.5q8 -2 17 -4t26 11t38 34.5t52 67t68 107.5q60 104 107 225q4 10 10 17.5t11 10.5l4 3l5 2.5t13 3t20 0.5l288 2 q39 5 64 -2.5t31 -16.5z" />
<glyph unicode="&#xf18a;" horiz-adv-x="1792" d="M675 252q21 34 11 69t-45 50q-34 14 -73 1t-60 -46q-22 -34 -13 -68.5t43 -50.5t74.5 -2.5t62.5 47.5zM769 373q8 13 3.5 26.5t-17.5 18.5q-14 5 -28.5 -0.5t-21.5 -18.5q-17 -31 13 -45q14 -5 29 0.5t22 18.5zM943 266q-45 -102 -158 -150t-224 -12 q-107 34 -147.5 126.5t6.5 187.5q47 93 151.5 139t210.5 19q111 -29 158.5 -119.5t2.5 -190.5zM1255 426q-9 96 -89 170t-208.5 109t-274.5 21q-223 -23 -369.5 -141.5t-132.5 -264.5q9 -96 89 -170t208.5 -109t274.5 -21q223 23 369.5 141.5t132.5 264.5zM1563 422 q0 -68 -37 -139.5t-109 -137t-168.5 -117.5t-226 -83t-270.5 -31t-275 33.5t-240.5 93t-171.5 151t-65 199.5q0 115 69.5 245t197.5 258q169 169 341.5 236t246.5 -7q65 -64 20 -209q-4 -14 -1 -20t10 -7t14.5 0.5t13.5 3.5l6 2q139 59 246 59t153 -61q45 -63 0 -178 q-2 -13 -4.5 -20t4.5 -12.5t12 -7.5t17 -6q57 -18 103 -47t80 -81.5t34 -116.5zM1489 1046q42 -47 54.5 -108.5t-6.5 -117.5q-8 -23 -29.5 -34t-44.5 -4q-23 8 -34 29.5t-4 44.5q20 63 -24 111t-107 35q-24 -5 -45 8t-25 37q-5 24 8 44.5t37 25.5q60 13 119 -5.5t101 -65.5z M1670 1209q87 -96 112.5 -222.5t-13.5 -241.5q-9 -27 -34 -40t-52 -4t-40 34t-5 52q28 82 10 172t-80 158q-62 69 -148 95.5t-173 8.5q-28 -6 -52 9.5t-30 43.5t9.5 51.5t43.5 29.5q123 26 244 -11.5t208 -134.5z" />
<glyph unicode="&#xf18b;" d="M1133 -34q-171 -94 -368 -94q-196 0 -367 94q138 87 235.5 211t131.5 268q35 -144 132.5 -268t235.5 -211zM638 1394v-485q0 -252 -126.5 -459.5t-330.5 -306.5q-181 215 -181 495q0 187 83.5 349.5t229.5 269.5t325 137zM1536 638q0 -280 -181 -495 q-204 99 -330.5 306.5t-126.5 459.5v485q179 -30 325 -137t229.5 -269.5t83.5 -349.5z" />
<glyph unicode="&#xf18c;" horiz-adv-x="1408" d="M1402 433q-32 -80 -76 -138t-91 -88.5t-99 -46.5t-101.5 -14.5t-96.5 8.5t-86.5 22t-69.5 27.5t-46 22.5l-17 10q-113 -228 -289.5 -359.5t-384.5 -132.5q-19 0 -32 13t-13 32t13 31.5t32 12.5q173 1 322.5 107.5t251.5 294.5q-36 -14 -72 -23t-83 -13t-91 2.5t-93 28.5 t-92 59t-84.5 100t-74.5 146q114 47 214 57t167.5 -7.5t124.5 -56.5t88.5 -77t56.5 -82q53 131 79 291q-7 -1 -18 -2.5t-46.5 -2.5t-69.5 0.5t-81.5 10t-88.5 23t-84 42.5t-75 65t-54.5 94.5t-28.5 127.5q70 28 133.5 36.5t112.5 -1t92 -30t73.5 -50t56 -61t42 -63t27.5 -56 t16 -39.5l4 -16q12 122 12 195q-8 6 -21.5 16t-49 44.5t-63.5 71.5t-54 93t-33 112.5t12 127t70 138.5q73 -25 127.5 -61.5t84.5 -76.5t48 -85t20.5 -89t-0.5 -85.5t-13 -76.5t-19 -62t-17 -42l-7 -15q1 -5 1 -50.5t-1 -71.5q3 7 10 18.5t30.5 43t50.5 58t71 55.5t91.5 44.5 t112 14.5t132.5 -24q-2 -78 -21.5 -141.5t-50 -104.5t-69.5 -71.5t-81.5 -45.5t-84.5 -24t-80 -9.5t-67.5 1t-46.5 4.5l-17 3q-23 -147 -73 -283q6 7 18 18.5t49.5 41t77.5 52.5t99.5 42t117.5 20t129 -23.5t137 -77.5z" />
<glyph unicode="&#xf18d;" horiz-adv-x="1280" d="M1259 283v-66q0 -85 -57.5 -144.5t-138.5 -59.5h-57l-260 -269v269h-529q-81 0 -138.5 59.5t-57.5 144.5v66h1238zM1259 609v-255h-1238v255h1238zM1259 937v-255h-1238v255h1238zM1259 1077v-67h-1238v67q0 84 57.5 143.5t138.5 59.5h846q81 0 138.5 -59.5t57.5 -143.5z " />
<glyph unicode="&#xf18e;" d="M1152 640q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192h-352q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h352v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198 t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf190;" d="M1152 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-192q0 -14 -9 -23t-23 -9q-12 0 -24 10l-319 319q-9 9 -9 23t9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h352q13 0 22.5 -9.5t9.5 -22.5zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198 t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf191;" d="M1024 960v-640q0 -26 -19 -45t-45 -19q-20 0 -37 12l-448 320q-27 19 -27 52t27 52l448 320q17 12 37 12q26 0 45 -19t19 -45zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5z M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf192;" d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5 t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf193;" horiz-adv-x="1664" d="M1023 349l102 -204q-58 -179 -210 -290t-339 -111q-156 0 -288.5 77.5t-210 210t-77.5 288.5q0 181 104.5 330t274.5 211l17 -131q-122 -54 -195 -165.5t-73 -244.5q0 -185 131.5 -316.5t316.5 -131.5q126 0 232.5 65t165 175.5t49.5 236.5zM1571 249l58 -114l-256 -128 q-13 -7 -29 -7q-40 0 -57 35l-239 477h-472q-24 0 -42.5 16.5t-21.5 40.5l-96 779q-2 16 6 42q14 51 57 82.5t97 31.5q66 0 113 -47t47 -113q0 -69 -52 -117.5t-120 -41.5l37 -289h423v-128h-407l16 -128h455q40 0 57 -35l228 -455z" />
<glyph unicode="&#xf194;" d="M1292 898q10 216 -161 222q-231 8 -312 -261q44 19 82 19q85 0 74 -96q-4 -57 -74 -167t-105 -110q-43 0 -82 169q-13 54 -45 255q-30 189 -160 177q-59 -7 -164 -100l-81 -72l-81 -72l52 -67q76 52 87 52q57 0 107 -179q15 -55 45 -164.5t45 -164.5q68 -179 164 -179 q157 0 383 294q220 283 226 444zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf195;" horiz-adv-x="1152" d="M1152 704q0 -191 -94.5 -353t-256.5 -256.5t-353 -94.5h-160q-14 0 -23 9t-9 23v611l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v93l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v250q0 14 9 23t23 9h160 q14 0 23 -9t9 -23v-181l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-93l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-487q188 13 318 151t130 328q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" />
<glyph unicode="&#xf196;" horiz-adv-x="1408" d="M1152 736v-64q0 -14 -9 -23t-23 -9h-352v-352q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v352h-352q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h352v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-352h352q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832 q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf197;" horiz-adv-x="2176" d="M620 416q-110 -64 -268 -64h-128v64h-64q-13 0 -22.5 23.5t-9.5 56.5q0 24 7 49q-58 2 -96.5 10.5t-38.5 20.5t38.5 20.5t96.5 10.5q-7 25 -7 49q0 33 9.5 56.5t22.5 23.5h64v64h128q158 0 268 -64h1113q42 -7 106.5 -18t80.5 -14q89 -15 150 -40.5t83.5 -47.5t22.5 -40 t-22.5 -40t-83.5 -47.5t-150 -40.5q-16 -3 -80.5 -14t-106.5 -18h-1113zM1739 668q53 -36 53 -92t-53 -92l81 -30q68 48 68 122t-68 122zM625 400h1015q-217 -38 -456 -80q-57 0 -113 -24t-83 -48l-28 -24l-288 -288q-26 -26 -70.5 -45t-89.5 -19h-96l-93 464h29 q157 0 273 64zM352 816h-29l93 464h96q46 0 90 -19t70 -45l288 -288q4 -4 11 -10.5t30.5 -23t48.5 -29t61.5 -23t72.5 -10.5l456 -80h-1015q-116 64 -273 64z" />
<glyph unicode="&#xf198;" horiz-adv-x="1664" d="M1519 760q62 0 103.5 -40.5t41.5 -101.5q0 -97 -93 -130l-172 -59l56 -167q7 -21 7 -47q0 -59 -42 -102t-101 -43q-47 0 -85.5 27t-53.5 72l-55 165l-310 -106l55 -164q8 -24 8 -47q0 -59 -42 -102t-102 -43q-47 0 -85 27t-53 72l-55 163l-153 -53q-29 -9 -50 -9 q-61 0 -101.5 40t-40.5 101q0 47 27.5 85t71.5 53l156 53l-105 313l-156 -54q-26 -8 -48 -8q-60 0 -101 40.5t-41 100.5q0 47 27.5 85t71.5 53l157 53l-53 159q-8 24 -8 47q0 60 42 102.5t102 42.5q47 0 85 -27t53 -72l54 -160l310 105l-54 160q-8 24 -8 47q0 59 42.5 102 t101.5 43q47 0 85.5 -27.5t53.5 -71.5l53 -161l162 55q21 6 43 6q60 0 102.5 -39.5t42.5 -98.5q0 -45 -30 -81.5t-74 -51.5l-157 -54l105 -316l164 56q24 8 46 8zM725 498l310 105l-105 315l-310 -107z" />
<glyph unicode="&#xf199;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM1280 352v436q-31 -35 -64 -55q-34 -22 -132.5 -85t-151.5 -99q-98 -69 -164 -69v0v0q-66 0 -164 69 q-46 32 -141.5 92.5t-142.5 92.5q-12 8 -33 27t-31 27v-436q0 -40 28 -68t68 -28h832q40 0 68 28t28 68zM1280 925q0 41 -27.5 70t-68.5 29h-832q-40 0 -68 -28t-28 -68q0 -37 30.5 -76.5t67.5 -64.5q47 -32 137.5 -89t129.5 -83q3 -2 17 -11.5t21 -14t21 -13t23.5 -13 t21.5 -9.5t22.5 -7.5t20.5 -2.5t20.5 2.5t22.5 7.5t21.5 9.5t23.5 13t21 13t21 14t17 11.5l267 174q35 23 66.5 62.5t31.5 73.5z" />
<glyph unicode="&#xf19a;" horiz-adv-x="1792" d="M127 640q0 163 67 313l367 -1005q-196 95 -315 281t-119 411zM1415 679q0 -19 -2.5 -38.5t-10 -49.5t-11.5 -44t-17.5 -59t-17.5 -58l-76 -256l-278 826q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-75 1 -202 10q-12 1 -20.5 -5t-11.5 -15t-1.5 -18.5t9 -16.5 t19.5 -8l80 -8l120 -328l-168 -504l-280 832q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-7 0 -23 0.5t-26 0.5q105 160 274.5 253.5t367.5 93.5q147 0 280.5 -53t238.5 -149h-10q-55 0 -92 -40.5t-37 -95.5q0 -12 2 -24t4 -21.5t8 -23t9 -21t12 -22.5t12.5 -21 t14.5 -24t14 -23q63 -107 63 -212zM909 573l237 -647q1 -6 5 -11q-126 -44 -255 -44q-112 0 -217 32zM1570 1009q95 -174 95 -369q0 -209 -104 -385.5t-279 -278.5l235 678q59 169 59 276q0 42 -6 79zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286 t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM896 -215q173 0 331.5 68t273 182.5t182.5 273t68 331.5t-68 331.5t-182.5 273t-273 182.5t-331.5 68t-331.5 -68t-273 -182.5t-182.5 -273t-68 -331.5t68 -331.5t182.5 -273 t273 -182.5t331.5 -68z" />
<glyph unicode="&#xf19b;" horiz-adv-x="1792" d="M1086 1536v-1536l-272 -128q-228 20 -414 102t-293 208.5t-107 272.5q0 140 100.5 263.5t275 205.5t391.5 108v-172q-217 -38 -356.5 -150t-139.5 -255q0 -152 154.5 -267t388.5 -145v1360zM1755 954l37 -390l-525 114l147 83q-119 70 -280 99v172q277 -33 481 -157z" />
<glyph unicode="&#xf19c;" horiz-adv-x="2048" d="M960 1536l960 -384v-128h-128q0 -26 -20.5 -45t-48.5 -19h-1526q-28 0 -48.5 19t-20.5 45h-128v128zM256 896h256v-768h128v768h256v-768h128v768h256v-768h128v768h256v-768h59q28 0 48.5 -19t20.5 -45v-64h-1664v64q0 26 20.5 45t48.5 19h59v768zM1851 -64 q28 0 48.5 -19t20.5 -45v-128h-1920v128q0 26 20.5 45t48.5 19h1782z" />
<glyph unicode="&#xf19d;" horiz-adv-x="2304" d="M1774 700l18 -316q4 -69 -82 -128t-235 -93.5t-323 -34.5t-323 34.5t-235 93.5t-82 128l18 316l574 -181q22 -7 48 -7t48 7zM2304 1024q0 -23 -22 -31l-1120 -352q-4 -1 -10 -1t-10 1l-652 206q-43 -34 -71 -111.5t-34 -178.5q63 -36 63 -109q0 -69 -58 -107l58 -433 q2 -14 -8 -25q-9 -11 -24 -11h-192q-15 0 -24 11q-10 11 -8 25l58 433q-58 38 -58 107q0 73 65 111q11 207 98 330l-333 104q-22 8 -22 31t22 31l1120 352q4 1 10 1t10 -1l1120 -352q22 -8 22 -31z" />
<glyph unicode="&#xf19e;" d="M859 579l13 -707q-62 11 -105 11q-41 0 -105 -11l13 707q-40 69 -168.5 295.5t-216.5 374.5t-181 287q58 -15 108 -15q43 0 111 15q63 -111 133.5 -229.5t167 -276.5t138.5 -227q37 61 109.5 177.5t117.5 190t105 176t107 189.5q54 -14 107 -14q56 0 114 14v0 q-28 -39 -60 -88.5t-49.5 -78.5t-56.5 -96t-49 -84q-146 -248 -353 -610z" />
<glyph unicode="&#xf1a0;" d="M768 750h725q12 -67 12 -128q0 -217 -91 -387.5t-259.5 -266.5t-386.5 -96q-157 0 -299 60.5t-245 163.5t-163.5 245t-60.5 299t60.5 299t163.5 245t245 163.5t299 60.5q300 0 515 -201l-209 -201q-123 119 -306 119q-129 0 -238.5 -65t-173.5 -176.5t-64 -243.5 t64 -243.5t173.5 -176.5t238.5 -65q87 0 160 24t120 60t82 82t51.5 87t22.5 78h-436v264z" />
<glyph unicode="&#xf1a1;" horiz-adv-x="1792" d="M1095 369q16 -16 0 -31q-62 -62 -199 -62t-199 62q-16 15 0 31q6 6 15 6t15 -6q48 -49 169 -49q120 0 169 49q6 6 15 6t15 -6zM788 550q0 -37 -26 -63t-63 -26t-63.5 26t-26.5 63q0 38 26.5 64t63.5 26t63 -26.5t26 -63.5zM1183 550q0 -37 -26.5 -63t-63.5 -26t-63 26 t-26 63t26 63.5t63 26.5t63.5 -26t26.5 -64zM1434 670q0 49 -35 84t-85 35t-86 -36q-130 90 -311 96l63 283l200 -45q0 -37 26 -63t63 -26t63.5 26.5t26.5 63.5t-26.5 63.5t-63.5 26.5q-54 0 -80 -50l-221 49q-19 5 -25 -16l-69 -312q-180 -7 -309 -97q-35 37 -87 37 q-50 0 -85 -35t-35 -84q0 -35 18.5 -64t49.5 -44q-6 -27 -6 -56q0 -142 140 -243t337 -101q198 0 338 101t140 243q0 32 -7 57q30 15 48 43.5t18 63.5zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191 t348 71t348 -71t286 -191t191 -286t71 -348z" />
<glyph unicode="&#xf1a2;" d="M939 407q13 -13 0 -26q-53 -53 -171 -53t-171 53q-13 13 0 26q5 6 13 6t13 -6q42 -42 145 -42t145 42q5 6 13 6t13 -6zM676 563q0 -31 -23 -54t-54 -23t-54 23t-23 54q0 32 22.5 54.5t54.5 22.5t54.5 -22.5t22.5 -54.5zM1014 563q0 -31 -23 -54t-54 -23t-54 23t-23 54 q0 32 22.5 54.5t54.5 22.5t54.5 -22.5t22.5 -54.5zM1229 666q0 42 -30 72t-73 30q-42 0 -73 -31q-113 78 -267 82l54 243l171 -39q1 -32 23.5 -54t53.5 -22q32 0 54.5 22.5t22.5 54.5t-22.5 54.5t-54.5 22.5q-48 0 -69 -43l-189 42q-17 5 -21 -13l-60 -268q-154 -6 -265 -83 q-30 32 -74 32q-43 0 -73 -30t-30 -72q0 -30 16 -55t42 -38q-5 -25 -5 -48q0 -122 120 -208.5t289 -86.5q170 0 290 86.5t120 208.5q0 25 -6 49q25 13 40.5 37.5t15.5 54.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960 q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf1a3;" d="M866 697l90 27v62q0 79 -58 135t-138 56t-138 -55.5t-58 -134.5v-283q0 -20 -14 -33.5t-33 -13.5t-32.5 13.5t-13.5 33.5v120h-151v-122q0 -82 57.5 -139t139.5 -57q81 0 138.5 56.5t57.5 136.5v280q0 19 13.5 33t33.5 14q19 0 32.5 -14t13.5 -33v-54zM1199 502v122h-150 v-126q0 -20 -13.5 -33.5t-33.5 -13.5q-19 0 -32.5 14t-13.5 33v123l-90 -26l-60 28v-123q0 -80 58 -137t139 -57t138.5 57t57.5 139zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103 t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf1a4;" horiz-adv-x="1920" d="M1062 824v118q0 42 -30 72t-72 30t-72 -30t-30 -72v-612q0 -175 -126 -299t-303 -124q-178 0 -303.5 125.5t-125.5 303.5v266h328v-262q0 -43 30 -72.5t72 -29.5t72 29.5t30 72.5v620q0 171 126.5 292t301.5 121q176 0 302 -122t126 -294v-136l-195 -58zM1592 602h328 v-266q0 -178 -125.5 -303.5t-303.5 -125.5q-177 0 -303 124.5t-126 300.5v268l131 -61l195 58v-270q0 -42 30 -71.5t72 -29.5t72 29.5t30 71.5v275z" />
<glyph unicode="&#xf1a5;" d="M1472 160v480h-704v704h-480q-93 0 -158.5 -65.5t-65.5 -158.5v-480h704v-704h480q93 0 158.5 65.5t65.5 158.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 t84.5 -203.5z" />
<glyph unicode="&#xf1a6;" horiz-adv-x="2048" d="M328 1254h204v-983h-532v697h328v286zM328 435v369h-123v-369h123zM614 968v-697h205v697h-205zM614 1254v-204h205v204h-205zM901 968h533v-942h-533v163h328v82h-328v697zM1229 435v369h-123v-369h123zM1516 968h532v-942h-532v163h327v82h-327v697zM1843 435v369h-123 v-369h123z" />
<glyph unicode="&#xf1a7;" d="M1046 516q0 -64 -38 -109t-91 -45q-43 0 -70 15v277q28 17 70 17q53 0 91 -45.5t38 -109.5zM703 944q0 -64 -38 -109.5t-91 -45.5q-43 0 -70 15v277q28 17 70 17q53 0 91 -45t38 -109zM1265 513q0 134 -88 229t-213 95q-20 0 -39 -3q-23 -78 -78 -136q-87 -95 -211 -101 v-636l211 41v206q51 -19 117 -19q125 0 213 95t88 229zM922 940q0 134 -88.5 229t-213.5 95q-74 0 -141 -36h-186v-840l211 41v206q55 -19 116 -19q125 0 213.5 95t88.5 229zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960 q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf1a8;" horiz-adv-x="2038" d="M1222 607q75 3 143.5 -20.5t118 -58.5t101 -94.5t84 -108t75.5 -120.5q33 -56 78.5 -109t75.5 -80.5t99 -88.5q-48 -30 -108.5 -57.5t-138.5 -59t-114 -47.5q-44 37 -74 115t-43.5 164.5t-33 180.5t-42.5 168.5t-72.5 123t-122.5 48.5l-10 -2l-6 -4q4 -5 13 -14 q6 -5 28 -23.5t25.5 -22t19 -18t18 -20.5t11.5 -21t10.5 -27.5t4.5 -31t4 -40.5l1 -33q1 -26 -2.5 -57.5t-7.5 -52t-12.5 -58.5t-11.5 -53q-35 1 -101 -9.5t-98 -10.5q-39 0 -72 10q-2 16 -2 47q0 74 3 96q2 13 31.5 41.5t57 59t26.5 51.5q-24 2 -43 -24 q-36 -53 -111.5 -99.5t-136.5 -46.5q-25 0 -75.5 63t-106.5 139.5t-84 96.5q-6 4 -27 30q-482 -112 -513 -112q-16 0 -28 11t-12 27q0 15 8.5 26.5t22.5 14.5l486 106q-8 14 -8 25t5.5 17.5t16 11.5t20 7t23 4.5t18.5 4.5q4 1 15.5 7.5t17.5 6.5q15 0 28 -16t20 -33 q163 37 172 37q17 0 29.5 -11t12.5 -28q0 -15 -8.5 -26t-23.5 -14l-182 -40l-1 -16q-1 -26 81.5 -117.5t104.5 -91.5q47 0 119 80t72 129q0 36 -23.5 53t-51 18.5t-51 11.5t-23.5 34q0 16 10 34l-68 19q43 44 43 117q0 26 -5 58q82 16 144 16q44 0 71.5 -1.5t48.5 -8.5 t31 -13.5t20.5 -24.5t15.5 -33.5t17 -47.5t24 -60l50 25q-3 -40 -23 -60t-42.5 -21t-40 -6.5t-16.5 -20.5zM1282 842q-5 5 -13.5 15.5t-12 14.5t-10.5 11.5t-10 10.5l-8 8t-8.5 7.5t-8 5t-8.5 4.5q-7 3 -14.5 5t-20.5 2.5t-22 0.5h-32.5h-37.5q-126 0 -217 -43 q16 30 36 46.5t54 29.5t65.5 36t46 36.5t50 55t43.5 50.5q12 -9 28 -31.5t32 -36.5t38 -13l12 1v-76l22 -1q247 95 371 190q28 21 50 39t42.5 37.5t33 31t29.5 34t24 31t24.5 37t23 38t27 47.5t29.5 53l7 9q-2 -53 -43 -139q-79 -165 -205 -264t-306 -142q-14 -3 -42 -7.5 t-50 -9.5t-39 -14q3 -19 24.5 -46t21.5 -34q0 -11 -26 -30zM1061 -79q39 26 131.5 47.5t146.5 21.5q9 0 22.5 -15.5t28 -42.5t26 -50t24 -51t14.5 -33q-121 -45 -244 -45q-61 0 -125 11zM822 568l48 12l109 -177l-73 -48zM1323 51q3 -15 3 -16q0 -7 -17.5 -14.5t-46 -13 t-54 -9.5t-53.5 -7.5t-32 -4.5l-7 43q21 2 60.5 8.5t72 10t60.5 3.5h14zM866 679l-96 -20l-6 17q10 1 32.5 7t34.5 6q19 0 35 -10zM1061 45h31l10 -83l-41 -12v95zM1950 1535v1v-1zM1950 1535l-1 -5l-2 -2l1 3zM1950 1535l1 1z" />
<glyph unicode="&#xf1a9;" d="M1167 -50q-5 19 -24 5q-30 -22 -87 -39t-131 -17q-129 0 -193 49q-5 4 -13 4q-11 0 -26 -12q-7 -6 -7.5 -16t7.5 -20q34 -32 87.5 -46t102.5 -12.5t99 4.5q41 4 84.5 20.5t65 30t28.5 20.5q12 12 7 29zM1128 65q-19 47 -39 61q-23 15 -76 15q-47 0 -71 -10 q-29 -12 -78 -56q-26 -24 -12 -44q9 -8 17.5 -4.5t31.5 23.5q3 2 10.5 8.5t10.5 8.5t10 7t11.5 7t12.5 5t15 4.5t16.5 2.5t20.5 1q27 0 44.5 -7.5t23 -14.5t13.5 -22q10 -17 12.5 -20t12.5 1q23 12 14 34zM1483 346q0 22 -5 44.5t-16.5 45t-34 36.5t-52.5 14 q-33 0 -97 -41.5t-129 -83.5t-101 -42q-27 -1 -63.5 19t-76 49t-83.5 58t-100 49t-111 19q-115 -1 -197 -78.5t-84 -178.5q-2 -112 74 -164q29 -20 62.5 -28.5t103.5 -8.5q57 0 132 32.5t134 71t120 70.5t93 31q26 -1 65 -31.5t71.5 -67t68 -67.5t55.5 -32q35 -3 58.5 14 t55.5 63q28 41 42.5 101t14.5 106zM1536 506q0 -164 -62 -304.5t-166 -236t-242.5 -149.5t-290.5 -54t-293 57.5t-247.5 157t-170.5 241.5t-64 302q0 89 19.5 172.5t49 145.5t70.5 118.5t78.5 94t78.5 69.5t64.5 46.5t42.5 24.5q14 8 51 26.5t54.5 28.5t48 30t60.5 44 q36 28 58 72.5t30 125.5q129 -155 186 -193q44 -29 130 -68t129 -66q21 -13 39 -25t60.5 -46.5t76 -70.5t75 -95t69 -122t47 -148.5t19.5 -177.5z" />
<glyph unicode="&#xf1aa;" d="M1070 463l-160 -160l-151 -152l-30 -30q-65 -64 -151.5 -87t-171.5 -2q-16 -70 -72 -115t-129 -45q-85 0 -145 60.5t-60 145.5q0 72 44.5 128t113.5 72q-22 86 1 173t88 152l12 12l151 -152l-11 -11q-37 -37 -37 -89t37 -90q37 -37 89 -37t89 37l30 30l151 152l161 160z M729 1145l12 -12l-152 -152l-12 12q-37 37 -89 37t-89 -37t-37 -89.5t37 -89.5l29 -29l152 -152l160 -160l-151 -152l-161 160l-151 152l-30 30q-68 67 -90 159.5t5 179.5q-70 15 -115 71t-45 129q0 85 60 145.5t145 60.5q76 0 133.5 -49t69.5 -123q84 20 169.5 -3.5 t149.5 -87.5zM1536 78q0 -85 -60 -145.5t-145 -60.5q-74 0 -131 47t-71 118q-86 -28 -179.5 -6t-161.5 90l-11 12l151 152l12 -12q37 -37 89 -37t89 37t37 89t-37 89l-30 30l-152 152l-160 160l152 152l160 -160l152 -152l29 -30q64 -64 87.5 -150.5t2.5 -171.5 q76 -11 126.5 -68.5t50.5 -134.5zM1534 1202q0 -77 -51 -135t-127 -69q26 -85 3 -176.5t-90 -158.5l-12 -12l-151 152l12 12q37 37 37 89t-37 89t-89 37t-89 -37l-30 -30l-152 -152l-160 -160l-152 152l161 160l152 152l29 30q67 67 159 89.5t178 -3.5q11 75 68.5 126 t135.5 51q85 0 145 -60.5t60 -145.5z" />
<glyph unicode="&#xf1ab;" d="M654 458q-1 -3 -12.5 0.5t-31.5 11.5l-20 9q-44 20 -87 49q-7 5 -41 31.5t-38 28.5q-67 -103 -134 -181q-81 -95 -105 -110q-4 -2 -19.5 -4t-18.5 0q6 4 82 92q21 24 85.5 115t78.5 118q17 30 51 98.5t36 77.5q-8 1 -110 -33q-8 -2 -27.5 -7.5t-34.5 -9.5t-17 -5 q-2 -2 -2 -10.5t-1 -9.5q-5 -10 -31 -15q-23 -7 -47 0q-18 4 -28 21q-4 6 -5 23q6 2 24.5 5t29.5 6q58 16 105 32q100 35 102 35q10 2 43 19.5t44 21.5q9 3 21.5 8t14.5 5.5t6 -0.5q2 -12 -1 -33q0 -2 -12.5 -27t-26.5 -53.5t-17 -33.5q-25 -50 -77 -131l64 -28 q12 -6 74.5 -32t67.5 -28q4 -1 10.5 -25.5t4.5 -30.5zM449 944q3 -15 -4 -28q-12 -23 -50 -38q-30 -12 -60 -12q-26 3 -49 26q-14 15 -18 41l1 3q3 -3 19.5 -5t26.5 0t58 16q36 12 55 14q17 0 21 -17zM1147 815l63 -227l-139 42zM39 15l694 232v1032l-694 -233v-1031z M1280 332l102 -31l-181 657l-100 31l-216 -536l102 -31l45 110l211 -65zM777 1294l573 -184v380zM1088 -29l158 -13l-54 -160l-40 66q-130 -83 -276 -108q-58 -12 -91 -12h-84q-79 0 -199.5 39t-183.5 85q-8 7 -8 16q0 8 5 13.5t13 5.5q4 0 18 -7.5t30.5 -16.5t20.5 -11 q73 -37 159.5 -61.5t157.5 -24.5q95 0 167 14.5t157 50.5q15 7 30.5 15.5t34 19t28.5 16.5zM1536 1050v-1079l-774 246q-14 -6 -375 -127.5t-368 -121.5q-13 0 -18 13q0 1 -1 3v1078q3 9 4 10q5 6 20 11q106 35 149 50v384l558 -198q2 0 160.5 55t316 108.5t161.5 53.5 q20 0 20 -21v-418z" />
<glyph unicode="&#xf1ac;" horiz-adv-x="1792" d="M288 1152q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-128q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h128zM1664 989q58 -34 93 -93t35 -128v-768q0 -106 -75 -181t-181 -75h-864q-66 0 -113 47t-47 113v1536q0 40 28 68t68 28h672q40 0 88 -20t76 -48 l152 -152q28 -28 48 -76t20 -88v-163zM928 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM928 256v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM928 512v128q0 14 -9 23 t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1184 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1184 256v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128 q14 0 23 9t9 23zM1184 512v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 256v128q0 14 -9 23t-23 9h-128 q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 512v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1536 896v256h-160q-40 0 -68 28t-28 68v160h-640v-512h896z" />
<glyph unicode="&#xf1ad;" d="M1344 1536q26 0 45 -19t19 -45v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h1280zM512 1248v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 992v-64q0 -14 9 -23t23 -9h64q14 0 23 9 t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 736v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 480v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM384 160v64 q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64 q14 0 23 9t9 23zM384 928v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 -96v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9 t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM896 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 928v64 q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 160v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64 q14 0 23 9t9 23zM1152 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 928v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9 t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23z" />
<glyph unicode="&#xf1ae;" horiz-adv-x="1280" d="M1188 988l-292 -292v-824q0 -46 -33 -79t-79 -33t-79 33t-33 79v384h-64v-384q0 -46 -33 -79t-79 -33t-79 33t-33 79v824l-292 292q-28 28 -28 68t28 68t68 28t68 -28l228 -228h368l228 228q28 28 68 28t68 -28t28 -68t-28 -68zM864 1152q0 -93 -65.5 -158.5 t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
<glyph unicode="&#xf1b0;" horiz-adv-x="1664" d="M780 1064q0 -60 -19 -113.5t-63 -92.5t-105 -39q-76 0 -138 57.5t-92 135.5t-30 151q0 60 19 113.5t63 92.5t105 39q77 0 138.5 -57.5t91.5 -135t30 -151.5zM438 581q0 -80 -42 -139t-119 -59q-76 0 -141.5 55.5t-100.5 133.5t-35 152q0 80 42 139.5t119 59.5 q76 0 141.5 -55.5t100.5 -134t35 -152.5zM832 608q118 0 255 -97.5t229 -237t92 -254.5q0 -46 -17 -76.5t-48.5 -45t-64.5 -20t-76 -5.5q-68 0 -187.5 45t-182.5 45q-66 0 -192.5 -44.5t-200.5 -44.5q-183 0 -183 146q0 86 56 191.5t139.5 192.5t187.5 146t193 59zM1071 819 q-61 0 -105 39t-63 92.5t-19 113.5q0 74 30 151.5t91.5 135t138.5 57.5q61 0 105 -39t63 -92.5t19 -113.5q0 -73 -30 -151t-92 -135.5t-138 -57.5zM1503 923q77 0 119 -59.5t42 -139.5q0 -74 -35 -152t-100.5 -133.5t-141.5 -55.5q-77 0 -119 59t-42 139q0 74 35 152.5 t100.5 134t141.5 55.5z" />
<glyph unicode="&#xf1b1;" horiz-adv-x="768" d="M704 1008q0 -145 -57 -243.5t-152 -135.5l45 -821q2 -26 -16 -45t-44 -19h-192q-26 0 -44 19t-16 45l45 821q-95 37 -152 135.5t-57 243.5q0 128 42.5 249.5t117.5 200t160 78.5t160 -78.5t117.5 -200t42.5 -249.5z" />
<glyph unicode="&#xf1b2;" horiz-adv-x="1792" d="M896 -93l640 349v636l-640 -233v-752zM832 772l698 254l-698 254l-698 -254zM1664 1024v-768q0 -35 -18 -65t-49 -47l-704 -384q-28 -16 -61 -16t-61 16l-704 384q-31 17 -49 47t-18 65v768q0 40 23 73t61 47l704 256q22 8 44 8t44 -8l704 -256q38 -14 61 -47t23 -73z " />
<glyph unicode="&#xf1b3;" horiz-adv-x="2304" d="M640 -96l384 192v314l-384 -164v-342zM576 358l404 173l-404 173l-404 -173zM1664 -96l384 192v314l-384 -164v-342zM1600 358l404 173l-404 173l-404 -173zM1152 651l384 165v266l-384 -164v-267zM1088 1030l441 189l-441 189l-441 -189zM2176 512v-416q0 -36 -19 -67 t-52 -47l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-5 2 -7 4q-2 -2 -7 -4l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-33 16 -52 47t-19 67v416q0 38 21.5 70t56.5 48l434 186v400q0 38 21.5 70t56.5 48l448 192q23 10 50 10t50 -10l448 -192q35 -16 56.5 -48t21.5 -70 v-400l434 -186q36 -16 57 -48t21 -70z" />
<glyph unicode="&#xf1b4;" horiz-adv-x="2048" d="M1848 1197h-511v-124h511v124zM1596 771q-90 0 -146 -52.5t-62 -142.5h408q-18 195 -200 195zM1612 186q63 0 122 32t76 87h221q-100 -307 -427 -307q-214 0 -340.5 132t-126.5 347q0 208 130.5 345.5t336.5 137.5q138 0 240.5 -68t153 -179t50.5 -248q0 -17 -2 -47h-658 q0 -111 57.5 -171.5t166.5 -60.5zM277 236h296q205 0 205 167q0 180 -199 180h-302v-347zM277 773h281q78 0 123.5 36.5t45.5 113.5q0 144 -190 144h-260v-294zM0 1282h594q87 0 155 -14t126.5 -47.5t90 -96.5t31.5 -154q0 -181 -172 -263q114 -32 172 -115t58 -204 q0 -75 -24.5 -136.5t-66 -103.5t-98.5 -71t-121 -42t-134 -13h-611v1260z" />
<glyph unicode="&#xf1b5;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM499 1041h-371v-787h382q117 0 197 57.5t80 170.5q0 158 -143 200q107 52 107 164q0 57 -19.5 96.5 t-56.5 60.5t-79 29.5t-97 8.5zM477 723h-176v184h163q119 0 119 -90q0 -94 -106 -94zM486 388h-185v217h189q124 0 124 -113q0 -104 -128 -104zM1136 356q-68 0 -104 38t-36 107h411q1 10 1 30q0 132 -74.5 220.5t-203.5 88.5q-128 0 -210 -86t-82 -216q0 -135 79 -217 t213 -82q205 0 267 191h-138q-11 -34 -47.5 -54t-75.5 -20zM1126 722q113 0 124 -122h-254q4 56 39 89t91 33zM964 988h319v-77h-319v77z" />
<glyph unicode="&#xf1b6;" horiz-adv-x="1792" d="M1582 954q0 -101 -71.5 -172.5t-172.5 -71.5t-172.5 71.5t-71.5 172.5t71.5 172.5t172.5 71.5t172.5 -71.5t71.5 -172.5zM812 212q0 104 -73 177t-177 73q-27 0 -54 -6l104 -42q77 -31 109.5 -106.5t1.5 -151.5q-31 -77 -107 -109t-152 -1q-21 8 -62 24.5t-61 24.5 q32 -60 91 -96.5t130 -36.5q104 0 177 73t73 177zM1642 953q0 126 -89.5 215.5t-215.5 89.5q-127 0 -216.5 -89.5t-89.5 -215.5q0 -127 89.5 -216t216.5 -89q126 0 215.5 89t89.5 216zM1792 953q0 -189 -133.5 -322t-321.5 -133l-437 -319q-12 -129 -109 -218t-229 -89 q-121 0 -214 76t-118 192l-230 92v429l389 -157q79 48 173 48q13 0 35 -2l284 407q2 187 135.5 319t320.5 132q188 0 321.5 -133.5t133.5 -321.5z" />
<glyph unicode="&#xf1b7;" d="M1242 889q0 80 -57 136.5t-137 56.5t-136.5 -57t-56.5 -136q0 -80 56.5 -136.5t136.5 -56.5t137 56.5t57 136.5zM632 301q0 -83 -58 -140.5t-140 -57.5q-56 0 -103 29t-72 77q52 -20 98 -40q60 -24 120 1.5t85 86.5q24 60 -1.5 120t-86.5 84l-82 33q22 5 42 5 q82 0 140 -57.5t58 -140.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v153l172 -69q20 -92 93.5 -152t168.5 -60q104 0 181 70t87 173l345 252q150 0 255.5 105.5t105.5 254.5q0 150 -105.5 255.5t-255.5 105.5 q-148 0 -253 -104.5t-107 -252.5l-225 -322q-9 1 -28 1q-75 0 -137 -37l-297 119v468q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5zM1289 887q0 -100 -71 -170.5t-171 -70.5t-170.5 70.5t-70.5 170.5t70.5 171t170.5 71q101 0 171.5 -70.5t70.5 -171.5z " />
<glyph unicode="&#xf1b8;" horiz-adv-x="1792" d="M836 367l-15 -368l-2 -22l-420 29q-36 3 -67 31.5t-47 65.5q-11 27 -14.5 55t4 65t12 55t21.5 64t19 53q78 -12 509 -28zM449 953l180 -379l-147 92q-63 -72 -111.5 -144.5t-72.5 -125t-39.5 -94.5t-18.5 -63l-4 -21l-190 357q-17 26 -18 56t6 47l8 18q35 63 114 188 l-140 86zM1680 436l-188 -359q-12 -29 -36.5 -46.5t-43.5 -20.5l-18 -4q-71 -7 -219 -12l8 -164l-230 367l211 362l7 -173q170 -16 283 -5t170 33zM895 1360q-47 -63 -265 -435l-317 187l-19 12l225 356q20 31 60 45t80 10q24 -2 48.5 -12t42 -21t41.5 -33t36 -34.5 t36 -39.5t32 -35zM1550 1053l212 -363q18 -37 12.5 -76t-27.5 -74q-13 -20 -33 -37t-38 -28t-48.5 -22t-47 -16t-51.5 -14t-46 -12q-34 72 -265 436l313 195zM1407 1279l142 83l-220 -373l-419 20l151 86q-34 89 -75 166t-75.5 123.5t-64.5 80t-47 46.5l-17 13l405 -1 q31 3 58 -10.5t39 -28.5l11 -15q39 -61 112 -190z" />
<glyph unicode="&#xf1b9;" horiz-adv-x="2048" d="M480 448q0 66 -47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47t113 47t47 113zM516 768h1016l-89 357q-2 8 -14 17.5t-21 9.5h-768q-9 0 -21 -9.5t-14 -17.5zM1888 448q0 66 -47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47t113 47t47 113zM2048 544v-384 q0 -14 -9 -23t-23 -9h-96v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-1024v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-96q-14 0 -23 9t-9 23v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5t179 63.5h768q98 0 179 -63.5t104 -157.5 l105 -419h28q93 0 158.5 -65.5t65.5 -158.5z" />
<glyph unicode="&#xf1ba;" horiz-adv-x="2048" d="M1824 640q93 0 158.5 -65.5t65.5 -158.5v-384q0 -14 -9 -23t-23 -9h-96v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-1024v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-96q-14 0 -23 9t-9 23v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5 t179 63.5h128v224q0 14 9 23t23 9h448q14 0 23 -9t9 -23v-224h128q98 0 179 -63.5t104 -157.5l105 -419h28zM320 160q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47zM516 640h1016l-89 357q-2 8 -14 17.5t-21 9.5h-768q-9 0 -21 -9.5t-14 -17.5z M1728 160q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47z" />
<glyph unicode="&#xf1bb;" d="M1504 64q0 -26 -19 -45t-45 -19h-462q1 -17 6 -87.5t5 -108.5q0 -25 -18 -42.5t-43 -17.5h-320q-25 0 -43 17.5t-18 42.5q0 38 5 108.5t6 87.5h-462q-26 0 -45 19t-19 45t19 45l402 403h-229q-26 0 -45 19t-19 45t19 45l402 403h-197q-26 0 -45 19t-19 45t19 45l384 384 q19 19 45 19t45 -19l384 -384q19 -19 19 -45t-19 -45t-45 -19h-197l402 -403q19 -19 19 -45t-19 -45t-45 -19h-229l402 -403q19 -19 19 -45z" />
<glyph unicode="&#xf1bc;" d="M1127 326q0 32 -30 51q-193 115 -447 115q-133 0 -287 -34q-42 -9 -42 -52q0 -20 13.5 -34.5t35.5 -14.5q5 0 37 8q132 27 243 27q226 0 397 -103q19 -11 33 -11q19 0 33 13.5t14 34.5zM1223 541q0 40 -35 61q-237 141 -548 141q-153 0 -303 -42q-48 -13 -48 -64 q0 -25 17.5 -42.5t42.5 -17.5q7 0 37 8q122 33 251 33q279 0 488 -124q24 -13 38 -13q25 0 42.5 17.5t17.5 42.5zM1331 789q0 47 -40 70q-126 73 -293 110.5t-343 37.5q-204 0 -364 -47q-23 -7 -38.5 -25.5t-15.5 -48.5q0 -31 20.5 -52t51.5 -21q11 0 40 8q133 37 307 37 q159 0 309.5 -34t253.5 -95q21 -12 40 -12q29 0 50.5 20.5t21.5 51.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf1bd;" horiz-adv-x="1024" d="M1024 1233l-303 -582l24 -31h279v-415h-507l-44 -30l-142 -273l-30 -30h-301v303l303 583l-24 30h-279v415h507l44 30l142 273l30 30h301v-303z" />
<glyph unicode="&#xf1be;" horiz-adv-x="2304" d="M784 164l16 241l-16 523q-1 10 -7.5 17t-16.5 7q-9 0 -16 -7t-7 -17l-14 -523l14 -241q1 -10 7.5 -16.5t15.5 -6.5q22 0 24 23zM1080 193l11 211l-12 586q0 16 -13 24q-8 5 -16 5t-16 -5q-13 -8 -13 -24l-1 -6l-10 -579q0 -1 11 -236v-1q0 -10 6 -17q9 -11 23 -11 q11 0 20 9q9 7 9 20zM35 533l20 -128l-20 -126q-2 -9 -9 -9t-9 9l-17 126l17 128q2 9 9 9t9 -9zM121 612l26 -207l-26 -203q-2 -9 -10 -9q-9 0 -9 10l-23 202l23 207q0 9 9 9q8 0 10 -9zM401 159zM213 650l25 -245l-25 -237q0 -11 -11 -11q-10 0 -12 11l-21 237l21 245 q2 12 12 12q11 0 11 -12zM307 657l23 -252l-23 -244q-2 -13 -14 -13q-13 0 -13 13l-21 244l21 252q0 13 13 13q12 0 14 -13zM401 639l21 -234l-21 -246q-2 -16 -16 -16q-6 0 -10.5 4.5t-4.5 11.5l-20 246l20 234q0 6 4.5 10.5t10.5 4.5q14 0 16 -15zM784 164zM495 785 l21 -380l-21 -246q0 -7 -5 -12.5t-12 -5.5q-16 0 -18 18l-18 246l18 380q2 18 18 18q7 0 12 -5.5t5 -12.5zM589 871l19 -468l-19 -244q0 -8 -5.5 -13.5t-13.5 -5.5q-18 0 -20 19l-16 244l16 468q2 19 20 19q8 0 13.5 -5.5t5.5 -13.5zM687 911l18 -506l-18 -242 q-2 -21 -22 -21q-19 0 -21 21l-16 242l16 506q0 9 6.5 15.5t14.5 6.5q9 0 15 -6.5t7 -15.5zM1079 169v0v0zM881 915l15 -510l-15 -239q0 -10 -7.5 -17.5t-17.5 -7.5t-17 7t-8 18l-14 239l14 510q0 11 7.5 18t17.5 7t17.5 -7t7.5 -18zM980 896l14 -492l-14 -236q0 -11 -8 -19 t-19 -8t-19 8t-9 19l-12 236l12 492q1 12 9 20t19 8t18.5 -8t8.5 -20zM1192 404l-14 -231v0q0 -13 -9 -22t-22 -9t-22 9t-10 22l-6 114l-6 117l12 636v3q2 15 12 24q9 7 20 7q8 0 15 -5q14 -8 16 -26zM2304 423q0 -117 -83 -199.5t-200 -82.5h-786q-13 2 -22 11t-9 22v899 q0 23 28 33q85 34 181 34q195 0 338 -131.5t160 -323.5q53 22 110 22q117 0 200 -83t83 -201z" />
<glyph unicode="&#xf1c0;" d="M768 768q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127t443 -43zM768 0q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127 t443 -43zM768 384q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127t443 -43zM768 1536q208 0 385 -34.5t280 -93.5t103 -128v-128q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5 t-103 128v128q0 69 103 128t280 93.5t385 34.5z" />
<glyph unicode="&#xf1c1;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M894 465q33 -26 84 -56q59 7 117 7q147 0 177 -49q16 -22 2 -52q0 -1 -1 -2l-2 -2v-1q-6 -38 -71 -38q-48 0 -115 20t-130 53q-221 -24 -392 -83q-153 -262 -242 -262q-15 0 -28 7l-24 12q-1 1 -6 5q-10 10 -6 36q9 40 56 91.5t132 96.5q14 9 23 -6q2 -2 2 -4q52 85 107 197 q68 136 104 262q-24 82 -30.5 159.5t6.5 127.5q11 40 42 40h21h1q23 0 35 -15q18 -21 9 -68q-2 -6 -4 -8q1 -3 1 -8v-30q-2 -123 -14 -192q55 -164 146 -238zM318 54q52 24 137 158q-51 -40 -87.5 -84t-49.5 -74zM716 974q-15 -42 -2 -132q1 7 7 44q0 3 7 43q1 4 4 8 q-1 1 -1 2t-0.5 1.5t-0.5 1.5q-1 22 -13 36q0 -1 -1 -2v-2zM592 313q135 54 284 81q-2 1 -13 9.5t-16 13.5q-76 67 -127 176q-27 -86 -83 -197q-30 -56 -45 -83zM1238 329q-24 24 -140 24q76 -28 124 -28q14 0 18 1q0 1 -2 3z" />
<glyph unicode="&#xf1c2;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M233 768v-107h70l164 -661h159l128 485q7 20 10 46q2 16 2 24h4l3 -24q1 -3 3.5 -20t5.5 -26l128 -485h159l164 661h70v107h-300v-107h90l-99 -438q-5 -20 -7 -46l-2 -21h-4l-3 21q-1 5 -4 21t-5 25l-144 545h-114l-144 -545q-2 -9 -4.5 -24.5t-3.5 -21.5l-4 -21h-4l-2 21 q-2 26 -7 46l-99 438h90v107h-300z" />
<glyph unicode="&#xf1c3;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M429 106v-106h281v106h-75l103 161q5 7 10 16.5t7.5 13.5t3.5 4h2q1 -4 5 -10q2 -4 4.5 -7.5t6 -8t6.5 -8.5l107 -161h-76v-106h291v106h-68l-192 273l195 282h67v107h-279v-107h74l-103 -159q-4 -7 -10 -16.5t-9 -13.5l-2 -3h-2q-1 4 -5 10q-6 11 -17 23l-106 159h76v107 h-290v-107h68l189 -272l-194 -283h-68z" />
<glyph unicode="&#xf1c4;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M416 106v-106h327v106h-93v167h137q76 0 118 15q67 23 106.5 87t39.5 146q0 81 -37 141t-100 87q-48 19 -130 19h-368v-107h92v-555h-92zM769 386h-119v268h120q52 0 83 -18q56 -33 56 -115q0 -89 -62 -120q-31 -15 -78 -15z" />
<glyph unicode="&#xf1c5;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M1280 320v-320h-1024v192l192 192l128 -128l384 384zM448 512q-80 0 -136 56t-56 136t56 136t136 56t136 -56t56 -136t-56 -136t-136 -56z" />
<glyph unicode="&#xf1c6;" d="M640 1152v128h-128v-128h128zM768 1024v128h-128v-128h128zM640 896v128h-128v-128h128zM768 768v128h-128v-128h128zM1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400 v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-128v-128h-128v128h-512v-1536h1280zM781 593l107 -349q8 -27 8 -52q0 -83 -72.5 -137.5t-183.5 -54.5t-183.5 54.5t-72.5 137.5q0 25 8 52q21 63 120 396v128h128v-128h79 q22 0 39 -13t23 -34zM640 128q53 0 90.5 19t37.5 45t-37.5 45t-90.5 19t-90.5 -19t-37.5 -45t37.5 -45t90.5 -19z" />
<glyph unicode="&#xf1c7;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M620 686q20 -8 20 -30v-544q0 -22 -20 -30q-8 -2 -12 -2q-12 0 -23 9l-166 167h-131q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h131l166 167q16 15 35 7zM1037 -3q31 0 50 24q129 159 129 363t-129 363q-16 21 -43 24t-47 -14q-21 -17 -23.5 -43.5t14.5 -47.5 q100 -123 100 -282t-100 -282q-17 -21 -14.5 -47.5t23.5 -42.5q18 -15 40 -15zM826 145q27 0 47 20q87 93 87 219t-87 219q-18 19 -45 20t-46 -17t-20 -44.5t18 -46.5q52 -57 52 -131t-52 -131q-19 -20 -18 -46.5t20 -44.5q20 -17 44 -17z" />
<glyph unicode="&#xf1c8;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M768 768q52 0 90 -38t38 -90v-384q0 -52 -38 -90t-90 -38h-384q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h384zM1260 766q20 -8 20 -30v-576q0 -22 -20 -30q-8 -2 -12 -2q-14 0 -23 9l-265 266v90l265 266q9 9 23 9q4 0 12 -2z" />
<glyph unicode="&#xf1c9;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M480 768q8 11 21 12.5t24 -6.5l51 -38q11 -8 12.5 -21t-6.5 -24l-182 -243l182 -243q8 -11 6.5 -24t-12.5 -21l-51 -38q-11 -8 -24 -6.5t-21 12.5l-226 301q-14 19 0 38zM1282 467q14 -19 0 -38l-226 -301q-8 -11 -21 -12.5t-24 6.5l-51 38q-11 8 -12.5 21t6.5 24l182 243 l-182 243q-8 11 -6.5 24t12.5 21l51 38q11 8 24 6.5t21 -12.5zM662 6q-13 2 -20.5 13t-5.5 24l138 831q2 13 13 20.5t24 5.5l63 -10q13 -2 20.5 -13t5.5 -24l-138 -831q-2 -13 -13 -20.5t-24 -5.5z" />
<glyph unicode="&#xf1ca;" d="M1497 709v-198q-101 -23 -198 -23q-65 -136 -165.5 -271t-181.5 -215.5t-128 -106.5q-80 -45 -162 3q-28 17 -60.5 43.5t-85 83.5t-102.5 128.5t-107.5 184t-105.5 244t-91.5 314.5t-70.5 390h283q26 -218 70 -398.5t104.5 -317t121.5 -235.5t140 -195q169 169 287 406 q-142 72 -223 220t-81 333q0 192 104 314.5t284 122.5q178 0 273 -105.5t95 -297.5q0 -159 -58 -286q-7 -1 -19.5 -3t-46 -2t-63 6t-62 25.5t-50.5 51.5q31 103 31 184q0 87 -29 132t-79 45q-53 0 -85 -49.5t-32 -140.5q0 -186 105 -293.5t267 -107.5q62 0 121 14z" />
<glyph unicode="&#xf1cb;" horiz-adv-x="1792" d="M216 367l603 -402v359l-334 223zM154 511l193 129l-193 129v-258zM973 -35l603 402l-269 180l-334 -223v-359zM896 458l272 182l-272 182l-272 -182zM485 733l334 223v359l-603 -402zM1445 640l193 -129v258zM1307 733l269 180l-603 402v-359zM1792 913v-546 q0 -41 -34 -64l-819 -546q-21 -13 -43 -13t-43 13l-819 546q-34 23 -34 64v546q0 41 34 64l819 546q21 13 43 13t43 -13l819 -546q34 -23 34 -64z" />
<glyph unicode="&#xf1cc;" horiz-adv-x="2048" d="M1800 764q111 -46 179.5 -145.5t68.5 -221.5q0 -164 -118 -280.5t-285 -116.5q-4 0 -11.5 0.5t-10.5 0.5h-1209h-1h-2h-5q-170 10 -288 125.5t-118 280.5q0 110 55 203t147 147q-12 39 -12 82q0 115 82 196t199 81q95 0 172 -58q75 154 222.5 248t326.5 94 q166 0 306 -80.5t221.5 -218.5t81.5 -301q0 -6 -0.5 -18t-0.5 -18zM468 498q0 -122 84 -193t208 -71q137 0 240 99q-16 20 -47.5 56.5t-43.5 50.5q-67 -65 -144 -65q-55 0 -93.5 33.5t-38.5 87.5q0 53 38.5 87t91.5 34q44 0 84.5 -21t73 -55t65 -75t69 -82t77 -75t97 -55 t121.5 -21q121 0 204.5 71.5t83.5 190.5q0 121 -84 192t-207 71q-143 0 -241 -97q14 -16 29.5 -34t34.5 -40t29 -34q66 64 142 64q52 0 92 -33t40 -84q0 -57 -37 -91.5t-94 -34.5q-43 0 -82.5 21t-72 55t-65.5 75t-69.5 82t-77.5 75t-96.5 55t-118.5 21q-122 0 -207 -70.5 t-85 -189.5z" />
<glyph unicode="&#xf1cd;" horiz-adv-x="1792" d="M896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM896 1408q-190 0 -361 -90l194 -194q82 28 167 28t167 -28l194 194q-171 90 -361 90zM218 279l194 194 q-28 82 -28 167t28 167l-194 194q-90 -171 -90 -361t90 -361zM896 -128q190 0 361 90l-194 194q-82 -28 -167 -28t-167 28l-194 -194q171 -90 361 -90zM896 256q159 0 271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5 t271.5 -112.5zM1380 473l194 -194q90 171 90 361t-90 361l-194 -194q28 -82 28 -167t-28 -167z" />
<glyph unicode="&#xf1ce;" horiz-adv-x="1792" d="M1760 640q0 -176 -68.5 -336t-184 -275.5t-275.5 -184t-336 -68.5t-336 68.5t-275.5 184t-184 275.5t-68.5 336q0 213 97 398.5t265 305.5t374 151v-228q-221 -45 -366.5 -221t-145.5 -406q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5 t136.5 204t51 248.5q0 230 -145.5 406t-366.5 221v228q206 -31 374 -151t265 -305.5t97 -398.5z" />
<glyph unicode="&#xf1d0;" horiz-adv-x="1792" d="M19 662q8 217 116 406t305 318h5q0 -1 -1 -3q-8 -8 -28 -33.5t-52 -76.5t-60 -110.5t-44.5 -135.5t-14 -150.5t39 -157.5t108.5 -154q50 -50 102 -69.5t90.5 -11.5t69.5 23.5t47 32.5l16 16q39 51 53 116.5t6.5 122.5t-21 107t-26.5 80l-14 29q-10 25 -30.5 49.5t-43 41 t-43.5 29.5t-35 19l-13 6l104 115q39 -17 78 -52t59 -61l19 -27q1 48 -18.5 103.5t-40.5 87.5l-20 31l161 183l160 -181q-33 -46 -52.5 -102.5t-22.5 -90.5l-4 -33q22 37 61.5 72.5t67.5 52.5l28 17l103 -115q-44 -14 -85 -50t-60 -65l-19 -29q-31 -56 -48 -133.5t-7 -170 t57 -156.5q33 -45 77.5 -60.5t85 -5.5t76 26.5t57.5 33.5l21 16q60 53 96.5 115t48.5 121.5t10 121.5t-18 118t-37 107.5t-45.5 93t-45 72t-34.5 47.5l-13 17q-14 13 -7 13l10 -3q40 -29 62.5 -46t62 -50t64 -58t58.5 -65t55.5 -77t45.5 -88t38 -103t23.5 -117t10.5 -136 q3 -259 -108 -465t-312 -321t-456 -115q-185 0 -351 74t-283.5 198t-184 293t-60.5 353z" />
<glyph unicode="&#xf1d1;" horiz-adv-x="1792" d="M874 -102v-66q-208 6 -385 109.5t-283 275.5l58 34q29 -49 73 -99l65 57q148 -168 368 -212l-17 -86q65 -12 121 -13zM276 428l-83 -28q22 -60 49 -112l-57 -33q-98 180 -98 385t98 385l57 -33q-30 -56 -49 -112l82 -28q-35 -100 -35 -212q0 -109 36 -212zM1528 251 l58 -34q-106 -172 -283 -275.5t-385 -109.5v66q56 1 121 13l-17 86q220 44 368 212l65 -57q44 50 73 99zM1377 805l-233 -80q14 -42 14 -85t-14 -85l232 -80q-31 -92 -98 -169l-185 162q-57 -67 -147 -85l48 -241q-52 -10 -98 -10t-98 10l48 241q-90 18 -147 85l-185 -162 q-67 77 -98 169l232 80q-14 42 -14 85t14 85l-233 80q33 93 99 169l185 -162q59 68 147 86l-48 240q44 10 98 10t98 -10l-48 -240q88 -18 147 -86l185 162q66 -76 99 -169zM874 1448v-66q-65 -2 -121 -13l17 -86q-220 -42 -368 -211l-65 56q-38 -42 -73 -98l-57 33 q106 172 282 275.5t385 109.5zM1705 640q0 -205 -98 -385l-57 33q27 52 49 112l-83 28q36 103 36 212q0 112 -35 212l82 28q-19 56 -49 112l57 33q98 -180 98 -385zM1585 1063l-57 -33q-35 56 -73 98l-65 -56q-148 169 -368 211l17 86q-56 11 -121 13v66q209 -6 385 -109.5 t282 -275.5zM1748 640q0 173 -67.5 331t-181.5 272t-272 181.5t-331 67.5t-331 -67.5t-272 -181.5t-181.5 -272t-67.5 -331t67.5 -331t181.5 -272t272 -181.5t331 -67.5t331 67.5t272 181.5t181.5 272t67.5 331zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71 t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
<glyph unicode="&#xf1d2;" d="M582 228q0 -66 -93 -66q-107 0 -107 63q0 64 98 64q102 0 102 -61zM546 694q0 -85 -74 -85q-77 0 -77 84q0 90 77 90q36 0 55 -25.5t19 -63.5zM712 769v125q-78 -29 -135 -29q-50 29 -110 29q-86 0 -145 -57t-59 -143q0 -50 29.5 -102t73.5 -67v-3q-38 -17 -38 -85 q0 -53 41 -77v-3q-113 -37 -113 -139q0 -45 20 -78.5t54 -51t72 -25.5t81 -8q224 0 224 188q0 67 -48 99t-126 46q-27 5 -51.5 20.5t-24.5 39.5q0 44 49 52q77 15 122 70t45 134q0 24 -10 52q37 9 49 13zM771 350h137q-2 27 -2 82v387q0 46 2 69h-137q3 -23 3 -71v-392 q0 -50 -3 -75zM1280 366v121q-30 -21 -68 -21q-53 0 -53 82v225h52q9 0 26.5 -1t26.5 -1v117h-105q0 82 3 102h-140q4 -24 4 -55v-47h-60v-117q36 3 37 3q3 0 11 -0.5t12 -0.5v-2h-2v-217q0 -37 2.5 -64t11.5 -56.5t24.5 -48.5t43.5 -31t66 -12q64 0 108 24zM924 1072 q0 36 -24 63.5t-60 27.5t-60.5 -27t-24.5 -64q0 -36 25 -62.5t60 -26.5t59.5 27t24.5 62zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf1d3;" horiz-adv-x="1792" d="M595 22q0 100 -165 100q-158 0 -158 -104q0 -101 172 -101q151 0 151 105zM536 777q0 61 -30 102t-89 41q-124 0 -124 -145q0 -135 124 -135q119 0 119 137zM805 1101v-202q-36 -12 -79 -22q16 -43 16 -84q0 -127 -73 -216.5t-197 -112.5q-40 -8 -59.5 -27t-19.5 -58 q0 -31 22.5 -51.5t58 -32t78.5 -22t86 -25.5t78.5 -37.5t58 -64t22.5 -98.5q0 -304 -363 -304q-69 0 -130 12.5t-116 41t-87.5 82t-32.5 127.5q0 165 182 225v4q-67 41 -67 126q0 109 63 137v4q-72 24 -119.5 108.5t-47.5 165.5q0 139 95 231.5t235 92.5q96 0 178 -47 q98 0 218 47zM1123 220h-222q4 45 4 134v609q0 94 -4 128h222q-4 -33 -4 -124v-613q0 -89 4 -134zM1724 442v-196q-71 -39 -174 -39q-62 0 -107 20t-70 50t-39.5 78t-18.5 92t-4 103v351h2v4q-7 0 -19 1t-18 1q-21 0 -59 -6v190h96v76q0 54 -6 89h227q-6 -41 -6 -165h171 v-190q-15 0 -43.5 2t-42.5 2h-85v-365q0 -131 87 -131q61 0 109 33zM1148 1389q0 -58 -39 -101.5t-96 -43.5q-58 0 -98 43.5t-40 101.5q0 59 39.5 103t98.5 44q58 0 96.5 -44.5t38.5 -102.5z" />
<glyph unicode="&#xf1d4;" d="M809 532l266 499h-112l-157 -312q-24 -48 -44 -92l-42 92l-155 312h-120l263 -493v-324h101v318zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf1d5;" horiz-adv-x="1280" d="M842 964q0 -80 -57 -136.5t-136 -56.5q-60 0 -111 35q-62 -67 -115 -146q-247 -371 -202 -859q1 -22 -12.5 -38.5t-34.5 -18.5h-5q-20 0 -35 13.5t-17 33.5q-14 126 -3.5 247.5t29.5 217t54 186t69 155.5t74 125q61 90 132 165q-16 35 -16 77q0 80 56.5 136.5t136.5 56.5 t136.5 -56.5t56.5 -136.5zM1223 953q0 -158 -78 -292t-212.5 -212t-292.5 -78q-64 0 -131 14q-21 5 -32.5 23.5t-6.5 39.5q5 20 23 31.5t39 7.5q51 -13 108 -13q97 0 186 38t153 102t102 153t38 186t-38 186t-102 153t-153 102t-186 38t-186 -38t-153 -102t-102 -153 t-38 -186q0 -114 52 -218q10 -20 3.5 -40t-25.5 -30t-39.5 -3t-30.5 26q-64 123 -64 265q0 119 46.5 227t124.5 186t186 124t226 46q158 0 292.5 -78t212.5 -212.5t78 -292.5z" />
<glyph unicode="&#xf1d6;" horiz-adv-x="1792" d="M270 730q-8 19 -8 52q0 20 11 49t24 45q-1 22 7.5 53t22.5 43q0 139 92.5 288.5t217.5 209.5q139 66 324 66q133 0 266 -55q49 -21 90 -48t71 -56t55 -68t42 -74t32.5 -84.5t25.5 -89.5t22 -98l1 -5q55 -83 55 -150q0 -14 -9 -40t-9 -38q0 -1 1.5 -3.5t3.5 -5t2 -3.5 q77 -114 120.5 -214.5t43.5 -208.5q0 -43 -19.5 -100t-55.5 -57q-9 0 -19.5 7.5t-19 17.5t-19 26t-16 26.5t-13.5 26t-9 17.5q-1 1 -3 1l-5 -4q-59 -154 -132 -223q20 -20 61.5 -38.5t69 -41.5t35.5 -65q-2 -4 -4 -16t-7 -18q-64 -97 -302 -97q-53 0 -110.5 9t-98 20 t-104.5 30q-15 5 -23 7q-14 4 -46 4.5t-40 1.5q-41 -45 -127.5 -65t-168.5 -20q-35 0 -69 1.5t-93 9t-101 20.5t-74.5 40t-32.5 64q0 40 10 59.5t41 48.5q11 2 40.5 13t49.5 12q4 0 14 2q2 2 2 4l-2 3q-48 11 -108 105.5t-73 156.5l-5 3q-4 0 -12 -20q-18 -41 -54.5 -74.5 t-77.5 -37.5h-1q-4 0 -6 4.5t-5 5.5q-23 54 -23 100q0 275 252 466z" />
<glyph unicode="&#xf1d7;" horiz-adv-x="2048" d="M580 1075q0 41 -25 66t-66 25q-43 0 -76 -25.5t-33 -65.5q0 -39 33 -64.5t76 -25.5q41 0 66 24.5t25 65.5zM1323 568q0 28 -25.5 50t-65.5 22q-27 0 -49.5 -22.5t-22.5 -49.5q0 -28 22.5 -50.5t49.5 -22.5q40 0 65.5 22t25.5 51zM1087 1075q0 41 -24.5 66t-65.5 25 q-43 0 -76 -25.5t-33 -65.5q0 -39 33 -64.5t76 -25.5q41 0 65.5 24.5t24.5 65.5zM1722 568q0 28 -26 50t-65 22q-27 0 -49.5 -22.5t-22.5 -49.5q0 -28 22.5 -50.5t49.5 -22.5q39 0 65 22t26 51zM1456 965q-31 4 -70 4q-169 0 -311 -77t-223.5 -208.5t-81.5 -287.5 q0 -78 23 -152q-35 -3 -68 -3q-26 0 -50 1.5t-55 6.5t-44.5 7t-54.5 10.5t-50 10.5l-253 -127l72 218q-290 203 -290 490q0 169 97.5 311t264 223.5t363.5 81.5q176 0 332.5 -66t262 -182.5t136.5 -260.5zM2048 404q0 -117 -68.5 -223.5t-185.5 -193.5l55 -181l-199 109 q-150 -37 -218 -37q-169 0 -311 70.5t-223.5 191.5t-81.5 264t81.5 264t223.5 191.5t311 70.5q161 0 303 -70.5t227.5 -192t85.5 -263.5z" />
<glyph unicode="&#xf1d8;" horiz-adv-x="1792" d="M1764 1525q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-453 185l-242 -295q-18 -23 -49 -23q-13 0 -22 4q-19 7 -30.5 23.5t-11.5 36.5v349l864 1059l-1069 -925l-395 162q-37 14 -40 55q-2 40 32 59l1664 960q15 9 32 9q20 0 36 -11z" />
<glyph unicode="&#xf1d9;" horiz-adv-x="1792" d="M1764 1525q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-527 215l-298 -327q-18 -21 -47 -21q-14 0 -23 4q-19 7 -30 23.5t-11 36.5v452l-472 193q-37 14 -40 55q-3 39 32 59l1664 960q35 21 68 -2zM1422 26l221 1323l-1434 -827l336 -137 l863 639l-478 -797z" />
<glyph unicode="&#xf1da;" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5 t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298zM896 928v-448q0 -14 -9 -23 t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23z" />
<glyph unicode="&#xf1db;" d="M768 1280q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf1dc;" horiz-adv-x="1792" d="M1682 -128q-44 0 -132.5 3.5t-133.5 3.5q-44 0 -132 -3.5t-132 -3.5q-24 0 -37 20.5t-13 45.5q0 31 17 46t39 17t51 7t45 15q33 21 33 140l-1 391q0 21 -1 31q-13 4 -50 4h-675q-38 0 -51 -4q-1 -10 -1 -31l-1 -371q0 -142 37 -164q16 -10 48 -13t57 -3.5t45 -15 t20 -45.5q0 -26 -12.5 -48t-36.5 -22q-47 0 -139.5 3.5t-138.5 3.5q-43 0 -128 -3.5t-127 -3.5q-23 0 -35.5 21t-12.5 45q0 30 15.5 45t36 17.5t47.5 7.5t42 15q33 23 33 143l-1 57v813q0 3 0.5 26t0 36.5t-1.5 38.5t-3.5 42t-6.5 36.5t-11 31.5t-16 18q-15 10 -45 12t-53 2 t-41 14t-18 45q0 26 12 48t36 22q46 0 138.5 -3.5t138.5 -3.5q42 0 126.5 3.5t126.5 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17 -43.5t-38.5 -14.5t-49.5 -4t-43 -13q-35 -21 -35 -160l1 -320q0 -21 1 -32q13 -3 39 -3h699q25 0 38 3q1 11 1 32l1 320q0 139 -35 160 q-18 11 -58.5 12.5t-66 13t-25.5 49.5q0 26 12.5 48t37.5 22q44 0 132 -3.5t132 -3.5q43 0 129 3.5t129 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17.5 -44t-40 -14.5t-51.5 -3t-44 -12.5q-35 -23 -35 -161l1 -943q0 -119 34 -140q16 -10 46 -13.5t53.5 -4.5t41.5 -15.5t18 -44.5 q0 -26 -12 -48t-36 -22z" />
<glyph unicode="&#xf1dd;" horiz-adv-x="1280" d="M1278 1347v-73q0 -29 -18.5 -61t-42.5 -32q-50 0 -54 -1q-26 -6 -32 -31q-3 -11 -3 -64v-1152q0 -25 -18 -43t-43 -18h-108q-25 0 -43 18t-18 43v1218h-143v-1218q0 -25 -17.5 -43t-43.5 -18h-108q-26 0 -43.5 18t-17.5 43v496q-147 12 -245 59q-126 58 -192 179 q-64 117 -64 259q0 166 88 286q88 118 209 159q111 37 417 37h479q25 0 43 -18t18 -43z" />
<glyph unicode="&#xf1de;" d="M352 128v-128h-352v128h352zM704 256q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM864 640v-128h-864v128h864zM224 1152v-128h-224v128h224zM1536 128v-128h-736v128h736zM576 1280q26 0 45 -19t19 -45v-256 q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM1216 768q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM1536 640v-128h-224v128h224zM1536 1152v-128h-864v128h864z" />
<glyph unicode="&#xf1e0;" d="M1216 512q133 0 226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5t-226.5 93.5t-93.5 226.5q0 12 2 34l-360 180q-92 -86 -218 -86q-133 0 -226.5 93.5t-93.5 226.5t93.5 226.5t226.5 93.5q126 0 218 -86l360 180q-2 22 -2 34q0 133 93.5 226.5t226.5 93.5 t226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5q-126 0 -218 86l-360 -180q2 -22 2 -34t-2 -34l360 -180q92 86 218 86z" />
<glyph unicode="&#xf1e1;" d="M1280 341q0 88 -62.5 151t-150.5 63q-84 0 -145 -58l-241 120q2 16 2 23t-2 23l241 120q61 -58 145 -58q88 0 150.5 63t62.5 151t-62.5 150.5t-150.5 62.5t-151 -62.5t-63 -150.5q0 -7 2 -23l-241 -120q-62 57 -145 57q-88 0 -150.5 -62.5t-62.5 -150.5t62.5 -150.5 t150.5 -62.5q83 0 145 57l241 -120q-2 -16 -2 -23q0 -88 63 -150.5t151 -62.5t150.5 62.5t62.5 150.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf1e2;" horiz-adv-x="1792" d="M571 947q-10 25 -34 35t-49 0q-108 -44 -191 -127t-127 -191q-10 -25 0 -49t35 -34q13 -5 24 -5q42 0 60 40q34 84 98.5 148.5t148.5 98.5q25 11 35 35t0 49zM1513 1303l46 -46l-244 -243l68 -68q19 -19 19 -45.5t-19 -45.5l-64 -64q89 -161 89 -343q0 -143 -55.5 -273.5 t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5q182 0 343 -89l64 64q19 19 45.5 19t45.5 -19l68 -68zM1521 1359q-10 -10 -22 -10q-13 0 -23 10l-91 90q-9 10 -9 23t9 23q10 9 23 9t23 -9l90 -91 q10 -9 10 -22.5t-10 -22.5zM1751 1129q-11 -9 -23 -9t-23 9l-90 91q-10 9 -10 22.5t10 22.5q9 10 22.5 10t22.5 -10l91 -90q9 -10 9 -23t-9 -23zM1792 1312q0 -14 -9 -23t-23 -9h-96q-14 0 -23 9t-9 23t9 23t23 9h96q14 0 23 -9t9 -23zM1600 1504v-96q0 -14 -9 -23t-23 -9 t-23 9t-9 23v96q0 14 9 23t23 9t23 -9t9 -23zM1751 1449l-91 -90q-10 -10 -22 -10q-13 0 -23 10q-10 9 -10 22.5t10 22.5l90 91q10 9 23 9t23 -9q9 -10 9 -23t-9 -23z" />
<glyph unicode="&#xf1e3;" horiz-adv-x="1792" d="M609 720l287 208l287 -208l-109 -336h-355zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM1515 186q149 203 149 454v3l-102 -89l-240 224l63 323 l134 -12q-150 206 -389 282l53 -124l-287 -159l-287 159l53 124q-239 -76 -389 -282l135 12l62 -323l-240 -224l-102 89v-3q0 -251 149 -454l30 132l326 -40l139 -298l-116 -69q117 -39 240 -39t240 39l-116 69l139 298l326 40z" />
<glyph unicode="&#xf1e4;" horiz-adv-x="1792" d="M448 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM256 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM832 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23 v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM66 768q-28 0 -47 19t-19 46v129h514v-129q0 -27 -19 -46t-46 -19h-383zM1216 224v-192q0 -14 -9 -23t-23 -9h-192 q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1024 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1600 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23 zM1408 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 1016v-13h-514v10q0 104 -382 102q-382 -1 -382 -102v-10h-514v13q0 17 8.5 43t34 64t65.5 75.5t110.5 76t160 67.5t224 47.5t293.5 18.5t293 -18.5t224 -47.5 t160.5 -67.5t110.5 -76t65.5 -75.5t34 -64t8.5 -43zM1792 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 962v-129q0 -27 -19 -46t-46 -19h-384q-27 0 -46 19t-19 46v129h514z" />
<glyph unicode="&#xf1e5;" horiz-adv-x="1792" d="M704 1216v-768q0 -26 -19 -45t-45 -19v-576q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v512l249 873q7 23 31 23h424zM1024 1216v-704h-256v704h256zM1792 320v-512q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v576q-26 0 -45 19t-19 45v768h424q24 0 31 -23z M736 1504v-224h-352v224q0 14 9 23t23 9h288q14 0 23 -9t9 -23zM1408 1504v-224h-352v224q0 14 9 23t23 9h288q14 0 23 -9t9 -23z" />
<glyph unicode="&#xf1e6;" horiz-adv-x="1792" d="M1755 1083q37 -37 37 -90t-37 -91l-401 -400l150 -150l-160 -160q-163 -163 -389.5 -186.5t-411.5 100.5l-362 -362h-181v181l362 362q-124 185 -100.5 411.5t186.5 389.5l160 160l150 -150l400 401q38 37 91 37t90 -37t37 -90.5t-37 -90.5l-400 -401l234 -234l401 400 q38 37 91 37t90 -37z" />
<glyph unicode="&#xf1e7;" horiz-adv-x="1792" d="M873 796q0 -83 -63.5 -142.5t-152.5 -59.5t-152.5 59.5t-63.5 142.5q0 84 63.5 143t152.5 59t152.5 -59t63.5 -143zM1375 796q0 -83 -63 -142.5t-153 -59.5q-89 0 -152.5 59.5t-63.5 142.5q0 84 63.5 143t152.5 59q90 0 153 -59t63 -143zM1600 616v667q0 87 -32 123.5 t-111 36.5h-1112q-83 0 -112.5 -34t-29.5 -126v-673q43 -23 88.5 -40t81 -28t81 -18.5t71 -11t70 -4t58.5 -0.5t56.5 2t44.5 2q68 1 95 -27q6 -6 10 -9q26 -25 61 -51q7 91 118 87q5 0 36.5 -1.5t43 -2t45.5 -1t53 1t54.5 4.5t61 8.5t62 13.5t67 19.5t67.5 27t72 34.5z M1763 621q-121 -149 -372 -252q84 -285 -23 -465q-66 -113 -183 -148q-104 -32 -182 15q-86 51 -82 164l-1 326v1q-8 2 -24.5 6t-23.5 5l-1 -338q4 -114 -83 -164q-79 -47 -183 -15q-117 36 -182 150q-105 180 -22 463q-251 103 -372 252q-25 37 -4 63t60 -1q3 -2 11 -7 t11 -8v694q0 72 47 123t114 51h1257q67 0 114 -51t47 -123v-694l21 15q39 27 60 1t-4 -63z" />
<glyph unicode="&#xf1e8;" horiz-adv-x="1792" d="M896 1102v-434h-145v434h145zM1294 1102v-434h-145v434h145zM1294 342l253 254v795h-1194v-1049h326v-217l217 217h398zM1692 1536v-1013l-434 -434h-326l-217 -217h-217v217h-398v1158l109 289h1483z" />
<glyph unicode="&#xf1e9;" d="M773 217v-127q-1 -292 -6 -305q-12 -32 -51 -40q-54 -9 -181.5 38t-162.5 89q-13 15 -17 36q-1 12 4 26q4 10 34 47t181 216q1 0 60 70q15 19 39.5 24.5t49.5 -3.5q24 -10 37.5 -29t12.5 -42zM624 468q-3 -55 -52 -70l-120 -39q-275 -88 -292 -88q-35 2 -54 36 q-12 25 -17 75q-8 76 1 166.5t30 124.5t56 32q13 0 202 -77q70 -29 115 -47l84 -34q23 -9 35.5 -30.5t11.5 -48.5zM1450 171q-7 -54 -91.5 -161t-135.5 -127q-37 -14 -63 7q-14 10 -184 287l-47 77q-14 21 -11.5 46t19.5 46q35 43 83 26q1 -1 119 -40q203 -66 242 -79.5 t47 -20.5q28 -22 22 -61zM778 803q5 -102 -54 -122q-58 -17 -114 71l-378 598q-8 35 19 62q41 43 207.5 89.5t224.5 31.5q40 -10 49 -45q3 -18 22 -305.5t24 -379.5zM1440 695q3 -39 -26 -59q-15 -10 -329 -86q-67 -15 -91 -23l1 2q-23 -6 -46 4t-37 32q-30 47 0 87 q1 1 75 102q125 171 150 204t34 39q28 19 65 2q48 -23 123 -133.5t81 -167.5v-3z" />
<glyph unicode="&#xf1ea;" horiz-adv-x="2048" d="M1024 1024h-384v-384h384v384zM1152 384v-128h-640v128h640zM1152 1152v-640h-640v640h640zM1792 384v-128h-512v128h512zM1792 640v-128h-512v128h512zM1792 896v-128h-512v128h512zM1792 1152v-128h-512v128h512zM256 192v960h-128v-960q0 -26 19 -45t45 -19t45 19 t19 45zM1920 192v1088h-1536v-1088q0 -33 -11 -64h1483q26 0 45 19t19 45zM2048 1408v-1216q0 -80 -56 -136t-136 -56h-1664q-80 0 -136 56t-56 136v1088h256v128h1792z" />
<glyph unicode="&#xf1eb;" horiz-adv-x="2048" d="M1024 13q-20 0 -93 73.5t-73 93.5q0 32 62.5 54t103.5 22t103.5 -22t62.5 -54q0 -20 -73 -93.5t-93 -73.5zM1294 284q-2 0 -40 25t-101.5 50t-128.5 25t-128.5 -25t-101 -50t-40.5 -25q-18 0 -93.5 75t-75.5 93q0 13 10 23q78 77 196 121t233 44t233 -44t196 -121 q10 -10 10 -23q0 -18 -75.5 -93t-93.5 -75zM1567 556q-11 0 -23 8q-136 105 -252 154.5t-268 49.5q-85 0 -170.5 -22t-149 -53t-113.5 -62t-79 -53t-31 -22q-17 0 -92 75t-75 93q0 12 10 22q132 132 320 205t380 73t380 -73t320 -205q10 -10 10 -22q0 -18 -75 -93t-92 -75z M1838 827q-11 0 -22 9q-179 157 -371.5 236.5t-420.5 79.5t-420.5 -79.5t-371.5 -236.5q-11 -9 -22 -9q-17 0 -92.5 75t-75.5 93q0 13 10 23q187 186 445 288t527 102t527 -102t445 -288q10 -10 10 -23q0 -18 -75.5 -93t-92.5 -75z" />
<glyph unicode="&#xf1ec;" horiz-adv-x="1792" d="M384 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5 t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1152 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5 t37.5 90.5zM384 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1152 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 768q0 53 -37.5 90.5t-90.5 37.5 t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1536 0v384q0 52 -38 90t-90 38t-90 -38t-38 -90v-384q0 -52 38 -90t90 -38t90 38t38 90zM1152 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5z M1536 1088v256q0 26 -19 45t-45 19h-1280q-26 0 -45 -19t-19 -45v-256q0 -26 19 -45t45 -19h1280q26 0 45 19t19 45zM1536 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1408v-1536q0 -52 -38 -90t-90 -38 h-1408q-52 0 -90 38t-38 90v1536q0 52 38 90t90 38h1408q52 0 90 -38t38 -90z" />
<glyph unicode="&#xf1ed;" d="M1519 890q18 -84 -4 -204q-87 -444 -565 -444h-44q-25 0 -44 -16.5t-24 -42.5l-4 -19l-55 -346l-2 -15q-5 -26 -24.5 -42.5t-44.5 -16.5h-251q-21 0 -33 15t-9 36q9 56 26.5 168t26.5 168t27 167.5t27 167.5q5 37 43 37h131q133 -2 236 21q175 39 287 144q102 95 155 246 q24 70 35 133q1 6 2.5 7.5t3.5 1t6 -3.5q79 -59 98 -162zM1347 1172q0 -107 -46 -236q-80 -233 -302 -315q-113 -40 -252 -42q0 -1 -90 -1l-90 1q-100 0 -118 -96q-2 -8 -85 -530q-1 -10 -12 -10h-295q-22 0 -36.5 16.5t-11.5 38.5l232 1471q5 29 27.5 48t51.5 19h598 q34 0 97.5 -13t111.5 -32q107 -41 163.5 -123t56.5 -196z" />
<glyph unicode="&#xf1ee;" horiz-adv-x="1792" d="M441 864q32 0 52 -26q266 -364 362 -774h-446q-127 441 -367 749q-12 16 -3 33.5t29 17.5h373zM1000 507q-49 -199 -125 -393q-79 310 -256 594q40 221 44 449q211 -340 337 -650zM1099 1216q235 -324 384.5 -698.5t184.5 -773.5h-451q-41 665 -553 1472h435zM1792 640 q0 -424 -101 -812q-67 560 -359 1083q-25 301 -106 584q-4 16 5.5 28.5t25.5 12.5h359q21 0 38.5 -13t22.5 -33q115 -409 115 -850z" />
<glyph unicode="&#xf1f0;" horiz-adv-x="2304" d="M1975 546h-138q14 37 66 179l3 9q4 10 10 26t9 26l12 -55zM531 611l-58 295q-11 54 -75 54h-268l-2 -13q311 -79 403 -336zM710 960l-162 -438l-17 89q-26 70 -85 129.5t-131 88.5l135 -510h175l261 641h-176zM849 318h166l104 642h-166zM1617 944q-69 27 -149 27 q-123 0 -201 -59t-79 -153q-1 -102 145 -174q48 -23 67 -41t19 -39q0 -30 -30 -46t-69 -16q-86 0 -156 33l-22 11l-23 -144q74 -34 185 -34q130 -1 208.5 59t80.5 160q0 106 -140 174q-49 25 -71 42t-22 38q0 22 24.5 38.5t70.5 16.5q70 1 124 -24l15 -8zM2042 960h-128 q-65 0 -87 -54l-246 -588h174l35 96h212q5 -22 20 -96h154zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
<glyph unicode="&#xf1f1;" horiz-adv-x="2304" d="M671 603h-13q-47 0 -47 -32q0 -22 20 -22q17 0 28 15t12 39zM1066 639h62v3q1 4 0.5 6.5t-1 7t-2 8t-4.5 6.5t-7.5 5t-11.5 2q-28 0 -36 -38zM1606 603h-12q-48 0 -48 -32q0 -22 20 -22q17 0 28 15t12 39zM1925 629q0 41 -30 41q-19 0 -31 -20t-12 -51q0 -42 28 -42 q20 0 32.5 20t12.5 52zM480 770h87l-44 -262h-56l32 201l-71 -201h-39l-4 200l-34 -200h-53l44 262h81l2 -163zM733 663q0 -6 -4 -42q-16 -101 -17 -113h-47l1 22q-20 -26 -58 -26q-23 0 -37.5 16t-14.5 42q0 39 26 60.5t73 21.5q14 0 23 -1q0 3 0.5 5.5t1 4.5t0.5 3 q0 20 -36 20q-29 0 -59 -10q0 4 7 48q38 11 67 11q74 0 74 -62zM889 721l-8 -49q-22 3 -41 3q-27 0 -27 -17q0 -8 4.5 -12t21.5 -11q40 -19 40 -60q0 -72 -87 -71q-34 0 -58 6q0 2 7 49q29 -8 51 -8q32 0 32 19q0 7 -4.5 11.5t-21.5 12.5q-43 20 -43 59q0 72 84 72 q30 0 50 -4zM977 721h28l-7 -52h-29q-2 -17 -6.5 -40.5t-7 -38.5t-2.5 -18q0 -16 19 -16q8 0 16 2l-8 -47q-21 -7 -40 -7q-43 0 -45 47q0 12 8 56q3 20 25 146h55zM1180 648q0 -23 -7 -52h-111q-3 -22 10 -33t38 -11q30 0 58 14l-9 -54q-30 -8 -57 -8q-95 0 -95 95 q0 55 27.5 90.5t69.5 35.5q35 0 55.5 -21t20.5 -56zM1319 722q-13 -23 -22 -62q-22 2 -31 -24t-25 -128h-56l3 14q22 130 29 199h51l-3 -33q14 21 25.5 29.5t28.5 4.5zM1506 763l-9 -57q-28 14 -50 14q-31 0 -51 -27.5t-20 -70.5q0 -30 13.5 -47t38.5 -17q21 0 48 13 l-10 -59q-28 -8 -50 -8q-45 0 -71.5 30.5t-26.5 82.5q0 70 35.5 114.5t91.5 44.5q26 0 61 -13zM1668 663q0 -18 -4 -42q-13 -79 -17 -113h-46l1 22q-20 -26 -59 -26q-23 0 -37 16t-14 42q0 39 25.5 60.5t72.5 21.5q15 0 23 -1q2 7 2 13q0 20 -36 20q-29 0 -59 -10q0 4 8 48 q38 11 67 11q73 0 73 -62zM1809 722q-14 -24 -21 -62q-23 2 -31.5 -23t-25.5 -129h-56l3 14q19 104 29 199h52q0 -11 -4 -33q15 21 26.5 29.5t27.5 4.5zM1950 770h56l-43 -262h-53l3 19q-23 -23 -52 -23q-31 0 -49.5 24t-18.5 64q0 53 27.5 92t64.5 39q31 0 53 -29z M2061 640q0 148 -72.5 273t-198 198t-273.5 73q-181 0 -328 -110q127 -116 171 -284h-50q-44 150 -158 253q-114 -103 -158 -253h-50q44 168 171 284q-147 110 -328 110q-148 0 -273.5 -73t-198 -198t-72.5 -273t72.5 -273t198 -198t273.5 -73q181 0 328 110 q-120 111 -165 264h50q46 -138 152 -233q106 95 152 233h50q-45 -153 -165 -264q147 -110 328 -110q148 0 273.5 73t198 198t72.5 273zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
<glyph unicode="&#xf1f2;" horiz-adv-x="2304" d="M313 759q0 -51 -36 -84q-29 -26 -89 -26h-17v220h17q61 0 89 -27q36 -31 36 -83zM2089 824q0 -52 -64 -52h-19v101h20q63 0 63 -49zM380 759q0 74 -50 120.5t-129 46.5h-95v-333h95q74 0 119 38q60 51 60 128zM410 593h65v333h-65v-333zM730 694q0 40 -20.5 62t-75.5 42 q-29 10 -39.5 19t-10.5 23q0 16 13.5 26.5t34.5 10.5q29 0 53 -27l34 44q-41 37 -98 37q-44 0 -74 -27.5t-30 -67.5q0 -35 18 -55.5t64 -36.5q37 -13 45 -19q19 -12 19 -34q0 -20 -14 -33.5t-36 -13.5q-48 0 -71 44l-42 -40q44 -64 115 -64q51 0 83 30.5t32 79.5zM1008 604 v77q-37 -37 -78 -37q-49 0 -80.5 32.5t-31.5 82.5q0 48 31.5 81.5t77.5 33.5q43 0 81 -38v77q-40 20 -80 20q-74 0 -125.5 -50.5t-51.5 -123.5t51 -123.5t125 -50.5q42 0 81 19zM2240 0v527q-65 -40 -144.5 -84t-237.5 -117t-329.5 -137.5t-417.5 -134.5t-504 -118h1569 q26 0 45 19t19 45zM1389 757q0 75 -53 128t-128 53t-128 -53t-53 -128t53 -128t128 -53t128 53t53 128zM1541 584l144 342h-71l-90 -224l-89 224h-71l142 -342h35zM1714 593h184v56h-119v90h115v56h-115v74h119v57h-184v-333zM2105 593h80l-105 140q76 16 76 94q0 47 -31 73 t-87 26h-97v-333h65v133h9zM2304 1274v-1268q0 -56 -38.5 -95t-93.5 -39h-2040q-55 0 -93.5 39t-38.5 95v1268q0 56 38.5 95t93.5 39h2040q55 0 93.5 -39t38.5 -95z" />
<glyph unicode="&#xf1f3;" horiz-adv-x="2304" d="M119 854h89l-45 108zM740 328l74 79l-70 79h-163v-49h142v-55h-142v-54h159zM898 406l99 -110v217zM1186 453q0 33 -40 33h-84v-69h83q41 0 41 36zM1475 457q0 29 -42 29h-82v-61h81q43 0 43 32zM1197 923q0 29 -42 29h-82v-60h81q43 0 43 31zM1656 854h89l-44 108z M699 1009v-271h-66v212l-94 -212h-57l-94 212v-212h-132l-25 60h-135l-25 -60h-70l116 271h96l110 -257v257h106l85 -184l77 184h108zM1255 453q0 -20 -5.5 -35t-14 -25t-22.5 -16.5t-26 -10t-31.5 -4.5t-31.5 -1t-32.5 0.5t-29.5 0.5v-91h-126l-80 90l-83 -90h-256v271h260 l80 -89l82 89h207q109 0 109 -89zM964 794v-56h-217v271h217v-57h-152v-49h148v-55h-148v-54h152zM2304 235v-229q0 -55 -38.5 -94.5t-93.5 -39.5h-2040q-55 0 -93.5 39.5t-38.5 94.5v678h111l25 61h55l25 -61h218v46l19 -46h113l20 47v-47h541v99l10 1q10 0 10 -14v-86h279 v23q23 -12 55 -18t52.5 -6.5t63 0.5t51.5 1l25 61h56l25 -61h227v58l34 -58h182v378h-180v-44l-25 44h-185v-44l-23 44h-249q-69 0 -109 -22v22h-172v-22q-24 22 -73 22h-628l-43 -97l-43 97h-198v-44l-22 44h-169l-78 -179v391q0 55 38.5 94.5t93.5 39.5h2040 q55 0 93.5 -39.5t38.5 -94.5v-678h-120q-51 0 -81 -22v22h-177q-55 0 -78 -22v22h-316v-22q-31 22 -87 22h-209v-22q-23 22 -91 22h-234l-54 -58l-50 58h-349v-378h343l55 59l52 -59h211v89h21q59 0 90 13v-102h174v99h8q8 0 10 -2t2 -10v-87h529q57 0 88 24v-24h168 q60 0 95 17zM1546 469q0 -23 -12 -43t-34 -29q25 -9 34 -26t9 -46v-54h-65v45q0 33 -12 43.5t-46 10.5h-69v-99h-65v271h154q48 0 77 -15t29 -58zM1269 936q0 -24 -12.5 -44t-33.5 -29q26 -9 34.5 -25.5t8.5 -46.5v-53h-65q0 9 0.5 26.5t0 25t-3 18.5t-8.5 16t-17.5 8.5 t-29.5 3.5h-70v-98h-64v271l153 -1q49 0 78 -14.5t29 -57.5zM1798 327v-56h-216v271h216v-56h-151v-49h148v-55h-148v-54zM1372 1009v-271h-66v271h66zM2065 357q0 -86 -102 -86h-126v58h126q34 0 34 25q0 16 -17 21t-41.5 5t-49.5 3.5t-42 22.5t-17 55q0 39 26 60t66 21 h130v-57h-119q-36 0 -36 -25q0 -16 17.5 -20.5t42 -4t49 -2.5t42 -21.5t17.5 -54.5zM2304 407v-101q-24 -35 -88 -35h-125v58h125q33 0 33 25q0 13 -12.5 19t-31 5.5t-40 2t-40 8t-31 24t-12.5 48.5q0 39 26.5 60t66.5 21h129v-57h-118q-36 0 -36 -25q0 -20 29 -22t68.5 -5 t56.5 -26zM2139 1008v-270h-92l-122 203v-203h-132l-26 60h-134l-25 -60h-75q-129 0 -129 133q0 138 133 138h63v-59q-7 0 -28 1t-28.5 0.5t-23 -2t-21.5 -6.5t-14.5 -13.5t-11.5 -23t-3 -33.5q0 -38 13.5 -58t49.5 -20h29l92 213h97l109 -256v256h99l114 -188v188h66z" />
<glyph unicode="&#xf1f4;" horiz-adv-x="2304" d="M745 630q0 -37 -25.5 -61.5t-62.5 -24.5q-29 0 -46.5 16t-17.5 44q0 37 25 62.5t62 25.5q28 0 46.5 -16.5t18.5 -45.5zM1530 779q0 -42 -22 -57t-66 -15l-32 -1l17 107q2 11 13 11h18q22 0 35 -2t25 -12.5t12 -30.5zM1881 630q0 -36 -25.5 -61t-61.5 -25q-29 0 -47 16 t-18 44q0 37 25 62.5t62 25.5q28 0 46.5 -16.5t18.5 -45.5zM513 801q0 59 -38.5 85.5t-100.5 26.5h-160q-19 0 -21 -19l-65 -408q-1 -6 3 -11t10 -5h76q20 0 22 19l18 110q1 8 7 13t15 6.5t17 1.5t19 -1t14 -1q86 0 135 48.5t49 134.5zM822 489l41 261q1 6 -3 11t-10 5h-76 q-14 0 -17 -33q-27 40 -95 40q-72 0 -122.5 -54t-50.5 -127q0 -59 34.5 -94t92.5 -35q28 0 58 12t48 32q-4 -12 -4 -21q0 -16 13 -16h69q19 0 22 19zM1269 752q0 5 -4 9.5t-9 4.5h-77q-11 0 -18 -10l-106 -156l-44 150q-5 16 -22 16h-75q-5 0 -9 -4.5t-4 -9.5q0 -2 19.5 -59 t42 -123t23.5 -70q-82 -112 -82 -120q0 -13 13 -13h77q11 0 18 10l255 368q2 2 2 7zM1649 801q0 59 -38.5 85.5t-100.5 26.5h-159q-20 0 -22 -19l-65 -408q-1 -6 3 -11t10 -5h82q12 0 16 13l18 116q1 8 7 13t15 6.5t17 1.5t19 -1t14 -1q86 0 135 48.5t49 134.5zM1958 489 l41 261q1 6 -3 11t-10 5h-76q-14 0 -17 -33q-26 40 -95 40q-72 0 -122.5 -54t-50.5 -127q0 -59 34.5 -94t92.5 -35q29 0 59 12t47 32q0 -1 -2 -9t-2 -12q0 -16 13 -16h69q19 0 22 19zM2176 898v1q0 14 -13 14h-74q-11 0 -13 -11l-65 -416l-1 -2q0 -5 4 -9.5t10 -4.5h66 q19 0 21 19zM392 764q-5 -35 -26 -46t-60 -11l-33 -1l17 107q2 11 13 11h19q40 0 58 -11.5t12 -48.5zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
<glyph unicode="&#xf1f5;" horiz-adv-x="2304" d="M1597 633q0 -69 -21 -106q-19 -35 -52 -35q-23 0 -41 9v224q29 30 57 30q57 0 57 -122zM2035 669h-110q6 98 56 98q51 0 54 -98zM476 534q0 59 -33 91.5t-101 57.5q-36 13 -52 24t-16 25q0 26 38 26q58 0 124 -33l18 112q-67 32 -149 32q-77 0 -123 -38q-48 -39 -48 -109 q0 -58 32.5 -90.5t99.5 -56.5q39 -14 54.5 -25.5t15.5 -27.5q0 -31 -48 -31q-29 0 -70 12.5t-72 30.5l-18 -113q72 -41 168 -41q81 0 129 37q51 41 51 117zM771 749l19 111h-96v135l-129 -21l-18 -114l-46 -8l-17 -103h62v-219q0 -84 44 -120q38 -30 111 -30q32 0 79 11v118 q-32 -7 -44 -7q-42 0 -42 50v197h77zM1087 724v139q-15 3 -28 3q-32 0 -55.5 -16t-33.5 -46l-10 56h-131v-471h150v306q26 31 82 31q16 0 26 -2zM1124 389h150v471h-150v-471zM1746 638q0 122 -45 179q-40 52 -111 52q-64 0 -117 -56l-8 47h-132v-645l150 25v151 q36 -11 68 -11q83 0 134 56q61 65 61 202zM1278 986q0 33 -23 56t-56 23t-56 -23t-23 -56t23 -56.5t56 -23.5t56 23.5t23 56.5zM2176 629q0 113 -48 176q-50 64 -144 64q-96 0 -151.5 -66t-55.5 -180q0 -128 63 -188q55 -55 161 -55q101 0 160 40l-16 103q-57 -31 -128 -31 q-43 0 -63 19q-23 19 -28 66h248q2 14 2 52zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
<glyph unicode="&#xf1f6;" horiz-adv-x="2048" d="M1558 684q61 -356 298 -556q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-180.5 74.5t-75.5 180.5zM1024 -176q16 0 16 16t-16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5zM2026 1424q8 -10 7.5 -23.5t-10.5 -22.5 l-1872 -1622q-10 -8 -23.5 -7t-21.5 11l-84 96q-8 10 -7.5 23.5t10.5 21.5l186 161q-19 32 -19 66q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q124 -18 219 -82.5t148 -157.5 l418 363q10 8 23.5 7t21.5 -11z" />
<glyph unicode="&#xf1f7;" horiz-adv-x="2048" d="M1040 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM503 315l877 760q-42 88 -132.5 146.5t-223.5 58.5q-93 0 -169.5 -31.5t-121.5 -80.5t-69 -103t-24 -105q0 -384 -137 -645zM1856 128 q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-180.5 74.5t-75.5 180.5l149 129h757q-166 187 -227 459l111 97q61 -356 298 -556zM1942 1520l84 -96q8 -10 7.5 -23.5t-10.5 -22.5l-1872 -1622q-10 -8 -23.5 -7t-21.5 11l-84 96q-8 10 -7.5 23.5t10.5 21.5l186 161 q-19 32 -19 66q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q124 -18 219 -82.5t148 -157.5l418 363q10 8 23.5 7t21.5 -11z" />
<glyph unicode="&#xf1f8;" horiz-adv-x="1408" d="M512 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM768 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1024 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704 q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h309l70 167 q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23z" />
<glyph unicode="&#xf1f9;" d="M1150 462v-109q0 -50 -36.5 -89t-94 -60.5t-118 -32.5t-117.5 -11q-205 0 -342.5 139t-137.5 346q0 203 136 339t339 136q34 0 75.5 -4.5t93 -18t92.5 -34t69 -56.5t28 -81v-109q0 -16 -16 -16h-118q-16 0 -16 16v70q0 43 -65.5 67.5t-137.5 24.5q-140 0 -228.5 -91.5 t-88.5 -237.5q0 -151 91.5 -249.5t233.5 -98.5q68 0 138 24t70 66v70q0 7 4.5 11.5t10.5 4.5h119q6 0 11 -4.5t5 -11.5zM768 1280q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf1fa;" d="M972 761q0 108 -53.5 169t-147.5 61q-63 0 -124 -30.5t-110 -84.5t-79.5 -137t-30.5 -180q0 -112 53.5 -173t150.5 -61q96 0 176 66.5t122.5 166t42.5 203.5zM1536 640q0 -111 -37 -197t-98.5 -135t-131.5 -74.5t-145 -27.5q-6 0 -15.5 -0.5t-16.5 -0.5q-95 0 -142 53 q-28 33 -33 83q-52 -66 -131.5 -110t-173.5 -44q-161 0 -249.5 95.5t-88.5 269.5q0 157 66 290t179 210.5t246 77.5q87 0 155 -35.5t106 -99.5l2 19l11 56q1 6 5.5 12t9.5 6h118q5 0 13 -11q5 -5 3 -16l-120 -614q-5 -24 -5 -48q0 -39 12.5 -52t44.5 -13q28 1 57 5.5t73 24 t77 50t57 89.5t24 137q0 292 -174 466t-466 174q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51q228 0 405 144q11 9 24 8t21 -12l41 -49q8 -12 7 -24q-2 -13 -12 -22q-102 -83 -227.5 -128t-258.5 -45q-156 0 -298 61 t-245 164t-164 245t-61 298t61 298t164 245t245 164t298 61q344 0 556 -212t212 -556z" />
<glyph unicode="&#xf1fb;" horiz-adv-x="1792" d="M1698 1442q94 -94 94 -226.5t-94 -225.5l-225 -223l104 -104q10 -10 10 -23t-10 -23l-210 -210q-10 -10 -23 -10t-23 10l-105 105l-603 -603q-37 -37 -90 -37h-203l-256 -128l-64 64l128 256v203q0 53 37 90l603 603l-105 105q-10 10 -10 23t10 23l210 210q10 10 23 10 t23 -10l104 -104l223 225q93 94 225.5 94t226.5 -94zM512 64l576 576l-192 192l-576 -576v-192h192z" />
<glyph unicode="&#xf1fc;" horiz-adv-x="1792" d="M1615 1536q70 0 122.5 -46.5t52.5 -116.5q0 -63 -45 -151q-332 -629 -465 -752q-97 -91 -218 -91q-126 0 -216.5 92.5t-90.5 219.5q0 128 92 212l638 579q59 54 130 54zM706 502q39 -76 106.5 -130t150.5 -76l1 -71q4 -213 -129.5 -347t-348.5 -134q-123 0 -218 46.5 t-152.5 127.5t-86.5 183t-29 220q7 -5 41 -30t62 -44.5t59 -36.5t46 -17q41 0 55 37q25 66 57.5 112.5t69.5 76t88 47.5t103 25.5t125 10.5z" />
<glyph unicode="&#xf1fd;" horiz-adv-x="1792" d="M1792 128v-384h-1792v384q45 0 85 14t59 27.5t47 37.5q30 27 51.5 38t56.5 11t55.5 -11t52.5 -38q29 -25 47 -38t58 -27t86 -14q45 0 85 14.5t58 27t48 37.5q21 19 32.5 27t31 15t43.5 7q35 0 56.5 -11t51.5 -38q28 -24 47 -37.5t59 -27.5t85 -14t85 14t59 27.5t47 37.5 q30 27 51.5 38t56.5 11q34 0 55.5 -11t51.5 -38q28 -24 47 -37.5t59 -27.5t85 -14zM1792 448v-192q-35 0 -55.5 11t-52.5 38q-29 25 -47 38t-58 27t-85 14q-46 0 -86 -14t-58 -27t-47 -38q-22 -19 -33 -27t-31 -15t-44 -7q-35 0 -56.5 11t-51.5 38q-29 25 -47 38t-58 27 t-86 14q-45 0 -85 -14.5t-58 -27t-48 -37.5q-21 -19 -32.5 -27t-31 -15t-43.5 -7q-35 0 -56.5 11t-51.5 38q-28 24 -47 37.5t-59 27.5t-85 14q-46 0 -86 -14t-58 -27t-47 -38q-30 -27 -51.5 -38t-56.5 -11v192q0 80 56 136t136 56h64v448h256v-448h256v448h256v-448h256v448 h256v-448h64q80 0 136 -56t56 -136zM512 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5q0 29 9.5 51t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150zM1024 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5q0 29 9.5 51 t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150zM1536 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5q0 29 9.5 51t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150z" />
<glyph unicode="&#xf1fe;" horiz-adv-x="2048" d="M2048 0v-128h-2048v1536h128v-1408h1920zM1664 1024l256 -896h-1664v576l448 576l576 -576z" />
<glyph unicode="&#xf200;" horiz-adv-x="1792" d="M768 646l546 -546q-106 -108 -247.5 -168t-298.5 -60q-209 0 -385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103v-762zM955 640h773q0 -157 -60 -298.5t-168 -247.5zM1664 768h-768v768q209 0 385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf201;" horiz-adv-x="2048" d="M2048 0v-128h-2048v1536h128v-1408h1920zM1920 1248v-435q0 -21 -19.5 -29.5t-35.5 7.5l-121 121l-633 -633q-10 -10 -23 -10t-23 10l-233 233l-416 -416l-192 192l585 585q10 10 23 10t23 -10l233 -233l464 464l-121 121q-16 16 -7.5 35.5t29.5 19.5h435q14 0 23 -9 t9 -23z" />
<glyph unicode="&#xf202;" horiz-adv-x="1792" d="M1292 832q0 -6 10 -41q10 -29 25 -49.5t41 -34t44 -20t55 -16.5q325 -91 325 -332q0 -146 -105.5 -242.5t-254.5 -96.5q-59 0 -111.5 18.5t-91.5 45.5t-77 74.5t-63 87.5t-53.5 103.5t-43.5 103t-39.5 106.5t-35.5 95q-32 81 -61.5 133.5t-73.5 96.5t-104 64t-142 20 q-96 0 -183 -55.5t-138 -144.5t-51 -185q0 -160 106.5 -279.5t263.5 -119.5q177 0 258 95q56 63 83 116l84 -152q-15 -34 -44 -70l1 -1q-131 -152 -388 -152q-147 0 -269.5 79t-190.5 207.5t-68 274.5q0 105 43.5 206t116 176.5t172 121.5t204.5 46q87 0 159 -19t123.5 -50 t95 -80t72.5 -99t58.5 -117t50.5 -124.5t50 -130.5t55 -127q96 -200 233 -200q81 0 138.5 48.5t57.5 128.5q0 42 -19 72t-50.5 46t-72.5 31.5t-84.5 27t-87.5 34t-81 52t-65 82t-39 122.5q-3 16 -3 33q0 110 87.5 192t198.5 78q78 -3 120.5 -14.5t90.5 -53.5h-1 q12 -11 23 -24.5t26 -36t19 -27.5l-129 -99q-26 49 -54 70v1q-23 21 -97 21q-49 0 -84 -33t-35 -83z" />
<glyph unicode="&#xf203;" d="M1432 484q0 173 -234 239q-35 10 -53 16.5t-38 25t-29 46.5q0 2 -2 8.5t-3 12t-1 7.5q0 36 24.5 59.5t60.5 23.5q54 0 71 -15h-1q20 -15 39 -51l93 71q-39 54 -49 64q-33 29 -67.5 39t-85.5 10q-80 0 -142 -57.5t-62 -137.5q0 -7 2 -23q16 -96 64.5 -140t148.5 -73 q29 -8 49 -15.5t45 -21.5t38.5 -34.5t13.5 -46.5v-5q1 -58 -40.5 -93t-100.5 -35q-97 0 -167 144q-23 47 -51.5 121.5t-48 125.5t-54 110.5t-74 95.5t-103.5 60.5t-147 24.5q-101 0 -192 -56t-144 -148t-50 -192v-1q4 -108 50.5 -199t133.5 -147.5t196 -56.5q186 0 279 110 q20 27 31 51l-60 109q-42 -80 -99 -116t-146 -36q-115 0 -191 87t-76 204q0 105 82 189t186 84q112 0 170 -53.5t104 -172.5q8 -21 25.5 -68.5t28.5 -76.5t31.5 -74.5t38.5 -74t45.5 -62.5t55.5 -53.5t66 -33t80 -13.5q107 0 183 69.5t76 174.5zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf204;" horiz-adv-x="2048" d="M1152 640q0 104 -40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5t-198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5zM1920 640q0 104 -40.5 198.5 t-109.5 163.5t-163.5 109.5t-198.5 40.5h-386q119 -90 188.5 -224t69.5 -288t-69.5 -288t-188.5 -224h386q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5zM2048 640q0 -130 -51 -248.5t-136.5 -204t-204 -136.5t-248.5 -51h-768q-130 0 -248.5 51t-204 136.5 t-136.5 204t-51 248.5t51 248.5t136.5 204t204 136.5t248.5 51h768q130 0 248.5 -51t204 -136.5t136.5 -204t51 -248.5z" />
<glyph unicode="&#xf205;" horiz-adv-x="2048" d="M0 640q0 130 51 248.5t136.5 204t204 136.5t248.5 51h768q130 0 248.5 -51t204 -136.5t136.5 -204t51 -248.5t-51 -248.5t-136.5 -204t-204 -136.5t-248.5 -51h-768q-130 0 -248.5 51t-204 136.5t-136.5 204t-51 248.5zM1408 128q104 0 198.5 40.5t163.5 109.5 t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5t-198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5z" />
<glyph unicode="&#xf206;" horiz-adv-x="2304" d="M762 384h-314q-40 0 -57.5 35t6.5 67l188 251q-65 31 -137 31q-132 0 -226 -94t-94 -226t94 -226t226 -94q115 0 203 72.5t111 183.5zM576 512h186q-18 85 -75 148zM1056 512l288 384h-480l-99 -132q105 -103 126 -252h165zM2176 448q0 132 -94 226t-226 94 q-60 0 -121 -24l174 -260q15 -23 10 -49t-27 -40q-15 -11 -36 -11q-35 0 -53 29l-174 260q-93 -95 -93 -225q0 -132 94 -226t226 -94t226 94t94 226zM2304 448q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 97 39.5 183.5t109.5 149.5l-65 98l-353 -469 q-18 -26 -51 -26h-197q-23 -164 -149 -274t-294 -110q-185 0 -316.5 131.5t-131.5 316.5t131.5 316.5t316.5 131.5q114 0 215 -55l137 183h-224q-26 0 -45 19t-19 45t19 45t45 19h384v-128h435l-85 128h-222q-26 0 -45 19t-19 45t19 45t45 19h256q33 0 53 -28l267 -400 q91 44 192 44q185 0 316.5 -131.5t131.5 -316.5z" />
<glyph unicode="&#xf207;" d="M384 320q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1408 320q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1362 716l-72 384q-5 23 -22.5 37.5t-40.5 14.5 h-918q-23 0 -40.5 -14.5t-22.5 -37.5l-72 -384q-5 -30 14 -53t49 -23h1062q30 0 49 23t14 53zM1136 1328q0 20 -14 34t-34 14h-640q-20 0 -34 -14t-14 -34t14 -34t34 -14h640q20 0 34 14t14 34zM1536 603v-603h-128v-128q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 t-37.5 90.5v128h-768v-128q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5v128h-128v603q0 112 25 223l103 454q9 78 97.5 137t230 89t312.5 30t312.5 -30t230 -89t97.5 -137l105 -454q23 -102 23 -223z" />
<glyph unicode="&#xf208;" horiz-adv-x="2048" d="M1463 704q0 -35 -25 -60.5t-61 -25.5h-702q-36 0 -61 25.5t-25 60.5t25 60.5t61 25.5h702q36 0 61 -25.5t25 -60.5zM1677 704q0 86 -23 170h-982q-36 0 -61 25t-25 60q0 36 25 61t61 25h908q-88 143 -235 227t-320 84q-177 0 -327.5 -87.5t-238 -237.5t-87.5 -327 q0 -86 23 -170h982q36 0 61 -25t25 -60q0 -36 -25 -61t-61 -25h-908q88 -143 235.5 -227t320.5 -84q132 0 253 51.5t208 139t139 208t52 253.5zM2048 959q0 -35 -25 -60t-61 -25h-131q17 -85 17 -170q0 -167 -65.5 -319.5t-175.5 -263t-262.5 -176t-319.5 -65.5 q-246 0 -448.5 133t-301.5 350h-189q-36 0 -61 25t-25 61q0 35 25 60t61 25h132q-17 85 -17 170q0 167 65.5 319.5t175.5 263t262.5 176t320.5 65.5q245 0 447.5 -133t301.5 -350h188q36 0 61 -25t25 -61z" />
<glyph unicode="&#xf209;" horiz-adv-x="1280" d="M953 1158l-114 -328l117 -21q165 451 165 518q0 56 -38 56q-57 0 -130 -225zM654 471l33 -88q37 42 71 67l-33 5.5t-38.5 7t-32.5 8.5zM362 1367q0 -98 159 -521q18 10 49 10q15 0 75 -5l-121 351q-75 220 -123 220q-19 0 -29 -17.5t-10 -37.5zM283 608q0 -36 51.5 -119 t117.5 -153t100 -70q14 0 25.5 13t11.5 27q0 24 -32 102q-13 32 -32 72t-47.5 89t-61.5 81t-62 32q-20 0 -45.5 -27t-25.5 -47zM125 273q0 -41 25 -104q59 -145 183.5 -227t281.5 -82q227 0 382 170q152 169 152 427q0 43 -1 67t-11.5 62t-30.5 56q-56 49 -211.5 75.5 t-270.5 26.5q-37 0 -49 -11q-12 -5 -12 -35q0 -34 21.5 -60t55.5 -40t77.5 -23.5t87.5 -11.5t85 -4t70 0h23q24 0 40 -19q15 -19 19 -55q-28 -28 -96 -54q-61 -22 -93 -46q-64 -46 -108.5 -114t-44.5 -137q0 -31 18.5 -88.5t18.5 -87.5l-3 -12q-4 -12 -4 -14 q-137 10 -146 216q-8 -2 -41 -2q2 -7 2 -21q0 -53 -40.5 -89.5t-94.5 -36.5q-82 0 -166.5 78t-84.5 159q0 34 33 67q52 -64 60 -76q77 -104 133 -104q12 0 26.5 8.5t14.5 20.5q0 34 -87.5 145t-116.5 111q-43 0 -70 -44.5t-27 -90.5zM11 264q0 101 42.5 163t136.5 88 q-28 74 -28 104q0 62 61 123t122 61q29 0 70 -15q-163 462 -163 567q0 80 41 130.5t119 50.5q131 0 325 -581q6 -17 8 -23q6 16 29 79.5t43.5 118.5t54 127.5t64.5 123t70.5 86.5t76.5 36q71 0 112 -49t41 -122q0 -108 -159 -550q61 -15 100.5 -46t58.5 -78t26 -93.5 t7 -110.5q0 -150 -47 -280t-132 -225t-211 -150t-278 -55q-111 0 -223 42q-149 57 -258 191.5t-109 286.5z" />
<glyph unicode="&#xf20a;" horiz-adv-x="2048" d="M785 528h207q-14 -158 -98.5 -248.5t-214.5 -90.5q-162 0 -254.5 116t-92.5 316q0 194 93 311.5t233 117.5q148 0 232 -87t97 -247h-203q-5 64 -35.5 99t-81.5 35q-57 0 -88.5 -60.5t-31.5 -177.5q0 -48 5 -84t18 -69.5t40 -51.5t66 -18q95 0 109 139zM1497 528h206 q-14 -158 -98 -248.5t-214 -90.5q-162 0 -254.5 116t-92.5 316q0 194 93 311.5t233 117.5q148 0 232 -87t97 -247h-204q-4 64 -35 99t-81 35q-57 0 -88.5 -60.5t-31.5 -177.5q0 -48 5 -84t18 -69.5t39.5 -51.5t65.5 -18q49 0 76.5 38t33.5 101zM1856 647q0 207 -15.5 307 t-60.5 161q-6 8 -13.5 14t-21.5 15t-16 11q-86 63 -697 63q-625 0 -710 -63q-5 -4 -17.5 -11.5t-21 -14t-14.5 -14.5q-45 -60 -60 -159.5t-15 -308.5q0 -208 15 -307.5t60 -160.5q6 -8 15 -15t20.5 -14t17.5 -12q44 -33 239.5 -49t470.5 -16q610 0 697 65q5 4 17 11t20.5 14 t13.5 16q46 60 61 159t15 309zM2048 1408v-1536h-2048v1536h2048z" />
<glyph unicode="&#xf20b;" d="M992 912v-496q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v496q0 112 -80 192t-192 80h-272v-1152q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v1344q0 14 9 23t23 9h464q135 0 249 -66.5t180.5 -180.5t66.5 -249zM1376 1376v-880q0 -135 -66.5 -249t-180.5 -180.5 t-249 -66.5h-464q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h160q14 0 23 -9t9 -23v-768h272q112 0 192 80t80 192v880q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" />
<glyph unicode="&#xf20c;" d="M1311 694v-114q0 -24 -13.5 -38t-37.5 -14h-202q-24 0 -38 14t-14 38v114q0 24 14 38t38 14h202q24 0 37.5 -14t13.5 -38zM821 464v250q0 53 -32.5 85.5t-85.5 32.5h-133q-68 0 -96 -52q-28 52 -96 52h-130q-53 0 -85.5 -32.5t-32.5 -85.5v-250q0 -22 21 -22h55 q22 0 22 22v230q0 24 13.5 38t38.5 14h94q24 0 38 -14t14 -38v-230q0 -22 21 -22h54q22 0 22 22v230q0 24 14 38t38 14h97q24 0 37.5 -14t13.5 -38v-230q0 -22 22 -22h55q21 0 21 22zM1410 560v154q0 53 -33 85.5t-86 32.5h-264q-53 0 -86 -32.5t-33 -85.5v-410 q0 -21 22 -21h55q21 0 21 21v180q31 -42 94 -42h191q53 0 86 32.5t33 85.5zM1536 1176v-1072q0 -96 -68 -164t-164 -68h-1072q-96 0 -164 68t-68 164v1072q0 96 68 164t164 68h1072q96 0 164 -68t68 -164z" />
<glyph unicode="&#xf20d;" d="M915 450h-294l147 551zM1001 128h311l-324 1024h-440l-324 -1024h311l383 314zM1536 1120v-960q0 -118 -85 -203t-203 -85h-960q-118 0 -203 85t-85 203v960q0 118 85 203t203 85h960q118 0 203 -85t85 -203z" />
<glyph unicode="&#xf20e;" horiz-adv-x="2048" d="M2048 641q0 -21 -13 -36.5t-33 -19.5l-205 -356q3 -9 3 -18q0 -20 -12.5 -35.5t-32.5 -19.5l-193 -337q3 -8 3 -16q0 -23 -16.5 -40t-40.5 -17q-25 0 -41 18h-400q-17 -20 -43 -20t-43 20h-399q-17 -20 -43 -20q-23 0 -40 16.5t-17 40.5q0 8 4 20l-193 335 q-20 4 -32.5 19.5t-12.5 35.5q0 9 3 18l-206 356q-20 5 -32.5 20.5t-12.5 35.5q0 21 13.5 36.5t33.5 19.5l199 344q0 1 -0.5 3t-0.5 3q0 36 34 51l209 363q-4 10 -4 18q0 24 17 40.5t40 16.5q26 0 44 -21h396q16 21 43 21t43 -21h398q18 21 44 21q23 0 40 -16.5t17 -40.5 q0 -6 -4 -18l207 -358q23 -1 39 -17.5t16 -38.5q0 -13 -7 -27l187 -324q19 -4 31.5 -19.5t12.5 -35.5zM1063 -158h389l-342 354h-143l-342 -354h360q18 16 39 16t39 -16zM112 654q1 -4 1 -13q0 -10 -2 -15l208 -360q2 0 4.5 -1t5.5 -2.5l5 -2.5l188 199v347l-187 194 q-13 -8 -29 -10zM986 1438h-388l190 -200l554 200h-280q-16 -16 -38 -16t-38 16zM1689 226q1 6 5 11l-64 68l-17 -79h76zM1583 226l22 105l-252 266l-296 -307l63 -64h463zM1495 -142l16 28l65 310h-427l333 -343q8 4 13 5zM578 -158h5l342 354h-373v-335l4 -6q14 -5 22 -13 zM552 226h402l64 66l-309 321l-157 -166v-221zM359 226h163v189l-168 -177q4 -8 5 -12zM358 1051q0 -1 0.5 -2t0.5 -2q0 -16 -8 -29l171 -177v269zM552 1121v-311l153 -157l297 314l-223 236zM556 1425l-4 -8v-264l205 74l-191 201q-6 -2 -10 -3zM1447 1438h-16l-621 -224 l213 -225zM1023 946l-297 -315l311 -319l296 307zM688 634l-136 141v-284zM1038 270l-42 -44h85zM1374 618l238 -251l132 624l-3 5l-1 1zM1718 1018q-8 13 -8 29v2l-216 376q-5 1 -13 5l-437 -463l310 -327zM522 1142v223l-163 -282zM522 196h-163l163 -283v283zM1607 196 l-48 -227l130 227h-82zM1729 266l207 361q-2 10 -2 14q0 1 3 16l-171 296l-129 -612l77 -82q5 3 15 7z" />
<glyph unicode="&#xf210;" d="M0 856q0 131 91.5 226.5t222.5 95.5h742l352 358v-1470q0 -132 -91.5 -227t-222.5 -95h-780q-131 0 -222.5 95t-91.5 227v790zM1232 102l-176 180v425q0 46 -32 79t-78 33h-484q-46 0 -78 -33t-32 -79v-492q0 -46 32.5 -79.5t77.5 -33.5h770z" />
<glyph unicode="&#xf211;" d="M934 1386q-317 -121 -556 -362.5t-358 -560.5q-20 89 -20 176q0 208 102.5 384.5t278.5 279t384 102.5q82 0 169 -19zM1203 1267q93 -65 164 -155q-389 -113 -674.5 -400.5t-396.5 -676.5q-93 72 -155 162q112 386 395 671t667 399zM470 -67q115 356 379.5 622t619.5 384 q40 -92 54 -195q-292 -120 -516 -345t-343 -518q-103 14 -194 52zM1536 -125q-193 50 -367 115q-135 -84 -290 -107q109 205 274 370.5t369 275.5q-21 -152 -101 -284q65 -175 115 -370z" />
<glyph unicode="&#xf212;" horiz-adv-x="2048" d="M1893 1144l155 -1272q-131 0 -257 57q-200 91 -393 91q-226 0 -374 -148q-148 148 -374 148q-193 0 -393 -91q-128 -57 -252 -57h-5l155 1272q224 127 482 127q233 0 387 -106q154 106 387 106q258 0 482 -127zM1398 157q129 0 232 -28.5t260 -93.5l-124 1021 q-171 78 -368 78q-224 0 -374 -141q-150 141 -374 141q-197 0 -368 -78l-124 -1021q105 43 165.5 65t148.5 39.5t178 17.5q202 0 374 -108q172 108 374 108zM1438 191l-55 907q-211 -4 -359 -155q-152 155 -374 155q-176 0 -336 -66l-114 -941q124 51 228.5 76t221.5 25 q209 0 374 -102q172 107 374 102z" />
<glyph unicode="&#xf213;" horiz-adv-x="2048" d="M1500 165v733q0 21 -15 36t-35 15h-93q-20 0 -35 -15t-15 -36v-733q0 -20 15 -35t35 -15h93q20 0 35 15t15 35zM1216 165v531q0 20 -15 35t-35 15h-101q-20 0 -35 -15t-15 -35v-531q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM924 165v429q0 20 -15 35t-35 15h-101 q-20 0 -35 -15t-15 -35v-429q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM632 165v362q0 20 -15 35t-35 15h-101q-20 0 -35 -15t-15 -35v-362q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM2048 311q0 -166 -118 -284t-284 -118h-1244q-166 0 -284 118t-118 284 q0 116 63 214.5t168 148.5q-10 34 -10 73q0 113 80.5 193.5t193.5 80.5q102 0 180 -67q45 183 194 300t338 117q149 0 275 -73.5t199.5 -199.5t73.5 -275q0 -66 -14 -122q135 -33 221 -142.5t86 -247.5z" />
<glyph unicode="&#xf214;" d="M0 1536h1536v-1392l-776 -338l-760 338v1392zM1436 209v926h-1336v-926l661 -294zM1436 1235v201h-1336v-201h1336zM181 937v-115h-37v115h37zM181 789v-115h-37v115h37zM181 641v-115h-37v115h37zM181 493v-115h-37v115h37zM181 345v-115h-37v115h37zM207 202l15 34 l105 -47l-15 -33zM343 142l15 34l105 -46l-15 -34zM478 82l15 34l105 -46l-15 -34zM614 23l15 33l104 -46l-15 -34zM797 10l105 46l15 -33l-105 -47zM932 70l105 46l15 -34l-105 -46zM1068 130l105 46l15 -34l-105 -46zM1203 189l105 47l15 -34l-105 -46zM259 1389v-36h-114 v36h114zM421 1389v-36h-115v36h115zM583 1389v-36h-115v36h115zM744 1389v-36h-114v36h114zM906 1389v-36h-114v36h114zM1068 1389v-36h-115v36h115zM1230 1389v-36h-115v36h115zM1391 1389v-36h-114v36h114zM181 1049v-79h-37v115h115v-36h-78zM421 1085v-36h-115v36h115z M583 1085v-36h-115v36h115zM744 1085v-36h-114v36h114zM906 1085v-36h-114v36h114zM1068 1085v-36h-115v36h115zM1230 1085v-36h-115v36h115zM1355 970v79h-78v36h115v-115h-37zM1355 822v115h37v-115h-37zM1355 674v115h37v-115h-37zM1355 526v115h37v-115h-37zM1355 378 v115h37v-115h-37zM1355 230v115h37v-115h-37zM760 265q-129 0 -221 91.5t-92 221.5q0 129 92 221t221 92q130 0 221.5 -92t91.5 -221q0 -130 -91.5 -221.5t-221.5 -91.5zM595 646q0 -36 19.5 -56.5t49.5 -25t64 -7t64 -2t49.5 -9t19.5 -30.5q0 -49 -112 -49q-97 0 -123 51 h-3l-31 -63q67 -42 162 -42q29 0 56.5 5t55.5 16t45.5 33t17.5 53q0 46 -27.5 69.5t-67.5 27t-79.5 3t-67 5t-27.5 25.5q0 21 20.5 33t40.5 15t41 3q34 0 70.5 -11t51.5 -34h3l30 58q-3 1 -21 8.5t-22.5 9t-19.5 7t-22 7t-20 4.5t-24 4t-23 1q-29 0 -56.5 -5t-54 -16.5 t-43 -34t-16.5 -53.5z" />
<glyph unicode="&#xf215;" horiz-adv-x="2048" d="M863 504q0 112 -79.5 191.5t-191.5 79.5t-191 -79.5t-79 -191.5t79 -191t191 -79t191.5 79t79.5 191zM1726 505q0 112 -79 191t-191 79t-191.5 -79t-79.5 -191q0 -113 79.5 -192t191.5 -79t191 79.5t79 191.5zM2048 1314v-1348q0 -44 -31.5 -75.5t-76.5 -31.5h-1832 q-45 0 -76.5 31.5t-31.5 75.5v1348q0 44 31.5 75.5t76.5 31.5h431q44 0 76 -31.5t32 -75.5v-161h754v161q0 44 32 75.5t76 31.5h431q45 0 76.5 -31.5t31.5 -75.5z" />
<glyph unicode="&#xf216;" horiz-adv-x="2048" d="M1430 953zM1690 749q148 0 253 -98.5t105 -244.5q0 -157 -109 -261.5t-267 -104.5q-85 0 -162 27.5t-138 73.5t-118 106t-109 126.5t-103.5 132.5t-108.5 126t-117 106t-136 73.5t-159 27.5q-154 0 -251.5 -91.5t-97.5 -244.5q0 -157 104 -250t263 -93q100 0 208 37.5 t193 98.5q5 4 21 18.5t30 24t22 9.5q14 0 24.5 -10.5t10.5 -24.5q0 -24 -60 -77q-101 -88 -234.5 -142t-260.5 -54q-133 0 -245.5 58t-180 165t-67.5 241q0 205 141.5 341t347.5 136q120 0 226.5 -43.5t185.5 -113t151.5 -153t139 -167.5t133.5 -153.5t149.5 -113 t172.5 -43.5q102 0 168.5 61.5t66.5 162.5q0 95 -64.5 159t-159.5 64q-30 0 -81.5 -18.5t-68.5 -18.5q-20 0 -35.5 15t-15.5 35q0 18 8.5 57t8.5 59q0 159 -107.5 263t-266.5 104q-58 0 -111.5 -18.5t-84 -40.5t-55.5 -40.5t-33 -18.5q-15 0 -25.5 10.5t-10.5 25.5 q0 19 25 46q59 67 147 103.5t182 36.5q191 0 318 -125.5t127 -315.5q0 -37 -4 -66q57 15 115 15z" />
<glyph unicode="&#xf217;" horiz-adv-x="1664" d="M1216 832q0 26 -19 45t-45 19h-128v128q0 26 -19 45t-45 19t-45 -19t-19 -45v-128h-128q-26 0 -45 -19t-19 -45t19 -45t45 -19h128v-128q0 -26 19 -45t45 -19t45 19t19 45v128h128q26 0 45 19t19 45zM640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920 q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf218;" horiz-adv-x="1664" d="M1280 832q0 26 -19 45t-45 19t-45 -19l-147 -146v293q0 26 -19 45t-45 19t-45 -19t-19 -45v-293l-147 146q-19 19 -45 19t-45 -19t-19 -45t19 -45l256 -256q19 -19 45 -19t45 19l256 256q19 19 19 45zM640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920 q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf219;" horiz-adv-x="2048" d="M212 768l623 -665l-300 665h-323zM1024 -4l349 772h-698zM538 896l204 384h-262l-288 -384h346zM1213 103l623 665h-323zM683 896h682l-204 384h-274zM1510 896h346l-288 384h-262zM1651 1382l384 -512q14 -18 13 -41.5t-17 -40.5l-960 -1024q-18 -20 -47 -20t-47 20 l-960 1024q-16 17 -17 40.5t13 41.5l384 512q18 26 51 26h1152q33 0 51 -26z" />
<glyph unicode="&#xf21a;" horiz-adv-x="2048" d="M1811 -19q19 19 45 19t45 -19l128 -128l-90 -90l-83 83l-83 -83q-18 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83 q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-128 128l90 90l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83 q19 19 45 19t45 -19l83 -83zM237 19q-19 -19 -45 -19t-45 19l-128 128l90 90l83 -82l83 82q19 19 45 19t45 -19l83 -82l64 64v293l-210 314q-17 26 -7 56.5t40 40.5l177 58v299h128v128h256v128h256v-128h256v-128h128v-299l177 -58q30 -10 40 -40.5t-7 -56.5l-210 -314 v-293l19 18q19 19 45 19t45 -19l83 -82l83 82q19 19 45 19t45 -19l128 -128l-90 -90l-83 83l-83 -83q-18 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83 q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83zM640 1152v-128l384 128l384 -128v128h-128v128h-512v-128h-128z" />
<glyph unicode="&#xf21b;" d="M576 0l96 448l-96 128l-128 64zM832 0l128 640l-128 -64l-96 -128zM992 1010q-2 4 -4 6q-10 8 -96 8q-70 0 -167 -19q-7 -2 -21 -2t-21 2q-97 19 -167 19q-86 0 -96 -8q-2 -2 -4 -6q2 -18 4 -27q2 -3 7.5 -6.5t7.5 -10.5q2 -4 7.5 -20.5t7 -20.5t7.5 -17t8.5 -17t9 -14 t12 -13.5t14 -9.5t17.5 -8t20.5 -4t24.5 -2q36 0 59 12.5t32.5 30t14.5 34.5t11.5 29.5t17.5 12.5h12q11 0 17.5 -12.5t11.5 -29.5t14.5 -34.5t32.5 -30t59 -12.5q13 0 24.5 2t20.5 4t17.5 8t14 9.5t12 13.5t9 14t8.5 17t7.5 17t7 20.5t7.5 20.5q2 7 7.5 10.5t7.5 6.5 q2 9 4 27zM1408 131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190q0 61 4.5 118t19 125.5t37.5 123.5t63.5 103.5t93.5 74.5l-90 220h214q-22 64 -22 128q0 12 2 32q-194 40 -194 96q0 57 210 99q17 62 51.5 134t70.5 114q32 37 76 37q30 0 84 -31t84 -31t84 31 t84 31q44 0 76 -37q36 -42 70.5 -114t51.5 -134q210 -42 210 -99q0 -56 -194 -96q7 -81 -20 -160h214l-82 -225q63 -33 107.5 -96.5t65.5 -143.5t29 -151.5t8 -148.5z" />
<glyph unicode="&#xf21c;" horiz-adv-x="2304" d="M2301 500q12 -103 -22 -198.5t-99 -163.5t-158.5 -106t-196.5 -31q-161 11 -279.5 125t-134.5 274q-12 111 27.5 210.5t118.5 170.5l-71 107q-96 -80 -151 -194t-55 -244q0 -27 -18.5 -46.5t-45.5 -19.5h-256h-69q-23 -164 -149 -274t-294 -110q-185 0 -316.5 131.5 t-131.5 316.5t131.5 316.5t316.5 131.5q76 0 152 -27l24 45q-123 110 -304 110h-64q-26 0 -45 19t-19 45t19 45t45 19h128q78 0 145 -13.5t116.5 -38.5t71.5 -39.5t51 -36.5h512h115l-85 128h-222q-30 0 -49 22.5t-14 52.5q4 23 23 38t43 15h253q33 0 53 -28l70 -105 l114 114q19 19 46 19h101q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-179l115 -172q131 63 275 36q143 -26 244 -134.5t118 -253.5zM448 128q115 0 203 72.5t111 183.5h-314q-35 0 -55 31q-18 32 -1 63l147 277q-47 13 -91 13q-132 0 -226 -94t-94 -226t94 -226 t226 -94zM1856 128q132 0 226 94t94 226t-94 226t-226 94q-60 0 -121 -24l174 -260q15 -23 10 -49t-27 -40q-15 -11 -36 -11q-35 0 -53 29l-174 260q-93 -95 -93 -225q0 -132 94 -226t226 -94z" />
<glyph unicode="&#xf21d;" d="M1408 0q0 -63 -61.5 -113.5t-164 -81t-225 -46t-253.5 -15.5t-253.5 15.5t-225 46t-164 81t-61.5 113.5q0 49 33 88.5t91 66.5t118 44.5t131 29.5q26 5 48 -10.5t26 -41.5q5 -26 -10.5 -48t-41.5 -26q-58 -10 -106 -23.5t-76.5 -25.5t-48.5 -23.5t-27.5 -19.5t-8.5 -12 q3 -11 27 -26.5t73 -33t114 -32.5t160.5 -25t201.5 -10t201.5 10t160.5 25t114 33t73 33.5t27 27.5q-1 4 -8.5 11t-27.5 19t-48.5 23.5t-76.5 25t-106 23.5q-26 4 -41.5 26t-10.5 48q4 26 26 41.5t48 10.5q71 -12 131 -29.5t118 -44.5t91 -66.5t33 -88.5zM1024 896v-384 q0 -26 -19 -45t-45 -19h-64v-384q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v384h-64q-26 0 -45 19t-19 45v384q0 53 37.5 90.5t90.5 37.5h384q53 0 90.5 -37.5t37.5 -90.5zM928 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5 t158.5 -65.5t65.5 -158.5z" />
<glyph unicode="&#xf21e;" horiz-adv-x="1792" d="M1280 512h305q-5 -6 -10 -10.5t-9 -7.5l-3 -4l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-5 2 -21 20h369q22 0 39.5 13.5t22.5 34.5l70 281l190 -667q6 -20 23 -33t39 -13q21 0 38 13t23 33l146 485l56 -112q18 -35 57 -35zM1792 940q0 -145 -103 -300h-369l-111 221 q-8 17 -25.5 27t-36.5 8q-45 -5 -56 -46l-129 -430l-196 686q-6 20 -23.5 33t-39.5 13t-39 -13.5t-22 -34.5l-116 -464h-423q-103 155 -103 300q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124 t127 -344z" />
<glyph unicode="&#xf221;" horiz-adv-x="1280" d="M1152 960q0 -221 -147.5 -384.5t-364.5 -187.5v-260h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v260q-150 16 -271.5 103t-186 224t-52.5 292 q11 134 80.5 249t182 188t245.5 88q170 19 319 -54t236 -212t87 -306zM128 960q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5z" />
<glyph unicode="&#xf222;" d="M1472 1408q26 0 45 -19t19 -45v-416q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v262l-382 -383q126 -156 126 -359q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123t223.5 45.5 q203 0 359 -126l382 382h-261q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h416zM576 0q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
<glyph unicode="&#xf223;" horiz-adv-x="1280" d="M830 1220q145 -72 233.5 -210.5t88.5 -305.5q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-217 24 -364.5 187.5 t-147.5 384.5q0 167 88.5 305.5t233.5 210.5q-165 96 -228 273q-6 16 3.5 29.5t26.5 13.5h69q21 0 29 -20q44 -106 140 -171t214 -65t214 65t140 171q8 20 37 20h61q17 0 26.5 -13.5t3.5 -29.5q-63 -177 -228 -273zM576 256q185 0 316.5 131.5t131.5 316.5t-131.5 316.5 t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
<glyph unicode="&#xf224;" d="M1024 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q126 -158 126 -359q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64 q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-149 16 -270.5 103t-186.5 223.5t-53 291.5q16 204 160 353.5t347 172.5q118 14 228 -19t198 -103l255 254h-134q-14 0 -23 9t-9 23v64zM576 256q185 0 316.5 131.5t131.5 316.5t-131.5 316.5 t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
<glyph unicode="&#xf225;" horiz-adv-x="1792" d="M1280 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q126 -158 126 -359q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64 q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-217 24 -364.5 187.5t-147.5 384.5q0 201 126 359l-52 53l-101 -111q-9 -10 -22 -10.5t-23 7.5l-48 44q-10 8 -10.5 21.5t8.5 23.5l105 115l-111 112v-134q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9 t-9 23v288q0 26 19 45t45 19h288q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-133l106 -107l86 94q9 10 22 10.5t23 -7.5l48 -44q10 -8 10.5 -21.5t-8.5 -23.5l-90 -99l57 -56q158 126 359 126t359 -126l255 254h-134q-14 0 -23 9t-9 23v64zM832 256q185 0 316.5 131.5 t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
<glyph unicode="&#xf226;" horiz-adv-x="1792" d="M1790 1007q12 -155 -52.5 -292t-186 -224t-271.5 -103v-260h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-512v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23 t23 9h224v260q-150 16 -271.5 103t-186 224t-52.5 292q17 206 164.5 356.5t352.5 169.5q206 21 377 -94q171 115 377 94q205 -19 352.5 -169.5t164.5 -356.5zM896 647q128 131 128 313t-128 313q-128 -131 -128 -313t128 -313zM576 512q115 0 218 57q-154 165 -154 391 q0 224 154 391q-103 57 -218 57q-185 0 -316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5zM1152 128v260q-137 15 -256 94q-119 -79 -256 -94v-260h512zM1216 512q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5q-115 0 -218 -57q154 -167 154 -391 q0 -226 -154 -391q103 -57 218 -57z" />
<glyph unicode="&#xf227;" horiz-adv-x="1920" d="M1536 1120q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q76 -95 107.5 -214t9.5 -247q-31 -182 -166 -312t-318 -156q-210 -29 -384.5 80t-241.5 300q-117 6 -221 57.5t-177.5 133t-113.5 192.5t-32 230 q9 135 78 252t182 191.5t248 89.5q118 14 227.5 -19t198.5 -103l255 254h-134q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q59 -74 93 -169q182 -9 328 -124l255 254h-134q-14 0 -23 9 t-9 23v64zM1024 704q0 20 -4 58q-162 -25 -271 -150t-109 -292q0 -20 4 -58q162 25 271 150t109 292zM128 704q0 -168 111 -294t276 -149q-3 29 -3 59q0 210 135 369.5t338 196.5q-53 120 -163.5 193t-245.5 73q-185 0 -316.5 -131.5t-131.5 -316.5zM1088 -128 q185 0 316.5 131.5t131.5 316.5q0 168 -111 294t-276 149q3 -29 3 -59q0 -210 -135 -369.5t-338 -196.5q53 -120 163.5 -193t245.5 -73z" />
<glyph unicode="&#xf228;" horiz-adv-x="2048" d="M1664 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q76 -95 107.5 -214t9.5 -247q-32 -180 -164.5 -310t-313.5 -157q-223 -34 -409 90q-117 -78 -256 -93v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23 t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-155 17 -279.5 109.5t-187 237.5t-39.5 307q25 187 159.5 322.5t320.5 164.5q224 34 410 -90q146 97 320 97q201 0 359 -126l255 254h-134q-14 0 -23 9 t-9 23v64zM896 391q128 131 128 313t-128 313q-128 -131 -128 -313t128 -313zM128 704q0 -185 131.5 -316.5t316.5 -131.5q117 0 218 57q-154 167 -154 391t154 391q-101 57 -218 57q-185 0 -316.5 -131.5t-131.5 -316.5zM1216 256q185 0 316.5 131.5t131.5 316.5 t-131.5 316.5t-316.5 131.5q-117 0 -218 -57q154 -167 154 -391t-154 -391q101 -57 218 -57z" />
<glyph unicode="&#xf229;" d="M1472 1408q26 0 45 -19t19 -45v-416q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v262l-213 -214l140 -140q9 -10 9 -23t-9 -22l-46 -46q-9 -9 -22 -9t-23 9l-140 141l-78 -79q126 -156 126 -359q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5 t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123t223.5 45.5q203 0 359 -126l78 78l-172 172q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l172 -172l213 213h-261q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h416zM576 0q185 0 316.5 131.5t131.5 316.5t-131.5 316.5 t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
<glyph unicode="&#xf22a;" horiz-adv-x="1280" d="M640 892q217 -24 364.5 -187.5t147.5 -384.5q0 -167 -87 -306t-236 -212t-319 -54q-133 15 -245.5 88t-182 188t-80.5 249q-12 155 52.5 292t186 224t271.5 103v132h-160q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h160v165l-92 -92q-10 -9 -23 -9t-22 9l-46 46q-9 9 -9 22 t9 23l202 201q19 19 45 19t45 -19l202 -201q9 -10 9 -23t-9 -22l-46 -46q-9 -9 -22 -9t-23 9l-92 92v-165h160q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-160v-132zM576 -128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5 t131.5 -316.5t316.5 -131.5z" />
<glyph unicode="&#xf22b;" horiz-adv-x="2048" d="M1901 621q19 -19 19 -45t-19 -45l-294 -294q-9 -10 -22.5 -10t-22.5 10l-45 45q-10 9 -10 22.5t10 22.5l185 185h-294v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-132q-24 -217 -187.5 -364.5t-384.5 -147.5q-167 0 -306 87t-212 236t-54 319q15 133 88 245.5 t188 182t249 80.5q155 12 292 -52.5t224 -186t103 -271.5h132v224q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-224h294l-185 185q-10 9 -10 22.5t10 22.5l45 45q9 10 22.5 10t22.5 -10zM576 128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5 t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
<glyph unicode="&#xf22c;" horiz-adv-x="1280" d="M1152 960q0 -221 -147.5 -384.5t-364.5 -187.5v-612q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v612q-217 24 -364.5 187.5t-147.5 384.5q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5zM576 512q185 0 316.5 131.5 t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
<glyph unicode="&#xf22d;" horiz-adv-x="1280" d="M1024 576q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1152 576q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123 t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5z" />
<glyph unicode="&#xf22e;" horiz-adv-x="1792" />
<glyph unicode="&#xf22f;" horiz-adv-x="1792" />
<glyph unicode="&#xf230;" d="M1451 1408q35 0 60 -25t25 -60v-1366q0 -35 -25 -60t-60 -25h-391v595h199l30 232h-229v148q0 56 23.5 84t91.5 28l122 1v207q-63 9 -178 9q-136 0 -217.5 -80t-81.5 -226v-171h-200v-232h200v-595h-735q-35 0 -60 25t-25 60v1366q0 35 25 60t60 25h1366z" />
<glyph unicode="&#xf231;" horiz-adv-x="1280" d="M0 939q0 108 37.5 203.5t103.5 166.5t152 123t185 78t202 26q158 0 294 -66.5t221 -193.5t85 -287q0 -96 -19 -188t-60 -177t-100 -149.5t-145 -103t-189 -38.5q-68 0 -135 32t-96 88q-10 -39 -28 -112.5t-23.5 -95t-20.5 -71t-26 -71t-32 -62.5t-46 -77.5t-62 -86.5 l-14 -5l-9 10q-15 157 -15 188q0 92 21.5 206.5t66.5 287.5t52 203q-32 65 -32 169q0 83 52 156t132 73q61 0 95 -40.5t34 -102.5q0 -66 -44 -191t-44 -187q0 -63 45 -104.5t109 -41.5q55 0 102 25t78.5 68t56 95t38 110.5t20 111t6.5 99.5q0 173 -109.5 269.5t-285.5 96.5 q-200 0 -334 -129.5t-134 -328.5q0 -44 12.5 -85t27 -65t27 -45.5t12.5 -30.5q0 -28 -15 -73t-37 -45q-2 0 -17 3q-51 15 -90.5 56t-61 94.5t-32.5 108t-11 106.5z" />
<glyph unicode="&#xf232;" d="M985 562q13 0 97.5 -44t89.5 -53q2 -5 2 -15q0 -33 -17 -76q-16 -39 -71 -65.5t-102 -26.5q-57 0 -190 62q-98 45 -170 118t-148 185q-72 107 -71 194v8q3 91 74 158q24 22 52 22q6 0 18 -1.5t19 -1.5q19 0 26.5 -6.5t15.5 -27.5q8 -20 33 -88t25 -75q0 -21 -34.5 -57.5 t-34.5 -46.5q0 -7 5 -15q34 -73 102 -137q56 -53 151 -101q12 -7 22 -7q15 0 54 48.5t52 48.5zM782 32q127 0 243.5 50t200.5 134t134 200.5t50 243.5t-50 243.5t-134 200.5t-200.5 134t-243.5 50t-243.5 -50t-200.5 -134t-134 -200.5t-50 -243.5q0 -203 120 -368l-79 -233 l242 77q158 -104 345 -104zM782 1414q153 0 292.5 -60t240.5 -161t161 -240.5t60 -292.5t-60 -292.5t-161 -240.5t-240.5 -161t-292.5 -60q-195 0 -365 94l-417 -134l136 405q-108 178 -108 389q0 153 60 292.5t161 240.5t240.5 161t292.5 60z" />
<glyph unicode="&#xf233;" horiz-adv-x="1792" d="M128 128h1024v128h-1024v-128zM128 640h1024v128h-1024v-128zM1696 192q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM128 1152h1024v128h-1024v-128zM1696 704q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1696 1216 q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1792 384v-384h-1792v384h1792zM1792 896v-384h-1792v384h1792zM1792 1408v-384h-1792v384h1792z" />
<glyph unicode="&#xf234;" horiz-adv-x="2048" d="M704 640q-159 0 -271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5zM1664 512h352q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-352q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5 t-9.5 22.5v352h-352q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h352v352q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5v-352zM928 288q0 -52 38 -90t90 -38h256v-238q-68 -50 -171 -50h-874q-121 0 -194 69t-73 190q0 53 3.5 103.5t14 109t26.5 108.5 t43 97.5t62 81t85.5 53.5t111.5 20q19 0 39 -17q79 -61 154.5 -91.5t164.5 -30.5t164.5 30.5t154.5 91.5q20 17 39 17q132 0 217 -96h-223q-52 0 -90 -38t-38 -90v-192z" />
<glyph unicode="&#xf235;" horiz-adv-x="2048" d="M704 640q-159 0 -271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5zM1781 320l249 -249q9 -9 9 -23q0 -13 -9 -22l-136 -136q-9 -9 -22 -9q-14 0 -23 9l-249 249l-249 -249q-9 -9 -23 -9q-13 0 -22 9l-136 136 q-9 9 -9 22q0 14 9 23l249 249l-249 249q-9 9 -9 23q0 13 9 22l136 136q9 9 22 9q14 0 23 -9l249 -249l249 249q9 9 23 9q13 0 22 -9l136 -136q9 -9 9 -22q0 -14 -9 -23zM1283 320l-181 -181q-37 -37 -37 -91q0 -53 37 -90l83 -83q-21 -3 -44 -3h-874q-121 0 -194 69 t-73 190q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q19 0 39 -17q154 -122 319 -122t319 122q20 17 39 17q28 0 57 -6q-28 -27 -41 -50t-13 -56q0 -54 37 -91z" />
<glyph unicode="&#xf236;" horiz-adv-x="2048" d="M256 512h1728q26 0 45 -19t19 -45v-448h-256v256h-1536v-256h-256v1216q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-704zM832 832q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM2048 576v64q0 159 -112.5 271.5t-271.5 112.5h-704 q-26 0 -45 -19t-19 -45v-384h1152z" />
<glyph unicode="&#xf237;" d="M1536 1536l-192 -448h192v-192h-274l-55 -128h329v-192h-411l-357 -832l-357 832h-411v192h329l-55 128h-274v192h192l-192 448h256l323 -768h378l323 768h256zM768 320l108 256h-216z" />
<glyph unicode="&#xf238;" d="M1088 1536q185 0 316.5 -93.5t131.5 -226.5v-896q0 -130 -125.5 -222t-305.5 -97l213 -202q16 -15 8 -35t-30 -20h-1056q-22 0 -30 20t8 35l213 202q-180 5 -305.5 97t-125.5 222v896q0 133 131.5 226.5t316.5 93.5h640zM768 192q80 0 136 56t56 136t-56 136t-136 56 t-136 -56t-56 -136t56 -136t136 -56zM1344 768v512h-1152v-512h1152z" />
<glyph unicode="&#xf239;" d="M1088 1536q185 0 316.5 -93.5t131.5 -226.5v-896q0 -130 -125.5 -222t-305.5 -97l213 -202q16 -15 8 -35t-30 -20h-1056q-22 0 -30 20t8 35l213 202q-180 5 -305.5 97t-125.5 222v896q0 133 131.5 226.5t316.5 93.5h640zM288 224q66 0 113 47t47 113t-47 113t-113 47 t-113 -47t-47 -113t47 -113t113 -47zM704 768v512h-544v-512h544zM1248 224q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47zM1408 768v512h-576v-512h576z" />
<glyph unicode="&#xf23a;" horiz-adv-x="1792" d="M597 1115v-1173q0 -25 -12.5 -42.5t-36.5 -17.5q-17 0 -33 8l-465 233q-21 10 -35.5 33.5t-14.5 46.5v1140q0 20 10 34t29 14q14 0 44 -15l511 -256q3 -3 3 -5zM661 1014l534 -866l-534 266v600zM1792 996v-1054q0 -25 -14 -40.5t-38 -15.5t-47 13l-441 220zM1789 1116 q0 -3 -256.5 -419.5t-300.5 -487.5l-390 634l324 527q17 28 52 28q14 0 26 -6l541 -270q4 -2 4 -6z" />
<glyph unicode="&#xf23b;" d="M809 532l266 499h-112l-157 -312q-24 -48 -44 -92l-42 92l-155 312h-120l263 -493v-324h101v318zM1536 1408v-1536h-1536v1536h1536z" />
<glyph unicode="&#xf23c;" horiz-adv-x="2296" d="M478 -139q-8 -16 -27 -34.5t-37 -25.5q-25 -9 -51.5 3.5t-28.5 31.5q-1 22 40 55t68 38q23 4 34 -21.5t2 -46.5zM1819 -139q7 -16 26 -34.5t38 -25.5q25 -9 51.5 3.5t27.5 31.5q2 22 -39.5 55t-68.5 38q-22 4 -33 -21.5t-2 -46.5zM1867 -30q13 -27 56.5 -59.5t77.5 -41.5 q45 -13 82 4.5t37 50.5q0 46 -67.5 100.5t-115.5 59.5q-40 5 -63.5 -37.5t-6.5 -76.5zM428 -30q-13 -27 -56 -59.5t-77 -41.5q-45 -13 -82 4.5t-37 50.5q0 46 67.5 100.5t115.5 59.5q40 5 63 -37.5t6 -76.5zM1158 1094h1q-41 0 -76 -15q27 -8 44 -30.5t17 -49.5 q0 -35 -27 -60t-65 -25q-52 0 -80 43q-5 -23 -5 -42q0 -74 56 -126.5t135 -52.5q80 0 136 52.5t56 126.5t-56 126.5t-136 52.5zM1462 1312q-99 109 -220.5 131.5t-245.5 -44.5q27 60 82.5 96.5t118 39.5t121.5 -17t99.5 -74.5t44.5 -131.5zM2212 73q8 -11 -11 -42 q7 -23 7 -40q1 -56 -44.5 -112.5t-109.5 -91.5t-118 -37q-48 -2 -92 21.5t-66 65.5q-687 -25 -1259 0q-23 -41 -66.5 -65t-92.5 -22q-86 3 -179.5 80.5t-92.5 160.5q2 22 7 40q-19 31 -11 42q6 10 31 1q14 22 41 51q-7 29 2 38q11 10 39 -4q29 20 59 34q0 29 13 37 q23 12 51 -16q35 5 61 -2q18 -4 38 -19v73q-11 0 -18 2q-53 10 -97 44.5t-55 87.5q-9 38 0 81q15 62 93 95q2 17 19 35.5t36 23.5t33 -7.5t19 -30.5h13q46 -5 60 -23q3 -3 5 -7q10 1 30.5 3.5t30.5 3.5q-15 11 -30 17q-23 40 -91 43q0 6 1 10q-62 2 -118.5 18.5t-84.5 47.5 q-32 36 -42.5 92t-2.5 112q16 126 90 179q23 16 52 4.5t32 -40.5q0 -1 1.5 -14t2.5 -21t3 -20t5.5 -19t8.5 -10q27 -14 76 -12q48 46 98 74q-40 4 -162 -14l47 46q61 58 163 111q145 73 282 86q-20 8 -41 15.5t-47 14t-42.5 10.5t-47.5 11t-43 10q595 126 904 -139 q98 -84 158 -222q85 -10 121 9h1q5 3 8.5 10t5.5 19t3 19.5t3 21.5l1 14q3 28 32 40t52 -5q73 -52 91 -178q7 -57 -3.5 -113t-42.5 -91q-28 -32 -83.5 -48.5t-115.5 -18.5v-10q-71 -2 -95 -43q-14 -5 -31 -17q11 -1 32 -3.5t30 -3.5q1 4 5 8q16 18 60 23h13q5 18 19 30t33 8 t36 -23t19 -36q79 -32 93 -95q9 -40 1 -81q-12 -53 -56 -88t-97 -44q-10 -2 -17 -2q0 -49 -1 -73q20 15 38 19q26 7 61 2q28 28 51 16q14 -9 14 -37q33 -16 59 -34q27 13 38 4q10 -10 2 -38q28 -30 41 -51q23 8 31 -1zM1937 1025q0 -29 -9 -54q82 -32 112 -132 q4 37 -9.5 98.5t-41.5 90.5q-20 19 -36 17t-16 -20zM1859 925q35 -42 47.5 -108.5t-0.5 -124.5q67 13 97 45q13 14 18 28q-3 64 -31 114.5t-79 66.5q-15 -15 -52 -21zM1822 921q-30 0 -44 1q42 -115 53 -239q21 0 43 3q16 68 1 135t-53 100zM258 839q30 100 112 132 q-9 25 -9 54q0 18 -16.5 20t-35.5 -17q-28 -29 -41.5 -90.5t-9.5 -98.5zM294 737q29 -31 97 -45q-13 58 -0.5 124.5t47.5 108.5v0q-37 6 -52 21q-51 -16 -78.5 -66t-31.5 -115q9 -17 18 -28zM471 683q14 124 73 235q-19 -4 -55 -18l-45 -19v1q-46 -89 -20 -196q25 -3 47 -3z M1434 644q8 -38 16.5 -108.5t11.5 -89.5q3 -18 9.5 -21.5t23.5 4.5q40 20 62 85.5t23 125.5q-24 2 -146 4zM1152 1285q-116 0 -199 -82.5t-83 -198.5q0 -117 83 -199.5t199 -82.5t199 82.5t83 199.5q0 116 -83 198.5t-199 82.5zM1380 646q-106 2 -211 0v1q-1 -27 2.5 -86 t13.5 -66q29 -14 93.5 -14.5t95.5 10.5q9 3 11 39t-0.5 69.5t-4.5 46.5zM1112 447q8 4 9.5 48t-0.5 88t-4 63v1q-212 -3 -214 -3q-4 -20 -7 -62t0 -83t14 -46q34 -15 101 -16t101 10zM718 636q-16 -59 4.5 -118.5t77.5 -84.5q15 -8 24 -5t12 21q3 16 8 90t10 103 q-69 -2 -136 -6zM591 510q3 -23 -34 -36q132 -141 271.5 -240t305.5 -154q172 49 310.5 146t293.5 250q-33 13 -30 34l3 9v1v-1q-17 2 -50 5.5t-48 4.5q-26 -90 -82 -132q-51 -38 -82 1q-5 6 -9 14q-7 13 -17 62q-2 -5 -5 -9t-7.5 -7t-8 -5.5t-9.5 -4l-10 -2.5t-12 -2 l-12 -1.5t-13.5 -1t-13.5 -0.5q-106 -9 -163 11q-4 -17 -10 -26.5t-21 -15t-23 -7t-36 -3.5q-2 0 -3 -0.5t-3 -0.5h-3q-179 -17 -203 40q-2 -63 -56 -54q-47 8 -91 54q-12 13 -20 26q-17 29 -26 65q-58 -6 -87 -10q1 -2 4 -10zM507 -118q3 14 3 30q-17 71 -51 130t-73 70 q-41 12 -101.5 -14.5t-104.5 -80t-39 -107.5q35 -53 100 -93t119 -42q51 -2 94 28t53 79zM510 53q23 -63 27 -119q195 113 392 174q-98 52 -180.5 120t-179.5 165q-6 -4 -29 -13q0 -2 -1 -5t-1 -4q31 -18 22 -37q-12 -23 -56 -34q-10 -13 -29 -24h-1q-2 -83 1 -150 q19 -34 35 -73zM579 -113q532 -21 1145 0q-254 147 -428 196q-76 -35 -156 -57q-8 -3 -16 0q-65 21 -129 49q-208 -60 -416 -188h-1v-1q1 0 1 1zM1763 -67q4 54 28 120q14 38 33 71l-1 -1q3 77 3 153q-15 8 -30 25q-42 9 -56 33q-9 20 22 38q-2 4 -2 9q-16 4 -28 12 q-204 -190 -383 -284q198 -59 414 -176zM2155 -90q5 54 -39 107.5t-104 80t-102 14.5q-38 -11 -72.5 -70.5t-51.5 -129.5q0 -16 3 -30q10 -49 53 -79t94 -28q54 2 119 42t100 93z" />
<glyph unicode="&#xf23d;" horiz-adv-x="2304" d="M1524 -25q0 -68 -48 -116t-116 -48t-116.5 48t-48.5 116t48.5 116.5t116.5 48.5t116 -48.5t48 -116.5zM775 -25q0 -68 -48.5 -116t-116.5 -48t-116 48t-48 116t48 116.5t116 48.5t116.5 -48.5t48.5 -116.5zM0 1469q57 -60 110.5 -104.5t121 -82t136 -63t166 -45.5 t200 -31.5t250 -18.5t304 -9.5t372.5 -2.5q139 0 244.5 -5t181 -16.5t124 -27.5t71 -39.5t24 -51.5t-19.5 -64t-56.5 -76.5t-89.5 -91t-116 -104.5t-139 -119q-185 -157 -286 -247q29 51 76.5 109t94 105.5t94.5 98.5t83 91.5t54 80.5t13 70t-45.5 55.5t-116.5 41t-204 23.5 t-304 5q-168 -2 -314 6t-256 23t-204.5 41t-159.5 51.5t-122.5 62.5t-91.5 66.5t-68 71.5t-50.5 69.5t-40 68t-36.5 59.5z" />
<glyph unicode="&#xf23e;" horiz-adv-x="1792" d="M896 1472q-169 0 -323 -66t-265.5 -177.5t-177.5 -265.5t-66 -323t66 -323t177.5 -265.5t265.5 -177.5t323 -66t323 66t265.5 177.5t177.5 265.5t66 323t-66 323t-177.5 265.5t-265.5 177.5t-323 66zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348 t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM496 704q16 0 16 -16v-480q0 -16 -16 -16h-32q-16 0 -16 16v480q0 16 16 16h32zM896 640q53 0 90.5 -37.5t37.5 -90.5q0 -35 -17.5 -64t-46.5 -46v-114q0 -14 -9 -23 t-23 -9h-64q-14 0 -23 9t-9 23v114q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5zM896 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM544 928v-96 q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v96q0 93 65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5v-96q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v96q0 146 -103 249t-249 103t-249 -103t-103 -249zM1408 192v512q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-512 q0 -26 19 -45t45 -19h896q26 0 45 19t19 45z" />
<glyph unicode="&#xf240;" horiz-adv-x="2304" d="M1920 1024v-768h-1664v768h1664zM2048 448h128v384h-128v288q0 14 -9 23t-23 9h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288zM2304 832v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113 v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160q53 0 90.5 -37.5t37.5 -90.5z" />
<glyph unicode="&#xf241;" horiz-adv-x="2304" d="M256 256v768h1280v-768h-1280zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9 h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" />
<glyph unicode="&#xf242;" horiz-adv-x="2304" d="M256 256v768h896v-768h-896zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9 h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" />
<glyph unicode="&#xf243;" horiz-adv-x="2304" d="M256 256v768h512v-768h-512zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9 h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" />
<glyph unicode="&#xf244;" horiz-adv-x="2304" d="M2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9h-1856q-14 0 -23 -9t-9 -23 v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" />
<glyph unicode="&#xf245;" horiz-adv-x="1280" d="M1133 493q31 -30 14 -69q-17 -40 -59 -40h-382l201 -476q10 -25 0 -49t-34 -35l-177 -75q-25 -10 -49 0t-35 34l-191 452l-312 -312q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v1504q0 42 40 59q12 5 24 5q27 0 45 -19z" />
<glyph unicode="&#xf246;" horiz-adv-x="1024" d="M832 1408q-320 0 -320 -224v-416h128v-128h-128v-544q0 -224 320 -224h64v-128h-64q-272 0 -384 146q-112 -146 -384 -146h-64v128h64q320 0 320 224v544h-128v128h128v416q0 224 -320 224h-64v128h64q272 0 384 -146q112 146 384 146h64v-128h-64z" />
<glyph unicode="&#xf247;" horiz-adv-x="2048" d="M2048 1152h-128v-1024h128v-384h-384v128h-1280v-128h-384v384h128v1024h-128v384h384v-128h1280v128h384v-384zM1792 1408v-128h128v128h-128zM128 1408v-128h128v128h-128zM256 -128v128h-128v-128h128zM1664 0v128h128v1024h-128v128h-1280v-128h-128v-1024h128v-128 h1280zM1920 -128v128h-128v-128h128zM1280 896h384v-768h-896v256h-384v768h896v-256zM512 512h640v512h-640v-512zM1536 256v512h-256v-384h-384v-128h640z" />
<glyph unicode="&#xf248;" horiz-adv-x="2304" d="M2304 768h-128v-640h128v-384h-384v128h-896v-128h-384v384h128v128h-384v-128h-384v384h128v640h-128v384h384v-128h896v128h384v-384h-128v-128h384v128h384v-384zM2048 1024v-128h128v128h-128zM1408 1408v-128h128v128h-128zM128 1408v-128h128v128h-128zM256 256 v128h-128v-128h128zM1536 384h-128v-128h128v128zM384 384h896v128h128v640h-128v128h-896v-128h-128v-640h128v-128zM896 -128v128h-128v-128h128zM2176 -128v128h-128v-128h128zM2048 128v640h-128v128h-384v-384h128v-384h-384v128h-384v-128h128v-128h896v128h128z" />
<glyph unicode="&#xf249;" d="M1024 288v-416h-928q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1344q40 0 68 -28t28 -68v-928h-416q-40 0 -68 -28t-28 -68zM1152 256h381q-15 -82 -65 -132l-184 -184q-50 -50 -132 -65v381z" />
<glyph unicode="&#xf24a;" d="M1400 256h-248v-248q29 10 41 22l185 185q12 12 22 41zM1120 384h288v896h-1280v-1280h896v288q0 40 28 68t68 28zM1536 1312v-1024q0 -40 -20 -88t-48 -76l-184 -184q-28 -28 -76 -48t-88 -20h-1024q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1344q40 0 68 -28t28 -68 z" />
<glyph unicode="&#xf24b;" horiz-adv-x="2304" d="M1951 538q0 -26 -15.5 -44.5t-38.5 -23.5q-8 -2 -18 -2h-153v140h153q10 0 18 -2q23 -5 38.5 -23.5t15.5 -44.5zM1933 751q0 -25 -15 -42t-38 -21q-3 -1 -15 -1h-139v129h139q3 0 8.5 -0.5t6.5 -0.5q23 -4 38 -21.5t15 -42.5zM728 587v308h-228v-308q0 -58 -38 -94.5 t-105 -36.5q-108 0 -229 59v-112q53 -15 121 -23t109 -9l42 -1q328 0 328 217zM1442 403v113q-99 -52 -200 -59q-108 -8 -169 41t-61 142t61 142t169 41q101 -7 200 -58v112q-48 12 -100 19.5t-80 9.5l-28 2q-127 6 -218.5 -14t-140.5 -60t-71 -88t-22 -106t22 -106t71 -88 t140.5 -60t218.5 -14q101 4 208 31zM2176 518q0 54 -43 88.5t-109 39.5v3q57 8 89 41.5t32 79.5q0 55 -41 88t-107 36q-3 0 -12 0.5t-14 0.5h-455v-510h491q74 0 121.5 36.5t47.5 96.5zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90 t90 38h2048q52 0 90 -38t38 -90z" />
<glyph unicode="&#xf24c;" horiz-adv-x="2304" d="M858 295v693q-106 -41 -172 -135.5t-66 -211.5t66 -211.5t172 -134.5zM1362 641q0 117 -66 211.5t-172 135.5v-694q106 41 172 135.5t66 211.5zM1577 641q0 -159 -78.5 -294t-213.5 -213.5t-294 -78.5q-119 0 -227.5 46.5t-187 125t-125 187t-46.5 227.5q0 159 78.5 294 t213.5 213.5t294 78.5t294 -78.5t213.5 -213.5t78.5 -294zM1960 634q0 139 -55.5 261.5t-147.5 205.5t-213.5 131t-252.5 48h-301q-176 0 -323.5 -81t-235 -230t-87.5 -335q0 -171 87 -317.5t236 -231.5t323 -85h301q129 0 251.5 50.5t214.5 135t147.5 202.5t55.5 246z M2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
<glyph unicode="&#xf24d;" horiz-adv-x="1792" d="M1664 -96v1088q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5v-1088q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5t9.5 22.5zM1792 992v-1088q0 -66 -47 -113t-113 -47h-1088q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1088q66 0 113 -47t47 -113 zM1408 1376v-160h-128v160q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5v-1088q0 -13 9.5 -22.5t22.5 -9.5h160v-128h-160q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1088q66 0 113 -47t47 -113z" />
<glyph unicode="&#xf24e;" horiz-adv-x="2304" d="M1728 1088l-384 -704h768zM448 1088l-384 -704h768zM1269 1280q-14 -40 -45.5 -71.5t-71.5 -45.5v-1291h608q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1344q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h608v1291q-40 14 -71.5 45.5t-45.5 71.5h-491q-14 0 -23 9t-9 23v64 q0 14 9 23t23 9h491q21 57 70 92.5t111 35.5t111 -35.5t70 -92.5h491q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-491zM1088 1264q33 0 56.5 23.5t23.5 56.5t-23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5t23.5 -56.5t56.5 -23.5zM2176 384q0 -73 -46.5 -131t-117.5 -91 t-144.5 -49.5t-139.5 -16.5t-139.5 16.5t-144.5 49.5t-117.5 91t-46.5 131q0 11 35 81t92 174.5t107 195.5t102 184t56 100q18 33 56 33t56 -33q4 -7 56 -100t102 -184t107 -195.5t92 -174.5t35 -81zM896 384q0 -73 -46.5 -131t-117.5 -91t-144.5 -49.5t-139.5 -16.5 t-139.5 16.5t-144.5 49.5t-117.5 91t-46.5 131q0 11 35 81t92 174.5t107 195.5t102 184t56 100q18 33 56 33t56 -33q4 -7 56 -100t102 -184t107 -195.5t92 -174.5t35 -81z" />
<glyph unicode="&#xf250;" d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM874 700q77 29 149 92.5t129.5 152.5t92.5 210t35 253h-1024q0 -132 35 -253t92.5 -210t129.5 -152.5t149 -92.5q19 -7 30.5 -23.5t11.5 -36.5t-11.5 -36.5t-30.5 -23.5q-77 -29 -149 -92.5 t-129.5 -152.5t-92.5 -210t-35 -253h1024q0 132 -35 253t-92.5 210t-129.5 152.5t-149 92.5q-19 7 -30.5 23.5t-11.5 36.5t11.5 36.5t30.5 23.5z" />
<glyph unicode="&#xf251;" d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM1280 1408h-1024q0 -66 9 -128h1006q9 61 9 128zM1280 -128q0 130 -34 249.5t-90.5 208t-126.5 152t-146 94.5h-230q-76 -31 -146 -94.5t-126.5 -152t-90.5 -208t-34 -249.5h1024z" />
<glyph unicode="&#xf252;" d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM1280 1408h-1024q0 -206 85 -384h854q85 178 85 384zM1223 192q-54 141 -145.5 241.5t-194.5 142.5h-230q-103 -42 -194.5 -142.5t-145.5 -241.5h910z" />
<glyph unicode="&#xf253;" d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM874 700q77 29 149 92.5t129.5 152.5t92.5 210t35 253h-1024q0 -132 35 -253t92.5 -210t129.5 -152.5t149 -92.5q19 -7 30.5 -23.5t11.5 -36.5t-11.5 -36.5t-30.5 -23.5q-137 -51 -244 -196 h700q-107 145 -244 196q-19 7 -30.5 23.5t-11.5 36.5t11.5 36.5t30.5 23.5z" />
<glyph unicode="&#xf254;" d="M1504 -64q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v128q0 14 9 23t23 9h1472zM130 0q3 55 16 107t30 95t46 87t53.5 76t64.5 69.5t66 60t70.5 55t66.5 47.5t65 43q-43 28 -65 43t-66.5 47.5t-70.5 55t-66 60t-64.5 69.5t-53.5 76t-46 87 t-30 95t-16 107h1276q-3 -55 -16 -107t-30 -95t-46 -87t-53.5 -76t-64.5 -69.5t-66 -60t-70.5 -55t-66.5 -47.5t-65 -43q43 -28 65 -43t66.5 -47.5t70.5 -55t66 -60t64.5 -69.5t53.5 -76t46 -87t30 -95t16 -107h-1276zM1504 1536q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9 h-1472q-14 0 -23 9t-9 23v128q0 14 9 23t23 9h1472z" />
<glyph unicode="&#xf255;" d="M768 1152q-53 0 -90.5 -37.5t-37.5 -90.5v-128h-32v93q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-429l-32 30v172q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-224q0 -47 35 -82l310 -296q39 -39 39 -102q0 -26 19 -45t45 -19h640q26 0 45 19t19 45v25 q0 41 10 77l108 436q10 36 10 77v246q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-32h-32v125q0 40 -25 72.5t-64 40.5q-14 2 -23 2q-46 0 -79 -33t-33 -79v-128h-32v122q0 51 -32.5 89.5t-82.5 43.5q-5 1 -13 1zM768 1280q84 0 149 -50q57 34 123 34q59 0 111 -27 t86 -76q27 7 59 7q100 0 170 -71.5t70 -171.5v-246q0 -51 -13 -108l-109 -436q-6 -24 -6 -71q0 -80 -56 -136t-136 -56h-640q-84 0 -138 58.5t-54 142.5l-308 296q-76 73 -76 175v224q0 99 70.5 169.5t169.5 70.5q11 0 16 -1q6 95 75.5 160t164.5 65q52 0 98 -21 q72 69 174 69z" />
<glyph unicode="&#xf256;" horiz-adv-x="1792" d="M880 1408q-46 0 -79 -33t-33 -79v-656h-32v528q0 46 -33 79t-79 33t-79 -33t-33 -79v-528v-256l-154 205q-38 51 -102 51q-53 0 -90.5 -37.5t-37.5 -90.5q0 -43 26 -77l384 -512q38 -51 102 -51h688q34 0 61 22t34 56l76 405q5 32 5 59v498q0 46 -33 79t-79 33t-79 -33 t-33 -79v-272h-32v528q0 46 -33 79t-79 33t-79 -33t-33 -79v-528h-32v656q0 46 -33 79t-79 33zM880 1536q68 0 125.5 -35.5t88.5 -96.5q19 4 42 4q99 0 169.5 -70.5t70.5 -169.5v-17q105 6 180.5 -64t75.5 -175v-498q0 -40 -8 -83l-76 -404q-14 -79 -76.5 -131t-143.5 -52 h-688q-60 0 -114.5 27.5t-90.5 74.5l-384 512q-51 68 -51 154q0 106 75 181t181 75q78 0 128 -34v434q0 99 70.5 169.5t169.5 70.5q23 0 42 -4q31 61 88.5 96.5t125.5 35.5z" />
<glyph unicode="&#xf257;" horiz-adv-x="1792" d="M1073 -128h-177q-163 0 -226 141q-23 49 -23 102v5q-62 30 -98.5 88.5t-36.5 127.5q0 38 5 48h-261q-106 0 -181 75t-75 181t75 181t181 75h113l-44 17q-74 28 -119.5 93.5t-45.5 145.5q0 106 75 181t181 75q46 0 91 -17l628 -239h401q106 0 181 -75t75 -181v-668 q0 -88 -54 -157.5t-140 -90.5l-339 -85q-92 -23 -186 -23zM1024 583l-155 -71l-163 -74q-30 -14 -48 -41.5t-18 -60.5q0 -46 33 -79t79 -33q26 0 46 10l338 154q-49 10 -80.5 50t-31.5 90v55zM1344 272q0 46 -33 79t-79 33q-26 0 -46 -10l-290 -132q-28 -13 -37 -17 t-30.5 -17t-29.5 -23.5t-16 -29t-8 -40.5q0 -50 31.5 -82t81.5 -32q20 0 38 9l352 160q30 14 48 41.5t18 60.5zM1112 1024l-650 248q-24 8 -46 8q-53 0 -90.5 -37.5t-37.5 -90.5q0 -40 22.5 -73t59.5 -47l526 -200v-64h-640q-53 0 -90.5 -37.5t-37.5 -90.5t37.5 -90.5 t90.5 -37.5h535l233 106v198q0 63 46 106l111 102h-69zM1073 0q82 0 155 19l339 85q43 11 70 45.5t27 78.5v668q0 53 -37.5 90.5t-90.5 37.5h-308l-136 -126q-36 -33 -36 -82v-296q0 -46 33 -77t79 -31t79 35t33 81v208h32v-208q0 -70 -57 -114q52 -8 86.5 -48.5t34.5 -93.5 q0 -42 -23 -78t-61 -53l-310 -141h91z" />
<glyph unicode="&#xf258;" horiz-adv-x="2048" d="M1151 1536q61 0 116 -28t91 -77l572 -781q118 -159 118 -359v-355q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v177l-286 143h-546q-80 0 -136 56t-56 136v32q0 119 84.5 203.5t203.5 84.5h420l42 128h-686q-100 0 -173.5 67.5t-81.5 166.5q-65 79 -65 182v32 q0 80 56 136t136 56h959zM1920 -64v355q0 157 -93 284l-573 781q-39 52 -103 52h-959q-26 0 -45 -19t-19 -45q0 -32 1.5 -49.5t9.5 -40.5t25 -43q10 31 35.5 50t56.5 19h832v-32h-832q-26 0 -45 -19t-19 -45q0 -44 3 -58q8 -44 44 -73t81 -29h640h91q40 0 68 -28t28 -68 q0 -15 -5 -30l-64 -192q-10 -29 -35 -47.5t-56 -18.5h-443q-66 0 -113 -47t-47 -113v-32q0 -26 19 -45t45 -19h561q16 0 29 -7l317 -158q24 -13 38.5 -36t14.5 -50v-197q0 -26 19 -45t45 -19h384q26 0 45 19t19 45z" />
<glyph unicode="&#xf259;" horiz-adv-x="2048" d="M816 1408q-48 0 -79.5 -34t-31.5 -82q0 -14 3 -28l150 -624h-26l-116 482q-9 38 -39.5 62t-69.5 24q-47 0 -79 -34t-32 -81q0 -11 4 -29q3 -13 39 -161t68 -282t32 -138v-227l-307 230q-34 26 -77 26q-52 0 -89.5 -36.5t-37.5 -88.5q0 -67 56 -110l507 -379 q34 -26 76 -26h694q33 0 59 20.5t34 52.5l100 401q8 30 10 88t9 86l116 478q3 12 3 26q0 46 -33 79t-80 33q-38 0 -69 -25.5t-40 -62.5l-99 -408h-26l132 547q3 14 3 28q0 47 -32 80t-80 33q-38 0 -68.5 -24t-39.5 -62l-145 -602h-127l-164 682q-9 38 -39.5 62t-68.5 24z M1461 -256h-694q-85 0 -153 51l-507 380q-50 38 -78.5 94t-28.5 118q0 105 75 179t180 74q25 0 49.5 -5.5t41.5 -11t41 -20.5t35 -23t38.5 -29.5t37.5 -28.5l-123 512q-7 35 -7 59q0 93 60 162t152 79q14 87 80.5 144.5t155.5 57.5q83 0 148 -51.5t85 -132.5l103 -428 l83 348q20 81 85 132.5t148 51.5q87 0 152.5 -54t82.5 -139q93 -10 155 -78t62 -161q0 -30 -7 -57l-116 -477q-5 -22 -5 -67q0 -51 -13 -108l-101 -401q-19 -75 -79.5 -122.5t-137.5 -47.5z" />
<glyph unicode="&#xf25a;" horiz-adv-x="1792" d="M640 1408q-53 0 -90.5 -37.5t-37.5 -90.5v-512v-384l-151 202q-41 54 -107 54q-52 0 -89 -38t-37 -90q0 -43 26 -77l384 -512q38 -51 102 -51h718q22 0 39.5 13.5t22.5 34.5l92 368q24 96 24 194v217q0 41 -28 71t-68 30t-68 -28t-28 -68h-32v61q0 48 -32 81.5t-80 33.5 q-46 0 -79 -33t-33 -79v-64h-32v90q0 55 -37 94.5t-91 39.5q-53 0 -90.5 -37.5t-37.5 -90.5v-96h-32v570q0 55 -37 94.5t-91 39.5zM640 1536q107 0 181.5 -77.5t74.5 -184.5v-220q22 2 32 2q99 0 173 -69q47 21 99 21q113 0 184 -87q27 7 56 7q94 0 159 -67.5t65 -161.5 v-217q0 -116 -28 -225l-92 -368q-16 -64 -68 -104.5t-118 -40.5h-718q-60 0 -114.5 27.5t-90.5 74.5l-384 512q-51 68 -51 154q0 105 74.5 180.5t179.5 75.5q71 0 130 -35v547q0 106 75 181t181 75zM768 128v384h-32v-384h32zM1024 128v384h-32v-384h32zM1280 128v384h-32 v-384h32z" />
<glyph unicode="&#xf25b;" d="M1288 889q60 0 107 -23q141 -63 141 -226v-177q0 -94 -23 -186l-85 -339q-21 -86 -90.5 -140t-157.5 -54h-668q-106 0 -181 75t-75 181v401l-239 628q-17 45 -17 91q0 106 75 181t181 75q80 0 145.5 -45.5t93.5 -119.5l17 -44v113q0 106 75 181t181 75t181 -75t75 -181 v-261q27 5 48 5q69 0 127.5 -36.5t88.5 -98.5zM1072 896q-33 0 -60.5 -18t-41.5 -48l-74 -163l-71 -155h55q50 0 90 -31.5t50 -80.5l154 338q10 20 10 46q0 46 -33 79t-79 33zM1293 761q-22 0 -40.5 -8t-29 -16t-23.5 -29.5t-17 -30.5t-17 -37l-132 -290q-10 -20 -10 -46 q0 -46 33 -79t79 -33q33 0 60.5 18t41.5 48l160 352q9 18 9 38q0 50 -32 81.5t-82 31.5zM128 1120q0 -22 8 -46l248 -650v-69l102 111q43 46 106 46h198l106 233v535q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5v-640h-64l-200 526q-14 37 -47 59.5t-73 22.5 q-53 0 -90.5 -37.5t-37.5 -90.5zM1180 -128q44 0 78.5 27t45.5 70l85 339q19 73 19 155v91l-141 -310q-17 -38 -53 -61t-78 -23q-53 0 -93.5 34.5t-48.5 86.5q-44 -57 -114 -57h-208v32h208q46 0 81 33t35 79t-31 79t-77 33h-296q-49 0 -82 -36l-126 -136v-308 q0 -53 37.5 -90.5t90.5 -37.5h668z" />
<glyph unicode="&#xf25c;" horiz-adv-x="1973" d="M857 992v-117q0 -13 -9.5 -22t-22.5 -9h-298v-812q0 -13 -9 -22.5t-22 -9.5h-135q-13 0 -22.5 9t-9.5 23v812h-297q-13 0 -22.5 9t-9.5 22v117q0 14 9 23t23 9h793q13 0 22.5 -9.5t9.5 -22.5zM1895 995l77 -961q1 -13 -8 -24q-10 -10 -23 -10h-134q-12 0 -21 8.5 t-10 20.5l-46 588l-189 -425q-8 -19 -29 -19h-120q-20 0 -29 19l-188 427l-45 -590q-1 -12 -10 -20.5t-21 -8.5h-135q-13 0 -23 10q-9 10 -9 24l78 961q1 12 10 20.5t21 8.5h142q20 0 29 -19l220 -520q10 -24 20 -51q3 7 9.5 24.5t10.5 26.5l221 520q9 19 29 19h141 q13 0 22 -8.5t10 -20.5z" />
<glyph unicode="&#xf25d;" horiz-adv-x="1792" d="M1042 833q0 88 -60 121q-33 18 -117 18h-123v-281h162q66 0 102 37t36 105zM1094 548l205 -373q8 -17 -1 -31q-8 -16 -27 -16h-152q-20 0 -28 17l-194 365h-155v-350q0 -14 -9 -23t-23 -9h-134q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h294q128 0 190 -24q85 -31 134 -109 t49 -180q0 -92 -42.5 -165.5t-115.5 -109.5q6 -10 9 -16zM896 1376q-150 0 -286 -58.5t-234.5 -157t-157 -234.5t-58.5 -286t58.5 -286t157 -234.5t234.5 -157t286 -58.5t286 58.5t234.5 157t157 234.5t58.5 286t-58.5 286t-157 234.5t-234.5 157t-286 58.5zM1792 640 q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
<glyph unicode="&#xf25e;" horiz-adv-x="1792" d="M605 303q153 0 257 104q14 18 3 36l-45 82q-6 13 -24 17q-16 2 -27 -11l-4 -3q-4 -4 -11.5 -10t-17.5 -13t-23.5 -14.5t-28.5 -13.5t-33.5 -9.5t-37.5 -3.5q-76 0 -125 50t-49 127q0 76 48 125.5t122 49.5q37 0 71.5 -14t50.5 -28l16 -14q11 -11 26 -10q16 2 24 14l53 78 q13 20 -2 39q-3 4 -11 12t-30 23.5t-48.5 28t-67.5 22.5t-86 10q-148 0 -246 -96.5t-98 -240.5q0 -146 97 -241.5t247 -95.5zM1235 303q153 0 257 104q14 18 4 36l-45 82q-8 14 -25 17q-16 2 -27 -11l-4 -3q-4 -4 -11.5 -10t-17.5 -13t-23.5 -14.5t-28.5 -13.5t-33.5 -9.5 t-37.5 -3.5q-76 0 -125 50t-49 127q0 76 48 125.5t122 49.5q37 0 71.5 -14t50.5 -28l16 -14q11 -11 26 -10q16 2 24 14l53 78q13 20 -2 39q-3 4 -11 12t-30 23.5t-48.5 28t-67.5 22.5t-86 10q-147 0 -245.5 -96.5t-98.5 -240.5q0 -146 97 -241.5t247 -95.5zM896 1376 q-150 0 -286 -58.5t-234.5 -157t-157 -234.5t-58.5 -286t58.5 -286t157 -234.5t234.5 -157t286 -58.5t286 58.5t234.5 157t157 234.5t58.5 286t-58.5 286t-157 234.5t-234.5 157t-286 58.5zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191 t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71z" />
<glyph unicode="&#xf260;" horiz-adv-x="2048" d="M736 736l384 -384l-384 -384l-672 672l672 672l168 -168l-96 -96l-72 72l-480 -480l480 -480l193 193l-289 287zM1312 1312l672 -672l-672 -672l-168 168l96 96l72 -72l480 480l-480 480l-193 -193l289 -287l-96 -96l-384 384z" />
<glyph unicode="&#xf261;" horiz-adv-x="1792" d="M717 182l271 271l-279 279l-88 -88l192 -191l-96 -96l-279 279l279 279l40 -40l87 87l-127 128l-454 -454zM1075 190l454 454l-454 454l-271 -271l279 -279l88 88l-192 191l96 96l279 -279l-279 -279l-40 40l-87 -88zM1792 640q0 -182 -71 -348t-191 -286t-286 -191 t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
<glyph unicode="&#xf262;" horiz-adv-x="2304" d="M651 539q0 -39 -27.5 -66.5t-65.5 -27.5q-39 0 -66.5 27.5t-27.5 66.5q0 38 27.5 65.5t66.5 27.5q38 0 65.5 -27.5t27.5 -65.5zM1805 540q0 -39 -27.5 -66.5t-66.5 -27.5t-66.5 27.5t-27.5 66.5t27.5 66t66.5 27t66.5 -27t27.5 -66zM765 539q0 79 -56.5 136t-136.5 57 t-136.5 -56.5t-56.5 -136.5t56.5 -136.5t136.5 -56.5t136.5 56.5t56.5 136.5zM1918 540q0 80 -56.5 136.5t-136.5 56.5q-79 0 -136 -56.5t-57 -136.5t56.5 -136.5t136.5 -56.5t136.5 56.5t56.5 136.5zM850 539q0 -116 -81.5 -197.5t-196.5 -81.5q-116 0 -197.5 82t-81.5 197 t82 196.5t197 81.5t196.5 -81.5t81.5 -196.5zM2004 540q0 -115 -81.5 -196.5t-197.5 -81.5q-115 0 -196.5 81.5t-81.5 196.5t81.5 196.5t196.5 81.5q116 0 197.5 -81.5t81.5 -196.5zM1040 537q0 191 -135.5 326.5t-326.5 135.5q-125 0 -231 -62t-168 -168.5t-62 -231.5 t62 -231.5t168 -168.5t231 -62q191 0 326.5 135.5t135.5 326.5zM1708 1110q-254 111 -556 111q-319 0 -573 -110q117 0 223 -45.5t182.5 -122.5t122 -183t45.5 -223q0 115 43.5 219.5t118 180.5t177.5 123t217 50zM2187 537q0 191 -135 326.5t-326 135.5t-326.5 -135.5 t-135.5 -326.5t135.5 -326.5t326.5 -135.5t326 135.5t135 326.5zM1921 1103h383q-44 -51 -75 -114.5t-40 -114.5q110 -151 110 -337q0 -156 -77 -288t-209 -208.5t-287 -76.5q-133 0 -249 56t-196 155q-47 -56 -129 -179q-11 22 -53.5 82.5t-74.5 97.5 q-80 -99 -196.5 -155.5t-249.5 -56.5q-155 0 -287 76.5t-209 208.5t-77 288q0 186 110 337q-9 51 -40 114.5t-75 114.5h365q149 100 355 156.5t432 56.5q224 0 421 -56t348 -157z" />
<glyph unicode="&#xf263;" horiz-adv-x="1280" d="M640 629q-188 0 -321 133t-133 320q0 188 133 321t321 133t321 -133t133 -321q0 -187 -133 -320t-321 -133zM640 1306q-92 0 -157.5 -65.5t-65.5 -158.5q0 -92 65.5 -157.5t157.5 -65.5t157.5 65.5t65.5 157.5q0 93 -65.5 158.5t-157.5 65.5zM1163 574q13 -27 15 -49.5 t-4.5 -40.5t-26.5 -38.5t-42.5 -37t-61.5 -41.5q-115 -73 -315 -94l73 -72l267 -267q30 -31 30 -74t-30 -73l-12 -13q-31 -30 -74 -30t-74 30q-67 68 -267 268l-267 -268q-31 -30 -74 -30t-73 30l-12 13q-31 30 -31 73t31 74l267 267l72 72q-203 21 -317 94 q-39 25 -61.5 41.5t-42.5 37t-26.5 38.5t-4.5 40.5t15 49.5q10 20 28 35t42 22t56 -2t65 -35q5 -4 15 -11t43 -24.5t69 -30.5t92 -24t113 -11q91 0 174 25.5t120 50.5l38 25q33 26 65 35t56 2t42 -22t28 -35z" />
<glyph unicode="&#xf264;" d="M927 956q0 -66 -46.5 -112.5t-112.5 -46.5t-112.5 46.5t-46.5 112.5t46.5 112.5t112.5 46.5t112.5 -46.5t46.5 -112.5zM1141 593q-10 20 -28 32t-47.5 9.5t-60.5 -27.5q-10 -8 -29 -20t-81 -32t-127 -20t-124 18t-86 36l-27 18q-31 25 -60.5 27.5t-47.5 -9.5t-28 -32 q-22 -45 -2 -74.5t87 -73.5q83 -53 226 -67l-51 -52q-142 -142 -191 -190q-22 -22 -22 -52.5t22 -52.5l9 -9q22 -22 52.5 -22t52.5 22l191 191q114 -115 191 -191q22 -22 52.5 -22t52.5 22l9 9q22 22 22 52.5t-22 52.5l-191 190l-52 52q141 14 225 67q67 44 87 73.5t-2 74.5 zM1092 956q0 134 -95 229t-229 95t-229 -95t-95 -229t95 -229t229 -95t229 95t95 229zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf265;" horiz-adv-x="1720" d="M1565 1408q65 0 110 -45.5t45 -110.5v-519q0 -176 -68 -336t-182.5 -275t-274 -182.5t-334.5 -67.5q-176 0 -335.5 67.5t-274.5 182.5t-183 275t-68 336v519q0 64 46 110t110 46h1409zM861 344q47 0 82 33l404 388q37 35 37 85q0 49 -34.5 83.5t-83.5 34.5q-47 0 -82 -33 l-323 -310l-323 310q-35 33 -81 33q-49 0 -83.5 -34.5t-34.5 -83.5q0 -51 36 -85l405 -388q33 -33 81 -33z" />
<glyph unicode="&#xf266;" horiz-adv-x="2304" d="M1494 -103l-295 695q-25 -49 -158.5 -305.5t-198.5 -389.5q-1 -1 -27.5 -0.5t-26.5 1.5q-82 193 -255.5 587t-259.5 596q-21 50 -66.5 107.5t-103.5 100.5t-102 43q0 5 -0.5 24t-0.5 27h583v-50q-39 -2 -79.5 -16t-66.5 -43t-10 -64q26 -59 216.5 -499t235.5 -540 q31 61 140 266.5t131 247.5q-19 39 -126 281t-136 295q-38 69 -201 71v50l513 -1v-47q-60 -2 -93.5 -25t-12.5 -69q33 -70 87 -189.5t86 -187.5q110 214 173 363q24 55 -10 79.5t-129 26.5q1 7 1 25v24q64 0 170.5 0.5t180 1t92.5 0.5v-49q-62 -2 -119 -33t-90 -81 l-213 -442q13 -33 127.5 -290t121.5 -274l441 1017q-14 38 -49.5 62.5t-65 31.5t-55.5 8v50l460 -4l1 -2l-1 -44q-139 -4 -201 -145q-526 -1216 -559 -1291h-49z" />
<glyph unicode="&#xf267;" horiz-adv-x="1792" d="M949 643q0 -26 -16.5 -45t-41.5 -19q-26 0 -45 16.5t-19 41.5q0 26 17 45t42 19t44 -16.5t19 -41.5zM964 585l350 581q-9 -8 -67.5 -62.5t-125.5 -116.5t-136.5 -127t-117 -110.5t-50.5 -51.5l-349 -580q7 7 67 62t126 116.5t136 127t117 111t50 50.5zM1611 640 q0 -201 -104 -371q-3 2 -17 11t-26.5 16.5t-16.5 7.5q-13 0 -13 -13q0 -10 59 -44q-74 -112 -184.5 -190.5t-241.5 -110.5l-16 67q-1 10 -15 10q-5 0 -8 -5.5t-2 -9.5l16 -68q-72 -15 -146 -15q-199 0 -372 105q1 2 13 20.5t21.5 33.5t9.5 19q0 13 -13 13q-6 0 -17 -14.5 t-22.5 -34.5t-13.5 -23q-113 75 -192 187.5t-110 244.5l69 15q10 3 10 15q0 5 -5.5 8t-10.5 2l-68 -15q-14 72 -14 139q0 206 109 379q2 -1 18.5 -12t30 -19t17.5 -8q13 0 13 12q0 6 -12.5 15.5t-32.5 21.5l-20 12q77 112 189 189t244 107l15 -67q2 -10 15 -10q5 0 8 5.5 t2 10.5l-15 66q71 13 134 13q204 0 379 -109q-39 -56 -39 -65q0 -13 12 -13q11 0 48 64q111 -75 187.5 -186t107.5 -241l-56 -12q-10 -2 -10 -16q0 -5 5.5 -8t9.5 -2l57 13q14 -72 14 -140zM1696 640q0 163 -63.5 311t-170.5 255t-255 170.5t-311 63.5t-311 -63.5 t-255 -170.5t-170.5 -255t-63.5 -311t63.5 -311t170.5 -255t255 -170.5t311 -63.5t311 63.5t255 170.5t170.5 255t63.5 311zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191 t191 -286t71 -348z" />
<glyph unicode="&#xf268;" horiz-adv-x="1792" d="M893 1536q240 2 451 -120q232 -134 352 -372l-742 39q-160 9 -294 -74.5t-185 -229.5l-276 424q128 159 311 245.5t383 87.5zM146 1131l337 -663q72 -143 211 -217t293 -45l-230 -451q-212 33 -385 157.5t-272.5 316t-99.5 411.5q0 267 146 491zM1732 962 q58 -150 59.5 -310.5t-48.5 -306t-153 -272t-246 -209.5q-230 -133 -498 -119l405 623q88 131 82.5 290.5t-106.5 277.5zM896 942q125 0 213.5 -88.5t88.5 -213.5t-88.5 -213.5t-213.5 -88.5t-213.5 88.5t-88.5 213.5t88.5 213.5t213.5 88.5z" />
<glyph unicode="&#xf269;" horiz-adv-x="1792" d="M903 -256q-283 0 -504.5 150.5t-329.5 398.5q-58 131 -67 301t26 332.5t111 312t179 242.5l-11 -281q11 14 68 15.5t70 -15.5q42 81 160.5 138t234.5 59q-54 -45 -119.5 -148.5t-58.5 -163.5q25 -8 62.5 -13.5t63 -7.5t68 -4t50.5 -3q15 -5 9.5 -45.5t-30.5 -75.5 q-5 -7 -16.5 -18.5t-56.5 -35.5t-101 -34l15 -189l-139 67q-18 -43 -7.5 -81.5t36 -66.5t65.5 -41.5t81 -6.5q51 9 98 34.5t83.5 45t73.5 17.5q61 -4 89.5 -33t19.5 -65q-1 -2 -2.5 -5.5t-8.5 -12.5t-18 -15.5t-31.5 -10.5t-46.5 -1q-60 -95 -144.5 -135.5t-209.5 -29.5 q74 -61 162.5 -82.5t168.5 -6t154.5 52t128 87.5t80.5 104q43 91 39 192.5t-37.5 188.5t-78.5 125q87 -38 137 -79.5t77 -112.5q15 170 -57.5 343t-209.5 284q265 -77 412 -279.5t151 -517.5q2 -127 -40.5 -255t-123.5 -238t-189 -196t-247.5 -135.5t-288.5 -49.5z" />
<glyph unicode="&#xf26a;" horiz-adv-x="1792" d="M1493 1308q-165 110 -359 110q-155 0 -293 -73t-240 -200q-75 -93 -119.5 -218t-48.5 -266v-42q4 -141 48.5 -266t119.5 -218q102 -127 240 -200t293 -73q194 0 359 110q-121 -108 -274.5 -168t-322.5 -60q-29 0 -43 1q-175 8 -333 82t-272 193t-181 281t-67 339 q0 182 71 348t191 286t286 191t348 71h3q168 -1 320.5 -60.5t273.5 -167.5zM1792 640q0 -192 -77 -362.5t-213 -296.5q-104 -63 -222 -63q-137 0 -255 84q154 56 253.5 233t99.5 405q0 227 -99 404t-253 234q119 83 254 83q119 0 226 -65q135 -125 210.5 -295t75.5 -361z " />
<glyph unicode="&#xf26b;" horiz-adv-x="1792" d="M1792 599q0 -56 -7 -104h-1151q0 -146 109.5 -244.5t257.5 -98.5q99 0 185.5 46.5t136.5 130.5h423q-56 -159 -170.5 -281t-267.5 -188.5t-321 -66.5q-187 0 -356 83q-228 -116 -394 -116q-237 0 -237 263q0 115 45 275q17 60 109 229q199 360 475 606 q-184 -79 -427 -354q63 274 283.5 449.5t501.5 175.5q30 0 45 -1q255 117 433 117q64 0 116 -13t94.5 -40.5t66.5 -76.5t24 -115q0 -116 -75 -286q101 -182 101 -390zM1722 1239q0 83 -53 132t-137 49q-108 0 -254 -70q121 -47 222.5 -131.5t170.5 -195.5q51 135 51 216z M128 2q0 -86 48.5 -132.5t134.5 -46.5q115 0 266 83q-122 72 -213.5 183t-137.5 245q-98 -205 -98 -332zM632 715h728q-5 142 -113 237t-251 95q-144 0 -251.5 -95t-112.5 -237z" />
<glyph unicode="&#xf26c;" horiz-adv-x="2048" d="M1792 288v960q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5zM1920 1248v-960q0 -66 -47 -113t-113 -47h-736v-128h352q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23 v64q0 14 9 23t23 9h352v128h-736q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
<glyph unicode="&#xf26d;" horiz-adv-x="1792" d="M138 1408h197q-70 -64 -126 -149q-36 -56 -59 -115t-30 -125.5t-8.5 -120t10.5 -132t21 -126t28 -136.5q4 -19 6 -28q51 -238 81 -329q57 -171 152 -275h-272q-48 0 -82 34t-34 82v1304q0 48 34 82t82 34zM1346 1408h308q48 0 82 -34t34 -82v-1304q0 -48 -34 -82t-82 -34 h-178q212 210 196 565l-469 -101q-2 -45 -12 -82t-31 -72t-59.5 -59.5t-93.5 -36.5q-123 -26 -199 40q-32 27 -53 61t-51.5 129t-64.5 258q-35 163 -45.5 263t-5.5 139t23 77q20 41 62.5 73t102.5 45q45 12 83.5 6.5t67 -17t54 -35t43 -48t34.5 -56.5l468 100 q-68 175 -180 287z" />
<glyph unicode="&#xf26e;" d="M1401 -11l-6 -6q-113 -114 -259 -175q-154 -64 -317 -64q-165 0 -317 64q-148 63 -259 175q-113 112 -175 258q-42 103 -54 189q-4 28 48 36q51 8 56 -20q1 -1 1 -4q18 -90 46 -159q50 -124 152 -226q98 -98 226 -152q132 -56 276 -56q143 0 276 56q128 55 225 152l6 6 q10 10 25 6q12 -3 33 -22q36 -37 17 -58zM929 604l-66 -66l63 -63q21 -21 -7 -49q-17 -17 -32 -17q-10 0 -19 10l-62 61l-66 -66q-5 -5 -15 -5q-15 0 -31 16l-2 2q-18 15 -18 29q0 7 8 17l66 65l-66 66q-16 16 14 45q18 18 31 18q6 0 13 -5l65 -66l65 65q18 17 48 -13 q27 -27 11 -44zM1400 547q0 -118 -46 -228q-45 -105 -126 -186q-80 -80 -187 -126t-228 -46t-228 46t-187 126q-82 82 -125 186q-15 32 -15 40h-1q-9 27 43 44q50 16 60 -12q37 -99 97 -167h1v339v2q3 136 102 232q105 103 253 103q147 0 251 -103t104 -249 q0 -147 -104.5 -251t-250.5 -104q-58 0 -112 16q-28 11 -13 61q16 51 44 43l14 -3q14 -3 32.5 -6t30.5 -3q104 0 176 71.5t72 174.5q0 101 -72 171q-71 71 -175 71q-107 0 -178 -80q-64 -72 -64 -160v-413q110 -67 242 -67q96 0 185 36.5t156 103.5t103.5 155t36.5 183 q0 198 -141 339q-140 140 -339 140q-200 0 -340 -140q-53 -53 -77 -87l-2 -2q-8 -11 -13 -15.5t-21.5 -9.5t-38.5 3q-21 5 -36.5 16.5t-15.5 26.5v680q0 15 10.5 26.5t27.5 11.5h877q30 0 30 -55t-30 -55h-811v-483h1q40 42 102 84t108 61q109 46 231 46q121 0 228 -46 t187 -126q81 -81 126 -186q46 -112 46 -229zM1369 1128q9 -8 9 -18t-5.5 -18t-16.5 -21q-26 -26 -39 -26q-9 0 -16 7q-106 91 -207 133q-128 56 -276 56q-133 0 -262 -49q-27 -10 -45 37q-9 25 -8 38q3 16 16 20q130 57 299 57q164 0 316 -64q137 -58 235 -152z" />
<glyph unicode="&#xf270;" horiz-adv-x="1792" d="M1551 60q15 6 26 3t11 -17.5t-15 -33.5q-13 -16 -44 -43.5t-95.5 -68t-141 -74t-188 -58t-229.5 -24.5q-119 0 -238 31t-209 76.5t-172.5 104t-132.5 105t-84 87.5q-8 9 -10 16.5t1 12t8 7t11.5 2t11.5 -4.5q192 -117 300 -166q389 -176 799 -90q190 40 391 135z M1758 175q11 -16 2.5 -69.5t-28.5 -102.5q-34 -83 -85 -124q-17 -14 -26 -9t0 24q21 45 44.5 121.5t6.5 98.5q-5 7 -15.5 11.5t-27 6t-29.5 2.5t-35 0t-31.5 -2t-31 -3t-22.5 -2q-6 -1 -13 -1.5t-11 -1t-8.5 -1t-7 -0.5h-5.5h-4.5t-3 0.5t-2 1.5l-1.5 3q-6 16 47 40t103 30 q46 7 108 1t76 -24zM1364 618q0 -31 13.5 -64t32 -58t37.5 -46t33 -32l13 -11l-227 -224q-40 37 -79 75.5t-58 58.5l-19 20q-11 11 -25 33q-38 -59 -97.5 -102.5t-127.5 -63.5t-140 -23t-137.5 21t-117.5 65.5t-83 113t-31 162.5q0 84 28 154t72 116.5t106.5 83t122.5 57 t130 34.5t119.5 18.5t99.5 6.5v127q0 65 -21 97q-34 53 -121 53q-6 0 -16.5 -1t-40.5 -12t-56 -29.5t-56 -59.5t-48 -96l-294 27q0 60 22 119t67 113t108 95t151.5 65.5t190.5 24.5q100 0 181 -25t129.5 -61.5t81 -83t45 -86t12.5 -73.5v-589zM692 597q0 -86 70 -133 q66 -44 139 -22q84 25 114 123q14 45 14 101v162q-59 -2 -111 -12t-106.5 -33.5t-87 -71t-32.5 -114.5z" />
<glyph unicode="&#xf271;" horiz-adv-x="1792" d="M1536 1280q52 0 90 -38t38 -90v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128zM1152 1376v-288q0 -14 9 -23t23 -9 h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM384 1376v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM1536 -128v1024h-1408v-1024h1408zM896 448h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224 v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v224q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-224z" />
<glyph unicode="&#xf272;" horiz-adv-x="1792" d="M1152 416v-64q0 -14 -9 -23t-23 -9h-576q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h576q14 0 23 -9t9 -23zM128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23 t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47 t47 -113v-96h128q52 0 90 -38t38 -90z" />
<glyph unicode="&#xf273;" horiz-adv-x="1792" d="M1111 151l-46 -46q-9 -9 -22 -9t-23 9l-188 189l-188 -189q-10 -9 -23 -9t-22 9l-46 46q-9 9 -9 22t9 23l189 188l-189 188q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l188 -188l188 188q10 9 23 9t22 -9l46 -46q9 -9 9 -22t-9 -23l-188 -188l188 -188q9 -10 9 -23t-9 -22z M128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280 q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
<glyph unicode="&#xf274;" horiz-adv-x="1792" d="M1303 572l-512 -512q-10 -9 -23 -9t-23 9l-288 288q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l220 -220l444 444q10 9 23 9t22 -9l46 -46q9 -9 9 -22t-9 -23zM128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23 t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47 t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
<glyph unicode="&#xf275;" horiz-adv-x="1792" d="M448 1536q26 0 45 -19t19 -45v-891l536 429q17 14 40 14q26 0 45 -19t19 -45v-379l536 429q17 14 40 14q26 0 45 -19t19 -45v-1152q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h384z" />
<glyph unicode="&#xf276;" horiz-adv-x="1024" d="M512 448q66 0 128 15v-655q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v655q61 -15 128 -15zM512 1536q212 0 362 -150t150 -362t-150 -362t-362 -150t-362 150t-150 362t150 362t362 150zM512 1312q14 0 23 9t9 23t-9 23t-23 9q-146 0 -249 -103t-103 -249 q0 -14 9 -23t23 -9t23 9t9 23q0 119 84.5 203.5t203.5 84.5z" />
<glyph unicode="&#xf277;" horiz-adv-x="1792" d="M1745 1239q10 -10 10 -23t-10 -23l-141 -141q-28 -28 -68 -28h-1344q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h576v64q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-64h512q40 0 68 -28zM768 320h256v-512q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v512zM1600 768 q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1344q-40 0 -68 28l-141 141q-10 10 -10 23t10 23l141 141q28 28 68 28h512v192h256v-192h576z" />
<glyph unicode="&#xf278;" horiz-adv-x="2048" d="M2020 1525q28 -20 28 -53v-1408q0 -20 -11 -36t-29 -23l-640 -256q-24 -11 -48 0l-616 246l-616 -246q-10 -5 -24 -5q-19 0 -36 11q-28 20 -28 53v1408q0 20 11 36t29 23l640 256q24 11 48 0l616 -246l616 246q32 13 60 -6zM736 1390v-1270l576 -230v1270zM128 1173 v-1270l544 217v1270zM1920 107v1270l-544 -217v-1270z" />
<glyph unicode="&#xf279;" horiz-adv-x="1792" d="M512 1536q13 0 22.5 -9.5t9.5 -22.5v-1472q0 -20 -17 -28l-480 -256q-7 -4 -15 -4q-13 0 -22.5 9.5t-9.5 22.5v1472q0 20 17 28l480 256q7 4 15 4zM1760 1536q13 0 22.5 -9.5t9.5 -22.5v-1472q0 -20 -17 -28l-480 -256q-7 -4 -15 -4q-13 0 -22.5 9.5t-9.5 22.5v1472 q0 20 17 28l480 256q7 4 15 4zM640 1536q8 0 14 -3l512 -256q18 -10 18 -29v-1472q0 -13 -9.5 -22.5t-22.5 -9.5q-8 0 -14 3l-512 256q-18 10 -18 29v1472q0 13 9.5 22.5t22.5 9.5z" />
<glyph unicode="&#xf27a;" horiz-adv-x="1792" d="M640 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1408 640q0 53 -37.5 90.5t-90.5 37.5 t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-110 0 -211 18q-173 -173 -435 -229q-52 -10 -86 -13q-12 -1 -22 6t-13 18q-4 15 20 37q5 5 23.5 21.5t25.5 23.5t23.5 25.5t24 31.5t20.5 37 t20 48t14.5 57.5t12.5 72.5q-146 90 -229.5 216.5t-83.5 269.5q0 174 120 321.5t326 233t450 85.5t450 -85.5t326 -233t120 -321.5z" />
<glyph unicode="&#xf27b;" horiz-adv-x="1792" d="M640 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1024 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 -53 -37.5 -90.5t-90.5 -37.5 t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM896 1152q-204 0 -381.5 -69.5t-282 -187.5t-104.5 -255q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5 t104.5 255t-104.5 255t-282 187.5t-381.5 69.5zM1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51 t27 59t26 76q-157 89 -247.5 220t-90.5 281q0 130 71 248.5t191 204.5t286 136.5t348 50.5t348 -50.5t286 -136.5t191 -204.5t71 -248.5z" />
<glyph unicode="&#xf27c;" horiz-adv-x="1024" d="M512 345l512 295v-591l-512 -296v592zM0 640v-591l512 296zM512 1527v-591l-512 -296v591zM512 936l512 295v-591z" />
<glyph unicode="&#xf27d;" horiz-adv-x="1792" d="M1709 1018q-10 -236 -332 -651q-333 -431 -562 -431q-142 0 -240 263q-44 160 -132 482q-72 262 -157 262q-18 0 -127 -76l-77 98q24 21 108 96.5t130 115.5q156 138 241 146q95 9 153 -55.5t81 -203.5q44 -287 66 -373q55 -249 120 -249q51 0 154 161q101 161 109 246 q13 139 -109 139q-57 0 -121 -26q120 393 459 382q251 -8 236 -326z" />
<glyph unicode="&#xf27e;" d="M0 1408h1536v-1536h-1536v1536zM1085 293l-221 631l221 297h-634l221 -297l-221 -631l317 -304z" />
<glyph unicode="&#xf280;" d="M0 1408h1536v-1536h-1536v1536zM908 1088l-12 -33l75 -83l-31 -114l25 -25l107 57l107 -57l25 25l-31 114l75 83l-12 33h-95l-53 96h-32l-53 -96h-95zM641 925q32 0 44.5 -16t11.5 -63l174 21q0 55 -17.5 92.5t-50.5 56t-69 25.5t-85 7q-133 0 -199 -57.5t-66 -182.5v-72 h-96v-128h76q20 0 20 -8v-382q0 -14 -5 -20t-18 -7l-73 -7v-88h448v86l-149 14q-6 1 -8.5 1.5t-3.5 2.5t-0.5 4t1 7t0.5 10v387h191l38 128h-231q-6 0 -2 6t4 9v80q0 27 1.5 40.5t7.5 28t19.5 20t36.5 5.5zM1248 96v86l-54 9q-7 1 -9.5 2.5t-2.5 3t1 7.5t1 12v520h-275 l-23 -101l83 -22q23 -7 23 -27v-370q0 -14 -6 -18.5t-20 -6.5l-70 -9v-86h352z" />
<glyph unicode="&#xf281;" horiz-adv-x="1792" d="M1792 690q0 -58 -29.5 -105.5t-79.5 -72.5q12 -46 12 -96q0 -155 -106.5 -287t-290.5 -208.5t-400 -76.5t-399.5 76.5t-290 208.5t-106.5 287q0 47 11 94q-51 25 -82 73.5t-31 106.5q0 82 58 140.5t141 58.5q85 0 145 -63q218 152 515 162l116 521q3 13 15 21t26 5 l369 -81q18 37 54 59.5t79 22.5q62 0 106 -43.5t44 -105.5t-44 -106t-106 -44t-105.5 43.5t-43.5 105.5l-334 74l-104 -472q300 -9 519 -160q58 61 143 61q83 0 141 -58.5t58 -140.5zM418 491q0 -62 43.5 -106t105.5 -44t106 44t44 106t-44 105.5t-106 43.5q-61 0 -105 -44 t-44 -105zM1228 136q11 11 11 26t-11 26q-10 10 -25 10t-26 -10q-41 -42 -121 -62t-160 -20t-160 20t-121 62q-11 10 -26 10t-25 -10q-11 -10 -11 -25.5t11 -26.5q43 -43 118.5 -68t122.5 -29.5t91 -4.5t91 4.5t122.5 29.5t118.5 68zM1225 341q62 0 105.5 44t43.5 106 q0 61 -44 105t-105 44q-62 0 -106 -43.5t-44 -105.5t44 -106t106 -44z" />
<glyph unicode="&#xf282;" horiz-adv-x="1792" d="M69 741h1q16 126 58.5 241.5t115 217t167.5 176t223.5 117.5t276.5 43q231 0 414 -105.5t294 -303.5q104 -187 104 -442v-188h-1125q1 -111 53.5 -192.5t136.5 -122.5t189.5 -57t213 -3t208 46.5t173.5 84.5v-377q-92 -55 -229.5 -92t-312.5 -38t-316 53 q-189 73 -311.5 249t-124.5 372q-3 242 111 412t325 268q-48 -60 -78 -125.5t-46 -159.5h635q8 77 -8 140t-47 101.5t-70.5 66.5t-80.5 41t-75 20.5t-56 8.5l-22 1q-135 -5 -259.5 -44.5t-223.5 -104.5t-176 -140.5t-138 -163.5z" />
<glyph unicode="&#xf283;" horiz-adv-x="2304" d="M0 32v608h2304v-608q0 -66 -47 -113t-113 -47h-1984q-66 0 -113 47t-47 113zM640 256v-128h384v128h-384zM256 256v-128h256v128h-256zM2144 1408q66 0 113 -47t47 -113v-224h-2304v224q0 66 47 113t113 47h1984z" />
<glyph unicode="&#xf284;" horiz-adv-x="1792" d="M1549 857q55 0 85.5 -28.5t30.5 -83.5t-34 -82t-91 -27h-136v-177h-25v398h170zM1710 267l-4 -11l-5 -10q-113 -230 -330.5 -366t-474.5 -136q-182 0 -348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71q244 0 454.5 -124t329.5 -338l2 -4l8 -16 q-30 -15 -136.5 -68.5t-163.5 -84.5q-6 -3 -479 -268q384 -183 799 -366zM896 -234q250 0 462.5 132.5t322.5 357.5l-287 129q-72 -140 -206 -222t-292 -82q-151 0 -280 75t-204 204t-75 280t75 280t204 204t280 75t280 -73.5t204 -204.5l280 143q-116 208 -321 329 t-443 121q-119 0 -232.5 -31.5t-209 -87.5t-176.5 -137t-137 -176.5t-87.5 -209t-31.5 -232.5t31.5 -232.5t87.5 -209t137 -176.5t176.5 -137t209 -87.5t232.5 -31.5z" />
<glyph unicode="&#xf285;" horiz-adv-x="1792" d="M1427 827l-614 386l92 151h855zM405 562l-184 116v858l1183 -743zM1424 697l147 -95v-858l-532 335zM1387 718l-500 -802h-855l356 571z" />
<glyph unicode="&#xf286;" horiz-adv-x="1792" d="M640 528v224q0 16 -16 16h-96q-16 0 -16 -16v-224q0 -16 16 -16h96q16 0 16 16zM1152 528v224q0 16 -16 16h-96q-16 0 -16 -16v-224q0 -16 16 -16h96q16 0 16 16zM1664 496v-752h-640v320q0 80 -56 136t-136 56t-136 -56t-56 -136v-320h-640v752q0 16 16 16h96 q16 0 16 -16v-112h128v624q0 16 16 16h96q16 0 16 -16v-112h128v112q0 16 16 16h96q16 0 16 -16v-112h128v112q0 6 2.5 9.5t8.5 5t9.5 2t11.5 0t9 -0.5v391q-32 15 -32 50q0 23 16.5 39t38.5 16t38.5 -16t16.5 -39q0 -35 -32 -50v-17q45 10 83 10q21 0 59.5 -7.5t54.5 -7.5 q17 0 47 7.5t37 7.5q16 0 16 -16v-210q0 -15 -35 -21.5t-62 -6.5q-18 0 -54.5 7.5t-55.5 7.5q-40 0 -90 -12v-133q1 0 9 0.5t11.5 0t9.5 -2t8.5 -5t2.5 -9.5v-112h128v112q0 16 16 16h96q16 0 16 -16v-112h128v112q0 16 16 16h96q16 0 16 -16v-624h128v112q0 16 16 16h96 q16 0 16 -16z" />
<glyph unicode="&#xf287;" horiz-adv-x="2304" d="M2288 731q16 -8 16 -27t-16 -27l-320 -192q-8 -5 -16 -5q-9 0 -16 4q-16 10 -16 28v128h-858q37 -58 83 -165q16 -37 24.5 -55t24 -49t27 -47t27 -34t31.5 -26t33 -8h96v96q0 14 9 23t23 9h320q14 0 23 -9t9 -23v-320q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v96h-96 q-32 0 -61 10t-51 23.5t-45 40.5t-37 46t-33.5 57t-28.5 57.5t-28 60.5q-23 53 -37 81.5t-36 65t-44.5 53.5t-46.5 17h-360q-22 -84 -91 -138t-157 -54q-106 0 -181 75t-75 181t75 181t181 75q88 0 157 -54t91 -138h104q24 0 46.5 17t44.5 53.5t36 65t37 81.5q19 41 28 60.5 t28.5 57.5t33.5 57t37 46t45 40.5t51 23.5t61 10h107q21 57 70 92.5t111 35.5q80 0 136 -56t56 -136t-56 -136t-136 -56q-62 0 -111 35.5t-70 92.5h-107q-17 0 -33 -8t-31.5 -26t-27 -34t-27 -47t-24 -49t-24.5 -55q-46 -107 -83 -165h1114v128q0 18 16 28t32 -1z" />
<glyph unicode="&#xf288;" horiz-adv-x="1792" d="M1150 774q0 -56 -39.5 -95t-95.5 -39h-253v269h253q56 0 95.5 -39.5t39.5 -95.5zM1329 774q0 130 -91.5 222t-222.5 92h-433v-896h180v269h253q130 0 222 91.5t92 221.5zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348 t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
<glyph unicode="&#xf289;" horiz-adv-x="2304" d="M1645 438q0 59 -34 106.5t-87 68.5q-7 -45 -23 -92q-7 -24 -27.5 -38t-44.5 -14q-12 0 -24 3q-31 10 -45 38.5t-4 58.5q23 71 23 143q0 123 -61 227.5t-166 165.5t-228 61q-134 0 -247 -73t-167 -194q108 -28 188 -106q22 -23 22 -55t-22 -54t-54 -22t-55 22 q-75 75 -180 75q-106 0 -181 -74.5t-75 -180.5t75 -180.5t181 -74.5h1046q79 0 134.5 55.5t55.5 133.5zM1798 438q0 -142 -100.5 -242t-242.5 -100h-1046q-169 0 -289 119.5t-120 288.5q0 153 100 267t249 136q62 184 221 298t354 114q235 0 408.5 -158.5t196.5 -389.5 q116 -25 192.5 -118.5t76.5 -214.5zM2048 438q0 -175 -97 -319q-23 -33 -64 -33q-24 0 -43 13q-26 17 -32 48.5t12 57.5q71 104 71 233t-71 233q-18 26 -12 57t32 49t57.5 11.5t49.5 -32.5q97 -142 97 -318zM2304 438q0 -244 -134 -443q-23 -34 -64 -34q-23 0 -42 13 q-26 18 -32.5 49t11.5 57q108 164 108 358q0 195 -108 357q-18 26 -11.5 57.5t32.5 48.5q26 18 57 12t49 -33q134 -198 134 -442z" />
<glyph unicode="&#xf28a;" d="M1500 -13q0 -89 -63 -152.5t-153 -63.5t-153.5 63.5t-63.5 152.5q0 90 63.5 153.5t153.5 63.5t153 -63.5t63 -153.5zM1267 268q-115 -15 -192.5 -102.5t-77.5 -205.5q0 -74 33 -138q-146 -78 -379 -78q-109 0 -201 21t-153.5 54.5t-110.5 76.5t-76 85t-44.5 83 t-23.5 66.5t-6 39.5q0 19 4.5 42.5t18.5 56t36.5 58t64 43.5t94.5 18t94 -17.5t63 -41t35.5 -53t17.5 -49t4 -33.5q0 -34 -23 -81q28 -27 82 -42t93 -17l40 -1q115 0 190 51t75 133q0 26 -9 48.5t-31.5 44.5t-49.5 41t-74 44t-93.5 47.5t-119.5 56.5q-28 13 -43 20 q-116 55 -187 100t-122.5 102t-72 125.5t-20.5 162.5q0 78 20.5 150t66 137.5t112.5 114t166.5 77t221.5 28.5q120 0 220 -26t164.5 -67t109.5 -94t64 -105.5t19 -103.5q0 -46 -15 -82.5t-36.5 -58t-48.5 -36t-49 -19.5t-39 -5h-8h-32t-39 5t-44 14t-41 28t-37 46t-24 70.5 t-10 97.5q-15 16 -59 25.5t-81 10.5l-37 1q-68 0 -117.5 -31t-70.5 -70t-21 -76q0 -24 5 -43t24 -46t53 -51t97 -53.5t150 -58.5q76 -25 138.5 -53.5t109 -55.5t83 -59t60.5 -59.5t41 -62.5t26.5 -62t14.5 -63.5t6 -62t1 -62.5z" />
<glyph unicode="&#xf28b;" d="M704 352v576q0 14 -9 23t-23 9h-256q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h256q14 0 23 9t9 23zM1152 352v576q0 14 -9 23t-23 9h-256q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h256q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103 t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf28c;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM768 96q148 0 273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273 t73 -273t198 -198t273 -73zM864 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-192zM480 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-192z" />
<glyph unicode="&#xf28d;" d="M1088 352v576q0 14 -9 23t-23 9h-576q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h576q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5 t103 -385.5z" />
<glyph unicode="&#xf28e;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM768 96q148 0 273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273 t73 -273t198 -198t273 -73zM480 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h576q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-576z" />
<glyph unicode="&#xf290;" horiz-adv-x="1792" d="M1757 128l35 -313q3 -28 -16 -50q-19 -21 -48 -21h-1664q-29 0 -48 21q-19 22 -16 50l35 313h1722zM1664 967l86 -775h-1708l86 775q3 24 21 40.5t43 16.5h256v-128q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5v128h384v-128q0 -53 37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5v128h256q25 0 43 -16.5t21 -40.5zM1280 1152v-256q0 -26 -19 -45t-45 -19t-45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-256q0 -26 -19 -45t-45 -19t-45 19t-19 45v256q0 159 112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" />
<glyph unicode="&#xf291;" horiz-adv-x="2048" d="M1920 768q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5h-15l-115 -662q-8 -46 -44 -76t-82 -30h-1280q-46 0 -82 30t-44 76l-115 662h-15q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5h1792zM485 -32q26 2 43.5 22.5t15.5 46.5l-32 416q-2 26 -22.5 43.5 t-46.5 15.5t-43.5 -22.5t-15.5 -46.5l32 -416q2 -25 20.5 -42t43.5 -17h5zM896 32v416q0 26 -19 45t-45 19t-45 -19t-19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45zM1280 32v416q0 26 -19 45t-45 19t-45 -19t-19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45zM1632 27l32 416 q2 26 -15.5 46.5t-43.5 22.5t-46.5 -15.5t-22.5 -43.5l-32 -416q-2 -26 15.5 -46.5t43.5 -22.5h5q25 0 43.5 17t20.5 42zM476 1244l-93 -412h-132l101 441q19 88 89 143.5t160 55.5h167q0 26 19 45t45 19h384q26 0 45 -19t19 -45h167q90 0 160 -55.5t89 -143.5l101 -441 h-132l-93 412q-11 44 -45.5 72t-79.5 28h-167q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45h-167q-45 0 -79.5 -28t-45.5 -72z" />
<glyph unicode="&#xf292;" horiz-adv-x="1792" d="M991 512l64 256h-254l-64 -256h254zM1759 1016l-56 -224q-7 -24 -31 -24h-327l-64 -256h311q15 0 25 -12q10 -14 6 -28l-56 -224q-5 -24 -31 -24h-327l-81 -328q-7 -24 -31 -24h-224q-16 0 -26 12q-9 12 -6 28l78 312h-254l-81 -328q-7 -24 -31 -24h-225q-15 0 -25 12 q-9 12 -6 28l78 312h-311q-15 0 -25 12q-9 12 -6 28l56 224q7 24 31 24h327l64 256h-311q-15 0 -25 12q-10 14 -6 28l56 224q5 24 31 24h327l81 328q7 24 32 24h224q15 0 25 -12q9 -12 6 -28l-78 -312h254l81 328q7 24 32 24h224q15 0 25 -12q9 -12 6 -28l-78 -312h311 q15 0 25 -12q9 -12 6 -28z" />
<glyph unicode="&#xf293;" d="M841 483l148 -148l-149 -149zM840 1094l149 -149l-148 -148zM710 -130l464 464l-306 306l306 306l-464 464v-611l-255 255l-93 -93l320 -321l-320 -321l93 -93l255 255v-611zM1429 640q0 -209 -32 -365.5t-87.5 -257t-140.5 -162.5t-181.5 -86.5t-219.5 -24.5 t-219.5 24.5t-181.5 86.5t-140.5 162.5t-87.5 257t-32 365.5t32 365.5t87.5 257t140.5 162.5t181.5 86.5t219.5 24.5t219.5 -24.5t181.5 -86.5t140.5 -162.5t87.5 -257t32 -365.5z" />
<glyph unicode="&#xf294;" horiz-adv-x="1024" d="M596 113l173 172l-173 172v-344zM596 823l173 172l-173 172v-344zM628 640l356 -356l-539 -540v711l-297 -296l-108 108l372 373l-372 373l108 108l297 -296v711l539 -540z" />
<glyph unicode="&#xf295;" d="M1280 256q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM512 1024q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM1536 256q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5 t112.5 -271.5zM1440 1344q0 -20 -13 -38l-1056 -1408q-19 -26 -51 -26h-160q-26 0 -45 19t-19 45q0 20 13 38l1056 1408q19 26 51 26h160q26 0 45 -19t19 -45zM768 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5 t271.5 -112.5t112.5 -271.5z" />
<glyph unicode="&#xf296;" horiz-adv-x="1792" d="M104 830l792 -1015l-868 630q-18 13 -25 34.5t0 42.5l101 308v0zM566 830h660l-330 -1015v0zM368 1442l198 -612h-462l198 612q8 23 33 23t33 -23zM1688 830l101 -308q7 -21 0 -42.5t-25 -34.5l-868 -630l792 1015v0zM1688 830h-462l198 612q8 23 33 23t33 -23z" />
<glyph unicode="&#xf297;" horiz-adv-x="1792" d="M384 704h160v224h-160v-224zM1221 372v92q-104 -36 -243 -38q-135 -1 -259.5 46.5t-220.5 122.5l1 -96q88 -80 212 -128.5t272 -47.5q129 0 238 49zM640 704h640v224h-640v-224zM1792 736q0 -187 -99 -352q89 -102 89 -229q0 -157 -129.5 -268t-313.5 -111 q-122 0 -225 52.5t-161 140.5q-19 -1 -57 -1t-57 1q-58 -88 -161 -140.5t-225 -52.5q-184 0 -313.5 111t-129.5 268q0 127 89 229q-99 165 -99 352q0 209 120 385.5t326.5 279.5t449.5 103t449.5 -103t326.5 -279.5t120 -385.5z" />
<glyph unicode="&#xf298;" d="M515 625v-128h-252v128h252zM515 880v-127h-252v127h252zM1273 369v-128h-341v128h341zM1273 625v-128h-672v128h672zM1273 880v-127h-672v127h672zM1408 20v1240q0 8 -6 14t-14 6h-32l-378 -256l-210 171l-210 -171l-378 256h-32q-8 0 -14 -6t-6 -14v-1240q0 -8 6 -14 t14 -6h1240q8 0 14 6t6 14zM553 1130l185 150h-406zM983 1130l221 150h-406zM1536 1260v-1240q0 -62 -43 -105t-105 -43h-1240q-62 0 -105 43t-43 105v1240q0 62 43 105t105 43h1240q62 0 105 -43t43 -105z" />
<glyph unicode="&#xf299;" horiz-adv-x="1792" d="M896 720q-104 196 -160 278q-139 202 -347 318q-34 19 -70 36q-89 40 -94 32t34 -38l39 -31q62 -43 112.5 -93.5t94.5 -116.5t70.5 -113t70.5 -131q9 -17 13 -25q44 -84 84 -153t98 -154t115.5 -150t131 -123.5t148.5 -90.5q153 -66 154 -60q1 3 -49 37q-53 36 -81 57 q-77 58 -179 211t-185 310zM549 177q-76 60 -132.5 125t-98 143.5t-71 154.5t-58.5 186t-52 209t-60.5 252t-76.5 289q273 0 497.5 -36t379 -92t271 -144.5t185.5 -172.5t110 -198.5t56 -199.5t12.5 -198.5t-9.5 -173t-20 -143.5t-13 -107l323 -327h-104l-281 285 q-22 -2 -91.5 -14t-121.5 -19t-138 -6t-160.5 17t-167.5 59t-179 111z" />
<glyph unicode="&#xf29a;" horiz-adv-x="1792" d="M1374 879q-6 26 -28.5 39.5t-48.5 7.5q-261 -62 -401 -62t-401 62q-26 6 -48.5 -7.5t-28.5 -39.5t7.5 -48.5t39.5 -28.5q194 -46 303 -58q-2 -158 -15.5 -269t-26.5 -155.5t-41 -115.5l-9 -21q-10 -25 1 -49t36 -34q9 -4 23 -4q44 0 60 41l8 20q54 139 71 259h42 q17 -120 71 -259l8 -20q16 -41 60 -41q14 0 23 4q25 10 36 34t1 49l-9 21q-28 71 -41 115.5t-26.5 155.5t-15.5 269q109 12 303 58q26 6 39.5 28.5t7.5 48.5zM1024 1024q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5z M1600 640q0 -143 -55.5 -273.5t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5zM896 1408q-156 0 -298 -61t-245 -164t-164 -245t-61 -298t61 -298 t164 -245t245 -164t298 -61t298 61t245 164t164 245t61 298t-61 298t-164 245t-245 164t-298 61zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
<glyph unicode="&#xf29b;" d="M1438 723q34 -35 29 -82l-44 -551q-4 -42 -34.5 -70t-71.5 -28q-6 0 -9 1q-44 3 -72.5 36.5t-25.5 77.5l35 429l-143 -8q55 -113 55 -240q0 -216 -148 -372l-137 137q91 101 91 235q0 145 -102.5 248t-247.5 103q-134 0 -236 -92l-137 138q120 114 284 141l264 300 l-149 87l-181 -161q-33 -30 -77 -27.5t-73 35.5t-26.5 77t34.5 73l239 213q26 23 60 26.5t64 -14.5l488 -283q36 -21 48 -68q17 -67 -26 -117l-205 -232l371 20q49 3 83 -32zM1240 1180q-74 0 -126 52t-52 126t52 126t126 52t126.5 -52t52.5 -126t-52.5 -126t-126.5 -52z M613 -62q106 0 196 61l139 -139q-146 -116 -335 -116q-148 0 -273.5 73t-198.5 198t-73 273q0 188 116 336l139 -139q-60 -88 -60 -197q0 -145 102.5 -247.5t247.5 -102.5z" />
<glyph unicode="&#xf29c;" d="M880 336v-160q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v160q0 14 9 23t23 9h160q14 0 23 -9t9 -23zM1136 832q0 -50 -15 -90t-45.5 -69t-52 -44t-59.5 -36q-32 -18 -46.5 -28t-26 -24t-11.5 -29v-32q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v68q0 35 10.5 64.5 t24 47.5t39 35.5t41 25.5t44.5 21q53 25 75 43t22 49q0 42 -43.5 71.5t-95.5 29.5q-56 0 -95 -27q-29 -20 -80 -83q-9 -12 -25 -12q-11 0 -19 6l-108 82q-10 7 -12 20t5 23q122 192 349 192q129 0 238.5 -89.5t109.5 -214.5zM768 1280q-130 0 -248.5 -51t-204 -136.5 t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5 t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf29d;" horiz-adv-x="1408" d="M366 1225q-64 0 -110 45.5t-46 110.5q0 64 46 109.5t110 45.5t109.5 -45.5t45.5 -109.5q0 -65 -45.5 -110.5t-109.5 -45.5zM917 583q0 -50 -30 -67.5t-63.5 -6.5t-47.5 34l-367 438q-7 12 -14 15.5t-11 1.5l-3 -3q-7 -8 4 -21l122 -139l1 -354l-161 -457 q-67 -192 -92 -234q-16 -26 -28 -32q-50 -26 -103 -1q-29 13 -41.5 43t-9.5 57q2 17 197 618l5 416l-85 -164l35 -222q4 -24 -1 -42t-14 -27.5t-19 -16t-17 -7.5l-7 -2q-19 -3 -34.5 3t-24 16t-14 22t-7.5 19.5t-2 9.5l-46 299l211 381q23 34 113 34q75 0 107 -40l424 -521 q7 -5 14 -17l3 -3l-1 -1q7 -13 7 -29zM514 433q43 -113 88.5 -225t69.5 -168l24 -55q36 -93 42 -125q11 -70 -36 -97q-35 -22 -66 -16t-51 22t-29 35h-1q-6 16 -8 25l-124 351zM1338 -159q31 -49 31 -57q0 -5 -3 -7q-9 -5 -14.5 0.5t-15.5 26t-16 30.5q-114 172 -423 661 q3 -1 7 1t7 4l3 2q11 9 11 17z" />
<glyph unicode="&#xf29e;" horiz-adv-x="2304" d="M504 542h171l-1 265zM1530 641q0 87 -50.5 140t-146.5 53h-54v-388h52q91 0 145 57t54 138zM956 1018l1 -756q0 -14 -9.5 -24t-23.5 -10h-216q-14 0 -23.5 10t-9.5 24v62h-291l-55 -81q-10 -15 -28 -15h-267q-21 0 -30.5 18t3.5 35l556 757q9 14 27 14h332q14 0 24 -10 t10 -24zM1783 641q0 -193 -125.5 -303t-324.5 -110h-270q-14 0 -24 10t-10 24v756q0 14 10 24t24 10h268q200 0 326 -109t126 -302zM1939 640q0 -11 -0.5 -29t-8 -71.5t-21.5 -102t-44.5 -108t-73.5 -102.5h-51q38 45 66.5 104.5t41.5 112t21 98t9 72.5l1 27q0 8 -0.5 22.5 t-7.5 60t-20 91.5t-41 111.5t-66 124.5h43q41 -47 72 -107t45.5 -111.5t23 -96t10.5 -70.5zM2123 640q0 -11 -0.5 -29t-8 -71.5t-21.5 -102t-45 -108t-74 -102.5h-51q38 45 66.5 104.5t41.5 112t21 98t9 72.5l1 27q0 8 -0.5 22.5t-7.5 60t-19.5 91.5t-40.5 111.5t-66 124.5 h43q41 -47 72 -107t45.5 -111.5t23 -96t10.5 -70.5zM2304 640q0 -11 -0.5 -29t-8 -71.5t-21.5 -102t-44.5 -108t-73.5 -102.5h-51q38 45 66 104.5t41 112t21 98t9 72.5l1 27q0 8 -0.5 22.5t-7.5 60t-19.5 91.5t-40.5 111.5t-66 124.5h43q41 -47 72 -107t45.5 -111.5t23 -96 t9.5 -70.5z" />
<glyph unicode="&#xf2a0;" horiz-adv-x="1408" d="M617 -153q0 11 -13 58t-31 107t-20 69q-1 4 -5 26.5t-8.5 36t-13.5 21.5q-15 14 -51 14q-23 0 -70 -5.5t-71 -5.5q-34 0 -47 11q-6 5 -11 15.5t-7.5 20t-6.5 24t-5 18.5q-37 128 -37 255t37 255q1 4 5 18.5t6.5 24t7.5 20t11 15.5q13 11 47 11q24 0 71 -5.5t70 -5.5 q36 0 51 14q9 8 13.5 21.5t8.5 36t5 26.5q2 9 20 69t31 107t13 58q0 22 -43.5 52.5t-75.5 42.5q-20 8 -45 8q-34 0 -98 -18q-57 -17 -96.5 -40.5t-71 -66t-46 -70t-45.5 -94.5q-6 -12 -9 -19q-49 -107 -68 -216t-19 -244t19 -244t68 -216q56 -122 83 -161q63 -91 179 -127 l6 -2q64 -18 98 -18q25 0 45 8q32 12 75.5 42.5t43.5 52.5zM776 760q-26 0 -45 19t-19 45.5t19 45.5q37 37 37 90q0 52 -37 91q-19 19 -19 45t19 45t45 19t45 -19q75 -75 75 -181t-75 -181q-21 -19 -45 -19zM957 579q-27 0 -45 19q-19 19 -19 45t19 45q112 114 112 272 t-112 272q-19 19 -19 45t19 45t45 19t45 -19q150 -150 150 -362t-150 -362q-18 -19 -45 -19zM1138 398q-27 0 -45 19q-19 19 -19 45t19 45q90 91 138.5 208t48.5 245t-48.5 245t-138.5 208q-19 19 -19 45t19 45t45 19t45 -19q109 -109 167 -249t58 -294t-58 -294t-167 -249 q-18 -19 -45 -19z" />
<glyph unicode="&#xf2a1;" horiz-adv-x="2176" d="M192 352q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM704 352q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM704 864q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1472 352 q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1984 352q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1472 864q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1984 864 q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1984 1376q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM384 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 192q0 -80 -56 -136 t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 1216q0 -80 -56 -136t-136 -56 t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 1216q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM2176 192q0 -80 -56 -136t-136 -56t-136 56 t-56 136t56 136t136 56t136 -56t56 -136zM1664 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM2176 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 1216q0 -80 -56 -136t-136 -56t-136 56t-56 136 t56 136t136 56t136 -56t56 -136zM2176 1216q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136z" />
<glyph unicode="&#xf2a2;" horiz-adv-x="1792" d="M128 -192q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM320 0q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM365 365l256 -256l-90 -90l-256 256zM704 384q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45z M1411 704q0 -59 -11.5 -108.5t-37.5 -93.5t-44 -67.5t-53 -64.5q-31 -35 -45.5 -54t-33.5 -50t-26.5 -64t-7.5 -74q0 -159 -112.5 -271.5t-271.5 -112.5q-26 0 -45 19t-19 45t19 45t45 19q106 0 181 75t75 181q0 57 11.5 105.5t37 91t43.5 66.5t52 63q40 46 59.5 72 t37.5 74.5t18 103.5q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5q0 -26 -19 -45t-45 -19t-45 19t-19 45q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5zM896 576q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45 t45 19t45 -19t19 -45zM1184 704q0 -26 -19 -45t-45 -19t-45 19t-19 45q0 93 -65.5 158.5t-158.5 65.5q-92 0 -158 -65.5t-66 -158.5q0 -26 -19 -45t-45 -19t-45 19t-19 45q0 146 103 249t249 103t249 -103t103 -249zM1578 993q10 -25 -1 -49t-36 -34q-9 -4 -23 -4 q-19 0 -35.5 11t-23.5 30q-68 178 -224 295q-21 16 -25 42t12 47q17 21 43 25t47 -12q183 -137 266 -351zM1788 1074q9 -25 -1.5 -49t-35.5 -34q-11 -4 -23 -4q-44 0 -60 41q-92 238 -297 393q-22 16 -25.5 42t12.5 47q16 22 42 25.5t47 -12.5q235 -175 341 -449z" />
<glyph unicode="&#xf2a3;" horiz-adv-x="2304" d="M1032 576q-59 2 -84 55q-17 34 -48 53.5t-68 19.5q-53 0 -90.5 -37.5t-37.5 -90.5q0 -56 36 -89l10 -8q34 -31 82 -31q37 0 68 19.5t48 53.5q25 53 84 55zM1600 704q0 56 -36 89l-10 8q-34 31 -82 31q-37 0 -68 -19.5t-48 -53.5q-25 -53 -84 -55q59 -2 84 -55 q17 -34 48 -53.5t68 -19.5q53 0 90.5 37.5t37.5 90.5zM1174 925q-17 -35 -55 -48t-73 4q-62 31 -134 31q-51 0 -99 -17q3 0 9.5 0.5t9.5 0.5q92 0 170.5 -50t118.5 -133q17 -36 3.5 -73.5t-49.5 -54.5q-18 -9 -39 -9q21 0 39 -9q36 -17 49.5 -54.5t-3.5 -73.5 q-40 -83 -118.5 -133t-170.5 -50h-6q-16 2 -44 4l-290 27l-239 -120q-14 -7 -29 -7q-40 0 -57 35l-160 320q-11 23 -4 47.5t29 37.5l209 119l148 267q17 155 91.5 291.5t195.5 236.5q31 25 70.5 21.5t64.5 -34.5t21.5 -70t-34.5 -65q-70 -59 -117 -128q123 84 267 101 q40 5 71.5 -19t35.5 -64q5 -40 -19 -71.5t-64 -35.5q-84 -10 -159 -55q46 10 99 10q115 0 218 -50q36 -18 49 -55.5t-5 -73.5zM2137 1085l160 -320q11 -23 4 -47.5t-29 -37.5l-209 -119l-148 -267q-17 -155 -91.5 -291.5t-195.5 -236.5q-26 -22 -61 -22q-45 0 -74 35 q-25 31 -21.5 70t34.5 65q70 59 117 128q-123 -84 -267 -101q-4 -1 -12 -1q-36 0 -63.5 24t-31.5 60q-5 40 19 71.5t64 35.5q84 10 159 55q-46 -10 -99 -10q-115 0 -218 50q-36 18 -49 55.5t5 73.5q17 35 55 48t73 -4q62 -31 134 -31q51 0 99 17q-3 0 -9.5 -0.5t-9.5 -0.5 q-92 0 -170.5 50t-118.5 133q-17 36 -3.5 73.5t49.5 54.5q18 9 39 9q-21 0 -39 9q-36 17 -49.5 54.5t3.5 73.5q40 83 118.5 133t170.5 50h6h1q14 -2 42 -4l291 -27l239 120q14 7 29 7q40 0 57 -35z" />
<glyph unicode="&#xf2a4;" horiz-adv-x="1792" d="M1056 704q0 -26 19 -45t45 -19t45 19t19 45q0 146 -103 249t-249 103t-249 -103t-103 -249q0 -26 19 -45t45 -19t45 19t19 45q0 93 66 158.5t158 65.5t158 -65.5t66 -158.5zM835 1280q-117 0 -223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5q0 -26 19 -45t45 -19t45 19 t19 45q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5q0 -55 -18 -103.5t-37.5 -74.5t-59.5 -72q-34 -39 -52 -63t-43.5 -66.5t-37 -91t-11.5 -105.5q0 -106 -75 -181t-181 -75q-26 0 -45 -19t-19 -45t19 -45t45 -19q159 0 271.5 112.5t112.5 271.5q0 41 7.5 74 t26.5 64t33.5 50t45.5 54q35 41 53 64.5t44 67.5t37.5 93.5t11.5 108.5q0 117 -45.5 223.5t-123 184t-184 123t-223.5 45.5zM591 561l226 -226l-579 -579q-12 -12 -29 -12t-29 12l-168 168q-12 12 -12 29t12 29zM1612 1524l168 -168q12 -12 12 -29t-12 -30l-233 -233 l-26 -25l-71 -71q-66 153 -195 258l91 91l207 207q13 12 30 12t29 -12z" />
<glyph unicode="&#xf2a5;" d="M866 1021q0 -27 -13 -94q-11 -50 -31.5 -150t-30.5 -150q-2 -11 -4.5 -12.5t-13.5 -2.5q-20 -2 -31 -2q-58 0 -84 49.5t-26 113.5q0 88 35 174t103 124q28 14 51 14q28 0 36.5 -16.5t8.5 -47.5zM1352 597q0 14 -39 75.5t-52 66.5q-21 8 -34 8q-91 0 -226 -77l-2 2 q3 22 27.5 135t24.5 178q0 233 -242 233q-24 0 -68 -6q-94 -17 -168.5 -89.5t-111.5 -166.5t-37 -189q0 -146 80.5 -225t227.5 -79q25 0 25 -3t-1 -5q-4 -34 -26 -117q-14 -52 -51.5 -101t-82.5 -49q-42 0 -42 47q0 24 10.5 47.5t25 39.5t29.5 28.5t26 20t11 8.5q0 3 -7 10 q-24 22 -58.5 36.5t-65.5 14.5q-35 0 -63.5 -34t-41 -75t-12.5 -75q0 -88 51.5 -142t138.5 -54q82 0 155 53t117.5 126t65.5 153q6 22 15.5 66.5t14.5 66.5q3 12 14 18q118 60 227 60q48 0 127 -18q1 -1 4 -1q5 0 9.5 4.5t4.5 8.5zM1536 1120v-960q0 -119 -84.5 -203.5 t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf2a6;" horiz-adv-x="1535" d="M744 1231q0 24 -2 38.5t-8.5 30t-21 23t-37.5 7.5q-39 0 -78 -23q-105 -58 -159 -190.5t-54 -269.5q0 -44 8.5 -85.5t26.5 -80.5t52.5 -62.5t81.5 -23.5q4 0 18 -0.5t20 0t16 3t15 8.5t7 16q16 77 48 231.5t48 231.5q19 91 19 146zM1498 575q0 -7 -7.5 -13.5t-15.5 -6.5 l-6 1q-22 3 -62 11t-72 12.5t-63 4.5q-167 0 -351 -93q-15 -8 -21 -27q-10 -36 -24.5 -105.5t-22.5 -100.5q-23 -91 -70 -179.5t-112.5 -164.5t-154.5 -123t-185 -47q-135 0 -214.5 83.5t-79.5 219.5q0 53 19.5 117t63 116.5t97.5 52.5q38 0 120 -33.5t83 -61.5 q0 -1 -16.5 -12.5t-39.5 -31t-46 -44.5t-39 -61t-16 -74q0 -33 16.5 -53t48.5 -20q45 0 85 31.5t66.5 78t48 105.5t32.5 107t16 90v9q0 2 -3.5 3.5t-8.5 1.5h-10t-10 -0.5t-6 -0.5q-227 0 -352 122.5t-125 348.5q0 108 34.5 221t96 210t156 167.5t204.5 89.5q52 9 106 9 q374 0 374 -360q0 -98 -38 -273t-43 -211l3 -3q101 57 182.5 88t167.5 31q22 0 53 -13q19 -7 80 -102.5t61 -116.5z" />
<glyph unicode="&#xf2a7;" horiz-adv-x="1664" d="M831 863q32 0 59 -18l222 -148q61 -40 110 -97l146 -170q40 -46 29 -106l-72 -413q-6 -32 -29.5 -53.5t-55.5 -25.5l-527 -56l-352 -32h-9q-39 0 -67.5 28t-28.5 68q0 37 27 64t65 32l260 32h-448q-41 0 -69.5 30t-26.5 71q2 39 32 65t69 26l442 1l-521 64q-41 5 -66 37 t-19 73q6 35 34.5 57.5t65.5 22.5h10l481 -60l-351 94q-38 10 -62 41.5t-18 68.5q6 36 33 58.5t62 22.5q6 0 20 -2l448 -96l217 -37q1 0 3 -0.5t3 -0.5q23 0 30.5 23t-12.5 36l-186 125q-35 23 -42 63.5t18 73.5q27 38 76 38zM761 661l186 -125l-218 37l-5 2l-36 38 l-238 262q-1 1 -2.5 3.5t-2.5 3.5q-24 31 -18.5 70t37.5 64q31 23 68 17.5t64 -33.5l142 -147l-4 -4t-5 -4q-32 -45 -23 -99t55 -85zM1648 1115l15 -266q4 -73 -11 -147l-48 -219q-12 -59 -67 -87l-106 -54q2 62 -39 109l-146 170q-53 61 -117 103l-222 148q-34 23 -76 23 q-51 0 -88 -37l-235 312q-25 33 -18 73.5t41 63.5q33 22 71.5 14t62.5 -40l266 -352l-262 455q-21 35 -10.5 75t47.5 59q35 18 72.5 6t57.5 -46l241 -420l-136 337q-15 35 -4.5 74t44.5 56q37 19 76 6t56 -51l193 -415l101 -196q8 -15 23 -17.5t27 7.5t11 26l-12 224 q-2 41 26 71t69 31q39 0 67 -28.5t30 -67.5z" />
<glyph unicode="&#xf2a8;" horiz-adv-x="1792" d="M335 180q-2 0 -6 2q-86 57 -168.5 145t-139.5 180q-21 30 -21 69q0 9 2 19t4 18t7 18t8.5 16t10.5 17t10 15t12 15.5t11 14.5q184 251 452 365q-110 198 -110 211q0 19 17 29q116 64 128 64q18 0 28 -16l124 -229q92 19 192 19q266 0 497.5 -137.5t378.5 -369.5 q20 -31 20 -69t-20 -69q-91 -142 -218.5 -253.5t-278.5 -175.5q110 -198 110 -211q0 -20 -17 -29q-116 -64 -127 -64q-19 0 -29 16l-124 229l-64 119l-444 820l7 7q-58 -24 -99 -47q3 -5 127 -234t243 -449t119 -223q0 -7 -9 -9q-13 -3 -72 -3q-57 0 -60 7l-456 841 q-39 -28 -82 -68q24 -43 214 -393.5t190 -354.5q0 -10 -11 -10q-14 0 -82.5 22t-72.5 28l-106 197l-224 413q-44 -53 -78 -106q2 -3 18 -25t23 -34l176 -327q0 -10 -10 -10zM1165 282l49 -91q273 111 450 385q-180 277 -459 389q67 -64 103 -148.5t36 -176.5 q0 -106 -47 -200.5t-132 -157.5zM848 896q0 -20 14 -34t34 -14q86 0 147 -61t61 -147q0 -20 14 -34t34 -14t34 14t14 34q0 126 -89 215t-215 89q-20 0 -34 -14t-14 -34zM1214 961l-9 4l7 -7z" />
<glyph unicode="&#xf2a9;" horiz-adv-x="1280" d="M1050 430q0 -215 -147 -374q-148 -161 -378 -161q-232 0 -378 161q-147 159 -147 374q0 147 68 270.5t189 196.5t268 73q96 0 182 -31q-32 -62 -39 -126q-66 28 -143 28q-167 0 -280.5 -123t-113.5 -291q0 -170 112.5 -288.5t281.5 -118.5t281 118.5t112 288.5 q0 89 -32 166q66 13 123 49q41 -98 41 -212zM846 619q0 -192 -79.5 -345t-238.5 -253l-14 -1q-29 0 -62 5q83 32 146.5 102.5t99.5 154.5t58.5 189t30 192.5t7.5 178.5q0 69 -3 103q55 -160 55 -326zM791 947v-2q-73 214 -206 440q88 -59 142.5 -186.5t63.5 -251.5z M1035 744q-83 0 -160 75q218 120 290 247q19 37 21 56q-42 -94 -139.5 -166.5t-204.5 -97.5q-35 54 -35 113q0 37 17 79t43 68q46 44 157 74q59 16 106 58.5t74 100.5q74 -105 74 -253q0 -109 -24 -170q-32 -77 -88.5 -130.5t-130.5 -53.5z" />
<glyph unicode="&#xf2aa;" d="M1050 495q0 78 -28 147q-41 -25 -85 -34q22 -50 22 -114q0 -117 -77 -198.5t-193 -81.5t-193.5 81.5t-77.5 198.5q0 115 78 199.5t193 84.5q53 0 98 -19q4 43 27 87q-60 21 -125 21q-154 0 -257.5 -108.5t-103.5 -263.5t103.5 -261t257.5 -106t257.5 106.5t103.5 260.5z M872 850q2 -24 2 -71q0 -63 -5 -123t-20.5 -132.5t-40.5 -130t-68.5 -106t-100.5 -70.5q21 -3 42 -3h10q219 139 219 411q0 116 -38 225zM872 850q-4 80 -44 171.5t-98 130.5q92 -156 142 -302zM1207 955q0 102 -51 174q-41 -86 -124 -109q-69 -19 -109 -53.5t-40 -99.5 q0 -40 24 -77q74 17 140.5 67t95.5 115q-4 -52 -74.5 -111.5t-138.5 -97.5q52 -52 110 -52q51 0 90 37t60 90q17 43 17 117zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 t84.5 -203.5z" />
<glyph unicode="&#xf2ab;" d="M1279 388q0 22 -22 27q-67 15 -118 59t-80 108q-7 19 -7 25q0 15 19.5 26t43 17t43 20.5t19.5 36.5q0 19 -18.5 31.5t-38.5 12.5q-12 0 -32 -8t-31 -8q-4 0 -12 2q5 95 5 114q0 79 -17 114q-36 78 -103 121.5t-152 43.5q-199 0 -275 -165q-17 -35 -17 -114q0 -19 5 -114 q-4 -2 -14 -2q-12 0 -32 7.5t-30 7.5q-21 0 -38.5 -12t-17.5 -32q0 -21 19.5 -35.5t43 -20.5t43 -17t19.5 -26q0 -6 -7 -25q-64 -138 -198 -167q-22 -5 -22 -27q0 -46 137 -68q2 -5 6 -26t11.5 -30.5t23.5 -9.5q12 0 37.5 4.5t39.5 4.5q35 0 67 -15t54 -32.5t57.5 -32.5 t76.5 -15q43 0 79 15t57.5 32.5t53.5 32.5t67 15q14 0 39.5 -4t38.5 -4q16 0 23 10t11 30t6 25q137 22 137 68zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5 t103 -385.5z" />
<glyph unicode="&#xf2ac;" horiz-adv-x="1664" d="M848 1408q134 1 240.5 -68.5t163.5 -192.5q27 -58 27 -179q0 -47 -9 -191q14 -7 28 -7q18 0 51 13.5t51 13.5q29 0 56 -18t27 -46q0 -32 -31.5 -54t-69 -31.5t-69 -29t-31.5 -47.5q0 -15 12 -43q37 -82 102.5 -150t144.5 -101q28 -12 80 -23q28 -6 28 -35 q0 -70 -219 -103q-7 -11 -11 -39t-14 -46.5t-33 -18.5q-20 0 -62 6.5t-64 6.5q-37 0 -62 -5q-32 -5 -63 -22.5t-58 -38t-58 -40.5t-76 -33.5t-99 -13.5q-52 0 -96.5 13.5t-75 33.5t-57.5 40.5t-58 38t-62 22.5q-26 5 -63 5q-24 0 -65.5 -7.5t-58.5 -7.5q-25 0 -35 18.5 t-14 47.5t-11 40q-219 33 -219 103q0 29 28 35q52 11 80 23q78 32 144.5 101t102.5 150q12 28 12 43q0 28 -31.5 47.5t-69.5 29.5t-69.5 31.5t-31.5 52.5q0 27 26 45.5t55 18.5q15 0 48 -13t53 -13q18 0 32 7q-9 142 -9 190q0 122 27 180q64 137 172 198t264 63z" />
<glyph unicode="&#xf2ad;" d="M1280 388q0 22 -22 27q-67 14 -118 58t-80 109q-7 14 -7 25q0 15 19.5 26t42.5 17t42.5 20.5t19.5 36.5q0 19 -18.5 31.5t-38.5 12.5q-11 0 -31 -8t-32 -8q-4 0 -12 2q5 63 5 115q0 78 -17 114q-36 78 -102.5 121.5t-152.5 43.5q-198 0 -275 -165q-18 -38 -18 -115 q0 -38 6 -114q-10 -2 -15 -2q-11 0 -31.5 8t-30.5 8q-20 0 -37.5 -12.5t-17.5 -32.5q0 -21 19.5 -35.5t42.5 -20.5t42.5 -17t19.5 -26q0 -11 -7 -25q-64 -138 -198 -167q-22 -5 -22 -27q0 -47 138 -69q2 -5 6 -26t11 -30.5t23 -9.5q13 0 38.5 5t38.5 5q35 0 67.5 -15 t54.5 -32.5t57.5 -32.5t76.5 -15q43 0 79 15t57.5 32.5t54 32.5t67.5 15q13 0 39 -4.5t39 -4.5q15 0 22.5 9.5t11.5 31t5 24.5q138 22 138 69zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960 q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf2ae;" horiz-adv-x="2304" d="M2304 1536q-69 -46 -125 -92t-89 -81t-59.5 -71.5t-37.5 -57.5t-22 -44.5t-14 -29.5q-10 -18 -35.5 -136.5t-48.5 -164.5q-15 -29 -50 -60.5t-67.5 -50.5t-72.5 -41t-48 -28q-47 -31 -151 -231q-341 14 -630 -158q-92 -53 -303 -179q47 16 86 31t55 22l15 7 q71 27 163 64.5t133.5 53.5t108 34.5t142.5 31.5q186 31 465 -7q1 0 10 -3q11 -6 14 -17t-3 -22l-194 -345q-15 -29 -47 -22q-128 24 -354 24q-146 0 -402 -44.5t-392 -46.5q-82 -1 -149 13t-107 37t-61 40t-33 34l-1 1v2q0 6 6 6q138 0 371 55q192 366 374.5 524t383.5 158 q5 0 14.5 -0.5t38 -5t55 -12t61.5 -24.5t63 -39.5t54 -59t40 -82.5l102 177q2 4 21 42.5t44.5 86.5t61 109.5t84 133.5t100.5 137q66 82 128 141.5t121.5 96.5t92.5 53.5t88 39.5z" />
<glyph unicode="&#xf2b0;" d="M1322 640q0 -45 -5 -76l-236 14l224 -78q-19 -73 -58 -141l-214 103l177 -158q-44 -61 -107 -108l-157 178l103 -215q-61 -37 -140 -59l-79 228l14 -240q-38 -6 -76 -6t-76 6l14 238l-78 -226q-74 19 -140 59l103 215l-157 -178q-59 43 -108 108l178 158l-214 -104 q-39 69 -58 141l224 79l-237 -14q-5 42 -5 76q0 35 5 77l238 -14l-225 79q19 73 58 140l214 -104l-177 159q46 61 107 108l158 -178l-103 215q67 39 140 58l77 -224l-13 236q36 6 75 6q38 0 76 -6l-14 -237l78 225q74 -19 140 -59l-103 -214l158 178q61 -47 107 -108 l-177 -159l213 104q37 -62 58 -141l-224 -78l237 14q5 -31 5 -77zM1352 640q0 160 -78.5 295.5t-213 214t-292.5 78.5q-119 0 -227 -46.5t-186.5 -125t-124.5 -187.5t-46 -229q0 -119 46 -228t124.5 -187.5t186.5 -125t227 -46.5q158 0 292.5 78.5t213 214t78.5 294.5z M1425 1023v-766l-657 -383l-657 383v766l657 383zM768 -183l708 412v823l-708 411l-708 -411v-823zM1536 1088v-896l-768 -448l-768 448v896l768 448z" />
<glyph unicode="&#xf2b1;" horiz-adv-x="1664" d="M339 1318h691l-26 -72h-665q-110 0 -188.5 -79t-78.5 -189v-771q0 -95 60.5 -169.5t153.5 -93.5q23 -5 98 -5v-72h-45q-140 0 -239.5 100t-99.5 240v771q0 140 99.5 240t239.5 100zM1190 1536h247l-482 -1294q-23 -61 -40.5 -103.5t-45 -98t-54 -93.5t-64.5 -78.5 t-79.5 -65t-95.5 -41t-116 -18.5v195q163 26 220 182q20 52 20 105q0 54 -20 106l-285 733h228l187 -585zM1664 978v-1111h-795q37 55 45 73h678v1038q0 85 -49.5 155t-129.5 99l25 67q101 -34 163.5 -123.5t62.5 -197.5z" />
<glyph unicode="&#xf2b2;" horiz-adv-x="1792" d="M852 1227q0 -29 -17 -52.5t-45 -23.5t-45 23.5t-17 52.5t17 52.5t45 23.5t45 -23.5t17 -52.5zM688 -149v114q0 30 -20.5 51.5t-50.5 21.5t-50 -21.5t-20 -51.5v-114q0 -30 20.5 -52t49.5 -22q30 0 50.5 22t20.5 52zM860 -149v114q0 30 -20 51.5t-50 21.5t-50.5 -21.5 t-20.5 -51.5v-114q0 -30 20.5 -52t50.5 -22q29 0 49.5 22t20.5 52zM1034 -149v114q0 30 -20.5 51.5t-50.5 21.5t-50.5 -21.5t-20.5 -51.5v-114q0 -30 20.5 -52t50.5 -22t50.5 22t20.5 52zM1208 -149v114q0 30 -20.5 51.5t-50.5 21.5t-50.5 -21.5t-20.5 -51.5v-114 q0 -30 20.5 -52t50.5 -22t50.5 22t20.5 52zM1476 535q-84 -160 -232 -259.5t-323 -99.5q-123 0 -229.5 51.5t-178.5 137t-113 197.5t-41 232q0 88 21 174q-104 -175 -104 -390q0 -162 65 -312t185 -251q30 57 91 57q56 0 86 -50q32 50 87 50q56 0 86 -50q32 50 87 50t87 -50 q30 50 86 50q28 0 52.5 -15.5t37.5 -40.5q112 94 177 231.5t73 287.5zM1326 564q0 75 -72 75q-17 0 -47 -6q-95 -19 -149 -19q-226 0 -226 243q0 86 30 204q-83 -127 -83 -275q0 -150 89 -260.5t235 -110.5q111 0 210 70q13 48 13 79zM884 1223q0 50 -32 89.5t-81 39.5 t-81 -39.5t-32 -89.5q0 -51 31.5 -90.5t81.5 -39.5t81.5 39.5t31.5 90.5zM1513 884q0 96 -37.5 179t-113 137t-173.5 54q-77 0 -149 -35t-127 -94q-48 -159 -48 -268q0 -104 45.5 -157t147.5 -53q53 0 142 19q36 6 53 6q51 0 77.5 -28t26.5 -80q0 -26 -4 -46 q75 68 117.5 165.5t42.5 200.5zM1792 667q0 -111 -33.5 -249.5t-93.5 -204.5q-58 -64 -195 -142.5t-228 -104.5l-4 -1v-114q0 -43 -29.5 -75t-72.5 -32q-56 0 -86 50q-32 -50 -87 -50t-87 50q-30 -50 -86 -50q-55 0 -87 50q-30 -50 -86 -50q-47 0 -75 33.5t-28 81.5 q-90 -68 -198 -68q-118 0 -211 80q54 1 106 20q-113 31 -182 127q32 -7 71 -7q89 0 164 46q-192 192 -240 306q-24 56 -24 160q0 57 9 125.5t31.5 146.5t55 141t86.5 105t120 42q59 0 81 -52q19 29 42 54q2 3 12 13t13 16q10 15 23 38t25 42t28 39q87 111 211.5 177 t260.5 66q35 0 62 -4q59 64 146 64q83 0 140 -57q5 -5 5 -12q0 -5 -6 -13.5t-12.5 -16t-16 -17l-10.5 -10.5q17 -6 36 -18t19 -24q0 -6 -16 -25q157 -138 197 -378q25 30 60 30q45 0 100 -49q90 -80 90 -279z" />
<glyph unicode="&#xf2b3;" d="M917 631q0 33 -6 64h-362v-132h217q-12 -76 -74.5 -120.5t-142.5 -44.5q-99 0 -169 71.5t-70 170.5t70 170.5t169 71.5q93 0 153 -59l104 101q-108 100 -257 100q-160 0 -272 -112.5t-112 -271.5t112 -271.5t272 -112.5q165 0 266.5 105t101.5 270zM1262 585h109v110 h-109v110h-110v-110h-110v-110h110v-110h110v110zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf2b4;" d="M1536 1024v-839q0 -48 -49 -62q-174 -52 -338 -52q-73 0 -215.5 29.5t-227.5 29.5q-164 0 -370 -48v-338h-160v1368q-63 25 -101 81t-38 124q0 91 64 155t155 64t155 -64t64 -155q0 -68 -38 -124t-101 -81v-68q190 44 343 44q99 0 198 -15q14 -2 111.5 -22.5t149.5 -20.5 q77 0 165 18q11 2 80 21t89 19q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf2b5;" horiz-adv-x="1792" />
<glyph unicode="&#xf2b6;" horiz-adv-x="1792" />
<glyph unicode="&#xf2b7;" horiz-adv-x="1792" />
<glyph unicode="&#xf2b8;" horiz-adv-x="1792" />
<glyph unicode="&#xf2b9;" horiz-adv-x="1792" />
<glyph unicode="&#xf2ba;" horiz-adv-x="1792" />
<glyph unicode="&#xf2bb;" horiz-adv-x="1792" />
<glyph unicode="&#xf2bc;" horiz-adv-x="1792" />
<glyph unicode="&#xf2bd;" horiz-adv-x="1792" />
<glyph unicode="&#xf2be;" horiz-adv-x="1792" />
<glyph unicode="&#xf500;" horiz-adv-x="1792" />
</font>
</defs></svg> OTTO 
    CFF 塳    (EPAR  *    0OS/22zY    `cmapA d  headè h   6hhea
 ٠   $hmtx8   
>maxpP     name>&"   post          FontAwesome C 	 U6 U60o0        " , 0 4 < > E G M T \ _ e h m q y }                  #)4>HT_lp{
'4=GRYfoy&,39COVcoz"/5;FPUZes}&+16<EOW_hmqv|)04=DPX\aju(,26GYhy%16;>EMUckox				$	5	G	V	g	l	p	v													




&
*
-
0
3
6
9
<
?
B
F
O
_
c
u












 &5BQafmty !%)-159=AHLPTX\`dhlptx|%,37;?CGKOVZ^bfjnrvz~	!%)-159=AEJNRVZ^bfjnrvz~
"&*.26:>BFJNRVZ^bfjnrvz~
"&*.29@GNU\cjqx3>glassmusicsearchenvelopeheartstarstar_emptyuserfilmth_largethth_listokremovezoom_inzoom_outoffsignalcogtrashhomefile_alttimeroaddownload_altdownloaduploadinboxplay_circlerepeatrefreshlist_altlockflagheadphonesvolume_offvolume_downvolume_upqrcodebarcodetagtagsbookbookmarkprintcamerafontbolditalictext_heighttext_widthalign_leftalign_centeralign_rightalign_justifylistindent_leftindent_rightfacetime_videopicturepencilmap_markeradjusttinteditsharecheckmovestep_backwardfast_backwardbackwardplaypausestopforwardfast_forwardstep_forwardejectchevron_leftchevron_rightplus_signminus_signremove_signok_signquestion_signinfo_signscreenshotremove_circleok_circleban_circlearrow_leftarrow_rightarrow_uparrow_downshare_altresize_fullresize_smallexclamation_signgiftleaffireeye_openeye_closewarning_signplanecalendarrandomcommentmagnetchevron_upchevron_downretweetshopping_cartfolder_closefolder_openresize_verticalresize_horizontalbar_charttwitter_signfacebook_signcamera_retrokeycogscommentsthumbs_up_altthumbs_down_altstar_halfheart_emptysignoutlinkedin_signpushpinexternal_linksignintrophygithub_signupload_altlemonphonecheck_emptybookmark_emptyphone_signtwitterfacebookgithubunlockcredit_cardrsshddbullhornbellcertificatehand_righthand_lefthand_uphand_downcircle_arrow_leftcircle_arrow_rightcircle_arrow_upcircle_arrow_downglobewrenchtasksfilterbriefcasefullscreennotequalinfinitylessequalgrouplinkcloudbeakercutcopypaper_clipsavesign_blankreorderulolstrikethroughunderlinetablemagictruckpinterestpinterest_signgoogle_plus_signgoogle_plusmoneycaret_downcaret_upcaret_leftcaret_rightcolumnssortsort_downsort_upenvelope_altlinkedinundolegaldashboardcomment_altcomments_altboltsitemapumbrellapastelight_bulbexchangecloud_downloadcloud_uploaduser_mdstethoscopesuitcasebell_altcoffeefoodfile_text_altbuildinghospitalambulancemedkitfighter_jetbeerh_signf0fedouble_angle_leftdouble_angle_rightdouble_angle_updouble_angle_downangle_leftangle_rightangle_upangle_downdesktoplaptoptabletmobile_phonecircle_blankquote_leftquote_rightspinnercirclereplygithub_altfolder_close_altfolder_open_altexpand_altcollapse_altsmilefrownmehgamepadkeyboardflag_altflag_checkeredterminalcodereply_allstar_half_emptylocation_arrowcropcode_forkunlink_279exclamationsuperscriptsubscript_283puzzle_piecemicrophonemicrophone_offshieldcalendar_emptyfire_extinguisherrocketmaxcdnchevron_sign_leftchevron_sign_rightchevron_sign_upchevron_sign_downhtml5css3anchorunlock_altbullseyeellipsis_horizontalellipsis_vertical_303play_signticketminus_sign_altcheck_minuslevel_uplevel_downcheck_signedit_sign_312share_signcompasscollapsecollapse_top_317eurgbpusdinrjpyrubkrwbtcfilefile_textsort_by_alphabet_329sort_by_attributessort_by_attributes_altsort_by_ordersort_by_order_alt_334_335youtube_signyoutubexingxing_signyoutube_playdropboxstackexchangeinstagramflickradnf171bitbucket_signtumblrtumblr_signlong_arrow_downlong_arrow_uplong_arrow_leftlong_arrow_rightapplewindowsandroidlinuxdribbleskypefoursquaretrellofemalemalegittipsun_366archivebugvkweiborenren_372stack_exchange_374arrow_circle_alt_left_376dot_circle_alt_378vimeo_square_380plus_square_o_382_383_384_385_386_387_388_389uniF1A0f1a1_392_393f1a4_395_396_397_398_399_400f1ab_402_403_404uniF1B1_406_407_408_409_410_411_412_413_414_415_416_417_418_419uniF1C0uniF1C1_422_423_424_425_426_427_428_429_430_431_432_433_434uniF1D0uniF1D1uniF1D2_438_439uniF1D5uniF1D6uniF1D7_443_444_445_446_447_448_449uniF1E0_451_452_453_454_455_456_457_458_459_460_461_462_463_464uniF1F0_466_467f1f3_469_470_471_472_473_474_475_476f1fc_478_479_480_481_482_483_484_485_486_487_488_489_490_491_492_493_494f210_496f212_498_499_500_501_502_503_504_505_506_507_508_509venus_511_512_513_514_515_516_517_518_519_520_521_522_523_524_525_526_527_528_529_530_531_532_533_534_535_536_537_538_539_540_541_542_543_544_545_546_547_548_549_550_551_552_553_554_555_556_557_558_559_560_561_562_563_564_565_566_567_568_569f260f261_572f263_574_575_576_577_578_579_580_581_582_583_584_585_586_587_588_589_590_591_592_593_594_595_596_597_598f27euniF280uniF281_602_603_604uniF285uniF286_607_608_609_610_611_612_613_614_615_616_617_618_619_620_621_622_623_624_625_626_627_628_629uniF2A0uniF2A1uniF2A2uniF2A3uniF2A4uniF2A5uniF2A6uniF2A7uniF2A8uniF2A9uniF2AAuniF2ABuniF2ACuniF2ADuniF2AEuniF2B0uniF2B1uniF2B2uniF2B3uniF2B4uniF2B5uniF2B6uniF2B7uniF2B8uniF2B9uniF2BAuniF2BBuniF2BCuniF2BDuniF2BECopyright Dave Gandy 2016. All rights reserved.FontAwesome   b f v ~          *.6Llp+8?CKX^b2IU ,3:@EIMXag~	/nw~?Chy!%*.27@U_ch#,17DINTX\	0	<	l	{								


 
)
5
G
Z
_
j
m
v










:JUY]nw|+LXt/NWdq~/;@HLSWe!%*05@N\jv}$).5<@GMbw"&+>L_hmrw~'19>CHYap|  '-16=CHNSW\aiq~	#)/4:CHPX_fkp})/;GOU\dlt|
")
-T%fAVR
@>

lfPzz
 L
4!
,
t(J

3333y}}y 
4f
T
@4

<
.
Ta@i<<.1TR
3y`
8T:I
TETI
A
KGK^
`GT^
??
V>
(y}}yKy}}yTIk<
.
Ta]
3
+&
T$
nhD
@
i
1

y}}yy}}y_
$-
9,|zKz||zKz|I
M
z||z
ff
o
To
To
![
!5
3

v(
S[=T +
}yTy}}yT(
+d
+x0
+" ʆiimdod$@~ Kz&w{yyw}| |}xz{wa&zK$|'FF
 EQ|z@z||zTz||zz||zTz|@4D
 c
X
 L
DRRD,-
YO
ffC
ffM
hn
j TDN

3
+
TD|3CRD\
&
K$

OH

!b!5!LC3
TTTT];(=ZXWG/9;/_Mknmn9:YIƑP`q
~d_i^@!
TT(
TT
:4\D
L
L4
F/BNPuc]T<Od}}|1B&2B
7
3
+k
ԯ 3CC3
EQl
t
{zP&]]t
<<<
<*,
#EAS i^wvhvi^S AE]#^T@!
$$C
M$$V``VV`
`Vm3'!%Ơ#xM'nqwdo^Ky}_Ib	\;COLD|yz|ru{A0%l
)!p

0r
R
&
Ty}t
T1
+T

tV`
KT

{zGCC8=<<8CGCV``Vz|P
P
:}
g
:!55!A
&&Th@
z|-
},RD
A

ff1
YY


Yff7
&/]]1a

i8_dd_~~x
zƅyMY;/a3<
T9
T]
L
;;YS<!yots{tqT+Tg
5
\|\?Z Eԅc*y^H(ym|[ZZrwh3Ct|b
EQQEEQM
11
hnnh:
<
tttt?
TattR
~4~
Lp*<<<<tl
ffO

!b!
8
8
8
l

R
		tkRE;
YO
:<

<zz}yvKyx}zy
<JڔK$

^hnnhv
YYC

*********
4ԟ4<
T.

yy&L
vS
+

t)
tTf
n$
,l"7o''$

1A
Z
!!JTnhz{ 
ˋ
 h̍t|~}:8T(A(A(A3/{V=@^
~{zz{{tsoyxfz\J$9:lAA
T4Tk
OIIgX!!gXg!-
l
0

z

o
C
YM
;
a
z
 
R
ZZ@~qrD
R'/h
(=`hZ	,,		,				,	H
T>
+,!{Vv7+4

J
T33{MYtkT
}
nh
ttFtvpttp&ptyyrrrry-
3
yya
*
t
y9
<
/,
%T)
\[
KR
t
Gt@$$@!pN

!5
rrcr.`uttu~warwwvyr/4444w__cSTdJ,]շ49H^cclqt(
4
4]]
 83
s&&Ez*6z*E!D$$D;
TA
]
1
3
}t|zag__gg__g`=db97<<<<TT_Ldg
1`V4

C3~w]gTR<}|A;;
Ttɽh@
z
0@
P@zyz
@zz{
:

|
1


@hha

y}|zg
3@hL
DR$$w

oog
 L
L
ip ++P,_hmxʲEQlwx



t
z}RK*
:z{t&
t(
T^
&
b

'y}
5!
hn*10x
s%$˒_gg_}jii=T
`V
~v]yTk5 !4z1
Jx~wkz||   1

g}yf
+\$"WT
nhofZedZdk
%t~-)WbitwmxyjhtttOG
v       }                5  9               4 L   K   5 T   ;   )     	 	% 	T 	 
^ 
 
 O     H  a o   Z Z ]      X A        M ~   _   /   M  c {      D [ r    [     n   !: ! "< "n " #@ # $ $ $ $ % % &H & 'U ( ) ) *a +4 + ,< , , , - .0 .N . . / /h 0 0 0 1N 2 3 4+ 5} 5 6 6G 6 7; 7 7 8s : :e ; </ <f < = = > ? ? @1 @ A} B  B C D E F G HD H H IJ N N N O On P	 P P P P R" Ro R T UN V# V V V W# X5 Y] Z [1 [ \R ] ] ^
 ^ _9 _G _U _} _ _ _ ` ` ` a- a\ bK b b cj c dQ e e f{ f g! gr h! h i ip i j$ jb k k lj l mt m n n, na nx n n n n o	 o oa o p  pY pb p| p q9 qB q r r sn sp sr s t t0 t u vp w} w x x y yX y z^ {` { { |H | | } ~1 ~   ,  r   @ |   h @ s    i  o   %   >   I   G &  w   0 M G   ;    ' N   %  1        6 M    P   <  D B    {  M    d  Y V   9    / =    $ *    <    q o Q  ~  N   [  Ų ;  N  N  { k < 8 * - ΁  2  a  ^  Ձ  | ּ ׫ x  ٓ +   ܑ  ݿ  ;   } o V   f   $     p A  /      %       JY	O	6

y
t\G4`&UHwe {!!z!""O"#$%%&5&&''''E'()K)*++m++,u,3m345525H5^5i5637M889[:r;;]< <L<<<=;>|?u@AC6DaEFGFGH#HJjK?KLM}NOPhQ6RMRS$UVWeWWXXEXYYZZqZ[[[\]^-^v_T_`?aa_bcsccccdseyfHfg-gh$hij;k5l?ln op]pqttuvxIyz{|}c~~RSUWY[]_acegTt TT4L
4  [
z..ȮhKh<Nh-
-N<vhNKhN<h..Nhv<NNvȮ--hڠvNvu44T44V``VTR
44T>
44K0Tyuuyyuuyy?j`,4G yu~8գYSKkj>h3c#^uiƭRu@->
aFMffMZnnwv|
b
L
 `Vc~ofa[Y x
T=

K
@suw#$L>$#69JX"!!`V+/EE+V1RD

_rq@3CC3
X
 W
p]]
ksu[zth
UE
]q9[[9:QQ:Mqksu[zth
UE
X
g
g
vVlXXlVv6 *33 6V

)\
Ki


g


i
4q

@
 vx
x

P
T/
P
`VV``VTV`ԢT/

P
T/


TV``VT%
 P


TV``VT%
TT
TV``VT%
^y
$%
8Ahhvjyy

88AA ee
ttA
KGttGK^
ttk
tt=

 e
GK^
k
=


pL
tW&S:aR`S:a))6z
6)õ`a;R`W&t
l
QEEQQEEQ
Q%
%
T%T
%@ZozK}zaEV" nmloL{yry}{{OJNll~n|i&js^^[{m~mkNo|y|rz{Kpijki\f_i]QM[!|Lz~rǑ̒Ȫ 'fgiMa
`




([popHH4wOVVOcZwE;
L1X vx
g
nnt+

s~oJ,nW`aGahc~v~AHH
!4t4tt4tttd
h
4#)vTe{||||Ng|5ppTy~}y:y~Tppur5|gccn_Tz}y}}zT 
zT
dgf[wXX[fe>
tqT:T
TT
TTj
44t8
nT~~
Q5
j
44t8(%
TT5
vT,T,ThXhYm}}chhcqj}}iVgvv

wxrwwvt6#
L
!SYylD&)'C3Y46
T]
n
t}|}zcesd,.9/F-
-
T3
T
"Q>W"SX5z|[,9FZ3T]'
"!
!
x
T


@
nq@3CC3
vTa
TTT+1kT^^^^Tk
[
i]bt^
k
K^_=1lno1"-SKq~n}s{x}zsz3;3n L vTT
T
/WW/!(ZMj:kAOK*
k+8V=_GxɁHKxMG_8+
MffN-hnog??go GwJfN-hnog??go_QPox}yCQ(Csyrp}t{xo`PQ_Kn{}|zx8S``*S8qxozo||{}s}|{n3K




b



|

 0a
 8
vvʪʪꪫʪ骫kihvvvijiʌ
t
1
w
ʂʂ  1
Y1



Q
kllt
 ʇ
t
F? ijivvviijn
)n
m_^X*DtcX_^sjii}jttjjhs@
 a
g|vtywxog`vf/TFw.qra\zzzaM{tswxyzzVc,sj|wut{tv\h2p]yx}xzuxWi:mY{pvzs~{sww}e_^#:/r8"
{
 O
|
o
4R
4K
4"Kme,,eBV4K"44"4^
t4&4t)
T33333333T4tXr=EE=UIrXtZ
v
g
JT+
 ,Q
iep%/,xxx(((#Ɏ	wR'VbgfVpoqqq{\/j}}Yh^?DFG@EatV@ha %-n<5scsŔO5*VJM(0x[[_}~􊢋%;AHW{'QbgfgFIGf=R!G v^]^z8'n\PuH#hPMqJK{-!ߜv`ЊxġMMN[ĐơϦԖУ!!!x$ǁΓm`r;ni~GhftnOlFKwz6-;p6p_ph6hpo;_}oh6h6}_Ǐ\|}Cy	^^^LuZ
qVpeptcCDC
a
ǐ]|zb||}3mrS
667W,"Vp~yv}u
] y]hvp|zwwzv{y{ |phb=
 9
,=
 9L
,=
9x
]b=
9,z
=
9]b-
 9
,-
 9L
,-
9x
]bDDD
t
 @


jtW
=g
TXjTR
Gm
tXvM{tz{~'&9)
TT33T%:''~)
TT
Tp4444Tg
|z@


4kqb
@
@
< 
D~~UT44m~sjiij}st:944::@
x
oi
NLT_p j
F
 
v
PJ
ϠHGwwsrP|
mXXj:bkkcv`~:jX;`Y;l-&Pyy;4S+,,||~KKD
fccK
+4444400f,,fMff// x
gg
}{|y~wjD
|zX
"K
 
{zt{tqT4 7\3ulz* p4Tqt
 x
Jw
x
g
KK3CC3Ct3
fccK
{kkYkkkYkkkkYkBBk
/

1
!

(

-




gs
_


Z_

Z	
 
S
Z_
ZZ
ZZrZ	
hlvlr|h@h|ZL
@^
:^
]ZL
@ 
~
Z^
ZZ ZZrwhZ	
L
~
Z^
Z	
@^
}rrw
rZZs

}%L. ::s
zz
zzr:: %L' zzs
::

::
zzjd
\
4 
X
jhn 
Z}2zz11zIIII{zzz1IIIIIIII1zzz{IIII{zv 
L


zz{z7
vv,+7
1zz6

T4T
T4,#Q?`\pnZtҫȧPKgjzx}wy\O~#7@TKT 

ttt44<
T.
4a+.
4a]
F44
44 
`$$`$`$
$$}
$`$9#Zk==k##kZ==Zk#9#k==kZ#}
#k==k#]
]

&&1
1
&&

&&&&kK#
g %s
''s
%%

::!8#t %56&{SjjQh[=<<=>
>KwL
^CT}s@skiij}sst`jt }sTӸKw~ssjiik}ss@@stjtTC^OGGOTs`js@t3 @wKmsjiij~sts`ks@s
TC^ǸTs
 @KTm@sjiij}ttT
Ttjiij}tsA@s`jt t
 @
@j
t,Qa! KtkvqCt

Zt
Ԋ

4
<<<
<*!y}|zTy|RT|y.}|yMx|zp4HhnzhThnhTThS\V`[
y~5V``VV5`VRL'HMoZd99dMH''m
L*
$
4>
4^vߐ
/J7I[^_[Z_~}y{x(4Zf7p\XTHaG-whhiwVQZ:#vz]l`L{l{,+\^˒)vg
4A
GK^
@k
CN.ETiCkhT$T$
?LL?'0cGv=<
vc0;'dquuq--I
LaaLvtrrtvLa`Lv$T$]D'#5'0cGv=<#7quuq-.I
Sv-yU*PNO_Z~wrsrswH7*V3ziU{QgegSA:NT~=L=&0ErAuX
5y}|y}R|yR
~|yMx|z]pkou`\\`qbuud[ddsL
uz``K4K++44-3V+*QQ듔VV땓4L554K 4˫44˫


44Tt
Tt
Tt44K
nt4
tK
nqK
K
Wg
."&Ft4
t++KQc-b.T5MKTz|
sRrQnS SL0t4
tĤŨ Ty}
vM%%_Ib	\;COLD|yz|rs{A0%ZL
TKi``iK,QQ,^l+
^l+

arzys
zyrrbr:9r
:9k
lr:9s
s
:9rrbrzy
zy)

4TT:yxxy}||PT44rdTk
4^T44fTG4TT@||} 
o
 pQEEQQEEQQEEQQEEQ
^OH`E{l^@lP,h v
4h4&)WWXg3
UGQ {y|ss^
 h /T
!

(

-
] 


<
g
  
2o`gfbnh./>p+>|Ri/8Crb{Zja_qV Om|
P.


44T'V``VtM
tY
L
T

 \ L

TTTTnoqqon!5
Tft//tq:v++n+*mm*+n33Aäyppv-)a
vv|
x
>oERQDEQM
ERQDEQQE9},~
 q
2srqt-}}N}}~ZTYprr~npwefc~rrq/s~|~M}~,soppndmfnen
 s
-}N1kmo/U>a
BUaN

g
y
s6$7a
O
x
dI.3WW
1
vx
fo1\s\kod
yxx<^
U/SkW?Ÿj-@	
+6	o
	Dɝ·lZ'#ik}ts')2OKebh`i_mdG1dq\Wm]a"WB

O
x
eG.3O׈1
7vx
GNOH	6
	t@K̬-*osr^?<kO篞
OY	OxxytR]׈ssvkc\k}\vsO1fOzkO~rvdO J.eY$n:moO\q1d_`cJl2)t}ǏymD׈
	83h
 K
@KM>M>KR4)<5Mnɿ<5)4RPp]W
 dr3CTt~ϧW
ԄT33~ϧ4J{{{J{J IYU:=YϿڼWG j8Ke`bz|vw{	̋{&,(i"z x
4t4T
M
T480
QEEQQEEQ083(y{wA]x
g
D
T0
TK
^@!
DD  C
M  DDg
)
^Gof|T^Go% 
o8^!Y1/)Yb1+1qԸ
V``VRzf|Xm}[YKKkK+++K+K$
;
+++k˙̚zfR[/`obt@v'T_GqzyYwjo`)Ib`__`b)`~oDW~jgw^SX_~|~~tjn~@t^oYYk|P/"`c}{q_'Tv;yyt  
z˺
?ApDU88Dp?>
\xTTz{{z~TT6
T
T
1 
!8 2 ZZ.n82Y\uZQ m{r^-Ʒ֫Ϧ [@{wx^^]Up[c\ˀt bdee	@$fb% <l6fGWG4 9<:]ua\Q ,2n{
g
ZwRQSqklN2IUphsJ&J}rIm{jlkāuvgE{|jZvkSr^kPxOH.76NPT>aa>"ipuleǞëѯx
|D
4)
&
3%x
&;*226;*{
u

qXsIm[FHNMo;otpлͩ&oxtt_Jdwry0Ayu{&Ay  v(TQrLyJγʣMfEpB}P7.G$%Frrs3Xo[{TO(QVY`1(mpnnvww."4X+prq/#>VK?ʹķSp. v/nQ11'A<
<<xp%j]^hYE֊ׅB
?Gߩϼqٵ˟'(͔͂z'w!q=wUG7HJ?xs]C$8rwsp*qi^arʆŕ vTTT
T
T4
T
+T+])


@
@@ntt 


 e
Tpzi.],++,]i{{}zyjpnjry''{{~{y#joicciq#4|
44qq4@
n2t1v~z1vF4YtHAAHZEtYrtpԐ

N


4Tttf
T
EuFF6!1=۴n_F(

RD\\u
eT$4
.G^SSG^J(@twT3fxV``V}~d3fTw@t(EQT! TZ`wrPNxyprNV[Pwrqqyxyprrwwr[PNrpyxxyprNP[rwwrrpyxyprrwP[VNrpyxNPrw}PNVVNPx4.o
Nwg
FPPFs\kd
oyxx>\V?Ckwk++JL
	
=3`?.Qm\ibgbjnG5[\ofuelB
= 	 .Gc4n8`XC>[B
natĹo8ixFPv8+֫ঽtttuV]]B1

o8[GngimQ`?34=_`b

	 	 =acfn}|}KKYXS#Ln8
4.,`
K
PV?Ck1B]]Vvuut+`PF`xiPta?MQYKK}|}Pfca= 	 	

b`_=43?`Qmig`nG[
ʰ.Gc4,g
ZB
xxyatRt]ssvikcx\j_qFPPFGOLJ++kϰkpC>[

4kfuf
\[5Gjnbgbi\m.Q?`3<
	
 	 p=ϰˠSL
H
jQQ{zH
00
0
{zz{QQy 

X
00{zXz{0QQQQ90{z 



00{QQdQQ
{z

P
007
QQe
QQ
{z
%Q4.&E݂v'
<<<
<*'~'|iyzr|x|~t}uz~}tyzrjhv~|'{|~oz|'r}spwhjhy~|}}|x}owuxzp}o~vqyv}}{oy~tcuyuu~xr}|~gwɛ|cx||v'݀t|$|~d+|~vrys~݇uw}{~|G|}}xzutl݇|~|rk|'|}y~z{|}{x|sv~vzyzzy'7}r~ww/*Gs kic8"W==s`jt >>Gww|&xjUt=N,BQ?F

_g
{tq 
z!

~zv|
b
|

44@
44t
t
qb
Zw$$Tl
Tqt{stoy$$$$tqT3
TZ$$yots{tqT+T

$$6
T,T$$)Wn|`_]#v:[vVi\\iVv6*446Y
TV

u܎v#6]_`uuu0n1W@^;Y
 UU`4U5TTTT`4S2SB  
zyrrrrybcyjdK djyddysqSUmtvwjoXV``VXojvwtnrryB ddV
ybcyrrUnTddUA?<AkST3«nUbc,UB>?BnUU'&UVlA?>CTddUmի3STk@< ?BUbcTm,Ԩ'&)J,>KQtd_O>Kj}|},D!/G
 
}
##@*!x
!@i##flA\4v4443T3o@T<K"~xF͇F6)-1?pWSRWn?=%(EUmþB B_XS-(mU6EF(%=?VXpO 򎬇F˞y\&sqb] NEN ewd G&NS6}dNDwO]bqNñ џsSe& GF\}w~vt:4+q4CKtېE,K
4dYztdPT
4VAlff,,fflAV4R
&T
i?fflAV4K4440K4|+fLdUS55TTd..Ġ
..||eWT6LL6UVe[o!"m\à
B)%h;=h&)CMe00
4T
ԟ4
4R
>
4{}~bx4T
TnkmeeBV4@>
ZL
 

L
Tz
z
z

wep5!Lg
4A

4D
pg
4A

4D
T
4D
')h	$J7_H,  `djXg]SˈScfzhebpR3 ^v" Om(;.?GdFjPyi7voMyyy4
 (!?::: @(g

T@Tz|=$@70
{pkgGR[".__ušȟmNgG&߅ȂAP_ATeAa6226^%OLJnpsosxZWS]{`lcmcbnXzyY\a\^cbhnnpszf%_whY+W~ cv͉ΒИ15hv9U!݉}t{D$<T;JYYbll|ԡǩ+}yLJGa75t|m`PvG#?}Zhzdqcwuvltlsj{hxPKGQPObktl{·}yُˌ|na`ZUTSR{S-deh}~~3U<
@?
a]
 4r
y}}yy}T}yT

0q|
@
 &eeO  .ZZ{zz{{zz{ZZR
OXOXXOXOXXXr6
v2

}WW2^3
T4g[wrrZZTT<DAٕ! ! ف1;))PL
*<<Q̙rԋѭVLE^"t*9xI&Oq=b}%BVH\fzw}i~w{z Y
nL Uiw<u8=q^Ei{PjPn]vӀ
)9((N
KsӋЬWMF_#t+:xI$Mo;`z$?TH]f{x}i~x{z!YlJSfu:s9>p_Civ9U:j\i.

eM#&nYA   ,Ómxwr
 .ffFfH4 ze`c`c#NW[S9Z))));7eefeefeefee)4|
{r|sv>(T+J~ff~JJ~ff~JZ

Jx
v
^ 3
+]@u@rTT{z!
TT
TT
TT
 a
x
O
84x
qf
@
@
@w@TurK@Tu@w@rg
Mmjingr;<7
M7#?#77<:fim
B4@ V7)0[/ 1 /^//1 0 6;$p#sEAA*,?m6"mpF=(G`$.ƣ0

з


D&l&yl
msjiel{ppmoy,,yrrUg[giyxtq]um~~~~mu]qtyxgi[gUrry,,Aom
pp{leijt t
 @
a
x
K
CTTC@u^9v:p%"M$%MڑhiCCTTCT&&&&@;$yz%:@K
%%vTDddDWXYV_lw}v~v*AdD
yo6$7s
	^~ )?cwrvy~x]͈}|*YvvT|
|
p1+T
T>
T
TT+V``VR
>
T
+TT+>
T
+TT+>
 a
 4
XvvuuvvHNNHHN<1
				1j
j/

eU=k<1
)$a)v|
x
4R
4T
TnK4ime,,~T
4&4 
#x:4tT.GpFD
4KqHaZxuuvwtD6O'xODwuxaq\_II_\DD$2??  nzykjstz{ztsjmy}z{JlQeűťž̛{yn׭
M|zT|T`t4`Tz|
)t
tD
TntFt{)
4z}|yt
Tty}{
tT4T
N[cG=B^60-
QEEQQE-
JuI7#e  #7upjj_pB:!5ܾئ_Wc[7+447V

a
ow

 

j
7Epc
m;4U<ua[wRҢ&c
&
RD[apdu 1
U;4mph]@@h֦t|
tKd hK $4
(@twT3fxV``V}~d3fTw@t(EQT! T)
TT
T
K5!v

Jh
h3
tT

J<1
4
nh1
4
nh1
:Bpצ^;
^
tEQ

!44K$
T0
T*
ttT7T0
T7T0

'
t"!
I
T|zKz||zKz|ET|zKz||zKz||zKz||zKz|2D
HL
x
 @^ 3
+
]vx
cUt"!
2D=Hx
kR
T>
K+
K
n+

TnE^pT
T +
])
}CWW2C45T-
3
4hZwrrZZrrwZh4!""v
"T]
44
45Ttkd44 hk )Tkk
tK+4Kk44Tt+kkTkTsTskkTkTt44Kk4Ftˋ v
|g>DRTT˫kTTktkKh@@hTT
u

Tdde
e
4 u

jd\
y zZ4

_

_zZ~
~
!Z
tG
G
AZ
4HHzt_

zYY
Y

G

H)g



|zq|
4KGfP,K
)+TKb
x
^4ԑTf
T
kD
nT
ԉ`t4+V`@Ӷ+[ko}c4ԉT
Z
|

4d_gg_d4T
nTT
[EQ
5
 vx
Ԝ 
T
TYw

NTt "RDEQRDEQb?TT?QE\EQXxC3
B ?T
 
b'&m
pZL
 
@*j4a,t{z!
tC8qbbb{y{x{K  t4
4tG
G
4\<-7ʗ7-tD&c+zi0&H.0,-##s&&2iGz@@RQT+c&&t
 b
L
tV``V
V`TGTTTh4&)O
|~aiEjVulѬo70 XDQG47mGGT4A
&Tnaxjigxi j(C(jgjixhi5' ==' 5G5a
Ta
n5Y' ==' 5YihC ix5x
T^,T5)TK4TTT<
TTxw
TT?
aTT,
]
TTFKCxJ

xi
yy
p<
Z;)C
cE
t+t
E
4!  +
E

r@ E

0 
E
E
p% E
0 
+t
$
\
q
^
jMPdioo '.<WN2XVu^i~\buA

^e
xvuz~6}
^+
ޠ0
$]UM'T6"W
NQ(YcjMPimpP~~~+r+UQtb3L?0X3>XQi\buAJ

e
xvuz6J}
+
 s]RT7T)\&

Y1
ff
ffzM{yz	zyz	%@tJjZ!!
!"
x
$yf+/Y
kzX,Hn|}1d]Z\I<PW3֩ÓWW}Ou[}zyyy}p~u[BO}a` 5_qUU5g
yw{z q~}mnnwmr
 
4Rt~w~tH
tt;t
ttt
TTx
V``VV`
`V
DMje!_NPZ|UzXrĬj
DMjRjdMD!5
dR쿣3>ێĬ TPv4TTTTT{K
=bCt"mUzxwyysq
ggKgywxz{TmӨ'&h ~zUB>>CnUU'&TUmC>>CTz~{V
y7"C+=

TK3Khnnh( :T+]vP:t+
ohhonhhn;mg<&S3
Y
<;|#&%6NkjThWx}p;F&<U3
Y
<Y;|$&%6NliThWy|p)o9Iv]Yfh{osjeV]]nw vvKuKp
JQT*FhltnݖݘƎqDA5%!*QTFhulstnl_a99:Pp~݀*Pk9okթ'
px
<
0
]]<
0DD;
D$$Dfa

8<
?CI
91
..
9~`n<
N
AENf^
;
TT% 7;L9\XpqTT^3
9$9 z
"
x
4@cT+}~|C3knr]J'V{ke{ohc-#(/&|~T+ t``t{yS;RQPIODwt{K6K
tqvMn;<-

=vvkhF8!!OZZ
ZZP
%2
2
! 
a!O%

P
ZZ2
 
X
!OO%
ZZP
ZZ2
! 
X
OZZ
P
P
%2
X 
FIC?6IY(uC XVYx\b66S
PeSGQGz5:5'DN5TT(TKKT(T c4R~~'1A3ZpT1
T7׷Z
,9_7T3
.TZA1~&
~Q1Q1.
ꗐv@Ta
Tt
.:
k
T
'
Y
i
yy;V>
(S
TS
TS
S
TS
TS

ssC-|a99az~
z|33z}
z99S Z
<<<
<*wvttvw_+
s2
Z@@@@֋Y9ZYhYY9Z@@@@Z݋  

jy ]
x
x
tR7;
q
|)
K
9{sYsn{xput}T4T~T;
T
}4TTru|utpxnurT}yX
nnAO
P
ggggP
%2
 

(@WWS+}}F簰ɋf,,fMff zz
q{ttz{O%
xt
t 444G{zs{4O!mFNB9x*}}~5W]4x2
G j
tTc##u
yussu~uvqxTzTQTT
TnTT u
y7}TxvvxzT}xqvu~TT
TnTT u
zTxqvu~ussuTTt<
T.
TaT]
TT xEFvdyDs4>$0K_|h)!<z35#N2)*
$
hekIz|P諌jjnW{2v|#R6&
I2|
OkG\L9xs,&
$
**$
P[fdL"* & _DOz|}yHec$,Lt1HDU
\+!W)E $z ~jCy};
Ch&5`v8:$:R?vk};
O*
z|% e@1*
%$
?nPDQ](E5UW+M3T)3w'T<|v;<#
O;
}ykאSS8x_uaz`{{sk=Vj#$
6
$$

@vtT
iTi{_,1!T!1NH&
	)$
t
t*
$
tT
;;
T
O
NHv @3uk1@:6zi4RG%0
쎔|~}.)|}~}*1~|7"C7d4}3;e:}38iOJK.J?71..KzJ1Z.Scbb.KjjlhM8ʟgk&wl`lKK\.K.H̢W/&~kSڡ#ڨZDpA4I l,,}V``VR
@>
V` ,,}llp8V`V``VR
@>
tTT $

'
Q
}H
|e@I $

'
Q1eI2
}H
@|
t'
QR4
4
T4
T4

kR4
;
t'
Q4RT4
T;
TTR4
;
TTR4
iw[
sW'
QЌma
"[
W'
Qd
 4
gnohgo44=
3
+,3#؋Gt`aMPQOddlli`g]_Q+fjoojhovuf \#ͥȅ֤ `
Tnhgooghn
41



)|mxrze`I3}y?z#\f LuOvhimohjoQ]`ldOQPMa
tGmqvi Ǿn4^ːΆ̀Ən԰+}j{xtzj1"Lzii|E;;]SHv|~}Iqzxcypst}qv5Hίp}Gq|z{t}ypjip~rx}xoddnyr~Wvuyi0izx`60w7~Q[`R|R[~wߋƻő|ą`P805]A]|s|z|WW[dm}yrxq~jiqy}~rxndImpr|rv| {H X?A܅wlDzك{цԨ_~q|||||f|mm|t^]Z'X"-Ibgiwknv v}(]jvgrxhklm[2+* mxfwj]Ynwwy{hsfy\\hqxAzireV$G4]t~%]~smn}ft]fcqyJ>LNMMNwK=KQx<r<Q؃vLNMMNLؓŞzGD!MLM.EZ#xrh]^hzirxrdVCVdqiz0nwx}y0gs|rT v7yg}}~5T~~K}g|ut~$zmvs:
ssA~Tz}xpMXlLy{q-gpLn}t"VOw( v

uvxw~~vu#,lu=-rutturr->Cu)k,##,)CrrutturӠ,#
ˤ
&~'+' }~~}}33	+t4b4tD809mi%if+qU3t
t
@
nDDnnDDnnDDnnDDn .bXXbbXXbpc}zppqh&c&}hzqppppqzh}c&&hqppz}c
o11!"!!"!$o1111o!"!!"!%11o$X
< <pg$$Z&]&8t#4#4-_G_G 
C3uXr 9*Hb=gh`̀,ް5-"MM/8(x,(90KǲіɕOTOm̀ցQ\Y5Yy{))+)jxYhmG{IUsV7=o{vu! z'f@o&d1caaPEb4"f|aunO鿦ɯ˱nnoI7J!I5.OB\WQĦdRۛ~-aOpbKI2C@lU[s^Yoc`̄ƃ ~ƒΑ~vD,@aD1"@3byЀѐl"k"rbsIr3p1o1]_qewG1('$:er)n'y*ԧӥؘؒ6;2]zt[uns PDcl|P~_q<}Nx0k<N
 pti"d-"`#69VѺDMV"TAK$ TR~tH
 t~~X
RX
~t t
tR t~
򕃘t


~~t ;t~
qqPV]]tסжihhMD;ZQuItI[nt]FEQZ-[+@@*e-8;@@4uvǹߤp7ZYCYCq5( v>>>-r>->j7)
1
;auabtavzyvvzyu:uzyvvzyvLR]]SBR]ĸB]Sx*.NZwR]ĹwwR]ĹwǼ|CNGCCG|pNC!C,313, q|]RS]^RBR]Ĺ_wη}|w$䔻kiᦿůI7J+kt}n~x?z}}}b;u{{~(  0YP
K  S{TSm  {qiTAsFGKiwzw 0 o_ewkj	"˒lshztu|Цy(  0u"5 @B '\ϊ؊sqٱ 0@.&7e}|_g͗|qD|unlaK]~d  iqqquzw|wʎó^=~Şv}M,7QupzTS(pzKYN  GJ b/ѓcctup4K6gp1zy@ yr7Y}{w\    wxFis}txyoGqtsp^)X  )iz=J<I
ԑyʂXjeˈP  𫐠{yM9<  IbquҏБZ=Z>Fdf|oL{1$+#~[G0`SQRne*wXjsIx[Ͽ^d7,vX9<DBcr~}\{zeugwTqtmqFXec_ddyq]ŉm]nr╠Ĩ  @԰={ j<5x03%\QMG
#K.<(؃fff h8z_=K8^@mK#2'(hU5hKQy%."/b7$:,M%sysvnX}||,#/ 
K={n
@m_X-PuPª.MĲT2&&<_]AQS@QdXJ*13SsVQ~ys"k=OBmmYXX[J:33:J[XXYmز
)MCKK||vpusrdopdadomnno&{{xojph_hmnfArkRhg/QQIs7z6ݺͰHfH́b
48TT<
t.
at]
4<
t.
at]
4

tcMAAM[Pc|xxR
w/PTMY4T:/wp{K4
TttT4
$/dd/$

Z~mpk`YyuݶSHkpf1H 
xx
HH-Ho{H遏+HH+HH-pa
t}%I3UFRH!f_xxoriB?z<."to2|3
CTˤ
T1
1
3
T+g
,^ }L
] v
@`^tAA s
AAAAs

AAI'tt2F^wtpcsKcIo>ZY
 deҦt,tE##E
)vo}}4u{zu\O#nWvZh,lt:$4Zsj{rglb1XldvG'bQ^{yqa|x|{jjs}.Ӣѡ?IYKk.#4)sV
1|5Gc%1 A XRf
7n]Mw]^}ǟxwVo]ytyywyB A'!3EMM!#]([B4WtIm@nxWxWtIWȇ$rzӎlQ3J>Rq_(%vv==)G/H{uAR6=z@kwlkkwllaelj{RI7
A5ifsgffsh./gge
0lF
miE#=[Z\Z#=EOiNQ@QyQ@QpzE&}9ً܉{H[1N[GCJۋz"q*g2EKa"81&*a/rwxrrwT(v]*I0  

3  30H"
4Tz|
4#"

T|2
T4#u
T<~~TzwwvxT14TT
TnTT 
Y
5
 )vdpF47zw8,lr7RZ(x[ts[{+;fC3DK^Fxukrlqv}TK ?(&PX+)#JU^mmmjgenyiYW»ëP7iSպԤÎ˒rSppoG.B%r u`vtTtpx
TR4'Zdz{IO4*

k.
pk?
]
]
x
tR(
K*
d
x
q
|)
K
)ۛS% 4՘ΖT˫KT]HAF-"Kg_yz}>Q~{{~؉؇}zy_gK飳ܩn_ZZp_bn:vkbA*t%ndʋ̫44m4tbm++44kkLJJl.d 

|{|8S"1ÞH=|}}6TV5wSL<JI<{{|4"U4wTL;KI<{{|31VPwcSM;Nۛ00VPwcSM:Oܜ-7OdٛT89OdڛS;@ǠL9"tgV``VV`Hzu|KRKjgůɣYPOdq2P2R2QreL]]]Le303aS[
ó^Uhvn2oE`+s!jmdfJ\e܌
<bdaʵ֊ی
!z2vԀ<rqo=w5d:y.hO6&&&&&&&&)k
kk
kkkkkɲ~=`Uf6@IV`b1N <:M@xi]'8To
TTa
hnPelnhK
leP;T
elnho
leX
	 PI{{{{{{Iy!~$~}}#M4m	eupb[^dtQETQEreĸ b$0Y	`	__	fdeggh1(', geffghaCN~WHynjmjm)KTe]Bc====OJi!G)eGlG}ff>TT=g}}RIcZYccYZccYZccYZc\pcdwywxRj.j.Rcoͭ}t qZbZZcbYZc\LgSVIm
6
ܰ.G.k.L.k?+llH\\HlZ釧鏼0q
q
kcthjz{{z7LvvK7isùĨwлQahaahhaai?Ul[Ĺ]SZ X
+)**MOvrqvvq 25 3+qv6!Mr34  2oqv* 
).```NW{WM}|XLy R]^SS]TTVQ~ùù]SS]^SS]WQURTTg
g
4''tTTttTTtT 788a`aa`a^ Mkl `
8aMakaW `a9M97Ba
8M97Ba
Hgg[oF
@F
CG%:`dhbgbۏ֯Ȱ:%G?G%;adhbgbN;%GH v/}7 
QYr3FZXaXxwx_blkxB) K%Lo3BJwu~kuxu*k?Oz!xyxvzAY
Ϲ[Djmhl|{{̡ԡԈ֊j8ч5T &9E
Z$j b<r(B{]<6TYuZ|iJC^E,g_zsyubՖӪu^ q-1ݛzJ1jI1jgTiԻEY}MF{M`@]~tvtz,J~Y=U/0Aqt  תԛdz}PPxvtnos~}mzVz-cObPru[NS=)id<&liXsՍ0ZZ6:3W4U_U266WBN	h[aj6GUv@cLj^HI,+Tjk(jjc+,54+,mmZZ;ZZ۽+,33m0vH9*/o⩩+,44>4q{7$//)9wh	0m+,54+,44,,nZܼۋZ,,>'l4n,,44,,44,,mZ;ZZZZ;Z+,/o-D/#5>'}n00nm,,54,,44,,ۋZZ;ZZ+,j+
JѲ"^z}i{ѧ錐zss^myzSvnnU{uuwz~ڦLvewe:rnwt]R{ϝȹ̯\jtazm|}l~~nh~uN?MamJ}fg^%llI%uXBlznxj|Z6{&1~\NULܿI4'6kZ6nNwatTTTt|
|
T|
`77lf,,fAV4 
JW?tqBBB44

@ 3
+
,
l
@
AKTQ
1FKT@
KT@
_Ky}}yKy}}yT686>0y}}yKy}}yT6PttpfeOefxxxxeOeffeOe//8
 X

 *`7Q `6w%	Y4W%*%	X4j% 1g6` Q7*` D4	Y%*&4	X%WT#EE#\[^hnT^\
z.}TNNNiYT}||||}TYyi[U\`uTTv+@8TjMQMQMQWm[FN$l\TT{zzzz{TT\vl]X$FN\vl]X4[^vTtTtP8jJ2RQkVo 8>A,'>&&2uQeGWn!eq=s)b?ɽVW X/c@o E`(yk2@	/@OlmCLث
AAlg	e1<fXEioB(4G#ɷRM7LMģ[?Qmkȥa3N HF?AG!</0U @Y\@քd= @6>U**j*.Nz+8a{z{aY%#y=<==<=<<*```^+LPzlX1Az/-6D&@I`_4|4B 44!3}|~jk/k;j:/d;jkjL`)
J
huY54Y\55\Z56\~   q@-33T%k        vvXwpD>m2W._Z8nE 5<hLhLQRSu'/>0Agz8(ҒӑP0KC'ZL{o_uOn	ɋ#xW{DߥpBdȋeE)p3+57wp	UtT3Ct|.3Ct|4'
N_N^U 
T>KNKN^' tXt.Xtv
&'y
&'Y

Y&'y&'bKHJjp̃Έb]aouwr~'89{={mx<*e>okjqpi{AR*7}xE|}jp]VY0-|xp aime{}ld""p*}|blv\&A}xfa) 
@po"_m3m"3sٝϞ¿8~~}~hs׌$zctc^_Pvv~w~yf{h{

Z~}}}}}||{|Z}	z}{10df}itj\KMuTuzy~00



x
<!!
!<jvt
Ǒml!4CPWhЌǌ|vw||ryIs7h3^1c:gJlXJU>]wD&_nr6Hgdalor@/K&``m}", y@}z~|{@Ë)ҧ̞ȭBO`)y)o3hm^Zx
:!4i 1J{z~v$${z~J1 E8)3y{||y38)E
1
!4gVQG ?33A HWT! 5|x$5!~;
~
!4t/|h7S.1l~gd`;!wgvpha
?v

!4a
TTT



???
PfAVR
@>

lfPzz! 
 L
44rn<
B@(vMzzy :(( ! u6B@!eDRĨnhhRnD
b
K!4Bf~:;4
:;
5E}}oۮhJto%]8%{~yxg(|{~rxjrqO>99l>SO~~zz
b
K!4EQl
1
%v
!44v{v}JJ}X}w}vw}Xe}w}JJ}wev aʁӎyLzzyӈzz|cyuYaaff6&̶QHyA~`Dޟ (#PgQ+<3%!!!S|BDMhߺ ђk
.-.-.plHs-U7sH<JJJ?H&Urs&l~v~||||~v}~rrrr}|" d ^)[OK0-npqD:)rJ?t~rIFo9$"%9/iüIIR^rdclmkԧ2*:8)0\pFN[BA\ŸghgGDDl)3=
6

jR VVVTPQSyVVV :R j VVyVTPQSVx VVyÁVVR j*
xmŁyVV jR ttt
tF4xPpFpx4MFqqqqIwwv|yx*|8G}AIrw-u\?	5'px$ PY84I5K G3#T1!I%>HGUB&v\wͷ- -%bbd&-JRprvQiu,t~՗Ӣ9RMgĬx{}ާEvhrjplJ- ?&n	 5dbb I,ueui`M6fXPljiijlPXlf`M6`ZiRuL};pommop|;LRZM6`m[
[ƗM6Ġ|}+vjS&zzgMRjhed9oICAA~CtIo}d{fxgj;v+Iz5&o? mjhĬ7;jjjjjjjj
6
KBH\O+:xOa_UTS˄B gftXRweWWk! :{z{zzy"J<%wly}jhw|m'!+\!ոϡnMbx7tttpopyjef{ m~	Ǻ iii	yzyWuf^V]g`[[f_\ A^N?I`Ujf#b'^ jTm4=yBF$3P:kS43g߫ޯG@pFAw@UMMM%O&iWtLXU_ogBFbWR?d/y(#-:=;ra``^_^rrukedA~ R?wnmm"?+ RU`B=jȕwS<;QE>?F`  RXX4! 55 pqsa_^U^HKʲJpwm7ųu~//:q~iykkkkkkgfhopypoon0
+(\fmjő¡CB{gtzldg{S)ik-z/Rɮ٫ސq,Þ2=5qnYVL9+3 zZ$;;#}MwzVqzvy^oyzzv! UggTUT¯¯gT{fggTgg¯ggUggUTUgTffgUgggg!Mm#[8ICnyy|죢Ԟ[TI& %7k
~~Tvtsrv61psYMk
wpv~Tv~tsrvlUXqsk%]r
Kwb
ܷ


D&l&yl
K$
h


>
V
s
3^ bXk>C_}g555333g}cm6ﳽmv%f~~O~~~^a}g767/./h~bn1lp.[Rh5kuZi/4oe
^Wf7h7jvWi'2nfz#zCpisL2r@;pEVP<Q<m+,4>;Odlw#>
ƭtt
4tt ttT 

ttZ7>jVRH%HVj

HR>7
E##EجHE##E

?>?

	++	
+	heXuS	+

	þuh	
	+	
++	SXe%	+
 o9˫49/ː/4Gj{fj}^11^rt|qj|$$J|jBGrbrrKK&	j	SˤreGe~1~w~~w~13
zz0v~0B
KR+'/gT9
<
+/,
+~w~103
avN
dd6

mcFr@:}77:@ڳm-T0>2tM2V33V2Y&Lt>T0-V-KKKKKKKKTtQTQTQ
 2
gn~Q TQTQ
@2
H~HfH
Tgnp(
pT<}~}(1TT~}<.(R>4tR>k
 Y:YY%$~~$%YY:YZ$%**44ool8II8oo44**%$Zu*+uHd8lhTwwvym\_u5^/7hVfJC22C=+JVhX[<*N?Y3: ]#"S:Y3N%%I%%%%F%"F%F%"mmm%@5z"mmmmFFVmyjjgwrPE]}~Su8ӗ)xm6
|uw}un]~')kp{u~y
nkuptogo>4y}Ϧ)Q4gyr=7TRyytvz3* WJttx~8tA&ysjmm}՗v
b

 L
TT
1
5L
 x`

  eepZp  %$
 B((BP! (''$$
GG(GGs$$zhl?9%$
_{_{
T
$
CC
C
CC
CEQQEEQQEC1
 



$ EQg


lT^_|_j-Z7BG:?)_ s:y8CXccs{~syyyyzyoto֎~@,="H(`dine|Anq˗Ǌܨ, +PמM	q{mv=m
RJCww7cl!w/|)q%
QXeYGDW[r0Id?qov|wvNX^UX
l-s|eW"}fڋ\GQ+L~bGDCd5.26J:#:t|mcUJmopmvn]TB4B@Dd$rvJL88˿}~=.|Նs=xzo<BYt,[YbZigX-{Y,t$lŖ/¸le'3k{ut~irgk{ut  ӥ`xnqx}p[!T77:_ @ \\]k]: rZwxo_  |  PMfmW   isu͐0  P|u~Lvkcpy} ~uz{y\ƊosT @ uwurl{~CBm]SbVBMjʞwywkws~~zqXIHI}O ns@WJ-E`Ǜx|}jxF Ĩ   6'r[vyo@  _@  |   MgmWisu͐!t~~yqWIHI}@    !?|zvYaOD  Vhx/Ym1V:FMFVmY%0D  F/b2bF9@O)nH4(nO9Y;zu1t&A"Ω̵i&L̔+@ ~tvqazp@ ubw&8@SJZu\ek  pkfY8@,F):J\^GZgm n| ~~rNvƯri_ z{wow{vy}psV1}nso(>}>ptlN[XKH[ͨ>1
"?4'::' '::',Ah" ttLRAS1Sc1J ֶgLXpjZ@  =PBBPOAAOgŬ\]W»[Z3)Sff@_±RD=̹|ͻMV˹$QG̟^ͫw_BG.O`IΤwϓRϺTEDjX  3""7<  "ߊmQ1 @   @ ryt    8spvu: @    rfqvu: d@  r_F       / D@    >L6L!   @   +    Ohhhh[N @   c @   92; @   1      y,   ((,     mm<}nik<ytgn(Bnlmva   2gW     TP      Q~a   wez   !  uP        !  Eu     :PBBPNBG=_!!@1    @  Z*y    @u  @  _   @  M    _HE    Q JiQwrSrNG2J     tA    (@     w\E    Q x]nrTrN:BNcTX.E       !  ]^ggTW-|cQ      f
    P+((+ll>vII<5YaqT;Qvy{Qŷ     `bZ
Y`qT;Rwz{Q9RIPP(*/inW|ϊL/b\04]O__@   P(	
e,l,|}
v)eiyz )v?
?
4s
For^{g=Zi
*>薚=v*0
9H
3s
Fos^{f=ZPi
E(J-I4i^xz xY623~**)(!=xetpqR tJ͉yiiylHXzdipsl_~UGJhsxyW9Yӿwyk]]s}zw~{mh7k>Yi{
ztdYgrn|oM򹓝gptx*kSk*kl1wGb_]aTfvst+*r\zheN;h_hg_@_hh_ilu~~$rfP|KEUfav,ɼuaaP@YXvvT@A!!JTl
~@7뀙v~6
u
|
T4

<JڔoCjSR'"pG
*J,)!!JTlpv~6


47
Ta]
T7
T>T7
T>Tt߼wOVVOcZwE;*
K%
L1Xa
4"9!4 
D7**~bELpCQ']VOnLE

3(``be!u!3>
V
s
a
O%* 
&-~&ހ`b z]A)߀F9:5$__EAbw}.$X'FFހpoGb{
SxY-	q|k jouhyəRr	Ta
_su#1
ff
"ss~ki_K_"ff
#us_^TTTTk
OZ]ukhPUj=;<$=ӭ}(70!uc6rtv}raf'ZX,WLpY
XXuxmihaX_)(XbhuX
T
KTTTTTTKT_hmx 



TԤ

siV!!ViK

`RGo|ivdd}}1
TT44}}v878W97̩uxtovwpEV3'(I6/H#@ _6s2rv)	7,u`melh@K(w,k/TcWBRZsZV: [X2;@LpX
"
x#&|C@H#SQ4 + 2йyz{6C'r v'QjaNScI=λۊ6OFuɷayrv.Dxylu\eh[xO~|iK! O
x
zz0	Nee%N0	zz

g
zz
O
׀
DDfwPakON(瀰bXS9}^HtT;
DD׀r
#
׀]]FJ{oQ$wvrGtKKB=׀vN;mYi)09Q]T
|
4
C$] cmgccm*umvpvvpquvp$i݆y"Z4x+4x$Zy;N9


@?@?@]??Te[R[ed\\dRjbO e[j|~bO [ee[\ejTSPe[PZ[ZQRT[ee\[eQZZZŅĀ4P:l94tMJlrHm9	MqxtturJespszy}e<cHuRtyzuw@BX2ʳ8g^zp}UY̲nxvwww~zm# Ԓ,f~tx*}-oAc2S3_( %Q,dFW<~4gEWRCtp|1$+s<

@T)0a_i3 4X;&uss9&%9l_nhY5]\a\<RVk_k`1T<kOFw 2ϵZ6_g<jOFx 2ζZ6`g-~	L9wuz~\LyǞMyv}N}	ǜz]z7T   tTtt4t4t4tt$rrd*

x
**
TR4*
**(
4*
T$
drrnZ\Jxk^kwwkkw^~|}T|zxk*kwU|zwk-jxT}һxjҺ\DE[[DS^mxH||T}.һһ\D.####'V''8Ltt22T22T22T22O
)$ xrOrmcqly|~"|yy|~@ |ylqrkew}xt[pwtoptbptUkr#$Uaᰥm}||}#V䕌OV@P[d\R\D?G!cLm?J9_	lq1:KI<EQ88?Ed Vws-1aS]aA<Uiut,e#z_6 IclT7P7o7w>>?DB(DD(BzD)ANZȼxȼXN=v:jTRR;;PPQ2<;5,$()MU]()++\TMqqz΂34ypm1
.oQke^'uv&^ek7|e pex#B9o=9B]:#/ݠp"\&"iRexphBRXD@ _* pX@RpchE:dM+A*[ $0bwqf]]]U9pttp.ptqtoq75
7A5
A75
lL6HpAOYKI++srs I0"/rIHqqIHrv;(hqjuqiF
ﷰg(7]F$g)XL
p'7)28]8j*% jjjA  o]"-]"-]".\#<]i|i|i|j|66
 6Fٯ6UaZg

<bgw




;A  A@ !A@!!@A! @9ŵwvmQuLflD^A94 wHMZXaǂݏ,!|)*))*)***)**)*))[OCPZ[P55ZPCO[[PP[(ǻ.S "0@:M`edeSO[/:~~|yw{
>g7.iczdfptð+&4Rl^vQBR{xxgd~y</Rc4jc'^d</gZ8%V
L


X
vnhU

z{{:X'&v'&4U
 h-Q Nkg-``%`azxwwxzxshtT~Tx'e''o|

x"888s
888s
888s
888s
888s
888s
88811
r
J8
8a
s
Dڱ
8
8a
s
898s
xyf΢{cEH$DEQc}{[hfKK8s
89811
Dr'm$HD
a
}K4T+TDqT1aa1qӌ$ӊ4FlGuj/>cvYXwrlO[MOO[Olr}twXPYv@c>kPS/k_`bjpN1kI7+447}
 

O
kuU)4S'-{:d@G
&zzEwvlmulchr]tbFs^[XVvN;mЋD1 g%/O,kjF?j}yykDDf'wsxx
g
DDr
#
;
)vg
_>hjthhjbgSgT.

T譁bjh>n_KD;D
\+
1+
X
 
suS&yprxoX
nrR/Eoqwn썍c@";;dxpXBB}tq۽
x
Tdmlsur|jtd
ttxtt0
tB
0
]]
)
\<A4l
+
a
x
'
8{uNvQ*33Q~Fu{uv+NR-Xv0SvXRX+
a
x

z
*6xllsvr}jPa
x
'z)[=)R~[~w~5-!0
3
A"~v_V=)[0PwK
uqu f!D! }qquur|jtd
ttxttAtt0
tì|r$
Z<:
vg
$gJAv<ֽYi<AJE)x
z
L
0ulc*5xlmxyv{?ZS
4t9Mkjt9Mkxxw
J11Z`wwxn=OvTJ11E`nm=OvN
a

|

)
gN/#-teZ\i\hSֽ?#f,WSCZ7)$
Z<:
vg
$gK@v<T<@KE
ii

@@==)
\< !
  ijA4l
+
x
40
49/
^]s
^]~94d
4j|ѡlsmdtK+
mv~^^MMK>j|ruslmdttxtMM^~ +
g
'
px
Tp
0AT+
0
]]B

Om|
\ee\\esVe\97M|?S#`<`Rw<EDz8D^7E&SMX]Z-`LML<z=a3lx-vxmqY*mSZ]eauжXp~v{}|[^s\IFFS#Jwaâ7z_%>}=af44	)x5Mk4444+C
 __TT_T   g
T
V
T
TG4Tk
T
tTsR@6{@),\,)+əEQX
T
V

IIs~xxx{?+)])++8s~vT@L
Tl
o
TTa
L
TTTTT//TTT lvTTx
T!5x
s^vt4~44
}}{ptrmg}e}Mpvwyۏ  L
Xtj\b 'djгg[L״(¯#wmݿbtG(   r|kj>Sl   st  =Sls_tiqnvŅ3I`QnN^DyagTQ3I`nȜn;((5;!!6ry  qhn}.d9=k%)}|||{zvvuyyvvx}̖ҹ֐acrppxswzn}{wvv   Ӎ⟳͂pTlZxeyR{ 0  o|WbeVHquO    z|n*)j4_SnNe]_\]gwkrmn   nny{ŉZlvTdp@J   I4X   ^xԉ  @ jwvw @  ~ny    yorpmue{`nY  npr@^rss~~xvvyv}y  @ uwz D 8 {{|z|{}{x}~yz~~}	; $  ˉˬ7y88Siˎ ;	 D 8 h Lp` d|jK='
t<<vug|c  ` |[
h f @  _&u1||~   yo9utwKrjR|Y%    ڬӢ
2H

[Q|+<cgvEU||zzЕ֦dBr;9WdIrPmu͆~//0//0//xyw`~"b|ьҋъ[[~![s'ҍҋӌl3zQR#krw:vtvv   LFTŐ{όxsx<ծ
|DBF+D~I#6B7}IH_I   D&\Ӂ@r   {)5?}   z T   &#?aOC:)x{}.`A<~$!	z~|}}XXX}sruj~^at\C&ODIH}ߤ@J6	 rB00AA00BA00BA00BNpi4rtT_		__		__		__		_6

$kt
t$K\\buA
<<<
<*t
+'''+1



a
T 
a
<
.
Ta@]

4f
T
@4
y

 K)y
K)y
K)y
T)x
m{zs{tq ZSXk{E֫}]p

O
e
KHW-CCHKh @)4
) @hKH-WHKh )
4) h
 
@P  @ h ! ( @@
 P
!  @@
  !   @ @!  a
iPg
 

a

?

a
K
 
K
R@	   @ P( "  Z D 

 $@@ D 
%
 D  B  " 
 @ @   $ "  @ D  @
$ 

 (
} ja
?
?Z-a
a


a
Z[
444LLa
xzzMMzzV``V

41ժLL\UI 
(fc}sm- -yisnK8A*,gtx^L p&{'%%{pVJ9$5EE$ݑͥ}r:CW*[_?P`X=}[A bc

kk(22I2(UJU2kY

+ԉ
nq|
ԑq|
44
n4toTTT0
pE77EV@p7U_xd
4
 2
 mI{_gg_Sr7b  Sr7b#
Xrzspps^?``^
#
_`b Z[z[;Z#
&jWWj&[@"UzUU#
XrzsppskG+P
Tv@TK
xILLIILLIx^ 
a
K+ 
tttt΄PHtZVt˻WLqqr Hrqqr1
nu~tt˻WL@mA˻WL.t
JMs^\tlji!)
tIK^0
tH!wwxt^B<``uft`WUab

tttt
ɽYM$ɽYMɽYMwwx?)^cj]Dcesҳxk.aɽYM$18X:b}}}
FhXa"!tD ( 	  }}}b81a
o
ttʓ
0%nllZ
!+fzb!p|/7chhk+^[THP}.}{{MYɷ7o_qccy4{H]ȣǦɽYM|%npzdcZ}!DR߼
\Zjћ|0!߼XEdkdNYTMNX0PcXR}6~YVW
to|
SkIJX%Ba8k
#E

b>[=:1

Yvk2
tOTT
0OUƀ
ԫafob~h
Swk9&&O
D[ 

gY8>%˻XM,ɾYMr}QQ|Q'%`em_Jppuiuzzwɺ˿gYv*ʹ%q-u*+? q8$@ q+)5x}2#xww;Q" 7=YjyJab
[;
kttTtTl
MCΫ
MC1˻WLN͜[
´[VmJJ{K/oqwnbces՜ѵvj+^
Z
d^]  tblՔm)xyx^HCii}l\NJp"#kk՜͜k眫tt
oettc7/{{{
Z
zf+!Z
lln%v
0
ǓEt^+jffllɽYM{{}.}PHT/7qͻ]H{4cycq_MYɛǦsjZ\
!}Zcdznp% 0DRɹXNMTYNdkdEXÿ!0WV~Y6R}XcP^vHZt|z*
	z`

}z!~q{yzp~"{}~{=UP?Q={~3
4IHt
Z]41YW36ЧubQEd]"*
T$
;
/V,'t
6
4
4'%YT8U
9|2'8
(%XU7U
9|3'946

k@tt++UUttttC<<4444
TT
UUttttC++<<44k
 aJZZZZ44cTSc++TS33ZZ
6
gQvOy#DORKPKaXWaaXWaaWWabWWa 45! 54! 54!-..-......-..- .. Xcc@ cccccc0ɂь8`a @aNdC9sbccc@ccbc X9XE-JF,bH5@Y&nË49HbF8s̷pzSzN{R{<	`_`_`_`_9''''pqD-A&aa-D`qX_1`AMtCC%&*)GGbbIc~c͋%)Gc͋cBս_a
3PD33DD33DjKgl:VF_-zMWSRn\nnnn\nZECSSnn\nnӾN+F:g˝VC&&ӋlgZG%%GG%%GG%%GG%%GP8 XL

6DD6srpsG4Tmmv)t~̩vVJk}ltu(vumm4[	 `$O?$d``zw~y8Mva\tiN߶܎`4s~nkA["gwdLaG$lΥэ`v~{ҊꅮK-5%L.U <BB<GiЏ|r`0+= E=w	yKw"woIlkhsljisQxK)]`J'R~×bB!-(pW}^^_I|Dc/ %)p}[De\]]ϚF|E/+'ǙeTGf{HB- *\mNNNNNNNN
6
k
 
@j<Z\
fzd?*1"0-)/!U=ITAIzWdd],O+2=q4{E)<A1t1j1(w;;;;;;;;	upR@@gL)wteC#B3B3CVj>|肙i54_:vx H|Q̋yPBCĻ*O8Qz }y2!v
w
2!dx%%uouyf"2E"ciP8+H>VV>8PicE0}D8F?:/5mV?_@)*_AUm֡F8~4pw:hIK6AOR|||7 ::-R=6jsnVK
{Qr2w..4$<1Unk;HKTC$[EEq;rI/(6F+ G-7+`=(c2F]U=PO>Ulkb
b

T@Z

T
t70
t
[
KWWKKW#1bnZyOL/õB+
h'X=-k7yS[rWmK|CO]ew,i@RF˿WK Jvf | )}xyk~JJ?X7gf3.x,+.46?JGXjkځǇvl~doJLN*4A@Pbaul~xyJJJww}IIJÐN~LkR{mmaUULEC><;;{mDRs*MSPwms}wy<u|ƌY10Y1122X48C1£ǳʧr]^NJ qZoe~|Z~W43XV32X+1fIHJLh67:gfs˂uncor~EMUUaml|ؚѩʵɩӛlG@/' "vg9~{~iyenaMxx,wMw^Fyl}l
66xtm|cw&LL+dtjiJ4qqߠ˚|O)xOpYpZ,,pWwT,JyIE7wt4vQ^6_aTT4
L
qK
K
Wg
l

''x
@g
TtOK>td
ttxtt0
aTTzx
4R7;
t"
az+PPPP]w~PPPP
QPQP~PQPQk"
az]w~PPpp
iP"
k
 Tl+,l
`
tT_`b#}
#b`_yy;i
t33V22VM
&
!!yrr-
K1
+4
!!
e+}
TTTrryy!!
!!A@&
vyuw{{{s{sqvwg
zz
zm
m`mmk
 

G@=v
T
T
T
%%WBS	qg@\LP{
|@)҅%e???
%%@w\h<;v-;ݯ].Sg9G  FXVi_d:ftl\mM>U:\!-<F<C;D)Ե4C554C3.N$rjm2	OWqqqt*Qt4+j@8ߪrr  Rr@LiO;{eSw)}5TԒ?>B	o-Bvˌ{bє~8w0R8#MF2SXtegJ]lA9HH8QXi[syxy\HN-fXR22<GjmkkKLЬ̬[H98HH89H,,KUUK,|}Nv}|u||a8HH98HH9v[y-rn
 f=qF)?`9{dP3o&?($W2
 `@f
t	 tq%M>"E`B5
3352E%%%%W*~wwwwA.#C'K]fT	O'RTw/+,{{a{L{{==
k
o~|܏fyh|lidbooprmmrrmvw~ov8
v
	 oT~ƣ @V

7EV@p -F1M \ZG#n'b!ϼ 1-+
h
O*
++EZ [spkT~O@GA  BHEB  Bc
6
-/-----mJ#66"*!!!p[mmVJE46H``Z[|]~c`}pG;-7-m{<8Yn,=auKKvQ.-QjKs[hshs\hF:87s;\Fsh[t3]-3s\hsht[h"eE!sh\s-3~+***}Mz]c.p%$fM55277<&UA++Kq5PPm;XY;v2
,[TT
T
 
j
tttZ<
.
a]
T 
tttԇtf
O*
$
g
|
|
Fh͉yy}~pjJ
J
jprk5jTh
htt wR*N^
Ȗ*
RDejok4ph4hplh/
nh4
nh9joqjhp4lh\ƙ;.
;ǾbP0&M	q$;-
l;$9	q&MtsT|~}StK|}St=u=ttt*w)))((.ddZNNZZNNZQ+A@AA@![  		  [
L

L
B 
V

+ -
4wx{~}P4g
4V
 
Mr&Ȃoly
_lZb
&Z_lZb>Tt4t9lF9y4d;1?;UҒ/tt<%%<"SKj<5eZ>:$$$=:Z>ejSa
$54444q(f?f?(q***M**wI9(9II9(9I*)wdA467MR*M8=IF[-2	~0XPdowa4
K^hvii!r(u)- vjzfj~qsoqzazqHoCwqs|qjz )(!ivi#o#vi%CT;;;;;;l

6
VviWPVgumlwa||q{cYili`dH__·I5)4y)Y>BݮU11V1h8SM$wh#hAQWƇ¹ÐvZ];();;)(<&U11UԡϱB.`	eSGtCa
$t]$ttR4&
4
$BL8,L9}x 9`Q^fxOoDk3dG
Դ"T>
V
s
vsXQF55EE65E<xiUNgs{f<ϖҖ~hr84W{mXx|cqJ_s '*0󍂎iZӵԵYn5U+"C~?ihyvxnnn6>#A0W9|xuzlMx|lT(x||x x|T*0(=`hZ6,
L#6-
I#6,
J-i1Yn|||jjk8dJ!E+z$99$+!8YisV>crbxy~vz\\\}v{~^ws8~64468w^~ybrc>s3%p[s
rrcrrkii~kssqrbr
IIV*s

B+$$c+CB
~II%%Uaa;U%%s

5??H5
~)ԫw
w
w
T
h

h`y5!L
Lp
Ly

w
Nk
+mT
TT
11

Wp
:
B

VNMDH>>35Z
d1
E3
:
V22VV22Vd:
'U/ocuovocv?%	q|~fFF
0.*ocvnvocv&0q|
KTa
KTTdhjw{i^u_oYlnus
o^iw\Y_u{jhwuji>qw[GA?ijkŒ[V(1g=VijNbi6%Qtb(enzfl4u~dp"v[~}dtVldvtşW4tt}}}"CVt[Rt}~[tvR[Cljh\^a\Qwt\s[Rsjz\oUwQVf[VT[gdk\c`^ebiObt6Qb(Te|TT&&'

L
q:=2G<LCYR:J5


c{{q{<<{{qz{cc00E3'ҥ}}{PRHLbyz{*Tb#E.ᕖz<_d_:@sgD_^_*dJA	Bɴ׵to'W4pwοvW XMuY1A3g,{ հ	yL Z=xsav^|ZZ[k.k/k.hemf$ 6k+ː]V$Iqo~QN ڈ7.;ghhVND<{B3^w/ۍֵ5b	LQ*GJW}ϗѝڏy kTUnn~ryj_MlNy|bmmT]bj[X]~-u[_k[TZKNW]dWT]TkYacYUaö1r&>kfbr(ywvE^nw"'hRcl`jObenfQaWT`]Tti\~{&XU3tOZq]s~Q[8qQ]sZq{N\[kP`m]lM_|r(nhd&>lecovDd$H6}z~t1YbSu\q Py,:|`B/O~TaKJ~Lyy1Vwy:pI>/2ndgaWrsw		=!Y	2R?2"?=. O?U<<quuqquuddVTqu"w+B~oftaz_VSRt9Kxx:Ktp;VwxQMMt#"Y()#`QxgihiVKlfT'Fb(-]ݸuWh@JM;uT|NwbdghsK[bei({q}P#4%Saj
_≖`/7bb/6aa.;c}}pmmlji0+.10.{\YYFC?>AD$(-}}}[ׯMgYST**lSmMrWJB`enū)c1&E,u|ѰڡXMN9)
T&T33T%V]!zltahqrp!s,o"prrgl!|N#l[heeezpK^7Lw} 
 [b
[)F3RtZ>UKLLdllh]rd.^7|}}\".% _qqoy~yGAokzAïwPW~|ԪAyoqq 0[]yZigmpgːt@6)HW

\!zktaiqqq s,o!qrqhk!{
N#k[iedezpK^7Kx}p 
	 	 #` RN{M{ xiwi9#GsE}Tl+{X|V}2h8pihE[&Yr!hgRoq-εߝA UǾԾ*}t~xqi#E3lgc2Fj`\Y=urrqrqs$>tY~\w`rk2FclgglbE3jr`w\~Yu<rqqqrr%t<Y\_jF2bfm1F$kqw~v}$}x$k1FE2j$t}%%%%%LX0X/X/TTTT &O,-OO,-Ojjk1''-4nOxqigggh~ie$DNyWvw#1rHe%:qzt{s[s,w!w""0tdcubhgc8cliccmid@dmhYid0 B cliYid Bdlhcclid@Y3W,zhehjwmyxjhhjgkditiy74kg
}RQPtd,c *pqq`NAp@`JQzH~GF+/2rYN'K_IFF_ʷзIL	P&0hFyzy\\[ V _JP mzBpgfsvy|s#Lc|gVXTVtbewvvNA($h^~mo_~|z}y~x|nf{DBYL\'>mZR{QsstN]wiggXnϤOTͮmwmw mwŷ	v|
iI#&bSS!mvvu
 
D4L
<i-kbUST345IIIyq߬)))19j4:P*p@
     P         %*.26Qjp{'0RY`fw{!.6;BFJRV[_fjnrv2BGY]dns{9`"(-29AEJOW]a *59AJPVZ_dJNfu			&	?	D	K	w							
 





%
+
O
T
Z
a
q
v












&0>LV`epu
 &-1CVarw*DMQ]ch{ %.3;?Vjn"(=Rgl
!&+4;?DI[m%6;@EU]eu}
(0?NVekz	#-5BMS`gkqw~
$).3;FP[bmu{<<A
KGK^
k
g
||qK
K
Wg
L
`
g

0
@
EXXE+y}}yK
9
+EXXE%
/'
`nT~~
9
33&
]]]]\<?
T
->
2
mhnnh,
@;g
F

s
%%%%%%<
K.
w
a]
}yhnnhhne
2
'0
]]B
}t	 "" 	
Ky}Q
M
W



+

ff3

(
T*
T"wR
3% }y
/
,
V`T
T-T>
`V?i
^OG`E}n\>lP,h
hh@@h|z[
b *!

Fm
8
8
}W k\
b
tzuxu[Brlmyz~ 5qsUhnnhhnnh
ttt=-
TTTCm_^X*D44D*Y_`t
@
y}}yKy}>1
33CC3Ct0rcrriii
!b!<
.
TT 
-
9g
,lnl||}_zob^^bzM<M<v	o_}||f
Ԑ
+,YY
ff9>!
>9UG
@xV``V}~d3fTw@t(suwN5~w}+}PV 
v
y};

O
T+T

jih
'''m
4(
K*
A3C]]
h!
!
rEQQE4~~4`_`R`e9C/R&aҦ4A'")~4Mff
,
:
:

tkZ
K9z
hnL

<

:nh
{:
}&
j
t%%QEGLfeNzyz# u"=1?u՗
a
5!8
@h:"9O9%9)o'0qi??@ir
A
TGK^
Tk
t@m
t
f
+ 
\

47cNt1ZZr
vvt

~ 
7zz3')8{z!

*3(
9"TM5Ř{~~D;i;
[81l
~w~~w~
JR
!V``V%
;`L< xra3
+RT

= 
1
zr^``^?c?
;
rrcr@*

OhL
:
1

L
4yrrrryy*
2

|z@*
Tz|}D}}<
.
a]
<<A
4@k
A
@4k
E
4
-
6go3{
X
)
Kxxtw~n\n< g
  ]9
_
xy
~~w~2
T}yT4
TCZ7)A]]N
mm))mm)~w]]w~n
g
@Uf@LR90ZZa
+r~
z{t44x
wBD$$D<Z:R
T>


h@@hh@
}t.+ݭF
g
2yqpV``VV`D:
N
~w~~rcrr@tpxyots{
.
a3:D$$D<
^$
4MQ 
q
5QDntye11eBByquuqqu;;uqT

QEL
}r
8
$(DB%$AΌy'&p]xnTTqRF B 
|
hwrrT!$DD$\xcikvss]tRat;fveK;
;
yy
;;'L
haahi`ahBxo7?LDx
+g
]ԫԫ 

	_$cXE##EE##Ey6%6-V22VV22VNba]
$
;
o"7ls

vf

z<<ez{
%
f!53RDx

EGxZny,.
1

fM@
jmq,
XtxmihbW_)`M`M}y,
z1*<)
;;tA
l
E##E
j
!5qt{tsoyRx
333vK44A
a
@@
FKw
,$P++/
N
L-
s}

Tz 
rsyy'&b
*R
[
&m/v  4X@]]                
            	      c   3   3  s                              pyrs @                                  "          "                                                                                                                                                                         
	                                                                                   r @  2       !"""`>N^fin~'(.>N^n~>N^n~          !"""` !@P`gjp  ()0@P`p !@P`p   \QA0ޕR
	       p                           X                                                                                           )I_<      O<0    Z"#	                 	 	                p   v    _                         ]                             y n                       2                           @                                                                                              z                    Z                                @    5 5                                           Z  Z          @                                                                    ,  _                 @                                                       f                                @         	            @                        (                                      @            @      @        -   M M -  M M                  @                                 @  @  -                 b                                                           5                                           -            8                                   @                  D           @                   ,              *     @                                                 	     m                        )                 @    @   	                                	                                   '                      D     9                 >                              d  U     *       #	   	   	   	   	   	                                             	                                                           	                                                                                        R	      	   	   	   	   	            	         	   	      	                                                 @   	     e     	                                               %                 R           E	            	      	     $                     k  (                  D    '	          	          %                  	                %                         P              /          /        :        /        K        /       Q ]              	 
                   	   ^   	  U  	  k  	  "y  	  U  	  $  	  U  	    	  a  	 	 y  	  *  	  <Copyright Dave Gandy 2016. All rights reserved.FontAwesomeFONTLAB:OTFEXPORTVersion 4.6.3 2016Please refer to the Copyright section for the font trademark attribution notices.Fort AwesomeDave Gandyhttp://fontawesome.iohttp://fontawesome.io/license/ C o p y r i g h t   D a v e   G a n d y   2 0 1 6 .   A l l   r i g h t s   r e s e r v e d . F o n t A w e s o m e R e g u l a r F O N T L A B : O T F E X P O R T V e r s i o n   4 . 6 . 3   2 0 1 6 P l e a s e   r e f e r   t o   t h e   C o p y r i g h t   s e c t i o n   f o r   t h e   f o n t   t r a d e m a r k   a t t r i b u t i o n   n o t i c e s . F o r t   A w e s o m e D a v e   G a n d y h t t p : / / f o n t a w e s o m e . i o h t t p : / / f o n t a w e s o m e . i o / l i c e n s e /                                  wOFF     [     \                       FFTM  X      m*GDEF  t       D OS/2     E   `gkcmap      rڭcvt          (gasp         glyf    M  }]ohead  Q   4   6M/hhea  Q      $
Dhmtx  R  O  t `loca  S`  '  0omaxp  U        j name  U    ,post  WH  -  
Ѻ5webf  [x      TP       =    vu    vsxc`d``b	`b`d`d,` H J xc`fft!
B3.a0b	?@u"@aF$%
 1   x?hSAiSm߽44,qPK qXE](2	.ԩ] "ED
i]DԡZJ\8wwV"FpUԯ.Χ(gK4On;NR{g`'!PMUHEՠJʫ*Yq9c<U9!QIYׅ-KC+	դU)Q94JYp]Nq9.qyVV
n)9[{vVכ־FWb++{>׍a|*gQ,K<'<!ɣrYw֜βy<q9{-]c]oI!0l67͍{jG,OX^PdQ{,M4c(QBX m!K,YHa2}̘0BA)ؐF}΀,Q8'A5(>W@Ex̢D&Ud#&xMx<aa,l2<M026Π^P$Ґ6{,#ƞ{MwpB8H #67ad&'~95r
3w"[EtW:ӭ:$">2c5*.lN/h]GtT  (    xŽ	|յ0>wm#Ye[%Y-YR'rYjD% 	,@BKZjHڤ@b-R+nhK~룼$;h^fܹsn{ι˴0kb8Fd:%Lה"1AՔAY>,ؔ#pZ4؟5made ?Ȝy=I:C D(nIxL.1!P'JDtHj@L4Ph' )b)vHX,f1c\'cGu>1~t?!xT_q?qBF#L%Dћ"?Yǯj??8>NSkemAYDb4J);@jP$
'qh8`;aX6CF*dYc"'?hLV㗌,>ce3eVh =C~xC\((qb@4xK&hׁ4\2Ǳ6N1|-;jYu@jѫxi䊧mKٍDEwq3̷.cAw@4t.gkgr{~Wl~{lW2}276a2\6oz@$HSH gbtX70Ktc1,7BoLƏ66[,%iZ,l>TpKSGg\>#A#3Eyk6v;u3!ZI8M k?8CWq{`C*h>H1_skh)ojOO'
!~dXgB(0<kOYxeƧĭ5k=dϧ> +tC-o
Ǫ/_koܶs+fOztpu7-}d9	se \9.H4!0S\ ʱk2"?ip7\2zlްt=W\!KyOXimUnov6:2LZkAA^qCޔ	&PaFI0>&Q#FQl>A·q*OȦ_@27l,sf6p7ܩ?M1vA2]$j";vlk~va0gjzRD:gc6yw%g(þ#'uB#=_@?>FVb0a!aL4tXv:Fh9j^xތz}Wn}7}jΚiHitKSaXEEbbBQ1ftxFȮ-"dqA\~F`6i䁕+Ԣ^Ȳ}ש׆k&Ĺ<-\;g1>w00v^x 7l<y}So9-ۮ6kбl˴no庾i[u~¬o`j{i\C4,"iW8JoVbpwC!;'7D.v֏noZ-nePio4~LY/zmw_gϽR"tޠ&NoN)4MCG2\j8d-@>#Ot^5+xe.^]׼G8^ m(t1	sbfJ	%< 4H@e8C,5<(kc5YIA]|ךl6+=HVcbKՋB6i4#_|&>NvQk#pW=u7HɰR$[5싙g	%19}&@$&l=1RI}9#ςz??1z&ı_ac|PI[:u;l->k4GYm|Zw}HnR=-B~m.ِ	.Mz^,0%8EG**|sg|ozO֬0sz.WN^	yHk<J{nEh

TG~o]VṇznАzd,/)jl.w<w	?5*FqH|<f7[6Td?C8S'N
#0f2^~7:
mM	I`M:ӊHF9B:gSkozk#Sǫoc3A'ӹm׾iknZ-yZP=Uc'?&ȏKEul;><v3t{8-|'
ea~H94xA-@ybT4@0b#]DDljDSio:AgSP z:;-|yH"r{B{\5RLi6AAtM]taRKC!1CgC샂 +1EG!Xzٛnzv@x -#i^x*$)W=O\f[WX~V?`Lei::v4$?=Ra#c]8YFJb&'{%LCECf]^$/fߪM;À;	6CXV#X~F<	:vCcyBpLv1Fv#9
/8VF01_K?x>}#G7т\Wp!.@bwɡ+{o#ԍPQҮnī66
cZD(. u;nM}?vtxF{+`
="rPπlDV̶ ? Z@H䰅][35%O)\^ Z;>Ftf-IzӮ yu1uo<:oa:uqwykk ⋜}0?jvX+}VG$s
?26YI5c$Cfb!X*|F^$p7p55߶6[mjgl>*	KO&
 8ܝ:ǰokKm~oS-*4E}P/%k:e"1AJCAX8=	 LŢ>ܱav{|K.3:\Bxwbeb<n/NjNjOTQMէ g[
׼1J[H*d÷J(RY}ҘchC;ayh&Cq;7/SGny'^9wה[yF`4;upX_#6Qy'xCq/QP&Nt 4pԍqD2/عi=X܆DA<->>1ۿvH?f58%6$ɲ'pL^HXbpIVqnA8Kg'i!UzSEI5N=hpV?(E Vr?޴7Vڋɿ.O;p 4NRZm.O> MuL'j5`;MtAQܶMyV<`$m)yڳXDa:݁q1JFq15-l\3~X-2pFDe/f!2i:=h{%{t^*PBͽ]YD3jd*w|GLϽ}ˑk7Ç=06oz*zo1~Jw00SePw%#@BJB	%+	';%!&)Hq 7fqH.!Eǎf,9՚$9 H{~i	Z)O|!"D.KQa2
%2Wɂ\{*B{7,9.'ew U^W&$r9rcGBwll<ʷSQゅh! iѨvJ:Y?#_m4q[},EA{VПP|Dg?9MId?{)/	/\[ Jҏ[f4G>QK^m O -7w]<U3jƏ,:Yq~0/mŵ@CCFq<yxh\0=RgYd((_2a_{pMT*0UT!if$ԟ(WqRC:Pa3=b rK1'-{HʽH1'`kϯex$.h{܆`FzE0c5xfM䏾}߾SSK]Nf'pPιS`BmmHv94ሄ^m D	$,'܄ pWɭgdV/L;MZLꭵH>{,Θ쬷ΘQSolsɿh?A2q`5Z&*X1L5:6ς+O]uej%?ۼ&aW?{2[}W?JbΙk-\b7sIkf&Λfx~nO-9V~cW"ȗy)b\)2MrWf;MU7'[-c/.ؾuMl&.9) G!!W*	60Cф#qrqOKZOWq,8́/XpTȑg<>¤)[J8o`
;S\S%h~p|J˾F~K=E0NQX*8;D7Q1QC%*Eyy} UG?>I`>'6<+3IVgϮyOQ$WBvH	v[Ϗ	2+'ø6N߆<ɕ2S娚9X1\┣df>B~-t>W]pPrZ['+ƌl9]8qC!'@AAOuШ
!?M\JMͭfǞ)ߕ=w?AN>¼}jQ<ǏpǠ^(}1+2qF4RiHďITr8^!gm>'ڸhE`s̊ol!(9~o%#)~ƃj$@ՔLpGOa{߿fé)zؔY<~^cs潺ݴNRURTY%8Ks3qd]^QTb' zx)HFҩPmUZjQ&XƁo<0jYGz]$8c&hyݼwΞ{9^sf߹m[vӣ!(ZAsۧyB8RiԣBg6{UmtyW!bpǮdn/ŷʼ@v/%cxEn:4Y²,yZ-krcH&^ȩC'Ȯ'^T5r)((IJU&#݌!+YM.JEX^|Lw@ھZsgY洺\ xԟxyLCyo<QO$)W6m%݆r݆dս{ObpAE܀ʌgi~AO"mo*![TmdHT1$
	PԐ4^sfcA3,XAPbksY	yHhP+bW=};"Z&x<SySVY&=4&1J5u~,ӿzeg^QB\/Pʄ%+pre|Pn TcZ>?eV"_[Q/5Y |qI/\9diEBh$vwOL fpa,?HgHf2RbL
v	>USo^1/,ēvcYGmŨ~Amz?/40 yj̸pk2H
eERb/"M75ul[drC&Y͐&I
`!>p;J-b--.VM4>Fj/5σt5}>C*<'d?,cdGf2ҁ0w6Lh"fKζp;ǿ϶Pdc1EOi%Ř(DCWV2I)TiMF Tz0U S7VmBW6;nYZUzSTg>(hF"޽T뽷R]L۶|Lx[s,'NU|E<4)Rp*vU#g*gjə*=~܃ASēAJHw3@NurbwȀʌx}[`7ZtPlh	L.)NU}kq'vFQr׷{ˤS]ZL(@*Sf^+uPe_k#.8ɂ%ՠ,@TKх
t`ߑXAD;b|pA7}q2
@Y`~iԬK0jY(R~^ҧ8>=F"˜A[DqvQCX|ZsO<NǦcPI|։2ů1Q|FH\[Tk޽$3X5ˮAq_rv7@v2ˀi%m؊fP^{ovvyfVw4ew""Zd[TCʭ"ٛ!Cƛ#^
ZfR4x pVrSK\B]Q
B~#V*px^(o/`Dס.EOWTv6M^~Eyl/ѫǊlQ6Mq":}Hea-EY"z"ȏVKF58/7
tDn#D*'^IZ}pITmdL%7@C:FBy% KS<KReīsok|ȝr^su~wN_VP6;Y\\lmI"R
2 ts0^~
;gELc7"<^$g$ysL״$֠ D>	\/f.F;kPbdz7ԐeͶ-6bybaWjnh7YLF!4wssFCnh_0>MZ nC*#5/OUN\(3o@[7`Mg8xge;f\y|f֤ޑ]i5q5q&>'353kYꭑ=W7+΋yxIe<PhX	av׸"cJcoHOCu]L5kі]x~#;!)B58/PHF#0B(p}FstM|l)]tϼ&ݖ,㙗nt,h[Y4ݬ$wQג,@k`Dg]r|Y}VqwRC*9[oΝdX6&=}߰/*͏\ ˔)5gOlӦ}1:>OYǏs(p6[B/t爁*̠-n:<Ц)+ް~q_}oxt>LVFG@d9[<s/.<7sBdB'wXοZ鵣W՗>2?2ȳ8笞={fgcsCmre#E>45qo:JX^ioP,xf:/yn9VѥS7=u-\%KϦUv,ⳀZ=vkN*+_.ڊ֞iڃ=w@lmr>Oo,VԲɝz&:'45!9pI	0@I[PU""sInvR>A9t$3/|k8yiEc8E!Q\ۂ}%Af4s*A8A΀>D=5uwjnG z?2Q/I=fH4n]澀YmG"2PEHfvZn<PiA_q/PDտ	$$~%NyhrOdM\-m(@\#ƼNJO>a+ uJ*(%¢FPJW,$))}
B\_wV] 0TOCÊQ}5{Ho*;;葞rǨMc54S
: M7(kY:z`gpJstˉv'eG^~iD16dA @'N ֭<?Ғ9庳bɩEÁ:h{h0vۧQ~{"HGQkl<:ʛ^g/_iP>N.?f1bzJD V
o@7R@6<%IF0mj=[}Nۊ57pyv4@<mЭ9Tp?R70қQG[jzib~/)wC?	רa-/Cn.ĕHj63pKrhXIƎj
o19
f\~:-ѓK47BY̆y%DC~em@]%rs4T	G-Ug>HOpVB]{9&^6|m_PLLI7ǒi"'T	}? 4|[Fǭtu/_y;Z?HK0Wzc#)~.rĥ+B&JG0[.ΡrOk;VCoX K۝S߳rt:zX\xmJhxNh5K`;ydp.Ec4XD<-llip.^p:u/.Y[rl_4kz$~Dq]7/T_<菵4K$Ɩ &wS7|K^7MsMGhw㢴0]?fja5aiЦ6C2nof=)d^v	qNcԎl=u]?;f-E~nv}5%Oջd덿=Z%v nKu ̓*J#1hu1Hr	o}SZu=w;nϗU`FȶEn?߫k&l9YdgA8NSGD09MAK{ހK3݊ [_]%W4zۈu9\~n3~zirX3k`Psn=m]ԃJksT9deYN`}/]U#b;Rt,lh*#JB+
(iGx\}~IֳFv@Tu֭J

@-LwzYgw`wx-(d٢]F3_XcYmQԃWb-FK5d-0b球֨T+_Zxcj*`}|x~LF*S*oMتAT1p71?Rt>R'"Ey)oP7%$rvQeE+nzlVlFrkt''?R'ZCEIKy	ga0^}pE;Kq{T/?i"%1ޒb-Ծqƛ˵+ 8]rIڣV{dȪ͜\AQvOS]0.NX9svb?OE~FPU}o[YKrA̓U%7Dwqb/hAhPbQؓJB8I?I%=XtO;(PhLdS 'hݱ>|TV?,O"\`7.2>Dfmg;-C'u, zA`-ټ$xvck2[xp\cbl΀ihsivaÛM,gĨlMz7JvˑVRWϋNo4(-XB^Cl&Vnnn D4[k6N&}f3YQw@$U$(Ǫo:-ZG#&/}?N}ƥ7A!MhW>?iXprA١b?uϱι-h6;SB#/@ѿJ	
!%Q)Dq:{JI^ޑˡPY7UG(h?HmъvREH=N`P)QG9FMSMG@2E$Q
$s~TkN"9Ն8cF^"?+G٠
^*gUlFVxUpoC.XCƵ׵͉qK[k[K(l;ӡn %^Rj,$) 1n.G:Cf(,;ĴRF_~^;իD;6|/jGGSSGGӎļDzbR/X?Up14u$`[ߜH477I~~Irߙs#6+heW6@wK̸h6,	1C"=meA=@z	sls];kklr^"s青>&Մ-[{JiҴ9[ݵȩ-]dޢcAn۹g}ꒇ6hTɖ?3s^kLcY1Zn[bݴE߆դwk3f>fMDՠaD~}&@5ugnOȢ<'`&bӬ-6;X"d*awYvtLXָkU ߩa=HR_@+j2T*£%/͸oƤy19/7 ~7_o+$DүsIH:r		yiF:v(dO":omdM8;Z9uʩHCg\K/*ԙg*-I_ERqR'[f?GUAovb	A$e]/Կo?|ԐQm4G7G833+74z*)$݋JpDNj5pqeDf/>%gW{U:g,nlU\t'%E}͝uCꘒܻߺp}U+^b'o(5gVBIOEm>5yzg}AP-P/ޫ 6)x5/t;1p1L9Aܳ|)X]mkFEH/4}:,oLMo6]YM50u[yҫfVh?E-A_i﫝j.
6|5`#Z-svfqӟs͚>w7C{	A]Bz,iH'dv?`E
x,mz`F[2avhp%(̒ʂ5Ԧ;Gюh\y";|"ٝʖrxzsPHCTvP$ly}iyhvMCr)#x-.(t%fu(ۅeUUo
pqeˡ啗syi	Xk`>X@2P.2͌>n|,/4}?A&Jr+ɐCV]{Z0 -	A=
F$+%UZyޗٲRB)wT8(aRΣ*-sr5v!^tZ:/K,'F9=G< Cu"$-FS2(F
0Q+Xw,]=bh[qBQI;)"Ō926r?}lV=b[j4AzKkQ?T[%$KQ-l_@l/	&;차Dr?P_dE1~z^I~breufP/պ#E+S\G-R4	SSV俑;*`G*5'dL
~	5Fhb`
ꁜ4[b$~GNAX$~}[W}_z×6m&~O%j/r&|_Sy<-*Lϛ,JQzͤ𫷣|V|GVW~<mblB&̭jy\r='9Hf)ԅr	w!;;vsB7Ӏ'k*irb/K+ԔWRO h$!`1[r(a\TR"P?]Y;?хyKRXWOCzܩHjPn[忊;͇GqZ.A.*@/)WQHQUL2^$,T=Q (J~BIUPJ=WC@ﰉ8&~DWk[<Տ}."S<#A>z	
HE	YnH4r7P?99ߡ|O-5	%4	ǳO/4L_PsT>LQD(J8F+)jCb
Mu2Xc8$t}&<?9lW~ҿ͑n90A=&W=sԿ_V}?kU(mutE*
K%tZpJ BWP Al(ZLzFZ}/40lV	i%L^V`jpP5QVVkzX8^sţW4U*u}L8F  ~3B"I/.O
=7BJA KQ-|Vw|()8C%ʴTols7*rev٢6mǖ	CTpT'ǑpL!jRC4}aSm[%4a.첹},LB=:ݍ'bdm}VY,t;9	:\I5fDAuIFH2 @:2	!ԏj-@ٵG`vKcwIlar%lEs
rDeTib@d4BDHT. ]K*շs\mF::4vX<;r%6aꇷܥGѧ|gуhvqtJJKH^vgp.?뜸B0^q8|fS[tCxҔ׬fй
^FB
PiWFpRU
:̓D}فv}4z/F<P莣\U'c?4sJjj>@Qr-֤U_o6q7P1ˤ+rc6I
\ (*v24Uc(A ̣93]z;0'=*,e56Va,qh*P@wȬG/Oj|FIm	#Pz;Jwʎ}<zT t~`ȱGP%;?5((u#vՊI#9,?Gb4K]Qgԟ]E[phʯG+`Ęp?@>!}"
ҽr=CD5 62ZY  ?iA
T(EUJu;"}պ#LcӗVWO&CIԙu8*烞QaQ^*z(L|Jӏ^fp104~CUx*rV*N9π׳Pūsp_L3Z"}&rO|l~kC/Wj><SxMbSg(]J(Z#x\$OC68-f:{Sҳ蚨o4:)Wb"uiuh~d%BAM
sWH.gv%4v+=¿
SGϋjWHWu>[B{[uɶs;laziW߭\zC|\f te&ߕ+Bk/t
CM	/@S>Tm
G`v`?G(,zb"eAAi7QR<"iX:I܋(aV;4R]}^1vԵ7=p|[Jοeµ{)e#ief0KJq"*F#(GjJFhX#шݍk5ERP΋	^pCeoe:{6۬5͝sƙ8XK6V[=}V+hͧJlZZ5W;TeV-@HID<͙[)֐l^bXeNN"K]@b?.HH
gzXaْA}MOeXHNrڟW;htgttOyu3=*פؿCFGsh9JͽZ-k]L-~hii.49Qr5I,Vݓ^jf_},Q6?5NV
ޞˍYٜN%ezqƨ>ZNt1  a%= yhޙHJZ?	hvrk@mY`^insF\*|Lz!/?)(0
MS4(ȗh{-'ho7cCҞ?6'|ubգ@!bÙf{tz1UA?=@	t%䕉 iu[NiDGT@:p<(cXUm2ϱ7zOM^FϴYUfwGs#t:/~Os]Fݑ((^?L$SʽWzT>m'_d: 5Lh;H7WgzgZZb3{2d5Jj9c+\vqzDbbƶg "l@צpQBb S Q>+d	p%}L!cdwHopx(Tpxp# :dvQqdAQFdLKmPRpU?lzg-jPbGaR&^q>u8p&Ӯф`MGSܵaoWܛZaâٟݰV5Rs2NX	qGB	OKgBW)Sg\ӡl]z<߲o-_-AKMqӭ!æSigy۰]K;ST'kPqee7cZT{~*7b\H?jٵl3PоwT2jY; )lDueytOTjöUHXgɬ,WϢ^u![]vF|
QGh`(#	R'5XDQqM6gc'bu:'H(?yյ6~.e[n	*UyZst9R!GMM$xz$]{L<}4JZ~MVՕhy >@u+]2FqO8jѥWCQqrw.䄫ޥ\_y\On)IKGRHŁqI.
d+u@ϴ kŤ}9Tv6*xge7?ì}S-AUOMlJpժݧYwhi6\fAZc,rjFTMj8kO51TqW_n`7%KWsd0:`OXs$4?:SI1 W-Pr}²9.&P^f
8(WI``@5a}ziV pPԽ+:d\j"=aj)W$q{͜p)V|7hj$L֡9\ځn[ k{lG.mm~TEbȭm`
wnyP&:PLJY_pNWzVS׃]7Ed%i癬|EWM7rHB6`UGZ 9N2l2ɅHY(ŗiwݓ[`cZR;Yz=TrvH9c.ֲG6*p΅'[:/ҪXCYхMt-']n,{@cObIN.xNF9뛝NK[Xr=WmݏƦY+?sJgXuP%ȗV^[ W;Wxvi/XS3ȼ2ԩZ<F=0V[%R~ˌxysy?Θ(Oq_V-aQ*Q1	t$jDpRR~zǢp"]gw=%GVrt>f2/y?8M@Q*˄CXk?MzT y?ZYu׳)]͕1-a7j~
.d
'VztXK2k̹d?zzK.>,BZ`q'kHqy5j>a\C#H;#p7l4}IR7ފ0$=V#_.vs{g><c_Ogx5&?̠';zaa:zӑQFꉢ^MF 9&AEbٽ\|3gE}"+>h!Ab/p7=zmi%͟3)^Oj<_UNY63dsIr8EjU*33|v;OB@,,\cwd}6k.ukF9'26D]exGJK.׽}S$@t";2 ɩ *41_x7QbjX9Q;#{9eI
-奐br	B<9dpzIVQ:l+si#=T+R(MDC$
a̱	ONgj19gqXk}FdcG,&..^ɷwwc>E_]3U|t{Jf窂u_.\*W=}lNo+^Ṿ	vP>~sTjWz~_ogS}-DTd-TAaYf3,PATcmռ4g}mE$BwŪ8>9JW⁩O/9PJCXA{,@c,tEJTj9 8Q& HPl~K%ƞ1ѻ-eDzxNXuz.9}Mc&:Z5ә8%յսmomCB:l8~ܦEjTYHYvnV^IN]]CXkg#scSB$Ý=$k}cG&/z}_v6<7IVGGg*l\RXST)E%Yu~Q~>XЅ`9Wk*@_ՊpM]0*%a3X팁KM|{FԔ
췾d7[nlͬD@m8e cż#gHdd@~.jllɛeRcxE((	Km¼GXA7S@[l.%գnMDs]n_Q 5i?zGTG3T@e	i,r
O2<l+/,%m ۚXn|E]lí[m<|#z+5 7&\5S-{AE^tKM^rq]FmC%2vJ)W-}OM"`9l+=%"T'8zH3QҐѩYP~VزNi7ۛ ?w1 xc`d```d?oAePBYt?;"@.H cxc`d``
&]a A_x}SJAS<` b)6>@D"X\o!ι{,_oggg #JVYp>uC4&*<=$g9W@.0q- ;:pt"HUe5Vg([Ax9!޴EMߗ4N&ӞwjtԞeσLp>w>Gpfz`|^aż>)ooMg+RmRq,RJ1XTN7t{IE\F8Umb:fN&j9Y xc``ЂM/^0Kؘژ0=avcca>bĒĲk."/
I888qqpnǥ5w)^-8||||[5? JPKLpPa)"Z"WDmDWc3K O<H|D4$IjHfHN<"yK򝔙Toq[dd<u͑"G\$K
n
w(9(MSڡ̧l\|H
J4G&	{DԞQaQFs-5-/m.*]:otet;ti-һϧ_IA%C!u/Tf3V230f"a`䒩<fvf5fw̥'_ph8aeeayJ*j=wl$ll5}cgecw^>~/cLuNN+9K8;99/p>"k676-nܷ0h8)iʋK+ s9                  @ .    xڭNAwh
/"TD#J$rqr|!'O3XFާ0wY 1fg;73;3 xE0Cq=qX4GA$xZB8ڃ	Dw!IaSXw.0?oN؍gڍ@\A`sb
k`sݡ},0YaDȵȵMyFMvYdS20~>/qJG
i<#c0C~G9eeKvв[ڷ{&V(Ө1j1MZqr7,gKܥX0QY{
MYжz=a:[jEݢ	BZZ=ns`+o̏  xmUSgFB]9I$uw-J;mPwwwwwwwwlޕ]<3)e׿7R^VV_@$zГ^З~g `0m[czf`(323323s2s32 eD*954XXeXX14i++
kk	[[۲3Qfvd;1qgg&nLdOboa_c@`PpHhXxNDNdNarsgrgsrsrs	rsWrWsrs7r7srswrwsr OO//
oo	__??f,˺eݳYϬW;MelP68s䘉GE{RαM7nܺp;ڛZ[ݛƵ?ѵֵykx~yj?\3V+wE5=QMjzTӣ(vN؉k/셽d/Kd/Kdbbbbbbbbbbjjjjjjjjjj/r{^n/+v
;NaS)ԼffffffffnnnnnnnnnnaaaaaaaChQN-ܩ?C?C?C?C?݇C}>t݇C}C?C?C?C?vNjHMp[qn???????>>=<<<<<:::::::U>::::::::=;;;;;;;;;;;;}VhSo    TP  N  AM                    LP                      ',                  ( G L Y P H I C O N S   H a l f l i n g s    R e g u l a r   x V e r s i o n   1 . 0 0 9 ; P S   0 0 1 . 0 0 9 ; h o t c o n v   1 . 0 . 7 0 ; m a k e o t f . l i b 2 . 5 . 5 8 3 2 9   8 G L Y P H I C O N S   H a l f l i n g s   R e g u l a r     BSGP                  M M F٣(uʌ<0DB/XN CC^rmR2skPJ"5+glW*iW/E4#ԣU~fUDĹJ1/!/s7k(hN8od$yq19@-HGS"Fjؠ6C3&W51BaQaRU/{* =@dh$1Tۗnc+cA	Zɀ@Qcal2>Km' CHMĬfBX,Ype
U*Ҕz
miO1nE.hx!aC
XTVR%|IHP5"bN=r/_R_%҄uzҘ52ġP)F7SqF{nia@Ds;}9⬥?źR{Tk;޵ǜU\NZQ-^s7f0S3A_n`W7Ppi!g/_pZ-=ץ~WZ#/4 KF ` z0|	Dѵ  &däIÏ;M{'ommI!wi9|H:ۧ{~qO, L]&J09/9&Y蓰{;'3`e @vHyDZ$ 3Dx28W Cx5xwB`$C$'ElyhԀDJ
$(pQAA܉A@'$hp0V0 `se$4$"t2=f4A{Tk0|rH`L&sh]A<`R'!1N;_t3# V*veF`E O${)W=p:F`22ړC^.ćG<<?~z>.pNe2ִ+Ysl:˼ܫu5tu^86ȄTmyQ%u~%~1rҘawߚ^_ZZa0!N`.uqYB\ᨀ[e:@J'Eہ,3ubj@pfeW9(	ޅ=lG7gj SM609OˑlBa݁<Bՙ(VRApf^+g9qMt]تpEr@]@VkV
ud^X R@?EY2]#Ǽ4JK'dPC|mmn#$+48u'e&[n[L%{BCDL:^!bƙ:&g3-3ubiLZڂWFSId6.k5Pl77UzT:NN.")['|U"AIvwptdk9嫫9 nDmq7I|6Kbc]MBABȪ _JTq  6@Fhd`GT:M7'L,IhFP	~j $¡ 3hA -S^چ-%qe~Qqln"i&Qe?FlK"As(3Y;"Let'Rz<MW!S3$rZ:b-^Ǆ/$QqJB'WdGAO`.(	o3B0ɑ1p((*o^ǪkJ`v[C|9=#AQ# 7;.]L:ϸcdiEsr6?}e@H- bƖC1;. v.ɾ$`T JW%BZI04^:kU,C^WVF`Fb(OO2<@Xu g~ɑW t&1\1L:φ"!P3/^ǰqw`IAD
)qCfO 02Y293Nfp\ Cah&6p`ځzgB
hRf ];]#pw_t(pq꿏ٷ,bdkRBT?22cFy2%Cn909E&#lT__Sлg)eh/ڷ+#:FGotk5Gbr;Cb˴:#ɜ	&  QCwmxlNqP)͐3f-v5Kh0AכjnSp	^HGFf H	 "%[ѻ @ p aα $$͂*_\@>M10{=)K%$C
9M4c	EotjVGD)l8,\w! %$3t		TBzҴ	iUJ[xgdBr$!eq"J>	)\~3(^R8#>bHG'7_fӫcκtD oAA߃(qB<``VΫ֘*buP4v@+.Qԥ$V@C0
RܐP[z:XH#es>?EWO>@I$|si
ES)0A?9ab,@K̩o&Q%ϞLu+
+H|Ɛ?NK4CnPt'OT.j5Ĵ8vw֜I&+`yScaO[#gQd[KI矗`ČLP	# )27aTi@c\ސ0nCpߖ運4͵x*RzYbT[\kUvHʈqp঄IIŗ)bB	XPNtz	2I== ;}bqjiކa#"	>11Ap1POOuxQ
Fϲ(h݄O'MDxLK$ȵh& 14SirHJPt DM;rM+
*ؗ5u2$f3K <PLrcI)^da>
%ѳb(@,2f,~"7R;E;HX(42Z' Tۿ2J+^!#oY~4-׃GW*!A0&8f{`W=DP8'= R g}iP>#4EBRY^4eN8V,[BĨD#X],LBsNC>+o^x
jC.4Ya_{eA2=r+ 9POA!!
}YPJeGn%x1/}RgHa^3- 5
|qSaWK{1al`I1Qf_yyCZ)L3X]W6@DMT<.uGK8DsбWr\7Z\V"ISd>CUjeD	3MtWcPӉ6#3QnቩJ\7#磱`؀K lV6&T	~l. <BP
*!zRZeљٷT#CLHW)DpYU#51{WJ4^f̼Zy6ӑT2d4H=BҊ}&݃,aPçv+:2~*0dɓփd	!"A+r HnsAڗUbHN6$.l};@iK \҂:vQE :,|Q Y0|%@ ܁qcdqh諹vCGV-(m1q89KFä
"2}Rrz,j^q\ݖ#p+`fl:kt5EOaIJP@psEj14;6/aH.ӰT XpLL8Fܚil1Y؊8%!/{霋Xb NxpPWcI9g*%:LuCAO%/œ(Y^?&I'uh[xQ$zҵŽ	߳(=V׀mU)lΠΒid㦈~fjGR{D%>@61`! ` wYk/a0A¹ԁYhdxk:f<WL4`8IYMBSlc-E҂'ڌ:,DƩ84)~2jǠiB(L|"a4,b8ԓi 94jWщ6*Tc4g̓UMbRE C5)jȴ 16pbƎHFxģ%4QCʈ	$9:M>Eao̟^<Iw Ygq7s[	-y1ع5aMKאRBYFq}8*Nt'.YbZvK
(]&ɜ(ՙ2:0oΏхPKiBH4UX,[$
0mXش f50VR8%ާDtUs`-BPzPsvI8z-t1DiB
"˶YTJ	.?07jLN[2tĮ̎ #6?E׻:ɞY;A&qSIR)ss
9*x0Bj)mHAhyЏhMm&4Ŋ4gV&tYOCS0Yd7MvNj)wA(o"͢[
E`7ezď-Q]6+Bca@^I:һ=sSnc	6OB4LGpBq/<zAC A~x06rihhIطON,:ok/{H,zЂgfȻz΀5FTrn/t``l*H6jTtG/x@P@(Ipe!`wv,:A쑜N 4}09zqC$r M`YQM䕫(|B!>>O	pwj A*@JC[h&3B Qbϩ8:%f~v/lS00a"<TX@&Jg3ϕHFoI8{:YTb(Pj<za{wXoa04 3lGȶN0>B8(f	uGoǚgyt_y~͔
%mL
!I$X<T+3dq
DMt2|fEV([]NdbD3Sp'RGmK<Tٰ }5iܷʹp#&jFZ'2%y9Q#2H]wA}vf%XӚ)X_S0t(-ⰓjHpӖv/詵,9w<`E
FagAٓЉt)le
;$9{C ()?pIFb3l[):drr]?Ֆ?BdiD7hJ:
U%n3aƬJ.>t0~ePz]UgН=_?.j#+`li	BM5 őGp7a
֒%Y[UG9@\bDY{{ED0
$Q+FvC`ݨ3Q	E\uC9![$l6DoDgG*+X!%#Cq?8ZUB)U@opgީZq89|uccAќW;@">Ph_9}.6V/O:3}ZS{:~ykcO6;OB=bV.	Rk
o^GV= }oI"+
]wFzϷ`<30h3]Rf859s`KM8
XUq<\ZOssM&j&	.%PBL~^Gˈ3pD:Z<\ǠiW̆"(:zX~0PG]8RQMNT qfW~!0R%Ց0xvGFy/F-wu/*+	\8@6c<L;c[ºnr	QS'oQuT{qҐ_ͿSdA*ð:m8Yuz2PBHh`lkpLLh
cEb6eۏ ҋ ?!>|*=VK@rx0G`%ryr[6Y37f**n%9df11ޢځ^']Rq. ,^%le#wWs56!=!q[ %Ԯ]5^:m5)?Vb|u7fw,:YeR%
[o gFAzFPx{dxíw8ٔ{{L> d2C LL,L,(mS$=|%֝lu&	ą83
NXx\VnJ[)Iw/鹻|GźYDH*Sp60cJ2@W%Ѧc_^$#*:G6n>D;~`9hXB UJB_вˈ%w'$v|#T<68KMϑ-5U+'B
ĪNbJOv'|+*Mk(d}C˱@q&aR%}
!VЃs3w2a2awHz/Q0F ]~;ä NDP
mK3xke_S!V&=v_PL9؃Yi
NU_)J69f*S	 1 7F|BR$y,Ʊ.&=uqsODBR=ɳeؽɇBH
2lu'h7^#S)Xi2..P e/@FK$](%|2Y1pC8tI11N//+\pjd WmI=߽YZxMЉP81/JG^U	,Pd1O^ypql2h$jvI%]V
. '[+WU8[D,߻-=[O

wE)3J&dقݶR¡S\. 5J$I&oHȳ~ lz>
Ux/Hu;?Gt{?;TH L|F8}{p:2t͆<LCA`ʘÇ득+'	oR0D?AClIZ1F?j᧴{^ EdGIT&#eJ}ɣ_m iA3K["oCTJEߞ4c$jݍbYnathY `YGei(a#psWi-1b,ʎTcmbhv9jh3t4@zKꙆfjĖ\$5P!hR$P
Mњ`CC^%2]uOsLTxpY!UƜ{' yL +lJ8 )@w$F5t4$,34aT&݄Ui+-಑-,{!/\ς'&S 0xkY0I)'~ ꫕j#m!-TQ`==KR,.isgI&jf-I(~o,i傌t&\`͞ҕ,YGܑuI(~[!2=h&I{8~4
j(*aATR?b0IKP
M^cYf3-Jcr;ruGuAT1?Q8Dpyy+c@6![ofZp ɲ`$Q!O 4|qiL^_ǀM+ƾQb#7ՃX5=qQ!im~uݢ	r(48zrY;*1yNk$9jip+q]giffԥ׾׻>aѧp65Y"LD.rVS_k]n&Hz~9æ
p$4ق'{&M\ΰч!qi (.h'BT|{I6cL.빍iI꫿\!;g`1j%C o3*60E؎]t.-%0YK_nft] *VFCtJT+\WZ8gF^
ޞf 5I=#6.@2z;W`B/ęQghjyJNAX3, K66ڲM0T@O{4kj|"ftџۄU<-a5b)^R8:ilKa6@!]buvΏ$	oU~:.Lte JξP
l$S[z~Rq39钺9Q/m"%ʤ7	5MKL鑧"IߏG	XTގXLFݧVjp^/Mgۻ{w
*9Oʈ<"aAq.M 2@mp^'wߕmkxO8$[&|YZy`2_|%r/J?QṈl3ÞKE$wvCha@U1M%0?1*$GZ{!|ʿ$ە-٪Ev;͓:`Bl˸쌧ɬoQ0&,F?^s,ch˕$Ecl0w`⏺ň@/r^l8cT3k@JݔuP&ʪNdJjTKi	*uX{tj~ɡ}i\BKenȵ|Nu#]@lCZ$iPa㸩t04y20s֪,Au!QBϖ^@Vsɑ\Za7쾉ш6-TrUu~1HJ(<αbRԖqiJ?eG *jVħ":Y);-Fd!HG~ux	cb6m)&;0dU?8X~12ۼtI x5{(z
'[ŃkZЅi,b1̇`(mHNeK/
[(#QGduT^m%!(7KgP=hϕkɐU+.[eC"GDΨ<*<h)` AU@O]hlf2!HF# QB=uȾ9fh;"R K3-(G	)PT],7ec
	F4hHs73ᖟ`RTwfͳ;6B>Ř9&܂?)\<&Ŏ5	LJu@Y,냲ھ_w0^17p޻*>D8_)$UźR!jOF>{t,-bP,m`D"/zA͔إQZG&U]xejxLwv~=)@B6?!;53/ps@tOZS7ؙnlxZ?Zja{6L412Qi&֥l]o=7ļ	ofЖrMEV@H/aD٦HlK5)Z	OE3IG'г;D'zl(E$.ٜ-WR'\w+)w3꺾 @%R).~9;].g+)%ȝk҉^NW>b1z:soD
K2w[|>9vWMFu`axchիU`*ʆe]OV'6xd?H]_rA+zdFH	ʋ<ǴkUsFzaH9- gvb=L/E).x9j%B)$AB	t b.bAEZRbH(Jya9Wj0fF'Xz$DQ6q`	o	i={#4FYH@J33i~tYТhkHP17YD"pĦ;'16fpu>FoDQin̒-@P# hj ނŀfC 7°T5HVXpklĭ]yXr)?ͺBNJB#9e &&_0=pZ6h)̗a b=(p);.N,W^*hԺCm}E7 i6aIvͲxp*Ac#4N&`)ĉHWey7jl oEh_n3 	jp?4p2WE'kT_&!ȖjVlHӻ_kɚʳaY s@[G"bYLܫXiCq8&zVaY{#I@2m!d[1	AƢnKeם/>dmuX:xʷ\pNl+H+ctSǶC[~3e}6 \,Ʉ|Yݧv]'|&M2 d dsx-((76aXm=ӊQ<$ Q\
qiH阇i'i$"{S*VwF/t<Q`ʒZ+pr)(.j鸫Ik5	<ʆˮ, kODTJ&^7ĪQve
&Z^4^sD+`WHb6 LW{ZZ @mqvɷ(D\+l0*V߇VmhƏ/S`|^\<-62N3"Tolre!H2pA ֛{ȼ/ udU2*2"c"p${y,饋&\m&`|x pCw#W9DIiіCKs燝S3,M;jB4P2if ɿbA]aid"i!aQhCNOY
xF$g9Z`WVBg#j\˂eG[.]0~X{2D?"3Bj,K~ b#0ɒLkc(6 
aE7λ/Վ%   ġR^JCϏZ+71XUO,}#-e٤43łt8Z7i<:i?FtFkCW'f0i<Xdj0W#ieC
zI7Bs.K  *VdDlj@%
܈Zsﮐsh̸%^
@8?N8gGgrXSAp4z*4,ít4GndS>fQCWUZ{S;Nx}H&* 9׸qU1 a`(M-aG}n̽0	pmcnɘ_\l}	 9FvHþkJZNO mZQҤ	aSf
)QC+2
d[	H"t*c*bڢq,#S#u'Ҭ:4asCDMF|ɸm_1L]Y\*X>tgDd@&[)8;<{8<+VG\H^aae-4sJA	\hM[\`#pD5Z97g;BWmqTXX%0 v&]E4]FIJ&S_4R0D+meY	gO+M{03v 'ͅft :;ر	Nn\ǔ^,)1laBZZ[		ZSUYh߆wS\/*?zQЋ`X4gr[CWG.Y0Q|RԃE[wy),ш$NK@c/b
-#ZIG$ƗtmH#)XwPZAD|SofTH)>M1b7ɆSuq
jK4[s	xL Ǣ]5!M!AdƧN><:ǻZ(8)e /W|b<T?% :@,-ecMP8umVg9H6}=5 AbĎ찁ΙV:_leɹ
v`0!$`GA"I;$^?Ke	O N(սYy5BwV%ju;)lFoa7xڸ4-% $ֹ/zskǘ(sh>DDŃtT7rur0Ң`ܴh55 S}4hrvalc!ZjB]xDbTxzYS6_)op>#@PS*bS\qƋxYfQ><"Y6IE r_7ҰVH! IrEL6!N q"'daqMvA%	vn<Eб;,w2pO%rXH`uI#/K;56LL.MI8q4Unrɡ"s9(@=}N)?S.r0L3m7VK HG/yQ2/WwF)d)sF7|vQ̴AIz`\䄛<>.;A/2ʲa8D$GWv#̏9k'o؟o@	(]gk+}/	(nqK(fƟиp23Yw pDdGq2$}KӯA"E&Ntg'Nes!Ю4qo}쿝S,ojr/sTMT&Qf\12h'&ctN'Tx7]2 ;G	ʅ|T++:%/ 1Tˀ<4͔˗	,0~!WO' :suҦن(^ﮎ)7 fmlҹ1ūtZhL06X"J҂
49 ֩B}ԭ``Ӓ	#Jn_F H|$OK=œi17o-Hqp[ɫ%%:Ɉi3۠G C LL4S:dBj|pYSDP>pv 5KLe{t0yEND$*;z5NBIgn.N|׶nRaSZJcH mXek;_6,yb0#ZAe|wGU1lLD7ÄVqt[xuEQULPBlZSh.1Q0Uٱ8Rip;{H#GON!?t>Q	|pkq!gT,j2sǍ4툊tjnƛ/IOE!ˋnF4M&1x$ew+vS
bm]e%8P
!s_06)Q2JB[t9'Ԝ,[f Æג]BB@r&Bs|QgOC1J D<Uμ(o!hKH 0qAV'pfy"Q
O2Zq#d"@bQ,w)P\b`x O)ޢdMC$[HoWަva4{Ǳ`525;Xao K;6%R(хx982rDc@وF<d(AN#FIzmEF=ƚSf
48<'j-'ǘ<Tb2vEtq3qODd_{`/hh`9_1hAY|/޷U-͕Ao("$r؆TPR;.-w>&LJiC`A^#X8tH?daĖTSTaH0@U)^e}Jb7%ܔ%:ƿ@ M+ysq LY00ÔGD	>ĩAW2I:F	32<k}[{*"Az0:@1A:ܤhXC񓓣98EUeu)[?mt-5r~JݪV2li)՞<ҳ?(D;)o  (XII$$)'i(*_E	K*4CkwkOIFfQ$8γ;(0+.99u$0t170fȦǒaO=T,m;n ˸Χc<90<_=g QV&B܀%f3`5F ݶ~`6d.2`?]}O0^AKN\Q(I	{p[Ꜫ4$6xP& :' 7u	&Rd'ʹ#{*WlDQ̎.*ZEc7|4Ղor\*
HX'#k?WRmP x$ٓ] ׄFK ~4;[Ҋh2Aɉf<Pdg)!b#Z?0o[EhX$SؾeN$=8Ш"^	VcFDxRXCX.:Fq,1)bB1+Q)_OyE	
nTp }1`#
ףd-֥#Oℚt:5Ћ/<b0'moqIBFW.\kc5ߦ-vT[͂ -4:dݗu[	8:P금BTUQ,F24lEO?Dk{1k6)R̘GI6Yp^U!A@{xg#^/	ETzĒʻ@:F'\Q6t,pT!i
N!dGB^
$@yn_uUCK_K62B|
^TmrLDgʿf)!-och}@o[rE] /iWJ8OgbӁFe(/EΠyOLB]IkTډabV

	2ց%bjg'2-6DJZe'	oBi2+]x;SP{{Jumf^L
S0~o-SEc*vl  pOm@ v	-SD;<UCYnA)pxO@iL7E`K\J`9U$	p'Տ3v+ n%lS}ANj0*׳48i%8P5c#T$F?$L~IQN_MC
TnL`)e|Ȑ!dܑ[sD\VogFG(1 OJB JFR%p3NP CS@pM vA f,- +HFt,wfA )y^Ƹ}N+s8Z$jNFi#lhP!9ge]ihfv'l!ynO]3 iяF	Pkc\
`@92zX;]۩i%[5p8Q cd\Lo;jP/ng[qBQP;,Ve3Pr'ط4Y 8[%c
^`	PjL>ʠq:6S]K"g[	ϑHB5VEqLJX{CB!PIq9Llxʪ7>֤]@!@9H!pə$	?)܎l/"́+@`}}:\	8zQgS+򒤿C}R:HUF\Xg/AZ%c1wlET wXZNhyf2D ø&vLq47z\iJyJ-kN3	-sJ5)V0N0d\ӛd0d-E[mf\UmxCR<(`ѕp4^!hQ `!l ~ƙ:JɠlW9˸ZXB=l)`jeVJUG!s1?Ƽ3Ê.}bIa6ʕt?SxZJ'p
i,.R2T`5 -R
BxrWHJPe#Bb|-[PEh(5Sfr/]IƊdE#OS39ӻ]eۮɹ.9_beM9b#e(- 0Ra9"U,%~X܀z۽{'6[@t[W%*.d'vR {h!AedCE}x=E[|B$7J* B- ,=k7[_-IJ5e̶{(	;WMw`~pAz 8f))(@	Īم<.a%N n@bz>%T*?lgbd<ĵw9Na8;<^*%y:tDҕZ<@0q4l\1 `/$IJ ғsN);:A;)$ו
Wwy%KrIv\bV\nd{6tv/~ *O
7U>8rAC<jE-j牷xs)D1Ì/qp**̸$ّ,Bȼpk	MhpK7U]h&-$鎻Y;q6wzW˄֭AhD^R"s5 fw+Q&/9ȂwNbz{Y>
]NEc,ߞ#BF:0/-EȾ׃F\I{tAZCORuki)ytkdN&vAP{P'>xƆ`.%,;:Կ:aFoTQ}v#ףQk's~z5hMQʒY>Cʍ iUNF#J0uC8k!
fv{E/IKIE>pyde	
ʾ=z:@7J|5g8x3O
3H1؄F.yfzWIMj[.w%i?҆Uf|}@+[8k7CxSEOޯp$Q+:<]K3T-y[Nz;y-HZY^.M *'h8A.N2rLB7:Or}CS˚S9Jq#WI}*8D!#	g#Y>8`
В?a2H,^'?^nhOƒi<Ya2+6aFa<!02]c:eKXX[UgOu5iyPcVT5RIA6OԸiC\QZMDƃB!X:\!^"{E Vax$P	\$DBBTFt~{O w 5a#`= gЁY2>MG-Gkè1TbL
`*ـVX
*xe§֊Z*c`VSbJU*6TK@zqPhg*ߔU(QU49L
cM*TR!R,BȅE*C|TzpF@4*텰جXbL. T2 y` Upb 
  T , %@` # ?@ t GLŞ S)ÿztϲFy׎   14 Lh   f  e(.)pK@\ Xe@ TbvhD&0-IbD	d@ ZD1@ Dyѧ CN|94Ӛ#Ncl;,`cX@(2$0"@-	 $B@ <$ А8p7Cb(@
PA@ F 0  tGORĲITySMW52\ToRKV0Ȏ(
-$!6wHGO  r~e~/]V~/P~7SzKFv`;`9v#
JBN,ӭ'  `  '`\LTApBs)r!
(
i`   Bud1            %                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 @                                              @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   E   %                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       DSDB                             `                                                     @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              wOF2     [      [                     P?FFTM(l.` b8	e
`6$(V  `c?webf6xt"=)0:zЄ^8f~OJ"c5.a'U͘Q=eoaj!gzNa**s/-OZ/؅uXp-{'#F%,];++bv`Hi?``J95i:Xq]!9_`۰mt$gv}HI!*v%*ApG9$DLa+HDb֌1dXkb1H-fa5zUkk|C[k>Y=V/Z6Yiw-S ZۖI$U!_yw
ֈS[FP2>TL>NrGa ?xgm$mh>~O}KmgdXWx t0C|헵S[
0X>B'.vc!	,@SRm(m63$`ICLE"=ۊew.]J~

AA$A.7ҕ`1 Btn;T$=etQ;I@<8o9C:7U;Aħ˼,_.2)=ci[+MŢB|eB͒'tujk\bF0Lx$۲!`'yq9җ(8&vh;@oƩ4]n88-{	q SIrpj-r{z&}gg!2aBgj]fy@ʉs%7IPsU]pwfD
u x:$O A	(_Ht+&]t::e]]ΥKwffQ%~?-GٖS4<	bMzkNʪ}ChBB(
cBagESD$( ;d3\	o֎I0ŠE$Ϫhjmjh^ħMi(=V_ |DI wn<$B1#*֣ES`<Kb?e!5O0枃Ry`³[xpEUY2
l2ݣǜtZFM;龧>4V^78Y+hLƮ],"{iA=/Ƅ,d)ik-6Ky)BQ1~34h]Y^U36 -c`&~b`ь4t渶:$vŎa_V{uv<	BF!I2oKX0AȄV|yw/X?D>v5<.O\Ks+T༤`	ذ3 ].!mEށ>x!u|",P:9U?NJ%2@4JCVUI&![#D.V!M%!c$4揸Ia%G\ڀblUm kD(EPxLwbk i&V/LIɛ&lՎ{hg]qM On~!ԘT.ql$<6_/#Y${`X^g9X}FBlȢA
Cm *r;wd?	yn_n~^=ܹK_0<7d_1
F%V-A\-3!J`/&AaqX"l^h#x5:"Wu7H ddR5Õ(l3gwsF[ϸK}3=SʹuHk팾,㶷åY-{4+dt_Bb4ph@xkC68u&@K
e6f1&-ba2ۊ9oKLIF#81ՏHc'8P2RLhسxPН̃NWhčή}n96f8u	i0N`?ŃQbw5FaˎhQ2li2<+F Y(F=Ah^r
ПM\f"GH+KHSd#}wb&K		sy\`?|tZݡ {7*Mq?=Yd6(PJŌ<^Pbخ<#+464ԉ~|_/Ps|b'Bz"%/8?0&y6:lU\I,ex8l7X1fZ X7R	QgzG| !2,.m{DѨF Ŗ&lV1KE(JTwA>ԣ ՔVS[wùR6q'{y&ikBqes$QQÓg-Έ/aQu2F*h,`OI1< q}yahsvCcoF |bOKH
nQu$.<^tGp_y@&'l!4iˑu^xE%죫sUA^L.\Cslp93DncAŎF:a+02ݢȫ)ht^ȕb#֒-*E8"EBTیbx#.y6jZ:QVE,aOcAŽH8ē4j=dӝP9?3=@3 V_/*~FPWKb9OE:a7W[E)oz_\f'\3-Za+oH/>','`qJ(jH PPUC/ޫL yzߠsL9<E=rR.!/O*HSeiewX}4woUn?[5*zLs|p|c	(h	1~]8durS+4vB?wΧb	?&H`x=F"z;*{$=f&Q|$%ď;`y4,@`!ZKL|X9XW0s38sM&,j$p8N=mCR- <6Z@dG" eaHd 2Zs^v?xC <v`wpA'߾DHp&A*) λ3Hcc;m[><v` <ɻ\MWpI5P9ΪP_u`.PaBw`{<w`<Cp>Vh$RP'1&\,K!Db"981T*5
e&e%Qd"+Ӎ/Sd83rqW(8x啞zf330ZSsE"]U<laŕmXGׂyܽ$He9<fED:MϬȩjNZRYQ$&OM,ts B4+o\Drʑȝ:m4mI7 W3W<̊eGʯh1RΘ0iB#?i q!=aB\1?^0p`-c<g0噼0gT "*`@хN2,֬TEi[wmyzɧǞ}zw<xN ?f"dK>	(zCLy,c]Z^Y][?8<:>9=;?|	ƆBa"ʸJ|)k~nJvMONLݳo9vT=)j56Y p1\rv~TKo}X>uԝݻ 81^;W4654vtg?m 7Q9N\!
Fh%"׼2s.b;w2]k^'Y;
_(8Du2҂,߯%ڙh<SBHwAx2ͭ;f/&Up?93Ds9#.&']D~Vͯ9J$2qqpVqhA
;YgY+\)kj2]LInt&VM[4qC#&5FsX/(x#,$T>ǻR68I\!H` /#bdDEPqHr%;F֤ Kv0q1PtڃT
hFC< T=ﳐd#}nj~Nד$I!5̓50F@x܌^M{qdf.X~dR\z"#H)SN9%k)B&xHNSh,ƅn)pA(?F!zN[G8w葸`( IB!a=:$Ps0])3s:B~DY=ն/CuM:AItcq֓ИƶΝ\ot+b@sU4(RN7F(k*PfC2N B<KH%Pc*ʜ ʊ%5ĺ(ʻG'6ZRuCq3_{7N|,vE2đٮB랚aH6[Ϳ_ P9cHūM($Gg+gDJ&($%Q kn	u.sK[*+R?nomtB_lIT'4~fTG}X!SE:fa/V(w[/	rSM}\}C^%*!T]n+EQ@?_)>/!1euoQ䯠G}u<~"@S\Jp~=SD5 #1jX2h<]}%,*t,WdԚ.]-TLT,󿟜X\;!W<l|g䩵:wP2<\8tZQdܖթ&%?15%|M<B+W7~;oY`w/z:Qa<`8!2*S3`Ŋ	0IOMF>XpZJEn˴Ml[T1wAO'N4V}Y͜-A'VI<>n3*b>vy۴	leF/QV~q*+kqAlt<2N՚?ny5zLnwQ4{iO®rkg|TQ-^)>GNloR_&*S×%0`3`TY
9XE,*t*6)rȖ:&GDoe{94R`2#Ѷ3T#W@ɌlWR\%u}K!u	аcVD=VկZ@}|固iDr}PbV<0^6V7BLFuic_kKDy=ʆ`6*	ce-͇+LNo_'#%&!&S
]$!Hi]ZES7mu|-ݨ?DAHXt;:8=?~O>y8;#yּ>tX27=
"2Uf>cpzo]bo(֦Kh4}ӳRC Pp+$tA
Lm`,'U<H %QiNм5[342j$GR'EZHСCdRzSi˝%{aMIzȗ(m.LPf/*Tذf6ݏ+5625,ۤhT&wh1V18 @yh >d=O!I{_PZH7>uqh7M5
&\vk>Nx|>6sem[g)$e\rNRV/ІN]8,`b02HTTڞڅT&l$͛KY6-ޟ_P #W?J/2N̔hj3A)q(܀/LoQL,
K|8Aq]^sEX

Hlը*8#G%H@F_-eYEZc¾d6CQ{ |l&Ċ/M8)UY \`ȘQ\p6)?x8ɓ"C`5@PUt|vGC}[%Q/5uJ=s!b4&I!EGrcSw~/ta>#j<Jbd8\`>3N\qt*e9r3hfWV^eP/gA !>Ξ2ԘArUI=R|=B@e~bYjLfJ tC@H%
 \-1уim)hλ@h,nTq_H@7"zL~]{I<+cH]a9'* 3w(˰%p9p]%TQu;!mDME*VH*T{B{J:"
XWQ:/wBGu\94$f:#6NЎvCҊOz<8~"KoOƏO߄U̱Ot8H	X&JŤ;G=oqhl"ɑQatGB4)-[o?{9<+LH
B
)MCv'%"{'5{%40P(4Hw2ؖ$OB1ޏLdPbLGDnP+SC[T,&TUB#I˕Rr!OB1!h!ujOUTB-Es분J"κ%&QPa`(yGɫ9ıLɍCsI{1JnԝYY><io	sN&es%-VOoP	[EC{Fo@ӭy}dX./4H
6uCf(ib1_|GL;Ƅzo1^?.AzTxH>|>6
p5wAndϟsZuohf]Mۑuoeìe_:#줫5f:ϊWsd{KEr)1TK7n圑'@HmF.wcT5￟h	5m/۰nXoF،ц}rhoj(1W{z5S)^%xdGQ"KClO6pFK'z0m8vTtXvw(Kc		I]Cs^)4֗>V9ê|r_%]KU%*a$")$jxٯUU"98蝬&f畴 v)9PnPtbZYH9_D	)}RjV?SPJͲ$(/:B&=$/M MPKX	ԁИe~+(Z"c ]Y%D$>݋WIvg^#DhqKWF6IL>^gf iOR.*Pb;05?9sOڭ]
{	iKZaqd1!V`ڊ̐x	aFDqRthm*P-IJ3%iQƫ<<j|d]FeS*pbZaG+#f:j!>8	"ij*pVl{ٷSs;UGo#5!44{UuSV~cb>{u'
:rZQ~/OF<L`o9bu{:JLջ7vlr[Tv.)m9_gLFE%S2ͣZ/6\Гz5N?m. Zjno\:6P̙W|W h}Ij5~\OK<
tf\}՚u,3+ꮤ#S1n	^9.e/~}cP^)7N'.N2lSIA)n/uxS4DT0">Pһ
}-vMT͵4d%-w6]C)(kS/&d/Z_JF`M_qcd> pUޝF]G-g?ъa韾͛F3af}ԭszbx5P}6g8MЩvor3P&PZ_$ )o9w47y鄱`]wzy,5|rЯF%m)9-=yE		EcF8GSVa`UhZcqA4V,<JBb\Ynx ^;^'dYho8.-2\NwffAܛ5vHsKgx3H^2=al*l~P7]2%熋ԟ$tI9_uˍ籅
'{/	cSȜU讂!>~S9TO*r1H;EzPapۄsCF~VwfD3վp9_焊Q`$]r3`Aa%s]} ˳⵨={T^/\
gBR4OasW]&42$tI_!Eưv,-U VilC{4qTɊVDвdr/Pu'+Y?64VUTXSQQ;"͆R0*+9gWw1C߾'.A_\@KJ
=.T x~r?Pf(̕W1~fZ)z߆Pdt9a} 7bTqN|i˙Ǖ`,ߧ>6!L_|#@gdK(lj|"䴪lY{`te{ScRM"×->|&+oV].ZF|uR[NƐr2$<!_J\a'x0kÞ~yA|#OE#'t8*)7J#5+F0Dk5D}n8vFFi׀u! R#aXL^S=<Tdy/u~X ¥E*˒eR֚{IC(frWL
՜:TU]Ɔ٨eQ2\ya+zJXe~uI2IG^xDr#'?΢Phy<aAU#hZe'fn7 ?nqf5H ٕhb4zm4D*"$LqIY}J f=,4SCy4xIvt78Zsn5?!anX-#8aOSLO^Aɀͦ0\Z֚i&eֲ +}u停y9.Ԃe!@sێl9p۝-n;=2kfR'ʂZX^;;cb򂝼G
HS@߽ԡp;f[4 /mi4.wek3
fW-4Vtrx&sQܑ\BOQk=<;Z\ySoȦGq8,}9"߾MFVb5]Cv+#9쓗7HVQwۯJpU}n5KVZRp#p^[1;etx?3MGzg-쯑 @-=ʳ)_w<'hUPAVyw]AX2-`դ촭4ADXð`@HHRHE4EyѾA4h=mt,W)0
xC7yRZdd%4\Y+F紜$gA݈Z'X{CXfkke*|Ϛ۸inZvWZņ_!l9:1w@Ы7
dRyW/ё,̼-I't@D/7$S#E)"$E(	6th×x "/<A+!E
^( &O[80eMw)(r	8m t4|)#5&5`bQdN\X$k%(Ofϓ4[/{Wgoem]e;] W^H"D|ۑ	]}qOX-LMrţhޞ&#":nG5,==˄dɁMC;*~99E	*qhTQBBrK=Xc,%i<^*$D24L&!Rd"9(d'Ӹy}̃7[K-r݄X-ǲ&*>u"
FӐjlr=C`Ltc=YNbTD(\A	UL,R&&	\; B*Ep~YZaeGRyFhea$M=7m87	g[{AȿaB:6F9	T<	eǣKݙ骊KW>pыK(drlHdc-.[(&c/TSc(6q5_m+<k5kaXd,Kl`)*ֻzƐ3kxZjEyGVfh!=8$|H,I-[.O'Ϣe9L	Qu3gG<Ş?~K+7ImT[Pyy-yMkOx
#T?uֶȥ'pУV./NT@;̬eڵ߯/ߎ]^{/io"4~҄튺V	m3N"{]:qm
DJtF'UFbbBm9¸縀8 stn
Yo0Vt_bѺ0x{Ak>p=N%PPj[T$)\z1_1:xw[{Q&We%'>[L\Ek/{-X,\"=p435Ek{Dv3v NJ)m=ch!vSP]u!wI(ZI%"3+K`O29L@ڔ.KzYUXvdkDvr Bfp:i`Ȕ'QUϷۿP]"='?@5DB#	a<8w-"i\:4_[,bK	`JxPGA˨@1()|RQ{H@a}QtS'UYBYY`Ë$t;|]HK}	ڬhgC2nhJ%^krK'bRC
4^m5C^|յkZS|'˂DIe.QY/X\ybGdbrcSrVKH:9{qwI4..%T-~$rVE\"f[@#NW.K/&K@F"z$.4Ş{%..1$[ktBЂ'ooYܲ?Ăŋ>sd5oec79m||$הS.Vƕex׋)(N"SA7E!ZQǬ8SVZ㜑_T,-}ȍ*]=+v_yp\@4b⊃[Ϭ׽,D/]__Jk38括
)Y=J	b>Y'`rє3vߤ5ѷEgJCCY*s';}NƠoʂIqUzxu0nRnlil깥h'XMW5>UʡŐ~ӖΟ;Q>	fGc]B$Ƈ4ԸI|LiD~^&&kG~jh#cpqt0.#~QR</E\AڨRT.mU.yV GQp #}{E@MRTf2KUP`*?t 9KchMMMVx˹߶w-U9N(¢`9Obk 8\"sOq8epFhL#٢G" {5D>X[^-
ɧ$ζ~xys՞94|%;6&زIp-P.ߛ7vس}#z؜$(9*}[|-8GΡ	7z N;[z;$GXD0,<{a>(qg4I+u7@ɰ(XbjjQaf3dEYzF \Wp7[kNrUwfJQ&4͓ڂI`vS$OꂄddlhM\W}E;k˫7Hbu+nuV!͗BJUwEO^pSz'1QT?Yg\ND
gpf;0:RMn,0K̮,#sASsy(@P$æx:'k k6)ݕiK>Z&:HOV[\~hOd	" $KP>Fz+_"B6Gr3Vgr,f*Ώ[,"p{Rt!v#"<(*,#qwZckBwVxUu?&A]>}OMMjr0:jJs9=s '%-W	xlȊ (a@s$a\/g`%DsFt$Rt`	PmoQN+@gtiwX$J$lU6xHhEJMcaVVu{5
Y5m>`hR}0BbHh"犫ؗ P%$-n6`c͟F'%
W57z,ZȀi-m7RXu(|4=٬(bKTp:f;;.2g]YíuWuXF'"d*˫#ZT`P\bfUOs;/34"STVbo$gjRi*ŮUI|U%p<Vm[qpbQ0~
tO(uoExz+Cְ3B!$XH9Agl&9ȉGPX7Nۅg z44<f"ps73sOLg5^bn/@efAb-́ChuJ.hOۓxԊ P<zd	mcN2?fRdcfRR"!vfƌBjdNbe+vteΊB]>gP9WfwE"'YBvbܴypV+t[ZOc6SǶx?s:X1[zD=L-Q4؟"wHp~~O_Ϧ,qOmko|/)w3P#K0AkL򍅣3e.RIp,wP8#Ku|I5.ib	1;ޅ!8{Efkb3zx42+$vp &L%aRFT'fnIxJLxf!6Ch*Yb@D~\qD`YRmd!~ɰ4`=dç1heIb$5a7$^u9I6%IۡTi#2_\cbjL$j(ԦHn@?`Nlq!?SE<+8̋v墦41T9)4;BO$-%HV=0(HH!
x ,ƨp:+c;e~*фa"M:(j5q(;R\"JZK5V0Ӯ[Җ4kюSAo"
Mk埚BxyA1P%JY+\peWgIAle(qyIE)]6d'wʅuҬWy벐dI9viy$tQR? T>IQ')!ˎDTZAX%$`}%*!=.U@	+si>S^¶c[+H/؝i-CN xW܆Rg!,:7Z5thIkV6(F:n:*dERkl| &wLkn=)lR?֢;5vlEpe;s02nWz 1=0(G"S2b|N(L#iTSF$ vitdpxrE lBHS*37%o)Ow`C_"߉	6X	5)#ЫTEfJIi6S4SG`WjJ0
hcrc1OĬҝvrMʱ0BOs.7iRGjnbjَHQdu`$=>(hbyUg^\HV[+; p3ơmɯꗨX	TՏEFF#нhwҏjb.9i{a%*, -xQdr又ΉD~m;]Ac:ÙWb8&OQ0W#C/md~5p^Y4Z-ypss.Yª>қ]'ؒܝ_,W5QSd#b3L<p`x$"!5Q"36*_ԭu7m;UwKg2Ljoiʂ0EFDB켳!dc>kY #;d/S+ňur3;8	rvùGN_b|F1-o$r@0^$i9iڤxk_!$&m 9<C"}%#Fk'O[2Tp!f(N0Mh/K-,;~l^:2vH:l6Cޑv>b)E~%r?AW
YZQq>TǌϞt$SFY/y;sX?v0"y9^ly*\]7zW}3yF#R6ǰ\3mwZEΘŰj͌c}(tǝuMqUū7VR(YXكwfz+ٗ	TZƁL0.P5(ǁR1.'>)Dk`T!#2mPA
]@:x[)-$< I3i6DY!>f-zMɢ]5_%@6s0/)m%Y/|@{NJ"T+`i]/^΃
˓VӨVռir`S& qO=sLbL4j	/f^n$FXPVpKVe}fů@M1PU8Z%S'O0
qKn.G3%-b
G"h+9%\q=gm`aI6Xy[}QOQ)Ӝ{EfNhVhsn9Z;zx9{t/]MQ+(nnʤxXݖ{R`o"(UL ehpr7Oқ(w~rm٠Y~]?iz7?7ǣvK a彠@>@d5U5ce98lrȹ.0$@Lu]e
,c̑<r <r/B#75XE8LtK,,=#ׯ 3{eܾ)+vZ<i\}KDk
0"'õ9)Fi̩"H>BuFMrp8QH	bѐ:fs
d ,^y)ACdW&ے0ӶXFH2J(eaTgaBlEXXZDwVFx-TBCUgl[ *vb@İ&չY^1#u#e-Ĝ1ıX7δl.h'*v'ҲuTA&r}*#ͭuGvB
*xDfW]AH"`(q	-QUvE0D.Eue.)nT4OSQ!'q5^-	laGGnyѶfZ,2n̾bv+Biz~&Pb)7)Vybu?Ozo>uu6JOeT/W`@MtW:I\?#yM{|8o:sϾmx4VZ nzӰ9!oovˏdFgska--7E 枿cu>~&kU.nư
ƣe:
Nzˇ	DڲQܼ Qced9s^OL^C`f^N-)	&Ai4%	mzkE~s1Ax)3UNpFKvw05!s"FJUH>Őm!{YrHp n
uԊҫt~e,pq]n3U]Ǒ:@rșYI}j48y5|v3g֮ Z]K
ޝ=Dc2m*Ǳ)}ҶAjw306O;l4IvE+0V(}Kt.|v-TD,f\ B.a.	nR4:<U['cf2X؊clTl_!1&rH(Si1	hE,zγʯaw:@kFj 
X:Whvv1ϠNaUwEZչ3p؞I>{:1Ū4ְ&6q)ƻ N_E۩ZpVԫI]-v|:#q9?8"A߯d4c+ҔYdcQX]ߚf!-P]b×2EN\εm>NXéI\Лd+`R1w(nѱ<RKFt륹u9Kod/w.\$+mmLm)6ssE1Qr53zNGuS]^SݸK$p߆I8(.+]/W#kWTv>(lZq"x+yTƠH0Wԝz]ס)vաjaēU,RFQjt5qhՁo!\1ŬCc/(=[8+WkI#$nA.!3wӺ@9=BmZNw$XMްq[@;{1x-ҖzזfH6mb·zhh$ =:B!||;Me^V/2#'G2eRUss&Oz9zw=e1ә"sd< L~q5A"AZ.M ![gُ\(܁\ד\' >(?58'+pxp[>tXDgSևji&A@2v}axk$]5⽣tn":%_]IM<G:9n?.-N̥4Gq?S(KzMv>40ʟNbt.%ZA-Љ):Ennf$DV1=k.[Anc-L;:Gvm_h$SlFMh 4x{#NV0.;y=<u	,L~^}h#"OYF"r(H%^R<oqݖhok]c?)p2]O96H:ыZHS֒6Ŕߤ[>>DEx[Fe=N>v9kڶі;>(i&YqϜBD.2<o=2\2+ԝM\*x8id1~\Z"'eB\;eN&[U}l(2NG|(.Eci"FPcpw dq9} 4oR9(՛[4ƭ֐k@\@T{&w!PmH(LŊ'uw*S}nG0Pk3[$ǣʚNݵ"HkñXAe!^SQ.ɿg+$3?J!lU=gxEn
ḺmCxI0t܊Kh%EM㧧@/c˵I	h6[qw3!* W{%256h,k9Fhg?,Zim5%\s˓6( ZWl7LԴ@:$P*T7?H¸Kd8V 3ms}&1q'Bnt4 @wkiѰN=toeG;O#y 24;ݼPEzͫMJ)D(er,QN	&s/kDmmdH!mQC6ec`IP	 h"YrSd~8.e\868"D"b:z)4ǦWC9PpXe9楒1~ Hm4;"͇(4e3غz~"ϊ.pueɾNDwdJ;Ͱ{11w,23mǝ^hE_,[d6ROd5Y[?_䝘
OVϹ;i%[;S]>=L,66W-թl;{w~L?O9rX;A?HmDbSEڏWq|heDWOt+k	Jen-*sUܐ{yh
@
9tkgXt]&pk[sUf|s!QI}q1o8;0QBxY=#0QkY7ՖUT3U(8Epc A]T"V~AӭڴNb4$=qbh2yF)e~~[EFpj 2@DzkQ38`ڠ$^G=|#QBuser+~
jjj
ҡVuSo*nDӟ-Pe7A?ٞAcJ4.e";(;hWTeE9bB6ҳض7<'1mѦ~8TWH4h	򢊞M*[is2~_f<+^p6mk{q@eM3ᚿryD.?0_nϮ* T.%&"V͍4!ЩM2Ci)WFm$r44t&j'*9W),y'k/Q:kr[_~Uۋ/]K+[JpTc k39?j3+î˯//$^%N.3@)k6FCRpxes4MEفRt:0`)86>EM&'GFXbu(Bvb2Դ(
wțtE|1|!Zx. yuE8Y\{"Feu۩f\$]P݌6c2hTJW<#'EHÚly-HZQyvuzܖ%C:L_Q4:dTAJBRzsޙ
:dCJ6Dl<1pysㆋ/jT*l+ϚwZiଏy_عS/:<~ꐘ]PLќRr7t§>5|;XJNl`40#M(]OQ,@c/S7cеƅ$֦`nRa?$=rg)HEO(Fg?CH倳层nAS?4UibӉz&쳍
eBSCL'h.he8#44D`Ja:(ٺ"REAy4G+Lrf(G4j
E톌bȝ	2dx>1/L͑wqC@'1
$6h;QeC]%qB"8G	:?>݀ݙA r#"Dzs0(̽7Toţ@|ץ&4Y|:kB"#,Φ1rF/ @IOCtmG4
*kNrՂ
N<쒈m@#Gp:yIǒlFLE:^a"sy r&6O1EB$5/ 0.\'I A C}t$'\xLx
Q{ЪgSJ]}&AC*LQ3иXP8>b$G*p(pubc8p+'ʒƱQgz=<ѭCj/`L;SKoT*S+ɰwfuL٭gGx<m
?QAXQ?WMlEpDu3Rgx1]&ʚi⧕_A;!g"`&"
Ʉ=.|
6'fa'=S8rYh
s)\φ)o0fJqwmTtv:GIouwlgJEQ閥2Éi0'~L&R֛3]2?գ%S[&ʑCbO	DZL7{RHBl*Yڤ|djtҋ*1<Zhu2HaM,ϒ^85"#1B͹hz	[׾띣P63A;= {ZTF^A}YIzBN53Ǡ^ar 3ADcÑt_Bl>h1
0-qfEaV&ZX@|d)_~0Gdv >7C;kEMo:'N\5t%YQ19?Ci	K v&9yK[NΫ~t5M2&,jie/gEy9N,/txN :-g#~TfN-Zdi>MN޾7;@Qoi0j}t_"xOB>TO <{!<5b+80UWXZd)!4@rf1m& J\odb57Q͕Df[YXg$|Ax0i@΋!hSt6\.I)vAsAa$oMYs9Z(T!+4]yf"1_3PgA2UAwnU#&"YCbo`l?ȇ%Ule& |s$jPatvTBC!t ECmsRiS; Gfq"ZpËq!<;.L$Y_'Mn.w{ATڿ0(.aRޮ/:,Z؛#&@$q$qⷐ$EYM)RL*54><C}1fs,lٱwD~QDbGB"bR1bőSPRQӄ5+WvTE* ŴS6Ͼ4ἳ&K(EIιK._Z7]sv<7ީ"YiM(sY/'1I|6(߀6㐿'BH9cqk,,X;Xx+be.-?CP69p	*8YJ"b&BW2)@aK6YY_Bk1tKZN1)>mIғ3Ykl3:rnSܮ}[\ptYwmKWd@$hQ:}[[RyЯɘ21fNLбW۽ wOF2     \      \S                     P?FFTM(p.` bV	e
LO6$(V  xc\?webfЛ-p;೭>^焻!f}gTd̤]*\!HA2ʳPUBL2hU'Ha)I3^C'3%CɶQI{WԻ8-Wo4fWxnSEK7h m|u~pTJJ<B
Y"UۆfGQ/̹>YLR+|x:CT)|&0Kfa(F%ZhI	AŌmsV?r}٨~en>1=~O.j,Gٲ4;mulneA6j Qv|ZK}ozD[^ܲ9V,7/+Y31yP7\E0S 0 	*RպO>ҷoY4dރD* ~~wIl뿴", : Yjᬸkah{D%"sQ4~9D2*#wڧ%3Җ_ڵs]S*h
yoaXARc-	ʢ(6f%8K.qdU. {:MvC/eٺ<ć-:
:@hͼ .~ƢŇw_8$7L*K'm;?W}{\QVSIIGGX=^wKHI\eekdeUߵȢdda\>+0e,q1:
iP}Uxu 9n3f Oϥ'JV2\Kg}vf1
e LW%q^6FtU[%F-1c$3݆1u0κ$0wD+ԵMS,uHPD8_~/jgch(QD)}aw-KQ(K^dL9Ne;1J6 C.<[ZP[]u;vŤ`%jiOZ*} U@"ŵ1pa=9<Au֓Է7Í͛\C6_}aG) ଍J܊'Ng>il,;g>O8Dv,A[LomBŐ8my P2rVVrbZ~ۛ	P@4'Qn
_)Bj Y"m"_0EDl	D;@rJ&5Ln#?@&&H;[REÁfr}m'~A?SciԮځ#Hki 1輾Dbl@\|r1h~;7ǨΫyhˁ :t ̳ lC"CU6K꺸Y$RG+t0ŷgHrf@U"Cyi!iRMWX\^%[@〚7MdUN!yNc
ď3`WɲYjyI I{Y`:5N|
lfKSIMm ¾տ찬/4+doAiC aZ[2<><-Bnp,P`xX@V|nQ߄<0~nB4x6fC;u@6MEq`IK1Ɵ(PjYϱ)`{-d-ٙr$FOVin 1e˽`PΪZ GFޠXrΨ&9Zbot,UYMmWs;H QV|&`b9Mp5=Kx0bڡ~`>Ր'Զ۫&[=VlݨYw1\ni;<}v{5>%-oDp(!rDG'G?*|mtF{zzx,hIθWx&xckK4+?kYOnumv@Cw+q7B+;e(Ac*TlM=Ak[5ё"N3##>)qq* ? b?!YQ}BkirEBY$0@]CwĢ.p$4/U2 f'CFJNf`{mCQb:Bsb0ޙujq^BVκ^ҁۺ(!%+IS<O],L<ƋDG=&ƅL
m_wFu&a䧀 UtNcm4H=hy39U'2G֠-؄.~T7-DC&)~fp&ΝZStyz̐kڞ66IYAnVV/$ّaXn$74}
yR|}=$vPqaFN[s4 N'fVa
\M8/σ^g<C/D:i-N8O%3ŇK㔲k2܆jXyF2^mZI$}\XHQz>c#|N.Qᐵ <Qte;PWYzEe/bk6[.;B)@+Tغ~:ʕbR#5ÓsS0h꾭Ҧ5tt4CZ,GPՅ204l@PŨ1 7e$!_Y.JB2DҘHHfb*`uSOhe\MT^3+Y}Ȼ02%#@
&W[!f@sNԻmZ	Q[:,>],7ZݍLc,«_U|-cxr XE 7ix7!׾LDm)NL1UJ]XsQ"dg'1D>cB5[c>~mieC[׌}ːP\,SG08jg7llhe3{d@ Ji	$Î~K>V4:@reXݣN_J6Y6aY(WKSte5|q<_72Rz*< &V#cQ->s3sR0m 	xoL6ΈmM2}ƻDo0@>	`8iek+b=ـ% R{c7@H2X
Px:M0㻨!SH5#5a Z _Jzc! ,O{k 9T- ӎ`Y#PW(րA@TPN|J`& v_FybP&ZGO~IcY=ן}sQsaȝqe5{-}>pאOFE)^{oYjF9S]-Mcu
b<u.x 9ޓ҇'"=@@P^HO4ly^d]PR^K*GM,3vvo{8Fm$>E@o#֭\/4u4zLY*!af(7mAH?0x{A(t`.Ze318y0JIrT37MDT7O??
gq$e^7čEs{HMY<878:r5YW%H@~p>1MsZx2]۟6s L(Ɋ0-qͭݽãh;qf]bի֬۰~"dm;vܷwPye;5gmUxe #e7bdhԜ#oܹ{n_?~;'2uYqEpF@\O=j4iwâ2bܤꤳZ,+lBUx)4[F<4Axcf,cHL}_e'P2ˣMҴ =SG	H%̷fWP~a،ńJu`gBNY[SW0`L"k,@WQJqj%Qo\+5{
6Ĕ"i񔬆4 eo	RQŧIp2ȍI
xֈCO8<.|R ^(&h
IHBk\jʍ>d_h9qf<2 KF', S=f:_<T՛Q->.RۂEb'"+Hz5.QTDp	#B 1qZOVS@n׊nC0\He	pt.@tNP33E,T4s>4&w2/T>yp::oӨ8YțQ@r\XS㭔۷Z{=bk3JiXDp)$)r}$gV,Fj35Om$3)>Z#K͐?R&JN)pFZ\%g"O$$ԒaAe'c.d52$O2)-ToT'	,Y)JI2pkSYiGC[s<DRZxI2ǲ΢Fʘ/2b)(g	N0!֎dRBWQɌ#8>Lg$EO+C?Ƿ	oU$X1餭<o[|mkx\`-<c:iJs~u|8aQ'&*RgpRic؋xҚRhUFq#IPgcGZqR #Ҽ_UTz)#߀9b53mUQOWX}4&NU$O3P[,v; =\NDeB˅:#0oqTkQi	jg37,=]1,M_ MyCq5: .~̠4`@^-.%hhz|9G++Ly.7W&Mϩ7ȱO3J[MMtMW:}-w2]&\R0V>s2]uRP Go^Txs*K*#\+ JbL8^cd:,ZskXqt9:6{p~.Ȥ|X<1*Ѩ#rsX,ݕx{oOqt<,Nm<#C8q3?ؘGIa-.jc\u1/^ikPz53ɠ|Ң,#rvؗM"YfWtL`Dq&~Ō1pq'ua/?ѭů[RGIY
@F/qxΩiog9p/˟UM[~?cYQ 1{GMerH1̽7Yd`uM )ʰZͿvXp6L#e5l'0}CQbo/F!+{Nb1㠹frPV3aMSkPm8͡9u(QK?	Xx3݉+x7ek%X#tKA:Q{qP^vJ6SBc13j{e.٨/Q?+&󗑸A 5ө9MJ\Zp#*vY\4kjALHm&z6
t,9|1xCkSG]ʯyrwy<x$n?AʟѿeȦUwJC<m,7皒/6I,w<?fB8er^|l@	4AVdˇ8:c/w径lҧ7I]gO!*xsճ6A @M{!}FiEM.hqP^l=9k(0VU_eNt.i)
jz[@Ç74t>@nޟ`=vtM:.Me/|#`h|o"(zx",mNZDo,[!/&j6YT.kvuͬ"U,k;K %0|BR"mSer}0_PM;*z:"nl)8.0f22cǴ>UF!I7VZ yb,6Xxn@ lf4 ܂/)BaQ	~.+]--e.ѕѸ.5-Ӽem"+N=6r )k{io{5q `Nv6;u	NT$/0-SR1<jaj qp@QkݜSA%&@`|S%c~obh7CnG8IK(}Sp `o	qc[4v<X{5Hz$ҷ=}`z߭_8I;zJZ P8m@<E'^ɐ "^YKqO~4lb  R	 :QU-Ӿ"DF^iGNFW/!GרߣΉ9ZS>J_U,CzН>qu룚ڀ6UbVYPY׫]Ojku4|0ssDDv9t,+;o*-J7@΀*MVd>H*
.؄&tbMOjn{+g Wr':) W-mRNzUG<}Du혙Y0-M&$LW戛{n?6#o^}-sN%WyYbtӴޮ_WA~בa[|r߱jKbzWi_s_7Gg>WI$'CZͽ7kZ#"BHo5Ǻx}H̘շ|bw+I=я{'E?))T;!m3w6iз3mH4}.cj3>v`!6SN#"򘲬ۑhGJ] ZT:9mE{LBbuvEK<tH1T}#rﵠ1'T)Hh5ηJ+#{ǘlxIvF.:~FJv+nr ҡXjY/̄R[Ў|uoU{4FQD|k^*wJxebdkxcSkGPԌH3P>XM|2,}EcS?HBۼ-L!
%pߜR -hD**V4jVȠەp*Ω*	0iM.7QRݍgaM4)6,@b5ueHիJ1;R43oiٹrB<Ɠ,4#ZIykA*oJxɆj?PC)}SR[Iv"r6yǎcб.Nbn86l9m3vN\Ye KY\_ɐU}QߗMaQ@	MGǽ^>v	埳[R^ ħzr>'QS_vT6X~ޙo:۽wVF> jj&_13(_sB'S)Y$	5@7DV[F];~C֏pY>.L04h'<3.DUhyEGBMԱ[E^-/V.|ẳ:9byzn9'.:SԹH=<&<oj#	t	0!{Wᕎї/vAZ_b*xV9 r9iE]Sll7̣
>oIZ?Tyϓ1EKrUQ?nʾ+բ$~1mxFOaÒn@ECLMS]2p-CjfUymH2ɽO>mz?Z zE+zOLn}۠M[N(4eBWr,3~]r>+>n;x]ǏM}<g:]sG~Av9<VVPZOoRi?{,
pؙLx.a_'HM̟DǦ LWcjeԥH!g?_nj}&AuyROfvULK	iaZ
T@b{ڌi!0#Qn%th:NI'`[wT!bQiUcz$cd$y@&u}JrȊA,+U`G%`Oz vDZtZh$!w(#r(Q\x[ە3UiI	i{_ʕ	y!\t1]Pzq";20&a3zr3ۭ!^4^oGVwow{@!;Zoh٤=&ȎEoi>{\xC|tJZ$"X
g`iyCyZ)3鎰G:7\kfpf@gg]4Rd$!x4zBq(fQI DM1zؠ"gwUǱZ5\ajt \Xp[$3	K,Ntv).A'0e%fNQ_^+o ZLğVצRܼo޻MaU4
UB6x5k-G@jȯ.Y	GO^eWHv ~b_ѭe8GZߐZGGCk/e2*YT
9Ft_(nfZAT:QyP8Y$k%Vvi ĉc0o )n'D-s#r謮˫}GՖkni>,}PF)ͦxݳǩ[vg IqVm?۹_K!7~"J#(aĭDcfPbRUEmï=@0([7
pշ0flUWý^zz\wrV<jY.J1 E~t O?A+*޾m{%NLfr H}sԢH,JWZ8ںn@׻@b	` N'pnqR*apa٪8@<)V	-ID'hYU݆ȳޡ2סm=7oLPOڹn6Dv.]W:b+_tKjuY|:Kpȟ)֙'nnm`w6gy>[iĄ2#BiӇ҂ȖI%O;4Qz0=Ft7iOzzn!yOۼeŀEXu1v$=n`K]z^hV&Ʃ6lgz`{!ˋB.^dPmX2秘C@0Ѫ3ǋr	EUy87OĄ{.6io#
:Qě%Նs9En3(Q
0=]U|BnNq-"Ep<rd.53H z:Kjr/yuAT[mMsT6g}Cx)zI5ۂpӃַjҜt]Jl?&ĄN+vKp:CKa:K= 81UnO( e4(~pǔٱ{[^-\cL
fLEy,I~L8XJpbi^cD$dUݯI 4$_e~o&9KŘgd235/8[\%"6`b|N,K7\.:1#9zVTe&]QF	vQiyD91'G. y5ARHX;hf$5<:K O
<e;ɉm5͉v~ac?*W9fs޸'47]UⲲҧmáedaYCh}Փc28J:&F*[=c}"r芬L_}~/ ªn|v߸1
V[eKc5<k[*;j-"%2-Ի[{})&k);ddfK9;lPx%_dӨplx@DH^y(xMI&*Tpyp:"e)'e4[2J(j)`dRB׀ty2
sdH`dŒ>sJu<
̶ܜFWJ_PPLM)ɔ{=J;R%="Y*0Y`Y(;-Ϥ%|FFf]aMل$	jH?p.s#f**僒s&tr1Yok/31J*2Wm6\}|XyԂ =<!XpĎ)dd `17Hc{Md79((	O>6+ 99HSTr&X9b1ݱ1;R];(,bWe}_V**yGP2Wn?-a7
NM*dytt|5`rGSE[Me_$ 8uLИ[5E;۹vI]\%^y"Ϝzs1Gpeڌ ܜvX?#z;ncÒɉ-Fk>O`l*INnIK\QX9ڜu<_BLkB\+6K}WYkQCmOOUK(jV	&.Uutl40%?
ԯaqCgքlU 0H}CVޗ7׿;Ch-:t^MCT,
ñD7[ͲFwk\`?Mՠ0)4"IbJG#Z>9	L!ދta=o5(si7adg, oYa Ln6.э,Y?78zJM]aCaJ*7.S]׉[WWiE
5[On%8䴂c3HOΟɌE5^b-.l,8	X)ВJW܉ViN$:LΒMh@,.#*,^8<a֕VHJ9|@»ܱaZ l\PD!;S]scRƭysܑd?p<Ç>7[-[L!\JHaO1jS48F7NgOa-4* M5rŚCvd:^Z
ďRLusDAX/̢̚s~݁)a ~bļ`[oFYT֣xG!r-Ok7T8zJd;Ҿmaq _!G. O !<ѥtYVo:yǋ؏z{,j !пvTK߽|}bܑT˗dĴE6d+r4YNynco
gKhn㫩[m/9[p[o=G֮VW,PY 5cr>pWIP@4q_	#WKc3!\A12wv2Na;RSl`׫lгjr?TBE7;W~s8iF滽 (7G4jvK
PRTZ)9]3﬘c{Jߢ#at_~hi+˹V2Ŕ\VKz^@[yBi!.(?PeWSJKY,aVW.6i#a
%$߈k=`\8ֆ[
Cr J0#NuN"J??7~ʚyyM	4wA+k<4H.HLǡpdFV<	ݏPd#2IMy{Jʗ"D˿D!QSFMF&#iRVW_slM$/J\)n^`+ȱtzHZg8
L'Kҥ"Qx!RFhcƅ#Ph;vl|:K1:b_#숧ᯙWOeva#;(>=2_~4Vw>5.̒xunŁ(CsX 涅XBm=i&@Isl-s-a07wڨ $u9x8nd`4C~1!)YY: 1V6"9D
J8F;HBےF\Ͳ[.i%xWz	޽Orm]J2脉B5L1_wDGR,eJ)W+-5n2]V\~7bn9|EZpǞs"Zazg;-GcBpUL#^`T-xWCQC4ָ r:lm,mRJBNV6V(M^>>OOں˕.+s!+@P0G[R\jӘ5SGq+qQeqWM'ljYϧd`y;[	="5Z_t(yZMa}U_m'>=q& H	S	ZYME2Cg+N-WyUJ@JX|6  w^<cx.0?[#HiB U\0gP<(M.&A||dADu:mP/D~Fiy PDpGuSf*dXڼ(BI$e)ƻGD^GhH[bT"yKcL{\='hWEK VъʤB﬍G
SCTb0[;@ZSjMM!Jn_{},ѳ7T@jkR2yu4e$RƤ/$ð@l,9ebJ@x7<0rHHYm2mYd醅#	'xtThwPىfr|ɤH4-auϊŒdd,ue	E&M棘\ ^nR¡nha4>>ܡ[OH`qG//u<#;87,;ŀIh5ܭ#@|
/^%鸒lU+KTr䦴jRZ9ZP>tZU&BKP W5J=0AS;FrI+Bʟ @
p拤>ʔ#w<}peQy)ЦuǓ%C>gLag~0&}{(R|rO`hٿO<۾d_3{Tjcyf';θ4?9:+,d3N>}.6|sV{p7R&z;+N9ƂX""$Je%"ᴞ6\V&~HVKS{M+ѩdwu>+HW5	#DI=Ȟe(ŹdlaL^ފ&%$p CmS*36cvFw$џ&<D n4XO;lu^LRbUYMK<3}MMQkH5OV[U#}0SAzZQ'8ꗃ4bhHQ+_QwŪB3Di Vji \vѰ2C}$3溩cшuzNJ%) DJS*Г$K`ZK"~1
fxi$v쮊  xLcW!<r6&xzo[6Zܹ,PٞYm&<ކˣ?65b%HWKCDKV!Ŏ}YAHEs{YxU0l[+ڣq0.R	kӀT mwX%PVyTҩ5wH9&7~1i{
]ֱJqhT{:mINn@9N2ZAd~F;!bTa}9e@*rr5
R%b`a[ `* <X]& r> y~:_߯zdچe	s5͚bULj<1! DAAT~KMGLP>n~9ׇ:N7:Ǩ=+X<ӓG'ξgJ;sV9߷ypi`zeqhwPx1ᙬ8Ϸi: V8u ]h8YV{j?$	6:l١cSpL3U_	-) |݅(6jX}AwɖXա`q:Hx2sfKsڷH7[yۀ6L+HхdN '4JB<RGߡ܋ł\ G$@3l#0Ewݛ	 kI=Azzr-Hj4J p!{46JŦɕA:WΪ4BKVC8(o9A*THaD#I/h$<6R)Vw&y\K>IyRt"WmPnkP6Dh(8pt1Z*eIlm3rZ$P*'Xɵ'8CW^M,qK&,\K@$?"K#ǲ+au5jfQس_҅F)t-U,؆?!BHY~/l&T詎}RK1J}>|Y߿="d}ʛ';A5%I3u-LI8d~-IXmƢАǌnSsK)^$4.>V2PڈAWmsm
هwKP)
EVDWBbM:*>?!2	hÒ(Ec:>DÊ !'+0IGQD&ȵY^wMMR3;TkEDV3;Ffʪg;v$j֤LBZѬ :]Ϧc9%PTt~7a+vjo*-9i-}R ]#{9PM^e)Gy8|z(Q^""sl]ě4\%T 6N@v3+_>UnN/=S9T0j$b*z!>e''e9 _'o?ޛ|js0:w3}Asԭb}<Ɨ-GGcƓ{Z4qNKCl5u׷Rujt`ĔkT!SďIeF>l"e aLɲ:`!bcwM[QOH~YB@\%VPDU,'L$΀A^W31dM86sdqH\C:%C0_Fk/' B;)<,"<<'ȑZDwx(W
͇\vGi<΁aeCα:i<ˍk]נ$H:7ľ5,xrbկqHvE Xo{K[`=Ɨf;-gGrϜϿ+\52n:m޴/!a}GQ$foS
u]U!nש%f-- iW2}3\&_ǸС}٥W'StːY?J،dxUtz 4LkInQY4lII$+f%K3=r`% mnֱ?kE5#o<dԅ|K<`d3|xfѣǯ^F28տ% I)
H GrM$2뎫39Z	ON	莕\<(vœ"%l/<yNl)ݓpIխh,^5!eQ)%eK
MMCm7rFͲhA#E݁Z$*=Asr2h$db!ǰZ伻,C5FJ=YF675ޑ7oh9%AEQNGnM!f*t$5v7
A}4X55КWPp63LA!ZaT.HaE2Ȓ9F[

ɥ`MگfB j@U2̠]FV0FDݜ=+2?΅]UUyI]Wةلs',223 :#h5
Fe4wE9ēYKx8{ʂ[KM
C=64)diUiG\`HυzH[jb9\\奐1fo=ϓor}6Bcs(,:C66+?Ņt:lULH˨6ECXxfN̌?|맯3;"?'C}tX.t*օ@vU}jNwk5]i\h?4%Pp=ɏ5'жxWG_?>x'_IkGE&:6/iNLQ2@4V\^=/.oA:f>X+|'c"b:D("Jnݪ߬Ncٹ:g5\fDP9-5C*[n#=)c	<եRcluTIOi*Jfqp cЩА9/0ImەhLY`vI76G\Te}6#wQ y֜x"t1CVrW)uevv8	@?ԲZ#{"n&Pb&9Tu;4u'%Sz&<-<pǣ,2;.G_C
.4JbWmlsɱrb=GFSh謢.J#ΔpΎph8s"̪P/$=27 ToL  )t#z)7iЊD̰?HdH H IL KAa7"`icS7<	,@>)#fٜԈTZUcrN'HNs8iOf2v#U+-Jhb6$֒Wu$3Vn [r$}C_gX5t?>j'1g%#3ջ"
"rE_@V˱Ml^\qϧs8Esad*
ٌP#:mpݥKҗ-9_@.NܜC0cTc=ƽ1iWh4-āJ1JtguDpA$ ]f:߷[Brjc<lNɧYY4fHcVzU
>aջTit|{4N47	QJ}]wAF'bpo)F-%zi%;;/syru˧t̀Ӛ250񣆵Pnvd w8#ƛwif2@\K`~.,v]];k.$z6̐Do4Zzb`9cJ:#l|nx$5n6UׁVZϟO%N-{oM3 Ť+:e6S2Gi%>%#gg_`r>䨒g^w,)?k-IG;b,^j (G;qx~o̾T"s{_veXVa~<4G_#3:Ti]^兦&C9}@5"Dnm#sG$ӛMt+-}nI^7[ҵ0tnw 硿hC"UCB#sD0!ZQ?4R.y-܉UU	Z_2d"\?w.7#*E.pn5	hhnp+85Uښ<[q%T]4ԌF"R'i9%q	I4Hs2
k#qE~Jp;	G{;9#'tmt6o`UG4XǩSY͖>>d쭊!#JX648-b{ QMm>Ͳnԁi2bmpPDllcjb(BLJaZe	D!չA2v%*OՒ\ӄˍS@6]>OQSpRb"r͓9)\HС㥦9 <#nݑ5/Fbglp`SYs[|H)Xꥌ/(mSXoVF"q; lAB󷒇ʴ<9+la}4r6m^Lu7fH7JՃR82_;=#$~q}Qf¥ծ[ȡ ㏪a@{;-CذkOɑ0!Mb5oH!ꙗ{`4J: bC qTTcm<&"83H4`H!BVX8nwE /J@e6JS)0`ȯhTd?y GoʧS~/{~RAo)fH'W·"<I#i 4
iFSp|sOz3|PCk-4CCc Cp@R%窧D"`ίHjؑXۋ ((>ֶ][+#CMfsl#?Z0/9qv`KaeFy	<E73ZsidQ6=]؛ɷlڕ5ۮVʟ:PWM;lkިt-,Qk;c$bXCmQTNN/tzRdn;:RdÚ]ȷk^=,Ӊ2e]xX⛘a	ߦZ3;dM1	3,Nm(|?F;H Y5'}wT{Y|#|j͋ǿǲj.?E+cAYe>J
KY+<C 3h)B9;E	XIe2~uu
k*Qx$uu	.ٚΡŜ/#rtUUA9U>E\;ԋ&Li;BeДTiTnLl}:e_bZ@[=_4y{:KJn_y챳UEs7+v"J3v9g-$)hɞ,:;{I4#ƱUhvhvk=q[j8{yH'LP	!BС#AS(?	eԡ!1.8f|^҃t4$UnfoC3]yYwQ:YqD>xG@M尢/!qDHyGFf"Td~ke\!V-&z{vx!ԫPj
~km?i{h &> PP
Zag|p
JQ\ҬYl(<O-/byq$ŧ)?;Mv_f͒5ul(6=vx:OߵwԢb6o(ڡ<X/G Tnt}t\̡W?6~MGzjV0Ĩ X҃	,"%),9}QӢ2"ҕzT%GJ	%_vH;?%o58E|#WJ1S)W	3eLxi{܂NΊ`;W 9;RD3&ցOS
q	dZ~Tx 2yO\VPzg?]Fe,^PKTV:44rv\(3W5yx8dDeЋѧRphs7swI7K@GM#diQM#cݵ	դY_JFx@
^b@MZ]OaoBmzR|ME1g1kYVCm\kL<Ůii#Jr ڮXyuc3toKq;_@c@J] *S^UZ:E	.3-
eD)SU:7k?NMNޠcA:+HNfd+{Gucf}q Bʔ#
nꍮJ&S8/F"ǴHxϖ!^||	t9nX4"UV$FāZK!!>YT%i]]EqB#:Gճ3xܧc9"#TeVVԞ3ހ?*s']T$C3ãkyup/˾a(*G-A5^Nwc^-he5jtq%<좈)GWڜ(EM9聁.eXAƭ#hyQIW%n7$}d! ` tI\xxοcBQjtK)6M-"m
L;o\בᐩ2P	p 0S.P+GrO6JU0u9dۺH/(@Uyv},јfՠʢhDe!yu05o&}a*GaC"YuAln0OH]sS:tJ2yPՙ_/'N0`4T̀jI0wIa
Q.ikxȃ0!K5DGnONQCq}ɳQ(=}.\a>c-Ie$
uO3,ׇgh~A7ADȞD7xP}PB_1dsV{ӎـ%1ƂȲXy'huUk)y&gQX͍EMHHog-u:ꃽFՂA;= 5'rWb脉ޗw.9-tPc(Ea`f31$ĸJO˺(vB۱0<.32ޡ'f$+2k.v6}g;n0uR'Qg;A`MPȉ3?gsGfh67\pZHQPWX"ۢ%0uBueL50aVN393zop@ݪ?N2uNdnԢGsnE+XTy-6W)*H7+2,^A扃rob=[Un$SVa=1q8F>k<j5rIHHڤbjJ
Tp2%9"NhJ,Oi#ޭ;TcR_q&ա4iox& UΒW\ȔJE eDa!֭J{Ch@240Vvי0H#T/)ZWtVa2Y)RDhƃ"[+ -* 99"}MOЮ^Z8K r
ac@GH%Fќ P3D ,!:b¹s|8oy8rI񳴾}{4=q<Xr\ǫ[=z_eu;Qo$CKP'$E3\P,Y"|f݁:{zjDo^n\WH=
xAUU.,e;'<R2r
J*j2ͮ8+#4ftHa4h79,W_|Ԋ{`uyguKBoML~0ۮjo5E&8l$r^hSJ:;ʥ[.yͿ7AD(rjB-C#4C)gsg2Rhj脮ad*4Hg)/sXR2.r #ÉS:dhFdxAFt%PH0WzTVlזfhVvˇYVYX@|r艟U7{$`gk/^		$YP*+׆sx_3P9\>!!0+@}493-DS-$_,{H-d-q6_)9o;  wOF2     Fl     \  F	 M                    ?FFTM ` r
$e6$t0  "Q?webfe5옏@?
 t,3+2qFYO&>bm5ZH$Y{H	jdՉ%٧y"+@]e{vNc)n?~?萤h _&iѝ?>^K v-cۍ12Ky,'n (3EwiB&Tlh0M҆dYrﲬnti]yurVXsjgMnәHW r2>iT`V7R(+o6'cB4ι㿚T	]a[Qd<3wq8,rTI80>E?*E痦#7'S	ocʷ_7&#*+)+4aA6cy٣f(bF$;{ YA1vP-tG"Cf- WԙuKְK#*K< (Z`٫[%YT{%Ɋ$s{oջvt"p4`ߩϤ}o`'ne>
G5s z_N
PKӦvmUɾ{z"3`lW#Ԑ^@+,ckoAOpnuzzJ)Υ1}O=xR`J`qUs/+kv1xljlEl\nDƶVjg{Zdz75!xm5o[u&1ڂHBkAqrR(\gh7Ҋy=HZUPh$8RgzgͭN: 1u$܅>R]"f7K^'3+E/^YU5]NB.ʋ8+͏8,|{M|Aua|a˅՝% 
lKGP,Nukc8mX@d̘?Y&{?P(G]Or-\LF9,&y8r3ܟ?p>~sDz1?\U5q=tzԒ&Znj%mM"}tkDwh-=mB76&:һqt"1:Еu;"K_/Jdc0l0'^B8VCzg[ ;d
Ybȃuu;@*}y|.'C>\g=9VŐ[o|g^>d
9
*E|A*M[[*mOQz?Pn?R)YoT&[U*5SMB[
oYDh{,}1<f&6h'ʥU#VED"TީAD9eB:%O Fun 7?%RG4"fgF꺁 a=-Qy+B,2օ5𙄌xnΪf*!l|GXQ ރUp
Eu @-Do.6YZ-&a>f? NN	]O/^;\JBEsJrĚ'g/B%o Cn7:|yKt&$s|wP\i]$Z@+Հ90x]r%+RUEm+ܰ;wu9/I77զQlu\yWN)8ܰvY*umm(	fEG8j#IRz#q߷	)Y$Лc_%m-{!0-`;公hyV]Hv!	ta\K[1{"j 6@3T0%Θ"ԙZIGS.ΣpӬS1eٓ؛Yv8d\BlSR)ӆ{Iӆ%>0Ўڦ\'cg2%4QD
0͒3B"MՎ&ۊhIڧRgMEI(5UD]}b8$8>X h"l΀j.%ۀHH-Iݸ#1C4Y7YݖVo>P]6O47f~ AJdYF.oy)	8l22e1H[t@!ȅ2\@5ٓ%Zkޒa@.`n3OFR(󅥶ZkLkF HWjYI5*6eSbk.5F,.N0ԙ|V||~N(	 4],Jp|~xeA5/ڻSvy?'_v|rXHQēB@=XB94TBBcHP+_YH#$`FB;+BPR4̼ t:t"ZEJ^!XǓq4_dTW(5܀IUŇAz@U6n.WGXHRK&'swMjʎ<3)`#F@F Ԣvob$x+u&}|X&[٪8F-E&/>/G.az^/})'x$O=<zoA9M؝&~3r3g'8ң\-MDzk5A
G9|1-! 87[,mRu|57
=X,aJ^tN4\fЄ]AzH^7F&k"LU>}>rBX(ۂT%JdhKPKTFaA3HHC[r;ad54lLkjG{8h~fR@9wB0zS'a7@@Nƹlbj3hNXF/es'DsQ<k^׼ZASOidSJxN4DK!	!٫vhA`EX -P:ѤC:WzSsdO:_`:taηБسIY4# *+<q no u
Ucwwx$dƿ}ρ949p*T:%GQ^a'ebl-*XL%*ź.ڊ\@pR$T*Khpm-/oS3Eto}жVoeJ`<$t	]g*Z6ql~E
S/iTtkǮWþ=?j GUUAJ`bˑGQAϫÖcWWSmgF&^ؘԡ6;C1:=ۈP`ڜVVE5"hOX~N3_5Ӂ]z-CWtԥӈe]\Vc#m[kuޗ_ʱ"sH<}xm0bxHqba3tfMT*]I
}(,M=	@JAd?§6PV[dVv4jߛlH\{MȘ\Y܁`9M`Db<;a#z<x",dgCi`c:I>jw}Jz^:V.:ڋ{ͼ(ȲBɦx<Db#"S{PHuN/{r6;wUsPО<XYsMxu\b s$x(/^|^*0j~m;#%JM4pQM׬::b\C2gf]zP8T UQbtCT>
p8+6g_2lΡ6H  ǆH:d<C6ؤ/6E:K"`kJ<Ƣ=v7N5`Jt\j6ͅ%˞7*'U4:X+\b E
afx}1+pB063rA$N~#d}פP7hH7bF§8P>BtGNmx@j	|{s9=wR/oDJs5z>;'xEq^r^=G?9AA_K%Dɮ:uikjkIeG՝#*)jm|t}`JZ؈H=4{g߁)qXMA,H71V"o,Y#hݨS_;a_ԗZ^cn4HE?}
ȝ٤=}BWvުUeh GF;@2S@f n2#fY:]JyH]-G׌wgv'|0e
_7Ґn+fٸY<(
?y%wm+j&&!c^u'b&hm6¤*2?AIƲ5FWؙ[ƜBUzIE!m:xheǮnz|]%mrUFگ1};!n F&gP;&$$F).tBQ3(C=Xes;iي@~NΡE	SRh\BeobTnΒju	g@'qQ딎nx.u6bVU&];!C_5*zɺmRQuqPZ0}mn^nOrT:U'h0nZp^R|DF_b\@mDE8 {oGM᠜q}Sd C,iܚE/Ë[d8],MCI_u,]Vc"pg@`"y),;B^el2'.(Ęy>-|hw;jՍiԽ_o|!@)ɢ=̌SPz*!z})|ƧT}jEtCZný*՞4ۆ׽[9Юݓz`Wmeo|j8j59@.EV/ZW@|f_\"${v/;a:Sei3TG*]ơ/h2C32$1}DNXt?Fϝ~n,Pj9.>ף{
9EN-v|3hCиE XT;P$=J-gݕigz~q(A<:h193N̽Q}CLWߧ׎~b"|4u}cy62[ \d,ҎճbkD%0Tx{=;Է(iLS13Nh/6?'E^~P{sZZKĞB{Dt&z)Uoa5Q3ȗr~
F]$<tm(}MB@[GxFh8 #},#uLaz(Qh4%xm`Uչ.Ev1a4_'/[d{FxI59D<&8VEFg芘#I䟍2S_]QqAn_Q>bޘ4g-0&E#ci8	vR/4rP7KsOWN3ՏvE\bqQ5ZڽVy5]h/	i)-/kNю#e)"P	{KSQx>a&<a,릌HEH]%,eDU~Wlڛ;cᘓ`? pMl.PW7٣./W#;Wd*:z;E2j9yASS8u;fY8m KѯԄԶ͡>,_g-mc<n]Ч-52cz7d PzVOPvfRRఓ9Z-dC`,at=k?v4#PBإ/[s.<a0e{&va~e8)fnyfBPLuIyH=S2"[(¼O@z*I@0#, I$QycўFaߞv"|Rܘ	'WFx?+aNMK`D/nf:XI8:H	IRm]K6i @UH*NoF;ᇏ"Wqd\Ѝ*C=#26x7<T
7yrU>-bH)ɺz '}׶w!rXZ	.:Vn;->:
6rUcs4kVW{#5ߑ0B`ܝ0u".QdB0Cr]#Q9lqN^ֳh~NU\ 16
~SnTl\THҲڛ-~G~)$oQ7-C}q%/avO|[q4~Bc-$N7<VHEi-RFGNM{"349[j<Wӭhln QҨډGcq@w/e qg<: a钷u_P`b{EI(OWGfEyABa_;O^DQ's`D#њi:Ѵ+Y{{p&\RagϞ0gTLi<'7?X1C
an0or1/Uo/?♯a_pHֱG촠8ݣ?3F0`%ϑ<
G]Խ8bl͏%-,)}%J:YjT;Ыȶ5Œ>6w{V餃.&(o*n<n9J
"aД+a/;7zDZη{tM	Mp	iؚkNPwؑͺH`T$23f0z;"]*Y,QWlSOrW$5]KVٻBܚIk|=&[58ER0ދGksSnnnuExKr}~m`G4u{=]6f ר
Bo&<ñc;2P$ǃ{mW_cª'B6Њ?$^z[CYݭjN~ۮ0t6/)-1:p$Dꥅȗ

,'yv nFTс['aMbJ]%&îlc6&IpFoi5'rr(qz6(5Eɢ՟l\Lk71Y4^)bٗ¦8yƏ
N=9zT^[T$dkQiK%6qfO|c8$ji^vr.QQR"YrĊkrK<QI"@R9/\&7Y}mgҊ7z6-Mu=,N3O\6aDAޮLd^r/.>
NeRi4!3R"4nbm-y[X."!QKE\N4gՠםaNp>k)90BZBs
yrer)vDtrv\v[>rJm
a̼~uՏ>rMZcB<`)\yt|ۍr'<>[Îh7Z8caI!p⢟̮ ,Gk5@`iwnО8pv *'O
A[.rhTpR?+;\*HsLqUf:ql-ć*6!h+ˬ {h- jgkMMP#:}{/VŶC]옙&[W$ګ^#4fWa\5躺M[6)T3~
:. Z`si(RQ|/`
il^L#f-;-C;_*{@EMCooÂ_7TrqzF%ׯ|U<Zo[TA='DPJ];,U9Qpk4~_C^qEŮbSGsY2NAu%SD hj	
y;9$ߴIAhEO}
g/+ Ճ5JY @Gf2Y/߼e߷|v/"p~刋T8OKr**4hi@Q3g"j:$;:f,dzȚԌ꺳u%ˣ}O&i2U,@kj%u?4NKmd?5ݓ;0Ye}sZ>EƫUs^ݜv{fQ<ĐVPTfͦ?mpP* &QG{cJEPe2)xP0AMɪZHj"׻"AC+zqmVzᖞU%C :@1W[y)J@ob%jA>)Nǀi$At`>?f0g H36p6D|M4N
 4JJڃ
jƇ\p38Я6pV?:$sDNƹ2n,HO\[ոK-)W~im?T:޺UeY-#dJe)Z5?$\dW<,Ɇ;ط5SոTT̄f(PYv=Q~DX*8辩s-	˨΀55XRl QCl|5{ӦT\t꼕+en۸Psl3UO[ZS3*,:ÛZLS'̵**@ı~xgno2-
 WV ;pZ9?~$6<QrbQ8&seEbQ,^|B碘VdV-(] .ˎ8/qhVnRQD*U(*1h1`؝QL{Uj`"o3 ܻVl:	jaFaE̞Zg1z2֠:AuZIf62tw+fDCL-}gZ0>҄xJ>\QA_Cihbl]64*A˯ɰqX7YX.-ոaɇVhiKgqNRĆN(r']%٘@3̀jZJ.;nm,S0xͻOF33ҧ<$'GE+}'1f3y5/&Z\RB7dm]8\3߂Ȫ@oT3eu^W@e7l!B,s1$Z&?dC (YЦSm>J"&pt܈P㇄BF4G5	t^Ć$j-a㠍g^ʐCAsT=kTS,|r9IBϘЬ'vG A@thQNj&T=xt;2]P|T-	LÞe1ݽWZŚ*MrH5?= o"9K5='k-*AE|	  qҔ_?\7%|M6f++S*}W _]3fmܮ˳m w!.R#鬪;qq71$ݙկ_iK&JάMemV5P0> Q5WHIh&4ҍIlE7}sm[cȾ|d^	%Uv1D>.T7*=tZ_㟾1Х:=0pZ6ҋNt (uƝ; B]$kڌ.{F*/UZN砦|oqKG;^侞9NexK\wh~ZpHb䉸[k8k.bX.QXpxYa^"#Bwnbum5F~>8bN:p4[gv^
BFUz)?60F8 /2C8>N8G%l%5FH{46h4%#7xoN t\'Ȩ E0#jNãVӹd?WlcW
žֵu-}22EN}#䵵2H^a3rqs-S3&f퇣fwl.=W8,cHjcTWנs90ZDMC2ZMdjt"8:g{.Ʊ1Fb618"yԦ>W9 V`jT򔔑<IMԱW'%f&\yZdkʹRyjw}Ѐ[8ԍbB 'd'mo'<|E5:ڋo>r,ni<TS>d qN.g+ SQ	KaB?_QE rjh>Eӛ;C׭7^q
`Ue#-;oJċԝ>);Jg׭9R;OgiI7}8Kہqjeؓ+ٗ'nϷk3eFρ0V#pMAzb^PVu~1uғwn	^.II_vdW[Q,+Lbćq9V}	ΏVw4qU3&jıHYb ttT7ρarBwP9?)uT/aA19kM
\Ps<Ta@<?M(.,'%?,%a~eU0/zQ(Ѹap:.6jdF@\V4{Ri8ɪnuFM_=Z8Hlsy5k%|(i9"6}ԋ~WK۟hYk\lRm&0b]g"ހD^ތjJ*)6-Ybh
Z=ޑA,(K#	OfJ:;I!6Yi&d%m86#QW_Av}?+G	cc*mg`>q+=[5͔?9W+^o^E8s)f2aQxi&	NE>"^Naa;f9]NE&	t^CLz'e8ZRs&67_ ãcyJ1@TZ?S D2
|POӌ\dR7zH9i Q#zrc.4GR4qx<2~Xhnੳ2auBNC +kX0aj5n>މe3vާ<>_uH:XR%~9!4oѼ 38? 1d#A&{A!i6/Xa㇤=W;|) g~?*悽 }ڧKt>5|E.AQ6(6

6є7 <9_Cf1Ўi8,V4$uti,.`v6r	PgFBɎ
tC3;,oÂx|	
/KMp1S_X.fV#U>Ȓ#B]AIVoІϵGTV1nr+OXS%³fOZ[_9P߰ {Gln%#hdwH= ye/W>,IP,*MV~ºK&eċM콣=)qFS"GTF*LX,h[wweWQEx?{^چExhiׂJH|^͓e*^Я.uxEb#;ԝ<]z]\wNhochqE=4Q17W̓lÕ6᧿HE_̣qyYR۫<x=cSXy!=08Ǘx?{}F_Ǡzktɱ7ڂ|t+am<xe$eɍ<[TX[ sV̋ާU*hSK=Fesw uYoٯnQ=NE:[(t]k|@ٿuZ\9{hvܕӆ.ڡsa$u+qw:#?eT3=л!pPL`:R;gʮFhaΐ;5Ie+bt06AW40ThJcc<&mJcc
OCnW?Nio](XЄ{Lz;g|Ǐ>9~l4sVy`Uߛ,#_u+DeM~hq벇#Yz$;5ͯ9$ z>
*jO$$O/xRtf-}*oɦ|3M;xިUl/.~XǎY4x3&x";$KI5dڭ~w[M9O%4Q}S^t@w[Y;-s;bwH-*imI-1e/~TNN.p)H$W~ƦO
(9,]gM6r+#%/swA$q4O>
d9}+$s?0a,>yڈs<=,c_*\D}2MT8/4g'ڦ8'}"C*\9#Y>z$7c[s|"$}	ymzQx 5%o$jkp)x-:И|?ofgFr2SZq}q	o,wyOgCF1l'L5T33yM92"s5uD6-JUbs
O)wR-2/5f<BQ4kꐭG	)%߼<dĪĞ32`a]S{K%\]3&pڸCո놶,^T7h5ulDxڷL'Dr6vշfc\gA@ ?	GFVAl,:i#~NUDV~7kK`!PMXR$#Tiihom՘<.8Um<3ES4ܫV9'bv{?VV3;U'֬1RV{Bi4CRhr6~ӖJP͎M7G -,NLo<ѣz2H&|$<{ڜK_mmS)>rϛf@=BFCB &'F}@&yubC?'S49+ÓCIî+f/RUCFu:C*}T:}{ݽⲷue[!>?ڸ"M
8gz0\HkZ:h~@+#Nfjyio!B	R'5>`[!T`mCIѝ}n
>W!M}Uav43)!kcȂm?	dwv!ה;Xϡۨ}8vt"Ӽ#kvXJ[l[ZݙMÀXC3l[TaVjʻѬ"œt:(<cZveQTqHi{銀Q埓'ÖiP￭mKAIBF
=Tᅽ(&TS?/؁A:ַОV(@wFa^]o]*99Ri_2vM`Pf{QYH#V7v7Ұq>@~uɘ׆Ax/xB3Ġtyb0nG`EDٍA:PwI7nW2ED<hD&Z	Π73&)LD4;7Ѵ?$k@""L&~1ʺf14ʱ|7Os}L1;?{1$w)1}0~7#E5`q&oow_鴊8Q1GɊ08hWe+\ԉRU?weOSxAU̞3|	=WAR
PtO%Q"1Yה!so%%^z_hn,{?"L5_D6+Sb<gfJ0b_x-;HW:GMiEeIuvJ]~mQHLKkhbA>}.(h"U]9Ih_V@GZ0C
pb:L3tN*N2!3Cayn.ɋW`̳}QBCi 8*{57O#aTBUoi0_^
ChrU}~rL 1z>..=%GGo EuPPsؘ޸8Pu&;*|i&Pbțh;[|y*cVhҼ(~_AqU2GIQ3`^v=@K'ЇZ#4sJ=:sY	sڥbyjS_E܃"@~>86#y[cSŬ#SJGZyvvSя扝pwaT/,
9'Jkv%%.~o[ 衧RBjSȀ*$'腁pçSu +9\_f+8u\,tpэkخJ0h(]NQvW786:ݣWcY_i>"R(e]6RA%U6&F]7@̳k3Xh?K Q2Bk[<o-[ s~0]T2hJqKv(32J//W,zd$2cAkP	K+Ec[QiEdVxR8B5a=:KQ\@V^;Kr	M{{#Cw}{^,$0Rc\oQѼץP$Yvp>?..KKAb65ke+]F<He";{wNyx/&f檄/XZ[7c%ŀ5dY_y"Ыߞ2\37
k\띲|FO 68nKzR"?/732:а>eWHU0Oק5e3Hco>l]02cH9{Z{sO!A,7?ŷ3 w俎A
Fj8B&8U$G $Y5FL5n1>q2.6e
+@/kb{(7i={l͍݂濦81g(%h/EfMҍt 5̼vgo ~ਜ਼WKi父UأݖwRSEFT%`=|*=1*SX^w)lfQH(YSSˌK1W]f7ך^&p@T'.%35zaTf6A5LX̡|L-ηTg{A)F."hjA;.~o%G#}&]׾c`ChH9xnNY lc\+v\EƧ1D9KX)2b.NWQש$/|6tð32ԛ7 2иyu0e)Nuh'd~xY >#b"k3:9v$ПC:)H>	զz;ed\jmfOa%9cKxۥ!k%HDn{Y"{n_}
)9=_/Z(>lYVgQ#߭:Qbw$zwٮ#U?|Ghz{o$wϜ)|Vh?ZV7%Go/׆E"KӲlp76 -z!l4n>$\zV?szqejQ]m^=^!lHB4sLi9}2^K5OB)Ov^~݀xrm\K&G^5CL}&FB]Kn3|sGjykObsܽaW?R6Jfh2	lBS\=jV*Y^˺^E)*\
rr(a@6nԌ?}dLgIvqNcaƮkmLcA!hdVwc=憖s_:җsLg>1*4-%&0Ub)Eܬ*b51	++;<`!qfM*,[/GK+{,>CLR%%c~'EGAG=h䟔8:IDN)W̻AF)ucw'qhXèL@a~6Pc2L"A2bU	&9A#QLO:E9kfKFb93tL$cˬpLz5dp۰>$`.~X= ?NͰ/LPNo0p b8AR4r Jj}Ӳ04ˋquۏAFP'HfXDIVTM7Lv\(N,/ʪnڮi^m?~	QUӲ04ˋquۏ b$tV&gϖr><y?f{紷 %~ZazW2sveW     @DDDD$""""bffff}X	O0cDDDDDZ6W08BI           .HW      
߈9 u*R*J^}:M$I$IFyџ_W<G<         pFFTMm*      GDEFD       OS/2gk  8   `cmapڭ    rcvt  (     gasp      glyf}]o    headM/     6hhea
D     $hmtx `    tlocao    0maxpj       name,    post5    
webfTP  T          =    vu    vs                           Z   2                          UKWN @     {                         ,   
       h     ,  
      h @  (   +   
 / _  "#%&&'	'	)9IY`iy	)9FIYiy	!'9IY`     *     / _  "#%&&'	' 0@P`bp 0@HP`p 	!#0@P`fbߵiY!     
 |vpjdc]WQKED                                                                                                                     5              *   +                            
      /   /      _   _                       "  "     #  #     %  %     &  &     &  &     '	  '	     '  '              	   !       &     )   0  0  9   :  @  I   D  P  Y   N  `  `   X  b  i   Y  p  y   a       k       u    	   }            )     0  9     @  F     H  I     P  Y     `  i     p  y                                  	  	                   !  !     #  '     0  9     @  I     P  Y  	  `  `                 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           (      (  h    . /< 2< 2  /< 2< 23!%3#(@ (  d dLL [  27>32+&/#"&/.=/&6?#"&'&546?>;'.?654676X&
j

j
)"&
j

j
)L
j
)"&
j

j
)"&
j
        LL #  32!2#!+"&5!"&=463!46^^L^^     p  @L E  32!2+!2++"&=!"&?>;5!"&?>;&'&6;22?69

x
}
x
}
x
}
x
v
L
ddl
   d  ;  2#4.#"!!!!32>53#"'.'#7367#73>76p<#4@9+820{dd	09B49@4#bkv$Bdpd>uhi-K0!.O2d22dJtB+"0J+ku0wd/5dW%   {  L > G  !2+!2++"&=!"&?>;5!"&?>;4632654&#^CjB00BjC 
x



x
u
x
u@--@$?2O*$$*P2@%d
d
BVT@   L   !2#!"&=46        % A  +32!546;5467.=#"&=!54&'.467>=2cQQc22cQQc2A7  7AA7  7Ad[##[[##[dd<c2<2c<<c2<2c<d               1  ,A   2632#!"&5467&546n,,.xxOqUBAwaxyrPEk      d     32!546;'&>76!' 	
Pԇ
	 $
op	zy#%**%$	p       dL   # 7  !2"'&6&546	6'&4#!"&7622?62~




\l

lL
7

&




l    	     2'7'	&c_"fn&\`tfjpO          32!546;!22&&     L   %6.676.67646p'0SFO$WOHBXAO$WOHB"7Q)mr	*`)nq&*    	  )   2"'#'".4>"2>4&ȶNN;)wdNNrVVVVNdy%:MNȶ[VVV  d XD   >.54>0{xuX6Cy>>xC8ZvxyDH-Sv@9yUUy9@vS-H    ^{   62!2'%&7%&63 ao  ^{  "  62!2'%&7%&63#7'7#'JJN aod⋌       &  2##!"&=467%>="&=46X|>&	f	

	f	&>|.hK

]

]

Kh.|       L   # ' + / 3 7 G K O S W  !2#!"&54635)"3!2654&33535!3535!35!"3!2654&35!3535!35~


Ud

&
sdd dd d

&
d dd dL



ddd


^
ddddddddddd


^
ddddddddd      LL   / ?  !2#!"&546)2#!"&546!2#!"&546)2#!"&5462pmppmpLpppp  	    LL   / ? O _ o    32+"&=46!32+"&=46!32+"&=4632+"&=46!32+"&=46!32+"&=4632+"&=46!32+"&=46!32+"&=462Lpp     L   / ? O _  32+"&=46)2#!"&=4632+"&=46)2#!"&=4632+"&=46)2#!"&=462DDDLpp     & ,    	62"'&4?622;;  n nBB #  	"'	"/&47	&4?62	62;    % I   2"'#".4>"2>4&3232++"&=#"&=46;546ĳMN,mwbMMoXXXX
K

K

K

KMbyl+MMĳMXXX#
K

K

K

K
     % 5   2"'#".4>"2>4&!2#!"&=46ĳMN,mwbMMoXXXXX^


Mbyl+MMĳMXXX



        -  32+"&5465".5472>54&&dd[֛[ҧg|rr|p>ٸu֛[[u'>7xtrrtx  d     / ?  32+"&54632+"&54632+"&54632+"&=46


ޖ


ޖ


ޖ





~
p




>






       G O  27'#"/&/&'7'&/&54?6?'6776?6"264X!)&1-=+PP08,2&+!)&1-<,PP/:-1&+x~~~P09,1&+"(&1,=,QQ09-0&* !(&0-=,P~~~  d     ! % ) - 1  !2!2!5463!546!5#!"&53333333,);

;),,;)D);dddddddd;)d
KK
d);ddd);;) dDDDD       62++"&5!+"&5#"&l`





j`


w

?
  d      3!#!"&5463#"&=X;),Rp);vLp      0   2".4>"2>4&3232+"&546֛[[֛[[rrrr|2



[֛[[֛;rrr

2

^
          )#!3333))p,p,     d    /  3232"'&6;4632#!"&546;2!546&&T2



2
>p


^


      1   2".4>"2>4&3232"'&6;46֛[[֛[[rrrr|

&
[֛[[֛;rrr

        1   2".4>"2>4&%++"&5#"&762֛[[֛[[rrrr



&[֛[[֛;rrr

          9  !2#!"&'&547>!";2;26?>;26'.

W

&

&

W
tW
>



      '   2".4>"2>4&&546֛[[֛[[rrrr[֛[[֛;rrr]$    (  76#!"&?&#"2>53".4>32
mtrrr[֛[[u$
Lrrrtu֛[[֛[        5  76#!"&?&#"#4>323#"'&5463!232>ntr[u[uh
ntr$Krtu֛[u֛[v
hLr   
 d     / ? O _ o     !2#!"&546!"3!2654&32+"&=463!2#!"&=4632+"&=463!2#!"&=4632+"&=463!2#!"&=4632+"&=463!2#!"&=46}




R
2

2


>
2

2


>
2

2


>
2

2


>



~



R
d
2

2

2

2

2

2

2

2

2

2

2

2

2

2

2

2
        L  #  54&#!"#"3!2654&#!546;2uSRvd);;));;) SuvR;));;)X);  d  LL 	 7  32#462#".'.#"#"'&5>763276}2
d!C@1?*'),GUKx;(.9)-EgPL
3
0[;P$97WW       ! 1 A   2+"&54. +"&54>32+"&546!32+"&546ޣc
2

2
c*`ct

,rr

,tޣ44       G  9  %6'%&+"&546;2762"/"/&4?'&4?62A		

Xx"xx"xx"ww".


^
x"xx"ww"xx"       r  /  %6'%&+"&546;2%3"/.7654'&6?6A		


`Z	HN.


^
d		g~j       b  1 K  3#"/.7654&'&6?6%6'%&+"&546;2%3"/.7654'&6?6D@
	*o;7	*		


`Z	HN	iT	"ZG	!


^
d		g~j         	    ! % - ; ? C G K O  3#!#!#3!##5!!!!#53#533!3533##5#535#5!!#53#53#53!5!ddpddX,,ddddDdddd,D,ddddddd,dddXd,,d,,ddddddddd,dddddd    	             #  7#3#3#3#3#3!5!#53#53#53ddddddd,,dddd,Pdd[[[[[     
    	"'463&"260V
C;S;;S;V0
;;T;;       
   !  	"'463!"/	&"260V
08D;S;;S;V0
V08;;T;;     d   &  !2&54&#!"3!2#!"&54?6,9K@

D@



K|@

@

J

    L 
  !2	46 >>C          E U  !"3!26?6'.#"#!"&/.+";26=463!2;2654&!"3!26/.6DN9

>SV
N

N








&
X
&
l		l-
p				
v










       dL  ! ) 1  3232#!"&546;>35"264$2"&48]4$);;));;)	'3]dϾV<<V<L);;;));;)X);E5+ddF<V<<V     5     #  	!526/!3!567>?!(%	
_5,Ry:"	*28T2*BBW-ޑY".BB%Z     d   ' 2 ;  #!5>54.'52%32654.+32654&+50;*7Xml0);!9uc>--Ni*S>vPR}^3:R.CuN7Y3(;	G)IsC3[:+	1aJ);4ePZ     o   !56764.'&'5mSB	,J95(1(aaR@	9       % /  #4.+!52>5#"#!#3'3#72&2p"&2KK}}KK} dd	R ,১   ! % /  #4.+!52>5#"#!5!'7!5L2&2p"&2C১  vdd	 ,}KK}}KK     L   / ?  !2#!"&=46!2#!"&=46!2#!"&=46!2#!"&=462X LLdddddddd     L   / ?  !2#!"&=46!2#!"&=46!2#!"&=46!2#!"&=46DLDLLdddddddd     L   / ?  5463!2#!"&5463!2#!"&5463!2#!"&5463!2#!"&Xp Ldddddddd      L   / ?  !2#!"&=46!2#!"&=46!2#!"&=46!2#!"&=462LLLLLdddddddd     L   / ? O _ o   32+"&=46)2#!"&=4632+"&=46)2#!"&=4632+"&=46)2#!"&=4632+"&=46)2#!"&=462ddA ddA ddA ddA Ldddddddddddddddd    L   # * : J  !#;2+"&=46!2#!"&=465#535!2#!"&=46!2#!"&=46dddd,XLdddd}KdKdddd       L   # * : J  32+"&=46#3!2#!"&=463#'7!2#!"&=46!2#!"&=462ddgdd/ȧ,XLddLdddK}}dddd           !2#!"&546	K,,,,,,v,,,D,,     L     !2#!"&5467'2"&4,XJ*J%pNNpNLd>tNoOOo      6    2.'&54>"264usFE66	!^Xm)<Dsxusm?>!fhHuXyHÂ          2".4>"֛[[֛[[Ktrr[֛[[֛oVrr   u   5  .54>6?6&'.'&76#&*IOWN>%3Vp}?T|J$?LWPI)(!1		) HuwsuEG^F&:cYEvsxv!K:%A'#"
A)Y       l  * /  7>%!2!"3!26=7#!"&546	7l
l27);;));Ȼp87cs*
s;));;)2c     L  6  !#"3!2657#!"&546&'5&>75>^i4);;));ȹpS9dTX
.9I@F*L6;));;)g	0!;bA4
        L  5  !2!"3!26=7#!"&546	62"/&4?622^^<C);;));ȹpeeoL;));;)Eۥ3eeo    
 
 ;  	62+3546&=#32"'&6;5#'&47635#"&>


Ȫ



ȯ

ȭ



ȭ
	

    L   326'+"&546d0dLJJ       L #  3266''+"&5462d00dLJJJJ     3   ''&47660J*J     36   &546.2   d    32+"&546!32+"&546      dL   #!"&5463!2L         3   46&5&5460d * ;   O #  72#"&5&5&5464646dd12N:	9		>	=  ,  L   32+"&5&54646Rdd0L;;   d H    	#!"&762!2#!"&=46		*9Hdd  uJ   		u`((&    ;(J   	'	7(a#aa     3   2".4>#"#";;26=326=4&+54&֛[[֛[[}dd[֛[[֛dd           2".4>!"3!26=4&֛[[֛[[E[֛[[֛~dd     3   2".4>"'&"2?2?64/764/֛[[֛[[	xx				xx				xx				xx		[֛[[֛	xx				xx				xx				xx		     $   2".4>'&"2764/&"֛[[֛[[Tw[֛[[֛1Uw        ; K   2".4>";7>32";2>54.#";26=4&֛[[֛[[?<B2!(#"3D<:


[֛[[֛/O2*(8\6/H*	



       >   2".4>#";26=4&#";#"3!26=4&+4&֛[[֛[[





KK

^

K[֛[[֛V




2

2

2

      / _  3232++"&=.'#"&=46;>7546+"&=32+546;2>7#"&=46;.
g

g

g

g

Df

fD

Df

f
g

g

g

g
ͨ

fD

Df

fD

Df      ?   2".4>"2>4&"/"/&4?'&4?62762֛[[֛[[rrrr@||@||@||@||[֛[[֛;rrrZ@||@||@||@||        0   2".4>"2>4&"/&4?62762֛[[֛[[rrrrjjO[֛[[֛;rrr}jjO        !   2".4>"&32>54֛[[֛[[KtrAKihstr[֛[[֛;rtxiKA>rts      S   6!2#!'&4'
&F

&       S   	&5!"&=463!46
&U&U
##
      ]   	#!+"&5!"&762

&&
     ]   32!2"'&63!46&#
U&U
#
&     ]   	&5>746
^$,[~UU&U
#$DuMiqF
       +  !2/"/&4?'&6!"&546762R,^j^!^j^^j^P,^j^    I Igg  +  #!"&546762!2/"/&4?'&6j^^,^j^`j^,^^j^         /   2".4>#";2676&#";26=4&֛[[֛[[:#6#:1


[֛[[֛.



         I U a h o  276?67632;2+"!#!54&+"&=46;2654?67>;26/.'&;26!"&5)#!	&0
=

2
pp
2

=	


353


X

v	v
!{,	
2

,ԯ

2
0y





r
w
        + I  6.'&&&547>7>'.>7>&67>7>7>-BlabD8=3*U 	:1'Ra\{%&=>8\tYR-!q[Fak[)ȕX1"@&J<7_?3J5%#/D	&/q!!6ROg58<'([@1%@_U2  ] r O  .>7'&767>.'&'.'&>77>.'&>'
'8GB 

	`H >JS>H7'+"	NA
5M[`/Pg!;('2"&"IbYCe\D9$886#1%)*J7gG:  8G\au9hoK$]54<<E"5cQ8	.@AU!UhQ)     jF  ? Q   2".4>&"&5476&2>76&'&6?6&'&'.{nO9:On{{nO:9On{FZ2Z__Z2Z#		%8-#,-"F-I\b\I*I\b\I--I\b\I*I\b\I9>||;7Es1$F^D10E^E$1u$/D0"%,I       ' ; L  !#7.54>327377>76&'&%7.5476&6?'&'.P[vY,9On{R=A &/l'PjR.Mv&6QFZ*HLh5)k|#		%8-,-"xatzbI\b\I-yRU4Zrnc1?1FrEs1<QA9n;7p$/D0V,I        (  '6#!"&%!546;2!32+"&/&6Z8%%
Y

YCh:#6#:d*! GDK

K    d  (   2'%/&=47&=4674L|XkddkX>1)]@		@])1ES>       L  ' + / 3 7 ; ? C G K O S W [ _ c  3232!546;546;2!546#!"&5353353353353353533533533533535335335335335Rd22ddddddddddd|ddddddddd|ddddddddd2222pdddddddddddddddddddddddddddddd      w  % 7  &=#!"&=46;3546'#"&=463!&=#'73546oXz#z*dXzdM*z       L   !2#!#"&546d);;)d);;L;));,;)X);    d  L 	  ?  32!546!32!546".5!2>&54=(LffL(,'6B6'p)IjV\>((>\VjI),	+'%!	!%'*    L   	'L'a'    M   	7	Maa'a    Q d_  )  !232"/&6;!%+!!"&5#"&?62**p&      0  32!2#!!2+"&=!"&=#"&/#"&468^&d,!02**6%%+*2222	
*        L    !53463!2!!P;),);DPdd);;)     L    3463!2!!;),*:,P, pX);;)dD E  k   +32"/&6;#"&?62{**Y    Dk   &=!/&4?6!546X`)		)		        	   !  .#!"!"3!26=4&53353$`$-);;));;ddd-(d;)d);;)d);dddd    dL  # 1   2"&54%##"+"&'=454>;%".=4>7i**d]&/T7"LRQ)2(    J  f , 5  3232#"./.46;7>7'&6327"&)^Sz?vdjO9t\U>/v?zS$24517F8%M)(
()GM~ 1==      7'''7'7'7'77 N괴N--N괴N-N--N괴N--N괴    d ! - =  32!2+"&/#"&54?>335!7532+"&5462(<H(<,F=-7`1dd>2vddQ,}Q,d-!2$'$(ddw}        L   0 <  32#!+"&/&546;632+"&546!#35'!5X,<(<(21`7-=|dd_dd22L!-d,Qv,Q($'$dddԯ}w    dO  7 G  %6!2+#!"&5467!>;26&#!*.'&?'32+"&546dknT.TlnTj:d%8
	VOddip&yLN(%
H	YS(22S    dO  6 F  #!"&'#"&463!'&6?6*#!32!7%32+"&546njUmlT.UnJ	
%&jPddO(SNLy&pd(Y    a  L  7 G   2#!"&/&?>454&/!7%.!2#!"&=46ސNS(%
	p&y22SY(nTjknT.T8
	Vd%dd    - I  !26=4&#!""&5&/&7>3!2766=467%'^NLy&p(S22(SYLddjTnlT.TnkV	
8%d     %   2".4>%&!"3!7%64֛[[֛[[

[֛[[֛9



&      %   2".4>6=!26=4&#!54&֛[[֛[[%

[֛[[֛&



       %   2".4>&";;265326֛[[֛[[K&



[֛[[֛@

      %   2".4>#"#"276&+4&֛[[֛[[

&
[֛[[֛

          2".4>%&277>7.'.'"'&65.'6.'&767>'&>7>7&72267.'4>&'?6.'.'>72>՛\\՛\\d+:
=?1	""/?9#hu!$0E.(,3)(	 	
*!A7,8!?*

\՛\\՛	'"r"v	G
	.&*
r$> #1	
% *
	'"	$g2(	%
          67'"/&47&6PM<;+oX"O\e~Y+"n+We    `   # ' 7 ;  !2#!"&=46#3!2#!"&=46!!!2#!"&=46!!d);;));;);;));;);;));;,;)d);;)d);dd;)d);;)d);dd;)d);;)d);dd    d  L    !2#!"&46!|;**D      d   %  32!2!5#!463!54635#!"&=);,);;),;);));;)d;)pdd);d);dddD);;)         + A W  !2"/&546)2/"/&4?'&6#!"&54676276#!"&?'&4?622,^j^5,^j^/j^^^^j^j^,^j^&j^,^^^j          # ; C K   2".4>"2>4&$2"&4$2#"'"&546?&542"&4$2"&4ݟ__ݠ^^oooo--  - L-  73H3)z	-  - -  - _ݠ^^ݟWooo -!!-  -!
$33$ 1~ -  -  -  -  Z [  %676&'&#" 3276'.#"&47 7>32#"&'&6767632'."[v_"A0?! -	Y7J3$$)G"#A.,=#(wnkV8@Fv"0DG([kPHNg8B*[eb2!5(7>B3$$')M"#!7)/c#*xnfL@9NDH7!$W]B$&    d XD  D  >.54>"".#"2>767>54&0{xuX6Cy>>xC8Zvxy#!?2-*!')-?"CoA23:+1!"3)@+)?jDH-Sv@9yUUy9@vS-H-&65&&56&oM8J41<*.0(@	)*D*2Om  9w  .   2&/7'/&477"/&4?BB8"._{iBBi
	BBBBBB7._BB^*k"5._{jBBFi	BBBBBB77/_             2#!"&54>! "264d:;));<f>XV==V=.2G);;)3-D=V==V        	"/''!'&462*$3,#**#4$*    ' 	 2 @ K  #.'#5&'.'3'.54>75>4.&ER<,3'@"<P7(dW(WJ.BN0 2Uh:**&	h)1"37N,?iB$.,-<d>MOW(kVMbO/9X6FpH*M6&+	 4C4%    d f J  2#4.#"3#>36327#".'>7>'#53&'.>761T^'<;%T)-6"b "S5268 jt&'V7	0$ݦ
-$aPN(?",9J0*	d2>2
""
7Gd/9+DAL!X        32"/&6;3+##"&?62*Ȗ*,|       %  #5##!32"/&6;3353!57#5!ddd,*dc,dd|ddd        ! %  32"/&6;33!57#5!#5##!35*X,ddd,d,ddPddd    L      32"/&6;3##53#5#!35*Xdddd,d,dPdd     L      32"/&6;3#5#!35##53*d,ddd,ddd            32"/&6;3#53!5!!5!!5!*d,dpd,         32"/&6;3!5!!5!!5!#53* dpd,d,     LL    !2#!"&546!"3!2654&^pg);;));;Lp;));;));        LL   +  !2#!"&546!"3!2654&&546^pd);;));;oLp;));;));$        LL   +  !2#!"&546!"3!2654&!2"/&6^pg);;));;$Lp;));;));       LL   +  !2#!"&546!"3!2654&#!"&?62^pg);;));;p$Lp;));;));        L  5  !2#!"&=463!2654&#!"&=46&=#"&=46;546&p);;)>DLpd;));d&

     #  %2"+'&7>?!"'&76 6763	,			P''
K		
S#	nnV/       L  5  !2#!"3!2#!"&546&=#"&=46;546^>);;)pDLd;));d&

       1  !2/"/&47'&6#"3!26=7#!"&5463!m)8m);;));Ȼp,pm)8m;));;)֥       #   2".4>"2>4&2"&4ٝ]]ٝ]]qqqq{rrr]ٝ]]ٝGqqqsrrr      L   #  3232"'&6;46!2!54635
'	gdV^|d22       L   #  	++"&=#"&7>!2!54635Gz
"'gdM !d22     LK   "  	62"'&4?62!2!54635qgdq#d22     L 	  # '  762'&476#"&?'7!2!54635*MMК=gdML*Л:d22       L   # '  /'7'&6"/&4?!2!54635^WЛԛL*MgdКԚPM*MXd22      %	!	q3gq       dL    +!#"&546;!3#53LDdddp,     E   /  '&"!#"&546;!3#53"/&4?6262L_		Ȗdddj\jO)_		p,j[jO)       >  '.!#"&546;!3#53"/"/&4?'&4?62762Lg%dddFF))FF))gp,F))FF))F        /  !"!#"&546;!3#533232"/&6;546Ldddd*p,           /  '&"!#"&546;!3#53++"&=#"&?62L*ndddd*pp,    L 	    !2!546#!"&5!52LPdL&    }    - 1 ;  &=!5!546#"&=46;#5376!!/&4#5;2+p/22ddpddd33*ȖdȖ*yd     d    Q  %6+"&5.546%2+"&5.54>323<>3234>^%"%
"
d	d	1t5gD>?1)A..@^^  d  L 3  "!5265!3!52>54&/5!"!4&#5"2pKKp"2KKL8
88%v%88
x88%v%8       LL     $ ( 4  !2#5'!7!!2#!"&546!55%!5#!!'!73wipdw%,);;));;),p,ddibbd;));;));dfdd    &  767>".'.7.wfw3.1LOefx;JwF21vev/ 5Cc;J|sU@       L # A   2/.=& &=>2#!"&=46754>ud?,		1;ftpR&mm&L!(("

""""'$+ 

222/2!         '  !'3353353!2+!7#"&46!2!546LJLP*dd*22    d  L 	    #"!4&#"!4&!46;2d);,;gd);,;;)d);L;));;)D););;)      L    % )  !2#!"&546!#3!535#!#33||D|,dddL||||Dddd,ddd,     L    % )  !2#!"&546!#5##3353#33||D|dddddddddL||||Dddd,   L    #  !2#!"&546!#3!!#3!!||D|,,L||||Dddd     L      !2#!"&546!-||D|,L||||D,     L      )  !2#!"&546!!!#";32654&#||D|dDd&96))69&L||||DdVAAT,TAAV     L    % )  !2#!"&546!#3!535#!##53#53||D|,ddddL||||Dddd,dd   L     # '  !2#!"&546!3!3##5335#53||D|DdXddd,ddL||||Dpdd   L    " &  !2#!"&546!#575#5!##53#53||D|d,ddddL||||Dp2Ȗddd    	 	   %   2".4>"2>4&!!!'57!۞^^۞^^qqqql,dd,^۞^^۞Lqqqddd     	 	   ' +   2".4>"2>4&#'##!35۞^^۞^^qqqql2dddd,^۞^^۞Lqqqd2d2ddddd  A   6  2632+54&#!"#"&5467&54>3232"/&6;46n,,.xxPpVAbz

&
AwasOEkdb

    A  3  2632&"#"&5467&54>++"&5#"&76762n,+.yxZ%	OqVAb



AwaxchsOEkdc

    d  Lm   %5!33	33!#"!54&#Ԫ2dd,,Md22     y  7 /  2#"'2!54635#"&547.546324&546X^Y{;2	iJ7--7Ji/9iJqYZ=gJi22iJX5Jit    '   * B J b {  "&'&7>2"3276767>/&'&"327>7>/&'&&"267"327>76&/&"327>76&/&oOOoSSoOOoS=y"$GF`	Pu"Q9	ccccVQ:	Pu"GF`	y"$ooSWWSo++oSWW"y	`FG#uP	:Q#cccc:Q#uP	$`FG#"y	    d       "  !#5!!463!#53'353!"&5+,
?,dԢdu

 


     d   	    !  !	463!#5##5#7!"&=)+5,
?,>dԪ
|
 ^G
|d
77
P             #3!#732!!34>3!!ddԢ!,d!s, d,+$d$+pp       LL  2 9  3232#!"&=46;54652#!"'74633!265#535d22s);;);)X>,>XL2dd2;));FD);>XXԢd  d  L  6 =  3232#!"&=46;54652#3#!"&54633!265#535d22s);!);;)X>,>XL2dd2;)$+;) );>XXԢd          	#!"&762#";2676&35} ,, }@D:#6#:&77&P'L.dd    	    LL   / ? O _ o    32+"&=4632+"&=46!32+"&=4632+"&=46!32+"&=46!32+"&=4632+"&=46!32+"&=46!32+"&=46



























L



































         ) 3  3#!2!&/&63!5#5353!2+!7#"&46!2!546dd^>1B)(()B1>^dd>JLPdO7S33S7Odd|*dd*22         + 5   2#4!!2!'&63!&54!2+!%5#"&46!2!5460P9<:H)"Z"
)HJLP;))%&!!&**22        $ .   2"&432!65463!2+!7#"&46!2!546jjj."+''+#JLPjjj9:LkkL:9r*dd*22        , 6  2"&5477'632!65463!2+!7#"&46!2!546X/[3oo"o"."+''+#JLPk6NooN>Qo
9:LkkL:9r*dd*22         " ,  !!.54>7!2+!7#"&46!2!546X,%??M<=BmJJLP9fQ?HSTTvK~*dd*22      )   2!546754!2#3#3#3#!"&546/R;.6p6.d6\uSpSuu;)N\6226\N)G6.dddddSuuSSu   dLL  / 3  !2#!"&546!2#!"/!"&4?!"&=46!'|

%XW&
dDdLD
2
%XX%
2
ddd        L  # - 7  !2#4&+"#4&+"#546!2!46+"&=!+"&= Sud;));d;));du);P;ddLuS);;));;)Su;),);2222         	!&4762	!2!546  'YV/ |UYY(n0U22       !  /  .#!"3!26=326!546;546;33232!'p'q*}20/222,2          "  !#!5463!#5!#!"&5463!#5,

w,,
v

w, 
O,T



  dG F V  32676'&7>++"&?+"'+"&?&/.=46;67'&6;6#";26=4&KjIC


)V=>8'"d1*)"dT,|-otE


GAkI
! "%,=?W7|&F@Je5&2WO_e_
2

2
 ~ 	 $ 4 < R b  %6%32!2&'&#!"&=46#";2654&'&"2647>?&/&6%?6'.'.. +jCHf7"	*:>XXP* @--@- -?0!3P/|)(	)f!%=&*x"62&CX>>X83D-@--@ۂ
# =I+E(	//}X&+	5!H	     d  9 Q ` o  322#+"&=#+"&=#"&=46;#"&=46;546;23546!2>574.#!2>574.#q
Oh ..40:*"6-@#

d



KK



d))k))
m!mJ.M-(2N-;]<*K

KK

K

X

K

KK

"p
"      ) ,  !2#!"&'.546"!7.#Vz$RR(z }VG+0 )IU!zV`3BBWwvXZ3Vz&--%,(1#        32#!"&546+"&=ۖgT)>)TH66g)TT)g66         33#!"&546+"&=`T)>)TH66B)TT)g66         	%'5754&>?'	%5%Ndd/\^^<ǔȖ
(Ab   d      2"&4$2"&4$2"&4|XX|X|XX|X|XX|X X|XX|XX|XX|XX|XX|      L      2"&42"&42"&4|XX|XX|XX|XX|XX|XLX|XX|X|XX|X|XX|    d dLL   /  !2#!"&=46!2#!"&=46!2#!"&=46}

J



J



J
L



p



p



          / 3  !2#!"&546!"3!2654&!2#!"&546!5^);;)X);;G;));;)X);d,d     d dL ;  !2+32+32+32#!"&46;5#"&46;5#"&46;5#"&46222222222222L********   ,       *  .62"&%#462"&%#46"&=32W??WW??||||||*(CBB||||԰||||Ӑ    B  76+2+"47&"+".543#"&'&676/!'.6E*'?)
T0I'*L
#3{,#
n6F82 *<SC#
(#((#         % C  #4.+!52>5#"#!#4.+3#525#"#5!2&2p"&2D
d2d
 dd	R ,
W22
        L    0  5"'./#!5"&?!##!"&=463!2E	1;E%=!'y,2 "
#	22+."A2Vdd       G J  !2#!"&546#"3!26=4&#"'&?!#"3!26=4&'"'&'#&#2LFF&	7

?
99gLR 2222$         # '  !5!!2#!"&546)2#!"&546!PpmpG,Ld|pd,        # '  !2#!"&546!2#!"&546!!5!2pmpG,P|pd,d       d ' +  !235463!23##!"&=##!"&546!2dddpdp,d ,          '  3#3!2#!"&546!!2#!"&546dddpG,|dpd,p     d  L ' +  32+!2#!"&5463!5#"&546;53!X|^d,Lpdpdd,           '  !#3!2#!"&546!!2#!"&546ddvpG,|dpd,p  , 0o   	#"&54632a5*    A 2~   	6'&4O**{))*     2A~   !2"'&6d)***     2,~o   	#!"&762{))*a**       (  
  5-5!5!Lc        d  1  #3!35#5!34>;!5".5323!,P2&d2"d&2dd,dd dd	& ,      L % 1  #4.+!52>5#"#!#3!35#5! 2&d2p"d&2 ,, dd	& ,dd,dd    frJ   32	+"'&476
0

)
J00		  > fJ   32+"&7	&6S
)

0
J	))	   f Jr    "'&=46	4	))	w

)

0    f>J   	'	&=4762j	00	)

0

    =  :  #463267>"&#""'./.>'&6|Vd&O"(P3G*+*3M,:IG79_7&%*>7F1||5KmCKG\JBktl$#?hI7           !2+&5#"&546!5X,p	ddd     L    !2%!#4675'=DXDddQ,[u}4]dd    Mo__<     vs    vsQ               Q                 (         d     p          E              H    E   d {            	 d           & n    d  d  d  d        d   d                 d      5 d  !                   u       
         , d ;                     I      ] d       d  Q     E    J        a          d       d 9   ' d                                                d d        d 	 	 d y ' d d     d              d       d      d d   d,               d  ,A 2 2      > f f      * * * *   NNNNNNNNNNNNNN"~Fn2b\r bb	6			
(
L

0X*^h(T*v
8|t*<6`R.j(h6h^2Dl.vb F !2!v!"@""##"#8#z##$$0$^$$%4%`%&&~&'P''(4(p())*&*J*+
+z,,h,,---.(.f..//F/~//0>0011`112$2^223"3>3h344`445,556>6|677N7788B889
9J99::l::;;<<P<<=2=>:>>?(?n??@H@@AA~BBBCCBCvCCDD`DDEZEFFtFFG6GvGGHH2HNHjHHII8I^IIJJ.JR                 @ .                   	   j   	  ( |  	     	  L   	  8   	  x6  	  6  	    	 	   	  $  	  $4  	  $X  	  |  	  0  	 www.glyphicons.com C o p y r i g h t      2 0 1 4   b y   J a n   K o v a r i k .   A l l   r i g h t s   r e s e r v e d . G L Y P H I C O N S   H a l f l i n g s R e g u l a r 1 . 0 0 9 ; U K W N ; G L Y P H I C O N S H a l f l i n g s - R e g u l a r G L Y P H I C O N S   H a l f l i n g s   R e g u l a r V e r s i o n   1 . 0 0 9 ; P S   0 0 1 . 0 0 9 ; h o t c o n v   1 . 0 . 7 0 ; m a k e o t f . l i b 2 . 5 . 5 8 3 2 9 G L Y P H I C O N S H a l f l i n g s - R e g u l a r J a n   K o v a r i k J a n   K o v a r i k w w w . g l y p h i c o n s . c o m w w w . g l y p h i c o n s . c o m w w w . g l y p h i c o n s . c o m W e b f o n t   1 . 0 W e d   O c t   2 9   0 6 : 3 6 : 0 7   2 0 1 4 F o n t   S q u i r r e l          2                          	
  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 	
glyph1glyph2uni00A0uni2000uni2001uni2002uni2003uni2004uni2005uni2006uni2007uni2008uni2009uni200Auni202Funi205FEurouni20BDuni231Buni25FCuni2601uni26FAuni2709uni270FuniE001uniE002uniE003uniE005uniE006uniE007uniE008uniE009uniE010uniE011uniE012uniE013uniE014uniE015uniE016uniE017uniE018uniE019uniE020uniE021uniE022uniE023uniE024uniE025uniE026uniE027uniE028uniE029uniE030uniE031uniE032uniE033uniE034uniE035uniE036uniE037uniE038uniE039uniE040uniE041uniE042uniE043uniE044uniE045uniE046uniE047uniE048uniE049uniE050uniE051uniE052uniE053uniE054uniE055uniE056uniE057uniE058uniE059uniE060uniE062uniE063uniE064uniE065uniE066uniE067uniE068uniE069uniE070uniE071uniE072uniE073uniE074uniE075uniE076uniE077uniE078uniE079uniE080uniE081uniE082uniE083uniE084uniE085uniE086uniE087uniE088uniE089uniE090uniE091uniE092uniE093uniE094uniE095uniE096uniE097uniE101uniE102uniE103uniE104uniE105uniE106uniE107uniE108uniE109uniE110uniE111uniE112uniE113uniE114uniE115uniE116uniE117uniE118uniE119uniE120uniE121uniE122uniE123uniE124uniE125uniE126uniE127uniE128uniE129uniE130uniE131uniE132uniE133uniE134uniE135uniE136uniE137uniE138uniE139uniE140uniE141uniE142uniE143uniE144uniE145uniE146uniE148uniE149uniE150uniE151uniE152uniE153uniE154uniE155uniE156uniE157uniE158uniE159uniE160uniE161uniE162uniE163uniE164uniE165uniE166uniE167uniE168uniE169uniE170uniE171uniE172uniE173uniE174uniE175uniE176uniE177uniE178uniE179uniE180uniE181uniE182uniE183uniE184uniE185uniE186uniE187uniE188uniE189uniE190uniE191uniE192uniE193uniE194uniE195uniE197uniE198uniE199uniE200uniE201uniE202uniE203uniE204uniE205uniE206uniE209uniE210uniE211uniE212uniE213uniE214uniE215uniE216uniE218uniE219uniE221uniE223uniE224uniE225uniE226uniE227uniE230uniE231uniE232uniE233uniE234uniE235uniE236uniE237uniE238uniE239uniE240uniE241uniE242uniE243uniE244uniE245uniE246uniE247uniE248uniE249uniE250uniE251uniE252uniE253uniE254uniE255uniE256uniE257uniE258uniE259uniE260uniF8FFu1F511u1F6AA    TP  wOF2        T y                     ?FFTM ` 
PK6$   |L?webf[8 m;t c6֛>S8{]??=i% Pڮڭf85J0ufeB\ElAw6fF0löM`;iOߞUԱkٶ"=˲ú/6/eXqvf{]-o,5&}L:0{eƥV*3~1MhM4:9jGBKY2c=@V*+=g;ߟ%q,sYFojDtwZ1tS\L⍇k(1CKzZ!iMzH؆D[gcNթE~jVD[/TD˾<@jcl˴}sg4FfF;H
EP#I1{X͜ӹ]ps^(S.N1Sߜ$@ۙT\k"G" VZgf?{D8f9gi\ "ٖu^+%uSϙ!JY5{kjJi!t"vC0pasg
3~3/3<sKutntS|]~I* I7yEL@B%TTTzu\ebbM.-f?  Os$/.Yu7FQ5Fح܈%
b`oիoct@7*{HKP9(*[&&{W0eۢ8vhaߟ-%/wgg|\Ex^;HD(J&Dmo}	0ig#i{҈43f;mv{GbPT#``w$B`X1cV1hvk|ex{HV@  RR3ԂERKQ=slݣuj@RKPj#5n7f?l Atoݓ.Ū=9oC^RIU
P$pC	ANJ"힙8_	hJP$Ib"tC/{,2՜^2E½濿ڪj,`daBw  -0S0!,٬I1ߧj k?/s*B_Po/ۛ+i2ׂ"&INst7U%]+D#n6r<0uowRREEA3q\Z	\/#NKʷa̕hvMwa`Z\gfN ѷܣ[vk+ y](;Kaz45ʕ ~ݕ[/^{,)`w ?JP^h`ZU420a!}A<	SM<#!ƛ nm'(/!ڻv	a	LBxA؇Ln
yTZm=4?1܉fQO^>ޓD91CjV@i,,Mfizu		˸I!Vw<75L~:4)Kގ 3#c*\ܧ%*Jd^
 
\r?MkJIZ_cXriX`.Ieϰ+T**fEdq=:2:g2(XpUF*:\j£EZhBNg -Ք\{Xk>D/Dနq%OZI2&KP\6؊0tlK]xHdDMtiP]+PxXS.<ȑqJn!dL]n$28(?奤:yd)bJ[JE6k?̹͐'"8H"7l|OsP4JOܓfA&)dJ`	]nhi[S([O~,6f=2q 5VMOѮΜHs>Zv`f7}3fmX&cqǿ2q`~x#k@0X:$1ܰ p.
d/^p"KEq"&jޜzD	2NG vvaDv_ib>qv6D)%`bؘxb:Kn#OA6;~yI&~ЋpgF	qaT+|vX(QC.NחzKjJS4@f03r{Am|$oO&7?<>Z/)3gu\^}q<I>ࣺpF@aVeӎл3	g afiKs)fJ]j}S{KoHC{"?	M~#r$l xۢw&1(CO}|M6A00hC Xl.O&e,y^4SRE]>bbv秘weiIk/OO \ĝ|[?8lgVo	" Vg	;F.!#l6+)6β=`]"^A?}<ú"V 'J;-*]JlgΔu5ߘo@l53rOW2xЬu?M_h.7\wgu7y{PxjE6>\UA gGٟX.K,魃Ӿ cU)R%XAT0=%b3smfb&nYWhs6Űڲ6q|)2+;72*fYrɦDvcx
ދI}ISIv2&2Kټ0AiN|J2Q,sc)}'	N-*{{OERQcׯw?˿is5y(Nl_߷crp~Ӳ)ϤnUZ@E.&7E?Z\Jb
t<,)JQiZOl{6R|pg+W'ّnpfVV eH[csF۽ *4%7F#i}7we(M7]Oj3+}#R:ƛKCdLX5`HW6ص5W+ߕ"eהK4aMNIh vN)Ns[*eQԎF|ɮ湗)s=n͡Fa^%ޒbRR
.
ukAd4hԲح#=k94zKѲ
= *`x;]pT,.nOqwL4`8D-yܰG',1/&[*QmPK/t%:Bvy.ClL^8ޟꓬ^
͵m\xq[
]Ã2KY'r<6iThx0}Ah.!j,tBSQ>Ց9[UtpF߾Fz*?+*idjC>
wo	G7`$2-W72aQKJ'2ؐzIr4^j|$Gn%KV"D*8^%]Z).ޚywEF]\\kX}Bu3EF,hpdZ#YGRy=67&2lٶ$#Tj(,E[[mgjY?X˨k9hFRQAq:(قmC/XjHSf֢zș`2P=-(|MI/0σA.>;Tu\zt89B Q;
ֱlk
UהlfgXCEƌjM֠IppKu\I,|*p!sʳzc^kdpXB /4ڽݩ֚\$h5PM$H8#rA5P/e&<X@OFy&лq%ы`:_xvёd#@v@|랣V&;}X2a(8j:FSDHP渽SK^^Lir#'ˁJbEJ:"/j-D1->S~&Ǵ^2L%jjax	xIolܹxC )[t"uBu;⼃LW{ID@ofb46ev27/z`Ytu7q/{5h_ΎFff!I[Wh3ښToXJ`~@y۲JwBuv ,hApڏkEh(sevݚ%*bӉjkƛfx/WYfRyZpQU>zxeCm# >:4ZtVTeDԮX%RSn^%~FjKhͩ\Z>;TeFfW)7	W
I(2x< |*H֎ť+yNA㺼z6iDF0E9$ zD0t<Ч cAIZQ(c Ǘ0i.ob.xf('vE݅؎UK=/N@Qïo^hj+ƟBa"U*sLeZQA?"fy9!Z8W!wV)xQu(ry-H8yf3ps;BPء
ۓk6xw/0B64mi R9f|ebOCCp$YW+SST)	Θ0>[]nd
ǍwetwүyجO*P[*Bu-}AkYHV3^Tʈ̅V$יƴ7e~<26Ѝi??\΃2g& a"! :L@emwrZfrp2L	i{piS=xld䄍IXJ&AV]0Ԕk2 *kR厖|靆I:w}C$6~!z /֟;KC$uwVnDEld.}4ٰ<d!Kh+#McI
HZ#3WTBBPQ(Hsqt9جAWPRFC5`Q!£le_3S	]>Vf-W^EV1FU𜠴{G#Tte#∥x(Ăh}+dt`LBٺ@9s$=4SiFO(KsDV"Q¤pR#:S-Vlbo;NnMl0R_rѶ$cOTw(x Ruۺ;:/t[{v6-lbO,*~},hb11h4kOmxQ(Mt6o`!G(|*9ujNFZQIl;<!4#$-WT[9ub(CV/s$ХЎ43a*>qьJuYF1qdHv2l:LA\Dtw@lcA?d_H0iz^ao2EZi6}뷪ŁR4؀O)*+xi͗Kgx~ׂI:Ҟ;Z4-Ck5	7vV$\XBӔD 5g9uG١g- Wjm+xT:jR4Bkɏwr5خ~&4L˾ sG,#7Gn>O˯iDⱝ`2N~_!9OR?j._K0ƁBn'WKlYttrӥiJ'n{k0#gNR	,;~kїqjv8m>^jv@:T(mHD:嶡<(բ<g%e>9/%'Hm>l4a%̳;yd&gj9uO CUMߨė7{ȹArkB*e9H$j^}{ZTQiұa<T=·&K(M9I>]Ybt(EagFHFuCeQ`l*Sd_%M鷺#sh:(LTǬQΥ$*VV-qҿ܋k-IN!/W*Rj*V9j>FTDYU2;3=՘')RѪy5ǹCynG-'TVQ?X#ݿrÎo~A5	h`E!m1::X!9S+ 6=P%I`Rʿu78/o8BrK~^\L7ူ)76Vh@.˲+aWL˦(_{Lų2ִͯʿi_(BR72v挔p+j:(*d&]I1azdݣ o2/n\2<$ϥ44V0N*M ZWT`uC?ۖve,ކh'k(/x}wXpjk_tʪ||L\8#>v]&Tb05fQٛE'VhOVD3覒hƸ<oc-:*6vKiw,=tP_2/]YXXʗ+"(fF.Bpm>X<S=ind؋F~Q9gim̤3Ļ%qa</YH._V8˕Էؕ*IiI5ꋨf1	 P;F۴wy+Q`x12byy Lg.׳/,?Zӑzwiwި㳲LDyrswaHέza	vSMV,4=]JBHCC+X+R{}9 DLXuC8G1ۥRe⣟jm:shU/Yt8\vS	NrXv>^2EMCY['߶¤::_c|Yx^QL' q:F^Z㈯2d *Nx	0nn4#MCA]DІ1+q^-|P%]*Mu[5d)|`2k[WEc1W]zGoR$oy:ش?-Yz4M:9r;#U}q'9&:Ӂt.mɼXu.<|̟	ZЯ7Ξ*6R[Gա9_m9$#n.'jpEIFn.FЬm5xÁ~zBØv-$zO;6M3W[f\gu42_9zSGﯫ	b~7: '<Wd	btk=$aiz~#fEouS> ^uV<Kl0a7uZj+LT8DK%/O\!QQ}{hwXdz1{m-#%3:hhH1FN$-R?f̘Ihr)eVL+,Zn޶Е7!*De9*_-YGDGI+_$<_ʏJjqPE8Jv5Iw&
tLW[j=vNrت²+̈́cpJX|÷>ZNOVDja!J?ZqzjV<'y]FeӠ|%t#KF*7h=0b!#ܸeZWc6Cy4)SH$űC\|hDO:u,I2ꎽkI\q*,E?QM8E(% (ʞx\$@ihY4L)+%FZ'A<X3
1RVK+9J)R"yeLiB:@)sT%'#ňV)ᛚAQ۩dalH.9DQJQXM! ^*"ӎ,*)qzPVH^qYIRx:i`|ǔ<ۡ$V<D5PfD&{07@PAm+y5'"
SkDr`hwzlZs3h0/IXFah:XPf!C[݁).%aHA` 4⡴ݟK瘳'ZRԮj>ESN܀B	ps
ɥM`y2m#~s˺ǘT+Fi0$}kT0W"c,G2B@-t2Mu3P(s7A~,<o=Fp p*HL6)m湢D4#0BMn eBHǯa!؃=K2%bۃ\;)ʈ l63Ƶ\9/qNnqk%'(Xz\Bn@͗ X?2U#Fagqi\1!FJ#T* f/k7~#5R,r ExOO*'}a`wE%< #"	! Kb3d'<5+FzVmlrdwݾ#~{j5qy,>.טu.11uu2NG2ӆ3pe+v0ǃ׺{[%3_Udﶀ$bv-DuC7Y]M_Ke1k沂*ЛG	[	0 _=[reKX}b9)LԊL.Ӛ*TDg+\Ygk:WSi2;c 0N#IG3{ifu m6d6:@0:ݏ'yo䎮)UqVicM1e/\2JN#A{&,"X.!qkA(bE5;À
٬ܕUd􂖳{A j
<σk Nu{'JAÄ߿ s[`(Z27ruQdV
VmܮP[K o-%3cvСg {aihs.c?c=y@ƥ2^Hc莭[dq
2 !(p!<ψNcJ:	
"!KSoZIfQ4lc#Ul+4X>(2dd2 ihk+B&/>$G27t DK:ǼVNکnK]H+͈XW"}0}$h=cmTӒ)(Ug&h#pc%Υya<"Unϡiڋ#XrǉJ
v޳()8H^ 57Τ[PʨcEGҪͅү[W!ˡ
ֽb(ܞJP'h]ZF/.]5_b9aKC!+)Ě*O 1\b+f\MMHUPr62HdrI6&J'ò	B'*{[?9{qd^p^m``vkR<lqܶTq΄eU.c1'+64I7$~NEl!:9)i 3{ OV7&d#Fj%1i~J0K~wG|kkxޠCMq'9#5ʇ
-f	X00Fin%88$+C!³1CӀ]uF8cY7y*|2*$F!%Uw~~ۍtsnR4G-YȅKqKoy!7BK$;{apV|8H%iN?wVVt`w]wXo[3r9s[038uMdbH%K݌A0b>]RT X,Fx' {PLKj.~)T"QP1Xgi#/_ '^VS\9,r$5U4%5{gh ~s>r.HQ.vC؄)z`DX]Dgvμ؃ i˾3ڏXZ#FFYkWҨ>mI69{%>A0F_bx2f)WmĞ	ݵTn⻓եrEܔ'~r/Csxm၌k,λ>|7Ec6b540ݎ?wfsמ@oi'/u6j43ݿCy]fFD4>>N?6GVtݐW8XUdh4*ҪE&<dhLYN4Οnm3r}ўv(LT򵑖WatL&R3C{'l4VhFGm͢Y ]2oFvlpwǀ"+ umLhR`T${13%xgՁM^yRo
w<I&HqIMX?mN6y?u+-jбhc䤼?~⽥(IlPG)' (kZ}|JۮcLްbv)qP`9jTߴD	8a+iE3[ǿR=kCwBUu$	VJ柒5JWfkx*uȴ[z&\pύw\8qp%ԐS6d?YB4)ȆjX&`S+.F+caxJTCO_?fM.Eh0я;yĩ>Yg.YOIi^%GNyE<0
˨aJ>F;Li{KMB-LW0y/+Ī<,}8V#[pY.zvERK{^p$ [vwwoŃCc`ԉǶŶmCg4$<+
ǈ`5R~-w7FBi,S+>dI#hC#+6S?J%΂j
kbIZ/i5&!!axd[StcrC9ɑTrĪ#L73$|&x/ֹBYx1hJQ{78ָD^趒zs)  3+
*o|pDR(}ך0p453z)gym8rgRGl\1٦n{E^tn}Ghtמ«C^-{qki-{#bDvlxkK&;$	h݈D:ri+H3|Hp!2٩k;EyT  ˤ0M$fPĥsunr,Nǯ\-;f=*9 ƉxyF${S+,М &~lZv`>z4r!L|D^U@Y#&JSͥߟO`=T),sb巣Z؇=PQ>L.DLxAáXSt/1~hm]k}ϙRVH2%t1VO %b`R@{tggCgx\梽x
<1ph/j}v-KkYִ1o$,]"&U8>&,!
(ͻig|w@5Vǿ#I4(rYNA:\P$.ϯ+d qp@Z_saJs&i]-8a3P4|M;a<Y+d	;WGh5\}sun홭	CFcmi7w]>O:kozt?L7$$A
SZPʗ|$S):5̑1Mml>5x{)ߎbd[{Uʽ#eI` Yac0Q`Ma-$nZ]K
IĎ֛o&Aa^"WaDDJۯ-f'x/"H̊kg"yVg
kM[%W)<z#6ݏ@p>fVMNCϕ{L䌜\5$#ϷV`kW;vL0=M(#v#&"݌+lw{qhu5CxtQ]kfed+RٮݡoBek3&9O7VXQ]j{/M5.XIa.xn5Go>B09xp	SD*k,Kw׾Xgûlch
Yp:}sFl$ibˤw:8%F/qj 5U%_q֕YC>{^(/,#Q(+Cd9ɟSEh^;u,g51pe·'c+.)o߷4viڈeaf*1h:pfѯ+*>oBGg/]}h^-)dnr	Q]uVɗ/ʉiMRG7o+LGD|ǲ^?p1a!s,	*G&*z%1xŚoȮwH儙
r~P19<	;.: 3xf*AtB_0L*o/|Slq5q	1ƾ:\8cż`¶~*@p/3%;㗻91]AjC)J^rP{#ItI)EĦ)1x&H)%TVEt<M|n~;[I~]t'+<s|zWwf"ω,dމʶRř'B9^瓅
c,J*̱꨼(Bl?(n
+,pGzd/t6Tt觟Ty^ZPT
)gY攅)$
iPF3~/MC;ghldR8$R*Y,Ne*Z9=ZFdl,;ݵJIf3XVGK˄*˜uU+vNli,]r- \V/goZ=X˗ieznyiJ޿#uzM|/>Giεl0/gPl0#ՋV}S)nH+2w)Ĭ1Q-?scW1CB!>.(tbGM>T%*`ypydUUUBTu#Xl7kBZ<.%s?]dd2[ЌsPw♙_ftD-c6p$L,0Ficz*X+c[̽X'KVT,M{R	1ZWG3ᅄtf݄reXf87PJjϨq{lPΧRk1IumMʕ):N4W_	o X\uS+^֚XLí>,Chf#U#|V#|aPsZcȜlok֝$:叴t+%bIjtZ#	V&*tk9%|RH8%\/1_}]a(QmZnwDW:ψeV;]hԖt+`"&ĥN]PHmʈ23zcA:vK`hUf5xrDRϮ0D_)MEq#J!SXdBt,5nBP\%瀙}oCH	zѠgN9Hp1(+D0j	Yl_T+)sM<n<A-Fi{)0cUGvALHc4Nm_P/z^xQL1ySDBź)BucigNL9b7XU?ܳHRu=F±QǍͩ,n懻C17훮,1QUרCb|n)A b}wJcz >*XU>M4V R3X,775GQp`|2Rne]
bk]:C%2) eȪr'l@	MbFrydsS"<ZIIr$vkGZ"kI
*y@_W7{Rr;!9IX\!E*,r$ǳW6Vj_V]g7"tg1-k!:'(EnEoHV*U/[oB`O}ibFզ#wI,=3v%bwkQ1dz9醧VAُ2xɹZ(j!j[:ĎkdA`&Wz:3zע-47mXNA::ӱVj]o:Z
wʶd}&!
֕STښU|x;!_t%ݦ#V=`}}p?s,x/eZyAwBhP=߆U@P!7]N~}|nlbV {0Vnȩ_:\rݓF˜8	șsw}y؇!0;uDXgSfg Gh0rH{Vv7VZ:1Z/}љSh&xge-wl1z$LgerΩu)f
 xLh!е2IwKaz!=Ǒ@RCBTǏoa1I6.0~R[N"y#;K0QpmL#cPᨸj6gNvOȤ{վJGI^2 /lXq@9`wñpwq/3
Aw̪ƼOl2nI*P_|lo~oHֲ*yoTE3CmDV>?={$/`I}m#3zkCˡ*L7#KHuxp݃0#lBvH-6eY	>>t c+T®cS՛#΃KոO1| 9̔EBCKXp\^ٿIMm,-	2ʠYt.fٷcUqE,ﰀC8)C$SRe+(̾^h8*/j|\DJȵߙR9:>ѕCgϺn][ zœH9,WHjEUU7KGm쉠7|UueÅ˥oFcPcW:eC¥S)V[:N;TW0V»?2T
+jC6KڬX
7<wRVrE.U2!s~PeRx^E-:[SUmVi!j}	ÕCܙ{OM<1׎\PUW1!yuggQ\K)i|6+cŌ'^BlGg+W׿[6Pr>_ʿrR~4j+cЧIm]F;ަzhqب
2S4RWƴD1}V:oZ oВ%=BTmvR{aq	;bVU6V,4H+}Ո_-jCbL֌jJ#LZ:CCAN\7h-}ɩwQ{A^L,qGrW(bQGPD ͋L+ys)HWAGybeGY㈳K_}=͸qaCpPėSPd難+M@@R}hɾh	Wo1`yF6=]E4vpq^7!8%K(OES+Kt({|z:Ac>1ͬ:uqq4I+V.Fdo$\rf"h]rFkT/?e*6|	ޗx5>@zAvzh d1s2e p>n~MԵqwx[bxnF<	I%mglȭy%4j0Kϻǘ$ķvaɁ|=ߜ]1	׏`YFp7V4OZD	F+u@r,_2F;WUo-<4?w}حxAk?cA#w7wWb--D"vy^{&gVAnjYsǱlEP܁s_wqfz V'	E/z;B0wMVX5AEN;Mw5_[m(j-$R	lgМ֔ײiUݻ˳ΛTj¦ڂ%j)^+1 9Η.3;#y03-.nQTQ]?}e[>s6ώȍuעned5O"όQxqPI#NSPN}&	ؖOE/> OG{POF}zOw828q
Cg9ٻ*Z@%sr!ӱ/LOvOq&Ǩv5h9[b;2;OHٔ3vxgb
RpĞB0\u[[ @peм^ Zn9XaEKPB!!|_4BnkYaIh+'U?Dʒ,} jL RQ$J6>	dq^<[Ġpp#_"@$khZ\˟jΡ¨GvR
P"paE2 kI7f3\ĳH[v#k|\"&t'ȜC:+CgvBMG-rޅ{U}4ϟ)\cKw>DQs04[-eGp{GrgaEjzT*mcտa63Sy|:?!Xa{l*}综o;bߩ]ZZ]ūQ:У^m3uEN бI?%,ɣA8ŞIZ!F G`9E-dT<d 7zȲjpQä͞!lh	ik8Oz{P~p0ܗB;AtDJ]GNpE{~]{tAw:>^2=m}"k|s&zFʈ}`n;5aZ@]+=k޾SZm&ԷJburm}vJ"M$֛}zkYT[s.wAXwJ2]Uabt8Z3
Mc߲^1r~cܜ&rPT%:kMxd1RdM&k(a=b_QΗݭ_k]"hKܖqj~dk|BX[DrwU>ޢ!ͼ:8G{|75S~)j?n@@),A|l)	tIC0)))NO"h( uڼIJfb7ЧA4\q&I~&kQ%D$SBIsO;$sy6$*3~?U>gnQ @˳%n(?7R9?@y!&WCݽ*sc#g/CLqh6ZL^qR,)3lfS蔔\;	⾞Hc͎G*#9,pt1RpCg }S̽sUtv8n86>N?kXSn).sۚ~r
` ΗJ ;xn [E :u`8eyY%r+L62=vxf{X?]6	'|튭	<]#o@,ﾖ
;MTk1'-N	ћl,"/869NB?8-SKoYm{mDL)v~O> 1T;g)!DhevTp^Lrӻѐ~Iį6/KP.~Ex'&Z4P\ӞL{T$~&AIg-ӜбFv)d9)uN&;MИ>pj]f?\жlheOBo%QҨ0S~,`Il1VRoiTBl.a/S05Ed/Om^ekTNv|ͥt%T_-%Y&jxmZT{n6l 0:Q퀵_F 0Òe`蔛j䙡t IHpGWFIhG`H&RۤݰN&ؓԔALO44B>~QjD(=ԆNG5(qM;lČ^6/0|+>woŨ"|wό0(_Py,kquCStQ-#Z9gL$Xʟ)!{nJƾ_E}q[T绤ǃp>\	mrCgЮۇj|HAr٭y0z>`ⷼ;Bk ^`\KH8O˞D$ꢳ`uר\EGߠ2:eȰyq]'7j d`T.Ⴞ*G4_|c#@/*VJ|7X`qkwU`Q7.B!_:Cݍw?ʛ1YM0ޣ]C52N_;zi->J<j.nQB0"*Շ	fλhz7X\fGu-DFq
?hdYk	Pd3ǜF3Mo{@5(/@HKJ2hwҭ2h1չ1}!
Y-FDy3
7,LjΪ4Kxr7+-;Ԉ0LGRYJBh-|nhw6È˕VMtRNB/=9RnXFy%5X+m<sf k	,qyc+uI7ĻS_q5p%mo11N 6`l1UHm:UĶƚ`Wi,MhfCsȾ®rF|fvdlHՎh%歄SV*å^iyeS.aXmbu?KUp26ڷ s8>y7't»r\eȄ[n",8syY$ Z Yq,6wݠptLy肜LmGj:q*Uu,{]qΥۙЗLF*T[!Pp=郴h kEjx]<(t=]})Khq}wuxw+u&(pe.<Y"_:寥L	7EY$[p8i&`&|2|+Wk;rNŪK*O!,Z
Ooe>`Q,𖨟pw=[31f/POg<՚_b;J5'(8S&.#|H,~ugU~	U1:vYLzk_aȅzY6(Cl֦SnO%8)6f
JSaŬŵ?4*bbXA~cmnJQJ<2ri|[>?ea1rZÌ>#**A[n$Yt6<vY*oQq>%HW!M*B-Љj}2Fe~4A[RKaPlaT:dMV#Wac
#:ھG{٘3D%YQ?5gRNYC(%aT.EClY#8	d9[C[;߽6v+#ʝe_iv{jݳ:˭[F1YڷY)ESzTO-\3|e/I-kP6{)KUGjlqBtr^׬hiz7um'?<uJ犦Z$gԸVVuWωD)R;'Z74ەu-+1GYŘ{]!u٣U^{6GI%;9~)\'}W
8teiy,q!:r0q㙗3|~Sg]tvݴrI-FwKmZQ~,? tCol˶"|0,s"B:K1q^Qu&N3`noj_>TŦPDe@KRS'02(Sj䥌$!ז	/>[V0L:r)-MɋQ 13SD@C(ݷ_9OabH7t`P*(0#A<A'rėX4sP
*P`q_]L(tBxb}e
gL};0QHxL%m
jnypt<K\EWl-bs܇KQiĉDi._
~1h#&rE#Fj	a>a[j2U#[eDSbD,BoMz6LzRF$/՞c gz}w7tJx5'4px.hV,1iw3S+LFUy''ďoIuvTtQ<y*:D^&Tɭr+eBߪ? 7~ٙ*sv^n[fgXiD5wpk"g#^o\$YG^pԵNP6^]?? GcPp5i]&:5*ўX0D7MK$),7Hs!`y<!KũMֱkؠ8@e=p8+٩d?2]?=rU2U1e87+&{H7nAmdmʪx.YJVUdx4:#Qwe!xe%j!,}(Z^M_~Ad'C9r-ak붗swX.^i+ΨHO6v?OV'
5.["SBItIlϜPǏoZqwָbqL (@XLGaĈkiH/"}ׅz`k[P_)Ǿ`+}xK;5r)5b͕]a5+D(*!Y_rt&##_MR؀A[·P(s1~b93Ssiz%b}V2qrHf u'KDY] ħ#R`YHtqp `_)Ϣԫ3I[e:BR!X+Ub  Z4n@F`5^%{xL+kjBj}|eqX9SITf_<
\Gl=}BTM=KY=-(	JC]˷Pjk"2Y`1O<^ʦ/Z7}s!^#k AIKbkxY)qu9"5}?a#]Q,MbQ
|B/*QF`'@aQv=l}' M_A@e	^R1+2*22߯'DBEdˬ +EU~YI>Mm9KKh!ZlΜKRcxFhf
2NeaEY)1{^yh3dDM84X^cxMRf[]:Kb6TF{'k졯G!6ZqO#/Rɣ9o?ȴkpwId2vhu
8q*<ܢ,
@*CKz#wL<".}Ɨ0|ٍ3t0~;Kr[st̻ɿT{OⱤM%Py|msvghVDS(IWj:Wr1Mzqj6< =. ǡo^uKX-#;1a~t@/.=X/~t<q)Ei~? -ψ&%RgKn=>0-|OG>x#Bd+	Pg+G)6=-;!aPx1Gk79^dmAsXlq:t G܇΃x(T$.:wąf"qe?vcC'*~R'\	>k ݵwu+Pa>
ExP4+T5cήyc$oKMX)ǰ+J6Z@"«P6*+5흸3-϶zWwyxgK?Րvy/Gᦤ,I^akԳo=0J^J(*ڒyE^)Dp1J"O"#H_^c'뫰(1Qe8^x:fІ,=d&Es4UJH;BJ61p<r/YFR}C|bxi8gth<%~g~vFɻmnȳu3/?q˩A+gc&u4\;*S}1Ǜ
SVL;fV@B4	&LDkwa,|x+icaf/zz@kkмk~UФɍrwd!bxq	7CČШ{NzyОڑ"U]%'^Z@yղr7+HXs\#̑M4%p
ظe.-jآ+Yb_
WxEB\_<pv_z}ϨeUVd(==Eqk2.V<x܄`CG3T]IL@|I|!AHBNd)JPz\	қawdBEgm֖!ؽ	DcNKmLPދ|jiٕ-e zZ\i#b`Vqq{0ly/{T>8mof-}Qxej}^Eojĥ˙7hm-^e5ZsE>j{)\Z#Z[υT<,
bi4uƧF`U[۲*Y-+:ܓy@-;ec'G~mlc~i4]mcqȽlS_Q[ wcP8`%Js<쥴/D?2K6.g[%(]2VfL1&c&Td4r=tgnbz@֜zi}C]=a\LCcFQ>3bQ8/@Tɮ<k$EKe 2楗5xCE6I(0c Ӫ9$}I?gOVef9YkYTcY!.OL_iq*+-`[dRI#_K	!0wQ=glJԎdoic[_ں5˵/0uJd7<*H5LPwngt`Z\ɛ̐pI*gZ<R֨t]ے3e2uL&N!997qqSM&d( / `7/̱4n~FïPcsV;
}%Y]XßyUC;u ']y*I!,˜6,K"1t_|#)~Aw7])6M,,V!Q
eܩB(r3Jo?%;qy7EĜ mS<o^^2htfy!1:OEk(2m^N&akWhmk4*߸&=\EAK,D&񽤢j$).
5=p_Cq#%fa7qT[:z4u蕭tF\~~KNn9aO_bɰ>?"BX}4KaLΜ_ЬgPsٸm$VhW;zUSm:n N_v/[1+9,<OlUڵg`޺n\l,RYxDw@QuI@_'icEMR,~5vcEi[UU+eJ9]>\?1gUN~,4BM3W꼻xH?.9H}s<Drޱ7Ȍ-l'u_	\g̵~B{צ@D.ʵ (W"]{{
<+ Z GY+X |<^۽@uwu5wFo17))hq^ײӜg;#9aћ? 5ៈt@X@l8.dm`|Fa?J=I%4E۾C#|2h9T%<c9g>N}Ԏ;_zhTwZSGE*4jB./(i>4O7fT*0]kw;2S<	I=`LIe飯D0@PsO$ UjֈA<r
,8?iiI\`IJ Q_H2$/Ӿ\G#H}Ë+6 TQANh߃,./oZ.C ]堯U-&P)W8tuMS!Oe"_E'*NPE%= KzUʇo*Q(c_ŋ@jcyߍ1@򭳩ĔA1fF}-Y:p X<0?ΚgLt>tQdh)$r%+1Ûg&JڭV4<3>Sq_&W4^z-nW:ĝˠ/@7K*2F1<t67F(i.әqc vzy{W{"
&A
N
j Xwɴˮ	`qBP0Xw8]UpFg!Br>=
 	7"ug8 23;EyH>À*n8ԍ8_\ {E{Vo~[er䈏uwcںwcLX~-깷Y{;6'X$VtkKA%%~,u3`hWP3\yco;fӽfB坎Cq󙏱 x;o<7
]7q^ƩoV??ZXM[v,Z[0s@W\g^f cN]覢}[zgfv9q9m4eJټڃ{]Ź09ֺ&j8s& `9V<
=_T>6ϓ=W[G;~.k}7wP\&bC%.ѵiEuXTW_kL90UHN\S=N,?ᖷԚnQP'+
R9rQ,7K3\"M#AL
N(T;J6=!`AC}\An*۽-S0*fkP[5A
a1bmN
,Γ\%5e^hۤOeEͅb4bE#唥.ٮwcoY,zY	x$USrF+Q9dPO;V\]닷+	2q!9j-Z wtϹwikng3Xohhӯ)h#l!ԨFG%y9-+:|	my.g^jggx]>]^ $;gPѓHQH[}svZC}k1iŘZHTm*R@R=*ata`t$[
}GǗ?8$oi@կN[o5Z{A}<Cx~4@&7(2M,bD\>l?϶$a󖝱l
3e6!X(j<h|FKl{t?O^7b.QF $I+%
W`Q4<cD7TMFs"ffoNۡ]ngQ\GyD9;1#gXC=7܊?A[z奿OZm#iE#)qe]6vVCDQ, Z0rRw=0ZͰWX9Ҙ P"FNnJ>Qy7lg3oHDq:16騗/g%&_.p$.k%xRB]E4u\W,4%0z.
Q^ei$6RhRFs Ei@c1yR{.Ǽڇ{z5\b4z4R K:#:e8h>:ޣkbcڨ{Dt̎ߩ,)+%<Q@B9@|ܰaۄ9/߾n3 @.:9>$$4#rDW
15X4I		΢E}mt;we+x|;a([i[!xɰSS['􉕱|o@p{C1`X?ZTG Sx 	M4TD)s
E1:cH;5!gz IO&)"[αis
yJl3JhfԈ "Vq.0̍3i6{6y@s61lO>Y#7_syn9n>7qN]0n> Db!M(f9ɥ& PM+cgvf}6{`6>ea|m\nφ2	l*|
9	E WPd2,`%^	B<bL._6Bz<Ө?
jhdL21rfMiQmSd85W 2{5ABa?p$rL7yCY^d?/|q{	ܛGˈCgJ
d-h`^6Z&$gWPTmBE-+$Ւe*˯ma\wLV"(qgʵ6Yݠr8v{nÉ
W(-if2=.P_'ġuU۶U-elyJ-M`B뵬z9غR޾G(4hy5Pt86&'-92n9X֮{?,5I
&KYmdޱ܆5rs8R&+D:<pI7_xnEzy2$mJ)oIh"$TƈNvRḱ"9F$.GTLKfڔ+l,Ij@Ix @41,x Щ߸3_^Lk8h

JaQy*NKqYInJpZqi${E~cX[1pW7k5vi#[[qLHpsaPO3 19wukub>h9}˜c3j8ۡ LI
+PVs"/ 	q͍CLTv{V㟆_eJ˯EVe#4 0$f.$軞;6QEt-k+|NWQï1q(@5|TҀUNGďݳ;`qq8gM~OĹ SpD%@8#s]<*77~EIdnkl-aw^f6eZ$t=#	'iN;;Ь$UvZFaΐJ;c9o;(
'Ր i
mef7o&P_^k2*h;kWJw\Y\Qә[[iK}u1LA*VFw|ԕ4YSt`%_?HRH1\vsޯ`ByA"[V $bNg~Vgwԋ!^^H2'FgO3D
"J$;{@#$k]o<YOe)XJvqz0ՏYx/GЋD6籀27eqH0p#Oy&[J:V^~{;X U߿8AiyOy`*/Cx$ŮWꛗmtNBc_-/<0M(λY
L=[ ]~HYyKLb`[H&=8}];za` p3	NNG9Ÿ,4|[~55~Ok6*'WIK*h7;Ls-vޚ Ċ'3vg=P#g8֧wgx2m~)?;!|dşav$[{
HHpc%Q}sɊ#EwBwrh-7>Ն+ILʪz'۷*v"V+x 9ѥK6D̦<|;$Jлg#5}@MBRϗiG-vG-X5u
T)!CH		F 為
}:H{W+>ArM=O'.`7m$2Moծ'[z#Cŗ&Svp  SGc3Vi"\Bz?gK(tJ `!:|
E9ۧҦZOA))]ǝ=e,Ee@ѷwhn *S(f`\`,ړg.MRJℰ w1IFm `jK?֠>vVǑ5,rjEl$hYqWv)tR|P֯sK܏l Cޞwb.\`B$+jbE6,CpL	?7}ᙜކP`dz
qɕ~}%}9?q@-'uOQXu,Ho[ݎ|Ixfto2 W׮^]e<䏺Cq"F&k>clV8N2^!~0,>3v}b׍D[$mQ,x%/$+Ƈ(Gװ0DiO{jC4esbL}hQqִ]yh	bӆuuS&Ӈ(N<FrG"PEtKjF,RE  8tQ)7!OT+]i:S.Kjh@z%,ժ?@BtK1tUo5}g		F{ޏ.0_?qyѵo|O2m i,kAI]iK P=3]+K7kX	,	z V+1@MG8LMEvqT)_VxdKGY4nORp4@۬D$)9
ݮO\[{L|K_׍mRGrYvKʒiG5GQԥ<+fcq\Cy<3tvRMUrbGXmYcdk״AZx.$q@	H2~f	EeX<¢KHV.OpV^]O
Tu᭪dtM]̘o3!,H,0~;j`Yf&իneFZHj+FbmqMԎOAh.X/K3j7,if̡AH"O[ꦺNv]L꼄4.:] z6/k[hl3v/mdNc4^MhۘAHlUYڵkKހUꧥX'ܝ1ZY#M#=^FUjJzYuM-4CksBqtL$}3Í/n!f ǭKV\h/oZY`t$[|@4(8T\NUxN `o@	&ؤaێT҅3c;47Ypw0 mʨo!#!Kbb"	=c!";+A{0C'Xhk8]JhK(Zd¦rdb2k"Ew?3h=`D $\	4s`5{wu<`!ќj*DiJ+nc3?5^JW_	.%.qD,WɯLavޟcNAguRpNϦ'-3~sZ0bVLɖH٩0nZal]ŒӍN7+TՁТ"tvI1Zbo)pC06n"I#{nfɠ-q\,FXOw:>ӻ~sEΊ5_	A)8{Гg}q@\Xس߉*&
^7烬:7Y6`O7#=^ۑ4vhR7 ptW4R%Y;I-]]`}IĉQuW9NZQ_1SAb0D8#s}t/(Hc;jNd(5'#	P'S*e&Jw!D9[QpU_o</>Fu):f#TH@](ˣLS5Ғ={ u06a]p.STA,+~ m9tMx{=9e%`a8Aw/ʾh]S*˞<5.n DfxKʝef0L#o-b3ct{Gd|75z]1zhB@^HʾsUvT.^9iLG>9w]Myf-:<3=:Ԏ`_kTM+Ŧl&&<fӿ!A6eܔ`EܯE*ҐR:~ ݌8993k~F+d GּFD4qʹXtF9渢kv]Kd6VߞV+%d`|3DZTI=I75E\/|}L`HY9:gOk'hBzAiۘTA[KVxZd\4}ԭ&.;n\~0$@?y7TmD$pvG{a9%|bk>
tr* vTU!te<
󕘌ayx#U5Y6kL4 QSvi%-MavV	-h0F# Ȅ¸J4b b.I5~ܸZ3ꇪh}3$I9t_J<ݕЅz,ӑΥv$WK?v]WZ;u˝+O?w|_*ƲiΆZ_1K|_<1TrjEKn3i9!WnkS>#~>g'>M:jKS!,qL;T}L}cc֮R}2xӄIhMrkr	ǥ@m_i*}ߞB{zn"Tn:QGW_)ghBk~Ĥ1=}F=6C$VkW)Ia_b^ T
X83};3ʲߛB@˦f]N$ I")r#ZtR+;a둤2/=uW&?+S<ʅE#ۻ 83M7/[强Ci\p~agcUqcf<2a~`Duܟx~rB^`l %_d[<UBuG,B ŏwFPB&ۣk?kZ%!CxdM.,b>,nE^9{Td{&\$,R"^۬IvCJy6D>4h0蒙.ޝ>2] bdzj!>db	oZ$6=d_H	p/%ޫY]y(7Oc-O0Q=0}3o,!"y1Hв&30㈔15cWzP+-;}^w.pjLϙ	cCPjc[u	BfDˀj	'0$mmDFfYN3Y倹30{7
)&.tHsMD=d4Bxxss/l :
R-FcFX+ffmplʨyt3x[<kSEJLI1A(nqc[an6WH#i7s5nM|)i%6"uYX!M33wFKY7`@P0F32c@=.qA$;\(
0@@>@<yA&NTkrHki?4 Y+Fc+2]f0{/4~"IUWyHDp|Lf+z]r4ݽƊgi<_ 
`A%01־9VWvX=tK>2&xr:a}Kk뤉WJϫɮ_[ B76;;!;7/WlG`*854TIICAzKGPq[a/~b &MvYHw~sڌVzߐ"2Zd@*	*VQ;SUQ[8߯p]bB`S ؁By|?-4<-?zJh.vpDI~~b=J'THx	"RL&:Ӡ@:LXх*K#^#(}cVMZw$# L+<u9L*6l뗔pbEYYZ%j8)#AW0:/Ƿ|dJ*gb{?xK3ǻri5*;0Q]20q+"ȤNT?GGRcR.0r8W֚IMSoW0f;UJo*߱VjՁTID2w9&C5x/Ʊ`0)"̅Hd@zgtVM`#c%oYe(XBKX悑SMN"G]"u) ȅ>!WN8ءmo"Ն!Z[NєÈ2CsM"w<$ﻹeYRANg;Xd!ebt/mSBmr!羂<~#Rq`L^
4%!9ar5wX$r@c9
Qd8ۇr+y>
M9_Ԩͣ>0L2L5CW<>\x̴)*T%^r	;REds˳ņa=1Mڡ!gN*wWAqB3	3i?,t0Qߔ)y`'3\/VY0mz/z~D&uv>tNk"Rkޱ=N+Vf<9fSaҋTi{L4Ww+ӒnNIiPjEj')
MЍ;ۇ6n>ߓ[IMbxykȚB0ayom$mtIYV6F|{齾 @{ 1%>]0.p?9.S@KM[ٰm7Rn%E
#q%2NYl>r*<{$."k9`.egfoɵ*KR"۳=׶nO)5vؙ4ܨ󟂞\'8YES	'>ᄧܚ	 ˑSE#gXn&lînBU$) UwgG@<˴*P_ÁID_c/O~{GLچ=HeʍQy̵"ReO@"woe?jdsk	5'Ì [d!k)wF
(	a(3.?!x&O[՜=]j%QEEB}z1<S'EmUKq9?k?Iꮮlؖk<TyPvկ{$xD;~v-34H*
Vq;~3bҏ 1!W_<b1L(PiJK.tC>Z/y=<=6qf䡅>9uniZύ%}aQx(>K3lͳ_9b^L4e͒UEq2Ҿ~Ba}	iݴqF1bdLAdҌٖsLx/%EGVgML~׸r<4J0t+NeubzTH2FDAOk0T= yi3D+u cèIIGzl5Z.#Fiku `m'!3}k!s=iAiyUM6Ǫ\n8g]$D' ,Z2pV|AJL8A= Bb9u#Q˞g
pR+[tW8s ^9TH3!/MDs W'JƳvO(	bd҅R ^0f.Jc]K,5)sfV۞rJ߮gbc
'W;nuSDtkX{i;D?տhF.	0빫]+Sq8q+W_S6ξx+{ )=3Qg0AX&.[gGWpW֓awf oi<G|kկhfQm/}ttgv]3;vz}<ZnYX}kUor1aߠ9012<8a#9i-VtsB6(q'Jg)Nr&q/*TգYE?c:յECȪ[,nU֝ю1%cw7Oǎ(<v0W'BjCFpgKȻ<pNz J<􉅱୞1͜ꁳM`vɣB7HbhT261d̌QT4 	'c8qsˇ4SX<&A;sI
πM]MRIGOkw;$Ufu3M$KwШ48!!˦pYe鞉^qX9Cs7*ÌcSS;A@q:[,ѧ\,bX ;^+*1]?cz!PF$[6Q2?+	Cxضus}׊9'u\]z<PgI8O-fӇ]H3z_Ӣ\:Bf
I;w`J*eD'L)]nЅAr1HxBB(@ ?(̓HVϳuVseiLt?ok"SMCɤ~-ZX4%%-%Z&-pyz gH93YXF5]JCӁ3FTO;< KeFJ12pyȁ_DiMu`7H*݌uAkyZ?1Xo-Oǂw`Hb+s
dCMM,mشĈ&E I>MkZm$PbѢyrjw@v`q$s۽X%z+X3XNrr)>#`U{浝/kh֬m2H__Kpv!w6˄&dפz.vkuЂ^QH``<g2{v(H2fLj¼&nS#hT]qP<J.A=,8mTlel< ]	LG	aޡЊ9Rg2\X?ZG(7_Res^	?(Jbv-53I~C'jξ0UX,uz Biq2\IٹfG~.<M@ВϭCHy$~c=[O`SL(hA1\?
ű^frG'iy%ɧghٽjƪQҸ/en-Oxxar	T+gyθg߈Sa6B({u.SQ.9OWLwР0n-m?䀠zoii)F|s3]Y܍UnX~~OzHH1Y^aK=yqL@X"j/qnj#;H !t)a"ɌPdu_# JE~2BD265Ns*-xQ]fnn-J'>LX䣙+"dtd33NE
5vCҤq-~D˳_?af2%[!' JDٹNJ塳
C!2KUo`(_+5];řul <%1	n?l~ۺ+ w[PDKyLZ~:"%Qt+ߪ&wwD`QCEˎ*#x/0O(88g:	ΚaI"'%ǻdZ$:Nlk2I7ލX$U)@W>5WEjC3*-)VŅI"GI̧PH
j4":n^aJ Xwkw|XfecJ99yh>7me4E/:n@[*ÌI4w׭M5EE\0LXZv6ev$M][P7n6E:}tksQR9A&kdc1_i	gKN;=_"؂۲\KR!-k	CFdQD+OXh1X
hZ5w**Wճhg.#9/vRxh*#W`sc.'C4Rs;p>R@?F_Ď[++bE̺g!0/m;{ܤT/+Yϡ<?E<#NOC۱N[%f|*n
  1Zl>.Ckǟ+~G,N_5:YV׷-'T]٧tZʷ+ͫ{+YDemoi)s M&3 Sc 8FKHlssC5.ugNA3,w)a5JL޿o>(/@Ç3^3_ƈ&/^F~?/eڦ<mpRO R$?G1QV2jj\Mc/SnlW45HbĢ^9rv645(YMY7,JycxP(@WHx8v j@bæL
<!FcYo;v|w斪S.uD7Ԛ wYJlT31je[rX A@Οrҍ/~jWcMId)^:9RŮ382^xo`fnVe-'xZ%-ϙ 3`ؗۖHOZѬ@l`hdO; uޞDrbI+3a=^BݦO<
8m>ZvڢrJzz2)ޞJes.MqS37&=uclYC4wC.Ty7%t(eY4U^hچ?߭/?u_\lM%jUDLS'?<08ӱ.gj\,Ns261*v[qCĮAj=X?s妵"45,Ikqb[Hj"SAr;xeɫƛmXv%σ>Cv6/]L{MPU%<ܭJUH*+A7 KnصuyLo|CɱmYJ'%	X$rscL_CH8zYkeGe9ޒ	Ӥ[,C~J͉2%Q?kDq@y6h͹pQW2ן+!"h~s}r`%jd 7\w^lZo
-X^~Yo8N4k570g|;[+Ga2a8hLhiR5i6?>,}wI	[@@nв#*bB)uC,}9C}!,|ܗ0`S[Z.ǅ#Q0D?\Geĸ0=OO
3ÛJSkX!bS)ΠtBŗ$VieTwii(=ސϪlM_۾vߔWtN.A*oN5P2o	(p/y9>{b?כp"uauxºL"yE" Igd43blԿU@bD%e>#uwwv.
T^O>e/
|3*m>A-}ǘ!7!aQ'ĺ=/Wbyh,ȕ]֙UcLXČ  &@U~+Cop	en
^oĴЉ-re4\ܑ5 aB8䏐]ϖoWiPZ `g`OA l-Oݶ@9	xV]/!9}/iZ=z+]7v4_m g%\˳sM
&y:ÛI`5,<zS|p4,Œi%}Ĝ\{ʿG2=hdz]H<s.k-?FB%!(
˨;l˨1۰dҐ-')Αd# ys;y]׎@NE%+Spy.kc[c/ȵs2sޒMX?7v J!)BF|zIaFTFnt;C\c[/( 3fw>mK9'іqCƝaRSY3fF9: %:!b}`'3|mxC݋	Y}^+D/CE5n+Ug	yƲ<=4&]zPG|@Jg$H~OBV{J= D_wD{v>Q;1EF=2l6dM~j/vuPA5O/k9p|'AV\0ŭ?a牅`!׵ʤ	7O	iC[d0WOB
k2:7ej@6/boSd^nIk. [ԧ;C4vLcKab[s- nSg,▀amZz:NbbOf}.0n֪N: ˔14/oHoezNVGb/a;j׃%`w)[2(Q~	4u3%PSp:Nӱs۸=u
99>I2Y3aBP/k+"XA!N󯆪`}Tx5nlμGhzvs__g(C6vׄgy{>$7M:B{[E~v͂sb<¹@Z^a6y2vPS_X舵Ė47H\yLqEnTP6;Msw#m#9OF9iwE~[~>;:{4R(m3涞oF+f42Vƙ()#K9!ƻ?']$[K57۾hzZh	Iς&izsL=ΥF}S \ɐ4rE *{m1+pzY#@4IrP&g!SO_+@=(MNX1#gt),9)f>e;ZWikƮJ	L*o>GVc>DhFBn?woE&G-5W:jw9pfbz@ըi_Zm=݈p6K{iY`GO,:?U*Z;m#Q,<`unԨ(?/s.C9FHɕm\F$8FpdjV.N_[Pw SG2\y5L"3МK7NAzͱ_L8H{cL>1yԺڗ5"<K0X<*w^O5ԫ(Vt䘶o CbРȈ-Yǃ	~P=tZ$qx9zBLk?ۗכGnc \57pXk̙LS5ġu,B{ʅ+XBCVa-fd
h@x<YB25ǾGvs~e5h`IU y9[ܣ60Z Dj?L\!nl ~`~"B?@2Ǚ)m$ͷ*Ĥ5GNWrOmp5B3gRyFyŋnJa!9ӭW9feiڂXET5I91	)aMl49%4=~P[xY~NÂ&E*;7Cy1K!aI}:<*ftݚn/%¸ŏ7M/_^ͯ`ۺ춊^b=}}ݻФ<F5ù~((魹j߫|@y{X=t2Ì~`JVE+yɔ~|*,GYi_[uxxS+E_Ygin⛃N)YQ>6D}(th$yIq3\)Dָ֜(<2uzEx 0O֪(|T|\AfzlN'dNhU,f5¥'?FX">*1D|ȶO"/f5M+4]10La_j4MIߐ]d Z~o|G>Dcɑǣ@#i+{.pi&~zdd:a2SDzk>I7__D{˺>E׻0$Cw9^aI#5@k-N']PZ?\>{ٸh>r|\8HeqxˇF0sI[7A~Kׯu$l#lϝbHg~CW$.^OǗ!\!%lVȜACyWΗfa	ӗ ![4~'$*!aTUG-Nh5c#N2P$xYmWYR[S~G a?f˳`BwJIN<Sa	E8B*`A2Lr;UHÐi9;}pIAS<C2ir1%&SƆ=fTܾl'B1]p@jmrAJЀgIXOUjH2dyxeyÑ쥕ＲN'Io|'ݓ Z/ ]Ύs[qbN|vL[X_Gz? ʛD1X+	f6(yA^vüQN0y(MH׋AZMXii
NyP<JHY%4/1;S6oof|&Q.$XUM\q)bv,RED8Ii.'n}H05@THCȔ`Js茮ňl-t@δjI4!-&d-ߚJH?&< EH9;tEHcۦD9sW1°*ptS;kA=%ʇu{wS{uݣC##{YnD֐OqyNsڗ~;|cUs=+y/5ݘ˞gЧg 7!^;yr>N~bk@I)ThW}/yAߩW?IM;;9}_oƆ-#+$=tgׇ0Qos.F#Ga۳/bF9j{G`s=Bd2{lku2rH&a bW݈GR},X`uu&gD#TZ	g9d!?u 㛿C2n[30dY9TictzP7-DąFK.kXa*XY$qQ;xh8LtbRcdZi{*1''Tp,g~?Ud @17yrӾݩR4cߝ	A
Ũ񛻳|+/>4GӴߟx_bJy[Hnݰ^1f0bR;I͚|2=o2wtMv-/}
޺Dy <cיmo׺m =\gDp
g:=R J?  )IC+HOydR׮Q^>i5se'{"{0Qi A77ȸ|` 2SE9]	djs?#`a*)P܁h*} {K+!2ycMzFy\Jt@dC:v*-Opv?s(*~?Ig뫹"T$6C,Ka@OM=⓿,7|8dp˽c} U62S cyG-/Zbۇ"ٛ>))1s-ql	<|`܏yÙa>Ϗ[>r=.)DtN<&9|myt #R˱b2cI&Ul<?bQ&p(ǡ㖍:)DϏiċK'u%"gQrP\*(;͒њvI3jP'֕o(<O#jȅܻϟ}jȣE3ή}js2_s'w  ťL'Ό3=}y](|+nʴZaOPӾR6@=a'wSH:~JWE#(Zh0]pCߪG<vdgCX
YpmfyU ^|!Fq/qNނH;(#vE{KD̹FX<mRK8ܧ,Dyy~=zf9l2#lOm쥆9x=M{JC*mg00/GߚV7UGQ9aYO{~Н>\`+h8`'Vrp["̶.lC4x/W0		;K`Nsmwe$ 
W-55|VfjXƙPbS4vGB`01"j6dM߯{Xw-`&\6Їȼ&վ	JRd@gxjYGYqx]j$W9^?J.w>7VI(-q=/&&ֵCUMؒ2NDwq2W^S+$2l(QdM*-!ZrWT3qBVAE_aDe>:<<'5]9F -<'BN0(:9=@Y>.PrB<[20ZM(h{n&PaeyH$"nL41;^ІF~ʓe=vr`͐{uZ
껔iz'v*.czcG~\vSf!*GG!jN{vJKYƠS.qWL $ {r9u砱np2e뮋Btw3A0!pAA{Kg)REڢ I֫Q
JmPW6K%~ćQI2n`<=Bkϟ 	39%.	*~qE#8O,_뻅Մ:{C_Ptu[VTyxV4}"[#Uy"UiKAOgN$"c" UX~WuM f@z֨#-;M}ܗiON~&\9P
1Քb$mn6X)Cgƹc3eb:"t$o=܈|~# ͻ㋵FqKת)UR"Ln_^Ԗ:T\Q+~Y	zB<G8pN\oJ88V[[ׇʣtVEVQ]sDE>qO/ۿ*%CpZ3ʗ7#7L4Vonl[Εj_|qyͿHoy4H
da]Z/O]qޒ/0MCfܷ@W\\sd-M<akhph&x䠡ޡÆ`ee/#e|rZ^!JwW.l;,.O%c*Ծv +5f`dxVOZyX غ2m~_G*Uv_;jMe\3cMiH^J=u!pϋ"l=tpWqz)Kd+YcM<yPRsL&3|u:oݚ(1FFg)Gw Or77-3r*@fXُ9%`5%f$j]N_ٜdN/*$x9Y-ؑA!-̬#C4q-q?2xD|B'Z1%}ύD$g5/KXY[:FQ;F?0O6eXxv.Lnװ[nͷ. !oʘ0{7l3w=+Orv)>qzJ\0*#Vql.e2d$_Gq+72{;QNOjYMx=:zzL~7;e9Tѿg}CjSS2_;_#k<˳l\<k)q|0=~C}i*=E]b$2s?or=.}0_9}(zL[oܚ?Z1U3]ڊϸM`Um\a{`dt$C}i?]v,Zy"1	 뽣t&rܿyjM.cٮs	 n8ܙ:@63)/1"TTl2GgC(H(RR9M?{ˉqNFF²a "#eV80b^Đ;ܮ4w[CfY\ϚӾHt7rA[=STus)~vvL@Hd:=`Jd:^7bC0G+ǳ`\P9U'|Bm=}o((gLG3о3݁iT­yEZV7BWK'?41)gsm[&>6kyN9g	<oz{:`Ia$'a#+ݔYKqߢ
^B܎ۻm[I3j偟j]+'DXFRxXxȚڡ=_Rjܺ7`Q9t%k{^sgrΟ0SCl$vs24b)]f &Qw:8e۶}|L^v`ߑ͚6,N(Y	Go+/!&xX]-6{D3G<;~Pp[%qhB8N`#ȩ
m^uvͻW3Y-EGRIu*Thް®uFHH9~yYǫ@a@A(IAbKP	J81̟ZnfU]eT@"2;^O߸IO ~	d>]F*#wA W YRYW/(]Bs7W|AN1l|Q=yqMxԻs*:W[,'=|Vl)#QӚ2`+
;+1'fĜWsY%젠fHIb-9ipձJ-7&eH .XCl,	}܁?%@x:"Jr/5N]mHݿ%3Kq%kWh%>zYޚ7!w*S.8dgDRR_+;Mο=@acEdׂ&Ԇ7Yd2ߐ;&FMΞye0g{(o,rx}K(!TW˶?%2LIwߊVܭH*iy#Q<abK֫)%%VQQHn/Mg+U!ffc+9YmBt7%GfG>TJ=W:V Op(:?6XG*퓳vcNε]qd{coKXj{աk2}r&&H/s,vx[y;8(cn$$8[#95#}jfrY+ҋqWAzHJQ B4v	\6MRDǈc	1 ll}?u$N?G\CsQ,.&IQ1)7"#YՓZ>@oiM}[m8
lf`#6љ;z=i !MS/pHZ&޲e*7Z.V*3C%_EXo#?s< 4cfDNJk@K?Xs͂a!k 9mL H5vLcALƧJ×ӡ:~Z{x/JSu^N( pvR"?߁\i| Wώ};%%m|n<
9r<0_N!Z[~`v`չ	J&+̋8p`ЋyϦ
d7~4uzԩ<UOMNw+n,\`MB(o%j,&(xNujUYiJ-97e䷤T=;l搶6{6Q*bvbwT,L/-t)ގ2ꦹ}hYoZ^1
mS20Sq{b~@?mh(]\azSkEZS'pq5mBWhձ$TtOLsEɕZM\5FYUWB' ~{b82&'sYZ-

F,=b_Kc dkA&-hJTyӲ UgoRMI?ո[q125655&w.Iva[}:ܞ=|{EQeuRJ)TLgqoW:G-ƇId]8]o03܍^Ku66aø	ZS~
v똍5䠈Q9pwL{ $HtrY.e~X^4nAn+Sq&7w۷R@g'gDq%*_砉ܸ`<YavXAs! !D!}і\/.< /8!rҌhAھp69An#=ZnʝJѰk0lPx-`ZuJ8_5̇]\Y26#~ق},jdM)|MNiZpBd1ĩ,J
\"aP%
4/!htwQY2]ԲJ%Ez Qa	B,bͪiWKMC	@<xNΛ謻w}^7ԃ}X zW<iO&r%s샸y?1ٲ)Ϻg$xxM,fV."̴AU!i9<SgK(<sF^'0mc]w3
*H捛SwQ[\0GM^vHרpP%.60{IN2/:[`p\{Gu@K,JSphvhm<q j8H.EYáN[*9%-
*1&Em9[qN@\PP.23~L4.B^GS$ۧj+^:+RgwL9l	aeo2JMc'_xD)WyB(5ܦikdQwJsr3kی8	n;!oJJ|{ 8 Be$50@-1f<Հsm2vb'I"*?p<q!u7JQ6nizlBC񧗍+p=U蓖b]},M	+̊jˊuܖuٸTqxNn;OIB(m WAz;(h $}xlD'ߍSM{cFLa'JP)=x+;6L"`p}^T	(հ\P]@#濬ag.8AV#Ÿpja20ޕVn4mCYr\,kgҮωt+3}A0<ɴt.ͲܾlQQjƪgw'|kMK}R%\vW[Mw$,(beC+$7 ԦjMC	ۙ|K YbL3`c{ZE?#{
u3եyh3tCG֔s3=J~;2KM>!!W)##)D*wn'3I.R^z/ʱ5zvנCϨ'hQ*p/;E TŃ"|<M(rrsx21<mxK(Kr%-b'?](?RDϷ|`.A37HdǨAA:n3a:Ϲ)VV఻_ X15,&lI7\=壳3#Ft4$,%K+I^.ÈS" 8l-^0+5mPא1vYP큠6U*J+MF.ՄԽιXK\8zz v>k[X?.k֣Lڌo :գ# >gJmQ|}}VcU54sNah{/hV0-b̜dyn\Ak5	5l/Nt}YkW@KGgl;HẦN,/o,ޮ.޶.g|ÂH˕Bz] $قCF5@-X !EOpLa*NN!q9L"1ޤSdjD*7w<pu(bP^M,mWG 4z	?bQQTlKhb 5x3pK]Fܩ2cX/F*ܥAwb@͡*=%þp%NY~kt.mK+ѹvZKD]!%Kqs c+ǂ7NX?RC(ܓ5%mwYy36Y؁Yj'b̓vf;[v@~_=1_Za=4U#S4t`ul j#q?fweGzCɎqڣ6El2q۔Ƈ4qyw`R,UR_ȑg1$Hm1Q/'Y֭}C{O-RڑUȥwԒ'~eP<2c=~f'#ϋ~<lBNPfLݶHKL'Ke;BT"jULo7{ni#*+557,LfJMhKQff@`AR#Mvō9ڔr4#hx|lZऔrظ - VKlW5ReM-C^@k`iCuG*/Wfêp4,kVbmE)~YCI}Eq{Z'.,3!)&v0/$oE3 >WU	ì>>4p^EKgT
#?S09*La pgwQs*Zz51v옚^^[TY23dȾ;n\Uʗ[ݵ\#?9LLic5Rͮܽ;6~l}zh[	r{IU{y*R:,+\S.tULT-Rkm,6]FR(1d1@[_-c+(uxYHq]؄K(].,002&gzDrU	l=^y404O<hZq̌{["z&LW\=Ac
z_H]1q;"|mkur@k_sm8h~}`'F!#1~8v_X !qQٰ~6I	<.lOzKtYV%ʪ^;Ԅx0U}q:e9]{b0vE;o-n8>0 on(1ƹXjYAkX+PM,FCU%9dNTa
 !9G+NpmuIT4ZvkeL6Y%h|lkw6OW>1j?Agj_ y]|B@q񹴽Kxv[63xۅÿZpֶuqs4%SNqEyoHszӑC,ߡ̉87tV0q	ILw
@2@r1T!0(u(I4nCf )4"7!ək_WZPFn$'*^e,(V՟Ln#W=15鰍G<@#v7#ooE]`k+ftZf̆7$cT*}"^| .M/<?uc%%8rn.+7Y3ϡaQ7&&&J(&1ڞ67?ժ:mװ(YAToU8.h1f_/I&#uWbR)h+,=÷>hdCG*֑2fYGx-=)HzS#yC<H÷CWQ|%]`F^$^Ah/=0	l1ap4u%n5jJ;`P+9}[e~%S)<HwDecjbd&0Cl<p&ੳ_fN69kylcmDJ'kE*I
]4`cRD;>
Un|0}d3	'~9=QA㷏E^;Ss_03ގm6y`<ʫR/ q-zJ;p͑%xn.ZA2}ϼCCt$m:tEJ&`y&t~9ھkBNBPd>|Res:5izwJn//iNc%HGeUbka<>'vV֡._.$iwkvjjɰ>9kL3pre;fWw7va6z'|/[%C#&&[o8TMɜ-O><"ud&Rn.W@V޾@꼦9<!-oGkeۻ(V$ɋ2q"w]\[,tap^}sKfU-i`3-k\ Z51)
.KǵF z3D.)sTज़RUZmиwtD}XYR̯t)	18;a\K0sҊMgKcMV,/)x8S0dѶBf嗕:ʁi:5Qcu	56}I]!9wxc#c3ŪJ|mRy+{z5o\^2Uny\$!$Oܺ:VL6ũpN7vNNxA+e9)1S%m5	5Rzߖ<u8Nm9zqCx{q5L\Z
7\tM0r~]{Ydi%K%ݦZb6]/O~*7;}Lst3P^o9KN9a 4_''8aSfw'\: Xuil×jYV5"l6T=$h6$3^'H;V$u(R:{3xe:˹ϵJ'Y;{wJtx7%>δԤ˶8TMJfI:ΏiiZƴ3ok5e	PF­٤EEDK<qwOm&PE}X*QFc1$i->w`k#E~3sqι_6_Sqq;3ݺ(ڸe Y ͸	 jJ5XGPG]oS0`Rq-;
eo{_ժs=1cQ9Ra!%*74]-\%4ܓo_o#Nh{'YRloֺ%g7趞a__nGMV4^}:߆Y}e Xt>ln$nMcZIE/h\QFn6ʴԅ٩9h{hmO|7RL:X; }q \Yn6ФD^'Č,zEDܗ0n#&e盖swT%@ϋP?6*bujfQ1+īev8"n94I򬨱5Ofm UKoVt5\+f:X%_:~F ~$hլM![;^?iV`c
sb2yΝk&M1z3݌r%<mh7?݌fG*=֛:=Sh'ջ/n1{8}%IDy a OޮFvhWwP5)E׽>R~{Sln$cg{;vl5&vp^s8".pjn@tUo/y\ʀQ?o'{1굴ݎm}b8"~6pK3aHu+sNǘ1B/^'ڐ4[%爀HOh#kUzlDĚ6W{^e0:(mbfK8;QVՋbw0GCi1KtxQαuor
zQrL>&Pjg-273QLn̴(e 
Cr1.#W֩GQ|8JJer!C\M7 4Si/VIxYAkΟX3&;1c=w̩qgF;GFZOP{@9 ^+:ҲH04~;hn/"̂oOXxH)|X9W5myu*Aor+8l$nbS	CiX',)$&oNhzr}aq}2`L2{V%gdi'w鿾׍};zjt[3O0W2ʆŗ9va8#2aS+׵7+Fd˵<4{3,7E5~Ò֬:5!#r_IUHxأMDwm䛳2о4ҧK`4Jy!ZxUɷ:dEʐ%Υ_6#
pS#kEAWOf|S̖p*Poza$Dϔ|Q$os$;jC!QЃ#@ڇ*뺻k]/ZCRT~nsMO|%WKA,YŊ]kJ]+<Lo"F#DEaC@6J,5TO&t0V}J{Dq[%3hEZ]ȿobӻepۙ]aL߃+3v9vLYVQ8%#Ŵq3=WvK]D6L;"s+1;	4+9t֭RV뫵kU	2fYE%A.$1DV,o[ap@94C܀BňDH?~)fi%ZY{ԩh gB'xv.A)[r)sCvkM^9<߲i$D\l(
zk<WKCnyt)L6ZR @¡
K$TG.{>GD(Q]%_NB7 tVMIF__>3霛,!3L|@C Ta`}܌ߠZ yI+x]W>V.;]Pլk|0P ίH>\eEL&!cQ=a,cL27RB)ivѶ|Gss@n=۽_iX([jf SW3T㭫uVp<J|.BNլZrmK;O8	EL#k𢣍b s'Inkgե*sJ\PЌ˾slƉ)441ƅ1.X
e.̞LBY<vtkm!`ƼCA._	ոPT)Һ+5alOE1FBԡ@;pM<l^œOVHX~z멧Job^	.)].|2׺oÆD7ٖ]]qH_HbjzQmLYpG}]FAդR:MTWcc̐@<&,rpX&ȩPq;^2}BHZ?vR5G!;zft~Uc%*vx˗96ˣromqx[;Jr2iQ7x=>nR7Np?H˴'ԷtOU9a4nSoթFTrP$`l/M:mW »F͑ ! P}.1`"130+q:Sb&*2ʡjiMI,c70zQdwPwgck;8v=e/+WKTsLAɕàJ7aI8iJ\l#]"Voc&kx߽z7zxY ;ݞBu8.HyN-i6	CϷ]/Q6kQ5윮?	
v)Cr}+	|uRzt"%xWD?וjg#	@ ceuArx8KM又0eo/c7ws
H-bIWWڀa\lS~N.ƙG195XRC2z"A,:4B?ZYT#GI#S}gF|6q9y,0hɰWLأoТO"j쑓ugzYOM/EƧt4raE>BL3CnotE2BI8J+t{T)솽}Ӏ}u"fziX!6&[`G _T*(7:ؐS`QByǆW] [ct[C)t;6b*zI$DzN̢M|#k3kB}n5ŴqT{-=q-W-[gU?8d?`MrZT3LtsE%N5+M?_2ek!"1Ѭ-ݭ-᧌[^uؖKη( \{{	5~ظ7d8s#95;y#1^H}[]3V$?g\PH-珬eo6`tĀxS]nH)JY~jXZ[S]M
sHGCUu"aL܆ؽ*
YW~l	>ɱT_4蚟ܒ]󹯌^]ܑʩ(AR[NxJm IͳLyZUo#*
ƊiØam,V`	X:#58n3iEQג[m6p4/"[;;P
}s:M
6pRe*(xB6N>Ow;4sY^Z3z)fީS8 l*t(K;x,[ss$˖p;}Hl@fj]ɁGA4zSs4S2'Ojͯ_b"mblxrR1'O3hI&ZѬ?w:BDS$=<}|j,487,*+,tJ]bQ9'M[|x_^bX䜧+U^ =V ?s IGac+7.'l$Du;[eqH-Vޔ-=XճygHxٳbp၌U宛ǟiwbz`3Փ9ed臇GW(/5x?`h{\.V㳙ғaK)ѩk9fā7wj(sj5É@cp!.S;zBp\!Y -Sּ|M:o:yr
dMy>;'KHP~&ExC9$	a#M Hk|ARMR:yBWuvM|>=Xn"XfdzT$)Cf'd3xMe	f 9	cDgۇIʢ4e^Mq[}okRJ7bFJ҇,)}nɁ̳C&fۖg(|ʺX+[c|
 1hd;YPdi[!XҶAFZ#گFY{o!ÔtR-	reKՇ>uAҌvcNpvɿ7?@"WCe鸫I_60EVs&R|Цgt#AXhNZ
+-$6^o㙛GJYyɡuÝ
J1VEdG76䞱Ah1g5a:.wA\Ev8Ubh1s,\^y,5/r\xzi0۪Y^Z.;q𚍮7?}ߡSl=W2ÑM*XgOeGUw+Ȁ2RHδ0ȍϾ5o8!yz:	T٤?%|B';-jB39;}3!6JWonV)tkuCl;Rއ}dqϭ#L0z[iU[j~LoםF&:WayF	$cfˎdOWF ƔMtF1[2N|Jf8D鱋B͍tn@fUR>;j^%eqy(H_>U32s336z'F>|.U r97WajW#+d
GUhC"݄/ 2$@Qi>rC"ж46odkWT~9|:/;d,֮PQ:{nLMU_jzۆ!>nLH m6-ܔH~id5C.W@U(泫?BGi>x\X4<VYo>uwv|T`EoE;̦!JtFHIUC'rٓ 玛N~D&</!17&SkOE(%RHP1UqM9|^TZ9&p&R5"f>pٴ2ۮH&j uzwi9z5`!K&Kj<}ePasNf'Ni"|9R9}!옸$+b[`gO@/zfFEm0ډ12C	mekn6b5mqCqo]\}o1}(M;\2!	F176(uw#CH7Oc`*~v5pt~HV?`3 yI&3s`G>"7I
	[CɖS(sv3 J>66&oG.orWZM)R^ҙF.?fo+_.J5Eʙ5uD$=nr儼IHtgm?U]R?& KC@ٳAA=B8SsR(6tNET1r7a[ɑ8܋qhi*kI52v2z*Tf3@4пD6Bmg{*b41RD	#W`OyGͥvdЎƧJ7n[vW'	mKBQlxetR٨P4M-*OFI	>|j|acI7mdش!]?45_2ą6W M}䫞Gׅ׋Ng\>	l	B^aMt;SSANB<]OKn%ՙ<|NǆJ80`5= _YY"3K^s@^OEJRtz0[r'0.Ih`~o?LgMWA!B e!}}ׇ?yuxjD	HMmH]L܏;\N՗bN(c }yMcyN32]NgH?s#<{O818XIe?~>?s?#hn&ǧi)¤tRB͝xʚ?s`?9~>x+=[p_? {WY0(>|ﾦm]sM_輞dF^G˝/u7V<uw)0/X=2EE%¾Q}Ja'ߥx_FޣW;NʏZΤZ:^>}pӵ =$7hnNNi&9Zf=g[>zE$HvZ'p'6UZsfVJ1.l8f^;+JNoМw 6%{k!MiGP$vwI)YqBQ&7	ȑima&'S/t Ɏa\F*>/{!k70Ihn<6dϼ98Q^Z 0ށtIgFfd8^Rq"rV6M`"tS1ېeAU,K'k$K
J&1^$.kϘUv362c=q|Vm}Hɦ[i,_;q\w	="6)Ӊbn cW0OK;Z*JTɹu	5֝n(,toaR`>3 
x).REȧ%vRqƎz7ytRTA6@	<	ӯ@2\ 3AF0TLgrv\"I쁴U<@Dzh=_Si3c7@dṜS;,&0Q=z2 U]?w=cYeH9㺱I}.>fnjdC;PX<zIxb{ɣ Qk'%$Da	mtk.RKҭ^24>*7їv5cֺj{+)}5ѱ>s;	jh>ZGI2:(&_{Ҡv®-mPG$cVhJwW9_cՀ򿃰M),zdCqMLYVܝ9{Q|}ҘӅf۹HϩD{Y{{|ΊK[3Sʧ1&&11pW9<濏w(^b'W^Vdkxx 9ȟgX,r	sE[#)ıqߎTV>]rP
N
{55'7^;]yvސBCJ
H}(ڧhO8͖ 3Iq'Υ.+XX401V{Zݚk4#ul*RU陖bWm#$֐&72k\:K|֙yl?27ӱu19vIj~yE;{G<Bւbhm +ϝisMxi-CyjM4johS[<kLIy:\9zy6=!ݐƹ9@kqP`|H%cC[|ͼF{L}%'1%,`PsݺrO,_tcx<;h><8JKc9Vn۪xo@$[Ts *h i~0n*i&uuj4ؗvņJ]_,f(%ra=V& z/-fy.noiufΝ%Vz=;[f%/DJۨh(QnJT;{#lL6!m.[iʽDop琽]iͯ֥d#"6 n!,RF¯5{i/kq*W܎бϰIXhwwcx_Fӌ?|I^KVoצ	F2AB~DGg?恣.+,̉hwgE3ro;Iey %dZqg?[
:{ӛДDuӐdbcmi-O:/fo1O4naz͙a4ثW>,!'%ڕ8 1ZB/6f&Β%1gǍ\筅g}1	7=I~1ā"pNUpq$Bt0?i%MRA.O  0Ӿ~>*-߼B\
	OLH6R9䝾8\d}.=)IsC;ԝ׵;裵>
֔;a¶yӬ(*?3haoϊTOk.q9.< k
vaY_SXf6<ƚ쥡 ӆfVRJoYeiSRs!GX궐/?p@h.
kyag$`j/I}y4L 080T@ qFA)<xFaWw># 'gLP3o-HxyKjX:7j{Π\jI{@1Bz%JY5R
DZm|F7az'ܣ}\
gQvkRɶaeY|r?]7t'biά&%eԛw[?vjoypX#wQLu}ێwҙw;r&AEo0nLMGĄT}q[ѿ,ʷ?DO7C6ksORvv]PR0?~
6fχUc^Ѝo+'v+M]wNĵk{3U8TD;h:ECk<[ G3"կўWVҽ	1\aOu;:Qas=|[@-(x)<$(@CHdsC
e_6Lv$RC('xK,W@6sX>Ey%!t-NKƺPŷrΟW]p;dcTP24բqbBg#R,Nbt[ro01y@zr&(۟Wotݮb.`.|-LLf|{!(ؐ,4@.:c.c߱V.ܓZhC\%H0*ȉ/|W1ȟ"g#1	[`1K۹|S7qmTʩw?b/c$"E=(<̜T>~(4TWsX@z6-Iã̚p莬O%Pb>Eʭ=#RyFwlwlc30\'=f)8Mob+
(Asc;7ʃAwX芪{3=	lpTm$fH cO.s>3"7뜦L5,C `賟.YR=f	^yJ _nDDB͓QbR᳣jR3tuTZőѸ ^EAŖ2z2nfnzԵw+LQ#|oxGؓX<{U5=n~,r3\qRdbĳ
ת5;g1!$&"B|BF^[g	)y$"	I`K0MmN&4"Sǐ{DJB#iʢ48̔opS*m4f\T(e6Z"{%uOou1LW84n8/<2($qvo?=ouj[mosj'^3RCjVC7#cYS'T
#ODݿCj
Bȅw@Z)5sq#"t}2?/&b{ӌ(ub兊>Zmךlfi~2w` hV		;8o2uzY1k4je"EZJ/.dzYo
Q|g 귩@cP~S`Ѳ`{HH~1L' [04&vTqXj]g1<~y,R m4̭LjT^IPОobYOqg __M
Lo
=G3l~iRFWYJ_anIoȀ~hai*=L"{oBlÍkz)]k;5z=S߆b3<k ,
ԉy2-Vwb1Bh4SJ&vx_RgvJ^4RHYjA;)7)ljMTyr'~ϵhqٳN~bol8)a|d6Ȑ3*+G|j<Σ +=% P:5Xd!]g=6a sg|2먱܂~tTheS#p^YWY	uT}VޡRV"\g`k^v'X(5ey1o52H9|ovzϵ́z3
 l2C=PCELzЂĻ8vgd01|mi-/ǜvVrD^B_'!Ε4G{k97KG+۲%:i$J
@i(Վuq!-@FiۖrZz0R6&'Y0iB'Vښ3b'OظTVKj-l6VhB0}ZB[Xh:S S,K\ʭ,(eJ޺$A(8-2ЧM6}<rg6<Yʋ?_+I後)-{ºRL_<x%T@{PS:@)b(x0"{eu	u5 s /@O7wKJ*[ߋIMy{|96>-gk6u|zba&^#YuZ<]y?V3pmzBn_eքc`rFiXGI;4RKj;-T{Ki2ܾް\>^Yu
 >N{
: KS2VTԲf_n;h|qwP-.f*Ы/|z9r;ߠHnKQ#x*&߹.dt-ٹ?LF7>D&kftb=ݤMv'0秏ӳ7`tʿ@A3ioy{U^b\!p`E<AefbkywXK$5u.B@ė	]ELf-˥@NRVzlHx!{79'9\b6}xH
=1B[Szu11$le$<P>ǜs;yN @	e\HjaZz~FqfyQVuv0Nnq:_z"LF?:bs<@(K2BRk:!Zl I(ɊiَAIEYM8˺yI$+e;a'ieU7m4/u?xXmvyL&H,
Jl @ap`qxDPitpy|pbT&W(UjV7Mffw8]n$5kdEtôl $ae~phxAPUӲ0cVTM7Lv\Ǆ2.ҖdEtôl DPƅ$+e;a'ieU7m4/  $
"L&H,
Jl "L(B*mZz~ z|ج'Y	e\H3Y>nt:5zC 兔E7*U5 +(]}fG;dkU~B|pIw6CPu:CM^WU|h+ʚ?|	X~7nO}P/]谈i[eV>"!ߥʻ>{LbT.dP`k`V~J|CƥczΞ&LISOU_JܾiIJ$
7Gn½bl]4FH>Ҹ8ds4[I&QQkFvlV,nS{|7**\,)>?U^U$gұwnbrܚt Kmp.O`X԰ʖ/.%#zdY&Dt&ãH:.ARd+CXx\7D'`Z(l
Ca+.bڟenW!L؄/.Lb	ej.6 oDYs)R@IL+0DGvEN4cDc C[uVUp.|r^.۵V׊{
|x)@YH?avbNq?zԣĴ ' 	~ɤr|U36k$|:(q#Igc=MTL1Dٻ_Pل^ȜhR-zl(nbPj[^~ܠg6>?zX^|:@I񈛇jI܊7[08;Q!E;U(GnZ 69ןV'P%SLSVBe^7Im=wBf($Vx .VIJU,r{keji*!k4R5+YI%$TJ_Hڥ
˹? xߘ^|Jzm
+ʑ{Fzi/:!*0EHb^HD>YhGq0$f#Q&g{dE	ͤQ0m%t-{_ 4m"z1\=QOŘ$7`Bs}mz|"K}L	٠@H$gw/cHe'd4@/|DoLWC+& 8;O9&]Re_p[|NfٻB WϱX(>JЕǭA6#RqR}?Gb[	η||HXXᑨS+zkˡ!ϩ#C:?(Q/ygKş^c6n}8QnJՄc^H] cM~0p`@jsxz% ~rXЭ_"w'իȕ?X[;œV'>	"&Xy2ŖK.B-e\m3vlRH'T?M;`ɧ
\
|;e`џMR&*kw	fĵO;zݘvռ }[~t(s4O&2.\@6%TGllz/$M 6O9v݃7aŭJ.sjofW¾P//>l(B1WQx?[@ҏזQH1
N?Vy[=*J*a0Ag}y}!)1.]i9~e\H5.j-sRJӈnέRJReBiuO][c$ul[ֱqx% ߽޽vʸj B!RJ)Rc18W'!B[H S	)%+(Q*PJ)ZkK@n~Kõ7vOKRC$q!;ʸ*sSʸge02#2.l/I       `FFTMj:.      GDEF       OS/22z#  (   `cmap/t    gasp      glyfπ   head  "x   6hhea
 "   $hmtxT( "  
locaDL -T  
maxp 7    name1 8  |post< ;  LwebfW4 T          =    O<0    Z[.                      L   3   3  s                              pyrs @                                                t @  4         
 / _!"""`%>N^n~.>N^n~>N^n~              / _!"""`% !@P`p  0@P`p !@P`p d]YTC2߸ݺ                                                                                                                                                                                                                                                                                            	
                                                                                      p       7!!!@pp p                  1   ]    !2#!"&463!&54>3!2+@&&&&@+$(($F#+ &4&&4& x+#       +  ".4>32".4>32467632 DhgZghDDhg-iW DhgZghDDhg-iW&@(8 2N++NdN+';2N++NdN+'3
 8      !        #"'#"$&6$ rL46$܏ooo|W%r4L&V|oooܳ%        = M  %+".'&%&'3!26<.#!";2>767>7#!"&5463!2 %3@m00m@3% @:"7..7":6]^B@B^^BB^  $΄+0110+$ (	
t1%%1+`B^^B@B^^        "'.54632>324
#L</>oP$$Po>Z$_dC+I@$$@I+     "  #"'%#"&547&547%62V??V8<8yb%	I))9I	       	 +  	%%#"'%#"&547&547%62q2ZZ2IzyV)??V8<8)>~>[
2b%	I))9I	      '  %#!"&54>322>32  &6 yy 6Fe=	BSSB	=eF6 >xx5eud_C(+5++5+(C_due>        / ? O _ o      54&+";2654&+";2654&+";264&#!"3!2654&+";2654&+";264&#!"3!2654&+";2654&+";2654&+";267#!"&5463!2&&&&&&&&&&&& & && & &&&&&&&&& && &&&&&&&&&&&&&^BB^^B@B^@&&&&&&&&&&&& && &&&&&&&&&& && &&&&&&&&&&&&&&B^^B@B^^        / ?  #!"&5463!2#!"&5463!2#!"&5463!2#!"&5463!2 L4 4LL4 4LL4 4LL4 4LL4 4LL4 4LL4 4LL4 4L 4LL44LL4LL44LL4LL44LL4LL44LL 	        / ? O _ o    #!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2 8((88(@(88((88(@(88((88(@(88((88(@(88((88(@(88((88(@(88((88(@(88((88(@(88((88(@(8 (88((88(88((88(88((88(88((88(88((88(88((88(88((88(88((88(88((88          / ? O _  #!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2 8((88(@(88((88(@(8 8(@(88((8 8((88(@(8 8(@(88((88(@(88((8 (88((88(88((88(88((88(88((88(88((88(88((88    y     "/&4?62	62,PP&PP,jP  n #  $"'	"/&47	&4?62	62	PP&P&&P&P&P&&P&P      # + D  ++"&=#"&=46;546;232      #"'#"$&6$  @@rK56$܏ooo|W@@rjK&V|oooܳ        0  #!"&=463!2      #"'#"$&6$  @rK56$܏ooo|W@@rjK&V|oooܳ         ) 5   $&54762>54&'.7>"&5462 zz+i *bkQнQkb* j*LhLLhLzzBm +*i JyhQQhyJ i*+ mJ4LL44LL          / ? O  %+"&=46;2%+"&546;2%+"&546;2+"&546;2+"&546;2 `r@@r@@        n   4&"2#"/+"&/&'#"'&'&547>7&/.=46?67&'&547>3267676;27632 Ԗ#H
	,/1)
~'H(C
	,/1)	$HԖԖm6%2X
%	l2k	r6
[21..9Q
$
k2k	
w3[20       / ; C g  +"&546;2+"&546;2+"&546;2!3!2>!'&'!+#!"&5#"&=463!7>3!2!2 @@ @@ @@@`0

o`^BB^`5FN(@(NF5 @@@L%%Ju		@LSyuS@%44%       f  5  #!!!"&5465	7#"'	'&/&6762546;2& &??>LL>
 X 
  &&&AJ	A	J
Wh          #  #!"&5463!2!&'&!"&5!(8((88((`x
c`(8 `((88(@(8(D9 8(           ,  #!"&=46;46;2 .  6  $$ @(r^aa@@`(_^aa    2  N   C  5.+";26#!26'.#!"3!"547>3!";26/.#!2W.@@.$SS$@9I  I6>>         % =  $4&"2$4&"2#!"&5463!2?!2"'&763!463!2!2 &4&&4&&4&&48(@(88(ч::(8@6@* & & *4&&4&&4&&4& (88(@(8888)@)'&&@      $ 0  "'&76;46;232  >& $$ `
(r^aa`		@`2(^aa         $ 0  ++"&5#"&54762  >& $$ ^
?@(r^aa`?		(^aa         #  !.'!!!%#!"&547>3!2<<<_@`&&
5@5
@
&&>=(""=       '   #"'&5476.  6  $$    ! (r^aaJ	%%(_^aa     3  #!"'&?&#"3267672#"$&6$3276 &@*hQQhwI	mʬzzk)' @&('QнQh_
	
z8zoe      $ G   !"$'"&5463!23267676;2#!"&4?&#"+"&= !2762@hk4&&&GaF*&@&ɆF*Ak4&nf&&&4BHrd@&&4rdMoe&            / ? O _ o   +"&=46;25+"&=46;25+"&=46;2#!"&=463!25#!"&=463!25#!"&=463!24&#!"3!26#!"&5463!2@@@@@@@@@@^B@B^^BB^`@@@@@@@@@@@@3@MB^^B@B^^         !54&"#!"&546;54   32@ Ԗ@8(@(88( p (8 jj(88(@(88   @   7  +"&5&5462#".#"#"&5476763232>32@@@@KjKך=}\I&:k~&26]S& H&&H5KKut,4,	& x:;*4*&        K  #+"&546;227654$ >3546;2+"&="&/&546$ <X@@Gv"DװD"vG@@X<4L41!Sk @ G<_bb_<G  kS!1zz          "'!"&5463!62 &4&&M4&&M&&M&          -  "'!"&5463!62 #"&54>4.54632 &4&&M4&UF
&""""&
F&M&&M&%.D.%      G  - I k  "'!"&5463!62 #"&54>4.54632#"&54767>4&'&'&54632#"&547>7676'&'.'&54632 &4&&M4&UF
&""""&
FU&'8JSSJ8'&&'.${{$.'&&M&&M&%.D.%7;&'66'&;4[&$[2[$&[              # / 3 7  #5#5!#5!!!!!!!#5!#5!5##!35!!!                        # ' + / 3 7 ; ?  3#3#3#3#3#3#3#3#3#3#3#3#3#3#3#3#3????  ^>>~??????~??~??^??^^?  ^??          4&"2#"'.5463!2KjKKjv%'45%5&5L45&%jKKjK@5%%%%54L5&6'      k   5   4&"2#"'.5463!2#"&'654'.#32KjKKjv%'45%5&5L45&%%'4$.%%5&55&%jKKjK@5%%%%54L5&6'45%%%54'&55&6'  
y T d t  #!"&'&74676&7>7>76&7>7>76&7>7>76&7>7>63!2#!"3!2676'3!26?6&#!"3!26?6&#!"g(sAeM,*$/!'&JP$G]
x6,&`h`"9Hv@WkNC<.
&k&
("$p"	.#u&#	%!'	pJvwEF#@@        2#"'	#"'.546763!''!0#GG$/!''!	8""8 X!	8"	"8	          <  )!!#"&=! 4&"27+#!"&=#"&546;463!232(8&4&&48(@(8qO@8((`(@Oq 8(&4&&4&@`(88(Oq (8(`( q      ! )   2"&42#!"&546;7>3!2      Ijjjj3e5 5e3gr`Ijjjj1GG1r        P  2327&7>7;"&#"4?2>54.'%3"&#"#ժ!9&WB03&K5!)V?@L'	>R>e;&L::%P>vO
'h N_":-&+#
:	'	      + a  %3 4'.#"32>54.#"7>7><5'./6$3232#"&#"+JBx)EB_I:I*CRzb3:dtB2P$$5.3b[F|\8!-T>5Fu\,,jn OrB,<!
54wJ]?tTFi;23j.p^%/2+	S:T}K4W9: #ƕdfE     9  7>7676'5.'732>7"#"&#&#"$zj=N!}:0e%	y+tD3~U'#B4#g		'2
%/!:T	bRU,7      }  %2"/&6;#"&?62+326323!2>?23&'.'.#"&"$#"#&=>764=464.'&#"&'!~:~!PP!~:~!P6,,$$%*'c2N 	
($"LA23Yl!x!*%% %% pP,T	NE	Q7^oH!+(
3	 *Ueeuwg      a   32632$?23&'.5&'&#"&"5$#"#&=>7>4&54&54>.'&#"&'2#".465!#".'&47>32!4&4>Q6,,Fa w!*'
=~Pl*	
($"LA23Yl	)!*<7@@7< <7@@7<  pP,T	MFQ747ƢHoH!+(
3	 tJHQ6wh',686,'$##$',686,'$##$          / ?  %#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2 &&&&& && & & && &&&&&&&&&f&&&&f&&&&f&&&&          / ?  %#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2 &&&&&&&& &&&&&&&&&&&&f&&&&f&&&&f&&&&          / ?  %#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2 &&&&& && && && &&&&&&&&&f&&&&f&&&&f&&&&            / ?  %#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2 &&&&&&&&&&&&&&&&&&&&f&&&&f&&&&f&&&&            / ? O _ o   %+"&=46;2+"&=46;2+"&=46;2#!"&=463!2+"&=46;2#!"&=463!2#!"&=463!2#!"&=463!2  @  @@@sssss          / ? O  #"'&47632#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2			 	@@@@	 		 	sss         / ? O   #"&54632	#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2`			 @@@@		@		sss           #"'#!"&5463!2632 'mw@www'*wwww          .   "&462!5	!"3!2654&#!"&5463!2pppp@  @^BB^^B@B^ppp@@  @ @B^^BB^^   k    %  !7'34#"3276'	!7632k[[v

6`%`$65&%[[k
`5%&&'          4&"2"&'&54    Ԗ!?H?!,,ԖԖ mF!&&!Fm,        %"  $$  ^aa`@^aa           -  4'.'&"26%   547>7>2 "KjK XQqYn	243nYqQ$!+!77!+!$5KK,ԑ	]""]ً	        9 > H  7'3 &7#!"&5463!2'&#!"3!26=4?6	!762xtt`   ^Qwww@?61B^^B@B^	@(` `\\\P`tt8`  ^Ͼww@w1^BB^^B~	@` \ \P          + Z  #!"&5463!12+"3!26=47676#"'&=# #"'.54>;547632www M8
pB^^B@B^'sw-

9*##;Noj'#ww@w"^BB^^B
	*"g`81T`PSA:'*4       / D  #!"&5463!2#"'&#!"3!26=4?632"'&4?62	62www@?61
B^^B@B^	@
BRnBBn^ww@w1
^BB^^B	@
BnnB          C   "&=!32"'&46;!"'&4762!#"&4762+!5462  4&& 4 &&4  4&& 4 &&4 4 &&4  4&& 4 &&4  4&&        6'&'+"&546;267:	&&&&	s@	
Z&&&&Z     +  6'&''&'+"&546;267667:	:	&&&&		s@	
:	
Z&&&&Z:  z   6'&''&47667S::s@	
:4:    |   	&546h!!0a$           #!"&5463!2#!"&5463!2 & && && && &@&&&&&&&&          #!"&5463!2 &&&&@&&&&         &54646&5-:s::4:
	        +  &5464646;2+"&5&5-&&&&:s::&&&&
	:
	         &54646;2+"&5-&&&&s:&&&&
	          62#!"&!"&5463!24@&&&&-:& && &        	"'&476244444     Zf   	"/&47	&4?62S44444       # /  54&#!4&+"!"3!;265!26  $$ & && && && &@^aa@& && && && &+^aa        54&#!"3!26  $$ & && &@^aa@&&&&+^aa       + 7  4/7654/&#"'&#"32?32?6  $$ }ZZZZ^aaZZZZ^aa      #  4/&"'&"327> $$ [4h4[j^aa"ZiZJ^aa      : F  %54&+";264.#"32767632;265467>$ $$  oW	5!"40K(0?i+! ":^aaXRdD4!&.uC$=1/J=^aa       . :  %54&+4&#!";#"3!2654&+";26 $$  ```^aa ^aa      / _  #"&=46;.'+"&=32+546;2>++"&=.'#"&=46;>7546;232m&&m l&&l m&&m l&&ls&%&&%&&%&&%& &&l m&&m l&&l m&&m ,&%&&%&&%&&%&        # / ;  "/"/&4?'&4?627626.  6  $$ I














͒(r^aaɒ














(_^aa           ,  	"'&4?6262.  6  $$ Z4f44fz(r^aaZ&4ff4(_^aa        	  "  4'32>&#"  $&6$  WoɒV󇥔 zzz8YW˼[?zz:zz   @5 K    #!#"'&547632!2 A4@%&&K%54'u%%&54&K&&4A5K$l$L%%%54'&&J&j&K    5K    #"/&47!"&=463!&4?632%u'43'K&&%@4AA4&&K&45&%@6%u%%K&j&%K55K&$l$K&&u#   5K@ !  #"'+"&5"/&547632K%K&56$K55K$l$K&&#76%%53'K&&%@4AA4&&K&45&%%u'     5K "  #"'&54?63246;2632K%u'45%u&&J'45%&L44L&%54'K%5%t%%$65&K%%4LL4@&%%K'      ,   "&5#"#"'.'547!3462  4&bqb>#5&4 4 & 6Uue7D#		"ǆ &        /   #!"&546262"/"/&47'&463!2
&@&&4L

r&4

r

L&&
4&&&L

rI@&

r

L4&&     s  /  "/"/&47'&463!2 #!"&546262 &4

r

L&&
&@&&4L

r@@&

r

L4&&
4&&&L

r         #  #!+"&5!"&=463!46;2!28(`8((8`(88(8((8(8 (8`(88(8((8(88(`8          #!"&=463!28(@(88((8 (88((88   z 5  '%+"&5&/&67-.?>46;2%6.@g.L44L.g@.
.@g.
L44L
.g@.g.n.4LL43.n.gg.n.34LL4͙.n.g        -     $54&+";264'&+";26/a^



^aafm
        @    J  %55!;263'&#"$4&#"32+#!"&5#"&5463!"&46327632#!2$$8~+(888(+}(`8((8`]]k==k]]8,8e8P88P8`(88(@MM        O   4&#"327>76$32 #"'.#"#".'.54>54&'&54>7>7>32 &z&^&./+>*>J>	Wm7'
'"''? &4&c&^|h_bml/J@L@#M6:D
35sҟw$	'%
'	\t       3  #!"&=463!2'.54>54''@ 1O``O1CZZ71O``O1BZZ7@@N]SHH[3`)TtbN]SHH[3^)Tt           ! 1  &'   547 $ 4&#"2654632    '&476   ==嘅}(zVl''ٌ@uhyyhu9(}VzD##D#     	  = C U  %7.547 4&#"2654632% #"'&547.'&476 !27632#76$7&'7+NWb=嘧}(zVi\j1
z,XY[6
$!%'FuJiys?_9ɍ?kyhun(}VzYF
KA؉La
02-F"@Qsp@_        ! 3  %54&+";264'&+";26#!"&'&7>2 

 #%;" ";%# <F<7
??""??$$     ll 2  #"'&'	+&/&'&?632	&'&?67>`,@L5`		
`	L`4LH``	a	5L@              # 3 7 ; ? O s  !!!!%!!!!%!!!!!!!!%!!4&+";26!!%!!!!74&+";26%#!"&546;546;2!546;232 `@ `@ @@  @@@ @  @@L44LL4^B@B^^B@B^4L  @@@@      @@  @@   M 4LL4 4L`B^^B``B^^B`L        7 q  .+"&=46;2 #"&=".'673!54632#"&=!"+"&=46;2>767>3!54632<M33K,		 j8Z4L2B4:;M33K, ?			 0N<* .)C=W]xD0N<* .)C=W]xD ?\-7H)		".=']-7H)
w		<?.>mBZxPV3!<?.>mBZxPV3!
         &   #"'&'5&6&>7>7&54>$32 dFK1A
0)L.٫C58.H(Ye      # 3 C   $=463!22>=463!2#!"&5463!2#!"&5463!2 H&&/<R.*.R</&& &&&& &&&&Bɀ&&4L&&L4&&f&&&&&&&&     Z     %"'	"/&4762444ͥ55     Z   	"'&4?62	6244455        % K  %#!".<=#"&54762+!2"'&546;!"/&5463!232 @&@<@&@	:&	& 
&&&	
`&          :  $"&462"&462!2#!"&54>7#"&463!2!2LhLLhLhLLh!&& &&& &4hLLhLLhLLhL %z<
0&4&&)17&4&&&           #!"&5463!2!2\@\\@\\@\\\\         W  *  #!"&547>3!2!"4&5463!2!2W+B"5P+B@"5^=\@\ \H#t3G#3G:_Ht\\     @      +32"'&46;#"&4762&& 4 && 4 4& &4  4& &4       @     "&=!"'&4762!5462  4& &4  4& &4 4 && 4 &&              !!!3!!                    0 @  67&#".'&'#"'#"'32>54'6#!"&5463!2 8ADAE=\W{O[/5dIkDtpČe1?*w@www	(M&B{Wta28r=Ku?RZ^GwT	-@www       $  2+37#546375&#"#3!"&5463ww/Dz?swww@wS88	ww           # ' . >   4&#"26546326"&462!5! &  !5!!=!!%#!"&5463!2B^8(Ԗ  > @|K5 5KK5 5K^B(8ԖԖ>v 5KK5 5KK   H  G   4&"&#"2654'32#".'#"'#"&54$327.54632@pp)*Pppp)*Pb	'"+`N*(a;2̓c`." b
PTY9ppP*)pppP*) b ".`(*Nͣ2ͣ`+"'	b
MRZB               4&"24&"264&"26#"/+"&/&'#"'&547>7&/.=46?67&'&547>3267676;27632#"&'"'#"'&547&'&=4767&547>32626?2#"&'"'#"'&547&'&=4767&547>32626?2ԖLhLKjKLhLKjK	"8w
s%(")v

>
	"8x
s"+")v
<
3zLLz33>8L3)x33zLLz33>8L3)x3ԖԖ 4LL45KK54LL45KK
#)0C

wZl/

Y	
N,&
#)0C	vZl.

Y	
L0"qG^^Gqq$ ]G)FqqG^^Gqq$ ]G)Fq         % O   #"'#"&'&4>7>7.546$ '&'&'# '32$7>54'VZ|$2$
|E~E<|
$2$|ZV:(t}X(	&%(Hw쉉xH(%&	(XZT\MKG        < m  $4&"24&#!4654&#+32;254'>4'654&'>7+"&'&#!"&5463!6767>763232 &4&&4N2`@`%)7&,$)'  %/0Ӄy#5 +1	&<$]`{t5KK5$e:1&+'3TF0h4&&4&3M:;b^v+D2 5#$IIJ 2E=\$YJ!$MCeM-+(K55KK5y*%Au]c         = p   4&"24&'>54'64&'654&+"+322654&5!267+#"'.'&'&'!"&5463!27>;2 &4&&4+ 5#bW0/%  ')$,&7)%`@``2Nh0##T3'"(0;e$5KK5 tip<&	1&4&&4& #\=E2 JIURI$#5 2D+v^b;:M2gc]vDEA%!bSV2MK55K(,,MeCM$!J   @   #"&547&547%6@?V8b%	I)         9  4.""'."	67"'.54632>32+C`\hxeH>Hexh\`C+ED4
#L</>oP$$Po>Q|I.3MCCM3.I|Q/Z$_dC+I@$$@I+           ( @  %#!"&5463!2#!"3!: "&5!"&5463!462ww@B^^B 
4&@&&&4 ` ww ^B@B^24& && &        % 5  73#7.";2634&#"35#347>32#!"&5463!2FtIG9;HIxI<,tԩw@wwwz4DD43EEueB&#1s@www      .  4&"26#!+"'!"&5463"&463!2#2&S3Ll&c4LL44LL4c@&&{ LhLLhL           ' ?  #!"&5463!2#!"3!26546;2"/"/&47'&463!2www@B^^B@B^@&4t

r

& &`ww@w@^BB^^B@R &t

r

4&&         @   "&5!"&5463!462	#!"&54&>3!2654&#!*.54&>3!24&@&&&4 sw@B^^B
@w4& && &3@w ^BB^       I  &5!%5!>732#!"&=4632654&'&'.=463!5463!2!2J  JSq*5&=CKuuKC=&5*q͍S8( ^B@B^ (8`N`Ѣ΀GtO6)"M36J[E@@E[J63M")6OtG(8`B^^B`8   	        ' , 2    6'&'&76'6'&6&'&6'&4#"7&64   654'.'&'.63226767.547&7662>76#!"&5463!2		/[		.
=XĚ4,+"*+, 1JH'5G::#L5+@=&# w@wwwP.1GE,ԧ44+	;/5cFO:>JJ>:O9W5$@(b4@www      ' ?  $4&"2$4&"2#!"&5463!3!267!2#!#!"&5!"'&762 &4&&4&&4&&48(@(88(c= =c(8* & & *6&4&&4&&4&&4& (88(@(88HH88`(@&&('@       1 d  4&'.54654'&#"#"&#"32632327>7#"&#"#"&54654&54>76763232632


	N<;+gC8A`1a99gw|98aIe$IVNz<:LQJ
	,-[%	061I()W,$-7,oIX()oζA;=N0
eTZ

(         O  #".'&'& '&'.54767>3232>32e^\3@P	bMO0#382W#& 9C9
Lĉ"	82<*9FF(W283#0OMb	P@3\^eFF9*<28	"L
9C9 &#           !"3!2654&#!"&5463!2`B^^B@B^^ީwww@w ^BB^^B@B^ww@w      #  !72#"'	#"'.546763 YY!''!0#GG$/!''! &UUjZ	8""8 X!	8"	"8	        E U  4'./.#"#".'.'.54>54.'.#" 32676#!"&5463!2 G55
:8c7)1)

05.D<90)$9 w@wwwW+
AB7c)$+
-.1 9$)0<D.59@www    ,  T  1  # '327.'327.=.547&54632676TC_LҬ#+i!+*pDNBN,y[`m`%i]hbEm}au&,SXK
&$f9s?
    _    #"!#!#!54632V<%' ЭHH	(ں       T \ d k s z       &54654'>54'6'&&"."&'./"?'& 546'&6'&6'&6'&6'&74"727&6/a49[aA)O%-j'&]]5r-%O)@a[9'
0BA;+

>HCU


	#	
	
$				2	AC: oM=a-6OUwW[q	( -	q[WwUP6$C

+) (	
8&/&eMa	
&$	        %  +"&54&"32#!"&5463!54   &@&Ԗ`(88(@(88(r && jj8((88(@(8        # ' +  2#!"&5463"!54&#265!375!35!B^^BB^^B` ^B@B^^BB^ `       ! =   "&462+"&'& '.=476;+"&'& $'.=476;pppp$!$qr%}#ߺppp!E$rqܢ#%ֻ!           ) ?   "&462"&4624&#!"3!26!.#!"#!"&547>3!2/B//B//B//B@2^B@B^\77\aB//B//B//B/@~B^^B@2^5BB52     . 4  2## %&'.67#"&=463! 2 5KK5L4_u:B&1/&.-
zB^^B4LvyKjK4L[!^k'!A3;):2*<vTq6^BB^L4$)*    @     A  4#"&54"3! 4."#!"&5!"&5>547&5462;U gIv0ZZ0L4@Ԗ@4L2RX='8P8'=XR U;Ig0,3lb??bl34LjjL4*\(88(\    } I  /#"/'&/'&?'&'&?'&76?'&7676767676`
(5)0
)*)
0)5(

(5)0
))))
0)5(
*)
0)5(
)5)0
)**)
0)5)

)5)0
)*      5 h  $4&"24&#!4>54&#"+323254'>4'654&'!267+#"'&#!"&5463!2>767>32!2 &4&&4N2$YGB(HGEG  HQ#5K4Li!<;5KK5 
A#("/?&}vh4&&4&3M95S+C=,@QQ9@@IJ 2E=L5i>9eME;K55K	J7R>@#zD<      7 ? s  %3#".'.'&'&'.#"!"3!32>$4&"2#!"#"&?&547&'#"&5463!&546323!2`  #A<(H(GY$2NL4K5#aWTƾh&4&&4K5;=!ihv}&?/"(#A
 5K2*!Q@.'!&=C+S59M34L=E2 JI UR@@&4&&4&5K;ELf9>ig<Dz#@>R7J	K         5 h  4&"24#"."&#"4&#"".#"!54>7#!"&54.'&'.5463246326326 &4&&4IJ 2E=L43M95S+C=,@QQ9@@E;K55K	J7R>@#zD<gi>9eMZ4&&4&<#5K4LN2$YGB(HGEG  HV;5KK5 
A#("/?&}vhi!<         4 < p  4.=!32>332653272673264&"2/#"'#"&5#"&54>767>5463!2@@2*!	Q@.'!&=C+S59M34L.9E2 JI UR&4&&4&Lf6Aig6Jy#@>R7J	K55K;E@TƾH  #A<(H(GY$2NL4K#5#a=4&&4&D=ihv}&?/"(#A
 5KK5;         +  54&#!764/&"2?64/!26  $$  &
[6[[j6[& ^aa@&4[[6[[6&+^aa        +   4/&"!"3!277$ $$ [6[
&&[6j[^aae6[j[6&&4[j[^aa      +   4''&"2?;2652?$ $$ [6[[6&&4[^aaf6j[[6[
&&[^aa      +   4/&"4&+"'&"2?  $$ [6&&4[j[6[j^aad6[&&
[6[[j ^aa             $2>767676&67>?&'4&'.'.'."#&6'&6&'3.'.&'&'&&'&6'&>567>#7>7636''&'&&'.'"6&'6'..'/"&'&76.'7>767&.'"76.7"7"#76'&'.'2#22676767765'4.6326&'.'&'"'>7>&&'.54>'>7>67&'&#674&7767>&/45'.67>76'27".#6'>776'>7647>?6#76'6&'676'&67.'&'6.'.#&'.&6'&.5/a^D&"	


	4	$!	#	
		
	


 
.0"Y
	+!	
	
$		"+


		
	Α	
		^aa
	

					

		
			P '-(	#	*
$
"!				*
!	
(				
	
$
		
2   ~   /  $4&"2	#"/&547#"  32>32&4&&4V%54'j&&'/덹:,{	&4&&4&V%%l$65&b'Cr!"k[G             + ;  %!5!!5!!5!#!"&5463!2#!"&5463!2#!"&5463!2    &&&&&&&&&&&&@ && && && && && &&   {    #"'&5&763!2{' * *)* )'             /  !5!#!"&5!3!26=#!5!463!5463!2!2  ^B@B^&@&`   ^B`8(@(8`B^   B^^B&&B^(88(^      G  	76#!"'&?	#!"&5476	#"'&5463!2	'&763!2#"'c)'&@**@&('c(&*cc*&'*@&('c'(&*cc*&('c'(&@*        1 9 A S [  #"&532327#!"&54>322>32 "&462  &6 +&'654'32>32"&462QgRp|Kx;CByy 6Fe=
BPPB
=eF6  ԖV>!pRgQBC;xK|Ԗ{QNa*+%xx5eud_C(+5++5+(C_due2ԖԖ>NQ{u%+*jԖԖ     p ! C i  4/&#"#".'32?64/&#"327.546326 #"/&547'#"/&4?632632(* 8(!)(A(')* 8(!USxySSXXVzxTTUSxySSXXVzxT@( (8 *(('((8 SSUSx{VXXTTSSUSx{VXXT        #!" 5467&54 32632t,Ԟ;F`j)6,>jK?  s  !  %#!"&7#"&463!2+!'5#8EjjE8@&& &&@XYY&4&&4&qDS%q%         N \ j x     2"&4#"'#"'&7>76326?'&'#"'.'&676326326&'&#"32>'&#"3254?''74&&4&lNnbSVZbRSD	zz	DSRb)+USbn\.2Q\dJ'.2Q\dJ.Q2.'Jd\Q2.'Jd`!O` 	`&4&&4r$#@B10M5TNT{L5T	II	T5L;l'OT4M01B@#$*3;$*3;;3*$;3*$:$/ @@Qq`@         " % 3 <  2#!"&5!"&5467>3!263!	!!#!!46!#!(88(@(8(8(`((8D<++<8(` (8(`8(@(88( 8((`(8((<`(8 (``(8    || ?  %#"'&54632#"'&#"32654'&#"#"'&54632|udqܟs]
=
OfjL?R@T?"&
>
f?rRX=Edudsq
=
_MjiL?T@R?E& f
>
=XRr?b      ! 1 E  )!34&'.##!"&5#3463!24&+";26#!"&5463!2  

08((88(@(88((88((`(1

`(88( (88( @`(88(@(8(`         #!"&5463!2 w@www`@www             /  %#!"&=463!2#!"&=463!2#!"&=463!2 &&&&&&&&&&&&&&&&&&&&&&&&    @    ' 7 G  $"&462"&462#!"&=463!2 "&462#!"&=463!2#!"&=463!2ppppppp@ppp@@Рppppppppp         < L \ l |  #"'732654'>75"##5!!&54>54&#"'>3235#!"&=463!2!5346=#'73#!"&=463!2#!"&=463!2}mQjB919+i1$AjM_3</BB/.#U_:IdDRE@k*Gj@@TP\BX-@8
C)5XsJ@$3T4+,:;39SG2S.7<vcc)(%Ll}         5 e  2#!"&=463%&'&5476!2/&'&#"!#"/&'&=4'&?5732767654'&@02uBo
T25XzrDCBBEh:%)0%HPIP{rQ9f#-+>;I@KM-/Q"@@@#-a[$&P{<8[;:XICC>. '5oe71#.0(l0&%,"J&9%$<=DTI     c s  &/6323276727#"327676767654./&'&'737#"'&'&'&54'&54&#!"3!260%<4"VRt8<@<-#=XYhW8+0$"+dTLx-'I&JKkmuw<=V@!X@		v'|N;!/!$8:IObV;C#V
&(mL.A:9 !./KLwPM$@@  
       / ? O _ o     %54&#!"3!2654&#!"3!2654&#!"3!2654&#!"3!2654&#!"3!2654&#!"3!2654&#!"3!2654&#!"3!2654&#!"3!26#!"&5463!2 @@ @ @ @ @ @ @@^BB^^B@B^NB^^B@B^^         # + 3  	'$"/&4762%/?/?/?/?%k*66bbbb|<<<bbbbbbbb%k66Ƒbbb<<<<^bbbbbb    @      M  $4&"2!#" 4&"2&#"&5!"&5#".54634&>?>;5463!2LhLLh		 LhLLhL!'ԖԖ@'!&	?& &LhLLhL 		hLLhL 	jjjj	&@6/"&&       J   #"'676732>54.#"7>76'&54632#"&7>54&#"&54$  ok;	-j=yhwi[+PM3ѩk=J%62>VcaaQ^ ]G"'9r~:`}Ch  0=Z٤W=#uY2BrUI1^Fk[|a      L  2#!67673254.#"67676'&54632#"&7>54&#"#"&5463ww+U	,i<F{jh}Z+OM
2ϧj<J%51=Ubwww@wzX"'8'TyI9`{Bf 
,>XբW<"uW1AqSH1bdww        ' 7  4'!3#"&46327&#"326%35#5##33#!"&5463!20U6cc\=hlࠥYmmnnnnw@wwww&46#Ȏ;edwnnnnn@www    	 ] # /  #"$&6$3 &#"32>7!5!%##5#5353Еttu{zz{SZC`cot*tq||.EXN#??           , <  !5##673#$".4>2"&5!#2!46#!"&5463!2 rM* *M~~M**M~~M*jjj& && &`P%挐|NN||NN|* jj jj@&&&&    @     "'&463!2 @4@&Z4@4&        @    #!"&4762 &&4Z4&&4@     @    "'&4762&4@4&@&4&      @    "&5462@@4&&44@&&@           3!!%!!26#!"&5463!2`m`^BB^^B@B^ `@B^^BB^^    @     "'&463!2#!"&4762 @4@&&&&44@4&Z4&&4@            "'&463!2 @4@&4@4&        @    #!"&4762 &&4Z4&&4@          :  #!"&5;2>76%6 +".'&$'.5463!2 ^B@B^,9j9Gv33vG9H9+bI\
A+=66=+A
[">nSMA_:B^^B1&c*/11/*{'VO3@/$$/@*?Nh^    l   +  !+"&5462!4&#"!/!#>32]_gTRdgdQV?UI*Gg?!2IbbIJaaiwE3300 08        4   #"$'&6?6332>4.#"#!"&54766$32 z䜬m
IwhQQhbF*@&('kz
	
_hQнQGB'(&*eoz  ( q  !#"'&547"'#"'&54>7632&4762.547>32#".'632%k'45%&+ ~((h		&

\((		&

~ +54'k%5%l%%l$65+ ~

&		((\

&		h((~ +%'         ! ) 1 9 K   4&"2 4&"26.676&$4&"2 4&"24&"2#!"'&46$ KjKKjKjKKje2.e<^P,bKjKKjKjKKjKjKKj##LlLKjKKjKjKKjK~-M<M(PM<rjKKjKjKKjKujKKjKL           <    6?32$6&#"'#"&'5&6&>7>7&54$ LhяW.{+9E=cQdFK1A
0)pJ2`[Q?l&٫C58.H(Y'        : d    6?32$64&$ #"'#"&'&4>7>7.546'&'&'# '32$7>54'Yj`a#",5NK
~EVZ|$2$
|:
$2$|ZV:(t}hfR88T
h̲X(	&%(Hw(%&	(XZT\MKG{x   | !  #"'.7#"'&7>3!2%632u
jH{(e9
1b      U  #!"&546;5!32#!"&546;5!32#!"&546;5463!5#"&5463!2+!232 8((88(` `(88((88(` `(88((88(`L4 `(88(@(88(` 4L`(8 (88(@(88((88(@(88((88(@(84L8(@(88((8L48      O Y  "&546226562#"'.#"#"'.'."#"'.'.#"#"&5476 $32&"5462И&4&NdN!>!1X:Dx++ww++xD:X1- U! *,*&4&hh&&2NN2D&
..J<
$$
<JJ<
$$
<J..
Pbb&&          7  !!"&5!54&#!"3!26!	#!"&=!"&5463!2 `(8 @ + 8(@(8(88(@(8(8( @@m+U`(88(8(@(88(h`         ( \  "&54&#"&46324."367>767#"&'"&547&547&547.'&54>2l42cKEooED
)

)
Dg-;</-?.P^P.?-/<;-gYY.2 L4H|O--O|HeO,,Oeq1Ls26%%4.2,44,2.4%%62sL1qcqAAq      4  #!#"'&547632!2#"&=!"&=463!54632 		@	`		`?`
@		@	!		
          5  4&+4&+"#"276#!" 5467&54 32632 	`		_
v,Ԝ;G_j)``			_ԟ7,>jL>       5  4'&";;265326#!" 5467&54 32632 			
v,Ԝ;G_j)	`		`7,>jL>        X `  $"&462#!"&54>72654&'547 7"2654'54622654'54&'46.'  &6 &4&&4&yy%:hD:FppG9Fj 8P8 LhL 8P8 E;
Dh:%>4&&4&}yyD~s[4Dd=PppP=d>hh>@jY*(88(*Y4LL4Y*(88(*YDw"
A4*[s~>       M   4&"27 $=.54632>32#"' 65#"&4632632 65.5462 &4&&4G9&
<#5KK5!!5KK5#<
&ܤ9Gpp&4&&4&@>buោؐ &$KjKnjjKjK$& jjb>Ppp        %  !5!#"&5463!!35463!2+32  @\\ 8(@(8 \@@\ \@\  (88(\   @    3  4#"&54"3#!"&5!"&5>547&5462;U gI@L4@Ԗ@4L2RX='8P8'=XR U;Ig04LjjL4*\(88(\    @    "   4&+32!#!"& +#!"&5463!2pP@@P j j@@\@\&0pj	 \\&       - B  +"&5.5462265462265462+"&5#"&5463!2G9L44L9G&4&&4&&4&&4&&4& L44L &=d4LL4d=&&`&&&&`&&&&4LL4  &         # 3 C S  #!"&5463!2!&'&!"&5!463!2#!"&52#!"&=4632#!"&=463(8((88((`x
c`(8  @@@`((88(@(8(D9 8( `@@@ @@        / ? O _ o         -=  %+"&=46;25+"&=46;2+"&=46;2%+"&=46;2+"&=46;2%+"&=46;2%+"&=46;2%+"&=46;2+"&=46;2%+"&=46;2%+"&=46;2%+"&=46;2+"&=46;2%+"&=46;2%+"&=46;2+"&=46;2%+"&=46;2+"&=46;2!!!5463!2#!"&5463!2@@@@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @ & && &@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  `&&&&        / ? O _ o        %+"&=46;25+"&=46;2+"&=46;2%+"&=46;2+"&=46;2%+"&=46;2%+"&=46;2+"&=46;2%+"&=46;2+"&=46;2!!#!"&=!!5463!24&+"#54&+";26=3;26%#!"&5463!463!2!2@@@@ @@ @@ @@ @@ @@ @@ @@ @@  8(@(8 @@@@@ & &&@8((8@&@@@@@@@@@@@@@@@@@@@@ (88( @````- && & (88(&  @    < c  $4&"2!# 4&"254&+54&+"#";;26=326+"&5!"&5#"&46346?>;463!2KjKKj KjKKj &ԖԖ&&@&&KjKKjK 
jKKjK .&jjjj&4&@@&&      # ' 1 ? I  54&+54&+"#";;26=326!5!#"&5463!!35463!2+32    \\8(@(8 \  \ \@\  (88(\          :  #32+53##'53535'575#5#5733#5;2+3@E&&`@@`    `@@`&&E%@`@ @ @		      		@ :#   @      !3!57#"&5'7!7! K5@   @ 5K@@@      # 3  %4&+"!4&+";265!;26#!"&5463!2 && &&&& && w@www&&@&&&&@&&@www        # 3  54&#!4&+"!"3!;265!26#!"&5463!2 &&&&&@&&@& w@www@&@&&&&&&@&:@www    - M3  )  $"'&4762	"'&4762	s
2

.



2

w
2

.



2

w
2





2

ww

2





2

ww     M3  )   "/&47	&4?62"/&47	&4?62S
.

2

w

2


.

2

w

2

M
.

2



2

.

.

2



2

.   M 3S  )  $"'	"/&4762"'	"/&47623
2

ww

2





2

ww

2




2

w

2



.v
2

w

2



.    M 3s  )   "'&4?62	62"'&4?62	623
.

.

2



2

.

.

2



2
.



2

w

2v
.



2

w

2   - Ms3    	"'&4762s
w

2

.



2
ww

2





2     MS3    "/&47	&4?62S
.

2

w

2

M
.

2



2

.    M3S    "'	"/&47623
2

ww

2



m
2

w

2



.    M-3s    "'&4?62	623
.

.

2



2-
.



2

w

2        /  4&#!"3!26#!#!"&54>5!"&5463!2 @^B  & &  B^^B@B^ @MB^%Q=&&<P&^B@B^^            + 3  "&5463!2#3!2654&#!"3#!"&=324+"3B^^B@B^^B@`^BB^p ^BB^^B@B^`@S`(88(``             '  $4&"2%4&#!"3!26#!"&5463!2&4&&4@^BB^^B@B^f4&&4&@B^^B@B^^            /  $4&"2%4&#!"3!264+";%#!"&5463!2/B//B   0L4 4LL4 4L_B//B/@M    4LL4 4LL            >& $$ (r^aa(^aa        ! C  #!"&54>;2+";2#!"&54>;2+";2 pPPpQh@&&@j8(PppPPpQh@&&@j8(Pp@PppPhQ&&j (8pPPppPhQ&&j (8p         ! C  +"&=46;26=4&+"&5463!2+"&=46;26=4&+"&5463!2 Qh@&&@j8(PppPPpQh@&&@j8(PppPPp@hQ&&j (8pPPppP@hQ&&j (8pPPpp     @@  	   # + 3 ; G  $#"&5462 "&462 "&462#"&462 "&462 "&462 "&462#"&54632K54LKj=KjKKjKjKKjL45KKjK<^^^KjKKjppp\]]\jKL45KjKKjKujKKjK4LKjKK^^^jKKjKpppr]]\            $$  ^aaQ^aa      ,  #"&5465654.+"'&47623  #>bqb&4  4&ɢ5"		#D7euU6 & 4 & m       1 X   ".4>2".4>24&#""'&#";2>#".'&547&5472632>3=T==T==T==T=v)GG+v@bRRb@=&\Nj!>3lkik3hPTDDTPTDDTPTDDTPTDD|xxXK--K|Mp<#	)>dA{RXtfOT# RNftWQ          ,  %4&#!"&=4&#!"3!26#!"&5463!2!2 8(@(88((88((8\@\\@\\(88(@(88(@(88@\\\\       u  ' E  4#!"3!2676%!54&#!"&=4&#!">#!"&5463!2!2325([5@(\& 8((88((8 ,9.+C\\@\ \6Z]#+#,k(88(@(88(;5E>:5E\\\ \1.           $ 4 @  "&'&676267> "&462"&462 .  > $$ n%%/02
KjKKjKKjKKjKfff^aayy/PccP/jKKjKKjKKjKffff@^aa        $ 4 @  &'."'.7>2 "&462"&462 .  > $$ n20/%7KjKKjKKjKKjKfff^aa3/PccP/y	jKKjKKjKKjKffff@^aa         + 7   #!"&463!2 "&462"&462 .  > $$ &&&&KjKKjKKjKKjKfff^aa4&&4&jKKjKKjKKjKffff@^aa       # + 3 C  54&+54&+"#";;26=3264&"2 4&"2$ #"'##"  3!2@@KjKKjKKjKKjKܒ,gjKKjKKjKKjKXԀ,,          # / ; G S _ k w       +"=4;27+"=4;2'+"=4;2#!"=43!2%+"=4;2'+"=4;2+"=4;2'+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2+"=4;54;2!#!"&5463!2```` ````````````` `` `` p` K55KK55Kp````````````````````````` 5KK55KK     @   * V  #"'.#"63232+"&5.5462#"/.#"#"'&547>32327676R?d^7ac77,9xm#@#KjK#
ڗXF@Fp:f_ #WIpp&3z	h[ 17q%q#::#5KKu't#!X:	%#+=&>7p   @    * 2 F r  56565'5&'.	#"32325#"'+"&5.5462#"/.#"#"'&547>32327676@ͳ82.,#,fk*1x-!#@#KjK#
ڗXF@Fp:f_ #WIpp&3z	e`vo8t-	:5	[*#::#5KKu't#!X:	%#+=&>7p    3  $  	"/&47	&4?62#!"&=463!2I.

2

w

2


-@).

2



2

.
-@@     -S  $ 9  %"'&4762		/.7>	"/&47	&4?62i2

.



2

w
E>u>.

2

w

2


2





2

ww
!h.

2



2

.
       ;  #"'&476#"'&7'.'#"'&476'  )'s"+5+@ա'  )'F* 4 *Er4M:}}8GO* 4 *     ~ 
 (  -/'	#"'%#"&7&67%632B;><V??V --C4
<B=cB5!%%!b 7I))9I7        	#"'.5!".67632y(
#
  ##@,(
)        8  !	!++"&=!"&5#"&=46;546;2!76232-SSS

		 SS``		

          K  $4&"24&"24&"27"&5467.546267>5.5462 8P88P88P88P8P88P4,DS,4pp4,,4pp4,6d7AL*',4ppP88P8P88P8HP88P8`4Y&+(>EY4PppP4Y4Y4PppP4Y%*<O4Y4Ppp        & A ] i u   	#"'&4762"&5462&#!"&463!2#"'&'7?654'7&#"&'&54?632#!"&463!2"&5462"'&4762 
		 

	@USxySR#PT('#TUSxySN@ 		 

		 		

 		
3@xSSUO#'(V^'(PVvxSSUi @ 		

 		
     `     <  +"&=46;2+"&=467>54&#"#"/.7!2<'G,')7N;2]=A+#H0PRH6^;<T%-S#:/*@Z}

>h         .  %#!"&=46;#"&=463!232#!"&=463!2& &&@@&&&@&& && &&&&&&&&f&&&&   b      #!"&=463!2#!"&'&63!2 & && &' '%@% &&&& && &&    k " G  %#/&'#!53#5!36?!#!'&54>54&#"'6763235	
Ź}4NZN4;)3.i%Sin1KXL7觧*	#&		*@jC?.>!&1'\%Awc8^;:+<!P        " F  %#/&'#!53#5!36?!#!'&54>54&#"'6763235	
Ź}4NZN4;)3.i%PlnEcdJ觧*	#&		*-@jC?.>!&1'\%AwcBiC:D'P           %!	#!"&'&6763!2P &: &?&: &?5"K ,)""K ,)      h  #".#""#"&54>54&#"#"'./"'"5327654.54632326732>32YO)I-D%n "h.=T#)#lQTv%.%P_	%	%_P%.%vUPl#)#T=@/#,-91P+R[Ql#)#|''
59%D-I)OY[R+P19-,# #,-91P+R[YO)I-D%95%_P%.%v      ' 3   !2#!"&463!5& =462   =462 &546  &&&& &4&r&4& @&4&&4&G݀&&&&f    s   C K  &=462	#"'32 =462 !2#!"&463!5&'"/&4762%4632e*&4&i76`al&4& &&&& }n

R



R
zfOego&&5`3&&&4&&4&D

R



R
z v        "  !676"'.5463!2@@w^Cct~55~tcC&&@?J V|RIIR|V &&           # G  !!%4&+";26%4&+";26%#!"&546;546;2!546;232@@ @@L44LL4^B@B^^B@B^4L   N 4LL4 4L`B^^B``B^^B`L      L   4&"2%#"'%.5!#!"&54675#"#"'.7>7&5462!467%632 &4&&4@ o& &}c ;pG=(8Ai8^^.&4&&4&`	`fs&& jo/;J!#2
 KAE*,B^^B!`	   $   -   4&"2#"/&7#"/&767%676$!28P88PQr	@U	@
{`PTP88P8P`
	@U	@rQ           !6'&+!!!!2Ѥ8̙e;<*@8 !GGGQII            %764'	64/&"2  $$ f3f4:4^aaf4334f:4:^aa         %64'&"	2  $$ :4f3f4F^aa4f44f^aa         764'&"27	2  $$ f:4:f4334^aaf4:4f3^aa            %64/&"	&"2  $$ -f44f4^aa4f3f4:w^aa   @    7!!/#35%!'!%j/djg2|855dc b    @   !	!%!!7!FG)DH:&HdS)         U   4&"2#"/ $'#"'&5463!2#"&=46;5.546232+>7'&763!2&4&&4f
]wq4qw]	`dC&&:FԖF:&&Cd`4&&4&	]]	`d[}&&"uFjjFu"&&y}[d       #  2#!"&546;4   +"&54&" (88(@(88( r&@&Ԗ 8((88(@(8@&&jj           ' 3   "&462 &         .  > $$  Ԗ>aX,fff^aaԖԖa>TX,,~ffff@^aa          /  +"&=46;2+"&=46;2+"&=46;28((88((8 8((88((8 8((88((8 (88((88((88((88((88((88           /  +"&=46;2+"&=46;2+"&=46;28((88((88((88((88((88((8 (88((88(88((88(88((88        5 E  $4&"2%& '&;26%&.$'&;276#!"&5463!2 KjKKjf	
\
w@wwwjKKjK"Hܚf


	@www             $64'&327/a^  !  ^aaJ@%%	  65   /  	64'&"2	"/64&"'&476227 <ij6j6u%k%~8p8}%%%k%}8p8~%<<ij4j4t%%~8p8~%k%%%}8p8}%k          54&#!"3!26#!"&5463!2 &&&& w@www@&&&&:@www        /  #!"&=463!24&#!"3!26#!"&5463!2@^BB^^B@B^www@w@@2@B^^BB^^ww@w        +#!"'&?63!#"'&762(@	@(@>@%%%         !232"'&76;!"/&76 ($>(		 J &%       $  %64/&"'&"2#!"&5463!2ff4-4ff4fw@wwwf4f-f4@www         /  #5#5'&76	764/&"%#!"&5463!248`# \P\w@www4`8#@  `\P\`@www        )  4&#!"273276#!"&5463!2 & *f4' w@www`&')4f*@www     % 5  	64'&"3276'7>332#!"&5463!2`'(wa8!

,j.(&w@www`4`*'?_`ze<	bw4/*@www           - .  6  $$     (r^aaO (_^aa       -  "'&763!24&#!"3!26#!"&5463!2yB((@ w@www]#@## @@www       -  #!"'&7624&#!"3!26#!"&5463!2y((@B@u@ w@www###@@@www       -   '&54764&#!"3!26#!"&5463!2@@####@ w@wwwB((@@www      `  %#" '#"&=46;&7#"&=46;6 32/.#"!2#!!2#!32>?6#!"'?_BCbCaf\	+~2	

	}0$q90r pr%Dpu       ?  #!"&=46;#"&=46;54632'.#"!2#!!546;2Da__	g	
*`-Uh1߫}
	$^L    4   b  +"&=.'&?676032654.'.5467546;2'.#"ǟB{PDg	q%%Q{%P46'-N/B).ĝ9kC<Q7>W*_x*%K./58`7E%_	,-3
cVO2")#,)9;J)"!*
#VD,'#/&>AX      >  ++"' '&=46;267!"&=463!&+"&=463!2+32Ԫ$
		pU9ӑ@/*fo	VRfqf=S     E  !#"&5!"&=463!5!"&=46;&76;2>76;232#!!2#![ 

%
)
	"JgUhBW&WXhUg        8   4&#!!2 #!!2#!+"&=#"&=46;5#"&=46;463!2j@jog|@~vvu            n  #467!!3'##467!++"'#+"&'#"&=46;'#"&=46;&76;2!6;2!6;232+32QKt# #FNQo!"դѧ!mY

Zga~bm]

[o"U+, @h
h@@Xhh@   8  3 H \  #5"'#"&+73273&#&+5275363534."#22>4.#2>ut3NtRP*Ho2
Lo@!R(Ozh=,G<X2O:&D1A.1G$<2I+A;"B,;&$LGlF/ 3D;a$8$".!3!
.          3!#!"&5463! 8( 8((88(  h (8(88(@(8         ( 8 H  !!#!"&5463!54&#!"3!2654&#!"3!2654&#!"3!26(D 8((88( 8@@@$(88(@(8(8 @@@@@@   " }  
 $ B R  3/&5##"'&76;46;232!56?5"#+#5!76;5!53'#3!533H

Dq		x7	K//KFh/"		@`Z		sYwjjjjj     " }  
 $ 4 R  %3/&5##"'&76;46;232!53'#3!533!56?5"#+#5!76;5H

K//KFq		x7	h/"		@`jjjjjZ		sY
w  "     ) 9 I Y  %#"'&76;46;232#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2

 @@  `		@`     "     ) 9 I Y  #!"&=463!2%#"'&76;46;232#!"&=463!2#!"&=463!2#!"&=463!2   

@@ r		@`r    "   
 $ C V  %4&#"326#"'&76;46;232%#"'&'73267##"&54632!5346=#'73BX;4>ID2F

8PuE>.'%&TeQ,jm{+>R{?jJrL6V		@`7>wmR1quWei/rr:Vr     "   
 $ 7 V  4&#"326#"'&76;46;232!5346=#'73#"'&'73267##"&54632BX;4>ID2F

+>R{8PuE>.'%&TeQ,jm{?jJrL6		@`rr:Vr3>wmR1quWei    @   \  %4&#"326#!"&5463!2+".'&'.5467>767>7>7632!2 &%%&&&& &7.'	:@$LBWM{#&$h1D!		.I/!	Nr&&%%&&&&V?, L=8=9%pEL+%%r@W!<%*',<2(<&L,"r       @    \  #"&546324&#!"3!26%#!#"'.'.'&'.'.546767>; &%%&&&& &i7qN	!/I.		!D1h$&#{MWBL$@:	'.&&%%&&&&=XNr%(M&<(2<,'*%<!W@r%%+LEp%9=8=L       	   + = \ d       %54#"327354"%###5#5#"'&53327#"'#3632#"'&=4762#3274645"=424'.'&!  7>76#'#3%54'&#"32763##"'&5#327#!"&5463!2BBPJNC'%!	B?)#!CC $)54f"@@
B+,A

A+&+A
ZK35N #J!1331CCC $)w@www2"33FYF~(-&"o4*)$(*	(&;;&&:LA38334S,;;,WT+<<+T;(\g7x:&&::&&<r%-@www       	   + = [ c }     #"'632#542%35!33!3##"'&5#327%54'&#"5#353276%5##"=354'&#"32767654"2 '.'&547>76 3#&'&'3#"'&=47632%#5#"'&53327''RZZ:kid YYY.06	62+YY-06	R[!.'CD''EH$VVX::YX;:Yfyd/%jG%EC&&CE%O[52.[$C-D..D^^* ly1%=^I86i077S3
$EWgO%33%OO%35	EEFWt;PP;pt;PP;pqJgTFQ%33&PP%33%R7>%3!+}   {  '  +"&72'&76;2+"'66;2U
&
	(P

*'eJ."-dZ-n -         ' 7  4'&+";27&+";276'56#!"&5463!2~}		7e 	۩w@www"$Q#'!#@www            /   4'&327$ '.'.4>7>76   "!! jG~GkjGGk[J@&&
@lAIddIAllAIddIA   @       	'5557	,VWQV.RW=?l%l`~0            !#!#%777	5!	R!!XCCfff݀# `,{{{`          O g   4&"2  &6 $"&462$"&62>7>7>&46.'.'.  '.'&7>76  Ԗ HR6L66LGHyU2LL2UyHHyU2LL2UyHn
X6X

XX
ԖԖH6L66L6L2UyHHyU2LL2UyHHyU2Ln6X

XX

           2#!"&5463 4&"2$4&"2ww@ww||||||w@www|||||||       	   !3	37!  $$  n6^55^h
^aaM1^aa    P 
  * C g  '.676.7>.'$7>&'.'&'? 7%&'.'.'>767$/u5'&$I7ob?K\[zH,1+.@\7<?5\V,$Vg.GR@ 7U,+!	#	"8$}{)<?L RR;kr,yE[z#	/1
"#	#eCI0/"5#`	"84~&p)4	2{H-.%W.L>       ' : Y i  4&67&'&676'.'>7646&' '7>6'&'&7>7#!"&5463!2PR$++'TJXj7-FC',,&C."!$28h/"	+p^&+3$i0(w@www+.i6=Bn\C1XR:#"'jj8Q.cAj57!?"0D$4"P[&2@www     D   "  %.5#5>7>;!!76PYhpN!HrD0M C0N#>8\xx: W]oW-X45       /  %'#.5!5!#"37>#!"&5463!2p>,;$4
 5eD+WcEw@wwwK()F
,VhV^9tjA0/@www  @     #"'&76;46;23

	 &

         ++"&5#"&7632	^

c &

     @    #!'&5476!2  &

^

b	        '&=!"&=463!546
 &

	
     q  & 8  #"'&#"#"5476323276326767q'T1[VA=QQ3qpHih"-bfGw^44O#A?66%CKJA}}  !"䒐""A$@C3^q|z=KK?6lk)           %!%!VVuuu^-m5w}n      ~    7 M [   264&"264&"2"&546+"&=##"&5'#"&5!467'&766276#"&54632    *<;V<<O@-K<V<<+*<J.@kclGH__H<+*<<*+<    <*R+<<+*<f.@+<<++<<+@.7uu7**R+<<++;; 	      "$1G  #5472&6&67><&4'>&4.'.'.'.'.'&6&'.'.6767645.'#.'6&'&7676"&'&627>76'&7>'&'&'&'&766'.7>7676>76&6763>6&'&232.'.6'4.?4.'&#>7626'.'&#"'.'.'&676.67>7>5'&7>.'&'&'&7>7>767&'&67636'.'&67>7>.'.67	\
U7	
J#!W!'	"';%
k	)"	
	'

/7* 		I	,6
*&"!O6*O $.(	*.'
.x,	$CN	
		*	
8		
7%&&_f&
",VL,G$3@@$+
"


V5 3"	""#dA++
y0D-%&n4P'A5j$9E#"c7Y
6"	&
8Z(;=I50' !!eR


"+0n?t(-z.'<>R$A"24B@(	~	9B9,	*$				<>	?0D9f?Ae 	.(;1.D	4H&.Ct iY% *	
7J	 <W0%$	
""I!*D	 ,4A'4J"	.0f6D4pZ{+*D_wqi;W1G("%%T7F}AG!1#% JG3         ' . 2 > V b  %&#'32&'!>?>'&' &>"6&#">&'>26 $$  *b6~#= XP2{&%gx| .W)oOLOsEzG<	CK}E	$MFD<5+
z^aa$MWM1>]|YY^DեA<KmE6<"@9I5*^aa       > ^  4./.543232654.#"#".#"32>#"'#"$&547&54632632':XM1h*+D($,/9p`DoC&JV<Z PA3Q1*223IoBkែhMIoPែhMIoP2S6,M!"@-7Y.?oI=[<%$('3 -- <-\%FuPoIMhPoIMh    ,  # ? D  76&#!"7>;267676&#!"&=463!267
#!"'&5463!26%8#!&&Z"M>2!	^I7LRx_@>MN""`=&&*%I},
		L7_jj9          /  %4&#!"3!264&#!"3!26#!"&5463!2  &&&&  &&&&         1 9  #"'#++"&5#"&5475##"&54763!2 "&462 8(3-	&B..B&	-3(8 IggI `(8+Ue&.BB.&+8(kk`      % -  "&5#"&5#"&5#"&5463!2 "&462 8P8@B\B@B\B@8P8pPPp@`(88(`p.BB.0.BB.(88(Pppͺ      !  %>&'&#"'.$ $$ ^/(V=$<;$=V).X^aaJ`"(("`J^aa    ,   I   4."2>%'%"/'&5%&'&?'&767%476762%6[՛[[՛oܴ
 
		$$	"	$$		՛[[՛[[5`

^^

2``2

^^

`     1  %#"$54732$%#"$&546$76327668ʴhf킐&^zs,!V[vn)	6<ׂf{z}))Ns3(  @   +   4&#!"3!2#!"&5463!2#!"&5463!2@& && f&&&&@& && &4&&4& @&&&& && &&    ` B H   +"/##"./#"'.?&5#"&46;'&462!76232!46 `&C6@Bb03eI;:&&&4L4&F
Z4&w4) ''5r&4&&4&&4    }G   3#&/.#./.'&4?63%27>'./&'&7676>767>?>%6})N@2*& @P9A
#sGq]
#lh<*46+(	
<5R5"*>%</
 '2@ 5d)(=Z&VE/#E+)AC
(	2k<X1$:hI(B"	!:4Y&>"/	+[>hy
	    K 
  ! / U i   %6&'&676&'&6'.7>%.$76$% $.5476$6?62'.76&&'&676%.76&'..676#"NDQt	-okQ//jo_		%&JՂYJA-.--
9\DtT+X?*<UW3'	26$>>W0{"F!"E ^f`$"_]\<`F`FDh>CwlsJ@;=?s:i_^{8+?`)O`s2RDE58/K       r 	    #"'>7&4$&5mī"#̵$5$"^^W=acE*c      z  k  ./ "&4636$7.'>67.'>65.67>&/>z X^hc^O<q+f$H^XbVS!rȇr?5GD_RV@-FbV=3!G84&3Im<$/6X_D'=NUTL;2KPwtPt= 

&ռ,J~S/#NL,8JsF);??1zIEJpqDIPZXSF6[?5:NR=;.&1          +!"&=!!%!5463!2sQ9Qs***sQNQsBUwwUBF H CCTww      % 1   #"&=!"&=463!54632.  6  $$ 		`?(r^aa		
(_^aa         % 1  #!#"'&47632!2.  6  $$ 		@	`(r^aa
?		@	(_^aa        /  #"'&476324&#!"3!26#!"&5463!2 &@& @ w@www&@B@&@@www          "&462  >& $$  Ԗ*(r^aaԖԖ (^aa       ]  6  #"$547 32>%#"'!"&'&7>32'!!!2f:лѪz~u: ((%`V6B^hD%i(]̳ޛ	*>6߅r#!3?^BEa߀#9       # 3  6'&632#"'&'&63232#!"&5463!2
Q,&U#+' ;il4L92<D`w@www`9ܩ6ɽ]`C477&@www       D  +"&5#"'&=4?5#"'&=4?546;2%6%66 546;2
	
	wwwwcB
G]B
Gty]ty      # 3 C  #!+"&5!"&=463!46;2!24&#!"3!26#!"&5463!2@`@`^BB^^B@B^www@w@`@`2@B^^BB^^ww@w        ' / ? P  +5#"&547.467&546;532!764'!"+32#323!&ln@:MM:@nY*Yz--zY*55QDDU9pY-`]]`.X /2I$	t@@/!!/@@3,$,3$p$00&*0&&!P@     R V  2#"&/#"&/#"&546?#"&546?'&54632%'&54632763276%>S]8T;/M77T</L7=Q7,i<R7,5T</L666U;/M5<U<,i6iQ=a!;;V6-j;V6-5	P=/L596Q</L5<U6-i;V7,7O;-I68i;k         ) I  2#!"&5463#9"'.'.'3!264&#!"2>7%>ww@ww!"5bBBb./*
8(@(87)(8=%/'#?w@www#~$EE y &L(88e):8(%O r		

		O           ? G Q a q  47&67>&&'&67>&"&#6$32#"#"'654   $&6  $6&$ CoL.*KPx.* 
iSƓi
7J?~pi{_Я;lLUZ=刈刈_t'<Z :!
	@!
j`Q7$ky, Rfk*4LlL=Z=刈           &$&546$7%7&'5>]5%w  &P?zrSF!|         & 0  	##!"&5#5!3!3!3!32!546;2!5463)
)     ;));;)) &&        &@@&&&    	   6   $&727 "'%+"'&7&54767%&4762֬>4Pt+8?::
		
::AW``EvEEvE<."e$IE&O&EI&{h.`  m  "  &#"& '327>73271[>+)@(]:2+D?*%Zx/658:@#N
C=E(oE=W'c:     #  !#"$&6$3 &#"32>7! ڝyy,{ۀہW^F!LC=y:yw߂0H\R%          " N ^   '&76232762$"&5462"&46274&"&'264&#"'&&#"32$54'>$ $&6$ G>>0yx14J55J5J44J5Fd$?4J55%6E#42F%$fLlLq>>11J44%&4Z%44J54R1F$Z-%45J521Z%F1#:ʎ 9LlL          # Q a  "'&7622762%"&5462"&546274&#"&'73264&#"'&&#"32654'>#!"&5463!255**.>.-@-R.>.-@-<+*q6- -- 0<o,+< 3w@www55**.. -- .. --G*<N' ,-@-+*M <*2zz1@www      0 <  754&""&=#326546325##"&='26  $$ bZtt&sRQsZ<tsQ^aa>OpoOxzRrqP6z~{{Prr^aa    ]  0  54&"#"&5!2654632!#"&57265&<T<H<T<H<T<8v*<<*
+;;+l:=:*;;*         %!!"!!26#!"&5463!2@ ]]@w@www] @@www         	     % )  3!!#335!!5!5!%#!!5!5!%#HH{RHH{GG{)qGRRqRRq     	  # 0 @   #"'632 #"'632 &#"7532&#"#7532#!"&5463!2L5+*5L5+*5~}7W|3B}}JC7=}w@wwwDZQ[1N:_)i$)@www   
 )	             6.#&#"'&547>'&#".'&'#"&5467%&4>7>3263232654.547'654'63277.'.*#">7?67>?>32#"'7'>3'>3235?KcgA+![<E0y$,<'.cI
	,# '!;7$=ep	//7/
D+R>,7*
2(-#=
	/~[(D?G  |,)"#+)O8,+'6	y{=@0mI#938OAE`
-
)y_/FwaH8j7=7?%a	%%!?)L
J9=5]~pj
 %(1$",I $@((
+!.S		-L__$'-9L	5V+	
	6T+6.8-$0+t|S1       6 ]   &#"'&#"67>76'&'&#"67>32764.#"#.32>67>7 $&54>7>7>7rJ@"kb2)W+,5/1		#

Z
-!$IOXp7sLCF9vz NAG#/ 5|Հ';RKR/J#=$,9,+$UCS7'2"1
 !/
,
/--ST(::(ep4AM@=I>".)xΤlsY|qK@
%(YQ&NEHv~        < Z x  '#"&5467&6?2?'&"/.7.546326#"&'&/7264/7'764&"'?>>32.AUpIUxYE.A%%%h%%hJ%D,FZxULsTgxUJrVD%hJ%@/LefL.C%Jh%CVsNUxϠ@.FZyUHpVA%h&%%%Ji%CWpIUybJ/Uy^G,D%Jh%@UsMtUC%hJ%C-Kfy        E X [ _ g j    &/&'.''67>7>7&'&'&'>76763>7>#&'&'767672'%'7'+"&'&546323267>7%#"'4'6767672,32,+DCCQLDf'
%:/d
B	4@}&!0$?Jfdf-.=6(:!TO?
!IG_U%
.j+.=;	5gN_X	"
##
292Q41*6nA;|BSN.	%1$6	#nk^        ' 7 G W g w       2+"&5463#!"&5463!254&+";2654&+";2654&+";2654&+";2654&+";2654&+";2654&+";2654&+";2654&+";26#"&=! B^^BB^^B:FjB^8((`(   `(8^BB^^B@B^"vE j^B (8(`( 8(         / ? O _ o         /?  2#!"&5463;26=4&+";26=4&+";26=4&+";26=4&+"54&+";2654&+";2654&+";2654&+";2654&+";2654&#!"3!2654&+";2654&+";2654&+";2654&+";2654&+";2654&+";2654&+";2654&+";2654&+";26@&& &&@@@@@@@@@@@@@@@@@@ @@@@@@@@@ @@@@@@@@@@ &&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    @`  %  	"&5#"&5&462!762$"&462B\B@B\B8PpP8.BB..BB.8$P88P広        3 C Q  #".54>32#".546322#"&#"#"54>%".54>32%2#"&54>&X=L|<&X=M{<TMLFTMLFv"?B+D?BJpH=X&<{M=X&<|dMTFLMTF(<kNsI<kNsPvoJPwo/s.=ZYVӮvNk<JsNk<IshwPJovPJo  @     +"&7.54>2r_-$$-_rUU%&&5%ő            '-"'.546762@FF$@B@$.&,&.]]|q #<<# (B  B               B  %'-%'-'%'-"'%&'"'%.5467%467%62@ll@ll,@GG&!@@@@@@!&+#+#6#+$*`:p:px
p=`$>>$&@&@

@&p@       	  & . A  !!"!&2673!"54 32!%!254#!5!2654#!%!2#!8Zp?vdΊens6(N[RWu?rt1SrF|iZ@7މoy2IMC~[R yK{T:         % , A G K  2#!"&5463!!2654'654.#532#532"&5!654&#"327#2#>!!ww@ww~uk'JTMwa|
DH>I1qFj?w@wwwsq*4p9O*¸Z^qh LE
"(nz8B
M         ' ?   "&462 4&#"'.'324&#"3267 ##"&/6326 32 .ʏhhMALR vGhг~~KyO^ʏʏВ*LM@!<I~~t\0          C M   4&"2 #"&'676&/632#!"&=3267%2654&#"&#"%463!2"&4632rqqtR8^4.<x3=RRw@w_h
YӖ	K>שwwȍde)qrOPqȦs:03=<x!m@wwE\xgӕє%wwdȎ  V   - < K \  %.'.>7'.?67'67%'>&%'7%7./6D\$>	"N,?a0#O1G9'/P(1#00($=!F"9|]"RE<6'o9%8J$\:\HiTe<?}V#oj?d,6%N#"
HlSVY]C=    @     C   4&"2!.#!" 4&"2+"&=!"&=#"&546;>3!232^^^Y	 	^^^`pp pp`]ib bi]~^^^e^^^ PppPPppP]^^]       3 ; E M  2+"&=!"&=#"&546;>;5463!232 264&"!.#!" 264&" ]`pp pp`]ibbi^^^dY	 	!^^^]@PppP@@PppP@]^^] ^^^e^^^      3  $#!#!"&5467!"&47#"&47#"&4762++&2
$$
2&&&4&&Z4&&##&&4&4&44&m4&m      + D P  4'&#"32763232674'&!"32763 3264'&$#"32763232> $$ g* o`#ə0#z#l(~̠)-g+^aaF s"	+g(*3#!|#/IK/%*%D=)[^aa        	!!!'!!77! ,/,-a/G      	 t  % / ; < H T b c q         %7.#"32%74'&"32765"/7627#"5'7432#"/7632#"5'7432#"&5'74632	#"/6327#"/6327#"/46321"&/462"&/>21"&/567632#!.547632 632
		*
			X		

^`		

^b	c
	fuU`59u


4J
	l~		~	F	
	2		m|O, 	
ru|	u
"            ) 9    $7 $&=  $7 $&=  $7 $&=   $&=46w`ww`ww`wb` VTEvEEvETVTEvEEvET*VTEvEEvET*EvEEvEEvEEv         # ^ c u    #!"&5463!2!&'&!"&5!632#"&'#"/&'&7>766767.76;267674767&54&5&'67.'&'&#3274(8((88((`x
c`(8 !3;:A0?ݫY
	^U	47D$	74U3I|L38wtL0`((88(@(8(D9 8( Q1&(!;
(g-	Up~R2(/{E(Xz*Z%(i6CmVo8          # Q  #!"&5463!2!&'&!"&5!3367653335!3#'.'##'&'35(8((88((`x
c`(8 iFFZcrcZ`((88(@(8(D9 8( kk"	kkJ 	!	k         # S  #!"&5463!2!&'&!"&5!%!5#7>;#!5#35!3#&'&/35!3(8((88((`x
c`(8 -Kg
kL#DCJgjLD`((88(@(8(D9 8( jj	jjkkkk            # 8 C  #!"&5463!2!&'&!"&5!%!5#5327>54&'&#!3#32(8((88((`x
c`(8  G]L*COJ?0R\wx48>`((88(@(8(D9 8( jjRQxk!RY            # * 2  #!"&5463!2!&'&!"&5!!57"&462(8((88((`x
c`(8  Pppp`((88(@(8(D9 8( ppp  	          # * 7 J R  5#5#5#5##!"&5463!2!&'&!"&5##5!"&54765332264&"  <(8((88((`x
c`(8 kޑcO"jKKjK`((88(@(8(D9 8( SmmS?M&4&&4            # 9 L ^  #!"&5463!2!&'&!"&5!#"/#"&=46;76276'.'2764'.(8((88((`x
c`(8 6ddWW6&44`((88(@(8(D9 8( .	G5{{5]]$5995           # 3 C  #!"&5463!2!&'&!"&5!2#!"&5463#"'5632(8((88((`x
c`(8 4LL44LL4l			`((88(@(8(D9 8( L44LL44L	
Z
	           # 7 K [  #!"&5463!2!&'&!"&5!>&'&7!/.?'&6?6.7>'(8((88((`x
c`(8 `3333v?`((88(@(8(D9 8( &&-&&?
  '  6  #'.
'!67&54632".'654&#"32eaAɢ/PRAids`WXyzOvд:C;A:25@Ң>-05rn`H(' gQWZc[          
     -  %7'	%'-'%	%"'&54762[3[MN3",""3,3"ong$߆]gn$+)")")"         x # Z  #"&#!+.5467&546326$32327.'#"&5463232654&#"632#".#"oGn\u_MK'̨|g?CM7MM5,QAAIQqAy{b&
BL4PJ9+OABIRo?z.z
n6'+s:zcIAC65D*DRRD*wya$,@B39E*DRRD*             ' / 7     $&6$ 6277&47'  7'"' 6& 6'lLRRZB|RR>dZZ LlLZRR«Z&>«|R     !   $&54$7  >54 '5PffP牉@s-ff`-      c  6721>?>././76&/7>?>?>./&31#"$&(@8!IH2hM>'
)-*h'N'!'Og,R"/!YQG<I *1)
(-O1D+0nz3fwG2'3rd1!sF0o .q"!%GsH8@-!5|w|pgS="B2PJfhGdR 	        ( P ] l y    &$'77&7567'676'"'7&'&'7&47'6767'627''6$ '67'654'7&'7'&'&'7&'5 &$  $6 $&6$ jj:,AAS9bb9R#:j8AܔA,zC9Z04\40Z9C!B;X0,l,0X;B*A8ܔA&#9j`b9S$#R99#&A8A`䇇<Z<䳎LlLfBϬ"129,V<4!!88dpm"BV,92[P*V*P\MC

CM\P*V*P]LD

DL&BV*8*8!f!4<gmpd88!&!8*8*VB Z<䇇䇇LlL        9 E i s   %#"5432#"543275#&#"3254&'.547>54'63&547#5#"=3235#47##6323#324&"26%#!"&5463!2F]kbf$JMM$&N92<Vv;,&)q(DL+`N11MZ
%G&54	#	i<$8&@0H12F1dw@wwwB?@UTZ3%}rV2hD5%f-C#C@,nO	a7.0x2	yRuR/u%6;&$76%$56S@www     D     < H l w  %4#"324&#"32!".5475&5475.546322#654'3%#".535"&#"5354'33"&+32 #"&54632S;<;||w$+|('-GVVG-EznAC?H_`Rb]Gg>Z2&`9UW=N9:PO;:dhe\=R
+)&')-S99kJ<)UmQ/-Ya^"![Y'(<`X;_L6#)|tWW:;X          	#'#3#!"&5463!2)
p*xeשw@www0,\8@www  9    I   #"'#"&'&>767&5462#"'.7>32>4."&'&54>32JrO<3>5-&FD(=Gq@C$39aLL²L4
&)
@]vq#CO!~󿵂<ZK#*Pq.%L²LLarh({w؜\     i  &5467&6747632#".'&##".'&'.'#".5467>72765'./"#"&'&5}1R<2"7MW'$	;IS7@5sQ@@)R#DvTA;
0xI)!:>+<B76:NFcP:SC4rl+r E%.*a-(6%('>)C	6.      >  
  ! - I [   4&#"324&#"3264&#"324&#"326&#"#".'7$4$32'#"$&6$32D2)+BB+)3(--(31)+BB+)4'--'4'#!0>R	HMŰ9ou7ǖD䣣
R23('3_,--,R23('3_,--,NJ
?uWm%        #"'%#"'.5	%&'&7632! ;	`u%"( !]#c)(	            #"'%#"'.5%&'&76	! 	(%##fP_"( !)'+ŉ       4 I   #"$'&6?6332>4.#"#!"&54766$32#!"&=46;46;2 z䜬m
IwhQQhbF*@&('k@z
	
_hQнQGB'(&*eozΘ@@`             >.  $$ ffff^aa fff^aa  >   "&#"#"&54>7654'&#!"#"&#"#"&54>765'46.'."&54632326323!27654'.5463232632,-,,",:!%]&%@2(/.+*)6!	<.$..**"+8##Q3,,++#-:#"</$)

w


,*

x9-.2"'
,,
@&,,
Qw
,     ,  #"+"&5#+"&5&'&'&547676)2%2$l$#l#b~B@XXyo2$CI@5$$>$$/:yuxv)%$ 	          / ? C G  %!5%2#!"&5463!5#5!52#!"&54632#!"&5463#5!5`&& &&  && &&&& &&@& && &  & && & & && &      %  2 &547%#"&632%&546 #"'6\~~\h
~\h\ V
VVV       % 5  $4&#"'64'73264&"&#"3272#!"&5463!2 }XT==TX}}~>SX}}XS>~}w@www~:xx:~}}Xx9}}9xX}@www        / > L X d s   .327>76 $&6$32762#"/&4762"/&47626+"&46;2'"&=462#"'&4?62E0l,
*"T.D@Yooo@5D

[		

Z
Z

		[	 ``[



Z

	2
,l0
(T".D5@oooY@D,

Z

		[			[		

Z
``EZ

		[		
         5  %!  $&66='&'%77'727'%amlLmf?55>fFtuutFLlLHYCL||LY˄(E''E*(           / ? I Y i y      %+"&=46;2+"&=46;2+"&=46;2+"&=46;2%"&=!#+"&=46;2+"&=46;2+"&=46;2+"&=46;2!54!54>$ +"&=46;2#!"&=@&&@3P>P3&&rrr&&rrr
he
4LKM:%%:MKL4WT&&            % / 9  ##!"&563!!#!"&5"&5!2!5463!2!5463!2&& &  & &&   &&& i@ &&@& 7          '#5&?626J%o;j|/&jJ%p&`Jj&p/|jţ%Jk%o%    	  : g  "&5462#"&546324&#!"263662>7'&75.''&'&&'&6463!276i~ZYYZ~@OS;+[G[3YUD#o?D&G3I=JyTkBuhNV!WOhuAiSy*'^CC^'*SwwSTvvTSwwSTvvWID\_"[gq# /3qFr2/ $rg%4
HffHJ4   d       #!#7!!7!#5!VFNrmNNNN!     Y  + ? N e  %&'&'&7>727>'#&'&'&>2'&'&676'&76$7&'&767>76'6#<;11x#*#F-T93%/#0vNZ;:8)M:(	&C.J}2	%0 	^*
JF	
&7'X"2LDM"	+6
M2+'BQfXV#+]
#'
L/(eB9   
             # , 8  !!!5!!5!5!5!5#26%!!26#!"&5!5          &4& &pPPp        @@&&@!&@PppP@  *  	  9 Q  $"&54627"."#"&547>2"'.#"#"&5476$ "'&$ #"&5476$ (}R}hLK
NN
 Ud:
xx
8

 ,, |2222
MXXM
ic,>>,

		
̺
           ' / 7 ? K S c k {  4&"2$4&"2 4&"2 4&"2 4&"2 4&"2 4&"2 4&"24&"26 4&"24&#!"3!264&"2#!"&5463!2KjKKjKjKKjKjKKjKKjKKjKjKKjKjKKjKKjKKjKjKKjKLhLLhLKjKKj& && &KjKKjL44LL44L5jKKjKKjKKjKjKKjKjKKjKjKKjKjKKjKjKKjKjKKjK4LL44LLjKKjK && &&jKKjK  4LL4 4LL  	   ' E  !#"+"&7>76;7676767>'#'"#!"&7>3!2W",&7'	#$	&gpf5O.PqZZdS-V"0kqzTxD!!8p8%'i_F?;kR(`
!&)   '    
   (  2 !&6367 !	&63!2 
`B1LO(+#=) heCQg#s`f4#6q'X|0-g   	      > I Y  #6?>7&#!%'.'33#&#"#"/3674'.54636%#"3733#!"&5463!24:@7vH%hEP{0&<'VFJo1,1.F6A#L4 4LL4 4L"%	
 
7x'6O\JYFw~v^fH$ !"xdjD"!6`J 4LL4 4LL   	     $ 1 O l       -  #"326%356.#"#"326%4#"326%3#7#'#3%#7#"&546324>54#"47632&#"'"'473254&'&54323#327#"'47673#327#"546327&#7673>7&#"327#"&54632#7#"&54632654#"47632&#7673>73#7#"&54632.#"#&'#67&#"327&'3673326#!"&5463!2/>	0@[W,8 G'"5,Q4/&4/	$&J	(W" 	+Tl	+7o	_7*#)	83	(
-5G8.'3/$&I8
48+5%7%{,2,rr,2,x-2.jj.2-xL4 4LL4 4L[ <	J 2)(*(8$e '+
,1)H/	'H4///,~i6_7G*''4fE!%97+";=4FYqO" '+
,&2hh_,0(5N(ntggtnno__on 4LL4 4LL    	  
    B W b j q }    +532%+5324&+32763#4&'.546327&#"#"'3265#"&546325&#"32!26 4&"2%#'#735#535#535#3'654&+353#!"&5463!29$<=$@?SdO__J-<AA@)7")9,<$.%0*,G3@%)1??.+&((JgfJ*A!&jjjGZYGиwsswPiL>8aA	!M77MM77M3!4erJ]&3YM(,
,%7(#),(@=)M%A20C&Mee(X0&ĖjjjV	8Z8J9N/4$8NN88NN      	       # & : O [   	$?b  3'7'#3#%54+32%4+324+323'%#5#'#'##337"&##'!!732%#3#3##!"&53733537!572!56373353#'#'#"5#&#!'#'#463!2#"5#"5!&+&+'!!7353273532!2732%#54&+#32#46.+#2#3#3##+53254&".546;#"67+53254&.546;#"#'#'##"54;"&;7335wY-AJF=c(TS)!*RQ+*RQ+Y,B^9^Ft`njUM')	~PS PRm٘M77Mo7q

@)U	8"E(1++NM77Mx378D62W74;9<-A"EA0:AF@1:ؗBf~~""12"4(w$#11#@}}!%+%5(v$:O\zK?*$\amcrVlOO176Nn<!E(=<&l/<<[ZZYY891767OO7==..//cV==::z,,,,aa,,7OO7Z::;;YfcW(		"6-!c(		!5	#
bt88176tV:
&$'*9	%e#:%'*9B<<;
&(        	    # : S n       #"&54632%#76;2#"&54632%4&+";2?>23266&+"&#"3267;2 4&+"'&+";27%4&+";2?>23266&+"&#"3267;254+";27#76;2#!"&5463!23%#2%%,, _3$$2%%M>ALVb5)LDHeE:<EMj,K'-RM ~M>ARVb5)LEHeE:<EJABI*'!($rL4 4LL4 4Lv%1 %3!x*k$2 %3!;5h
n
a
!(lI;F	
	
	rp
p8;5h
t
a
!(lI;F`	#k 4LL4 4LL   
  	  
  2 H W [ l t    #"'5632#6324&'.54327&#"#"&'32767#533275#"=5&#"'#36323#4'&#"'#753276 4&"24'&#"327'#"'&'36#!"&5463!2=!9n23BD$ &:BCRM.0AC'0RH`Q03'`.>,&I / * /

8/n-(G@5$ S3=,.B..B02^`o?7je;9G+L4 4LL4 4LyE%#	Vb;A!p &'F:Aq)%)#orgT$v2 8)2z948/{8AB..B/q?@r<7(g/ 4LL4 4LL        ?  #!"&'24#"&54"&/&6?&5>547&54626=L4@ԕ ;U g3

T
2RX='8P8|5
4Ljj U;Ig@
	
`
 "*\(88(]k
          & N  4#"&54"3	.#"#!"&'7!&7&/&6?&5>547&54626;U gIm*]Z0L4@ԕ=o=CT

T
2RX='8P8|5
 U;IgXu?bl3@4Ljja`
	
`
 "*\(88(]k         / 7 [  %4&+";26%4&+";26%4&+";26!'&'!+#!"&5#"&=463!7>3!2!2 @@ @@ @@0

o`^BB^`5FN(@(NF5@@@u		@LSyuS@%44%     , < H  #" 54 32+"=4&#"326=46;2  >.  $$ ~Isy9"SgR8vHD	w
ffff^aam2N+	)H-mF+10*F		+fff^aa        b  4&#"32>"#"'&'#"&54632?>;23>5 !"3276#"$&6$3  k^?zb=ka`U4J{K_/4^W&	vx :XB0܂ff)
fzzXlz=lapzob35!2BX
G@8'	'=vN$\ff	1	SZz8zX          # (   "/+'547'&4?6276	'D^h



i%5 @%[i



h]@ ]h



i%@ 5%[i



h^@@       )  2 #"&5476 #".5327>OFi-ay~\~;'S{s:D8>)AJfh ]F?X{[TC6LlG]v2'"%B];$         + l |    %!2>7>232>7>322>7>32"&'.#"#"&'.#"#"&'.#"#546;!!!!!32#"&54>52#"&54>52#"&54>52  -P&+F) $P.-P$'#+&PZP&+#"+&P-#) $P-.P$(#+$P.-P$'#+&P-.P$+#pP@     @Pp H85K"&Z H85K"&Z H85K"&Z@Pp@@@pMSK5, :&LMSK5, :&LMSK5, :&        !!3	!	    @  @@           	#"$$3!!2 "jaѻxl alxaa j         !!3/"/'62'&63!2   'y

`I

y My

`I

y'       W `  #".'.#"32767!"&54>3232654.'&546#&'5&#"

4$%Eӕ;iNL291 ;XxR`f՝Q8TWiWgW:;*:`Qs&?RWXJ8oNU0J1F@#)
[%6_POQiX(o`_?5"$iʗ\&>bds6aP*< -;iFn*-c1B       W g  4'.'4.54632#7&'.#"#"'.#"32767'#"&54632326#!"&5463!2#$(	1$6]'
!E3P|ad(2S;aF9'EOSej]m]<*rYshpt.#)$78L*khw@wwwB
%$/$G6
sP`X):F/fwH1pdlqnmPHuikw_:[9D'@www            3   4."2>$4.#!!2>#!".>3!2QнQQнQQh~wwhf ff нQQнQQнQZZQffff           #  >3!2#!".2>4."f ff нQQнQQffffQнQQн      	      , \  !"&?&#"326'3&'!&#"#"'     5467'+#"  327#"&463!!'#"&463!2632(#AHs9q  ci<=
#]<OFA!re&&U&& ![eF U?g4_a?b+r7&4&&4&p,           + K   4&"2$4&"2.#!"3!264&#!"3!2#"&=!"&=#47>$ KjKKjKKjKKjH#j#H&&&KjK KjKg	V	ijKKjKKjKKjK..n(([5KK55KK5[poNv<<vN:f      . R   #!"&463!24'!"&5463!&$#"!2#!32>+#" '#"&546;&546$32 322$B$22$$*$22$Xڭӯ$22$tX'hs2$ϧkc$22$1c$2F33F3VVT2#$2ԱVT2#$2g#2UU݃
2$#2UU1݃2         , u   54#"67.632&#"32654'.#"32764.'&$#"7232&'##"&54732654&#"467&5463254632>32#"'&ru&9%"*#͟<yK0Og" &9B3;㛘8s%+DWXRD= @Y%	!Q6R!4M8+6rU^z=)RN.)C>O%GR=O&^opC8pP*bY
_#$N Pb@6)?+0L15"4$.Es
5IQ"!@h"Y7e|J>ziPeneHbIlF>^]@n*9         6 [ _  3#"&54632#.#"32%3#"&54632#.#"326%4&'.'&! ! 7>7>!=39?
6'_>29?
5'17m-VU--,bW. 뮠@Fyu0HC$뮠@Fyu0HC$L=??<=! A	<          `  ;  +"&54&#!+"&5463!2#!"&546;2!26546;2pЇ0pp@I pp        > S c  +"&=46;254&+"&+";2=46;2;2=46;2;2%54&#!";2=;26#!"&5463!2A5DD5A7^6a7MB55B7?5B~```0`rr5A44A5v5AA5f*A``0`       	   !!!!	#!"&5463!2ړ7H7jv@vvv'  :@vvv          M U d k p u {                  #"'!"'!#"&547.547.54674&547&54632!62!632!#!6227'!%!"67'#77!63!!7357/7'%#	%'3/&=&'	5#?&5476 !p4q"""6" 'h*[|*,@?wAUMpV@˝)Ϳw7({*U%K6=0(M		"!O		dX$k
!!!b	
[TDOi
@6bxBAݽ5ɝ:J+3,px1Fi
(R         463!#!"&5%'4&#!"3`а@..@A-XfB$.BB..C     } 
   )   &54$32 &'  % &&'6 7"w`Rd]G{o]>p6sc(@wgmJPAjyYWa͊AZq{HZ:<dv\gx>2ATKn       + ;  "'&#"&#"+6!263 2&#"&#">3267&#">326e~└Ȁ|隚Ν|ū|iyZʬ7Ӕްr|uѥx9[[9jj9ANN+,#ll"BS32fk     [   / ? \  %4&+";26%4&+";26%4&+";26%4&+";26%#!"&5467&546326$32]]eeeeee$~i
qfN-*#Sjt2"'qCB8!   '  >    	      ! % ) - 1 5 9 = A E I M Q U Y ] a g k o s w {           !	%!	5!#5#5#5#5#57777????#5!#5!#5!#5!#5!#5!#5!#5#537#5!#5!#5!#5!#5!#55#535353535353%"&546326#"'#32>54.&54>3237.#" Q%%%%%%%%%?iiihOiixiiyiixiiArssrrssr%sssrrssNs%%%%%%%%%%'<D<'paC_78#7PO7)("I$	75! RAb(ssssssssss"/!".""."!."".!/^.".^.".]/".$$$$$$$$$$$$$$$$Os$$$$$$$$$$$$$$sO$sssssssssss#}$)	13?*
,./:
-      s    *   4&"2$4&"2#!"&5463!2!5463!2_?--??-,@@,-?pq8,??,D,??,,??      (    Z  2#".#"3267>32#".54 3232654&#"#"&54654&#"#"&547>326ڞUzrhgrxSПdU <ex՞Zf_gן:k=2;^9Œ7\xx\7K=5XltֆWW{e_%N%,%CI%      # + W   4&+54&"#";26=32 "&462"&462!2#!"&54>7#"&463!2!2&&4&&&&4&KjKKjKjKKj && &%&& &&4&&&&4&&&5jKKjKKjKKjK %z
0&4&&3D7&4&%&          ' S   4&"4&"'&"27 "&462"&462!2#!"&54>7#"&463!2!2 &4&4&4& 4 KjKKjKjKKj && &%&& &&4&%&&ے&4  "jKKjKKjKKjK %z
0&4&&3D7&4&%&           	    &  	!'!	!%!!!!%"'.763!2o]FooZY@:@!! gf /  /      I    62'"/"/"/"/"/"/"/7762762762762762762%"/77627&6?35!5!!3762762'"/"/"/"/"/"/%5#5!4ZSS6SS4SS4SS4SS4SS4SS4ZSS4SS4SS4SS4SS4SS4S-4ZSS4S@   4SS4ZSS6SS4SS4SS4SS4SS4S@ ZSSSSSSSSSSSSSSZSSSSSSSSSSSSSyZRRR@%:=
:+:
=RRZSSSSSSSSSSSSS         C v  !/&'&#""'&#"	32>;232>7>76#!"&54>7'3&547&547>763226323@``` 
VFaaFV
$.

.$yy	.Q5ZE$ ,l<l, $ER?Y*@@2	!#""#!	yy=rna@@(89*>*%>>%*>*98(QO!       L \ p  '.'&67'#!##"  327&+"&46;2!3'#"&7>;276;2+6267!"'&7&#"(6&#"#"'DgOOG`n% ELL{@&&Nc, sU&&!Fre&&ss#/,<=
#]gLoGkP'r-n&4&2-ir&&?o 4_      5 O W  ! .54>762>7.'.7>+#!"&5#"&5463!2"&462{{BtxG,:`9(0bԿb0(9`:,GxtB&@& &@&K55K`?e==e?1O6#,
#$
,#6OO&&&&5KK      ?  !"'&'!2673267!'.."!&54632>32 1
4q#F""8'go#-#,"tYg>oP$$Po> 	Zep#)R0+I@$$@I+     + 3   32++"&=#"&=46;.7>76$     @ᅪ* r@@r      ' /  2+"&5".4>32!"&=463      &@~[՛[[u˜~gr&`u՛[[՛[~~@r         = E   32++"&=#"&=46;5& 547&'&6;22676;2      >``@``ٱ?E,,=?rH@``@GݧH`jjr     B J  463!2+"&= 32++"&=#"&=46;5.76 76%#"&5        &@~``@`` vX r&@``@+BF`r       k s  463!2+"&= 32++"&=#"&=46;5& 547'/.?'+"&5463!2+7>6 %#"&5        &@~``@``~4e	
0
	io@& jV	
0
	Z9 r&@``@Gɞ5o
,
sp &@k^
,
c8~~`r       8 > K R _  32++"&=!+"&=#"&=46;.76 766 6'27&547&#"  &'2  #"@ @'Ϋ'sggsww@sgg@@-ssʃl99OOr99     F P ^ l  463!2+"&= $'.7>76%#"&=463!2+"&=%#"&54'>%&54 7.#" 2 54&'   &@L?CuГP	vY  &@;"  ޥ5݇ޥ5`&_ڿgwBF@&J_	s&&?%x%x      J P \ h  463!2+"&= '32++"&=#"&=46;5.76 76632%#"&56'  327&7&#"2  #" &@L? ߺu``@``}ຒɞ  ueeu9uee&_"|N@``@""|a~lo99r9@9       ; C  2+"&5"/".4>327'&4?627!"&=463      &@Ռ		.	
N~[՛[[u˜N		.	
gr&`֌
	.		Ou՛[[՛[~N
	.		@r       9 A   '.'&675#"&=46;5"/&4?62"/32+     '֪\
	.		4		.	
\r|ݧ憛@\		.	

	.		\@r     ~ 9 A  "/&4?!+"&=# #"$7>763546;2!'&4?62      m		-

@ݧ憛@&

-		@rm4

-		ٮ*		-

r           +"&5& 54>2      @[՛[rdGu՛[[r                 ".4>2 r[՛[[՛r5՛[[՛[[      $  2#!37#546375&#"#3!"&5463#22#y/Dz?s!#22#2##2S88	2#V#2        L  4>32#"&''&5467&5463232>54&#" #"'.Kg&RvgD
$*2%	+Z hP=DXZ@7^?1۰3O+lh4`M@8'+c+RI2
\ZAhSQ>B>?S2Vhui/,R0+	ZRkm      z  + > Q   2#"'.'&756763232322>4."7 #"'&546n/9bLHG2E"D8_
pdddxO"2xxê_lx2X	
!+'5>-pkW[CI
I@50Oddd˥Mhfxx^ә  	           # ' + /  7!5!!5! 4&"2!5! 4&"24&"2!!!     8P88P   8P88P88P88P     P88P8 P88P88P88P8          + N    &6 !2#!+"&5!"&=463!46;23!#!"&54>32267632#"_>@`` L4 Dgy 6Fe=OOU4L>``4L2y5eud_C(====`L4       3 V    &6 #"/#"/&54?'&54?6327632#!"&54>32 7632_>																%%Sy 6Fe=J%>																%65%Sy5eud_C(zz.!6%          $  !2!!!46;2 4&"2!54&#!" &   &&@ԖV@& &@  &&ԖԖ@&             3!!!	!5!'!53!!	# 7IeeI7 CzC l @@  @            #  2#!"&?.54$3264&"!@մppp  ((ppp              # + /  2#!"&?.54$3264&"! 264&"!@մ^^^@^^^@ ((^^^  ^^^         v    (  #"'%.54632	"'% 	632U/@k0G,zD#[k#
/t g
FGz        	#'#3!)
p*xe 0,\8     T   # / D M %2<GQ^lw  &'&676676&'&7654&'&&546763"#"'3264&7.>&'%'.767&7667&766747665"'.'&767>3>7&'&'47.'.7676767&76767.'$73>?>67673>#6766666&'&6767.'"'276&67&54&&671&'6757>7& "2654&57>&>&'5#%67>76$7&?5.''&'&'#'""#''&'&'&'65.'&6767.'#%&''&'#2%676765&'&'&7&5&'6.7>&5R4&5S9W"-J0(/rV"-J0(.)#"6&4pOPppc|o}vQ[60XQW1V	#5X		N"&.
)
D>q J:102(z/=f*4!>S5b<U$:I o<G*	,&"O	X5
#!
	R N#C83J*R	!(D#%37	;$-.(,覦6ji
	")9
E%!B83
	j96/,	:QD')yX#63Vba	,
UeLPA@*	̳`Xx*&E
V36%	B3%	B3XA	#!.mU"A	#!.mUB-#2+Jiiim-C<I(m8qF/*)0S
		
I
E5&+>!%
(!$p8~5..:5I~T
4~9p# !
)& ?()5F	1		
 d%{v*: @e
s|D1d {:*dAA|oYk'&<tuut&vHCXXTR;w71	Z*&'1	9?	.$Gv5k65P<?8q=4a	SC"1#</6B&!ML	^;6k5wF1<P   C	   ;  $"&462"&46232>.$.`aasa``Z9k'9؋ӗa-*Gl|Me_]`F&OܽsDD!/+``aa``a1<YK3(
 /8HQelAZ3t_fQP<343J;T7Q           + ? K g w     $6&$  $&62+"5432+"&=.54  $;26=462;26=4& 4&#!"3!26)߄4R4߄mlLr {jK#@#Qa^@@`&&&&߄4R4ĎLlLN @K5#:rr:#5K^aa``]]`` && &&       	     /  !3#4&#!"3!265##!"&5463!22 @ K5^BB^^B@B^5K    @5KB^^BB^^BK        	     /  !2##!"&5463!2#4&#!"3!265  5KK5^BB^^B@B^@   K55KB^^BB^^B` @      	     /  !2##!"&5463!2#4&#!"3!265  5KK5^BB^^B@B^@   K55KB^^BB^^B` @      	     /  !2##!"&5463!2#4&#!"3!265  5KK5^BB^^B@B^@   K55KB^^BB^^B` @      	    +  2##!"&5463!2#4&#!"3!2655KK5^BB^^B@B^@K55KB^^BB^^B` @    {    #!&'#"'&547632m*
0(('($0K
**      %   3#!3# '!#53 5#534!#53 6!3@@@@pp@@@@@pp@`     	          + / 7 ; A  #3!5!!3#!!5!35!355#%53#5!#35#!!!!!!!!                           
   	    # ' + / 3 ? C G W  #3!5!!35!!3#!!5!#!5!3535!355#%#3%!53#5!#35#!5##5!3!5!3!5	               !"&5463!2!"! `(88(@(8`(8}22R `8(@(88(`8HR22         #  #6?6%!!!46#!"&5463!2x  8(`( (88(@(8 
  (8 (`(8(@(88      	    ' A T d   +5326+5323##"' %5&465./&76%4&'5>54&'"&#!!26#!"&5463!2

iLCly5)*Hcelzzlec0hb,,beIVB9@RB9J_L4 4LL4 4L44%2"4:I;p!q4bb3p(P`t`P(6EC.7BI6 4LL4 4LL    	     . >  $4&'6 #".54$ 4.#!"3!2>#!"&5463!2Zjbjj[wٝ]>oӰٯ*-oXL4 4LL4 4L')꽽)J)]wL`ֺ۪e 4LL4 4LL           ;  4&#!"3!26#!"&5463!2#54&#!";#"&5463!2@^BB^^B@B^B^^B@B^`@MB^^B@B^^>^B@B^^         5 = U m  	!	!!2#!"&=463!.'!"&=463!>2!2#264&"".54>762".54>762  ?(``(?b|b?B//B/]]FrdhLhdrF ]]FrdhLhdrF@@@(?@@?(@9GG9@/B//BaItB!!BtIѶ!!ьItB!!BtIѶ!!ь        - M  32#!"&=46;7&#"&=463!2#>5!!4.'.46ՠ`@`ՠ`MsF FsMMsF FsMojjo@@jj@@<!(!!(!        - 3 ?  32#!"&=46;7&#"&=463!2+!!64.'#ՠ`@`ՠ` 		DqLLqDojjo@@jj@@B>=C          - 3 ;  32#!"&=46;7&#"&=463!2+!!6.'#ՠ`@`ՠ` UVU96gg6ojjo@@jj@@β**ɍ        - G  32#!"&=46;7&#"&=463!2#>5!!&'.46ՠ`@`ՠ`MsF FsMkkojjo@@jj@@<!(!33!(!          9 I  2#!"&=4637>7.'!2#!"&=463@b":1P4Y,++,Y4P1:"":1P4Y,++,Y4P1:"b@@@7hVX@K-AA-K@XVh77hVX@K-AA-K@XVh7         A j  "#54&#"'54&#"3!26=476=4&#"#54&'&#"#54&'&'2632632#!"&5&=4632>326 5K @0.B @0.B#6'&&
l
@0.B 2'	.B A2TA9B;h" dmpPTlLc_4.HK5]0CB.S0CB./#'?&&)$$)0CB. }(AB.z3M2"61d39L/PpuT(Ifc_E       `  1 X   "#4&"'&#"3!267654&"#4&"#4&26326#!"&'&5463246326\B B\B&@5K&@"6LB\B B\B sciL}QP<m$3jN2cB.p.BB. 3K5+" 3," .BB..BB..G=ci(+lOh7/ DVj"c=        & 5 J b   #"'&=.547!"&46;'.54632!2327%.54&#"327%>%&#"!"3!754?27%>54&#!26=31?>Ijjq,J[j.-tjlV\$B.R1?@B.+?2`$v5K-%5KK5.olRIS+6K5̈$B\B 94E.&ʀ15uE&
ԖPjjdXUGJ7!.B

P2 .B
%2@	7K5(B@KjKj?+f UE,5K~!1.>F.F,Q5*H          $ b  2#!"&=%!"&=463!7!"&'&=4634'&#!">3!!"3!32#!"3!23!26=n$<vpPPpPpw*RdApP]'@A&
3@&H-[(8@
2EB^&1=&& 81PppPpP wcOg Ppc4& #.& &,,:8(%^B &.&&       A t  "#.#"%&#"3!267>7654&#"#654&#"#.!"'.54632&5467>32>3200?t	='/@H@"+4K8"*!4dtB/&>	c@0&=		=_JUD29i1"07
{x\YSgSSW]|teyD0&0D/I4C+) t.B3%h#/B0&&03|&p>i+ #]
WsgQT\QglU
]#-39oK_       3 [ _ c g  "'&#"3!2676=4&"#54&#"#54&#"#4&'2632632632#!"&'&5463246#!#!#5K)B4J&@#\8P8 @0.B J65K J6k
cJ/4qG^\hB2<m$3iG;     K5 6L4+" 3p`b)<8(=0CB.@Z7OK5`:7OkEW^tm@Q7/ DVi##j       % 4 I a   2#!"&5&546325462632"32654&"3267654&76;74&"#.#"2676=#"&'+53264&#!"3</UXdjjPԖEu!7JG72P

B%
B.!7	@Af+?jKjK@B(5K,EUH*5Q,F.F>.1!~K5y?^\Vljt-.j[J,qjjI7$?1R.B+.B$`2?gvEo.5KK5%-K6+SIR[&.E49 B\B$5K           G  #!+"&5!"&=463!2+"&'+"'+"'&5>;2>76;2YM	
.x	-
	N	

	u,u
?
LW

#	          	 * : J  4'&+326+"'#+"&5463!2  $6&  $&6$ <!T{BH4	&>UbUI-uu,uuڎLlLAX!Jmf\$
6uuu,KLlL        - [ k {  276/&'&#"&5463276?6'.#"!276/&'&#"&5463276?6'.#"  $6&   $&6]h-%Lb`J%E5,5R-h
-%Lb`J%E5,5R-'uu,uulL/hRdMLcNhRdMLcN1uuu,LlL   @     	'	7	'7	``H ``H !``H  ```H`            '  %		7'	7'7	'  $&6$ X`(W:,:X`(WLLlLX`(W:BX`(XLlL 
  	 $    % / 9 E S [   #"&54632$"&4624&"26$4&#"2%#"&462$#"&4632  #"32&! 24>      !#"&'.'#"$547.'!6$327&'77'&77N77N'qqqqqPOrqEsttsst}||}uԙ[WQ~,>	nP/RU P酛n	>,m'77'&77N77N6^Orqqqqqqt棣棣(~||on[usј^~33pc8{y%cq33dqp  f   	  L     54    "2654"'&'"/&477&'.67>326?><
x
,(-'sIVCVHr'-(
$0@!BHp9[%&!@0$u

]\\]-$)!IHVDVHI!)$-#3      6 > N   "&462."&/.2?2?64/67>&  #!"&5463!2]]]3
$;
&|v;$
(CS31	=rM=	4TC(Gzw@www]]]($-;,540=	sL	=45,;@www       (  2#"$&546327654&#"	&#"AZ\@/#%E1/##.1E$![A懇@@\!#21E!6!E13"|!     	 g L   &5& '.#4&5! 67&'&'5676&'6452>3.'5 A5RV[t,G'Q4}-&<C!l n?D_@Փ>r!G;>!g12sV&2:#;d=*'5E2/..FD֕71$1>2F!&12,@K       
  r    #"&5462>%.#"'&#"#"'>54#".'7654&&5473254&/>7326/632327?&$  $6 $&6$ !&"2&^	u_x^h;J݃HJǭqE
Dm!MG?̯'%o8
9U(F(ߎLlL&!&!SEm|[n{[<ɪ
"p C
Di%(KHCέpC
Bm8	@KނHF(LlL         " *  6%&6$	7&$5%%6'$2"&4}x3nQH:dΏXe8 z'	li=!7So?v      M    '&7>>7'7>''>76.'6' El:Fgr*t6K3UZ83P)3^I%=9	)<}Jk+C-Wd	&U -TE+]Qr-<Q#0
C+M8	3':$_Q=+If5[ˮ&&SGZoMk ܬc         # 7  &#"327#"'&$&546$;#"'654'632եfKYYKf¥yͩ䆎L1hvvƚwwkn]*]nlxDLw~?T8bb9SA}       + 5 ? F  !3267!#"'#"4767% !2$324&#"6327.'!.#" ۔c28Ψ-\? @hU0KeFjTlyE3aVsz.b؏W80]TSts<hO_u7bBtSbF/o|V]SHކJ        3  4&#!"3!26#!!2#!"&=463!5!"&5463!2 @^B `` B^^B@B^ @@B^@@^BB^^       >  3!"&546)2+6'.'.67>76%&F8$.39_0DD40DD0+*M7{L *="#
U<-M93#D@U8vk_Y	[hD00DD00Dce-JF1BDN&)@/1 d      y  % F    #"'&'&'&'&763276?6#"/#"/&54?'&763276"&'&'&5#&763567632#"'&7632654'&#"32>54'&#"'.5463!2#!3>7632#"'&'&#"'&767632yqoq>*432fba
$B?
	>B
BBAA.-QPPR+	42
%<ciђ:6%hHGhkG@n`IȌ5
!m(|.mzyPQ-.		je	r=@@?ppgVZE|fb6887a
%RB?
=B
ABBAJvniQP\\PRh cDS`gΒ23geFGPHXcCI_ƍ5"	
n*T.\PQip[*81
/9@:       > t   %6#".'.>%6%&7>'.#*.'&676./&'.54>754'&#"%4>327676=>vwd"
l"3	/!,+	j2.|%&(N&wh>8X}xc2"W<4<,Z~fdaA`FBIT;hmA<7QC1>[u])		u1V(k1S)
-	0B2*%M;W(0S[T]I)	A 5%R7<vlR12I]O"V/,b-8/_        # 3 C G k  2#!"&546;546;2!546;2%;2654&+";2654&+"!32++"&=#"&=46;546;2 4LL44LL4^B@B^^B@B^ @@ @@ @@ L4 4LL4 4L`B^^B``B^^B``    @@@          # 3 W  #!"&=463!2!!%4&+";26%4&+";26%#!"&546;546;2!546;232@ @@ @@L44LL4^B@B^^B@B^4L@@   N 4LL4 4L`B^^B``B^^B`L       # ' 7 G k  %"/"/&4?'&4?62762!!%4&+";26%4&+";26%#!"&546;546;2!546;232W.	

	.				.	

	.			 @@ @@L44LL4^B@B^^B@B^4L.				.	

	.				.	

   N 4LL4 4L`B^^B``B^^B`L         ( 8 \  	"'&4?6262!!%4&+";26%4&+";26%#!"&546;546;2!546;232 

		.	

	.	`@@ @@L44LL4^B@B^^B@B^4L< 		 
	.				.	:   N 4LL4 4L`B^^B``B^^B`L         2632632#!"&5463&&&&&& &&&&&&         $  27+"&5     %264&#"26546 B>&&=,X q&&@X,LΒw  %    % ;  #!"&5463!546;2!2!+"&52#!"/&4?63!5!

(&&@&& ( &&@&&(

(  

& &@&&@ &&& &

        # '  '%#"'&54676%6%%
hh @` !  !  


         # 5  2#"&5476!2#"&5476!2#"'&546      @  @   
@ 
             8   4&"2$4&"2$4&"2 #"'&'&7>7.54$ KjKKjKjKKjKjKKjdne4"%!KjKKjKKjKKjKKjKKjK.٫8
!%00C'Z'             . W   "&462"&462"&462 6?32$6&#"'#"&'5&6&>7>7&54>$ KjKKjKjKKjKjKKjhяW.{+9E=cQdFK1A
0)LlLjKKjKKjKKjKKjKKjKpJ2`[Q?l&٫C58.H(Yee   	    
   			        Y'w(O'    R@ $   #"&#"'>7676327676#"
b,XHUmM.U_t,7A3gez9@xSaQBLb(	VU         
  !!!  == w)          @ T  !!77'7'#'#274.#"#32!5'.>537#"6=4>5'.465!  KkkK_5 5 #BH1`L
I&v6SF !Sr99rS!`` /7K%s}HXV
PV	e		V   d   / 9 Q [   $547.546326%>>32"&5%632264&#"64'&""&'&"2>&2654&#" ;2P3>tSU<)tqH+>XX|Wh,:UStW|XX>=X*
))
+^X^|WX=>X:_.2//a:Ru?
	Q%-W|XW>J(	=u>XX|WX`

*((*


+2		2X>=XW|    E  0  3>$32!>7'&'&7!6./EUnohiI\0<{ >ORDƚ~˕VƻoR C37J6I`Tb<^M~M8O     	  	     5!#!"&!5!!52!5463	 ^B@B^  `B^ ^B `B^^"^BB^        	 # D  2+# !"$&6$322 7%#"$$ %&$#"7=D9KqMLw9'qnH.Ktfw㿢p??pY9n6
LlLkT	၌.?p㿢p?             	7!'	!\W\d;tZ`_O;        }  54+";2%54+";2!4&"!4;234;2354;2354>3&546263232632#"&#"26354;2354;2354;2`` `` pp``` !,! -&M<FI(2```@PppPpppppp#  #
ppppp     	  j  #"'&=!;5463!2#!"&=#".'.#!#"&463232>7>;>32#"&'#"!546	%. `@` :,.',-XjjXh-,'.,: kb>PppP>bk .%Z &
:k%$> $``6&L')59I"TlԖlT"I95)'L&69GppG9$ >$%k:            !   +32 &#!332  $&6$ ~O88OLlL>pNiLlL   	 ' ' : M a  4&'#"'.7654.#""'&#"3!267#!"&54676$32 #"'.76'&>$#"'.7654'&676mD5)
z{6lP,@KijjOoɎȕ>>[ta)GG4?a )ll>;_-/
9GH{zyN@,KԕoN繁y!?hh>$D">â?  $   	 n  "&5462'#".54>22654.'&'.54>32#"#*.5./"~~s!m{b6#	-SjR,l'(s-6^]Itg))[zxȁZ&+6,4$.X%%Dc*
&D~WL}]I0"
YYZvJ@N*CVTR3/A3$#/;'"/fR-,&2-"7Zr^Na94Rji3.I+

&6W6>N%&60;96@7F6I3        +  4&#!"3!26%4&#!"3!26  $$     ^aa`@@^aa       ' 7     $  >. %"&546;2#!"&546;2#/a^(^aa(N@@          4&#!"3!26  $$ @@^aa`@^aa       '     $  >. 7"&5463!2#/a^(n@^aa(N@           % =  %#!"'&7!>3!26=!26=!2%"&54&""&546 ##]VTV$ KjKKjK $&4&Ԗ&4&>9G!5KK55KK5! && jj &&         # / ; I m  2+#!"&'#"&463>'.3%4&"26%4&"26%6.326#>;463!232#.+#!"&5#"5KK5sH. .Hs5KK5e# )4# %&4&&4&&4&&4&` #4) #%~]eZ&&Ze]E-&&-E KjKj.<<.KjK)#)`"@&&`&&&&`&&)#`)"dXo&&oXG,8&&8  !  O  ##!!2#!+"'&7#+"'&7!"'&?63!!"'&?63!6;236;2!2@@8@7

8Q
	NQ
	N
	8G@

8GQ
	NQ
	N7
	    88 HH     k      %  		 ".>2I20]@] @oo@@oo㔕a22 ]] p^|11|99|11|     (       %7'7'	'	7T dltl)qnluul        ) 1  $4&"2 4&"2  &6 +"&5476;2 &6  LhLLhLLhLLhL> &  &`>hLLhLLhLLhL>&&>    G  
     	.7)1!62	1!62he220e22>	v+4	[d+d           1  35#5&'72!5!#"&'"'#"$547&54$ Eh`X(cYz:L:zYc\$_K`Pa}fiXXiޝfa    	         ( + . >  #5#5!5!5!54&+'#"3!267!7!#!"&5463!2U``'  jjV>(>VV>>Vq     (^(>VV>>VV          =  &'&'&'&76'&'&.' #.h8"$Y
''>eX5,	,PtsK25MRLqS;:.K'5RChhRt(+e^TTu B"$:2~<2HpwTT V        / 7 G W g   . %&32?673327>/.'676$4&"2 $&6$    $6&  $&6$ d--m	
	,6*6,	
	mKjKKjoooKzz8zzȎLlLU4>>4-.YG0
)xx)
0GYޞ.jKKjKqoooolzzz80LlL    D   / 7 H   #"'.7'654&#"'67'.6?>%"&46227#".547|D,=),9#7[͑fx!X: D$+s)hhijZt<F/*8C,q؜e\r,WBX/C2hhh=tXm        > N Z  +"&=46;2+"&=4>7>54&#"#"/.7632  >.  $$ p =+& 35,W48'3	l
zffff^aaP2P: D#;$#$*;?R
Cfff^aa   'Y  	 > O `   "&5462&'.'.76.5632.'#&'.'&6?65\\[<CzC25U#
.ZK m+[$/#>(	|	r[A@[[@A#2#7*<Y$+}"(q87] F 	_1)
	     	    # 1 K e   34&+326+"&=!#!"&763!2#!"&5463!2#>?4.'3#>?4.'3#>?4.'3Xe`64[l7
,	L;=+3&98&+)>>+3&98&+)>=+3&88&+)>	Wj|r>Q$~d$kaw+-wi[[\;/xgY$kaw+-wi[[\;/xgY$kaw+-wi[[\;/xgY     J \ m   4.'.'&#"#"'.'&47>7632327>7>54&'&#"327>"&47654'&462"'&476'&462"'&47>&'&462i$		$^"
%%
"^$		$W "@9O?1&&18?t@" W&%%&4KK6pp&46ZaaZ&4mttm^x	--	x^=/U7Ckkz'[$=&5%54'4&KK4r<r4&X4[ [4&mm             ' / 7 ? G O W _ g o w        "264$"264"264 "264$"264 "264$"264"264 "&462"&462 "&462"&462 "&462 "&462 "&462 "&462 "&462"&462 "&462"&462^^^^^^^^^^^^^^^^^^^^^^^^^^ ppppppppppppppppppppppppppppppppppppppppppppppp`^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^pppppppppppppppppppppppppppppppppppppppp  	         L T i {   "&4626"&462$"&462#"&4632654>7>54   "&54>2"&462%"&54&#""&546 %#"&'&'.7>#"'&'.7>&4&&4&4&&4S Z &4&&44$#&&&j3$"('$&4&[՛[&4&&4F&4&]\&4&$
	!D4%	,\44&&4&4&&4&- Z 4&&4& ;cX/)#&>B)&4&j9aU0'.4a7&&u՛[[4&&4&@&&]]&&Ώ0
u40
)4         # g   &'.#"32676%4/&#"326'&#"2632#2+&'%#"'&6?676676632%#"'&6767#"&'&6767#"'.7>327"#"&'&6763"'.7>;7632;>%5K$
"0%>s$
"0%>;;>%5KVL#>H30\($$(\(єyO2F/{(?0(TK.5sg$єy#-F/{$70(TK.5sg$L#>H30\($$(\#(@5"'K58!'"58!'"55"'K#dS$K		K$Sdx#@1wd>N;ET0((?
-
2K|1wd#N;ET0$(?
-
2K$#dS$K		K$Sdx          D N \  2654& 265462"2654   #"32654>7>54."/&47&'?62 &4&&4&h՛[&4&r$'("$3j&&&#$4["@GB["&&Β&&][u&&7a4.'0Ua9j&4&)B>&#)/Xc;u՛""Gi[       X h  #"&54676324&'&#"'>54#"32#"54>54'.#"32>7>767632326#!"&5463!2b)
:4FDN[1,^JK-*E#9gWRYvm0O	w@wwwC22c@X&!9{MA_"S4b// DR"XljPY<	@www     %   e  4.#"32>7676#'.#"#"&54>3232>754&*#"&54>763 >32''il$E/
@P@
^`'W6&!.. ! -P5+


E{n46vLeVz:,SN/
M5M[	]$[^5iC'2H&!(?]v`*	l	b$9>    = R   2#"&5467%!"&7>3-.7>;%.7>322326/.76/.'&6766/&/&#"&676	&676&6766/&672? =1(H/ 	'96&@)9<')29%
&06##$ J 07j)5@"*3%"!M
%#K"%Ne8)'8_(9.<c +8 8(%6 <)'4@@)#-<^
?%$-`%.}Q!&}%&N-lIJ;6>/=*%8!Q #P"\Q#N&a)<9     b R ] m p  %"'.'&54>76%&54763263  #"/7#"' #"&/%$% 322654&#"%'OV9
nt
|\d
ϓ[nt
|@D:)	;98'+|j," 41CH^nVz(~R	9\'	r
@L@	@w46HI(+C
,55,
f[op@\j;(zV~      i  / 5 O  #"'&54>32&#" 654'67'"'>54''&'"'6767&546767>7蒓`V BMR B9)̟!SH-77IXmSMH*k#".o;^J qןד>@YM$bKd ү[E";Kx%^6;%T,U:im=Mk        ) . D T  4'"&5463267&#" 6;64'.'4'>732676%#!"&5463!2),蛜s5-<A4ϲ
2W9
&P:\3)SEPJD4:3NIw@wwwNE	2@uus+,/?xsatmP')fHVEA(%dA4w&4J5+@www        O [  4'.'&54>54&#"#"'654'.#"#"&#"3263232>3232>76  $$ Cf'/'%($UL
(
#'/'@3#@,G)+H+@#3^aaX@_O#NW#O_.*	##(^aa   q [  632632#"&#"#".'&#"#".'&54767>7654.54632327&547>P9	B6?K?%O4T% >6>Z64Y=6>%S4N$?L?4B	@{:y/$ ,'R!F!8%#)(()#%:!F Q'+%0z:z       O _  4'.'&54>54&#"#"'654'.#"#"&#"3263232>3232>76#!"&5463!2 Cf'.'%($VM
)
#'.'@3#A,G)+H+A#4 w@wwwXA?4N$NW&M&L/*
##	+@www      	   O  $>?>762'&#"./454327 327>7>	 EpB5
3FAP/h\/NGSL	  RP*m95F84f&3Ga4B|wB .\FI*/.?&,5~K %&Y."7n<	"-I.M`{ARwJ!       F X ^ d j  ''''"'7&'7&'7&'7&547'67'67'67'63277774$#"32$			*'ֱ,?g=OO&L&NJBg;1''ֱ.=gCIM$'&&NJBg=.%w؝\\wIoo<<   -NIDg=/%(ײ+AhEHO*"#*OICh=/'(ֲ/=h>ON.]xwڝ]7e[@        ) 6  !!"3#"&546%3567654'3!67!4&'7Sgny]K-#75LSl>9V%cPe}&Hn_HȌ=UoLQ1!45647UC"    
        ! - 9 [ n x     "&46254&"326754&"326754&"26754&"26#".547632632626326'4#"#"54732764&"264.#"327632>#"'"'#"'#"&5#"'67&'327&'&54>3267>7>7>32632632T"8""8)<())(<))))<))<))<))<)Tد{ՐRhx=8 78 n 81pH_6SocF@b@?d?uKbM70[f5Y$35KUC<:[;+8 n 87 8/8Zlv]64qE 'YK0-AlB;
W#;WS9&(#-7Z://:/Tr++r,,r++r,,r++r,,r++r,,ʠgxXVעe9222222^KVvF02OO23OO`lF;mhj84DroB@r+@222222C0DP`.r8h9~T4.&o@91P       % 1  4'!3#"&46327&#"326%35#5##33  $$ }Pcc]<hlࠥYmmnnnn^aaw!LYƏ;edwnnnnnv^aa     %    '  #"$#"#.5462632327>32 1IUΠ?LL?cc4MX& 04;0XpD[[DpD,)&&     4S_<      Z[.    Z[. 	                 	 	                p    U                                                3   U  3                 ]                             y n                       2                           @                    
                                                                           z                     Z                                @    5 5             z                                  Z  Z          @                                                                    ,  _                 @                                              s                               @         	            @                        (                                     @            @      @        -   M M -  M M                  @                                 @  @  -              `   b                 $                                       6                                         4           8       " "  "  "  "  "                  @                  D         @                   ,              ,     @                                                 	     m                        )                 @    @   	                                	                                   '                      D     9                   >                              d  Y     *     	  '	   	   	   	   	   	                                             	                                                           	                                                                                   T	      	   	   	   	   	            	         	   	      	                                                 @   	     f     	                                              %                 R           E	            	      	     $                    !  k  (                   D    '	         	         %                 	                %                              ,   ,   ,   ,   ,   ,   ,   ,   ,   ,   ,   ,   ,   ,   ,   ,   ,   ,   ,   ,   ,   ,   ,   ,   ,   ,   ,   <     $        \     x  H      	  	  
x  L              $      P           X  4        l    H    P  ,    L     !  !  "T  #D  $P  %   &d  (  (  )t  *(  *  ,0  -  -  .`  .  /  /  04  0  1  2  3  4T  4  5@  5  5  6@  6|  6  7h  7  8,  8  8  9l  9  :  ;  ;  <  =  >\  ?  ?  ?  @h  @  AP  A  Bx  C  C  C  Dl  E  E  F  GP  G  I  I  JX  K  M  M  NL  N  N  O  P  P  QT  Q  R,  R  SL  S  T  UP  X  X  Z(  [\  [  \X  ]  ]  ^D  _   _  `  bH  c  d$  e  ep  e  f  g  g  il  i  jd  k,  k  l  m`  nL  ol  p  q  s   s  t4  t  uh  {  |$  |  }4  }  ~      <    l  8          d      4        l  D    x  0  l             (  d      H    |  @  h        x  |      h  t  P    \          ,  @          <    l        D      |      $    @                        d  (      0  °  À  D    4    Ƹ  X    Ɍ      ˘      ͬ  ΐ       Ф  D  Ѡ     Ҡ  $  Ӥ    P  D  մ  x     ׄ  `    x    l    0  ۬  X    ݄    ޜ  0          8          0                          L    x    4       H          <               	< 	 
p 
  |   d  |    l   4   ` T X 0    l  X   ! "T " #H # $ 'D ( *( ,0 .( 1P 1 2 3 3 4 5L 6, 6 7 9  9 : ;h <\ < ?0 ? A B C Dl E F G@ H IH I J K Lx L N P Qx R S S U$ V8 V W0 X Xx Y Z` [< [ \T ] ^x `l a  a b c, d eH f< g h i0 jL m o< r u v w x y zd { | | ~P ~ ~ ` h  (     h  , ,  H  P          x     x     0 t  | H      T $          <   d  l       p D D   @     Ø L      ɀ ʘ   ΐ h `  L  Ԁ t l   ٨ P P   ݄ H |    8 D     h    0         8 h    $ D     D   $ | $  L     L 4 D   h L 	   0 L  T D D L H P <  P  l                '            @            	   ^    	   ^  	   t  	  "   	  &   	  $   	     	    	    	 	   	  *  	  <  	  8  	  0N  	  ~  	  
  	  C o p y r i g h t   D a v e   G a n d y   2 0 1 6 .   A l l   r i g h t s   r e s e r v e d . F o n t A w e s o m e R e g u l a r F O N T L A B : O T F E X P O R T F o n t A w e s o m e   R e g u l a r V e r s i o n   4 . 6 . 3   2 0 1 6 F o n t A w e s o m e P l e a s e   r e f e r   t o   t h e   C o p y r i g h t   s e c t i o n   f o r   t h e   f o n t   t r a d e m a r k   a t t r i b u t i o n   n o t i c e s . F o r t   A w e s o m e D a v e   G a n d y h t t p : / / f o n t a w e s o m e . i o h t t p : / / f o n t a w e s o m e . i o / l i c e n s e / W e b f o n t   1 . 0 T h u   M a y   1 2   1 2 : 0 9 : 1 8   2 0 1 6 k e e p o r i o n F o n t   S q u i r r e l                                          	
    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopq   rstuvwxyz{|}~ 	
 " !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab cdefghijklmnopqrstuvwxyz{|}~ 	
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ uni00A0uni2000uni2001uni2002uni2003uni2004uni2005uni2006uni2007uni2008uni2009uni200Auni202Funi205Funi25FCglassmusicsearchenvelopeheartstar
star_emptyuserfilmth_largethth_listokremovezoom_inzoom_outoffsignalcogtrashhomefile_alttimeroaddownload_altdownloaduploadinboxplay_circlerepeatrefreshlist_altlockflag
headphones
volume_offvolume_down	volume_upqrcodebarcodetagtagsbookbookmarkprintcamerafontbolditalictext_height
text_width
align_leftalign_centeralign_rightalign_justifylistindent_leftindent_rightfacetime_videopicturepencil
map_markeradjusttinteditsharecheckmovestep_backwardfast_backwardbackwardplaypausestopforwardfast_forwardstep_forwardejectchevron_leftchevron_right	plus_sign
minus_signremove_signok_signquestion_sign	info_sign
screenshotremove_circle	ok_circle
ban_circle
arrow_leftarrow_rightarrow_up
arrow_down	share_altresize_fullresize_smallexclamation_signgiftleaffireeye_open	eye_closewarning_signplanecalendarrandomcommentmagnet
chevron_upchevron_downretweetshopping_cartfolder_closefolder_openresize_verticalresize_horizontal	bar_charttwitter_signfacebook_signcamera_retrokeycogscommentsthumbs_up_altthumbs_down_alt	star_halfheart_emptysignoutlinkedin_signpushpinexternal_linksignintrophygithub_sign
upload_altlemonphonecheck_emptybookmark_empty
phone_signtwitterfacebookgithubunlockcredit_cardrsshddbullhornbellcertificate
hand_right	hand_lefthand_up	hand_downcircle_arrow_leftcircle_arrow_rightcircle_arrow_upcircle_arrow_downglobewrenchtasksfilter	briefcase
fullscreengrouplinkcloudbeakercutcopy
paper_clipsave
sign_blankreorderulolstrikethrough	underlinetablemagictruck	pinterestpinterest_signgoogle_plus_signgoogle_plusmoney
caret_downcaret_up
caret_leftcaret_rightcolumnssort	sort_downsort_upenvelope_altlinkedinundolegal	dashboardcomment_altcomments_altboltsitemapumbrellapaste
light_bulbexchangecloud_downloadcloud_uploaduser_mdstethoscopesuitcasebell_altcoffeefoodfile_text_altbuildinghospital	ambulancemedkitfighter_jetbeerh_signf0fedouble_angle_leftdouble_angle_rightdouble_angle_updouble_angle_down
angle_leftangle_rightangle_up
angle_downdesktoplaptoptabletmobile_phonecircle_blank
quote_leftquote_rightspinnercirclereply
github_altfolder_close_altfolder_open_alt
expand_altcollapse_altsmilefrownmehgamepadkeyboardflag_altflag_checkeredterminalcode	reply_allstar_half_emptylocation_arrowcrop	code_forkunlink_279exclamationsuperscript	subscript_283puzzle_piece
microphonemicrophone_offshieldcalendar_emptyfire_extinguisherrocketmaxcdnchevron_sign_leftchevron_sign_rightchevron_sign_upchevron_sign_downhtml5css3anchor
unlock_altbullseyeellipsis_horizontalellipsis_vertical_303	play_signticketminus_sign_altcheck_minuslevel_up
level_down
check_sign	edit_sign_312
share_signcompasscollapsecollapse_top_317eurgbpusdinrjpyrubkrwbtcfile	file_textsort_by_alphabet_329sort_by_attributessort_by_attributes_altsort_by_ordersort_by_order_alt_334_335youtube_signyoutubexing	xing_signyoutube_playdropboxstackexchange	instagramflickradnf171bitbucket_signtumblrtumblr_signlong_arrow_downlong_arrow_uplong_arrow_leftlong_arrow_rightwindowsandroidlinuxdribbleskype
foursquaretrellofemalemalegittipsun_366archivebugvkweiborenren_372stack_exchange_374arrow_circle_alt_left_376dot_circle_alt_378vimeo_square_380plus_square_o_382_383_384_385_386_387_388_389uniF1A0f1a1_392_393f1a4_395_396_397_398_399_400f1ab_402_403_404uniF1B1_406_407_408_409_410_411_412_413_414_415_416_417_418_419uniF1C0uniF1C1_422_423_424_425_426_427_428_429_430_431_432_433_434uniF1D0uniF1D1uniF1D2_438_439uniF1D5uniF1D6uniF1D7_443_444_445_446_447_448_449uniF1E0_451_452_453_454_455_456_457_458_459_460_461_462_463_464uniF1F0_466_467f1f3_469_470_471_472_473_474_475_476f1fc_478_479_480_481_482_483_484_485_486_487_488_489_490_491_492_493_494f210_496f212_498_499_500_501_502_503_504_505_506_507_508_509venus_511_512_513_514_515_516_517_518_519_520_521_522_523_524_525_526_527_528_529_530_531_532_533_534_535_536_537_538_539_540_541_542_543_544_545_546_547_548_549_550_551_552_553_554_555_556_557_558_559_560_561_562_563_564_565_566_567_568_569f260f261_572f263_574_575_576_577_578_579_580_581_582_583_584_585_586_587_588_589_590_591_592_593_594_595_596_597_598f27euniF280uniF281_602_603_604uniF285uniF286_607_608_609_610_611_612_613_614_615_616_617_618_619_620_621_622_623_624_625_626_627_628_629uniF2A0uniF2A1uniF2A2uniF2A3uniF2A4uniF2A5uniF2A6uniF2A7uniF2A8uniF2A9uniF2AAuniF2ABuniF2ACuniF2ADuniF2AEuniF2B0uniF2B1uniF2B2uniF2B3uniF2B4uniF2B5uniF2B6uniF2B7uniF2B8uniF2B9uniF2BAuniF2BBuniF2BCuniF2BDuniF2BE W4  wOFF    a,    T                       FFTM  D      j:.GDEF  `        OS/2     >   `6z#cmap    ~  /tgasp  @       glyf  H C6 πhead F   2   6 hhea F      $
hmtx F    
T(loca I    
DLmaxp P`       name P    |1post R(    L<webf a$      W4       =    O<0    Z[.xc`d``b	`b`d`dZ$Y< n  xc`fabʢbl|6F0#F ǞU  x͒KqZܩ*@WqCc9/B8Hq("5WB]:<#.y
w^3Kn%jB_hX<g߶4QMhJ3ӂ5]m豶AH r(
jX8F",c9+X*V3r.Q?>P*hL֬浨ej]uS |L#4ȣ2chBL,fIK[VU~Gu{nѽwܼs372!2&JF䥼aA	Kbm5_%_9)1XC>?~y=Bt^)Գn      xڼ	TՕ0oի֦עfG@@lQq"ѨF,3f1_bĩl:Y$&!fMbqL~{_Uuu-:]}=s=<s[9DxperAyV<U*r8qUQg8)!Ձ!!9p9P!$2S=(LTsNFޑ<}\p-0'E.搻VeuBa-8Ճ	,2YI&\"7kek.4^S/_UIdCENgK5;+Iv6۸ !jC#6{&]v'ϫ"	]KT&_}q$ ?_}Z IZb57z7%N8/-丈,Jd0(Dccp9;qd3Itz`ǒ+j2|L[$YAhҝʙCzMhȶ8rd:׾ To>з>@iښYQ8eAPn;0#iG<]yZ6Ǵoyq<i&C`B阒S}@W:sK%W3U?okt/ghs~VaF([D' hV`([`L+ӡ8^&ԉWԴT7W}L5IfgwLuNт6:#Fu|=]"RBE0$"1y3kPB]s%]
kW؃nQoQ}b(73mȆb U%Itte&L@a%g 3gcon>}9SRo~MԳg]wLo~Ʌ3fϼ79HהDBͭ\/=3	T5uD #9eP_Zh|'L/&z6Ƀ"G=#hPSW:W?dID'r'?~zINy
b|zՠq#vxT.509&b0GсO*ȏ&beٰ!֪nJGa=qQ7W>~j7
0'}_VQ'0	
p.?Č0aű3pvY;/s.!ESN	=<x8Nߝa:PG%,w'L>+|?xܫEǅV$6Mecw9$=d꯵P\PT!#c}R4|F/Bp6fY{i	is	2<:*a^d)ah0 1Xz2|:P=$OV͵>YY{?vKKH[# &g3.K,zkA?]vgk;4ųwP8|y}ڴa_;M@榃O?CS:|2`in<6Arȵ.ojT_llBGH\4 Țo"?:[
;{'skUD9x_dnL?<1* :\	
A>%H֨(jX1R4FQG!-&ag g=jE-H ?ᓇćmo(<>ɲJ,ŉ|6X-[b:^k_f&>Ӡ2&Go5n^+$.Zat忙\ؗ$V=+;>usxm`6kkjҶL_j2{[v$u-q;Qe5frixH,+@:nA(%AZa	tѷ0[؜MΏ-VBrj)BdPcvXfuJ[$PFIE? lcG߰}9:H*yƮ/إYנ%+G, Z1
kP*N
j\^܋OL̺@qd2zt؀X[1`P.F<BVx=/0*Gߡ}S7}N-s9tKr03GEP^ؙJA^`R_1A@|8~o0~:OE8Yu&4tَT֦)(lvSag'Ih;°CO<u)?=>W?q]Da7*:Xʁ/NzK`{9&-)qu`JHDj6D!n.,9Bt_Af o&;3ۑ ܁bŋЅh9X!($B֡'#v2des~w(>Ŭfp~LG	r0^X~+cJՇ\cP4KYO@8`BиJ(^G~rGg:DojΞzYnB@!J|qMGSZ.xߝ:5(PCF7`Å਴*N9	E	Xz-W?hPeՂUsU`Lz)7uȎUv,Йm[bh򶮯jBQӏlumrvɄzz`C~DS1		8`d9A']'ᅺ.D9</i_jpzOa.<g=8^PSewYZ!x8;tiI=?([e-G.zZG~QUڔEh/,pd	zK"_A2	~@8
M\'K6qTQTR.pjPM~ư~#߉]WoQ5>U`C(8f䤼S+<ٹ k;D9ulUI邕ՋncYP^)2=ȱ6ȆMUުhEDSʾy]+_VBC}ZYB&D)(&phF><]>_ǵRBidG02cb7$:<<׋+uW$=BV35{=]i;yDR.Xe%2@:v6>Y.CtHv
!sYR4,]g9P{u(׿_(5'ۼzg;-Dfި͋ЎGZ˶))Q/Cmѩ4{FGZ1 α8j`ASt㼂ah*b׾գf=Bf5\?w4n>7]@L.E>sLnx zFi}y^ݵUOZc؅EVԯ>,TtB̅󬬩iI$Bؕ{:P97ih_k5̙b~dO:5-Zj]j~=-MpB=یx ݆c =B}T;,_zs 1^j	߸pȟ}QȪ'buS_*cs ;k!&|w-ր$k9#){H#
NV8Zu
CV辌J@CrH:i%Q<^?yٻ l#F|4UNYBL,g#5IɐT^zzne-o}oi^!VaGE;f{t]QĐ`s_QT:RLG)4G#FtDuD"G|b&VMJ6ADJ~V<OX2AeѴl ڼ4])Xlf8J%%֥R>ItcKe\_,RU1q>KDp&bStOq6H0H%d|(j.XR{#F<Rѡ)~7Y𠹆w8Mg\[e.ŢZCtK}`	Q]HsxuH0VB"o]0rV[z/+dWPqj	bpk\ 3kłJM[Hj~[nг z{y^"]רm&,bV.5-T>K`YX]g~CkbparbcP|w-qti53!	=̊#lF3F <"PvUm#r_a2pR٘\z,^6O&hR<isNtUFy.f$ qFv>ND	4;O@): %@=B:[DOKI#Ő+U#?d.uF:UoQP Ω7=ː;C!KOG_,Jo'-X~1d
om	pL:&C}Uoj-;t.'q\ĕȩX^t!a#t0g[=|J m+$$B$ x}hgcw!tbe6$;.֗XCc끰d閤o@^ֵI??nsS6WYh}S2oHLv, .y{syϜAvedzc5#VgB 7zG˱+nO^~/]m9%ŋbRB݂=1<)GZ,}fk3t/R?Ѷn`љD=A.!Yb66J~pp
C5f@.zAX*7W7,;jkd˰z
[3pY0M-e S:.b)JX}a-7;9)1Gaeq~%՞1s7"xX]MhR:,_X#^giP?f_QDyb|(ӡ&K>}+F8L--Bو%u~
H'!_]_ͶbEaO"}mkiBmDl܎k>oX;.^;ڭ1a9N)cwb:Jb=J;d{p
_&`6v$%tZ`AAoN`Cz/BޥA!nG]=,toYrEp\%=A1Pl
~SW6{|.e2[2jPa79F<
T9,bKGRٗ7۶_ RNZ0oiF0M;61?u&6%CNsC	9:n;~$EĒTi&Y"0j{DR,
\zvk$_j7	eI?lGz#v6nͱ|DpQ;3Ck'yy@|OqL9׊0tl1x#I&dP.E()ٓύw!Tfǹ{V	Xk*  
Z±OE|GKDE?A5#'g(rʄuB$q1֮^ylG1ر:d5cA$
:tsl"ZJhZHR$ *` Pq=[nⷞʣlCġj	HFn-\%E<6`<d	fllPWma'WE8.IΤ CGd7OF| LmY<eRAQuh8T[dES\4Q4t4X	5X.Q~F1&lz ESHIrȩ`4$+O)12%
o`Tc.=y`܍ n}o9 Cb;'K@8va΁\>:܏9Z=T|D*]u5RQs0`3
ϟT_'M]Ww=߭WO`l:̓ViEa.]Ym*b՗)4w6L8#;6>)d~#I7c%4bwF 1}D:̯[-RB1탸P)㗴Rvl2#[P([|Pʒ;fnx9i	Su(v)e7
$QqUO{$z$BEY.l7[˽6gH=~ݎĭmkzSHr:]CexqH-ko_5ESa>9-mbp1` I0׭LjPhZiϞX)]X	Vf`&95EǑz<2*x#	<xSiTa*DNB^'~Yi!%3Da>gf c+|͙WL>)HNI
s F28vI@> h?YzelmU< a<(hvlSdW)v*IypbyM
~Yo()܀q1EǗ?I5,Q&+Vj;N=I Mbkˮf*5/j	(6A7am0ų$R	=Yt5w0
07FZ:xU $4 F>!7JTS@29q4Ѽ6vJܥJ4~>::raS#~9`aJe89|<V5Q:JUC7y8::@A_ݘ1kbl[7R{uckWoADpRq)@U3B뱌=iSC-AzSχ< .Mrэ?T|+r΄8?+[|9 x4ZkKKe%N]Eiy(CZpӻCj㔃O2(k<iN1;e6gXaBa;RyPrLUDv[sv&D6O XݛZhR5V,RIJ&zoF|LnV^Q(^ւg\cNL:6n&E[h8nJ*X>yW7kvV#e*|vYPa[0ղ^댥Z"PɒS?+GW5ouL6}:ؐj돷^"`9ՇcD4xRh˷}fF+݊9uAx`:}GA+@HuygY5IepWu!h,8{=CƷwZOE*<~?rWTDzƗJZW)e+i!J<q[NW<z>v^?. s)g/1	vNSDJ(Q'VXd2}q@߆qW?J*}LG&-7¾QИT򐺆._+ʥ>&#)ye)Yl8=ggz©bui1%m!h7ti Wߩ
<Ў^{h=_{p'Q[&]G9;6Hj|XcX!V3RDT=whT.f|>ݯ:|Ex 0AfHЯ#iPOmUxTD1P(DcdGb.5cF
@T:\&BHjGQ2K9A`=_&E\$kV
e3Z]#B۪3Cwy0Kݪ^Ji/HS(Jǯ?'G"a\DQ@DQYj {ނcj&2R
jx#fCOHd$dwIa0G*S)م8S}CĐ^8)뎾r;:D1Hō9O[]yy1VTƻ1jPz	BX7u_nWEzY@.M39\{YT$g>sW:}cv3	2IqnC6bBKR JQQAIuKx;	LҗPhq|bZi&J%D5ړOic/6&T8{sF2TL-ޜ-E!(
?Ԩ 1(4_TF$8=QR1 8Vm.ovspÎ ;,߰(x<dQ]4:h*2X-hW3s.P,IN%N19tƪ4
Y>asR3p!|a;xa/ޛGөaS_`Ϟt[}bj;:Y(Skjk'ۗ_C+Ôm=~z!ѾNv{A΋?+')Y4 <FR5OzNOA|A}w`yy5/:ZԷݶ:C:Bz~C/]W`s4<ހDSыWnڄ7߾VaAn ,f:~!ۭDb[n6.@V	!aqM7fNvpwӻ{3ܴŃњd5_|Cu^YMj\/l(R%T<ȌDckpQrLtBn1nM#B>_}V:j;p@8M7|My㾯+w?6rz?tj$*jnn&w@~Ƿ3BYB
*vA[L0RWB.y8h,6n^jotn4ݴ6\p|7[ېG
؜[p]~u^ӿwoaF~h:~m?F6"I+ؠV}0u/rܗ/{"ܓrI	OD/;Zؕ7Үd&\("w6:Hprל'`cR,$QYL;khpLBmEJ#nFT*mH4[%/N<1$yZLA[G-o#yzh 
O)A3Qߖ-zl9.̦(rl6c,<>4'l9b:s#ި_aޔtqqq#%r/XeGGuZPƻ0sp4DsCj4XiHHb}H{AVo ǲr(0壂P@&J|%
UO3c'< (1ab5TOjw1dPS#@JdXj	*+]]d0Sm=%z@פ}R]VIpm<ƙݫ.9K+c\`9_yu0bR`}!D$;vWY<ATEvz[z[sde%퐢ât4gzUK6eԴr-Od&,9=~gHYWL숷Vbe^|$/lX?ɴxO2$C*'9SPO|OhZԲURCfdhԇ/=<bLD]<_::[?sG Fj";C5|7էݧRb.ţ2;ƿ2hYi(TOB5(gtjXi6ZHFc^5 /_ĥ8ZeF=H}zW'pTNgx.Qol!	jP4XaT߮8oeсX2ʻ\j^Pa3c{d5v#8EMwѤ-қjJ#ch4:ĻA~^?
zNc#̀И6[-ҏ4Fb%M1K)'BvulmTkl&,zgTrctg1^G~ӹu{CC"}VĥUP5iԾv.UݩTՒ@RjlҪzGNh	\CZ=6RX[g*o^}HݖׇxD^Cy9.Lc@4*w`f*đVWxM{	w[-`ѕù:eM+('a'p 5U;#@qÎw
h"GN8ʳhr !n@7+Mq+bejf^F.[ۚd~un~mtlk"c5¨UuDݨoehY?w#VSul]hꦔ.d6Dl:!gle#/u֮|_b"	P8^яC?4cūvYSLY*rh@M &RfthI*ao[g2G#O>_7&Նn|7WIOqOe}}=:&4<G=o<iAO6CN[m:fIMK%ٲ*'C[Ʀ%[Ko>L-j=wW_B^݃.$- .Yqt֭Kp8@x"~|ϫOK>u9A .\Oc#pgR^xfHyNWuiWG&~ &$l=JŁx+7aU'33("Hܯ=ռE.Ip]$n4Ivnh^2It`$uIL46BRdOnp8,:OM>h<^H6N>)Kf0$ O}0(jli0$ibc5|<_}Vo,rMzl$5M:劖1Im7lښkjx2wcounÁ jn#CuV%WEn7f`S	E@A`aJ/E
iTi9&tņ*aRA/knz8 FҎ""!lsnE4݂f{n28laTW9L7Y;Oowzܥ}q=PDE^"Tl{t]Wܷ'<3*"EQ"ն޻}a+x7ӛ4h*C+SJbBz8E+V͘~J%	$њ9袄:4z",ns&l@s~>
_0a"{xc4;K}Nshjp>㇝{T{Ca{1/JV?/$fth]Nƅw=19ޟtgO憽M_pbɒvSU;Zua"Ymt+=˻* $geD+:_ذ*gB.bl(u5F<^O4X?鹶PXCQ:7տ1_|/.O5JCrwD`|{޲XY%C@Bn:ر0qّ/~+{<ڨŧLylp9sa8@=Lr<,K$7ޒ0|{g^Tu:l!J`!pd=-'晃68c{mܹiox֋'L->7sa2~n}Yj`>Q #qE.3fmY%v;	V$4E=-)a*l2׬	+fYWǼdĉ%@te_ϥ6f&znEL\vGA?@s͟;uxp	d횲F;w᯽5+={tÏmW<Fi1MfRTip	 b&bQ?\"('4a1I,P0^>zqbGbbO@֙ZV{0x*
EDv4Bbրb"{̢Q۴?|9ESăj,p!F
4|WN'A}O(`9%MP	SSr `%-Ġ\:+>{7s]C(?W$tHp29إOy%S;"%R"F?Xp;wzMS:Z=2Sfw]4tͫw/o 9v|?\?ym[,d&3,^ \Иoon>ޮ/EJ_R5".OekcQjA{f3ߝn7#KC2jN8vpd:NcHOF>]ISцK K"΅u<ZLn؁o]FҬs7`Hd5O	X$biO2qP<i_s;B"z@KD	ꖤ:<$aI's%Hm6+XǣL-3"6SvZ`I|VXx⎞b&˒/.X<}U:lsd#)dwTIe	6wlh}f&KM[ע%m2}w^܍x_Rg8j0g$koǃ2ZP5篜i%ejdWL*mdR8^YhiYFIjih	b4tW9|}3wOqy\j9nGn߶CE{W;zl㗧UM׺"vos{\i?n5WMsՇ9zZ씺{VO4^_ٽͰq{ t,s0qqtI%E̮,`~Lj>nf6:1su\y?h퉚U2FVRg>sArZ=55(sD⵫jInPb$n/%k׭4:MuGWݮ4}@N e[55R؏ΥꇬQ|и었-CeHHC&=sӤMQtm2cMo{jE*EIGJ:@r%h}8_`fa27|.&)&,6RFm0[f	Y.4b&l~2
f_qfIgｘLdn7[. Nm]CmF{Y.l̂0%MM3~}q2JﱵW7rݷwlkQcF\1B4O盡7h}ܴЬE}܀־;~+#_o0M-]y?|`ti;%SYۏ_~]3y/;17Iښ6/B8Ýy틇7ˢ«gؼεݩI8$jQV*b([ێ(e  "ZOJح~9%58Dƕw֋R^4qqdos,zF7.Z;=fpp+&$l0{tOoNGB7:ޞЙL:4؀ƵΔml|IzBc'/*z2ckq5Yjy-xL1bCm5#na!OE#%pz^d2K73ŋiģsc:J'=9V {Q/SO `)u=B{79tmO) J:Qv!覗MSjA8L1M֬ylV> ]7Vf4`qȬPSiyM&F(?Jإ191¸	e*1ƙzM!oŊ0v|&蔽
_s،v߽2}Yz/jB :Ҵ`[hk;F}Z#T}ٌ"5d~/)W[)Í_sLlzMhVzZaṭ2_F=y]XE}Z6E5˲xKL$t__d{/K1h!@cڂ蹞V,(d^S^@JPG}Zk/HSZbw:WЫz@@k-dg#Q侵dQHQ}rg8ޥ~g qbxUiPS-`7tgj=)N78re5~kt$LͥVw}I?ǺW/{.p^62Ԇ`GHQOH5;:ϡGzsֱ5T}ԅheO*/1kW^BlF{3IviOSŴ6CIwqBc])bd;Ǧqٰf36fk-`.0&MetMLH!}Z%jIi[`*](as=}s|\칁xdOlg0=Zћr뫙3-]Z3媙ˏL8;5V^}VYu.Ʌn5W5>Y9HRp.^=}yEzH4bF/nb4z#p*=B3ux^A=FXH,H~_j/M՟V;?{Cc?tdֆ94{,Nۀ<{MABD4 uwl^XLTثyrhit0X9 \rN9reGf=Y. 0ﯶ_-<\Cj`Ē~|<oY/V|-BzhdLa(W&?YЀtڋOeFaW5LN+?VETW	0o5 Ii.Xqԇ+'`oٝk*%LJRr\M^h[yD͗:3ufwk~:g@I6A-fC[_hP-XzaFL'3)J!2NGC㊲~;Z}-NpGPЉ6kʊ4=$UC.ph=N6.E?D!QQDW"ZAhZdߴRcꤺv4=M5U4kcu6y2dߪKYkxvjʤ7bcNs;u,O ܙ҅3_b8D8㣔ҋh!bLS
=
Sj+%YEO˂4;菦Aizr18v]Q54"3@A=%QT9p$wR !cXK0˕-Er[,1xGf4C	?TbC	1b6(jqwe3i1(e`tDg!QƗrA,Dȕti4ʲaףA|ҐA%ghVeLMH&0F%&˔l?JBf2
	,<uAKv!o"$,	l2"Qo#BQ'!"Jj3z"	 %d$(ĨP(k(&zdH*yA,Dodl!AjEfl 5
HG6QlA'XD	:$ajăK8Q$h&M<oa7B0/bb%XMw B`O
+X0JX
С1"B,bqH/bIo
(06I͢U!5	lI:DY%Yd)J<K M(	ޅeBfDV|D!vIz(Jt0rZ(
@zo0wX<Zl,%%{HFtSX a"%Z`b$<m"aAϋzA:s> Z#f^@+tb&*x`,Ta w5Ȫ LKh+^O%(M#$<EH,0KA'0gF4a3	O̓M5	&9m.,:(EA硯CfvtLAC  p-PUGuM6CPa+AԆ)@#ыF3Z;	/,8duĮ葠j26t:I1CF6mOC=,hku0T 
@q+׈Ag!ak.^1	xTKZT`&8ǾE[ZWR=(>{n}nM!cMͷn[ҝ!y
Ɋmxͼǆs\795]Z8];z	;Ƿ\yjFE%
ǲH&007
UuISwT}+*!(׫
pwST~J_5֩Jˌq[f^TAY;rw_b/}[^ӏ?A\ȩ2D6C@O}5eOR,U2@eS*IivƃfdQE.0>Q >twi,2/iQfn|ظ\ESY
Zhs.sӸn9q)bӸ	YjX{X8tY3Lf	C^\J>y˶$'c?{m[r/3>{=#+K$u=Tٹ_I KݑI>-$|Z_RvEKoUq77,vUxr3KSlRlԸKòe!p6Jv J
df.9kxxM$;QgNⱺC>kSZ'^rG8 &o5.)Fp7}??W{Dc|oxW^%\}oNifXɏ.vy6|97,?&{YO)sxs'@o\kt;&_i@rHv
ot~v\ټVԛSQȯ>I$v,u9b}ݫ^ѶTϔE:n3;0j_@8[JKI&47dص4öpi)1Lq3r" =lE}
¬#	rŐSby@}D6R\tx߹rQڰl]Y]Aw$H
"y@|׵$dAL{,M\N{!`вK,Iðc^2/K؈Cҫ^l9@hZ»+qz~|~E+bWY6}hNBa0};{쁇:aKl\N]z͠:]vns\K/K)eIJ(GA"Ot28T*/B Ij[`VW^9j.wQʬ`.N~9Y(}{2C?W?\,zEk>nnbe~Is1fS^w\2kxnP|r]܊7uf2^lu7}CvMIm.<򁑿-ų=Ѻ@z)ݫ]m#Ggk`r}1r:^M4A GCUpn5_|g'[PQV?i"0WuãX}ToܶWlbcmM殲/Hv)k7j&	?۲4;oN'vƲ4#CcwC_,-a2ҿs~Xk_[YmuHM7!!+8g1];X dlct2EMQe9+n>mz]^ݴbaی^a%tZ6ݢ-޹Yx:zV,Y׷zj/k7l#>:{<lOH5Oqvt&/XޒRŮ/ɸIVPoDWR6tcDShaHPvU.Hd1|#)P9$%{oT
Ld2iFO!>j"VXջ57uDAHȼ%xӭ:J7^j[S[6r}>[1KnM`Ύgq<gXi6tmhd
nXMZoW['%ڪe}Jd%St+Uzܢh]Ywehz:imökR{V.o#ܕRYĩoZ&ed[ihĂW:h,.rgva2u!jKh|KN\ooiQgg}?xá3!J1YQzQQΕ-3:-;<X>u[yngqՈ?)D}{lMSV)*Wk8Q'LzUE_pGJ6)3L| Lb4;E/B(En:e_O2milQ_IjlYŒ9,݊'N$IqD%vpr=pwpg8^]gfW%	vvwvwfvvyywr^|	PoWbZti_+|9^.^L(G[IDV7QjzAc/cL/;E_$ɊdZh
E 2"ouݠyA.K-^}J)dtHE5R/A 7Jve / 5݈qM1[ˇnL 9fjDXaF1BaEJ̡U_4gǘغaKܑkEMܟmӕk<qyt!gmʫXMfM) :zN,T^л=zj<g4vw_W[״mY-LZ#(W<?S;A&S*GߓV?,8]>Ϯiz/v<gN7X-˙k޺{/oE9;Oo_{8TB{۹;.j[}fز{w^p|[WO8gJ|`mE5UFxRǥ6aA'HƱF*}='v[q+4~`pp3<|ns8jc+_qJ6,x0wi(vlyt[Hިb1D#VJ?zly7~Go?cesHz\O8Α#oK>32`zqK7ygZ[q#GkAORD$ԥ*{ Q-f;VoG'7]7̀˦:kze%w$|t@VTT8R{i˯>oƌ7R9Π7 2de*CR#v&DBDF"H6RtBV1Ha܁ /_̺
sb3|I`,	L2a8)G0u "{f:	{e|$D{,)2osbd9VF6hmHww7Fʵ4\L#{a#$@ÇQ*)$Xq(y_R? '? ԗ/.]P9\>AXzr֜lj2aS{EYUuuUَ?WGc	UUQ U_:ʮmC#h<[G쮋=
ɊLQo5{SZ$,sgd%sԬ:)$Nh)|FoWy?;~GWfĈ;~\?j?د%s".	1@a2wpA7On}HzLPMw=o֬}-|޼kxMPzEivY6jr۾V&*cq+7w;9*Zڕ.0z 	/aC6Z»{}8/塕11jv霂PZ(j46v&Y σ%ce7u*@4. 2VгxhP&6.4Rf@ҹMV5:+*YwQ]B9٧bƴ\|uVca#ى.#L*c0$aA:y*UVj1Yog1UL5JˮG/W`D+t}s% gA ]Ni7;iMx9kdUΗ#=or7qAݲB}0,*&#җLA&ȅ!#r.OUwOl~8rbQ@]߀[gV&y{76wuAN}@W9.y쮟Ѓ pF"[ ~'AR 'P@HzSm}nnKߎamQ
W2ɾGWϾnE,}g{8±O#h| )<4ye;llP(ApVAPhf%Q50)}\fDU؎U@gtP`Vk0cP t$9ǈ?@X
+C{%ȎU}X1z_i]~Xb*=^mW*s->MdfgR(s̱yM\]21
$A܎N3-W4:)WYY1VUK]LvhXXDPI~~90i>w}X1vQOmҖpf3WmOy,p9J]E4b@XlKZ,fc{Ix]Jb4Ÿ́)T
KA*gl+ePjsA/ŦD;i`DAoV$|0&ZBl$\љP+);ɔ--5CE\G rլ60q%.Y?C;N4|bHmG&tt[­ʂ*E<YDpvy3++g7eL]k	mfecuX
ᚊڊ^T
k6wUoeŃ'L eY'C!9ې%I%Lyؔ\if8: zH^LH&^IZZ.&0JH~(.Y2,LȞĮR?Hn<	){1!2-X/?[ote%v9L.A06*~zuˁ#"2NE7 C1$eqMP~$ƠW<A!|tYtجG_)+	p$': z3f!2j:vȦ^&(m}I6L/&)?tuF !R	{۱ڎ,+7ln^iy%qQQˊa܌^6vBqmh\.CG6\n9I/`f}ޥ'&5!a|H5ٰ2n@}؋&s?Z-˭փ|pWhw	,z_@;%n9®e9xuyjSbm6 F9t;EP
z$%dGf`J.Pڳ$2Ig	ǐ%{>a=MsqbQb?>2N`%ˆ	E7M*rG|*НHt:?J||0g	Fċ0d:hP+^IҀ*e*w)el24^\O')(G=ՎM}(P%x#?FoڳlWD48su]eb^Tf0f&eGXGZA'K{szWz7Px8=p0?*̞cI|X;K^T`(,ތшYS4b؏%=L=OEIPFP*Ah}v~`ꓝSY_
nx[dY1-M	2cU\7E3fk;0ϓxtP܁
ISJ74뗑_@sm"oV?һl;5a4ɩ$e&HQs$?룧QC2I=ǒ_)Y*9]| B"#2Ƕ&jp+q͈s"y}Y	F}51b6H16ɲHΫ_PA"^C:1u$Leq/	lQU/CdN06d,اs@w#]ѷ)GQ?J*$ULbH?LXj '-zA00vm: R/t4b!lqlȌ#vt4e__ݦJci`0!~"nށDb $SӛD	>:LxH500IyԎC``ৱPO8uVo4N3ƽHLӢɃ'<`C<	oqNT H&Sa$G:Q!8Dka=5vmW#c 8\?urI)l)Yr#K&& 6/DrtLIqF;WXfm֩Z-x%jZiyI#GβMڦ̭ߙrQ9ߖ.3A8?\^rS*Xtdo/ث80.t
&^9"2Sz/G?=aJ.!T5gB *	;axhE9p8"Կfq4`$2HJar"pN?m{N&Bϑ@p	g%\9dӕ'hN-ˍU2nj>Rl˷ym!x""p	bOz<2QǓ&0ID"ӱZ`V!|Sw0玖b$xlni<9\V,*2cE#%NnmDC,Bdz4`2JFQp84,VY*ȲY9'0f/8?QZ@ˍ[M!\az\ nbOtH1 oP$8(RGM0 wJP۵LN"M =GCQ
[mYĴekAӽ(W2dY*|ʟ3Ԇn)ٽl?PW:ؽNLa
@?~c,7$y:hjT6t$.	N0tbd)	S//q<A5 Q5tj7;iڮiY6_F6LOjӳF1ˠf,̏K?gGeCzJ|iK{w'i|>#:ُ2K$oc^ga,4TPL?8[>jxD4:O*hfY7ݲJuH_?95fQ:΋q.Ɇ0tYLY|wB<i//m|!?Mc2Zx3eL^7d&6xS6̾<7/|ų}%{]mYwknϚF\sw}Vz9/V.Λɯq-+'x˃nY=s3{-f-(jN:ʌIHO'rgL;Dis, l$e\!!je ;Ȃ!ŕͱ/嗋X6Tb;!$Jp2Bj>,}PX*[n٥bٌpXaWrUy4F' ]̒'apR%T-a"& !-FQ0h
*P;UK@=!ie_i/ʹ~)}j̗~:ls\tt+Sx_|lu6hݎ]7.AԎJ
5)2eFAUmtw[3~*%47a)FATxECyiq+$᭡$/$L(Q6һ?.xNR3Hu/WL
pL5+P˨6Bz: #QP"p<<~46gQ/6S	KM蟲P!$0ҽt<ـw3[Rs[tд:-(`MoQ1v7?i3ӡ$/`iku6oLB6 a6T8hd#51{gЧ"/?ؙ"b*ŦZnX801iCjeFd\qw_nFi`bOuo7xbِ2[]ASZlI؟LYԃ˨j	/JhԠ氒J٭^$YCOo[DP#
)~bh)>{+{VБ2z<KuOo4t!Pa?4D5a3T=Xbאxm	%dDf~`?c-(hJ"PZ^E*"p<~j%y~3:|yfѠ@zc=f1ᚱV۴ptc׷*'cV`+Qb3c7:9r9g)+<ƭ$uBވLV$Y.6"gG9`r~$|	GLoa:{&4O:ZC
v*EuDmO, `f>a#$0w >Z[nKR+ucKQcJ66nހ//LU2iTߩgwǘ{}餹\ͯ,,e0凬R-LD~\k&u_0k*#އK%NCL2cf;bAYzto;!Rxʴ:0g\1E,u/xCb1U 7&k+`%9HP6	]e!3uKf
]T }|~e`Q-V!6bsAirPƻOXNrRAjZCmE򖕥G.;'`fB]
?nCCPer@$ވJ$wwkPf
:NizF(dΥhX 8ңVPJ[A_K_+:@@ǤG0
̻M)#@9N &;HrL_r^_[ѣ
7VTgYQT-0yLEYl};Y%
<4OA\b֔I4C+Bhh=fir7m``|gGilrsrε~WCUY4zm ږ26ߴsj_t̊[zׁD"CIF#B_bKjb\_!##"ҲNJw݅ wCu6 <$a4HP4<jQĮ|x+`?F#"z	A$
V?-837lHN$J_A5Z-|陽r#r v>:<-Lf6yg`Κ.+NvCe8z/}0A^/>[7]B5Vt%	V467yb1z7ӤS'udHK=Nκt⊕SST7]`tִ7tI} ҷge9*mx jit)[`(lHSVJ(M4ciCT82h+}H> fcYOC9o	}X*f[	R&H ƊW1LE3uVv w~_yݬgp{M@c  }`Yw ={59Y`YWT꫻g/O§b:*;\xvywu 0ԈKG#bLEGYttHV)Ƴ>@*k@ /`E8N?}nD#١rLH"dFZ>_Qdǵh9BWQql ρq`H7RQyFZ-J޳8s
D[!Q*VUCEW:-ȍ}w)-<K.LBJl[}-&}ݵev&`USISٝN}ޅϗBEF~<ڽfo`QBpMEQ=<OLtq0-&{0{AGĖAdc,!'vv;dOy@rqxpgx(5E:E{ 79ZRB_#Ov;Wx7Ln0Rnֳb݄5u={zxu E3*V~RʤQ^(V<D&{}UTگ8i&
eVb {JVrɶ<YXiGP{zMc%4@SY,*^09^0&0XR*H ]XwtI;hKy@- C˦Y^)fy}:#oLkң
]u.='{3gMeXud&|~p@<V>=G"P;EQzDDq5D,Gd^ςW++bG) v|z|;t[ '|>..\7P>|ũL{|押ڈJ YXh1ڀ4&#Az/arF0m6Hx3aqԳ0_d#р/~Up@?ΨIgd2/NI4zJz ]~睤')q^*Wƽ@d?=azd0|qlJL4&}t`wq+meR<Uyj(Y7yJ5l[@<PKQiEKIZi㶥Q[ЈkS+ۿ^&xyoWjS26H65,{ZIhZx^B|['aI[}ws-;4Aŭ}8	@zOˣH
WF\rt)5܆%DZɡ=Lw";[lJ8]&)%K?ajO-]5$'(=tS
{}=Ԙ?Y?U)1ȕvd>ߴrQQli`Mb"A%1|b4/#݄xp: 8]Jku䈊@q7L1 :/ ݇7͠?[U~ h5#}$sv;2BKbFxU{=lA*(t2 5]ƎGW,ޥxcmULV6R/J/5Șo$} Blhk`m`W݆ }ىwv&4WWZ|=jhK ]4[Ehgg`vuacNtrLUyIa*=ϴjSrE!Cm9'd>)̮K5UIΧ>E$*}=*ľ P=9_PVVZ?1DT0;ABhAEŘd P6mbfFqf/c*-qI)tS)4GJ)^7`hXJ}A8I]e<Y r\X&ZY 3,ܸϡݪS
;H~#hnf#7Y:=`zN.),p	Ѝuހ/I'oSK7.=w_}j_KWa	yaLOmO.7]-ЈnWCDK+G Gk2ND &/F}	zKpJ{Fg+]^;apXs=򣑠HBzjzzZ ˷VYX7+PnbCf`F7PQOh#Q'ϭp!H%`fO)Dpو)9Q*A0rJ̹]JmR,Q4>!b)rTߟs1~(<\(ĩd.M'K͂m"HطL._R.(~D|eoNY_~#:yMim&#1~3LDԋF$3^QHg1t#HY!ᨠ]Nf+Ŵb#X :\Kw.v\Kt.m1Z
\Wj&v.A5#PI;ǿvPR\h51ASp,2~ow eG7&Y@34z~3С7[@VRqzGkΓvJ삍8dsl˙Pasf%BMe˾{HE8Cc0hٲy}n;ыJ<B^ة.ОPt/D'd c@w\Wϊs=˰x8]kJ5I'DAlQgLFܸ;讍*gT_M4\kۛά6oYPsY`Z*Zpe7}|Úʈ=-:©?7n5	~WŸƩ~CC?e&N7ZK"gE*2avw֒y)!*ug`Fτ[gv}wZFz{lsMGnkph VՏ[n6	]c8 Ο-Fp΋sdD£Ny
xMnQQ*4W#nfu8?:KyyZ+RԾ/TϫϛI[T0U0 6$Hněω>^'IzGq(%vܧMɣ#Ǒ\`}!YT{3f錭^x<)vk[y!sHM鑴SF۳Pbq	d&=24-mn<3+TtvApi -~C2$ppƝБ^}*A'GE[J9s՚:̥sIeY=ƌyfz(L*-vСCɤCY[^YC9_(ݧdmqcBplgTV>ődfhG#?utmњpU[T[Ο}sw5j5t7yv35qWLnZX3SnvTOW%M5Tl1X"'
\6yݤ*s"`? w0vHUxz=՛0ڵ hzPⰌA$Il׷r`ޔP6J'Aoy^mҺc#{RLmj1lM<4}0zf/J+cOL3%9b*f+ON#PmlTdd쥌$O:Db1U` >8cTĬ!*bDd=ch_`)WRtL>;ƥ8XGVϪiǓ>SwU&|cInp_OfA/_p}AW~_Z\@	FԌ>i;z6v	[![?Uki(W=QME6}
VN8+b@pp*3'IGNI&WHAc:H]\G2pW?b̰
H[ȵ'[Mc5t }}S8@r>`8P0иs*NHFm[XQ3)}	*{ĖCMU&hUg-J-NckM]c9޲&j1l]`/j՚M#*kϤ7Q'й|Q=d#v~^8IC0J=0VFVȄ$e~,Fl?Sa<f@z٘bV(Z-t38tJ< 37a4$.*2ݺ`3XR
NF+pgר(мAw~k>ab,v987%x@Y"ZkJ܎`WsXMT+=A\
b6+ц;cLebIp{4Ҙ7,'j5qq7Fӂ`3-:F}ӿc[]%%4!LK"i[\tzn*)PYI.Hl0P /p (wazp]<Y;R9ՌZc%u>u9u;(Ke*YéO1E{3,X|īVK6Vyp`F%Tt^A$U /=!^ Lk_-$.w|ìïcEf\t[[3Ck@J?moӫAZY-E]֋|H$*j/bbN({Q:m8mZ$:CQuSZTqYHuvaw<4hz|6IZK>h,keJwY64j6tM8ުnDnM?SlcłC-ot#(}_(,j W$$> *z.:x#Nj/u012!z,zjkkxx-E#J^^ 'DF8fz<`p+<#b=~-d!0ӆJY	<]1pHcՔ/ZT9>fրًѰ~j&NA
L̟rN;nXdptSSr>w%_(,Ll'
њAЂJ*mpǁWeVIV;=/u:b׌]smgD"&ri_3q;>Y\wㆯpZeP᥍߁q3J?Lzx:p7lo	8"`tNهsq?d:.ք2
3^fe@p;WkENcIӥ:uC:$@P^%HS>U^X	VCM塯qYNރ-Vc/8 GX 1>ZVwѨMt\e~-Jm<-iܤEj|ͿOxPB!(yHߦKGP297AE&̔2 ތAXUzMF)FvaZo>[_<AAAuL\.(PpϺỔ_ť}>ѧX5"[5zt%= 
Ɇtj`> `Az/	O0-٥W駒@7KoI'^PYΤOJ/@K0	:4|KDt`f
S?4{s}`h6z{W >JJ0Yq=B~5;{G8xpyx
lD~sa1 ,:Vczt7JSʔ{Wϧӟ~
ٱXK_6yE5]-uyNħYJoeIF2S>%%m}m	>HH6b5eB(|#|l2CW4t>D3lD"q0w+Y0#EhOԂc#Ko@Xq]H'Q/ A1E/M$>0 9FsP+@"p"G0`x	7*h0X_Ͽu\dO,S*/	$ɇ%FCE^:#<yvR?3=V{oXN]+q<vq4 c=,k7U;qqRnw5j,kTEjHpjﴌj/}Ѥ:WG?}pw]E\Wv<4Yvua! ei!RՄ:H(cqNBE>X
X0># ܃acTr[it0J]RCsarUOZC_l>xKjtN=4Vc>|o	GjN0yO8tEͲFǚ/i^h)NX8UEtr
Ҵ*Tsf+	WQ[_-ak->]p1 nfaV4?d@kQҏtYwh}S6u@L5xxKuK9zw.X~A%kn m2ksa5{)|*$gQ-%Z SՀ-]/wߴl^:%7~K3ULcj9dxtA(8H2II$Mñ_l
S=Ǖ.j2|w1M \JN*@(:MA`eK0Ppp3
Gͥ{ʶ'0TB*oD$ъJnQEbr7dnOD	14dg͊x7<4eMrzjkg'>.rbvzG f	;wx}h'v}	%H^f7Ot֎M4qY:9`&,L>VX	'}&}^O5)>Xv491U#lYy;AI!JB·$<F-Ʈ8[Eè<v{l6}XYS&ffrZ}MeM`j869"nJoPMY)*^MeMLGVS4IL',&fp}[__hPq=ee{ʐ>sUyc#G0R>$aY@	ŏj\P*xQqxn@	XԁNbɇt$y4Ǒsv?1&0wT$^cH)bi<xJ 27	%򌀦O U,R#6#d)\`x.&f#-Hg5*F<Sjєϑ`1K+ŢG*zߠ&@@A2$7?n"GIܴʂWzZ$+iqyvFNr[BQ+f:ÊƨuiaiZ3 gT4U@S.Tl:U0 +1E26rjV($SlЌ+UƬrNe0[ i!``MUajt,[:5΂Le 8@Ό٬e6}Nm0cX$̖24&ح.!ڢsQ]葜Ch6c	hqHkiZG̱4_&htk4gu6j4,2WT9gP\Vh^Zbe\),;!&J |az">Az>Y.;VNӂE{J>RlAYݡ	,VӺ\14<E֝Vy^ir18T`uNfUk!0ii5~PYp\"OUΎ?bisK)d*CMłvج|j@M-
DIRV2jhFU@}:(mnPVyNVm7 4Ƭ9T+fDIc7F,p
MNXC
Zwqkqka	~.aGڤFUk2N	pA[<5BN5,0Z~VT uf5  f1Q+fF2Muc
= 4P֛u:@Fhkaism:copj\E턐S}VW:,WnxVP*;رl5o/\
/]- ?7>iɬ_UM/]:c&a<A2tZ+(hy`.S6#b,#C*27c ([)vݮKƧ?lH50眷/aw~`&t8f^yMO@cisb5tIMrv_Y/r e?En{L_7鴿gp:'ƚG QY-{H3`+ca(*B`#LWwqӲf8>xJg -P&;%&Q0^s}a>wa`YUގMOy'DfUDuڏytnex|P3'V9T*ipqM[JCOerɅI[>qissznyG:wn^H,J+A"28!<+e,iKq.yJǜ,Zubn6700Vwx5&>5Noa8J7hRSM,ai{=i,2nkˊ:ү6k͢H/Ԉ5YKiy
\RlW&2T,ٽ(17{E!{,2,FيVFŨVH631;,UW)sw3Aw.֙ yH	({]xҺr0o(87ᶶ00ܲGzkJI݋/P.+ ?Vn,U]h[FPzC7LvoIi$sm %y[67rߣ3P&:f/d.*(ij,q4.2#N$w1ƈ
[G54 Դ VpZ(@bYbL,cǗxGZM-߻eK>h>Cj\2&PN5>%ImFWzӤr=pZ	F&tgz&:k2|^~ΞO	R<a##`$1P'J!9/buOJ>rhHފia7*̂wG;qżꯨ6'S4I?}k&(&`}'Ǎ+|GƥtHQ~bSypu%g8]"Ċ
~ \/ڰ7E8Tvt4.UV54sG^o^f-㓑U)KCi2<!1X+AРSN>jn;"֊kqb@7W(d߲ϛpłmAgEPd&S?Nb=ّFB+>,v<K_7]oaQp_A: 5q$@{ 0Cq3bsW D]<N9~:D#P1<ƥ]MˀIm5b奅	-yWd͎Z\HG2=gՂ%T r-j8ħqfTOcAwZzUj:ˍ+̸	]aMYk5-.d͠iM9!гboCWU|qK߹Z#MF ;ҒQGG_dV'32I"ԞD1+	 8>V@X!tc3lXG.Q.(@1_Je#BXUtx6ΰڄY[_2yZvVUՑː8 Gf z/v_,:x#]pe%dy~Iǖ܎
fY(cX	[	ijbNuaIKC
wc7;-<Y[{f%'zۿ/o¾mOOM\Q7ͭ5pYώ:tT^zckٛr
5ُwL
\q]眖/_l4y	/-ҵx0r	0`i1s/|[ү?q/(aO~YW6K!ǳ`oeg _ܿU0)v;"Hh<!6 ypiĢai4DN={Vl27JN(_]2gs^dSkAԩMX6{~tejZ><,Zt$*p0<cܮF^9uor%YfͻO3X ;jC]s,] 梺'qFN2qꆍWttvpΤ.vцbhqfKUpV#Ŋ䗿)"eXffmU/ͱYYm6m^t:nۖ'k iZ~v -&f1eOmgQ'QNXV5P'-RDЊMe&UIK;JLsNY3[pIR?J~C/.s	{ny9)⧾V*9H%ϮTv22WbKzqĖH_ wy}?P=뽭p2J_K X[O_G +1_?K_ ͭOc97%U~ALHkOUIT?O,SaHyY/*lWQz3"8O\/<ݍk\\]c?}xt[N-Sدӫ:z?̂X@FVŲNB ΄R!ѥ~50($|N: /OsZVAK۔a0t9+ 5%KX|bk{.${
jU	+V-l Q{8SFxOto%U7C[EeE8d:b'zH0LMnvT>$:RCELẳnOOZ0}zJ4$,*h{eEʸhtVGǱyw|]U(:U.-NaʐfH$hva[Hl1RQR16PɆK	w8g'x'cX@fcb-Q"!2+:)H%p:b<4~2gCuUӍqոznSU1~SyV5:mME1;yM14bkWO6ku6ΏUÎwE5(gD:Mbkpxqnfce1&XkG׌#p#|DY!
}H鱙`^p5-l<Hbeں ߽yۛ>L'3L
BzЫ04DETE7-.k[{2&dޭw9;t<XWFC4Px.59L뽃N8AYZXӗ /Ɉ>As+KXܛSé)b
%-q_pO|_Rۢ&Yd@m!G#ET:jHrxR(7m~oVjv}ūya:	Q+ƥ/sQJ7W!ɗYsv}^sޱkt݄AW_1zF/Lܹ)(w.Pt)BwPy5v=3cxLi;\-asҙ_x	;/]tFa>yǠgD_Oŀ{ƌh`:b@133躿L|)|F?K~wہ5Z4a8uOlO_'ۊК%#wE))?U@TD[㿱0Mw'2kR#,(8 PBD@%"(D񜐉^MBG)KYSz8Lјz~t~F+ME&tQ2eŒR(i529,-VALLf:qA+q<)¼Ɍ[gx#ACo-͓ P~썢NS407W1,$txUevf\DXʮ|ogh4wdB_^k5E_'ǨՁiW~Na?P
(~
ts	лЙW o}r$q̮In	jxM
R8\C
Lhze<AlW3fA"a"ʁ~A책)8M1Nf[@&-Rf|`!osL`R%WJTQC$ ~i(¡ӽz$yɠ=EzK,/,f^f<ZMeF+J}GYVXm {(	F2/ji;^yeGUS%ġ4&2
픑j'Lf2}8@Lh*b>K%>*EDbl,VP^e^n<翖gg予)e3'<~}%V_!__S"ʒq	5SYf@zzvGK˳!ռX-Bp|>E9SK^PT9Il$Rt$/Z.mn`rj/_vR0R嘽sQ`Vi[G?\`wkmK.ju'`'
-`-9cݽ9昘G<y0=9#=_)t
rt.,ο￺v>۬
|=21۝a78=qs|a(=̤]'?b>=Z,}YVRp'OYn~۠19"	@kOz21]ǀ{l;$&/oZ@|QM6)mN#P{/qSc$ȊR+96fݩpw?rECӧbW拔(`ԁ,ɒ̓<ޞp|qʩ2u<nSP'P>RIc\!NL8@bOEto&K"KaCI
iKd15mq<E\`	ь;iDV1F'("t$|FPm6:=|Pޜr{ oPIr8%  N=[nHò޽9]ZN>*eS4O p)X.m̉er2Ds=qj1ƦWU*MJO9G-`fKQuq)p,*pڊ8:[`(R@:$\%%ϤWHMWNR<7VUi}8{
dXҔNUe6>!׺L
#E&:MZ6*]34&:=U͠jKjwXA5J5LCN->B&u Ml̹Q#lZ&QN3Җ
ګ| F!@6TqpAu#B +<SfLM$>Xj7ϒ|bRPkGRN"GAA!wD"CD}t>Rec)K6YBiƼ1ٜ27#BZ3ZU
G!r3hs&}hC6֗Y&\=OwEֽ>GoOk
7G$lwTX īM04͸rKZ#WXR UP$rs#F`ii[gttMq *V:#/sC蟿5uR!hq~?ٮb}@,'^%۩Ux>@56s&'hڌ	Es0D, <M!hl̄ ˧c."Qq L/Ё*XIjpE&kQΡVdʫVU|>۟SSf7u}.^߾jTRYF5,Q~NW(ׅ3F[^g42nߗVhQ]<c}QC:VSf} ԓ;6!wh`?{I9uB٩:R,eMM=o*66ljQ7IĽDSY\ju'.2g Pb9?p(_@BIJ)ak f:]3`u[.⾈P_t8;P	.1FCN6W0.ZhܨALi	!`mf^ OQ?k2+@꠭Eq,z~fV3v
>Wu杙OS(VsEvG|S%K7Ҹ|r:ǩX ftx2C'k 'm2R{'g9ItPBkah9 J#IFe(iƆ!V]J/Fi2;]VeOutVes'S
Ӽ3҉Q
@&*&^Z8ψ&	6ý	.o05U^nIoϩ+{18O&c;S]+"8[~fӥ{tL*®`c#LP`q2$&{E3cŠ$5wϤ	,OUZ  TqQ7ѡP)MՂEC71%vh䃪97]_{q)z_>+(5U]o- B;I(%G4 6_>+0FWZ݄-v%T1eRu=Gq<h-F]{轞պJugu{)"o 1Nd_"CٓSR'bĚ|A&>HJaL[Ѹ֖##7p
*&dÓw	Tm"u`z͍5/?oMj]hCE_@.ͫHS5ԃ+N5+ou)>ݿtֆV6XDl.P6)e.><~vؽdr.ںm^;yɨ=GUA,{qg9r:6TH)aS,	H&d}=u%G2a)yD!<:jABW`PRJ]#KE?$8	9'Œ^L~Ja(8|4}{@$GC`ߍָYTG5nO6xԛJu>Uwg}6Y:jiY[]ip>vڸu>$X[OQd	2]30C=sL>w(RqG܄O}S:,qs=Oj_=y3`rQ|O<9ԃ>mc^^ue#$֡?i!d<^ҿ	?ئs.ZsCnvvd-{2x7,d%䅝'@6hOSԉeH?:CfzQJN`F6=|)Ǟ]uC`ġۮ|
U%`hgϗKߖUYҒC'jygArÖGtաe55@gq8u@5U sH>W$y׿r$mnv5+Ϧ|l۰=hĖO[?[[&L_@q`\{s$˵)C??gя[6<p  )oR( d9At9:ڿ	VtB}{b%]w!I֢UVKdh{/qɳoq{NsӟG2~X%~gl3/ii]^>`(_eqp1o4auzNs꭛sQ_ޱ_-@p<0|3O&;ivk4 `I 	D#%'Nr~}1F1Eo4Mc_id9US
\4rROuqe!|Sܑ$AKR WTAo^OPn{hތA:*`JK|N	K	Cvi4riC`dB=]L9(z5{&\O_r0z-kU*@5
ĥb'{H! F^^G H0pzҖIl-$%@^CCZyc45`=)4	3</MZ(0 2r	\I6LB76R2݆27q)Vff{*KQΞwfBLlH^"N?._B%҅fyFbz 'd:{q#ow} BȞPȽVm
<p|=m/]1^m[=Ώso;$x
~@8kT6U'@Y>eTt!ǩ^a/4#f9G[oɲ-~/oSr5-\}.+ӥHA;ȧe~)||}:4CmHg)_۳TaG^ ]y|teI}uPįGsP
efpS ߂>q2o%v)NNp	tN<twbQj/j$5F-v̏)-b3JflHږ^'13QbEx͜#1ޟJ)Α3[cSҘmiK@H0}1LxPA>MQG(A>Ak1j5PL KTIR+$2B&; P6f؎[
94\1lJѨRvZ"3d5؈>4bVI'BC8.ULiGTRl{I`@4jIJ5i@"QBL!ԐyxyϿUzǨS)Y~7P!WNeZIY9s
e	Y䯼!T(A|R}ߣr}VDLp#-({+ґ[[pNR%u3kԊ RNdB* _(Z$JW-YJɛ*zYv$}Zi JQj|01F EQȃw'mvr%+cL=?ISGu192 D,|J1|S6CMcg9s/̜M\ D|IpFq=bm{2k, Hx	z?`hR6@.#a2(`r"VɕJ0%)Z5+޿qrF6iZbu^JpY[xeًF~B	]ư	WZ5f֋tԡӔDyNPĢۜ\	sW nK:)#g4z}ۭƘ/4\;[ds>:0X	HrNԎ+, 3m߆7@b0XahG <pW[yN	X:qP=z}q\oXrd`fqZoh1:1/9|li:Cpy`3tt'?$F ޟ{' C8-6'9@?aX92Y<u/ԢOf1Jw*Fۈ>{ohν㥌ds͛w_Gy^_,OSxtd_t0xƬږ6t\U*t[cN_e%,@wsi.NYT78:w$f"eW`=T7hĴoxnЍID'B/{w?<oj##_2X|0qnS3L@׷K$ϓ`8-b8.hcq"gНvFXU)!WOu*ߴ>{=9\E	@6 J DybR~sbF(7`a-87nFFV7}5ꟵƌG/*!o-3SԔ<M\@-߭I%:]ĸXkh57&L7b(.ӧÿu^'b
(xFOE-C?7-_t.G߿?2?F#I*( ĮT0Yq8Z7z;1Y-&x,a-}	)6e_V4hRUοEJ}W<C.MOJiri9<	\˾ۋhbHE<rlf<A@Ԑn̘R;[s/cvkZ]7>\)g-ֻJC/d}{-@YrGxE_qC@Xn 2>kikJω󚄒c.J9R+2h<aDgH9#:Gǟw&ŋׂ]ϣǁ*yyݘcy=# N B0Cƍ=]G?'!6=
vdT0Ü	320pV
vO
uw6$}D^34^o'N'C%]틻}~0/NPZ>i<vX^gݶY*emS)3zիgS.$fhۢ5G`Oy§wrvŝz͎ih..wLzsp 1mŶ"&	>5/2sfJbX@1#ӣoX֌'bdRv-h;v7'^Izho?PVJ*pڒ|NH k%ٿЯܤ''H$[KNo'F]N֓S~ig?	ZO$s?A?_䢮O6nh7}:rϸFۉ>86{|T$: FdS3FL7&!IP6{)5Szo/@١CB*ڀCcW噹Yj@.wfL-Ǭ6we6ˇZLJɃ-uo{kHgܷP@iÛLwY6df/Xzn`nzHZZ.[[sֈ
NEeԄZf4%OnהRDj>FLe:ژYkbE@4f131hlnIr1//'T@KiQԻbPtj!#\O}64-tɿ0KN-qmVZ:fqs|VU{hBQA{ɱZ׿O5)[veU~O\hM#6Yb*M@u{tUWy2df3
C%VB}r]\޹ +7$5@9:瞒ߚ5:uBoow4M&6QZ.Z_wG#@{<.*wZ9Q\qƽYɮ46ZLPKf@:bWHɁL'aa:!S8!i- FL#Qԅ)8oLoCS$T>zEY?sq1tG]m48ӽ#C_ǔ{\U쏣"35Uq{%C5.b}3sk=q5H5[,byfsZ6},4e~|K]%TZas>xd4YHA-9BHJoѨ(ZEtHOqNH\})oq#ee֭*ov׺` wуsAkV?Q[5dsuMO|00pY4),C}1ɯKJ[[JMgϠ'T
R1pe%MkɼʙQy.w2)=>yG~w-(y1\n̨SZ6~eCɃ ]@ybȺuf^n ᮐ3#wlFiVA"#^~pF$"db&F%-Ond0Qu]wkf%SM46&=OEr?So+n*еSۂ#M<Y~;3Tu|d!hPkw	:O9$#"j["dc"`kEKA61O`bBl&Щ]q[C.44&uF`RlaDL
6qTf>[1R9T,#CỼP5U*51c~Zk);V],q~!肀eX$S& AZc4hBZl%mȬed ^ӛ'p7
@Q7|2Aap d9bAju욚Lssb
(@REGW^tNm+ɒC/%mcSG
	1P8Ɏ\#7|uitvsMu/pܹd?y|o߉%i)_Er 9\XZPo.7O>fH"`	ҴRzpnxzݡt+H/+kꞀo}ZƛPGI^}LJOFw+:fՙm<f{^7yHӆM)}AU;	Pe/vH+K5'љWp@MrC^9kSo#Qq2yWqﴠF;kUz'W\s3$zĳ֜܇4:zuW섯PC@kEdPHY$K,3BOB6Xuk+'Sg,g"Snum#Lƹ'=7@|	Ẓ]9<cej |ɉ~ >m<Ze2[]QXRLSXeݛefdk<>c=a_2lՓ[33^K2.'#Wr&l9eq:YܼΥ졌E"gB^iZmTдٟt VngJiN[/d`nv`zү{F8I.blko^ͷyn&>vE >zڡiq *"Vʜ8_Ike~;Z
|S #D{;;=r/ͻt#n&Aꂂ{[WO*~?Na.S: DpRD1 j`,ULo|m
9!39^G}st<;bLgA?>Ѿ	qp	`6$po$AfO)Vh5I)V!Nh
~kL׹]L0K]1vd7~S1rW<~S9Ǝ\1TJ>tV]Ua\Ӯ*+JViWЧM\ߺjR1@QygLp4A?#&!Md1s`,*]aTWR$¢ CuRd36O}_q7
pO#|yR%/mv{
].eez zҡ~P{Ǔr\&ѷr68rc<]`'pqq9LHyFvWVz'Jae(nx`Y_Lxbl<g
N.ZbuՕ{G\UNP?._v-o&zI\=?ӠVyqO*ѳ_DYAJ=kO0TBv١t%q+^&?^EE,#:T2xt2Kˣ?MNp!H$ڄ6%.ܺ1@yt{kX_oG	t~hRw7
F%JW8+mX//'Ka"흒X߼4#"MD
!3ucBor/o+FL~ytb8?),瘓qݓ@E/N;-\#BL ʯf@9KhE{DeОuwv7N?0׏:quBcERdazA)sH
ވ\OŔMTpX5#^/Z$'0.5s6<?oaø[3,{qQ.aln[ehxijn ̘˫8ښZI@r刑+VL1C&$'3L\8$6 입qt'=?(%t>k4|b̙C{	pJVKp$p܈7ƀ9"Nڹ3y~4wAK0ͨ<J~I);̑j+[. \`6dJ΀Dяx!"b.@@9SօKQOgUPh@G )4V}]
}JV򨞭i%ܽaM}$_<`ūRG-+-FWJ홠4(V:M^ sWd_;{tlRƨT2LL3`S>CGbPdu PcLpLn,gO=/Fbb$?fW#uK~QNy0J|'Px:1rяЯ[g.rpG
i~R`)	&E~I`_\gDk'H)'~=q[f.?yAO'p,JEYpym8Rhe`F%eA#~ { +B:N3+ڮ7l07u߆PG	j|R(CP1B+2g{U7srBo^%o;IZi99{J]ȕ8Q#;p)k=M
8fF(Q#i<j-3Bсi1ҷ 1FWO&g7~BҫE9bm*ЫcML&@^Hj@w	i4u"$H<]د$OoG`()Y7B-DWNO 3D^mtL~7A9V? 7ZhG[g=93bQ aZnk`pPwLi48:cCPƣi,>as&ﭯЀ.{lOۂiG.o39<ZgAQ)i?f$1=')2g@ށj6|C-S}="Q=pׂYFau&8tN(pGǓ<Zon4Pr]k,Q."mF4SyaҸorOpć=`%B@z0g
ufp,l2/ܓרhFI+m*UĀmŐpߠֵU/7m: +)̫j@wマY-Ƣ$G!c@ jկLCnLf1{tj:kVS}p1Vھ7Q^jSԝ1;Q#<ƓƋS!8Oat`O1n2u'KY5(",FS0!C68yDz
L~r_q1\<~A,d5WO4;D;$,}K]U	\W	$Р, )q'oqƏ)N`2"9!(b 洢| o5엚xLaL2]H|e,/J|6Ҧ؋"fu:dNX'Z3Řjk2[vÔ\l{Q1y0;x}7ӆnWsfE|8;B\eZM߸!'d	>lV"i`Eu|YN38s/ɝɖndeA(BZ'r| RI!L.Ika>1cN3Q଀9 f7ruu,ۙ*VՏ[dI?VϞtt:ǛWe5k=|ܼh.F=pȈ>؅1#tX5JͥSWPP^ 	b Xb(uΦ䬤z%mB䭩:5PBݿo|,L4HZJv_H@7\px%_yC[&On-wVWxf,h7Y22Krʽy>)0r,f6d1?UDG"B=sxK|
\:xJb?KcMM1X)춽gwf,iǁsrZkbAOV%Q`"W*7f욑|jcwmOn:W
F>ȊۋJcic[	٪vSj̯90\[5:I:X ^PRXc$2n9b.p'xb{FOC>^6ǀAd=89=:r!3t1LBd	:1@FF	12mğ8N=Hx<A9Ly Ҋyh&;'  剨Fa:A(͓{<'újW36DLhq;@Ŵg#GdwVl9Wj&LbZcQMpB,#.Pim{czwtطYcw&99Jf-#㉣c泃[
egdY솫Gbf{W[Ϣ!t'+:e,s=(2PW⺧<k1YՖAշϭF`ά\mM7/kO3ׯ(e7z
=_YW\}Hp
oiMl]iqkq)u7mӖУ'li)ESL ߦo@. SɷN`|{;ЌS4%^c--1x"//?P6+ VT59τLy\EJ&MRteY8itr2Ңn4q{,8vFdIM\Z
%.FZrdX2 gxJ*%`>'I40X}הA@ui?g5TON<x\R[ԃccSj?wi'8t%|	$
, 8f1#~b>R${@hiؗ	>Z:TM6yI{*xXF^kGOLuCf*u M
nnJMAHElEz@.A!١lIz%-+|_ؽ*	)ސQl_(p+[J2=Zla:*9,NUQ-eD@@Ëbѷk51U\!ٞ
njRĩ_XvcQD4t8ej(*='_].
.XRh~FWȐF JIwiBI(|:oF_֔WP]pC:1SұQMOWfmUz\yXg\HWФEU3ʴ%fgx17z#;=Ӳjʤ;jڬuY3}*u*Vpb	B.kJk{U-K,#}8Rc[	%s<7"6T$e  heQé!nz7ie&jSŗ+y{7 V[6*}ґ84j[9iqktsp΁/5ݳ{Cʴڡ$q]v;p3&xk.oma{0LvO>,)Zv1鉦#OǷN}*@_}чS/>?]^5u~%P\| 㷾x0ňv'L:[±;\
.c40<89zAы zMsă͚zQ뻠 H
UCr88bSmP"	F(E'4C.y}	fV]<GQwLR"5=prA97^Z=sH>]{_,Ȫd2:4=ʪė%Y!l-RX%z4IN»9@Nx)yL7k,jX{0	MwE'Ȗos*]JY;JC^m3(lL)
v`,b)kAa"P=x o%JHbl@Xь	Mt*
JlD;$(k>&aC(4ȼ6ϑ)6!`lOr|N._T<i?"w'%qg?Ʌ8^eM:vt L(ρDy6*׍U29)?>/y:p\]q&Smn9[BMvc#amMxk+P W3̫HfWuu~9$`LL0,Dt1cV! r#!X";#1~/#um;iּVhX<N]d\P$7՛f2I_rq8 vGo1 bb7V#jj;R8B&f^Rf[;A7:imӈaKSc]簄vw̮㟔 &@7C$ s>!+ ~¼ߝ̘>>8ϼͮ(Ixezg$u }<ASxb\F
20#Bx^
hW'S xsVg;FMFPX&O!(fA(Hˈ <!O59B-NfHV);>09͍g"l쪶g#Ë#5i`3pW9cn5,ֱmRUۘ
Eͣ
d6z:.eUzܺJ9cjrUd_]s^;_9uKwE_ҚU2ͩbhsN+4cEkAMEV&"VA@IPdI8~<ޠި{PuN)ĈO̥.xzAQd}fw.˓zLXqcּ}/?@\s@z5<ͰvMj63W)|j:v˂!.sϼɥKk)+(zQO^@{3L")hAc_y+^YӒTFW=k׀/Q<eai ӧY޾7Ew(u^aE#DSE
*H-ђc9^'x
I'b|~S&nHY8ϡ![߲;֗ Ocd[+MG@
YmF=CgwlɌm!HF} *@1~1O?:~>QU7ĖY-\Vf-ǁp]|)TMEٶC,\I?ADԙ3zN6.@MD|z.~ 12SFma=枹f;;O!080I$	,#F#9f J0Q#9>yW"2lX$!E+QLa]G)q"SM{h61D@T0}  e@ 4W%!o
ys^ 5d0}XS鿐ecA->8,y76޸G4oڳ$w{~ ?#Co{Bo?7`'4j7;!oF?"6Cq_.`mf=9	yΐIhq3<iXjx
'	B"T7'FH<)d3aߘVTMJVУ5Q!}l%:'Pfy.Mae֖9]/I3o=[TԧTf׍ۖ,Z㨫H6GuIieGXSyg[(ˬln;XWO:ҳoQw+SFBmqOg4
9:`{-SQt j#]Ш/(XgFg^dɻzkSSG+gXgkpVрsZg$I1d^S9ib|ynaV	P#럍
\<Տ,tM'	N' 蕀+{C};=}M^e+%Ur[40טI
c`+WqGV$͒̕p1E9ׯ^^0{	OrTUUF%-[oBVjFDzL[
ہ%*S.xUža7B|.vu f߼Vz*T@OK7 Pή5gОp-w#u(+b8s@87r1_OEK_BѸW,>ؑ:60>0FMLǌ&~ࠫwWw;KUTUGΙLO+nTWGLhV5<_> ^6w7woq41='ȑt#?J#;
QtjՉg&a8wfwÖmY,ɧ|Ȓleaal6	! n N@h 6IPNIi
5ff%[64?vgggggfg޼ym}AL`fa`g^b2e.8,dc	tƨ`(!QmsOf0PY|s|Xk Hసp%SpY`Ax^X̬#4:#y΢, Gr<:^ ú=2gN*Ԧ ϳƳ#)YZt%:Xgdpgcr56am@nד؅ɝ=|z4s:' x*-|y	栯y1u6s'\	Vj`cv=a摳 S	R{	լW9M,0K/RT?pC {rP7sn̈OIht$I`8n>݈ӀFL'&9L#IDìR`:eS9GwA&,9m(	_=|a+C?-*_<-e 4P)G@Hѕ!Cegt4;m7	X8T?}	Rǁ`:+zw+K(>>c0'(=~Ƨ(6n<fWmzModF<na5pK̿x	KI	J3{?Xi<.6,jt|)ԁYj
[/ C2ބqc/o7~q,yxw3q٫P}6e9j޵2?,! f>;ܰx,x1C#:o$K"<qs56 9t pdWh{97=>S~~]<~lɚ}ܪiل}&qW͝qY?6:lalnsv;wΑYx>	]6	r뮻AHPI(#qFq&	a~۷wd9_-5,伸szcf:IBh w!G4|o+ſv*u|BZH"ڗ~Lԓ2g?ST0L#0LbU<fY):f3s+s	"rѣa"^޿EH=?@0~GLrBYL~8Ebl0`&[x@}E<|JZt^JxJM:Y3|f*)vR`\Bbg\Kð]?O?ijeOI:ÃY3e6լL}z4cvNCY[t_u7ToFQ0ٛ%I^^ЩK{,#O|zXZpKfS2GnK@a4%I̖ra-qx9ֲ72`Y%ǔ{ڎmcѶ{imW.WVpx,l#-r/UV_c}|&B|HޟfǉD8_䈫|GGZyUw≮<Jզ3ml+Hݛ?k):cϫ(jL}|qeo6oZ51#Vpi:8{[<}3D\6~񞋮<IcH_+Minsˌ+lLTU@#ꅀb'u!dGq`K-DuE7Ob"I:삧'd wf{BDl1I.v$<;WͱAT.ݍN-ꭏ{&nN=Y8:İv/f6!Lt\k"7Ї{8k?kB㉷J%·218drw[ww7`RtovFq̋/ÇBE`<jC`3/wP"zqLt6<r'EA Y:ctz[G\I;<0w2M5!(Ӄ+1%:qi"pďN^	L.O?rdȑ~HlOH~GgA6CbN:"fhg_{`04[+ PK
+z}7~1*SwҟY0nIČD͡8h&Y,HE᮱=>BhEbKԱPSl,754BSTa1r*U
ޢ*R*^PJVAS{y=4wt2y}t,P9.GZ#abJbJXAR((9.ٙL8`đNXYn%.j(VJrBr\+gW(4k?bZV9bM7L(ԙ  wwM۠# k'=&9a6]S{\'kF5-t\ctn~MEm?yΝu.1$7k]wqݥ[ЫN^ o/ }4̶:AűEWņO\B4s$fYbOUXߏv^nO+:"=mNfBQ^(bNlN'+ʬ5Nb3Q\l kǧ[˛ʲ4-̻g6L+d&ܚsyAUMpA_DAUάHOYY4<Tp$S;mF-3]ɩ,)rOg#p+"K<(z]~]R܉x)@wbDP*8bxb Ec%.^$fSdOzf;I|Jy24n6j_TYh}AF"cz=)&iZ'8:#Q|hM1û?[^!<p3>"b/ޫv]ش:/;+${FEu[Tll NFqdm=RBRQ>
|Gc؃wuSfD-fx!XO,[na×||Z`-B񢡫<HT[w\LMZl#uEmm&܄_hBgxӸQETZ1>znImk4BgTF/Vޔ(nJ>~ 7֦n0ט=QBhsM3=  k~B\d|+1Į<5ި~A7W|\ۢG&|Yס]f˵߸r-ꪁHhJZsAOF]#tzHA7`nז̔Yr DNnn;&vc|QJ~ԿHyҖ-5orҵkkE"D߉2LeJnD:gM3'IDSM'^#29(ab	F	Rہ^F</<y<tŬKه^JgVx֕+ogI-7ؿF?A'H@tɀ~}c#q#ڇ~.;yebcA FhD5@@̿Q쳄$/NWfi(PBKfn5&Hv0]d%6 *ǧA/^*+>GOb>O uF>9d[q#ڔ#ONkg$rk1NL5dl)CǌNKPZ]0$Ơ8$1D0QbSҾGY[Kz_W.Մv'?}n᫷X깶<zlT2bR|C3?˖^~:S2\?Xuς{5ShSE= Z(z(@Y>e=q%g[cΣvd^Lv9;%Ɵ{;VPsxu)1ԥ2kg˨C3c2BnAGD#zvw<v,tDob}&7v׆]=͞Gg;1Q|uu1'荎Hy6^.:\J'r[fuFX`0d)|YA2ry>N\+>o<+RA<=
rG|V|KwͫCv1dEY.6$Z2ѻN2SzI^6itcFLt[	$̙OLVYf?J/Ht_}ARH@x}.pb'5ۗի+n;~\AHag1R;ٱ='>oq3wՑ0.1gۣ(R}[.sThJ[/[ԫfWoIg*lbZ/؛+Ǉ+RT>~l3Cox=9%ѱg^?4\ٛ;=I%o<rψPU{rds
95RǳyrոD {0"=Ll"4P]@طP]XPyڮ*Ix Q]:E)״3Ӫ?dXX<lX(\?eXfVe2nL5rAZ
hx,|Zo6H&UO Ι@at:*#V+_RBX߅A}QeOb//-oOJujPA1eN>v;R\b9Zb,l6I|pĵHpS\+JMA/Fa4:fP M"j+Ll"L;sѰi%u0G\on\>cJ,]k+F1cGz"^1HJe:H+OTAbEvZM|uɫ26J-zUV 	􊉚tF,=*|9d4Z]]~3yFݕ_Z'I:XUUUc0]5ӎ	9wx=0$haa@<Cfr@p8ҍ7K蘙j>Cp2=/<D&omVY pk%'Ui&68	}}<TL>}כ#|ǯ/i6V{/:<9cZȆg74YY7g6ϷRF"AI|w(aYEhDabrbPˤXċ^mJR)6N1DHb qZH8:9IE4Am04GK-A09z-:Z	8nBǼdy[fL\cٝG<9]%yf\5#AAogzsZpĮk}rSe:A
pa:#d0O2D>(xbfHb[a
"2'YK-!m 1ls\ԑ37'رD\Zib6Lu!@?7^m E<(ĺ"T`"ڨ$/lE
uNAI"I4Iמ=R?S0EĮ<Ĝ_bd#۠n/1n<~StP/8D, ~}-NG
z [,סz9#)*Q/T"~UxIY>(|"u4:nC)fsjlFYKTcĠ)wI*2m֤,e 	@a9:"[آ1du STTUoTFL3ܩʫf<[XAhq$,>8kuAŬݷsJ!%	ArKJR92iT|;WˤF\ FՙjQ;)
4UeA5ظT}3YߦRfM0/dCjJVZ*9uCfך̾/ձJPs O[.x໐H[]2eY&`0vJc- jnniS!%@ARړ}S#QY߼2T˔yra44Ѻz_E c\ X&G-KZ[*lWX_`vK%U<3%STNwϏHsUi~8b2gξ9,߷F#EEWx 9م=<ҬOWe4\mTIij|ߝr\d=g9$pБR֯6Iͪ7{5*F%Uk?F&7$Z+Y[;fJ@Hn2+?P4*eZJ&Oci܊*Z5l4=gHy{|sDOo"yǽӠƍ}!xb'/CnSVQ`klnk>+v_`Q|5XAI < "^*H 3
]YLU2qD7V(y=}?,]\Qm*',
bd&"eM}# Pvu$I_gG`_X9P.eB_\yﺇ68L$BSWj6uҩۚEǗzo(wNgs_3ٙiS&5t+BD}↥Վ\TTZ_E-#fwdoٔY#ҵ,J|C
VSZf6vCP{1yv<8PD	D9}`DhǯvIo@.=tӦOA	h %$]p=֮Ղ:>9BjIC7>/.Mnkg$8ηnmnrtwiõ~gn	,ѕ;lm/l(Jq$1!EPq2n<Yt^M᧜ZUY\xW_OZ5yrF[ADwvP_{$cicL2t)&US2HmKѫ8l*Bg<,^TXe'%r)Ds7ˀ0]JRktܘt:Pq3Xʬ,2EyP&ŷo=^÷x9ZGGp}vu%4l	;lF" ZZ0G"--@#m)mki8Fbsmr)E*5%0T	IGF*>:+NjRR1{ur&)( 63q:3±8!ND_\)q?D#D$eh@ҋ1\1\./alZ!Hs9J:3#^e&O,:KFD	:Dq$跁Da)ԯ,AzF1'k
H>nw^Zс/$t6>UJ][47 ;jcK:J7Hho#$\q!akUWҔ*яށ;v)8LjSV'5`q#,UpX!>YIcF13ea+lyLI;(7fR5虚97wIHʥ*og1狺oog_zͩ랞7u3ٚ1Ue*Vϣ2!Szxgp`=@	zOFcq 4kQj d7-kϒp𬴿7Xk@!ށ2!ԘĕK][9@õ,ݴ	N4w.pxL:qagqcGA?4&x/EF/qﯼAu~ӽNз'ۃWü%ߋ_lrv)f_7.UĠh%M.2D&WuPR cM$Y,ڝx2;J	&z~, r"#X.o.(|H<	g-T0Plq|I+UBA2R.n)RLtiښi&uXYUPPUtM{o4pɌfN_g,(0YWP٠Ae4- wNYVpT-QxCxw(n(g^YWwvQPOow1m;5kr$|ұc6EnEۆZ:tPb W\h\u$ 3`77m?nGCy(Wͧa848qe:z񎺯v,kRhᯧץ;=e¤};8w>3,f?K~':;_y}g4ן$u[Hݻ}bJx|{`HJ=TI-^wOcE%rsƕgXYFӺ
:1~T[p∞L	sw;1:="Jqу@lLLIzlzR.qR b-	Gp q[!^ilG-ç~żtT>);T$-Ȩ譺d`.RL*_E#mȹ.{*ɲ79;:3gm%Vy#}Cy)	wW
[Y5ڦS6t4o\0.,N$m,3D"Ikx@OܢG'V٫&VrD7u|os֩o E|+9bH#UhטZnb|y`=HmF'/vNIvA\4xs 2c OLUt}^7E0ӈ_D1K!wL1U%!f2OyIT8$5o$KvB̿CQH"Ṣ+-u=p`!ex ?=2mU^4U0	ORZmeQl_GW$.)|]4%[2IE~޶|[~ԍsz`ntFvh|mu᭒_cp`Jj5a1u]µskZ;1Vȃwk:eohŁy]}3)6I]pu1+#x0ЕEY./KMrA5*b2I9&ZW0]R"-'-DfkNguZܗΆ;[qX:8F&dayq:P5"
T$r[usrzʇ"[mo
YǪJVkLw<u^yiFӚ\e*o+T%ޮ,\=cDB^c3KXgB?ԈITV,[XKX
\B f+e
OAcܒRБrHgH9a[Uɦ[7BwldpJtj\QhoVMTo7rqH㆑c7&񪙆HuZ>wV(*t+kMI\ٚmmR'JBЩVTÇ݅W#>Ois8&&t4
L1{hI4c
vJ|ϗ"L\7v#n?a.xz(٠{2bޘȏ̮*"f'?1T&1$0oY>}HAA)i7N6WEEbΠ>lv91(Fhi~vҬ
2`ypx Xa-@#DR8N't=C	.u*z$I_TҁJ }BDCid8}Tk0`|
58K_<:@W@_oNh茹;0~cӀ9!>U=fvR&yG;Iʭ|S9uUKmة!xw`ȋ.9ٛ,OO3 |-&u5LÕEhVmjsδ&6'EWXZFڕ_@.Y0()#3_6F50ɔ4Xs(W>Q8 覴AĆgP*ʠW*
drx_Ve/rJ.Ϸe嬊XfܩҳmUwyzr T):%Ccp2R'ٳJ!z%)EpʠԠ0jÔvэCu3Q$lMN1{ʤҗբ;=mt$~xeW-}p_C4}]t/ɇ$=kL9X
W~WF8X|LkG(P#?<I]0GeQ%;2\^뚦tYȗ
Sl.Cݴ!ZBUVoۗY%N*ϗEҽ칾1]
U,TkuSjaFMO6ݵIfU*L7d	02"xd (c=A?l#.=4AY)<E5hCф":DDdϚ@!;"`҉dd'(wׅ}ڄP9^E迁&k,[wJ>EQ$~
o~\A$di`Rc(0#q
YcehJό|P 6@ mTqM^CMӉDt9/~6zAnCpX08ӳbǭ_\?|c/]vs/[z_t~-Y-gؓ΢0v86
`-d+7]_РmfatBY(,S!y{`2yŀ8,h\jS,Z8л˗}@g8:ߝݍl^z&3>3t@)h#>9nS~+ИryhyYQaZJl틶rtT*+߳\Pl1ϡtO~N",;xc	܎pa&\Ͽsፓ&n8qRlGri0EeUC?p`TO1z+vZ;d^mK ڪ{/j.!yd!ZBFL/1PR 	
nDk_'BgҦI6<OܽfÊ>rsVwn/2e
%CQf6)9֠O/pu")HN?diRV^'%2XZ'fRڟ%'Ω(x[/w#	Aw\;]$m_=~mb-p}Ex"z-	;Ȅ~ѫ֯n
BxbeZ,@oc@/qt4`6s< 6n!%nä3c!J6?o5z]_W8J`zB|&FC'tbi²< yFh̆!o_XT=/58.A}- ?:fç6 β7bZӹkF8_bP ށ~o
 `tD.RLU<m9,\GVjN !e<6n\K*H[fcz$JC &t躀r#9F%Gc6`t$[8ɲ[Oaqaզmlj23ZHvI$pr_^ )*hڶIU8fP[y
עrW=z]~oݺ@hu8Fk6LD_޼qBzJrgY]6N~I*k0kRrȆU2UJH'ubs 8쮹s2eY7I.b$$WEO>m,~FC_Mrvƅ;B?G=9wKC`G@<Π#7ᢍr4y+H:Q37 "b C,#C <b%.;P8v+_xlb*eBroTH-K5&_}orLOlk߇nry)cghv
0I{/o1 F0
 ПԬnR~S_;4E<+τ^%ePTOxQ{䠇EC<ʺkG#*DOAj&!R%CK'^>U;/	(M[Hx}mk^qCzh֕ɧ.ܳnRΜY8T~$J+:rT)nAb-n?0dR7qՊRj\HoԻ$dF`p,%*#A(vpG_>0>J,HikOG8w=79wթc޹i4p^/߱pliW&#a鱾柇3,U-{)iZc͘I#<rK/emA3BpninП9TW鮥Dь݌褛)j'pd`giNɞu`{ދX.3e!O۳,O<tMtG}+K3j6IoV6PX]}Jw(soTd8Mrqte>[G£KWlwd8	'$`ׅ3,RZR_:~0wvXTX
3]D%+xVDQ(%Y]đ ^!W17RIt1+QG8ICo/V3['5JRSv:q9t]-(ųE6csdDQ2Ҕe*^BJkӫ$B~z[
x͛?߫o YI{=T\]5^-5;wvn?	J)ݤcl@7W?"ߛ.S(*0wfd)zLT[%peK˞cRTfִ@iic.@K,PizΖ2d9#'NohKSt`$4be%w̞9pPF4͖ǧsTRޢj,QZ(wb9-ԨUY	9Ed+>v|&!c!ff#^>:/p`wvS@&`&}!!5K@qQDkFj jVј5XOȐro6C/:cO
ta3Z*%,dnwڔrUf0(vml6޲jbSXoI_= oӳf;_ri`U(O~}%468QhI2dW42[-742rBmDPҫs6PQa36KR8	vLNu~hv5SPT\3ixF蘂<s{`
(ub:H%؄ѕmsB?quLZ=fE]YhcBHx)!E#,s ԕt4;VaB]OLawN4أ}4ہjb3ѹXAq[qxR#7^ItwDTiw8:a7n}9'\gnJ|-fY;%V/ ژhu~Y?k;o]5jߵR+Abj ނUĢĺt4g"F&vApn4hM@)A:ZnďnU+/aۊS\#+qkS`G?pѭ.Q 2U!jY<лR=@&ޡ}7/!V>C:GAu[?Ajƀi-Lj0,Z2Y/ D8iY;iJۖ;S	 $Es[éQ=+*$Mk(o2|-&c t /u΅|H5룑]ѻj_B|	a#	;k7:#FpQ(~W<RuCC>s{ylXK7<7ɰ"ņʠCvAOMqTA% |`f=lcsQ
Hw{11߯dSzgYHx	5 g&PtyiGP{IrIKX~?nX )/RHj;.kaaɓLr{)k/N0?Ǹ]"rj;&% MEkjFG޾cؔ$]7xLm0Tx`IXȡ
$ȓݢl֖77MQ9-nEō!}Z4--YN͜y;e@	#gTJHLxq=.+Awp>rÆkG0C83X7PU/o͒G%__>-qhIz=e%=SZ]^Fvߢh* f36lv٘VpBa^ `܁%L;U|qt
<10\	Lx`̨zh+ QU;,29xIv|AgAzz~/bH1ykSv?:`O:mTgj@~	8D*SCeEH
ϵ:F.I.+K^2t^`
ֺKoj%Ǩ896Fl}JJ7c:UJtY02(C=3x%zt3ۀ!`J'~Q@&:ŀ ^\dxhFSvzZ6rt@26I׌EO4G\~5Fr"رc
\Ƚsr;k6VSŇѕpAAwɡLeGq.cCCPΊO%IaS9YY9r<][,_!/נy.DbrpXܡu%f QPG % 	,\qyxf"ݻſCjyW/c~^XtnC[C`4G0jZߍZj pgRz>ap73#.F'c&W]1 f*̟aSj9]ҽ''SM$pq Gcb.stb&Jh,.ZImD.ۖj9~1=>8Jm$"hq;xh!l08  XY߯{[*+[=Gv\ip{	+C7Kg?/Ɂ#}{mG;g[k7Ut c=43=ƽoD|`wv~Mny?u~.@zomGw
Rj3Ƽl:٧Wlt1MܙTI'aDۤc-Q㕂y{4T+hkY@+(ĴPۦjA(VV[$W[5NnqjtrFFQn$-]-Z$sEt, S? '2^xrPe hC> FL:Q&."|U*	]^.ݒn5a.^f62Hzo37'ZzO7>4-D*f|tZoni+y̐=S\n2ulYMƨ=0TFM?S2LieGFEOrWb%6B>vxi4Z
_G77d	*=*0+ƼsPf*Oı(6[tv\gяXD1MWڮ("dA_
IJezܲ|_o[j/:~sC 	eۧZV~ R?0[,U?_ZCzT)TV^f4W)u%gEn?ׇ~a~?%?c*]fk(Se%҇{:2#J'bΊd;Oc귔y\F9Q0ZlR^kYzر<-TRGmKZR{&OI,}vv-^unx-7$ӛj4\scnTSaCոuƍ_CrS
2}<ꌂyvmZV0w[&݁0W;P'-,Dv\tV]|="q7A:F06Mcbme-C@ŋ{5%!bװ;8
iG|O](z{=]OQpޖx=%{7' ZkW	&rX]A֝r12Pg
0sOE%sDoypn|d4uJ&:j"&9mt1GAM&s*(cu^e$GWNǯ1_
B{>,fGN&^ԇ!vx1n*.j`1؀/Y%]aC述2 :@ukln ϴ;XTCLav	91"s:K=OvuiaD}04I1 	#s}zlVp䲭)9#6Ow؄ٜ\d4<۸^ԈJIp=ɒ1(W8BPSBq"9QEBz6+BRV.c!LCCN	IFmXX##kҖtQmI<iAimI@8t.~V*ŵ<<sEEYVXG֘xRNf6(F&0j\/zg^gw9\$t<V_{}MQњAebXYrWWУzD@*	z/eh|S::otw<,MLj"*uI$@$cTH$c8s;<S\W'3o`=P9IWu(=jԷNn5y|z>MeJA(,hqIӈƐ@!Ob@\B@	[٤λja& ?_3n6^JPP@IL2!z7anForU+K,	#SD|ژ{Ed9/VfK2Y1v@W@}Q>LϬPn3_X8G~mw'fB0~* >bֺ#iq'G:dvVuhnrKGGF-)xK$MTvMG)-＃إJ,Kg\c||L#+4fLG"̵uAG`p}kɓxLJ;pC%J /IDbȞ*OzJOV&jltŌqr'4џ'-[{bзPC}ʽ<75xJ7?7ۆ7tYZ[zMG餣n{xr{4㑿#w}*(6_>ǕFYг &}V@wzr>bJ08"Cx؈zEP[QuX)֗kLnNҀ.GjԲd\jM^n_"~sE/ "EV RA)Hs7Z.IB|WyqLɅr.۸}ժlN^l4J8.&QTpX1fj*CW?
yiw^T_7Ej#(U=$:f~M5UdKؼ2yGp߭2U'j:S=fkn7yq_Ǟe?,S
yuu&޶$jLdKSA⯍fMKۗi¾v0'`" NCl^PFT+*@jmLoٖc⶘UizeJƖz|2B:_	Qw'g:sԃϋm&1UC}2ZUrfzNcR XEObq{x8>aƥ9t``]:"5x@ Cql{ 3QG#_kWEUuUY}TwWuNW:g rB8- DDE@< kTpV]wYuu~;㉣r̸08ì(tUu"A6~^Jw}߿g 6W504##h*hU.;&9+S4ͺ*Y7i-nMCeJ+X,>J\BerPԥ3t][e5rn!yF٬<=>ys P-ZꣷxoI54O^<9ݔǩݬNf(8
)gr17V`2;*=b-<l-pvyB	 ڋRkuEY@tϛeg ,1
%ʋ ګM `lPC
k~h_>Nxr"arnV^3^0Ʒ[1Fawݬ<#sGed6]%8Z(CCJq^nbIC\\;-&C&/B%-@z7sP9	Z [t M@	J	_h\̽Rr94K٧U( ٦ЮHu:\QHi2d~?li1LXv2T۱1T6k4TƾU+<9R&!\$R1bbeVȤdpu \]MY?ΰrP5wA? Eޯ3buy`DuGIb5X?!1_qJ<W^T ｲ-=seb!,)Q왫?<
m*=rQ*Q(rͨK6--Vc*0&pt$-	H UB\CSOE{oxR!-G9IT	#a\d)wlX!Vr'%h9y :d	wLYwl96ne1+0YU"]ϿsN3}P|
V9;jCC'Ѫ̢ԬI%|86+)!)x	R@rѣ!ՎcEUNXO1y61{Qs@"bMxIF$wY4e>w/ "M6aH&(lNM/&#('+\kDgh$b2yU_㏷ފ0|VDo4GK3&P:׌6ߣbخfWGj%-}6bHa䕽Q/z%^/w[kӻ`nEP[|]sq<o%isv\+]n3QOeвF8zy]RP{GfFpq*qʩ[!ęM< ihj1yNFDQX;nBE./f̾q*ڣ~J24PܷFP="͓X/4+H\
HJ8{m]=jk^9r߈uLCAA. 9UG<R	p1_Pz^hF咢ԈysgO#fkBB"h7vI'J/Xz6+qLKqh7e?e֩&%	Պ@yeGT礻0BYMpTYJ?غ=]Km<݋mrj vtRP:N^ƬPO|vТh cYyq	gB݈V {QވR '43/\jץu,~A+δkA-tͽwy?%x|wqg#iR	N?fKb	$=6sd,\!|= Vx[& B.g}w2ݷ!>|Ys ?X;}NoN->=BxhGj4@P%/b`Q-# +9GH(<R$Hxˤ9d N;P>;,Z/i@*\#:%jyWn;gaO%@&C)koCe+I@	E%}d5ey׎ 5.^h9ZD\ӟ{
'&bo<xy/'fSτ9BY<Oi2W*kb|5޽ŏ HjUmx1'uO+퉚3~P?jna8d{- zKKu'BU %@'5PK)(
ZIC-`RRwyQ.!F~1(qRy3eHd2%P P/ߨ6(Jplј lR5i;T/5*flщ"_$b@ن^a8y=h?pLPпS/8yQgTsr3qqVΝq"ƨDI!!4楉`aA,DZxUymf)0 Ӳ=^+Uvz=cL B-?"b"n*LL9O]7I7Z ZtCnGET]ٶmm.l9M׷;}L8O~5486kdrlWf/x:^Zٛ7<У}ۭO=s3S4-s_ٳTeՖklDȩTp{_uuDaBXӉbvѽʥ@";A`X4W	z$-x" "9U*a!CE#gv!^,3W=r;+]eSR&Ӏu鴌[`|>ƪ(Kc74[XdDx@]y8n~WfvL]Я[L_]lxᒆbsb%JBA(s.:IsveZGxQTwízRT&/NmZ:xEׄ
^&1r|# WHmwV>OyɡAra,`N ɁWLz8hF$b	90\k:I$DȃPDrDc78-jSZn4'r~&Q3-Zq.(?]Ե1h`ypꊛ#[<]v}|r4yy$
U~RݛÎЕظ*JWg7 1TAH'fhq6rFjuy51V+ 6j2@"`Gujc>H@+JDbD(%"PG@Yz5z)?H -.DPLcg6`d*
l̲8ʨYT),M]`נέPQZaj@m:{CxSyD__Oaឦp.Q#s[uNkq5 Aq*aLŁ= $XB)/kzK݄qWj:s/6Wm3<W>I<Ъ>W=InÑ_eNXg[/nod,L5?XYzC=q$ϟDջ7̝H=vW7A/?7..Veȷ">Pb6#>sE??:PX{-`:6,B=HQNDt3>x|eqY;pX`w]D]z\1 YqF!,?4(-h@H"K>ɖd͇_|+8dkqc)Q8$&__?9:2м{ɥXf|'-m_i'bgWO'2ffG%l8|ΗψcX
r%Jl?D"@3)N%OWF*F;	Y<un8GmѡD:7ȑ|$QL;%ƸE"rdQ#uѨC]LYIsR1S
sP=ep_X	tV;Ix,q;e۬wHrvغtFhJNέojypvۖdIT>L憪
|FVYAiWLOĮ槶*Wr7JE7޼)])R4ٙH"BrgQ9<+'^y2eK-+nYS	~,!ʡX<f36|U}zJ;I-/_ڸ։10Rpt,"iReeQC'gi6^1>q540Heh):jJ97ϙ^`{N{`j_Wxk]޾r\_%bWkH6sB&Gp. BVHVcӓ?u~xX[ja^-ab%duYcf` ӸXC<?C  xc`d```ad1	 `8@\& 	d  xc`d``c8"Ȁi6 z xڍVKkAytqQJBd/Ћ!9Eċ('sj?JLLua|TOuuWT|2+O)~&
p$K" fB2ů^t؋u!@m1=t}!]{{u,6߯q$e>՝Y]8=/:s?OcdnlU A1䲋67Ao 0d[Jj#!/]J"۪I~ V;]y'䳦Zt%ua2wa{ƋE:;UFfp[7QӼ;{ZMhf^K	1O/q
r/WoE}!*b|ݫBV<G<=v3!3`7{솷|<x\H'aj%TdfehӨg?8dmny"6q$ͤ_p=#3_ cKNr~+.楸
}-q׀fy_Q~QFOJeQ;+ªYQtO4synT_^{{7#{ן1Okrvs}A~?Sirq~0=Xޮ̾#[G\׹k| xڽ{Xw!!]Xi[S!dlل&CXh1g˹Q[NCrndBh1+>Ϻz~JoZ2n`dyRP"SJRe>*ɠXy>T'zTTokVT:&9HN U,󔜉s~(OD4!\8oD\c86NPudHJ$7|^+;HEI\ZZ^ 7b 6{5|ڐ-{דv ]]>!dI^"Wyvsg{~&x}͇ھ+:vsw?ruǿ;|į'7`zs_|]3y@? JA@ ;BB=PFf2p:
.&6:_C1>Yx8EmO'Q|'{2g
LhGc:A3,vusC^ =@ԍ8}ABi-!&}E<g,L~1hHh]F_c;]Xp%ٟɷ
7. Wc_E}3XO}k+n{nvz.Nfv.w~S+I7vwMӈۋ>8{q!<LzAˠVzga&}Y1t>.cOPO1_4s=%Y柍<96籟w]˜]t^_Uj#n{>:!npzd?npmt_8}PA}=͊驘c<^&|ߧ3|l19ʘ_:S圕Ke*|FnLoP Su^-W>ZzEpIfL-;Ym8tH'|bdz|%8( XF.gcb4J\S?M| 5^qϐ4ܛց md§m'9id:+NY2#dC}S,%I+Lwg? xCT[dL|= AT*3M/"}C!-9<Nf}8hAc7&`B9N+	~2i<ZfZ>Pf&baq6}9 37EfŒ>DEX}1yP/A&|	<Y%HKrKY_2#=dV'Yü˺(tZ.}K@/CM軉nfe+[an洇oL{}co?u3tIG9G#3M&,p}c;Aϧ~1ڞn61r;Oq.7\te&nU>[m8ަ;po:wy{>}z0UDETDb+Fr1/v'|?Eg<eSNY#xʲdUUPVYvWvjxȪəMV큲8/^,goYWjIY"A?.  xc`d``Z$ɠ L@`> / xڍQNQ=3&$&1ll	2a
3;;/;̻nYpl",Vc/0xOjüsƳ3X144~AЌkx y;x`c-G稠Jvl=&J[!("NruuųimZ]beMf\,
.ɐgm
H#}Vm!A/.N!Ί7s,T-qR>)C]aU[beKΪdݕ)i;"(15=~Y+J;2|KU͛Ϗd+ü!GMS6g]U{X8 K_1}&E5TВ;P\#\"oS x}WHuU=3ef1<^+m[l),3313313^$'w]ޤ]ws)L`Խ{RJ=i@rS03*u_ԃZv`gv`w`o`8 `8p8h8fBP9hp'pЄu6F8Nt8΄l8΅| .b.rjh5`B:= ,Cacpͩԓi BXEXeup= 7Mp3mp;w]p7}p?< C0<c4x:<	ςgs<x> ^/K8^W«x-^o7x+w»x/(|>O§,|>_/%2|
_7-6|߃#1~
?/+5~O#	'0i`sS83
W\;]q7=q/}q? <C0<#(<Y,cXCqx,	x"'<6qOS4<3,<s<</"/K2+*[xN=qn!81:f C\E\e܂ux=ހ7Mx3ނmx;ށw]x7ރ}x?>C0>c4|:>gs<|> _/K8_W|-_o7|+ߎw|/ߏ(~?O,~?_/%2~_ï7-6~#1?ß/+5O#	'S!)CYQ
TM4*ZMkh-@;N3Bn;A{^7C~?@At0Bat8AGQt4CT
UF5X:D:Nyj:ZOh#Bit:AgYt6Cyt>]@Et1]Bet9]AWUt52M꒦i@m!419fȧBZEZeBut=@7Mt3Bmt;Aw]t7C}t?=@C0=B˅ckvv~Vlevvbˉ$ZbUb;Fbc[[[q]o:/hquf WGn}{=mz} '}f==rtnZ8Y'6u~&L8#t˴t`tsTYܑd]1kvJm.:ױ5t<?Vm3Ll_t݁3~qÑn~JIW~f7{sm34m0z8v̑tfN)KAk (FE?nٺLݎ+O^B?zi9KwwgzfGKZVW;9w,82ݖU{Y+ryk`z:h6mp=C8'=,z'SAR2MLωO>=DG(vDő5NXDQ?#;9ɨ`{N;c	,VEq6ǓybR܍v<Ht-m{*#ӶW륎m̭JN=#eQNv|=Q[~z9iq9:\uP+tQr+KvNXڋlaU{\gmavd`
XqEd"h4+=z9ͷ'[A8jW	ܪd$ەq!J$甜)bڶCgʜ>4qh(X,;w˥ڱ n26뀃+I<v43;K5ǒCJ,14.yO._
Vonk.u$=l1Qw^35"[vhUM YsE rFڞ{EQn|O2}	ݴ2	ٶ69CP'Jb~,7(iYCV㱞0ѱ9cxP^?(<^Vڶΰx3,03[{QWϧٚJ+&2̡^.ru4wƝ(V|o8x,5n{L*[TT&ZKLvR"gysj"pXܚgm{̽s^іMX<湯g&l*JI)m%Z0Ql\aR)r"Gh'J)#n;:;ݡz%I5ׁAz=mX"oXM˹Qj!mb"S#-nTHo͡$Kݘg>ẋpI*^4"ʸ\1LGL֘Fzssn\|Kț3Q'J-nc˴P6į٫$q2EtbHJaU[zo$__eYǯUp;,(amE^KݙIwFJT
-8i)<K.'$	j$(A߯fY2qVMD̙w-EAZunRҭl}YlruɼҋNyJJ1.QEkZ*[,mJauҡGK%k&wMCoAG>ua]塶mjvlXӓ(nVZFM-s5AAzi.,M>=#uY,Q)&ɋxQߴC.r<Ӷv(OhLh{DSlmR+ơjq|3Ys|M=fbKM-.\Ԝ7TlӲH,P54>.3j;aB259v4v\s1udnnj?4NǕ-h92U*p51K3'Mmcy~cmy!FUj!j4ҭlhK"MUZZ,C4s<+<-,rM% ʂ(mlbW\EpUW\EpUSU<UQDUd{ח!jrJXY&kkMk-z Z 8V0alucL@F݋	...nꆼܑbNs]D5EMtQ]D5EmNA4!5Ѩ{FQ(7ei*TI1K3'M#9mrW$d-%P"	%P"	%P"	U'qRAAAAAA/UDUUATU5AQPz%+^	JW5A(AJxW»ޕw%+]	JxW»ޕAҕ!CLznsOBU]uAJHWBҕt%+!]	JHWBҕt%+!]5!@I&P	ޫu$lbgPo$2kd]9i؟!Z2C7C7C7C7C7C7C7C7C7*';/'jb'[7[O\b''u]m&~fⷙm&~fⷙm&~fⷙm&~
j  W4  <?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata></metadata>
<defs>
<font id="glyphicons_halflingsregular" horiz-adv-x="1200" >
<font-face units-per-em="1200" ascent="960" descent="-240" />
<missing-glyph horiz-adv-x="500" />
<glyph horiz-adv-x="0" />
<glyph horiz-adv-x="400" />
<glyph unicode=" " />
<glyph unicode="*" d="M600 1100q15 0 34 -1.5t30 -3.5l11 -1q10 -2 17.5 -10.5t7.5 -18.5v-224l158 158q7 7 18 8t19 -6l106 -106q7 -8 6 -19t-8 -18l-158 -158h224q10 0 18.5 -7.5t10.5 -17.5q6 -41 6 -75q0 -15 -1.5 -34t-3.5 -30l-1 -11q-2 -10 -10.5 -17.5t-18.5 -7.5h-224l158 -158 q7 -7 8 -18t-6 -19l-106 -106q-8 -7 -19 -6t-18 8l-158 158v-224q0 -10 -7.5 -18.5t-17.5 -10.5q-41 -6 -75 -6q-15 0 -34 1.5t-30 3.5l-11 1q-10 2 -17.5 10.5t-7.5 18.5v224l-158 -158q-7 -7 -18 -8t-19 6l-106 106q-7 8 -6 19t8 18l158 158h-224q-10 0 -18.5 7.5 t-10.5 17.5q-6 41 -6 75q0 15 1.5 34t3.5 30l1 11q2 10 10.5 17.5t18.5 7.5h224l-158 158q-7 7 -8 18t6 19l106 106q8 7 19 6t18 -8l158 -158v224q0 10 7.5 18.5t17.5 10.5q41 6 75 6z" />
<glyph unicode="+" d="M450 1100h200q21 0 35.5 -14.5t14.5 -35.5v-350h350q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-350v-350q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v350h-350q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5 h350v350q0 21 14.5 35.5t35.5 14.5z" />
<glyph unicode="&#xa0;" />
<glyph unicode="&#xa5;" d="M825 1100h250q10 0 12.5 -5t-5.5 -13l-364 -364q-6 -6 -11 -18h268q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-125v-100h275q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-125v-174q0 -11 -7.5 -18.5t-18.5 -7.5h-148q-11 0 -18.5 7.5t-7.5 18.5v174 h-275q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h125v100h-275q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h118q-5 12 -11 18l-364 364q-8 8 -5.5 13t12.5 5h250q25 0 43 -18l164 -164q8 -8 18 -8t18 8l164 164q18 18 43 18z" />
<glyph unicode="&#x2000;" horiz-adv-x="650" />
<glyph unicode="&#x2001;" horiz-adv-x="1300" />
<glyph unicode="&#x2002;" horiz-adv-x="650" />
<glyph unicode="&#x2003;" horiz-adv-x="1300" />
<glyph unicode="&#x2004;" horiz-adv-x="433" />
<glyph unicode="&#x2005;" horiz-adv-x="325" />
<glyph unicode="&#x2006;" horiz-adv-x="216" />
<glyph unicode="&#x2007;" horiz-adv-x="216" />
<glyph unicode="&#x2008;" horiz-adv-x="162" />
<glyph unicode="&#x2009;" horiz-adv-x="260" />
<glyph unicode="&#x200a;" horiz-adv-x="72" />
<glyph unicode="&#x202f;" horiz-adv-x="260" />
<glyph unicode="&#x205f;" horiz-adv-x="325" />
<glyph unicode="&#x20ac;" d="M744 1198q242 0 354 -189q60 -104 66 -209h-181q0 45 -17.5 82.5t-43.5 61.5t-58 40.5t-60.5 24t-51.5 7.5q-19 0 -40.5 -5.5t-49.5 -20.5t-53 -38t-49 -62.5t-39 -89.5h379l-100 -100h-300q-6 -50 -6 -100h406l-100 -100h-300q9 -74 33 -132t52.5 -91t61.5 -54.5t59 -29 t47 -7.5q22 0 50.5 7.5t60.5 24.5t58 41t43.5 61t17.5 80h174q-30 -171 -128 -278q-107 -117 -274 -117q-206 0 -324 158q-36 48 -69 133t-45 204h-217l100 100h112q1 47 6 100h-218l100 100h134q20 87 51 153.5t62 103.5q117 141 297 141z" />
<glyph unicode="&#x20bd;" d="M428 1200h350q67 0 120 -13t86 -31t57 -49.5t35 -56.5t17 -64.5t6.5 -60.5t0.5 -57v-16.5v-16.5q0 -36 -0.5 -57t-6.5 -61t-17 -65t-35 -57t-57 -50.5t-86 -31.5t-120 -13h-178l-2 -100h288q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-138v-175q0 -11 -5.5 -18 t-15.5 -7h-149q-10 0 -17.5 7.5t-7.5 17.5v175h-267q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h117v100h-267q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h117v475q0 10 7.5 17.5t17.5 7.5zM600 1000v-300h203q64 0 86.5 33t22.5 119q0 84 -22.5 116t-86.5 32h-203z" />
<glyph unicode="&#x2212;" d="M250 700h800q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5z" />
<glyph unicode="&#x231b;" d="M1000 1200v-150q0 -21 -14.5 -35.5t-35.5 -14.5h-50v-100q0 -91 -49.5 -165.5t-130.5 -109.5q81 -35 130.5 -109.5t49.5 -165.5v-150h50q21 0 35.5 -14.5t14.5 -35.5v-150h-800v150q0 21 14.5 35.5t35.5 14.5h50v150q0 91 49.5 165.5t130.5 109.5q-81 35 -130.5 109.5 t-49.5 165.5v100h-50q-21 0 -35.5 14.5t-14.5 35.5v150h800zM400 1000v-100q0 -60 32.5 -109.5t87.5 -73.5q28 -12 44 -37t16 -55t-16 -55t-44 -37q-55 -24 -87.5 -73.5t-32.5 -109.5v-150h400v150q0 60 -32.5 109.5t-87.5 73.5q-28 12 -44 37t-16 55t16 55t44 37 q55 24 87.5 73.5t32.5 109.5v100h-400z" />
<glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" />
<glyph unicode="&#x2601;" d="M503 1089q110 0 200.5 -59.5t134.5 -156.5q44 14 90 14q120 0 205 -86.5t85 -206.5q0 -121 -85 -207.5t-205 -86.5h-750q-79 0 -135.5 57t-56.5 137q0 69 42.5 122.5t108.5 67.5q-2 12 -2 37q0 153 108 260.5t260 107.5z" />
<glyph unicode="&#x26fa;" d="M774 1193.5q16 -9.5 20.5 -27t-5.5 -33.5l-136 -187l467 -746h30q20 0 35 -18.5t15 -39.5v-42h-1200v42q0 21 15 39.5t35 18.5h30l468 746l-135 183q-10 16 -5.5 34t20.5 28t34 5.5t28 -20.5l111 -148l112 150q9 16 27 20.5t34 -5zM600 200h377l-182 112l-195 534v-646z " />
<glyph unicode="&#x2709;" d="M25 1100h1150q10 0 12.5 -5t-5.5 -13l-564 -567q-8 -8 -18 -8t-18 8l-564 567q-8 8 -5.5 13t12.5 5zM18 882l264 -264q8 -8 8 -18t-8 -18l-264 -264q-8 -8 -13 -5.5t-5 12.5v550q0 10 5 12.5t13 -5.5zM918 618l264 264q8 8 13 5.5t5 -12.5v-550q0 -10 -5 -12.5t-13 5.5 l-264 264q-8 8 -8 18t8 18zM818 482l364 -364q8 -8 5.5 -13t-12.5 -5h-1150q-10 0 -12.5 5t5.5 13l364 364q8 8 18 8t18 -8l164 -164q8 -8 18 -8t18 8l164 164q8 8 18 8t18 -8z" />
<glyph unicode="&#x270f;" d="M1011 1210q19 0 33 -13l153 -153q13 -14 13 -33t-13 -33l-99 -92l-214 214l95 96q13 14 32 14zM1013 800l-615 -614l-214 214l614 614zM317 96l-333 -112l110 335z" />
<glyph unicode="&#xe001;" d="M700 650v-550h250q21 0 35.5 -14.5t14.5 -35.5v-50h-800v50q0 21 14.5 35.5t35.5 14.5h250v550l-500 550h1200z" />
<glyph unicode="&#xe002;" d="M368 1017l645 163q39 15 63 0t24 -49v-831q0 -55 -41.5 -95.5t-111.5 -63.5q-79 -25 -147 -4.5t-86 75t25.5 111.5t122.5 82q72 24 138 8v521l-600 -155v-606q0 -42 -44 -90t-109 -69q-79 -26 -147 -5.5t-86 75.5t25.5 111.5t122.5 82.5q72 24 138 7v639q0 38 14.5 59 t53.5 34z" />
<glyph unicode="&#xe003;" d="M500 1191q100 0 191 -39t156.5 -104.5t104.5 -156.5t39 -191l-1 -2l1 -5q0 -141 -78 -262l275 -274q23 -26 22.5 -44.5t-22.5 -42.5l-59 -58q-26 -20 -46.5 -20t-39.5 20l-275 274q-119 -77 -261 -77l-5 1l-2 -1q-100 0 -191 39t-156.5 104.5t-104.5 156.5t-39 191 t39 191t104.5 156.5t156.5 104.5t191 39zM500 1022q-88 0 -162 -43t-117 -117t-43 -162t43 -162t117 -117t162 -43t162 43t117 117t43 162t-43 162t-117 117t-162 43z" />
<glyph unicode="&#xe005;" d="M649 949q48 68 109.5 104t121.5 38.5t118.5 -20t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-150 152.5t-126.5 127.5t-93.5 124.5t-33.5 117.5q0 64 28 123t73 100.5t104 64t119 20 t120.5 -38.5t104.5 -104z" />
<glyph unicode="&#xe006;" d="M407 800l131 353q7 19 17.5 19t17.5 -19l129 -353h421q21 0 24 -8.5t-14 -20.5l-342 -249l130 -401q7 -20 -0.5 -25.5t-24.5 6.5l-343 246l-342 -247q-17 -12 -24.5 -6.5t-0.5 25.5l130 400l-347 251q-17 12 -14 20.5t23 8.5h429z" />
<glyph unicode="&#xe007;" d="M407 800l131 353q7 19 17.5 19t17.5 -19l129 -353h421q21 0 24 -8.5t-14 -20.5l-342 -249l130 -401q7 -20 -0.5 -25.5t-24.5 6.5l-343 246l-342 -247q-17 -12 -24.5 -6.5t-0.5 25.5l130 400l-347 251q-17 12 -14 20.5t23 8.5h429zM477 700h-240l197 -142l-74 -226 l193 139l195 -140l-74 229l192 140h-234l-78 211z" />
<glyph unicode="&#xe008;" d="M600 1200q124 0 212 -88t88 -212v-250q0 -46 -31 -98t-69 -52v-75q0 -10 6 -21.5t15 -17.5l358 -230q9 -5 15 -16.5t6 -21.5v-93q0 -10 -7.5 -17.5t-17.5 -7.5h-1150q-10 0 -17.5 7.5t-7.5 17.5v93q0 10 6 21.5t15 16.5l358 230q9 6 15 17.5t6 21.5v75q-38 0 -69 52 t-31 98v250q0 124 88 212t212 88z" />
<glyph unicode="&#xe009;" d="M25 1100h1150q10 0 17.5 -7.5t7.5 -17.5v-1050q0 -10 -7.5 -17.5t-17.5 -7.5h-1150q-10 0 -17.5 7.5t-7.5 17.5v1050q0 10 7.5 17.5t17.5 7.5zM100 1000v-100h100v100h-100zM875 1000h-550q-10 0 -17.5 -7.5t-7.5 -17.5v-350q0 -10 7.5 -17.5t17.5 -7.5h550 q10 0 17.5 7.5t7.5 17.5v350q0 10 -7.5 17.5t-17.5 7.5zM1000 1000v-100h100v100h-100zM100 800v-100h100v100h-100zM1000 800v-100h100v100h-100zM100 600v-100h100v100h-100zM1000 600v-100h100v100h-100zM875 500h-550q-10 0 -17.5 -7.5t-7.5 -17.5v-350q0 -10 7.5 -17.5 t17.5 -7.5h550q10 0 17.5 7.5t7.5 17.5v350q0 10 -7.5 17.5t-17.5 7.5zM100 400v-100h100v100h-100zM1000 400v-100h100v100h-100zM100 200v-100h100v100h-100zM1000 200v-100h100v100h-100z" />
<glyph unicode="&#xe010;" d="M50 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM650 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5zM50 500h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM650 500h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
<glyph unicode="&#xe011;" d="M50 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5zM850 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM850 700h200q21 0 35.5 -14.5t14.5 -35.5v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 300h200 q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM850 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5 t35.5 14.5z" />
<glyph unicode="&#xe012;" d="M50 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 1100h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5zM50 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 700h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 300h700q21 0 35.5 -14.5t14.5 -35.5v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5z" />
<glyph unicode="&#xe013;" d="M465 477l571 571q8 8 18 8t17 -8l177 -177q8 -7 8 -17t-8 -18l-783 -784q-7 -8 -17.5 -8t-17.5 8l-384 384q-8 8 -8 18t8 17l177 177q7 8 17 8t18 -8l171 -171q7 -7 18 -7t18 7z" />
<glyph unicode="&#xe014;" d="M904 1083l178 -179q8 -8 8 -18.5t-8 -17.5l-267 -268l267 -268q8 -7 8 -17.5t-8 -18.5l-178 -178q-8 -8 -18.5 -8t-17.5 8l-268 267l-268 -267q-7 -8 -17.5 -8t-18.5 8l-178 178q-8 8 -8 18.5t8 17.5l267 268l-267 268q-8 7 -8 17.5t8 18.5l178 178q8 8 18.5 8t17.5 -8 l268 -267l268 268q7 7 17.5 7t18.5 -7z" />
<glyph unicode="&#xe015;" d="M507 1177q98 0 187.5 -38.5t154.5 -103.5t103.5 -154.5t38.5 -187.5q0 -141 -78 -262l300 -299q8 -8 8 -18.5t-8 -18.5l-109 -108q-7 -8 -17.5 -8t-18.5 8l-300 299q-119 -77 -261 -77q-98 0 -188 38.5t-154.5 103t-103 154.5t-38.5 188t38.5 187.5t103 154.5 t154.5 103.5t188 38.5zM506.5 1023q-89.5 0 -165.5 -44t-120 -120.5t-44 -166t44 -165.5t120 -120t165.5 -44t166 44t120.5 120t44 165.5t-44 166t-120.5 120.5t-166 44zM425 900h150q10 0 17.5 -7.5t7.5 -17.5v-75h75q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5 t-17.5 -7.5h-75v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-75q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h75v75q0 10 7.5 17.5t17.5 7.5z" />
<glyph unicode="&#xe016;" d="M507 1177q98 0 187.5 -38.5t154.5 -103.5t103.5 -154.5t38.5 -187.5q0 -141 -78 -262l300 -299q8 -8 8 -18.5t-8 -18.5l-109 -108q-7 -8 -17.5 -8t-18.5 8l-300 299q-119 -77 -261 -77q-98 0 -188 38.5t-154.5 103t-103 154.5t-38.5 188t38.5 187.5t103 154.5 t154.5 103.5t188 38.5zM506.5 1023q-89.5 0 -165.5 -44t-120 -120.5t-44 -166t44 -165.5t120 -120t165.5 -44t166 44t120.5 120t44 165.5t-44 166t-120.5 120.5t-166 44zM325 800h350q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-350q-10 0 -17.5 7.5 t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
<glyph unicode="&#xe017;" d="M550 1200h100q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM800 975v166q167 -62 272 -209.5t105 -331.5q0 -117 -45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5 t-184.5 123t-123 184.5t-45.5 224q0 184 105 331.5t272 209.5v-166q-103 -55 -165 -155t-62 -220q0 -116 57 -214.5t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5q0 120 -62 220t-165 155z" />
<glyph unicode="&#xe018;" d="M1025 1200h150q10 0 17.5 -7.5t7.5 -17.5v-1150q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v1150q0 10 7.5 17.5t17.5 7.5zM725 800h150q10 0 17.5 -7.5t7.5 -17.5v-750q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v750 q0 10 7.5 17.5t17.5 7.5zM425 500h150q10 0 17.5 -7.5t7.5 -17.5v-450q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v450q0 10 7.5 17.5t17.5 7.5zM125 300h150q10 0 17.5 -7.5t7.5 -17.5v-250q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5 v250q0 10 7.5 17.5t17.5 7.5z" />
<glyph unicode="&#xe019;" d="M600 1174q33 0 74 -5l38 -152l5 -1q49 -14 94 -39l5 -2l134 80q61 -48 104 -105l-80 -134l3 -5q25 -44 39 -93l1 -6l152 -38q5 -43 5 -73q0 -34 -5 -74l-152 -38l-1 -6q-15 -49 -39 -93l-3 -5l80 -134q-48 -61 -104 -105l-134 81l-5 -3q-44 -25 -94 -39l-5 -2l-38 -151 q-43 -5 -74 -5q-33 0 -74 5l-38 151l-5 2q-49 14 -94 39l-5 3l-134 -81q-60 48 -104 105l80 134l-3 5q-25 45 -38 93l-2 6l-151 38q-6 42 -6 74q0 33 6 73l151 38l2 6q13 48 38 93l3 5l-80 134q47 61 105 105l133 -80l5 2q45 25 94 39l5 1l38 152q43 5 74 5zM600 815 q-89 0 -152 -63t-63 -151.5t63 -151.5t152 -63t152 63t63 151.5t-63 151.5t-152 63z" />
<glyph unicode="&#xe020;" d="M500 1300h300q41 0 70.5 -29.5t29.5 -70.5v-100h275q10 0 17.5 -7.5t7.5 -17.5v-75h-1100v75q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5zM500 1200v-100h300v100h-300zM1100 900v-800q0 -41 -29.5 -70.5t-70.5 -29.5h-700q-41 0 -70.5 29.5t-29.5 70.5 v800h900zM300 800v-700h100v700h-100zM500 800v-700h100v700h-100zM700 800v-700h100v700h-100zM900 800v-700h100v700h-100z" />
<glyph unicode="&#xe021;" d="M18 618l620 608q8 7 18.5 7t17.5 -7l608 -608q8 -8 5.5 -13t-12.5 -5h-175v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v375h-300v-375q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v575h-175q-10 0 -12.5 5t5.5 13z" />
<glyph unicode="&#xe022;" d="M600 1200v-400q0 -41 29.5 -70.5t70.5 -29.5h300v-650q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v1100q0 21 14.5 35.5t35.5 14.5h450zM1000 800h-250q-21 0 -35.5 14.5t-14.5 35.5v250z" />
<glyph unicode="&#xe023;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM525 900h50q10 0 17.5 -7.5t7.5 -17.5v-275h175q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5z" />
<glyph unicode="&#xe024;" d="M1300 0h-538l-41 400h-242l-41 -400h-538l431 1200h209l-21 -300h162l-20 300h208zM515 800l-27 -300h224l-27 300h-170z" />
<glyph unicode="&#xe025;" d="M550 1200h200q21 0 35.5 -14.5t14.5 -35.5v-450h191q20 0 25.5 -11.5t-7.5 -27.5l-327 -400q-13 -16 -32 -16t-32 16l-327 400q-13 16 -7.5 27.5t25.5 11.5h191v450q0 21 14.5 35.5t35.5 14.5zM1125 400h50q10 0 17.5 -7.5t7.5 -17.5v-350q0 -10 -7.5 -17.5t-17.5 -7.5 h-1050q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h50q10 0 17.5 -7.5t7.5 -17.5v-175h900v175q0 10 7.5 17.5t17.5 7.5z" />
<glyph unicode="&#xe026;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM525 900h150q10 0 17.5 -7.5t7.5 -17.5v-275h137q21 0 26 -11.5t-8 -27.5l-223 -275q-13 -16 -32 -16t-32 16l-223 275q-13 16 -8 27.5t26 11.5h137v275q0 10 7.5 17.5t17.5 7.5z " />
<glyph unicode="&#xe027;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM632 914l223 -275q13 -16 8 -27.5t-26 -11.5h-137v-275q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v275h-137q-21 0 -26 11.5t8 27.5l223 275q13 16 32 16 t32 -16z" />
<glyph unicode="&#xe028;" d="M225 1200h750q10 0 19.5 -7t12.5 -17l186 -652q7 -24 7 -49v-425q0 -12 -4 -27t-9 -17q-12 -6 -37 -6h-1100q-12 0 -27 4t-17 8q-6 13 -6 38l1 425q0 25 7 49l185 652q3 10 12.5 17t19.5 7zM878 1000h-556q-10 0 -19 -7t-11 -18l-87 -450q-2 -11 4 -18t16 -7h150 q10 0 19.5 -7t11.5 -17l38 -152q2 -10 11.5 -17t19.5 -7h250q10 0 19.5 7t11.5 17l38 152q2 10 11.5 17t19.5 7h150q10 0 16 7t4 18l-87 450q-2 11 -11 18t-19 7z" />
<glyph unicode="&#xe029;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM540 820l253 -190q17 -12 17 -30t-17 -30l-253 -190q-16 -12 -28 -6.5t-12 26.5v400q0 21 12 26.5t28 -6.5z" />
<glyph unicode="&#xe030;" d="M947 1060l135 135q7 7 12.5 5t5.5 -13v-362q0 -10 -7.5 -17.5t-17.5 -7.5h-362q-11 0 -13 5.5t5 12.5l133 133q-109 76 -238 76q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5h150q0 -117 -45.5 -224 t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5q192 0 347 -117z" />
<glyph unicode="&#xe031;" d="M947 1060l135 135q7 7 12.5 5t5.5 -13v-361q0 -11 -7.5 -18.5t-18.5 -7.5h-361q-11 0 -13 5.5t5 12.5l134 134q-110 75 -239 75q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5h-150q0 117 45.5 224t123 184.5t184.5 123t224 45.5q192 0 347 -117zM1027 600h150 q0 -117 -45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5q-192 0 -348 118l-134 -134q-7 -8 -12.5 -5.5t-5.5 12.5v360q0 11 7.5 18.5t18.5 7.5h360q10 0 12.5 -5.5t-5.5 -12.5l-133 -133q110 -76 240 -76q116 0 214.5 57t155.5 155.5t57 214.5z" />
<glyph unicode="&#xe032;" d="M125 1200h1050q10 0 17.5 -7.5t7.5 -17.5v-1150q0 -10 -7.5 -17.5t-17.5 -7.5h-1050q-10 0 -17.5 7.5t-7.5 17.5v1150q0 10 7.5 17.5t17.5 7.5zM1075 1000h-850q-10 0 -17.5 -7.5t-7.5 -17.5v-850q0 -10 7.5 -17.5t17.5 -7.5h850q10 0 17.5 7.5t7.5 17.5v850 q0 10 -7.5 17.5t-17.5 7.5zM325 900h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 900h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 700h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 700h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 500h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 500h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 300h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 300h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5z" />
<glyph unicode="&#xe033;" d="M900 800v200q0 83 -58.5 141.5t-141.5 58.5h-300q-82 0 -141 -59t-59 -141v-200h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h900q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-100zM400 800v150q0 21 15 35.5t35 14.5h200 q20 0 35 -14.5t15 -35.5v-150h-300z" />
<glyph unicode="&#xe034;" d="M125 1100h50q10 0 17.5 -7.5t7.5 -17.5v-1075h-100v1075q0 10 7.5 17.5t17.5 7.5zM1075 1052q4 0 9 -2q16 -6 16 -23v-421q0 -6 -3 -12q-33 -59 -66.5 -99t-65.5 -58t-56.5 -24.5t-52.5 -6.5q-26 0 -57.5 6.5t-52.5 13.5t-60 21q-41 15 -63 22.5t-57.5 15t-65.5 7.5 q-85 0 -160 -57q-7 -5 -15 -5q-6 0 -11 3q-14 7 -14 22v438q22 55 82 98.5t119 46.5q23 2 43 0.5t43 -7t32.5 -8.5t38 -13t32.5 -11q41 -14 63.5 -21t57 -14t63.5 -7q103 0 183 87q7 8 18 8z" />
<glyph unicode="&#xe035;" d="M600 1175q116 0 227 -49.5t192.5 -131t131 -192.5t49.5 -227v-300q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v300q0 127 -70.5 231.5t-184.5 161.5t-245 57t-245 -57t-184.5 -161.5t-70.5 -231.5v-300q0 -10 -7.5 -17.5t-17.5 -7.5h-50 q-10 0 -17.5 7.5t-7.5 17.5v300q0 116 49.5 227t131 192.5t192.5 131t227 49.5zM220 500h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460q0 8 6 14t14 6zM820 500h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460 q0 8 6 14t14 6z" />
<glyph unicode="&#xe036;" d="M321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM900 668l120 120q7 7 17 7t17 -7l34 -34q7 -7 7 -17t-7 -17l-120 -120l120 -120q7 -7 7 -17 t-7 -17l-34 -34q-7 -7 -17 -7t-17 7l-120 119l-120 -119q-7 -7 -17 -7t-17 7l-34 34q-7 7 -7 17t7 17l119 120l-119 120q-7 7 -7 17t7 17l34 34q7 8 17 8t17 -8z" />
<glyph unicode="&#xe037;" d="M321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM766 900h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6 l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238q-6 8 -4.5 18t9.5 17l29 22q7 5 15 5z" />
<glyph unicode="&#xe038;" d="M967 1004h3q11 -1 17 -10q135 -179 135 -396q0 -105 -34 -206.5t-98 -185.5q-7 -9 -17 -10h-3q-9 0 -16 6l-42 34q-8 6 -9 16t5 18q111 150 111 328q0 90 -29.5 176t-84.5 157q-6 9 -5 19t10 16l42 33q7 5 15 5zM321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5 t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM766 900h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238 q-6 8 -4.5 18.5t9.5 16.5l29 22q7 5 15 5z" />
<glyph unicode="&#xe039;" d="M500 900h100v-100h-100v-100h-400v-100h-100v600h500v-300zM1200 700h-200v-100h200v-200h-300v300h-200v300h-100v200h600v-500zM100 1100v-300h300v300h-300zM800 1100v-300h300v300h-300zM300 900h-100v100h100v-100zM1000 900h-100v100h100v-100zM300 500h200v-500 h-500v500h200v100h100v-100zM800 300h200v-100h-100v-100h-200v100h-100v100h100v200h-200v100h300v-300zM100 400v-300h300v300h-300zM300 200h-100v100h100v-100zM1200 200h-100v100h100v-100zM700 0h-100v100h100v-100zM1200 0h-300v100h300v-100z" />
<glyph unicode="&#xe040;" d="M100 200h-100v1000h100v-1000zM300 200h-100v1000h100v-1000zM700 200h-200v1000h200v-1000zM900 200h-100v1000h100v-1000zM1200 200h-200v1000h200v-1000zM400 0h-300v100h300v-100zM600 0h-100v91h100v-91zM800 0h-100v91h100v-91zM1100 0h-200v91h200v-91z" />
<glyph unicode="&#xe041;" d="M500 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-682 682l1 475q0 10 7.5 17.5t17.5 7.5h474zM319.5 1024.5q-29.5 29.5 -71 29.5t-71 -29.5t-29.5 -71.5t29.5 -71.5t71 -29.5t71 29.5t29.5 71.5t-29.5 71.5z" />
<glyph unicode="&#xe042;" d="M500 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-682 682l1 475q0 10 7.5 17.5t17.5 7.5h474zM800 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-56 56l424 426l-700 700h150zM319.5 1024.5q-29.5 29.5 -71 29.5t-71 -29.5 t-29.5 -71.5t29.5 -71.5t71 -29.5t71 29.5t29.5 71.5t-29.5 71.5z" />
<glyph unicode="&#xe043;" d="M300 1200h825q75 0 75 -75v-900q0 -25 -18 -43l-64 -64q-8 -8 -13 -5.5t-5 12.5v950q0 10 -7.5 17.5t-17.5 7.5h-700q-25 0 -43 -18l-64 -64q-8 -8 -5.5 -13t12.5 -5h700q10 0 17.5 -7.5t7.5 -17.5v-950q0 -10 -7.5 -17.5t-17.5 -7.5h-850q-10 0 -17.5 7.5t-7.5 17.5v975 q0 25 18 43l139 139q18 18 43 18z" />
<glyph unicode="&#xe044;" d="M250 1200h800q21 0 35.5 -14.5t14.5 -35.5v-1150l-450 444l-450 -445v1151q0 21 14.5 35.5t35.5 14.5z" />
<glyph unicode="&#xe045;" d="M822 1200h-444q-11 0 -19 -7.5t-9 -17.5l-78 -301q-7 -24 7 -45l57 -108q6 -9 17.5 -15t21.5 -6h450q10 0 21.5 6t17.5 15l62 108q14 21 7 45l-83 301q-1 10 -9 17.5t-19 7.5zM1175 800h-150q-10 0 -21 -6.5t-15 -15.5l-78 -156q-4 -9 -15 -15.5t-21 -6.5h-550 q-10 0 -21 6.5t-15 15.5l-78 156q-4 9 -15 15.5t-21 6.5h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-650q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h750q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5 t7.5 17.5v650q0 10 -7.5 17.5t-17.5 7.5zM850 200h-500q-10 0 -19.5 -7t-11.5 -17l-38 -152q-2 -10 3.5 -17t15.5 -7h600q10 0 15.5 7t3.5 17l-38 152q-2 10 -11.5 17t-19.5 7z" />
<glyph unicode="&#xe046;" d="M500 1100h200q56 0 102.5 -20.5t72.5 -50t44 -59t25 -50.5l6 -20h150q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5h150q2 8 6.5 21.5t24 48t45 61t72 48t102.5 21.5zM900 800v-100 h100v100h-100zM600 730q-95 0 -162.5 -67.5t-67.5 -162.5t67.5 -162.5t162.5 -67.5t162.5 67.5t67.5 162.5t-67.5 162.5t-162.5 67.5zM600 603q43 0 73 -30t30 -73t-30 -73t-73 -30t-73 30t-30 73t30 73t73 30z" />
<glyph unicode="&#xe047;" d="M681 1199l385 -998q20 -50 60 -92q18 -19 36.5 -29.5t27.5 -11.5l10 -2v-66h-417v66q53 0 75 43.5t5 88.5l-82 222h-391q-58 -145 -92 -234q-11 -34 -6.5 -57t25.5 -37t46 -20t55 -6v-66h-365v66q56 24 84 52q12 12 25 30.5t20 31.5l7 13l399 1006h93zM416 521h340 l-162 457z" />
<glyph unicode="&#xe048;" d="M753 641q5 -1 14.5 -4.5t36 -15.5t50.5 -26.5t53.5 -40t50.5 -54.5t35.5 -70t14.5 -87q0 -67 -27.5 -125.5t-71.5 -97.5t-98.5 -66.5t-108.5 -40.5t-102 -13h-500v89q41 7 70.5 32.5t29.5 65.5v827q0 24 -0.5 34t-3.5 24t-8.5 19.5t-17 13.5t-28 12.5t-42.5 11.5v71 l471 -1q57 0 115.5 -20.5t108 -57t80.5 -94t31 -124.5q0 -51 -15.5 -96.5t-38 -74.5t-45 -50.5t-38.5 -30.5zM400 700h139q78 0 130.5 48.5t52.5 122.5q0 41 -8.5 70.5t-29.5 55.5t-62.5 39.5t-103.5 13.5h-118v-350zM400 200h216q80 0 121 50.5t41 130.5q0 90 -62.5 154.5 t-156.5 64.5h-159v-400z" />
<glyph unicode="&#xe049;" d="M877 1200l2 -57q-83 -19 -116 -45.5t-40 -66.5l-132 -839q-9 -49 13 -69t96 -26v-97h-500v97q186 16 200 98l173 832q3 17 3 30t-1.5 22.5t-9 17.5t-13.5 12.5t-21.5 10t-26 8.5t-33.5 10q-13 3 -19 5v57h425z" />
<glyph unicode="&#xe050;" d="M1300 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-850q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v850h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM175 1000h-75v-800h75l-125 -167l-125 167h75v800h-75l125 167z" />
<glyph unicode="&#xe051;" d="M1100 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-650q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v650h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM1167 50l-167 -125v75h-800v-75l-167 125l167 125v-75h800v75z" />
<glyph unicode="&#xe052;" d="M50 1100h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 500h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
<glyph unicode="&#xe053;" d="M250 1100h700q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM250 500h700q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
<glyph unicode="&#xe054;" d="M500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000 q-21 0 -35.5 14.5t-14.5 35.5zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5zM0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100 q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5z" />
<glyph unicode="&#xe055;" d="M50 1100h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 500h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
<glyph unicode="&#xe056;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 1100h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 800h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 500h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 500h800q21 0 35.5 -14.5t14.5 -35.5v-100 q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 200h800 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
<glyph unicode="&#xe057;" d="M400 0h-100v1100h100v-1100zM550 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM550 800h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM267 550l-167 -125v75h-200v100h200v75zM550 500h300q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM550 200h600 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
<glyph unicode="&#xe058;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM900 0h-100v1100h100v-1100zM50 800h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM1100 600h200v-100h-200v-75l-167 125l167 125v-75zM50 500h300q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h600 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
<glyph unicode="&#xe059;" d="M75 1000h750q31 0 53 -22t22 -53v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53v650q0 31 22 53t53 22zM1200 300l-300 300l300 300v-600z" />
<glyph unicode="&#xe060;" d="M44 1100h1112q18 0 31 -13t13 -31v-1012q0 -18 -13 -31t-31 -13h-1112q-18 0 -31 13t-13 31v1012q0 18 13 31t31 13zM100 1000v-737l247 182l298 -131l-74 156l293 318l236 -288v500h-1000zM342 884q56 0 95 -39t39 -94.5t-39 -95t-95 -39.5t-95 39.5t-39 95t39 94.5 t95 39z" />
<glyph unicode="&#xe062;" d="M648 1169q117 0 216 -60t156.5 -161t57.5 -218q0 -115 -70 -258q-69 -109 -158 -225.5t-143 -179.5l-54 -62q-9 8 -25.5 24.5t-63.5 67.5t-91 103t-98.5 128t-95.5 148q-60 132 -60 249q0 88 34 169.5t91.5 142t137 96.5t166.5 36zM652.5 974q-91.5 0 -156.5 -65 t-65 -157t65 -156.5t156.5 -64.5t156.5 64.5t65 156.5t-65 157t-156.5 65z" />
<glyph unicode="&#xe063;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 173v854q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57z" />
<glyph unicode="&#xe064;" d="M554 1295q21 -72 57.5 -143.5t76 -130t83 -118t82.5 -117t70 -116t49.5 -126t18.5 -136.5q0 -71 -25.5 -135t-68.5 -111t-99 -82t-118.5 -54t-125.5 -23q-84 5 -161.5 34t-139.5 78.5t-99 125t-37 164.5q0 69 18 136.5t49.5 126.5t69.5 116.5t81.5 117.5t83.5 119 t76.5 131t58.5 143zM344 710q-23 -33 -43.5 -70.5t-40.5 -102.5t-17 -123q1 -37 14.5 -69.5t30 -52t41 -37t38.5 -24.5t33 -15q21 -7 32 -1t13 22l6 34q2 10 -2.5 22t-13.5 19q-5 4 -14 12t-29.5 40.5t-32.5 73.5q-26 89 6 271q2 11 -6 11q-8 1 -15 -10z" />
<glyph unicode="&#xe065;" d="M1000 1013l108 115q2 1 5 2t13 2t20.5 -1t25 -9.5t28.5 -21.5q22 -22 27 -43t0 -32l-6 -10l-108 -115zM350 1100h400q50 0 105 -13l-187 -187h-368q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v182l200 200v-332 q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5zM1009 803l-362 -362l-161 -50l55 170l355 355z" />
<glyph unicode="&#xe066;" d="M350 1100h361q-164 -146 -216 -200h-195q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-103q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5z M824 1073l339 -301q8 -7 8 -17.5t-8 -17.5l-340 -306q-7 -6 -12.5 -4t-6.5 11v203q-26 1 -54.5 0t-78.5 -7.5t-92 -17.5t-86 -35t-70 -57q10 59 33 108t51.5 81.5t65 58.5t68.5 40.5t67 24.5t56 13.5t40 4.5v210q1 10 6.5 12.5t13.5 -4.5z" />
<glyph unicode="&#xe067;" d="M350 1100h350q60 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-219q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5z M643 639l395 395q7 7 17.5 7t17.5 -7l101 -101q7 -7 7 -17.5t-7 -17.5l-531 -532q-7 -7 -17.5 -7t-17.5 7l-248 248q-7 7 -7 17.5t7 17.5l101 101q7 7 17.5 7t17.5 -7l111 -111q8 -7 18 -7t18 7z" />
<glyph unicode="&#xe068;" d="M318 918l264 264q8 8 18 8t18 -8l260 -264q7 -8 4.5 -13t-12.5 -5h-170v-200h200v173q0 10 5 12t13 -5l264 -260q8 -7 8 -17.5t-8 -17.5l-264 -265q-8 -7 -13 -5t-5 12v173h-200v-200h170q10 0 12.5 -5t-4.5 -13l-260 -264q-8 -8 -18 -8t-18 8l-264 264q-8 8 -5.5 13 t12.5 5h175v200h-200v-173q0 -10 -5 -12t-13 5l-264 265q-8 7 -8 17.5t8 17.5l264 260q8 7 13 5t5 -12v-173h200v200h-175q-10 0 -12.5 5t5.5 13z" />
<glyph unicode="&#xe069;" d="M250 1100h100q21 0 35.5 -14.5t14.5 -35.5v-438l464 453q15 14 25.5 10t10.5 -25v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5z" />
<glyph unicode="&#xe070;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-438l464 453q15 14 25.5 10t10.5 -25v-438l464 453q15 14 25.5 10t10.5 -25v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5 t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5z" />
<glyph unicode="&#xe071;" d="M1200 1050v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -10.5 -25t-25.5 10l-492 480q-15 14 -15 35t15 35l492 480q15 14 25.5 10t10.5 -25v-438l464 453q15 14 25.5 10t10.5 -25z" />
<glyph unicode="&#xe072;" d="M243 1074l814 -498q18 -11 18 -26t-18 -26l-814 -498q-18 -11 -30.5 -4t-12.5 28v1000q0 21 12.5 28t30.5 -4z" />
<glyph unicode="&#xe073;" d="M250 1000h200q21 0 35.5 -14.5t14.5 -35.5v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5zM650 1000h200q21 0 35.5 -14.5t14.5 -35.5v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v800 q0 21 14.5 35.5t35.5 14.5z" />
<glyph unicode="&#xe074;" d="M1100 950v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5z" />
<glyph unicode="&#xe075;" d="M500 612v438q0 21 10.5 25t25.5 -10l492 -480q15 -14 15 -35t-15 -35l-492 -480q-15 -14 -25.5 -10t-10.5 25v438l-464 -453q-15 -14 -25.5 -10t-10.5 25v1000q0 21 10.5 25t25.5 -10z" />
<glyph unicode="&#xe076;" d="M1048 1102l100 1q20 0 35 -14.5t15 -35.5l5 -1000q0 -21 -14.5 -35.5t-35.5 -14.5l-100 -1q-21 0 -35.5 14.5t-14.5 35.5l-2 437l-463 -454q-14 -15 -24.5 -10.5t-10.5 25.5l-2 437l-462 -455q-15 -14 -25.5 -9.5t-10.5 24.5l-5 1000q0 21 10.5 25.5t25.5 -10.5l466 -450 l-2 438q0 20 10.5 24.5t25.5 -9.5l466 -451l-2 438q0 21 14.5 35.5t35.5 14.5z" />
<glyph unicode="&#xe077;" d="M850 1100h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-464 -453q-15 -14 -25.5 -10t-10.5 25v1000q0 21 10.5 25t25.5 -10l464 -453v438q0 21 14.5 35.5t35.5 14.5z" />
<glyph unicode="&#xe078;" d="M686 1081l501 -540q15 -15 10.5 -26t-26.5 -11h-1042q-22 0 -26.5 11t10.5 26l501 540q15 15 36 15t36 -15zM150 400h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
<glyph unicode="&#xe079;" d="M885 900l-352 -353l352 -353l-197 -198l-552 552l552 550z" />
<glyph unicode="&#xe080;" d="M1064 547l-551 -551l-198 198l353 353l-353 353l198 198z" />
<glyph unicode="&#xe081;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM650 900h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-150h-150 q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5t35.5 -14.5h150v-150q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v150h150q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5h-150v150q0 21 -14.5 35.5t-35.5 14.5z" />
<glyph unicode="&#xe082;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM850 700h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5 t35.5 -14.5h500q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5z" />
<glyph unicode="&#xe083;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM741.5 913q-12.5 0 -21.5 -9l-120 -120l-120 120q-9 9 -21.5 9 t-21.5 -9l-141 -141q-9 -9 -9 -21.5t9 -21.5l120 -120l-120 -120q-9 -9 -9 -21.5t9 -21.5l141 -141q9 -9 21.5 -9t21.5 9l120 120l120 -120q9 -9 21.5 -9t21.5 9l141 141q9 9 9 21.5t-9 21.5l-120 120l120 120q9 9 9 21.5t-9 21.5l-141 141q-9 9 -21.5 9z" />
<glyph unicode="&#xe084;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM546 623l-84 85q-7 7 -17.5 7t-18.5 -7l-139 -139q-7 -8 -7 -18t7 -18 l242 -241q7 -8 17.5 -8t17.5 8l375 375q7 7 7 17.5t-7 18.5l-139 139q-7 7 -17.5 7t-17.5 -7z" />
<glyph unicode="&#xe085;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM588 941q-29 0 -59 -5.5t-63 -20.5t-58 -38.5t-41.5 -63t-16.5 -89.5 q0 -25 20 -25h131q30 -5 35 11q6 20 20.5 28t45.5 8q20 0 31.5 -10.5t11.5 -28.5q0 -23 -7 -34t-26 -18q-1 0 -13.5 -4t-19.5 -7.5t-20 -10.5t-22 -17t-18.5 -24t-15.5 -35t-8 -46q-1 -8 5.5 -16.5t20.5 -8.5h173q7 0 22 8t35 28t37.5 48t29.5 74t12 100q0 47 -17 83 t-42.5 57t-59.5 34.5t-64 18t-59 4.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z" />
<glyph unicode="&#xe086;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM675 1000h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5 t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5zM675 700h-250q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h75v-200h-75q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h350q10 0 17.5 7.5t7.5 17.5v50q0 10 -7.5 17.5 t-17.5 7.5h-75v275q0 10 -7.5 17.5t-17.5 7.5z" />
<glyph unicode="&#xe087;" d="M525 1200h150q10 0 17.5 -7.5t7.5 -17.5v-194q103 -27 178.5 -102.5t102.5 -178.5h194q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-194q-27 -103 -102.5 -178.5t-178.5 -102.5v-194q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v194 q-103 27 -178.5 102.5t-102.5 178.5h-194q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h194q27 103 102.5 178.5t178.5 102.5v194q0 10 7.5 17.5t17.5 7.5zM700 893v-168q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v168q-68 -23 -119 -74 t-74 -119h168q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-168q23 -68 74 -119t119 -74v168q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-168q68 23 119 74t74 119h-168q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h168 q-23 68 -74 119t-119 74z" />
<glyph unicode="&#xe088;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM759 823l64 -64q7 -7 7 -17.5t-7 -17.5l-124 -124l124 -124q7 -7 7 -17.5t-7 -17.5l-64 -64q-7 -7 -17.5 -7t-17.5 7l-124 124l-124 -124q-7 -7 -17.5 -7t-17.5 7l-64 64 q-7 7 -7 17.5t7 17.5l124 124l-124 124q-7 7 -7 17.5t7 17.5l64 64q7 7 17.5 7t17.5 -7l124 -124l124 124q7 7 17.5 7t17.5 -7z" />
<glyph unicode="&#xe089;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM782 788l106 -106q7 -7 7 -17.5t-7 -17.5l-320 -321q-8 -7 -18 -7t-18 7l-202 203q-8 7 -8 17.5t8 17.5l106 106q7 8 17.5 8t17.5 -8l79 -79l197 197q7 7 17.5 7t17.5 -7z" />
<glyph unicode="&#xe090;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5q0 -120 65 -225 l587 587q-105 65 -225 65zM965 819l-584 -584q104 -62 219 -62q116 0 214.5 57t155.5 155.5t57 214.5q0 115 -62 219z" />
<glyph unicode="&#xe091;" d="M39 582l522 427q16 13 27.5 8t11.5 -26v-291h550q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-550v-291q0 -21 -11.5 -26t-27.5 8l-522 427q-16 13 -16 32t16 32z" />
<glyph unicode="&#xe092;" d="M639 1009l522 -427q16 -13 16 -32t-16 -32l-522 -427q-16 -13 -27.5 -8t-11.5 26v291h-550q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h550v291q0 21 11.5 26t27.5 -8z" />
<glyph unicode="&#xe093;" d="M682 1161l427 -522q13 -16 8 -27.5t-26 -11.5h-291v-550q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v550h-291q-21 0 -26 11.5t8 27.5l427 522q13 16 32 16t32 -16z" />
<glyph unicode="&#xe094;" d="M550 1200h200q21 0 35.5 -14.5t14.5 -35.5v-550h291q21 0 26 -11.5t-8 -27.5l-427 -522q-13 -16 -32 -16t-32 16l-427 522q-13 16 -8 27.5t26 11.5h291v550q0 21 14.5 35.5t35.5 14.5z" />
<glyph unicode="&#xe095;" d="M639 1109l522 -427q16 -13 16 -32t-16 -32l-522 -427q-16 -13 -27.5 -8t-11.5 26v291q-94 -2 -182 -20t-170.5 -52t-147 -92.5t-100.5 -135.5q5 105 27 193.5t67.5 167t113 135t167 91.5t225.5 42v262q0 21 11.5 26t27.5 -8z" />
<glyph unicode="&#xe096;" d="M850 1200h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94l-249 -249q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l249 249l-94 94q-14 14 -10 24.5t25 10.5zM350 0h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l249 249 q8 7 18 7t18 -7l106 -106q7 -8 7 -18t-7 -18l-249 -249l94 -94q14 -14 10 -24.5t-25 -10.5z" />
<glyph unicode="&#xe097;" d="M1014 1120l106 -106q7 -8 7 -18t-7 -18l-249 -249l94 -94q14 -14 10 -24.5t-25 -10.5h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l249 249q8 7 18 7t18 -7zM250 600h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94 l-249 -249q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l249 249l-94 94q-14 14 -10 24.5t25 10.5z" />
<glyph unicode="&#xe101;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM704 900h-208q-20 0 -32 -14.5t-8 -34.5l58 -302q4 -20 21.5 -34.5 t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z" />
<glyph unicode="&#xe102;" d="M260 1200q9 0 19 -2t15 -4l5 -2q22 -10 44 -23l196 -118q21 -13 36 -24q29 -21 37 -12q11 13 49 35l196 118q22 13 45 23q17 7 38 7q23 0 47 -16.5t37 -33.5l13 -16q14 -21 18 -45l25 -123l8 -44q1 -9 8.5 -14.5t17.5 -5.5h61q10 0 17.5 -7.5t7.5 -17.5v-50 q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 -7.5t-7.5 -17.5v-175h-400v300h-200v-300h-400v175q0 10 -7.5 17.5t-17.5 7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5h61q11 0 18 3t7 8q0 4 9 52l25 128q5 25 19 45q2 3 5 7t13.5 15t21.5 19.5t26.5 15.5 t29.5 7zM915 1079l-166 -162q-7 -7 -5 -12t12 -5h219q10 0 15 7t2 17l-51 149q-3 10 -11 12t-15 -6zM463 917l-177 157q-8 7 -16 5t-11 -12l-51 -143q-3 -10 2 -17t15 -7h231q11 0 12.5 5t-5.5 12zM500 0h-375q-10 0 -17.5 7.5t-7.5 17.5v375h400v-400zM1100 400v-375 q0 -10 -7.5 -17.5t-17.5 -7.5h-375v400h400z" />
<glyph unicode="&#xe103;" d="M1165 1190q8 3 21 -6.5t13 -17.5q-2 -178 -24.5 -323.5t-55.5 -245.5t-87 -174.5t-102.5 -118.5t-118 -68.5t-118.5 -33t-120 -4.5t-105 9.5t-90 16.5q-61 12 -78 11q-4 1 -12.5 0t-34 -14.5t-52.5 -40.5l-153 -153q-26 -24 -37 -14.5t-11 43.5q0 64 42 102q8 8 50.5 45 t66.5 58q19 17 35 47t13 61q-9 55 -10 102.5t7 111t37 130t78 129.5q39 51 80 88t89.5 63.5t94.5 45t113.5 36t129 31t157.5 37t182 47.5zM1116 1098q-8 9 -22.5 -3t-45.5 -50q-38 -47 -119 -103.5t-142 -89.5l-62 -33q-56 -30 -102 -57t-104 -68t-102.5 -80.5t-85.5 -91 t-64 -104.5q-24 -56 -31 -86t2 -32t31.5 17.5t55.5 59.5q25 30 94 75.5t125.5 77.5t147.5 81q70 37 118.5 69t102 79.5t99 111t86.5 148.5q22 50 24 60t-6 19z" />
<glyph unicode="&#xe104;" d="M653 1231q-39 -67 -54.5 -131t-10.5 -114.5t24.5 -96.5t47.5 -80t63.5 -62.5t68.5 -46.5t65 -30q-4 7 -17.5 35t-18.5 39.5t-17 39.5t-17 43t-13 42t-9.5 44.5t-2 42t4 43t13.5 39t23 38.5q96 -42 165 -107.5t105 -138t52 -156t13 -159t-19 -149.5q-13 -55 -44 -106.5 t-68 -87t-78.5 -64.5t-72.5 -45t-53 -22q-72 -22 -127 -11q-31 6 -13 19q6 3 17 7q13 5 32.5 21t41 44t38.5 63.5t21.5 81.5t-6.5 94.5t-50 107t-104 115.5q10 -104 -0.5 -189t-37 -140.5t-65 -93t-84 -52t-93.5 -11t-95 24.5q-80 36 -131.5 114t-53.5 171q-2 23 0 49.5 t4.5 52.5t13.5 56t27.5 60t46 64.5t69.5 68.5q-8 -53 -5 -102.5t17.5 -90t34 -68.5t44.5 -39t49 -2q31 13 38.5 36t-4.5 55t-29 64.5t-36 75t-26 75.5q-15 85 2 161.5t53.5 128.5t85.5 92.5t93.5 61t81.5 25.5z" />
<glyph unicode="&#xe105;" d="M600 1094q82 0 160.5 -22.5t140 -59t116.5 -82.5t94.5 -95t68 -95t42.5 -82.5t14 -57.5t-14 -57.5t-43 -82.5t-68.5 -95t-94.5 -95t-116.5 -82.5t-140 -59t-159.5 -22.5t-159.5 22.5t-140 59t-116.5 82.5t-94.5 95t-68.5 95t-43 82.5t-14 57.5t14 57.5t42.5 82.5t68 95 t94.5 95t116.5 82.5t140 59t160.5 22.5zM888 829q-15 15 -18 12t5 -22q25 -57 25 -119q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 59 23 114q8 19 4.5 22t-17.5 -12q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q22 -36 47 -71t70 -82t92.5 -81t113 -58.5t133.5 -24.5 t133.5 24t113 58.5t92.5 81.5t70 81.5t47 70.5q11 18 9 42.5t-14 41.5q-90 117 -163 189zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l35 34q14 15 12.5 33.5t-16.5 33.5q-44 44 -89 117q-11 18 -28 20t-32 -12z" />
<glyph unicode="&#xe106;" d="M592 0h-148l31 120q-91 20 -175.5 68.5t-143.5 106.5t-103.5 119t-66.5 110t-22 76q0 21 14 57.5t42.5 82.5t68 95t94.5 95t116.5 82.5t140 59t160.5 22.5q61 0 126 -15l32 121h148zM944 770l47 181q108 -85 176.5 -192t68.5 -159q0 -26 -19.5 -71t-59.5 -102t-93 -112 t-129 -104.5t-158 -75.5l46 173q77 49 136 117t97 131q11 18 9 42.5t-14 41.5q-54 70 -107 130zM310 824q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q18 -30 39 -60t57 -70.5t74 -73t90 -61t105 -41.5l41 154q-107 18 -178.5 101.5t-71.5 193.5q0 59 23 114q8 19 4.5 22 t-17.5 -12zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l12 11l22 86l-3 4q-44 44 -89 117q-11 18 -28 20t-32 -12z" />
<glyph unicode="&#xe107;" d="M-90 100l642 1066q20 31 48 28.5t48 -35.5l642 -1056q21 -32 7.5 -67.5t-50.5 -35.5h-1294q-37 0 -50.5 34t7.5 66zM155 200h345v75q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-75h345l-445 723zM496 700h208q20 0 32 -14.5t8 -34.5l-58 -252 q-4 -20 -21.5 -34.5t-37.5 -14.5h-54q-20 0 -37.5 14.5t-21.5 34.5l-58 252q-4 20 8 34.5t32 14.5z" />
<glyph unicode="&#xe108;" d="M650 1200q62 0 106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -93 100 -113v-64q0 -21 -13 -29t-32 1l-205 128l-205 -128q-19 -9 -32 -1t-13 29v64q0 20 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5v41 q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44z" />
<glyph unicode="&#xe109;" d="M850 1200h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-150h-1100v150q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-50h500v50q0 21 14.5 35.5t35.5 14.5zM1100 800v-750q0 -21 -14.5 -35.5 t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v750h1100zM100 600v-100h100v100h-100zM300 600v-100h100v100h-100zM500 600v-100h100v100h-100zM700 600v-100h100v100h-100zM900 600v-100h100v100h-100zM100 400v-100h100v100h-100zM300 400v-100h100v100h-100zM500 400 v-100h100v100h-100zM700 400v-100h100v100h-100zM900 400v-100h100v100h-100zM100 200v-100h100v100h-100zM300 200v-100h100v100h-100zM500 200v-100h100v100h-100zM700 200v-100h100v100h-100zM900 200v-100h100v100h-100z" />
<glyph unicode="&#xe110;" d="M1135 1165l249 -230q15 -14 15 -35t-15 -35l-249 -230q-14 -14 -24.5 -10t-10.5 25v150h-159l-600 -600h-291q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h209l600 600h241v150q0 21 10.5 25t24.5 -10zM522 819l-141 -141l-122 122h-209q-21 0 -35.5 14.5 t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h291zM1135 565l249 -230q15 -14 15 -35t-15 -35l-249 -230q-14 -14 -24.5 -10t-10.5 25v150h-241l-181 181l141 141l122 -122h159v150q0 21 10.5 25t24.5 -10z" />
<glyph unicode="&#xe111;" d="M100 1100h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5z" />
<glyph unicode="&#xe112;" d="M150 1200h200q21 0 35.5 -14.5t14.5 -35.5v-250h-300v250q0 21 14.5 35.5t35.5 14.5zM850 1200h200q21 0 35.5 -14.5t14.5 -35.5v-250h-300v250q0 21 14.5 35.5t35.5 14.5zM1100 800v-300q0 -41 -3 -77.5t-15 -89.5t-32 -96t-58 -89t-89 -77t-129 -51t-174 -20t-174 20 t-129 51t-89 77t-58 89t-32 96t-15 89.5t-3 77.5v300h300v-250v-27v-42.5t1.5 -41t5 -38t10 -35t16.5 -30t25.5 -24.5t35 -19t46.5 -12t60 -4t60 4.5t46.5 12.5t35 19.5t25 25.5t17 30.5t10 35t5 38t2 40.5t-0.5 42v25v250h300z" />
<glyph unicode="&#xe113;" d="M1100 411l-198 -199l-353 353l-353 -353l-197 199l551 551z" />
<glyph unicode="&#xe114;" d="M1101 789l-550 -551l-551 551l198 199l353 -353l353 353z" />
<glyph unicode="&#xe115;" d="M404 1000h746q21 0 35.5 -14.5t14.5 -35.5v-551h150q21 0 25 -10.5t-10 -24.5l-230 -249q-14 -15 -35 -15t-35 15l-230 249q-14 14 -10 24.5t25 10.5h150v401h-381zM135 984l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-400h385l215 -200h-750q-21 0 -35.5 14.5 t-14.5 35.5v550h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
<glyph unicode="&#xe116;" d="M56 1200h94q17 0 31 -11t18 -27l38 -162h896q24 0 39 -18.5t10 -42.5l-100 -475q-5 -21 -27 -42.5t-55 -21.5h-633l48 -200h535q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-50q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-300v-50 q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-31q-18 0 -32.5 10t-20.5 19l-5 10l-201 961h-54q-20 0 -35 14.5t-15 35.5t15 35.5t35 14.5z" />
<glyph unicode="&#xe117;" d="M1200 1000v-100h-1200v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500zM0 800h1200v-800h-1200v800z" />
<glyph unicode="&#xe118;" d="M200 800l-200 -400v600h200q0 41 29.5 70.5t70.5 29.5h300q42 0 71 -29.5t29 -70.5h500v-200h-1000zM1500 700l-300 -700h-1200l300 700h1200z" />
<glyph unicode="&#xe119;" d="M635 1184l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-601h150q21 0 25 -10.5t-10 -24.5l-230 -249q-14 -15 -35 -15t-35 15l-230 249q-14 14 -10 24.5t25 10.5h150v601h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
<glyph unicode="&#xe120;" d="M936 864l249 -229q14 -15 14 -35.5t-14 -35.5l-249 -229q-15 -15 -25.5 -10.5t-10.5 24.5v151h-600v-151q0 -20 -10.5 -24.5t-25.5 10.5l-249 229q-14 15 -14 35.5t14 35.5l249 229q15 15 25.5 10.5t10.5 -25.5v-149h600v149q0 21 10.5 25.5t25.5 -10.5z" />
<glyph unicode="&#xe121;" d="M1169 400l-172 732q-5 23 -23 45.5t-38 22.5h-672q-20 0 -38 -20t-23 -41l-172 -739h1138zM1100 300h-1000q-41 0 -70.5 -29.5t-29.5 -70.5v-100q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v100q0 41 -29.5 70.5t-70.5 29.5zM800 100v100h100v-100h-100 zM1000 100v100h100v-100h-100z" />
<glyph unicode="&#xe122;" d="M1150 1100q21 0 35.5 -14.5t14.5 -35.5v-850q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v850q0 21 14.5 35.5t35.5 14.5zM1000 200l-675 200h-38l47 -276q3 -16 -5.5 -20t-29.5 -4h-7h-84q-20 0 -34.5 14t-18.5 35q-55 337 -55 351v250v6q0 16 1 23.5t6.5 14 t17.5 6.5h200l675 250v-850zM0 750v-250q-4 0 -11 0.5t-24 6t-30 15t-24 30t-11 48.5v50q0 26 10.5 46t25 30t29 16t25.5 7z" />
<glyph unicode="&#xe123;" d="M553 1200h94q20 0 29 -10.5t3 -29.5l-18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q19 0 33 -14.5t14 -35t-13 -40.5t-31 -27q-8 -4 -23 -9.5t-65 -19.5t-103 -25t-132.5 -20t-158.5 -9q-57 0 -115 5t-104 12t-88.5 15.5t-73.5 17.5t-54.5 16t-35.5 12l-11 4 q-18 8 -31 28t-13 40.5t14 35t33 14.5h17l118 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3.5 32t28.5 13zM498 110q50 -6 102 -6q53 0 102 6q-12 -49 -39.5 -79.5t-62.5 -30.5t-63 30.5t-39 79.5z" />
<glyph unicode="&#xe124;" d="M800 946l224 78l-78 -224l234 -45l-180 -155l180 -155l-234 -45l78 -224l-224 78l-45 -234l-155 180l-155 -180l-45 234l-224 -78l78 224l-234 45l180 155l-180 155l234 45l-78 224l224 -78l45 234l155 -180l155 180z" />
<glyph unicode="&#xe125;" d="M650 1200h50q40 0 70 -40.5t30 -84.5v-150l-28 -125h328q40 0 70 -40.5t30 -84.5v-100q0 -45 -29 -74l-238 -344q-16 -24 -38 -40.5t-45 -16.5h-250q-7 0 -42 25t-66 50l-31 25h-61q-45 0 -72.5 18t-27.5 57v400q0 36 20 63l145 196l96 198q13 28 37.5 48t51.5 20z M650 1100l-100 -212l-150 -213v-375h100l136 -100h214l250 375v125h-450l50 225v175h-50zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5z" />
<glyph unicode="&#xe126;" d="M600 1100h250q23 0 45 -16.5t38 -40.5l238 -344q29 -29 29 -74v-100q0 -44 -30 -84.5t-70 -40.5h-328q28 -118 28 -125v-150q0 -44 -30 -84.5t-70 -40.5h-50q-27 0 -51.5 20t-37.5 48l-96 198l-145 196q-20 27 -20 63v400q0 39 27.5 57t72.5 18h61q124 100 139 100z M50 1000h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5zM636 1000l-136 -100h-100v-375l150 -213l100 -212h50v175l-50 225h450v125l-250 375h-214z" />
<glyph unicode="&#xe127;" d="M356 873l363 230q31 16 53 -6l110 -112q13 -13 13.5 -32t-11.5 -34l-84 -121h302q84 0 138 -38t54 -110t-55 -111t-139 -39h-106l-131 -339q-6 -21 -19.5 -41t-28.5 -20h-342q-7 0 -90 81t-83 94v525q0 17 14 35.5t28 28.5zM400 792v-503l100 -89h293l131 339 q6 21 19.5 41t28.5 20h203q21 0 30.5 25t0.5 50t-31 25h-456h-7h-6h-5.5t-6 0.5t-5 1.5t-5 2t-4 2.5t-4 4t-2.5 4.5q-12 25 5 47l146 183l-86 83zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500 q0 21 14.5 35.5t35.5 14.5z" />
<glyph unicode="&#xe128;" d="M475 1103l366 -230q2 -1 6 -3.5t14 -10.5t18 -16.5t14.5 -20t6.5 -22.5v-525q0 -13 -86 -94t-93 -81h-342q-15 0 -28.5 20t-19.5 41l-131 339h-106q-85 0 -139.5 39t-54.5 111t54 110t138 38h302l-85 121q-11 15 -10.5 34t13.5 32l110 112q22 22 53 6zM370 945l146 -183 q17 -22 5 -47q-2 -2 -3.5 -4.5t-4 -4t-4 -2.5t-5 -2t-5 -1.5t-6 -0.5h-6h-6.5h-6h-475v-100h221q15 0 29 -20t20 -41l130 -339h294l106 89v503l-342 236zM1050 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5 v500q0 21 14.5 35.5t35.5 14.5z" />
<glyph unicode="&#xe129;" d="M550 1294q72 0 111 -55t39 -139v-106l339 -131q21 -6 41 -19.5t20 -28.5v-342q0 -7 -81 -90t-94 -83h-525q-17 0 -35.5 14t-28.5 28l-9 14l-230 363q-16 31 6 53l112 110q13 13 32 13.5t34 -11.5l121 -84v302q0 84 38 138t110 54zM600 972v203q0 21 -25 30.5t-50 0.5 t-25 -31v-456v-7v-6v-5.5t-0.5 -6t-1.5 -5t-2 -5t-2.5 -4t-4 -4t-4.5 -2.5q-25 -12 -47 5l-183 146l-83 -86l236 -339h503l89 100v293l-339 131q-21 6 -41 19.5t-20 28.5zM450 200h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
<glyph unicode="&#xe130;" d="M350 1100h500q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5t35.5 -14.5zM600 306v-106q0 -84 -39 -139t-111 -55t-110 54t-38 138v302l-121 -84q-15 -12 -34 -11.5t-32 13.5l-112 110 q-22 22 -6 53l230 363q1 2 3.5 6t10.5 13.5t16.5 17t20 13.5t22.5 6h525q13 0 94 -83t81 -90v-342q0 -15 -20 -28.5t-41 -19.5zM308 900l-236 -339l83 -86l183 146q22 17 47 5q2 -1 4.5 -2.5t4 -4t2.5 -4t2 -5t1.5 -5t0.5 -6v-5.5v-6v-7v-456q0 -22 25 -31t50 0.5t25 30.5 v203q0 15 20 28.5t41 19.5l339 131v293l-89 100h-503z" />
<glyph unicode="&#xe131;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM914 632l-275 223q-16 13 -27.5 8t-11.5 -26v-137h-275 q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h275v-137q0 -21 11.5 -26t27.5 8l275 223q16 13 16 32t-16 32z" />
<glyph unicode="&#xe132;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM561 855l-275 -223q-16 -13 -16 -32t16 -32l275 -223q16 -13 27.5 -8 t11.5 26v137h275q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5h-275v137q0 21 -11.5 26t-27.5 -8z" />
<glyph unicode="&#xe133;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM855 639l-223 275q-13 16 -32 16t-32 -16l-223 -275q-13 -16 -8 -27.5 t26 -11.5h137v-275q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v275h137q21 0 26 11.5t-8 27.5z" />
<glyph unicode="&#xe134;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM675 900h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-275h-137q-21 0 -26 -11.5 t8 -27.5l223 -275q13 -16 32 -16t32 16l223 275q13 16 8 27.5t-26 11.5h-137v275q0 10 -7.5 17.5t-17.5 7.5z" />
<glyph unicode="&#xe135;" d="M600 1176q116 0 222.5 -46t184 -123.5t123.5 -184t46 -222.5t-46 -222.5t-123.5 -184t-184 -123.5t-222.5 -46t-222.5 46t-184 123.5t-123.5 184t-46 222.5t46 222.5t123.5 184t184 123.5t222.5 46zM627 1101q-15 -12 -36.5 -20.5t-35.5 -12t-43 -8t-39 -6.5 q-15 -3 -45.5 0t-45.5 -2q-20 -7 -51.5 -26.5t-34.5 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -91t-29.5 -79q-9 -34 5 -93t8 -87q0 -9 17 -44.5t16 -59.5q12 0 23 -5t23.5 -15t19.5 -14q16 -8 33 -15t40.5 -15t34.5 -12q21 -9 52.5 -32t60 -38t57.5 -11 q7 -15 -3 -34t-22.5 -40t-9.5 -38q13 -21 23 -34.5t27.5 -27.5t36.5 -18q0 -7 -3.5 -16t-3.5 -14t5 -17q104 -2 221 112q30 29 46.5 47t34.5 49t21 63q-13 8 -37 8.5t-36 7.5q-15 7 -49.5 15t-51.5 19q-18 0 -41 -0.5t-43 -1.5t-42 -6.5t-38 -16.5q-51 -35 -66 -12 q-4 1 -3.5 25.5t0.5 25.5q-6 13 -26.5 17.5t-24.5 6.5q1 15 -0.5 30.5t-7 28t-18.5 11.5t-31 -21q-23 -25 -42 4q-19 28 -8 58q6 16 22 22q6 -1 26 -1.5t33.5 -4t19.5 -13.5q7 -12 18 -24t21.5 -20.5t20 -15t15.5 -10.5l5 -3q2 12 7.5 30.5t8 34.5t-0.5 32q-3 18 3.5 29 t18 22.5t15.5 24.5q6 14 10.5 35t8 31t15.5 22.5t34 22.5q-6 18 10 36q8 0 24 -1.5t24.5 -1.5t20 4.5t20.5 15.5q-10 23 -31 42.5t-37.5 29.5t-49 27t-43.5 23q0 1 2 8t3 11.5t1.5 10.5t-1 9.5t-4.5 4.5q31 -13 58.5 -14.5t38.5 2.5l12 5q5 28 -9.5 46t-36.5 24t-50 15 t-41 20q-18 -4 -37 0zM613 994q0 -17 8 -42t17 -45t9 -23q-8 1 -39.5 5.5t-52.5 10t-37 16.5q3 11 16 29.5t16 25.5q10 -10 19 -10t14 6t13.5 14.5t16.5 12.5z" />
<glyph unicode="&#xe136;" d="M756 1157q164 92 306 -9l-259 -138l145 -232l251 126q6 -89 -34 -156.5t-117 -110.5q-60 -34 -127 -39.5t-126 16.5l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5t15 37.5l600 599q-34 101 5.5 201.5t135.5 154.5z" />
<glyph unicode="&#xe137;" horiz-adv-x="1220" d="M100 1196h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 1096h-200v-100h200v100zM100 796h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 696h-500v-100h500v100zM100 396h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 296h-300v-100h300v100z " />
<glyph unicode="&#xe138;" d="M150 1200h900q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM700 500v-300l-200 -200v500l-350 500h900z" />
<glyph unicode="&#xe139;" d="M500 1200h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5zM500 1100v-100h200v100h-200zM1200 400v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v200h1200z" />
<glyph unicode="&#xe140;" d="M50 1200h300q21 0 25 -10.5t-10 -24.5l-94 -94l199 -199q7 -8 7 -18t-7 -18l-106 -106q-8 -7 -18 -7t-18 7l-199 199l-94 -94q-14 -14 -24.5 -10t-10.5 25v300q0 21 14.5 35.5t35.5 14.5zM850 1200h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94 l-199 -199q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l199 199l-94 94q-14 14 -10 24.5t25 10.5zM364 470l106 -106q7 -8 7 -18t-7 -18l-199 -199l94 -94q14 -14 10 -24.5t-25 -10.5h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l199 199 q8 7 18 7t18 -7zM1071 271l94 94q14 14 24.5 10t10.5 -25v-300q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -25 10.5t10 24.5l94 94l-199 199q-7 8 -7 18t7 18l106 106q8 7 18 7t18 -7z" />
<glyph unicode="&#xe141;" d="M596 1192q121 0 231.5 -47.5t190 -127t127 -190t47.5 -231.5t-47.5 -231.5t-127 -190.5t-190 -127t-231.5 -47t-231.5 47t-190.5 127t-127 190.5t-47 231.5t47 231.5t127 190t190.5 127t231.5 47.5zM596 1010q-112 0 -207.5 -55.5t-151 -151t-55.5 -207.5t55.5 -207.5 t151 -151t207.5 -55.5t207.5 55.5t151 151t55.5 207.5t-55.5 207.5t-151 151t-207.5 55.5zM454.5 905q22.5 0 38.5 -16t16 -38.5t-16 -39t-38.5 -16.5t-38.5 16.5t-16 39t16 38.5t38.5 16zM754.5 905q22.5 0 38.5 -16t16 -38.5t-16 -39t-38 -16.5q-14 0 -29 10l-55 -145 q17 -23 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5t-61.5 25.5t-25.5 61.5q0 32 20.5 56.5t51.5 29.5l122 126l1 1q-9 14 -9 28q0 23 16 39t38.5 16zM345.5 709q22.5 0 38.5 -16t16 -38.5t-16 -38.5t-38.5 -16t-38.5 16t-16 38.5t16 38.5t38.5 16zM854.5 709q22.5 0 38.5 -16 t16 -38.5t-16 -38.5t-38.5 -16t-38.5 16t-16 38.5t16 38.5t38.5 16z" />
<glyph unicode="&#xe142;" d="M546 173l469 470q91 91 99 192q7 98 -52 175.5t-154 94.5q-22 4 -47 4q-34 0 -66.5 -10t-56.5 -23t-55.5 -38t-48 -41.5t-48.5 -47.5q-376 -375 -391 -390q-30 -27 -45 -41.5t-37.5 -41t-32 -46.5t-16 -47.5t-1.5 -56.5q9 -62 53.5 -95t99.5 -33q74 0 125 51l548 548 q36 36 20 75q-7 16 -21.5 26t-32.5 10q-26 0 -50 -23q-13 -12 -39 -38l-341 -338q-15 -15 -35.5 -15.5t-34.5 13.5t-14 34.5t14 34.5q327 333 361 367q35 35 67.5 51.5t78.5 16.5q14 0 29 -1q44 -8 74.5 -35.5t43.5 -68.5q14 -47 2 -96.5t-47 -84.5q-12 -11 -32 -32 t-79.5 -81t-114.5 -115t-124.5 -123.5t-123 -119.5t-96.5 -89t-57 -45q-56 -27 -120 -27q-70 0 -129 32t-93 89q-48 78 -35 173t81 163l511 511q71 72 111 96q91 55 198 55q80 0 152 -33q78 -36 129.5 -103t66.5 -154q17 -93 -11 -183.5t-94 -156.5l-482 -476 q-15 -15 -36 -16t-37 14t-17.5 34t14.5 35z" />
<glyph unicode="&#xe143;" d="M649 949q48 68 109.5 104t121.5 38.5t118.5 -20t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-150 152.5t-126.5 127.5t-93.5 124.5t-33.5 117.5q0 64 28 123t73 100.5t104 64t119 20 t120.5 -38.5t104.5 -104zM896 972q-33 0 -64.5 -19t-56.5 -46t-47.5 -53.5t-43.5 -45.5t-37.5 -19t-36 19t-40 45.5t-43 53.5t-54 46t-65.5 19q-67 0 -122.5 -55.5t-55.5 -132.5q0 -23 13.5 -51t46 -65t57.5 -63t76 -75l22 -22q15 -14 44 -44t50.5 -51t46 -44t41 -35t23 -12 t23.5 12t42.5 36t46 44t52.5 52t44 43q4 4 12 13q43 41 63.5 62t52 55t46 55t26 46t11.5 44q0 79 -53 133.5t-120 54.5z" />
<glyph unicode="&#xe144;" d="M776.5 1214q93.5 0 159.5 -66l141 -141q66 -66 66 -160q0 -42 -28 -95.5t-62 -87.5l-29 -29q-31 53 -77 99l-18 18l95 95l-247 248l-389 -389l212 -212l-105 -106l-19 18l-141 141q-66 66 -66 159t66 159l283 283q65 66 158.5 66zM600 706l105 105q10 -8 19 -17l141 -141 q66 -66 66 -159t-66 -159l-283 -283q-66 -66 -159 -66t-159 66l-141 141q-66 66 -66 159.5t66 159.5l55 55q29 -55 75 -102l18 -17l-95 -95l247 -248l389 389z" />
<glyph unicode="&#xe145;" d="M603 1200q85 0 162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5v953q0 21 30 46.5t81 48t129 37.5t163 15zM300 1000v-700h600v700h-600zM600 254q-43 0 -73.5 -30.5t-30.5 -73.5t30.5 -73.5t73.5 -30.5t73.5 30.5 t30.5 73.5t-30.5 73.5t-73.5 30.5z" />
<glyph unicode="&#xe146;" d="M902 1185l283 -282q15 -15 15 -36t-14.5 -35.5t-35.5 -14.5t-35 15l-36 35l-279 -267v-300l-212 210l-308 -307l-280 -203l203 280l307 308l-210 212h300l267 279l-35 36q-15 14 -15 35t14.5 35.5t35.5 14.5t35 -15z" />
<glyph unicode="&#xe148;" d="M700 1248v-78q38 -5 72.5 -14.5t75.5 -31.5t71 -53.5t52 -84t24 -118.5h-159q-4 36 -10.5 59t-21 45t-40 35.5t-64.5 20.5v-307l64 -13q34 -7 64 -16.5t70 -32t67.5 -52.5t47.5 -80t20 -112q0 -139 -89 -224t-244 -97v-77h-100v79q-150 16 -237 103q-40 40 -52.5 93.5 t-15.5 139.5h139q5 -77 48.5 -126t117.5 -65v335l-27 8q-46 14 -79 26.5t-72 36t-63 52t-40 72.5t-16 98q0 70 25 126t67.5 92t94.5 57t110 27v77h100zM600 754v274q-29 -4 -50 -11t-42 -21.5t-31.5 -41.5t-10.5 -65q0 -29 7 -50.5t16.5 -34t28.5 -22.5t31.5 -14t37.5 -10 q9 -3 13 -4zM700 547v-310q22 2 42.5 6.5t45 15.5t41.5 27t29 42t12 59.5t-12.5 59.5t-38 44.5t-53 31t-66.5 24.5z" />
<glyph unicode="&#xe149;" d="M561 1197q84 0 160.5 -40t123.5 -109.5t47 -147.5h-153q0 40 -19.5 71.5t-49.5 48.5t-59.5 26t-55.5 9q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -26 13.5 -63t26.5 -61t37 -66q6 -9 9 -14h241v-100h-197q8 -50 -2.5 -115t-31.5 -95q-45 -62 -99 -112 q34 10 83 17.5t71 7.5q32 1 102 -16t104 -17q83 0 136 30l50 -147q-31 -19 -58 -30.5t-55 -15.5t-42 -4.5t-46 -0.5q-23 0 -76 17t-111 32.5t-96 11.5q-39 -3 -82 -16t-67 -25l-23 -11l-55 145q4 3 16 11t15.5 10.5t13 9t15.5 12t14.5 14t17.5 18.5q48 55 54 126.5 t-30 142.5h-221v100h166q-23 47 -44 104q-7 20 -12 41.5t-6 55.5t6 66.5t29.5 70.5t58.5 71q97 88 263 88z" />
<glyph unicode="&#xe150;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM935 1184l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-900h-200v900h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
<glyph unicode="&#xe151;" d="M1000 700h-100v100h-100v-100h-100v500h300v-500zM400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM801 1100v-200h100v200h-100zM1000 350l-200 -250h200v-100h-300v150l200 250h-200v100h300v-150z " />
<glyph unicode="&#xe152;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1000 1050l-200 -250h200v-100h-300v150l200 250h-200v100h300v-150zM1000 0h-100v100h-100v-100h-100v500h300v-500zM801 400v-200h100v200h-100z " />
<glyph unicode="&#xe153;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1000 700h-100v400h-100v100h200v-500zM1100 0h-100v100h-200v400h300v-500zM901 400v-200h100v200h-100z" />
<glyph unicode="&#xe154;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1100 700h-100v100h-200v400h300v-500zM901 1100v-200h100v200h-100zM1000 0h-100v400h-100v100h200v-500z" />
<glyph unicode="&#xe155;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM900 1000h-200v200h200v-200zM1000 700h-300v200h300v-200zM1100 400h-400v200h400v-200zM1200 100h-500v200h500v-200z" />
<glyph unicode="&#xe156;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1200 1000h-500v200h500v-200zM1100 700h-400v200h400v-200zM1000 400h-300v200h300v-200zM900 100h-200v200h200v-200z" />
<glyph unicode="&#xe157;" d="M350 1100h400q162 0 256 -93.5t94 -256.5v-400q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5z" />
<glyph unicode="&#xe158;" d="M350 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-163 0 -256.5 92.5t-93.5 257.5v400q0 163 94 256.5t256 93.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM440 770l253 -190q17 -12 17 -30t-17 -30l-253 -190q-16 -12 -28 -6.5t-12 26.5v400q0 21 12 26.5t28 -6.5z" />
<glyph unicode="&#xe159;" d="M350 1100h400q163 0 256.5 -94t93.5 -256v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 163 92.5 256.5t257.5 93.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM350 700h400q21 0 26.5 -12t-6.5 -28l-190 -253q-12 -17 -30 -17t-30 17l-190 253q-12 16 -6.5 28t26.5 12z" />
<glyph unicode="&#xe160;" d="M350 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -163 -92.5 -256.5t-257.5 -93.5h-400q-163 0 -256.5 94t-93.5 256v400q0 165 92.5 257.5t257.5 92.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM580 693l190 -253q12 -16 6.5 -28t-26.5 -12h-400q-21 0 -26.5 12t6.5 28l190 253q12 17 30 17t30 -17z" />
<glyph unicode="&#xe161;" d="M550 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h450q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-450q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM338 867l324 -284q16 -14 16 -33t-16 -33l-324 -284q-16 -14 -27 -9t-11 26v150h-250q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h250v150q0 21 11 26t27 -9z" />
<glyph unicode="&#xe162;" d="M793 1182l9 -9q8 -10 5 -27q-3 -11 -79 -225.5t-78 -221.5l300 1q24 0 32.5 -17.5t-5.5 -35.5q-1 0 -133.5 -155t-267 -312.5t-138.5 -162.5q-12 -15 -26 -15h-9l-9 8q-9 11 -4 32q2 9 42 123.5t79 224.5l39 110h-302q-23 0 -31 19q-10 21 6 41q75 86 209.5 237.5 t228 257t98.5 111.5q9 16 25 16h9z" />
<glyph unicode="&#xe163;" d="M350 1100h400q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-450q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h450q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400 q0 165 92.5 257.5t257.5 92.5zM938 867l324 -284q16 -14 16 -33t-16 -33l-324 -284q-16 -14 -27 -9t-11 26v150h-250q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h250v150q0 21 11 26t27 -9z" />
<glyph unicode="&#xe164;" d="M750 1200h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -10.5 -25t-24.5 10l-109 109l-312 -312q-15 -15 -35.5 -15t-35.5 15l-141 141q-15 15 -15 35.5t15 35.5l312 312l-109 109q-14 14 -10 24.5t25 10.5zM456 900h-156q-41 0 -70.5 -29.5t-29.5 -70.5v-500 q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v148l200 200v-298q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5h300z" />
<glyph unicode="&#xe165;" d="M600 1186q119 0 227.5 -46.5t187 -125t125 -187t46.5 -227.5t-46.5 -227.5t-125 -187t-187 -125t-227.5 -46.5t-227.5 46.5t-187 125t-125 187t-46.5 227.5t46.5 227.5t125 187t187 125t227.5 46.5zM600 1022q-115 0 -212 -56.5t-153.5 -153.5t-56.5 -212t56.5 -212 t153.5 -153.5t212 -56.5t212 56.5t153.5 153.5t56.5 212t-56.5 212t-153.5 153.5t-212 56.5zM600 794q80 0 137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137t57 137t137 57z" />
<glyph unicode="&#xe166;" d="M450 1200h200q21 0 35.5 -14.5t14.5 -35.5v-350h245q20 0 25 -11t-9 -26l-383 -426q-14 -15 -33.5 -15t-32.5 15l-379 426q-13 15 -8.5 26t25.5 11h250v350q0 21 14.5 35.5t35.5 14.5zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5z M900 200v-50h100v50h-100z" />
<glyph unicode="&#xe167;" d="M583 1182l378 -435q14 -15 9 -31t-26 -16h-244v-250q0 -20 -17 -35t-39 -15h-200q-20 0 -32 14.5t-12 35.5v250h-250q-20 0 -25.5 16.5t8.5 31.5l383 431q14 16 33.5 17t33.5 -14zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5z M900 200v-50h100v50h-100z" />
<glyph unicode="&#xe168;" d="M396 723l369 369q7 7 17.5 7t17.5 -7l139 -139q7 -8 7 -18.5t-7 -17.5l-525 -525q-7 -8 -17.5 -8t-17.5 8l-292 291q-7 8 -7 18t7 18l139 139q8 7 18.5 7t17.5 -7zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50 h-100z" />
<glyph unicode="&#xe169;" d="M135 1023l142 142q14 14 35 14t35 -14l77 -77l-212 -212l-77 76q-14 15 -14 36t14 35zM655 855l210 210q14 14 24.5 10t10.5 -25l-2 -599q-1 -20 -15.5 -35t-35.5 -15l-597 -1q-21 0 -25 10.5t10 24.5l208 208l-154 155l212 212zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5 v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50h-100z" />
<glyph unicode="&#xe170;" d="M350 1200l599 -2q20 -1 35 -15.5t15 -35.5l1 -597q0 -21 -10.5 -25t-24.5 10l-208 208l-155 -154l-212 212l155 154l-210 210q-14 14 -10 24.5t25 10.5zM524 512l-76 -77q-15 -14 -36 -14t-35 14l-142 142q-14 14 -14 35t14 35l77 77zM50 300h1000q21 0 35.5 -14.5 t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50h-100z" />
<glyph unicode="&#xe171;" d="M1200 103l-483 276l-314 -399v423h-399l1196 796v-1096zM483 424v-230l683 953z" />
<glyph unicode="&#xe172;" d="M1100 1000v-850q0 -21 -14.5 -35.5t-35.5 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200z" />
<glyph unicode="&#xe173;" d="M1100 1000l-2 -149l-299 -299l-95 95q-9 9 -21.5 9t-21.5 -9l-149 -147h-312v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM1132 638l106 -106q7 -7 7 -17.5t-7 -17.5l-420 -421q-8 -7 -18 -7 t-18 7l-202 203q-8 7 -8 17.5t8 17.5l106 106q7 8 17.5 8t17.5 -8l79 -79l297 297q7 7 17.5 7t17.5 -7z" />
<glyph unicode="&#xe174;" d="M1100 1000v-269l-103 -103l-134 134q-15 15 -33.5 16.5t-34.5 -12.5l-266 -266h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM1202 572l70 -70q15 -15 15 -35.5t-15 -35.5l-131 -131 l131 -131q15 -15 15 -35.5t-15 -35.5l-70 -70q-15 -15 -35.5 -15t-35.5 15l-131 131l-131 -131q-15 -15 -35.5 -15t-35.5 15l-70 70q-15 15 -15 35.5t15 35.5l131 131l-131 131q-15 15 -15 35.5t15 35.5l70 70q15 15 35.5 15t35.5 -15l131 -131l131 131q15 15 35.5 15 t35.5 -15z" />
<glyph unicode="&#xe175;" d="M1100 1000v-300h-350q-21 0 -35.5 -14.5t-14.5 -35.5v-150h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM850 600h100q21 0 35.5 -14.5t14.5 -35.5v-250h150q21 0 25 -10.5t-10 -24.5 l-230 -230q-14 -14 -35 -14t-35 14l-230 230q-14 14 -10 24.5t25 10.5h150v250q0 21 14.5 35.5t35.5 14.5z" />
<glyph unicode="&#xe176;" d="M1100 1000v-400l-165 165q-14 15 -35 15t-35 -15l-263 -265h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM935 565l230 -229q14 -15 10 -25.5t-25 -10.5h-150v-250q0 -20 -14.5 -35 t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35v250h-150q-21 0 -25 10.5t10 25.5l230 229q14 15 35 15t35 -15z" />
<glyph unicode="&#xe177;" d="M50 1100h1100q21 0 35.5 -14.5t14.5 -35.5v-150h-1200v150q0 21 14.5 35.5t35.5 14.5zM1200 800v-550q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v550h1200zM100 500v-200h400v200h-400z" />
<glyph unicode="&#xe178;" d="M935 1165l248 -230q14 -14 14 -35t-14 -35l-248 -230q-14 -14 -24.5 -10t-10.5 25v150h-400v200h400v150q0 21 10.5 25t24.5 -10zM200 800h-50q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v-200zM400 800h-100v200h100v-200zM18 435l247 230 q14 14 24.5 10t10.5 -25v-150h400v-200h-400v-150q0 -21 -10.5 -25t-24.5 10l-247 230q-15 14 -15 35t15 35zM900 300h-100v200h100v-200zM1000 500h51q20 0 34.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-34.5 -14.5h-51v200z" />
<glyph unicode="&#xe179;" d="M862 1073l276 116q25 18 43.5 8t18.5 -41v-1106q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v397q-4 1 -11 5t-24 17.5t-30 29t-24 42t-11 56.5v359q0 31 18.5 65t43.5 52zM550 1200q22 0 34.5 -12.5t14.5 -24.5l1 -13v-450q0 -28 -10.5 -59.5 t-25 -56t-29 -45t-25.5 -31.5l-10 -11v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447q-4 4 -11 11.5t-24 30.5t-30 46t-24 55t-11 60v450q0 2 0.5 5.5t4 12t8.5 15t14.5 12t22.5 5.5q20 0 32.5 -12.5t14.5 -24.5l3 -13v-350h100v350v5.5t2.5 12 t7 15t15 12t25.5 5.5q23 0 35.5 -12.5t13.5 -24.5l1 -13v-350h100v350q0 2 0.5 5.5t3 12t7 15t15 12t24.5 5.5z" />
<glyph unicode="&#xe180;" d="M1200 1100v-56q-4 0 -11 -0.5t-24 -3t-30 -7.5t-24 -15t-11 -24v-888q0 -22 25 -34.5t50 -13.5l25 -2v-56h-400v56q75 0 87.5 6.5t12.5 43.5v394h-500v-394q0 -37 12.5 -43.5t87.5 -6.5v-56h-400v56q4 0 11 0.5t24 3t30 7.5t24 15t11 24v888q0 22 -25 34.5t-50 13.5 l-25 2v56h400v-56q-75 0 -87.5 -6.5t-12.5 -43.5v-394h500v394q0 37 -12.5 43.5t-87.5 6.5v56h400z" />
<glyph unicode="&#xe181;" d="M675 1000h375q21 0 35.5 -14.5t14.5 -35.5v-150h-105l-295 -98v98l-200 200h-400l100 100h375zM100 900h300q41 0 70.5 -29.5t29.5 -70.5v-500q0 -41 -29.5 -70.5t-70.5 -29.5h-300q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5zM100 800v-200h300v200 h-300zM1100 535l-400 -133v163l400 133v-163zM100 500v-200h300v200h-300zM1100 398v-248q0 -21 -14.5 -35.5t-35.5 -14.5h-375l-100 -100h-375l-100 100h400l200 200h105z" />
<glyph unicode="&#xe182;" d="M17 1007l162 162q17 17 40 14t37 -22l139 -194q14 -20 11 -44.5t-20 -41.5l-119 -118q102 -142 228 -268t267 -227l119 118q17 17 42.5 19t44.5 -12l192 -136q19 -14 22.5 -37.5t-13.5 -40.5l-163 -162q-3 -1 -9.5 -1t-29.5 2t-47.5 6t-62.5 14.5t-77.5 26.5t-90 42.5 t-101.5 60t-111 83t-119 108.5q-74 74 -133.5 150.5t-94.5 138.5t-60 119.5t-34.5 100t-15 74.5t-4.5 48z" />
<glyph unicode="&#xe183;" d="M600 1100q92 0 175 -10.5t141.5 -27t108.5 -36.5t81.5 -40t53.5 -37t31 -27l9 -10v-200q0 -21 -14.5 -33t-34.5 -9l-202 34q-20 3 -34.5 20t-14.5 38v146q-141 24 -300 24t-300 -24v-146q0 -21 -14.5 -38t-34.5 -20l-202 -34q-20 -3 -34.5 9t-14.5 33v200q3 4 9.5 10.5 t31 26t54 37.5t80.5 39.5t109 37.5t141 26.5t175 10.5zM600 795q56 0 97 -9.5t60 -23.5t30 -28t12 -24l1 -10v-50l365 -303q14 -15 24.5 -40t10.5 -45v-212q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v212q0 20 10.5 45t24.5 40l365 303v50 q0 4 1 10.5t12 23t30 29t60 22.5t97 10z" />
<glyph unicode="&#xe184;" d="M1100 700l-200 -200h-600l-200 200v500h200v-200h200v200h200v-200h200v200h200v-500zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-12l137 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5 t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
<glyph unicode="&#xe185;" d="M700 1100h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-1000h300v1000q0 41 -29.5 70.5t-70.5 29.5zM1100 800h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-700h300v700q0 41 -29.5 70.5t-70.5 29.5zM400 0h-300v400q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-400z " />
<glyph unicode="&#xe186;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-100h200v-300h-300v100h200v100h-200v300h300v-100zM900 700v-300l-100 -100h-200v500h200z M700 700v-300h100v300h-100z" />
<glyph unicode="&#xe187;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 300h-100v200h-100v-200h-100v500h100v-200h100v200h100v-500zM900 700v-300l-100 -100h-200v500h200z M700 700v-300h100v300h-100z" />
<glyph unicode="&#xe188;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-300h200v-100h-300v500h300v-100zM900 700h-200v-300h200v-100h-300v500h300v-100z" />
<glyph unicode="&#xe189;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 400l-300 150l300 150v-300zM900 550l-300 -150v300z" />
<glyph unicode="&#xe190;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM900 300h-700v500h700v-500zM800 700h-130q-38 0 -66.5 -43t-28.5 -108t27 -107t68 -42h130v300zM300 700v-300 h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130z" />
<glyph unicode="&#xe191;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-100h200v-300h-300v100h200v100h-200v300h300v-100zM900 300h-100v400h-100v100h200v-500z M700 300h-100v100h100v-100z" />
<glyph unicode="&#xe192;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM300 700h200v-400h-300v500h100v-100zM900 300h-100v400h-100v100h200v-500zM300 600v-200h100v200h-100z M700 300h-100v100h100v-100z" />
<glyph unicode="&#xe193;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 500l-199 -200h-100v50l199 200v150h-200v100h300v-300zM900 300h-100v400h-100v100h200v-500zM701 300h-100 v100h100v-100z" />
<glyph unicode="&#xe194;" d="M600 1191q120 0 229.5 -47t188.5 -126t126 -188.5t47 -229.5t-47 -229.5t-126 -188.5t-188.5 -126t-229.5 -47t-229.5 47t-188.5 126t-126 188.5t-47 229.5t47 229.5t126 188.5t188.5 126t229.5 47zM600 1021q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -211t56.5 -211 t153.5 -153.5t211 -56.5t211 56.5t153.5 153.5t56.5 211t-56.5 211t-153.5 153.5t-211 56.5zM800 700h-300v-200h300v-100h-300l-100 100v200l100 100h300v-100z" />
<glyph unicode="&#xe195;" d="M600 1191q120 0 229.5 -47t188.5 -126t126 -188.5t47 -229.5t-47 -229.5t-126 -188.5t-188.5 -126t-229.5 -47t-229.5 47t-188.5 126t-126 188.5t-47 229.5t47 229.5t126 188.5t188.5 126t229.5 47zM600 1021q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -211t56.5 -211 t153.5 -153.5t211 -56.5t211 56.5t153.5 153.5t56.5 211t-56.5 211t-153.5 153.5t-211 56.5zM800 700v-100l-50 -50l100 -100v-50h-100l-100 100h-150v-100h-100v400h300zM500 700v-100h200v100h-200z" />
<glyph unicode="&#xe197;" d="M503 1089q110 0 200.5 -59.5t134.5 -156.5q44 14 90 14q120 0 205 -86.5t85 -207t-85 -207t-205 -86.5h-128v250q0 21 -14.5 35.5t-35.5 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-250h-222q-80 0 -136 57.5t-56 136.5q0 69 43 122.5t108 67.5q-2 19 -2 37q0 100 49 185 t134 134t185 49zM525 500h150q10 0 17.5 -7.5t7.5 -17.5v-275h137q21 0 26 -11.5t-8 -27.5l-223 -244q-13 -16 -32 -16t-32 16l-223 244q-13 16 -8 27.5t26 11.5h137v275q0 10 7.5 17.5t17.5 7.5z" />
<glyph unicode="&#xe198;" d="M502 1089q110 0 201 -59.5t135 -156.5q43 15 89 15q121 0 206 -86.5t86 -206.5q0 -99 -60 -181t-150 -110l-378 360q-13 16 -31.5 16t-31.5 -16l-381 -365h-9q-79 0 -135.5 57.5t-56.5 136.5q0 69 43 122.5t108 67.5q-2 19 -2 38q0 100 49 184.5t133.5 134t184.5 49.5z M632 467l223 -228q13 -16 8 -27.5t-26 -11.5h-137v-275q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v275h-137q-21 0 -26 11.5t8 27.5q199 204 223 228q19 19 31.5 19t32.5 -19z" />
<glyph unicode="&#xe199;" d="M700 100v100h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170l-270 -300h400v-100h-50q-21 0 -35.5 -14.5t-14.5 -35.5v-50h400v50q0 21 -14.5 35.5t-35.5 14.5h-50z" />
<glyph unicode="&#xe200;" d="M600 1179q94 0 167.5 -56.5t99.5 -145.5q89 -6 150.5 -71.5t61.5 -155.5q0 -61 -29.5 -112.5t-79.5 -82.5q9 -29 9 -55q0 -74 -52.5 -126.5t-126.5 -52.5q-55 0 -100 30v-251q21 0 35.5 -14.5t14.5 -35.5v-50h-300v50q0 21 14.5 35.5t35.5 14.5v251q-45 -30 -100 -30 q-74 0 -126.5 52.5t-52.5 126.5q0 18 4 38q-47 21 -75.5 65t-28.5 97q0 74 52.5 126.5t126.5 52.5q5 0 23 -2q0 2 -1 10t-1 13q0 116 81.5 197.5t197.5 81.5z" />
<glyph unicode="&#xe201;" d="M1010 1010q111 -111 150.5 -260.5t0 -299t-150.5 -260.5q-83 -83 -191.5 -126.5t-218.5 -43.5t-218.5 43.5t-191.5 126.5q-111 111 -150.5 260.5t0 299t150.5 260.5q83 83 191.5 126.5t218.5 43.5t218.5 -43.5t191.5 -126.5zM476 1065q-4 0 -8 -1q-121 -34 -209.5 -122.5 t-122.5 -209.5q-4 -12 2.5 -23t18.5 -14l36 -9q3 -1 7 -1q23 0 29 22q27 96 98 166q70 71 166 98q11 3 17.5 13.5t3.5 22.5l-9 35q-3 13 -14 19q-7 4 -15 4zM512 920q-4 0 -9 -2q-80 -24 -138.5 -82.5t-82.5 -138.5q-4 -13 2 -24t19 -14l34 -9q4 -1 8 -1q22 0 28 21 q18 58 58.5 98.5t97.5 58.5q12 3 18 13.5t3 21.5l-9 35q-3 12 -14 19q-7 4 -15 4zM719.5 719.5q-49.5 49.5 -119.5 49.5t-119.5 -49.5t-49.5 -119.5t49.5 -119.5t119.5 -49.5t119.5 49.5t49.5 119.5t-49.5 119.5zM855 551q-22 0 -28 -21q-18 -58 -58.5 -98.5t-98.5 -57.5 q-11 -4 -17 -14.5t-3 -21.5l9 -35q3 -12 14 -19q7 -4 15 -4q4 0 9 2q80 24 138.5 82.5t82.5 138.5q4 13 -2.5 24t-18.5 14l-34 9q-4 1 -8 1zM1000 515q-23 0 -29 -22q-27 -96 -98 -166q-70 -71 -166 -98q-11 -3 -17.5 -13.5t-3.5 -22.5l9 -35q3 -13 14 -19q7 -4 15 -4 q4 0 8 1q121 34 209.5 122.5t122.5 209.5q4 12 -2.5 23t-18.5 14l-36 9q-3 1 -7 1z" />
<glyph unicode="&#xe202;" d="M700 800h300v-380h-180v200h-340v-200h-380v755q0 10 7.5 17.5t17.5 7.5h575v-400zM1000 900h-200v200zM700 300h162l-212 -212l-212 212h162v200h100v-200zM520 0h-395q-10 0 -17.5 7.5t-7.5 17.5v395zM1000 220v-195q0 -10 -7.5 -17.5t-17.5 -7.5h-195z" />
<glyph unicode="&#xe203;" d="M700 800h300v-520l-350 350l-550 -550v1095q0 10 7.5 17.5t17.5 7.5h575v-400zM1000 900h-200v200zM862 200h-162v-200h-100v200h-162l212 212zM480 0h-355q-10 0 -17.5 7.5t-7.5 17.5v55h380v-80zM1000 80v-55q0 -10 -7.5 -17.5t-17.5 -7.5h-155v80h180z" />
<glyph unicode="&#xe204;" d="M1162 800h-162v-200h100l100 -100h-300v300h-162l212 212zM200 800h200q27 0 40 -2t29.5 -10.5t23.5 -30t7 -57.5h300v-100h-600l-200 -350v450h100q0 36 7 57.5t23.5 30t29.5 10.5t40 2zM800 400h240l-240 -400h-800l300 500h500v-100z" />
<glyph unicode="&#xe205;" d="M650 1100h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5zM1000 850v150q41 0 70.5 -29.5t29.5 -70.5v-800 q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-1 0 -20 4l246 246l-326 326v324q0 41 29.5 70.5t70.5 29.5v-150q0 -62 44 -106t106 -44h300q62 0 106 44t44 106zM412 250l-212 -212v162h-200v100h200v162z" />
<glyph unicode="&#xe206;" d="M450 1100h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5zM800 850v150q41 0 70.5 -29.5t29.5 -70.5v-500 h-200v-300h200q0 -36 -7 -57.5t-23.5 -30t-29.5 -10.5t-40 -2h-600q-41 0 -70.5 29.5t-29.5 70.5v800q0 41 29.5 70.5t70.5 29.5v-150q0 -62 44 -106t106 -44h300q62 0 106 44t44 106zM1212 250l-212 -212v162h-200v100h200v162z" />
<glyph unicode="&#xe209;" d="M658 1197l637 -1104q23 -38 7 -65.5t-60 -27.5h-1276q-44 0 -60 27.5t7 65.5l637 1104q22 39 54 39t54 -39zM704 800h-208q-20 0 -32 -14.5t-8 -34.5l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5zM500 300v-100h200 v100h-200z" />
<glyph unicode="&#xe210;" d="M425 1100h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM425 800h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5 t17.5 7.5zM825 800h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM25 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150 q0 10 7.5 17.5t17.5 7.5zM425 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM825 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5 v150q0 10 7.5 17.5t17.5 7.5zM25 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM425 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5 t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM825 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
<glyph unicode="&#xe211;" d="M700 1200h100v-200h-100v-100h350q62 0 86.5 -39.5t-3.5 -94.5l-66 -132q-41 -83 -81 -134h-772q-40 51 -81 134l-66 132q-28 55 -3.5 94.5t86.5 39.5h350v100h-100v200h100v100h200v-100zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-12l137 -100 h-950l138 100h-13q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
<glyph unicode="&#xe212;" d="M600 1300q40 0 68.5 -29.5t28.5 -70.5h-194q0 41 28.5 70.5t68.5 29.5zM443 1100h314q18 -37 18 -75q0 -8 -3 -25h328q41 0 44.5 -16.5t-30.5 -38.5l-175 -145h-678l-178 145q-34 22 -29 38.5t46 16.5h328q-3 17 -3 25q0 38 18 75zM250 700h700q21 0 35.5 -14.5 t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-150v-200l275 -200h-950l275 200v200h-150q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
<glyph unicode="&#xe213;" d="M600 1181q75 0 128 -53t53 -128t-53 -128t-128 -53t-128 53t-53 128t53 128t128 53zM602 798h46q34 0 55.5 -28.5t21.5 -86.5q0 -76 39 -183h-324q39 107 39 183q0 58 21.5 86.5t56.5 28.5h45zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13 l138 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
<glyph unicode="&#xe214;" d="M600 1300q47 0 92.5 -53.5t71 -123t25.5 -123.5q0 -78 -55.5 -133.5t-133.5 -55.5t-133.5 55.5t-55.5 133.5q0 62 34 143l144 -143l111 111l-163 163q34 26 63 26zM602 798h46q34 0 55.5 -28.5t21.5 -86.5q0 -76 39 -183h-324q39 107 39 183q0 58 21.5 86.5t56.5 28.5h45 zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13l138 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
<glyph unicode="&#xe215;" d="M600 1200l300 -161v-139h-300q0 -57 18.5 -108t50 -91.5t63 -72t70 -67.5t57.5 -61h-530q-60 83 -90.5 177.5t-30.5 178.5t33 164.5t87.5 139.5t126 96.5t145.5 41.5v-98zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13l138 -100h-950l137 100 h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
<glyph unicode="&#xe216;" d="M600 1300q41 0 70.5 -29.5t29.5 -70.5v-78q46 -26 73 -72t27 -100v-50h-400v50q0 54 27 100t73 72v78q0 41 29.5 70.5t70.5 29.5zM400 800h400q54 0 100 -27t72 -73h-172v-100h200v-100h-200v-100h200v-100h-200v-100h200q0 -83 -58.5 -141.5t-141.5 -58.5h-400 q-83 0 -141.5 58.5t-58.5 141.5v400q0 83 58.5 141.5t141.5 58.5z" />
<glyph unicode="&#xe218;" d="M150 1100h900q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5zM125 400h950q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-283l224 -224q13 -13 13 -31.5t-13 -32 t-31.5 -13.5t-31.5 13l-88 88h-524l-87 -88q-13 -13 -32 -13t-32 13.5t-13 32t13 31.5l224 224h-289q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM541 300l-100 -100h324l-100 100h-124z" />
<glyph unicode="&#xe219;" d="M200 1100h800q83 0 141.5 -58.5t58.5 -141.5v-200h-100q0 41 -29.5 70.5t-70.5 29.5h-250q-41 0 -70.5 -29.5t-29.5 -70.5h-100q0 41 -29.5 70.5t-70.5 29.5h-250q-41 0 -70.5 -29.5t-29.5 -70.5h-100v200q0 83 58.5 141.5t141.5 58.5zM100 600h1000q41 0 70.5 -29.5 t29.5 -70.5v-300h-1200v300q0 41 29.5 70.5t70.5 29.5zM300 100v-50q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v50h200zM1100 100v-50q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v50h200z" />
<glyph unicode="&#xe221;" d="M480 1165l682 -683q31 -31 31 -75.5t-31 -75.5l-131 -131h-481l-517 518q-32 31 -32 75.5t32 75.5l295 296q31 31 75.5 31t76.5 -31zM108 794l342 -342l303 304l-341 341zM250 100h800q21 0 35.5 -14.5t14.5 -35.5v-50h-900v50q0 21 14.5 35.5t35.5 14.5z" />
<glyph unicode="&#xe223;" d="M1057 647l-189 506q-8 19 -27.5 33t-40.5 14h-400q-21 0 -40.5 -14t-27.5 -33l-189 -506q-8 -19 1.5 -33t30.5 -14h625v-150q0 -21 14.5 -35.5t35.5 -14.5t35.5 14.5t14.5 35.5v150h125q21 0 30.5 14t1.5 33zM897 0h-595v50q0 21 14.5 35.5t35.5 14.5h50v50 q0 21 14.5 35.5t35.5 14.5h48v300h200v-300h47q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-50z" />
<glyph unicode="&#xe224;" d="M900 800h300v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-375v591l-300 300v84q0 10 7.5 17.5t17.5 7.5h375v-400zM1200 900h-200v200zM400 600h300v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-650q-10 0 -17.5 7.5t-7.5 17.5v950q0 10 7.5 17.5t17.5 7.5h375v-400zM700 700h-200v200z " />
<glyph unicode="&#xe225;" d="M484 1095h195q75 0 146 -32.5t124 -86t89.5 -122.5t48.5 -142q18 -14 35 -20q31 -10 64.5 6.5t43.5 48.5q10 34 -15 71q-19 27 -9 43q5 8 12.5 11t19 -1t23.5 -16q41 -44 39 -105q-3 -63 -46 -106.5t-104 -43.5h-62q-7 -55 -35 -117t-56 -100l-39 -234q-3 -20 -20 -34.5 t-38 -14.5h-100q-21 0 -33 14.5t-9 34.5l12 70q-49 -14 -91 -14h-195q-24 0 -65 8l-11 -64q-3 -20 -20 -34.5t-38 -14.5h-100q-21 0 -33 14.5t-9 34.5l26 157q-84 74 -128 175l-159 53q-19 7 -33 26t-14 40v50q0 21 14.5 35.5t35.5 14.5h124q11 87 56 166l-111 95 q-16 14 -12.5 23.5t24.5 9.5h203q116 101 250 101zM675 1000h-250q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h250q10 0 17.5 7.5t7.5 17.5v50q0 10 -7.5 17.5t-17.5 7.5z" />
<glyph unicode="&#xe226;" d="M641 900l423 247q19 8 42 2.5t37 -21.5l32 -38q14 -15 12.5 -36t-17.5 -34l-139 -120h-390zM50 1100h106q67 0 103 -17t66 -71l102 -212h823q21 0 35.5 -14.5t14.5 -35.5v-50q0 -21 -14 -40t-33 -26l-737 -132q-23 -4 -40 6t-26 25q-42 67 -100 67h-300q-62 0 -106 44 t-44 106v200q0 62 44 106t106 44zM173 928h-80q-19 0 -28 -14t-9 -35v-56q0 -51 42 -51h134q16 0 21.5 8t5.5 24q0 11 -16 45t-27 51q-18 28 -43 28zM550 727q-32 0 -54.5 -22.5t-22.5 -54.5t22.5 -54.5t54.5 -22.5t54.5 22.5t22.5 54.5t-22.5 54.5t-54.5 22.5zM130 389 l152 130q18 19 34 24t31 -3.5t24.5 -17.5t25.5 -28q28 -35 50.5 -51t48.5 -13l63 5l48 -179q13 -61 -3.5 -97.5t-67.5 -79.5l-80 -69q-47 -40 -109 -35.5t-103 51.5l-130 151q-40 47 -35.5 109.5t51.5 102.5zM380 377l-102 -88q-31 -27 2 -65l37 -43q13 -15 27.5 -19.5 t31.5 6.5l61 53q19 16 14 49q-2 20 -12 56t-17 45q-11 12 -19 14t-23 -8z" />
<glyph unicode="&#xe227;" d="M625 1200h150q10 0 17.5 -7.5t7.5 -17.5v-109q79 -33 131 -87.5t53 -128.5q1 -46 -15 -84.5t-39 -61t-46 -38t-39 -21.5l-17 -6q6 0 15 -1.5t35 -9t50 -17.5t53 -30t50 -45t35.5 -64t14.5 -84q0 -59 -11.5 -105.5t-28.5 -76.5t-44 -51t-49.5 -31.5t-54.5 -16t-49.5 -6.5 t-43.5 -1v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-100v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-175q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h75v600h-75q-10 0 -17.5 7.5t-7.5 17.5v150 q0 10 7.5 17.5t17.5 7.5h175v75q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-75h100v75q0 10 7.5 17.5t17.5 7.5zM400 900v-200h263q28 0 48.5 10.5t30 25t15 29t5.5 25.5l1 10q0 4 -0.5 11t-6 24t-15 30t-30 24t-48.5 11h-263zM400 500v-200h363q28 0 48.5 10.5 t30 25t15 29t5.5 25.5l1 10q0 4 -0.5 11t-6 24t-15 30t-30 24t-48.5 11h-363z" />
<glyph unicode="&#xe230;" d="M212 1198h780q86 0 147 -61t61 -147v-416q0 -51 -18 -142.5t-36 -157.5l-18 -66q-29 -87 -93.5 -146.5t-146.5 -59.5h-572q-82 0 -147 59t-93 147q-8 28 -20 73t-32 143.5t-20 149.5v416q0 86 61 147t147 61zM600 1045q-70 0 -132.5 -11.5t-105.5 -30.5t-78.5 -41.5 t-57 -45t-36 -41t-20.5 -30.5l-6 -12l156 -243h560l156 243q-2 5 -6 12.5t-20 29.5t-36.5 42t-57 44.5t-79 42t-105 29.5t-132.5 12zM762 703h-157l195 261z" />
<glyph unicode="&#xe231;" d="M475 1300h150q103 0 189 -86t86 -189v-500q0 -41 -42 -83t-83 -42h-450q-41 0 -83 42t-42 83v500q0 103 86 189t189 86zM700 300v-225q0 -21 -27 -48t-48 -27h-150q-21 0 -48 27t-27 48v225h300z" />
<glyph unicode="&#xe232;" d="M475 1300h96q0 -150 89.5 -239.5t239.5 -89.5v-446q0 -41 -42 -83t-83 -42h-450q-41 0 -83 42t-42 83v500q0 103 86 189t189 86zM700 300v-225q0 -21 -27 -48t-48 -27h-150q-21 0 -48 27t-27 48v225h300z" />
<glyph unicode="&#xe233;" d="M1294 767l-638 -283l-378 170l-78 -60v-224l100 -150v-199l-150 148l-150 -149v200l100 150v250q0 4 -0.5 10.5t0 9.5t1 8t3 8t6.5 6l47 40l-147 65l642 283zM1000 380l-350 -166l-350 166v147l350 -165l350 165v-147z" />
<glyph unicode="&#xe234;" d="M250 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM650 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM1050 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44z" />
<glyph unicode="&#xe235;" d="M550 1100q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM550 700q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM550 300q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44z" />
<glyph unicode="&#xe236;" d="M125 1100h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM125 700h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5 t17.5 7.5zM125 300h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
<glyph unicode="&#xe237;" d="M350 1200h500q162 0 256 -93.5t94 -256.5v-500q0 -165 -93.5 -257.5t-256.5 -92.5h-500q-165 0 -257.5 92.5t-92.5 257.5v500q0 165 92.5 257.5t257.5 92.5zM900 1000h-600q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h600q41 0 70.5 29.5 t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5zM350 900h500q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -14.5 -35.5t-35.5 -14.5h-500q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 14.5 35.5t35.5 14.5zM400 800v-200h400v200h-400z" />
<glyph unicode="&#xe238;" d="M150 1100h1000q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5 t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5z" />
<glyph unicode="&#xe239;" d="M650 1187q87 -67 118.5 -156t0 -178t-118.5 -155q-87 66 -118.5 155t0 178t118.5 156zM300 800q124 0 212 -88t88 -212q-124 0 -212 88t-88 212zM1000 800q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM300 500q124 0 212 -88t88 -212q-124 0 -212 88t-88 212z M1000 500q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM700 199v-144q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v142q40 -4 43 -4q17 0 57 6z" />
<glyph unicode="&#xe240;" d="M745 878l69 19q25 6 45 -12l298 -295q11 -11 15 -26.5t-2 -30.5q-5 -14 -18 -23.5t-28 -9.5h-8q1 0 1 -13q0 -29 -2 -56t-8.5 -62t-20 -63t-33 -53t-51 -39t-72.5 -14h-146q-184 0 -184 288q0 24 10 47q-20 4 -62 4t-63 -4q11 -24 11 -47q0 -288 -184 -288h-142 q-48 0 -84.5 21t-56 51t-32 71.5t-16 75t-3.5 68.5q0 13 2 13h-7q-15 0 -27.5 9.5t-18.5 23.5q-6 15 -2 30.5t15 25.5l298 296q20 18 46 11l76 -19q20 -5 30.5 -22.5t5.5 -37.5t-22.5 -31t-37.5 -5l-51 12l-182 -193h891l-182 193l-44 -12q-20 -5 -37.5 6t-22.5 31t6 37.5 t31 22.5z" />
<glyph unicode="&#xe241;" d="M1200 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-850q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v850h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM500 450h-25q0 15 -4 24.5t-9 14.5t-17 7.5t-20 3t-25 0.5h-100v-425q0 -11 12.5 -17.5t25.5 -7.5h12v-50h-200v50q50 0 50 25v425h-100q-17 0 -25 -0.5t-20 -3t-17 -7.5t-9 -14.5t-4 -24.5h-25v150h500v-150z" />
<glyph unicode="&#xe242;" d="M1000 300v50q-25 0 -55 32q-14 14 -25 31t-16 27l-4 11l-289 747h-69l-300 -754q-18 -35 -39 -56q-9 -9 -24.5 -18.5t-26.5 -14.5l-11 -5v-50h273v50q-49 0 -78.5 21.5t-11.5 67.5l69 176h293l61 -166q13 -34 -3.5 -66.5t-55.5 -32.5v-50h312zM412 691l134 342l121 -342 h-255zM1100 150v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5z" />
<glyph unicode="&#xe243;" d="M50 1200h1100q21 0 35.5 -14.5t14.5 -35.5v-1100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v1100q0 21 14.5 35.5t35.5 14.5zM611 1118h-70q-13 0 -18 -12l-299 -753q-17 -32 -35 -51q-18 -18 -56 -34q-12 -5 -12 -18v-50q0 -8 5.5 -14t14.5 -6 h273q8 0 14 6t6 14v50q0 8 -6 14t-14 6q-55 0 -71 23q-10 14 0 39l63 163h266l57 -153q11 -31 -6 -55q-12 -17 -36 -17q-8 0 -14 -6t-6 -14v-50q0 -8 6 -14t14 -6h313q8 0 14 6t6 14v50q0 7 -5.5 13t-13.5 7q-17 0 -42 25q-25 27 -40 63h-1l-288 748q-5 12 -19 12zM639 611 h-197l103 264z" />
<glyph unicode="&#xe244;" d="M1200 1100h-1200v100h1200v-100zM50 1000h400q21 0 35.5 -14.5t14.5 -35.5v-900q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v900q0 21 14.5 35.5t35.5 14.5zM650 1000h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM700 900v-300h300v300h-300z" />
<glyph unicode="&#xe245;" d="M50 1200h400q21 0 35.5 -14.5t14.5 -35.5v-900q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v900q0 21 14.5 35.5t35.5 14.5zM650 700h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5zM700 600v-300h300v300h-300zM1200 0h-1200v100h1200v-100z" />
<glyph unicode="&#xe246;" d="M50 1000h400q21 0 35.5 -14.5t14.5 -35.5v-350h100v150q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-150h100v-100h-100v-150q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v150h-100v-350q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5zM700 700v-300h300v300h-300z" />
<glyph unicode="&#xe247;" d="M100 0h-100v1200h100v-1200zM250 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM300 1000v-300h300v300h-300zM250 500h900q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
<glyph unicode="&#xe248;" d="M600 1100h150q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-100h450q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h350v100h-150q-21 0 -35.5 14.5 t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h150v100h100v-100zM400 1000v-300h300v300h-300z" />
<glyph unicode="&#xe249;" d="M1200 0h-100v1200h100v-1200zM550 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM600 1000v-300h300v300h-300zM50 500h900q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
<glyph unicode="&#xe250;" d="M865 565l-494 -494q-23 -23 -41 -23q-14 0 -22 13.5t-8 38.5v1000q0 25 8 38.5t22 13.5q18 0 41 -23l494 -494q14 -14 14 -35t-14 -35z" />
<glyph unicode="&#xe251;" d="M335 635l494 494q29 29 50 20.5t21 -49.5v-1000q0 -41 -21 -49.5t-50 20.5l-494 494q-14 14 -14 35t14 35z" />
<glyph unicode="&#xe252;" d="M100 900h1000q41 0 49.5 -21t-20.5 -50l-494 -494q-14 -14 -35 -14t-35 14l-494 494q-29 29 -20.5 50t49.5 21z" />
<glyph unicode="&#xe253;" d="M635 865l494 -494q29 -29 20.5 -50t-49.5 -21h-1000q-41 0 -49.5 21t20.5 50l494 494q14 14 35 14t35 -14z" />
<glyph unicode="&#xe254;" d="M700 741v-182l-692 -323v221l413 193l-413 193v221zM1200 0h-800v200h800v-200z" />
<glyph unicode="&#xe255;" d="M1200 900h-200v-100h200v-100h-300v300h200v100h-200v100h300v-300zM0 700h50q0 21 4 37t9.5 26.5t18 17.5t22 11t28.5 5.5t31 2t37 0.5h100v-550q0 -22 -25 -34.5t-50 -13.5l-25 -2v-100h400v100q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v550h100q25 0 37 -0.5t31 -2 t28.5 -5.5t22 -11t18 -17.5t9.5 -26.5t4 -37h50v300h-800v-300z" />
<glyph unicode="&#xe256;" d="M800 700h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-100v-550q0 -22 25 -34.5t50 -14.5l25 -1v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v550h-100q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h800v-300zM1100 200h-200v-100h200v-100h-300v300h200v100h-200v100h300v-300z" />
<glyph unicode="&#xe257;" d="M701 1098h160q16 0 21 -11t-7 -23l-464 -464l464 -464q12 -12 7 -23t-21 -11h-160q-13 0 -23 9l-471 471q-7 8 -7 18t7 18l471 471q10 9 23 9z" />
<glyph unicode="&#xe258;" d="M339 1098h160q13 0 23 -9l471 -471q7 -8 7 -18t-7 -18l-471 -471q-10 -9 -23 -9h-160q-16 0 -21 11t7 23l464 464l-464 464q-12 12 -7 23t21 11z" />
<glyph unicode="&#xe259;" d="M1087 882q11 -5 11 -21v-160q0 -13 -9 -23l-471 -471q-8 -7 -18 -7t-18 7l-471 471q-9 10 -9 23v160q0 16 11 21t23 -7l464 -464l464 464q12 12 23 7z" />
<glyph unicode="&#xe260;" d="M618 993l471 -471q9 -10 9 -23v-160q0 -16 -11 -21t-23 7l-464 464l-464 -464q-12 -12 -23 -7t-11 21v160q0 13 9 23l471 471q8 7 18 7t18 -7z" />
<glyph unicode="&#xf8ff;" d="M1000 1200q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM450 1000h100q21 0 40 -14t26 -33l79 -194q5 1 16 3q34 6 54 9.5t60 7t65.5 1t61 -10t56.5 -23t42.5 -42t29 -64t5 -92t-19.5 -121.5q-1 -7 -3 -19.5t-11 -50t-20.5 -73t-32.5 -81.5t-46.5 -83t-64 -70 t-82.5 -50q-13 -5 -42 -5t-65.5 2.5t-47.5 2.5q-14 0 -49.5 -3.5t-63 -3.5t-43.5 7q-57 25 -104.5 78.5t-75 111.5t-46.5 112t-26 90l-7 35q-15 63 -18 115t4.5 88.5t26 64t39.5 43.5t52 25.5t58.5 13t62.5 2t59.5 -4.5t55.5 -8l-147 192q-12 18 -5.5 30t27.5 12z" />
<glyph unicode="&#x1f511;" d="M250 1200h600q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-500l-255 -178q-19 -9 -32 -1t-13 29v650h-150q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM400 1100v-100h300v100h-300z" />
<glyph unicode="&#x1f6aa;" d="M250 1200h750q39 0 69.5 -40.5t30.5 -84.5v-933l-700 -117v950l600 125h-700v-1000h-100v1025q0 23 15.5 49t34.5 26zM500 525v-100l100 20v100z" />
</font>
</defs></svg> wOFF     r    $                       BASE     >   PsFFTM        moGDEF     "   ( $GPOS  <  
  3	-GSUB       ۩OS/2     X   `k[cmap  8    HDcvt      8   8;fpgm      eS/gasp         glyf    O  lH.head  aL   4   6Uhhea  a      $hmtx  a  8  M3loca  c    ֌1gmaxp  e        name  e  
  '_post  pd    7(nprep  rT   s   webf  r      +Wuxc`d`` b>̔<&7Ē<6`d`a`( 

         =    ͗    Ӛhxc`d``b	 /c``` >  xZ}h6\n^.g˵M]CD+bj4-kڻChl*GH9OB6Emh?Y=!,>3;;3;ey?~
QTpXk;'|^h'f*%D[Җ#m8}g~J/W\³[@PB/hvz@4D/!%i#B [9L@M<Fgxrz8NT^-?||M:7<Za)1Ovkø^HE=8zͳuoj k#MLSǻb9	ZX~z7!^BxŬ19S+.`<Fb@[\1z0S#5Q3tz2ݠOnHm=txyKT>Ŵ.
vky\h~l:f<Ch>Kpxs{qn~^#_|>YU*u2G;Wg[<s\YqhN=vC5;ѷv8i̝B4iB+U
Q1uJ~kg[s ;q	W2gOh#ŎA23ej/F1 0(+Ɩuɧp6K<3(b5$D\rW&vXu
>p#kXK<W+$U<?Czr<bI"5Ƽ8Ʃ]KgkiN,z>es3§$7v?v~낔⨤{'U\z7H忥y;5 ON5<i@H_"~iA%e>};8zG*1Hp[Zv0)RҙE<-yJ)#3l])vI:wkP$2 Ud+hLzJYXS&^Sw9Le\9KQ]\$uՠUkDܠ|֬zp̙ڇ;C<%wp5͉AӶhd!oZK+.;O^?j<o}I₩󒋄:xZљO2yJyDƺ'^7ud@USҞK_r;a+<Ns|v~XHudǜ1/w=Cڢ<i{Gz27mMڔao_L}q)VMb?Ĵb<Y$F 
-E/R_Ll\{ hf&ّ1o?RRl̡[Jn=ɫrkk@*ܞXJx{.S.BoV/kfS6v<4j	>4&h:BH|ڥ{<:a	KoXǷ-wыv^LVKm+;x#/a켦]7IWU]7I4{_MKd%#D>E
Ƶe]Q>w9x줟fq옯Xue.SWH$Dj/(KI"?aN$3흄a@''k>tVSO?$_cIltGt3uaא;5J_M8#K/y|R}11s]RU4~FSn&mW\q{\{*y[姘ەH_LdaÔ*ɡI*e;=fw@ћ~gy3u0;,ν3YW[af,]jѥ[2/R.K;gV&HO^궣<tT}xj^껩@pXlts|AZK!S\RokTD3˘hAQHx/t'繗"pÂ{gd.ύxeYVgU<?0$%zk/<aO=khԃ(<ZkgyXp́@DVܑ|8c%8bܜon9+?p]EZN5܅P[)	1D֑f<aszs2l',$mh^N}Q_ޭ*^ oXbkזӇԒʕ[.=Sc7jY܂-/-VzT?+x|OudRi{'9b;!J/V z_]7i0^[kytvZILg"~KJ%jMt"zG}6NW^mUDNj:mQkQ7kӏh/p8No6}-Vm.t=Krf%UJ`j5vQUT%U~VLI=CܩeozYf:c3*l%fS-e Ӆ6A_Zt%fD-x='Ax){5훸 Y^[/l5/u^-ZWJYPAecN
@YبUݔs2	O/mc+فݛ{ՐbPwoC=H󨇩~Bg:CC(F~KA=>I@   xc`d``bb(a`rq	aI,cc`3\ĜBdH7DQ[ V W\ZP̠ɂHWA(`eE1TY-`a)`P3X
jZu;*B`\A h'L#>dYlz@|8T	n5{ aМ9 1 Cґ4(-"(_PP91q	 r#  xc`fdjraf:ːٙYX؁Pʠ~dVs  <nxc```f`F1,d21gf`:tGKADAJANAIAMA_J!^aL[U͠   Um	WT/'yp{z,9ԅDF6l& _@PHXDTL\BRJZFVN^AQIYEUM]CSK[GWO? 0(8$4,<"2*:&6.>!1)wK,[|k֭߸a۷صsJҳW-.}V5!캼:U{S@)-3~ݛv3>/ochk8i3͛?b  j     7   --5           f d   Dx]QN[A 9{	Սbd;i7rq@DگH!H|B>!3k4;;sΙ3KʑwkS$6NH 덌Zlfuє;j =o)M;Z
;4:	!qKͺb00.?R4j˰Ѽ34@Skm!qK˦6$tUS]`*́Vy&ҷ$,b
9@HƼIJ;ㆵƑ6O<MmoYwK:Ȇb;b)	DBFUϽ,R@D<u1Vz~ˊV΋Bwoj)^ξAcJ<,4hCz7zꈫ>'ӿZ       xŽ|Se(4'mڦiB($J[ډNۭZe|,2"","^{Fq]c븳3,;;;Й~JsNsy</P+BܰGz0<הs8<GQZ'1\<\\#o^o~jQ3F^
4A,YE	]ȩ	*f2S$)Jʆ) XSF>GBK"]筩y
?5H
ׂ'+9:5ȿmp.gcHK Y$(#CzMP҅T(JK)<
3E8HȞQ,lOky'T(]FƜv"q`rsB&*F˾MEpSp|Vo0Z.e\zUff$7cPrYR%8q/%f8J)JK^h54м[@*sez[p:x'72n*) xBnwU)+rr>}JUp_ax@E |U+NOZQļш-ӗë'/kW|v,@^o\.ȡo+Qz3Tv"i萉K#,-%T%JKj>H %'#$J3ɑ5,Ni2K86jqfM	x|QWHxItBMtX4NB9"ot!NLI&ݚ<uiZ7~m}mͧ#ƶMM+5tyS~Y6l
yQ݄ΡtPT4PBMk9rd4Sh;gzVGvKP,Zr-BzNpU&L䍧
Vt pX Xk.m"Kd/C䄐&.v3Y%u61|nko;H;93)?>:>u˖?6Ӧ7ڵמs}4ȣ=ZJ( {#TNgZ4ȽY2q=*%laa@8)"B	F-K gi6EhbMF(9Ju!Nr d,Yjl!R .pczF~3| 1zj0F!028,H|OG$V}͑==}˰ۻz7Bc%z1҆6RվoE;e,>\	Zͷ4|s P7%|]@s"[T6A2(bK:U&2
SY?n@*B%KfJz:	bk̩#eu븃xq5a.7ߗ;L\o0=_uw%b+
N?iMc߾oￏ׉2_	-OFfTIYLaRBH@Ó- k9cg̩wz,!sCl;yjlfп^]žg.{WD~&LD|a75]pQNM&dB8^|O|/yWE<tQ#-IEΈ'IYɝS&u!d HSDUB?qо~VbDoWbFa(6ZYe	^*^9>z"
 EhDSڑ|hLU~Tܿ\>mӞ!}@pa0c\UdzDFB%n,)rs"p1Gp9~uyX>&t^'rZP$"SZ@<"e'l0JBm& 	WOkw{]Єj7qDs3ykGNommzzd[oPϿ2T^ZSמ~کS?]WO]>]QO[Z;*DIF 5^L)zdT$J%9m(e"(rH;ѸRfG (BH%0"Dqu}p*/?/Ϯ7HVQ
ϷW
1ֈhE:Q@cC)Ns6@(V	:=9$k&3^o|cjj|(*bۇz746>qgs=uI>m$8^$phNS*"S "/Ig<՗[ŔLv CԝT*;+
)*OBrR*h=7J	ï(=QI]ކ7U%vݼ+v}ol>햍#$vJC?8R#Y,Ms^gc.hڏ@hÄ쨟T$JHZ8BbI\
0KN(2}Ea$0<K Y`Ƣp7RyC'j\
{7O)c|1~)ͻZuQ$fJ^ Ŕq#a.6:5l.LBJ	)Zg,;FI#0uqwlwŊݵ5%ݏoZyf^vZ=܁ɫkG榵n	mբ0Z0ËTVKP/,	T=D9bYO,BmI5-Bhq-"
TJ"x
1.i>Xa%LO8|V=x̻>sUrs[Uem{p)mvVsgtw/<z'ⵆ^}|WKWo鎓#df@laѵ?,
II&2RgƌMXYBls c&5s{~}t[>d;1{/{^ |xBElFu=YޙEƒ"PDLr"=L
0CY#PZQtIbרխ菔(?CM\_:sF냭9n
ƣN[ wny"d?k@(ҿ+9h!r|Gb;7ܕ
6E8w?ߡO?tʸҪ<BQt::Si[)L-+J$YR <"m(-;b=In3Jځm7o>KȑKM=ڃʶW7`PGhMоe:|bSCSWO?=}g#%#\3el,58QTc	;T4ɪ\3ta6=f>P8Gఠ
tJe[K>q2(UՂDEdѹ[T(7"я!8E_F~BZ|[[>_'?抢jbYDE?X?L<C h7+(Di?̱ᶌ($RL-V=Y)GNLgA]K%2rebiڋk(ߖ7msO/*޾2xkS7`Yڵjk=I6}[-ĎphX>#zI- 7gG%@9L%;
!)_\hk(=d=o|,X%XW%斯QnkZ̲RH{q[F"z^Ex]	Am^sj3[Ȼ&pS/W>i6o{lýDG=my-ݚ<eGn^iH>.{ݏ]x[:O=<#zF)rמ}o'Ӈ?:Q=^7"ހFukNhct+%>.
t@wHzKJ|"p9l0Rb؃=y1M_OuJk?vWeFWح]{7?ۆ?ZgTF#p$p9CQAJ#4W2nGpJ)9XLՐ1'dJOaDw	N/HuVIO'ӫ"	Q1#:ˣ=n{ѿzmc0Xeb`_k2^ؠx函ɋ+v~YM$vH#J+Գ*1K/dj~		WkUr0D	p!֜c쭛<ũ]BwsOakodo|eݽ?@Z9Ȑ9(D."2.`Oe""B  QU$LG$ @#J}?޳X=qm,̵ӧS]WOn]3GPlF#hJ_hjAF|ʨBa, {_b3{o'yd|^V{<׈VigY{Zo'%O^c
$/چU!*)HUIr'vTh<GIlPK-
UCWi`tt7*EMT辞Ď?z1p/W+)KSv/?|u@!+Wt>gGF2beg Da2`[Up=>E9MwM~{~<'wnOM'w6{Gr'`JV
DWg̋w&4#V]115s!HW7=n]95xz{/H!!Rd!)gL`p]=op<?/<Ex.r^>ɳhxeMQ?,Kk	Iswpm7du>#7Q[Oதw#V䶤L0JIUA8ita ~N(akYﷷ ÿJAaҐ|7ɗE:Æn=Ψ+2Ƞr%Jh!kGC>9ZgC]

Fn#(vO@g.lBVܬ m:hy/$(i0JOt:ۂ%D{l"}\*T9;')+Jx'ebBoOۙK[i_^ewxo^=g񧿿8w$FgIYuWs'կzW{Ķ.$]iTV)*F @Z;)fdc.RjjMA=/{6>uQ\XrP;HV5Ow<:e**e`1֖WY$;1	j9Iar!?+JWEug̎^7z~~ɻo~<Rt{j)K	j3EYPX*
PTYBTHiT2:=a+^=ޮx|::Ԗ-?peq
H{(AX;md.BhE:J(Y/R|2p_R+k
>x|kDq+ql-9RT7ƞrUXutԶnA`g}3#dd*<m_'}1q*kwsGׁz^,]
z+m7~ֻ`2OT^Һxp\I).ju4 N:-ᔳ7E4;,&*b
gLUeMjJO4©DRFc,':zdDx1Cƶ<"RKr)LfLg1,1պZ2QV&L;q*^>#ፏnx{"ۍn5yrH2#|d^%˫"M^h*^I~+_ycZI*6V*|兦'$e\3ڂxժvz2^TXLR.J˜/4NџU[xA߫=MnX{udQOp&4O}k-4V댅ťUzCU殜W'E?a&S"-D˩țq]h`>n0,i)7˄1y/GFnݺk'YwȺı[:,1y效d&2.b1V̸T[YWW8\TߒOfߋWʧFYɅ1gBYѼV\;9-ѵMkȿ4v|hZ)y
}[h
1zR"2Pg#jXY-UlD?߹/׉#'e~<B퍅N':cԚHf pKy\b
g2uwg'dfܐ94bS*G7Ҝ.R
VM4gKGD
GKo-398(f~qW_;-Y-34
793*:&ċMnLKقOHepsF0u<＃%9yX{oVs!q3t5nn|p >8q먳^7|\3I8ۉf#a#[akT{%G=-<!AbrCg	T.&uQYAdC%UC$X`FbVH5BZWDPP
:pDx4HTІj}TXaC2wYe5A\5]-;owݭSrm}"D;'d(5H}76@."ڴGA)˴WzcL8贤 TTIexUTHQ쪩7Woc_ELldi'Z,7t륾nQ駢zy:ZVU>c؊  su@u"CKa  u= LM& W²J	T O)M<sՑÑ=7oؾc(vLxbW5GԀurKc7 I_ů*ݪ◂!D2J0U1@J)C1oj2y<x?t(A%ۿ}$ٳ~Ia>r%}@z<1ok=87} ߣkݍr4P\avB\0Vntt71`	!	Y`q:hE]N>35h&]?xŽ	\7$~[n9>hnl}{7݄$]fl4i+#)D,I%`Ij'NM'Ruʀfjg,OVnGV7bM?|/)ocivܚhx*_>69/F7n|':g2,BYDR.Z!QZZ81V3Ւ REI$u2oҜ[V̜*]ʬisA%%UYSZJHMⴎvPcйER{U#o&%eMvbTt<{@ 2f'Zf[}v7='_|#y}G6mkVL޺6R)АmyC̶.CW1/}ysO-r'wƪ6ŗGEN>Ivw19!.#ZZ@qdS_r.D5ԫ'[i|BLaS#lW&p_]Ԗ%@}m("Dl[,{e4<f"T_+.L&:Jq6E9q'pD'P  4LX.BDBRz+Vs0SJ/8:YǦ9A}{4GCC~3$zkVZt9!sXsD`x99ycp^%~C{tcsxY̑#8f"&!gl.*;$ﵚ}[#{ݸAsECSqwLE !ȃ:"&#$)ERĠ.	_#E]̽$00QTrQ>` $˞טPM![}sgvc{Fo=2%=1m)Mv)EdjM_d7^aS
r#P<[c;0*)cTE[g[Gמ=3{9L%Y䳝(#w(|nMt>"ó^mD瓐R:'}%}BڇUdTd?)~_˶}=n{|;ױ4rB~;U~EbcUL09"_sU,zu4U`aҮ7\/EwUC=ЊڕB|
9U,38lt$V0 !\2V2J9$, d'L
JƱ%!wGL&y`LS8D"p,BQz!bJJp)U>_3,*]
ArQVj0 |W2#Y?>Fg%Npw5;@"tRؽMX{]d(zSk/l~1<kx@}U.+mmm.Nx~!ڂ6oՂ.h`Zk9D4,ͦҬR
JFd2x0=8BU̴D[fRN:)ﵫW\]~'b=]V?ڋb:6',ϖ8u8fshM+Hji98c9nol'qg%CkO;-҆%	þD;NS8qiIZsgڦ3]Xi;V?9#?=ǒcCTP]^!OeLW3S|ſ˴P_f3?rLx1o?|/F^LCO]f<xE%e
Esu#l-|.*ﷸFsIq,@Dv.;:؉ߝ0k*y 2Sw_*2؍ct,>fT~\b:ߚ,O{d>r\,;mX	h>RI;K	G(%4T@Q.:*K1!Zmq_rdWRtvً	z:whǙ/GC&/5Ǝ%Jc<&S qu	܃ϝ}||ٽf}Iud$zO2n2KEi% 0fE1#2QDG&&Cm#
j	Ւq*dbAM'o1l:~%s~j;DP߱{ΠnI\y0ZJ&{bƎ7tw<b3X~{hwNzPy4XF o!kZ|1BD^}6"Y/I)OsI2epf>C^U88|,Mp"W* Ǣ2YyaEd*Df>	x߼2֯`Y!Mb<b%j8T9'qe%e
VǼ#'0SɸPlPHTy,T~TJ?
rɓy#d{0^}DUx=BPc|;skG9+Yzm<$k6X6m9)ǹrmS`ߝd}}q[M {PO-Z:vb.*%3%-l@:RgMoK]슃,
KT3AM0E>w
fmョ;4.vT=ذM׹n-%r\H7ywi0ǅ]2CJ}Y״h:jԋRM$cb^m[%mv͠-R4,W#fXU-[ 9_u5`j!E2O,HU5*3)06H/xL""lغ"Pǝlk]7,,s'6MGGz'!_qo =rJ_|5a)PjLdfMT<Jb*'S,Y-g)M)9JP~4OHY	JuzcQeU(7ǜ&Q~X׳C֭wh;_7qc[:VZ~Hw/n?|U:><Z;o\SHRF-9>b8/Cѥ79.I0Ջin%SN;+f2,Od?Wm(!S{^.&_ *״v׭W2|PYN.艵I#b%+8IὈ DF:>11خvhwN=}J,brL4bŖT!HUM=^S,u:: -f8;*R9dU͋`bhgu,TzdS֪c%NVl6]go3[^h#nn_趮ޤ4rﶝNsm[~ )\32<|w4GtG'}XK?y&m	u!?Pk,RLPH P{vH2
@#!H:R:$sL*ݗwa_onNCI8zդ|_D{ydޞR5͒xqfbd1^Ԯ<21FP1Zn
4&XXz5sl%˿_,5+ѼP#xhֶSKQәb}ݻ?;7:z>_k7HyGC=+Ct{[ϣ#˹#{ğH'o?X2c?}4x^zG+.}׼EHڀPI(ŕ, 6RY6Z5=Z^^z׺]	6<71uJ<໳ap[Ubwq۶z@'屛|ՍҍefmGǑXPMmzc_>fgsiAbE5jrN5ƚTDٴSF
m(AXMpc9h OYȄ؊C XOwmX~QE3(`VM[Sc;ET/., 1]$X3ŮZsRzV @Pb@A2.H9ׇZ1J{`	z'!GRyá֯XC&׵8yrG˺dpUۚUUAMy7<w>owml9myo*5/md桜|φ! f]%D/Ev;\89LWOtY_e$Yq4)FY,ؐ4&}+ A֖n^Q1YJ;T(RAj%#h"l5R@겂8N"И)6eNM"VjrLmp"w^	ӺtDLP[{.ק<JOZ+P^@EFZ>
g"dKvr%N}_6!@ٻbDvv׉LJG^kڼғvnmW-z}\:} cd_?0	; cA/ddl80B|X`o%_FR
ލpY*&j
X%VFO&x*䗾gخ!?fX=_[ktolyVc^;v1nh_Y;qWia~ncY5qD>jqo(TǴtZ
4u))0Nb\cv:;!j|e<Y?uo(ʫO;nɿe$.Z`!vk]d!,i|& Y-kWȟKv{y]_+߰}˷'_A|_hJslE#EG
2}>RD ^HHpXD=uIhK;o3@<h99hi_팖kXovCyzR:者@:j+P/TumcDKPtGm#,!It)<ב幎)<wFߓbw<@ҥyG콥˖54,Gw!w'}sxbA6:Hǰ<l?cA98c8vE!Y~YV$5]
eWձLӌ@WlUpe.@sRXg~%Gճ$ߔb-"촓F[b_Ё\JXZY(c)w%X	)[7مdD#јW2ìW۶ly"c7G_쇎Xom}$~_,hTQo(] rPd*/*#Ы13ՄM^.'8ruɼ)8'8)\zpA-;.ync-xT-F<lRs3C'3ELqg
/
m%xjDQz	R .͏MbK%BLT$^.]dfxtK@ό
~GKÐ/ZNG(.!*-'1U O-+|~P{[
gޤq*>!B4F/M|ZN|<89#!|~VwSn+ZWs@䈖W􌔡V-j.2w<bjf!/z[o]aO4{^V㣍W2݃Mm:Wݫ=󊿗c޺ȁW|*KfvB$pFSAa+.xũ_/Y;\P~*4-Sxg0^O o1/Oגl6x˧b@hQ7/Fݳ?67 *:
TA}yIxdd,06FRVƈF| |l~Tl.pV{`vpW|Cυ_"--ے|^yYr|ߞ
;Q>&ѤF9#!cɞQsT	+hqyN̬K[-NCٍ3A8+XsTiѬiNɪ߮|Liث"LAK8if]4vu5D	~rEŇޗǓ7G$OB-` QLJL13snPFKa_+!S0CF_(OM%GFs8r^QzCY+ф	. B#D%VH;OE620[
1hٞNHp6gzb8`ųm;do#6RFP'^#c@os\|^VG۠AsbhN Y&[lBߟ:i^^8/@eG9Y.a,Wir1Ժa|tv&ob[3!:RXBG
K6"֣gjg
y)&Apf犈K <Msc
8xXˇ
2o
dccxAtq扤	Մ*-"\JB`F"TR7/vMȳDyĠhz2B<GiXrZ w4pp5J)`<nGp5zBi׆XSwm%I+r'f~aNr'ܫy޳
#U@!߀yEVײ{ >:ŨfXm J.IBZ0?+.̩:rB/HhN1M7h 4 ܯuvfO	DB~_ǪPiukd8YSD;sLV,bZ@7jbSOo1uLQ<r8׵(5zTm/[p}硡Xl衞8&07=רvFF>G=~iCAČqJ{$[ 3X ;ʵ頁L5@ 3 -k)ִF[
m;YUYyC͜tU/Y6ʣJF~ã&iF_T)c2WOPK=@.ܰЧ:qL^R;[eO,f/&A A/nЄ[Lٴq#?Re-WՂZ:RMQ#<_()-q>$!kFӢ2NNe{n8=qy3ڣKT%q)qdkp&W:!f,8zA|SDq11f9#9Zik^k5(E#@VTh2-'0(l#T΂2"抵^7MHѨ(BiTy9j_jE6#ӈF<c?Cxߣo<<~ZۮK(C.V	bKjjC42h	mYheDHRyx˜B3E55,(]Pd̐IDg`Qp3'ߵ㻏.'{Ϛ;z+Sl>wwQ|},&ȉm? s!|F@lO)]Jf+pEvVlb#dF kˋOVݢPDb\AʢgLOBWlpOWEyv)|x/w.(Ahy֍]3!B$ȹVFA|+ÈCJŌi`Jl3G1KwMK6Nq(S5FYܜS?E؝Ӛ?ӬN{YPה9jkdRj0'"Мn-vU/L#l[2	YKr}>ô196D'GzYͻZ;
T@5+b9d~Zh=
B9)AN2K	|UUTC߂ I(UؗtZ)oѲ4ɘ!ZGP493|	\_Zߺb`_Q[|p[Kp&W_rh??&FZ[zݱF>h[YZҵ-T&LM*eO;z.%6MQh²=L4O<62{Zѭ%8[du:y--r-%ueؽ=?v/c'lNe[~)cj|>븽5{OE@!Gl9Kk7Dv_?Lx8CA|< :OEDɩeiDfd)xEbHXZlsW,yeD#obf!GЗhL2"K/A^˦@[<,.<ǭXwctoU4OdJ^(D0c'JhmG*5(P(2ae5e:gԚaAvhVs#nʿzRW_b{ԮO$E|6;<7&7[&ʼNb*4$3BGQ◆)aO;39|5,YL5DZ0g B^o^s`opAP1F02I_nBQzx"&hڞ2iXPT4ޗ
JY<l2&aIWd[h*}5]^g m=jB1њ*]F9"`f@&lXu7<yNSDXin4Mxoo_߲=feKW'^\8pOGw0v8[Pݵ[4֭	x~miɊܠZuǤ*'m"UQmjEuE,ǨZH{kX3RWGc)t ^UPKU)9r͈UݠCoJj]YT<yTu3^uVh/Jl+zAJ*3g׫/zEU/|EէnJO22?GWyJWq2>߳hJ_KG9{9)7F/?skk1-cX5ktY}&RՅ7KB|j2y-é]@F;vZ,-em
n"A9èE2A  M p\)3l&
iv[JTHKwL;27HRʟfyFbV?Űx%+gGIEO zO11*:<%7KF%&ZlMwg9L	M"|izW[M!Krj|ݟyF?UrʹnJ5Q`͞BchH¯э"L#,./(dyc0ҚEtC;E~hlfJ:*ԫd8-~"}dæ`tA@[/֧nl|ng'urѾǾu`w쇾ŏ&=mnܺ]Έo3ևO$2haTn\m )sCd?Xk,؂VP&q?WӻnэKsdQ_x,8x\c~]/W5g.*]a?s0Q<G1$q>S*>Jo0昊V9YAu<gN5'mds>2"YQDo^O
\ ^0C,F'vOαĸq㞺&8W|*9|RE*7m'NI૯蛆9|SiH9J*-ILGGVp+*xԆjҴ-FRz5VrRVAӀ,0Ku9#lLhosU |_(_kmk?W)5~hp̗{|엳8YJ<aܦe1B3D8	 !֚6
<)isW=K}jtNF}FWލf5P}qU3@-0]liIm1y4trYc |ȎJQ]\Ԡ-K[KbɗuL0kQ3[iMԀ^(˛2 6W>oNݳ\9挵`TqWZ3!Tas3&/UilcHpڰ"/;LO^O	QO=eTh0o9v}F毂`gdW~Zh~ ۠iS*B3C[49ÿ{S}mf]Lq!mȺeŴccԐbwOjӰxxJS^yD"ρmk c)
nPB$q	F(J#qVi{o&=Z݌*@HW#΃Ai'&eadc3ٽ	D<:tE@hV-.2,E&#GV%SL5g':Ù'6YFGGq'N_{&wOo=5䓁Vu]BgEZ*#Zh:DRar
UZDp9Z'@	T5Q.	jvJ!mNzd@wr(+RY\Z-( 6,LmgUL=*3,o|A;ew|MlmO77~(h*{=X,Ւς Y狤l:pSm$3^Rd6(+=!ZC<U=(]MUki̫xmiYdaudexZOL *dE~O~/N5NP$cPCX$,HƞkiAZAByn`1,?fVsSzϠ)ecߝs~1QkeW^QNg=\_nA}}zd\Yzu,;G6?߯3}K%&;?dӊKJWn(7+#t֢)CWr{w?zV{w=.N{Y9O/(H\jLB՛H/\VUɶqeO!k|Vdo4'ۧ>#:-1In6p!4(G2uԔ:>4nhyY`?OhMp(A&:蚤|(Rm| h+1tu8WHg09ظ&&VSYe7RՍF^HD青*.l3ڼf*JYiSuXQbsH+vܟG'f,ia	_}A<C?Oֈ, ZVO_~ϲfe>}~3>t4z}0'6=Fhz_[B!=lkSKR`C"2vn
gw&VMWnL^P++T%D[iMe%fA7dg\=1nqt9y&>BO&+0-ipm'Zw/rq枆7*=l0CMm]g-nģO/4pжiGPDNLvP+d7tca]cleJZV<bb`< 9\
'OTyv3I"U8Ҍa[';Ο1>DNQSs6E,r;snr3Mb(d(?m115`_!g>}Z9ufP5bqCEm_e[(<P,DR-mW6SCQQ,2BJ{Ji1{Lq3S\zP_}*d/295P-+bR AtΪo;̂6˙8}D(C  xc`d```93Oux~ py֝?`vUF&( Oxc`d``?W H^?`
x "S xmMhSAO7JDD FD<)PDBbȦ4.҅,$4BƝR"BykIK|7?wι3'O z/#Oqd2I."摒2ZMRt:qa<.%71r$	2D.|7cE<̣̌m:([EDv	m'jmc[&q8vL?u17ݤ<<,sG QS50bfPs#Kq<C1&y$&?$_Gٌk&Ms!(ܿo{=!9U,Y,ϙO#wfqy/U}U|mȩlWߒH2~NaԾ"u}>}NkԡYE=	=uPkMPDEg2-yi+uX1UE7EP3mrT?D +*|#ɑe:F1}!wؖw1A
Qm#oXɣDu]w']bxc``Ax01c>E%e6g
5{غ۱a1S3s	W\L\5.xxx\{ρ/92OJ	󄺄.s	[g	/!IODGd(619"q?i$$R$Ht!O*Mjt%WzeK4\ȳ 7&Ql^()W(/R>ҡrOUOEIMIDm5uu'{44iӲњFGN{zjzyz{M;w^3r2cecefi?fmL,,},X6^`#dakbgaNn}5;8k9q[$8;?\jNU_yxt\'<y      T            _    xZKs#W	,(*EʙddbX)<6%ǒ3Ive;%ŏ`/`͒ǆ-ι/u1R)R.ɷ-Կ}uR?著wԛ@ձz.7#[iGNIU?siO^SowH-}uw dzwSPo,~VH	jA=56&*9#LT_=UUWN-YJ"SHL	i]b>f/'zڎUՇWZR"}Vi%vFPtWӚfF)QcoiEYz)<]s]XwIOL='XA1pF5o1fW9$}D:쪭)ωu*P`
U6(ͨ琞gԞ{x@?OŶڣ1( 1.FZv;5iX{FL*+ٯ
I6>;8'DN>kZhhTmA[$عPY	R7<`ѝPfDv&?EQtBW=ksh3>~B5#o`Ӕ&)z7!WwSaۦUzh'`КεU܊S\fԟs:쌢{ZrfG$xk1!i\Hۀ.ڞb3ļǘѸj%`sr=}Y
Jfȥ1p3AX	S1#w!~m;Z]Ɖ|ebA^jH{+ޯAZN:ܜlc\$]lC.#Oi1}z!3*bYjǶgJ3F:#zZ`P D4g	$+'Uo) dql12D0#Fvn{mйL3hNԷ}͏]V~.P2慚#+J]X{
rgǰI@sY	;Nbf725M-WĎ9fPtQTO5Fy5k+HE\vb>VzOv\8tL9I}Zȼz론1c$1<i].a8*O+4G;	͹nj`ベd,ÍA@NDX8|uíNta[ؾy{k^V2[X7>-YIdG
	lU\0cEȗGء/Y!n'3Efq1 ūrXz%Qi=aaV&svw"5zKX	{aو<..lSa.Guapv<:*cϾvknjh2n+qI]99}'h ?ųLxI=Er[UVcUN2uFg!8pnۅQ!)͝82!#w7Gr:ewdiWlw^R\<]ɷk+Bdm.5hasv2h:edrJy[y\D5h}4#N, \.GPFbb
v&rz>s Nw{-W<|=gʆS q}&&Rk^YqpKN՟3?\6j\AwlYӂ_Q{RZLAvs3$9>E\n3bdԌ6=#ɦl|W 	qJ?3oJ+T~!#[+߬٦P).Fm{:ۣٚle\3mY,{tbbf"ǠgzVbIwHVFY} k~='A}qN)ܽ8ŜI]3jo@rhM_oek'^ʋ5!GHσS̓<lg}Sjw^Ì]ʸ܆nyWRh(n7ߓmsSN,؜gֿB;o^&i4Sr\Uok9wytv)IeaO.ͽek@G;řSQ>e!,%Nz'4{\=DxO#Xs<Bq	~ʼ)</iՐSP412$hS )nZ>0;wX_<~oYm28R	B?ǌW\yf^W/z1zhu٥*X2O-6o-"4 h.䝦c,_te~nlPx)mPb]W^͚oxE]}BTb95 J~wR05>qStxh5ڂ-Qy	cVh[ggGFb-Y3o{ڡ!-y;B=V)^Nեe5rQD}S6d")GgQa  xmGLTaK콼wgｋ*647^Qj-xP>o嗙L&CmG- )6"QqMNb#I"RI#2"r#
iG{:БNt]FwzГ^}1pQbJ(~g `K9Tb2ag#h0qgd0iLg3l0yTld7G68v޳}-1'[ 'O~sS<P#jC'<S/y{y+^B,b1usH&B,eß^JYVsôu+߹Yq8I$II4Iɔ,<pKe'%ܒ\cK}u͍~°p9BM*,=R^CneYFxP+KYt+%R}K]ugm
TW5aZM[e(ЖVMuGX/M@  xuc/}ش#7Dzo	2"e7iD0l`VpUus+6䰺B9l vz]72E88&Dm(  Wu+  *  *                    LP                       .u                   F o n t A w e s o m e    R e g u l a r   $ V e r s i o n   4 . 6 . 3   2 0 1 6   & F o n t A w e s o m e   R e g u l a r     BSGP                )) YD
MF x>ޝ Ə)[1ɵH-A)Fٜ2i)ߺU'&a;cnb$':Ϯ+zAP{u_\;ռtr[\C0X'+=p'-XZHZ$Ͼ.5Π*V\2lWLV=ۼ/5x_rSTN,Kg	 Ė^PIttfD^XƟsGLwx(~^+HK,99XqsZ0I>TcAu1KJj T'JT`,
Z@<B   
(
8cT)b7gSAB aԻS|]̜ͺ5Rʌq+'Xj-S&(@VΆeIZ5 PP:mCz:aM$:SXpPt1)6)TqCZboTH*Ir	pT"x5/',,%KT
E)ǷJ2$Ge?ڽfE3䙶PF%|UaN>eT 7ß3@BPNb^󌫍7$hXF2@cj08E:ᾜ,޻\<Z [Ƥ+8;'y5xĭتN;\oai<<<h
«"N啂"m8A+7B[// .9[q{!zL?3e3oP)1rzFRM49"7nl8>AUwڀ>pcݴuNIzQ)#B=n5-B]sJGЄaM]2ܣI3MX #RZWeHi89dgQk_^	8\v~*	R`Zd'ji'N6F%
9^$c+1E,@pF~Wm	㞞\}H`]`Hb4Q탂0֯.m1׵Twe4SQtt:2c8$BŻC&;VYm#`pP8X9QEO ͎X{l+9<MH%*-hXtB"'E]ta#(I@Sq08fXN4J<d4L{OAH<y0		*eQϙ7 Mc~0hi!%MhB7* LD0nX10dfH'r20WX"a77W$y2Uq.ThB&!1f6*TKK> /0`&F%A!׻[g	,]Xx=a/(,L[Mb/	YafNhCYlS6՗+HN
D0C\R|nK[(	53Iqњ,$6ђhsT17YؑcR9VôVfdvgg1+RB-Jţ
=5,HOH)t'͠u/p.ipP&I""Q%:HD
* | |w"6oSԳfHǢFv hV4ZsKLӓ1^W~-`^84|$O*O2H30"wC(ȓ`q$ӎȑV2*0)( ޔ54 @(|R{wUOHA$qIS4Lf'qNf~-@3@c״ׯ/̯#x^!'K!=_rOHB]Eue/$#=ttt1P ʄSTG^ I+Iel D(YleȎDTz+h GR/!#"f朱9UQ^؜GsL憚T|W'#+$nX}Mff0434cvG|
+Su-kRG	>}lRڑ˪_d΂(#3E~Vm6U,Em#B%˗~Lk=r-S;̡T|ٻN1)1fok+`.?zP dѪ 96M!H46T	+u_]&1l=u9~̞;NUsI*'h_ܲ˚Fx*#іG[Y^8]9Gم>l`Y#2H#& (g3L7ZQP'9d2vJ&'	n.(c@، ULd$|pg"KK#u@})\RYŨCP;U;	 >ʱA#3l06AKFV"tZW<]ҶР(upg4{: |'	y_YSQGJcZ<U).TǑbH9UdF? ~vd.jqu.>H8֪0rU9KG!I2;,-_4 ˣ%0rbdԒ%LvYJ-7t2頶?]1QYi8:92͍fL96t GzpZnZUC	-xcI]-})y~\C[b\.i{aC(ڞȞYտ&Pp82e6 5udlxi(.|0q&i3vLr;Ji8'hh|C-@ǁ@x^%;wJvw5!&}?]RnHS:OjeAΐ~4*)QpDW\}21똈
f^4 l,1Wȕ V,&
*z	[<jF(ť2u5?LUdz5I?DGCoHS¥LӋDcLs$ENz/_.'lEH<w%܁~g2x.,SG# SQt$B2IU}  ?Rk	#FoZ2
J$%6Vޞ4"PĄz	3ԟJ:ؼM\mM|+xovɬ7J%ڴcPD!Lr5q659޶W+|hBn{`((?KUEo eY3׾)TdYmcN@jy^$ȸgaD"`A	fʁ,⢌$~eTsЉ_6ji:93{dX4GBLpvy@3F_fAƻ9C\}5%#0Q@(6񕌷pZ*0L9b4siBW$xV]YefVƪũTC_U} 8|'O)<pa	%ivgutd˫dK6Pp5A'$[BTA> B'مqa 
|I}$TBh.B
2C#PKJG*iA1A'*Dw(:F ߄D
]sɡRDUvNY%ET#$Ul'#}cd}7j+pbĳbhw{>j6S(y\B^(hnF+4n3GzI̦BVBM.Eǩ>"EP6pg[L2	V ]'V!h[o3ԥOΥվ\٣lf%BA:@\QOQ}X-q"-
}	cKQ\4OPlFP=*'	^(퇓[ZILSy6+-^ sI "
d,Q@[~p\qBq@f 3qzu8& EHxf0c]a`l؟de()MC`b	ssp(ots_뷐m^˲ 
Hh$#?"t-$R.G@yҚO6bn܏vkZ&h(A0L@İ.4FDsЩ3v"PLf7Lbr:4ks8nMhYl9*(A@x	"6 Ɯk'	q@'A?'f2lUv%P. \KFBH>Q eDdk.a*osTv:MJJ#+1Z~M6FQ0T6'nɎlr9"2 &cVL1
1IxSCL "+&:=SӾ] 1E9@y2[HC4YMlV~<$?%P2Hf(S]*4c2!d	nxQǟDGR_J&8ז"C(mc!Z,70cL)h`f&uA$[|/MJ`u7zQڌ#5r&p 1d=	׭נ
kGaKl[c#m
:xn$0pk@ĄWa7
)Ro`sM(9!sC9^7FO w(*Q{Y&B	i	HӺ.$B&\{TIŢnOFG~ŠSN 3ߟ#'Hgί- H[;&_̙B
H>㌂! ȺV+P^7жƂ;Bs}bQVfvr
&E	1 N1Cϫh. HDqW +7C.9 mU^!2E^%s~as.i0:=\9:(ʛ A4'Υ﹯"T'N)9I|t0y8N7a[x,#4 7J !A{P5  :j*ouSS;DrP$cj͂R!k2!MR&yXpVB2y
0QQl&.[rc(<Abǅ]b}S(1|1(~0xjŐ:ʙ8A<ꫤcLE,l᫥43%t&td2mqhoʹ]]i	'EB%7YS-Z!tāYQ /M Ŗ}_f;9l;P+)}!~9X.jC)|N](bf6䅸D,EJ]>
{l[Qǜ'Cg9hyz)$n!)=TwI ͳBtU0pvP'S9)HKl03R%`[e#[u`|6Q-Ҧ{n(^\6k9ϙ-u#TWY?j9UjVlN 5ZKS(}głKVײgT-j9sCuJ,1
m|+ԇ+_^ǉx.iӕ? _6)"> z|5mBHPM4^bN6*8@[EE?Pm
H"L/-B
,e!`vWg}Y2R 
9iT@8FyLݵ9N_)Y" a1CrTbH4=t7SvYl~n85`ˑ3B'XD#+NG`N%Xp$@ngLDaW:\,YAeܫ
"i	_lb 	JۤW
HA)'su-0ӘTB?.NDʹUAЎT$eڐPA#I{φVCPg@%F"B.O}FEoP&sra D>`hS(x2[ön%ҫXqpȫ8b:dXS芳&s\%z`R JJ@RFŘut.x.NGV!A^UO# 9J:}qxu .*ЧS͞L(P3~HE9&+G:'^n*sghAtl^c
6\;l@L!kPE2J4 $No)NǕ8ҮƖkDUfF*ixA>DwQ+t0<̒RFR^ziƕa2;4# GcTa i8(kJ(=?s-Z@O,+OCr$#Gm5+2z !tDشדc]z |U AAX|. c@?6X	/Vd^fRɂ𔩔`?2SCY~"<L{poB#W`=8eC N-v~ up7O%j㓙t+p֏<+V@G'9S>R]fD0.Ԥ/Ja\ώvȊ <Xii +_jS(<ᤰP0{qf"&6
=y*9c?E]G$J-ӫb#B'#U7֙־pfaW~}^kNb&^B|{Ǻؒ\hsj84Eޱ7	uHHɱb_FID`ؠf۵hҽ,(צcTf0,-;gcfl$#Fb;W! PI><8`NCZԅ%'JXP$$3^A+Bu="鎼mݳ_&OH6d`X>M|VCU"IB-]v:FaL4!&Z.zy#Jʺl"%PcAπO1\ЁC@4`:Nhpw0	S`%#;,-`F':EYʠvfCrxP2,#~wȱtɖ#h1"3:]=ɍr'ACQ!ذg e(rՇcF1mqm
@2TsjT%c	So/11*Hwj(%PG}EVz4A@ϻ!i1\OpyDB<bcZ`0<`/B1*ӘLf&39A	@tPpt_t:P$TODv>h^;(ң|Prs:3JL"R*sΐ6dqb,D$%uAJJ#3N3;%^h4~hN+U"X
AU Tը1{gPH$N
Muv}G&'E'jT_
a۠A8	zC*R B )9>f{ 88ŢuhU4\DPc@|4>6Z'u?+h@WK$7aKК^֮cBG%P`H/5,=aōTDj3
J6,܅<nvvg; xN!IqnsdD.bP>瑀8`"qCP3-rCܓğ>ïtC䃯/txr/a-Aլ &J42nTFe>:(=7{=
z89$=!"XA[[][zꈢLҚR*T=FS=4Y%ԍxPs>zc#Ob'Ej='WnPHk"yP8*_Q1[lAdÎԱ%D1zN8$x
׺ Y!"%Y3"DY=m04A(cd@cnEgպT6P
Dq3yE1pԞ:9F&l93mldD$!/BVoSgPף;~b<UIȵ-M덓I>{zJDvDI|X5q*NA7XdME0Z+jCS&^U9);c]	:aB He>IT{~Qf	33$Q3MI	;`G!쥄˼pySʑy@A|	aA:R낖T"	C*$oUAY'X\hk~ !kbT6!\|Ui4jqig [a1KP\ȹ/jV)Vle3Ruq@Q77QBJD3	wDd,-ƥACo%2Xfߖct3WfbUǣ~?!jdzm3E%"fεs*-*AhTr);bj* ҼC$|ºM*>(ŉ}V`*; ݞy=^$W䫒Gw)3Ed sgE3t7L%4\z\&P~$Ryo._/,tb{^\oЮ	 wg	mF&?(voA5D0Qx᯲yXZ4p/_Ɩ DJKڃ0gfߤr0T7#~*@`{߻Yo*ChDuY^Vlf@5vl5-*gkcF2I	k%Lw-9z0r D:P%Q5hQi$oU^ 3!KX	EY
8ZDZ*Kѿ",#o 63@
GrR,mV!A[$S#ҕ5Dލ6QB"R_*=J*c}@MgRߜPE)2UeE0N%1KJIl^1rDN@JwiTK5>*0mHqQQ_ƀ|Pl	W?q1o\#'M"ck/.:ԙ!IXs듄 >)q)]HDJii񌅦j3:\͏ׇF~nOE>jtRNu'4lA1A@3-6q;ORfBʞHrOB
b	4C A-zKh$́I5Jk2}Vq
N_21sHY)xSJ>$H}3Dd+R}?ƏkClX!ƒ&Rh	kǈ8v"jSb#ƹhm$HMG-pxT
NBb]ޤ=UL/5DD{!,bēذBWfbtD5-HFkakaኅ!2h*BbbT#Gn+Qϋݙ0כwq)2p$\jDe%	Z.qjܘPBўq7&PB4x7!Ą!?0n]֦#((2OU,jB+s	 00l<^P(e0;'LYX"ЦȤPQJG )Pa Bk
ӋLc0]FZ\$obTNOsnK(FdS4ksޔ|/WdkRkQfB9/_L (G/vqrt6/*_C/|H=R	fq"'6;UϣNO/cx8?1<PUz%OJo 6Jg;NKڗS?5IO%{XQ]Cp;u( Mǃ*aA젔~,"wY}(ˇqBKnhb{gpM1oYU9%:И#j`bBR^5smMΛn ՏM͎F@E6,
DMU#B)	iR1&ȽHG3FP8"tRm[cɺےQc:H5) ۜ-ST0hDdAn~Zu"d&wcuÎoB޸#e^)#+j$k;D0O&Axv/pp*% 	sH	R{Gʩ L֠D};2U9d۔9˾q0Gc  ~]^N7}6awIuP &h?,pP$*@c&"WTi3yMy)oGDh SJ u%U<DQf6Y)xg
[ d|7)b7فcWY6Hp3#ieۉ_? z%W7c^}7t}1ˉF{2Wd^C>ciZ0޹]wTڔxfVB4Mc] os_!rYFQ@0T!@%>;n}
m_OF+HG&&G+I+F}U><L|3|7IKR)!/<?t1@T+M{!Mpx2Tݴ@`+e)!I`]ժ M+[`\E݁s9I6P]m#[Ir$0m[B9 \3K}e8òc@5j6&օxQ Twt_`N>mdVwe6L>tA7Pӗ@2 @<ot=exU0f_bms&o'l	a"!7Rڇ~*jkgBњt}SB\kt4DIH؊{xS$#Zo[(w
) 4w
0S!9+z\.T5m
K5z_jsppgdFIQY~>]!lxL٣76(K?B-Bh\Zq?Ѭ }:F8E|mL<>i,)H +z*B|"Ma篖ʅ$Xg\	@a\rD$aRXֺe*
rthbb?ZB;ͅu
PM$b
M67zA +wS4Л;WOHZ f4J`3}e&UAG"is QDx'A
¬ r*|ÄKa)-?fOY-$:N=pvcy@[BEq9͘z {L	 .!G<TnsҸIT)55G _D2.Ϸ[PS
G
79,	5LrèM1\14Q|:Ŭ媝8O*bV@@d6vXCE:b W&ї{SDm<IvR`rxV%:YlǦR'?
]UO_ 1dpd@A\"57q$?PA0{xC/V:ՀK4eâ.d6h[EWXhYu#!eı?"Bh;9
-kH=0\MUD
Uj$p;shZK2,Վ c($d+x,1gGޙXb{An0&sa_Ī,n%i&H\Lm3M&e"hUB f`,dE
'HfŕξgK-x)JEx4 Gx
~Z4fj:$E"%:RҔ7
ZRRkH$]Y$$4{~):kJrKjgj`J,Aד{4zB=h]}S`}blgA  i"&ۻ9y(EZIvAPoQwuH+FJ`%'.
:vDX^zg崱r-}A2d(i/!Ahl/k=, /hޣS/ n DN9  D1eqfiqoXE<^˛1(olϤ8BHq !ꨨǵKlS'dHBcy̜C}@Si\$3,7 H _7='JC=n.52CMRn gas(p谗vx},Ш:U{no"wFPGZP}NJSz ޅ	ưEeՂB fщ^N ݙ S	HU(wf9'㺏(
n$յ֖/g:5&#GזE!qps=b4isrqzFpRcA{a	}z~]Ї^KdqA+$ KL~~答~D5LF|geAU*["	꘢L| ^2L}7TsBnCz1в"(9.Lt$&2R;@S$eLpԕLLё5EI
jع0b$N]qiC^J3W$Y!q 3zܮ#d:CgRG*Wgs +fYy?.nQl:棖~٠"ԙE XXV--^s\(Z0~#[mpKKxY~t}xzuky(·$\rǖFuƌ=],a`&/ZECNP20B\J}VK5&uzaII=>H=O2 YRdYXLj[r,\]kuDӡNy{xuQ*~ r'EEe5 6""`g&83f-dg?(9d^ UBV
ћP~3
i>5IOa'̈́j/b%(í1	<rdl
ʀC\a8;< Bq<!rtJ6vj&|XN.fi,Vp]}6va}Pm1Ʈn缙udg|1(+Ag`
oׁf;Յ+ƍPhdfB=[7p,í?N>
M@UYl<0ZQxU
qG.OuQӀ>=lL~2 uցChb..vD
gkdD#^.ǻaHE0Q:[2W-E}m4@+D RC/0?DFpk~sLQ~Ӽ6p>Hи{=Z圖VU%b.+yګ8^&z
`E3 f\]#l{憵̭znT07avȶ&,[M  2FWHdX*AYxwb%vŇǅ޼08^N:'1={;8,U3+ Qq*~(*|u@7J^H
u,]z&vՁ6A4R#6{zUYb]3;gJyyk1%<Xm!nQB/UQpY
h4c=mq
{8r=p,{ZS;sk}HvO;(S<?a\¯)f
P{ZF#gԝb{$1# A@zE|H{]ݹ&(,ZDHL܋L(Lq¾ZrT|'$9NgccCĈb9pQRDm8V9
	:DodcrFL:u`7(k'9nqa[)·'P%(lSe*R1K+t!YJ,5XIWw&>$'z'ވqBeTuN FF4.~rml]poߤ  I?h?&(?wmb6HG+ghP$akY$RS[m3AcK$fnwK5IM<{I H%g%Q?d{o6X_R{!ùy$W
 my7Ā=}Ho[&jye9-&#K3bF ض5:2:>0KK`+I
Ŵ"0T!\+֎l`xt0vU}`Ew `CBD=k).0m,<I7r"|)DF_YeRmgزOsP$T8LyXy[ק4Kqa- ADfe^K`7Jl|	 N^jsUFgG[$ܣpzR}w%åm%T B C|^6^l%f6u];h`"zX<)85	,-Uog
|駒[.NvRP!@)eÌs:*Dn@TCͮ]^2ZA-7?<I`򘐳%,PMza8Ln<UK}QqɨC_~G>1.A\r@-=EBI@ZBYprN<V(y,N"^[\z/[Tlb dItDDr`T	rb١=
;,+P68ǅ/	6)D\-B+$pwQ:":ò0 .MZXΏ m
#h:رlPɉ|b
t+g88鞿@rcSSF(A<=HFdBl+p8jDS!$M(26.5	y0ECl`t@ޯ?Sٰ"ɹ+.KƷd1x~KK`n1Rc"Yr#Y<Լ8Sr<|mDqٿ> G0j5{8%l@IC9YB7!eY*7d].p*fW=;q`a##FF$,44F%5:QT`ZVCas
2øà}:t w%;f#e 1I7si7.l5^M_ϻ,Da_}~?F08\d@"NdXgO,7_bGa _@jbqBHA|J({N//^ozc	2<q4+X$<I_G{F9#rP]Ah6$a*P?i:IDzd-zP6[Yо1~&[$4!|Vշ@ORڡaLUhlRϫ!ғ
`ҝOf% SG|$^Oƹmέ#4\JF{g7g)^'/Pfr(!p5:: ~bO*NjR,IG4S9I%<8~n,v#8IB
0O4࠘MajRG߰6|IĪӂ60f׽Rgeh='PT$s>c5znTKu12,-<)#nTT'<Uk,bZy|*(?&Y ցvUhT@1S0҂׷<
/VWV47[J$Rmgw__ciqOH5	gHPsŴ{Q X&zɯ(岅݇bZ%
k5!lN\DJDA(=oeAIPU舋	R\iQ`=dA[dga)10{4z|!EXa&C,p>F` v6L*Q"@4HLxIg͈I7	>QdTQRפt94F/AzaH'aL{i*L2vx-\ϲ > 7D\w(ӊz)\Iok	pՄ ^ Fba)!Fjŀ3饋&6,aݮ)27MFWHK/MTq(_Q
,tEQ^[rN2p}yh8cnp@pXWu;fƏ~=  `8$:^K|vBc'aGy\h.>v)*)p;6 @"~s<7!r<\-<=oZQк REgt88I RYHHFO{3[l>Hh8"xM#9M4a`Cu9K1Q&i1US"NPbO<,݆@LdV l$t$[QpJeխ0!	#ݻcox@5ݖb̓&S, SԦ]
!=B8'w	@oe~&Gғ	W.nxӑ_paEW2P,iD  J"7OӬIKFzT]dY

Jd<OKմ;8~b!(A|&y`YQ?.CqGQN zԅשIr@H\nfapEyLʦBL#FɈSi~=Ǫ"/a F9^@rfvΦ6a	HHmolc$Ǧ5$ hؽN
h=Nq
"fvsXY䰜Fh
:8j=0yS7ef5c+Oa
'p|]͛1{[4wQVK0LO|(]Vv)\ƁeN7p2-2yx	=},yL:Cf"F@VmjLRDV( -"&,R&7>/?ӘMt, rLnp0.fC`Ey?̵O7	e!Pr(tr38 04kQO')-<ө ̶,:٬d-W4P#]D ?Np	,	;=!]%)^-'W'`95+V{_*hY]TBD^L@%ڭJբ	iS:x,_4.'|R&]7Q*݈z,iZipm>h6>)4PD;T'f3 ӄh.H'˺~ц.
@-)o4"ā%gUv+Lgɮ?ϱpsSjqZr}A?5(>N0"z{$u~,sȫfyL p2J,FݦiCW(%gfˋ*EB+E'v}JtdF`G4l	>域*#1ΎUT@+C^A.w@Qҥ.r.C }@Q>!KvY~;jqޗӜ@F\a:,dma1
I:vD45D"el*׻ XT	WtV_t̪ydB
Ϝ˥0ˌ+
d8gQR򗒡"}Uݮ%MD!rV鸼G(XwR&$5 Zz6-!haV~|)5&6Ev`mgKxbAᶬ;}5NYk 02@K)Taiv}/f5uŕ"}`X00x[hZ+&hHQ#KBDI7k@yN/xKWS; .qSax.gu-pu~ӡVu$ԃAs"47 (-LO@`.yn<5/5#ڃgRe";iJuZ"_ c ݷO+RaQ`.YdN}/J$ua1H{AܲYj_w1Bmց~VhKfR9A;B!Cg3TC` D.'$	᯸B>E:GBudT@eSh@"հR+ߨ2#!99KOD<R0Gؚɀ1!PgF5PGhN.lK0鐂&A-oJ-'Vc8{>4>S
	nBq",(c,@T-SΪ=u)g4hYdfS@J Y0	V1(]=B:zdaK% c1wyD2z1h,7Ͼ>S C?(Gf,c4ydӰEA,g8[֌qXwv)/O1=ۜ0kkr3N[WzuIbT91XIO>WM=eMchZ炘gtƛ/V" H:)[eaRmp|?V*KMeMaLzP)QsL04?Z-"{F3\+ʂx>5Z5l:%qt.U!hYuYEZ|L͊@sgک5;$MtN&((մ)[$U5çB{H3(Iyc:euyT`Tqc?a)ⒿO$3`D>{^Gx.:0:]4-C,KmۊH4Bi*)9d`)jo9?8 s.A)FCBQ	A(fpHHE8*%AH6u!`@m._dh;2})Yh*#t̬N\!ѿ|-[J`bsV]C@0#?bD<'<!rNif

{\
)eT**E>xV?z+
 `' @6(Szw4k^(J41-iֹG.z۰Jr
Nm1 2_m 9hrev6#"rrǫ1!aE.AtUZ΀}>*bS^I&Ł/uJl}ɝ2"-A9
@EKÇm<F$@ӪA0Y"HLJN, #00QK8a)ת3֌ֱ}UT/JuMelT VAp"`AV,6 lݔ9xK"	'@D%ka&Mk,DC;")(:\Pyr-t0R|b6()&.T Bn0\apXt$!w7!DK@daNZ	#Ov$`"F*.[!5'm> DнX;6,E>3xmyAxk@
!(W7Od,F|pze|},M=Ms	ŉd Iv"L@ lmFqpX1DPUK}@vS[0\2B0&K~QE81qBNrGAIS(^q:]jY+'7oo'hYd:
埁oA
FpQ;LnHe8-6l@&yBf.tgaΓr[-{QD7W^F. )|=^A'@
hQbyrNIg60m_ϔs|WvCBʘ.$Cwz".<2u8˜˽\<݃u$_Ki$+ߡ&=鍇ϖKCmA!ap1[bxqޞO/U
r
l!^4!?21>	<R(`{@JDJM9%FSVɚLy&g	N놖f8P s$S#2OƲ: J
l08S\y~?KO{ ]ES%m-$R"a,Q΄$,43K])|!Ziif9Dd,ó/v=ˈ@:[i3<lm#Þ[y	{lW2N22J7Z`aapu/	SIlX..ņѬK{_=SD׎jaPg6?N K,*8DBnw w~)|!ݰhb$=}R:߳uTfX0:U=u i;5q2FR8|9"Hm&30QqTǒx-\ʪ灠ȈEsvnb= hUfp('e͌II906unP/ۢ@ϻiC=Gw\EE+7Cr.zՖhe\H
2S
IdS \0AĖ4n .ZS]rq#KiS'$rQs	d|/ +V~}>פA<o{&2zvnݞ:S%M|p B;^"fK.N/(zNdsPl.s%)W&W6Z 
.R >+Wkz i{mZ eKvCEm{aL |3ί';6a8 	>G>{	@LR8p(=y B|-ftJ)^_V`t(D<UeAW[	"R)-,Ⅳ-Va/}as4,ci^dHkn`44\}@l߸c% b1xI!.KhjoԢ:.e1j2W檴ZTeQ%&
X.(4DcZ\~Ʉ]Mh3註p\llUEo+~|6ӕ~\|2sBr{v'3%ʱ(&< 	=V`) ҒpcA>ŀYR>-	MQ2\.ݴn9[Dr0*Nm%|Xg7!KLᭀD5.뻀#Ybt6dD_µj'7/?|N+mȖk7{i<9ucg,ol'ha/JA¢))* r-z,ƫZ\]x+xjA{ܳD̅rK>:f#@ܕR]c[<gq@2hnPWLvSdC|+W ZjSs!3M-<?zd+kgKOkKIFuI|\g˴ &e B~LwƘhBuL `8ܡCu,-
@$yC;&@0@ĕbll,IX"MDt._\=/v/#{+dむdbi*$]0弝<F?f)tTfFܝu9HfJIe4fL z>؜}X ]2t< (;idKL90N<
&>d[1PeY"2H<5$$62b-eIx{N~gA nCOmi#	].q9X>[r?0-G:Ԗ2pD<t0`.8)5d~)x`(f!k
QeZmp7?/ `Fg΋뚸&zvY.i]?qaeAӘ1buEaE`/fa+J+y!N eтa^ەڕ6d==LҤÐ `_ԑRH:PQ2DZ.j,	Ёb0@cx/fhj逬[Ew2Ir/&+ʅ885?UzhݭBt(I2'f;B(PBe!\
LAQ s߼+gٮ"5"*?M0I9b{0<H㻦]ukX-˄>u-L@,CWNg4|	ղDu)%:0bZf-4rfL )ş``enO&gDs/4P$V/D`<@ēK$1᥊\cF|/B9 aWNp-(1h$,>!AƾQ<ſack5BvLZ{.sHtkߒh$ٓ#mz-4dapV3`53BAw+*j-/V*]n$0'*8hkhH8VbE s/61)>[%ēVȄkShP-_m/t'\/Rs֎ECàD.'F ,*?;芃7f%H'WBH9eHߴYn iGhpl $UqQbt$Cwuf(mBKnyDi۹aXHs#mk9Nעy::O(T#k/X3Z;63ȯw0N^dH	@	H=*2$sU*xI>OMb+#V
ȒuZ'2IImE!Ĵt% be	,?G"I>@^5ueRp<! Geh"YvKa	e&ܘ H4T`7eC͡L4A Xםax}Nk?E6:$?!0he72ʰ7ʾc6[$x|PIb5mz"C2}1-?Q`́6GurGgU
˚*Vg
7ґ:2M.sa(`Q~=BHY;$%RYLC-G;$lD$,&lZrI.Ui=x u)4@(63-%0v7e\<,A .!%Y6>yR7Gupx#!:RS@[Sxɥ_j֙yHgHH.X6j k(ef@ ML
d`k4 րS'$6k:x7禰tjqj&%U!+kn.O$鏩^l-<ߛFu0nu`	Dqh[yyn:[75SăI`ez`(Xg!'Xf;&WʓL\.6`0@1t_A8k/xB&`d>/q"I-,էDrh Xg`7GRWck17.SWsHH5jqbfS&&[fkNjl&64JdŜ|->t7ݤ\%hZM?񾍉qeG`)ntp|DO0ǟg29\4X^ YBM^c4 #J1EJ?=Nt eφo8AU85IȰ@$ i^Y` O!D1#Si2B6۾kL3]u:c>D\2:Z-IVTh6oR#|JX9ms- l~g߄8h΄pqf 4]BX1&f$_14nQQ->myQrdEج*G\݌h7oBͽ'GM'뤴#×+tphe9(`QVJ%	Ճ"%ԨtP.NI#WEX&rAH3fd\	!+FIm.PsY1, b[ϵ/KJC`DrP1Apj{2)hf=hCNqkdĀIn\4TjJUh1[{v<g _V|߾iMx3M B߯ M)H SH8N`ib?!
o1,I;eQim$p4!nzQ;T6cs`2'::D0QR+Ʉ'22g]W$|'x5b_oHA5dqvE ̼dB 1 UZe>iu]$E\ji8>33[g>K%YʽaPZ4
@qE9>P.$io,vqhvd 
a}ڤk5vzPmBw*S¤~p§^e/H2iqLa&-(+Vӷ[г7;e!l&=)pS
H̢4+aHH`˄(`	5,/(Lxi`AvЊv&CH
Y'ܫKRI
!L$A֭ 4ǱeX |F}#,2&
L"ШHv*YE$S7C	S9L?,4M/,,!:	|/hKP!wQP[0X,~BMc4_Z+ѽ3QhPe'D@p-W, L;3>nW Q~Q*OAJܕ٪,B4ֲ-qMo7jndrIIy;I:U}tqKxqZJ WCYq(nR= B1h7BV㡶RĔVEfv&3|B_>OI&ZJe>@s5#s6>!ա=b>//|TFTK+'ڳ&Wd!
.۸B&jNAoLoC]L<C_)S6s5T$>{j1kZJy{@0 fLH1ޘӄduKD&DK4:ȆUxxefFq
U>kQwV%Y0t '=g#	g1ɺ*@ԡޘ,r8s<Q =0.K#݈3܍Hx
CϑX,yL}h?xz|3!5Glb8/OA{|@ׅ,L1]p//D=|Hb`-ubzK}WsHm-<ĥgn*/\}EWأN1ɺw`%!w[\"rpmH{x&$g⁛mkIer$-$?)021=X )$Yxe8)QZ%gi2~ @uu*y7
q:P0[^S-BVIhdq'X)n@Gu\"n}hF(T
JvZf YL<@o%9%4 +?z[\fsHmՓGoL\ʳ^ZD"H1N!AI- >-,^9*ي@hCCwId'2R NOџ`T*x2=i4'&Za,;D,5ֳDz|^<rT"--*`F*6u*#ύsp.Dv\aRq 0}9/5EP/\@N"zB?LU%R;,0_HMm|z "w!;$294HGHS3ă)Wohe D YkXb %֣0=XKk:*[N/L?|J;9!*,bf.xx(cEBZYk2PNhexfgX?O&5;b:3@fp+t%Y_AxƀQ[Y`BפQ0n>ZR nnum2[saC\6la<6Sh+a6hƁ/-UA`$X9.X%{Y//;`c	CcH֨-9u
ndp8B<_Va"ta&7s;/A(g',8J^|NʲOP|ؚ Us}-%{1h0$Ab^{D-Ms͍mCN|3B`3r"c0$tp,9b2%f|ܬ|bG 
*ZIӊQ{1"格/RԉuR#)H #yLBQXB'`]Iy-#-Q="lI 9o9M%Z0c^/삭rd/YC+>u.Mnό_	z=J)3q&FOZ';"T bGĎoi<p6)dK)֍)/טJMQ֞ ?H*xynp͊*ЅeĊ Cd+<{Wl
(	<'1h*uWL	UM,`gBD4ҩJdA(zDɬşœ?rtM;Ihtcv2Y.(\u2ΰ~w$"}/Br+fP@M=暙˙Ǘ.+l<;>!#QO2H,UoNH"qJQQyɿwv"*5W8UՒ"ifISM $܍u'M_FEkSA"dYwPt qaT34£#L6%
GQ%5R]*iDصH;H<]x\]A c3Q <\y(RW4s|Ʀ̋.*~x ZS{#8<LQX#hVbR>ߕ)GL02*HqXjWbyX`3$dyP@6iR8Ϻ rsXFA@ԒQDnom*S,;i^ͯU7߼Y*t~K':sK3UF5Ak_,9;:X#۴`:uw"JK
0KȪLyzN$`R×O>d8h荿cvGJzٷ΄HTԑ䍥'q=݄e|%<v]!6CY"l0,!)zJx=pjPf@k*?T5͈YƔgs\nT Uo+Y4aX#$P+ 	ߎG¹c8̴k*U09@
tQ543s3zȶڇlɍ|[zpذ̶%cb/=Hm,vRȡRKtvB+X<hB!(]){#.޸@F-tqZ9[UY`2i= L Ll	8d/MW7ty t,	:I<Vs=!#Xȡ'b1^H 4Ax 3Zs,|X^pi(>ĦG<COu["W:%S%n( AՊ]i+ATWR)3S..	:@'m
Atj]]r׾ܯ\pvkKB6|o9_a&YA/M>"WٯydYV@6Dz$ZTDG~GYs:oǇ#3bSaPAq"`/Ni\ѻ=H2B']PP)N;Y~2Uɜ"4h
)lϜdSLiJҟ !(8փk׭F]xGCcg{4\)mK!=>Ӧ!87(j录-8|IƊHD1qσ{1I2쐰jWܪ6#0+M..%:~S_a K.h[Bd@c
ZĒ B@<+.uԯtRlElQ׏<F.[m8`9fCɂ@7ԲTcq1t	=XU$Գ0rгN@À0I_q3sW^M:YMB;cÃ^+1`3bD͞1a@MiCGʣ"D0^p_AC3齃9Q\]@vW<|Ԁ0̬zԌPCb`fH6ۘO0_-iȹvV]cv0/Dw__?1L{Vz*+S]ĸހ	S'?>HIeR霣Bh(ee\_"0\Bˡ4X8$5v  y >됤x0" 0WoHxRoEj;OR_)v
͘I,čpLҷldME߈OI2j*KG_|ԗX`ԕЈ1>4䫀McN3'`.]XL (Y ZP8.jfsAWGbsd&,Y2<by[I?9P]<|2j
VȦIoeCAhd ЪNX>C?BQ/ѹ_ beJ"8C Z<6߉g8G^b84D1?$
@ZiyXB9pft.1cˊ,9St^>J0b$0y+2W0bi"Cqr%DaLoR[q+q¡р.jQZԙ큦n4O%
bn		
I*B8#ip+ n=
 Ux%ʧQ?3GaC ($Ciu/Y$y -(^HpL}K0:@%am/>X0c5fMߎ2γe."d0d00BI4CQ*%A
}ZK8G3+PgQp<5<o0LhE7:u$^x=`#?J ߆y?
8ٚ_i(&52_WӺ?J9=$e!|.LkYoe~ S5=-JQɘUf/V[^NnںVeS2>:&A\#U3qΙ:ciLAI)Y={)T1o)c"H8:*kU@j_#lGcJ<FpIZV$%oucbx*F zp1K"U-F\0a`KR6&P.eWd%@̔/itz&/3r'Kk1Gzs,݋ePr-qve2UU+NW	Ns;\'Rq-XSSId+'4uSV.OQM4+J丘mBiՕsJߗc'ﮜiF uoafޕVa*2$)ܲoa|@@`wzN
u.\Qy::w,<DRRy2Dn5cE
0AxEdX0#u]
t^G:KCxXg0LWтaqf~`ɸ{pR['X/)m 	S?
6p"3c-}2j~Rп+5*1gx{ÖGA\A=s~{ ,՚EPrD3猒ps:"īmeDQі[dSHٺ>`5e6a
)폑P \#w_Nbp~X>+oy0@|4<4w:#/mIh؄]A@Jh K9H8yNYr')+qV&9i8XONF@@x2K߆"t0LWFiv)G"V$;RnA&%QM#Ng+Aft	4!c%J(;7Eu*21QϷ]PY|DbD0Ů=&P-?(o(xJ2.!@I	b]4V#~j֔J*I-Sr4-ݯJ-%ylG6%ζb.Ŝyʵ:Xk?>!1P
V+C kO73	k裉=?T`&Oڲ}ipWy:\87T̬=<RvH@NZ;9ҠZyLX0>m2$T5]֭LіT)OHX*XR,35زUv1:9gޗii|k#Vsф08{H i2p[h֦@8Tčb'[@& BnyY.Pt/N	WlG	dƶ-,OTWvS)uZݕ}<U4A f! 12U`\GD,t8w$+"J^Yk;XZń|}8AGa̶!#̕>Szm3%ubtg!hSf\6mP(Hh̿3BtS\a`}\RbCڮ)?yײ$cܟtCFb}HJ2M+%1 y.ִ>D
X-)AGd"p.ZWXwr:V(V]ynKʕ/¼QEYj$A5סA_ZQE)i0m1զze+#p:|AUD3)N1ώ	MTLR%6E쇶wISX=׊Vd*R2	#Ǒ%[?5 ,:Gd*ɜA1	@ZmaDrֻM(yp_$]\=zlr&<ӑ/J0鮸jv|\0}1df' *ۑ/8D䍅I;Y;2܂bOP~pqVK!T`"grz|W'&	Lh%8f=nsAնoBBLt/3Fбvܷk9nV$ݗλpQIe]@BwnUkD{i2Sa@Qm1.b;ۚFV0wʉYd[-l9fr;#2aMJIHGf,::h*~uJOqwbe'tJ~%#?609``nñ{cxoI	6ۉ̱C6xkq*spR[p6Q_mZ9g#?T96#5B0QGaZT3t|t$ao 1FI!
Cܹq!~/2h7LcQw-l&H XTK)b06VcE{gxHk˰A N!x _\PcX8u,}i!hIF*<b %Ģb>0#j!@d۔eIAm \=YS6qC#0;ށl`D>AWž]DèK(AIH OB' d)2
\
ߥNӷ/ĔV@ڭ6fǒ+0I	#v2j#	lQ2	_zA{5& 8}$g.5T+s}b gTH Hٶ'`$ DSF129+D<ǁp!pUZ8sտ֧=B˅0<ka͎*Xe4[QBŒ7h2B G4qJ*
;ܞ@/6B|z:ʌpLdmUc85DDU6 Aq0iIAkw*Ӄug3(	
G(?DJlsjJ
+v߷T`iH8+;ÑH͚:䆀kRm[9"pyݻMgƓr\L,݆Eo{&2Xaf$-H~bFNp[0Wv	cO}6w ]Nl<UstI-,ܡ%rîM%t3	IA|@Q9Q%#ݤ@pd
a71ˌG-Aqd@ =1KoŲw0c/YYԯށ,P:(Tbi5b7A1Y0OA-k1Cuu*WCzI [t5@E8W-Mjc q֭&r`d͕x8Ԙ +K`4, rEB'$LbL((,2hT<Q Cc,pEz*kFN5՟N-3$P
©?x95PZ=6[V5Ps ($Z*!\e)WA8Ɂr3U:}C|ވrJ^hbQ?Dep\qaEλl5K)uh<k!X"Eпp=;H+
 R(p`pee;XxF}K$H5y۪-̍أkt>C7JЇHMÑ%;X!a 4uBx$\
 9cZ_9e]_-AM?DrvS#tñ`4O8X@w)_sŤemb^VÚ]l`,D.ci%oբh4Jy;s'`o!dNDW#ίR7:Ղca4sESލLj$BewrcY3A$Š-tS/. ,^>>Ё`HelhFϰWdy,eͨ'Y'C Q@oA!X$~#S{0Lm|SQ(kv B1³L/swePjs45XcF)2ìȘDr/{Z:ʰB"Pd>y!	kaIǝs:_h̃/<:ok8o 3TaŁH5l8]ƙD-og~K5	AYHF^
z<{	Ns9@}E?`d"P8ЦARP˕>m"9BJ1	g]X[8"yZ4`G݇aisi
1NO8h5[N94Hr
Ց(7yD<ٴʕjUyG]V)P$"bVWA0T  )*Xk=')Ma|.jzG,ޓ:T8 YZ"?Y$'!"W2vMlumne" KI 3qSOoENB=v4z7u0A9sX%4<d^/LΠ!n>*n*al"
m,P3؇S6Hd0id^AVĔԦ?[ynH7x'=ݦ9h7WE׌	O%qSe"1+ &<qsms7Hj
`F 9B'&(5(ɕD7>Mph$_0!co|=R[188uO5߿`gUkOa^[F蹻h`I9y0f
qk>yq.Hh4#d95DiNwgnD(mt
H= ;sOYh6Y&;!	
sKouڵukZGRLFdO]?РN;ӛ"HbJ<a)4MMq,i  4}0V<  Jkb""k֌.H%.⨳'ᥜyM5ѫ8En?8a!%DD^Zge^9gVtHD
|dRĊg1+mrneATMD;ej]y>FVV+) h(6R8#%_gŞna{hߡ'n=cp=EğA%YBmg4P{z2;}/c	.`!Yg`g/g	fX*b{*i=?o&'I>]}NfT9aA"~A$nLMN!O|>DhO<{^6N0c.Dk&#ͣN=d_xd/7gl҄HG>([mbJMT0͕(_d9@2CVrm%Fмzr9^=8b] $`Ffde@甜"ZzwL٥>()u j(cƷ6a4McsTXej'b^+CGj.BZqePtڻcicZG C i7'?Cq㔐}l2edĻ1 ?(/QT:%?Y{U% :>tW	U`,/TDp$􆠖` \MB,;m=Ei^AС+7(	 rWh[ߋ<&mE:u$K}9%ԧlF,3zElİ\|C0R$-S\U#tSx,dQ@M `L\G"a6S8Nml}RM?z<&$|kC[-N,ғjXY0I;,UU7_`Hc٣1Ȳ"&Ç	KKGH'NUS02!3*ₚInDAG@f*U`H3;c@dSփGeSlA]n3L	Pkczr(pKN]$}V?T>#fq`sUE[Wؒb`k|[׾)J#Tň~&m@XܩB. uLPXn99n"D%xz<i$[Q"ZxcMג|5~~qoIݹiC !^!q;~186bC]=ƙVL6EqH]EE45@tH	e	JUB6"0D^K`Q0Ӄ0BL9K8l{q9FZwrZpv}]صh){0k/X9(%ҝS2jVʺ#͠"$aUjq(RR*(bh5p@Vf=!r߰N(InƼJ#qa94*HS@,Y 5˾X>ۼIx>1KsJċ|Xr$+86eDD˽dϹB8V6P!OAFŧ,
ݸWeq)RFj7gn!`0g۫[9Nsw0;%y0 bAe`1M(
0LSW+ ]0܂qk#)k)i|ҥrgNW?e1]VX]`kȶ)
Z#n >A<a./HqΣgުI~ڧrO*dHFT$m_;ӊzfaYɸֿR<R|R#&FT,-BH
s1I}pxGnMz+7_n	Hur;gMgadC|+\dg#'ZWw.twh_ ;1CY7dejUVt3+VC=\Ad9];I㑭2jMan]t\vjiVk]局<#ů5q_bPMY, -m#ۥ$P}}hZ$Mrbkt8XIS}$t1V֤[HL&~eVfBYXÅ+((B~,ޙ1
kQ&(1? ix\gPIFƑ{p"$b!uxu/ Oj^x,b9;QB@@a mȑfD'P< ba"^k?``,?#F_9/뾄4Uܘ0P &o|Ыxnqp4PI,U,pSӐQ^}|~_wኩ8dDJQnl,X8
gxs>cD`oJ	+{	IA,SD3)-w1c	 $ډj:#ݓ)l;E) :;#3.qP?s7:#`(90̎oybݬ~e[3ѩ;M,	%$juyFMl(LFföw|rg5÷+tTh%k32	ĩbC_vR09GFly9^̵0h*0r "ck)$O0#\sjƅ>aFD5׽r6j# ZSCr!;U?
D F	nS^4+H
QtL!@(Q4
@&%k7ZrOv%m5:Q>yE
_L]NvF퀴(u,_TC@A~!Ňvv73,~(T؆B@1=suULBb_O1TAVzpp+#/Sё?yAȼ$À*\~\/QtG1A	oi]vYm̏<yl8\a
upޑF eU*3>u g@'5Ђ|
gs> J]QEh٭utV"4)/fd Buu[1v" u"@2>$$` iOA"0B`HF*ԜYһ5yzoŝo[YѢt03c]XC1;Lm}Pu[~5Q'K*X=[;-;leT@"V0J14 bfYR0jf-+ڷ9i`
4T*"S2hSq4^`e,ǫQ/f7V z"$t,)k6'E{hصh>"'8|Rm|(fX9;2j`	%0Fƣs&2^	I<*%6c#U1\@["'HlpֵSXm%Z\	g+lNE0Ѩ(H84jz}@S&x|JY!×wJWWޘwW	w^sbgcJ!>DFd.6`'e#uSapA-餱W2rC&n
Mdm5L(~xptV)r,^G |+u~\ˣo3N V׳GG؀Atth/.!6Y&ͷ_0ğBдYr&6Y9N"2#&ќP!av'q-6Vtj qsÃ\e?8#KrLbXP,Ezt]IS`jK/S#<4Qg̕F)EooQ9}\F	XF\ ԏox4G&-(Wb'ӰmŨiiM? % x	dt.DYa'w=AfK̊Fˌsih4%odǝ|ӻ
n	8yizm.O-6Lef.n7g 6o{>$Q_IBI\L:O/J<Y̚`cr '􎅜+#p4uQ"d\xn&7wb؀f[')_V[tǐf)FϊPcbY*
ډWv<瑥 W
GMaN=	v!=k+ɴZгF.|Ew!x*]E1?P[О>s5.cLU5 59>2l?V<V`	
 %z,<tPdC
j'_K3p]?}L"RyݨzELG5/
,dJqáOw7#G4	IpTo[)L\۝r\+q@1R+B3a+,0ŘJDdyA䢟
`7𦐣ՎFFOI`lZ{xip2a14 K
&tǚExI8p:Bns_؝a&tx6<VlTT0t IZl*^˳6"|COΫR|Qdٷ^_MSᖈ8!S0K]KR*o<>.H*Y놦_k3+׋/m++,(ʯ+cVx^WHic]<J&W#4Q'NpJX'DCtR(LiHww%pCN @V[*P&TTZq|
CqCFՀLbq"Jh/)e)'YFTƧ)$4oTE]sh܁!A#=I4A.e12fJF4²G敎N[:ܠGS'Ĕ4RDzk<a&D[_(g~ >Ȑ
tGԱ[R=K!gw3-c3dʅJvQck˞E]R 8G}3haBC_;5q4W\!!92χk.ے&VWVA&`Jk[-_OiH]vI{NV,<k`֘y	6E~tpvcM(KrD偄)T߂TEb3E.$XOEq~IG
Vy@=BjdT9 .ov;c'+s6nl"TWr.2yLǱ<	+^GxVp LewGZuEO<s!=Hv&M9u>:GX喔K׼PNӊX1Kd[\v@G,a(-9[p%r|u3Y*3#$nZViϬd(MJ*"MTϟݧ֛ ¯B	ז	`%7EE R0d2AT 6ޢ}$gu</M4Ə}Bx*ۮQ{LϷii:J3QȚMƃ4/1bF?(^0sy
Y}Me߫s&A+&'@.O#cC	&]z`:"&.%Y=ّ	zŹ01KppVgkS6Ί &6+bIUc
.Mp#2!y꼣3ݷ軕DS( cט,TrxC>uГO208ЉeW}J0lkǲuv&
	I_j[aqMq264.iS@K^޿s܌҇ETn$5zF\4g˕JTG>૆7Ȓ#WVl+qd4ɇڊp^ʓlkw(qu9VS<2/R=z8f9(>a钖</Im|*XR8M_}>IL ]P11ͣ3S6׭7D"Ok!!&fV&ʚz.$[Hrw!o$qFqy!ڨ&xĖ4!\\NU%(]ϝd.`|	"7§fi,ݱFMh$Iry"3 G-'h,2mu n1LX@=AS2a1phJsLnc*,H׆x/Ԛ
iɩ86&X!hiC \ 	l޷Π`P&y $K=I(esy6z)Y5s\i'\(Tr!ݗ1v<"q
d2ҩAsTpxd!^tUHcF T7fa[UR8Zo$]iB_b]F0z̻m}Ml`h(RBzAJ\Tdzujk]b5n/D}=_*ldIl-|6H 5'-Q'wȢN#Lo`yA0^ HP>)hj_{;r["P
b+[/`ee1Y{RnFReApg/V PڤibIBmI8	XHN?A	q>
GHlCil09%dP}
hҟ2}{oSBMҬ,e$2t>$(ܓyY9$۾$.!Ys-	otH\IX4u"r?^	DDK,Rp [D֘Qf%)!9!y,y(")c< ?PmJPd&^"SVUĲs#nd2шiq
Y  9"#{La8è=DزՀfE!^>g*vr`a n/g4##B;BE?7:ş(|pMyD'Qm$FO
!+8SM8E鄯*fЭ`2-ea&綨>!*ELZ@qMvK`nWm,* m&j}	A7*	PP LB Wqx[`h0i|#kϛlg<D^Ud섭6%=.ch4asVbUi'x!)!lߓY_T^,OhBsv+β3T5i{5(n$hk+AI.'jE|2gK9.Z8=˸ՒԊ!Q (4(S:aɄ!~rM[s=ARN(W2!-,"+"3tCig.ro7`PJC%@:nW+,6m@k Pl,~} 'H(ᘱh KLUKh}(8iO!bAAʈ:mSMDgULG0%	tJ8Whb$jt`{OCͼ,l<f&o[bw1e~BJ"q"tHj>"w<d+Eh %<Ë	5\F{A8h/j]^V%⪎t'qd5F|j"]"d5<+ Q
0 a%  Fp98,7X]ݘY⼞CGvmW뿝C'2'u}/V,JUߝ9I.ԓz"pT_INY$ށMafr<<X1giĚ咽WZibu2S.=-XA498U^GE;IݘqP5c=H	EeZ(j477	|Ts;yƒI˼֞a$s7u<h!rz3?dl$NA(t	+P!Osp$Ia
(B J2Z.tCDM(@p"ʏ6-Zd	H&,eĤ$&IL`P-qHȠj}io0TXwkUREYӊR@8bJ;>Z#lDIPވdKzaAQ0=۹swT?[^ r~g뻬zyBV]`?
FE1(JOнp'0UI&k7(+G5<x;P h`5=Z W('xq!.;Q^wp[S$Р|M
ҴΠaŒ#9ɣ-#xS̕١]XOl6.	)w|Vr0ɒ;1*	-ka0*xav1!#DҊw{u;#y60y!x%DIUKMAqI5D3&gTpz1(eu)=	P{w|?Qɬأ\1ˑ戉:4 `H(+nDZ/֦A5Ml&`:0Q~#KCLGZ- !V={q\S4QAIF*܌C#.K1+zRrԸ{Uܺ(UgR`$PsUzJ3PUYt6Pn=ERyѠCO'iNqD6-m2{/z,P;qǀLT;ʮ
e&]+TVM}NH9׉9KBk
JII', 3o|]iua^u$ FLe9hnpN0H7?9Xp3uf=\7)5x);/-!W@xL-^CЭC}P~m9=A$e+@]]*h)3a!F+	ߡ|U5oҍWdkPC:%	76%ǲo 8tPO>f26#8$,: p͓~:3>s+@VY
#fNVltxdU}1B B["1ym7|TX"l<taxbWwL(FPhW=5H`0t1f!q`m^
nK*= EhַM6qc鎹M]ʰsu*HЄ ?Kd5鲩1^YKƆ A#z
Գ1m(C)`[{嵓e?̩b2:yf%ۯkD:&Ɩ}b9 R˨*OOp2\ &dRT*HCƋ^2	4-NHp0$	&!΀&d*KlΏѾ؂e*ZSn'iH*1NNa]Ra4APڳ E̞GLlLR@X	b+CꮎI*5vqǍC}
9;r4px@sgjv !&h1C
]:,SLp6>0F{Nm0ăTQ{\.
	?]q/,X]rq6H/TaCvө2~{u'5c
	epR"J8kYWv)m)lz'.uK2Rv$4uwZQg5JR09fz}5<qgq,suwgww_9P\_pA4`sôi#EGm;c~mkFDM75V3$֧Fx,o@k]E>k!=c(ډP{8J&FC>Q}=|\y@ar?r>,c@6	@
\R|'Ռؑf:rzi)+u6)
4ru6sۑ
VHdVwA!FN$UD:F!9) Uy	bc?]4$ܝF|<K6&L[@r9  "oIV+j*H[UVRBt0$퀩ZaoEǡ23n6T28=/H(0r	KhWH;8Ň3"jH߃A4s	u81/ߙ2ÃGCQux&?/ ;4B'ؐ%MD=~59(2Na 3H}eBܪ`YJc1@*
([K(*:8	ݜuگk9C^NLvA)9MHghk|Ǡ-'yK'-|s\D_V3a	7cǧH,]! RS *"Z:'PQ@蒓 iz&/5iqE^o!ɯM>ϣt$Xd8xH1+*fSoSD{iBV*Rdb
7+%ȅ{(ZىH+|Ί
g\[>d=mTYP(&JyJI'-R=ͷ@gDf3x:wo'3*ayn{wC#G.ekEⶫPp8QW꺢we]EQ"s?ބv?,KGny>S`(1co;~QjEm]\KЋ06hᣌUST|rSMFQfh:| D&AzS&Q)U,LX^t
?R.V OZjNEXVl6((H
"kJq 0/yEU<q=(OԨ8'H"Rz)VӘ-oBN*Ǝ񦾊&J1t=R5RtРCDE(6L?ȘfPy#,0_9çsc8ɡ ˱yu3(thl,Zi(^VjzxRrer^Ç Pz O7 p,i ƢDG>i.펀YȤJ ?O	^#VEZ¥[ҌTbr\ؓĎVb:Pca	<HN'/1#l]=P >Jd/p/ x$v*9mZD3,!H;)+ᦍ[TK=bОRcu(HN6$࢒Lp*L*Q ypj ӹ`НuTj1gķ`st#?Ba$'6 Dk4g6Ct#rvITtHXŅyܱzТh^(rSTXº8W}xTvG
3̺x$h](F| d0D`	a
Psq5T6 C~l_	{ʗ[Vo+*:IRf;e@KLKSS)Pܑnxː ,vwSWY&'i/ꬨYvFQkL"EE҉}\$-;ڪ.rKjK$@5ʰ!	1JL؄攒#q|oÛ;;Ht0V-GyddHm~||j#(3 FQoowd`Yܡ\Jc5w	Mi8 %:Ɉ)nO_c򁅜NUaې-X6JQ/+Ϳ3,
y. C<A6-=ǖ2xG~)F ȟZ6A!Ft'< h7j]b}ā8<x&#)0&F<k?]bb=$+Xn!J e>$0_hd'db޼}t9R>fA{$.|NӴiJ1bI݉S7ѝP-~:N"$*fg~ip	&n*KN勛!<(ae@`S#gh}-{1%KIry0-ޣ~H1]K8	B%?'#FqQ &xA\;plL؂,wPd%,h1~P?zA`Â]}~إ╵%sgŁ`Hx,s%'Ji"6%${lv<v]twE]7p4BS!LmNs8T,)`yu6>i(F0G |!]U}KRٵ~D}NċMH=I}Hֈ)D`]XeaCQJ{Zb){J3K9Q )7=`h~I	|pT˹nuk	
rDe
UU|5fzQm}Mm_a!Y*;UF&CjYYn
iH;oK'<tD0)P]aAW
g/f!J&^YhRAz	di^dc:$谌Gc! H<!g,߰ A$pSwF+EFqaDI>;O[舑 Ї՗D
1$[1.X"
 DHQΰ9z"ZB<B.EOp8t4"
WHq[+o%)D"|bg.<h=[e*ɤS0W-ʈqk͈'h;2p70j|㞸ą`]J]YIQc34 siȌ9l%8NR2$M;05$r"e~9p:f-EG֏S߯϶b1s7zS*uHn+N͹i}d[Ex,5vC%֠hWC%a+\%Xa4dU|,ovtWF6ω|̉w!(,V?P#Ֆ--c<4!*ǃU0T(>[}K.bW!__=lMki[łL3z27kLz@ćjՐ"LY3Y jY~?1 M3}X%6+3h8`.hY&@&hеHЈ#j(0( 6|H;:'-y_d쁧H3C՘%qFG݅oy2Ê}٩!M@,J5}CK+}
2 Uk%ѕ:Ił26WmTgu4YdD'QT!pEqpl0&zN[|Z*z~WOTR4?"xig_5(5BU\!@N镅j֢Va<5Xa9 "#A^MB5h`X*񟺷ҥK<Jc=KM3!\gtt׌2	asCH?LPF)~ol֫..7DM1eA3d%~K6+l51Őϛ%]#Cn(Q
"mL!bAD\$߶RE!W qi< )yb-41`fZ[t&Z2~	wXJjt@5((ejWbR/i{/xN3׫1`:THMvlLK$OZb?CC0(zJaj1I01tf^{="
ZDP]`1F^X2&\J[0
7%Mŗ[bJ0c#@`W c_U8(PulCAŽ{;!})V3*$LS^aq	ȇ}MzK4ja>5@;L#E2,	EY[IMTzKWPwأG/^/%PUkEPhR2ꯛehnES)>g~rKOF-s>'1
vQVMPJ[}4t\ˊMqXO~u!_.+I ]/"sHN%JAtHMY7`IwCʏ||v,=+wIlcslhaln	AuQAL7+qnE;H`jK`{@fκ>[qW,Wm`ӜdnZz*+: 66cxnEh@|ݰ݁ƥqFȥƳzGxG1ty
HPT#Q~?o$-Fu/9_@$ic-// wcS9#ٵ1! 
R6aӍºhR xP=ETK[+einθ>6ahĿA+-*۽i࿟˨?-Za8]nTgv3.\CCҗ̓D79 cx`[uKd|S-jQk|EM0A۪Cïq=Teiǁ=YENPp`	XB)`4N;pL,"XwuHfcU
qFf6#Џu(7)u5{GV'ذ+pET<c4TΣE>n)
`O"E^](GY-{AM&zp3$Kd4sY0^ 3	-en .طM|n,
x!:-#1z"],mWu/J(;B?ݩL+EzZ2 JFKh85iD_qrsQ#,J''#3G('&,UY]<0Ic?S`nDx1E<%Ǟ>2<{,*36@\WsDNʒ DԑYe>y.n[Z*#̟bXaM55
j*BV(NglUX41ZrB\b9i:.lFޣ&*XhB }ۀbk"}`6C^P	*b8'sfF"Bz6IHu_¨\wLS?78xe"fOuC¸MyO0 UL0SoؤH%6 g7>absn'.B^9=:c-؎qD&@piܐ@mX*'ˆT6Up[.$qfOb8GB}I%<K x!T:{dxE(ȯŀqwQ"I ʆuHvFYšFZKE:odio$<UC?@T`Y)$z1y "<sv%D}]j'!Vw<b"Ԣ+ܝ+jK+
y_>Vgjsa[hDĒ UH+IhÜ+6!R0cNQ"/6
*-BlשH-T\GKĜCny!	d`TwAČI o:@cvrcQqE]$ N0 0pCA:7A+E,ǿT=XX>N恂*~I(n }I0g4"7/.$;vMD4W@RvGh*T"8S詽^rp[jS`lafIlUL(	-сc9U	ݔh#C(رdT((rh6yICAE-{T~z[,sP% 4z&|b31Ӻlc%BAx)B+7/T	4t6,._كeзL<2p	g0E/vSpd?!Prtk1K`aeZdc*$zD
7iVorM2XIn,ʳ(,9 |ڭFnS(f6U" Ӕ$3fYg8ZGE1Y4#@@<4FJ<|Pg-ź1EXwH!xĊbiY¨% r[fEp&:Wۭ~0Ϥu?O-r#=P$[i2g$i.>I]~P/CHhIu%j,rA4w4"M]}}DT~łE25|"yp&łEa`7ΉHw >Wͽ}>Yt|QH䀇fMb
hh12v	]FNC6;tОCX;)ㅫ^e5,6 "KKן(|hS=E,,6(9_V0)uy/pp)5tЗ&c T9Wa!lcfz %1鑁K+2SYwFaW٫
Xc?Q1z|."a.dU};FO#x3E+47j"!n0JF=Y[d
qx|7M=-p.;L=۶CO-dva7.p!~dvϭV2fIu-N@HP6K݅7$@#0q@ۏA5DN@[_q %&#_
baŝ(aŔ2lyo	7)eD[[,
͛K: 
)!`F-g$ݗ!/d@wFQf	<btJgMUzJIVD	3%j{2uZַ(RFŻ%,J(qD|㉴E+ve.96		LnR6JM?L/_ʄhsq}X-d&hg) -w88NQ/v|JLkiiTگGg.4+$_sb6J~)\pRYAY4p5BRK0;іB,)txv1o$2U b]3+r߷uٛIA{1Xvq$ʸ2xp%Fx|Pka FG"D~hU]!rV醗"7s4c_ηq>Dy q")X̴RT<xzBe %2Dl1A(F8>'Q",n,ۤ=Y@ӁM1.{FRfO
:fxΔϯ2Ol.˛L!^J+JSp$IAFčfuUĽ]QG˻cb#%oeZG8%r_/9]&@+	8͛|ZsNdhTn`D#$IB$s`u;5bò6[QP"H@Ð6U$ ;D OV.%sJg<YKW܈##}g.XkLz t"cA;#&8*p`r^n},9Z*>=9bXÊQǖB
p<X%::kgi
oH^{"q<_!NuH9`x
G& )JKu'Χ-.6FRjCՊ\f0;`2ٗ&g6mԉ'@T tYbVu۲[<$'1&OKb=T'@G8KH^=]"g12-W<>%rhM\R'd(+HJe6АBy> 3d]|#hbw/S!zSSLfe8
7wF URs:7kq52e b{:Ԝ2]0-n a5\"je~}!JOA՟x>X.?Uh	Lun'M(rbn'8ݷqrJۉ<Wl<1A< O~OK+e_M$vN]3k	Omt:X0bM<pڢ.bT@K>i@%@ KF@c@` 
R=;4(weƞr,i+..:0]bA|/K mYh&\gڻw/ @ΡGgmYMDNR^F)\=I)@aٹڕ@bPtm3R1>(w	m8dI/:vyG6{-7@_"ZՖJ*\K'8Ws瓒ovyK9ܿ0,gpuż!R+`qj=x͐X16OD7CHPq?̽]4=Q(Rns֣J}2Ja$F9Y#l\5dUw!&f`9ʈ\3w9#l}XÛ<zNq%nL:Bs?^SrC9[ u\Oc~&IE\^BrP;@4o?$XAc-C䫲2o|hjT5xȬ׍]f4chX)ige@whZ}+?8"v<v!]϶ p'YePuC	12[$aTD̂U;
6d2"Hb'Zb|LX-rigb(iINtп8>՞	F[[w3neՏm֐?+hwG:lNAd|LL.;%묐ȪxGה?mRMX,tw'0˨|9Rq2kI+u*QyMa$ r>0q_ LAv(BQ0A<cz^LZ"=0NBQVȤZhݦ۪x8)-ؚmZ4 ;4TEj[ծizR<Wo`7fqM{Lu
2cO1PEʆ}s,SFh{X%jݘ4HwnBago Ù ݨtS3G9҄s9DB X("qL/ĚZ-hڏ<g zS"Ŀ$.dxtzKBh9sSAv`E	n36t,*]dCs58l+X͞'1+߯vXvRP"&+~ "rKǆg2oeGS%T#AlIEȣ
CY!4<zB(%CY>*#@라2JI{0$c	!h_
E":	zH;{O9·ӓlU`s(2a]Eou Ǡ1* J4y@1AEUcQeW:vJXS0v9Z9`8^ll'*aE!,Zl-SlC	6Ǥh
iXES
17[v}%UQXbȅYH4Q_Hǈ\ƣ֡h_JWDK[6meUXi+A<~	E{1?`̔h!E+yCB
wbJeh'~}`H4KcQDXǚ{=hzOj6E\
h.f A*χgɒ_	2D VXQ3h4ro"]ՠCݚ
;Y;_at
q+
 l҂LPƋ6J*6ENJ`hpvxV~1b_02uvi"d#.4r#wx̬	{j\^8z2yFZP:Vd,X? \s]{UՉ谽o+XŁ?;!Ӹ=P}-/@JZ
4+2N#Gzsx4fF#4	$x?Az iף$U UϪ6,";n@pT#|T(QhPuqP@3[2i&|	e
|$V"MYZ1d&n&˷B	3.Jf㢹IUK,] T}gꭂ ;HN	IcqD{ cJϫ?_KHVJ@:J|JbɑHQfPRbS<HS0_^%|;GMUЅ"`yA=B;
`]P*YHŬdF-MRvpx0YSeX hxeg:ZDL
kQXy+u -[Lk=bĸMKz'TH:Tb^J @u3K>m* 0V3y΂B#j#|C.&BֆW/OV5vE0r-e=ֶcmmz^2\Ox؟yv
KaCN^>tu	()kLb9>3Iz==*c9L`IPh҃$@#ɈڭV;prƹ[=\Qb;XSb'_:7fR/@UpWN=:ɏOALN!iY(p`?G0	!SR)"BQXcRϲ_! @k@L0F4e۫_U̠*^R]_h+${sϋWgO2+ {ZFD*m},|mN{.a(>qn9iӷFŚeNUs aHx
y-Lf<= -ZG'TւgZ19YtPIO!OyN\NpgӉh	e-j|a2,ܰz}|J77c
BɢռzؽWJJrz͘
Q(>w5S|%m9(R1$1(
iٝmwyQUTw&ZHH=~`edٙr Jl9a3XҦC"&CJN"KXpP\GI0d 6/4e]
/{_om@̜(GTe;C\<GJ.R؛тg/
i-j}$Q<Pp]TS
ca=&ҷaZULMs09Fv8Qt@K&Tg!܀1
Y30D``";	:h'Em$1"!6[.ZU]e|1E#CÔj:؋1϶;e3ĭ]F,NvLiC!<HI^Ũr	#4X2Ѭ_Y֟N?e,*\qs$N%:.#<9fd,Ou:fxa&A)OZ|-^6@@ج4 "q<r`C5*܏<BlGJ!-H6^a^YH p*}ߏ7  7o7E}{cf鱘yD vt$37ǽS:1&ZD$L
j4IiAjpn.6+@].,y(S3.f@_ӡ]̳M,∥'υBg0r7)uqlA|1$(C `bs>rX{lv.7Ƿ*!F;ч+ϾEA(,ʄXZb-d*4l7l@*G!@QԜr#A5L"[Kʹ'6~q,<@ |W#(V:vZB<'ARb|A+׫s^v',W	D8L௭5Ê*1&Z#EnrnFPR"}daiH=6_O(1N͡xEDwVt']BHQRfZ3G>$X8cm \6e9@8_Q\3icftD+>T2GNgq#[@lP]h񂁰IČ<ò}.H.NQwe.o=4(X5=.bGP42k	BR6hJJS{Z4&5*p0SgӀz6
bxO:99}VÙrvdq/:;",|4aYWn^e _äPguoNx3r"ǽDoL
-I0:0MEe C(ѻbBahQR~T@[ef6
cB+Bm=ڟ;ɭ@%!8X4-C[< g26<Y[ u< ؁9(h9A@cnb"ruʉhU]S=	xxߦ/*(0BoFԔ2@9E6.4?q`rr@I>Iq]~:39Țc`ҭV{78;_\_9Eg >`9=|`U,ՏoBkg$"sO̗ӓ+vY/OK7	pAŁeԪQqU`rf*a{*^S,VKApLzSe5R~B`IQ,bbDv2eƔՕA.:_iv`(͠u<(FrS8RMlalBɚG,D]Xw
Rw
ᦈsM/eOK݉ԣۼ/y-g
b@5 'HW4d% ?tMl,,W2ńʕB4R^v12l$	eR҇`CZ4`a4 6ƃc&:l'犦"S+զK[
Y - $/eYS[Wm{Ғy}K1sMt	;z"@oA<#V>RXSF/<>
-IDJqJ|bz@@AM%*B)]޾AG('bP#$0D00Eռ+*GZxb*M"$z
쵵kl0:@L8DkH@Sĸ>ɐlg)W7FTN/٪SÄ۠m5WHYyni|ŲTT. "n0%Qx
$:yRpQgmS9um9+{kXl׌Äg	W0l6y(RdZ	AmHk6/=|*_5`gP/C?h|=0sRXTğ6$!:P"U[p1;	ݝfZ=d 77޸v)3 .cvO$tcpTA؁57M; Zba7+{BG9}0m'bu5v)Q5O2&p%xPهsZ
:>i+iȵ0Ѱ)m9p$
qL1@VclTR9OBz2hWAMTP+̾Y0;XqH#GwOݔ[KEBX[8GJz3@n"z&0$0X9Ua'vHɇ_enK)حtƇzԚT/E6kvk"aQne o[ RM}g0w&0$)qC2AǜԖ`{\gGDZI^[""S]ڰ)Bxm0E1M-B	D _[/+fK/8i7!0T
SMcɇATAd+#UZaɚg{P~`]p$2h<6ɡ1Ŕߕx%Ca ̡@A"Uk[Y<҅4xEeI_D[ՋwX2 V%_38QK2Y$cRE9a7ʊw`?U!Ie(}Y_a'ClmVmT+TJ6+ <)`]Iv@T!W`Q8fhDoV?'~cИ\,yȖ{,)N_ߞ*U+ޢh?"ɽܺd`Ȏ4.XMg$-]yuJպGJ6&k}@NRW}^7;Ii/W:$fdH)YDZ=av `SDϤQ3PPeDDwXOc>~J=8PD6G-]zGejQ㿭88g7
"$˽mx,d<{{v(H7s;ΠAPt9|86SV'bIS.9$͸ WW4rZlm*NZÅmo=A-_8L+<]&"MR(ђ2
1GKˤߢFς@#GOrϢ ̼ ˬzGME	H.FW0W#-V':,XD	=BxJ5>\JB|SQU	P[
6A'*g=E=.1#9H%~`Z ]}9o(-1n$Dڑ_p" G$/۴> |(jnK0z6sB7P,*NyTEkzTMh^hh4ԯH&#Q?/&sYpW`3Un0by%EejacHKy!d9CڸOBҠ$Ҡp=c8C e-m͛5PM.׷g\~zɥfP2(Tur2i/E4~=Z$*]v؁}kZ"Q⏢@ 	ŋ?"[ -i!xM3!)=\\[RWobgqs}Lw/"Rb)
iriB(HK84QaLb&<X,%kHa%Hɦu8GЁ?2`aIETpbkkGJnlij3Q{+wg]hgN~t)d
HdV.Zl:3PYP=!Sv!j;tn= \wZP=D(	<=P}߈1l\6.m
&+
ܷsO;s?`Tz8K;-2RL(҃#faQaCUͳ>`rhE &VIE6(LnC1c(};י2hhX|Fx%7O&곫rl辧-rؐg/D.&rOS4_Ҝ7IW7#]9>"N%\y#gެj	Sq,{\JL]eWAWmbP˃ߒT	j5Sڭ?iC;(11F<X<l(V9OWC1fiVD>BcVL<8ɫq盼%dG$Xm ߌj4jp=aɊUᐌskխ'm@'LUGI ^EX{
Ah/C!98zDȌTA)Y5c(j.U;R]_U`	@fĵ^0(>/R	_NҀz[4k5Ktf^Nj:}O+BnQ*jI=p>CYXK)fP\DZ1/ѻb`@wR0=XXObBPе|8v1*c0uT)fFQ2q37!AlFqmg/m_NDg6TKX8wJIr*na]TYYZHPL I44xDHڝjI؀Y
ėķXԟF?tH*O	lN85V9x(&#0JZ葧6wʭgt?`{rOR_*SxIrϦnd+
L˽+x/gZJZa3|~vxtD&J	3D2ZP>}Jz_uDU0vvZ#MbŲpjbK9_4H"u?Q>GB(:yaߠ-LAś
^H:DIsqHQ l!-du';sVbB++Vn9c2C|Q*:*DUquw;(
HNcmU LKױ1}bMb<橬0ZBI`qRs<R^Fp\N@oiI}WeOÏ5IsW{b(gǩDKS+ F`v4v>!%yȚIGDCHALVCN*c#>*lQ 	73+[`۱mv9N:g<Ewh96![(N096JMF@ܮPQB6Dkq*k'g?IE*Em#s.A2;4=-#K)J;7%낂`EE}yL8<XqB/āLRVqyo/%s_jM:>|BH/LUZȚsm2UdAk9D(	; y RpK7D讗ܐ,_rv
Jn=+yS?:`*VB^>:/ʶrV"T]2pjW	FF#
'x9&WGD"m/@B^fڠud8/rӭD#)QKI.\NR#6TT ?o|"9VLYtK,9O+E~sojQĔs~oxPcI-Lc:%=[;0pO,GEA<GEjp"!@ILL_ׯ$>`hV̚H0M&w(?㲍9ۡ\,gs9ϔ|IuG<0V"m0e[<%?֊e;cmۅi/ߋ+(W o!KJ)N.CLnEB`>m^4b:$K"p-Q24L5MgDy6 @y0P#jx `	'_S	ipw)Ȑv#@V Yb]OcT!l|'8F,0*'C;Za1劧zY-b`9Ko,@Q\[zyGdN1-XNk1JZO
jM)	JZ9)J@6 岂hBFA<WBrVEe̠
=; ~%LMC#Aetf_@ v?οb]1fJ5lTHJxS7ǢI)8Rk%M
MwZЉ:BKn ?V,EOJEB߉Am 1I	;7NSheV Ve]pʛ2{(؃cA6+:[}f0XENW*.`@;	'Ȟ0U@׸m F)\<])ߊ1 ~V hʔwnW#=QZ.8Iau",m1iy'ɇ

֧@bvPvOihוt4:@ D^ U_+l
$r$D1e;+bU&swVt3@Xx AVV@ާN7@yP#-~JFh.T|dQ(.~Ιr>3[Y;om]O?'O#I%o4'͋"oL03r>ZoͱKl*{	7د![jy70*qxL
Ο|	15^dL4T.Vuͫ(0[O{@_?`ŧ1\a)$eXxGhf)5>mH/JBN#Ig匎	Q+ox"(ͶXT4JQ@͠8NX5[JTqV8LUhNI^eW
jC"Fǀ/\wc/hv-MV.9^kB)*,BKSbW׀dUȊtV_^ALkU[ΞΧPv:##8a.DفƄHvG!ƑW$қl@̗x̾pń(
Cn8o¥OAˁ0~}^q!U\
'HO2O8 "PnSd؎kc<,yrXS7!Ժ}zfIKIVzTPa,! h12`Mk^
#I>uEj7gi$\@\5*=Y$7Rua?	J1uX׺mV
	_x\bЗޯ_tm7Q1y`{+RddE(⡄{v[`MmVFp#+m舗l@%Us<نZKacRnn10ceAzb̃W
4r&]lq4w^2B!#Nj =]T@2!TOuuV  B( TA&dZLRfDZ '5Z'56s0ɂA	Ewx>db`aLBmu_ HЙ2SmOUogB8_88OTc`bTA:F*-b53V4G^!Մ$} IȀ"t⊦)|&iCB	d8hCjlmE9!u^,x1͌>#<c}T%p:}-|Cq	q!aUJDV-!@UTC$w^oTB"G'Rdn&DSz5D_{ Q& @(p%hj<-0T-;1~x1z2ne,:l䊆cS>gD9_8V/_4 >/p;0jE/􏱕1bXb.X"XI<OjI>J|ܨ	gvPbI:bZAt0EdP$eAG&*(l8	"9	axs4iaGhM
q	졾ESA`'a^
 Q@b2f¾^|tAZNSLw
6?t϶ǒ#$[M
vŻq؁>H(hj[MZGCɳAA[3O+q1/Nj2ʧU6+uTRnXǤMe󓗝{R81ܜ|z<P
hc+(@]*
FbA$E.ߎ~G@ߟfwbA ,h N,눖b@Y)=I|o3?_'wg;j}쮤QV¶{\%*F!a\C-ՄaskmCH̃ ]4C*~E9~<)l[X&DΜ}2$@;Z@!zsW8B'^ED=q;Y8Q`@ЂƦùktS +,h|*Ƨڽ8uh܎/k_6	9LZB(71iw rrzOHEv3det|cGV%H/1V2Rz]k7gMnl[tr/{@g$]s2 Y-SL&ăqFY8c5&`erݳdx@@wE;
JTcj U04QFPiFd|nص#,PjVN6AO9E` 䂒|ݣx!oC*L@z~Oi=t<j̓b"rfS&Xr\LF$dg |uΡc2Dk4|SBnђ,1ߏf$ R6k7Ď04K5ߧl:ZUD`^pvPƴ3o
pQrqjߠJ.WAoϮ5P÷Ԋr(R`
FSm&[و2ō+m NaECWB[hpclq\/)ѡPD:??8&c6Tyu1/g"{31xZ?~4̥PGg;ǿGb 97j,_𿔌3IfY6f%Or%ǖ['@$[gZnC>yFb	DϊZǌVF^Jy>] w*k 6xVqә-8̚${65J¦K)ߐuVC'R'B"Huӑud\DQ^5Y"lbZ/V.jTѷ.,=a-}! ;Lܼ;&`ZhosTAuƒ@DNdf5ǫ=v:V7?l/XK-\tgI
P"oعBGHMah[KJ(g	`:)P $mPĠ6P*W`ОK]Ulk(RaBn;xx_Cw%)@3hɺ/uXuP^OlbK(h^H&iOTOHU\DEƌbw_cl]C1da:Nzc	d}Ķ0B+cR8"y|?h'X.eCRl:;M	7)Vדީo&w
<@(S#ۗhX["jvV8Mx±pvXM^Cvrq+&fƒ/ykD@XÕovE˓u-_ǯ({A]Șqوә>*ֆ١Dd-EǴ (\ OuEsHB<7Ó5.!	vj'I?3Μ3"s] `2s5ZW5;ݚ:c<^%.e@a5(z"Y Āz .Z3($sD uP Vu/bex>Ecs< QαovL,+6c	,*;.d$i@.ؓ_!FB[(bC!}X1\*MiRZbFt~]&7~'rj몕܇}#([`ƈ<p+gs@VeQ{w	a
 TT\7'(BYܠעtD,x=1DZ{{$53Ydؐ1~I"q&hL)HgŪEU߼ĢFSY\^%vUѧ+ov	tIr39fH8v0ӪrrD,Lh"wqdTcr^15V_XM;"'77ӟ+rʮÆ;@rZ+Z Nf.5d2	IYv:>D)Yp^Q:l|(3)Ri
m0CpE(bD=FZrzMc%;K:P\ґjN)¨y@0F+,=QzV=h*Y!+&FLPPpNcʫ[_ٴݸofQx'H;T*9Pp2b'-Q~p`_QfyP'+ȩi7qp]*[*0B>~A@:6?XNfT)qXW:5<xXJqX,fڅ\t(ێr."^CtGO]ޮ&DTNnkrh[]|`xKPOEU,	ePP*WPUh+E*)AĠTGYF>|z/Q<wAx|SHJC+
KiI9Nuȑ+e5:Epv;WE/GW9E"'/wV衋u9$*=3sTnRDǙ j(	0R%cYj7D/^U1h]I@rP%.MVCf\{ o/LN [وFFj
_dq$è
NqVF|%2ۣ-;f=vO>-"UJT{uq$P
`3.ԂRH$BI <!ݟyCݙ8
R}R2V,	T؝6G-bP,6t5 zX@ca0`0
AʷjsLssyͻ6'/rb4!32q<{+#'-*qc;-Oރٮu\!E݄%{gag3C?k
oJ-}\,-':٠wmP.H@Ha1kM(?DH(йY;A;d8)п0$R跀e=wh#QBtFA3BU))y\v>
BòiS2܀hL-]GF!ɹan wۀ r
i=>Oung,4	/ ur#&9|]fS8'!@2)]!vם`(Tj >li|,
0`Gk=BjkoaoO|˱GFꀖ~tD)uÎ39z;L샼y̤M41(YPJLSgtUԍ[u nYY57Ng`ou;*1HFҢU&:"#tMD=!c=̠UoC7	)=c0b`;lB{dlFZd0Ϣ߿"W1$Ԩq;C(weUq7"RSm?۽6N(<EF<Ęqh=SP{6Z~a@ÖAB3=>\F΄mt?Y:$`gAC&+o2TYT#OxH	ΥN}jC]`5& 3(HQ<
J*tP7L=*"BA%ed	#"FHy#ug1@,iA21@x%+{%R10q$;yB߹WL`O _	00F擎u{D/X=_/<H9`WmtP>D$5GgB+WM,C4(uz]ā\F)MI?-B@(Ǭ:n.OKњqrGGL
`Vl~#$dd⸦v; ({\f	%\`Iq!܍	D~Bd|4nB<j@i"5Ȼ ȇr#z!D8TqpcG:cl:qQ#=Pjb7)FZ
5Q1$,7ñ3fqcAg2c`AA:)TVqh.Y8v"쉁Y\&Kh1&#DB('n&O@qQA2b U'4Ad0P3,:;`5221272H154;d95:249 zPtk^@
B14<!O7D	" @($G v	/  P)#PPrJAb

#\@A[
p ?Q" 4`[ ` I4};  p.e  X )l_~ߐo/}7_~/5吝7YxM
>YcI;Hފztéi]R5tCr\{z?^W~y? \N8Ǆn9.enFÌNN8Gwb73nvvw6mF.,ǤzƝ{Ø?dMSxk`n~;]R5eH$uE ϲťGC0]UD8pU>|	i.Z,Ԃ1*9*< q1 z3[Jw&itl$(qrN%6@vg|l:3!EP#{otaˠA3a@?X~8Z15W9ȩ=k`yirN@MJXbn RC(T+MQ4H</Ocyzi0`hEB*p*|e144	Kl?7`Nc4qa``됁H3b!3!w|!DX	mxu ݒXz&s_K^HuBQIDBvDpFgӗJ%Ѭ ML)^<Ӥ>=sWk <Nߓ#ƨ/ʸ.6pZ,5Z!,#NA<qBB</+8|͟t@@yK%dNO3J꽜؝q=m;ugOXjA~>*IP2^U#9P8(<RBH\iĝ2a[;B	ȫei!x<L0kl!1<Aa8~j,DY9,IVQ
eS9 aRj|VHUBhzUѧEDL"Lh̿NH17#epierğ3BeߎZQ33:\,BhN9 %6Y28AFP$hT"hH9r(ϲjBKhg'ŷ}$
?B6л(GT}O\h<j` DΦ^XDNu=9@JfiZ075OA
 -)j~TT_vHX)S;p&|6):JznѣKME3Ն3gQjXC0
#& 8O.^!1sr!fLmTf'cMzǴ-PX,rfຌ,TBvq2d{L7y7C#Tژ8	cRoJ!KcjIE_BR0P[Ŧ T޿o[|d/"@J=b"nVXʢ~f,Tǵ~iς
 *iR
')%ub`(]1ad撗/,1fG`*#W^->AHnD0d:wck$#+$R٥6?ꉩ($	cBlGBgyX.X@*m501.y_Q.gQ|Dq(PJ`LsT_5٦xc$1:0.s	qE$]A?ZBPBy YNrKc.9"!+ǉ%^{'BؙJ}$r>RR1k`haߜ>23݇)ؓ4y+i%{0DWl[ºUbp
'"8gi>؁ )9<SGSsf,=taTqktV2 k:X6-!t~D+Ҟk^Y Y<bǛ羂S1ΫSTck͉"E4y]#4?ވ?o{blkA-GRF2@!a-ctDD8)MIM;a`ʴA+mR#Krz  ) ^(NЄi_2zgrA0HCf7MՐ"'	,;04Wd6L6L^T Wc%Jz?-fEnCt̂\	 Hz`^$DXomt8z@6]6?qW/ ? fWzR?/eZbQO %gʋiCd6d"
=m *)vm a~coI%d,pt:REGk
Oj^}9T9N;P6	Pio²F}E#@n4	P3kۭ{Htpm@Wb^6peP	k-6:e6ڻj6y(}J(f˒*РUnooYE0FױmBH6ls2uʟ2)md3J<x5IbD]B;ECJSM`1urڢ *9pVTQ@әKi<Ɛ*fj*vn%λ&Q?kѮjF)j>>~&
t
!?UQ$s&`[ SxKmh<'\`r횻hOƐe{FW&9b>W@ʫESޢM
rR(sK)FczTglq*HJ50$"q T:,F@G)qpԦ1&SĀƳg#.T\`'kOQp J|%2DOl J0N$Cl ǫƥ˅t!WoHAհ䰫ġėG$!z^ؽ(/YP@$8PV"+-
B:HNl me-UJO]A*&R2-%D!|U98%7^QGC        wOFF     td                           BASE     >   PsFFTM        moGDEF     "   ( $GPOS  <  <  5ۿGSUB  x     ۩OS/2  t   X   `jYcmap      HDcvt   X   V   Vfpgm      eS/gasp  d       glyf  l  P   head  b   1   6(hhea  b      $`7hmtx  b  :  xYloca  e    maxp  f         name  g  
  '*post  q    7(nprep  s     \webf  t\      +Wuxc`d`` b>̔<&7Ē<6`d`a`( 

         =    ͗    Ӛdxc`d``b	 /c``` >  x[h?/hLߢuoi;vfsjjmi\fݦιZ'#+)R C2)2ĉJ)e.{Dx<B	=~^?7{}{~(ADUB{T*=BQOTWjhZS͆>=?uU~'E)!a'9)oU%)xJګi	--
R7}H<}N,Ƙ?GujJZ2a"zbFh9@k6B)!CM:8/P4fsW9,č;}nc,jFѧi9VV#7bdVZ+z4|C>y=FMjM?>% _\Հx&RmC.17@
+V~H?AƗ񹗚VOӔI\:ƫX\]j
4e X_籀~|C>o@6Q>R)'SݗUS{\<p;̅;>$h`U-ՋVTè~n!g`:|LI@EuЩʣ^I'P'0%A$R3>GIgGx	t9SVsX̣z]sA?P!ϗ]^R8]2;8;g_8aYz+`̵Z7닽ƻ?^7Kh  5/X|tyc);TE9|C/1.5z0M)5A@KAW^!sU=;zw;<SֲMMΏ],iF~&ҝ|Eۤ;x"~{Oq;G'ʱ;GJ"8v+ d6;N=%5d.$[\;HIc/gk)|E[ezǎ5JJG<p)p*(E@E5j.¶um$H̶p>)pNP;e@6.lgʲOZ<<c%O.kvy~ދCcc1O[f<GWy|]ΧFn41߼/t]K̐B067q#?[R"=z)"STPi1?3&	{U$|r9HI^ppϛ: Ĕ?5xD,,%	i8-h.AEc0L>0x#,1M=|H8gWa{Ρ#oIO.<Gap4h5Hdp	i4vjZCbm:mf(=8q$cňJi{/ڶ^Fg4~jfl8-5'ܯLVZ44a]LIu>9>v;:ce 	F}i7f<decӹ6oN?+5h_%dݴ]lYbw;Gj:餯ZMyat1.-sT݋s^yZd~םQf2MP(_|wrv+X(ԧxc笡|=nɬ쬉8g\˴xqqGZG-[E+PH}~:|ZjQM'z6|yOT9^u\_wD.YSݱ~m<VK|\ocN଎pe\j~t\֬b<gw\Κ
;IE+_Z`oiآ'4්To,JOLbXZe\Mq"smM?Gڏq}26*p.Z@r4j[OnM<V^JeG<7xi{n 㪪ay)dwqncR61j_?r>URZA[yqa'*KFhԜ9U<%;U43)-wlofEDԝj[T'hS:;ɃXY#G'Aا/Ӗd0;S.XS}̽JalJ"(GO*Ms'ZT96_(oH/qX\?YlS^^aPqxx)a_E]k)|IZYpTvRG:YF"PmHA/uLsR'q^B&'ɓ_SVOG˼z
ݝ%gjp0aļy.a|\cX472R[Mл*>IrxD%]d*<V ьрX=XԉAnԉMƪ/(/|v{mJڄAɾfTCkh-=D멉6O_3Gh!@[(=Z!^RZFˍoxIOe=MZ}xb_Խd~D5vyv&kdN&<M~IżXjr1=LW+-LQiS%m؇ݾl6}N*G`M4ԘA/੕\#8̪,ryցҠ_%7X%rW5x}~м	^~DBjLa`Z77~'}Mo0_),5"?nͧ	X80g;Jߋ^38F.^kYZ*ep.gi?:zy=FnMOҟhz~NYIk7o?{xc`d``bb(a`rq	aI,cc`3\ĜBdH7DQ[ V W\ZP̠ɂHWA(`eE1TY-`a)`P3X
jZu;*B`\A h'L#>dYlz@|8T	n5{ aМ9 1 Cґ4(-"(_PP91q	 r#  xc`f8՘,,t!Hs23031(00ɕ7? }dcV{  c`xc```f`F1,d21gf`:tGKADAJANAIAMA_J!^aL[U͠   Um	WT/'yp{z,9ԅDF6l& _@PHXDTL\BRJZFVN^AQIYEUM]CSK[GWO? 0(8$4,<"2*:&6.>!1)wK,[|k֭߸a۷صsJҳW-.}V5!캼:U{S@)-3~ݛv3>/ochk8i3͛?b  j     ?   u {     n              l  s   X b  y M  p   } g D  x]QN[A 9{	Սbd;i7rq@DگH!H|B>!3k4;;sΙ3KʑwkS$6NH 덌Zlfuє;j =o)M;Z
;4:	!qKͺb00.?R4j˰Ѽ34@Skm!qK˦6$tUS]`*́Vy&ҷ$,b
9@HƼIJ;ㆵƑ6O<MmoYwK:Ȇb;b)	DBFUϽ,R@D<u1Vz~ˊV΋Bwoj)^ξAcJ<,4hCz7zꈫ>'ӿZ       xͽ`S zz[t$ۖe!tB?0(8^u11<Bu=% IДR,2
2i]f2ܐۛtL3i&}ل~66vf&H:z:CE(٪<RjJ)Z_T)n}eYXԪc4~svi,QA?W~ڟGSpJ.*S1-Ey⬂2)<`
UQ=ixD<#p^`68'nʣɑh=ęE-
Q|kx5G(_fլ=}Ѩ:*lѨ5VEub2VVE	
㔂T~Z{UÎKj3b6JqSqN䋉t(E%OR=T `Ysy(t-Ƌrfኊ+l~X4k*)ŏJˆ:tR4YzW
(3,8$iO\CZ_X/_X	Pq=BaMPVb9<
LLfɳ
j|䚦uY<tU?0g<3F~G
Y<OQ</Ksİ**.)ZPW-xAA9ϿM]?7._7Fg!0=É%)^ʎ+gJ [(xxQ-'| 7+(=uW0\K,3BI\;oF7(iZbVpBVHpEEa($9<$8͢-\,Tp(`sVBPh.y*E``6u(WYsJj#PE4@m{dw*ֽ|ph?jypKΖΉS=|fGgcH?y'/R-Z56kSOQ1'$=Y3 *8Y3qf{D-ai-&|MCI,p$VayތW3OkY䖐X:%j=|y~e-7*7@b!K0pcy-wΜ:pzms/n;N~=s}v (.*0u5N܈//UF*U&Q7MbMdᰈ?j~!!ų|Ȋa2kBB!+]B#hLB2bj`©VK$2 U1ɚ ka%<{»6
zwｫOVEpS;mG=ŕmp.Gȃ-áxMjh[;/1ۃ5pnKtvURv:ChʔӠhLiTMY(Z03Q+9hS1M9sh|CL6Я{5Qᇉ^Dלx~5|UQ>s`5
9n~O\y/җ^Xu7O.e NCQ}L#<D	A9dzr ڂ-hS.+8\77K~`í)vn^_"kb㊽߭h)A
J=#(1FaG@	ҬCE-p;-*u֓Ԝ;ւ9Iz(q`:N?x`<>D5$NOQ3`1xxERsicSFKJR8LH2>moc낵]ȵˌ.-GxX|@O"ͦ^er6m$6#,\ge3gZ92"2mɤSȺr/01yXם.YHV3 ֮j-*k@U	L@DV)-SfVV4@t{7>ա-y)YT1U/A"A4{EV(䵙^sI3L7¡BL9a@I;_}W{C]3
ݻę#\Du''ASRzIUҰJM2kFxi!+0q!ԧBdM2@vh Z<#h$srm8Ӵڍp〣bj#3PƐ*%fSl\IӀjz7MlŒ!IѪnl}aZP`/OƏ[GhHs.֣veϡz aXOQ1/O{l^W,JW}U\F
`/ʁn/Wn|֥D=+@ٜXW9o7?Gl1Y!+aQ"ICx`su*|OӅClzybݡ-Ng1<lm[cX۶;~gu)_/ؗ@:*hŖ(
UA5p?!IcY2*|-lCg'p4ρ]	0.&c*&?PLٷ-Ӌ<\Fb9ǅAi--\[Oq .)S`D&kU=5b1l%j*E 86O{ۛ+;=7vtqx{D۱Eo#"cR_ 2Q"B3#9j!vg݀{X5ʜ"4gl H++m5!Q[	J-3'xJ.bdz`wX@M+S-g_8sjȘ1#L׫tv٦+u]|_\s7L<"NSjSE4Xg$'9Lr ؐfT:FXS;ơ._hS=#ۏ}OΡژmӀwUP1bR5#lomA#vF*fn-g~^eP;*yXFRN)Q&˦#Jb;0y"-swf]mCMljkavWG$Oo]M|wk}6mǻ׬8ǷvFŁOoN>
8z*MFP.paW \IѦiۂ/dڴS2=mU!,!qR*$bҒBF2LANr>ٶVo?sz$h{Fҽh7=1m)gun·_M|xy7|xs畟LmCw Gb?%?J76JLL^,n1e>hλV<W_̃"uhK5L⬅7،5γɅ7\.ؾlHio&݉GGNi}@`K$fV1+jSV#8v7}`|Kc5+iפڜ(6M߉#35!{KwT<0FP,'lt ~45$ZeEhDgy$PNHY4.o(le5
Ydz</ڲѩ9/inZo{7k>TI3TUJ`K9#LHpKG>Z<a5@1kLHb6ĕ`뤠aOkOBIp\Y
M'e,Ce!*p6IMt1Q+@D%pB0&$/(K5f+TU2H AUMe:mV,cHB=lj)o,pgXa{ŷL%WFNþ3*ϿtW0ŭ՞/ꞈ>:}GkOm9rvĶCo}[x7̉6޽"m~a]-uJ(E8>'YhTl BL2j@͐ЮB-A*l@~FܩU/?0ȝ8G?Q`הnp*k]%{~h w k5Y"ʉ9,ѩ#.#K˸/<dxGfeFt"A^IQFB1'BԸbΞ2iN)ɃΎl|p;yqO"/7c[Ojl'>?1564>`$;hQvPvDfbJI@%#+wFt>356@VwD{ϳi21wȜ8I3;Ck7wm7F+$Z@3PkeUcp,@n	C$:-Y$EXFq>U"Z i=1cˇrLY_=u.5p,ޤkYy+%r$kR7Y.jYΐ]w)~!=^`UsDa(k%:'}	.~M"L_-kȵ*ABNihI=Hi ^XdW
]9b4/MB $$q"7		qvdӿ/=7N93:NGPukvIJ8sE:$j"8UZ*:UVI$)ƏTɯT<YfϹsss3~	p=eܕT$Άe/E#m-hDVDC#.֌dGMLNF4Dh讁szg_jo<y٦g *>H#6	쐜@P($-(fa*fեD'ýebD{
yZ)+JY%P:h+IYYԹp|ukual`zDУxs@|:nUkƐ9
m-4/:,B ̽pVjiIF3ؒЪ8yUW:[s=p8W!?Z5gkIf1)fe&2Lp=f*.<)$RkTƠ}.1w̅kf:sD" o{0"S[~R8t9tY	r%#UǑ:*Kh K\:7o>>&tv
m?y?Ĝ>ISu@+NvkcW45Liim$|ҋ(DDldjtSD:`J j"Ng_F]ͻw˿gV}Ȝ<tx2!(2j5AI(\#qP3.! 91Ș\;HMe1D3f̋*䆄U\\GYe]_zIe*vILovxVF}ዟ7Ec{̝_LꬱGomn>wTu|`&?o-0
-(P0uRR$!q!`HG֜MK?wv=蘻0LG;=1KV.D'8W1{֕V)h7K<5`+YC	,VHIVsAʌ_x*6iҫL)v,k?cݫ.y{}{y=UԽ{YV~)S7s~kn[[NuOcӾ@Wpd{/»Lm{[A=RAD'SP] ~$ J*0=P̹ط;)C>kQ1DI]02wL<dcR٘kb܂
Kڤbbg}m{1wqB뛞hd<l?xzOy|wjwq֑MbHz>F!,Ofhی@K!Jj$ULԾtW
g	*ӴZx5Y1$	&!jZUk$wOKBTlr5tɅAr}>cP)e-bДT__BZBd-ā)`d_K/_d~ ^ <|QJ9mWJY/7642ـBi:os>$bC"?,;.P ۇ:=
YE! l32,іWh$sh">I6L+:cfYk[e|_yTb̥&558N9ϥ#Ч'۸O`~X&KC#OGd$~JdPIQkf,ޟ8mX<q@+f*qwx鎹Vzz?E_O:~F2ЋE"LR|/h@SBB2ȴfb	p^Sul*=K<755j2{eF#.5Tv<#|DTK)߬Bh;.敹1c.̼֧h<w9q*ς)teQ`<$GDQWl,AU7|LJ[/ӻ?8qE˞O/N@)/yN,3]2k[5I֔-\$k
V<(cm"5/q*	\#d)	:%^]o=Jeqeb$ollsgM`?M&?`?>QHfAڒbl*br}."X"N;BЖݼ%1*TdT
NF7M,3BI,(-zbKHfM",4˹ƈ敐CE66P`|U$̵r9&9;L;ZȅSu>1عJ9ulԻ*~sǇßhSeM}tArAfmX. Q#xPAh,pm4a30JR=Pʉj,*иf-s9ԩt>sFn[[M϶7<Am_)0rXK썇[_9>պg#uþڑwIL8U3ZA%[4y+janw1'lٻ1:T9{n,J<w˷`{[a`ag5^=ȡ^ɂqyɥA)1tdVзV)ͣYP^WtNZfNzuB\I$IM':zGRSp5&^G^X8K_k
}6Ưll`k Y_ !x&^f&^mhO1+qgbޒCM"lLc	Ei0R3ܕ*&hDn;\nPkݶD):1?Z?zn <|&:yGNzZUQVSz;*DV͛rH	?fMp`X0-_	y2C;8(eljXx1-9ߞa;uǏ	DSN_J؏AOXgAA5Ń|{Űr&n+bݰnth\~"WhZ3xԆr4+jC0XԦ`9x|hC8b3?eɵ{Fc8!60}ZKᾮbb3Tq]\,KW䛧Emӱa(&rפ󹹠rrtFJ	=4ޒr[13q\&bu7;lvV4]:.u=sVn=W&)l}vWck}mw=uO.!k1P2ᷘlAzXW:z;ZFWC@sꎵ_dW|3lBlJfk*ϐ0<UPϓb8)1Ɲ9~{g:k~	E둞W/M1=lJ)X^Fj=#g#k"oyzR o>>]Cwl*EQzFY}ޚ{xr]#H(%A)/^(.T aD 剖|lb×dkju}3Oz_Itt}]==mR]){Wz2D!
lZҁM墁M؃*D}!Eel{ѿyL?K
hAMgirR6r̙bh5U:zZ(f>ӹ$ͩTDoi.c4@BHOpsIjǚU]`P%_OX"v!<Ef[Zou!h#ϣLuν%ǻ=y{ԙΞ=S{=[iߞgKL9TKF(	2SXP X)FbLVF%$O`MbIЦctzh%]͒u7:=ޔ|=nQ[ɝ|/26(,[]
;}?6sl~ܴ`HMۋ\H'QlI8m1LQFGDd3NmRD$e1N4&84њLƆzR^!t)f#UX`&MX6c){LNǲS3K5oAEEk#t{5Fyɨujײu31-tL7'q	[snQ@mkMV2JnKjɳŻG5	|ԖdͧF6CbeR,tX<qXhVnqmf1 iXsѴu-¡u@ۚU-Yn.O`WU]S<g+so6Sp9e\Nezݫ%sLqʧbJr?	4@cJM*QiּTuz[QЂo Fd ;VQZD4Q-R>V$
pgsml/ηx[vFЎmt+8chTT2 53EV皠$ղRՙ*1Cev6o>snxaz܉c-˳϶*`-#-dmTrI/bH@ϿhjlO'Nʾ7Zhh# vE)¹I*V <pQeɕi]VN-է\*cx(sb=~RBI2\)?%mJȪBXąE^~d/hzF'e"o#ϥX9Pr;U#5B-.YDrV'YJK=a*6hLv35;8t仉{<C QЃSLt?37F>D `.\\mҚj'bzS'm
sGětÅ"m~w$tTtQ_!Q].$["Q>l9H)$)]*qCWTdMqZN6U,?oؖ[cS:69Bye]%6o>{q+}C5(# ~} [F\$׭e̙2ŝ,59_>j,/8/OFxE:KRG˯
ZXj"S$VbjXi%J
~J+aAarP4G>HH{VrS5W*Z2;]rᑮ`[PnC}H]#*smb;<sonјwwk{σǃwwJIh^сT̙%Km	JC}3.~q+aOƎW,[%W_4` Gc-~\M*ITGZ(B\٤kO,frRvM[P5Tw/27IRמּwYc~_)~מp2Xwwl)@+!F),HLƈefM,1}5[&S-mw13ذfM_!'I^t ]#6Q^4ݦ^^t^t8
N[[X06]fUd/'!rR{)4XlXb=VP;];mb(9JLcL$JaRaIjЬXE1rZ[0I1t`58=V;t@>o+P?n?2=с3MTYS;ok=k|ai`>	+B/20~HB EUVZK۪Hl%n e%(?JLJ#8_}}J!(/)<ӧ
!ŗUhhiZdy 9-c%qQi6OaKiMJ {9r' yYHX	hf(G>aKkaF0lprT>̚\JtC-jCS7Fh6?ذ[3Kw2T,F
Po*PRRi=A#frR2-ZM3bVkRj6lW	cS>~nƆAo茜T^6MM]j:ϱUމ=pݎos;訫w;|zG_>xx#ޑadA F.W֚p_ǳ)Ar?(=6`y5B`E{
.
֫BDX3Q\1+E[mZ⾒Ik:?[l1@
'Jv#\z\BݜI&xؕEF6=3ٛxNH1ŴNRMrU|0YNf[G|*84al=7&{\9B:BnuiH`Q"wgUkQ^k">qxK.'=orUlbRr3_PWxWYi Ypu05!;"]H]ͥ宖{FڛƏm1[[ھX_=Rk=\g^~@Oh
k;ƺ{R+PӼjkc#;76tFBN{+'mSZR(@/jT62ff['sd3㘶+=2H3S'u<+P3Cc0Fd|7xuY3`lHgIX<G2c"  AE
T12V~|rUzgrJ|5lcߺ#ɏ/\xr7[:y}h:;thg:V;G|m=S{+kB_jbzS[㳱-[bw;nk;D|-nϱ/?λ}$>hbLLUOʩQ (b@S7JSyl4d
 ?Rx:nS`>WH1&83jgJ,a0%X1;s<df;0M/=W񏵌>gкjǪ-ǿʼk=Mε;zfyj?KkDq䀠"}=	[BmE-tѶ;~;*q:q)utM05gyRRS	
TW 1Kl]*UWS\{?u|785WP^ +7T5Tl5چkV^2+,5☚9&ޭ**qQ-`6qcWԫU~,7> 5K'j~Y	Q{Hq6 +hi9z5ޖ{Zwxv}ݽ-Σ;G;;X~Ƒv}1eP#p:
ګxu)#'nJ.[TΤl'7AM9
{SJ5I8/NlH#c]<u'_#v|(V48=-Hhww^jgg#҄(d/ZOX'Be㈋lV\3c
⥶@l/LgxIzG+;RH cY@(#u8R1<11`T!9RCY)nA9̛bj9\ٲn{n_fݡ7|~xhν4MR!FٝAX
BX'r"3pt Hhqڬ8PP}X&2G Ǚ
RCW[߽oVGKOwsM?B	5nj]j7Ek[hO`GEӊX*Cyt=g/(˰JKǾľbڌq^FF3Iؒ&FgFIRZ$Xʖ>]6̙}ʱqKWx.I1!+E\uZ#;`$F nk4\89_98&{H?$cG%3teepJ41/@S5|}у.&OmeQS[7ִZZwKynNS}]Bf'T(B1DđՄըYFȴt)g_2^{+(3HT,w˖IмYTbvj|{j?};:E_#w}p}`cX@ò1hZ16H[ie׿L'>_/+㉗ץII9ʄ^*Q\HyZ]GH9,<`֙.	dAs=WȸBƴX.s0dEP="b1ci6R*"6c٧S@bu\| P#{_'M(D~Of$9|v%(¨9o/NDrecTX!Ifͤb@8X,𩅌 vReB<l4_"@/|slKZz	U#J-wbynq= 7+**DR?bk<J^ GAed|+O[Eb9~Jn^$	AtXp-u0 [õ^CP:\Y[WCз
--Hܭ?Bj[+GzDOd#sV
snD*͒I<qf$[y0ŭ1aɒ<@6J/IИ*s< )щ%(5WQ\"W닶Wh٫[GWf]R4Fv7mh[#{^#I jRt|b6S9R<N}2{y,/R{UޟK[#5[[@._~[hJ`5f1Ik4(cA'yԫߜL܈O?p %+y,%6eiS_@+2ЀS*=e$F`gBI@]TCzfh@$2ƙ	r:§-bhu6냁JMw"z =nwf&12xvIaIOh`(VyUa|4hWrwx*1S,DDfF'Mfd,4orI.+&׭ೕ'I<)sKrбK
[e<``K$R(1aIN
	ybF҄BbE	(ڐ]HfqfQWt13k-Ugm~uֶ
ܡjmmi׮彰&RyIjg7A0jq>5z*MO_?r1=,޶Jmb.s?I89U'ڝAO%~wHoqSjV"lL۸:sVֽUpg~^-._q8q@=Ud@D欏|[Osun:dԍ~# ϭaXEWWZ01cnh&Σi=XG"5y+rk:KEVk钵ټuim/HVlv^4/s굘?2JvJ0'oƱFk/E#OaOR"1g.*@HI&]hHD1΢x{ZgrC|h	NHCWP1OKΧ
2W4eTH:_kd{:+m|r'p2dGtřޘIwVq˔1q5m"ڤv=AFI
5tVܲN]3JSoЗQ=QZkgH0lxg|e@6i!2ꘑFtXIaE6zFyʄ CVz-r.?5Y4#K'J9+(fwh;sג5[6PjF0F`ȶ79 $9=$TLI*1-m!Eb`9l֣I7,_&\|Bekt9X/2dbM*ir
bMk	`rT;v-}]Uˀ,nòmЈKvVK}u؄^,Wy?r?	A_ā&kޭN;|-Xl|G([=[`C|6AÜ+TIp|U6rp*$|Fí15r)q{HvBfأZʢZڦZI|]M;՝Wᥛn7~)qnR]t4wcTUAvKmq9v ː|(Dd	cc318ז|7;<'mū[YҸ2!OVtnՖM-ˮ7!n:vͱ7Otnb<=t׌x.ONQHYW0A@kSkDf؀9ŦؔSlbւ"aI6f*&(ׅr}u#(ȗZ}I;[#Lϋ'I|%f5N=-\%VxyO
KV>aJ8\̗[57c	iX/""~ArN|IM|_*BC_W/b&/S>0f.c[Έ;Q*frǛgS?#5l,Ivi~lgsX_8͗x~J}叩 5*
o%5^KYKԓ4Hgvk-ĭ[B8-K+	.(Y^Q
G_I|x.yHRrC ]V.{BPs{g}snla}g=`$>eEwu||qWWoC_ߵ[sbYQ^ yFJocۘR`J\c'6?k[3o%0q˙+Xo9ăۓB`:
iL |pKt_$e#M||ǊcaA}q;8a^~QP 4n|T5M`nBI^/ޮLX柮(}"[p?o.SO'~ȍe~	qEX+$ZbE KЉ!yHsܭ02ֿAGG5M/?d낾1˾gwfNCB@|ZLl{aۛ¶|,nA:̢etҨFOP-b-58,a`М\&]Ia	|g28Y
}A<eȩL|Ú),@/yU8kI>MXʤ#2
eKՠŪV2KnG4+vqkvm _S-5ғ_GmF9}G)mlo(flȂ}YMIhRĠT	d]1X4BIb-OO071zQyZLqs1k
̱"tGb2+k8@<O"%+D6c\[iUwִppPI}]Tsߺ.oo;{CßFLVftiח?5=?r6w!w͞Ʈ{qCjt
%N݉&yfmEmEmd[\_!Ŭ&bL;nc[?˸dڜ|+#Aya%ŕ&=懡qx3hd%ų-ۀq4n+cmLXWbV.ksV4 -nYwKSpWQor):^\j0/9'頮l{-hk7NBMleR2˅,KKngލa"N0`6=#'I"'	9|`38iC~{(#˽[H3bwssK9:HLQ!/.^'8u;sy\{Ҽ[._*ߦZ"Yb*5p!
=!SguX
E`+SԀL^`DhPY 𣌦\xI6MkhKRv6y@͉_h蝍i/kNnm?1zw+[&@qّTdk3dęߍHKXlydgq9Bh~TPS0{Ey${
o~PV6mAnE|NWMΣia&* o
+gy&,إZEƙ8jFn|8鄥'3r&\l-r0#V}h)I3
cD1Enw	XV--rEֻǖR$LjE`^hmMuy'^-Z	Rq^z$4`Ȥ2!I5fYX{"wk1յ=e97F31hnzܨ[fIVZ"r޼,j^e	?YHUQV$o1TqU0E]6N!9]Ye{^o][|e'x}լ[S
$LU=ҥi"(Xh!UTf#&9tvu%ޖ̮b6c˖ή^fEJNx*\fr57H6=ȯi>Q>>9K_hzvWsݵZ<>dAjx>Q5u/ci]`?Mm!v"S+éKL˿yR]lB=u)uR~]ٚKFds%cC/nX3ϒ\s,⛯E jsmɤ':c!b	(0pe~c	H0㽂+Io-e8kC;|hdB\%fǖV;M9+ngu_D݀Ů$#͒=-\,:MΞ&Wb8I'U.=UNtOYaK}B/:skKdɵ,7ƹgo>GFodU'4%׮ap-C-V4;XdOV|UtH3N*fx+zmFa[-|!~M_oN?	eBf`ơTxE3hӼ)b>gWl6XϚK96itǲlXĪ,-yk=RiZT*5Qn:ݰƎL̙tmw
yȱES4]OA:?{"H|p'~C%xU?;H=K*,* &/MŵZǫ-yƘ[ ܤP{^G0d2Έ<pBt)s,+"	&.f.$@bU)?*U`^;?D^ݍ:^
x/m{j}C}yr4zWSmk5i\7"v`6YeX}./<Z~nn!7 f3y13]D>(ɷ6A(W%}/4M,(yiނ5
4P<$ ˧CH@b)<cerhv
9"&l|2+u7%XXAְ4mآNȪx@>J?'rJi^qEsyySw?+>Z:|dۈ	륯<{ֿW$~E+S&2zE"9;&؊R&i=p:5M5CwU9n		v/}@t=[8qǒi0&y,%C+WTO47<va5@͖X|T1KKR4BdSЍ8M.K_X3lS7ۏ0%{ [=-ֿΰ̚꼈Y iՀP!Dh(-Λ#l<4,?gD;bLY0N`ƕ
"%ȝqq,%	iuֶz+κJok)vUTulp86Ht5GȽoffV;sgDcO>MHIC=Cy/<Y'EOb\*o?"bhEv)Tn<p7'HJΘ2xxIxWHS0[EMMqTBbc8ʤ*
XfʬXUDkgjU~2ƴLIjJ(qX+q25})V#7v-[XO`E3GT9"ZךsyGfdgvll۰t>aMǛ9W,/;fd:u#/}cSW'j(r\hg}Gb>R[RL'T/e~yKVPJ3
Q#夁*C3|͵=9Vy֟2R%w:XƩgj_PHQQqm1zx|'ߟvb/}?}e8, enR8N&Ys8;'-t}D#f)
J(S^lT!78VO8n^4:mƖmЈǪ(')<]xKc:ЉK sTLʗˣ+ q8.eLmO7ޱ~eM
c6́WZU\EO݅mIHTi{,.Q`bxc`d```9^>+<\u'F_]``Q m   xc`d``@
  xmMhAw*ă`z"Rz1-@BEmE?"z,"C%CHEDyT"T顖7B7;;yoVyƪQMH<EJUuWP$G/G^)r%;εk1mp]r0,,1.uemg$du9C_'wOaMN f1'iywywd@Pu!.gml=zqYA E019"[%6ϚI6:Oo>cyv5,3.\SۤArٿ9CsR8f1΢s hkqS}E?a2봾Ȼ,l08oCKf,¬{ecmM3L G66JWYt?},X<fxM;W.`ήkva7@n  xc``AD1G10/a>R2? 	b6cQSs+\N*yܷxxx]{τ37f6N!|N<Q>KbbwpX%)"'KJCj- m2,2Fvdfm7/}
&
+(q)mRܧ¢bR꣺H
Ja[ԟiih|lڡͥEAn=#B-k020`$eabI*^̘̮G?(T|`:Movrvvv99qsEekw;m<tp@+0<6}<u<{<?yExMz[|M      Z                xZKo#Y`f!XR#N<4<	ؙؙf9~5].W9lY+!V,y69;羪ʎ;#4Evny}qoY)OP=x-w-HKjKUW7oԟM?ԟzok[ooJV[i?l^ڏIjwz/i]on*WWRjG*ZR@KʨuF}3uNW4PB푄}T5ԡX5`z^tiA14srF3v1cB}9Q#v>(zΘz,\#첹d1Ӈu?)潢QH+Cj]&niEYz	QҜ/}s]'XwAOӖL=gXA	a%jb̮ߋ3ji#oeW>'Sc)DiN=<C>>5޿}:LfܵvLi۴<	hn`*CmƧG{.8IZ'8-o
mhT]E;I
v{O0~vެgкFtqGzม>E;'E,fDUkr|}BhC[VOSv8Hކ\߃%NȇuoW!/#ւlQq+>KRGdSY-jh^Dl{w#T!S!俜OrA@BxO_.=LyMc̏hp5Gz\bI5rO6v y_FǲiO3M:p 
|
9&qd9dޯ>N4ά-Ђk󕍂7xO#xD,5brG9fO~<p7CG>#OY1}Y?RfYKjǶgJ3F:#vY"Z`@;}3<3SH!V&Uo)LW@c FFKDC1N1bDavcm^?lK4ՈOC۷NavtqJ/DPtч̪EHYniZUY`#ӬMGD9ԁ&zH{c7[=b!{hƨtmź6,ߌ.=^\4gyg^]m/)+QmӧG2yz,K1.Q8ߏ+4wiӍop8ѻft7Ǎx5
qXAgV 1(Dl_z<yPaVFGV")swT!\_:Q\53F^TʠH|rf>S}}df@P*ڮR֬AVfkfr.V*kXӮGBJ8@KeSE9m*bT\ kȣ2xۀ&%3H6l++?'_e,=^f"*c=պ{'&ES]:8mSt?oUؐ5
w7t;]e䒥]bXw^R\<]ɷk+Bl^Qw-yDS,#l('2s=6FGSxqb w)>Rj6#S+ngb,A/m3t7]sq
>	$PTw++cis~&;'W*ʅloNؑ}Md?:EsnnpI UO/یg$0ٔ7h~ž|>͆tB=sK}7R*]??1[+K߬٤R~3]:u.G50E;6ڲ-Róөj9PbڷwHWY=h֜ӂCnzNǯ]S{nq9#[A7f!<߀ȋw!&oek'^W5!G՚^Yſ9`g}Sjw^.Ve\XnCn7CG)D*wݛߓmrSNl3]Z;o^V4x)Xm-g|.OTx?!),1ޥl]詗4c'~_ա8s{C'߮?_wL.qNzCg	yMKy'ŮjGo2Or\@zA}62o
Osڣ~G5gG	נ)n[>tw=t}Fe23mpD,K%3^_=pq$</`zM2g9K]t|hf)w!oB|DtTa!4}kEG6(kvmPChB- ;z=oOF7[@n/S4P
Ϳܐ=|ņ֢`&f5`T8pdx!(XBo16Zo[aj}9z|!^cZ/qRVH(s.v>Uϩܳ j,Hʑ8dDd ݬkxmGLTaK콼wgｋ*647^Qj-xP>o嗙L&CmG- )6"QqMNb#I"RI#2"r#
iG{:БNt]FwzГ^}1pQbJ(~g `K9Tb2ag#h0qgd0iLg3l0yTld7G68v޳}-1'[ 'O~sS<P#jC'<S/y{y+^B,b1usH&B,eß^JYVsôu+߹Yq8I$II4Iɔ,<pKe'%ܒ\cK}u͍~°p9BM*,=R^CneYFxP+KYt+%R}K]ugm
TW5aZM[e(ЖVMuGX/M@  xEͽ`qoK[UZ%I}Gd2jbSKpWzlwC$.Y4!yي)!wi(&].w%V0S{2`-l<U AUtV;gtL͙uЛ0`}ƈ!3f6ؒ?f7ܹa    Wu+          <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          {{TITLE}}
        </h1>
        </section>

        <!-- Main content -->
        <section id="used_settings" class="content">
        	<div class="box">
        		<div class="box-body">
        			<div class="row">
        				<div class="col-xs-12">
        					<table class="table table-striped">
        						<tr></tr>
        						<tr><th>Version</th><th>Count</th><th>Ratio</th><th>Files</th><th>Errors</th></tr>
        						{{COMPILATIONS}}
        					</table>
            		</div>
        			</div>
        		</div>
        	</div>
        </section>
        <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          {{TITLE}}
        </h1>
        </section>

        <!-- Main content -->
        <section id="used_settings" class="content">
        	<div class="box">
        		<div class="box-body">
        			<div class="row">
        				<div class="col-xs-12">
        					<p class="textLead">{{DESCRIPTION}}.</p>
        						{{CONTENT}}
                		</div>
        			</div>
        		</div>
        	</div>
        </section>
        <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          Error messages
        </h1>
        </section>

        <!-- Main content -->
        <section id="used_settings" class="content">
        	<div class="box">
        		<div class="box-body">
        			<div class="row">
        				<div class="col-xs-12">
        					<p class="textLead">This is the list of error messages, as found in die() and exit() expressions.</p>
        					<table class="table table-striped">
        						<tr></tr>
        						<tr><th>Message</th><th>File</th><th>Line</th></tr>
        						{{ERROR_MESSAGES}}
        					</table>
            		</div>
        			</div>
        		</div>
        	</div>
        </section>
        <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          Global variables
        </h1>
        </section>

        <!-- Main content -->
        <section id="used_settings" class="content">
        	<div class="box">
        		<div class="box-body">
        			<div class="row">
        				<div class="col-xs-12">
        					<p class="textLead">Here are the global variables, including the implicit ones : any variable that are used in the global scope, outside methods, are implicitely globals.</p>
        					<table class="table table-striped">
        						<tr></tr>
        						<tr><th>Global</th><th>Counts</th><th>Types</th><th>Read / Write</th><th>Locations</th></tr>
        						{{GLOBALS}}
        					</table>
            		</div>
        			</div>
        		</div>
        	</div>
        </section>
        <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          Rector configuration
        </h1>
        </section>

        <!-- Main content -->
        <section id="used_settings" class="content">
        	<div class="box">
        		<div class="box-body">
        			<div class="row">
        				<div class="col-xs-12">
        					<p class="textLead">This is a suggestion of configuration directives to use with <a href="">Rector</a> refactoring tool. </p>
        					<p class="textLead">Use this selection as a base to include in the rector.yaml file, at the root of the code source.</p>
        					<p class="textLead">The complete list of <a href="https://github.com/rectorphp/rector/blob/master/docs/AllRectorsOverview.md">rectors</a></p>
        				</div>
                        <div class="col-xs-12" id="results">
<blockquote>
  <p>{{COMPILATION}}</p>
</blockquote>
                        </div>
            		</div>
        			</div>
        		</div>
        	</div>
        </section>
        <!-- Content Header (Page header) -->
        <section class="content-header">
        <h1>
          Level 2
        </h1>
        </section>

        <!-- Main content -->
        <section class="content" id="issues">

        	<div class="box">
        		<div class="box-body">
This is the Level 2 issues, found in your code. 
You should tackle those issues once <a href="data/level1.html">Level 1</a> are done. 
Once you have finished, you should tackle the issues of <a href="data/level3.html">Level 3</a>. 
{{TOTAL}} issues were found.
        			<div id="facets" class="filter clearfix"></div>
        			<table class="table table-striped">
                   		<thead>
                   			<tr>
                   				<th>Analysis</th>
                   				<th>File</th>
                   				<th>Code</th>
                          <th></th>
                   				<th>Severity</th>
                   				<th>Time To Fix</th>
                   				<th>Recipe</th>
                   			</tr>
                   		</thead>
                   		<tbody id="results">
                   		</tbody>
                   	</table>
        		</div>
        	</div>

        </section>
          h     (                                                                
      $                                  "   Q   2   3                       6   Y   ON   E                 ###i<                  V   D              X   @   
  0          .RSQs¾4
r   6    j¼Ei   -     輼        ߺ          9          Ǿ#¼;ľvvv               XYXþ%%%>>>                                                    /                    /  ?      <!DOCTYPE html>
<html>
  <!-- Use the Source, Luke -->
  <head>
    <title>CodeFlower Source code visualization</title>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
    <link type="text/css" rel="stylesheet" href="stylesheets/bootstrap.min.css"/>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="stylesheets/bootstrap-responsive.min.css" rel="stylesheet">
    <link href='http://fonts.googleapis.com/css?family=Rosario:400,700' rel='stylesheet' type='text/css'>
    <link type="text/css" rel="stylesheet" href="stylesheets/style.css"/>
    <style type="text/css">
circle.node {
  cursor: pointer;
  stroke: #000;
  stroke-width: .5px;
}

circle.node.directory {
  stroke: #9ecae1;
  stroke-width: 2px;
}

circle.node.collapsed {
  stroke: #555;
}

.nodetext {
  fill: #252929;
  font-weight: bold;
  text-shadow: 0 0 0.2em white;
}

line.link {
  fill: none;
  stroke: #9ecae1;
  stroke-width: 1.5px;
}

@import url('http://fonts.googleapis.com/css?family=Noto+Sans:400,700');

*{
  margin: 0;
  padding: 0;
}

body{
  background: #f0f0f0;
  font-family: 'Noto Sans', sans-serif;
}

/* The ribbons */

.corner-ribbon{
  width: 200px;
  background: #e43;
  position: absolute;
  top: 25px;
  left: -50px;
  text-align: center;
  line-height: 50px;
  letter-spacing: 1px;
  color: #f0f0f0;
  transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
}

/* Custom styles */

.corner-ribbon.sticky{
  position: fixed;
}

.corner-ribbon.shadow{
  box-shadow: 0 0 3px rgba(0,0,0,.3);
}

/* Different positions */

.corner-ribbon.top-left{
  top: 25px;
  left: -50px;
  transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
}

.corner-ribbon.top-right{
  top: 25px;
  right: -50px;
  left: auto;
  transform: rotate(45deg);
  -webkit-transform: rotate(45deg);
}

.corner-ribbon.bottom-left{
  top: auto;
  bottom: 25px;
  left: -50px;
  transform: rotate(45deg);
  -webkit-transform: rotate(45deg);
}

.corner-ribbon.bottom-right{
  top: auto;
  right: -50px;
  bottom: 25px;
  left: auto;
  transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
}

/* Colors */

.corner-ribbon.white{background: #f0f0f0; color: #555;}
.corner-ribbon.black{background: #333;}
.corner-ribbon.grey{background: #999;}
.corner-ribbon.blue{background: #39d;}
.corner-ribbon.green{background: #2c7;}
.corner-ribbon.turquoise{background: #1b9;}
.corner-ribbon.purple{background: #95b;}
.corner-ribbon.red{background: #e43;}
.corner-ribbon.orange{background: #e82;}
.corner-ribbon.yellow{background: #ec0;}

    </style>
  </head>
  <body>
    <div class="corner-ribbon top-right sticky blue">Beta version</div>
    <div class="content">
      <div class="container">
        <h1>CodeFlower Source code visualization</h1>
        <form class="form-inline">
          <fieldset>
          <label>Flower presentation of your code :</label>
          <select id="project">
            <SELECT>
          </select>
          </fieldset>
        </form>
        <div id="visualization"></div>
        <p class="lead">
        <ul>
            <li>By namespace : hierarchical view of the namespaces, starting from root '\'. </li>
            <li>By inclusion : hierarchical view of the file inclusion. The root is the large node, and every link include the following node.</li>
            <li>By class hierarchy : hierarchical view of classes extensions. Extension is based on extends, and not implements. The large node is the start, but is not a class : it links to every class that is not extending anything </li>
        </ul></p>
        <p class="lead">This report is based on the <a href="http://www.redotheweb.com/CodeFlower/">Code flower</a> from <a href="http://www.redotheweb.com/">Francois Zaninotto</a>.</p>
    </div>
    <script type="text/javascript" src="javascripts/d3/d3.js"></script>
    <script type="text/javascript" src="javascripts/d3/d3.geom.js"></script>
    <script type="text/javascript" src="javascripts/d3/d3.layout.js"></script>
    <script type="text/javascript" src="javascripts/CodeFlower.js"></script>
    <script type="text/javascript" src="javascripts/dataConverter.js"></script>
    <script type="text/javascript">
      var currentCodeFlower;
      var createCodeFlower = function(json) {
        // update the jsonData textarea
//        document.getElementById('jsonData').value = JSON.stringify(json);
        // remove previous flower to save memory
        if (currentCodeFlower) currentCodeFlower.cleanup();
        // adapt layout size to the total number of elements
        var total = countElements(json);
        w = parseInt(Math.sqrt(total) * 30, 10) + 100;
        h = parseInt(Math.sqrt(total) * 30, 10) + 100;
        // create a new CodeFlower
        currentCodeFlower = new CodeFlower("#visualization", 800, 800).update(json);
      };

      d3.json('data/namespaces.json', createCodeFlower);

      document.getElementById('project').addEventListener('change', function() {
        d3.json(this.value, createCodeFlower);
      });

    </script>
  </body>
</html>
Copyright (c) 2013 Francois Zaninotto

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.
var convertToJSON = function(data, origin) {
  return (origin == 'cloc') ? convertFromClocToJSON(data) : convertFromWcToJSON(data);
};

/**
 * Convert the output of cloc in csv to JSON format
 *
 *  > cloc . --csv --exclude-dir=vendor,tmp --by-file --report-file=data.cloc
 */
var convertFromClocToJSON = function(data) {
  var lines = data.split("\n");
  lines.shift(); // drop the header line

  var json = {};
  lines.forEach(function(line) {
    var cols = line.split(',');
    var filename = cols[1];
    if (!filename) return;
    var elements = filename.split(/[\/\\]/);
    var current = json;
    elements.forEach(function(element) {
      if (!current[element]) {
        current[element] = {};
      }
      current = current[element];
    });
    current.language = cols[0];
    current.size = parseInt(cols[4], 10);
  });

  json = getChildren(json)[0];
  json.name = 'root';

  return json;
};

/**
 * Convert the output of wc to JSON format
 *
 *  > git ls-files | xargs wc -l
 */
var convertFromWcToJSON = function(data) {
  var lines = data.split("\n");

  var json = {};
  var filename, size, cols, elements, current;
  lines.forEach(function(line) {
      cols = line.trim().split(' ');
      size = parseInt(cols[0], 10);
      if (!size) return;
      filename = cols[1];
      if (filename === "total") return;
      if (!filename) return;
      elements = filename.split(/[\/\\]/);
      current = json;
      elements.forEach(function(element) {
          if (!current[element]) {
              current[element] = {};
          }
          current = current[element];
      });
      current.size = size;
  });

  json.children = getChildren(json);
  json.name = 'root';

  return json;
};

/**
 * Convert a simple json object into another specifying children as an array
 * Works recursively
 *
 * example input:
 * { a: { b: { c: { size: 12 }, d: { size: 34 } }, e: { size: 56 } } }
 * example output
 * { name: a, children: [
 *   { name: b, children: [
 *     { name: c, size: 12 },
 *     { name: d, size: 34 }
 *   ] },
 *   { name: e, size: 56 }
 * ] } }
 */
var getChildren = function(json) {
  var children = [];
  if (json.language) return children;
  for (var key in json) {
    var child = { name: key };
    if (json[key].size) {
      // value node
      child.size = json[key].size;
      child.language = json[key].language;
    } else {
      // children node
      var childChildren = getChildren(json[key]);
      if (childChildren) child.children = childChildren;
    }
    children.push(child);
    delete json[key];
  }
  return children;
};

// Recursively count all elements in a tree
var countElements = function(node) {
  var nbElements = 1;
  if (node.children) {
    nbElements += node.children.reduce(function(p, v) { return p + countElements(v); }, 0);
  }
  return nbElements;
};
(function(){d3.layout = {};
// Implements hierarchical edge bundling using Holten's algorithm. For each
// input link, a path is computed that travels through the tree, up the parent
// hierarchy to the least common ancestor, and then back down to the destination
// node. Each path is simply an array of nodes.
d3.layout.bundle = function() {
  return function(links) {
    var paths = [],
        i = -1,
        n = links.length;
    while (++i < n) paths.push(d3_layout_bundlePath(links[i]));
    return paths;
  };
};

function d3_layout_bundlePath(link) {
  var start = link.source,
      end = link.target,
      lca = d3_layout_bundleLeastCommonAncestor(start, end),
      points = [start];
  while (start !== lca) {
    start = start.parent;
    points.push(start);
  }
  var k = points.length;
  while (end !== lca) {
    points.splice(k, 0, end);
    end = end.parent;
  }
  return points;
}

function d3_layout_bundleAncestors(node) {
  var ancestors = [],
      parent = node.parent;
  while (parent != null) {
    ancestors.push(node);
    node = parent;
    parent = parent.parent;
  }
  ancestors.push(node);
  return ancestors;
}

function d3_layout_bundleLeastCommonAncestor(a, b) {
  if (a === b) return a;
  var aNodes = d3_layout_bundleAncestors(a),
      bNodes = d3_layout_bundleAncestors(b),
      aNode = aNodes.pop(),
      bNode = bNodes.pop(),
      sharedNode = null;
  while (aNode === bNode) {
    sharedNode = aNode;
    aNode = aNodes.pop();
    bNode = bNodes.pop();
  }
  return sharedNode;
}
d3.layout.chord = function() {
  var chord = {},
      chords,
      groups,
      matrix,
      n,
      padding = 0,
      sortGroups,
      sortSubgroups,
      sortChords;

  function relayout() {
    var subgroups = {},
        groupSums = [],
        groupIndex = d3.range(n),
        subgroupIndex = [],
        k,
        x,
        x0,
        i,
        j;

    chords = [];
    groups = [];

    // Compute the sum.
    k = 0, i = -1; while (++i < n) {
      x = 0, j = -1; while (++j < n) {
        x += matrix[i][j];
      }
      groupSums.push(x);
      subgroupIndex.push(d3.range(n));
      k += x;
    }

    // Sort groups…
    if (sortGroups) {
      groupIndex.sort(function(a, b) {
        return sortGroups(groupSums[a], groupSums[b]);
      });
    }

    // Sort subgroups…
    if (sortSubgroups) {
      subgroupIndex.forEach(function(d, i) {
        d.sort(function(a, b) {
          return sortSubgroups(matrix[i][a], matrix[i][b]);
        });
      });
    }

    // Convert the sum to scaling factor for [0, 2pi].
    // TODO Allow start and end angle to be specified.
    // TODO Allow padding to be specified as percentage?
    k = (2 * Math.PI - padding * n) / k;

    // Compute the start and end angle for each group and subgroup.
    // Note: Opera has a bug reordering object literal properties!
    x = 0, i = -1; while (++i < n) {
      x0 = x, j = -1; while (++j < n) {
        var di = groupIndex[i],
            dj = subgroupIndex[di][j],
            v = matrix[di][dj],
            a0 = x,
            a1 = x += v * k;
        subgroups[di + "-" + dj] = {
          index: di,
          subindex: dj,
          startAngle: a0,
          endAngle: a1,
          value: v
        };
      }
      groups.push({
        index: di,
        startAngle: x0,
        endAngle: x,
        value: (x - x0) / k
      });
      x += padding;
    }

    // Generate chords for each (non-empty) subgroup-subgroup link.
    i = -1; while (++i < n) {
      j = i - 1; while (++j < n) {
        var source = subgroups[i + "-" + j],
            target = subgroups[j + "-" + i];
        if (source.value || target.value) {
          chords.push(source.value < target.value
              ? {source: target, target: source}
              : {source: source, target: target});
        }
      }
    }

    if (sortChords) resort();
  }

  function resort() {
    chords.sort(function(a, b) {
      return sortChords(
          (a.source.value + a.target.value) / 2,
          (b.source.value + b.target.value) / 2);
    });
  }

  chord.matrix = function(x) {
    if (!arguments.length) return matrix;
    n = (matrix = x) && matrix.length;
    chords = groups = null;
    return chord;
  };

  chord.padding = function(x) {
    if (!arguments.length) return padding;
    padding = x;
    chords = groups = null;
    return chord;
  };

  chord.sortGroups = function(x) {
    if (!arguments.length) return sortGroups;
    sortGroups = x;
    chords = groups = null;
    return chord;
  };

  chord.sortSubgroups = function(x) {
    if (!arguments.length) return sortSubgroups;
    sortSubgroups = x;
    chords = null;
    return chord;
  };

  chord.sortChords = function(x) {
    if (!arguments.length) return sortChords;
    sortChords = x;
    if (chords) resort();
    return chord;
  };

  chord.chords = function() {
    if (!chords) relayout();
    return chords;
  };

  chord.groups = function() {
    if (!groups) relayout();
    return groups;
  };

  return chord;
};
// A rudimentary force layout using Gauss-Seidel.
d3.layout.force = function() {
  var force = {},
      event = d3.dispatch("tick"),
      size = [1, 1],
      drag,
      alpha,
      friction = .9,
      linkDistance = d3_layout_forceLinkDistance,
      linkStrength = d3_layout_forceLinkStrength,
      charge = -30,
      gravity = .1,
      theta = .8,
      interval,
      nodes = [],
      links = [],
      distances,
      strengths,
      charges;

  function repulse(node) {
    return function(quad, x1, y1, x2, y2) {
      if (quad.point !== node) {
        var dx = quad.cx - node.x,
            dy = quad.cy - node.y,
            dn = 1 / Math.sqrt(dx * dx + dy * dy);

        /* Barnes-Hut criterion. */
        if ((x2 - x1) * dn < theta) {
          var k = quad.charge * dn * dn;
          node.px -= dx * k;
          node.py -= dy * k;
          return true;
        }

        if (quad.point && isFinite(dn)) {
          var k = quad.pointCharge * dn * dn;
          node.px -= dx * k;
          node.py -= dy * k;
        }
      }
      return !quad.charge;
    };
  }

  function tick() {
    var n = nodes.length,
        m = links.length,
        q,
        i, // current index
        o, // current object
        s, // current source
        t, // current target
        l, // current distance
        k, // current force
        x, // x-distance
        y; // y-distance

    // gauss-seidel relaxation for links
    for (i = 0; i < m; ++i) {
      o = links[i];
      s = o.source;
      t = o.target;
      x = t.x - s.x;
      y = t.y - s.y;
      if (l = (x * x + y * y)) {
        l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l;
        x *= l;
        y *= l;
        t.x -= x * (k = s.weight / (t.weight + s.weight));
        t.y -= y * k;
        s.x += x * (k = 1 - k);
        s.y += y * k;
      }
    }

    // apply gravity forces
    if (k = alpha * gravity) {
      x = size[0] / 2;
      y = size[1] / 2;
      i = -1; if (k) while (++i < n) {
        o = nodes[i];
        o.x += (x - o.x) * k;
        o.y += (y - o.y) * k;
      }
    }

    // compute quadtree center of mass and apply charge forces
    if (charge) {
      d3_layout_forceAccumulate(q = d3.geom.quadtree(nodes), alpha, charges);
      i = -1; while (++i < n) {
        if (!(o = nodes[i]).fixed) {
          q.visit(repulse(o));
        }
      }
    }

    // position verlet integration
    i = -1; while (++i < n) {
      o = nodes[i];
      if (o.fixed) {
        o.x = o.px;
        o.y = o.py;
      } else {
        o.x -= (o.px - (o.px = o.x)) * friction;
        o.y -= (o.py - (o.py = o.y)) * friction;
      }
    }

    event.tick({type: "tick", alpha: alpha});

    // simulated annealing, basically
    return (alpha *= .99) < .005;
  }

  force.on = function(type, listener) {
    event.on(type, listener);
    return force;
  };

  force.nodes = function(x) {
    if (!arguments.length) return nodes;
    nodes = x;
    return force;
  };

  force.links = function(x) {
    if (!arguments.length) return links;
    links = x;
    return force;
  };

  force.size = function(x) {
    if (!arguments.length) return size;
    size = x;
    return force;
  };

  force.linkDistance = function(x) {
    if (!arguments.length) return linkDistance;
    linkDistance = d3.functor(x);
    return force;
  };

  // For backwards-compatibility.
  force.distance = force.linkDistance;

  force.linkStrength = function(x) {
    if (!arguments.length) return linkStrength;
    linkStrength = d3.functor(x);
    return force;
  };

  force.friction = function(x) {
    if (!arguments.length) return friction;
    friction = x;
    return force;
  };

  force.charge = function(x) {
    if (!arguments.length) return charge;
    charge = typeof x === "function" ? x : +x;
    return force;
  };

  force.gravity = function(x) {
    if (!arguments.length) return gravity;
    gravity = x;
    return force;
  };

  force.theta = function(x) {
    if (!arguments.length) return theta;
    theta = x;
    return force;
  };

  force.start = function() {
    var i,
        j,
        n = nodes.length,
        m = links.length,
        w = size[0],
        h = size[1],
        neighbors,
        o;

    for (i = 0; i < n; ++i) {
      (o = nodes[i]).index = i;
      o.weight = 0;
    }

    distances = [];
    strengths = [];
    for (i = 0; i < m; ++i) {
      o = links[i];
      if (typeof o.source == "number") o.source = nodes[o.source];
      if (typeof o.target == "number") o.target = nodes[o.target];
      distances[i] = linkDistance.call(this, o, i);
      strengths[i] = linkStrength.call(this, o, i);
      ++o.source.weight;
      ++o.target.weight;
    }

    for (i = 0; i < n; ++i) {
      o = nodes[i];
      if (isNaN(o.x)) o.x = position("x", w);
      if (isNaN(o.y)) o.y = position("y", h);
      if (isNaN(o.px)) o.px = o.x;
      if (isNaN(o.py)) o.py = o.y;
    }

    charges = [];
    if (typeof charge === "function") {
      for (i = 0; i < n; ++i) {
        charges[i] = +charge.call(this, nodes[i], i);
      }
    } else {
      for (i = 0; i < n; ++i) {
        charges[i] = charge;
      }
    }

    // initialize node position based on first neighbor
    function position(dimension, size) {
      var neighbors = neighbor(i),
          j = -1,
          m = neighbors.length,
          x;
      while (++j < m) if (!isNaN(x = neighbors[j][dimension])) return x;
      return Math.random() * size;
    }

    // initialize neighbors lazily
    function neighbor() {
      if (!neighbors) {
        neighbors = [];
        for (j = 0; j < n; ++j) {
          neighbors[j] = [];
        }
        for (j = 0; j < m; ++j) {
          var o = links[j];
          neighbors[o.source.index].push(o.target);
          neighbors[o.target.index].push(o.source);
        }
      }
      return neighbors[i];
    }

    return force.resume();
  };

  force.resume = function() {
    alpha = .1;
    d3.timer(tick);
    return force;
  };

  force.stop = function() {
    alpha = 0;
    return force;
  };

  // use `node.call(force.drag)` to make nodes draggable
  force.drag = function() {
    if (!drag) drag = d3.behavior.drag()
        .origin(Object)
        .on("dragstart", dragstart)
        .on("drag", d3_layout_forceDrag)
        .on("dragend", d3_layout_forceDragEnd);

    this.on("mouseover.force", d3_layout_forceDragOver)
        .on("mouseout.force", d3_layout_forceDragOut)
        .call(drag);
  };

  function dragstart(d) {
    d3_layout_forceDragOver(d3_layout_forceDragNode = d);
    d3_layout_forceDragForce = force;
  }

  return force;
};

var d3_layout_forceDragForce,
    d3_layout_forceDragNode;

function d3_layout_forceDragOver(d) {
  d.fixed |= 2;
}

function d3_layout_forceDragOut(d) {
  if (d !== d3_layout_forceDragNode) d.fixed &= 1;
}

function d3_layout_forceDragEnd() {
  d3_layout_forceDrag();
  d3_layout_forceDragNode.fixed &= 1;
  d3_layout_forceDragForce = d3_layout_forceDragNode = null;
}

function d3_layout_forceDrag() {
  d3_layout_forceDragNode.px = d3.event.x;
  d3_layout_forceDragNode.py = d3.event.y;
  d3_layout_forceDragForce.resume(); // restart annealing
}

function d3_layout_forceAccumulate(quad, alpha, charges) {
  var cx = 0,
      cy = 0;
  quad.charge = 0;
  if (!quad.leaf) {
    var nodes = quad.nodes,
        n = nodes.length,
        i = -1,
        c;
    while (++i < n) {
      c = nodes[i];
      if (c == null) continue;
      d3_layout_forceAccumulate(c, alpha, charges);
      quad.charge += c.charge;
      cx += c.charge * c.cx;
      cy += c.charge * c.cy;
    }
  }
  if (quad.point) {
    // jitter internal nodes that are coincident
    if (!quad.leaf) {
      quad.point.x += Math.random() - .5;
      quad.point.y += Math.random() - .5;
    }
    var k = alpha * charges[quad.point.index];
    quad.charge += quad.pointCharge = k;
    cx += k * quad.point.x;
    cy += k * quad.point.y;
  }
  quad.cx = cx / quad.charge;
  quad.cy = cy / quad.charge;
}

function d3_layout_forceLinkDistance(link) {
  return 20;
}

function d3_layout_forceLinkStrength(link) {
  return 1;
}
d3.layout.partition = function() {
  var hierarchy = d3.layout.hierarchy(),
      size = [1, 1]; // width, height

  function position(node, x, dx, dy) {
    var children = node.children;
    node.x = x;
    node.y = node.depth * dy;
    node.dx = dx;
    node.dy = dy;
    if (children && (n = children.length)) {
      var i = -1,
          n,
          c,
          d;
      dx = node.value ? dx / node.value : 0;
      while (++i < n) {
        position(c = children[i], x, d = c.value * dx, dy);
        x += d;
      }
    }
  }

  function depth(node) {
    var children = node.children,
        d = 0;
    if (children && (n = children.length)) {
      var i = -1,
          n;
      while (++i < n) d = Math.max(d, depth(children[i]));
    }
    return 1 + d;
  }

  function partition(d, i) {
    var nodes = hierarchy.call(this, d, i);
    position(nodes[0], 0, size[0], size[1] / depth(nodes[0]));
    return nodes;
  }

  partition.size = function(x) {
    if (!arguments.length) return size;
    size = x;
    return partition;
  };

  return d3_layout_hierarchyRebind(partition, hierarchy);
};
d3.layout.pie = function() {
  var value = Number,
      sort = d3_layout_pieSortByValue,
      startAngle = 0,
      endAngle = 2 * Math.PI;

  function pie(data, i) {

    // Compute the numeric values for each data element.
    var values = data.map(function(d, i) { return +value.call(pie, d, i); });

    // Compute the start angle.
    var a = +(typeof startAngle === "function"
        ? startAngle.apply(this, arguments)
        : startAngle);

    // Compute the angular scale factor: from value to radians.
    var k = ((typeof endAngle === "function"
        ? endAngle.apply(this, arguments)
        : endAngle) - startAngle)
        / d3.sum(values);

    // Optionally sort the data.
    var index = d3.range(data.length);
    if (sort != null) index.sort(sort === d3_layout_pieSortByValue
        ? function(i, j) { return values[j] - values[i]; }
        : function(i, j) { return sort(data[i], data[j]); });

    // Compute the arcs!
    var arcs = index.map(function(i) {
      return {
        data: data[i],
        value: d = values[i],
        startAngle: a,
        endAngle: a += d * k
      };
    });

    // Return the arcs in the original data's order.
    return data.map(function(d, i) {
      return arcs[index[i]];
    });
  }

  /**
   * Specifies the value function *x*, which returns a nonnegative numeric value
   * for each datum. The default value function is `Number`. The value function
   * is passed two arguments: the current datum and the current index.
   */
  pie.value = function(x) {
    if (!arguments.length) return value;
    value = x;
    return pie;
  };

  /**
   * Specifies a sort comparison operator *x*. The comparator is passed two data
   * elements from the data array, a and b; it returns a negative value if a is
   * less than b, a positive value if a is greater than b, and zero if a equals
   * b.
   */
  pie.sort = function(x) {
    if (!arguments.length) return sort;
    sort = x;
    return pie;
  };

  /**
   * Specifies the overall start angle of the pie chart. Defaults to 0. The
   * start angle can be specified either as a constant or as a function; in the
   * case of a function, it is evaluated once per array (as opposed to per
   * element).
   */
  pie.startAngle = function(x) {
    if (!arguments.length) return startAngle;
    startAngle = x;
    return pie;
  };

  /**
   * Specifies the overall end angle of the pie chart. Defaults to 2π. The
   * end angle can be specified either as a constant or as a function; in the
   * case of a function, it is evaluated once per array (as opposed to per
   * element).
   */
  pie.endAngle = function(x) {
    if (!arguments.length) return endAngle;
    endAngle = x;
    return pie;
  };

  return pie;
};

var d3_layout_pieSortByValue = {};
// data is two-dimensional array of x,y; we populate y0
d3.layout.stack = function() {
  var values = Object,
      order = d3_layout_stackOrders["default"],
      offset = d3_layout_stackOffsets["zero"],
      out = d3_layout_stackOut,
      x = d3_layout_stackX,
      y = d3_layout_stackY;

  function stack(data, index) {

    // Convert series to canonical two-dimensional representation.
    var series = data.map(function(d, i) {
      return values.call(stack, d, i);
    });

    // Convert each series to canonical [[x,y]] representation.
    var points = series.map(function(d, i) {
      return d.map(function(v, i) {
        return [x.call(stack, v, i), y.call(stack, v, i)];
      });
    });

    // Compute the order of series, and permute them.
    var orders = order.call(stack, points, index);
    series = d3.permute(series, orders);
    points = d3.permute(points, orders);

    // Compute the baseline…
    var offsets = offset.call(stack, points, index);

    // And propagate it to other series.
    var n = series.length,
        m = series[0].length,
        i,
        j,
        o;
    for (j = 0; j < m; ++j) {
      out.call(stack, series[0][j], o = offsets[j], points[0][j][1]);
      for (i = 1; i < n; ++i) {
        out.call(stack, series[i][j], o += points[i - 1][j][1], points[i][j][1]);
      }
    }

    return data;
  }

  stack.values = function(x) {
    if (!arguments.length) return values;
    values = x;
    return stack;
  };

  stack.order = function(x) {
    if (!arguments.length) return order;
    order = typeof x === "function" ? x : d3_layout_stackOrders[x];
    return stack;
  };

  stack.offset = function(x) {
    if (!arguments.length) return offset;
    offset = typeof x === "function" ? x : d3_layout_stackOffsets[x];
    return stack;
  };

  stack.x = function(z) {
    if (!arguments.length) return x;
    x = z;
    return stack;
  };

  stack.y = function(z) {
    if (!arguments.length) return y;
    y = z;
    return stack;
  };

  stack.out = function(z) {
    if (!arguments.length) return out;
    out = z;
    return stack;
  };

  return stack;
}

function d3_layout_stackX(d) {
  return d.x;
}

function d3_layout_stackY(d) {
  return d.y;
}

function d3_layout_stackOut(d, y0, y) {
  d.y0 = y0;
  d.y = y;
}

var d3_layout_stackOrders = {

  "inside-out": function(data) {
    var n = data.length,
        i,
        j,
        max = data.map(d3_layout_stackMaxIndex),
        sums = data.map(d3_layout_stackReduceSum),
        index = d3.range(n).sort(function(a, b) { return max[a] - max[b]; }),
        top = 0,
        bottom = 0,
        tops = [],
        bottoms = [];
    for (i = 0; i < n; ++i) {
      j = index[i];
      if (top < bottom) {
        top += sums[j];
        tops.push(j);
      } else {
        bottom += sums[j];
        bottoms.push(j);
      }
    }
    return bottoms.reverse().concat(tops);
  },

  "reverse": function(data) {
    return d3.range(data.length).reverse();
  },

  "default": function(data) {
    return d3.range(data.length);
  }

};

var d3_layout_stackOffsets = {

  "silhouette": function(data) {
    var n = data.length,
        m = data[0].length,
        sums = [],
        max = 0,
        i,
        j,
        o,
        y0 = [];
    for (j = 0; j < m; ++j) {
      for (i = 0, o = 0; i < n; i++) o += data[i][j][1];
      if (o > max) max = o;
      sums.push(o);
    }
    for (j = 0; j < m; ++j) {
      y0[j] = (max - sums[j]) / 2;
    }
    return y0;
  },

  "wiggle": function(data) {
    var n = data.length,
        x = data[0],
        m = x.length,
        max = 0,
        i,
        j,
        k,
        s1,
        s2,
        s3,
        dx,
        o,
        o0,
        y0 = [];
    y0[0] = o = o0 = 0;
    for (j = 1; j < m; ++j) {
      for (i = 0, s1 = 0; i < n; ++i) s1 += data[i][j][1];
      for (i = 0, s2 = 0, dx = x[j][0] - x[j - 1][0]; i < n; ++i) {
        for (k = 0, s3 = (data[i][j][1] - data[i][j - 1][1]) / (2 * dx); k < i; ++k) {
          s3 += (data[k][j][1] - data[k][j - 1][1]) / dx;
        }
        s2 += s3 * data[i][j][1];
      }
      y0[j] = o -= s1 ? s2 / s1 * dx : 0;
      if (o < o0) o0 = o;
    }
    for (j = 0; j < m; ++j) y0[j] -= o0;
    return y0;
  },

  "expand": function(data) {
    var n = data.length,
        m = data[0].length,
        k = 1 / n,
        i,
        j,
        o,
        y0 = [];
    for (j = 0; j < m; ++j) {
      for (i = 0, o = 0; i < n; i++) o += data[i][j][1];
      if (o) for (i = 0; i < n; i++) data[i][j][1] /= o;
      else for (i = 0; i < n; i++) data[i][j][1] = k;
    }
    for (j = 0; j < m; ++j) y0[j] = 0;
    return y0;
  },

  "zero": function(data) {
    var j = -1,
        m = data[0].length,
        y0 = [];
    while (++j < m) y0[j] = 0;
    return y0;
  }

};

function d3_layout_stackMaxIndex(array) {
  var i = 1,
      j = 0,
      v = array[0][1],
      k,
      n = array.length;
  for (; i < n; ++i) {
    if ((k = array[i][1]) > v) {
      j = i;
      v = k;
    }
  }
  return j;
}

function d3_layout_stackReduceSum(d) {
  return d.reduce(d3_layout_stackSum, 0);
}

function d3_layout_stackSum(p, d) {
  return p + d[1];
}
d3.layout.histogram = function() {
  var frequency = true,
      valuer = Number,
      ranger = d3_layout_histogramRange,
      binner = d3_layout_histogramBinSturges;

  function histogram(data, i) {
    var bins = [],
        values = data.map(valuer, this),
        range = ranger.call(this, values, i),
        thresholds = binner.call(this, range, values, i),
        bin,
        i = -1,
        n = values.length,
        m = thresholds.length - 1,
        k = frequency ? 1 : 1 / n,
        x;

    // Initialize the bins.
    while (++i < m) {
      bin = bins[i] = [];
      bin.dx = thresholds[i + 1] - (bin.x = thresholds[i]);
      bin.y = 0;
    }

    // Fill the bins, ignoring values outside the range.
    i = -1; while(++i < n) {
      x = values[i];
      if ((x >= range[0]) && (x <= range[1])) {
        bin = bins[d3.bisect(thresholds, x, 1, m) - 1];
        bin.y += k;
        bin.push(data[i]);
      }
    }

    return bins;
  }

  // Specifies how to extract a value from the associated data. The default
  // value function is `Number`, which is equivalent to the identity function.
  histogram.value = function(x) {
    if (!arguments.length) return valuer;
    valuer = x;
    return histogram;
  };

  // Specifies the range of the histogram. Values outside the specified range
  // will be ignored. The argument `x` may be specified either as a two-element
  // array representing the minimum and maximum value of the range, or as a
  // function that returns the range given the array of values and the current
  // index `i`. The default range is the extent (minimum and maximum) of the
  // values.
  histogram.range = function(x) {
    if (!arguments.length) return ranger;
    ranger = d3.functor(x);
    return histogram;
  };

  // Specifies how to bin values in the histogram. The argument `x` may be
  // specified as a number, in which case the range of values will be split
  // uniformly into the given number of bins. Or, `x` may be an array of
  // threshold values, defining the bins; the specified array must contain the
  // rightmost (upper) value, thus specifying n + 1 values for n bins. Or, `x`
  // may be a function which is evaluated, being passed the range, the array of
  // values, and the current index `i`, returning an array of thresholds. The
  // default bin function will divide the values into uniform bins using
  // Sturges' formula.
  histogram.bins = function(x) {
    if (!arguments.length) return binner;
    binner = typeof x === "number"
        ? function(range) { return d3_layout_histogramBinFixed(range, x); }
        : d3.functor(x);
    return histogram;
  };

  // Specifies whether the histogram's `y` value is a count (frequency) or a
  // probability (density). The default value is true.
  histogram.frequency = function(x) {
    if (!arguments.length) return frequency;
    frequency = !!x;
    return histogram;
  };

  return histogram;
};

function d3_layout_histogramBinSturges(range, values) {
  return d3_layout_histogramBinFixed(range, Math.ceil(Math.log(values.length) / Math.LN2 + 1));
}

function d3_layout_histogramBinFixed(range, n) {
  var x = -1,
      b = +range[0],
      m = (range[1] - b) / n,
      f = [];
  while (++x <= n) f[x] = m * x + b;
  return f;
}

function d3_layout_histogramRange(values) {
  return [d3.min(values), d3.max(values)];
}
d3.layout.hierarchy = function() {
  var sort = d3_layout_hierarchySort,
      children = d3_layout_hierarchyChildren,
      value = d3_layout_hierarchyValue;

  // Recursively compute the node depth and value.
  // Also converts the data representation into a standard hierarchy structure.
  function recurse(data, depth, nodes) {
    var childs = children.call(hierarchy, data, depth),
        node = d3_layout_hierarchyInline ? data : {data: data};
    node.depth = depth;
    nodes.push(node);
    if (childs && (n = childs.length)) {
      var i = -1,
          n,
          c = node.children = [],
          v = 0,
          j = depth + 1;
      while (++i < n) {
        d = recurse(childs[i], j, nodes);
        d.parent = node;
        c.push(d);
        v += d.value;
      }
      if (sort) c.sort(sort);
      if (value) node.value = v;
    } else if (value) {
      node.value = +value.call(hierarchy, data, depth) || 0;
    }
    return node;
  }

  // Recursively re-evaluates the node value.
  function revalue(node, depth) {
    var children = node.children,
        v = 0;
    if (children && (n = children.length)) {
      var i = -1,
          n,
          j = depth + 1;
      while (++i < n) v += revalue(children[i], j);
    } else if (value) {
      v = +value.call(hierarchy, d3_layout_hierarchyInline ? node : node.data, depth) || 0;
    }
    if (value) node.value = v;
    return v;
  }

  function hierarchy(d) {
    var nodes = [];
    recurse(d, 0, nodes);
    return nodes;
  }

  hierarchy.sort = function(x) {
    if (!arguments.length) return sort;
    sort = x;
    return hierarchy;
  };

  hierarchy.children = function(x) {
    if (!arguments.length) return children;
    children = x;
    return hierarchy;
  };

  hierarchy.value = function(x) {
    if (!arguments.length) return value;
    value = x;
    return hierarchy;
  };

  // Re-evaluates the `value` property for the specified hierarchy.
  hierarchy.revalue = function(root) {
    revalue(root, 0);
    return root;
  };

  return hierarchy;
};

// A method assignment helper for hierarchy subclasses.
function d3_layout_hierarchyRebind(object, hierarchy) {
  object.sort = d3.rebind(object, hierarchy.sort);
  object.children = d3.rebind(object, hierarchy.children);
  object.links = d3_layout_hierarchyLinks;
  object.value = d3.rebind(object, hierarchy.value);

  // If the new API is used, enabling inlining.
  object.nodes = function(d) {
    d3_layout_hierarchyInline = true;
    return (object.nodes = object)(d);
  };

  return object;
}

function d3_layout_hierarchyChildren(d) {
  return d.children;
}

function d3_layout_hierarchyValue(d) {
  return d.value;
}

function d3_layout_hierarchySort(a, b) {
  return b.value - a.value;
}

// Returns an array source+target objects for the specified nodes.
function d3_layout_hierarchyLinks(nodes) {
  return d3.merge(nodes.map(function(parent) {
    return (parent.children || []).map(function(child) {
      return {source: parent, target: child};
    });
  }));
}

// For backwards-compatibility, don't enable inlining by default.
var d3_layout_hierarchyInline = false;
d3.layout.pack = function() {
  var hierarchy = d3.layout.hierarchy().sort(d3_layout_packSort),
      size = [1, 1];

  function pack(d, i) {
    var nodes = hierarchy.call(this, d, i),
        root = nodes[0];

    // Recursively compute the layout.
    root.x = 0;
    root.y = 0;
    d3_layout_packTree(root);

    // Scale the layout to fit the requested size.
    var w = size[0],
        h = size[1],
        k = 1 / Math.max(2 * root.r / w, 2 * root.r / h);
    d3_layout_packTransform(root, w / 2, h / 2, k);

    return nodes;
  }

  pack.size = function(x) {
    if (!arguments.length) return size;
    size = x;
    return pack;
  };

  return d3_layout_hierarchyRebind(pack, hierarchy);
};

function d3_layout_packSort(a, b) {
  return a.value - b.value;
}

function d3_layout_packInsert(a, b) {
  var c = a._pack_next;
  a._pack_next = b;
  b._pack_prev = a;
  b._pack_next = c;
  c._pack_prev = b;
}

function d3_layout_packSplice(a, b) {
  a._pack_next = b;
  b._pack_prev = a;
}

function d3_layout_packIntersects(a, b) {
  var dx = b.x - a.x,
      dy = b.y - a.y,
      dr = a.r + b.r;
  return (dr * dr - dx * dx - dy * dy) > .001; // within epsilon
}

function d3_layout_packCircle(nodes) {
  var xMin = Infinity,
      xMax = -Infinity,
      yMin = Infinity,
      yMax = -Infinity,
      n = nodes.length,
      a, b, c, j, k;

  function bound(node) {
    xMin = Math.min(node.x - node.r, xMin);
    xMax = Math.max(node.x + node.r, xMax);
    yMin = Math.min(node.y - node.r, yMin);
    yMax = Math.max(node.y + node.r, yMax);
  }

  // Create node links.
  nodes.forEach(d3_layout_packLink);

  // Create first node.
  a = nodes[0];
  a.x = -a.r;
  a.y = 0;
  bound(a);

  // Create second node.
  if (n > 1) {
    b = nodes[1];
    b.x = b.r;
    b.y = 0;
    bound(b);

    // Create third node and build chain.
    if (n > 2) {
      c = nodes[2];
      d3_layout_packPlace(a, b, c);
      bound(c);
      d3_layout_packInsert(a, c);
      a._pack_prev = c;
      d3_layout_packInsert(c, b);
      b = a._pack_next;

      // Now iterate through the rest.
      for (var i = 3; i < n; i++) {
        d3_layout_packPlace(a, b, c = nodes[i]);

        // Search for the closest intersection.
        var isect = 0, s1 = 1, s2 = 1;
        for (j = b._pack_next; j !== b; j = j._pack_next, s1++) {
          if (d3_layout_packIntersects(j, c)) {
            isect = 1;
            break;
          }
        }
        if (isect == 1) {
          for (k = a._pack_prev; k !== j._pack_prev; k = k._pack_prev, s2++) {
            if (d3_layout_packIntersects(k, c)) {
              if (s2 < s1) {
                isect = -1;
                j = k;
              }
              break;
            }
          }
        }

        // Update node chain.
        if (isect == 0) {
          d3_layout_packInsert(a, c);
          b = c;
          bound(c);
        } else if (isect > 0) {
          d3_layout_packSplice(a, j);
          b = j;
          i--;
        } else { // isect < 0
          d3_layout_packSplice(j, b);
          a = j;
          i--;
        }
      }
    }
  }

  // Re-center the circles and return the encompassing radius.
  var cx = (xMin + xMax) / 2,
      cy = (yMin + yMax) / 2,
      cr = 0;
  for (var i = 0; i < n; i++) {
    var node = nodes[i];
    node.x -= cx;
    node.y -= cy;
    cr = Math.max(cr, node.r + Math.sqrt(node.x * node.x + node.y * node.y));
  }

  // Remove node links.
  nodes.forEach(d3_layout_packUnlink);

  return cr;
}

function d3_layout_packLink(node) {
  node._pack_next = node._pack_prev = node;
}

function d3_layout_packUnlink(node) {
  delete node._pack_next;
  delete node._pack_prev;
}

function d3_layout_packTree(node) {
  var children = node.children;
  if (children && children.length) {
    children.forEach(d3_layout_packTree);
    node.r = d3_layout_packCircle(children);
  } else {
    node.r = Math.sqrt(node.value);
  }
}

function d3_layout_packTransform(node, x, y, k) {
  var children = node.children;
  node.x = (x += k * node.x);
  node.y = (y += k * node.y);
  node.r *= k;
  if (children) {
    var i = -1, n = children.length;
    while (++i < n) d3_layout_packTransform(children[i], x, y, k);
  }
}

function d3_layout_packPlace(a, b, c) {
  var db = a.r + c.r,
      dx = b.x - a.x,
      dy = b.y - a.y;
  if (db && (dx || dy)) {
    var da = b.r + c.r,
        dc = Math.sqrt(dx * dx + dy * dy),
        cos = Math.max(-1, Math.min(1, (db * db + dc * dc - da * da) / (2 * db * dc))),
        theta = Math.acos(cos),
        x = cos * (db /= dc),
        y = Math.sin(theta) * db;
    c.x = a.x + x * dx + y * dy;
    c.y = a.y + x * dy - y * dx;
  } else {
    c.x = a.x + db;
    c.y = a.y;
  }
}
// Implements a hierarchical layout using the cluster (or dendogram) algorithm.
d3.layout.cluster = function() {
  var hierarchy = d3.layout.hierarchy().sort(null).value(null),
      separation = d3_layout_treeSeparation,
      size = [1, 1]; // width, height

  function cluster(d, i) {
    var nodes = hierarchy.call(this, d, i),
        root = nodes[0],
        previousNode,
        x = 0,
        kx,
        ky;

    // First walk, computing the initial x & y values.
    d3_layout_treeVisitAfter(root, function(node) {
      var children = node.children;
      if (children && children.length) {
        node.x = d3_layout_clusterX(children);
        node.y = d3_layout_clusterY(children);
      } else {
        node.x = previousNode ? x += separation(node, previousNode) : 0;
        node.y = 0;
        previousNode = node;
      }
    });

    // Compute the left-most, right-most, and depth-most nodes for extents.
    var left = d3_layout_clusterLeft(root),
        right = d3_layout_clusterRight(root),
        x0 = left.x - separation(left, right) / 2,
        x1 = right.x + separation(right, left) / 2;

    // Second walk, normalizing x & y to the desired size.
    d3_layout_treeVisitAfter(root, function(node) {
      node.x = (node.x - x0) / (x1 - x0) * size[0];
      node.y = (1 - node.y / root.y) * size[1];
    });

    return nodes;
  }

  cluster.separation = function(x) {
    if (!arguments.length) return separation;
    separation = x;
    return cluster;
  };

  cluster.size = function(x) {
    if (!arguments.length) return size;
    size = x;
    return cluster;
  };

  return d3_layout_hierarchyRebind(cluster, hierarchy);
};

function d3_layout_clusterY(children) {
  return 1 + d3.max(children, function(child) {
    return child.y;
  });
}

function d3_layout_clusterX(children) {
  return children.reduce(function(x, child) {
    return x + child.x;
  }, 0) / children.length;
}

function d3_layout_clusterLeft(node) {
  var children = node.children;
  return children && children.length ? d3_layout_clusterLeft(children[0]) : node;
}

function d3_layout_clusterRight(node) {
  var children = node.children, n;
  return children && (n = children.length) ? d3_layout_clusterRight(children[n - 1]) : node;
}
// Node-link tree diagram using the Reingold-Tilford "tidy" algorithm
d3.layout.tree = function() {
  var hierarchy = d3.layout.hierarchy().sort(null).value(null),
      separation = d3_layout_treeSeparation,
      size = [1, 1]; // width, height

  function tree(d, i) {
    var nodes = hierarchy.call(this, d, i),
        root = nodes[0];

    function firstWalk(node, previousSibling) {
      var children = node.children,
          layout = node._tree;
      if (children && (n = children.length)) {
        var n,
            firstChild = children[0],
            previousChild,
            ancestor = firstChild,
            child,
            i = -1;
        while (++i < n) {
          child = children[i];
          firstWalk(child, previousChild);
          ancestor = apportion(child, previousChild, ancestor);
          previousChild = child;
        }
        d3_layout_treeShift(node);
        var midpoint = .5 * (firstChild._tree.prelim + child._tree.prelim);
        if (previousSibling) {
          layout.prelim = previousSibling._tree.prelim + separation(node, previousSibling);
          layout.mod = layout.prelim - midpoint;
        } else {
          layout.prelim = midpoint;
        }
      } else {
        if (previousSibling) {
          layout.prelim = previousSibling._tree.prelim + separation(node, previousSibling);
        }
      }
    }

    function secondWalk(node, x) {
      node.x = node._tree.prelim + x;
      var children = node.children;
      if (children && (n = children.length)) {
        var i = -1,
            n;
        x += node._tree.mod;
        while (++i < n) {
          secondWalk(children[i], x);
        }
      }
    }

    function apportion(node, previousSibling, ancestor) {
      if (previousSibling) {
        var vip = node,
            vop = node,
            vim = previousSibling,
            vom = node.parent.children[0],
            sip = vip._tree.mod,
            sop = vop._tree.mod,
            sim = vim._tree.mod,
            som = vom._tree.mod,
            shift;
        while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) {
          vom = d3_layout_treeLeft(vom);
          vop = d3_layout_treeRight(vop);
          vop._tree.ancestor = node;
          shift = vim._tree.prelim + sim - vip._tree.prelim - sip + separation(vim, vip);
          if (shift > 0) {
            d3_layout_treeMove(d3_layout_treeAncestor(vim, node, ancestor), node, shift);
            sip += shift;
            sop += shift;
          }
          sim += vim._tree.mod;
          sip += vip._tree.mod;
          som += vom._tree.mod;
          sop += vop._tree.mod;
        }
        if (vim && !d3_layout_treeRight(vop)) {
          vop._tree.thread = vim;
          vop._tree.mod += sim - sop;
        }
        if (vip && !d3_layout_treeLeft(vom)) {
          vom._tree.thread = vip;
          vom._tree.mod += sip - som;
          ancestor = node;
        }
      }
      return ancestor;
    }

    // Initialize temporary layout variables.
    d3_layout_treeVisitAfter(root, function(node, previousSibling) {
      node._tree = {
        ancestor: node,
        prelim: 0,
        mod: 0,
        change: 0,
        shift: 0,
        number: previousSibling ? previousSibling._tree.number + 1 : 0
      };
    });

    // Compute the layout using Buchheim et al.'s algorithm.
    firstWalk(root);
    secondWalk(root, -root._tree.prelim);

    // Compute the left-most, right-most, and depth-most nodes for extents.
    var left = d3_layout_treeSearch(root, d3_layout_treeLeftmost),
        right = d3_layout_treeSearch(root, d3_layout_treeRightmost),
        deep = d3_layout_treeSearch(root, d3_layout_treeDeepest),
        x0 = left.x - separation(left, right) / 2,
        x1 = right.x + separation(right, left) / 2,
        y1 = deep.depth || 1;

    // Clear temporary layout variables; transform x and y.
    d3_layout_treeVisitAfter(root, function(node) {
      node.x = (node.x - x0) / (x1 - x0) * size[0];
      node.y = node.depth / y1 * size[1];
      delete node._tree;
    });

    return nodes;
  }

  tree.separation = function(x) {
    if (!arguments.length) return separation;
    separation = x;
    return tree;
  };

  tree.size = function(x) {
    if (!arguments.length) return size;
    size = x;
    return tree;
  };

  return d3_layout_hierarchyRebind(tree, hierarchy);
};

function d3_layout_treeSeparation(a, b) {
  return a.parent == b.parent ? 1 : 2;
}

// function d3_layout_treeSeparationRadial(a, b) {
//   return (a.parent == b.parent ? 1 : 2) / a.depth;
// }

function d3_layout_treeLeft(node) {
  var children = node.children;
  return children && children.length ? children[0] : node._tree.thread;
}

function d3_layout_treeRight(node) {
  var children = node.children,
      n;
  return children && (n = children.length) ? children[n - 1] : node._tree.thread;
}

function d3_layout_treeSearch(node, compare) {
  var children = node.children;
  if (children && (n = children.length)) {
    var child,
        n,
        i = -1;
    while (++i < n) {
      if (compare(child = d3_layout_treeSearch(children[i], compare), node) > 0) {
        node = child;
      }
    }
  }
  return node;
}

function d3_layout_treeRightmost(a, b) {
  return a.x - b.x;
}

function d3_layout_treeLeftmost(a, b) {
  return b.x - a.x;
}

function d3_layout_treeDeepest(a, b) {
  return a.depth - b.depth;
}

function d3_layout_treeVisitAfter(node, callback) {
  function visit(node, previousSibling) {
    var children = node.children;
    if (children && (n = children.length)) {
      var child,
          previousChild = null,
          i = -1,
          n;
      while (++i < n) {
        child = children[i];
        visit(child, previousChild);
        previousChild = child;
      }
    }
    callback(node, previousSibling);
  }
  visit(node, null);
}

function d3_layout_treeShift(node) {
  var shift = 0,
      change = 0,
      children = node.children,
      i = children.length,
      child;
  while (--i >= 0) {
    child = children[i]._tree;
    child.prelim += shift;
    child.mod += shift;
    shift += child.shift + (change += child.change);
  }
}

function d3_layout_treeMove(ancestor, node, shift) {
  ancestor = ancestor._tree;
  node = node._tree;
  var change = shift / (node.number - ancestor.number);
  ancestor.change += change;
  node.change -= change;
  node.shift += shift;
  node.prelim += shift;
  node.mod += shift;
}

function d3_layout_treeAncestor(vim, node, ancestor) {
  return vim._tree.ancestor.parent == node.parent
      ? vim._tree.ancestor
      : ancestor;
}
// Squarified Treemaps by Mark Bruls, Kees Huizing, and Jarke J. van Wijk
// Modified to support a target aspect ratio by Jeff Heer
d3.layout.treemap = function() {
  var hierarchy = d3.layout.hierarchy(),
      round = Math.round,
      size = [1, 1], // width, height
      padding = null,
      pad = d3_layout_treemapPadNull,
      sticky = false,
      stickies,
      ratio = 0.5 * (1 + Math.sqrt(5)); // golden ratio

  // Compute the area for each child based on value & scale.
  function scale(children, k) {
    var i = -1,
        n = children.length,
        child,
        area;
    while (++i < n) {
      area = (child = children[i]).value * (k < 0 ? 0 : k);
      child.area = isNaN(area) || area <= 0 ? 0 : area;
    }
  }

  // Recursively arranges the specified node's children into squarified rows.
  function squarify(node) {
    var children = node.children;
    if (children && children.length) {
      var rect = pad(node),
          row = [],
          remaining = children.slice(), // copy-on-write
          child,
          best = Infinity, // the best row score so far
          score, // the current row score
          u = Math.min(rect.dx, rect.dy), // initial orientation
          n;
      scale(remaining, rect.dx * rect.dy / node.value);
      row.area = 0;
      while ((n = remaining.length) > 0) {
        row.push(child = remaining[n - 1]);
        row.area += child.area;
        if ((score = worst(row, u)) <= best) { // continue with this orientation
          remaining.pop();
          best = score;
        } else { // abort, and try a different orientation
          row.area -= row.pop().area;
          position(row, u, rect, false);
          u = Math.min(rect.dx, rect.dy);
          row.length = row.area = 0;
          best = Infinity;
        }
      }
      if (row.length) {
        position(row, u, rect, true);
        row.length = row.area = 0;
      }
      children.forEach(squarify);
    }
  }

  // Recursively resizes the specified node's children into existing rows.
  // Preserves the existing layout!
  function stickify(node) {
    var children = node.children;
    if (children && children.length) {
      var rect = pad(node),
          remaining = children.slice(), // copy-on-write
          child,
          row = [];
      scale(remaining, rect.dx * rect.dy / node.value);
      row.area = 0;
      while (child = remaining.pop()) {
        row.push(child);
        row.area += child.area;
        if (child.z != null) {
          position(row, child.z ? rect.dx : rect.dy, rect, !remaining.length);
          row.length = row.area = 0;
        }
      }
      children.forEach(stickify);
    }
  }

  // Computes the score for the specified row, as the worst aspect ratio.
  function worst(row, u) {
    var s = row.area,
        r,
        rmax = 0,
        rmin = Infinity,
        i = -1,
        n = row.length;
    while (++i < n) {
      if (!(r = row[i].area)) continue;
      if (r < rmin) rmin = r;
      if (r > rmax) rmax = r;
    }
    s *= s;
    u *= u;
    return s
        ? Math.max((u * rmax * ratio) / s, s / (u * rmin * ratio))
        : Infinity;
  }

  // Positions the specified row of nodes. Modifies `rect`.
  function position(row, u, rect, flush) {
    var i = -1,
        n = row.length,
        x = rect.x,
        y = rect.y,
        v = u ? round(row.area / u) : 0,
        o;
    if (u == rect.dx) { // horizontal subdivision
      if (flush || v > rect.dy) v = v ? rect.dy : 0; // over+underflow
      while (++i < n) {
        o = row[i];
        o.x = x;
        o.y = y;
        o.dy = v;
        x += o.dx = v ? round(o.area / v) : 0;
      }
      o.z = true;
      o.dx += rect.x + rect.dx - x; // rounding error
      rect.y += v;
      rect.dy -= v;
    } else { // vertical subdivision
      if (flush || v > rect.dx) v = v ? rect.dx : 0; // over+underflow
      while (++i < n) {
        o = row[i];
        o.x = x;
        o.y = y;
        o.dx = v;
        y += o.dy = v ? round(o.area / v) : 0;
      }
      o.z = false;
      o.dy += rect.y + rect.dy - y; // rounding error
      rect.x += v;
      rect.dx -= v;
    }
  }

  function treemap(d) {
    var nodes = stickies || hierarchy(d),
        root = nodes[0];
    root.x = 0;
    root.y = 0;
    root.dx = size[0];
    root.dy = size[1];
    if (stickies) hierarchy.revalue(root);
    scale([root], root.dx * root.dy / root.value);
    (stickies ? stickify : squarify)(root);
    if (sticky) stickies = nodes;
    return nodes;
  }

  treemap.size = function(x) {
    if (!arguments.length) return size;
    size = x;
    return treemap;
  };

  treemap.padding = function(x) {
    if (!arguments.length) return padding;

    function padFunction(node) {
      var p = x.call(treemap, node, node.depth);
      return p == null
          ? d3_layout_treemapPadNull(node)
          : d3_layout_treemapPad(node, typeof p === "number" ? [p, p, p, p] : p);
    }

    function padConstant(node) {
      return d3_layout_treemapPad(node, x);
    }

    var type;
    pad = (padding = x) == null ? d3_layout_treemapPadNull
        : (type = typeof x) === "function" ? padFunction
        : type === "number" ? (x = [x, x, x, x], padConstant)
        : padConstant;
    return treemap;
  };

  treemap.round = function(x) {
    if (!arguments.length) return round != Number;
    round = x ? Math.round : Number;
    return treemap;
  };

  treemap.sticky = function(x) {
    if (!arguments.length) return sticky;
    sticky = x;
    stickies = null;
    return treemap;
  };

  treemap.ratio = function(x) {
    if (!arguments.length) return ratio;
    ratio = x;
    return treemap;
  };

  return d3_layout_hierarchyRebind(treemap, hierarchy);
};

function d3_layout_treemapPadNull(node) {
  return {x: node.x, y: node.y, dx: node.dx, dy: node.dy};
}

function d3_layout_treemapPad(node, padding) {
  var x = node.x + padding[3],
      y = node.y + padding[0],
      dx = node.dx - padding[1] - padding[3],
      dy = node.dy - padding[0] - padding[2];
  if (dx < 0) { x += dx / 2; dx = 0; }
  if (dy < 0) { y += dy / 2; dy = 0; }
  return {x: x, y: y, dx: dx, dy: dy};
}
})();
/**
 * Chrome AppSniffer
 *
 * Detect apps run on current page and send back to background page.
 * Some part of this script was refered from Wappalyzer Firefox Addon.
 *
 * @author Bao Nguyen <contact@nqbao.com>
 * @license GPLv3
 **/
 
(function () {
	var _apps = {};
	var doc = document.documentElement;
	var a
	
	// 1: detect by meta tags, the first matching group will be version
	var metas = doc.getElementsByTagName("meta");
	var meta_tests = {
		'generator': {
			'Joomla': /joomla!?\s*([\d\.]+)?/i,
			'vBulletin': /vBulletin\s*(.*)/i,
			'WordPress': /WordPress\s*(.*)/i,
			'XOOPS': /xoops/i,
			'Plone': /plone/i,
			'MediaWiki': /MediaWiki/i,
			'CMSMadeSimple': /CMS Made Simple/i,
			'SilverStripe': /SilverStripe/i,
			'Movable Type': /Movable Type/i,
			'Amiro.CMS': /Amiro/i,
			'Koobi': /koobi/i,
			'bbPress': /bbPress/i,
			'DokuWiki': /dokuWiki/i,
			'TYPO3': /TYPO3/i,
			'PHP-Nuke': /PHP-Nuke/i,
			'DotNetNuke': /DotNetNuke/i,
			'Sitefinity': /Sitefinity\s+(.*)/i,
			'WebGUI': /WebGUI/i,
			'ez Publish': /eZ\s*Publish/i,
			'BIGACE': /BIGACE/i,
			'TypePad': /typepad\.com/i,
			'Blogger': /blogger/i,
			'PrestaShop': /PrestaShop/i,
			'SharePoint': /SharePoint/,
			'JaliosJCMS': /Jalios JCMS/i,
			'ZenCart': /zen-cart/i,
			'WPML': /WPML/i,
			'PivotX': /PivotX/i,
			'OpenACS': /OpenACS/i,
			'AlphaCMS': /alphacms\s+(.*)/i,
			'concrete5': /concrete5 -\s*(.*)$/,
			'Webnode': /Webnode/,
			'GetSimple': /GetSimple/,
			'DataLifeEngine': /DataLife Engine/,
			'ClanSphere': /ClanSphere/,
		},
		'copyright': {
			'phpBB': /phpBB/i
		},
		'elggrelease': {
			'Elgg': /.+/
		},
		'powered-by': {
			'Serendipity': /Serendipity/i,
		},
		'author': {
			'Avactis': /Avactis Team/i
		}
	};

	for (var idx in metas)
	{
		var m = metas[idx];
		var name = m.name ? m.name.toLowerCase() : "";

		if (!meta_tests[name]) continue;
		
		for (var t in meta_tests[name])
		{
			if (t in _apps) continue;
			
			var r = meta_tests[name][t].exec(m.content);
			if (r)
			{
				_apps[t] = r[1] ? r[1] : -1;
			}
		}
	}

	// 2: detect by script tags
	var scripts = doc.getElementsByTagName("script");
	
	var script_tests = {
		'Google Analytics': /google-analytics.com\/(ga|urchin).js/i,
		'Quantcast': /quantserve\.com\/quant\.js/i,
		'Prototype': /prototype\.js/i,
		'Joomla': /\/components\/com_/,
		'Ubercart': /uc_cart/i,
		'Closure': /\/goog\/base\.js/i,
		'MODx': /\/min\/b=.*f=.*/,
		'MooTools': /mootools/i,
		'Dojo': /dojo(\.xd)?\.js/i,
		'script.aculo.us': /scriptaculous\.js/i,
		'Disqus': /disqus.com\/forums/i,
		'GetSatisfaction': /getsatisfaction\.com\/feedback/i,
		'Wibiya': /wibiya\.com\/Loaders\//i,
		'reCaptcha': /(google\.com\/recaptcha|api\.recaptcha\.net\/)/i,
		'Mollom': /mollom\/mollom\.js/i, // only work on Drupal now
		'ZenPhoto': /zp-core\/js/i,
		'Gallery2': /main\.php\?.*g2_.*/i,
		'AdSense': /pagead\/show_ads\.js/,
		'XenForo': /js\/xenforo\//i,
		'Cappuccino': /Frameworks\/Objective-J\/Objective-J\.js/,
		'Avactis': /\/avactis-themes\//i,
		'Volusion': /a\/j\/javascripts\.js/,
		'AddThis': /addthis\.com\/js/,
		'BuySellAds': /buysellads.com\/.*bsa\.js/,
		'Weebly': /weebly\.com\/weebly\//,
		'Bootstrap': /bootstrap-.*\.js/,
		'Jigsy': /javascripts\/asterion\.js/, // may change later
		'Yola': /analytics\.yola\.net/, // may change later
		'Alfresco': /(alfresco)+(-min)?(\/scripts\/menu)?\.js/ // both Alfresco Share and Explorer apps
	};

	for (var idx in scripts)
	{
		var s = scripts[idx];
		if (!s.src) continue;
		s = s.src;

		for (var t in script_tests)
		{
			if (t in _apps) continue;
			if (script_tests[t].test(s))
			{
				_apps[t] = -1;
			}
		}
	}

	// 3: detect by domains

	// 4: detect by regexp
	var text = document.documentElement.outerHTML;
	var text_tests = {
		'SMF': /<script .+\s+var smf_/i,
		'Magento': /var BLANK_URL = '[^>]+js\/blank\.html'/i,
		'Tumblr': /<iframe src=("|')http:\/\/\S+\.tumblr\.com/i,
		'WordPress': /<link rel=("|')stylesheet("|') [^>]+wp-content/i,
		'Closure': /<script[^>]*>.*goog\.require/i,
		'Liferay': /<script[^>]*>.*LifeRay\.currentURL/i,
		'vBulletin': /vbmenu_control/i,
		'MODx': /(<a[^>]+>Powered by MODx<\/a>|var el= \$\('modxhost'\);|<script type=("|')text\/javascript("|')>var MODX_MEDIA_PATH = "media";)/i,
		'miniBB': /<a href=("|')[^>]+minibb.+\s*<!--End of copyright link/i,
		'PHP-Fusion': /(href|src)=["']?infusions\//i, // @todo: recheck this pattern again
		'OpenX': /(href|src)=["'].*delivery\/(afr|ajs|avw|ck)\.php[^"']*/,
		'GetSatisfaction': /asset_host\s*\+\s*"javascripts\/feedback.*\.js/igm, // better recognization
		'Fatwire': /\/Satellite\?|\/ContentServer\?/,
		'Contao': /powered by (TYPOlight|Contao)/i,
		'Moodle' : /<link[^>]*\/theme\/standard\/styles.php".*>|<link[^>]*\/theme\/styles.php\?theme=.*".*>/,
		'1c-bitrix' : /<link[^>]*\/bitrix\/.*?>/i,
		'OpenCMS' : /<link[^>]*\.opencms\..*?>/i,
		'HumansTxt': /<link[^>]*rel=['"]?author['"]?/i,
		'GoogleFontApi': /ref=["']?http:\/\/fonts.googleapis.com\//i,
		'Prostores' : /-legacycss\/Asset">/,
		'osCommerce': /(product_info\.php\?products_id|_eof \/\/-->)/,
		'OpenCart': /index.php\?route=product\/product/,
		'Shibboleth': /<form action="\/idp\/Authn\/UserPassword" method="post">/
	};

	for (t in text_tests)
	{
		if (t in _apps) continue;
		if (text_tests[t].test(text))
		{
			_apps[t] = -1;
		}
	}
	
	// TODO: merge inline detector with version detector
	
	// 5: detect by inline javascript
	var js_tests = {
		'Drupal': function() {
			return window.Drupal != null;
		},
		'TomatoCMS': function() {
			return window.Tomato != null;
		},
		'MojoMotor': function() {
			return window.Mojo != null;
		},
		'ErainCart': function() {
			return window.fn_register_hooks != null;
		},
		'SugarCRM': function() {
			return window.SUGAR != null;
		},
		'YUI': function() {
			return window.YAHOO|window.YUI != null;
		},
		'jQuery': function() {
			return window.jQuery != null;
		},
		'jQuery UI': function() {
			return window.jQuery != null && window.jQuery.ui != null;
		},
		'Typekit': function() {
			return window.Typekit != null;
		},
		'Facebook': function() {
			return window.FB != null && window.FB.api != null;
		},
		'ExtJS': function() {
			return window.Ext != null;
		},
		'Modernizr': function() {
			return window.Modernizr != null;
		},
		'Raphael': function() {
			return window.Raphael != null;
		},
		'Cufon': function() {
			return window.Cufon != null;
		},
		'sIFR': function() {
			return window.sIFR != null;
		},
		'Xiti': function() {
			return window.xtsite != null && window.xtpage != null;
		},
		'Piwik': function() {
			return window.Piwik != null;
		},
		'IPB': function() {
			return window.IPBoard != null;
		},
		'MyBB': function() {
			return window.MyBB != null;
		},
		'Clicky': function() {
			return window.clicky != null;
		},
		'Woopra': function() {
			return window.woopraTracker != null;
		},
		'RightJS': function() {		
			return window.RightJS != null;
		},
		'OpenWebAnalytics': function() {
			return window.owa_baseUrl != null;
		},
		'Prettify': function() {
			return window.prettyPrint != null;
		},
		'SiteCatalyst': function() {
			return window.s_account != null;
		},
		'Twitter': function() {
			return window.twttr != null;
		},
		'Coremetrics': function() {
			return window.cmCreatePageviewTag != null;
		},
		'Buzz': function() {
			return window.google_buzz__base_url != null;
		},
		'Plus1': function() {
			return window.gapi && window.gapi.plusone;
		},
		'Google Loader': function() {
			return window.google && window.google.load != null;
		},
		'GoogleMapApi': function() {
			return window.google && window.google.maps != null;
		},
		'Head JS': function() {
			return window.head && window.head.js != null;
		},
		'SWFObject': function() {
			return window.swfobject != null;
		},
		'Chitika': function() {
			return window.ch_client && window.ch_write_iframe;
		},
		'Jimdo': function() {
			return window.jimdoData != null;
		},
		'Webs': function() {
			return window.webs != null;
		},
		'Backbone.js': function() {
			return window.Backbone && typeof(window.Backbone.sync) === 'function';
		},
		'Underscore.js': function() {
			return window._ && typeof(window._.identity) === 'function' 
				&& window._.identity('abc') === 'abc';
		},
		'Spine': function() {
			return window.Spine != null;
		}
	};
	
	for (t in js_tests)
	{
		if (t in _apps) continue;
		if (js_tests[t]())
		{
			_apps[t] = -1;
		}
	}

	// 6: detect some script version when available
	var js_versions = {		
		'Prototype': function() {
			if('Prototype' in window && Prototype.Version!=undefined)
				return window.Prototype.Version			
		},
		'script.aculo.us': function() {
			if('Scriptaculous' in window && Scriptaculous.Version!=undefined)
				return window.Scriptaculous.Version			
		},
		'jQuery': function() {
			if(typeof jQuery == 'function' && jQuery.prototype.jquery!=undefined )
				return jQuery.prototype.jquery
		},
		'jQuery UI': function() {
			if(typeof jQuery == 'function' && jQuery.ui && jQuery.ui.version!=undefined )
				return jQuery.ui.version
		},
		'Dojo': function() {
			if(typeof dojo == 'object' && dojo.version.toString()!=undefined)
				return dojo.version				
		},
		'YUI': function() {
			if(typeof YAHOO == 'object' && YAHOO.VERSION!=undefined )
				return YAHOO.VERSION
			if('YUI' in window && typeof YUI == 'function' && YUI().version!=undefined)
				return YUI().version
		},
		'MooTools': function() {
			 if(typeof MooTools == 'object' && MooTools.version!=undefined)
				return MooTools.version
		},
		'ExtJS': function() {
			if(typeof Ext === 'object' && Ext.version!=undefined)
				return Ext.version
		},
		'RightJS': function() {
			if('RightJS' in window && RightJS.version!=undefined)
				return RightJS.version
		},
		'Modernizr': function() {
			if(window.Modernizr != null && Modernizr._version!=undefined)
				return Modernizr._version
		},
		'Raphael': function() {
			if(window.Raphael != null && Raphael.version!=undefined)
				return Raphael.version
		},
		'Backbone.js': function() {
			if (window.Backbone && window.Backbone.VERSION)
				return window.Backbone.VERSION;
		},
		'Underscore.js': function() {
			if (window._ && window._.VERSION)
				return window._.VERSION;
		},
		'Spine': function() {
			if(window.Spine && window.Spine.version)
				return window.Spine.version;	
		}
	};
	
	for (a in _apps)
	{		
		if (_apps[a]==-1 && js_versions[a])
		{
			var r = js_versions[a]()
			_apps[a] = r?r:-1
		}
	}

	// 7: detect by header
	// @todo

	// 8: detect based on built-in database
	// @todo

	// 9: detect based on defined css classes
	var cssClasses = {
		'Bootstrap': ['hero-unit', '.carousel-control', '[class^="icon-"]:last-child']
	};

	for (t in cssClasses) {
		if (t in _apps) continue;

		var found = true;
		for(css in cssClasses[t]) {
			var act = false;
			var name = cssClasses[t][css];
			
			/* Iterate through all registered css classes and check for presence */
			for(cssFile in document.styleSheets) {
				for(cssRule in document.styleSheets[cssFile].cssRules) {
					var style = document.styleSheets[cssFile].cssRules[cssRule];

					if (typeof style === "undefined") continue;
					if (typeof style.selectorText === "undefined") continue;

					if (style.selectorText.indexOf(name) != -1) {
						act = true;
						break;
					}
				}
				if (act === true) break;
			}

			found = found & act;
		}

		if(found == true) {
			_apps[t] = -1;
		} else {
			break;
		}
	}

	// convert to array
	var jsonString = JSON.stringify(_apps);
	// send back to background page
	var meta = document.getElementById('chromesniffer_meta');
	meta.content = jsonString;

	//Notify Background Page
	var done = document.createEvent('Event');
	done.initEvent('ready', true, true);
	meta.dispatchEvent(done);
})();
(function(){if (!Date.now) Date.now = function() {
  return +new Date;
};
try {
  document.createElement("div").style.setProperty("opacity", 0, "");
} catch (error) {
  var d3_style_prototype = CSSStyleDeclaration.prototype,
      d3_style_setProperty = d3_style_prototype.setProperty;
  d3_style_prototype.setProperty = function(name, value, priority) {
    d3_style_setProperty.call(this, name, value + "", priority);
  };
}
d3 = {version: "2.5.0"}; // semver
var d3_array = d3_arraySlice; // conversion for NodeLists

function d3_arrayCopy(pseudoarray) {
  var i = -1, n = pseudoarray.length, array = [];
  while (++i < n) array.push(pseudoarray[i]);
  return array;
}

function d3_arraySlice(pseudoarray) {
  return Array.prototype.slice.call(pseudoarray);
}

try {
  d3_array(document.documentElement.childNodes)[0].nodeType;
} catch(e) {
  d3_array = d3_arrayCopy;
}

var d3_arraySubclass = [].__proto__?

// Until ECMAScript supports array subclassing, prototype injection works well.
function(array, prototype) {
  array.__proto__ = prototype;
}:

// And if your browser doesn't support __proto__, we'll use direct extension.
function(array, prototype) {
  for (var property in prototype) array[property] = prototype[property];
};
function d3_this() {
  return this;
}
d3.functor = function(v) {
  return typeof v === "function" ? v : function() { return v; };
};
// A getter-setter method that preserves the appropriate `this` context.
d3.rebind = function(object, method) {
  return function() {
    var x = method.apply(object, arguments);
    return arguments.length ? object : x;
  };
};
d3.ascending = function(a, b) {
  return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
};
d3.descending = function(a, b) {
  return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
};
d3.mean = function(array, f) {
  var n = array.length,
      a,
      m = 0,
      i = -1,
      j = 0;
  if (arguments.length === 1) {
    while (++i < n) if (d3_number(a = array[i])) m += (a - m) / ++j;
  } else {
    while (++i < n) if (d3_number(a = f.call(array, array[i], i))) m += (a - m) / ++j;
  }
  return j ? m : undefined;
};
d3.median = function(array, f) {
  if (arguments.length > 1) array = array.map(f);
  array = array.filter(d3_number);
  return array.length ? d3.quantile(array.sort(d3.ascending), .5) : undefined;
};
d3.min = function(array, f) {
  var i = -1,
      n = array.length,
      a,
      b;
  if (arguments.length === 1) {
    while (++i < n && ((a = array[i]) == null || a != a)) a = undefined;
    while (++i < n) if ((b = array[i]) != null && a > b) a = b;
  } else {
    while (++i < n && ((a = f.call(array, array[i], i)) == null || a != a)) a = undefined;
    while (++i < n) if ((b = f.call(array, array[i], i)) != null && a > b) a = b;
  }
  return a;
};
d3.max = function(array, f) {
  var i = -1,
      n = array.length,
      a,
      b;
  if (arguments.length === 1) {
    while (++i < n && ((a = array[i]) == null || a != a)) a = undefined;
    while (++i < n) if ((b = array[i]) != null && b > a) a = b;
  } else {
    while (++i < n && ((a = f.call(array, array[i], i)) == null || a != a)) a = undefined;
    while (++i < n) if ((b = f.call(array, array[i], i)) != null && b > a) a = b;
  }
  return a;
};
d3.extent = function(array, f) {
  var i = -1,
      n = array.length,
      a,
      b,
      c;
  if (arguments.length === 1) {
    while (++i < n && ((a = c = array[i]) == null || a != a)) a = c = undefined;
    while (++i < n) if ((b = array[i]) != null) {
      if (a > b) a = b;
      if (c < b) c = b;
    }
  } else {
    while (++i < n && ((a = c = f.call(array, array[i], i)) == null || a != a)) a = undefined;
    while (++i < n) if ((b = f.call(array, array[i], i)) != null) {
      if (a > b) a = b;
      if (c < b) c = b;
    }
  }
  return [a, c];
};
d3.random = {
  normal: function(mean, deviation) {
    if (arguments.length < 2) deviation = 1;
    if (arguments.length < 1) mean = 0;
    return function() {
      var x, y, r;
      do {
        x = Math.random() * 2 - 1;
        y = Math.random() * 2 - 1;
        r = x * x + y * y;
      } while (!r || r > 1);
      return mean + deviation * x * Math.sqrt(-2 * Math.log(r) / r);
    };
  }
};
function d3_number(x) {
  return x != null && !isNaN(x);
}
d3.sum = function(array, f) {
  var s = 0,
      n = array.length,
      a,
      i = -1;

  if (arguments.length === 1) {
    while (++i < n) if (!isNaN(a = +array[i])) s += a;
  } else {
    while (++i < n) if (!isNaN(a = +f.call(array, array[i], i))) s += a;
  }

  return s;
};
// R-7 per <http://en.wikipedia.org/wiki/Quantile>
d3.quantile = function(values, p) {
  var H = (values.length - 1) * p + 1,
      h = Math.floor(H),
      v = values[h - 1],
      e = H - h;
  return e ? v + e * (values[h] - v) : v;
};
d3.zip = function() {
  if (!(n = arguments.length)) return [];
  for (var i = -1, m = d3.min(arguments, d3_zipLength), zips = new Array(m); ++i < m;) {
    for (var j = -1, n, zip = zips[i] = new Array(n); ++j < n;) {
      zip[j] = arguments[j][i];
    }
  }
  return zips;
};

function d3_zipLength(d) {
  return d.length;
}
// Locate the insertion point for x in a to maintain sorted order. The
// arguments lo and hi may be used to specify a subset of the array which should
// be considered; by default the entire array is used. If x is already present
// in a, the insertion point will be before (to the left of) any existing
// entries. The return value is suitable for use as the first argument to
// `array.splice` assuming that a is already sorted.
//
// The returned insertion point i partitions the array a into two halves so that
// all v < x for v in a[lo:i] for the left side and all v >= x for v in a[i:hi]
// for the right side.
d3.bisectLeft = function(a, x, lo, hi) {
  if (arguments.length < 3) lo = 0;
  if (arguments.length < 4) hi = a.length;
  while (lo < hi) {
    var mid = (lo + hi) >> 1;
    if (a[mid] < x) lo = mid + 1;
    else hi = mid;
  }
  return lo;
};

// Similar to bisectLeft, but returns an insertion point which comes after (to
// the right of) any existing entries of x in a.
//
// The returned insertion point i partitions the array into two halves so that
// all v <= x for v in a[lo:i] for the left side and all v > x for v in a[i:hi]
// for the right side.
d3.bisect =
d3.bisectRight = function(a, x, lo, hi) {
  if (arguments.length < 3) lo = 0;
  if (arguments.length < 4) hi = a.length;
  while (lo < hi) {
    var mid = (lo + hi) >> 1;
    if (x < a[mid]) hi = mid;
    else lo = mid + 1;
  }
  return lo;
};
d3.first = function(array, f) {
  var i = 0,
      n = array.length,
      a = array[0],
      b;
  if (arguments.length === 1) f = d3.ascending;
  while (++i < n) {
    if (f.call(array, a, b = array[i]) > 0) {
      a = b;
    }
  }
  return a;
};
d3.last = function(array, f) {
  var i = 0,
      n = array.length,
      a = array[0],
      b;
  if (arguments.length === 1) f = d3.ascending;
  while (++i < n) {
    if (f.call(array, a, b = array[i]) <= 0) {
      a = b;
    }
  }
  return a;
};
d3.nest = function() {
  var nest = {},
      keys = [],
      sortKeys = [],
      sortValues,
      rollup;

  function map(array, depth) {
    if (depth >= keys.length) return rollup
        ? rollup.call(nest, array) : (sortValues
        ? array.sort(sortValues)
        : array);

    var i = -1,
        n = array.length,
        key = keys[depth++],
        keyValue,
        object,
        o = {};

    while (++i < n) {
      if ((keyValue = key(object = array[i])) in o) {
        o[keyValue].push(object);
      } else {
        o[keyValue] = [object];
      }
    }

    for (keyValue in o) {
      o[keyValue] = map(o[keyValue], depth);
    }

    return o;
  }

  function entries(map, depth) {
    if (depth >= keys.length) return map;

    var a = [],
        sortKey = sortKeys[depth++],
        key;

    for (key in map) {
      a.push({key: key, values: entries(map[key], depth)});
    }

    if (sortKey) a.sort(function(a, b) {
      return sortKey(a.key, b.key);
    });

    return a;
  }

  nest.map = function(array) {
    return map(array, 0);
  };

  nest.entries = function(array) {
    return entries(map(array, 0), 0);
  };

  nest.key = function(d) {
    keys.push(d);
    return nest;
  };

  // Specifies the order for the most-recently specified key.
  // Note: only applies to entries. Map keys are unordered!
  nest.sortKeys = function(order) {
    sortKeys[keys.length - 1] = order;
    return nest;
  };

  // Specifies the order for leaf values.
  // Applies to both maps and entries array.
  nest.sortValues = function(order) {
    sortValues = order;
    return nest;
  };

  nest.rollup = function(f) {
    rollup = f;
    return nest;
  };

  return nest;
};
d3.keys = function(map) {
  var keys = [];
  for (var key in map) keys.push(key);
  return keys;
};
d3.values = function(map) {
  var values = [];
  for (var key in map) values.push(map[key]);
  return values;
};
d3.entries = function(map) {
  var entries = [];
  for (var key in map) entries.push({key: key, value: map[key]});
  return entries;
};
d3.permute = function(array, indexes) {
  var permutes = [],
      i = -1,
      n = indexes.length;
  while (++i < n) permutes[i] = array[indexes[i]];
  return permutes;
};
d3.merge = function(arrays) {
  return Array.prototype.concat.apply([], arrays);
};
d3.split = function(array, f) {
  var arrays = [],
      values = [],
      value,
      i = -1,
      n = array.length;
  if (arguments.length < 2) f = d3_splitter;
  while (++i < n) {
    if (f.call(values, value = array[i], i)) {
      values = [];
    } else {
      if (!values.length) arrays.push(values);
      values.push(value);
    }
  }
  return arrays;
};

function d3_splitter(d) {
  return d == null;
}
function d3_collapse(s) {
  return s.replace(/(^\s+)|(\s+$)/g, "").replace(/\s+/g, " ");
}
/**
 * @param {number} start
 * @param {number=} stop
 * @param {number=} step
 */
d3.range = function(start, stop, step) {
  if (arguments.length < 3) {
    step = 1;
    if (arguments.length < 2) {
      stop = start;
      start = 0;
    }
  }
  if ((stop - start) / step == Infinity) throw new Error("infinite range");
  var range = [],
       i = -1,
       j;
  if (step < 0) while ((j = start + step * ++i) > stop) range.push(j);
  else while ((j = start + step * ++i) < stop) range.push(j);
  return range;
};
d3.requote = function(s) {
  return s.replace(d3_requote_re, "\\$&");
};

var d3_requote_re = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;
d3.round = function(x, n) {
  return n
      ? Math.round(x * Math.pow(10, n)) * Math.pow(10, -n)
      : Math.round(x);
};
d3.xhr = function(url, mime, callback) {
  var req = new XMLHttpRequest;
  if (arguments.length < 3) callback = mime;
  else if (mime && req.overrideMimeType) req.overrideMimeType(mime);
  req.open("GET", url, true);
  req.onreadystatechange = function() {
    if (req.readyState === 4) callback(req.status < 300 ? req : null);
  };
  req.send(null);
};
d3.text = function(url, mime, callback) {
  function ready(req) {
    callback(req && req.responseText);
  }
  if (arguments.length < 3) {
    callback = mime;
    mime = null;
  }
  d3.xhr(url, mime, ready);
};
d3.json = function(url, callback) {
  d3.text(url, "application/json", function(text) {
    callback(text ? JSON.parse(text) : null);
  });
};
d3.html = function(url, callback) {
  d3.text(url, "text/html", function(text) {
    if (text != null) { // Treat empty string as valid HTML.
      var range = document.createRange();
      range.selectNode(document.body);
      text = range.createContextualFragment(text);
    }
    callback(text);
  });
};
d3.xml = function(url, mime, callback) {
  function ready(req) {
    callback(req && req.responseXML);
  }
  if (arguments.length < 3) {
    callback = mime;
    mime = null;
  }
  d3.xhr(url, mime, ready);
};
d3.ns = {

  prefix: {
    svg: "http://www.w3.org/2000/svg",
    xhtml: "http://www.w3.org/1999/xhtml",
    xlink: "http://www.w3.org/1999/xlink",
    xml: "http://www.w3.org/XML/1998/namespace",
    xmlns: "http://www.w3.org/2000/xmlns/"
  },

  qualify: function(name) {
    var i = name.indexOf(":");
    return i < 0 ? name : {
      space: d3.ns.prefix[name.substring(0, i)],
      local: name.substring(i + 1)
    };
  }

};
d3.dispatch = function() {
  var dispatch = new d3_dispatch(),
      i = -1,
      n = arguments.length;
  while (++i < n) dispatch[arguments[i]] = d3_dispatch_event();
  return dispatch;
};

function d3_dispatch() {}

d3_dispatch.prototype.on = function(type, listener) {
  var i = type.indexOf("."),
      name = "";

  // Extract optional namespace, e.g., "click.foo"
  if (i > 0) {
    name = type.substring(i + 1);
    type = type.substring(0, i);
  }

  this[type].on(name, listener);
};

function d3_dispatch_event() {
  var listeners = [],
      listenerByName = {};

  function dispatch() {
    var z = listeners, // defensive reference
        i = -1,
        n = z.length,
        l;
    while (++i < n) if ((l = z[i])._on) l.apply(this, arguments);
  }

  dispatch.on = function(name, listener) {
    var l, i;

    // remove the old listener, if any
    if (l = listenerByName[name]) {
      l._on = false;
      listeners = listeners.slice(0, i = listeners.indexOf(l)).concat(listeners.slice(i + 1));
      delete listenerByName[name];
    }

    // add the new listener, if any
    if (listener) {
      listener._on = true;
      listeners.push(listener);
      listenerByName[name] = listener;
    }

    return dispatch;
  };

  return dispatch;
};
// TODO align
d3.format = function(specifier) {
  var match = d3_format_re.exec(specifier),
      fill = match[1] || " ",
      sign = match[3] || "",
      zfill = match[5],
      width = +match[6],
      comma = match[7],
      precision = match[8],
      type = match[9],
      scale = 1,
      suffix = "",
      integer = false;

  if (precision) precision = +precision.substring(1);

  if (zfill) {
    fill = "0"; // TODO align = "=";
    if (comma) width -= Math.floor((width - 1) / 4);
  }

  switch (type) {
    case "n": comma = true; type = "g"; break;
    case "%": scale = 100; suffix = "%"; type = "f"; break;
    case "p": scale = 100; suffix = "%"; type = "r"; break;
    case "d": integer = true; precision = 0; break;
    case "s": scale = -1; type = "r"; break;
  }

  // If no precision is specified for r, fallback to general notation.
  if (type == "r" && !precision) type = "g";

  type = d3_format_types[type] || d3_format_typeDefault;

  return function(value) {

    // Return the empty string for floats formatted as ints.
    if (integer && (value % 1)) return "";

    // Convert negative to positive, and record the sign prefix.
    var negative = (value < 0) && (value = -value) ? "\u2212" : sign;

    // Apply the scale, computing it from the value's exponent for si format.
    if (scale < 0) {
      var prefix = d3.formatPrefix(value, precision);
      value *= prefix.scale;
      suffix = prefix.symbol;
    } else {
      value *= scale;
    }

    // Convert to the desired precision.
    value = type(value, precision);

    // If the fill character is 0, the sign and group is applied after the fill.
    if (zfill) {
      var length = value.length + negative.length;
      if (length < width) value = new Array(width - length + 1).join(fill) + value;
      if (comma) value = d3_format_group(value);
      value = negative + value;
    }

    // Otherwise (e.g., space-filling), the sign and group is applied before.
    else {
      if (comma) value = d3_format_group(value);
      value = negative + value;
      var length = value.length;
      if (length < width) value = new Array(width - length + 1).join(fill) + value;
    }

    return value + suffix;
  };
};

// [[fill]align][sign][#][0][width][,][.precision][type]
var d3_format_re = /(?:([^{])?([<>=^]))?([+\- ])?(#)?(0)?([0-9]+)?(,)?(\.[0-9]+)?([a-zA-Z%])?/;

var d3_format_types = {
  g: function(x, p) { return x.toPrecision(p); },
  e: function(x, p) { return x.toExponential(p); },
  f: function(x, p) { return x.toFixed(p); },
  r: function(x, p) { return d3.round(x, p = d3_format_precision(x, p)).toFixed(Math.max(0, Math.min(20, p))); }
};

function d3_format_precision(x, p) {
  return p - (x ? 1 + Math.floor(Math.log(x + Math.pow(10, 1 + Math.floor(Math.log(x) / Math.LN10) - p)) / Math.LN10) : 1);
}

function d3_format_typeDefault(x) {
  return x + "";
}

// Apply comma grouping for thousands.
function d3_format_group(value) {
  var i = value.lastIndexOf("."),
      f = i >= 0 ? value.substring(i) : (i = value.length, ""),
      t = [];
  while (i > 0) t.push(value.substring(i -= 3, i + 3));
  return t.reverse().join(",") + f;
}
var d3_formatPrefixes = ["y","z","a","f","p","n","μ","m","","k","M","G","T","P","E","Z","Y"].map(d3_formatPrefix);

d3.formatPrefix = function(value, precision) {
  var i = 0;
  if (value) {
    if (value < 0) value *= -1;
    if (precision) value = d3.round(value, d3_format_precision(value, precision));
    i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10);
    i = Math.max(-24, Math.min(24, Math.floor((i <= 0 ? i + 1 : i - 1) / 3) * 3));
  }
  return d3_formatPrefixes[8 + i / 3];
};

function d3_formatPrefix(d, i) {
  return {
    scale: Math.pow(10, (8 - i) * 3),
    symbol: d
  };
}

/*
 * TERMS OF USE - EASING EQUATIONS
 *
 * Open source under the BSD License.
 *
 * Copyright 2001 Robert Penner
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * - Redistributions of source code must retain the above copyright notice, this
 *   list of conditions and the following disclaimer.
 *
 * - Redistributions in binary form must reproduce the above copyright notice,
 *   this list of conditions and the following disclaimer in the documentation
 *   and/or other materials provided with the distribution.
 *
 * - Neither the name of the author nor the names of contributors may be used to
 *   endorse or promote products derived from this software without specific
 *   prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */

var d3_ease_quad = d3_ease_poly(2),
    d3_ease_cubic = d3_ease_poly(3);

var d3_ease = {
  linear: function() { return d3_ease_linear; },
  poly: d3_ease_poly,
  quad: function() { return d3_ease_quad; },
  cubic: function() { return d3_ease_cubic; },
  sin: function() { return d3_ease_sin; },
  exp: function() { return d3_ease_exp; },
  circle: function() { return d3_ease_circle; },
  elastic: d3_ease_elastic,
  back: d3_ease_back,
  bounce: function() { return d3_ease_bounce; }
};

var d3_ease_mode = {
  "in": function(f) { return f; },
  "out": d3_ease_reverse,
  "in-out": d3_ease_reflect,
  "out-in": function(f) { return d3_ease_reflect(d3_ease_reverse(f)); }
};

d3.ease = function(name) {
  var i = name.indexOf("-"),
      t = i >= 0 ? name.substring(0, i) : name,
      m = i >= 0 ? name.substring(i + 1) : "in";
  return d3_ease_clamp(d3_ease_mode[m](d3_ease[t].apply(null, Array.prototype.slice.call(arguments, 1))));
};

function d3_ease_clamp(f) {
  return function(t) {
    return t <= 0 ? 0 : t >= 1 ? 1 : f(t);
  };
}

function d3_ease_reverse(f) {
  return function(t) {
    return 1 - f(1 - t);
  };
}

function d3_ease_reflect(f) {
  return function(t) {
    return .5 * (t < .5 ? f(2 * t) : (2 - f(2 - 2 * t)));
  };
}

function d3_ease_linear(t) {
  return t;
}

function d3_ease_poly(e) {
  return function(t) {
    return Math.pow(t, e);
  }
}

function d3_ease_sin(t) {
  return 1 - Math.cos(t * Math.PI / 2);
}

function d3_ease_exp(t) {
  return Math.pow(2, 10 * (t - 1));
}

function d3_ease_circle(t) {
  return 1 - Math.sqrt(1 - t * t);
}

function d3_ease_elastic(a, p) {
  var s;
  if (arguments.length < 2) p = 0.45;
  if (arguments.length < 1) { a = 1; s = p / 4; }
  else s = p / (2 * Math.PI) * Math.asin(1 / a);
  return function(t) {
    return 1 + a * Math.pow(2, 10 * -t) * Math.sin((t - s) * 2 * Math.PI / p);
  };
}

function d3_ease_back(s) {
  if (!s) s = 1.70158;
  return function(t) {
    return t * t * ((s + 1) * t - s);
  };
}

function d3_ease_bounce(t) {
  return t < 1 / 2.75 ? 7.5625 * t * t
      : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75
      : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375
      : 7.5625 * (t -= 2.625 / 2.75) * t + .984375;
}
d3.event = null;

function d3_eventCancel() {
  d3.event.stopPropagation();
  d3.event.preventDefault();
}
d3.interpolate = function(a, b) {
  var i = d3.interpolators.length, f;
  while (--i >= 0 && !(f = d3.interpolators[i](a, b)));
  return f;
};

d3.interpolateNumber = function(a, b) {
  b -= a;
  return function(t) { return a + b * t; };
};

d3.interpolateRound = function(a, b) {
  b -= a;
  return function(t) { return Math.round(a + b * t); };
};

d3.interpolateString = function(a, b) {
  var m, // current match
      i, // current index
      j, // current index (for coallescing)
      s0 = 0, // start index of current string prefix
      s1 = 0, // end index of current string prefix
      s = [], // string constants and placeholders
      q = [], // number interpolators
      n, // q.length
      o;

  // Reset our regular expression!
  d3_interpolate_number.lastIndex = 0;

  // Find all numbers in b.
  for (i = 0; m = d3_interpolate_number.exec(b); ++i) {
    if (m.index) s.push(b.substring(s0, s1 = m.index));
    q.push({i: s.length, x: m[0]});
    s.push(null);
    s0 = d3_interpolate_number.lastIndex;
  }
  if (s0 < b.length) s.push(b.substring(s0));

  // Find all numbers in a.
  for (i = 0, n = q.length; (m = d3_interpolate_number.exec(a)) && i < n; ++i) {
    o = q[i];
    if (o.x == m[0]) { // The numbers match, so coallesce.
      if (o.i) {
        if (s[o.i + 1] == null) { // This match is followed by another number.
          s[o.i - 1] += o.x;
          s.splice(o.i, 1);
          for (j = i + 1; j < n; ++j) q[j].i--;
        } else { // This match is followed by a string, so coallesce twice.
          s[o.i - 1] += o.x + s[o.i + 1];
          s.splice(o.i, 2);
          for (j = i + 1; j < n; ++j) q[j].i -= 2;
        }
      } else {
          if (s[o.i + 1] == null) { // This match is followed by another number.
          s[o.i] = o.x;
        } else { // This match is followed by a string, so coallesce twice.
          s[o.i] = o.x + s[o.i + 1];
          s.splice(o.i + 1, 1);
          for (j = i + 1; j < n; ++j) q[j].i--;
        }
      }
      q.splice(i, 1);
      n--;
      i--;
    } else {
      o.x = d3.interpolateNumber(parseFloat(m[0]), parseFloat(o.x));
    }
  }

  // Remove any numbers in b not found in a.
  while (i < n) {
    o = q.pop();
    if (s[o.i + 1] == null) { // This match is followed by another number.
      s[o.i] = o.x;
    } else { // This match is followed by a string, so coallesce twice.
      s[o.i] = o.x + s[o.i + 1];
      s.splice(o.i + 1, 1);
    }
    n--;
  }

  // Special optimization for only a single match.
  if (s.length === 1) {
    return s[0] == null ? q[0].x : function() { return b; };
  }

  // Otherwise, interpolate each of the numbers and rejoin the string.
  return function(t) {
    for (i = 0; i < n; ++i) s[(o = q[i]).i] = o.x(t);
    return s.join("");
  };
};

d3.interpolateTransform = function(a, b) {
  return d3.interpolateString(d3.transform(a) + "", d3.transform(b) + "");
};

d3.interpolateRgb = function(a, b) {
  a = d3.rgb(a);
  b = d3.rgb(b);
  var ar = a.r,
      ag = a.g,
      ab = a.b,
      br = b.r - ar,
      bg = b.g - ag,
      bb = b.b - ab;
  return function(t) {
    return "#"
        + d3_rgb_hex(Math.round(ar + br * t))
        + d3_rgb_hex(Math.round(ag + bg * t))
        + d3_rgb_hex(Math.round(ab + bb * t));
  };
};

// interpolates HSL space, but outputs RGB string (for compatibility)
d3.interpolateHsl = function(a, b) {
  a = d3.hsl(a);
  b = d3.hsl(b);
  var h0 = a.h,
      s0 = a.s,
      l0 = a.l,
      h1 = b.h - h0,
      s1 = b.s - s0,
      l1 = b.l - l0;
  return function(t) {
    return d3_hsl_rgb(h0 + h1 * t, s0 + s1 * t, l0 + l1 * t).toString();
  };
};

d3.interpolateArray = function(a, b) {
  var x = [],
      c = [],
      na = a.length,
      nb = b.length,
      n0 = Math.min(a.length, b.length),
      i;
  for (i = 0; i < n0; ++i) x.push(d3.interpolate(a[i], b[i]));
  for (; i < na; ++i) c[i] = a[i];
  for (; i < nb; ++i) c[i] = b[i];
  return function(t) {
    for (i = 0; i < n0; ++i) c[i] = x[i](t);
    return c;
  };
};

d3.interpolateObject = function(a, b) {
  var i = {},
      c = {},
      k;
  for (k in a) {
    if (k in b) {
      i[k] = d3_interpolateByName(k)(a[k], b[k]);
    } else {
      c[k] = a[k];
    }
  }
  for (k in b) {
    if (!(k in a)) {
      c[k] = b[k];
    }
  }
  return function(t) {
    for (k in i) c[k] = i[k](t);
    return c;
  };
}

var d3_interpolate_number = /[-+]?(?:\d*\.?\d+)(?:[eE][-+]?\d+)?/g;

function d3_interpolateByName(n) {
  return n == "transform"
      ? d3.interpolateTransform
      : d3.interpolate;
}

d3.interpolators = [
  d3.interpolateObject,
  function(a, b) { return (b instanceof Array) && d3.interpolateArray(a, b); },
  function(a, b) { return (typeof b === "string") && d3.interpolateString(a + "", b); },
  function(a, b) { return (typeof b === "string" ? b in d3_rgb_names || /^(#|rgb\(|hsl\()/.test(b) : b instanceof d3_Rgb || b instanceof d3_Hsl) && d3.interpolateRgb(a + "", b); },
  function(a, b) { return (typeof b === "number") && d3.interpolateNumber(+a, b); }
];
function d3_uninterpolateNumber(a, b) {
  b = b - (a = +a) ? 1 / (b - a) : 0;
  return function(x) { return (x - a) * b; };
}

function d3_uninterpolateClamp(a, b) {
  b = b - (a = +a) ? 1 / (b - a) : 0;
  return function(x) { return Math.max(0, Math.min(1, (x - a) * b)); };
}
d3.rgb = function(r, g, b) {
  return arguments.length === 1
      ? (r instanceof d3_Rgb ? d3_rgb(r.r, r.g, r.b)
      : d3_rgb_parse("" + r, d3_rgb, d3_hsl_rgb))
      : d3_rgb(~~r, ~~g, ~~b);
};

function d3_rgb(r, g, b) {
  return new d3_Rgb(r, g, b);
}

function d3_Rgb(r, g, b) {
  this.r = r;
  this.g = g;
  this.b = b;
}

d3_Rgb.prototype.brighter = function(k) {
  k = Math.pow(0.7, arguments.length ? k : 1);
  var r = this.r,
      g = this.g,
      b = this.b,
      i = 30;
  if (!r && !g && !b) return d3_rgb(i, i, i);
  if (r && r < i) r = i;
  if (g && g < i) g = i;
  if (b && b < i) b = i;
  return d3_rgb(
      Math.min(255, Math.floor(r / k)),
      Math.min(255, Math.floor(g / k)),
      Math.min(255, Math.floor(b / k)));
};

d3_Rgb.prototype.darker = function(k) {
  k = Math.pow(0.7, arguments.length ? k : 1);
  return d3_rgb(
      Math.floor(k * this.r),
      Math.floor(k * this.g),
      Math.floor(k * this.b));
};

d3_Rgb.prototype.hsl = function() {
  return d3_rgb_hsl(this.r, this.g, this.b);
};

d3_Rgb.prototype.toString = function() {
  return "#" + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b);
};

function d3_rgb_hex(v) {
  return v < 0x10
      ? "0" + Math.max(0, v).toString(16)
      : Math.min(255, v).toString(16);
}

function d3_rgb_parse(format, rgb, hsl) {
  var r = 0, // red channel; int in [0, 255]
      g = 0, // green channel; int in [0, 255]
      b = 0, // blue channel; int in [0, 255]
      m1, // CSS color specification match
      m2, // CSS color specification type (e.g., rgb)
      name;

  /* Handle hsl, rgb. */
  m1 = /([a-z]+)\((.*)\)/i.exec(format);
  if (m1) {
    m2 = m1[2].split(",");
    switch (m1[1]) {
      case "hsl": {
        return hsl(
          parseFloat(m2[0]), // degrees
          parseFloat(m2[1]) / 100, // percentage
          parseFloat(m2[2]) / 100 // percentage
        );
      }
      case "rgb": {
        return rgb(
          d3_rgb_parseNumber(m2[0]),
          d3_rgb_parseNumber(m2[1]),
          d3_rgb_parseNumber(m2[2])
        );
      }
    }
  }

  /* Named colors. */
  if (name = d3_rgb_names[format]) return rgb(name.r, name.g, name.b);

  /* Hexadecimal colors: #rgb and #rrggbb. */
  if (format != null && format.charAt(0) === "#") {
    if (format.length === 4) {
      r = format.charAt(1); r += r;
      g = format.charAt(2); g += g;
      b = format.charAt(3); b += b;
    } else if (format.length === 7) {
      r = format.substring(1, 3);
      g = format.substring(3, 5);
      b = format.substring(5, 7);
    }
    r = parseInt(r, 16);
    g = parseInt(g, 16);
    b = parseInt(b, 16);
  }

  return rgb(r, g, b);
}

function d3_rgb_hsl(r, g, b) {
  var min = Math.min(r /= 255, g /= 255, b /= 255),
      max = Math.max(r, g, b),
      d = max - min,
      h,
      s,
      l = (max + min) / 2;
  if (d) {
    s = l < .5 ? d / (max + min) : d / (2 - max - min);
    if (r == max) h = (g - b) / d + (g < b ? 6 : 0);
    else if (g == max) h = (b - r) / d + 2;
    else h = (r - g) / d + 4;
    h *= 60;
  } else {
    s = h = 0;
  }
  return d3_hsl(h, s, l);
}

function d3_rgb_parseNumber(c) { // either integer or percentage
  var f = parseFloat(c);
  return c.charAt(c.length - 1) === "%" ? Math.round(f * 2.55) : f;
}

var d3_rgb_names = {
  aliceblue: "#f0f8ff",
  antiquewhite: "#faebd7",
  aqua: "#00ffff",
  aquamarine: "#7fffd4",
  azure: "#f0ffff",
  beige: "#f5f5dc",
  bisque: "#ffe4c4",
  black: "#000000",
  blanchedalmond: "#ffebcd",
  blue: "#0000ff",
  blueviolet: "#8a2be2",
  brown: "#a52a2a",
  burlywood: "#deb887",
  cadetblue: "#5f9ea0",
  chartreuse: "#7fff00",
  chocolate: "#d2691e",
  coral: "#ff7f50",
  cornflowerblue: "#6495ed",
  cornsilk: "#fff8dc",
  crimson: "#dc143c",
  cyan: "#00ffff",
  darkblue: "#00008b",
  darkcyan: "#008b8b",
  darkgoldenrod: "#b8860b",
  darkgray: "#a9a9a9",
  darkgreen: "#006400",
  darkgrey: "#a9a9a9",
  darkkhaki: "#bdb76b",
  darkmagenta: "#8b008b",
  darkolivegreen: "#556b2f",
  darkorange: "#ff8c00",
  darkorchid: "#9932cc",
  darkred: "#8b0000",
  darksalmon: "#e9967a",
  darkseagreen: "#8fbc8f",
  darkslateblue: "#483d8b",
  darkslategray: "#2f4f4f",
  darkslategrey: "#2f4f4f",
  darkturquoise: "#00ced1",
  darkviolet: "#9400d3",
  deeppink: "#ff1493",
  deepskyblue: "#00bfff",
  dimgray: "#696969",
  dimgrey: "#696969",
  dodgerblue: "#1e90ff",
  firebrick: "#b22222",
  floralwhite: "#fffaf0",
  forestgreen: "#228b22",
  fuchsia: "#ff00ff",
  gainsboro: "#dcdcdc",
  ghostwhite: "#f8f8ff",
  gold: "#ffd700",
  goldenrod: "#daa520",
  gray: "#808080",
  green: "#008000",
  greenyellow: "#adff2f",
  grey: "#808080",
  honeydew: "#f0fff0",
  hotpink: "#ff69b4",
  indianred: "#cd5c5c",
  indigo: "#4b0082",
  ivory: "#fffff0",
  khaki: "#f0e68c",
  lavender: "#e6e6fa",
  lavenderblush: "#fff0f5",
  lawngreen: "#7cfc00",
  lemonchiffon: "#fffacd",
  lightblue: "#add8e6",
  lightcoral: "#f08080",
  lightcyan: "#e0ffff",
  lightgoldenrodyellow: "#fafad2",
  lightgray: "#d3d3d3",
  lightgreen: "#90ee90",
  lightgrey: "#d3d3d3",
  lightpink: "#ffb6c1",
  lightsalmon: "#ffa07a",
  lightseagreen: "#20b2aa",
  lightskyblue: "#87cefa",
  lightslategray: "#778899",
  lightslategrey: "#778899",
  lightsteelblue: "#b0c4de",
  lightyellow: "#ffffe0",
  lime: "#00ff00",
  limegreen: "#32cd32",
  linen: "#faf0e6",
  magenta: "#ff00ff",
  maroon: "#800000",
  mediumaquamarine: "#66cdaa",
  mediumblue: "#0000cd",
  mediumorchid: "#ba55d3",
  mediumpurple: "#9370db",
  mediumseagreen: "#3cb371",
  mediumslateblue: "#7b68ee",
  mediumspringgreen: "#00fa9a",
  mediumturquoise: "#48d1cc",
  mediumvioletred: "#c71585",
  midnightblue: "#191970",
  mintcream: "#f5fffa",
  mistyrose: "#ffe4e1",
  moccasin: "#ffe4b5",
  navajowhite: "#ffdead",
  navy: "#000080",
  oldlace: "#fdf5e6",
  olive: "#808000",
  olivedrab: "#6b8e23",
  orange: "#ffa500",
  orangered: "#ff4500",
  orchid: "#da70d6",
  palegoldenrod: "#eee8aa",
  palegreen: "#98fb98",
  paleturquoise: "#afeeee",
  palevioletred: "#db7093",
  papayawhip: "#ffefd5",
  peachpuff: "#ffdab9",
  peru: "#cd853f",
  pink: "#ffc0cb",
  plum: "#dda0dd",
  powderblue: "#b0e0e6",
  purple: "#800080",
  red: "#ff0000",
  rosybrown: "#bc8f8f",
  royalblue: "#4169e1",
  saddlebrown: "#8b4513",
  salmon: "#fa8072",
  sandybrown: "#f4a460",
  seagreen: "#2e8b57",
  seashell: "#fff5ee",
  sienna: "#a0522d",
  silver: "#c0c0c0",
  skyblue: "#87ceeb",
  slateblue: "#6a5acd",
  slategray: "#708090",
  slategrey: "#708090",
  snow: "#fffafa",
  springgreen: "#00ff7f",
  steelblue: "#4682b4",
  tan: "#d2b48c",
  teal: "#008080",
  thistle: "#d8bfd8",
  tomato: "#ff6347",
  turquoise: "#40e0d0",
  violet: "#ee82ee",
  wheat: "#f5deb3",
  white: "#ffffff",
  whitesmoke: "#f5f5f5",
  yellow: "#ffff00",
  yellowgreen: "#9acd32"
};

for (var d3_rgb_name in d3_rgb_names) {
  d3_rgb_names[d3_rgb_name] = d3_rgb_parse(
      d3_rgb_names[d3_rgb_name],
      d3_rgb,
      d3_hsl_rgb);
}
d3.hsl = function(h, s, l) {
  return arguments.length === 1
      ? (h instanceof d3_Hsl ? d3_hsl(h.h, h.s, h.l)
      : d3_rgb_parse("" + h, d3_rgb_hsl, d3_hsl))
      : d3_hsl(+h, +s, +l);
};

function d3_hsl(h, s, l) {
  return new d3_Hsl(h, s, l);
}

function d3_Hsl(h, s, l) {
  this.h = h;
  this.s = s;
  this.l = l;
}

d3_Hsl.prototype.brighter = function(k) {
  k = Math.pow(0.7, arguments.length ? k : 1);
  return d3_hsl(this.h, this.s, this.l / k);
};

d3_Hsl.prototype.darker = function(k) {
  k = Math.pow(0.7, arguments.length ? k : 1);
  return d3_hsl(this.h, this.s, k * this.l);
};

d3_Hsl.prototype.rgb = function() {
  return d3_hsl_rgb(this.h, this.s, this.l);
};

d3_Hsl.prototype.toString = function() {
  return this.rgb().toString();
};

function d3_hsl_rgb(h, s, l) {
  var m1,
      m2;

  /* Some simple corrections for h, s and l. */
  h = h % 360; if (h < 0) h += 360;
  s = s < 0 ? 0 : s > 1 ? 1 : s;
  l = l < 0 ? 0 : l > 1 ? 1 : l;

  /* From FvD 13.37, CSS Color Module Level 3 */
  m2 = l <= .5 ? l * (1 + s) : l + s - l * s;
  m1 = 2 * l - m2;

  function v(h) {
    if (h > 360) h -= 360;
    else if (h < 0) h += 360;
    if (h < 60) return m1 + (m2 - m1) * h / 60;
    if (h < 180) return m2;
    if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60;
    return m1;
  }

  function vv(h) {
    return Math.round(v(h) * 255);
  }

  return d3_rgb(vv(h + 120), vv(h), vv(h - 120));
}
function d3_selection(groups) {
  d3_arraySubclass(groups, d3_selectionPrototype);
  return groups;
}

var d3_select = function(s, n) { return n.querySelector(s); },
    d3_selectAll = function(s, n) { return n.querySelectorAll(s); };

// Prefer Sizzle, if available.
if (typeof Sizzle === "function") {
  d3_select = function(s, n) { return Sizzle(s, n)[0]; };
  d3_selectAll = function(s, n) { return Sizzle.uniqueSort(Sizzle(s, n)); };
}

var d3_selectionPrototype = [];

d3.selection = function() {
  return d3_selectionRoot;
};

d3.selection.prototype = d3_selectionPrototype;
d3_selectionPrototype.select = function(selector) {
  var subgroups = [],
      subgroup,
      subnode,
      group,
      node;

  if (typeof selector !== "function") selector = d3_selection_selector(selector);

  for (var j = -1, m = this.length; ++j < m;) {
    subgroups.push(subgroup = []);
    subgroup.parentNode = (group = this[j]).parentNode;
    for (var i = -1, n = group.length; ++i < n;) {
      if (node = group[i]) {
        subgroup.push(subnode = selector.call(node, node.__data__, i));
        if (subnode && "__data__" in node) subnode.__data__ = node.__data__;
      } else {
        subgroup.push(null);
      }
    }
  }

  return d3_selection(subgroups);
};

function d3_selection_selector(selector) {
  return function() {
    return d3_select(selector, this);
  };
}
d3_selectionPrototype.selectAll = function(selector) {
  var subgroups = [],
      subgroup,
      node;

  if (typeof selector !== "function") selector = d3_selection_selectorAll(selector);

  for (var j = -1, m = this.length; ++j < m;) {
    for (var group = this[j], i = -1, n = group.length; ++i < n;) {
      if (node = group[i]) {
        subgroups.push(subgroup = d3_array(selector.call(node, node.__data__, i)));
        subgroup.parentNode = node;
      }
    }
  }

  return d3_selection(subgroups);
};

function d3_selection_selectorAll(selector) {
  return function() {
    return d3_selectAll(selector, this);
  };
}
d3_selectionPrototype.attr = function(name, value) {
  name = d3.ns.qualify(name);

  // If no value is specified, return the first value.
  if (arguments.length < 2) {
    var node = this.node();
    return name.local
        ? node.getAttributeNS(name.space, name.local)
        : node.getAttribute(name);
  }

  function attrNull() {
    this.removeAttribute(name);
  }

  function attrNullNS() {
    this.removeAttributeNS(name.space, name.local);
  }

  function attrConstant() {
    this.setAttribute(name, value);
  }

  function attrConstantNS() {
    this.setAttributeNS(name.space, name.local, value);
  }

  function attrFunction() {
    var x = value.apply(this, arguments);
    if (x == null) this.removeAttribute(name);
    else this.setAttribute(name, x);
  }

  function attrFunctionNS() {
    var x = value.apply(this, arguments);
    if (x == null) this.removeAttributeNS(name.space, name.local);
    else this.setAttributeNS(name.space, name.local, x);
  }

  return this.each(value == null
      ? (name.local ? attrNullNS : attrNull) : (typeof value === "function"
      ? (name.local ? attrFunctionNS : attrFunction)
      : (name.local ? attrConstantNS : attrConstant)));
};
d3_selectionPrototype.classed = function(name, value) {
  var names = name.split(d3_selection_classedWhitespace),
      n = names.length,
      i = -1;
  if (arguments.length > 1) {
    while (++i < n) d3_selection_classed.call(this, names[i], value);
    return this;
  } else {
    while (++i < n) if (!d3_selection_classed.call(this, names[i])) return false;
    return true;
  }
};

var d3_selection_classedWhitespace = /\s+/g;

function d3_selection_classed(name, value) {
  var re = new RegExp("(^|\\s+)" + d3.requote(name) + "(\\s+|$)", "g");

  // If no value is specified, return the first value.
  if (arguments.length < 2) {
    var node = this.node();
    if (c = node.classList) return c.contains(name);
    var c = node.className;
    re.lastIndex = 0;
    return re.test(c.baseVal != null ? c.baseVal : c);
  }

  function classedAdd() {
    if (c = this.classList) return c.add(name);
    var c = this.className,
        cb = c.baseVal != null,
        cv = cb ? c.baseVal : c;
    re.lastIndex = 0;
    if (!re.test(cv)) {
      cv = d3_collapse(cv + " " + name);
      if (cb) c.baseVal = cv;
      else this.className = cv;
    }
  }

  function classedRemove() {
    if (c = this.classList) return c.remove(name);
    var c = this.className,
        cb = c.baseVal != null,
        cv = cb ? c.baseVal : c;
    cv = d3_collapse(cv.replace(re, " "));
    if (cb) c.baseVal = cv;
    else this.className = cv;
  }

  function classedFunction() {
    (value.apply(this, arguments)
        ? classedAdd
        : classedRemove).call(this);
  }

  return this.each(typeof value === "function"
      ? classedFunction : value
      ? classedAdd
      : classedRemove);
}
d3_selectionPrototype.style = function(name, value, priority) {
  if (arguments.length < 3) priority = "";

  // If no value is specified, return the first value.
  if (arguments.length < 2) return window
      .getComputedStyle(this.node(), null)
      .getPropertyValue(name);

  function styleNull() {
    this.style.removeProperty(name);
  }

  function styleConstant() {
    this.style.setProperty(name, value, priority);
  }

  function styleFunction() {
    var x = value.apply(this, arguments);
    if (x == null) this.style.removeProperty(name);
    else this.style.setProperty(name, x, priority);
  }

  return this.each(value == null
      ? styleNull : (typeof value === "function"
      ? styleFunction : styleConstant));
};
d3_selectionPrototype.property = function(name, value) {

  // If no value is specified, return the first value.
  if (arguments.length < 2) return this.node()[name];

  function propertyNull() {
    delete this[name];
  }

  function propertyConstant() {
    this[name] = value;
  }

  function propertyFunction() {
    var x = value.apply(this, arguments);
    if (x == null) delete this[name];
    else this[name] = x;
  }

  return this.each(value == null
      ? propertyNull : (typeof value === "function"
      ? propertyFunction : propertyConstant));
};
d3_selectionPrototype.text = function(value) {
  return arguments.length < 1 ? this.node().textContent
      : (this.each(typeof value === "function"
      ? function() { this.textContent = value.apply(this, arguments); }
      : function() { this.textContent = value; }));
};
d3_selectionPrototype.html = function(value) {
  return arguments.length < 1 ? this.node().innerHTML
      : (this.each(typeof value === "function"
      ? function() { this.innerHTML = value.apply(this, arguments); }
      : function() { this.innerHTML = value; }));
};
// TODO append(node)?
// TODO append(function)?
d3_selectionPrototype.append = function(name) {
  name = d3.ns.qualify(name);

  function append() {
    return this.appendChild(document.createElement(name));
  }

  function appendNS() {
    return this.appendChild(document.createElementNS(name.space, name.local));
  }

  return this.select(name.local ? appendNS : append);
};
// TODO insert(node, function)?
// TODO insert(function, string)?
// TODO insert(function, function)?
d3_selectionPrototype.insert = function(name, before) {
  name = d3.ns.qualify(name);

  function insert() {
    return this.insertBefore(
        document.createElement(name),
        d3_select(before, this));
  }

  function insertNS() {
    return this.insertBefore(
        document.createElementNS(name.space, name.local),
        d3_select(before, this));
  }

  return this.select(name.local ? insertNS : insert);
};
// TODO remove(selector)?
// TODO remove(node)?
// TODO remove(function)?
d3_selectionPrototype.remove = function() {
  return this.each(function() {
    var parent = this.parentNode;
    if (parent) parent.removeChild(this);
  });
};
// TODO data(null) for clearing data?
d3_selectionPrototype.data = function(data, join) {
  var enter = [],
      update = [],
      exit = [];

  function bind(group, groupData) {
    var i,
        n = group.length,
        m = groupData.length,
        n0 = Math.min(n, m),
        n1 = Math.max(n, m),
        updateNodes = [],
        enterNodes = [],
        exitNodes = [],
        node,
        nodeData;

    if (join) {
      var nodeByKey = {},
          keys = [],
          key,
          j = groupData.length;

      for (i = -1; ++i < n;) {
        key = join.call(node = group[i], node.__data__, i);
        if (key in nodeByKey) {
          exitNodes[j++] = node; // duplicate key
        } else {
          nodeByKey[key] = node;
        }
        keys.push(key);
      }

      for (i = -1; ++i < m;) {
        node = nodeByKey[key = join.call(groupData, nodeData = groupData[i], i)];
        if (node) {
          node.__data__ = nodeData;
          updateNodes[i] = node;
          enterNodes[i] = exitNodes[i] = null;
        } else {
          enterNodes[i] = d3_selection_dataNode(nodeData);
          updateNodes[i] = exitNodes[i] = null;
        }
        delete nodeByKey[key];
      }

      for (i = -1; ++i < n;) {
        if (keys[i] in nodeByKey) {
          exitNodes[i] = group[i];
        }
      }
    } else {
      for (i = -1; ++i < n0;) {
        node = group[i];
        nodeData = groupData[i];
        if (node) {
          node.__data__ = nodeData;
          updateNodes[i] = node;
          enterNodes[i] = exitNodes[i] = null;
        } else {
          enterNodes[i] = d3_selection_dataNode(nodeData);
          updateNodes[i] = exitNodes[i] = null;
        }
      }
      for (; i < m; ++i) {
        enterNodes[i] = d3_selection_dataNode(groupData[i]);
        updateNodes[i] = exitNodes[i] = null;
      }
      for (; i < n1; ++i) {
        exitNodes[i] = group[i];
        enterNodes[i] = updateNodes[i] = null;
      }
    }

    enterNodes.update
        = updateNodes;

    enterNodes.parentNode
        = updateNodes.parentNode
        = exitNodes.parentNode
        = group.parentNode;

    enter.push(enterNodes);
    update.push(updateNodes);
    exit.push(exitNodes);
  }

  var i = -1,
      n = this.length,
      group;
  if (typeof data === "function") {
    while (++i < n) {
      bind(group = this[i], data.call(group, group.parentNode.__data__, i));
    }
  } else {
    while (++i < n) {
      bind(group = this[i], data);
    }
  }

  var selection = d3_selection(update);
  selection.enter = function() { return d3_selection_enter(enter); };
  selection.exit = function() { return d3_selection(exit); };
  return selection;
};

function d3_selection_dataNode(data) {
  return {__data__: data};
}
// TODO preserve null elements to maintain index?
d3_selectionPrototype.filter = function(filter) {
  var subgroups = [],
      subgroup,
      group,
      node;

  for (var j = 0, m = this.length; j < m; j++) {
    subgroups.push(subgroup = []);
    subgroup.parentNode = (group = this[j]).parentNode;
    for (var i = 0, n = group.length; i < n; i++) {
      if ((node = group[i]) && filter.call(node, node.__data__, i)) {
        subgroup.push(node);
      }
    }
  }

  return d3_selection(subgroups);
};
d3_selectionPrototype.map = function(map) {
  return this.each(function() {
    this.__data__ = map.apply(this, arguments);
  });
};
d3_selectionPrototype.sort = function(comparator) {
  comparator = d3_selection_sortComparator.apply(this, arguments);
  for (var j = 0, m = this.length; j < m; j++) {
    for (var group = this[j].sort(comparator), i = 1, n = group.length, prev = group[0]; i < n; i++) {
      var node = group[i];
      if (node) {
        if (prev) prev.parentNode.insertBefore(node, prev.nextSibling);
        prev = node;
      }
    }
  }
  return this;
};

function d3_selection_sortComparator(comparator) {
  if (!arguments.length) comparator = d3.ascending;
  return function(a, b) {
    return comparator(a && a.__data__, b && b.__data__);
  };
}
// type can be namespaced, e.g., "click.foo"
// listener can be null for removal
d3_selectionPrototype.on = function(type, listener, capture) {
  if (arguments.length < 3) capture = false;

  // parse the type specifier
  var name = "__on" + type, i = type.indexOf(".");
  if (i > 0) type = type.substring(0, i);

  // if called with only one argument, return the current listener
  if (arguments.length < 2) return (i = this.node()[name]) && i._;

  // remove the old event listener, and add the new event listener
  return this.each(function(d, i) {
    var node = this;

    if (node[name]) node.removeEventListener(type, node[name], capture);
    if (listener) node.addEventListener(type, node[name] = l, capture);

    // wrapped event listener that preserves i
    function l(e) {
      var o = d3.event; // Events can be reentrant (e.g., focus).
      d3.event = e;
      try {
        listener.call(node, node.__data__, i);
      } finally {
        d3.event = o;
      }
    }

    // stash the unwrapped listener for retrieval
    l._ = listener;
  });
};
d3_selectionPrototype.each = function(callback) {
  for (var j = -1, m = this.length; ++j < m;) {
    for (var group = this[j], i = -1, n = group.length; ++i < n;) {
      var node = group[i];
      if (node) callback.call(node, node.__data__, i, j);
    }
  }
  return this;
};
//
// Note: assigning to the arguments array simultaneously changes the value of
// the corresponding argument!
//
// TODO The `this` argument probably shouldn't be the first argument to the
// callback, anyway, since it's redundant. However, that will require a major
// version bump due to backwards compatibility, so I'm not changing it right
// away.
//
d3_selectionPrototype.call = function(callback) {
  callback.apply(this, (arguments[0] = this, arguments));
  return this;
};
d3_selectionPrototype.empty = function() {
  return !this.node();
};
d3_selectionPrototype.node = function(callback) {
  for (var j = 0, m = this.length; j < m; j++) {
    for (var group = this[j], i = 0, n = group.length; i < n; i++) {
      var node = group[i];
      if (node) return node;
    }
  }
  return null;
};
d3_selectionPrototype.transition = function() {
  var subgroups = [],
      subgroup,
      node;

  for (var j = -1, m = this.length; ++j < m;) {
    subgroups.push(subgroup = []);
    for (var group = this[j], i = -1, n = group.length; ++i < n;) {
      subgroup.push((node = group[i]) ? {node: node, delay: 0, duration: 250} : null);
    }
  }

  return d3_transition(subgroups, d3_transitionInheritId || ++d3_transitionId, Date.now());
};
var d3_selectionRoot = d3_selection([[document]]);

d3_selectionRoot[0].parentNode = document.documentElement;

// TODO fast singleton implementation!
// TODO select(function)
d3.select = function(selector) {
  return typeof selector === "string"
      ? d3_selectionRoot.select(selector)
      : d3_selection([[selector]]); // assume node
};

// TODO selectAll(function)
d3.selectAll = function(selector) {
  return typeof selector === "string"
      ? d3_selectionRoot.selectAll(selector)
      : d3_selection([d3_array(selector)]); // assume node[]
};
function d3_selection_enter(selection) {
  d3_arraySubclass(selection, d3_selection_enterPrototype);
  return selection;
}

var d3_selection_enterPrototype = [];

d3_selection_enterPrototype.append = d3_selectionPrototype.append;
d3_selection_enterPrototype.insert = d3_selectionPrototype.insert;
d3_selection_enterPrototype.empty = d3_selectionPrototype.empty;
d3_selection_enterPrototype.node = d3_selectionPrototype.node;
d3_selection_enterPrototype.select = function(selector) {
  var subgroups = [],
      subgroup,
      subnode,
      upgroup,
      group,
      node;

  for (var j = -1, m = this.length; ++j < m;) {
    upgroup = (group = this[j]).update;
    subgroups.push(subgroup = []);
    subgroup.parentNode = group.parentNode;
    for (var i = -1, n = group.length; ++i < n;) {
      if (node = group[i]) {
        subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i));
        subnode.__data__ = node.__data__;
      } else {
        subgroup.push(null);
      }
    }
  }

  return d3_selection(subgroups);
};
function d3_transition(groups, id, time) {
  d3_arraySubclass(groups, d3_transitionPrototype);

  var tweens = {},
      event = d3.dispatch("start", "end"),
      ease = d3_transitionEase;

  groups.id = id;

  groups.time = time;

  groups.tween = function(name, tween) {
    if (arguments.length < 2) return tweens[name];
    if (tween == null) delete tweens[name];
    else tweens[name] = tween;
    return groups;
  };

  groups.ease = function(value) {
    if (!arguments.length) return ease;
    ease = typeof value === "function" ? value : d3.ease.apply(d3, arguments);
    return groups;
  };

  groups.each = function(type, listener) {
    if (arguments.length < 2) return d3_transition_each.call(groups, type);
    event.on(type, listener);
    return groups;
  };

  d3.timer(function(elapsed) {
    groups.each(function(d, i, j) {
      var tweened = [],
          node = this,
          delay = groups[j][i].delay,
          duration = groups[j][i].duration,
          lock = node.__transition__ || (node.__transition__ = {active: 0, count: 0});

      ++lock.count;

      delay <= elapsed ? start(elapsed) : d3.timer(start, delay, time);

      function start(elapsed) {
        if (lock.active > id) return stop();
        lock.active = id;

        for (var tween in tweens) {
          if (tween = tweens[tween].call(node, d, i)) {
            tweened.push(tween);
          }
        }

        event.start.call(node, d, i);
        if (!tick(elapsed)) d3.timer(tick, 0, time);
        return 1;
      }

      function tick(elapsed) {
        if (lock.active !== id) return stop();

        var t = (elapsed - delay) / duration,
            e = ease(t),
            n = tweened.length;

        while (n > 0) {
          tweened[--n].call(node, e);
        }

        if (t >= 1) {
          stop();
          d3_transitionInheritId = id;
          event.end.call(node, d, i);
          d3_transitionInheritId = 0;
          return 1;
        }
      }

      function stop() {
        if (!--lock.count) delete node.__transition__;
        return 1;
      }
    });
    return 1;
  }, 0, time);

  return groups;
}

var d3_transitionRemove = {};

function d3_transitionNull(d, i, a) {
  return a != "" && d3_transitionRemove;
}

function d3_transitionTween(name, b) {
  var interpolate = d3_interpolateByName(name);

  function transitionFunction(d, i, a) {
    var v = b.call(this, d, i);
    return v == null
        ? a != "" && d3_transitionRemove
        : a != v && interpolate(a, v);
  }

  function transitionString(d, i, a) {
    return a != b && interpolate(a, b);
  }

  return typeof b === "function" ? transitionFunction
      : b == null ? d3_transitionNull
      : (b += "", transitionString);
}

var d3_transitionPrototype = [],
    d3_transitionId = 0,
    d3_transitionInheritId = 0,
    d3_transitionEase = d3.ease("cubic-in-out");

d3_transitionPrototype.call = d3_selectionPrototype.call;

d3.transition = function() {
  return d3_selectionRoot.transition();
};

d3.transition.prototype = d3_transitionPrototype;
d3_transitionPrototype.select = function(selector) {
  var subgroups = [],
      subgroup,
      subnode,
      node;

  if (typeof selector !== "function") selector = d3_selection_selector(selector);

  for (var j = -1, m = this.length; ++j < m;) {
    subgroups.push(subgroup = []);
    for (var group = this[j], i = -1, n = group.length; ++i < n;) {
      if ((node = group[i]) && (subnode = selector.call(node.node, node.node.__data__, i))) {
        if ("__data__" in node.node) subnode.__data__ = node.node.__data__;
        subgroup.push({node: subnode, delay: node.delay, duration: node.duration});
      } else {
        subgroup.push(null);
      }
    }
  }

  return d3_transition(subgroups, this.id, this.time).ease(this.ease());
};
d3_transitionPrototype.selectAll = function(selector) {
  var subgroups = [],
      subgroup,
      subnodes,
      node;

  if (typeof selector !== "function") selector = d3_selection_selectorAll(selector);

  for (var j = -1, m = this.length; ++j < m;) {
    for (var group = this[j], i = -1, n = group.length; ++i < n;) {
      if (node = group[i]) {
        subnodes = selector.call(node.node, node.node.__data__, i);
        subgroups.push(subgroup = []);
        for (var k = -1, o = subnodes.length; ++k < o;) {
          subgroup.push({node: subnodes[k], delay: node.delay, duration: node.duration});
        }
      }
    }
  }

  return d3_transition(subgroups, this.id, this.time).ease(this.ease());
};
d3_transitionPrototype.attr = function(name, value) {
  return this.attrTween(name, d3_transitionTween(name, value));
};

d3_transitionPrototype.attrTween = function(nameNS, tween) {
  var name = d3.ns.qualify(nameNS);

  function attrTween(d, i) {
    var f = tween.call(this, d, i, this.getAttribute(name));
    return f === d3_transitionRemove
        ? (this.removeAttribute(name), null)
        : f && function(t) { this.setAttribute(name, f(t)); };
  }

  function attrTweenNS(d, i) {
    var f = tween.call(this, d, i, this.getAttributeNS(name.space, name.local));
    return f === d3_transitionRemove
        ? (this.removeAttributeNS(name.space, name.local), null)
        : f && function(t) { this.setAttributeNS(name.space, name.local, f(t)); };
  }

  return this.tween("attr." + nameNS, name.local ? attrTweenNS : attrTween);
};
d3_transitionPrototype.style = function(name, value, priority) {
  if (arguments.length < 3) priority = "";
  return this.styleTween(name, d3_transitionTween(name, value), priority);
};

d3_transitionPrototype.styleTween = function(name, tween, priority) {
  if (arguments.length < 3) priority = "";
  return this.tween("style." + name, function(d, i) {
    var f = tween.call(this, d, i, window.getComputedStyle(this, null).getPropertyValue(name));
    return f === d3_transitionRemove
        ? (this.style.removeProperty(name), null)
        : f && function(t) { this.style.setProperty(name, f(t), priority); };
  });
};
d3_transitionPrototype.text = function(value) {
  return this.tween("text", function(d, i) {
    this.textContent = typeof value === "function"
        ? value.call(this, d, i)
        : value;
  });
};
d3_transitionPrototype.remove = function() {
  return this.each("end", function() {
    var p;
    if (!this.__transition__ && (p = this.parentNode)) p.removeChild(this);
  });
};
d3_transitionPrototype.delay = function(value) {
  var groups = this;
  return groups.each(typeof value === "function"
      ? function(d, i, j) { groups[j][i].delay = +value.apply(this, arguments); }
      : (value = +value, function(d, i, j) { groups[j][i].delay = value; }));
};
d3_transitionPrototype.duration = function(value) {
  var groups = this;
  return groups.each(typeof value === "function"
      ? function(d, i, j) { groups[j][i].duration = +value.apply(this, arguments); }
      : (value = +value, function(d, i, j) { groups[j][i].duration = value; }));
};
function d3_transition_each(callback) {
  for (var j = 0, m = this.length; j < m; j++) {
    for (var group = this[j], i = 0, n = group.length; i < n; i++) {
      var node = group[i];
      if (node) callback.call(node = node.node, node.__data__, i, j);
    }
  }
  return this;
}
d3_transitionPrototype.transition = function() {
  return this.select(d3_this);
};
var d3_timer_queue = null,
    d3_timer_interval, // is an interval (or frame) active?
    d3_timer_timeout; // is a timeout active?

// The timer will continue to fire until callback returns true.
d3.timer = function(callback, delay, then) {
  var found = false,
      t0,
      t1 = d3_timer_queue;

  if (arguments.length < 3) {
    if (arguments.length < 2) delay = 0;
    else if (!isFinite(delay)) return;
    then = Date.now();
  }

  // See if the callback's already in the queue.
  while (t1) {
    if (t1.callback === callback) {
      t1.then = then;
      t1.delay = delay;
      found = true;
      break;
    }
    t0 = t1;
    t1 = t1.next;
  }

  // Otherwise, add the callback to the queue.
  if (!found) d3_timer_queue = {
    callback: callback,
    then: then,
    delay: delay,
    next: d3_timer_queue
  };

  // Start animatin'!
  if (!d3_timer_interval) {
    d3_timer_timeout = clearTimeout(d3_timer_timeout);
    d3_timer_interval = 1;
    d3_timer_frame(d3_timer_step);
  }
}

function d3_timer_step() {
  var elapsed,
      now = Date.now(),
      t1 = d3_timer_queue;

  while (t1) {
    elapsed = now - t1.then;
    if (elapsed >= t1.delay) t1.flush = t1.callback(elapsed);
    t1 = t1.next;
  }

  var delay = d3_timer_flush() - now;
  if (delay > 24) {
    if (isFinite(delay)) {
      clearTimeout(d3_timer_timeout);
      d3_timer_timeout = setTimeout(d3_timer_step, delay);
    }
    d3_timer_interval = 0;
  } else {
    d3_timer_interval = 1;
    d3_timer_frame(d3_timer_step);
  }
}

d3.timer.flush = function() {
  var elapsed,
      now = Date.now(),
      t1 = d3_timer_queue;

  while (t1) {
    elapsed = now - t1.then;
    if (!t1.delay) t1.flush = t1.callback(elapsed);
    t1 = t1.next;
  }

  d3_timer_flush();
};

// Flush after callbacks, to avoid concurrent queue modification.
function d3_timer_flush() {
  var t0 = null,
      t1 = d3_timer_queue,
      then = Infinity;
  while (t1) {
    if (t1.flush) {
      t1 = t0 ? t0.next = t1.next : d3_timer_queue = t1.next;
    } else {
      then = Math.min(then, t1.then + t1.delay);
      t1 = (t0 = t1).next;
    }
  }
  return then;
}

var d3_timer_frame = window.requestAnimationFrame
    || window.webkitRequestAnimationFrame
    || window.mozRequestAnimationFrame
    || window.oRequestAnimationFrame
    || window.msRequestAnimationFrame
    || function(callback) { setTimeout(callback, 17); };
d3.transform = function(string) {
  d3_transformG.setAttribute("transform", string);
  return new d3_transform(d3_transformG.transform.baseVal.consolidate().matrix);
};

// Compute x-scale and normalize the first row.
// Compute shear and make second row orthogonal to first.
// Compute y-scale and normalize the second row.
// Finally, compute the rotation.
function d3_transform(m) {
  var r0 = [m.a, m.b],
      r1 = [m.c, m.d],
      kx = d3_transformNormalize(r0),
      kz = d3_transformDot(r0, r1),
      ky = d3_transformNormalize(d3_transformCombine(r1, r0, -kz));
  this.translate = [m.e, m.f];
  this.rotate = Math.atan2(m.b, m.a) * d3_transformDegrees;
  this.scale = [kx, ky || 0];
  this.skew = ky ? kz / ky * d3_transformDegrees : 0;
};

d3_transform.prototype.toString = function() {
  return "translate(" + this.translate
      + ")rotate(" + this.rotate
      + ")skewX(" + this.skew
      + ")scale(" + this.scale
      + ")";
};

function d3_transformDot(a, b) {
  return a[0] * b[0] + a[1] * b[1];
}

function d3_transformNormalize(a) {
  var k = Math.sqrt(d3_transformDot(a, a));
  a[0] /= k;
  a[1] /= k;
  return k;
}

function d3_transformCombine(a, b, k) {
  a[0] += k * b[0];
  a[1] += k * b[1];
  return a;
}

var d3_transformG = document.createElementNS(d3.ns.prefix.svg, "g"),
    d3_transformDegrees = 180 / Math.PI;
function d3_noop() {}
d3.scale = {};

function d3_scaleExtent(domain) {
  var start = domain[0], stop = domain[domain.length - 1];
  return start < stop ? [start, stop] : [stop, start];
}
function d3_scale_nice(domain, nice) {
  var i0 = 0,
      i1 = domain.length - 1,
      x0 = domain[i0],
      x1 = domain[i1],
      dx;

  if (x1 < x0) {
    dx = i0; i0 = i1; i1 = dx;
    dx = x0; x0 = x1; x1 = dx;
  }

  if (dx = x1 - x0) {
    nice = nice(dx);
    domain[i0] = nice.floor(x0);
    domain[i1] = nice.ceil(x1);
  }

  return domain;
}

function d3_scale_niceDefault() {
  return Math;
}
d3.scale.linear = function() {
  return d3_scale_linear([0, 1], [0, 1], d3.interpolate, false);
};

function d3_scale_linear(domain, range, interpolate, clamp) {
  var output,
      input;

  function rescale() {
    var linear = domain.length == 2 ? d3_scale_bilinear : d3_scale_polylinear,
        uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber;
    output = linear(domain, range, uninterpolate, interpolate);
    input = linear(range, domain, uninterpolate, d3.interpolate);
    return scale;
  }

  function scale(x) {
    return output(x);
  }

  // Note: requires range is coercible to number!
  scale.invert = function(y) {
    return input(y);
  };

  scale.domain = function(x) {
    if (!arguments.length) return domain;
    domain = x.map(Number);
    return rescale();
  };

  scale.range = function(x) {
    if (!arguments.length) return range;
    range = x;
    return rescale();
  };

  scale.rangeRound = function(x) {
    return scale.range(x).interpolate(d3.interpolateRound);
  };

  scale.clamp = function(x) {
    if (!arguments.length) return clamp;
    clamp = x;
    return rescale();
  };

  scale.interpolate = function(x) {
    if (!arguments.length) return interpolate;
    interpolate = x;
    return rescale();
  };

  scale.ticks = function(m) {
    return d3_scale_linearTicks(domain, m);
  };

  scale.tickFormat = function(m) {
    return d3_scale_linearTickFormat(domain, m);
  };

  scale.nice = function() {
    d3_scale_nice(domain, d3_scale_linearNice);
    return rescale();
  };

  scale.copy = function() {
    return d3_scale_linear(domain, range, interpolate, clamp);
  };

  return rescale();
};

function d3_scale_linearRebind(scale, linear) {
  scale.range = d3.rebind(scale, linear.range);
  scale.rangeRound = d3.rebind(scale, linear.rangeRound);
  scale.interpolate = d3.rebind(scale, linear.interpolate);
  scale.clamp = d3.rebind(scale, linear.clamp);
  return scale;
}

function d3_scale_linearNice(dx) {
  dx = Math.pow(10, Math.round(Math.log(dx) / Math.LN10) - 1);
  return {
    floor: function(x) { return Math.floor(x / dx) * dx; },
    ceil: function(x) { return Math.ceil(x / dx) * dx; }
  };
}

// TODO Dates? Ugh.
function d3_scale_linearTickRange(domain, m) {
  var extent = d3_scaleExtent(domain),
      span = extent[1] - extent[0],
      step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10)),
      err = m / span * step;

  // Filter ticks to get closer to the desired count.
  if (err <= .15) step *= 10;
  else if (err <= .35) step *= 5;
  else if (err <= .75) step *= 2;

  // Round start and stop values to step interval.
  extent[0] = Math.ceil(extent[0] / step) * step;
  extent[1] = Math.floor(extent[1] / step) * step + step * .5; // inclusive
  extent[2] = step;
  return extent;
}

function d3_scale_linearTicks(domain, m) {
  return d3.range.apply(d3, d3_scale_linearTickRange(domain, m));
}

function d3_scale_linearTickFormat(domain, m) {
  return d3.format(",." + Math.max(0, -Math.floor(Math.log(d3_scale_linearTickRange(domain, m)[2]) / Math.LN10 + .01)) + "f");
}
function d3_scale_bilinear(domain, range, uninterpolate, interpolate) {
  var u = uninterpolate(domain[0], domain[1]),
      i = interpolate(range[0], range[1]);
  return function(x) {
    return i(u(x));
  };
}
function d3_scale_polylinear(domain, range, uninterpolate, interpolate) {
  var u = [],
      i = [],
      j = 0,
      n = domain.length;

  while (++j < n) {
    u.push(uninterpolate(domain[j - 1], domain[j]));
    i.push(interpolate(range[j - 1], range[j]));
  }

  return function(x) {
    var j = d3.bisect(domain, x, 1, domain.length - 1) - 1;
    return i[j](u[j](x));
  };
}
d3.scale.log = function() {
  return d3_scale_log(d3.scale.linear(), d3_scale_logp);
};

function d3_scale_log(linear, log) {
  var pow = log.pow;

  function scale(x) {
    return linear(log(x));
  }

  scale.invert = function(x) {
    return pow(linear.invert(x));
  };

  scale.domain = function(x) {
    if (!arguments.length) return linear.domain().map(pow);
    log = x[0] < 0 ? d3_scale_logn : d3_scale_logp;
    pow = log.pow;
    linear.domain(x.map(log));
    return scale;
  };

  scale.nice = function() {
    linear.domain(d3_scale_nice(linear.domain(), d3_scale_niceDefault));
    return scale;
  };

  scale.ticks = function() {
    var extent = d3_scaleExtent(linear.domain()),
        ticks = [];
    if (extent.every(isFinite)) {
      var i = Math.floor(extent[0]),
          j = Math.ceil(extent[1]),
          u = pow(extent[0]),
          v = pow(extent[1]);
      if (log === d3_scale_logn) {
        ticks.push(pow(i));
        for (; i++ < j;) for (var k = 9; k > 0; k--) ticks.push(pow(i) * k);
      } else {
        for (; i < j; i++) for (var k = 1; k < 10; k++) ticks.push(pow(i) * k);
        ticks.push(pow(i));
      }
      for (i = 0; ticks[i] < u; i++) {} // strip small values
      for (j = ticks.length; ticks[j - 1] > v; j--) {} // strip big values
      ticks = ticks.slice(i, j);
    }
    return ticks;
  };

  scale.tickFormat = function(n, format) {
    if (arguments.length < 2) format = d3_scale_logFormat;
    if (arguments.length < 1) return format;
    var k = n / scale.ticks().length,
        f = log === d3_scale_logn ? (e = -1e-15, Math.floor) : (e = 1e-15, Math.ceil),
        e;
    return function(d) {
      return d / pow(f(log(d) + e)) < k ? format(d) : "";
    };
  };

  scale.copy = function() {
    return d3_scale_log(linear.copy(), log);
  };

  return d3_scale_linearRebind(scale, linear);
};

var d3_scale_logFormat = d3.format(".0e");

function d3_scale_logp(x) {
  return Math.log(x) / Math.LN10;
}

function d3_scale_logn(x) {
  return -Math.log(-x) / Math.LN10;
}

d3_scale_logp.pow = function(x) {
  return Math.pow(10, x);
};

d3_scale_logn.pow = function(x) {
  return -Math.pow(10, -x);
};
d3.scale.pow = function() {
  return d3_scale_pow(d3.scale.linear(), 1);
};

function d3_scale_pow(linear, exponent) {
  var powp = d3_scale_powPow(exponent),
      powb = d3_scale_powPow(1 / exponent);

  function scale(x) {
    return linear(powp(x));
  }

  scale.invert = function(x) {
    return powb(linear.invert(x));
  };

  scale.domain = function(x) {
    if (!arguments.length) return linear.domain().map(powb);
    linear.domain(x.map(powp));
    return scale;
  };

  scale.ticks = function(m) {
    return d3_scale_linearTicks(scale.domain(), m);
  };

  scale.tickFormat = function(m) {
    return d3_scale_linearTickFormat(scale.domain(), m);
  };

  scale.nice = function() {
    return scale.domain(d3_scale_nice(scale.domain(), d3_scale_linearNice));
  };

  scale.exponent = function(x) {
    if (!arguments.length) return exponent;
    var domain = scale.domain();
    powp = d3_scale_powPow(exponent = x);
    powb = d3_scale_powPow(1 / exponent);
    return scale.domain(domain);
  };

  scale.copy = function() {
    return d3_scale_pow(linear.copy(), exponent);
  };

  return d3_scale_linearRebind(scale, linear);
};

function d3_scale_powPow(e) {
  return function(x) {
    return x < 0 ? -Math.pow(-x, e) : Math.pow(x, e);
  };
}
d3.scale.sqrt = function() {
  return d3.scale.pow().exponent(.5);
};
d3.scale.ordinal = function() {
  return d3_scale_ordinal([], {t: "range", x: []});
};

function d3_scale_ordinal(domain, ranger) {
  var index,
      range,
      rangeBand;

  function scale(x) {
    return range[((index[x] || (index[x] = domain.push(x))) - 1) % range.length];
  }

  function steps(start, step) {
    return d3.range(domain.length).map(function(i) { return start + step * i; });
  }

  scale.domain = function(x) {
    if (!arguments.length) return domain;
    domain = [];
    index = {};
    var i = -1, n = x.length, xi;
    while (++i < n) if (!index[xi = x[i]]) index[xi] = domain.push(xi);
    return scale[ranger.t](ranger.x, ranger.p);
  };

  scale.range = function(x) {
    if (!arguments.length) return range;
    range = x;
    rangeBand = 0;
    ranger = {t: "range", x: x};
    return scale;
  };

  scale.rangePoints = function(x, padding) {
    if (arguments.length < 2) padding = 0;
    var start = x[0],
        stop = x[1],
        step = (stop - start) / (domain.length - 1 + padding);
    range = steps(domain.length < 2 ? (start + stop) / 2 : start + step * padding / 2, step);
    rangeBand = 0;
    ranger = {t: "rangePoints", x: x, p: padding};
    return scale;
  };

  scale.rangeBands = function(x, padding) {
    if (arguments.length < 2) padding = 0;
    var start = x[0],
        stop = x[1],
        step = (stop - start) / (domain.length + padding);
    range = steps(start + step * padding, step);
    rangeBand = step * (1 - padding);
    ranger = {t: "rangeBands", x: x, p: padding};
    return scale;
  };

  scale.rangeRoundBands = function(x, padding) {
    if (arguments.length < 2) padding = 0;
    var start = x[0],
        stop = x[1],
        step = Math.floor((stop - start) / (domain.length + padding));
    range = steps(start + Math.round((stop - start - (domain.length - padding) * step) / 2), step);
    rangeBand = Math.round(step * (1 - padding));
    ranger = {t: "rangeRoundBands", x: x, p: padding};
    return scale;
  };

  scale.rangeBand = function() {
    return rangeBand;
  };

  scale.copy = function() {
    return d3_scale_ordinal(domain, ranger);
  };

  return scale.domain(domain);
};
/*
 * This product includes color specifications and designs developed by Cynthia
 * Brewer (http://colorbrewer.org/). See lib/colorbrewer for more information.
 */

d3.scale.category10 = function() {
  return d3.scale.ordinal().range(d3_category10);
};

d3.scale.category20 = function() {
  return d3.scale.ordinal().range(d3_category20);
};

d3.scale.category20b = function() {
  return d3.scale.ordinal().range(d3_category20b);
};

d3.scale.category20c = function() {
  return d3.scale.ordinal().range(d3_category20c);
};

var d3_category10 = [
  "#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#9467bd",
  "#8c564b", "#e377c2", "#7f7f7f", "#bcbd22", "#17becf"
];

var d3_category20 = [
  "#1f77b4", "#aec7e8",
  "#ff7f0e", "#ffbb78",
  "#2ca02c", "#98df8a",
  "#d62728", "#ff9896",
  "#9467bd", "#c5b0d5",
  "#8c564b", "#c49c94",
  "#e377c2", "#f7b6d2",
  "#7f7f7f", "#c7c7c7",
  "#bcbd22", "#dbdb8d",
  "#17becf", "#9edae5"
];

var d3_category20b = [
  "#393b79", "#5254a3", "#6b6ecf", "#9c9ede",
  "#637939", "#8ca252", "#b5cf6b", "#cedb9c",
  "#8c6d31", "#bd9e39", "#e7ba52", "#e7cb94",
  "#843c39", "#ad494a", "#d6616b", "#e7969c",
  "#7b4173", "#a55194", "#ce6dbd", "#de9ed6"
];

var d3_category20c = [
  "#3182bd", "#6baed6", "#9ecae1", "#c6dbef",
  "#e6550d", "#fd8d3c", "#fdae6b", "#fdd0a2",
  "#31a354", "#74c476", "#a1d99b", "#c7e9c0",
  "#756bb1", "#9e9ac8", "#bcbddc", "#dadaeb",
  "#636363", "#969696", "#bdbdbd", "#d9d9d9"
];
d3.scale.quantile = function() {
  return d3_scale_quantile([], []);
};

function d3_scale_quantile(domain, range) {
  var thresholds;

  function rescale() {
    var k = 0,
        n = domain.length,
        q = range.length;
    thresholds = [];
    while (++k < q) thresholds[k - 1] = d3.quantile(domain, k / q);
    return scale;
  }

  function scale(x) {
    if (isNaN(x = +x)) return NaN;
    return range[d3.bisect(thresholds, x)];
  }

  scale.domain = function(x) {
    if (!arguments.length) return domain;
    domain = x.filter(function(d) { return !isNaN(d); }).sort(d3.ascending);
    return rescale();
  };

  scale.range = function(x) {
    if (!arguments.length) return range;
    range = x;
    return rescale();
  };

  scale.quantiles = function() {
    return thresholds;
  };

  scale.copy = function() {
    return d3_scale_quantile(domain, range); // copy on write!
  };

  return rescale();
};
d3.scale.quantize = function() {
  return d3_scale_quantize(0, 1, [0, 1]);
};

function d3_scale_quantize(x0, x1, range) {
  var kx, i;

  function scale(x) {
    return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))];
  }

  function rescale() {
    kx = range.length / (x1 - x0);
    i = range.length - 1;
    return scale;
  }

  scale.domain = function(x) {
    if (!arguments.length) return [x0, x1];
    x0 = +x[0];
    x1 = +x[x.length - 1];
    return rescale();
  };

  scale.range = function(x) {
    if (!arguments.length) return range;
    range = x;
    return rescale();
  };

  scale.copy = function() {
    return d3_scale_quantize(x0, x1, range); // copy on write
  };

  return rescale();
};
d3.svg = {};
d3.svg.arc = function() {
  var innerRadius = d3_svg_arcInnerRadius,
      outerRadius = d3_svg_arcOuterRadius,
      startAngle = d3_svg_arcStartAngle,
      endAngle = d3_svg_arcEndAngle;

  function arc() {
    var r0 = innerRadius.apply(this, arguments),
        r1 = outerRadius.apply(this, arguments),
        a0 = startAngle.apply(this, arguments) + d3_svg_arcOffset,
        a1 = endAngle.apply(this, arguments) + d3_svg_arcOffset,
        da = (a1 < a0 && (da = a0, a0 = a1, a1 = da), a1 - a0),
        df = da < Math.PI ? "0" : "1",
        c0 = Math.cos(a0),
        s0 = Math.sin(a0),
        c1 = Math.cos(a1),
        s1 = Math.sin(a1);
    return da >= d3_svg_arcMax
      ? (r0
      ? "M0," + r1
      + "A" + r1 + "," + r1 + " 0 1,1 0," + (-r1)
      + "A" + r1 + "," + r1 + " 0 1,1 0," + r1
      + "M0," + r0
      + "A" + r0 + "," + r0 + " 0 1,0 0," + (-r0)
      + "A" + r0 + "," + r0 + " 0 1,0 0," + r0
      + "Z"
      : "M0," + r1
      + "A" + r1 + "," + r1 + " 0 1,1 0," + (-r1)
      + "A" + r1 + "," + r1 + " 0 1,1 0," + r1
      + "Z")
      : (r0
      ? "M" + r1 * c0 + "," + r1 * s0
      + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1
      + "L" + r0 * c1 + "," + r0 * s1
      + "A" + r0 + "," + r0 + " 0 " + df + ",0 " + r0 * c0 + "," + r0 * s0
      + "Z"
      : "M" + r1 * c0 + "," + r1 * s0
      + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1
      + "L0,0"
      + "Z");
  }

  arc.innerRadius = function(v) {
    if (!arguments.length) return innerRadius;
    innerRadius = d3.functor(v);
    return arc;
  };

  arc.outerRadius = function(v) {
    if (!arguments.length) return outerRadius;
    outerRadius = d3.functor(v);
    return arc;
  };

  arc.startAngle = function(v) {
    if (!arguments.length) return startAngle;
    startAngle = d3.functor(v);
    return arc;
  };

  arc.endAngle = function(v) {
    if (!arguments.length) return endAngle;
    endAngle = d3.functor(v);
    return arc;
  };

  arc.centroid = function() {
    var r = (innerRadius.apply(this, arguments)
        + outerRadius.apply(this, arguments)) / 2,
        a = (startAngle.apply(this, arguments)
        + endAngle.apply(this, arguments)) / 2 + d3_svg_arcOffset;
    return [Math.cos(a) * r, Math.sin(a) * r];
  };

  return arc;
};

var d3_svg_arcOffset = -Math.PI / 2,
    d3_svg_arcMax = 2 * Math.PI - 1e-6;

function d3_svg_arcInnerRadius(d) {
  return d.innerRadius;
}

function d3_svg_arcOuterRadius(d) {
  return d.outerRadius;
}

function d3_svg_arcStartAngle(d) {
  return d.startAngle;
}

function d3_svg_arcEndAngle(d) {
  return d.endAngle;
}
function d3_svg_line(projection) {
  var x = d3_svg_lineX,
      y = d3_svg_lineY,
      interpolate = "linear",
      interpolator = d3_svg_lineInterpolators[interpolate],
      tension = .7;

  function line(d) {
    return d.length < 1 ? null : "M" + interpolator(projection(d3_svg_linePoints(this, d, x, y)), tension);
  }

  line.x = function(v) {
    if (!arguments.length) return x;
    x = v;
    return line;
  };

  line.y = function(v) {
    if (!arguments.length) return y;
    y = v;
    return line;
  };

  line.interpolate = function(v) {
    if (!arguments.length) return interpolate;
    interpolator = d3_svg_lineInterpolators[interpolate = v];
    return line;
  };

  line.tension = function(v) {
    if (!arguments.length) return tension;
    tension = v;
    return line;
  };

  return line;
}

d3.svg.line = function() {
  return d3_svg_line(Object);
};

// Converts the specified array of data into an array of points
// (x-y tuples), by evaluating the specified `x` and `y` functions on each
// data point. The `this` context of the evaluated functions is the specified
// "self" object; each function is passed the current datum and index.
function d3_svg_linePoints(self, d, x, y) {
  var points = [],
      i = -1,
      n = d.length,
      fx = typeof x === "function",
      fy = typeof y === "function",
      value;
  if (fx && fy) {
    while (++i < n) points.push([
      x.call(self, value = d[i], i),
      y.call(self, value, i)
    ]);
  } else if (fx) {
    while (++i < n) points.push([x.call(self, d[i], i), y]);
  } else if (fy) {
    while (++i < n) points.push([x, y.call(self, d[i], i)]);
  } else {
    while (++i < n) points.push([x, y]);
  }
  return points;
}

// The default `x` property, which references d[0].
function d3_svg_lineX(d) {
  return d[0];
}

// The default `y` property, which references d[1].
function d3_svg_lineY(d) {
  return d[1];
}

// The various interpolators supported by the `line` class.
var d3_svg_lineInterpolators = {
  "linear": d3_svg_lineLinear,
  "step-before": d3_svg_lineStepBefore,
  "step-after": d3_svg_lineStepAfter,
  "basis": d3_svg_lineBasis,
  "basis-open": d3_svg_lineBasisOpen,
  "basis-closed": d3_svg_lineBasisClosed,
  "bundle": d3_svg_lineBundle,
  "cardinal": d3_svg_lineCardinal,
  "cardinal-open": d3_svg_lineCardinalOpen,
  "cardinal-closed": d3_svg_lineCardinalClosed,
  "monotone": d3_svg_lineMonotone
};

// Linear interpolation; generates "L" commands.
function d3_svg_lineLinear(points) {
  var i = 0,
      n = points.length,
      p = points[0],
      path = [p[0], ",", p[1]];
  while (++i < n) path.push("L", (p = points[i])[0], ",", p[1]);
  return path.join("");
}

// Step interpolation; generates "H" and "V" commands.
function d3_svg_lineStepBefore(points) {
  var i = 0,
      n = points.length,
      p = points[0],
      path = [p[0], ",", p[1]];
  while (++i < n) path.push("V", (p = points[i])[1], "H", p[0]);
  return path.join("");
}

// Step interpolation; generates "H" and "V" commands.
function d3_svg_lineStepAfter(points) {
  var i = 0,
      n = points.length,
      p = points[0],
      path = [p[0], ",", p[1]];
  while (++i < n) path.push("H", (p = points[i])[0], "V", p[1]);
  return path.join("");
}

// Open cardinal spline interpolation; generates "C" commands.
function d3_svg_lineCardinalOpen(points, tension) {
  return points.length < 4
      ? d3_svg_lineLinear(points)
      : points[1] + d3_svg_lineHermite(points.slice(1, points.length - 1),
        d3_svg_lineCardinalTangents(points, tension));
}

// Closed cardinal spline interpolation; generates "C" commands.
function d3_svg_lineCardinalClosed(points, tension) {
  return points.length < 3
      ? d3_svg_lineLinear(points)
      : points[0] + d3_svg_lineHermite((points.push(points[0]), points),
        d3_svg_lineCardinalTangents([points[points.length - 2]]
        .concat(points, [points[1]]), tension));
}

// Cardinal spline interpolation; generates "C" commands.
function d3_svg_lineCardinal(points, tension, closed) {
  return points.length < 3
      ? d3_svg_lineLinear(points)
      : points[0] + d3_svg_lineHermite(points,
        d3_svg_lineCardinalTangents(points, tension));
}

// Hermite spline construction; generates "C" commands.
function d3_svg_lineHermite(points, tangents) {
  if (tangents.length < 1
      || (points.length != tangents.length
      && points.length != tangents.length + 2)) {
    return d3_svg_lineLinear(points);
  }

  var quad = points.length != tangents.length,
      path = "",
      p0 = points[0],
      p = points[1],
      t0 = tangents[0],
      t = t0,
      pi = 1;

  if (quad) {
    path += "Q" + (p[0] - t0[0] * 2 / 3) + "," + (p[1] - t0[1] * 2 / 3)
        + "," + p[0] + "," + p[1];
    p0 = points[1];
    pi = 2;
  }

  if (tangents.length > 1) {
    t = tangents[1];
    p = points[pi];
    pi++;
    path += "C" + (p0[0] + t0[0]) + "," + (p0[1] + t0[1])
        + "," + (p[0] - t[0]) + "," + (p[1] - t[1])
        + "," + p[0] + "," + p[1];
    for (var i = 2; i < tangents.length; i++, pi++) {
      p = points[pi];
      t = tangents[i];
      path += "S" + (p[0] - t[0]) + "," + (p[1] - t[1])
          + "," + p[0] + "," + p[1];
    }
  }

  if (quad) {
    var lp = points[pi];
    path += "Q" + (p[0] + t[0] * 2 / 3) + "," + (p[1] + t[1] * 2 / 3)
        + "," + lp[0] + "," + lp[1];
  }

  return path;
}

// Generates tangents for a cardinal spline.
function d3_svg_lineCardinalTangents(points, tension) {
  var tangents = [],
      a = (1 - tension) / 2,
      p0,
      p1 = points[0],
      p2 = points[1],
      i = 1,
      n = points.length;
  while (++i < n) {
    p0 = p1;
    p1 = p2;
    p2 = points[i];
    tangents.push([a * (p2[0] - p0[0]), a * (p2[1] - p0[1])]);
  }
  return tangents;
}

// B-spline interpolation; generates "C" commands.
function d3_svg_lineBasis(points) {
  if (points.length < 3) return d3_svg_lineLinear(points);
  var i = 1,
      n = points.length,
      pi = points[0],
      x0 = pi[0],
      y0 = pi[1],
      px = [x0, x0, x0, (pi = points[1])[0]],
      py = [y0, y0, y0, pi[1]],
      path = [x0, ",", y0];
  d3_svg_lineBasisBezier(path, px, py);
  while (++i < n) {
    pi = points[i];
    px.shift(); px.push(pi[0]);
    py.shift(); py.push(pi[1]);
    d3_svg_lineBasisBezier(path, px, py);
  }
  i = -1;
  while (++i < 2) {
    px.shift(); px.push(pi[0]);
    py.shift(); py.push(pi[1]);
    d3_svg_lineBasisBezier(path, px, py);
  }
  return path.join("");
}

// Open B-spline interpolation; generates "C" commands.
function d3_svg_lineBasisOpen(points) {
  if (points.length < 4) return d3_svg_lineLinear(points);
  var path = [],
      i = -1,
      n = points.length,
      pi,
      px = [0],
      py = [0];
  while (++i < 3) {
    pi = points[i];
    px.push(pi[0]);
    py.push(pi[1]);
  }
  path.push(d3_svg_lineDot4(d3_svg_lineBasisBezier3, px)
    + "," + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py));
  --i; while (++i < n) {
    pi = points[i];
    px.shift(); px.push(pi[0]);
    py.shift(); py.push(pi[1]);
    d3_svg_lineBasisBezier(path, px, py);
  }
  return path.join("");
}

// Closed B-spline interpolation; generates "C" commands.
function d3_svg_lineBasisClosed(points) {
  var path,
      i = -1,
      n = points.length,
      m = n + 4,
      pi,
      px = [],
      py = [];
  while (++i < 4) {
    pi = points[i % n];
    px.push(pi[0]);
    py.push(pi[1]);
  }
  path = [
    d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",",
    d3_svg_lineDot4(d3_svg_lineBasisBezier3, py)
  ];
  --i; while (++i < m) {
    pi = points[i % n];
    px.shift(); px.push(pi[0]);
    py.shift(); py.push(pi[1]);
    d3_svg_lineBasisBezier(path, px, py);
  }
  return path.join("");
}

function d3_svg_lineBundle(points, tension) {
  var n = points.length - 1,
      x0 = points[0][0],
      y0 = points[0][1],
      dx = points[n][0] - x0,
      dy = points[n][1] - y0,
      i = -1,
      p,
      t;
  while (++i <= n) {
    p = points[i];
    t = i / n;
    p[0] = tension * p[0] + (1 - tension) * (x0 + t * dx);
    p[1] = tension * p[1] + (1 - tension) * (y0 + t * dy);
  }
  return d3_svg_lineBasis(points);
}

// Returns the dot product of the given four-element vectors.
function d3_svg_lineDot4(a, b) {
  return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];
}

// Matrix to transform basis (b-spline) control points to bezier
// control points. Derived from FvD 11.2.8.
var d3_svg_lineBasisBezier1 = [0, 2/3, 1/3, 0],
    d3_svg_lineBasisBezier2 = [0, 1/3, 2/3, 0],
    d3_svg_lineBasisBezier3 = [0, 1/6, 2/3, 1/6];

// Pushes a "C" Bézier curve onto the specified path array, given the
// two specified four-element arrays which define the control points.
function d3_svg_lineBasisBezier(path, x, y) {
  path.push(
      "C", d3_svg_lineDot4(d3_svg_lineBasisBezier1, x),
      ",", d3_svg_lineDot4(d3_svg_lineBasisBezier1, y),
      ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, x),
      ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, y),
      ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, x),
      ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, y));
}

// Computes the slope from points p0 to p1.
function d3_svg_lineSlope(p0, p1) {
  return (p1[1] - p0[1]) / (p1[0] - p0[0]);
}

// Compute three-point differences for the given points.
// http://en.wikipedia.org/wiki/Cubic_Hermite_spline#Finite_difference
function d3_svg_lineFiniteDifferences(points) {
  var i = 0,
      j = points.length - 1,
      m = [],
      p0 = points[0],
      p1 = points[1],
      d = m[0] = d3_svg_lineSlope(p0, p1);
  while (++i < j) {
    m[i] = d + (d = d3_svg_lineSlope(p0 = p1, p1 = points[i + 1]));
  }
  m[i] = d;
  return m;
}

// Interpolates the given points using Fritsch-Carlson Monotone cubic Hermite
// interpolation. Returns an array of tangent vectors. For details, see
// http://en.wikipedia.org/wiki/Monotone_cubic_interpolation
function d3_svg_lineMonotoneTangents(points) {
  var tangents = [],
      d,
      a,
      b,
      s,
      m = d3_svg_lineFiniteDifferences(points),
      i = -1,
      j = points.length - 1;

  // The first two steps are done by computing finite-differences:
  // 1. Compute the slopes of the secant lines between successive points.
  // 2. Initialize the tangents at every point as the average of the secants.

  // Then, for each segment…
  while (++i < j) {
    d = d3_svg_lineSlope(points[i], points[i + 1]);

    // 3. If two successive yk = y{k + 1} are equal (i.e., d is zero), then set
    // mk = m{k + 1} = 0 as the spline connecting these points must be flat to
    // preserve monotonicity. Ignore step 4 and 5 for those k.

    if (Math.abs(d) < 1e-6) {
      m[i] = m[i + 1] = 0;
    } else {
      // 4. Let ak = mk / dk and bk = m{k + 1} / dk.
      a = m[i] / d;
      b = m[i + 1] / d;

      // 5. Prevent overshoot and ensure monotonicity by restricting the
      // magnitude of vector <ak, bk> to a circle of radius 3.
      s = a * a + b * b;
      if (s > 9) {
        s = d * 3 / Math.sqrt(s);
        m[i] = s * a;
        m[i + 1] = s * b;
      }
    }
  }

  // Compute the normalized tangent vector from the slopes. Note that if x is
  // not monotonic, it's possible that the slope will be infinite, so we protect
  // against NaN by setting the coordinate to zero.
  i = -1; while (++i <= j) {
    s = (points[Math.min(j, i + 1)][0] - points[Math.max(0, i - 1)][0])
      / (6 * (1 + m[i] * m[i]));
    tangents.push([s || 0, m[i] * s || 0]);
  }

  return tangents;
}

function d3_svg_lineMonotone(points) {
  return points.length < 3
      ? d3_svg_lineLinear(points)
      : points[0] +
        d3_svg_lineHermite(points, d3_svg_lineMonotoneTangents(points));
}
d3.svg.line.radial = function() {
  var line = d3_svg_line(d3_svg_lineRadial);
  line.radius = line.x, delete line.x;
  line.angle = line.y, delete line.y;
  return line;
};

function d3_svg_lineRadial(points) {
  var point,
      i = -1,
      n = points.length,
      r,
      a;
  while (++i < n) {
    point = points[i];
    r = point[0];
    a = point[1] + d3_svg_arcOffset;
    point[0] = r * Math.cos(a);
    point[1] = r * Math.sin(a);
  }
  return points;
}
function d3_svg_area(projection) {
  var x0 = d3_svg_lineX,
      x1 = d3_svg_lineX,
      y0 = 0,
      y1 = d3_svg_lineY,
      interpolate,
      i0,
      i1,
      tension = .7;

  function area(d) {
    if (d.length < 1) return null;
    var points0 = d3_svg_linePoints(this, d, x0, y0),
        points1 = d3_svg_linePoints(this, d, x0 === x1 ? d3_svg_areaX(points0) : x1, y0 === y1 ? d3_svg_areaY(points0) : y1);
    return "M" + i0(projection(points1), tension)
         + "L" + i1(projection(points0.reverse()), tension)
         + "Z";
  }

  area.x = function(x) {
    if (!arguments.length) return x1;
    x0 = x1 = x;
    return area;
  };

  area.x0 = function(x) {
    if (!arguments.length) return x0;
    x0 = x;
    return area;
  };

  area.x1 = function(x) {
    if (!arguments.length) return x1;
    x1 = x;
    return area;
  };

  area.y = function(y) {
    if (!arguments.length) return y1;
    y0 = y1 = y;
    return area;
  };

  area.y0 = function(y) {
    if (!arguments.length) return y0;
    y0 = y;
    return area;
  };

  area.y1 = function(y) {
    if (!arguments.length) return y1;
    y1 = y;
    return area;
  };

  area.interpolate = function(x) {
    if (!arguments.length) return interpolate;
    i0 = d3_svg_lineInterpolators[interpolate = x];
    i1 = i0.reverse || i0;
    return area;
  };

  area.tension = function(x) {
    if (!arguments.length) return tension;
    tension = x;
    return area;
  };

  return area.interpolate("linear");
}

d3_svg_lineStepBefore.reverse = d3_svg_lineStepAfter;
d3_svg_lineStepAfter.reverse = d3_svg_lineStepBefore;

d3.svg.area = function() {
  return d3_svg_area(Object);
};

function d3_svg_areaX(points) {
  return function(d, i) {
    return points[i][0];
  };
}

function d3_svg_areaY(points) {
  return function(d, i) {
    return points[i][1];
  };
}
d3.svg.area.radial = function() {
  var area = d3_svg_area(d3_svg_lineRadial);
  area.radius = area.x, delete area.x;
  area.innerRadius = area.x0, delete area.x0;
  area.outerRadius = area.x1, delete area.x1;
  area.angle = area.y, delete area.y;
  area.startAngle = area.y0, delete area.y0;
  area.endAngle = area.y1, delete area.y1;
  return area;
};
d3.svg.chord = function() {
  var source = d3_svg_chordSource,
      target = d3_svg_chordTarget,
      radius = d3_svg_chordRadius,
      startAngle = d3_svg_arcStartAngle,
      endAngle = d3_svg_arcEndAngle;

  // TODO Allow control point to be customized.

  function chord(d, i) {
    var s = subgroup(this, source, d, i),
        t = subgroup(this, target, d, i);
    return "M" + s.p0
      + arc(s.r, s.p1) + (equals(s, t)
      ? curve(s.r, s.p1, s.r, s.p0)
      : curve(s.r, s.p1, t.r, t.p0)
      + arc(t.r, t.p1)
      + curve(t.r, t.p1, s.r, s.p0))
      + "Z";
  }

  function subgroup(self, f, d, i) {
    var subgroup = f.call(self, d, i),
        r = radius.call(self, subgroup, i),
        a0 = startAngle.call(self, subgroup, i) + d3_svg_arcOffset,
        a1 = endAngle.call(self, subgroup, i) + d3_svg_arcOffset;
    return {
      r: r,
      a0: a0,
      a1: a1,
      p0: [r * Math.cos(a0), r * Math.sin(a0)],
      p1: [r * Math.cos(a1), r * Math.sin(a1)]
    };
  }

  function equals(a, b) {
    return a.a0 == b.a0 && a.a1 == b.a1;
  }

  function arc(r, p) {
    return "A" + r + "," + r + " 0 0,1 " + p;
  }

  function curve(r0, p0, r1, p1) {
    return "Q 0,0 " + p1;
  }

  chord.radius = function(v) {
    if (!arguments.length) return radius;
    radius = d3.functor(v);
    return chord;
  };

  chord.source = function(v) {
    if (!arguments.length) return source;
    source = d3.functor(v);
    return chord;
  };

  chord.target = function(v) {
    if (!arguments.length) return target;
    target = d3.functor(v);
    return chord;
  };

  chord.startAngle = function(v) {
    if (!arguments.length) return startAngle;
    startAngle = d3.functor(v);
    return chord;
  };

  chord.endAngle = function(v) {
    if (!arguments.length) return endAngle;
    endAngle = d3.functor(v);
    return chord;
  };

  return chord;
};

function d3_svg_chordSource(d) {
  return d.source;
}

function d3_svg_chordTarget(d) {
  return d.target;
}

function d3_svg_chordRadius(d) {
  return d.radius;
}

function d3_svg_chordStartAngle(d) {
  return d.startAngle;
}

function d3_svg_chordEndAngle(d) {
  return d.endAngle;
}
d3.svg.diagonal = function() {
  var source = d3_svg_chordSource,
      target = d3_svg_chordTarget,
      projection = d3_svg_diagonalProjection;

  function diagonal(d, i) {
    var p0 = source.call(this, d, i),
        p3 = target.call(this, d, i),
        m = (p0.y + p3.y) / 2,
        p = [p0, {x: p0.x, y: m}, {x: p3.x, y: m}, p3];
    p = p.map(projection);
    return "M" + p[0] + "C" + p[1] + " " + p[2] + " " + p[3];
  }

  diagonal.source = function(x) {
    if (!arguments.length) return source;
    source = d3.functor(x);
    return diagonal;
  };

  diagonal.target = function(x) {
    if (!arguments.length) return target;
    target = d3.functor(x);
    return diagonal;
  };

  diagonal.projection = function(x) {
    if (!arguments.length) return projection;
    projection = x;
    return diagonal;
  };

  return diagonal;
};

function d3_svg_diagonalProjection(d) {
  return [d.x, d.y];
}
d3.svg.diagonal.radial = function() {
  var diagonal = d3.svg.diagonal(),
      projection = d3_svg_diagonalProjection,
      projection_ = diagonal.projection;

  diagonal.projection = function(x) {
    return arguments.length
        ? projection_(d3_svg_diagonalRadialProjection(projection = x))
        : projection;
  };

  return diagonal;
};

function d3_svg_diagonalRadialProjection(projection) {
  return function() {
    var d = projection.apply(this, arguments),
        r = d[0],
        a = d[1] + d3_svg_arcOffset;
    return [r * Math.cos(a), r * Math.sin(a)];
  };
}
d3.svg.mouse = function(container) {
  return d3_svg_mousePoint(container, d3.event);
};

// https://bugs.webkit.org/show_bug.cgi?id=44083
var d3_mouse_bug44083 = /WebKit/.test(navigator.userAgent) ? -1 : 0;

function d3_svg_mousePoint(container, e) {
  var point = (container.ownerSVGElement || container).createSVGPoint();
  if ((d3_mouse_bug44083 < 0) && (window.scrollX || window.scrollY)) {
    var svg = d3.select(document.body)
      .append("svg:svg")
        .style("position", "absolute")
        .style("top", 0)
        .style("left", 0);
    var ctm = svg[0][0].getScreenCTM();
    d3_mouse_bug44083 = !(ctm.f || ctm.e);
    svg.remove();
  }
  if (d3_mouse_bug44083) {
    point.x = e.pageX;
    point.y = e.pageY;
  } else {
    point.x = e.clientX;
    point.y = e.clientY;
  }
  point = point.matrixTransform(container.getScreenCTM().inverse());
  return [point.x, point.y];
};
d3.svg.touches = function(container, touches) {
  if (arguments.length < 2) touches = d3.event.touches;

  return touches ? d3_array(touches).map(function(touch) {
    var point = d3_svg_mousePoint(container, touch);
    point.identifier = touch.identifier;
    return point;
  }) : [];
};
d3.svg.symbol = function() {
  var type = d3_svg_symbolType,
      size = d3_svg_symbolSize;

  function symbol(d, i) {
    return (d3_svg_symbols[type.call(this, d, i)]
        || d3_svg_symbols.circle)
        (size.call(this, d, i));
  }

  symbol.type = function(x) {
    if (!arguments.length) return type;
    type = d3.functor(x);
    return symbol;
  };

  // size of symbol in square pixels
  symbol.size = function(x) {
    if (!arguments.length) return size;
    size = d3.functor(x);
    return symbol;
  };

  return symbol;
};

function d3_svg_symbolSize() {
  return 64;
}

function d3_svg_symbolType() {
  return "circle";
}

// TODO cross-diagonal?
var d3_svg_symbols = {
  "circle": function(size) {
    var r = Math.sqrt(size / Math.PI);
    return "M0," + r
        + "A" + r + "," + r + " 0 1,1 0," + (-r)
        + "A" + r + "," + r + " 0 1,1 0," + r
        + "Z";
  },
  "cross": function(size) {
    var r = Math.sqrt(size / 5) / 2;
    return "M" + -3 * r + "," + -r
        + "H" + -r
        + "V" + -3 * r
        + "H" + r
        + "V" + -r
        + "H" + 3 * r
        + "V" + r
        + "H" + r
        + "V" + 3 * r
        + "H" + -r
        + "V" + r
        + "H" + -3 * r
        + "Z";
  },
  "diamond": function(size) {
    var ry = Math.sqrt(size / (2 * d3_svg_symbolTan30)),
        rx = ry * d3_svg_symbolTan30;
    return "M0," + -ry
        + "L" + rx + ",0"
        + " 0," + ry
        + " " + -rx + ",0"
        + "Z";
  },
  "square": function(size) {
    var r = Math.sqrt(size) / 2;
    return "M" + -r + "," + -r
        + "L" + r + "," + -r
        + " " + r + "," + r
        + " " + -r + "," + r
        + "Z";
  },
  "triangle-down": function(size) {
    var rx = Math.sqrt(size / d3_svg_symbolSqrt3),
        ry = rx * d3_svg_symbolSqrt3 / 2;
    return "M0," + ry
        + "L" + rx +"," + -ry
        + " " + -rx + "," + -ry
        + "Z";
  },
  "triangle-up": function(size) {
    var rx = Math.sqrt(size / d3_svg_symbolSqrt3),
        ry = rx * d3_svg_symbolSqrt3 / 2;
    return "M0," + -ry
        + "L" + rx +"," + ry
        + " " + -rx + "," + ry
        + "Z";
  }
};

d3.svg.symbolTypes = d3.keys(d3_svg_symbols);

var d3_svg_symbolSqrt3 = Math.sqrt(3),
    d3_svg_symbolTan30 = Math.tan(30 * Math.PI / 180);
d3.svg.axis = function() {
  var scale = d3.scale.linear(),
      orient = "bottom",
      tickMajorSize = 6,
      tickMinorSize = 6,
      tickEndSize = 6,
      tickPadding = 3,
      tickArguments_ = [10],
      tickFormat_,
      tickSubdivide = 0;

  function axis(selection) {
    selection.each(function(d, i, j) {
      var g = d3.select(this);

      // If selection is a transition, create subtransitions.
      var transition = selection.delay ? function(o) {
        var id = d3_transitionInheritId;
        try {
          d3_transitionInheritId = selection.id;
          return o.transition()
              .delay(selection[j][i].delay)
              .duration(selection[j][i].duration)
              .ease(selection.ease());
        } finally {
          d3_transitionInheritId = id;
        }
      } : Object;

      // Ticks.
      var ticks = scale.ticks.apply(scale, tickArguments_),
          tickFormat = tickFormat_ == null ? scale.tickFormat.apply(scale, tickArguments_) : tickFormat_;

      // Minor ticks.
      var subticks = d3_svg_axisSubdivide(scale, ticks, tickSubdivide),
          subtick = g.selectAll(".minor").data(subticks, String),
          subtickEnter = subtick.enter().insert("svg:line", "g").attr("class", "tick minor").style("opacity", 1e-6),
          subtickExit = transition(subtick.exit()).style("opacity", 1e-6).remove(),
          subtickUpdate = transition(subtick).style("opacity", 1);

      // Major ticks.
      var tick = g.selectAll("g").data(ticks, String),
          tickEnter = tick.enter().insert("svg:g", "path").style("opacity", 1e-6),
          tickExit = transition(tick.exit()).style("opacity", 1e-6).remove(),
          tickUpdate = transition(tick).style("opacity", 1),
          tickTransform;

      // Domain.
      var range = d3_scaleExtent(scale.range()),
          path = g.selectAll(".domain").data([0]),
          pathEnter = path.enter().append("svg:path").attr("class", "domain"),
          pathUpdate = transition(path);

      // Stash the new scale and grab the old scale.
      var scale0 = this.__chart__ || scale;
      this.__chart__ = scale.copy();

      tickEnter.append("svg:line").attr("class", "tick");
      tickEnter.append("svg:text");
      tickUpdate.select("text").text(tickFormat);

      switch (orient) {
        case "bottom": {
          tickTransform = d3_svg_axisX;
          subtickUpdate.attr("x2", 0).attr("y2", tickMinorSize);
          tickUpdate.select("line").attr("x2", 0).attr("y2", tickMajorSize);
          tickUpdate.select("text").attr("x", 0).attr("y", Math.max(tickMajorSize, 0) + tickPadding).attr("dy", ".71em").attr("text-anchor", "middle");
          pathUpdate.attr("d", "M" + range[0] + "," + tickEndSize + "V0H" + range[1] + "V" + tickEndSize);
          break;
        }
        case "top": {
          tickTransform = d3_svg_axisX;
          subtickUpdate.attr("x2", 0).attr("y2", -tickMinorSize);
          tickUpdate.select("line").attr("x2", 0).attr("y2", -tickMajorSize);
          tickUpdate.select("text").attr("x", 0).attr("y", -(Math.max(tickMajorSize, 0) + tickPadding)).attr("dy", "0em").attr("text-anchor", "middle");
          pathUpdate.attr("d", "M" + range[0] + "," + -tickEndSize + "V0H" + range[1] + "V" + -tickEndSize);
          break;
        }
        case "left": {
          tickTransform = d3_svg_axisY;
          subtickUpdate.attr("x2", -tickMinorSize).attr("y2", 0);
          tickUpdate.select("line").attr("x2", -tickMajorSize).attr("y2", 0);
          tickUpdate.select("text").attr("x", -(Math.max(tickMajorSize, 0) + tickPadding)).attr("y", 0).attr("dy", ".32em").attr("text-anchor", "end");
          pathUpdate.attr("d", "M" + -tickEndSize + "," + range[0] + "H0V" + range[1] + "H" + -tickEndSize);
          break;
        }
        case "right": {
          tickTransform = d3_svg_axisY;
          subtickUpdate.attr("x2", tickMinorSize).attr("y2", 0);
          tickUpdate.select("line").attr("x2", tickMajorSize).attr("y2", 0);
          tickUpdate.select("text").attr("x", Math.max(tickMajorSize, 0) + tickPadding).attr("y", 0).attr("dy", ".32em").attr("text-anchor", "start");
          pathUpdate.attr("d", "M" + tickEndSize + "," + range[0] + "H0V" + range[1] + "H" + tickEndSize);
          break;
        }
      }

      tickEnter.call(tickTransform, scale0);
      tickUpdate.call(tickTransform, scale);
      tickExit.call(tickTransform, scale);

      subtickEnter.call(tickTransform, scale0);
      subtickUpdate.call(tickTransform, scale);
      subtickExit.call(tickTransform, scale);
    });
  }

  axis.scale = function(x) {
    if (!arguments.length) return scale;
    scale = x;
    return axis;
  };

  axis.orient = function(x) {
    if (!arguments.length) return orient;
    orient = x;
    return axis;
  };

  axis.ticks = function() {
    if (!arguments.length) return tickArguments_;
    tickArguments_ = arguments;
    return axis;
  };

  axis.tickFormat = function(x) {
    if (!arguments.length) return tickFormat_;
    tickFormat_ = x;
    return axis;
  };

  axis.tickSize = function(x, y, z) {
    if (!arguments.length) return tickMajorSize;
    var n = arguments.length - 1;
    tickMajorSize = +x;
    tickMinorSize = n > 1 ? +y : tickMajorSize;
    tickEndSize = n > 0 ? +arguments[n] : tickMajorSize;
    return axis;
  };

  axis.tickPadding = function(x) {
    if (!arguments.length) return tickPadding;
    tickPadding = +x;
    return axis;
  };

  axis.tickSubdivide = function(x) {
    if (!arguments.length) return tickSubdivide;
    tickSubdivide = +x;
    return axis;
  };

  return axis;
};

function d3_svg_axisX(selection, x) {
  selection.attr("transform", function(d) { return "translate(" + x(d) + ",0)"; });
}

function d3_svg_axisY(selection, y) {
  selection.attr("transform", function(d) { return "translate(0," + y(d) + ")"; });
}

function d3_svg_axisSubdivide(scale, ticks, m) {
  subticks = [];
  if (m && ticks.length > 1) {
    var extent = d3_scaleExtent(scale.domain()),
        subticks,
        i = -1,
        n = ticks.length,
        d = (ticks[1] - ticks[0]) / ++m,
        j,
        v;
    while (++i < n) {
      for (j = m; --j > 0;) {
        if ((v = +ticks[i] - j * d) >= extent[0]) {
          subticks.push(v);
        }
      }
    }
    for (--i, j = 0; ++j < m && (v = +ticks[i] + j * d) < extent[1];) {
      subticks.push(v);
    }
  }
  return subticks;
}
d3.svg.brush = function() {
  var event = d3.dispatch("brushstart", "brush", "brushend"),
      x, // x-scale, optional
      y, // y-scale, optional
      extent = [[0, 0], [0, 0]]; // [x0, y0], [x1, y1]

  function brush(g) {
    var resizes = x && y ? ["n", "e", "s", "w", "nw", "ne", "se", "sw"]
        : x ? ["e", "w"]
        : y ? ["n", "s"]
        : [];

    g.each(function() {
      var g = d3.select(this).on("mousedown.brush", down),
          bg = g.selectAll(".background").data([,]),
          fg = g.selectAll(".extent").data([,]),
          tz = g.selectAll(".resize").data(resizes, String),
          e;

      // An invisible, mouseable area for starting a new brush.
      bg.enter().append("svg:rect")
          .attr("class", "background")
          .style("visibility", "hidden")
          .style("pointer-events", "all")
          .style("cursor", "crosshair");

      // The visible brush extent; style this as you like!
      fg.enter().append("svg:rect")
          .attr("class", "extent")
          .style("cursor", "move");

      // More invisible rects for resizing the extent.
      tz.enter().append("svg:rect")
          .attr("class", function(d) { return "resize " + d; })
          .attr("width", 6)
          .attr("height", 6)
          .style("visibility", "hidden")
          .style("pointer-events", brush.empty() ? "none" : "all")
          .style("cursor", function(d) { return d3_svg_brushCursor[d]; });

      // Remove any superfluous resizers.
      tz.exit().remove();

      // Initialize the background to fill the defined range.
      // If the range isn't defined, you can post-process.
      if (x) {
        e = d3_scaleExtent(x.range());
        bg.attr("x", e[0]).attr("width", e[1] - e[0]);
        d3_svg_brushRedrawX(g, extent);
      }
      if (y) {
        e = d3_scaleExtent(y.range());
        bg.attr("y", e[0]).attr("height", e[1] - e[0]);
        d3_svg_brushRedrawY(g, extent);
      }
    });
  }

  function down() {
    var target = d3.select(d3.event.target);

    // Store some global state for the duration of the brush gesture.
    d3_svg_brush = brush;
    d3_svg_brushTarget = this;
    d3_svg_brushExtent = extent;
    d3_svg_brushOffset = d3.svg.mouse(d3_svg_brushTarget);

    // If the extent was clicked on, drag rather than brush;
    // store the offset between the mouse and extent origin instead.
    if (d3_svg_brushDrag = target.classed("extent")) {
      d3_svg_brushOffset[0] = extent[0][0] - d3_svg_brushOffset[0];
      d3_svg_brushOffset[1] = extent[0][1] - d3_svg_brushOffset[1];
    }

    // If a resizer was clicked on, record which side is to be resized.
    // Also, set the offset to the opposite side.
    else if (target.classed("resize")) {
      d3_svg_brushResize = d3.event.target.__data__;
      d3_svg_brushOffset[0] = extent[+/w$/.test(d3_svg_brushResize)][0];
      d3_svg_brushOffset[1] = extent[+/^n/.test(d3_svg_brushResize)][1];
    }

    // If the ALT key is down when starting a brush, the center is at the mouse.
    else if (d3.event.altKey) {
      d3_svg_brushCenter = d3_svg_brushOffset.slice();
    }

    // Restrict which dimensions are resized.
    d3_svg_brushX = !/^(n|s)$/.test(d3_svg_brushResize) && x;
    d3_svg_brushY = !/^(e|w)$/.test(d3_svg_brushResize) && y;

    // Notify listeners.
    d3_svg_brushDispatch = dispatcher(this, arguments);
    d3_svg_brushDispatch("brushstart");
    d3_svg_brushMove();
    d3_eventCancel();
  }

  function dispatcher(that, argumentz) {
    return function(type) {
      var e = d3.event;
      try {
        d3.event = {type: type, target: brush};
        event[type].apply(that, argumentz);
      } finally {
        d3.event = e;
      }
    };
  }

  brush.x = function(z) {
    if (!arguments.length) return x;
    x = z;
    return brush;
  };

  brush.y = function(z) {
    if (!arguments.length) return y;
    y = z;
    return brush;
  };

  brush.extent = function(z) {
    var x0, x1, y0, y1, t;

    // Invert the pixel extent to data-space.
    if (!arguments.length) {
      if (x) {
        x0 = x.invert(extent[0][0]), x1 = x.invert(extent[1][0]);
        if (x1 < x0) t = x0, x0 = x1, x1 = t;
      }
      if (y) {
        y0 = y.invert(extent[0][1]), y1 = y.invert(extent[1][1]);
        if (y1 < y0) t = y0, y0 = y1, y1 = t;
      }
      return x && y ? [[x0, y0], [x1, y1]] : x ? [x0, x1] : y && [y0, y1];
    }

    // Scale the data-space extent to pixels.
    if (x) {
      x0 = z[0], x1 = z[1];
      if (y) x0 = x0[0], x1 = x1[0];
      x0 = x(x0), x1 = x(x1);
      if (x1 < x0) t = x0, x0 = x1, x1 = t;
      extent[0][0] = x0, extent[1][0] = x1;
    }
    if (y) {
      y0 = z[0], y1 = z[1];
      if (x) y0 = y0[1], y1 = y1[1];
      y0 = y(y0), y1 = y(y1);
      if (y1 < y0) t = y0, y0 = y1, y1 = t;
      extent[0][1] = y0, extent[1][1] = y1;
    }

    return brush;
  };

  brush.clear = function() {
    extent[0][0] =
    extent[0][1] =
    extent[1][0] =
    extent[1][1] = 0;
    return brush;
  };

  brush.empty = function() {
    return (x && extent[0][0] === extent[1][0])
        || (y && extent[0][1] === extent[1][1]);
  };

  brush.on = function(type, listener) {
    event.on(type, listener);
    return brush;
  };

  d3.select(window)
      .on("mousemove.brush", d3_svg_brushMove)
      .on("mouseup.brush", d3_svg_brushUp)
      .on("keydown.brush", d3_svg_brushKeydown)
      .on("keyup.brush", d3_svg_brushKeyup);

  return brush;
};

var d3_svg_brush,
    d3_svg_brushDispatch,
    d3_svg_brushTarget,
    d3_svg_brushX,
    d3_svg_brushY,
    d3_svg_brushExtent,
    d3_svg_brushDrag,
    d3_svg_brushResize,
    d3_svg_brushCenter,
    d3_svg_brushOffset;

function d3_svg_brushRedrawX(g, extent) {
  g.select(".extent").attr("x", extent[0][0]);
  g.selectAll(".n,.s,.w,.nw,.sw").attr("x", extent[0][0] - 2);
  g.selectAll(".e,.ne,.se").attr("x", extent[1][0] - 3);
  g.selectAll(".extent,.n,.s").attr("width", extent[1][0] - extent[0][0]);
}

function d3_svg_brushRedrawY(g, extent) {
  g.select(".extent").attr("y", extent[0][1]);
  g.selectAll(".n,.e,.w,.nw,.ne").attr("y", extent[0][1] - 3);
  g.selectAll(".s,.se,.sw").attr("y", extent[1][1] - 4);
  g.selectAll(".extent,.e,.w").attr("height", extent[1][1] - extent[0][1]);
}

function d3_svg_brushKeydown() {
  if (d3.event.keyCode == 32 && d3_svg_brushTarget && !d3_svg_brushDrag) {
    d3_svg_brushCenter = null;
    d3_svg_brushOffset[0] -= d3_svg_brushExtent[1][0];
    d3_svg_brushOffset[1] -= d3_svg_brushExtent[1][1];
    d3_svg_brushDrag = 2;
    d3_eventCancel();
  }
}

function d3_svg_brushKeyup() {
  if (d3.event.keyCode == 32 && d3_svg_brushDrag == 2) {
    d3_svg_brushOffset[0] += d3_svg_brushExtent[1][0];
    d3_svg_brushOffset[1] += d3_svg_brushExtent[1][1];
    d3_svg_brushDrag = 0;
    d3_eventCancel();
  }
}

function d3_svg_brushMove() {
  if (d3_svg_brushOffset) {
    var mouse = d3.svg.mouse(d3_svg_brushTarget),
        g = d3.select(d3_svg_brushTarget);

    if (!d3_svg_brushDrag) {

      // If needed, determine the center from the current extent.
      if (d3.event.altKey) {
        if (!d3_svg_brushCenter) {
          d3_svg_brushCenter = [
            (d3_svg_brushExtent[0][0] + d3_svg_brushExtent[1][0]) / 2,
            (d3_svg_brushExtent[0][1] + d3_svg_brushExtent[1][1]) / 2
          ];
        }

        // Update the offset, for when the ALT key is released.
        d3_svg_brushOffset[0] = d3_svg_brushExtent[+(mouse[0] < d3_svg_brushCenter[0])][0];
        d3_svg_brushOffset[1] = d3_svg_brushExtent[+(mouse[1] < d3_svg_brushCenter[1])][1];
      }

      // When the ALT key is released, we clear the center.
      else d3_svg_brushCenter = null;
    }

    // Update the brush extent for each dimension.
    if (d3_svg_brushX) {
      d3_svg_brushMove1(mouse, d3_svg_brushX, 0);
      d3_svg_brushRedrawX(g, d3_svg_brushExtent);
    }
    if (d3_svg_brushY) {
      d3_svg_brushMove1(mouse, d3_svg_brushY, 1);
      d3_svg_brushRedrawY(g, d3_svg_brushExtent);
    }

    // Notify listeners.
    d3_svg_brushDispatch("brush");
  }
}

function d3_svg_brushMove1(mouse, scale, i) {
  var range = d3_scaleExtent(scale.range()),
      offset = d3_svg_brushOffset[i],
      size = d3_svg_brushExtent[1][i] - d3_svg_brushExtent[0][i],
      min,
      max;

  // When dragging, reduce the range by the extent size and offset.
  if (d3_svg_brushDrag) {
    range[0] -= offset;
    range[1] -= size + offset;
  }

  // Clamp the mouse so that the extent fits within the range extent.
  min = Math.max(range[0], Math.min(range[1], mouse[i]));

  // Compute the new extent bounds.
  if (d3_svg_brushDrag) {
    max = (min += offset) + size;
  } else {

    // If the ALT key is pressed, then preserve the center of the extent.
    if (d3_svg_brushCenter) offset = Math.max(range[0], Math.min(range[1], 2 * d3_svg_brushCenter[i] - min));

    // Compute the min and max of the offset and mouse.
    if (offset < min) {
      max = min;
      min = offset;
    } else {
      max = offset;
    }
  }

  // Update the stored bounds.
  d3_svg_brushExtent[0][i] = min;
  d3_svg_brushExtent[1][i] = max;
}

function d3_svg_brushUp() {
  if (d3_svg_brushOffset) {
    d3_svg_brushMove();
    d3.select(d3_svg_brushTarget).selectAll(".resize").style("pointer-events", d3_svg_brush.empty() ? "none" : "all");
    d3_svg_brushDispatch("brushend");
    d3_svg_brush =
    d3_svg_brushDispatch =
    d3_svg_brushTarget =
    d3_svg_brushX =
    d3_svg_brushY =
    d3_svg_brushExtent =
    d3_svg_brushDrag =
    d3_svg_brushResize =
    d3_svg_brushCenter =
    d3_svg_brushOffset = null;
    d3_eventCancel();
  }
}

var d3_svg_brushCursor = {
  n: "ns-resize",
  e: "ew-resize",
  s: "ns-resize",
  w: "ew-resize",
  nw: "nwse-resize",
  ne: "nesw-resize",
  se: "nwse-resize",
  sw: "nesw-resize"
};
d3.behavior = {};
// TODO Track touch points by identifier.

d3.behavior.drag = function() {
  var event = d3.dispatch("drag", "dragstart", "dragend"),
      origin = null;

  function drag() {
    this
        .on("mousedown.drag", mousedown)
        .on("touchstart.drag", mousedown);

    d3.select(window)
        .on("mousemove.drag", d3_behavior_dragMove)
        .on("touchmove.drag", d3_behavior_dragMove)
        .on("mouseup.drag", d3_behavior_dragUp, true)
        .on("touchend.drag", d3_behavior_dragUp, true)
        .on("click.drag", d3_behavior_dragClick, true);
  }

  // snapshot the local context for subsequent dispatch
  function start() {
    d3_behavior_dragEvent = event;
    d3_behavior_dragEventTarget = d3.event.target;
    d3_behavior_dragTarget = this;
    d3_behavior_dragArguments = arguments;
    d3_behavior_dragOrigin = d3_behavior_dragPoint();
    if (origin) {
      d3_behavior_dragOffset = origin.apply(d3_behavior_dragTarget, d3_behavior_dragArguments);
      d3_behavior_dragOffset = [d3_behavior_dragOffset.x - d3_behavior_dragOrigin[0], d3_behavior_dragOffset.y - d3_behavior_dragOrigin[1]];
    } else {
      d3_behavior_dragOffset = [0, 0];
    }
    d3_behavior_dragMoved = 0;
  }

  function mousedown() {
    start.apply(this, arguments);
    d3_behavior_dragDispatch("dragstart");
  }

  drag.on = function(type, listener) {
    event.on(type, listener);
    return drag;
  };

  drag.origin = function(x) {
    if (!arguments.length) return origin;
    origin = x;
    return drag;
  };

  return drag;
};

var d3_behavior_dragEvent,
    d3_behavior_dragEventTarget,
    d3_behavior_dragTarget,
    d3_behavior_dragArguments,
    d3_behavior_dragOffset,
    d3_behavior_dragOrigin,
    d3_behavior_dragMoved;

function d3_behavior_dragDispatch(type) {
  var p = d3_behavior_dragPoint(),
      o = d3.event,
      e = d3.event = {type: type};

  if (p) {
    e.x = p[0] + d3_behavior_dragOffset[0];
    e.y = p[1] + d3_behavior_dragOffset[1];
    e.dx = p[0] - d3_behavior_dragOrigin[0];
    e.dy = p[1] - d3_behavior_dragOrigin[1];
    d3_behavior_dragMoved |= e.dx | e.dy;
    d3_behavior_dragOrigin = p;
  }

  try {
    d3_behavior_dragEvent[type].apply(d3_behavior_dragTarget, d3_behavior_dragArguments);
  } finally {
    d3.event = o;
  }

  o.stopPropagation();
  o.preventDefault();
}

function d3_behavior_dragPoint() {
  var p = d3_behavior_dragTarget.parentNode,
      t = d3.event.changedTouches;
  return p && (t
      ? d3.svg.touches(p, t)[0]
      : d3.svg.mouse(p));
}

function d3_behavior_dragMove() {
  if (!d3_behavior_dragTarget) return;
  var parent = d3_behavior_dragTarget.parentNode;

  // O NOES! The drag element was removed from the DOM.
  if (!parent) return d3_behavior_dragUp();

  d3_behavior_dragDispatch("drag");
  d3_eventCancel();
}

function d3_behavior_dragUp() {
  if (!d3_behavior_dragTarget) return;
  d3_behavior_dragDispatch("dragend");

  // If the node was moved, prevent the mouseup from propagating.
  // Also prevent the subsequent click from propagating (e.g., for anchors).
  if (d3_behavior_dragMoved) {
    d3_eventCancel();
    d3_behavior_dragMoved = d3.event.target === d3_behavior_dragEventTarget;
  }

  d3_behavior_dragEvent =
  d3_behavior_dragEventTarget =
  d3_behavior_dragTarget =
  d3_behavior_dragArguments =
  d3_behavior_dragOffset =
  d3_behavior_dragOrigin = null;
}

function d3_behavior_dragClick() {
  if (d3_behavior_dragMoved) {
    d3_eventCancel();
    d3_behavior_dragMoved = 0;
  }
}
// TODO unbind zoom behavior?
d3.behavior.zoom = function() {
  var xyz = [0, 0, 0],
      event = d3.dispatch("zoom"),
      extent = d3_behavior_zoomInfiniteExtent;

  function zoom() {
    this
        .on("mousedown.zoom", mousedown)
        .on("mousewheel.zoom", mousewheel)
        .on("DOMMouseScroll.zoom", mousewheel)
        .on("dblclick.zoom", dblclick)
        .on("touchstart.zoom", touchstart);

    d3.select(window)
        .on("mousemove.zoom", d3_behavior_zoomMousemove)
        .on("mouseup.zoom", d3_behavior_zoomMouseup)
        .on("touchmove.zoom", d3_behavior_zoomTouchmove)
        .on("touchend.zoom", d3_behavior_zoomTouchup)
        .on("click.zoom", d3_behavior_zoomClick, true);
  }

  // snapshot the local context for subsequent dispatch
  function start() {
    d3_behavior_zoomXyz = xyz;
    d3_behavior_zoomExtent = extent;
    d3_behavior_zoomDispatch = event.zoom;
    d3_behavior_zoomEventTarget = d3.event.target;
    d3_behavior_zoomTarget = this;
    d3_behavior_zoomArguments = arguments;
  }

  function mousedown() {
    start.apply(this, arguments);
    d3_behavior_zoomPanning = d3_behavior_zoomLocation(d3.svg.mouse(d3_behavior_zoomTarget));
    d3_behavior_zoomMoved = 0;
    d3.event.preventDefault();
    window.focus();
  }

  // store starting mouse location
  function mousewheel() {
    start.apply(this, arguments);
    if (!d3_behavior_zoomZooming) d3_behavior_zoomZooming = d3_behavior_zoomLocation(d3.svg.mouse(d3_behavior_zoomTarget));
    d3_behavior_zoomTo(d3_behavior_zoomDelta() + xyz[2], d3.svg.mouse(d3_behavior_zoomTarget), d3_behavior_zoomZooming);
  }

  function dblclick() {
    start.apply(this, arguments);
    var mouse = d3.svg.mouse(d3_behavior_zoomTarget);
    d3_behavior_zoomTo(d3.event.shiftKey ? Math.ceil(xyz[2] - 1) : Math.floor(xyz[2] + 1), mouse, d3_behavior_zoomLocation(mouse));
  }

  // doubletap detection
  function touchstart() {
    start.apply(this, arguments);
    var touches = d3_behavior_zoomTouchup(),
        touch,
        now = Date.now();
    if ((touches.length === 1) && (now - d3_behavior_zoomLast < 300)) {
      d3_behavior_zoomTo(1 + Math.floor(xyz[2]), touch = touches[0], d3_behavior_zoomLocations[touch.identifier]);
    }
    d3_behavior_zoomLast = now;
  }

  zoom.extent = function(x) {
    if (!arguments.length) return extent;
    extent = x == null ? d3_behavior_zoomInfiniteExtent : x;
    return zoom;
  };

  zoom.on = function(type, listener) {
    event.on(type, listener);
    return zoom;
  };

  return zoom;
};

var d3_behavior_zoomDiv,
    d3_behavior_zoomPanning,
    d3_behavior_zoomZooming,
    d3_behavior_zoomLocations = {}, // identifier -> location
    d3_behavior_zoomLast = 0,
    d3_behavior_zoomXyz,
    d3_behavior_zoomExtent,
    d3_behavior_zoomDispatch,
    d3_behavior_zoomEventTarget,
    d3_behavior_zoomTarget,
    d3_behavior_zoomArguments,
    d3_behavior_zoomMoved;

function d3_behavior_zoomLocation(point) {
  return [
    point[0] - d3_behavior_zoomXyz[0],
    point[1] - d3_behavior_zoomXyz[1],
    d3_behavior_zoomXyz[2]
  ];
}

// detect the pixels that would be scrolled by this wheel event
function d3_behavior_zoomDelta() {

  // mousewheel events are totally broken!
  // https://bugs.webkit.org/show_bug.cgi?id=40441
  // not only that, but Chrome and Safari differ in re. to acceleration!
  if (!d3_behavior_zoomDiv) {
    d3_behavior_zoomDiv = d3.select("body").append("div")
        .style("visibility", "hidden")
        .style("top", 0)
        .style("height", 0)
        .style("width", 0)
        .style("overflow-y", "scroll")
      .append("div")
        .style("height", "2000px")
      .node().parentNode;
  }

  var e = d3.event, delta;
  try {
    d3_behavior_zoomDiv.scrollTop = 1000;
    d3_behavior_zoomDiv.dispatchEvent(e);
    delta = 1000 - d3_behavior_zoomDiv.scrollTop;
  } catch (error) {
    delta = e.wheelDelta || (-e.detail * 5);
  }

  return delta * .005;
}

// Note: Since we don't rotate, it's possible for the touches to become
// slightly detached from their original positions. Thus, we recompute the
// touch points on touchend as well as touchstart!
function d3_behavior_zoomTouchup() {
  var touches = d3.svg.touches(d3_behavior_zoomTarget),
      i = -1,
      n = touches.length,
      touch;
  while (++i < n) d3_behavior_zoomLocations[(touch = touches[i]).identifier] = d3_behavior_zoomLocation(touch);
  return touches;
}

function d3_behavior_zoomTouchmove() {
  var touches = d3.svg.touches(d3_behavior_zoomTarget);
  switch (touches.length) {

    // single-touch pan
    case 1: {
      var touch = touches[0];
      d3_behavior_zoomTo(d3_behavior_zoomXyz[2], touch, d3_behavior_zoomLocations[touch.identifier]);
      break;
    }

    // double-touch pan + zoom
    case 2: {
      var p0 = touches[0],
          p1 = touches[1],
          p2 = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2],
          l0 = d3_behavior_zoomLocations[p0.identifier],
          l1 = d3_behavior_zoomLocations[p1.identifier],
          l2 = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2, l0[2]];
      d3_behavior_zoomTo(Math.log(d3.event.scale) / Math.LN2 + l0[2], p2, l2);
      break;
    }
  }
}

function d3_behavior_zoomMousemove() {
  d3_behavior_zoomZooming = null;
  if (d3_behavior_zoomPanning) {
    d3_behavior_zoomMoved = 1;
    d3_behavior_zoomTo(d3_behavior_zoomXyz[2], d3.svg.mouse(d3_behavior_zoomTarget), d3_behavior_zoomPanning);
  }
}

function d3_behavior_zoomMouseup() {
  if (d3_behavior_zoomPanning) {
    if (d3_behavior_zoomMoved) {
      d3_eventCancel();
      d3_behavior_zoomMoved = d3_behavior_zoomEventTarget === d3.event.target;
    }

    d3_behavior_zoomXyz =
    d3_behavior_zoomExtent =
    d3_behavior_zoomDispatch =
    d3_behavior_zoomEventTarget =
    d3_behavior_zoomTarget =
    d3_behavior_zoomArguments =
    d3_behavior_zoomPanning = null;
  }
}

function d3_behavior_zoomClick() {
  if (d3_behavior_zoomMoved) {
    d3_eventCancel();
    d3_behavior_zoomMoved = 0;
  }
}

function d3_behavior_zoomTo(z, x0, x1) {
  z = d3_behavior_zoomExtentClamp(z, 2);
  var j = Math.pow(2, d3_behavior_zoomXyz[2]),
      k = Math.pow(2, z),
      K = Math.pow(2, (d3_behavior_zoomXyz[2] = z) - x1[2]),
      x_ = d3_behavior_zoomXyz[0],
      y_ = d3_behavior_zoomXyz[1],
      x = d3_behavior_zoomXyz[0] = d3_behavior_zoomExtentClamp((x0[0] - x1[0] * K), 0, k),
      y = d3_behavior_zoomXyz[1] = d3_behavior_zoomExtentClamp((x0[1] - x1[1] * K), 1, k),
      o = d3.event; // Events can be reentrant (e.g., focus).

  d3.event = {
    scale: k,
    translate: [x, y],
    transform: function(sx, sy) {
      if (sx) transform(sx, x_, x);
      if (sy) transform(sy, y_, y);
    }
  };

  function transform(scale, a, b) {
    scale.domain(scale.range().map(function(v) { return scale.invert(((v - b) * j) / k + a); }));
  }

  try {
    d3_behavior_zoomDispatch.apply(d3_behavior_zoomTarget, d3_behavior_zoomArguments);
  } finally {
    d3.event = o;
  }

  o.preventDefault();
}

var d3_behavior_zoomInfiniteExtent = [
  [-Infinity, Infinity],
  [-Infinity, Infinity],
  [-Infinity, Infinity]
];

function d3_behavior_zoomExtentClamp(x, i, k) {
  var range = d3_behavior_zoomExtent[i],
      r0 = range[0],
      r1 = range[1];
  return arguments.length === 3
      ? Math.max(r1 * (r1 === Infinity ? -Infinity : 1 / k - 1),
        Math.min(r0 === -Infinity ? Infinity : r0, x / k)) * k
      : Math.max(r0, Math.min(r1, x));
}
})();
(function(){d3.geom = {};
/**
 * Computes a contour for a given input grid function using the <a
 * href="http://en.wikipedia.org/wiki/Marching_squares">marching
 * squares</a> algorithm. Returns the contour polygon as an array of points.
 *
 * @param grid a two-input function(x, y) that returns true for values
 * inside the contour and false for values outside the contour.
 * @param start an optional starting point [x, y] on the grid.
 * @returns polygon [[x1, y1], [x2, y2], …]
 */
d3.geom.contour = function(grid, start) {
  var s = start || d3_geom_contourStart(grid), // starting point
      c = [],    // contour polygon
      x = s[0],  // current x position
      y = s[1],  // current y position
      dx = 0,    // next x direction
      dy = 0,    // next y direction
      pdx = NaN, // previous x direction
      pdy = NaN, // previous y direction
      i = 0;

  do {
    // determine marching squares index
    i = 0;
    if (grid(x-1, y-1)) i += 1;
    if (grid(x,   y-1)) i += 2;
    if (grid(x-1, y  )) i += 4;
    if (grid(x,   y  )) i += 8;

    // determine next direction
    if (i === 6) {
      dx = pdy === -1 ? -1 : 1;
      dy = 0;
    } else if (i === 9) {
      dx = 0;
      dy = pdx === 1 ? -1 : 1;
    } else {
      dx = d3_geom_contourDx[i];
      dy = d3_geom_contourDy[i];
    }

    // update contour polygon
    if (dx != pdx && dy != pdy) {
      c.push([x, y]);
      pdx = dx;
      pdy = dy;
    }

    x += dx;
    y += dy;
  } while (s[0] != x || s[1] != y);

  return c;
};

// lookup tables for marching directions
var d3_geom_contourDx = [1, 0, 1, 1,-1, 0,-1, 1,0, 0,0,0,-1, 0,-1,NaN],
    d3_geom_contourDy = [0,-1, 0, 0, 0,-1, 0, 0,1,-1,1,1, 0,-1, 0,NaN];

function d3_geom_contourStart(grid) {
  var x = 0,
      y = 0;

  // search for a starting point; begin at origin
  // and proceed along outward-expanding diagonals
  while (true) {
    if (grid(x,y)) {
      return [x,y];
    }
    if (x === 0) {
      x = y + 1;
      y = 0;
    } else {
      x = x - 1;
      y = y + 1;
    }
  }
}
/**
 * Computes the 2D convex hull of a set of points using Graham's scanning
 * algorithm. The algorithm has been implemented as described in Cormen,
 * Leiserson, and Rivest's Introduction to Algorithms. The running time of
 * this algorithm is O(n log n), where n is the number of input points.
 *
 * @param vertices [[x1, y1], [x2, y2], …]
 * @returns polygon [[x1, y1], [x2, y2], …]
 */
d3.geom.hull = function(vertices) {
  if (vertices.length < 3) return [];

  var len = vertices.length,
      plen = len - 1,
      points = [],
      stack = [],
      i, j, h = 0, x1, y1, x2, y2, u, v, a, sp;

  // find the starting ref point: leftmost point with the minimum y coord
  for (i=1; i<len; ++i) {
    if (vertices[i][1] < vertices[h][1]) {
      h = i;
    } else if (vertices[i][1] == vertices[h][1]) {
      h = (vertices[i][0] < vertices[h][0] ? i : h);
    }
  }

  // calculate polar angles from ref point and sort
  for (i=0; i<len; ++i) {
    if (i === h) continue;
    y1 = vertices[i][1] - vertices[h][1];
    x1 = vertices[i][0] - vertices[h][0];
    points.push({angle: Math.atan2(y1, x1), index: i});
  }
  points.sort(function(a, b) { return a.angle - b.angle; });

  // toss out duplicate angles
  a = points[0].angle;
  v = points[0].index;
  u = 0;
  for (i=1; i<plen; ++i) {
    j = points[i].index;
    if (a == points[i].angle) {
      // keep angle for point most distant from the reference
      x1 = vertices[v][0] - vertices[h][0];
      y1 = vertices[v][1] - vertices[h][1];
      x2 = vertices[j][0] - vertices[h][0];
      y2 = vertices[j][1] - vertices[h][1];
      if ((x1*x1 + y1*y1) >= (x2*x2 + y2*y2)) {
        points[i].index = -1;
      } else {
        points[u].index = -1;
        a = points[i].angle;
        u = i;
        v = j;
      }
    } else {
      a = points[i].angle;
      u = i;
      v = j;
    }
  }

  // initialize the stack
  stack.push(h);
  for (i=0, j=0; i<2; ++j) {
    if (points[j].index !== -1) {
      stack.push(points[j].index);
      i++;
    }
  }
  sp = stack.length;

  // do graham's scan
  for (; j<plen; ++j) {
    if (points[j].index === -1) continue; // skip tossed out points
    while (!d3_geom_hullCCW(stack[sp-2], stack[sp-1], points[j].index, vertices)) {
      --sp;
    }
    stack[sp++] = points[j].index;
  }

  // construct the hull
  var poly = [];
  for (i=0; i<sp; ++i) {
    poly.push(vertices[stack[i]]);
  }
  return poly;
}

// are three points in counter-clockwise order?
function d3_geom_hullCCW(i1, i2, i3, v) {
  var t, a, b, c, d, e, f;
  t = v[i1]; a = t[0]; b = t[1];
  t = v[i2]; c = t[0]; d = t[1];
  t = v[i3]; e = t[0]; f = t[1];
  return ((f-b)*(c-a) - (d-b)*(e-a)) > 0;
}
// Note: requires coordinates to be counterclockwise and convex!
d3.geom.polygon = function(coordinates) {

  coordinates.area = function() {
    var i = 0,
        n = coordinates.length,
        a = coordinates[n - 1][0] * coordinates[0][1],
        b = coordinates[n - 1][1] * coordinates[0][0];
    while (++i < n) {
      a += coordinates[i - 1][0] * coordinates[i][1];
      b += coordinates[i - 1][1] * coordinates[i][0];
    }
    return (b - a) * .5;
  };

  coordinates.centroid = function(k) {
    var i = -1,
        n = coordinates.length - 1,
        x = 0,
        y = 0,
        a,
        b,
        c;
    if (!arguments.length) k = -1 / (6 * coordinates.area());
    while (++i < n) {
      a = coordinates[i];
      b = coordinates[i + 1];
      c = a[0] * b[1] - b[0] * a[1];
      x += (a[0] + b[0]) * c;
      y += (a[1] + b[1]) * c;
    }
    return [x * k, y * k];
  };

  // The Sutherland-Hodgman clipping algorithm.
  coordinates.clip = function(subject) {
    var input,
        i = -1,
        n = coordinates.length,
        j,
        m,
        a = coordinates[n - 1],
        b,
        c,
        d;
    while (++i < n) {
      input = subject.slice();
      subject.length = 0;
      b = coordinates[i];
      c = input[(m = input.length) - 1];
      j = -1;
      while (++j < m) {
        d = input[j];
        if (d3_geom_polygonInside(d, a, b)) {
          if (!d3_geom_polygonInside(c, a, b)) {
            subject.push(d3_geom_polygonIntersect(c, d, a, b));
          }
          subject.push(d);
        } else if (d3_geom_polygonInside(c, a, b)) {
          subject.push(d3_geom_polygonIntersect(c, d, a, b));
        }
        c = d;
      }
      a = b;
    }
    return subject;
  };

  return coordinates;
};

function d3_geom_polygonInside(p, a, b) {
  return (b[0] - a[0]) * (p[1] - a[1]) < (b[1] - a[1]) * (p[0] - a[0]);
}

// Intersect two infinite lines cd and ab.
function d3_geom_polygonIntersect(c, d, a, b) {
  var x1 = c[0], x2 = d[0], x3 = a[0], x4 = b[0],
      y1 = c[1], y2 = d[1], y3 = a[1], y4 = b[1],
      x13 = x1 - x3,
      x21 = x2 - x1,
      x43 = x4 - x3,
      y13 = y1 - y3,
      y21 = y2 - y1,
      y43 = y4 - y3,
      ua = (x43 * y13 - y43 * x13) / (y43 * x21 - x43 * y21);
  return [x1 + ua * x21, y1 + ua * y21];
}
// Adapted from Nicolas Garcia Belmonte's JIT implementation:
// http://blog.thejit.org/2010/02/12/voronoi-tessellation/
// http://blog.thejit.org/assets/voronoijs/voronoi.js
// See lib/jit/LICENSE for details.

// Notes:
//
// This implementation does not clip the returned polygons, so if you want to
// clip them to a particular shape you will need to do that either in SVG or by
// post-processing with d3.geom.polygon's clip method.
//
// If any vertices are coincident or have NaN positions, the behavior of this
// method is undefined. Most likely invalid polygons will be returned. You
// should filter invalid points, and consolidate coincident points, before
// computing the tessellation.

/**
 * @param vertices [[x1, y1], [x2, y2], …]
 * @returns polygons [[[x1, y1], [x2, y2], …], …]
 */
d3.geom.voronoi = function(vertices) {
  var polygons = vertices.map(function() { return []; });

  d3_voronoi_tessellate(vertices, function(e) {
    var s1,
        s2,
        x1,
        x2,
        y1,
        y2;
    if (e.a === 1 && e.b >= 0) {
      s1 = e.ep.r;
      s2 = e.ep.l;
    } else {
      s1 = e.ep.l;
      s2 = e.ep.r;
    }
    if (e.a === 1) {
      y1 = s1 ? s1.y : -1e6;
      x1 = e.c - e.b * y1;
      y2 = s2 ? s2.y : 1e6;
      x2 = e.c - e.b * y2;
    } else {
      x1 = s1 ? s1.x : -1e6;
      y1 = e.c - e.a * x1;
      x2 = s2 ? s2.x : 1e6;
      y2 = e.c - e.a * x2;
    }
    var v1 = [x1, y1],
        v2 = [x2, y2];
    polygons[e.region.l.index].push(v1, v2);
    polygons[e.region.r.index].push(v1, v2);
  });

  // Reconnect the polygon segments into counterclockwise loops.
  return polygons.map(function(polygon, i) {
    var cx = vertices[i][0],
        cy = vertices[i][1];
    polygon.forEach(function(v) {
      v.angle = Math.atan2(v[0] - cx, v[1] - cy);
    });
    return polygon.sort(function(a, b) {
      return a.angle - b.angle;
    }).filter(function(d, i) {
      return !i || (d.angle - polygon[i - 1].angle > 1e-10);
    });
  });
};

var d3_voronoi_opposite = {"l": "r", "r": "l"};

function d3_voronoi_tessellate(vertices, callback) {

  var Sites = {
    list: vertices
      .map(function(v, i) {
        return {
          index: i,
          x: v[0],
          y: v[1]
        };
      })
      .sort(function(a, b) {
        return a.y < b.y ? -1
          : a.y > b.y ? 1
          : a.x < b.x ? -1
          : a.x > b.x ? 1
          : 0;
      }),
    bottomSite: null
  };

  var EdgeList = {
    list: [],
    leftEnd: null,
    rightEnd: null,

    init: function() {
      EdgeList.leftEnd = EdgeList.createHalfEdge(null, "l");
      EdgeList.rightEnd = EdgeList.createHalfEdge(null, "l");
      EdgeList.leftEnd.r = EdgeList.rightEnd;
      EdgeList.rightEnd.l = EdgeList.leftEnd;
      EdgeList.list.unshift(EdgeList.leftEnd, EdgeList.rightEnd);
    },

    createHalfEdge: function(edge, side) {
      return {
        edge: edge,
        side: side,
        vertex: null,
        "l": null,
        "r": null
      };
    },

    insert: function(lb, he) {
      he.l = lb;
      he.r = lb.r;
      lb.r.l = he;
      lb.r = he;
    },

    leftBound: function(p) {
      var he = EdgeList.leftEnd;
      do {
        he = he.r;
      } while (he != EdgeList.rightEnd && Geom.rightOf(he, p));
      he = he.l;
      return he;
    },

    del: function(he) {
      he.l.r = he.r;
      he.r.l = he.l;
      he.edge = null;
    },

    right: function(he) {
      return he.r;
    },

    left: function(he) {
      return he.l;
    },

    leftRegion: function(he) {
      return he.edge == null
          ? Sites.bottomSite
          : he.edge.region[he.side];
    },

    rightRegion: function(he) {
      return he.edge == null
          ? Sites.bottomSite
          : he.edge.region[d3_voronoi_opposite[he.side]];
    }
  };

  var Geom = {

    bisect: function(s1, s2) {
      var newEdge = {
        region: {"l": s1, "r": s2},
        ep: {"l": null, "r": null}
      };

      var dx = s2.x - s1.x,
          dy = s2.y - s1.y,
          adx = dx > 0 ? dx : -dx,
          ady = dy > 0 ? dy : -dy;

      newEdge.c = s1.x * dx + s1.y * dy
          + (dx * dx + dy * dy) * .5;

      if (adx > ady) {
        newEdge.a = 1;
        newEdge.b = dy / dx;
        newEdge.c /= dx;
      } else {
        newEdge.b = 1;
        newEdge.a = dx / dy;
        newEdge.c /= dy;
      }

      return newEdge;
    },

    intersect: function(el1, el2) {
      var e1 = el1.edge,
          e2 = el2.edge;
      if (!e1 || !e2 || (e1.region.r == e2.region.r)) {
        return null;
      }
      var d = (e1.a * e2.b) - (e1.b * e2.a);
      if (Math.abs(d) < 1e-10) {
        return null;
      }
      var xint = (e1.c * e2.b - e2.c * e1.b) / d,
          yint = (e2.c * e1.a - e1.c * e2.a) / d,
          e1r = e1.region.r,
          e2r = e2.region.r,
          el,
          e;
      if ((e1r.y < e2r.y) ||
         (e1r.y == e2r.y && e1r.x < e2r.x)) {
        el = el1;
        e = e1;
      } else {
        el = el2;
        e = e2;
      }
      var rightOfSite = (xint >= e.region.r.x);
      if ((rightOfSite && (el.side === "l")) ||
        (!rightOfSite && (el.side === "r"))) {
        return null;
      }
      return {
        x: xint,
        y: yint
      };
    },

    rightOf: function(he, p) {
      var e = he.edge,
          topsite = e.region.r,
          rightOfSite = (p.x > topsite.x);

      if (rightOfSite && (he.side === "l")) {
        return 1;
      }
      if (!rightOfSite && (he.side === "r")) {
        return 0;
      }
      if (e.a === 1) {
        var dyp = p.y - topsite.y,
            dxp = p.x - topsite.x,
            fast = 0,
            above = 0;

        if ((!rightOfSite && (e.b < 0)) ||
          (rightOfSite && (e.b >= 0))) {
          above = fast = (dyp >= e.b * dxp);
        } else {
          above = ((p.x + p.y * e.b) > e.c);
          if (e.b < 0) {
            above = !above;
          }
          if (!above) {
            fast = 1;
          }
        }
        if (!fast) {
          var dxs = topsite.x - e.region.l.x;
          above = (e.b * (dxp * dxp - dyp * dyp)) <
            (dxs * dyp * (1 + 2 * dxp / dxs + e.b * e.b));

          if (e.b < 0) {
            above = !above;
          }
        }
      } else /* e.b == 1 */ {
        var yl = e.c - e.a * p.x,
            t1 = p.y - yl,
            t2 = p.x - topsite.x,
            t3 = yl - topsite.y;

        above = (t1 * t1) > (t2 * t2 + t3 * t3);
      }
      return he.side === "l" ? above : !above;
    },

    endPoint: function(edge, side, site) {
      edge.ep[side] = site;
      if (!edge.ep[d3_voronoi_opposite[side]]) return;
      callback(edge);
    },

    distance: function(s, t) {
      var dx = s.x - t.x,
          dy = s.y - t.y;
      return Math.sqrt(dx * dx + dy * dy);
    }
  };

  var EventQueue = {
    list: [],

    insert: function(he, site, offset) {
      he.vertex = site;
      he.ystar = site.y + offset;
      for (var i=0, list=EventQueue.list, l=list.length; i<l; i++) {
        var next = list[i];
        if (he.ystar > next.ystar ||
          (he.ystar == next.ystar &&
          site.x > next.vertex.x)) {
          continue;
        } else {
          break;
        }
      }
      list.splice(i, 0, he);
    },

    del: function(he) {
      for (var i=0, ls=EventQueue.list, l=ls.length; i<l && (ls[i] != he); ++i) {}
      ls.splice(i, 1);
    },

    empty: function() { return EventQueue.list.length === 0; },

    nextEvent: function(he) {
      for (var i=0, ls=EventQueue.list, l=ls.length; i<l; ++i) {
        if (ls[i] == he) return ls[i+1];
      }
      return null;
    },

    min: function() {
      var elem = EventQueue.list[0];
      return {
        x: elem.vertex.x,
        y: elem.ystar
      };
    },

    extractMin: function() {
      return EventQueue.list.shift();
    }
  };

  EdgeList.init();
  Sites.bottomSite = Sites.list.shift();

  var newSite = Sites.list.shift(), newIntStar;
  var lbnd, rbnd, llbnd, rrbnd, bisector;
  var bot, top, temp, p, v;
  var e, pm;

  while (true) {
    if (!EventQueue.empty()) {
      newIntStar = EventQueue.min();
    }
    if (newSite && (EventQueue.empty()
      || newSite.y < newIntStar.y
      || (newSite.y == newIntStar.y
      && newSite.x < newIntStar.x))) { //new site is smallest
      lbnd = EdgeList.leftBound(newSite);
      rbnd = EdgeList.right(lbnd);
      bot = EdgeList.rightRegion(lbnd);
      e = Geom.bisect(bot, newSite);
      bisector = EdgeList.createHalfEdge(e, "l");
      EdgeList.insert(lbnd, bisector);
      p = Geom.intersect(lbnd, bisector);
      if (p) {
        EventQueue.del(lbnd);
        EventQueue.insert(lbnd, p, Geom.distance(p, newSite));
      }
      lbnd = bisector;
      bisector = EdgeList.createHalfEdge(e, "r");
      EdgeList.insert(lbnd, bisector);
      p = Geom.intersect(bisector, rbnd);
      if (p) {
        EventQueue.insert(bisector, p, Geom.distance(p, newSite));
      }
      newSite = Sites.list.shift();
    } else if (!EventQueue.empty()) { //intersection is smallest
      lbnd = EventQueue.extractMin();
      llbnd = EdgeList.left(lbnd);
      rbnd = EdgeList.right(lbnd);
      rrbnd = EdgeList.right(rbnd);
      bot = EdgeList.leftRegion(lbnd);
      top = EdgeList.rightRegion(rbnd);
      v = lbnd.vertex;
      Geom.endPoint(lbnd.edge, lbnd.side, v);
      Geom.endPoint(rbnd.edge, rbnd.side, v);
      EdgeList.del(lbnd);
      EventQueue.del(rbnd);
      EdgeList.del(rbnd);
      pm = "l";
      if (bot.y > top.y) {
        temp = bot;
        bot = top;
        top = temp;
        pm = "r";
      }
      e = Geom.bisect(bot, top);
      bisector = EdgeList.createHalfEdge(e, pm);
      EdgeList.insert(llbnd, bisector);
      Geom.endPoint(e, d3_voronoi_opposite[pm], v);
      p = Geom.intersect(llbnd, bisector);
      if (p) {
        EventQueue.del(llbnd);
        EventQueue.insert(llbnd, p, Geom.distance(p, bot));
      }
      p = Geom.intersect(bisector, rrbnd);
      if (p) {
        EventQueue.insert(bisector, p, Geom.distance(p, bot));
      }
    } else {
      break;
    }
  }//end while

  for (lbnd = EdgeList.right(EdgeList.leftEnd);
      lbnd != EdgeList.rightEnd;
      lbnd = EdgeList.right(lbnd)) {
    callback(lbnd.edge);
  }
}
/**
* @param vertices [[x1, y1], [x2, y2], …]
* @returns triangles [[[x1, y1], [x2, y2], [x3, y3]], …]
 */
d3.geom.delaunay = function(vertices) {
  var edges = vertices.map(function() { return []; }),
      triangles = [];

  // Use the Voronoi tessellation to determine Delaunay edges.
  d3_voronoi_tessellate(vertices, function(e) {
    edges[e.region.l.index].push(vertices[e.region.r.index]);
  });

  // Reconnect the edges into counterclockwise triangles.
  edges.forEach(function(edge, i) {
    var v = vertices[i],
        cx = v[0],
        cy = v[1];
    edge.forEach(function(v) {
      v.angle = Math.atan2(v[0] - cx, v[1] - cy);
    });
    edge.sort(function(a, b) {
      return a.angle - b.angle;
    });
    for (var j = 0, m = edge.length - 1; j < m; j++) {
      triangles.push([v, edge[j], edge[j + 1]]);
    }
  });

  return triangles;
};
// Constructs a new quadtree for the specified array of points. A quadtree is a
// two-dimensional recursive spatial subdivision. This implementation uses
// square partitions, dividing each square into four equally-sized squares. Each
// point exists in a unique node; if multiple points are in the same position,
// some points may be stored on internal nodes rather than leaf nodes. Quadtrees
// can be used to accelerate various spatial operations, such as the Barnes-Hut
// approximation for computing n-body forces, or collision detection.
d3.geom.quadtree = function(points, x1, y1, x2, y2) {
  var p,
      i = -1,
      n = points.length;

  // Type conversion for deprecated API.
  if (n && isNaN(points[0].x)) points = points.map(d3_geom_quadtreePoint);

  // Allow bounds to be specified explicitly.
  if (arguments.length < 5) {
    if (arguments.length === 3) {
      y2 = x2 = y1;
      y1 = x1;
    } else {
      x1 = y1 = Infinity;
      x2 = y2 = -Infinity;

      // Compute bounds.
      while (++i < n) {
        p = points[i];
        if (p.x < x1) x1 = p.x;
        if (p.y < y1) y1 = p.y;
        if (p.x > x2) x2 = p.x;
        if (p.y > y2) y2 = p.y;
      }

      // Squarify the bounds.
      var dx = x2 - x1,
          dy = y2 - y1;
      if (dx > dy) y2 = y1 + dx;
      else x2 = x1 + dy;
    }
  }

  // Recursively inserts the specified point p at the node n or one of its
  // descendants. The bounds are defined by [x1, x2] and [y1, y2].
  function insert(n, p, x1, y1, x2, y2) {
    if (isNaN(p.x) || isNaN(p.y)) return; // ignore invalid points
    if (n.leaf) {
      var v = n.point;
      if (v) {
        // If the point at this leaf node is at the same position as the new
        // point we are adding, we leave the point associated with the
        // internal node while adding the new point to a child node. This
        // avoids infinite recursion.
        if ((Math.abs(v.x - p.x) + Math.abs(v.y - p.y)) < .01) {
          insertChild(n, p, x1, y1, x2, y2);
        } else {
          n.point = null;
          insertChild(n, v, x1, y1, x2, y2);
          insertChild(n, p, x1, y1, x2, y2);
        }
      } else {
        n.point = p;
      }
    } else {
      insertChild(n, p, x1, y1, x2, y2);
    }
  }

  // Recursively inserts the specified point p into a descendant of node n. The
  // bounds are defined by [x1, x2] and [y1, y2].
  function insertChild(n, p, x1, y1, x2, y2) {
    // Compute the split point, and the quadrant in which to insert p.
    var sx = (x1 + x2) * .5,
        sy = (y1 + y2) * .5,
        right = p.x >= sx,
        bottom = p.y >= sy,
        i = (bottom << 1) + right;

    // Recursively insert into the child node.
    n.leaf = false;
    n = n.nodes[i] || (n.nodes[i] = d3_geom_quadtreeNode());

    // Update the bounds as we recurse.
    if (right) x1 = sx; else x2 = sx;
    if (bottom) y1 = sy; else y2 = sy;
    insert(n, p, x1, y1, x2, y2);
  }

  // Create the root node.
  var root = d3_geom_quadtreeNode();

  root.add = function(p) {
    insert(root, p, x1, y1, x2, y2);
  };

  root.visit = function(f) {
    d3_geom_quadtreeVisit(f, root, x1, y1, x2, y2);
  };

  // Insert all points.
  points.forEach(root.add);
  return root;
};

function d3_geom_quadtreeNode() {
  return {
    leaf: true,
    nodes: [],
    point: null
  };
}

function d3_geom_quadtreeVisit(f, node, x1, y1, x2, y2) {
  if (!f(node, x1, y1, x2, y2)) {
    var sx = (x1 + x2) * .5,
        sy = (y1 + y2) * .5,
        children = node.nodes;
    if (children[0]) d3_geom_quadtreeVisit(f, children[0], x1, y1, sx, sy);
    if (children[1]) d3_geom_quadtreeVisit(f, children[1], sx, y1, x2, sy);
    if (children[2]) d3_geom_quadtreeVisit(f, children[2], x1, sy, sx, y2);
    if (children[3]) d3_geom_quadtreeVisit(f, children[3], sx, sy, x2, y2);
  }
}

function d3_geom_quadtreePoint(p) {
  return {
    x: p[0],
    y: p[1]
  };
}
})();
var CodeFlower = function(selector, w, h) {
  this.w = w;
  this.h = h;

  d3.select(selector).selectAll("svg").remove();

  this.svg = d3.select(selector).append("svg:svg")
    .attr('width', w)
    .attr('height', h);

  this.svg.append("svg:rect")
    .style("stroke", "#999")
    .style("fill", "#fff")
    .attr('width', w)
    .attr('height', h);

  this.force = d3.layout.force()
    .on("tick", this.tick.bind(this))
    .charge(function(d) { return d._children ? -d.size / 100 : -40; })
    .linkDistance(function(d) { return d.target._children ? 80 : 25; })
    .size([h, w]);
};

CodeFlower.prototype.update = function(json) {
  if (json) this.json = json;

  this.json.fixed = true;
  this.json.x = this.w / 2;
  this.json.y = this.h / 2;

  var nodes = this.flatten(this.json);
  var links = d3.layout.tree().links(nodes);
  var total = nodes.length || 1;

  // remove existing text (will readd it afterwards to be sure it's on top)
  this.svg.selectAll("text").remove();

  // Restart the force layout
  this.force
    .gravity(Math.atan(total / 50) / Math.PI * 0.4)
    .nodes(nodes)
    .links(links)
    .start();

  // Update the links
  this.link = this.svg.selectAll("line.link")
    .data(links, function(d) { return d.target.name; });

  // Enter any new links
  this.link.enter().insert("svg:line", ".node")
    .attr("class", "link")
    .attr("x1", function(d) { return d.source.x; })
    .attr("y1", function(d) { return d.source.y; })
    .attr("x2", function(d) { return d.target.x; })
    .attr("y2", function(d) { return d.target.y; });

  // Exit any old links.
  this.link.exit().remove();

  // Update the nodes
  this.node = this.svg.selectAll("circle.node")
    .data(nodes, function(d) { return d.name; })
    .classed("collapsed", function(d) { return d._children ? 1 : 0; });

  this.node.transition()
    .attr("r", function(d) { return Math.pow(d.size, 2/5) || 1; });

  // Enter any new nodes
  this.node.enter().append('svg:circle')
    .attr("class", "node")
    .classed('directory', function(d) { return (d._children || d.children) ? 1 : 0; })
    .attr("r", function(d) { return Math.pow(d.size, 2/5) || 1; })
    .style("fill", function color(d) {
      return "hsl(" + parseInt(360 / total * d.id, 10) + ",90%,70%)";
    })
    .call(this.force.drag)
    .on("click", this.click.bind(this))
    .on("mouseover", this.mouseover.bind(this))
    .on("mouseout", this.mouseout.bind(this));

  // Exit any old nodes
  this.node.exit().remove();

  this.text = this.svg.append('svg:text')
    .attr('class', 'nodetext')
    .attr('dy', 0)
    .attr('dx', 0)
    .attr('text-anchor', 'middle');

  return this;
};

CodeFlower.prototype.flatten = function(root) {
  var nodes = [], i = 0;

  function recurse(node) {
    if (node.children) {
      node.size = node.children.reduce(function(p, v) {
        return p + recurse(v);
      }, 0);
    }
    if (!node.id) node.id = ++i;
    nodes.push(node);
    return node.size;
  }

  root.size = recurse(root);
  return nodes;
};

CodeFlower.prototype.click = function(d) {
  // Toggle children on click.
  if (d.children) {
    d._children = d.children;
    d.children = null;
  } else {
    d.children = d._children;
    d._children = null;
  }
  this.update();
};

CodeFlower.prototype.mouseover = function(d) {
  this.text.attr('transform', 'translate(' + d.x + ',' + (d.y - 5 - (Math.sqrt(d.size) / 2)) + ')')
    .text(d.name)
    .style('display', null);
};

CodeFlower.prototype.mouseout = function(d) {
  this.text.style('display', 'none');
};

CodeFlower.prototype.tick = function() {
  var h = this.h;
  var w = this.w;
  this.link.attr("x1", function(d) { return d.source.x; })
    .attr("y1", function(d) { return d.source.y; })
    .attr("x2", function(d) { return d.target.x; })
    .attr("y2", function(d) { return d.target.y; });

  this.node.attr("transform", function(d) {
    return "translate(" + Math.max(5, Math.min(w - 5, d.x)) + "," + Math.max(5, Math.min(h - 5, d.y)) + ")";
  });
};

CodeFlower.prototype.cleanup = function() {
  this.update([]);
  this.force.stop();
};
/*!
 * Bootstrap v2.3.1
 *
 * Copyright 2012 Twitter, Inc
 * Licensed under the Apache License v2.0
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Designed and built with all the love in the world @twitter by @mdo and @fat.
 */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{width:auto\9;height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover,a:focus{color:#005580;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#999}a.muted:hover,a.muted:focus{color:#808080}.text-warning{color:#c09853}a.text-warning:hover,a.text-warning:focus{color:#a47e3c}.text-error{color:#b94a48}a.text-error:hover,a.text-error:focus{color:#953b39}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}ul.inline,ol.inline{margin-left:0;list-style:none}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;padding-right:5px;padding-left:5px;*zoom:1}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:bold}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;white-space:nowrap;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:20px;padding-left:20px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left}.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{display:inline-block;margin-bottom:10px;font-size:0;white-space:nowrap;vertical-align:middle}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:14px}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomleft:0}.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomright:0}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5}table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success>td{background-color:#dff0d8}.table tbody tr.error>td{background-color:#f2dede}.table tbody tr.warning>td{background-color:#fcf8e3}.table tbody tr.info>td{background-color:#d9edf7}.table-hover tbody tr.success:hover>td{background-color:#d0e9c6}.table-hover tbody tr.error:hover>td{background-color:#ebcccc}.table-hover tbody tr.warning:hover>td{background-color:#faf2cc}.table-hover tbody tr.info:hover>td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:focus>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>li>a:focus>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:focus>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"],.dropdown-submenu:focus>a>[class*=" icon-"]{background-image:url("../img/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{width:16px;background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;outline:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open{*z-index:1000}.open>.dropdown-menu{display:block}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#ccc;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover,.btn:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px}.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0}.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#006dcc;*background-color:#04c;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;border-color:#04c #04c #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.btn-primary:active,.btn-primary.active{background-color:#039 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;*background-color:#f89406;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;*background-color:#bd362f;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;*background-color:#51a351;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;*background-color:#2f96b4;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2f96b4',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#363636;*background-color:#222;background-image:-moz-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444',endColorstr='#ff222222',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#08c;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover,.btn-link:focus{color:#005580;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#333;text-decoration:none}.btn-group{position:relative;display:inline-block;*display:inline;*margin-left:.3em;font-size:0;white-space:nowrap;vertical-align:middle;*zoom:1}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:10px;margin-bottom:10px;font-size:0}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:14px}.btn-group>.btn-mini{font-size:10.5px}.btn-group>.btn-small{font-size:11.9px}.btn-group>.btn-large{font-size:17.5px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{*padding-top:5px;padding-right:8px;*padding-bottom:5px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini+.dropdown-toggle{*padding-top:2px;padding-right:5px;*padding-bottom:2px;padding-left:5px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{*padding-top:7px;padding-right:12px;*padding-bottom:7px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-large .caret{margin-top:6px}.btn-large .caret{border-top-width:5px;border-right-width:5px;border-left-width:5px}.btn-mini .caret,.btn-small .caret{margin-top:8px}.dropup .btn-large .caret{border-bottom-width:5px}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical>.btn+.btn{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert,.alert h4{color:#c09853}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success h4{color:#468847}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger h4,.alert-error h4{color:#b94a48}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info h4{color:#3a87ad}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:20px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li>a>img{max-width:none}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover,.nav-list>.active>a:focus{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;line-height:0;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{border-color:#eee #eee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover,.nav-tabs>.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover,.nav-pills>.active>a:focus{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs.nav-stacked>li>a:hover,.nav-tabs.nav-stacked>li>a:focus{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{margin-top:6px;border-top-color:#08c;border-bottom-color:#08c}.nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:hover,.nav>.dropdown.active>a:focus{cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover,.nav>li.dropdown.open.active>a:focus{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open a:focus .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover,.tabs-stacked .open>a:focus{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;line-height:0;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#eee #ddd #eee #eee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#eee #eee #eee #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav>.disabled>a{color:#999}.nav>.disabled>a:hover,.nav>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent}.navbar{*position:relative;*z-index:2;margin-bottom:20px;overflow:visible}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff2f2f2',GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065)}.navbar-inner:before,.navbar-inner:after{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto;overflow:visible}.navbar .brand{display:block;float:left;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.navbar .brand:hover,.navbar .brand:focus{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px;color:#777}.navbar-link{color:#777}.navbar-link:hover,.navbar-link:focus{color:#333}.navbar .divider-vertical{height:40px;margin:0 9px;border-right:1px solid #fff;border-left:1px solid #f2f2f2}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;line-height:0;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0}.navbar-search .search-query{padding:4px 14px;margin-bottom:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,0.1);box-shadow:0 1px 10px rgba(0,0,0,0.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,0.1);box-shadow:0 -1px 10px rgba(0,0,0,0.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777;text-decoration:none;text-shadow:0 1px 0 #fff}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#333;text-decoration:none;background-color:transparent}.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#ededed;*background-color:#e5e5e5;background-image:-moz-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#e5e5e5));background-image:-webkit-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-o-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:linear-gradient(to bottom,#f2f2f2,#e5e5e5);background-repeat:repeat-x;border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffe5e5e5',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e5e5e5;*background-color:#d9d9d9}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#ccc \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .nav>li>.dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown>a:hover .caret,.navbar .nav li.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{color:#555;background-color:#e5e5e5}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777;border-bottom-color:#777}.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top,#222,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#222),to(#111));background-image:-webkit-linear-gradient(top,#222,#111);background-image:-o-linear-gradient(top,#222,#111);background-image:linear-gradient(to bottom,#222,#111);background-repeat:repeat-x;border-color:#252525;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff111111',GradientType=0)}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav>li>a:focus{color:#fff}.navbar-inverse .brand{color:#999}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#fff;background-color:#111}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus{color:#fff}.navbar-inverse .divider-vertical{border-right-color:#222;border-left-color:#111}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#111}.navbar-inverse .nav li.dropdown>a:hover .caret,.navbar-inverse .nav li.dropdown>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e0e0e;*background-color:#040404;background-image:-moz-linear-gradient(top,#151515,#040404);background-image:-webkit-gradient(linear,0 0,0 100%,from(#151515),to(#040404));background-image:-webkit-linear-gradient(top,#151515,#040404);background-image:-o-linear-gradient(top,#151515,#040404);background-image:linear-gradient(to bottom,#151515,#040404);background-repeat:repeat-x;border-color:#040404 #040404 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515',endColorstr='#ff040404',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404;*background-color:#000}.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000 \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb>li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb>li>.divider{padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{margin:20px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>li>a:hover,.pagination ul>li>a:focus,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default}.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>a:focus{color:#999;cursor:default;background-color:transparent}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:17.5px}.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-moz-border-radius-topleft:3px}.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px}.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.9px}.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:10.5px}.pager{margin:20px 0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;line-height:0;content:""}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#f5f5f5}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;cursor:default;background-color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;outline:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:10%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{position:relative;max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;line-height:0;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.tooltip{position:absolute;z-index:1030;display:block;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-title:empty{display:none}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover,a.thumbnail:focus{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#555}.media,.media-body{overflow:hidden;*overflow:visible;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{margin-left:0;list-style:none}.label,.badge{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding-right:9px;padding-left:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}.label:empty,.badge:empty{display:none}a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:20px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none}.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255,255,255,0.25);border-radius:5px}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{line-height:20px;color:#fff}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit li{line-height:30px}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed}
/*!
 * Bootstrap Responsive v2.3.1
 *
 * Copyright 2012 Twitter, Inc
 * Licensed under the Apache License v2.0
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Designed and built with all the love in the world @twitter by @mdo and @fat.
 */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@-ms-viewport{width:device-width}.hidden{display:none;visibility:hidden}.visible-phone{display:none!important}.visible-tablet{display:none!important}.hidden-desktop{display:none!important}.visible-desktop{display:inherit!important}@media(min-width:768px) and (max-width:979px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-tablet{display:inherit!important}.hidden-tablet{display:none!important}}@media(max-width:767px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-phone{display:inherit!important}.hidden-phone{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:inherit!important}.hidden-print{display:none!important}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%}.row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%}.row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%}.row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%}.row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%}.row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%}.row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%}.row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%}.row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%}.row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%}.row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%}.row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%}.row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%}.row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%}.row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%}.row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%}.row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%}.row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%}.row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%}.row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%}.row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%}.row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%}.row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%}.row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%}.row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%}.row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%}.row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%}.row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%}.row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%}.row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%}.row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%}.row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%}.row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%}.row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%}.row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span10,textarea.span10,.uneditable-input.span10{width:956px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span8,textarea.span8,.uneditable-input.span8{width:756px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span6,textarea.span6,.uneditable-input.span6{width:556px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span4,textarea.span4,.uneditable-input.span4{width:356px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span2,textarea.span2,.uneditable-input.span2{width:156px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%}.row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%}.row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%}.row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%}.row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%}.row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%}.row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%}.row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%}.row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%}.row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%}.row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%}.row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%}.row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%}.row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%}.row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%}.row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%}.row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%}.row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%}.row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%}.row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%}.row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%}.row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%}.row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%}.row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%}.row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%}.row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%}.row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%}.row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%}.row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%}.row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%}.row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%}.row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%}.row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%}.row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%}.row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span10,textarea.span10,.uneditable-input.span10{width:586px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span8,textarea.span8,.uneditable-input.span8{width:462px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span6,textarea.span6,.uneditable-input.span6{width:338px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span4,textarea.span4,.uneditable-input.span4{width:214px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span2,textarea.span2,.uneditable-input.span2{width:90px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="offset"]:first-child{margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;right:20px;left:20px;width:auto;margin:0}.modal.fade{top:-100px}.modal.fade.in{top:20px}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.media .pull-left,.media .pull-right{display:block;float:none;margin-bottom:10px}.media-object{margin-right:0;margin-left:0}.modal{top:10px;right:10px;left:10px}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 10px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#777;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#f2f2f2}.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#111}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:none;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .open>.dropdown-menu{display:block}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111;border-bottom-color:#111}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto!important;overflow:visible!important}}
body {
  font-family: 'Rosario', sans-serif;
}

#visualization {
  overflow: auto;
}

h1 {
  font-size: 62px;
  font-weight: 300;
  letter-spacing: -2px;
  line-height: 1em;
  margin: 1em 0;
}

textarea {
  width: 98%;
  height: 200px;
}/* -------------------------------------------------------------- 
  
 Hartija Css Print  Framework
   * Version:   0.8 (2008-03-10)
	 
-------------------------------------------------------------- */

body { 
width:100% !important;
margin:0 !important;
padding:0 !important;
line-height: 1.4;
word-spacing:1.1pt;
letter-spacing:0.2pt; font-family: Garamond,"Times New Roman", serif; color: #000; background: none; font-size: 12pt; }

/*Headings */
h1,h2,h3,h4,h5,h6 { font-family: Helvetica, Arial, sans-serif; }
h1{font-size:19pt;}
h2{font-size:17pt;}
h3{font-size:15pt;}
h4,h5,h6{font-size:12pt;}

code { font: 10pt Courier, monospace; } 
blockquote { margin: 1.3em; padding: 1em;  font-size: 10pt; }
hr { background-color: #ccc; }

/* Images */
img { float: left; margin: 1em 1.5em 1.5em 0; }
a img { border: none; }

/* Links */
a:link, a:visited { background: transparent; font-weight: 700; text-decoration: underline;color:#333; }
a:link[href^="http://"]:after, a[href^="http://"]:visited:after { content: " (" attr(href) ") "; font-size: 90%; }
a[href^="http://"] {color:#000; }

/* Table */
table { margin: 1px; text-align:left; }
th { border-bottom: 1px solid #333;  font-weight: bold; }
td { border-bottom: 1px solid #333; }
th,td { padding: 4px 10px 4px 0; }
tfoot { font-style: italic; }
caption { background: #fff; margin-bottom:2em; text-align:left; }
thead {display: table-header-group;}
tr {page-break-inside: avoid;} 

/*hide various parts from the site

#header, #footer, #navigation, #rightSideBar, #leftSideBar 
{display:none;}

*/
PK    kC^2'   '      mimetypeapplication/vnd.oasis.opendocument.textPK  kC               meta.xmlˎ0E
d~ehHٍv5ldC~x4foU[mMhDP FZMS_=ןJ{>k	\Yy/|-Ub7{mfkG/FrkS=xh#LKuCܹڅRCÀiD	7#Ykw_C/vnRGLl]g޶;ǨK%5#4)i('[\"1x݋SW+UԝhvE{?Lv͉Ɖ8ٮSO.#=l0քE{z!'G6 |NxoeYN"e]ȗnyotKbIJEJrʈ 3?X}/PKȓ̛  B  PK  kC               settings.xmlZ]s:}"Z0	 !훰ЍHrW2)1)5S&ؕV{]sy'P
ߝ' C_sKx4iN5Cz]Fv*Hl \7$A7L˧Yve%|
$Je\[ޡW/..*u=">;/dqΪgg+f/BS8l߼8r]U@.OQ|K`luBw4Ae嵍af~YY֫q/r}^}3>^rtLA8"
`2hB1=Vpa4f) zr2j(yMr_?Ջjt|*La̎ZX+6q>>},쟈,f>;"SAreYo#>`qР_Yseew{S ^<Ibxo(2}1SJnMA\o$eff,Y˷HAE Rc݇'rK)8N)?RCkl2/~whٺO,nLhRyIѐ&UtR6LEXsG3
EekguR̰)qT9$.h4wQlihS(qh:]&}.ڴTFC؀kŖ+:Zw35篔D^1=R6Q}N^P̢Z_e4(ZB奋Go<@.YK?թo@ɖLSI*eޗ/qbor1G"Է|(V[N(IJ$҃7 mmi	0;]z-izDy::ۅm=I,U>e`6ˋ
2&貫meDxii?_VD[>yc2-;N;PvNɦ {JS"i-q➉(ulp3#Ԓ
BսNzk6}ttL7=ֻnosɭ9\.W>L:P{=;QuZߗInFEeC4+ӌZ;;}*/=֫cL%XSePvQyZ{2F?'Ѻ=K&W(|LϞGy ;w	e=6kaR#m$}d`>hDقRN7v+HKP	r %a2Ao;iKhB){cdw
90mɨ-Bfa"LqPT<gPd|Auԁr2F͑>ӷ~@dH"EX[ʥZS[fl*0]7S}&kPK`?  &  PK  kC               content.xmlv9.KHIvdUQ$) %$Xwwc͛' kAەVȼ@\pJv
ila"5rdrOг`/Qr[VeneʳOFinS<=k{gG[Ͼ}^>O..}wl޾}?++fڣf܉wFq%:r'q.k6///̛;?ngo\FWQ$͝NkoIgCWϖGn>[6yşދoߛr|7y<'{odYڷ>kW߾_k}3pC9Anooo]}/p`n]}q~4N_ALo? a?rn<}s?Q)s7Ș#|>hȴq7>ʏOpҹ^s駾x[.ǝVOwX'onkn7衙Ε^w-,n{	o=Ət+R[w$Yǳwά>MFpn+2Z/?߽Za6o̼ޚb}{søiذpƹa~4r_yo_W\ٻ+=.K6ݏ1Kvi?%޹E:uwYoFtLF ߝpeKas#}Ш.Ʉ+o@Db>~ E[huCk)W:D_mAޙ_t}[yoDU<fY/}[#wn>o9R;_Uʼj𥈃Mqȏsv$\1[{h>8o<U<Ǘ}HHv.1և|w øeR@^ҳ?0&
VZB䭔}	!
Bt2d#[Gk%D^e֡{_Av`FR6|	dhვ_Cy1ЃudQ/Tfzdȏ!j#CZ4=B+ƃʬD Eqg	 on}g(nͷ\^	xH7['f-ē;3.*=`.%3K`[o7-nW9$\g?Kg'}ΗZ
UZ7ҙrle|~sTe7b+=YG>}z;o@/')7sެ.cS\.+_/*ZW/֤~fDo}b\o.pr9i.%8V||{ M`[6̈́[aɝPn}-T)̴~
RSRgl{/Rg|kw/x7/}{~߸7/ݽK?Gҏ;?ﾭzwٮ/n^q͏n .OMDna+~nKlr6,Ai|`XLŖΝ
_^"~$LZ\rtʤ7?QA-ON><-YB{;wvw߿wуjA>"t-06;cٓ;cTdy 6$9? }p=SoufJgV؛q]ИWfba{7Ɩra|[~֨~o4,j` xY&ET[BUg[/550?u:vz|w[OK5p'?ڃg},%͏%ǿtP;7[gz\\1;5?
oWlR.7,.*-~7.C*
7{Cї;)?17\氵U˹;qbq4Y),O㒕!0a+4~dۍ0ߠm\'T*z`fJM.e=W}w
P71wY)a_CKnຌrUPoպQպj]U~-պN)/"y׭k|	/??oZo wtC=qtGUBXlBmu>VT'2|'Q5wo%5woU5wk{ FE<5W 7[Wv7spU58"s'\o_' \Qx%xUxk GE<5Dd,ҷZla_W#~uNznz%jln߃*+)*_K!=0*⫭%x[-+knz5<F>\߶ް߶ވvq|!eÄKrzqȮ=|||Ês덣"_F9̼odcA5Ɂ@U~+ʳ@i/f\r#ób)ͳb%2ֵbA fXGiň==s/q7Q7IF)H%I!
Kv03ݨ;9
ˍʽ9uHn	CCy/ Q2}d/s T3	y8s$V潒BhV
T5Yt+sPeN[ +G1$y[mFP}:o2X5U=*a+
DYm)8mjlV o%̴Xk5-j5	kD[ȒD >SeTFj-	`HQ.bq`~	DmV~.na.+NC)piaA<t5U\l@7y&.7W]7e"J\hw)b,YL)U)Jxy䂬ZҶYZRj
^a'PlU8q!dg>*SKa,dĠ@&@6pr-BuRK53ڒkd86*Ú`W_,wQ5I*i<h<t˶LzEtltU*Z}KeBMcԱ#5&}i9ZqD9rTp`3&n?0A
[={|aO5wH+#}_6A6Z6<i3ow~sA`2SwBK+Ew`8DQH3"&bSCqEsJ~ >_js"#d`fys3z`)0P,2-kj WETуK#WVݭ_],XJ):3CgT1늘Eps:a$0&2nxRL(NPd=93(jQ\6"}Pmg?FY]u`Ȟu_d+Zm5Z`ʬx24sB\E$i?46X	jwT+QuD+}ȴa\ʬB, Mf`T pϴQ-Kduc>)aԪu*6;0΀G`n0tV+$7qM)HM	Z YH^33:x	Ŝ9[}-;D`%\@hZݘI>ǑyJ3xY(7_pKRLk[3m+ieKmHaM7o4r
Fd+wGtI`ݹ!rUi󩿮
mju<W3h))hZW<W'Z+$oHﵽ
ObNȀ7^دZ(6綬R0s5"F嘰˲ue;\i<yRM0Bmқvą
3Py$B<#HRG5.7Vbb0-B{<R
Ac^deѨp\#sJ[Qu(턿XPȒZoHThaK;/H$1rB;NsSTF*m%WR$e$1Ii
fNeo"[[uԜR*.Ts#ڱG!S07RJ%^@Y[KY>@9f=\ߠ:b2ubqA򗹔BfW$e.;zC10\p2x/(c6s *~f}u9X818@Z2	y[apS3 hp2d/)Kc19RW'3:!tz%;-8;\yb?xEOml$uJBMeޱqrao^Fԡ`qu	V[̖Qǡ.md{2u"5,/pn%
{穞-Sj7R"1a1ͧUG
\I6˙W	Mfz~:_k$.JHGĘ\Ś܆N"Fgd/w`흍/',$V1eT&̄63gƱoɔ;rq+U#J~tE߀rEq,T*LSvK foz0fڤ|-tnH!\6ܔggBq~!qiF62*h!~MFCsd^M8
ŵҀa[S:.N1]\W|4U%7E `Q&r*#C%˖1|RVr#EWgAg?A.S%,6'#<u{"\WqxW+r&G{8n*.K-*N-Òw)>&V.4Cğq lMytrAE&ąvZ%m"qQ.T5־OhbWFUOWZ84001j?4iJki*Q9Nd*{?	[]/E Sp2#Rn5<+~|ɺã~=aGJ>tZ'	k?kɓkMś<t5,w{̥Y
[+tII}]obZFQɀ|@[ɋBTFkAhgRυbDp}6<"V7N42n6oa=oNc?n * P{Vvw+^]$%F)B|oO@bcLQ\mͭ?o<hϰts{v'GZdG0`$]ܙ	3^3,`.YpFYBagVVoj2P`THuv{Ufkʱ#TP6LȪ	:W֛.4m|M}p}Vf@QDl'W6yHz-Ʀ<r$ㅼ<TLDBJNh8S!S&Tb]y"%},f%{'*.W+v_v4fag#D!
-~"u6=F,x n;ߜ*D1TǬ]ta3-l}%m;/B:rYCڤpUͪ&G-F3V5N&s741@v 3d.7,l:efJjM&u4?[82\?8 c9KZ>'"Jsa*̽H#`pP1}e١&: ^pObS&"^KeZ	j
rkϺ'$w]ˠ\jVEFdtY,fϜ:ޭ>̞CNeetIM <]noxu']nۭN8*~6RH\^CpzU%cb1#ڱMT:U)Ϛ7cf5IHAW^rZdVJO>3˴U+s$T$V(x{
(p(Ccj̍~gl]o?gJa[ irhnbJIeGuEl@Ҹ]0Z	nsR<d4%<JS*?o-gl:s] ,]~;b?4o1jjۯdv,~u[uh{EQƯ̢X+;Z
Ts_Brd\d"]<m.B"6DFlnDd!rUYW+3dc-_*kC3rpaCm@u(j˽^\ҶZjX̛FXG_.\BNduĵлyKTYXt;4.Tf&ׅ}83<N_Jp-BgV8ǩya)2\^pGY%I1q~6b;?Ͽxu?Zf?3Qabya ZuiC%Dύ }~1:t	;qR<2N]F\lӌ_/#tfzE/L	L3=#0eDud\Ot+ROci"cR&=&]6i@hQԖݸ_OL+bcD	).hŝ>x^ʘF5Q*sTCTeBxxiv6L%(HRT䉓Hg s!2ijZ["auBnR~u&A]B8b&ٙP޺cBqLs-eOD	p{VӔgDeqԬ!r1UPЖkFZɅG4q1-`D\ۅ^aRX_v$~9ę[`	UFBUQ$O5{ʟy9)5&(Sd艬K-&ӆy[(D'56<M	၁7YJ) W.q%"z	$fQh>-Oo:!/NY]9GQ ^	WVUZ1HB"K\bC:z]e sf(T{WgB
Vu+I[xHgx*8ZͽǤAp`n]rC򇓿JHV+?c'GGǭKS%kLG{O* f]q!|<+#uX*ud2<;wGgC?]+#{5YUy#f9p{ƹsJ70bs4xeB.*d蔓H1>[FO2|Ni\s<{t=莺vwN+g˞R^q[S!ClOWȼ}m\Fq/`Ϟu_h:Jup[/$74e1(Nr{i:CXC￳p_B*0;2ņR_
F2Yme#
k%);QJ_*f@1\@5M뭂+aR 8[0ܷV 9&Z˖#+%v=Q5zIBt?,HZu.X'@`ޭn<<DNO$Ov²Gs %mNSog<	{\#:41eߙiz(uV$%Jcttl~I`lvN"ccpey28*geb,
Pgb9ֱйe/

{ڶB,Jos븉	I1;;s`)V,C+ZxJ,Y@ʉR	-FQZ{	qT[!fA[,L+&YG];Th/Y..ぐp T{AVB'm;4w3]6|6$3Wܲ0BE&rSGr/10#gM׹2\]+#WAYe.Lkn
Xxlh􅈁q$p]I.Fr!цH%{n۞ˮęsXQVSܰlM2-#WC*Uav; W<T"rN^nwE91fgUb9cQb(A\mCueVsv17; .Pqz+"ZIt^ &@sht9ͅ3ur8/6#}eAVZ	\(H.u7
;>J>v<ؤi1\m͢HI&s|En5Wi~M+$l6^mEL}LysA$I{ª%\b??gm@⸊׍	EWfyvWVa?4ݨ Z	ou,¿$MrBUqcݔV+Hr:ܼx28>|(Oun?k@?~K9,qv=X//_Q!XlĹB̎TH_Y`Xa;&r f3SwAb,_| Ėp2V[3\F[Zv`χAe$.m-sXޙJe7 TK4;iB90gJiϽ_ln*
iy g`.B$ *hoD:Ԇm>m0_r^TF0W_VRx)\b+hx0}XM:/\-
o:aDdDK{
~԰fptN)jǟs0&JtyfAKE)*uܱJm(n,.d&nֻNE<xqN>(Gj˙YE4M(?1Qϵ|NX<OTxRp#ꀵ'	{W?,2ekUǛWq4[@1e+H	^+VD==-
(U{14p?;:>ϑ8P\+8r%gڅuϩn}rq:huAM$η@!ĨBa穷(gNul2jǭhЧɍGQ`Yf2(%FڝB*(ᎂyveX/w5xՑgANcX ge`		{ J1mrͿ5Biyd͂s(WѸ W,}PQֺ8fa.6Wۋes/Kui:M[ikY2P1HqU.rY&&1q3H_#*6XG"摿DEZcxE8v(7gi5wChka$j^Ć9!wIe$.6Pu[WBXd0`L>L lI0|Ε2miYe`UU2zVv9ĴE	7\+;;VGN<2/BX!ZMp"xvou÷v]R:mvnqUcv&ԝO+#ZGAiI쏕vCay,""\)0DiϻƵR l? C0Sͦ73_Yve
q녣quFZiPRȔ*J$_ )P_GsDa&Bs%__feYpW<bdhci'xPFphVA;Rqjk`qWZ`N ժu]dJCC_Rk Ld\X M(0Rgܺе27yN0rH2^Vȍ] mi+ ϓj\_87Bqiygj	2nJ];龏Ei)}Y1,߆ugqcT ZIiVfg\e.beB(V'.S]vIt
ǦBh6Yt )'le]LyTu3P.Mmw)A+#uAYDR,T29	&gAY
yB2m\c&6.EQvh△iCT/X9Ub0=hVˆKDK"7ޫb븡Vl@&6\'я##.;)ELwqo#ii|Օ;']#P$Ӱݯ)eԢn{qϻVD"NX8UU{d.o	,(sIa'?%8ҹr,Әμz_FT>!WבCyh:$2/ N~>鲣~rō.q\/F䚧?m>^yU"|%M|n<x6ڐKG_	bHt"$8MS3m0NijM;zº=vPYTEi 8WtuHGlxL5
n#bca6@2ե1Y Y+;QIiU:qDբ ;~Yd	y~k;lu.{B(;%DF:v,i-Zbp1W,{DgG@Ĩ.\Vg[V9Q
 W |,T+gLE'"RNʹN}59XiQ;\GǕ%ua+)2ʣVM@S.W.iOf*TSȥ,˭B18!n!DpDѾp->M1Luܸ,\8SBXH03n6wdv{{֨u|?P:OTM&5WK?ʿ9z+jq&"kd \E\ʻ,p&o>'lպWT$; 嘷NÏi,hy2u*(~V`PB.u.c6(ʍ&KҒ"2\~'ۃ+r_??:]Dܾ2<^br?Rh4* %u$i8৬7	A
̗\KߥG皚ںHp
u&A]R-P ˓:7nM;OKon|JaO#8\Ωjw?ƣ畑z9L*#wB]nh20eiTZ+&L8H0Z4]+#j`IZb$^Yl*jIuH]"e:pĵXxCچ^K:Z
g)Kl`K~1ˈoɭµ?--u]^Y~(5	;L0fڤt:UT?(BƐュʍ')wYHQT=.*42OXDp6㩐SE:Wȃ|X'*TcsXUƺxI>ª	~Gqw4aGɀ4;Q<cK_o#\MUWFH
śdcwoA?r.qyLEb>BJ}atefQ4Qֲ=rE1񒏬l@I(ף/AnzFiae"Wj5)81✲ЈO80:K$OԹTeL2x1'*^āZDL({&Һy1&QԜdl4.2?[uAݚlT "ՁO_Bq>4Yġt_!r6T~hxbeppY/<v[ܰcWeWMd+Zf}&LA>
cxX$F<uCԀELEp#s	>OYXթLeRA`W"Jߺk6LSSA(Uv`VKOp׷P,_.ql&恱(		l`0c~}&s+[TƺDLB 
ĬC D
Uj"fK1
O:x,SvEH5\\*0(x~ֲ+.XحǏWfJ:!}t$qB_ DQ,,W!PCPgB,)*$sZVh)K#SՅl.M=|:-ײ,+}Nd|(dmMl=FK6ij7*#uqnP8BTźHgIScuޤޙJqbޮ*x󈫘/wTKBD#Hw?Y'{$~3CbL4DAhn^	OS$PFe/4-FG%1<J`3Z1WQ8wu[.BȐW)VS#%į,LP~0.$J؄sm<qpԯ,K3gT.bWrdbϸ1UY)3A	qTj2ve,Wv0l?Sdza޻$VH(EW%fOJaYRrWNۃq:'mhId Gm*_.ؖm]#b\!Ղq.!NDGs
-<cP@v( IP^rqjYM_d%܄ڧ7	L܎cH$Q˘|( 
TH]ca?tϸ%JÕvb͸s	#딹reC_R2FZ
G(E]]8^$^83<ꊍ2T(0VXWZQv,o_&׵M* VF8kkg?43Pz	LPHyclB ~	c{iW%.R8xL|Eэ
+ƍՆy?˪^Ė"(L{	io
;V+E",!l|I!C[j1ޘ@ʝYu*}fI$^SN-W&YN[.jujljأkb{wpͳLʊ~wHBuJ"25VФcksL(xT'aF&*XY( ,:**iG76HA*+hYf 6#/ jzV-yH,6y[@amlѻ\C҉cY_en_[\Ejc2SV
k^i_)7&N$I\d4'g֤Kt^,")F*1uל/Y&iY%o\QzƭcF#ᒠD9dQK"fZL9ÕQoX
 VѻVpź|}%۸YUwe CϕV:ȉHU`93<P3.8K#)"8N-C_GDрAb׹͸w$(ݓ&W9U֊
jƘ.M5*ЯcPL^ƽʺ)y
&E0|en0D\ą0[Iw&^U&}6I|tvX0a^N&~{='n )lMx|:F/Oݗ_$WqnR?)1`瑘>8rw<rV,3GX=s[߬T(pXgVJt_B^_+<r%l
˭e6įZEp_E->DR`3L|bO!7?S͍S{jS̞ [d>ν7oqi`{l?	8ïA07qnwFs];P5C8%SWM!Pw@Bkpp؀g):.!;U!UH(\ 1Kaԭ9@u *.&	Xh/B3 a(y~]/h?eJT0S/Wh佽a[BZ*[DO!+Y9ib)^ǐGȡ޺S6ꐲ;!~\I>Opp\\|uAtNZq0\(m/&6)w
dYI| "J7%If3\ܡc.LRn0ﲃ{tE[զve&no덽(l%	wc5ol2(2,w
$/::kÜH\@>e5t:]DͽKrXwn(>P zmrsYWyKcv&T<tG~;^~pSB{5{?AUrJ8vg{3w6v
uª	O0tnbV6.؋)jKі#eW(6ָ'ZReGΩOݸ;BN`48f$~޿Q?\noLAv3\FQ
7LёUݳPҭRU)[|63R1;*~]t_Pɕu|tA&Aikdyhm>!\/?*c$ʠiksB&*A4HeNbK3P`hFzR)#i.yi92Ϊge5m)-ElפPѹ$ OTxR`zT.Kt~XxB2`eɼUS_ΗGkI!Rڱ($}=8O.vbٲZϏy&E"b)LU{	TZf\	4]e4d_oNP4>B$?tdwAhOjH?;	ܬ TuY
Eq,p]beGM$kCE2ibdQ5a\K/M]Ii&Xb`N˃f˃<=m-7ڤe[4qll(2f0m>-#ƘU#ﲐ݃mhL,k`8־T4q[3S%P( LW+kwr3e\6\) aJ5}h\zDfp)hIW%[`".Z w18..CHFHٟ,Rj*nk|ةNsZ)q 65SSs:sc6n!]ܘ~G-Te~)*m#	
{!/DA縤td$̈́xuƺB݇5vגhQ~4=%~rߐ?A\$3F$1 N\b4wdV@f
?EiF	fxLvڑ/C/`c*.	akg\yN;XN S	4Ε-opq)<:?*Ԯe⨎q9]}Hga+?7=zè8u>SHkpH0?__nIS!p5B-mH+R{P8~!W>UoiuڝB&4PVf/xw	c6$0;q{t%Vi֛$}x^uBA.鯝6V -RqwlB_٤+$O?ʓʸ(8Wg.BWL+3Yk"rTf E)q(k:)Uz{Vq[tp+HmE6N@ytNk}naT~d<ߊs7<vplZ\	/6>h3MQ0nbn=>! 1 MB#ΩQNkie\v{tJ{ғѨ۟Mj,h-,vYx2J:+ՙHy܆NʁQH-"v,1O\.^ m>ݢjR<E ISRȠ|NF9*&؏8x@D%^<6Ӆ}-7A9կIͲޑ_	o*i#ePog ƻ8}}I{WFQc29u^B
䉬T5*fK26ӦSX/.O4.&	AnR%iet]xxXah0FcvTgW.YL!V`<!VWV$7qnJDC̎xkjېg| wQB6u.R݄İܼ	EeBJje<i&?V:5[m'2sV~p`\5WA+bB桋gPN-sۈBl:evE{<k[Zv<BD*,/6Tx1=|{t4[6mV+˺|.)5CuN嫄D9X;YٌDp=f/;vk_ E@"ab%@!{YnF#h \<ZƙsɴoV[Ӓ^=Φ}] &驠r̈́m:);G}S%d@
BrHZp"~zϿN7$(GE똍3Q:[
gMrv!B؆tPkAZG
&[RD	!f=XF"<J]Sw0FcBk)lS|TιL-1*s.l^b_ ҁIY7ě.2{Ce^!bsf^.BEd2%rPdvʂqY	kQ`ij/ѹ3bsfl]&s($T*fhw@Ll.E*0(ػ漏u$8hIj؇3"Ǒ;D=aAEIhɯ]]agC5F(7BeFuI*{VF k5prPexufl{I ad>+j-y*Hag@;<)O=&]6i 2ܦ`t\)n0&/t$f`IwΣ~ww~Ý%h5]PN<"P!lPx97ԿbuVCk'"$H/8zlq? DBp)mQCn3ZEeT؃<^PqM&Е'yts!%ڑa*WzžDUh,R%IH>0
Bi2epe<{l{r3*$,1S:1Z66:IJz8#^4Oxߢu"]a|*}3lVV_ǧՑZY1)L !zO*CDF;VǑ&-Ibt%8.	(M"cA\hJDYk܁0ֵ!$DߢZbL8s@vA$ zgJHڝ5мgRυzu 	:HHI&+5:ug<`Eѻ;!CZ+*8Ɂ˘b]K#vdUepұiY#u#j"˚m-Tuܑ$"~lcuϸWر(#3/D,P̂*TԎ5JPq 4ۑI6WQt.w@JEDkuX:IkǒAIhX"Vi˂mڿo:"$\+JR+<P|fBBJm%Jro.MKl(F*?*3k'VѲ>p"^A/W>}%vQv@F{5-KTD<;TȈdi	XjpaՂuf3%c`S)P]*:\	W畁.XW2IMlz\#9m~ۋYG_
%D?ɕp3"0*rP@Nr{0hJ6Yl~PmHB/qa6@Ąf$ZJp(vf^-sɺ|.V"',YdZBiI5frPE^}
LsC7J7K#@*i)Kfu.XƗ'iV3t".f4L$IZlӆم74S*ҁwy<b
z=fYkiPZ!?%PAlHYZO&jk11{q}DUk0z)3t`9׿lCC0]J,\bBq ƲJArd2fF_pEfBkE(Ԁ\'Ak#_-ؐy=v!zd"$:3y§B.,n.Uf&*(
ie1;%e<QN8	10&YeNzY!uzA݃q jIUV-W.n3 D-~]F]+f7-&MD8OiuKbnĆ5y6ip+읧!/n\ti'/y4?7VrXq[As$p=Rpܐ?t	Bp*~j7OT.&E124NZK2%,{3ֹlwlOy'Qo{:Yjev+⭋!}
|Ql|ɽ.$1Kg %-Y^Y,9JPEPCMچ@huZɺX^*Úl06v^дyG?٣	Xܳ@4f9PUpuC"@&M8VtGǭx\FD;FSܲHp::TuVTbqT^r#bDixe:L?.sڼ<ɁF6s];Eώ4Pۑ aSjRHI03mġKД9/z:qJ!>o>mu:`0Oݗlae.JF_wj':'#لcg¾VաW<nEFG%nf(F`ebPvЖ/oZDIV W5HĔYhE>ͽR< Q31>w\ʨZAIiUЫ.Ӽ$Pw]+{}ZP{#,s)FMܣ;d@u:ęd$5`_7--XUhm1&3F$ʆQ#P8[	8T~u1`ҎE݌G?]*#1(gD"yeBm5q%ML!.;4+
>,wlF0jRZ$ܛV<oZnfliG*&+?ԎD-sj@(*Qޤ+n]˽ޗ<:x̋)DxaGa&q_{Z\%.P0`enW<9Y[լ,Zpt`\qƍBwPB`jr[V.NKcZW;:jpttRU@V<wu^moa`ڰT`_U*`YU KVՆtդrBØ |Dˬ[Ӳ/ol}~14:^ŰT(FfmksL>TxNͿ*#Vy崉Z#B\I\ji(ӄ!Ý'{Up荚`GU2"VJ'3J֐v;C|Jc!vE҇	fsS<Wº?+zk\J\bjQ0c,syaU KZnCzGn([Ե{a'on{"+/8P3mR4Hy˳wr?;Ywe~{6n?22QaDn2(QZ5pV$+&SÚe-/,ʍ#QSvnhD'X<690:ZY-e3p)5
˒y4f<be{?k
ovY)[a?śzß[`|P/?Xw4BJ⇭}~}c(:bnbow!4Y:)ǅb\-נ\D8I{Ǽ 7"F	&*ck+YHm%O?w#)~%"-ȹOgk?uwnD_%2	Ieׅ%Z (Y-@2ȈT\HBS]k^c~ϯy̓LP3g56꜎XkBDo;A#Ю]J7Br_SP\9ȳF2tZ"FxU `l^?5^Mi3Hxz65BbvY%']t	5Aݸ-C*mm8!`(=أ	x6sMgOѯO}ϵ(ꆻ
uW?f=\FKv3Iu ۣd/O	|̝}@BTJEt~A:h7UMՐDb>qdzDBi\2<\H(;պ2QYWr6՘s5e:Nf%
q5	P-e^	kKr(-{c A/tѨ>d[Õu9J݀ fz6>آ	WN,fZ[^ ["y)nQ\QnW1Np4\٠?φ&";U,OM%DUkyl~G^3?'>0b@Kش5ܤ5
sՍ*/{>	cjK7̭'g `\'ұy+}7bd8Z׵VlPpUT"lWmu10u-/86	*~Xh5TK qJG]k_,h]f~BnZ@F?j)7Jtjx!DH%cTKe2gBX`ΧZ!`[t$maDKdiX76\N}`ootn?k<6= fs)^	LN[~YB$s)Su*ʔ?ģX&(Fy˴)ŶEᵋat/1hQ~'ɬެLs{c0)I1XƀTKHIɬ/]N/IԿ\{xp_@Wd.DBHauԔ`&a?p`^Jkfㅐ3Wy
&UEp?JѕȳqQZ=e&
KJ$鞎ʔ-fɼ?X\L'r08ZŦu7޴TI~UJZԵxbajJ= o*y8FkmpDqQfaxK43>]e4
7`Kؘ[A8Ά1{ݽ
9!+m=5M32ITwËkH
`Ĩp4,bl:Bވ_gCe^ڰ.v5N|F/l٥Էzpk}jYù`	;HJD0i*qpuc"dԵ?RR7 @"Hn3pYC]x;;*|_[׃1Ost΋s](.YP&eJXJfCR1ck: "+B1y>#Actql槙ӌ\]\G>'~bA4H
1]+vBö(REM5(pw`c+V{S {G`c,Y:!\쓑I'^V+p8+*B\84Mc*kKZXQMO	9V{V{Zj9lZ 
b&*`L݅=	̶]!Bx\X6
=:̊0	Rd|:^W÷Q"q
5QĐZK˂KVڡbH9A7*N2؜F"r${rleg(xLd<Ū-Gؘރ 8fGG~p1Ig;
7V#+Bb^
~~V%$|K=FB.VcGoV=9&7I.EHZsbDaI%HgJEYMpGgtSuuϵs	gbC|Ǽo{C2].3/8Y/to͙oIₕDYpbҘ? .6W2
]718.ԺcmI'*Z: Ksܹтq&bMں*)
]'Vw:a|MS˚Rk/Km );;<|V&LzNvP\o{A0z鏇]%rZ!(
?acܩd*F]-%74kPW9!'O.+k5pBYNƧ٣l:΃։BK~%U#Ifky+e~OD:?\?Fٚ
k3p1T~	t#mv@awr i.Ѻ冦j h/JN'U@׵Vl~'TBMKmh1E7셖%-q==O䕠[{u"ĐAxT뺥k:M&GB%\fb1bY}̈́ uo~lQugr%lPp0^pSAwtfR5nNu>+Ap)c?Ckߣ,`Qܘ_.a:Zgl>/nh^Og2>s4/}u28ϩPѐxQ^kg|ݰ sᶴ{/$gHU'}ܓ0&}v19~b}lqA=xk3_NU/Ѻl!_pL[hġW'q⊂8/0Yk	=Z];oxB9vE}cek/rfFB啊wjCh>bquo,M@
Tp5۱lvXe094M?]
VMy/Vhܣ/򄶿P|"]ڢ]vj1o^g.[^}va|XgvTqz#kcfb-+I{xwt؂9a
JnJمe[>޺P̂;U*H]Q:E/6-]CE0)qG9CPiau/sǖ־Shx(.?o"]p2K8+'Ĳi2e%xf^"wE:].-`,$snS7\q@2U[)-t!ZJZ$4v!8	Mp.	וt<71Px7\\JnG)ЀS?b{1+0
d<kw~zc&[U6
NҩWS&uu &g%àW`BדSQmA$B0jbc[Ҏ"؉Ā.x0Zx-eg>kr|<JJm(R_!XIࡂ9iAגߒJFXXa#x:8.Th\&MX[qZ0X]xcb˒^iVoؘ 02Y1alwڔՋcpovv[+h*1&%64y9ZREN( noמCwX@ZWhN%@k@K_+vHrDɀU?9#npI`_9d6Vn,8QT蓉4>fU;j4.J\n
C, G~2pz)ˣYǾ8-^pCu@w]?-ŷGգHH;1C6
<0F*Y`d)	]
EB]Ml7)1f`:]#y_C(\ZPO "~	hkL(bP/v6Q !Brņw/q(kx]	Ǎ^=Lt4:^Ŭ?$#<"#Fq'$k!mJ~Cࡒ{ށfAVJ'YɪHKK ;']V6ϸU+_=E}-#ev{c29[[Ig>L\`nm {>MpH~\{Sٓ"|oJo$Y+R6{>ń="8!ojdi MSΠd^>eɄc-+Yc)?zL6&N{WQ셁-WFP%&
	s%{{'O4-+/dY:n^>)/j%wzaN_M.{vq&~1_	=P6JjFE;{_1JSpJ(rn
-yH6NYbB8N'p.:mXs2oz&CW\ZWD`ZmǄ7A \4hOlHF[gRZ(嵋ū!lJ	m0a;LoXyUR7pk}ա" D!WN.+^Y/*,_X`R7Ćl6dh\,W͟2|'B@i2f%C'ζ,%np`titY%5#a<mK(ZZs,ԟ76"g#3(Fk8ڂsQm"o*8iC68*9%PemOMf_SN ^_'[Vo6YYϷVկ\K($wS.)lw;ˁVKp~nvZd[{U`o^gCʝxŸK sr:Vrͣ'lE$66:̈́+'ENY~7tƉ?k)sMEVK	8ʥƶCeY< Epo#u)f쒰쑹x-^K	jd@E WAo:/Ѳ?ϗ!E<3]T&_rC	ۤL|J=[tgcBYJd`^V6wQ08հؓ,o0ULi9+Q=wZНMfoڝa7m2w~]wm<9)R.w+]n Q&N;YI +GZm\ÆjLdem~h1lvO^^+{DpV8l$ԓU/@s!&_KeIDQ7˻sl8RuVT_$BHEd嵁x;XJptX-^ȩvɠ$\Dp#7D6ٲEe<*\}j5Bk2J\:$/nۦ%gCsc+
bC㋳sGZ+ۗ[xA	LZ6^AL:'n*eǡ	~lt$?z@iwE 0hk@KM<A{FX]_%/eHp"_IPAw	ƺn厛!q}&>U>GI[c*]hK*FF/60\QcL$ &|GJ^!?6zQ* #
ةp(n]匇(Z8	x)yB^Rӻ%|Ŗ#!xLLgrlIjn 4`?	@Tu	QJ"`u&uCcgD%c󦌺'^s*Z%pyVww7'Q>őlɕp3%6=9K`e28:2D8,	
+9%e҈[0Np4|FQ46H.˸4^ƁFe/ϦTLc^j4"õPTi:ӕrYşMbq[x6CTvZ]5ݦ`VM-u$Uj%M'U<&#uY oy1}$R/_q٩t
82luvz1>%;i0EuRj8JH-J?7),+*|d1|18kjӋ`6'K&`v§Jtl3OW?AA}hӉf[I{N b)("3|K(*U@IbQ>k$c~=Aǡ7ơ0/nt:\@ln>pWt2l,y9ۉ9u;"d"|V	^uV(j/A(DY~|=cjOQ7P3_ܐġBHx"DFNZ+6@V!*^_	F}l핣KG첊՞:[køcx8Tqd5_D0M`3!;.9LfRB\Å.UaE('$: PxtWFܐ>Kf9J&JRh[_H[.ū\viE20"z[ \4~h^WAb?g]	A]pm@	ulU)t:J!2-\J0
Ǝ	ߍCPBl/i+)m q2eֶH_@8n,8<Z-WCjzjU]0.]	Ǭ?9#pb[o8]@SqFտ	\YcL*/hMGBKӡǢ\d7s4-};Qܑ_<)ʉ[B=*_Ӷ[(	+Z	-h\f.&BbgPҷ"E$
fq(Vr'JĚV'"hUPuJJL֒ߊ&d$0J^BBY9MFrY;[K^]h_u6 ͝F;rjA8x#;qǜXI\;?q!򍤕E9&(DP	t^(PBnU,X
/hH_ғBy'ӏs
*e-RڸĀ26\Mw3uBxӎc`y_dp. KŖ1uח"r[pWTxػMtrxz,vrahP
`o*8b\YhOc.+Y?75<q['7]m
P*iS{"^=Gm%GFu*MgуG='*9.C:mNelgSBT{0$谽?1m!l7eXٶe@Ĭ{N4
87䲪sUtZɋ$#yOso6-J;h"DY]v?В3MYs25[{*a͗@o}_.#6f[+t	Ǭw\7q_H]]8A}~nSqK*V2ֿf#R⽇E#j[<LXbֿ	~N`^ybtÆ9Xjf5k
%[=N \{c^^g(jUg?&`&K+˰ cВYyN)*?K폖jrx̓93?>z}*yq$1DHTBd
P8y=WDh~o^k-r늉n.asP7."q.;vu:so(4XuJ}wgDǜvl@K_`_2JX-a8t~3	S&$_+p〼I(wuN]TP>tjǳr!Oؠ%첸4F,j-c9?ZLj2bP~#!doVZ9~tTB$$:gAqIs]o
;mhP1+)q;*xQ%dfU+}$eWexe(hЁBh]>;PDVxF!,067D`fO/]}i/nm!/jUÎ&=.a[̞
e)lR -sVl`+ATꖠ6;)ι,",q\cY$P3{Hr>}lH+6$1(~lAFe	GwHmYTU@/gRPٔ&fU{܅W'wk%$pJk"1DDz]\ޑ_FI!m	PSMs:1 ;Kn#/)x(8S[8BF|%U.x/y([xS}]{4[&(TԍZ''r,欘ލٴt~HLʪk룽U?[C;o/Fg睐F7eVp"pfHH1uaUɣH@b@	)`m4BP/Crg?myGE$cd;6G*G2G^	=I&2Ή;~CYQ{!2PFg@EzfX)7('ڸ
Lmh2+d*teL~rWhU-2XR+R:>_ V=e2l B<#T?",_-\/p>*鑦H])StEax8Y,g eŌjtC]mO8-^^-_F8WGޠ^jK҈
V(Kwtm[mVUro<ʅk	LƾO.MaU 瓷̛;ZHs6Ʈ.7Ra<xq/iQk1!'bl1f};
Z`Ku$8OPAyjDWd>_Fm\t$"<x`j'\.]#u0mϦW!aGɋY{>Oڦ$^%=QWLtmV"aײzo9 F72wl8coqԲi'ܞw}AqB;O(:n$?IJ'3ǮIhEVKPGoD;`0_s3Yc TY3\BQiÉzr֟r޼Άl&>_p8IA
jmeSn>Fi2MgFk1ѐ"ٝb5⬹'Eߴ/F?aB"r]" ƅP`m)$rmWebSen$}r/vo\־SqU29<"ꍅzu+lQcRڸ*4-ԷGQ^tRйl2m/Kf>
$[e¹%:n?O
M:ɬVFQͷ,7Ѻ1A0_J9\gr4=%1ZƓA^k-sUn4']pI$F"ZUH7u'D-65wF;xOQD| 3.WbmT
ti׫p.¹0*!dqV8`.A~1U %$5A|HE"'`uHpbgZQZ="N'#ުÃ9Vl7qP
Q
Ltt5̓͹݀HK6&uaK|:}O	v]n(
GMĦr?q*b$锵;0~f7p~KtEjkbE+pRTZ%3sVyeo(+fYY=ݬiz-tEƣŀ89Z/q2:BK"G&D 
U:Q.NʛxWNՅX@^c65!Xƽ/a_e	wT˴xE^h;zgq,t:d
g	%\Og+^@g+e6&W3mv
=_W0EGCO}KÛtemn➑N Mkf|G.7NL8LgY	ߠ↗Y:\E"1c~?jipE:O-։qf1DMS,:	lQo
Յo/ע q;;	ېAfnC "ܐşwă/&	9r}mӖZHQ	;`==~JH )7%ʊaXZ(HQ@<Jo@ -h2Rqm=atځNQ\hH\-\_m]e49%Q^`eh>vL('giR(8Z`:/fb9鏇,˶bܟt6g`x\OGDw奤_˞zPH[`&)636G.XGA-8\P(>}7 =wZx#.K]˸7Q6~o^	=/l"3ԖG0R7J)VHnml~\g
&؂;@<+/#Y 3 y5DaJlrTJ;(uu#T|cGጵq@*0q|E'IgUc'\%&/pN%/nV/$7&77A,K;G	rPkWFAi8x-k<uY!:8p4,|6Ӕ=pEWhc} %E!|ΐAQZƀsm_(bDqUf)u)p˓;1CcxٻH1=КH[hH(㇪bQXֳR 
b\vV[\.^_QYNzG(8E_(6h~j2/H0v60qR3`d|+ō jב2 Md7ApYiWb.sU6!H9V|$^Rl4;Q&ksNx!+$lxB)°\ë;Paւah]6@p~;ro	3@{Di}84F1",Xz|8˫يY0ޑA	jwv:ο	AEhՐzTA#W%qqzOہX0."υ*h&FDu@')`O#m$:`MU-pިvHU2&FN&G_3P8d΢],')y#׊M1#oK3I0=g׻TE{xFfkXl|%խVZ[0Vhew%JL`oJqG@c[)A{c`Z01iY;PQ˳cnMMbMTR
]tF`TModJJ!)8[^Tے,Ơ@?)Mʕ,b9ٷZD]pyl7 1bb!Hhu4_hm	F\	7q)D^0M%V$)cCڿ|*abg:a\⶛ן:tq1w	B.G*MrۣE7)v^b3<`+Al~%!~cw,1bf;lh;nTlO\ۥ|~Ϗ-&@]&P,fPxc-\T#bE&Wut̆[1W;f{ok*\RqŴ*Rؘ7|{Ncho>[]o"OO7C{xR*BU-L6xC%CDQ2씜p#pfcPKMHu阰PqRN'F]HoS\ŝ7p̮,ar,.D&4s*t
[n{c=Ǆ AK4Ŗ*=|SN-0iK:e;N@Rmp	{Dh'pPph\j{un,SbchPš]$cYp))&t&wK'}  v_9f+MMJ\<3+/)%H^݅c-C8l	hI#ǑYsWT_*6L2^uB-Yୀ^ͅF|BYneVCɡc[R=6~-+T!|vMRFa뱳\Ǘbx`ILqZrE0.^~/RƇd;MZ+XMHB<%)Dbg
  \6q-_K~+('4A)ʰ-*!2JPbN%0:;E
G+tv6ӷ/xxIK<zཱྀ}b5kI1 -BnRcKnw' 	piFBJSQqb;+(1S˚/%hYc$5Wenc	pF/uǑ
VmEmqn|H2+7Goow\P˶d~ U?Hk`ph/vTҋX?ehYa7
f&ӑWcjr	g)ˢ+#2hNQ$}bI>u^uTj^qo$A9J[TtWf[TqPZ+t#uՐk\ Wl.SDE_1aZ}IqXwN$	XeƱR	%x~؍w1n[BXG iް|kmڷxY	iKqsJamHQ^xXϲ i
h^Xܴ#Q ZruvpK =\srqJo8vɿ~8BXPYrƒ.+ѱvdһ"]@O&.Wf)`r>7bn%m`jhcʀ,	\,לzőe7f
q\;OPn3-36I[8͗gpy>睹6s4%lt1Xlz~NE(*tp'r^G.6ŀCK_%7FJ7wˋo_Ɠw~׿+B)0@Ku@︔?3ʶT D|8N9}?bl:cw(&5/e?zkKƜ$ mV+:ڴM\%ep* 5ltH	2Y;oq1J0޼ʅ*].MA
lChR*zVp2}x;i4nu,\kJ&Td {zO+a<`ɘ{PzYmO)kl3l6,p/	F̢;65w[24tUa%D]j!֡Q@IuѲ7܄ZרJٺP>/%u,6KLǍ+y饶ncB1/&l.&iev?9-_	%QY!8Q#Ed6dS~؝<Py?%e{eZ65b]Ǽi9*c קpVB{7V(j8 
rX\DFN6$8H8'g`c/#rL:TE↝ /Ktv?mD\?_|M,rYEs|@3&` 1DGH\9DW6P*
ð}0c^]Jk?{DbQgt-hKPCA4+'idoVnm^?돗,Z3kElq6	!	XұpH; ,.jEIb5^m!\]=#0Kdn&g5	a I:1sm?c-+VBS}¾iʋjݨ{OCDcwG!8ز.:Γ1xQ	;'llEN0+PwDQ*&ŵPNd㧹9*qq9)}M>9M##Q9+cG|q%M,'WtyNȳ/z䗳\I]pRp .WF:#vOs*jqYhva1xLI<ɭ¬2s]sF`آ
H
1RiF4CܕYmGE!!NHC$[.qڮ.@eh5=M*(nV>uNVp^jH`7KS{V{vY-6rpWmO#W0Wq/ӂK	͟cPms>ge~mGGM7*
^;
J ,ƙhmxXN;Jh(5SҠD!),OWObysCXbVtENi	$
ń=@:<YeiY~$_VzG͆ʠ3Hg*n.ru=/
^ķdր*	 V4GцF44n)^Awqu}MS]Ie^Ѥ_xmiCV1:+A"CpOmucq|dBr!Q:Ig܎s4\l:f% ,c:܃y9SQP+Kr,ۍNs鄵qoZ[aIߠH$bb&5fR}*Qu
r.CkѲ5M/.%,:1<'&+#nD(g|(id`5m1:хVI}6 lgbʡ$OBE5L!^˶41zbmل3S\D뭼)a!am,بH7r
ظHEnS9ٹ6+N\2](QY0ESbklOpeb([&\Vg{ABohw8B[̋5?nO-Pp2ozU``wT|׊Ů~=oV/|3)*=X{dfڵp}ߣ1ڜ0BU8!"#>ABՆ%j*7ؗmm!c. ))d2f̖úzOchg`:F%K CE&^7o>ō8,[yN\"	UFZdAlaD
t-!E"|M@;"y-P;M{jE׽I;|vԔ`&?=Xd9#kWNO3_o7v)~K+x6}FS龏i`.5џ~_Qx]|%?u/Oϯry2|:~KJIHkx`N/qsMP*ܵYERE|Ir,މfU	pD@(|FnUl+d)wq
*=$,RAlYKN]lK|CٲjzmSʰ^|}N8l:ݳ?]2e%soKa8	y%h8XK+o.AQM\cf|&'7gGOYpܱewƹ\AiZ&.m	P:@|ruP[o{I2/ erT`:/fb9鏇-<\s9go?݀͆p2-ʐ*aҎ)//a`v=?CXҞ._zXWkp`.<G.0~>Nyjas;?Ӗɱ7d6Hѥ5g5ybxHfz~M:lY!9D7V&D6~Fi1Uhv/H QE}qM[/zSɞ4"F]2%wiEM:{>+0
$J
$aZwj)	[ͽ.̶qv`}הvBnL6B"*@:mt|؝pS:Q`-;>1%F3o!}hP)N\B\q JX+4E$!D!ţ=fWŋB_Qx)kȥ%{ɍ~D*ևSY!P6WڸC8-buxau!ʸь[Nb5Wݘ[.dc %=0\LLKMP1r[pWTd/"}iovZ
(eUP|a`E+0#~CK`^UU'vK4a!s
+Y"6(h{W\
3Ρes| W(k#6)qKT~e,QDDϮwٲDdtK.}E-^\%
Ʋ^_+-SDk;D!~
N#Z2 o '=M/ws.b\,Wa}&iunBW8C1Lp<;@,Rs".A!.waS/+=\JI\D͠jp4.qN-|q3Oew/>}t|P|"΄7޲%qb>ŠäyyaPq?@8naN%2/?=\_'#Y-hz)QV:]T3	MedZ7Oྀ&ޓxiv.y$l)(hAq6 D#ny$(Ӱ:-,Q+7x1G+nb$)CHr%ȍbtjH~2Pr7(Q9:/fp;xr&ɝT\`vak(y\i-nx}cCBtvL!ϩ_1JhKg:mlɜ^o>6#3qЪ/'RBqtzޞ~YEL)*k7pop\M-ġP@SMXF8hF?B礆{S_"84h3v>/^Lث[F=E%Ͳ
6`Jc;I,r);FQ9P3^rI'K4#y/ء+6R]nJIl?κl:agp1d|?& ^V"LM|,Kʌpp:smj%e.jY?vWpqiۖ+/˫pLa<kw	`r	P$s}ݮt4\ڟxخ;Q=}7q:MnZ9+np<M$LkoYqAr%lmAmb<-I؝jsg'CN
Pq6L(V,س?R9Ĺoml>aLiV Pl]_6BA>ԓS5Nv[WppD={?A	ݠ_1Fz9^Gjg1K;|;vC6,]y^)MuF{V9$'\5`~i C#jK<+ ,[TFYW*މ9b;x(J.I72qDj[<[>9oveOխah<ӡlKb֞Ab6'끏^:ؤ|LZH umRj[="Y^&
@IYe;%pmB}|IPb颥!ÏMF#Լ7'Vԝʭ~l|ZWrQY(ۆWܑ]A(}X7Uӎ$3`.:yʭDt.v'-w/e&)z7tgH-tl&u\jT-l ^IFJNw4r;p3opq&嶀o3W%Adrg:6,d»g<.W#lexQmMUEE 6l¥/Q":;v-~l7$ TZ3iӡ9l./K*{uv@Շ3%*r!\
1ʊrrM:kxߧsavY*fgHvQ׵VؘTHqqOzUDm	ٛ.UaaLZJh`"0bxcv5_Ϩ8GVdD0KKmaJ	~vf |o2e%pv1H\r g\<׬:!Ym֯jAsCQBE2"L`5H^Cԫp ;݌6y8k[C	:[΋p`r{?~zW-<A.PKC=  ~ PK  kC               layout-cachecd`d(a``e`X
d1#qؐ89 PK*C   0   PK  kC               manifest.rdf͓n0<e@/r(ʹj5X/޾VQF3ߎaȋT4c)%Hh+:.:ض+j*wn*9_-7lϳ(x<O"8qHƴ	Bi|9	fWQt렐y =:
aR @	LʄtNK3Q9`Ӄ<`+ވ^཰\|hzczu#`2O;y.⯴vDl@ΣgUGPKh    PK    kC               Configurations2/images/Bitmaps/PK    kC               Configurations2/popupmenu/PK    kC               Configurations2/toolpanel/PK    kC               Configurations2/statusbar/PK    kC               Configurations2/progressbar/PK    kC               Configurations2/toolbar/PK    kC               Configurations2/menubar/PK  kC            '   Configurations2/accelerator/current.xml PK           PK    kC               Configurations2/floater/PK  kC            
   styles.xml\m۸_!(h?U$pK$wHЏZm6(Pz_!)JL"	r3pH/wybVZ\$=\$4%m0yt"	^4s\Wt."^5+UZ(Ղ'ZBwZ9j\Kf7wܵEK%;ehYfu|We	K@_b:nlBz]]]M%U8iʚe+M8bjM1G	^SΗ9C8ڳjuv41gߐ}RwRof&G >~|c	T	#4ٟRڪ*:*Սl~7ٷp {E6Ѐ/Gojn&&=*|pIoY(@'n׆TͺfijeufSXj-~/r6 2"8uCNOl$]Pe6h]$`h w%fDP&-zzkf穠"6CicKWzYQ{V(AzRōS_?{|>.֑AЬ9v?PIT?=Ev|z9-hỤ02ς_Lb6%,1AߐQG3: }^Oq
ڒ:kZ30ð9(ȊKIx[ŊB7`IWYǿE T^I܈2s-QhC-bAv4G]FNMǢwӮz)^:kZr蚡rC_6%=q.'&WqFbH
3
Y9Z+e-2Z%@YDr)h ~oTm Vw~8%98 ,SS̷bR>+,RX-23ǖMTՆs!	wlIӮ}bXQVn/X2"	2
Dx3eϧHb9(pвN7v.ޛM]a@F7""+4˶idCgo?f"Bnihڷ44}y-uC2[O~Yoc񜥬2הKԇ	ZO0&7B>t#m]M`n4ZϰiJUYR)=D80dJCSWˀ5Qn~l`s@__8D2f@=knTev3FU/r3nAhn0y>@ 1 1Pl]]ےr.Zlk4x%)l0܃sS.-QjZ-
l2X4zhE%RZy/;As8ǰwcJP!K sF=Cee=͒2zx{;y>v[JZźd}\Uo储ڵ")rnv"*ڜwkJP7aӣɕUwXmnVxSVpD[Kqx}LtϮ%7_@`i:>kFٶjXҬ)`ldaF/MmS-rHyJ &rk$7SIcSC:>=FNOV
j|̖nGc~j2T>p "eB6Epx&VD/*3{Ndrz'bYT,dQe[q?guhzحSGFX}zChe(vHk׸q;Op-8Ktl=k;>  OTA6#=4b[Wv[w|ԫ8ìH8;r6)ewaX"6L8}y؞c-KF%tH:"kpMьԕO(uњ%lX((dp`ϗ\ba| Ҝ:˔Օߌ7߬{oJ>ηqF:w6d?O(op-#-*e *}ykZ_]bjAI!z$M}XuMig{aNwzN#KwCgfA+W	7"e6!-W=AtwFo~X KXtJmZQ̽vd<2	ċ]KkCØO~!@9x{i;`id2K-wZ7ץ۠]/~`Rsӄg뤁:#B:хiCZ3C:%pO3<>V'G!}y9AV'GY!O};4)=5ɑ|fHsvhRH+#=fHôA|]3j2 Z(|VP&}?4)=5!PI&~[k&6{-!hk3EX})pj+uuMAbWPt؆PPW]>it(64R$L~,?)"EA&IMP	<Kw`^qcGiPfñ-פ@4rt  (#Ԕq7#<YJyj<9 Gw\D<a~U`	xC%K~)<h6{T\l)'PamwݵFnf=ٍ|7,g/~T_f]뚉λrPQc $ӟn!GU+iNF;=&M?Cyw#2ff
1_PKrT  rG  PK  kC               META-INF/manifest.xmlSAN0(6pBV*xlZK:U{
h%7z=3;7ۓwcZ EdBoiߊחIlM쀉*(}ȑtd&4F>X3S.uX8U^vP[y0"_g	Y2X5ddU	&{2f	菞Lݭ^chQ1谔!*cۺq-m4KJs2`<9\F;PK    PK     kC^2'   '                    mimetypePK   kCȓ̛  B               M   meta.xmlPK   kC`?  &                 settings.xmlPK   kCC=  ~              1  content.xmlPK   kC*C   0                  layout-cachePK   kCh                   manifest.rdfPK     kC                         >  Configurations2/images/Bitmaps/PK     kC                         {  Configurations2/popupmenu/PK     kC                           Configurations2/toolpanel/PK     kC                           Configurations2/statusbar/PK     kC                         #  Configurations2/progressbar/PK     kC                         ]  Configurations2/toolbar/PK     kC                           Configurations2/menubar/PK   kC           '             ɭ  Configurations2/accelerator/current.xmlPK     kC                            Configurations2/floater/PK   kCrT  rG  
             V  styles.xmlPK   kC                   META-INF/manifest.xmlPK      d  3    # Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

# Note that TinkerPop does not include Neo4j dependencies in its
# distributions. This file cannot be used as a configuration file to 
# Gremlin Server unless Neo4j dependencies are installed on the 
# Gremlin Server path with:
#
# bin/gremlin-server.sh -i org.apache.tinkerpop neo4j-gremlin x.y.z
# 
# Note that unless under a commercial agreement with Neo Technology, 
# Neo4j is licensed AGPL. 

host: localhost
port: 8182
scriptEvaluationTimeout: 300000
channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
graphs: {
  graph: conf/exakat.properties}
plugins:
  - tinkerpop.neo4j
scriptEngines: {
  gremlin-groovy: {
    imports: [java.lang.Math],
    staticImports: [java.lang.Math.PI],
    scripts: [scripts/empty-sample.groovy]}}
serializers:
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0, config: { useMapperFromGraph: graph }}            # application/vnd.gremlin-v1.0+gryo
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoLiteMessageSerializerV1d0, config: { useMapperFromGraph: graph }}        # application/vnd.gremlin-v1.0+gryo-lite
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0, config: { serializeResultToString: true }}        # application/vnd.gremlin-v1.0+gryo-stringd
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV1d0, config: { useMapperFromGraph: graph }} # application/vnd.gremlin-v1.0+json
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV2d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV2d0] }} # application/vnd.gremlin-v2.0+json
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0, config: { useMapperFromGraph: graph }}        # application/json
processors:
  - { className: org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor, config: { sessionTimeout: 28800000 }}
  - { className: org.apache.tinkerpop.gremlin.server.op.traversal.TraversalOpProcessor, config: { cacheExpirationTime: 600000, cacheMaxSize: 1000 }}
metrics: {
  consoleReporter: {enabled: true, interval: 180000},
  csvReporter: {enabled: true, interval: 180000, fileName: /tmp/gremlin-server-metrics.csv},
  jmxReporter: {enabled: true},
  slf4jReporter: {enabled: true, interval: 180000},
  gangliaReporter: {enabled: false, interval: 180000, addressingMode: MULTICAST},
  graphiteReporter: {enabled: false, interval: 180000}}
strictTransactionManagement: false
maxInitialLineLength: 4096
maxHeaderSize: 8192
maxChunkSize: 8192
maxContentLength: 81928192
maxAccumulationBufferComponents: 1024
resultIterationBatchSize: 64
writeBufferLowWaterMark: 32768
writeBufferHighWaterMark: 81928192
ssl: {
  enabled: false}
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#  http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

# This is a sample configuration file for Neo4j.  Note that
# TinkerPop does not include Neo4j dependencies in its
# distributions.  To use this file, please ensure that Neo4j
# dependencies are installed into Gremlin Server's path
# with:
#
# gremlin-server.sh -i org.apache.tinkerpop neo4j-gremlin 3.y.z
#
# Note that unless under a commercial agreement with Neo4j, Inc.,
# Neo4j is licensed AGPL.


gremlin.graph=org.apache.tinkerpop.gremlin.neo4j.structure.Neo4jGraph
gremlin.neo4j.directory=db/neo4j
gremlin.neo4j.conf.dbms.auto_index.nodes.enabled=true
#gremlin.neo4j.conf.dbms.auto_index.nodes.keys=
gremlin.neo4j.conf.dbms.auto_index.relationships.enabled=true
#gremlin.neo4j.conf.dbms.auto_index.relationships.keys=
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

# Note that TinkerPop does not include Neo4j dependencies in its
# distributions. This file cannot be used as a configuration file to 
# Gremlin Server unless Neo4j dependencies are installed on the 
# Gremlin Server path with:
#
# bin/gremlin-server.sh -i org.apache.tinkerpop neo4j-gremlin x.y.z
# 
# Note that unless under a commercial agreement with Neo Technology, 
# Neo4j is licensed AGPL. 

host: localhost
port: 8182
scriptEvaluationTimeout: 300000
channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
graphs: {
  graph: conf/exakat.properties}
scriptEngines: {
  gremlin-groovy: {
    plugins: { org.apache.tinkerpop.gremlin.server.jsr223.GremlinServerGremlinPlugin: {},
               org.apache.tinkerpop.gremlin.tinkergraph.jsr223.TinkerGraphGremlinPlugin: {},
               org.apache.tinkerpop.gremlin.jsr223.ImportGremlinPlugin: {classImports: [java.lang.Math], methodImports: [java.lang.Math#*]},
               org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {files: [scripts/empty-sample.groovy]}}}}
serializers:
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV1d0]  }}        # application/json
processors:
  - { className: org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor, config: { sessionTimeout: 28800000 }}
  - { className: org.apache.tinkerpop.gremlin.server.op.traversal.TraversalOpProcessor, config: { cacheExpirationTime: 600000, cacheMaxSize: 1000 }}
metrics: {
  consoleReporter: {enabled: true, interval: 180000},
  csvReporter: {enabled: true, interval: 180000, fileName: /tmp/gremlin-server-metrics.csv},
  jmxReporter: {enabled: true},
  slf4jReporter: {enabled: true, interval: 180000},
  gangliaReporter: {enabled: false, interval: 180000, addressingMode: MULTICAST},
  graphiteReporter: {enabled: false, interval: 180000}}
strictTransactionManagement: false
maxInitialLineLength: 4096
maxHeaderSize: 8192
maxChunkSize: 8192
maxContentLength: 81928192
maxAccumulationBufferComponents: 1024
resultIterationBatchSize: 64
writeBufferLowWaterMark: 32768
writeBufferHighWaterMark: 81928192
ssl: {
  enabled: false}
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

# Note that TinkerPop does not include Neo4j dependencies in its
# distributions. This file cannot be used as a configuration file to 
# Gremlin Server unless Neo4j dependencies are installed on the 
# Gremlin Server path with:
#
# bin/gremlin-server.sh -i org.apache.tinkerpop neo4j-gremlin x.y.z
# 
# Note that unless under a commercial agreement with Neo Technology, 
# Neo4j is licensed AGPL. 

host: localhost
port: 8182
scriptEvaluationTimeout: 300000
channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
graphs: {
  graph: conf/exakat.properties}
scriptEngines: {
  gremlin-groovy: {
    plugins: { org.apache.tinkerpop.gremlin.server.jsr223.GremlinServerGremlinPlugin: {},
               org.apache.tinkerpop.gremlin.tinkergraph.jsr223.TinkerGraphGremlinPlugin: {},
               org.apache.tinkerpop.gremlin.jsr223.ImportGremlinPlugin: {classImports: [java.lang.Math], methodImports: [java.lang.Math#*]},
               org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {files: [scripts/empty-sample.groovy]}}}}
serializers:
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV1d0]  }}        # application/json
processors:
  - { className: org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor, config: { sessionTimeout: 28800000 }}
  - { className: org.apache.tinkerpop.gremlin.server.op.traversal.TraversalOpProcessor, config: { cacheExpirationTime: 600000, cacheMaxSize: 1000 }}
metrics: {
  consoleReporter: {enabled: true, interval: 180000},
  csvReporter: {enabled: true, interval: 180000, fileName: /tmp/gremlin-server-metrics.csv},
  jmxReporter: {enabled: true},
  slf4jReporter: {enabled: true, interval: 180000},
  gangliaReporter: {enabled: false, interval: 180000, addressingMode: MULTICAST},
  graphiteReporter: {enabled: false, interval: 180000}}
strictTransactionManagement: false
maxInitialLineLength: 4096
maxHeaderSize: 8192
maxChunkSize: 8192
maxContentLength: 81928192
maxAccumulationBufferComponents: 1024
resultIterationBatchSize: 64
writeBufferLowWaterMark: 32768
writeBufferHighWaterMark: 81928192
ssl: {
  enabled: false}
#!/bin/bash
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#

### BEGIN INIT INFO
# Provides:          gremlin-server
# Required-Start:    $remote_fs $syslog $network
# Required-Stop:     $remote_fs $syslog $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Gremlin Server
# Description:       Apache Tinkerpop Gremlin Server
# chkconfig:         2345 98 01
### END INIT INFO

[[ -n "$DEBUG" ]] && set -x

SOURCE="$0"
while [[ -h "$SOURCE" ]]; do
  cd -P "$( dirname "$SOURCE" )" || exit 1
  DIR="$(pwd)"
  SOURCE="$(readlink "$SOURCE")"
  [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE"
done
cd -P "$( dirname "$SOURCE" )" || exit 1
GREMLIN_BIN="$(pwd)"

GREMLIN_CONF=$GREMLIN_BIN/gremlin-server.conf

[[ -r $GREMLIN_CONF ]] && source $GREMLIN_CONF
[[ -n "$DEBUG" ]] && set -x

if [[ -z "$GREMLIN_HOME" ]]; then
  cd ..
  GREMLIN_HOME="$(pwd)"
fi

if [[ -z "$LOG_DIR" ]] ; then
  LOG_DIR="$GREMLIN_HOME/logs"
fi

if [[ -z "$LOG_FILE" ]]; then
  LOG_FILE="$LOG_DIR/gremlin.log"
fi

if [[ -z "$PID_DIR" ]] ; then
  PID_DIR="$GREMLIN_HOME/run"
fi

if [[ -z "$PID_FILE" ]]; then
  PID_FILE=$PID_DIR/gremlin.pid
fi

if [[ -z "$GREMLIN_YAML" ]]; then
  GREMLIN_YAML=$GREMLIN_HOME/conf/gremlin-server.yaml
fi

if [[ ! -r "$GREMLIN_YAML" ]]; then
  # try relative to home
  GREMLIN_YAML="$GREMLIN_HOME/$GREMLIN_YAML"
  if [[ ! -r "$GREMLIN_YAML" ]]; then
    echo WARNING: $GREMLIN_YAML is unreadable
  fi
fi

# absolute file path requires 'file:'
LOG4J_CONF="file:$GREMLIN_HOME/conf/log4j-server.properties"

# Find Java
if [[ "$JAVA_HOME" = "" ]] ; then
    JAVA="java"
else
    JAVA="$JAVA_HOME/bin/java"
fi

# Set Java options
if [[ "$JAVA_OPTIONS" = "" ]] ; then
    JAVA_OPTIONS="-Xms32m -Xmx512m"
fi

# Build Java CLASSPATH
CP="$GREMLIN_HOME/conf/"
CP="$CP":$( echo $GREMLIN_HOME/lib/*.jar . | sed 's/ /:/g')
CP="$CP":$( find -L "$GREMLIN_HOME"/ext -mindepth 1 -maxdepth 1 -type d | \
        sort | sed 's/$/\/plugin\/*/' | tr '\n' ':' )

CLASSPATH="${CLASSPATH:-}:$CP"

GREMLIN_SERVER_CMD=org.apache.tinkerpop.gremlin.server.GremlinServer
GREMLIN_INSTALL_CMD=org.apache.tinkerpop.gremlin.server.util.GremlinServerInstall


isRunning() {
  if [[ -r "$PID_FILE" ]] ; then
    PID=$(cat "$PID_FILE")
    ps -p "$PID" &> /dev/null
    return $?
  else
    return 1
  fi
}

status() {
  isRunning
  RUNNING=$?
    if [[ $RUNNING -gt 0 ]]; then
      echo Server not running
    else
      echo Server running with PID $(cat "$PID_FILE")
    fi
}

stop() {
  isRunning
  RUNNING=$?
  if [[ $RUNNING -gt 0 ]]; then
    echo Server not running
    rm -f "$PID_FILE"
  else
    kill "$PID" &> /dev/null || { echo "Unable to kill server [$PID]"; exit 1; }
    for i in $(seq 1 60); do
      ps -p "$PID" &> /dev/null || { echo "Server stopped [$PID]"; rm -f "$PID_FILE"; return 0; }
      [[ $i -eq 30 ]] && kill "$PID" &> /dev/null
      sleep 1
    done
    echo "Unable to kill server [$PID]";
    exit 1;
  fi
}

start() {
  isRunning
  RUNNING=$?
  if [[ $RUNNING -eq 0 ]]; then
    echo Server already running with PID $(cat "$PID_FILE").
    exit 1
  fi

  if [[ -z "$RUNAS" ]]; then

    mkdir -p "$LOG_DIR" &>/dev/null
    if [[ ! -d "$LOG_DIR" ]]; then
      echo ERROR: LOG_DIR $LOG_DIR does not exist and could not be created.
      exit 1
    fi

    mkdir -p "$PID_DIR" &>/dev/null
    if [[ ! -d "$PID_DIR" ]]; then
      echo ERROR: PID_DIR $PID_DIR does not exist and could not be created.
      exit 1
    fi

    $JAVA -Dlog4j.configuration=$LOG4J_CONF $JAVA_OPTIONS -cp $CP:$CLASSPATH $GREMLIN_SERVER_CMD "$GREMLIN_YAML" >> "$LOG_FILE" 2>&1 &
    PID=$!
    disown $PID
    echo $PID > "$PID_FILE"
  else

    su -c "mkdir -p $LOG_DIR &>/dev/null"  "$RUNAS"
    if [[ ! -d "$LOG_DIR" ]]; then
      echo ERROR: LOG_DIR $LOG_DIR does not exist and could not be created.
      exit 1
    fi

    su -c "mkdir -p $PID_DIR &>/dev/null"  "$RUNAS"
    if [[ ! -d "$PID_DIR" ]]; then
      echo ERROR: PID_DIR $PID_DIR does not exist and could not be created.
      exit 1
    fi

    su -c "$JAVA -Dlog4j.configuration=$LOG4J_CONF $JAVA_OPTIONS -cp $CP:$CLASSPATH $GREMLIN_SERVER_CMD \"$GREMLIN_YAML\" >> \"$LOG_FILE\" 2>&1 & echo \$! "  "$RUNAS" > "$PID_FILE"
    chown "$RUNAS" "$PID_FILE"
  fi

  isRunning
  RUNNING=$?
  if [[ $RUNNING -eq 0 ]]; then
    echo Server started $(cat "$PID_FILE").
    exit 0
  else
    echo Server failed
    exit 1
  fi

}

startForeground() {
  isRunning
  RUNNING=$?
  if [[ $RUNNING -eq 0 ]]; then
    echo Server already running with PID $(cat "$PID_FILE").
    exit 1
  fi

  if [[ -z "$RUNAS" ]]; then
    $JAVA -Dlog4j.configuration=$LOG4J_CONF $JAVA_OPTIONS -cp $CP:$CLASSPATH $GREMLIN_SERVER_CMD "$GREMLIN_YAML"
    exit 0
  else
    echo Starting in foreground not supported with RUNAS
    exit 1
  fi

}

install() {

  isRunning
  RUNNING=$?
  if [[ $RUNNING -eq 0 ]]; then
    echo Server must be stopped before installing.
    exit 1
  fi

  echo Installing dependency $@

  DEPS="$@"
  if [[ -z "$RUNAS" ]]; then
    $JAVA -Dlog4j.configuration=$LOG4J_CONF $JAVA_OPTIONS -cp $CP:$CLASSPATH  $GREMLIN_INSTALL_CMD $DEPS
  else
    su -c "$JAVA -Dlog4j.configuration=$LOG4J_CONF $JAVA_OPTIONS -cp $CP:$CLASSPATH $GREMLIN_INSTALL_CMD $DEPS "  "$RUNAS"
  fi

}

case "$1" in
  status)
    if [[ -n "$1" ]] ; then
      if [[ -r "$1" ]]; then
        GREMLIN_YAML="$1"
      fi
    fi
    status
    ;;
  restart)
    stop
    start
    ;;
  start)
    start
    ;;
  stop)
    stop
    ;;
  -i)
    shift
    echo "Redirecting to 'install $@' (-i will be removed in a future release)"
    install "$@"
    ;;
  install)
    shift
    install "$@"
    ;;
  console)
    startForeground
    ;;
  *)
    if [[ -n "$1" ]] ; then
      if [[ -r "$1" ]]; then
        GREMLIN_YAML="$1"
        startForeground
      elif [[ -r "$GREMLIN_HOME/$1" ]] ; then
        GREMLIN_YAML="$GREMLIN_HOME/$1"
        startForeground
      fi
      echo Configuration file not found.
    fi
    echo "Usage: $0 {start|stop|restart|status|console|install <group> <artifact> <version>|<conf file>}"; exit 1;
    ;;
esac
<?php

$php = $argv[1];
$project_dir = $argv[2];
$tmpFileName = $argv[3];

$shell = "cd '{$project_dir}/code'; cat '$tmpFileName' | xargs -n1 -P2 {$php} -d error_reporting=-1 -d short_open_tag=0 -r \"echo count(token_get_all(file_get_contents(\\\$argv[1]))).\\\" \\\$argv[1]\n\\\";\" 2>>/dev/null ";

$resultNosot = shell_exec($shell) ?? '';
$tokens = (int) array_sum(explode("\n", $resultNosot));

$shell = "cd '{$project_dir}/code'; cat '$tmpFileName' | xargs -n1 -P2 {$php} -d error_reporting=0 -d short_open_tag=1 -r \"\\\$code = file_get_contents(\\\$argv[1]); echo substr_count(\\\$code, PHP_EOL).' '.count(token_get_all(\\\$code)).\\\" \\\$argv[1]\n\\\";\" 2>>/dev/null ";

$resultSot = shell_exec($shell) ?? '';
$details = explode("\n", trim($resultSot));
$details = array_map(function (string $x) { return explode(' ', $x);}, $details);
$tokenssot = (int) array_sum(array_column($details, 1));
$loc = (int) array_sum(array_column($details, 0));

$forStorage = array('REPLACE INTO hash  ("key", "value") VALUES ("tokens", '.$tokens.'),  ("loc", '.$loc.')');
// Short Open Tags always have more tokens than not-short open tags ones, unless they are identical.
if ($tokenssot === $tokens) {
    storeResults($project_dir, $forStorage);
    die();
}

$nosot = explode("\n", trim($resultNosot));
$nosot2 = array();
foreach($nosot as $value) {
    if (strpos($value, ' ') === false) {
        continue;
    }
    list($count, $file) = explode(' ', $value);
    $nosot2[$file] = $count;
}
$nosot = $nosot2;
unset($nosot2);

$sot = explode("\n", trim($resultSot));
$sot2 = array();
foreach($sot as $value) {
    list($count, $file) = explode(' ', $value);
    $sot2[$file] = $count;
}
$sot = $sot2;
unset($sot2);

if (count($nosot) === count($sot)) {
    foreach($nosot as $file => $countNoSot) {
        if ($sot[$file] !== $countNoSot) {
            $file = trim($file, '.');
            $forStorage[] = 'INSERT INTO shortopentag ("id", "file") VALUES (NULL, \''.sqlite3::escapeString(trim($file, '.')).'\')';
        }
    }
}

storeResult($project_dir, $forStorage);

function storeResults($project_dir, array $list) {
    $id = dechex(random_int(0, \PHP_INT_MAX));
    file_put_contents($project_dir.'/.exakat/dump-'.$id.'.php', '<?php $queries = '.var_export($list, true).'; ?>');
}
?>; use tinkergraph or gsneo4j
graphdb = '{GRAPHDB}';

; location of tinkergraph host, with Graphson V1
;tinkergraph_host     = '127.0.0.1';
;tinkergraph_port     = '8182';
;tinkergraph_folder   = 'tinkergraph';

; location of tinkergraph host, using Neo4J plugin and Graphson V1
;gsneo4j_host     = '127.0.0.1';
;gsneo4j_port     = '8182';
;gsneo4j_folder   = 'tinkergraph';

; location of tinkergraph host, with Graphson V3
;tinkergraphv3_host     = '127.0.0.1';
;tinkergraphv3_port     = '8182';
;tinkergraphv3_folder   = 'tinkergraph';

; location of tinkergraph host, using Neo4J plugin and Graphson V3
;gsneo4jv3_host     = '127.0.0.1';
;gsneo4jv3_port     = '8182';
;gsneo4jv3_folder   = 'tinkergraph';


; where is janusgraph host (alpha stage, use with caution)
;janusgraph_host     = '127.0.0.1';
;janusgraph_port     = '8182';
;janusgraph_folder   = 'janusgraph';

;php52 = 
;php53 = 
;php54 = 
;php55 = /usr/local/sbin/php55
;php56 = /usr/local/sbin/php56
;php70 = /usr/local/sbin/php70
;php71 = /usr/local/sbin/php71
;php72 = /usr/local/sbin/php72
;php73 = /usr/local/sbin/php73
php{VERSION} = {VERSION_PATH}

token_limit = 1000000000

; Default themes to run
project_rulesets[] = 'CompatibilityPHP53';
project_rulesets[] = 'CompatibilityPHP54';
project_rulesets[] = 'CompatibilityPHP55';
project_rulesets[] = 'CompatibilityPHP56';
project_rulesets[] = 'CompatibilityPHP70';
project_rulesets[] = 'CompatibilityPHP71';
project_rulesets[] = 'CompatibilityPHP72';
project_rulesets[] = 'Analyze';
project_rulesets[] = 'Preferences';
project_rulesets[] = 'Appinfo';
project_rulesets[] = 'Appcontent';
project_rulesets[] = '"Dead code"';
project_rulesets[] = 'Security';
project_rulesets[] = 'Custom';

; Default reports to generate
project_reports[] = 'Ambassador';


; where is neo4j host
;neo4j_host     = '127.0.0.1';
;neo4j_port     = '7777';
;neo4j_folder   = 'neo4j';
;neo4j_login    = 'neo4j';
;neo4j_password = 'oui';
   Bud1                                                                      o 4 jbwspbl                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          @                                              @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  g s n e o 4 jbwspblob   bplist00		]ShowStatusBar[ShowPathbar[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar			_{{-1325, 415}, {770, 436}}	%1=I`myz{|}~                                g s n e o 4 jdsclbool    g s n e o 4 jvSrnlong      	 g s n e o 4 j v 3bwspblob   bplist00		]ShowStatusBar[ShowPathbar[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar			_{{-1325, 415}, {770, 436}}	%1=I`myz{|}~                               	 g s n e o 4 j v 3vSrnlong       t i n k e r g r a p hbwspblob   bplist00		]ShowStatusBar[ShowPathbar[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar			_{{-1325, 415}, {770, 436}}	%1=I`myz{|}~                                t i n k e r g r a p hdsclbool    t i n k e r g r a p hvSrnlong       t i n k e r g r a p h v 3bwspblob   bplist00		]ShowStatusBar[ShowPathbar[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar			_{{-1325, 415}, {770, 436}}	%1=I`myz{|}~                                t i n k e r g r a p h v 3dsclbool    t i n k e r g r a p h v 3vSrnlong                                        @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   E                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         DSDB                                 `                                                  @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              <?php
                $dumpConfig = $this->config->duplicate(array('update'               => true,
                                                             'project_rulesets'     => array($ruleset),
                                                             'load_dump'            => true,
                                                             'verbose'              => false,
                                                             ));

    shell_exec();


?><?php

const PIPEFILE = '/tmp/queue.exakat';

$initTime = microtime(true);

$commands = explode('/', parse_url($_SERVER["REQUEST_URI"], PHP_URL_PATH));
unset($commands[0]);
$command = array_shift($commands);

$orders = array('stop', 

                'init', 
                'project', 
                'update', 
                'report', 
                'fetch', 

                'onepage', 
                'status', 
                'list', 
                'stop', 
                'config', 
                'queue',
                );

if (!in_array($command, $orders)) {
    serverLog("unknown command : $command");
    die( 'Exakat server (unknown command)');
}

$command($commands);

$endTime = microtime(true);
serverLog(substr($command."\t".floor(1000*($endTime - $initTime))."\t".implode("\t", $commands), 0, 256));
//End script

/// Function definitions

function stop($args) {
    serverLog("Shutting down\n");
    $pid = getmypid();
    echo "<p>Shutting down server (pid : $pid)</p>";
    ob_flush();

    unlink(__FILE__);

    exec('kill '.getmypid());
    // This is killed.
}

function init($args) {
    if (isset($_REQUEST['project'])) {
        $project = preg_replace('/[^a-zA-Z0-9-_]/', '', $_REQUEST['project']);
        if (empty($project)) {
            $project = '';
        } elseif (file_exists(__DIR__.'/'.$project)) {
            error('Project already exists', $project);
        }
    } else {
        $project = '';
    }
    
    if (isset($_REQUEST['vcs'])) {
        $url = parse_url($_REQUEST['vcs']);
        if (!isset($url['scheme'], $url['host'], $url['path'])) {
            error('Malformed VCS', '');
        }
        
        $pass = '';
        if (!empty($url['user'])) {
            $pass .= escapeshellarg($url['user']).':'.(isset($url['pass']) ? escapeshellarg($url['pass']) : '').'@';
        }
        $vcs = $url['scheme'].'://'.
               $pass.
               $url['host'].
               (!empty($url['port']) ? ':'.$url['port'] : '').
               $url['path'];
        
        if (empty($project)) {
            $project = autoprojectname();
        }

        shell_exec('__PHP__ __EXAKAT__ init -p '.$project.' -R '.$vcs);
    } elseif (isset($_REQUEST['code'])) {
        $php = $_REQUEST['code'];
        if (strpos($php, '<?php') === false) {
            error('Invalide code', '');
        }

        if (empty($project)) {
            $project = autoOnagepageName();
        }
        
        file_put_contents(__DIR__.'/onepage/code/'.$project.'.php', $php);
        shell_exec('__PHP__ __EXAKAT__ queue -f '.$project);
    } else {
        error('Missing Onepage/code', '');
    }

    echo json_encode(compact('project'));
}

function update($args) {
    if (isset($_REQUEST['project'])) {
        $project = preg_replace('/[^a-zA-Z0-9-_]/', '', $_REQUEST['project']);
        if (empty($project)) {
            error('Missing project', '');
        }

        if (!file_exists(__DIR__.'/'.$project)) {
            error('No such project', $project);
        }
    } else {
        error('No such project', '');
    }

    shell_exec('__PHP__ __EXAKAT__ update -p '.$project);
    echo json_encode(compact('project'));
}

function project($args) {
    if (isset($args[0])) {
        $project = preg_replace('/[^a-zA-Z0-9-_]/', '', $args[0]);
        if (empty($project)) {
            error('Missing project', '');
        }

        if (!file_exists(__DIR__.'/'.$project)) {
            error('No such project', '');
        }
    } else {
        error('No such project', '');
    }
    
    echo shell_exec('__PHP__ __EXAKAT__ queue -p '.$project),
         json_encode(compact('project'));
}

function queue($args) {
    if (!isset($_REQUEST['json'])) {
        return;
    }
    
    $json = $_REQUEST['json'];
    $jsonArray = json_decode($json);
    if ($jsonArray === null) {
        echo 'Not Json valid';
    }
    if (!is_array($jsonArray)) {
        echo 'Not Json array';
    }
    
    array_shift($jsonArray);
    
    echo shell_exec('__PHP__ __EXAKAT__ '.implode(' ', $jsonArray));
}

function onepage($args) {
    if (isset($args[0])) {
        $file = preg_replace('/[^a-zA-Z0-9-_]/', '', $args[0]);
        if (empty($file)) {
            error('Missing file', '');
        }

        if (!file_exists(__DIR__.'/onepage/code/'.$file.'.php')) {
            error('No such file', '');
        }
    } else {
        error('No such file', '');
    }

    if (!file_exists(__DIR__.'/onepage/reports/'.$file.'.json')) {
        error('No such results', '');
    }
    
    readfile(__DIR__.'/onepage/reports/'.$file.'.json');
}

function report($args) {
    if (isset($args[0])) {
        $project = preg_replace('/[^a-zA-Z0-9-_]/', '', $args[0]);
        if (empty($project)) {
            error('Missing project', '');
        }

        if (!file_exists(__DIR__.'/'.$project)) {
            error('No such project', $project);
        }
    } else {
        error('No such project', '');
    }
    
    // Check on report, then get dump.sqlite.
    if (!file_exists(__DIR__.'/'.$project.'/report')) {
        error('No report available', $project);
    }
    
    readfile(__DIR__."/$project/dump.sqlite");
}

function status($args) {
    global $initTime;
    
    if (!empty($args[0])) {
        if (!file_exists(__DIR__.'/'.$args[0])) {
    	    error('No such project', $args[0]);
        } elseif (file_exists(__DIR__.'/'.$args[0].'/')) {
            $json = shell_exec('__PHP__ __EXAKAT__ status -p '.$args[0].' -json');
            echo $json;
        } else {
            error('No such project', $args[0]);
        }
    } else {
        $status = array(
            'Status'       => 'OK',
            'Running Time' => duration(microtime(true) - $initTime),
            'Init Time '   => date('r', (int) $initTime),
            'Queue'        => file_exists(PIPEFILE) ? 'Yes' : 'No'
        );
        echo json_encode($status);
    }
}

function config($args) {
    if (empty($args[0])) {
        return;
    }

    $project = $args[0];
    
    if (!file_exists(__DIR__."/$project/config.ini")) {
        return;
    }
    
    $status = array();
    
    $ini = file_get_contents(__DIR__."/$project/config.ini");
    $php_versions = array('8.0', '7.4', '7.3', '7.2', '7.1', '7.0', '5.6', '5.5', '5.4', '5.3');
    if (!empty($_REQUEST['phpversion']) &&
        in_array($_REQUEST['phpversion'], $php_versions)) {
        $ini = preg_replace("/phpversion = .+?\n/", 'phpversion = '.$_REQUEST['phpversion'].PHP_EOL, $ini);
        $status[] = 'phpversion';
    }

    if (!empty($_REQUEST['file_extensions'])) {
        $extensions = explode(',', $_REQUEST['file_extensions']);
        $extensions = array_filter($extensions, function ($x) { return preg_match('/^\.[a-zA-Z0-9]+$/', $x); });

        if (!empty($extensions)) {
            $extensions = implode(',', $extensions);
            $ini = preg_replace("/file_extensions = .+?\n/", 'file_extensions = "'.$extensions.'";'.PHP_EOL, $ini);
        }
        $status[] = 'file_extensions';
    }

    if (!empty($_REQUEST['ignore_dirs']) && 
        is_array($_REQUEST['ignore_dirs'])) {

        $ignore_dirs = $_REQUEST['ignore_dirs'];
        $ignore_dirs = array_map(function($x) { return '"'.str_replace('"', '\\"', substr($x, 0, 250)).'"'; }, $ignore_dirs);
        $ini = preg_replace("/(ignore_dirs\[\] = .+?\n)+/s", 
                            'ignore_dirs[] = '.implode(PHP_EOL.'ignore_dirs[] = ', $ignore_dirs ).PHP_EOL, 
                            $ini);
        $status[] = 'ignore_dirs';
    }

    $regexBranchTag = '/^[a-zA-Z0-9_\.-]+$/';
    if (!empty($_REQUEST['branch']) && 
        preg_match($regexBranchTag, $_REQUEST['branch'])) {

        $ini = preg_replace("/project_branch\s*=\s*\"[^\"]*?\";\n/s", 
                            'project_branch      = "'.$_REQUEST['branch'].'";'.PHP_EOL, 
                            $ini);
        $ini = preg_replace("/project_tag\s*=\s*\"\w*\";\n/s", 
                            'project_tag         = "";'.PHP_EOL, 
                            $ini);
        $status[] = 'branch';
    } elseif (!empty($_REQUEST['tag']) && 
        preg_match($regexBranchTag, $_REQUEST['tag'])) {

        $ini = preg_replace("/project_branch\s*=\s*\"[^\"]*?\";\n/s", 
                            'project_branch      = "";'.PHP_EOL, 
                            $ini);
        $ini = preg_replace("/project_tag\s*=\s*\"\w*\";\n/s", 
                            'project_tag         = "'.$_REQUEST['tag'].'";'.PHP_EOL, 
                            $ini);
        $status[] = 'tag';
    }
    
    if (!empty($_REQUEST['name']) && 
        preg_match($regexBranchTag, $_REQUEST['name'])) {

        $ini = preg_replace("/project_name\s*=\s*\"[^\"]*?\";\n/s", 
                            'project_name        = "'.$_REQUEST['name'].'";'.PHP_EOL, 
                            $ini);
        $status[] = 'name';
    }
    
    if (!empty($_REQUEST['include_dirs']) && 
        is_array($_REQUEST['include_dirs'])) {

        $ini = preg_replace("/(include_dirs\[\] = .+?\n)+/s", 
                            'include_dirs[] = '.implode(PHP_EOL.'include_dirs[] = ', $_REQUEST['include_dirs']).PHP_EOL, 
                            $ini);
        $status[] = 'include_dirs';
    }

    if (!empty($_REQUEST['userpass']) && 
        preg_match('/^[^:\s]*:[^:\s]*$/', $_REQUEST['userpass'])) {
        if (preg_match('/project_url\s*=\s*"(.*?)";\s/s', $ini, $r)) {
            $url = $r[1];
            list($user, $pass) = explode(':', $_REQUEST['userpass']);
            
            $details = parse_url($url);
            if (empty($user) && empty($pass)) {
                unset($details['user'], $details['pass']);
            } else {
                $details['user'] = escapeshellarg($user);
                $details['pass'] = escapeshellarg($pass);
            }
            $url = unparse_url($details);

            $ini = preg_replace('/project_url\s*=\s*"(.*?)";\s/s', 
                                'project_url         = "'.$url.'";'.PHP_EOL, 
                                $ini);
        }
        $status[] = 'userpass';
    }

    if (empty($status)) {
        die(json_encode($status));
    }
    $size = file_put_contents(__DIR__."/$project/config.ini", $ini);
    
    $status = array('saved'   => $size, 
                    'options' => $status);
    die(json_encode($status));
}


// Helper functions
function duration($duration) {
    $duration = (int) $duration;
    
    return $duration;
}

function pushToQueue($id) {
    if (!file_exists(PIPEFILE)) {
        echo json_encode(array('status' => 'Server not ready'));
        return;
    }
    
    $fp = fopen(PIPEFILE, 'a');
    if ($fp === false) {
        echo json_encode(array('status' => 'Could not push to queue'));
        return;
    }

    fwrite($fp, "$id\n");
    fclose($fp);
}

function autoProjectName() {
    $letters = range('a', 'z');
    try {
        $return = $letters[random_int(0, 25)].random_int(0, 1000000000);
    } catch(Throwable $e) {
        $return = 'a';
    }
    
    return $return;
}

function autoOnagepageName() {
    $letters = range('A', 'Z');
    try {
        $return = $letters[random_int(0, 25)].random_int(0, 1000000000);
    } catch(Throwable $e) {
        $return = 'a';
    }
    
    return $return;
}

function error($error, $project) {
    die(json_encode(compact('error', 'project')));
}

function serverLog($message) {
    $fp = fopen(__DIR__.'/server.log', 'a');
    if ($fp !== false) {
        fwrite($fp, date('r')."\t$message\n");
        fclose($fp);
    }
}

function unparse_url($parsed_url) {
    $scheme   = isset($parsed_url['scheme'])   ? $parsed_url['scheme'].'://' : '';
    $host     = isset($parsed_url['host'])     ? $parsed_url['host']           : '';
    $port     = isset($parsed_url['port'])     ? ':'.$parsed_url['port']     : '';
    $user     = isset($parsed_url['user'])     ? $parsed_url['user']           : '';
    $pass     = isset($parsed_url['pass'])     ? ':'.$parsed_url['pass']     : '';
    $pass     = ($user || $pass)               ? $pass.'@'                      : '';
    $path     = isset($parsed_url['path'])     ? $parsed_url['path']           : '';
    $query    = isset($parsed_url['query'])    ? '?'.$parsed_url['query']    : '';
    $fragment = isset($parsed_url['fragment']) ? '#'.$parsed_url['fragment'] : '';
    return $scheme.$user.$pass.$host.$port.$path.$query.$fragment;
}

?>
   Bud1            %                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 @                                              @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   E   %                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       DSDB                             `                                                     @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              # Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#  http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

# This is a sample configuration file for Neo4j.  Note that
# TinkerPop does not include Neo4j dependencies in its
# distributions.  To use this file, please ensure that Neo4j
# dependencies are installed into Gremlin Server's path
# with:
#
# gremlin-server.sh -i org.apache.tinkerpop neo4j-gremlin 3.y.z
#
# Note that unless under a commercial agreement with Neo4j, Inc.,
# Neo4j is licensed AGPL.


gremlin.graph=org.apache.tinkerpop.gremlin.neo4j.structure.Neo4jGraph
gremlin.neo4j.directory=db/neo4j
gremlin.neo4j.conf.dbms.auto_index.nodes.enabled=true
#gremlin.neo4j.conf.dbms.auto_index.nodes.keys=
gremlin.neo4j.conf.dbms.auto_index.relationships.enabled=true
#gremlin.neo4j.conf.dbms.auto_index.relationships.keys=
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

# Note that TinkerPop does not include Neo4j dependencies in its
# distributions. This file cannot be used as a configuration file to 
# Gremlin Server unless Neo4j dependencies are installed on the 
# Gremlin Server path with:
#
# bin/gremlin-server.sh -i org.apache.tinkerpop neo4j-gremlin x.y.z
# 
# Note that unless under a commercial agreement with Neo Technology, 
# Neo4j is licensed AGPL. 

host: localhost
port: 8182
scriptEvaluationTimeout: 300000
channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
graphs: {
  graph: conf/exakat.properties}
scriptEngines: {
  gremlin-groovy: {
    plugins: { org.apache.tinkerpop.gremlin.server.jsr223.GremlinServerGremlinPlugin: {},
               org.apache.tinkerpop.gremlin.tinkergraph.jsr223.TinkerGraphGremlinPlugin: {},
               org.apache.tinkerpop.gremlin.jsr223.ImportGremlinPlugin: {classImports: [java.lang.Math], methodImports: [java.lang.Math#*]},
               org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {files: [scripts/empty-sample.groovy]}}}}
serializers:
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV3d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV1d0]  }}        # application/json
processors:
  - { className: org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor, config: { sessionTimeout: 28800000 }}
  - { className: org.apache.tinkerpop.gremlin.server.op.traversal.TraversalOpProcessor, config: { cacheExpirationTime: 600000, cacheMaxSize: 1000 }}
metrics: {
  consoleReporter: {enabled: true, interval: 180000},
  csvReporter: {enabled: true, interval: 180000, fileName: /tmp/gremlin-server-metrics.csv},
  jmxReporter: {enabled: true},
  slf4jReporter: {enabled: true, interval: 180000},
  gangliaReporter: {enabled: false, interval: 180000, addressingMode: MULTICAST},
  graphiteReporter: {enabled: false, interval: 180000}}
strictTransactionManagement: false
maxInitialLineLength: 4096
maxHeaderSize: 8192
maxChunkSize: 8192
maxContentLength: 81928192
maxAccumulationBufferComponents: 1024
resultIterationBatchSize: 64
writeBufferLowWaterMark: 32768
writeBufferHighWaterMark: 81928192
ssl: {
  enabled: false}
#!/bin/bash
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#

### BEGIN INIT INFO
# Provides:          gremlin-server
# Required-Start:    $remote_fs $syslog $network
# Required-Stop:     $remote_fs $syslog $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Gremlin Server
# Description:       Apache Tinkerpop Gremlin Server
# chkconfig:         2345 98 01
### END INIT INFO

[[ -n "$DEBUG" ]] && set -x

SOURCE="$0"
while [[ -h "$SOURCE" ]]; do
  cd -P "$( dirname "$SOURCE" )" || exit 1
  DIR="$(pwd)"
  SOURCE="$(readlink "$SOURCE")"
  [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE"
done
cd -P "$( dirname "$SOURCE" )" || exit 1
GREMLIN_BIN="$(pwd)"

GREMLIN_CONF=$GREMLIN_BIN/gremlin-server.conf

[[ -r $GREMLIN_CONF ]] && source $GREMLIN_CONF
[[ -n "$DEBUG" ]] && set -x

if [[ -z "$GREMLIN_HOME" ]]; then
  cd ..
  GREMLIN_HOME="$(pwd)"
fi

if [[ -z "$LOG_DIR" ]] ; then
  LOG_DIR="$GREMLIN_HOME/logs"
fi

if [[ -z "$LOG_FILE" ]]; then
  LOG_FILE="$LOG_DIR/gremlin.log"
fi

if [[ -z "$PID_DIR" ]] ; then
  PID_DIR="$GREMLIN_HOME/run"
fi

if [[ -z "$PID_FILE" ]]; then
  PID_FILE=$PID_DIR/gremlin.pid
fi

if [[ -z "$GREMLIN_YAML" ]]; then
  GREMLIN_YAML=$GREMLIN_HOME/conf/gremlin-server.yaml
fi

if [[ ! -r "$GREMLIN_YAML" ]]; then
  # try relative to home
  GREMLIN_YAML="$GREMLIN_HOME/$GREMLIN_YAML"
  if [[ ! -r "$GREMLIN_YAML" ]]; then
    echo WARNING: $GREMLIN_YAML is unreadable
  fi
fi

# absolute file path requires 'file:'
LOG4J_CONF="file:$GREMLIN_HOME/conf/log4j-server.properties"

# Find Java
if [[ "$JAVA_HOME" = "" ]] ; then
    JAVA="java"
else
    JAVA="$JAVA_HOME/bin/java"
fi

# Set Java options
if [[ "$JAVA_OPTIONS" = "" ]] ; then
    JAVA_OPTIONS="-Xms32m -Xmx512m"
fi

# Build Java CLASSPATH
CP="$GREMLIN_HOME/conf/"
CP="$CP":$( echo $GREMLIN_HOME/lib/*.jar . | sed 's/ /:/g')
CP="$CP":$( find -L "$GREMLIN_HOME"/ext -mindepth 1 -maxdepth 1 -type d | \
        sort | sed 's/$/\/plugin\/*/' | tr '\n' ':' )

CLASSPATH="${CLASSPATH:-}:$CP"

GREMLIN_SERVER_CMD=org.apache.tinkerpop.gremlin.server.GremlinServer
GREMLIN_INSTALL_CMD=org.apache.tinkerpop.gremlin.server.util.GremlinServerInstall


isRunning() {
  if [[ -r "$PID_FILE" ]] ; then
    PID=$(cat "$PID_FILE")
    ps -p "$PID" &> /dev/null
    return $?
  else
    return 1
  fi
}

status() {
  isRunning
  RUNNING=$?
    if [[ $RUNNING -gt 0 ]]; then
      echo Server not running
    else
      echo Server running with PID $(cat "$PID_FILE")
    fi
}

stop() {
  isRunning
  RUNNING=$?
  if [[ $RUNNING -gt 0 ]]; then
    echo Server not running
    rm -f "$PID_FILE"
  else
    kill "$PID" &> /dev/null || { echo "Unable to kill server [$PID]"; exit 1; }
    for i in $(seq 1 60); do
      ps -p "$PID" &> /dev/null || { echo "Server stopped [$PID]"; rm -f "$PID_FILE"; return 0; }
      [[ $i -eq 30 ]] && kill "$PID" &> /dev/null
      sleep 1
    done
    echo "Unable to kill server [$PID]";
    exit 1;
  fi
}

start() {
  isRunning
  RUNNING=$?
  if [[ $RUNNING -eq 0 ]]; then
    echo Server already running with PID $(cat "$PID_FILE").
    exit 1
  fi

  if [[ -z "$RUNAS" ]]; then

    mkdir -p "$LOG_DIR" &>/dev/null
    if [[ ! -d "$LOG_DIR" ]]; then
      echo ERROR: LOG_DIR $LOG_DIR does not exist and could not be created.
      exit 1
    fi

    mkdir -p "$PID_DIR" &>/dev/null
    if [[ ! -d "$PID_DIR" ]]; then
      echo ERROR: PID_DIR $PID_DIR does not exist and could not be created.
      exit 1
    fi

    $JAVA -Dlog4j.configuration=$LOG4J_CONF $JAVA_OPTIONS -cp $CP:$CLASSPATH $GREMLIN_SERVER_CMD "$GREMLIN_YAML" >> "$LOG_FILE" 2>&1 &
    PID=$!
    disown $PID
    echo $PID > "$PID_FILE"
  else

    su -c "mkdir -p $LOG_DIR &>/dev/null"  "$RUNAS"
    if [[ ! -d "$LOG_DIR" ]]; then
      echo ERROR: LOG_DIR $LOG_DIR does not exist and could not be created.
      exit 1
    fi

    su -c "mkdir -p $PID_DIR &>/dev/null"  "$RUNAS"
    if [[ ! -d "$PID_DIR" ]]; then
      echo ERROR: PID_DIR $PID_DIR does not exist and could not be created.
      exit 1
    fi

    su -c "$JAVA -Dlog4j.configuration=$LOG4J_CONF $JAVA_OPTIONS -cp $CP:$CLASSPATH $GREMLIN_SERVER_CMD \"$GREMLIN_YAML\" >> \"$LOG_FILE\" 2>&1 & echo \$! "  "$RUNAS" > "$PID_FILE"
    chown "$RUNAS" "$PID_FILE"
  fi

  isRunning
  RUNNING=$?
  if [[ $RUNNING -eq 0 ]]; then
    echo Server started $(cat "$PID_FILE").
    exit 0
  else
    echo Server failed
    exit 1
  fi

}

startForeground() {
  isRunning
  RUNNING=$?
  if [[ $RUNNING -eq 0 ]]; then
    echo Server already running with PID $(cat "$PID_FILE").
    exit 1
  fi

  if [[ -z "$RUNAS" ]]; then
    $JAVA -Dlog4j.configuration=$LOG4J_CONF $JAVA_OPTIONS -cp $CP:$CLASSPATH $GREMLIN_SERVER_CMD "$GREMLIN_YAML"
    exit 0
  else
    echo Starting in foreground not supported with RUNAS
    exit 1
  fi

}

install() {

  isRunning
  RUNNING=$?
  if [[ $RUNNING -eq 0 ]]; then
    echo Server must be stopped before installing.
    exit 1
  fi

  echo Installing dependency $@

  DEPS="$@"
  if [[ -z "$RUNAS" ]]; then
    $JAVA -Dlog4j.configuration=$LOG4J_CONF $JAVA_OPTIONS -cp $CP:$CLASSPATH  $GREMLIN_INSTALL_CMD $DEPS
  else
    su -c "$JAVA -Dlog4j.configuration=$LOG4J_CONF $JAVA_OPTIONS -cp $CP:$CLASSPATH $GREMLIN_INSTALL_CMD $DEPS "  "$RUNAS"
  fi

}

case "$1" in
  status)
    if [[ -n "$1" ]] ; then
      if [[ -r "$1" ]]; then
        GREMLIN_YAML="$1"
      fi
    fi
    status
    ;;
  restart)
    stop
    start
    ;;
  start)
    start
    ;;
  stop)
    stop
    ;;
  -i)
    shift
    echo "Redirecting to 'install $@' (-i will be removed in a future release)"
    install "$@"
    ;;
  install)
    shift
    install "$@"
    ;;
  console)
    startForeground
    ;;
  *)
    if [[ -n "$1" ]] ; then
      if [[ -r "$1" ]]; then
        GREMLIN_YAML="$1"
        startForeground
      elif [[ -r "$GREMLIN_HOME/$1" ]] ; then
        GREMLIN_YAML="$GREMLIN_HOME/$1"
        startForeground
      fi
      echo Configuration file not found.
    fi
    echo "Usage: $0 {start|stop|restart|status|console|install <group> <artifact> <version>|<conf file>}"; exit 1;
    ;;
esac
   Bud1            %                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 @                                              @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   E   %                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       DSDB                             `                                                     @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              # Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

host: localhost
port: 8182
scriptEvaluationTimeout: 3000000
channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
graphs: {
  graph: conf/tinkergraph-empty.properties}
scriptEngines: {
  gremlin-groovy: {
    plugins: { org.apache.tinkerpop.gremlin.server.jsr223.GremlinServerGremlinPlugin: {},
               org.apache.tinkerpop.gremlin.tinkergraph.jsr223.TinkerGraphGremlinPlugin: {},
               org.apache.tinkerpop.gremlin.jsr223.ImportGremlinPlugin: {classImports: [java.lang.Math], methodImports: [java.lang.Math#*]},
               org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {files: [scripts/empty-sample.groovy]}}}}
serializers:
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV3d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV1d0]  }}        # application/json
processors:
  - { className: org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor, config: { sessionTimeout: 28800000 }}
  - { className: org.apache.tinkerpop.gremlin.server.op.traversal.TraversalOpProcessor, config: { cacheExpirationTime: 600000, cacheMaxSize: 1000 }}
metrics: {
  consoleReporter: {enabled: true, interval: 180000},
  csvReporter: {enabled: true, interval: 180000, fileName: /tmp/gremlin-server-metrics.csv},
  jmxReporter: {enabled: true},
  slf4jReporter: {enabled: true, interval: 180000},
  gangliaReporter: {enabled: false, interval: 180000, addressingMode: MULTICAST},
  graphiteReporter: {enabled: false, interval: 180000}}
strictTransactionManagement: false
maxInitialLineLength: 4096
maxHeaderSize: 8192
maxChunkSize: 8192
maxContentLength: 81928192
maxAccumulationBufferComponents: 1024
resultIterationBatchSize: 64
writeBufferLowWaterMark: 32768
writeBufferHighWaterMark: 81928192
ssl: {
  enabled: false}

#!/bin/bash
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#

### BEGIN INIT INFO
# Provides:          gremlin-server
# Required-Start:    $remote_fs $syslog $network
# Required-Stop:     $remote_fs $syslog $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Gremlin Server
# Description:       Apache Tinkerpop Gremlin Server
# chkconfig:         2345 98 01
### END INIT INFO

[[ -n "$DEBUG" ]] && set -x

SOURCE="$0"
while [[ -h "$SOURCE" ]]; do
  cd -P "$( dirname "$SOURCE" )" || exit 1
  DIR="$(pwd)"
  SOURCE="$(readlink "$SOURCE")"
  [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE"
done
cd -P "$( dirname "$SOURCE" )" || exit 1
GREMLIN_BIN="$(pwd)"

GREMLIN_CONF=$GREMLIN_BIN/gremlin-server.conf

[[ -r $GREMLIN_CONF ]] && source $GREMLIN_CONF
[[ -n "$DEBUG" ]] && set -x

if [[ -z "$GREMLIN_HOME" ]]; then
  cd ..
  GREMLIN_HOME="$(pwd)"
fi

if [[ -z "$LOG_DIR" ]] ; then
  LOG_DIR="$GREMLIN_HOME/logs"
fi

if [[ -z "$LOG_FILE" ]]; then
  LOG_FILE="$LOG_DIR/gremlin.log"
fi

if [[ -z "$PID_DIR" ]] ; then
  PID_DIR="$GREMLIN_HOME/run"
fi

if [[ -z "$PID_FILE" ]]; then
  PID_FILE=$PID_DIR/gremlin.pid
fi

if [[ -z "$GREMLIN_YAML" ]]; then
  GREMLIN_YAML=$GREMLIN_HOME/conf/gremlin-server.yaml
fi

if [[ ! -r "$GREMLIN_YAML" ]]; then
  # try relative to home
  GREMLIN_YAML="$GREMLIN_HOME/$GREMLIN_YAML"
  if [[ ! -r "$GREMLIN_YAML" ]]; then
    echo WARNING: $GREMLIN_YAML is unreadable
  fi
fi

# absolute file path requires 'file:'
LOG4J_CONF="file:$GREMLIN_HOME/conf/log4j-server.properties"

# Find Java
if [[ "$JAVA_HOME" = "" ]] ; then
    JAVA="java"
else
    JAVA="$JAVA_HOME/bin/java"
fi

# Set Java options
if [[ "$JAVA_OPTIONS" = "" ]] ; then
    JAVA_OPTIONS="-Xms32m -Xmx512m"
fi

# Build Java CLASSPATH
CP="$GREMLIN_HOME/conf/"
CP="$CP":$( echo $GREMLIN_HOME/lib/*.jar . | sed 's/ /:/g')
CP="$CP":$( find -L "$GREMLIN_HOME"/ext -mindepth 1 -maxdepth 1 -type d | \
        sort | sed 's/$/\/plugin\/*/' | tr '\n' ':' )

CLASSPATH="${CLASSPATH:-}:$CP"

GREMLIN_SERVER_CMD=org.apache.tinkerpop.gremlin.server.GremlinServer
GREMLIN_INSTALL_CMD=org.apache.tinkerpop.gremlin.server.util.GremlinServerInstall


isRunning() {
  if [[ -r "$PID_FILE" ]] ; then
    PID=$(cat "$PID_FILE")
    ps -p "$PID" &> /dev/null
    return $?
  else
    return 1
  fi
}

status() {
  isRunning
  RUNNING=$?
    if [[ $RUNNING -gt 0 ]]; then
      echo Server not running
    else
      echo Server running with PID $(cat "$PID_FILE")
    fi
}

stop() {
  isRunning
  RUNNING=$?
  if [[ $RUNNING -gt 0 ]]; then
    echo Server not running
    rm -f "$PID_FILE"
  else
    kill "$PID" &> /dev/null || { echo "Unable to kill server [$PID]"; exit 1; }
    for i in $(seq 1 60); do
      ps -p "$PID" &> /dev/null || { echo "Server stopped [$PID]"; rm -f "$PID_FILE"; return 0; }
      [[ $i -eq 30 ]] && kill "$PID" &> /dev/null
      sleep 1
    done
    echo "Unable to kill server [$PID]";
    exit 1;
  fi
}

start() {
  isRunning
  RUNNING=$?
  if [[ $RUNNING -eq 0 ]]; then
    echo Server already running with PID $(cat "$PID_FILE").
    exit 1
  fi

  if [[ -z "$RUNAS" ]]; then

    mkdir -p "$LOG_DIR" &>/dev/null
    if [[ ! -d "$LOG_DIR" ]]; then
      echo ERROR: LOG_DIR $LOG_DIR does not exist and could not be created.
      exit 1
    fi

    mkdir -p "$PID_DIR" &>/dev/null
    if [[ ! -d "$PID_DIR" ]]; then
      echo ERROR: PID_DIR $PID_DIR does not exist and could not be created.
      exit 1
    fi

    $JAVA -Dlog4j.configuration=$LOG4J_CONF $JAVA_OPTIONS -cp $CP:$CLASSPATH $GREMLIN_SERVER_CMD "$GREMLIN_YAML" >> "$LOG_FILE" 2>&1 &
    PID=$!
    disown $PID
    echo $PID > "$PID_FILE"
  else

    su -c "mkdir -p $LOG_DIR &>/dev/null"  "$RUNAS"
    if [[ ! -d "$LOG_DIR" ]]; then
      echo ERROR: LOG_DIR $LOG_DIR does not exist and could not be created.
      exit 1
    fi

    su -c "mkdir -p $PID_DIR &>/dev/null"  "$RUNAS"
    if [[ ! -d "$PID_DIR" ]]; then
      echo ERROR: PID_DIR $PID_DIR does not exist and could not be created.
      exit 1
    fi

    su -c "$JAVA -Dlog4j.configuration=$LOG4J_CONF $JAVA_OPTIONS -cp $CP:$CLASSPATH $GREMLIN_SERVER_CMD \"$GREMLIN_YAML\" >> \"$LOG_FILE\" 2>&1 & echo \$! "  "$RUNAS" > "$PID_FILE"
    chown "$RUNAS" "$PID_FILE"
  fi

  isRunning
  RUNNING=$?
  if [[ $RUNNING -eq 0 ]]; then
    echo Server started $(cat "$PID_FILE").
    exit 0
  else
    echo Server failed
    exit 1
  fi

}

startForeground() {
  isRunning
  RUNNING=$?
  if [[ $RUNNING -eq 0 ]]; then
    echo Server already running with PID $(cat "$PID_FILE").
    exit 1
  fi

  if [[ -z "$RUNAS" ]]; then
    $JAVA -Dlog4j.configuration=$LOG4J_CONF $JAVA_OPTIONS -cp $CP:$CLASSPATH $GREMLIN_SERVER_CMD "$GREMLIN_YAML"
    exit 0
  else
    echo Starting in foreground not supported with RUNAS
    exit 1
  fi

}

install() {

  isRunning
  RUNNING=$?
  if [[ $RUNNING -eq 0 ]]; then
    echo Server must be stopped before installing.
    exit 1
  fi

  echo Installing dependency $@

  DEPS="$@"
  if [[ -z "$RUNAS" ]]; then
    $JAVA -Dlog4j.configuration=$LOG4J_CONF $JAVA_OPTIONS -cp $CP:$CLASSPATH  $GREMLIN_INSTALL_CMD $DEPS
  else
    su -c "$JAVA -Dlog4j.configuration=$LOG4J_CONF $JAVA_OPTIONS -cp $CP:$CLASSPATH $GREMLIN_INSTALL_CMD $DEPS "  "$RUNAS"
  fi

}

case "$1" in
  status)
    if [[ -n "$1" ]] ; then
      if [[ -r "$1" ]]; then
        GREMLIN_YAML="$1"
      fi
    fi
    status
    ;;
  restart)
    stop
    start
    ;;
  start)
    start
    ;;
  stop)
    stop
    ;;
  -i)
    shift
    echo "Redirecting to 'install $@' (-i will be removed in a future release)"
    install "$@"
    ;;
  install)
    shift
    install "$@"
    ;;
  console)
    startForeground
    ;;
  *)
    if [[ -n "$1" ]] ; then
      if [[ -r "$1" ]]; then
        GREMLIN_YAML="$1"
        startForeground
      elif [[ -r "$GREMLIN_HOME/$1" ]] ; then
        GREMLIN_YAML="$GREMLIN_HOME/$1"
        startForeground
      fi
      echo Configuration file not found.
    fi
    echo "Usage: $0 {start|stop|restart|status|console|install <group> <artifact> <version>|<conf file>}"; exit 1;
    ;;
esac
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

host: localhost
port: 8182
scriptEvaluationTimeout: 300000
channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
graphs: {
  graph: conf/tinkergraph-empty.properties}
scriptEngines: {
  gremlin-groovy: {
    plugins: { org.apache.tinkerpop.gremlin.server.jsr223.GremlinServerGremlinPlugin: {},
               org.apache.tinkerpop.gremlin.tinkergraph.jsr223.TinkerGraphGremlinPlugin: {},
               org.apache.tinkerpop.gremlin.jsr223.ImportGremlinPlugin: {classImports: [java.lang.Math], methodImports: [java.lang.Math#*]},
               org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {files: [scripts/empty-sample.groovy]}}}}
serializers:
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV1d0]  }}        # application/json
processors:
  - { className: org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor, config: { sessionTimeout: 28800000 }}
  - { className: org.apache.tinkerpop.gremlin.server.op.traversal.TraversalOpProcessor, config: { cacheExpirationTime: 600000, cacheMaxSize: 1000 }}
metrics: {
  consoleReporter: {enabled: true, interval: 180000},
  csvReporter: {enabled: true, interval: 180000, fileName: /tmp/gremlin-server-metrics.csv},
  jmxReporter: {enabled: true},
  slf4jReporter: {enabled: true, interval: 180000},
  gangliaReporter: {enabled: false, interval: 180000, addressingMode: MULTICAST},
  graphiteReporter: {enabled: false, interval: 180000}}
strictTransactionManagement: false
maxInitialLineLength: 4096
maxHeaderSize: 8192
maxChunkSize: 8192
maxContentLength: 81928192
maxAccumulationBufferComponents: 1024
resultIterationBatchSize: 64
writeBufferLowWaterMark: 32768
writeBufferHighWaterMark: 81928192
ssl: {
  enabled: false}

   Bud1            %                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 @                                              @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   E   %                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       DSDB                             `                                                     @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              # Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

host: localhost
port: 8182
scriptEvaluationTimeout: 300000
channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
graphs: {
  graph: conf/exakat.properties}
plugins:
  - tinkerpop.tinkergraph
scriptEngines: {
  gremlin-groovy: {
    imports: [java.lang.Math],
    staticImports: [java.lang.Math.PI],
    scripts: [scripts/empty-sample.groovy]}}
serializers:
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0, config: { useMapperFromGraph: graph }}        # application/json
processors:
  - { className: org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor, config: { sessionTimeout: 28800000 }}
  - { className: org.apache.tinkerpop.gremlin.server.op.traversal.TraversalOpProcessor, config: { cacheExpirationTime: 600000, cacheMaxSize: 1000 }}
metrics: {
  consoleReporter: {enabled: true, interval: 180000},
  csvReporter: {enabled: true, interval: 180000, fileName: /tmp/gremlin-server-metrics.csv},
  jmxReporter: {enabled: true},
  slf4jReporter: {enabled: true, interval: 180000},
  gangliaReporter: {enabled: false, interval: 180000, addressingMode: MULTICAST},
  graphiteReporter: {enabled: false, interval: 180000}}
strictTransactionManagement: false
maxInitialLineLength: 4096
maxHeaderSize: 8192
maxChunkSize: 8192
maxContentLength: 67108864
maxAccumulationBufferComponents: 1024
resultIterationBatchSize: 64
writeBufferLowWaterMark: 32768
writeBufferHighWaterMark: 67108864
ssl: {
  enabled: false}# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

host: localhost
port: 8182
scriptEvaluationTimeout: 300000
channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
graphs: {
  graph: conf/tinkergraph-empty.properties}
scriptEngines: {
  gremlin-groovy: {
    plugins: { org.apache.tinkerpop.gremlin.server.jsr223.GremlinServerGremlinPlugin: {},
               org.apache.tinkerpop.gremlin.tinkergraph.jsr223.TinkerGraphGremlinPlugin: {},
               org.apache.tinkerpop.gremlin.jsr223.ImportGremlinPlugin: {classImports: [java.lang.Math], methodImports: [java.lang.Math#*]},
               org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {files: [scripts/empty-sample.groovy]}}}}
serializers:
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV1d0]  }}        # application/json
processors:
  - { className: org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor, config: { sessionTimeout: 28800000 }}
  - { className: org.apache.tinkerpop.gremlin.server.op.traversal.TraversalOpProcessor, config: { cacheExpirationTime: 600000, cacheMaxSize: 1000 }}
metrics: {
  consoleReporter: {enabled: true, interval: 180000},
  csvReporter: {enabled: true, interval: 180000, fileName: /tmp/gremlin-server-metrics.csv},
  jmxReporter: {enabled: true},
  slf4jReporter: {enabled: true, interval: 180000},
  gangliaReporter: {enabled: false, interval: 180000, addressingMode: MULTICAST},
  graphiteReporter: {enabled: false, interval: 180000}}
strictTransactionManagement: false
maxInitialLineLength: 4096
maxHeaderSize: 8192
maxChunkSize: 8192
maxContentLength: 81928192
maxAccumulationBufferComponents: 1024
resultIterationBatchSize: 64
writeBufferLowWaterMark: 32768
writeBufferHighWaterMark: 81928192
ssl: {
  enabled: false}

#!/bin/bash
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#

### BEGIN INIT INFO
# Provides:          gremlin-server
# Required-Start:    $remote_fs $syslog $network
# Required-Stop:     $remote_fs $syslog $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Gremlin Server
# Description:       Apache Tinkerpop Gremlin Server
# chkconfig:         2345 98 01
### END INIT INFO

[[ -n "$DEBUG" ]] && set -x

SOURCE="$0"
while [[ -h "$SOURCE" ]]; do
  cd -P "$( dirname "$SOURCE" )" || exit 1
  DIR="$(pwd)"
  SOURCE="$(readlink "$SOURCE")"
  [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE"
done
cd -P "$( dirname "$SOURCE" )" || exit 1
GREMLIN_BIN="$(pwd)"

GREMLIN_CONF=$GREMLIN_BIN/gremlin-server.conf

[[ -r $GREMLIN_CONF ]] && source $GREMLIN_CONF
[[ -n "$DEBUG" ]] && set -x

if [[ -z "$GREMLIN_HOME" ]]; then
  cd ..
  GREMLIN_HOME="$(pwd)"
fi

if [[ -z "$LOG_DIR" ]] ; then
  LOG_DIR="$GREMLIN_HOME/logs"
fi

if [[ -z "$LOG_FILE" ]]; then
  LOG_FILE="$LOG_DIR/gremlin.log"
fi

if [[ -z "$PID_DIR" ]] ; then
  PID_DIR="$GREMLIN_HOME/run"
fi

if [[ -z "$PID_FILE" ]]; then
  PID_FILE=$PID_DIR/gremlin.pid
fi

if [[ -z "$GREMLIN_YAML" ]]; then
  GREMLIN_YAML=$GREMLIN_HOME/conf/gremlin-server.yaml
fi

if [[ ! -r "$GREMLIN_YAML" ]]; then
  # try relative to home
  GREMLIN_YAML="$GREMLIN_HOME/$GREMLIN_YAML"
  if [[ ! -r "$GREMLIN_YAML" ]]; then
    echo WARNING: $GREMLIN_YAML is unreadable
  fi
fi

# absolute file path requires 'file:'
LOG4J_CONF="file:$GREMLIN_HOME/conf/log4j-server.properties"

# Find Java
if [[ "$JAVA_HOME" = "" ]] ; then
    JAVA="java"
else
    JAVA="$JAVA_HOME/bin/java"
fi

# Set Java options
if [[ "$JAVA_OPTIONS" = "" ]] ; then
    JAVA_OPTIONS="-Xms32m -Xmx512m"
fi

# Build Java CLASSPATH
CP="$GREMLIN_HOME/conf/"
CP="$CP":$( echo $GREMLIN_HOME/lib/*.jar . | sed 's/ /:/g')
CP="$CP":$( find -L "$GREMLIN_HOME"/ext -mindepth 1 -maxdepth 1 -type d | \
        sort | sed 's/$/\/plugin\/*/' | tr '\n' ':' )

CLASSPATH="${CLASSPATH:-}:$CP"

GREMLIN_SERVER_CMD=org.apache.tinkerpop.gremlin.server.GremlinServer
GREMLIN_INSTALL_CMD=org.apache.tinkerpop.gremlin.server.util.GremlinServerInstall


isRunning() {
  if [[ -r "$PID_FILE" ]] ; then
    PID=$(cat "$PID_FILE")
    ps -p "$PID" &> /dev/null
    return $?
  else
    return 1
  fi
}

status() {
  isRunning
  RUNNING=$?
    if [[ $RUNNING -gt 0 ]]; then
      echo Server not running
    else
      echo Server running with PID $(cat "$PID_FILE")
    fi
}

stop() {
  isRunning
  RUNNING=$?
  if [[ $RUNNING -gt 0 ]]; then
    echo Server not running
    rm -f "$PID_FILE"
  else
    kill "$PID" &> /dev/null || { echo "Unable to kill server [$PID]"; exit 1; }
    for i in $(seq 1 60); do
      ps -p "$PID" &> /dev/null || { echo "Server stopped [$PID]"; rm -f "$PID_FILE"; return 0; }
      [[ $i -eq 30 ]] && kill "$PID" &> /dev/null
      sleep 1
    done
    echo "Unable to kill server [$PID]";
    exit 1;
  fi
}

start() {
  isRunning
  RUNNING=$?
  if [[ $RUNNING -eq 0 ]]; then
    echo Server already running with PID $(cat "$PID_FILE").
    exit 1
  fi

  if [[ -z "$RUNAS" ]]; then

    mkdir -p "$LOG_DIR" &>/dev/null
    if [[ ! -d "$LOG_DIR" ]]; then
      echo ERROR: LOG_DIR $LOG_DIR does not exist and could not be created.
      exit 1
    fi

    mkdir -p "$PID_DIR" &>/dev/null
    if [[ ! -d "$PID_DIR" ]]; then
      echo ERROR: PID_DIR $PID_DIR does not exist and could not be created.
      exit 1
    fi

    $JAVA -Dlog4j.configuration=$LOG4J_CONF $JAVA_OPTIONS -cp $CP:$CLASSPATH $GREMLIN_SERVER_CMD "$GREMLIN_YAML" >> "$LOG_FILE" 2>&1 &
    PID=$!
    disown $PID
    echo $PID > "$PID_FILE"
  else

    su -c "mkdir -p $LOG_DIR &>/dev/null"  "$RUNAS"
    if [[ ! -d "$LOG_DIR" ]]; then
      echo ERROR: LOG_DIR $LOG_DIR does not exist and could not be created.
      exit 1
    fi

    su -c "mkdir -p $PID_DIR &>/dev/null"  "$RUNAS"
    if [[ ! -d "$PID_DIR" ]]; then
      echo ERROR: PID_DIR $PID_DIR does not exist and could not be created.
      exit 1
    fi

    su -c "$JAVA -Dlog4j.configuration=$LOG4J_CONF $JAVA_OPTIONS -cp $CP:$CLASSPATH $GREMLIN_SERVER_CMD \"$GREMLIN_YAML\" >> \"$LOG_FILE\" 2>&1 & echo \$! "  "$RUNAS" > "$PID_FILE"
    chown "$RUNAS" "$PID_FILE"
  fi

  isRunning
  RUNNING=$?
  if [[ $RUNNING -eq 0 ]]; then
    echo Server started $(cat "$PID_FILE").
    exit 0
  else
    echo Server failed
    exit 1
  fi

}

startForeground() {
  isRunning
  RUNNING=$?
  if [[ $RUNNING -eq 0 ]]; then
    echo Server already running with PID $(cat "$PID_FILE").
    exit 1
  fi

  if [[ -z "$RUNAS" ]]; then
    $JAVA -Dlog4j.configuration=$LOG4J_CONF $JAVA_OPTIONS -cp $CP:$CLASSPATH $GREMLIN_SERVER_CMD "$GREMLIN_YAML"
    exit 0
  else
    echo Starting in foreground not supported with RUNAS
    exit 1
  fi

}

install() {

  isRunning
  RUNNING=$?
  if [[ $RUNNING -eq 0 ]]; then
    echo Server must be stopped before installing.
    exit 1
  fi

  echo Installing dependency $@

  DEPS="$@"
  if [[ -z "$RUNAS" ]]; then
    $JAVA -Dlog4j.configuration=$LOG4J_CONF $JAVA_OPTIONS -cp $CP:$CLASSPATH  $GREMLIN_INSTALL_CMD $DEPS
  else
    su -c "$JAVA -Dlog4j.configuration=$LOG4J_CONF $JAVA_OPTIONS -cp $CP:$CLASSPATH $GREMLIN_INSTALL_CMD $DEPS "  "$RUNAS"
  fi

}

case "$1" in
  status)
    if [[ -n "$1" ]] ; then
      if [[ -r "$1" ]]; then
        GREMLIN_YAML="$1"
      fi
    fi
    status
    ;;
  restart)
    stop
    start
    ;;
  start)
    start
    ;;
  stop)
    stop
    ;;
  -i)
    shift
    echo "Redirecting to 'install $@' (-i will be removed in a future release)"
    install "$@"
    ;;
  install)
    shift
    install "$@"
    ;;
  console)
    startForeground
    ;;
  *)
    if [[ -n "$1" ]] ; then
      if [[ -r "$1" ]]; then
        GREMLIN_YAML="$1"
        startForeground
      elif [[ -r "$GREMLIN_HOME/$1" ]] ; then
        GREMLIN_YAML="$GREMLIN_HOME/$1"
        startForeground
      fi
      echo Configuration file not found.
    fi
    echo "Usage: $0 {start|stop|restart|status|console|install <group> <artifact> <version>|<conf file>}"; exit 1;
    ;;
esac
<?php

const PIPEFILE = '/tmp/api';

$initTime = microtime(true);

if (!isset($_REQUEST['json'])) {
    serverLog("unknown command : empty");
    die( 'Exakat server (missing command)');
}

if (empty($_REQUEST['json'])) {
    serverLog("unknown command : empty");
    die( 'Exakat server (empty command)');
}

$commands = json_decode($_REQUEST['json']);
if (empty($commands)) {
    serverLog("unknown command : empty");
    die( 'Exakat server (unknown commands)');
}
$command = array_shift($commands);

$orders = array('stop', 

                'ping',

                'init', 
                'project', 
                'fetch', 

                'remove', 
                'report', 
                'doctor', 

                'status', 
                'stats', 
                'dashboard',
                );

if (!in_array($command, $orders)) {
    serverLog("unknown command : $command");
    die( 'Exakat server (unknown command)');
}

$command($commands);

$endTime = microtime(true);
serverLog(substr($command."\t".floor(1000*($endTime - $initTime))."\t".implode("\t", $commands), 0, 256));
//End script

/// Function definitions

function stop($args) {
    serverLog("Shutting down\n");
    $pid = getmypid();
    echo "<p>Shutting down server (pid : $pid)</p>";
    ob_flush();

    if (file_exists(__FILE__)) {
        unlink(__FILE__);
    }

    exec('kill '.getmypid());
    // This is killed.
}

function init($args) {
    if ($id = array_search('-R', $args)) {
        $url = parse_url($args[$id + 1]);
        if (!isset($url['scheme'], $url['host'], $url['path'])) {
            error('Malformed VCS', '');
        }
        
        $vcs = unparse_url($url);

        if (($id = array_search('-p', $args)) === false || 
            !($project = $args[$id + 1])) {
            $project = autoprojectname();
        }
        
        $host = getHost($project);
        
        $URLload = $host.'/?json='.json_encode(array_merge(['init'], $args));
        print "Sending $project to $host\n$URLload";
        
        $html = file_get_contents($URLload);
        print $html;
    } else {
        error('Missing VCS/code', '');
    }
}

function ping($args) {
    echo 'pong - proxy';
}

function project($args) {
    if (($id = array_search('-p', $args)) !== false) {
        $project = $args[$id + 1];
        $host = getHost($project);
        
        $URLload = $host.'/?json='.json_encode(array_merge(['project'], $args));
        print "project $project to $host\n$URLload";
        
        $html = file_get_contents($URLload);

        print $html;
    } else {
        error('missing Project '.$id, '');
    }
}

function remove($args) {
    if (($id = array_search('-p', $args)) !== false) {
        $project = $args[$id + 1];
        $host = getHost($project);
        
        $URLload = $host.'/?json='.json_encode(array_merge(['remove'], $args));
        print "remove $project to $host\n$URLload";
        $html = file_get_contents($URLload);

        print $html;
    } else {
        error('missing Project '.$id, '');
    }
}

function report($args) {
    if (($id = array_search('-p', $args)) !== false) {
        $project = $args[$id + 1];

        $id = array_search('-format', $args);
        $format = $args[$id + 1];

        shell_exec('__PHP__ __EXAKAT__ queue report -p '.$project.' -format '.$format);
        serverLog("remove : $project ".date('r'));

        echo json_encode(array('project' => $project, 
                               'start' => date('r')));
    } else {
        error('missing Project '.$id, '');
    }
}

function doctor($args) {
    if (($id = array_search('-p', $args)) !== false) {
        $project = $args[$id + 1];

        shell_exec('__PHP__ __EXAKAT__ queue doctor -p '.$project);
        serverLog("doctor : $project ".date('r'));

        echo json_encode(array('doctor' => $project, 
                               'start'  => date('r'),
                               ));
    } else {
        shell_exec('__PHP__ __EXAKAT__ queue doctor');
        serverLog('doctor');

        echo json_encode(array('doctor' => $project, 
                               'start' => date('r')));
    }
}

function status($args) {
    print "Status\n";
}

function fetch($args) {
    if (($id = array_search('-p', $args)) !== false) {
        $project = $args[$id + 1];
        $host = getHost($project);
        
        $URLload = $host.'/?json='.json_encode(array_merge(['fetch'], $args));
        $zip = file_get_contents($URLload);

        print $zip;
    } else {
        error('missing Project '.$id, '');
    }
}

function stats($args) {
    print "Stats";
}

function dashboard($args) {
    $files = glob(__DIR__.'/*');
    finish(array('projects' => $files,
          ));
}

function autoProjectName() {
    $letters = range('a', 'z');
    try {
        $return = $letters[random_int(0, 25)].random_int(0, 1000000000);
    } catch(Throwable $e) {
        $return = 'a';
    }
    
    return $return;
}

function checksUUID($value) {
    if (strlen($value) != 10) {
        return false;
    }
    if (preg_match('/[^a-z0-9]/', $value)) {
        return false;
    }
    
    return $value;
}

function finish($message) {
    echo json_encode($message);
    die();
}

function error($message, $project) {
    finish(array('error'   => $message,
                 'project' => $project,
                )
          );
}

function serverLog($message) {
    $fp = fopen(__DIR__.'/proxy.log', 'a');
    if ($fp !== false) {
        fwrite($fp, date('r')."\t$message\n");
        fclose($fp);
    }
}

function unparse_url($parsed_url) {
    $scheme   = isset($parsed_url['scheme'])   ? $parsed_url['scheme'].'://' : '';
    $host     = isset($parsed_url['host'])     ? $parsed_url['host']           : '';
    $port     = isset($parsed_url['port'])     ? ':'.$parsed_url['port']     : '';
    $user     = isset($parsed_url['user'])     ? $parsed_url['user']           : '';
    $pass     = isset($parsed_url['pass'])     ? ':'.$parsed_url['pass']     : '';
    $pass     = ($user || $pass)               ? $pass.'@'                      : '';
    $path     = isset($parsed_url['path'])     ? $parsed_url['path']           : '';
    $query    = isset($parsed_url['query'])    ? '?'.$parsed_url['query']    : '';
    $fragment = isset($parsed_url['fragment']) ? '#'.$parsed_url['fragment'] : '';
    return $scheme.$user.$pass.$host.$port.$path.$query.$fragment;
}

function getHost($project) {
    $slaves = __SLAVES__;
    
    if (file_exists(__DIR__.'/proxy.json')) {
        $json = file_get_contents(__DIR__.'/proxy.json');
        $list = json_decode($json, true);
    } else {
        $list = [];
    }
    
    if (empty($list) || !isset($list[$project])){
        shuffle($slaves);
        $list[$project] = array_pop($slaves);
    }
    
    $host = $list[$project];
    
    file_put_contents(__DIR__.'/proxy.json', json_encode($list));
    
    return $host;
}

?>
<?php

const PIPEFILE = '/tmp/api';

$initTime = microtime(true);

if (!isset($_REQUEST['json'])) {
    serverLog("unknown command : empty");
    die( 'Exakat server (missing command)');
}

if (empty($_REQUEST['json'])) {
    serverLog("unknown command : empty");
    die( 'Exakat server (empty command)');
}

if ($_REQUEST['json'][0] !== '[') { 
    $_REQUEST['json'] = safeDecrypt($_REQUEST['json']); 
}

if (empty($_REQUEST['json'])) {
    serverLog("unknown command : empty");
    die( 'Exakat server (empty command)');
}

$commands = json_decode($_REQUEST['json']);
if (empty($commands)) {
    serverLog("unknown command : empty");
    die( 'Exakat server (unknown commands)');
}
$command = array_shift($commands);

$orders = array('stop', 

                'ping',

                'init', 
                'config', 
                'project', 
                'fetch', 

                'remove', 
                'report', 
                'doctor', 

                'status', 
                'stats', 
                'dashboard',
                );

if (!in_array($command, $orders)) {
    serverLog("unknown command : $command");
    die( 'Exakat server (unknown command)');
}

$command($commands);

$endTime = microtime(true);
serverLog(substr($command."\t".floor(1000*($endTime - $initTime))."\t".implode("\t", $commands), 0, 256));
//End script

/// Function definitions

function stop($args) {
    serverLog("Shutting down\n");
    $pid = getmypid();
    echo "<p>Shutting down server (pid : $pid)</p>";
    ob_flush();

    if (file_exists(__FILE__)) {
        unlink(__FILE__);
    }

    exec('kill '.getmypid());
    // This is killed.
}

function init($args) {
    if (($id = array_search('-R', $args)) === false) {
        error('Missing VCS/code', '');
    }
    
    $url = parse_url($args[$id + 1]);
    if (!isset($url['scheme'], $url['host'], $url['path'])) {
        error('Malformed VCS', '');
    }
    
    $vcs = unparse_url($url);

    if (($id = array_search('-p', $args)) === false) {
        $project = autoprojectname();
    } elseif (!($project = $args[$id + 1])) {
        $project = autoprojectname();
    } elseif (file_exists("projects/$project")) {
        error('Project already exists', '');
    }
    
    $extra = '';
    if (($id = array_search('-branch', $args)) !== false) {
        $extra .= ' -branch '.escapeshellarg($args[$id + 1]).' ';
    }

    if (($id = array_search('-tag', $args)) !== false) {
        $extra .= ' -tag '.escapeshellarg($args[$id + 1]).' ';
    }

    shell_exec('__PHP__ __EXAKAT__ queue init -p '.escapeshellarg($project).' -R '.escapeshellarg($vcs).$extra);
    serverLog("init : $project $vcs ".date('r'));

    echo json_encode(array('project' => $project, 
                           'start' => date('r')));
}

function ping($args) {
    echo 'pong';
}

function project($args) {
    if (($id = array_search('-p', $args)) === false) {
        error("missing Project", '');
    }

    $project = $args[$id + 1];

    shell_exec("__PHP__ __EXAKAT__ queue project -p ".escapeshellarg($project));
    serverLog("project : $project ".date('r'));

    echo json_encode(array('project' => $project, 
                           'start' => date('r')));
}

function remove($args) {
    if (($id = array_search('-p', $args)) === false) {
        error("missing Project", '');
    }

    $project = $args[$id + 1];

    shell_exec("__PHP__ __EXAKAT__ queue remove -p ".escapeshellarg($project));
    serverLog("remove : $project ".date('r'));

    echo json_encode(array('project' => $project, 
                           'start' => date('r')));
}

function report($args) {
    if (($id = array_search('-p', $args)) === false) {
        error("missing Project", '');
    }

    $project = $args[$id + 1];

    $id = array_search('-format', $args);
    $format = $args[$id + 1];

    shell_exec("__PHP__ __EXAKAT__ queue report -p ".escapeshellarg($project)." -format ".escapeshellarg($format));
    serverLog("remove : $project ".date('r'));

    echo json_encode(array('project' => $project, 
                           'start' => date('r')));
}

function doctor($args) {
    if (($id = array_search('-p', $args)) === false) {
        shell_exec('__PHP__ __EXAKAT__ queue doctor');
        serverLog('doctor');

        echo json_encode(array('doctor' => 'no project', 
                               'start'  => date('r')));
    } else {
        $project = $args[$id + 1];

        if (!file_exists("projects/$project")) {
            error('No project available', '');
        }

        shell_exec("__PHP__ __EXAKAT__ queue doctor -p ".escapeshellarg($project));
        serverLog("doctor : $project ".date('r'));

        echo json_encode(array('doctor' => $project, 
                               'start'  => date('r'),
                               ));
    }
}

function status($args) {
    if (($id = array_search('-p', $args)) === false) {
        error("missing Project", '');
    }

    $project = $args[$id + 1];

    if (!file_exists("projects/$project")) {
        error('No project available', '');
    }

    echo shell_exec("__PHP__ __EXAKAT__ status -p ".escapeshellarg($project)." -json");
}

function fetch($args) {
    if (($id = array_search('-p', $args)) === false) {
        error("missing Project", '');
    }

    $project = $args[$id + 1];

    if (!file_exists("projects/$project")) {
        error('No project available', '');
    }

    $id = array_search('-format', $args);

    $json = @file_get_contents('projects/.exakat/Project.json');
    $json = json_decode($json);
    if (isset($json->project) && $project === $json->project) {
        // Too early
        error('No dump.sqlite available', '');
    }

    if (!file_exists("projects/$project/dump.sqlite")) {
        error('No dump.sqlite available', '');
    }

    // check if the report is done. If not, no dump yet.
    if (!file_exists("projects/$project/diplomat")) {
        error('No dump.sqlite available', '');
    }

    shell_exec("cd projects/$project/; zip -r dump.zip dump.sqlite; ");
    serverLog("fetch : $project ".date('r'));
    $fp = fopen("projects/$project/dump.zip", 'r');
    fpassthru($fp);
    unlink("projects/$project/dump.zip");
}

function config($args) {
    if (($id = array_search('-p', $args)) === false) {
        error("missing Project", '');
    }

    $project = $args[$id + 1];

    $directives = array_keys($args, '-c');
    
    if (empty($directives)) {
        error('no directives provided', '');
    }

    $relay = '';
    foreach($directives as $c) {
        $relay .= ' -c '.escapeshellarg($args[$c + 1]);
    }

    echo shell_exec("__PHP__ __EXAKAT__ queue config -p ".escapeshellarg($project)." $relay -json");
}

function stats($args) {
    print "Stats";
}

function dashboard($args) {
    $files = glob(__DIR__.'/*');
    finish(array('projects' => $files,
          ));
}

function autoProjectName() {
    $letters = range('a', 'z');
    try {
        $return = $letters[random_int(0, 25)].random_int(0, 1000000000);
    } catch(Throwable $e) {
        $return = 'a';
    }
    
    return $return;
}

function checksUUID($value) {
    if (strlen($value) != 10) {
        return false;
    }
    if (preg_match('/[^a-z0-9]/', $value)) {
        return false;
    }
    
    return $value;
}

function finish($message) {
    echo json_encode($message);
    die();
}

function error($message, $project) {
    finish(array('error'   => $message,
                 'project' => $project,
                )
          );
}

function serverLog($message) {
    $fp = fopen(__DIR__.'/api.log', 'a');
    if ($fp !== false) {
        fwrite($fp, date('r')."\t$message\n");
        fclose($fp);
    }
}

function unparse_url($parsed_url) {
    $scheme   = isset($parsed_url['scheme'])   ? $parsed_url['scheme'].'://'   : '';
    $host     = isset($parsed_url['host'])     ? $parsed_url['host']           : '';
    $port     = isset($parsed_url['port'])     ? ':'.$parsed_url['port']       : '';

    $user     = empty($parsed_url['user'])     ? '' : $parsed_url['user'];
    $pass     = empty($parsed_url['pass'])     ? '' : ':'.$parsed_url['pass'];
    $userpass = ($user || $pass)               ? "$user$pass@"                 : '';

    $path     = isset($parsed_url['path'])     ? $parsed_url['path']           : '';
    $query    = isset($parsed_url['query'])    ? '?'.$parsed_url['query']      : '';
    $fragment = isset($parsed_url['fragment']) ? '#'.$parsed_url['fragment']   : '';

    return "$scheme$userpass$host$port$path$query$fragment";
}

/**
* Decrypt a message
*
* @param string $encrypted - message encrypted with safeEncrypt()
* @param string $key - encryption key
* @return string
*/
function safeDecrypt($encrypted, $key = '__SECRET_KEY__') {
    $decoded = base64_decode($encrypted);
    if ($decoded === false) {
        return '';
    }
    if (mb_strlen($decoded, '8bit') < (SODIUM_CRYPTO_SECRETBOX_NONCEBYTES + SODIUM_CRYPTO_SECRETBOX_MACBYTES)) {
        return '';
    }
    $nonce = mb_substr($decoded, 0, SODIUM_CRYPTO_SECRETBOX_NONCEBYTES, '8bit');
    $ciphertext = mb_substr($decoded, SODIUM_CRYPTO_SECRETBOX_NONCEBYTES, null, '8bit');

    $plain = sodium_crypto_secretbox_open(
        $ciphertext,
        $nonce,
        $key
    );
    if ($plain === false) {
         return '';
    }
    sodium_memzero($ciphertext);
    sodium_memzero($key);
    return $plain;
}

?>
host: localhost
port: 8182
scriptEvaluationTimeout: 300000
channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
graphs: {
  graph: conf/gremlin-server/janusgraph-berkeleyje-server.properties}
plugins:
  - janusgraph.imports
  - tinkerpop.tinkergraph
scriptEngines: {
  gremlin-groovy: {
    imports: [java.lang.Math],
    staticImports: [java.lang.Math.PI],
    scripts: [scripts/empty-sample.groovy]}}
serializers:
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0, config: { ioRegistries: [org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry] }}
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoLiteMessageSerializerV1d0, config: {ioRegistries: [org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry] }}
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0, config: { serializeResultToString: true }}
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV1d0, config: { ioRegistries: [org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry] }}
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV2d0, config: { ioRegistries: [org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry] }}
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0, config: { ioRegistries: [org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry] }}
processors:
  - { className: org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor, config: { sessionTimeout: 28800000 }}
  - { className: org.apache.tinkerpop.gremlin.server.op.traversal.TraversalOpProcessor, config: { cacheExpirationTime: 600000, cacheMaxSize: 1000 }}
metrics: {
  consoleReporter: {enabled: true, interval: 180000},
  csvReporter: {enabled: true, interval: 180000, fileName: /tmp/gremlin-server-metrics.csv},
  jmxReporter: {enabled: true},
  slf4jReporter: {enabled: true, interval: 180000},
  gangliaReporter: {enabled: false, interval: 180000, addressingMode: MULTICAST},
  graphiteReporter: {enabled: false, interval: 180000}}
maxInitialLineLength: 4096
maxHeaderSize: 8192
maxChunkSize: 8192
maxContentLength: 1230008192
maxAccumulationBufferComponents: 1024
resultIterationBatchSize: 64
writeBufferLowWaterMark: 32768
writeBufferHighWaterMark: 16553600
ssl: {
  enabled: false}
   Bud1            %                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 @                                              @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   E   %                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       DSDB                             `                                                     @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              # Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

host: localhost
port: 8182
scriptEvaluationTimeout: 3000000
channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
graphs: {
  graph: conf/tinkergraph-empty.properties}
scriptEngines: {
  gremlin-groovy: {
    plugins: { org.apache.tinkerpop.gremlin.server.jsr223.GremlinServerGremlinPlugin: {},
               org.apache.tinkerpop.gremlin.tinkergraph.jsr223.TinkerGraphGremlinPlugin: {},
               org.apache.tinkerpop.gremlin.jsr223.ImportGremlinPlugin: {classImports: [java.lang.Math], methodImports: [java.lang.Math#*]},
               org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {files: [scripts/empty-sample.groovy]}}}}
serializers:
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV3d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV1d0]  }}        # application/json
processors:
  - { className: org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor, config: { sessionTimeout: 28800000 }}
  - { className: org.apache.tinkerpop.gremlin.server.op.traversal.TraversalOpProcessor, config: { cacheExpirationTime: 600000, cacheMaxSize: 1000 }}
metrics: {
  consoleReporter: {enabled: true, interval: 180000},
  csvReporter: {enabled: true, interval: 180000, fileName: /tmp/gremlin-server-metrics.csv},
  jmxReporter: {enabled: true},
  slf4jReporter: {enabled: true, interval: 180000},
  gangliaReporter: {enabled: false, interval: 180000, addressingMode: MULTICAST},
  graphiteReporter: {enabled: false, interval: 180000}}
strictTransactionManagement: false
maxInitialLineLength: 4096
maxHeaderSize: 8192
maxChunkSize: 8192
maxContentLength: 81928192
maxAccumulationBufferComponents: 1024
resultIterationBatchSize: 64
writeBufferLowWaterMark: 32768
writeBufferHighWaterMark: 81928192
ssl: {
  enabled: false}

#!/bin/bash
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#

### BEGIN INIT INFO
# Provides:          gremlin-server
# Required-Start:    $remote_fs $syslog $network
# Required-Stop:     $remote_fs $syslog $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Gremlin Server
# Description:       Apache Tinkerpop Gremlin Server
# chkconfig:         2345 98 01
### END INIT INFO

[[ -n "$DEBUG" ]] && set -x

SOURCE="$0"
while [[ -h "$SOURCE" ]]; do
  cd -P "$( dirname "$SOURCE" )" || exit 1
  DIR="$(pwd)"
  SOURCE="$(readlink "$SOURCE")"
  [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE"
done
cd -P "$( dirname "$SOURCE" )" || exit 1
GREMLIN_BIN="$(pwd)"

GREMLIN_CONF=$GREMLIN_BIN/gremlin-server.conf

[[ -r $GREMLIN_CONF ]] && source $GREMLIN_CONF
[[ -n "$DEBUG" ]] && set -x

if [[ -z "$GREMLIN_HOME" ]]; then
  cd ..
  GREMLIN_HOME="$(pwd)"
fi

if [[ -z "$LOG_DIR" ]] ; then
  LOG_DIR="$GREMLIN_HOME/logs"
fi

if [[ -z "$LOG_FILE" ]]; then
  LOG_FILE="$LOG_DIR/gremlin.log"
fi

if [[ -z "$PID_DIR" ]] ; then
  PID_DIR="$GREMLIN_HOME/run"
fi

if [[ -z "$PID_FILE" ]]; then
  PID_FILE=$PID_DIR/gremlin.pid
fi

if [[ -z "$GREMLIN_YAML" ]]; then
  GREMLIN_YAML=$GREMLIN_HOME/conf/gremlin-server.yaml
fi

if [[ ! -r "$GREMLIN_YAML" ]]; then
  # try relative to home
  GREMLIN_YAML="$GREMLIN_HOME/$GREMLIN_YAML"
  if [[ ! -r "$GREMLIN_YAML" ]]; then
    echo WARNING: $GREMLIN_YAML is unreadable
  fi
fi

# absolute file path requires 'file:'
LOG4J_CONF="file:$GREMLIN_HOME/conf/log4j-server.properties"

# Find Java
if [[ "$JAVA_HOME" = "" ]] ; then
    JAVA="java"
else
    JAVA="$JAVA_HOME/bin/java"
fi

# Set Java options
if [[ "$JAVA_OPTIONS" = "" ]] ; then
    JAVA_OPTIONS="-Xms32m -Xmx512m"
fi

# Build Java CLASSPATH
CP="$GREMLIN_HOME/conf/"
CP="$CP":$( echo $GREMLIN_HOME/lib/*.jar . | sed 's/ /:/g')
CP="$CP":$( find -L "$GREMLIN_HOME"/ext -mindepth 1 -maxdepth 1 -type d | \
        sort | sed 's/$/\/plugin\/*/' | tr '\n' ':' )

CLASSPATH="${CLASSPATH:-}:$CP"

GREMLIN_SERVER_CMD=org.apache.tinkerpop.gremlin.server.GremlinServer
GREMLIN_INSTALL_CMD=org.apache.tinkerpop.gremlin.server.util.GremlinServerInstall


isRunning() {
  if [[ -r "$PID_FILE" ]] ; then
    PID=$(cat "$PID_FILE")
    ps -p "$PID" &> /dev/null
    return $?
  else
    return 1
  fi
}

status() {
  isRunning
  RUNNING=$?
    if [[ $RUNNING -gt 0 ]]; then
      echo Server not running
    else
      echo Server running with PID $(cat "$PID_FILE")
    fi
}

stop() {
  isRunning
  RUNNING=$?
  if [[ $RUNNING -gt 0 ]]; then
    echo Server not running
    rm -f "$PID_FILE"
  else
    kill "$PID" &> /dev/null || { echo "Unable to kill server [$PID]"; exit 1; }
    for i in $(seq 1 60); do
      ps -p "$PID" &> /dev/null || { echo "Server stopped [$PID]"; rm -f "$PID_FILE"; return 0; }
      [[ $i -eq 30 ]] && kill "$PID" &> /dev/null
      sleep 1
    done
    echo "Unable to kill server [$PID]";
    exit 1;
  fi
}

start() {
  isRunning
  RUNNING=$?
  if [[ $RUNNING -eq 0 ]]; then
    echo Server already running with PID $(cat "$PID_FILE").
    exit 1
  fi

  if [[ -z "$RUNAS" ]]; then

    mkdir -p "$LOG_DIR" &>/dev/null
    if [[ ! -d "$LOG_DIR" ]]; then
      echo ERROR: LOG_DIR $LOG_DIR does not exist and could not be created.
      exit 1
    fi

    mkdir -p "$PID_DIR" &>/dev/null
    if [[ ! -d "$PID_DIR" ]]; then
      echo ERROR: PID_DIR $PID_DIR does not exist and could not be created.
      exit 1
    fi

    $JAVA -Dlog4j.configuration=$LOG4J_CONF $JAVA_OPTIONS -cp $CP:$CLASSPATH $GREMLIN_SERVER_CMD "$GREMLIN_YAML" >> "$LOG_FILE" 2>&1 &
    PID=$!
    disown $PID
    echo $PID > "$PID_FILE"
  else

    su -c "mkdir -p $LOG_DIR &>/dev/null"  "$RUNAS"
    if [[ ! -d "$LOG_DIR" ]]; then
      echo ERROR: LOG_DIR $LOG_DIR does not exist and could not be created.
      exit 1
    fi

    su -c "mkdir -p $PID_DIR &>/dev/null"  "$RUNAS"
    if [[ ! -d "$PID_DIR" ]]; then
      echo ERROR: PID_DIR $PID_DIR does not exist and could not be created.
      exit 1
    fi

    su -c "$JAVA -Dlog4j.configuration=$LOG4J_CONF $JAVA_OPTIONS -cp $CP:$CLASSPATH $GREMLIN_SERVER_CMD \"$GREMLIN_YAML\" >> \"$LOG_FILE\" 2>&1 & echo \$! "  "$RUNAS" > "$PID_FILE"
    chown "$RUNAS" "$PID_FILE"
  fi

  isRunning
  RUNNING=$?
  if [[ $RUNNING -eq 0 ]]; then
    echo Server started $(cat "$PID_FILE").
    exit 0
  else
    echo Server failed
    exit 1
  fi

}

startForeground() {
  isRunning
  RUNNING=$?
  if [[ $RUNNING -eq 0 ]]; then
    echo Server already running with PID $(cat "$PID_FILE").
    exit 1
  fi

  if [[ -z "$RUNAS" ]]; then
    $JAVA -Dlog4j.configuration=$LOG4J_CONF $JAVA_OPTIONS -cp $CP:$CLASSPATH $GREMLIN_SERVER_CMD "$GREMLIN_YAML"
    exit 0
  else
    echo Starting in foreground not supported with RUNAS
    exit 1
  fi

}

install() {

  isRunning
  RUNNING=$?
  if [[ $RUNNING -eq 0 ]]; then
    echo Server must be stopped before installing.
    exit 1
  fi

  echo Installing dependency $@

  DEPS="$@"
  if [[ -z "$RUNAS" ]]; then
    $JAVA -Dlog4j.configuration=$LOG4J_CONF $JAVA_OPTIONS -cp $CP:$CLASSPATH  $GREMLIN_INSTALL_CMD $DEPS
  else
    su -c "$JAVA -Dlog4j.configuration=$LOG4J_CONF $JAVA_OPTIONS -cp $CP:$CLASSPATH $GREMLIN_INSTALL_CMD $DEPS "  "$RUNAS"
  fi

}

case "$1" in
  status)
    if [[ -n "$1" ]] ; then
      if [[ -r "$1" ]]; then
        GREMLIN_YAML="$1"
      fi
    fi
    status
    ;;
  restart)
    stop
    start
    ;;
  start)
    start
    ;;
  stop)
    stop
    ;;
  -i)
    shift
    echo "Redirecting to 'install $@' (-i will be removed in a future release)"
    install "$@"
    ;;
  install)
    shift
    install "$@"
    ;;
  console)
    startForeground
    ;;
  *)
    if [[ -n "$1" ]] ; then
      if [[ -r "$1" ]]; then
        GREMLIN_YAML="$1"
        startForeground
      elif [[ -r "$GREMLIN_HOME/$1" ]] ; then
        GREMLIN_YAML="$GREMLIN_HOME/$1"
        startForeground
      fi
      echo Configuration file not found.
    fi
    echo "Usage: $0 {start|stop|restart|status|console|install <group> <artifact> <version>|<conf file>}"; exit 1;
    ;;
esac
<?php

$phpexec = $argv[1];
$phpversion = $argv[2];
$project_code = $argv[3];
$tmpFileName = $argv[4];
$tmp_dir = dirname($project_code).'/.exakat';

$shell = "cd {$project_code}; cat $tmpFileName" . ' | sed "s/>/\\\\\\\\>/g" | tr "\n" "\0" | xargs -0 -n1 -P2 -I {} sh -c "' . $phpexec . ' -l {} 2>&1 || true "';

$b =  hrtime(true);
$res = shell_exec($shell);
$e =  hrtime(true);

            $incompilables = array('DROP TABLE IF EXISTS compilation'.$phpversion,
<<<SQL
CREATE TABLE compilation{$phpversion} (
  id INTEGER PRIMARY KEY,
  file TEXT,
  error TEXT,
  line id
);
SQL
);

        $total = 0;
        foreach(explode(PHP_EOL, $res) as $resFile) {
            if (trim($resFile) == '') {
                continue; // do nothing. All is fine.
            }

            if ($error  =  isError($resFile)) {
                ++$total;
                $incompilables[] = 'INSERT INTO compilation'.$phpversion.' ("error", "file", "line") VALUES (\''.sqlite3::escapeString($error['error']).'\',\''.sqlite3::escapeString($error['file']).'\','.(int) $error['line'].' )';
            }
        }

        $incompilables[] = 'REPLACE INTO hash ("key", "value") VALUES ("notCompilable'.$phpversion.'",'.$total.')';

    $id = dechex(random_int(0, \PHP_INT_MAX));

    file_put_contents($tmp_dir.'/dump-'.$id.'.php', '<?php $queries = '.var_export($incompilables, true).'; ?>');

    function isError($resFile) {
        if (substr($resFile, 0, 28) == 'No syntax errors detected in') {
            return false;
            // do nothing. All is fine.
        }

        if (substr($resFile, 0, 15) == 'Errors parsing ') {
            return false; // ignore this one
        }

        if (trim($resFile) == '') {
            return false; // do nothing. All is fine.
        }

        if (preg_match('#^(?:PHP )?Parse error: (.+?) in (.+?) on line (\d+)#', $resFile, $r)) {
            $error = array('error' => $r[1],
                                 'file'  => $r[2],
                                 'line'  => $r[3],
                                 );

            return $error;
        }

        if (preg_match('#^(?:PHP )?Deprecated: (.+?) in (.+?) on line (\d+)#', $resFile, $r)) {
            return false;
        }
        
        if (preg_match('#^(?:PHP )?Fatal error: (.+?) in (.+?) on line (\d+)#', $resFile, $r)) {
            $error = array('error' => $r[1],
                                 'file'  => $r[2],
                                 'line'  => $r[3],
                                 );

            return $error;
        }
    
        // Warnings are considered OK.
        if (preg_match('#^(?:PHP )?Warning: (.+?) in (.+?) on line (\d+)#', $resFile, $r)) {
            return false;
        }

        // Notice are considered OK.
        if (preg_match('#^(?:PHP )?Notice: (.+?) in (.+?) on line (\d+)#', $resFile, $r)) {
            return false;
        }

        if (preg_match('#^(?:PHP )?Strict Standards: (.+?) in (.+?) on line (\d+)#', $resFile, $r)) {
            $error = array('error' => $r[1],
                                 'file'  => $r[2],
                                 'line'  => $r[3],
                                 );

            return $error;
        }

        print "\nCan't understand this php feedback : $resFile\n";

        return false;
    }

?><?php

// autoload.php @generated by Composer

require_once __DIR__ . '/composer/autoload_real.php';

return ComposerAutoloaderInit30e87d93a7a9ab176e5b6c4a46fdb428::getLoader();
Copyright (c) https://github.com/GeckoPackages

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.Code from `sebastian/diff` has been forked and republished by permission of Sebastian Bergmann.
Licenced with BSD-3-Clause @ see LICENSE_DIFF, copyright (c) Sebastian Bergmann <sebastian@phpunit.de>

Code from `GeckoPackages/GeckoDiffOutputBuilder` has been copied and republished by permission of GeckoPackages.
Licenced with MIT @ see LICENSE_GECKO, copyright (c) GeckoPackages https://github.com/GeckoPackages
Copyright (c) 2002-2017, Sebastian Bergmann <sebastian@phpunit.de>.
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

 * Redistributions of source code must retain the above copyright
   notice, this list of conditions and the following disclaimer.

 * Redistributions in binary form must reproduce the above copyright
   notice, this list of conditions and the following disclaimer in
   the documentation and/or other materials provided with the
   distribution.

 * Neither the name of Sebastian Bergmann nor the names of his
   contributors may be used to endorse or promote products derived
   from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
# ChangeLog

Changelog for v1.0

First stable release, based on:
https://github.com/sebastianbergmann/diff/releases
1.4.3 and 2.0.1
# PHP-CS-Fixer/diff

This version is for PHP CS Fixer only! Do not use it!

Code from `sebastian/diff` has been forked a republished by permission of Sebastian Bergmann.
Licenced with BSD-3-Clause @ see LICENSE_DIFF, copyright (c) Sebastian Bergmann <sebastian@phpunit.de>
https://github.com/sebastianbergmann/diff

Code from `GeckoPackages/GeckoDiffOutputBuilder` has been copied and republished by permission of GeckoPackages.
Licenced with MIT @ see LICENSE_GECKO, copyright (c) GeckoPackages https://github.com/GeckoPackages
https://github.com/GeckoPackages/GeckoDiffOutputBuilder/

For questions visit us @ https://gitter.im/PHP-CS-Fixer/Lobby
{
    "name": "php-cs-fixer/diff",
    "description": "sebastian/diff v2 backport support for PHP5.6",
    "keywords": ["diff"],
    "homepage": "https://github.com/PHP-CS-Fixer",
    "license": "BSD-3-Clause",
    "authors": [
        {
            "name": "Sebastian Bergmann",
            "email": "sebastian@phpunit.de"
        },
        {
            "name": "Kore Nordmann",
            "email": "mail@kore-nordmann.de"
        },
        {
            "name": "SpacePossum"
        }
    ],
    "require": {
        "php": "^5.6 || ^7.0"
    },
    "require-dev": {
        "phpunit/phpunit": "^5.7.23 || ^6.4.3",
        "symfony/process": "^3.3"
    },
    "autoload": {
        "classmap": [
            "src/"
        ]
    },
    "autoload-dev": {
        "psr-4": {
            "PhpCsFixer\\Diff\\v1_4\\Tests\\": "tests/v1_4",
            "PhpCsFixer\\Diff\\v2_0\\Tests\\": "tests/v2_0",
            "PhpCsFixer\\Diff\\v3_0\\": "tests/v3_0",
            "PhpCsFixer\\Diff\\GeckoPackages\\DiffOutputBuilder\\Tests\\": "tests/GeckoPackages/DiffOutputBuilder/Tests",
            "PhpCsFixer\\Diff\\GeckoPackages\\DiffOutputBuilder\\Utils\\": "tests/GeckoPackages/DiffOutputBuilder/Utils"
        }
    }
}
<?php
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace PhpCsFixer\Diff\v2_0;

final class Diff
{
    /**
     * @var string
     */
    private $from;

    /**
     * @var string
     */
    private $to;

    /**
     * @var Chunk[]
     */
    private $chunks;

    /**
     * @param string  $from
     * @param string  $to
     * @param Chunk[] $chunks
     */
    public function __construct($from, $to, array $chunks = [])
    {
        $this->from   = $from;
        $this->to     = $to;
        $this->chunks = $chunks;
    }

    public function getFrom()
    {
        return $this->from;
    }

    public function getTo()
    {
        return $this->to;
    }

    /**
     * @return Chunk[]
     */
    public function getChunks()
    {
        return $this->chunks;
    }

    /**
     * @param Chunk[] $chunks
     */
    public function setChunks(array $chunks)
    {
        $this->chunks = $chunks;
    }
}
<?php
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace PhpCsFixer\Diff\v2_0;

/**
 * Unified diff parser.
 */
final class Parser
{
    /**
     * @param string $string
     *
     * @return Diff[]
     */
    public function parse($string)
    {
        $lines = \preg_split('(\r\n|\r|\n)', $string);

        if (!empty($lines) && $lines[\count($lines) - 1] === '') {
            \array_pop($lines);
        }

        $lineCount = \count($lines);
        $diffs     = [];
        $diff      = null;
        $collected = [];

        for ($i = 0; $i < $lineCount; ++$i) {
            if (\preg_match('(^---\\s+(?P<file>\\S+))', $lines[$i], $fromMatch) &&
                \preg_match('(^\\+\\+\\+\\s+(?P<file>\\S+))', $lines[$i + 1], $toMatch)) {
                if ($diff !== null) {
                    $this->parseFileDiff($diff, $collected);

                    $diffs[]   = $diff;
                    $collected = [];
                }

                $diff = new Diff($fromMatch['file'], $toMatch['file']);

                ++$i;
            } else {
                if (\preg_match('/^(?:diff --git |index [\da-f\.]+|[+-]{3} [ab])/', $lines[$i])) {
                    continue;
                }

                $collected[] = $lines[$i];
            }
        }

        if ($diff !== null && \count($collected)) {
            $this->parseFileDiff($diff, $collected);

            $diffs[] = $diff;
        }

        return $diffs;
    }

    private function parseFileDiff(Diff $diff, array $lines)
    {
        $chunks = [];
        $chunk  = null;

        foreach ($lines as $line) {
            if (\preg_match('/^@@\s+-(?P<start>\d+)(?:,\s*(?P<startrange>\d+))?\s+\+(?P<end>\d+)(?:,\s*(?P<endrange>\d+))?\s+@@/', $line, $match)) {
                $chunk = new Chunk(
                    (int) $match['start'],
                    isset($match['startrange']) ? \max(1, (int) $match['startrange']) : 1,
                    (int) $match['end'],
                    isset($match['endrange']) ? \max(1, (int) $match['endrange']) : 1
                );

                $chunks[]  = $chunk;
                $diffLines = [];

                continue;
            }

            if (\preg_match('/^(?P<type>[+ -])?(?P<line>.*)/', $line, $match)) {
                $type = Line::UNCHANGED;

                if ($match['type'] === '+') {
                    $type = Line::ADDED;
                } elseif ($match['type'] === '-') {
                    $type = Line::REMOVED;
                }

                $diffLines[] = new Line($type, $match['line']);

                if (null !== $chunk) {
                    $chunk->setLines($diffLines);
                }
            }
        }

        $diff->setChunks($chunks);
    }
}
<?php
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace PhpCsFixer\Diff\v2_0;

final class TimeEfficientLongestCommonSubsequenceCalculator implements LongestCommonSubsequenceCalculator
{
    /**
     * {@inheritdoc}
     */
    public function calculate(array $from, array $to)
    {
        $common     = [];
        $fromLength = \count($from);
        $toLength   = \count($to);
        $width      = $fromLength + 1;
        $matrix     = new \SplFixedArray($width * ($toLength + 1));

        for ($i = 0; $i <= $fromLength; ++$i) {
            $matrix[$i] = 0;
        }

        for ($j = 0; $j <= $toLength; ++$j) {
            $matrix[$j * $width] = 0;
        }

        for ($i = 1; $i <= $fromLength; ++$i) {
            for ($j = 1; $j <= $toLength; ++$j) {
                $o          = ($j * $width) + $i;
                $matrix[$o] = \max(
                    $matrix[$o - 1],
                    $matrix[$o - $width],
                    $from[$i - 1] === $to[$j - 1] ? $matrix[$o - $width - 1] + 1 : 0
                );
            }
        }

        $i = $fromLength;
        $j = $toLength;

        while ($i > 0 && $j > 0) {
            if ($from[$i - 1] === $to[$j - 1]) {
                $common[] = $from[$i - 1];
                --$i;
                --$j;
            } else {
                $o = ($j * $width) + $i;

                if ($matrix[$o - $width] > $matrix[$o - 1]) {
                    --$j;
                } else {
                    --$i;
                }
            }
        }

        return \array_reverse($common);
    }
}
<?php
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PhpCsFixer\Diff\v2_0\Output;

/**
 * Builds a diff string representation in a loose unified diff format
 * listing only changes lines. Does not include line numbers.
 */
final class DiffOnlyOutputBuilder implements DiffOutputBuilderInterface
{
    /**
     * @var string
     */
    private $header;

    public function __construct($header = "--- Original\n+++ New\n")
    {
        $this->header = $header;
    }

    public function getDiff(array $diff)
    {
        $buffer = \fopen('php://memory', 'r+b');

        if ('' !== $this->header) {
            \fwrite($buffer, $this->header);
            if ("\n" !== \substr($this->header, -1, 1)) {
                \fwrite($buffer, "\n");
            }
        }

        foreach ($diff as $diffEntry) {
            if ($diffEntry[1] === 1 /* ADDED */) {
                \fwrite($buffer, '+' . $diffEntry[0]);
            } elseif ($diffEntry[1] === 2 /* REMOVED */) {
                \fwrite($buffer, '-' . $diffEntry[0]);
            } elseif ($diffEntry[1] === 3 /* WARNING */) {
                \fwrite($buffer, ' ' . $diffEntry[0]);

                continue; // Warnings should not be tested for line break, it will always be there
            } else { /* Not changed (old) 0 */
                continue; // we didn't write the non changs line, so do not add a line break either
            }

            $lc = \substr($diffEntry[0], -1);
            if ($lc !== "\n" && $lc !== "\r") {
                \fwrite($buffer, "\n"); // \No newline at end of file
            }
        }

        $diff = \stream_get_contents($buffer, -1, 0);
        \fclose($buffer);

        return $diff;
    }
}
<?php
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PhpCsFixer\Diff\v2_0\Output;

/**
 * Defines how an output builder should take a generated
 * diff array and return a string representation of that diff.
 */
interface DiffOutputBuilderInterface
{
    public function getDiff(array $diff);
}
<?php
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace PhpCsFixer\Diff\v2_0\Output;

/**
 * Builds a diff string representation in unified diff format in chunks.
 */
final class UnifiedDiffOutputBuilder extends AbstractChunkOutputBuilder
{
    /**
     * @var string
     */
    private $header;

    /**
     * @var bool
     */
    private $addLineNumbers;

    public function __construct($header = "--- Original\n+++ New\n", $addLineNumbers = false)
    {
        $this->header         = $header;
        $this->addLineNumbers = $addLineNumbers;
    }

    public function getDiff(array $diff)
    {
        $buffer = \fopen('php://memory', 'r+b');

        if ('' !== $this->header) {
            \fwrite($buffer, $this->header);
            if ("\n" !== \substr($this->header, -1, 1)) {
                \fwrite($buffer, "\n");
            }
        }

        $this->writeDiffChunked($buffer, $diff, $this->getCommonChunks($diff));

        $diff = \stream_get_contents($buffer, -1, 0);

        \fclose($buffer);

        return $diff;
    }

    // `old` is an array with key => value pairs . Each pair represents a start and end index of `diff`
    // of a list of elements all containing `same` (0) entries.
    private function writeDiffChunked($output, array $diff, array $old)
    {
        $upperLimit = \count($diff);
        $start      = 0;
        $fromStart  = 0;
        $toStart    = 0;

        if (\count($old)) { // no common parts, list all diff entries
            \reset($old);

            // iterate the diff, go from chunk to chunk skipping common chunk of lines between those
            do {
                $commonStart = \key($old);
                $commonEnd   = \current($old);

                if ($commonStart !== $start) {
                    list($fromRange, $toRange) = $this->getChunkRange($diff, $start, $commonStart);
                    $this->writeChunk($output, $diff, $start, $commonStart, $fromStart, $fromRange, $toStart, $toRange);

                    $fromStart += $fromRange;
                    $toStart += $toRange;
                }

                $start        = $commonEnd + 1;
                $commonLength = $commonEnd - $commonStart + 1; // calculate number of non-change lines in the common part
                $fromStart += $commonLength;
                $toStart += $commonLength;
            } while (false !== \next($old));

            \end($old); // short cut for finding possible last `change entry`
            $tmp = \key($old);
            \reset($old);
            if ($old[$tmp] === $upperLimit - 1) {
                $upperLimit = $tmp;
            }
        }

        if ($start < $upperLimit - 1) { // check for trailing (non) diff entries
            do {
                --$upperLimit;
            } while (isset($diff[$upperLimit][1]) && $diff[$upperLimit][1] === 0);
            ++$upperLimit;

            list($fromRange, $toRange) = $this->getChunkRange($diff, $start, $upperLimit);
            $this->writeChunk($output, $diff, $start, $upperLimit, $fromStart, $fromRange, $toStart, $toRange);
        }
    }

    private function writeChunk(
        $output,
        array $diff,
        $diffStartIndex,
        $diffEndIndex,
        $fromStart,
        $fromRange,
        $toStart,
        $toRange
    ) {
        if ($this->addLineNumbers) {
            \fwrite($output, '@@ -' . (1 + $fromStart));

            if ($fromRange !== 1) {
                \fwrite($output, ',' . $fromRange);
            }

            \fwrite($output, ' +' . (1 + $toStart));
            if ($toRange !== 1) {
                \fwrite($output, ',' . $toRange);
            }

            \fwrite($output, " @@\n");
        } else {
            \fwrite($output, "@@ @@\n");
        }

        for ($i = $diffStartIndex; $i < $diffEndIndex; ++$i) {
            if ($diff[$i][1] === 1 /* ADDED */) {
                \fwrite($output, '+' . $diff[$i][0]);
            } elseif ($diff[$i][1] === 2 /* REMOVED */) {
                \fwrite($output, '-' . $diff[$i][0]);
            } else { /* Not changed (old) 0 or Warning 3 */
                \fwrite($output, ' ' . $diff[$i][0]);
            }

            $lc = \substr($diff[$i][0], -1);
            if ($lc !== "\n" && $lc !== "\r") {
                \fwrite($output, "\n"); // \No newline at end of file
            }
        }
    }

    private function getChunkRange(array $diff, $diffStartIndex, $diffEndIndex)
    {
        $toRange   = 0;
        $fromRange = 0;

        for ($i = $diffStartIndex; $i < $diffEndIndex; ++$i) {
            if ($diff[$i][1] === 1) { // added
                ++$toRange;
            } elseif ($diff[$i][1] === 2) { // removed
                ++$fromRange;
            } elseif ($diff[$i][1] === 0) { // same
                ++$fromRange;
                ++$toRange;
            }
        }

        return [$fromRange, $toRange];
    }
}
<?php
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace PhpCsFixer\Diff\v2_0\Output;

abstract class AbstractChunkOutputBuilder implements DiffOutputBuilderInterface
{
    /**
     * Takes input of the diff array and returns the common parts.
     * Iterates through diff line by line.
     *
     * @param array $diff
     * @param int   $lineThreshold
     *
     * @return array
     */
    protected function getCommonChunks(array $diff, $lineThreshold = 5)
    {
        $diffSize     = \count($diff);
        $capturing    = false;
        $chunkStart   = 0;
        $chunkSize    = 0;
        $commonChunks = [];

        for ($i = 0; $i < $diffSize; ++$i) {
            if ($diff[$i][1] === 0 /* OLD */) {
                if ($capturing === false) {
                    $capturing  = true;
                    $chunkStart = $i;
                    $chunkSize  = 0;
                } else {
                    ++$chunkSize;
                }
            } elseif ($capturing !== false) {
                if ($chunkSize >= $lineThreshold) {
                    $commonChunks[$chunkStart] = $chunkStart + $chunkSize;
                }

                $capturing = false;
            }
        }

        if ($capturing !== false && $chunkSize >= $lineThreshold) {
            $commonChunks[$chunkStart] = $chunkStart + $chunkSize;
        }

        return $commonChunks;
    }
}
<?php
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace PhpCsFixer\Diff\v2_0;

interface LongestCommonSubsequenceCalculator
{
    /**
     * Calculates the longest common subsequence of two arrays.
     *
     * @param array $from
     * @param array $to
     *
     * @return array
     */
    public function calculate(array $from, array $to);
}
<?php
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace PhpCsFixer\Diff\v2_0;

final class Chunk
{
    /**
     * @var int
     */
    private $start;

    /**
     * @var int
     */
    private $startRange;

    /**
     * @var int
     */
    private $end;

    /**
     * @var int
     */
    private $endRange;

    /**
     * @var array
     */
    private $lines;

    public function __construct($start = 0, $startRange = 1, $end = 0, $endRange = 1, array $lines = [])
    {
        $this->start      = $start;
        $this->startRange = $startRange;
        $this->end        = $end;
        $this->endRange   = $endRange;
        $this->lines      = $lines;
    }

    public function getStart()
    {
        return $this->start;
    }

    public function getStartRange()
    {
        return $this->startRange;
    }

    public function getEnd()
    {
        return $this->end;
    }

    public function getEndRange()
    {
        return $this->endRange;
    }

    public function getLines()
    {
        return $this->lines;
    }

    public function setLines(array $lines)
    {
        $this->lines = $lines;
    }
}
<?php
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace PhpCsFixer\Diff\v2_0;

use PhpCsFixer\Diff\v2_0\Output\DiffOutputBuilderInterface;
use PhpCsFixer\Diff\v2_0\Output\UnifiedDiffOutputBuilder;

/**
 * Diff implementation.
 */
final class Differ
{
    /**
     * @var DiffOutputBuilderInterface
     */
    private $outputBuilder;

    /**
     * @param DiffOutputBuilderInterface $outputBuilder
     *
     * @throws InvalidArgumentException
     */
    public function __construct($outputBuilder = null)
    {
        if ($outputBuilder instanceof DiffOutputBuilderInterface) {
            $this->outputBuilder = $outputBuilder;
        } elseif (null === $outputBuilder) {
            $this->outputBuilder = new UnifiedDiffOutputBuilder;
        } elseif (\is_string($outputBuilder)) {
            // PHPUnit 6.1.4, 6.2.0, 6.2.1, 6.2.2, and 6.2.3 support
            // @see https://github.com/sebastianbergmann/phpunit/issues/2734#issuecomment-314514056
            // @deprecated
            $this->outputBuilder = new UnifiedDiffOutputBuilder($outputBuilder);
        } else {
            throw new InvalidArgumentException(
                \sprintf(
                    'Expected builder to be an instance of DiffOutputBuilderInterface, <null> or a string, got %s.',
                    \is_object($outputBuilder) ? 'instance of "' . \get_class($outputBuilder) . '"' : \gettype($outputBuilder) . ' "' . $outputBuilder . '"'
                )
            );
        }
    }

    /**
     * Returns the diff between two arrays or strings as string.
     *
     * @param array|string                            $from
     * @param array|string                            $to
     * @param LongestCommonSubsequenceCalculator|null $lcs
     *
     * @return string
     */
    public function diff($from, $to, LongestCommonSubsequenceCalculator $lcs = null)
    {
        $from = $this->validateDiffInput($from);
        $to   = $this->validateDiffInput($to);
        $diff = $this->diffToArray($from, $to, $lcs);

        return $this->outputBuilder->getDiff($diff);
    }

    /**
     * Casts variable to string if it is not a string or array.
     *
     * @param mixed $input
     *
     * @return string
     */
    private function validateDiffInput($input)
    {
        if (!\is_array($input) && !\is_string($input)) {
            return (string) $input;
        }

        return $input;
    }

    /**
     * Returns the diff between two arrays or strings as array.
     *
     * Each array element contains two elements:
     *   - [0] => mixed $token
     *   - [1] => 2|1|0
     *
     * - 2: REMOVED: $token was removed from $from
     * - 1: ADDED: $token was added to $from
     * - 0: OLD: $token is not changed in $to
     *
     * @param array|string                       $from
     * @param array|string                       $to
     * @param LongestCommonSubsequenceCalculator $lcs
     *
     * @return array
     */
    public function diffToArray($from, $to, LongestCommonSubsequenceCalculator $lcs = null)
    {
        if (\is_string($from)) {
            $from = $this->splitStringByLines($from);
        } elseif (!\is_array($from)) {
            throw new \InvalidArgumentException('"from" must be an array or string.');
        }

        if (\is_string($to)) {
            $to = $this->splitStringByLines($to);
        } elseif (!\is_array($to)) {
            throw new \InvalidArgumentException('"to" must be an array or string.');
        }

        list($from, $to, $start, $end) = self::getArrayDiffParted($from, $to);

        if ($lcs === null) {
            $lcs = $this->selectLcsImplementation($from, $to);
        }

        $common = $lcs->calculate(\array_values($from), \array_values($to));
        $diff   = [];

        foreach ($start as $token) {
            $diff[] = [$token, 0 /* OLD */];
        }

        \reset($from);
        \reset($to);

        foreach ($common as $token) {
            while (($fromToken = \reset($from)) !== $token) {
                $diff[] = [\array_shift($from), 2 /* REMOVED */];
            }

            while (($toToken = \reset($to)) !== $token) {
                $diff[] = [\array_shift($to), 1 /* ADDED */];
            }

            $diff[] = [$token, 0 /* OLD */];

            \array_shift($from);
            \array_shift($to);
        }

        while (($token = \array_shift($from)) !== null) {
            $diff[] = [$token, 2 /* REMOVED */];
        }

        while (($token = \array_shift($to)) !== null) {
            $diff[] = [$token, 1 /* ADDED */];
        }

        foreach ($end as $token) {
            $diff[] = [$token, 0 /* OLD */];
        }

        if ($this->detectUnmatchedLineEndings($diff)) {
            \array_unshift($diff, ["#Warnings contain different line endings!\n", 3]);
        }

        return $diff;
    }

    /**
     * Checks if input is string, if so it will split it line-by-line.
     *
     * @param string $input
     *
     * @return array
     */
    private function splitStringByLines($input)
    {
        return \preg_split('/(.*\R)/', $input, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
    }

    /**
     * @param array $from
     * @param array $to
     *
     * @return LongestCommonSubsequenceCalculator
     */
    private function selectLcsImplementation(array $from, array $to)
    {
        // We do not want to use the time-efficient implementation if its memory
        // footprint will probably exceed this value. Note that the footprint
        // calculation is only an estimation for the matrix and the LCS method
        // will typically allocate a bit more memory than this.
        $memoryLimit = 100 * 1024 * 1024;

        if ($this->calculateEstimatedFootprint($from, $to) > $memoryLimit) {
            return new MemoryEfficientLongestCommonSubsequenceCalculator;
        }

        return new TimeEfficientLongestCommonSubsequenceCalculator;
    }

    /**
     * Calculates the estimated memory footprint for the DP-based method.
     *
     * @param array $from
     * @param array $to
     *
     * @return int|float
     */
    private function calculateEstimatedFootprint(array $from, array $to)
    {
        $itemSize = PHP_INT_SIZE === 4 ? 76 : 144;

        return $itemSize * \min(\count($from), \count($to)) ** 2;
    }

    /**
     * Returns true if line ends don't match in a diff.
     *
     * @param array $diff
     *
     * @return bool
     */
    private function detectUnmatchedLineEndings(array $diff)
    {
        $newLineBreaks = ['' => true];
        $oldLineBreaks = ['' => true];

        foreach ($diff as $entry) {
            if (0 === $entry[1]) { /* OLD */
                $ln                 = $this->getLinebreak($entry[0]);
                $oldLineBreaks[$ln] = true;
                $newLineBreaks[$ln] = true;
            } elseif (1 === $entry[1]) {  /* ADDED */
                $newLineBreaks[$this->getLinebreak($entry[0])] = true;
            } elseif (2 === $entry[1]) {  /* REMOVED */
                $oldLineBreaks[$this->getLinebreak($entry[0])] = true;
            }
        }

        // if either input or output is a single line without breaks than no warning should be raised
        if (['' => true] === $newLineBreaks || ['' => true] === $oldLineBreaks) {
            return false;
        }

        // two way compare
        foreach ($newLineBreaks as $break => $set) {
            if (!isset($oldLineBreaks[$break])) {
                return true;
            }
        }

        foreach ($oldLineBreaks as $break => $set) {
            if (!isset($newLineBreaks[$break])) {
                return true;
            }
        }

        return false;
    }

    private function getLinebreak($line)
    {
        if (!\is_string($line)) {
            return '';
        }

        $lc = \substr($line, -1);
        if ("\r" === $lc) {
            return "\r";
        }

        if ("\n" !== $lc) {
            return '';
        }

        if ("\r\n" === \substr($line, -2)) {
            return "\r\n";
        }

        return "\n";
    }

    private static function getArrayDiffParted(array &$from, array &$to)
    {
        $start = [];
        $end   = [];

        \reset($to);

        foreach ($from as $k => $v) {
            $toK = \key($to);

            if ($toK === $k && $v === $to[$k]) {
                $start[$k] = $v;

                unset($from[$k], $to[$k]);
            } else {
                break;
            }
        }

        \end($from);
        \end($to);

        do {
            $fromK = \key($from);
            $toK   = \key($to);

            if (null === $fromK || null === $toK || \current($from) !== \current($to)) {
                break;
            }

            \prev($from);
            \prev($to);

            $end = [$fromK => $from[$fromK]] + $end;
            unset($from[$fromK], $to[$toK]);
        } while (true);

        return [$from, $to, $start, $end];
    }
}
<?php
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace PhpCsFixer\Diff\v2_0;

final class Line
{
    const ADDED     = 1;
    const REMOVED   = 2;
    const UNCHANGED = 3;

    /**
     * @var int
     */
    private $type;

    /**
     * @var string
     */
    private $content;

    public function __construct($type = self::UNCHANGED, $content = '')
    {
        $this->type    = $type;
        $this->content = $content;
    }

    public function getContent()
    {
        return $this->content;
    }

    public function getType()
    {
        return $this->type;
    }
}
<?php
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace PhpCsFixer\Diff\v2_0;

class InvalidArgumentException extends \InvalidArgumentException implements Exception
{
}
<?php
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace PhpCsFixer\Diff\v2_0;

interface Exception
{
}
<?php
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace PhpCsFixer\Diff\v2_0;

final class MemoryEfficientLongestCommonSubsequenceCalculator implements LongestCommonSubsequenceCalculator
{
    /**
     * {@inheritdoc}
     */
    public function calculate(array $from, array $to)
    {
        $cFrom = \count($from);
        $cTo   = \count($to);

        if ($cFrom === 0) {
            return [];
        }

        if ($cFrom === 1) {
            if (\in_array($from[0], $to, true)) {
                return [$from[0]];
            }

            return [];
        }

        $i         = (int) ($cFrom / 2);
        $fromStart = \array_slice($from, 0, $i);
        $fromEnd   = \array_slice($from, $i);
        $llB       = $this->length($fromStart, $to);
        $llE       = $this->length(\array_reverse($fromEnd), \array_reverse($to));
        $jMax      = 0;
        $max       = 0;

        for ($j = 0; $j <= $cTo; $j++) {
            $m = $llB[$j] + $llE[$cTo - $j];

            if ($m >= $max) {
                $max  = $m;
                $jMax = $j;
            }
        }

        $toStart = \array_slice($to, 0, $jMax);
        $toEnd   = \array_slice($to, $jMax);

        return \array_merge(
            $this->calculate($fromStart, $toStart),
            $this->calculate($fromEnd, $toEnd)
        );
    }

    private function length(array $from, array $to)
    {
        $current = \array_fill(0, \count($to) + 1, 0);
        $cFrom   = \count($from);
        $cTo     = \count($to);

        for ($i = 0; $i < $cFrom; $i++) {
            $prev = $current;

            for ($j = 0; $j < $cTo; $j++) {
                if ($from[$i] === $to[$j]) {
                    $current[$j + 1] = $prev[$j] + 1;
                } else {
                    $current[$j + 1] = \max($current[$j], $prev[$j + 1]);
                }
            }
        }

        return $current;
    }
}
<?php
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace PhpCsFixer\Diff\v3_0;

final class Diff
{
    /**
     * @var string
     */
    private $from;

    /**
     * @var string
     */
    private $to;

    /**
     * @var Chunk[]
     */
    private $chunks;

    /**
     * @param string  $from
     * @param string  $to
     * @param Chunk[] $chunks
     */
    public function __construct($from, $to, array $chunks = [])
    {
        $this->from   = $from;
        $this->to     = $to;
        $this->chunks = $chunks;
    }

    public function getFrom()
    {
        return $this->from;
    }

    public function getTo()
    {
        return $this->to;
    }

    /**
     * @return Chunk[]
     */
    public function getChunks()
    {
        return $this->chunks;
    }

    /**
     * @param Chunk[] $chunks
     */
    public function setChunks(array $chunks)
    {
        $this->chunks = $chunks;
    }
}
<?php
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace PhpCsFixer\Diff\v3_0;

/**
 * Unified diff parser.
 */
final class Parser
{
    /**
     * @param string $string
     *
     * @return Diff[]
     */
    public function parse($string)
    {
        $lines = \preg_split('(\r\n|\r|\n)', $string);

        if (!empty($lines) && $lines[\count($lines) - 1] === '') {
            \array_pop($lines);
        }

        $lineCount = \count($lines);
        $diffs     = [];
        $diff      = null;
        $collected = [];

        for ($i = 0; $i < $lineCount; ++$i) {
            if (\preg_match('(^---\\s+(?P<file>\\S+))', $lines[$i], $fromMatch) &&
                \preg_match('(^\\+\\+\\+\\s+(?P<file>\\S+))', $lines[$i + 1], $toMatch)) {
                if ($diff !== null) {
                    $this->parseFileDiff($diff, $collected);

                    $diffs[]   = $diff;
                    $collected = [];
                }

                $diff = new Diff($fromMatch['file'], $toMatch['file']);

                ++$i;
            } else {
                if (\preg_match('/^(?:diff --git |index [\da-f\.]+|[+-]{3} [ab])/', $lines[$i])) {
                    continue;
                }

                $collected[] = $lines[$i];
            }
        }

        if ($diff !== null && \count($collected)) {
            $this->parseFileDiff($diff, $collected);

            $diffs[] = $diff;
        }

        return $diffs;
    }

    private function parseFileDiff(Diff $diff, array $lines)
    {
        $chunks = [];
        $chunk  = null;

        foreach ($lines as $line) {
            if (\preg_match('/^@@\s+-(?P<start>\d+)(?:,\s*(?P<startrange>\d+))?\s+\+(?P<end>\d+)(?:,\s*(?P<endrange>\d+))?\s+@@/', $line, $match)) {
                $chunk = new Chunk(
                    (int) $match['start'],
                    isset($match['startrange']) ? \max(1, (int) $match['startrange']) : 1,
                    (int) $match['end'],
                    isset($match['endrange']) ? \max(1, (int) $match['endrange']) : 1
                );

                $chunks[]  = $chunk;
                $diffLines = [];

                continue;
            }

            if (\preg_match('/^(?P<type>[+ -])?(?P<line>.*)/', $line, $match)) {
                $type = Line::UNCHANGED;

                if ($match['type'] === '+') {
                    $type = Line::ADDED;
                } elseif ($match['type'] === '-') {
                    $type = Line::REMOVED;
                }

                $diffLines[] = new Line($type, $match['line']);

                if (null !== $chunk) {
                    $chunk->setLines($diffLines);
                }
            }
        }

        $diff->setChunks($chunks);
    }
}
<?php
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace PhpCsFixer\Diff\v3_0;

final class TimeEfficientLongestCommonSubsequenceCalculator implements LongestCommonSubsequenceCalculator
{
    /**
     * {@inheritdoc}
     */
    public function calculate(array $from, array $to)
    {
        $common     = [];
        $fromLength = \count($from);
        $toLength   = \count($to);
        $width      = $fromLength + 1;
        $matrix     = new \SplFixedArray($width * ($toLength + 1));

        for ($i = 0; $i <= $fromLength; ++$i) {
            $matrix[$i] = 0;
        }

        for ($j = 0; $j <= $toLength; ++$j) {
            $matrix[$j * $width] = 0;
        }

        for ($i = 1; $i <= $fromLength; ++$i) {
            for ($j = 1; $j <= $toLength; ++$j) {
                $o          = ($j * $width) + $i;
                $matrix[$o] = \max(
                    $matrix[$o - 1],
                    $matrix[$o - $width],
                    $from[$i - 1] === $to[$j - 1] ? $matrix[$o - $width - 1] + 1 : 0
                );
            }
        }

        $i = $fromLength;
        $j = $toLength;

        while ($i > 0 && $j > 0) {
            if ($from[$i - 1] === $to[$j - 1]) {
                $common[] = $from[$i - 1];
                --$i;
                --$j;
            } else {
                $o = ($j * $width) + $i;

                if ($matrix[$o - $width] > $matrix[$o - 1]) {
                    --$j;
                } else {
                    --$i;
                }
            }
        }

        return \array_reverse($common);
    }
}
<?php
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace PhpCsFixer\Diff\v3_0\Output;

use PhpCsFixer\Diff\v3_0\Differ;

/**
 * Builds a diff string representation in a loose unified diff format
 * listing only changes lines. Does not include line numbers.
 */
final class DiffOnlyOutputBuilder implements DiffOutputBuilderInterface
{
    /**
     * @var string
     */
    private $header;

    public function __construct($header = "--- Original\n+++ New\n")
    {
        $this->header = $header;
    }

    public function getDiff(array $diff)
    {
        $buffer = \fopen('php://memory', 'r+b');

        if ('' !== $this->header) {
            \fwrite($buffer, $this->header);
            if ("\n" !== \substr($this->header, -1, 1)) {
                \fwrite($buffer, "\n");
            }
        }

        foreach ($diff as $diffEntry) {
            if ($diffEntry[1] === Differ::ADDED) {
                \fwrite($buffer, '+' . $diffEntry[0]);
            } elseif ($diffEntry[1] === Differ::REMOVED) {
                \fwrite($buffer, '-' . $diffEntry[0]);
            } elseif ($diffEntry[1] === Differ::DIFF_LINE_END_WARNING) {
                \fwrite($buffer, ' ' . $diffEntry[0]);

                continue; // Warnings should not be tested for line break, it will always be there
            } else { /* Not changed (old) 0 */
                continue; // we didn't write the non changs line, so do not add a line break either
            }

            $lc = \substr($diffEntry[0], -1);
            if ($lc !== "\n" && $lc !== "\r") {
                \fwrite($buffer, "\n"); // \No newline at end of file
            }
        }

        $diff = \stream_get_contents($buffer, -1, 0);
        \fclose($buffer);

        return $diff;
    }
}
<?php
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace PhpCsFixer\Diff\v3_0\Output;

/**
 * Defines how an output builder should take a generated
 * diff array and return a string representation of that diff.
 */
interface DiffOutputBuilderInterface
{
    public function getDiff(array $diff);
}
<?php
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace PhpCsFixer\Diff\v3_0\Output;

use PhpCsFixer\Diff\v3_0\Differ;

/**
 * Builds a diff string representation in unified diff format in chunks.
 */
final class UnifiedDiffOutputBuilder extends AbstractChunkOutputBuilder
{
    /**
     * @var bool
     */
    private $collapseRanges = true;

    /**
     * @var int >= 0
     */
    private $commonLineThreshold = 6;

    /**
     * @var int >= 0
     */
    private $contextLines = 3;

    /**
     * @var string
     */
    private $header;

    /**
     * @var bool
     */
    private $addLineNumbers;

    public function __construct($header = "--- Original\n+++ New\n", $addLineNumbers = false)
    {
        $this->header         = $header;
        $this->addLineNumbers = $addLineNumbers;
    }

    public function getDiff(array $diff)
    {
        $buffer = \fopen('php://memory', 'r+b');

        if ('' !== $this->header) {
            \fwrite($buffer, $this->header);
            if ("\n" !== \substr($this->header, -1, 1)) {
                \fwrite($buffer, "\n");
            }
        }

        if (0 !== \count($diff)) {
            $this->writeDiffHunks($buffer, $diff);
        }

        $diff = \stream_get_contents($buffer, -1, 0);

        \fclose($buffer);

        // If the last char is not a linebreak: add it.
        // This might happen when both the `from` and `to` do not have a trailing linebreak
        $last = \substr($diff, -1);

        return "\n" !== $last && "\r" !== $last
            ? $diff . "\n"
            : $diff
        ;
    }

    private function writeDiffHunks($output, array $diff)
    {
        // detect "No newline at end of file" and insert into `$diff` if needed

        $upperLimit = \count($diff);

        if (0 === $diff[$upperLimit - 1][1]) {
            $lc = \substr($diff[$upperLimit - 1][0], -1);
            if ("\n" !== $lc) {
                \array_splice($diff, $upperLimit, 0, [["\n\\ No newline at end of file\n", Differ::NO_LINE_END_EOF_WARNING]]);
            }
        } else {
            // search back for the last `+` and `-` line,
            // check if has trailing linebreak, else add under it warning under it
            $toFind = [1 => true, 2 => true];
            for ($i = $upperLimit - 1; $i >= 0; --$i) {
                if (isset($toFind[$diff[$i][1]])) {
                    unset($toFind[$diff[$i][1]]);
                    $lc = \substr($diff[$i][0], -1);
                    if ("\n" !== $lc) {
                        \array_splice($diff, $i + 1, 0, [["\n\\ No newline at end of file\n", Differ::NO_LINE_END_EOF_WARNING]]);
                    }

                    if (!\count($toFind)) {
                        break;
                    }
                }
            }
        }

        // write hunks to output buffer

        $cutOff      = \max($this->commonLineThreshold, $this->contextLines);
        $hunkCapture = false;
        $sameCount   = $toRange   = $fromRange = 0;
        $toStart     = $fromStart = 1;

        foreach ($diff as $i => $entry) {
            if (0 === $entry[1]) { // same
                if (false === $hunkCapture) {
                    ++$fromStart;
                    ++$toStart;

                    continue;
                }

                ++$sameCount;
                ++$toRange;
                ++$fromRange;

                if ($sameCount === $cutOff) {
                    $contextStartOffset = ($hunkCapture - $this->contextLines) < 0
                        ? $hunkCapture
                        : $this->contextLines
                    ;

                    // note: $contextEndOffset = $this->contextLines;
                    //
                    // because we never go beyond the end of the diff.
                    // with the cutoff/contextlines here the follow is never true;
                    //
                    // if ($i - $cutOff + $this->contextLines + 1 > \count($diff)) {
                    //    $contextEndOffset = count($diff) - 1;
                    // }
                    //
                    // ; that would be true for a trailing incomplete hunk case which is dealt with after this loop

                    $this->writeHunk(
                        $diff,
                        $hunkCapture - $contextStartOffset,
                        $i - $cutOff + $this->contextLines + 1,
                        $fromStart - $contextStartOffset,
                        $fromRange - $cutOff + $contextStartOffset + $this->contextLines,
                        $toStart - $contextStartOffset,
                        $toRange - $cutOff + $contextStartOffset + $this->contextLines,
                        $output
                    );

                    $fromStart += $fromRange;
                    $toStart += $toRange;

                    $hunkCapture = false;
                    $sameCount   = $toRange = $fromRange = 0;
                }

                continue;
            }

            $sameCount = 0;

            if ($entry[1] === Differ::NO_LINE_END_EOF_WARNING) {
                continue;
            }

            if (false === $hunkCapture) {
                $hunkCapture = $i;
            }

            if (Differ::ADDED === $entry[1]) {
                ++$toRange;
            }

            if (Differ::REMOVED === $entry[1]) {
                ++$fromRange;
            }
        }

        if (false === $hunkCapture) {
            return;
        }

        // we end here when cutoff (commonLineThreshold) was not reached, but we where capturing a hunk,
        // do not render hunk till end automatically because the number of context lines might be less than the commonLineThreshold

        $contextStartOffset = $hunkCapture - $this->contextLines < 0
            ? $hunkCapture
            : $this->contextLines
        ;

        // prevent trying to write out more common lines than there are in the diff _and_
        // do not write more than configured through the context lines
        $contextEndOffset = \min($sameCount, $this->contextLines);

        $fromRange -= $sameCount;
        $toRange -= $sameCount;

        $this->writeHunk(
            $diff,
            $hunkCapture - $contextStartOffset,
            $i - $sameCount + $contextEndOffset + 1,
            $fromStart - $contextStartOffset,
            $fromRange + $contextStartOffset + $contextEndOffset,
            $toStart - $contextStartOffset,
            $toRange + $contextStartOffset + $contextEndOffset,
            $output
        );
    }

    private function writeHunk(
        array $diff,
        $diffStartIndex,
        $diffEndIndex,
        $fromStart,
        $fromRange,
        $toStart,
        $toRange,
        $output
    ) {
        if ($this->addLineNumbers) {
            \fwrite($output, '@@ -' . $fromStart);

            if (!$this->collapseRanges || 1 !== $fromRange) {
                \fwrite($output, ',' . $fromRange);
            }

            \fwrite($output, ' +' . $toStart);
            if (!$this->collapseRanges || 1 !== $toRange) {
                \fwrite($output, ',' . $toRange);
            }

            \fwrite($output, " @@\n");
        } else {
            \fwrite($output, "@@ @@\n");
        }

        for ($i = $diffStartIndex; $i < $diffEndIndex; ++$i) {
            if ($diff[$i][1] === Differ::ADDED) {
                \fwrite($output, '+' . $diff[$i][0]);
            } elseif ($diff[$i][1] === Differ::REMOVED) {
                \fwrite($output, '-' . $diff[$i][0]);
            } elseif ($diff[$i][1] === Differ::OLD) {
                \fwrite($output, ' ' . $diff[$i][0]);
            } elseif ($diff[$i][1] === Differ::NO_LINE_END_EOF_WARNING) {
                \fwrite($output, "\n"); // $diff[$i][0]
            } else { /* Not changed (old) Differ::OLD or Warning Differ::DIFF_LINE_END_WARNING */
                \fwrite($output, ' ' . $diff[$i][0]);
            }
        }
    }
}
<?php
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace PhpCsFixer\Diff\v3_0\Output;

use PhpCsFixer\Diff\v3_0\ConfigurationException;
use PhpCsFixer\Diff\v3_0\Differ;

/**
 * Strict Unified diff output builder.
 *
 * Generates (strict) Unified diff's (unidiffs) with hunks.
 */
final class StrictUnifiedDiffOutputBuilder implements DiffOutputBuilderInterface
{
    /**
     * @var bool
     */
    private $changed;

    /**
     * @var bool
     */
    private $collapseRanges;

    /**
     * @var int >= 0
     */
    private $commonLineThreshold;

    /**
     * @var string
     */
    private $header;

    /**
     * @var int >= 0
     */
    private $contextLines;

    private static $default = [
        'collapseRanges'      => true, // ranges of length one are rendered with the trailing `,1`
        'commonLineThreshold' => 6,    // number of same lines before ending a new hunk and creating a new one (if needed)
        'contextLines'        => 3,    // like `diff:  -u, -U NUM, --unified[=NUM]`, for patch/git apply compatibility best to keep at least @ 3
        'fromFile'            => null,
        'fromFileDate'        => null,
        'toFile'              => null,
        'toFileDate'          => null,
    ];

    public function __construct(array $options = [])
    {
        $options = \array_merge(self::$default, $options);

        if (!\is_bool($options['collapseRanges'])) {
            throw new ConfigurationException('collapseRanges', 'a bool', $options['collapseRanges']);
        }

        if (!\is_int($options['contextLines']) || $options['contextLines'] < 0) {
            throw new ConfigurationException('contextLines', 'an int >= 0', $options['contextLines']);
        }

        if (!\is_int($options['commonLineThreshold']) || $options['commonLineThreshold'] <= 0) {
            throw new ConfigurationException('commonLineThreshold', 'an int > 0', $options['commonLineThreshold']);
        }

        foreach (['fromFile', 'toFile'] as $option) {
            if (!\is_string($options[$option])) {
                throw new ConfigurationException($option, 'a string', $options[$option]);
            }
        }

        foreach (['fromFileDate', 'toFileDate'] as $option) {
            if (null !== $options[$option] && !\is_string($options[$option])) {
                throw new ConfigurationException($option, 'a string or <null>', $options[$option]);
            }
        }

        $this->header = \sprintf(
            "--- %s%s\n+++ %s%s\n",
            $options['fromFile'],
            null === $options['fromFileDate'] ? '' : "\t" . $options['fromFileDate'],
            $options['toFile'],
            null === $options['toFileDate'] ? '' : "\t" . $options['toFileDate']
        );

        $this->collapseRanges      = $options['collapseRanges'];
        $this->commonLineThreshold = $options['commonLineThreshold'];
        $this->contextLines        = $options['contextLines'];
    }

    public function getDiff(array $diff)
    {
        if (0 === \count($diff)) {
            return '';
        }

        $this->changed = false;

        $buffer = \fopen('php://memory', 'r+b');
        \fwrite($buffer, $this->header);

        $this->writeDiffHunks($buffer, $diff);

        if (!$this->changed) {
            \fclose($buffer);

            return '';
        }

        $diff = \stream_get_contents($buffer, -1, 0);

        \fclose($buffer);

        // If the last char is not a linebreak: add it.
        // This might happen when both the `from` and `to` do not have a trailing linebreak
        $last = \substr($diff, -1);

        return "\n" !== $last && "\r" !== $last
            ? $diff . "\n"
            : $diff
        ;
    }

    private function writeDiffHunks($output, array $diff)
    {
        // detect "No newline at end of file" and insert into `$diff` if needed

        $upperLimit = \count($diff);

        if (0 === $diff[$upperLimit - 1][1]) {
            $lc = \substr($diff[$upperLimit - 1][0], -1);
            if ("\n" !== $lc) {
                \array_splice($diff, $upperLimit, 0, [["\n\\ No newline at end of file\n", Differ::NO_LINE_END_EOF_WARNING]]);
            }
        } else {
            // search back for the last `+` and `-` line,
            // check if has trailing linebreak, else add under it warning under it
            $toFind = [1 => true, 2 => true];
            for ($i = $upperLimit - 1; $i >= 0; --$i) {
                if (isset($toFind[$diff[$i][1]])) {
                    unset($toFind[$diff[$i][1]]);
                    $lc = \substr($diff[$i][0], -1);
                    if ("\n" !== $lc) {
                        \array_splice($diff, $i + 1, 0, [["\n\\ No newline at end of file\n", Differ::NO_LINE_END_EOF_WARNING]]);
                    }

                    if (!\count($toFind)) {
                        break;
                    }
                }
            }
        }

        // write hunks to output buffer

        $cutOff      = \max($this->commonLineThreshold, $this->contextLines);
        $hunkCapture = false;
        $sameCount   = $toRange = $fromRange = 0;
        $toStart     = $fromStart = 1;

        foreach ($diff as $i => $entry) {
            if (0 === $entry[1]) { // same
                if (false === $hunkCapture) {
                    ++$fromStart;
                    ++$toStart;

                    continue;
                }

                ++$sameCount;
                ++$toRange;
                ++$fromRange;

                if ($sameCount === $cutOff) {
                    $contextStartOffset = ($hunkCapture - $this->contextLines) < 0
                        ? $hunkCapture
                        : $this->contextLines
                    ;

                    // note: $contextEndOffset = $this->contextLines;
                    //
                    // because we never go beyond the end of the diff.
                    // with the cutoff/contextlines here the follow is never true;
                    //
                    // if ($i - $cutOff + $this->contextLines + 1 > \count($diff)) {
                    //    $contextEndOffset = count($diff) - 1;
                    // }
                    //
                    // ; that would be true for a trailing incomplete hunk case which is dealt with after this loop

                    $this->writeHunk(
                        $diff,
                        $hunkCapture - $contextStartOffset,
                        $i - $cutOff + $this->contextLines + 1,
                        $fromStart - $contextStartOffset,
                        $fromRange - $cutOff + $contextStartOffset + $this->contextLines,
                        $toStart - $contextStartOffset,
                        $toRange - $cutOff + $contextStartOffset + $this->contextLines,
                        $output
                    );

                    $fromStart += $fromRange;
                    $toStart += $toRange;

                    $hunkCapture = false;
                    $sameCount   = $toRange = $fromRange = 0;
                }

                continue;
            }

            $sameCount = 0;

            if ($entry[1] === Differ::NO_LINE_END_EOF_WARNING) {
                continue;
            }

            $this->changed = true;

            if (false === $hunkCapture) {
                $hunkCapture = $i;
            }

            if (Differ::ADDED === $entry[1]) { // added
                ++$toRange;
            }

            if (Differ::REMOVED === $entry[1]) { // removed
                ++$fromRange;
            }
        }

        if (false === $hunkCapture) {
            return;
        }

        // we end here when cutoff (commonLineThreshold) was not reached, but we where capturing a hunk,
        // do not render hunk till end automatically because the number of context lines might be less than the commonLineThreshold

        $contextStartOffset = $hunkCapture - $this->contextLines < 0
            ? $hunkCapture
            : $this->contextLines
        ;

        // prevent trying to write out more common lines than there are in the diff _and_
        // do not write more than configured through the context lines
        $contextEndOffset = \min($sameCount, $this->contextLines);

        $fromRange -= $sameCount;
        $toRange -= $sameCount;

        $this->writeHunk(
            $diff,
            $hunkCapture - $contextStartOffset,
            $i - $sameCount + $contextEndOffset + 1,
            $fromStart - $contextStartOffset,
            $fromRange + $contextStartOffset + $contextEndOffset,
            $toStart - $contextStartOffset,
            $toRange + $contextStartOffset + $contextEndOffset,
            $output
        );
    }

    private function writeHunk(
        array $diff,
        $diffStartIndex,
        $diffEndIndex,
        $fromStart,
        $fromRange,
        $toStart,
        $toRange,
        $output
    ) {
        \fwrite($output, '@@ -' . $fromStart);

        if (!$this->collapseRanges || 1 !== $fromRange) {
            \fwrite($output, ',' . $fromRange);
        }

        \fwrite($output, ' +' . $toStart);
        if (!$this->collapseRanges || 1 !== $toRange) {
            \fwrite($output, ',' . $toRange);
        }

        \fwrite($output, " @@\n");

        for ($i = $diffStartIndex; $i < $diffEndIndex; ++$i) {
            if ($diff[$i][1] === Differ::ADDED) {
                $this->changed = true;
                \fwrite($output, '+' . $diff[$i][0]);
            } elseif ($diff[$i][1] === Differ::REMOVED) {
                $this->changed = true;
                \fwrite($output, '-' . $diff[$i][0]);
            } elseif ($diff[$i][1] === Differ::OLD) {
                \fwrite($output, ' ' . $diff[$i][0]);
            } elseif ($diff[$i][1] === Differ::NO_LINE_END_EOF_WARNING) {
                $this->changed = true;
                \fwrite($output, $diff[$i][0]);
            }
            //} elseif ($diff[$i][1] === Differ::DIFF_LINE_END_WARNING) { // custom comment inserted by PHPUnit/diff package
                //  skip
            //} else {
                //  unknown/invalid
            //}
        }
    }
}
<?php
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace PhpCsFixer\Diff\v3_0\Output;

abstract class AbstractChunkOutputBuilder implements DiffOutputBuilderInterface
{
    /**
     * Takes input of the diff array and returns the common parts.
     * Iterates through diff line by line.
     *
     * @param array $diff
     * @param int   $lineThreshold
     *
     * @return array
     */
    protected function getCommonChunks(array $diff, $lineThreshold = 5)
    {
        $diffSize     = \count($diff);
        $capturing    = false;
        $chunkStart   = 0;
        $chunkSize    = 0;
        $commonChunks = [];

        for ($i = 0; $i < $diffSize; ++$i) {
            if ($diff[$i][1] === 0 /* OLD */) {
                if ($capturing === false) {
                    $capturing  = true;
                    $chunkStart = $i;
                    $chunkSize  = 0;
                } else {
                    ++$chunkSize;
                }
            } elseif ($capturing !== false) {
                if ($chunkSize >= $lineThreshold) {
                    $commonChunks[$chunkStart] = $chunkStart + $chunkSize;
                }

                $capturing = false;
            }
        }

        if ($capturing !== false && $chunkSize >= $lineThreshold) {
            $commonChunks[$chunkStart] = $chunkStart + $chunkSize;
        }

        return $commonChunks;
    }
}
<?php
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace PhpCsFixer\Diff\v3_0;

interface LongestCommonSubsequenceCalculator
{
    /**
     * Calculates the longest common subsequence of two arrays.
     *
     * @param array $from
     * @param array $to
     *
     * @return array
     */
    public function calculate(array $from, array $to);
}
<?php
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace PhpCsFixer\Diff\v3_0;

final class Chunk
{
    /**
     * @var int
     */
    private $start;

    /**
     * @var int
     */
    private $startRange;

    /**
     * @var int
     */
    private $end;

    /**
     * @var int
     */
    private $endRange;

    /**
     * @var array
     */
    private $lines;

    public function __construct($start = 0, $startRange = 1, $end = 0, $endRange = 1, array $lines = [])
    {
        $this->start      = $start;
        $this->startRange = $startRange;
        $this->end        = $end;
        $this->endRange   = $endRange;
        $this->lines      = $lines;
    }

    public function getStart()
    {
        return $this->start;
    }

    public function getStartRange()
    {
        return $this->startRange;
    }

    public function getEnd()
    {
        return $this->end;
    }

    public function getEndRange()
    {
        return $this->endRange;
    }

    public function getLines()
    {
        return $this->lines;
    }

    public function setLines(array $lines)
    {
        $this->lines = $lines;
    }
}
<?php
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace PhpCsFixer\Diff\v3_0;

use PhpCsFixer\Diff\v3_0\Output\DiffOutputBuilderInterface;
use PhpCsFixer\Diff\v3_0\Output\UnifiedDiffOutputBuilder;

/**
 * Diff implementation.
 */
final class Differ
{
    const OLD                     = 0;
    const ADDED                   = 1;
    const REMOVED                 = 2;
    const DIFF_LINE_END_WARNING   = 3;
    const NO_LINE_END_EOF_WARNING = 4;

    /**
     * @var DiffOutputBuilderInterface
     */
    private $outputBuilder;

    /**
     * @param DiffOutputBuilderInterface $outputBuilder
     *
     * @throws InvalidArgumentException
     */
    public function __construct($outputBuilder = null)
    {
        if ($outputBuilder instanceof DiffOutputBuilderInterface) {
            $this->outputBuilder = $outputBuilder;
        } elseif (null === $outputBuilder) {
            $this->outputBuilder = new UnifiedDiffOutputBuilder;
        } elseif (\is_string($outputBuilder)) {
            // PHPUnit 6.1.4, 6.2.0, 6.2.1, 6.2.2, and 6.2.3 support
            // @see https://github.com/sebastianbergmann/phpunit/issues/2734#issuecomment-314514056
            // @deprecated
            $this->outputBuilder = new UnifiedDiffOutputBuilder($outputBuilder);
        } else {
            throw new InvalidArgumentException(
                \sprintf(
                    'Expected builder to be an instance of DiffOutputBuilderInterface, <null> or a string, got %s.',
                    \is_object($outputBuilder) ? 'instance of "' . \get_class($outputBuilder) . '"' : \gettype($outputBuilder) . ' "' . $outputBuilder . '"'
                )
            );
        }
    }

    /**
     * Returns the diff between two arrays or strings as string.
     *
     * @param array|string                            $from
     * @param array|string                            $to
     * @param null|LongestCommonSubsequenceCalculator $lcs
     *
     * @return string
     */
    public function diff($from, $to, LongestCommonSubsequenceCalculator $lcs = null)
    {
        $diff = $this->diffToArray(
            $this->normalizeDiffInput($from),
            $this->normalizeDiffInput($to),
            $lcs
        );

        return $this->outputBuilder->getDiff($diff);
    }

    /**
     * Returns the diff between two arrays or strings as array.
     *
     * Each array element contains two elements:
     *   - [0] => mixed $token
     *   - [1] => 2|1|0
     *
     * - 2: REMOVED: $token was removed from $from
     * - 1: ADDED: $token was added to $from
     * - 0: OLD: $token is not changed in $to
     *
     * @param array|string                       $from
     * @param array|string                       $to
     * @param LongestCommonSubsequenceCalculator $lcs
     *
     * @return array
     */
    public function diffToArray($from, $to, LongestCommonSubsequenceCalculator $lcs = null)
    {
        if (\is_string($from)) {
            $from = $this->splitStringByLines($from);
        } elseif (!\is_array($from)) {
            throw new InvalidArgumentException('"from" must be an array or string.');
        }

        if (\is_string($to)) {
            $to = $this->splitStringByLines($to);
        } elseif (!\is_array($to)) {
            throw new InvalidArgumentException('"to" must be an array or string.');
        }

        list($from, $to, $start, $end) = self::getArrayDiffParted($from, $to);

        if ($lcs === null) {
            $lcs = $this->selectLcsImplementation($from, $to);
        }

        $common = $lcs->calculate(\array_values($from), \array_values($to));
        $diff   = [];

        foreach ($start as $token) {
            $diff[] = [$token, self::OLD];
        }

        \reset($from);
        \reset($to);

        foreach ($common as $token) {
            while (($fromToken = \reset($from)) !== $token) {
                $diff[] = [\array_shift($from), self::REMOVED];
            }

            while (($toToken = \reset($to)) !== $token) {
                $diff[] = [\array_shift($to), self::ADDED];
            }

            $diff[] = [$token, self::OLD];

            \array_shift($from);
            \array_shift($to);
        }

        while (($token = \array_shift($from)) !== null) {
            $diff[] = [$token, self::REMOVED];
        }

        while (($token = \array_shift($to)) !== null) {
            $diff[] = [$token, self::ADDED];
        }

        foreach ($end as $token) {
            $diff[] = [$token, self::OLD];
        }

        if ($this->detectUnmatchedLineEndings($diff)) {
            \array_unshift($diff, ["#Warnings contain different line endings!\n", self::DIFF_LINE_END_WARNING]);
        }

        return $diff;
    }

    /**
     * Casts variable to string if it is not a string or array.
     *
     * @param mixed $input
     *
     * @return array|string
     */
    private function normalizeDiffInput($input)
    {
        if (!\is_array($input) && !\is_string($input)) {
            return (string) $input;
        }

        return $input;
    }

    /**
     * Checks if input is string, if so it will split it line-by-line.
     *
     * @param string $input
     *
     * @return array
     */
    private function splitStringByLines($input)
    {
        return \preg_split('/(.*\R)/', $input, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
    }

    /**
     * @param array $from
     * @param array $to
     *
     * @return LongestCommonSubsequenceCalculator
     */
    private function selectLcsImplementation(array $from, array $to)
    {
        // We do not want to use the time-efficient implementation if its memory
        // footprint will probably exceed this value. Note that the footprint
        // calculation is only an estimation for the matrix and the LCS method
        // will typically allocate a bit more memory than this.
        $memoryLimit = 100 * 1024 * 1024;

        if ($this->calculateEstimatedFootprint($from, $to) > $memoryLimit) {
            return new MemoryEfficientLongestCommonSubsequenceCalculator;
        }

        return new TimeEfficientLongestCommonSubsequenceCalculator;
    }

    /**
     * Calculates the estimated memory footprint for the DP-based method.
     *
     * @param array $from
     * @param array $to
     *
     * @return float|int
     */
    private function calculateEstimatedFootprint(array $from, array $to)
    {
        $itemSize = PHP_INT_SIZE === 4 ? 76 : 144;

        return $itemSize * \min(\count($from), \count($to)) ** 2;
    }

    /**
     * Returns true if line ends don't match in a diff.
     *
     * @param array $diff
     *
     * @return bool
     */
    private function detectUnmatchedLineEndings(array $diff)
    {
        $newLineBreaks = ['' => true];
        $oldLineBreaks = ['' => true];

        foreach ($diff as $entry) {
            if (self::OLD === $entry[1]) {
                $ln                 = $this->getLinebreak($entry[0]);
                $oldLineBreaks[$ln] = true;
                $newLineBreaks[$ln] = true;
            } elseif (self::ADDED === $entry[1]) {
                $newLineBreaks[$this->getLinebreak($entry[0])] = true;
            } elseif (self::REMOVED === $entry[1]) {
                $oldLineBreaks[$this->getLinebreak($entry[0])] = true;
            }
        }

        // if either input or output is a single line without breaks than no warning should be raised
        if (['' => true] === $newLineBreaks || ['' => true] === $oldLineBreaks) {
            return false;
        }

        // two way compare
        foreach ($newLineBreaks as $break => $set) {
            if (!isset($oldLineBreaks[$break])) {
                return true;
            }
        }

        foreach ($oldLineBreaks as $break => $set) {
            if (!isset($newLineBreaks[$break])) {
                return true;
            }
        }

        return false;
    }

    private function getLinebreak($line)
    {
        if (!\is_string($line)) {
            return '';
        }

        $lc = \substr($line, -1);
        if ("\r" === $lc) {
            return "\r";
        }

        if ("\n" !== $lc) {
            return '';
        }

        if ("\r\n" === \substr($line, -2)) {
            return "\r\n";
        }

        return "\n";
    }

    private static function getArrayDiffParted(array &$from, array &$to)
    {
        $start = [];
        $end   = [];

        \reset($to);

        foreach ($from as $k => $v) {
            $toK = \key($to);

            if ($toK === $k && $v === $to[$k]) {
                $start[$k] = $v;

                unset($from[$k], $to[$k]);
            } else {
                break;
            }
        }

        \end($from);
        \end($to);

        do {
            $fromK = \key($from);
            $toK   = \key($to);

            if (null === $fromK || null === $toK || \current($from) !== \current($to)) {
                break;
            }

            \prev($from);
            \prev($to);

            $end = [$fromK => $from[$fromK]] + $end;
            unset($from[$fromK], $to[$toK]);
        } while (true);

        return [$from, $to, $start, $end];
    }
}
<?php
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace PhpCsFixer\Diff\v3_0;

final class Line
{
    const ADDED     = 1;
    const REMOVED   = 2;
    const UNCHANGED = 3;

    /**
     * @var int
     */
    private $type;

    /**
     * @var string
     */
    private $content;

    public function __construct($type = self::UNCHANGED, $content = '')
    {
        $this->type    = $type;
        $this->content = $content;
    }

    public function getContent()
    {
        return $this->content;
    }

    public function getType()
    {
        return $this->type;
    }
}
<?php
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace PhpCsFixer\Diff\v3_0;

final class ConfigurationException extends InvalidArgumentException
{
    /**
     * @param string          $option
     * @param string          $expected
     * @param mixed           $value
     * @param int             $code
     * @param null|\Exception $previous
     */
    public function __construct(
        $option,
        $expected,
        $value,
        $code = 0,
        \Exception $previous = null
    ) {
        parent::__construct(
            \sprintf(
                'Option "%s" must be %s, got "%s".',
                $option,
                $expected,
                \is_object($value) ? \get_class($value) : (null === $value ? '<null>' : \gettype($value) . '#' . $value)
            ),
            $code,
            $previous
        );
    }
}
<?php
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace PhpCsFixer\Diff\v3_0;

class InvalidArgumentException extends \InvalidArgumentException implements Exception
{
}
<?php
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace PhpCsFixer\Diff\v3_0;

interface Exception
{
}
<?php
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace PhpCsFixer\Diff\v3_0;

final class MemoryEfficientLongestCommonSubsequenceCalculator implements LongestCommonSubsequenceCalculator
{
    /**
     * {@inheritdoc}
     */
    public function calculate(array $from, array $to)
    {
        $cFrom = \count($from);
        $cTo   = \count($to);

        if ($cFrom === 0) {
            return [];
        }

        if ($cFrom === 1) {
            if (\in_array($from[0], $to, true)) {
                return [$from[0]];
            }

            return [];
        }

        $i         = (int) ($cFrom / 2);
        $fromStart = \array_slice($from, 0, $i);
        $fromEnd   = \array_slice($from, $i);
        $llB       = $this->length($fromStart, $to);
        $llE       = $this->length(\array_reverse($fromEnd), \array_reverse($to));
        $jMax      = 0;
        $max       = 0;

        for ($j = 0; $j <= $cTo; $j++) {
            $m = $llB[$j] + $llE[$cTo - $j];

            if ($m >= $max) {
                $max  = $m;
                $jMax = $j;
            }
        }

        $toStart = \array_slice($to, 0, $jMax);
        $toEnd   = \array_slice($to, $jMax);

        return \array_merge(
            $this->calculate($fromStart, $toStart),
            $this->calculate($fromEnd, $toEnd)
        );
    }

    private function length(array $from, array $to)
    {
        $current = \array_fill(0, \count($to) + 1, 0);
        $cFrom   = \count($from);
        $cTo     = \count($to);

        for ($i = 0; $i < $cFrom; $i++) {
            $prev = $current;

            for ($j = 0; $j < $cTo; $j++) {
                if ($from[$i] === $to[$j]) {
                    $current[$j + 1] = $prev[$j] + 1;
                } else {
                    $current[$j + 1] = \max($current[$j], $prev[$j + 1]);
                }
            }
        }

        return $current;
    }
}
<?php
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace PhpCsFixer\Diff\v1_4;

class Diff
{
    /**
     * @var string
     */
    private $from;

    /**
     * @var string
     */
    private $to;

    /**
     * @var Chunk[]
     */
    private $chunks;

    /**
     * @param string  $from
     * @param string  $to
     * @param Chunk[] $chunks
     */
    public function __construct($from, $to, array $chunks = array())
    {
        $this->from   = $from;
        $this->to     = $to;
        $this->chunks = $chunks;
    }

    /**
     * @return string
     */
    public function getFrom()
    {
        return $this->from;
    }

    /**
     * @return string
     */
    public function getTo()
    {
        return $this->to;
    }

    /**
     * @return Chunk[]
     */
    public function getChunks()
    {
        return $this->chunks;
    }

    /**
     * @param Chunk[] $chunks
     */
    public function setChunks(array $chunks)
    {
        $this->chunks = $chunks;
    }
}
<?php
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace PhpCsFixer\Diff\v1_4;

/**
 * Unified diff parser.
 */
class Parser
{
    /**
     * @param string $string
     *
     * @return Diff[]
     */
    public function parse($string)
    {
        $lines = \preg_split('(\r\n|\r|\n)', $string);

        if (!empty($lines) && $lines[\count($lines) - 1] == '') {
            \array_pop($lines);
        }

        $lineCount = \count($lines);
        $diffs     = array();
        $diff      = null;
        $collected = array();

        for ($i = 0; $i < $lineCount; ++$i) {
            if (\preg_match('(^---\\s+(?P<file>\\S+))', $lines[$i], $fromMatch) &&
                \preg_match('(^\\+\\+\\+\\s+(?P<file>\\S+))', $lines[$i + 1], $toMatch)) {
                if ($diff !== null) {
                    $this->parseFileDiff($diff, $collected);

                    $diffs[]   = $diff;
                    $collected = array();
                }

                $diff = new Diff($fromMatch['file'], $toMatch['file']);

                ++$i;
            } else {
                if (\preg_match('/^(?:diff --git |index [\da-f\.]+|[+-]{3} [ab])/', $lines[$i])) {
                    continue;
                }

                $collected[] = $lines[$i];
            }
        }

        if ($diff !== null && \count($collected)) {
            $this->parseFileDiff($diff, $collected);

            $diffs[] = $diff;
        }

        return $diffs;
    }

    /**
     * @param Diff  $diff
     * @param array $lines
     */
    private function parseFileDiff(Diff $diff, array $lines)
    {
        $chunks = array();
        $chunk  = null;

        foreach ($lines as $line) {
            if (\preg_match('/^@@\s+-(?P<start>\d+)(?:,\s*(?P<startrange>\d+))?\s+\+(?P<end>\d+)(?:,\s*(?P<endrange>\d+))?\s+@@/', $line, $match)) {
                $chunk = new Chunk(
                    $match['start'],
                    isset($match['startrange']) ? \max(1, $match['startrange']) : 1,
                    $match['end'],
                    isset($match['endrange']) ? \max(1, $match['endrange']) : 1
                );

                $chunks[]  = $chunk;
                $diffLines = array();

                continue;
            }

            if (\preg_match('/^(?P<type>[+ -])?(?P<line>.*)/', $line, $match)) {
                $type = Line::UNCHANGED;

                if ($match['type'] === '+') {
                    $type = Line::ADDED;
                } elseif ($match['type'] === '-') {
                    $type = Line::REMOVED;
                }

                $diffLines[] = new Line($type, $match['line']);

                if (null !== $chunk) {
                    $chunk->setLines($diffLines);
                }
            }
        }

        $diff->setChunks($chunks);
    }
}
<?php
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace PhpCsFixer\Diff\v1_4\LCS;

/**
 * Time-efficient implementation of longest common subsequence calculation.
 */
class TimeEfficientImplementation implements LongestCommonSubsequence
{
    /**
     * Calculates the longest common subsequence of two arrays.
     *
     * @param array $from
     * @param array $to
     *
     * @return array
     */
    public function calculate(array $from, array $to)
    {
        $common     = array();
        $fromLength = \count($from);
        $toLength   = \count($to);
        $width      = $fromLength + 1;
        $matrix     = new \SplFixedArray($width * ($toLength + 1));

        for ($i = 0; $i <= $fromLength; ++$i) {
            $matrix[$i] = 0;
        }

        for ($j = 0; $j <= $toLength; ++$j) {
            $matrix[$j * $width] = 0;
        }

        for ($i = 1; $i <= $fromLength; ++$i) {
            for ($j = 1; $j <= $toLength; ++$j) {
                $o          = ($j * $width) + $i;
                $matrix[$o] = \max(
                    $matrix[$o - 1],
                    $matrix[$o - $width],
                    $from[$i - 1] === $to[$j - 1] ? $matrix[$o - $width - 1] + 1 : 0
                );
            }
        }

        $i = $fromLength;
        $j = $toLength;

        while ($i > 0 && $j > 0) {
            if ($from[$i - 1] === $to[$j - 1]) {
                $common[] = $from[$i - 1];
                --$i;
                --$j;
            } else {
                $o = ($j * $width) + $i;

                if ($matrix[$o - $width] > $matrix[$o - 1]) {
                    --$j;
                } else {
                    --$i;
                }
            }
        }

        return \array_reverse($common);
    }
}
<?php
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace PhpCsFixer\Diff\v1_4\LCS;

/**
 * Interface for implementations of longest common subsequence calculation.
 */
interface LongestCommonSubsequence
{
    /**
     * Calculates the longest common subsequence of two arrays.
     *
     * @param array $from
     * @param array $to
     *
     * @return array
     */
    public function calculate(array $from, array $to);
}
<?php
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace PhpCsFixer\Diff\v1_4\LCS;

/**
 * Memory-efficient implementation of longest common subsequence calculation.
 */
class MemoryEfficientImplementation implements LongestCommonSubsequence
{
    /**
     * Calculates the longest common subsequence of two arrays.
     *
     * @param array $from
     * @param array $to
     *
     * @return array
     */
    public function calculate(array $from, array $to)
    {
        $cFrom = \count($from);
        $cTo   = \count($to);

        if ($cFrom === 0) {
            return array();
        }

        if ($cFrom === 1) {
            if (\in_array($from[0], $to, true)) {
                return array($from[0]);
            }

            return array();
        }

        $i         = (int) ($cFrom / 2);
        $fromStart = \array_slice($from, 0, $i);
        $fromEnd   = \array_slice($from, $i);
        $llB       = $this->length($fromStart, $to);
        $llE       = $this->length(\array_reverse($fromEnd), \array_reverse($to));
        $jMax      = 0;
        $max       = 0;

        for ($j = 0; $j <= $cTo; $j++) {
            $m = $llB[$j] + $llE[$cTo - $j];

            if ($m >= $max) {
                $max  = $m;
                $jMax = $j;
            }
        }

        $toStart = \array_slice($to, 0, $jMax);
        $toEnd   = \array_slice($to, $jMax);

        return \array_merge(
            $this->calculate($fromStart, $toStart),
            $this->calculate($fromEnd, $toEnd)
        );
    }

    /**
     * @param array $from
     * @param array $to
     *
     * @return array
     */
    private function length(array $from, array $to)
    {
        $current = \array_fill(0, \count($to) + 1, 0);
        $cFrom   = \count($from);
        $cTo     = \count($to);

        for ($i = 0; $i < $cFrom; $i++) {
            $prev = $current;

            for ($j = 0; $j < $cTo; $j++) {
                if ($from[$i] === $to[$j]) {
                    $current[$j + 1] = $prev[$j] + 1;
                } else {
                    $current[$j + 1] = \max($current[$j], $prev[$j + 1]);
                }
            }
        }

        return $current;
    }
}
<?php
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace PhpCsFixer\Diff\v1_4;

class Chunk
{
    /**
     * @var int
     */
    private $start;

    /**
     * @var int
     */
    private $startRange;

    /**
     * @var int
     */
    private $end;

    /**
     * @var int
     */
    private $endRange;

    /**
     * @var array
     */
    private $lines;

    /**
     * @param int   $start
     * @param int   $startRange
     * @param int   $end
     * @param int   $endRange
     * @param array $lines
     */
    public function __construct($start = 0, $startRange = 1, $end = 0, $endRange = 1, array $lines = array())
    {
        $this->start      = (int) $start;
        $this->startRange = (int) $startRange;
        $this->end        = (int) $end;
        $this->endRange   = (int) $endRange;
        $this->lines      = $lines;
    }

    /**
     * @return int
     */
    public function getStart()
    {
        return $this->start;
    }

    /**
     * @return int
     */
    public function getStartRange()
    {
        return $this->startRange;
    }

    /**
     * @return int
     */
    public function getEnd()
    {
        return $this->end;
    }

    /**
     * @return int
     */
    public function getEndRange()
    {
        return $this->endRange;
    }

    /**
     * @return array
     */
    public function getLines()
    {
        return $this->lines;
    }

    /**
     * @param array $lines
     */
    public function setLines(array $lines)
    {
        $this->lines = $lines;
    }
}
<?php
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace PhpCsFixer\Diff\v1_4;

use PhpCsFixer\Diff\v1_4\LCS\LongestCommonSubsequence;
use PhpCsFixer\Diff\v1_4\LCS\TimeEfficientImplementation;
use PhpCsFixer\Diff\v1_4\LCS\MemoryEfficientImplementation;

/**
 * Diff implementation.
 */
class Differ
{
    /**
     * @var string
     */
    private $header;

    /**
     * @var bool
     */
    private $showNonDiffLines;

    /**
     * @param string $header
     * @param bool   $showNonDiffLines
     */
    public function __construct($header = "--- Original\n+++ New\n", $showNonDiffLines = true)
    {
        $this->header           = $header;
        $this->showNonDiffLines = $showNonDiffLines;
    }

    /**
     * Returns the diff between two arrays or strings as string.
     *
     * @param array|string             $from
     * @param array|string             $to
     * @param LongestCommonSubsequence $lcs
     *
     * @return string
     */
    public function diff($from, $to, LongestCommonSubsequence $lcs = null)
    {
        $from  = $this->validateDiffInput($from);
        $to    = $this->validateDiffInput($to);
        $diff  = $this->diffToArray($from, $to, $lcs);
        $old   = $this->checkIfDiffInOld($diff);
        $start = isset($old[0]) ? $old[0] : 0;
        $end   = \count($diff);

        if ($tmp = \array_search($end, $old)) {
            $end = $tmp;
        }

        return $this->getBuffer($diff, $old, $start, $end);
    }

    /**
     * Casts variable to string if it is not a string or array.
     *
     * @param mixed $input
     *
     * @return string
     */
    private function validateDiffInput($input)
    {
        if (!\is_array($input) && !\is_string($input)) {
            return (string) $input;
        }

        return $input;
    }

    /**
     * Takes input of the diff array and returns the old array.
     * Iterates through diff line by line,
     *
     * @param array $diff
     *
     * @return array
     */
    private function checkIfDiffInOld(array $diff)
    {
        $inOld = false;
        $i     = 0;
        $old   = array();

        foreach ($diff as $line) {
            if ($line[1] === 0 /* OLD */) {
                if ($inOld === false) {
                    $inOld = $i;
                }
            } elseif ($inOld !== false) {
                if (($i - $inOld) > 5) {
                    $old[$inOld] = $i - 1;
                }

                $inOld = false;
            }

            ++$i;
        }

        return $old;
    }

    /**
     * Generates buffer in string format, returning the patch.
     *
     * @param array $diff
     * @param array $old
     * @param int   $start
     * @param int   $end
     *
     * @return string
     */
    private function getBuffer(array $diff, array $old, $start, $end)
    {
        $buffer = $this->header;

        if (!isset($old[$start])) {
            $buffer = $this->getDiffBufferElementNew($diff, $buffer, $start);
            ++$start;
        }

        for ($i = $start; $i < $end; $i++) {
            if (isset($old[$i])) {
                $i      = $old[$i];
                $buffer = $this->getDiffBufferElementNew($diff, $buffer, $i);
            } else {
                $buffer = $this->getDiffBufferElement($diff, $buffer, $i);
            }
        }

        return $buffer;
    }

    /**
     * Gets individual buffer element.
     *
     * @param array  $diff
     * @param string $buffer
     * @param int    $diffIndex
     *
     * @return string
     */
    private function getDiffBufferElement(array $diff, $buffer, $diffIndex)
    {
        if ($diff[$diffIndex][1] === 1 /* ADDED */) {
            $buffer .= '+' . $diff[$diffIndex][0] . "\n";
        } elseif ($diff[$diffIndex][1] === 2 /* REMOVED */) {
            $buffer .= '-' . $diff[$diffIndex][0] . "\n";
        } elseif ($this->showNonDiffLines === true) {
            $buffer .= ' ' . $diff[$diffIndex][0] . "\n";
        }

        return $buffer;
    }

    /**
     * Gets individual buffer element with opening.
     *
     * @param array  $diff
     * @param string $buffer
     * @param int    $diffIndex
     *
     * @return string
     */
    private function getDiffBufferElementNew(array $diff, $buffer, $diffIndex)
    {
        if ($this->showNonDiffLines === true) {
            $buffer .= "@@ @@\n";
        }

        return $this->getDiffBufferElement($diff, $buffer, $diffIndex);
    }

    /**
     * Returns the diff between two arrays or strings as array.
     *
     * Each array element contains two elements:
     *   - [0] => mixed $token
     *   - [1] => 2|1|0
     *
     * - 2: REMOVED: $token was removed from $from
     * - 1: ADDED: $token was added to $from
     * - 0: OLD: $token is not changed in $to
     *
     * @param array|string             $from
     * @param array|string             $to
     * @param LongestCommonSubsequence $lcs
     *
     * @return array
     */
    public function diffToArray($from, $to, LongestCommonSubsequence $lcs = null)
    {
        if (\is_string($from)) {
            $fromMatches = $this->getNewLineMatches($from);
            $from        = $this->splitStringByLines($from);
        } elseif (\is_array($from)) {
            $fromMatches = array();
        } else {
            throw new \InvalidArgumentException('"from" must be an array or string.');
        }

        if (\is_string($to)) {
            $toMatches = $this->getNewLineMatches($to);
            $to        = $this->splitStringByLines($to);
        } elseif (\is_array($to)) {
            $toMatches = array();
        } else {
            throw new \InvalidArgumentException('"to" must be an array or string.');
        }

        list($from, $to, $start, $end) = self::getArrayDiffParted($from, $to);

        if ($lcs === null) {
            $lcs = $this->selectLcsImplementation($from, $to);
        }

        $common = $lcs->calculate(\array_values($from), \array_values($to));
        $diff   = array();

        if ($this->detectUnmatchedLineEndings($fromMatches, $toMatches)) {
            $diff[] = array(
                '#Warnings contain different line endings!',
                0
            );
        }

        foreach ($start as $token) {
            $diff[] = array($token, 0 /* OLD */);
        }

        \reset($from);
        \reset($to);

        foreach ($common as $token) {
            while (($fromToken = \reset($from)) !== $token) {
                $diff[] = array(\array_shift($from), 2 /* REMOVED */);
            }

            while (($toToken = \reset($to)) !== $token) {
                $diff[] = array(\array_shift($to), 1 /* ADDED */);
            }

            $diff[] = array($token, 0 /* OLD */);

            \array_shift($from);
            \array_shift($to);
        }

        while (($token = \array_shift($from)) !== null) {
            $diff[] = array($token, 2 /* REMOVED */);
        }

        while (($token = \array_shift($to)) !== null) {
            $diff[] = array($token, 1 /* ADDED */);
        }

        foreach ($end as $token) {
            $diff[] = array($token, 0 /* OLD */);
        }

        return $diff;
    }

    /**
     * Get new strings denoting new lines from a given string.
     *
     * @param string $string
     *
     * @return array
     */
    private function getNewLineMatches($string)
    {
        \preg_match_all('(\r\n|\r|\n)', $string, $stringMatches);

        return $stringMatches;
    }

    /**
     * Checks if input is string, if so it will split it line-by-line.
     *
     * @param string $input
     *
     * @return array
     */
    private function splitStringByLines($input)
    {
        return \preg_split('(\r\n|\r|\n)', $input);
    }

    /**
     * @param array $from
     * @param array $to
     *
     * @return LongestCommonSubsequence
     */
    private function selectLcsImplementation(array $from, array $to)
    {
        // We do not want to use the time-efficient implementation if its memory
        // footprint will probably exceed this value. Note that the footprint
        // calculation is only an estimation for the matrix and the LCS method
        // will typically allocate a bit more memory than this.
        $memoryLimit = 100 * 1024 * 1024;

        if ($this->calculateEstimatedFootprint($from, $to) > $memoryLimit) {
            return new MemoryEfficientImplementation;
        }

        return new TimeEfficientImplementation;
    }

    /**
     * Calculates the estimated memory footprint for the DP-based method.
     *
     * @param array $from
     * @param array $to
     *
     * @return int|float
     */
    private function calculateEstimatedFootprint(array $from, array $to)
    {
        $itemSize = PHP_INT_SIZE === 4 ? 76 : 144;

        return $itemSize * \pow(\min(\count($from), \count($to)), 2);
    }

    /**
     * Returns true if line ends don't match on fromMatches and toMatches.
     *
     * @param array $fromMatches
     * @param array $toMatches
     *
     * @return bool
     */
    private function detectUnmatchedLineEndings(array $fromMatches, array $toMatches)
    {
        return isset($fromMatches[0], $toMatches[0]) &&
               \count($fromMatches[0]) === \count($toMatches[0]) &&
               $fromMatches[0] !== $toMatches[0];
    }

    /**
     * @param array $from
     * @param array $to
     *
     * @return array
     */
    private static function getArrayDiffParted(array &$from, array &$to)
    {
        $start = array();
        $end   = array();

        \reset($to);

        foreach ($from as $k => $v) {
            $toK = \key($to);

            if ($toK === $k && $v === $to[$k]) {
                $start[$k] = $v;

                unset($from[$k], $to[$k]);
            } else {
                break;
            }
        }

        \end($from);
        \end($to);

        do {
            $fromK = \key($from);
            $toK   = \key($to);

            if (null === $fromK || null === $toK || \current($from) !== \current($to)) {
                break;
            }

            \prev($from);
            \prev($to);

            $end = array($fromK => $from[$fromK]) + $end;
            unset($from[$fromK], $to[$toK]);
        } while (true);

        return array($from, $to, $start, $end);
    }
}
<?php
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace PhpCsFixer\Diff\v1_4;

class Line
{
    const ADDED     = 1;
    const REMOVED   = 2;
    const UNCHANGED = 3;

    /**
     * @var int
     */
    private $type;

    /**
     * @var string
     */
    private $content;

    /**
     * @param int    $type
     * @param string $content
     */
    public function __construct($type = self::UNCHANGED, $content = '')
    {
        $this->type    = $type;
        $this->content = $content;
    }

    /**
     * @return string
     */
    public function getContent()
    {
        return $this->content;
    }

    /**
     * @return int
     */
    public function getType()
    {
        return $this->type;
    }
}
<?php

/*
 * This file is part of the GeckoPackages.
 *
 * (c) GeckoPackages https://github.com/GeckoPackages
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Diff\GeckoPackages\DiffOutputBuilder;

use PhpCsFixer\Diff\v2_0\Output\DiffOutputBuilderInterface;

/**
 * Strict Unified diff output builder.
 *
 * @name Unified diff output builder
 *
 * @description Generates (strict) Unified diff's (unidiffs) with hunks.
 *
 * @author SpacePossum
 *
 * @api
 */
final class UnifiedDiffOutputBuilder implements DiffOutputBuilderInterface
{
    /**
     * @var int
     */
    private static $noNewlineAtOEFid = 998877;

    /**
     * @var bool
     */
    private $changed;

    /**
     * @var bool
     */
    private $collapseRanges;

    /**
     * @var int >= 0
     */
    private $commonLineThreshold;

    /**
     * @var string
     */
    private $header;

    /**
     * @var int >= 0
     */
    private $contextLines;

    private static $default = [
        'contextLines' => 3, // like `diff:  -u, -U NUM, --unified[=NUM]`, for patch/git apply compatibility best to keep at least @ 3
        'collapseRanges' => true, // ranges of length one are rendered with the trailing `,1`
        'fromFile' => null,
        'fromFileDate' => null,
        'toFile' => null,
        'toFileDate' => null,
        'commonLineThreshold' => 6, // number of same lines before ending a new hunk and creating a new one (if needed)
    ];

    public function __construct(array $options = [])
    {
        $options = \array_merge(self::$default, $options);

        if (!\is_bool($options['collapseRanges'])) {
            throw new ConfigurationException('collapseRanges', 'a bool', $options['collapseRanges']);
        }

        if (!\is_int($options['contextLines']) || $options['contextLines'] < 0) {
            throw new ConfigurationException('contextLines', 'an int >= 0', $options['contextLines']);
        }

        if (!\is_int($options['commonLineThreshold']) || $options['commonLineThreshold'] < 1) {
            throw new ConfigurationException('commonLineThreshold', 'an int > 0', $options['commonLineThreshold']);
        }

        foreach (['fromFile', 'toFile'] as $option) {
            if (!\is_string($options[$option])) {
                throw new ConfigurationException($option, 'a string', $options[$option]);
            }
        }

        foreach (['fromFileDate', 'toFileDate'] as $option) {
            if (null !== $options[$option] && !\is_string($options[$option])) {
                throw new ConfigurationException($option, 'a string or <null>', $options[$option]);
            }
        }

        $this->header = \sprintf(
            "--- %s%s\n+++ %s%s\n",
            $options['fromFile'],
            null === $options['fromFileDate'] ? '' : "\t".$options['fromFileDate'],
            $options['toFile'],
            null === $options['toFileDate'] ? '' : "\t".$options['toFileDate']
        );

        $this->collapseRanges = $options['collapseRanges'];
        $this->commonLineThreshold = $options['commonLineThreshold'];
        $this->contextLines = $options['contextLines'];
    }

    public function getDiff(array $diff)
    {
        if (0 === \count($diff)) {
            return '';
        }

        $this->changed = false;

        $buffer = \fopen('php://memory', 'r+b');
        \fwrite($buffer, $this->header);

        $this->writeDiffHunks($buffer, $diff);

        $diff = \stream_get_contents($buffer, -1, 0);

        \fclose($buffer);

        if (!$this->changed) {
            return '';
        }

        return $diff;
    }

    private function writeDiffHunks($output, array $diff)
    {
        // detect "No newline at end of file" and insert into `$diff` if needed

        $upperLimit = \count($diff);

        // append "\ No newline at end of file" if needed
        if (0 === $diff[$upperLimit - 1][1]) {
            $lc = \substr($diff[$upperLimit - 1][0], -1);
            if ("\n" !== $lc) {
                \array_splice($diff, $upperLimit, 0, [["\n\\ No newline at end of file\n", self::$noNewlineAtOEFid]]);
            }
        } else {
            // search back for the last `+` and `-` line,
            // check if has trailing linebreak, else add under it warning under it
            $toFind = [1 => true, 2 => true];
            for ($i = $upperLimit - 1; $i >= 0; --$i) {
                if (isset($toFind[$diff[$i][1]])) {
                    unset($toFind[$diff[$i][1]]);
                    $lc = \substr($diff[$i][0], -1);
                    if ("\n" !== $lc) {
                        \array_splice($diff, $i + 1, 0, [["\n\\ No newline at end of file\n", self::$noNewlineAtOEFid]]);
                    }

                    if (!\count($toFind)) {
                        break;
                    }
                }
            }
        }

        // write hunks to output buffer

        $cutOff = \max($this->commonLineThreshold, $this->contextLines);
        $hunkCapture = false;
        $sameCount = $toRange = $fromRange = 0;
        $toStart = $fromStart = 1;

        foreach ($diff as $i => $entry) {
            if (0 === $entry[1]) { // same
                if (false === $hunkCapture) {
                    ++$fromStart;
                    ++$toStart;

                    continue;
                }

                ++$sameCount;
                ++$toRange;
                ++$fromRange;

                if ($sameCount === $cutOff) {
                    $contextStartOffset = $hunkCapture - $this->contextLines < 0
                        ? $hunkCapture
                        : $this->contextLines
                    ;

                    $contextEndOffset = $i + $this->contextLines >= \count($diff)
                        ? \count($diff) - $i
                        : $this->contextLines
                    ;

                    $this->writeHunk(
                        $diff,
                        $hunkCapture - $contextStartOffset,
                        $i - $cutOff + $contextEndOffset + 1,
                        $fromStart - $contextStartOffset,
                        $fromRange - $cutOff + $contextStartOffset + $contextEndOffset,
                        $toStart - $contextStartOffset,
                        $toRange - $cutOff + $contextStartOffset + $contextEndOffset,
                        $output
                    );

                    $fromStart += $fromRange;
                    $toStart += $toRange;

                    $hunkCapture = false;
                    $sameCount = $toRange = $fromRange = 0;
                }

                continue;
            }

            $sameCount = 0;

            if ($entry[1] === self::$noNewlineAtOEFid) {
                continue;
            }

            $this->changed = true;

            if (false === $hunkCapture) {
                $hunkCapture = $i;
            }

            if (1 === $entry[1]) { // added
                ++$toRange;
            }

            if (2 === $entry[1]) { // removed
                ++$fromRange;
            }
        }

        if (false !== $hunkCapture) {
            $contextStartOffset = $hunkCapture - $this->contextLines < 0
                ? $hunkCapture
                : $this->contextLines
            ;

            $this->writeHunk(
                $diff,
                $hunkCapture - $contextStartOffset,
                \count($diff),
                $fromStart - $contextStartOffset,
                $fromRange + $contextStartOffset,
                $toStart - $contextStartOffset,
                $toRange + $contextStartOffset,
                $output
            );
        }
    }

    private function writeHunk(
        array $diff,
        $diffStartIndex,
        $diffEndIndex,
        $fromStart,
        $fromRange,
        $toStart,
        $toRange,
        $output
    ) {
        \fwrite($output, '@@ -'.$fromStart);

        if (!$this->collapseRanges || 1 !== $fromRange) {
            \fwrite($output, ','.$fromRange);
        }

        \fwrite($output, ' +'.$toStart);
        if (!$this->collapseRanges || 1 !== $toRange) {
            \fwrite($output, ','.$toRange);
        }

        \fwrite($output, " @@\n");

        for ($i = $diffStartIndex; $i < $diffEndIndex; ++$i) {
            if ($diff[$i][1] === 1) { // added
                $this->changed = true;
                \fwrite($output, '+'.$diff[$i][0]);
            } elseif ($diff[$i][1] === 2) { // removed
                $this->changed = true;
                \fwrite($output, '-'.$diff[$i][0]);
            } elseif ($diff[$i][1] === 0) { // same
                \fwrite($output, ' '.$diff[$i][0]);
            } elseif ($diff[$i][1] === self::$noNewlineAtOEFid) {
                $this->changed = true;
                \fwrite($output, $diff[$i][0]);
            }
        }
    }
}
<?php

/*
 * This file is part of the GeckoPackages.
 *
 * (c) GeckoPackages https://github.com/GeckoPackages
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Diff\GeckoPackages\DiffOutputBuilder;

use Exception;

final class ConfigurationException extends \InvalidArgumentException
{
    public function __construct(
        $option,
        $expected,
        $value,
        $code = 0,
        Exception $previous = null
    ) {
        parent::__construct(
            \sprintf(
                'Option "%s" must be %s, got "%s".',
                $option,
                $expected,
                \is_object($value) ? \get_class($value) : (null === $value ? '<null>' : \gettype($value).'#'.$value)
            ),
            $code,
            $previous
        );
    }
}
   Bud1                                                                       h t z o n e                                          
 b r i g h t z o n evSrnlong                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 @                                              @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   E                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          DSDB                                 `                                                     @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          #!/usr/bin/env php
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

if (getenv('PHP_CS_FIXER_FUTURE_MODE')) {
    error_reporting(E_ALL & ~E_DEPRECATED & ~E_USER_DEPRECATED);
}

if (defined('HHVM_VERSION_ID')) {
    fwrite(STDERR, "HHVM is not supported.\n");

    if (getenv('PHP_CS_FIXER_IGNORE_ENV')) {
        fwrite(STDERR, "Ignoring environment requirements because `PHP_CS_FIXER_IGNORE_ENV` is set. Execution may be unstable.\n");
    } else {
        exit(1);
    }
} elseif (!defined('PHP_VERSION_ID') || \PHP_VERSION_ID < 50600 || \PHP_VERSION_ID >= 70500) {
    fwrite(STDERR, "PHP needs to be a minimum version of PHP 5.6.0 and maximum version of PHP 7.4.*.\n");

    if (getenv('PHP_CS_FIXER_IGNORE_ENV')) {
        fwrite(STDERR, "Ignoring environment requirements because `PHP_CS_FIXER_IGNORE_ENV` is set. Execution may be unstable.\n");
    } else {
        exit(1);
    }
}

foreach (['json', 'tokenizer'] as $extension) {
    if (!extension_loaded($extension)) {
        fwrite(STDERR, sprintf("PHP extension ext-%s is missing from your system. Install or enable it.\n", $extension));

        if (getenv('PHP_CS_FIXER_IGNORE_ENV')) {
            fwrite(STDERR, "Ignoring environment requirements because `PHP_CS_FIXER_IGNORE_ENV` is set. Execution may be unstable.\n");
        } else {
            exit(1);
        }
    }
}
unset($extension);

set_error_handler(static function ($severity, $message, $file, $line) {
    if ($severity & error_reporting()) {
        throw new ErrorException($message, 0, $severity, $file, $line);
    }
});

$require = true;
if (class_exists('Phar')) {
    // Maybe this file is used as phar-stub? Let's try!
    try {
        Phar::mapPhar('php-cs-fixer.phar');
        require_once 'phar://php-cs-fixer.phar/vendor/autoload.php';
        $require = false;
    } catch (PharException $e) {
    }
}

if ($require) {
    // OK, it's not, let give Composer autoloader a try!
    $possibleFiles = [__DIR__.'/../../autoload.php', __DIR__.'/../autoload.php', __DIR__.'/vendor/autoload.php'];
    $file = null;
    foreach ($possibleFiles as $possibleFile) {
        if (file_exists($possibleFile)) {
            $file = $possibleFile;

            break;
        }
    }

    if (null === $file) {
        throw new RuntimeException('Unable to locate autoload.php file.');
    }

    require_once $file;

    unset($possibleFiles, $possibleFile, $file);
}
unset($require);

use Composer\XdebugHandler\XdebugHandler;
use PhpCsFixer\Console\Application;

// Restart if xdebug is loaded, unless the environment variable PHP_CS_FIXER_ALLOW_XDEBUG is set.
$xdebug = new XdebugHandler('PHP_CS_FIXER', '--ansi');
$xdebug->check();
unset($xdebug);

$application = new Application();
$application->run();

__HALT_COMPILER();
Copyright (c) 2012-2020 Fabien Potencier
                        Dariusz Rumiński

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.
CHANGELOG for PHP CS Fixer
==========================

This file contains changelogs for stable releases only.

Changelog for v2.16.4
---------------------

* bug #3893 Fix handling /** and */ on the same line as the first and/or last annotation (dmvdbrugge)
* bug #4919 PhpUnitTestAnnotationFixer - fix function starting with "test" and having lowercase letter after (kubawerlos)
* bug #4929 YodaStyleFixer - handling equals empty array (kubawerlos)
* bug #4934 YodaStyleFixer - fix for conditions weird are (kubawerlos)
* bug #4958 OrderedImportsFixer - fix for trailing comma in group (kubawerlos)
* bug #4959 BlankLineBeforeStatementFixer - handle comment case (SpacePossum)
* bug #4962 MethodArgumentSpaceFixer - must run after MethodChainingIndentationFixer (kubawerlos)
* bug #4963 PhpdocToReturnTypeFixer - fix for breaking PHP syntax for type having reserved name (kubawerlos, Slamdunk)
* bug #4978 ArrayIndentationFixer - must run after MethodArgumentSpaceFixer (kubawerlos)
* bug #4994 FinalInternalClassFixer - must run before ProtectedToPrivateFixer (kubawerlos)
* bug #4996 NoEmptyCommentFixer - handle multiline comments (kubawerlos)
* bug #4999 BlankLineBeforeStatementFixer - better comment handling (SpacePossum)
* bug #5009 NoEmptyCommentFixer - better handle comments sequence (kubawerlos)
* bug #5010 SimplifiedNullReturnFixer - must run before VoidReturnFixer (kubawerlos)
* bug #5011 SingleClassElementPerStatementFixer - must run before ClassAttributesSeparationFixer (kubawerlos)
* bug #5012 StrictParamFixer - must run before NativeFunctionInvocationFixer (kubawerlos)
* bug #5014 PhpdocToParamTypeFixer - fix for void as param (kubawerlos)
* bug #5018 PhpdocScalarFixer - fix for comment with Windows line endings (kubawerlos)
* bug #5029 SingleLineAfterImportsFixer - fix for line after import already added using CRLF (kubawerlos)
* minor #4904 Increase PHPStan level to 8 with strict rules (julienfalque)
* minor #4920 Enhancement: Use DocBlock itself to make it multi-line (localheinz)
* minor #4930 DX: ensure PhpUnitNamespacedFixer handles all classes (kubawerlos)
* minor #4931 DX: add test to ensure each target version in PhpUnitTargetVersion has its set in RuleSet (kubawerlos)
* minor #4932 DX: Travis CI config - fix warnings and infos (kubawerlos)
* minor #4940 Reject empty path (julienfalque)
* minor #4944 Fix grammar (julienfalque)
* minor #4946 Allow "const" option on PHP <7.1 (julienfalque)
* minor #4948 Added describe command to readme (david, 8ctopus)
* minor #4949 Fixed build readme on Windows fails if using Git Bash (Mintty) (8ctopus)
* minor #4954 Config - Trim path (julienfalque)
* minor #4957 DX: Check trailing spaces in project files only (ktomk)
* minor #4961 Assert all project source files are monolithic. (SpacePossum)
* minor #4964 Fix PHPStan baseline (julienfalque)
* minor #4965 Fix PHPStan baseline (julienfalque)
* minor #4973 DX: test "isRisky" method in fixer tests, not as auto review (kubawerlos)
* minor #4974 Minor: Fix typo (ktomk)
* minor #4975 Revert PHPStan level to 5 (julienfalque)
* minor #4976 Add instructions for PHPStan (julienfalque)
* minor #4980 Introduce new issue templates (julienfalque)
* minor #4981 Prevent error in CTTest::testConstants (for PHP8) (guilliamxavier)
* minor #4982 Remove PHIVE (kubawerlos)
* minor #4985 Fix tests with Symfony 5.1 (julienfalque)
* minor #4987 PhpdocAnnotationWithoutDotFixer - handle unicode characters using mb_* (SpacePossum)
* minor #5008 Enhancement: Social justification applied (gbyrka-fingo)
* minor #5023 Fix issue templates (kubawerlos)
* minor #5024 DX: add missing non-default code samples (kubawerlos)

Changelog for v2.16.3
---------------------

* bug #4915 Fix handling property PHPDocs with unsupported type (julienfalque)
* minor #4916 Fix AppVeyor build (julienfalque)
* minor #4917 CircleCI - Bump xcode to 11.4 (GrahamCampbell)
* minor #4918 DX: do not fix ".phpt" files by default (kubawerlos)

Changelog for v2.16.2
---------------------

* bug #3820 Braces - (re)indenting comment issues (SpacePossum)
* bug #3911 PhpdocVarWithoutNameFixer - fix for properties only (dmvdbrugge)
* bug #4601 ClassKeywordRemoveFixer - Fix for namespace (yassine-ah, kubawerlos)
* bug #4630 FullyQualifiedStrictTypesFixer - Ignore partial class names which look like FQCNs (localheinz, SpacePossum)
* bug #4661 ExplicitStringVariableFixer - variables pair if one is already explicit (kubawerlos)
* bug #4675 NonPrintableCharacterFixer - fix for backslash and quotes when changing to escape sequences (kubawerlos)
* bug #4678 TokensAnalyzer::isConstantInvocation - fix for importing multiple classes with single "use" (kubawerlos)
* bug #4682 Fix handling array type declaration in properties (julienfalque)
* bug #4685 Improve Symfony 5 compatibility (keradus)
* bug #4688 TokensAnalyzer::isConstantInvocation - Fix detection for fully qualified return type (julienfalque)
* bug #4689 DeclareStrictTypesFixer - fix for "strict_types" set to "0" (kubawerlos)
* bug #4690 PhpdocVarAnnotationCorrectOrderFixer - fix for multiline `@var` without type (kubawerlos)
* bug #4710 SingleTraitInsertPerStatement - fix formatting for multiline "use" (kubawerlos)
* bug #4711 Ensure that files from "tests" directory in release are autoloaded (kubawerlos)
* bug #4749 TokensAnalyze::isUnaryPredecessorOperator fix for CT::T_ARRAY_INDEX_C… (SpacePossum)
* bug #4759 Add more priority cases (SpacePossum)
* bug #4761 NoSuperfluousElseifFixer - handle single line (SpacePossum)
* bug #4783 NoSuperfluousPhpdocTagsFixer - fix for really big PHPDoc (kubawerlos, mvorisek)
* bug #4787 NoUnneededFinalMethodFixer - Mark as risky (SpacePossum)
* bug #4795 OrderedClassElementsFixer - Fix (SpacePossum)
* bug #4801 GlobalNamespaceImportFixer - fix docblock handling (gharlan)
* bug #4804 TokensAnalyzer::isUnarySuccessorOperator fix for array curly braces (SpacePossum)
* bug #4807 IncrementStyleFixer - handle after ")" (SpacePossum)
* bug #4808 Modernize types casting fixer array curly (SpacePossum)
* bug #4809 Fix "braces" and "method_argument_space" priority (julienfalque)
* bug #4813 BracesFixer - fix invalid code generation on alternative syntax (SpacePossum)
* bug #4822 fix 2 bugs in phpdoc_line_span (lmichelin)
* bug #4823 ReturnAssignmentFixer - repeat fix (SpacePossum)
* bug #4824 NoUnusedImportsFixer - SingleLineAfterImportsFixer - fix priority (SpacePossum)
* bug #4825 GlobalNamespaceImportFixer - do not import global into global (SpacePossum)
* bug #4829 YodaStyleFixer - fix precedence for T_MOD_EQUAL and T_COALESCE_EQUAL (SpacePossum)
* bug #4830 TernaryToNullCoalescingFixer - handle yield from (SpacePossum)
* bug #4835 Remove duplicate "function_to_constant" from RuleSet (SpacePossum)
* bug #4840 LineEndingFixer - T_CLOSE_TAG support, StringLineEndingFixer - T_INLI… (SpacePossum)
* bug #4846 FunctionsAnalyzer - better isGlobalFunctionCall detection (SpacePossum)
* bug #4852 Priority issues (SpacePossum)
* bug #4870 HeaderCommentFixer - do not remove class docs (gharlan)
* bug #4871 NoExtraBlankLinesFixer - handle cases on same line (SpacePossum)
* bug #4895 Fix conflict between header_comment and declare_strict_types (BackEndTea, julienfalque)
* bug #4911 PhpdocSeparationFixer - fix regression with lack of next line (keradus)
* feature #4742 FunctionToConstantFixer - get_class($this) support (SpacePossum)
* minor #4377 CommentsAnalyzer - fix for declare before header comment (kubawerlos)
* minor #4636 DX: do not check for PHPDBG when collecting coverage (kubawerlos)
* minor #4644 Docs: add info about "-vv..." (voku)
* minor #4691 Run Travis CI on stable PHP 7.4 (kubawerlos)
* minor #4693 Increase Travis CI Git clone depth (julienfalque)
* minor #4699 LineEndingFixer - handle "\r\r\n" (kubawerlos)
* minor #4703 NoSuperfluousPhpdocTagsFixer,PhpdocAddMissingParamAnnotationFixer - p… (SpacePossum)
* minor #4707 Fix typos (TysonAndre)
* minor #4712 NoBlankLinesAfterPhpdocFixer — Do not strip newline between docblock and use statements (mollierobbert)
* minor #4715 Enhancement: Install ergebnis/composer-normalize via Phive (localheinz)
* minor #4722 Fix Circle CI build (julienfalque)
* minor #4724 DX: Simplify installing PCOV (kubawerlos)
* minor #4736 NoUnusedImportsFixer - do not match variable name as import (SpacePossum)
* minor #4746 NoSuperfluousPhpdocTagsFixer - Remove for typed properties (PHP 7.4) (ruudk)
* minor #4753 Do not apply any text/.git filters to fixtures (mvorisek)
* minor #4757 Test $expected is used before $input (SpacePossum)
* minor #4758 Autoreview the PHPDoc of *Fixer::getPriority based on the priority map (SpacePossum)
* minor #4765 Add test on some return types (SpacePossum)
* minor #4766 Remove false test skip (SpacePossum)
* minor #4767 Remove useless priority comments (kubawerlos)
* minor #4769 DX: add missing priority tests (kubawerlos)
* minor #4772 NoUnneededFinalMethodFixer - update description (kubawerlos)
* minor #4774 DX: simplify Utils::camelCaseToUnderscore (kubawerlos)
* minor #4781 NoUnneededCurlyBracesFixer - handle namespaces (SpacePossum)
* minor #4784 Travis CI - Use multiple keyservers (ktomk)
* minor #4785 Improve static analysis (enumag)
* minor #4788 Configurable fixers code sample (SpacePossum)
* minor #4791 Increase PHPStan level to 3 (julienfalque)
* minor #4797 clean ups (SpacePossum)
* minor #4803 FinalClassFixer - Doctrine\ORM\Mapping as ORM alias should not be required (localheinz)
* minor #4839 2.15 - clean ups (SpacePossum)
* minor #4842 ReturnAssignmentFixer - Support more cases (julienfalque)
* minor #4843 NoSuperfluousPhpdocTagsFixer - fix typo in option description (OndraM)
* minor #4844 Same requirements for descriptions (SpacePossum)
* minor #4849 Increase PHPStan level to 5 (julienfalque)
* minor #4850 Fix phpstan (SpacePossum)
* minor #4857 Fixed the unit tests (GrahamCampbell)
* minor #4865 Use latest xcode image (GrahamCampbell)
* minor #4892 CombineNestedDirnameFixer - Add space after comma (julienfalque)
* minor #4894 DX: PhpdocToParamTypeFixer - improve typing (keradus)
* minor #4898 FixerTest - yield the data in AutoReview (Nyholm)
* minor #4899 Fix exception message format for fabbot.io (SpacePossum)
* minor #4905 Support composer v2 installed.json files (GrahamCampbell)
* minor #4906 CI: use Composer stable release for AppVeyor (kubawerlos)
* minor #4909 DX: HeaderCommentFixer - use non-aliased version of option name in code (keradus)
* minor #4912 CI: Fix AppVeyor integration (keradus)

Changelog for v2.16.1
---------------------

* bug #4476 FunctionsAnalyzer - add "isTheSameClassCall" for correct verifying of function calls (kubawerlos)
* bug #4605 PhpdocToParamTypeFixer - cover more cases (keradus, julienfalque)
* bug #4626 FinalPublicMethodForAbstractClassFixer - Do not attempt to mark abstract public methods as final (localheinz)
* bug #4632 NullableTypeDeclarationForDefaultNullValueFixer - fix for not lowercase "null" (kubawerlos)
* bug #4638 Ensure compatibility with PHP 7.4 (julienfalque)
* bug #4641 Add typed properties test to VisibilityRequiredFixerTest (GawainLynch, julienfalque)
* bug #4654 ArrayIndentationFixer - Fix array indentation for multiline values (julienfalque)
* bug #4660 TokensAnalyzer::isConstantInvocation - fix for extending multiple interfaces (kubawerlos)
* bug #4668 TokensAnalyzer::isConstantInvocation - fix for interface method return type (kubawerlos)
* minor #4608 Allow Symfony 5 components (l-vo)
* minor #4622 Disallow PHP 7.4 failures on Travis CI (julienfalque)
* minor #4623 README - Mark up as code (localheinz)
* minor #4637 PHP 7.4 integration test (GawainLynch, julienfalque)
* minor #4643 DX: Update .gitattributes and move ci-integration.sh to root of the project (kubawerlos, keradus)
* minor #4645 Check PHP extensions on runtime (kubawerlos)
* minor #4655 Improve docs - README (mvorisek)
* minor #4662 DX: generate headers in README.rst (kubawerlos)
* minor #4669 Enable execution under PHP 7.4 (keradus)
* minor #4670 TravisTest - rewrite tests to allow last supported by tool PHP version to be snapshot (keradus)
* minor #4671 TravisTest - rewrite tests to allow last supported by tool PHP version to be snapshot (keradus)

Changelog for v2.16.0
---------------------

* feature #3810 PhpdocLineSpanFixer - Introduction (BackEndTea)
* feature #3928 Add FinalPublicMethodForAbstractClassFixer (Slamdunk)
* feature #4000 FinalStaticAccessFixer - Introduction (ntzm)
* feature #4275 Issue #4274: Let lowercase_constants directive to be configurable. (drupol)
* feature #4355 GlobalNamespaceImportFixer - Introduction (gharlan)
* feature #4358 SelfStaticAccessorFixer - Introduction (SpacePossum)
* feature #4385 CommentToPhpdocFixer - allow to ignore tags (kubawerlos)
* feature #4401 Add NullableTypeDeclarationForDefaultNullValueFixer (HypeMC)
* feature #4452 Add SingleLineThrowFixer (kubawerlos)
* feature #4500 NoSuperfluousPhpdocTags - Add remove_inheritdoc option (julienfalque)
* feature #4505 NoSuperfluousPhpdocTagsFixer - allow params that aren't on the signature (azjezz)
* feature #4531 PhpdocAlignFixer - add "property-read" and "property-write" to allowed tags (kubawerlos)
* feature #4583 Phpdoc to param type fixer rebase (jg-development)
* minor #4033 Raise deprecation warnings on usage of deprecated aliases (ntzm)
* minor #4423 DX: update branch alias (keradus)
* minor #4537 SelfStaticAccessor - extend itests (keradus)
* minor #4607 Configure no_superfluous_phpdoc_tags for Symfony (keradus)
* minor #4618 DX: fix usage of deprecated options (0x450x6c)
* minor #4619 Fix PHP 7.3 strict mode warnings (keradus)
* minor #4621 Add single_line_throw to Symfony ruleset (keradus)

Changelog for v2.15.8
---------------------

* bug #3893 Fix handling /** and */ on the same line as the first and/or last annotation (dmvdbrugge)
* bug #4919 PhpUnitTestAnnotationFixer - fix function starting with "test" and having lowercase letter after (kubawerlos)
* bug #4929 YodaStyleFixer - handling equals empty array (kubawerlos)
* bug #4934 YodaStyleFixer - fix for conditions weird are (kubawerlos)
* bug #4958 OrderedImportsFixer - fix for trailing comma in group (kubawerlos)
* bug #4959 BlankLineBeforeStatementFixer - handle comment case (SpacePossum)
* bug #4962 MethodArgumentSpaceFixer - must run after MethodChainingIndentationFixer (kubawerlos)
* bug #4963 PhpdocToReturnTypeFixer - fix for breaking PHP syntax for type having reserved name (kubawerlos, Slamdunk)
* bug #4978 ArrayIndentationFixer - must run after MethodArgumentSpaceFixer (kubawerlos)
* bug #4994 FinalInternalClassFixer - must run before ProtectedToPrivateFixer (kubawerlos)
* bug #4996 NoEmptyCommentFixer - handle multiline comments (kubawerlos)
* bug #4999 BlankLineBeforeStatementFixer - better comment handling (SpacePossum)
* bug #5009 NoEmptyCommentFixer - better handle comments sequence (kubawerlos)
* bug #5010 SimplifiedNullReturnFixer - must run before VoidReturnFixer (kubawerlos)
* bug #5011 SingleClassElementPerStatementFixer - must run before ClassAttributesSeparationFixer (kubawerlos)
* bug #5012 StrictParamFixer - must run before NativeFunctionInvocationFixer (kubawerlos)
* bug #5029 SingleLineAfterImportsFixer - fix for line after import already added using CRLF (kubawerlos)
* minor #4904 Increase PHPStan level to 8 with strict rules (julienfalque)
* minor #4930 DX: ensure PhpUnitNamespacedFixer handles all classes (kubawerlos)
* minor #4931 DX: add test to ensure each target version in PhpUnitTargetVersion has its set in RuleSet (kubawerlos)
* minor #4932 DX: Travis CI config - fix warnings and infos (kubawerlos)
* minor #4940 Reject empty path (julienfalque)
* minor #4944 Fix grammar (julienfalque)
* minor #4946 Allow "const" option on PHP <7.1 (julienfalque)
* minor #4948 Added describe command to readme (david, 8ctopus)
* minor #4949 Fixed build readme on Windows fails if using Git Bash (Mintty) (8ctopus)
* minor #4954 Config - Trim path (julienfalque)
* minor #4957 DX: Check trailing spaces in project files only (ktomk)
* minor #4961 Assert all project source files are monolithic. (SpacePossum)
* minor #4964 Fix PHPStan baseline (julienfalque)
* minor #4973 DX: test "isRisky" method in fixer tests, not as auto review (kubawerlos)
* minor #4974 Minor: Fix typo (ktomk)
* minor #4975 Revert PHPStan level to 5 (julienfalque)
* minor #4976 Add instructions for PHPStan (julienfalque)
* minor #4980 Introduce new issue templates (julienfalque)
* minor #4981 Prevent error in CTTest::testConstants (for PHP8) (guilliamxavier)
* minor #4982 Remove PHIVE (kubawerlos)
* minor #4985 Fix tests with Symfony 5.1 (julienfalque)
* minor #4987 PhpdocAnnotationWithoutDotFixer - handle unicode characters using mb_* (SpacePossum)
* minor #5008 Enhancement: Social justification applied (gbyrka-fingo)
* minor #5023 Fix issue templates (kubawerlos)
* minor #5024 DX: add missing non-default code samples (kubawerlos)

Changelog for v2.15.7
---------------------

* bug #4915 Fix handling property PHPDocs with unsupported type (julienfalque)
* minor #4916 Fix AppVeyor build (julienfalque)
* minor #4917 CircleCI - Bump xcode to 11.4 (GrahamCampbell)
* minor #4918 DX: do not fix ".phpt" files by default (kubawerlos)

Changelog for v2.15.6
---------------------

* bug #3820 Braces - (re)indenting comment issues (SpacePossum)
* bug #3911 PhpdocVarWithoutNameFixer - fix for properties only (dmvdbrugge)
* bug #4601 ClassKeywordRemoveFixer - Fix for namespace (yassine-ah, kubawerlos)
* bug #4630 FullyQualifiedStrictTypesFixer - Ignore partial class names which look like FQCNs (localheinz, SpacePossum)
* bug #4661 ExplicitStringVariableFixer - variables pair if one is already explicit (kubawerlos)
* bug #4675 NonPrintableCharacterFixer - fix for backslash and quotes when changing to escape sequences (kubawerlos)
* bug #4678 TokensAnalyzer::isConstantInvocation - fix for importing multiple classes with single "use" (kubawerlos)
* bug #4682 Fix handling array type declaration in properties (julienfalque)
* bug #4685 Improve Symfony 5 compatibility (keradus)
* bug #4688 TokensAnalyzer::isConstantInvocation - Fix detection for fully qualified return type (julienfalque)
* bug #4689 DeclareStrictTypesFixer - fix for "strict_types" set to "0" (kubawerlos)
* bug #4690 PhpdocVarAnnotationCorrectOrderFixer - fix for multiline `@var` without type (kubawerlos)
* bug #4710 SingleTraitInsertPerStatement - fix formatting for multiline "use" (kubawerlos)
* bug #4711 Ensure that files from "tests" directory in release are autoloaded (kubawerlos)
* bug #4749 TokensAnalyze::isUnaryPredecessorOperator fix for CT::T_ARRAY_INDEX_C… (SpacePossum)
* bug #4759 Add more priority cases (SpacePossum)
* bug #4761 NoSuperfluousElseifFixer - handle single line (SpacePossum)
* bug #4783 NoSuperfluousPhpdocTagsFixer - fix for really big PHPDoc (kubawerlos, mvorisek)
* bug #4787 NoUnneededFinalMethodFixer - Mark as risky (SpacePossum)
* bug #4795 OrderedClassElementsFixer - Fix (SpacePossum)
* bug #4804 TokensAnalyzer::isUnarySuccessorOperator fix for array curly braces (SpacePossum)
* bug #4807 IncrementStyleFixer - handle after ")" (SpacePossum)
* bug #4808 Modernize types casting fixer array curly (SpacePossum)
* bug #4809 Fix "braces" and "method_argument_space" priority (julienfalque)
* bug #4813 BracesFixer - fix invalid code generation on alternative syntax (SpacePossum)
* bug #4823 ReturnAssignmentFixer - repeat fix (SpacePossum)
* bug #4824 NoUnusedImportsFixer - SingleLineAfterImportsFixer - fix priority (SpacePossum)
* bug #4829 YodaStyleFixer - fix precedence for T_MOD_EQUAL and T_COALESCE_EQUAL (SpacePossum)
* bug #4830 TernaryToNullCoalescingFixer - handle yield from (SpacePossum)
* bug #4835 Remove duplicate "function_to_constant" from RuleSet (SpacePossum)
* bug #4840 LineEndingFixer - T_CLOSE_TAG support, StringLineEndingFixer - T_INLI… (SpacePossum)
* bug #4846 FunctionsAnalyzer - better isGlobalFunctionCall detection (SpacePossum)
* bug #4852 Priority issues (SpacePossum)
* bug #4870 HeaderCommentFixer - do not remove class docs (gharlan)
* bug #4871 NoExtraBlankLinesFixer - handle cases on same line (SpacePossum)
* bug #4895 Fix conflict between header_comment and declare_strict_types (BackEndTea, julienfalque)
* bug #4911 PhpdocSeparationFixer - fix regression with lack of next line (keradus)
* feature #4742 FunctionToConstantFixer - get_class($this) support (SpacePossum)
* minor #4377 CommentsAnalyzer - fix for declare before header comment (kubawerlos)
* minor #4636 DX: do not check for PHPDBG when collecting coverage (kubawerlos)
* minor #4644 Docs: add info about "-vv..." (voku)
* minor #4691 Run Travis CI on stable PHP 7.4 (kubawerlos)
* minor #4693 Increase Travis CI Git clone depth (julienfalque)
* minor #4699 LineEndingFixer - handle "\r\r\n" (kubawerlos)
* minor #4703 NoSuperfluousPhpdocTagsFixer,PhpdocAddMissingParamAnnotationFixer - p… (SpacePossum)
* minor #4707 Fix typos (TysonAndre)
* minor #4712 NoBlankLinesAfterPhpdocFixer — Do not strip newline between docblock and use statements (mollierobbert)
* minor #4715 Enhancement: Install ergebnis/composer-normalize via Phive (localheinz)
* minor #4722 Fix Circle CI build (julienfalque)
* minor #4724 DX: Simplify installing PCOV (kubawerlos)
* minor #4736 NoUnusedImportsFixer - do not match variable name as import (SpacePossum)
* minor #4746 NoSuperfluousPhpdocTagsFixer - Remove for typed properties (PHP 7.4) (ruudk)
* minor #4753 Do not apply any text/.git filters to fixtures (mvorisek)
* minor #4757 Test $expected is used before $input (SpacePossum)
* minor #4758 Autoreview the PHPDoc of *Fixer::getPriority based on the priority map (SpacePossum)
* minor #4765 Add test on some return types (SpacePossum)
* minor #4766 Remove false test skip (SpacePossum)
* minor #4767 Remove useless priority comments (kubawerlos)
* minor #4769 DX: add missing priority tests (kubawerlos)
* minor #4772 NoUnneededFinalMethodFixer - update description (kubawerlos)
* minor #4774 DX: simplify Utils::camelCaseToUnderscore (kubawerlos)
* minor #4781 NoUnneededCurlyBracesFixer - handle namespaces (SpacePossum)
* minor #4784 Travis CI - Use multiple keyservers (ktomk)
* minor #4785 Improve static analysis (enumag)
* minor #4788 Configurable fixers code sample (SpacePossum)
* minor #4791 Increase PHPStan level to 3 (julienfalque)
* minor #4797 clean ups (SpacePossum)
* minor #4803 FinalClassFixer - Doctrine\ORM\Mapping as ORM alias should not be required (localheinz)
* minor #4839 2.15 - clean ups (SpacePossum)
* minor #4842 ReturnAssignmentFixer - Support more cases (julienfalque)
* minor #4844 Same requirements for descriptions (SpacePossum)
* minor #4849 Increase PHPStan level to 5 (julienfalque)
* minor #4857 Fixed the unit tests (GrahamCampbell)
* minor #4865 Use latest xcode image (GrahamCampbell)
* minor #4892 CombineNestedDirnameFixer - Add space after comma (julienfalque)
* minor #4898 FixerTest - yield the data in AutoReview (Nyholm)
* minor #4899 Fix exception message format for fabbot.io (SpacePossum)
* minor #4905 Support composer v2 installed.json files (GrahamCampbell)
* minor #4906 CI: use Composer stable release for AppVeyor (kubawerlos)
* minor #4909 DX: HeaderCommentFixer - use non-aliased version of option name in code (keradus)
* minor #4912 CI: Fix AppVeyor integration (keradus)

Changelog for v2.15.5
---------------------

* bug #4476 FunctionsAnalyzer - add "isTheSameClassCall" for correct verifying of function calls (kubawerlos)
* bug #4641 Add typed properties test to VisibilityRequiredFixerTest (GawainLynch, julienfalque)
* bug #4654 ArrayIndentationFixer - Fix array indentation for multiline values (julienfalque)
* bug #4660 TokensAnalyzer::isConstantInvocation - fix for extending multiple interfaces (kubawerlos)
* bug #4668 TokensAnalyzer::isConstantInvocation - fix for interface method return type (kubawerlos)
* minor #4608 Allow Symfony 5 components (l-vo)
* minor #4622 Disallow PHP 7.4 failures on Travis CI (julienfalque)
* minor #4637 PHP 7.4 integration test (GawainLynch, julienfalque)
* minor #4643 DX: Update .gitattributes and move ci-integration.sh to root of the project (kubawerlos, keradus)
* minor #4645 Check PHP extensions on runtime (kubawerlos)
* minor #4655 Improve docs - README (mvorisek)
* minor #4662 DX: generate headers in README.rst (kubawerlos)
* minor #4669 Enable execution under PHP 7.4 (keradus)
* minor #4671 TravisTest - rewrite tests to allow last supported by tool PHP version to be snapshot (keradus)

Changelog for v2.15.4
---------------------

* bug #4183 IndentationTypeFixer - fix handling 2 spaces indent (kubawerlos)
* bug #4406 NoSuperfluousElseifFixer - fix invalid escape sequence in character class (remicollet, SpacePossum)
* bug #4416 NoUnusedImports - Fix imports detected as used in namespaces (julienfalque, SpacePossum)
* bug #4518 PhpUnitNoExpectationAnnotationFixer - fix handling expect empty exception message (ktomk)
* bug #4548 HeredocIndentationFixer - remove whitespace in empty lines (gharlan)
* bug #4556 ClassKeywordRemoveFixer - fix for self,static and parent keywords (kubawerlos)
* bug #4572 TokensAnalyzer - handle nested anonymous classes (SpacePossum)
* bug #4573 CombineConsecutiveIssetsFixer - fix stop based on precedence (SpacePossum)
* bug #4577 Fix command exit code on lint error after fixing fix. (SpacePossum)
* bug #4581 FunctionsAnalyzer: fix for comment in type (kubawerlos)
* bug #4586 BracesFixer - handle dynamic static method call (SpacePossum)
* bug #4594 Braces - fix both single line comment styles (SpacePossum)
* bug #4609 PhpdocTypesOrderFixer - Prevent unexpected default value change (laurent35240)
* minor #4458 Add PHPStan (julienfalque)
* minor #4479 IncludeFixer - remove braces when the statement is wrapped in block (kubawerlos)
* minor #4490 Allow running if installed as project specific (ticktackk)
* minor #4517 Verify PCRE pattern before use (ktomk)
* minor #4521 Remove superfluous leading backslash, closes 4520 (ktomk)
* minor #4532 DX: ensure data providers are used (kubawerlos)
* minor #4534 Redo PHP7.4 - Add "str_split" => "mb_str_split" mapping (keradus, Slamdunk)
* minor #4536 DX: use PHIVE for dev tools (keradus)
* minor #4538 Docs: update Cookbook (keradus)
* minor #4541 Enhancement: Use default name property to configure command names (localheinz)
* minor #4546 DX: removing unnecessary variable initialization (kubawerlos)
* minor #4549 DX: use ::class whenever possible (keradus, kubawerlos)
* minor #4550 DX: travis_retry for dev-tools install (ktomk, keradus)
* minor #4559 Allow 7.4snapshot to fail due to a bug on it (kubawerlos)
* minor #4563 GitlabReporter - fix report output (mjanser)
* minor #4564 Move readme-update command to Section 3 (iwasherefirst2)
* minor #4566 Update symfony ruleset (gharlan)
* minor #4570 Command::execute() should always return an integer (derrabus)
* minor #4580 Add suport for true/false return type hints. (SpacePossum)
* minor #4584 Increase PHPStan level to 1 (julienfalque)
* minor #4585 Fix deprecation notices (julienfalque)
* minor #4587 Output details - Explain why a file was skipped (SpacePossum)
* minor #4588 Fix STDIN test when path is one level deep (julienfalque)
* minor #4589 PhpdocToReturnType - Add support for Foo[][] (SpacePossum)
* minor #4593 Ensure compatibility with PHP 7.4 typed properties (julienfalque)
* minor #4595 Import cannot be used after `::` so can be removed (SpacePossum)
* minor #4596 Ensure compatibility with PHP 7.4 numeric literal separator (julienfalque)
* minor #4597 Fix PHP 7.4 deprecation notices (julienfalque)
* minor #4600 Ensure compatibility with PHP 7.4 arrow functions (julienfalque)
* minor #4602 Ensure compatibility with PHP 7.4 spread operator in array expression (julienfalque)
* minor #4603 Ensure compatibility with PHP 7.4 null coalescing assignment operator (julienfalque)
* minor #4606 Configure no_superfluous_phpdoc_tags for Symfony (keradus)
* minor #4610 Travis CI - Update known files list (julienfalque)
* minor #4615 Remove workaround for dev-tools install reg. Phive (ktomk)

Changelog for v2.15.3
---------------------

* bug #4533 Revert PHP7.4 - Add "str_split" => "mb_str_split" mapping (keradus)
* minor #4264 DX: AutoReview - ensure Travis handle all needed PHP versions (keradus)
* minor #4524 MethodArgumentSpaceFixerTest - make explicit configuration to prevent fail on configuration change (keradus)

Changelog for v2.15.2
---------------------

* bug #4132 BlankLineAfterNamespaceFixer - do not remove indent, handle comments (kubawerlos)
* bug #4384 MethodArgumentSpaceFixer - fix for on_multiline:ensure_fully_multiline with trailing comma in function call (kubawerlos)
* bug #4404 FileLintingIterator - fix current value on end/invalid (SpacePossum)
* bug #4421 FunctionTypehintSpaceFixer - Ensure single space between type declaration and parameter (localheinz)
* bug #4436 MethodArgumentSpaceFixer - handle misplaced ) (keradus)
* bug #4439 NoLeadingImportSlashFixer - Add space if needed (SpacePossum)
* bug #4440 SimpleToComplexStringVariableFixer - Fix $ bug (dmvdbrugge)
* bug #4453 Fix preg_match error on 7.4snapshot (kubawerlos)
* bug #4461 IsNullFixer - fix null coalescing operator handling (linniksa)
* bug #4467 ToolInfo - fix access to reference without checking existence (black-silence)
* bug #4472 Fix non-static closure unbinding this on PHP 7.4 (kelunik)
* minor #3726 Use Box 3 to build the PHAR (theofidry, keradus)
* minor #4412 PHP 7.4 - Tests for support (SpacePossum)
* minor #4431 DX: test that default config is not passed in RuleSet (kubawerlos)
* minor #4433 DX: test to ensure @PHPUnitMigration rule sets are correctly defined (kubawerlos)
* minor #4445 DX: static call of markTestSkippedOrFail (kubawerlos)
* minor #4463 Add apostrophe to possessive "team's" (ChandlerSwift)
* minor #4471 ReadmeCommandTest - use CommandTester (kubawerlos)
* minor #4477 DX: control names of public methods in test's classes (kubawerlos)
* minor #4483 NewWithBracesFixer - Fix object operator and curly brace open cases (SpacePossum)
* minor #4484 fix typos in README (Sven Ludwig)
* minor #4494 DX: Fix shell script syntax in order to fix Travis builds (drupol)
* minor #4516 DX: Lock binary SCA tools versions (keradus)

Changelog for v2.15.1
---------------------

* bug #4418 PhpUnitNamespacedFixer - properly translate classes which do not follow translation pattern (ktomk)
* bug #4419 PhpUnitTestCaseStaticMethodCallsFixer - skip anonymous classes and lambda (SpacePossum)
* bug #4420 MethodArgumentSpaceFixer - PHP7.3 trailing commas in function calls (SpacePossum)
* minor #4345 Travis: PHP 7.4 isn't allowed to fail anymore (Slamdunk)
* minor #4403 LowercaseStaticReferenceFixer - Fix invalid PHP version in example (HypeMC)
* minor #4424 DX: cleanup of composer.json - no need for branch-alias (keradus)
* minor #4425 DX: assertions are static, adjust custom assertions (keradus)
* minor #4426 DX: handle deprecations of symfony/event-dispatcher:4.3 (keradus)
* minor #4427 DX: stop using reserved T_FN in code samples (keradus)
* minor #4428 DX: update dev-tools (keradus)
* minor #4429 DX: MethodArgumentSpaceFixerTest - fix hidden merge conflict (keradus)

Changelog for v2.15.0
---------------------

* feature #3927 Add FinalClassFixer (Slamdunk)
* feature #3939 Add PhpUnitSizeClassFixer (Jefersson Nathan)
* feature #3942 SimpleToComplexStringVariableFixer - Introduction (dmvdbrugge, SpacePossum)
* feature #4113 OrderedInterfacesFixer - Introduction (dmvdbrugge)
* feature #4121 SingleTraitInsertPerStatementFixer - Introduction (SpacePossum)
* feature #4126 NativeFunctionTypeDeclarationCasingFixer - Introduction (SpacePossum)
* feature #4167 PhpUnitMockShortWillReturnFixer - Introduction (michadam-pearson)
* feature #4191 [7.3] NoWhitespaceBeforeCommaInArrayFixer - fix comma after heredoc-end (gharlan)
* feature #4288 Add Gitlab Reporter (hco)
* feature #4328 Add PhpUnitDedicateAssertInternalTypeFixer (Slamdunk)
* feature #4341 [7.3] TrailingCommaInMultilineArrayFixer - fix comma after heredoc-end (gharlan)
* feature #4342 [7.3] MethodArgumentSpaceFixer - fix comma after heredoc-end (gharlan)
* minor #4112 NoSuperfluousPhpdocTagsFixer - Add missing code sample, groom tests (keradus, SpacePossum)
* minor #4360 Add gitlab as output format in the README/help doc. (SpacePossum)
* minor #4386 Add PhpUnitMockShortWillReturnFixer to @Symfony:risky rule set (kubawerlos)
* minor #4398 New ruleset "@PHP73Migration" (gharlan)
* minor #4399 Fix 2.15 line (keradus)

Changelog for v2.14.6
---------------------

* bug #4533 Revert PHP7.4 - Add "str_split" => "mb_str_split" mapping (keradus)
* minor #4264 DX: AutoReview - ensure Travis handle all needed PHP versions (keradus)
* minor #4524 MethodArgumentSpaceFixerTest - make explicit configuration to prevent fail on configuration change (keradus)

Changelog for v2.14.5
---------------------

* bug #4132 BlankLineAfterNamespaceFixer - do not remove indent, handle comments (kubawerlos)
* bug #4384 MethodArgumentSpaceFixer - fix for on_multiline:ensure_fully_multiline with trailing comma in function call (kubawerlos)
* bug #4404 FileLintingIterator - fix current value on end/invalid (SpacePossum)
* bug #4421 FunctionTypehintSpaceFixer - Ensure single space between type declaration and parameter (localheinz)
* bug #4436 MethodArgumentSpaceFixer - handle misplaced ) (keradus)
* bug #4439 NoLeadingImportSlashFixer - Add space if needed (SpacePossum)
* bug #4453 Fix preg_match error on 7.4snapshot (kubawerlos)
* bug #4461 IsNullFixer - fix null coalescing operator handling (linniksa)
* bug #4467 ToolInfo - fix access to reference without checking existence (black-silence)
* bug #4472 Fix non-static closure unbinding this on PHP 7.4 (kelunik)
* minor #3726 Use Box 3 to build the PHAR (theofidry, keradus)
* minor #4412 PHP 7.4 - Tests for support (SpacePossum)
* minor #4431 DX: test that default config is not passed in RuleSet (kubawerlos)
* minor #4433 DX: test to ensure @PHPUnitMigration rule sets are correctly defined (kubawerlos)
* minor #4445 DX: static call of markTestSkippedOrFail (kubawerlos)
* minor #4463 Add apostrophe to possessive "team's" (ChandlerSwift)
* minor #4471 ReadmeCommandTest - use CommandTester (kubawerlos)
* minor #4477 DX: control names of public methods in test's classes (kubawerlos)
* minor #4483 NewWithBracesFixer - Fix object operator and curly brace open cases (SpacePossum)
* minor #4484 fix typos in README (Sven Ludwig)
* minor #4494 DX: Fix shell script syntax in order to fix Travis builds (drupol)
* minor #4516 DX: Lock binary SCA tools versions (keradus)

Changelog for v2.14.4
---------------------

* bug #4418 PhpUnitNamespacedFixer - properly translate classes which do not follow translation pattern (ktomk)
* bug #4419 PhpUnitTestCaseStaticMethodCallsFixer - skip anonymous classes and lambda (SpacePossum)
* bug #4420 MethodArgumentSpaceFixer - PHP7.3 trailing commas in function calls (SpacePossum)
* minor #4345 Travis: PHP 7.4 isn't allowed to fail anymore (Slamdunk)
* minor #4403 LowercaseStaticReferenceFixer - Fix invalid PHP version in example (HypeMC)
* minor #4425 DX: assertions are static, adjust custom assertions (keradus)
* minor #4426 DX: handle deprecations of symfony/event-dispatcher:4.3 (keradus)
* minor #4427 DX: stop using reserved T_FN in code samples (keradus)
* minor #4428 DX: update dev-tools (keradus)

Changelog for v2.14.3
---------------------

* bug #4298 NoTrailingWhitespaceInCommentFixer - fix for non-Unix line separators (kubawerlos)
* bug #4303 FullyQualifiedStrictTypesFixer - Fix the short type detection when a question mark (nullable) is prefixing it. (drupol)
* bug #4313 SelfAccessorFixer - fix for part qualified class name (kubawerlos, SpacePossum)
* bug #4314 PhpUnitTestCaseStaticMethodCallsFixer - fix for having property with name as method to update (kubawerlos, SpacePossum)
* bug #4316 NoUnsetCastFixer - Test for higher-precedence operators (SpacePossum)
* bug #4327 TokensAnalyzer - add concat operator to list of binary operators (SpacePossum)
* bug #4335 Cache - add indent and line ending to cache signature (dmvdbrugge)
* bug #4344 VoidReturnFixer - handle yield from (SpacePossum)
* bug #4346 BracesFixer - Do not pull close tag onto same line as a comment (SpacePossum)
* bug #4350 StrictParamFixer - Don't detect functions in use statements (bolmstedt)
* bug #4357 Fix short list syntax detection. (SpacePossum)
* bug #4365 Fix output escaping of diff for text format when line is not changed (SpacePossum)
* bug #4370 PhpUnitConstructFixer - Fix handle different casing (SpacePossum)
* bug #4379 ExplicitStringVariableFixer - add test case for variable as an array key (kubawerlos, Slamdunk)
* feature #4337 PhpUnitTestCaseStaticMethodCallsFixer - prepare for PHPUnit 8 (kubawerlos)
* minor #3799 DX: php_unit_test_case_static_method_calls - use default config (keradus)
* minor #4103 NoExtraBlankLinesFixer - fix candidate detection (SpacePossum)
* minor #4245 LineEndingFixer - BracesFixer - Priority (dmvdbrugge)
* minor #4325 Use lowercase mikey179/vfsStream in composer.json (lolli42)
* minor #4336 Collect coverage with PCOV (kubawerlos)
* minor #4338 Fix wording (kmvan, kubawerlos)
* minor #4339 Change BracesFixer to avoid indenting PHP inline braces (alecgeatches)
* minor #4340 Travis: build against 7.4snapshot instead of nightly (Slamdunk)
* minor #4351 code grooming (SpacePossum)
* minor #4353 Add more priority tests (SpacePossum)
* minor #4364 DX: MethodChainingIndentationFixer - remove unneccesary loop (Sijun Zhu)
* minor #4366 Unset the auxillary variable $a (GrahamCampbell)
* minor #4368 Fixed TypeShortNameResolverTest::testResolver (GrahamCampbell)
* minor #4380 PHP7.4 - Add "str_split" => "mb_str_split" mapping. (SpacePossum)
* minor #4381 PHP7.4 - Add support for magic methods (un)serialize. (SpacePossum)
* minor #4393 DX: add missing explicit return types (kubawerlos)

Changelog for v2.14.2
---------------------

* minor #4306 DX: Drop HHVM conflict on Composer level to help Composer with HHVM compatibility, we still prevent HHVM on runtime (keradus)

Changelog for v2.14.1
---------------------

* bug #4240 ModernizeTypesCastingFixer - fix for operators with higher precedence (kubawerlos)
* bug #4254 PhpUnitDedicateAssertFixer - fix for count with additional operations (kubawerlos)
* bug #4260 Psr0Fixer and Psr4Fixer  - fix for multiple classes in file with anonymous class (kubawerlos)
* bug #4262 FixCommand - fix help (keradus)
* bug #4276 MethodChainingIndentationFixer, ArrayIndentationFixer - Fix priority issue (dmvdbrugge)
* bug #4280 MethodArgumentSpaceFixer - Fix method argument alignment (Billz95)
* bug #4286 IncrementStyleFixer - fix for static statement (kubawerlos)
* bug #4291 ArrayIndentationFixer - Fix indentation after trailing spaces (julienfalque, keradus)
* bug #4292 NoSuperfluousPhpdocTagsFixer - Make null only type not considered superfluous (julienfalque)
* minor #4204 DX: Tokens - do not unregister/register found tokens when collection is not changing (kubawerlos)
* minor #4235 DX: more specific @param types (kubawerlos)
* minor #4263 DX: AppVeyor - bump PHP version (keradus)
* minor #4293 Add official support for PHP 7.3 (keradus)
* minor #4295 DX: MethodArgumentSpaceFixerTest - fix edge case for handling different line ending when only expected code is provided (keradus)
* minor #4296 DX: cleanup testing with fixer config (keradus)
* minor #4299 NativeFunctionInvocationFixer - add array_key_exists (deguif, keradus)
* minor #4300 DX: cleanup testing with fixer config (keradus)

Changelog for v2.14.0
---------------------

* bug #4220 NativeFunctionInvocationFixer - namespaced strict to remove backslash (kubawerlos)
* feature #3881 Add PhpdocVarAnnotationCorrectOrderFixer (kubawerlos)
* feature #3915 Add HeredocIndentationFixer (gharlan)
* feature #4002 NoSuperfluousPhpdocTagsFixer - Allow `mixed` in superfluous PHPDoc by configuration (MortalFlesh)
* feature #4030 Add get_required_files and user_error aliases (ntzm)
* feature #4043 NativeFunctionInvocationFixer - add option to remove redundant backslashes (kubawerlos)
* feature #4102 Add NoUnsetCastFixer (SpacePossum)
* minor #4025 Add phpdoc_types_order rule to Symfony's ruleset (carusogabriel)
* minor #4213 [7.3] PHP7.3 integration tests (SpacePossum)
* minor #4233 Add official support for PHP 7.3 (keradus)

Changelog for v2.13.3
---------------------

* bug #4216 Psr4Fixer - fix for multiple classy elements in file (keradus, kubawerlos)
* bug #4217 Psr0Fixer - class with anonymous class (kubawerlos)
* bug #4219  NativeFunctionCasingFixer - handle T_RETURN_REF  (kubawerlos)
* bug #4224 FunctionToConstantFixer - handle T_RETURN_REF (SpacePossum)
* bug #4229 IsNullFixer - fix parenthesis not closed (guilliamxavier)
* minor #4193 [7.3] CombineNestedDirnameFixer - support PHP 7.3 (kubawerlos)
* minor #4198 [7.3] PowToExponentiationFixer - adding to PHP7.3 integration test (kubawerlos)
* minor #4199 [7.3] MethodChainingIndentationFixer - add tests for PHP 7.3 (kubawerlos)
* minor #4200 [7.3] ModernizeTypesCastingFixer - support PHP 7.3 (kubawerlos)
* minor #4201 [7.3] MultilineWhitespaceBeforeSemicolonsFixer - add tests for PHP 7.3 (kubawerlos)
* minor #4202 [7.3] ErrorSuppressionFixer - support PHP 7.3 (kubawerlos)
* minor #4205 DX: PhpdocAlignFixer - refactor to use DocBlock (kubawerlos)
* minor #4206 DX: enable multiline_whitespace_before_semicolons (keradus)
* minor #4207 [7.3] RandomApiMigrationFixerTest - tests for 7.3 (SpacePossum)
* minor #4208 [7.3] NativeFunctionCasingFixerTest - tests for 7.3 (SpacePossum)
* minor #4209 [7.3] PhpUnitStrictFixerTest - tests for 7.3 (SpacePossum)
* minor #4210 [7.3] PhpUnitConstructFixer - add test for PHP 7.3 (kubawerlos)
* minor #4211 [7.3] PhpUnitDedicateAssertFixer - support PHP 7.3 (kubawerlos)
* minor #4214 [7.3] NoUnsetOnPropertyFixerTest - tests for 7.3 (SpacePossum)
* minor #4222 [7.3] PhpUnitExpectationFixer - support PHP 7.3 (kubawerlos)
* minor #4223 [7.3] PhpUnitMockFixer - add tests for PHP 7.3 (kubawerlos)
* minor #4230 [7.3] IsNullFixer - fix trailing comma (guilliamxavier)
* minor #4232 DX: remove Utils::splitLines (kubawerlos)
* minor #4234 [7.3] Test that "LITERAL instanceof X" is valid (guilliamxavier)

Changelog for v2.13.2
---------------------

* bug #3968 SelfAccessorFixer - support FQCN (kubawerlos)
* bug #3974 Psr4Fixer - class with anonymous class (kubawerlos)
* bug #3987 Run HeaderCommentFixer after NoBlankLinesAfterPhpdocFixer (StanAngeloff)
* bug #4009 TypeAlternationTransformer - Fix pipes in function call with constants being classified incorrectly (ntzm, SpacePossum)
* bug #4022 NoUnsetOnPropertyFixer - refactor and bugfixes (kubawerlos)
* bug #4036 ExplicitStringVariableFixer - fixes for backticks and for 2 variables next to each other (kubawerlos, Slamdunk)
* bug #4038 CommentToPhpdocFixer - handling nested PHPDoc (kubawerlos)
* bug #4064 Ignore invalid mode strings, add option to remove the "b" flag. (SpacePossum)
* bug #4071 DX: do not insert Token when calling removeLeadingWhitespace/removeTrailingWhitespace from Tokens (kubawerlos)
* bug #4073 IsNullFixer - fix function detection (kubawerlos)
* bug #4074 FileFilterIterator - do not filter out files that need fixing (SpacePossum)
* bug #4076 EregToPregFixer - fix function detection (kubawerlos)
* bug #4084 MethodChainingIndentation - fix priority with Braces (dmvdbrugge)
* bug #4099 HeaderCommentFixer - throw exception on invalid header configuration (SpacePossum)
* bug #4100 PhpdocAddMissingParamAnnotationFixer - Handle variable number of arguments and pass by reference cases (SpacePossum)
* bug #4101 ReturnAssignmentFixer - do not touch invalid code (SpacePossum)
* bug #4104 Change transformers order, fixing untransformed T_USE (dmvdbrugge)
* bug #4107 Preg::split - fix for non-UTF8 subject (ostrolucky, kubawerlos)
* bug #4109 NoBlankLines*: fix removing lines consisting only of spaces (kubawerlos, keradus)
* bug #4114 VisibilityRequiredFixer - don't remove comments (kubawerlos)
* bug #4116 OrderedImportsFixer - fix sorting without any grouping (SpacePossum)
* bug #4119 PhpUnitNoExpectationAnnotationFixer - fix extracting content from annotation (kubawerlos)
* bug #4127 LowercaseConstantsFixer - Fix case with properties using constants as their name (srathbone)
* bug #4134 [7.3] SquareBraceTransformer - nested array destructuring not handled correctly (SpacePossum)
* bug #4153 PhpUnitFqcnAnnotationFixer - handle only PhpUnit classes (kubawerlos)
* bug #4169 DirConstantFixer - Fixes for PHP7.3 syntax (SpacePossum)
* bug #4181 MultilineCommentOpeningClosingFixer - fix handling empty comment (kubawerlos)
* bug #4186 Tokens - fix removal of leading/trailing whitespace with empty token in collection (kubawerlos)
* minor #3436 Add a handful of integration tests (BackEndTea)
* minor #3774 PhpUnitTestClassRequiresCoversFixer - Remove unneeded loop and use phpunit indicator class (BackEndTea, SpacePossum)
* minor #3778 DX: Throw an exception if FileReader::read fails (ntzm)
* minor #3916 New ruleset "@PhpCsFixer" (gharlan)
* minor #4007 Fixes cookbook for fixers (greeflas)
* minor #4031 Correct FixerOptionBuilder::getOption return type (ntzm)
* minor #4046 Token - Added fast isset() path to token->equals() (staabm)
* minor #4047 Token - inline $other->getPrototype() to speedup equals() (staabm, keradus)
* minor #4048 Tokens - inlined extractTokenKind() call on the hot path (staabm)
* minor #4069 DX: Add dev-tools directory to gitattributes as export-ignore (alexmanno)
* minor #4070 Docs: Add link to a VS Code extension in readme (jakebathman)
* minor #4077 DX: cleanup - NoAliasFunctionsFixer - use FunctionsAnalyzer (kubawerlos)
* minor #4088 Add Travis test with strict types (kubawerlos)
* minor #4091 Adjust misleading sentence in CONTRIBUTING.md (ostrolucky)
* minor #4092 UseTransformer - simplify/optimize (SpacePossum)
* minor #4095 DX: Use ::class (keradus)
* minor #4096 DX: fixing typo (kubawerlos)
* minor #4097 DX: namespace casing (kubawerlos)
* minor #4110 Enhancement: Update localheinz/composer-normalize (localheinz)
* minor #4115 Changes for upcoming Travis' infra migration (sergeyklay)
* minor #4122 DX: AppVeyor - Update Composer download link (SpacePossum)
* minor #4128 DX: cleanup - AbstractFunctionReferenceFixer - use FunctionsAnalyzer (SpacePossum, kubawerlos)
* minor #4129 Fix: Symfony 4.2 deprecations (kubawerlos)
* minor #4139 DX: Fix CircleCI (kubawerlos)
* minor #4142 [7.3] NoAliasFunctionsFixer - mbregex_encoding' => 'mb_regex_encoding (SpacePossum)
* minor #4143 PhpUnitTestCaseStaticMethodCallsFixer - Add PHPUnit 7.5 new assertions (Slamdunk)
* minor #4149 [7.3] ArgumentsAnalyzer - PHP7.3 support (SpacePossum)
* minor #4161 DX: CI - show packages installed via Composer (keradus)
* minor #4162 DX: Drop symfony/lts (keradus)
* minor #4166 DX: do not use AbstractFunctionReferenceFixer when no need to (kubawerlos)
* minor #4168 DX: FopenFlagsFixer - remove useless proxy method (SpacePossum)
* minor #4171 Fix CircleCI cache (kubawerlos)
* minor #4173 [7.3] PowToExponentiationFixer - add support for PHP7.3 (SpacePossum)
* minor #4175 Fixing typo (kubawerlos)
* minor #4177 CI: Check that tag is matching version of PHP CS Fixer during deployment (keradus)
* minor #4180 Fixing typo (kubawerlos)
* minor #4182 DX: update php-cs-fixer file style (kubawerlos)
* minor #4185 [7.3] ImplodeCallFixer - add tests for PHP7.3 (kubawerlos)
* minor #4187 [7.3] IsNullFixer - support PHP 7.3 (kubawerlos)
* minor #4188 DX: cleanup (keradus)
* minor #4189 Travis - add PHP 7.3 job (keradus)
* minor #4190 Travis CI - fix config (kubawerlos)
* minor #4192 [7.3] MagicMethodCasingFixer - add tests for PHP 7.3 (kubawerlos)
* minor #4194 [7.3] NativeFunctionInvocationFixer - add tests for PHP 7.3 (kubawerlos)
* minor #4195 [7.3] SetTypeToCastFixer - support PHP 7.3 (kubawerlos)
* minor #4196 Update website (keradus)
* minor #4197 [7.3] StrictParamFixer - support PHP 7.3 (kubawerlos)

Changelog for v2.13.1
---------------------

* bug #3977 NoSuperfluousPhpdocTagsFixer - Fix handling of description with variable (julienfalque)
* bug #4027 PhpdocAnnotationWithoutDotFixer - add failing cases (keradus)
* bug #4028 PhpdocNoEmptyReturnFixer - handle single line PHPDoc (kubawerlos)
* bug #4034 PhpUnitTestCaseIndicator - handle anonymous class (kubawerlos)
* bug #4037 NativeFunctionInvocationFixer - fix function detection (kubawerlos)
* feature #4019 PhpdocTypesFixer - allow for configuration (keradus)
* minor #3980 Clarifies allow-risky usage (josephzidell)
* minor #4016 Bump console component due to it's bug (keradus)
* minor #4023 Enhancement: Update localheinz/composer-normalize (localheinz)
* minor #4049 use parent::offset*() methods when moving items around in insertAt() (staabm)

Changelog for v2.13.0
---------------------

* feature #3739 Add MagicMethodCasingFixer (SpacePossum)
* feature #3812 Add FopenFlagOrderFixer & FopenFlagsFixer (SpacePossum)
* feature #3826 Add CombineNestedDirnameFixer (gharlan)
* feature #3833 BinaryOperatorSpacesFixer - Add "no space" fix strategy (SpacePossum)
* feature #3841 NoAliasFunctionsFixer - add opt in option for ext-mbstring aliasses (SpacePossum)
* feature #3876 NativeConstantInvocationFixer - add the scope option (stof, keradus)
* feature #3886 Add PhpUnitMethodCasingFixer (Slamdunk)
* feature #3907 Add ImplodeCallFixer (kubawerlos)
* feature #3914 NoUnreachableDefaultArgumentValueFixer - remove `null` for nullable typehints (gharlan, keradus)
* minor #3813 PhpUnitDedicateAssertFixer - fix "sizeOf" same as "count". (SpacePossum)
* minor #3873 Add the native_function_invocation fixer in the Symfony:risky ruleset (stof)
* minor #3979 DX: enable php_unit_method_casing (keradus)

Changelog for v2.12.12
----------------------

* bug #4533 Revert PHP7.4 - Add "str_split" => "mb_str_split" mapping (keradus)
* minor #4264 DX: AutoReview - ensure Travis handle all needed PHP versions (keradus)
* minor #4524 MethodArgumentSpaceFixerTest - make explicit configuration to prevent fail on configuration change (keradus)

Changelog for v2.12.11
----------------------

* bug #4132 BlankLineAfterNamespaceFixer - do not remove indent, handle comments (kubawerlos)
* bug #4384 MethodArgumentSpaceFixer - fix for on_multiline:ensure_fully_multiline with trailing comma in function call (kubawerlos)
* bug #4404 FileLintingIterator - fix current value on end/invalid (SpacePossum)
* bug #4421 FunctionTypehintSpaceFixer - Ensure single space between type declaration and parameter (localheinz)
* bug #4436 MethodArgumentSpaceFixer - handle misplaced ) (keradus)
* bug #4439 NoLeadingImportSlashFixer - Add space if needed (SpacePossum)
* bug #4453 Fix preg_match error on 7.4snapshot (kubawerlos)
* bug #4461 IsNullFixer - fix null coalescing operator handling (linniksa)
* bug #4467 ToolInfo - fix access to reference without checking existence (black-silence)
* bug #4472 Fix non-static closure unbinding this on PHP 7.4 (kelunik)
* minor #3726 Use Box 3 to build the PHAR (theofidry, keradus)
* minor #4412 PHP 7.4 - Tests for support (SpacePossum)
* minor #4431 DX: test that default config is not passed in RuleSet (kubawerlos)
* minor #4433 DX: test to ensure @PHPUnitMigration rule sets are correctly defined (kubawerlos)
* minor #4445 DX: static call of markTestSkippedOrFail (kubawerlos)
* minor #4463 Add apostrophe to possessive "team's" (ChandlerSwift)
* minor #4471 ReadmeCommandTest - use CommandTester (kubawerlos)
* minor #4477 DX: control names of public methods in test's classes (kubawerlos)
* minor #4483 NewWithBracesFixer - Fix object operator and curly brace open cases (SpacePossum)
* minor #4484 fix typos in README (Sven Ludwig)
* minor #4494 DX: Fix shell script syntax in order to fix Travis builds (drupol)
* minor #4516 DX: Lock binary SCA tools versions (keradus)

Changelog for v2.12.10
----------------------

* bug #4418 PhpUnitNamespacedFixer - properly translate classes which do not follow translation pattern (ktomk)
* bug #4419 PhpUnitTestCaseStaticMethodCallsFixer - skip anonymous classes and lambda (SpacePossum)
* bug #4420 MethodArgumentSpaceFixer - PHP7.3 trailing commas in function calls (SpacePossum)
* minor #4345 Travis: PHP 7.4 isn't allowed to fail anymore (Slamdunk)
* minor #4403 LowercaseStaticReferenceFixer - Fix invalid PHP version in example (HypeMC)
* minor #4425 DX: assertions are static, adjust custom assertions (keradus)
* minor #4426 DX: handle deprecations of symfony/event-dispatcher:4.3 (keradus)
* minor #4427 DX: stop using reserved T_FN in code samples (keradus)

Changelog for v2.12.9
---------------------

* bug #4298 NoTrailingWhitespaceInCommentFixer - fix for non-Unix line separators (kubawerlos)
* bug #4303 FullyQualifiedStrictTypesFixer - Fix the short type detection when a question mark (nullable) is prefixing it. (drupol)
* bug #4313 SelfAccessorFixer - fix for part qualified class name (kubawerlos, SpacePossum)
* bug #4314 PhpUnitTestCaseStaticMethodCallsFixer - fix for having property with name as method to update (kubawerlos, SpacePossum)
* bug #4327 TokensAnalyzer - add concat operator to list of binary operators (SpacePossum)
* bug #4335 Cache - add indent and line ending to cache signature (dmvdbrugge)
* bug #4344 VoidReturnFixer - handle yield from (SpacePossum)
* bug #4346 BracesFixer - Do not pull close tag onto same line as a comment (SpacePossum)
* bug #4350 StrictParamFixer - Don't detect functions in use statements (bolmstedt)
* bug #4357 Fix short list syntax detection. (SpacePossum)
* bug #4365 Fix output escaping of diff for text format when line is not changed (SpacePossum)
* bug #4370 PhpUnitConstructFixer - Fix handle different casing (SpacePossum)
* bug #4379 ExplicitStringVariableFixer - add test case for variable as an array key (kubawerlos, Slamdunk)
* feature #4337 PhpUnitTestCaseStaticMethodCallsFixer - prepare for PHPUnit 8 (kubawerlos)
* minor #3799 DX: php_unit_test_case_static_method_calls - use default config (keradus)
* minor #4103 NoExtraBlankLinesFixer - fix candidate detection (SpacePossum)
* minor #4245 LineEndingFixer - BracesFixer - Priority (dmvdbrugge)
* minor #4325 Use lowercase mikey179/vfsStream in composer.json (lolli42)
* minor #4336 Collect coverage with PCOV (kubawerlos)
* minor #4338 Fix wording (kmvan, kubawerlos)
* minor #4339 Change BracesFixer to avoid indenting PHP inline braces (alecgeatches)
* minor #4340 Travis: build against 7.4snapshot instead of nightly (Slamdunk)
* minor #4351 code grooming (SpacePossum)
* minor #4353 Add more priority tests (SpacePossum)
* minor #4364 DX: MethodChainingIndentationFixer - remove unneccesary loop (Sijun Zhu)
* minor #4366 Unset the auxillary variable $a (GrahamCampbell)
* minor #4368 Fixed TypeShortNameResolverTest::testResolver (GrahamCampbell)
* minor #4380 PHP7.4 - Add "str_split" => "mb_str_split" mapping. (SpacePossum)
* minor #4393 DX: add missing explicit return types (kubawerlos)

Changelog for v2.12.8
---------------------

* minor #4306 DX: Drop HHVM conflict on Composer level to help Composer with HHVM compatibility, we still prevent HHVM on runtime (keradus)

Changelog for v2.12.7
---------------------

* bug #4240 ModernizeTypesCastingFixer - fix for operators with higher precedence (kubawerlos)
* bug #4254 PhpUnitDedicateAssertFixer - fix for count with additional operations (kubawerlos)
* bug #4260 Psr0Fixer and Psr4Fixer  - fix for multiple classes in file with anonymous class (kubawerlos)
* bug #4262 FixCommand - fix help (keradus)
* bug #4276 MethodChainingIndentationFixer, ArrayIndentationFixer - Fix priority issue (dmvdbrugge)
* bug #4280 MethodArgumentSpaceFixer - Fix method argument alignment (Billz95)
* bug #4286 IncrementStyleFixer - fix for static statement (kubawerlos)
* bug #4291 ArrayIndentationFixer - Fix indentation after trailing spaces (julienfalque, keradus)
* bug #4292 NoSuperfluousPhpdocTagsFixer - Make null only type not considered superfluous (julienfalque)
* minor #4204 DX: Tokens - do not unregister/register found tokens when collection is not changing (kubawerlos)
* minor #4235 DX: more specific @param types (kubawerlos)
* minor #4263 DX: AppVeyor - bump PHP version (keradus)
* minor #4293 Add official support for PHP 7.3 (keradus)
* minor #4295 DX: MethodArgumentSpaceFixerTest - fix edge case for handling different line ending when only expected code is provided (keradus)
* minor #4296 DX: cleanup testing with fixer config (keradus)
* minor #4299 NativeFunctionInvocationFixer - add array_key_exists (deguif, keradus)

Changelog for v2.12.6
---------------------

* bug #4216 Psr4Fixer - fix for multiple classy elements in file (keradus, kubawerlos)
* bug #4217 Psr0Fixer - class with anonymous class (kubawerlos)
* bug #4219  NativeFunctionCasingFixer - handle T_RETURN_REF  (kubawerlos)
* bug #4224 FunctionToConstantFixer - handle T_RETURN_REF (SpacePossum)
* bug #4229 IsNullFixer - fix parenthesis not closed (guilliamxavier)
* minor #4198 [7.3] PowToExponentiationFixer - adding to PHP7.3 integration test (kubawerlos)
* minor #4199 [7.3] MethodChainingIndentationFixer - add tests for PHP 7.3 (kubawerlos)
* minor #4200 [7.3] ModernizeTypesCastingFixer - support PHP 7.3 (kubawerlos)
* minor #4201 [7.3] MultilineWhitespaceBeforeSemicolonsFixer - add tests for PHP 7.3 (kubawerlos)
* minor #4202 [7.3] ErrorSuppressionFixer - support PHP 7.3 (kubawerlos)
* minor #4205 DX: PhpdocAlignFixer - refactor to use DocBlock (kubawerlos)
* minor #4206 DX: enable multiline_whitespace_before_semicolons (keradus)
* minor #4207 [7.3] RandomApiMigrationFixerTest - tests for 7.3 (SpacePossum)
* minor #4208 [7.3] NativeFunctionCasingFixerTest - tests for 7.3 (SpacePossum)
* minor #4209 [7.3] PhpUnitStrictFixerTest - tests for 7.3 (SpacePossum)
* minor #4210 [7.3] PhpUnitConstructFixer - add test for PHP 7.3 (kubawerlos)
* minor #4211 [7.3] PhpUnitDedicateAssertFixer - support PHP 7.3 (kubawerlos)
* minor #4214 [7.3] NoUnsetOnPropertyFixerTest - tests for 7.3 (SpacePossum)
* minor #4222 [7.3] PhpUnitExpectationFixer - support PHP 7.3 (kubawerlos)
* minor #4223 [7.3] PhpUnitMockFixer - add tests for PHP 7.3 (kubawerlos)
* minor #4230 [7.3] IsNullFixer - fix trailing comma (guilliamxavier)
* minor #4232 DX: remove Utils::splitLines (kubawerlos)
* minor #4234 [7.3] Test that "LITERAL instanceof X" is valid (guilliamxavier)

Changelog for v2.12.5
---------------------

* bug #3968 SelfAccessorFixer - support FQCN (kubawerlos)
* bug #3974 Psr4Fixer - class with anonymous class (kubawerlos)
* bug #3987 Run HeaderCommentFixer after NoBlankLinesAfterPhpdocFixer (StanAngeloff)
* bug #4009 TypeAlternationTransformer - Fix pipes in function call with constants being classified incorrectly (ntzm, SpacePossum)
* bug #4022 NoUnsetOnPropertyFixer - refactor and bugfixes (kubawerlos)
* bug #4036 ExplicitStringVariableFixer - fixes for backticks and for 2 variables next to each other (kubawerlos, Slamdunk)
* bug #4038 CommentToPhpdocFixer - handling nested PHPDoc (kubawerlos)
* bug #4071 DX: do not insert Token when calling removeLeadingWhitespace/removeTrailingWhitespace from Tokens (kubawerlos)
* bug #4073 IsNullFixer - fix function detection (kubawerlos)
* bug #4074 FileFilterIterator - do not filter out files that need fixing (SpacePossum)
* bug #4076 EregToPregFixer - fix function detection (kubawerlos)
* bug #4084 MethodChainingIndentation - fix priority with Braces (dmvdbrugge)
* bug #4099 HeaderCommentFixer - throw exception on invalid header configuration (SpacePossum)
* bug #4100 PhpdocAddMissingParamAnnotationFixer - Handle variable number of arguments and pass by reference cases (SpacePossum)
* bug #4101 ReturnAssignmentFixer - do not touch invalid code (SpacePossum)
* bug #4104 Change transformers order, fixing untransformed T_USE (dmvdbrugge)
* bug #4107 Preg::split - fix for non-UTF8 subject (ostrolucky, kubawerlos)
* bug #4109 NoBlankLines*: fix removing lines consisting only of spaces (kubawerlos, keradus)
* bug #4114 VisibilityRequiredFixer - don't remove comments (kubawerlos)
* bug #4116 OrderedImportsFixer - fix sorting without any grouping (SpacePossum)
* bug #4119 PhpUnitNoExpectationAnnotationFixer - fix extracting content from annotation (kubawerlos)
* bug #4127 LowercaseConstantsFixer - Fix case with properties using constants as their name (srathbone)
* bug #4134 [7.3] SquareBraceTransformer - nested array destructuring not handled correctly (SpacePossum)
* bug #4153 PhpUnitFqcnAnnotationFixer - handle only PhpUnit classes (kubawerlos)
* bug #4169 DirConstantFixer - Fixes for PHP7.3 syntax (SpacePossum)
* bug #4181 MultilineCommentOpeningClosingFixer - fix handling empty comment (kubawerlos)
* bug #4186 Tokens - fix removal of leading/trailing whitespace with empty token in collection (kubawerlos)
* minor #3436 Add a handful of integration tests (BackEndTea)
* minor #3774 PhpUnitTestClassRequiresCoversFixer - Remove unneeded loop and use phpunit indicator class (BackEndTea, SpacePossum)
* minor #3778 DX: Throw an exception if FileReader::read fails (ntzm)
* minor #3916 New ruleset "@PhpCsFixer" (gharlan)
* minor #4007 Fixes cookbook for fixers (greeflas)
* minor #4031 Correct FixerOptionBuilder::getOption return type (ntzm)
* minor #4046 Token - Added fast isset() path to token->equals() (staabm)
* minor #4047 Token - inline $other->getPrototype() to speedup equals() (staabm, keradus)
* minor #4048 Tokens - inlined extractTokenKind() call on the hot path (staabm)
* minor #4069 DX: Add dev-tools directory to gitattributes as export-ignore (alexmanno)
* minor #4070 Docs: Add link to a VS Code extension in readme (jakebathman)
* minor #4077 DX: cleanup - NoAliasFunctionsFixer - use FunctionsAnalyzer (kubawerlos)
* minor #4088 Add Travis test with strict types (kubawerlos)
* minor #4091 Adjust misleading sentence in CONTRIBUTING.md (ostrolucky)
* minor #4092 UseTransformer - simplify/optimize (SpacePossum)
* minor #4095 DX: Use ::class (keradus)
* minor #4097 DX: namespace casing (kubawerlos)
* minor #4110 Enhancement: Update localheinz/composer-normalize (localheinz)
* minor #4115 Changes for upcoming Travis' infra migration (sergeyklay)
* minor #4122 DX: AppVeyor - Update Composer download link (SpacePossum)
* minor #4128 DX: cleanup - AbstractFunctionReferenceFixer - use FunctionsAnalyzer (SpacePossum, kubawerlos)
* minor #4129 Fix: Symfony 4.2 deprecations (kubawerlos)
* minor #4139 DX: Fix CircleCI (kubawerlos)
* minor #4143 PhpUnitTestCaseStaticMethodCallsFixer - Add PHPUnit 7.5 new assertions (Slamdunk)
* minor #4149 [7.3] ArgumentsAnalyzer - PHP7.3 support (SpacePossum)
* minor #4161 DX: CI - show packages installed via Composer (keradus)
* minor #4162 DX: Drop symfony/lts (keradus)
* minor #4166 DX: do not use AbstractFunctionReferenceFixer when no need to (kubawerlos)
* minor #4171 Fix CircleCI cache (kubawerlos)
* minor #4173 [7.3] PowToExponentiationFixer - add support for PHP7.3 (SpacePossum)
* minor #4175 Fixing typo (kubawerlos)
* minor #4177 CI: Check that tag is matching version of PHP CS Fixer during deployment (keradus)
* minor #4182 DX: update php-cs-fixer file style (kubawerlos)
* minor #4187 [7.3] IsNullFixer - support PHP 7.3 (kubawerlos)
* minor #4188 DX: cleanup (keradus)
* minor #4189 Travis - add PHP 7.3 job (keradus)
* minor #4190 Travis CI - fix config (kubawerlos)
* minor #4194 [7.3] NativeFunctionInvocationFixer - add tests for PHP 7.3 (kubawerlos)
* minor #4195 [7.3] SetTypeToCastFixer - support PHP 7.3 (kubawerlos)
* minor #4196 Update website (keradus)
* minor #4197 [7.3] StrictParamFixer - support PHP 7.3 (kubawerlos)

Changelog for v2.12.4
---------------------

* bug #3977 NoSuperfluousPhpdocTagsFixer - Fix handling of description with variable (julienfalque)
* bug #4027 PhpdocAnnotationWithoutDotFixer - add failing cases (keradus)
* bug #4028 PhpdocNoEmptyReturnFixer - handle single line PHPDoc (kubawerlos)
* bug #4034 PhpUnitTestCaseIndicator - handle anonymous class (kubawerlos)
* bug #4037 NativeFunctionInvocationFixer - fix function detection (kubawerlos)
* feature #4019 PhpdocTypesFixer - allow for configuration (keradus)
* minor #3980 Clarifies allow-risky usage (josephzidell)
* minor #4016 Bump console component due to it's bug (keradus)
* minor #4023 Enhancement: Update localheinz/composer-normalize (localheinz)
* minor #4049 use parent::offset*() methods when moving items around in insertAt() (staabm)

Changelog for v2.12.3
---------------------

* bug #3867 PhpdocAnnotationWithoutDotFixer - Handle trailing whitespaces (kubawerlos)
* bug #3884 NoSuperfluousPhpdocTagsFixer - handle null in every position (dmvdbrugge, julienfalque)
* bug #3885 AlignMultilineCommentFixer - ArrayIndentationFixer - Priority (dmvdbrugge)
* bug #3887 ArrayIndentFixer - Don't indent empty lines (dmvdbrugge)
* bug #3888 NoExtraBlankLinesFixer - remove blank lines after open tag (kubawerlos)
* bug #3890 StrictParamFixer - make it case-insensitive (kubawerlos)
* bug #3895 FunctionsAnalyzer - false positive for constant and function definition (kubawerlos)
* bug #3908 StrictParamFixer - fix edge case (kubawerlos)
* bug #3910 FunctionsAnalyzer - fix isGlobalFunctionCall (gharlan)
* bug #3912 FullyQualifiedStrictTypesFixer - NoSuperfluousPhpdocTagsFixer - adjust priority (dmvdbrugge)
* bug #3913 TokensAnalyzer - fix isConstantInvocation (gharlan, keradus)
* bug #3921 TypeAnalysis - Fix iterable not being detected as a reserved type (ntzm)
* bug #3924 FullyQualifiedStrictTypesFixer - space bug (dmvdbrugge)
* bug #3937 LowercaseStaticReferenceFixer - Fix "Parent" word in namespace (kubawerlos)
* bug #3944 ExplicitStringVariableFixer - fix array handling (gharlan)
* bug #3951 NoSuperfluousPhpdocTagsFixer - do not call strtolower with null (SpacePossum)
* bug #3954 NoSuperfluousPhpdocTagsFixer - Index invalid or out of range (kubawerlos)
* bug #3957 NoTrailingWhitespaceFixer - trim space after opening tag (kubawerlos)
* minor #3798 DX: enable native_function_invocation (keradus)
* minor #3882 PhpdocAnnotationWithoutDotFixer - Handle empty line in comment (kubawerlos)
* minor #3889 DX: Cleanup - remove unused variables (kubawerlos, SpacePossum)
* minor #3891 PhpdocNoEmptyReturnFixer - account for null[] (dmvdbrugge)
* minor #3892 PhpdocNoEmptyReturnFixer - fix docs (keradus)
* minor #3897 DX: FunctionsAnalyzer - simplifying return expression (kubawerlos)
* minor #3903 DX: cleanup - remove special treatment for PHP <5.6 (kubawerlos)
* minor #3905 DX: Upgrade composer-require-checker to stable version (keradus)
* minor #3919 Simplify single uses of Token::isGivenKind (ntzm)
* minor #3920 Docs: Fix typo (ntzm)
* minor #3940 DX: fix phpdoc parameter type (malukenho)
* minor #3948 DX: cleanup - remove redundant @param annotations (kubawerlos)
* minor #3950 Circle CI v2 yml (siad007)
* minor #3952 DX: AbstractFixerTestCase - drop testing method already provided by trait (keradus)
* minor #3973 Bump xdebug-handler (keradus)

Changelog for v2.12.2
---------------------

* bug #3823 NativeConstantInvocationFixer - better constant detection (gharlan, SpacePossum, keradus)
* bug #3832 "yield from" as keyword (SpacePossum)
* bug #3835 Fix priority between PHPDoc return type fixers (julienfalque, keradus)
* bug #3839 MethodArgumentSpaceFixer - add empty line incorrectly (SpacePossum)
* bug #3866 SpaceAfterSemicolonFixer - loop over all tokens (SpacePossum)
* minor #3817 Update integrations tests (SpacePossum)
* minor #3829 Fix typos in changelog (mnabialek)
* minor #3848 Add install/update instructions for PHIVE to the README (SpacePossum)
* minor #3877 NamespacesAnalyzer - Optimize performance (stof)
* minor #3878 NativeFunctionInvocationFixer - use the NamespacesAnalyzer to remove duplicated code (stof)

Changelog for v2.12.1
---------------------

* bug #3808 LowercaseStaticReferenceFixer - Fix constants handling (kubawerlos, keradus)
* bug #3815 NoSuperfluousPhpdocTagsFixer - support array/callable type hints (gharlan)
* minor #3824 DX: Support PHPUnit 7.2 (keradus)
* minor #3825 UX: Provide full diff for code samples (keradus)

Changelog for v2.12.0
---------------------

* feature #2577 Add LogicalOperatorsFixer (hkdobrev, keradus)
* feature #3060 Add ErrorSuppressionFixer (kubawerlos)
* feature #3127 Add NativeConstantInvocationFixer (Slamdunk, keradus)
* feature #3223 NativeFunctionInvocationFixer - add namespace scope and include sets (SpacePossum)
* feature #3453 PhpdocAlignFixer - add align option (robert.ahmerov)
* feature #3476 Add PhpUnitTestCaseStaticMethodCallsFixer (Slamdunk, keradus)
* feature #3524 MethodArgumentSpaceFixer - Add ensure_single_line option (julienfalque, keradus)
* feature #3534 MultilineWhitespaceBeforeSemicolonsFixer - support static calls (ntzm)
* feature #3585 Add ReturnAssignmentFixer (SpacePossum, keradus)
* feature #3640 Add PhpdocToReturnTypeFixer (Slamdunk, keradus)
* feature #3691 Add PhpdocTrimAfterDescriptionFixer (nobuf, keradus)
* feature #3698 YodaStyleFixer - Add always_move_variable option (julienfalque, SpacePossum)
* feature #3709 Add SetTypeToCastFixer (SpacePossum)
* feature #3724 BlankLineBeforeStatementFixer - Add case and default as options (dmvdbrugge)
* feature #3734 Add NoSuperfluousPhpdocTagsFixer (julienfalque)
* feature #3735 Add LowercaseStaticReferenceFixer (kubawerlos, SpacePossum)
* feature #3737 Add NoUnsetOnPropertyFixer (BackEndTea, SpacePossum)
* feature #3745 Add PhpUnitInternalClassFixer (BackEndTea, SpacePossum, keradus)
* feature #3766 Add NoBinaryStringFixer (ntzm, SpacePossum, keradus)
* feature #3780 ShortScalarCastFixer - Change binary cast to string cast as well (ntzm)
* feature #3785 PhpUnitDedicateAssertFixer - fix to assertCount too (SpacePossum)
* feature #3802 Convert PhpdocTrimAfterDescriptionFixer into PhpdocTrimConsecutiveBlankLineSeparationFixer (keradus)
* minor #3738 ReturnAssignmentFixer description update (kubawerlos)
* minor #3761 Application: when run with FUTURE_MODE, error_reporting(-1) is done in entry file instead (keradus)
* minor #3772 DX: use PhpUnitTestCaseIndicator->isPhpUnitClass to discover PHPUnit classes (keradus)
* minor #3783 CI: Split COLLECT_COVERAGE job (keradus)
* minor #3789 DX: ProjectCodeTest.testThatDataProvidersAreCorrectlyNamed - performance optimization (keradus)
* minor #3791 DX: Fix collecting code coverage (keradus)
* minor #3792 DX: Upgrade DX deps (keradus)
* minor #3797 DX: ProjectCodeTest - shall not depends on xdebug/phpdbg anymore (keradus, SpacePossum)
* minor #3800 Symfony:risky ruleset: include set_type_to_cast rule (keradus)
* minor #3801 NativeFunctionInvocationFixer - fix buggy config validation (keradus, SpacePossum)

Changelog for v2.11.2
---------------------

* bug #3233 PhpdocAlignFixer - Fix linebreak inconsistency (SpacePossum, keradus)
* bug #3445 Rewrite NoUnusedImportsFixer (kubawerlos, julienfalque)
* bug #3528 MethodChainingIndentationFixer - nested params bugfix (Slamdunk)
* bug #3547 MultilineWhitespaceBeforeSemicolonsFixer - chained call for a return fix (egircys, keradus)
* bug #3597 DeclareStrictTypesFixer - fix bug of removing line (kubawerlos, keradus)
* bug #3605 DoctrineAnnotationIndentationFixer - Fix indentation with mixed lines (julienfalque)
* bug #3606 PhpdocToCommentFixer - allow multiple ( (SpacePossum)
* bug #3614 Refactor PhpdocToCommentFixer - extract checking to CommentsAnalyzer (kubawerlos)
* bug #3668 Rewrite NoUnusedImportsFixer (kubawerlos, julienfalque)
* bug #3670 PhpdocTypesOrderFixer - Fix ordering of nested generics (julienfalque)
* bug #3671 ArrayIndentationFixer - Fix indentation in HTML (julienfalque)
* bug #3673 PhpdocScalarFixer - Add "types" option (julienfalque, keradus)
* bug #3674 YodaStyleFixer - Fix variable detection for multidimensional arrays (julienfalque, SpacePossum)
* bug #3684 PhpUnitStrictFixer - Do not fix if not correct # of arguments are used (SpacePossum)
* bug #3708 EspaceImplicitBackslashesFixer - Fix escaping multiple backslashes (julienfalque)
* bug #3715 SingleImportPerStatementFixer - Fix handling whitespace before opening brace (julienfalque)
* bug #3731 PhpdocIndentFixer -  crash fix (SpacePossum)
* bug #3755 YodaStyleFixer - handle space between var name and index (SpacePossum)
* bug #3765 Fix binary-prefixed double-quoted strings to single quotes (ntzm)
* bug #3770 Handle binary flags in heredoc_to_nowdoc (ntzm)
* bug #3776 ExplicitStringVariableFixer - handle binary strings (ntzm)
* bug #3777 EscapeImplicitBackslashesFixer - handle binary strings (ntzm)
* bug #3790 ProcessLinter - don't execute external process without timeout! It can freeze! (keradus)
* minor #3188 AppVeyor - add PHP 7.x (keradus, julienfalque)
* minor #3451 Update findPHPUnit functions (BackEndTea, SpacePossum, keradus)
* minor #3548 Make shell scripts POSIX-compatible (EvgenyOrekhov, keradus)
* minor #3568 New Autoreview: Correct option casing (ntzm)
* minor #3578 Add interface for deprecated options (julienfalque, keradus)
* minor #3590 Use XdebugHandler to avoid perormance penalty (AJenbo, keradus)
* minor #3607 PhpdocVarWithoutNameFixer - update sample with @ type (SpacePossum)
* minor #3617 Tests stability patches (Tom Klingenberg, keradus)
* minor #3622 Docs: Update descriptions (localheinz)
* minor #3627 Fix tests execution under phpdbg (keradus)
* minor #3629 ProjectFixerConfigurationTest - test rules are sorted (SpacePossum)
* minor #3639 DX: use benefits of symfony/force-lowest (keradus)
* minor #3641 Update check_trailing_spaces script with upstream (keradus)
* minor #3646 Extract SameStringsConstraint and XmlMatchesXsdConstraint (keradus)
* minor #3647 DX: Add CachingLinter for tests (keradus)
* minor #3649 Update check_trailing_spaces script with upstream (keradus)
* minor #3652 CiIntegrationTest - run tests with POSIX sh, not Bash (keradus)
* minor #3656 DX: Clean ups (SpacePossum)
* minor #3657 update phpunitgoodpractices/traits (SpacePossum, keradus)
* minor #3658 DX: Clean ups (SpacePossum)
* minor #3660 Fix  do not rely on order of fixing in CiIntegrationTest (kubawerlos)
* minor #3661  Fix: covers annotation for NoAlternativeSyntaxFixerTest (kubawerlos)
* minor #3662 DX: Add Smoke/InstallViaComposerTest (keradus)
* minor #3663 DX: During deployment, run all smoke tests and don't allow to skip phar-related ones (keradus)
* minor #3665 CircleCI fix (kubawerlos)
* minor #3666 Use "set -eu" in shell scripts (EvgenyOrekhov)
* minor #3669 Document possible values for subset options (julienfalque, keradus)
* minor #3672 Remove SameStringsConstraint and XmlMatchesXsdConstraint (keradus)
* minor #3676 RunnerTest - workaround for failing Symfony v2.8.37 (kubawerlos)
* minor #3680 DX: Tokens - removeLeadingWhitespace and removeTrailingWhitespace must act in same way (SpacePossum)
* minor #3686 README.rst - Format all code-like strings in fixer descriptions (ntzm, keradus)
* minor #3692 DX: Optimize tests (julienfalque)
* minor #3700 README.rst - Format all code-like strings in fixer description (ntzm)
* minor #3701 Use correct casing for "PHPDoc" (ntzm)
* minor #3703 DX: InstallViaComposerTest - groom naming (keradus)
* minor #3704 DX: Tokens - fix naming (keradus)
* minor #3706 Update homebrew installation instructions (ntzm)
* minor #3713 Use HTTPS whenever possible (fabpot)
* minor #3723 Extend tests coverage (ntzm)
* minor #3733 Disable Composer optimized autoloader by default (julienfalque)
* minor #3748 PhpUnitStrictFixer - extend risky note (jnvsor)
* minor #3749 Make sure PHPUnit is cased correctly in fixers descriptions (kubawerlos)
* minor #3768 Improve deprecation messages (julienfalque, SpacePossum)
* minor #3773 AbstractFixerWithAliasedOptionsTestCase - don't export (keradus)
* minor #3775 Add tests for binary strings in string_line_ending (ntzm)
* minor #3779 Misc fixes (ntzm, keradus)
* minor #3796 DX: StdinTest - do not assume name of folder, into which project was cloned (keradus)
* minor #3803 NoEmptyPhpdocFixer/PhpdocAddMissingParamAnnotationFixer - missing priority test (SpacePossum, keradus)
* minor #3804 Cleanup: remove useless constructor comment (kubawerlos)
* minor #3805 Cleanup: add missing @param type (kubawerlos, keradus)

Changelog for v2.11.1
---------------------

* bug #3626 ArrayIndentationFixer: priority bug with BinaryOperatorSpacesFixer and MethodChainingIndentationFixer (Slamdunk)
* bug #3632 DateTimeImmutableFixer bug with adding tokens while iterating over them (kubawerlos)
* minor #3478 PhpUnitDedicateAssertFixer: handle static calls (Slamdunk)
* minor #3618 DateTimeImmutableFixer - grooming (keradus)

Changelog for v2.11.0
---------------------

* feature #3135 Add ArrayIndentationFixer (julienfalque)
* feature #3235 Implement StandardizeIncrementFixer (ntzm, SpacePossum)
* feature #3260 Add DateTimeImmutableFixer (kubawerlos)
* feature #3276 Transform Fully Qualified parameters and return types to short version (veewee, keradus)
* feature #3299 SingleQuoteFixer - fix single quote char (Slamdunk)
* feature #3340 Verbose LintingException after fixing (Slamdunk)
* feature #3423 FunctionToConstantFixer - add fix "get_called_class" option (SpacePossum)
* feature #3434 Add PhpUnitSetUpTearDownVisibilityFixer (BackEndTea, SpacePossum)
* feature #3442 Add CommentToPhpdocFixer (kubawerlos, keradus)
* feature #3448 OrderedClassElementsFixer - added sortAlgorithm option (meridius)
* feature #3454 Add StringLineEndingFixer (iluuu1994, SpacePossum, keradus, julienfalque)
* feature #3477 PhpUnitStrictFixer: handle static calls (Slamdunk)
* feature #3479 PhpUnitConstructFixer: handle static calls (Slamdunk)
* feature #3507 Add PhpUnitOrderedCoversFixer (Slamdunk)
* feature #3545 Add the 'none' sort algorithm to OrderedImportsFixer (EvgenyOrekhov)
* feature #3588 Add NoAlternativeSyntaxFixer (eddmash, keradus)
* minor #3414 DescribeCommand: add fixer class when verbose (Slamdunk)
* minor #3432 ConfigurationDefinitionFixerInterface - fix deprecation notice (keradus)
* minor #3527 Deprecate last param of Tokens::findBlockEnd (ntzm, keradus)
* minor #3539 Update UnifiedDiffOutputBuilder from gecko-packages/gecko-diff-output-builder usage after it was incorporated into sebastian/diff (keradus)
* minor #3549 DescribeCommand - use our Differ wrapper class, not external one directly (keradus)
* minor #3592 Support PHPUnit 7 (keradus)
* minor #3619 Travis - extend additional files list (keradus)

Changelog for v2.10.5
---------------------

* bug #3344 Fix method chaining indentation in HTML (julienfalque)
* bug #3594 ElseifFixer - Bug with alternative syntax (kubawerlos)
* bug #3600 StrictParamFixer - Fix issue when functions are imported (ntzm, keradus)
* minor #3589 FixerFactoryTest - add missing test (SpacePossum, keradus)
* minor #3610 make phar extension optional (Tom Klingenberg, keradus)
* minor #3612 Travis - allow for hhvm failures (keradus)
* minor #3615 Detect fabbot.io (julienfalque, keradus)
* minor #3616 FixerFactoryTest - Don't rely on autovivification (keradus)
* minor #3621 FixerFactoryTest - apply CS (keradus)

Changelog for v2.10.4
---------------------

* bug #3446 Add PregWrapper (kubawerlos)
* bug #3464 IncludeFixer - fix incorrect order of fixing (kubawerlos, SpacePossum)
* bug #3496 Bug in Tokens::removeLeadingWhitespace (kubawerlos, SpacePossum, keradus)
* bug #3557 AbstractDoctrineAnnotationFixer: edge case bugfix (Slamdunk)
* bug #3574 GeneralPhpdocAnnotationRemoveFixer - remove PHPDoc if no content is left (SpacePossum)
* minor #3563 DX add missing covers annotations (keradus)
* minor #3564 Use ::class keyword when possible (keradus)
* minor #3565 Use EventDispatcherInterface instead of EventDispatcher when possible (keradus)
* minor #3566 Update PHPUnitGoodPractices\Traits (keradus)
* minor #3572 DX: allow for more phpunit-speedtrap versions to support more PHPUnit versions (keradus)
* minor #3576 Fix Doctrine Annotation test cases merging (julienfalque)
* minor #3577 DoctrineAnnotationArrayAssignmentFixer - Add test case (julienfalque)

Changelog for v2.10.3
---------------------

* bug #3504 NoBlankLinesAfterPhpdocFixer - allow blank line before declare statement (julienfalque)
* bug #3522 Remove LOCK_EX (SpacePossum)
* bug #3560 SelfAccessorFixer is risky (Slamdunk)
* minor #3435 Add tests for general_phpdoc_annotation_remove (BackEndTea)
* minor #3484 Create Tokens::findBlockStart (ntzm)
* minor #3512 Add missing array typehints (ntzm)
* minor #3513 Making AppVeyor happy (kubawerlos)
* minor #3516 Use null|type instead of ?type in PHPDocs (ntzm)
* minor #3518 FixerFactoryTest - Test each priority test file is listed as test (SpacePossum)
* minor #3519 Fix typo (SpacePossum)
* minor #3520 Fix typos: ran vs. run (SpacePossum)
* minor #3521 Use HTTPS (carusogabriel)
* minor #3526 Remove gecko dependency (SpacePossum, keradus, julienfalque)
* minor #3531 Backport PHPMD to LTS version to ease maintainability (keradus)
* minor #3532 Implement Tokens::findOppositeBlockEdge (ntzm)
* minor #3533 DX: SCA - drop src/Resources exclusion (keradus)
* minor #3538 Don't use third parameter of Tokens::findBlockStart (ntzm)
* minor #3542 Enhancement: Run composer-normalize on Travis CI (localheinz, keradus)
* minor #3550 AutoReview\FixerFactoryTest - fix missing priority test, mark not fully valid test as incomplete (keradus)
* minor #3555 DX: composer.json - drop branch-alias, branch is already following the version (keradus)
* minor #3556 DX: Add AutoReview/ComposerTest (keradus)
* minor #3559 Don't expose new files under Test namespace (keradus)
* minor #3561 PHPUnit5 - add in place missing compat layer for PHPUnit6 (keradus)

Changelog for v2.10.2
---------------------

* bug #3502 Fix missing file in export (keradus)

Changelog for v2.10.1
---------------------

* bug #3265 YodaFixer - fix problems of block statements followed by ternary statements (weareoutman, keradus, SpacePossum)
* bug #3367 NoUnusedImportsFixer - fix comment handling (SpacePossum, keradus)
* bug #3438 PhpUnitTestAnnotationFixer: Do not prepend with test if method is test() (localheinz, SpacePossum)
* bug #3455 NoEmptyCommentFixer - comment block detection for line ending different than LF (kubawerlos, SpacePossum)
* bug #3458 SilencedDeprecationErrorFixer - fix edge cases (kubawerlos)
* bug #3466 no_whitespace_in_blank_line and no_blank_lines_after_phpdoc fixers bug (kubawerlos, keradus)
* bug #3472  YodaStyleFixer - do not un-Yoda if right side is assignment (SpacePossum, keradus)
* bug #3492 PhpdocScalarFixer - Add callback pesudo-type to callable type (carusogabriel)
* minor #3354 Added missing types to the PhpdocTypesFixer (GrahamCampbell)
* minor #3406 Fix for escaping in README (kubawerlos)
* minor #3430 Fix integration test (SpacePossum)
* minor #3431 Add missing tests (SpacePossum)
* minor #3440 Add a handful of integration tests (BackEndTea)
* minor #3443 ConfigurableFixerInterface - not deprecated but TODO (SpacePossum)
* minor #3444 IntegrationTest - ensure tests in priority dir are priority tests indeed (keradus)
* minor #3494 Add missing PHPDoc param type (ntzm)
* minor #3495 Swap @var type and element (ntzm)
* minor #3498 NoUnusedImportsFixer - fix deprecation (keradus)

Changelog for v2.10.0
---------------------

* feature #3290 Add PhpdocOpeningClosingFixer (Slamdunk, keradus)
* feature #3327 Add MultilineWhitespaceBeforeSemicolonsFixer (egircys, keradus)
* feature #3351 PhuUnit: migrate getMock to createPartialMock when arguments count is 2 (Slamdunk)
* feature #3362 Add BacktickToShellExecFixer (Slamdunk)
* minor #3285 PHPUnit - use protective traits (keradus)
* minor #3329 ConfigurationResolver - detect deprecated fixers (keradus, SpacePossum)
* minor #3343 Tokens - improve block end lookup (keradus)
* minor #3360 Adjust Symfony ruleset (keradus)
* minor #3361 no_extra_consecutive_blank_lines - rename to no_extra_blank_lines (with BC layer) (keradus)
* minor #3363 progress-type - name main option value 'dots' (keradus)
* minor #3404 Deprecate "use_yoda_style" in IsNullFixer (kubawerlos, keradus)
* minor #3418 ConfigurableFixerInterface, ConfigurationDefinitionFixerInterface - update deprecations (keradus)
* minor #3419 Dont use deprecated fixer in itest (keradus)

Changelog for v2.9.3
--------------------

* bug #3502 Fix missing file in export (keradus)

Changelog for v2.9.2
--------------------

* bug #3265 YodaFixer - fix problems of block statements followed by ternary statements (weareoutman, keradus, SpacePossum)
* bug #3367 NoUnusedImportsFixer - fix comment handling (SpacePossum, keradus)
* bug #3438 PhpUnitTestAnnotationFixer: Do not prepend with test if method is test() (localheinz, SpacePossum)
* bug #3455 NoEmptyCommentFixer - comment block detection for line ending different than LF (kubawerlos, SpacePossum)
* bug #3458 SilencedDeprecationErrorFixer - fix edge cases (kubawerlos)
* bug #3466 no_whitespace_in_blank_line and no_blank_lines_after_phpdoc fixers bug (kubawerlos, keradus)
* bug #3472  YodaStyleFixer - do not un-Yoda if right side is assignment (SpacePossum, keradus)
* minor #3354 Added missing types to the PhpdocTypesFixer (GrahamCampbell)
* minor #3406 Fix for escaping in README (kubawerlos)
* minor #3430 Fix integration test (SpacePossum)
* minor #3431 Add missing tests (SpacePossum)
* minor #3440 Add a handful of integration tests (BackEndTea)
* minor #3444 IntegrationTest - ensure tests in priority dir are priority tests indeed (keradus)
* minor #3494 Add missing PHPDoc param type (ntzm)
* minor #3495 Swap @var type and element (ntzm)
* minor #3498 NoUnusedImportsFixer - fix deprecation (keradus)

Changelog for v2.9.1
--------------------

* bug #3298 DiffConsoleFormatter - fix output escaping. (SpacePossum)
* bug #3312 PhpUnitTestAnnotationFixer: Only remove prefix if it really is a prefix (localheinz)
* bug #3318 SingleLineCommentStyleFixer - fix closing tag inside comment causes an error (kubawerlos)
* bug #3334 ExplicitStringVariableFixer: handle parsed array and object (Slamdunk)
* bug #3337 BracesFixer: nowdoc bug on template files (Slamdunk)
* bug #3349 Fix stdin handling and add tests for it (keradus)
* bug #3350 PhpUnitNoExpectationAnnotationFixer - fix handling of multiline expectedExceptionMessage annotation (Slamdunk)
* bug #3352 FunctionToConstantFixer - bugfix for get_class with leading backslash (kubawerlos)
* bug #3359 BracesFixer - handle comment for content outside of given block (keradus)
* bug #3371 IsNullFixer must be run before YodaStyleFixer (kubawerlos)
* bug #3373 PhpdocAlignFixer - Fix removing of everything after @ when there is a space after the @ (ntzm)
* bug #3415 FileFilterIterator - input checks and utests (SpacePossum, keradus)
* bug #3420 SingleLineCommentStyleFixer - fix 'strpos() expects parameter 1 to be string, boolean given' (keradus, SpacePossum)
* bug #3428 Fix archive analysing (keradus)
* bug #3429 Fix archive analysing (keradus)
* minor #3137 PHPUnit - use common base class (keradus)
* minor #3311 FinalInternalClassFixer - fix typo (localheinz)
* minor #3328 Remove duplicated space in exceptions (keradus)
* minor #3342 PhpUnitDedicateAssertFixer - Remove unexistent method is_boolean  (carusogabriel)
* minor #3345 StdinFileInfo - fix __toString (keradus)
* minor #3346 StdinFileInfo - drop getContents (keradus)
* minor #3347 DX: reapply newest CS (keradus)
* minor #3365 COOKBOOK-FIXERS.md - update to provide definition instead of description (keradus)
* minor #3370 AbstractFixer - FQCN in in exceptions (Slamdunk)
* minor #3372 ProjectCodeTest - fix comment (keradus)
* minor #3393 Method call typos (Slamdunk, keradus)
* minor #3402 Always provide delimiter to `preg_quote` calls (ntzm)
* minor #3403 Remove unused import (ntzm)
* minor #3405 Fix `fopen` mode (ntzm)
* minor #3407 CombineConsecutiveIssetsFixer - Improve description (kubawerlos)
* minor #3408 Improving fixers descriptions (kubawerlos)
* minor #3409 move itests from misc to priority (keradus)
* minor #3411 Better type hinting for AbstractFixerTestCase::$fixer (kubawerlos)
* minor #3412 Convert `strtolower` inside `strpos` to just `stripos` (ntzm)
* minor #3421 DX: Use ::class (keradus)
* minor #3424 AbstractFixerTest: fix expectException arguments (Slamdunk, keradus)
* minor #3425 FixerFactoryTest - test that priority pair fixers have itest (keradus, SpacePossum)
* minor #3427 ConfigurationResolver: fix @return annotation (Slamdunk)

Changelog for v2.9.0
--------------------

* feature #3063 Method chaining indentation fixer (boliev, julienfalque)
* feature #3076 Add ExplicitStringVariableFixer (Slamdunk, keradus)
* feature #3098 MethodSeparationFixer - add class elements separation options (SpacePossum, keradus)
* feature #3155 Add EscapeImplicitBackslashesFixer (Slamdunk)
* feature #3164 Add ExplicitIndirectVariableFixer (Slamdunk, keradus)
* feature #3183 FinalInternalClassFixer introduction (keradus, SpacePossum)
* feature #3187 StaticLambdaFixer - introduction (SpacePossum, keradus)
* feature #3209 PhpdocAlignFixer - Make @method alignable (ntzm)
* feature #3275 Add PhpUnitTestAnnotationFixer (BackEndTea, keradus)

Changelog for v2.8.4
--------------------

* bug #3281 SelfAccessorFixer - stop modifying traits (kubawerlos)
* minor #3195 Add self-update command test (julienfalque)
* minor #3287 FileCacheManagerTest - drop duplicated line (keradus)
* minor #3292 PHPUnit - set memory limit (veewee)
* minor #3306 Token - better input validation (keradus)
* minor #3310 Upgrade PHP Coveralls (keradus)

Changelog for v2.8.3
--------------------

* bug #3173 SimplifiedNullReturnFixer - handle nullable return types (Slamdunk)
* bug #3268 PhpUnitNoExpectationAnnotationFixer - add case with backslashes (keradus, Slamdunk)
* bug #3272 PhpdocTrimFixer - unicode support (SpacePossum)

Changelog for v2.8.2
--------------------

* bug #3225 PhpdocTrimFixer - Fix handling of lines without leading asterisk (julienfalque)
* bug #3241 NoExtraConsecutiveBlankLinesFixer - do not crash on ^M LF only (SpacePossum)
* bug #3242 PhpUnitNoExpectationAnnotationFixer - fix ' handling (keradus)
* bug #3243 PhpUnitExpectationFixer - don't create ->expectExceptionMessage(null) (keradus)
* bug #3244 PhpUnitNoExpectationAnnotationFixer - expectation extracted from annotation shall be separated from rest of code with one blank line (keradus)
* bug #3259 PhpUnitNamespacedFixer - fix isCandidate to not rely on class declaration (keradus)
* bug #3261 PhpUnitNamespacedFixer - properly fix next usage of already fixed class (keradus)
* bug #3262 ToolInfo - support installation by branch as well (keradus)
* bug #3263 NoBreakCommentFixer - Fix handling comment text with PCRE characters (julienfalque)
* bug #3266 PhpUnitConstructFixer - multiple asserts bug (kubawerlos)
* minor #3239 Improve contributing guide and issue template (julienfalque)
* minor #3246 Make ToolInfo methods non-static (julienfalque)
* minor #3249 PhpUnitNoExpectationAnnotationFixerTest - fix hidden conflict (keradus)
* minor #3250 Travis: fail early, spare resources, save the Earth (Slamdunk, keradus)
* minor #3251 Create Title for config file docs section (IanEdington)
* minor #3254 AutoReview/FixerFactoryTest::testFixersPriority: verbose assertion message (Slamdunk)
* minor #3255 IntegrationTest: output exception stack trace (Slamdunk)
* minor #3257 README.rst - Fixed bullet list formatting (moebrowne)

Changelog for v2.8.1
--------------------

* bug #3199 TokensAnalyzer - getClassyElements (SpacePossum)
* bug #3208 BracesFixer - Fix for instantiation in control structures (julienfalque, SpacePossum)
* bug #3215 BinaryOperatorSpacesFixer - Fix spaces around multiple exception catching (|) (ntzm)
* bug #3216 AbstractLinesBeforeNamespaceFixer - add min. and max. option, not only single target count (SpacePossum)
* bug #3217 TokenizerLinter - fix lack of linting when code is cached (SpacePossum, keradus)
* minor #3200 Skip slow test when Xdebug is loaded (julienfalque)
* minor #3211 Use udiff format in CI (julienfalque)
* minor #3212 Handle rulesets unknown to fabbot.io (julienfalque)
* minor #3219 Normalise references to GitHub in docs (ntzm)
* minor #3226 Remove unused imports (ntzm)
* minor #3231 Fix typos (ntzm)
* minor #3234 Simplify Cache\Signature::equals (ntzm)
* minor #3237 UnconfigurableFixer - use only LF (keradus)
* minor #3238 AbstractFixerTest - fix @cover annotation (keradus)

Changelog for v2.8.0
--------------------

* feature #3065 Add IncrementStyleFixer (kubawerlos)
* feature #3119 Feature checkstyle reporter (K-Phoen)
* feature #3162 Add udiff as diff format (SpacePossum, keradus)
* feature #3170 Add CompactNullableTypehintFixer (jfcherng)
* feature #3189 Add PHP_CS_FIXER_FUTURE_MODE env (keradus)
* feature #3201 Add PHPUnit Migration rulesets and fixers (keradus)
* minor #3149 AbstractProxyFixer - Support multiple proxied fixers (julienfalque)
* minor #3160 Add DeprecatedFixerInterface (kubawerlos)
* minor #3185 IndentationTypeFixerTest - clean up (SpacePossum, keradus)
* minor #3198 Cleanup: add test that there is no deprecated fixer in rule set (kubawerlos)

Changelog for v2.7.5
--------------------

* bug #3225 PhpdocTrimFixer - Fix handling of lines without leading asterisk (julienfalque)
* bug #3241 NoExtraConsecutiveBlankLinesFixer - do not crash on ^M LF only (SpacePossum)
* bug #3262 ToolInfo - support installation by branch as well (keradus)
* bug #3263 NoBreakCommentFixer - Fix handling comment text with PCRE characters (julienfalque)
* bug #3266 PhpUnitConstructFixer - multiple asserts bug (kubawerlos)
* minor #3239 Improve contributing guide and issue template (julienfalque)
* minor #3246 Make ToolInfo methods non-static (julienfalque)
* minor #3250 Travis: fail early, spare resources, save the Earth (Slamdunk, keradus)
* minor #3251 Create Title for config file docs section (IanEdington)
* minor #3254 AutoReview/FixerFactoryTest::testFixersPriority: verbose assertion message (Slamdunk)
* minor #3255 IntegrationTest: output exception stack trace (Slamdunk)

Changelog for v2.7.4
--------------------

* bug #3199 TokensAnalyzer - getClassyElements (SpacePossum)
* bug #3208 BracesFixer - Fix for instantiation in control structures (julienfalque, SpacePossum)
* bug #3215 BinaryOperatorSpacesFixer - Fix spaces around multiple exception catching (|) (ntzm)
* bug #3216 AbstractLinesBeforeNamespaceFixer - add min. and max. option, not only single target count (SpacePossum)
* bug #3217 TokenizerLinter - fix lack of linting when code is cached (SpacePossum, keradus)
* minor #3200 Skip slow test when Xdebug is loaded (julienfalque)
* minor #3219 Normalise references to GitHub in docs (ntzm)
* minor #3226 Remove unused imports (ntzm)
* minor #3231 Fix typos (ntzm)
* minor #3234 Simplify Cache\Signature::equals (ntzm)
* minor #3237 UnconfigurableFixer - use only LF (keradus)
* minor #3238 AbstractFixerTest - fix @cover annotation (keradus)

Changelog for v2.7.3
--------------------

* bug #3114 SelfAccessorFixer - Fix type declarations replacement (julienfalque)

Changelog for v2.7.2
--------------------

* bug #3062 BraceClassInstantiationTransformer - Fix instantiation inside method call braces case (julienfalque, keradus)
* bug #3083 SingleBlankLineBeforeNamespaceFixer - Fix handling namespace right after opening tag (mlocati)
* bug #3109 SwitchCaseSemicolonToColonFixer - Fix bug with nested constructs (SpacePossum)
* bug #3117 Multibyte character in array key makes alignment incorect (kubawerlos)
* bug #3123 Cache - File permissions (SpacePossum)
* bug #3138 NoHomoglyphNamesFixer - fix crash on non-ascii but not mapped either (SpacePossum)
* bug #3172 IndentationTypeFixer - do not touch whitespace that is not indentation (SpacePossum)
* bug #3176 NoMultilineWhitespaceBeforeSemicolonsFixer - SpaceAfterSemicolonFixer - priority fix (SpacePossum)
* bug #3193 TokensAnalyzer::getClassyElements - sort result before returning (SpacePossum)
* bug #3196 SelfUpdateCommand - fix exit status when can't determine newest version (julienfalque)
* minor #3107 ConfigurationResolver - improve error message when rule is not found (SpacePossum)
* minor #3113 Add WordMatcher (keradus)
* minor #3128 README: remove deprecated rule from CLI examples (chteuchteu)
* minor #3133 Unify Reporter tests (keradus)
* minor #3134 Allow Symfony 4 (keradus, garak)
* minor #3136 PHPUnit - call hooks from parent class as well (keradus)
* minor #3141 Unify description of deprecated fixer (kubawerlos)
* minor #3144 PhpUnitDedicateAssertFixer - Sort map and array by function name (localheinz)
* minor #3145 misc - Typo (localheinz)
* minor #3150 Fix CircleCI (julienfalque)
* minor #3151 Update gitattributes to ignore next file (keradus)
* minor #3156 Update php-coveralls (keradus)
* minor #3166 README - add link to new gitter channel. (SpacePossum)
* minor #3174 Update UPGRADE.md (vitek-rostislav)
* minor #3180 Fix usage of static variables (kubawerlos)
* minor #3182 Add support for PHPUnit 6, drop PHPUnit 4 (keradus)
* minor #3184 Code grooming - sort content of arrays (keradus)
* minor #3191 Travis - add nightly build to allow_failures due to Travis issues (keradus)
* minor #3197 DX groom CS (keradus)

Changelog for v2.7.1
--------------------

* bug #3115 NoUnneededFinalMethodFixer - fix edge case (Slamdunk)

Changelog for v2.7.0
--------------------

* feature #2573 BinaryOperatorSpaces reworked (SpacePossum, keradus)
* feature #3073 SpaceAfterSemicolonFixer - Add option to remove space in empty for expressions (julienfalque)
* feature #3089 NoAliasFunctionsFixer - add imap aliases (Slamdunk)
* feature #3093 NoUnneededFinalMethodFixer - Remove final keyword from private methods (localheinz, keradus)
* minor #3068 Symfony:risky ruleset - add no_homoglyph_names (keradus)
* minor #3074 [IO] Replace Diff with fork version (SpacePossum)

Changelog for v2.6.1
--------------------

* bug #3052 Fix false positive warning about paths overridden by provided as command arguments (kubawerlos)
* bug #3053 CombineConsecutiveIssetsFixer - fix priority (SpacePossum)
* bug #3058 IsNullFixer - fix whitespace handling (roukmoute)
* bug #3069 MethodArgumentSpaceFixer - new test case (keradus)
* bug #3072 IsNullFixer - fix non_yoda_style edge case (keradus)
* bug #3088 Drop dedicated Phar stub (keradus)
* bug #3100 NativeFunctionInvocationFixer - Fix test if previous token is already namespace separator (SpacePossum)
* bug #3104 DoctrineAnnotationIndentationFixer - Fix str_repeat() error (julienfalque)
* minor #3038 Support PHP 7.2 (SpacePossum, keradus)
* minor #3064 Fix couple of typos (KKSzymanowski)
* minor #3070 YodaStyleFixer - Clarify configuration parameters (SteveJobzniak)
* minor #3078 ConfigurationResolver - hide context while including config file (keradus)
* minor #3080 Direct function call instead of by string (kubawerlos)
* minor #3085 CiIntegrationTest - skip when no git is available (keradus)
* minor #3087 phar-stub.php - allow PHP 7.2 (keradus)
* minor #3092 .travis.yml - fix matrix for PHP 7.1 (keradus)
* minor #3094 NoUnneededFinalMethodFixer - Add test cases (julienfalque)
* minor #3111 DoctrineAnnotationIndentationFixer - Restore test case (julienfalque)

Changelog for v2.6.0
--------------------

* bug #3039 YodaStyleFixer - Fix echo case (SpacePossum, keradus)
* feature #2446 Add YodaStyleFixer (SpacePossum)
* feature #2940 Add NoHomoglyphNamesFixer (mcfedr, keradus)
* feature #3012 Add CombineConsecutiveIssetsFixer (SpacePossum)
* minor #3037 Update SF rule set (SpacePossum)

Changelog for v2.5.1
--------------------

* bug #3002 Bugfix braces (mnabialek)
* bug #3010 Fix handling of Github releases (julienfalque, keradus)
* bug #3015 Fix exception arguments (julienfalque)
* bug #3016 Verify phar file (keradus)
* bug #3021 Risky rules cleanup (kubawerlos)
* bug #3023 RandomApiMigrationFixer - "rand();" to "random_int(0, getrandmax());" fixing (SpacePossum)
* bug #3024 ConfigurationResolver - Handle empty "rules" value (SpacePossum, keradus)
* bug #3031 IndentationTypeFixer - fix handling tabs in indented comments (keradus)
* minor #2999 Notice when paths from config file are overridden by command arguments (julienfalque, keradus)
* minor #3007 Add PHP 7.2 to Travis build matrix (Jean85)
* minor #3009 CiIntegrationTest - run local (SpacePossum)
* minor #3013 Adjust phpunit configuration (localheinz)
* minor #3017 Fix: Risky tests (localheinz)
* minor #3018 Fix: Make sure that data providers are named correctly (localheinz, keradus)
* minor #3032 .php_cs.dist - handling UnexpectedValueException (keradus)
* minor #3033 Use ::class (keradus)
* minor #3034 Follow newest CS (keradus)
* minor #3036 Drop not existing Standalone group from PHPUnit configuration and duplicated internal tags (keradus)
* minor #3042 Update gitter address (keradus)

Changelog for v2.5.0
--------------------

* feature #2770 DoctrineAnnotationSpaces - split assignments options (julienfalque)
* feature #2843 Add estimating-max progress output type (julienfalque)
* feature #2885 Add NoSuperfluousElseifFixer (julienfalque)
* feature #2929 Add NoUnneededCurlyBracesFixer (SpacePossum)
* feature #2944 FunctionToConstantFixer - handle get_class() -> __CLASS__ as well (SpacePossum)
* feature #2953 BlankLineBeforeStatementFixer - Add more statements (localheinz, keradus)
* feature #2972 Add NoUnneededFinalMethodFixer (Slamdunk, keradus)
* feature #2992 Add Doctrine Annotation ruleset (julienfalque)
* minor #2926 Token::getNameForId (SpacePossum)

Changelog for v2.4.2
--------------------

* bug #3002 Bugfix braces (mnabialek)
* bug #3010 Fix handling of Github releases (julienfalque, keradus)
* bug #3015 Fix exception arguments (julienfalque)
* bug #3016 Verify phar file (keradus)
* bug #3021 Risky rules cleanup (kubawerlos)
* bug #3023 RandomApiMigrationFixer - "rand();" to "random_int(0, getrandmax());" fixing (SpacePossum)
* bug #3024 ConfigurationResolver - Handle empty "rules" value (SpacePossum, keradus)
* bug #3031 IndentationTypeFixer - fix handling tabs in indented comments (keradus)
* minor #2999 Notice when paths from config file are overridden by command arguments (julienfalque, keradus)
* minor #3007 Add PHP 7.2 to Travis build matrix (Jean85)
* minor #3009 CiIntegrationTest - run local (SpacePossum)
* minor #3013 Adjust phpunit configuration (localheinz)
* minor #3017 Fix: Risky tests (localheinz)
* minor #3018 Fix: Make sure that data providers are named correctly (localheinz, keradus)
* minor #3032 .php_cs.dist - handling UnexpectedValueException (keradus)
* minor #3033 Use ::class (keradus)
* minor #3034 Follow newest CS (keradus)
* minor #3036 Drop not existing Standalone group from PHPUnit configuration and duplicated internal tags (keradus)
* minor #3042 Update gitter address (keradus)

Changelog for v2.4.1
--------------------

* bug #2925 Improve CI integration suggestion (julienfalque)
* bug #2928 TokensAnalyzer::getClassyElements - Anonymous class support (SpacePossum)
* bug #2931 Psr0Fixer, Psr4Fixer - ignore "new class" syntax (dg, keradus)
* bug #2934 Config - fix handling rule without value (keradus, SpacePossum)
* bug #2939 NoUnusedImportsFixer - Fix extra blank line (julienfalque)
* bug #2941 PHP 7.2 - Group imports with trailing comma support (SpacePossum, julienfalque)
* bug #2954 NoBreakCommentFixer - Disable case sensitivity (julienfalque)
* bug #2959 MethodArgumentSpaceFixer - Skip body of fixed function (greg0ire)
* bug #2984 AlignMultilineCommentFixer - handle uni code (SpacePossum)
* bug #2987 Fix incorrect indentation of comments in `braces` fixer (rob006)
* minor #2924 Add missing Token deprecations (julienfalque)
* minor #2927 WhiteSpaceConfig - update message copy and more strict tests (SpacePossum, keradus)
* minor #2930 Trigger website build (keradus)
* minor #2932 Integrate CircleCI (keradus, aidantwoods)
* minor #2933 ProcessLinterTest - Ensure Windows test only runs on Windows, add a Mac test execution (aidantwoods)
* minor #2935 special handling of fabbot.io service if it's using too old PHP CS Fixer version (keradus)
* minor #2937 Travis: execute 5.3 job on precise (keradus)
* minor #2938 Tests fix configuration of project (SpacePossum, keradus)
* minor #2943 FunctionToConstantFixer - test with diff. arguments than fixable (SpacePossum)
* minor #2945 BlankLineBeforeStatementFixerTest - Fix covered class (julienfalque)
* minor #2946 Detect extra old installations (keradus)
* minor #2947 Test suggested CI integration (keradus)
* minor #2951 AccessibleObject - remove most of usage (keradus)
* minor #2952 BlankLineBeforeStatementFixer - Reference fixer instead of test class (localheinz)
* minor #2955 Travis - stop using old TASK_SCA residue (keradus)
* minor #2968 AssertTokensTrait - don't use AccessibleObject (keradus)
* minor #2969 Shrink down AccessibleObject usage (keradus)
* minor #2982 TrailingCommaInMultilineArrayFixer - simplify isMultilineArray condition (TomasVotruba)
* minor #2989 CiIntegrationTest - fix min supported PHP versions (keradus)

Changelog for v2.4.0
--------------------

* bug #2880 NoBreakCommentFixer - fix edge case (julienfalque)
* bug #2900 VoidReturnFixer - handle functions containing anonymous functions/classes (bendavies, keradus)
* bug #2902 Fix test classes constructor (julienfalque)
* feature #2384 Add BlankLineBeforeStatementFixer (localheinz, keradus, SpacePossum)
* feature #2440 MethodArgumentSpaceFixer - add ensure_fully_multiline option (greg0ire)
* feature #2649 PhpdocAlignFixer - make fixer configurable (ntzm)
* feature #2664 Add DoctrineAnnotationArrayAssignmentFixer (julienfalque)
* feature #2667 Add NoBreakCommentFixer (julienfalque)
* feature #2684 BracesFixer - new options for braces position after control structures and anonymous constructs (aidantwoods, keradus)
* feature #2701 NoExtraConsecutiveBlankLinesFixer - Add more configuration options related to switch statements (SpacePossum)
* feature #2740 Add VoidReturnFixer (mrmark)
* feature #2765 DoctrineAnnotationIndentationFixer - add option to indent mixed lines (julienfalque)
* feature #2815 NonPrintableCharacterFixer - Add option to replace with escape sequences (julienfalque, keradus)
* feature #2822 Add NoNullPropertyInitializationFixer (ntzm, julienfalque, SpacePossum)
* feature #2825 Add PhpdocTypesOrderFixer (julienfalque, keradus)
* feature #2856 CastSpacesFixer - add space option (kubawerlos, keradus)
* feature #2857 Add AlignMultilineCommentFixer (Slamdunk, keradus)
* feature #2866 Add SingleLineCommentStyleFixer, deprecate HashToSlashCommentFixer (Slamdunk, keradus)
* minor #2773 Travis - use stages (keradus)
* minor #2794 Drop HHVM support (keradus, julienfalque)
* minor #2801 ProjectCodeTest - Fix typo in deprecation message (SpacePossum)
* minor #2818 Token become immutable, performance optimizations (keradus)
* minor #2877 Fix PHPMD report (julienfalque)
* minor #2894 NonPrintableCharacterFixer - fix handling required PHP version on PHPUnit 4.x (keradus)
* minor #2921 InvalidForEnvFixerConfigurationException - fix handling in tests on 2.4 line (keradus)

Changelog for v2.3.3
--------------------

* bug #2807 NoUselessElseFixer - Fix detection of conditional block (SpacePossum)
* bug #2809 Phar release - fix readme generation (SpacePossum, keradus)
* bug #2827 MethodArgumentSpaceFixer - Always remove trailing spaces (julienfalque)
* bug #2835 SelfAcessorFixer - class property fix (mnabialek)
* bug #2848 PhpdocIndentFixer - fix edge case with inline phpdoc (keradus)
* bug #2849 BracesFixer - Fix indentation issues with comments (julienfalque)
* bug #2851 Tokens - ensureWhitespaceAtIndex (GrahamCampbell, SpacePossum)
* bug #2854 NoLeadingImportSlashFixer - Removing leading slash from import even when in global space (kubawerlos)
* bug #2858 Support generic types (keradus)
* bug #2869 Fix handling required configuration (keradus)
* bug #2881 NoUnusedImportsFixer - Bug when trying to insert empty token (GrahamCampbell, keradus)
* bug #2882 DocBlock\Annotation - Fix parsing of collections with multiple key types (julienfalque)
* bug #2886 NoSpacesInsideParenthesisFixer - Do not remove whitespace if next token is comment (SpacePossum)
* bug #2888 SingleImportPerStatementFixer - Add support for function and const (SpacePossum)
* bug #2901 Add missing files to archive files (keradus)
* bug #2914 HeredocToNowdocFixer - works with CRLF line ending (dg)
* bug #2920 RuleSet - Update deprecated configuration of fixers (SpacePossum, keradus)
* minor #1531 Update docs for few generic types (keradus)
* minor #2793 COOKBOOK-FIXERS.md - update to current version, fix links (keradus)
* minor #2812 ProcessLinter - compatibility with Symfony 3.3 (keradus)
* minor #2816 Tokenizer - better docs and validation (keradus)
* minor #2817 Tokenizer - use future-compatible interface (keradus)
* minor #2819 Fix benchmark (keradus)
* minor #2820 MagicConstantCasingFixer - Remove defined check (SpacePossum)
* minor #2823 Tokenizer - use future-compatible interface (keradus)
* minor #2824 code grooming (keradus)
* minor #2826 Exceptions - provide utests (localheinz)
* minor #2828 Enhancement: Reference phpunit.xsd from phpunit.xml.dist (localheinz)
* minor #2830 Differs - add tests (localheinz)
* minor #2832 Fix: Use all the columns (localheinz)
* minor #2833 Doctrine\Annotation\Token - provide utests (localheinz)
* minor #2839 Use PHP 7.2 polyfill instead of xml one (keradus)
* minor #2842 Move null to first position in PHPDoc types (julienfalque)
* minor #2850 ReadmeCommandTest - Prevent diff output (julienfalque)
* minor #2859 Fixed typo and dead code removal (GrahamCampbell)
* minor #2863 FileSpecificCodeSample - add tests (localheinz)
* minor #2864 WhitespacesAwareFixerInterface clean up (Slamdunk)
* minor #2865 AutoReview\FixerTest - test configuration samples (SpacePossum, keradus)
* minor #2867 VersionSpecification - Fix copy-paste typo (SpacePossum)
* minor #2870 Tokens - ensureWhitespaceAtIndex - Clear tokens before compare. (SpacePossum)
* minor #2874 LineTest - fix typo (keradus)
* minor #2875 HelpCommand - recursive layout fix (SpacePossum)
* minor #2883 DescribeCommand - Show which sample uses the default configuration  (SpacePossum)
* minor #2887 Housekeeping - Strict whitespace checks (SpacePossum)
* minor #2895 ProjectCodeTest - check that classes in no-tests exception exist (keradus)
* minor #2896 Move testing related classes from src to tests (keradus)
* minor #2904 Reapply CS (keradus)
* minor #2910 PhpdocAnnotationWithoutDotFixer - Restrict lowercasing (oschwald)
* minor #2913 Tests - tweaks (SpacePossum, keradus)
* minor #2916 FixerFactory - drop return in sortFixers(), never used (TomasVotruba)

Changelog for v2.3.2
--------------------

* bug #2682 DoctrineAnnotationIndentationFixer - fix handling nested annotations (edhgoose, julienfalque)
* bug #2700 Fix Doctrine Annotation end detection (julienfalque)
* bug #2715 OrderedImportsFixer - handle indented groups (pilgerone)
* bug #2732 HeaderCommentFixer - fix handling blank lines (s7b4)
* bug #2745 Fix Doctrine Annotation newlines (julienfalque)
* bug #2752 FixCommand - fix typo in warning message (mnapoli)
* bug #2757 GeckoPHPUnit is not dev dependency (keradus)
* bug #2759 Update gitattributes (SpacePossum)
* bug #2763 Fix describe command with PSR-0 fixer (julienfalque)
* bug #2768 Tokens::ensureWhitespaceAtIndex - clean up comment check, add check for T_OPEN (SpacePossum)
* bug #2783 Tokens::ensureWhitespaceAtIndex - Fix handling line endings (SpacePossum)
* minor #2304 DX: use PHPMD (keradus)
* minor #2663 Use colors for keywords in commands output (julienfalque, keradus)
* minor #2706 Update README (SpacePossum)
* minor #2714 README.rst - fix wrong value in example (mleko)
* minor #2718 Remove old Symfony exception message expectation (julienfalque)
* minor #2721 Update phpstorm article link to a fresh blog post (valeryan)
* minor #2725 Use method chaining for configuration definitions (julienfalque)
* minor #2727 PHPUnit - use speedtrap (keradus)
* minor #2728 SelfUpdateCommand - verify that it's possible to replace current file (keradus)
* minor #2729 DescribeCommand - add decorated output test (julienfalque)
* minor #2731 BracesFixer - properly pass config in utest dataProvider (keradus)
* minor #2738 Upgrade tests to use new, namespaced PHPUnit TestCase class (keradus)
* minor #2742 Code cleanup (GrahamCampbell, keradus)
* minor #2743 Fixing example and description for GeneralPhpdocAnnotationRemoveFixer (kubawerlos)
* minor #2744 AbstractDoctrineAnnotationFixerTestCase - split fixers test cases (julienfalque)
* minor #2755 Fix compatibility with PHPUnit 5.4.x (keradus)
* minor #2758 Readme - improve CI integration guidelines (keradus)
* minor #2769 Psr0Fixer - remove duplicated example (julienfalque)
* minor #2774 AssertTokens Trait (keradus)
* minor #2775 NoExtraConsecutiveBlankLinesFixer - remove duplicate code sample. (SpacePossum)
* minor #2778 AutoReview - watch that code samples are unique (keradus)
* minor #2787 Add warnings about missing dom ext and require json ext (keradus)
* minor #2792 Use composer-require-checker (keradus)
* minor #2796 Update .gitattributes (SpacePossum)
* minor #2797 Update .gitattributes (SpacePossum)
* minor #2800 PhpdocTypesFixerTest - Fix typo in covers annotation (SpacePossum)

Changelog for v2.3.1
--------------------

Port of v2.2.3.

* bug #2724 Revert #2554 Add short diff. output format (keradus)

Changelog for v2.3.0
--------------------

* feature #2450 Add ListSyntaxFixer (SpacePossum)
* feature #2708 Add PhpUnitTestClassRequiresCoversFixer (keradus)
* minor #2568 Require PHP 5.6+ (keradus)
* minor #2672 Bump symfony/* deps (keradus)

Changelog for v2.2.20
---------------------

* bug #3233 PhpdocAlignFixer - Fix linebreak inconsistency (SpacePossum, keradus)
* bug #3445 Rewrite NoUnusedImportsFixer (kubawerlos, julienfalque)
* bug #3597 DeclareStrictTypesFixer - fix bug of removing line (kubawerlos, keradus)
* bug #3605 DoctrineAnnotationIndentationFixer - Fix indentation with mixed lines (julienfalque)
* bug #3606 PhpdocToCommentFixer - allow multiple ( (SpacePossum)
* bug #3684 PhpUnitStrictFixer - Do not fix if not correct # of arguments are used (SpacePossum)
* bug #3715 SingleImportPerStatementFixer - Fix handling whitespace before opening brace (julienfalque)
* bug #3731 PhpdocIndentFixer -  crash fix (SpacePossum)
* bug #3765 Fix binary-prefixed double-quoted strings to single quotes (ntzm)
* bug #3770 Handle binary flags in heredoc_to_nowdoc (ntzm)
* bug #3790 ProcessLinter - don't execute external process without timeout! It can freeze! (keradus)
* minor #3548 Make shell scripts POSIX-compatible (EvgenyOrekhov, keradus)
* minor #3568 New Autoreview: Correct option casing (ntzm)
* minor #3590 Use XdebugHandler to avoid performance penalty (AJenbo, keradus)
* minor #3607 PhpdocVarWithoutNameFixer - update sample with @ type (SpacePossum)
* minor #3617 Tests stability patches (Tom Klingenberg, keradus)
* minor #3627 Fix tests execution under phpdbg (keradus)
* minor #3629 ProjectFixerConfigurationTest - test rules are sorted (SpacePossum)
* minor #3639 DX: use benefits of symfony/force-lowest (keradus)
* minor #3641 Update check_trailing_spaces script with upstream (keradus)
* minor #3646 Extract SameStringsConstraint and XmlMatchesXsdConstraint (keradus)
* minor #3647 DX: Add CachingLinter for tests (keradus)
* minor #3649 Update check_trailing_spaces script with upstream (keradus)
* minor #3652 CiIntegrationTest - run tests with POSIX sh, not Bash (keradus)
* minor #3656 DX: Clean ups (SpacePossum)
* minor #3660 Fix  do not rely on order of fixing in CiIntegrationTest (kubawerlos)
* minor #3662 DX: Add Smoke/InstallViaComposerTest (keradus)
* minor #3663 DX: During deployment, run all smoke tests and don't allow to skip phar-related ones (keradus)
* minor #3665 CircleCI fix (kubawerlos)
* minor #3666 Use "set -eu" in shell scripts (EvgenyOrekhov)
* minor #3669 Document possible values for subset options (julienfalque, keradus)
* minor #3676 RunnerTest - workaround for failing Symfony v2.8.37 (kubawerlos)
* minor #3680 DX: Tokens - removeLeadingWhitespace and removeTrailingWhitespace must act in same way (SpacePossum)
* minor #3686 README.rst - Format all code-like strings in fixer descriptions (ntzm, keradus)
* minor #3692 DX: Optimize tests (julienfalque)
* minor #3701 Use correct casing for "PHPDoc" (ntzm)
* minor #3703 DX: InstallViaComposerTets - groom naming (keradus)
* minor #3704 DX: Tokens - fix naming (keradus)
* minor #3706 Update homebrew installation instructions (ntzm)
* minor #3713 Use HTTPS whenever possible (fabpot)
* minor #3723 Extend tests coverage (ntzm)
* minor #3733 Disable Composer optimized autoloader by default (julienfalque)
* minor #3748 PhpUnitStrictFixer - extend risky note (jnvsor)
* minor #3749 Make sure PHPUnit is cased correctly in fixers descriptions (kubawerlos)
* minor #3773 AbstractFixerWithAliasedOptionsTestCase - don't export (keradus)
* minor #3796 DX: StdinTest - do not assume name of folder, into which project was cloned (keradus)
* minor #3803 NoEmptyPhpdocFixer/PhpdocAddMissingParamAnnotationFixer - missing priority test (SpacePossum, keradus)
* minor #3804 Cleanup: remove useless constructor comment (kubawerlos)

Changelog for v2.2.19
---------------------

* bug #3594 ElseifFixer - Bug with alternative syntax (kubawerlos)
* bug #3600 StrictParamFixer - Fix issue when functions are imported (ntzm, keradus)
* minor #3589 FixerFactoryTest - add missing test (SpacePossum, keradus)
* minor #3610 make phar extension optional (Tom Klingenberg, keradus)
* minor #3612 Travis - allow for hhvm failures (keradus)
* minor #3615 Detect fabbot.io (julienfalque, keradus)
* minor #3616 FixerFactoryTest - Don't rely on autovivification (keradus)

Changelog for v2.2.18
---------------------

* bug #3446 Add PregWrapper (kubawerlos)
* bug #3464 IncludeFixer - fix incorrect order of fixing (kubawerlos, SpacePossum)
* bug #3496 Bug in Tokens::removeLeadingWhitespace (kubawerlos, SpacePossum, keradus)
* bug #3557 AbstractDoctrineAnnotationFixer: edge case bugfix (Slamdunk)
* bug #3574 GeneralPhpdocAnnotationRemoveFixer - remove PHPDoc if no content is left (SpacePossum)
* minor #3563 DX add missing covers annotations (keradus)
* minor #3565 Use EventDispatcherInterface instead of EventDispatcher when possible (keradus)
* minor #3572 DX: allow for more phpunit-speedtrap versions to support more PHPUnit versions (keradus)
* minor #3576 Fix Doctrine Annotation test cases merging (julienfalque)

Changelog for v2.2.17
---------------------

* bug #3504 NoBlankLinesAfterPhpdocFixer - allow blank line before declare statement (julienfalque)
* bug #3522 Remove LOCK_EX (SpacePossum)
* bug #3560 SelfAccessorFixer is risky (Slamdunk)
* minor #3435 Add tests for general_phpdoc_annotation_remove (BackEndTea)
* minor #3484 Create Tokens::findBlockStart (ntzm)
* minor #3512 Add missing array typehints (ntzm)
* minor #3516 Use null|type instead of ?type in PHPDocs (ntzm)
* minor #3518 FixerFactoryTest - Test each priority test file is listed as test (SpacePossum)
* minor #3520 Fix typos: ran vs. run (SpacePossum)
* minor #3521 Use HTTPS (carusogabriel)
* minor #3526 Remove gecko dependency (SpacePossum, keradus, julienfalque)
* minor #3531 Backport PHPMD to LTS version to ease maintainability (keradus)
* minor #3532 Implement Tokens::findOppositeBlockEdge (ntzm)
* minor #3533 DX: SCA - drop src/Resources exclusion (keradus)
* minor #3538 Don't use third parameter of Tokens::findBlockStart (ntzm)
* minor #3542 Enhancement: Run composer-normalize on Travis CI (localheinz, keradus)
* minor #3555 DX: composer.json - drop branch-alias, branch is already following the version (keradus)
* minor #3556 DX: Add AutoReview/ComposerTest (keradus)
* minor #3559 Don't expose new files under Test namespace (keradus)

Changelog for v2.2.16
---------------------

* bug #3502 Fix missing file in export (keradus)

Changelog for v2.2.15
---------------------

* bug #3367 NoUnusedImportsFixer - fix comment handling (SpacePossum, keradus)
* bug #3455 NoEmptyCommentFixer - comment block detection for line ending different than LF (kubawerlos, SpacePossum)
* bug #3458 SilencedDeprecationErrorFixer - fix edge cases (kubawerlos)
* bug #3466 no_whitespace_in_blank_line and no_blank_lines_after_phpdoc fixers bug (kubawerlos, keradus)
* minor #3354 Added missing types to the PhpdocTypesFixer (GrahamCampbell)
* minor #3406 Fix for escaping in README (kubawerlos)
* minor #3431 Add missing tests (SpacePossum)
* minor #3440 Add a handful of integration tests (BackEndTea)
* minor #3444 IntegrationTest - ensure tests in priority dir are priority tests indeed (keradus)
* minor #3494 Add missing PHPDoc param type (ntzm)
* minor #3495 Swap @var type and element (ntzm)
* minor #3498 NoUnusedImportsFixer - fix deprecation (keradus)

Changelog for v2.2.14
---------------------

* bug #3298 DiffConsoleFormatter - fix output escaping. (SpacePossum)
* bug #3337 BracesFixer: nowdoc bug on template files (Slamdunk)
* bug #3349 Fix stdin handling and add tests for it (keradus)
* bug #3359 BracesFixer - handle comment for content outside of given block (keradus)
* bug #3415 FileFilterIterator - input checks and utests (SpacePossum, keradus)
* bug #3429 Fix archive analysing (keradus)
* minor #3137 PHPUnit - use common base class (keradus)
* minor #3342 PhpUnitDedicateAssertFixer - Remove unexistent method is_boolean  (carusogabriel)
* minor #3345 StdinFileInfo - fix `__toString` (keradus)
* minor #3346 StdinFileInfo - drop getContents (keradus)
* minor #3347 DX: reapply newest CS (keradus)
* minor #3365 COOKBOOK-FIXERS.md - update to provide definition instead of description (keradus)
* minor #3370 AbstractFixer - FQCN in in exceptions (Slamdunk)
* minor #3372 ProjectCodeTest - fix comment (keradus)
* minor #3402 Always provide delimiter to `preg_quote` calls (ntzm)
* minor #3403 Remove unused import (ntzm)
* minor #3405 Fix `fopen` mode (ntzm)
* minor #3408 Improving fixers descriptions (kubawerlos)
* minor #3409 move itests from misc to priority (keradus)
* minor #3411 Better type hinting for AbstractFixerTestCase::$fixer (kubawerlos)
* minor #3412 Convert `strtolower` inside `strpos` to just `stripos` (ntzm)
* minor #3425 FixerFactoryTest - test that priority pair fixers have itest (keradus, SpacePossum)
* minor #3427 ConfigurationResolver: fix @return annotation (Slamdunk)

Changelog for v2.2.13
---------------------

* bug #3281 SelfAccessorFixer - stop modifying traits (kubawerlos)
* minor #3195 Add self-update command test (julienfalque)
* minor #3292 PHPUnit - set memory limit (veewee)
* minor #3306 Token - better input validation (keradus)

Changelog for v2.2.12
---------------------

* bug #3173 SimplifiedNullReturnFixer - handle nullable return types (Slamdunk)
* bug #3272 PhpdocTrimFixer - unicode support (SpacePossum)

Changelog for v2.2.11
---------------------

* bug #3225 PhpdocTrimFixer - Fix handling of lines without leading asterisk (julienfalque)
* bug #3262 ToolInfo - support installation by branch as well (keradus)
* bug #3266 PhpUnitConstructFixer - multiple asserts bug (kubawerlos)
* minor #3239 Improve contributing guide and issue template (julienfalque)
* minor #3246 Make ToolInfo methods non-static (julienfalque)
* minor #3250 Travis: fail early, spare resources, save the Earth (Slamdunk, keradus)
* minor #3251 Create Title for config file docs section (IanEdington)
* minor #3254 AutoReview/FixerFactoryTest::testFixersPriority: verbose assertion message (Slamdunk)

Changelog for v2.2.10
---------------------

* bug #3199 TokensAnalyzer - getClassyElements (SpacePossum)
* bug #3208 BracesFixer - Fix for instantiation in control structures (julienfalque, SpacePossum)
* bug #3215 BinaryOperatorSpacesFixer - Fix spaces around multiple exception catching (|) (ntzm)
* bug #3216 AbstractLinesBeforeNamespaceFixer - add min. and max. option, not only single target count (SpacePossum)
* bug #3217 TokenizerLinter - fix lack of linting when code is cached (SpacePossum, keradus)
* minor #3200 Skip slow test when Xdebug is loaded (julienfalque)
* minor #3219 Normalise references to GitHub in docs (ntzm)
* minor #3226 Remove unused imports (ntzm)
* minor #3231 Fix typos (ntzm)
* minor #3234 Simplify Cache\Signature::equals (ntzm)
* minor #3237 UnconfigurableFixer - use only LF (keradus)
* minor #3238 AbstractFixerTest - fix @cover annotation (keradus)

Changelog for v2.2.9
--------------------

* bug #3062 BraceClassInstantiationTransformer - Fix instantiation inside method call braces case (julienfalque, keradus)
* bug #3083 SingleBlankLineBeforeNamespaceFixer - Fix handling namespace right after opening tag (mlocati)
* bug #3109 SwitchCaseSemicolonToColonFixer - Fix bug with nested constructs (SpacePossum)
* bug #3123 Cache - File permissions (SpacePossum)
* bug #3172 IndentationTypeFixer - do not touch whitespace that is not indentation (SpacePossum)
* bug #3176 NoMultilineWhitespaceBeforeSemicolonsFixer - SpaceAfterSemicolonFixer - priority fix (SpacePossum)
* bug #3193 TokensAnalyzer::getClassyElements - sort result before returning (SpacePossum)
* bug #3196 SelfUpdateCommand - fix exit status when can't determine newest version (julienfalque)
* minor #3107 ConfigurationResolver - improve error message when rule is not found (SpacePossum)
* minor #3113 Add WordMatcher (keradus)
* minor #3133 Unify Reporter tests (keradus)
* minor #3134 Allow Symfony 4 (keradus, garak)
* minor #3136 PHPUnit - call hooks from parent class as well (keradus)
* minor #3145 misc - Typo (localheinz)
* minor #3150 Fix CircleCI (julienfalque)
* minor #3151 Update gitattributes to ignore next file (keradus)
* minor #3156 Update php-coveralls (keradus)
* minor #3166 README - add link to new gitter channel. (SpacePossum)
* minor #3174 Update UPGRADE.md (vitek-rostislav)
* minor #3180 Fix usage of static variables (kubawerlos)
* minor #3184 Code grooming - sort content of arrays (keradus)
* minor #3191 Travis - add nightly build to allow_failures due to Travis issues (keradus)
* minor #3197 DX groom CS (keradus)

Changelog for v2.2.8
--------------------

* bug #3052 Fix false positive warning about paths overridden by provided as command arguments (kubawerlos)
* bug #3058 IsNullFixer - fix whitespace handling (roukmoute)
* bug #3072 IsNullFixer - fix non_yoda_style edge case (keradus)
* bug #3088 Drop dedicated Phar stub (keradus)
* bug #3100 NativeFunctionInvocationFixer - Fix test if previous token is already namespace separator (SpacePossum)
* bug #3104 DoctrineAnnotationIndentationFixer - Fix str_repeat() error (julienfalque)
* minor #3038 Support PHP 7.2 (SpacePossum, keradus)
* minor #3064 Fix couple of typos (KKSzymanowski)
* minor #3078 ConfigurationResolver - hide context while including config file (keradus)
* minor #3080 Direct function call instead of by string (kubawerlos)
* minor #3085 CiIntegrationTest - skip when no git is available (keradus)
* minor #3087 phar-stub.php - allow PHP 7.2 (keradus)

Changelog for v2.2.7
--------------------

* bug #3002 Bugfix braces (mnabialek)
* bug #3010 Fix handling of Github releases (julienfalque, keradus)
* bug #3015 Fix exception arguments (julienfalque)
* bug #3016 Verify phar file (keradus)
* bug #3021 Risky rules cleanup (kubawerlos)
* bug #3023 RandomApiMigrationFixer - "rand();" to "random_int(0, getrandmax());" fixing (SpacePossum)
* bug #3024 ConfigurationResolver - Handle empty "rules" value (SpacePossum, keradus)
* bug #3031 IndentationTypeFixer - fix handling tabs in indented comments (keradus)
* minor #2999 Notice when paths from config file are overridden by command arguments (julienfalque, keradus)
* minor #3007 Add PHP 7.2 to Travis build matrix (Jean85)
* minor #3009 CiIntegrationTest - run local (SpacePossum)
* minor #3013 Adjust phpunit configuration (localheinz)
* minor #3017 Fix: Risky tests (localheinz)
* minor #3018 Fix: Make sure that data providers are named correctly (localheinz, keradus)
* minor #3032 .php_cs.dist - handling UnexpectedValueException (keradus)
* minor #3034 Follow newest CS (keradus)
* minor #3036 Drop not existing Standalone group from PHPUnit configuration and duplicated internal tags (keradus)
* minor #3042 Update gitter address (keradus)

Changelog for v2.2.6
--------------------

* bug #2925 Improve CI integration suggestion (julienfalque)
* bug #2928 TokensAnalyzer::getClassyElements - Anonymous class support (SpacePossum)
* bug #2931 Psr0Fixer, Psr4Fixer - ignore "new class" syntax (dg, keradus)
* bug #2934 Config - fix handling rule without value (keradus, SpacePossum)
* bug #2939 NoUnusedImportsFixer - Fix extra blank line (julienfalque)
* bug #2941 PHP 7.2 - Group imports with trailing comma support (SpacePossum, julienfalque)
* bug #2987 Fix incorrect indentation of comments in `braces` fixer (rob006)
* minor #2927 WhiteSpaceConfig - update message copy and more strict tests (SpacePossum, keradus)
* minor #2930 Trigger website build (keradus)
* minor #2932 Integrate CircleCI (keradus, aidantwoods)
* minor #2933 ProcessLinterTest - Ensure Windows test only runs on Windows, add a Mac test execution (aidantwoods)
* minor #2935 special handling of fabbot.io service if it's using too old PHP CS Fixer version (keradus)
* minor #2937 Travis: execute 5.3 job on precise (keradus)
* minor #2938 Tests fix configuration of project (SpacePossum, keradus)
* minor #2943 FunctionToConstantFixer - test with diff. arguments than fixable (SpacePossum)
* minor #2946 Detect extra old installations (keradus)
* minor #2947 Test suggested CI integration (keradus)
* minor #2951 AccessibleObject - remove most of usage (keradus)
* minor #2969 Shrink down AccessibleObject usage (keradus)
* minor #2982 TrailingCommaInMultilineArrayFixer - simplify isMultilineArray condition (TomasVotruba)

Changelog for v2.2.5
--------------------

* bug #2807 NoUselessElseFixer - Fix detection of conditional block (SpacePossum)
* bug #2809 Phar release - fix readme generation (SpacePossum, keradus)
* bug #2827 MethodArgumentSpaceFixer - Always remove trailing spaces (julienfalque)
* bug #2835 SelfAcessorFixer - class property fix (mnabialek)
* bug #2848 PhpdocIndentFixer - fix edge case with inline phpdoc (keradus)
* bug #2849 BracesFixer - Fix indentation issues with comments (julienfalque)
* bug #2851 Tokens - ensureWhitespaceAtIndex (GrahamCampbell, SpacePossum)
* bug #2854 NoLeadingImportSlashFixer - Removing leading slash from import even when in global space (kubawerlos)
* bug #2858 Support generic types (keradus)
* bug #2869 Fix handling required configuration (keradus)
* bug #2881 NoUnusedImportsFixer - Bug when trying to insert empty token (GrahamCampbell, keradus)
* bug #2882 DocBlock\Annotation - Fix parsing of collections with multiple key types (julienfalque)
* bug #2886 NoSpacesInsideParenthesisFixer - Do not remove whitespace if next token is comment (SpacePossum)
* bug #2888 SingleImportPerStatementFixer - Add support for function and const (SpacePossum)
* bug #2901 Add missing files to archive files (keradus)
* bug #2914 HeredocToNowdocFixer - works with CRLF line ending (dg)
* bug #2920 RuleSet - Update deprecated configuration of fixers (SpacePossum, keradus)
* minor #1531 Update docs for few generic types (keradus)
* minor #2793 COOKBOOK-FIXERS.md - update to current version, fix links (keradus)
* minor #2812 ProcessLinter - compatibility with Symfony 3.3 (keradus)
* minor #2816 Tokenizer - better docs and validation (keradus)
* minor #2817 Tokenizer - use future-compatible interface (keradus)
* minor #2819 Fix benchmark (keradus)
* minor #2824 code grooming (keradus)
* minor #2826 Exceptions - provide utests (localheinz)
* minor #2828 Enhancement: Reference phpunit.xsd from phpunit.xml.dist (localheinz)
* minor #2830 Differs - add tests (localheinz)
* minor #2832 Fix: Use all the columns (localheinz)
* minor #2833 Doctrine\Annotation\Token - provide utests (localheinz)
* minor #2839 Use PHP 7.2 polyfill instead of xml one (keradus)
* minor #2842 Move null to first position in PHPDoc types (julienfalque)
* minor #2850 ReadmeCommandTest - Prevent diff output (julienfalque)
* minor #2859 Fixed typo and dead code removal (GrahamCampbell)
* minor #2863 FileSpecificCodeSample - add tests (localheinz)
* minor #2864 WhitespacesAwareFixerInterface clean up (Slamdunk)
* minor #2865 AutoReview\FixerTest - test configuration samples (SpacePossum, keradus)
* minor #2867 VersionSpecification - Fix copy-paste typo (SpacePossum)
* minor #2874 LineTest - fix typo (keradus)
* minor #2875 HelpCommand - recursive layout fix (SpacePossum)
* minor #2883 DescribeCommand - Show which sample uses the default configuration  (SpacePossum)
* minor #2887 Housekeeping - Strict whitespace checks (SpacePossum)
* minor #2895 ProjectCodeTest - check that classes in no-tests exception exist (keradus)
* minor #2896 Move testing related classes from src to tests (keradus)
* minor #2904 Reapply CS (keradus)
* minor #2910 PhpdocAnnotationWithoutDotFixer - Restrict lowercasing (oschwald)
* minor #2913 Tests - tweaks (SpacePossum, keradus)
* minor #2916 FixerFactory - drop return in sortFixers(), never used (TomasVotruba)

Changelog for v2.2.4
--------------------

* bug #2682 DoctrineAnnotationIndentationFixer - fix handling nested annotations (edhgoose, julienfalque)
* bug #2700 Fix Doctrine Annotation end detection (julienfalque)
* bug #2715 OrderedImportsFixer - handle indented groups (pilgerone)
* bug #2732 HeaderCommentFixer - fix handling blank lines (s7b4)
* bug #2745 Fix Doctrine Annotation newlines (julienfalque)
* bug #2752 FixCommand - fix typo in warning message (mnapoli)
* bug #2757 GeckoPHPUnit is not dev dependency (keradus)
* bug #2759 Update gitattributes (SpacePossum)
* bug #2763 Fix describe command with PSR-0 fixer (julienfalque)
* bug #2768 Tokens::ensureWhitespaceAtIndex - clean up comment check, add check for T_OPEN (SpacePossum)
* bug #2783 Tokens::ensureWhitespaceAtIndex - Fix handling line endings (SpacePossum)
* minor #2663 Use colors for keywords in commands output (julienfalque, keradus)
* minor #2706 Update README (SpacePossum)
* minor #2714 README.rst - fix wrong value in example (mleko)
* minor #2721 Update phpstorm article link to a fresh blog post (valeryan)
* minor #2727 PHPUnit - use speedtrap (keradus)
* minor #2728 SelfUpdateCommand - verify that it's possible to replace current file (keradus)
* minor #2729 DescribeCommand - add decorated output test (julienfalque)
* minor #2731 BracesFixer - properly pass config in utest dataProvider (keradus)
* minor #2738 Upgrade tests to use new, namespaced PHPUnit TestCase class (keradus)
* minor #2743 Fixing example and description for GeneralPhpdocAnnotationRemoveFixer (kubawerlos)
* minor #2744 AbstractDoctrineAnnotationFixerTestCase - split fixers test cases (julienfalque)
* minor #2755 Fix compatibility with PHPUnit 5.4.x (keradus)
* minor #2758 Readme - improve CI integration guidelines (keradus)
* minor #2769 Psr0Fixer - remove duplicated example (julienfalque)
* minor #2775 NoExtraConsecutiveBlankLinesFixer - remove duplicate code sample. (SpacePossum)
* minor #2778 AutoReview - watch that code samples are unique (keradus)
* minor #2787 Add warnings about missing dom ext and require json ext (keradus)
* minor #2792 Use composer-require-checker (keradus)
* minor #2796 Update .gitattributes (SpacePossum)
* minor #2800 PhpdocTypesFixerTest - Fix typo in covers annotation (SpacePossum)

Changelog for v2.2.3
--------------------

* bug #2724 Revert #2554 Add short diff. output format (keradus)

Changelog for v2.2.2
--------------------

Warning, this release breaks BC due to introduction of:
* minor #2554 Add short diff. output format (SpacePossum, keradus)
That PR was reverted in v2.2.3, which should be used instead of v2.2.2.

* bug #2545 RuleSet - change resolvement (SpacePossum)
* bug #2686 Commands readme and describe - fix rare casing when not displaying some possible options of configuration (keradus)
* bug #2711 FixCommand - fix diff optional value handling (keradus)
* minor #2688 AppVeyor - Remove github oauth (keradus)
* minor #2703 Clean ups - No mixed annotations (SpacePossum)
* minor #2704 Create PHP70Migration:risky ruleset (keradus)
* minor #2707 Deprecate other than "yes" or "no" for input options (SpacePossum)
* minor #2709 code grooming (keradus)
* minor #2710 Travis - run more rules on TASK_SCA (keradus)

Changelog for v2.2.1
--------------------

* bug #2621 Tokenizer - fix edge cases with empty code, registered found tokens and code hash (SpacePossum, keradus)
* bug #2674 SemicolonAfterInstructionFixer - Fix case where block ends with an opening curly brace (ntzm)
* bug #2675 ProcessOutputTest - update tests to pass on newest Symfony components under Windows (keradus)
* minor #2651 Fix UPGRADE.md table syntax so it works in GitHub (ntzm, keradus)
* minor #2665 Travis - Improve trailing spaces detection (julienfalque)
* minor #2666 TransformersTest - move test to auto-review group (keradus)
* minor #2668 add covers annotation (keradus)
* minor #2669 TokensTest - grooming (SpacePossum)
* minor #2670 AbstractFixer: use applyFix instead of fix (Slamdunk)
* minor #2677 README: Correct progressbar option support (Laurens St�tzel)

Changelog for v2.2.0
--------------------

* bug #2640 NoExtraConsecutiveBlankLinesFixer - Fix single indent characters not working (ntzm)
* feature #2220 Doctrine annotation fixers (julienfalque)
* feature #2431 MethodArgumentSpaceFixer: allow to retain multiple spaces after comma (Slamdunk)
* feature #2459 BracesFixer - Add option for keeping opening brackets on the same line (jtojnar, SpacePossum)
* feature #2486 Add FunctionToConstantFixer (SpacePossum, keradus)
* feature #2505 FunctionDeclarationFixer - Make space after anonymous function configurable (jtojnar, keradus)
* feature #2509 FullOpeningTagFixer - Ensure opening PHP tag is lowercase (jtojnar)
* feature #2532 FixCommand - add stop-on-violation option (keradus)
* feature #2591 Improve process output (julienfalque)
* feature #2603 Add InvisibleSymbols Fixer (ivan1986, keradus)
* feature #2642 Add MagicConstantCasingFixer (ntzm)
* feature #2657 PhpdocToCommentFixer - Allow phpdoc for language constructs (ceeram, SpacePossum)
* minor #2500 Configuration resolver (julienfalque, SpacePossum, keradus)
* minor #2566 Show more details on errors and exceptions. (SpacePossum, julienfalque)
* minor #2597 HHVM - bump required version to 3.18 (keradus)
* minor #2606 FixCommand - fix missing comment close tag (keradus)
* minor #2623 OrderedClassElementsFixer - remove dead code (SpacePossum)
* minor #2625 Update Symfony and Symfony:risky rulesets (keradus)
* minor #2626 TernaryToNullCoalescingFixer - adjust ruleset membership and description (keradus)
* minor #2635 ProjectCodeTest - watch that all classes have dedicated tests (keradus)
* minor #2647 DescribeCommandTest - remove deprecated code usage (julienfalque)
* minor #2648 Move non-code covering tests to AutoReview subnamespace (keradus)
* minor #2652 NoSpacesAroundOffsetFixerTest - fix deprecation (keradus)
* minor #2656 Code grooming (keradus)
* minor #2659 Travis - speed up preparation for phar building (keradus)
* minor #2660 Fixed typo in suggest for ext-mbstring (pascal-hofmann)
* minor #2661 NonPrintableCharacterFixer - include into Symfony:risky ruleset (keradus)

Changelog for v2.1.3
--------------------

* bug #2358 Cache - Deal with signature encoding (keradus, GrahamCampbell)
* bug #2475 Add shorthand array destructing support (SpacePossum, keradus)
* bug #2595 NoUnusedImportsFixer - Fix import usage detection with properties (julienfalque)
* bug #2605 PhpdocAddMissingParamAnnotationFixer, PhpdocOrderFixer - fix priority issue (SpacePossum)
* bug #2607 Fixers - better comments handling (SpacePossum)
* bug #2612 BracesFixer - Fix early bracket close for do-while loop inside an if without brackets (felixgomez)
* bug #2614 Ensure that '*Fixer::fix()' won't crash when running on non-candidate collection (keradus)
* bug #2630 HeaderCommentFixer - Fix trailing whitespace not removed after <?php (julienfalque)
* bug #2637 ToolInfo - use static dir check for composer discovery (Slamdunk)
* bug #2639 SemicolonAfterInstructionFixer - Handle alternative syntax (SpacePossum)
* bug #2645 HHVM: handle T_HH_ERROR (keradus)
* bug #2653 IsNullFixer - fix edge case (localheinz, kalessil)
* bug #2654 PhpdocAddMissingParamAnnotationFixer - handle one-line docblocks (keradus)
* minor #2594 Travis - generate coverage report at 7.1 and clean up build matrix (keradus)
* minor #2613 HeaderCommentFixer - add missing case for exception raising (keradus)
* minor #2615 Add DescribeCommand test (julienfalque)
* minor #2616 Exclude more tests in phar version (keradus)
* minor #2618 Update README.rst (mhitza)
* minor #2620 Finder - Remove `*.twig` as default (SpacePossum)
* minor #2641 Cookbook - remove information about levels (keradus)
* minor #2644 DescribeCommandTest - fix test execution on decorated console (keradus)
* minor #2655 AppVeyor - Cache Composer Installation (julienfalque)

Changelog for v2.1.2
--------------------

* bug #2580 NoSpacesAfterFunctionNameFixer - Fix after dynamic call (SpacePossum, keradus)
* bug #2586 NoUnusedImportsFixerTest - handle FQCN import (keradus)
* bug #2587 NoClosingTagFixerTest - handle file without operations (keradus, SpacePossum)
* minor #2552 Initial compatibility with PHP 7.2-DEV (keradus)
* minor #2582 Improve AppVeyor and Travis CI build time (julienfalque)
* minor #2584 NoUnreachableDefaultArgumentValueFixer - fix typo (chadburrus)
* minor #2593 PhpUnitFqcnAnnotationFixer - move test to proper namespace (keradus)
* minor #2596 AppVeyor - update PHP versions (keradus)

Changelog for v2.1.1
--------------------

* bug #2547 NoUnneededControlParenthesesFixer - Handle T_COALESCE in clone (keksa)
* bug #2557 BracesFixer - Better comments handling (SpacePossum)
* bug #2558 require symfony/polyfill-xml (SpacePossum)
* bug #2560 PhpdocNoAliasTagFixer - Fix circular replacements detection (julienfalque)
* bug #2567 Filename with spaces usage (jaymecd)
* bug #2572 NoUnreachableDefaultArgumentValueFixer - Mark as risky (SpacePossum)
* minor #2533 AppVeyor - adjust phpunit version (keradus)
* minor #2535 Make .gitignore entries more specific (julienfalque)
* minor #2541 README.rst - provide download link for latest version (keradus)
* minor #2562 Add schema.json (keradus)
* minor #2563 Add deprecation notices tests (julienfalque)
* minor #2564 Add rules configuration by passing json encode config by CLI (SpacePossum)
* minor #2569 Make symfony/phpunit-bridge a dev dependency only (julienfalque)
* minor #2574 Add xml.xsd (keradus)

Changelog for v2.1.0
--------------------

* feature #2124 Add TernaryToNullCoalescingFixer (Slamdunk, SpacePossum)
* feature #2280 Configurable OrderedImportsFixer (DarkaOnLine)
* feature #2351 Enhancement: Allow to configure return_type_declaration rule (localheinz)
* feature #2359 Add PhpdocNoUselessInheritdocFixer (SpacePossum, keradus)
* feature #2414 Add PhpdocReturnSelfReferenceFixer (SpacePossum)
* feature #2415 Add IsNullFixer (kalessil, keradus)
* feature #2421 BracesFixer - Add allow_single_line_closure configuration (keradus)
* feature #2461 PhpdocNoUselessInheritdocFixer - support multiline docblock (keradus)
* feature #2462 Add NativeFunctionInvocationFixer (localheinz, keradus, Slamdunk)
* feature #2478 DeclareEqualNormalizeFixer - Add config option (SpacePossum)
* feature #2494 FixCommand - Support rules with params (ptcong, keradus)
* minor #2452 Provide rules definitions (keradus)
* minor #2460 RuleSet - extend Symfony (keradus)
* minor #2483 DX: AbstractIntegrationTestCase does not use IntegrationCase::shouldCheckPriority, logic is now automated and method is now deprecated (keradus)
* minor #2488 IsNullFixer - Fix bug when calling without params (SpacePossum)
* minor #2519 remove trailing whitespace (keradus)

Changelog for v2.0.1
--------------------

* bug #2357 Better handling of file name that is the same in multiple finder paths (keradus)
* bug #2373 FunctionDeclarationFixer - Fix static anonymous functions (SpacePossum)
* bug #2377 PhpdocSeparationFixer - Ignore incorrect PHPDoc (SpacePossum, keradus)
* bug #2388 PhpdocAlignFixer - unicode characters support (SpacePossum)
* bug #2399 HashToSlashCommentFixer - Fix edge cases (SpacePossum)
* bug #2403 ClassDefinitionFixer - Anonymous classes format by PSR12 (SpacePossum)
* bug #2408 SingleClassElementPerStatementFixer, PhpdocSeparationFixer - add missing WhitespacesAwareFixerInterface interface (keradus)
* bug #2425 ClassKeywordRemoveFixer - Fix handling leading backslash and comments (SpacePossum)
* bug #2430 PhpdocAlignFixer - Fix alignment of variadic params. (SpacePossum)
* bug #2437 NoWhitespaceInBlankLineFixer - Fix more cases (SpacePossum)
* bug #2444 MbStrFunctionsFixer - handle return reference in method declaration (SpacePossum)
* bug #2449 PhpdocAlignFixer - don't crash poorly formatted phpdoc (GrahamCampbell)
* bug #2477 BracesFixer - Do not remove white space inside declare statement (SpacePossum)
* bug #2481 Fix priorities between declare_strict_types and blank_line_after_opening_tag (juliendufresne, keradus)
* bug #2507 NoClosingTagFixer - Do not insert semicolon in comment (SpacePossum)
* minor #2347 UPGRADE.md - Fix multi-row description (drAlberT, keradus)
* minor #2352 Corrected method visibility (GrahamCampbell)
* minor #2353 Fix: Typos (localheinz)
* minor #2354 Enhancement: Allow to specify minimum and maximum PHP versions for code samples (localheinz)
* minor #2356 Fixed spelling on "blank line" (GrahamCampbell)
* minor #2361 ConfigurationResolver - Reject unknown rules (localheinz)
* minor #2368 clean ups (SpacePossum, localheinz)
* minor #2380 DescribeCommand - filter code samples and output note when none can be demonstrated (localheinz)
* minor #2381 Tests - Do not use annotations for asserting exceptions (localheinz, keradus)
* minor #2382 Consistently provide a default configuration field (localheinz)
* minor #2383 update .php_cs.dist configuration (keradus)
* minor #2386 PHP7.1 Integration test - Add features added in PHP7.1. (SpacePossum)
* minor #2392 FixCommandHelp - fix typo (keradus)
* minor #2393 Remove overcomplete tests (SpacePossum)
* minor #2394 Update .gitattributes (SpacePossum)
* minor #2395 NoEmptyCommentFixer - Fix typo (fritz-c)
* minor #2396 MethodArgumentSpaceFixer - scope down endpoint (SpacePossum)
* minor #2397 RuleSet - Check risky (SpacePossum, keradus)
* minor #2400 Add Fixer descriptions (SpacePossum)
* minor #2401 Fix UPGRADE.md (issei-m)
* minor #2405 Transformers - Must be final (SpacePossum)
* minor #2406 ProtectedToPrivateFixer - Use backticks for visibility in description (localheinz)
* minor #2407 Add tests for not abusing interfaces (keradus)
* minor #2410 DX: Keep packages sorted (localheinz)
* minor #2412 Enhancement: Add more descriptions (localheinz)
* minor #2413 Update Symfony ruleset (fabpot)
* minor #2419 README.rst - use double backticks for code pieces in rule descriptions (keradus)
* minor #2422 BracesFixer - cleanup code after introducing CT::T_FUNCTION_IMPORT (keradus)
* minor #2426 .php_cs.dist - update local CS config (keradus)
* minor #2428 SCA with Php Inspections (EA Extended) (kalessil)
* minor #2433 AbstractFixerTestCase - give all the details available during catch (Slamdunk)
* minor #2434 COOKBOOK-FIXERS.md - Replace reference to outdated class with current (greg0ire)
* minor #2436 MethodArgumentSpaceFixer - Remove duplicate class name (greg0ire)
* minor #2441 IndentationTypeFixer - Fix description and upgrade guide (SpacePossum)
* minor #2443 AppVeyor - update configuration (keradus)
* minor #2447 .php_cs.dist - update local CS config (keradus)
* minor #2452 Provide rules definitions (keradus)
* minor #2455 NoMultilineWhitespaceAroundDoubleArrowFixer - Add missing priority test (SpacePossum)
* minor #2466 Provide rules definitions (keradus)
* minor #2470 README.rst - explain the usage of "--path-mode" parameter (kalimatas)
* minor #2474 Housekeeping (SpacePossum)
* minor #2487 UPGRADE.md - Fix typo (SpacePossum)
* minor #2493 FixCommand - Output warning message when both config and rules options are passed (SpacePossum)
* minor #2496 DX: Travis - check for trailing spaces (keradus)
* minor #2499 FileSpecificCodeSample - Specify class name relative to root namespace (localheinz, keradus)
* minor #2506 SCA (SpacePossum)
* minor #2515 Fix code indentation (keradus)
* minor #2521 SCA trailing spces check - ouput lines with trailing white space (SpacePossum)
* minor #2522 Fix docs and small code issues (keradus)

Changelog for v2.0.0
--------------------

* bug #1001 MethodArgumentSpaceFixer - no need for multiple executions (keradus)
* bug #1006 NewWithBracesFixer - fix by adding BraceClassInstantiationTransformer (sstok)
* bug #1077 ConfigInterface - add missing methods (localheinz)
* bug #1103 added missing keyword token (gharlan)
* bug #1107 Added ImportTransformer (gharlan)
* bug #1157 Prevent token collection corruption by fixers (keradus, stof)
* bug #1256 Do not write the fixed output twice (SpacePossum)
* bug #1405 Linter - fix ignoring input parameter for constructor (keradus)
* bug #1414 Linter - fix escaping the php binary (GrahamCampbell, keradus)
* bug #1606 Fixer - remove duplicate file_get_contents call (gharlan)
* bug #1629 Fix linting test cases (gharlan)
* bug #1800 ConfigurationResolver - Fix resolving intersection path (keradus)
* bug #1809 NoMultilineWhitespaceBeforeSemicolonsFixer - Semicolon should not be moved into comment (SpacePossum)
* bug #1838 BracesFixer - Removes line break (SpacePossum)
* bug #1847 Runner - always cache files, not only when something is changed (gharlan)
* bug #1852 ConfigurationResolver - disallow empty rule name (keradus)
* bug #1855 FixCommand - fix passing NullLinter to Runner (keradus)
* bug #1926 NoUselessElseFixer - fix wrong if handling (SpacePossum)
* bug #1946 NoEmptyCommentFixer - Only remove complete empty comment blocks (SpacePossum)
* bug #1965 AbstractPsrAutoloadingFixer - fix edge case of halting compiler for PHP 5.3 (keradus)
* bug #1974 composer.json - fix dependencies for PHP 5.3.6 (keradus)
* bug #2025 NoShortEchoTagFixer - adjust isCandidate check for hhvm (keradus)
* bug #2039 NoExtraConsecutiveBlankLinesFixer - Fix curly brace open false positive (SpacePossum)
* bug #2044 SingleClassElementPerStatementFixer - fix array handling (keradus)
* bug #2063 ConfigurationResolver - passing non-existing path is ignored (keradus)
* bug #2236 .gitattributes - fix ignoring tests during export (keradus)
* bug #2241 XmlReporter - fix used getter (keradus)
* bug #2283 FixCommand - Fix resolving format option (SpacePossum, keradus)
* bug #2287 NoExtraConsecutiveBlankLinesFixer - fix bug that removes empty line already after scope end (keradus)
* bug #2290 FixCommand - fix progress (keradus)
* bug #2292 GeneralPhpdocAnnotation*Fixer::configure - add missing return (keradus)
* bug #2305 ProcessLinter - fix running under phpdbg (keradus)
* feature #1076 Enhancement: Allow to specify cache file (localheinz, keradus)
* feature #1088 JoinFunctionFixer -> AliasFunctionsFixer (kalessil)
* feature #1275 Added PhpdocInlineTagFixer (SpacePossum, keradus)
* feature #1292 Added MethodSeparationFixer (SpacePossum)
* feature #1383 Introduce rules and sets (keradus)
* feature #1416 Mark fixers as risky (keradus)
* feature #1440 Made AbstractFixerTestCase and AbstractIntegrationTestCase public (keradus)
* feature #1489 Added Psr4Fixer (GrahamCampbell)
* feature #1497 ExtraEmptyLinesFixer - allow to remove empty blank lines after configured tags (SpacePossum)
* feature #1529 Added PhpdocPropertyFixer, refactored Tag and Annotation (GrahamCampbell)
* feature #1628 Added OrderedClassElementsFixer (gharlan)
* feature #1742 path argument is used to create an intersection with existing finder (keradus, gharlan)
* feature #1779 Added GeneralPhpdocAnnotationRemoveFixer, GeneralPhpdocAnnotationRenameFixer (keradus)
* feature #1811 Added NoSpacesInsideOfssetFixer (phansys)
* feature #1819 Added DirConstantFixer, ModernizeTypesCastingFixer, RandomApiMigrationFixer (kalessil, SpacePossum, keradus)
* feature #1825 Added junit format (ekho)
* feature #1862 FixerFactory - Do not allow conflicting fixers (SpacePossum)
* feature #1888 Cache refactoring, better cache handling in dry-run mode (localheinz)
* feature #1889 Added SingleClassElementPerStatementFixer (phansys, SpacePossum)
* feature #1903 FixCommand - allow to pass multiple path argument (keradus)
* feature #1913 Introduce path-mode CLI option (keradus)
* feature #1949 Added DeclareStrictTypesFixer, introduce options for HeaderCommentFixer (Seldaek, SpacePossum, keradus)
* feature #1955 Introduce CT_ARRAY_INDEX_CURLY_BRACE_OPEN and CT_ARRAY_INDEX_CURLY_BRACE_CLOSE (keradus)
* feature #1958 Added NormalizeIndexBraceFixer (keradus)
* feature #2069 Add semicolon after instruction fixer (SpacePossum)
* feature #2089 Add `no_spaces_around_offset` fixer (phansys)
* feature #2179 BinaryOperatorSpacesFixer - add (un)align configuration options (SpacePossum)
* feature #2192 Add PowToExponentiationFixer (SpacePossum, keradus)
* feature #2207 Added ReturnTypeDeclarationFixer (keradus)
* feature #2213 VisibilityRequiredFixer - Add support for class const visibility added in PHP7.1. (SpacePossum)
* feature #2221 Add support for user-defined whitespaces (keradus)
* feature #2244 Config cleanup (keradus, SpacePossum)
* feature #2247 PhpdocAnnotationWithoutDotFixer - support more cases (keradus)
* feature #2289 Add PhpdocAddMissingParamAnnotationFixer (keradus)
* feature #2331 Add DescribeCommand (keradus, SpacePossum)
* feature #2332 New colours of diff on console (keradus)
* feature #829 add support for .php_cs.dist file (keradus)
* feature #998 MethodArgumentSpaceFixer - enhance, now only one space after comma (trilopin, keradus)
* minor #1007 Simplify Transformers (keradus)
* minor #1050 Make Config's setDir() fluent like the rest of methods (gonzaloserrano)
* minor #1062 Added NamespaceOperatorTransformer (gharlan)
* minor #1078 Exit status should be 0 if there are no errors (gharlan)
* minor #1101 CS: fix project itself (localheinz)
* minor #1102 Enhancement: List errors occurred before, during and after fixing (localheinz)
* minor #1105 Token::isStructureAlternativeEnd - remove unused method (keradus)
* minor #1106 readme grooming (SpacePossum, keradus)
* minor #1115 Fixer - simplify flow (keradus)
* minor #1118 Process output refactor (SpacePossum)
* minor #1132 Linter - public methods should be first (keradus)
* minor #1134 Token::isWhitespace - simplify interface (keradus)
* minor #1140 FixerInterface - check if fixer should be applied by isCandidate method (keradus)
* minor #1146 Linter - detect executable (keradus)
* minor #1156 deleted old ConfigurationResolver class (keradus)
* minor #1160 Grammar fix to README (Falkirks)
* minor #1174 DefaultFinder - boost performance by not filtering when files array is empty (keradus)
* minor #1179 Exit with non-zero if invalid files were detected prior to fixing (localheinz)
* minor #1186 Finder - do not search for .xml and .yml files (keradus)
* minor #1206 BracesFixer::getClassyTokens - remove duplicated method (keradus)
* minor #1222 Made fixers final (GrahamCampbell)
* minor #1229 Tokens - Fix PHPDoc (SpacePossum)
* minor #1241 More details on exceptions. (SpacePossum)
* minor #1263 Made internal classes final (GrahamCampbell)
* minor #1272 Readme - Add spaces around PHP-CS-Fixer headers (Soullivaneuh)
* minor #1283 Error - Fixed type phpdoc (GrahamCampbell)
* minor #1284 Token - Fix PHPDoc (SpacePossum)
* minor #1314 Added missing internal annotations (keradus)
* minor #1329 Psr0Fixer - move to contrib level (gharlan)
* minor #1340 Clean ups (SpacePossum)
* minor #1341 Linter - throw exception when write fails (SpacePossum)
* minor #1348 Linter - Prefer error output when throwing a linting exception (GrahamCampbell)
* minor #1350 Add "phpt" as a valid extension (henriquemoody)
* minor #1376 Add time and memory to XML report (junichi11)
* minor #1387 Made all test classes final (keradus)
* minor #1388 Made all tests internal (keradus)
* minor #1390 Added ProjectCodeTest that tests if all classes inside tests are internal and final or abstract (keradus)
* minor #1391 Fixer::getLevelAsString is no longer static (keradus)
* minor #1392 Add report to XML report as the root node (junichi11)
* minor #1394 Stop mixing level from config file and fixers from CLI arg when one of fixers has dash (keradus)
* minor #1426 MethodSeparationFixer - Fix spacing around comments (SpacePossum, keradus)
* minor #1432 Fixer check on factory (Soullivaneuh)
* minor #1434 Add Test\AccessibleObject class (keradus)
* minor #1442 FixerFactory - disallow to register multiple fixers with same name (keradus)
* minor #1477 rename PhpdocShortDescriptionFixer into PhpdocSummaryFixer (keradus)
* minor #1481 Fix running the tests (keradus)
* minor #1482 move AbstractTransformerTestBase class outside Tests dir (keradus)
* minor #1530 Added missing internal annotation (GrahamCampbell)
* minor #1534 Clean ups (SpacePossum)
* minor #1536 Typo fix (fabpot)
* minor #1555 Fixed indentation in composer.json (GrahamCampbell)
* minor #1558 [2.0] Cleanup the tags property in the abstract phpdoc types fixer (GrahamCampbell)
* minor #1567 PrintToEchoFixer - add to symfony rule set (gharlan)
* minor #1607 performance improvement (gharlan)
* minor #1621 Switch to PSR-4 (keradus)
* minor #1631 Configuration exceptions exception cases on master. (SpacePossum)
* minor #1646 Remove non-default Config/Finder classes (keradus)
* minor #1648 Fixer - avoid extra calls to getFileRelativePathname (GrahamCampbell)
* minor #1649 Consider the php version when caching (GrahamCampbell)
* minor #1652 Rename namespace "Symfony\CS" to "PhpCsFixer" (gharlan)
* minor #1666 new Runner, ProcessOutputInterface, DifferInterface and ResultInterface (keradus)
* minor #1674 Config - add addCustomFixers method (PedroTroller)
* minor #1677 Enhance tests (keradus)
* minor #1695 Rename Fixers (keradus)
* minor #1702 Upgrade guide (keradus)
* minor #1707 ExtraEmptyLinesFixer - fix configure docs (keradus)
* minor #1712 NoExtraConsecutiveBlankLinesFixer - Remove blankline after curly brace open (SpacePossum)
* minor #1718 CLI: rename --config-file argument (keradus)
* minor #1722 Renamed not_operators_with_space to not_operator_with_space (GrahamCampbell)
* minor #1728 PhpdocNoSimplifiedNullReturnFixer - rename back to PhpdocNoEmptyReturnFixer (keradus)
* minor #1729 Renamed whitespacy_lines to no_whitespace_in_blank_lines (GrahamCampbell)
* minor #1731 FixCommand - value for config option is required (keradus)
* minor #1732 move fixer classes from level subdirs to thematic subdirs (gharlan, keradus)
* minor #1733 ConfigurationResolver - look for .php_cs file in cwd as well (keradus)
* minor #1737 RuleSet/FixerFactory - sort arrays content (keradus)
* minor #1751 FixerInterface::configure - method should always override configuration, not patch it (keradus)
* minor #1752 Remove unused code (keradus)
* minor #1756 Finder - clean up code (keradus)
* minor #1757 Psr0Fixer - change way of configuring the fixer (keradus)
* minor #1762 Remove ConfigInterface::getDir, ConfigInterface::setDir, Finder::setDir and whole FinderInterface (keradus)
* minor #1764 Remove ConfigAwareInterface (keradus)
* minor #1780 AbstractFixer - throw error on configuring non-configurable Fixer (keradus)
* minor #1782 rename fixers (gharlan)
* minor #1815 NoSpacesInsideParenthesisFixer - simplify implementation (keradus)
* minor #1821 Ensure that PhpUnitDedicateAssertFixer runs after NoAliasFunctionsFixer, clean up NoEmptyCommentFixer (SpacePossum)
* minor #1824 Reporting extracted to separate classes (ekho, keradus, SpacePossum)
* minor #1826 Fixer - remove measuring fixing time per file (keradus)
* minor #1843 FileFilterIterator - add missing import (GrahamCampbell)
* minor #1845 FileCacheManager - Allow linting to determine the cache state too (GrahamCampbell)
* minor #1846 FileFilterIterator - Corrected an iterator typehint (GrahamCampbell)
* minor #1848 DocBlock - Remove some old unused phpdoc tags (GrahamCampbell)
* minor #1856 NoDuplicateSemicolonsFixer - Remove overcomplete fixer (SpacePossum)
* minor #1861 Fix: Ofsset should be Offset (localheinz)
* minor #1867 Print non-report output to stdErr (SpacePossum, keradus)
* minor #1873 Enhancement: Show path to cache file if it exists (localheinz)
* minor #1875 renamed Composer package (fabpot)
* minor #1882 Runner - Handle throwables too (GrahamCampbell)
* minor #1886 PhpdocScalarFixer - Fix lowercase str to string too (GrahamCampbell)
* minor #1940 README.rst - update CI example (keradus)
* minor #1947 SCA, CS, add more tests (SpacePossum, keradus)
* minor #1954 tests - stop using deprecated method (sebastianbergmann)
* minor #1962 TextDiffTest - tests should not produce cache file (keradus)
* minor #1973 Introduce fast PHP7 based linter (keradus)
* minor #1999 Runner - No need to determine relative file name twice (localheinz)
* minor #2002 FileCacheManagerTest - Adjust name of test and variable (localheinz)
* minor #2010 NoExtraConsecutiveBlankLinesFixer - SF rule set, add 'extra' (SpacePossum)
* minor #2013 no_whitespace_in_blank_lines -> no_whitespace_in_blank_line (SpacePossum)
* minor #2024 AbstractFixerTestCase - check if there is no duplicated Token instance inside Tokens collection (keradus)
* minor #2031 COOKBOOK-FIXERS.md - update calling doTest method (keradus)
* minor #2032 code grooming (keradus)
* minor #2068 Code grooming (keradus)
* minor #2073 DeclareStrictTypesFixer - Remove fix CS fix logic from fixer. (SpacePossum)
* minor #2088 TokenizerLintingResult - expose line number of parsing error (keradus)
* minor #2093 Tokens - add block type BLOCK_TYPE_ARRAY_INDEX_CURLY_BRACE (SpacePossum)
* minor #2095 Transformers - add required PHP version (keradus)
* minor #2096 Introduce CT for PHP7 (keradus)
* minor #2119 Create @Symfony:risky ruleset (keradus)
* minor #2163 ClassKeywordRemoveFixerTest - Fix tests (SpacePossum)
* minor #2180 FixCommand - don't refer to renamed rules (keradus)
* minor #2181 Disallow to disable linter (keradus)
* minor #2194 semicolon_after_instruction,no_unneeded_control_parentheses prio issue (SpacePossum)
* minor #2199 make fixers less risky (SpacePossum)
* minor #2206 Add PHP70Migration ruleset (keradus)
* minor #2217 SelfUpdateCommand - Print version of update fixer (SpacePossum)
* minor #2223 update integration test format (keradus)
* minor #2227 Stop polluting global namespace with CT (keradus)
* minor #2237 DX: extend integration tests for PSR2 and Symfony rulesets (keradus)
* minor #2240 Make some objects immutable (keradus)
* minor #2251 ProtectedToPrivateFixer - fix priority, fix comments with new fixer names (SpacePossum)
* minor #2252 ClassDefinitionFixer - Set configuration of the fixer in the RuleSet of SF. (SpacePossum)
* minor #2257 extend Symfony_whitespaces itest (keradus)
* minor #2258 README.rst - indicate configurable rules (keradus)
* minor #2267 RuleSet - validate set (keradus)
* minor #2268 Use strict parameters for PHP functions (keradus)
* minor #2273 fixed typo (fabpot)
* minor #2274 ShortArraySyntaxFixer/LongArraySyntaxFixer - Merge conflicting fixers (SpacePossum)
* minor #2275 Clean ups (SpacePossum)
* minor #2278 Concat*Fixer - unify concat fixers (SpacePossum, keradus)
* minor #2279 Use Prophecy (keradus)
* minor #2284 Code grooming (SpacePossum)
* minor #2285 IntegrationCase is now aware about RuleSet but not Fixers (keradus, SpacePossum)
* minor #2286 Phpdoc*Fixer - unify rename fixers (SpacePossum, keradus)
* minor #2288 FixerInterface::configure(null) reset fixer to use default configuration (keradus)
* minor #2291 Make fixers ready to use directly after creation (keradus)
* minor #2295 Code grooming (keradus)
* minor #2296 ProjectCodeTest - make test part of regular testsuite, not standalone one (keradus)
* minor #2298 ConfigurationResolver - grooming (SpacePossum)
* minor #2300 Simplify rule set (SpacePossum, keradus)
* minor #2306 DeclareStrictTypesFixer - do not move tokens (SpacePossum)
* minor #2312 RuleSet - sort rules (localheinz)
* minor #2313 DX: provide doctyping for tests (keradus)
* minor #2317 Add utests (keradus)
* minor #2318 *TestCase - Reduce visibility of setUp() (localheinz)
* minor #2319 Code grooming (keradus)
* minor #2322 DX: use whitemessy aware assertion (keradus)
* minor #2324 Echo|Print*Fixer - unify printing fixers (SpacePossum, keradus)
* minor #2337 Normalize rule naming (keradus)
* minor #2338 Drop hacks for unsupported HHVM (keradus)
* minor #2339 Add some Fixer descriptions (SpacePossum, keradus)
* minor #2343 PowToExponentiationFixer - allow to run on 5.6.0 as well (keradus)
* minor #767 Add @internal tag (keradus)
* minor #807 Tokens::isMethodNameIsMagic - remove unused method (keradus)
* minor #809 Split Tokens into Tokens and TokensAnalyzer (keradus)
* minor #844 Renamed phpdoc_params to phpdoc_align (GrahamCampbell)
* minor #854 Change default level to PSR2 (keradus)
* minor #873 Config - using cache by default (keradus)
* minor #902 change FixerInterface (keradus)
* minor #911 remove Token::$line (keradus)
* minor #914 All Transformer classes should be named with Transformer as suffix (keradus)
* minor #915 add UseTransformer (keradus)
* minor #916 add ArraySquareBraceTransformer (keradus)
* minor #917 clean up Transformer tests (keradus)
* minor #919 CurlyBraceTransformer - one transformer to handle all curly braces transformations (keradus)
* minor #928 remove Token::getLine (keradus)
* minor #929 add WhitespacyCommentTransformer (keradus)
* minor #937 fix docs/typehinting in few classes (keradus)
* minor #958 FileCacheManager - remove code for BC support (keradus)
* minor #979 Improve Tokens::clearEmptyTokens performance (keradus)
* minor #981 Tokens - code grooming (keradus)
* minor #988 Fixers - no need to search for tokens of given kind in extra loop (keradus)
* minor #989 No need for loop in Token::equals (keradus)

Changelog for v1.13.3
---------------------

* minor #3042 Update gitter address (keradus)

Changelog for v1.13.2
---------------------

* minor #2946 Detect extra old installations (keradus)

Changelog for v1.13.1
---------------------

* minor #2342 Application - adjust test to not depend on symfony/console version (keradus)
* minor #2344 AppVeyor: enforce PHP version (keradus)

Changelog for v1.13.0
---------------------

* bug #2303 ClassDefinitionFixer - Anonymous classes fixing (SpacePossum)
* feature #2208 Added fixer for PHPUnit's @expectedException annotation (ro0NL)
* feature #2249 Added ProtectedToPrivateFixer (Slamdunk, SpacePossum)
* feature #2264 SelfUpdateCommand - Do not update to next major version by default (SpacePossum)
* feature #2328 ClassDefinitionFixer - Anonymous classes format by PSR12 (SpacePossum)
* feature #2333 PhpUnitFqcnAnnotationFixer - support more annotations (keradus)
* minor #2256 EmptyReturnFixer - it's now risky fixer due to null vs void (keradus)
* minor #2281 Add issue template (SpacePossum)
* minor #2307 Update .editorconfig (SpacePossum)
* minor #2310 CI: update AppVeyor to use newest PHP, silence the composer (keradus)
* minor #2315 Token - Deprecate getLine() (SpacePossum)
* minor #2320 Clear up status code on 1.x (SpacePossum)

Changelog for v1.12.4
---------------------

* bug #2235 OrderedImportsFixer - PHP 7 group imports support (SpacePossum)
* minor #2276 Tokens cleanup (keradus)
* minor #2277 Remove trailing spaces (keradus)
* minor #2294 Improve Travis configuration (keradus)
* minor #2297 Use phpdbg instead of xdebug (keradus)
* minor #2299 Travis: proper xdebug disabling (keradus)
* minor #2301 Travis: update platform adjusting (keradus)

Changelog for v1.12.3
---------------------

* bug #2155 ClassDefinitionFixer - overhaul (SpacePossum)
* bug #2187 MultipleUseFixer - Fix handling comments (SpacePossum)
* bug #2209 LinefeedFixer - Fix in a safe way (SpacePossum)
* bug #2228 NoEmptyLinesAfterPhpdocs, SingleBlankLineBeforeNamespace - Fix priority (SpacePossum)
* bug #2230 FunctionDeclarationFixer - Fix T_USE case (SpacePossum)
* bug #2232 Add a test for style of varaible decalration : var (daiglej)
* bug #2246 Fix itest requirements (keradus)
* minor #2238 .gitattributes - specified line endings (keradus)
* minor #2239 IntegrationCase - no longer internal (keradus)

Changelog for v1.12.2
---------------------

* bug #2191 PhpdocToCommentFixer - fix false positive for docblock of variable (keradus)
* bug #2193 UnneededControlParenthesesFixer - Fix more return cases. (SpacePossum)
* bug #2198 FileCacheManager - fix exception message and undefined property (j0k3r)
* minor #2170 Add dollar sign prefix for consistency (bcremer)
* minor #2190 .travis.yml - improve Travis speed for tags (keradus)
* minor #2196 PhpdocTypesFixer - support iterable type (GrahamCampbell)
* minor #2197 Update cookbook and readme (g105b, SpacePossum)
* minor #2203 README.rst - change formatting (ro0NL)
* minor #2204 FixCommand - clean unused var (keradus)
* minor #2205 Add integration test for iterable type (keradus)

Changelog for v1.12.1
---------------------

* bug #2144 Remove temporary files not deleted by destructor on failure (adawolfa)
* bug #2150 SelfUpdateCommand: resolve symlink (julienfalque)
* bug #2162 Fix issue where an exception is thrown if the cache file exists but is empty. (ikari7789)
* bug #2164 OperatorsSpacesFixer - Do not unalign double arrow and equals operators (SpacePossum)
* bug #2167 Rewrite file removal (keradus)
* minor #2152 Code cleanup (keradus)
* minor #2154 ShutdownFileRemoval - Fixed file header (GrahamCampbell)

Changelog for v1.12.0
---------------------

* feature #1493 Added MethodArgumentDefaultValueFixer (lmanzke)
* feature #1495 BracesFixer - added support for declare (EspadaV8)
* feature #1518 Added ClassDefinitionFixer (SpacePossum)
* feature #1543 [PSR-2] Switch case space fixer (Soullivaneuh)
* feature #1577 Added SpacesAfterSemicolonFixer (SpacePossum)
* feature #1580 Added HeredocToNowdocFixer (gharlan)
* feature #1581 UnneededControlParenthesesFixer - add "break" and "continue" support (gharlan)
* feature #1610 HashToSlashCommentFixer - Add (SpacePossum)
* feature #1613 ScalarCastFixer - LowerCaseCastFixer - Add (SpacePossum)
* feature #1659 NativeFunctionCasingFixer - Add (SpacePossum)
* feature #1661 SwitchCaseSemicolonToColonFixer - Add (SpacePossum)
* feature #1662 Added CombineConsecutiveUnsetsFixer (SpacePossum)
* feature #1671 Added NoEmptyStatementFixer (SpacePossum)
* feature #1705 Added NoUselessReturnFixer (SpacePossum, keradus)
* feature #1735 Added NoTrailingWhitespaceInCommentFixer (keradus)
* feature #1750 Add PhpdocSingleLineVarSpacingFixer (SpacePossum)
* feature #1765 Added NoEmptyPhpdocFixer (SpacePossum)
* feature #1773 Add NoUselessElseFixer (gharlan, SpacePossum)
* feature #1786 Added NoEmptyCommentFixer (SpacePossum)
* feature #1792 Add PhpUnitDedicateAssertFixer. (SpacePossum)
* feature #1894 BracesFixer - correctly fix indents of anonymous functions/classes (gharlan)
* feature #1985 Added ClassKeywordRemoveFixer (Soullivaneuh)
* feature #2020 Added PhpdocAnnotationWithoutDotFixer (keradus)
* feature #2067 Added DeclareEqualNormalizeFixer (keradus)
* feature #2078 Added SilencedDeprecationErrorFixer (HeahDude)
* feature #2082 Added MbStrFunctionsFixer (Slamdunk)
* bug #1657 SwitchCaseSpaceFixer - Fix spacing between 'case' and semicolon (SpacePossum)
* bug #1684 SpacesAfterSemicolonFixer - fix loops handling (SpacePossum, keradus)
* bug #1700 Fixer - resolve import conflict (keradus)
* bug #1836 NoUselessReturnFixer - Do not remove return if last statement in short if statement (SpacePossum)
* bug #1879 HeredocToNowdocFixer - Handle space in heredoc token (SpacePossum)
* bug #1896 FixCommand - Fix escaping of diff output (SpacePossum)
* bug #2034 IncludeFixer - fix support for close tag (SpacePossum)
* bug #2040 PhpdocAnnotationWithoutDotFixer - fix crash on odd character (keradus)
* bug #2041 DefaultFinder should implement FinderInterface (keradus)
* bug #2050 PhpdocAnnotationWithoutDotFixer - handle ellipsis (keradus)
* bug #2051 NativeFunctionCasingFixer - call to constructor with default NS of class with name matching native function name fix (SpacePossum)
* minor #1538 Added possibility to lint tests (gharlan)
* minor #1569 Add sample to get a specific version of the fixer (Soullivaneuh)
* minor #1571 Enhance integration tests (keradus)
* minor #1578 Code grooming (keradus)
* minor #1583 Travis - update matrix (keradus)
* minor #1585 Code grooming - Improve utests code coverage (SpacePossum)
* minor #1586 Add configuration exception classes and exit codes (SpacePossum)
* minor #1594 Fix invalid PHP code samples in utests  (SpacePossum)
* minor #1597 MethodArgumentDefaultValueFixer - refactoring and fix closures with "use" clause (gharlan)
* minor #1600 Added more integration tests (SpacePossum, keradus)
* minor #1605 integration tests - swap EXPECT and INPUT (optional INPUT) (gharlan)
* minor #1608 Travis - change matrix order for faster results (gharlan)
* minor #1609 CONTRIBUTING.md - Don't rebase always on master (SpacePossum)
* minor #1616 IncludeFixer - fix and test more cases (SpacePossum)
* minor #1622 AbstractIntegratationTest - fix linting test cases (gharlan)
* minor #1624 fix invalid code in test cases (gharlan)
* minor #1625 Travis - switch to trusty (keradus)
* minor #1627 FixCommand - fix output (keradus)
* minor #1630 Pass along the exception code. (SpacePossum)
* minor #1632 Php Inspections (EA Extended): SCA for 1.12 (kalessil)
* minor #1633 Fix CS for project itself (keradus)
* minor #1634 Backport some minor changes from 2.x line (keradus)
* minor #1637 update PHP Coveralls (keradus)
* minor #1639 Revert "Travis - set dist to trusty" (keradus)
* minor #1641 AppVeyor/Travis - use GITHUB_OAUTH_TOKEN (keradus)
* minor #1642 AppVeyor - install dev deps as well (keradus)
* minor #1647 Deprecate non-default Configs and Finders (keradus)
* minor #1654 Split output to stderr and stdout (SpacePossum)
* minor #1660 update phpunit version (gharlan)
* minor #1663 DuplicateSemicolonFixer - Remove duplicate semicolons even if there are comments between those (SpacePossum)
* minor #1664 IncludeFixer - Add missing test case (SpacePossum)
* minor #1668 Code grooming (keradus)
* minor #1669 NativeFunctionCasingFixer - move to Symfony level (keradus)
* minor #1670 Backport Finder and Config classes from 2.x line (keradus)
* minor #1682 ElseifFixer - handle comments (SpacePossum)
* minor #1689 AbstractIntegrationTest - no need for single-char group and docs grooming (keradus)
* minor #1690 Integration tests - allow to not check priority, introduce IntegrationCase (keradus)
* minor #1701 Fixer - Renamed import alias (GrahamCampbell)
* minor #1708 Update composer.json requirements (keradus)
* minor #1734 Travis: Turn on linting (keradus)
* minor #1736 Integration tests - don't check priority for tests using short_tag fixer (keradus)
* minor #1739 NoTrailingWhitespaceInCommentFixer - move to PSR2 level (keradus)
* minor #1763 Deprecate ConfigInterface::getDir, ConfigInterface::setDir, Finder::setDir (keradus)
* minor #1777 NoTrailingWhitespaceInCommentFixer - fix parent class (keradus)
* minor #1816 PhpUnitDedicateAssertFixer - configuration is not required anymore (keradus)
* minor #1849 DocBlock - The category tag should be together with package (GrahamCampbell)
* minor #1870 Update README.rst (glensc)
* minor #1880 FixCommand - fix stdErr detection (SpacePossum)
* minor #1881 NoEmptyStatementFixer - handle anonymous classes correctly (gharlan)
* minor #1906 .php_cs - use no_useless_else rule (keradus)
* minor #1915 NoEmptyComment - move to Symfony level (SpacePossum)
* minor #1917 BracesFixer - fixed comment handling (gharlan)
* minor #1919 EmptyReturnFixer - move fixer outside of Symfony level (keradus)
* minor #2036 OrderedUseFixer - adjust tests (keradus)
* minor #2056 Travis - run nightly PHP (keradus)
* minor #2061 UnusedUseFixer and LineAfterNamespace - add new integration test (keradus)
* minor #2097 Add lambda tests for 7.0 and 7.1 (SpacePossum)
* minor #2111 .travis.yml - rename PHP 7.1 env (keradus)
* minor #2112 Fix 1.12 line (keradus)
* minor #2118 SilencedDeprecationErrorFixer - adjust level (keradus)
* minor #2132 composer.json - rename package name (keradus)
* minor #2133 Apply ordered_class_elements rule (keradus)
* minor #2138 composer.json - disallow to run on PHP 7.2+ (keradus)

Changelog for v1.11.8
---------------------

* bug #2143 ReadmeCommand - fix running command on phar file (keradus)
* minor #2129 Add .gitattributes to remove unneeded files (Slamdunk)
* minor #2141 Move phar building to PHP 5.6 job as newest box.phar is no longer working on 5.3 (keradus)

Changelog for v1.11.7
---------------------

* bug #2108 ShortArraySyntaxFixer, TernarySpacesFixer, UnalignEqualsFixer - fix priority bug (SpacePossum)
* bug #2092 ConcatWithoutSpacesFixer, OperatorsSpacesFixer - fix too many spaces, fix incorrect fixing of lines with comments (SpacePossum)

Changelog for v1.11.6
---------------------

* bug #2086 Braces - fix bug with comment in method prototype (keradus)
* bug #2077 SingleLineAfterImportsFixer - Do not remove lines between use cases (SpacePossum)
* bug #2079 TernarySpacesFixer - Remove multiple spaces (SpacePossum)
* bug #2087 Fixer - handle PHP7 Errors as well (keradus)
* bug #2072 LowercaseKeywordsFixer - handle CT_CLASS_CONSTANT (tgabi333)
* bug #2066 LineAfterNamespaceFixer - Handle close tag (SpacePossum)
* bug #2057 LineAfterNamespaceFixer - adding too much extra lines where namespace is last statement (keradus)
* bug #2059 OperatorsSpacesFixer - handle declare statement (keradus)
* bug #2060 UnusedUseFixer - fix handling whitespaces around removed import (keradus)
* minor #2071 ShortEchoTagFixer - allow to run tests on PHP 5.3 (keradus)

Changelog for v1.11.5
---------------------

* bug #2012 Properly build phar file for lowest supported PHP version (keradus)
* bug #2037 BracesFixer - add support for anonymous classes (keradus)
* bug #1989 Add support for PHP 7 namespaces (SpacePossum)
* bug #2019 Fixing newlines added after curly brace string index access (jaydiablo)
* bug #1840 [Bug] BracesFixer - Do add a line before close tag (SpacePossum)
* bug #1994 EchoToPrintFixer - Fix T_OPEN_TAG_WITH_ECHO on hhvm (keradus)
* bug #1970 Tokens - handle semi-reserved PHP 7 keywords (keradus)
* minor #2017 PHP7 integration tests (keradus)
* minor #1465 Bump supported HHVM version, improve ShortEchoTagFixer on HHVM (keradus)
* minor #1995 Rely on own phpunit, not one from CI service (keradus)

Changelog for v1.11.4
---------------------

* bug #1956 SelfUpdateCommand - don't update to non-stable version (keradus)
* bug #1963 Fix not wanted unneeded_control_parentheses fixer for clone (Soullivaneuh)
* bug #1960 Fix invalid test cases (keradus)
* bug #1939 BracesFixer - fix handling comment around control token (keradus)
* minor #1927 NewWithBracesFixer - remove invalid testcase (keradus)

Changelog for v1.11.3
---------------------

* bug #1868 NewWithBracesFixer - fix handling more neighbor tokens (keradus)
* bug #1893 BracesFixer - handle comments inside lambda function prototype (keradus)
* bug #1806 SelfAccessorFixer - skip anonymous classes (gharlan)
* bug #1813 BlanklineAfterOpenTagFixer, NoBlankLinesBeforeNamespaceFixer - fix priority (SpacePossum)
* minor #1807 Tokens - simplify isLambda() (gharlan)

Changelog for v1.11.2
---------------------

* bug #1776 EofEndingFixer - new line on end line comment is allowed (Slamdunk)
* bug #1775 FileCacheManager - ignore corrupted serialized data (keradus)
* bug #1769 FunctionDeclarationFixer - fix more cases (keradus)
* bug #1747 Fixer - Fix ordering of fixer when both level and custom fixers are used (SpacePossum)
* bug #1744 Fixer - fix rare situation when file was visited twice (keradus)
* bug #1710 LowercaseConstantFixer - Fix comment cases. (SpacePossum)
* bug #1711 FunctioncallSpaceFixer - do not touch function declarations. (SpacePossum)
* minor #1798 LintManager - meaningful tempnam (Slamdunk)
* minor #1759 UniqueFileIterator - performance improvement (GrahamCampbell)
* minor #1745 appveyor - fix build (keradus)

Changelog for v1.11.1
---------------------

* bug #1680 NewWithBracesFixer - End tags  (SpacePossum)
* bug #1685 EmptyReturnFixer - Make independent of LowercaseConstantsFixer (SpacePossum)
* bug #1640 IntegrationTest - fix directory separator (keradus)
* bug #1595 ShortTagFixer - fix priority (keradus)
* bug #1576 SpacesBeforeSemicolonFixer - do not remove space before semicolon if that space is after a semicolon (SpacePossum)
* bug #1570 UnneededControlParenthesesFixer - fix test samples (keradus)
* minor #1653 Update license year (gharlan)

Changelog for v1.11
-------------------

* feature #1550 Added UnneededControlParenthesesFixer (Soullivaneuh, keradus)
* feature #1532 Added ShortBoolCastFixer (SpacePossum)
* feature #1523 Added EchoToPrintFixer and PrintToEchoFixer (Soullivaneuh)
* feature #1552 Warn when running with xdebug extension (SpacePossum)
* feature #1484 Added ArrayElementNoSpaceBeforeCommaFixer and ArrayElementWhiteSpaceAfterCommaFixer (amarczuk)
* feature #1449 PhpUnitConstructFixer - Fix more use cases (SpacePossum)
* feature #1382 Added PhpdocTypesFixer (GrahamCampbell)
* feature #1384 Add integration tests (SpacePossum)
* feature #1349 Added FunctionTypehintSpaceFixer (keradus)
* minor #1562 Fix invalid PHP code samples in utests (SpacePossum)
* minor #1560 Fixed project name in xdebug warning (gharlan)
* minor #1545 Fix invalid PHP code samples in utests (SpacePossum)
* minor #1554 Alphabetically sort entries in .gitignore (GrahamCampbell)
* minor #1527 Refactor the way types work on annotations (GrahamCampbell)
* minor #1546 Update coding guide in cookbook (keradus)
* minor #1526 Support more annotations when fixing types in phpdoc (GrahamCampbell)
* minor #1535 clean ups (SpacePossum)
* minor #1510 Added Symfony 3.0 support (Ener-Getick)
* minor #1520 Code grooming (keradus)
* minor #1515 Support property, property-read and property-write tags (GrahamCampbell)
* minor #1488 Added more inline phpdoc tests (GrahamCampbell)
* minor #1496 Add docblock to AbstractFixerTestBase::makeTest (lmanzke)
* minor #1467 PhpdocShortDescriptionFixer - add support for Japanese sentence-ending characters (fritz-c)
* minor #1453 remove calling array_keys in foreach loops (keradus)
* minor #1448 Code grooming (keradus)
* minor #1437 Added import fixers integration test (GrahamCampbell)
* minor #1433 phpunit.xml.dist - disable gc (keradus)
* minor #1427 Change arounded to surrounded in README.rst (36degrees)
* minor #1420 AlignDoubleArrowFixer, AlignEqualsFixer - add integration tests (keradus)
* minor #1423 appveyor.yml - do not cache C:\tools, its internal forAppVeyor (keradus)
* minor #1400 appveyor.yml - add file (keradus)
* minor #1396 AbstractPhpdocTypesFixer - instance method should be called on instance (keradus)
* minor #1395 code grooming (keradus)
* minor #1393 boost .travis.yml file (keradus)
* minor #1372 Don't allow PHP 7 to fail (GrahamCampbell)
* minor #1332 PhpUnitConstructFixer - fix more functions (keradus)
* minor #1339 CONTRIBUTING.md - add link to PSR-5 (keradus)
* minor #1346 Core grooming (SpacePossum)
* minor #1328 Tokens: added typehint for Iterator elements (gharlan)

Changelog for v1.10.3
---------------------

* bug #1559 WhitespacyLinesFixer - fix bug cases (SpacePossum, keradus)
* bug #1541 Psr0Fixer - Ignore filenames that are a reserved keyword or predefined constant (SpacePossum)
* bug #1537 Psr0Fixer - ignore file without name or with name started by digit (keradus)
* bug #1516 FixCommand - fix wrong message for dry-run (SpacePossum)
* bug #1486 ExtraEmptyLinesFixer - Remove extra lines after comment lines too (SpacePossum)
* bug #1503 Psr0Fixer - fix case with comments lying around (GrahamCampbell)
* bug #1474 PhpdocToCommentFixer - fix not properly fixing for block right after namespace (GrahamCampbell)
* bug #1478 BracesFixer - do not remove empty lines after class opening (keradus)
* bug #1468 Add missing ConfigInterface::getHideProgress() (Eugene Leonovich, rybakit)
* bug #1466 Fix bad indent on align double arrow fixer (Soullivaneuh, keradus)
* bug #1479 Tokens - fix detection of short array (keradus)

Changelog for v1.10.2
---------------------

* bug #1461 PhpUnitConstructFixer - fix case when first argument is an expression (keradus)
* bug #1460 AlignDoubleArrowFixer - fix handling of nested arrays (Soullivaneuh, keradus)

Changelog for v1.10.1
---------------------

* bug #1424 Fixed the import fixer priorities (GrahamCampbell)
* bug #1444 OrderedUseFixer - fix next case (keradus)
* bug #1441 BracesFixer - fix next case (keradus)
* bug #1422 AlignDoubleArrowFixer - fix handling of nested array (SpacePossum)
* bug #1425 PhpdocInlineTagFixerTest - fix case when met inalid PHPDoc (keradus)
* bug #1419 AlignDoubleArrowFixer, AlignEqualsFixer - fix priorities (keradus)
* bug #1415 BlanklineAfterOpenTagFixer - Do not add a line break if there is one already. (SpacePossum)
* bug #1410 PhpdocIndentFixer - Fix for open tag (SpacePossum)
* bug #1401 PhpdocVarWithoutNameFixer - Fixed the var without name fixer for inline docs (keradus, GrahamCampbell)
* bug #1369 Fix not well-formed XML output (junichi11)
* bug #1356 Psr0Fixer - disallow run on StdinFileInfo (keradus)

Changelog for v1.10
-------------------

* feature #1306 Added LogicalNotOperatorsWithSuccessorSpaceFixer (phansys)
* feature #1286 Added PhpUnitConstructFixer (keradus)
* feature #1316 Added PhpdocInlineTagFixer (SpacePossum, keradus)
* feature #1303 Added LogicalNotOperatorsWithSpacesFixer (phansys)
* feature #1279 Added PhpUnitStrictFixer (keradus)
* feature #1267 SingleQuoteFixer fix more use cases (SpacePossum)
* minor #1319 PhpUnitConstructFixer - fix performance and add to local .php_cs (keradus)
* minor #1280 Fix non-utf characters in docs (keradus)
* minor #1274 Cookbook - No change auto-test note (Soullivaneuh)

Changelog for v1.9.3
--------------------

* bug #1327 DocBlock\Tag - keep the case of tags (GrahamCampbell)

Changelog for v1.9.2
--------------------

* bug #1313 AlignDoubleArrowFixer - fix aligning after UTF8 chars (keradus)
* bug #1296 PhpdocScalarFixer - fix property annotation too (GrahamCampbell)
* bug #1299 WhitespacyLinesFixer - spaces on next valid line must not be fixed (Slamdunk)

Changelog for v1.9.1
--------------------

* bug #1288 TrimArraySpacesFixer - fix moving first comment (keradus)
* bug #1287 PhpdocParamsFixer - now works on any indentation level (keradus)
* bug #1278 Travis - fix PHP7 build (keradus)
* bug #1277 WhitespacyLinesFixer - stop changing non-whitespacy tokens (SpacePossum, SamBurns-awin, keradus)
* bug #1224 TrailingSpacesFixer - stop changing non-whitespacy tokens (SpacePossum, SamBurns-awin, keradus)
* bug #1266 FunctionCallSpaceFixer - better detection of function call (funivan)
* bug #1255 make sure some phpdoc fixers are run in right order (SpacePossum)

Changelog for v1.9
------------------

* feature #1097 Added ShortEchoTagFixer (vinkla)
* minor #1238 Fixed error handler to respect current error_reporting (JanJakes)
* minor #1234 Add class to exception message, use sprintf for exceptions (SpacePossum)
* minor #1210 set custom error handler for application run (keradus)
* minor #1214 Tokens::isMonolithicPhp - enhance performance (keradus)
* minor #1207 Update code documentation (keradus)
* minor #1202 Update IDE tool urls (keradus)
* minor #1195 PreIncrementFixer - move to Symfony level (gharlan)

Changelog for v1.8.1
--------------------

* bug #1193 EofEndingFixer - do not add an empty line at EOF if the PHP tags have been closed (SpacePossum)
* bug #1209 PhpdocParamsFixer - fix corrupting following custom annotation (keradus)
* bug #1205 BracesFixer - fix missing indentation fixes for class level (keradus)
* bug #1204 Tag - fix treating complex tag as simple PhpDoc tag (keradus)
* bug #1198 Tokens - fixed unary/binary operator check for type-hinted reference arguments (gharlan)
* bug #1201 Php4ConstructorFixer - fix invalid handling of subnamespaces (gharlan)
* minor #1221 Add more tests (SpacePossum)
* minor #1216 Tokens - Add unit test for array detection (SpacePossum)

Changelog for v1.8
------------------

* feature #1168 Added UnalignEqualsFixer (keradus)
* feature #1167 Added UnalignDoubleArrowFixer (keradus)
* bug #1169 ToolInfo - Fix way to find script dir (sp-ian-monge)
* minor #1181 composer.json - Update description (SpacePossum)
* minor #1180 create Tokens::overrideAt method (keradus)

Changelog for v1.7.1
--------------------

* bug #1165 BracesFixer - fix bug when comment is a first statement in control structure without braces (keradus)

Changelog for v1.7
------------------

* feature #1113 Added PreIncrementFixer (gharlan)
* feature #1144 Added PhpdocNoAccessFixer (GrahamCampbell)
* feature #1116 Added SelfAccessorFixer (gharlan)
* feature #1064 OperatorsSpacesFixer enhancements (gharlan)
* bug #1151 Prevent token collection corruption by fixers (stof, keradus)
* bug #1152 LintManager - fix handling of temporary file (keradus)
* bug #1139 NamespaceNoLeadingWhitespaceFixer - remove need for ctype extension (keradus)
* bug #1117 Tokens - fix iterator used with foreach by reference (keradus)
* minor #1148 code grooming (keradus)
* minor #1142 We are actually PSR-4, not PSR-0 (GrahamCampbell)
* minor #1131 Phpdocs and typos (SpacePossum)
* minor #1069 state min HHVM version (keradus)
* minor #1129 [DX] Help developers choose the right branch (SpacePossum)
* minor #1138 PhpClosingTagFixer - simplify flow, no need for loop (keradus)
* minor #1123 Reference mismatches fixed, SCA (kalessil)
* minor #1109 SingleQuoteFixer - made fixer more accurate (gharlan)
* minor #1110 code grooming (kalessil)

Changelog for v1.6.2
--------------------

* bug #1149 UnusedUseFixer - must be run before LineAfterNamespaceFixer, fix token collection corruption (keradus)
* minor #1145 AbstractLinesBeforeNamespaceFixer - fix docs for fixLinesBeforeNamespace (GrahamCampbell)

Changelog for v1.6.1
--------------------

* bug #1108 UnusedUseFixer - fix false positive when name is used as part of another namespace (gharlan)
* bug #1114 Fixed PhpdocParamsFixer with malformed doc block (gharlan)
* minor #1135 PhpdocTrimFixer - fix doc typo (localheinz)
* minor #1093 Travis - test lowest dependencies (boekkooi)

Changelog for v1.6
------------------

* feature #1089 Added NewlineAfterOpenTagFixer and BlanklineAfterOpenTagFixer (ceeram, keradus)
* feature #1090 Added TrimArraySpacesFixer (jaredh159, keradus)
* feature #1058 Added SingleQuoteFixer (gharlan)
* feature #1059 Added LongArraySyntaxFixer (gharlan)
* feature #1037 Added PhpdocScalarFixer (GrahamCampbell, keradus)
* feature #1028 Add ListCommasFixer (keradus)
* bug #1047 Utils::camelCaseToUnderscore - fix regexp (odin-delrio)
* minor #1073 ShortTagFixer enhancement (gharlan)
* minor #1079 Use LongArraySyntaxFixer for this repo (gharlan)
* minor #1070 Tokens::isMonolithicPhp - remove unused T_CLOSE_TAG search (keradus)
* minor #1049 OrderedUseFixer - grooming (keradus)

Changelog for v1.5.2
--------------------

* bug #1025 Fixer - ignore symlinks (kix)
* bug #1071 Psr0Fixer - fix bug for fixing file with long extension like .class.php (keradus)
* bug #1080 ShortTagFixer - fix false positive (gharlan)
* bug #1066 Php4ConstructorFixer - fix causing infinite recursion (mbeccati)
* bug #1056 VisibilityFixer - fix T_VAR with multiple props (localheinz, keradus)
* bug #1065 Php4ConstructorFixer - fix detection of a PHP4 parent constructor variant (mbeccati)
* bug #1060 Tokens::isShortArray: tests and bugfixes (gharlan)
* bug #1057 unused_use: fix false positive when name is only used as variable name (gharlan)

Changelog for v1.5.1
--------------------

* bug #1054 VisibilityFixer - fix var with array value assigned (localheinz, keradus)
* bug #1048 MultilineArrayTrailingCommaFixer, SingleArrayNoTrailingCommaFixer - using heredoc inside array not cousing to treat it as multiline array (keradus)
* bug #1043 PhpdocToCommentFixer - also check other control structures, besides foreach (ceeram)
* bug #1045 OrderedUseFixer - fix namespace order for trailing digits (rusitschka)
* bug #1035 PhpdocToCommentFixer - Add static as valid keyword for structural element (ceeram)
* bug #1020 BracesFixer - fix missing braces for nested if elseif else (malengrin)
* minor #1036 Added php7 to travis build (fonsecas72)
* minor #1026 Fix typo in ShortArraySyntaxFixer (tommygnr)
* minor #1024 code grooming (keradus)

Changelog for v1.5
------------------

* feature #887 Added More Phpdoc Fixers (GrahamCampbell, keradus)
* feature #1002 Add HeaderCommentFixer (ajgarlag)
* feature #974 Add EregToPregFixer (mbeccati)
* feature #970 Added Php4ConstructorFixer (mbeccati)
* feature #997 Add PhpdocToCommentFixer (ceeram, keradus)
* feature #932 Add NoBlankLinesAfterClassOpeningFixer (ceeram)
* feature #879 Add SingleBlankLineBeforeNamespaceFixer and NoBlankLinesBeforeNamespaceFixer (GrahamCampbell)
* feature #860 Add single_line_after_imports fixer (ceeram)
* minor #1014 Fixed a few file headers (GrahamCampbell)
* minor #1011 Fix HHVM as it works different than PHP (keradus)
* minor #1010 Fix invalid UTF-8 char in docs (ajgarlag)
* minor #1003 Fix header comment in php files (ajgarlag)
* minor #1005 Add Utils::calculateBitmask method (keradus)
* minor #973 Add Tokens::findSequence (mbeccati)
* minor #991 Longer explanation of how to use blacklist (bmitch, networkscraper)
* minor #972 Add case sensitive option to the tokenizer (mbeccati)
* minor #986 Add benchmark script (dericofilho)
* minor #985 Fix typo in COOKBOOK-FIXERS.md (mattleff)
* minor #978 Token - fix docs (keradus)
* minor #957 Fix Fixers methods order (GrahamCampbell)
* minor #944 Enable caching of composer downloads on Travis (stof)
* minor #941 EncodingFixer - enhance tests (keradus)
* minor #938 Psr0Fixer - remove unneded assignment (keradus)
* minor #936 FixerTest - test description consistency (keradus)
* minor #933 NoEmptyLinesAfterPhpdocsFixer - remove unneeded code, clarify description (ceeram)
* minor #934 StdinFileInfo::getFilename - Replace phpdoc with normal comment and add back empty line before return (ceeram)
* minor #927 Exclude the resources folder from coverage reports (GrahamCampbell)
* minor #926 Update Token::isGivenKind phpdoc (GrahamCampbell)
* minor #925 Improved AbstractFixerTestBase (GrahamCampbell)
* minor #922 AbstractFixerTestBase::makeTest - test if input is different than expected (keradus)
* minor #904 Refactoring Utils (GrahamCampbell)
* minor #901 Improved Readme Formatting (GrahamCampbell)
* minor #898 Tokens::getImportUseIndexes - simplify function (keradus)
* minor #897 phpunit.xml.dist - split testsuite (keradus)

Changelog for v1.4.2
--------------------

* bug #994 Fix detecting of short arrays (keradus)
* bug #995 DuplicateSemicolonFixer - ignore duplicated semicolons inside T_FOR (keradus)

Changelog for v1.4.1
--------------------

* bug #990 MultilineArrayTrailingCommaFixer - fix case with short array on return (keradus)
* bug #975 NoEmptyLinesAfterPhpdocsFixer - fix only when documentation documents sth (keradus)
* bug #976 PhpdocIndentFixer - fix error when there is a comment between docblock and next meaningful token (keradus, ceeram)

Changelog for v1.4
------------------

* feature #841 PhpdocParamsFixer: added aligning var/type annotations (GrahamCampbell)
* bug #965 Fix detection of lambda function that returns a reference (keradus)
* bug #962 PhpdocIndentFixer - fix bug when documentation is on the end of braces block (keradus)
* bug #961 Fixer - fix handling of empty file (keradus)
* bug #960 IncludeFixer - fix bug when include is part of condition statement (keradus)
* bug #954 AlignDoubleArrowFixer - fix new buggy case (keradus)
* bug #955 ParenthesisFixer - fix case with list call with trailing comma (keradus)
* bug #950 Tokens::isLambda - fix detection near comments (keradus)
* bug #951 Tokens::getImportUseIndexes - fix detection near comments (keradus)
* bug #949 Tokens::isShortArray - fix detection near comments (keradus)
* bug #948 NewWithBracesFixer - fix case with multidimensional array (keradus)
* bug #945 Skip files containing __halt_compiler() on PHP 5.3 (stof)
* bug #946 BracesFixer - fix typo in exception name (keradus)
* bug #940 Tokens::setCode - apply missing transformation (keradus)
* bug #908 BracesFixer - fix invalide inserting brace for control structure without brace and lambda inside of it (keradus)
* bug #903 NoEmptyLinesAfterPhpdocsFixer - fix bug with Windows style lines (GrahamCampbell)
* bug #895 [PSR-2] Preserve blank line after control structure opening brace (marcaube)
* bug #892 Fixed the double arrow multiline whitespace fixer (GrahamCampbell)
* bug #874 BracesFixer - fix bug of removing empty lines after class' opening { (ceeram)
* bug #868 BracesFixer - fix missing braces when statement is not followed by ; (keradus)
* bug #861 Updated PhpdocParamsFixer not to change line endings (keradus, GrahamCampbell)
* bug #837 FixCommand - stop corrupting xml/json format (keradus)
* bug #846 Made phpdoc_params run after phpdoc_indent (GrahamCampbell)
* bug #834 Correctly handle tab indentation (ceeram)
* bug #822 PhpdocIndentFixer - Ignore inline docblocks (ceeram)
* bug #813 MultilineArrayTrailingCommaFixer - do not move array end to new line (keradus)
* bug #817 LowercaseConstantsFixer - ignore class' constants TRUE/FALSE/NULL (keradus)
* bug #821 JoinFunctionFixer - stop changing declaration method name (ceeram)
* minor #963 State the minimum version of PHPUnit in CONTRIBUTING.md (SpacePossum)
* minor #943 Improve the cookbook to use relative links (stof)
* minor #921 Add changelog file (keradus)
* minor #909 BracesFixerTest - no \n line in \r\n test (keradus)
* minor #864 Added NoEmptyLinesAfterPhpdocsFixer (GrahamCampbell)
* minor #871 Added missing author (GrahamCampbell)
* minor #852 Fixed the coveralls version constraint (GrahamCampbell)
* minor #863 Tweaked testRetainsNewLineCharacters (GrahamCampbell)
* minor #849 Removed old alias (GrahamCampbell)
* minor #843 integer should be int (GrahamCampbell)
* minor #830 Remove whitespace before opening tag (ceeram)
* minor #835 code grooming (keradus)
* minor #828 PhpdocIndentFixerTest - code grooming (keradus)
* minor #827 UnusedUseFixer - code grooming (keradus)
* minor #825 improve code coverage (keradus)
* minor #810 improve code coverage (keradus)
* minor #811 ShortArraySyntaxFixer - remove not needed if statement (keradus)

Changelog for v1.3
------------------

* feature #790 Add docblock indent fixer (ceeram)
* feature #771 Add JoinFunctionFixer (keradus)
* bug #798 Add DynamicVarBrace Transformer for properly handling ${$foo} syntax (keradus)
* bug #796 LowercaseConstantsFixer - rewrite to handle new test cases (keradus)
* bug #789 T_CASE is not succeeded by parentheses (dericofilho)
* minor #814 Minor improvements to the phpdoc_params fixer (GrahamCampbell)
* minor #815 Minor fixes (GrahamCampbell)
* minor #782 Cookbook on how to make a new fixer (dericofilho)
* minor #806 Fix Tokens::detectBlockType call (keradus)
* minor #758 travis - disable sudo (keradus)
* minor #808 Tokens - remove commented code (keradus)
* minor #802 Address Sensiolabs Insight's warning of code cloning. (dericofilho)
* minor #803 README.rst - fix \` into \`\` (keradus)

Changelog for v1.2
------------------

* feature #706 Remove lead slash (dericofilho)
* feature #740 Add EmptyReturnFixer (GrahamCampbell)
* bug #775 PhpClosingTagFixer - fix case with T_OPEN_TAG_WITH_ECHO (keradus)
* bug #756 Fix broken cases for AlignDoubleArrowFixer (dericofilho)
* bug #763 MethodArgumentSpaceFixer - fix receiving data in list context with omitted values (keradus)
* bug #759 Fix Tokens::isArrayMultiLine (stof, keradus)
* bug #754 LowercaseKeywordsFixer - __HALT_COMPILER must not be lowercased (keradus)
* bug #753 Fix for double arrow misalignment in deeply nested arrays. (dericofilho)
* bug #752 OrderedUseFixer should be case-insensitive (rusitschka)
* minor #779 Fixed a docblock type (GrahamCampbell)
* minor #765 Typehinting in FileCacheManager, remove unused variable in Tokens (keradus)
* minor #764 SelfUpdateCommand - get local version only if remote version was successfully obtained (keradus)
* minor #761 aling => (keradus)
* minor #757 Some minor code simplify and extra test (keradus)
* minor #713 Download php-cs-fixer.phar without sudo (michaelsauter)
* minor #742 Various Minor Improvements (GrahamCampbell)

Changelog for v1.1
------------------

* feature #749 remove the --no-progress option (replaced by the standard -v) (fabpot, keradus)
* feature #728 AlignDoubleArrowFixer - standardize whitespace after => (keradus)
* feature #647 Add DoubleArrowMultilineWhitespacesFixer (dericofilho, keradus)
* bug #746 SpacesBeforeSemicolonFixerTest - fix bug with semicolon after comment (keradus)
* bug #741 Fix caching when composer is installed in custom path (cmodijk)
* bug #725 DuplicateSemicolonFixer - fix clearing whitespace after duplicated semicolon (keradus)
* bug #730 Cache busting when fixers list changes (Seldaek)
* bug #722 Fix lint for STDIN-files (ossinkine)
* bug #715 TrailingSpacesFixer - fix bug with french UTF-8 chars (keradus)
* bug #718 Fix package name for composer cache (Seldaek)
* bug #711 correct vendor name (keradus)
* minor #745 Show progress by default and allow to disable it (keradus)
* minor #731 Add a way to disable all default filters and really provide a whitelist (Seldaek)
* minor #737 Extract tool info into new class, self-update command works now only for PHAR version (keradus)
* minor #739 fix fabbot issues (keradus)
* minor #726 update CONTRIBUTING.md for installing dependencies (keradus)
* minor #736 Fix fabbot issues (GrahamCampbell)
* minor #727 Fixed typos (pborreli)
* minor #719 Add update instructions for composer and caching docs (Seldaek)

Changelog for v1.0
------------------

First stable release.
#!/bin/sh
set -eu

IFS='
'
CHANGED_FILES=$(git diff --name-only --diff-filter=ACMRTUXB "${COMMIT_RANGE}")
if ! echo "${CHANGED_FILES}" | grep -qE "^(\\.php_cs(\\.dist)?|composer\\.lock)$"; then EXTRA_ARGS=$(printf -- '--path-mode=intersection\n--\n%s' "${CHANGED_FILES}"); else EXTRA_ARGS=''; fi
vendor/bin/php-cs-fixer fix --config=.php_cs.dist -v --dry-run --stop-on-violation --using-cache=no ${EXTRA_ARGS}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tests\Test;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class IntegrationCaseFactory extends AbstractIntegrationCaseFactory
{
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tests\Test;

use PhpCsFixer\RuleSet;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class IntegrationCase
{
    private $config;

    /**
     * @var string
     */
    private $expectedCode;

    /**
     * @var string
     */
    private $fileName;

    /**
     * @var null|string
     */
    private $inputCode;

    /**
     * Env requirements (possible keys: php).
     *
     * @var array
     */
    private $requirements;

    /**
     * @var RuleSet
     */
    private $ruleset;

    /**
     * Settings how to perform the test (possible keys: none in base class, use as extension point for custom IntegrationTestCase).
     *
     * @var array
     */
    private $settings;

    /**
     * @var string
     */
    private $title;

    /**
     * @param string      $fileName
     * @param string      $title
     * @param string      $expectedCode
     * @param null|string $inputCode
     */
    public function __construct(
        $fileName,
        $title,
        array $settings,
        array $requirements,
        array $config,
        RuleSet $ruleset,
        $expectedCode,
        $inputCode
    ) {
        $this->fileName = $fileName;
        $this->title = $title;
        $this->settings = $settings;
        $this->requirements = $requirements;
        $this->config = $config;
        $this->ruleset = $ruleset;
        $this->expectedCode = $expectedCode;
        $this->inputCode = $inputCode;
    }

    public function hasInputCode()
    {
        return null !== $this->inputCode;
    }

    public function getConfig()
    {
        return $this->config;
    }

    public function getExpectedCode()
    {
        return $this->expectedCode;
    }

    public function getFileName()
    {
        return $this->fileName;
    }

    public function getInputCode()
    {
        return $this->inputCode;
    }

    /**
     * @param string $name
     *
     * @return mixed
     */
    public function getRequirement($name)
    {
        if (!\array_key_exists($name, $this->requirements)) {
            throw new \InvalidArgumentException(sprintf(
                'Unknown requirement key "%s", expected any of "%s".',
                $name,
                implode('","', array_keys($this->requirements))
            ));
        }

        return $this->requirements[$name];
    }

    public function getRequirements()
    {
        return $this->requirements;
    }

    public function getRuleset()
    {
        return $this->ruleset;
    }

    public function getSettings()
    {
        return $this->settings;
    }

    public function getTitle()
    {
        return $this->title;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tests\Test;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\AbstractProxyFixer;
use PhpCsFixer\Linter\CachingLinter;
use PhpCsFixer\Linter\Linter;
use PhpCsFixer\Linter\LinterInterface;
use PhpCsFixer\Tests\Test\Assert\AssertTokensTrait;
use PhpCsFixer\Tests\TestCase;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use Prophecy\Argument;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
abstract class AbstractFixerTestCase extends TestCase
{
    use AssertTokensTrait;
    use IsIdenticalConstraint;

    /**
     * @var null|LinterInterface
     */
    protected $linter;

    /**
     * @var null|AbstractFixer
     */
    protected $fixer;

    protected function setUp()
    {
        parent::setUp();

        $this->linter = $this->getLinter();
        $this->fixer = $this->createFixer();

        // @todo remove at 3.0 together with env var itself
        if (getenv('PHP_CS_FIXER_TEST_USE_LEGACY_TOKENIZER')) {
            Tokens::setLegacyMode(true);
        }
    }

    protected function tearDown()
    {
        parent::tearDown();

        $this->linter = null;
        $this->fixer = null;

        // @todo remove at 3.0
        Tokens::setLegacyMode(false);
    }

    final public function testIsRisky()
    {
        static::assertInternalType('bool', $this->fixer->isRisky(), sprintf('Return type for ::isRisky of "%s" is invalid.', $this->fixer->getName()));

        if ($this->fixer->isRisky()) {
            self::assertValidDescription($this->fixer->getName(), 'risky description', $this->fixer->getDefinition()->getRiskyDescription());
        } else {
            static::assertNull($this->fixer->getDefinition()->getRiskyDescription(), sprintf('[%s] Fixer is not risky so no description of it expected.', $this->fixer->getName()));
        }

        if ($this->fixer instanceof AbstractProxyFixer) {
            return;
        }

        $reflection = new \ReflectionMethod($this->fixer, 'isRisky');

        // If fixer is not risky then the method `isRisky` from `AbstractFixer` must be used
        static::assertSame(
            !$this->fixer->isRisky(),
            AbstractFixer::class === $reflection->getDeclaringClass()->getName()
        );
    }

    /**
     * @return AbstractFixer
     */
    protected function createFixer()
    {
        $fixerClassName = preg_replace('/^(PhpCsFixer)\\\\Tests(\\\\.+)Test$/', '$1$2', static::class);

        return new $fixerClassName();
    }

    /**
     * @param string $filename
     *
     * @return \SplFileInfo
     */
    protected function getTestFile($filename = __FILE__)
    {
        static $files = [];

        if (!isset($files[$filename])) {
            $files[$filename] = new \SplFileInfo($filename);
        }

        return $files[$filename];
    }

    /**
     * Tests if a fixer fixes a given string to match the expected result.
     *
     * It is used both if you want to test if something is fixed or if it is not touched by the fixer.
     * It also makes sure that the expected output does not change when run through the fixer. That means that you
     * do not need two test cases like [$expected] and [$expected, $input] (where $expected is the same in both cases)
     * as the latter covers both of them.
     * This method throws an exception if $expected and $input are equal to prevent test cases that accidentally do
     * not test anything.
     *
     * @param string            $expected The expected fixer output
     * @param null|string       $input    The fixer input, or null if it should intentionally be equal to the output
     * @param null|\SplFileInfo $file     The file to fix, or null if unneeded
     */
    protected function doTest($expected, $input = null, \SplFileInfo $file = null)
    {
        if ($expected === $input) {
            throw new \InvalidArgumentException('Input parameter must not be equal to expected parameter.');
        }

        $file = $file ?: $this->getTestFile();
        $fileIsSupported = $this->fixer->supports($file);

        if (null !== $input) {
            static::assertNull($this->lintSource($input));

            Tokens::clearCache();
            $tokens = Tokens::fromCode($input);

            if ($fileIsSupported) {
                static::assertTrue($this->fixer->isCandidate($tokens), 'Fixer must be a candidate for input code.');
                static::assertFalse($tokens->isChanged(), 'Fixer must not touch Tokens on candidate check.');
                $fixResult = $this->fixer->fix($file, $tokens);
                static::assertNull($fixResult, '->fix method must return null.');
            }

            static::assertThat(
                $tokens->generateCode(),
                self::createIsIdenticalStringConstraint($expected),
                'Code build on input code must match expected code.'
            );
            static::assertTrue($tokens->isChanged(), 'Tokens collection built on input code must be marked as changed after fixing.');

            $tokens->clearEmptyTokens();

            static::assertSame(
                \count($tokens),
                \count(array_unique(array_map(static function (Token $token) {
                    return spl_object_hash($token);
                }, $tokens->toArray()))),
                'Token items inside Tokens collection must be unique.'
            );

            Tokens::clearCache();
            $expectedTokens = Tokens::fromCode($expected);
            static::assertTokens($expectedTokens, $tokens);
        }

        static::assertNull($this->lintSource($expected));

        Tokens::clearCache();
        $tokens = Tokens::fromCode($expected);

        if ($fileIsSupported) {
            $fixResult = $this->fixer->fix($file, $tokens);
            static::assertNull($fixResult, '->fix method must return null.');
        }

        static::assertThat(
            $tokens->generateCode(),
            self::createIsIdenticalStringConstraint($expected),
            'Code build on expected code must not change.'
        );
        static::assertFalse($tokens->isChanged(), 'Tokens collection built on expected code must not be marked as changed after fixing.');
    }

    /**
     * @param string $source
     *
     * @return null|string
     */
    protected function lintSource($source)
    {
        try {
            $this->linter->lintSource($source)->check();
        } catch (\Exception $e) {
            return $e->getMessage()."\n\nSource:\n{$source}";
        }

        return null;
    }

    /**
     * @return LinterInterface
     */
    private function getLinter()
    {
        static $linter = null;

        if (null === $linter) {
            if (getenv('SKIP_LINT_TEST_CASES')) {
                $linterProphecy = $this->prophesize(\PhpCsFixer\Linter\LinterInterface::class);
                $linterProphecy
                    ->lintSource(Argument::type('string'))
                    ->willReturn($this->prophesize(\PhpCsFixer\Linter\LintingResultInterface::class)->reveal())
                ;

                $linter = $linterProphecy->reveal();
            } else {
                $linter = new CachingLinter(new Linter());
            }
        }

        return $linter;
    }

    /**
     * @param string $fixerName
     * @param string $descriptionType
     * @param mixed  $description
     */
    private static function assertValidDescription($fixerName, $descriptionType, $description)
    {
        static::assertInternalType('string', $description);
        static::assertRegExp('/^[A-Z`][^"]+\.$/', $description, sprintf('[%s] The %s must start with capital letter or a ` and end with dot.', $fixerName, $descriptionType));
        static::assertNotContains('phpdocs', $description, sprintf('[%s] `PHPDoc` must not be in the plural in %s.', $fixerName, $descriptionType), true);
        static::assertCorrectCasing($description, 'PHPDoc', sprintf('[%s] `PHPDoc` must be in correct casing in %s.', $fixerName, $descriptionType));
        static::assertCorrectCasing($description, 'PHPUnit', sprintf('[%s] `PHPUnit` must be in correct casing in %s.', $fixerName, $descriptionType));
        static::assertFalse(strpos($descriptionType, '``'), sprintf('[%s] The %s must no contain sequential backticks.', $fixerName, $descriptionType));
    }

    /**
     * @param string $needle
     * @param string $haystack
     * @param string $message
     */
    private static function assertCorrectCasing($needle, $haystack, $message)
    {
        static::assertSame(substr_count(strtolower($haystack), strtolower($needle)), substr_count($haystack, $needle), $message);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tests\Test;

use PhpCsFixer\Cache\NullCacheManager;
use PhpCsFixer\Differ\SebastianBergmannDiffer;
use PhpCsFixer\Error\Error;
use PhpCsFixer\Error\ErrorsManager;
use PhpCsFixer\FileRemoval;
use PhpCsFixer\Fixer\FixerInterface;
use PhpCsFixer\FixerFactory;
use PhpCsFixer\Linter\CachingLinter;
use PhpCsFixer\Linter\Linter;
use PhpCsFixer\Linter\LinterInterface;
use PhpCsFixer\Runner\Runner;
use PhpCsFixer\Tests\TestCase;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\WhitespacesFixerConfig;
use Prophecy\Argument;
use Symfony\Component\Filesystem\Exception\IOException;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\Finder\Finder;
use Symfony\Component\Finder\SplFileInfo;

/**
 * Integration test base class.
 *
 * This test searches for '.test' fixture files in the given directory.
 * Each fixture file will be parsed and tested against the expected result.
 *
 * Fixture files have the following format:
 *
 * --TEST--
 * Example test description.
 * --RULESET--
 * {"@PSR2": true, "strict": true}
 * --CONFIG--*
 * {"indent": "    ", "lineEnding": "\n"}
 * --SETTINGS--*
 * {"key": "value"} # optional extension point for custom IntegrationTestCase class
 * --EXPECT--
 * Expected code after fixing
 * --INPUT--*
 * Code to fix
 *
 *   * Section or any line in it may be omitted.
 *  ** PHP minimum version. Default to current running php version (no effect).
 *
 * @author SpacePossum
 *
 * @internal
 */
abstract class AbstractIntegrationTestCase extends TestCase
{
    use IsIdenticalConstraint;

    /**
     * @var null|LinterInterface
     */
    protected $linter;

    /**
     * @var null|FileRemoval
     */
    private static $fileRemoval;

    public static function setUpBeforeClass()
    {
        parent::setUpBeforeClass();

        $tmpFile = static::getTempFile();
        self::$fileRemoval = new FileRemoval();
        self::$fileRemoval->observe($tmpFile);

        if (!is_file($tmpFile)) {
            $dir = \dirname($tmpFile);

            if (!is_dir($dir)) {
                $fs = new Filesystem();
                $fs->mkdir($dir, 0766);
            }
        }
    }

    public static function tearDownAfterClass()
    {
        parent::tearDownAfterClass();

        $tmpFile = static::getTempFile();

        self::$fileRemoval->delete($tmpFile);
        self::$fileRemoval = null;
    }

    protected function setUp()
    {
        parent::setUp();

        $this->linter = $this->getLinter();

        // @todo remove at 3.0 together with env var itself
        if (getenv('PHP_CS_FIXER_TEST_USE_LEGACY_TOKENIZER')) {
            Tokens::setLegacyMode(true);
        }
    }

    protected function tearDown()
    {
        parent::tearDown();

        $this->linter = null;

        // @todo remove at 3.0
        Tokens::setLegacyMode(false);
    }

    /**
     * @dataProvider provideIntegrationCases
     *
     * @see doTest()
     */
    public function testIntegration(IntegrationCase $case)
    {
        $this->doTest($case);
    }

    /**
     * Creates test data by parsing '.test' files.
     *
     * @return IntegrationCase[][]
     */
    public function provideIntegrationCases()
    {
        $fixturesDir = realpath(static::getFixturesDir());
        if (!is_dir($fixturesDir)) {
            throw new \UnexpectedValueException(sprintf('Given fixture dir "%s" is not a directory.', $fixturesDir));
        }

        $factory = static::createIntegrationCaseFactory();
        $tests = [];

        /** @var SplFileInfo $file */
        foreach (Finder::create()->files()->in($fixturesDir) as $file) {
            if ('test' !== $file->getExtension()) {
                continue;
            }

            $tests[$file->getPathname()] = [
                $factory->create($file),
            ];
        }

        return $tests;
    }

    /**
     * @return IntegrationCaseFactoryInterface
     */
    protected static function createIntegrationCaseFactory()
    {
        return new IntegrationCaseFactory();
    }

    /**
     * Returns the full path to directory which contains the tests.
     *
     * @return string
     */
    protected static function getFixturesDir()
    {
        throw new \BadMethodCallException('Method "getFixturesDir" must be overridden by the extending class.');
    }

    /**
     * Returns the full path to the temporary file where the test will write to.
     *
     * @return string
     */
    protected static function getTempFile()
    {
        throw new \BadMethodCallException('Method "getTempFile" must be overridden by the extending class.');
    }

    /**
     * Applies the given fixers on the input and checks the result.
     *
     * It will write the input to a temp file. The file will be fixed by a Fixer instance
     * configured with the given fixers. The result is compared with the expected output.
     * It checks if no errors were reported during the fixing.
     */
    protected function doTest(IntegrationCase $case)
    {
        if (\PHP_VERSION_ID < $case->getRequirement('php')) {
            static::markTestSkipped(sprintf('PHP %d (or later) is required for "%s", current "%d".', $case->getRequirement('php'), $case->getFileName(), \PHP_VERSION_ID));
        }

        $input = $case->getInputCode();
        $expected = $case->getExpectedCode();

        $input = $case->hasInputCode() ? $input : $expected;

        $tmpFile = static::getTempFile();

        if (false === @file_put_contents($tmpFile, $input)) {
            throw new IOException(sprintf('Failed to write to tmp. file "%s".', $tmpFile));
        }

        $errorsManager = new ErrorsManager();
        $fixers = static::createFixers($case);
        $runner = new Runner(
            new \ArrayIterator([new \SplFileInfo($tmpFile)]),
            $fixers,
            new SebastianBergmannDiffer(),
            null,
            $errorsManager,
            $this->linter,
            false,
            new NullCacheManager()
        );

        Tokens::clearCache();
        $result = $runner->fix();
        $changed = array_pop($result);

        if (!$errorsManager->isEmpty()) {
            $errors = $errorsManager->getExceptionErrors();
            static::assertEmpty($errors, sprintf('Errors reported during fixing of file "%s": %s', $case->getFileName(), $this->implodeErrors($errors)));

            $errors = $errorsManager->getInvalidErrors();
            static::assertEmpty($errors, sprintf('Errors reported during linting before fixing file "%s": %s.', $case->getFileName(), $this->implodeErrors($errors)));

            $errors = $errorsManager->getLintErrors();
            static::assertEmpty($errors, sprintf('Errors reported during linting after fixing file "%s": %s.', $case->getFileName(), $this->implodeErrors($errors)));
        }

        if (!$case->hasInputCode()) {
            static::assertEmpty(
                $changed,
                sprintf(
                    "Expected no changes made to test \"%s\" in \"%s\".\nFixers applied:\n%s.\nDiff.:\n%s.",
                    $case->getTitle(),
                    $case->getFileName(),
                    null === $changed ? '[None]' : implode(',', $changed['appliedFixers']),
                    null === $changed ? '[None]' : $changed['diff']
                )
            );

            return;
        }

        static::assertNotEmpty($changed, sprintf('Expected changes made to test "%s" in "%s".', $case->getTitle(), $case->getFileName()));
        $fixedInputCode = file_get_contents($tmpFile);
        static::assertThat(
            $fixedInputCode,
            self::createIsIdenticalStringConstraint($expected),
            sprintf(
                "Expected changes do not match result for \"%s\" in \"%s\".\nFixers applied:\n%s.",
                $case->getTitle(),
                $case->getFileName(),
                null === $changed ? '[None]' : implode(',', $changed['appliedFixers'])
            )
        );

        if (1 < \count($fixers)) {
            $tmpFile = static::getTempFile();
            if (false === @file_put_contents($tmpFile, $input)) {
                throw new IOException(sprintf('Failed to write to tmp. file "%s".', $tmpFile));
            }

            $runner = new Runner(
                new \ArrayIterator([new \SplFileInfo($tmpFile)]),
                array_reverse($fixers),
                new SebastianBergmannDiffer(),
                null,
                $errorsManager,
                $this->linter,
                false,
                new NullCacheManager()
            );

            Tokens::clearCache();
            $runner->fix();
            $fixedInputCodeWithReversedFixers = file_get_contents($tmpFile);

            static::assertRevertedOrderFixing($case, $fixedInputCode, $fixedInputCodeWithReversedFixers);
        }

        // run the test again with the `expected` part, this should always stay the same
        $this->testIntegration(
            new IntegrationCase(
                $case->getFileName(),
                $case->getTitle().' "--EXPECT-- part run"',
                $case->getSettings(),
                $case->getRequirements(),
                $case->getConfig(),
                $case->getRuleset(),
                $case->getExpectedCode(),
                null
            )
        );
    }

    /**
     * @param string $fixedInputCode
     * @param string $fixedInputCodeWithReversedFixers
     */
    protected static function assertRevertedOrderFixing(IntegrationCase $case, $fixedInputCode, $fixedInputCodeWithReversedFixers)
    {
        // If output is different depends on rules order - we need to verify that the rules are ordered by priority.
        // If not, any order is valid.
        if ($fixedInputCode !== $fixedInputCodeWithReversedFixers) {
            static::assertGreaterThan(
                1,
                \count(array_unique(array_map(
                    static function (FixerInterface $fixer) {
                        return $fixer->getPriority();
                    },
                    static::createFixers($case)
                ))),
                sprintf(
                    'Rules priorities are not differential enough. If rules would be used in reverse order then final output would be different than the expected one. For that, different priorities must be set up for used rules to ensure stable order of them. In "%s".',
                    $case->getFileName()
                )
            );
        }
    }

    /**
     * @return FixerInterface[]
     */
    private static function createFixers(IntegrationCase $case)
    {
        $config = $case->getConfig();

        return FixerFactory::create()
            ->registerBuiltInFixers()
            ->useRuleSet($case->getRuleset())
            ->setWhitespacesConfig(
                new WhitespacesFixerConfig($config['indent'], $config['lineEnding'])
            )
            ->getFixers()
        ;
    }

    /**
     * @param Error[] $errors
     *
     * @return string
     */
    private function implodeErrors(array $errors)
    {
        $errorStr = '';
        foreach ($errors as $error) {
            $source = $error->getSource();
            $errorStr .= sprintf("%d: %s%s\n", $error->getType(), $error->getFilePath(), null === $source ? '' : ' '.$source->getMessage()."\n\n".$source->getTraceAsString());
        }

        return $errorStr;
    }

    /**
     * @return LinterInterface
     */
    private function getLinter()
    {
        static $linter = null;

        if (null === $linter) {
            if (getenv('SKIP_LINT_TEST_CASES')) {
                $linterProphecy = $this->prophesize(\PhpCsFixer\Linter\LinterInterface::class);
                $linterProphecy
                    ->lintSource(Argument::type('string'))
                    ->willReturn($this->prophesize(\PhpCsFixer\Linter\LintingResultInterface::class)->reveal())
                ;
                $linterProphecy
                    ->lintFile(Argument::type('string'))
                    ->willReturn($this->prophesize(\PhpCsFixer\Linter\LintingResultInterface::class)->reveal())
                ;
                $linterProphecy
                    ->isAsync()
                    ->willReturn(false)
                ;

                $linter = $linterProphecy->reveal();
            } else {
                $linter = new CachingLinter(new Linter());
            }
        }

        return $linter;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tests\Test\Assert;

use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
trait AssertTokensTrait
{
    private static function assertTokens(Tokens $expectedTokens, Tokens $inputTokens)
    {
        foreach ($expectedTokens as $index => $expectedToken) {
            $inputToken = $inputTokens[$index];

            static::assertTrue(
                $expectedToken->equals($inputToken),
                sprintf("The token at index %d must be:\n%s,\ngot:\n%s.", $index, $expectedToken->toJson(), $inputToken->toJson())
            );

            $expectedTokenKind = $expectedToken->isArray() ? $expectedToken->getId() : $expectedToken->getContent();
            static::assertTrue(
                $inputTokens->isTokenKindFound($expectedTokenKind),
                sprintf(
                    'The token kind %s (%s) must be found in tokens collection.',
                    $expectedTokenKind,
                    \is_string($expectedTokenKind) ? $expectedTokenKind : Token::getNameForId($expectedTokenKind)
                )
            );
        }

        static::assertSame($expectedTokens->count(), $inputTokens->count(), 'Both collections must have the same length.');
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tests\Test;

use PhpCsFixer\PhpunitConstraintIsIdenticalString\Constraint\IsIdenticalString;
use PHPUnit\Framework\Constraint\IsIdentical as PhpUnitIsIdentical;

/**
 * @internal
 *
 * @todo Remove me when usages will end up in dedicated package.
 */
trait IsIdenticalConstraint
{
    /**
     * @todo Remove me when this class will end up in dedicated package.
     *
     * @param string $expected
     *
     * @return IsIdenticalString|\PHPUnit_Framework_Constraint_IsIdentical|PhpUnitIsIdentical
     */
    private static function createIsIdenticalStringConstraint($expected)
    {
        $candidate = self::getIsIdenticalStringConstraintClassName();

        return new $candidate($expected);
    }

    /**
     * @return string
     */
    private static function getIsIdenticalStringConstraintClassName()
    {
        foreach ([
            IsIdenticalString::class,
            PhpUnitIsIdentical::class,
            'PHPUnit_Framework_Constraint_IsIdentical',
        ] as $className) {
            if (class_exists($className)) {
                return $className;
            }
        }

        throw new \RuntimeException('PHPUnit not installed?!');
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tests\Test;

use PhpCsFixer\RuleSet;
use Symfony\Component\Finder\SplFileInfo;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
abstract class AbstractIntegrationCaseFactory implements IntegrationCaseFactoryInterface
{
    /**
     * @return IntegrationCase
     */
    public function create(SplFileInfo $file)
    {
        try {
            if (!preg_match(
                '/^
                            --TEST--           \r?\n(?<title>          .*?)
                       \s   --RULESET--        \r?\n(?<ruleset>        .*?)
                    (?:\s   --CONFIG--         \r?\n(?<config>         .*?))?
                    (?:\s   --SETTINGS--       \r?\n(?<settings>       .*?))?
                    (?:\s   --REQUIREMENTS--   \r?\n(?<requirements>   .*?))?
                    (?:\s   --EXPECT--         \r?\n(?<expect>         .*?\r?\n*))?
                    (?:\s   --INPUT--          \r?\n(?<input>          .*))?
                $/sx',
                $file->getContents(),
                $match
            )) {
                throw new \InvalidArgumentException('File format is invalid.');
            }

            $match = array_merge(
                [
                    'config' => null,
                    'settings' => null,
                    'requirements' => null,
                    'expect' => null,
                    'input' => null,
                ],
                $match
            );

            return new IntegrationCase(
                $file->getRelativePathname(),
                $this->determineTitle($file, $match['title']),
                $this->determineSettings($file, $match['settings']),
                $this->determineRequirements($file, $match['requirements']),
                $this->determineConfig($file, $match['config']),
                $this->determineRuleset($file, $match['ruleset']),
                $this->determineExpectedCode($file, $match['expect']),
                $this->determineInputCode($file, $match['input'])
            );
        } catch (\InvalidArgumentException $e) {
            throw new \InvalidArgumentException(
                sprintf('%s Test file: "%s".', $e->getMessage(), $file->getRelativePathname()),
                $e->getCode(),
                $e
            );
        }
    }

    /**
     * Parses the '--CONFIG--' block of a '.test' file.
     *
     * @param string $config
     *
     * @return array
     */
    protected function determineConfig(SplFileInfo $file, $config)
    {
        $parsed = $this->parseJson($config, [
            'indent' => '    ',
            'lineEnding' => "\n",
        ]);

        if (!\is_string($parsed['indent'])) {
            throw new \InvalidArgumentException(sprintf(
                'Expected string value for "indent", got "%s".',
                \is_object($parsed['indent']) ? \get_class($parsed['indent']) : \gettype($parsed['indent']).'#'.$parsed['indent']
            ));
        }

        if (!\is_string($parsed['lineEnding'])) {
            throw new \InvalidArgumentException(sprintf(
                'Expected string value for "lineEnding", got "%s".',
                \is_object($parsed['lineEnding']) ? \get_class($parsed['lineEnding']) : \gettype($parsed['lineEnding']).'#'.$parsed['lineEnding']
            ));
        }

        return $parsed;
    }

    /**
     * Parses the '--REQUIREMENTS--' block of a '.test' file and determines requirements.
     *
     * @param string $config
     *
     * @return array
     */
    protected function determineRequirements(SplFileInfo $file, $config)
    {
        $parsed = $this->parseJson($config, [
            'php' => \PHP_VERSION_ID,
        ]);

        if (!\is_int($parsed['php'])) {
            throw new \InvalidArgumentException(sprintf(
                'Expected int value like 50509 for "php", got "%s".',
                \is_object($parsed['php']) ? \get_class($parsed['php']) : \gettype($parsed['php']).'#'.$parsed['php']
            ));
        }

        return $parsed;
    }

    /**
     * Parses the '--RULESET--' block of a '.test' file and determines what fixers should be used.
     *
     * @param string $config
     *
     * @return RuleSet
     */
    protected function determineRuleset(SplFileInfo $file, $config)
    {
        return new RuleSet($this->parseJson($config));
    }

    /**
     * Parses the '--TEST--' block of a '.test' file and determines title.
     *
     * @param string $config
     *
     * @return string
     */
    protected function determineTitle(SplFileInfo $file, $config)
    {
        return $config;
    }

    /**
     * Parses the '--SETTINGS--' block of a '.test' file and determines settings.
     *
     * @param string $config
     *
     * @return array
     */
    protected function determineSettings(SplFileInfo $file, $config)
    {
        $parsed = $this->parseJson($config, [
            'checkPriority' => true,
        ]);

        if (!\is_bool($parsed['checkPriority'])) {
            throw new \InvalidArgumentException(sprintf(
                'Expected bool value for "checkPriority", got "%s".',
                \is_object($parsed['checkPriority']) ? \get_class($parsed['checkPriority']) : \gettype($parsed['checkPriority']).'#'.$parsed['checkPriority']
            ));
        }

        return $parsed;
    }

    /**
     * @param null|string $code
     *
     * @return string
     */
    protected function determineExpectedCode(SplFileInfo $file, $code)
    {
        $code = $this->determineCode($file, $code, '-out.php');

        if (null === $code) {
            throw new \InvalidArgumentException('Missing expected code.');
        }

        return $code;
    }

    /**
     * @param null|string $code
     *
     * @return null|string
     */
    protected function determineInputCode(SplFileInfo $file, $code)
    {
        return $this->determineCode($file, $code, '-in.php');
    }

    /**
     * @param null|string $code
     * @param string      $suffix
     *
     * @return null|string
     */
    private function determineCode(SplFileInfo $file, $code, $suffix)
    {
        if (null !== $code) {
            return $code;
        }

        $candidateFile = new SplFileInfo($file->getPathname().$suffix, '', '');
        if ($candidateFile->isFile()) {
            return $candidateFile->getContents();
        }

        return null;
    }

    /**
     * @param null|string $encoded
     *
     * @return array
     */
    private function parseJson($encoded, array $template = null)
    {
        // content is optional if template is provided
        if (!$encoded && null !== $template) {
            $decoded = [];
        } else {
            $decoded = json_decode($encoded, true);

            if (JSON_ERROR_NONE !== json_last_error()) {
                throw new \InvalidArgumentException(sprintf('Malformed JSON: "%s", error: "%s".', $encoded, json_last_error_msg()));
            }
        }

        if (null !== $template) {
            $decoded = array_merge(
                $template,
                array_intersect_key(
                    $decoded,
                    array_flip(array_keys($template))
                )
            );
        }

        return $decoded;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tests\Test;

use Symfony\Component\Finder\SplFileInfo;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
interface IntegrationCaseFactoryInterface
{
    /**
     * @return IntegrationCase
     */
    public function create(SplFileInfo $file);
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tests\Test;

use Symfony\Component\Finder\SplFileInfo;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class InternalIntegrationCaseFactory extends AbstractIntegrationCaseFactory
{
    /**
     * {@inheritdoc}
     */
    protected function determineSettings(SplFileInfo $file, $config)
    {
        $parsed = parent::determineSettings($file, $config);

        $parsed['isExplicitPriorityCheck'] = \in_array('priority', explode(\DIRECTORY_SEPARATOR, $file->getRelativePathname()), true);

        return $parsed;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tests;

use PHPUnit\Framework\TestCase as BaseTestCase;
use PHPUnitGoodPractices\Traits\ExpectationViaCodeOverAnnotationTrait;
use PHPUnitGoodPractices\Traits\ExpectOverSetExceptionTrait;
use PHPUnitGoodPractices\Traits\IdentityOverEqualityTrait;
use PHPUnitGoodPractices\Traits\ProphecyOverMockObjectTrait;
use PHPUnitGoodPractices\Traits\ProphesizeOnlyInterfaceTrait;

if (trait_exists(ProphesizeOnlyInterfaceTrait::class)) {
    /**
     * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
     *
     * @internal
     */
    abstract class TestCase extends BaseTestCase
    {
        use ExpectationViaCodeOverAnnotationTrait;
        use ExpectOverSetExceptionTrait;
        use IdentityOverEqualityTrait;
        use ProphecyOverMockObjectTrait;
        use ProphesizeOnlyInterfaceTrait;
    }
} else {
    /**
     * Version without traits for cases when this class is used as a lib.
     *
     * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
     *
     * @internal
     *
     * @todo 3.0 To be removed when we clean up composer prod-autoloader from dev-packages.
     */
    abstract class TestCase extends BaseTestCase
    {
    }
}
# Contributions Are Welcome!

If you need any help, don't hesitate to ask the community on [Gitter](https://gitter.im/PHP-CS-Fixer/Lobby).

## Quick Guide

* [Fork](https://help.github.com/articles/fork-a-repo/) the repo.
* [Checkout](https://git-scm.com/docs/git-checkout) the branch you want to make changes on:
  * If you are fixing a bug or typo, improving tests or for any small tweak: the lowest branch where the changes can be applied. Once your Pull Request is accepted, the changes will get merged up to highest branches.
  * `master` in other cases (new feature, deprecation, or backwards compatibility breaking changes). Note that most of the time, `master` represents the next minor release of PHP CS Fixer, so Pull Requests that break backwards compatibility might be postponed.
* Install dependencies: `composer install`.
* Create a new branch, e.g. `feature-foo` or `bugfix-bar`.
* Make changes.
* If you are adding functionality or fixing a bug - add a test! Prefer adding new test cases over modifying existing ones.
* Make sure there is no trailing spaces in code: `./check_trailing_spaces.sh`.
* Regenerate README: `php php-cs-fixer readme > README.rst` (Windows `php.exe php-cs-fixer readme > README.rst`). Do not modify `README.rst` manually!
* Install dev tools: `dev-tools/install.sh`
* Run static analysis using PHPStan: `php -d memory_limit=256M dev-tools/vendor/bin/phpstan analyse`
* Check if tests pass: `vendor/bin/phpunit`.
* Fix project itself: `php php-cs-fixer fix`.

## Opening a [Pull Request](https://help.github.com/articles/about-pull-requests/)

You can do some things to increase the chance that your Pull Request is accepted the first time:

* Submit one Pull Request per fix or feature.
* If your changes are not up to date, [rebase](https://git-scm.com/docs/git-rebase) your branch onto the parent branch.
* Follow the conventions used in the project.
* Remember about tests and documentation.
* Don't bump version.

## Making New Fixers

There is a [cookbook](doc/COOKBOOK-FIXERS.md) with basic instructions on how to build a new fixer. Consider reading it
before opening a PR.

## Project's Standards

* [PSR-1: Basic Coding Standard](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-1-basic-coding-standard.md)
* [PSR-2: Coding Style Guide](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md)
* [PSR-4: Autoloading Standard](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-4-autoloader.md)
* [PSR-5: PHPDoc (draft)](https://github.com/phpDocumentor/fig-standards/blob/master/proposed/phpdoc.md)
* [Symfony Coding Standards](https://symfony.com/doc/current/contributing/code/standards.html)
<?xml version="1.0" encoding="UTF-8"?>
<!--

    Copyright 2016 LinkedIn Corp.

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

-->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="checkstyle" type="checkstyleType"/>
  <xs:complexType name="fileType">
    <xs:sequence>
      <xs:element type="errorType" name="error" maxOccurs="unbounded" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute type="xs:string" name="name" use="optional"/>
  </xs:complexType>
  <xs:complexType name="errorType">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute type="xs:string" name="line" use="optional"/>
        <xs:attribute type="xs:string" name="severity" use="optional"/>
        <xs:attribute type="xs:string" name="message" use="optional"/>
        <xs:attribute type="xs:string" name="source" use="optional"/>
        <xs:attribute type="xs:string" name="column" use="optional"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="checkstyleType">
    <xs:sequence>
      <xs:element type="fileType" name="file" maxOccurs="unbounded" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute type="xs:string" name="version"/>
  </xs:complexType>
</xs:schema>Cookbook - Making a new Fixer for PHP CS Fixer
==============================================

You want to make a new fixer to PHP CS Fixer and do not know how to
start. Follow this document and you will be able to do it.

## Background

In order to be able to create a new fixer, you need some background.
PHP CS Fixer is a transcompiler which takes valid PHP code and pretty
print valid PHP code. It does all transformations in multiple passes,
a.k.a., multi-pass compiler.

Therefore, a new fixer is meant to be ideally
[idempotent](https://en.wikipedia.org/wiki/Idempotence#Computer_science_meaning),
or at least atomic in its actions. More on this later.

All contributions go through a code review process. Do not feel
discouraged - it is meant only to give more people more chance to
contribute, and to detect bugs ([Linus'
Law](https://en.wikipedia.org/wiki/Linus%27s_Law)).

If possible, try to get acquainted with the public interface for the
[Tokens class](/src/Tokenizer/Tokens.php)
and [Token class](/src/Tokenizer/Token.php)
classes.

## Assumptions

* You are familiar with Test Driven Development.
* Forked FriendsOfPHP/PHP-CS-Fixer into your own GitHub Account.
* Cloned your forked repository locally.
* Installed the dependencies of PHP CS Fixer using [Composer](https://getcomposer.org/).
* You have read [`CONTRIBUTING.md`](/CONTRIBUTING.md).

## Step by step

For this step-by-step, we are going to create a simple fixer that
removes all comments of the code that are preceded by ';' (semicolon).

We are calling it `remove_comments` (code name), or,
`RemoveCommentsFixer` (class name).

### Step 1 - Creating files

Create a new file in `src/Fixer/Comment/RemoveCommentsFixer.php`.
Put this content inside:
```php
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Comment;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Your name <your@email.com>
 */
final class RemoveCommentsFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        // Return a definition of the fixer, it will be used in the README.rst.
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        // Check whether the collection is a candidate for fixing.
        // Has to be ultra cheap to execute.
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        // Add the fixing logic of the fixer here.
    }
}
```

Note how the class and file name match. Also keep in mind that all
fixers must implement `Fixer\FixerInterface`. In this case, the fixer is
inheriting from `AbstractFixer`, which fulfills the interface with some
default behavior.

Now let us create the test file at
`tests/Fixer/Comment/RemoveCommentsFixerTest.php`. Put this content inside:

```php
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tests\Fixer\Comment;

use PhpCsFixer\Tests\Test\AbstractFixerTestCase;

/**
 * @author Your name <your@email.com>
 *
 * @internal
 *
 * @covers \PhpCsFixer\Fixer\Comment\RemoveCommentsFixer
 */
final class RemoveCommentsFixerTest extends AbstractFixerTestCase
{
    /**
     * @param string      $expected
     * @param null|string $input
     *
     * @dataProvider provideFixCases
     */
    public function testFix($expected, $input = null)
    {
        $this->doTest($expected, $input);
    }

    public function provideFixCases()
    {
        return [];
    }
}
```
### Step 2 - Using tests to define fixers behavior

Now that the files are created, you can start writing test to define the
behavior of the fixer. You have to do it in two ways: first, ensuring
the fixer changes what it should be changing; second, ensuring that
fixer does not change what is not supposed to change. Thus:

#### Keeping things as they are:
`tests/Fixer/Comment/RemoveCommentsFixerTest.php`@provideFixCases:
```php
    ...
    public function provideFixCases()
    {
        return [
            ['<?php echo "This should not be changed";'], // Each sub-array is a test
        ];
    }
    ...
```

#### Ensuring things change:
`tests/Fixer/Comment/RemoveCommentsFixerTest.php`@provideFixCases:
```php
    ...
    public function provideFixCases()
    {
        return [
            [
                '<?php echo "This should be changed"; ', // This is expected output
                '<?php echo "This should be changed"; /* Comment */', // This is input
            ],
        ];
    }
    ...
```

Note that expected outputs are **always** tested alone to ensure your fixer will not change it.

We want to have a failing test to start with, so the test file now looks
like:
`tests/Fixer/Comment/RemoveCommentsFixerTest.php`
```php
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tests\Fixer\Comment;

use PhpCsFixer\Tests\Fixer\AbstractFixerTestBase;

/**
 * @author Your name <your@email.com>
 *
 * @internal
 */
final class RemoveCommentsFixerTest extends AbstractFixerTestBase
{
    /**
     * @param string      $expected
     * @param null|string $input
     *
     * @dataProvider provideFixCases
     */
    public function testFix($expected, $input = null)
    {
        $this->doTest($expected, $input);
    }

    public function provideFixCases()
    {
        return [
            [
               '<?php echo "This should be changed"; ', // This is expected output
               '<?php echo "This should be changed"; /* Comment */', // This is input
            ],
        ];
    }
}
```


### Step 3 - Implement your solution

You have defined the behavior of your fixer in tests. Now it is time to
implement it.

First, we need to create one method to describe what this fixer does:
`src/Fixer/Comment/RemoveCommentsFixer.php`:
```php
final class RemoveCommentsFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Removes all comments of the code that are preceded by ";" (semicolon).', // Trailing dot is important. We thrive to use English grammar properly.
            [
                new CodeSample(
                    '<?php echo 123; /* Comment */'
                ),
            ]
        );
    }
}
```
Next, we need to update the `README.rst`.
Fortunately, PHP CS Fixer can help you here.
Execute the following command in your command shell:

`$ php php-cs-fixer readme > README.rst`

Next, we must filter what type of tokens we want to fix. Here, we are interested in code that contains `T_COMMENT` tokens:
`src/Fixer/Comment/RemoveCommentsFixer.php`:
```php
final class RemoveCommentsFixer extends AbstractFixer
{
    ...

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_COMMENT);
    }
}
```

For now, let us just make a fixer that applies no modification:
`src/Fixer/Comment/RemoveCommentsFixer.php`:
```php
class RemoveCommentsFixer extends AbstractFixer
{
    ...

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        // no action
    }
}
```

Run `$ phpunit tests/Fixer/Comment/RemoveCommentsFixerTest.php`.
You are going to see that the tests fails.

### Break
Now we have pretty much a cradle to work with. A file with a failing
test, and the fixer, that for now does not do anything.

How do fixers work? In the PHP CS Fixer, they work by iterating through
pieces of codes (each being a Token), and inspecting what exists before
and after that bit and making a decision, usually:

 * Adding code.
 * Modifying code.
 * Deleting code.
 * Ignoring code.

In our case, we want to find all comments, and foreach (pun intended)
one of them check if they are preceded by a semicolon symbol.

Now you need to do some reading, because all these symbols obey a list
defined by the PHP compiler. It is the ["List of Parser
Tokens"](https://php.net/manual/en/tokens.php).

Internally, PHP CS Fixer transforms some of PHP native tokens into custom
tokens through the use of [Transfomers](/src/Tokenizer/Transformer),
they aim to help you reason about the changes you may want to do in the
fixers.

So we can get to move forward, humor me in believing that comments have
one symbol name: `T_COMMENT`.

### Step 3 - Implement your solution - continuation.

We do not want all symbols to be analysed. Only `T_COMMENT`. So let us
iterate the token(s) we are interested in.
`src/Fixer/Comment/RemoveCommentsFixer.php`:
```php
final class RemoveCommentsFixer extends AbstractFixer
{
    ...

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if (!$token->isGivenKind(T_COMMENT)) {
                continue;
            }

            // need to figure out what to do here!
        }
    }
}
```

OK, now for each `T_COMMENT`, all we need to do is check if the previous
token is a semicolon.
`src/Fixer/Comment/RemoveCommentsFixer.php`:
```php
final class RemoveCommentsFixer extends AbstractFixer
{
    ...

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if (!$token->isGivenKind(T_COMMENT)) {
                continue;
            }

            $prevTokenIndex = $tokens->getPrevMeaningfulToken($index);
            $prevToken = $tokens[$prevTokenIndex];

            if ($prevToken->equals(';')) {
                $tokens->clearAt($index);
            }
        }
    }
}
```

So the fixer in the end looks like this:
```php
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Comment;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Your name <your@email.com>
 */
final class RemoveCommentsFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Removes all comments of the code that are preceded by ";" (semicolon).', // Trailing dot is important. We thrive to use English grammar properly.
            [
                new CodeSample(
                    '<?php echo 123; /* Comment */'
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_COMMENT);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens) {
        foreach($tokens as $index => $token){
            if (!$token->isGivenKind(T_COMMENT)) {
                continue;
            }

            $prevTokenIndex = $tokens->getPrevMeaningfulToken($index);
            $prevToken = $tokens[$prevTokenIndex];

            if ($prevToken->equals(';')) {
                $tokens->clearAt($index);
            }
        }
    }
}
```

### Step 4 - Format, Commit, PR.

Note that so far, we have not coded adhering to PSR-1/2. This is done on
purpose. For every commit you make, you must use PHP CS Fixer to fix
itself. Thus, on the command line call:

`$ php php-cs-fixer fix`

This will fix all the coding style mistakes.

After the final CS fix, you are ready to commit. Do it.

Now, go to GitHub and open a Pull Request.


### Step 5 - Peer review: it is all about code and community building.

Congratulations, you have made your first fixer. Be proud. Your work
will be reviewed carefully by PHP CS Fixer community.

The review usually flows like this:

1. People will check your code for common mistakes and logical
caveats. Usually, the person building a fixer is blind about some
behavior mistakes of fixers. Expect to write few more tests to cater for
the reviews.
2. People will discuss the relevance of your fixer. If it is
something that goes along with Symfony style standards, or PSR-1/PSR-2
standards, they will ask you to add it to existing ruleset.
3. People will also discuss whether your fixer is idempotent or not.
If they understand that your fixer must always run before or after a
certain fixer, they will ask you to override a method named
`getPriority()`. Do not be afraid of asking the reviewer for help on how
to do it.
4. People may ask you to rebase your code to unify commits or to get
rid of merge commits.
5. Go to 1 until no actions are needed anymore.

Your fixer will be incorporated in the next release.

# Congratulations! You have done it.



## Q&A

#### Why is not my PR merged yet?

PHP CS Fixer is used by many people, that expect it to be stable. So
sometimes, few PR are delayed a bit so to avoid cluttering at @dev
channel on composer.

Other possibility is that reviewers are giving time to other members of
PHP CS Fixer community to partake on the review debates of your fixer.

In any case, we care a lot about what you do and we want to see it being
part of the application as soon as possible.

#### Why am I asked to use `getPrevMeaningfulToken()` instead of `getPrevNonWhitespace()`?

The main difference is that `getPrevNonWhitespace()` ignores only
whitespaces (`T_WHITESPACE`), while `getPrevMeaningfulToken()` ignores
whitespaces and comments. And usually that is what you want. For
example:

```php
$a->/*comment*/func();
```

If you are inspecting `func()`, and you want to check whether this is
part of an object, if you use `getPrevNonWhitespace()` you are going to
get `/*comment*/`, which might belie your test. On the other hand, if
you use `getPrevMeaningfulToken()`, no matter if you have got a comment
or a whitespace, the returned token will always be `->`.
<?xml version="1.0" encoding="UTF-8" ?>
<!--
The MIT License (MIT)

Copyright (c) 2014, Gregory Boissinot

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.
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

    <xs:element name="failure">
        <xs:complexType mixed="true">
            <xs:attribute name="type" type="xs:string" use="optional"/>
            <xs:attribute name="message" type="xs:string" use="optional"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="error">
        <xs:complexType mixed="true">
            <xs:attribute name="type" type="xs:string" use="optional"/>
            <xs:attribute name="message" type="xs:string" use="optional"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="skipped">
        <xs:complexType mixed="true">
            <xs:attribute name="type" type="xs:string" use="optional"/>
            <xs:attribute name="message" type="xs:string" use="optional"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="properties">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="property" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="property">
        <xs:complexType>
            <xs:attribute name="name" type="xs:string" use="required"/>
            <xs:attribute name="value" type="xs:string" use="required"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="system-err" type="xs:string"/>
    <xs:element name="system-out" type="xs:string"/>

    <xs:element name="testcase">
        <xs:complexType>
            <xs:sequence>
                <xs:choice minOccurs="0" maxOccurs="unbounded">
                    <xs:element ref="skipped"/>
                    <xs:element ref="error"/>
                    <xs:element ref="failure"/>
                    <xs:element ref="system-out"/>
                    <xs:element ref="system-err"/>
                </xs:choice>
            </xs:sequence>
            <xs:attribute name="name" type="xs:string" use="required"/>
            <xs:attribute name="assertions" type="xs:string" use="optional"/>
            <xs:attribute name="time" type="xs:string" use="optional"/>
            <xs:attribute name="timestamp" type="xs:string" use="optional"/>
            <xs:attribute name="classname" type="xs:string" use="optional"/>
            <xs:attribute name="status" type="xs:string" use="optional"/>
            <xs:attribute name="class" type="xs:string" use="optional"/>
            <xs:attribute name="file" type="xs:string" use="optional"/>
            <xs:attribute name="line" type="xs:string" use="optional"/>
            <xs:attribute name="log" type="xs:string" use="optional"/>
            <xs:attribute name="group" type="xs:string" use="optional"/>
            <xs:attribute name="url" type="xs:string" use="optional"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="testsuite">
        <xs:complexType>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element ref="testsuite"/>
                <xs:element ref="properties"/>
                <xs:element ref="testcase"/>
                <xs:element ref="system-out"/>
                <xs:element ref="system-err"/>
            </xs:choice>
            <xs:attribute name="name" type="xs:string" use="optional"/>
            <xs:attribute name="tests" type="xs:string" use="required"/>
            <xs:attribute name="failures" type="xs:string" use="optional"/>
            <xs:attribute name="errors" type="xs:string" use="optional"/>
            <xs:attribute name="time" type="xs:string" use="optional"/>
            <xs:attribute name="disabled" type="xs:string" use="optional"/>
            <xs:attribute name="skipped" type="xs:string" use="optional"/>
            <xs:attribute name="skips" type="xs:string" use="optional"/>
            <xs:attribute name="timestamp" type="xs:string" use="optional"/>
            <xs:attribute name="hostname" type="xs:string" use="optional"/>
            <xs:attribute name="id" type="xs:string" use="optional"/>
            <xs:attribute name="package" type="xs:string" use="optional"/>
            <xs:attribute name="assertions" type="xs:string" use="optional"/>
            <xs:attribute name="file" type="xs:string" use="optional"/>
            <xs:attribute name="skip" type="xs:string" use="optional"/>
            <xs:attribute name="log" type="xs:string" use="optional"/>
            <xs:attribute name="url" type="xs:string" use="optional"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="testsuites">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="testsuite" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:attribute name="name" type="xs:string" use="optional"/>
            <xs:attribute name="time" type="xs:string" use="optional"/>
            <xs:attribute name="tests" type="xs:string" use="optional"/>
            <xs:attribute name="failures" type="xs:string" use="optional"/>
            <xs:attribute name="disabled" type="xs:string" use="optional"/>
            <xs:attribute name="errors" type="xs:string" use="optional"/>
        </xs:complexType>
    </xs:element>

</xs:schema>
{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "properties": {
        "files": {
            "type": "array",
            "uniqueItems": true,
            "items": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "appliedFixers": {
                        "type": "array",
                        "uniqueItems": true,
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "required": [
                    "name"
                ]
            }
        },
        "time": {
            "type": "object",
            "properties": {
                "total": {
                    "type": "number"
                }
            },
            "required": [
                "total"
            ]
        },
        "memory": {
            "type": "number"
        }
    },
    "required": [
        "files",
        "time",
        "memory"
    ]
}
<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

    <xs:element name="applied_fixer">
        <xs:complexType>
            <xs:simpleContent>
                <xs:extension base="xs:string">
                    <xs:attribute type="xs:string" name="name"/>
                </xs:extension>
            </xs:simpleContent>
        </xs:complexType>
    </xs:element>

    <xs:element name="applied_fixers">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="applied_fixer" maxOccurs="unbounded" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="diff" type="xs:string"/>

    <xs:element name="file">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="applied_fixers" maxOccurs="1" minOccurs="0"/>
                <xs:element ref="diff" maxOccurs="1" minOccurs="0"/>
            </xs:sequence>
            <xs:attribute type="xs:byte" name="id" use="optional"/>
            <xs:attribute type="xs:string" name="name" use="optional"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="total">
        <xs:complexType>
            <xs:simpleContent>
                <xs:extension base="xs:string">
                    <xs:attribute type="xs:float" name="value"/>
                </xs:extension>
            </xs:simpleContent>
        </xs:complexType>
    </xs:element>

    <xs:element name="files">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="file" maxOccurs="unbounded" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="time">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="total"/>
            </xs:sequence>
            <xs:attribute type="xs:string" name="unit"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="memory">
        <xs:complexType>
            <xs:simpleContent>
                <xs:extension base="xs:string">
                    <xs:attribute type="xs:float" name="value"/>
                    <xs:attribute type="xs:string" name="unit"/>
                </xs:extension>
            </xs:simpleContent>
        </xs:complexType>
    </xs:element>

    <xs:element name="report">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="files"/>
                <xs:element ref="time" maxOccurs="1" minOccurs="0"/>
                <xs:element ref="memory" maxOccurs="1" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

</xs:schema>UPGRADE GUIDE FROM 1.x to 2.0
=============================

This is guide for upgrade from version 1.x to 2.0 for using the CLI tool.

Rules and sets
--------------
To configure which fixers should be used you must now set rules and sets instead of fixers and level. This affects both configuration file and CLI arguments.

Default ruleset was changed from Symfony standard to more generic PSR2. You can still use Symfony standard, which in fact extends PSR2.

The term of risky fixers was introduced. Risky fixer is a fixer that may change the meaning of code (like `StrictComparisonFixer` fixer, which will change `==` into `===`). No rules that are followed by risky fixers are run by default. You need to explicitly permit risky fixers to run them.

Default configuration changes
----------------------------
By default, PSR2 rules are used instead of Symfony rules.
Files that will be fixed are php/phpt/twig instead of php/twig/xml/yml.
Finally, the caching mechanism is enabled by default.

CLI options
-----------

| 1.x             | 2.0             | Description                                                                    | Note                            |
| --------------- | --------------- | ------------------------------------------------------------------------------ | ------------------------------- |
|                 | --allow-risky   | Are risky fixers allowed                                                       |                                 |
|                 | --cache-file    | The path to the cache file                                                     | option was added                |
| --config        |                 | Config class codename                                                          | option was removed              |
| --config-file   | --config        | The path to a .php_cs file                                                     | option was renamed              |
| --diff          | --diff          | Show diff                                                                      |                                 |
| --dry-run       | --dry-run       | Run in dry-run mode                                                            |                                 |
| --fixers        |                 | Coding standard fixers                                                         | option was removed, see --rules |
| --format        | --format        | Choose format                                                                  |                                 |
| --level         |                 | Coding standard level                                                          | option was removed, see --rules |
|                 | --path-mode     | Should the finder from config be<br/>overridden or intersected with `path` arg | option was added                |
|                 | --rules         | Rules to be used                                                               | option was added                |
|                 | --using-cache   | Does cache should be used                                                      | option was added                |


CLI argument
------------

On 2.x line `path` argument is an array, so you may pass multiple paths.

Intersection path mode makes the `path` argument a mask for finder you have defined in your configuration file.
Only files pointed by both finder and CLI `path` argument will be fixed.

Exit codes
----------

Exit codes for `fix` command have been changed and are build using the following bit flags:

| 1.x bit | 2.0 bit | Description                                                 | Note                                                             |
| -------:| -------:| ----------------------------------------------------------- | ---------------------------------------------------------------- |
| 0       | 0       | OK                                                          |                                                                  |
| 1       | 1       | General error (or PHP/HHVM minimal requirement not matched) | no longer used for other states, never combined with other flags |
|         | 4       | Some files have invalid syntax                              | flag was added, works only in dry-run mode                       |
|         | 8       | Some files need fixing                                      | flag was added, works only in dry-run mode                       |
| 16      | 16      | Configuration error of the application                      |                                                                  |
| 32      | 32      | Configuration error of a Fixer                              |                                                                  |
|         | 64      | Exception within the application                            | flag was added                                                   |

Namespace
---------
`Symfony\CS` namespace was renamed into `PhpCsFixer`.

Config file
-----------
From now you can create new configuration file: `.php_cs.dist`. This file is used if no `.php_cs` file was found. It is recommended to create `.php_cs.dist` file attached in your repository and add `.php_cs` file to `.gitignore` for allowing your contributors to have theirs own configuration file.

Config and Finder classes
-------------------------
All off `Symfony\CS\Config\*` and `Symfony\CS\Finder\*` classes have been removed, instead use `PhpCsFixer\Config` and `PhpCsFixer\Finder`.

For that reason you can not set config class by `--config` CLI argument, from now it is used to set configuration file. Therefor the `--config-file` CLI argument is no longer available.

Renamed rules
-------------

Old name | New name | Note
-------- | -------- | ----
align_double_arrow                             | binary_operator_spaces                            | use configuration ['align_double_arrow' => true]
align_equals                                   | binary_operator_spaces                            | use configuration ['align_equals' => true]
array_element_no_space_before_comma            | no_whitespace_before_comma_in_array
array_element_white_space_after_comma          | whitespace_after_comma_in_array
blankline_after_open_tag                       | blank_line_after_opening_tag
concat_with_spaces                             | concat_space                                      | use configuration ['spacing' => 'one']
concat_without_spaces                          | concat_space                                      | use configuration ['spacing' => 'none']
double_arrow_multiline_whitespaces             | no_multiline_whitespace_around_double_arrow
duplicate_semicolon                            | no_empty_statement                                | new one fixes more cases
empty_return                                   | simplified_null_return
echo_to_print                                  | no_mixed_echo_print                               | use configuration ['use' => 'print']
eof_ending                                     | single_blank_line_at_eof
extra_empty_lines                              | no_extra_consecutive_blank_lines
function_call_space                            | no_spaces_after_function_name
general_phpdoc_annotation_rename               | phpdoc_no_alias_tag                               | use configuration ['property-read' => 'property', 'property-write' => 'property']
indentation                                    | indentation_type
join_function                                  | no_alias_functions                                | new one fixes more aliases
line_after_namespace                           | blank_line_after_namespace
linefeed                                       | line_ending                                       | whitespaces type aware
list_commas                                    | no_trailing_comma_in_list_call
logical_not_operators_with_spaces              | not_operator_with_space
logical_not_operators_with_successor_space     | not_operator_with_successor_space
long_array_syntax                              | array_syntax                                      | use configuration ['syntax' => 'long']
method_argument_default_value                  | no_unreachable_default_argument_value
multiline_array_trailing_comma                 | trailing_comma_in_multiline_array
multiline_spaces_before_semicolon              | no_multiline_whitespace_before_semicolons
multiple_use                                   | single_import_per_statement
namespace_no_leading_whitespace                | no_leading_namespace_whitespace
newline_after_open_tag                         | linebreak_after_opening_tag
no_empty_lines_after_phpdocs                   | no_blank_lines_after_phpdoc
object_operator                                | object_operator_without_whitespace
operators_spaces                               | binary_operator_spaces
ordered_use                                    | ordered_imports
parenthesis                                    | no_spaces_inside_parenthesis
php4_constructor                               | no_php4_constructor
php_closing_tag                                | no_closing_tag
phpdoc_params                                  | phpdoc_align
phpdoc_property                                | phpdoc_no_alias_tag                               | use configuration ['type' => 'var']
phpdoc_short_description                       | phpdoc_summary
phpdoc_type_to_var                             | phpdoc_no_alias_tag                               | use configuration ['type' => 'var']
phpdoc_var_to_type                             | phpdoc_no_alias_tag                               | use configuration ['var' => 'type']
print_to_echo                                  | no_mixed_echo_print                               | use configuration ['use' => 'echo']
remove_leading_slash_use                       | no_leading_import_slash
remove_lines_between_uses                      | no_extra_consecutive_blank_lines                  | use configuration ['use']
return                                         | blank_line_before_return
short_array_syntax                             | array_syntax                                      | use configuration ['syntax' => 'short']
short_bool_cast                                | no_short_bool_cast
short_echo_tag                                 | no_short_echo_tag
short_tag                                      | full_opening_tag
single_array_no_trailing_comma                 | no_trailing_comma_in_singleline_array
spaces_after_semicolon                         | space_after_semicolon
spaces_before_semicolon                        | no_singleline_whitespace_before_semicolons
spaces_cast                                    | cast_spaces
standardize_not_equal                          | standardize_not_equals
strict                                         | strict_comparison
ternary_spaces                                 | ternary_operator_spaces
trailing_spaces                                | no_trailing_whitespace
unalign_double_arrow                           | binary_operator_spaces                            | use configuration ['align_double_arrow' => false]
unalign_equals                                 | binary_operator_spaces                            | use configuration ['align_equals' => false]
unary_operators_spaces                         | unary_operator_spaces
unneeded_control_parentheses                   | no_unneeded_control_parentheses
unused_use                                     | no_unused_imports
visibility                                     | visibility_required
whitespacy_lines                               | no_whitespace_in_blank_line

Changes to Fixers
-----------------

Fixer | Note
----- | ----
psr0  | Fixer no longer takes base dir from `ConfigInterface::getDir`, instead you may configure the fixer with `['dir' => 'my/path']`.

Custom fixers
-------------

If you have registered custom fixers in your config file `*.php_cs` using `addCustomFixer()` method...
```
<?php
// phpcs-fixer v1.*
$config = Symfony\CS\Config\Config::create()
    ->fixers([
        'blankline_after_open_tag',
        // ...
    ])
    ->addCustomFixer(new ShopSys\CodingStandards\CsFixer\MissingButtonTypeFixer())
    ->addCustomFixer(new ShopSys\CodingStandards\CsFixer\OrmJoinColumnRequireNullableFixer());
```
...now you have to use `registerCustomFixers()` method instead and enable the custom fixers by their names in the `setRules()` method:
```
<?php
// phpcs-fixer v2.*
$config = PhpCsFixer\Config::create()
    ->registerCustomFixers([
        new ShopSys\CodingStandards\CsFixer\MissingButtonTypeFixer(),
        new ShopSys\CodingStandards\CsFixer\OrmJoinColumnRequireNullableFixer(),
    ])
    ->setRules([
        'blankline_after_open_tag',
        'Shopsys/missing_button_type' => true,
        'Shopsys/orm_join_column_require_nullable' => true,
        // ...
    ]);

```
PHP Coding Standards Fixer
==========================

The PHP Coding Standards Fixer (PHP CS Fixer) tool fixes your code to follow standards;
whether you want to follow PHP coding standards as defined in the PSR-1, PSR-2, etc.,
or other community driven ones like the Symfony one.
You can **also** define your (team's) style through configuration.

It can modernize your code (like converting the ``pow`` function to the ``**`` operator on PHP 5.6)
and (micro) optimize it.

If you are already using a linter to identify coding standards problems in your
code, you know that fixing them by hand is tedious, especially on large
projects. This tool does not only detect them, but also fixes them for you.

The PHP CS Fixer is maintained on GitHub at https://github.com/FriendsOfPHP/PHP-CS-Fixer.
Bug reports and ideas about new features are welcome there.

You can talk to us at https://gitter.im/PHP-CS-Fixer/Lobby about the project,
configuration, possible improvements, ideas and questions, please visit us!

Requirements
------------

PHP needs to be a minimum version of PHP 5.6.0.

Installation
------------

Locally
~~~~~~~

Download the `php-cs-fixer.phar`_ file and store it somewhere on your computer.

Globally (manual)
~~~~~~~~~~~~~~~~~

You can run these commands to easily access latest ``php-cs-fixer`` from anywhere on
your system:

.. code-block:: bash

    $ wget https://cs.symfony.com/download/php-cs-fixer-v2.phar -O php-cs-fixer

or with specified version:

.. code-block:: bash

    $ wget https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v2.16.4/php-cs-fixer.phar -O php-cs-fixer

or with curl:

.. code-block:: bash

    $ curl -L https://cs.symfony.com/download/php-cs-fixer-v2.phar -o php-cs-fixer

then:

.. code-block:: bash

    $ sudo chmod a+x php-cs-fixer
    $ sudo mv php-cs-fixer /usr/local/bin/php-cs-fixer

Then, just run ``php-cs-fixer``.

Globally (Composer)
~~~~~~~~~~~~~~~~~~~

To install PHP CS Fixer, `install Composer <https://getcomposer.org/download/>`_ and issue the following command:

.. code-block:: bash

    $ composer global require friendsofphp/php-cs-fixer

Then make sure you have the global Composer binaries directory in your ``PATH``. This directory is platform-dependent, see `Composer documentation <https://getcomposer.org/doc/03-cli.md#composer-home>`_ for details. Example for some Unix systems:

.. code-block:: bash

    $ export PATH="$PATH:$HOME/.composer/vendor/bin"

Globally (homebrew)
~~~~~~~~~~~~~~~~~~~

.. code-block:: bash

    $ brew install php-cs-fixer

Locally (PHIVE)
~~~~~~~~~~~~~~~

Install `PHIVE <https://phar.io>`_ and issue the following command:

.. code-block:: bash

    $ phive install php-cs-fixer # use `--global` for global install

Update
------

Locally
~~~~~~~

The ``self-update`` command tries to update ``php-cs-fixer`` itself:

.. code-block:: bash

    $ php php-cs-fixer.phar self-update

Globally (manual)
~~~~~~~~~~~~~~~~~

You can update ``php-cs-fixer`` through this command:

.. code-block:: bash

    $ sudo php-cs-fixer self-update

Globally (Composer)
~~~~~~~~~~~~~~~~~~~

You can update ``php-cs-fixer`` through this command:

.. code-block:: bash

    $ ./composer.phar global update friendsofphp/php-cs-fixer

Globally (homebrew)
~~~~~~~~~~~~~~~~~~~

You can update ``php-cs-fixer`` through this command:

.. code-block:: bash

    $ brew upgrade php-cs-fixer

Locally (PHIVE)
~~~~~~~~~~~~~~~

.. code-block:: bash

    $ phive update php-cs-fixer

Usage
-----

The ``fix`` command tries to fix as much coding standards
problems as possible on a given file or files in a given directory and its subdirectories:

.. code-block:: bash

    $ php php-cs-fixer.phar fix /path/to/dir
    $ php php-cs-fixer.phar fix /path/to/file

By default ``--path-mode`` is set to ``override``, which means, that if you specify the path to a file or a directory via
command arguments, then the paths provided to a ``Finder`` in config file will be ignored. You can use ``--path-mode=intersection``
to merge paths from the config file and from the argument:

.. code-block:: bash

    $ php php-cs-fixer.phar fix --path-mode=intersection /path/to/dir

The ``--format`` option for the output format. Supported formats are ``txt`` (default one), ``json``, ``xml``, ``checkstyle``, ``junit`` and ``gitlab``.

NOTE: the output for the following formats are generated in accordance with XML schemas

* ``junit`` follows the `JUnit xml schema from Jenkins </doc/junit-10.xsd>`_
* ``checkstyle`` follows the common `"checkstyle" xml schema </doc/checkstyle.xsd>`_

The ``--quiet`` Do not output any message.

The ``--verbose`` option will show the applied rules. When using the ``txt`` format it will also display progress notifications.

NOTE: if there is an error like "errors reported during linting after fixing", you can use this to be even more verbose for debugging purpose

* ``--verbose=0`` or no option: normal
* ``--verbose``, ``--verbose=1``, ``-v``: verbose
* ``--verbose=2``, ``-vv``: very verbose
* ``--verbose=3``, ``-vvv``: debug

The ``--rules`` option limits the rules to apply to the
project:

.. code-block:: bash

    $ php php-cs-fixer.phar fix /path/to/project --rules=@PSR2

By default the PSR1 and PSR2 rules are used.

The ``--rules`` option lets you choose the exact rules to
apply (the rule names must be separated by a comma):

.. code-block:: bash

    $ php php-cs-fixer.phar fix /path/to/dir --rules=line_ending,full_opening_tag,indentation_type

You can also exclude the rules you don't want by placing a dash in front of the rule name, if this is more convenient,
using ``-name_of_fixer``:

.. code-block:: bash

    $ php php-cs-fixer.phar fix /path/to/dir --rules=-full_opening_tag,-indentation_type

When using combinations of exact and exclude rules, applying exact rules along with above excluded results:

.. code-block:: bash

    $ php php-cs-fixer.phar fix /path/to/project --rules=@Symfony,-@PSR1,-blank_line_before_statement,strict_comparison

Complete configuration for rules can be supplied using a ``json`` formatted string.

.. code-block:: bash

    $ php php-cs-fixer.phar fix /path/to/project --rules='{"concat_space": {"spacing": "none"}}'

The ``--dry-run`` flag will run the fixer without making changes to your files.

The ``--diff`` flag can be used to let the fixer output all the changes it makes.

The ``--diff-format`` option allows to specify in which format the fixer should output the changes it makes:

* ``udiff``: unified diff format;
* ``sbd``: Sebastianbergmann/diff format (default when using `--diff` without specifying `diff-format`).

The ``--allow-risky`` option (pass ``yes`` or ``no``) allows you to set whether risky rules may run. Default value is taken from config file.
A rule is considered risky if it could change code behaviour. By default no risky rules are run.

The ``--stop-on-violation`` flag stops the execution upon first file that needs to be fixed.

The ``--show-progress`` option allows you to choose the way process progress is rendered:

* ``none``: disables progress output;
* ``run-in``: [deprecated] simple single-line progress output;
* ``estimating``: [deprecated] multiline progress output with number of files and percentage on each line. Note that with this option, the files list is evaluated before processing to get the total number of files and then kept in memory to avoid using the file iterator twice. This has an impact on memory usage so using this option is not recommended on very large projects;
* ``estimating-max``: [deprecated] same as ``dots``;
* ``dots``: same as ``estimating`` but using all terminal columns instead of default 80.

If the option is not provided, it defaults to ``run-in`` unless a config file that disables output is used, in which case it defaults to ``none``. This option has no effect if the verbosity of the command is less than ``verbose``.

.. code-block:: bash

    $ php php-cs-fixer.phar fix --verbose --show-progress=estimating

The command can also read from standard input, in which case it won't
automatically fix anything:

.. code-block:: bash

    $ cat foo.php | php php-cs-fixer.phar fix --diff -

Finally, if you don't need BC kept on CLI level, you might use `PHP_CS_FIXER_FUTURE_MODE` to start using options that
would be default in next MAJOR release (unified differ, estimating, full-width progress indicator):

.. code-block:: bash

    $ PHP_CS_FIXER_FUTURE_MODE=1 php php-cs-fixer.phar fix -v --diff

Rules
-----

Use the following command to quickly understand what a rule will do to your code:

.. code-block:: bash

    $ php php-cs-fixer.phar describe align_multiline_comment

To visualize all the rules that belong to a ruleset:

.. code-block:: bash

    $ php php-cs-fixer.phar describe @PSR2

Choose from the list of available rules:

* **align_multiline_comment** [@PhpCsFixer]

  Each line of multi-line DocComments must have an asterisk [PSR-5] and
  must be aligned with the first one.

  Configuration options:

  - ``comment_type`` (``'all_multiline'``, ``'phpdocs_like'``, ``'phpdocs_only'``): whether
    to fix PHPDoc comments only (``phpdocs_only``), any multi-line comment
    whose lines all start with an asterisk (``phpdocs_like``) or any
    multi-line comment (``all_multiline``); defaults to ``'phpdocs_only'``

* **array_indentation** [@PhpCsFixer]

  Each element of an array must be indented exactly once.

* **array_syntax** [@Symfony, @PhpCsFixer]

  PHP arrays should be declared using the configured syntax.

  Configuration options:

  - ``syntax`` (``'long'``, ``'short'``): whether to use the ``long`` or ``short`` array
    syntax; defaults to ``'long'``

* **backtick_to_shell_exec**

  Converts backtick operators to ``shell_exec`` calls.

* **binary_operator_spaces** [@Symfony, @PhpCsFixer]

  Binary operators should be surrounded by space as configured.

  Configuration options:

  - ``align_double_arrow`` (``false``, ``null``, ``true``): whether to apply, remove or
    ignore double arrows alignment; defaults to ``false``. DEPRECATED: use
    options ``operators`` and ``default`` instead
  - ``align_equals`` (``false``, ``null``, ``true``): whether to apply, remove or ignore
    equals alignment; defaults to ``false``. DEPRECATED: use options
    ``operators`` and ``default`` instead
  - ``default`` (``'align'``, ``'align_single_space'``, ``'align_single_space_minimal'``,
    ``'no_space'``, ``'single_space'``, ``null``): default fix strategy; defaults to
    ``'single_space'``
  - ``operators`` (``array``): dictionary of ``binary operator`` => ``fix strategy``
    values that differ from the default strategy; defaults to ``[]``

* **blank_line_after_namespace** [@PSR2, @Symfony, @PhpCsFixer]

  There MUST be one blank line after the namespace declaration.

* **blank_line_after_opening_tag** [@Symfony, @PhpCsFixer]

  Ensure there is no code on the same line as the PHP open tag and it is
  followed by a blank line.

* **blank_line_before_return**

  An empty line feed should precede a return statement. DEPRECATED: use
  ``blank_line_before_statement`` instead.

* **blank_line_before_statement** [@Symfony, @PhpCsFixer]

  An empty line feed must precede any configured statement.

  Configuration options:

  - ``statements`` (a subset of ``['break', 'case', 'continue', 'declare',
    'default', 'die', 'do', 'exit', 'for', 'foreach', 'goto', 'if',
    'include', 'include_once', 'require', 'require_once', 'return',
    'switch', 'throw', 'try', 'while', 'yield']``): list of statements which
    must be preceded by an empty line; defaults to ``['break', 'continue',
    'declare', 'return', 'throw', 'try']``

* **braces** [@PSR2, @Symfony, @PhpCsFixer]

  The body of each structure MUST be enclosed by braces. Braces should be
  properly placed. Body of braces should be properly indented.

  Configuration options:

  - ``allow_single_line_closure`` (``bool``): whether single line lambda notation
    should be allowed; defaults to ``false``
  - ``position_after_anonymous_constructs`` (``'next'``, ``'same'``): whether the
    opening brace should be placed on "next" or "same" line after anonymous
    constructs (anonymous classes and lambda functions); defaults to ``'same'``
  - ``position_after_control_structures`` (``'next'``, ``'same'``): whether the opening
    brace should be placed on "next" or "same" line after control
    structures; defaults to ``'same'``
  - ``position_after_functions_and_oop_constructs`` (``'next'``, ``'same'``): whether
    the opening brace should be placed on "next" or "same" line after
    classy constructs (non-anonymous classes, interfaces, traits, methods
    and non-lambda functions); defaults to ``'next'``

* **cast_spaces** [@Symfony, @PhpCsFixer]

  A single space or none should be between cast and variable.

  Configuration options:

  - ``space`` (``'none'``, ``'single'``): spacing to apply between cast and variable;
    defaults to ``'single'``

* **class_attributes_separation** [@Symfony, @PhpCsFixer]

  Class, trait and interface elements must be separated with one blank
  line.

  Configuration options:

  - ``elements`` (a subset of ``['const', 'method', 'property']``): list of classy
    elements; 'const', 'method', 'property'; defaults to ``['const',
    'method', 'property']``

* **class_definition** [@PSR2, @Symfony, @PhpCsFixer]

  Whitespace around the keywords of a class, trait or interfaces
  definition should be one space.

  Configuration options:

  - ``multi_line_extends_each_single_line`` (``bool``): whether definitions should
    be multiline; defaults to ``false``; DEPRECATED alias:
    ``multiLineExtendsEachSingleLine``
  - ``single_item_single_line`` (``bool``): whether definitions should be single
    line when including a single item; defaults to ``false``; DEPRECATED alias:
    ``singleItemSingleLine``
  - ``single_line`` (``bool``): whether definitions should be single line; defaults
    to ``false``; DEPRECATED alias: ``singleLine``

* **class_keyword_remove**

  Converts ``::class`` keywords to FQCN strings.

* **combine_consecutive_issets** [@PhpCsFixer]

  Using ``isset($var) &&`` multiple times should be done in one call.

* **combine_consecutive_unsets** [@PhpCsFixer]

  Calling ``unset`` on multiple items should be done in one call.

* **combine_nested_dirname** [@PHP70Migration:risky, @PHP71Migration:risky]

  Replace multiple nested calls of ``dirname`` by only one call with second
  ``$level`` parameter. Requires PHP >= 7.0.

  *Risky rule: risky when the function ``dirname`` is overridden.*

* **comment_to_phpdoc** [@PhpCsFixer:risky]

  Comments with annotation should be docblock when used on structural
  elements.

  *Risky rule: risky as new docblocks might mean more, e.g. a Doctrine entity might have a new column in database.*

  Configuration options:

  - ``ignored_tags`` (``array``): list of ignored tags; defaults to ``[]``

* **compact_nullable_typehint** [@PhpCsFixer]

  Remove extra spaces in a nullable typehint.

* **concat_space** [@Symfony, @PhpCsFixer]

  Concatenation should be spaced according configuration.

  Configuration options:

  - ``spacing`` (``'none'``, ``'one'``): spacing to apply around concatenation operator;
    defaults to ``'none'``

* **constant_case** [@PSR2, @Symfony, @PhpCsFixer]

  The PHP constants ``true``, ``false``, and ``null`` MUST be written using the
  correct casing.

  Configuration options:

  - ``case`` (``'lower'``, ``'upper'``): whether to use the ``upper`` or ``lower`` case
    syntax; defaults to ``'lower'``

* **date_time_immutable**

  Class ``DateTimeImmutable`` should be used instead of ``DateTime``.

  *Risky rule: risky when the code relies on modifying ``DateTime`` objects or if any of the ``date_create*`` functions are overridden.*

* **declare_equal_normalize** [@Symfony, @PhpCsFixer]

  Equal sign in declare statement should be surrounded by spaces or not
  following configuration.

  Configuration options:

  - ``space`` (``'none'``, ``'single'``): spacing to apply around the equal sign;
    defaults to ``'none'``

* **declare_strict_types** [@PHP70Migration:risky, @PHP71Migration:risky]

  Force strict types declaration in all files. Requires PHP >= 7.0.

  *Risky rule: forcing strict types will stop non strict code from working.*

* **dir_constant** [@Symfony:risky, @PhpCsFixer:risky]

  Replaces ``dirname(__FILE__)`` expression with equivalent ``__DIR__``
  constant.

  *Risky rule: risky when the function ``dirname`` is overridden.*

* **doctrine_annotation_array_assignment** [@DoctrineAnnotation]

  Doctrine annotations must use configured operator for assignment in
  arrays.

  Configuration options:

  - ``ignored_tags`` (``array``): list of tags that must not be treated as Doctrine
    Annotations; defaults to ``['abstract', 'access', 'code', 'deprec',
    'encode', 'exception', 'final', 'ingroup', 'inheritdoc', 'inheritDoc',
    'magic', 'name', 'toc', 'tutorial', 'private', 'static', 'staticvar',
    'staticVar', 'throw', 'api', 'author', 'category', 'copyright',
    'deprecated', 'example', 'filesource', 'global', 'ignore', 'internal',
    'license', 'link', 'method', 'package', 'param', 'property',
    'property-read', 'property-write', 'return', 'see', 'since', 'source',
    'subpackage', 'throws', 'todo', 'TODO', 'usedBy', 'uses', 'var',
    'version', 'after', 'afterClass', 'backupGlobals',
    'backupStaticAttributes', 'before', 'beforeClass',
    'codeCoverageIgnore', 'codeCoverageIgnoreStart',
    'codeCoverageIgnoreEnd', 'covers', 'coversDefaultClass',
    'coversNothing', 'dataProvider', 'depends', 'expectedException',
    'expectedExceptionCode', 'expectedExceptionMessage',
    'expectedExceptionMessageRegExp', 'group', 'large', 'medium',
    'preserveGlobalState', 'requires', 'runTestsInSeparateProcesses',
    'runInSeparateProcess', 'small', 'test', 'testdox', 'ticket', 'uses',
    'SuppressWarnings', 'noinspection', 'package_version', 'enduml',
    'startuml', 'fix', 'FIXME', 'fixme', 'override']``
  - ``operator`` (``':'``, ``'='``): the operator to use; defaults to ``'='``

* **doctrine_annotation_braces** [@DoctrineAnnotation]

  Doctrine annotations without arguments must use the configured syntax.

  Configuration options:

  - ``ignored_tags`` (``array``): list of tags that must not be treated as Doctrine
    Annotations; defaults to ``['abstract', 'access', 'code', 'deprec',
    'encode', 'exception', 'final', 'ingroup', 'inheritdoc', 'inheritDoc',
    'magic', 'name', 'toc', 'tutorial', 'private', 'static', 'staticvar',
    'staticVar', 'throw', 'api', 'author', 'category', 'copyright',
    'deprecated', 'example', 'filesource', 'global', 'ignore', 'internal',
    'license', 'link', 'method', 'package', 'param', 'property',
    'property-read', 'property-write', 'return', 'see', 'since', 'source',
    'subpackage', 'throws', 'todo', 'TODO', 'usedBy', 'uses', 'var',
    'version', 'after', 'afterClass', 'backupGlobals',
    'backupStaticAttributes', 'before', 'beforeClass',
    'codeCoverageIgnore', 'codeCoverageIgnoreStart',
    'codeCoverageIgnoreEnd', 'covers', 'coversDefaultClass',
    'coversNothing', 'dataProvider', 'depends', 'expectedException',
    'expectedExceptionCode', 'expectedExceptionMessage',
    'expectedExceptionMessageRegExp', 'group', 'large', 'medium',
    'preserveGlobalState', 'requires', 'runTestsInSeparateProcesses',
    'runInSeparateProcess', 'small', 'test', 'testdox', 'ticket', 'uses',
    'SuppressWarnings', 'noinspection', 'package_version', 'enduml',
    'startuml', 'fix', 'FIXME', 'fixme', 'override']``
  - ``syntax`` (``'with_braces'``, ``'without_braces'``): whether to add or remove
    braces; defaults to ``'without_braces'``

* **doctrine_annotation_indentation** [@DoctrineAnnotation]

  Doctrine annotations must be indented with four spaces.

  Configuration options:

  - ``ignored_tags`` (``array``): list of tags that must not be treated as Doctrine
    Annotations; defaults to ``['abstract', 'access', 'code', 'deprec',
    'encode', 'exception', 'final', 'ingroup', 'inheritdoc', 'inheritDoc',
    'magic', 'name', 'toc', 'tutorial', 'private', 'static', 'staticvar',
    'staticVar', 'throw', 'api', 'author', 'category', 'copyright',
    'deprecated', 'example', 'filesource', 'global', 'ignore', 'internal',
    'license', 'link', 'method', 'package', 'param', 'property',
    'property-read', 'property-write', 'return', 'see', 'since', 'source',
    'subpackage', 'throws', 'todo', 'TODO', 'usedBy', 'uses', 'var',
    'version', 'after', 'afterClass', 'backupGlobals',
    'backupStaticAttributes', 'before', 'beforeClass',
    'codeCoverageIgnore', 'codeCoverageIgnoreStart',
    'codeCoverageIgnoreEnd', 'covers', 'coversDefaultClass',
    'coversNothing', 'dataProvider', 'depends', 'expectedException',
    'expectedExceptionCode', 'expectedExceptionMessage',
    'expectedExceptionMessageRegExp', 'group', 'large', 'medium',
    'preserveGlobalState', 'requires', 'runTestsInSeparateProcesses',
    'runInSeparateProcess', 'small', 'test', 'testdox', 'ticket', 'uses',
    'SuppressWarnings', 'noinspection', 'package_version', 'enduml',
    'startuml', 'fix', 'FIXME', 'fixme', 'override']``
  - ``indent_mixed_lines`` (``bool``): whether to indent lines that have content
    before closing parenthesis; defaults to ``false``

* **doctrine_annotation_spaces** [@DoctrineAnnotation]

  Fixes spaces in Doctrine annotations.

  Configuration options:

  - ``after_argument_assignments`` (``null``, ``bool``): whether to add, remove or
    ignore spaces after argument assignment operator; defaults to ``false``
  - ``after_array_assignments_colon`` (``null``, ``bool``): whether to add, remove or
    ignore spaces after array assignment ``:`` operator; defaults to ``true``
  - ``after_array_assignments_equals`` (``null``, ``bool``): whether to add, remove or
    ignore spaces after array assignment ``=`` operator; defaults to ``true``
  - ``around_argument_assignments`` (``bool``): whether to fix spaces around
    argument assignment operator; defaults to ``true``. DEPRECATED: use options
    ``before_argument_assignments`` and ``after_argument_assignments`` instead
  - ``around_array_assignments`` (``bool``): whether to fix spaces around array
    assignment operators; defaults to ``true``. DEPRECATED: use options
    ``before_array_assignments_equals``, ``after_array_assignments_equals``,
    ``before_array_assignments_colon`` and ``after_array_assignments_colon``
    instead
  - ``around_commas`` (``bool``): whether to fix spaces around commas; defaults to
    ``true``
  - ``around_parentheses`` (``bool``): whether to fix spaces around parentheses;
    defaults to ``true``
  - ``before_argument_assignments`` (``null``, ``bool``): whether to add, remove or
    ignore spaces before argument assignment operator; defaults to ``false``
  - ``before_array_assignments_colon`` (``null``, ``bool``): whether to add, remove or
    ignore spaces before array ``:`` assignment operator; defaults to ``true``
  - ``before_array_assignments_equals`` (``null``, ``bool``): whether to add, remove or
    ignore spaces before array ``=`` assignment operator; defaults to ``true``
  - ``ignored_tags`` (``array``): list of tags that must not be treated as Doctrine
    Annotations; defaults to ``['abstract', 'access', 'code', 'deprec',
    'encode', 'exception', 'final', 'ingroup', 'inheritdoc', 'inheritDoc',
    'magic', 'name', 'toc', 'tutorial', 'private', 'static', 'staticvar',
    'staticVar', 'throw', 'api', 'author', 'category', 'copyright',
    'deprecated', 'example', 'filesource', 'global', 'ignore', 'internal',
    'license', 'link', 'method', 'package', 'param', 'property',
    'property-read', 'property-write', 'return', 'see', 'since', 'source',
    'subpackage', 'throws', 'todo', 'TODO', 'usedBy', 'uses', 'var',
    'version', 'after', 'afterClass', 'backupGlobals',
    'backupStaticAttributes', 'before', 'beforeClass',
    'codeCoverageIgnore', 'codeCoverageIgnoreStart',
    'codeCoverageIgnoreEnd', 'covers', 'coversDefaultClass',
    'coversNothing', 'dataProvider', 'depends', 'expectedException',
    'expectedExceptionCode', 'expectedExceptionMessage',
    'expectedExceptionMessageRegExp', 'group', 'large', 'medium',
    'preserveGlobalState', 'requires', 'runTestsInSeparateProcesses',
    'runInSeparateProcess', 'small', 'test', 'testdox', 'ticket', 'uses',
    'SuppressWarnings', 'noinspection', 'package_version', 'enduml',
    'startuml', 'fix', 'FIXME', 'fixme', 'override']``

* **elseif** [@PSR2, @Symfony, @PhpCsFixer]

  The keyword ``elseif`` should be used instead of ``else if`` so that all
  control keywords look like single words.

* **encoding** [@PSR1, @PSR2, @Symfony, @PhpCsFixer]

  PHP code MUST use only UTF-8 without BOM (remove BOM).

* **ereg_to_preg** [@Symfony:risky, @PhpCsFixer:risky]

  Replace deprecated ``ereg`` regular expression functions with ``preg``.

  *Risky rule: risky if the ``ereg`` function is overridden.*

* **error_suppression** [@Symfony:risky, @PhpCsFixer:risky]

  Error control operator should be added to deprecation notices and/or
  removed from other cases.

  *Risky rule: risky because adding/removing ``@`` might cause changes to code behaviour or if ``trigger_error`` function is overridden.*

  Configuration options:

  - ``mute_deprecation_error`` (``bool``): whether to add ``@`` in deprecation
    notices; defaults to ``true``
  - ``noise_remaining_usages`` (``bool``): whether to remove ``@`` in remaining
    usages; defaults to ``false``
  - ``noise_remaining_usages_exclude`` (``array``): list of global functions to
    exclude from removing ``@``; defaults to ``[]``

* **escape_implicit_backslashes** [@PhpCsFixer]

  Escape implicit backslashes in strings and heredocs to ease the
  understanding of which are special chars interpreted by PHP and which
  not.

  Configuration options:

  - ``double_quoted`` (``bool``): whether to fix double-quoted strings; defaults to
    ``true``
  - ``heredoc_syntax`` (``bool``): whether to fix heredoc syntax; defaults to ``true``
  - ``single_quoted`` (``bool``): whether to fix single-quoted strings; defaults to
    ``false``

* **explicit_indirect_variable** [@PhpCsFixer]

  Add curly braces to indirect variables to make them clear to understand.
  Requires PHP >= 7.0.

* **explicit_string_variable** [@PhpCsFixer]

  Converts implicit variables into explicit ones in double-quoted strings
  or heredoc syntax.

* **final_class**

  All classes must be final, except abstract ones and Doctrine entities.

  *Risky rule: risky when subclassing non-abstract classes.*

* **final_internal_class** [@PhpCsFixer:risky]

  Internal classes should be ``final``.

  *Risky rule: changing classes to ``final`` might cause code execution to break.*

  Configuration options:

  - ``annotation-black-list`` (``array``): class level annotations tags that must be
    omitted to fix the class, even if all of the excluded ones are used as
    well. (case insensitive); defaults to ``['@final', '@Entity',
    '@ORM\\Entity', '@ORM\\Mapping\\Entity', '@Mapping\\Entity']``
  - ``annotation-white-list`` (``array``): class level annotations tags that must be
    set in order to fix the class. (case insensitive); defaults to
    ``['@internal']``
  - ``consider-absent-docblock-as-internal-class`` (``bool``): should classes
    without any DocBlock be fixed to final?; defaults to ``false``

* **final_public_method_for_abstract_class**

  All ``public`` methods of ``abstract`` classes should be ``final``.

  *Risky rule: risky when overriding ``public`` methods of ``abstract`` classes.*

* **final_static_access**

  Converts ``static`` access to ``self`` access in ``final`` classes.

* **fopen_flag_order** [@Symfony:risky, @PhpCsFixer:risky]

  Order the flags in ``fopen`` calls, ``b`` and ``t`` must be last.

  *Risky rule: risky when the function ``fopen`` is overridden.*

* **fopen_flags** [@Symfony:risky, @PhpCsFixer:risky]

  The flags in ``fopen`` calls must omit ``t``, and ``b`` must be omitted or
  included consistently.

  *Risky rule: risky when the function ``fopen`` is overridden.*

  Configuration options:

  - ``b_mode`` (``bool``): the ``b`` flag must be used (``true``) or omitted (``false``);
    defaults to ``true``

* **full_opening_tag** [@PSR1, @PSR2, @Symfony, @PhpCsFixer]

  PHP code must use the long ``<?php`` tags or short-echo ``<?=`` tags and not
  other tag variations.

* **fully_qualified_strict_types** [@PhpCsFixer]

  Transforms imported FQCN parameters and return types in function
  arguments to short version.

* **function_declaration** [@PSR2, @Symfony, @PhpCsFixer]

  Spaces should be properly placed in a function declaration.

  Configuration options:

  - ``closure_function_spacing`` (``'none'``, ``'one'``): spacing to use before open
    parenthesis for closures; defaults to ``'one'``

* **function_to_constant** [@Symfony:risky, @PhpCsFixer:risky]

  Replace core functions calls returning constants with the constants.

  *Risky rule: risky when any of the configured functions to replace are overridden.*

  Configuration options:

  - ``functions`` (a subset of ``['get_called_class', 'get_class',
    'get_class_this', 'php_sapi_name', 'phpversion', 'pi']``): list of
    function names to fix; defaults to ``['get_class', 'php_sapi_name',
    'phpversion', 'pi']``

* **function_typehint_space** [@Symfony, @PhpCsFixer]

  Ensure single space between function's argument and its typehint.

* **general_phpdoc_annotation_remove**

  Configured annotations should be omitted from PHPDoc.

  Configuration options:

  - ``annotations`` (``array``): list of annotations to remove, e.g. ``["author"]``;
    defaults to ``[]``

* **global_namespace_import**

  Imports or fully qualifies global classes/functions/constants.

  Configuration options:

  - ``import_classes`` (``false``, ``null``, ``true``): whether to import, not import or
    ignore global classes; defaults to ``true``
  - ``import_constants`` (``false``, ``null``, ``true``): whether to import, not import or
    ignore global constants; defaults to ``null``
  - ``import_functions`` (``false``, ``null``, ``true``): whether to import, not import or
    ignore global functions; defaults to ``null``

* **hash_to_slash_comment**

  Single line comments should use double slashes ``//`` and not hash ``#``.
  DEPRECATED: use ``single_line_comment_style`` instead.

* **header_comment**

  Add, replace or remove header comment.

  Configuration options:

  - ``comment_type`` (``'comment'``, ``'PHPDoc'``): comment syntax type; defaults to
    ``'comment'``; DEPRECATED alias: ``commentType``
  - ``header`` (``string``): proper header content; required
  - ``location`` (``'after_declare_strict'``, ``'after_open'``): the location of the
    inserted header; defaults to ``'after_declare_strict'``
  - ``separate`` (``'both'``, ``'bottom'``, ``'none'``, ``'top'``): whether the header should be
    separated from the file content with a new line; defaults to ``'both'``

* **heredoc_indentation** [@PHP73Migration]

  Heredoc/nowdoc content must be properly indented. Requires PHP >= 7.3.

* **heredoc_to_nowdoc** [@PhpCsFixer]

  Convert ``heredoc`` to ``nowdoc`` where possible.

* **implode_call** [@Symfony:risky, @PhpCsFixer:risky]

  Function ``implode`` must be called with 2 arguments in the documented
  order.

  *Risky rule: risky when the function ``implode`` is overridden.*

* **include** [@Symfony, @PhpCsFixer]

  Include/Require and file path should be divided with a single space.
  File path should not be placed under brackets.

* **increment_style** [@Symfony, @PhpCsFixer]

  Pre- or post-increment and decrement operators should be used if
  possible.

  Configuration options:

  - ``style`` (``'post'``, ``'pre'``): whether to use pre- or post-increment and
    decrement operators; defaults to ``'pre'``

* **indentation_type** [@PSR2, @Symfony, @PhpCsFixer]

  Code MUST use configured indentation type.

* **is_null** [@Symfony:risky, @PhpCsFixer:risky]

  Replaces ``is_null($var)`` expression with ``null === $var``.

  *Risky rule: risky when the function ``is_null`` is overridden.*

  Configuration options:

  - ``use_yoda_style`` (``bool``): whether Yoda style conditions should be used;
    defaults to ``true``. DEPRECATED: use ``yoda_style`` fixer instead

* **line_ending** [@PSR2, @Symfony, @PhpCsFixer]

  All PHP files must use same line ending.

* **linebreak_after_opening_tag**

  Ensure there is no code on the same line as the PHP open tag.

* **list_syntax**

  List (``array`` destructuring) assignment should be declared using the
  configured syntax. Requires PHP >= 7.1.

  Configuration options:

  - ``syntax`` (``'long'``, ``'short'``): whether to use the ``long`` or ``short`` ``list``
    syntax; defaults to ``'long'``

* **logical_operators** [@PhpCsFixer:risky]

  Use ``&&`` and ``||`` logical operators instead of ``and`` and ``or``.

  *Risky rule: risky, because you must double-check if using and/or with lower precedence was intentional.*

* **lowercase_cast** [@Symfony, @PhpCsFixer]

  Cast should be written in lower case.

* **lowercase_constants**

  The PHP constants ``true``, ``false``, and ``null`` MUST be in lower case.
  DEPRECATED: use ``constant_case`` instead.

* **lowercase_keywords** [@PSR2, @Symfony, @PhpCsFixer]

  PHP keywords MUST be in lower case.

* **lowercase_static_reference** [@Symfony, @PhpCsFixer]

  Class static references ``self``, ``static`` and ``parent`` MUST be in lower
  case.

* **magic_constant_casing** [@Symfony, @PhpCsFixer]

  Magic constants should be referred to using the correct casing.

* **magic_method_casing** [@Symfony, @PhpCsFixer]

  Magic method definitions and calls must be using the correct casing.

* **mb_str_functions**

  Replace non multibyte-safe functions with corresponding mb function.

  *Risky rule: risky when any of the functions are overridden.*

* **method_argument_space** [@PSR2, @Symfony, @PhpCsFixer]

  In method arguments and method call, there MUST NOT be a space before
  each comma and there MUST be one space after each comma. Argument lists
  MAY be split across multiple lines, where each subsequent line is
  indented once. When doing so, the first item in the list MUST be on the
  next line, and there MUST be only one argument per line.

  Configuration options:

  - ``after_heredoc`` (``bool``): whether the whitespace between heredoc end and
    comma should be removed; defaults to ``false``
  - ``ensure_fully_multiline`` (``bool``): ensure every argument of a multiline
    argument list is on its own line; defaults to ``false``. DEPRECATED: use
    option ``on_multiline`` instead
  - ``keep_multiple_spaces_after_comma`` (``bool``): whether keep multiple spaces
    after comma; defaults to ``false``
  - ``on_multiline`` (``'ensure_fully_multiline'``, ``'ensure_single_line'``, ``'ignore'``):
    defines how to handle function arguments lists that contain newlines;
    defaults to ``'ignore'``

* **method_chaining_indentation** [@PhpCsFixer]

  Method chaining MUST be properly indented. Method chaining with
  different levels of indentation is not supported.

* **method_separation**

  Methods must be separated with one blank line. DEPRECATED: use
  ``class_attributes_separation`` instead.

* **modernize_types_casting** [@Symfony:risky, @PhpCsFixer:risky]

  Replaces ``intval``, ``floatval``, ``doubleval``, ``strval`` and ``boolval``
  function calls with according type casting operator.

  *Risky rule: risky if any of the functions ``intval``, ``floatval``, ``doubleval``, ``strval`` or ``boolval`` are overridden.*

* **multiline_comment_opening_closing** [@PhpCsFixer]

  DocBlocks must start with two asterisks, multiline comments must start
  with a single asterisk, after the opening slash. Both must end with a
  single asterisk before the closing slash.

* **multiline_whitespace_before_semicolons** [@PhpCsFixer]

  Forbid multi-line whitespace before the closing semicolon or move the
  semicolon to the new line for chained calls.

  Configuration options:

  - ``strategy`` (``'new_line_for_chained_calls'``, ``'no_multi_line'``): forbid
    multi-line whitespace or move the semicolon to the new line for chained
    calls; defaults to ``'no_multi_line'``

* **native_constant_invocation** [@Symfony:risky, @PhpCsFixer:risky]

  Add leading ``\`` before constant invocation of internal constant to speed
  up resolving. Constant name match is case-sensitive, except for ``null``,
  ``false`` and ``true``.

  *Risky rule: risky when any of the constants are namespaced or overridden.*

  Configuration options:

  - ``exclude`` (``array``): list of constants to ignore; defaults to ``['null',
    'false', 'true']``
  - ``fix_built_in`` (``bool``): whether to fix constants returned by
    ``get_defined_constants``. User constants are not accounted in this list
    and must be specified in the include one; defaults to ``true``
  - ``include`` (``array``): list of additional constants to fix; defaults to ``[]``
  - ``scope`` (``'all'``, ``'namespaced'``): only fix constant invocations that are made
    within a namespace or fix all; defaults to ``'all'``

* **native_function_casing** [@Symfony, @PhpCsFixer]

  Function defined by PHP should be called using the correct casing.

* **native_function_invocation** [@Symfony:risky, @PhpCsFixer:risky]

  Add leading ``\`` before function invocation to speed up resolving.

  *Risky rule: risky when any of the functions are overridden.*

  Configuration options:

  - ``exclude`` (``array``): list of functions to ignore; defaults to ``[]``
  - ``include`` (``array``): list of function names or sets to fix. Defined sets are
    ``@internal`` (all native functions), ``@all`` (all global functions) and
    ``@compiler_optimized`` (functions that are specially optimized by Zend);
    defaults to ``['@internal']``
  - ``scope`` (``'all'``, ``'namespaced'``): only fix function calls that are made
    within a namespace or fix all; defaults to ``'all'``
  - ``strict`` (``bool``): whether leading ``\`` of function call not meant to have it
    should be removed; defaults to ``false``

* **native_function_type_declaration_casing** [@Symfony, @PhpCsFixer]

  Native type hints for functions should use the correct case.

* **new_with_braces** [@Symfony, @PhpCsFixer]

  All instances created with new keyword must be followed by braces.

* **no_alias_functions** [@Symfony:risky, @PhpCsFixer:risky]

  Master functions shall be used instead of aliases.

  *Risky rule: risky when any of the alias functions are overridden.*

  Configuration options:

  - ``sets`` (a subset of ``['@internal', '@IMAP', '@mbreg', '@all']``): list of
    sets to fix. Defined sets are ``@internal`` (native functions), ``@IMAP``
    (IMAP functions), ``@mbreg`` (from ``ext-mbstring``) ``@all`` (all listed
    sets); defaults to ``['@internal', '@IMAP']``

* **no_alternative_syntax** [@PhpCsFixer]

  Replace control structure alternative syntax to use braces.

* **no_binary_string** [@PhpCsFixer]

  There should not be a binary flag before strings.

* **no_blank_lines_after_class_opening** [@Symfony, @PhpCsFixer]

  There should be no empty lines after class opening brace.

* **no_blank_lines_after_phpdoc** [@Symfony, @PhpCsFixer]

  There should not be blank lines between docblock and the documented
  element.

* **no_blank_lines_before_namespace**

  There should be no blank lines before a namespace declaration.

* **no_break_comment** [@PSR2, @Symfony, @PhpCsFixer]

  There must be a comment when fall-through is intentional in a non-empty
  case body.

  Configuration options:

  - ``comment_text`` (``string``): the text to use in the added comment and to
    detect it; defaults to ``'no break'``

* **no_closing_tag** [@PSR2, @Symfony, @PhpCsFixer]

  The closing ``?>`` tag MUST be omitted from files containing only PHP.

* **no_empty_comment** [@Symfony, @PhpCsFixer]

  There should not be any empty comments.

* **no_empty_phpdoc** [@Symfony, @PhpCsFixer]

  There should not be empty PHPDoc blocks.

* **no_empty_statement** [@Symfony, @PhpCsFixer]

  Remove useless semicolon statements.

* **no_extra_blank_lines** [@Symfony, @PhpCsFixer]

  Removes extra blank lines and/or blank lines following configuration.

  Configuration options:

  - ``tokens`` (a subset of ``['break', 'case', 'continue', 'curly_brace_block',
    'default', 'extra', 'parenthesis_brace_block', 'return',
    'square_brace_block', 'switch', 'throw', 'use', 'useTrait',
    'use_trait']``): list of tokens to fix; defaults to ``['extra']``

* **no_extra_consecutive_blank_lines**

  Removes extra blank lines and/or blank lines following configuration.
  DEPRECATED: use ``no_extra_blank_lines`` instead.

  Configuration options:

  - ``tokens`` (a subset of ``['break', 'case', 'continue', 'curly_brace_block',
    'default', 'extra', 'parenthesis_brace_block', 'return',
    'square_brace_block', 'switch', 'throw', 'use', 'useTrait',
    'use_trait']``): list of tokens to fix; defaults to ``['extra']``

* **no_homoglyph_names** [@Symfony:risky, @PhpCsFixer:risky]

  Replace accidental usage of homoglyphs (non ascii characters) in names.

  *Risky rule: renames classes and cannot rename the files. You might have string references to renamed code (``$$name``).*

* **no_leading_import_slash** [@Symfony, @PhpCsFixer]

  Remove leading slashes in ``use`` clauses.

* **no_leading_namespace_whitespace** [@Symfony, @PhpCsFixer]

  The namespace declaration line shouldn't contain leading whitespace.

* **no_mixed_echo_print** [@Symfony, @PhpCsFixer]

  Either language construct ``print`` or ``echo`` should be used.

  Configuration options:

  - ``use`` (``'echo'``, ``'print'``): the desired language construct; defaults to
    ``'echo'``

* **no_multiline_whitespace_around_double_arrow** [@Symfony, @PhpCsFixer]

  Operator ``=>`` should not be surrounded by multi-line whitespaces.

* **no_multiline_whitespace_before_semicolons**

  Multi-line whitespace before closing semicolon are prohibited.
  DEPRECATED: use ``multiline_whitespace_before_semicolons`` instead.

* **no_null_property_initialization** [@PhpCsFixer]

  Properties MUST not be explicitly initialized with ``null`` except when
  they have a type declaration (PHP 7.4).

* **no_php4_constructor**

  Convert PHP4-style constructors to ``__construct``.

  *Risky rule: risky when old style constructor being fixed is overridden or overrides parent one.*

* **no_short_bool_cast** [@Symfony, @PhpCsFixer]

  Short cast ``bool`` using double exclamation mark should not be used.

* **no_short_echo_tag** [@PhpCsFixer]

  Replace short-echo ``<?=`` with long format ``<?php echo`` syntax.

* **no_singleline_whitespace_before_semicolons** [@Symfony, @PhpCsFixer]

  Single-line whitespace before closing semicolon are prohibited.

* **no_spaces_after_function_name** [@PSR2, @Symfony, @PhpCsFixer]

  When making a method or function call, there MUST NOT be a space between
  the method or function name and the opening parenthesis.

* **no_spaces_around_offset** [@Symfony, @PhpCsFixer]

  There MUST NOT be spaces around offset braces.

  Configuration options:

  - ``positions`` (a subset of ``['inside', 'outside']``): whether spacing should be
    fixed inside and/or outside the offset braces; defaults to ``['inside',
    'outside']``

* **no_spaces_inside_parenthesis** [@PSR2, @Symfony, @PhpCsFixer]

  There MUST NOT be a space after the opening parenthesis. There MUST NOT
  be a space before the closing parenthesis.

* **no_superfluous_elseif** [@PhpCsFixer]

  Replaces superfluous ``elseif`` with ``if``.

* **no_superfluous_phpdoc_tags** [@Symfony, @PhpCsFixer]

  Removes ``@param``, ``@return`` and ``@var`` tags that don't provide any
  useful information.

  Configuration options:

  - ``allow_mixed`` (``bool``): whether type ``mixed`` without description is allowed
    (``true``) or considered superfluous (``false``); defaults to ``false``
  - ``allow_unused_params`` (``bool``): whether ``param`` annotation without actual
    signature is allowed (``true``) or considered superfluous (``false``);
    defaults to ``false``
  - ``remove_inheritdoc`` (``bool``): remove ``@inheritDoc`` tags; defaults to ``false``

* **no_trailing_comma_in_list_call** [@Symfony, @PhpCsFixer]

  Remove trailing commas in list function calls.

* **no_trailing_comma_in_singleline_array** [@Symfony, @PhpCsFixer]

  PHP single-line arrays should not have trailing comma.

* **no_trailing_whitespace** [@PSR2, @Symfony, @PhpCsFixer]

  Remove trailing whitespace at the end of non-blank lines.

* **no_trailing_whitespace_in_comment** [@PSR2, @Symfony, @PhpCsFixer]

  There MUST be no trailing spaces inside comment or PHPDoc.

* **no_unneeded_control_parentheses** [@Symfony, @PhpCsFixer]

  Removes unneeded parentheses around control statements.

  Configuration options:

  - ``statements`` (``array``): list of control statements to fix; defaults to
    ``['break', 'clone', 'continue', 'echo_print', 'return', 'switch_case',
    'yield']``

* **no_unneeded_curly_braces** [@Symfony, @PhpCsFixer]

  Removes unneeded curly braces that are superfluous and aren't part of a
  control structure's body.

  Configuration options:

  - ``namespaces`` (``bool``): remove unneeded curly braces from bracketed
    namespaces; defaults to ``false``

* **no_unneeded_final_method** [@Symfony:risky, @PhpCsFixer:risky]

  A ``final`` class must not have ``final`` methods and ``private`` methods must
  not be ``final``.

  *Risky rule: risky when child class overrides a ``private`` method.*

* **no_unreachable_default_argument_value** [@PhpCsFixer:risky]

  In function arguments there must not be arguments with default values
  before non-default ones.

  *Risky rule: modifies the signature of functions; therefore risky when using systems (such as some Symfony components) that rely on those (for example through reflection).*

* **no_unset_cast** [@PhpCsFixer]

  Variables must be set ``null`` instead of using ``(unset)`` casting.

* **no_unset_on_property** [@PhpCsFixer:risky]

  Properties should be set to ``null`` instead of using ``unset``.

  *Risky rule: changing variables to ``null`` instead of unsetting them will mean they still show up when looping over class variables. With PHP 7.4, this rule might introduce ``null`` assignments to property whose type declaration does not allow it.*

* **no_unused_imports** [@Symfony, @PhpCsFixer]

  Unused ``use`` statements must be removed.

* **no_useless_else** [@PhpCsFixer]

  There should not be useless ``else`` cases.

* **no_useless_return** [@PhpCsFixer]

  There should not be an empty ``return`` statement at the end of a
  function.

* **no_whitespace_before_comma_in_array** [@Symfony, @PhpCsFixer]

  In array declaration, there MUST NOT be a whitespace before each comma.

  Configuration options:

  - ``after_heredoc`` (``bool``): whether the whitespace between heredoc end and
    comma should be removed; defaults to ``false``

* **no_whitespace_in_blank_line** [@Symfony, @PhpCsFixer]

  Remove trailing whitespace at the end of blank lines.

* **non_printable_character** [@Symfony:risky, @PhpCsFixer:risky, @PHP70Migration:risky, @PHP71Migration:risky]

  Remove Zero-width space (ZWSP), Non-breaking space (NBSP) and other
  invisible unicode symbols.

  *Risky rule: risky when strings contain intended invisible characters.*

  Configuration options:

  - ``use_escape_sequences_in_strings`` (``bool``): whether characters should be
    replaced with escape sequences in strings; defaults to ``false``

* **normalize_index_brace** [@Symfony, @PhpCsFixer]

  Array index should always be written by using square braces.

* **not_operator_with_space**

  Logical NOT operators (``!``) should have leading and trailing
  whitespaces.

* **not_operator_with_successor_space**

  Logical NOT operators (``!``) should have one trailing whitespace.

* **nullable_type_declaration_for_default_null_value**

  Adds or removes ``?`` before type declarations for parameters with a
  default ``null`` value.

  Configuration options:

  - ``use_nullable_type_declaration`` (``bool``): whether to add or remove ``?``
    before type declarations for parameters with a default ``null`` value;
    defaults to ``true``

* **object_operator_without_whitespace** [@Symfony, @PhpCsFixer]

  There should not be space before or after object ``T_OBJECT_OPERATOR``
  ``->``.

* **ordered_class_elements** [@PhpCsFixer]

  Orders the elements of classes/interfaces/traits.

  Configuration options:

  - ``order`` (a subset of ``['use_trait', 'public', 'protected', 'private',
    'constant', 'constant_public', 'constant_protected',
    'constant_private', 'property', 'property_static', 'property_public',
    'property_protected', 'property_private', 'property_public_static',
    'property_protected_static', 'property_private_static', 'method',
    'method_static', 'method_public', 'method_protected', 'method_private',
    'method_public_static', 'method_protected_static',
    'method_private_static', 'construct', 'destruct', 'magic', 'phpunit']``):
    list of strings defining order of elements; defaults to ``['use_trait',
    'constant_public', 'constant_protected', 'constant_private',
    'property_public', 'property_protected', 'property_private',
    'construct', 'destruct', 'magic', 'phpunit', 'method_public',
    'method_protected', 'method_private']``
  - ``sortAlgorithm`` (``'alpha'``, ``'none'``): how multiple occurrences of same type
    statements should be sorted; defaults to ``'none'``

* **ordered_imports** [@Symfony, @PhpCsFixer]

  Ordering ``use`` statements.

  Configuration options:

  - ``imports_order`` (``array``, ``null``): defines the order of import types; defaults
    to ``null``; DEPRECATED alias: ``importsOrder``
  - ``sort_algorithm`` (``'alpha'``, ``'length'``, ``'none'``): whether the statements
    should be sorted alphabetically or by length, or not sorted; defaults
    to ``'alpha'``; DEPRECATED alias: ``sortAlgorithm``

* **ordered_interfaces**

  Orders the interfaces in an ``implements`` or ``interface extends`` clause.

  *Risky rule: risky for ``implements`` when specifying both an interface and its parent interface, because PHP doesn't break on ``parent, child`` but does on ``child, parent``.*

  Configuration options:

  - ``direction`` (``'ascend'``, ``'descend'``): which direction the interfaces should
    be ordered; defaults to ``'ascend'``
  - ``order`` (``'alpha'``, ``'length'``): how the interfaces should be ordered;
    defaults to ``'alpha'``

* **php_unit_construct** [@Symfony:risky, @PhpCsFixer:risky]

  PHPUnit assertion method calls like ``->assertSame(true, $foo)`` should be
  written with dedicated method like ``->assertTrue($foo)``.

  *Risky rule: fixer could be risky if one is overriding PHPUnit's native methods.*

  Configuration options:

  - ``assertions`` (a subset of ``['assertSame', 'assertEquals',
    'assertNotEquals', 'assertNotSame']``): list of assertion methods to fix;
    defaults to ``['assertEquals', 'assertSame', 'assertNotEquals',
    'assertNotSame']``

* **php_unit_dedicate_assert** [@PHPUnit30Migration:risky, @PHPUnit32Migration:risky, @PHPUnit35Migration:risky, @PHPUnit43Migration:risky, @PHPUnit48Migration:risky, @PHPUnit50Migration:risky, @PHPUnit52Migration:risky, @PHPUnit54Migration:risky, @PHPUnit55Migration:risky, @PHPUnit56Migration:risky, @PHPUnit57Migration:risky, @PHPUnit60Migration:risky, @PHPUnit75Migration:risky]

  PHPUnit assertions like ``assertInternalType``, ``assertFileExists``, should
  be used over ``assertTrue``.

  *Risky rule: fixer could be risky if one is overriding PHPUnit's native methods.*

  Configuration options:

  - ``functions`` (a subset of ``['array_key_exists', 'empty', 'file_exists',
    'is_array', 'is_bool', 'is_callable', 'is_double', 'is_float',
    'is_infinite', 'is_int', 'is_integer', 'is_long', 'is_nan', 'is_null',
    'is_numeric', 'is_object', 'is_real', 'is_resource', 'is_scalar',
    'is_string']``, ``null``): list of assertions to fix (overrides ``target``);
    defaults to ``null``. DEPRECATED: use option ``target`` instead
  - ``target`` (``'3.0'``, ``'3.5'``, ``'5.0'``, ``'5.6'``, ``'newest'``): target version of
    PHPUnit; defaults to ``'5.0'``

* **php_unit_dedicate_assert_internal_type** [@PHPUnit75Migration:risky]

  PHPUnit assertions like ``assertIsArray`` should be used over
  ``assertInternalType``.

  *Risky rule: risky when PHPUnit methods are overridden or when project has PHPUnit incompatibilities.*

  Configuration options:

  - ``target`` (``'7.5'``, ``'newest'``): target version of PHPUnit; defaults to
    ``'newest'``

* **php_unit_expectation** [@PHPUnit52Migration:risky, @PHPUnit54Migration:risky, @PHPUnit55Migration:risky, @PHPUnit56Migration:risky, @PHPUnit57Migration:risky, @PHPUnit60Migration:risky, @PHPUnit75Migration:risky]

  Usages of ``->setExpectedException*`` methods MUST be replaced by
  ``->expectException*`` methods.

  *Risky rule: risky when PHPUnit classes are overridden or not accessible, or when project has PHPUnit incompatibilities.*

  Configuration options:

  - ``target`` (``'5.2'``, ``'5.6'``, ``'newest'``): target version of PHPUnit; defaults to
    ``'newest'``

* **php_unit_fqcn_annotation** [@Symfony, @PhpCsFixer]

  PHPUnit annotations should be a FQCNs including a root namespace.

* **php_unit_internal_class** [@PhpCsFixer]

  All PHPUnit test classes should be marked as internal.

  Configuration options:

  - ``types`` (a subset of ``['normal', 'final', 'abstract']``): what types of
    classes to mark as internal; defaults to ``['normal', 'final']``

* **php_unit_method_casing** [@PhpCsFixer]

  Enforce camel (or snake) case for PHPUnit test methods, following
  configuration.

  Configuration options:

  - ``case`` (``'camel_case'``, ``'snake_case'``): apply camel or snake case to test
    methods; defaults to ``'camel_case'``

* **php_unit_mock** [@PHPUnit54Migration:risky, @PHPUnit55Migration:risky, @PHPUnit56Migration:risky, @PHPUnit57Migration:risky, @PHPUnit60Migration:risky, @PHPUnit75Migration:risky]

  Usages of ``->getMock`` and
  ``->getMockWithoutInvokingTheOriginalConstructor`` methods MUST be
  replaced by ``->createMock`` or ``->createPartialMock`` methods.

  *Risky rule: risky when PHPUnit classes are overridden or not accessible, or when project has PHPUnit incompatibilities.*

  Configuration options:

  - ``target`` (``'5.4'``, ``'5.5'``, ``'newest'``): target version of PHPUnit; defaults to
    ``'newest'``

* **php_unit_mock_short_will_return** [@Symfony:risky, @PhpCsFixer:risky]

  Usage of PHPUnit's mock e.g. ``->will($this->returnValue(..))`` must be
  replaced by its shorter equivalent such as ``->willReturn(...)``.

  *Risky rule: risky when PHPUnit classes are overridden or not accessible, or when project has PHPUnit incompatibilities.*

* **php_unit_namespaced** [@PHPUnit48Migration:risky, @PHPUnit50Migration:risky, @PHPUnit52Migration:risky, @PHPUnit54Migration:risky, @PHPUnit55Migration:risky, @PHPUnit56Migration:risky, @PHPUnit57Migration:risky, @PHPUnit60Migration:risky, @PHPUnit75Migration:risky]

  PHPUnit classes MUST be used in namespaced version, e.g.
  ``\PHPUnit\Framework\TestCase`` instead of ``\PHPUnit_Framework_TestCase``.

  *Risky rule: risky when PHPUnit classes are overridden or not accessible, or when project has PHPUnit incompatibilities.*

  Configuration options:

  - ``target`` (``'4.8'``, ``'5.7'``, ``'6.0'``, ``'newest'``): target version of PHPUnit;
    defaults to ``'newest'``

* **php_unit_no_expectation_annotation** [@PHPUnit32Migration:risky, @PHPUnit35Migration:risky, @PHPUnit43Migration:risky, @PHPUnit48Migration:risky, @PHPUnit50Migration:risky, @PHPUnit52Migration:risky, @PHPUnit54Migration:risky, @PHPUnit55Migration:risky, @PHPUnit56Migration:risky, @PHPUnit57Migration:risky, @PHPUnit60Migration:risky, @PHPUnit75Migration:risky]

  Usages of ``@expectedException*`` annotations MUST be replaced by
  ``->setExpectedException*`` methods.

  *Risky rule: risky when PHPUnit classes are overridden or not accessible, or when project has PHPUnit incompatibilities.*

  Configuration options:

  - ``target`` (``'3.2'``, ``'4.3'``, ``'newest'``): target version of PHPUnit; defaults to
    ``'newest'``
  - ``use_class_const`` (``bool``): use ::class notation; defaults to ``true``

* **php_unit_ordered_covers** [@PhpCsFixer]

  Order ``@covers`` annotation of PHPUnit tests.

* **php_unit_set_up_tear_down_visibility** [@PhpCsFixer:risky]

  Changes the visibility of the ``setUp()`` and ``tearDown()`` functions of
  PHPUnit to ``protected``, to match the PHPUnit TestCase.

  *Risky rule: this fixer may change functions named ``setUp()`` or ``tearDown()`` outside of PHPUnit tests, when a class is wrongly seen as a PHPUnit test.*

* **php_unit_size_class**

  All PHPUnit test cases should have ``@small``, ``@medium`` or ``@large``
  annotation to enable run time limits.

  Configuration options:

  - ``group`` (``'large'``, ``'medium'``, ``'small'``): define a specific group to be used
    in case no group is already in use; defaults to ``'small'``

* **php_unit_strict** [@PhpCsFixer:risky]

  PHPUnit methods like ``assertSame`` should be used instead of
  ``assertEquals``.

  *Risky rule: risky when any of the functions are overridden or when testing object equality.*

  Configuration options:

  - ``assertions`` (a subset of ``['assertAttributeEquals',
    'assertAttributeNotEquals', 'assertEquals', 'assertNotEquals']``): list
    of assertion methods to fix; defaults to ``['assertAttributeEquals',
    'assertAttributeNotEquals', 'assertEquals', 'assertNotEquals']``

* **php_unit_test_annotation** [@PhpCsFixer:risky]

  Adds or removes @test annotations from tests, following configuration.

  *Risky rule: this fixer may change the name of your tests, and could cause incompatibility with abstract classes or interfaces.*

  Configuration options:

  - ``case`` (``'camel'``, ``'snake'``): whether to camel or snake case when adding the
    test prefix; defaults to ``'camel'``. DEPRECATED: use
    ``php_unit_method_casing`` fixer instead
  - ``style`` (``'annotation'``, ``'prefix'``): whether to use the @test annotation or
    not; defaults to ``'prefix'``

* **php_unit_test_case_static_method_calls** [@PhpCsFixer:risky]

  Calls to ``PHPUnit\Framework\TestCase`` static methods must all be of the
  same type, either ``$this->``, ``self::`` or ``static::``.

  *Risky rule: risky when PHPUnit methods are overridden or not accessible, or when project has PHPUnit incompatibilities.*

  Configuration options:

  - ``call_type`` (``'self'``, ``'static'``, ``'this'``): the call type to use for referring
    to PHPUnit methods; defaults to ``'static'``
  - ``methods`` (``array``): dictionary of ``method`` => ``call_type`` values that
    differ from the default strategy; defaults to ``[]``

* **php_unit_test_class_requires_covers** [@PhpCsFixer]

  Adds a default ``@coversNothing`` annotation to PHPUnit test classes that
  have no ``@covers*`` annotation.

* **phpdoc_add_missing_param_annotation** [@PhpCsFixer]

  PHPDoc should contain ``@param`` for all params.

  Configuration options:

  - ``only_untyped`` (``bool``): whether to add missing ``@param`` annotations for
    untyped parameters only; defaults to ``true``

* **phpdoc_align** [@Symfony, @PhpCsFixer]

  All items of the given phpdoc tags must be either left-aligned or (by
  default) aligned vertically.

  Configuration options:

  - ``align`` (``'left'``, ``'vertical'``): align comments; defaults to ``'vertical'``
  - ``tags`` (a subset of ``['param', 'property', 'property-read',
    'property-write', 'return', 'throws', 'type', 'var', 'method']``): the
    tags that should be aligned; defaults to ``['param', 'return', 'throws',
    'type', 'var']``

* **phpdoc_annotation_without_dot** [@Symfony, @PhpCsFixer]

  PHPDoc annotation descriptions should not be a sentence.

* **phpdoc_indent** [@Symfony, @PhpCsFixer]

  Docblocks should have the same indentation as the documented subject.

* **phpdoc_inline_tag** [@Symfony, @PhpCsFixer]

  Fix PHPDoc inline tags, make ``@inheritdoc`` always inline.

* **phpdoc_line_span**

  Changes doc blocks from single to multi line, or reversed. Works for
  class constants, properties and methods only.

  Configuration options:

  - ``const`` (``'multi'``, ``'single'``): whether const blocks should be single or
    multi line; defaults to ``'multi'``
  - ``method`` (``'multi'``, ``'single'``): whether method doc blocks should be single
    or multi line; defaults to ``'multi'``
  - ``property`` (``'multi'``, ``'single'``): whether property doc blocks should be
    single or multi line; defaults to ``'multi'``

* **phpdoc_no_access** [@Symfony, @PhpCsFixer]

  ``@access`` annotations should be omitted from PHPDoc.

* **phpdoc_no_alias_tag** [@Symfony, @PhpCsFixer]

  No alias PHPDoc tags should be used.

  Configuration options:

  - ``replacements`` (``array``): mapping between replaced annotations with new
    ones; defaults to ``['property-read' => 'property', 'property-write' =>
    'property', 'type' => 'var', 'link' => 'see']``

* **phpdoc_no_empty_return** [@PhpCsFixer]

  ``@return void`` and ``@return null`` annotations should be omitted from
  PHPDoc.

* **phpdoc_no_package** [@Symfony, @PhpCsFixer]

  ``@package`` and ``@subpackage`` annotations should be omitted from PHPDoc.

* **phpdoc_no_useless_inheritdoc** [@Symfony, @PhpCsFixer]

  Classy that does not inherit must not have ``@inheritdoc`` tags.

* **phpdoc_order** [@PhpCsFixer]

  Annotations in PHPDoc should be ordered so that ``@param`` annotations
  come first, then ``@throws`` annotations, then ``@return`` annotations.

* **phpdoc_return_self_reference** [@Symfony, @PhpCsFixer]

  The type of ``@return`` annotations of methods returning a reference to
  itself must the configured one.

  Configuration options:

  - ``replacements`` (``array``): mapping between replaced return types with new
    ones; defaults to ``['this' => '$this', '@this' => '$this', '$self' =>
    'self', '@self' => 'self', '$static' => 'static', '@static' =>
    'static']``

* **phpdoc_scalar** [@Symfony, @PhpCsFixer]

  Scalar types should always be written in the same form. ``int`` not
  ``integer``, ``bool`` not ``boolean``, ``float`` not ``real`` or ``double``.

  Configuration options:

  - ``types`` (a subset of ``['boolean', 'callback', 'double', 'integer', 'real',
    'str']``): a map of types to fix; defaults to ``['boolean', 'double',
    'integer', 'real', 'str']``

* **phpdoc_separation** [@Symfony, @PhpCsFixer]

  Annotations in PHPDoc should be grouped together so that annotations of
  the same type immediately follow each other, and annotations of a
  different type are separated by a single blank line.

* **phpdoc_single_line_var_spacing** [@Symfony, @PhpCsFixer]

  Single line ``@var`` PHPDoc should have proper spacing.

* **phpdoc_summary** [@Symfony, @PhpCsFixer]

  PHPDoc summary should end in either a full stop, exclamation mark, or
  question mark.

* **phpdoc_to_comment** [@Symfony, @PhpCsFixer]

  Docblocks should only be used on structural elements.

* **phpdoc_to_param_type**

  EXPERIMENTAL: Takes ``@param`` annotations of non-mixed types and adjusts
  accordingly the function signature. Requires PHP >= 7.0.

  *Risky rule: this rule is EXPERIMENTAL and [1] is not covered with backward compatibility promise. [2] ``@param`` annotation is mandatory for the fixer to make changes, signatures of methods without it (no docblock, inheritdocs) will not be fixed. [3] Manual actions are required if inherited signatures are not properly documented.*

  Configuration options:

  - ``scalar_types`` (``bool``): fix also scalar types; may have unexpected
    behaviour due to PHP bad type coercion system; defaults to ``true``

* **phpdoc_to_return_type**

  EXPERIMENTAL: Takes ``@return`` annotation of non-mixed types and adjusts
  accordingly the function signature. Requires PHP >= 7.0.

  *Risky rule: this rule is EXPERIMENTAL and [1] is not covered with backward compatibility promise. [2] ``@return`` annotation is mandatory for the fixer to make changes, signatures of methods without it (no docblock, inheritdocs) will not be fixed. [3] Manual actions are required if inherited signatures are not properly documented. [4] ``@inheritdocs`` support is under construction.*

  Configuration options:

  - ``scalar_types`` (``bool``): fix also scalar types; may have unexpected
    behaviour due to PHP bad type coercion system; defaults to ``true``

* **phpdoc_trim** [@Symfony, @PhpCsFixer]

  PHPDoc should start and end with content, excluding the very first and
  last line of the docblocks.

* **phpdoc_trim_consecutive_blank_line_separation** [@Symfony, @PhpCsFixer]

  Removes extra blank lines after summary and after description in PHPDoc.

* **phpdoc_types** [@Symfony, @PhpCsFixer]

  The correct case must be used for standard PHP types in PHPDoc.

  Configuration options:

  - ``groups`` (a subset of ``['simple', 'alias', 'meta']``): type groups to fix;
    defaults to ``['simple', 'alias', 'meta']``

* **phpdoc_types_order** [@Symfony, @PhpCsFixer]

  Sorts PHPDoc types.

  Configuration options:

  - ``null_adjustment`` (``'always_first'``, ``'always_last'``, ``'none'``): forces the
    position of ``null`` (overrides ``sort_algorithm``); defaults to
    ``'always_first'``
  - ``sort_algorithm`` (``'alpha'``, ``'none'``): the sorting algorithm to apply;
    defaults to ``'alpha'``

* **phpdoc_var_annotation_correct_order** [@PhpCsFixer]

  ``@var`` and ``@type`` annotations must have type and name in the correct
  order.

* **phpdoc_var_without_name** [@Symfony, @PhpCsFixer]

  ``@var`` and ``@type`` annotations of classy properties should not contain
  the name.

* **pow_to_exponentiation** [@PHP56Migration:risky, @PHP70Migration:risky, @PHP71Migration:risky]

  Converts ``pow`` to the ``**`` operator.

  *Risky rule: risky when the function ``pow`` is overridden.*

* **pre_increment**

  Pre incrementation/decrementation should be used if possible.
  DEPRECATED: use ``increment_style`` instead.

* **protected_to_private** [@PhpCsFixer]

  Converts ``protected`` variables and methods to ``private`` where possible.

* **psr0**

  Classes must be in a path that matches their namespace, be at least one
  namespace deep and the class name should match the file name.

  *Risky rule: this fixer may change your class name, which will break the code that depends on the old name.*

  Configuration options:

  - ``dir`` (``string``): the directory where the project code is placed; defaults
    to ``''``

* **psr4** [@Symfony:risky, @PhpCsFixer:risky]

  Class names should match the file name.

  *Risky rule: this fixer may change your class name, which will break the code that depends on the old name.*

* **random_api_migration** [@PHP70Migration:risky, @PHP71Migration:risky]

  Replaces ``rand``, ``srand``, ``getrandmax`` functions calls with their ``mt_*``
  analogs.

  *Risky rule: risky when the configured functions are overridden.*

  Configuration options:

  - ``replacements`` (``array``): mapping between replaced functions with the new
    ones; defaults to ``['getrandmax' => 'mt_getrandmax', 'rand' =>
    'mt_rand', 'srand' => 'mt_srand']``

* **return_assignment** [@PhpCsFixer]

  Local, dynamic and directly referenced variables should not be assigned
  and directly returned by a function or method.

* **return_type_declaration** [@Symfony, @PhpCsFixer]

  There should be one or no space before colon, and one space after it in
  return type declarations, according to configuration.

  Configuration options:

  - ``space_before`` (``'none'``, ``'one'``): spacing to apply before colon; defaults to
    ``'none'``

* **self_accessor** [@Symfony:risky, @PhpCsFixer:risky]

  Inside class or interface element ``self`` should be preferred to the
  class name itself.

  *Risky rule: risky when using dynamic calls like get_called_class() or late static binding.*

* **self_static_accessor**

  Inside a ``final`` class or anonymous class ``self`` should be preferred to
  ``static``.

* **semicolon_after_instruction** [@Symfony, @PhpCsFixer]

  Instructions must be terminated with a semicolon.

* **set_type_to_cast** [@Symfony:risky, @PhpCsFixer:risky]

  Cast shall be used, not ``settype``.

  *Risky rule: risky when the ``settype`` function is overridden or when used as the 2nd or 3rd expression in a ``for`` loop .*

* **short_scalar_cast** [@Symfony, @PhpCsFixer]

  Cast ``(boolean)`` and ``(integer)`` should be written as ``(bool)`` and
  ``(int)``, ``(double)`` and ``(real)`` as ``(float)``, ``(binary)`` as
  ``(string)``.

* **silenced_deprecation_error**

  Ensures deprecation notices are silenced. DEPRECATED: use
  ``error_suppression`` instead.

  *Risky rule: silencing of deprecation errors might cause changes to code behaviour.*

* **simple_to_complex_string_variable** [@PhpCsFixer]

  Converts explicit variables in double-quoted strings and heredoc syntax
  from simple to complex format (``${`` to ``{$``).

* **simplified_null_return**

  A return statement wishing to return ``void`` should not return ``null``.

* **single_blank_line_at_eof** [@PSR2, @Symfony, @PhpCsFixer]

  A PHP file without end tag must always end with a single empty line
  feed.

* **single_blank_line_before_namespace** [@Symfony, @PhpCsFixer]

  There should be exactly one blank line before a namespace declaration.

* **single_class_element_per_statement** [@PSR2, @Symfony, @PhpCsFixer]

  There MUST NOT be more than one property or constant declared per
  statement.

  Configuration options:

  - ``elements`` (a subset of ``['const', 'property']``): list of strings which
    element should be modified; defaults to ``['const', 'property']``

* **single_import_per_statement** [@PSR2, @Symfony, @PhpCsFixer]

  There MUST be one use keyword per declaration.

* **single_line_after_imports** [@PSR2, @Symfony, @PhpCsFixer]

  Each namespace use MUST go on its own line and there MUST be one blank
  line after the use statements block.

* **single_line_comment_style** [@Symfony, @PhpCsFixer]

  Single-line comments and multi-line comments with only one line of
  actual content should use the ``//`` syntax.

  Configuration options:

  - ``comment_types`` (a subset of ``['asterisk', 'hash']``): list of comment types
    to fix; defaults to ``['asterisk', 'hash']``

* **single_line_throw** [@Symfony]

  Throwing exception must be done in single line.

* **single_quote** [@Symfony, @PhpCsFixer]

  Convert double quotes to single quotes for simple strings.

  Configuration options:

  - ``strings_containing_single_quote_chars`` (``bool``): whether to fix
    double-quoted strings that contains single-quotes; defaults to ``false``

* **single_trait_insert_per_statement** [@Symfony, @PhpCsFixer]

  Each trait ``use`` must be done as single statement.

* **space_after_semicolon** [@Symfony, @PhpCsFixer]

  Fix whitespace after a semicolon.

  Configuration options:

  - ``remove_in_empty_for_expressions`` (``bool``): whether spaces should be removed
    for empty ``for`` expressions; defaults to ``false``

* **standardize_increment** [@Symfony, @PhpCsFixer]

  Increment and decrement operators should be used if possible.

* **standardize_not_equals** [@Symfony, @PhpCsFixer]

  Replace all ``<>`` with ``!=``.

* **static_lambda**

  Lambdas not (indirect) referencing ``$this`` must be declared ``static``.

  *Risky rule: risky when using ``->bindTo`` on lambdas without referencing to ``$this``.*

* **strict_comparison** [@PhpCsFixer:risky]

  Comparisons should be strict.

  *Risky rule: changing comparisons to strict might change code behavior.*

* **strict_param** [@PhpCsFixer:risky]

  Functions should be used with ``$strict`` param set to ``true``.

  *Risky rule: risky when the fixed function is overridden or if the code relies on non-strict usage.*

* **string_line_ending** [@PhpCsFixer:risky]

  All multi-line strings must use correct line ending.

  *Risky rule: changing the line endings of multi-line strings might affect string comparisons and outputs.*

* **switch_case_semicolon_to_colon** [@PSR2, @Symfony, @PhpCsFixer]

  A case should be followed by a colon and not a semicolon.

* **switch_case_space** [@PSR2, @Symfony, @PhpCsFixer]

  Removes extra spaces between colon and case value.

* **ternary_operator_spaces** [@Symfony, @PhpCsFixer]

  Standardize spaces around ternary operator.

* **ternary_to_null_coalescing** [@PHP70Migration, @PHP71Migration, @PHP73Migration]

  Use ``null`` coalescing operator ``??`` where possible. Requires PHP >= 7.0.

* **trailing_comma_in_multiline_array** [@Symfony, @PhpCsFixer]

  PHP multi-line arrays should have a trailing comma.

  Configuration options:

  - ``after_heredoc`` (``bool``): whether a trailing comma should also be placed
    after heredoc end; defaults to ``false``

* **trim_array_spaces** [@Symfony, @PhpCsFixer]

  Arrays should be formatted like function/method arguments, without
  leading or trailing single line space.

* **unary_operator_spaces** [@Symfony, @PhpCsFixer]

  Unary operators should be placed adjacent to their operands.

* **visibility_required** [@PSR2, @Symfony, @PhpCsFixer, @PHP71Migration, @PHP73Migration]

  Visibility MUST be declared on all properties and methods; ``abstract``
  and ``final`` MUST be declared before the visibility; ``static`` MUST be
  declared after the visibility.

  Configuration options:

  - ``elements`` (a subset of ``['property', 'method', 'const']``): the structural
    elements to fix (PHP >= 7.1 required for ``const``); defaults to
    ``['property', 'method']``

* **void_return** [@PHP71Migration:risky]

  Add ``void`` return type to functions with missing or empty return
  statements, but priority is given to ``@return`` annotations. Requires
  PHP >= 7.1.

  *Risky rule: modifies the signature of functions.*

* **whitespace_after_comma_in_array** [@Symfony, @PhpCsFixer]

  In array declaration, there MUST be a whitespace after each comma.

* **yoda_style** [@Symfony, @PhpCsFixer]

  Write conditions in Yoda style (``true``), non-Yoda style (``false``) or
  ignore those conditions (``null``) based on configuration.

  Configuration options:

  - ``always_move_variable`` (``bool``): whether variables should always be on non
    assignable side when applying Yoda style; defaults to ``false``
  - ``equal`` (``bool``, ``null``): style for equal (``==``, ``!=``) statements; defaults to
    ``true``
  - ``identical`` (``bool``, ``null``): style for identical (``===``, ``!==``) statements;
    defaults to ``true``
  - ``less_and_greater`` (``bool``, ``null``): style for less and greater than (``<``,
    ``<=``, ``>``, ``>=``) statements; defaults to ``null``


The ``--dry-run`` option displays the files that need to be
fixed but without actually modifying them:

.. code-block:: bash

    $ php php-cs-fixer.phar fix /path/to/code --dry-run

Config file
-----------

Instead of using command line options to customize the rule, you can save the
project configuration in a ``.php_cs.dist`` file in the root directory of your project.
The file must return an instance of `PhpCsFixer\\ConfigInterface <https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/v2.16.4/src/ConfigInterface.php>`_
which lets you configure the rules, the files and directories that
need to be analyzed. You may also create ``.php_cs`` file, which is
the local configuration that will be used instead of the project configuration. It
is a good practice to add that file into your ``.gitignore`` file.
With the ``--config`` option you can specify the path to the
``.php_cs`` file.

The example below will add two rules to the default list of PSR2 set rules:

.. code-block:: php

    <?php

    $finder = PhpCsFixer\Finder::create()
        ->exclude('somedir')
        ->notPath('src/Symfony/Component/Translation/Tests/fixtures/resources.php')
        ->in(__DIR__)
    ;

    return PhpCsFixer\Config::create()
        ->setRules([
            '@PSR2' => true,
            'strict_param' => true,
            'array_syntax' => ['syntax' => 'short'],
        ])
        ->setFinder($finder)
    ;

**NOTE**: ``exclude`` will work only for directories, so if you need to exclude file, try ``notPath``.
Both ``exclude`` and ``notPath`` methods accept only relative paths to the ones defined with the ``in`` method.

See `Symfony\\Finder <https://symfony.com/doc/current/components/finder.html>`_
online documentation for other `Finder` methods.

You may also use an exclude list for the rules instead of the above shown include approach.
The following example shows how to use all ``Symfony`` rules but the ``full_opening_tag`` rule.

.. code-block:: php

    <?php

    $finder = PhpCsFixer\Finder::create()
        ->exclude('somedir')
        ->in(__DIR__)
    ;

    return PhpCsFixer\Config::create()
        ->setRules([
            '@Symfony' => true,
            'full_opening_tag' => false,
        ])
        ->setFinder($finder)
    ;

You may want to use non-linux whitespaces in your project. Then you need to
configure them in your config file.

.. code-block:: php

    <?php

    return PhpCsFixer\Config::create()
        ->setIndent("\t")
        ->setLineEnding("\r\n")
    ;

By using ``--using-cache`` option with ``yes`` or ``no`` you can set if the caching
mechanism should be used.

Caching
-------

The caching mechanism is enabled by default. This will speed up further runs by
fixing only files that were modified since the last run. The tool will fix all
files if the tool version has changed or the list of rules has changed.
Cache is supported only for tool downloaded as phar file or installed via
composer.

Cache can be disabled via ``--using-cache`` option or config file:

.. code-block:: php

    <?php

    return PhpCsFixer\Config::create()
        ->setUsingCache(false)
    ;

Cache file can be specified via ``--cache-file`` option or config file:

.. code-block:: php

    <?php

    return PhpCsFixer\Config::create()
        ->setCacheFile(__DIR__.'/.php_cs.cache')
    ;

Using PHP CS Fixer on CI
------------------------

Require ``friendsofphp/php-cs-fixer`` as a ``dev`` dependency:

.. code-block:: bash

    $ ./composer.phar require --dev friendsofphp/php-cs-fixer

Then, add the following command to your CI:

.. code-block:: bash

    $ IFS='
    $ '
    $ CHANGED_FILES=$(git diff --name-only --diff-filter=ACMRTUXB "${COMMIT_RANGE}")
    $ if ! echo "${CHANGED_FILES}" | grep -qE "^(\\.php_cs(\\.dist)?|composer\\.lock)$"; then EXTRA_ARGS=$(printf -- '--path-mode=intersection\n--\n%s' "${CHANGED_FILES}"); else EXTRA_ARGS=''; fi
    $ vendor/bin/php-cs-fixer fix --config=.php_cs.dist -v --dry-run --stop-on-violation --using-cache=no ${EXTRA_ARGS}

Where ``$COMMIT_RANGE`` is your range of commits, e.g. ``$TRAVIS_COMMIT_RANGE`` or ``HEAD~..HEAD``.

Exit code
---------

Exit code is built using following bit flags:

*  0 - OK.
*  1 - General error (or PHP minimal requirement not matched).
*  4 - Some files have invalid syntax (only in dry-run mode).
*  8 - Some files need fixing (only in dry-run mode).
* 16 - Configuration error of the application.
* 32 - Configuration error of a Fixer.
* 64 - Exception raised within the application.

(Applies to exit code of the ``fix`` command only)

Helpers
-------

Dedicated plugins exist for:

* `Atom`_
* `NetBeans`_
* `PhpStorm`_
* `Sublime Text`_
* `Vim`_
* `VS Code`_

Contribute
----------

The tool comes with quite a few built-in fixers, but everyone is more than
welcome to `contribute`_ more of them.

Fixers
~~~~~~

A *fixer* is a class that tries to fix one CS issue (a ``Fixer`` class must
implement ``FixerInterface``).

Configs
~~~~~~~

A *config* knows about the CS rules and the files and directories that must be
scanned by the tool when run in the directory of your project. It is useful for
projects that follow a well-known directory structures (like for Symfony
projects for instance).

.. _php-cs-fixer.phar: https://cs.symfony.com/download/php-cs-fixer-v2.phar
.. _Atom:              https://github.com/Glavin001/atom-beautify
.. _NetBeans:          http://plugins.netbeans.org/plugin/49042/php-cs-fixer
.. _PhpStorm:          https://medium.com/@valeryan/how-to-configure-phpstorm-to-use-php-cs-fixer-1844991e521f
.. _Sublime Text:      https://github.com/benmatselby/sublime-phpcs
.. _Vim:               https://github.com/stephpy/vim-php-cs-fixer
.. _VS Code:           https://github.com/junstyle/vscode-php-cs-fixer
.. _contribute:        https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/master/CONTRIBUTING.md
{
    "name": "friendsofphp/php-cs-fixer",
    "type": "application",
    "description": "A tool to automatically fix PHP code style",
    "license": "MIT",
    "authors": [
        {
            "name": "Fabien Potencier",
            "email": "fabien@symfony.com"
        },
        {
            "name": "Dariusz Rumiński",
            "email": "dariusz.ruminski@gmail.com"
        }
    ],
    "require": {
        "php": "^5.6 || ^7.0",
        "ext-json": "*",
        "ext-tokenizer": "*",
        "composer/semver": "^1.4",
        "composer/xdebug-handler": "^1.2",
        "doctrine/annotations": "^1.2",
        "php-cs-fixer/diff": "^1.3",
        "symfony/console": "^3.4.17 || ^4.1.6 || ^5.0",
        "symfony/event-dispatcher": "^3.0 || ^4.0 || ^5.0",
        "symfony/filesystem": "^3.0 || ^4.0 || ^5.0",
        "symfony/finder": "^3.0 || ^4.0 || ^5.0",
        "symfony/options-resolver": "^3.0 || ^4.0 || ^5.0",
        "symfony/polyfill-php70": "^1.0",
        "symfony/polyfill-php72": "^1.4",
        "symfony/process": "^3.0 || ^4.0 || ^5.0",
        "symfony/stopwatch": "^3.0 || ^4.0 || ^5.0"
    },
    "require-dev": {
        "johnkary/phpunit-speedtrap": "^1.1 || ^2.0 || ^3.0",
        "justinrainbow/json-schema": "^5.0",
        "keradus/cli-executor": "^1.2",
        "mikey179/vfsstream": "^1.6",
        "php-coveralls/php-coveralls": "^2.1",
        "php-cs-fixer/accessible-object": "^1.0",
        "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.1",
        "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.1",
        "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.1",
        "phpunitgoodpractices/traits": "^1.8",
        "symfony/phpunit-bridge": "^5.1",
        "symfony/yaml": "^3.0 || ^4.0 || ^5.0"
    },
    "suggest": {
        "ext-dom": "For handling output formats in XML",
        "ext-mbstring": "For handling non-UTF8 characters.",
        "php-cs-fixer/phpunit-constraint-isidenticalstring": "For IsIdenticalString constraint.",
        "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "For XmlMatchesXsd constraint.",
        "symfony/polyfill-mbstring": "When enabling `ext-mbstring` is not possible."
    },
    "config": {
        "sort-packages": true
    },
    "autoload": {
        "psr-4": {
            "PhpCsFixer\\": "src/"
        },
        "classmap": [
            "tests/Test/AbstractFixerTestCase.php",
            "tests/Test/AbstractIntegrationCaseFactory.php",
            "tests/Test/AbstractIntegrationTestCase.php",
            "tests/Test/Assert/AssertTokensTrait.php",
            "tests/Test/IntegrationCase.php",
            "tests/Test/IntegrationCaseFactory.php",
            "tests/Test/IntegrationCaseFactoryInterface.php",
            "tests/Test/InternalIntegrationCaseFactory.php",
            "tests/Test/IsIdenticalConstraint.php",
            "tests/TestCase.php"
        ]
    },
    "autoload-dev": {
        "psr-4": {
            "PhpCsFixer\\Tests\\": "tests/"
        }
    },
    "bin": [
        "php-cs-fixer"
    ]
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer;

use Symfony\Component\Finder\Finder as BaseFinder;

/**
 * @author Fabien Potencier <fabien@symfony.com>
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
class Finder extends BaseFinder
{
    public function __construct()
    {
        parent::__construct();

        $this
            ->files()
            ->name('*.php')
            ->ignoreDotFiles(true)
            ->ignoreVCS(true)
            ->exclude('vendor')
        ;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ClassNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Filippo Tessarotto <zoeslam@gmail.com>
 * @author SpacePossum
 */
final class ProtectedToPrivateFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Converts `protected` variables and methods to `private` where possible.',
            [
                new CodeSample(
                    '<?php
final class Sample
{
    protected $a;

    protected function test()
    {
    }
}
'
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before OrderedClassElementsFixer.
     * Must run after FinalInternalClassFixer.
     */
    public function getPriority()
    {
        return 66;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAllTokenKindsFound([T_CLASS, T_FINAL, T_PROTECTED]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $end = \count($tokens) - 3; // min. number of tokens to form a class candidate to fix
        for ($index = 0; $index < $end; ++$index) {
            if (!$tokens[$index]->isGivenKind(T_CLASS)) {
                continue;
            }

            $classOpen = $tokens->getNextTokenOfKind($index, ['{']);
            $classClose = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $classOpen);

            if (!$this->skipClass($tokens, $index, $classOpen, $classClose)) {
                $this->fixClass($tokens, $classOpen, $classClose);
            }

            $index = $classClose;
        }
    }

    /**
     * @param int $classOpenIndex
     * @param int $classCloseIndex
     */
    private function fixClass(Tokens $tokens, $classOpenIndex, $classCloseIndex)
    {
        for ($index = $classOpenIndex + 1; $index < $classCloseIndex; ++$index) {
            if ($tokens[$index]->equals('{')) {
                $index = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $index);

                continue;
            }

            if (!$tokens[$index]->isGivenKind(T_PROTECTED)) {
                continue;
            }

            $tokens[$index] = new Token([T_PRIVATE, 'private']);
        }
    }

    /**
     * Decide whether or not skip the fix for given class.
     *
     * @param int $classIndex
     * @param int $classOpenIndex
     * @param int $classCloseIndex
     *
     * @return bool
     */
    private function skipClass(Tokens $tokens, $classIndex, $classOpenIndex, $classCloseIndex)
    {
        $prevToken = $tokens[$tokens->getPrevMeaningfulToken($classIndex)];
        if (!$prevToken->isGivenKind(T_FINAL)) {
            return true;
        }

        for ($index = $classIndex; $index < $classOpenIndex; ++$index) {
            if ($tokens[$index]->isGivenKind(T_EXTENDS)) {
                return true;
            }
        }

        $useIndex = $tokens->getNextTokenOfKind($classIndex, [[CT::T_USE_TRAIT]]);

        return $useIndex && $useIndex < $classCloseIndex;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ClassNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerConfiguration\AliasedFixerOptionBuilder;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\FixerDefinition\VersionSpecification;
use PhpCsFixer\FixerDefinition\VersionSpecificCodeSample;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Tokenizer\TokensAnalyzer;

/**
 * Fixer for part of the rules defined in PSR2 ¶4.1 Extends and Implements and PSR12 ¶8. Anonymous Classes.
 *
 * @author SpacePossum
 */
final class ClassDefinitionFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface, WhitespacesAwareFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Whitespace around the keywords of a class, trait or interfaces definition should be one space.',
            [
                new CodeSample(
                    '<?php

class  Foo  extends  Bar  implements  Baz,  BarBaz
{
}

final  class  Foo  extends  Bar  implements  Baz,  BarBaz
{
}

trait  Foo
{
}
'
                ),
                new VersionSpecificCodeSample(
                    '<?php

$foo = new  class  extends  Bar  implements  Baz,  BarBaz {};
',
                    new VersionSpecification(70100)
                ),
                new CodeSample(
                    '<?php

class Foo
extends Bar
implements Baz, BarBaz
{}
',
                    ['single_line' => true]
                ),
                new CodeSample(
                    '<?php

class Foo
extends Bar
implements Baz
{}
',
                    ['single_item_single_line' => true]
                ),
                new CodeSample(
                    '<?php

interface Bar extends
    Bar, BarBaz, FooBarBaz
{}
',
                    ['multi_line_extends_each_single_line' => true]
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound(Token::getClassyTokenKinds());
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        // -4, one for count to index, 3 because min. of tokens for a classy location.
        for ($index = $tokens->getSize() - 4; $index > 0; --$index) {
            if ($tokens[$index]->isClassy()) {
                $this->fixClassyDefinition($tokens, $index);
            }
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new AliasedFixerOptionBuilder(
                new FixerOptionBuilder('multi_line_extends_each_single_line', 'Whether definitions should be multiline.'),
                'multiLineExtendsEachSingleLine'
            ))
                ->setAllowedTypes(['bool'])
                ->setDefault(false)
                ->getOption(),
            (new AliasedFixerOptionBuilder(
                new FixerOptionBuilder('single_item_single_line', 'Whether definitions should be single line when including a single item.'),
                'singleItemSingleLine'
            ))
                ->setAllowedTypes(['bool'])
                ->setDefault(false)
                ->getOption(),
            (new AliasedFixerOptionBuilder(
                new FixerOptionBuilder('single_line', 'Whether definitions should be single line.'),
                'singleLine'
            ))
                ->setAllowedTypes(['bool'])
                ->setDefault(false)
                ->getOption(),
        ]);
    }

    /**
     * @param int $classyIndex Class definition token start index
     */
    private function fixClassyDefinition(Tokens $tokens, $classyIndex)
    {
        $classDefInfo = $this->getClassyDefinitionInfo($tokens, $classyIndex);

        // PSR2 4.1 Lists of implements MAY be split across multiple lines, where each subsequent line is indented once.
        // When doing so, the first item in the list MUST be on the next line, and there MUST be only one interface per line.

        if (false !== $classDefInfo['implements']) {
            $classDefInfo['implements'] = $this->fixClassyDefinitionImplements(
                $tokens,
                $classDefInfo['open'],
                $classDefInfo['implements']
            );
        }

        if (false !== $classDefInfo['extends']) {
            $classDefInfo['extends'] = $this->fixClassyDefinitionExtends(
                $tokens,
                false === $classDefInfo['implements'] ? $classDefInfo['open'] : $classDefInfo['implements']['start'],
                $classDefInfo['extends']
            );
        }

        // PSR2: class definition open curly brace must go on a new line.
        // PSR12: anonymous class curly brace on same line if not multi line implements.

        $classDefInfo['open'] = $this->fixClassyDefinitionOpenSpacing($tokens, $classDefInfo);
        if ($classDefInfo['implements']) {
            $end = $classDefInfo['implements']['start'];
        } elseif ($classDefInfo['extends']) {
            $end = $classDefInfo['extends']['start'];
        } else {
            $end = $tokens->getPrevNonWhitespace($classDefInfo['open']);
        }

        // 4.1 The extends and implements keywords MUST be declared on the same line as the class name.
        $this->makeClassyDefinitionSingleLine(
            $tokens,
            $classDefInfo['anonymousClass'] ? $tokens->getPrevMeaningfulToken($classyIndex) : $classDefInfo['start'],
            $end
        );
    }

    /**
     * @param int $classOpenIndex
     *
     * @return array
     */
    private function fixClassyDefinitionExtends(Tokens $tokens, $classOpenIndex, array $classExtendsInfo)
    {
        $endIndex = $tokens->getPrevNonWhitespace($classOpenIndex);

        if ($this->configuration['single_line'] || false === $classExtendsInfo['multiLine']) {
            $this->makeClassyDefinitionSingleLine($tokens, $classExtendsInfo['start'], $endIndex);
            $classExtendsInfo['multiLine'] = false;
        } elseif ($this->configuration['single_item_single_line'] && 1 === $classExtendsInfo['numberOfExtends']) {
            $this->makeClassyDefinitionSingleLine($tokens, $classExtendsInfo['start'], $endIndex);
            $classExtendsInfo['multiLine'] = false;
        } elseif ($this->configuration['multi_line_extends_each_single_line'] && $classExtendsInfo['multiLine']) {
            $this->makeClassyInheritancePartMultiLine($tokens, $classExtendsInfo['start'], $endIndex);
            $classExtendsInfo['multiLine'] = true;
        }

        return $classExtendsInfo;
    }

    /**
     * @param int $classOpenIndex
     *
     * @return array
     */
    private function fixClassyDefinitionImplements(Tokens $tokens, $classOpenIndex, array $classImplementsInfo)
    {
        $endIndex = $tokens->getPrevNonWhitespace($classOpenIndex);

        if ($this->configuration['single_line'] || false === $classImplementsInfo['multiLine']) {
            $this->makeClassyDefinitionSingleLine($tokens, $classImplementsInfo['start'], $endIndex);
            $classImplementsInfo['multiLine'] = false;
        } elseif ($this->configuration['single_item_single_line'] && 1 === $classImplementsInfo['numberOfImplements']) {
            $this->makeClassyDefinitionSingleLine($tokens, $classImplementsInfo['start'], $endIndex);
            $classImplementsInfo['multiLine'] = false;
        } else {
            $this->makeClassyInheritancePartMultiLine($tokens, $classImplementsInfo['start'], $endIndex);
            $classImplementsInfo['multiLine'] = true;
        }

        return $classImplementsInfo;
    }

    /**
     * @return int
     */
    private function fixClassyDefinitionOpenSpacing(Tokens $tokens, array $classDefInfo)
    {
        if ($classDefInfo['anonymousClass']) {
            if (false !== $classDefInfo['implements']) {
                $spacing = $classDefInfo['implements']['multiLine'] ? $this->whitespacesConfig->getLineEnding() : ' ';
            } elseif (false !== $classDefInfo['extends']) {
                $spacing = $classDefInfo['extends']['multiLine'] ? $this->whitespacesConfig->getLineEnding() : ' ';
            } else {
                $spacing = ' ';
            }
        } else {
            $spacing = $this->whitespacesConfig->getLineEnding();
        }

        $openIndex = $tokens->getNextTokenOfKind($classDefInfo['classy'], ['{']);
        if (' ' !== $spacing && false !== strpos($tokens[$openIndex - 1]->getContent(), "\n")) {
            return $openIndex;
        }

        if ($tokens[$openIndex - 1]->isWhitespace()) {
            if (' ' !== $spacing || !$tokens[$tokens->getPrevNonWhitespace($openIndex - 1)]->isComment()) {
                $tokens[$openIndex - 1] = new Token([T_WHITESPACE, $spacing]);
            }

            return $openIndex;
        }

        $tokens->insertAt($openIndex, new Token([T_WHITESPACE, $spacing]));

        return $openIndex + 1;
    }

    /**
     * @param int $classyIndex
     *
     * @return array
     */
    private function getClassyDefinitionInfo(Tokens $tokens, $classyIndex)
    {
        $openIndex = $tokens->getNextTokenOfKind($classyIndex, ['{']);
        $prev = $tokens->getPrevMeaningfulToken($classyIndex);
        $startIndex = $tokens[$prev]->isGivenKind([T_FINAL, T_ABSTRACT]) ? $prev : $classyIndex;

        $extends = false;
        $implements = false;
        $anonymousClass = false;

        if (!$tokens[$classyIndex]->isGivenKind(T_TRAIT)) {
            $extends = $tokens->findGivenKind(T_EXTENDS, $classyIndex, $openIndex);
            $extends = \count($extends) ? $this->getClassyInheritanceInfo($tokens, key($extends), 'numberOfExtends') : false;

            if (!$tokens[$classyIndex]->isGivenKind(T_INTERFACE)) {
                $implements = $tokens->findGivenKind(T_IMPLEMENTS, $classyIndex, $openIndex);
                $implements = \count($implements) ? $this->getClassyInheritanceInfo($tokens, key($implements), 'numberOfImplements') : false;
                $tokensAnalyzer = new TokensAnalyzer($tokens);
                $anonymousClass = $tokensAnalyzer->isAnonymousClass($classyIndex);
            }
        }

        return [
            'start' => $startIndex,
            'classy' => $classyIndex,
            'open' => $openIndex,
            'extends' => $extends,
            'implements' => $implements,
            'anonymousClass' => $anonymousClass,
        ];
    }

    /**
     * @param int    $startIndex
     * @param string $label
     *
     * @return array
     */
    private function getClassyInheritanceInfo(Tokens $tokens, $startIndex, $label)
    {
        $implementsInfo = ['start' => $startIndex, $label => 1, 'multiLine' => false];
        ++$startIndex;
        $endIndex = $tokens->getNextTokenOfKind($startIndex, ['{', [T_IMPLEMENTS], [T_EXTENDS]]);
        $endIndex = $tokens[$endIndex]->equals('{') ? $tokens->getPrevNonWhitespace($endIndex) : $endIndex;
        for ($i = $startIndex; $i < $endIndex; ++$i) {
            if ($tokens[$i]->equals(',')) {
                ++$implementsInfo[$label];

                continue;
            }

            if (!$implementsInfo['multiLine'] && false !== strpos($tokens[$i]->getContent(), "\n")) {
                $implementsInfo['multiLine'] = true;
            }
        }

        return $implementsInfo;
    }

    /**
     * @param int $startIndex
     * @param int $endIndex
     */
    private function makeClassyDefinitionSingleLine(Tokens $tokens, $startIndex, $endIndex)
    {
        for ($i = $endIndex; $i >= $startIndex; --$i) {
            if ($tokens[$i]->isWhitespace()) {
                $prevNonWhite = $tokens->getPrevNonWhitespace($i);
                $nextNonWhite = $tokens->getNextNonWhitespace($i);

                if ($tokens[$prevNonWhite]->isComment() || $tokens[$nextNonWhite]->isComment()) {
                    $content = $tokens[$prevNonWhite]->getContent();
                    if (!('#' === $content || '//' === substr($content, 0, 2))) {
                        $content = $tokens[$nextNonWhite]->getContent();
                        if (!('#' === $content || '//' === substr($content, 0, 2))) {
                            $tokens[$i] = new Token([T_WHITESPACE, ' ']);
                        }
                    }

                    continue;
                }

                if ($tokens[$i + 1]->equalsAny([',', '(', ')']) || $tokens[$i - 1]->equals('(')) {
                    $tokens->clearAt($i);

                    continue;
                }

                $tokens[$i] = new Token([T_WHITESPACE, ' ']);

                continue;
            }

            if ($tokens[$i]->equals(',') && !$tokens[$i + 1]->isWhitespace()) {
                $tokens->insertAt($i + 1, new Token([T_WHITESPACE, ' ']));

                continue;
            }

            if (!$tokens[$i]->isComment()) {
                continue;
            }

            if (!$tokens[$i + 1]->isWhitespace() && !$tokens[$i + 1]->isComment() && false === strpos($tokens[$i]->getContent(), "\n")) {
                $tokens->insertAt($i + 1, new Token([T_WHITESPACE, ' ']));
            }

            if (!$tokens[$i - 1]->isWhitespace() && !$tokens[$i - 1]->isComment()) {
                $tokens->insertAt($i, new Token([T_WHITESPACE, ' ']));
            }
        }
    }

    /**
     * @param int $startIndex
     * @param int $endIndex
     */
    private function makeClassyInheritancePartMultiLine(Tokens $tokens, $startIndex, $endIndex)
    {
        for ($i = $endIndex; $i > $startIndex; --$i) {
            $previousInterfaceImplementingIndex = $tokens->getPrevTokenOfKind($i, [',', [T_IMPLEMENTS], [T_EXTENDS]]);
            $breakAtIndex = $tokens->getNextMeaningfulToken($previousInterfaceImplementingIndex);
            // make the part of a ',' or 'implements' single line
            $this->makeClassyDefinitionSingleLine(
                $tokens,
                $breakAtIndex,
                $i
            );

            // make sure the part is on its own line
            $isOnOwnLine = false;
            for ($j = $breakAtIndex; $j > $previousInterfaceImplementingIndex; --$j) {
                if (false !== strpos($tokens[$j]->getContent(), "\n")) {
                    $isOnOwnLine = true;

                    break;
                }
            }

            if (!$isOnOwnLine) {
                if ($tokens[$breakAtIndex - 1]->isWhitespace()) {
                    $tokens[$breakAtIndex - 1] = new Token([
                        T_WHITESPACE,
                        $this->whitespacesConfig->getLineEnding().$this->whitespacesConfig->getIndent(),
                    ]);
                } else {
                    $tokens->insertAt($breakAtIndex, new Token([T_WHITESPACE, $this->whitespacesConfig->getLineEnding().$this->whitespacesConfig->getIndent()]));
                }
            }

            $i = $previousInterfaceImplementingIndex + 1;
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ClassNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author ntzm
 */
final class FinalStaticAccessFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Converts `static` access to `self` access in `final` classes.',
            [
                new CodeSample(
                    '<?php
final class Sample
{
    public function getFoo()
    {
        return static::class;
    }
}
'
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run after FinalInternalClassFixer, PhpUnitTestCaseStaticMethodCallsFixer.
     */
    public function getPriority()
    {
        return -1;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAllTokenKindsFound([T_FINAL, T_CLASS, T_STATIC]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        for ($index = $tokens->count() - 1; 0 <= $index; --$index) {
            if (!$tokens[$index]->isGivenKind(T_FINAL)) {
                continue;
            }

            $classTokenIndex = $tokens->getNextMeaningfulToken($index);

            if (!$tokens[$classTokenIndex]->isGivenKind(T_CLASS)) {
                continue;
            }

            $startClassIndex = $tokens->getNextTokenOfKind(
                $classTokenIndex,
                ['{']
            );

            $endClassIndex = $tokens->findBlockEnd(
                Tokens::BLOCK_TYPE_CURLY_BRACE,
                $startClassIndex
            );

            $this->replaceStaticAccessWithSelfAccessBetween(
                $tokens,
                $startClassIndex,
                $endClassIndex
            );
        }
    }

    /**
     * @param int $startIndex
     * @param int $endIndex
     */
    private function replaceStaticAccessWithSelfAccessBetween(
        Tokens $tokens,
        $startIndex,
        $endIndex
    ) {
        for ($index = $startIndex; $index <= $endIndex; ++$index) {
            if ($tokens[$index]->isGivenKind(T_CLASS)) {
                $index = $this->getEndOfAnonymousClass($tokens, $index);

                continue;
            }

            if (!$tokens[$index]->isGivenKind(T_STATIC)) {
                continue;
            }

            $doubleColonIndex = $tokens->getNextMeaningfulToken($index);

            if (!$tokens[$doubleColonIndex]->isGivenKind(T_DOUBLE_COLON)) {
                continue;
            }

            $tokens[$index] = new Token([T_STRING, 'self']);
        }
    }

    /**
     * @param int $index
     *
     * @return int
     */
    private function getEndOfAnonymousClass(Tokens $tokens, $index)
    {
        $instantiationBraceStart = $tokens->getNextMeaningfulToken($index);

        if ($tokens[$instantiationBraceStart]->equals('(')) {
            $index = $tokens->findBlockEnd(
                Tokens::BLOCK_TYPE_PARENTHESIS_BRACE,
                $instantiationBraceStart
            );
        }

        $bodyBraceStart = $tokens->getNextTokenOfKind($index, ['{']);

        return $tokens->findBlockEnd(
            Tokens::BLOCK_TYPE_CURLY_BRACE,
            $bodyBraceStart
        );
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ClassNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerConfiguration\AllowedValueSubset;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverRootless;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Tokenizer\TokensAnalyzer;

/**
 * Fixer for rules defined in PSR2 ¶4.2.
 *
 * @author Javier Spagnoletti <phansys@gmail.com>
 * @author SpacePossum
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class SingleClassElementPerStatementFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface, WhitespacesAwareFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound(Token::getClassyTokenKinds());
    }

    /**
     * {@inheritdoc}
     *
     * Must run before ClassAttributesSeparationFixer.
     */
    public function getPriority()
    {
        return 56;
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'There MUST NOT be more than one property or constant declared per statement.',
            [
                new CodeSample(
                    '<?php
final class Example
{
    const FOO_1 = 1, FOO_2 = 2;
    private static $bar1 = array(1,2,3), $bar2 = [1,2,3];
}
'
                ),
                new CodeSample(
                    '<?php
final class Example
{
    const FOO_1 = 1, FOO_2 = 2;
    private static $bar1 = array(1,2,3), $bar2 = [1,2,3];
}
',
                    ['elements' => ['property']]
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $analyzer = new TokensAnalyzer($tokens);
        $elements = array_reverse($analyzer->getClassyElements(), true);

        foreach ($elements as $index => $element) {
            if (!\in_array($element['type'], $this->configuration['elements'], true)) {
                continue; // not in configuration
            }

            $this->fixElement($tokens, $element['type'], $index);
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        $values = ['const', 'property'];

        return new FixerConfigurationResolverRootless('elements', [
            (new FixerOptionBuilder('elements', 'List of strings which element should be modified.'))
                ->setDefault($values)
                ->setAllowedTypes(['array'])
                ->setAllowedValues([new AllowedValueSubset($values)])
                ->getOption(),
        ], $this->getName());
    }

    /**
     * @param string $type
     * @param int    $index
     */
    private function fixElement(Tokens $tokens, $type, $index)
    {
        $tokensAnalyzer = new TokensAnalyzer($tokens);
        $repeatIndex = $index;

        while (true) {
            $repeatIndex = $tokens->getNextMeaningfulToken($repeatIndex);
            $repeatToken = $tokens[$repeatIndex];

            if ($tokensAnalyzer->isArray($repeatIndex)) {
                if ($repeatToken->isGivenKind(T_ARRAY)) {
                    $repeatIndex = $tokens->getNextTokenOfKind($repeatIndex, ['(']);
                    $repeatIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $repeatIndex);
                } else {
                    $repeatIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_ARRAY_SQUARE_BRACE, $repeatIndex);
                }

                continue;
            }

            if ($repeatToken->equals(';')) {
                return; // no repeating found, no fixing needed
            }

            if ($repeatToken->equals(',')) {
                break;
            }
        }

        $start = $tokens->getPrevTokenOfKind($index, [';', '{', '}']);
        $this->expandElement(
            $tokens,
            $type,
            $tokens->getNextMeaningfulToken($start),
            $tokens->getNextTokenOfKind($index, [';'])
        );
    }

    /**
     * @param string $type
     * @param int    $startIndex
     * @param int    $endIndex
     */
    private function expandElement(Tokens $tokens, $type, $startIndex, $endIndex)
    {
        $divisionContent = null;
        if ($tokens[$startIndex - 1]->isWhitespace()) {
            $divisionContent = $tokens[$startIndex - 1]->getContent();
            if (Preg::match('#(\n|\r\n)#', $divisionContent, $matches)) {
                $divisionContent = $matches[0].trim($divisionContent, "\r\n");
            }
        }

        // iterate variables to split up
        for ($i = $endIndex - 1; $i > $startIndex; --$i) {
            $token = $tokens[$i];

            if ($token->equals(')')) {
                $i = $tokens->findBlockStart(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $i);

                continue;
            }

            if ($token->isGivenKind(CT::T_ARRAY_SQUARE_BRACE_CLOSE)) {
                $i = $tokens->findBlockStart(Tokens::BLOCK_TYPE_ARRAY_SQUARE_BRACE, $i);

                continue;
            }

            if (!$tokens[$i]->equals(',')) {
                continue;
            }

            $tokens[$i] = new Token(';');
            if ($tokens[$i + 1]->isWhitespace()) {
                $tokens->clearAt($i + 1);
            }

            if (null !== $divisionContent && '' !== $divisionContent) {
                $tokens->insertAt($i + 1, new Token([T_WHITESPACE, $divisionContent]));
            }

            // collect modifiers
            $sequence = $this->getModifiersSequences($tokens, $type, $startIndex, $endIndex);
            $tokens->insertAt($i + 2, $sequence);
        }
    }

    /**
     * @param string $type
     * @param int    $startIndex
     * @param int    $endIndex
     *
     * @return Token[]
     */
    private function getModifiersSequences(Tokens $tokens, $type, $startIndex, $endIndex)
    {
        if ('property' === $type) {
            $tokenKinds = [T_PUBLIC, T_PROTECTED, T_PRIVATE, T_STATIC, T_VAR, T_STRING, T_NS_SEPARATOR, CT::T_NULLABLE_TYPE, CT::T_ARRAY_TYPEHINT];
        } else {
            $tokenKinds = [T_PUBLIC, T_PROTECTED, T_PRIVATE, T_CONST];
        }

        $sequence = [];
        for ($i = $startIndex; $i < $endIndex - 1; ++$i) {
            if ($tokens[$i]->isComment()) {
                continue;
            }

            if (!$tokens[$i]->isWhitespace() && !$tokens[$i]->isGivenKind($tokenKinds)) {
                break;
            }

            $sequence[] = clone $tokens[$i];
        }

        return $sequence;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ClassNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\AllowedValueSubset;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverRootless;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Gregor Harlan <gharlan@web.de>
 */
final class OrderedClassElementsFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /** @internal */
    const SORT_ALPHA = 'alpha';

    /** @internal */
    const SORT_NONE = 'none';

    /**
     * @var array Array containing all class element base types (keys) and their parent types (values)
     */
    private static $typeHierarchy = [
        'use_trait' => null,
        'public' => null,
        'protected' => null,
        'private' => null,
        'constant' => null,
        'constant_public' => ['constant', 'public'],
        'constant_protected' => ['constant', 'protected'],
        'constant_private' => ['constant', 'private'],
        'property' => null,
        'property_static' => ['property'],
        'property_public' => ['property', 'public'],
        'property_protected' => ['property', 'protected'],
        'property_private' => ['property', 'private'],
        'property_public_static' => ['property_static', 'property_public'],
        'property_protected_static' => ['property_static', 'property_protected'],
        'property_private_static' => ['property_static', 'property_private'],
        'method' => null,
        'method_static' => ['method'],
        'method_public' => ['method', 'public'],
        'method_protected' => ['method', 'protected'],
        'method_private' => ['method', 'private'],
        'method_public_static' => ['method_static', 'method_public'],
        'method_protected_static' => ['method_static', 'method_protected'],
        'method_private_static' => ['method_static', 'method_private'],
    ];

    /**
     * @var array Array containing special method types
     */
    private static $specialTypes = [
        'construct' => null,
        'destruct' => null,
        'magic' => null,
        'phpunit' => null,
    ];

    /**
     * Array of supported sort algorithms in configuration.
     *
     * @var string[]
     */
    private $supportedSortAlgorithms = [
        self::SORT_NONE,
        self::SORT_ALPHA,
    ];

    /**
     * @var array Resolved configuration array (type => position)
     */
    private $typePosition;

    /**
     * {@inheritdoc}
     */
    public function configure(array $configuration = null)
    {
        parent::configure($configuration);

        $this->typePosition = [];
        $pos = 0;
        foreach ($this->configuration['order'] as $type) {
            $this->typePosition[$type] = $pos++;
        }

        foreach (self::$typeHierarchy as $type => $parents) {
            if (isset($this->typePosition[$type])) {
                continue;
            }

            if (!$parents) {
                $this->typePosition[$type] = null;

                continue;
            }

            foreach ($parents as $parent) {
                if (isset($this->typePosition[$parent])) {
                    $this->typePosition[$type] = $this->typePosition[$parent];

                    continue 2;
                }
            }

            $this->typePosition[$type] = null;
        }

        $lastPosition = \count($this->configuration['order']);
        foreach ($this->typePosition as &$pos) {
            if (null === $pos) {
                $pos = $lastPosition;
            }
            // last digit is used by phpunit method ordering
            $pos *= 10;
        }
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound(Token::getClassyTokenKinds());
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Orders the elements of classes/interfaces/traits.',
            [
                new CodeSample(
                    '<?php
final class Example
{
    use BarTrait;
    use BazTrait;
    const C1 = 1;
    const C2 = 2;
    protected static $protStatProp;
    public static $pubStatProp1;
    public $pubProp1;
    protected $protProp;
    var $pubProp2;
    private static $privStatProp;
    private $privProp;
    public static $pubStatProp2;
    public $pubProp3;
    protected function __construct() {}
    private static function privStatFunc() {}
    public function pubFunc1() {}
    public function __toString() {}
    protected function protFunc() {}
    function pubFunc2() {}
    public static function pubStatFunc1() {}
    public function pubFunc3() {}
    static function pubStatFunc2() {}
    private function privFunc() {}
    public static function pubStatFunc3() {}
    protected static function protStatFunc() {}
    public function __destruct() {}
}
'
                ),
                new CodeSample(
                    '<?php
class Example
{
    public function A(){}
    private function B(){}
}
',
                    ['order' => ['method_private', 'method_public']]
                ),
                new CodeSample(
                    '<?php
class Example
{
    public function D(){}
    public function B(){}
    public function A(){}
    public function C(){}
}
',
                    ['order' => ['method_public'], 'sortAlgorithm' => 'alpha']
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before ClassAttributesSeparationFixer, MethodSeparationFixer, NoBlankLinesAfterClassOpeningFixer, SpaceAfterSemicolonFixer.
     * Must run after NoPhp4ConstructorFixer, ProtectedToPrivateFixer.
     */
    public function getPriority()
    {
        return 65;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        for ($i = 1, $count = $tokens->count(); $i < $count; ++$i) {
            if (!$tokens[$i]->isClassy()) {
                continue;
            }

            $i = $tokens->getNextTokenOfKind($i, ['{']);
            $elements = $this->getElements($tokens, $i);

            if (0 === \count($elements)) {
                continue;
            }

            $sorted = $this->sortElements($elements);
            $endIndex = $elements[\count($elements) - 1]['end'];

            if ($sorted !== $elements) {
                $this->sortTokens($tokens, $i, $endIndex, $sorted);
            }

            $i = $endIndex;
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolverRootless('order', [
            (new FixerOptionBuilder('order', 'List of strings defining order of elements.'))
                ->setAllowedTypes(['array'])
                ->setAllowedValues([new AllowedValueSubset(array_keys(array_merge(self::$typeHierarchy, self::$specialTypes)))])
                ->setDefault([
                    'use_trait',
                    'constant_public',
                    'constant_protected',
                    'constant_private',
                    'property_public',
                    'property_protected',
                    'property_private',
                    'construct',
                    'destruct',
                    'magic',
                    'phpunit',
                    'method_public',
                    'method_protected',
                    'method_private',
                ])
                ->getOption(),
            (new FixerOptionBuilder('sortAlgorithm', 'How multiple occurrences of same type statements should be sorted'))
                ->setAllowedValues($this->supportedSortAlgorithms)
                ->setDefault(self::SORT_NONE)
                ->getOption(),
        ], $this->getName());
    }

    /**
     * @param int $startIndex
     *
     * @return array[]
     */
    private function getElements(Tokens $tokens, $startIndex)
    {
        static $elementTokenKinds = [CT::T_USE_TRAIT, T_CONST, T_VARIABLE, T_FUNCTION];

        ++$startIndex;
        $elements = [];

        while (true) {
            $element = [
                'start' => $startIndex,
                'visibility' => 'public',
                'static' => false,
            ];

            for ($i = $startIndex;; ++$i) {
                $token = $tokens[$i];

                // class end
                if ($token->equals('}')) {
                    return $elements;
                }

                if ($token->isGivenKind(T_STATIC)) {
                    $element['static'] = true;

                    continue;
                }

                if ($token->isGivenKind([T_PROTECTED, T_PRIVATE])) {
                    $element['visibility'] = strtolower($token->getContent());

                    continue;
                }

                if (!$token->isGivenKind($elementTokenKinds)) {
                    continue;
                }

                $type = $this->detectElementType($tokens, $i);
                if (\is_array($type)) {
                    $element['type'] = $type[0];
                    $element['name'] = $type[1];
                } else {
                    $element['type'] = $type;
                }

                if ('property' === $element['type']) {
                    $element['name'] = $tokens[$i]->getContent();
                } elseif (\in_array($element['type'], ['use_trait', 'constant', 'method', 'magic', 'construct', 'destruct'], true)) {
                    $element['name'] = $tokens[$tokens->getNextMeaningfulToken($i)]->getContent();
                }

                $element['end'] = $this->findElementEnd($tokens, $i);

                break;
            }

            $elements[] = $element;
            $startIndex = $element['end'] + 1;
        }
    }

    /**
     * @param int $index
     *
     * @return array|string type or array of type and name
     */
    private function detectElementType(Tokens $tokens, $index)
    {
        $token = $tokens[$index];

        if ($token->isGivenKind(CT::T_USE_TRAIT)) {
            return 'use_trait';
        }

        if ($token->isGivenKind(T_CONST)) {
            return 'constant';
        }

        if ($token->isGivenKind(T_VARIABLE)) {
            return 'property';
        }

        $nameToken = $tokens[$tokens->getNextMeaningfulToken($index)];

        if ($nameToken->equals([T_STRING, '__construct'], false)) {
            return 'construct';
        }

        if ($nameToken->equals([T_STRING, '__destruct'], false)) {
            return 'destruct';
        }

        if (
            $nameToken->equalsAny([
                [T_STRING, 'setUpBeforeClass'],
                [T_STRING, 'tearDownAfterClass'],
                [T_STRING, 'setUp'],
                [T_STRING, 'tearDown'],
            ], false)
        ) {
            return ['phpunit', strtolower($nameToken->getContent())];
        }

        if ('__' === substr($nameToken->getContent(), 0, 2)) {
            return 'magic';
        }

        return 'method';
    }

    /**
     * @param int $index
     *
     * @return int
     */
    private function findElementEnd(Tokens $tokens, $index)
    {
        $index = $tokens->getNextTokenOfKind($index, ['{', ';']);

        if ($tokens[$index]->equals('{')) {
            $index = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $index);
        }

        for (++$index; $tokens[$index]->isWhitespace(" \t") || $tokens[$index]->isComment(); ++$index);

        --$index;

        return $tokens[$index]->isWhitespace() ? $index - 1 : $index;
    }

    /**
     * @param array[] $elements
     *
     * @return array[]
     */
    private function sortElements(array $elements)
    {
        static $phpunitPositions = [
            'setupbeforeclass' => 1,
            'teardownafterclass' => 2,
            'setup' => 3,
            'teardown' => 4,
        ];

        foreach ($elements as &$element) {
            $type = $element['type'];

            if (\array_key_exists($type, self::$specialTypes)) {
                if (isset($this->typePosition[$type])) {
                    $element['position'] = $this->typePosition[$type];
                    if ('phpunit' === $type) {
                        $element['position'] += $phpunitPositions[$element['name']];
                    }

                    continue;
                }

                $type = 'method';
            }

            if (\in_array($type, ['constant', 'property', 'method'], true)) {
                $type .= '_'.$element['visibility'];
                if ($element['static']) {
                    $type .= '_static';
                }
            }

            $element['position'] = $this->typePosition[$type];
        }
        unset($element);

        usort($elements, function (array $a, array $b) {
            if ($a['position'] === $b['position']) {
                return $this->sortGroupElements($a, $b);
            }

            return $a['position'] > $b['position'] ? 1 : -1;
        });

        return $elements;
    }

    private function sortGroupElements(array $a, array $b)
    {
        $selectedSortAlgorithm = $this->configuration['sortAlgorithm'];

        if (self::SORT_ALPHA === $selectedSortAlgorithm) {
            return strcasecmp($a['name'], $b['name']);
        }

        return $a['start'] > $b['start'] ? 1 : -1;
    }

    /**
     * @param int     $startIndex
     * @param int     $endIndex
     * @param array[] $elements
     */
    private function sortTokens(Tokens $tokens, $startIndex, $endIndex, array $elements)
    {
        $replaceTokens = [];

        foreach ($elements as $element) {
            for ($i = $element['start']; $i <= $element['end']; ++$i) {
                $replaceTokens[] = clone $tokens[$i];
            }
        }

        $tokens->overrideRange($startIndex + 1, $endIndex, $replaceTokens);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ClassNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Dave van der Brugge <dmvdbrugge@gmail.com>
 */
final class OrderedInterfacesFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /** @internal */
    const OPTION_DIRECTION = 'direction';

    /** @internal */
    const OPTION_ORDER = 'order';

    /** @internal */
    const DIRECTION_ASCEND = 'ascend';

    /** @internal */
    const DIRECTION_DESCEND = 'descend';

    /** @internal */
    const ORDER_ALPHA = 'alpha';

    /** @internal */
    const ORDER_LENGTH = 'length';

    /**
     * Array of supported directions in configuration.
     *
     * @var string[]
     */
    private $supportedDirectionOptions = [
        self::DIRECTION_ASCEND,
        self::DIRECTION_DESCEND,
    ];

    /**
     * Array of supported orders in configuration.
     *
     * @var string[]
     */
    private $supportedOrderOptions = [
        self::ORDER_ALPHA,
        self::ORDER_LENGTH,
    ];

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Orders the interfaces in an `implements` or `interface extends` clause.',
            [
                new CodeSample(
                    "<?php\n\nfinal class ExampleA implements Gamma, Alpha, Beta {}\n\ninterface ExampleB extends Gamma, Alpha, Beta {}\n"
                ),
                new CodeSample(
                    "<?php\n\nfinal class ExampleA implements Gamma, Alpha, Beta {}\n\ninterface ExampleB extends Gamma, Alpha, Beta {}\n",
                    [self::OPTION_DIRECTION => self::DIRECTION_DESCEND]
                ),
                new CodeSample(
                    "<?php\n\nfinal class ExampleA implements MuchLonger, Short, Longer {}\n\ninterface ExampleB extends MuchLonger, Short, Longer {}\n",
                    [self::OPTION_ORDER => self::ORDER_LENGTH]
                ),
                new CodeSample(
                    "<?php\n\nfinal class ExampleA implements MuchLonger, Short, Longer {}\n\ninterface ExampleB extends MuchLonger, Short, Longer {}\n",
                    [
                        self::OPTION_ORDER => self::ORDER_LENGTH,
                        self::OPTION_DIRECTION => self::DIRECTION_DESCEND,
                    ]
                ),
            ],
            null,
            "Risky for `implements` when specifying both an interface and its parent interface, because PHP doesn't break on `parent, child` but does on `child, parent`."
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_IMPLEMENTS)
            || $tokens->isAllTokenKindsFound([T_INTERFACE, T_EXTENDS]);
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if (!$token->isGivenKind(T_IMPLEMENTS)) {
                if (!$token->isGivenKind(T_EXTENDS)) {
                    continue;
                }

                $nameTokenIndex = $tokens->getPrevMeaningfulToken($index);
                $interfaceTokenIndex = $tokens->getPrevMeaningfulToken($nameTokenIndex);
                $interfaceToken = $tokens[$interfaceTokenIndex];

                if (!$interfaceToken->isGivenKind(T_INTERFACE)) {
                    continue;
                }
            }

            $interfaceIndex = 0;
            $interfaces = [['tokens' => []]];

            $implementsStart = $index + 1;
            $classStart = $tokens->getNextTokenOfKind($implementsStart, ['{']);
            $implementsEnd = $tokens->getPrevNonWhitespace($classStart);

            for ($i = $implementsStart; $i <= $implementsEnd; ++$i) {
                if ($tokens[$i]->equals(',')) {
                    ++$interfaceIndex;
                    $interfaces[$interfaceIndex] = ['tokens' => []];

                    continue;
                }

                $interfaces[$interfaceIndex]['tokens'][] = $tokens[$i];
            }

            if (1 === \count($interfaces)) {
                continue;
            }

            foreach ($interfaces as $interfaceIndex => $interface) {
                $interfaceTokens = Tokens::fromArray($interface['tokens'], false);

                $normalized = '';
                $actualInterfaceIndex = $interfaceTokens->getNextMeaningfulToken(-1);

                while ($interfaceTokens->offsetExists($actualInterfaceIndex)) {
                    $token = $interfaceTokens[$actualInterfaceIndex];

                    if (null === $token || $token->isComment() || $token->isWhitespace()) {
                        break;
                    }

                    $normalized .= str_replace('\\', ' ', $token->getContent());
                    ++$actualInterfaceIndex;
                }

                $interfaces[$interfaceIndex]['normalized'] = $normalized;
                $interfaces[$interfaceIndex]['originalIndex'] = $interfaceIndex;
            }

            usort($interfaces, function (array $first, array $second) {
                $score = self::ORDER_LENGTH === $this->configuration[self::OPTION_ORDER]
                    ? \strlen($first['normalized']) - \strlen($second['normalized'])
                    : strcasecmp($first['normalized'], $second['normalized']);

                if (self::DIRECTION_DESCEND === $this->configuration[self::OPTION_DIRECTION]) {
                    $score *= -1;
                }

                return $score;
            });

            $changed = false;

            foreach ($interfaces as $interfaceIndex => $interface) {
                if ($interface['originalIndex'] !== $interfaceIndex) {
                    $changed = true;

                    break;
                }
            }

            if (!$changed) {
                continue;
            }

            $newTokens = array_shift($interfaces)['tokens'];

            foreach ($interfaces as $interface) {
                array_push($newTokens, new Token(','), ...$interface['tokens']);
            }

            $tokens->overrideRange($implementsStart, $implementsEnd, $newTokens);
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder(self::OPTION_ORDER, 'How the interfaces should be ordered'))
                ->setAllowedValues($this->supportedOrderOptions)
                ->setDefault(self::ORDER_ALPHA)
                ->getOption(),
            (new FixerOptionBuilder(self::OPTION_DIRECTION, 'Which direction the interfaces should be ordered'))
                ->setAllowedValues($this->supportedDirectionOptions)
                ->setDefault(self::DIRECTION_ASCEND)
                ->getOption(),
        ]);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ClassNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Tokenizer\TokensAnalyzer;

/**
 * @author Matteo Beccati <matteo@beccati.com>
 */
final class NoPhp4ConstructorFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Convert PHP4-style constructors to `__construct`.',
            [
                new CodeSample('<?php
class Foo
{
    public function Foo($bar)
    {
    }
}
'),
            ],
            null,
            'Risky when old style constructor being fixed is overridden or overrides parent one.'
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before OrderedClassElementsFixer.
     */
    public function getPriority()
    {
        return 75;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_CLASS);
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $tokensAnalyzer = new TokensAnalyzer($tokens);
        $classes = array_keys($tokens->findGivenKind(T_CLASS));
        $numClasses = \count($classes);

        for ($i = 0; $i < $numClasses; ++$i) {
            $index = $classes[$i];

            // is it an an anonymous class definition?
            if ($tokensAnalyzer->isAnonymousClass($index)) {
                continue;
            }

            // is it inside a namespace?
            $nspIndex = $tokens->getPrevTokenOfKind($index, [[T_NAMESPACE, 'namespace']]);
            if (null !== $nspIndex) {
                $nspIndex = $tokens->getNextMeaningfulToken($nspIndex);

                // make sure it's not the global namespace, as PHP4 constructors are allowed in there
                if (!$tokens[$nspIndex]->equals('{')) {
                    // unless it's the global namespace, the index currently points to the name
                    $nspIndex = $tokens->getNextTokenOfKind($nspIndex, [';', '{']);

                    if ($tokens[$nspIndex]->equals(';')) {
                        // the class is inside a (non-block) namespace, no PHP4-code should be in there
                        break;
                    }

                    // the index points to the { of a block-namespace
                    $nspEnd = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $nspIndex);
                    if ($index < $nspEnd) {
                        // the class is inside a block namespace, skip other classes that might be in it
                        for ($j = $i + 1; $j < $numClasses; ++$j) {
                            if ($classes[$j] < $nspEnd) {
                                ++$i;
                            }
                        }
                        // and continue checking the classes that might follow
                        continue;
                    }
                }
            }

            $classNameIndex = $tokens->getNextMeaningfulToken($index);
            $className = $tokens[$classNameIndex]->getContent();
            $classStart = $tokens->getNextTokenOfKind($classNameIndex, ['{']);
            $classEnd = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $classStart);

            $this->fixConstructor($tokens, $className, $classStart, $classEnd);
            $this->fixParent($tokens, $classStart, $classEnd);
        }
    }

    /**
     * Fix constructor within a class, if possible.
     *
     * @param Tokens $tokens     the Tokens instance
     * @param string $className  the class name
     * @param int    $classStart the class start index
     * @param int    $classEnd   the class end index
     */
    private function fixConstructor(Tokens $tokens, $className, $classStart, $classEnd)
    {
        $php4 = $this->findFunction($tokens, $className, $classStart, $classEnd);

        if (null === $php4) {
            // no PHP4-constructor!
            return;
        }

        if (!empty($php4['modifiers'][T_ABSTRACT]) || !empty($php4['modifiers'][T_STATIC])) {
            // PHP4 constructor can't be abstract or static
            return;
        }

        $php5 = $this->findFunction($tokens, '__construct', $classStart, $classEnd);

        if (null === $php5) {
            // no PHP5-constructor, we can rename the old one to __construct
            $tokens[$php4['nameIndex']] = new Token([T_STRING, '__construct']);

            // in some (rare) cases we might have just created an infinite recursion issue
            $this->fixInfiniteRecursion($tokens, $php4['bodyIndex'], $php4['endIndex']);

            return;
        }

        // does the PHP4-constructor only call $this->__construct($args, ...)?
        list($seq, $case) = $this->getWrapperMethodSequence($tokens, '__construct', $php4['startIndex'], $php4['bodyIndex']);
        if (null !== $tokens->findSequence($seq, $php4['bodyIndex'] - 1, $php4['endIndex'], $case)) {
            // good, delete it!
            for ($i = $php4['startIndex']; $i <= $php4['endIndex']; ++$i) {
                $tokens->clearAt($i);
            }

            return;
        }

        // does __construct only call the PHP4-constructor (with the same args)?
        list($seq, $case) = $this->getWrapperMethodSequence($tokens, $className, $php4['startIndex'], $php4['bodyIndex']);
        if (null !== $tokens->findSequence($seq, $php5['bodyIndex'] - 1, $php5['endIndex'], $case)) {
            // that was a weird choice, but we can safely delete it and...
            for ($i = $php5['startIndex']; $i <= $php5['endIndex']; ++$i) {
                $tokens->clearAt($i);
            }
            // rename the PHP4 one to __construct
            $tokens[$php4['nameIndex']] = new Token([T_STRING, '__construct']);
        }
    }

    /**
     * Fix calls to the parent constructor within a class.
     *
     * @param Tokens $tokens     the Tokens instance
     * @param int    $classStart the class start index
     * @param int    $classEnd   the class end index
     */
    private function fixParent(Tokens $tokens, $classStart, $classEnd)
    {
        // check calls to the parent constructor
        foreach ($tokens->findGivenKind(T_EXTENDS) as $index => $token) {
            $parentIndex = $tokens->getNextMeaningfulToken($index);
            $parentClass = $tokens[$parentIndex]->getContent();

            // using parent::ParentClassName() or ParentClassName::ParentClassName()
            $parentSeq = $tokens->findSequence([
                [T_STRING],
                [T_DOUBLE_COLON],
                [T_STRING, $parentClass],
                '(',
            ], $classStart, $classEnd, [2 => false]);

            if (null !== $parentSeq) {
                // we only need indexes
                $parentSeq = array_keys($parentSeq);

                // match either of the possibilities
                if ($tokens[$parentSeq[0]]->equalsAny([[T_STRING, 'parent'], [T_STRING, $parentClass]], false)) {
                    // replace with parent::__construct
                    $tokens[$parentSeq[0]] = new Token([T_STRING, 'parent']);
                    $tokens[$parentSeq[2]] = new Token([T_STRING, '__construct']);
                }
            }

            // using $this->ParentClassName()
            $parentSeq = $tokens->findSequence([
                [T_VARIABLE, '$this'],
                [T_OBJECT_OPERATOR],
                [T_STRING, $parentClass],
                '(',
            ], $classStart, $classEnd, [2 => false]);

            if (null !== $parentSeq) {
                // we only need indexes
                $parentSeq = array_keys($parentSeq);

                // replace call with parent::__construct()
                $tokens[$parentSeq[0]] = new Token([
                    T_STRING,
                    'parent',
                ]);
                $tokens[$parentSeq[1]] = new Token([
                    T_DOUBLE_COLON,
                    '::',
                ]);
                $tokens[$parentSeq[2]] = new Token([T_STRING, '__construct']);
            }
        }
    }

    /**
     * Fix a particular infinite recursion issue happening when the parent class has __construct and the child has only
     * a PHP4 constructor that calls the parent constructor as $this->__construct().
     *
     * @param Tokens $tokens the Tokens instance
     * @param int    $start  the PHP4 constructor body start
     * @param int    $end    the PHP4 constructor body end
     */
    private function fixInfiniteRecursion(Tokens $tokens, $start, $end)
    {
        $seq = [
            [T_VARIABLE, '$this'],
            [T_OBJECT_OPERATOR],
            [T_STRING, '__construct'],
        ];

        while (true) {
            $callSeq = $tokens->findSequence($seq, $start, $end, [2 => false]);

            if (null === $callSeq) {
                return;
            }

            $callSeq = array_keys($callSeq);

            $tokens[$callSeq[0]] = new Token([T_STRING, 'parent']);
            $tokens[$callSeq[1]] = new Token([T_DOUBLE_COLON, '::']);
        }
    }

    /**
     * Generate the sequence of tokens necessary for the body of a wrapper method that simply
     * calls $this->{$method}( [args...] ) with the same arguments as its own signature.
     *
     * @param Tokens $tokens     the Tokens instance
     * @param string $method     the wrapped method name
     * @param int    $startIndex function/method start index
     * @param int    $bodyIndex  function/method body index
     *
     * @return array an array containing the sequence and case sensitiveness [ 0 => $seq, 1 => $case ]
     */
    private function getWrapperMethodSequence(Tokens $tokens, $method, $startIndex, $bodyIndex)
    {
        // initialise sequence as { $this->{$method}(
        $seq = [
            '{',
            [T_VARIABLE, '$this'],
            [T_OBJECT_OPERATOR],
            [T_STRING, $method],
            '(',
        ];
        $case = [3 => false];

        // parse method parameters, if any
        $index = $startIndex;
        while (true) {
            // find the next variable name
            $index = $tokens->getNextTokenOfKind($index, [[T_VARIABLE]]);

            if (null === $index || $index >= $bodyIndex) {
                // we've reached the body already
                break;
            }

            // append a comma if it's not the first variable
            if (\count($seq) > 5) {
                $seq[] = ',';
            }

            // append variable name to the sequence
            $seq[] = [T_VARIABLE, $tokens[$index]->getContent()];
        }

        // almost done, close the sequence with ); }
        $seq[] = ')';
        $seq[] = ';';
        $seq[] = '}';

        return [$seq, $case];
    }

    /**
     * Find a function or method matching a given name within certain bounds.
     *
     * @param Tokens $tokens     the Tokens instance
     * @param string $name       the function/Method name
     * @param int    $startIndex the search start index
     * @param int    $endIndex   the search end index
     *
     * @return null|array An associative array, if a match is found:
     *
     *     - nameIndex (int): The index of the function/method name.
     *     - startIndex (int): The index of the function/method start.
     *     - endIndex (int): The index of the function/method end.
     *     - bodyIndex (int): The index of the function/method body.
     *     - modifiers (array): The modifiers as array keys and their index as
     *       the values, e.g. array(T_PUBLIC => 10)
     */
    private function findFunction(Tokens $tokens, $name, $startIndex, $endIndex)
    {
        $function = $tokens->findSequence([
            [T_FUNCTION],
            [T_STRING, $name],
            '(',
        ], $startIndex, $endIndex, false);

        if (null === $function) {
            return null;
        }

        // keep only the indexes
        $function = array_keys($function);

        // find previous block, saving method modifiers for later use
        $possibleModifiers = [T_PUBLIC, T_PROTECTED, T_PRIVATE, T_STATIC, T_ABSTRACT, T_FINAL];
        $modifiers = [];

        $prevBlock = $tokens->getPrevMeaningfulToken($function[0]);
        while (null !== $prevBlock && $tokens[$prevBlock]->isGivenKind($possibleModifiers)) {
            $modifiers[$tokens[$prevBlock]->getId()] = $prevBlock;
            $prevBlock = $tokens->getPrevMeaningfulToken($prevBlock);
        }

        if (isset($modifiers[T_ABSTRACT])) {
            // abstract methods have no body
            $bodyStart = null;
            $funcEnd = $tokens->getNextTokenOfKind($function[2], [';']);
        } else {
            // find method body start and the end of the function definition
            $bodyStart = $tokens->getNextTokenOfKind($function[2], ['{']);
            $funcEnd = null !== $bodyStart ? $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $bodyStart) : null;
        }

        return [
            'nameIndex' => $function[1],
            'startIndex' => $prevBlock + 1,
            'endIndex' => $funcEnd,
            'bodyIndex' => $bodyStart,
            'modifiers' => $modifiers,
        ];
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ClassNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\ConfigurationException\InvalidFixerConfigurationException;
use PhpCsFixer\DocBlock\DocBlock;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use Symfony\Component\OptionsResolver\Options;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 * @author SpacePossum
 */
final class FinalInternalClassFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function configure(array $configuration = null)
    {
        parent::configure($configuration);

        $intersect = array_intersect_assoc(
            $this->configuration['annotation-white-list'],
            $this->configuration['annotation-black-list']
        );

        if (\count($intersect)) {
            throw new InvalidFixerConfigurationException($this->getName(), sprintf('Annotation cannot be used in both the include and exclude list, got duplicates: "%s".', implode('", "', array_keys($intersect))));
        }
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Internal classes should be `final`.',
            [
                new CodeSample("<?php\n/**\n * @internal\n */\nclass Sample\n{\n}\n"),
                new CodeSample(
                    "<?php\n/** @CUSTOM */class A{}\n",
                    [
                        'annotation-white-list' => ['@Custom'],
                    ]
                ),
            ],
            null,
            'Changing classes to `final` might cause code execution to break.'
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before FinalStaticAccessFixer, ProtectedToPrivateFixer, SelfStaticAccessorFixer.
     * Must run after PhpUnitInternalClassFixer.
     */
    public function getPriority()
    {
        return 67;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_CLASS);
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        for ($index = $tokens->count() - 1; 0 <= $index; --$index) {
            if (!$tokens[$index]->isGivenKind(T_CLASS) || !$this->isClassCandidate($tokens, $index)) {
                continue;
            }

            // make class final
            $tokens->insertAt(
                $index,
                [
                    new Token([T_FINAL, 'final']),
                    new Token([T_WHITESPACE, ' ']),
                ]
            );
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        $annotationsAsserts = [static function (array $values) {
            foreach ($values as $value) {
                if (!\is_string($value) || '' === $value) {
                    return false;
                }
            }

            return true;
        }];

        $annotationsNormalizer = static function (Options $options, array $value) {
            $newValue = [];
            foreach ($value as $key) {
                if ('@' === $key[0]) {
                    $key = substr($key, 1);
                }

                $newValue[strtolower($key)] = true;
            }

            return $newValue;
        };

        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('annotation-white-list', 'Class level annotations tags that must be set in order to fix the class. (case insensitive)'))
                ->setAllowedTypes(['array'])
                ->setAllowedValues($annotationsAsserts)
                ->setDefault(['@internal'])
                ->setNormalizer($annotationsNormalizer)
                ->getOption(),
            (new FixerOptionBuilder('annotation-black-list', 'Class level annotations tags that must be omitted to fix the class, even if all of the excluded ones are used as well. (case insensitive)'))
                ->setAllowedTypes(['array'])
                ->setAllowedValues($annotationsAsserts)
                ->setDefault([
                    '@final',
                    '@Entity',
                    '@ORM\Entity',
                    '@ORM\Mapping\Entity',
                    '@Mapping\Entity',
                ])
                ->setNormalizer($annotationsNormalizer)
                ->getOption(),
            (new FixerOptionBuilder('consider-absent-docblock-as-internal-class', 'Should classes without any DocBlock be fixed to final?'))
                ->setAllowedTypes(['bool'])
                ->setDefault(false)
                ->getOption(),
        ]);
    }

    /**
     * @param int $index T_CLASS index
     *
     * @return bool
     */
    private function isClassCandidate(Tokens $tokens, $index)
    {
        if ($tokens[$tokens->getPrevMeaningfulToken($index)]->isGivenKind([T_ABSTRACT, T_FINAL, T_NEW])) {
            return false; // ignore class; it is abstract or already final
        }

        $docToken = $tokens[$tokens->getPrevNonWhitespace($index)];

        if (!$docToken->isGivenKind(T_DOC_COMMENT)) {
            return $this->configuration['consider-absent-docblock-as-internal-class'];
        }

        $doc = new DocBlock($docToken->getContent());
        $tags = [];

        foreach ($doc->getAnnotations() as $annotation) {
            Preg::match('/@\S+(?=\s|$)/', $annotation->getContent(), $matches);
            $tag = strtolower(substr(array_shift($matches), 1));
            foreach ($this->configuration['annotation-black-list'] as $tagStart => $true) {
                if (0 === strpos($tag, $tagStart)) {
                    return false; // ignore class: class-level PHPDoc contains tag that has been excluded through configuration
                }
            }

            $tags[$tag] = true;
        }

        foreach ($this->configuration['annotation-white-list'] as $tag => $true) {
            if (!isset($tags[$tag])) {
                return false; // ignore class: class-level PHPDoc does not contain all tags that has been included through configuration
            }
        }

        return true;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ClassNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author ntzm
 */
final class NoNullPropertyInitializationFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Properties MUST not be explicitly initialized with `null` except when they have a type declaration (PHP 7.4).',
            [
                new CodeSample(
                    '<?php
class Foo {
    public $foo = null;
}
'
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound([T_CLASS, T_TRAIT]) && $tokens->isAnyTokenKindsFound([T_PUBLIC, T_PROTECTED, T_PRIVATE, T_VAR]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        for ($index = 0, $count = $tokens->count(); $index < $count; ++$index) {
            if (!$tokens[$index]->isGivenKind([T_PUBLIC, T_PROTECTED, T_PRIVATE, T_VAR])) {
                continue;
            }

            while (true) {
                $varTokenIndex = $index = $tokens->getNextMeaningfulToken($index);

                if (!$tokens[$index]->isGivenKind(T_VARIABLE)) {
                    break;
                }

                $index = $tokens->getNextMeaningfulToken($index);

                if ($tokens[$index]->equals('=')) {
                    $index = $tokens->getNextMeaningfulToken($index);

                    if ($tokens[$index]->isGivenKind(T_NS_SEPARATOR)) {
                        $index = $tokens->getNextMeaningfulToken($index);
                    }

                    if ($tokens[$index]->equals([T_STRING, 'null'], false)) {
                        for ($i = $varTokenIndex + 1; $i <= $index; ++$i) {
                            if (
                                !($tokens[$i]->isWhitespace() && false !== strpos($tokens[$i]->getContent(), "\n"))
                                && !$tokens[$i]->isComment()
                            ) {
                                $tokens->clearAt($i);
                            }
                        }
                    }

                    ++$index;
                }

                if (!$tokens[$index]->equals(',')) {
                    break;
                }
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ClassNotation;

use PhpCsFixer\AbstractProxyFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;

/**
 * @author Filippo Tessarotto <zoeslam@gmail.com>
 */
final class FinalClassFixer extends AbstractProxyFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'All classes must be final, except abstract ones and Doctrine entities.',
            [
                new CodeSample(
                    '<?php
class MyApp {}
'
                ),
            ],
            'No exception and no configuration are intentional. Beside Doctrine entities and of course abstract classes, there is no single reason not to declare all classes final. '
            .'If you want to subclass a class, mark the parent class as abstract and create two child classes, one empty if necessary: you\'ll gain much more fine grained type-hinting. '
            .'If you need to mock a standalone class, create an interface, or maybe it\'s a value-object that shouldn\'t be mocked at all. '
            .'If you need to extend a standalone class, create an interface and use the Composite pattern. '
            .'If you aren\'t ready yet for serious OOP, go with FinalInternalClassFixer, it\'s fine.',
            'Risky when subclassing non-abstract classes.'
        );
    }

    /**
     * {@inheritdoc}
     */
    protected function createProxyFixers()
    {
        $fixer = new FinalInternalClassFixer();
        $fixer->configure([
            'annotation-white-list' => [],
            'consider-absent-docblock-as-internal-class' => true,
        ]);

        return [$fixer];
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ClassNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Ceeram <ceeram@cakephp.org>
 */
final class NoBlankLinesAfterClassOpeningFixer extends AbstractFixer implements WhitespacesAwareFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound(Token::getClassyTokenKinds());
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'There should be no empty lines after class opening brace.',
            [
                new CodeSample(
                    '<?php
final class Sample
{

    protected function foo()
    {
    }
}
'
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run after OrderedClassElementsFixer.
     */
    public function getPriority()
    {
        return 0;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if (!$token->isClassy()) {
                continue;
            }

            $startBraceIndex = $tokens->getNextTokenOfKind($index, ['{']);
            if (!$tokens[$startBraceIndex + 1]->isWhitespace()) {
                continue;
            }

            $this->fixWhitespace($tokens, $startBraceIndex + 1);
        }
    }

    /**
     * Cleanup a whitespace token.
     *
     * @param int $index
     */
    private function fixWhitespace(Tokens $tokens, $index)
    {
        $content = $tokens[$index]->getContent();
        // if there is more than one new line in the whitespace, then we need to fix it
        if (substr_count($content, "\n") > 1) {
            // the final bit of the whitespace must be the next statement's indentation
            $tokens[$index] = new Token([T_WHITESPACE, $this->whitespacesConfig->getLineEnding().substr($content, strrpos($content, "\n") + 1)]);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ClassNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Filippo Tessarotto <zoeslam@gmail.com>
 */
final class NoUnneededFinalMethodFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'A `final` class must not have `final` methods and `private` methods must not be `final`.',
            [
                new CodeSample(
                    '<?php
final class Foo
{
    final public function foo1() {}
    final protected function bar() {}
    final private function baz() {}
}

class Bar
{
    final private function bar1() {}
}
'
                ),
            ],
            null,
            'Risky when child class overrides a `private` method.'
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAllTokenKindsFound([T_CLASS, T_FINAL]);
    }

    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $tokensCount = \count($tokens);
        for ($index = 0; $index < $tokensCount; ++$index) {
            if (!$tokens[$index]->isGivenKind(T_CLASS)) {
                continue;
            }

            $classOpen = $tokens->getNextTokenOfKind($index, ['{']);
            $prevToken = $tokens[$tokens->getPrevMeaningfulToken($index)];
            $classIsFinal = $prevToken->isGivenKind(T_FINAL);

            $this->fixClass($tokens, $classOpen, $classIsFinal);
        }
    }

    /**
     * @param int  $classOpenIndex
     * @param bool $classIsFinal
     */
    private function fixClass(Tokens $tokens, $classOpenIndex, $classIsFinal)
    {
        $tokensCount = \count($tokens);
        for ($index = $classOpenIndex + 1; $index < $tokensCount; ++$index) {
            // Class end
            if ($tokens[$index]->equals('}')) {
                return;
            }

            // Skip method content
            if ($tokens[$index]->equals('{')) {
                $index = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $index);

                continue;
            }

            if (!$tokens[$index]->isGivenKind(T_FINAL)) {
                continue;
            }

            if (!$classIsFinal && !$this->isPrivateMethod($tokens, $index, $classOpenIndex)) {
                continue;
            }

            $tokens->clearAt($index);

            $nextTokenIndex = $index + 1;
            if ($tokens[$nextTokenIndex]->isWhitespace()) {
                $tokens->clearAt($nextTokenIndex);
            }
        }
    }

    /**
     * @param int $index
     * @param int $classOpenIndex
     *
     * @return bool
     */
    private function isPrivateMethod(Tokens $tokens, $index, $classOpenIndex)
    {
        $index = max($classOpenIndex + 1, $tokens->getPrevTokenOfKind($index, [';', '{', '}']));

        while (!$tokens[$index]->isGivenKind(T_FUNCTION)) {
            if ($tokens[$index]->isGivenKind(T_PRIVATE)) {
                return true;
            }

            ++$index;
        }

        return false;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ClassNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerConfiguration\AllowedValueSubset;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Tokenizer\TokensAnalyzer;
use SplFileInfo;

/**
 * Make sure there is one blank line above and below class elements.
 *
 * The exception is when an element is the first or last item in a 'classy'.
 *
 * @author SpacePossum
 */
final class ClassAttributesSeparationFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface, WhitespacesAwareFixerInterface
{
    /**
     * @var array<string, true>
     */
    private $classElementTypes = [];

    /**
     * {@inheritdoc}
     */
    public function configure(array $configuration = null)
    {
        parent::configure($configuration);

        $this->classElementTypes = []; // reset previous configuration
        foreach ($this->configuration['elements'] as $element) {
            $this->classElementTypes[$element] = true;
        }
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Class, trait and interface elements must be separated with one blank line.',
            [
                new CodeSample(
                    '<?php
final class Sample
{
    protected function foo()
    {
    }
    protected function bar()
    {
    }


}
'
                ),
                new CodeSample(
                    '<?php
class Sample
{private $a; // a is awesome
    /** second in a hour */
    private $b;
}
',
                    ['elements' => ['property']]
                ),
                new CodeSample(
                    '<?php
class Sample
{
    const A = 1;
    /** seconds in some hours */
    const B = 3600;
}
',
                    ['elements' => ['const']]
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before BracesFixer, IndentationTypeFixer.
     * Must run after OrderedClassElementsFixer, SingleClassElementPerStatementFixer.
     */
    public function getPriority()
    {
        return 55;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound(Token::getClassyTokenKinds());
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(SplFileInfo $file, Tokens $tokens)
    {
        $tokensAnalyzer = new TokensAnalyzer($tokens);
        $class = $classStart = $classEnd = false;

        foreach (array_reverse($tokensAnalyzer->getClassyElements(), true) as $index => $element) {
            if (!isset($this->classElementTypes[$element['type']])) {
                continue; // not configured to be fixed
            }

            if ($element['classIndex'] !== $class) {
                $class = $element['classIndex'];
                $classStart = $tokens->getNextTokenOfKind($class, ['{']);
                $classEnd = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $classStart);
            }

            if ('method' === $element['type'] && !$tokens[$class]->isGivenKind(T_INTERFACE)) {
                // method of class or trait
                $attributes = $tokensAnalyzer->getMethodAttributes($index);

                $methodEnd = true === $attributes['abstract']
                    ? $tokens->getNextTokenOfKind($index, [';'])
                    : $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $tokens->getNextTokenOfKind($index, ['{']))
                ;

                $this->fixSpaceBelowClassMethod($tokens, $classEnd, $methodEnd);
                $this->fixSpaceAboveClassElement($tokens, $classStart, $index);

                continue;
            }

            // `const`, `property` or `method` of an `interface`
            $this->fixSpaceBelowClassElement($tokens, $classEnd, $tokens->getNextTokenOfKind($index, [';']));
            $this->fixSpaceAboveClassElement($tokens, $classStart, $index);
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        $types = ['const', 'method', 'property'];

        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('elements', sprintf('List of classy elements; \'%s\'.', implode("', '", $types))))
                ->setAllowedTypes(['array'])
                ->setAllowedValues([new AllowedValueSubset($types)])
                ->setDefault(['const', 'method', 'property'])
                ->getOption(),
        ]);
    }

    /**
     * Fix spacing below an element of a class, interface or trait.
     *
     * Deals with comments, PHPDocs and spaces above the element with respect to the position of the
     * element within the class, interface or trait.
     *
     * @param int $classEndIndex
     * @param int $elementEndIndex
     */
    private function fixSpaceBelowClassElement(Tokens $tokens, $classEndIndex, $elementEndIndex)
    {
        for ($nextNotWhite = $elementEndIndex + 1;; ++$nextNotWhite) {
            if (($tokens[$nextNotWhite]->isComment() || $tokens[$nextNotWhite]->isWhitespace()) && false === strpos($tokens[$nextNotWhite]->getContent(), "\n")) {
                continue;
            }

            break;
        }

        if ($tokens[$nextNotWhite]->isWhitespace()) {
            $nextNotWhite = $tokens->getNextNonWhitespace($nextNotWhite);
        }

        $this->correctLineBreaks($tokens, $elementEndIndex, $nextNotWhite, $nextNotWhite === $classEndIndex ? 1 : 2);
    }

    /**
     * Fix spacing below a method of a class or trait.
     *
     * Deals with comments, PHPDocs and spaces above the method with respect to the position of the
     * method within the class or trait.
     *
     * @param int $classEndIndex
     * @param int $elementEndIndex
     */
    private function fixSpaceBelowClassMethod(Tokens $tokens, $classEndIndex, $elementEndIndex)
    {
        $nextNotWhite = $tokens->getNextNonWhitespace($elementEndIndex);

        $this->correctLineBreaks($tokens, $elementEndIndex, $nextNotWhite, $nextNotWhite === $classEndIndex ? 1 : 2);
    }

    /**
     * Fix spacing above an element of a class, interface or trait.
     *
     * Deals with comments, PHPDocs and spaces above the element with respect to the position of the
     * element within the class, interface or trait.
     *
     * @param int $classStartIndex index of the class Token the element is in
     * @param int $elementIndex    index of the element to fix
     */
    private function fixSpaceAboveClassElement(Tokens $tokens, $classStartIndex, $elementIndex)
    {
        static $methodAttr = [T_PRIVATE, T_PROTECTED, T_PUBLIC, T_ABSTRACT, T_FINAL, T_STATIC, T_STRING, T_NS_SEPARATOR, T_VAR, CT::T_NULLABLE_TYPE, CT::T_ARRAY_TYPEHINT];

        $nonWhiteAbove = null;

        // find out where the element definition starts
        $firstElementAttributeIndex = $elementIndex;
        for ($i = $elementIndex; $i > $classStartIndex; --$i) {
            $nonWhiteAbove = $tokens->getNonWhitespaceSibling($i, -1);
            if (null !== $nonWhiteAbove && $tokens[$nonWhiteAbove]->isGivenKind($methodAttr)) {
                $firstElementAttributeIndex = $nonWhiteAbove;
            } else {
                break;
            }
        }

        // deal with comments above a element
        if ($tokens[$nonWhiteAbove]->isGivenKind(T_COMMENT)) {
            if (1 === $firstElementAttributeIndex - $nonWhiteAbove) {
                // no white space found between comment and element start
                $this->correctLineBreaks($tokens, $nonWhiteAbove, $firstElementAttributeIndex, 1);

                return;
            }

            // $tokens[$nonWhiteAbove+1] is always a white space token here
            if (substr_count($tokens[$nonWhiteAbove + 1]->getContent(), "\n") > 1) {
                // more than one line break, always bring it back to 2 line breaks between the element start and what is above it
                $this->correctLineBreaks($tokens, $nonWhiteAbove, $firstElementAttributeIndex, 2);

                return;
            }

            // there are 2 cases:
            if ($tokens[$nonWhiteAbove - 1]->isWhitespace() && substr_count($tokens[$nonWhiteAbove - 1]->getContent(), "\n") > 0) {
                // 1. The comment is meant for the element (although not a PHPDoc),
                //    make sure there is one line break between the element and the comment...
                $this->correctLineBreaks($tokens, $nonWhiteAbove, $firstElementAttributeIndex, 1);
                //    ... and make sure there is blank line above the comment (with the exception when it is directly after a class opening)
                $nonWhiteAbove = $this->findCommentBlockStart($tokens, $nonWhiteAbove);
                $nonWhiteAboveComment = $tokens->getNonWhitespaceSibling($nonWhiteAbove, -1);

                $this->correctLineBreaks($tokens, $nonWhiteAboveComment, $nonWhiteAbove, $nonWhiteAboveComment === $classStartIndex ? 1 : 2);
            } else {
                // 2. The comment belongs to the code above the element,
                //    make sure there is a blank line above the element (i.e. 2 line breaks)
                $this->correctLineBreaks($tokens, $nonWhiteAbove, $firstElementAttributeIndex, 2);
            }

            return;
        }

        // deal with element without a PHPDoc above it
        if (false === $tokens[$nonWhiteAbove]->isGivenKind(T_DOC_COMMENT)) {
            $this->correctLineBreaks($tokens, $nonWhiteAbove, $firstElementAttributeIndex, $nonWhiteAbove === $classStartIndex ? 1 : 2);

            return;
        }

        // there should be one linebreak between the element and the PHPDoc above it
        $this->correctLineBreaks($tokens, $nonWhiteAbove, $firstElementAttributeIndex, 1);

        // there should be one blank line between the PHPDoc and whatever is above (with the exception when it is directly after a class opening)
        $nonWhiteAbovePHPDoc = $tokens->getNonWhitespaceSibling($nonWhiteAbove, -1);
        $this->correctLineBreaks($tokens, $nonWhiteAbovePHPDoc, $nonWhiteAbove, $nonWhiteAbovePHPDoc === $classStartIndex ? 1 : 2);
    }

    /**
     * @param int $startIndex
     * @param int $endIndex
     * @param int $reqLineCount
     */
    private function correctLineBreaks(Tokens $tokens, $startIndex, $endIndex, $reqLineCount = 2)
    {
        $lineEnding = $this->whitespacesConfig->getLineEnding();

        ++$startIndex;
        $numbOfWhiteTokens = $endIndex - $startIndex;
        if (0 === $numbOfWhiteTokens) {
            $tokens->insertAt($startIndex, new Token([T_WHITESPACE, str_repeat($lineEnding, $reqLineCount)]));

            return;
        }

        $lineBreakCount = $this->getLineBreakCount($tokens, $startIndex, $endIndex);
        if ($reqLineCount === $lineBreakCount) {
            return;
        }

        if ($lineBreakCount < $reqLineCount) {
            $tokens[$startIndex] = new Token([
                T_WHITESPACE,
                str_repeat($lineEnding, $reqLineCount - $lineBreakCount).$tokens[$startIndex]->getContent(),
            ]);

            return;
        }

        // $lineCount = > $reqLineCount : check the one Token case first since this one will be true most of the time
        if (1 === $numbOfWhiteTokens) {
            $tokens[$startIndex] = new Token([
                T_WHITESPACE,
                Preg::replace('/\r\n|\n/', '', $tokens[$startIndex]->getContent(), $lineBreakCount - $reqLineCount),
            ]);

            return;
        }

        // $numbOfWhiteTokens = > 1
        $toReplaceCount = $lineBreakCount - $reqLineCount;
        for ($i = $startIndex; $i < $endIndex && $toReplaceCount > 0; ++$i) {
            $tokenLineCount = substr_count($tokens[$i]->getContent(), "\n");
            if ($tokenLineCount > 0) {
                $tokens[$i] = new Token([
                    T_WHITESPACE,
                    Preg::replace('/\r\n|\n/', '', $tokens[$i]->getContent(), min($toReplaceCount, $tokenLineCount)),
                ]);
                $toReplaceCount -= $tokenLineCount;
            }
        }
    }

    /**
     * @param int $whiteSpaceStartIndex
     * @param int $whiteSpaceEndIndex
     *
     * @return int
     */
    private function getLineBreakCount(Tokens $tokens, $whiteSpaceStartIndex, $whiteSpaceEndIndex)
    {
        $lineCount = 0;
        for ($i = $whiteSpaceStartIndex; $i < $whiteSpaceEndIndex; ++$i) {
            $lineCount += substr_count($tokens[$i]->getContent(), "\n");
        }

        return $lineCount;
    }

    /**
     * @param int $commentIndex
     *
     * @return int
     */
    private function findCommentBlockStart(Tokens $tokens, $commentIndex)
    {
        $start = $commentIndex;
        for ($i = $commentIndex - 1; $i > 0; --$i) {
            if ($tokens[$i]->isComment()) {
                $start = $i;

                continue;
            }

            if (!$tokens[$i]->isWhitespace() || $this->getLineBreakCount($tokens, $i, $i + 1) > 1) {
                break;
            }
        }

        return $start;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ClassNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Analyzer\NamespacesAnalyzer;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Tokenizer\TokensAnalyzer;

/**
 * @author Gregor Harlan <gharlan@web.de>
 */
final class SelfAccessorFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Inside class or interface element `self` should be preferred to the class name itself.',
            [
                new CodeSample(
                    '<?php
class Sample
{
    const BAZ = 1;
    const BAR = Sample::BAZ;

    public function getBar()
    {
        return Sample::BAR;
    }
}
'
                ),
            ],
            null,
            'Risky when using dynamic calls like get_called_class() or late static binding.'
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound([T_CLASS, T_INTERFACE]);
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $tokensAnalyzer = new TokensAnalyzer($tokens);

        foreach ((new NamespacesAnalyzer())->getDeclarations($tokens) as $namespace) {
            for ($index = $namespace->getScopeStartIndex(); $index < $namespace->getScopeEndIndex(); ++$index) {
                if (!$tokens[$index]->isGivenKind([T_CLASS, T_INTERFACE]) || $tokensAnalyzer->isAnonymousClass($index)) {
                    continue;
                }

                $nameIndex = $tokens->getNextTokenOfKind($index, [[T_STRING]]);
                $startIndex = $tokens->getNextTokenOfKind($nameIndex, ['{']);
                $endIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $startIndex);

                $name = $tokens[$nameIndex]->getContent();

                $this->replaceNameOccurrences($tokens, $namespace->getFullName(), $name, $startIndex, $endIndex);

                $index = $endIndex;
            }
        }
    }

    /**
     * Replace occurrences of the name of the classy element by "self" (if possible).
     *
     * @param string $namespace
     * @param string $name
     * @param int    $startIndex
     * @param int    $endIndex
     */
    private function replaceNameOccurrences(Tokens $tokens, $namespace, $name, $startIndex, $endIndex)
    {
        $tokensAnalyzer = new TokensAnalyzer($tokens);
        $insideMethodSignatureUntil = null;

        for ($i = $startIndex; $i < $endIndex; ++$i) {
            if ($i === $insideMethodSignatureUntil) {
                $insideMethodSignatureUntil = null;
            }

            $token = $tokens[$i];

            // skip anonymous classes
            if ($token->isGivenKind(T_CLASS) && $tokensAnalyzer->isAnonymousClass($i)) {
                $i = $tokens->getNextTokenOfKind($i, ['{']);
                $i = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $i);

                continue;
            }

            if ($token->isGivenKind(T_FUNCTION)) {
                $i = $tokens->getNextTokenOfKind($i, ['(']);
                $insideMethodSignatureUntil = $tokens->getNextTokenOfKind($i, ['{', ';']);

                continue;
            }

            if (!$token->equals([T_STRING, $name], false)) {
                continue;
            }

            $nextToken = $tokens[$tokens->getNextMeaningfulToken($i)];
            if ($nextToken->isGivenKind(T_NS_SEPARATOR)) {
                continue;
            }

            $classStartIndex = $i;
            $prevToken = $tokens[$tokens->getPrevMeaningfulToken($i)];
            if ($prevToken->isGivenKind(T_NS_SEPARATOR)) {
                $classStartIndex = $this->getClassStart($tokens, $i, $namespace);
                if (null === $classStartIndex) {
                    continue;
                }
                $prevToken = $tokens[$tokens->getPrevMeaningfulToken($classStartIndex)];
            }
            if ($prevToken->isGivenKind([T_OBJECT_OPERATOR, T_STRING])) {
                continue;
            }

            if (
                $prevToken->isGivenKind([T_INSTANCEOF, T_NEW])
                || $nextToken->isGivenKind(T_PAAMAYIM_NEKUDOTAYIM)
                || (
                    null !== $insideMethodSignatureUntil
                    && $i < $insideMethodSignatureUntil
                    && $prevToken->equalsAny(['(', ',', [CT::T_TYPE_COLON], [CT::T_NULLABLE_TYPE]])
                )
            ) {
                for ($j = $classStartIndex; $j < $i; ++$j) {
                    $tokens->clearTokenAndMergeSurroundingWhitespace($j);
                }
                $tokens[$i] = new Token([T_STRING, 'self']);
            }
        }
    }

    private function getClassStart(Tokens $tokens, $index, $namespace)
    {
        $namespace = ('' !== $namespace ? '\\'.$namespace : '').'\\';

        foreach (array_reverse(Preg::split('/(\\\\)/', $namespace, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE)) as $piece) {
            $index = $tokens->getPrevMeaningfulToken($index);
            if ('\\' === $piece) {
                if (!$tokens[$index]->isGivenKind(T_NS_SEPARATOR)) {
                    return null;
                }
            } elseif (!$tokens[$index]->equals([T_STRING, $piece], false)) {
                return null;
            }
        }

        return $index;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ClassNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Filippo Tessarotto <zoeslam@gmail.com>
 */
final class FinalPublicMethodForAbstractClassFixer extends AbstractFixer
{
    /**
     * @var array
     */
    private $magicMethods = [
        '__construct' => true,
        '__destruct' => true,
        '__call' => true,
        '__callstatic' => true,
        '__get' => true,
        '__set' => true,
        '__isset' => true,
        '__unset' => true,
        '__sleep' => true,
        '__wakeup' => true,
        '__tostring' => true,
        '__invoke' => true,
        '__set_state' => true,
        '__clone' => true,
        '__debuginfo' => true,
    ];

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'All `public` methods of `abstract` classes should be `final`.',
            [
                new CodeSample(
                    '<?php

abstract class AbstractMachine
{
    public function start()
    {}
}
'
                ),
            ],
            'Enforce API encapsulation in an inheritance architecture. '
            .'If you want to override a method, use the Template method pattern.',
            'Risky when overriding `public` methods of `abstract` classes.'
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAllTokenKindsFound([T_CLASS, T_ABSTRACT, T_PUBLIC, T_FUNCTION]);
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $classes = array_keys($tokens->findGivenKind(T_CLASS));

        while ($classIndex = array_pop($classes)) {
            $prevToken = $tokens[$tokens->getPrevMeaningfulToken($classIndex)];
            if (!$prevToken->isGivenKind([T_ABSTRACT])) {
                continue;
            }

            $classOpen = $tokens->getNextTokenOfKind($classIndex, ['{']);
            $classClose = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $classOpen);

            $this->fixClass($tokens, $classOpen, $classClose);
        }
    }

    /**
     * @param int $classOpenIndex
     * @param int $classCloseIndex
     */
    private function fixClass(Tokens $tokens, $classOpenIndex, $classCloseIndex)
    {
        for ($index = $classCloseIndex - 1; $index > $classOpenIndex; --$index) {
            // skip method contents
            if ($tokens[$index]->equals('}')) {
                $index = $tokens->findBlockStart(Tokens::BLOCK_TYPE_CURLY_BRACE, $index);

                continue;
            }

            // skip non public methods
            if (!$tokens[$index]->isGivenKind(T_PUBLIC)) {
                continue;
            }
            $nextIndex = $tokens->getNextMeaningfulToken($index);
            $nextToken = $tokens[$nextIndex];
            if ($nextToken->isGivenKind(T_STATIC)) {
                $nextIndex = $tokens->getNextMeaningfulToken($nextIndex);
                $nextToken = $tokens[$nextIndex];
            }

            // skip uses, attributes, constants etc
            if (!$nextToken->isGivenKind(T_FUNCTION)) {
                continue;
            }
            $nextIndex = $tokens->getNextMeaningfulToken($nextIndex);
            $nextToken = $tokens[$nextIndex];

            // skip magic methods
            if (isset($this->magicMethods[strtolower($nextToken->getContent())])) {
                continue;
            }

            $prevIndex = $tokens->getPrevMeaningfulToken($index);
            $prevToken = $tokens[$prevIndex];
            if ($prevToken->isGivenKind(T_STATIC)) {
                $index = $prevIndex;
                $prevIndex = $tokens->getPrevMeaningfulToken($index);
                $prevToken = $tokens[$prevIndex];
            }
            // skip abstract or already final methods
            if ($prevToken->isGivenKind([T_ABSTRACT, T_FINAL])) {
                $index = $prevIndex;

                continue;
            }

            $tokens->insertAt(
                $index,
                [
                    new Token([T_FINAL, 'final']),
                    new Token([T_WHITESPACE, ' ']),
                ]
            );
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ClassNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\FixerDefinition\VersionSpecification;
use PhpCsFixer\FixerDefinition\VersionSpecificCodeSample;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Tokenizer\TokensAnalyzer;

final class SelfStaticAccessorFixer extends AbstractFixer
{
    /**
     * @var TokensAnalyzer
     */
    private $tokensAnalyzer;

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Inside a `final` class or anonymous class `self` should be preferred to `static`.',
            [
                new CodeSample(
                    '<?php
final class Sample
{
    private static $A = 1;

    public function getBar()
    {
        return static::class.static::test().static::$A;
    }

    private static function test()
    {
        return \'test\';
    }
}
'
                ),
                new CodeSample(
                    '<?php
final class Foo
{
    public function bar()
    {
        return new static();
    }
}
'
                ),
                new CodeSample(
                    '<?php
final class Foo
{
    public function isBar()
    {
        return $foo instanceof static;
    }
}
'
                ),
                new VersionSpecificCodeSample(
                    '<?php
$a = new class() {
    public function getBar()
    {
        return static::class;
    }
};
',
                    new VersionSpecification(70000)
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAllTokenKindsFound([T_CLASS, T_STATIC]) && $tokens->isAnyTokenKindsFound([T_DOUBLE_COLON, T_NEW, T_INSTANCEOF]);
    }

    /**
     * {@inheritdoc}
     *
     * Must run after FinalInternalClassFixer, FunctionToConstantFixer, PhpUnitTestCaseStaticMethodCallsFixer.
     */
    public function getPriority()
    {
        return -10;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $this->tokensAnalyzer = $tokensAnalyzer = new TokensAnalyzer($tokens);

        $classIndex = $tokens->getNextTokenOfKind(0, [[T_CLASS]]);

        while (null !== $classIndex) {
            if (
                $tokens[$tokens->getPrevMeaningfulToken($classIndex)]->isGivenKind(T_FINAL)
                || $tokensAnalyzer->isAnonymousClass($classIndex)
            ) {
                $classIndex = $this->fixClass($tokens, $classIndex);
            }

            $classIndex = $tokens->getNextTokenOfKind($classIndex, [[T_CLASS]]);
        }
    }

    /**
     * @param int $index
     *
     * @return int
     */
    private function fixClass(Tokens $tokens, $index)
    {
        $index = $tokens->getNextTokenOfKind($index, ['{']);
        $classOpenCount = 1;

        while ($classOpenCount > 0) {
            ++$index;

            if ($tokens[$index]->equals('{')) {
                ++$classOpenCount;

                continue;
            }

            if ($tokens[$index]->equals('}')) {
                --$classOpenCount;

                continue;
            }

            if ($tokens[$index]->isGivenKind(T_FUNCTION)) {
                // do not fix inside lambda
                if ($this->tokensAnalyzer->isLambda($index)) {
                    // figure out where the lambda starts
                    $index = $tokens->getNextTokenOfKind($index, ['{']);
                    $openCount = 1;

                    do {
                        $index = $tokens->getNextTokenOfKind($index, ['}', '{', [T_CLASS]]);
                        if ($tokens[$index]->equals('}')) {
                            --$openCount;
                        } elseif ($tokens[$index]->equals('{')) {
                            ++$openCount;
                        } else {
                            $index = $this->fixClass($tokens, $index);
                        }
                    } while ($openCount > 0);
                }

                continue;
            }

            if ($tokens[$index]->isGivenKind([T_NEW, T_INSTANCEOF])) {
                $index = $tokens->getNextMeaningfulToken($index);

                if ($tokens[$index]->isGivenKind(T_STATIC)) {
                    $tokens[$index] = new Token([T_STRING, 'self']);
                }

                continue;
            }

            if (!$tokens[$index]->isGivenKind(T_STATIC)) {
                continue;
            }

            $staticIndex = $index;
            $index = $tokens->getNextMeaningfulToken($index);

            if (!$tokens[$index]->isGivenKind(T_DOUBLE_COLON)) {
                continue;
            }

            $tokens[$staticIndex] = new Token([T_STRING, 'self']);
        }

        return $index;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ClassNotation;

use PhpCsFixer\AbstractProxyFixer;
use PhpCsFixer\Fixer\DeprecatedFixerInterface;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;

/**
 * @author SpacePossum
 *
 * @deprecated in 2.8, proxy to ClassAttributesSeparationFixer
 */
final class MethodSeparationFixer extends AbstractProxyFixer implements DeprecatedFixerInterface, WhitespacesAwareFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Methods must be separated with one blank line.',
            [
                new CodeSample(
                    '<?php
final class Sample
{
    protected function foo()
    {
    }
    protected function bar()
    {
    }
}
'
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before BracesFixer, IndentationTypeFixer.
     * Must run after OrderedClassElementsFixer.
     */
    public function getPriority()
    {
        return parent::getPriority();
    }

    /**
     * Returns names of fixers to use instead, if any.
     *
     * @return string[]
     */
    public function getSuccessorsNames()
    {
        return array_keys($this->proxyFixers);
    }

    /**
     * {@inheritdoc}
     */
    protected function createProxyFixers()
    {
        $fixer = new ClassAttributesSeparationFixer();
        $fixer->configure(['elements' => ['method']]);

        return [$fixer];
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ClassNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\AllowedValueSubset;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverRootless;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\FixerDefinition\VersionSpecification;
use PhpCsFixer\FixerDefinition\VersionSpecificCodeSample;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Tokenizer\TokensAnalyzer;

/**
 * Fixer for rules defined in PSR2 ¶4.3, ¶4.5.
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 * @author SpacePossum
 */
final class VisibilityRequiredFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Visibility MUST be declared on all properties and methods; `abstract` and `final` MUST be declared before the visibility; `static` MUST be declared after the visibility.',
            [
                new CodeSample(
                    '<?php
class Sample
{
    var $a;
    static protected $var_foo2;

    function A()
    {
    }
}
'
                ),
                new VersionSpecificCodeSample(
                    '<?php
class Sample
{
    const SAMPLE = 1;
}
',
                    new VersionSpecification(70100),
                    ['elements' => ['const']]
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound(Token::getClassyTokenKinds());
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolverRootless('elements', [
            (new FixerOptionBuilder('elements', 'The structural elements to fix (PHP >= 7.1 required for `const`).'))
                ->setAllowedTypes(['array'])
                ->setAllowedValues([new AllowedValueSubset(['property', 'method', 'const'])])
                ->setDefault(['property', 'method'])
                ->getOption(),
        ], $this->getName());
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $tokensAnalyzer = new TokensAnalyzer($tokens);
        $elements = $tokensAnalyzer->getClassyElements();

        $propertyTypeDeclarationKinds = [T_STRING, T_NS_SEPARATOR, CT::T_NULLABLE_TYPE, CT::T_ARRAY_TYPEHINT];

        foreach (array_reverse($elements, true) as $index => $element) {
            if (!\in_array($element['type'], $this->configuration['elements'], true)) {
                continue;
            }

            if (\PHP_VERSION_ID < 70100 && 'const' === $element['type']) {
                continue;
            }

            $abstractFinalIndex = null;
            $visibilityIndex = null;
            $staticIndex = null;
            $typeIndex = null;
            $prevIndex = $tokens->getPrevMeaningfulToken($index);

            $expectedKinds = [T_ABSTRACT, T_FINAL, T_PRIVATE, T_PROTECTED, T_PUBLIC, T_STATIC, T_VAR];
            if ('property' === $element['type']) {
                $expectedKinds = array_merge($expectedKinds, $propertyTypeDeclarationKinds);
            }

            while ($tokens[$prevIndex]->isGivenKind($expectedKinds)) {
                if ($tokens[$prevIndex]->isGivenKind([T_ABSTRACT, T_FINAL])) {
                    $abstractFinalIndex = $prevIndex;
                } elseif ($tokens[$prevIndex]->isGivenKind(T_STATIC)) {
                    $staticIndex = $prevIndex;
                } elseif ($tokens[$prevIndex]->isGivenKind($propertyTypeDeclarationKinds)) {
                    $typeIndex = $prevIndex;
                } else {
                    $visibilityIndex = $prevIndex;
                }
                $prevIndex = $tokens->getPrevMeaningfulToken($prevIndex);
            }

            if (null !== $typeIndex) {
                $index = $typeIndex;
            }

            if ($tokens[$prevIndex]->equals(',')) {
                continue;
            }

            if (null !== $staticIndex) {
                if ($this->isKeywordPlacedProperly($tokens, $staticIndex, $index)) {
                    $index = $staticIndex;
                } else {
                    $this->moveTokenAndEnsureSingleSpaceFollows($tokens, $staticIndex, $index);
                }
            }

            if (null === $visibilityIndex) {
                $tokens->insertAt($index, [new Token([T_PUBLIC, 'public']), new Token([T_WHITESPACE, ' '])]);
            } else {
                if ($tokens[$visibilityIndex]->isGivenKind(T_VAR)) {
                    $tokens[$visibilityIndex] = new Token([T_PUBLIC, 'public']);
                }
                if ($this->isKeywordPlacedProperly($tokens, $visibilityIndex, $index)) {
                    $index = $visibilityIndex;
                } else {
                    $this->moveTokenAndEnsureSingleSpaceFollows($tokens, $visibilityIndex, $index);
                }
            }

            if (null === $abstractFinalIndex) {
                continue;
            }

            if ($this->isKeywordPlacedProperly($tokens, $abstractFinalIndex, $index)) {
                continue;
            }

            $this->moveTokenAndEnsureSingleSpaceFollows($tokens, $abstractFinalIndex, $index);
        }
    }

    /**
     * @param int $keywordIndex
     * @param int $comparedIndex
     *
     * @return bool
     */
    private function isKeywordPlacedProperly(Tokens $tokens, $keywordIndex, $comparedIndex)
    {
        return $keywordIndex + 2 === $comparedIndex && ' ' === $tokens[$keywordIndex + 1]->getContent();
    }

    /**
     * @param int $fromIndex
     * @param int $toIndex
     */
    private function moveTokenAndEnsureSingleSpaceFollows(Tokens $tokens, $fromIndex, $toIndex)
    {
        $tokens->insertAt($toIndex, [$tokens[$fromIndex], new Token([T_WHITESPACE, ' '])]);

        $tokens->clearAt($fromIndex);
        if ($tokens[$fromIndex + 1]->isWhitespace()) {
            $tokens->clearAt($fromIndex + 1);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ClassNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author SpacePossum
 */
final class SingleTraitInsertPerStatementFixer extends AbstractFixer
{
    public function getDefinition()
    {
        return new FixerDefinition(
            'Each trait `use` must be done as single statement.',
            [
                new CodeSample(
                    '<?php
final class Example
{
    use Foo, Bar;
}
'
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before BracesFixer, SpaceAfterSemicolonFixer.
     */
    public function getPriority()
    {
        return 1;
    }

    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(CT::T_USE_TRAIT);
    }

    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        for ($index = \count($tokens) - 1; 1 < $index; --$index) {
            if ($tokens[$index]->isGivenKind(CT::T_USE_TRAIT)) {
                $candidates = $this->getCandidates($tokens, $index);
                if (\count($candidates) > 0) {
                    $this->fixTraitUse($tokens, $index, $candidates);
                }
            }
        }
    }

    /**
     * @param int   $useTraitIndex
     * @param int[] $candidates    ',' indexes to fix
     */
    private function fixTraitUse(Tokens $tokens, $useTraitIndex, array $candidates)
    {
        foreach ($candidates as $commaIndex) {
            $inserts = [
                new Token([CT::T_USE_TRAIT, 'use']),
                new Token([T_WHITESPACE, ' ']),
            ];

            $nextImportStartIndex = $tokens->getNextMeaningfulToken($commaIndex);

            if ($tokens[$nextImportStartIndex - 1]->isWhitespace()) {
                if (1 === Preg::match('/\R/', $tokens[$nextImportStartIndex - 1]->getContent())) {
                    array_unshift($inserts, clone $tokens[$useTraitIndex - 1]);
                }
                $tokens->clearAt($nextImportStartIndex - 1);
            }

            $tokens[$commaIndex] = new Token(';');
            $tokens->insertAt($nextImportStartIndex, $inserts);
        }
    }

    /**
     * @param int $index
     *
     * @return int[]
     */
    private function getCandidates(Tokens $tokens, $index)
    {
        $indexes = [];
        $index = $tokens->getNextTokenOfKind($index, [',', ';', '{']);

        while (!$tokens[$index]->equals(';')) {
            if ($tokens[$index]->equals('{')) {
                return []; // do not fix use cases with grouping
            }

            $indexes[] = $index;
            $index = $tokens->getNextTokenOfKind($index, [',', ';', '{']);
        }

        return array_reverse($indexes);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ControlStructure;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author SpacePossum
 */
final class NoUnneededCurlyBracesFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Removes unneeded curly braces that are superfluous and aren\'t part of a control structure\'s body.',
            [
                new CodeSample(
                    '<?php {
    echo 1;
}

switch ($b) {
    case 1: {
        break;
    }
}
'
                ),
                new CodeSample(
                    '<?php
namespace Foo {
    function Bar(){}
}
',
                    ['namespaces' => true]
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before NoUselessElseFixer, NoUselessReturnFixer, ReturnAssignmentFixer.
     */
    public function getPriority()
    {
        return 26;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound('}');
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($this->findCurlyBraceOpen($tokens) as $index) {
            if ($this->isOverComplete($tokens, $index)) {
                $this->clearOverCompleteBraces($tokens, $index, $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $index));
            }
        }

        if ($this->configuration['namespaces']) {
            $this->clearIfIsOverCompleteNamespaceBlock($tokens);
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('namespaces', 'Remove unneeded curly braces from bracketed namespaces.'))
                ->setAllowedTypes(['bool'])
                ->setDefault(false)
                ->getOption(),
        ]);
    }

    /**
     * @param int $openIndex  index of `{` token
     * @param int $closeIndex index of `}` token
     */
    private function clearOverCompleteBraces(Tokens $tokens, $openIndex, $closeIndex)
    {
        $tokens->clearTokenAndMergeSurroundingWhitespace($closeIndex);
        $tokens->clearTokenAndMergeSurroundingWhitespace($openIndex);
    }

    private function findCurlyBraceOpen(Tokens $tokens)
    {
        for ($i = \count($tokens) - 1; $i > 0; --$i) {
            if ($tokens[$i]->equals('{')) {
                yield $i;
            }
        }
    }

    /**
     * @param int $index index of `{` token
     *
     * @return bool
     */
    private function isOverComplete(Tokens $tokens, $index)
    {
        static $include = ['{', '}', [T_OPEN_TAG], ':', ';'];

        return $tokens[$tokens->getPrevMeaningfulToken($index)]->equalsAny($include);
    }

    private function clearIfIsOverCompleteNamespaceBlock(Tokens $tokens)
    {
        if (Tokens::isLegacyMode()) {
            $index = $tokens->getNextTokenOfKind(0, [[T_NAMESPACE]]);
            $secondNamespaceIndex = $tokens->getNextTokenOfKind($index, [[T_NAMESPACE]]);

            if (null !== $secondNamespaceIndex) {
                return;
            }
        } elseif (1 !== $tokens->countTokenKind(T_NAMESPACE)) {
            return; // fast check, we never fix if multiple namespaces are defined
        }

        $index = $tokens->getNextTokenOfKind(0, [[T_NAMESPACE]]);

        do {
            $index = $tokens->getNextMeaningfulToken($index);
        } while ($tokens[$index]->isGivenKind([T_STRING, T_NS_SEPARATOR]));

        if (!$tokens[$index]->equals('{')) {
            return; // `;`
        }

        $closeIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $index);
        $afterCloseIndex = $tokens->getNextMeaningfulToken($closeIndex);

        if (null !== $afterCloseIndex && (!$tokens[$afterCloseIndex]->isGivenKind(T_CLOSE_TAG) || null !== $tokens->getNextMeaningfulToken($afterCloseIndex))) {
            return;
        }

        // clear up
        $tokens->clearTokenAndMergeSurroundingWhitespace($closeIndex);
        $tokens[$index] = new Token(';');

        if ($tokens[$index - 1]->isWhitespace(" \t") && !$tokens[$index - 2]->isComment()) {
            $tokens->clearTokenAndMergeSurroundingWhitespace($index - 1);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ControlStructure;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Eddilbert Macharia <edd.cowan@gmail.com>
 */
final class NoAlternativeSyntaxFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Replace control structure alternative syntax to use braces.',
            [
                new CodeSample(
                    "<?php\nif(true):echo 't';else:echo 'f';endif;\n"
                ),
                new CodeSample(
                    "<?php\nwhile(true):echo 'red';endwhile;\n"
                ),
                new CodeSample(
                    "<?php\nfor(;;):echo 'xc';endfor;\n"
                ),
                new CodeSample(
                    "<?php\nforeach(array('a') as \$item):echo 'xc';endforeach;\n"
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound(
            [
                T_ENDIF,
                T_ENDWHILE,
                T_ENDFOREACH,
                T_ENDFOR,
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before BracesFixer, ElseifFixer, NoSuperfluousElseifFixer, NoUselessElseFixer.
     */
    public function getPriority()
    {
        return 26;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        for ($index = \count($tokens) - 1; 0 <= $index; --$index) {
            $token = $tokens[$index];
            $this->fixElseif($index, $token, $tokens);
            $this->fixElse($index, $token, $tokens);
            $this->fixOpenCloseControls($index, $token, $tokens);
        }
    }

    private function findParenthesisEnd(Tokens $tokens, $structureTokenIndex)
    {
        $nextIndex = $tokens->getNextMeaningfulToken($structureTokenIndex);
        $nextToken = $tokens[$nextIndex];

        // return if next token is not opening parenthesis
        if (!$nextToken->equals('(')) {
            return $structureTokenIndex;
        }

        return $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $nextIndex);
    }

    /**
     * Handle both extremes of the control structures.
     * e.g. if(): or endif;.
     *
     * @param int    $index  the index of the token being processed
     * @param Token  $token  the token being processed
     * @param Tokens $tokens the collection of tokens
     */
    private function fixOpenCloseControls($index, Token $token, Tokens $tokens)
    {
        if ($token->isGivenKind([T_IF, T_FOREACH, T_WHILE, T_FOR])) {
            $openIndex = $tokens->getNextTokenOfKind($index, ['(']);
            $closeIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $openIndex);
            $afterParenthesisIndex = $tokens->getNextNonWhitespace($closeIndex);
            $afterParenthesis = $tokens[$afterParenthesisIndex];

            if (!$afterParenthesis->equals(':')) {
                return;
            }
            $items = [];
            if (!$tokens[$afterParenthesisIndex - 1]->isWhitespace()) {
                $items[] = new Token([T_WHITESPACE, ' ']);
            }
            $items[] = new Token('{');

            if (!$tokens[$afterParenthesisIndex + 1]->isWhitespace()) {
                $items[] = new Token([T_WHITESPACE, ' ']);
            }
            $tokens->clearAt($afterParenthesisIndex);
            $tokens->insertAt($afterParenthesisIndex, $items);
        }

        if (!$token->isGivenKind([T_ENDIF, T_ENDFOREACH, T_ENDWHILE, T_ENDFOR])) {
            return;
        }

        $nextTokenIndex = $tokens->getNextMeaningfulToken($index);
        $nextToken = $tokens[$nextTokenIndex];
        $tokens[$index] = new Token('}');
        if ($nextToken->equals(';')) {
            $tokens->clearAt($nextTokenIndex);
        }
    }

    /**
     * Handle the else:.
     *
     * @param int    $index  the index of the token being processed
     * @param Token  $token  the token being processed
     * @param Tokens $tokens the collection of tokens
     */
    private function fixElse($index, Token $token, Tokens $tokens)
    {
        if (!$token->isGivenKind(T_ELSE)) {
            return;
        }

        $tokenAfterElseIndex = $tokens->getNextMeaningfulToken($index);
        $tokenAfterElse = $tokens[$tokenAfterElseIndex];
        if (!$tokenAfterElse->equals(':')) {
            return;
        }

        $this->addBraces($tokens, new Token([T_ELSE, 'else']), $index, $tokenAfterElseIndex);
    }

    /**
     * Handle the elsif(): cases.
     *
     * @param int    $index  the index of the token being processed
     * @param Token  $token  the token being processed
     * @param Tokens $tokens the collection of tokens
     */
    private function fixElseif($index, Token $token, Tokens $tokens)
    {
        if (!$token->isGivenKind(T_ELSEIF)) {
            return;
        }
        $parenthesisEndIndex = $this->findParenthesisEnd($tokens, $index);
        $tokenAfterParenthesisIndex = $tokens->getNextMeaningfulToken($parenthesisEndIndex);
        $tokenAfterParenthesis = $tokens[$tokenAfterParenthesisIndex];
        if (!$tokenAfterParenthesis->equals(':')) {
            return;
        }

        $this->addBraces($tokens, new Token([T_ELSEIF, 'elseif']), $index, $tokenAfterParenthesisIndex);
    }

    /**
     * Add opening and closing braces to the else: and elseif: .
     *
     * @param Tokens $tokens     the tokens collection
     * @param Token  $token      the current token
     * @param int    $index      the current token index
     * @param int    $colonIndex the index of the colon
     */
    private function addBraces(Tokens $tokens, Token $token, $index, $colonIndex)
    {
        $items = [
            new Token('}'),
            new Token([T_WHITESPACE, ' ']),
            $token,
        ];
        if (!$tokens[$index + 1]->isWhitespace()) {
            $items[] = new Token([T_WHITESPACE, ' ']);
        }
        $tokens->clearAt($index);
        $tokens->insertAt(
            $index,
            $items
        );

        // increment the position of the colon by number of items inserted
        $colonIndex += \count($items);

        $items = [new Token('{')];
        if (!$tokens[$colonIndex + 1]->isWhitespace()) {
            $items[] = new Token([T_WHITESPACE, ' ']);
        }

        $tokens->clearAt($colonIndex);
        $tokens->insertAt(
            $colonIndex,
            $items
        );
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ControlStructure;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Tokenizer\TokensAnalyzer;

/**
 * @author Bram Gotink <bram@gotink.me>
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 * @author SpacePossum
 */
final class YodaStyleFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * @var array<int|string, Token>
     */
    private $candidatesMap;

    /**
     * @var array<int|string, null|bool>
     */
    private $candidateTypesConfiguration;

    /**
     * @var array<int|string>
     */
    private $candidateTypes;

    /**
     * {@inheritdoc}
     */
    public function configure(array $configuration = null)
    {
        parent::configure($configuration);

        $this->resolveConfiguration();
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Write conditions in Yoda style (`true`), non-Yoda style (`false`) or ignore those conditions (`null`) based on configuration.',
            [
                new CodeSample(
                    '<?php
    if ($a === null) {
        echo "null";
    }
'
                ),
                new CodeSample(
                    '<?php
    $b = $c != 1;  // equal
    $a = 1 === $b; // identical
    $c = $c > 3;   // less than
',
                    [
                        'equal' => true,
                        'identical' => false,
                        'less_and_greater' => null,
                    ]
                ),
                new CodeSample(
                    '<?php
return $foo === count($bar);
',
                    [
                        'always_move_variable' => true,
                    ]
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run after IsNullFixer.
     */
    public function getPriority()
    {
        return 0;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound($this->candidateTypes);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $this->fixTokens($tokens);
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('equal', 'Style for equal (`==`, `!=`) statements.'))
                ->setAllowedTypes(['bool', 'null'])
                ->setDefault(true)
                ->getOption(),
            (new FixerOptionBuilder('identical', 'Style for identical (`===`, `!==`) statements.'))
                ->setAllowedTypes(['bool', 'null'])
                ->setDefault(true)
                ->getOption(),
            (new FixerOptionBuilder('less_and_greater', 'Style for less and greater than (`<`, `<=`, `>`, `>=`) statements.'))
                ->setAllowedTypes(['bool', 'null'])
                ->setDefault(null)
                ->getOption(),
            (new FixerOptionBuilder('always_move_variable', 'Whether variables should always be on non assignable side when applying Yoda style.'))
                ->setAllowedTypes(['bool'])
                ->setDefault(false)
                ->getOption(),
        ]);
    }

    /**
     * Finds the end of the right-hand side of the comparison at the given
     * index.
     *
     * The right-hand side ends when an operator with a lower precedence is
     * encountered or when the block level for `()`, `{}` or `[]` goes below
     * zero.
     *
     * @param Tokens $tokens The token list
     * @param int    $index  The index of the comparison
     *
     * @return int The last index of the right-hand side of the comparison
     */
    private function findComparisonEnd(Tokens $tokens, $index)
    {
        ++$index;
        $count = \count($tokens);
        while ($index < $count) {
            $token = $tokens[$index];
            if ($token->isGivenKind([T_WHITESPACE, T_COMMENT, T_DOC_COMMENT])) {
                ++$index;

                continue;
            }

            if ($this->isOfLowerPrecedence($token)) {
                break;
            }

            $block = Tokens::detectBlockType($token);
            if (null === $block) {
                ++$index;

                continue;
            }

            if (!$block['isStart']) {
                break;
            }

            $index = $tokens->findBlockEnd($block['type'], $index) + 1;
        }

        $prev = $tokens->getPrevMeaningfulToken($index);

        return $tokens[$prev]->isGivenKind(T_CLOSE_TAG) ? $tokens->getPrevMeaningfulToken($prev) : $prev;
    }

    /**
     * Finds the start of the left-hand side of the comparison at the given
     * index.
     *
     * The left-hand side ends when an operator with a lower precedence is
     * encountered or when the block level for `()`, `{}` or `[]` goes below
     * zero.
     *
     * @param Tokens $tokens The token list
     * @param int    $index  The index of the comparison
     *
     * @return int The first index of the left-hand side of the comparison
     */
    private function findComparisonStart(Tokens $tokens, $index)
    {
        --$index;
        $nonBlockFound = false;

        while (0 <= $index) {
            $token = $tokens[$index];
            if ($token->isGivenKind([T_WHITESPACE, T_COMMENT, T_DOC_COMMENT])) {
                --$index;

                continue;
            }

            if ($this->isOfLowerPrecedence($token)) {
                break;
            }

            $block = Tokens::detectBlockType($token);
            if (null === $block) {
                --$index;
                $nonBlockFound = true;

                continue;
            }

            if (
                $block['isStart']
                || ($nonBlockFound && Tokens::BLOCK_TYPE_CURLY_BRACE === $block['type']) // closing of structure not related to the comparison
            ) {
                break;
            }

            $index = $tokens->findBlockStart($block['type'], $index) - 1;
        }

        return $tokens->getNextMeaningfulToken($index);
    }

    /**
     * @return Tokens
     */
    private function fixTokens(Tokens $tokens)
    {
        for ($i = \count($tokens) - 1; $i > 1; --$i) {
            if ($tokens[$i]->isGivenKind($this->candidateTypes)) {
                $yoda = $this->candidateTypesConfiguration[$tokens[$i]->getId()];
            } elseif (
                ($tokens[$i]->equals('<') && \in_array('<', $this->candidateTypes, true))
                || ($tokens[$i]->equals('>') && \in_array('>', $this->candidateTypes, true))
            ) {
                $yoda = $this->candidateTypesConfiguration[$tokens[$i]->getContent()];
            } else {
                continue;
            }

            $fixableCompareInfo = $this->getCompareFixableInfo($tokens, $i, $yoda);
            if (null === $fixableCompareInfo) {
                continue;
            }

            $i = $this->fixTokensCompare(
                $tokens,
                $fixableCompareInfo['left']['start'],
                $fixableCompareInfo['left']['end'],
                $i,
                $fixableCompareInfo['right']['start'],
                $fixableCompareInfo['right']['end']
            );
        }

        return $tokens;
    }

    /**
     * Fixes the comparison at the given index.
     *
     * A comparison is considered fixed when
     * - both sides are a variable (e.g. $a === $b)
     * - neither side is a variable (e.g. self::CONST === 3)
     * - only the right-hand side is a variable (e.g. 3 === self::$var)
     *
     * If the left-hand side and right-hand side of the given comparison are
     * swapped, this function runs recursively on the previous left-hand-side.
     *
     * @param int $startLeft
     * @param int $endLeft
     * @param int $compareOperatorIndex
     * @param int $startRight
     * @param int $endRight
     *
     * @return int a upper bound for all non-fixed comparisons
     */
    private function fixTokensCompare(
        Tokens $tokens,
        $startLeft,
        $endLeft,
        $compareOperatorIndex,
        $startRight,
        $endRight
    ) {
        $type = $tokens[$compareOperatorIndex]->getId();
        $content = $tokens[$compareOperatorIndex]->getContent();
        if (\array_key_exists($type, $this->candidatesMap)) {
            $tokens[$compareOperatorIndex] = clone $this->candidatesMap[$type];
        } elseif (\array_key_exists($content, $this->candidatesMap)) {
            $tokens[$compareOperatorIndex] = clone $this->candidatesMap[$content];
        }

        $right = $this->fixTokensComparePart($tokens, $startRight, $endRight);
        $left = $this->fixTokensComparePart($tokens, $startLeft, $endLeft);

        for ($i = $startRight; $i <= $endRight; ++$i) {
            $tokens->clearAt($i);
        }

        for ($i = $startLeft; $i <= $endLeft; ++$i) {
            $tokens->clearAt($i);
        }

        $tokens->insertAt($startRight, $left);
        $tokens->insertAt($startLeft, $right);

        return $startLeft;
    }

    /**
     * @param int $start
     * @param int $end
     *
     * @return Tokens
     */
    private function fixTokensComparePart(Tokens $tokens, $start, $end)
    {
        $newTokens = $tokens->generatePartialCode($start, $end);
        $newTokens = $this->fixTokens(Tokens::fromCode(sprintf('<?php %s;', $newTokens)));
        $newTokens->clearAt(\count($newTokens) - 1);
        $newTokens->clearAt(0);
        $newTokens->clearEmptyTokens();

        return $newTokens;
    }

    /**
     * @param int  $index
     * @param bool $yoda
     *
     * @return null|array
     */
    private function getCompareFixableInfo(Tokens $tokens, $index, $yoda)
    {
        $left = $this->getLeftSideCompareFixableInfo($tokens, $index);
        $right = $this->getRightSideCompareFixableInfo($tokens, $index);

        if ($yoda) {
            $expectedAssignableSide = $right;
            $expectedValueSide = $left;
        } else {
            if ($tokens[$tokens->getNextMeaningfulToken($right['end'])]->equals('=')) {
                return null;
            }

            $expectedAssignableSide = $left;
            $expectedValueSide = $right;
        }

        if (
            // variable cannot be moved to expected side
            !(
                !$this->isVariable($tokens, $expectedAssignableSide['start'], $expectedAssignableSide['end'], false)
                && !$this->isListStatement($tokens, $expectedAssignableSide['start'], $expectedAssignableSide['end'])
                && $this->isVariable($tokens, $expectedValueSide['start'], $expectedValueSide['end'], false)
            )
            // variable cannot be moved to expected side (strict mode)
            && !(
                $this->configuration['always_move_variable']
                && !$this->isVariable($tokens, $expectedAssignableSide['start'], $expectedAssignableSide['end'], true)
                && !$this->isListStatement($tokens, $expectedAssignableSide['start'], $expectedAssignableSide['end'])
                && $this->isVariable($tokens, $expectedValueSide['start'], $expectedValueSide['end'], true)
            )
        ) {
            return null;
        }

        return [
            'left' => $left,
            'right' => $right,
        ];
    }

    /**
     * @param int $index
     *
     * @return array
     */
    private function getLeftSideCompareFixableInfo(Tokens $tokens, $index)
    {
        return [
            'start' => $this->findComparisonStart($tokens, $index),
            'end' => $tokens->getPrevMeaningfulToken($index),
        ];
    }

    /**
     * @param int $index
     *
     * @return array
     */
    private function getRightSideCompareFixableInfo(Tokens $tokens, $index)
    {
        return [
            'start' => $tokens->getNextMeaningfulToken($index),
            'end' => $this->findComparisonEnd($tokens, $index),
        ];
    }

    /**
     * @param int $index
     * @param int $end
     *
     * @return bool
     */
    private function isListStatement(Tokens $tokens, $index, $end)
    {
        for ($i = $index; $i <= $end; ++$i) {
            if ($tokens[$i]->isGivenKind([T_LIST, CT::T_DESTRUCTURING_SQUARE_BRACE_OPEN, CT::T_DESTRUCTURING_SQUARE_BRACE_CLOSE])) {
                return true;
            }
        }

        return false;
    }

    /**
     * Checks whether the given token has a lower precedence than `T_IS_EQUAL`
     * or `T_IS_IDENTICAL`.
     *
     * @param Token $token The token to check
     *
     * @return bool Whether the token has a lower precedence
     */
    private function isOfLowerPrecedence(Token $token)
    {
        static $tokens;

        if (null === $tokens) {
            $tokens = [
                T_AND_EQUAL,    // &=
                T_BOOLEAN_AND,  // &&
                T_BOOLEAN_OR,   // ||
                T_CASE,         // case
                T_CONCAT_EQUAL, // .=
                T_DIV_EQUAL,    // /=
                T_DOUBLE_ARROW, // =>
                T_ECHO,         // echo
                T_GOTO,         // goto
                T_LOGICAL_AND,  // and
                T_LOGICAL_OR,   // or
                T_LOGICAL_XOR,  // xor
                T_MINUS_EQUAL,  // -=
                T_MOD_EQUAL,    // %=
                T_MUL_EQUAL,    // *=
                T_OPEN_TAG,     // <?php
                T_OPEN_TAG_WITH_ECHO,
                T_OR_EQUAL,     // |=
                T_PLUS_EQUAL,   // +=
                T_POW_EQUAL,    // **=
                T_PRINT,        // print
                T_RETURN,       // return
                T_SL_EQUAL,     // <<=
                T_SR_EQUAL,     // >>=
                T_THROW,        // throw
                T_XOR_EQUAL,    // ^=
            ];

            if (\defined('T_COALESCE')) {
                $tokens[] = T_COALESCE; // ??
            }

            if (\defined('T_COALESCE_EQUAL')) {
                $tokens[] = T_COALESCE_EQUAL; // ??=
            }
        }

        static $otherTokens = [
            // bitwise and, or, xor
            '&', '|', '^',
            // ternary operators
            '?', ':',
            // assignment
            '=',
            // end of PHP statement
            ',', ';',
        ];

        return $token->isGivenKind($tokens) || $token->equalsAny($otherTokens);
    }

    /**
     * Checks whether the tokens between the given start and end describe a
     * variable.
     *
     * @param Tokens $tokens The token list
     * @param int    $start  The first index of the possible variable
     * @param int    $end    The last index of the possible variable
     * @param bool   $strict Enable strict variable detection
     *
     * @return bool Whether the tokens describe a variable
     */
    private function isVariable(Tokens $tokens, $start, $end, $strict)
    {
        $tokenAnalyzer = new TokensAnalyzer($tokens);

        if ($start === $end) {
            return $tokens[$start]->isGivenKind(T_VARIABLE);
        }

        if ($strict) {
            if ($tokens[$start]->equals('(')) {
                return false;
            }

            for ($index = $start; $index <= $end; ++$index) {
                if (
                    $tokens[$index]->isCast()
                    || $tokens[$index]->isGivenKind(T_INSTANCEOF)
                    || $tokens[$index]->equals('!')
                    || $tokenAnalyzer->isBinaryOperator($index)
                ) {
                    return false;
                }
            }
        }

        $index = $start;

        // handle multiple braces around statement ((($a === 1)))
        while (
            $tokens[$index]->equals('(')
            && $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $index) === $end
        ) {
            $index = $tokens->getNextMeaningfulToken($index);
            $end = $tokens->getPrevMeaningfulToken($end);
        }

        $expectString = false;
        while ($index <= $end) {
            $current = $tokens[$index];
            if ($current->isComment() || $current->isWhitespace() || $tokens->isEmptyAt($index)) {
                ++$index;

                continue;
            }

            // check if this is the last token
            if ($index === $end) {
                return $current->isGivenKind($expectString ? T_STRING : T_VARIABLE);
            }

            if ($current->isGivenKind([T_LIST, CT::T_DESTRUCTURING_SQUARE_BRACE_OPEN, CT::T_DESTRUCTURING_SQUARE_BRACE_CLOSE])) {
                return false;
            }

            $nextIndex = $tokens->getNextMeaningfulToken($index);
            $next = $tokens[$nextIndex];

            // self:: or ClassName::
            if ($current->isGivenKind(T_STRING) && $next->isGivenKind(T_DOUBLE_COLON)) {
                $index = $tokens->getNextMeaningfulToken($nextIndex);

                continue;
            }

            // \ClassName
            if ($current->isGivenKind(T_NS_SEPARATOR) && $next->isGivenKind(T_STRING)) {
                $index = $nextIndex;

                continue;
            }

            // ClassName\
            if ($current->isGivenKind(T_STRING) && $next->isGivenKind(T_NS_SEPARATOR)) {
                $index = $nextIndex;

                continue;
            }

            // $a-> or a-> (as in $b->a->c)
            if ($current->isGivenKind([T_STRING, T_VARIABLE]) && $next->isGivenKind(T_OBJECT_OPERATOR)) {
                $index = $tokens->getNextMeaningfulToken($nextIndex);
                $expectString = true;

                continue;
            }

            // $a[...], a[...] (as in $c->a[$b]), $a{...} or a{...} (as in $c->a{$b})
            if (
                $current->isGivenKind($expectString ? T_STRING : T_VARIABLE)
                && $next->equalsAny(['[', [CT::T_ARRAY_INDEX_CURLY_BRACE_OPEN, '{']])
            ) {
                $index = $tokens->findBlockEnd(
                    $next->equals('[') ? Tokens::BLOCK_TYPE_INDEX_SQUARE_BRACE : Tokens::BLOCK_TYPE_ARRAY_INDEX_CURLY_BRACE,
                    $nextIndex
                );

                if ($index === $end) {
                    return true;
                }

                $index = $tokens->getNextMeaningfulToken($index);

                if (!$tokens[$index]->equalsAny([[T_OBJECT_OPERATOR, '->'], '[', [CT::T_ARRAY_INDEX_CURLY_BRACE_OPEN, '{']])) {
                    return false;
                }

                $index = $tokens->getNextMeaningfulToken($index);
                $expectString = true;

                continue;
            }

            // $a(...) or $a->b(...)
            if ($strict && $current->isGivenKind([T_STRING, T_VARIABLE]) && $next->equals('(')) {
                return false;
            }

            // {...} (as in $a->{$b})
            if ($expectString && $current->isGivenKind(CT::T_DYNAMIC_PROP_BRACE_OPEN)) {
                $index = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_DYNAMIC_PROP_BRACE, $index);
                if ($index === $end) {
                    return true;
                }

                $index = $tokens->getNextMeaningfulToken($index);

                if (!$tokens[$index]->isGivenKind(T_OBJECT_OPERATOR)) {
                    return false;
                }

                $index = $tokens->getNextMeaningfulToken($index);
                $expectString = true;

                continue;
            }

            break;
        }

        return !$this->isConstant($tokens, $start, $end);
    }

    private function isConstant(Tokens $tokens, $index, $end)
    {
        $expectArrayOnly = false;
        $expectNumberOnly = false;
        $expectNothing = false;

        for (; $index <= $end; ++$index) {
            $token = $tokens[$index];

            if ($token->isComment() || $token->isWhitespace()) {
                continue;
            }

            if ($expectNothing) {
                return false;
            }

            if ($expectArrayOnly) {
                if ($token->equalsAny(['(', ')', [CT::T_ARRAY_SQUARE_BRACE_CLOSE]])) {
                    continue;
                }

                return false;
            }

            if ($token->isGivenKind([T_ARRAY,  CT::T_ARRAY_SQUARE_BRACE_OPEN])) {
                $expectArrayOnly = true;

                continue;
            }

            if ($expectNumberOnly && !$token->isGivenKind([T_LNUMBER, T_DNUMBER])) {
                return false;
            }

            if ($token->equals('-')) {
                $expectNumberOnly = true;

                continue;
            }

            if (
                $token->isGivenKind([T_LNUMBER, T_DNUMBER, T_CONSTANT_ENCAPSED_STRING])
                || $token->equalsAny([[T_STRING, 'true'], [T_STRING, 'false'], [T_STRING, 'null']])
            ) {
                $expectNothing = true;

                continue;
            }

            return false;
        }

        return true;
    }

    private function resolveConfiguration()
    {
        $candidateTypes = [];
        $this->candidatesMap = [];

        if (null !== $this->configuration['equal']) {
            // `==`, `!=` and `<>`
            $candidateTypes[T_IS_EQUAL] = $this->configuration['equal'];
            $candidateTypes[T_IS_NOT_EQUAL] = $this->configuration['equal'];
        }

        if (null !== $this->configuration['identical']) {
            // `===` and `!==`
            $candidateTypes[T_IS_IDENTICAL] = $this->configuration['identical'];
            $candidateTypes[T_IS_NOT_IDENTICAL] = $this->configuration['identical'];
        }

        if (null !== $this->configuration['less_and_greater']) {
            // `<`, `<=`, `>` and `>=`
            $candidateTypes[T_IS_SMALLER_OR_EQUAL] = $this->configuration['less_and_greater'];
            $this->candidatesMap[T_IS_SMALLER_OR_EQUAL] = new Token([T_IS_GREATER_OR_EQUAL, '>=']);

            $candidateTypes[T_IS_GREATER_OR_EQUAL] = $this->configuration['less_and_greater'];
            $this->candidatesMap[T_IS_GREATER_OR_EQUAL] = new Token([T_IS_SMALLER_OR_EQUAL, '<=']);

            $candidateTypes['<'] = $this->configuration['less_and_greater'];
            $this->candidatesMap['<'] = new Token('>');

            $candidateTypes['>'] = $this->configuration['less_and_greater'];
            $this->candidatesMap['>'] = new Token('<');
        }

        $this->candidateTypesConfiguration = $candidateTypes;
        $this->candidateTypes = array_keys($candidateTypes);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ControlStructure;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * Fixer for rules defined in PSR2 ¶5.2.
 *
 * @author SpacePossum
 */
final class SwitchCaseSemicolonToColonFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'A case should be followed by a colon and not a semicolon.',
            [
                new CodeSample(
                    '<?php
    switch ($a) {
        case 1;
            break;
        default;
            break;
    }
'
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run after NoEmptyStatementFixer.
     */
    public function getPriority()
    {
        return 0;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound([T_CASE, T_DEFAULT]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if ($token->isGivenKind([T_CASE, T_DEFAULT])) {
                $this->fixSwitchCase($tokens, $index);
            }
        }
    }

    /**
     * @param int $index
     */
    protected function fixSwitchCase(Tokens $tokens, $index)
    {
        $ternariesCount = 0;
        do {
            if ($tokens[$index]->equalsAny(['(', '{'])) { // skip constructs
                $type = Tokens::detectBlockType($tokens[$index]);
                $index = $tokens->findBlockEnd($type['type'], $index);

                continue;
            }

            if ($tokens[$index]->equals('?')) {
                ++$ternariesCount;

                continue;
            }

            if ($tokens[$index]->equalsAny([':', ';'])) {
                if (0 === $ternariesCount) {
                    break;
                }

                --$ternariesCount;
            }
        } while (++$index);

        if ($tokens[$index]->equals(';')) {
            $tokens[$index] = new Token(':');
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ControlStructure;

use PhpCsFixer\AbstractNoUselessElseFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

final class NoSuperfluousElseifFixer extends AbstractNoUselessElseFixer
{
    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound([T_ELSE, T_ELSEIF]);
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Replaces superfluous `elseif` with `if`.',
            [
                new CodeSample("<?php\nif (\$a) {\n    return 1;\n} elseif (\$b) {\n    return 2;\n}\n"),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run after NoAlternativeSyntaxFixer.
     */
    public function getPriority()
    {
        return parent::getPriority();
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if ($this->isElseif($tokens, $index) && $this->isSuperfluousElse($tokens, $index)) {
                $this->convertElseifToIf($tokens, $index);
            }
        }
    }

    /**
     * @param int $index
     *
     * @return bool
     */
    private function isElseif(Tokens $tokens, $index)
    {
        if ($tokens[$index]->isGivenKind(T_ELSEIF)) {
            return true;
        }

        return $tokens[$index]->isGivenKind(T_ELSE) && $tokens[$tokens->getNextMeaningfulToken($index)]->isGivenKind(T_IF);
    }

    /**
     * @param int $index
     */
    private function convertElseifToIf(Tokens $tokens, $index)
    {
        if ($tokens[$index]->isGivenKind(T_ELSE)) {
            $tokens->clearTokenAndMergeSurroundingWhitespace($index);
        } else {
            $tokens[$index] = new Token([T_IF, 'if']);
        }

        $whitespace = '';
        for ($previous = $index - 1; $previous > 0; --$previous) {
            $token = $tokens[$previous];
            if ($token->isWhitespace() && Preg::match('/(\R\N*)$/', $token->getContent(), $matches)) {
                $whitespace = $matches[1];

                break;
            }
        }

        if ('' === $whitespace) {
            return;
        }

        $previousToken = $tokens[$index - 1];
        if (!$previousToken->isWhitespace()) {
            $tokens->insertAt($index, new Token([T_WHITESPACE, $whitespace]));
        } elseif (!Preg::match('/\R/', $previousToken->getContent())) {
            $tokens[$index - 1] = new Token([T_WHITESPACE, $whitespace]);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ControlStructure;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * Fixer for rules defined in PSR2 ¶5.2.
 *
 * @author Sullivan Senechal <soullivaneuh@gmail.com>
 */
final class SwitchCaseSpaceFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Removes extra spaces between colon and case value.',
            [
                new CodeSample(
                    '<?php
    switch($a) {
        case 1   :
            break;
        default     :
            return 2;
    }
'
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound([T_CASE, T_DEFAULT]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if (!$token->isGivenKind([T_CASE, T_DEFAULT])) {
                continue;
            }

            $ternariesCount = 0;
            for ($colonIndex = $index + 1;; ++$colonIndex) {
                // We have to skip ternary case for colons.
                if ($tokens[$colonIndex]->equals('?')) {
                    ++$ternariesCount;
                }

                if ($tokens[$colonIndex]->equalsAny([':', ';'])) {
                    if (0 === $ternariesCount) {
                        break;
                    }

                    --$ternariesCount;
                }
            }

            $valueIndex = $tokens->getPrevNonWhitespace($colonIndex);
            // skip if there is no space between the colon and previous token or is space after comment
            if ($valueIndex === $colonIndex - 1 || $tokens[$valueIndex]->isComment()) {
                continue;
            }

            $tokens->clearAt($valueIndex + 1);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ControlStructure;

use PhpCsFixer\AbstractNoUselessElseFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author SpacePossum
 */
final class NoUselessElseFixer extends AbstractNoUselessElseFixer
{
    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_ELSE);
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'There should not be useless `else` cases.',
            [
                new CodeSample("<?php\nif (\$a) {\n    return 1;\n} else {\n    return 2;\n}\n"),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before BracesFixer, CombineConsecutiveUnsetsFixer, NoExtraBlankLinesFixer, NoTrailingWhitespaceFixer, NoUselessReturnFixer, NoWhitespaceInBlankLineFixer.
     * Must run after NoAlternativeSyntaxFixer, NoEmptyStatementFixer, NoUnneededCurlyBracesFixer.
     */
    public function getPriority()
    {
        return parent::getPriority();
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if (!$token->isGivenKind(T_ELSE)) {
                continue;
            }

            // `else if` vs. `else` and alternative syntax `else:` checks
            if ($tokens[$tokens->getNextMeaningfulToken($index)]->equalsAny([':', [T_IF]])) {
                continue;
            }

            // clean up `else` if it is an empty statement
            $this->fixEmptyElse($tokens, $index);
            if ($tokens->isEmptyAt($index)) {
                continue;
            }

            // clean up `else` if possible
            if ($this->isSuperfluousElse($tokens, $index)) {
                $this->clearElse($tokens, $index);
            }
        }
    }

    /**
     * Remove tokens part of an `else` statement if not empty (i.e. no meaningful tokens inside).
     *
     * @param int $index T_ELSE index
     */
    private function fixEmptyElse(Tokens $tokens, $index)
    {
        $next = $tokens->getNextMeaningfulToken($index);
        if ($tokens[$next]->equals('{')) {
            $close = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $next);
            if (1 === $close - $next) { // '{}'
                $this->clearElse($tokens, $index);
            } elseif ($tokens->getNextMeaningfulToken($next) === $close) { // '{/**/}'
                $this->clearElse($tokens, $index);
            }

            return;
        }

        // short `else`
        $end = $tokens->getNextTokenOfKind($index, [';', [T_CLOSE_TAG]]);
        if ($next === $end) {
            $this->clearElse($tokens, $index);
        }
    }

    /**
     * @param int $index index of T_ELSE
     */
    private function clearElse(Tokens $tokens, $index)
    {
        $tokens->clearTokenAndMergeSurroundingWhitespace($index);

        // clear T_ELSE and the '{' '}' if there are any
        $next = $tokens->getNextMeaningfulToken($index);
        if (!$tokens[$next]->equals('{')) {
            return;
        }

        $tokens->clearTokenAndMergeSurroundingWhitespace($tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $next));
        $tokens->clearTokenAndMergeSurroundingWhitespace($next);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ControlStructure;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * Fixer for rules defined in PSR2 ¶5.1.
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class ElseifFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'The keyword `elseif` should be used instead of `else if` so that all control keywords look like single words.',
            [new CodeSample("<?php\nif (\$a) {\n} else if (\$b) {\n}\n")]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before BracesFixer.
     * Must run after NoAlternativeSyntaxFixer.
     */
    public function getPriority()
    {
        return 0;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAllTokenKindsFound([T_IF, T_ELSE]);
    }

    /**
     * Replace all `else if` (T_ELSE T_IF) with `elseif` (T_ELSEIF).
     *
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if (!$token->isGivenKind(T_ELSE)) {
                continue;
            }

            $ifTokenIndex = $tokens->getNextMeaningfulToken($index);

            // if next meaningful token is not T_IF - continue searching, this is not the case for fixing
            if (!$tokens[$ifTokenIndex]->isGivenKind(T_IF)) {
                continue;
            }

            // if next meaningful token is T_IF, but uses an alternative syntax - this is not the case for fixing neither
            $conditionEndBraceIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $tokens->getNextMeaningfulToken($ifTokenIndex));
            $afterConditionIndex = $tokens->getNextMeaningfulToken($conditionEndBraceIndex);
            if ($tokens[$afterConditionIndex]->equals(':')) {
                continue;
            }

            // now we have T_ELSE following by T_IF with no alternative syntax so we could fix this
            // 1. clear whitespaces between T_ELSE and T_IF
            $tokens->clearAt($index + 1);

            // 2. change token from T_ELSE into T_ELSEIF
            $tokens[$index] = new Token([T_ELSEIF, 'elseif']);

            // 3. clear succeeding T_IF
            $tokens->clearAt($ifTokenIndex);

            $beforeIfTokenIndex = $tokens->getPrevNonWhitespace($ifTokenIndex);

            // 4. clear extra whitespace after T_IF in T_COMMENT,T_WHITESPACE?,T_IF,T_WHITESPACE sequence
            if ($tokens[$beforeIfTokenIndex]->isComment() && $tokens[$ifTokenIndex + 1]->isWhitespace()) {
                $tokens->clearAt($ifTokenIndex + 1);
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ControlStructure;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Analyzer\BlocksAnalyzer;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Sebastiaan Stok <s.stok@rollerscapes.net>
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 * @author Kuba Werłos <werlos@gmail.com>
 */
final class IncludeFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Include/Require and file path should be divided with a single space. File path should not be placed under brackets.',
            [
                new CodeSample(
                    '<?php
require ("sample1.php");
require_once  "sample2.php";
include       "sample3.php";
include_once("sample4.php");
'
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound([T_REQUIRE, T_REQUIRE_ONCE, T_INCLUDE, T_INCLUDE_ONCE]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $this->clearIncludies($tokens, $this->findIncludies($tokens));
    }

    private function clearIncludies(Tokens $tokens, array $includies)
    {
        $blocksAnalyzer = new BlocksAnalyzer();

        foreach ($includies as $includy) {
            if ($includy['end'] && !$tokens[$includy['end']]->isGivenKind(T_CLOSE_TAG)) {
                $afterEndIndex = $tokens->getNextNonWhitespace($includy['end']);
                if (null === $afterEndIndex || !$tokens[$afterEndIndex]->isComment()) {
                    $tokens->removeLeadingWhitespace($includy['end']);
                }
            }

            $braces = $includy['braces'];

            if (null !== $braces) {
                $prevIndex = $tokens->getPrevMeaningfulToken($includy['begin']);
                $nextIndex = $tokens->getNextMeaningfulToken($braces['close']);

                // Include is also legal as function parameter or condition statement but requires being wrapped then.
                if (!$tokens[$nextIndex]->equalsAny([';', [T_CLOSE_TAG]]) && !$blocksAnalyzer->isBlock($tokens, $prevIndex, $nextIndex)) {
                    continue;
                }

                $this->removeWhitespaceAroundIfPossible($tokens, $braces['open']);
                $this->removeWhitespaceAroundIfPossible($tokens, $braces['close']);
                $tokens->clearTokenAndMergeSurroundingWhitespace($braces['open']);
                $tokens->clearTokenAndMergeSurroundingWhitespace($braces['close']);
            }

            $nextIndex = $tokens->getNonEmptySibling($includy['begin'], 1);

            if ($tokens[$nextIndex]->isWhitespace()) {
                $tokens[$nextIndex] = new Token([T_WHITESPACE, ' ']);
            } elseif (null !== $braces || $tokens[$nextIndex]->isGivenKind([T_VARIABLE, T_CONSTANT_ENCAPSED_STRING, T_COMMENT])) {
                $tokens->insertAt($includy['begin'] + 1, new Token([T_WHITESPACE, ' ']));
            }
        }
    }

    private function findIncludies(Tokens $tokens)
    {
        static $includyTokenKinds = [T_REQUIRE, T_REQUIRE_ONCE, T_INCLUDE, T_INCLUDE_ONCE];

        $includies = [];

        foreach ($tokens->findGivenKind($includyTokenKinds) as $includyTokens) {
            foreach ($includyTokens as $index => $token) {
                $includy = [
                    'begin' => $index,
                    'braces' => null,
                    'end' => $tokens->getNextTokenOfKind($index, [';', [T_CLOSE_TAG]]),
                ];

                $braceOpenIndex = $tokens->getNextMeaningfulToken($index);

                if ($tokens[$braceOpenIndex]->equals('(')) {
                    $braceCloseIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $braceOpenIndex);

                    $includy['braces'] = [
                        'open' => $braceOpenIndex,
                        'close' => $braceCloseIndex,
                    ];
                }

                $includies[$index] = $includy;
            }
        }

        krsort($includies);

        return $includies;
    }

    /**
     * @param int $index
     */
    private function removeWhitespaceAroundIfPossible(Tokens $tokens, $index)
    {
        $nextIndex = $tokens->getNextNonWhitespace($index);
        if (null === $nextIndex || !$tokens[$nextIndex]->isComment()) {
            $tokens->removeLeadingWhitespace($index);
        }

        $prevIndex = $tokens->getPrevNonWhitespace($index);
        if (null === $prevIndex || !$tokens[$prevIndex]->isComment()) {
            $tokens->removeTrailingWhitespace($index);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ControlStructure;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class NoTrailingCommaInListCallFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Remove trailing commas in list function calls.',
            [new CodeSample("<?php\nlist(\$a, \$b,) = foo();\n")]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_LIST);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        for ($index = $tokens->count() - 1; $index >= 0; --$index) {
            $token = $tokens[$index];

            if (!$token->isGivenKind(T_LIST)) {
                continue;
            }

            $openIndex = $tokens->getNextMeaningfulToken($index);
            $closeIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $openIndex);
            $markIndex = null;
            $prevIndex = $tokens->getPrevNonWhitespace($closeIndex);

            while ($tokens[$prevIndex]->equals(',')) {
                $markIndex = $prevIndex;
                $prevIndex = $tokens->getPrevNonWhitespace($prevIndex);
            }

            if (null !== $markIndex) {
                $tokens->clearRange(
                    $tokens->getPrevNonWhitespace($markIndex) + 1,
                    $closeIndex - 1
                );
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ControlStructure;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverRootless;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Sullivan Senechal <soullivaneuh@gmail.com>
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 * @author Gregor Harlan <gharlan@web.de>
 */
final class NoUnneededControlParenthesesFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    private static $loops = [
        'break' => ['lookupTokens' => T_BREAK, 'neededSuccessors' => [';']],
        'clone' => ['lookupTokens' => T_CLONE, 'neededSuccessors' => [';', ':', ',', ')'], 'forbiddenContents' => ['?', ':']],
        'continue' => ['lookupTokens' => T_CONTINUE, 'neededSuccessors' => [';']],
        'echo_print' => ['lookupTokens' => [T_ECHO, T_PRINT], 'neededSuccessors' => [';', [T_CLOSE_TAG]]],
        'return' => ['lookupTokens' => T_RETURN, 'neededSuccessors' => [';', [T_CLOSE_TAG]]],
        'switch_case' => ['lookupTokens' => T_CASE, 'neededSuccessors' => [';', ':']],
        'yield' => ['lookupTokens' => T_YIELD, 'neededSuccessors' => [';', ')']],
    ];

    /**
     * Dynamic `null` coalesce option set on constructor.
     */
    public function __construct()
    {
        parent::__construct();

        // To be moved back to compile time property declaration when PHP support of PHP CS Fixer will be 7.0+
        if (\defined('T_COALESCE')) {
            self::$loops['clone']['forbiddenContents'][] = [T_COALESCE, '??'];
        }
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        $types = [];

        foreach (self::$loops as $loop) {
            $types[] = (array) $loop['lookupTokens'];
        }
        $types = array_merge(...$types);

        return $tokens->isAnyTokenKindsFound($types);
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Removes unneeded parentheses around control statements.',
            [
                new CodeSample(
                    '<?php
while ($x) { while ($y) { break (2); } }
clone($a);
while ($y) { continue (2); }
echo("foo");
print("foo");
return (1 + 2);
switch ($a) { case($x); }
yield(2);
'
                ),
                new CodeSample(
                    '<?php
while ($x) { while ($y) { break (2); } }
clone($a);
while ($y) { continue (2); }
echo("foo");
print("foo");
return (1 + 2);
switch ($a) { case($x); }
yield(2);
',
                    ['statements' => ['break', 'continue']]
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before NoTrailingWhitespaceFixer.
     */
    public function getPriority()
    {
        return 30;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        // Checks if specific statements are set and uses them in this case.
        $loops = array_intersect_key(self::$loops, array_flip($this->configuration['statements']));

        foreach ($tokens as $index => $token) {
            if (!$token->equalsAny(['(', [CT::T_BRACE_CLASS_INSTANTIATION_OPEN]])) {
                continue;
            }

            $blockStartIndex = $index;
            $index = $tokens->getPrevMeaningfulToken($index);
            $prevToken = $tokens[$index];

            foreach ($loops as $loop) {
                if (!$prevToken->isGivenKind($loop['lookupTokens'])) {
                    continue;
                }

                $blockEndIndex = $tokens->findBlockEnd(
                    $token->equals('(') ? Tokens::BLOCK_TYPE_PARENTHESIS_BRACE : Tokens::BLOCK_TYPE_BRACE_CLASS_INSTANTIATION,
                    $blockStartIndex
                );
                $blockEndNextIndex = $tokens->getNextMeaningfulToken($blockEndIndex);

                if (!$tokens[$blockEndNextIndex]->equalsAny($loop['neededSuccessors'])) {
                    continue;
                }

                if (\array_key_exists('forbiddenContents', $loop)) {
                    $forbiddenTokenIndex = $tokens->getNextTokenOfKind($blockStartIndex, $loop['forbiddenContents']);
                    // A forbidden token is found and is inside the parenthesis.
                    if (null !== $forbiddenTokenIndex && $forbiddenTokenIndex < $blockEndIndex) {
                        continue;
                    }
                }

                if ($tokens[$blockStartIndex - 1]->isWhitespace() || $tokens[$blockStartIndex - 1]->isComment()) {
                    $tokens->clearTokenAndMergeSurroundingWhitespace($blockStartIndex);
                } else {
                    // Adds a space to prevent broken code like `return2`.
                    $tokens[$blockStartIndex] = new Token([T_WHITESPACE, ' ']);
                }

                $tokens->clearTokenAndMergeSurroundingWhitespace($blockEndIndex);
            }
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolverRootless('statements', [
            (new FixerOptionBuilder('statements', 'List of control statements to fix.'))
                ->setAllowedTypes(['array'])
                ->setDefault([
                    'break',
                    'clone',
                    'continue',
                    'echo_print',
                    'return',
                    'switch_case',
                    'yield',
                ])
                ->getOption(),
        ], $this->getName());
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ControlStructure;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException;
use Symfony\Component\OptionsResolver\Options;

/**
 * Fixer for rule defined in PSR2 ¶5.2.
 */
final class NoBreakCommentFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface, WhitespacesAwareFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'There must be a comment when fall-through is intentional in a non-empty case body.',
            [
                new CodeSample(
                    '<?php
switch ($foo) {
    case 1:
        foo();
    case 2:
        bar();
        // no break
        break;
    case 3:
        baz();
}
'
                ),
                new CodeSample(
                    '<?php
switch ($foo) {
    case 1:
        foo();
    case 2:
        foo();
}
',
                    ['comment_text' => 'some comment']
                ),
            ],
            'Adds a "no break" comment before fall-through cases, and removes it if there is no fall-through.'
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound([T_CASE, T_DEFAULT]);
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('comment_text', 'The text to use in the added comment and to detect it.'))
                ->setAllowedTypes(['string'])
                ->setAllowedValues([
                    static function ($value) {
                        if (\is_string($value) && Preg::match('/\R/', $value)) {
                            throw new InvalidOptionsException('The comment text must not contain new lines.');
                        }

                        return true;
                    },
                ])
                ->setNormalizer(static function (Options $options, $value) {
                    return rtrim($value);
                })
                ->setDefault('no break')
                ->getOption(),
        ]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        for ($position = \count($tokens) - 1; $position >= 0; --$position) {
            if ($tokens[$position]->isGivenKind([T_CASE, T_DEFAULT])) {
                $this->fixCase($tokens, $position);
            }
        }
    }

    /**
     * @param int $casePosition
     */
    private function fixCase(Tokens $tokens, $casePosition)
    {
        $empty = true;
        $fallThrough = true;
        $commentPosition = null;
        for ($i = $tokens->getNextTokenOfKind($casePosition, [':', ';']) + 1, $max = \count($tokens); $i < $max; ++$i) {
            if ($tokens[$i]->isGivenKind([T_SWITCH, T_IF, T_ELSE, T_ELSEIF, T_FOR, T_FOREACH, T_WHILE, T_DO, T_FUNCTION, T_CLASS])) {
                $empty = false;
                $i = $this->getStructureEnd($tokens, $i);

                continue;
            }

            if ($tokens[$i]->isGivenKind([T_BREAK, T_CONTINUE, T_RETURN, T_EXIT, T_THROW, T_GOTO])) {
                $fallThrough = false;

                continue;
            }

            if ($tokens[$i]->equals('}') || $tokens[$i]->isGivenKind(T_ENDSWITCH)) {
                if (null !== $commentPosition) {
                    $this->removeComment($tokens, $commentPosition);
                }

                break;
            }

            if ($this->isNoBreakComment($tokens[$i])) {
                $commentPosition = $i;

                continue;
            }

            if ($tokens[$i]->isGivenKind([T_CASE, T_DEFAULT])) {
                if (!$empty && $fallThrough) {
                    if (null !== $commentPosition && $tokens->getPrevNonWhitespace($i) !== $commentPosition) {
                        $this->removeComment($tokens, $commentPosition);
                        $commentPosition = null;
                    }

                    if (null === $commentPosition) {
                        $this->insertCommentAt($tokens, $i);
                    } else {
                        $text = $this->configuration['comment_text'];

                        $tokens[$commentPosition] = new Token([
                            $tokens[$commentPosition]->getId(),
                            str_ireplace($text, $text, $tokens[$commentPosition]->getContent()),
                        ]);

                        $this->ensureNewLineAt($tokens, $commentPosition);
                    }
                } elseif (null !== $commentPosition) {
                    $this->removeComment($tokens, $commentPosition);
                }

                break;
            }

            if (!$tokens[$i]->isGivenKind([T_COMMENT, T_WHITESPACE])) {
                $empty = false;
            }
        }
    }

    /**
     * @return bool
     */
    private function isNoBreakComment(Token $token)
    {
        if (!$token->isComment()) {
            return false;
        }

        $text = preg_quote($this->configuration['comment_text'], '~');

        return 1 === Preg::match("~^((//|#)\\s*{$text}\\s*)|(/\\*\\*?\\s*{$text}\\s*\\*/)$~i", $token->getContent());
    }

    /**
     * @param int $casePosition
     */
    private function insertCommentAt(Tokens $tokens, $casePosition)
    {
        $lineEnding = $this->whitespacesConfig->getLineEnding();

        $newlinePosition = $this->ensureNewLineAt($tokens, $casePosition);

        $newlineToken = $tokens[$newlinePosition];

        $nbNewlines = substr_count($newlineToken->getContent(), $lineEnding);
        if ($newlineToken->isGivenKind(T_OPEN_TAG) && Preg::match('/\R/', $newlineToken->getContent())) {
            ++$nbNewlines;
        } elseif ($tokens[$newlinePosition - 1]->isGivenKind(T_OPEN_TAG) && Preg::match('/\R/', $tokens[$newlinePosition - 1]->getContent())) {
            ++$nbNewlines;

            if (!Preg::match('/\R/', $newlineToken->getContent())) {
                $tokens[$newlinePosition] = new Token([$newlineToken->getId(), $lineEnding.$newlineToken->getContent()]);
            }
        }

        if ($nbNewlines > 1) {
            Preg::match('/^(.*?)(\R\h*)$/s', $newlineToken->getContent(), $matches);

            $indent = $this->getIndentAt($tokens, $newlinePosition - 1);
            $tokens[$newlinePosition] = new Token([$newlineToken->getId(), $matches[1].$lineEnding.$indent]);
            $tokens->insertAt(++$newlinePosition, new Token([T_WHITESPACE, $matches[2]]));
        }

        $tokens->insertAt($newlinePosition, new Token([T_COMMENT, '// '.$this->configuration['comment_text']]));

        $this->ensureNewLineAt($tokens, $newlinePosition);
    }

    /**
     * @param int $position
     *
     * @return int The newline token position
     */
    private function ensureNewLineAt(Tokens $tokens, $position)
    {
        $lineEnding = $this->whitespacesConfig->getLineEnding();
        $content = $lineEnding.$this->getIndentAt($tokens, $position);

        $whitespaceToken = $tokens[$position - 1];
        if (!$whitespaceToken->isGivenKind(T_WHITESPACE)) {
            if ($whitespaceToken->isGivenKind(T_OPEN_TAG)) {
                $content = Preg::replace('/\R/', '', $content);
                if (!Preg::match('/\R/', $whitespaceToken->getContent())) {
                    $tokens[$position - 1] = new Token([T_OPEN_TAG, Preg::replace('/\s+$/', $lineEnding, $whitespaceToken->getContent())]);
                }
            }

            if ('' !== $content) {
                $tokens->insertAt($position, new Token([T_WHITESPACE, $content]));

                return $position;
            }

            return $position - 1;
        }

        if ($tokens[$position - 2]->isGivenKind(T_OPEN_TAG) && Preg::match('/\R/', $tokens[$position - 2]->getContent())) {
            $content = Preg::replace('/^\R/', '', $content);
        }

        if (!Preg::match('/\R/', $whitespaceToken->getContent())) {
            $tokens[$position - 1] = new Token([T_WHITESPACE, $content]);
        }

        return $position - 1;
    }

    /**
     * @param int $commentPosition
     */
    private function removeComment(Tokens $tokens, $commentPosition)
    {
        if ($tokens[$tokens->getPrevNonWhitespace($commentPosition)]->isGivenKind(T_OPEN_TAG)) {
            $whitespacePosition = $commentPosition + 1;
            $regex = '/^\R\h*/';
        } else {
            $whitespacePosition = $commentPosition - 1;
            $regex = '/\R\h*$/';
        }

        $whitespaceToken = $tokens[$whitespacePosition];
        if ($whitespaceToken->isGivenKind(T_WHITESPACE)) {
            $content = Preg::replace($regex, '', $whitespaceToken->getContent());
            if ('' !== $content) {
                $tokens[$whitespacePosition] = new Token([T_WHITESPACE, $content]);
            } else {
                $tokens->clearAt($whitespacePosition);
            }
        }

        $tokens->clearTokenAndMergeSurroundingWhitespace($commentPosition);
    }

    /**
     * @param int $position
     *
     * @return string
     */
    private function getIndentAt(Tokens $tokens, $position)
    {
        while (true) {
            $position = $tokens->getPrevTokenOfKind($position, [[T_WHITESPACE]]);

            if (null === $position) {
                break;
            }

            $content = $tokens[$position]->getContent();

            $prevToken = $tokens[$position - 1];
            if ($prevToken->isGivenKind(T_OPEN_TAG) && Preg::match('/\R$/', $prevToken->getContent())) {
                $content = $this->whitespacesConfig->getLineEnding().$content;
            }

            if (Preg::match('/\R(\h*)$/', $content, $matches)) {
                return $matches[1];
            }
        }

        return '';
    }

    /**
     * @param int $position
     *
     * @return int
     */
    private function getStructureEnd(Tokens $tokens, $position)
    {
        $initialToken = $tokens[$position];

        if ($initialToken->isGivenKind([T_FOR, T_FOREACH, T_WHILE, T_IF, T_ELSEIF, T_SWITCH, T_FUNCTION])) {
            $position = $tokens->findBlockEnd(
                Tokens::BLOCK_TYPE_PARENTHESIS_BRACE,
                $tokens->getNextTokenOfKind($position, ['('])
            );
        } elseif ($initialToken->isGivenKind(T_CLASS)) {
            $openParenthesisPosition = $tokens->getNextMeaningfulToken($position);
            if ('(' === $tokens[$openParenthesisPosition]->getContent()) {
                $position = $tokens->findBlockEnd(
                    Tokens::BLOCK_TYPE_PARENTHESIS_BRACE,
                    $openParenthesisPosition
                );
            }
        }

        $position = $tokens->getNextMeaningfulToken($position);
        if ('{' !== $tokens[$position]->getContent()) {
            return $tokens->getNextTokenOfKind($position, [';']);
        }

        $position = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $position);

        if ($initialToken->isGivenKind(T_DO)) {
            $position = $tokens->findBlockEnd(
                Tokens::BLOCK_TYPE_PARENTHESIS_BRACE,
                $tokens->getNextTokenOfKind($position, ['('])
            );

            return $tokens->getNextTokenOfKind($position, [';']);
        }

        return $position;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\FunctionNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\DocBlock\Annotation;
use PhpCsFixer\DocBlock\DocBlock;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\FixerDefinition\VersionSpecification;
use PhpCsFixer\FixerDefinition\VersionSpecificCodeSample;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Tokenizer\TokensAnalyzer;

/**
 * @author Mark Nielsen
 */
final class VoidReturnFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Add `void` return type to functions with missing or empty return statements, but priority is given to `@return` annotations. Requires PHP >= 7.1.',
            [
                new VersionSpecificCodeSample(
                    "<?php\nfunction foo(\$a) {};\n",
                    new VersionSpecification(70100)
                ),
            ],
            null,
            'Modifies the signature of functions.'
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before PhpdocNoEmptyReturnFixer, ReturnTypeDeclarationFixer.
     * Must run after SimplifiedNullReturnFixer.
     */
    public function getPriority()
    {
        return 15;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return \PHP_VERSION_ID >= 70100 && $tokens->isTokenKindFound(T_FUNCTION);
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        // These cause syntax errors.
        static $excludeFuncNames = [
            [T_STRING, '__construct'],
            [T_STRING, '__destruct'],
            [T_STRING, '__clone'],
        ];

        for ($index = $tokens->count() - 1; 0 <= $index; --$index) {
            if (!$tokens[$index]->isGivenKind(T_FUNCTION)) {
                continue;
            }

            $funcName = $tokens->getNextMeaningfulToken($index);
            if ($tokens[$funcName]->equalsAny($excludeFuncNames, false)) {
                continue;
            }

            $startIndex = $tokens->getNextTokenOfKind($index, ['{', ';']);

            if ($this->hasReturnTypeHint($tokens, $startIndex)) {
                continue;
            }

            if ($tokens[$startIndex]->equals(';')) {
                // No function body defined, fallback to PHPDoc.
                if ($this->hasVoidReturnAnnotation($tokens, $index)) {
                    $this->fixFunctionDefinition($tokens, $startIndex);
                }

                continue;
            }

            if ($this->hasReturnAnnotation($tokens, $index)) {
                continue;
            }

            $endIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $startIndex);

            if ($this->hasVoidReturn($tokens, $startIndex, $endIndex)) {
                $this->fixFunctionDefinition($tokens, $startIndex);
            }
        }
    }

    /**
     * Determine whether there is a non-void return annotation in the function's PHPDoc comment.
     *
     * @param int $index The index of the function token
     *
     * @return bool
     */
    private function hasReturnAnnotation(Tokens $tokens, $index)
    {
        foreach ($this->findReturnAnnotations($tokens, $index) as $return) {
            if (['void'] !== $return->getTypes()) {
                return true;
            }
        }

        return false;
    }

    /**
     * Determine whether there is a void return annotation in the function's PHPDoc comment.
     *
     * @param int $index The index of the function token
     *
     * @return bool
     */
    private function hasVoidReturnAnnotation(Tokens $tokens, $index)
    {
        foreach ($this->findReturnAnnotations($tokens, $index) as $return) {
            if (['void'] === $return->getTypes()) {
                return true;
            }
        }

        return false;
    }

    /**
     * Determine whether the function already has a return type hint.
     *
     * @param int $index The index of the end of the function definition line, EG at { or ;
     *
     * @return bool
     */
    private function hasReturnTypeHint(Tokens $tokens, $index)
    {
        $endFuncIndex = $tokens->getPrevTokenOfKind($index, [')']);
        $nextIndex = $tokens->getNextMeaningfulToken($endFuncIndex);

        return $tokens[$nextIndex]->isGivenKind(CT::T_TYPE_COLON);
    }

    /**
     * Determine whether the function has a void return.
     *
     * @param int $startIndex Start of function body
     * @param int $endIndex   End of function body
     *
     * @return bool
     */
    private function hasVoidReturn(Tokens $tokens, $startIndex, $endIndex)
    {
        $tokensAnalyzer = new TokensAnalyzer($tokens);

        for ($i = $startIndex; $i < $endIndex; ++$i) {
            if (
                // skip anonymous classes
                ($tokens[$i]->isGivenKind(T_CLASS) && $tokensAnalyzer->isAnonymousClass($i)) ||
                 // skip lambda functions
                ($tokens[$i]->isGivenKind(T_FUNCTION) && $tokensAnalyzer->isLambda($i))
            ) {
                $i = $tokens->getNextTokenOfKind($i, ['{']);
                $i = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $i);

                continue;
            }

            if ($tokens[$i]->isGivenKind([T_YIELD, T_YIELD_FROM])) {
                return false; // Generators cannot return void.
            }

            if (!$tokens[$i]->isGivenKind(T_RETURN)) {
                continue;
            }

            $i = $tokens->getNextMeaningfulToken($i);
            if (!$tokens[$i]->equals(';')) {
                return false;
            }
        }

        return true;
    }

    /**
     * @param int $index The index of the end of the function definition line, EG at { or ;
     */
    private function fixFunctionDefinition(Tokens $tokens, $index)
    {
        $endFuncIndex = $tokens->getPrevTokenOfKind($index, [')']);
        $tokens->insertAt($endFuncIndex + 1, [
            new Token([CT::T_TYPE_COLON, ':']),
            new Token([T_WHITESPACE, ' ']),
            new Token([T_STRING, 'void']),
        ]);
    }

    /**
     * Find all the return annotations in the function's PHPDoc comment.
     *
     * @param int $index The index of the function token
     *
     * @return Annotation[]
     */
    private function findReturnAnnotations(Tokens $tokens, $index)
    {
        do {
            $index = $tokens->getPrevNonWhitespace($index);
        } while ($tokens[$index]->isGivenKind([
            T_ABSTRACT,
            T_FINAL,
            T_PRIVATE,
            T_PROTECTED,
            T_PUBLIC,
            T_STATIC,
        ]));

        if (!$tokens[$index]->isGivenKind(T_DOC_COMMENT)) {
            return [];
        }

        $doc = new DocBlock($tokens[$index]->getContent());

        return $doc->getAnnotationsOfType('return');
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\FunctionNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Tokenizer\TokensAnalyzer;

/**
 * @author SpacePossum
 */
final class StaticLambdaFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Lambdas not (indirect) referencing `$this` must be declared `static`.',
            [new CodeSample("<?php\n\$a = function () use (\$b)\n{   echo \$b;\n};\n")],
            null,
            'Risky when using `->bindTo` on lambdas without referencing to `$this`.'
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        if (\PHP_VERSION_ID >= 70400 && $tokens->isTokenKindFound(T_FN)) {
            return true;
        }

        return $tokens->isTokenKindFound(T_FUNCTION);
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $analyzer = new TokensAnalyzer($tokens);

        $expectedFunctionKinds = [T_FUNCTION];
        if (\PHP_VERSION_ID >= 70400) {
            $expectedFunctionKinds[] = T_FN;
        }

        for ($index = $tokens->count() - 4; $index > 0; --$index) {
            if (!$tokens[$index]->isGivenKind($expectedFunctionKinds) || !$analyzer->isLambda($index)) {
                continue;
            }

            $prev = $tokens->getPrevMeaningfulToken($index);
            if ($tokens[$prev]->isGivenKind(T_STATIC)) {
                continue; // lambda is already 'static'
            }

            $argumentsStartIndex = $tokens->getNextTokenOfKind($index, ['(']);
            $argumentsEndIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $argumentsStartIndex);

            // figure out where the lambda starts ...
            $lambdaOpenIndex = $tokens->getNextTokenOfKind($argumentsEndIndex, ['{', [T_DOUBLE_ARROW]]);

            // ... and where it ends
            if ($tokens[$lambdaOpenIndex]->isGivenKind(T_DOUBLE_ARROW)) {
                $lambdaEndIndex = $tokens->getNextTokenOfKind($lambdaOpenIndex, [';']);
            } else {
                $lambdaEndIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $lambdaOpenIndex);
            }

            if ($this->hasPossibleReferenceToThis($tokens, $lambdaOpenIndex, $lambdaEndIndex)) {
                continue;
            }

            // make the lambda static
            $tokens->insertAt(
                $index,
                [
                    new Token([T_STATIC, 'static']),
                    new Token([T_WHITESPACE, ' ']),
                ]
            );

            $index -= 4; // fixed after a lambda, closes candidate is at least 4 tokens before that
        }
    }

    /**
     * Returns 'true' if there is a possible reference to '$this' within the given tokens index range.
     *
     * @param int $startIndex
     * @param int $endIndex
     *
     * @return bool
     */
    private function hasPossibleReferenceToThis(Tokens $tokens, $startIndex, $endIndex)
    {
        for ($i = $startIndex; $i < $endIndex; ++$i) {
            if ($tokens[$i]->isGivenKind(T_VARIABLE) && '$this' === strtolower($tokens[$i]->getContent())) {
                return true; // directly accessing '$this'
            }

            if ($tokens[$i]->isGivenKind([
                T_INCLUDE,                    // loading additional symbols we cannot analyze here
                T_INCLUDE_ONCE,               // "
                T_REQUIRE,                    // "
                T_REQUIRE_ONCE,               // "
                CT::T_DYNAMIC_VAR_BRACE_OPEN, // "$h = ${$g};" case
                T_EVAL,                       // "$c = eval('return $this;');" case
            ])) {
                return true;
            }

            if ($tokens[$i]->equals('$')) {
                $nextIndex = $tokens->getNextMeaningfulToken($i);
                if ($tokens[$nextIndex]->isGivenKind(T_VARIABLE)) {
                    return true; // "$$a" case
                }
            }
        }

        return false;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\FunctionNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\FixerDefinition\VersionSpecification;
use PhpCsFixer\FixerDefinition\VersionSpecificCodeSample;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class ReturnTypeDeclarationFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        $versionSpecification = new VersionSpecification(70000);

        return new FixerDefinition(
            'There should be one or no space before colon, and one space after it in return type declarations, according to configuration.',
            [
                new VersionSpecificCodeSample(
                    "<?php\nfunction foo(int \$a):string {};\n",
                    $versionSpecification
                ),
                new VersionSpecificCodeSample(
                    "<?php\nfunction foo(int \$a):string {};\n",
                    $versionSpecification,
                    ['space_before' => 'none']
                ),
                new VersionSpecificCodeSample(
                    "<?php\nfunction foo(int \$a):string {};\n",
                    $versionSpecification,
                    ['space_before' => 'one']
                ),
            ],
            'Rule is applied only in a PHP 7+ environment.'
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run after PhpdocToReturnTypeFixer, VoidReturnFixer.
     */
    public function getPriority()
    {
        return -17;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return \PHP_VERSION_ID >= 70000 && $tokens->isTokenKindFound(CT::T_TYPE_COLON);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $oneSpaceBefore = 'one' === $this->configuration['space_before'];

        for ($index = 0, $limit = $tokens->count(); $index < $limit; ++$index) {
            if (!$tokens[$index]->isGivenKind(CT::T_TYPE_COLON)) {
                continue;
            }

            $previousIndex = $index - 1;
            $previousToken = $tokens[$previousIndex];

            if ($previousToken->isWhitespace()) {
                if (!$tokens[$tokens->getPrevNonWhitespace($index - 1)]->isComment()) {
                    if ($oneSpaceBefore) {
                        $tokens[$previousIndex] = new Token([T_WHITESPACE, ' ']);
                    } else {
                        $tokens->clearAt($previousIndex);
                    }
                }
            } elseif ($oneSpaceBefore) {
                $tokenWasAdded = $tokens->ensureWhitespaceAtIndex($index, 0, ' ');

                if ($tokenWasAdded) {
                    ++$limit;
                }

                ++$index;
            }

            ++$index;

            $tokenWasAdded = $tokens->ensureWhitespaceAtIndex($index, 0, ' ');

            if ($tokenWasAdded) {
                ++$limit;
            }
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('space_before', 'Spacing to apply before colon.'))
                ->setAllowedValues(['one', 'none'])
                ->setDefault('none')
                ->getOption(),
        ]);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\FunctionNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Analyzer\Analysis\TypeAnalysis;
use PhpCsFixer\Tokenizer\Analyzer\FunctionsAnalyzer;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class FunctionTypehintSpaceFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Ensure single space between function\'s argument and its typehint.',
            [
                new CodeSample("<?php\nfunction sample(array\$a)\n{}\n"),
                new CodeSample("<?php\nfunction sample(array  \$a)\n{}\n"),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        if (\PHP_VERSION_ID >= 70400 && $tokens->isTokenKindFound(T_FN)) {
            return true;
        }

        return $tokens->isTokenKindFound(T_FUNCTION);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $functionsAnalyzer = new FunctionsAnalyzer();

        for ($index = $tokens->count() - 1; $index >= 0; --$index) {
            $token = $tokens[$index];

            if (
                !$token->isGivenKind(T_FUNCTION)
                && (\PHP_VERSION_ID < 70400 || !$token->isGivenKind(T_FN))
            ) {
                continue;
            }

            $arguments = $functionsAnalyzer->getFunctionArguments($tokens, $index);

            foreach (array_reverse($arguments) as $argument) {
                $type = $argument->getTypeAnalysis();

                if (!$type instanceof TypeAnalysis) {
                    continue;
                }

                $whitespaceTokenIndex = $type->getEndIndex() + 1;

                if ($tokens[$whitespaceTokenIndex]->equals([T_WHITESPACE])) {
                    if (' ' === $tokens[$whitespaceTokenIndex]->getContent()) {
                        continue;
                    }

                    $tokens->clearAt($whitespaceTokenIndex);
                }

                $tokens->insertAt($whitespaceTokenIndex, new Token([T_WHITESPACE, ' ']));
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\FunctionNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerConfiguration\InvalidOptionsForEnvException;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\FixerDefinition\VersionSpecification;
use PhpCsFixer\FixerDefinition\VersionSpecificCodeSample;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use Symfony\Component\OptionsResolver\Options;

/**
 * Fixer for rules defined in PSR2 ¶4.4, ¶4.6.
 *
 * @author Kuanhung Chen <ericj.tw@gmail.com>
 */
final class MethodArgumentSpaceFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface, WhitespacesAwareFixerInterface
{
    /**
     * Method to insert space after comma and remove space before comma.
     *
     * @param int $index
     */
    public function fixSpace(Tokens $tokens, $index)
    {
        @trigger_error(__METHOD__.' is deprecated and will be removed in 3.0.', E_USER_DEPRECATED);
        $this->fixSpace2($tokens, $index);
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'In method arguments and method call, there MUST NOT be a space before each comma and there MUST be one space after each comma. Argument lists MAY be split across multiple lines, where each subsequent line is indented once. When doing so, the first item in the list MUST be on the next line, and there MUST be only one argument per line.',
            [
                new CodeSample(
                    "<?php\nfunction sample(\$a=10,\$b=20,\$c=30) {}\nsample(1,  2);\n",
                    null
                ),
                new CodeSample(
                    "<?php\nfunction sample(\$a=10,\$b=20,\$c=30) {}\nsample(1,  2);\n",
                    ['keep_multiple_spaces_after_comma' => false]
                ),
                new CodeSample(
                    "<?php\nfunction sample(\$a=10,\$b=20,\$c=30) {}\nsample(1,  2);\n",
                    ['keep_multiple_spaces_after_comma' => true]
                ),
                new CodeSample(
                    "<?php\nfunction sample(\$a=10,\n    \$b=20,\$c=30) {}\nsample(1,\n    2);\n",
                    ['on_multiline' => 'ensure_fully_multiline']
                ),
                new CodeSample(
                    "<?php\nfunction sample(\n    \$a=10,\n    \$b=20,\n    \$c=30\n) {}\nsample(\n    1,\n    2\n);\n",
                    ['on_multiline' => 'ensure_single_line']
                ),
                new CodeSample(
                    "<?php\nfunction sample(\$a=10,\n    \$b=20,\$c=30) {}\nsample(1,  \n    2);\nsample('foo',    'foobarbaz', 'baz');\nsample('foobar', 'bar',       'baz');\n",
                    [
                        'on_multiline' => 'ensure_fully_multiline',
                        'keep_multiple_spaces_after_comma' => true,
                    ]
                ),
                new CodeSample(
                    "<?php\nfunction sample(\$a=10,\n    \$b=20,\$c=30) {}\nsample(1,  \n    2);\nsample('foo',    'foobarbaz', 'baz');\nsample('foobar', 'bar',       'baz');\n",
                    [
                        'on_multiline' => 'ensure_fully_multiline',
                        'keep_multiple_spaces_after_comma' => false,
                    ]
                ),
                new VersionSpecificCodeSample(
                    <<<'SAMPLE'
<?php
sample(
    <<<EOD
        foo
        EOD
    ,
    'bar'
);

SAMPLE
                    ,
                    new VersionSpecification(70300),
                    ['after_heredoc' => true]
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound('(');
    }

    public function configure(array $configuration = null)
    {
        parent::configure($configuration);

        if ($this->configuration['ensure_fully_multiline'] && 'ignore' === $this->configuration['on_multiline']) {
            $this->configuration['on_multiline'] = 'ensure_fully_multiline';
        }
    }

    /**
     * {@inheritdoc}
     *
     * Must run before ArrayIndentationFixer.
     * Must run after BracesFixer, CombineNestedDirnameFixer, ImplodeCallFixer, MethodChainingIndentationFixer, PowToExponentiationFixer.
     */
    public function getPriority()
    {
        return -30;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $expectedTokens = [T_LIST, T_FUNCTION];
        if (\PHP_VERSION_ID >= 70400) {
            $expectedTokens[] = T_FN;
        }

        for ($index = $tokens->count() - 1; $index > 0; --$index) {
            $token = $tokens[$index];

            if (!$token->equals('(')) {
                continue;
            }

            $meaningfulTokenBeforeParenthesis = $tokens[$tokens->getPrevMeaningfulToken($index)];
            if (
                $meaningfulTokenBeforeParenthesis->isKeyword()
                && !$meaningfulTokenBeforeParenthesis->isGivenKind($expectedTokens)
            ) {
                continue;
            }

            $isMultiline = $this->fixFunction($tokens, $index);

            if (
                $isMultiline
                && 'ensure_fully_multiline' === $this->configuration['on_multiline']
                && !$meaningfulTokenBeforeParenthesis->isGivenKind(T_LIST)
            ) {
                $this->ensureFunctionFullyMultiline($tokens, $index);
            }
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('keep_multiple_spaces_after_comma', 'Whether keep multiple spaces after comma.'))
                ->setAllowedTypes(['bool'])
                ->setDefault(false)
                ->getOption(),
            (new FixerOptionBuilder(
                'ensure_fully_multiline',
                'ensure every argument of a multiline argument list is on its own line'
            ))
                ->setAllowedTypes(['bool'])
                ->setDefault(false) // @TODO 3.0 remove
                ->setDeprecationMessage('Use option `on_multiline` instead.')
                ->getOption(),
            (new FixerOptionBuilder(
                'on_multiline',
                'Defines how to handle function arguments lists that contain newlines.'
            ))
                ->setAllowedValues(['ignore', 'ensure_single_line', 'ensure_fully_multiline'])
                ->setDefault('ignore') // @TODO 3.0 should be 'ensure_fully_multiline'
                ->getOption(),
            (new FixerOptionBuilder('after_heredoc', 'Whether the whitespace between heredoc end and comma should be removed.'))
                ->setAllowedTypes(['bool'])
                ->setDefault(false)
                ->setNormalizer(static function (Options $options, $value) {
                    if (\PHP_VERSION_ID < 70300 && $value) {
                        throw new InvalidOptionsForEnvException('"after_heredoc" option can only be enabled with PHP 7.3+.');
                    }

                    return $value;
                })
                ->getOption(),
        ]);
    }

    /**
     * Fix arguments spacing for given function.
     *
     * @param Tokens $tokens             Tokens to handle
     * @param int    $startFunctionIndex Start parenthesis position
     *
     * @return bool whether the function is multiline
     */
    private function fixFunction(Tokens $tokens, $startFunctionIndex)
    {
        $endFunctionIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $startFunctionIndex);

        $isMultiline = false;

        $firstWhitespaceIndex = $this->findWhitespaceIndexAfterParenthesis($tokens, $startFunctionIndex, $endFunctionIndex);
        $lastWhitespaceIndex = $this->findWhitespaceIndexAfterParenthesis($tokens, $endFunctionIndex, $startFunctionIndex);

        foreach ([$firstWhitespaceIndex, $lastWhitespaceIndex] as $index) {
            if (null === $index || !Preg::match('/\R/', $tokens[$index]->getContent())) {
                continue;
            }

            if ('ensure_single_line' !== $this->configuration['on_multiline']) {
                $isMultiline = true;

                continue;
            }

            $newLinesRemoved = $this->ensureSingleLine($tokens, $index);
            if (!$newLinesRemoved) {
                $isMultiline = true;
            }
        }

        for ($index = $endFunctionIndex - 1; $index > $startFunctionIndex; --$index) {
            $token = $tokens[$index];

            if ($token->equals(')')) {
                $index = $tokens->findBlockStart(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $index);

                continue;
            }

            if ($token->isGivenKind(CT::T_ARRAY_SQUARE_BRACE_CLOSE)) {
                $index = $tokens->findBlockStart(Tokens::BLOCK_TYPE_ARRAY_SQUARE_BRACE, $index);

                continue;
            }

            if ($token->equals('}')) {
                $index = $tokens->findBlockStart(Tokens::BLOCK_TYPE_CURLY_BRACE, $index);

                continue;
            }

            if ($token->equals(',')) {
                $this->fixSpace2($tokens, $index);
                if (!$isMultiline && $this->isNewline($tokens[$index + 1])) {
                    $isMultiline = true;

                    break;
                }
            }
        }

        return $isMultiline;
    }

    /**
     * @param int $startParenthesisIndex
     * @param int $endParenthesisIndex
     *
     * @return null|int
     */
    private function findWhitespaceIndexAfterParenthesis(Tokens $tokens, $startParenthesisIndex, $endParenthesisIndex)
    {
        $direction = $endParenthesisIndex > $startParenthesisIndex ? 1 : -1;
        $startIndex = $startParenthesisIndex + $direction;
        $endIndex = $endParenthesisIndex - $direction;

        for ($index = $startIndex; $index !== $endIndex; $index += $direction) {
            $token = $tokens[$index];

            if ($token->isWhitespace()) {
                return $index;
            }

            if (!$token->isComment()) {
                break;
            }
        }

        return null;
    }

    /**
     * @param int $index
     *
     * @return bool Whether newlines were removed from the whitespace token
     */
    private function ensureSingleLine(Tokens $tokens, $index)
    {
        $previousToken = $tokens[$index - 1];
        if ($previousToken->isComment() && 0 !== strpos($previousToken->getContent(), '/*')) {
            return false;
        }

        $content = Preg::replace('/\R\h*/', '', $tokens[$index]->getContent());
        if ('' !== $content) {
            $tokens[$index] = new Token([T_WHITESPACE, $content]);
        } else {
            $tokens->clearAt($index);
        }

        return true;
    }

    /**
     * @param int $startFunctionIndex
     */
    private function ensureFunctionFullyMultiline(Tokens $tokens, $startFunctionIndex)
    {
        // find out what the indentation is
        $searchIndex = $startFunctionIndex;
        do {
            $prevWhitespaceTokenIndex = $tokens->getPrevTokenOfKind(
                $searchIndex,
                [[T_WHITESPACE]]
            );
            $searchIndex = $prevWhitespaceTokenIndex;
        } while (null !== $prevWhitespaceTokenIndex
            && false === strpos($tokens[$prevWhitespaceTokenIndex]->getContent(), "\n")
        );

        if (null === $prevWhitespaceTokenIndex) {
            $existingIndentation = '';
        } else {
            $existingIndentation = $tokens[$prevWhitespaceTokenIndex]->getContent();
            $lastLineIndex = strrpos($existingIndentation, "\n");
            $existingIndentation = false === $lastLineIndex
                ? $existingIndentation
                : substr($existingIndentation, $lastLineIndex + 1)
            ;
        }

        $indentation = $existingIndentation.$this->whitespacesConfig->getIndent();
        $endFunctionIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $startFunctionIndex);

        $wasWhitespaceBeforeEndFunctionAddedAsNewToken = $tokens->ensureWhitespaceAtIndex(
            $tokens[$endFunctionIndex - 1]->isWhitespace() ? $endFunctionIndex - 1 : $endFunctionIndex,
            0,
            $this->whitespacesConfig->getLineEnding().$existingIndentation
        );

        if ($wasWhitespaceBeforeEndFunctionAddedAsNewToken) {
            ++$endFunctionIndex;
        }

        for ($index = $endFunctionIndex - 1; $index > $startFunctionIndex; --$index) {
            $token = $tokens[$index];

            // skip nested method calls and arrays
            if ($token->equals(')')) {
                $index = $tokens->findBlockStart(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $index);

                continue;
            }

            // skip nested arrays
            if ($token->isGivenKind(CT::T_ARRAY_SQUARE_BRACE_CLOSE)) {
                $index = $tokens->findBlockStart(Tokens::BLOCK_TYPE_ARRAY_SQUARE_BRACE, $index);

                continue;
            }

            if ($token->equals('}')) {
                $index = $tokens->findBlockStart(Tokens::BLOCK_TYPE_CURLY_BRACE, $index);

                continue;
            }

            if ($token->equals(',') && !$tokens[$tokens->getNextMeaningfulToken($index)]->equals(')')) {
                $this->fixNewline($tokens, $index, $indentation);
            }
        }

        $this->fixNewline($tokens, $startFunctionIndex, $indentation, false);
    }

    /**
     * Method to insert newline after comma or opening parenthesis.
     *
     * @param int    $index       index of a comma
     * @param string $indentation the indentation that should be used
     * @param bool   $override    whether to override the existing character or not
     */
    private function fixNewline(Tokens $tokens, $index, $indentation, $override = true)
    {
        if ($tokens[$index + 1]->isComment()) {
            return;
        }

        if ($tokens[$index + 2]->isComment()) {
            $nextMeaningfulTokenIndex = $tokens->getNextMeaningfulToken($index + 2);
            if (!$this->isNewline($tokens[$nextMeaningfulTokenIndex - 1])) {
                $tokens->ensureWhitespaceAtIndex($nextMeaningfulTokenIndex, 0, $this->whitespacesConfig->getLineEnding().$indentation);
            }

            return;
        }

        $nextMeaningfulTokenIndex = $tokens->getNextMeaningfulToken($index);
        if ($tokens[$nextMeaningfulTokenIndex]->equals(')')) {
            return;
        }

        $tokens->ensureWhitespaceAtIndex($index + 1, 0, $this->whitespacesConfig->getLineEnding().$indentation);
    }

    /**
     * Method to insert space after comma and remove space before comma.
     *
     * @param int $index
     */
    private function fixSpace2(Tokens $tokens, $index)
    {
        // remove space before comma if exist
        if ($tokens[$index - 1]->isWhitespace()) {
            $prevIndex = $tokens->getPrevNonWhitespace($index - 1);

            if (
                !$tokens[$prevIndex]->equals(',') && !$tokens[$prevIndex]->isComment() &&
                ($this->configuration['after_heredoc'] || !$tokens[$prevIndex]->isGivenKind(T_END_HEREDOC))
            ) {
                $tokens->clearAt($index - 1);
            }
        }

        $nextIndex = $index + 1;
        $nextToken = $tokens[$nextIndex];

        // Two cases for fix space after comma (exclude multiline comments)
        //  1) multiple spaces after comma
        //  2) no space after comma
        if ($nextToken->isWhitespace()) {
            $newContent = $nextToken->getContent();

            if ('ensure_single_line' === $this->configuration['on_multiline']) {
                $newContent = Preg::replace('/\R/', '', $newContent);
            }

            if (
                (!$this->configuration['keep_multiple_spaces_after_comma'] || Preg::match('/\R/', $newContent))
                && !$this->isCommentLastLineToken($tokens, $index + 2)
            ) {
                $newContent = ltrim($newContent, " \t");
            }

            $tokens[$nextIndex] = new Token([T_WHITESPACE, '' === $newContent ? ' ' : $newContent]);

            return;
        }

        if (!$this->isCommentLastLineToken($tokens, $index + 1)) {
            $tokens->insertAt($index + 1, new Token([T_WHITESPACE, ' ']));
        }
    }

    /**
     * Check if last item of current line is a comment.
     *
     * @param Tokens $tokens tokens to handle
     * @param int    $index  index of token
     *
     * @return bool
     */
    private function isCommentLastLineToken(Tokens $tokens, $index)
    {
        if (!$tokens[$index]->isComment() || !$tokens[$index + 1]->isWhitespace()) {
            return false;
        }

        $content = $tokens[$index + 1]->getContent();

        return $content !== ltrim($content, "\r\n");
    }

    /**
     * Checks if token is new line.
     *
     * @return bool
     */
    private function isNewline(Token $token)
    {
        return $token->isWhitespace() && false !== strpos($token->getContent(), "\n");
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\FunctionNotation;

use PhpCsFixer\AbstractFopenFlagFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author SpacePossum
 */
final class FopenFlagOrderFixer extends AbstractFopenFlagFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Order the flags in `fopen` calls, `b` and `t` must be last.',
            [new CodeSample("<?php\n\$a = fopen(\$foo, 'br+');\n")],
            null,
            'Risky when the function `fopen` is overridden.'
        );
    }

    /**
     * @param int $argumentStartIndex
     * @param int $argumentEndIndex
     */
    protected function fixFopenFlagToken(Tokens $tokens, $argumentStartIndex, $argumentEndIndex)
    {
        $argumentFlagIndex = null;

        for ($i = $argumentStartIndex; $i <= $argumentEndIndex; ++$i) {
            if ($tokens[$i]->isGivenKind([T_WHITESPACE, T_COMMENT, T_DOC_COMMENT])) {
                continue;
            }

            if (null !== $argumentFlagIndex) {
                return; // multiple meaningful tokens found, no candidate for fixing
            }

            $argumentFlagIndex = $i;
        }

        // check if second argument is candidate
        if (null === $argumentFlagIndex || !$tokens[$argumentFlagIndex]->isGivenKind(T_CONSTANT_ENCAPSED_STRING)) {
            return;
        }

        $content = $tokens[$argumentFlagIndex]->getContent();
        $contentQuote = $content[0]; // `'`, `"`, `b` or `B`

        if ('b' === $contentQuote || 'B' === $contentQuote) {
            $binPrefix = $contentQuote;
            $contentQuote = $content[1]; // `'` or `"`
            $mode = substr($content, 2, -1);
        } else {
            $binPrefix = '';
            $mode = substr($content, 1, -1);
        }

        $modeLength = \strlen($mode);
        if ($modeLength < 2) {
            return; // nothing to sort
        }

        if (false === $this->isValidModeString($mode)) {
            return;
        }

        $split = $this->sortFlags(Preg::split('#([^\+]\+?)#', $mode, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE));
        $newContent = $binPrefix.$contentQuote.implode('', $split).$contentQuote;

        if ($content !== $newContent) {
            $tokens[$argumentFlagIndex] = new Token([T_CONSTANT_ENCAPSED_STRING, $newContent]);
        }
    }

    /**
     * @param string[] $flags
     *
     * @return string[]
     */
    private function sortFlags(array $flags)
    {
        usort(
            $flags,
            static function ($flag1, $flag2) {
                if ($flag1 === $flag2) {
                    return 0;
                }

                if ('b' === $flag1) {
                    return 1;
                }

                if ('b' === $flag2) {
                    return -1;
                }

                if ('t' === $flag1) {
                    return 1;
                }

                if ('t' === $flag2) {
                    return -1;
                }

                return $flag1 < $flag2 ? -1 : 1;
            }
        );

        return $flags;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\FunctionNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\FixerDefinition\VersionSpecification;
use PhpCsFixer\FixerDefinition\VersionSpecificCodeSample;
use PhpCsFixer\Tokenizer\Analyzer\FunctionsAnalyzer;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Gregor Harlan
 */
final class CombineNestedDirnameFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Replace multiple nested calls of `dirname` by only one call with second `$level` parameter. Requires PHP >= 7.0.',
            [
                new VersionSpecificCodeSample(
                    "<?php\ndirname(dirname(dirname(\$path)));\n",
                    new VersionSpecification(70000)
                ),
            ],
            null,
            'Risky when the function `dirname` is overridden.'
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return \PHP_VERSION_ID >= 70000 && $tokens->isTokenKindFound(T_STRING);
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     *
     * Must run before MethodArgumentSpaceFixer, NoSpacesInsideParenthesisFixer.
     * Must run after DirConstantFixer.
     */
    public function getPriority()
    {
        return 3;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        for ($index = $tokens->count() - 1; 0 <= $index; --$index) {
            $dirnameInfo = $this->getDirnameInfo($tokens, $index);

            if (!$dirnameInfo) {
                continue;
            }

            $prev = $tokens->getPrevMeaningfulToken($dirnameInfo['indexes'][0]);

            if (!$tokens[$prev]->equals('(')) {
                continue;
            }

            $prev = $tokens->getPrevMeaningfulToken($prev);

            $firstArgumentEnd = $dirnameInfo['end'];

            $dirnameInfoArray = [$dirnameInfo];

            while ($dirnameInfo = $this->getDirnameInfo($tokens, $prev, $firstArgumentEnd)) {
                $dirnameInfoArray[] = $dirnameInfo;

                $prev = $tokens->getPrevMeaningfulToken($dirnameInfo['indexes'][0]);

                if (!$tokens[$prev]->equals('(')) {
                    break;
                }

                $prev = $tokens->getPrevMeaningfulToken($prev);
                $firstArgumentEnd = $dirnameInfo['end'];
            }

            if (\count($dirnameInfoArray) > 1) {
                $this->combineDirnames($tokens, $dirnameInfoArray);
            }

            $index = $prev;
        }
    }

    /**
     * @param int      $index                 Index of `dirname`
     * @param null|int $firstArgumentEndIndex Index of last token of first argument of `dirname` call
     *
     * @return array|bool `false` when it is not a (supported) `dirname` call, an array with info about the dirname call otherwise
     */
    private function getDirnameInfo(Tokens $tokens, $index, $firstArgumentEndIndex = null)
    {
        if (!$tokens[$index]->equals([T_STRING, 'dirname'], false)) {
            return false;
        }

        if (!(new FunctionsAnalyzer())->isGlobalFunctionCall($tokens, $index)) {
            return false;
        }

        $info['indexes'] = [];

        $prev = $tokens->getPrevMeaningfulToken($index);

        if ($tokens[$prev]->isGivenKind(T_NS_SEPARATOR)) {
            $info['indexes'][] = $prev;
        }

        $info['indexes'][] = $index;

        // opening parenthesis "("
        $next = $tokens->getNextMeaningfulToken($index);
        $info['indexes'][] = $next;

        if (null !== $firstArgumentEndIndex) {
            $next = $tokens->getNextMeaningfulToken($firstArgumentEndIndex);
        } else {
            $next = $tokens->getNextMeaningfulToken($next);

            if ($tokens[$next]->equals(')')) {
                return false;
            }

            while (!$tokens[$next]->equalsAny([',', ')'])) {
                $blockType = Tokens::detectBlockType($tokens[$next]);

                if ($blockType) {
                    $next = $tokens->findBlockEnd($blockType['type'], $next);
                }

                $next = $tokens->getNextMeaningfulToken($next);
            }
        }

        $info['indexes'][] = $next;

        if ($tokens[$next]->equals(',')) {
            $next = $tokens->getNextMeaningfulToken($next);
            $info['indexes'][] = $next;
        }

        if ($tokens[$next]->equals(')')) {
            $info['levels'] = 1;
            $info['end'] = $next;

            return $info;
        }

        if (!$tokens[$next]->isGivenKind(T_LNUMBER)) {
            return false;
        }

        $info['secondArgument'] = $next;
        $info['levels'] = (int) $tokens[$next]->getContent();

        $next = $tokens->getNextMeaningfulToken($next);

        if ($tokens[$next]->equals(',')) {
            $info['indexes'][] = $next;
            $next = $tokens->getNextMeaningfulToken($next);
        }

        if (!$tokens[$next]->equals(')')) {
            return false;
        }

        $info['indexes'][] = $next;
        $info['end'] = $next;

        return $info;
    }

    private function combineDirnames(Tokens $tokens, array $dirnameInfoArray)
    {
        $outerDirnameInfo = array_pop($dirnameInfoArray);
        $levels = $outerDirnameInfo['levels'];

        foreach ($dirnameInfoArray as $dirnameInfo) {
            $levels += $dirnameInfo['levels'];

            foreach ($dirnameInfo['indexes'] as $index) {
                $tokens->removeLeadingWhitespace($index);
                $tokens->clearTokenAndMergeSurroundingWhitespace($index);
            }
        }

        $levelsToken = new Token([T_LNUMBER, (string) $levels]);

        if (isset($outerDirnameInfo['secondArgument'])) {
            $tokens[$outerDirnameInfo['secondArgument']] = $levelsToken;
        } else {
            $prev = $tokens->getPrevMeaningfulToken($outerDirnameInfo['end']);
            $items = [];
            if (!$tokens[$prev]->equals(',')) {
                $items = [new Token(','), new Token([T_WHITESPACE, ' '])];
            }
            $items[] = $levelsToken;
            $tokens->insertAt($outerDirnameInfo['end'], $items);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\FunctionNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * Fixer for rules defined in PSR2 ¶4.6.
 *
 * @author Varga Bence <vbence@czentral.org>
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class NoSpacesAfterFunctionNameFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'When making a method or function call, there MUST NOT be a space between the method or function name and the opening parenthesis.',
            [new CodeSample("<?php\nrequire ('sample.php');\necho (test (3));\nexit  (1);\n\$func ();\n")]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before FunctionToConstantFixer.
     * Must run after PowToExponentiationFixer.
     */
    public function getPriority()
    {
        return 2;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound(array_merge($this->getFunctionyTokenKinds(), [T_STRING]));
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $functionyTokens = $this->getFunctionyTokenKinds();
        $languageConstructionTokens = $this->getLanguageConstructionTokenKinds();
        $braceTypes = $this->getBraceAfterVariableKinds();

        foreach ($tokens as $index => $token) {
            // looking for start brace
            if (!$token->equals('(')) {
                continue;
            }

            // last non-whitespace token, can never be `null` always at least PHP open tag before it
            $lastTokenIndex = $tokens->getPrevNonWhitespace($index);

            // check for ternary operator
            $endParenthesisIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $index);
            $nextNonWhiteSpace = $tokens->getNextMeaningfulToken($endParenthesisIndex);
            if (
                null !== $nextNonWhiteSpace
                && $tokens[$nextNonWhiteSpace]->equals('?')
                && $tokens[$lastTokenIndex]->isGivenKind($languageConstructionTokens)
            ) {
                continue;
            }

            // check if it is a function call
            if ($tokens[$lastTokenIndex]->isGivenKind($functionyTokens)) {
                $this->fixFunctionCall($tokens, $index);
            } elseif ($tokens[$lastTokenIndex]->isGivenKind(T_STRING)) { // for real function calls or definitions
                $possibleDefinitionIndex = $tokens->getPrevMeaningfulToken($lastTokenIndex);
                if (!$tokens[$possibleDefinitionIndex]->isGivenKind(T_FUNCTION)) {
                    $this->fixFunctionCall($tokens, $index);
                }
            } elseif ($tokens[$lastTokenIndex]->equalsAny($braceTypes)) {
                $block = Tokens::detectBlockType($tokens[$lastTokenIndex]);
                if (
                    Tokens::BLOCK_TYPE_ARRAY_INDEX_CURLY_BRACE === $block['type']
                    || Tokens::BLOCK_TYPE_DYNAMIC_VAR_BRACE === $block['type']
                    || Tokens::BLOCK_TYPE_INDEX_SQUARE_BRACE === $block['type']
                    || Tokens::BLOCK_TYPE_PARENTHESIS_BRACE === $block['type']
                ) {
                    $this->fixFunctionCall($tokens, $index);
                }
            }
        }
    }

    /**
     * Fixes whitespaces around braces of a function(y) call.
     *
     * @param Tokens $tokens tokens to handle
     * @param int    $index  index of token
     */
    private function fixFunctionCall(Tokens $tokens, $index)
    {
        // remove space before opening brace
        if ($tokens[$index - 1]->isWhitespace()) {
            $tokens->clearAt($index - 1);
        }
    }

    /**
     * @return array<array|string>
     */
    private function getBraceAfterVariableKinds()
    {
        static $tokens = [
            ')',
            ']',
            [CT::T_DYNAMIC_VAR_BRACE_CLOSE],
            [CT::T_ARRAY_INDEX_CURLY_BRACE_CLOSE],
        ];

        return $tokens;
    }

    /**
     * Gets the token kinds which can work as function calls.
     *
     * @return int[] Token names
     */
    private function getFunctionyTokenKinds()
    {
        static $tokens = [
            T_ARRAY,
            T_ECHO,
            T_EMPTY,
            T_EVAL,
            T_EXIT,
            T_INCLUDE,
            T_INCLUDE_ONCE,
            T_ISSET,
            T_LIST,
            T_PRINT,
            T_REQUIRE,
            T_REQUIRE_ONCE,
            T_UNSET,
            T_VARIABLE,
        ];

        return $tokens;
    }

    /**
     * Gets the token kinds of actually language construction.
     *
     * @return int[]
     */
    private function getLanguageConstructionTokenKinds()
    {
        static $languageConstructionTokens = [
            T_ECHO,
            T_PRINT,
            T_INCLUDE,
            T_INCLUDE_ONCE,
            T_REQUIRE,
            T_REQUIRE_ONCE,
        ];

        return $languageConstructionTokens;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\FunctionNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\DocBlock\Annotation;
use PhpCsFixer\DocBlock\DocBlock;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\FixerDefinition\VersionSpecification;
use PhpCsFixer\FixerDefinition\VersionSpecificCodeSample;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Filippo Tessarotto <zoeslam@gmail.com>
 */
final class PhpdocToReturnTypeFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * @var array<int, array<int, int|string>>
     */
    private $excludeFuncNames = [
        [T_STRING, '__construct'],
        [T_STRING, '__destruct'],
        [T_STRING, '__clone'],
    ];

    /**
     * @var array<string, int>
     */
    private $versionSpecificTypes = [
        'void' => 70100,
        'iterable' => 70100,
        'object' => 70200,
    ];

    /**
     * @var array<string, string>
     */
    private $scalarTypes = [
        'bool' => 'bool',
        'true' => 'bool',
        'false' => 'bool',
        'float' => 'float',
        'int' => 'int',
        'string' => 'string',
    ];

    /**
     * @var array<string, bool>
     */
    private $skippedTypes = [
        'mixed' => true,
        'resource' => true,
        'null' => true,
    ];

    /**
     * @var string
     */
    private $classRegex = '/^\\\\?[a-zA-Z_\\x7f-\\xff](?:\\\\?[a-zA-Z0-9_\\x7f-\\xff]+)*(?<array>\[\])*$/';

    /**
     * @var array<string, bool>
     */
    private $returnTypeCache = [];

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'EXPERIMENTAL: Takes `@return` annotation of non-mixed types and adjusts accordingly the function signature. Requires PHP >= 7.0.',
            [
                new VersionSpecificCodeSample(
                    '<?php

/** @return \My\Bar */
function my_foo()
{}
',
                    new VersionSpecification(70000)
                ),
                new VersionSpecificCodeSample(
                    '<?php

/** @return void */
function my_foo()
{}
',
                    new VersionSpecification(70100)
                ),
                new VersionSpecificCodeSample(
                    '<?php

/** @return object */
function my_foo()
{}
',
                    new VersionSpecification(70200)
                ),
                new VersionSpecificCodeSample(
                    '<?php
/** @return Foo */
function foo() {}
/** @return string */
function bar() {}
',
                    new VersionSpecification(70100),
                    ['scalar_types' => false]
                ),
            ],
            null,
            'This rule is EXPERIMENTAL and [1] is not covered with backward compatibility promise. [2] `@return` annotation is mandatory for the fixer to make changes, signatures of methods without it (no docblock, inheritdocs) will not be fixed. [3] Manual actions are required if inherited signatures are not properly documented. [4] `@inheritdocs` support is under construction.'
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        if (\PHP_VERSION_ID >= 70400 && $tokens->isTokenKindFound(T_FN)) {
            return true;
        }

        return \PHP_VERSION_ID >= 70000 && $tokens->isTokenKindFound(T_FUNCTION);
    }

    /**
     * {@inheritdoc}
     *
     * Must run before FullyQualifiedStrictTypesFixer, NoSuperfluousPhpdocTagsFixer, PhpdocAlignFixer, ReturnTypeDeclarationFixer.
     * Must run after CommentToPhpdocFixer, PhpdocIndentFixer, PhpdocScalarFixer, PhpdocScalarFixer, PhpdocToCommentFixer, PhpdocTypesFixer, PhpdocTypesFixer.
     */
    public function getPriority()
    {
        return 13;
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('scalar_types', 'Fix also scalar types; may have unexpected behaviour due to PHP bad type coercion system.'))
                ->setAllowedTypes(['bool'])
                ->setDefault(true)
                ->getOption(),
        ]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        for ($index = $tokens->count() - 1; 0 < $index; --$index) {
            if (
                !$tokens[$index]->isGivenKind(T_FUNCTION)
                && (\PHP_VERSION_ID < 70400 || !$tokens[$index]->isGivenKind(T_FN))
            ) {
                continue;
            }

            $funcName = $tokens->getNextMeaningfulToken($index);
            if ($tokens[$funcName]->equalsAny($this->excludeFuncNames, false)) {
                continue;
            }

            $returnTypeAnnotation = $this->findReturnAnnotations($tokens, $index);
            if (1 !== \count($returnTypeAnnotation)) {
                continue;
            }

            $returnTypeAnnotation = current($returnTypeAnnotation);
            $types = array_values($returnTypeAnnotation->getTypes());
            $typesCount = \count($types);

            if (1 > $typesCount || 2 < $typesCount) {
                continue;
            }

            $isNullable = false;
            $returnType = current($types);

            if (2 === $typesCount) {
                $null = $types[0];
                $returnType = $types[1];
                if ('null' !== $null) {
                    $null = $types[1];
                    $returnType = $types[0];
                }

                if ('null' !== $null) {
                    continue;
                }

                $isNullable = true;

                if (\PHP_VERSION_ID < 70100) {
                    continue;
                }

                if ('void' === $returnType) {
                    continue;
                }
            }

            if ('static' === $returnType) {
                $returnType = 'self';
            }

            if (isset($this->skippedTypes[$returnType])) {
                continue;
            }

            if (isset($this->versionSpecificTypes[$returnType]) && \PHP_VERSION_ID < $this->versionSpecificTypes[$returnType]) {
                continue;
            }

            if (isset($this->scalarTypes[$returnType])) {
                if (false === $this->configuration['scalar_types']) {
                    continue;
                }

                $returnType = $this->scalarTypes[$returnType];
            } else {
                if (1 !== Preg::match($this->classRegex, $returnType, $matches)) {
                    continue;
                }

                if (isset($matches['array'])) {
                    $returnType = 'array';
                }
            }

            $startIndex = $tokens->getNextTokenOfKind($index, ['{', ';']);

            if ($this->hasReturnTypeHint($tokens, $startIndex)) {
                continue;
            }

            if (!$this->isValidType($returnType)) {
                continue;
            }

            $this->fixFunctionDefinition($tokens, $startIndex, $isNullable, $returnType);
        }
    }

    /**
     * Determine whether the function already has a return type hint.
     *
     * @param int $index The index of the end of the function definition line, EG at { or ;
     *
     * @return bool
     */
    private function hasReturnTypeHint(Tokens $tokens, $index)
    {
        $endFuncIndex = $tokens->getPrevTokenOfKind($index, [')']);
        $nextIndex = $tokens->getNextMeaningfulToken($endFuncIndex);

        return $tokens[$nextIndex]->isGivenKind(CT::T_TYPE_COLON);
    }

    /**
     * @param int    $index      The index of the end of the function definition line, EG at { or ;
     * @param bool   $isNullable
     * @param string $returnType
     */
    private function fixFunctionDefinition(Tokens $tokens, $index, $isNullable, $returnType)
    {
        static $specialTypes = [
            'array' => [CT::T_ARRAY_TYPEHINT, 'array'],
            'callable' => [T_CALLABLE, 'callable'],
        ];
        $newTokens = [
            new Token([CT::T_TYPE_COLON, ':']),
            new Token([T_WHITESPACE, ' ']),
        ];
        if (true === $isNullable) {
            $newTokens[] = new Token([CT::T_NULLABLE_TYPE, '?']);
        }

        if (isset($specialTypes[$returnType])) {
            $newTokens[] = new Token($specialTypes[$returnType]);
        } else {
            foreach (explode('\\', $returnType) as $nsIndex => $value) {
                if (0 === $nsIndex && '' === $value) {
                    continue;
                }

                if (0 < $nsIndex) {
                    $newTokens[] = new Token([T_NS_SEPARATOR, '\\']);
                }
                $newTokens[] = new Token([T_STRING, $value]);
            }
        }

        $endFuncIndex = $tokens->getPrevTokenOfKind($index, [')']);
        $tokens->insertAt($endFuncIndex + 1, $newTokens);
    }

    /**
     * Find all the return annotations in the function's PHPDoc comment.
     *
     * @param int $index The index of the function token
     *
     * @return Annotation[]
     */
    private function findReturnAnnotations(Tokens $tokens, $index)
    {
        do {
            $index = $tokens->getPrevNonWhitespace($index);
        } while ($tokens[$index]->isGivenKind([
            T_COMMENT,
            T_ABSTRACT,
            T_FINAL,
            T_PRIVATE,
            T_PROTECTED,
            T_PUBLIC,
            T_STATIC,
        ]));

        if (!$tokens[$index]->isGivenKind(T_DOC_COMMENT)) {
            return [];
        }

        $doc = new DocBlock($tokens[$index]->getContent());

        return $doc->getAnnotationsOfType('return');
    }

    /**
     * @param string $returnType
     *
     * @return bool
     */
    private function isValidType($returnType)
    {
        if (!\array_key_exists($returnType, $this->returnTypeCache)) {
            try {
                Tokens::fromCode(sprintf('<?php function f():%s {}', $returnType));
                $this->returnTypeCache[$returnType] = true;
            } catch (\ParseError $e) {
                $this->returnTypeCache[$returnType] = false;
            }
        }

        return $this->returnTypeCache[$returnType];
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\FunctionNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Analyzer\Analysis\NamespaceAnalysis;
use PhpCsFixer\Tokenizer\Analyzer\FunctionsAnalyzer;
use PhpCsFixer\Tokenizer\Analyzer\NamespacesAnalyzer;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException;

/**
 * @author Andreas Möller <am@localheinz.com>
 * @author SpacePossum
 */
final class NativeFunctionInvocationFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * @internal
     */
    const SET_ALL = '@all';

    /**
     * Subset of SET_INTERNAL.
     *
     * Change function call to functions known to be optimized by the Zend engine.
     * For details:
     * - @see https://github.com/php/php-src/blob/php-7.2.6/Zend/zend_compile.c "zend_try_compile_special_func"
     * - @see https://github.com/php/php-src/blob/php-7.2.6/ext/opcache/Optimizer/pass1_5.c
     *
     * @internal
     */
    const SET_COMPILER_OPTIMIZED = '@compiler_optimized';

    /**
     * @internal
     */
    const SET_INTERNAL = '@internal';

    /**
     * @var callable
     */
    private $functionFilter;

    public function configure(array $configuration = null)
    {
        parent::configure($configuration);

        $this->functionFilter = $this->getFunctionFilter();
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Add leading `\` before function invocation to speed up resolving.',
            [
                new CodeSample(
                    '<?php

function baz($options)
{
    if (!array_key_exists("foo", $options)) {
        throw new \InvalidArgumentException();
    }

    return json_encode($options);
}
'
                ),
                new CodeSample(
                    '<?php

function baz($options)
{
    if (!array_key_exists("foo", $options)) {
        throw new \InvalidArgumentException();
    }

    return json_encode($options);
}
',
                    [
                        'exclude' => [
                            'json_encode',
                        ],
                    ]
                ),
                new CodeSample(
                    '<?php
namespace space1 {
    echo count([1]);
}
namespace {
    echo count([1]);
}
',
                    ['scope' => 'all']
                ),
                new CodeSample(
                    '<?php
namespace space1 {
    echo count([1]);
}
namespace {
    echo count([1]);
}
',
                    ['scope' => 'namespaced']
                ),
                new CodeSample(
                    '<?php
myGlobalFunction();
count();
',
                    ['include' => ['myGlobalFunction']]
                ),
                new CodeSample(
                    '<?php
myGlobalFunction();
count();
',
                    ['include' => ['@all']]
                ),
                new CodeSample(
                    '<?php
myGlobalFunction();
count();
',
                    ['include' => ['@internal']]
                ),
                new CodeSample(
                    '<?php
$a .= str_repeat($a, 4);
$c = get_class($d);
',
                    ['include' => ['@compiler_optimized']]
                ),
            ],
            null,
            'Risky when any of the functions are overridden.'
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before GlobalNamespaceImportFixer.
     * Must run after StrictParamFixer.
     */
    public function getPriority()
    {
        return 10;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_STRING);
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        if ('all' === $this->configuration['scope']) {
            $this->fixFunctionCalls($tokens, $this->functionFilter, 0, \count($tokens) - 1, false);

            return;
        }

        $namespaces = (new NamespacesAnalyzer())->getDeclarations($tokens);

        // 'scope' is 'namespaced' here
        /** @var NamespaceAnalysis $namespace */
        foreach (array_reverse($namespaces) as $namespace) {
            $this->fixFunctionCalls($tokens, $this->functionFilter, $namespace->getScopeStartIndex(), $namespace->getScopeEndIndex(), '' === $namespace->getFullName());
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('exclude', 'List of functions to ignore.'))
                ->setAllowedTypes(['array'])
                ->setAllowedValues([static function (array $value) {
                    foreach ($value as $functionName) {
                        if (!\is_string($functionName) || '' === trim($functionName) || trim($functionName) !== $functionName) {
                            throw new InvalidOptionsException(sprintf(
                                'Each element must be a non-empty, trimmed string, got "%s" instead.',
                                \is_object($functionName) ? \get_class($functionName) : \gettype($functionName)
                            ));
                        }
                    }

                    return true;
                }])
                ->setDefault([])
                ->getOption(),
            (new FixerOptionBuilder('include', 'List of function names or sets to fix. Defined sets are `@internal` (all native functions), `@all` (all global functions) and `@compiler_optimized` (functions that are specially optimized by Zend).'))
                ->setAllowedTypes(['array'])
                ->setAllowedValues([static function (array $value) {
                    foreach ($value as $functionName) {
                        if (!\is_string($functionName) || '' === trim($functionName) || trim($functionName) !== $functionName) {
                            throw new InvalidOptionsException(sprintf(
                                'Each element must be a non-empty, trimmed string, got "%s" instead.',
                                \is_object($functionName) ? \get_class($functionName) : \gettype($functionName)
                            ));
                        }

                        $sets = [
                            self::SET_ALL,
                            self::SET_INTERNAL,
                            self::SET_COMPILER_OPTIMIZED,
                        ];

                        if ('@' === $functionName[0] && !\in_array($functionName, $sets, true)) {
                            throw new InvalidOptionsException(sprintf('Unknown set "%s", known sets are "%s".', $functionName, implode('", "', $sets)));
                        }
                    }

                    return true;
                }])
                ->setDefault([self::SET_INTERNAL])
                ->getOption(),
            (new FixerOptionBuilder('scope', 'Only fix function calls that are made within a namespace or fix all.'))
                ->setAllowedValues(['all', 'namespaced'])
                ->setDefault('all')
                ->getOption(),
            (new FixerOptionBuilder('strict', 'Whether leading `\` of function call not meant to have it should be removed.'))
                ->setAllowedTypes(['bool'])
                ->setDefault(false) // @TODO: 3.0 change to true as default
                ->getOption(),
        ]);
    }

    /**
     * @param int  $start
     * @param int  $end
     * @param bool $tryToRemove
     */
    private function fixFunctionCalls(Tokens $tokens, callable $functionFilter, $start, $end, $tryToRemove)
    {
        $functionsAnalyzer = new FunctionsAnalyzer();

        $insertAtIndexes = [];
        for ($index = $start; $index < $end; ++$index) {
            if (!$functionsAnalyzer->isGlobalFunctionCall($tokens, $index)) {
                continue;
            }

            $prevIndex = $tokens->getPrevMeaningfulToken($index);

            if (!$functionFilter($tokens[$index]->getContent()) || $tryToRemove) {
                if (!$this->configuration['strict']) {
                    continue;
                }
                if ($tokens[$prevIndex]->isGivenKind(T_NS_SEPARATOR)) {
                    $tokens->clearTokenAndMergeSurroundingWhitespace($prevIndex);
                }

                continue;
            }

            if ($tokens[$prevIndex]->isGivenKind(T_NS_SEPARATOR)) {
                continue; // do not bother if previous token is already namespace separator
            }

            $insertAtIndexes[] = $index;
        }

        foreach (array_reverse($insertAtIndexes) as $index) {
            $tokens->insertAt($index, new Token([T_NS_SEPARATOR, '\\']));
        }
    }

    /**
     * @return callable
     */
    private function getFunctionFilter()
    {
        $exclude = $this->normalizeFunctionNames($this->configuration['exclude']);

        if (\in_array(self::SET_ALL, $this->configuration['include'], true)) {
            if (\count($exclude) > 0) {
                return static function ($functionName) use ($exclude) {
                    return !isset($exclude[strtolower($functionName)]);
                };
            }

            return static function () {
                return true;
            };
        }

        $include = [];
        if (\in_array(self::SET_INTERNAL, $this->configuration['include'], true)) {
            $include = $this->getAllInternalFunctionsNormalized();
        } elseif (\in_array(self::SET_COMPILER_OPTIMIZED, $this->configuration['include'], true)) {
            $include = $this->getAllCompilerOptimizedFunctionsNormalized(); // if `@internal` is set all compiler optimized function are already loaded
        }

        foreach ($this->configuration['include'] as $additional) {
            if ('@' !== $additional[0]) {
                $include[strtolower($additional)] = true;
            }
        }

        if (\count($exclude) > 0) {
            return static function ($functionName) use ($include, $exclude) {
                return isset($include[strtolower($functionName)]) && !isset($exclude[strtolower($functionName)]);
            };
        }

        return static function ($functionName) use ($include) {
            return isset($include[strtolower($functionName)]);
        };
    }

    /**
     * @return array<string, true> normalized function names of which the PHP compiler optimizes
     */
    private function getAllCompilerOptimizedFunctionsNormalized()
    {
        return $this->normalizeFunctionNames([
            // @see https://github.com/php/php-src/blob/PHP-7.4/Zend/zend_compile.c "zend_try_compile_special_func"
            'array_key_exists',
            'array_slice',
            'assert',
            'boolval',
            'call_user_func',
            'call_user_func_array',
            'chr',
            'count',
            'defined',
            'doubleval',
            'floatval',
            'func_get_args',
            'func_num_args',
            'get_called_class',
            'get_class',
            'gettype',
            'in_array',
            'intval',
            'is_array',
            'is_bool',
            'is_double',
            'is_float',
            'is_int',
            'is_integer',
            'is_long',
            'is_null',
            'is_object',
            'is_real',
            'is_resource',
            'is_string',
            'ord',
            'strlen',
            'strval',
            // @see https://github.com/php/php-src/blob/php-7.2.6/ext/opcache/Optimizer/pass1_5.c
            'constant',
            'define',
            'dirname',
            'extension_loaded',
            'function_exists',
            'is_callable',
        ]);
    }

    /**
     * @return array<string, true> normalized function names of all internal defined functions
     */
    private function getAllInternalFunctionsNormalized()
    {
        return $this->normalizeFunctionNames(get_defined_functions()['internal']);
    }

    /**
     * @param string[] $functionNames
     *
     * @return array<string, true> all function names lower cased
     */
    private function normalizeFunctionNames(array $functionNames)
    {
        foreach ($functionNames as $index => $functionName) {
            $functionNames[strtolower($functionName)] = true;
            unset($functionNames[$index]);
        }

        return $functionNames;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\FunctionNotation;

use PhpCsFixer\AbstractFopenFlagFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author SpacePossum
 */
final class FopenFlagsFixer extends AbstractFopenFlagFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'The flags in `fopen` calls must omit `t`, and `b` must be omitted or included consistently.',
            [
                new CodeSample("<?php\n\$a = fopen(\$foo, 'rwt');\n"),
                new CodeSample("<?php\n\$a = fopen(\$foo, 'rwt');\n", ['b_mode' => false]),
            ],
            null,
            'Risky when the function `fopen` is overridden.'
        );
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('b_mode', 'The `b` flag must be used (`true`) or omitted (`false`).'))
                ->setAllowedTypes(['bool'])
                ->setDefault(true)
                ->getOption(),
        ]);
    }

    /**
     * @param int $argumentStartIndex
     * @param int $argumentEndIndex
     */
    protected function fixFopenFlagToken(Tokens $tokens, $argumentStartIndex, $argumentEndIndex)
    {
        $argumentFlagIndex = null;

        for ($i = $argumentStartIndex; $i <= $argumentEndIndex; ++$i) {
            if ($tokens[$i]->isGivenKind([T_WHITESPACE, T_COMMENT, T_DOC_COMMENT])) {
                continue;
            }

            if (null !== $argumentFlagIndex) {
                return; // multiple meaningful tokens found, no candidate for fixing
            }

            $argumentFlagIndex = $i;
        }

        // check if second argument is candidate
        if (null === $argumentFlagIndex || !$tokens[$argumentFlagIndex]->isGivenKind(T_CONSTANT_ENCAPSED_STRING)) {
            return;
        }

        $content = $tokens[$argumentFlagIndex]->getContent();
        $contentQuote = $content[0]; // `'`, `"`, `b` or `B`

        if ('b' === $contentQuote || 'B' === $contentQuote) {
            $binPrefix = $contentQuote;
            $contentQuote = $content[1]; // `'` or `"`
            $mode = substr($content, 2, -1);
        } else {
            $binPrefix = '';
            $mode = substr($content, 1, -1);
        }

        if (false === $this->isValidModeString($mode)) {
            return;
        }

        $mode = str_replace('t', '', $mode);
        if ($this->configuration['b_mode']) {
            if (false === strpos($mode, 'b')) {
                $mode .= 'b';
            }
        } else {
            $mode = str_replace('b', '', $mode);
        }

        $newContent = $binPrefix.$contentQuote.$mode.$contentQuote;

        if ($content !== $newContent) {
            $tokens[$argumentFlagIndex] = new Token([T_CONSTANT_ENCAPSED_STRING, $newContent]);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\FunctionNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\FixerDefinition\VersionSpecification;
use PhpCsFixer\FixerDefinition\VersionSpecificCodeSample;
use PhpCsFixer\Tokenizer\Analyzer\Analysis\ArgumentAnalysis;
use PhpCsFixer\Tokenizer\Analyzer\FunctionsAnalyzer;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author HypeMC
 */
final class NullableTypeDeclarationForDefaultNullValueFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Adds or removes `?` before type declarations for parameters with a default `null` value.',
            [
                new VersionSpecificCodeSample(
                    "<?php\nfunction sample(string \$str = null)\n{}\n",
                    new VersionSpecification(70100)
                ),
                new VersionSpecificCodeSample(
                    "<?php\nfunction sample(?string \$str = null)\n{}\n",
                    new VersionSpecification(70100),
                    ['use_nullable_type_declaration' => false]
                ),
            ],
            'Rule is applied only in a PHP 7.1+ environment.'
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        if (\PHP_VERSION_ID < 70100) {
            return false;
        }

        if (!$tokens->isTokenKindFound(T_VARIABLE)) {
            return false;
        }

        if (\PHP_VERSION_ID >= 70400 && $tokens->isTokenKindFound(T_FN)) {
            return true;
        }

        return $tokens->isTokenKindFound(T_FUNCTION);
    }

    /**
     * {@inheritdoc}
     *
     * Must run before NoUnreachableDefaultArgumentValueFixer.
     */
    public function getPriority()
    {
        return 1;
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('use_nullable_type_declaration', 'Whether to add or remove `?` before type declarations for parameters with a default `null` value.'))
                ->setAllowedTypes(['bool'])
                ->setDefault(true)
                ->getOption(),
        ]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $functionsAnalyzer = new FunctionsAnalyzer();

        $tokenKinds = [T_FUNCTION];
        if (\PHP_VERSION_ID >= 70400) {
            $tokenKinds[] = T_FN;
        }

        for ($index = $tokens->count() - 1; $index >= 0; --$index) {
            $token = $tokens[$index];

            if (!$token->isGivenKind($tokenKinds)) {
                continue;
            }

            $arguments = $functionsAnalyzer->getFunctionArguments($tokens, $index);

            $this->fixFunctionParameters($tokens, $arguments);
        }
    }

    /**
     * @param ArgumentAnalysis[] $arguments
     */
    private function fixFunctionParameters(Tokens $tokens, array $arguments)
    {
        foreach (array_reverse($arguments) as $argumentInfo) {
            // If the parameter doesn't have a type declaration or a default value null we can continue
            if (
                !$argumentInfo->hasTypeAnalysis()
                || !$argumentInfo->hasDefault()
                || 'null' !== strtolower($argumentInfo->getDefault())
            ) {
                continue;
            }

            $argumentTypeInfo = $argumentInfo->getTypeAnalysis();
            if (true === $this->configuration['use_nullable_type_declaration']) {
                if (!$argumentTypeInfo->isNullable()) {
                    $tokens->insertAt($argumentTypeInfo->getStartIndex(), new Token([CT::T_NULLABLE_TYPE, '?']));
                }
            } else {
                if ($argumentTypeInfo->isNullable()) {
                    $tokens->removeTrailingWhitespace($argumentTypeInfo->getStartIndex());
                    $tokens->clearTokenAndMergeSurroundingWhitespace($argumentTypeInfo->getStartIndex());
                }
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\FunctionNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Mark Scherer
 * @author Lucas Manzke <lmanzke@outlook.com>
 * @author Gregor Harlan <gharlan@web.de>
 */
final class NoUnreachableDefaultArgumentValueFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'In function arguments there must not be arguments with default values before non-default ones.',
            [
                new CodeSample(
                    '<?php
function example($foo = "two words", $bar) {}
'
                ),
            ],
            null,
            'Modifies the signature of functions; therefore risky when using systems (such as some Symfony components) that rely on those (for example through reflection).'
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run after NullableTypeDeclarationForDefaultNullValueFixer.
     */
    public function getPriority()
    {
        return 0;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        if (\PHP_VERSION_ID >= 70400 && $tokens->isTokenKindFound(T_FN)) {
            return true;
        }

        return $tokens->isTokenKindFound(T_FUNCTION);
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        for ($i = 0, $l = $tokens->count(); $i < $l; ++$i) {
            if (
                !$tokens[$i]->isGivenKind(T_FUNCTION)
                && (\PHP_VERSION_ID < 70400 || !$tokens[$i]->isGivenKind(T_FN))
            ) {
                continue;
            }

            $startIndex = $tokens->getNextTokenOfKind($i, ['(']);
            $i = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $startIndex);

            $this->fixFunctionDefinition($tokens, $startIndex, $i);
        }
    }

    /**
     * @param int $startIndex
     * @param int $endIndex
     */
    private function fixFunctionDefinition(Tokens $tokens, $startIndex, $endIndex)
    {
        $lastArgumentIndex = $this->getLastNonDefaultArgumentIndex($tokens, $startIndex, $endIndex);

        if (!$lastArgumentIndex) {
            return;
        }

        for ($i = $lastArgumentIndex; $i > $startIndex; --$i) {
            $token = $tokens[$i];

            if ($token->isGivenKind(T_VARIABLE)) {
                $lastArgumentIndex = $i;

                continue;
            }

            if (!$token->equals('=') || $this->isNonNullableTypehintedNullableVariable($tokens, $i)) {
                continue;
            }

            $endIndex = $tokens->getPrevTokenOfKind($lastArgumentIndex, [',']);
            $endIndex = $tokens->getPrevMeaningfulToken($endIndex);
            $this->removeDefaultArgument($tokens, $i, $endIndex);
        }
    }

    /**
     * @param int $startIndex
     * @param int $endIndex
     *
     * @return null|int
     */
    private function getLastNonDefaultArgumentIndex(Tokens $tokens, $startIndex, $endIndex)
    {
        for ($i = $endIndex - 1; $i > $startIndex; --$i) {
            $token = $tokens[$i];

            if ($token->equals('=')) {
                $i = $tokens->getPrevMeaningfulToken($i);

                continue;
            }

            if ($token->isGivenKind(T_VARIABLE) && !$this->isEllipsis($tokens, $i)) {
                return $i;
            }
        }

        return null;
    }

    /**
     * @param int $variableIndex
     *
     * @return bool
     */
    private function isEllipsis(Tokens $tokens, $variableIndex)
    {
        return $tokens[$tokens->getPrevMeaningfulToken($variableIndex)]->isGivenKind(T_ELLIPSIS);
    }

    /**
     * @param int $startIndex
     * @param int $endIndex
     */
    private function removeDefaultArgument(Tokens $tokens, $startIndex, $endIndex)
    {
        for ($i = $startIndex; $i <= $endIndex;) {
            $tokens->clearTokenAndMergeSurroundingWhitespace($i);
            $this->clearWhitespacesBeforeIndex($tokens, $i);
            $i = $tokens->getNextMeaningfulToken($i);
        }
    }

    /**
     * @param int $index Index of "="
     *
     * @return bool
     */
    private function isNonNullableTypehintedNullableVariable(Tokens $tokens, $index)
    {
        $nextToken = $tokens[$tokens->getNextMeaningfulToken($index)];

        if (!$nextToken->equals([T_STRING, 'null'], false)) {
            return false;
        }

        $variableIndex = $tokens->getPrevMeaningfulToken($index);

        $searchTokens = [',', '(', [T_STRING], [CT::T_ARRAY_TYPEHINT], [T_CALLABLE]];
        $typehintKinds = [T_STRING, CT::T_ARRAY_TYPEHINT, T_CALLABLE];

        $prevIndex = $tokens->getPrevTokenOfKind($variableIndex, $searchTokens);

        if (!$tokens[$prevIndex]->isGivenKind($typehintKinds)) {
            return false;
        }

        return !$tokens[$tokens->getPrevMeaningfulToken($prevIndex)]->isGivenKind(CT::T_NULLABLE_TYPE);
    }

    /**
     * @param int $index
     */
    private function clearWhitespacesBeforeIndex(Tokens $tokens, $index)
    {
        $prevIndex = $tokens->getNonEmptySibling($index, -1);
        if (!$tokens[$prevIndex]->isWhitespace()) {
            return;
        }

        $prevNonWhiteIndex = $tokens->getPrevNonWhitespace($prevIndex);
        if (null === $prevNonWhiteIndex || !$tokens[$prevNonWhiteIndex]->isComment()) {
            $tokens->clearTokenAndMergeSurroundingWhitespace($prevIndex);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\FunctionNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\DocBlock\Annotation;
use PhpCsFixer\DocBlock\DocBlock;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\FixerDefinition\VersionSpecification;
use PhpCsFixer\FixerDefinition\VersionSpecificCodeSample;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Jan Gantzert <jan@familie-gantzert.de>
 */
final class PhpdocToParamTypeFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /** @internal */
    const CLASS_REGEX = '/^\\\\?[a-zA-Z_\\x7f-\\xff](?:\\\\?[a-zA-Z0-9_\\x7f-\\xff]+)*(?<array>\[\])*$/';

    /** @internal */
    const MINIMUM_PHP_VERSION = 70000;

    /**
     * @var array{int, string}[]
     */
    private $blacklistFuncNames = [
        [T_STRING, '__clone'],
        [T_STRING, '__destruct'],
    ];

    /**
     * @var array<string, true>
     */
    private $skippedTypes = [
        'mixed' => true,
        'resource' => true,
        'static' => true,
        'void' => true,
    ];

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'EXPERIMENTAL: Takes `@param` annotations of non-mixed types and adjusts accordingly the function signature. Requires PHP >= 7.0.',
            [
                new VersionSpecificCodeSample(
                    '<?php

/** @param string $bar */
function my_foo($bar)
{}
',
                    new VersionSpecification(70000)
                ),
                new VersionSpecificCodeSample(
                    '<?php

/** @param string|null $bar */
function my_foo($bar)
{}
',
                    new VersionSpecification(70100)
                ),
            ],
            null,
            'This rule is EXPERIMENTAL and [1] is not covered with backward compatibility promise. [2] `@param` annotation is mandatory for the fixer to make changes, signatures of methods without it (no docblock, inheritdocs) will not be fixed. [3] Manual actions are required if inherited signatures are not properly documented.'
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return \PHP_VERSION_ID >= self::MINIMUM_PHP_VERSION && $tokens->isTokenKindFound(T_FUNCTION);
    }

    /**
     * {@inheritdoc}
     *
     * Must run before NoSuperfluousPhpdocTagsFixer, PhpdocAlignFixer.
     * Must run after CommentToPhpdocFixer, PhpdocIndentFixer, PhpdocScalarFixer, PhpdocToCommentFixer, PhpdocTypesFixer.
     */
    public function getPriority()
    {
        return 8;
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('scalar_types', 'Fix also scalar types; may have unexpected behaviour due to PHP bad type coercion system.'))
                ->setAllowedTypes(['bool'])
                ->setDefault(true)
                ->getOption(),
        ]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        for ($index = $tokens->count() - 1; 0 < $index; --$index) {
            if (!$tokens[$index]->isGivenKind(T_FUNCTION)) {
                continue;
            }

            $funcName = $tokens->getNextMeaningfulToken($index);
            if ($tokens[$funcName]->equalsAny($this->blacklistFuncNames, false)) {
                continue;
            }

            $paramTypeAnnotations = $this->findParamAnnotations($tokens, $index);

            foreach ($paramTypeAnnotations as $paramTypeAnnotation) {
                if (\PHP_VERSION_ID < self::MINIMUM_PHP_VERSION) {
                    continue;
                }

                $types = array_values($paramTypeAnnotation->getTypes());
                $paramType = current($types);

                if (isset($this->skippedTypes[$paramType])) {
                    continue;
                }

                $hasIterable = false;
                $hasNull = false;
                $hasArray = false;
                $hasString = false;
                $hasInt = false;
                $hasFloat = false;
                $hasBool = false;
                $hasCallable = false;
                $hasObject = false;
                $minimumTokenPhpVersion = self::MINIMUM_PHP_VERSION;

                foreach ($types as $key => $type) {
                    if (1 !== Preg::match(self::CLASS_REGEX, $type, $matches)) {
                        continue;
                    }

                    if (isset($matches['array'])) {
                        $hasArray = true;
                        unset($types[$key]);
                    }

                    if ('iterable' === $type) {
                        $hasIterable = true;
                        unset($types[$key]);
                        $minimumTokenPhpVersion = 70100;
                    }

                    if ('null' === $type) {
                        $hasNull = true;
                        unset($types[$key]);
                        $minimumTokenPhpVersion = 70100;
                    }

                    if ('string' === $type) {
                        $hasString = true;
                        unset($types[$key]);
                    }

                    if ('int' === $type) {
                        $hasInt = true;
                        unset($types[$key]);
                    }

                    if ('float' === $type) {
                        $hasFloat = true;
                        unset($types[$key]);
                    }

                    if ('bool' === $type) {
                        $hasBool = true;
                        unset($types[$key]);
                    }

                    if ('callable' === $type) {
                        $hasCallable = true;
                        unset($types[$key]);
                    }

                    if ('array' === $type) {
                        $hasArray = true;
                        unset($types[$key]);
                    }

                    if ('object' === $type) {
                        $hasObject = true;
                        unset($types[$key]);
                        $minimumTokenPhpVersion = 70200;
                    }
                }

                if (\PHP_VERSION_ID < $minimumTokenPhpVersion) {
                    continue;
                }

                $typesCount = \count($types);

                if (1 < $typesCount) {
                    continue;
                }

                if (0 === $typesCount) {
                    $paramType = '';
                } elseif (1 === $typesCount) {
                    $paramType = array_shift($types);
                }

                $startIndex = $tokens->getNextTokenOfKind($index, ['(']) + 1;
                $variableIndex = $this->findCorrectVariable($tokens, $startIndex - 1, $paramTypeAnnotation);

                if (null === $variableIndex) {
                    continue;
                }

                $byRefIndex = $tokens->getPrevMeaningfulToken($variableIndex);
                if ($tokens[$byRefIndex]->equals('&')) {
                    $variableIndex = $byRefIndex;
                }

                if (!('(' === $tokens[$variableIndex - 1]->getContent()) && $this->hasParamTypeHint($tokens, $variableIndex - 2)) {
                    continue;
                }

                $this->fixFunctionDefinition(
                    $paramType,
                    $tokens,
                    $variableIndex,
                    $hasNull,
                    $hasArray,
                    $hasIterable,
                    $hasString,
                    $hasInt,
                    $hasFloat,
                    $hasBool,
                    $hasCallable,
                    $hasObject
                );
            }
        }
    }

    /**
     * Find all the param annotations in the function's PHPDoc comment.
     *
     * @param int $index The index of the function token
     *
     * @return Annotation[]
     */
    private function findParamAnnotations(Tokens $tokens, $index)
    {
        do {
            $index = $tokens->getPrevNonWhitespace($index);
        } while ($tokens[$index]->isGivenKind([
            T_COMMENT,
            T_ABSTRACT,
            T_FINAL,
            T_PRIVATE,
            T_PROTECTED,
            T_PUBLIC,
            T_STATIC,
        ]));

        if (!$tokens[$index]->isGivenKind(T_DOC_COMMENT)) {
            return [];
        }

        $doc = new DocBlock($tokens[$index]->getContent());

        return $doc->getAnnotationsOfType('param');
    }

    /**
     * @param int        $index
     * @param Annotation $paramTypeAnnotation
     *
     * @return null|int
     */
    private function findCorrectVariable(Tokens $tokens, $index, $paramTypeAnnotation)
    {
        $nextFunction = $tokens->getNextTokenOfKind($index, [[T_FUNCTION]]);
        $variableIndex = $tokens->getNextTokenOfKind($index, [[T_VARIABLE]]);

        if (\is_int($nextFunction) && $variableIndex > $nextFunction) {
            return null;
        }

        if (!isset($tokens[$variableIndex])) {
            return null;
        }

        $variableToken = $tokens[$variableIndex]->getContent();
        Preg::match('/@param\s*[^\s!<]+\s*([^\s]+)/', $paramTypeAnnotation->getContent(), $paramVariable);
        if (isset($paramVariable[1]) && $paramVariable[1] === $variableToken) {
            return $variableIndex;
        }

        return $this->findCorrectVariable($tokens, $index + 1, $paramTypeAnnotation);
    }

    /**
     * Determine whether the function already has a param type hint.
     *
     * @param int $index The index of the end of the function definition line, EG at { or ;
     *
     * @return bool
     */
    private function hasParamTypeHint(Tokens $tokens, $index)
    {
        return $tokens[$index]->isGivenKind([T_STRING, T_NS_SEPARATOR, CT::T_ARRAY_TYPEHINT, T_CALLABLE, CT::T_NULLABLE_TYPE]);
    }

    /**
     * @param string $paramType
     * @param int    $index       The index of the end of the function definition line, EG at { or ;
     * @param bool   $hasNull
     * @param bool   $hasArray
     * @param bool   $hasIterable
     * @param bool   $hasString
     * @param bool   $hasInt
     * @param bool   $hasFloat
     * @param bool   $hasBool
     * @param bool   $hasCallable
     * @param bool   $hasObject
     */
    private function fixFunctionDefinition(
        $paramType,
        Tokens $tokens,
        $index,
        $hasNull,
        $hasArray,
        $hasIterable,
        $hasString,
        $hasInt,
        $hasFloat,
        $hasBool,
        $hasCallable,
        $hasObject
    ) {
        $newTokens = [];

        if (true === $hasIterable && true === $hasArray) {
            $newTokens[] = new Token([CT::T_ARRAY_TYPEHINT, 'array']);
        } elseif (true === $hasIterable) {
            $newTokens[] = new Token([T_STRING, 'iterable']);
        } elseif (true === $hasArray) {
            $newTokens[] = new Token([CT::T_ARRAY_TYPEHINT, 'array']);
        } elseif (true === $hasString) {
            $newTokens[] = new Token([T_STRING, 'string']);
        } elseif (true === $hasInt) {
            $newTokens[] = new Token([T_STRING, 'int']);
        } elseif (true === $hasFloat) {
            $newTokens[] = new Token([T_STRING, 'float']);
        } elseif (true === $hasBool) {
            $newTokens[] = new Token([T_STRING, 'bool']);
        } elseif (true === $hasCallable) {
            $newTokens[] = new Token([T_CALLABLE, 'callable']);
        } elseif (true === $hasObject) {
            $newTokens[] = new Token([T_STRING, 'object']);
        }

        if ('' !== $paramType && [] !== $newTokens) {
            return;
        }

        foreach (explode('\\', $paramType) as $nsIndex => $value) {
            if (0 === $nsIndex && '' === $value) {
                continue;
            }

            if (0 < $nsIndex) {
                $newTokens[] = new Token([T_NS_SEPARATOR, '\\']);
            }
            $newTokens[] = new Token([T_STRING, $value]);
        }

        if (true === $hasNull) {
            array_unshift($newTokens, new Token([CT::T_NULLABLE_TYPE, '?']));
        }

        $newTokens[] = new Token([T_WHITESPACE, ' ']);
        $tokens->insertAt($index, $newTokens);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\FunctionNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Analyzer\ArgumentsAnalyzer;
use PhpCsFixer\Tokenizer\Analyzer\FunctionsAnalyzer;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Kuba Werłos <werlos@gmail.com>
 */
final class ImplodeCallFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Function `implode` must be called with 2 arguments in the documented order.',
            [
                new CodeSample("<?php\nimplode(\$pieces, '');\n"),
                new CodeSample("<?php\nimplode(\$pieces);\n"),
            ],
            null,
            'Risky when the function `implode` is overridden.'
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_STRING);
    }

    /**
     * {@inheritdoc}
     *
     * Must run before MethodArgumentSpaceFixer.
     * Must run after NoAliasFunctionsFixer.
     */
    public function getPriority()
    {
        return -1;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $functionsAnalyzer = new FunctionsAnalyzer();

        for ($index = \count($tokens) - 1; $index > 0; --$index) {
            if (!$tokens[$index]->equals([T_STRING, 'implode'], false)) {
                continue;
            }

            if (!$functionsAnalyzer->isGlobalFunctionCall($tokens, $index)) {
                continue;
            }

            $argumentsIndices = $this->getArgumentIndices($tokens, $index);

            if (1 === \count($argumentsIndices)) {
                $firstArgumentIndex = key($argumentsIndices);
                $tokens->insertAt($firstArgumentIndex, [
                    new Token([T_CONSTANT_ENCAPSED_STRING, "''"]),
                    new Token(','),
                    new Token([T_WHITESPACE, ' ']),
                ]);

                continue;
            }

            if (2 === \count($argumentsIndices)) {
                list($firstArgumentIndex, $secondArgumentIndex) = array_keys($argumentsIndices);

                // If the first argument is string we have nothing to do
                if ($tokens[$firstArgumentIndex]->isGivenKind(T_CONSTANT_ENCAPSED_STRING)) {
                    continue;
                }
                // If the second argument is not string we cannot make a swap
                if (!$tokens[$secondArgumentIndex]->isGivenKind(T_CONSTANT_ENCAPSED_STRING)) {
                    continue;
                }

                // collect tokens from first argument
                $firstArgumentEndIndex = $argumentsIndices[key($argumentsIndices)];
                $newSecondArgumentTokens = [];
                for ($i = key($argumentsIndices); $i <= $firstArgumentEndIndex; ++$i) {
                    $newSecondArgumentTokens[] = clone $tokens[$i];
                    $tokens->clearAt($i);
                }

                $tokens->insertAt($firstArgumentIndex, clone $tokens[$secondArgumentIndex]);

                // insert above increased the second argument index
                ++$secondArgumentIndex;
                $tokens->clearAt($secondArgumentIndex);
                $tokens->insertAt($secondArgumentIndex, $newSecondArgumentTokens);
            }
        }
    }

    /**
     * @param int $functionNameIndex
     *
     * @return array<int, int> In the format: startIndex => endIndex
     */
    private function getArgumentIndices(Tokens $tokens, $functionNameIndex)
    {
        $argumentsAnalyzer = new ArgumentsAnalyzer();

        $openParenthesis = $tokens->getNextTokenOfKind($functionNameIndex, ['(']);
        $closeParenthesis = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $openParenthesis);

        $indices = [];

        foreach ($argumentsAnalyzer->getArguments($tokens, $openParenthesis, $closeParenthesis) as $startIndexCandidate => $endIndex) {
            $indices[$tokens->getNextMeaningfulToken($startIndexCandidate - 1)] = $tokens->getPrevMeaningfulToken($endIndex + 1);
        }

        return $indices;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\FunctionNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Kuba Werłos <werlos@gmail.com>
 */
final class SingleLineThrowFixer extends AbstractFixer
{
    /**
     * @internal
     */
    const REMOVE_WHITESPACE_AFTER_TOKENS = ['['];

    /**
     * @internal
     */
    const REMOVE_WHITESPACE_AROUND_TOKENS = ['(', [T_OBJECT_OPERATOR], [T_DOUBLE_COLON]];

    /**
     * @internal
     */
    const REMOVE_WHITESPACE_BEFORE_TOKENS = [')',  ']', ',', ';'];

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Throwing exception must be done in single line.',
            [
                new CodeSample("<?php\nthrow new Exception(\n    'Error',\n    500\n);\n"),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_THROW);
    }

    /**
     * {@inheritdoc}
     *
     * Must run before ConcatSpaceFixer.
     */
    public function getPriority()
    {
        // must be fun before ConcatSpaceFixer
        return 1;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        for ($index = 0, $count = $tokens->count(); $index < $count; ++$index) {
            if (!$tokens[$index]->isGivenKind(T_THROW)) {
                continue;
            }

            /** @var int $openingBraceCandidateIndex */
            $openingBraceCandidateIndex = $tokens->getNextTokenOfKind($index, [';', '(']);

            while ($tokens[$openingBraceCandidateIndex]->equals('(')) {
                /** @var int $closingBraceIndex */
                $closingBraceIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $openingBraceCandidateIndex);
                /** @var int $openingBraceCandidateIndex */
                $openingBraceCandidateIndex = $tokens->getNextTokenOfKind($closingBraceIndex, [';', '(']);
            }

            $this->trimNewLines($tokens, $index, $openingBraceCandidateIndex);
        }
    }

    /**
     * @param int $startIndex
     * @param int $endIndex
     */
    private function trimNewLines(Tokens $tokens, $startIndex, $endIndex)
    {
        for ($index = $startIndex; $index < $endIndex; ++$index) {
            $content = $tokens[$index]->getContent();

            if ($tokens[$index]->isGivenKind(T_COMMENT)) {
                if (0 === strpos($content, '//')) {
                    $content = '/*'.substr($content, 2).' */';
                    $tokens->clearAt($index + 1);
                } elseif (0 === strpos($content, '#')) {
                    $content = '/*'.substr($content, 1).' */';
                    $tokens->clearAt($index + 1);
                } elseif (false !== Preg::match('/\R/', $content)) {
                    $content = Preg::replace('/\R/', ' ', $content);
                }
                $tokens[$index] = new Token([T_COMMENT, $content]);

                continue;
            }

            if (!$tokens[$index]->isGivenKind(T_WHITESPACE)) {
                continue;
            }

            if (0 === Preg::match('/\R/', $content)) {
                continue;
            }

            $prevIndex = $tokens->getNonEmptySibling($index, -1);
            if ($tokens[$prevIndex]->equalsAny(array_merge(self::REMOVE_WHITESPACE_AFTER_TOKENS, self::REMOVE_WHITESPACE_AROUND_TOKENS))) {
                $tokens->clearAt($index);

                continue;
            }

            $nextIndex = $tokens->getNonEmptySibling($index, 1);
            if ($tokens[$nextIndex]->equalsAny(array_merge(self::REMOVE_WHITESPACE_AROUND_TOKENS, self::REMOVE_WHITESPACE_BEFORE_TOKENS))) {
                if (!$tokens[$prevIndex]->isGivenKind(T_FUNCTION)) {
                    $tokens->clearAt($index);

                    continue;
                }
            }

            $tokens[$index] = new Token([T_WHITESPACE, ' ']);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\FunctionNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\FixerDefinition\VersionSpecification;
use PhpCsFixer\FixerDefinition\VersionSpecificCodeSample;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Tokenizer\TokensAnalyzer;

/**
 * Fixer for rules defined in PSR2 generally (¶1 and ¶6).
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class FunctionDeclarationFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * @internal
     */
    const SPACING_NONE = 'none';

    /**
     * @internal
     */
    const SPACING_ONE = 'one';

    private $supportedSpacings = [self::SPACING_NONE, self::SPACING_ONE];

    private $singleLineWhitespaceOptions = " \t";

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        if (\PHP_VERSION_ID >= 70400 && $tokens->isTokenKindFound(T_FN)) {
            return true;
        }

        return $tokens->isTokenKindFound(T_FUNCTION);
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Spaces should be properly placed in a function declaration.',
            [
                new CodeSample(
                    '<?php

class Foo
{
    public static function  bar   ( $baz , $foo )
    {
        return false;
    }
}

function  foo  ($bar, $baz)
{
    return false;
}
'
                ),
                new CodeSample(
                    '<?php
$f = function () {};
',
                    ['closure_function_spacing' => self::SPACING_NONE]
                ),
                new VersionSpecificCodeSample(
                    '<?php
$f = fn () => null;
',
                    new VersionSpecification(70400),
                    ['closure_function_spacing' => self::SPACING_NONE]
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $tokensAnalyzer = new TokensAnalyzer($tokens);

        for ($index = $tokens->count() - 1; $index >= 0; --$index) {
            $token = $tokens[$index];

            if (
                !$token->isGivenKind(T_FUNCTION)
                && (\PHP_VERSION_ID < 70400 || !$token->isGivenKind(T_FN))
            ) {
                continue;
            }

            $startParenthesisIndex = $tokens->getNextTokenOfKind($index, ['(', ';', [T_CLOSE_TAG]]);
            if (!$tokens[$startParenthesisIndex]->equals('(')) {
                continue;
            }

            $endParenthesisIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $startParenthesisIndex);
            $startBraceIndex = $tokens->getNextTokenOfKind($endParenthesisIndex, [';', '{', [T_DOUBLE_ARROW]]);

            // fix single-line whitespace before { or =>
            // eg: `function foo(){}` => `function foo() {}`
            // eg: `function foo()   {}` => `function foo() {}`
            // eg: `fn()   =>` => `fn() =>`
            if (
                $tokens[$startBraceIndex]->equalsAny(['{', [T_DOUBLE_ARROW]]) &&
                (
                    !$tokens[$startBraceIndex - 1]->isWhitespace() ||
                    $tokens[$startBraceIndex - 1]->isWhitespace($this->singleLineWhitespaceOptions)
                )
            ) {
                $tokens->ensureWhitespaceAtIndex($startBraceIndex - 1, 1, ' ');
            }

            $afterParenthesisIndex = $tokens->getNextNonWhitespace($endParenthesisIndex);
            $afterParenthesisToken = $tokens[$afterParenthesisIndex];

            if ($afterParenthesisToken->isGivenKind(CT::T_USE_LAMBDA)) {
                // fix whitespace after CT:T_USE_LAMBDA (we might add a token, so do this before determining start and end parenthesis)
                $tokens->ensureWhitespaceAtIndex($afterParenthesisIndex + 1, 0, ' ');

                $useStartParenthesisIndex = $tokens->getNextTokenOfKind($afterParenthesisIndex, ['(']);
                $useEndParenthesisIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $useStartParenthesisIndex);

                // remove single-line edge whitespaces inside use parentheses
                $this->fixParenthesisInnerEdge($tokens, $useStartParenthesisIndex, $useEndParenthesisIndex);

                // fix whitespace before CT::T_USE_LAMBDA
                $tokens->ensureWhitespaceAtIndex($afterParenthesisIndex - 1, 1, ' ');
            }

            // remove single-line edge whitespaces inside parameters list parentheses
            $this->fixParenthesisInnerEdge($tokens, $startParenthesisIndex, $endParenthesisIndex);

            $isLambda = $tokensAnalyzer->isLambda($index);

            // remove whitespace before (
            // eg: `function foo () {}` => `function foo() {}`
            if (!$isLambda && $tokens[$startParenthesisIndex - 1]->isWhitespace() && !$tokens[$tokens->getPrevNonWhitespace($startParenthesisIndex - 1)]->isComment()) {
                $tokens->clearAt($startParenthesisIndex - 1);
            }

            if ($isLambda && self::SPACING_NONE === $this->configuration['closure_function_spacing']) {
                // optionally remove whitespace after T_FUNCTION of a closure
                // eg: `function () {}` => `function() {}`
                if ($tokens[$index + 1]->isWhitespace()) {
                    $tokens->clearAt($index + 1);
                }
            } else {
                // otherwise, enforce whitespace after T_FUNCTION
                // eg: `function     foo() {}` => `function foo() {}`
                $tokens->ensureWhitespaceAtIndex($index + 1, 0, ' ');
            }

            if ($isLambda) {
                $prev = $tokens->getPrevMeaningfulToken($index);
                if ($tokens[$prev]->isGivenKind(T_STATIC)) {
                    // fix whitespace after T_STATIC
                    // eg: `$a = static     function(){};` => `$a = static function(){};`
                    $tokens->ensureWhitespaceAtIndex($prev + 1, 0, ' ');
                }
            }
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('closure_function_spacing', 'Spacing to use before open parenthesis for closures.'))
                ->setDefault(self::SPACING_ONE)
                ->setAllowedValues($this->supportedSpacings)
                ->getOption(),
        ]);
    }

    private function fixParenthesisInnerEdge(Tokens $tokens, $start, $end)
    {
        // remove single-line whitespace before )
        if ($tokens[$end - 1]->isWhitespace($this->singleLineWhitespaceOptions)) {
            $tokens->clearAt($end - 1);
        }

        // remove single-line whitespace after (
        if ($tokens[$start + 1]->isWhitespace($this->singleLineWhitespaceOptions)) {
            $tokens->clearAt($start + 1);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer;

use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface;

/**
 * @deprecated Will be incorporated into `ConfigurableFixerInterface` in 3.0
 */
interface ConfigurationDefinitionFixerInterface extends ConfigurableFixerInterface
{
    /**
     * Defines the available configuration options of the fixer.
     *
     * @return FixerConfigurationResolverInterface
     */
    public function getConfigurationDefinition();
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Phpdoc;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\DocBlock\DocBlock;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverRootless;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Tokenizer\TokensAnalyzer;
use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException;
use Symfony\Component\OptionsResolver\Options;

/**
 * @author SpacePossum
 */
final class PhpdocReturnSelfReferenceFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    private static $toTypes = [
        '$this',
        'static',
        'self',
    ];

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'The type of `@return` annotations of methods returning a reference to itself must the configured one.',
            [
                new CodeSample(
                    '<?php
class Sample
{
    /**
     * @return this
     */
    public function test1()
    {
        return $this;
    }

    /**
     * @return $self
     */
    public function test2()
    {
        return $this;
    }
}
'
                ),
                new CodeSample(
                    '<?php
class Sample
{
    /**
     * @return this
     */
    public function test1()
    {
        return $this;
    }

    /**
     * @return $self
     */
    public function test2()
    {
        return $this;
    }
}
',
                    ['replacements' => ['this' => 'self']]
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return \count($tokens) > 10 && $tokens->isTokenKindFound(T_DOC_COMMENT) && $tokens->isAnyTokenKindsFound([T_CLASS, T_INTERFACE]);
    }

    /**
     * {@inheritdoc}
     *
     * Must run before NoSuperfluousPhpdocTagsFixer, PhpdocAlignFixer.
     * Must run after CommentToPhpdocFixer, PhpdocIndentFixer, PhpdocScalarFixer, PhpdocToCommentFixer, PhpdocTypesFixer.
     */
    public function getPriority()
    {
        return 10;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $tokensAnalyzer = new TokensAnalyzer($tokens);
        foreach ($tokensAnalyzer->getClassyElements() as $index => $element) {
            if ('method' === $element['type']) {
                $this->fixMethod($tokens, $index);
            }
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        $default = [
            'this' => '$this',
            '@this' => '$this',
            '$self' => 'self',
            '@self' => 'self',
            '$static' => 'static',
            '@static' => 'static',
        ];

        return new FixerConfigurationResolverRootless('replacements', [
            (new FixerOptionBuilder('replacements', 'Mapping between replaced return types with new ones.'))
                ->setAllowedTypes(['array'])
                ->setNormalizer(static function (Options $options, $value) use ($default) {
                    $normalizedValue = [];
                    foreach ($value as $from => $to) {
                        if (\is_string($from)) {
                            $from = strtolower($from);
                        }

                        if (!isset($default[$from])) {
                            throw new InvalidOptionsException(sprintf(
                                'Unknown key "%s", expected any of "%s".',
                                \is_object($from) ? \get_class($from) : \gettype($from).(\is_resource($from) ? '' : '#'.$from),
                                implode('", "', array_keys($default))
                            ));
                        }

                        if (!\in_array($to, self::$toTypes, true)) {
                            throw new InvalidOptionsException(sprintf(
                                'Unknown value "%s", expected any of "%s".',
                                \is_object($to) ? \get_class($to) : \gettype($to).(\is_resource($to) ? '' : '#'.$to),
                                implode('", "', self::$toTypes)
                            ));
                        }

                        $normalizedValue[$from] = $to;
                    }

                    return $normalizedValue;
                })
                ->setDefault($default)
                ->getOption(),
        ], $this->getName());
    }

    /**
     * @param int $index
     */
    private function fixMethod(Tokens $tokens, $index)
    {
        static $methodModifiers = [T_STATIC, T_FINAL, T_ABSTRACT, T_PRIVATE, T_PROTECTED, T_PUBLIC];

        // find PHPDoc of method (if any)
        do {
            $tokenIndex = $tokens->getPrevMeaningfulToken($index);
            if (!$tokens[$tokenIndex]->isGivenKind($methodModifiers)) {
                break;
            }

            $index = $tokenIndex;
        } while (true);

        $docIndex = $tokens->getPrevNonWhitespace($index);
        if (!$tokens[$docIndex]->isGivenKind(T_DOC_COMMENT)) {
            return;
        }

        // find @return
        $docBlock = new DocBlock($tokens[$docIndex]->getContent());
        $returnsBlock = $docBlock->getAnnotationsOfType('return');

        if (!\count($returnsBlock)) {
            return; // no return annotation found
        }

        $returnsBlock = $returnsBlock[0];
        $types = $returnsBlock->getTypes();

        if (!\count($types)) {
            return; // no return type(s) found
        }

        $newTypes = [];
        foreach ($types as $type) {
            $lower = strtolower($type);
            $newTypes[] = isset($this->configuration['replacements'][$lower]) ? $this->configuration['replacements'][$lower] : $type;
        }

        if ($types === $newTypes) {
            return;
        }

        $returnsBlock->setTypes($newTypes);
        $tokens[$docIndex] = new Token([T_DOC_COMMENT, $docBlock->getContent()]);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Phpdoc;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\DocBlock\DocBlock;
use PhpCsFixer\DocBlock\Line;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Analyzer\ArgumentsAnalyzer;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class PhpdocAddMissingParamAnnotationFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface, WhitespacesAwareFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'PHPDoc should contain `@param` for all params.',
            [
                new CodeSample(
                    '<?php
/**
 * @param int $bar
 *
 * @return void
 */
function f9(string $foo, $bar, $baz) {}
'
                ),
                new CodeSample(
                    '<?php
/**
 * @param int $bar
 *
 * @return void
 */
function f9(string $foo, $bar, $baz) {}
',
                    ['only_untyped' => true]
                ),
                new CodeSample(
                    '<?php
/**
 * @param int $bar
 *
 * @return void
 */
function f9(string $foo, $bar, $baz) {}
',
                    ['only_untyped' => false]
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before NoEmptyPhpdocFixer, NoSuperfluousPhpdocTagsFixer, PhpdocAlignFixer, PhpdocAlignFixer, PhpdocOrderFixer.
     * Must run after CommentToPhpdocFixer, PhpdocIndentFixer, PhpdocNoAliasTagFixer, PhpdocScalarFixer, PhpdocToCommentFixer, PhpdocTypesFixer.
     */
    public function getPriority()
    {
        return 10;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_DOC_COMMENT);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $argumentsAnalyzer = new ArgumentsAnalyzer();

        for ($index = 0, $limit = $tokens->count(); $index < $limit; ++$index) {
            $mainIndex = $index;
            $token = $tokens[$index];

            if (!$token->isGivenKind(T_DOC_COMMENT)) {
                continue;
            }

            $tokenContent = $token->getContent();

            if (false !== stripos($tokenContent, 'inheritdoc')) {
                continue;
            }

            // ignore one-line phpdocs like `/** foo */`, as there is no place to put new annotations
            if (false === strpos($tokenContent, "\n")) {
                continue;
            }

            $index = $tokens->getNextMeaningfulToken($index);

            if (null === $index) {
                return;
            }

            while ($tokens[$index]->isGivenKind([
                T_ABSTRACT,
                T_FINAL,
                T_PRIVATE,
                T_PROTECTED,
                T_PUBLIC,
                T_STATIC,
                T_VAR,
            ])) {
                $index = $tokens->getNextMeaningfulToken($index);
            }

            if (!$tokens[$index]->isGivenKind(T_FUNCTION)) {
                continue;
            }

            $openIndex = $tokens->getNextTokenOfKind($index, ['(']);
            $index = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $openIndex);

            $arguments = [];

            foreach ($argumentsAnalyzer->getArguments($tokens, $openIndex, $index) as $start => $end) {
                $argumentInfo = $this->prepareArgumentInformation($tokens, $start, $end);

                if (!$this->configuration['only_untyped'] || '' === $argumentInfo['type']) {
                    $arguments[$argumentInfo['name']] = $argumentInfo;
                }
            }

            if (!\count($arguments)) {
                continue;
            }

            $doc = new DocBlock($tokenContent);
            $lastParamLine = null;

            foreach ($doc->getAnnotationsOfType('param') as $annotation) {
                $pregMatched = Preg::match('/^[^$]+(\$\w+).*$/s', $annotation->getContent(), $matches);

                if (1 === $pregMatched) {
                    unset($arguments[$matches[1]]);
                }

                $lastParamLine = max($lastParamLine, $annotation->getEnd());
            }

            if (!\count($arguments)) {
                continue;
            }

            $lines = $doc->getLines();
            $linesCount = \count($lines);

            Preg::match('/^(\s*).*$/', $lines[$linesCount - 1]->getContent(), $matches);
            $indent = $matches[1];

            $newLines = [];

            foreach ($arguments as $argument) {
                $type = $argument['type'] ?: 'mixed';

                if ('?' !== $type[0] && 'null' === strtolower($argument['default'])) {
                    $type = 'null|'.$type;
                }

                $newLines[] = new Line(sprintf(
                    '%s* @param %s %s%s',
                    $indent,
                    $type,
                    $argument['name'],
                    $this->whitespacesConfig->getLineEnding()
                ));
            }

            array_splice(
                $lines,
                $lastParamLine ? $lastParamLine + 1 : $linesCount - 1,
                0,
                $newLines
            );

            $tokens[$mainIndex] = new Token([T_DOC_COMMENT, implode('', $lines)]);
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('only_untyped', 'Whether to add missing `@param` annotations for untyped parameters only.'))
                ->setDefault(true)
                ->setAllowedTypes(['bool'])
                ->getOption(),
        ]);
    }

    /**
     * @param int $start
     * @param int $end
     *
     * @return array
     */
    private function prepareArgumentInformation(Tokens $tokens, $start, $end)
    {
        $info = [
            'default' => '',
            'name' => '',
            'type' => '',
        ];

        $sawName = false;

        for ($index = $start; $index <= $end; ++$index) {
            $token = $tokens[$index];

            if ($token->isComment() || $token->isWhitespace()) {
                continue;
            }

            if ($token->isGivenKind(T_VARIABLE)) {
                $sawName = true;
                $info['name'] = $token->getContent();

                continue;
            }

            if ($token->equals('=')) {
                continue;
            }

            if ($sawName) {
                $info['default'] .= $token->getContent();
            } elseif ('&' !== $token->getContent()) {
                if ($token->isGivenKind(T_ELLIPSIS)) {
                    if ('' === $info['type']) {
                        $info['type'] = 'array';
                    } else {
                        $info['type'] .= '[]';
                    }
                } else {
                    $info['type'] .= $token->getContent();
                }
            }
        }

        return $info;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Phpdoc;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\DocBlock\DocBlock;
use PhpCsFixer\DocBlock\Line;
use PhpCsFixer\DocBlock\ShortDescription;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Nobu Funaki <nobu.funaki@gmail.com>
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class PhpdocTrimConsecutiveBlankLineSeparationFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Removes extra blank lines after summary and after description in PHPDoc.',
            [
                new CodeSample(
                    '<?php
/**
 * Summary.
 *
 *
 * Description that contain 4 lines,
 *
 *
 * while 2 of them are blank!
 *
 *
 * @param string $foo
 *
 *
 * @dataProvider provideFixCases
 */
function fnc($foo) {}
'
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before PhpdocAlignFixer.
     * Must run after CommentToPhpdocFixer, PhpdocIndentFixer, PhpdocScalarFixer, PhpdocToCommentFixer, PhpdocTypesFixer.
     */
    public function getPriority()
    {
        return 0;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_DOC_COMMENT);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if (!$token->isGivenKind(T_DOC_COMMENT)) {
                continue;
            }

            $doc = new DocBlock($token->getContent());
            $summaryEnd = (new ShortDescription($doc))->getEnd();

            if (null !== $summaryEnd) {
                $this->fixSummary($doc, $summaryEnd);
                $this->fixDescription($doc, $summaryEnd);
            }

            $this->fixAllTheRest($doc);

            $tokens[$index] = new Token([T_DOC_COMMENT, $doc->getContent()]);
        }
    }

    /**
     * @param int $summaryEnd
     */
    private function fixSummary(DocBlock $doc, $summaryEnd)
    {
        $nonBlankLineAfterSummary = $this->findNonBlankLine($doc, $summaryEnd);

        $this->removeExtraBlankLinesBetween($doc, $summaryEnd, $nonBlankLineAfterSummary);
    }

    /**
     * @param int $summaryEnd
     */
    private function fixDescription(DocBlock $doc, $summaryEnd)
    {
        $annotationStart = $this->findFirstAnnotationOrEnd($doc);

        // assuming the end of the Description appears before the first Annotation
        $descriptionEnd = $this->reverseFindLastUsefulContent($doc, $annotationStart);

        if (null === $descriptionEnd || $summaryEnd === $descriptionEnd) {
            return; // no Description
        }

        if ($annotationStart === \count($doc->getLines()) - 1) {
            return; // no content after Description
        }

        $this->removeExtraBlankLinesBetween($doc, $descriptionEnd, $annotationStart);
    }

    private function fixAllTheRest(DocBlock $doc)
    {
        $annotationStart = $this->findFirstAnnotationOrEnd($doc);
        $lastLine = $this->reverseFindLastUsefulContent($doc, \count($doc->getLines()) - 1);

        if (null !== $lastLine && $annotationStart !== $lastLine) {
            $this->removeExtraBlankLinesBetween($doc, $annotationStart, $lastLine);
        }
    }

    /**
     * @param int $from
     * @param int $to
     */
    private function removeExtraBlankLinesBetween(DocBlock $doc, $from, $to)
    {
        for ($index = $from + 1; $index < $to; ++$index) {
            $line = $doc->getLine($index);
            $next = $doc->getLine($index + 1);
            $this->removeExtraBlankLine($line, $next);
        }
    }

    private function removeExtraBlankLine(Line $current, Line $next)
    {
        if (!$current->isTheEnd() && !$current->containsUsefulContent()
            && !$next->isTheEnd() && !$next->containsUsefulContent()) {
            $current->remove();
        }
    }

    /**
     * @param int $after
     *
     * @return null|int
     */
    private function findNonBlankLine(DocBlock $doc, $after)
    {
        foreach ($doc->getLines() as $index => $line) {
            if ($index <= $after) {
                continue;
            }

            if ($line->containsATag() || $line->containsUsefulContent() || $line->isTheEnd()) {
                return $index;
            }
        }

        return null;
    }

    /**
     * @return int
     */
    private function findFirstAnnotationOrEnd(DocBlock $doc)
    {
        $index = null;
        foreach ($doc->getLines() as $index => $line) {
            if ($line->containsATag()) {
                return $index;
            }
        }

        return $index; // no Annotation, return the last line
    }

    /**
     * @param int $from
     *
     * @return null|int
     */
    private function reverseFindLastUsefulContent(DocBlock $doc, $from)
    {
        for ($index = $from - 1; $index >= 0; --$index) {
            if ($doc->getLine($index)->containsUsefulContent()) {
                return $index;
            }
        }

        return null;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Phpdoc;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * Fix inline tags and make inheritdoc tag always inline.
 */
final class PhpdocInlineTagFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Fix PHPDoc inline tags, make `@inheritdoc` always inline.',
            [new CodeSample(
                '<?php
/**
 * @{TUTORIAL}
 * {{ @link }}
 * {@examples}
 * @inheritdocs
 */
'
            )]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before PhpdocAlignFixer.
     * Must run after CommentToPhpdocFixer, PhpdocIndentFixer, PhpdocScalarFixer, PhpdocToCommentFixer, PhpdocTypesFixer.
     */
    public function getPriority()
    {
        return 0;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_DOC_COMMENT);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if (!$token->isGivenKind(T_DOC_COMMENT)) {
                continue;
            }

            $content = $token->getContent();

            // Move `@` inside tag, for example @{tag} -> {@tag}, replace multiple curly brackets,
            // remove spaces between '{' and '@', remove 's' at the end of tag.
            // Make sure the tags are written in lower case, remove white space between end
            // of text and closing bracket and between the tag and inline comment.
            $content = Preg::replaceCallback(
                '#(?:@{+|{+\h*@)[ \t]*(example|id|internal|inheritdoc|link|source|toc|tutorial)s?([^}]*)(?:}+)#i',
                static function (array $matches) {
                    $doc = trim($matches[2]);

                    if ('' === $doc) {
                        return '{@'.strtolower($matches[1]).'}';
                    }

                    return '{@'.strtolower($matches[1]).' '.$doc.'}';
                },
                $content
            );

            // Always make inheritdoc inline using with '{' '}' when needed,
            // make sure lowercase.
            $content = Preg::replace(
                '#(?<!{)@inheritdocs?(?!})#i',
                '{@inheritdoc}',
                $content
            );

            $tokens[$index] = new Token([T_DOC_COMMENT, $content]);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Phpdoc;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\DocBlock\DocBlock;
use PhpCsFixer\DocBlock\ShortDescription;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Graham Campbell <graham@alt-three.com>
 */
final class PhpdocSummaryFixer extends AbstractFixer implements WhitespacesAwareFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'PHPDoc summary should end in either a full stop, exclamation mark, or question mark.',
            [new CodeSample('<?php
/**
 * Foo function is great
 */
function foo () {}
')]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before PhpdocAlignFixer.
     * Must run after CommentToPhpdocFixer, PhpdocIndentFixer, PhpdocScalarFixer, PhpdocToCommentFixer, PhpdocTypesFixer.
     */
    public function getPriority()
    {
        return 0;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_DOC_COMMENT);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if (!$token->isGivenKind(T_DOC_COMMENT)) {
                continue;
            }

            $doc = new DocBlock($token->getContent());
            $end = (new ShortDescription($doc))->getEnd();

            if (null !== $end) {
                $line = $doc->getLine($end);
                $content = rtrim($line->getContent());

                if (!$this->isCorrectlyFormatted($content)) {
                    $line->setContent($content.'.'.$this->whitespacesConfig->getLineEnding());
                    $tokens[$index] = new Token([T_DOC_COMMENT, $doc->getContent()]);
                }
            }
        }
    }

    /**
     * Is the last line of the short description correctly formatted?
     *
     * @param string $content
     *
     * @return bool
     */
    private function isCorrectlyFormatted($content)
    {
        if (false !== stripos($content, '{@inheritdoc}')) {
            return true;
        }

        return $content !== rtrim($content, '.。!?¡¿！？');
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Phpdoc;

use PhpCsFixer\AbstractProxyFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;

/**
 * @author Graham Campbell <graham@alt-three.com>
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class PhpdocNoPackageFixer extends AbstractProxyFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            '`@package` and `@subpackage` annotations should be omitted from PHPDoc.',
            [
                new CodeSample(
                    '<?php
/**
 * @internal
 * @package Foo
 * subpackage Bar
 */
class Baz
{
}
'
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before NoEmptyPhpdocFixer, PhpdocAlignFixer, PhpdocOrderFixer, PhpdocSeparationFixer, PhpdocTrimFixer.
     * Must run after CommentToPhpdocFixer, PhpdocIndentFixer, PhpdocScalarFixer, PhpdocToCommentFixer, PhpdocTypesFixer.
     */
    public function getPriority()
    {
        return parent::getPriority();
    }

    /**
     * {@inheritdoc}
     */
    protected function createProxyFixers()
    {
        $fixer = new GeneralPhpdocAnnotationRemoveFixer();
        $fixer->configure(['annotations' => ['package', 'subpackage']]);

        return [$fixer];
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Phpdoc;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author SpacePossum
 */
final class NoEmptyPhpdocFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'There should not be empty PHPDoc blocks.',
            [new CodeSample("<?php /**  */\n")]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before NoExtraBlankLinesFixer, NoTrailingWhitespaceFixer, NoWhitespaceInBlankLineFixer, PhpdocAlignFixer.
     * Must run after CommentToPhpdocFixer, GeneralPhpdocAnnotationRemoveFixer, NoSuperfluousPhpdocTagsFixer, PhpUnitNoExpectationAnnotationFixer, PhpUnitTestAnnotationFixer, PhpdocAddMissingParamAnnotationFixer, PhpdocIndentFixer, PhpdocNoAccessFixer, PhpdocNoEmptyReturnFixer, PhpdocNoPackageFixer, PhpdocNoUselessInheritdocFixer, PhpdocScalarFixer, PhpdocToCommentFixer, PhpdocTypesFixer.
     */
    public function getPriority()
    {
        return 5;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_DOC_COMMENT);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if (!$token->isGivenKind(T_DOC_COMMENT)) {
                continue;
            }

            if (Preg::match('#^/\*\*[\s\*]*\*/$#', $token->getContent())) {
                $tokens->clearTokenAndMergeSurroundingWhitespace($index);
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Phpdoc;

use PhpCsFixer\AbstractProxyFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;

/**
 * @author Graham Campbell <graham@alt-three.com>
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class PhpdocNoAccessFixer extends AbstractProxyFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            '`@access` annotations should be omitted from PHPDoc.',
            [
                new CodeSample(
                    '<?php
class Foo
{
    /**
     * @internal
     * @access private
     */
    private $bar;
}
'
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before NoEmptyPhpdocFixer, PhpdocAlignFixer, PhpdocOrderFixer, PhpdocSeparationFixer, PhpdocTrimFixer.
     * Must run after CommentToPhpdocFixer, PhpdocIndentFixer, PhpdocScalarFixer, PhpdocToCommentFixer, PhpdocTypesFixer.
     */
    public function getPriority()
    {
        return parent::getPriority();
    }

    /**
     * {@inheritdoc}
     */
    protected function createProxyFixers()
    {
        $fixer = new GeneralPhpdocAnnotationRemoveFixer();
        $fixer->configure(['annotations' => ['access']]);

        return [$fixer];
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Phpdoc;

use PhpCsFixer\AbstractPhpdocTypesFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\AllowedValueSubset;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;

/**
 * @author Graham Campbell <graham@alt-three.com>
 */
final class PhpdocScalarFixer extends AbstractPhpdocTypesFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * The types to fix.
     *
     * @var array
     */
    private static $types = [
        'boolean' => 'bool',
        'callback' => 'callable',
        'double' => 'float',
        'integer' => 'int',
        'real' => 'float',
        'str' => 'string',
    ];

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Scalar types should always be written in the same form. `int` not `integer`, `bool` not `boolean`, `float` not `real` or `double`.',
            [
                new CodeSample('<?php
/**
 * @param integer $a
 * @param boolean $b
 * @param real $c
 *
 * @return double
 */
function sample($a, $b, $c)
{
    return sample2($a, $b, $c);
}
'),
                new CodeSample(
                    '<?php
/**
 * @param integer $a
 * @param boolean $b
 * @param real $c
 */
function sample($a, $b, $c)
{
    return sample2($a, $b, $c);
}
',
                    ['types' => ['boolean']]
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before GeneralPhpdocAnnotationRemoveFixer, NoBlankLinesAfterPhpdocFixer, NoEmptyPhpdocFixer, NoSuperfluousPhpdocTagsFixer, PhpdocAddMissingParamAnnotationFixer, PhpdocAlignFixer, PhpdocAlignFixer, PhpdocInlineTagFixer, PhpdocLineSpanFixer, PhpdocNoAccessFixer, PhpdocNoAliasTagFixer, PhpdocNoEmptyReturnFixer, PhpdocNoPackageFixer, PhpdocNoUselessInheritdocFixer, PhpdocOrderFixer, PhpdocReturnSelfReferenceFixer, PhpdocSeparationFixer, PhpdocSingleLineVarSpacingFixer, PhpdocSummaryFixer, PhpdocToParamTypeFixer, PhpdocToReturnTypeFixer, PhpdocToReturnTypeFixer, PhpdocTrimConsecutiveBlankLineSeparationFixer, PhpdocTrimFixer, PhpdocTypesOrderFixer, PhpdocVarAnnotationCorrectOrderFixer, PhpdocVarWithoutNameFixer.
     * Must run after PhpdocTypesFixer.
     */
    public function getPriority()
    {
        /*
         * Should be run before all other docblock fixers apart from the
         * phpdoc_to_comment and phpdoc_indent fixer to make sure all fixers
         * apply correct indentation to new code they add. This should run
         * before alignment of params is done since this fixer might change
         * the type and thereby un-aligning the params. We also must run after
         * the phpdoc_types_fixer because it can convert types to things that
         * we can fix.
         */
        return 15;
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('types', 'A map of types to fix.'))
                ->setAllowedValues([new AllowedValueSubset(array_keys(self::$types))])
                ->setDefault(['boolean', 'double', 'integer', 'real', 'str']) // TODO 3.0 add "callback"
                ->getOption(),
        ]);
    }

    /**
     * {@inheritdoc}
     */
    protected function normalize($type)
    {
        if (\in_array($type, $this->configuration['types'], true)) {
            return self::$types[$type];
        }

        return $type;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Phpdoc;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\DocBlock\DocBlock;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverRootless;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Graham Campbell <graham@alt-three.com>
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class GeneralPhpdocAnnotationRemoveFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Configured annotations should be omitted from PHPDoc.',
            [
                new CodeSample(
                    '<?php
/**
 * @internal
 * @author John Doe
 */
function foo() {}
',
                    ['annotations' => ['author']]
                ),
                new CodeSample(
                    '<?php
/**
 * @author John Doe
 * @package ACME API
 * @subpackage Authorization
 * @version 1.0
 */
function foo() {}
',
                    ['annotations' => ['package', 'subpackage']]
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before NoEmptyPhpdocFixer, PhpdocAlignFixer, PhpdocLineSpanFixer, PhpdocSeparationFixer, PhpdocTrimFixer.
     * Must run after CommentToPhpdocFixer, PhpdocIndentFixer, PhpdocScalarFixer, PhpdocToCommentFixer, PhpdocTypesFixer.
     */
    public function getPriority()
    {
        return 10;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_DOC_COMMENT);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        if (!\count($this->configuration['annotations'])) {
            return;
        }

        foreach ($tokens as $index => $token) {
            if (!$token->isGivenKind(T_DOC_COMMENT)) {
                continue;
            }

            $doc = new DocBlock($token->getContent());
            $annotations = $doc->getAnnotationsOfType($this->configuration['annotations']);

            // nothing to do if there are no annotations
            if (empty($annotations)) {
                continue;
            }

            foreach ($annotations as $annotation) {
                $annotation->remove();
            }

            if ('' === $doc->getContent()) {
                $tokens->clearTokenAndMergeSurroundingWhitespace($index);
            } else {
                $tokens[$index] = new Token([T_DOC_COMMENT, $doc->getContent()]);
            }
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolverRootless('annotations', [
            (new FixerOptionBuilder('annotations', 'List of annotations to remove, e.g. `["author"]`.'))
                ->setAllowedTypes(['array'])
                ->setDefault([])
                ->getOption(),
        ], $this->getName());
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Phpdoc;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\DocBlock\DocBlock;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class PhpdocAnnotationWithoutDotFixer extends AbstractFixer
{
    private $tags = ['throws', 'return', 'param', 'internal', 'deprecated', 'var', 'type'];

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'PHPDoc annotation descriptions should not be a sentence.',
            [new CodeSample('<?php
/**
 * @param string $bar Some string.
 */
function foo ($bar) {}
')]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before PhpdocAlignFixer, PhpdocTypesFixer, PhpdocTypesOrderFixer.
     * Must run after CommentToPhpdocFixer, PhpdocIndentFixer, PhpdocToCommentFixer.
     */
    public function getPriority()
    {
        return 17;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_DOC_COMMENT);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if (!$token->isGivenKind(T_DOC_COMMENT)) {
                continue;
            }

            $doc = new DocBlock($token->getContent());
            $annotations = $doc->getAnnotations();

            if (empty($annotations)) {
                continue;
            }

            foreach ($annotations as $annotation) {
                if (
                    !$annotation->getTag()->valid() || !\in_array($annotation->getTag()->getName(), $this->tags, true)
                ) {
                    continue;
                }

                $lineAfterAnnotation = $doc->getLine($annotation->getEnd() + 1);
                if (null !== $lineAfterAnnotation) {
                    $lineAfterAnnotationTrimmed = ltrim($lineAfterAnnotation->getContent());
                    if ('' === $lineAfterAnnotationTrimmed || '*' !== $lineAfterAnnotationTrimmed[0]) {
                        // malformed PHPDoc, missing asterisk !
                        continue;
                    }
                }

                $content = $annotation->getContent();

                if (
                    1 !== Preg::match('/[.。]\h*$/u', $content)
                    || 0 !== Preg::match('/[.。](?!\h*$)/u', $content, $matches)
                ) {
                    continue;
                }

                $endLine = $doc->getLine($annotation->getEnd());
                $endLine->setContent(Preg::replace('/(?<![.。])[.。]\h*(\H+)$/u', '\1', $endLine->getContent()));

                $startLine = $doc->getLine($annotation->getStart());
                $optionalTypeRegEx = $annotation->supportTypes()
                    ? sprintf('(?:%s\s+(?:\$\w+\s+)?)?', preg_quote(implode('|', $annotation->getTypes()), '/'))
                    : '';
                $content = Preg::replaceCallback(
                    '/^(\s*\*\s*@\w+\s+'.$optionalTypeRegEx.')(\p{Lu}?(?=\p{Ll}|\p{Zs}))(.*)$/',
                    static function (array $matches) {
                        if (\function_exists('mb_strtolower')) {
                            return $matches[1].mb_strtolower($matches[2]).$matches[3];
                        }

                        return $matches[1].strtolower($matches[2]).$matches[3];
                    },
                    $startLine->getContent(),
                    1
                );
                $startLine->setContent($content);
            }

            $tokens[$index] = new Token([T_DOC_COMMENT, $doc->getContent()]);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Phpdoc;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\DocBlock\DocBlock;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Tokenizer\TokensAnalyzer;

/**
 * @author Gert de Pagter <BackEndTea@gmail.com>
 */
final class PhpdocLineSpanFixer extends AbstractFixer implements WhitespacesAwareFixerInterface, ConfigurationDefinitionFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Changes doc blocks from single to multi line, or reversed. Works for class constants, properties and methods only.',
            [
                new CodeSample("<?php\n\nclass Foo{\n    /** @var bool */\n    public \$var;\n}\n"),
                new CodeSample(
                    "<?php\n\nclass Foo{\n    /**\n    * @var bool\n    */\n    public \$var;\n}\n",
                    ['property' => 'single']
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before PhpdocAlignFixer.
     * Must run after CommentToPhpdocFixer, GeneralPhpdocAnnotationRemoveFixer, PhpdocIndentFixer, PhpdocScalarFixer, PhpdocToCommentFixer, PhpdocTypesFixer.
     */
    public function getPriority()
    {
        return 0;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_DOC_COMMENT);
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('const', 'Whether const blocks should be single or multi line'))
                ->setAllowedValues(['single', 'multi'])
                ->setDefault('multi')
                ->getOption(),
            (new FixerOptionBuilder('property', 'Whether property doc blocks should be single or multi line'))
                ->setAllowedValues(['single', 'multi'])
                ->setDefault('multi')
                ->getOption(),
            (new FixerOptionBuilder('method', 'Whether method doc blocks should be single or multi line'))
                ->setAllowedValues(['single', 'multi'])
                ->setDefault('multi')
                ->getOption(),
        ]);
    }

    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $analyzer = new TokensAnalyzer($tokens);

        $elements = $analyzer->getClassyElements();

        foreach ($elements as $index => $element) {
            if (!$this->hasDocBlock($tokens, $index)) {
                continue;
            }

            $type = $element['type'];
            $docIndex = $this->getDocBlockIndex($tokens, $index);
            $doc = new DocBlock($tokens[$docIndex]->getContent());

            if ('multi' === $this->configuration[$type]) {
                $doc->makeMultiLine($originalIndent = $this->detectIndent($tokens, $docIndex), $this->whitespacesConfig->getLineEnding());
            } else {
                $doc->makeSingleLine();
            }

            $tokens->offsetSet($docIndex, new Token([T_DOC_COMMENT, $doc->getContent()]));
        }
    }

    /**
     * @param int $index
     *
     * @return bool
     */
    private function hasDocBlock(Tokens $tokens, $index)
    {
        $docBlockIndex = $this->getDocBlockIndex($tokens, $index);

        return $tokens[$docBlockIndex]->isGivenKind(T_DOC_COMMENT);
    }

    /**
     * @param int $index
     *
     * @return int
     */
    private function getDocBlockIndex(Tokens $tokens, $index)
    {
        do {
            $index = $tokens->getPrevNonWhitespace($index);
        } while ($tokens[$index]->isGivenKind([
            T_PUBLIC,
            T_PROTECTED,
            T_PRIVATE,
            T_FINAL,
            T_ABSTRACT,
            T_COMMENT,
            T_VAR,
            T_STATIC,
            T_STRING,
            T_NS_SEPARATOR,
            CT::T_NULLABLE_TYPE,
        ]));

        return $index;
    }

    /**
     * @param int $index
     *
     * @return string
     */
    private function detectIndent(Tokens $tokens, $index)
    {
        if (!$tokens[$index - 1]->isWhitespace()) {
            return ''; // cannot detect indent
        }

        $explodedContent = explode($this->whitespacesConfig->getLineEnding(), $tokens[$index - 1]->getContent());

        return end($explodedContent);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Phpdoc;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Filippo Tessarotto <zoeslam@gmail.com>
 * @author Julien Falque <julien.falque@gmail.com>
 */
final class AlignMultilineCommentFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface, WhitespacesAwareFixerInterface
{
    private $tokenKinds;

    /**
     * {@inheritdoc}
     */
    public function configure(array $configuration = null)
    {
        parent::configure($configuration);

        $this->tokenKinds = [T_DOC_COMMENT];
        if ('phpdocs_only' !== $this->configuration['comment_type']) {
            $this->tokenKinds[] = T_COMMENT;
        }
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Each line of multi-line DocComments must have an asterisk [PSR-5] and must be aligned with the first one.',
            [
                new CodeSample(
                    '<?php
    /**
            * This is a DOC Comment
with a line not prefixed with asterisk

   */
'
                ),
                new CodeSample(
                    '<?php
    /*
            * This is a doc-like multiline comment
*/
',
                    ['comment_type' => 'phpdocs_like']
                ),
                new CodeSample(
                    '<?php
    /*
            * This is a doc-like multiline comment
with a line not prefixed with asterisk

   */
',
                    ['comment_type' => 'all_multiline']
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run after ArrayIndentationFixer.
     */
    public function getPriority()
    {
        return -40;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound($this->tokenKinds);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $lineEnding = $this->whitespacesConfig->getLineEnding();
        foreach ($tokens as $index => $token) {
            if (!$token->isGivenKind($this->tokenKinds)) {
                continue;
            }

            $whitespace = '';
            $previousIndex = $index - 1;
            if ($tokens[$previousIndex]->isWhitespace()) {
                $whitespace = $tokens[$previousIndex]->getContent();
                --$previousIndex;
            }
            if ($tokens[$previousIndex]->isGivenKind(T_OPEN_TAG)) {
                $whitespace = Preg::replace('/\S/', '', $tokens[$previousIndex]->getContent()).$whitespace;
            }

            if (1 !== Preg::match('/\R(\h*)$/', $whitespace, $matches)) {
                continue;
            }

            if ($token->isGivenKind(T_COMMENT) && 'all_multiline' !== $this->configuration['comment_type'] && 1 === Preg::match('/\R(?:\R|\s*[^\s\*])/', $token->getContent())) {
                continue;
            }

            $indentation = $matches[1];
            $lines = Preg::split('/\R/u', $token->getContent());

            foreach ($lines as $lineNumber => $line) {
                if (0 === $lineNumber) {
                    continue;
                }

                $line = ltrim($line);
                if ($token->isGivenKind(T_COMMENT) && (!isset($line[0]) || '*' !== $line[0])) {
                    continue;
                }

                if (!isset($line[0])) {
                    $line = '*';
                } elseif ('*' !== $line[0]) {
                    $line = '* '.$line;
                }

                $lines[$lineNumber] = $indentation.' '.$line;
            }

            $tokens[$index] = new Token([$token->getId(), implode($lineEnding, $lines)]);
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('comment_type', 'Whether to fix PHPDoc comments only (`phpdocs_only`), any multi-line comment whose lines all start with an asterisk (`phpdocs_like`) or any multi-line comment (`all_multiline`).'))
                ->setAllowedValues(['phpdocs_only', 'phpdocs_like', 'all_multiline'])
                ->setDefault('phpdocs_only')
                ->getOption(),
        ]);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Phpdoc;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\DocBlock\DocBlock;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverRootless;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException;
use Symfony\Component\OptionsResolver\Options;

/**
 * Case sensitive tag replace fixer (does not process inline tags like {@inheritdoc}).
 *
 * @author Graham Campbell <graham@alt-three.com>
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 * @author SpacePossum
 */
final class PhpdocNoAliasTagFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_DOC_COMMENT);
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'No alias PHPDoc tags should be used.',
            [
                new CodeSample(
                    '<?php
/**
 * @property string $foo
 * @property-read string $bar
 *
 * @link baz
 */
final class Example
{
}
'
                ),
                new CodeSample(
                    '<?php
/**
 * @property string $foo
 * @property-read string $bar
 *
 * @link baz
 */
final class Example
{
}
',
                    ['replacements' => ['link' => 'website']]
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before PhpdocAddMissingParamAnnotationFixer, PhpdocAlignFixer, PhpdocSingleLineVarSpacingFixer.
     * Must run after CommentToPhpdocFixer, PhpdocIndentFixer, PhpdocScalarFixer, PhpdocToCommentFixer, PhpdocTypesFixer.
     */
    public function getPriority()
    {
        return 11;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $searchFor = array_keys($this->configuration['replacements']);

        foreach ($tokens as $index => $token) {
            if (!$token->isGivenKind(T_DOC_COMMENT)) {
                continue;
            }

            $doc = new DocBlock($token->getContent());
            $annotations = $doc->getAnnotationsOfType($searchFor);

            if (empty($annotations)) {
                continue;
            }

            foreach ($annotations as $annotation) {
                $annotation->getTag()->setName($this->configuration['replacements'][$annotation->getTag()->getName()]);
            }

            $tokens[$index] = new Token([T_DOC_COMMENT, $doc->getContent()]);
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolverRootless('replacements', [
            (new FixerOptionBuilder('replacements', 'Mapping between replaced annotations with new ones.'))
                ->setAllowedTypes(['array'])
                ->setNormalizer(static function (Options $options, $value) {
                    $normalizedValue = [];

                    foreach ($value as $from => $to) {
                        if (!\is_string($from)) {
                            throw new InvalidOptionsException('Tag to replace must be a string.');
                        }

                        if (!\is_string($to)) {
                            throw new InvalidOptionsException(sprintf(
                                'Tag to replace to from "%s" must be a string.',
                                $from
                            ));
                        }

                        if (1 !== Preg::match('#^\S+$#', $to) || false !== strpos($to, '*/')) {
                            throw new InvalidOptionsException(sprintf(
                                'Tag "%s" cannot be replaced by invalid tag "%s".',
                                $from,
                                $to
                            ));
                        }

                        $normalizedValue[trim($from)] = trim($to);
                    }

                    foreach ($normalizedValue as $from => $to) {
                        if (isset($normalizedValue[$to])) {
                            throw new InvalidOptionsException(sprintf(
                                'Cannot change tag "%1$s" to tag "%2$s", as the tag "%2$s" is configured to be replaced to "%3$s".',
                                $from,
                                $to,
                                $normalizedValue[$to]
                            ));
                        }
                    }

                    return $normalizedValue;
                })
                ->setDefault([
                    'property-read' => 'property',
                    'property-write' => 'property',
                    'type' => 'var',
                    'link' => 'see',
                ])
                ->getOption(),
        ], $this->getName());
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Phpdoc;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\DocBlock\Annotation;
use PhpCsFixer\DocBlock\DocBlock;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Utils;

final class PhpdocTypesOrderFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Sorts PHPDoc types.',
            [
                new CodeSample(
                    '<?php
/**
 * @param string|null $bar
 */
'
                ),
                new CodeSample(
                    '<?php
/**
 * @param null|string $bar
 */
',
                    ['null_adjustment' => 'always_last']
                ),
                new CodeSample(
                    '<?php
/**
 * @param null|string|int|\Foo $bar
 */
',
                    ['sort_algorithm' => 'alpha']
                ),
                new CodeSample(
                    '<?php
/**
 * @param null|string|int|\Foo $bar
 */
',
                    [
                        'sort_algorithm' => 'alpha',
                        'null_adjustment' => 'always_last',
                    ]
                ),
                new CodeSample(
                    '<?php
/**
 * @param null|string|int|\Foo $bar
 */
',
                    [
                        'sort_algorithm' => 'alpha',
                        'null_adjustment' => 'none',
                    ]
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before PhpdocAlignFixer.
     * Must run after CommentToPhpdocFixer, PhpdocAnnotationWithoutDotFixer, PhpdocIndentFixer, PhpdocScalarFixer, PhpdocToCommentFixer, PhpdocTypesFixer.
     */
    public function getPriority()
    {
        return 0;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_DOC_COMMENT);
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('sort_algorithm', 'The sorting algorithm to apply.'))
                ->setAllowedValues(['alpha', 'none'])
                ->setDefault('alpha')
                ->getOption(),
            (new FixerOptionBuilder('null_adjustment', 'Forces the position of `null` (overrides `sort_algorithm`).'))
                ->setAllowedValues(['always_first', 'always_last', 'none'])
                ->setDefault('always_first')
                ->getOption(),
        ]);
    }

    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if (!$token->isGivenKind(T_DOC_COMMENT)) {
                continue;
            }

            $doc = new DocBlock($token->getContent());
            $annotations = $doc->getAnnotationsOfType(Annotation::getTagsWithTypes());

            if (!\count($annotations)) {
                continue;
            }

            foreach ($annotations as $annotation) {
                $types = $annotation->getTypes();

                // fix main types
                $annotation->setTypes($this->sortTypes($types));

                // fix @method parameters types
                $line = $doc->getLine($annotation->getStart());
                $line->setContent(Preg::replaceCallback('/(@method\s+.+?\s+\w+\()(.*)\)/', function (array $matches) {
                    $sorted = Preg::replaceCallback('/([^\s,]+)([\s]+\$[^\s,]+)/', function (array $matches) {
                        return $this->sortJoinedTypes($matches[1]).$matches[2];
                    }, $matches[2]);

                    return $matches[1].$sorted.')';
                }, $line->getContent()));
            }

            $tokens[$index] = new Token([T_DOC_COMMENT, $doc->getContent()]);
        }
    }

    /**
     * @param string[] $types
     *
     * @return string[]
     */
    private function sortTypes(array $types)
    {
        foreach ($types as $index => $type) {
            $types[$index] = Preg::replaceCallback('/^([^<]+)<(?:([\w\|]+?)(,\s*))?(.*)>$/', function (array $matches) {
                return $matches[1].'<'.$this->sortJoinedTypes($matches[2]).$matches[3].$this->sortJoinedTypes($matches[4]).'>';
            }, $type);
        }

        if ('alpha' === $this->configuration['sort_algorithm']) {
            $types = Utils::stableSort(
                $types,
                static function ($type) { return $type; },
                static function ($typeA, $typeB) {
                    $regexp = '/^\\??\\\?/';

                    return strcasecmp(
                        Preg::replace($regexp, '', $typeA),
                        Preg::replace($regexp, '', $typeB)
                    );
                }
            );
        }

        if ('none' !== $this->configuration['null_adjustment']) {
            $nulls = [];
            foreach ($types as $index => $type) {
                if (Preg::match('/^\\\?null$/i', $type)) {
                    $nulls[$index] = $type;
                    unset($types[$index]);
                }
            }

            if (\count($nulls)) {
                if ('always_last' === $this->configuration['null_adjustment']) {
                    array_push($types, ...$nulls);
                } else {
                    array_unshift($types, ...$nulls);
                }
            }
        }

        return $types;
    }

    /**
     * @param string $types
     *
     * @return string
     */
    private function sortJoinedTypes($types)
    {
        $types = array_filter(
            Preg::split('/([^|<]+(?:<.*>)?)/', $types, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY),
            static function ($value) {
                return '|' !== $value;
            }
        );

        return implode('|', $this->sortTypes($types));
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Phpdoc;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Graham Campbell <graham@alt-three.com>
 */
final class PhpdocTrimFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'PHPDoc should start and end with content, excluding the very first and last line of the docblocks.',
            [new CodeSample('<?php
/**
 *
 * Foo must be final class.
 *
 *
 */
final class Foo {}
')]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before PhpdocAlignFixer.
     * Must run after CommentToPhpdocFixer, GeneralPhpdocAnnotationRemoveFixer, PhpUnitTestAnnotationFixer, PhpdocIndentFixer, PhpdocNoAccessFixer, PhpdocNoEmptyReturnFixer, PhpdocNoPackageFixer, PhpdocOrderFixer, PhpdocScalarFixer, PhpdocToCommentFixer, PhpdocTypesFixer.
     */
    public function getPriority()
    {
        return -5;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_DOC_COMMENT);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if (!$token->isGivenKind(T_DOC_COMMENT)) {
                continue;
            }

            $content = $token->getContent();
            $content = $this->fixStart($content);
            // we need re-parse the docblock after fixing the start before
            // fixing the end in order for the lines to be correctly indexed
            $content = $this->fixEnd($content);
            $tokens[$index] = new Token([T_DOC_COMMENT, $content]);
        }
    }

    /**
     * Make sure the first useful line starts immediately after the first line.
     *
     * @param string $content
     *
     * @return string
     */
    private function fixStart($content)
    {
        return Preg::replace(
            '~
                (^/\*\*)            # DocComment begin
                (?:
                    \R\h*(?:\*\h*)? # lines without useful content
                    (?!\R\h*\*/)    # not followed by a DocComment end
                )+
                (\R\h*(?:\*\h*)?\S) # first line with useful content
            ~x',
            '$1$2',
            $content
        );
    }

    /**
     * Make sure the last useful line is immediately before the final line.
     *
     * @param string $content
     *
     * @return string
     */
    private function fixEnd($content)
    {
        return Preg::replace(
            '~
                (\R\h*(?:\*\h*)?\S.*?) # last line with useful content
                (?:
                    (?<!/\*\*)         # not preceded by a DocComment start
                    \R\h*(?:\*\h*)?    # lines without useful content
                )+
                (\R\h*\*/$)            # DocComment end
            ~xu',
            '$1$2',
            $content
        );
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Phpdoc;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Kuba Werłos <werlos@gmail.com>
 */
final class PhpdocVarAnnotationCorrectOrderFixer extends AbstractFixer
{
    public function getDefinition()
    {
        return new FixerDefinition(
            '`@var` and `@type` annotations must have type and name in the correct order.',
            [new CodeSample('<?php
/** @var $foo int */
$foo = 2 + 2;
')]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before PhpdocAlignFixer.
     * Must run after CommentToPhpdocFixer, PhpdocIndentFixer, PhpdocScalarFixer, PhpdocToCommentFixer, PhpdocTypesFixer.
     */
    public function getPriority()
    {
        return 0;
    }

    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_DOC_COMMENT);
    }

    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if (!$token->isGivenKind(T_DOC_COMMENT)) {
                continue;
            }

            if (false === stripos($token->getContent(), '@var') && false === stripos($token->getContent(), '@type')) {
                continue;
            }

            $newContent = Preg::replace(
                '/(@(?:type|var)\s*)(\$\S+)(\h+)([^\$](?:[^<\s]|<[^>]*>)*)(\s|\*)/i',
                '$1$4$3$2$5',
                $token->getContent()
            );

            if ($newContent === $token->getContent()) {
                continue;
            }

            $tokens[$index] = new Token([$token->getId(), $newContent]);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Phpdoc;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * Fixer for part of rule defined in PSR5 ¶7.22.
 *
 * @author SpacePossum
 */
final class PhpdocSingleLineVarSpacingFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Single line `@var` PHPDoc should have proper spacing.',
            [new CodeSample("<?php /**@var   MyClass   \$a   */\n\$a = test();\n")]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before PhpdocAlignFixer.
     * Must run after CommentToPhpdocFixer, PhpdocIndentFixer, PhpdocNoAliasTagFixer, PhpdocScalarFixer, PhpdocToCommentFixer, PhpdocTypesFixer.
     */
    public function getPriority()
    {
        return -10;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound([T_COMMENT, T_DOC_COMMENT]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        /** @var Token $token */
        foreach ($tokens as $index => $token) {
            if ($token->isGivenKind(T_DOC_COMMENT)) {
                $tokens[$index] = new Token([T_DOC_COMMENT, $this->fixTokenContent($token->getContent())]);

                continue;
            }

            if (!$token->isGivenKind(T_COMMENT)) {
                continue;
            }

            $content = $token->getContent();
            $fixedContent = $this->fixTokenContent($content);
            if ($content !== $fixedContent) {
                $tokens[$index] = new Token([T_DOC_COMMENT, $fixedContent]);
            }
        }
    }

    /**
     * @param string $content
     *
     * @return string
     */
    private function fixTokenContent($content)
    {
        return Preg::replaceCallback(
            '#^/\*\*\h*@var\h+(\S+)\h*(\$\S+)?\h*([^\n]*)\*/$#',
            static function (array $matches) {
                $content = '/** @var';
                for ($i = 1, $m = \count($matches); $i < $m; ++$i) {
                    if ('' !== $matches[$i]) {
                        $content .= ' '.$matches[$i];
                    }
                }

                $content = rtrim($content);

                return $content.' */';
            },
            $content
        );
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Phpdoc;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Graham Campbell <graham@alt-three.com>
 */
final class NoBlankLinesAfterPhpdocFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_DOC_COMMENT);
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'There should not be blank lines between docblock and the documented element.',
            [
                new CodeSample(
                    '<?php

/**
 * This is the bar class.
 */


class Bar {}
'
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before HeaderCommentFixer, PhpdocAlignFixer, SingleBlankLineBeforeNamespaceFixer.
     * Must run after CommentToPhpdocFixer, PhpdocIndentFixer, PhpdocScalarFixer, PhpdocToCommentFixer, PhpdocTypesFixer.
     */
    public function getPriority()
    {
        return -20;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        static $forbiddenSuccessors = [
            T_DOC_COMMENT,
            T_COMMENT,
            T_WHITESPACE,
            T_RETURN,
            T_THROW,
            T_GOTO,
            T_CONTINUE,
            T_BREAK,
            T_DECLARE,
            T_USE,
        ];

        foreach ($tokens as $index => $token) {
            if (!$token->isGivenKind(T_DOC_COMMENT)) {
                continue;
            }
            // get the next non-whitespace token inc comments, provided
            // that there is whitespace between it and the current token
            $next = $tokens->getNextNonWhitespace($index);
            if ($index + 2 === $next && false === $tokens[$next]->isGivenKind($forbiddenSuccessors)) {
                $this->fixWhitespace($tokens, $index + 1);
            }
        }
    }

    /**
     * Cleanup a whitespace token.
     *
     * @param int $index
     */
    private function fixWhitespace(Tokens $tokens, $index)
    {
        $content = $tokens[$index]->getContent();
        // if there is more than one new line in the whitespace, then we need to fix it
        if (substr_count($content, "\n") > 1) {
            // the final bit of the whitespace must be the next statement's indentation
            $tokens[$index] = new Token([T_WHITESPACE, substr($content, strrpos($content, "\n"))]);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Phpdoc;

use PhpCsFixer\AbstractPhpdocTypesFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\AllowedValueSubset;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;

/**
 * @author Graham Campbell <graham@alt-three.com>
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class PhpdocTypesFixer extends AbstractPhpdocTypesFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * Available types, grouped.
     *
     * @var array<string,string[]>
     */
    private static $possibleTypes = [
        'simple' => [
            'array',
            'bool',
            'callable',
            'float',
            'int',
            'iterable',
            'null',
            'object',
            'string',
        ],
        'alias' => [
            'boolean',
            'callback',
            'double',
            'integer',
            'real',
        ],
        'meta' => [
            '$this',
            'false',
            'mixed',
            'parent',
            'resource',
            'scalar',
            'self',
            'static',
            'true',
            'void',
        ],
    ];

    /**
     * @var array string[]
     */
    private $typesToFix = [];

    /**
     * {@inheritdoc}
     */
    public function configure(array $configuration = null)
    {
        parent::configure($configuration);

        $this->typesToFix = array_merge(...array_map(static function ($group) {
            return self::$possibleTypes[$group];
        }, $this->configuration['groups']));
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'The correct case must be used for standard PHP types in PHPDoc.',
            [
                new CodeSample(
                    '<?php
/**
 * @param STRING|String[] $bar
 *
 * @return inT[]
 */
'
                ),
                new CodeSample(
                    '<?php
/**
 * @param BOOL $foo
 *
 * @return MIXED
 */
',
                    ['groups' => ['simple', 'alias']]
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before GeneralPhpdocAnnotationRemoveFixer, NoBlankLinesAfterPhpdocFixer, NoEmptyPhpdocFixer, NoSuperfluousPhpdocTagsFixer, PhpdocAddMissingParamAnnotationFixer, PhpdocAlignFixer, PhpdocAlignFixer, PhpdocInlineTagFixer, PhpdocLineSpanFixer, PhpdocNoAccessFixer, PhpdocNoAliasTagFixer, PhpdocNoEmptyReturnFixer, PhpdocNoPackageFixer, PhpdocNoUselessInheritdocFixer, PhpdocOrderFixer, PhpdocReturnSelfReferenceFixer, PhpdocScalarFixer, PhpdocSeparationFixer, PhpdocSingleLineVarSpacingFixer, PhpdocSummaryFixer, PhpdocToParamTypeFixer, PhpdocToReturnTypeFixer, PhpdocToReturnTypeFixer, PhpdocTrimConsecutiveBlankLineSeparationFixer, PhpdocTrimFixer, PhpdocTypesOrderFixer, PhpdocVarAnnotationCorrectOrderFixer, PhpdocVarWithoutNameFixer.
     * Must run after PhpdocAnnotationWithoutDotFixer, PhpdocIndentFixer.
     */
    public function getPriority()
    {
        /*
         * Should be run before all other docblock fixers apart from the
         * phpdoc_to_comment and phpdoc_indent fixer to make sure all fixers
         * apply correct indentation to new code they add. This should run
         * before alignment of params is done since this fixer might change
         * the type and thereby un-aligning the params. We also must run before
         * the phpdoc_scalar_fixer so that it can make changes after us.
         */
        return 16;
    }

    /**
     * {@inheritdoc}
     */
    protected function normalize($type)
    {
        $lower = strtolower($type);

        if (\in_array($lower, $this->typesToFix, true)) {
            return $lower;
        }

        return $type;
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        $possibleGroups = array_keys(self::$possibleTypes);

        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('groups', 'Type groups to fix.'))
                ->setAllowedTypes(['array'])
                ->setAllowedValues([new AllowedValueSubset($possibleGroups)])
                ->setDefault($possibleGroups)
                ->getOption(),
        ]);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Phpdoc;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\DocBlock\Annotation;
use PhpCsFixer\DocBlock\DocBlock;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Graham Campbell <graham@alt-three.com>
 */
final class PhpdocNoEmptyReturnFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_DOC_COMMENT);
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            '`@return void` and `@return null` annotations should be omitted from PHPDoc.',
            [
                new CodeSample(
                    '<?php
/**
 * @return null
*/
function foo() {}
'
                ),
                new CodeSample(
                    '<?php
/**
 * @return void
*/
function foo() {}
'
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before NoEmptyPhpdocFixer, PhpdocAlignFixer, PhpdocOrderFixer, PhpdocSeparationFixer, PhpdocTrimFixer.
     * Must run after CommentToPhpdocFixer, PhpdocIndentFixer, PhpdocScalarFixer, PhpdocToCommentFixer, PhpdocTypesFixer, VoidReturnFixer.
     */
    public function getPriority()
    {
        return 10;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if (!$token->isGivenKind(T_DOC_COMMENT)) {
                continue;
            }

            $doc = new DocBlock($token->getContent());
            $annotations = $doc->getAnnotationsOfType('return');

            if (empty($annotations)) {
                continue;
            }

            foreach ($annotations as $annotation) {
                $this->fixAnnotation($doc, $annotation);
            }

            $newContent = $doc->getContent();

            if ($newContent === $token->getContent()) {
                continue;
            }

            if ('' === $newContent) {
                $tokens->clearTokenAndMergeSurroundingWhitespace($index);

                continue;
            }

            $tokens[$index] = new Token([T_DOC_COMMENT, $doc->getContent()]);
        }
    }

    /**
     * Remove return void or return null annotations..
     */
    private function fixAnnotation(DocBlock $doc, Annotation $annotation)
    {
        $types = $annotation->getNormalizedTypes();

        if (1 === \count($types) && ('null' === $types[0] || 'void' === $types[0])) {
            $annotation->remove();
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Phpdoc;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\DocBlock\Annotation;
use PhpCsFixer\DocBlock\DocBlock;
use PhpCsFixer\DocBlock\TagComparator;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Graham Campbell <graham@alt-three.com>
 */
final class PhpdocSeparationFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Annotations in PHPDoc should be grouped together so that annotations of the same type immediately follow each other, and annotations of a different type are separated by a single blank line.',
            [
                new CodeSample(
                    '<?php
/**
 * Description.
 * @param string $foo
 *
 *
 * @param bool   $bar Bar
 * @throws Exception|RuntimeException
 * @return bool
 */
function fnc($foo, $bar) {}
'
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before PhpdocAlignFixer.
     * Must run after CommentToPhpdocFixer, GeneralPhpdocAnnotationRemoveFixer, PhpdocIndentFixer, PhpdocNoAccessFixer, PhpdocNoEmptyReturnFixer, PhpdocNoPackageFixer, PhpdocOrderFixer, PhpdocScalarFixer, PhpdocToCommentFixer, PhpdocTypesFixer.
     */
    public function getPriority()
    {
        return -3;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_DOC_COMMENT);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if (!$token->isGivenKind(T_DOC_COMMENT)) {
                continue;
            }

            $doc = new DocBlock($token->getContent());
            $this->fixDescription($doc);
            $this->fixAnnotations($doc);

            $tokens[$index] = new Token([T_DOC_COMMENT, $doc->getContent()]);
        }
    }

    /**
     * Make sure the description is separated from the annotations.
     */
    private function fixDescription(DocBlock $doc)
    {
        foreach ($doc->getLines() as $index => $line) {
            if ($line->containsATag()) {
                break;
            }

            if ($line->containsUsefulContent()) {
                $next = $doc->getLine($index + 1);

                if (null !== $next && $next->containsATag()) {
                    $line->addBlank();

                    break;
                }
            }
        }
    }

    /**
     * Make sure the annotations are correctly separated.
     *
     * @return string
     */
    private function fixAnnotations(DocBlock $doc)
    {
        foreach ($doc->getAnnotations() as $index => $annotation) {
            $next = $doc->getAnnotation($index + 1);

            if (null === $next) {
                break;
            }

            if (true === $next->getTag()->valid()) {
                if (TagComparator::shouldBeTogether($annotation->getTag(), $next->getTag())) {
                    $this->ensureAreTogether($doc, $annotation, $next);
                } else {
                    $this->ensureAreSeparate($doc, $annotation, $next);
                }
            }
        }

        return $doc->getContent();
    }

    /**
     * Force the given annotations to immediately follow each other.
     */
    private function ensureAreTogether(DocBlock $doc, Annotation $first, Annotation $second)
    {
        $pos = $first->getEnd();
        $final = $second->getStart();

        for ($pos = $pos + 1; $pos < $final; ++$pos) {
            $doc->getLine($pos)->remove();
        }
    }

    /**
     * Force the given annotations to have one empty line between each other.
     */
    private function ensureAreSeparate(DocBlock $doc, Annotation $first, Annotation $second)
    {
        $pos = $first->getEnd();
        $final = $second->getStart() - 1;

        // check if we need to add a line, or need to remove one or more lines
        if ($pos === $final) {
            $doc->getLine($pos)->addBlank();

            return;
        }

        for ($pos = $pos + 1; $pos < $final; ++$pos) {
            $doc->getLine($pos)->remove();
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Phpdoc;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\DocBlock\DocBlock;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Graham Campbell <graham@alt-three.com>
 */
final class PhpdocOrderFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_DOC_COMMENT);
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Annotations in PHPDoc should be ordered so that `@param` annotations come first, then `@throws` annotations, then `@return` annotations.',
            [
                new CodeSample(
                    '<?php
/**
 * Hello there!
 *
 * @throws Exception|RuntimeException foo
 * @custom Test!
 * @return int  Return the number of changes.
 * @param string $foo
 * @param bool   $bar Bar
 */
'
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before PhpdocAlignFixer, PhpdocSeparationFixer, PhpdocTrimFixer.
     * Must run after CommentToPhpdocFixer, PhpdocAddMissingParamAnnotationFixer, PhpdocIndentFixer, PhpdocNoAccessFixer, PhpdocNoEmptyReturnFixer, PhpdocNoPackageFixer, PhpdocScalarFixer, PhpdocToCommentFixer, PhpdocTypesFixer.
     */
    public function getPriority()
    {
        return -2;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if (!$token->isGivenKind(T_DOC_COMMENT)) {
                continue;
            }

            $content = $token->getContent();
            // move param to start, return to end, leave throws in the middle
            $content = $this->moveParamAnnotations($content);
            // we're parsing the content again to make sure the internal
            // state of the dockblock is correct after the modifications
            $content = $this->moveReturnAnnotations($content);
            // persist the content at the end
            $tokens[$index] = new Token([T_DOC_COMMENT, $content]);
        }
    }

    /**
     * Move all param annotations in before throws and return annotations.
     *
     * @param string $content
     *
     * @return string
     */
    private function moveParamAnnotations($content)
    {
        $doc = new DocBlock($content);
        $params = $doc->getAnnotationsOfType('param');

        // nothing to do if there are no param annotations
        if (empty($params)) {
            return $content;
        }

        $others = $doc->getAnnotationsOfType(['throws', 'return']);

        if (empty($others)) {
            return $content;
        }

        // get the index of the final line of the final param annotation
        $end = end($params)->getEnd();

        $line = $doc->getLine($end);

        // move stuff about if required
        foreach ($others as $other) {
            if ($other->getStart() < $end) {
                // we're doing this to maintain the original line indexes
                $line->setContent($line->getContent().$other->getContent());
                $other->remove();
            }
        }

        return $doc->getContent();
    }

    /**
     * Move all return annotations after param and throws annotations.
     *
     * @param string $content
     *
     * @return string
     */
    private function moveReturnAnnotations($content)
    {
        $doc = new DocBlock($content);
        $returns = $doc->getAnnotationsOfType('return');

        // nothing to do if there are no return annotations
        if (empty($returns)) {
            return $content;
        }

        $others = $doc->getAnnotationsOfType(['param', 'throws']);

        // nothing to do if there are no other annotations
        if (empty($others)) {
            return $content;
        }

        // get the index of the first line of the first return annotation
        $start = $returns[0]->getStart();
        $line = $doc->getLine($start);

        // move stuff about if required
        foreach (array_reverse($others) as $other) {
            if ($other->getEnd() > $start) {
                // we're doing this to maintain the original line indexes
                $line->setContent($other->getContent().$line->getContent());
                $other->remove();
            }
        }

        return $doc->getContent();
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Phpdoc;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * Remove inheritdoc tags from classy that does not inherit.
 *
 * @author SpacePossum
 */
final class PhpdocNoUselessInheritdocFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Classy that does not inherit must not have `@inheritdoc` tags.',
            [
                new CodeSample("<?php\n/** {@inheritdoc} */\nclass Sample\n{\n}\n"),
                new CodeSample("<?php\nclass Sample\n{\n    /**\n     * @inheritdoc\n     */\n    public function Test()\n    {\n    }\n}\n"),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before NoEmptyPhpdocFixer, NoTrailingWhitespaceInCommentFixer, PhpdocAlignFixer.
     * Must run after CommentToPhpdocFixer, PhpdocIndentFixer, PhpdocScalarFixer, PhpdocToCommentFixer, PhpdocToCommentFixer, PhpdocTypesFixer.
     */
    public function getPriority()
    {
        return 6;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_DOC_COMMENT) && $tokens->isAnyTokenKindsFound([T_CLASS, T_INTERFACE]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        // min. offset 4 as minimal candidate is @: <?php\n/** @inheritdoc */class min{}
        for ($index = 1, $count = \count($tokens) - 4; $index < $count; ++$index) {
            if ($tokens[$index]->isGivenKind([T_CLASS, T_INTERFACE])) {
                $index = $this->fixClassy($tokens, $index);
            }
        }
    }

    /**
     * @param int $index
     *
     * @return int
     */
    private function fixClassy(Tokens $tokens, $index)
    {
        // figure out where the classy starts
        $classOpenIndex = $tokens->getNextTokenOfKind($index, ['{']);

        // figure out where the classy ends
        $classEndIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $classOpenIndex);

        // is classy extending or implementing some interface
        $extendingOrImplementing = $this->isExtendingOrImplementing($tokens, $index, $classOpenIndex);

        if (!$extendingOrImplementing) {
            // PHPDoc of classy should not have inherit tag even when using traits as Traits cannot provide this information
            $this->fixClassyOutside($tokens, $index);
        }

        // figure out if the classy uses a trait
        if (!$extendingOrImplementing && $this->isUsingTrait($tokens, $index, $classOpenIndex, $classEndIndex)) {
            $extendingOrImplementing = true;
        }

        $this->fixClassyInside($tokens, $classOpenIndex, $classEndIndex, !$extendingOrImplementing);

        return $classEndIndex;
    }

    /**
     * @param int  $classOpenIndex
     * @param int  $classEndIndex
     * @param bool $fixThisLevel
     */
    private function fixClassyInside(Tokens $tokens, $classOpenIndex, $classEndIndex, $fixThisLevel)
    {
        for ($i = $classOpenIndex; $i < $classEndIndex; ++$i) {
            if ($tokens[$i]->isGivenKind(T_CLASS)) {
                $i = $this->fixClassy($tokens, $i);
            } elseif ($fixThisLevel && $tokens[$i]->isGivenKind(T_DOC_COMMENT)) {
                $this->fixToken($tokens, $i);
            }
        }
    }

    /**
     * @param int $classIndex
     */
    private function fixClassyOutside(Tokens $tokens, $classIndex)
    {
        $previousIndex = $tokens->getPrevNonWhitespace($classIndex);
        if ($tokens[$previousIndex]->isGivenKind(T_DOC_COMMENT)) {
            $this->fixToken($tokens, $previousIndex);
        }
    }

    /**
     * @param int $tokenIndex
     */
    private function fixToken(Tokens $tokens, $tokenIndex)
    {
        $count = 0;
        $content = Preg::replaceCallback(
            '#(\h*(?:@{*|{*\h*@)\h*inheritdoc\h*)([^}]*)((?:}*)\h*)#i',
            static function ($matches) {
                return ' '.$matches[2];
            },
            $tokens[$tokenIndex]->getContent(),
            -1,
            $count
        );

        if ($count) {
            $tokens[$tokenIndex] = new Token([T_DOC_COMMENT, $content]);
        }
    }

    /**
     * @param int $classIndex
     * @param int $classOpenIndex
     *
     * @return bool
     */
    private function isExtendingOrImplementing(Tokens $tokens, $classIndex, $classOpenIndex)
    {
        for ($index = $classIndex; $index < $classOpenIndex; ++$index) {
            if ($tokens[$index]->isGivenKind([T_EXTENDS, T_IMPLEMENTS])) {
                return true;
            }
        }

        return false;
    }

    /**
     * @param int $classIndex
     * @param int $classOpenIndex
     * @param int $classCloseIndex
     *
     * @return bool
     */
    private function isUsingTrait(Tokens $tokens, $classIndex, $classOpenIndex, $classCloseIndex)
    {
        if ($tokens[$classIndex]->isGivenKind(T_INTERFACE)) {
            // cannot use Trait inside an interface
            return false;
        }

        $useIndex = $tokens->getNextTokenOfKind($classOpenIndex, [[CT::T_USE_TRAIT]]);

        return null !== $useIndex && $useIndex < $classCloseIndex;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Phpdoc;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\DocBlock\DocBlock;
use PhpCsFixer\DocBlock\Line;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Graham Campbell <graham@alt-three.com>
 * @author Dave van der Brugge <dmvdbrugge@gmail.com>
 */
final class PhpdocVarWithoutNameFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            '`@var` and `@type` annotations of classy properties should not contain the name.',
            [new CodeSample('<?php
final class Foo
{
    /**
     * @var int $bar
     */
    public $bar;

    /**
     * @type $baz float
     */
    public $baz;
}
')]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before PhpdocAlignFixer.
     * Must run after CommentToPhpdocFixer, PhpdocIndentFixer, PhpdocScalarFixer, PhpdocToCommentFixer, PhpdocTypesFixer.
     */
    public function getPriority()
    {
        return 0;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_DOC_COMMENT) && $tokens->isAnyTokenKindsFound(Token::getClassyTokenKinds());
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if (!$token->isGivenKind(T_DOC_COMMENT)) {
                continue;
            }

            $nextIndex = $tokens->getNextMeaningfulToken($index);

            if (null === $nextIndex) {
                continue;
            }

            // For people writing static public $foo instead of public static $foo
            if ($tokens[$nextIndex]->isGivenKind(T_STATIC)) {
                $nextIndex = $tokens->getNextMeaningfulToken($nextIndex);
            }

            // We want only doc blocks that are for properties and thus have specified access modifiers next
            if (!$tokens[$nextIndex]->isGivenKind([T_PRIVATE, T_PROTECTED, T_PUBLIC, T_VAR])) {
                continue;
            }

            $doc = new DocBlock($token->getContent());

            $firstLevelLines = $this->getFirstLevelLines($doc);
            $annotations = $doc->getAnnotationsOfType(['type', 'var']);

            foreach ($annotations as $annotation) {
                if (isset($firstLevelLines[$annotation->getStart()])) {
                    $this->fixLine($firstLevelLines[$annotation->getStart()]);
                }
            }

            $tokens[$index] = new Token([T_DOC_COMMENT, $doc->getContent()]);
        }
    }

    private function fixLine(Line $line)
    {
        $content = $line->getContent();

        Preg::matchAll('/ \$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/', $content, $matches);

        if (isset($matches[0][0])) {
            $line->setContent(str_replace($matches[0][0], '', $content));
        }
    }

    /**
     * @return Line[]
     */
    private function getFirstLevelLines(DocBlock $docBlock)
    {
        $nested = 0;
        $lines = $docBlock->getLines();

        foreach ($lines as $index => $line) {
            $content = $line->getContent();

            if (Preg::match('/\s*\*\s*}$/', $content)) {
                --$nested;
            }

            if ($nested > 0) {
                unset($lines[$index]);
            }

            if (Preg::match('/\s\{$/', $content)) {
                ++$nested;
            }
        }

        return $lines;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Phpdoc;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\DocBlock\DocBlock;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerConfiguration\AllowedValueSubset;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Fabien Potencier <fabien@symfony.com>
 * @author Jordi Boggiano <j.boggiano@seld.be>
 * @author Sebastiaan Stok <s.stok@rollerscapes.net>
 * @author Graham Campbell <graham@alt-three.com>
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class PhpdocAlignFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface, WhitespacesAwareFixerInterface
{
    /**
     * @internal
     */
    const ALIGN_LEFT = 'left';

    /**
     * @internal
     */
    const ALIGN_VERTICAL = 'vertical';

    /**
     * @var string
     */
    private $regex;

    /**
     * @var string
     */
    private $regexCommentLine;

    /**
     * @var string
     */
    private $align;

    private static $alignableTags = [
        'param',
        'property',
        'property-read',
        'property-write',
        'return',
        'throws',
        'type',
        'var',
        'method',
    ];

    private static $tagsWithName = [
        'param',
        'property',
    ];

    private static $tagsWithMethodSignature = [
        'method',
    ];

    /**
     * {@inheritdoc}
     */
    public function configure(array $configuration = null)
    {
        parent::configure($configuration);

        $tagsWithNameToAlign = array_intersect($this->configuration['tags'], self::$tagsWithName);
        $tagsWithMethodSignatureToAlign = array_intersect($this->configuration['tags'], self::$tagsWithMethodSignature);
        $tagsWithoutNameToAlign = array_diff($this->configuration['tags'], $tagsWithNameToAlign, $tagsWithMethodSignatureToAlign);
        $types = [];

        $indent = '(?P<indent>(?: {2}|\t)*)';
        // e.g. @param <hint> <$var>
        if (!empty($tagsWithNameToAlign)) {
            $types[] = '(?P<tag>'.implode('|', $tagsWithNameToAlign).')\s+(?P<hint>[^$]+?)\s+(?P<var>(?:&|\.{3})?\$[^\s]+)';
        }

        // e.g. @return <hint>
        if (!empty($tagsWithoutNameToAlign)) {
            $types[] = '(?P<tag2>'.implode('|', $tagsWithoutNameToAlign).')\s+(?P<hint2>[^\s]+?)';
        }

        // e.g. @method <hint> <signature>
        if (!empty($tagsWithMethodSignatureToAlign)) {
            $types[] = '(?P<tag3>'.implode('|', $tagsWithMethodSignatureToAlign).')(\s+(?P<hint3>[^\s(]+)|)\s+(?P<signature>.+\))';
        }

        // optional <desc>
        $desc = '(?:\s+(?P<desc>\V*))';

        $this->regex = '/^'.$indent.' \* @(?:'.implode('|', $types).')'.$desc.'\s*$/u';
        $this->regexCommentLine = '/^'.$indent.' \*(?! @)(?:\s+(?P<desc>\V+))(?<!\*\/)\r?$/u';
        $this->align = $this->configuration['align'];
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        $code = <<<'EOF'
<?php
/**
 * @param  EngineInterface $templating
 * @param string      $format
 * @param  int  $code       an HTTP response status code
 * @param    bool         $debug
 * @param  mixed    &$reference     a parameter passed by reference
 */

EOF;

        return new FixerDefinition(
            'All items of the given phpdoc tags must be either left-aligned or (by default) aligned vertically.',
            [
                new CodeSample($code),
                new CodeSample($code, ['align' => self::ALIGN_VERTICAL]),
                new CodeSample($code, ['align' => self::ALIGN_LEFT]),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run after CommentToPhpdocFixer, CommentToPhpdocFixer, GeneralPhpdocAnnotationRemoveFixer, NoBlankLinesAfterPhpdocFixer, NoEmptyPhpdocFixer, NoSuperfluousPhpdocTagsFixer, PhpdocAddMissingParamAnnotationFixer, PhpdocAddMissingParamAnnotationFixer, PhpdocAnnotationWithoutDotFixer, PhpdocIndentFixer, PhpdocIndentFixer, PhpdocInlineTagFixer, PhpdocLineSpanFixer, PhpdocNoAccessFixer, PhpdocNoAliasTagFixer, PhpdocNoEmptyReturnFixer, PhpdocNoPackageFixer, PhpdocNoUselessInheritdocFixer, PhpdocOrderFixer, PhpdocReturnSelfReferenceFixer, PhpdocScalarFixer, PhpdocScalarFixer, PhpdocSeparationFixer, PhpdocSingleLineVarSpacingFixer, PhpdocSummaryFixer, PhpdocToCommentFixer, PhpdocToCommentFixer, PhpdocToParamTypeFixer, PhpdocToReturnTypeFixer, PhpdocTrimConsecutiveBlankLineSeparationFixer, PhpdocTrimFixer, PhpdocTypesFixer, PhpdocTypesFixer, PhpdocTypesOrderFixer, PhpdocVarAnnotationCorrectOrderFixer, PhpdocVarWithoutNameFixer.
     */
    public function getPriority()
    {
        /*
         * Should be run after all other docblock fixers. This because they
         * modify other annotations to change their type and or separation
         * which totally change the behavior of this fixer. It's important that
         * annotations are of the correct type, and are grouped correctly
         * before running this fixer.
         */
        return -21;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_DOC_COMMENT);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if (!$token->isGivenKind(T_DOC_COMMENT)) {
                continue;
            }

            $content = $token->getContent();
            $docBlock = new DocBlock($content);
            $this->fixDocBlock($docBlock);
            $newContent = $docBlock->getContent();
            if ($newContent !== $content) {
                $tokens[$index] = new Token([T_DOC_COMMENT, $newContent]);
            }
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        $tags = new FixerOptionBuilder('tags', 'The tags that should be aligned.');
        $tags
            ->setAllowedTypes(['array'])
            ->setAllowedValues([new AllowedValueSubset(self::$alignableTags)])
            /*
             * By default, all tags apart from @property and @method will be aligned for backwards compatibility
             * @TODO 3.0 Align all available tags by default
             */
            ->setDefault([
                'param',
                'return',
                'throws',
                'type',
                'var',
            ])
        ;

        $align = new FixerOptionBuilder('align', 'Align comments');
        $align
            ->setAllowedTypes(['string'])
            ->setAllowedValues([self::ALIGN_LEFT, self::ALIGN_VERTICAL])
            ->setDefault(self::ALIGN_VERTICAL)
        ;

        return new FixerConfigurationResolver([$tags->getOption(), $align->getOption()]);
    }

    private function fixDocBlock(DocBlock $docBlock)
    {
        $lineEnding = $this->whitespacesConfig->getLineEnding();

        for ($i = 0, $l = \count($docBlock->getLines()); $i < $l; ++$i) {
            $items = [];
            $matches = $this->getMatches($docBlock->getLine($i)->getContent());

            if (null === $matches) {
                continue;
            }

            $current = $i;
            $items[] = $matches;

            while (true) {
                if (null === $docBlock->getLine(++$i)) {
                    break 2;
                }

                $matches = $this->getMatches($docBlock->getLine($i)->getContent(), true);
                if (null === $matches) {
                    break;
                }

                $items[] = $matches;
            }

            // compute the max length of the tag, hint and variables
            $tagMax = 0;
            $hintMax = 0;
            $varMax = 0;

            foreach ($items as $item) {
                if (null === $item['tag']) {
                    continue;
                }

                $tagMax = max($tagMax, \strlen($item['tag']));
                $hintMax = max($hintMax, \strlen($item['hint']));
                $varMax = max($varMax, \strlen($item['var']));
            }

            $currTag = null;

            // update
            foreach ($items as $j => $item) {
                if (null === $item['tag']) {
                    if ('@' === $item['desc'][0]) {
                        $docBlock->getLine($current + $j)->setContent($item['indent'].' * '.$item['desc'].$lineEnding);

                        continue;
                    }

                    $extraIndent = 2;

                    if (\in_array($currTag, self::$tagsWithName, true) || \in_array($currTag, self::$tagsWithMethodSignature, true)) {
                        $extraIndent = 3;
                    }

                    $line =
                        $item['indent']
                        .' *  '
                        .$this->getIndent(
                            $tagMax + $hintMax + $varMax + $extraIndent,
                            $this->getLeftAlignedDescriptionIndent($items, $j)
                        )
                        .$item['desc']
                        .$lineEnding;

                    $docBlock->getLine($current + $j)->setContent($line);

                    continue;
                }

                $currTag = $item['tag'];

                $line =
                    $item['indent']
                    .' * @'
                    .$item['tag']
                    .$this->getIndent(
                        $tagMax - \strlen($item['tag']) + 1,
                        $item['hint'] ? 1 : 0
                    )
                    .$item['hint']
                ;

                if (!empty($item['var'])) {
                    $line .=
                        $this->getIndent(($hintMax ?: -1) - \strlen($item['hint']) + 1)
                        .$item['var']
                        .(
                            !empty($item['desc'])
                            ? $this->getIndent($varMax - \strlen($item['var']) + 1).$item['desc'].$lineEnding
                            : $lineEnding
                        )
                    ;
                } elseif (!empty($item['desc'])) {
                    $line .= $this->getIndent($hintMax - \strlen($item['hint']) + 1).$item['desc'].$lineEnding;
                } else {
                    $line .= $lineEnding;
                }

                $docBlock->getLine($current + $j)->setContent($line);
            }
        }
    }

    /**
     * @param string $line
     * @param bool   $matchCommentOnly
     *
     * @return null|array<string, null|string>
     */
    private function getMatches($line, $matchCommentOnly = false)
    {
        if (Preg::match($this->regex, $line, $matches)) {
            if (!empty($matches['tag2'])) {
                $matches['tag'] = $matches['tag2'];
                $matches['hint'] = $matches['hint2'];
                $matches['var'] = '';
            }

            if (!empty($matches['tag3'])) {
                $matches['tag'] = $matches['tag3'];
                $matches['hint'] = $matches['hint3'];
                $matches['var'] = $matches['signature'];
            }

            if (isset($matches['hint'])) {
                $matches['hint'] = trim($matches['hint']);
            }

            return $matches;
        }

        if ($matchCommentOnly && Preg::match($this->regexCommentLine, $line, $matches)) {
            $matches['tag'] = null;
            $matches['var'] = '';
            $matches['hint'] = '';

            return $matches;
        }

        return null;
    }

    /**
     * @param int $verticalAlignIndent
     * @param int $leftAlignIndent
     *
     * @return string
     */
    private function getIndent($verticalAlignIndent, $leftAlignIndent = 1)
    {
        $indent = self::ALIGN_VERTICAL === $this->align ? $verticalAlignIndent : $leftAlignIndent;

        return str_repeat(' ', $indent);
    }

    /**
     * @param array[] $items
     * @param int     $index
     *
     * @return int
     */
    private function getLeftAlignedDescriptionIndent(array $items, $index)
    {
        if (self::ALIGN_LEFT !== $this->align) {
            return 0;
        }

        // Find last tagged line:
        $item = null;
        for (; $index >= 0; --$index) {
            $item = $items[$index];
            if (null !== $item['tag']) {
                break;
            }
        }

        // No last tag found — no indent:
        if (null === $item) {
            return 0;
        }

        // Indent according to existing values:
        return
            $this->getSentenceIndent($item['tag']) +
            $this->getSentenceIndent($item['hint']) +
            $this->getSentenceIndent($item['var']);
    }

    /**
     * Get indent for sentence.
     *
     * @param null|string $sentence
     *
     * @return int
     */
    private function getSentenceIndent($sentence)
    {
        if (null === $sentence) {
            return 0;
        }

        $length = \strlen($sentence);

        return 0 === $length ? 0 : $length + 1;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Phpdoc;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Analyzer\CommentsAnalyzer;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Ceeram <ceeram@cakephp.org>
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class PhpdocToCommentFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_DOC_COMMENT);
    }

    /**
     * {@inheritdoc}
     *
     * Must run before GeneralPhpdocAnnotationRemoveFixer, NoBlankLinesAfterPhpdocFixer, NoEmptyCommentFixer, NoEmptyPhpdocFixer, NoSuperfluousPhpdocTagsFixer, PhpdocAddMissingParamAnnotationFixer, PhpdocAlignFixer, PhpdocAlignFixer, PhpdocAnnotationWithoutDotFixer, PhpdocIndentFixer, PhpdocInlineTagFixer, PhpdocLineSpanFixer, PhpdocNoAccessFixer, PhpdocNoAliasTagFixer, PhpdocNoEmptyReturnFixer, PhpdocNoPackageFixer, PhpdocNoUselessInheritdocFixer, PhpdocNoUselessInheritdocFixer, PhpdocOrderFixer, PhpdocReturnSelfReferenceFixer, PhpdocSeparationFixer, PhpdocSingleLineVarSpacingFixer, PhpdocSummaryFixer, PhpdocToParamTypeFixer, PhpdocToReturnTypeFixer, PhpdocTrimConsecutiveBlankLineSeparationFixer, PhpdocTrimFixer, PhpdocTypesOrderFixer, PhpdocVarAnnotationCorrectOrderFixer, PhpdocVarWithoutNameFixer.
     * Must run after CommentToPhpdocFixer.
     */
    public function getPriority()
    {
        /*
         * Should be run before all other docblock fixers so that these fixers
         * don't touch doc comments which are meant to be converted to regular
         * comments.
         */
        return 25;
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Docblocks should only be used on structural elements.',
            [
                new CodeSample(
                    '<?php
$first = true;// needed because by default first docblock is never fixed.

/** This should not be a docblock */
foreach($connections as $key => $sqlite) {
    $sqlite->open($path);
}
'
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $commentsAnalyzer = new CommentsAnalyzer();

        foreach ($tokens as $index => $token) {
            if (!$token->isGivenKind(T_DOC_COMMENT)) {
                continue;
            }

            if ($commentsAnalyzer->isHeaderComment($tokens, $index)) {
                continue;
            }

            if ($commentsAnalyzer->isBeforeStructuralElement($tokens, $index)) {
                continue;
            }

            $tokens[$index] = new Token([T_COMMENT, '/*'.ltrim($token->getContent(), '/*')]);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Phpdoc;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\DocBlock\Annotation;
use PhpCsFixer\DocBlock\DocBlock;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\FixerDefinition\VersionSpecification;
use PhpCsFixer\FixerDefinition\VersionSpecificCodeSample;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Analyzer\NamespaceUsesAnalyzer;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

final class NoSuperfluousPhpdocTagsFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Removes `@param`, `@return` and `@var` tags that don\'t provide any useful information.',
            [
                new CodeSample('<?php
class Foo {
    /**
     * @param Bar $bar
     * @param mixed $baz
     */
    public function doFoo(Bar $bar, $baz) {}
}
'),
                new CodeSample('<?php
class Foo {
    /**
     * @param Bar $bar
     * @param mixed $baz
     */
    public function doFoo(Bar $bar, $baz) {}
}
', ['allow_mixed' => true]),
                new VersionSpecificCodeSample('<?php
class Foo {
    /**
     * @param Bar $bar
     * @param mixed $baz
     *
     * @return Baz
     */
    public function doFoo(Bar $bar, $baz): Baz {}
}
', new VersionSpecification(70000)),
                new CodeSample('<?php
class Foo {
    /**
     * @inheritDoc
     */
    public function doFoo(Bar $bar, $baz) {}
}
', ['remove_inheritdoc' => true]),
                new CodeSample('<?php
class Foo {
    /**
     * @param Bar $bar
     * @param mixed $baz
     * @param string|int|null $qux
     */
    public function doFoo(Bar $bar, $baz /*, $qux = null */) {}
}
', ['allow_unused_params' => true]),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before NoEmptyPhpdocFixer, PhpdocAlignFixer.
     * Must run after CommentToPhpdocFixer, FullyQualifiedStrictTypesFixer, PhpdocAddMissingParamAnnotationFixer, PhpdocIndentFixer, PhpdocReturnSelfReferenceFixer, PhpdocScalarFixer, PhpdocToCommentFixer, PhpdocToParamTypeFixer, PhpdocToReturnTypeFixer, PhpdocTypesFixer.
     */
    public function getPriority()
    {
        return 6;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_DOC_COMMENT);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $namespaceUseAnalyzer = new NamespaceUsesAnalyzer();

        $shortNames = [];
        foreach ($namespaceUseAnalyzer->getDeclarationsFromTokens($tokens) as $namespaceUseAnalysis) {
            $shortNames[strtolower($namespaceUseAnalysis->getShortName())] = '\\'.strtolower($namespaceUseAnalysis->getFullName());
        }

        foreach ($tokens as $index => $token) {
            if (!$token->isGivenKind(T_DOC_COMMENT)) {
                continue;
            }

            $content = $initialContent = $token->getContent();

            $documentedElementIndex = $this->findDocumentedElement($tokens, $index);

            if (null === $documentedElementIndex) {
                continue;
            }

            $token = $tokens[$documentedElementIndex];

            if ($token->isGivenKind(T_FUNCTION)) {
                $content = $this->fixFunctionDocComment($content, $tokens, $index, $shortNames);
            } elseif ($token->isGivenKind(T_VARIABLE)) {
                $content = $this->fixPropertyDocComment($content, $tokens, $index, $shortNames);
            }

            if ($this->configuration['remove_inheritdoc']) {
                $content = $this->removeSuperfluousInheritDoc($content);
            }

            if ($content !== $initialContent) {
                $tokens[$index] = new Token([T_DOC_COMMENT, $content]);
            }
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('allow_mixed', 'Whether type `mixed` without description is allowed (`true`) or considered superfluous (`false`)'))
                ->setAllowedTypes(['bool'])
                ->setDefault(false)
                ->getOption(),
            (new FixerOptionBuilder('remove_inheritdoc', 'Remove `@inheritDoc` tags'))
                ->setAllowedTypes(['bool'])
                ->setDefault(false)
                ->getOption(),
            (new FixerOptionBuilder('allow_unused_params', 'Whether `param` annotation without actual signature is allowed (`true`) or considered superfluous (`false`)'))
                ->setAllowedTypes(['bool'])
                ->setDefault(false)
                ->getOption(),
        ]);
    }

    /**
     * @param int $docCommentIndex
     *
     * @return null|int
     */
    private function findDocumentedElement(Tokens $tokens, $docCommentIndex)
    {
        $index = $docCommentIndex;

        do {
            $index = $tokens->getNextMeaningfulToken($index);

            if (null === $index || $tokens[$index]->isGivenKind([T_FUNCTION, T_CLASS, T_INTERFACE])) {
                return $index;
            }
        } while ($tokens[$index]->isGivenKind([T_ABSTRACT, T_FINAL, T_STATIC, T_PRIVATE, T_PROTECTED, T_PUBLIC]));

        $index = $tokens->getNextMeaningfulToken($docCommentIndex);

        $kindsBeforeProperty = [T_STATIC, T_PRIVATE, T_PROTECTED, T_PUBLIC, CT::T_NULLABLE_TYPE, CT::T_ARRAY_TYPEHINT, T_STRING, T_NS_SEPARATOR];

        if (!$tokens[$index]->isGivenKind($kindsBeforeProperty)) {
            return null;
        }

        do {
            $index = $tokens->getNextMeaningfulToken($index);

            if ($tokens[$index]->isGivenKind(T_VARIABLE)) {
                return $index;
            }
        } while ($tokens[$index]->isGivenKind($kindsBeforeProperty));

        return null;
    }

    /**
     * @param string $content
     * @param int    $functionIndex
     *
     * @return string
     */
    private function fixFunctionDocComment($content, Tokens $tokens, $functionIndex, array $shortNames)
    {
        $docBlock = new DocBlock($content);

        $openingParenthesisIndex = $tokens->getNextTokenOfKind($functionIndex, ['(']);
        $closingParenthesisIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $openingParenthesisIndex);

        $argumentsInfo = $this->getArgumentsInfo(
            $tokens,
            $openingParenthesisIndex + 1,
            $closingParenthesisIndex - 1
        );

        foreach ($docBlock->getAnnotationsOfType('param') as $annotation) {
            if (0 === Preg::match('/@param(?:\s+[^\$]\S+)?\s+(\$\S+)/', $annotation->getContent(), $matches)) {
                continue;
            }

            $argumentName = $matches[1];

            if (!isset($argumentsInfo[$argumentName]) && $this->configuration['allow_unused_params']) {
                continue;
            }

            if (!isset($argumentsInfo[$argumentName]) || $this->annotationIsSuperfluous($annotation, $argumentsInfo[$argumentName], $shortNames)) {
                $annotation->remove();
            }
        }

        $returnTypeInfo = $this->getReturnTypeInfo($tokens, $closingParenthesisIndex);

        foreach ($docBlock->getAnnotationsOfType('return') as $annotation) {
            if ($this->annotationIsSuperfluous($annotation, $returnTypeInfo, $shortNames)) {
                $annotation->remove();
            }
        }

        return $docBlock->getContent();
    }

    /**
     * @param string $content
     * @param int    $index   Index of the DocComment token
     *
     * @return string
     */
    private function fixPropertyDocComment($content, Tokens $tokens, $index, array $shortNames)
    {
        $docBlock = new DocBlock($content);

        do {
            $index = $tokens->getNextMeaningfulToken($index);
        } while ($tokens[$index]->isGivenKind([T_STATIC, T_PRIVATE, T_PROTECTED, T_PUBLIC]));

        $propertyTypeInfo = $this->getPropertyTypeInfo($tokens, $index);

        foreach ($docBlock->getAnnotationsOfType('var') as $annotation) {
            if ($this->annotationIsSuperfluous($annotation, $propertyTypeInfo, $shortNames)) {
                $annotation->remove();
            }
        }

        return $docBlock->getContent();
    }

    /**
     * @param int $start
     * @param int $end
     *
     * @return array<string, array>
     */
    private function getArgumentsInfo(Tokens $tokens, $start, $end)
    {
        $argumentsInfo = [];

        for ($index = $start; $index <= $end; ++$index) {
            $token = $tokens[$index];

            if (!$token->isGivenKind(T_VARIABLE)) {
                continue;
            }

            $beforeArgumentIndex = $tokens->getPrevTokenOfKind($index, ['(', ',']);
            $typeIndex = $tokens->getNextMeaningfulToken($beforeArgumentIndex);

            if ($typeIndex !== $index) {
                $info = $this->parseTypeHint($tokens, $typeIndex);
            } else {
                $info = [
                    'type' => null,
                    'allows_null' => true,
                ];
            }

            if (!$info['allows_null']) {
                $nextIndex = $tokens->getNextMeaningfulToken($index);
                if (
                    $tokens[$nextIndex]->equals('=')
                    && $tokens[$tokens->getNextMeaningfulToken($nextIndex)]->equals([T_STRING, 'null'])
                ) {
                    $info['allows_null'] = true;
                }
            }

            $argumentsInfo[$token->getContent()] = $info;
        }

        return $argumentsInfo;
    }

    private function getReturnTypeInfo(Tokens $tokens, $closingParenthesisIndex)
    {
        $colonIndex = $tokens->getNextMeaningfulToken($closingParenthesisIndex);
        if ($tokens[$colonIndex]->isGivenKind(CT::T_TYPE_COLON)) {
            return $this->parseTypeHint($tokens, $tokens->getNextMeaningfulToken($colonIndex));
        }

        return [
            'type' => null,
            'allows_null' => true,
        ];
    }

    /**
     * @param int $index The index of the first token of the type hint
     *
     * @return array
     */
    private function getPropertyTypeInfo(Tokens $tokens, $index)
    {
        if ($tokens[$index]->isGivenKind(T_VARIABLE)) {
            return [
                'type' => null,
                'allows_null' => true,
            ];
        }

        return $this->parseTypeHint($tokens, $index);
    }

    /**
     * @param int $index The index of the first token of the type hint
     *
     * @return array
     */
    private function parseTypeHint(Tokens $tokens, $index)
    {
        $allowsNull = false;
        if ($tokens[$index]->isGivenKind(CT::T_NULLABLE_TYPE)) {
            $allowsNull = true;
            $index = $tokens->getNextMeaningfulToken($index);
        }

        $type = '';
        while ($tokens[$index]->isGivenKind([T_NS_SEPARATOR, T_STRING, CT::T_ARRAY_TYPEHINT, T_CALLABLE])) {
            $type .= $tokens[$index]->getContent();

            $index = $tokens->getNextMeaningfulToken($index);
        }

        return [
            'type' => '' === $type ? null : $type,
            'allows_null' => $allowsNull,
        ];
    }

    /**
     * @param array<string, string> $symbolShortNames
     *
     * @return bool
     */
    private function annotationIsSuperfluous(Annotation $annotation, array $info, array $symbolShortNames)
    {
        if ('param' === $annotation->getTag()->getName()) {
            $regex = '/@param\s+(?:\S|\s(?!\$))++\s\$\S+\s+\S/';
        } elseif ('var' === $annotation->getTag()->getName()) {
            $regex = '/@var\s+\S+(\s+\$\S+)?(\s+)([^$\s]+)/';
        } else {
            $regex = '/@return\s+\S+\s+\S/';
        }

        if (Preg::match($regex, $annotation->getContent())) {
            return false;
        }

        $annotationTypes = $this->toComparableNames($annotation->getTypes(), $symbolShortNames);

        if (['null'] === $annotationTypes) {
            return false;
        }

        if (['mixed'] === $annotationTypes && null === $info['type']) {
            return !$this->configuration['allow_mixed'];
        }

        $actualTypes = null === $info['type'] ? [] : [$info['type']];
        if ($info['allows_null']) {
            $actualTypes[] = 'null';
        }

        return $annotationTypes === $this->toComparableNames($actualTypes, $symbolShortNames);
    }

    /**
     * Normalizes types to make them comparable.
     *
     * Converts given types to lowercase, replaces imports aliases with
     * their matching FQCN, and finally sorts the result.
     *
     * @param string[]              $types            The types to normalize
     * @param array<string, string> $symbolShortNames The imports aliases
     *
     * @return array The normalized types
     */
    private function toComparableNames(array $types, array $symbolShortNames)
    {
        $normalized = array_map(
            static function ($type) use ($symbolShortNames) {
                $type = strtolower($type);

                if (isset($symbolShortNames[$type])) {
                    return $symbolShortNames[$type];
                }

                return $type;
            },
            $types
        );

        sort($normalized);

        return $normalized;
    }

    /**
     * @param string $docComment
     *
     * @return string
     */
    private function removeSuperfluousInheritDoc($docComment)
    {
        return Preg::replace('~
            # $1: before @inheritDoc tag
            (
                # beginning of comment or a PHPDoc tag
                (?:
                    ^/\*\*
                    (?:
                        \R
                        [ \t]*(?:\*[ \t]*)?
                    )*?
                    |
                    @\N+
                )

                # empty comment lines
                (?:
                    \R
                    [ \t]*(?:\*[ \t]*?)?
                )*
            )

            # spaces before @inheritDoc tag
            [ \t]*

            # @inheritDoc tag
            (?:@inheritDocs?|\{@inheritDocs?\})

            # $2: after @inheritDoc tag
            (
                # empty comment lines
                (?:
                    \R
                    [ \t]*(?:\*[ \t]*)?
                )*

                # a PHPDoc tag or end of comment
                (?:
                    @\N+
                    |
                    (?:
                        \R
                        [ \t]*(?:\*[ \t]*)?
                    )*
                    [ \t]*\*/$
                )
            )
        ~ix', '$1$2', $docComment);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Phpdoc;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Utils;

/**
 * @author Ceeram <ceeram@cakephp.org>
 * @author Graham Campbell <graham@alt-three.com>
 */
final class PhpdocIndentFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Docblocks should have the same indentation as the documented subject.',
            [new CodeSample('<?php
class DocBlocks
{
/**
 * Test constants
 */
    const INDENT = 1;
}
')]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before GeneralPhpdocAnnotationRemoveFixer, NoBlankLinesAfterPhpdocFixer, NoEmptyPhpdocFixer, NoSuperfluousPhpdocTagsFixer, PhpdocAddMissingParamAnnotationFixer, PhpdocAlignFixer, PhpdocAlignFixer, PhpdocAnnotationWithoutDotFixer, PhpdocInlineTagFixer, PhpdocLineSpanFixer, PhpdocNoAccessFixer, PhpdocNoAliasTagFixer, PhpdocNoEmptyReturnFixer, PhpdocNoPackageFixer, PhpdocNoUselessInheritdocFixer, PhpdocOrderFixer, PhpdocReturnSelfReferenceFixer, PhpdocSeparationFixer, PhpdocSingleLineVarSpacingFixer, PhpdocSummaryFixer, PhpdocToParamTypeFixer, PhpdocToReturnTypeFixer, PhpdocTrimConsecutiveBlankLineSeparationFixer, PhpdocTrimFixer, PhpdocTypesFixer, PhpdocTypesOrderFixer, PhpdocVarAnnotationCorrectOrderFixer, PhpdocVarWithoutNameFixer.
     * Must run after IndentationTypeFixer, PhpdocToCommentFixer.
     */
    public function getPriority()
    {
        return 20;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_DOC_COMMENT);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if (!$token->isGivenKind(T_DOC_COMMENT)) {
                continue;
            }

            $nextIndex = $tokens->getNextMeaningfulToken($index);

            // skip if there is no next token or if next token is block end `}`
            if (null === $nextIndex || $tokens[$nextIndex]->equals('}')) {
                continue;
            }

            $prevIndex = $index - 1;
            $prevToken = $tokens[$prevIndex];

            // ignore inline docblocks
            if (
                $prevToken->isGivenKind(T_OPEN_TAG)
                || ($prevToken->isWhitespace(" \t") && !$tokens[$index - 2]->isGivenKind(T_OPEN_TAG))
                || $prevToken->equalsAny([';', ',', '{', '('])
            ) {
                continue;
            }

            $indent = '';
            if ($tokens[$nextIndex - 1]->isWhitespace()) {
                $indent = Utils::calculateTrailingWhitespaceIndent($tokens[$nextIndex - 1]);
            }

            $newPrevContent = $this->fixWhitespaceBeforeDocblock($prevToken->getContent(), $indent);
            if ($newPrevContent) {
                if ($prevToken->isArray()) {
                    $tokens[$prevIndex] = new Token([$prevToken->getId(), $newPrevContent]);
                } else {
                    $tokens[$prevIndex] = new Token($newPrevContent);
                }
            } else {
                $tokens->clearAt($prevIndex);
            }

            $tokens[$index] = new Token([T_DOC_COMMENT, $this->fixDocBlock($token->getContent(), $indent)]);
        }
    }

    /**
     * Fix indentation of Docblock.
     *
     * @param string $content Docblock contents
     * @param string $indent  Indentation to apply
     *
     * @return string Dockblock contents including correct indentation
     */
    private function fixDocBlock($content, $indent)
    {
        return ltrim(Preg::replace('/^\h*\*/m', $indent.' *', $content));
    }

    /**
     * @param string $content Whitespace before Docblock
     * @param string $indent  Indentation of the documented subject
     *
     * @return string Whitespace including correct indentation for Dockblock after this whitespace
     */
    private function fixWhitespaceBeforeDocblock($content, $indent)
    {
        return rtrim($content, " \t").$indent;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ClassUsage;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Kuba Werłos <werlos@gmail.com>
 */
final class DateTimeImmutableFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Class `DateTimeImmutable` should be used instead of `DateTime`.',
            [new CodeSample("<?php\nnew DateTime();\n")],
            null,
            'Risky when the code relies on modifying `DateTime` objects or if any of the `date_create*` functions are overridden.'
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_STRING);
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $isInNamespace = false;
        $isImported = false; // e.g. use DateTime;

        for ($index = 0, $limit = $tokens->count(); $index < $limit; ++$index) {
            $token = $tokens[$index];

            if ($token->isGivenKind(T_NAMESPACE)) {
                $isInNamespace = true;

                continue;
            }

            if ($token->isGivenKind(T_USE) && $isInNamespace) {
                $nextIndex = $tokens->getNextMeaningfulToken($index);
                if ('datetime' !== strtolower($tokens[$nextIndex]->getContent())) {
                    continue;
                }
                $nextNextIndex = $tokens->getNextMeaningfulToken($nextIndex);
                if ($tokens[$nextNextIndex]->equals(';')) {
                    $isImported = true;
                }

                $index = $nextNextIndex;

                continue;
            }

            if (!$token->isGivenKind(T_STRING)) {
                continue;
            }

            $lowercaseContent = strtolower($token->getContent());

            if ('datetime' === $lowercaseContent) {
                $this->fixClassUsage($tokens, $index, $isInNamespace, $isImported);
                $limit = $tokens->count(); // update limit, as fixing class usage may insert new token
            } elseif ('date_create' === $lowercaseContent) {
                $this->fixFunctionUsage($tokens, $index, 'date_create_immutable');
            } elseif ('date_create_from_format' === $lowercaseContent) {
                $this->fixFunctionUsage($tokens, $index, 'date_create_immutable_from_format');
            }
        }
    }

    /**
     * @param int  $index
     * @param bool $isInNamespace
     * @param bool $isImported
     */
    private function fixClassUsage(Tokens $tokens, $index, $isInNamespace, $isImported)
    {
        $nextIndex = $tokens->getNextMeaningfulToken($index);
        if ($tokens[$nextIndex]->isGivenKind(T_DOUBLE_COLON)) {
            $nextNextIndex = $tokens->getNextMeaningfulToken($nextIndex);
            if ($tokens[$nextNextIndex]->isGivenKind(T_STRING)) {
                $nextNextNextIndex = $tokens->getNextMeaningfulToken($nextNextIndex);
                if (!$tokens[$nextNextNextIndex]->equals('(')) {
                    return;
                }
            }
        }

        $isUsedAlone = false; // e.g. new DateTime();
        $isUsedWithLeadingBackslash = false; // e.g. new \DateTime();

        $prevIndex = $tokens->getPrevMeaningfulToken($index);
        if ($tokens[$prevIndex]->isGivenKind(T_NS_SEPARATOR)) {
            $prevPrevIndex = $tokens->getPrevMeaningfulToken($prevIndex);
            if (!$tokens[$prevPrevIndex]->isGivenKind(T_STRING)) {
                $isUsedWithLeadingBackslash = true;
            }
        } elseif (!$tokens[$prevIndex]->isGivenKind([T_DOUBLE_COLON, T_OBJECT_OPERATOR])) {
            $isUsedAlone = true;
        }

        if ($isUsedWithLeadingBackslash || $isUsedAlone && ($isInNamespace && $isImported || !$isInNamespace)) {
            $tokens[$index] = new Token([T_STRING, \DateTimeImmutable::class]);
            if ($isInNamespace && $isUsedAlone) {
                $tokens->insertAt($index, new Token([T_NS_SEPARATOR, '\\']));
            }
        }
    }

    /**
     * @param int    $index
     * @param string $replacement
     */
    private function fixFunctionUsage(Tokens $tokens, $index, $replacement)
    {
        $prevIndex = $tokens->getPrevMeaningfulToken($index);
        if ($tokens[$prevIndex]->isGivenKind([T_DOUBLE_COLON, T_NEW, T_OBJECT_OPERATOR])) {
            return;
        }
        if ($tokens[$prevIndex]->isGivenKind(T_NS_SEPARATOR)) {
            $prevPrevIndex = $tokens->getPrevMeaningfulToken($prevIndex);
            if ($tokens[$prevPrevIndex]->isGivenKind([T_NEW, T_STRING])) {
                return;
            }
        }

        $tokens[$index] = new Token([T_STRING, $replacement]);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer;

use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 * @author Fabien Potencier <fabien@symfony.com>
 */
interface FixerInterface
{
    /**
     * Check if the fixer is a candidate for given Tokens collection.
     *
     * Fixer is a candidate when the collection contains tokens that may be fixed
     * during fixer work. This could be considered as some kind of bloom filter.
     * When this method returns true then to the Tokens collection may or may not
     * need a fixing, but when this method returns false then the Tokens collection
     * need no fixing for sure.
     *
     * @return bool
     */
    public function isCandidate(Tokens $tokens);

    /**
     * Check if fixer is risky or not.
     *
     * Risky fixer could change code behavior!
     *
     * @return bool
     */
    public function isRisky();

    /**
     * Fixes a file.
     *
     * @param \SplFileInfo $file   A \SplFileInfo instance
     * @param Tokens       $tokens Tokens collection
     */
    public function fix(\SplFileInfo $file, Tokens $tokens);

    /**
     * Returns the name of the fixer.
     *
     * The name must be all lowercase and without any spaces.
     *
     * @return string The name of the fixer
     */
    public function getName();

    /**
     * Returns the priority of the fixer.
     *
     * The default priority is 0 and higher priorities are executed first.
     *
     * @return int
     */
    public function getPriority();

    /**
     * Returns true if the file is supported by this fixer.
     *
     * @return bool true if the file is supported by this fixer, false otherwise
     */
    public function supports(\SplFileInfo $file);
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\LanguageConstruct;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author SpacePossum
 */
final class CombineConsecutiveIssetsFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Using `isset($var) &&` multiple times should be done in one call.',
            [new CodeSample("<?php\n\$a = isset(\$a) && isset(\$b);\n")]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before MultilineWhitespaceBeforeSemicolonsFixer, NoSinglelineWhitespaceBeforeSemicolonsFixer, NoSpacesInsideParenthesisFixer, NoTrailingWhitespaceFixer, NoWhitespaceInBlankLineFixer.
     */
    public function getPriority()
    {
        return 3;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAllTokenKindsFound([T_ISSET, T_BOOLEAN_AND]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $tokenCount = $tokens->count();

        for ($index = 1; $index < $tokenCount; ++$index) {
            if (!$tokens[$index]->isGivenKind(T_ISSET)
                || !$tokens[$tokens->getPrevMeaningfulToken($index)]->equalsAny(['(', '{', ';', '=', [T_OPEN_TAG], [T_BOOLEAN_AND], [T_BOOLEAN_OR]])) {
                continue;
            }

            $issetInfo = $this->getIssetInfo($tokens, $index);
            $issetCloseBraceIndex = end($issetInfo); // ')' token
            $insertLocation = prev($issetInfo) + 1; // one index after the previous meaningful of ')'

            $booleanAndTokenIndex = $tokens->getNextMeaningfulToken($issetCloseBraceIndex);

            while ($tokens[$booleanAndTokenIndex]->isGivenKind(T_BOOLEAN_AND)) {
                $issetIndex = $tokens->getNextMeaningfulToken($booleanAndTokenIndex);
                if (!$tokens[$issetIndex]->isGivenKind(T_ISSET)) {
                    $index = $issetIndex;

                    break;
                }

                // fetch info about the 'isset' statement that we're merging
                $nextIssetInfo = $this->getIssetInfo($tokens, $issetIndex);

                $nextMeaningfulTokenIndex = $tokens->getNextMeaningfulToken(end($nextIssetInfo));
                $nextMeaningfulToken = $tokens[$nextMeaningfulTokenIndex];

                if (!$nextMeaningfulToken->equalsAny([')', '}', ';', [T_CLOSE_TAG], [T_BOOLEAN_AND], [T_BOOLEAN_OR]])) {
                    $index = $nextMeaningfulTokenIndex;

                    break;
                }

                // clone what we want to move, do not clone '(' and ')' of the 'isset' statement we're merging
                $clones = $this->getTokenClones($tokens, \array_slice($nextIssetInfo, 1, -1));

                // clean up no the tokens of the 'isset' statement we're merging
                $this->clearTokens($tokens, array_merge($nextIssetInfo, [$issetIndex, $booleanAndTokenIndex]));

                // insert the tokens to create the new statement
                array_unshift($clones, new Token(','), new Token([T_WHITESPACE, ' ']));
                $tokens->insertAt($insertLocation, $clones);

                // correct some counts and offset based on # of tokens inserted
                $numberOfTokensInserted = \count($clones);
                $tokenCount += $numberOfTokensInserted;
                $issetCloseBraceIndex += $numberOfTokensInserted;
                $insertLocation += $numberOfTokensInserted;

                $booleanAndTokenIndex = $tokens->getNextMeaningfulToken($issetCloseBraceIndex);
            }
        }
    }

    /**
     * @param int[] $indexes
     */
    private function clearTokens(Tokens $tokens, array $indexes)
    {
        foreach ($indexes as $index) {
            $tokens->clearTokenAndMergeSurroundingWhitespace($index);
        }
    }

    /**
     * @param int $index of T_ISSET
     *
     * @return int[] indexes of meaningful tokens belonging to the isset statement
     */
    private function getIssetInfo(Tokens $tokens, $index)
    {
        $openIndex = $tokens->getNextMeaningfulToken($index);

        $braceOpenCount = 1;
        $meaningfulTokenIndexes = [$openIndex];

        for ($i = $openIndex + 1;; ++$i) {
            if ($tokens[$i]->isWhitespace() || $tokens[$i]->isComment()) {
                continue;
            }

            $meaningfulTokenIndexes[] = $i;

            if ($tokens[$i]->equals(')')) {
                --$braceOpenCount;
                if (0 === $braceOpenCount) {
                    break;
                }
            } elseif ($tokens[$i]->equals('(')) {
                ++$braceOpenCount;
            }
        }

        return $meaningfulTokenIndexes;
    }

    /**
     * @param int[] $indexes
     *
     * @return Token[]
     */
    private function getTokenClones(Tokens $tokens, array $indexes)
    {
        $clones = [];

        foreach ($indexes as $i) {
            $clones[] = clone $tokens[$i];
        }

        return $clones;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\LanguageConstruct;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\FixerDefinition\VersionSpecification;
use PhpCsFixer\FixerDefinition\VersionSpecificCodeSample;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Filippo Tessarotto <zoeslam@gmail.com>
 */
final class ExplicitIndirectVariableFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Add curly braces to indirect variables to make them clear to understand. Requires PHP >= 7.0.',
            [
                new VersionSpecificCodeSample(
                    <<<'EOT'
<?php
echo $$foo;
echo $$foo['bar'];
echo $foo->$bar['baz'];
echo $foo->$callback($baz);

EOT
,
                    new VersionSpecification(70000)
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return \PHP_VERSION_ID >= 70000 && $tokens->isTokenKindFound(T_VARIABLE);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        for ($index = $tokens->count() - 1; $index > 1; --$index) {
            $token = $tokens[$index];
            if (!$token->isGivenKind(T_VARIABLE)) {
                continue;
            }

            $prevIndex = $tokens->getPrevMeaningfulToken($index);
            $prevToken = $tokens[$prevIndex];
            if (!$prevToken->equals('$') && !$prevToken->isGivenKind(T_OBJECT_OPERATOR)) {
                continue;
            }

            $openingBrace = CT::T_DYNAMIC_VAR_BRACE_OPEN;
            $closingBrace = CT::T_DYNAMIC_VAR_BRACE_CLOSE;
            if ($prevToken->isGivenKind(T_OBJECT_OPERATOR)) {
                $openingBrace = CT::T_DYNAMIC_PROP_BRACE_OPEN;
                $closingBrace = CT::T_DYNAMIC_PROP_BRACE_CLOSE;
            }

            $tokens->overrideRange($index, $index, [
                new Token([$openingBrace, '{']),
                new Token([T_VARIABLE, $token->getContent()]),
                new Token([$closingBrace, '}']),
            ]);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\LanguageConstruct;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Analyzer\FunctionsAnalyzer;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Jules Pietri <jules@heahprod.com>
 * @author Kuba Werłos <werlos@gmail.com>
 */
final class ErrorSuppressionFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    const OPTION_MUTE_DEPRECATION_ERROR = 'mute_deprecation_error';
    const OPTION_NOISE_REMAINING_USAGES = 'noise_remaining_usages';
    const OPTION_NOISE_REMAINING_USAGES_EXCLUDE = 'noise_remaining_usages_exclude';

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Error control operator should be added to deprecation notices and/or removed from other cases.',
            [
                new CodeSample("<?php\ntrigger_error('Warning.', E_USER_DEPRECATED);\n"),
                new CodeSample(
                    "<?php\n@mkdir(\$dir);\n@unlink(\$path);\n",
                    [self::OPTION_NOISE_REMAINING_USAGES => true]
                ),
                new CodeSample(
                    "<?php\n@mkdir(\$dir);\n@unlink(\$path);\n",
                    [
                        self::OPTION_NOISE_REMAINING_USAGES => true,
                        self::OPTION_NOISE_REMAINING_USAGES_EXCLUDE => ['unlink'],
                    ]
                ),
            ],
            null,
            'Risky because adding/removing `@` might cause changes to code behaviour or if `trigger_error` function is overridden.'
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound(['@', T_STRING]);
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder(self::OPTION_MUTE_DEPRECATION_ERROR, 'Whether to add `@` in deprecation notices.'))
                ->setAllowedTypes(['bool'])
                ->setDefault(true)
                ->getOption(),
            (new FixerOptionBuilder(self::OPTION_NOISE_REMAINING_USAGES, 'Whether to remove `@` in remaining usages.'))
                ->setAllowedTypes(['bool'])
                ->setDefault(false)
                ->getOption(),
            (new FixerOptionBuilder(self::OPTION_NOISE_REMAINING_USAGES_EXCLUDE, 'List of global functions to exclude from removing `@`'))
                ->setAllowedTypes(['array'])
                ->setDefault([])
                ->getOption(),
        ]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $functionsAnalyzer = new FunctionsAnalyzer();
        $excludedFunctions = array_map(static function ($function) {
            return strtolower($function);
        }, $this->configuration[self::OPTION_NOISE_REMAINING_USAGES_EXCLUDE]);

        for ($index = $tokens->count() - 1; $index >= 0; --$index) {
            $token = $tokens[$index];

            if ($this->configuration[self::OPTION_NOISE_REMAINING_USAGES] && $token->equals('@')) {
                $tokens->clearAt($index);

                continue;
            }

            if (!$functionsAnalyzer->isGlobalFunctionCall($tokens, $index)) {
                continue;
            }

            $functionIndex = $index;
            $startIndex = $index;
            $prevIndex = $tokens->getPrevMeaningfulToken($index);
            if ($tokens[$prevIndex]->isGivenKind(T_NS_SEPARATOR)) {
                $startIndex = $prevIndex;
                $prevIndex = $tokens->getPrevMeaningfulToken($startIndex);
            }

            $index = $prevIndex;

            if ($this->isDeprecationErrorCall($tokens, $functionIndex)) {
                if (!$this->configuration[self::OPTION_MUTE_DEPRECATION_ERROR]) {
                    continue;
                }

                if ($tokens[$prevIndex]->equals('@')) {
                    continue;
                }

                $tokens->insertAt($startIndex, new Token('@'));

                continue;
            }

            if (!$tokens[$prevIndex]->equals('@')) {
                continue;
            }

            if ($this->configuration[self::OPTION_NOISE_REMAINING_USAGES] && !\in_array($tokens[$functionIndex]->getContent(), $excludedFunctions, true)) {
                $tokens->clearAt($index);
            }
        }
    }

    /**
     * @param int $index
     *
     * @return bool
     */
    private function isDeprecationErrorCall(Tokens $tokens, $index)
    {
        if ('trigger_error' !== strtolower($tokens[$index]->getContent())) {
            return false;
        }

        $endBraceIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $tokens->getNextTokenOfKind($index, [T_STRING, '(']));

        $prevIndex = $tokens->getPrevMeaningfulToken($endBraceIndex);
        if ($tokens[$prevIndex]->equals(',')) {
            $prevIndex = $tokens->getPrevMeaningfulToken($prevIndex);
        }

        return $tokens[$prevIndex]->equals([T_STRING, 'E_USER_DEPRECATED']);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\LanguageConstruct;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 * @author SpacePossum
 */
final class DeclareEqualNormalizeFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * @var string
     */
    private $callback;

    /**
     * {@inheritdoc}
     */
    public function configure(array $configuration = null)
    {
        parent::configure($configuration);

        $this->callback = 'none' === $this->configuration['space'] ? 'removeWhitespaceAroundToken' : 'ensureWhitespaceAroundToken';
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Equal sign in declare statement should be surrounded by spaces or not following configuration.',
            [
                new CodeSample("<?php\ndeclare(ticks =  1);\n"),
                new CodeSample("<?php\ndeclare(ticks=1);\n", ['space' => 'single']),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run after DeclareStrictTypesFixer.
     */
    public function getPriority()
    {
        return 0;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_DECLARE);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $callback = $this->callback;
        for ($index = 0, $count = $tokens->count(); $index < $count - 6; ++$index) {
            if (!$tokens[$index]->isGivenKind(T_DECLARE)) {
                continue;
            }

            while (!$tokens[++$index]->equals('='));

            $this->{$callback}($tokens, $index);
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('space', 'Spacing to apply around the equal sign.'))
                ->setAllowedValues(['single', 'none'])
                ->setDefault('none')
                ->getOption(),
        ]);
    }

    /**
     * @param int $index of `=` token
     */
    private function ensureWhitespaceAroundToken(Tokens $tokens, $index)
    {
        if ($tokens[$index + 1]->isWhitespace()) {
            if (' ' !== $tokens[$index + 1]->getContent()) {
                $tokens[$index + 1] = new Token([T_WHITESPACE, ' ']);
            }
        } else {
            $tokens->insertAt($index + 1, new Token([T_WHITESPACE, ' ']));
        }

        if ($tokens[$index - 1]->isWhitespace()) {
            if (' ' !== $tokens[$index - 1]->getContent() && !$tokens[$tokens->getPrevNonWhitespace($index - 1)]->isComment()) {
                $tokens[$index - 1] = new Token([T_WHITESPACE, ' ']);
            }
        } else {
            $tokens->insertAt($index, new Token([T_WHITESPACE, ' ']));
        }
    }

    /**
     * @param int $index of `=` token
     */
    private function removeWhitespaceAroundToken(Tokens $tokens, $index)
    {
        if (!$tokens[$tokens->getPrevNonWhitespace($index)]->isComment()) {
            $tokens->removeLeadingWhitespace($index);
        }

        $tokens->removeTrailingWhitespace($index);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\LanguageConstruct;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\AllowedValueSubset;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Analyzer\FunctionsAnalyzer;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author SpacePossum
 */
final class FunctionToConstantFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * @var array<string, Token[]>
     */
    private static $availableFunctions;

    /**
     * @var array<string, Token[]>
     */
    private $functionsFixMap;

    public function __construct()
    {
        if (null === self::$availableFunctions) {
            self::$availableFunctions = [
                'get_called_class' => [
                    new Token([T_STATIC, 'static']),
                    new Token([T_DOUBLE_COLON, '::']),
                    new Token([CT::T_CLASS_CONSTANT, 'class']),
                ],
                'get_class' => [new Token([T_CLASS_C, '__CLASS__'])],
                'get_class_this' => [
                    new Token([T_STATIC, 'static']),
                    new Token([T_DOUBLE_COLON, '::']),
                    new Token([CT::T_CLASS_CONSTANT, 'class']),
                ],
                'php_sapi_name' => [new Token([T_STRING, 'PHP_SAPI'])],
                'phpversion' => [new Token([T_STRING, 'PHP_VERSION'])],
                'pi' => [new Token([T_STRING, 'M_PI'])],
            ];
        }

        parent::__construct();
    }

    /**
     * {@inheritdoc}
     */
    public function configure(array $configuration = null)
    {
        parent::configure($configuration);

        $this->functionsFixMap = [];
        foreach ($this->configuration['functions'] as $key) {
            $this->functionsFixMap[$key] = self::$availableFunctions[$key];
        }
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Replace core functions calls returning constants with the constants.',
            [
                new CodeSample(
                    "<?php\necho phpversion();\necho pi();\necho php_sapi_name();\nclass Foo\n{\n    public function Bar()\n    {\n        echo get_class();\n        echo get_called_class();\n    }\n}\n"
                ),
                new CodeSample(
                    "<?php\necho phpversion();\necho pi();\nclass Foo\n{\n    public function Bar()\n    {\n        echo get_class();\n        get_class(\$this);\n        echo get_called_class();\n    }\n}\n",
                    ['functions' => ['get_called_class', 'get_class_this', 'phpversion']]
                ),
            ],
            null,
            'Risky when any of the configured functions to replace are overridden.'
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before NativeFunctionCasingFixer, NoExtraBlankLinesFixer, NoSinglelineWhitespaceBeforeSemicolonsFixer, NoTrailingWhitespaceFixer, NoWhitespaceInBlankLineFixer, SelfStaticAccessorFixer.
     * Must run after NoSpacesAfterFunctionNameFixer, NoSpacesInsideParenthesisFixer.
     */
    public function getPriority()
    {
        return 1;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_STRING);
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $functionAnalyzer = new FunctionsAnalyzer();

        for ($index = $tokens->count() - 4; $index > 0; --$index) {
            $candidate = $this->getReplaceCandidate($tokens, $functionAnalyzer, $index);
            if (null === $candidate) {
                continue;
            }

            $this->fixFunctionCallToConstant(
                $tokens,
                $index,
                $candidate[0], // brace open
                $candidate[1], // brace close
                $candidate[2]  // replacement
            );
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        $functionNames = array_keys(self::$availableFunctions);

        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('functions', 'List of function names to fix.'))
                ->setAllowedTypes(['array'])
                ->setAllowedValues([new AllowedValueSubset($functionNames)])
                ->setDefault([
                    'get_class',
                    'php_sapi_name',
                    'phpversion',
                    'pi',
                    // TODO on v3.0 add 'get_called_class' and `get_class_this` here
                ])
                ->getOption(),
        ]);
    }

    /**
     * @param int     $index
     * @param int     $braceOpenIndex
     * @param int     $braceCloseIndex
     * @param Token[] $replacements
     */
    private function fixFunctionCallToConstant(Tokens $tokens, $index, $braceOpenIndex, $braceCloseIndex, array $replacements)
    {
        for ($i = $braceCloseIndex; $i >= $braceOpenIndex; --$i) {
            if ($tokens[$i]->equalsAny([[T_WHITESPACE], [T_COMMENT], [T_DOC_COMMENT]])) {
                continue;
            }

            $tokens->clearTokenAndMergeSurroundingWhitespace($i);
        }

        if ($replacements[0]->isGivenKind([T_CLASS_C, T_STATIC])) {
            $prevIndex = $tokens->getPrevMeaningfulToken($index);
            $prevToken = $tokens[$prevIndex];
            if ($prevToken->isGivenKind(T_NS_SEPARATOR)) {
                $tokens->clearAt($prevIndex);
            }
        }

        $tokens->clearAt($index);
        $tokens->insertAt($index, $replacements);
    }

    /**
     * @param int $index
     *
     * @return null|array
     */
    private function getReplaceCandidate(
        Tokens $tokens,
        FunctionsAnalyzer $functionAnalyzer,
        $index
    ) {
        if (!$tokens[$index]->isGivenKind(T_STRING)) {
            return null;
        }

        $lowerContent = strtolower($tokens[$index]->getContent());

        if ('get_class' === $lowerContent) {
            return $this->fixGetClassCall($tokens, $functionAnalyzer, $index);
        }

        if (!isset($this->functionsFixMap[$lowerContent])) {
            return null;
        }

        if (!$functionAnalyzer->isGlobalFunctionCall($tokens, $index)) {
            return null;
        }

        // test if function call without parameters
        $braceOpenIndex = $tokens->getNextMeaningfulToken($index);
        if (!$tokens[$braceOpenIndex]->equals('(')) {
            return null;
        }

        $braceCloseIndex = $tokens->getNextMeaningfulToken($braceOpenIndex);
        if (!$tokens[$braceCloseIndex]->equals(')')) {
            return null;
        }

        return $this->getReplacementTokenClones($lowerContent, $braceOpenIndex, $braceCloseIndex);
    }

    /**
     * @param int $index
     *
     * @return null|array
     */
    private function fixGetClassCall(
        Tokens $tokens,
        FunctionsAnalyzer $functionAnalyzer,
        $index
    ) {
        if (!isset($this->functionsFixMap['get_class']) && !isset($this->functionsFixMap['get_class_this'])) {
            return null;
        }

        if (!$functionAnalyzer->isGlobalFunctionCall($tokens, $index)) {
            return null;
        }

        $braceOpenIndex = $tokens->getNextMeaningfulToken($index);
        $braceCloseIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $braceOpenIndex);

        if ($braceCloseIndex === $tokens->getNextMeaningfulToken($braceOpenIndex)) { // no arguments passed
            if (isset($this->functionsFixMap['get_class'])) {
                return $this->getReplacementTokenClones('get_class', $braceOpenIndex, $braceCloseIndex);
            }
        } else {
            if (isset($this->functionsFixMap['get_class_this'])) {
                $isThis = false;

                for ($i = $braceOpenIndex + 1; $i < $braceCloseIndex; ++$i) {
                    if ($tokens[$i]->equalsAny([[T_WHITESPACE], [T_COMMENT], [T_DOC_COMMENT], ')'])) {
                        continue;
                    }

                    if ($tokens[$i]->isGivenKind(T_VARIABLE) && '$this' === strtolower($tokens[$i]->getContent())) {
                        $isThis = true;

                        continue;
                    }

                    if (false === $isThis && $tokens[$i]->equals('(')) {
                        continue;
                    }

                    $isThis = false;

                    break;
                }

                if ($isThis) {
                    return $this->getReplacementTokenClones('get_class_this', $braceOpenIndex, $braceCloseIndex);
                }
            }
        }

        return null;
    }

    /**
     * @param string $lowerContent
     * @param int    $braceOpenIndex
     * @param int    $braceCloseIndex
     *
     * @return array
     */
    private function getReplacementTokenClones($lowerContent, $braceOpenIndex, $braceCloseIndex)
    {
        $clones = [];
        foreach ($this->functionsFixMap[$lowerContent] as $token) {
            $clones[] = clone $token;
        }

        return [
            $braceOpenIndex,
            $braceCloseIndex,
            $clones,
        ];
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\LanguageConstruct;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Analyzer\FunctionsAnalyzer;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Vladimir Reznichenko <kalessil@gmail.com>
 */
final class IsNullFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Replaces `is_null($var)` expression with `null === $var`.',
            [
                new CodeSample("<?php\n\$a = is_null(\$b);\n"),
            ],
            null,
            'Risky when the function `is_null` is overridden.'
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before YodaStyleFixer.
     */
    public function getPriority()
    {
        return 1;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_STRING);
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        static $sequenceNeeded = [[T_STRING, 'is_null'], '('];
        $functionsAnalyzer = new FunctionsAnalyzer();

        $currIndex = 0;
        while (null !== $currIndex) {
            $matches = $tokens->findSequence($sequenceNeeded, $currIndex, $tokens->count() - 1, false);

            // stop looping if didn't find any new matches
            if (null === $matches) {
                break;
            }

            // 0 and 1 accordingly are "is_null", "(" tokens
            $matches = array_keys($matches);

            // move the cursor just after the sequence
            list($isNullIndex, $currIndex) = $matches;

            if (!$functionsAnalyzer->isGlobalFunctionCall($tokens, $matches[0])) {
                continue;
            }

            $next = $tokens->getNextMeaningfulToken($currIndex);
            if ($tokens[$next]->equals(')')) {
                continue;
            }

            $prevTokenIndex = $tokens->getPrevMeaningfulToken($matches[0]);

            // handle function references with namespaces
            if ($tokens[$prevTokenIndex]->isGivenKind(T_NS_SEPARATOR)) {
                $tokens->removeTrailingWhitespace($prevTokenIndex);
                $tokens->clearAt($prevTokenIndex);

                $prevTokenIndex = $tokens->getPrevMeaningfulToken($prevTokenIndex);
            }

            // check if inversion being used, text comparison is due to not existing constant
            $isInvertedNullCheck = false;
            if ($tokens[$prevTokenIndex]->equals('!')) {
                $isInvertedNullCheck = true;

                // get rid of inverting for proper transformations
                $tokens->removeTrailingWhitespace($prevTokenIndex);
                $tokens->clearAt($prevTokenIndex);
            }

            // before getting rind of `()` around a parameter, ensure it's not assignment/ternary invariant
            $referenceEnd = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $matches[1]);
            $isContainingDangerousConstructs = false;
            for ($paramTokenIndex = $matches[1]; $paramTokenIndex <= $referenceEnd; ++$paramTokenIndex) {
                if (\in_array($tokens[$paramTokenIndex]->getContent(), ['?', '?:', '=', '??'], true)) {
                    $isContainingDangerousConstructs = true;

                    break;
                }
            }

            // edge cases: is_null() followed/preceded by ==, ===, !=, !==, <>
            $parentLeftToken = $tokens[$tokens->getPrevMeaningfulToken($isNullIndex)];
            $parentRightToken = $tokens[$tokens->getNextMeaningfulToken($referenceEnd)];
            $parentOperations = [T_IS_EQUAL, T_IS_NOT_EQUAL, T_IS_IDENTICAL, T_IS_NOT_IDENTICAL];
            $wrapIntoParentheses = $parentLeftToken->isGivenKind($parentOperations) || $parentRightToken->isGivenKind($parentOperations);

            // possible trailing comma removed
            $prevIndex = $tokens->getPrevMeaningfulToken($referenceEnd);
            if ($tokens[$prevIndex]->equals(',')) {
                $tokens->clearTokenAndMergeSurroundingWhitespace($prevIndex);
            }

            if (!$isContainingDangerousConstructs) {
                // closing parenthesis removed with leading spaces
                $tokens->removeLeadingWhitespace($referenceEnd);
                $tokens->clearAt($referenceEnd);

                // opening parenthesis removed with trailing spaces
                $tokens->removeLeadingWhitespace($matches[1]);
                $tokens->removeTrailingWhitespace($matches[1]);
                $tokens->clearAt($matches[1]);
            }

            // sequence which we'll use as a replacement
            $replacement = [
                new Token([T_STRING, 'null']),
                new Token([T_WHITESPACE, ' ']),
                new Token($isInvertedNullCheck ? [T_IS_NOT_IDENTICAL, '!=='] : [T_IS_IDENTICAL, '===']),
                new Token([T_WHITESPACE, ' ']),
            ];

            if (true === $this->configuration['use_yoda_style']) {
                if ($wrapIntoParentheses) {
                    array_unshift($replacement, new Token('('));
                    $tokens->insertAt($referenceEnd + 1, new Token(')'));
                }

                $tokens->overrideRange($isNullIndex, $isNullIndex, $replacement);
            } else {
                $replacement = array_reverse($replacement);
                if ($wrapIntoParentheses) {
                    $replacement[] = new Token(')');
                    $tokens[$isNullIndex] = new Token('(');
                } else {
                    $tokens->clearAt($isNullIndex);
                }

                $tokens->insertAt($referenceEnd + 1, $replacement);
            }

            // nested is_null calls support
            $currIndex = $isNullIndex;
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        // @todo 3.0 drop `ConfigurationDefinitionFixerInterface`
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('use_yoda_style', 'Whether Yoda style conditions should be used.'))
                ->setAllowedTypes(['bool'])
                ->setDefault(true)
                ->setDeprecationMessage('Use `yoda_style` fixer instead.')
                ->getOption(),
        ]);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\LanguageConstruct;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author SpacePossum
 */
final class CombineConsecutiveUnsetsFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Calling `unset` on multiple items should be done in one call.',
            [new CodeSample("<?php\nunset(\$a); unset(\$b);\n")]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before NoExtraBlankLinesFixer, NoTrailingWhitespaceFixer, NoWhitespaceInBlankLineFixer, SpaceAfterSemicolonFixer.
     * Must run after NoEmptyStatementFixer, NoUnsetOnPropertyFixer, NoUselessElseFixer.
     */
    public function getPriority()
    {
        return 24;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_UNSET);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        for ($index = $tokens->count() - 1; $index >= 0; --$index) {
            if (!$tokens[$index]->isGivenKind(T_UNSET)) {
                continue;
            }

            $previousUnsetCall = $this->getPreviousUnsetCall($tokens, $index);
            if (\is_int($previousUnsetCall)) {
                $index = $previousUnsetCall;

                continue;
            }

            list($previousUnset, , $previousUnsetBraceEnd) = $previousUnsetCall;

            // Merge the tokens inside the 'unset' call into the previous one 'unset' call.
            $tokensAddCount = $this->moveTokens(
                $tokens,
                $nextUnsetContentStart = $tokens->getNextTokenOfKind($index, ['(']),
                $nextUnsetContentEnd = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $nextUnsetContentStart),
                $previousUnsetBraceEnd - 1
            );

            if (!$tokens[$previousUnsetBraceEnd]->isWhitespace()) {
                $tokens->insertAt($previousUnsetBraceEnd, new Token([T_WHITESPACE, ' ']));
                ++$tokensAddCount;
            }

            $tokens->insertAt($previousUnsetBraceEnd, new Token(','));
            ++$tokensAddCount;

            // Remove 'unset', '(', ')' and (possibly) ';' from the merged 'unset' call.
            $this->clearOffsetTokens($tokens, $tokensAddCount, [$index, $nextUnsetContentStart, $nextUnsetContentEnd]);

            $nextUnsetSemicolon = $tokens->getNextMeaningfulToken($nextUnsetContentEnd);
            if (null !== $nextUnsetSemicolon && $tokens[$nextUnsetSemicolon]->equals(';')) {
                $tokens->clearTokenAndMergeSurroundingWhitespace($nextUnsetSemicolon);
            }

            $index = $previousUnset + 1;
        }
    }

    /**
     * @param int   $offset
     * @param int[] $indices
     */
    private function clearOffsetTokens(Tokens $tokens, $offset, array $indices)
    {
        foreach ($indices as $index) {
            $tokens->clearTokenAndMergeSurroundingWhitespace($index + $offset);
        }
    }

    /**
     * Find a previous call to unset directly before the index.
     *
     * Returns an array with
     * * unset index
     * * opening brace index
     * * closing brace index
     * * end semicolon index
     *
     * Or the index to where the method looked for an call.
     *
     * @param int $index
     *
     * @return int|int[]
     */
    private function getPreviousUnsetCall(Tokens $tokens, $index)
    {
        $previousUnsetSemicolon = $tokens->getPrevMeaningfulToken($index);
        if (null === $previousUnsetSemicolon) {
            return $index;
        }

        if (!$tokens[$previousUnsetSemicolon]->equals(';')) {
            return $previousUnsetSemicolon;
        }

        $previousUnsetBraceEnd = $tokens->getPrevMeaningfulToken($previousUnsetSemicolon);
        if (null === $previousUnsetBraceEnd) {
            return $index;
        }

        if (!$tokens[$previousUnsetBraceEnd]->equals(')')) {
            return $previousUnsetBraceEnd;
        }

        $previousUnsetBraceStart = $tokens->findBlockStart(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $previousUnsetBraceEnd);
        $previousUnset = $tokens->getPrevMeaningfulToken($previousUnsetBraceStart);
        if (null === $previousUnset) {
            return $index;
        }

        if (!$tokens[$previousUnset]->isGivenKind(T_UNSET)) {
            return $previousUnset;
        }

        return [
            $previousUnset,
            $previousUnsetBraceStart,
            $previousUnsetBraceEnd,
            $previousUnsetSemicolon,
        ];
    }

    /**
     * @param int $start Index previous of the first token to move
     * @param int $end   Index of the last token to move
     * @param int $to    Upper boundary index
     *
     * @return int Number of tokens inserted
     */
    private function moveTokens(Tokens $tokens, $start, $end, $to)
    {
        $added = 0;
        for ($i = $start + 1; $i < $end; $i += 2) {
            if ($tokens[$i]->isWhitespace() && $tokens[$to + 1]->isWhitespace()) {
                $tokens[$to + 1] = new Token([T_WHITESPACE, $tokens[$to + 1]->getContent().$tokens[$i]->getContent()]);
            } else {
                $tokens->insertAt(++$to, clone $tokens[$i]);
                ++$end;
                ++$added;
            }

            $tokens->clearAt($i + 1);
        }

        return $added;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\LanguageConstruct;

use PhpCsFixer\AbstractProxyFixer;
use PhpCsFixer\Fixer\DeprecatedFixerInterface;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;

/**
 * @author Jules Pietri <jules@heahprod.com>
 *
 * @deprecated
 */
final class SilencedDeprecationErrorFixer extends AbstractProxyFixer implements DeprecatedFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Ensures deprecation notices are silenced.',
            [new CodeSample("<?php\ntrigger_error('Warning.', E_USER_DEPRECATED);\n")],
            null,
            'Silencing of deprecation errors might cause changes to code behaviour.'
        );
    }

    /**
     * {@inheritdoc}
     */
    public function getSuccessorsNames()
    {
        return array_keys($this->proxyFixers);
    }

    /**
     * {@inheritdoc}
     */
    protected function createProxyFixers()
    {
        return [new ErrorSuppressionFixer()];
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\LanguageConstruct;

use PhpCsFixer\AbstractFunctionReferenceFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Vladimir Reznichenko <kalessil@gmail.com>
 */
final class DirConstantFixer extends AbstractFunctionReferenceFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Replaces `dirname(__FILE__)` expression with equivalent `__DIR__` constant.',
            [new CodeSample("<?php\n\$a = dirname(__FILE__);\n")],
            null,
            'Risky when the function `dirname` is overridden.'
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_FILE);
    }

    /**
     * {@inheritdoc}
     *
     * Must run before CombineNestedDirnameFixer.
     */
    public function getPriority()
    {
        return 4;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $currIndex = 0;
        while (null !== $currIndex) {
            $boundaries = $this->find('dirname', $tokens, $currIndex, $tokens->count() - 1);
            if (null === $boundaries) {
                return;
            }

            list($functionNameIndex, $openParenthesis, $closeParenthesis) = $boundaries;

            // analysing cursor shift, so nested expressions kept processed
            $currIndex = $openParenthesis;

            // ensure __FILE__ is in between (...)

            $fileCandidateRightIndex = $tokens->getPrevMeaningfulToken($closeParenthesis);
            $trailingCommaIndex = null;
            if ($tokens[$fileCandidateRightIndex]->equals(',')) {
                $trailingCommaIndex = $fileCandidateRightIndex;
                $fileCandidateRightIndex = $tokens->getPrevMeaningfulToken($fileCandidateRightIndex);
            }

            $fileCandidateRight = $tokens[$fileCandidateRightIndex];
            if (!$fileCandidateRight->isGivenKind(T_FILE)) {
                continue;
            }

            $fileCandidateLeftIndex = $tokens->getNextMeaningfulToken($openParenthesis);
            $fileCandidateLeft = $tokens[$fileCandidateLeftIndex];

            if (!$fileCandidateLeft->isGivenKind(T_FILE)) {
                continue;
            }

            // get rid of root namespace when it used
            $namespaceCandidateIndex = $tokens->getPrevMeaningfulToken($functionNameIndex);
            $namespaceCandidate = $tokens[$namespaceCandidateIndex];
            if ($namespaceCandidate->isGivenKind(T_NS_SEPARATOR)) {
                $tokens->removeTrailingWhitespace($namespaceCandidateIndex);
                $tokens->clearAt($namespaceCandidateIndex);
            }

            if (null !== $trailingCommaIndex) {
                if (!$tokens[$tokens->getNextNonWhitespace($trailingCommaIndex)]->isComment()) {
                    $tokens->removeTrailingWhitespace($trailingCommaIndex);
                }

                $tokens->clearTokenAndMergeSurroundingWhitespace($trailingCommaIndex);
            }

            // closing parenthesis removed with leading spaces
            if (!$tokens[$tokens->getNextNonWhitespace($closeParenthesis)]->isComment()) {
                $tokens->removeLeadingWhitespace($closeParenthesis);
            }

            $tokens->clearTokenAndMergeSurroundingWhitespace($closeParenthesis);

            // opening parenthesis removed with trailing and leading spaces
            if (!$tokens[$tokens->getNextNonWhitespace($openParenthesis)]->isComment()) {
                $tokens->removeLeadingWhitespace($openParenthesis);
            }

            $tokens->removeTrailingWhitespace($openParenthesis);
            $tokens->clearTokenAndMergeSurroundingWhitespace($openParenthesis);

            // replace constant and remove function name
            $tokens[$fileCandidateLeftIndex] = new Token([T_DIR, '__DIR__']);
            $tokens->clearTokenAndMergeSurroundingWhitespace($functionNameIndex);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\LanguageConstruct;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Analyzer\NamespacesAnalyzer;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Tokenizer\TokensAnalyzer;

/**
 * @author Sullivan Senechal <soullivaneuh@gmail.com>
 */
final class ClassKeywordRemoveFixer extends AbstractFixer
{
    /**
     * @var string[]
     */
    private $imports = [];

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Converts `::class` keywords to FQCN strings.',
            [
                new CodeSample(
                    '<?php

use Foo\Bar\Baz;

$className = Baz::class;
'
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before NoUnusedImportsFixer.
     */
    public function getPriority()
    {
        return 0;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(CT::T_CLASS_CONSTANT);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $namespacesAnalyzer = new NamespacesAnalyzer();

        $previousNamespaceScopeEndIndex = 0;
        foreach ($namespacesAnalyzer->getDeclarations($tokens) as $declaration) {
            $this->replaceClassKeywordsSection($tokens, '', $previousNamespaceScopeEndIndex, $declaration->getStartIndex());
            $this->replaceClassKeywordsSection($tokens, $declaration->getFullName(), $declaration->getStartIndex(), $declaration->getScopeEndIndex());
            $previousNamespaceScopeEndIndex = $declaration->getScopeEndIndex();
        }

        $this->replaceClassKeywordsSection($tokens, '', $previousNamespaceScopeEndIndex, $tokens->count() - 1);
    }

    /**
     * @param int $startIndex
     * @param int $endIndex
     */
    private function storeImports(Tokens $tokens, $startIndex, $endIndex)
    {
        $tokensAnalyzer = new TokensAnalyzer($tokens);
        $this->imports = [];

        /** @var int $index */
        foreach ($tokensAnalyzer->getImportUseIndexes() as $index) {
            if ($index < $startIndex || $index > $endIndex) {
                continue;
            }

            $import = '';
            while ($index = $tokens->getNextMeaningfulToken($index)) {
                if ($tokens[$index]->equalsAny([';', [CT::T_GROUP_IMPORT_BRACE_OPEN]]) || $tokens[$index]->isGivenKind(T_AS)) {
                    break;
                }

                $import .= $tokens[$index]->getContent();
            }

            // Imports group (PHP 7 spec)
            if ($tokens[$index]->isGivenKind(CT::T_GROUP_IMPORT_BRACE_OPEN)) {
                $groupEndIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_GROUP_IMPORT_BRACE, $index);
                $groupImports = array_map(
                    static function ($import) {
                        return trim($import);
                    },
                    explode(',', $tokens->generatePartialCode($index + 1, $groupEndIndex - 1))
                );
                foreach ($groupImports as $groupImport) {
                    $groupImportParts = array_map(static function ($import) {
                        return trim($import);
                    }, explode(' as ', $groupImport));
                    if (2 === \count($groupImportParts)) {
                        $this->imports[$groupImportParts[1]] = $import.$groupImportParts[0];
                    } else {
                        $this->imports[] = $import.$groupImport;
                    }
                }
            } elseif ($tokens[$index]->isGivenKind(T_AS)) {
                $aliasIndex = $tokens->getNextMeaningfulToken($index);
                $alias = $tokens[$aliasIndex]->getContent();
                $this->imports[$alias] = $import;
            } else {
                $this->imports[] = $import;
            }
        }
    }

    /**
     * @param string $namespace
     * @param int    $startIndex
     * @param int    $endIndex
     */
    private function replaceClassKeywordsSection(Tokens $tokens, $namespace, $startIndex, $endIndex)
    {
        if ($endIndex - $startIndex < 3) {
            return;
        }

        $this->storeImports($tokens, $startIndex, $endIndex);

        $ctClassTokens = $tokens->findGivenKind(CT::T_CLASS_CONSTANT, $startIndex, $endIndex);
        foreach (array_reverse(array_keys($ctClassTokens)) as $classIndex) {
            $this->replaceClassKeyword($tokens, $namespace, $classIndex);
        }
    }

    /**
     * @param string $namespace
     * @param int    $classIndex
     */
    private function replaceClassKeyword(Tokens $tokens, $namespace, $classIndex)
    {
        $classEndIndex = $tokens->getPrevMeaningfulToken($classIndex);
        $classEndIndex = $tokens->getPrevMeaningfulToken($classEndIndex);

        if ($tokens[$classEndIndex]->equalsAny([[T_STRING, 'self'], [T_STATIC, 'static'], [T_STRING, 'parent']], false)) {
            return;
        }

        $classBeginIndex = $classEndIndex;
        while (true) {
            $prev = $tokens->getPrevMeaningfulToken($classBeginIndex);
            if (!$tokens[$prev]->isGivenKind([T_NS_SEPARATOR, T_STRING])) {
                break;
            }

            $classBeginIndex = $prev;
        }

        $classString = $tokens->generatePartialCode(
            $tokens[$classBeginIndex]->isGivenKind(T_NS_SEPARATOR)
                ? $tokens->getNextMeaningfulToken($classBeginIndex)
                : $classBeginIndex,
            $classEndIndex
        );

        $classImport = false;
        foreach ($this->imports as $alias => $import) {
            if ($classString === $alias) {
                $classImport = $import;

                break;
            }

            $classStringArray = explode('\\', $classString);
            $namespaceToTest = $classStringArray[0];

            if (0 === strcmp($namespaceToTest, substr($import, -\strlen($namespaceToTest)))) {
                $classImport = $import;

                break;
            }
        }

        for ($i = $classBeginIndex; $i <= $classIndex; ++$i) {
            if (!$tokens[$i]->isComment() && !($tokens[$i]->isWhitespace() && false !== strpos($tokens[$i]->getContent(), "\n"))) {
                $tokens->clearAt($i);
            }
        }

        $tokens->insertAt($classBeginIndex, new Token([
            T_CONSTANT_ENCAPSED_STRING,
            "'".$this->makeClassFQN($namespace, $classImport, $classString)."'",
        ]));
    }

    /**
     * @param string       $namespace
     * @param false|string $classImport
     * @param string       $classString
     *
     * @return string
     */
    private function makeClassFQN($namespace, $classImport, $classString)
    {
        if (false === $classImport) {
            return ('' !== $namespace ? ($namespace.'\\') : '').$classString;
        }

        $classStringArray = explode('\\', $classString);
        $classStringLength = \count($classStringArray);
        $classImportArray = explode('\\', $classImport);
        $classImportLength = \count($classImportArray);

        if (1 === $classStringLength) {
            return $classImport;
        }

        return implode('\\', array_merge(
            \array_slice($classImportArray, 0, $classImportLength - $classStringLength + 1),
            $classStringArray
        ));
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\LanguageConstruct;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Analyzer\ArgumentsAnalyzer;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Gert de Pagter <BackEndTea@gmail.com>
 */
final class NoUnsetOnPropertyFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Properties should be set to `null` instead of using `unset`.',
            [new CodeSample("<?php\nunset(\$this->a);\n")],
            null,
            'Changing variables to `null` instead of unsetting them will mean they still show up '.
            'when looping over class variables. With PHP 7.4, this rule might introduce `null` assignments to '.
            'property whose type declaration does not allow it.'
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_UNSET)
            && $tokens->isAnyTokenKindsFound([T_OBJECT_OPERATOR, T_PAAMAYIM_NEKUDOTAYIM]);
    }

    /**
     * {@inheritdoc}
     *
     * Must run before CombineConsecutiveUnsetsFixer.
     */
    public function getPriority()
    {
        return 25;
    }

    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        for ($index = $tokens->count() - 1; $index >= 0; --$index) {
            if (!$tokens[$index]->isGivenKind(T_UNSET)) {
                continue;
            }

            $unsetsInfo = $this->getUnsetsInfo($tokens, $index);

            if (!$this->isAnyUnsetToTransform($unsetsInfo)) {
                continue;
            }

            $isLastUnset = true; // yes, last - we reverse the array below
            foreach (array_reverse($unsetsInfo) as $unsetInfo) {
                $this->updateTokens($tokens, $unsetInfo, $isLastUnset);
                $isLastUnset = false;
            }
        }
    }

    /**
     * @param int $index
     *
     * @return array<array<string, bool|int>>
     */
    private function getUnsetsInfo(Tokens $tokens, $index)
    {
        $argumentsAnalyzer = new ArgumentsAnalyzer();

        $unsetStart = $tokens->getNextTokenOfKind($index, ['(']);
        $unsetEnd = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $unsetStart);
        $isFirst = true;

        $unsets = [];
        foreach ($argumentsAnalyzer->getArguments($tokens, $unsetStart, $unsetEnd) as $startIndex => $endIndex) {
            $startIndex = $tokens->getNextMeaningfulToken($startIndex - 1);
            $endIndex = $tokens->getPrevMeaningfulToken($endIndex + 1);
            $unsets[] = [
                'startIndex' => $startIndex,
                'endIndex' => $endIndex,
                'isToTransform' => $this->isProperty($tokens, $startIndex, $endIndex),
                'isFirst' => $isFirst,
            ];
            $isFirst = false;
        }

        return $unsets;
    }

    /**
     * @param int $index
     * @param int $endIndex
     *
     * @return bool
     */
    private function isProperty(Tokens $tokens, $index, $endIndex)
    {
        if ($tokens[$index]->isGivenKind(T_VARIABLE)) {
            $nextIndex = $tokens->getNextMeaningfulToken($index);
            if (null === $nextIndex || !$tokens[$nextIndex]->isGivenKind(T_OBJECT_OPERATOR)) {
                return false;
            }
            $nextIndex = $tokens->getNextMeaningfulToken($nextIndex);
            $nextNextIndex = $tokens->getNextMeaningfulToken($nextIndex);
            if (null !== $nextNextIndex && $nextNextIndex < $endIndex) {
                return false;
            }

            return null !== $nextIndex && $tokens[$nextIndex]->isGivenKind(T_STRING);
        }

        if ($tokens[$index]->isGivenKind([T_NS_SEPARATOR, T_STRING])) {
            $nextIndex = $tokens->getTokenNotOfKindSibling($index, 1, [[T_DOUBLE_COLON], [T_NS_SEPARATOR], [T_STRING]]);
            $nextNextIndex = $tokens->getNextMeaningfulToken($nextIndex);
            if (null !== $nextNextIndex && $nextNextIndex < $endIndex) {
                return false;
            }

            return null !== $nextIndex && $tokens[$nextIndex]->isGivenKind(T_VARIABLE);
        }

        return false;
    }

    /**
     * @param array<array<string, bool|int>> $unsetsInfo
     *
     * @return bool
     */
    private function isAnyUnsetToTransform(array $unsetsInfo)
    {
        foreach ($unsetsInfo as $unsetInfo) {
            if ($unsetInfo['isToTransform']) {
                return true;
            }
        }

        return false;
    }

    /**
     * @param array<string, bool|int> $unsetInfo
     * @param bool                    $isLastUnset
     */
    private function updateTokens(Tokens $tokens, array $unsetInfo, $isLastUnset)
    {
        // if entry is first and to be transform we remove leading "unset("
        if ($unsetInfo['isFirst'] && $unsetInfo['isToTransform']) {
            $braceIndex = $tokens->getPrevTokenOfKind($unsetInfo['startIndex'], ['(']);
            $unsetIndex = $tokens->getPrevTokenOfKind($braceIndex, [[T_UNSET]]);
            $tokens->clearTokenAndMergeSurroundingWhitespace($braceIndex);
            $tokens->clearTokenAndMergeSurroundingWhitespace($unsetIndex);
        }

        // if entry is last and to be transformed we remove trailing ")"
        if ($isLastUnset && $unsetInfo['isToTransform']) {
            $braceIndex = $tokens->getNextTokenOfKind($unsetInfo['endIndex'], [')']);
            $previousIndex = $tokens->getPrevMeaningfulToken($braceIndex);
            if ($tokens[$previousIndex]->equals(',')) {
                $tokens->clearTokenAndMergeSurroundingWhitespace($previousIndex); // trailing ',' in function call (PHP 7.3)
            }

            $tokens->clearTokenAndMergeSurroundingWhitespace($braceIndex);
        }

        // if entry is not last we replace comma with semicolon (last entry already has semicolon - from original unset)
        if (!$isLastUnset) {
            $commaIndex = $tokens->getNextTokenOfKind($unsetInfo['endIndex'], [',']);
            $tokens[$commaIndex] = new Token(';');
        }

        // if entry is to be unset and is not last we add trailing ")"
        if (!$unsetInfo['isToTransform'] && !$isLastUnset) {
            $tokens->insertAt($unsetInfo['endIndex'] + 1, new Token(')'));
        }

        // if entry is to be unset and is not first we add leading "unset("
        if (!$unsetInfo['isToTransform'] && !$unsetInfo['isFirst']) {
            $tokens->insertAt(
                $unsetInfo['startIndex'],
                [
                    new Token([T_UNSET, 'unset']),
                    new Token('('),
                ]
            );
        }

        // and finally
        // if entry is to be transformed we add trailing " = null"
        if ($unsetInfo['isToTransform']) {
            $tokens->insertAt(
                $unsetInfo['endIndex'] + 1,
                [
                    new Token([T_WHITESPACE, ' ']),
                    new Token('='),
                    new Token([T_WHITESPACE, ' ']),
                    new Token([T_STRING, 'null']),
                ]
            );
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Alias;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Filippo Tessarotto <zoeslam@gmail.com>
 */
final class BacktickToShellExecFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound('`');
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Converts backtick operators to `shell_exec` calls.',
            [
                new CodeSample(
                    <<<'EOT'
<?php
$plain = `ls -lah`;
$withVar = `ls -lah $var1 ${var2} {$var3} {$var4[0]} {$var5->call()}`;

EOT
                ),
            ],
            'Conversion is done only when it is non risky, so when special chars like single-quotes, double-quotes and backticks are not used inside the command.'
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before EscapeImplicitBackslashesFixer, ExplicitStringVariableFixer.
     */
    public function getPriority()
    {
        return 2;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $backtickStarted = false;
        $backtickTokens = [];
        for ($index = $tokens->count() - 1; $index > 0; --$index) {
            $token = $tokens[$index];
            if (!$token->equals('`')) {
                if ($backtickStarted) {
                    $backtickTokens[$index] = $token;
                }

                continue;
            }

            $backtickTokens[$index] = $token;
            if ($backtickStarted) {
                $this->fixBackticks($tokens, $backtickTokens);
                $backtickTokens = [];
            }
            $backtickStarted = !$backtickStarted;
        }
    }

    /**
     * Override backtick code with corresponding double-quoted string.
     */
    private function fixBackticks(Tokens $tokens, array $backtickTokens)
    {
        // Track indexes for final override
        ksort($backtickTokens);
        $openingBacktickIndex = key($backtickTokens);
        end($backtickTokens);
        $closingBacktickIndex = key($backtickTokens);

        // Strip enclosing backticks
        array_shift($backtickTokens);
        array_pop($backtickTokens);

        // Double-quoted strings are parsed differently if they contain
        // variables or not, so we need to build the new token array accordingly
        $count = \count($backtickTokens);

        $newTokens = [
            new Token([T_STRING, 'shell_exec']),
            new Token('('),
        ];
        if (1 !== $count) {
            $newTokens[] = new Token('"');
        }
        foreach ($backtickTokens as $token) {
            if (!$token->isGivenKind(T_ENCAPSED_AND_WHITESPACE)) {
                $newTokens[] = $token;

                continue;
            }
            $content = $token->getContent();
            // Escaping special chars depends on the context: too tricky
            if (Preg::match('/[`"\']/u', $content)) {
                return;
            }

            $kind = T_ENCAPSED_AND_WHITESPACE;
            if (1 === $count) {
                $content = '"'.$content.'"';
                $kind = T_CONSTANT_ENCAPSED_STRING;
            }

            $newTokens[] = new Token([$kind, $content]);
        }
        if (1 !== $count) {
            $newTokens[] = new Token('"');
        }
        $newTokens[] = new Token(')');

        $tokens->overrideRange($openingBacktickIndex, $closingBacktickIndex, $newTokens);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Alias;

use PhpCsFixer\AbstractFunctionReferenceFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Analyzer\ArgumentsAnalyzer;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author SpacePossum
 */
final class SetTypeToCastFixer extends AbstractFunctionReferenceFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Cast shall be used, not `settype`.',
            [
                new CodeSample(
                    '<?php
settype($foo, "integer");
settype($bar, "string");
settype($bar, "null");
'
                ),
            ],
            null,
            'Risky when the `settype` function is overridden or when used as the 2nd or 3rd expression in a `for` loop .'
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAllTokenKindsFound([T_CONSTANT_ENCAPSED_STRING, T_STRING, T_VARIABLE]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $map = [
            'array' => [T_ARRAY_CAST, '(array)'],
            'bool' => [T_BOOL_CAST, '(bool)'],
            'boolean' => [T_BOOL_CAST, '(bool)'],
            'double' => [T_DOUBLE_CAST, '(float)'],
            'float' => [T_DOUBLE_CAST, '(float)'],
            'int' => [T_INT_CAST, '(int)'],
            'integer' => [T_INT_CAST, '(int)'],
            'object' => [T_OBJECT_CAST, '(object)'],
            'string' => [T_STRING_CAST, '(string)'],
            // note: `'null' is dealt with later on
        ];

        $argumentsAnalyzer = new ArgumentsAnalyzer();

        foreach (array_reverse($this->findSettypeCalls($tokens)) as $candidate) {
            $functionNameIndex = $candidate[0];

            $arguments = $argumentsAnalyzer->getArguments($tokens, $candidate[1], $candidate[2]);
            if (2 !== \count($arguments)) {
                continue; // function must be overridden or used incorrectly
            }

            $prev = $tokens->getPrevMeaningfulToken($functionNameIndex);
            if (!$tokens[$prev]->isGivenKind(T_OPEN_TAG) && !$tokens[$prev]->equalsAny([';', '{'])) {
                continue; // return value of the function is used
            }

            reset($arguments);

            // --- Test first argument --------------------

            $firstArgumentStart = key($arguments);
            if ($tokens[$firstArgumentStart]->isComment() || $tokens[$firstArgumentStart]->isWhitespace()) {
                $firstArgumentStart = $tokens->getNextMeaningfulToken($firstArgumentStart);
            }

            if (!$tokens[$firstArgumentStart]->isGivenKind(T_VARIABLE)) {
                continue; // settype only works with variables pass by reference, function must be overridden
            }

            $commaIndex = $tokens->getNextMeaningfulToken($firstArgumentStart);

            if (null === $commaIndex || !$tokens[$commaIndex]->equals(',')) {
                continue; // first argument is complex statement; function must be overridden
            }

            // --- Test second argument -------------------

            next($arguments);
            $secondArgumentStart = key($arguments);
            $secondArgumentEnd = $arguments[$secondArgumentStart];

            if ($tokens[$secondArgumentStart]->isComment() || $tokens[$secondArgumentStart]->isWhitespace()) {
                $secondArgumentStart = $tokens->getNextMeaningfulToken($secondArgumentStart);
            }

            if (
                !$tokens[$secondArgumentStart]->isGivenKind(T_CONSTANT_ENCAPSED_STRING)
                || $tokens->getNextMeaningfulToken($secondArgumentStart) < $secondArgumentEnd
            ) {
                continue; // second argument is of the wrong type or is a (complex) statement of some sort (function is overridden)
            }

            // --- Test type ------------------------------

            $type = strtolower(trim($tokens[$secondArgumentStart]->getContent(), '"\'"'));

            if ('null' !== $type && !isset($map[$type])) {
                continue; // we don't know how to map
            }

            // --- Fixing ---------------------------------

            $argumentToken = $tokens[$firstArgumentStart];

            $this->removeSettypeCall(
                $tokens,
                $functionNameIndex,
                $candidate[1],
                $firstArgumentStart,
                $commaIndex,
                $secondArgumentStart,
                $candidate[2]
            );

            if ('null' === $type) {
                $this->findSettypeNullCall($tokens, $functionNameIndex, $argumentToken);
            } else {
                $this->fixSettypeCall($tokens, $functionNameIndex, $argumentToken, new Token($map[$type]));
            }
        }
    }

    private function findSettypeCalls(Tokens $tokens)
    {
        $candidates = [];

        $end = \count($tokens);
        for ($i = 1; $i < $end; ++$i) {
            $candidate = $this->find('settype', $tokens, $i, $end);
            if (null === $candidate) {
                break;
            }

            $i = $candidate[1]; // proceed to openParenthesisIndex
            $candidates[] = $candidate;
        }

        return $candidates;
    }

    /**
     * @param int $functionNameIndex
     * @param int $openParenthesisIndex
     * @param int $firstArgumentStart
     * @param int $commaIndex
     * @param int $secondArgumentStart
     * @param int $closeParenthesisIndex
     */
    private function removeSettypeCall(
        Tokens $tokens,
        $functionNameIndex,
        $openParenthesisIndex,
        $firstArgumentStart,
        $commaIndex,
        $secondArgumentStart,
        $closeParenthesisIndex
    ) {
        $tokens->clearTokenAndMergeSurroundingWhitespace($closeParenthesisIndex);
        $prevIndex = $tokens->getPrevMeaningfulToken($closeParenthesisIndex);
        if ($tokens[$prevIndex]->equals(',')) {
            $tokens->clearTokenAndMergeSurroundingWhitespace($prevIndex);
        }
        $tokens->clearTokenAndMergeSurroundingWhitespace($secondArgumentStart);
        $tokens->clearTokenAndMergeSurroundingWhitespace($commaIndex);
        $tokens->clearTokenAndMergeSurroundingWhitespace($firstArgumentStart);
        $tokens->clearTokenAndMergeSurroundingWhitespace($openParenthesisIndex);
        $tokens->clearAt($functionNameIndex); // we'll be inserting here so no need to merge the space tokens
        $tokens->clearEmptyTokens();
    }

    /**
     * @param int $functionNameIndex
     */
    private function fixSettypeCall(
        Tokens $tokens,
        $functionNameIndex,
        Token $argumentToken,
        Token $castToken
    ) {
        $tokens->insertAt(
            $functionNameIndex,
            [
                clone $argumentToken,
                new Token([T_WHITESPACE, ' ']),
                new Token('='),
                new Token([T_WHITESPACE, ' ']),
                $castToken,
                new Token([T_WHITESPACE, ' ']),
                clone $argumentToken,
            ]
        );

        $tokens->removeTrailingWhitespace($functionNameIndex + 6); // 6 = number of inserted tokens -1 for offset correction
    }

    /**
     * @param int $functionNameIndex
     */
    private function findSettypeNullCall(
        Tokens $tokens,
        $functionNameIndex,
        Token $argumentToken
    ) {
        $tokens->insertAt(
            $functionNameIndex,
            [
                clone $argumentToken,
                new Token([T_WHITESPACE, ' ']),
                new Token('='),
                new Token([T_WHITESPACE, ' ']),
                new Token([T_STRING, 'null']),
            ]
        );

        $tokens->removeTrailingWhitespace($functionNameIndex + 4); // 4 = number of inserted tokens -1 for offset correction
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Alias;

use PhpCsFixer\AbstractFunctionReferenceFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverRootless;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Analyzer\ArgumentsAnalyzer;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException;

/**
 * @author Vladimir Reznichenko <kalessil@gmail.com>
 */
final class RandomApiMigrationFixer extends AbstractFunctionReferenceFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * @var array
     */
    private static $argumentCounts = [
        'getrandmax' => [0],
        'mt_rand' => [1, 2],
        'rand' => [0, 2],
        'srand' => [0, 1],
    ];

    /**
     * {@inheritdoc}
     */
    public function configure(array $configuration = null)
    {
        parent::configure($configuration);

        foreach ($this->configuration['replacements'] as $functionName => $replacement) {
            $this->configuration['replacements'][$functionName] = [
                'alternativeName' => $replacement,
                'argumentCount' => self::$argumentCounts[$functionName],
            ];
        }
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Replaces `rand`, `srand`, `getrandmax` functions calls with their `mt_*` analogs.',
            [
                new CodeSample("<?php\n\$a = getrandmax();\n\$a = rand(\$b, \$c);\n\$a = srand();\n"),
                new CodeSample(
                    "<?php\n\$a = getrandmax();\n\$a = rand(\$b, \$c);\n\$a = srand();\n",
                    ['replacements' => ['getrandmax' => 'mt_getrandmax']]
                ),
            ],
            null,
            'Risky when the configured functions are overridden.'
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_STRING);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $argumentsAnalyzer = new ArgumentsAnalyzer();

        foreach ($this->configuration['replacements'] as $functionIdentity => $functionReplacement) {
            if ($functionIdentity === $functionReplacement['alternativeName']) {
                continue;
            }

            $currIndex = 0;
            while (null !== $currIndex) {
                // try getting function reference and translate boundaries for humans
                $boundaries = $this->find($functionIdentity, $tokens, $currIndex, $tokens->count() - 1);
                if (null === $boundaries) {
                    // next function search, as current one not found
                    continue 2;
                }

                list($functionName, $openParenthesis, $closeParenthesis) = $boundaries;
                $count = $argumentsAnalyzer->countArguments($tokens, $openParenthesis, $closeParenthesis);
                if (!\in_array($count, $functionReplacement['argumentCount'], true)) {
                    continue 2;
                }

                // analysing cursor shift, so nested calls could be processed
                $currIndex = $openParenthesis;

                $tokens[$functionName] = new Token([T_STRING, $functionReplacement['alternativeName']]);

                if (0 === $count && 'random_int' === $functionReplacement['alternativeName']) {
                    $tokens->insertAt($currIndex + 1, [
                        new Token([T_LNUMBER, '0']),
                        new Token(','),
                        new Token([T_WHITESPACE, ' ']),
                        new Token([T_STRING, 'getrandmax']),
                        new Token('('),
                        new Token(')'),
                    ]);

                    $currIndex += 6;
                }
            }
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolverRootless('replacements', [
            (new FixerOptionBuilder('replacements', 'Mapping between replaced functions with the new ones.'))
                ->setAllowedTypes(['array'])
                ->setAllowedValues([static function ($value) {
                    foreach ($value as $functionName => $replacement) {
                        if (!\array_key_exists($functionName, self::$argumentCounts)) {
                            throw new InvalidOptionsException(sprintf(
                                'Function "%s" is not handled by the fixer.',
                                $functionName
                            ));
                        }

                        if (!\is_string($replacement)) {
                            throw new InvalidOptionsException(sprintf(
                                'Replacement for function "%s" must be a string, "%s" given.',
                                $functionName,
                                \is_object($replacement) ? \get_class($replacement) : \gettype($replacement)
                            ));
                        }
                    }

                    return true;
                }])
                ->setDefault([
                    'getrandmax' => 'mt_getrandmax',
                    'rand' => 'mt_rand',
                    'srand' => 'mt_srand',
                ])
                ->getOption(),
        ], $this->getName());
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Alias;

use PhpCsFixer\AbstractFunctionReferenceFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Analyzer\ArgumentsAnalyzer;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Filippo Tessarotto <zoeslam@gmail.com>
 */
final class MbStrFunctionsFixer extends AbstractFunctionReferenceFixer
{
    /**
     * @var array the list of the string-related function names and their mb_ equivalent
     */
    private static $functionsMap = [
        'str_split' => ['alternativeName' => 'mb_str_split', 'argumentCount' => [1, 2, 3]],
        'stripos' => ['alternativeName' => 'mb_stripos', 'argumentCount' => [2, 3]],
        'stristr' => ['alternativeName' => 'mb_stristr', 'argumentCount' => [2, 3]],
        'strlen' => ['alternativeName' => 'mb_strlen', 'argumentCount' => [1]],
        'strpos' => ['alternativeName' => 'mb_strpos', 'argumentCount' => [2, 3]],
        'strrchr' => ['alternativeName' => 'mb_strrchr', 'argumentCount' => [2]],
        'strripos' => ['alternativeName' => 'mb_strripos', 'argumentCount' => [2, 3]],
        'strrpos' => ['alternativeName' => 'mb_strrpos', 'argumentCount' => [2, 3]],
        'strstr' => ['alternativeName' => 'mb_strstr', 'argumentCount' => [2, 3]],
        'strtolower' => ['alternativeName' => 'mb_strtolower', 'argumentCount' => [1]],
        'strtoupper' => ['alternativeName' => 'mb_strtoupper', 'argumentCount' => [1]],
        'substr' => ['alternativeName' => 'mb_substr', 'argumentCount' => [2, 3]],
        'substr_count' => ['alternativeName' => 'mb_substr_count', 'argumentCount' => [2, 3, 4]],
    ];

    /**
     * @var array<string, array>
     */
    private $functions;

    public function __construct()
    {
        parent::__construct();

        $this->functions = array_filter(
            self::$functionsMap,
            static function (array $mapping) {
                return \function_exists($mapping['alternativeName']) && (new \ReflectionFunction($mapping['alternativeName']))->isInternal();
            }
        );
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Replace non multibyte-safe functions with corresponding mb function.',
            [
                new CodeSample(
                    '<?php
$a = strlen($a);
$a = strpos($a, $b);
$a = strrpos($a, $b);
$a = substr($a, $b);
$a = strtolower($a);
$a = strtoupper($a);
$a = stripos($a, $b);
$a = strripos($a, $b);
$a = strstr($a, $b);
$a = stristr($a, $b);
$a = strrchr($a, $b);
$a = substr_count($a, $b);
'
                ),
            ],
            null,
            'Risky when any of the functions are overridden.'
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_STRING);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $argumentsAnalyzer = new ArgumentsAnalyzer();
        foreach ($this->functions as $functionIdentity => $functionReplacement) {
            $currIndex = 0;
            while (null !== $currIndex) {
                // try getting function reference and translate boundaries for humans
                $boundaries = $this->find($functionIdentity, $tokens, $currIndex, $tokens->count() - 1);
                if (null === $boundaries) {
                    // next function search, as current one not found
                    continue 2;
                }

                list($functionName, $openParenthesis, $closeParenthesis) = $boundaries;
                $count = $argumentsAnalyzer->countArguments($tokens, $openParenthesis, $closeParenthesis);
                if (!\in_array($count, $functionReplacement['argumentCount'], true)) {
                    continue 2;
                }

                // analysing cursor shift, so nested calls could be processed
                $currIndex = $openParenthesis;

                $tokens[$functionName] = new Token([T_STRING, $functionReplacement['alternativeName']]);
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Alias;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Sullivan Senechal <soullivaneuh@gmail.com>
 * @author SpacePossum
 */
final class NoMixedEchoPrintFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * @deprecated will be removed in 3.0
     */
    public static $defaultConfig = ['use' => 'echo'];

    /**
     * @var string
     */
    private $callBack;

    /**
     * @var int T_ECHO or T_PRINT
     */
    private $candidateTokenType;

    /**
     * {@inheritdoc}
     */
    public function configure(array $configuration = null)
    {
        parent::configure($configuration);

        if ('echo' === $this->configuration['use']) {
            $this->candidateTokenType = T_PRINT;
            $this->callBack = 'fixPrintToEcho';
        } else {
            $this->candidateTokenType = T_ECHO;
            $this->callBack = 'fixEchoToPrint';
        }
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Either language construct `print` or `echo` should be used.',
            [
                new CodeSample("<?php print 'example';\n"),
                new CodeSample("<?php echo('example');\n", ['use' => 'print']),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run after NoShortEchoTagFixer.
     */
    public function getPriority()
    {
        return -10;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound($this->candidateTokenType);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $callBack = $this->callBack;
        foreach ($tokens as $index => $token) {
            if ($token->isGivenKind($this->candidateTokenType)) {
                $this->{$callBack}($tokens, $index);
            }
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('use', 'The desired language construct.'))
                ->setAllowedValues(['print', 'echo'])
                ->setDefault('echo')
                ->getOption(),
        ]);
    }

    /**
     * @param int $index
     */
    private function fixEchoToPrint(Tokens $tokens, $index)
    {
        $nextTokenIndex = $tokens->getNextMeaningfulToken($index);
        $endTokenIndex = $tokens->getNextTokenOfKind($index, [';', [T_CLOSE_TAG]]);
        $canBeConverted = true;

        for ($i = $nextTokenIndex; $i < $endTokenIndex; ++$i) {
            if ($tokens[$i]->equalsAny(['(', [CT::T_ARRAY_SQUARE_BRACE_OPEN]])) {
                $blockType = Tokens::detectBlockType($tokens[$i]);
                $i = $tokens->findBlockEnd($blockType['type'], $i);
            }

            if ($tokens[$i]->equals(',')) {
                $canBeConverted = false;

                break;
            }
        }

        if (false === $canBeConverted) {
            return;
        }

        $tokens[$index] = new Token([T_PRINT, 'print']);
    }

    /**
     * @param int $index
     */
    private function fixPrintToEcho(Tokens $tokens, $index)
    {
        $prevToken = $tokens[$tokens->getPrevMeaningfulToken($index)];

        if (!$prevToken->equalsAny([';', '{', '}', [T_OPEN_TAG]])) {
            return;
        }

        $tokens[$index] = new Token([T_ECHO, 'echo']);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Alias;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\AllowedValueSubset;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Analyzer\FunctionsAnalyzer;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Vladimir Reznichenko <kalessil@gmail.com>
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class NoAliasFunctionsFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /** @var array<string, string> stores alias (key) - master (value) functions mapping */
    private $aliases = [];

    /** @var array<string, string> stores alias (key) - master (value) functions mapping */
    private static $internalSet = [
        'chop' => 'rtrim',
        'close' => 'closedir',
        'doubleval' => 'floatval',
        'fputs' => 'fwrite',
        'get_required_files' => 'get_included_files',
        'ini_alter' => 'ini_set',
        'is_double' => 'is_float',
        'is_integer' => 'is_int',
        'is_long' => 'is_int',
        'is_real' => 'is_float',
        'is_writeable' => 'is_writable',
        'join' => 'implode',
        'key_exists' => 'array_key_exists',
        'magic_quotes_runtime' => 'set_magic_quotes_runtime',
        'pos' => 'current',
        'show_source' => 'highlight_file',
        'sizeof' => 'count',
        'strchr' => 'strstr',
        'user_error' => 'trigger_error',
    ];

    /** @var array<string, string> stores alias (key) - master (value) functions mapping */
    private static $imapSet = [
        'imap_create' => 'imap_createmailbox',
        'imap_fetchtext' => 'imap_body',
        'imap_header' => 'imap_headerinfo',
        'imap_listmailbox' => 'imap_list',
        'imap_listsubscribed' => 'imap_lsub',
        'imap_rename' => 'imap_renamemailbox',
        'imap_scan' => 'imap_listscan',
        'imap_scanmailbox' => 'imap_listscan',
    ];

    /** @var array<string, string> stores alias (key) - master (value) functions mapping */
    private static $mbregSet = [
        'mbereg' => 'mb_ereg',
        'mbereg_match' => 'mb_ereg_match',
        'mbereg_replace' => 'mb_ereg_replace',
        'mbereg_search' => 'mb_ereg_search',
        'mbereg_search_getpos' => 'mb_ereg_search_getpos',
        'mbereg_search_getregs' => 'mb_ereg_search_getregs',
        'mbereg_search_init' => 'mb_ereg_search_init',
        'mbereg_search_pos' => 'mb_ereg_search_pos',
        'mbereg_search_regs' => 'mb_ereg_search_regs',
        'mbereg_search_setpos' => 'mb_ereg_search_setpos',
        'mberegi' => 'mb_eregi',
        'mberegi_replace' => 'mb_eregi_replace',
        'mbregex_encoding' => 'mb_regex_encoding',
        'mbsplit' => 'mb_split',
    ];

    public function configure(array $configuration = null)
    {
        parent::configure($configuration);

        $this->aliases = [];
        foreach ($this->configuration['sets'] as $set) {
            if ('@all' === $set) {
                $this->aliases = self::$internalSet;
                $this->aliases = array_merge($this->aliases, self::$imapSet);
                $this->aliases = array_merge($this->aliases, self::$mbregSet);

                break;
            }
            if ('@internal' === $set) {
                $this->aliases = array_merge($this->aliases, self::$internalSet);
            } elseif ('@IMAP' === $set) {
                $this->aliases = array_merge($this->aliases, self::$imapSet);
            } elseif ('@mbreg' === $set) {
                $this->aliases = array_merge($this->aliases, self::$mbregSet);
            }
        }
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Master functions shall be used instead of aliases.',
            [
                new CodeSample(
                    '<?php
$a = chop($b);
close($b);
$a = doubleval($b);
$a = fputs($b, $c);
$a = get_required_files();
ini_alter($b, $c);
$a = is_double($b);
$a = is_integer($b);
$a = is_long($b);
$a = is_real($b);
$a = is_writeable($b);
$a = join($glue, $pieces);
$a = key_exists($key, $array);
magic_quotes_runtime($new_setting);
$a = pos($array);
$a = show_source($filename, true);
$a = sizeof($b);
$a = strchr($haystack, $needle);
$a = imap_header($imap_stream, 1);
user_error($message);
mbereg_search_getregs();
'
                ),
                new CodeSample(
                    '<?php
$a = is_double($b);
mbereg_search_getregs();
',
                    ['sets' => ['@mbreg']]
                ),
            ],
            null,
            'Risky when any of the alias functions are overridden.'
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before ImplodeCallFixer, PhpUnitDedicateAssertFixer.
     */
    public function getPriority()
    {
        return 0;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_STRING);
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $functionsAnalyzer = new FunctionsAnalyzer();

        /** @var Token $token */
        foreach ($tokens->findGivenKind(T_STRING) as $index => $token) {
            // check mapping hit
            $tokenContent = strtolower($token->getContent());
            if (!isset($this->aliases[$tokenContent])) {
                continue;
            }

            // skip expressions without parameters list
            $nextToken = $tokens[$tokens->getNextMeaningfulToken($index)];
            if (!$nextToken->equals('(')) {
                continue;
            }

            if (!$functionsAnalyzer->isGlobalFunctionCall($tokens, $index)) {
                continue;
            }

            $tokens[$index] = new Token([T_STRING, $this->aliases[$tokenContent]]);
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        $sets = ['@internal', '@IMAP', '@mbreg', '@all'];

        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('sets', 'List of sets to fix. Defined sets are `@internal` (native functions), `@IMAP` (IMAP functions), `@mbreg` (from `ext-mbstring`) `@all` (all listed sets).'))
                ->setAllowedTypes(['array'])
                ->setAllowedValues([new AllowedValueSubset($sets)])
                ->setDefault(['@internal', '@IMAP'])
                ->getOption(),
        ]);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Alias;

use PhpCsFixer\AbstractFunctionReferenceFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Analyzer\ArgumentsAnalyzer;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author SpacePossum
 */
final class PowToExponentiationFixer extends AbstractFunctionReferenceFixer
{
    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        // minimal candidate to fix is seven tokens: pow(x,x);
        return $tokens->count() > 7 && $tokens->isTokenKindFound(T_STRING);
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Converts `pow` to the `**` operator.',
            [
                new CodeSample(
                    "<?php\n pow(\$a, 1);\n"
                ),
            ],
            null,
            'Risky when the function `pow` is overridden.'
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before BinaryOperatorSpacesFixer, MethodArgumentSpaceFixer, NativeFunctionCasingFixer, NoSpacesAfterFunctionNameFixer, NoSpacesInsideParenthesisFixer.
     */
    public function getPriority()
    {
        return 3;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $candidates = $this->findPowCalls($tokens);
        $argumentsAnalyzer = new ArgumentsAnalyzer();

        $numberOfTokensAdded = 0;
        $previousCloseParenthesisIndex = \count($tokens);
        foreach (array_reverse($candidates) as $candidate) {
            // if in the previous iteration(s) tokens were added to the collection and this is done within the tokens
            // indexes of the current candidate than the index of the close ')' of the candidate has moved and so
            // the index needs to be updated
            if ($previousCloseParenthesisIndex < $candidate[2]) {
                $previousCloseParenthesisIndex = $candidate[2];
                $candidate[2] += $numberOfTokensAdded;
            } else {
                $previousCloseParenthesisIndex = $candidate[2];
                $numberOfTokensAdded = 0;
            }

            $arguments = $argumentsAnalyzer->getArguments($tokens, $candidate[1], $candidate[2]);
            if (2 !== \count($arguments)) {
                continue;
            }

            $numberOfTokensAdded += $this->fixPowToExponentiation(
                $tokens,
                $candidate[0], // functionNameIndex,
                $candidate[1], // openParenthesisIndex,
                $candidate[2], // closeParenthesisIndex,
                $arguments
            );
        }
    }

    /**
     * @return array[]
     */
    private function findPowCalls(Tokens $tokens)
    {
        $candidates = [];

        // Minimal candidate to fix is seven tokens: pow(x,x);
        $end = \count($tokens) - 6;

        // First possible location is after the open token: 1
        for ($i = 1; $i < $end; ++$i) {
            $candidate = $this->find('pow', $tokens, $i, $end);
            if (null === $candidate) {
                break;
            }

            $i = $candidate[1]; // proceed to openParenthesisIndex
            $candidates[] = $candidate;
        }

        return $candidates;
    }

    /**
     * @param int            $functionNameIndex
     * @param int            $openParenthesisIndex
     * @param int            $closeParenthesisIndex
     * @param array<int,int> $arguments
     *
     * @return int number of tokens added to the collection
     */
    private function fixPowToExponentiation(Tokens $tokens, $functionNameIndex, $openParenthesisIndex, $closeParenthesisIndex, array $arguments)
    {
        // find the argument separator ',' directly after the last token of the first argument;
        // replace it with T_POW '**'
        $tokens[$tokens->getNextTokenOfKind(reset($arguments), [','])] = new Token([T_POW, '**']);

        // clean up the function call tokens prt. I
        $tokens->clearAt($closeParenthesisIndex);
        $previousIndex = $tokens->getPrevMeaningfulToken($closeParenthesisIndex);
        if ($tokens[$previousIndex]->equals(',')) {
            $tokens->clearAt($previousIndex); // trailing ',' in function call (PHP 7.3)
        }

        $added = 0;
        // check if the arguments need to be wrapped in parenthesis
        foreach (array_reverse($arguments, true) as $argumentStartIndex => $argumentEndIndex) {
            if ($this->isParenthesisNeeded($tokens, $argumentStartIndex, $argumentEndIndex)) {
                $tokens->insertAt($argumentEndIndex + 1, new Token(')'));
                $tokens->insertAt($argumentStartIndex, new Token('('));
                $added += 2;
            }
        }

        // clean up the function call tokens prt. II
        $tokens->clearAt($openParenthesisIndex);
        $tokens->clearAt($functionNameIndex);

        $prev = $tokens->getPrevMeaningfulToken($functionNameIndex);
        if ($tokens[$prev]->isGivenKind(T_NS_SEPARATOR)) {
            $tokens->clearAt($prev);
        }

        return $added;
    }

    /**
     * @param int $argumentStartIndex
     * @param int $argumentEndIndex
     *
     * @return bool
     */
    private function isParenthesisNeeded(Tokens $tokens, $argumentStartIndex, $argumentEndIndex)
    {
        static $allowedKinds = [
            T_DNUMBER, T_LNUMBER, T_VARIABLE, T_STRING, T_OBJECT_OPERATOR, T_CONSTANT_ENCAPSED_STRING, T_DOUBLE_CAST,
            T_INT_CAST, T_INC, T_DEC, T_NS_SEPARATOR, T_WHITESPACE, T_DOUBLE_COLON, T_LINE, T_COMMENT, T_DOC_COMMENT,
            CT::T_NAMESPACE_OPERATOR,
        ];

        for ($i = $argumentStartIndex; $i <= $argumentEndIndex; ++$i) {
            if ($tokens[$i]->isGivenKind($allowedKinds) || $tokens->isEmptyAt($i)) {
                continue;
            }

            if (null !== $blockType = Tokens::detectBlockType($tokens[$i])) {
                $i = $tokens->findBlockEnd($blockType['type'], $i);

                continue;
            }

            if ($tokens[$i]->equals('$')) {
                $i = $tokens->getNextMeaningfulToken($i);
                if ($tokens[$i]->isGivenKind(CT::T_DYNAMIC_VAR_BRACE_OPEN)) {
                    $i = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_DYNAMIC_VAR_BRACE, $i);

                    continue;
                }
            }

            if ($tokens[$i]->equals('+') && $tokens->getPrevMeaningfulToken($i) < $argumentStartIndex) {
                continue;
            }

            return true;
        }

        return false;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Alias;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\PregException;
use PhpCsFixer\Tokenizer\Analyzer\FunctionsAnalyzer;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Utils;

/**
 * @author Matteo Beccati <matteo@beccati.com>
 */
final class EregToPregFixer extends AbstractFixer
{
    /**
     * @var array the list of the ext/ereg function names, their preg equivalent and the preg modifier(s), if any
     *            all condensed in an array of arrays
     */
    private static $functions = [
        ['ereg', 'preg_match', ''],
        ['eregi', 'preg_match', 'i'],
        ['ereg_replace', 'preg_replace', ''],
        ['eregi_replace', 'preg_replace', 'i'],
        ['split', 'preg_split', ''],
        ['spliti', 'preg_split', 'i'],
    ];

    /**
     * @var array the list of preg delimiters, in order of preference
     */
    private static $delimiters = ['/', '#', '!'];

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Replace deprecated `ereg` regular expression functions with `preg`.',
            [new CodeSample("<?php \$x = ereg('[A-Z]');\n")],
            null,
            'Risky if the `ereg` function is overridden.'
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_STRING);
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $end = $tokens->count() - 1;
        $functionsAnalyzer = new FunctionsAnalyzer();

        foreach (self::$functions as $map) {
            // the sequence is the function name, followed by "(" and a quoted string
            $seq = [[T_STRING, $map[0]], '(', [T_CONSTANT_ENCAPSED_STRING]];

            $currIndex = 0;
            while (null !== $currIndex) {
                $match = $tokens->findSequence($seq, $currIndex, $end, false);

                // did we find a match?
                if (null === $match) {
                    break;
                }

                // findSequence also returns the tokens, but we're only interested in the indexes, i.e.:
                // 0 => function name,
                // 1 => bracket "("
                // 2 => quoted string passed as 1st parameter
                $match = array_keys($match);

                // advance tokenizer cursor
                $currIndex = $match[2];

                if (!$functionsAnalyzer->isGlobalFunctionCall($tokens, $match[0])) {
                    continue;
                }

                // ensure the first parameter is just a string (e.g. has nothing appended)
                $next = $tokens->getNextMeaningfulToken($match[2]);
                if (null === $next || !$tokens[$next]->equalsAny([',', ')'])) {
                    continue;
                }

                // convert to PCRE
                $regexTokenContent = $tokens[$match[2]]->getContent();
                $string = substr($regexTokenContent, 1, -1);
                $quote = $regexTokenContent[0];
                $delim = $this->getBestDelimiter($string);
                $preg = $delim.addcslashes($string, $delim).$delim.'D'.$map[2];

                // check if the preg is valid
                if (!$this->checkPreg($preg)) {
                    continue;
                }

                // modify function and argument
                $tokens[$match[0]] = new Token([T_STRING, $map[1]]);
                $tokens[$match[2]] = new Token([T_CONSTANT_ENCAPSED_STRING, $quote.$preg.$quote]);
            }
        }
    }

    /**
     * Check the validity of a PCRE.
     *
     * @param string $pattern the regular expression
     *
     * @return bool
     */
    private function checkPreg($pattern)
    {
        try {
            Preg::match($pattern, '');

            return true;
        } catch (PregException $e) {
            return false;
        }
    }

    /**
     * Get the delimiter that would require the least escaping in a regular expression.
     *
     * @param string $pattern the regular expression
     *
     * @return string the preg delimiter
     */
    private function getBestDelimiter($pattern)
    {
        // try do find something that's not used
        $delimiters = [];
        foreach (self::$delimiters as $k => $d) {
            if (false === strpos($pattern, $d)) {
                return $d;
            }

            $delimiters[$d] = [substr_count($pattern, $d), $k];
        }

        // return the least used delimiter, using the position in the list as a tie breaker
        uasort($delimiters, static function ($a, $b) {
            if ($a[0] === $b[0]) {
                return Utils::cmpInt($a, $b);
            }

            return $a[0] < $b[0] ? -1 : 1;
        });

        return key($delimiters);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer;

use PhpCsFixer\FixerDefinition\FixerDefinitionInterface;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 * @author SpacePossum
 */
interface DefinedFixerInterface extends FixerInterface
{
    /**
     * Returns the definition of the fixer.
     *
     * @return FixerDefinitionInterface
     */
    public function getDefinition();
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\NamespaceNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * Fixer for rules defined in PSR2 ¶3.
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class BlankLineAfterNamespaceFixer extends AbstractFixer implements WhitespacesAwareFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'There MUST be one blank line after the namespace declaration.',
            [
                new CodeSample("<?php\nnamespace Sample\\Sample;\n\n\n\$a;\n"),
                new CodeSample("<?php\nnamespace Sample\\Sample;\nClass Test{}\n"),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run after NoUnusedImportsFixer.
     */
    public function getPriority()
    {
        return -20;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_NAMESPACE);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $lastIndex = $tokens->count() - 1;

        for ($index = $lastIndex; $index >= 0; --$index) {
            $token = $tokens[$index];

            if (!$token->isGivenKind(T_NAMESPACE)) {
                continue;
            }

            $semicolonIndex = $tokens->getNextTokenOfKind($index, [';', '{', [T_CLOSE_TAG]]);
            $semicolonToken = $tokens[$semicolonIndex];

            if (!$semicolonToken->equals(';')) {
                continue;
            }

            $indexToEnsureBlankLineAfter = $this->getIndexToEnsureBlankLineAfter($tokens, $semicolonIndex);
            $indexToEnsureBlankLine = $tokens->getNonEmptySibling($indexToEnsureBlankLineAfter, 1);

            if (null !== $indexToEnsureBlankLine && $tokens[$indexToEnsureBlankLine]->isWhitespace()) {
                $tokens[$indexToEnsureBlankLine] = $this->getTokenToInsert($tokens[$indexToEnsureBlankLine]->getContent(), $indexToEnsureBlankLine === $lastIndex);
            } else {
                $tokens->insertAt($indexToEnsureBlankLineAfter + 1, $this->getTokenToInsert('', $indexToEnsureBlankLineAfter === $lastIndex));
            }
        }
    }

    /**
     * @param int $index
     *
     * @return int
     */
    private function getIndexToEnsureBlankLineAfter(Tokens $tokens, $index)
    {
        $indexToEnsureBlankLine = $index;
        $nextIndex = $tokens->getNonEmptySibling($indexToEnsureBlankLine, 1);

        while (null !== $nextIndex) {
            $token = $tokens[$nextIndex];

            if ($token->isWhitespace()) {
                if (1 === Preg::match('/\R/', $token->getContent())) {
                    break;
                }
                $nextNextIndex = $tokens->getNonEmptySibling($nextIndex, 1);

                if (!$tokens[$nextNextIndex]->isComment()) {
                    break;
                }
            }

            if (!$token->isWhitespace() && !$token->isComment()) {
                break;
            }

            $indexToEnsureBlankLine = $nextIndex;
            $nextIndex = $tokens->getNonEmptySibling($indexToEnsureBlankLine, 1);
        }

        return $indexToEnsureBlankLine;
    }

    /**
     * @param string $currentContent
     * @param bool   $isLastIndex
     *
     * @return Token
     */
    private function getTokenToInsert($currentContent, $isLastIndex)
    {
        $ending = $this->whitespacesConfig->getLineEnding();

        $emptyLines = $isLastIndex ? $ending : $ending.$ending;
        $indent = 1 === Preg::match('/^.*\R( *)$/s', $currentContent, $matches) ? $matches[1] : '';

        return new Token([T_WHITESPACE, $emptyLines.$indent]);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\NamespaceNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Bram Gotink <bram@gotink.me>
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class NoLeadingNamespaceWhitespaceFixer extends AbstractFixer implements WhitespacesAwareFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_NAMESPACE);
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'The namespace declaration line shouldn\'t contain leading whitespace.',
            [
                new CodeSample(
                    '<?php
 namespace Test8a;
    namespace Test8b;
'
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        for ($index = \count($tokens) - 1; 0 <= $index; --$index) {
            $token = $tokens[$index];

            if (!$token->isGivenKind(T_NAMESPACE)) {
                continue;
            }

            $beforeNamespaceIndex = $index - 1;
            $beforeNamespace = $tokens[$beforeNamespaceIndex];

            if (!$beforeNamespace->isWhitespace()) {
                if (!self::endsWithWhitespace($beforeNamespace->getContent())) {
                    $tokens->insertAt($index, new Token([T_WHITESPACE, $this->whitespacesConfig->getLineEnding()]));
                }

                continue;
            }

            $lastNewline = strrpos($beforeNamespace->getContent(), "\n");

            if (false === $lastNewline) {
                $beforeBeforeNamespace = $tokens[$index - 2];

                if (self::endsWithWhitespace($beforeBeforeNamespace->getContent())) {
                    $tokens->clearAt($beforeNamespaceIndex);
                } else {
                    $tokens[$beforeNamespaceIndex] = new Token([T_WHITESPACE, ' ']);
                }
            } else {
                $tokens[$beforeNamespaceIndex] = new Token([T_WHITESPACE, substr($beforeNamespace->getContent(), 0, $lastNewline + 1)]);
            }
        }
    }

    private static function endsWithWhitespace($str)
    {
        if ('' === $str) {
            return false;
        }

        return '' === trim(substr($str, -1));
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\NamespaceNotation;

use PhpCsFixer\AbstractLinesBeforeNamespaceFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Graham Campbell <graham@alt-three.com>
 */
final class SingleBlankLineBeforeNamespaceFixer extends AbstractLinesBeforeNamespaceFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'There should be exactly one blank line before a namespace declaration.',
            [
                new CodeSample("<?php  namespace A {}\n"),
                new CodeSample("<?php\n\n\nnamespace A{}\n"),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_NAMESPACE);
    }

    /**
     * {@inheritdoc}
     *
     * Must run after NoBlankLinesAfterPhpdocFixer.
     */
    public function getPriority()
    {
        return -21;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        for ($index = $tokens->count() - 1; $index >= 0; --$index) {
            $token = $tokens[$index];

            if ($token->isGivenKind(T_NAMESPACE)) {
                $this->fixLinesBeforeNamespace($tokens, $index, 2, 2);
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\NamespaceNotation;

use PhpCsFixer\AbstractLinesBeforeNamespaceFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Graham Campbell <graham@alt-three.com>
 */
final class NoBlankLinesBeforeNamespaceFixer extends AbstractLinesBeforeNamespaceFixer
{
    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_NAMESPACE);
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'There should be no blank lines before a namespace declaration.',
            [
                new CodeSample(
                    "<?php\n\n\n\nnamespace Example;\n"
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run after BlankLineAfterOpeningTagFixer.
     */
    public function getPriority()
    {
        return 0;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        for ($index = 0, $limit = $tokens->count(); $index < $limit; ++$index) {
            $token = $tokens[$index];

            if (!$token->isGivenKind(T_NAMESPACE)) {
                continue;
            }

            $this->fixLinesBeforeNamespace($tokens, $index, 0, 1);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\CastNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author SpacePossum
 */
final class NoUnsetCastFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Variables must be set `null` instead of using `(unset)` casting.',
            [new CodeSample("<?php\n\$a = (unset) \$b;\n")]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_UNSET_CAST);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        for ($index = \count($tokens) - 1; $index > 0; --$index) {
            if ($tokens[$index]->isGivenKind(T_UNSET_CAST)) {
                $this->fixUnsetCast($tokens, $index);
            }
        }
    }

    /**
     * @param int $index
     */
    private function fixUnsetCast(Tokens $tokens, $index)
    {
        $assignmentIndex = $tokens->getPrevMeaningfulToken($index);
        if (null === $assignmentIndex || !$tokens[$assignmentIndex]->equals('=')) {
            return;
        }

        $varIndex = $tokens->getNextMeaningfulToken($index);
        if (null === $varIndex || !$tokens[$varIndex]->isGivenKind(T_VARIABLE)) {
            return;
        }

        $afterVar = $tokens->getNextMeaningfulToken($varIndex);
        if (null === $afterVar || !$tokens[$afterVar]->equalsAny([';', [T_CLOSE_TAG]])) {
            return;
        }

        $nextIsWhiteSpace = $tokens[$assignmentIndex + 1]->isWhitespace();

        $tokens->clearTokenAndMergeSurroundingWhitespace($index);
        $tokens->clearTokenAndMergeSurroundingWhitespace($varIndex);

        ++$assignmentIndex;
        if (!$nextIsWhiteSpace) {
            $tokens->insertAt($assignmentIndex, new Token([T_WHITESPACE, ' ']));
        }

        ++$assignmentIndex;
        $tokens->insertAt($assignmentIndex, new Token([T_STRING, 'null']));
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\CastNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class CastSpacesFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * @internal
     */
    const INSIDE_CAST_SPACE_REPLACE_MAP = [
        ' ' => '',
        "\t" => '',
        "\n" => '',
        "\r" => '',
        "\0" => '',
        "\x0B" => '',
    ];

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'A single space or none should be between cast and variable.',
            [
                new CodeSample(
                    "<?php\n\$bar = ( string )  \$a;\n\$foo = (int)\$b;\n"
                ),
                new CodeSample(
                    "<?php\n\$bar = ( string )  \$a;\n\$foo = (int)\$b;\n",
                    ['space' => 'single']
                ),
                new CodeSample(
                    "<?php\n\$bar = ( string )  \$a;\n\$foo = (int) \$b;\n",
                    ['space' => 'none']
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run after NoShortBoolCastFixer.
     */
    public function getPriority()
    {
        return -10;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound(Token::getCastTokenKinds());
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if (!$token->isCast()) {
                continue;
            }

            $tokens[$index] = new Token([
                $token->getId(),
                strtr($token->getContent(), self::INSIDE_CAST_SPACE_REPLACE_MAP),
            ]);

            if ('single' === $this->configuration['space']) {
                // force single whitespace after cast token:
                if ($tokens[$index + 1]->isWhitespace(" \t")) {
                    // - if next token is whitespaces that contains only spaces and tabs - override next token with single space
                    $tokens[$index + 1] = new Token([T_WHITESPACE, ' ']);
                } elseif (!$tokens[$index + 1]->isWhitespace()) {
                    // - if next token is not whitespaces that contains spaces, tabs and new lines - append single space to current token
                    $tokens->insertAt($index + 1, new Token([T_WHITESPACE, ' ']));
                }

                continue;
            }

            // force no whitespace after cast token:
            if ($tokens[$index + 1]->isWhitespace()) {
                $tokens->clearAt($index + 1);
            }
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('space', 'spacing to apply between cast and variable.'))
                ->setAllowedValues(['none', 'single'])
                ->setDefault('single')
                ->getOption(),
        ]);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\CastNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author SpacePossum
 */
final class NoShortBoolCastFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     *
     * Must run before CastSpacesFixer.
     */
    public function getPriority()
    {
        return -9;
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Short cast `bool` using double exclamation mark should not be used.',
            [new CodeSample("<?php\n\$a = !!\$b;\n")]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound('!');
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        for ($index = \count($tokens) - 1; $index > 1; --$index) {
            if ($tokens[$index]->equals('!')) {
                $index = $this->fixShortCast($tokens, $index);
            }
        }
    }

    /**
     * @param int $index
     *
     * @return int
     */
    private function fixShortCast(Tokens $tokens, $index)
    {
        for ($i = $index - 1; $i > 1; --$i) {
            if ($tokens[$i]->equals('!')) {
                $this->fixShortCastToBoolCast($tokens, $i, $index);

                break;
            }

            if (!$tokens[$i]->isComment() && !$tokens[$i]->isWhitespace()) {
                break;
            }
        }

        return $i;
    }

    /**
     * @param int $start
     * @param int $end
     */
    private function fixShortCastToBoolCast(Tokens $tokens, $start, $end)
    {
        for (; $start <= $end; ++$start) {
            if (
                !$tokens[$start]->isComment()
                && !($tokens[$start]->isWhitespace() && $tokens[$start - 1]->isComment())
            ) {
                $tokens->clearAt($start);
            }
        }

        $tokens->insertAt($start, new Token([T_BOOL_CAST, '(bool)']));
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\CastNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\FixerDefinition\VersionSpecification;
use PhpCsFixer\FixerDefinition\VersionSpecificCodeSample;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author SpacePossum
 */
final class ShortScalarCastFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Cast `(boolean)` and `(integer)` should be written as `(bool)` and `(int)`, `(double)` and `(real)` as `(float)`, `(binary)` as `(string)`.',
            [
                new VersionSpecificCodeSample(
                    "<?php\n\$a = (boolean) \$b;\n\$a = (integer) \$b;\n\$a = (double) \$b;\n\$a = (real) \$b;\n\n\$a = (binary) \$b;\n",
                    new VersionSpecification(null, 70399)
                ),
                new VersionSpecificCodeSample(
                    "<?php\n\$a = (boolean) \$b;\n\$a = (integer) \$b;\n\$a = (double) \$b;\n\n\$a = (binary) \$b;\n",
                    new VersionSpecification(70400)
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound(Token::getCastTokenKinds());
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        static $castMap = [
            'boolean' => 'bool',
            'integer' => 'int',
            'double' => 'float',
            'real' => 'float',
            'binary' => 'string',
        ];

        for ($index = 0, $count = $tokens->count(); $index < $count; ++$index) {
            if (!$tokens[$index]->isCast()) {
                continue;
            }

            $castFrom = trim(substr($tokens[$index]->getContent(), 1, -1));
            $castFromLowered = strtolower($castFrom);

            if (!\array_key_exists($castFromLowered, $castMap)) {
                continue;
            }

            $tokens[$index] = new Token([
                $tokens[$index]->getId(),
                str_replace($castFrom, $castMap[$castFromLowered], $tokens[$index]->getContent()),
            ]);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\CastNotation;

use PhpCsFixer\AbstractFunctionReferenceFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Analyzer\ArgumentsAnalyzer;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Vladimir Reznichenko <kalessil@gmail.com>
 */
final class ModernizeTypesCastingFixer extends AbstractFunctionReferenceFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Replaces `intval`, `floatval`, `doubleval`, `strval` and `boolval` function calls with according type casting operator.',
            [
                new CodeSample(
                    '<?php
    $a = intval($b);
    $a = floatval($b);
    $a = doubleval($b);
    $a = strval ($b);
    $a = boolval($b);
'
                ),
            ],
            null,
            'Risky if any of the functions `intval`, `floatval`, `doubleval`, `strval` or `boolval` are overridden.'
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_STRING);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        // replacement patterns
        static $replacement = [
            'intval' => [T_INT_CAST, '(int)'],
            'floatval' => [T_DOUBLE_CAST, '(float)'],
            'doubleval' => [T_DOUBLE_CAST, '(float)'],
            'strval' => [T_STRING_CAST, '(string)'],
            'boolval' => [T_BOOL_CAST, '(bool)'],
        ];

        $argumentsAnalyzer = new ArgumentsAnalyzer();

        foreach ($replacement as $functionIdentity => $newToken) {
            $currIndex = 0;
            while (null !== $currIndex) {
                // try getting function reference and translate boundaries for humans
                $boundaries = $this->find($functionIdentity, $tokens, $currIndex, $tokens->count() - 1);
                if (null === $boundaries) {
                    // next function search, as current one not found
                    continue 2;
                }

                list($functionName, $openParenthesis, $closeParenthesis) = $boundaries;

                // analysing cursor shift
                $currIndex = $openParenthesis;

                // indicator that the function is overridden
                if (1 !== $argumentsAnalyzer->countArguments($tokens, $openParenthesis, $closeParenthesis)) {
                    continue;
                }

                $paramContentEnd = $closeParenthesis;
                $commaCandidate = $tokens->getPrevMeaningfulToken($paramContentEnd);
                if ($tokens[$commaCandidate]->equals(',')) {
                    $tokens->removeTrailingWhitespace($commaCandidate);
                    $tokens->clearAt($commaCandidate);
                    $paramContentEnd = $commaCandidate;
                }

                // check if something complex passed as an argument and preserve parenthesises then
                $countParamTokens = 0;
                for ($paramContentIndex = $openParenthesis + 1; $paramContentIndex < $paramContentEnd; ++$paramContentIndex) {
                    //not a space, means some sensible token
                    if (!$tokens[$paramContentIndex]->isGivenKind(T_WHITESPACE)) {
                        ++$countParamTokens;
                    }
                }

                $preserveParenthesises = $countParamTokens > 1;

                $afterCloseParenthesisIndex = $tokens->getNextMeaningfulToken($closeParenthesis);
                $afterCloseParenthesisToken = $tokens[$afterCloseParenthesisIndex];
                $wrapInParenthesises = $afterCloseParenthesisToken->equalsAny(['[', '{']) || $afterCloseParenthesisToken->isGivenKind(T_POW);

                // analyse namespace specification (root one or none) and decide what to do
                $prevTokenIndex = $tokens->getPrevMeaningfulToken($functionName);
                if ($tokens[$prevTokenIndex]->isGivenKind(T_NS_SEPARATOR)) {
                    // get rid of root namespace when it used
                    $tokens->removeTrailingWhitespace($prevTokenIndex);
                    $tokens->clearAt($prevTokenIndex);
                }

                // perform transformation
                $replacementSequence = [
                    new Token($newToken),
                    new Token([T_WHITESPACE, ' ']),
                ];
                if ($wrapInParenthesises) {
                    array_unshift($replacementSequence, new Token('('));
                }

                if (!$preserveParenthesises) {
                    // closing parenthesis removed with leading spaces
                    $tokens->removeLeadingWhitespace($closeParenthesis);
                    $tokens->clearAt($closeParenthesis);

                    // opening parenthesis removed with trailing spaces
                    $tokens->removeLeadingWhitespace($openParenthesis);
                    $tokens->removeTrailingWhitespace($openParenthesis);
                    $tokens->clearAt($openParenthesis);
                } else {
                    // we'll need to provide a space after a casting operator
                    $tokens->removeTrailingWhitespace($functionName);
                }

                if ($wrapInParenthesises) {
                    $tokens->insertAt($closeParenthesis, new Token(')'));
                }

                $tokens->overrideRange($functionName, $functionName, $replacementSequence);

                // nested transformations support
                $currIndex = $functionName;
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\CastNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\FixerDefinition\VersionSpecification;
use PhpCsFixer\FixerDefinition\VersionSpecificCodeSample;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author SpacePossum
 */
final class LowercaseCastFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Cast should be written in lower case.',
            [
                new VersionSpecificCodeSample(
                    '<?php
    $a = (BOOLEAN) $b;
    $a = (BOOL) $b;
    $a = (INTEGER) $b;
    $a = (INT) $b;
    $a = (DOUBLE) $b;
    $a = (FLoaT) $b;
    $a = (reaL) $b;
    $a = (flOAT) $b;
    $a = (sTRING) $b;
    $a = (ARRAy) $b;
    $a = (OBJect) $b;
    $a = (UNset) $b;
    $a = (Binary) $b;
',
                    new VersionSpecification(null, 70399)
                ),
                new VersionSpecificCodeSample(
                    '<?php
    $a = (BOOLEAN) $b;
    $a = (BOOL) $b;
    $a = (INTEGER) $b;
    $a = (INT) $b;
    $a = (DOUBLE) $b;
    $a = (FLoaT) $b;
    $a = (flOAT) $b;
    $a = (sTRING) $b;
    $a = (ARRAy) $b;
    $a = (OBJect) $b;
    $a = (UNset) $b;
    $a = (Binary) $b;
',
                    new VersionSpecification(70400)
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound(Token::getCastTokenKinds());
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        for ($index = 0, $count = $tokens->count(); $index < $count; ++$index) {
            if (!$tokens[$index]->isCast()) {
                continue;
            }

            $tokens[$index] = new Token([$tokens[$index]->getId(), strtolower($tokens[$index]->getContent())]);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Casing;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * Fixer for constants case.
 *
 * @author Pol Dellaiera <pol.dellaiera@protonmail.com>
 */
final class ConstantCaseFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * Hold the function that will be used to convert the constants.
     *
     * @var callable
     */
    private $fixFunction;

    /**
     * {@inheritdoc}
     */
    public function configure(array $configuration = null)
    {
        parent::configure($configuration);

        if ('lower' === $this->configuration['case']) {
            $this->fixFunction = static function ($token) {
                return strtolower($token);
            };
        }

        if ('upper' === $this->configuration['case']) {
            $this->fixFunction = static function ($token) {
                return strtoupper($token);
            };
        }
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'The PHP constants `true`, `false`, and `null` MUST be written using the correct casing.',
            [new CodeSample("<?php\n\$a = FALSE;\n\$b = True;\n\$c = nuLL;\n")]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_STRING);
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('case', 'Whether to use the `upper` or `lower` case syntax.'))
                ->setAllowedValues(['upper', 'lower'])
                ->setDefault('lower')
                ->getOption(),
        ]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $fixFunction = $this->fixFunction;

        foreach ($tokens as $index => $token) {
            if (!$token->isNativeConstant()) {
                continue;
            }

            if (
                $this->isNeighbourAccepted($tokens, $tokens->getPrevMeaningfulToken($index)) &&
                $this->isNeighbourAccepted($tokens, $tokens->getNextMeaningfulToken($index))
            ) {
                $tokens[$index] = new Token([$token->getId(), $fixFunction($token->getContent())]);
            }
        }
    }

    /**
     * @param int $index
     *
     * @return bool
     */
    private function isNeighbourAccepted(Tokens $tokens, $index)
    {
        static $forbiddenTokens = [
            T_AS,
            T_CLASS,
            T_CONST,
            T_EXTENDS,
            T_IMPLEMENTS,
            T_INSTANCEOF,
            T_INSTEADOF,
            T_INTERFACE,
            T_NEW,
            T_NS_SEPARATOR,
            T_OBJECT_OPERATOR,
            T_PAAMAYIM_NEKUDOTAYIM,
            T_TRAIT,
            T_USE,
            CT::T_USE_TRAIT,
            CT::T_USE_LAMBDA,
        ];

        $token = $tokens[$index];

        if ($token->equalsAny(['{', '}'])) {
            return false;
        }

        return !$token->isGivenKind($forbiddenTokens);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Casing;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\FixerDefinition\VersionSpecification;
use PhpCsFixer\FixerDefinition\VersionSpecificCodeSample;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Kuba Werłos <werlos@gmail.com>
 */
final class LowercaseStaticReferenceFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Class static references `self`, `static` and `parent` MUST be in lower case.',
            [
                new CodeSample('<?php
class Foo extends Bar
{
    public function baz1()
    {
        return STATIC::baz2();
    }

    public function baz2($x)
    {
        return $x instanceof Self;
    }

    public function baz3(PaRent $x)
    {
        return true;
    }
}
'),
                new VersionSpecificCodeSample(
                    '<?php
class Foo extends Bar
{
    public function baz(?self $x) : SELF
    {
        return false;
    }
}
',
                    new VersionSpecification(70100)
                ),
            ]
        );
    }

    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound([T_STATIC, T_STRING]);
    }

    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if (!$token->equalsAny([[T_STRING, 'self'], [T_STATIC, 'static'], [T_STRING, 'parent']], false)) {
                continue;
            }

            $newContent = strtolower($token->getContent());
            if ($token->getContent() === $newContent) {
                continue; // case is already correct
            }

            $prevIndex = $tokens->getPrevMeaningfulToken($index);
            if ($tokens[$prevIndex]->isGivenKind([T_CONST, T_DOUBLE_COLON, T_FUNCTION, T_NAMESPACE, T_NS_SEPARATOR, T_OBJECT_OPERATOR, T_PRIVATE, T_PROTECTED, T_PUBLIC])) {
                continue;
            }

            $nextIndex = $tokens->getNextMeaningfulToken($index);
            if ($tokens[$nextIndex]->isGivenKind([T_FUNCTION, T_NS_SEPARATOR, T_PRIVATE, T_PROTECTED, T_PUBLIC])) {
                continue;
            }

            if ('static' === $newContent && $tokens[$nextIndex]->isGivenKind(T_VARIABLE)) {
                continue;
            }

            $tokens[$index] = new Token([$token->getId(), $newContent]);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Casing;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * Fixer for rules defined in PSR2 ¶2.5.
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class LowercaseKeywordsFixer extends AbstractFixer
{
    private static $excludedTokens = [T_HALT_COMPILER];

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'PHP keywords MUST be in lower case.',
            [
                new CodeSample(
                    '<?php
    FOREACH($a AS $B) {
        TRY {
            NEW $C($a, ISSET($B));
            WHILE($B) {
                INCLUDE "test.php";
            }
        } CATCH(\Exception $e) {
            EXIT(1);
        }
    }
'
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound(Token::getKeywords());
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if ($token->isKeyword() && !$token->isGivenKind(self::$excludedTokens)) {
                $tokens[$index] = new Token([$token->getId(), strtolower($token->getContent())]);
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Casing;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\FixerDefinition\VersionSpecification;
use PhpCsFixer\FixerDefinition\VersionSpecificCodeSample;
use PhpCsFixer\Tokenizer\Analyzer\Analysis\TypeAnalysis;
use PhpCsFixer\Tokenizer\Analyzer\FunctionsAnalyzer;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author SpacePossum
 */
final class NativeFunctionTypeDeclarationCasingFixer extends AbstractFixer
{
    /**
     * https://secure.php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration.
     *
     * self     PHP 5.0.0
     * array    PHP 5.1.0
     * callable PHP 5.4.0
     * bool     PHP 7.0.0
     * float    PHP 7.0.0
     * int      PHP 7.0.0
     * string   PHP 7.0.0
     * iterable PHP 7.1.0
     * void     PHP 7.1.0
     * object   PHP 7.2.0
     *
     * @var array<string, true>
     */
    private $hints;

    /**
     * @var FunctionsAnalyzer
     */
    private $functionsAnalyzer;

    public function __construct()
    {
        parent::__construct();

        $this->hints = [
            'array' => true,
            'callable' => true,
            'self' => true,
        ];

        if (\PHP_VERSION_ID >= 70000) {
            $this->hints = array_merge(
                $this->hints,
                [
                    'bool' => true,
                    'float' => true,
                    'int' => true,
                    'string' => true,
                ]
            );
        }

        if (\PHP_VERSION_ID >= 70100) {
            $this->hints = array_merge(
                $this->hints,
                [
                    'iterable' => true,
                    'void' => true,
                ]
            );
        }

        if (\PHP_VERSION_ID >= 70200) {
            $this->hints = array_merge($this->hints, ['object' => true]);
        }

        $this->functionsAnalyzer = new FunctionsAnalyzer();
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Native type hints for functions should use the correct case.',
            [
                new CodeSample("<?php\nclass Bar {\n    public function Foo(CALLABLE \$bar)\n    {\n        return 1;\n    }\n}\n"),
                new VersionSpecificCodeSample(
                    "<?php\nfunction Foo(INT \$a): Bool\n{\n    return true;\n}\n",
                    new VersionSpecification(70000)
                ),
                new VersionSpecificCodeSample(
                    "<?php\nfunction Foo(Iterable \$a): VOID\n{\n    echo 'Hello world';\n}\n",
                    new VersionSpecification(70100)
                ),
                new VersionSpecificCodeSample(
                    "<?php\nfunction Foo(Object \$a)\n{\n    return 'hi!';\n}\n",
                    new VersionSpecification(70200)
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAllTokenKindsFound([T_FUNCTION, T_STRING]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        for ($index = $tokens->count() - 1; $index >= 0; --$index) {
            if ($tokens[$index]->isGivenKind(T_FUNCTION)) {
                if (\PHP_VERSION_ID >= 70000) {
                    $this->fixFunctionReturnType($tokens, $index);
                }

                $this->fixFunctionArgumentTypes($tokens, $index);
            }
        }
    }

    /**
     * @param int $index
     */
    private function fixFunctionArgumentTypes(Tokens $tokens, $index)
    {
        foreach ($this->functionsAnalyzer->getFunctionArguments($tokens, $index) as $argument) {
            $this->fixArgumentType($tokens, $argument->getTypeAnalysis());
        }
    }

    /**
     * @param int $index
     */
    private function fixFunctionReturnType(Tokens $tokens, $index)
    {
        $this->fixArgumentType($tokens, $this->functionsAnalyzer->getFunctionReturnType($tokens, $index));
    }

    private function fixArgumentType(Tokens $tokens, TypeAnalysis $type = null)
    {
        if (null === $type) {
            return;
        }

        $argumentIndex = $type->getStartIndex();
        if ($argumentIndex !== $type->getEndIndex()) {
            return; // the type to fix are always unqualified and so are always composed as one token
        }

        $lowerCasedName = strtolower($type->getName());
        if (!isset($this->hints[$lowerCasedName])) {
            return; // check of type is of interest based on name (slower check than previous index based)
        }

        $tokens[$argumentIndex] = new Token([$tokens[$argumentIndex]->getId(), $lowerCasedName]);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Casing;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author ntzm
 */
final class MagicConstantCasingFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Magic constants should be referred to using the correct casing.',
            [new CodeSample("<?php\necho __dir__;\n")]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound($this->getMagicConstantTokens());
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $magicConstants = $this->getMagicConstants();
        $magicConstantTokens = $this->getMagicConstantTokens();

        foreach ($tokens as $index => $token) {
            if ($token->isGivenKind($magicConstantTokens)) {
                $tokens[$index] = new Token([$token->getId(), $magicConstants[$token->getId()]]);
            }
        }
    }

    /**
     * @return array<int, string>
     */
    private function getMagicConstants()
    {
        static $magicConstants = null;

        if (null === $magicConstants) {
            $magicConstants = [
                T_LINE => '__LINE__',
                T_FILE => '__FILE__',
                T_DIR => '__DIR__',
                T_FUNC_C => '__FUNCTION__',
                T_CLASS_C => '__CLASS__',
                T_METHOD_C => '__METHOD__',
                T_NS_C => '__NAMESPACE__',
                CT::T_CLASS_CONSTANT => 'class',
                T_TRAIT_C => '__TRAIT__',
            ];
        }

        return $magicConstants;
    }

    /**
     * @return array<int>
     */
    private function getMagicConstantTokens()
    {
        static $magicConstantTokens = null;

        if (null === $magicConstantTokens) {
            $magicConstantTokens = array_keys($this->getMagicConstants());
        }

        return $magicConstantTokens;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Casing;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author SpacePossum
 */
final class MagicMethodCasingFixer extends AbstractFixer
{
    private static $magicNames = [
        '__call' => '__call',
        '__callstatic' => '__callStatic',
        '__clone' => '__clone',
        '__construct' => '__construct',
        '__debuginfo' => '__debugInfo',
        '__destruct' => '__destruct',
        '__get' => '__get',
        '__invoke' => '__invoke',
        '__isset' => '__isset',
        '__serialize' => '__serialize',
        '__set' => '__set',
        '__set_state' => '__set_state',
        '__sleep' => '__sleep',
        '__tostring' => '__toString',
        '__unserialize' => '__unserialize',
        '__unset' => '__unset',
        '__wakeup' => '__wakeup',
    ];

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Magic method definitions and calls must be using the correct casing.',
            [
                new CodeSample(
                    '<?php
class Foo
{
    public function __Sleep()
    {
    }
}
'
                ),
                new CodeSample(
                    '<?php
$foo->__INVOKE(1);
'
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_STRING) && $tokens->isAnyTokenKindsFound([T_FUNCTION, T_OBJECT_OPERATOR, T_DOUBLE_COLON]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $inClass = 0;
        $tokenCount = \count($tokens);

        for ($index = 1; $index < $tokenCount - 2; ++$index) {
            if (0 === $inClass && $tokens[$index]->isClassy()) {
                $inClass = 1;
                $index = $tokens->getNextTokenOfKind($index, ['{']);

                continue;
            }

            if (0 !== $inClass) {
                if ($tokens[$index]->equals('{')) {
                    ++$inClass;

                    continue;
                }

                if ($tokens[$index]->equals('}')) {
                    --$inClass;

                    continue;
                }
            }

            if (!$tokens[$index]->isGivenKind(T_STRING)) {
                continue; // wrong type
            }

            $content = $tokens[$index]->getContent();
            if ('__' !== substr($content, 0, 2)) {
                continue; // cheap look ahead
            }

            $name = strtolower($content);

            if (!$this->isMagicMethodName($name)) {
                continue; // method name is not one of the magic ones we can fix
            }

            $nameInCorrectCasing = $this->getMagicMethodNameInCorrectCasing($name);
            if ($nameInCorrectCasing === $content) {
                continue; // method name is already in the correct casing, no fix needed
            }

            if ($this->isFunctionSignature($tokens, $index)) {
                if (0 !== $inClass) {
                    // this is a method definition we want to fix
                    $this->setTokenToCorrectCasing($tokens, $index, $nameInCorrectCasing);
                }

                continue;
            }

            if ($this->isMethodCall($tokens, $index)) {
                $this->setTokenToCorrectCasing($tokens, $index, $nameInCorrectCasing);

                continue;
            }

            if (
                ('__callstatic' === $name || '__set_state' === $name)
                && $this->isStaticMethodCall($tokens, $index)
            ) {
                $this->setTokenToCorrectCasing($tokens, $index, $nameInCorrectCasing);
            }
        }
    }

    /**
     * @param int $index
     *
     * @return bool
     */
    private function isFunctionSignature(Tokens $tokens, $index)
    {
        $prevIndex = $tokens->getPrevMeaningfulToken($index);
        if (!$tokens[$prevIndex]->isGivenKind(T_FUNCTION)) {
            return false; // not a method signature
        }

        return $tokens[$tokens->getNextMeaningfulToken($index)]->equals('(');
    }

    /**
     * @param int $index
     *
     * @return bool
     */
    private function isMethodCall(Tokens $tokens, $index)
    {
        $prevIndex = $tokens->getPrevMeaningfulToken($index);
        if (!$tokens[$prevIndex]->equals([T_OBJECT_OPERATOR, '->'])) {
            return false; // not a "simple" method call
        }

        return $tokens[$tokens->getNextMeaningfulToken($index)]->equals('(');
    }

    /**
     * @param int $index
     *
     * @return bool
     */
    private function isStaticMethodCall(Tokens $tokens, $index)
    {
        $prevIndex = $tokens->getPrevMeaningfulToken($index);
        if (!$tokens[$prevIndex]->isGivenKind(T_DOUBLE_COLON)) {
            return false; // not a "simple" static method call
        }

        return $tokens[$tokens->getNextMeaningfulToken($index)]->equals('(');
    }

    /**
     * @param string $name
     *
     * @return bool
     */
    private function isMagicMethodName($name)
    {
        return isset(self::$magicNames[$name]);
    }

    /**
     * @param string $name name of a magic method
     *
     * @return string
     */
    private function getMagicMethodNameInCorrectCasing($name)
    {
        return self::$magicNames[$name];
    }

    /**
     * @param int    $index
     * @param string $nameInCorrectCasing
     */
    private function setTokenToCorrectCasing(Tokens $tokens, $index, $nameInCorrectCasing)
    {
        $tokens[$index] = new Token([T_STRING, $nameInCorrectCasing]);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Casing;

use PhpCsFixer\AbstractProxyFixer;
use PhpCsFixer\Fixer\DeprecatedFixerInterface;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;

/**
 * Fixer for rules defined in PSR2 ¶2.5.
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @deprecated proxy to ConstantCaseFixer
 */
final class LowercaseConstantsFixer extends AbstractProxyFixer implements DeprecatedFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'The PHP constants `true`, `false`, and `null` MUST be in lower case.',
            [new CodeSample("<?php\n\$a = FALSE;\n\$b = True;\n\$c = nuLL;\n")]
        );
    }

    /**
     * Returns names of fixers to use instead, if any.
     *
     * @return string[]
     */
    public function getSuccessorsNames()
    {
        return array_keys($this->proxyFixers);
    }

    /**
     * {@inheritdoc}
     */
    protected function createProxyFixers()
    {
        $fixer = new ConstantCaseFixer();
        $fixer->configure(['case' => 'lower']);

        return [$fixer];
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Casing;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author SpacePossum
 */
final class NativeFunctionCasingFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Function defined by PHP should be called using the correct casing.',
            [new CodeSample("<?php\nSTRLEN(\$str);\n")]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run after FunctionToConstantFixer, PowToExponentiationFixer.
     */
    public function getPriority()
    {
        return 0;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_STRING);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        static $nativeFunctionNames = null;

        if (null === $nativeFunctionNames) {
            $nativeFunctionNames = $this->getNativeFunctionNames();
        }

        for ($index = 0, $count = $tokens->count(); $index < $count; ++$index) {
            // test if we are at a function all
            if (!$tokens[$index]->isGivenKind(T_STRING)) {
                continue;
            }

            $next = $tokens->getNextMeaningfulToken($index);
            if (!$tokens[$next]->equals('(')) {
                $index = $next;

                continue;
            }

            $functionNamePrefix = $tokens->getPrevMeaningfulToken($index);
            if ($tokens[$functionNamePrefix]->isGivenKind([T_DOUBLE_COLON, T_NEW, T_OBJECT_OPERATOR, T_FUNCTION, CT::T_RETURN_REF])) {
                continue;
            }

            if ($tokens[$functionNamePrefix]->isGivenKind(T_NS_SEPARATOR)) {
                // skip if the call is to a constructor or to a function in a namespace other than the default
                $prev = $tokens->getPrevMeaningfulToken($functionNamePrefix);
                if ($tokens[$prev]->isGivenKind([T_STRING, T_NEW])) {
                    continue;
                }
            }

            // test if the function call is to a native PHP function
            $lower = strtolower($tokens[$index]->getContent());
            if (!\array_key_exists($lower, $nativeFunctionNames)) {
                continue;
            }

            $tokens[$index] = new Token([T_STRING, $nativeFunctionNames[$lower]]);
            $index = $next;
        }
    }

    /**
     * @return array<string, string>
     */
    private function getNativeFunctionNames()
    {
        $allFunctions = get_defined_functions();
        $functions = [];
        foreach ($allFunctions['internal'] as $function) {
            $functions[strtolower($function)] = $function;
        }

        return $functions;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Comment;

use PhpCsFixer\AbstractProxyFixer;
use PhpCsFixer\Fixer\DeprecatedFixerInterface;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;

/**
 * Changes single comments prefixes '#' with '//'.
 *
 * @author SpacePossum
 *
 * @deprecated in 2.4, proxy to SingleLineCommentStyleFixer
 */
final class HashToSlashCommentFixer extends AbstractProxyFixer implements DeprecatedFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Single line comments should use double slashes `//` and not hash `#`.',
            [new CodeSample("<?php # comment\n")]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function getSuccessorsNames()
    {
        return array_keys($this->proxyFixers);
    }

    /**
     * {@inheritdoc}
     */
    protected function createProxyFixers()
    {
        $fixer = new SingleLineCommentStyleFixer();
        $fixer->configure(['comment_types' => ['hash']]);

        return [$fixer];
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Comment;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author SpacePossum
 */
final class NoEmptyCommentFixer extends AbstractFixer
{
    const TYPE_HASH = 1;
    const TYPE_DOUBLE_SLASH = 2;
    const TYPE_SLASH_ASTERISK = 3;

    /**
     * {@inheritdoc}
     *
     * Must run before NoExtraBlankLinesFixer, NoTrailingWhitespaceFixer, NoWhitespaceInBlankLineFixer.
     * Must run after PhpdocToCommentFixer.
     */
    public function getPriority()
    {
        return 2;
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'There should not be any empty comments.',
            [new CodeSample("<?php\n//\n#\n/* */\n")]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_COMMENT);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        for ($index = 1, $count = \count($tokens); $index < $count; ++$index) {
            if (!$tokens[$index]->isGivenKind(T_COMMENT)) {
                continue;
            }

            list($blockStart, $index, $isEmpty) = $this->getCommentBlock($tokens, $index);
            if (false === $isEmpty) {
                continue;
            }

            for ($i = $blockStart; $i <= $index; ++$i) {
                $tokens->clearTokenAndMergeSurroundingWhitespace($i);
            }
        }
    }

    /**
     * Return the start index, end index and a flag stating if the comment block is empty.
     *
     * @param int $index T_COMMENT index
     *
     * @return array
     */
    private function getCommentBlock(Tokens $tokens, $index)
    {
        $commentType = $this->getCommentType($tokens[$index]->getContent());
        $empty = $this->isEmptyComment($tokens[$index]->getContent());

        if (self::TYPE_SLASH_ASTERISK === $commentType) {
            return [$index, $index, $empty];
        }

        $start = $index;
        $count = \count($tokens);
        ++$index;

        for (; $index < $count; ++$index) {
            if ($tokens[$index]->isComment()) {
                if ($commentType !== $this->getCommentType($tokens[$index]->getContent())) {
                    break;
                }

                if ($empty) { // don't retest if already known the block not being empty
                    $empty = $this->isEmptyComment($tokens[$index]->getContent());
                }

                continue;
            }

            if (!$tokens[$index]->isWhitespace() || $this->getLineBreakCount($tokens, $index, $index + 1) > 1) {
                break;
            }
        }

        return [$start, $index - 1, $empty];
    }

    /**
     * @param string $content
     *
     * @return int
     */
    private function getCommentType($content)
    {
        if ('#' === $content[0]) {
            return self::TYPE_HASH;
        }

        if ('*' === $content[1]) {
            return self::TYPE_SLASH_ASTERISK;
        }

        return self::TYPE_DOUBLE_SLASH;
    }

    /**
     * @param int $whiteStart
     * @param int $whiteEnd
     *
     * @return int
     */
    private function getLineBreakCount(Tokens $tokens, $whiteStart, $whiteEnd)
    {
        $lineCount = 0;
        for ($i = $whiteStart; $i < $whiteEnd; ++$i) {
            $lineCount += Preg::matchAll('/\R/u', $tokens[$i]->getContent(), $matches);
        }

        return $lineCount;
    }

    /**
     * @param string $content
     *
     * @return bool
     */
    private function isEmptyComment($content)
    {
        static $mapper = [
            self::TYPE_HASH => '|^#\s*$|', // single line comment starting with '#'
            self::TYPE_SLASH_ASTERISK => '|^/\*[\s\*]*\*+/$|', // comment starting with '/*' and ending with '*/' (but not a PHPDoc)
            self::TYPE_DOUBLE_SLASH => '|^//\s*$|', // single line comment starting with '//'
        ];

        $type = $this->getCommentType($content);

        return 1 === Preg::match($mapper[$type], $content);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Comment;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class NoTrailingWhitespaceInCommentFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'There MUST be no trailing spaces inside comment or PHPDoc.',
            [new CodeSample('<?php
// This is '.'
// a comment. '.'
')]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run after PhpdocNoUselessInheritdocFixer.
     */
    public function getPriority()
    {
        return 0;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound([T_COMMENT, T_DOC_COMMENT]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if ($token->isGivenKind(T_DOC_COMMENT)) {
                $tokens[$index] = new Token([T_DOC_COMMENT, Preg::replace('/(*ANY)[\h]+$/m', '', $token->getContent())]);

                continue;
            }

            if ($token->isGivenKind(T_COMMENT)) {
                if ('/*' === substr($token->getContent(), 0, 2)) {
                    $tokens[$index] = new Token([T_COMMENT, Preg::replace('/(*ANY)[\h]+$/m', '', $token->getContent())]);
                } elseif (isset($tokens[$index + 1]) && $tokens[$index + 1]->isWhitespace()) {
                    $trimmedContent = ltrim($tokens[$index + 1]->getContent(), " \t");
                    if ('' !== $trimmedContent) {
                        $tokens[$index + 1] = new Token([T_WHITESPACE, $trimmedContent]);
                    } else {
                        $tokens->clearAt($index + 1);
                    }
                }
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Comment;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\ConfigurationException\InvalidFixerConfigurationException;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerConfiguration\AliasedFixerOptionBuilder;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use Symfony\Component\OptionsResolver\Options;

/**
 * @author Antonio J. García Lagar <aj@garcialagar.es>
 * @author SpacePossum
 */
final class HeaderCommentFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface, WhitespacesAwareFixerInterface
{
    const HEADER_PHPDOC = 'PHPDoc';
    const HEADER_COMMENT = 'comment';

    /** @deprecated will be removed in 3.0 */
    const HEADER_LOCATION_AFTER_OPEN = 1;
    /** @deprecated will be removed in 3.0 */
    const HEADER_LOCATION_AFTER_DECLARE_STRICT = 2;

    /** @deprecated will be removed in 3.0 */
    const HEADER_LINE_SEPARATION_BOTH = 1;
    /** @deprecated will be removed in 3.0 */
    const HEADER_LINE_SEPARATION_TOP = 2;
    /** @deprecated will be removed in 3.0 */
    const HEADER_LINE_SEPARATION_BOTTOM = 3;
    /** @deprecated will be removed in 3.0 */
    const HEADER_LINE_SEPARATION_NONE = 4;

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Add, replace or remove header comment.',
            [
                new CodeSample(
                    '<?php
declare(strict_types=1);

namespace A\B;

echo 1;
',
                    [
                        'header' => 'Made with love.',
                    ]
                ),
                new CodeSample(
                    '<?php
declare(strict_types=1);

namespace A\B;

echo 1;
',
                    [
                        'header' => 'Made with love.',
                        'comment_type' => 'PHPDoc',
                        'location' => 'after_open',
                        'separate' => 'bottom',
                    ]
                ),
                new CodeSample(
                    '<?php
declare(strict_types=1);

namespace A\B;

echo 1;
',
                    [
                        'header' => 'Made with love.',
                        'comment_type' => 'comment',
                        'location' => 'after_declare_strict',
                    ]
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return isset($tokens[0]) && $tokens[0]->isGivenKind(T_OPEN_TAG) && $tokens->isMonolithicPhp();
    }

    /**
     * {@inheritdoc}
     *
     * Must run after DeclareStrictTypesFixer, NoBlankLinesAfterPhpdocFixer.
     */
    public function getPriority()
    {
        // When this fixer is configured with ["separate" => "bottom", "comment_type" => "PHPDoc"]
        // and the target file has no namespace or declare() construct,
        // the fixed header comment gets trimmed by NoBlankLinesAfterPhpdocFixer if we run before it.
        return -30;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $location = $this->configuration['location'];

        $locationIndexes = [];
        foreach (['after_open', 'after_declare_strict'] as $possibleLocation) {
            $locationIndex = $this->findHeaderCommentInsertionIndex($tokens, $possibleLocation);

            if (!isset($locationIndexes[$locationIndex]) || $possibleLocation === $location) {
                $locationIndexes[$locationIndex] = $possibleLocation;

                continue;
            }
        }

        foreach (array_values($locationIndexes) as $possibleLocation) {
            // figure out where the comment should be placed
            $headerNewIndex = $this->findHeaderCommentInsertionIndex($tokens, $possibleLocation);

            // check if there is already a comment
            $headerCurrentIndex = $this->findHeaderCommentCurrentIndex($tokens, $headerNewIndex - 1);

            if (null === $headerCurrentIndex) {
                if ('' === $this->configuration['header'] || $possibleLocation !== $location) {
                    continue;
                }

                $this->insertHeader($tokens, $headerNewIndex);
            } elseif ($this->getHeaderAsComment() !== $tokens[$headerCurrentIndex]->getContent() || $possibleLocation !== $location) {
                $this->removeHeader($tokens, $headerCurrentIndex);

                if ('' === $this->configuration['header']) {
                    continue;
                }

                if ($possibleLocation === $location) {
                    $this->insertHeader($tokens, $headerNewIndex);
                }
            } else {
                $this->fixWhiteSpaceAroundHeader($tokens, $headerCurrentIndex);
            }
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        $fixerName = $this->getName();

        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('header', 'Proper header content.'))
                ->setAllowedTypes(['string'])
                ->setNormalizer(static function (Options $options, $value) use ($fixerName) {
                    if ('' === trim($value)) {
                        return '';
                    }

                    if (false !== strpos($value, '*/')) {
                        throw new InvalidFixerConfigurationException($fixerName, 'Cannot use \'*/\' in header.');
                    }

                    return $value;
                })
                ->getOption(),
            (new AliasedFixerOptionBuilder(
                new FixerOptionBuilder('comment_type', 'Comment syntax type.'),
                'commentType'
            ))
                ->setAllowedValues([self::HEADER_PHPDOC, self::HEADER_COMMENT])
                ->setDefault(self::HEADER_COMMENT)
                ->getOption(),
            (new FixerOptionBuilder('location', 'The location of the inserted header.'))
                ->setAllowedValues(['after_open', 'after_declare_strict'])
                ->setDefault('after_declare_strict')
                ->getOption(),
            (new FixerOptionBuilder('separate', 'Whether the header should be separated from the file content with a new line.'))
                ->setAllowedValues(['both', 'top', 'bottom', 'none'])
                ->setDefault('both')
                ->getOption(),
        ]);
    }

    /**
     * Enclose the given text in a comment block.
     *
     * @return string
     */
    private function getHeaderAsComment()
    {
        $lineEnding = $this->whitespacesConfig->getLineEnding();

        $comment = (self::HEADER_COMMENT === $this->configuration['comment_type'] ? '/*' : '/**').$lineEnding;
        $lines = explode("\n", str_replace("\r", '', $this->configuration['header']));

        foreach ($lines as $line) {
            $comment .= rtrim(' * '.$line).$lineEnding;
        }

        return $comment.' */';
    }

    /**
     * @param int $headerNewIndex
     *
     * @return null|int
     */
    private function findHeaderCommentCurrentIndex(Tokens $tokens, $headerNewIndex)
    {
        $index = $tokens->getNextNonWhitespace($headerNewIndex);

        if (null === $index || !$tokens[$index]->isComment()) {
            return null;
        }

        $next = $index + 1;

        if (!isset($tokens[$next]) || \in_array($this->configuration['separate'], ['top', 'none'], true) || !$tokens[$index]->isGivenKind(T_DOC_COMMENT)) {
            return $index;
        }

        if ($tokens[$next]->isWhitespace()) {
            if (!Preg::match('/^\h*\R\h*$/D', $tokens[$next]->getContent())) {
                return $index;
            }

            ++$next;
        }

        if (!isset($tokens[$next]) || !$tokens[$next]->isClassy() && !$tokens[$next]->isGivenKind(T_FUNCTION)) {
            return $index;
        }

        return $this->getHeaderAsComment() === $tokens[$index]->getContent() ? $index : null;
    }

    /**
     * Find the index where the header comment must be inserted.
     *
     * @param string $location
     *
     * @return int
     */
    private function findHeaderCommentInsertionIndex(Tokens $tokens, $location)
    {
        if ('after_open' === $location) {
            return 1;
        }

        $index = $tokens->getNextMeaningfulToken(0);
        if (null === $index) {
            // file without meaningful tokens but an open tag, comment should always be placed directly after the open tag
            return 1;
        }

        if (!$tokens[$index]->isGivenKind(T_DECLARE)) {
            return 1;
        }

        $next = $tokens->getNextMeaningfulToken($index);
        if (null === $next || !$tokens[$next]->equals('(')) {
            return 1;
        }

        $next = $tokens->getNextMeaningfulToken($next);
        if (null === $next || !$tokens[$next]->equals([T_STRING, 'strict_types'], false)) {
            return 1;
        }

        $next = $tokens->getNextMeaningfulToken($next);
        if (null === $next || !$tokens[$next]->equals('=')) {
            return 1;
        }

        $next = $tokens->getNextMeaningfulToken($next);
        if (null === $next || !$tokens[$next]->isGivenKind(T_LNUMBER)) {
            return 1;
        }

        $next = $tokens->getNextMeaningfulToken($next);
        if (null === $next || !$tokens[$next]->equals(')')) {
            return 1;
        }

        $next = $tokens->getNextMeaningfulToken($next);
        if (null === $next || !$tokens[$next]->equals(';')) { // don't insert after close tag
            return 1;
        }

        return $next + 1;
    }

    /**
     * @param int $headerIndex
     */
    private function fixWhiteSpaceAroundHeader(Tokens $tokens, $headerIndex)
    {
        $lineEnding = $this->whitespacesConfig->getLineEnding();

        // fix lines after header comment
        if (
            ('both' === $this->configuration['separate'] || 'bottom' === $this->configuration['separate'])
            && null !== $tokens->getNextMeaningfulToken($headerIndex)
        ) {
            $expectedLineCount = 2;
        } else {
            $expectedLineCount = 1;
        }
        if ($headerIndex === \count($tokens) - 1) {
            $tokens->insertAt($headerIndex + 1, new Token([T_WHITESPACE, str_repeat($lineEnding, $expectedLineCount)]));
        } else {
            $lineBreakCount = $this->getLineBreakCount($tokens, $headerIndex, 1);
            if ($lineBreakCount < $expectedLineCount) {
                $missing = str_repeat($lineEnding, $expectedLineCount - $lineBreakCount);
                if ($tokens[$headerIndex + 1]->isWhitespace()) {
                    $tokens[$headerIndex + 1] = new Token([T_WHITESPACE, $missing.$tokens[$headerIndex + 1]->getContent()]);
                } else {
                    $tokens->insertAt($headerIndex + 1, new Token([T_WHITESPACE, $missing]));
                }
            } elseif ($lineBreakCount > $expectedLineCount && $tokens[$headerIndex + 1]->isWhitespace()) {
                $newLinesToRemove = $lineBreakCount - $expectedLineCount;
                $tokens[$headerIndex + 1] = new Token([
                    T_WHITESPACE,
                    Preg::replace("/^\\R{{$newLinesToRemove}}/", '', $tokens[$headerIndex + 1]->getContent()),
                ]);
            }
        }

        // fix lines before header comment
        $expectedLineCount = 'both' === $this->configuration['separate'] || 'top' === $this->configuration['separate'] ? 2 : 1;
        $prev = $tokens->getPrevNonWhitespace($headerIndex);

        $regex = '/\h$/';
        if ($tokens[$prev]->isGivenKind(T_OPEN_TAG) && Preg::match($regex, $tokens[$prev]->getContent())) {
            $tokens[$prev] = new Token([T_OPEN_TAG, Preg::replace($regex, $lineEnding, $tokens[$prev]->getContent())]);
        }

        $lineBreakCount = $this->getLineBreakCount($tokens, $headerIndex, -1);
        if ($lineBreakCount < $expectedLineCount) {
            // because of the way the insert index was determined for header comment there cannot be an empty token here
            $tokens->insertAt($headerIndex, new Token([T_WHITESPACE, str_repeat($lineEnding, $expectedLineCount - $lineBreakCount)]));
        }
    }

    /**
     * @param int $index
     * @param int $direction
     *
     * @return int
     */
    private function getLineBreakCount(Tokens $tokens, $index, $direction)
    {
        $whitespace = '';

        for ($index += $direction; isset($tokens[$index]); $index += $direction) {
            $token = $tokens[$index];

            if ($token->isWhitespace()) {
                $whitespace .= $token->getContent();

                continue;
            }

            if (-1 === $direction && $token->isGivenKind(T_OPEN_TAG)) {
                $whitespace .= $token->getContent();
            }

            if ('' !== $token->getContent()) {
                break;
            }
        }

        return substr_count($whitespace, "\n");
    }

    private function removeHeader(Tokens $tokens, $index)
    {
        $prevIndex = $index - 1;
        $prevToken = $tokens[$prevIndex];
        $newlineRemoved = false;

        if ($prevToken->isWhitespace()) {
            $content = $prevToken->getContent();

            if (Preg::match('/\R/', $content)) {
                $newlineRemoved = true;
            }

            $content = Preg::replace('/\R?\h*$/', '', $content);

            if ('' !== $content) {
                $tokens[$prevIndex] = new Token([T_WHITESPACE, $content]);
            } else {
                $tokens->clearAt($prevIndex);
            }
        }

        $nextIndex = $index + 1;
        $nextToken = isset($tokens[$nextIndex]) ? $tokens[$nextIndex] : null;

        if (!$newlineRemoved && null !== $nextToken && $nextToken->isWhitespace()) {
            $content = Preg::replace('/^\R/', '', $nextToken->getContent());

            if ('' !== $content) {
                $tokens[$nextIndex] = new Token([T_WHITESPACE, $content]);
            } else {
                $tokens->clearAt($nextIndex);
            }
        }

        $tokens->clearTokenAndMergeSurroundingWhitespace($index);
    }

    /**
     * @param int $index
     */
    private function insertHeader(Tokens $tokens, $index)
    {
        $tokens->insertAt($index, new Token([self::HEADER_COMMENT === $this->configuration['comment_type'] ? T_COMMENT : T_DOC_COMMENT, $this->getHeaderAsComment()]));

        $this->fixWhiteSpaceAroundHeader($tokens, $index);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Comment;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Analyzer\CommentsAnalyzer;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Utils;

/**
 * @author Kuba Werłos <werlos@gmail.com>
 */
final class CommentToPhpdocFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface, WhitespacesAwareFixerInterface
{
    /**
     * @var string[]
     */
    private $ignoredTags = [];

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_COMMENT);
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     *
     * Must run before GeneralPhpdocAnnotationRemoveFixer, NoBlankLinesAfterPhpdocFixer, NoEmptyPhpdocFixer, NoSuperfluousPhpdocTagsFixer, PhpdocAddMissingParamAnnotationFixer, PhpdocAlignFixer, PhpdocAlignFixer, PhpdocAnnotationWithoutDotFixer, PhpdocInlineTagFixer, PhpdocLineSpanFixer, PhpdocNoAccessFixer, PhpdocNoAliasTagFixer, PhpdocNoEmptyReturnFixer, PhpdocNoPackageFixer, PhpdocNoUselessInheritdocFixer, PhpdocOrderFixer, PhpdocReturnSelfReferenceFixer, PhpdocSeparationFixer, PhpdocSingleLineVarSpacingFixer, PhpdocSummaryFixer, PhpdocToCommentFixer, PhpdocToParamTypeFixer, PhpdocToReturnTypeFixer, PhpdocTrimConsecutiveBlankLineSeparationFixer, PhpdocTrimFixer, PhpdocTypesOrderFixer, PhpdocVarAnnotationCorrectOrderFixer, PhpdocVarWithoutNameFixer.
     */
    public function getPriority()
    {
        // Should be run before all other PHPDoc fixers
        return 26;
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Comments with annotation should be docblock when used on structural elements.',
            [new CodeSample("<?php /* header */ \$x = true; /* @var bool \$isFoo */ \$isFoo = true;\n")],
            null,
            'Risky as new docblocks might mean more, e.g. a Doctrine entity might have a new column in database.'
        );
    }

    /**
     * {@inheritdoc}
     */
    public function configure(array $configuration = null)
    {
        parent::configure($configuration);

        $this->ignoredTags = array_map(
            static function ($tag) {
                return strtolower($tag);
            },
            $this->configuration['ignored_tags']
        );
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('ignored_tags', sprintf('List of ignored tags')))
                ->setAllowedTypes(['array'])
                ->setDefault([])
                ->getOption(),
        ]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $commentsAnalyzer = new CommentsAnalyzer();

        for ($index = 0, $limit = \count($tokens); $index < $limit; ++$index) {
            $token = $tokens[$index];

            if (!$token->isGivenKind(T_COMMENT)) {
                continue;
            }

            if ($commentsAnalyzer->isHeaderComment($tokens, $index)) {
                continue;
            }

            if (!$commentsAnalyzer->isBeforeStructuralElement($tokens, $index)) {
                continue;
            }

            $commentIndices = $commentsAnalyzer->getCommentBlockIndices($tokens, $index);

            if ($this->isCommentCandidate($tokens, $commentIndices)) {
                $this->fixComment($tokens, $commentIndices);
            }

            $index = max($commentIndices);
        }
    }

    /**
     * @param int[] $indices
     *
     * @return bool
     */
    private function isCommentCandidate(Tokens $tokens, array $indices)
    {
        return array_reduce(
            $indices,
            function ($carry, $index) use ($tokens) {
                if ($carry) {
                    return true;
                }
                if (1 !== Preg::match('~(?:#|//|/\*+|\R(?:\s*\*)?)\s*\@([a-zA-Z0-9_\\\\-]+)(?=\s|\(|$)~', $tokens[$index]->getContent(), $matches)) {
                    return false;
                }

                return !\in_array(strtolower($matches[1]), $this->ignoredTags, true);
            },
            false
        );
    }

    /**
     * @param int[] $indices
     */
    private function fixComment(Tokens $tokens, $indices)
    {
        if (1 === \count($indices)) {
            $this->fixCommentSingleLine($tokens, reset($indices));
        } else {
            $this->fixCommentMultiLine($tokens, $indices);
        }
    }

    /**
     * @param int $index
     */
    private function fixCommentSingleLine(Tokens $tokens, $index)
    {
        $message = $this->getMessage($tokens[$index]->getContent());

        if ('' !== trim(substr($message, 0, 1))) {
            $message = ' '.$message;
        }

        if ('' !== trim(substr($message, -1))) {
            $message .= ' ';
        }

        $tokens[$index] = new Token([T_DOC_COMMENT, '/**'.$message.'*/']);
    }

    /**
     * @param int[] $indices
     */
    private function fixCommentMultiLine(Tokens $tokens, array $indices)
    {
        $startIndex = reset($indices);
        $indent = Utils::calculateTrailingWhitespaceIndent($tokens[$startIndex - 1]);

        $newContent = '/**'.$this->whitespacesConfig->getLineEnding();
        $count = max($indices);

        for ($index = $startIndex; $index <= $count; ++$index) {
            if (!$tokens[$index]->isComment()) {
                continue;
            }
            if (false !== strpos($tokens[$index]->getContent(), '*/')) {
                return;
            }
            $newContent .= $indent.' *'.$this->getMessage($tokens[$index]->getContent()).$this->whitespacesConfig->getLineEnding();
        }

        for ($index = $startIndex; $index <= $count; ++$index) {
            $tokens->clearAt($index);
        }

        $newContent .= $indent.' */';

        $tokens->insertAt($startIndex, new Token([T_DOC_COMMENT, $newContent]));
    }

    private function getMessage($content)
    {
        if (0 === strpos($content, '#')) {
            return substr($content, 1);
        }
        if (0 === strpos($content, '//')) {
            return substr($content, 2);
        }

        return rtrim(ltrim($content, '/*'), '*/');
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Comment;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\AllowedValueSubset;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Filippo Tessarotto <zoeslam@gmail.com>
 */
final class SingleLineCommentStyleFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * @var bool
     */
    private $asteriskEnabled;

    /**
     * @var bool
     */
    private $hashEnabled;

    /**
     * {@inheritdoc}
     */
    public function configure(array $configuration = null)
    {
        parent::configure($configuration);

        $this->asteriskEnabled = \in_array('asterisk', $this->configuration['comment_types'], true);
        $this->hashEnabled = \in_array('hash', $this->configuration['comment_types'], true);
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Single-line comments and multi-line comments with only one line of actual content should use the `//` syntax.',
            [
                new CodeSample(
                    '<?php
/* asterisk comment */
$a = 1;

# hash comment
$b = 2;

/*
 * multi-line
 * comment
 */
$c = 3;
'
                ),
                new CodeSample(
                    '<?php
/* first comment */
$a = 1;

/*
 * second comment
 */
$b = 2;

/*
 * third
 * comment
 */
$c = 3;
',
                    ['comment_types' => ['asterisk']]
                ),
                new CodeSample(
                    "<?php # comment\n",
                    ['comment_types' => ['hash']]
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_COMMENT);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if (!$token->isGivenKind(T_COMMENT)) {
                continue;
            }

            $content = $token->getContent();
            $commentContent = substr($content, 2, -2) ?: '';

            if ($this->hashEnabled && '#' === $content[0]) {
                $tokens[$index] = new Token([$token->getId(), '//'.substr($content, 1)]);

                continue;
            }

            if (
                !$this->asteriskEnabled
                || false !== strpos($commentContent, '?>')
                || '/*' !== substr($content, 0, 2)
                || 1 === Preg::match('/[^\s\*].*\R.*[^\s\*]/s', $commentContent)
            ) {
                continue;
            }

            $nextTokenIndex = $index + 1;
            if (isset($tokens[$nextTokenIndex])) {
                $nextToken = $tokens[$nextTokenIndex];
                if (!$nextToken->isWhitespace() || 1 !== Preg::match('/\R/', $nextToken->getContent())) {
                    continue;
                }

                $tokens[$nextTokenIndex] = new Token([$nextToken->getId(), ltrim($nextToken->getContent(), " \t")]);
            }

            $content = '//';
            if (1 === Preg::match('/[^\s\*]/', $commentContent)) {
                $content = '// '.Preg::replace('/[\s\*]*([^\s\*](?:.+[^\s\*])?)[\s\*]*/', '\1', $commentContent);
            }
            $tokens[$index] = new Token([$token->getId(), $content]);
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('comment_types', 'List of comment types to fix'))
                ->setAllowedTypes(['array'])
                ->setAllowedValues([new AllowedValueSubset(['asterisk', 'hash'])])
                ->setDefault(['asterisk', 'hash'])
                ->getOption(),
        ]);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Comment;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Filippo Tessarotto <zoeslam@gmail.com>
 */
final class MultilineCommentOpeningClosingFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'DocBlocks must start with two asterisks, multiline comments must start with a single asterisk, after the opening slash. Both must end with a single asterisk before the closing slash.',
            [
                new CodeSample(
                    <<<'EOT'
<?php

/******
 * Multiline comment with arbitrary asterisks count
 ******/

/**\
 * Multiline comment that seems a DocBlock
 */

/**
 * DocBlock with arbitrary asterisk count at the end
 **/

EOT
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound([T_COMMENT, T_DOC_COMMENT]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            $originalContent = $token->getContent();

            if (
                !$token->isGivenKind(T_DOC_COMMENT)
                && !($token->isGivenKind(T_COMMENT) && 0 === strpos($originalContent, '/*'))
            ) {
                continue;
            }

            $newContent = $originalContent;

            // Fix opening
            if ($token->isGivenKind(T_COMMENT)) {
                $newContent = Preg::replace('/^\\/\\*{2,}(?!\\/)/', '/*', $newContent);
            }

            // Fix closing
            $newContent = Preg::replace('/(?<!\\/)\\*{2,}\\/$/', '*/', $newContent);

            if ($newContent !== $originalContent) {
                $tokens[$index] = new Token([$token->getId(), $newContent]);
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\PhpTag;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Ceeram <ceeram@cakephp.org>
 */
final class LinebreakAfterOpeningTagFixer extends AbstractFixer implements WhitespacesAwareFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Ensure there is no code on the same line as the PHP open tag.',
            [new CodeSample("<?php \$a = 1;\n\$b = 3;\n")]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_OPEN_TAG);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        // ignore files with short open tag and ignore non-monolithic files
        if (!$tokens[0]->isGivenKind(T_OPEN_TAG) || !$tokens->isMonolithicPhp()) {
            return;
        }

        $newlineFound = false;
        foreach ($tokens as $token) {
            if ($token->isWhitespace() && false !== strpos($token->getContent(), "\n")) {
                $newlineFound = true;

                break;
            }
        }

        // ignore one-line files
        if (!$newlineFound) {
            return;
        }

        $token = $tokens[0];
        $tokens[0] = new Token([$token->getId(), rtrim($token->getContent()).$this->whitespacesConfig->getLineEnding()]);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\PhpTag;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Ceeram <ceeram@cakephp.org>
 */
final class BlankLineAfterOpeningTagFixer extends AbstractFixer implements WhitespacesAwareFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Ensure there is no code on the same line as the PHP open tag and it is followed by a blank line.',
            [new CodeSample("<?php \$a = 1;\n\$b = 1;\n")]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before NoBlankLinesBeforeNamespaceFixer.
     * Must run after DeclareStrictTypesFixer.
     */
    public function getPriority()
    {
        return 1;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_OPEN_TAG);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $lineEnding = $this->whitespacesConfig->getLineEnding();

        // ignore files with short open tag and ignore non-monolithic files
        if (!$tokens[0]->isGivenKind(T_OPEN_TAG) || !$tokens->isMonolithicPhp()) {
            return;
        }

        $newlineFound = false;
        /** @var Token $token */
        foreach ($tokens as $token) {
            if ($token->isWhitespace() && false !== strpos($token->getContent(), "\n")) {
                $newlineFound = true;

                break;
            }
        }

        // ignore one-line files
        if (!$newlineFound) {
            return;
        }

        $token = $tokens[0];

        if (false === strpos($token->getContent(), "\n")) {
            $tokens[0] = new Token([$token->getId(), rtrim($token->getContent()).$lineEnding]);
        }

        if (false === strpos($tokens[1]->getContent(), "\n")) {
            if ($tokens[1]->isWhitespace()) {
                $tokens[1] = new Token([T_WHITESPACE, $lineEnding.$tokens[1]->getContent()]);
            } else {
                $tokens->insertAt(1, new Token([T_WHITESPACE, $lineEnding]));
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\PhpTag;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Vincent Klaiber <hello@vinkla.com>
 */
final class NoShortEchoTagFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Replace short-echo `<?=` with long format `<?php echo` syntax.',
            [new CodeSample("<?= \"foo\";\n")]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before NoMixedEchoPrintFixer.
     */
    public function getPriority()
    {
        return 0;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_OPEN_TAG_WITH_ECHO);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $i = \count($tokens);

        while ($i--) {
            $token = $tokens[$i];

            if (!$token->isGivenKind(T_OPEN_TAG_WITH_ECHO)) {
                continue;
            }

            $nextIndex = $i + 1;

            $tokens[$i] = new Token([T_OPEN_TAG, '<?php ']);

            if (!$tokens[$nextIndex]->isWhitespace()) {
                $tokens->insertAt($nextIndex, new Token([T_WHITESPACE, ' ']));
            }

            $tokens->insertAt($nextIndex, new Token([T_ECHO, 'echo']));
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\PhpTag;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * Fixer for rules defined in PSR1 ¶2.1.
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class FullOpeningTagFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'PHP code must use the long `<?php` tags or short-echo `<?=` tags and not other tag variations.',
            [
                new CodeSample(
                    '<?

echo "Hello!";
'
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function getPriority()
    {
        // must run before all Token-based fixers
        return 98;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokensOrg)
    {
        $content = $tokensOrg->generateCode();

        // replace all <? with <?php to replace all short open tags even without short_open_tag option enabled
        $newContent = Preg::replace('/<\?(?:phP|pHp|pHP|Php|PhP|PHp|PHP)?(\s|$)/', '<?php$1', $content, -1, $count);

        if (!$count) {
            return;
        }

        /* the following code is magic to revert previous replacements which should NOT be replaced, for example incorrectly replacing
         * > echo '<? ';
         * with
         * > echo '<?php ';
         */
        $tokens = Tokens::fromCode($newContent);

        $tokensOldContentLength = 0;

        foreach ($tokens as $index => $token) {
            if ($token->isGivenKind(T_OPEN_TAG)) {
                $tokenContent = $token->getContent();

                if ('<?php' !== strtolower(substr($content, $tokensOldContentLength, 5))) {
                    $tokenContent = '<? ';
                }

                $tokensOldContentLength += \strlen($tokenContent);

                continue;
            }

            if ($token->isGivenKind([T_COMMENT, T_DOC_COMMENT, T_CONSTANT_ENCAPSED_STRING, T_ENCAPSED_AND_WHITESPACE, T_STRING])) {
                $tokenContent = '';
                $tokenContentLength = 0;
                $parts = explode('<?php', $token->getContent());
                $iLast = \count($parts) - 1;

                foreach ($parts as $i => $part) {
                    $tokenContent .= $part;
                    $tokenContentLength += \strlen($part);

                    if ($i !== $iLast) {
                        $originalTokenContent = substr($content, $tokensOldContentLength + $tokenContentLength, 5);
                        if ('<?php' === strtolower($originalTokenContent)) {
                            $tokenContent .= $originalTokenContent;
                            $tokenContentLength += 5;
                        } else {
                            $tokenContent .= '<?';
                            $tokenContentLength += 2;
                        }
                    }
                }

                $tokens[$index] = new Token([$token->getId(), $tokenContent]);
                $token = $tokens[$index];
            }

            $tokensOldContentLength += \strlen($token->getContent());
        }

        $tokensOrg->overrideRange(0, $tokensOrg->count() - 1, $tokens);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\PhpTag;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * Fixer for rules defined in PSR2 ¶2.2.
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class NoClosingTagFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'The closing `?>` tag MUST be omitted from files containing only PHP.',
            [new CodeSample("<?php\nclass Sample\n{\n}\n?>\n")]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_CLOSE_TAG);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        if (\count($tokens) < 2 || !$tokens->isMonolithicPhp() || !$tokens->isTokenKindFound(T_CLOSE_TAG)) {
            return;
        }

        $closeTags = $tokens->findGivenKind(T_CLOSE_TAG);
        $index = key($closeTags);

        if (isset($tokens[$index - 1]) && $tokens[$index - 1]->isWhitespace()) {
            $tokens->clearAt($index - 1);
        }
        $tokens->clearAt($index);

        $prevIndex = $tokens->getPrevMeaningfulToken($index);
        if (!$tokens[$prevIndex]->equalsAny([';', '}', [T_OPEN_TAG]])) {
            $tokens->insertAt($prevIndex + 1, new Token(';'));
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ReturnNotation;

use PhpCsFixer\AbstractProxyFixer;
use PhpCsFixer\Fixer\DeprecatedFixerInterface;
use PhpCsFixer\Fixer\Whitespace\BlankLineBeforeStatementFixer;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;

/**
 * @deprecated since 2.4, replaced by BlankLineBeforeStatementFixer
 *
 * @todo To be removed at 3.0
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 * @author Andreas Möller <am@localheinz.com>
 */
final class BlankLineBeforeReturnFixer extends AbstractProxyFixer implements DeprecatedFixerInterface, WhitespacesAwareFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'An empty line feed should precede a return statement.',
            [new CodeSample("<?php\nfunction A()\n{\n    echo 1;\n    return 1;\n}\n")]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run after NoUselessReturnFixer.
     */
    public function getPriority()
    {
        return parent::getPriority();
    }

    /**
     * {@inheritdoc}
     */
    public function getSuccessorsNames()
    {
        return array_keys($this->proxyFixers);
    }

    /**
     * {@inheritdoc}
     */
    protected function createProxyFixers()
    {
        $fixer = new BlankLineBeforeStatementFixer();
        $fixer->configure(['statements' => ['return']]);

        return [$fixer];
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ReturnNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\FixerDefinition\VersionSpecification;
use PhpCsFixer\FixerDefinition\VersionSpecificCodeSample;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Graham Campbell <graham@alt-three.com>
 */
final class SimplifiedNullReturnFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'A return statement wishing to return `void` should not return `null`.',
            [
                new CodeSample("<?php return null;\n"),
                new VersionSpecificCodeSample(
                    <<<'EOT'
<?php
function foo() { return null; }
function bar(): int { return null; }
function baz(): ?int { return null; }
function xyz(): void { return null; }

EOT
                    ,
                    new VersionSpecification(70100)
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before NoUselessReturnFixer, VoidReturnFixer.
     */
    public function getPriority()
    {
        return 16;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_RETURN);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if (!$token->isGivenKind(T_RETURN)) {
                continue;
            }

            if ($this->needFixing($tokens, $index)) {
                $this->clear($tokens, $index);
            }
        }
    }

    /**
     * Clear the return statement located at a given index.
     *
     * @param int $index
     */
    private function clear(Tokens $tokens, $index)
    {
        while (!$tokens[++$index]->equals(';')) {
            if ($this->shouldClearToken($tokens, $index)) {
                $tokens->clearAt($index);
            }
        }
    }

    /**
     * Does the return statement located at a given index need fixing?
     *
     * @param int $index
     *
     * @return bool
     */
    private function needFixing(Tokens $tokens, $index)
    {
        if ($this->isStrictOrNullableReturnTypeFunction($tokens, $index)) {
            return false;
        }

        $content = '';
        while (!$tokens[$index]->equals(';')) {
            $index = $tokens->getNextMeaningfulToken($index);
            $content .= $tokens[$index]->getContent();
        }

        $content = ltrim($content, '(');
        $content = rtrim($content, ');');

        return 'null' === strtolower($content);
    }

    /**
     * Is the return within a function with a non-void or nullable return type?
     *
     * @param int $returnIndex Current return token index
     *
     * @return bool
     */
    private function isStrictOrNullableReturnTypeFunction(Tokens $tokens, $returnIndex)
    {
        $functionIndex = $returnIndex;
        do {
            $functionIndex = $tokens->getPrevTokenOfKind($functionIndex, [[T_FUNCTION]]);
            if (null === $functionIndex) {
                return false;
            }
            $openingCurlyBraceIndex = $tokens->getNextTokenOfKind($functionIndex, ['{']);
            $closingCurlyBraceIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $openingCurlyBraceIndex);
        } while ($closingCurlyBraceIndex < $returnIndex);

        $possibleVoidIndex = $tokens->getPrevMeaningfulToken($openingCurlyBraceIndex);
        $isStrictReturnType = $tokens[$possibleVoidIndex]->isGivenKind(T_STRING) && 'void' !== $tokens[$possibleVoidIndex]->getContent();

        $nullableTypeIndex = $tokens->getNextTokenOfKind($functionIndex, [[CT::T_NULLABLE_TYPE]]);
        $isNullableReturnType = null !== $nullableTypeIndex && $nullableTypeIndex < $openingCurlyBraceIndex;

        return $isStrictReturnType || $isNullableReturnType;
    }

    /**
     * Should we clear the specific token?
     *
     * If the token is a comment, or is whitespace that is immediately before a
     * comment, then we'll leave it alone.
     *
     * @param int $index
     *
     * @return bool
     */
    private function shouldClearToken(Tokens $tokens, $index)
    {
        $token = $tokens[$index];

        return !$token->isComment() && !($token->isWhitespace() && $tokens[$index + 1]->isComment());
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ReturnNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author SpacePossum
 */
final class ReturnAssignmentFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Local, dynamic and directly referenced variables should not be assigned and directly returned by a function or method.',
            [new CodeSample("<?php\nfunction a() {\n    \$a = 1;\n    return \$a;\n}\n")]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before BlankLineBeforeStatementFixer.
     * Must run after NoEmptyStatementFixer, NoUnneededCurlyBracesFixer.
     */
    public function getPriority()
    {
        return -15;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAllTokenKindsFound([T_FUNCTION, T_RETURN, T_VARIABLE]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $tokenCount = \count($tokens);

        for ($index = 1; $index < $tokenCount; ++$index) {
            if (!$tokens[$index]->isGivenKind(T_FUNCTION)) {
                continue;
            }

            $functionOpenIndex = $tokens->getNextTokenOfKind($index, ['{', ';']);
            if ($tokens[$functionOpenIndex]->equals(';')) { // abstract function
                $index = $functionOpenIndex - 1;

                continue;
            }

            $functionCloseIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $functionOpenIndex);
            $totalTokensAdded = 0;

            do {
                $tokensAdded = $this->fixFunction(
                    $tokens,
                    $index,
                    $functionOpenIndex,
                    $functionCloseIndex
                );

                $totalTokensAdded += $tokensAdded;
            } while ($tokensAdded > 0);

            $index = $functionCloseIndex + $totalTokensAdded;
            $tokenCount += $totalTokensAdded;
        }
    }

    /**
     * @param int $functionIndex      token index of T_FUNCTION
     * @param int $functionOpenIndex  token index of the opening brace token of the function
     * @param int $functionCloseIndex token index of the closing brace token of the function
     *
     * @return int >= 0 number of tokens inserted into the Tokens collection
     */
    private function fixFunction(Tokens $tokens, $functionIndex, $functionOpenIndex, $functionCloseIndex)
    {
        static $riskyKinds = [
            CT::T_DYNAMIC_VAR_BRACE_OPEN, // "$h = ${$g};" case
            T_EVAL,                       // "$c = eval('return $this;');" case
            T_GLOBAL,
            T_INCLUDE,                    // loading additional symbols we cannot analyze here
            T_INCLUDE_ONCE,               // "
            T_REQUIRE,                    // "
            T_REQUIRE_ONCE,               // "
            T_STATIC,
        ];

        $inserted = 0;
        $candidates = [];
        $isRisky = false;

        // go through the function declaration and check if references are passed
        // - check if it will be risky to fix return statements of this function
        for ($index = $functionIndex + 1; $index < $functionOpenIndex; ++$index) {
            if ($tokens[$index]->equals('&')) {
                $isRisky = true;

                break;
            }
        }

        // go through all the tokens of the body of the function:
        // - check if it will be risky to fix return statements of this function
        // - check nested functions; fix when found and update the upper limit + number of inserted token
        // - check for return statements that might be fixed (based on if fixing will be risky, which is only know after analyzing the whole function)

        for ($index = $functionOpenIndex + 1; $index < $functionCloseIndex; ++$index) {
            if ($tokens[$index]->isGivenKind(T_FUNCTION)) {
                $nestedFunctionOpenIndex = $tokens->getNextTokenOfKind($index, ['{', ';']);
                if ($tokens[$nestedFunctionOpenIndex]->equals(';')) { // abstract function
                    $index = $nestedFunctionOpenIndex - 1;

                    continue;
                }

                $nestedFunctionCloseIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $nestedFunctionOpenIndex);

                $tokensAdded = $this->fixFunction(
                    $tokens,
                    $index,
                    $nestedFunctionOpenIndex,
                    $nestedFunctionCloseIndex
                );

                $index = $nestedFunctionCloseIndex + $tokensAdded;
                $functionCloseIndex += $tokensAdded;
                $inserted += $tokensAdded;
            }

            if ($isRisky) {
                continue; // don't bother to look into anything else than nested functions as the current is risky already
            }

            if ($tokens[$index]->equals('&')) {
                $isRisky = true;

                continue;
            }

            if ($tokens[$index]->isGivenKind(T_RETURN)) {
                $candidates[] = $index;

                continue;
            }

            // test if there this is anything in the function body that might
            // change global state or indirect changes (like through references, eval, etc.)

            if ($tokens[$index]->isGivenKind($riskyKinds)) {
                $isRisky = true;

                continue;
            }

            if ($tokens[$index]->equals('$')) {
                $nextIndex = $tokens->getNextMeaningfulToken($index);
                if ($tokens[$nextIndex]->isGivenKind(T_VARIABLE)) {
                    $isRisky = true; // "$$a" case

                    continue;
                }
            }

            if ($this->isSuperGlobal($tokens[$index])) {
                $isRisky = true;

                continue;
            }
        }

        if ($isRisky) {
            return $inserted;
        }

        // fix the candidates in reverse order when applicable
        for ($i = \count($candidates) - 1; $i >= 0; --$i) {
            $index = $candidates[$i];

            // Check if returning only a variable (i.e. not the result of an expression, function call etc.)
            $returnVarIndex = $tokens->getNextMeaningfulToken($index);
            if (!$tokens[$returnVarIndex]->isGivenKind(T_VARIABLE)) {
                continue; // example: "return 1;"
            }

            $endReturnVarIndex = $tokens->getNextMeaningfulToken($returnVarIndex);
            if (!$tokens[$endReturnVarIndex]->equalsAny([';', [T_CLOSE_TAG]])) {
                continue; // example: "return $a + 1;"
            }

            // Check that the variable is assigned just before it is returned
            $assignVarEndIndex = $tokens->getPrevMeaningfulToken($index);
            if (!$tokens[$assignVarEndIndex]->equals(';')) {
                continue; // example: "? return $a;"
            }

            // Note: here we are @ "; return $a;" (or "; return $a ? >")
            do {
                $prevMeaningFul = $tokens->getPrevMeaningfulToken($assignVarEndIndex);

                if (!$tokens[$prevMeaningFul]->equals(')')) {
                    break;
                }

                $assignVarEndIndex = $tokens->findBlockStart(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $prevMeaningFul);
            } while (true);

            $assignVarOperatorIndex = $tokens->getPrevTokenOfKind(
                $assignVarEndIndex,
                ['=', ';', '{', [T_OPEN_TAG], [T_OPEN_TAG_WITH_ECHO]]
            );

            if (null === $assignVarOperatorIndex || !$tokens[$assignVarOperatorIndex]->equals('=')) {
                continue;
            }

            // Note: here we are @ "= [^;{<? ? >] ; return $a;"
            $assignVarIndex = $tokens->getPrevMeaningfulToken($assignVarOperatorIndex);
            if (!$tokens[$assignVarIndex]->equals($tokens[$returnVarIndex], false)) {
                continue;
            }

            // Note: here we are @ "$a = [^;{<? ? >] ; return $a;"
            $beforeAssignVarIndex = $tokens->getPrevMeaningfulToken($assignVarIndex);
            if (!$tokens[$beforeAssignVarIndex]->equalsAny([';', '{', '}'])) {
                continue;
            }

            // Note: here we are @ "[;{}] $a = [^;{<? ? >] ; return $a;"
            $inserted += $this->simplifyReturnStatement(
                $tokens,
                $assignVarIndex,
                $assignVarOperatorIndex,
                $index,
                $endReturnVarIndex
            );
        }

        return $inserted;
    }

    /**
     * @param int $assignVarIndex
     * @param int $assignVarOperatorIndex
     * @param int $returnIndex
     * @param int $returnVarEndIndex
     *
     * @return int >= 0 number of tokens inserted into the Tokens collection
     */
    private function simplifyReturnStatement(
        Tokens $tokens,
        $assignVarIndex,
        $assignVarOperatorIndex,
        $returnIndex,
        $returnVarEndIndex
    ) {
        $inserted = 0;
        $originalIndent = $tokens[$assignVarIndex - 1]->isWhitespace()
            ? $tokens[$assignVarIndex - 1]->getContent()
            : null
        ;

        // remove the return statement
        if ($tokens[$returnVarEndIndex]->equals(';')) { // do not remove PHP close tags
            $tokens->clearTokenAndMergeSurroundingWhitespace($returnVarEndIndex);
        }

        for ($i = $returnIndex; $i <= $returnVarEndIndex - 1; ++$i) {
            $this->clearIfSave($tokens, $i);
        }

        // remove no longer needed indentation of the old/remove return statement
        if ($tokens[$returnIndex - 1]->isWhitespace()) {
            $content = $tokens[$returnIndex - 1]->getContent();
            $fistLinebreakPos = strrpos($content, "\n");
            $content = false === $fistLinebreakPos
                ? ' '
                : substr($content, $fistLinebreakPos)
            ;

            $tokens[$returnIndex - 1] = new Token([T_WHITESPACE, $content]);
        }

        // remove the variable and the assignment
        for ($i = $assignVarIndex; $i <= $assignVarOperatorIndex; ++$i) {
            $this->clearIfSave($tokens, $i);
        }

        // insert new return statement
        $tokens->insertAt($assignVarIndex, new Token([T_RETURN, 'return']));
        ++$inserted;

        // use the original indent of the var assignment for the new return statement
        if (
            null !== $originalIndent
            && $tokens[$assignVarIndex - 1]->isWhitespace()
            && $originalIndent !== $tokens[$assignVarIndex - 1]->getContent()
        ) {
            $tokens[$assignVarIndex - 1] = new Token([T_WHITESPACE, $originalIndent]);
        }

        // remove trailing space after the new return statement which might be added during the clean up process
        $nextIndex = $tokens->getNonEmptySibling($assignVarIndex, 1);
        if (!$tokens[$nextIndex]->isWhitespace()) {
            $tokens->insertAt($nextIndex, new Token([T_WHITESPACE, ' ']));
            ++$inserted;
        }

        return $inserted;
    }

    private function clearIfSave(Tokens $tokens, $index)
    {
        if ($tokens[$index]->isComment()) {
            return;
        }

        if ($tokens[$index]->isWhitespace() && $tokens[$tokens->getPrevNonWhitespace($index)]->isComment()) {
            return;
        }

        $tokens->clearTokenAndMergeSurroundingWhitespace($index);
    }

    /**
     * @return bool
     */
    private function isSuperGlobal(Token $token)
    {
        static $superNames = [
            '$_COOKIE' => true,
            '$_ENV' => true,
            '$_FILES' => true,
            '$_GET' => true,
            '$_POST' => true,
            '$_REQUEST' => true,
            '$_SERVER' => true,
            '$_SESSION' => true,
            '$GLOBALS' => true,
        ];

        if (!$token->isGivenKind(T_VARIABLE)) {
            return false;
        }

        return isset($superNames[strtoupper($token->getContent())]);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ReturnNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author SpacePossum
 */
final class NoUselessReturnFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAllTokenKindsFound([T_FUNCTION, T_RETURN]);
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'There should not be an empty `return` statement at the end of a function.',
            [
                new CodeSample(
                    '<?php
function example($b) {
    if ($b) {
        return;
    }
    return;
}
'
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before BlankLineBeforeReturnFixer, BlankLineBeforeStatementFixer, NoExtraBlankLinesFixer, NoWhitespaceInBlankLineFixer.
     * Must run after NoEmptyStatementFixer, NoUnneededCurlyBracesFixer, NoUselessElseFixer, SimplifiedNullReturnFixer.
     */
    public function getPriority()
    {
        return -18;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if (!$token->isGivenKind(T_FUNCTION)) {
                continue;
            }

            $index = $tokens->getNextTokenOfKind($index, [';', '{']);
            if ($tokens[$index]->equals('{')) {
                $this->fixFunction($tokens, $index, $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $index));
            }
        }
    }

    /**
     * @param int $start Token index of the opening brace token of the function
     * @param int $end   Token index of the closing brace token of the function
     */
    private function fixFunction(Tokens $tokens, $start, $end)
    {
        for ($index = $end; $index > $start; --$index) {
            if (!$tokens[$index]->isGivenKind(T_RETURN)) {
                continue;
            }

            $nextAt = $tokens->getNextMeaningfulToken($index);
            if (!$tokens[$nextAt]->equals(';')) {
                continue;
            }

            if ($tokens->getNextMeaningfulToken($nextAt) !== $end) {
                continue;
            }

            $previous = $tokens->getPrevMeaningfulToken($index);
            if ($tokens[$previous]->equalsAny([[T_ELSE], ')'])) {
                continue;
            }

            $tokens->clearTokenAndMergeSurroundingWhitespace($index);
            $tokens->clearTokenAndMergeSurroundingWhitespace($nextAt);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer;

/**
 * @author Kuba Werłos <werlos@gmail.com>
 */
interface DeprecatedFixerInterface extends FixerInterface
{
    /**
     * Returns names of fixers to use instead, if any.
     *
     * @return string[]
     */
    public function getSuccessorsNames();
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Basic;

use PhpCsFixer\AbstractPsrAutoloadingFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\FileSpecificCodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Jordi Boggiano <j.boggiano@seld.be>
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 * @author Bram Gotink <bram@gotink.me>
 * @author Graham Campbell <graham@alt-three.com>
 */
final class Psr0Fixer extends AbstractPsrAutoloadingFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Classes must be in a path that matches their namespace, be at least one namespace deep and the class name should match the file name.',
            [
                new FileSpecificCodeSample(
                    '<?php
namespace PhpCsFixer\FIXER\Basic;
class InvalidName {}
',
                    new \SplFileInfo(__FILE__)
                ),
                new FileSpecificCodeSample(
                    '<?php
namespace PhpCsFixer\FIXER\Basic;
class InvalidName {}
',
                    new \SplFileInfo(__FILE__),
                    ['dir' => realpath(__DIR__.'/../..')]
                ),
            ],
            null,
            'This fixer may change your class name, which will break the code that depends on the old name.'
        );
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $namespace = false;
        $namespaceIndex = 0;
        $namespaceEndIndex = 0;

        $classyName = null;
        $classyIndex = 0;

        foreach ($tokens as $index => $token) {
            if ($token->isGivenKind(T_NAMESPACE)) {
                if (false !== $namespace) {
                    return;
                }

                $namespaceIndex = $tokens->getNextMeaningfulToken($index);
                $namespaceEndIndex = $tokens->getNextTokenOfKind($index, [';']);

                $namespace = trim($tokens->generatePartialCode($namespaceIndex, $namespaceEndIndex - 1));
            } elseif ($token->isClassy()) {
                $prevToken = $tokens[$tokens->getPrevMeaningfulToken($index)];
                if ($prevToken->isGivenKind(T_NEW)) {
                    continue;
                }

                if (null !== $classyName) {
                    return;
                }

                $classyIndex = $tokens->getNextMeaningfulToken($index);
                $classyName = $tokens[$classyIndex]->getContent();
            }
        }

        if (null === $classyName) {
            return;
        }

        if (false !== $namespace) {
            $normNamespace = str_replace('\\', '/', $namespace);
            $path = str_replace('\\', '/', $file->getRealPath());
            $dir = \dirname($path);

            if ('' !== $this->configuration['dir']) {
                /** @var false|string $dir until support for PHP 5.6 is dropped */
                $dir = substr($dir, \strlen(realpath($this->configuration['dir'])) + 1);

                if (false === $dir) {
                    $dir = '';
                }

                if (\strlen($normNamespace) > \strlen($dir)) {
                    if ('' !== $dir) {
                        $normNamespace = substr($normNamespace, -\strlen($dir));
                    } else {
                        $normNamespace = '';
                    }
                }
            }

            /** @var false|string $dir until support for PHP 5.6 is dropped */
            $dir = substr($dir, -\strlen($normNamespace));
            if (false === $dir) {
                $dir = '';
            }

            $filename = basename($path, '.php');

            if ($classyName !== $filename) {
                $tokens[$classyIndex] = new Token([T_STRING, $filename]);
            }

            if ($normNamespace !== $dir && strtolower($normNamespace) === strtolower($dir)) {
                for ($i = $namespaceIndex; $i <= $namespaceEndIndex; ++$i) {
                    $tokens->clearAt($i);
                }
                $namespace = substr($namespace, 0, -\strlen($dir)).str_replace('/', '\\', $dir);

                $newNamespace = Tokens::fromCode('<?php namespace '.$namespace.';');
                $newNamespace->clearRange(0, 2);
                $newNamespace->clearEmptyTokens();

                $tokens->insertAt($namespaceIndex, $newNamespace);
            }
        } else {
            $normClass = str_replace('_', '/', $classyName);
            $path = str_replace('\\', '/', $file->getRealPath());
            $filename = substr($path, -\strlen($normClass) - 4, -4);

            if ($normClass !== $filename && strtolower($normClass) === strtolower($filename)) {
                $tokens[$classyIndex] = new Token([T_STRING, str_replace('/', '_', $filename)]);
            }
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('dir', 'The directory where the project code is placed.'))
                ->setAllowedTypes(['string'])
                ->setDefault('')
                ->getOption(),
        ]);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Basic;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * Fixer for rules defined in PSR1 ¶2.2.
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class EncodingFixer extends AbstractFixer
{
    private $BOM;

    public function __construct()
    {
        parent::__construct();

        $this->BOM = pack('CCC', 0xef, 0xbb, 0xbf);
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'PHP code MUST use only UTF-8 without BOM (remove BOM).',
            [
                new CodeSample(
                    $this->BOM.'<?php

echo "Hello!";
'
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function getPriority()
    {
        // must run first (at least before Fixers that using Tokens) - for speed reason of whole fixing process
        return 100;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $content = $tokens[0]->getContent();

        if (0 === strncmp($content, $this->BOM, 3)) {
            /** @var false|string $newContent until support for PHP 5.6 is dropped */
            $newContent = substr($content, 3);

            if (false === $newContent) {
                $newContent = ''; // substr returns false rather than an empty string when starting at the end
            }

            if ('' === $newContent) {
                $tokens->clearAt(0);
            } else {
                $tokens[0] = new Token([$tokens[0]->getId(), $newContent]);
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Basic;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerConfiguration\InvalidOptionsForEnvException;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\FixerDefinition\VersionSpecification;
use PhpCsFixer\FixerDefinition\VersionSpecificCodeSample;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use Symfony\Component\OptionsResolver\Options;

/**
 * Removes Zero-width space (ZWSP), Non-breaking space (NBSP) and other invisible unicode symbols.
 *
 * @author Ivan Boprzenkov <ivan.borzenkov@gmail.com>
 */
final class NonPrintableCharacterFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    private $symbolsReplace;

    private static $tokens = [
        T_STRING_VARNAME,
        T_INLINE_HTML,
        T_VARIABLE,
        T_COMMENT,
        T_ENCAPSED_AND_WHITESPACE,
        T_CONSTANT_ENCAPSED_STRING,
        T_DOC_COMMENT,
    ];

    public function __construct()
    {
        parent::__construct();

        $this->symbolsReplace = [
            pack('H*', 'e2808b') => ['', '200b'], // ZWSP U+200B
            pack('H*', 'e28087') => [' ', '2007'], // FIGURE SPACE U+2007
            pack('H*', 'e280af') => [' ', '202f'], // NBSP U+202F
            pack('H*', 'e281a0') => ['', '2060'], // WORD JOINER U+2060
            pack('H*', 'c2a0') => [' ', 'a0'], // NO-BREAK SPACE U+A0
        ];
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Remove Zero-width space (ZWSP), Non-breaking space (NBSP) and other invisible unicode symbols.',
            [
                new CodeSample(
                    '<?php echo "'.pack('H*', 'e2808b').'Hello'.pack('H*', 'e28087').'World'.pack('H*', 'c2a0')."!\";\n"
                ),
                new VersionSpecificCodeSample(
                    '<?php echo "'.pack('H*', 'e2808b').'Hello'.pack('H*', 'e28087').'World'.pack('H*', 'c2a0')."!\";\n",
                    new VersionSpecification(70000),
                    ['use_escape_sequences_in_strings' => true]
                ),
            ],
            null,
            'Risky when strings contain intended invisible characters.'
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound(self::$tokens);
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('use_escape_sequences_in_strings', 'Whether characters should be replaced with escape sequences in strings.'))
                ->setAllowedTypes(['bool'])
                ->setDefault(false) // @TODO 3.0 change to true
                ->setNormalizer(static function (Options $options, $value) {
                    if (\PHP_VERSION_ID < 70000 && $value) {
                        throw new InvalidOptionsForEnvException('Escape sequences require PHP 7.0+.');
                    }

                    return $value;
                })
                ->getOption(),
        ]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $replacements = [];
        $escapeSequences = [];
        foreach ($this->symbolsReplace as $character => list($replacement, $codepoint)) {
            $replacements[$character] = $replacement;
            $escapeSequences[$character] = '\u{'.$codepoint.'}';
        }

        foreach ($tokens as $index => $token) {
            $content = $token->getContent();

            if (
                $this->configuration['use_escape_sequences_in_strings']
                && $token->isGivenKind([T_CONSTANT_ENCAPSED_STRING, T_ENCAPSED_AND_WHITESPACE])
            ) {
                if (!Preg::match('/'.implode('|', array_keys($escapeSequences)).'/', $content)) {
                    continue;
                }

                $previousToken = $tokens[$index - 1];
                $stringTypeChanged = false;
                $swapQuotes = false;

                if ($previousToken->isGivenKind(T_START_HEREDOC)) {
                    $previousTokenContent = $previousToken->getContent();

                    if (false !== strpos($previousTokenContent, '\'')) {
                        $tokens[$index - 1] = new Token([T_START_HEREDOC, str_replace('\'', '', $previousTokenContent)]);
                        $stringTypeChanged = true;
                    }
                } elseif ("'" === $content[0]) {
                    $stringTypeChanged = true;
                    $swapQuotes = true;
                }

                if ($swapQuotes) {
                    $content = str_replace("\\'", "'", $content);
                }
                if ($stringTypeChanged) {
                    $content = Preg::replace('/(\\\\{1,2})/', '\\\\\\\\', $content);
                    $content = str_replace('$', '\$', $content);
                }
                if ($swapQuotes) {
                    $content = str_replace('"', '\"', $content);
                    $content = Preg::replace('/^\'(.*)\'$/', '"$1"', $content);
                }

                $tokens[$index] = new Token([$token->getId(), strtr($content, $escapeSequences)]);

                continue;
            }

            if ($token->isGivenKind(self::$tokens)) {
                $tokens[$index] = new Token([$token->getId(), strtr($content, $replacements)]);
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Basic;

use PhpCsFixer\AbstractPsrAutoloadingFixer;
use PhpCsFixer\FixerDefinition\FileSpecificCodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Jordi Boggiano <j.boggiano@seld.be>
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 * @author Bram Gotink <bram@gotink.me>
 * @author Graham Campbell <graham@alt-three.com>
 */
final class Psr4Fixer extends AbstractPsrAutoloadingFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Class names should match the file name.',
            [
                new FileSpecificCodeSample(
                    '<?php
namespace PhpCsFixer\FIXER\Basic;
class InvalidName {}
',
                    new \SplFileInfo(__FILE__)
                ),
            ],
            null,
            'This fixer may change your class name, which will break the code that depends on the old name.'
        );
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $isNamespaceFound = false;
        $classyIndex = 0;
        $classyName = null;

        foreach ($tokens as $index => $token) {
            if ($token->isGivenKind(T_NAMESPACE)) {
                if ($isNamespaceFound) {
                    return;
                }

                $isNamespaceFound = true;
            } elseif ($token->isClassy()) {
                $prevToken = $tokens[$tokens->getPrevMeaningfulToken($index)];
                if ($prevToken->isGivenKind(T_NEW)) {
                    continue;
                }

                if (null !== $classyName) {
                    return;
                }

                $classyIndex = $tokens->getNextMeaningfulToken($index);
                $classyName = $tokens[$classyIndex]->getContent();
            }
        }

        if (null === $classyName) {
            return;
        }

        if ($isNamespaceFound) {
            $filename = basename(str_replace('\\', '/', $file->getRealPath()), '.php');

            if ($classyName !== $filename) {
                $tokens[$classyIndex] = new Token([T_STRING, $filename]);
            }
        } else {
            $normClass = str_replace('_', '/', $classyName);
            $filename = substr(str_replace('\\', '/', $file->getRealPath()), -\strlen($normClass) - 4, -4);

            if ($normClass !== $filename && strtolower($normClass) === strtolower($filename)) {
                $tokens[$classyIndex] = new Token([T_STRING, str_replace('/', '_', $filename)]);
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Basic;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Tokenizer\TokensAnalyzer;

/**
 * Fixer for rules defined in PSR2 ¶4.1, ¶4.4, ¶5.
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class BracesFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface, WhitespacesAwareFixerInterface
{
    /**
     * @internal
     */
    const LINE_NEXT = 'next';

    /**
     * @internal
     */
    const LINE_SAME = 'same';

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'The body of each structure MUST be enclosed by braces. Braces should be properly placed. Body of braces should be properly indented.',
            [
                new CodeSample(
                    '<?php

class Foo {
    public function bar($baz) {
        if ($baz = 900) echo "Hello!";

        if ($baz = 9000)
            echo "Wait!";

        if ($baz == true)
        {
            echo "Why?";
        }
        else
        {
            echo "Ha?";
        }

        if (is_array($baz))
            foreach ($baz as $b)
            {
                echo $b;
            }
    }
}
'
                ),
                new CodeSample(
                    '<?php
$positive = function ($item) { return $item >= 0; };
$negative = function ($item) {
                return $item < 0; };
',
                    ['allow_single_line_closure' => true]
                ),
                new CodeSample(
                    '<?php

class Foo
{
    public function bar($baz)
    {
        if ($baz = 900) echo "Hello!";

        if ($baz = 9000)
            echo "Wait!";

        if ($baz == true)
        {
            echo "Why?";
        }
        else
        {
            echo "Ha?";
        }

        if (is_array($baz))
            foreach ($baz as $b)
            {
                echo $b;
            }
    }
}
',
                    ['position_after_functions_and_oop_constructs' => self::LINE_SAME]
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before ArrayIndentationFixer, MethodArgumentSpaceFixer, MethodChainingIndentationFixer.
     * Must run after ClassAttributesSeparationFixer, ElseifFixer, LineEndingFixer, MethodSeparationFixer, NoAlternativeSyntaxFixer, NoEmptyStatementFixer, NoUselessElseFixer, SingleTraitInsertPerStatementFixer.
     */
    public function getPriority()
    {
        return -25;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $this->fixCommentBeforeBrace($tokens);
        $this->fixMissingControlBraces($tokens);
        $this->fixIndents($tokens);
        $this->fixControlContinuationBraces($tokens);
        $this->fixSpaceAroundToken($tokens);
        $this->fixDoWhile($tokens);
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('allow_single_line_closure', 'Whether single line lambda notation should be allowed.'))
                ->setAllowedTypes(['bool'])
                ->setDefault(false)
                ->getOption(),
            (new FixerOptionBuilder('position_after_functions_and_oop_constructs', 'whether the opening brace should be placed on "next" or "same" line after classy constructs (non-anonymous classes, interfaces, traits, methods and non-lambda functions).'))
                ->setAllowedValues([self::LINE_NEXT, self::LINE_SAME])
                ->setDefault(self::LINE_NEXT)
                ->getOption(),
            (new FixerOptionBuilder('position_after_control_structures', 'whether the opening brace should be placed on "next" or "same" line after control structures.'))
                ->setAllowedValues([self::LINE_NEXT, self::LINE_SAME])
                ->setDefault(self::LINE_SAME)
                ->getOption(),
            (new FixerOptionBuilder('position_after_anonymous_constructs', 'whether the opening brace should be placed on "next" or "same" line after anonymous constructs (anonymous classes and lambda functions).'))
                ->setAllowedValues([self::LINE_NEXT, self::LINE_SAME])
                ->setDefault(self::LINE_SAME)
                ->getOption(),
        ]);
    }

    private function fixCommentBeforeBrace(Tokens $tokens)
    {
        $tokensAnalyzer = new TokensAnalyzer($tokens);
        $controlTokens = $this->getControlTokens();

        for ($index = $tokens->count() - 1; 0 <= $index; --$index) {
            $token = $tokens[$index];

            if ($token->isGivenKind($controlTokens)) {
                $prevIndex = $this->findParenthesisEnd($tokens, $index);
            } elseif (
                ($token->isGivenKind(T_FUNCTION) && $tokensAnalyzer->isLambda($index)) ||
                ($token->isGivenKind(T_CLASS) && $tokensAnalyzer->isAnonymousClass($index))
            ) {
                $prevIndex = $tokens->getNextTokenOfKind($index, ['{']);
                $prevIndex = $tokens->getPrevMeaningfulToken($prevIndex);
            } else {
                continue;
            }

            $commentIndex = $tokens->getNextNonWhitespace($prevIndex);
            $commentToken = $tokens[$commentIndex];

            if (!$commentToken->isGivenKind(T_COMMENT) || 0 === strpos($commentToken->getContent(), '/*')) {
                continue;
            }

            $braceIndex = $tokens->getNextMeaningfulToken($commentIndex);
            $braceToken = $tokens[$braceIndex];

            if (!$braceToken->equals('{')) {
                continue;
            }

            /** @var Token $tokenTmp */
            $tokenTmp = $tokens[$braceIndex];

            $newBraceIndex = $prevIndex + 1;
            for ($i = $braceIndex; $i > $newBraceIndex; --$i) {
                // we might be moving one white space next to another, these have to be merged
                /** @var Token $previousToken */
                $previousToken = $tokens[$i - 1];
                $tokens[$i] = $previousToken;
                if ($tokens[$i]->isWhitespace() && $tokens[$i + 1]->isWhitespace()) {
                    $tokens[$i] = new Token([T_WHITESPACE, $tokens[$i]->getContent().$tokens[$i + 1]->getContent()]);
                    $tokens->clearAt($i + 1);
                }
            }

            $tokens[$newBraceIndex] = $tokenTmp;
            $c = $tokens[$braceIndex]->getContent();
            if (substr_count($c, "\n") > 1) {
                // left trim till last line break
                $tokens[$braceIndex] = new Token([T_WHITESPACE, substr($c, strrpos($c, "\n"))]);
            }
        }
    }

    private function fixControlContinuationBraces(Tokens $tokens)
    {
        $controlContinuationTokens = $this->getControlContinuationTokens();

        for ($index = \count($tokens) - 1; 0 <= $index; --$index) {
            $token = $tokens[$index];

            if (!$token->isGivenKind($controlContinuationTokens)) {
                continue;
            }

            $prevIndex = $tokens->getPrevNonWhitespace($index);
            $prevToken = $tokens[$prevIndex];

            if (!$prevToken->equals('}')) {
                continue;
            }

            $tokens->ensureWhitespaceAtIndex(
                $index - 1,
                1,
                self::LINE_NEXT === $this->configuration['position_after_control_structures'] ?
                    $this->whitespacesConfig->getLineEnding().$this->detectIndent($tokens, $index)
                    : ' '
            );
        }
    }

    private function fixDoWhile(Tokens $tokens)
    {
        for ($index = \count($tokens) - 1; 0 <= $index; --$index) {
            $token = $tokens[$index];

            if (!$token->isGivenKind(T_DO)) {
                continue;
            }

            $parenthesisEndIndex = $this->findParenthesisEnd($tokens, $index);
            $startBraceIndex = $tokens->getNextNonWhitespace($parenthesisEndIndex);
            $endBraceIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $startBraceIndex);
            $nextNonWhitespaceIndex = $tokens->getNextNonWhitespace($endBraceIndex);
            $nextNonWhitespaceToken = $tokens[$nextNonWhitespaceIndex];

            if (!$nextNonWhitespaceToken->isGivenKind(T_WHILE)) {
                continue;
            }

            $tokens->ensureWhitespaceAtIndex($nextNonWhitespaceIndex - 1, 1, ' ');
        }
    }

    private function fixIndents(Tokens $tokens)
    {
        $classyTokens = Token::getClassyTokenKinds();
        $classyAndFunctionTokens = array_merge([T_FUNCTION], $classyTokens);
        $controlTokens = $this->getControlTokens();
        $indentTokens = array_filter(
            array_merge($classyAndFunctionTokens, $controlTokens),
            static function ($item) {
                return T_SWITCH !== $item;
            }
        );
        $tokensAnalyzer = new TokensAnalyzer($tokens);

        for ($index = 0, $limit = \count($tokens); $index < $limit; ++$index) {
            $token = $tokens[$index];

            // if token is not a structure element - continue
            if (!$token->isGivenKind($indentTokens)) {
                continue;
            }

            // do not change indent for `while` in `do ... while ...`
            if (
                $token->isGivenKind(T_WHILE)
                && $tokensAnalyzer->isWhilePartOfDoWhile($index)
            ) {
                continue;
            }

            if (
                $this->configuration['allow_single_line_closure']
                && $token->isGivenKind(T_FUNCTION)
                && $tokensAnalyzer->isLambda($index)
            ) {
                $braceEndIndex = $tokens->findBlockEnd(
                    Tokens::BLOCK_TYPE_CURLY_BRACE,
                    $tokens->getNextTokenOfKind($index, ['{'])
                );

                if (!$this->isMultilined($tokens, $index, $braceEndIndex)) {
                    $index = $braceEndIndex;

                    continue;
                }
            }

            if ($token->isGivenKind($classyAndFunctionTokens)) {
                $startBraceIndex = $tokens->getNextTokenOfKind($index, [';', '{']);
                $startBraceToken = $tokens[$startBraceIndex];
            } else {
                $parenthesisEndIndex = $this->findParenthesisEnd($tokens, $index);
                $startBraceIndex = $tokens->getNextNonWhitespace($parenthesisEndIndex);
                $startBraceToken = $tokens[$startBraceIndex];
            }

            // structure without braces block - nothing to do, e.g. do { } while (true);
            if (!$startBraceToken->equals('{')) {
                continue;
            }

            $nextNonWhitespaceIndex = $tokens->getNextNonWhitespace($startBraceIndex, " \t");
            $nextNonWhitespace = $tokens[$nextNonWhitespaceIndex];

            /* if CLOSE_TAG is after { on the same line, do not indent. e.g. <?php if ($condition) { ?> */
            if ($nextNonWhitespace->isGivenKind(T_CLOSE_TAG)) {
                continue;
            }

            /* if CLOSE_TAG is after { on the next line and a comment on this line, do not indent. e.g. <?php if ($condition) { // \n?> */
            if ($nextNonWhitespace->isComment() && $tokens[$tokens->getNextMeaningfulToken($nextNonWhitespaceIndex)]->isGivenKind(T_CLOSE_TAG)) {
                continue;
            }

            $endBraceIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $startBraceIndex);

            $indent = $this->detectIndent($tokens, $index);

            // fix indent near closing brace
            $tokens->ensureWhitespaceAtIndex($endBraceIndex - 1, 1, $this->whitespacesConfig->getLineEnding().$indent);

            // fix indent between braces
            $lastCommaIndex = $tokens->getPrevTokenOfKind($endBraceIndex - 1, [';', '}']);

            $nestLevel = 1;
            for ($nestIndex = $lastCommaIndex; $nestIndex >= $startBraceIndex; --$nestIndex) {
                $nestToken = $tokens[$nestIndex];

                if ($nestToken->equalsAny([')', [CT::T_BRACE_CLASS_INSTANTIATION_CLOSE]])) {
                    $nestIndex = $tokens->findBlockStart(
                        $nestToken->equals(')') ? Tokens::BLOCK_TYPE_PARENTHESIS_BRACE : Tokens::BLOCK_TYPE_BRACE_CLASS_INSTANTIATION,
                        $nestIndex
                    );

                    continue;
                }

                if (1 === $nestLevel) {
                    // Next token is the beginning of a line that can be indented when
                    // the current token is a `;`, a `}` or the opening `{` of current
                    // scope. Current token may also be a comment that follows `;` or
                    // `}`, in which case indentation will only be fixed if this
                    // comment is followed by a newline.
                    $nextLineCanBeIndented = false;
                    if ($nestToken->equalsAny([';', '}'])) {
                        $nextLineCanBeIndented = true;
                    } elseif ($this->isCommentWithFixableIndentation($tokens, $nestIndex)) {
                        for ($i = $nestIndex; $i > $startBraceIndex; --$i) {
                            if ($tokens[$i]->equalsAny([';', '}'])) {
                                $nextLineCanBeIndented = true;

                                break;
                            }

                            if (!$tokens[$i]->isWhitespace() && !$tokens[$i]->isComment()) {
                                break;
                            }
                        }

                        if ($nextLineCanBeIndented || $i === $startBraceIndex) {
                            $nextToken = $tokens[$nestIndex + 1];
                            $nextLineCanBeIndented = $nextToken->isWhitespace() && 1 === Preg::match('/\R/', $nextToken->getContent());
                        }
                    }

                    if (!$nextLineCanBeIndented) {
                        continue;
                    }

                    $nextNonWhitespaceNestIndex = $tokens->getNextNonWhitespace($nestIndex);
                    $nextNonWhitespaceNestToken = $tokens[$nextNonWhitespaceNestIndex];

                    if (
                        // next Token is not a comment on its own line
                        !($nextNonWhitespaceNestToken->isComment() && (
                            !$tokens[$nextNonWhitespaceNestIndex - 1]->isWhitespace()
                            || !Preg::match('/\R/', $tokens[$nextNonWhitespaceNestIndex - 1]->getContent())
                        )) &&
                        // and it is not a `$foo = function () {};` situation
                        !($nestToken->equals('}') && $nextNonWhitespaceNestToken->equalsAny([';', ',', ']', [CT::T_ARRAY_SQUARE_BRACE_CLOSE]])) &&
                        // and it is not a `Foo::{bar}()` situation
                        !($nestToken->equals('}') && $nextNonWhitespaceNestToken->equals('(')) &&
                        // and it is not a `${"a"}->...` and `${"b{$foo}"}->...` situation
                        !($nestToken->equals('}') && $tokens[$nestIndex - 1]->equalsAny(['"', "'", [T_CONSTANT_ENCAPSED_STRING], [T_VARIABLE]])) &&
                        // and next token is not a closing tag that would break heredoc/nowdoc syntax
                        !($tokens[$nestIndex - 1]->isGivenKind(T_END_HEREDOC) && $nextNonWhitespaceNestToken->isGivenKind(T_CLOSE_TAG))
                    ) {
                        if (
                            (
                                self::LINE_NEXT !== $this->configuration['position_after_control_structures']
                                && $nextNonWhitespaceNestToken->isGivenKind($this->getControlContinuationTokens())
                                && !$tokens[$tokens->getPrevNonWhitespace($nextNonWhitespaceNestIndex)]->isComment()
                            )
                            || $nextNonWhitespaceNestToken->isGivenKind(T_CLOSE_TAG)
                            || (
                                self::LINE_NEXT !== $this->configuration['position_after_control_structures']
                                && $nextNonWhitespaceNestToken->isGivenKind(T_WHILE)
                                && $tokensAnalyzer->isWhilePartOfDoWhile($nextNonWhitespaceNestIndex)
                            )
                        ) {
                            $whitespace = ' ';
                        } else {
                            $nextToken = $tokens[$nestIndex + 1];
                            $nextWhitespace = '';

                            if ($nextToken->isWhitespace()) {
                                $nextWhitespace = rtrim($nextToken->getContent(), " \t");

                                if ('' !== $nextWhitespace) {
                                    $nextWhitespace = Preg::replace(
                                        sprintf('/%s$/', $this->whitespacesConfig->getLineEnding()),
                                        '',
                                        $nextWhitespace,
                                        1
                                    );
                                }
                            }

                            $whitespace = $nextWhitespace.$this->whitespacesConfig->getLineEnding().$indent;

                            if (!$nextNonWhitespaceNestToken->equals('}')) {
                                $determineIsIndentableBlockContent = static function ($contentIndex) use ($tokens) {
                                    if (!$tokens[$contentIndex]->isComment()) {
                                        return true;
                                    }

                                    if (!$tokens[$tokens->getPrevMeaningfulToken($contentIndex)]->equals(';')) {
                                        return true;
                                    }

                                    $nextIndex = $tokens->getNextMeaningfulToken($contentIndex);

                                    if (!$tokens[$nextIndex]->equals('}')) {
                                        return true;
                                    }

                                    $nextNextIndex = $tokens->getNextMeaningfulToken($nextIndex);

                                    if (null === $nextNextIndex) {
                                        return true;
                                    }

                                    if ($tokens[$nextNextIndex]->equalsAny([
                                        [T_ELSE],
                                        [T_ELSEIF],
                                        ',',
                                    ])) {
                                        return false;
                                    }

                                    return true;
                                };

                                // add extra indent only if current content is not a comment for content outside of current block
                                if ($determineIsIndentableBlockContent($nestIndex + 2)) {
                                    $whitespace .= $this->whitespacesConfig->getIndent();
                                }
                            }
                        }

                        $this->ensureWhitespaceAtIndexAndIndentMultilineComment($tokens, $nestIndex + 1, $whitespace);
                    }
                }

                if ($nestToken->equals('}')) {
                    ++$nestLevel;

                    continue;
                }

                if ($nestToken->equals('{')) {
                    --$nestLevel;

                    continue;
                }
            }

            // fix indent near opening brace
            if (isset($tokens[$startBraceIndex + 2]) && $tokens[$startBraceIndex + 2]->equals('}')) {
                $tokens->ensureWhitespaceAtIndex($startBraceIndex + 1, 0, $this->whitespacesConfig->getLineEnding().$indent);
            } else {
                $nextToken = $tokens[$startBraceIndex + 1];
                $nextNonWhitespaceToken = $tokens[$tokens->getNextNonWhitespace($startBraceIndex)];

                // set indent only if it is not a case, when comment is following { on same line
                if (
                    !$nextNonWhitespaceToken->isComment()
                    || ($nextToken->isWhitespace() && 1 === substr_count($nextToken->getContent(), "\n")) // preserve blank lines
                ) {
                    $this->ensureWhitespaceAtIndexAndIndentMultilineComment(
                        $tokens,
                        $startBraceIndex + 1,
                        $this->whitespacesConfig->getLineEnding().$indent.$this->whitespacesConfig->getIndent()
                    );
                }
            }

            if ($token->isGivenKind($classyTokens) && !$tokensAnalyzer->isAnonymousClass($index)) {
                if (self::LINE_SAME === $this->configuration['position_after_functions_and_oop_constructs'] && !$tokens[$tokens->getPrevNonWhitespace($startBraceIndex)]->isComment()) {
                    $ensuredWhitespace = ' ';
                } else {
                    $ensuredWhitespace = $this->whitespacesConfig->getLineEnding().$indent;
                }

                $tokens->ensureWhitespaceAtIndex($startBraceIndex - 1, 1, $ensuredWhitespace);
            } elseif (
                $token->isGivenKind(T_FUNCTION) && !$tokensAnalyzer->isLambda($index)
                || (
                    self::LINE_NEXT === $this->configuration['position_after_control_structures'] && $token->isGivenKind($controlTokens)
                    || (
                        self::LINE_NEXT === $this->configuration['position_after_anonymous_constructs']
                        && (
                            $token->isGivenKind(T_FUNCTION) && $tokensAnalyzer->isLambda($index)
                            || $token->isGivenKind(T_CLASS) && $tokensAnalyzer->isAnonymousClass($index)
                        )
                    )
                )
            ) {
                $isAnonymousClass = $token->isGivenKind($classyTokens) && $tokensAnalyzer->isAnonymousClass($index);

                $closingParenthesisIndex = $tokens->getPrevTokenOfKind($startBraceIndex, [')']);
                if (null === $closingParenthesisIndex && !$isAnonymousClass) {
                    continue;
                }

                if (
                    !$isAnonymousClass
                    && $tokens[$closingParenthesisIndex - 1]->isWhitespace()
                    && false !== strpos($tokens[$closingParenthesisIndex - 1]->getContent(), "\n")
                ) {
                    if (!$tokens[$startBraceIndex - 2]->isComment()) {
                        $tokens->ensureWhitespaceAtIndex($startBraceIndex - 1, 1, ' ');
                    }
                } else {
                    if (
                        self::LINE_SAME === $this->configuration['position_after_functions_and_oop_constructs']
                        && (
                            $token->isGivenKind(T_FUNCTION) && !$tokensAnalyzer->isLambda($index)
                            || $token->isGivenKind($classyTokens) && !$tokensAnalyzer->isAnonymousClass($index)
                        )
                        && !$tokens[$tokens->getPrevNonWhitespace($startBraceIndex)]->isComment()
                    ) {
                        $ensuredWhitespace = ' ';
                    } else {
                        $ensuredWhitespace = $this->whitespacesConfig->getLineEnding().$indent;
                    }

                    $tokens->ensureWhitespaceAtIndex($startBraceIndex - 1, 1, $ensuredWhitespace);
                }
            } else {
                $tokens->ensureWhitespaceAtIndex($startBraceIndex - 1, 1, ' ');
            }

            // reset loop limit due to collection change
            $limit = \count($tokens);
        }
    }

    private function fixMissingControlBraces(Tokens $tokens)
    {
        $controlTokens = $this->getControlTokens();

        for ($index = $tokens->count() - 1; 0 <= $index; --$index) {
            $token = $tokens[$index];

            if (!$token->isGivenKind($controlTokens)) {
                continue;
            }

            $parenthesisEndIndex = $this->findParenthesisEnd($tokens, $index);
            $nextAfterParenthesisEndIndex = $tokens->getNextMeaningfulToken($parenthesisEndIndex);
            $tokenAfterParenthesis = $tokens[$nextAfterParenthesisEndIndex];

            // if Token after parenthesis is { then we do not need to insert brace, but to fix whitespace before it
            if ($tokenAfterParenthesis->equals('{') && self::LINE_SAME === $this->configuration['position_after_control_structures']) {
                $tokens->ensureWhitespaceAtIndex($parenthesisEndIndex + 1, 0, ' ');

                continue;
            }

            // do not add braces for cases:
            // - structure without block, e.g. while ($iter->next());
            // - structure with block, e.g. while ($i) {...}, while ($i) : {...} endwhile;
            if ($tokenAfterParenthesis->equalsAny([';', '{', ':'])) {
                continue;
            }

            // do not add for short 'if' followed by alternative loop,
            // for example: if ($a) while ($b): ? > X < ?php endwhile; ? >
            if ($tokenAfterParenthesis->isGivenKind([T_FOR, T_FOREACH, T_SWITCH, T_WHILE])) {
                $tokenAfterParenthesisBlockEnd = $tokens->findBlockEnd( // go to ')'
                    Tokens::BLOCK_TYPE_PARENTHESIS_BRACE,
                    $tokens->getNextMeaningfulToken($nextAfterParenthesisEndIndex)
                );

                if ($tokens[$tokens->getNextMeaningfulToken($tokenAfterParenthesisBlockEnd)]->equals(':')) {
                    continue;
                }
            }

            $statementEndIndex = $this->findStatementEnd($tokens, $parenthesisEndIndex);

            // insert closing brace
            $tokens->insertAt($statementEndIndex + 1, [new Token([T_WHITESPACE, ' ']), new Token('}')]);

            // insert missing `;` if needed
            if (!$tokens[$statementEndIndex]->equalsAny([';', '}'])) {
                $tokens->insertAt($statementEndIndex + 1, new Token(';'));
            }

            // insert opening brace
            $tokens->insertAt($parenthesisEndIndex + 1, new Token('{'));
            $tokens->ensureWhitespaceAtIndex($parenthesisEndIndex + 1, 0, ' ');
        }
    }

    private function fixSpaceAroundToken(Tokens $tokens)
    {
        $controlTokens = $this->getControlTokens();

        for ($index = $tokens->count() - 1; 0 <= $index; --$index) {
            $token = $tokens[$index];

            // Declare tokens don't follow the same rules are other control statements
            if ($token->isGivenKind(T_DECLARE)) {
                $this->fixDeclareStatement($tokens, $index);
            } elseif ($token->isGivenKind($controlTokens) || $token->isGivenKind(CT::T_USE_LAMBDA)) {
                $nextNonWhitespaceIndex = $tokens->getNextNonWhitespace($index);

                if (!$tokens[$nextNonWhitespaceIndex]->equals(':')) {
                    $tokens->ensureWhitespaceAtIndex(
                        $index + 1,
                        0,
                        self::LINE_NEXT === $this->configuration['position_after_control_structures'] && !$tokens[$nextNonWhitespaceIndex]->equals('(') ?
                            $this->whitespacesConfig->getLineEnding().$this->detectIndent($tokens, $index)
                            : ' '
                    );
                }

                $prevToken = $tokens[$index - 1];

                if (!$prevToken->isWhitespace() && !$prevToken->isComment() && !$prevToken->isGivenKind(T_OPEN_TAG)) {
                    $tokens->ensureWhitespaceAtIndex($index - 1, 1, ' ');
                }
            }
        }
    }

    /**
     * @param int $index
     *
     * @return string
     */
    private function detectIndent(Tokens $tokens, $index)
    {
        while (true) {
            $whitespaceIndex = $tokens->getPrevTokenOfKind($index, [[T_WHITESPACE]]);

            if (null === $whitespaceIndex) {
                return '';
            }

            $whitespaceToken = $tokens[$whitespaceIndex];

            if (false !== strpos($whitespaceToken->getContent(), "\n")) {
                break;
            }

            $prevToken = $tokens[$whitespaceIndex - 1];

            if ($prevToken->isGivenKind([T_OPEN_TAG, T_COMMENT]) && "\n" === substr($prevToken->getContent(), -1)) {
                break;
            }

            $index = $whitespaceIndex;
        }

        $explodedContent = explode("\n", $whitespaceToken->getContent());

        return end($explodedContent);
    }

    /**
     * @param int $structureTokenIndex
     *
     * @return int
     */
    private function findParenthesisEnd(Tokens $tokens, $structureTokenIndex)
    {
        $nextIndex = $tokens->getNextMeaningfulToken($structureTokenIndex);
        $nextToken = $tokens[$nextIndex];

        // return if next token is not opening parenthesis
        if (!$nextToken->equals('(')) {
            return $structureTokenIndex;
        }

        return $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $nextIndex);
    }

    /**
     * @param int $parenthesisEndIndex
     *
     * @return int
     */
    private function findStatementEnd(Tokens $tokens, $parenthesisEndIndex)
    {
        $nextIndex = $tokens->getNextMeaningfulToken($parenthesisEndIndex);
        $nextToken = $tokens[$nextIndex];

        if (!$nextToken) {
            return $parenthesisEndIndex;
        }

        if ($nextToken->equals('{')) {
            return $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $nextIndex);
        }

        if ($nextToken->isGivenKind($this->getControlTokens())) {
            $parenthesisEndIndex = $this->findParenthesisEnd($tokens, $nextIndex);

            $endIndex = $this->findStatementEnd($tokens, $parenthesisEndIndex);

            if ($nextToken->isGivenKind([T_IF, T_TRY, T_DO])) {
                $openingTokenKind = $nextToken->getId();

                while (true) {
                    $nextIndex = $tokens->getNextMeaningfulToken($endIndex);
                    $nextToken = isset($nextIndex) ? $tokens[$nextIndex] : null;
                    if ($nextToken && $nextToken->isGivenKind($this->getControlContinuationTokensForOpeningToken($openingTokenKind))) {
                        $parenthesisEndIndex = $this->findParenthesisEnd($tokens, $nextIndex);

                        $endIndex = $this->findStatementEnd($tokens, $parenthesisEndIndex);

                        if ($nextToken->isGivenKind($this->getFinalControlContinuationTokensForOpeningToken($openingTokenKind))) {
                            return $endIndex;
                        }
                    } else {
                        break;
                    }
                }
            }

            return $endIndex;
        }

        $index = $parenthesisEndIndex;

        while (true) {
            $token = $tokens[++$index];

            // if there is some block in statement (eg lambda function) we need to skip it
            if ($token->equals('{')) {
                $index = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $index);

                continue;
            }

            if ($token->equals(';')) {
                return $index;
            }

            if ($token->isGivenKind(T_CLOSE_TAG)) {
                return $tokens->getPrevNonWhitespace($index);
            }
        }
    }

    private function getControlTokens()
    {
        static $tokens = [
            T_DECLARE,
            T_DO,
            T_ELSE,
            T_ELSEIF,
            T_FINALLY,
            T_FOR,
            T_FOREACH,
            T_IF,
            T_WHILE,
            T_TRY,
            T_CATCH,
            T_SWITCH,
        ];

        return $tokens;
    }

    private function getControlContinuationTokens()
    {
        static $tokens = [
            T_CATCH,
            T_ELSE,
            T_ELSEIF,
            T_FINALLY,
        ];

        return $tokens;
    }

    private function getControlContinuationTokensForOpeningToken($openingTokenKind)
    {
        if (T_IF === $openingTokenKind) {
            return [
                T_ELSE,
                T_ELSEIF,
            ];
        }

        if (T_DO === $openingTokenKind) {
            return [T_WHILE];
        }

        if (T_TRY === $openingTokenKind) {
            return [
                T_CATCH,
                T_FINALLY,
            ];
        }

        return [];
    }

    private function getFinalControlContinuationTokensForOpeningToken($openingTokenKind)
    {
        if (T_IF === $openingTokenKind) {
            return [T_ELSE];
        }

        if (T_TRY === $openingTokenKind) {
            return [T_FINALLY];
        }

        return [];
    }

    /**
     * @param int $index
     */
    private function fixDeclareStatement(Tokens $tokens, $index)
    {
        $tokens->removeTrailingWhitespace($index);

        $startParenthesisIndex = $tokens->getNextTokenOfKind($index, ['(']);
        $tokens->removeTrailingWhitespace($startParenthesisIndex);

        $endParenthesisIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $startParenthesisIndex);
        $tokens->removeLeadingWhitespace($endParenthesisIndex);

        $startBraceIndex = $tokens->getNextTokenOfKind($endParenthesisIndex, [';', '{']);
        $startBraceToken = $tokens[$startBraceIndex];

        if ($startBraceToken->equals('{')) {
            $this->fixSingleLineWhitespaceForDeclare($tokens, $startBraceIndex);
        }
    }

    /**
     * @param int $startBraceIndex
     */
    private function fixSingleLineWhitespaceForDeclare(Tokens $tokens, $startBraceIndex)
    {
        // fix single-line whitespace before {
        // eg: `declare(ticks=1){` => `declare(ticks=1) {`
        // eg: `declare(ticks=1)   {` => `declare(ticks=1) {`
        if (
            !$tokens[$startBraceIndex - 1]->isWhitespace() ||
            $tokens[$startBraceIndex - 1]->isWhitespace(" \t")
        ) {
            $tokens->ensureWhitespaceAtIndex($startBraceIndex - 1, 1, ' ');
        }
    }

    /**
     * @param int    $index
     * @param string $whitespace
     */
    private function ensureWhitespaceAtIndexAndIndentMultilineComment(Tokens $tokens, $index, $whitespace)
    {
        if ($tokens[$index]->isWhitespace()) {
            $nextTokenIndex = $tokens->getNextNonWhitespace($index);
        } else {
            $nextTokenIndex = $index;
        }

        $nextToken = $tokens[$nextTokenIndex];
        if ($nextToken->isComment()) {
            $previousToken = $tokens[$nextTokenIndex - 1];
            $nextTokenContent = $nextToken->getContent();

            // do not indent inline comments used to comment out unused code
            if (
                $previousToken->isWhitespace()
                && 1 === Preg::match('/\R$/', $previousToken->getContent())
                && (
                    (0 === strpos($nextTokenContent, '//'.$this->whitespacesConfig->getIndent()) || '//' === $nextTokenContent)
                    || (0 === strpos($nextTokenContent, '#'.$this->whitespacesConfig->getIndent()) || '#' === $nextTokenContent)
                )
            ) {
                return;
            }

            $tokens[$nextTokenIndex] = new Token([
                $nextToken->getId(),
                Preg::replace(
                    '/(\R)'.$this->detectIndent($tokens, $nextTokenIndex).'(\h*\S+.*)/',
                    '$1'.Preg::replace('/^.*\R(\h*)$/s', '$1', $whitespace).'$2',
                    $nextToken->getContent()
                ),
            ]);
        }

        $tokens->ensureWhitespaceAtIndex($index, 0, $whitespace);
    }

    /**
     * @param int $startParenthesisIndex
     * @param int $endParenthesisIndex
     *
     * @return bool
     */
    private function isMultilined(Tokens $tokens, $startParenthesisIndex, $endParenthesisIndex)
    {
        for ($i = $startParenthesisIndex; $i < $endParenthesisIndex; ++$i) {
            if (false !== strpos($tokens[$i]->getContent(), "\n")) {
                return true;
            }
        }

        return false;
    }

    /**
     * Returns whether the token at given index is a comment whose indentation
     * can be fixed.
     *
     * Indentation of a comment is not changed when the comment is part of a
     * multi-line message whose lines are all single-line comments and at least
     * one line has meaningful content.
     *
     * @param int $index
     *
     * @return bool
     */
    private function isCommentWithFixableIndentation(Tokens $tokens, $index)
    {
        if (!$tokens[$index]->isComment()) {
            return false;
        }

        if (0 === strpos($tokens[$index]->getContent(), '/*')) {
            return true;
        }

        $firstCommentIndex = $index;
        while (true) {
            $i = $this->getSiblingContinuousSingleLineComment($tokens, $firstCommentIndex, false);
            if (null === $i) {
                break;
            }

            $firstCommentIndex = $i;
        }

        $lastCommentIndex = $index;
        while (true) {
            $i = $this->getSiblingContinuousSingleLineComment($tokens, $lastCommentIndex, true);
            if (null === $i) {
                break;
            }

            $lastCommentIndex = $i;
        }

        if ($firstCommentIndex === $lastCommentIndex) {
            return true;
        }

        for ($i = $firstCommentIndex + 1; $i < $lastCommentIndex; ++$i) {
            if (!$tokens[$i]->isWhitespace() && !$tokens[$i]->isComment()) {
                return false;
            }
        }

        return true;
    }

    /**
     * @param int  $index
     * @param bool $after
     *
     * @return null|int
     */
    private function getSiblingContinuousSingleLineComment(Tokens $tokens, $index, $after)
    {
        $siblingIndex = $index;
        do {
            if ($after) {
                $siblingIndex = $tokens->getNextTokenOfKind($siblingIndex, [[T_COMMENT]]);
            } else {
                $siblingIndex = $tokens->getPrevTokenOfKind($siblingIndex, [[T_COMMENT]]);
            }

            if (null === $siblingIndex) {
                return null;
            }
        } while (0 === strpos($tokens[$siblingIndex]->getContent(), '/*'));

        $newLines = 0;
        for ($i = min($siblingIndex, $index) + 1, $max = max($siblingIndex, $index); $i < $max; ++$i) {
            if ($tokens[$i]->isWhitespace() && Preg::match('/\R/', $tokens[$i]->getContent())) {
                if (1 === $newLines || Preg::match('/\R.*\R/', $tokens[$i]->getContent())) {
                    return null;
                }

                ++$newLines;
            }
        }

        return $siblingIndex;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer;

use PhpCsFixer\WhitespacesFixerConfig;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
interface WhitespacesAwareFixerInterface extends FixerInterface
{
    public function setWhitespacesConfig(WhitespacesFixerConfig $config);
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\StringNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Dave van der Brugge <dmvdbrugge@gmail.com>
 */
final class SimpleToComplexStringVariableFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Converts explicit variables in double-quoted strings and heredoc syntax from simple to complex format (`${` to `{$`).',
            [
                new CodeSample(
                    <<<'EOT'
<?php
$name = 'World';
echo "Hello ${name}!";

EOT
                ),
                new CodeSample(
                    <<<'EOT'
<?php
$name = 'World';
echo <<<TEST
Hello ${name}!
TEST;

EOT
                ),
            ],
            "Doesn't touch implicit variables. Works together nicely with `explicit_string_variable`."
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run after ExplicitStringVariableFixer.
     */
    public function getPriority()
    {
        return -10;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_DOLLAR_OPEN_CURLY_BRACES);
    }

    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        for ($index = \count($tokens) - 3; $index > 0; --$index) {
            $token = $tokens[$index];

            if (!$token->isGivenKind(T_DOLLAR_OPEN_CURLY_BRACES)) {
                continue;
            }

            $varnameToken = $tokens[$index + 1];

            if (!$varnameToken->isGivenKind(T_STRING_VARNAME)) {
                continue;
            }

            $dollarCloseToken = $tokens[$index + 2];

            if (!$dollarCloseToken->isGivenKind(CT::T_DOLLAR_CLOSE_CURLY_BRACES)) {
                continue;
            }

            $tokenOfStringBeforeToken = $tokens[$index - 1];
            $stringContent = $tokenOfStringBeforeToken->getContent();

            if ('$' === substr($stringContent, -1) && '\\$' !== substr($stringContent, -2)) {
                $newContent = substr($stringContent, 0, -1).'\\$';
                $tokenOfStringBeforeToken = new Token([T_ENCAPSED_AND_WHITESPACE, $newContent]);
            }

            $tokens->overrideRange($index - 1, $index + 2, [
                $tokenOfStringBeforeToken,
                new Token([T_CURLY_OPEN, '{']),
                new Token([T_VARIABLE, '$'.$varnameToken->getContent()]),
                new Token([CT::T_CURLY_CLOSE, '}']),
            ]);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\StringNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author ntzm
 */
final class NoBinaryStringFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound([T_CONSTANT_ENCAPSED_STRING, T_START_HEREDOC]);
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'There should not be a binary flag before strings.',
            [
                new CodeSample("<?php \$a = b'foo';\n"),
                new CodeSample("<?php \$a = b<<<EOT\nfoo\nEOT;\n"),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if (!$token->isGivenKind([T_CONSTANT_ENCAPSED_STRING, T_START_HEREDOC])) {
                continue;
            }

            $content = $token->getContent();

            if ('b' === strtolower($content[0])) {
                $tokens[$index] = new Token([$token->getId(), substr($content, 1)]);
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\StringNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Filippo Tessarotto <zoeslam@gmail.com>
 */
final class ExplicitStringVariableFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Converts implicit variables into explicit ones in double-quoted strings or heredoc syntax.',
            [new CodeSample(
                <<<'EOT'
<?php
$a = "My name is $name !";
$b = "I live in $state->country !";
$c = "I have $farm[0] chickens !";

EOT
            )],
            'The reasoning behind this rule is the following:'
                ."\n".'- When there are two valid ways of doing the same thing, using both is confusing, there should be a coding standard to follow'
                ."\n".'- PHP manual marks `"$var"` syntax as implicit and `"${var}"` syntax as explicit: explicit code should always be preferred'
                ."\n".'- Explicit syntax allows word concatenation inside strings, e.g. `"${var}IsAVar"`, implicit doesn\'t'
                ."\n".'- Explicit syntax is easier to detect for IDE/editors and therefore has colors/highlight with higher contrast, which is easier to read'
            ."\n".'Backtick operator is skipped because it is harder to handle; you can use `backtick_to_shell_exec` fixer to normalize backticks to strings'
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before SimpleToComplexStringVariableFixer.
     * Must run after BacktickToShellExecFixer.
     */
    public function getPriority()
    {
        return 0;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_VARIABLE);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $backtickStarted = false;
        for ($index = \count($tokens) - 1; $index > 0; --$index) {
            $token = $tokens[$index];
            if ($token->equals('`')) {
                $backtickStarted = !$backtickStarted;

                continue;
            }

            if ($backtickStarted || !$token->isGivenKind(T_VARIABLE)) {
                continue;
            }

            $prevToken = $tokens[$index - 1];
            if (!$this->isStringPartToken($prevToken)) {
                continue;
            }

            $distinctVariableIndex = $index;
            $variableTokens = [
                $distinctVariableIndex => [
                    'tokens' => [$index => $token],
                    'firstVariableTokenIndex' => $index,
                    'lastVariableTokenIndex' => $index,
                ],
            ];

            $nextIndex = $index + 1;
            $squareBracketCount = 0;
            while (!$this->isStringPartToken($tokens[$nextIndex])) {
                if ($tokens[$nextIndex]->isGivenKind(T_CURLY_OPEN)) {
                    $nextIndex = $tokens->getNextTokenOfKind($nextIndex, [[CT::T_CURLY_CLOSE]]);
                } elseif ($tokens[$nextIndex]->isGivenKind(T_VARIABLE) && 1 !== $squareBracketCount) {
                    $distinctVariableIndex = $nextIndex;
                    $variableTokens[$distinctVariableIndex] = [
                        'tokens' => [$nextIndex => $tokens[$nextIndex]],
                        'firstVariableTokenIndex' => $nextIndex,
                        'lastVariableTokenIndex' => $nextIndex,
                    ];
                } else {
                    $variableTokens[$distinctVariableIndex]['tokens'][$nextIndex] = $tokens[$nextIndex];
                    $variableTokens[$distinctVariableIndex]['lastVariableTokenIndex'] = $nextIndex;

                    if ($tokens[$nextIndex]->equalsAny(['[', ']'])) {
                        ++$squareBracketCount;
                    }
                }

                ++$nextIndex;
            }
            krsort($variableTokens, \SORT_NUMERIC);

            foreach ($variableTokens as $distinctVariableSet) {
                if (1 === \count($distinctVariableSet['tokens'])) {
                    $singleVariableIndex = key($distinctVariableSet['tokens']);
                    $singleVariableToken = current($distinctVariableSet['tokens']);
                    $tokens->overrideRange($singleVariableIndex, $singleVariableIndex, [
                        new Token([T_DOLLAR_OPEN_CURLY_BRACES, '${']),
                        new Token([T_STRING_VARNAME, substr($singleVariableToken->getContent(), 1)]),
                        new Token([CT::T_DOLLAR_CLOSE_CURLY_BRACES, '}']),
                    ]);
                } else {
                    foreach ($distinctVariableSet['tokens'] as $variablePartIndex => $variablePartToken) {
                        if ($variablePartToken->isGivenKind(T_NUM_STRING)) {
                            $tokens[$variablePartIndex] = new Token([T_LNUMBER, $variablePartToken->getContent()]);

                            continue;
                        }

                        if ($variablePartToken->isGivenKind(T_STRING) && $tokens[$variablePartIndex + 1]->equals(']')) {
                            $tokens[$variablePartIndex] = new Token([T_CONSTANT_ENCAPSED_STRING, "'".$variablePartToken->getContent()."'"]);
                        }
                    }

                    $tokens->insertAt($distinctVariableSet['lastVariableTokenIndex'] + 1, new Token([CT::T_CURLY_CLOSE, '}']));
                    $tokens->insertAt($distinctVariableSet['firstVariableTokenIndex'], new Token([T_CURLY_OPEN, '{']));
                }
            }
        }
    }

    /**
     * Check if token is a part of a string.
     *
     * @param Token $token The token to check
     *
     * @return bool
     */
    private function isStringPartToken(Token $token)
    {
        return $token->isGivenKind(T_ENCAPSED_AND_WHITESPACE)
            || $token->isGivenKind(T_START_HEREDOC)
            || '"' === $token->getContent()
            || 'b"' === strtolower($token->getContent())
        ;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\StringNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Gregor Harlan <gharlan@web.de>
 */
final class HeredocToNowdocFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Convert `heredoc` to `nowdoc` where possible.',
            [
                new CodeSample(
                    <<<'EOF'
<?php $a = <<<"TEST"
Foo
TEST;

EOF
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run after EscapeImplicitBackslashesFixer.
     */
    public function getPriority()
    {
        return 0;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_START_HEREDOC);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if (!$token->isGivenKind(T_START_HEREDOC) || false !== strpos($token->getContent(), "'")) {
                continue;
            }

            if ($tokens[$index + 1]->isGivenKind(T_END_HEREDOC)) {
                $tokens[$index] = $this->convertToNowdoc($token);

                continue;
            }

            if (
                !$tokens[$index + 1]->isGivenKind(T_ENCAPSED_AND_WHITESPACE) ||
                !$tokens[$index + 2]->isGivenKind(T_END_HEREDOC)
            ) {
                continue;
            }

            $content = $tokens[$index + 1]->getContent();
            // regex: odd number of backslashes, not followed by dollar
            if (Preg::match('/(?<!\\\\)(?:\\\\{2})*\\\\(?![$\\\\])/', $content)) {
                continue;
            }

            $tokens[$index] = $this->convertToNowdoc($token);
            $content = str_replace(['\\\\', '\\$'], ['\\', '$'], $content);
            $tokens[$index + 1] = new Token([
                $tokens[$index + 1]->getId(),
                $content,
            ]);
        }
    }

    /**
     * Transforms the heredoc start token to nowdoc notation.
     *
     * @return Token
     */
    private function convertToNowdoc(Token $token)
    {
        return new Token([
            $token->getId(),
            Preg::replace('/^([Bb]?<<<)(\h*)"?([^\s"]+)"?/', '$1$2\'$3\'', $token->getContent()),
        ]);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\StringNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Gregor Harlan <gharlan@web.de>
 */
final class SingleQuoteFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        $codeSample = <<<'EOF'
<?php

$a = "sample";
$b = "sample with 'single-quotes'";

EOF;

        return new FixerDefinition(
            'Convert double quotes to single quotes for simple strings.',
            [
                new CodeSample($codeSample),
                new CodeSample(
                    $codeSample,
                    ['strings_containing_single_quote_chars' => true]
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run after EscapeImplicitBackslashesFixer.
     */
    public function getPriority()
    {
        return 0;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_CONSTANT_ENCAPSED_STRING);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if (!$token->isGivenKind(T_CONSTANT_ENCAPSED_STRING)) {
                continue;
            }

            $content = $token->getContent();
            $prefix = '';

            if ('b' === strtolower($content[0])) {
                $prefix = $content[0];
                $content = substr($content, 1);
            }

            if (
                '"' === $content[0] &&
                (true === $this->configuration['strings_containing_single_quote_chars'] || false === strpos($content, "'")) &&
                // regex: odd number of backslashes, not followed by double quote or dollar
                !Preg::match('/(?<!\\\\)(?:\\\\{2})*\\\\(?!["$\\\\])/', $content)
            ) {
                $content = substr($content, 1, -1);
                $content = str_replace(['\\"', '\\$', '\''], ['"', '$', '\\\''], $content);
                $tokens[$index] = new Token([T_CONSTANT_ENCAPSED_STRING, $prefix.'\''.$content.'\'']);
            }
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('strings_containing_single_quote_chars', 'Whether to fix double-quoted strings that contains single-quotes.'))
                ->setAllowedTypes(['bool'])
                ->setDefault(false)
                ->getOption(),
        ]);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\StringNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Filippo Tessarotto <zoeslam@gmail.com>
 */
final class EscapeImplicitBackslashesFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        $codeSample = <<<'EOF'
<?php

$singleQuoted = 'String with \" and My\Prefix\\';

$doubleQuoted = "Interpret my \n but not my \a";

$hereDoc = <<<HEREDOC
Interpret my \100 but not my \999
HEREDOC;

EOF;

        return new FixerDefinition(
            'Escape implicit backslashes in strings and heredocs to ease the understanding of which are special chars interpreted by PHP and which not.',
            [
                new CodeSample($codeSample),
                new CodeSample(
                    $codeSample,
                    ['single_quoted' => true]
                ),
                new CodeSample(
                    $codeSample,
                    ['double_quoted' => false]
                ),
                new CodeSample(
                    $codeSample,
                    ['heredoc_syntax' => false]
                ),
            ],
            'In PHP double-quoted strings and heredocs some chars like `n`, `$` or `u` have special meanings if preceded by a backslash '
            .'(and some are special only if followed by other special chars), while a backslash preceding other chars are interpreted like a plain '
            .'backslash. The precise list of those special chars is hard to remember and to identify quickly: this fixer escapes backslashes '
            ."that do not start a special interpretation with the char after them.\n"
            .'It is possible to fix also single-quoted strings: in this case there is no special chars apart from single-quote and backslash '
            .'itself, so the fixer simply ensure that all backslashes are escaped. Both single and double backslashes are allowed in single-quoted '
            .'strings, so the purpose in this context is mainly to have a uniformed way to have them written all over the codebase.'
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound([T_ENCAPSED_AND_WHITESPACE, T_CONSTANT_ENCAPSED_STRING]);
    }

    /**
     * {@inheritdoc}
     *
     * Must run before HeredocToNowdocFixer, SingleQuoteFixer.
     * Must run after BacktickToShellExecFixer.
     */
    public function getPriority()
    {
        return 1;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        static $singleQuotedRegex = '/(?<!\\\\)\\\\((?:\\\\\\\\)*)(?![\\\'\\\\])/';
        static $doubleQuotedRegex = '/(?<!\\\\)\\\\((?:\\\\\\\\)*)(?![efnrtv$"\\\\0-7]|x[0-9A-Fa-f]|u{)/';
        static $heredocSyntaxRegex = '/(?<!\\\\)\\\\((?:\\\\\\\\)*)(?![efnrtv$\\\\0-7]|x[0-9A-Fa-f]|u{)/';

        $doubleQuoteOpened = false;
        foreach ($tokens as $index => $token) {
            $content = $token->getContent();
            if ($token->equalsAny(['"', 'b"', 'B"'])) {
                $doubleQuoteOpened = !$doubleQuoteOpened;
            }
            if (!$token->isGivenKind([T_ENCAPSED_AND_WHITESPACE, T_CONSTANT_ENCAPSED_STRING]) || false === strpos($content, '\\')) {
                continue;
            }

            // Nowdoc syntax
            if ($token->isGivenKind(T_ENCAPSED_AND_WHITESPACE) && '\'' === substr(rtrim($tokens[$index - 1]->getContent()), -1)) {
                continue;
            }

            $firstTwoCharacters = strtolower(substr($content, 0, 2));
            $isSingleQuotedString = $token->isGivenKind(T_CONSTANT_ENCAPSED_STRING) && ('\'' === $content[0] || 'b\'' === $firstTwoCharacters);
            $isDoubleQuotedString =
                ($token->isGivenKind(T_CONSTANT_ENCAPSED_STRING) && ('"' === $content[0] || 'b"' === $firstTwoCharacters))
                || ($token->isGivenKind(T_ENCAPSED_AND_WHITESPACE) && $doubleQuoteOpened)
            ;
            $isHeredocSyntax = !$isSingleQuotedString && !$isDoubleQuotedString;
            if (
                (false === $this->configuration['single_quoted'] && $isSingleQuotedString)
                || (false === $this->configuration['double_quoted'] && $isDoubleQuotedString)
                || (false === $this->configuration['heredoc_syntax'] && $isHeredocSyntax)
            ) {
                continue;
            }

            $regex = $heredocSyntaxRegex;
            if ($isSingleQuotedString) {
                $regex = $singleQuotedRegex;
            } elseif ($isDoubleQuotedString) {
                $regex = $doubleQuotedRegex;
            }

            $newContent = Preg::replace($regex, '\\\\\\\\$1', $content);
            if ($newContent !== $content) {
                $tokens[$index] = new Token([$token->getId(), $newContent]);
            }
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('single_quoted', 'Whether to fix single-quoted strings.'))
                ->setAllowedTypes(['bool'])
                ->setDefault(false)
                ->getOption(),
            (new FixerOptionBuilder('double_quoted', 'Whether to fix double-quoted strings.'))
                ->setAllowedTypes(['bool'])
                ->setDefault(true)
                ->getOption(),
            (new FixerOptionBuilder('heredoc_syntax', 'Whether to fix heredoc syntax.'))
                ->setAllowedTypes(['bool'])
                ->setDefault(true)
                ->getOption(),
        ]);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\StringNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * Fixes the line endings in multi-line strings.
 *
 * @author Ilija Tovilo <ilija.tovilo@me.com>
 */
final class StringLineEndingFixer extends AbstractFixer implements WhitespacesAwareFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound([T_CONSTANT_ENCAPSED_STRING, T_ENCAPSED_AND_WHITESPACE, T_INLINE_HTML]);
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'All multi-line strings must use correct line ending.',
            [
                new CodeSample(
                    "<?php \$a = 'my\r\nmulti\nline\r\nstring';\r\n"
                ),
            ],
            null,
            'Changing the line endings of multi-line strings might affect string comparisons and outputs.'
        );
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $ending = $this->whitespacesConfig->getLineEnding();

        foreach ($tokens as $tokenIndex => $token) {
            if (!$token->isGivenKind([T_CONSTANT_ENCAPSED_STRING, T_ENCAPSED_AND_WHITESPACE, T_INLINE_HTML])) {
                continue;
            }

            $tokens[$tokenIndex] = new Token([
                $token->getId(),
                Preg::replace(
                    '#\R#u',
                    $ending,
                    $token->getContent()
                ),
            ]);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\DoctrineAnnotation;

use Doctrine\Common\Annotations\DocLexer;
use PhpCsFixer\AbstractDoctrineAnnotationFixer;
use PhpCsFixer\Doctrine\Annotation\Tokens;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;

final class DoctrineAnnotationIndentationFixer extends AbstractDoctrineAnnotationFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Doctrine annotations must be indented with four spaces.',
            [
                new CodeSample("<?php\n/**\n *  @Foo(\n *   foo=\"foo\"\n *  )\n */\nclass Bar {}\n"),
                new CodeSample(
                    "<?php\n/**\n *  @Foo({@Bar,\n *   @Baz})\n */\nclass Bar {}\n",
                    ['indent_mixed_lines' => true]
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver(array_merge(
            parent::createConfigurationDefinition()->getOptions(),
            [
                (new FixerOptionBuilder('indent_mixed_lines', 'Whether to indent lines that have content before closing parenthesis.'))
                    ->setAllowedTypes(['bool'])
                    ->setDefault(false)
                    ->getOption(),
            ]
        ));
    }

    /**
     * {@inheritdoc}
     */
    protected function fixAnnotations(Tokens $tokens)
    {
        $annotationPositions = [];
        for ($index = 0, $max = \count($tokens); $index < $max; ++$index) {
            if (!$tokens[$index]->isType(DocLexer::T_AT)) {
                continue;
            }

            $annotationEndIndex = $tokens->getAnnotationEnd($index);
            if (null === $annotationEndIndex) {
                return;
            }

            $annotationPositions[] = [$index, $annotationEndIndex];
            $index = $annotationEndIndex;
        }

        $indentLevel = 0;
        foreach ($tokens as $index => $token) {
            if (!$token->isType(DocLexer::T_NONE) || false === strpos($token->getContent(), "\n")) {
                continue;
            }

            if (!$this->indentationCanBeFixed($tokens, $index, $annotationPositions)) {
                continue;
            }

            $braces = $this->getLineBracesCount($tokens, $index);
            $delta = $braces[0] - $braces[1];
            $mixedBraces = 0 === $delta && $braces[0] > 0;
            $extraIndentLevel = 0;

            if ($indentLevel > 0 && ($delta < 0 || $mixedBraces)) {
                --$indentLevel;

                if ($this->configuration['indent_mixed_lines'] && $this->isClosingLineWithMeaningfulContent($tokens, $index)) {
                    $extraIndentLevel = 1;
                }
            }

            $token->setContent(Preg::replace(
                '/(\n( +\*)?) *$/',
                '$1'.str_repeat(' ', 4 * ($indentLevel + $extraIndentLevel) + 1),
                $token->getContent()
            ));

            if ($delta > 0 || $mixedBraces) {
                ++$indentLevel;
            }
        }
    }

    /**
     * @param int $index
     *
     * @return int[]
     */
    private function getLineBracesCount(Tokens $tokens, $index)
    {
        $opening = 0;
        $closing = 0;

        while (isset($tokens[++$index])) {
            $token = $tokens[$index];
            if ($token->isType(DocLexer::T_NONE) && false !== strpos($token->getContent(), "\n")) {
                break;
            }

            if ($token->isType([DocLexer::T_OPEN_PARENTHESIS, DocLexer::T_OPEN_CURLY_BRACES])) {
                ++$opening;

                continue;
            }

            if (!$token->isType([DocLexer::T_CLOSE_PARENTHESIS, DocLexer::T_CLOSE_CURLY_BRACES])) {
                continue;
            }

            if ($opening > 0) {
                --$opening;
            } else {
                ++$closing;
            }
        }

        return [$opening, $closing];
    }

    /**
     * @param int $index
     *
     * @return bool
     */
    private function isClosingLineWithMeaningfulContent(Tokens $tokens, $index)
    {
        while (isset($tokens[++$index])) {
            $token = $tokens[$index];
            if ($token->isType(DocLexer::T_NONE)) {
                if (false !== strpos($token->getContent(), "\n")) {
                    return false;
                }

                continue;
            }

            return !$token->isType([DocLexer::T_CLOSE_PARENTHESIS, DocLexer::T_CLOSE_CURLY_BRACES]);
        }

        return false;
    }

    /**
     * @param int               $newLineTokenIndex
     * @param array<array<int>> $annotationPositions Pairs of begin and end indexes of main annotations
     *
     * @return bool
     */
    private function indentationCanBeFixed(Tokens $tokens, $newLineTokenIndex, array $annotationPositions)
    {
        foreach ($annotationPositions as $position) {
            if ($newLineTokenIndex >= $position[0] && $newLineTokenIndex <= $position[1]) {
                return true;
            }
        }

        for ($index = $newLineTokenIndex + 1, $max = \count($tokens); $index < $max; ++$index) {
            $token = $tokens[$index];

            if (false !== strpos($token->getContent(), "\n")) {
                return false;
            }

            return $tokens[$index]->isType(DocLexer::T_AT);
        }

        return false;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\DoctrineAnnotation;

use Doctrine\Common\Annotations\DocLexer;
use PhpCsFixer\AbstractDoctrineAnnotationFixer;
use PhpCsFixer\Doctrine\Annotation\Tokens;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;

/**
 * Forces the configured operator for assignment in arrays in Doctrine Annotations.
 */
final class DoctrineAnnotationArrayAssignmentFixer extends AbstractDoctrineAnnotationFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Doctrine annotations must use configured operator for assignment in arrays.',
            [
                new CodeSample(
                    "<?php\n/**\n * @Foo({bar : \"baz\"})\n */\nclass Bar {}\n"
                ),
                new CodeSample(
                    "<?php\n/**\n * @Foo({bar = \"baz\"})\n */\nclass Bar {}\n",
                    ['operator' => ':']
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before DoctrineAnnotationSpacesFixer.
     */
    public function getPriority()
    {
        return 1;
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        $options = parent::createConfigurationDefinition()->getOptions();

        $operator = new FixerOptionBuilder('operator', 'The operator to use.');
        $options[] = $operator
            ->setAllowedValues(['=', ':'])
            ->setDefault('=')
            ->getOption()
        ;

        return new FixerConfigurationResolver($options);
    }

    /**
     * {@inheritdoc}
     */
    protected function fixAnnotations(Tokens $tokens)
    {
        $scopes = [];
        foreach ($tokens as $token) {
            if ($token->isType(DocLexer::T_OPEN_PARENTHESIS)) {
                $scopes[] = 'annotation';

                continue;
            }

            if ($token->isType(DocLexer::T_OPEN_CURLY_BRACES)) {
                $scopes[] = 'array';

                continue;
            }

            if ($token->isType([DocLexer::T_CLOSE_PARENTHESIS, DocLexer::T_CLOSE_CURLY_BRACES])) {
                array_pop($scopes);

                continue;
            }

            if ('array' === end($scopes) && $token->isType([DocLexer::T_EQUALS, DocLexer::T_COLON])) {
                $token->setContent($this->configuration['operator']);
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\DoctrineAnnotation;

use Doctrine\Common\Annotations\DocLexer;
use PhpCsFixer\AbstractDoctrineAnnotationFixer;
use PhpCsFixer\Doctrine\Annotation\Token;
use PhpCsFixer\Doctrine\Annotation\Tokens;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;

/**
 * Fixes spaces around commas and assignment operators in Doctrine annotations.
 */
final class DoctrineAnnotationSpacesFixer extends AbstractDoctrineAnnotationFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Fixes spaces in Doctrine annotations.',
            [
                new CodeSample(
                    "<?php\n/**\n * @Foo ( )\n */\nclass Bar {}\n\n/**\n * @Foo(\"bar\" ,\"baz\")\n */\nclass Bar2 {}\n\n/**\n * @Foo(foo = \"foo\", bar = {\"foo\":\"foo\", \"bar\"=\"bar\"})\n */\nclass Bar3 {}\n"
                ),
                new CodeSample(
                    "<?php\n/**\n * @Foo(foo = \"foo\", bar = {\"foo\":\"foo\", \"bar\"=\"bar\"})\n */\nclass Bar {}\n",
                    ['after_array_assignments_equals' => false, 'before_array_assignments_equals' => false]
                ),
            ],
            'There must not be any space around parentheses; commas must be preceded by no space and followed by one space; there must be no space around named arguments assignment operator; there must be one space around array assignment operator.'
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run after DoctrineAnnotationArrayAssignmentFixer.
     */
    public function getPriority()
    {
        return 0;
    }

    public function configure(array $configuration = null)
    {
        parent::configure($configuration);

        if (!$this->configuration['around_argument_assignments']) {
            foreach ([
                'before_argument_assignments',
                'after_argument_assignments',
            ] as $newOption) {
                if (!\array_key_exists($newOption, $configuration)) {
                    $this->configuration[$newOption] = null;
                }
            }
        }

        if (!$this->configuration['around_array_assignments']) {
            foreach ([
                'before_array_assignments_equals',
                'after_array_assignments_equals',
                'before_array_assignments_colon',
                'after_array_assignments_colon',
            ] as $newOption) {
                if (!\array_key_exists($newOption, $configuration)) {
                    $this->configuration[$newOption] = null;
                }
            }
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver(array_merge(
            parent::createConfigurationDefinition()->getOptions(),
            [
                (new FixerOptionBuilder('around_parentheses', 'Whether to fix spaces around parentheses.'))
                    ->setAllowedTypes(['bool'])
                    ->setDefault(true)
                    ->getOption(),
                (new FixerOptionBuilder('around_commas', 'Whether to fix spaces around commas.'))
                    ->setAllowedTypes(['bool'])
                    ->setDefault(true)
                    ->getOption(),
                (new FixerOptionBuilder('around_argument_assignments', 'Whether to fix spaces around argument assignment operator.'))
                    ->setAllowedTypes(['bool'])
                    ->setDefault(true)
                    ->setDeprecationMessage('Use options `before_argument_assignments` and `after_argument_assignments` instead.')
                    ->getOption(),
                (new FixerOptionBuilder('before_argument_assignments', 'Whether to add, remove or ignore spaces before argument assignment operator.'))
                    ->setAllowedTypes(['null', 'bool'])
                    ->setDefault(false)
                    ->getOption(),
                (new FixerOptionBuilder('after_argument_assignments', 'Whether to add, remove or ignore spaces after argument assignment operator.'))
                    ->setAllowedTypes(['null', 'bool'])
                    ->setDefault(false)
                    ->getOption(),
                (new FixerOptionBuilder('around_array_assignments', 'Whether to fix spaces around array assignment operators.'))
                    ->setAllowedTypes(['bool'])
                    ->setDefault(true)
                    ->setDeprecationMessage('Use options `before_array_assignments_equals`, `after_array_assignments_equals`, `before_array_assignments_colon` and `after_array_assignments_colon` instead.')
                    ->getOption(),
                (new FixerOptionBuilder('before_array_assignments_equals', 'Whether to add, remove or ignore spaces before array `=` assignment operator.'))
                    ->setAllowedTypes(['null', 'bool'])
                    ->setDefault(true)
                    ->getOption(),
                (new FixerOptionBuilder('after_array_assignments_equals', 'Whether to add, remove or ignore spaces after array assignment `=` operator.'))
                    ->setAllowedTypes(['null', 'bool'])
                    ->setDefault(true)
                    ->getOption(),
                (new FixerOptionBuilder('before_array_assignments_colon', 'Whether to add, remove or ignore spaces before array `:` assignment operator.'))
                    ->setAllowedTypes(['null', 'bool'])
                    ->setDefault(true)
                    ->getOption(),
                (new FixerOptionBuilder('after_array_assignments_colon', 'Whether to add, remove or ignore spaces after array assignment `:` operator.'))
                    ->setAllowedTypes(['null', 'bool'])
                    ->setDefault(true)
                    ->getOption(),
            ]
        ));
    }

    /**
     * {@inheritdoc}
     */
    protected function fixAnnotations(Tokens $tokens)
    {
        if ($this->configuration['around_parentheses']) {
            $this->fixSpacesAroundParentheses($tokens);
        }

        if ($this->configuration['around_commas']) {
            $this->fixSpacesAroundCommas($tokens);
        }

        if (
            null !== $this->configuration['before_argument_assignments']
            || null !== $this->configuration['after_argument_assignments']
            || null !== $this->configuration['before_array_assignments_equals']
            || null !== $this->configuration['after_array_assignments_equals']
            || null !== $this->configuration['before_array_assignments_colon']
            || null !== $this->configuration['after_array_assignments_colon']
        ) {
            $this->fixAroundAssignments($tokens);
        }
    }

    private function fixSpacesAroundParentheses(Tokens $tokens)
    {
        $inAnnotationUntilIndex = null;

        foreach ($tokens as $index => $token) {
            if (null !== $inAnnotationUntilIndex) {
                if ($index === $inAnnotationUntilIndex) {
                    $inAnnotationUntilIndex = null;

                    continue;
                }
            } elseif ($tokens[$index]->isType(DocLexer::T_AT)) {
                $endIndex = $tokens->getAnnotationEnd($index);
                if (null !== $endIndex) {
                    $inAnnotationUntilIndex = $endIndex + 1;
                }

                continue;
            }

            if (null === $inAnnotationUntilIndex) {
                continue;
            }

            if (!$token->isType([DocLexer::T_OPEN_PARENTHESIS, DocLexer::T_CLOSE_PARENTHESIS])) {
                continue;
            }

            if ($token->isType(DocLexer::T_OPEN_PARENTHESIS)) {
                $token = $tokens[$index - 1];
                if ($token->isType(DocLexer::T_NONE)) {
                    $token->clear();
                }

                $token = $tokens[$index + 1];
            } else {
                $token = $tokens[$index - 1];
            }

            if ($token->isType(DocLexer::T_NONE)) {
                if (false !== strpos($token->getContent(), "\n")) {
                    continue;
                }

                $token->clear();
            }
        }
    }

    private function fixSpacesAroundCommas(Tokens $tokens)
    {
        $inAnnotationUntilIndex = null;

        foreach ($tokens as $index => $token) {
            if (null !== $inAnnotationUntilIndex) {
                if ($index === $inAnnotationUntilIndex) {
                    $inAnnotationUntilIndex = null;

                    continue;
                }
            } elseif ($tokens[$index]->isType(DocLexer::T_AT)) {
                $endIndex = $tokens->getAnnotationEnd($index);
                if (null !== $endIndex) {
                    $inAnnotationUntilIndex = $endIndex;
                }

                continue;
            }

            if (null === $inAnnotationUntilIndex) {
                continue;
            }

            if (!$token->isType(DocLexer::T_COMMA)) {
                continue;
            }

            $token = $tokens[$index - 1];
            if ($token->isType(DocLexer::T_NONE)) {
                $token->clear();
            }

            if ($index < \count($tokens) - 1 && !Preg::match('/^\s/', $tokens[$index + 1]->getContent())) {
                $tokens->insertAt($index + 1, new Token(DocLexer::T_NONE, ' '));
            }
        }
    }

    private function fixAroundAssignments(Tokens $tokens)
    {
        $beforeArguments = $this->configuration['before_argument_assignments'];
        $afterArguments = $this->configuration['after_argument_assignments'];
        $beforeArraysEquals = $this->configuration['before_array_assignments_equals'];
        $afterArraysEquals = $this->configuration['after_array_assignments_equals'];
        $beforeArraysColon = $this->configuration['before_array_assignments_colon'];
        $afterArraysColon = $this->configuration['after_array_assignments_colon'];

        $scopes = [];
        foreach ($tokens as $index => $token) {
            $endScopeType = end($scopes);
            if (false !== $endScopeType && $token->isType($endScopeType)) {
                array_pop($scopes);

                continue;
            }

            if ($tokens[$index]->isType(DocLexer::T_AT)) {
                $scopes[] = DocLexer::T_CLOSE_PARENTHESIS;

                continue;
            }

            if ($tokens[$index]->isType(DocLexer::T_OPEN_CURLY_BRACES)) {
                $scopes[] = DocLexer::T_CLOSE_CURLY_BRACES;

                continue;
            }

            if (DocLexer::T_CLOSE_PARENTHESIS === $endScopeType && $token->isType(DocLexer::T_EQUALS)) {
                $this->updateSpacesAfter($tokens, $index, $afterArguments);
                $this->updateSpacesBefore($tokens, $index, $beforeArguments);

                continue;
            }

            if (DocLexer::T_CLOSE_CURLY_BRACES === $endScopeType) {
                if ($token->isType(DocLexer::T_EQUALS)) {
                    $this->updateSpacesAfter($tokens, $index, $afterArraysEquals);
                    $this->updateSpacesBefore($tokens, $index, $beforeArraysEquals);

                    continue;
                }

                if ($token->isType(DocLexer::T_COLON)) {
                    $this->updateSpacesAfter($tokens, $index, $afterArraysColon);
                    $this->updateSpacesBefore($tokens, $index, $beforeArraysColon);
                }
            }
        }
    }

    /**
     * @param int       $index
     * @param null|bool $insert
     */
    private function updateSpacesAfter(Tokens $tokens, $index, $insert)
    {
        $this->updateSpacesAt($tokens, $index + 1, $index + 1, $insert);
    }

    /**
     * @param int       $index
     * @param null|bool $insert
     */
    private function updateSpacesBefore(Tokens $tokens, $index, $insert)
    {
        $this->updateSpacesAt($tokens, $index - 1, $index, $insert);
    }

    /**
     * @param int       $index
     * @param int       $insertIndex
     * @param null|bool $insert
     */
    private function updateSpacesAt(Tokens $tokens, $index, $insertIndex, $insert)
    {
        if (null === $insert) {
            return;
        }

        $token = $tokens[$index];
        if ($insert) {
            if (!$token->isType(DocLexer::T_NONE)) {
                $tokens->insertAt($insertIndex, $token = new Token());
            }

            $token->setContent(' ');
        } elseif ($token->isType(DocLexer::T_NONE)) {
            $token->clear();
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\DoctrineAnnotation;

use Doctrine\Common\Annotations\DocLexer;
use PhpCsFixer\AbstractDoctrineAnnotationFixer;
use PhpCsFixer\Doctrine\Annotation\Token;
use PhpCsFixer\Doctrine\Annotation\Tokens;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;

/**
 * Adds braces to Doctrine annotations when missing.
 */
final class DoctrineAnnotationBracesFixer extends AbstractDoctrineAnnotationFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Doctrine annotations without arguments must use the configured syntax.',
            [
                new CodeSample(
                    "<?php\n/**\n * @Foo()\n */\nclass Bar {}\n"
                ),
                new CodeSample(
                    "<?php\n/**\n * @Foo\n */\nclass Bar {}\n",
                    ['syntax' => 'with_braces']
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver(array_merge(
            parent::createConfigurationDefinition()->getOptions(),
            [
                (new FixerOptionBuilder('syntax', 'Whether to add or remove braces.'))
                    ->setAllowedValues(['with_braces', 'without_braces'])
                    ->setDefault('without_braces')
                    ->getOption(),
            ]
        ));
    }

    /**
     * {@inheritdoc}
     */
    protected function fixAnnotations(Tokens $tokens)
    {
        if ('without_braces' === $this->configuration['syntax']) {
            $this->removesBracesFromAnnotations($tokens);
        } else {
            $this->addBracesToAnnotations($tokens);
        }
    }

    private function addBracesToAnnotations(Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if (!$tokens[$index]->isType(DocLexer::T_AT)) {
                continue;
            }

            $braceIndex = $tokens->getNextMeaningfulToken($index + 1);
            if (null !== $braceIndex && $tokens[$braceIndex]->isType(DocLexer::T_OPEN_PARENTHESIS)) {
                continue;
            }

            $tokens->insertAt($index + 2, new Token(DocLexer::T_OPEN_PARENTHESIS, '('));
            $tokens->insertAt($index + 3, new Token(DocLexer::T_CLOSE_PARENTHESIS, ')'));
        }
    }

    private function removesBracesFromAnnotations(Tokens $tokens)
    {
        for ($index = 0, $max = \count($tokens); $index < $max; ++$index) {
            if (!$tokens[$index]->isType(DocLexer::T_AT)) {
                continue;
            }

            $openBraceIndex = $tokens->getNextMeaningfulToken($index + 1);
            if (null === $openBraceIndex) {
                continue;
            }

            if (!$tokens[$openBraceIndex]->isType(DocLexer::T_OPEN_PARENTHESIS)) {
                continue;
            }

            $closeBraceIndex = $tokens->getNextMeaningfulToken($openBraceIndex);
            if (null === $closeBraceIndex) {
                continue;
            }

            if (!$tokens[$closeBraceIndex]->isType(DocLexer::T_CLOSE_PARENTHESIS)) {
                continue;
            }

            for ($currentIndex = $index + 2; $currentIndex <= $closeBraceIndex; ++$currentIndex) {
                $tokens[$currentIndex]->clear();
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\PhpUnit;

use Composer\Semver\Comparator;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class PhpUnitTargetVersion
{
    const VERSION_3_0 = '3.0';
    const VERSION_3_2 = '3.2';
    const VERSION_3_5 = '3.5';
    const VERSION_4_3 = '4.3';
    const VERSION_4_8 = '4.8';
    const VERSION_5_0 = '5.0';
    const VERSION_5_2 = '5.2';
    const VERSION_5_4 = '5.4';
    const VERSION_5_5 = '5.5';
    const VERSION_5_6 = '5.6';
    const VERSION_5_7 = '5.7';
    const VERSION_6_0 = '6.0';
    const VERSION_7_5 = '7.5';
    const VERSION_NEWEST = 'newest';

    private function __construct()
    {
    }

    /**
     * @param string $candidate
     * @param string $target
     *
     * @return bool
     */
    public static function fulfills($candidate, $target)
    {
        if (self::VERSION_NEWEST === $target) {
            throw new \LogicException(sprintf('Parameter `target` shall not be provided as `%s`, determine proper target for tested PHPUnit feature instead.', self::VERSION_NEWEST));
        }

        if (self::VERSION_NEWEST === $candidate) {
            return true;
        }

        return Comparator::greaterThanOrEqualTo($candidate, $target);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\PhpUnit;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\AllowedValueSubset;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverRootless;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Analyzer\ArgumentsAnalyzer;
use PhpCsFixer\Tokenizer\Analyzer\FunctionsAnalyzer;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class PhpUnitStrictFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    private static $assertionMap = [
        'assertAttributeEquals' => 'assertAttributeSame',
        'assertAttributeNotEquals' => 'assertAttributeNotSame',
        'assertEquals' => 'assertSame',
        'assertNotEquals' => 'assertNotSame',
    ];

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'PHPUnit methods like `assertSame` should be used instead of `assertEquals`.',
            [
                new CodeSample(
                    '<?php
final class MyTest extends \PHPUnit_Framework_TestCase
{
    public function testSomeTest()
    {
        $this->assertAttributeEquals(a(), b());
        $this->assertAttributeNotEquals(a(), b());
        $this->assertEquals(a(), b());
        $this->assertNotEquals(a(), b());
    }
}
'
                ),
                new CodeSample(
                    '<?php
final class MyTest extends \PHPUnit_Framework_TestCase
{
    public function testSomeTest()
    {
        $this->assertAttributeEquals(a(), b());
        $this->assertAttributeNotEquals(a(), b());
        $this->assertEquals(a(), b());
        $this->assertNotEquals(a(), b());
    }
}
',
                    ['assertions' => ['assertEquals']]
                ),
            ],
            null,
            'Risky when any of the functions are overridden or when testing object equality.'
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_STRING);
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $argumentsAnalyzer = new ArgumentsAnalyzer();
        $functionsAnalyzer = new FunctionsAnalyzer();

        foreach ($this->configuration['assertions'] as $methodBefore) {
            $methodAfter = self::$assertionMap[$methodBefore];

            for ($index = 0, $limit = $tokens->count(); $index < $limit; ++$index) {
                $methodIndex = $tokens->getNextTokenOfKind($index, [[T_STRING, $methodBefore]]);

                if (null === $methodIndex) {
                    break;
                }

                if (!$functionsAnalyzer->isTheSameClassCall($tokens, $methodIndex)) {
                    continue;
                }

                $openingParenthesisIndex = $tokens->getNextMeaningfulToken($methodIndex);
                $argumentsCount = $argumentsAnalyzer->countArguments(
                    $tokens,
                    $openingParenthesisIndex,
                    $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $openingParenthesisIndex)
                );

                if (2 === $argumentsCount || 3 === $argumentsCount) {
                    $tokens[$methodIndex] = new Token([T_STRING, $methodAfter]);
                }

                $index = $methodIndex;
            }
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolverRootless('assertions', [
            (new FixerOptionBuilder('assertions', 'List of assertion methods to fix.'))
                ->setAllowedTypes(['array'])
                ->setAllowedValues([new AllowedValueSubset(array_keys(self::$assertionMap))])
                ->setDefault([
                    'assertAttributeEquals',
                    'assertAttributeNotEquals',
                    'assertEquals',
                    'assertNotEquals',
                ])
                ->getOption(),
        ], $this->getName());
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\PhpUnit;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\AllowedValueSubset;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverRootless;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Analyzer\FunctionsAnalyzer;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author SpacePossum
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class PhpUnitDedicateAssertFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    private static $fixMap = [
        'array_key_exists' => ['assertArrayNotHasKey', 'assertArrayHasKey'],
        'empty' => ['assertNotEmpty', 'assertEmpty'],
        'file_exists' => ['assertFileNotExists', 'assertFileExists'],
        'is_array' => true,
        'is_bool' => true,
        'is_callable' => true,
        'is_dir' => ['assertDirectoryNotExists', 'assertDirectoryExists'],
        'is_double' => true,
        'is_float' => true,
        'is_infinite' => ['assertFinite', 'assertInfinite'],
        'is_int' => true,
        'is_integer' => true,
        'is_long' => true,
        'is_nan' => [false, 'assertNan'],
        'is_null' => ['assertNotNull', 'assertNull'],
        'is_numeric' => true,
        'is_object' => true,
        'is_readable' => ['assertNotIsReadable', 'assertIsReadable'],
        'is_real' => true,
        'is_resource' => true,
        'is_scalar' => true,
        'is_string' => true,
        'is_writable' => ['assertNotIsWritable', 'assertIsWritable'],
    ];

    /**
     * @var string[]
     */
    private $functions = [];

    /**
     * {@inheritdoc}
     */
    public function configure(array $configuration = null)
    {
        parent::configure($configuration);

        if (isset($this->configuration['functions'])) {
            $this->functions = $this->configuration['functions'];

            return;
        }

        // assertions added in 3.0: assertArrayNotHasKey assertArrayHasKey assertFileNotExists assertFileExists assertNotNull, assertNull
        $this->functions = [
            'array_key_exists',
            'file_exists',
            'is_null',
        ];

        if (PhpUnitTargetVersion::fulfills($this->configuration['target'], PhpUnitTargetVersion::VERSION_3_5)) {
            // assertions added in 3.5: assertInternalType assertNotEmpty assertEmpty
            $this->functions = array_merge($this->functions, [
                'empty',
                'is_array',
                'is_bool',
                'is_boolean',
                'is_callable',
                'is_double',
                'is_float',
                'is_int',
                'is_integer',
                'is_long',
                'is_numeric',
                'is_object',
                'is_real',
                'is_resource',
                'is_scalar',
                'is_string',
            ]);
        }

        if (PhpUnitTargetVersion::fulfills($this->configuration['target'], PhpUnitTargetVersion::VERSION_5_0)) {
            // assertions added in 5.0: assertFinite assertInfinite assertNan
            $this->functions = array_merge($this->functions, [
                'is_infinite',
                'is_nan',
            ]);
        }

        if (PhpUnitTargetVersion::fulfills($this->configuration['target'], PhpUnitTargetVersion::VERSION_5_6)) {
            // assertions added in 5.6: assertDirectoryExists assertDirectoryNotExists assertIsReadable assertNotIsReadable assertIsWritable assertNotIsWritable
            $this->functions = array_merge($this->functions, [
                'is_dir',
                'is_readable',
                'is_writable',
            ]);
        }
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_STRING);
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'PHPUnit assertions like `assertInternalType`, `assertFileExists`, should be used over `assertTrue`.',
            [
                new CodeSample(
                    '<?php
$this->assertTrue(is_float( $a), "my message");
$this->assertTrue(is_nan($a));
'
                ),
                new CodeSample(
                    '<?php
$this->assertTrue(is_dir($a));
$this->assertTrue(is_writable($a));
$this->assertTrue(is_readable($a));
',
                    ['target' => PhpUnitTargetVersion::VERSION_5_6]
                ),
            ],
            null,
            'Fixer could be risky if one is overriding PHPUnit\'s native methods.'
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before PhpUnitDedicateAssertInternalTypeFixer.
     * Must run after NoAliasFunctionsFixer, PhpUnitConstructFixer.
     */
    public function getPriority()
    {
        return -15;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($this->getPreviousAssertCall($tokens) as $assertCall) {
            // test and fix for assertTrue/False to dedicated asserts
            if ('asserttrue' === $assertCall['loweredName'] || 'assertfalse' === $assertCall['loweredName']) {
                $this->fixAssertTrueFalse($tokens, $assertCall);

                continue;
            }

            if (
                'assertsame' === $assertCall['loweredName']
                || 'assertnotsame' === $assertCall['loweredName']
                || 'assertequals' === $assertCall['loweredName']
                || 'assertnotequals' === $assertCall['loweredName']
            ) {
                $this->fixAssertSameEquals($tokens, $assertCall);

                continue;
            }
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        $values = [
            'array_key_exists',
            'empty',
            'file_exists',
            'is_array',
            'is_bool',
            'is_callable',
            'is_double',
            'is_float',
            'is_infinite',
            'is_int',
            'is_integer',
            'is_long',
            'is_nan',
            'is_null',
            'is_numeric',
            'is_object',
            'is_real',
            'is_resource',
            'is_scalar',
            'is_string',
        ];

        sort($values);

        return new FixerConfigurationResolverRootless('functions', [
            (new FixerOptionBuilder('functions', 'List of assertions to fix (overrides `target`).'))
                ->setAllowedTypes(['null', 'array'])
                ->setAllowedValues([
                    null,
                    new AllowedValueSubset($values),
                ])
                ->setDefault(null)
                ->setDeprecationMessage('Use option `target` instead.')
                ->getOption(),
            (new FixerOptionBuilder('target', 'Target version of PHPUnit.'))
                ->setAllowedTypes(['string'])
                ->setAllowedValues([
                    PhpUnitTargetVersion::VERSION_3_0,
                    PhpUnitTargetVersion::VERSION_3_5,
                    PhpUnitTargetVersion::VERSION_5_0,
                    PhpUnitTargetVersion::VERSION_5_6,
                    PhpUnitTargetVersion::VERSION_NEWEST,
                ])
                ->setDefault(PhpUnitTargetVersion::VERSION_5_0) // @TODO 3.x: change to `VERSION_NEWEST`
                ->getOption(),
        ], $this->getName());
    }

    private function fixAssertTrueFalse(Tokens $tokens, array $assertCall)
    {
        $testDefaultNamespaceTokenIndex = false;
        $testIndex = $tokens->getNextMeaningfulToken($assertCall['openBraceIndex']);

        if (!$tokens[$testIndex]->isGivenKind([T_EMPTY, T_STRING])) {
            if (!$tokens[$testIndex]->isGivenKind(T_NS_SEPARATOR)) {
                return;
            }

            $testDefaultNamespaceTokenIndex = $testIndex;
            $testIndex = $tokens->getNextMeaningfulToken($testIndex);
        }

        $testOpenIndex = $tokens->getNextMeaningfulToken($testIndex);
        if (!$tokens[$testOpenIndex]->equals('(')) {
            return;
        }

        $testCloseIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $testOpenIndex);

        $assertCallCloseIndex = $tokens->getNextMeaningfulToken($testCloseIndex);
        if (!$tokens[$assertCallCloseIndex]->equalsAny([')', ','])) {
            return;
        }

        $isPositive = 'asserttrue' === $assertCall['loweredName'];

        $content = strtolower($tokens[$testIndex]->getContent());
        if (!\in_array($content, $this->functions, true)) {
            return;
        }

        if (\is_array(self::$fixMap[$content])) {
            if (false !== self::$fixMap[$content][$isPositive]) {
                $tokens[$assertCall['index']] = new Token([T_STRING, self::$fixMap[$content][$isPositive]]);
                $this->removeFunctionCall($tokens, $testDefaultNamespaceTokenIndex, $testIndex, $testOpenIndex, $testCloseIndex);
            }

            return;
        }

        $type = substr($content, 3);

        $tokens[$assertCall['index']] = new Token([T_STRING, $isPositive ? 'assertInternalType' : 'assertNotInternalType']);
        $tokens[$testIndex] = new Token([T_CONSTANT_ENCAPSED_STRING, "'".$type."'"]);
        $tokens[$testOpenIndex] = new Token(',');

        $tokens->clearTokenAndMergeSurroundingWhitespace($testCloseIndex);
        $commaIndex = $tokens->getPrevMeaningfulToken($testCloseIndex);
        if ($tokens[$commaIndex]->equals(',')) {
            $tokens->removeTrailingWhitespace($commaIndex);
            $tokens->clearAt($commaIndex);
        }

        if (!$tokens[$testOpenIndex + 1]->isWhitespace()) {
            $tokens->insertAt($testOpenIndex + 1, new Token([T_WHITESPACE, ' ']));
        }

        if (false !== $testDefaultNamespaceTokenIndex) {
            $tokens->clearTokenAndMergeSurroundingWhitespace($testDefaultNamespaceTokenIndex);
        }
    }

    private function fixAssertSameEquals(Tokens $tokens, array $assertCall)
    {
        // @ $this->/self::assertEquals/Same([$nextIndex])
        $expectedIndex = $tokens->getNextMeaningfulToken($assertCall['openBraceIndex']);

        // do not fix
        // let $a = [1,2]; $b = "2";
        // "$this->assertEquals("2", count($a)); $this->assertEquals($b, count($a)); $this->assertEquals(2.1, count($a));"

        if (!$tokens[$expectedIndex]->isGivenKind(T_LNUMBER)) {
            return;
        }

        // @ $this->/self::assertEquals/Same([$nextIndex,$commaIndex])
        $commaIndex = $tokens->getNextMeaningfulToken($expectedIndex);
        if (!$tokens[$commaIndex]->equals(',')) {
            return;
        }

        // @ $this->/self::assertEquals/Same([$nextIndex,$commaIndex,$countCallIndex])
        $countCallIndex = $tokens->getNextMeaningfulToken($commaIndex);
        if ($tokens[$countCallIndex]->isGivenKind(T_NS_SEPARATOR)) {
            $defaultNamespaceTokenIndex = $countCallIndex;
            $countCallIndex = $tokens->getNextMeaningfulToken($countCallIndex);
        } else {
            $defaultNamespaceTokenIndex = false;
        }

        if (!$tokens[$countCallIndex]->isGivenKind(T_STRING)) {
            return;
        }

        $lowerContent = strtolower($tokens[$countCallIndex]->getContent());
        if ('count' !== $lowerContent && 'sizeof' !== $lowerContent) {
            return; // not a call to "count" or "sizeOf"
        }

        // @ $this->/self::assertEquals/Same([$nextIndex,$commaIndex,[$defaultNamespaceTokenIndex,]$countCallIndex,$countCallOpenBraceIndex])
        $countCallOpenBraceIndex = $tokens->getNextMeaningfulToken($countCallIndex);
        if (!$tokens[$countCallOpenBraceIndex]->equals('(')) {
            return;
        }

        $countCallCloseBraceIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $countCallOpenBraceIndex);

        $afterCountCallCloseBraceIndex = $tokens->getNextMeaningfulToken($countCallCloseBraceIndex);
        if (!$tokens[$afterCountCallCloseBraceIndex]->equalsAny([')', ','])) {
            return;
        }

        $this->removeFunctionCall(
            $tokens,
            $defaultNamespaceTokenIndex,
            $countCallIndex,
            $countCallOpenBraceIndex,
            $countCallCloseBraceIndex
        );

        $tokens[$assertCall['index']] = new Token([
            T_STRING,
            false === strpos($assertCall['loweredName'], 'not', 6) ? 'assertCount' : 'assertNotCount',
        ]);
    }

    private function getPreviousAssertCall(Tokens $tokens)
    {
        $functionsAnalyzer = new FunctionsAnalyzer();

        for ($index = $tokens->count(); $index > 0; --$index) {
            $index = $tokens->getPrevTokenOfKind($index, [[T_STRING]]);
            if (null === $index) {
                return;
            }

            // test if "assert" something call
            $loweredContent = strtolower($tokens[$index]->getContent());
            if ('assert' !== substr($loweredContent, 0, 6)) {
                continue;
            }

            // test candidate for simple calls like: ([\]+'some fixable call'(...))
            $openBraceIndex = $tokens->getNextMeaningfulToken($index);
            if (!$tokens[$openBraceIndex]->equals('(')) {
                continue;
            }

            if (!$functionsAnalyzer->isTheSameClassCall($tokens, $index)) {
                continue;
            }

            yield [
                'index' => $index,
                'loweredName' => $loweredContent,
                'openBraceIndex' => $openBraceIndex,
                'closeBraceIndex' => $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $openBraceIndex),
            ];
        }
    }

    /**
     * @param false|int $callNSIndex
     * @param int       $callIndex
     * @param int       $openIndex
     * @param int       $closeIndex
     */
    private function removeFunctionCall(Tokens $tokens, $callNSIndex, $callIndex, $openIndex, $closeIndex)
    {
        $tokens->clearTokenAndMergeSurroundingWhitespace($callIndex);
        if (false !== $callNSIndex) {
            $tokens->clearTokenAndMergeSurroundingWhitespace($callNSIndex);
        }

        $tokens->clearTokenAndMergeSurroundingWhitespace($openIndex);
        $commaIndex = $tokens->getPrevMeaningfulToken($closeIndex);
        if ($tokens[$commaIndex]->equals(',')) {
            $tokens->removeTrailingWhitespace($commaIndex);
            $tokens->clearAt($commaIndex);
        }

        $tokens->clearTokenAndMergeSurroundingWhitespace($closeIndex);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\PhpUnit;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\AllowedValueSubset;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverRootless;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Analyzer\FunctionsAnalyzer;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class PhpUnitConstructFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    private static $assertionFixers = [
        'assertSame' => 'fixAssertPositive',
        'assertEquals' => 'fixAssertPositive',
        'assertNotEquals' => 'fixAssertNegative',
        'assertNotSame' => 'fixAssertNegative',
    ];

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_STRING);
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'PHPUnit assertion method calls like `->assertSame(true, $foo)` should be written with dedicated method like `->assertTrue($foo)`.',
            [
                new CodeSample(
                    '<?php
$this->assertEquals(false, $b);
$this->assertSame(true, $a);
$this->assertNotEquals(null, $c);
$this->assertNotSame(null, $d);
'
                ),
                new CodeSample(
                    '<?php
$this->assertEquals(false, $b);
$this->assertSame(true, $a);
$this->assertNotEquals(null, $c);
$this->assertNotSame(null, $d);
',
                    ['assertions' => ['assertSame', 'assertNotSame']]
                ),
            ],
            null,
            'Fixer could be risky if one is overriding PHPUnit\'s native methods.'
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before PhpUnitDedicateAssertFixer.
     */
    public function getPriority()
    {
        return -10;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        // no assertions to be fixed - fast return
        if (empty($this->configuration['assertions'])) {
            return;
        }

        foreach ($this->configuration['assertions'] as $assertionMethod) {
            $assertionFixer = self::$assertionFixers[$assertionMethod];

            for ($index = 0, $limit = $tokens->count(); $index < $limit; ++$index) {
                $index = $this->{$assertionFixer}($tokens, $index, $assertionMethod);

                if (null === $index) {
                    break;
                }
            }
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolverRootless('assertions', [
            (new FixerOptionBuilder('assertions', 'List of assertion methods to fix.'))
                ->setAllowedTypes(['array'])
                ->setAllowedValues([new AllowedValueSubset(array_keys(self::$assertionFixers))])
                ->setDefault([
                    'assertEquals',
                    'assertSame',
                    'assertNotEquals',
                    'assertNotSame',
                ])
                ->getOption(),
        ], $this->getName());
    }

    /**
     * @param int    $index
     * @param string $method
     *
     * @return null|int
     */
    private function fixAssertNegative(Tokens $tokens, $index, $method)
    {
        static $map = [
            'false' => 'assertNotFalse',
            'null' => 'assertNotNull',
            'true' => 'assertNotTrue',
        ];

        return $this->fixAssert($map, $tokens, $index, $method);
    }

    /**
     * @param int    $index
     * @param string $method
     *
     * @return null|int
     */
    private function fixAssertPositive(Tokens $tokens, $index, $method)
    {
        static $map = [
            'false' => 'assertFalse',
            'null' => 'assertNull',
            'true' => 'assertTrue',
        ];

        return $this->fixAssert($map, $tokens, $index, $method);
    }

    /**
     * @param array<string, string> $map
     * @param int                   $index
     * @param string                $method
     *
     * @return null|int
     */
    private function fixAssert(array $map, Tokens $tokens, $index, $method)
    {
        $functionsAnalyzer = new FunctionsAnalyzer();

        $sequence = $tokens->findSequence(
            [
                [T_STRING, $method],
                '(',
            ],
            $index
        );

        if (null === $sequence) {
            return null;
        }

        $sequenceIndexes = array_keys($sequence);
        if (!$functionsAnalyzer->isTheSameClassCall($tokens, $sequenceIndexes[0])) {
            return null;
        }

        $sequenceIndexes[2] = $tokens->getNextMeaningfulToken($sequenceIndexes[1]);
        $firstParameterToken = $tokens[$sequenceIndexes[2]];

        if (!$firstParameterToken->isNativeConstant()) {
            return $sequenceIndexes[2];
        }

        $sequenceIndexes[3] = $tokens->getNextMeaningfulToken($sequenceIndexes[2]);

        // return if first method argument is an expression, not value
        if (!$tokens[$sequenceIndexes[3]]->equals(',')) {
            return $sequenceIndexes[3];
        }

        $tokens[$sequenceIndexes[0]] = new Token([T_STRING, $map[strtolower($firstParameterToken->getContent())]]);
        $tokens->clearRange($sequenceIndexes[2], $tokens->getNextNonWhitespace($sequenceIndexes[3]) - 1);

        return $sequenceIndexes[3];
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\PhpUnit;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Indicator\PhpUnitTestCaseIndicator;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Tokenizer\TokensAnalyzer;

/**
 * @author Gert de Pagter
 */
final class PhpUnitSetUpTearDownVisibilityFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Changes the visibility of the `setUp()` and `tearDown()` functions of PHPUnit to `protected`, to match the PHPUnit TestCase.',
            [
                new CodeSample(
                    '<?php
final class MyTest extends \PHPUnit_Framework_TestCase
{
    private $hello;
    public function setUp()
    {
        $this->hello = "hello";
    }

    public function tearDown()
    {
        $this->hello = null;
    }
}
'
                ),
            ],
            null,
            'This fixer may change functions named `setUp()` or `tearDown()` outside of PHPUnit tests, '.
            'when a class is wrongly seen as a PHPUnit test.'
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAllTokenKindsFound([T_CLASS, T_FUNCTION]);
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $phpUnitTestCaseIndicator = new PhpUnitTestCaseIndicator();
        foreach ($phpUnitTestCaseIndicator->findPhpUnitClasses($tokens) as $indexes) {
            $this->fixSetUpAndTearDown($tokens, $indexes[0], $indexes[1]);
        }
    }

    /**
     * @param int $startIndex
     * @param int $endIndex
     */
    private function fixSetUpAndTearDown(Tokens $tokens, $startIndex, $endIndex)
    {
        $counter = 0;
        $tokensAnalyzer = new TokensAnalyzer($tokens);

        for ($i = $endIndex - 1; $i > $startIndex; --$i) {
            if (2 === $counter) {
                break; // we've seen both method we are interested in, so stop analyzing this class
            }

            if (!$this->isSetupOrTearDownMethod($tokens, $i)) {
                continue;
            }

            ++$counter;
            $visibility = $tokensAnalyzer->getMethodAttributes($i)['visibility'];

            if (T_PUBLIC === $visibility) {
                $index = $tokens->getPrevTokenOfKind($i, [[T_PUBLIC]]);
                $tokens[$index] = new Token([T_PROTECTED, 'protected']);

                continue;
            }

            if (null === $visibility) {
                $tokens->insertAt($i, [new Token([T_PROTECTED, 'protected']), new Token([T_WHITESPACE, ' '])]);
            }
        }
    }

    /**
     * @param int $index
     *
     * @return bool
     */
    private function isSetupOrTearDownMethod(Tokens $tokens, $index)
    {
        $tokensAnalyzer = new TokensAnalyzer($tokens);

        $isMethod = $tokens[$index]->isGivenKind(T_FUNCTION) && !$tokensAnalyzer->isLambda($index);
        if (!$isMethod) {
            return false;
        }

        $functionNameIndex = $tokens->getNextMeaningfulToken($index);
        $functionName = strtolower($tokens[$functionNameIndex]->getContent());

        return 'setup' === $functionName || 'teardown' === $functionName;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\PhpUnit;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\DocBlock\DocBlock;
use PhpCsFixer\DocBlock\Line;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Indicator\PhpUnitTestCaseIndicator;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Tokenizer\TokensAnalyzer;

/**
 * @author Gert de Pagter
 */
final class PhpUnitTestAnnotationFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface, WhitespacesAwareFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Adds or removes @test annotations from tests, following configuration.',
            [
                new CodeSample('<?php
class Test extends \\PhpUnit\\FrameWork\\TestCase
{
    /**
     * @test
     */
    public function itDoesSomething() {} }'.$this->whitespacesConfig->getLineEnding()),
                new CodeSample('<?php
class Test extends \\PhpUnit\\FrameWork\\TestCase
{
public function testItDoesSomething() {}}'.$this->whitespacesConfig->getLineEnding(), ['style' => 'annotation']),
            ],
            null,
            'This fixer may change the name of your tests, and could cause incompatibility with'.
            ' abstract classes or interfaces.'
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before NoEmptyPhpdocFixer, PhpUnitMethodCasingFixer, PhpdocTrimFixer.
     */
    public function getPriority()
    {
        return 10;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAllTokenKindsFound([T_CLASS, T_FUNCTION]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $phpUnitTestCaseIndicator = new PhpUnitTestCaseIndicator();
        foreach ($phpUnitTestCaseIndicator->findPhpUnitClasses($tokens) as $indexes) {
            if ('annotation' === $this->configuration['style']) {
                $this->applyTestAnnotation($tokens, $indexes[0], $indexes[1]);
            } else {
                $this->applyTestPrefix($tokens, $indexes[0], $indexes[1]);
            }
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('style', 'Whether to use the @test annotation or not.'))
                ->setAllowedValues(['prefix', 'annotation'])
                ->setDefault('prefix')
                ->getOption(),
            (new FixerOptionBuilder('case', 'Whether to camel or snake case when adding the test prefix'))
                ->setAllowedValues(['camel', 'snake'])
                ->setDefault('camel')
                ->setDeprecationMessage('Use `php_unit_method_casing` fixer instead.')
                ->getOption(),
        ]);
    }

    /**
     * @param int $startIndex
     * @param int $endIndex
     */
    private function applyTestAnnotation(Tokens $tokens, $startIndex, $endIndex)
    {
        for ($i = $endIndex - 1; $i > $startIndex; --$i) {
            if (!$this->isTestMethod($tokens, $i)) {
                continue;
            }

            $functionNameIndex = $tokens->getNextMeaningfulToken($i);
            $functionName = $tokens[$functionNameIndex]->getContent();

            if ($this->hasTestPrefix($functionName) && !$this->hasProperTestAnnotation($tokens, $i)) {
                $newFunctionName = $this->removeTestPrefix($functionName);
                $tokens[$functionNameIndex] = new Token([T_STRING, $newFunctionName]);
            }

            $docBlockIndex = $this->getDocBlockIndex($tokens, $i);

            // Create a new docblock if it didn't have one before;
            if (!$this->hasDocBlock($tokens, $i)) {
                $this->createDocBlock($tokens, $docBlockIndex);

                continue;
            }
            $lines = $this->updateDocBlock($tokens, $docBlockIndex);

            $lines = $this->addTestAnnotation($lines, $tokens, $docBlockIndex);

            $lines = implode('', $lines);
            $tokens[$docBlockIndex] = new Token([T_DOC_COMMENT, $lines]);
        }
    }

    /**
     * @param int $startIndex
     * @param int $endIndex
     */
    private function applyTestPrefix(Tokens $tokens, $startIndex, $endIndex)
    {
        for ($i = $endIndex - 1; $i > $startIndex; --$i) {
            // We explicitly check again if the function has a doc block to save some time.
            if (!$this->isTestMethod($tokens, $i) || !$this->hasDocBlock($tokens, $i)) {
                continue;
            }

            $docBlockIndex = $this->getDocBlockIndex($tokens, $i);

            $lines = $this->updateDocBlock($tokens, $docBlockIndex);

            $lines = implode('', $lines);
            $tokens[$docBlockIndex] = new Token([T_DOC_COMMENT, $lines]);

            $functionNameIndex = $tokens->getNextMeaningfulToken($i);
            $functionName = $tokens[$functionNameIndex]->getContent();

            if ($this->hasTestPrefix($functionName)) {
                continue;
            }

            $newFunctionName = $this->addTestPrefix($functionName);
            $tokens[$functionNameIndex] = new Token([T_STRING, $newFunctionName]);
        }
    }

    /**
     * @param int$index
     *
     * @return bool
     */
    private function isTestMethod(Tokens $tokens, $index)
    {
        // Check if we are dealing with a (non abstract, non lambda) function
        if (!$this->isMethod($tokens, $index)) {
            return false;
        }

        // if the function name starts with test its a test
        $functionNameIndex = $tokens->getNextMeaningfulToken($index);
        $functionName = $tokens[$functionNameIndex]->getContent();

        if ($this->hasTestPrefix($functionName)) {
            return true;
        }
        // If the function doesn't have test in its name, and no doc block, its not a test
        if (!$this->hasDocBlock($tokens, $index)) {
            return false;
        }

        $docBlockIndex = $this->getDocBlockIndex($tokens, $index);
        $doc = $tokens[$docBlockIndex]->getContent();
        if (false === strpos($doc, '@test')) {
            return false;
        }

        return true;
    }

    /**
     * @param int $index
     *
     * @return bool
     */
    private function isMethod(Tokens $tokens, $index)
    {
        $tokensAnalyzer = new TokensAnalyzer($tokens);

        return $tokens[$index]->isGivenKind(T_FUNCTION) && !$tokensAnalyzer->isLambda($index);
    }

    /**
     * @param int $index
     *
     * @return bool
     */
    private function hasDocBlock(Tokens $tokens, $index)
    {
        $docBlockIndex = $this->getDocBlockIndex($tokens, $index);

        return $tokens[$docBlockIndex]->isGivenKind(T_DOC_COMMENT);
    }

    /**
     * @param int $index
     *
     * @return int
     */
    private function getDocBlockIndex(Tokens $tokens, $index)
    {
        do {
            $index = $tokens->getPrevNonWhitespace($index);
        } while ($tokens[$index]->isGivenKind([T_PUBLIC, T_PROTECTED, T_PRIVATE, T_FINAL, T_ABSTRACT, T_COMMENT]));

        return $index;
    }

    /**
     * @param string $functionName
     *
     * @return bool
     */
    private function hasTestPrefix($functionName)
    {
        return 0 === strpos($functionName, 'test');
    }

    /**
     * @param int $index
     *
     * @return bool
     */
    private function hasProperTestAnnotation(Tokens $tokens, $index)
    {
        $docBlockIndex = $this->getDocBlockIndex($tokens, $index);
        $doc = $tokens[$docBlockIndex]->getContent();

        return 1 === Preg::match('/\*\s+@test\b/', $doc);
    }

    /**
     * @param string $functionName
     *
     * @return string
     */
    private function removeTestPrefix($functionName)
    {
        $remainder = Preg::replace('/^test(?=[A-Z_])_?/', '', $functionName);

        if ('' === $remainder) {
            return $functionName;
        }

        return lcfirst($remainder);
    }

    /**
     * @param string $functionName
     *
     * @return string
     */
    private function addTestPrefix($functionName)
    {
        if ('camel' !== $this->configuration['case']) {
            return 'test_'.$functionName;
        }

        return'test'.ucfirst($functionName);
    }

    /**
     * @param int $index
     *
     * @return string
     */
    private function detectIndent(Tokens $tokens, $index)
    {
        if (!$tokens[$index - 1]->isWhitespace()) {
            return ''; // cannot detect indent
        }

        $explodedContent = explode($this->whitespacesConfig->getLineEnding(), $tokens[$index - 1]->getContent());

        return end($explodedContent);
    }

    /**
     * @param int $docBlockIndex
     */
    private function createDocBlock(Tokens $tokens, $docBlockIndex)
    {
        $lineEnd = $this->whitespacesConfig->getLineEnding();
        $originalIndent = $this->detectIndent($tokens, $tokens->getNextNonWhitespace($docBlockIndex));
        $toInsert = [
            new Token([T_DOC_COMMENT, '/**'.$lineEnd."{$originalIndent} * @test".$lineEnd."{$originalIndent} */"]),
            new Token([T_WHITESPACE, $lineEnd.$originalIndent]),
        ];
        $index = $tokens->getNextMeaningfulToken($docBlockIndex);
        $tokens->insertAt($index, $toInsert);
    }

    /**
     * @param int $docBlockIndex
     *
     * @return Line[]
     */
    private function updateDocBlock(Tokens $tokens, $docBlockIndex)
    {
        $doc = new DocBlock($tokens[$docBlockIndex]->getContent());
        $lines = $doc->getLines();

        return $this->updateLines($lines, $tokens, $docBlockIndex);
    }

    /**
     * @param Line[] $lines
     * @param int    $docBlockIndex
     *
     * @return Line[]
     */
    private function updateLines($lines, Tokens $tokens, $docBlockIndex)
    {
        $needsAnnotation = 'annotation' === $this->configuration['style'];

        $doc = new DocBlock($tokens[$docBlockIndex]->getContent());
        for ($i = 0; $i < \count($lines); ++$i) {
            // If we need to add test annotation and it is a single line comment we need to deal with that separately
            if ($needsAnnotation && ($lines[$i]->isTheStart() && $lines[$i]->isTheEnd())) {
                if (!$this->doesDocBlockContainTest($doc)) {
                    $lines = $this->splitUpDocBlock($lines, $tokens, $docBlockIndex);

                    return $this->updateLines($lines, $tokens, $docBlockIndex);
                }
                // One we split it up, we run the function again, so we deal with other things in a proper way
            }

            if (!$needsAnnotation &&
                false !== strpos($lines[$i]->getContent(), ' @test') &&
                false === strpos($lines[$i]->getContent(), '@testWith') &&
                false === strpos($lines[$i]->getContent(), '@testdox')
            ) {
                // We remove @test from the doc block
                $lines[$i] = new Line(str_replace(' @test', '', $lines[$i]->getContent()));
            }
            // ignore the line if it isn't @depends
            if (false === strpos($lines[$i]->getContent(), '@depends')) {
                continue;
            }

            $lines[$i] = $this->updateDependsAnnotation($lines[$i]);
        }

        return $lines;
    }

    /**
     * Take a one line doc block, and turn it into a multi line doc block.
     *
     * @param Line[] $lines
     * @param int    $docBlockIndex
     *
     * @return Line[]
     */
    private function splitUpDocBlock($lines, Tokens $tokens, $docBlockIndex)
    {
        $lineContent = $this->getSingleLineDocBlockEntry($lines);
        $lineEnd = $this->whitespacesConfig->getLineEnding();
        $originalIndent = $this->detectIndent($tokens, $tokens->getNextNonWhitespace($docBlockIndex));

        return [
            new Line('/**'.$lineEnd),
            new Line($originalIndent.' * '.$lineContent.$lineEnd),
            new Line($originalIndent.' */'),
        ];
    }

    /**
     * @param Line []$line
     *
     * @return string
     */
    private function getSingleLineDocBlockEntry($line)
    {
        $line = $line[0];
        $line = str_replace('*/', '', $line);
        $line = trim($line);
        $line = str_split($line);
        $i = \count($line);
        do {
            --$i;
        } while ('*' !== $line[$i] && '*' !== $line[$i - 1] && '/' !== $line[$i - 2]);
        if (' ' === $line[$i]) {
            ++$i;
        }
        $line = \array_slice($line, $i);

        return implode('', $line);
    }

    /**
     * Updates the depends tag on the current doc block.
     *
     * @return Line
     */
    private function updateDependsAnnotation(Line $line)
    {
        if ('annotation' === $this->configuration['style']) {
            return $this->removeTestPrefixFromDependsAnnotation($line);
        }

        return $this->addTestPrefixToDependsAnnotation($line);
    }

    /**
     * @return Line
     */
    private function removeTestPrefixFromDependsAnnotation(Line $line)
    {
        $line = str_split($line->getContent());

        $dependsIndex = $this->findWhereDependsFunctionNameStarts($line);
        $dependsFunctionName = implode('', \array_slice($line, $dependsIndex));

        if ($this->hasTestPrefix($dependsFunctionName)) {
            $dependsFunctionName = $this->removeTestPrefix($dependsFunctionName);
        }
        array_splice($line, $dependsIndex);

        return new Line(implode('', $line).$dependsFunctionName);
    }

    /**
     * @return Line
     */
    private function addTestPrefixToDependsAnnotation(Line $line)
    {
        $line = str_split($line->getContent());
        $dependsIndex = $this->findWhereDependsFunctionNameStarts($line);
        $dependsFunctionName = implode('', \array_slice($line, $dependsIndex));

        if (!$this->hasTestPrefix($dependsFunctionName)) {
            $dependsFunctionName = $this->addTestPrefix($dependsFunctionName);
        }

        array_splice($line, $dependsIndex);

        return new Line(implode('', $line).$dependsFunctionName);
    }

    /**
     * Helps to find where the function name in the doc block starts.
     *
     * @return int
     */
    private function findWhereDependsFunctionNameStarts(array $line)
    {
        $counter = \count($line);

        do {
            --$counter;
        } while (' ' !== $line[$counter]);

        return $counter + 1;
    }

    /**
     * @param Line[] $lines
     * @param int    $docBlockIndex
     *
     * @return Line[]
     */
    private function addTestAnnotation($lines, Tokens $tokens, $docBlockIndex)
    {
        $doc = new DocBlock($tokens[$docBlockIndex]->getContent());

        if (!$this->doesDocBlockContainTest($doc)) {
            $originalIndent = $this->detectIndent($tokens, $docBlockIndex);
            $lineEnd = $this->whitespacesConfig->getLineEnding();

            array_splice($lines, -1, 0, $originalIndent.' *'.$lineEnd.$originalIndent.' * @test'.$lineEnd);
        }

        return $lines;
    }

    /**
     * @return bool
     */
    private function doesDocBlockContainTest(DocBlock $doc)
    {
        return !empty($doc->getAnnotationsOfType('test'));
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\PhpUnit;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\DocBlock\DocBlock;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Filippo Tessarotto <zoeslam@gmail.com>
 */
final class PhpUnitOrderedCoversFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Order `@covers` annotation of PHPUnit tests.',
            [
                new CodeSample(
                    '<?php
/**
 * @covers Foo
 * @covers Bar
 */
final class MyTest extends \PHPUnit_Framework_TestCase
{}
'
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run after PhpUnitFqcnAnnotationFixer.
     */
    public function getPriority()
    {
        return -10;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAllTokenKindsFound([T_CLASS, T_DOC_COMMENT]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        for ($index = $tokens->count() - 1; $index > 0; --$index) {
            if (!$tokens[$index]->isGivenKind(T_DOC_COMMENT) || 0 === Preg::match('/@covers\s.+@covers\s/s', $tokens[$index]->getContent())) {
                continue;
            }

            $docBlock = new DocBlock($tokens[$index]->getContent());
            $covers = $docBlock->getAnnotationsOfType('covers');

            $coversMap = [];
            foreach ($covers as $annotation) {
                $rawContent = $annotation->getContent();

                $comparableContent = Preg::replace('/\*\s*@covers\s+(.+)/', '\1', strtolower(trim($rawContent)));
                $coversMap[$comparableContent] = $rawContent;
            }
            $orderedCoversMap = $coversMap;
            ksort($orderedCoversMap, SORT_STRING);
            if ($orderedCoversMap === $coversMap) {
                continue;
            }

            $lines = $docBlock->getLines();
            foreach (array_reverse($covers) as $annotation) {
                array_splice(
                    $lines,
                    $annotation->getStart(),
                    $annotation->getEnd() - $annotation->getStart() + 1,
                    array_pop($orderedCoversMap)
                );
            }

            $tokens[$index] = new Token([T_DOC_COMMENT, implode('', $lines)]);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\PhpUnit;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\DocBlock\Annotation;
use PhpCsFixer\DocBlock\DocBlock;
use PhpCsFixer\DocBlock\Line;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Indicator\PhpUnitTestCaseIndicator;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use SplFileInfo;

/**
 * @author Jefersson Nathan <malukenho.dev@gmail.com>
 */
final class PhpUnitSizeClassFixer extends AbstractFixer implements WhitespacesAwareFixerInterface, ConfigurationDefinitionFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'All PHPUnit test cases should have `@small`, `@medium` or `@large` annotation to enable run time limits.',
            [
                new CodeSample("<?php\nclass MyTest extends TestCase {}\n"),
                new CodeSample("<?php\nclass MyTest extends TestCase {}\n", ['group' => 'medium']),
            ],
            'The special groups [small, medium, large] provides a way to identify tests that are taking long to be executed.'
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAllTokenKindsFound([T_CLASS, T_STRING]);
    }

    protected function applyFix(SplFileInfo $file, Tokens $tokens)
    {
        $phpUnitTestCaseIndicator = new PhpUnitTestCaseIndicator();

        foreach ($phpUnitTestCaseIndicator->findPhpUnitClasses($tokens, true) as $indexes) {
            $this->markClassSize($tokens, $indexes[0]);
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('group', 'Define a specific group to be used in case no group is already in use'))
                ->setAllowedValues(['small', 'medium', 'large'])
                ->setDefault('small')
                ->getOption(),
        ]);
    }

    /**
     * @param int $startIndex
     */
    private function markClassSize(Tokens $tokens, $startIndex)
    {
        $classIndex = $tokens->getPrevTokenOfKind($startIndex, [[T_CLASS]]);

        if ($this->isAbstractClass($tokens, $classIndex)) {
            return;
        }

        $docBlockIndex = $this->getDocBlockIndex($tokens, $classIndex);

        if ($this->hasDocBlock($tokens, $classIndex)) {
            $this->updateDocBlockIfNeeded($tokens, $docBlockIndex);

            return;
        }

        $this->createDocBlock($tokens, $docBlockIndex);
    }

    /**
     * @param int $i
     *
     * @return bool
     */
    private function isAbstractClass(Tokens $tokens, $i)
    {
        $typeIndex = $tokens->getPrevMeaningfulToken($i);

        return $tokens[$typeIndex]->isGivenKind(T_ABSTRACT);
    }

    private function createDocBlock(Tokens $tokens, $docBlockIndex)
    {
        $lineEnd = $this->whitespacesConfig->getLineEnding();
        $originalIndent = $this->detectIndent($tokens, $tokens->getNextNonWhitespace($docBlockIndex));
        $group = $this->configuration['group'];
        $toInsert = [
            new Token([T_DOC_COMMENT, '/**'.$lineEnd."{$originalIndent} * @".$group.$lineEnd."{$originalIndent} */"]),
            new Token([T_WHITESPACE, $lineEnd.$originalIndent]),
        ];
        $index = $tokens->getNextMeaningfulToken($docBlockIndex);
        $tokens->insertAt($index, $toInsert);
    }

    private function updateDocBlockIfNeeded(Tokens $tokens, $docBlockIndex)
    {
        $doc = new DocBlock($tokens[$docBlockIndex]->getContent());
        if (!empty($this->filterDocBlock($doc))) {
            return;
        }
        $doc = $this->makeDocBlockMultiLineIfNeeded($doc, $tokens, $docBlockIndex);
        $lines = $this->addSizeAnnotation($doc, $tokens, $docBlockIndex);
        $lines = implode('', $lines);

        $tokens[$docBlockIndex] = new Token([T_DOC_COMMENT, $lines]);
    }

    /**
     * @param int $index
     *
     * @return bool
     */
    private function hasDocBlock(Tokens $tokens, $index)
    {
        $docBlockIndex = $this->getDocBlockIndex($tokens, $index);

        return $tokens[$docBlockIndex]->isGivenKind(T_DOC_COMMENT);
    }

    /**
     * @param int $index
     *
     * @return int
     */
    private function getDocBlockIndex(Tokens $tokens, $index)
    {
        do {
            $index = $tokens->getPrevNonWhitespace($index);
        } while ($tokens[$index]->isGivenKind([T_PUBLIC, T_PROTECTED, T_PRIVATE, T_FINAL, T_ABSTRACT, T_COMMENT]));

        return $index;
    }

    /**
     * @param int $index
     *
     * @return string
     */
    private function detectIndent(Tokens $tokens, $index)
    {
        if (!$tokens[$index - 1]->isWhitespace()) {
            return ''; // cannot detect indent
        }

        $explodedContent = explode($this->whitespacesConfig->getLineEnding(), $tokens[$index - 1]->getContent());

        return end($explodedContent);
    }

    /**
     * @param int $docBlockIndex
     *
     * @return Line[]
     */
    private function addSizeAnnotation(DocBlock $docBlock, Tokens $tokens, $docBlockIndex)
    {
        $lines = $docBlock->getLines();
        $originalIndent = $this->detectIndent($tokens, $docBlockIndex);
        $lineEnd = $this->whitespacesConfig->getLineEnding();
        $group = $this->configuration['group'];
        array_splice($lines, -1, 0, $originalIndent.' *'.$lineEnd.$originalIndent.' * @'.$group.$lineEnd);

        return $lines;
    }

    /**
     * @param int $docBlockIndex
     *
     * @return DocBlock
     */
    private function makeDocBlockMultiLineIfNeeded(DocBlock $doc, Tokens $tokens, $docBlockIndex)
    {
        $lines = $doc->getLines();
        if (1 === \count($lines) && empty($this->filterDocBlock($doc))) {
            $lines = $this->splitUpDocBlock($lines, $tokens, $docBlockIndex);

            return new DocBlock(implode('', $lines));
        }

        return $doc;
    }

    /**
     * Take a one line doc block, and turn it into a multi line doc block.
     *
     * @param Line[] $lines
     * @param int    $docBlockIndex
     *
     * @return Line[]
     */
    private function splitUpDocBlock($lines, Tokens $tokens, $docBlockIndex)
    {
        $lineContent = $this->getSingleLineDocBlockEntry($lines);
        $lineEnd = $this->whitespacesConfig->getLineEnding();
        $originalIndent = $this->detectIndent($tokens, $tokens->getNextNonWhitespace($docBlockIndex));

        return [
            new Line('/**'.$lineEnd),
            new Line($originalIndent.' * '.$lineContent.$lineEnd),
            new Line($originalIndent.' */'),
        ];
    }

    /**
     * @param Line|Line[]|string $line
     *
     * @return string
     */
    private function getSingleLineDocBlockEntry($line)
    {
        $line = $line[0];
        $line = str_replace('*/', '', $line);
        $line = trim($line);
        $line = str_split($line);
        $i = \count($line);
        do {
            --$i;
        } while ('*' !== $line[$i] && '*' !== $line[$i - 1] && '/' !== $line[$i - 2]);
        if (' ' === $line[$i]) {
            ++$i;
        }
        $line = \array_slice($line, $i);

        return implode('', $line);
    }

    /**
     * @return Annotation[][]
     */
    private function filterDocBlock(DocBlock $doc)
    {
        return array_filter([
            $doc->getAnnotationsOfType('small'),
            $doc->getAnnotationsOfType('large'),
            $doc->getAnnotationsOfType('medium'),
        ]);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\PhpUnit;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\DocBlock\Annotation;
use PhpCsFixer\DocBlock\DocBlock;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Indicator\PhpUnitTestCaseIndicator;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Tokenizer\TokensAnalyzer;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class PhpUnitNoExpectationAnnotationFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface, WhitespacesAwareFixerInterface
{
    /**
     * @var bool
     */
    private $fixMessageRegExp;

    /**
     * {@inheritdoc}
     */
    public function configure(array $configuration = null)
    {
        parent::configure($configuration);

        $this->fixMessageRegExp = PhpUnitTargetVersion::fulfills($this->configuration['target'], PhpUnitTargetVersion::VERSION_4_3);
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Usages of `@expectedException*` annotations MUST be replaced by `->setExpectedException*` methods.',
            [
                new CodeSample(
                    '<?php
final class MyTest extends \PHPUnit_Framework_TestCase
{
    /**
     * @expectedException FooException
     * @expectedExceptionMessageRegExp /foo.*$/
     * @expectedExceptionCode 123
     */
    function testAaa()
    {
        aaa();
    }
}
'
                ),
                new CodeSample(
                    '<?php
final class MyTest extends \PHPUnit_Framework_TestCase
{
    /**
     * @expectedException FooException
     * @expectedExceptionCode 123
     */
    function testBbb()
    {
        bbb();
    }

    /**
     * @expectedException FooException
     * @expectedExceptionMessageRegExp /foo.*$/
     */
    function testCcc()
    {
        ccc();
    }
}
',
                    ['target' => PhpUnitTargetVersion::VERSION_3_2]
                ),
            ],
            null,
            'Risky when PHPUnit classes are overridden or not accessible, or when project has PHPUnit incompatibilities.'
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before NoEmptyPhpdocFixer, PhpUnitExpectationFixer.
     */
    public function getPriority()
    {
        return 10;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAllTokenKindsFound([T_CLASS, T_DOC_COMMENT]);
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $phpUnitTestCaseIndicator = new PhpUnitTestCaseIndicator();
        foreach ($phpUnitTestCaseIndicator->findPhpUnitClasses($tokens) as $indexes) {
            $this->fixPhpUnitClass($tokens, $indexes[0], $indexes[1]);
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('target', 'Target version of PHPUnit.'))
                ->setAllowedTypes(['string'])
                ->setAllowedValues([PhpUnitTargetVersion::VERSION_3_2, PhpUnitTargetVersion::VERSION_4_3, PhpUnitTargetVersion::VERSION_NEWEST])
                ->setDefault(PhpUnitTargetVersion::VERSION_NEWEST)
                ->getOption(),
            (new FixerOptionBuilder('use_class_const', 'Use ::class notation.'))
                ->setAllowedTypes(['bool'])
                ->setDefault(true)
                ->getOption(),
        ]);
    }

    /**
     * @param int $index
     *
     * @return string
     */
    private function detectIndent(Tokens $tokens, $index)
    {
        if (!$tokens[$index - 1]->isWhitespace()) {
            return ''; // cannot detect indent
        }

        $explodedContent = explode("\n", $tokens[$index - 1]->getContent());

        return end($explodedContent);
    }

    /**
     * @param int $startIndex
     * @param int $endIndex
     */
    private function fixPhpUnitClass(Tokens $tokens, $startIndex, $endIndex)
    {
        $tokensAnalyzer = new TokensAnalyzer($tokens);

        for ($i = $endIndex - 1; $i > $startIndex; --$i) {
            if (!$tokens[$i]->isGivenKind(T_FUNCTION) || $tokensAnalyzer->isLambda($i)) {
                continue;
            }

            $functionIndex = $i;
            $docBlockIndex = $i;

            // ignore abstract functions
            $braceIndex = $tokens->getNextTokenOfKind($functionIndex, [';', '{']);
            if (!$tokens[$braceIndex]->equals('{')) {
                continue;
            }

            do {
                $docBlockIndex = $tokens->getPrevNonWhitespace($docBlockIndex);
            } while ($tokens[$docBlockIndex]->isGivenKind([T_PUBLIC, T_PROTECTED, T_PRIVATE, T_FINAL, T_ABSTRACT, T_COMMENT]));

            if (!$tokens[$docBlockIndex]->isGivenKind(T_DOC_COMMENT)) {
                continue;
            }

            $doc = new DocBlock($tokens[$docBlockIndex]->getContent());
            $annotations = [];

            foreach ($doc->getAnnotationsOfType([
                'expectedException',
                'expectedExceptionCode',
                'expectedExceptionMessage',
                'expectedExceptionMessageRegExp',
            ]) as $annotation) {
                $tag = $annotation->getTag()->getName();
                $content = $this->extractContentFromAnnotation($annotation);
                $annotations[$tag] = $content;
                $annotation->remove();
            }

            if (!isset($annotations['expectedException'])) {
                continue;
            }
            if (!$this->fixMessageRegExp && isset($annotations['expectedExceptionMessageRegExp'])) {
                continue;
            }

            $originalIndent = $this->detectIndent($tokens, $docBlockIndex);

            $paramList = $this->annotationsToParamList($annotations);

            $newMethodsCode = '<?php $this->'
                .(isset($annotations['expectedExceptionMessageRegExp']) ? 'setExpectedExceptionRegExp' : 'setExpectedException')
                .'('
                .implode(', ', $paramList)
                .');';
            $newMethods = Tokens::fromCode($newMethodsCode);
            $newMethods[0] = new Token([
                T_WHITESPACE,
                $this->whitespacesConfig->getLineEnding().$originalIndent.$this->whitespacesConfig->getIndent(),
            ]);

            // apply changes
            $tokens[$docBlockIndex] = new Token([T_DOC_COMMENT, $doc->getContent()]);
            $tokens->insertAt($braceIndex + 1, $newMethods);

            $whitespaceIndex = $braceIndex + $newMethods->getSize() + 1;
            $tokens[$whitespaceIndex] = new Token([
                T_WHITESPACE,
                $this->whitespacesConfig->getLineEnding().$tokens[$whitespaceIndex]->getContent(),
            ]);

            $i = $docBlockIndex;
        }
    }

    /**
     * @return string
     */
    private function extractContentFromAnnotation(Annotation $annotation)
    {
        $tag = $annotation->getTag()->getName();

        if (1 !== Preg::match('/@'.$tag.'\s+(.+)$/s', $annotation->getContent(), $matches)) {
            return '';
        }

        $content = $matches[1];

        if (Preg::match('/\R/u', $content)) {
            $content = Preg::replace('/\s*\R+\s*\*\s*/u', ' ', $content);
        }

        return rtrim($content);
    }

    private function annotationsToParamList(array $annotations)
    {
        $params = [];
        $exceptionClass = ltrim($annotations['expectedException'], '\\');

        if ($this->configuration['use_class_const']) {
            $params[] = "\\{$exceptionClass}::class";
        } else {
            $params[] = "'{$exceptionClass}'";
        }

        if (isset($annotations['expectedExceptionMessage'])) {
            $params[] = var_export($annotations['expectedExceptionMessage'], true);
        } elseif (isset($annotations['expectedExceptionMessageRegExp'])) {
            $params[] = var_export($annotations['expectedExceptionMessageRegExp'], true);
        } elseif (isset($annotations['expectedExceptionCode'])) {
            $params[] = 'null';
        }

        if (isset($annotations['expectedExceptionCode'])) {
            $params[] = $annotations['expectedExceptionCode'];
        }

        return $params;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\PhpUnit;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Indicator\PhpUnitTestCaseIndicator;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Tokenizer\TokensAnalyzer;

/**
 * @author Filippo Tessarotto <zoeslam@gmail.com>
 */
final class PhpUnitDedicateAssertInternalTypeFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * @var array
     */
    private $typeToDedicatedAssertMap = [
        'array' => 'assertIsArray',
        'boolean' => 'assertIsBool',
        'bool' => 'assertIsBool',
        'double' => 'assertIsFloat',
        'float' => 'assertIsFloat',
        'integer' => 'assertIsInt',
        'int' => 'assertIsInt',
        'null' => 'assertNull',
        'numeric' => 'assertIsNumeric',
        'object' => 'assertIsObject',
        'real' => 'assertIsFloat',
        'resource' => 'assertIsResource',
        'string' => 'assertIsString',
        'scalar' => 'assertIsScalar',
        'callable' => 'assertIsCallable',
        'iterable' => 'assertIsIterable',
    ];

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'PHPUnit assertions like `assertIsArray` should be used over `assertInternalType`.',
            [
                new CodeSample(
                    '<?php
final class MyTest extends \PHPUnit\Framework\TestCase
{
    public function testMe()
    {
        $this->assertInternalType("array", $var);
        $this->assertInternalType("boolean", $var);
    }
}
'
                ),
            ],
            null,
            'Risky when PHPUnit methods are overridden or when project has PHPUnit incompatibilities.'
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAllTokenKindsFound([T_CLASS, T_FUNCTION]);
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     *
     * Must run after PhpUnitDedicateAssertFixer.
     */
    public function getPriority()
    {
        return -16;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $phpUnitTestCaseIndicator = new PhpUnitTestCaseIndicator();
        foreach ($phpUnitTestCaseIndicator->findPhpUnitClasses($tokens) as $indexes) {
            $this->updateAssertInternalTypeMethods($tokens, $indexes[0], $indexes[1]);
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('target', 'Target version of PHPUnit.'))
                ->setAllowedTypes(['string'])
                ->setAllowedValues([PhpUnitTargetVersion::VERSION_7_5, PhpUnitTargetVersion::VERSION_NEWEST])
                ->setDefault(PhpUnitTargetVersion::VERSION_NEWEST)
                ->getOption(),
        ]);
    }

    /**
     * @param int $startIndex
     * @param int $endIndex
     */
    private function updateAssertInternalTypeMethods(Tokens $tokens, $startIndex, $endIndex)
    {
        $anonymousClassIndexes = [];
        $tokenAnalyzer = new TokensAnalyzer($tokens);
        for ($index = $startIndex; $index < $endIndex; ++$index) {
            if (!$tokens[$index]->isClassy() || !$tokenAnalyzer->isAnonymousClass($index)) {
                continue;
            }

            $openingBraceIndex = $tokens->getNextTokenOfKind($index, ['{']);
            $closingBraceIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $openingBraceIndex);

            $anonymousClassIndexes[$closingBraceIndex] = $openingBraceIndex;
        }

        for ($index = $endIndex - 1; $index > $startIndex; --$index) {
            if (isset($anonymousClassIndexes[$index])) {
                $index = $anonymousClassIndexes[$index];

                continue;
            }

            if (!$tokens[$index]->isGivenKind(T_STRING)) {
                continue;
            }

            $functionName = strtolower($tokens[$index]->getContent());
            if ('assertinternaltype' !== $functionName && 'assertnotinternaltype' !== $functionName) {
                continue;
            }

            $bracketTokenIndex = $tokens->getNextMeaningfulToken($index);
            if (!$tokens[$bracketTokenIndex]->equals('(')) {
                continue;
            }

            $expectedTypeTokenIndex = $tokens->getNextMeaningfulToken($bracketTokenIndex);
            $expectedTypeToken = $tokens[$expectedTypeTokenIndex];
            if (!$expectedTypeToken->equals([T_CONSTANT_ENCAPSED_STRING])) {
                continue;
            }

            $expectedType = trim($expectedTypeToken->getContent(), '\'"');
            if (!isset($this->typeToDedicatedAssertMap[$expectedType])) {
                continue;
            }

            $commaTokenIndex = $tokens->getNextMeaningfulToken($expectedTypeTokenIndex);
            if (!$tokens[$commaTokenIndex]->equals(',')) {
                continue;
            }

            $newAssertion = $this->typeToDedicatedAssertMap[$expectedType];
            if ('assertnotinternaltype' === $functionName) {
                $newAssertion = str_replace('Is', 'IsNot', $newAssertion);
                $newAssertion = str_replace('Null', 'NotNull', $newAssertion);
            }

            $nextMeaningfulTokenIndex = $tokens->getNextMeaningfulToken($commaTokenIndex);

            $tokens->overrideRange($index, $nextMeaningfulTokenIndex - 1, [
                new Token([T_STRING, $newAssertion]),
                new Token('('),
            ]);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\PhpUnit;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Indicator\PhpUnitTestCaseIndicator;
use PhpCsFixer\Tokenizer\Analyzer\ArgumentsAnalyzer;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class PhpUnitMockFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * @var bool
     */
    private $fixCreatePartialMock;

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Usages of `->getMock` and `->getMockWithoutInvokingTheOriginalConstructor` methods MUST be replaced by `->createMock` or `->createPartialMock` methods.',
            [
                new CodeSample(
                    '<?php
final class MyTest extends \PHPUnit_Framework_TestCase
{
    public function testFoo()
    {
        $mock = $this->getMockWithoutInvokingTheOriginalConstructor("Foo");
        $mock1 = $this->getMock("Foo");
        $mock1 = $this->getMock("Bar", ["aaa"]);
        $mock1 = $this->getMock("Baz", ["aaa"], ["argument"]); // version with more than 2 params is not supported
    }
}
'
                ),
                new CodeSample(
                    '<?php
final class MyTest extends \PHPUnit_Framework_TestCase
{
    public function testFoo()
    {
        $mock1 = $this->getMock("Foo");
        $mock1 = $this->getMock("Bar", ["aaa"]); // version with multiple params is not supported
    }
}
',
                    ['target' => PhpUnitTargetVersion::VERSION_5_4]
                ),
            ],
            null,
            'Risky when PHPUnit classes are overridden or not accessible, or when project has PHPUnit incompatibilities.'
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_CLASS);
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    public function configure(array $configuration = null)
    {
        parent::configure($configuration);

        $this->fixCreatePartialMock = PhpUnitTargetVersion::fulfills($this->configuration['target'], PhpUnitTargetVersion::VERSION_5_5);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $phpUnitTestCaseIndicator = new PhpUnitTestCaseIndicator();
        $argumentsAnalyzer = new ArgumentsAnalyzer();

        foreach ($phpUnitTestCaseIndicator->findPhpUnitClasses($tokens) as $indexes) {
            for ($index = $indexes[0]; $index < $indexes[1]; ++$index) {
                if (!$tokens[$index]->isGivenKind(T_OBJECT_OPERATOR)) {
                    continue;
                }

                $index = $tokens->getNextMeaningfulToken($index);

                if ($tokens[$index]->equals([T_STRING, 'getMockWithoutInvokingTheOriginalConstructor'], false)) {
                    $tokens[$index] = new Token([T_STRING, 'createMock']);
                } elseif ($tokens[$index]->equals([T_STRING, 'getMock'], false)) {
                    $openingParenthesis = $tokens->getNextMeaningfulToken($index);
                    $closingParenthesis = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $openingParenthesis);

                    $argumentsCount = $argumentsAnalyzer->countArguments($tokens, $openingParenthesis, $closingParenthesis);

                    if (1 === $argumentsCount) {
                        $tokens[$index] = new Token([T_STRING, 'createMock']);
                    } elseif (2 === $argumentsCount && true === $this->fixCreatePartialMock) {
                        $tokens[$index] = new Token([T_STRING, 'createPartialMock']);
                    }
                }
            }
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('target', 'Target version of PHPUnit.'))
                ->setAllowedTypes(['string'])
                ->setAllowedValues([PhpUnitTargetVersion::VERSION_5_4, PhpUnitTargetVersion::VERSION_5_5, PhpUnitTargetVersion::VERSION_NEWEST])
                ->setDefault(PhpUnitTargetVersion::VERSION_NEWEST)
                ->getOption(),
        ]);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\PhpUnit;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\DocBlock\DocBlock;
use PhpCsFixer\DocBlock\Line;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerConfiguration\AllowedValueSubset;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Indicator\PhpUnitTestCaseIndicator;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Gert de Pagter <BackEndTea@gmail.com>
 */
final class PhpUnitInternalClassFixer extends AbstractFixer implements WhitespacesAwareFixerInterface, ConfigurationDefinitionFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'All PHPUnit test classes should be marked as internal.',
            [
                new CodeSample("<?php\nclass MyTest extends TestCase {}\n"),
                new CodeSample(
                    "<?php\nclass MyTest extends TestCase {}\nfinal class FinalTest extends TestCase {}\nabstract class AbstractTest extends TestCase {}\n",
                    ['types' => ['final']]
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before FinalInternalClassFixer.
     */
    public function getPriority()
    {
        return 68;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_CLASS);
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        $types = ['normal', 'final', 'abstract'];

        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('types', 'What types of classes to mark as internal'))
                ->setAllowedValues([(new AllowedValueSubset($types))])
                ->setAllowedTypes(['array'])
                ->setDefault(['normal', 'final'])
                ->getOption(),
        ]);
    }

    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $phpUnitTestCaseIndicator = new PhpUnitTestCaseIndicator();

        foreach ($phpUnitTestCaseIndicator->findPhpUnitClasses($tokens, true) as $indexes) {
            $this->markClassInternal($tokens, $indexes[0]);
        }
    }

    /**
     * @param int $startIndex
     */
    private function markClassInternal(Tokens $tokens, $startIndex)
    {
        $classIndex = $tokens->getPrevTokenOfKind($startIndex, [[T_CLASS]]);

        if (!$this->isAllowedByConfiguration($tokens, $classIndex)) {
            return;
        }

        $docBlockIndex = $this->getDocBlockIndex($tokens, $classIndex);

        if ($this->hasDocBlock($tokens, $classIndex)) {
            $this->updateDocBlockIfNeeded($tokens, $docBlockIndex);

            return;
        }

        $this->createDocBlock($tokens, $docBlockIndex);
    }

    /**
     * @param int $i
     *
     * @return bool
     */
    private function isAllowedByConfiguration(Tokens $tokens, $i)
    {
        $typeIndex = $tokens->getPrevMeaningfulToken($i);
        if ($tokens[$typeIndex]->isGivenKind(T_FINAL)) {
            return \in_array('final', $this->configuration['types'], true);
        }

        if ($tokens[$typeIndex]->isGivenKind(T_ABSTRACT)) {
            return \in_array('abstract', $this->configuration['types'], true);
        }

        return \in_array('normal', $this->configuration['types'], true);
    }

    private function createDocBlock(Tokens $tokens, $docBlockIndex)
    {
        $lineEnd = $this->whitespacesConfig->getLineEnding();
        $originalIndent = $this->detectIndent($tokens, $tokens->getNextNonWhitespace($docBlockIndex));
        $toInsert = [
            new Token([T_DOC_COMMENT, '/**'.$lineEnd."{$originalIndent} * @internal".$lineEnd."{$originalIndent} */"]),
            new Token([T_WHITESPACE, $lineEnd.$originalIndent]),
        ];
        $index = $tokens->getNextMeaningfulToken($docBlockIndex);
        $tokens->insertAt($index, $toInsert);
    }

    private function updateDocBlockIfNeeded(Tokens $tokens, $docBlockIndex)
    {
        $doc = new DocBlock($tokens[$docBlockIndex]->getContent());
        if (!empty($doc->getAnnotationsOfType('internal'))) {
            return;
        }
        $doc = $this->makeDocBlockMultiLineIfNeeded($doc, $tokens, $docBlockIndex);
        $lines = $this->addInternalAnnotation($doc, $tokens, $docBlockIndex);
        $lines = implode('', $lines);

        $tokens[$docBlockIndex] = new Token([T_DOC_COMMENT, $lines]);
    }

    /**
     * @param int $index
     *
     * @return bool
     */
    private function hasDocBlock(Tokens $tokens, $index)
    {
        $docBlockIndex = $this->getDocBlockIndex($tokens, $index);

        return $tokens[$docBlockIndex]->isGivenKind(T_DOC_COMMENT);
    }

    /**
     * @param int $index
     *
     * @return int
     */
    private function getDocBlockIndex(Tokens $tokens, $index)
    {
        do {
            $index = $tokens->getPrevNonWhitespace($index);
        } while ($tokens[$index]->isGivenKind([T_PUBLIC, T_PROTECTED, T_PRIVATE, T_FINAL, T_ABSTRACT, T_COMMENT]));

        return $index;
    }

    /**
     * @param int $index
     *
     * @return string
     */
    private function detectIndent(Tokens $tokens, $index)
    {
        if (!$tokens[$index - 1]->isWhitespace()) {
            return ''; // cannot detect indent
        }

        $explodedContent = explode($this->whitespacesConfig->getLineEnding(), $tokens[$index - 1]->getContent());

        return end($explodedContent);
    }

    /**
     * @param int $docBlockIndex
     *
     * @return Line[]
     */
    private function addInternalAnnotation(DocBlock $docBlock, Tokens $tokens, $docBlockIndex)
    {
        $lines = $docBlock->getLines();
        $originalIndent = $this->detectIndent($tokens, $docBlockIndex);
        $lineEnd = $this->whitespacesConfig->getLineEnding();
        array_splice($lines, -1, 0, $originalIndent.' *'.$lineEnd.$originalIndent.' * @internal'.$lineEnd);

        return $lines;
    }

    /**
     * @param int $docBlockIndex
     *
     * @return DocBlock
     */
    private function makeDocBlockMultiLineIfNeeded(DocBlock $doc, Tokens $tokens, $docBlockIndex)
    {
        $lines = $doc->getLines();
        if (1 === \count($lines) && empty($doc->getAnnotationsOfType('internal'))) {
            $indent = $this->detectIndent($tokens, $tokens->getNextNonWhitespace($docBlockIndex));
            $doc->makeMultiLine($indent, $this->whitespacesConfig->getLineEnding());

            return $doc;
        }

        return $doc;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\PhpUnit;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Indicator\PhpUnitTestCaseIndicator;
use PhpCsFixer\Tokenizer\Analyzer\ArgumentsAnalyzer;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class PhpUnitExpectationFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface, WhitespacesAwareFixerInterface
{
    /**
     * @var array<string, string>
     */
    private $methodMap = [];

    /**
     * {@inheritdoc}
     */
    public function configure(array $configuration = null)
    {
        parent::configure($configuration);

        $this->methodMap = [
            'setExpectedException' => 'expectExceptionMessage',
        ];

        if (PhpUnitTargetVersion::fulfills($this->configuration['target'], PhpUnitTargetVersion::VERSION_5_6)) {
            $this->methodMap['setExpectedExceptionRegExp'] = 'expectExceptionMessageRegExp';
        }
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Usages of `->setExpectedException*` methods MUST be replaced by `->expectException*` methods.',
            [
                new CodeSample(
                    '<?php
final class MyTest extends \PHPUnit_Framework_TestCase
{
    public function testFoo()
    {
        $this->setExpectedException("RuntimeException", "Msg", 123);
        foo();
    }

    public function testBar()
    {
        $this->setExpectedExceptionRegExp("RuntimeException", "/Msg.*/", 123);
        bar();
    }
}
'
                ),
                new CodeSample(
                    '<?php
final class MyTest extends \PHPUnit_Framework_TestCase
{
    public function testFoo()
    {
        $this->setExpectedException("RuntimeException", null, 123);
        foo();
    }

    public function testBar()
    {
        $this->setExpectedExceptionRegExp("RuntimeException", "/Msg.*/", 123);
        bar();
    }
}
',
                    ['target' => PhpUnitTargetVersion::VERSION_5_6]
                ),
                new CodeSample(
                    '<?php
final class MyTest extends \PHPUnit_Framework_TestCase
{
    public function testFoo()
    {
        $this->setExpectedException("RuntimeException", "Msg", 123);
        foo();
    }

    public function testBar()
    {
        $this->setExpectedExceptionRegExp("RuntimeException", "/Msg.*/", 123);
        bar();
    }
}
',
                    ['target' => PhpUnitTargetVersion::VERSION_5_2]
                ),
            ],
            null,
            'Risky when PHPUnit classes are overridden or not accessible, or when project has PHPUnit incompatibilities.'
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run after PhpUnitNoExpectationAnnotationFixer.
     */
    public function getPriority()
    {
        return 0;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_CLASS);
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $phpUnitTestCaseIndicator = new PhpUnitTestCaseIndicator();
        foreach ($phpUnitTestCaseIndicator->findPhpUnitClasses($tokens) as $indexes) {
            $this->fixExpectation($tokens, $indexes[0], $indexes[1]);
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('target', 'Target version of PHPUnit.'))
                ->setAllowedTypes(['string'])
                ->setAllowedValues([PhpUnitTargetVersion::VERSION_5_2, PhpUnitTargetVersion::VERSION_5_6, PhpUnitTargetVersion::VERSION_NEWEST])
                ->setDefault(PhpUnitTargetVersion::VERSION_NEWEST)
                ->getOption(),
        ]);
    }

    private function fixExpectation(Tokens $tokens, $startIndex, $endIndex)
    {
        $argumentsAnalyzer = new ArgumentsAnalyzer();

        $oldMethodSequence = [
            new Token([T_VARIABLE, '$this']),
            new Token([T_OBJECT_OPERATOR, '->']),
            [T_STRING],
        ];

        for ($index = $startIndex; $startIndex < $endIndex; ++$index) {
            $match = $tokens->findSequence($oldMethodSequence, $index);

            if (null === $match) {
                return;
            }

            list($thisIndex, , $index) = array_keys($match);

            if (!isset($this->methodMap[$tokens[$index]->getContent()])) {
                continue;
            }

            $openIndex = $tokens->getNextTokenOfKind($index, ['(']);
            $closeIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $openIndex);
            $commaIndex = $tokens->getPrevMeaningfulToken($closeIndex);
            if ($tokens[$commaIndex]->equals(',')) {
                $tokens->removeTrailingWhitespace($commaIndex);
                $tokens->clearAt($commaIndex);
            }

            $arguments = $argumentsAnalyzer->getArguments($tokens, $openIndex, $closeIndex);
            $argumentsCnt = \count($arguments);

            $argumentsReplacements = ['expectException', $this->methodMap[$tokens[$index]->getContent()], 'expectExceptionCode'];

            $indent = $this->whitespacesConfig->getLineEnding().$this->detectIndent($tokens, $thisIndex);

            $isMultilineWhitespace = false;

            for ($cnt = $argumentsCnt - 1; $cnt >= 1; --$cnt) {
                $argStart = array_keys($arguments)[$cnt];
                $argBefore = $tokens->getPrevMeaningfulToken($argStart);

                if ('expectExceptionMessage' === $argumentsReplacements[$cnt]) {
                    $paramIndicatorIndex = $tokens->getNextMeaningfulToken($argBefore);
                    $afterParamIndicatorIndex = $tokens->getNextMeaningfulToken($paramIndicatorIndex);

                    if (
                        $tokens[$paramIndicatorIndex]->equals([T_STRING, 'null'], false) &&
                        $tokens[$afterParamIndicatorIndex]->equals(')')
                    ) {
                        if ($tokens[$argBefore + 1]->isWhitespace()) {
                            $tokens->clearTokenAndMergeSurroundingWhitespace($argBefore + 1);
                        }
                        $tokens->clearTokenAndMergeSurroundingWhitespace($argBefore);
                        $tokens->clearTokenAndMergeSurroundingWhitespace($paramIndicatorIndex);

                        continue;
                    }
                }

                $isMultilineWhitespace = $isMultilineWhitespace || ($tokens[$argStart]->isWhitespace() && !$tokens[$argStart]->isWhitespace(" \t"));
                $tokensOverrideArgStart = [
                    new Token([T_WHITESPACE, $indent]),
                    new Token([T_VARIABLE, '$this']),
                    new Token([T_OBJECT_OPERATOR, '->']),
                    new Token([T_STRING, $argumentsReplacements[$cnt]]),
                    new Token('('),
                ];
                $tokensOverrideArgBefore = [
                    new Token(')'),
                    new Token(';'),
                ];

                if ($isMultilineWhitespace) {
                    array_push($tokensOverrideArgStart, new Token([T_WHITESPACE, $indent.$this->whitespacesConfig->getIndent()]));
                    array_unshift($tokensOverrideArgBefore, new Token([T_WHITESPACE, $indent]));
                }

                if ($tokens[$argStart]->isWhitespace()) {
                    $tokens->overrideRange($argStart, $argStart, $tokensOverrideArgStart);
                } else {
                    $tokens->insertAt($argStart, $tokensOverrideArgStart);
                }

                $tokens->overrideRange($argBefore, $argBefore, $tokensOverrideArgBefore);
            }

            $tokens[$index] = new Token([T_STRING, 'expectException']);
        }
    }

    /**
     * @param int $index
     *
     * @return string
     */
    private function detectIndent(Tokens $tokens, $index)
    {
        if (!$tokens[$index - 1]->isWhitespace()) {
            return ''; // cannot detect indent
        }

        $explodedContent = explode("\n", $tokens[$index - 1]->getContent());

        return end($explodedContent);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\PhpUnit;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Indicator\PhpUnitTestCaseIndicator;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Roland Franssen <franssen.roland@gmail.com>
 */
final class PhpUnitFqcnAnnotationFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'PHPUnit annotations should be a FQCNs including a root namespace.',
            [new CodeSample(
                '<?php
final class MyTest extends \PHPUnit_Framework_TestCase
{
    /**
     * @expectedException InvalidArgumentException
     * @covers Project\NameSpace\Something
     * @coversDefaultClass Project\Default
     * @uses Project\Test\Util
     */
    public function testSomeTest()
    {
    }
}
'
            )]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before NoUnusedImportsFixer, PhpUnitOrderedCoversFixer.
     */
    public function getPriority()
    {
        return -9;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAllTokenKindsFound([T_CLASS, T_DOC_COMMENT]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $phpUnitTestCaseIndicator = new PhpUnitTestCaseIndicator();
        foreach ($phpUnitTestCaseIndicator->findPhpUnitClasses($tokens) as $indexes) {
            $startIndex = $indexes[0];
            $prevDocCommentIndex = $tokens->getPrevTokenOfKind($startIndex, [[T_DOC_COMMENT]]);
            if (null !== $prevDocCommentIndex) {
                $startIndex = $prevDocCommentIndex;
            }
            $this->fixPhpUnitClass($tokens, $startIndex, $indexes[1]);
        }
    }

    /**
     * @param int $startIndex
     * @param int $endIndex
     */
    private function fixPhpUnitClass(Tokens $tokens, $startIndex, $endIndex)
    {
        for ($index = $startIndex; $index < $endIndex; ++$index) {
            if ($tokens[$index]->isGivenKind(T_DOC_COMMENT)) {
                $tokens[$index] = new Token([T_DOC_COMMENT, Preg::replace(
                    '~^(\s*\*\s*@(?:expectedException|covers|coversDefaultClass|uses)\h+)(?!(?:self|static)::)(\w.*)$~m',
                    '$1\\\\$2',
                    $tokens[$index]->getContent()
                )]);
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\PhpUnit;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class PhpUnitNamespacedFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * @var string
     */
    private $originalClassRegEx;

    /**
     * Class Mappings.
     *
     *  * [original classname => new classname] Some classes which match the
     *    original class regular expression do not have a same-compound name-
     *    space class and need a dedicated translation table. This trans-
     *    lation table is defined in @see configure.
     *
     * @var array|string[] Class Mappings
     */
    private $classMap;

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        $codeSample = '<?php
final class MyTest extends \PHPUnit_Framework_TestCase
{
    public function testSomething()
    {
        PHPUnit_Framework_Assert::assertTrue(true);
    }
}
';

        return new FixerDefinition(
            'PHPUnit classes MUST be used in namespaced version, e.g. `\PHPUnit\Framework\TestCase` instead of `\PHPUnit_Framework_TestCase`.',
            [
                new CodeSample($codeSample),
                new CodeSample($codeSample, ['target' => PhpUnitTargetVersion::VERSION_4_8]),
            ],
            "PHPUnit v6 has finally fully switched to namespaces.\n"
            ."You could start preparing the upgrade by switching from non-namespaced TestCase to namespaced one.\n"
            .'Forward compatibility layer (`\PHPUnit\Framework\TestCase` class) was backported to PHPUnit v4.8.35 and PHPUnit v5.4.0.'."\n"
            .'Extended forward compatibility layer (`PHPUnit\Framework\Assert`, `PHPUnit\Framework\BaseTestListener`, `PHPUnit\Framework\TestListener` classes) was introduced in v5.7.0.'."\n",
            'Risky when PHPUnit classes are overridden or not accessible, or when project has PHPUnit incompatibilities.'
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_STRING);
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    public function configure(array $configuration = null)
    {
        parent::configure($configuration);

        if (PhpUnitTargetVersion::fulfills($this->configuration['target'], PhpUnitTargetVersion::VERSION_6_0)) {
            $this->originalClassRegEx = '/^PHPUnit_\w+$/i';
            // @noinspection ClassConstantCanBeUsedInspection
            $this->classMap = [
                'PHPUnit_Extensions_PhptTestCase' => 'PHPUnit\Runner\PhptTestCase',
                'PHPUnit_Framework_Constraint' => 'PHPUnit\Framework\Constraint\Constraint',
                'PHPUnit_Framework_Constraint_StringMatches' => 'PHPUnit\Framework\Constraint\StringMatchesFormatDescription',
                'PHPUnit_Framework_Constraint_JsonMatches_ErrorMessageProvider' => 'PHPUnit\Framework\Constraint\JsonMatchesErrorMessageProvider',
                'PHPUnit_Framework_Constraint_PCREMatch' => 'PHPUnit\Framework\Constraint\RegularExpression',
                'PHPUnit_Framework_Constraint_ExceptionMessageRegExp' => 'PHPUnit\Framework\Constraint\ExceptionMessageRegularExpression',
                'PHPUnit_Framework_Constraint_And' => 'PHPUnit\Framework\Constraint\LogicalAnd',
                'PHPUnit_Framework_Constraint_Or' => 'PHPUnit\Framework\Constraint\LogicalOr',
                'PHPUnit_Framework_Constraint_Not' => 'PHPUnit\Framework\Constraint\LogicalNot',
                'PHPUnit_Framework_Constraint_Xor' => 'PHPUnit\Framework\Constraint\LogicalXor',
                'PHPUnit_Framework_Error' => 'PHPUnit\Framework\Error\Error',
                'PHPUnit_Framework_TestSuite_DataProvider' => 'PHPUnit\Framework\DataProviderTestSuite',
                'PHPUnit_Framework_MockObject_Invocation_Static' => 'PHPUnit\Framework\MockObject\Invocation\StaticInvocation',
                'PHPUnit_Framework_MockObject_Invocation_Object' => 'PHPUnit\Framework\MockObject\Invocation\ObjectInvocation',
                'PHPUnit_Framework_MockObject_Stub_Return' => 'PHPUnit\Framework\MockObject\Stub\ReturnStub',
                'PHPUnit_Runner_Filter_Group_Exclude' => 'PHPUnit\Runner\Filter\ExcludeGroupFilterIterator',
                'PHPUnit_Runner_Filter_Group_Include' => 'PHPUnit\Runner\Filter\IncludeGroupFilterIterator',
                'PHPUnit_Runner_Filter_Test' => 'PHPUnit\Runner\Filter\NameFilterIterator',
                'PHPUnit_Util_PHP' => 'PHPUnit\Util\PHP\AbstractPhpProcess',
                'PHPUnit_Util_PHP_Default' => 'PHPUnit\Util\PHP\DefaultPhpProcess',
                'PHPUnit_Util_PHP_Windows' => 'PHPUnit\Util\PHP\WindowsPhpProcess',
                'PHPUnit_Util_Regex' => 'PHPUnit\Util\RegularExpression',
                'PHPUnit_Util_TestDox_ResultPrinter_XML' => 'PHPUnit\Util\TestDox\XmlResultPrinter',
                'PHPUnit_Util_TestDox_ResultPrinter_HTML' => 'PHPUnit\Util\TestDox\HtmlResultPrinter',
                'PHPUnit_Util_TestDox_ResultPrinter_Text' => 'PHPUnit\Util\TestDox\TextResultPrinter',
                'PHPUnit_Util_TestSuiteIterator' => 'PHPUnit\Framework\TestSuiteIterator',
                'PHPUnit_Util_XML' => 'PHPUnit\Util\Xml',
            ];
        } elseif (PhpUnitTargetVersion::fulfills($this->configuration['target'], PhpUnitTargetVersion::VERSION_5_7)) {
            $this->originalClassRegEx = '/^PHPUnit_Framework_TestCase|PHPUnit_Framework_Assert|PHPUnit_Framework_BaseTestListener|PHPUnit_Framework_TestListener$/i';
            $this->classMap = [];
        } else {
            $this->originalClassRegEx = '/^PHPUnit_Framework_TestCase$/i';
            $this->classMap = [];
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $importedOriginalClassesMap = [];
        $currIndex = 0;

        while (null !== $currIndex) {
            $currIndex = $tokens->getNextTokenOfKind($currIndex, [[T_STRING]]);

            if (null === $currIndex) {
                break;
            }

            $originalClass = $tokens[$currIndex]->getContent();

            if (1 !== Preg::match($this->originalClassRegEx, $originalClass)) {
                ++$currIndex;

                continue;
            }

            $substituteTokens = $this->generateReplacement($originalClass);

            $tokens->clearAt($currIndex);
            $tokens->insertAt(
                $currIndex,
                isset($importedOriginalClassesMap[$originalClass]) ? $substituteTokens[$substituteTokens->getSize() - 1] : $substituteTokens
            );

            $prevIndex = $tokens->getPrevMeaningfulToken($currIndex);
            if ($tokens[$prevIndex]->isGivenKind(T_USE)) {
                $importedOriginalClassesMap[$originalClass] = true;
            } elseif ($tokens[$prevIndex]->isGivenKind(T_NS_SEPARATOR)) {
                $prevIndex = $tokens->getPrevMeaningfulToken($prevIndex);

                if ($tokens[$prevIndex]->isGivenKind(T_USE)) {
                    $importedOriginalClassesMap[$originalClass] = true;
                }
            }
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('target', 'Target version of PHPUnit.'))
                ->setAllowedTypes(['string'])
                ->setAllowedValues([PhpUnitTargetVersion::VERSION_4_8, PhpUnitTargetVersion::VERSION_5_7, PhpUnitTargetVersion::VERSION_6_0, PhpUnitTargetVersion::VERSION_NEWEST])
                ->setDefault(PhpUnitTargetVersion::VERSION_NEWEST)
                ->getOption(),
        ]);
    }

    /**
     * @param string $originalClassName
     *
     * @return Tokens
     */
    private function generateReplacement($originalClassName)
    {
        $delimiter = '_';
        $string = $originalClassName;

        if (isset($this->classMap[$originalClassName])) {
            $delimiter = '\\';
            $string = $this->classMap[$originalClassName];
        }

        $parts = explode($delimiter, $string);

        $tokensArray = [];
        while (!empty($parts)) {
            $tokensArray[] = new Token([T_STRING, array_shift($parts)]);
            if (!empty($parts)) {
                $tokensArray[] = new Token([T_NS_SEPARATOR, '\\']);
            }
        }

        return Tokens::fromArray($tokensArray);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\PhpUnit;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\DocBlock\DocBlock;
use PhpCsFixer\DocBlock\Line;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Indicator\PhpUnitTestCaseIndicator;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class PhpUnitTestClassRequiresCoversFixer extends AbstractFixer implements WhitespacesAwareFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Adds a default `@coversNothing` annotation to PHPUnit test classes that have no `@covers*` annotation.',
            [
                new CodeSample(
                    '<?php
final class MyTest extends \PHPUnit_Framework_TestCase
{
    public function testSomeTest()
    {
        $this->assertSame(a(), b());
    }
}
'
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_CLASS);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $phpUnitTestCaseIndicator = new PhpUnitTestCaseIndicator();

        foreach ($phpUnitTestCaseIndicator->findPhpUnitClasses($tokens) as $indexes) {
            $this->addRequiresCover($tokens, $indexes[0]);
        }
    }

    private function addRequiresCover(Tokens $tokens, $startIndex)
    {
        $classIndex = $tokens->getPrevTokenOfKind($startIndex, [[T_CLASS]]);
        $prevIndex = $tokens->getPrevMeaningfulToken($classIndex);

        // don't add `@covers` annotation for abstract base classes
        if ($tokens[$prevIndex]->isGivenKind(T_ABSTRACT)) {
            return;
        }

        $index = $tokens[$prevIndex]->isGivenKind(T_FINAL) ? $prevIndex : $classIndex;

        $indent = $tokens[$index - 1]->isGivenKind(T_WHITESPACE)
            ? Preg::replace('/^.*\R*/', '', $tokens[$index - 1]->getContent())
            : '';

        $prevIndex = $tokens->getPrevNonWhitespace($index);

        if ($tokens[$prevIndex]->isGivenKind(T_DOC_COMMENT)) {
            $docIndex = $prevIndex;
            $docContent = $tokens[$docIndex]->getContent();

            // ignore one-line phpdocs like `/** foo */`, as there is no place to put new annotations
            if (false === strpos($docContent, "\n")) {
                return;
            }

            $doc = new DocBlock($docContent);

            // skip if already has annotation
            if (!empty($doc->getAnnotationsOfType([
                'covers',
                'coversDefaultClass',
                'coversNothing',
            ]))) {
                return;
            }
        } else {
            $docIndex = $index;
            $tokens->insertAt($docIndex, [
                new Token([T_DOC_COMMENT, sprintf('/**%s%s */', $this->whitespacesConfig->getLineEnding(), $indent)]),
                new Token([T_WHITESPACE, sprintf('%s%s', $this->whitespacesConfig->getLineEnding(), $indent)]),
            ]);

            if (!$tokens[$docIndex - 1]->isGivenKind(T_WHITESPACE)) {
                $extraNewLines = $this->whitespacesConfig->getLineEnding();

                if (!$tokens[$docIndex - 1]->isGivenKind(T_OPEN_TAG)) {
                    $extraNewLines .= $this->whitespacesConfig->getLineEnding();
                }

                $tokens->insertAt($docIndex, [
                    new Token([T_WHITESPACE, $extraNewLines.$indent]),
                ]);
                ++$docIndex;
            }

            $doc = new DocBlock($tokens[$docIndex]->getContent());
        }

        $lines = $doc->getLines();
        array_splice(
            $lines,
            \count($lines) - 1,
            0,
            [
                new Line(sprintf(
                    '%s * @coversNothing%s',
                    $indent,
                    $this->whitespacesConfig->getLineEnding()
                )),
            ]
        );

        $tokens[$docIndex] = new Token([T_DOC_COMMENT, implode('', $lines)]);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\PhpUnit;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Indicator\PhpUnitTestCaseIndicator;
use PhpCsFixer\Tokenizer\Analyzer\FunctionsAnalyzer;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Tokenizer\TokensAnalyzer;
use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException;

/**
 * @author Filippo Tessarotto <zoeslam@gmail.com>
 */
final class PhpUnitTestCaseStaticMethodCallsFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * @internal
     */
    const CALL_TYPE_THIS = 'this';

    /**
     * @internal
     */
    const CALL_TYPE_SELF = 'self';

    /**
     * @internal
     */
    const CALL_TYPE_STATIC = 'static';

    private $allowedValues = [
        self::CALL_TYPE_THIS => true,
        self::CALL_TYPE_SELF => true,
        self::CALL_TYPE_STATIC => true,
    ];

    private $staticMethods = [
        // Assert methods
        'anything' => true,
        'arrayHasKey' => true,
        'assertArrayHasKey' => true,
        'assertArrayNotHasKey' => true,
        'assertArraySubset' => true,
        'assertAttributeContains' => true,
        'assertAttributeContainsOnly' => true,
        'assertAttributeCount' => true,
        'assertAttributeEmpty' => true,
        'assertAttributeEquals' => true,
        'assertAttributeGreaterThan' => true,
        'assertAttributeGreaterThanOrEqual' => true,
        'assertAttributeInstanceOf' => true,
        'assertAttributeInternalType' => true,
        'assertAttributeLessThan' => true,
        'assertAttributeLessThanOrEqual' => true,
        'assertAttributeNotContains' => true,
        'assertAttributeNotContainsOnly' => true,
        'assertAttributeNotCount' => true,
        'assertAttributeNotEmpty' => true,
        'assertAttributeNotEquals' => true,
        'assertAttributeNotInstanceOf' => true,
        'assertAttributeNotInternalType' => true,
        'assertAttributeNotSame' => true,
        'assertAttributeSame' => true,
        'assertClassHasAttribute' => true,
        'assertClassHasStaticAttribute' => true,
        'assertClassNotHasAttribute' => true,
        'assertClassNotHasStaticAttribute' => true,
        'assertContains' => true,
        'assertContainsEquals' => true,
        'assertContainsOnly' => true,
        'assertContainsOnlyInstancesOf' => true,
        'assertCount' => true,
        'assertDirectoryExists' => true,
        'assertDirectoryIsReadable' => true,
        'assertDirectoryIsWritable' => true,
        'assertDirectoryNotExists' => true,
        'assertDirectoryNotIsReadable' => true,
        'assertDirectoryNotIsWritable' => true,
        'assertEmpty' => true,
        'assertEqualXMLStructure' => true,
        'assertEquals' => true,
        'assertEqualsCanonicalizing' => true,
        'assertEqualsIgnoringCase' => true,
        'assertEqualsWithDelta' => true,
        'assertFalse' => true,
        'assertFileEquals' => true,
        'assertFileExists' => true,
        'assertFileIsReadable' => true,
        'assertFileIsWritable' => true,
        'assertFileNotEquals' => true,
        'assertFileNotExists' => true,
        'assertFileNotIsReadable' => true,
        'assertFileNotIsWritable' => true,
        'assertFinite' => true,
        'assertGreaterThan' => true,
        'assertGreaterThanOrEqual' => true,
        'assertInfinite' => true,
        'assertInstanceOf' => true,
        'assertInternalType' => true,
        'assertIsArray' => true,
        'assertIsBool' => true,
        'assertIsCallable' => true,
        'assertIsFloat' => true,
        'assertIsInt' => true,
        'assertIsIterable' => true,
        'assertIsNotArray' => true,
        'assertIsNotBool' => true,
        'assertIsNotCallable' => true,
        'assertIsNotFloat' => true,
        'assertIsNotInt' => true,
        'assertIsNotIterable' => true,
        'assertIsNotNumeric' => true,
        'assertIsNotObject' => true,
        'assertIsNotResource' => true,
        'assertIsNotScalar' => true,
        'assertIsNotString' => true,
        'assertIsNumeric' => true,
        'assertIsObject' => true,
        'assertIsReadable' => true,
        'assertIsResource' => true,
        'assertIsScalar' => true,
        'assertIsString' => true,
        'assertIsWritable' => true,
        'assertJson' => true,
        'assertJsonFileEqualsJsonFile' => true,
        'assertJsonFileNotEqualsJsonFile' => true,
        'assertJsonStringEqualsJsonFile' => true,
        'assertJsonStringEqualsJsonString' => true,
        'assertJsonStringNotEqualsJsonFile' => true,
        'assertJsonStringNotEqualsJsonString' => true,
        'assertLessThan' => true,
        'assertLessThanOrEqual' => true,
        'assertNan' => true,
        'assertNotContains' => true,
        'assertNotContainsEquals' => true,
        'assertNotContainsOnly' => true,
        'assertNotCount' => true,
        'assertNotEmpty' => true,
        'assertNotEquals' => true,
        'assertNotEqualsCanonicalizing' => true,
        'assertNotEqualsIgnoringCase' => true,
        'assertNotEqualsWithDelta' => true,
        'assertNotFalse' => true,
        'assertNotInstanceOf' => true,
        'assertNotInternalType' => true,
        'assertNotIsReadable' => true,
        'assertNotIsWritable' => true,
        'assertNotNull' => true,
        'assertNotRegExp' => true,
        'assertNotSame' => true,
        'assertNotSameSize' => true,
        'assertNotTrue' => true,
        'assertNull' => true,
        'assertObjectHasAttribute' => true,
        'assertObjectNotHasAttribute' => true,
        'assertRegExp' => true,
        'assertSame' => true,
        'assertSameSize' => true,
        'assertStringContainsString' => true,
        'assertStringContainsStringIgnoringCase' => true,
        'assertStringEndsNotWith' => true,
        'assertStringEndsWith' => true,
        'assertStringEqualsFile' => true,
        'assertStringMatchesFormat' => true,
        'assertStringMatchesFormatFile' => true,
        'assertStringNotContainsString' => true,
        'assertStringNotContainsStringIgnoringCase' => true,
        'assertStringNotEqualsFile' => true,
        'assertStringNotMatchesFormat' => true,
        'assertStringNotMatchesFormatFile' => true,
        'assertStringStartsNotWith' => true,
        'assertStringStartsWith' => true,
        'assertThat' => true,
        'assertTrue' => true,
        'assertXmlFileEqualsXmlFile' => true,
        'assertXmlFileNotEqualsXmlFile' => true,
        'assertXmlStringEqualsXmlFile' => true,
        'assertXmlStringEqualsXmlString' => true,
        'assertXmlStringNotEqualsXmlFile' => true,
        'assertXmlStringNotEqualsXmlString' => true,
        'attribute' => true,
        'attributeEqualTo' => true,
        'callback' => true,
        'classHasAttribute' => true,
        'classHasStaticAttribute' => true,
        'contains' => true,
        'containsOnly' => true,
        'containsOnlyInstancesOf' => true,
        'countOf' => true,
        'directoryExists' => true,
        'equalTo' => true,
        'fail' => true,
        'fileExists' => true,
        'getCount' => true,
        'getObjectAttribute' => true,
        'getStaticAttribute' => true,
        'greaterThan' => true,
        'greaterThanOrEqual' => true,
        'identicalTo' => true,
        'isEmpty' => true,
        'isFalse' => true,
        'isFinite' => true,
        'isInfinite' => true,
        'isInstanceOf' => true,
        'isJson' => true,
        'isNan' => true,
        'isNull' => true,
        'isReadable' => true,
        'isTrue' => true,
        'isType' => true,
        'isWritable' => true,
        'lessThan' => true,
        'lessThanOrEqual' => true,
        'logicalAnd' => true,
        'logicalNot' => true,
        'logicalOr' => true,
        'logicalXor' => true,
        'markTestIncomplete' => true,
        'markTestSkipped' => true,
        'matches' => true,
        'matchesRegularExpression' => true,
        'objectHasAttribute' => true,
        'readAttribute' => true,
        'resetCount' => true,
        'stringContains' => true,
        'stringEndsWith' => true,
        'stringStartsWith' => true,

        // TestCase methods
        'any' => true,
        'at' => true,
        'atLeast' => true,
        'atLeastOnce' => true,
        'atMost' => true,
        'exactly' => true,
        'never' => true,
        'onConsecutiveCalls' => true,
        'once' => true,
        'returnArgument' => true,
        'returnCallback' => true,
        'returnSelf' => true,
        'returnValue' => true,
        'returnValueMap' => true,
        'setUpBeforeClass' => true,
        'tearDownAfterClass' => true,
        'throwException' => true,
    ];

    private $conversionMap = [
        self::CALL_TYPE_THIS => [[T_OBJECT_OPERATOR, '->'], [T_VARIABLE, '$this']],
        self::CALL_TYPE_SELF => [[T_DOUBLE_COLON, '::'], [T_STRING, 'self']],
        self::CALL_TYPE_STATIC => [[T_DOUBLE_COLON, '::'], [T_STATIC, 'static']],
    ];

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        $codeSample = '<?php
final class MyTest extends \PHPUnit_Framework_TestCase
{
    public function testMe()
    {
        $this->assertSame(1, 2);
        self::assertSame(1, 2);
        static::assertSame(1, 2);
    }
}
';

        return new FixerDefinition(
            'Calls to `PHPUnit\Framework\TestCase` static methods must all be of the same type, either `$this->`, `self::` or `static::`.',
            [
                new CodeSample($codeSample),
                new CodeSample($codeSample, ['call_type' => self::CALL_TYPE_THIS]),
            ],
            null,
            'Risky when PHPUnit methods are overridden or not accessible, or when project has PHPUnit incompatibilities.'
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before FinalStaticAccessFixer, SelfStaticAccessorFixer.
     */
    public function getPriority()
    {
        return 0;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAllTokenKindsFound([T_CLASS, T_STRING]);
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $phpUnitTestCaseIndicator = new PhpUnitTestCaseIndicator();
        foreach ($phpUnitTestCaseIndicator->findPhpUnitClasses($tokens) as $indexes) {
            $this->fixPhpUnitClass($tokens, $indexes[0], $indexes[1]);
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        $thisFixer = $this;

        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('call_type', 'The call type to use for referring to PHPUnit methods.'))
                ->setAllowedTypes(['string'])
                ->setAllowedValues(array_keys($this->allowedValues))
                ->setDefault('static')
                ->getOption(),
            (new FixerOptionBuilder('methods', 'Dictionary of `method` => `call_type` values that differ from the default strategy.'))
                ->setAllowedTypes(['array'])
                ->setAllowedValues([static function ($option) use ($thisFixer) {
                    foreach ($option as $method => $value) {
                        if (!isset($thisFixer->staticMethods[$method])) {
                            throw new InvalidOptionsException(
                                sprintf(
                                    'Unexpected "methods" key, expected any of "%s", got "%s".',
                                    implode('", "', array_keys($thisFixer->staticMethods)),
                                    \is_object($method) ? \get_class($method) : \gettype($method).'#'.$method
                                )
                            );
                        }

                        if (!isset($thisFixer->allowedValues[$value])) {
                            throw new InvalidOptionsException(
                                sprintf(
                                    'Unexpected value for method "%s", expected any of "%s", got "%s".',
                                    $method,
                                    implode('", "', array_keys($thisFixer->allowedValues)),
                                    \is_object($value) ? \get_class($value) : (null === $value ? 'null' : \gettype($value).'#'.$value)
                                )
                            );
                        }
                    }

                    return true;
                }])
                ->setDefault([])
                ->getOption(),
        ]);
    }

    /**
     * @param int $startIndex
     * @param int $endIndex
     */
    private function fixPhpUnitClass(Tokens $tokens, $startIndex, $endIndex)
    {
        $analyzer = new TokensAnalyzer($tokens);

        for ($index = $startIndex; $index < $endIndex; ++$index) {
            // skip anonymous classes
            if ($tokens[$index]->isGivenKind(T_CLASS)) {
                $index = $this->findEndOfNextBlock($tokens, $index);

                continue;
            }

            $callType = $this->configuration['call_type'];

            if ($tokens[$index]->isGivenKind(T_FUNCTION)) {
                // skip lambda
                if ($analyzer->isLambda($index)) {
                    $index = $this->findEndOfNextBlock($tokens, $index);

                    continue;
                }

                // do not change `self` to `this` in static methods
                if ('this' === $callType) {
                    $attributes = $analyzer->getMethodAttributes($index);
                    if (false !== $attributes['static']) {
                        $index = $this->findEndOfNextBlock($tokens, $index);

                        continue;
                    }
                }
            }

            if (!$tokens[$index]->isGivenKind(T_STRING) || !isset($this->staticMethods[$tokens[$index]->getContent()])) {
                continue;
            }

            $nextIndex = $tokens->getNextMeaningfulToken($index);
            if (!$tokens[$nextIndex]->equals('(')) {
                $index = $nextIndex;

                continue;
            }

            $methodName = $tokens[$index]->getContent();

            if (isset($this->configuration['methods'][$methodName])) {
                $callType = $this->configuration['methods'][$methodName];
            }

            $operatorIndex = $tokens->getPrevMeaningfulToken($index);
            $referenceIndex = $tokens->getPrevMeaningfulToken($operatorIndex);
            if (!$this->needsConversion($tokens, $index, $referenceIndex, $callType)) {
                continue;
            }

            $tokens[$operatorIndex] = new Token($this->conversionMap[$callType][0]);
            $tokens[$referenceIndex] = new Token($this->conversionMap[$callType][1]);
        }
    }

    /**
     * @param int    $index
     * @param int    $referenceIndex
     * @param string $callType
     *
     * @return bool
     */
    private function needsConversion(Tokens $tokens, $index, $referenceIndex, $callType)
    {
        $functionsAnalyzer = new FunctionsAnalyzer();

        return $functionsAnalyzer->isTheSameClassCall($tokens, $index)
            && !$tokens[$referenceIndex]->equals($this->conversionMap[$callType][1], false);
    }

    /**
     * @param int $index
     *
     * @return int
     */
    private function findEndOfNextBlock(Tokens $tokens, $index)
    {
        $index = $tokens->getNextTokenOfKind($index, ['{']);

        return $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $index);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\PhpUnit;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Indicator\PhpUnitTestCaseIndicator;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Michał Adamski <michal.adamski@gmail.com>
 * @author Kuba Werłos <werlos@gmail.com>
 */
final class PhpUnitMockShortWillReturnFixer extends AbstractFixer
{
    /**
     * @internal
     */
    const RETURN_METHODS_MAP = [
        'returnargument' => 'willReturnArgument',
        'returncallback' => 'willReturnCallback',
        'returnself' => 'willReturnSelf',
        'returnvalue' => 'willReturn',
        'returnvaluemap' => 'willReturnMap',
    ];

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Usage of PHPUnit\'s mock e.g. `->will($this->returnValue(..))` must be replaced by its shorter equivalent such as `->willReturn(...)`.',
            [
                new CodeSample('<?php
final class MyTest extends \PHPUnit_Framework_TestCase
{
    public function testSomeTest()
    {
        $someMock = $this->createMock(Some::class);
        $someMock->method("some")->will($this->returnSelf());
        $someMock->method("some")->will($this->returnValue("example"));
        $someMock->method("some")->will($this->returnArgument(2));
        $someMock->method("some")->will($this->returnCallback("str_rot13"));
        $someMock->method("some")->will($this->returnValueMap(["a","b","c"]));
    }
}
'),
            ],
            null,
            'Risky when PHPUnit classes are overridden or not accessible, or when project has PHPUnit incompatibilities.'
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAllTokenKindsFound([T_CLASS, T_OBJECT_OPERATOR, T_STRING]);
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $phpUnitTestCaseIndicator = new PhpUnitTestCaseIndicator();
        foreach ($phpUnitTestCaseIndicator->findPhpUnitClasses($tokens) as $indexes) {
            $this->fixWillReturn($tokens, $indexes[0], $indexes[1]);
        }
    }

    /**
     * @param int $startIndex
     * @param int $endIndex
     */
    private function fixWillReturn(Tokens $tokens, $startIndex, $endIndex)
    {
        for ($index = $startIndex; $index < $endIndex; ++$index) {
            if (!$tokens[$index]->isGivenKind(T_OBJECT_OPERATOR)) {
                continue;
            }

            $functionToReplaceIndex = $tokens->getNextMeaningfulToken($index);
            if (!$tokens[$functionToReplaceIndex]->equals([T_STRING, 'will'], false)) {
                continue;
            }

            $functionToReplaceOpeningBraceIndex = $tokens->getNextMeaningfulToken($functionToReplaceIndex);
            if (!$tokens[$functionToReplaceOpeningBraceIndex]->equals('(')) {
                continue;
            }

            $classReferenceIndex = $tokens->getNextMeaningfulToken($functionToReplaceOpeningBraceIndex);
            $objectOperatorIndex = $tokens->getNextMeaningfulToken($classReferenceIndex);
            if (
                !($tokens[$classReferenceIndex]->equals([T_VARIABLE, '$this'], false) && $tokens[$objectOperatorIndex]->equals([T_OBJECT_OPERATOR, '->']))
                && !($tokens[$classReferenceIndex]->equals([T_STRING, 'self'], false) && $tokens[$objectOperatorIndex]->equals([T_DOUBLE_COLON, '::']))
                && !($tokens[$classReferenceIndex]->equals([T_STATIC, 'static'], false) && $tokens[$objectOperatorIndex]->equals([T_DOUBLE_COLON, '::']))
            ) {
                continue;
            }

            $functionToRemoveIndex = $tokens->getNextMeaningfulToken($objectOperatorIndex);
            if (!$tokens[$functionToRemoveIndex]->isGivenKind(T_STRING) || !\array_key_exists(strtolower($tokens[$functionToRemoveIndex]->getContent()), self::RETURN_METHODS_MAP)) {
                continue;
            }

            $openingBraceIndex = $tokens->getNextMeaningfulToken($functionToRemoveIndex);
            if (!$tokens[$openingBraceIndex]->equals('(')) {
                continue;
            }

            $closingBraceIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $openingBraceIndex);

            $tokens[$functionToReplaceIndex] = new Token([T_STRING, self::RETURN_METHODS_MAP[strtolower($tokens[$functionToRemoveIndex]->getContent())]]);
            $tokens->clearTokenAndMergeSurroundingWhitespace($classReferenceIndex);
            $tokens->clearTokenAndMergeSurroundingWhitespace($objectOperatorIndex);
            $tokens->clearTokenAndMergeSurroundingWhitespace($functionToRemoveIndex);
            $tokens->clearTokenAndMergeSurroundingWhitespace($openingBraceIndex);
            $tokens->clearTokenAndMergeSurroundingWhitespace($closingBraceIndex);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\PhpUnit;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\DocBlock\DocBlock;
use PhpCsFixer\DocBlock\Line;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Indicator\PhpUnitTestCaseIndicator;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Tokenizer\TokensAnalyzer;
use PhpCsFixer\Utils;

/**
 * @author Filippo Tessarotto <zoeslam@gmail.com>
 */
final class PhpUnitMethodCasingFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * @internal
     */
    const CAMEL_CASE = 'camel_case';

    /**
     * @internal
     */
    const SNAKE_CASE = 'snake_case';

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Enforce camel (or snake) case for PHPUnit test methods, following configuration.',
            [
                new CodeSample(
                    '<?php
class MyTest extends \\PhpUnit\\FrameWork\\TestCase
{
    public function test_my_code() {}
}
'
                ),
                new CodeSample(
                    '<?php
class MyTest extends \\PhpUnit\\FrameWork\\TestCase
{
    public function testMyCode() {}
}
',
                    ['case' => self::SNAKE_CASE]
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run after PhpUnitTestAnnotationFixer.
     */
    public function getPriority()
    {
        return 0;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAllTokenKindsFound([T_CLASS, T_FUNCTION]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $phpUnitTestCaseIndicator = new PhpUnitTestCaseIndicator();
        foreach ($phpUnitTestCaseIndicator->findPhpUnitClasses($tokens) as $indexes) {
            $this->applyCasing($tokens, $indexes[0], $indexes[1]);
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('case', 'Apply camel or snake case to test methods'))
                ->setAllowedValues([self::CAMEL_CASE, self::SNAKE_CASE])
                ->setDefault(self::CAMEL_CASE)
                ->getOption(),
        ]);
    }

    /**
     * @param int $startIndex
     * @param int $endIndex
     */
    private function applyCasing(Tokens $tokens, $startIndex, $endIndex)
    {
        for ($index = $endIndex - 1; $index > $startIndex; --$index) {
            if (!$this->isTestMethod($tokens, $index)) {
                continue;
            }

            $functionNameIndex = $tokens->getNextMeaningfulToken($index);
            $functionName = $tokens[$functionNameIndex]->getContent();
            $newFunctionName = $this->updateMethodCasing($functionName);

            if ($newFunctionName !== $functionName) {
                $tokens[$functionNameIndex] = new Token([T_STRING, $newFunctionName]);
            }

            $docBlockIndex = $this->getDocBlockIndex($tokens, $index);
            if ($this->hasDocBlock($tokens, $index)) {
                $this->updateDocBlock($tokens, $docBlockIndex);
            }
        }
    }

    /**
     * @param string $functionName
     *
     * @return string
     */
    private function updateMethodCasing($functionName)
    {
        if (self::CAMEL_CASE === $this->configuration['case']) {
            $newFunctionName = $functionName;
            $newFunctionName = ucwords($newFunctionName, '_');
            $newFunctionName = str_replace('_', '', $newFunctionName);
            $newFunctionName = lcfirst($newFunctionName);
        } else {
            $newFunctionName = Utils::camelCaseToUnderscore($functionName);
        }

        return $newFunctionName;
    }

    /**
     * @param int $index
     *
     * @return bool
     */
    private function isTestMethod(Tokens $tokens, $index)
    {
        // Check if we are dealing with a (non abstract, non lambda) function
        if (!$this->isMethod($tokens, $index)) {
            return false;
        }

        // if the function name starts with test it's a test
        $functionNameIndex = $tokens->getNextMeaningfulToken($index);
        $functionName = $tokens[$functionNameIndex]->getContent();

        if ($this->startsWith('test', $functionName)) {
            return true;
        }
        // If the function doesn't have test in its name, and no doc block, it's not a test
        if (!$this->hasDocBlock($tokens, $index)) {
            return false;
        }

        $docBlockIndex = $this->getDocBlockIndex($tokens, $index);
        $doc = $tokens[$docBlockIndex]->getContent();
        if (false === strpos($doc, '@test')) {
            return false;
        }

        return true;
    }

    /**
     * @param int $index
     *
     * @return bool
     */
    private function isMethod(Tokens $tokens, $index)
    {
        $tokensAnalyzer = new TokensAnalyzer($tokens);

        return $tokens[$index]->isGivenKind(T_FUNCTION) && !$tokensAnalyzer->isLambda($index);
    }

    /**
     * @param string $needle
     * @param string $haystack
     *
     * @return bool
     */
    private function startsWith($needle, $haystack)
    {
        return substr($haystack, 0, \strlen($needle)) === $needle;
    }

    /**
     * @param int $index
     *
     * @return bool
     */
    private function hasDocBlock(Tokens $tokens, $index)
    {
        $docBlockIndex = $this->getDocBlockIndex($tokens, $index);

        return $tokens[$docBlockIndex]->isGivenKind(T_DOC_COMMENT);
    }

    /**
     * @param int $index
     *
     * @return int
     */
    private function getDocBlockIndex(Tokens $tokens, $index)
    {
        do {
            $index = $tokens->getPrevNonWhitespace($index);
        } while ($tokens[$index]->isGivenKind([T_PUBLIC, T_PROTECTED, T_PRIVATE, T_FINAL, T_ABSTRACT, T_COMMENT]));

        return $index;
    }

    /**
     * @param int $docBlockIndex
     */
    private function updateDocBlock(Tokens $tokens, $docBlockIndex)
    {
        $doc = new DocBlock($tokens[$docBlockIndex]->getContent());
        $lines = $doc->getLines();

        $docBlockNeedsUpdate = false;
        for ($inc = 0; $inc < \count($lines); ++$inc) {
            $lineContent = $lines[$inc]->getContent();
            if (false === strpos($lineContent, '@depends')) {
                continue;
            }

            $newLineContent = Preg::replaceCallback('/(@depends\s+)(.+)(\b)/', function (array $matches) {
                return sprintf(
                    '%s%s%s',
                    $matches[1],
                    $this->updateMethodCasing($matches[2]),
                    $matches[3]
                );
            }, $lineContent);

            if ($newLineContent !== $lineContent) {
                $lines[$inc] = new Line($newLineContent);
                $docBlockNeedsUpdate = true;
            }
        }

        if ($docBlockNeedsUpdate) {
            $lines = implode('', $lines);
            $tokens[$docBlockIndex] = new Token([T_DOC_COMMENT, $lines]);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer;

use PhpCsFixer\ConfigurationException\InvalidFixerConfigurationException;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 * @author SpacePossum
 *
 * @todo Will incorporate `ConfigurationDefinitionFixerInterface` in 3.0
 */
interface ConfigurableFixerInterface extends FixerInterface
{
    /**
     * Set configuration.
     *
     * New configuration must override current one, not patch it.
     * Using `null` makes fixer to use default configuration (or reset configuration from previously configured back
     * to default one).
     *
     * Some fixers may have no configuration, then - simply pass null.
     * Other ones may have configuration that will change behavior of fixer,
     * eg `php_unit_strict` fixer allows to configure which methods should be fixed.
     * Finally, some fixers need configuration to work, eg `header_comment`.
     *
     * @param null|array $configuration configuration depends on Fixer
     *
     * @throws InvalidFixerConfigurationException
     */
    public function configure(array $configuration = null);

    /*
     * Defines the available configuration options of the fixer.
     *
     * @return FixerConfigurationResolverInterface
     *
     * @todo uncomment at 3.0
     */
    // public function getConfigurationDefinition();
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Whitespace;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\FixerDefinition\VersionSpecification;
use PhpCsFixer\FixerDefinition\VersionSpecificCodeSample;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Jack Cherng <jfcherng@gmail.com>
 */
final class CompactNullableTypehintFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Remove extra spaces in a nullable typehint.',
            [
                new VersionSpecificCodeSample(
                    "<?php\nfunction sample(? string \$str): ? string\n{}\n",
                    new VersionSpecification(70100)
                ),
            ],
            'Rule is applied only in a PHP 7.1+ environment.'
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return \PHP_VERSION_ID >= 70100 && $tokens->isTokenKindFound(CT::T_NULLABLE_TYPE);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        static $typehintKinds = [
            CT::T_ARRAY_TYPEHINT,
            T_CALLABLE,
            T_NS_SEPARATOR,
            T_STRING,
        ];

        for ($index = $tokens->count() - 1; $index >= 0; --$index) {
            if (!$tokens[$index]->isGivenKind(CT::T_NULLABLE_TYPE)) {
                continue;
            }

            // remove whitespaces only if there are only whitespaces
            // between '?' and the variable type
            if (
                $tokens[$index + 1]->isWhitespace() &&
                $tokens[$index + 2]->isGivenKind($typehintKinds)
            ) {
                $tokens->removeTrailingWhitespace($index);
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Whitespace;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * Fixer for rules defined in PSR2 ¶2.2.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 * @author SpacePossum
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class LineEndingFixer extends AbstractFixer implements WhitespacesAwareFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'All PHP files must use same line ending.',
            [
                new CodeSample(
                    "<?php \$b = \" \$a \r\n 123\"; \$a = <<<TEST\r\nAAAAA \r\n |\r\nTEST;\n"
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before BracesFixer.
     */
    public function getPriority()
    {
        return 0;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $ending = $this->whitespacesConfig->getLineEnding();

        for ($index = 0, $count = \count($tokens); $index < $count; ++$index) {
            $token = $tokens[$index];

            if ($token->isGivenKind(T_ENCAPSED_AND_WHITESPACE)) {
                if ($tokens[$tokens->getNextMeaningfulToken($index)]->isGivenKind(T_END_HEREDOC)) {
                    $tokens[$index] = new Token([
                        $token->getId(),
                        Preg::replace(
                            '#\R#',
                            $ending,
                            $token->getContent()
                        ),
                    ]);
                }

                continue;
            }

            if ($token->isGivenKind([T_CLOSE_TAG, T_COMMENT, T_DOC_COMMENT, T_OPEN_TAG, T_START_HEREDOC, T_WHITESPACE])) {
                $tokens[$index] = new Token([
                    $token->getId(),
                    Preg::replace(
                        '#\R#',
                        $ending,
                        $token->getContent()
                    ),
                ]);
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Whitespace;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * A file must always end with a line endings character.
 *
 * Fixer for rules defined in PSR2 ¶2.2.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class SingleBlankLineAtEofFixer extends AbstractFixer implements WhitespacesAwareFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'A PHP file without end tag must always end with a single empty line feed.',
            [
                new CodeSample("<?php\n\$a = 1;"),
                new CodeSample("<?php\n\$a = 1;\n\n"),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function getPriority()
    {
        // must run last to be sure the file is properly formatted before it runs
        return -50;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $count = $tokens->count();

        if ($count && !$tokens[$count - 1]->isGivenKind([T_INLINE_HTML, T_CLOSE_TAG, T_OPEN_TAG])) {
            $tokens->ensureWhitespaceAtIndex($count - 1, 1, $this->whitespacesConfig->getLineEnding());
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Whitespace;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * Fixer for rules defined in PSR2 ¶2.4.
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class IndentationTypeFixer extends AbstractFixer implements WhitespacesAwareFixerInterface
{
    /**
     * @var string
     */
    private $indent;

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Code MUST use configured indentation type.',
            [
                new CodeSample("<?php\n\nif (true) {\n\techo 'Hello!';\n}\n"),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before PhpdocIndentFixer.
     * Must run after ClassAttributesSeparationFixer, MethodSeparationFixer.
     */
    public function getPriority()
    {
        return 50;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound([T_COMMENT, T_DOC_COMMENT, T_WHITESPACE]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $this->indent = $this->whitespacesConfig->getIndent();

        foreach ($tokens as $index => $token) {
            if ($token->isComment()) {
                $tokens[$index] = $this->fixIndentInComment($tokens, $index);

                continue;
            }

            if ($token->isWhitespace()) {
                $tokens[$index] = $this->fixIndentToken($tokens, $index);

                continue;
            }
        }
    }

    /**
     * @param int $index
     *
     * @return Token
     */
    private function fixIndentInComment(Tokens $tokens, $index)
    {
        $content = Preg::replace('/^(?:(?<! ) {1,3})?\t/m', '\1    ', $tokens[$index]->getContent(), -1, $count);

        // Also check for more tabs.
        while (0 !== $count) {
            $content = Preg::replace('/^(\ +)?\t/m', '\1    ', $content, -1, $count);
        }

        $indent = $this->indent;

        // change indent to expected one
        $content = Preg::replaceCallback('/^(?:    )+/m', function ($matches) use ($indent) {
            return $this->getExpectedIndent($matches[0], $indent);
        }, $content);

        return new Token([$tokens[$index]->getId(), $content]);
    }

    /**
     * @param int $index
     *
     * @return Token
     */
    private function fixIndentToken(Tokens $tokens, $index)
    {
        $content = $tokens[$index]->getContent();
        $previousTokenHasTrailingLinebreak = false;

        // @TODO 3.0 this can be removed when we have a transformer for "T_OPEN_TAG" to "T_OPEN_TAG + T_WHITESPACE"
        if (false !== strpos($tokens[$index - 1]->getContent(), "\n")) {
            $content = "\n".$content;
            $previousTokenHasTrailingLinebreak = true;
        }

        $indent = $this->indent;
        $newContent = Preg::replaceCallback(
            '/(\R)(\h+)/', // find indent
            function (array $matches) use ($indent) {
                // normalize mixed indent
                $content = Preg::replace('/(?:(?<! ) {1,3})?\t/', '    ', $matches[2]);

                // change indent to expected one
                return $matches[1].$this->getExpectedIndent($content, $indent);
            },
            $content
        );

        if ($previousTokenHasTrailingLinebreak) {
            $newContent = substr($newContent, 1);
        }

        return new Token([T_WHITESPACE, $newContent]);
    }

    /**
     * @param string $content
     * @param string $indent
     *
     * @return string mixed
     */
    private function getExpectedIndent($content, $indent)
    {
        if ("\t" === $indent) {
            $content = str_replace('    ', $indent, $content);
        }

        return $content;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Whitespace;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

final class ArrayIndentationFixer extends AbstractFixer implements WhitespacesAwareFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Each element of an array must be indented exactly once.',
            [
                new CodeSample("<?php\n\$foo = [\n   'bar' => [\n    'baz' => true,\n  ],\n];\n"),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound([T_ARRAY, CT::T_ARRAY_SQUARE_BRACE_OPEN]);
    }

    /**
     * {@inheritdoc}
     *
     * Must run before AlignMultilineCommentFixer, BinaryOperatorSpacesFixer.
     * Must run after BracesFixer, MethodArgumentSpaceFixer, MethodChainingIndentationFixer.
     */
    public function getPriority()
    {
        return -31;
    }

    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($this->findArrays($tokens) as $array) {
            $indentLevel = 1;
            $scopes = [[
                'opening_braces' => $array['start_braces']['opening'],
                'unindented' => false,
            ]];
            $currentScope = 0;

            $arrayIndent = $this->getLineIndentation($tokens, $array['start']);
            $previousLineInitialIndent = $arrayIndent;
            $previousLineNewIndent = $arrayIndent;

            foreach ($array['braces'] as $index => $braces) {
                $currentIndentLevel = $indentLevel;
                if (
                    $braces['starts_with_closing']
                    && !$scopes[$currentScope]['unindented']
                    && !$this->isClosingLineWithMeaningfulContent($tokens, $index)
                ) {
                    --$currentIndentLevel;
                }

                $token = $tokens[$index];
                if ($this->newlineIsInArrayScope($tokens, $index, $array)) {
                    $content = Preg::replace(
                        '/(\R+)\h*$/',
                        '$1'.$arrayIndent.str_repeat($this->whitespacesConfig->getIndent(), $currentIndentLevel),
                        $token->getContent()
                    );

                    $previousLineInitialIndent = $this->extractIndent($token->getContent());
                    $previousLineNewIndent = $this->extractIndent($content);
                } else {
                    $content = Preg::replace(
                        '/(\R)'.preg_quote($previousLineInitialIndent, '/').'(\h*)$/',
                        '$1'.$previousLineNewIndent.'$2',
                        $token->getContent()
                    );
                }

                $closingBraces = $braces['closing'];
                while ($closingBraces-- > 0) {
                    if (!$scopes[$currentScope]['unindented']) {
                        --$indentLevel;
                        $scopes[$currentScope]['unindented'] = true;
                    }

                    if (0 === --$scopes[$currentScope]['opening_braces']) {
                        array_pop($scopes);
                        --$currentScope;
                    }
                }

                if ($braces['opening'] > 0) {
                    $scopes[] = [
                        'opening_braces' => $braces['opening'],
                        'unindented' => false,
                    ];
                    ++$indentLevel;
                    ++$currentScope;
                }

                $tokens[$index] = new Token([T_WHITESPACE, $content]);
            }
        }
    }

    private function findArrays(Tokens $tokens)
    {
        $arrays = [];

        foreach ($this->findArrayTokenRanges($tokens, 0, \count($tokens) - 1) as $arrayTokenRanges) {
            $array = [
                'start' => $arrayTokenRanges[0][0],
                'end' => $arrayTokenRanges[\count($arrayTokenRanges) - 1][1],
                'token_ranges' => $arrayTokenRanges,
            ];

            $array['start_braces'] = $this->getLineSignificantBraces($tokens, $array['start'] - 1, $array);
            $array['braces'] = $this->computeArrayLineSignificantBraces($tokens, $array);

            $arrays[] = $array;
        }

        return $arrays;
    }

    private function findArrayTokenRanges(Tokens $tokens, $from, $to)
    {
        $arrayTokenRanges = [];
        $currentArray = null;
        $valueSinceIndex = null;

        for ($index = $from; $index <= $to; ++$index) {
            $token = $tokens[$index];

            if ($token->isGivenKind([T_ARRAY, CT::T_ARRAY_SQUARE_BRACE_OPEN])) {
                $arrayStartIndex = $index;

                if ($token->isGivenKind(T_ARRAY)) {
                    $index = $tokens->getNextTokenOfKind($index, ['(']);
                }

                $endIndex = $tokens->findBlockEnd(
                    $tokens[$index]->equals('(') ? Tokens::BLOCK_TYPE_PARENTHESIS_BRACE : Tokens::BLOCK_TYPE_ARRAY_SQUARE_BRACE,
                    $index
                );

                if (null === $currentArray) {
                    $currentArray = [
                        'start' => $index,
                        'end' => $endIndex,
                        'ignored_tokens_ranges' => [],
                    ];
                } else {
                    if (null === $valueSinceIndex) {
                        $valueSinceIndex = $arrayStartIndex;
                    }

                    $index = $endIndex;
                }

                continue;
            }

            if (null === $currentArray || $token->isWhitespace() || $token->isComment()) {
                continue;
            }

            if ($currentArray['end'] === $index) {
                if (null !== $valueSinceIndex) {
                    $currentArray['ignored_tokens_ranges'][] = [$valueSinceIndex, $tokens->getPrevMeaningfulToken($index)];
                    $valueSinceIndex = null;
                }

                $rangeIndexes = [$currentArray['start']];
                foreach ($currentArray['ignored_tokens_ranges'] as list($start, $end)) {
                    $rangeIndexes[] = $start - 1;
                    $rangeIndexes[] = $end + 1;
                }
                $rangeIndexes[] = $currentArray['end'];

                $arrayTokenRanges[] = array_chunk($rangeIndexes, 2);

                foreach ($currentArray['ignored_tokens_ranges'] as list($start, $end)) {
                    foreach ($this->findArrayTokenRanges($tokens, $start, $end) as $nestedArray) {
                        $arrayTokenRanges[] = $nestedArray;
                    }
                }

                $currentArray = null;

                continue;
            }

            if (null === $valueSinceIndex) {
                $valueSinceIndex = $index;
            }

            if (
                ($token->equals('(') && !$tokens[$tokens->getPrevMeaningfulToken($index)]->isGivenKind(T_ARRAY))
                || $token->equals('{')
            ) {
                $index = $tokens->findBlockEnd(
                    $token->equals('{') ? Tokens::BLOCK_TYPE_CURLY_BRACE : Tokens::BLOCK_TYPE_PARENTHESIS_BRACE,
                    $index
                );
            }

            if ($token->equals(',')) {
                $currentArray['ignored_tokens_ranges'][] = [$valueSinceIndex, $tokens->getPrevMeaningfulToken($index)];
                $valueSinceIndex = null;
            }
        }

        return $arrayTokenRanges;
    }

    private function computeArrayLineSignificantBraces(Tokens $tokens, array $array)
    {
        $braces = [];

        for ($index = $array['start']; $index <= $array['end']; ++$index) {
            if (!$this->isNewLineToken($tokens, $index)) {
                continue;
            }

            $braces[$index] = $this->getLineSignificantBraces($tokens, $index, $array);
        }

        return $braces;
    }

    private function getLineSignificantBraces(Tokens $tokens, $index, array $array)
    {
        $deltas = [];

        for (++$index; $index <= $array['end']; ++$index) {
            if ($this->isNewLineToken($tokens, $index)) {
                break;
            }

            if (!$this->indexIsInArrayTokenRanges($index, $array)) {
                continue;
            }

            $token = $tokens[$index];
            if ($token->equals('(') && !$tokens[$tokens->getPrevMeaningfulToken($index)]->isGivenKind(T_ARRAY)) {
                continue;
            }

            if ($token->equals(')')) {
                $openBraceIndex = $tokens->findBlockStart(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $index);
                if (!$tokens[$tokens->getPrevMeaningfulToken($openBraceIndex)]->isGivenKind(T_ARRAY)) {
                    continue;
                }
            }

            if ($token->equalsAny(['(', [CT::T_ARRAY_SQUARE_BRACE_OPEN]])) {
                $deltas[] = 1;

                continue;
            }

            if ($token->equalsAny([')', [CT::T_ARRAY_SQUARE_BRACE_CLOSE]])) {
                $deltas[] = -1;
            }
        }

        $braces = [
            'opening' => 0,
            'closing' => 0,
            'starts_with_closing' => -1 === reset($deltas),
        ];

        foreach ($deltas as $delta) {
            if (1 === $delta) {
                ++$braces['opening'];
            } elseif ($braces['opening'] > 0) {
                --$braces['opening'];
            } else {
                ++$braces['closing'];
            }
        }

        return $braces;
    }

    private function isClosingLineWithMeaningfulContent(Tokens $tokens, $newLineIndex)
    {
        $nextMeaningfulIndex = $tokens->getNextMeaningfulToken($newLineIndex);

        return !$tokens[$nextMeaningfulIndex]->equalsAny([')', [CT::T_ARRAY_SQUARE_BRACE_CLOSE]]);
    }

    private function getLineIndentation(Tokens $tokens, $index)
    {
        $newlineTokenIndex = $this->getPreviousNewlineTokenIndex($tokens, $index);

        if (null === $newlineTokenIndex) {
            return '';
        }

        return $this->extractIndent($this->computeNewLineContent($tokens, $newlineTokenIndex));
    }

    private function extractIndent($content)
    {
        if (Preg::match('/\R(\h*)[^\r\n]*$/D', $content, $matches)) {
            return $matches[1];
        }

        return '';
    }

    private function getPreviousNewlineTokenIndex(Tokens $tokens, $index)
    {
        while ($index > 0) {
            $index = $tokens->getPrevTokenOfKind($index, [[T_WHITESPACE], [T_INLINE_HTML]]);

            if (null === $index) {
                break;
            }

            if ($this->isNewLineToken($tokens, $index)) {
                return $index;
            }
        }

        return null;
    }

    private function newlineIsInArrayScope(Tokens $tokens, $index, array $array)
    {
        if ($tokens[$tokens->getPrevMeaningfulToken($index)]->equalsAny(['.', '?', ':'])) {
            return false;
        }

        $nextToken = $tokens[$tokens->getNextMeaningfulToken($index)];
        if ($nextToken->isGivenKind(T_OBJECT_OPERATOR) || $nextToken->equalsAny(['.', '?', ':'])) {
            return false;
        }

        return $this->indexIsInArrayTokenRanges($index, $array);
    }

    private function indexIsInArrayTokenRanges($index, array $array)
    {
        foreach ($array['token_ranges'] as list($start, $end)) {
            if ($index < $start) {
                return false;
            }

            if ($index <= $end) {
                return true;
            }
        }

        return false;
    }

    private function isNewLineToken(Tokens $tokens, $index)
    {
        if (!$tokens[$index]->equalsAny([[T_WHITESPACE], [T_INLINE_HTML]])) {
            return false;
        }

        return (bool) Preg::match('/\R/', $this->computeNewLineContent($tokens, $index));
    }

    private function computeNewLineContent(Tokens $tokens, $index)
    {
        $content = $tokens[$index]->getContent();

        if (0 !== $index && $tokens[$index - 1]->equalsAny([[T_OPEN_TAG], [T_CLOSE_TAG]])) {
            $content = Preg::replace('/\S/', '', $tokens[$index - 1]->getContent()).$content;
        }

        return $content;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Whitespace;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\AllowedValueSubset;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverRootless;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Javier Spagnoletti <phansys@gmail.com>
 */
final class NoSpacesAroundOffsetFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'There MUST NOT be spaces around offset braces.',
            [
                new CodeSample("<?php\n\$sample = \$b [ 'a' ] [ 'b' ];\n"),
                new CodeSample("<?php\n\$sample = \$b [ 'a' ] [ 'b' ];\n", ['positions' => ['inside']]),
                new CodeSample("<?php\n\$sample = \$b [ 'a' ] [ 'b' ];\n", ['positions' => ['outside']]),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound(['[', CT::T_ARRAY_INDEX_CURLY_BRACE_OPEN]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if (!$token->equalsAny(['[', [CT::T_ARRAY_INDEX_CURLY_BRACE_OPEN]])) {
                continue;
            }

            if (\in_array('inside', $this->configuration['positions'], true)) {
                if ($token->equals('[')) {
                    $endIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_INDEX_SQUARE_BRACE, $index);
                } else {
                    $endIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_ARRAY_INDEX_CURLY_BRACE, $index);
                }

                // remove space after opening `[` or `{`
                if ($tokens[$index + 1]->isWhitespace(" \t")) {
                    $tokens->clearAt($index + 1);
                }

                // remove space before closing `]` or `}`
                if ($tokens[$endIndex - 1]->isWhitespace(" \t")) {
                    $tokens->clearAt($endIndex - 1);
                }
            }

            if (\in_array('outside', $this->configuration['positions'], true)) {
                $prevNonWhitespaceIndex = $tokens->getPrevNonWhitespace($index);
                if ($tokens[$prevNonWhitespaceIndex]->isComment()) {
                    continue;
                }

                $tokens->removeLeadingWhitespace($index);
            }
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        $values = ['inside', 'outside'];

        return new FixerConfigurationResolverRootless('positions', [
            (new FixerOptionBuilder('positions', 'Whether spacing should be fixed inside and/or outside the offset braces.'))
                ->setAllowedTypes(['array'])
                ->setAllowedValues([new AllowedValueSubset($values)])
                ->setDefault($values)
                ->getOption(),
        ], $this->getName());
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Whitespace;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class NoWhitespaceInBlankLineFixer extends AbstractFixer implements WhitespacesAwareFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Remove trailing whitespace at the end of blank lines.',
            [new CodeSample("<?php\n   \n\$a = 1;\n")]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run after CombineConsecutiveIssetsFixer, CombineConsecutiveUnsetsFixer, FunctionToConstantFixer, NoEmptyCommentFixer, NoEmptyPhpdocFixer, NoEmptyStatementFixer, NoUselessElseFixer, NoUselessReturnFixer.
     */
    public function getPriority()
    {
        return -19;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        // skip first as it cannot be a white space token
        for ($i = 1, $count = \count($tokens); $i < $count; ++$i) {
            if ($tokens[$i]->isWhitespace()) {
                $this->fixWhitespaceToken($tokens, $i);
            }
        }
    }

    /**
     * @param int $index
     */
    private function fixWhitespaceToken(Tokens $tokens, $index)
    {
        $content = $tokens[$index]->getContent();
        $lines = Preg::split("/(\r\n|\n)/", $content);
        $lineCount = \count($lines);

        if (
            // fix T_WHITESPACES with at least 3 lines (eg `\n   \n`)
            $lineCount > 2
            // and T_WHITESPACES with at least 2 lines at the end of file or after open tag with linebreak
            || ($lineCount > 0 && (!isset($tokens[$index + 1]) || $tokens[$index - 1]->isGivenKind(T_OPEN_TAG)))
        ) {
            $lMax = isset($tokens[$index + 1]) ? $lineCount - 1 : $lineCount;

            $lStart = 1;
            if ($tokens[$index - 1]->isGivenKind(T_OPEN_TAG) && "\n" === substr($tokens[$index - 1]->getContent(), -1)) {
                $lStart = 0;
            }

            for ($l = $lStart; $l < $lMax; ++$l) {
                $lines[$l] = Preg::replace('/^\h+$/', '', $lines[$l]);
            }
            $content = implode($this->whitespacesConfig->getLineEnding(), $lines);
            if ('' !== $content) {
                $tokens[$index] = new Token([T_WHITESPACE, $content]);
            } else {
                $tokens->clearAt($index);
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Whitespace;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerConfiguration\AllowedValueSubset;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Tokenizer\TokensAnalyzer;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 * @author Andreas Möller <am@localheinz.com>
 * @author SpacePossum
 */
final class BlankLineBeforeStatementFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface, WhitespacesAwareFixerInterface
{
    /**
     * @var array
     */
    private static $tokenMap = [
        'break' => T_BREAK,
        'case' => T_CASE,
        'continue' => T_CONTINUE,
        'declare' => T_DECLARE,
        'default' => T_DEFAULT,
        'die' => T_EXIT,
        'do' => T_DO,
        'exit' => T_EXIT,
        'for' => T_FOR,
        'foreach' => T_FOREACH,
        'goto' => T_GOTO,
        'if' => T_IF,
        'include' => T_INCLUDE,
        'include_once' => T_INCLUDE_ONCE,
        'require' => T_REQUIRE,
        'require_once' => T_REQUIRE_ONCE,
        'return' => T_RETURN,
        'switch' => T_SWITCH,
        'throw' => T_THROW,
        'try' => T_TRY,
        'while' => T_WHILE,
        'yield' => T_YIELD,
    ];

    /**
     * @var array
     */
    private $fixTokenMap = [];

    /**
     * {@inheritdoc}
     */
    public function configure(array $configuration = null)
    {
        parent::configure($configuration);

        $this->fixTokenMap = [];

        foreach ($this->configuration['statements'] as $key) {
            $this->fixTokenMap[$key] = self::$tokenMap[$key];
        }

        $this->fixTokenMap = array_values($this->fixTokenMap);
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'An empty line feed must precede any configured statement.',
            [
                new CodeSample(
                    '<?php
function A() {
    echo 1;
    return 1;
}
'
                ),
                new CodeSample(
                    '<?php
switch ($foo) {
    case 42:
        $bar->process();
        break;
    case 44:
        break;
}
',
                    [
                        'statements' => ['break'],
                    ]
                ),
                new CodeSample(
                    '<?php
foreach ($foo as $bar) {
    if ($bar->isTired()) {
        $bar->sleep();
        continue;
    }
}
',
                    [
                        'statements' => ['continue'],
                    ]
                ),
                new CodeSample(
                    '<?php
if ($foo === false) {
    die(0);
} else {
    $bar = 9000;
    die(1);
}
',
                    [
                        'statements' => ['die'],
                    ]
                ),
                new CodeSample(
                    '<?php
$i = 0;
do {
    echo $i;
} while ($i > 0);
',
                    [
                        'statements' => ['do'],
                    ]
                ),
                new CodeSample(
                    '<?php
if ($foo === false) {
    exit(0);
} else {
    $bar = 9000;
    exit(1);
}
',
                    [
                        'statements' => ['exit'],
                    ]
                ),
                new CodeSample(
                    '<?php
a:

if ($foo === false) {
    goto a;
} else {
    $bar = 9000;
    goto b;
}
',
                    [
                        'statements' => ['goto'],
                    ]
                ),
                new CodeSample(
                    '<?php
$a = 9000;
if (true) {
    $foo = $bar;
}
',
                    [
                        'statements' => ['if'],
                    ]
                ),
                new CodeSample(
                    '<?php

if (true) {
    $foo = $bar;
    return;
}
',
                    [
                        'statements' => ['return'],
                    ]
                ),
                new CodeSample(
                    '<?php
$a = 9000;
switch ($a) {
    case 42:
        break;
}
',
                    [
                        'statements' => ['switch'],
                    ]
                ),
                new CodeSample(
                    '<?php
if (null === $a) {
    $foo->bar();
    throw new \UnexpectedValueException("A cannot be null.");
}
',
                    [
                        'statements' => ['throw'],
                    ]
                ),
                new CodeSample(
                    '<?php
$a = 9000;
try {
    $foo->bar();
} catch (\Exception $exception) {
    $a = -1;
}
',
                    [
                        'statements' => ['try'],
                    ]
                ),
                new CodeSample(
                    '<?php

if (true) {
    $foo = $bar;
    yield $foo;
}
',
                    [
                        'statements' => ['yield'],
                    ]
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run after NoExtraBlankLinesFixer, NoUselessReturnFixer, ReturnAssignmentFixer.
     */
    public function getPriority()
    {
        return -21;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound($this->fixTokenMap);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $analyzer = new TokensAnalyzer($tokens);

        for ($index = $tokens->count() - 1; $index > 0; --$index) {
            $token = $tokens[$index];

            if (!$token->isGivenKind($this->fixTokenMap)) {
                continue;
            }

            if ($token->isGivenKind(T_WHILE) && $analyzer->isWhilePartOfDoWhile($index)) {
                continue;
            }

            $prevNonWhitespace = $tokens->getPrevNonWhitespace($index);

            if ($this->shouldAddBlankLine($tokens, $prevNonWhitespace)) {
                $this->insertBlankLine($tokens, $index);
            }

            $index = $prevNonWhitespace;
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('statements', 'List of statements which must be preceded by an empty line.'))
                ->setAllowedTypes(['array'])
                ->setAllowedValues([new AllowedValueSubset(array_keys(self::$tokenMap))])
                ->setDefault([
                    'break',
                    'continue',
                    'declare',
                    'return',
                    'throw',
                    'try',
                ])
                ->getOption(),
        ]);
    }

    /**
     * @param int $prevNonWhitespace
     *
     * @return bool
     */
    private function shouldAddBlankLine(Tokens $tokens, $prevNonWhitespace)
    {
        $prevNonWhitespaceToken = $tokens[$prevNonWhitespace];

        if ($prevNonWhitespaceToken->isComment()) {
            for ($j = $prevNonWhitespace - 1; $j >= 0; --$j) {
                if (false !== strpos($tokens[$j]->getContent(), "\n")) {
                    return false;
                }

                if ($tokens[$j]->isWhitespace() || $tokens[$j]->isComment()) {
                    continue;
                }

                return $tokens[$j]->equalsAny([';', '}']);
            }
        }

        return $prevNonWhitespaceToken->equalsAny([';', '}']);
    }

    /**
     * @param int $index
     */
    private function insertBlankLine(Tokens $tokens, $index)
    {
        $prevIndex = $index - 1;
        $prevToken = $tokens[$prevIndex];
        $lineEnding = $this->whitespacesConfig->getLineEnding();

        if ($prevToken->isWhitespace()) {
            $newlinesCount = substr_count($prevToken->getContent(), "\n");

            if (0 === $newlinesCount) {
                $tokens[$prevIndex] = new Token([T_WHITESPACE, rtrim($prevToken->getContent(), " \t").$lineEnding.$lineEnding]);
            } elseif (1 === $newlinesCount) {
                $tokens[$prevIndex] = new Token([T_WHITESPACE, $lineEnding.$prevToken->getContent()]);
            }
        } else {
            $tokens->insertAt($index, new Token([T_WHITESPACE, $lineEnding.$lineEnding]));
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Whitespace;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\FixerDefinition\VersionSpecification;
use PhpCsFixer\FixerDefinition\VersionSpecificCodeSample;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Gregor Harlan
 */
final class HeredocIndentationFixer extends AbstractFixer implements WhitespacesAwareFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Heredoc/nowdoc content must be properly indented. Requires PHP >= 7.3.',
            [
                new VersionSpecificCodeSample(
                    <<<'SAMPLE'
<?php
    $a = <<<EOD
abc
    def
EOD;

SAMPLE
                    ,
                    new VersionSpecification(70300)
                ),
                new VersionSpecificCodeSample(
                    <<<'SAMPLE'
<?php
    $a = <<<'EOD'
abc
    def
EOD;

SAMPLE
                    ,
                    new VersionSpecification(70300)
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return \PHP_VERSION_ID >= 70300 && $tokens->isTokenKindFound(T_START_HEREDOC);
    }

    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        for ($index = \count($tokens) - 1; 0 <= $index; --$index) {
            if (!$tokens[$index]->isGivenKind(T_END_HEREDOC)) {
                continue;
            }

            $end = $index;
            $index = $tokens->getPrevTokenOfKind($index, [[T_START_HEREDOC]]);

            $this->fixIndentation($tokens, $index, $end);
        }
    }

    /**
     * @param int $start
     * @param int $end
     */
    private function fixIndentation(Tokens $tokens, $start, $end)
    {
        $indent = $this->getIndentAt($tokens, $start).$this->whitespacesConfig->getIndent();

        Preg::match('/^\h*/', $tokens[$end]->getContent(), $matches);
        $currentIndent = $matches[0];
        $currentIndentLength = \strlen($currentIndent);

        $content = $indent.substr($tokens[$end]->getContent(), $currentIndentLength);
        $tokens[$end] = new Token([T_END_HEREDOC, $content]);

        if ($end === $start + 1) {
            return;
        }

        for ($index = $end - 1, $last = true; $index > $start; --$index, $last = false) {
            if (!$tokens[$index]->isGivenKind([T_ENCAPSED_AND_WHITESPACE, T_WHITESPACE])) {
                continue;
            }

            $content = $tokens[$index]->getContent();

            if ('' !== $currentIndent) {
                $content = Preg::replace('/(?<=\v)(?!'.$currentIndent.')\h+/', '', $content);
            }

            $regexEnd = $last && !$currentIndent ? '(?!\v|$)' : '(?!\v)';
            $content = Preg::replace('/(?<=\v)'.$currentIndent.$regexEnd.'/', $indent, $content);

            $tokens[$index] = new Token([$tokens[$index]->getId(), $content]);
        }

        ++$index;

        if (!$tokens[$index]->isGivenKind(T_ENCAPSED_AND_WHITESPACE)) {
            $tokens->insertAt($index, new Token([T_ENCAPSED_AND_WHITESPACE, $indent]));

            return;
        }

        $content = $tokens[$index]->getContent();

        if (!\in_array($content[0], ["\r", "\n"], true) && (!$currentIndent || $currentIndent === substr($content, 0, $currentIndentLength))) {
            $content = $indent.substr($content, $currentIndentLength);
        } elseif ($currentIndent) {
            $content = Preg::replace('/^(?!'.$currentIndent.')\h+/', '', $content);
        }

        $tokens[$index] = new Token([T_ENCAPSED_AND_WHITESPACE, $content]);
    }

    /**
     * @param int $index
     *
     * @return string
     */
    private function getIndentAt(Tokens $tokens, $index)
    {
        for (; $index >= 0; --$index) {
            if (!$tokens[$index]->isGivenKind([T_WHITESPACE, T_INLINE_HTML, T_OPEN_TAG])) {
                continue;
            }

            $content = $tokens[$index]->getContent();

            if ($tokens[$index]->isWhitespace() && $tokens[$index - 1]->isGivenKind(T_OPEN_TAG)) {
                $content = $tokens[$index - 1]->getContent().$content;
            }

            if (1 === Preg::match('/\R(\h*)$/', $content, $matches)) {
                return $matches[1];
            }
        }

        return '';
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Whitespace;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * Fixer for rules defined in PSR2 ¶4.3, ¶4.6, ¶5.
 *
 * @author Marc Aubé
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class NoSpacesInsideParenthesisFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'There MUST NOT be a space after the opening parenthesis. There MUST NOT be a space before the closing parenthesis.',
            [
                new CodeSample("<?php\nif ( \$a ) {\n    foo( );\n}\n"),
                new CodeSample(
                    "<?php
function foo( \$bar, \$baz )
{
}\n"
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before FunctionToConstantFixer.
     * Must run after CombineConsecutiveIssetsFixer, CombineNestedDirnameFixer, PowToExponentiationFixer.
     */
    public function getPriority()
    {
        return 2;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound('(');
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if (!$token->equals('(')) {
                continue;
            }

            $prevIndex = $tokens->getPrevMeaningfulToken($index);

            // ignore parenthesis for T_ARRAY
            if (null !== $prevIndex && $tokens[$prevIndex]->isGivenKind(T_ARRAY)) {
                continue;
            }

            $endIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $index);

            // remove space after opening `(`
            if (!$tokens[$tokens->getNextNonWhitespace($index)]->isComment()) {
                $this->removeSpaceAroundToken($tokens, $index + 1);
            }

            // remove space before closing `)` if it is not `list($a, $b, )` case
            if (!$tokens[$tokens->getPrevMeaningfulToken($endIndex)]->equals(',')) {
                $this->removeSpaceAroundToken($tokens, $endIndex - 1);
            }
        }
    }

    /**
     * Remove spaces from token at a given index.
     *
     * @param int $index
     */
    private function removeSpaceAroundToken(Tokens $tokens, $index)
    {
        $token = $tokens[$index];

        if ($token->isWhitespace() && false === strpos($token->getContent(), "\n")) {
            $tokens->clearAt($index);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Whitespace;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * Fixer for rules defined in PSR2 ¶2.3.
 *
 * Don't add trailing spaces at the end of non-blank lines.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class NoTrailingWhitespaceFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Remove trailing whitespace at the end of non-blank lines.',
            [new CodeSample("<?php\n\$a = 1;     \n")]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run after CombineConsecutiveIssetsFixer, CombineConsecutiveUnsetsFixer, FunctionToConstantFixer, NoEmptyCommentFixer, NoEmptyPhpdocFixer, NoEmptyStatementFixer, NoUnneededControlParenthesesFixer, NoUselessElseFixer.
     */
    public function getPriority()
    {
        return 0;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        for ($index = \count($tokens) - 1; $index >= 0; --$index) {
            $token = $tokens[$index];
            if (
                $token->isGivenKind(T_OPEN_TAG)
                && $tokens->offsetExists($index + 1)
                && $tokens[$index + 1]->isWhitespace()
                && 1 === Preg::match('/(.*)\h$/', $token->getContent(), $openTagMatches)
                && 1 === Preg::match('/^(\R)(.*)$/s', $tokens[$index + 1]->getContent(), $whitespaceMatches)
            ) {
                $tokens[$index] = new Token([T_OPEN_TAG, $openTagMatches[1].$whitespaceMatches[1]]);
                if ('' === $whitespaceMatches[2]) {
                    $tokens->clearAt($index + 1);
                } else {
                    $tokens[$index + 1] = new Token([T_WHITESPACE, $whitespaceMatches[2]]);
                }

                continue;
            }

            if (!$token->isWhitespace()) {
                continue;
            }

            $lines = Preg::split('/(\\R+)/', $token->getContent(), -1, PREG_SPLIT_DELIM_CAPTURE);
            $linesSize = \count($lines);

            // fix only multiline whitespaces or singleline whitespaces at the end of file
            if ($linesSize > 1 || !isset($tokens[$index + 1])) {
                if (!$tokens[$index - 1]->isGivenKind(T_OPEN_TAG) || 1 !== Preg::match('/(.*)\R$/', $tokens[$index - 1]->getContent())) {
                    $lines[0] = rtrim($lines[0], " \t");
                }

                for ($i = 1; $i < $linesSize; ++$i) {
                    $trimmedLine = rtrim($lines[$i], " \t");
                    if ('' !== $trimmedLine) {
                        $lines[$i] = $trimmedLine;
                    }
                }

                $content = implode('', $lines);
                if ('' !== $content) {
                    $tokens[$index] = new Token([$token->getId(), $content]);
                } else {
                    $tokens->clearAt($index);
                }
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Whitespace;

use PhpCsFixer\AbstractProxyFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\Fixer\DeprecatedFixerInterface;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 * @author SpacePossum
 *
 * @deprecated in 2.10, proxy to NoExtraBlankLinesFixer
 */
final class NoExtraConsecutiveBlankLinesFixer extends AbstractProxyFixer implements ConfigurationDefinitionFixerInterface, DeprecatedFixerInterface, WhitespacesAwareFixerInterface
{
    private $fixer;

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return $this->getFixer()->getDefinition();
    }

    public function configure(array $configuration = null)
    {
        $this->getFixer()->configure($configuration);
        $this->configuration = $configuration;
    }

    public function getConfigurationDefinition()
    {
        return $this->getFixer()->getConfigurationDefinition();
    }

    /**
     * {@inheritdoc}
     */
    public function getSuccessorsNames()
    {
        return array_keys($this->proxyFixers);
    }

    /**
     * {@inheritdoc}
     */
    protected function createProxyFixers()
    {
        return [$this->getFixer()];
    }

    private function getFixer()
    {
        if (null === $this->fixer) {
            $this->fixer = new NoExtraBlankLinesFixer();
        }

        return $this->fixer;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Whitespace;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Vladimir Boliev <voff.web@gmail.com>
 */
final class MethodChainingIndentationFixer extends AbstractFixer implements WhitespacesAwareFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Method chaining MUST be properly indented. Method chaining with different levels of indentation is not supported.',
            [new CodeSample("<?php\n\$user->setEmail('voff.web@gmail.com')\n         ->setPassword('233434');\n")]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before ArrayIndentationFixer, MethodArgumentSpaceFixer.
     * Must run after BracesFixer.
     */
    public function getPriority()
    {
        return -29;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_OBJECT_OPERATOR);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $lineEnding = $this->whitespacesConfig->getLineEnding();

        for ($index = 1, $count = \count($tokens); $index < $count; ++$index) {
            if (!$tokens[$index]->isGivenKind(T_OBJECT_OPERATOR)) {
                continue;
            }

            if ($this->canBeMovedToNextLine($index, $tokens)) {
                $newline = new Token([T_WHITESPACE, $lineEnding]);
                if ($tokens[$index - 1]->isWhitespace()) {
                    $tokens[$index - 1] = $newline;
                } else {
                    $tokens->insertAt($index, $newline);
                    ++$index;
                }
            }

            $currentIndent = $this->getIndentAt($tokens, $index - 1);
            if (null === $currentIndent) {
                continue;
            }

            $expectedIndent = $this->getExpectedIndentAt($tokens, $index);
            if ($currentIndent !== $expectedIndent) {
                $tokens[$index - 1] = new Token([T_WHITESPACE, $lineEnding.$expectedIndent]);
            }
        }
    }

    /**
     * @param int $index index of the first token on the line to indent
     *
     * @return string
     */
    private function getExpectedIndentAt(Tokens $tokens, $index)
    {
        $index = $tokens->getPrevMeaningfulToken($index);
        $indent = $this->whitespacesConfig->getIndent();

        for ($i = $index; $i >= 0; --$i) {
            if ($tokens[$i]->equals(')')) {
                $i = $tokens->findBlockStart(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $i);
            }

            $currentIndent = $this->getIndentAt($tokens, $i);
            if (null === $currentIndent) {
                continue;
            }

            if ($this->currentLineRequiresExtraIndentLevel($tokens, $i, $index)) {
                return $currentIndent.$indent;
            }

            return $currentIndent;
        }

        return $indent;
    }

    /**
     * @param int $index position of the T_OBJECT_OPERATOR token
     *
     * @return bool
     */
    private function canBeMovedToNextLine($index, Tokens $tokens)
    {
        $prevMeaningful = $tokens->getPrevMeaningfulToken($index);
        $hasCommentBefore = false;

        for ($i = $index - 1; $i > $prevMeaningful; --$i) {
            if ($tokens[$i]->isComment()) {
                $hasCommentBefore = true;

                continue;
            }

            if ($tokens[$i]->isWhitespace() && 1 === Preg::match('/\R/', $tokens[$i]->getContent())) {
                return $hasCommentBefore;
            }
        }

        return false;
    }

    /**
     * @param int $index index of the indentation token
     *
     * @return null|string
     */
    private function getIndentAt(Tokens $tokens, $index)
    {
        if (1 === Preg::match('/\R{1}(\h*)$/', $this->getIndentContentAt($tokens, $index), $matches)) {
            return $matches[1];
        }

        return null;
    }

    private function getIndentContentAt(Tokens $tokens, $index)
    {
        if (!$tokens[$index]->isGivenKind([T_WHITESPACE, T_INLINE_HTML])) {
            return '';
        }

        $content = $tokens[$index]->getContent();

        if ($tokens[$index]->isWhitespace() && $tokens[$index - 1]->isGivenKind(T_OPEN_TAG)) {
            $content = $tokens[$index - 1]->getContent().$content;
        }

        if (Preg::match('/\R/', $content)) {
            return $content;
        }

        return '';
    }

    /**
     * @param int $start index of first meaningful token on previous line
     * @param int $end   index of last token on previous line
     *
     * @return bool
     */
    private function currentLineRequiresExtraIndentLevel(Tokens $tokens, $start, $end)
    {
        if ($tokens[$start + 1]->isGivenKind(T_OBJECT_OPERATOR)) {
            return false;
        }

        if ($tokens[$end]->isGivenKind(CT::T_BRACE_CLASS_INSTANTIATION_CLOSE)) {
            return true;
        }

        return
            !$tokens[$end]->equals(')')
            || $tokens->findBlockStart(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $end) >= $start
        ;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Whitespace;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\ConfigurationException\InvalidConfigurationException;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerConfiguration\AllowedValueSubset;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverRootless;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Tokenizer\TokensAnalyzer;
use Symfony\Component\OptionsResolver\Options;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 * @author SpacePossum
 */
final class NoExtraBlankLinesFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface, WhitespacesAwareFixerInterface
{
    /**
     * @var string[]
     */
    private static $availableTokens = [
        'break',
        'case',
        'continue',
        'curly_brace_block',
        'default',
        'extra',
        'parenthesis_brace_block',
        'return',
        'square_brace_block',
        'switch',
        'throw',
        'use',
        'useTrait',
        'use_trait',
    ];

    /**
     * @var array<int, string> key is token id, value is name of callback
     */
    private $tokenKindCallbackMap;

    /**
     * @var array<string, string> token prototype, value is name of callback
     */
    private $tokenEqualsMap;

    /**
     * @var Tokens
     */
    private $tokens;

    /**
     * @var TokensAnalyzer
     */
    private $tokensAnalyzer;

    /**
     * {@inheritdoc}
     */
    public function configure(array $configuration = null)
    {
        parent::configure($configuration);

        static $reprToTokenMap = [
            'break' => T_BREAK,
            'case' => T_CASE,
            'continue' => T_CONTINUE,
            'curly_brace_block' => '{',
            'default' => T_DEFAULT,
            'extra' => T_WHITESPACE,
            'parenthesis_brace_block' => '(',
            'return' => T_RETURN,
            'square_brace_block' => CT::T_ARRAY_SQUARE_BRACE_OPEN,
            'switch' => T_SWITCH,
            'throw' => T_THROW,
            'use' => T_USE,
            'use_trait' => CT::T_USE_TRAIT,
        ];

        static $tokenKindCallbackMap = [
            T_BREAK => 'fixAfterToken',
            T_CASE => 'fixAfterToken',
            T_CONTINUE => 'fixAfterToken',
            T_DEFAULT => 'fixAfterToken',
            T_RETURN => 'fixAfterToken',
            T_SWITCH => 'fixAfterToken',
            T_THROW => 'fixAfterToken',
            T_USE => 'removeBetweenUse',
            T_WHITESPACE => 'removeMultipleBlankLines',
            CT::T_USE_TRAIT => 'removeBetweenUse',
            CT::T_ARRAY_SQUARE_BRACE_OPEN => 'fixStructureOpenCloseIfMultiLine', // typeless '[' tokens should not be fixed (too rare)
        ];

        static $tokenEqualsMap = [
            '{' => 'fixStructureOpenCloseIfMultiLine', // i.e. not: CT::T_ARRAY_INDEX_CURLY_BRACE_OPEN
            '(' => 'fixStructureOpenCloseIfMultiLine', // i.e. not: CT::T_BRACE_CLASS_INSTANTIATION_OPEN
        ];

        $tokensAssoc = array_flip(array_intersect_key($reprToTokenMap, array_flip($this->configuration['tokens'])));

        $this->tokenKindCallbackMap = array_intersect_key($tokenKindCallbackMap, $tokensAssoc);
        $this->tokenEqualsMap = array_intersect_key($tokenEqualsMap, $tokensAssoc);
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Removes extra blank lines and/or blank lines following configuration.',
            [
                new CodeSample(
                    '<?php

$foo = array("foo");


$bar = "bar";
'
                ),
                new CodeSample(
                    '<?php

switch ($foo) {
    case 41:
        echo "foo";
        break;

    case 42:
        break;
}
',
                    ['tokens' => ['break']]
                ),
                new CodeSample(
                    '<?php

for ($i = 0; $i < 9000; ++$i) {
    if (true) {
        continue;

    }
}
',
                    ['tokens' => ['continue']]
                ),
                new CodeSample(
                    '<?php

for ($i = 0; $i < 9000; ++$i) {

    echo $i;

}
',
                    ['tokens' => ['curly_brace_block']]
                ),
                new CodeSample(
                    '<?php

$foo = array("foo");


$bar = "bar";
',
                    ['tokens' => ['extra']]
                ),
                new CodeSample(
                    '<?php

$foo = array(

    "foo"

);
',
                    ['tokens' => ['parenthesis_brace_block']]
                ),
                new CodeSample(
                    '<?php

function foo($bar)
{
    return $bar;

}
',
                    ['tokens' => ['return']]
                ),
                new CodeSample(
                    '<?php

$foo = [

    "foo"

];
',
                    ['tokens' => ['square_brace_block']]
                ),
                new CodeSample(
                    '<?php

function foo($bar)
{
    throw new \Exception("Hello!");

}
',
                    ['tokens' => ['throw']]
                ),
                new CodeSample(
                    '<?php

namespace Foo;

use Bar\Baz;

use Baz\Bar;

class Bar
{
}
',
                    ['tokens' => ['use']]
                ),
                new CodeSample(
                    '<?php

class Foo
{
    use Bar;

    use Baz;
}
',
                    ['tokens' => ['use_trait']]
                ),
                new CodeSample(
                    '<?php
switch($a) {

    case 1:

    default:

        echo 3;
}
',
                    ['tokens' => ['switch', 'case', 'default']]
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before BlankLineBeforeStatementFixer.
     * Must run after CombineConsecutiveUnsetsFixer, FunctionToConstantFixer, NoEmptyCommentFixer, NoEmptyPhpdocFixer, NoEmptyStatementFixer, NoUnusedImportsFixer, NoUselessElseFixer, NoUselessReturnFixer.
     */
    public function getPriority()
    {
        return -20;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $this->tokens = $tokens;
        $this->tokensAnalyzer = new TokensAnalyzer($this->tokens);
        for ($index = $tokens->getSize() - 1; $index > 0; --$index) {
            $this->fixByToken($tokens[$index], $index);
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        $that = $this;

        return new FixerConfigurationResolverRootless('tokens', [
            (new FixerOptionBuilder('tokens', 'List of tokens to fix.'))
                ->setAllowedTypes(['array'])
                ->setAllowedValues([new AllowedValueSubset(self::$availableTokens)])
                ->setNormalizer(static function (Options $options, $tokens) use ($that) {
                    foreach ($tokens as &$token) {
                        if ('useTrait' === $token) {
                            $message = "Token \"useTrait\" in option \"tokens\" for rule \"{$that->getName()}\" is deprecated and will be removed in 3.0, use \"use_trait\" instead.";

                            if (getenv('PHP_CS_FIXER_FUTURE_MODE')) {
                                throw new InvalidConfigurationException("{$message} This check was performed as `PHP_CS_FIXER_FUTURE_MODE` env var is set.");
                            }

                            @trigger_error($message, E_USER_DEPRECATED);
                            $token = 'use_trait';

                            break;
                        }
                    }

                    return $tokens;
                })
                ->setDefault(['extra'])
                ->getOption(),
        ], $this->getName());
    }

    private function fixByToken(Token $token, $index)
    {
        foreach ($this->tokenKindCallbackMap as $kind => $callback) {
            if (!$token->isGivenKind($kind)) {
                continue;
            }

            $this->{$callback}($index);

            return;
        }

        foreach ($this->tokenEqualsMap as $equals => $callback) {
            if (!$token->equals($equals)) {
                continue;
            }

            $this->{$callback}($index);

            return;
        }
    }

    private function removeBetweenUse($index)
    {
        $next = $this->tokens->getNextTokenOfKind($index, [';', [T_CLOSE_TAG]]);
        if (null === $next || $this->tokens[$next]->isGivenKind(T_CLOSE_TAG)) {
            return;
        }

        $nextUseCandidate = $this->tokens->getNextMeaningfulToken($next);
        if (null === $nextUseCandidate || !$this->tokens[$nextUseCandidate]->isGivenKind($this->tokens[$index]->getId()) || !$this->containsLinebreak($index, $nextUseCandidate)) {
            return;
        }

        return $this->removeEmptyLinesAfterLineWithTokenAt($next);
    }

    private function removeMultipleBlankLines($index)
    {
        $expected = $this->tokens[$index - 1]->isGivenKind(T_OPEN_TAG) && 1 === Preg::match('/\R$/', $this->tokens[$index - 1]->getContent()) ? 1 : 2;

        $parts = Preg::split('/(.*\R)/', $this->tokens[$index]->getContent(), -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
        $count = \count($parts);

        if ($count > $expected) {
            $this->tokens[$index] = new Token([T_WHITESPACE, implode('', \array_slice($parts, 0, $expected)).rtrim($parts[$count - 1], "\r\n")]);
        }
    }

    private function fixAfterToken($index)
    {
        for ($i = $index - 1; $i > 0; --$i) {
            if ($this->tokens[$i]->isGivenKind(T_FUNCTION) && $this->tokensAnalyzer->isLambda($i)) {
                return;
            }

            if ($this->tokens[$i]->isGivenKind(T_CLASS) && $this->tokensAnalyzer->isAnonymousClass($i)) {
                return;
            }

            if ($this->tokens[$i]->isWhitespace() && false !== strpos($this->tokens[$i]->getContent(), "\n")) {
                break;
            }
        }

        $this->removeEmptyLinesAfterLineWithTokenAt($index);
    }

    /**
     * Remove white line(s) after the index of a block type,
     * but only if the block is not on one line.
     *
     * @param int $index body start
     */
    private function fixStructureOpenCloseIfMultiLine($index)
    {
        $blockTypeInfo = Tokens::detectBlockType($this->tokens[$index]);
        $bodyEnd = $this->tokens->findBlockEnd($blockTypeInfo['type'], $index);

        for ($i = $bodyEnd - 1; $i >= $index; --$i) {
            if (false !== strpos($this->tokens[$i]->getContent(), "\n")) {
                $this->removeEmptyLinesAfterLineWithTokenAt($i);
                $this->removeEmptyLinesAfterLineWithTokenAt($index);

                break;
            }
        }
    }

    private function removeEmptyLinesAfterLineWithTokenAt($index)
    {
        // find the line break
        $tokenCount = \count($this->tokens);
        for ($end = $index; $end < $tokenCount; ++$end) {
            if (
                $this->tokens[$end]->equals('}')
                || false !== strpos($this->tokens[$end]->getContent(), "\n")
            ) {
                break;
            }
        }

        if ($end === $tokenCount) {
            return; // not found, early return
        }

        $ending = $this->whitespacesConfig->getLineEnding();

        for ($i = $end; $i < $tokenCount && $this->tokens[$i]->isWhitespace(); ++$i) {
            $content = $this->tokens[$i]->getContent();
            if (substr_count($content, "\n") < 1) {
                continue;
            }

            $pos = strrpos($content, "\n");
            if ($pos + 2 <= \strlen($content)) { // preserve indenting where possible
                $newContent = $ending.substr($content, $pos + 1);
            } else {
                $newContent = $ending;
            }

            $this->tokens[$i] = new Token([T_WHITESPACE, $newContent]);
        }
    }

    /**
     * @param int $startIndex
     * @param int $endIndex
     *
     * @return bool
     */
    private function containsLinebreak($startIndex, $endIndex)
    {
        for ($i = $endIndex; $i > $startIndex; --$i) {
            if (Preg::match('/\R/', $this->tokens[$i]->getContent())) {
                return true;
            }
        }

        return false;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Naming;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Fred Cox <mcfedr@gmail.com>
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class NoHomoglyphNamesFixer extends AbstractFixer
{
    /**
     * Used the program https://github.com/mcfedr/homoglyph-download
     * to generate this list from
     * http://homoglyphs.net/?text=abcdefghijklmnopqrstuvwxyz&lang=en&exc7=1&exc8=1&exc13=1&exc14=1.
     *
     * Symbols replaced include
     * - Latin homoglyphs
     * - IPA extensions
     * - Greek and Coptic
     * - Cyrillic
     * - Cyrillic Supplement
     * - Letterlike Symbols
     * - Latin Numbers
     * - Fullwidth Latin
     *
     * This is not the complete list of unicode homographs, but limited
     * to those you are more likely to have typed/copied by accident
     *
     * @var array
     */
    private static $replacements = [
        'O' => '0',
        '０' => '0',
        'I' => '1',
        '１' => '1',
        '２' => '2',
        '３' => '3',
        '４' => '4',
        '５' => '5',
        '６' => '6',
        '７' => '7',
        '８' => '8',
        '９' => '9',
        'Α' => 'A',
        'А' => 'A',
        'Ａ' => 'A',
        'ʙ' => 'B',
        'Β' => 'B',
        'В' => 'B',
        'Ｂ' => 'B',
        'Ϲ' => 'C',
        'С' => 'C',
        'Ⅽ' => 'C',
        'Ｃ' => 'C',
        'Ⅾ' => 'D',
        'Ｄ' => 'D',
        'Ε' => 'E',
        'Е' => 'E',
        'Ｅ' => 'E',
        'Ϝ' => 'F',
        'Ｆ' => 'F',
        'ɢ' => 'G',
        'Ԍ' => 'G',
        'Ｇ' => 'G',
        'ʜ' => 'H',
        'Η' => 'H',
        'Н' => 'H',
        'Ｈ' => 'H',
        'l' => 'I',
        'Ι' => 'I',
        'І' => 'I',
        'Ⅰ' => 'I',
        'Ｉ' => 'I',
        'Ј' => 'J',
        'Ｊ' => 'J',
        'Κ' => 'K',
        'К' => 'K',
        'K' => 'K',
        'Ｋ' => 'K',
        'ʟ' => 'L',
        'Ⅼ' => 'L',
        'Ｌ' => 'L',
        'Μ' => 'M',
        'М' => 'M',
        'Ⅿ' => 'M',
        'Ｍ' => 'M',
        'ɴ' => 'N',
        'Ν' => 'N',
        'Ｎ' => 'N',
        'Ο' => 'O',
        'О' => 'O',
        'Ｏ' => 'O',
        'Ρ' => 'P',
        'Р' => 'P',
        'Ｐ' => 'P',
        'Ｑ' => 'Q',
        'ʀ' => 'R',
        'Ｒ' => 'R',
        'Ѕ' => 'S',
        'Ｓ' => 'S',
        'Τ' => 'T',
        'Т' => 'T',
        'Ｔ' => 'T',
        'Ｕ' => 'U',
        'Ѵ' => 'V',
        'Ⅴ' => 'V',
        'Ｖ' => 'V',
        'Ｗ' => 'W',
        'Χ' => 'X',
        'Х' => 'X',
        'Ⅹ' => 'X',
        'Ｘ' => 'X',
        'ʏ' => 'Y',
        'Υ' => 'Y',
        'Ү' => 'Y',
        'Ｙ' => 'Y',
        'Ζ' => 'Z',
        'Ｚ' => 'Z',
        '＿' => '_',
        'ɑ' => 'a',
        'а' => 'a',
        'ａ' => 'a',
        'Ь' => 'b',
        'ｂ' => 'b',
        'ϲ' => 'c',
        'с' => 'c',
        'ⅽ' => 'c',
        'ｃ' => 'c',
        'ԁ' => 'd',
        'ⅾ' => 'd',
        'ｄ' => 'd',
        'е' => 'e',
        'ｅ' => 'e',
        'ｆ' => 'f',
        'ɡ' => 'g',
        'ｇ' => 'g',
        'һ' => 'h',
        'ｈ' => 'h',
        'ɩ' => 'i',
        'і' => 'i',
        'ⅰ' => 'i',
        'ｉ' => 'i',
        'ј' => 'j',
        'ｊ' => 'j',
        'ｋ' => 'k',
        'ⅼ' => 'l',
        'ｌ' => 'l',
        'ⅿ' => 'm',
        'ｍ' => 'm',
        'ｎ' => 'n',
        'ο' => 'o',
        'о' => 'o',
        'ｏ' => 'o',
        'р' => 'p',
        'ｐ' => 'p',
        'ｑ' => 'q',
        'ｒ' => 'r',
        'ѕ' => 's',
        'ｓ' => 's',
        'ｔ' => 't',
        'ｕ' => 'u',
        'ν' => 'v',
        'ѵ' => 'v',
        'ⅴ' => 'v',
        'ｖ' => 'v',
        'ѡ' => 'w',
        'ｗ' => 'w',
        'х' => 'x',
        'ⅹ' => 'x',
        'ｘ' => 'x',
        'у' => 'y',
        'ｙ' => 'y',
        'ｚ' => 'z',
    ];

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Replace accidental usage of homoglyphs (non ascii characters) in names.',
            [new CodeSample("<?php \$nаmе = 'wrong \"a\" character';\n")],
            null,
            'Renames classes and cannot rename the files. You might have string references to renamed code (`$$name`).'
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound([T_VARIABLE, T_STRING]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if (!$token->isGivenKind([T_VARIABLE, T_STRING])) {
                continue;
            }

            $replaced = Preg::replaceCallback('/[^[:ascii:]]/u', static function ($matches) {
                return isset(self::$replacements[$matches[0]])
                    ? self::$replacements[$matches[0]]
                    : $matches[0]
                ;
            }, $token->getContent(), -1, $count);

            if ($count) {
                $tokens->offsetSet($index, new Token([$token->getId(), $replaced]));
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Strict;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\FixerDefinition\VersionSpecification;
use PhpCsFixer\FixerDefinition\VersionSpecificCodeSample;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Jordi Boggiano <j.boggiano@seld.be>
 * @author SpacePossum
 */
final class DeclareStrictTypesFixer extends AbstractFixer implements WhitespacesAwareFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Force strict types declaration in all files. Requires PHP >= 7.0.',
            [
                new VersionSpecificCodeSample(
                    "<?php\n",
                    new VersionSpecification(70000)
                ),
            ],
            null,
            'Forcing strict types will stop non strict code from working.'
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before BlankLineAfterOpeningTagFixer, DeclareEqualNormalizeFixer, HeaderCommentFixer.
     */
    public function getPriority()
    {
        return 2;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return \PHP_VERSION_ID >= 70000 && isset($tokens[0]) && $tokens[0]->isGivenKind(T_OPEN_TAG);
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        // check if the declaration is already done
        $searchIndex = $tokens->getNextMeaningfulToken(0);
        if (null === $searchIndex) {
            $this->insertSequence($tokens); // declaration not found, insert one

            return;
        }

        $sequenceLocation = $tokens->findSequence([[T_DECLARE, 'declare'], '(', [T_STRING, 'strict_types'], '=', [T_LNUMBER], ')'], $searchIndex, null, false);
        if (null === $sequenceLocation) {
            $this->insertSequence($tokens); // declaration not found, insert one

            return;
        }

        $this->fixStrictTypesCasingAndValue($tokens, $sequenceLocation);
    }

    /**
     * @param array<int, Token> $sequence
     */
    private function fixStrictTypesCasingAndValue(Tokens $tokens, array $sequence)
    {
        /** @var int $index */
        /** @var Token $token */
        foreach ($sequence as $index => $token) {
            if ($token->isGivenKind(T_STRING)) {
                $tokens[$index] = new Token([T_STRING, strtolower($token->getContent())]);

                continue;
            }
            if ($token->isGivenKind(T_LNUMBER)) {
                $tokens[$index] = new Token([T_LNUMBER, '1']);

                break;
            }
        }
    }

    private function insertSequence(Tokens $tokens)
    {
        $sequence = [
            new Token([T_DECLARE, 'declare']),
            new Token('('),
            new Token([T_STRING, 'strict_types']),
            new Token('='),
            new Token([T_LNUMBER, '1']),
            new Token(')'),
            new Token(';'),
        ];
        $endIndex = \count($sequence);

        $tokens->insertAt(1, $sequence);

        // start index of the sequence is always 1 here, 0 is always open tag
        // transform "<?php\n" to "<?php " if needed
        if (false !== strpos($tokens[0]->getContent(), "\n")) {
            $tokens[0] = new Token([$tokens[0]->getId(), trim($tokens[0]->getContent()).' ']);
        }

        if ($endIndex === \count($tokens) - 1) {
            return; // no more tokens afters sequence, single_blank_line_at_eof might add a line
        }

        $lineEnding = $this->whitespacesConfig->getLineEnding();
        if (!$tokens[1 + $endIndex]->isWhitespace()) {
            $tokens->insertAt(1 + $endIndex, new Token([T_WHITESPACE, $lineEnding]));

            return;
        }

        $content = $tokens[1 + $endIndex]->getContent();
        $tokens[1 + $endIndex] = new Token([T_WHITESPACE, $lineEnding.ltrim($content, " \t")]);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Strict;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class StrictComparisonFixer extends AbstractFixer
{
    public function getDefinition()
    {
        return new FixerDefinition(
            'Comparisons should be strict.',
            [new CodeSample("<?php\n\$a = 1== \$b;\n")],
            null,
            'Changing comparisons to strict might change code behavior.'
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before BinaryOperatorSpacesFixer.
     */
    public function getPriority()
    {
        return 0;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound([T_IS_EQUAL, T_IS_NOT_EQUAL]);
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        static $map = [
            T_IS_EQUAL => [
                'id' => T_IS_IDENTICAL,
                'content' => '===',
            ],
            T_IS_NOT_EQUAL => [
                'id' => T_IS_NOT_IDENTICAL,
                'content' => '!==',
            ],
        ];

        foreach ($tokens as $index => $token) {
            $tokenId = $token->getId();

            if (isset($map[$tokenId])) {
                $tokens[$index] = new Token([$map[$tokenId]['id'], $map[$tokenId]['content']]);
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Strict;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class StrictParamFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Functions should be used with `$strict` param set to `true`.',
            [new CodeSample("<?php\n\$a = array_keys(\$b);\n\$a = array_search(\$b, \$c);\n\$a = base64_decode(\$b);\n\$a = in_array(\$b, \$c);\n\$a = mb_detect_encoding(\$b, \$c);\n")],
            'The functions "array_keys", "array_search", "base64_decode", "in_array" and "mb_detect_encoding" should be used with $strict param.',
            'Risky when the fixed function is overridden or if the code relies on non-strict usage.'
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_STRING);
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     *
     * Must run before NativeFunctionInvocationFixer.
     */
    public function getPriority()
    {
        return 11;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        static $map = null;

        if (null === $map) {
            $trueToken = new Token([T_STRING, 'true']);

            $map = [
                'array_keys' => [null, null, $trueToken],
                'array_search' => [null, null, $trueToken],
                'base64_decode' => [null, $trueToken],
                'in_array' => [null, null, $trueToken],
                'mb_detect_encoding' => [null, [new Token([T_STRING, 'mb_detect_order']), new Token('('), new Token(')')], $trueToken],
            ];
        }

        for ($index = $tokens->count() - 1; 0 <= $index; --$index) {
            $token = $tokens[$index];

            $nextIndex = $tokens->getNextMeaningfulToken($index);
            if (null !== $nextIndex && !$tokens[$nextIndex]->equals('(')) {
                continue;
            }

            $lowercaseContent = strtolower($token->getContent());
            if ($token->isGivenKind(T_STRING) && isset($map[$lowercaseContent])) {
                $this->fixFunction($tokens, $index, $map[$lowercaseContent]);
            }
        }
    }

    private function fixFunction(Tokens $tokens, $functionIndex, array $functionParams)
    {
        $startBraceIndex = $tokens->getNextTokenOfKind($functionIndex, ['(']);
        $endBraceIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $startBraceIndex);
        $paramsQuantity = 0;
        $expectParam = true;

        for ($index = $startBraceIndex + 1; $index < $endBraceIndex; ++$index) {
            $token = $tokens[$index];

            if ($expectParam && !$token->isWhitespace() && !$token->isComment()) {
                ++$paramsQuantity;
                $expectParam = false;
            }

            if ($token->equals('(')) {
                $index = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $index);

                continue;
            }

            if ($token->isGivenKind(CT::T_ARRAY_SQUARE_BRACE_OPEN)) {
                $index = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_ARRAY_SQUARE_BRACE, $index);

                continue;
            }

            if ($token->equals(',')) {
                $expectParam = true;

                continue;
            }
        }

        $functionParamsQuantity = \count($functionParams);

        if ($paramsQuantity === $functionParamsQuantity) {
            return;
        }

        $tokensToInsert = [];
        for ($i = $paramsQuantity; $i < $functionParamsQuantity; ++$i) {
            // function call do not have all params that are required to set useStrict flag, exit from method!
            if (!$functionParams[$i]) {
                return;
            }

            $tokensToInsert[] = new Token(',');
            $tokensToInsert[] = new Token([T_WHITESPACE, ' ']);

            if (!\is_array($functionParams[$i])) {
                $tokensToInsert[] = clone $functionParams[$i];

                continue;
            }

            foreach ($functionParams[$i] as $param) {
                $tokensToInsert[] = clone $param;
            }
        }

        $beforeEndBraceIndex = $tokens->getTokenNotOfKindSibling($endBraceIndex, -1, [[T_WHITESPACE], ',']);
        $tokens->insertAt($beforeEndBraceIndex + 1, $tokensToInsert);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Semicolon;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Graham Campbell <graham@alt-three.com>
 */
final class NoSinglelineWhitespaceBeforeSemicolonsFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Single-line whitespace before closing semicolon are prohibited.',
            [new CodeSample("<?php \$this->foo() ;\n")]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run after CombineConsecutiveIssetsFixer, FunctionToConstantFixer, NoEmptyStatementFixer, SingleImportPerStatementFixer.
     */
    public function getPriority()
    {
        return 0;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(';');
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if (!$token->equals(';') || !$tokens[$index - 1]->isWhitespace(" \t")) {
                continue;
            }

            if ($tokens[$index - 2]->equals(';')) {
                // do not remove all whitespace before the semicolon because it is also whitespace after another semicolon
                if (!$tokens[$index - 1]->equals(' ')) {
                    $tokens[$index - 1] = new Token([T_WHITESPACE, ' ']);
                }
            } elseif (!$tokens[$index - 2]->isComment()) {
                $tokens->clearAt($index - 1);
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Semicolon;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Tokenizer\TokensAnalyzer;

/**
 * @author SpacePossum
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class NoEmptyStatementFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Remove useless semicolon statements.',
            [new CodeSample("<?php \$a = 1;;\n")]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before BracesFixer, CombineConsecutiveUnsetsFixer, MultilineWhitespaceBeforeSemicolonsFixer, NoExtraBlankLinesFixer, NoSinglelineWhitespaceBeforeSemicolonsFixer, NoTrailingWhitespaceFixer, NoUselessElseFixer, NoUselessReturnFixer, NoWhitespaceInBlankLineFixer, ReturnAssignmentFixer, SpaceAfterSemicolonFixer, SwitchCaseSemicolonToColonFixer.
     */
    public function getPriority()
    {
        return 26;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(';');
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        for ($index = 0, $count = $tokens->count(); $index < $count; ++$index) {
            // skip T_FOR parenthesis to ignore duplicated `;` like `for ($i = 1; ; ++$i) {...}`
            if ($tokens[$index]->isGivenKind(T_FOR)) {
                $index = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $tokens->getNextMeaningfulToken($index)) + 1;

                continue;
            }

            if (!$tokens[$index]->equals(';')) {
                continue;
            }

            $previousMeaningfulIndex = $tokens->getPrevMeaningfulToken($index);

            // A semicolon can always be removed if it follows a semicolon, '{' or opening tag.
            if ($tokens[$previousMeaningfulIndex]->equalsAny(['{', ';', [T_OPEN_TAG]])) {
                $tokens->clearTokenAndMergeSurroundingWhitespace($index);

                continue;
            }

            // A semicolon might be removed if it follows a '}' but only if the brace is part of certain structures.
            if ($tokens[$previousMeaningfulIndex]->equals('}')) {
                $this->fixSemicolonAfterCurlyBraceClose($tokens, $index, $previousMeaningfulIndex);
            }
        }
    }

    /**
     * Fix semicolon after closing curly brace if needed.
     *
     * Test for the following cases
     * - just '{' '}' block (following open tag or ';')
     * - if, else, elseif
     * - interface, trait, class (but not anonymous)
     * - catch, finally (but not try)
     * - for, foreach, while (but not 'do - while')
     * - switch
     * - function (declaration, but not lambda)
     * - declare (with '{' '}')
     * - namespace (with '{' '}')
     *
     * @param int $index           Semicolon index
     * @param int $curlyCloseIndex
     */
    private function fixSemicolonAfterCurlyBraceClose(Tokens $tokens, $index, $curlyCloseIndex)
    {
        static $beforeCurlyOpeningKinds = null;
        if (null === $beforeCurlyOpeningKinds) {
            $beforeCurlyOpeningKinds = [T_ELSE, T_FINALLY, T_NAMESPACE, T_OPEN_TAG];
        }

        $curlyOpeningIndex = $tokens->findBlockStart(Tokens::BLOCK_TYPE_CURLY_BRACE, $curlyCloseIndex);
        $beforeCurlyOpening = $tokens->getPrevMeaningfulToken($curlyOpeningIndex);
        if ($tokens[$beforeCurlyOpening]->isGivenKind($beforeCurlyOpeningKinds) || $tokens[$beforeCurlyOpening]->equalsAny([';', '{', '}'])) {
            $tokens->clearTokenAndMergeSurroundingWhitespace($index);

            return;
        }

        // check for namespaces and class, interface and trait definitions
        if ($tokens[$beforeCurlyOpening]->isGivenKind(T_STRING)) {
            $classyTest = $tokens->getPrevMeaningfulToken($beforeCurlyOpening);
            while ($tokens[$classyTest]->equals(',') || $tokens[$classyTest]->isGivenKind([T_STRING, T_NS_SEPARATOR, T_EXTENDS, T_IMPLEMENTS])) {
                $classyTest = $tokens->getPrevMeaningfulToken($classyTest);
            }

            $tokensAnalyzer = new TokensAnalyzer($tokens);

            if (
                $tokens[$classyTest]->isGivenKind(T_NAMESPACE) ||
                ($tokens[$classyTest]->isClassy() && !$tokensAnalyzer->isAnonymousClass($classyTest))
            ) {
                $tokens->clearTokenAndMergeSurroundingWhitespace($index);
            }

            return;
        }

        // early return check, below only control structures with conditions are fixed
        if (!$tokens[$beforeCurlyOpening]->equals(')')) {
            return;
        }

        $openingBrace = $tokens->findBlockStart(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $beforeCurlyOpening);
        $beforeOpeningBrace = $tokens->getPrevMeaningfulToken($openingBrace);

        if ($tokens[$beforeOpeningBrace]->isGivenKind([T_IF, T_ELSEIF, T_FOR, T_FOREACH, T_WHILE, T_SWITCH, T_CATCH, T_DECLARE])) {
            $tokens->clearTokenAndMergeSurroundingWhitespace($index);

            return;
        }

        // check for function definition
        if ($tokens[$beforeOpeningBrace]->isGivenKind(T_STRING)) {
            $beforeString = $tokens->getPrevMeaningfulToken($beforeOpeningBrace);
            if ($tokens[$beforeString]->isGivenKind(T_FUNCTION)) {
                $tokens->clearTokenAndMergeSurroundingWhitespace($index); // implicit return
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Semicolon;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author SpacePossum
 */
final class SpaceAfterSemicolonFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Fix whitespace after a semicolon.',
            [
                new CodeSample(
                    "<?php
                        sample();     \$test = 1;
                        sample();\$test = 2;
                        for ( ;;++\$sample) {
                        }\n"
                ),
                new CodeSample("<?php\nfor (\$i = 0; ; ++\$i) {\n}\n", [
                    'remove_in_empty_for_expressions' => true,
                ]),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run after CombineConsecutiveUnsetsFixer, MultilineWhitespaceBeforeSemicolonsFixer, NoEmptyStatementFixer, OrderedClassElementsFixer, SingleImportPerStatementFixer, SingleTraitInsertPerStatementFixer.
     */
    public function getPriority()
    {
        return -1;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(';');
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('remove_in_empty_for_expressions', 'Whether spaces should be removed for empty `for` expressions.'))
                ->setAllowedTypes(['bool'])
                ->setDefault(false)
                ->getOption(),
        ]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $insideForParenthesesUntil = null;

        for ($index = 0, $max = \count($tokens) - 1; $index < $max; ++$index) {
            if ($this->configuration['remove_in_empty_for_expressions']) {
                if ($tokens[$index]->isGivenKind(T_FOR)) {
                    $index = $tokens->getNextMeaningfulToken($index);
                    $insideForParenthesesUntil = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $index);

                    continue;
                }

                if ($index === $insideForParenthesesUntil) {
                    $insideForParenthesesUntil = null;

                    continue;
                }
            }

            if (!$tokens[$index]->equals(';')) {
                continue;
            }

            if (!$tokens[$index + 1]->isWhitespace()) {
                if (
                    !$tokens[$index + 1]->equalsAny([')', [T_INLINE_HTML]]) && (
                        !$this->configuration['remove_in_empty_for_expressions']
                        || !$tokens[$index + 1]->equals(';')
                    )
                ) {
                    $tokens->insertAt($index + 1, new Token([T_WHITESPACE, ' ']));
                    ++$max;
                }

                continue;
            }

            if (
                null !== $insideForParenthesesUntil
                && ($tokens[$index + 2]->equals(';') || $index + 2 === $insideForParenthesesUntil)
                && !Preg::match('/\R/', $tokens[$index + 1]->getContent())
            ) {
                $tokens->clearAt($index + 1);

                continue;
            }

            if (
                isset($tokens[$index + 2])
                && !$tokens[$index + 1]->equals([T_WHITESPACE, ' '])
                && $tokens[$index + 1]->isWhitespace(" \t")
                && !$tokens[$index + 2]->isComment()
                && !$tokens[$index + 2]->equals(')')
            ) {
                $tokens[$index + 1] = new Token([T_WHITESPACE, ' ']);
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Semicolon;

use PhpCsFixer\AbstractProxyFixer;
use PhpCsFixer\Fixer\DeprecatedFixerInterface;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;

/**
 * @deprecated since 2.9.1, replaced by MultilineWhitespaceBeforeSemicolonsFixer
 *
 * @todo To be removed at 3.0
 *
 * @author Graham Campbell <graham@alt-three.com>
 */
final class NoMultilineWhitespaceBeforeSemicolonsFixer extends AbstractProxyFixer implements DeprecatedFixerInterface, WhitespacesAwareFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Multi-line whitespace before closing semicolon are prohibited.',
            [
                new CodeSample(
                    '<?php
function foo () {
    return 1 + 2
        ;
}
'
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function getSuccessorsNames()
    {
        return array_keys($this->proxyFixers);
    }

    /**
     * {@inheritdoc}
     */
    protected function createProxyFixers()
    {
        $fixer = new MultilineWhitespaceBeforeSemicolonsFixer();
        $fixer->configure(['strategy' => MultilineWhitespaceBeforeSemicolonsFixer::STRATEGY_NO_MULTI_LINE]);

        return [$fixer];
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Semicolon;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Graham Campbell <graham@alt-three.com>
 * @author Egidijus Girčys <e.gircys@gmail.com>
 */
final class MultilineWhitespaceBeforeSemicolonsFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface, WhitespacesAwareFixerInterface
{
    /**
     * @internal
     */
    const STRATEGY_NO_MULTI_LINE = 'no_multi_line';

    /**
     * @internal
     */
    const STRATEGY_NEW_LINE_FOR_CHAINED_CALLS = 'new_line_for_chained_calls';

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Forbid multi-line whitespace before the closing semicolon or move the semicolon to the new line for chained calls.',
            [
                new CodeSample(
                    '<?php
function foo () {
    return 1 + 2
        ;
}
'
                ),
                new CodeSample(
                    '<?php
                        $this->method1()
                            ->method2()
                            ->method(3);
                    ?>
',
                    ['strategy' => self::STRATEGY_NEW_LINE_FOR_CHAINED_CALLS]
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before SpaceAfterSemicolonFixer.
     * Must run after CombineConsecutiveIssetsFixer, NoEmptyStatementFixer, SingleImportPerStatementFixer.
     */
    public function getPriority()
    {
        return 0;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(';');
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder(
                'strategy',
                'Forbid multi-line whitespace or move the semicolon to the new line for chained calls.'
            ))
                ->setAllowedValues([self::STRATEGY_NO_MULTI_LINE, self::STRATEGY_NEW_LINE_FOR_CHAINED_CALLS])
                ->setDefault(self::STRATEGY_NO_MULTI_LINE)
                ->getOption(),
        ]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        if (self::STRATEGY_NEW_LINE_FOR_CHAINED_CALLS === $this->configuration['strategy']) {
            $this->applyChainedCallsFix($tokens);

            return;
        }

        if (self::STRATEGY_NO_MULTI_LINE === $this->configuration['strategy']) {
            $this->applyNoMultiLineFix($tokens);
        }
    }

    private function applyNoMultiLineFix(Tokens $tokens)
    {
        $lineEnding = $this->whitespacesConfig->getLineEnding();

        foreach ($tokens as $index => $token) {
            if (!$token->equals(';')) {
                continue;
            }

            $previousIndex = $index - 1;
            $previous = $tokens[$previousIndex];
            if (!$previous->isWhitespace() || false === strpos($previous->getContent(), "\n")) {
                continue;
            }

            $content = $previous->getContent();
            if (0 === strpos($content, $lineEnding) && $tokens[$index - 2]->isComment()) {
                $tokens->ensureWhitespaceAtIndex($previousIndex, 0, $lineEnding);
            } else {
                $tokens->clearAt($previousIndex);
            }
        }
    }

    private function applyChainedCallsFix(Tokens $tokens)
    {
        for ($index = \count($tokens) - 1; $index >= 0; --$index) {
            // continue if token is not a semicolon
            if (!$tokens[$index]->equals(';')) {
                continue;
            }

            // get the indent of the chained call, null in case it's not a chained call
            $indent = $this->findWhitespaceBeforeFirstCall($index - 1, $tokens);

            if (null === $indent) {
                continue;
            }

            // unset semicolon
            $tokens->clearAt($index);

            // find the line ending token index after the semicolon
            $index = $this->getNewLineIndex($index, $tokens);

            // line ending string of the last method call
            $lineEnding = $this->whitespacesConfig->getLineEnding();

            // appended new line to the last method call
            $newline = new Token([T_WHITESPACE, $lineEnding.$indent]);

            // insert the new line with indented semicolon
            $tokens->insertAt($index, [$newline, new Token(';')]);
        }
    }

    /**
     * Find the index for the new line. Return the given index when there's no new line.
     *
     * @param int $index
     *
     * @return int
     */
    private function getNewLineIndex($index, Tokens $tokens)
    {
        $lineEnding = $this->whitespacesConfig->getLineEnding();

        for ($index, $count = \count($tokens); $index < $count; ++$index) {
            if (false !== strstr($tokens[$index]->getContent(), $lineEnding)) {
                return $index;
            }
        }

        return $index;
    }

    /**
     * Checks if the semicolon closes a chained call and returns the whitespace of the first call at $index.
     * i.e. it will return the whitespace marked with '____' in the example underneath.
     *
     * ..
     * ____$this->methodCall()
     *          ->anotherCall();
     * ..
     *
     * @param int $index
     *
     * @return null|string
     */
    private function findWhitespaceBeforeFirstCall($index, Tokens $tokens)
    {
        // semicolon followed by a closing bracket?
        if (!$tokens[$index]->equals(')')) {
            return null;
        }

        // find opening bracket
        $openingBrackets = 1;
        for (--$index; $index > 0; --$index) {
            if ($tokens[$index]->equals(')')) {
                ++$openingBrackets;

                continue;
            }

            if ($tokens[$index]->equals('(')) {
                if (1 === $openingBrackets) {
                    break;
                }
                --$openingBrackets;
            }
        }

        // method name
        if (!$tokens[--$index]->isGivenKind(T_STRING)) {
            return null;
        }

        // -> or ::
        if (!$tokens[--$index]->isGivenKind([T_OBJECT_OPERATOR, T_DOUBLE_COLON])) {
            return null;
        }

        // white space
        if (!$tokens[--$index]->isGivenKind(T_WHITESPACE)) {
            return null;
        }

        $closingBrackets = 0;
        for ($index; $index >= 0; --$index) {
            if ($tokens[$index]->equals(')')) {
                ++$closingBrackets;
            }

            if ($tokens[$index]->equals('(')) {
                --$closingBrackets;
            }

            // must be the variable of the first call in the chain
            if ($tokens[$index]->isGivenKind([T_VARIABLE, T_RETURN, T_STRING]) && 0 === $closingBrackets) {
                if ($tokens[--$index]->isGivenKind(T_WHITESPACE)
                    || $tokens[$index]->isGivenKind(T_OPEN_TAG)) {
                    return $this->getIndentAt($tokens, $index);
                }
            }
        }

        return null;
    }

    /**
     * @param int $index
     *
     * @return null|string
     */
    private function getIndentAt(Tokens $tokens, $index)
    {
        $content = '';
        $lineEnding = $this->whitespacesConfig->getLineEnding();

        // find line ending token
        for ($index; $index > 0; --$index) {
            if (false !== strstr($tokens[$index]->getContent(), $lineEnding)) {
                break;
            }
        }

        if ($tokens[$index]->isWhitespace()) {
            $content = $tokens[$index]->getContent();
            --$index;
        }

        if ($tokens[$index]->isGivenKind(T_OPEN_TAG)) {
            $content = $tokens[$index]->getContent().$content;
        }

        if (1 === Preg::match('/\R{1}(\h*)$/', $content, $matches)) {
            return $matches[1];
        }

        return null;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Semicolon;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author SpacePossum
 */
final class SemicolonAfterInstructionFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Instructions must be terminated with a semicolon.',
            [new CodeSample("<?php echo 1 ?>\n")]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_CLOSE_TAG);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        for ($index = \count($tokens) - 1; $index > 1; --$index) {
            if (!$tokens[$index]->isGivenKind(T_CLOSE_TAG)) {
                continue;
            }

            $prev = $tokens->getPrevMeaningfulToken($index);
            if ($tokens[$prev]->equalsAny([';', '{', '}', ':', [T_OPEN_TAG]])) {
                continue;
            }

            $tokens->insertAt($prev + 1, new Token(';'));
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Import;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\FixerDefinition\VersionSpecification;
use PhpCsFixer\FixerDefinition\VersionSpecificCodeSample;
use PhpCsFixer\Tokenizer\Analyzer\Analysis\TypeAnalysis;
use PhpCsFixer\Tokenizer\Analyzer\FunctionsAnalyzer;
use PhpCsFixer\Tokenizer\Analyzer\NamespacesAnalyzer;
use PhpCsFixer\Tokenizer\Analyzer\NamespaceUsesAnalyzer;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Generator\NamespacedStringTokenGenerator;
use PhpCsFixer\Tokenizer\Resolver\TypeShortNameResolver;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author VeeWee <toonverwerft@gmail.com>
 */
final class FullyQualifiedStrictTypesFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Transforms imported FQCN parameters and return types in function arguments to short version.',
            [
                new CodeSample(
                    '<?php

use Foo\Bar;

class SomeClass
{
    public function doSomething(\Foo\Bar $foo)
    {
    }
}
'
                ),
                new VersionSpecificCodeSample(
                    '<?php

use Foo\Bar;
use Foo\Bar\Baz;

class SomeClass
{
    public function doSomething(\Foo\Bar $foo): \Foo\Bar\Baz
    {
    }
}
',
                    new VersionSpecification(70000)
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before NoSuperfluousPhpdocTagsFixer.
     * Must run after PhpdocToReturnTypeFixer.
     */
    public function getPriority()
    {
        return 7;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_FUNCTION) && (
            \count((new NamespacesAnalyzer())->getDeclarations($tokens)) ||
            \count((new NamespaceUsesAnalyzer())->getDeclarationsFromTokens($tokens))
        );
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $lastIndex = $tokens->count() - 1;
        for ($index = $lastIndex; $index >= 0; --$index) {
            if (!$tokens[$index]->isGivenKind(T_FUNCTION)) {
                continue;
            }

            // Return types are only available since PHP 7.0
            $this->fixFunctionReturnType($tokens, $index);
            $this->fixFunctionArguments($tokens, $index);
        }
    }

    /**
     * @param int $index
     */
    private function fixFunctionArguments(Tokens $tokens, $index)
    {
        $arguments = (new FunctionsAnalyzer())->getFunctionArguments($tokens, $index);

        foreach ($arguments as $argument) {
            if (!$argument->hasTypeAnalysis()) {
                continue;
            }

            $this->detectAndReplaceTypeWithShortType($tokens, $argument->getTypeAnalysis());
        }
    }

    /**
     * @param int $index
     */
    private function fixFunctionReturnType(Tokens $tokens, $index)
    {
        if (\PHP_VERSION_ID < 70000) {
            return;
        }

        $returnType = (new FunctionsAnalyzer())->getFunctionReturnType($tokens, $index);
        if (!$returnType) {
            return;
        }

        $this->detectAndReplaceTypeWithShortType($tokens, $returnType);
    }

    private function detectAndReplaceTypeWithShortType(
        Tokens $tokens,
        TypeAnalysis $type
    ) {
        if ($type->isReservedType()) {
            return;
        }

        $typeName = $type->getName();

        if (0 !== strpos($typeName, '\\')) {
            return;
        }

        $shortType = (new TypeShortNameResolver())->resolve($tokens, $typeName);
        if ($shortType === $typeName) {
            return;
        }

        $shortType = (new NamespacedStringTokenGenerator())->generate($shortType);

        if (true === $type->isNullable()) {
            array_unshift($shortType, new Token([CT::T_NULLABLE_TYPE, '?']));
        }

        $tokens->overrideRange(
            $type->getStartIndex(),
            $type->getEndIndex(),
            $shortType
        );
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Import;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Analyzer\Analysis\NamespaceAnalysis;
use PhpCsFixer\Tokenizer\Analyzer\Analysis\NamespaceUseAnalysis;
use PhpCsFixer\Tokenizer\Analyzer\NamespacesAnalyzer;
use PhpCsFixer\Tokenizer\Analyzer\NamespaceUsesAnalyzer;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class NoUnusedImportsFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Unused `use` statements must be removed.',
            [new CodeSample("<?php\nuse \\DateTime;\nuse \\Exception;\n\nnew DateTime();\n")]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before BlankLineAfterNamespaceFixer, NoExtraBlankLinesFixer, NoLeadingImportSlashFixer, SingleLineAfterImportsFixer.
     * Must run after ClassKeywordRemoveFixer, GlobalNamespaceImportFixer, PhpUnitFqcnAnnotationFixer, SingleImportPerStatementFixer.
     */
    public function getPriority()
    {
        return -10;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_USE);
    }

    /**
     * {@inheritdoc}
     */
    public function supports(\SplFileInfo $file)
    {
        $path = $file->getPathname();

        /*
         * @deprecated this exception will be removed on 3.0
         * some fixtures are auto-generated by Symfony and may contain unused use statements
         */
        if (false !== strpos($path, \DIRECTORY_SEPARATOR.'Fixtures'.\DIRECTORY_SEPARATOR)
            && false === strpos($path, \DIRECTORY_SEPARATOR.'tests'.\DIRECTORY_SEPARATOR.'Fixtures'.\DIRECTORY_SEPARATOR)
        ) {
            return false;
        }

        return true;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $useDeclarations = (new NamespaceUsesAnalyzer())->getDeclarationsFromTokens($tokens);

        if (0 === \count($useDeclarations)) {
            return;
        }

        foreach ((new NamespacesAnalyzer())->getDeclarations($tokens) as $namespace) {
            $currentNamespaceUseDeclarations = array_filter(
                $useDeclarations,
                static function (NamespaceUseAnalysis $useDeclaration) use ($namespace) {
                    return
                        $useDeclaration->getStartIndex() >= $namespace->getScopeStartIndex()
                        && $useDeclaration->getEndIndex() <= $namespace->getScopeEndIndex()
                    ;
                }
            );

            $usagesSearchIgnoredIndexes = [];

            foreach ($currentNamespaceUseDeclarations as $useDeclaration) {
                $usagesSearchIgnoredIndexes[$useDeclaration->getStartIndex()] = $useDeclaration->getEndIndex();
            }

            foreach ($currentNamespaceUseDeclarations as $useDeclaration) {
                if (!$this->isImportUsed($tokens, $namespace, $usagesSearchIgnoredIndexes, $useDeclaration->getShortName())) {
                    $this->removeUseDeclaration($tokens, $useDeclaration);
                }
            }

            $this->removeUsesInSameNamespace($tokens, $currentNamespaceUseDeclarations, $namespace);
        }
    }

    /**
     * @param array<int, int> $ignoredIndexes
     * @param string          $shortName
     *
     * @return bool
     */
    private function isImportUsed(Tokens $tokens, NamespaceAnalysis $namespace, array $ignoredIndexes, $shortName)
    {
        $namespaceEndIndex = $namespace->getScopeEndIndex();
        for ($index = $namespace->getScopeStartIndex(); $index <= $namespaceEndIndex; ++$index) {
            if (isset($ignoredIndexes[$index])) {
                $index = $ignoredIndexes[$index];

                continue;
            }

            $token = $tokens[$index];

            if ($token->isGivenKind(T_STRING)) {
                $prevMeaningfulToken = $tokens[$tokens->getPrevMeaningfulToken($index)];

                if ($prevMeaningfulToken->isGivenKind(T_NAMESPACE)) {
                    $index = $tokens->getNextTokenOfKind($index, [';', '{', [T_CLOSE_TAG]]);

                    continue;
                }

                if (
                    0 === strcasecmp($shortName, $token->getContent())
                    && !$prevMeaningfulToken->isGivenKind([T_NS_SEPARATOR, T_CONST, T_OBJECT_OPERATOR, T_DOUBLE_COLON])
                ) {
                    return true;
                }

                continue;
            }

            if ($token->isComment()
                && Preg::match(
                    '/(?<![[:alnum:]\$])(?<!\\\\)'.$shortName.'(?![[:alnum:]])/i',
                    $token->getContent()
                )
            ) {
                return true;
            }
        }

        return false;
    }

    private function removeUseDeclaration(Tokens $tokens, NamespaceUseAnalysis $useDeclaration)
    {
        for ($index = $useDeclaration->getEndIndex() - 1; $index >= $useDeclaration->getStartIndex(); --$index) {
            if ($tokens[$index]->isComment()) {
                continue;
            }

            if (!$tokens[$index]->isWhitespace() || false === strpos($tokens[$index]->getContent(), "\n")) {
                $tokens->clearTokenAndMergeSurroundingWhitespace($index);

                continue;
            }

            // when multi line white space keep the line feed if the previous token is a comment
            $prevIndex = $tokens->getPrevNonWhitespace($index);
            if ($tokens[$prevIndex]->isComment()) {
                $content = $tokens[$index]->getContent();
                $tokens[$index] = new Token([T_WHITESPACE, substr($content, strrpos($content, "\n"))]); // preserve indent only
            } else {
                $tokens->clearTokenAndMergeSurroundingWhitespace($index);
            }
        }

        if ($tokens[$useDeclaration->getEndIndex()]->equals(';')) { // do not remove `? >`
            $tokens->clearAt($useDeclaration->getEndIndex());
        }

        // remove white space above and below where the `use` statement was

        $prevIndex = $useDeclaration->getStartIndex() - 1;
        $prevToken = $tokens[$prevIndex];

        if ($prevToken->isWhitespace()) {
            $content = rtrim($prevToken->getContent(), " \t");

            if ('' === $content) {
                $tokens->clearAt($prevIndex);
            } else {
                $tokens[$prevIndex] = new Token([T_WHITESPACE, $content]);
            }

            $prevToken = $tokens[$prevIndex];
        }

        if (!isset($tokens[$useDeclaration->getEndIndex() + 1])) {
            return;
        }

        $nextIndex = $tokens->getNonEmptySibling($useDeclaration->getEndIndex(), 1);
        if (null === $nextIndex) {
            return;
        }

        $nextToken = $tokens[$nextIndex];

        if ($nextToken->isWhitespace()) {
            $content = Preg::replace(
                "#^\r\n|^\n#",
                '',
                ltrim($nextToken->getContent(), " \t"),
                1
            );

            if ('' !== $content) {
                $tokens[$nextIndex] = new Token([T_WHITESPACE, $content]);
            } else {
                $tokens->clearAt($nextIndex);
            }

            $nextToken = $tokens[$nextIndex];
        }

        if ($prevToken->isWhitespace() && $nextToken->isWhitespace()) {
            $content = $prevToken->getContent().$nextToken->getContent();

            if ('' !== $content) {
                $tokens[$nextIndex] = new Token([T_WHITESPACE, $content]);
            } else {
                $tokens->clearAt($nextIndex);
            }

            $tokens->clearAt($prevIndex);
        }
    }

    private function removeUsesInSameNamespace(Tokens $tokens, array $useDeclarations, NamespaceAnalysis $namespaceDeclaration)
    {
        $namespace = $namespaceDeclaration->getFullName();
        $nsLength = \strlen($namespace.'\\');

        foreach ($useDeclarations as $useDeclaration) {
            if ($useDeclaration->isAliased()) {
                continue;
            }

            $useDeclarationFullName = ltrim($useDeclaration->getFullName(), '\\');

            if (0 !== strpos($useDeclarationFullName, $namespace.'\\')) {
                continue;
            }

            $partName = substr($useDeclarationFullName, $nsLength);

            if (false === strpos($partName, '\\')) {
                $this->removeUseDeclaration($tokens, $useDeclaration);
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Import;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\DocBlock\Annotation;
use PhpCsFixer\DocBlock\DocBlock;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Analyzer\Analysis\NamespaceUseAnalysis;
use PhpCsFixer\Tokenizer\Analyzer\ClassyAnalyzer;
use PhpCsFixer\Tokenizer\Analyzer\FunctionsAnalyzer;
use PhpCsFixer\Tokenizer\Analyzer\NamespacesAnalyzer;
use PhpCsFixer\Tokenizer\Analyzer\NamespaceUsesAnalyzer;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Tokenizer\TokensAnalyzer;

/**
 * @author Gregor Harlan <gharlan@web.de>
 */
final class GlobalNamespaceImportFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface, WhitespacesAwareFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Imports or fully qualifies global classes/functions/constants.',
            [
                new CodeSample(
                    '<?php

namespace Foo;

$d = new \DateTimeImmutable();
'
                ),
                new CodeSample(
                    '<?php

namespace Foo;

if (\count($x)) {
    /** @var \DateTimeImmutable $d */
    $d = new \DateTimeImmutable();
    $p = \M_PI;
}
',
                    ['import_classes' => true, 'import_constants' => true, 'import_functions' => true]
                ),
                new CodeSample(
                    '<?php

namespace Foo;

use DateTimeImmutable;
use function count;
use const M_PI;

if (count($x)) {
    /** @var DateTimeImmutable $d */
    $d = new DateTimeImmutable();
    $p = M_PI;
}
',
                    ['import_classes' => false, 'import_constants' => false, 'import_functions' => false]
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before NoUnusedImportsFixer, OrderedImportsFixer.
     * Must run after NativeConstantInvocationFixer, NativeFunctionInvocationFixer.
     */
    public function getPriority()
    {
        return 0;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound([T_DOC_COMMENT, T_NS_SEPARATOR, T_USE])
            && $tokens->isTokenKindFound(T_NAMESPACE)
            && (Tokens::isLegacyMode() || 1 === $tokens->countTokenKind(T_NAMESPACE))
            && $tokens->isMonolithicPhp();
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $namespaceAnalyses = (new NamespacesAnalyzer())->getDeclarations($tokens);

        if (1 !== \count($namespaceAnalyses) || '' === $namespaceAnalyses[0]->getFullName()) {
            return;
        }

        $useDeclarations = (new NamespaceUsesAnalyzer())->getDeclarationsFromTokens($tokens);

        $newImports = [];

        if (true === $this->configuration['import_constants']) {
            $newImports['const'] = $this->importConstants($tokens, $useDeclarations);
        } elseif (false === $this->configuration['import_constants']) {
            $this->fullyQualifyConstants($tokens, $useDeclarations);
        }

        if (true === $this->configuration['import_functions']) {
            $newImports['function'] = $this->importFunctions($tokens, $useDeclarations);
        } elseif (false === $this->configuration['import_functions']) {
            $this->fullyQualifyFunctions($tokens, $useDeclarations);
        }

        if (true === $this->configuration['import_classes']) {
            $newImports['class'] = $this->importClasses($tokens, $useDeclarations);
        } elseif (false === $this->configuration['import_classes']) {
            $this->fullyQualifyClasses($tokens, $useDeclarations);
        }

        $newImports = array_filter($newImports);

        if ($newImports) {
            $this->insertImports($tokens, $newImports, $useDeclarations);
        }
    }

    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('import_constants', 'Whether to import, not import or ignore global constants.'))
                ->setDefault(null)
                ->setAllowedValues([true, false, null])
                ->getOption(),
            (new FixerOptionBuilder('import_functions', 'Whether to import, not import or ignore global functions.'))
                ->setDefault(null)
                ->setAllowedValues([true, false, null])
                ->getOption(),
            (new FixerOptionBuilder('import_classes', 'Whether to import, not import or ignore global classes.'))
                ->setDefault(true)
                ->setAllowedValues([true, false, null])
                ->getOption(),
        ]);
    }

    /**
     * @param NamespaceUseAnalysis[] $useDeclarations
     *
     * @return array
     */
    private function importConstants(Tokens $tokens, array $useDeclarations)
    {
        list($global, $other) = $this->filterUseDeclarations($useDeclarations, static function (NamespaceUseAnalysis $declaration) {
            return $declaration->isConstant();
        }, true);

        // find namespaced const declarations (`const FOO = 1`)
        // and add them to the not importable names (already used)
        for ($index = 0, $count = $tokens->count(); $index < $count; ++$index) {
            $token = $tokens[$index];

            if ($token->isClassy()) {
                $index = $tokens->getNextTokenOfKind($index, ['{']);
                $index = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $index);

                continue;
            }

            if (!$token->isGivenKind(T_CONST)) {
                continue;
            }

            $index = $tokens->getNextMeaningfulToken($index);
            $other[$tokens[$index]->getContent()] = true;
        }

        $analyzer = new TokensAnalyzer($tokens);

        $indexes = [];

        for ($index = $tokens->count() - 1; $index >= 0; --$index) {
            $token = $tokens[$index];

            if (!$token->isGivenKind(T_STRING)) {
                continue;
            }

            $name = $token->getContent();

            if (isset($other[$name])) {
                continue;
            }

            if (!$analyzer->isConstantInvocation($index)) {
                continue;
            }

            $nsSeparatorIndex = $tokens->getPrevMeaningfulToken($index);
            if (!$tokens[$nsSeparatorIndex]->isGivenKind(T_NS_SEPARATOR)) {
                if (!isset($global[$name])) {
                    // found an unqualified constant invocation
                    // add it to the not importable names (already used)
                    $other[$name] = true;
                }

                continue;
            }

            $prevIndex = $tokens->getPrevMeaningfulToken($nsSeparatorIndex);
            if ($tokens[$prevIndex]->isGivenKind([CT::T_NAMESPACE_OPERATOR, T_STRING])) {
                continue;
            }

            $indexes[] = $index;
        }

        return $this->prepareImports($tokens, $indexes, $global, $other, true);
    }

    /**
     * @param NamespaceUseAnalysis[] $useDeclarations
     *
     * @return array
     */
    private function importFunctions(Tokens $tokens, array $useDeclarations)
    {
        list($global, $other) = $this->filterUseDeclarations($useDeclarations, static function (NamespaceUseAnalysis $declaration) {
            return $declaration->isFunction();
        }, false);

        // find function declarations
        // and add them to the not importable names (already used)
        foreach ($this->findFunctionDeclarations($tokens, 0, $tokens->count() - 1) as $name) {
            $other[strtolower($name)] = true;
        }

        $analyzer = new FunctionsAnalyzer();

        $indexes = [];

        for ($index = $tokens->count() - 1; $index >= 0; --$index) {
            $token = $tokens[$index];

            if (!$token->isGivenKind(T_STRING)) {
                continue;
            }

            $name = strtolower($token->getContent());

            if (isset($other[$name])) {
                continue;
            }

            if (!$analyzer->isGlobalFunctionCall($tokens, $index)) {
                continue;
            }

            $nsSeparatorIndex = $tokens->getPrevMeaningfulToken($index);
            if (!$tokens[$nsSeparatorIndex]->isGivenKind(T_NS_SEPARATOR)) {
                if (!isset($global[$name])) {
                    $other[$name] = true;
                }

                continue;
            }

            $indexes[] = $index;
        }

        return $this->prepareImports($tokens, $indexes, $global, $other, false);
    }

    /**
     * @param NamespaceUseAnalysis[] $useDeclarations
     *
     * @return array
     */
    private function importClasses(Tokens $tokens, array $useDeclarations)
    {
        list($global, $other) = $this->filterUseDeclarations($useDeclarations, static function (NamespaceUseAnalysis $declaration) {
            return $declaration->isClass();
        }, false);

        /** @var DocBlock[] $docBlocks */
        $docBlocks = [];

        // find class declarations and class usages in docblocks
        // and add them to the not importable names (already used)
        for ($index = 0, $count = $tokens->count(); $index < $count; ++$index) {
            $token = $tokens[$index];

            if ($token->isGivenKind(T_DOC_COMMENT)) {
                $docBlocks[$index] = new DocBlock($token->getContent());

                $this->traverseDocBlockTypes($docBlocks[$index], static function ($type) use ($global, &$other) {
                    if (false !== strpos($type, '\\')) {
                        return;
                    }

                    $name = strtolower($type);

                    if (!isset($global[$name])) {
                        $other[$name] = true;
                    }
                });
            }

            if (!$token->isClassy()) {
                continue;
            }

            $index = $tokens->getNextMeaningfulToken($index);

            if ($tokens[$index]->isGivenKind(T_STRING)) {
                $other[strtolower($tokens[$index]->getContent())] = true;
            }
        }

        $analyzer = new ClassyAnalyzer();

        $indexes = [];

        for ($index = $tokens->count() - 1; $index >= 0; --$index) {
            $token = $tokens[$index];

            if (!$token->isGivenKind(T_STRING)) {
                continue;
            }

            $name = strtolower($token->getContent());

            if (isset($other[$name])) {
                continue;
            }

            if (!$analyzer->isClassyInvocation($tokens, $index)) {
                continue;
            }

            $nsSeparatorIndex = $tokens->getPrevMeaningfulToken($index);
            if (!$tokens[$nsSeparatorIndex]->isGivenKind(T_NS_SEPARATOR)) {
                if (!isset($global[$name])) {
                    $other[$name] = true;
                }

                continue;
            }

            if ($tokens[$tokens->getPrevMeaningfulToken($nsSeparatorIndex)]->isGivenKind([CT::T_NAMESPACE_OPERATOR, T_STRING])) {
                continue;
            }

            $indexes[] = $index;
        }

        $imports = [];

        foreach ($docBlocks as $index => $docBlock) {
            $changed = $this->traverseDocBlockTypes($docBlock, static function ($type) use ($global, $other, &$imports) {
                if ('\\' !== $type[0]) {
                    return $type;
                }

                $name = substr($type, 1);
                $checkName = strtolower($name);

                if (false !== strpos($checkName, '\\') || isset($other[$checkName])) {
                    return $type;
                }

                if (isset($global[$checkName])) {
                    return \is_string($global[$checkName]) ? $global[$checkName] : $name;
                }

                $imports[$checkName] = $name;

                return $name;
            });

            if ($changed) {
                $tokens[$index] = new Token([T_DOC_COMMENT, $docBlock->getContent()]);
            }
        }

        return $imports + $this->prepareImports($tokens, $indexes, $global, $other, false);
    }

    /**
     * Removes the leading slash at the given indexes (when the name is not already used).
     *
     * @param int[] $indexes
     * @param bool  $caseSensitive
     *
     * @return array array keys contain the names that must be imported
     */
    private function prepareImports(Tokens $tokens, array $indexes, array $global, array $other, $caseSensitive)
    {
        $imports = [];

        foreach ($indexes as $index) {
            $name = $tokens[$index]->getContent();
            $checkName = $caseSensitive ? $name : strtolower($name);

            if (isset($other[$checkName])) {
                continue;
            }

            if (!isset($global[$checkName])) {
                $imports[$checkName] = $name;
            } elseif (\is_string($global[$checkName])) {
                $tokens[$index] = new Token([T_STRING, $global[$checkName]]);
            }

            $tokens->clearAt($tokens->getPrevMeaningfulToken($index));
        }

        return $imports;
    }

    /**
     * @param NamespaceUseAnalysis[] $useDeclarations
     */
    private function insertImports(Tokens $tokens, array $imports, array $useDeclarations)
    {
        if ($useDeclarations) {
            $useDeclaration = end($useDeclarations);
            $index = $useDeclaration->getEndIndex() + 1;
        } else {
            $namespace = (new NamespacesAnalyzer())->getDeclarations($tokens)[0];
            $index = $namespace->getEndIndex() + 1;
        }

        $lineEnding = $this->whitespacesConfig->getLineEnding();

        if (!$tokens[$index]->isWhitespace() || false === strpos($tokens[$index]->getContent(), "\n")) {
            $tokens->insertAt($index, new Token([T_WHITESPACE, $lineEnding]));
        }

        foreach ($imports as $type => $typeImports) {
            foreach ($typeImports as $name) {
                $items = [
                    new Token([T_WHITESPACE, $lineEnding]),
                    new Token([T_USE, 'use']),
                    new Token([T_WHITESPACE, ' ']),
                ];

                if ('const' === $type) {
                    $items[] = new Token([CT::T_CONST_IMPORT, 'const']);
                    $items[] = new Token([T_WHITESPACE, ' ']);
                } elseif ('function' === $type) {
                    $items[] = new Token([CT::T_FUNCTION_IMPORT, 'function']);
                    $items[] = new Token([T_WHITESPACE, ' ']);
                }

                $items[] = new Token([T_STRING, $name]);
                $items[] = new Token(';');

                $tokens->insertAt($index, $items);
            }
        }
    }

    /**
     * @param NamespaceUseAnalysis[] $useDeclarations
     */
    private function fullyQualifyConstants(Tokens $tokens, array $useDeclarations)
    {
        if (!$tokens->isTokenKindFound(CT::T_CONST_IMPORT)) {
            return;
        }

        list($global) = $this->filterUseDeclarations($useDeclarations, static function (NamespaceUseAnalysis $declaration) {
            return $declaration->isConstant() && !$declaration->isAliased();
        }, true);

        if (!$global) {
            return;
        }

        $analyzer = new TokensAnalyzer($tokens);

        for ($index = $tokens->count() - 1; $index >= 0; --$index) {
            $token = $tokens[$index];

            if (!$token->isGivenKind(T_STRING)) {
                continue;
            }

            if (!isset($global[$token->getContent()])) {
                continue;
            }

            if ($tokens[$tokens->getPrevMeaningfulToken($index)]->isGivenKind(T_NS_SEPARATOR)) {
                continue;
            }

            if (!$analyzer->isConstantInvocation($index)) {
                continue;
            }

            $tokens->insertAt($index, new Token([T_NS_SEPARATOR, '\\']));
        }
    }

    /**
     * @param NamespaceUseAnalysis[] $useDeclarations
     */
    private function fullyQualifyFunctions(Tokens $tokens, array $useDeclarations)
    {
        if (!$tokens->isTokenKindFound(CT::T_FUNCTION_IMPORT)) {
            return;
        }

        list($global) = $this->filterUseDeclarations($useDeclarations, static function (NamespaceUseAnalysis $declaration) {
            return $declaration->isFunction() && !$declaration->isAliased();
        }, false);

        if (!$global) {
            return;
        }

        $analyzer = new FunctionsAnalyzer();

        for ($index = $tokens->count() - 1; $index >= 0; --$index) {
            $token = $tokens[$index];

            if (!$token->isGivenKind(T_STRING)) {
                continue;
            }

            if (!isset($global[strtolower($token->getContent())])) {
                continue;
            }

            if ($tokens[$tokens->getPrevMeaningfulToken($index)]->isGivenKind(T_NS_SEPARATOR)) {
                continue;
            }

            if (!$analyzer->isGlobalFunctionCall($tokens, $index)) {
                continue;
            }

            $tokens->insertAt($index, new Token([T_NS_SEPARATOR, '\\']));
        }
    }

    /**
     * @param NamespaceUseAnalysis[] $useDeclarations
     */
    private function fullyQualifyClasses(Tokens $tokens, array $useDeclarations)
    {
        if (!$tokens->isTokenKindFound(T_USE)) {
            return;
        }

        list($global) = $this->filterUseDeclarations($useDeclarations, static function (NamespaceUseAnalysis $declaration) {
            return $declaration->isClass() && !$declaration->isAliased();
        }, false);

        if (!$global) {
            return;
        }

        $analyzer = new ClassyAnalyzer();

        for ($index = $tokens->count() - 1; $index >= 0; --$index) {
            $token = $tokens[$index];

            if ($token->isGivenKind(T_DOC_COMMENT)) {
                $doc = new DocBlock($token->getContent());

                $changed = $this->traverseDocBlockTypes($doc, static function ($type) use ($global) {
                    if (!isset($global[strtolower($type)])) {
                        return $type;
                    }

                    return '\\'.$type;
                });

                if ($changed) {
                    $tokens[$index] = new Token([T_DOC_COMMENT, $doc->getContent()]);
                }

                continue;
            }

            if (!$token->isGivenKind(T_STRING)) {
                continue;
            }

            if (!isset($global[strtolower($token->getContent())])) {
                continue;
            }

            if ($tokens[$tokens->getPrevMeaningfulToken($index)]->isGivenKind(T_NS_SEPARATOR)) {
                continue;
            }

            if (!$analyzer->isClassyInvocation($tokens, $index)) {
                continue;
            }

            $tokens->insertAt($index, new Token([T_NS_SEPARATOR, '\\']));
        }
    }

    /**
     * @param NamespaceUseAnalysis[] $declarations
     * @param bool                   $caseSensitive
     *
     * @return array
     */
    private function filterUseDeclarations(array $declarations, callable $callback, $caseSensitive)
    {
        $global = [];
        $other = [];

        foreach ($declarations as $declaration) {
            if (!$callback($declaration)) {
                continue;
            }

            $fullName = ltrim($declaration->getFullName(), '\\');

            if (false !== strpos($fullName, '\\')) {
                $name = $caseSensitive ? $declaration->getShortName() : strtolower($declaration->getShortName());
                $other[$name] = true;

                continue;
            }

            $checkName = $caseSensitive ? $fullName : strtolower($fullName);
            $alias = $declaration->getShortName();
            $global[$checkName] = $alias === $fullName ? true : $alias;
        }

        return [$global, $other];
    }

    private function findFunctionDeclarations(Tokens $tokens, $start, $end)
    {
        for ($index = $start; $index <= $end; ++$index) {
            $token = $tokens[$index];

            if ($token->isClassy()) {
                $classStart = $tokens->getNextTokenOfKind($index, ['{']);
                $classEnd = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $classStart);

                for ($index = $classStart; $index <= $classEnd; ++$index) {
                    if (!$tokens[$index]->isGivenKind(T_FUNCTION)) {
                        continue;
                    }

                    $methodStart = $tokens->getNextTokenOfKind($index, ['{', ';']);

                    if ($tokens[$methodStart]->equals(';')) {
                        $index = $methodStart;

                        continue;
                    }

                    $methodEnd = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $methodStart);

                    foreach ($this->findFunctionDeclarations($tokens, $methodStart, $methodEnd) as $function) {
                        yield $function;
                    }

                    $index = $methodEnd;
                }

                continue;
            }

            if (!$token->isGivenKind(T_FUNCTION)) {
                continue;
            }

            $index = $tokens->getNextMeaningfulToken($index);

            if ($tokens[$index]->isGivenKind(CT::T_RETURN_REF)) {
                $index = $tokens->getNextMeaningfulToken($index);
            }

            if ($tokens[$index]->isGivenKind(T_STRING)) {
                yield $tokens[$index]->getContent();
            }
        }
    }

    private function traverseDocBlockTypes(DocBlock $doc, callable $callback)
    {
        $annotations = $doc->getAnnotationsOfType(Annotation::getTagsWithTypes());

        if (!$annotations) {
            return false;
        }

        $changed = false;

        foreach ($annotations as $annotation) {
            $types = $new = $annotation->getTypes();

            foreach ($types as $i => $fullType) {
                $newFullType = $fullType;

                Preg::matchAll('/[\\\\\w]+/', $fullType, $matches, PREG_OFFSET_CAPTURE);

                foreach (array_reverse($matches[0]) as list($type, $offset)) {
                    $newType = $callback($type);

                    if (null !== $newType && $type !== $newType) {
                        $newFullType = substr_replace($newFullType, $newType, $offset, \strlen($type));
                    }
                }

                $new[$i] = $newFullType;
            }

            if ($types !== $new) {
                $annotation->setTypes($new);
                $changed = true;
            }
        }

        return $changed;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Import;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerConfiguration\AliasedFixerOptionBuilder;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\FixerDefinition\VersionSpecification;
use PhpCsFixer\FixerDefinition\VersionSpecificCodeSample;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Tokenizer\TokensAnalyzer;
use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException;

/**
 * @author Sebastiaan Stok <s.stok@rollerscapes.net>
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 * @author SpacePossum
 * @author Darius Matulionis <darius@matulionis.lt>
 * @author Adriano Pilger <adriano.pilger@gmail.com>
 */
final class OrderedImportsFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface, WhitespacesAwareFixerInterface
{
    const IMPORT_TYPE_CLASS = 'class';

    const IMPORT_TYPE_CONST = 'const';

    const IMPORT_TYPE_FUNCTION = 'function';

    const SORT_ALPHA = 'alpha';

    const SORT_LENGTH = 'length';

    const SORT_NONE = 'none';

    /**
     * Array of supported sort types in configuration.
     *
     * @var string[]
     */
    private $supportedSortTypes = [self::IMPORT_TYPE_CLASS, self::IMPORT_TYPE_CONST, self::IMPORT_TYPE_FUNCTION];

    /**
     * Array of supported sort algorithms in configuration.
     *
     * @var string[]
     */
    private $supportedSortAlgorithms = [self::SORT_ALPHA, self::SORT_LENGTH, self::SORT_NONE];

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Ordering `use` statements.',
            [
                new CodeSample("<?php\nuse Z; use A;\n"),
                new CodeSample(
                    '<?php
use Acme\Bar;
use Bar1;
use Acme;
use Bar;
',
                    ['sort_algorithm' => self::SORT_LENGTH]
                ),
                new VersionSpecificCodeSample(
                    "<?php\nuse function AAC;\nuse const AAB;\nuse AAA;\n",
                    new VersionSpecification(70000)
                ),
                new VersionSpecificCodeSample(
                    '<?php
use const AAAA;
use const BBB;

use Bar;
use AAC;
use Acme;

use function CCC\AA;
use function DDD;
',
                    new VersionSpecification(70000),
                    [
                        'sort_algorithm' => self::SORT_LENGTH,
                        'imports_order' => [
                            self::IMPORT_TYPE_CONST,
                            self::IMPORT_TYPE_CLASS,
                            self::IMPORT_TYPE_FUNCTION,
                        ],
                    ]
                ),
                new VersionSpecificCodeSample(
                    '<?php
use const BBB;
use const AAAA;

use Acme;
use AAC;
use Bar;

use function DDD;
use function CCC\AA;
',
                    new VersionSpecification(70000),
                    [
                        'sort_algorithm' => self::SORT_ALPHA,
                        'imports_order' => [
                            self::IMPORT_TYPE_CONST,
                            self::IMPORT_TYPE_CLASS,
                            self::IMPORT_TYPE_FUNCTION,
                        ],
                    ]
                ),
                new VersionSpecificCodeSample(
                    '<?php
use const BBB;
use const AAAA;

use function DDD;
use function CCC\AA;

use Acme;
use AAC;
use Bar;
',
                    new VersionSpecification(70000),
                    [
                        'sort_algorithm' => self::SORT_NONE,
                        'imports_order' => [
                            self::IMPORT_TYPE_CONST,
                            self::IMPORT_TYPE_CLASS,
                            self::IMPORT_TYPE_FUNCTION,
                        ],
                    ]
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run after GlobalNamespaceImportFixer, NoLeadingImportSlashFixer.
     */
    public function getPriority()
    {
        return -30;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_USE);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $tokensAnalyzer = new TokensAnalyzer($tokens);
        $namespacesImports = $tokensAnalyzer->getImportUseIndexes(true);

        if (0 === \count($namespacesImports)) {
            return;
        }

        $usesOrder = [];
        foreach ($namespacesImports as $uses) {
            $usesOrder[] = $this->getNewOrder(array_reverse($uses), $tokens);
        }
        $usesOrder = array_replace(...$usesOrder);

        $usesOrder = array_reverse($usesOrder, true);
        $mapStartToEnd = [];

        foreach ($usesOrder as $use) {
            $mapStartToEnd[$use['startIndex']] = $use['endIndex'];
        }

        // Now insert the new tokens, starting from the end
        foreach ($usesOrder as $index => $use) {
            $declarationTokens = Tokens::fromCode(
                sprintf(
                    '<?php use %s%s;',
                    self::IMPORT_TYPE_CLASS === $use['importType'] ? '' : ' '.$use['importType'].' ',
                    $use['namespace']
                )
            );

            $declarationTokens->clearRange(0, 2); // clear `<?php use `
            $declarationTokens->clearAt(\count($declarationTokens) - 1); // clear `;`
            $declarationTokens->clearEmptyTokens();

            $tokens->overrideRange($index, $mapStartToEnd[$index], $declarationTokens);
            if ($use['group']) {
                // a group import must start with `use` and cannot be part of comma separated import list
                $prev = $tokens->getPrevMeaningfulToken($index);
                if ($tokens[$prev]->equals(',')) {
                    $tokens[$prev] = new Token(';');
                    $tokens->insertAt($prev + 1, new Token([T_USE, 'use']));

                    if (!$tokens[$prev + 2]->isWhitespace()) {
                        $tokens->insertAt($prev + 2, new Token([T_WHITESPACE, ' ']));
                    }
                }
            }
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        $supportedSortTypes = $this->supportedSortTypes;

        return new FixerConfigurationResolver([
            (new AliasedFixerOptionBuilder(
                new FixerOptionBuilder('sort_algorithm', 'whether the statements should be sorted alphabetically or by length, or not sorted'),
                'sortAlgorithm'
            ))
                ->setAllowedValues($this->supportedSortAlgorithms)
                ->setDefault(self::SORT_ALPHA)
                ->getOption(),
            (new AliasedFixerOptionBuilder(
                new FixerOptionBuilder('imports_order', 'Defines the order of import types.'),
                'importsOrder'
            ))
                ->setAllowedTypes(['array', 'null'])
                ->setAllowedValues([static function ($value) use ($supportedSortTypes) {
                    if (null !== $value) {
                        $missing = array_diff($supportedSortTypes, $value);
                        if (\count($missing)) {
                            throw new InvalidOptionsException(sprintf(
                                'Missing sort %s "%s".',
                                1 === \count($missing) ? 'type' : 'types',
                                implode('", "', $missing)
                            ));
                        }

                        $unknown = array_diff($value, $supportedSortTypes);
                        if (\count($unknown)) {
                            throw new InvalidOptionsException(sprintf(
                                'Unknown sort %s "%s".',
                                1 === \count($unknown) ? 'type' : 'types',
                                implode('", "', $unknown)
                            ));
                        }
                    }

                    return true;
                }])
                ->setDefault(null)
                ->getOption(),
        ]);
    }

    /**
     * This method is used for sorting the uses in a namespace.
     *
     * @param array<string, bool|int|string> $first
     * @param array<string, bool|int|string> $second
     *
     * @return int
     *
     * @internal
     */
    private function sortAlphabetically(array $first, array $second)
    {
        // Replace backslashes by spaces before sorting for correct sort order
        $firstNamespace = str_replace('\\', ' ', $this->prepareNamespace($first['namespace']));
        $secondNamespace = str_replace('\\', ' ', $this->prepareNamespace($second['namespace']));

        return strcasecmp($firstNamespace, $secondNamespace);
    }

    /**
     * This method is used for sorting the uses statements in a namespace by length.
     *
     * @param array<string, bool|int|string> $first
     * @param array<string, bool|int|string> $second
     *
     * @return int
     *
     * @internal
     */
    private function sortByLength(array $first, array $second)
    {
        $firstNamespace = (self::IMPORT_TYPE_CLASS === $first['importType'] ? '' : $first['importType'].' ').$this->prepareNamespace($first['namespace']);
        $secondNamespace = (self::IMPORT_TYPE_CLASS === $second['importType'] ? '' : $second['importType'].' ').$this->prepareNamespace($second['namespace']);

        $firstNamespaceLength = \strlen($firstNamespace);
        $secondNamespaceLength = \strlen($secondNamespace);

        if ($firstNamespaceLength === $secondNamespaceLength) {
            $sortResult = strcasecmp($firstNamespace, $secondNamespace);
        } else {
            $sortResult = $firstNamespaceLength > $secondNamespaceLength ? 1 : -1;
        }

        return $sortResult;
    }

    /**
     * @param string $namespace
     *
     * @return string
     */
    private function prepareNamespace($namespace)
    {
        return trim(Preg::replace('%/\*(.*)\*/%s', '', $namespace));
    }

    /**
     * @param int[] $uses
     *
     * @return array
     */
    private function getNewOrder(array $uses, Tokens $tokens)
    {
        $indexes = [];
        $originalIndexes = [];
        $lineEnding = $this->whitespacesConfig->getLineEnding();

        for ($i = \count($uses) - 1; $i >= 0; --$i) {
            $index = $uses[$i];

            $startIndex = $tokens->getTokenNotOfKindSibling($index + 1, 1, [[T_WHITESPACE]]);
            $endIndex = $tokens->getNextTokenOfKind($startIndex, [';', [T_CLOSE_TAG]]);
            $previous = $tokens->getPrevMeaningfulToken($endIndex);

            $group = $tokens[$previous]->isGivenKind(CT::T_GROUP_IMPORT_BRACE_CLOSE);
            if ($tokens[$startIndex]->isGivenKind(CT::T_CONST_IMPORT)) {
                $type = self::IMPORT_TYPE_CONST;
                $index = $tokens->getNextNonWhitespace($startIndex);
            } elseif ($tokens[$startIndex]->isGivenKind(CT::T_FUNCTION_IMPORT)) {
                $type = self::IMPORT_TYPE_FUNCTION;
                $index = $tokens->getNextNonWhitespace($startIndex);
            } else {
                $type = self::IMPORT_TYPE_CLASS;
                $index = $startIndex;
            }

            $namespaceTokens = [];

            while ($index <= $endIndex) {
                $token = $tokens[$index];

                if ($index === $endIndex || (!$group && $token->equals(','))) {
                    if ($group && self::SORT_NONE !== $this->configuration['sort_algorithm']) {
                        // if group import, sort the items within the group definition

                        // figure out where the list of namespace parts within the group def. starts
                        $namespaceTokensCount = \count($namespaceTokens) - 1;
                        $namespace = '';
                        for ($k = 0; $k < $namespaceTokensCount; ++$k) {
                            if ($namespaceTokens[$k]->isGivenKind(CT::T_GROUP_IMPORT_BRACE_OPEN)) {
                                $namespace .= '{';

                                break;
                            }

                            $namespace .= $namespaceTokens[$k]->getContent();
                        }

                        // fetch all parts, split up in an array of strings, move comments to the end
                        $parts = [];
                        $firstIndent = '';
                        $separator = ', ';
                        $lastIndent = '';
                        $hasGroupTrailingComma = false;

                        for ($k1 = $k + 1; $k1 < $namespaceTokensCount; ++$k1) {
                            $comment = '';
                            $namespacePart = '';
                            for ($k2 = $k1;; ++$k2) {
                                if ($namespaceTokens[$k2]->equalsAny([',', [CT::T_GROUP_IMPORT_BRACE_CLOSE]])) {
                                    break;
                                }

                                if ($namespaceTokens[$k2]->isComment()) {
                                    $comment .= $namespaceTokens[$k2]->getContent();

                                    continue;
                                }

                                // if there is any line ending inside the group import, it should be indented properly
                                if (
                                    '' === $firstIndent &&
                                    $namespaceTokens[$k2]->isWhitespace() &&
                                    false !== strpos($namespaceTokens[$k2]->getContent(), $lineEnding)
                                ) {
                                    $lastIndent = $lineEnding;
                                    $firstIndent = $lineEnding.$this->whitespacesConfig->getIndent();
                                    $separator = ','.$firstIndent;
                                }

                                $namespacePart .= $namespaceTokens[$k2]->getContent();
                            }

                            $namespacePart = trim($namespacePart);
                            if ('' === $namespacePart) {
                                $hasGroupTrailingComma = true;

                                continue;
                            }

                            $comment = trim($comment);
                            if ('' !== $comment) {
                                $namespacePart .= ' '.$comment;
                            }

                            $parts[] = $namespacePart;

                            $k1 = $k2;
                        }

                        $sortedParts = $parts;
                        sort($parts);

                        // check if the order needs to be updated, otherwise don't touch as we might change valid CS (to other valid CS).
                        if ($sortedParts === $parts) {
                            $namespace = Tokens::fromArray($namespaceTokens)->generateCode();
                        } else {
                            $namespace .= $firstIndent.implode($separator, $parts).($hasGroupTrailingComma ? ',' : '').$lastIndent.'}';
                        }
                    } else {
                        $namespace = Tokens::fromArray($namespaceTokens)->generateCode();
                    }

                    $indexes[$startIndex] = [
                        'namespace' => $namespace,
                        'startIndex' => $startIndex,
                        'endIndex' => $index - 1,
                        'importType' => $type,
                        'group' => $group,
                    ];

                    $originalIndexes[] = $startIndex;

                    if ($index === $endIndex) {
                        break;
                    }

                    $namespaceTokens = [];
                    $nextPartIndex = $tokens->getTokenNotOfKindSibling($index, 1, [[','], [T_WHITESPACE]]);
                    $startIndex = $nextPartIndex;
                    $index = $nextPartIndex;

                    continue;
                }

                $namespaceTokens[] = $token;
                ++$index;
            }
        }

        // Is sort types provided, sorting by groups and each group by algorithm
        if (null !== $this->configuration['imports_order']) {
            // Grouping indexes by import type.
            $groupedByTypes = [];
            foreach ($indexes as $startIndex => $item) {
                $groupedByTypes[$item['importType']][$startIndex] = $item;
            }

            // Sorting each group by algorithm.
            foreach ($groupedByTypes as $type => $indexes) {
                $groupedByTypes[$type] = $this->sortByAlgorithm($indexes);
            }

            // Ordering groups
            $sortedGroups = [];
            foreach ($this->configuration['imports_order'] as $type) {
                if (isset($groupedByTypes[$type]) && !empty($groupedByTypes[$type])) {
                    foreach ($groupedByTypes[$type] as $startIndex => $item) {
                        $sortedGroups[$startIndex] = $item;
                    }
                }
            }
            $indexes = $sortedGroups;
        } else {
            // Sorting only by algorithm
            $indexes = $this->sortByAlgorithm($indexes);
        }

        $index = -1;
        $usesOrder = [];

        // Loop trough the index but use original index order
        foreach ($indexes as $v) {
            $usesOrder[$originalIndexes[++$index]] = $v;
        }

        return $usesOrder;
    }

    /**
     * @param array[] $indexes
     *
     * @return array
     */
    private function sortByAlgorithm(array $indexes)
    {
        if (self::SORT_ALPHA === $this->configuration['sort_algorithm']) {
            uasort($indexes, [$this, 'sortAlphabetically']);
        } elseif (self::SORT_LENGTH === $this->configuration['sort_algorithm']) {
            uasort($indexes, [$this, 'sortByLength']);
        }

        return $indexes;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Import;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Tokenizer\TokensAnalyzer;

/**
 * Fixer for rules defined in PSR2 ¶3.
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 * @author SpacePossum
 */
final class SingleImportPerStatementFixer extends AbstractFixer implements WhitespacesAwareFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'There MUST be one use keyword per declaration.',
            [new CodeSample("<?php\nuse Foo, Sample, Sample\\Sample as Sample2;\n")]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before MultilineWhitespaceBeforeSemicolonsFixer, NoLeadingImportSlashFixer, NoSinglelineWhitespaceBeforeSemicolonsFixer, NoUnusedImportsFixer, SpaceAfterSemicolonFixer.
     */
    public function getPriority()
    {
        return 1;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_USE);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $tokensAnalyzer = new TokensAnalyzer($tokens);
        $uses = array_reverse($tokensAnalyzer->getImportUseIndexes());

        foreach ($uses as $index) {
            $endIndex = $tokens->getNextTokenOfKind($index, [';', [T_CLOSE_TAG]]);
            $groupClose = $tokens->getPrevMeaningfulToken($endIndex);

            if ($tokens[$groupClose]->isGivenKind(CT::T_GROUP_IMPORT_BRACE_CLOSE)) {
                $this->fixGroupUse($tokens, $index, $endIndex);
            } else {
                $this->fixMultipleUse($tokens, $index, $endIndex);
            }
        }
    }

    /**
     * @param int $index
     *
     * @return string
     */
    private function detectIndent(Tokens $tokens, $index)
    {
        if (!$tokens[$index - 1]->isWhitespace()) {
            return ''; // cannot detect indent
        }

        $explodedContent = explode("\n", $tokens[$index - 1]->getContent());

        return end($explodedContent);
    }

    /**
     * @param int $index
     *
     * @return array
     */
    private function getGroupDeclaration(Tokens $tokens, $index)
    {
        $groupPrefix = '';
        $comment = '';
        $groupOpenIndex = null;
        for ($i = $index + 1;; ++$i) {
            if ($tokens[$i]->isGivenKind(CT::T_GROUP_IMPORT_BRACE_OPEN)) {
                $groupOpenIndex = $i;

                break;
            }

            if ($tokens[$i]->isComment()) {
                $comment .= $tokens[$i]->getContent();
                if (!$tokens[$i - 1]->isWhitespace() && !$tokens[$i + 1]->isWhitespace()) {
                    $groupPrefix .= ' ';
                }

                continue;
            }

            if ($tokens[$i]->isWhitespace()) {
                $groupPrefix .= ' ';

                continue;
            }

            $groupPrefix .= $tokens[$i]->getContent();
        }

        return [
            rtrim($groupPrefix),
            $groupOpenIndex,
            $tokens->findBlockEnd(Tokens::BLOCK_TYPE_GROUP_IMPORT_BRACE, $groupOpenIndex),
            $comment,
        ];
    }

    /**
     * @param string $groupPrefix
     * @param int    $groupOpenIndex
     * @param int    $groupCloseIndex
     * @param string $comment
     *
     * @return string[]
     */
    private function getGroupStatements(Tokens $tokens, $groupPrefix, $groupOpenIndex, $groupCloseIndex, $comment)
    {
        $statements = [];
        $statement = $groupPrefix;

        for ($i = $groupOpenIndex + 1; $i <= $groupCloseIndex; ++$i) {
            $token = $tokens[$i];

            if ($token->equals(',') && $tokens[$tokens->getNextMeaningfulToken($i)]->equals([CT::T_GROUP_IMPORT_BRACE_CLOSE])) {
                continue;
            }

            if ($token->equalsAny([',', [CT::T_GROUP_IMPORT_BRACE_CLOSE]])) {
                $statements[] = 'use'.$statement.';';
                $statement = $groupPrefix;

                continue;
            }

            if ($token->isWhitespace()) {
                $j = $tokens->getNextMeaningfulToken($i);

                if ($tokens[$j]->equals([T_AS])) {
                    $statement .= ' as ';
                    $i += 2;
                } elseif ($tokens[$j]->equals([T_FUNCTION])) {
                    $statement = ' function'.$statement;
                    $i += 2;
                } elseif ($tokens[$j]->equals([T_CONST])) {
                    $statement = ' const'.$statement;
                    $i += 2;
                }

                if ($token->isWhitespace(" \t") || '//' !== substr($tokens[$i - 1]->getContent(), 0, 2)) {
                    continue;
                }
            }

            $statement .= $token->getContent();
        }

        if ('' !== $comment) {
            $statements[0] .= ' '.$comment;
        }

        return $statements;
    }

    /**
     * @param int $index
     * @param int $endIndex
     */
    private function fixGroupUse(Tokens $tokens, $index, $endIndex)
    {
        list($groupPrefix, $groupOpenIndex, $groupCloseIndex, $comment) = $this->getGroupDeclaration($tokens, $index);
        $statements = $this->getGroupStatements($tokens, $groupPrefix, $groupOpenIndex, $groupCloseIndex, $comment);

        if (\count($statements) < 2) {
            return;
        }

        $tokens->clearRange($index, $groupCloseIndex);
        if ($tokens[$endIndex]->equals(';')) {
            $tokens->clearAt($endIndex);
        }

        $ending = $this->whitespacesConfig->getLineEnding();
        $importTokens = Tokens::fromCode('<?php '.implode($ending, $statements));
        $importTokens->clearAt(0);
        $importTokens->clearEmptyTokens();

        $tokens->insertAt($index, $importTokens);
    }

    /**
     * @param int $index
     * @param int $endIndex
     */
    private function fixMultipleUse(Tokens $tokens, $index, $endIndex)
    {
        $ending = $this->whitespacesConfig->getLineEnding();

        for ($i = $endIndex - 1; $i > $index; --$i) {
            if (!$tokens[$i]->equals(',')) {
                continue;
            }

            $tokens[$i] = new Token(';');
            $i = $tokens->getNextMeaningfulToken($i);
            $tokens->insertAt($i, new Token([T_USE, 'use']));
            $tokens->insertAt($i + 1, new Token([T_WHITESPACE, ' ']));

            $indent = $this->detectIndent($tokens, $index);
            if ($tokens[$i - 1]->isWhitespace()) {
                $tokens[$i - 1] = new Token([T_WHITESPACE, $ending.$indent]);

                continue;
            }

            if (false === strpos($tokens[$i - 1]->getContent(), "\n")) {
                $tokens->insertAt($i, new Token([T_WHITESPACE, $ending.$indent]));
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Import;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Tokenizer\TokensAnalyzer;

/**
 * @author Carlos Cirello <carlos.cirello.nl@gmail.com>
 */
final class NoLeadingImportSlashFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Remove leading slashes in `use` clauses.',
            [new CodeSample("<?php\nnamespace Foo;\nuse \\Bar;\n")]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before OrderedImportsFixer.
     * Must run after NoUnusedImportsFixer, SingleImportPerStatementFixer.
     */
    public function getPriority()
    {
        return -20;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_USE);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $tokensAnalyzer = new TokensAnalyzer($tokens);
        $usesIndexes = $tokensAnalyzer->getImportUseIndexes();

        foreach ($usesIndexes as $idx) {
            $nextTokenIdx = $tokens->getNextMeaningfulToken($idx);
            $nextToken = $tokens[$nextTokenIdx];

            if ($nextToken->isGivenKind(T_NS_SEPARATOR)) {
                $this->removeLeadingImportSlash($tokens, $nextTokenIdx);
            } elseif ($nextToken->isGivenKind([CT::T_FUNCTION_IMPORT, CT::T_CONST_IMPORT])) {
                $nextTokenIdx = $tokens->getNextMeaningfulToken($nextTokenIdx);
                if ($tokens[$nextTokenIdx]->isGivenKind(T_NS_SEPARATOR)) {
                    $this->removeLeadingImportSlash($tokens, $nextTokenIdx);
                }
            }
        }
    }

    /**
     * @param int $index
     */
    private function removeLeadingImportSlash(Tokens $tokens, $index)
    {
        $previousIndex = $tokens->getPrevNonWhitespace($index);

        if (
            $previousIndex < $index - 1
            || $tokens[$previousIndex]->isComment()
        ) {
            $tokens->clearAt($index);

            return;
        }

        $tokens[$index] = new Token([T_WHITESPACE, ' ']);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Import;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Tokenizer\TokensAnalyzer;
use PhpCsFixer\Utils;

/**
 * Fixer for rules defined in PSR2 ¶3.
 *
 * @author Ceeram <ceeram@cakephp.org>
 * @author Graham Campbell <graham@alt-three.com>
 */
final class SingleLineAfterImportsFixer extends AbstractFixer implements WhitespacesAwareFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_USE);
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Each namespace use MUST go on its own line and there MUST be one blank line after the use statements block.',
            [
                new CodeSample(
                    '<?php
namespace Foo;

use Bar;
use Baz;
final class Example
{
}
'
                ),
                new CodeSample(
                    '<?php
namespace Foo;

use Bar;
use Baz;


final class Example
{
}
'
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run after NoUnusedImportsFixer.
     */
    public function getPriority()
    {
        return -11;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $ending = $this->whitespacesConfig->getLineEnding();
        $tokensAnalyzer = new TokensAnalyzer($tokens);

        $added = 0;
        foreach ($tokensAnalyzer->getImportUseIndexes() as $index) {
            $index += $added;
            $indent = '';

            // if previous line ends with comment and current line starts with whitespace, use current indent
            if ($tokens[$index - 1]->isWhitespace(" \t") && $tokens[$index - 2]->isGivenKind(T_COMMENT)) {
                $indent = $tokens[$index - 1]->getContent();
            } elseif ($tokens[$index - 1]->isWhitespace()) {
                $indent = Utils::calculateTrailingWhitespaceIndent($tokens[$index - 1]);
            }

            $semicolonIndex = $tokens->getNextTokenOfKind($index, [';', [T_CLOSE_TAG]]); // Handle insert index for inline T_COMMENT with whitespace after semicolon
            $insertIndex = $semicolonIndex;

            if ($tokens[$semicolonIndex]->isGivenKind(T_CLOSE_TAG)) {
                if ($tokens[$insertIndex - 1]->isWhitespace()) {
                    --$insertIndex;
                }

                $tokens->insertAt($insertIndex, new Token(';'));
                ++$added;
            }

            if ($semicolonIndex === \count($tokens) - 1) {
                $tokens->insertAt($insertIndex + 1, new Token([T_WHITESPACE, $ending.$ending.$indent]));
                ++$added;
            } else {
                $newline = $ending;
                $tokens[$semicolonIndex]->isGivenKind(T_CLOSE_TAG) ? --$insertIndex : ++$insertIndex;
                if ($tokens[$insertIndex]->isWhitespace(" \t") && $tokens[$insertIndex + 1]->isComment()) {
                    ++$insertIndex;
                }

                // Increment insert index for inline T_COMMENT or T_DOC_COMMENT
                if ($tokens[$insertIndex]->isComment()) {
                    ++$insertIndex;
                }

                $afterSemicolon = $tokens->getNextMeaningfulToken($semicolonIndex);
                if (null === $afterSemicolon || !$tokens[$afterSemicolon]->isGivenKind(T_USE)) {
                    $newline .= $ending;
                }

                if ($tokens[$insertIndex]->isWhitespace()) {
                    $nextToken = $tokens[$insertIndex];
                    if (2 === substr_count($nextToken->getContent(), "\n")) {
                        continue;
                    }
                    $nextMeaningfulAfterUseIndex = $tokens->getNextMeaningfulToken($insertIndex);
                    if (null !== $nextMeaningfulAfterUseIndex && $tokens[$nextMeaningfulAfterUseIndex]->isGivenKind(T_USE)) {
                        if (substr_count($nextToken->getContent(), "\n") < 2) {
                            $tokens[$insertIndex] = new Token([T_WHITESPACE, $newline.$indent.ltrim($nextToken->getContent())]);
                        }
                    } else {
                        $tokens[$insertIndex] = new Token([T_WHITESPACE, $newline.$indent.ltrim($nextToken->getContent())]);
                    }
                } else {
                    $tokens->insertAt($insertIndex, new Token([T_WHITESPACE, $newline.$indent]));
                    ++$added;
                }
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ArrayNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\FixerDefinition\VersionSpecification;
use PhpCsFixer\FixerDefinition\VersionSpecificCodeSample;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Gregor Harlan <gharlan@web.de>
 * @author Sebastiaan Stok <s.stok@rollerscapes.net>
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 * @author SpacePossum
 */
final class ArraySyntaxFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    private $candidateTokenKind;
    private $fixCallback;

    /**
     * {@inheritdoc}
     */
    public function configure(array $configuration = null)
    {
        parent::configure($configuration);

        $this->resolveCandidateTokenKind();
        $this->resolveFixCallback();
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'PHP arrays should be declared using the configured syntax.',
            [
                new CodeSample(
                    "<?php\n[1,2];\n"
                ),
                new VersionSpecificCodeSample(
                    "<?php\narray(1,2);\n",
                    new VersionSpecification(50400),
                    ['syntax' => 'short']
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before BinaryOperatorSpacesFixer, TernaryOperatorSpacesFixer.
     */
    public function getPriority()
    {
        return 1;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound($this->candidateTokenKind);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $callback = $this->fixCallback;
        for ($index = $tokens->count() - 1; 0 <= $index; --$index) {
            if ($tokens[$index]->isGivenKind($this->candidateTokenKind)) {
                $this->{$callback}($tokens, $index);
            }
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('syntax', 'Whether to use the `long` or `short` array syntax.'))
                ->setAllowedValues(['long', 'short'])
                ->setDefault('long')
                ->getOption(),
        ]);
    }

    /**
     * @param int $index
     */
    private function fixToLongArraySyntax(Tokens $tokens, $index)
    {
        $closeIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_ARRAY_SQUARE_BRACE, $index);

        $tokens[$index] = new Token('(');
        $tokens[$closeIndex] = new Token(')');

        $tokens->insertAt($index, new Token([T_ARRAY, 'array']));
    }

    /**
     * @param int $index
     */
    private function fixToShortArraySyntax(Tokens $tokens, $index)
    {
        $openIndex = $tokens->getNextTokenOfKind($index, ['(']);
        $closeIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $openIndex);

        $tokens[$openIndex] = new Token([CT::T_ARRAY_SQUARE_BRACE_OPEN, '[']);
        $tokens[$closeIndex] = new Token([CT::T_ARRAY_SQUARE_BRACE_CLOSE, ']']);

        $tokens->clearTokenAndMergeSurroundingWhitespace($index);
    }

    private function resolveFixCallback()
    {
        $this->fixCallback = sprintf('fixTo%sArraySyntax', ucfirst($this->configuration['syntax']));
    }

    private function resolveCandidateTokenKind()
    {
        $this->candidateTokenKind = 'long' === $this->configuration['syntax'] ? CT::T_ARRAY_SQUARE_BRACE_OPEN : T_ARRAY;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ArrayNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Jared Henderson <jared@netrivet.com>
 */
final class TrimArraySpacesFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Arrays should be formatted like function/method arguments, without leading or trailing single line space.',
            [new CodeSample("<?php\n\$sample = array( );\n\$sample = array( 'a', 'b' );\n")]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound([T_ARRAY, CT::T_ARRAY_SQUARE_BRACE_OPEN]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        for ($index = 0, $c = $tokens->count(); $index < $c; ++$index) {
            if ($tokens[$index]->isGivenKind([T_ARRAY, CT::T_ARRAY_SQUARE_BRACE_OPEN])) {
                self::fixArray($tokens, $index);
            }
        }
    }

    /**
     * Method to trim leading/trailing whitespace within single line arrays.
     *
     * @param int $index
     */
    private static function fixArray(Tokens $tokens, $index)
    {
        $startIndex = $index;

        if ($tokens[$startIndex]->isGivenKind(T_ARRAY)) {
            $startIndex = $tokens->getNextMeaningfulToken($startIndex);
            $endIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $startIndex);
        } else {
            $endIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_ARRAY_SQUARE_BRACE, $startIndex);
        }

        $nextIndex = $startIndex + 1;
        $nextToken = $tokens[$nextIndex];
        $nextNonWhitespaceIndex = $tokens->getNextNonWhitespace($startIndex);
        $nextNonWhitespaceToken = $tokens[$nextNonWhitespaceIndex];
        $tokenAfterNextNonWhitespaceToken = $tokens[$nextNonWhitespaceIndex + 1];

        $prevIndex = $endIndex - 1;
        $prevToken = $tokens[$prevIndex];
        $prevNonWhitespaceIndex = $tokens->getPrevNonWhitespace($endIndex);
        $prevNonWhitespaceToken = $tokens[$prevNonWhitespaceIndex];

        if (
            $nextToken->isWhitespace(" \t")
            && (
                !$nextNonWhitespaceToken->isComment()
                || $nextNonWhitespaceIndex === $prevNonWhitespaceIndex
                || $tokenAfterNextNonWhitespaceToken->isWhitespace(" \t")
                || '/*' === substr($nextNonWhitespaceToken->getContent(), 0, 2)
            )
        ) {
            $tokens->clearAt($nextIndex);
        }

        if (
            $prevToken->isWhitespace(" \t")
            && !$prevNonWhitespaceToken->equals(',')
        ) {
            $tokens->clearAt($prevIndex);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ArrayNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerConfiguration\InvalidOptionsForEnvException;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\FixerDefinition\VersionSpecification;
use PhpCsFixer\FixerDefinition\VersionSpecificCodeSample;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Tokens;
use Symfony\Component\OptionsResolver\Options;

/**
 * @author Adam Marczuk <adam@marczuk.info>
 */
final class NoWhitespaceBeforeCommaInArrayFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'In array declaration, there MUST NOT be a whitespace before each comma.',
            [
                new CodeSample("<?php \$x = array(1 , \"2\");\n"),
                new VersionSpecificCodeSample(
                    <<<'SAMPLE'
<?php
    $x = [<<<EOD
foo
EOD
        , 'bar'
    ];

SAMPLE
                    ,
                    new VersionSpecification(70300),
                    ['after_heredoc' => true]
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound([T_ARRAY, CT::T_ARRAY_SQUARE_BRACE_OPEN]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        for ($index = $tokens->count() - 1; $index >= 0; --$index) {
            if ($tokens[$index]->isGivenKind([T_ARRAY, CT::T_ARRAY_SQUARE_BRACE_OPEN])) {
                $this->fixSpacing($index, $tokens);
            }
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('after_heredoc', 'Whether the whitespace between heredoc end and comma should be removed.'))
                ->setAllowedTypes(['bool'])
                ->setDefault(false)
                ->setNormalizer(static function (Options $options, $value) {
                    if (\PHP_VERSION_ID < 70300 && $value) {
                        throw new InvalidOptionsForEnvException('"after_heredoc" option can only be enabled with PHP 7.3+.');
                    }

                    return $value;
                })
                ->getOption(),
        ]);
    }

    /**
     * Method to fix spacing in array declaration.
     *
     * @param int $index
     */
    private function fixSpacing($index, Tokens $tokens)
    {
        if ($tokens[$index]->isGivenKind(CT::T_ARRAY_SQUARE_BRACE_OPEN)) {
            $startIndex = $index;
            $endIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_ARRAY_SQUARE_BRACE, $startIndex);
        } else {
            $startIndex = $tokens->getNextTokenOfKind($index, ['(']);
            $endIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $startIndex);
        }

        for ($i = $endIndex - 1; $i > $startIndex; --$i) {
            $i = $this->skipNonArrayElements($i, $tokens);
            $currentToken = $tokens[$i];
            $prevIndex = $tokens->getPrevNonWhitespace($i - 1);

            if (
                $currentToken->equals(',') && !$tokens[$prevIndex]->isComment() &&
                ($this->configuration['after_heredoc'] || !$tokens[$prevIndex]->equals([T_END_HEREDOC]))
            ) {
                $tokens->removeLeadingWhitespace($i);
            }
        }
    }

    /**
     * Method to move index over the non-array elements like function calls or function declarations.
     *
     * @param int $index
     *
     * @return int New index
     */
    private function skipNonArrayElements($index, Tokens $tokens)
    {
        if ($tokens[$index]->equals('}')) {
            return $tokens->findBlockStart(Tokens::BLOCK_TYPE_CURLY_BRACE, $index);
        }

        if ($tokens[$index]->equals(')')) {
            $startIndex = $tokens->findBlockStart(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $index);
            $startIndex = $tokens->getPrevMeaningfulToken($startIndex);
            if (!$tokens[$startIndex]->isGivenKind([T_ARRAY, CT::T_ARRAY_SQUARE_BRACE_OPEN])) {
                return $startIndex;
            }
        }

        return $index;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ArrayNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Carlos Cirello <carlos.cirello.nl@gmail.com>
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 * @author Graham Campbell <graham@alt-three.com>
 */
final class NoMultilineWhitespaceAroundDoubleArrowFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Operator `=>` should not be surrounded by multi-line whitespaces.',
            [new CodeSample("<?php\n\$a = array(1\n\n=> 2);\n")]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before BinaryOperatorSpacesFixer, TrailingCommaInMultilineArrayFixer.
     */
    public function getPriority()
    {
        return 1;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_DOUBLE_ARROW);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if (!$token->isGivenKind(T_DOUBLE_ARROW)) {
                continue;
            }

            $this->fixWhitespace($tokens, $index - 1);
            // do not move anything about if there is a comment following the whitespace
            if (!$tokens[$index + 2]->isComment()) {
                $this->fixWhitespace($tokens, $index + 1);
            }
        }
    }

    /**
     * @param int $index
     */
    private function fixWhitespace(Tokens $tokens, $index)
    {
        $token = $tokens[$index];

        if ($token->isWhitespace() && !$token->isWhitespace(" \t")) {
            $tokens[$index] = new Token([T_WHITESPACE, rtrim($token->getContent()).' ']);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ArrayNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Tokenizer\TokensAnalyzer;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 * @author Sebastiaan Stok <s.stok@rollerscapes.net>
 */
final class NoTrailingCommaInSinglelineArrayFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'PHP single-line arrays should not have trailing comma.',
            [new CodeSample("<?php\n\$a = array('sample',  );\n")]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound([T_ARRAY, CT::T_ARRAY_SQUARE_BRACE_OPEN]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $tokensAnalyzer = new TokensAnalyzer($tokens);

        for ($index = 0, $c = $tokens->count(); $index < $c; ++$index) {
            if ($tokensAnalyzer->isArray($index)) {
                $this->fixArray($tokens, $index);
            }
        }
    }

    /**
     * @param int $index
     */
    private function fixArray(Tokens $tokens, $index)
    {
        $tokensAnalyzer = new TokensAnalyzer($tokens);

        if ($tokensAnalyzer->isArrayMultiLine($index)) {
            return;
        }

        $startIndex = $index;

        if ($tokens[$startIndex]->isGivenKind(T_ARRAY)) {
            $startIndex = $tokens->getNextTokenOfKind($startIndex, ['(']);
            $endIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $startIndex);
        } else {
            $endIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_ARRAY_SQUARE_BRACE, $startIndex);
        }

        $beforeEndIndex = $tokens->getPrevMeaningfulToken($endIndex);
        $beforeEndToken = $tokens[$beforeEndIndex];

        if ($beforeEndToken->equals(',')) {
            $tokens->removeTrailingWhitespace($beforeEndIndex);
            $tokens->clearAt($beforeEndIndex);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ArrayNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Adam Marczuk <adam@marczuk.info>
 */
final class WhitespaceAfterCommaInArrayFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'In array declaration, there MUST be a whitespace after each comma.',
            [new CodeSample("<?php\n\$sample = array(1,'a',\$b,);\n")]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound([T_ARRAY, CT::T_ARRAY_SQUARE_BRACE_OPEN]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        for ($index = $tokens->count() - 1; $index >= 0; --$index) {
            if ($tokens[$index]->isGivenKind([T_ARRAY, CT::T_ARRAY_SQUARE_BRACE_OPEN])) {
                $this->fixSpacing($index, $tokens);
            }
        }
    }

    /**
     * Method to fix spacing in array declaration.
     *
     * @param int $index
     */
    private function fixSpacing($index, Tokens $tokens)
    {
        if ($tokens[$index]->isGivenKind(CT::T_ARRAY_SQUARE_BRACE_OPEN)) {
            $startIndex = $index;
            $endIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_ARRAY_SQUARE_BRACE, $startIndex);
        } else {
            $startIndex = $tokens->getNextTokenOfKind($index, ['(']);
            $endIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $startIndex);
        }

        for ($i = $endIndex - 1; $i > $startIndex; --$i) {
            $i = $this->skipNonArrayElements($i, $tokens);
            if ($tokens[$i]->equals(',') && !$tokens[$i + 1]->isWhitespace()) {
                $tokens->insertAt($i + 1, new Token([T_WHITESPACE, ' ']));
            }
        }
    }

    /**
     * Method to move index over the non-array elements like function calls or function declarations.
     *
     * @param int $index
     *
     * @return int New index
     */
    private function skipNonArrayElements($index, Tokens $tokens)
    {
        if ($tokens[$index]->equals('}')) {
            return $tokens->findBlockStart(Tokens::BLOCK_TYPE_CURLY_BRACE, $index);
        }

        if ($tokens[$index]->equals(')')) {
            $startIndex = $tokens->findBlockStart(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $index);
            $startIndex = $tokens->getPrevMeaningfulToken($startIndex);
            if (!$tokens[$startIndex]->isGivenKind([T_ARRAY, CT::T_ARRAY_SQUARE_BRACE_OPEN])) {
                return $startIndex;
            }
        }

        return $index;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ArrayNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class NormalizeIndexBraceFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Array index should always be written by using square braces.',
            [new CodeSample("<?php\necho \$sample{\$index};\n")]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(CT::T_ARRAY_INDEX_CURLY_BRACE_OPEN);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if ($token->isGivenKind(CT::T_ARRAY_INDEX_CURLY_BRACE_OPEN)) {
                $tokens[$index] = new Token('[');
            } elseif ($token->isGivenKind(CT::T_ARRAY_INDEX_CURLY_BRACE_CLOSE)) {
                $tokens[$index] = new Token(']');
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ArrayNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerConfiguration\InvalidOptionsForEnvException;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\FixerDefinition\VersionSpecification;
use PhpCsFixer\FixerDefinition\VersionSpecificCodeSample;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Tokenizer\TokensAnalyzer;
use Symfony\Component\OptionsResolver\Options;

/**
 * @author Sebastiaan Stok <s.stok@rollerscapes.net>
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class TrailingCommaInMultilineArrayFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'PHP multi-line arrays should have a trailing comma.',
            [
                new CodeSample("<?php\narray(\n    1,\n    2\n);\n"),
                new VersionSpecificCodeSample(
                    <<<'SAMPLE'
<?php
    $x = [
        'foo',
        <<<EOD
            bar
            EOD
    ];

SAMPLE
                    ,
                    new VersionSpecification(70300),
                    ['after_heredoc' => true]
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run after NoMultilineWhitespaceAroundDoubleArrowFixer.
     */
    public function getPriority()
    {
        return 0;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound([T_ARRAY, CT::T_ARRAY_SQUARE_BRACE_OPEN]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $tokensAnalyzer = new TokensAnalyzer($tokens);

        for ($index = $tokens->count() - 1; $index >= 0; --$index) {
            if ($tokensAnalyzer->isArray($index) && $tokensAnalyzer->isArrayMultiLine($index)) {
                $this->fixArray($tokens, $index);
            }
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('after_heredoc', 'Whether a trailing comma should also be placed after heredoc end.'))
                ->setAllowedTypes(['bool'])
                ->setDefault(false)
                ->setNormalizer(static function (Options $options, $value) {
                    if (\PHP_VERSION_ID < 70300 && $value) {
                        throw new InvalidOptionsForEnvException('"after_heredoc" option can only be enabled with PHP 7.3+.');
                    }

                    return $value;
                })
                ->getOption(),
        ]);
    }

    /**
     * @param int $index
     */
    private function fixArray(Tokens $tokens, $index)
    {
        $startIndex = $index;

        if ($tokens[$startIndex]->isGivenKind(T_ARRAY)) {
            $startIndex = $tokens->getNextTokenOfKind($startIndex, ['(']);
            $endIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $startIndex);
        } else {
            $endIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_ARRAY_SQUARE_BRACE, $startIndex);
        }

        $beforeEndIndex = $tokens->getPrevMeaningfulToken($endIndex);
        $beforeEndToken = $tokens[$beforeEndIndex];

        // if there is some item between braces then add `,` after it
        if (
            $startIndex !== $beforeEndIndex && !$beforeEndToken->equals(',') &&
            ($this->configuration['after_heredoc'] || !$beforeEndToken->isGivenKind(T_END_HEREDOC))
        ) {
            $tokens->insertAt($beforeEndIndex + 1, new Token(','));

            $endToken = $tokens[$endIndex];

            if (!$endToken->isComment() && !$endToken->isWhitespace()) {
                $tokens->ensureWhitespaceAtIndex($endIndex, 1, ' ');
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ListNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\ConfigurationException\InvalidFixerConfigurationException;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\FixerDefinition\VersionSpecification;
use PhpCsFixer\FixerDefinition\VersionSpecificCodeSample;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author SpacePossum
 */
final class ListSyntaxFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    private $candidateTokenKind;

    /**
     * Use 'syntax' => 'long'|'short'.
     *
     * @param null|array<string, string> $configuration
     *
     * @throws InvalidFixerConfigurationException
     */
    public function configure(array $configuration = null)
    {
        parent::configure($configuration);

        $this->candidateTokenKind = 'long' === $this->configuration['syntax'] ? CT::T_DESTRUCTURING_SQUARE_BRACE_OPEN : T_LIST;
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'List (`array` destructuring) assignment should be declared using the configured syntax. Requires PHP >= 7.1.',
            [
                new VersionSpecificCodeSample(
                    "<?php\n[\$sample] = \$array;\n",
                    new VersionSpecification(70100)
                ),
                new VersionSpecificCodeSample(
                    "<?php\nlist(\$sample) = \$array;\n",
                    new VersionSpecification(70100),
                    ['syntax' => 'short']
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before BinaryOperatorSpacesFixer, TernaryOperatorSpacesFixer.
     */
    public function getPriority()
    {
        return 1;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return \PHP_VERSION_ID >= 70100 && $tokens->isTokenKindFound($this->candidateTokenKind);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        for ($index = $tokens->count() - 1; 0 <= $index; --$index) {
            if ($tokens[$index]->isGivenKind($this->candidateTokenKind)) {
                if (T_LIST === $this->candidateTokenKind) {
                    $this->fixToShortSyntax($tokens, $index);
                } else {
                    $this->fixToLongSyntax($tokens, $index);
                }
            }
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('syntax', 'Whether to use the `long` or `short` `list` syntax.'))
                ->setAllowedValues(['long', 'short'])
                ->setDefault('long')
                ->getOption(),
        ]);
    }

    /**
     * @param int $index
     */
    private function fixToLongSyntax(Tokens $tokens, $index)
    {
        static $typesOfInterest = [
            [CT::T_DESTRUCTURING_SQUARE_BRACE_CLOSE],
            '[', // [CT::T_ARRAY_SQUARE_BRACE_OPEN],
        ];

        $closeIndex = $tokens->getNextTokenOfKind($index, $typesOfInterest);
        if (!$tokens[$closeIndex]->isGivenKind(CT::T_DESTRUCTURING_SQUARE_BRACE_CLOSE)) {
            return;
        }

        $tokens[$index] = new Token('(');
        $tokens[$closeIndex] = new Token(')');
        $tokens->insertAt($index, new Token([T_LIST, 'list']));
    }

    /**
     * @param int $index
     */
    private function fixToShortSyntax(Tokens $tokens, $index)
    {
        $openIndex = $tokens->getNextTokenOfKind($index, ['(']);
        $closeIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $openIndex);

        $tokens[$openIndex] = new Token([CT::T_DESTRUCTURING_SQUARE_BRACE_OPEN, '[']);
        $tokens[$closeIndex] = new Token([CT::T_DESTRUCTURING_SQUARE_BRACE_CLOSE, ']']);

        $tokens->clearTokenAndMergeSurroundingWhitespace($index);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Operator;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 * @author SpacePossum
 */
final class ConcatSpaceFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    private $fixCallback;

    /**
     * {@inheritdoc}
     */
    public function configure(array $configuration = null)
    {
        parent::configure($configuration);

        if ('one' === $this->configuration['spacing']) {
            $this->fixCallback = 'fixConcatenationToSingleSpace';
        } else {
            $this->fixCallback = 'fixConcatenationToNoSpace';
        }
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Concatenation should be spaced according configuration.',
            [
                new CodeSample(
                    "<?php\n\$foo = 'bar' . 3 . 'baz'.'qux';\n"
                ),
                new CodeSample(
                    "<?php\n\$foo = 'bar' . 3 . 'baz'.'qux';\n",
                    ['spacing' => 'none']
                ),
                new CodeSample(
                    "<?php\n\$foo = 'bar' . 3 . 'baz'.'qux';\n",
                    ['spacing' => 'one']
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run after SingleLineThrowFixer.
     */
    public function getPriority()
    {
        return 0;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound('.');
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $callBack = $this->fixCallback;
        for ($index = $tokens->count() - 1; $index >= 0; --$index) {
            if ($tokens[$index]->equals('.')) {
                $this->{$callBack}($tokens, $index);
            }
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('spacing', 'Spacing to apply around concatenation operator.'))
                ->setAllowedValues(['one', 'none'])
                ->setDefault('none')
                ->getOption(),
        ]);
    }

    /**
     * @param int $index index of concatenation '.' token
     */
    private function fixConcatenationToNoSpace(Tokens $tokens, $index)
    {
        $prevNonWhitespaceToken = $tokens[$tokens->getPrevNonWhitespace($index)];
        if (!$prevNonWhitespaceToken->isGivenKind([T_LNUMBER, T_COMMENT, T_DOC_COMMENT]) || '/*' === substr($prevNonWhitespaceToken->getContent(), 0, 2)) {
            $tokens->removeLeadingWhitespace($index, " \t");
        }

        if (!$tokens[$tokens->getNextNonWhitespace($index)]->isGivenKind([T_LNUMBER, T_COMMENT, T_DOC_COMMENT])) {
            $tokens->removeTrailingWhitespace($index, " \t");
        }
    }

    /**
     * @param int $index index of concatenation '.' token
     */
    private function fixConcatenationToSingleSpace(Tokens $tokens, $index)
    {
        $this->fixWhiteSpaceAroundConcatToken($tokens, $index, 1);
        $this->fixWhiteSpaceAroundConcatToken($tokens, $index, -1);
    }

    /**
     * @param int $index  index of concatenation '.' token
     * @param int $offset 1 or -1
     */
    private function fixWhiteSpaceAroundConcatToken(Tokens $tokens, $index, $offset)
    {
        $offsetIndex = $index + $offset;

        if (!$tokens[$offsetIndex]->isWhitespace()) {
            $tokens->insertAt($index + (1 === $offset ?: 0), new Token([T_WHITESPACE, ' ']));

            return;
        }

        if (false !== strpos($tokens[$offsetIndex]->getContent(), "\n")) {
            return;
        }

        if ($tokens[$index + $offset * 2]->isComment()) {
            return;
        }

        $tokens[$offsetIndex] = new Token([T_WHITESPACE, ' ']);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Operator;

use PhpCsFixer\AbstractAlignFixerHelper;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Carlos Cirello <carlos.cirello.nl@gmail.com>
 * @author Graham Campbell <graham@alt-three.com>
 *
 * @deprecated
 */
final class AlignEqualsFixerHelper extends AbstractAlignFixerHelper
{
    public function __construct()
    {
        @trigger_error(
            sprintf(
                'The "%s" class is deprecated. You should stop using it, as it will be removed in 3.0 version.',
                __CLASS__
            ),
            E_USER_DEPRECATED
        );
    }

    /**
     * {@inheritdoc}
     */
    protected function injectAlignmentPlaceholders(Tokens $tokens, $startAt, $endAt)
    {
        for ($index = $startAt; $index < $endAt; ++$index) {
            $token = $tokens[$index];

            if ($token->equals('=')) {
                $tokens[$index] = new Token(sprintf(self::ALIGNABLE_PLACEHOLDER, $this->deepestLevel).$token->getContent());

                continue;
            }

            if ($token->isGivenKind(T_FUNCTION)) {
                ++$this->deepestLevel;

                continue;
            }

            if ($token->equals('(')) {
                $index = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $index);

                continue;
            }

            if ($token->equals('[')) {
                $index = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_INDEX_SQUARE_BRACE, $index);

                continue;
            }

            if ($token->isGivenKind(CT::T_ARRAY_SQUARE_BRACE_OPEN)) {
                $index = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_ARRAY_SQUARE_BRACE, $index);

                continue;
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Operator;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Javier Spagnoletti <phansys@gmail.com>
 */
final class NotOperatorWithSuccessorSpaceFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Logical NOT operators (`!`) should have one trailing whitespace.',
            [new CodeSample(
                '<?php

if (!$bar) {
    echo "Help!";
}
'
            )]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run after UnaryOperatorSpacesFixer.
     */
    public function getPriority()
    {
        return -10;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound('!');
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        for ($index = $tokens->count() - 1; $index >= 0; --$index) {
            $token = $tokens[$index];

            if ($token->equals('!')) {
                if (!$tokens[$index + 1]->isWhitespace()) {
                    $tokens->insertAt($index + 1, new Token([T_WHITESPACE, ' ']));
                } else {
                    $tokens[$index + 1] = new Token([T_WHITESPACE, ' ']);
                }
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Operator;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\ConfigurationException\InvalidFixerConfigurationException;
use PhpCsFixer\Console\Command\HelpCommand;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Tokenizer\TokensAnalyzer;
use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 * @author SpacePossum
 */
final class BinaryOperatorSpacesFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * @internal
     */
    const SINGLE_SPACE = 'single_space';

    /**
     * @internal
     */
    const NO_SPACE = 'no_space';

    /**
     * @internal
     */
    const ALIGN = 'align';

    /**
     * @internal
     */
    const ALIGN_SINGLE_SPACE = 'align_single_space';

    /**
     * @internal
     */
    const ALIGN_SINGLE_SPACE_MINIMAL = 'align_single_space_minimal';

    /**
     * @internal
     * @const Placeholder used as anchor for right alignment.
     */
    const ALIGN_PLACEHOLDER = "\x2 ALIGNABLE%d \x3";

    /**
     * Keep track of the deepest level ever achieved while
     * parsing the code. Used later to replace alignment
     * placeholders with spaces.
     *
     * @var int
     */
    private $deepestLevel;

    /**
     * Level counter of the current nest level.
     * So one level alignments are not mixed with
     * other level ones.
     *
     * @var int
     */
    private $currentLevel;

    private static $allowedValues = [
        self::ALIGN,
        self::ALIGN_SINGLE_SPACE,
        self::ALIGN_SINGLE_SPACE_MINIMAL,
        self::SINGLE_SPACE,
        self::NO_SPACE,
        null,
    ];

    /**
     * @var string[]
     */
    private static $supportedOperators = [
        '=',
        '*',
        '/',
        '%',
        '<',
        '>',
        '|',
        '^',
        '+',
        '-',
        '&',
        '&=',
        '&&',
        '||',
        '.=',
        '/=',
        '=>',
        '==',
        '>=',
        '===',
        '!=',
        '<>',
        '!==',
        '<=',
        'and',
        'or',
        'xor',
        '-=',
        '%=',
        '*=',
        '|=',
        '+=',
        '<<',
        '<<=',
        '>>',
        '>>=',
        '^=',
        '**',
        '**=',
        '<=>',
        '??',
        '??=',
    ];

    /**
     * @var TokensAnalyzer
     */
    private $tokensAnalyzer;

    /**
     * @var array<string, string>
     */
    private $alignOperatorTokens = [];

    /**
     * @var array<string, string>
     */
    private $operators = [];

    /**
     * {@inheritdoc}
     */
    public function configure(array $configuration = null)
    {
        if (
            null !== $configuration &&
            (\array_key_exists('align_equals', $configuration) || \array_key_exists('align_double_arrow', $configuration))
        ) {
            $configuration = $this->resolveOldConfig($configuration);
        }

        parent::configure($configuration);

        $this->operators = $this->resolveOperatorsFromConfig();
    }

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Binary operators should be surrounded by space as configured.',
            [
                new CodeSample(
                    "<?php\n\$a= 1  + \$b^ \$d !==  \$e or   \$f;\n"
                ),
                new CodeSample(
                    '<?php
$aa=  1;
$b=2;

$c = $d    xor    $e;
$f    -=  1;
',
                    ['operators' => ['=' => 'align', 'xor' => null]]
                ),
                new CodeSample(
                    '<?php
$a = $b +=$c;
$d = $ee+=$f;

$g = $b     +=$c;
$h = $ee+=$f;
',
                    ['operators' => ['+=' => 'align_single_space']]
                ),
                new CodeSample(
                    '<?php
$a = $b===$c;
$d = $f   ===  $g;
$h = $i===  $j;
',
                    ['operators' => ['===' => 'align_single_space_minimal']]
                ),
                new CodeSample(
                    '<?php
$foo = \json_encode($bar, JSON_PRESERVE_ZERO_FRACTION | JSON_PRETTY_PRINT);
',
                    ['operators' => ['|' => 'no_space']]
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run after ArrayIndentationFixer, ArraySyntaxFixer, ListSyntaxFixer, NoMultilineWhitespaceAroundDoubleArrowFixer, PowToExponentiationFixer, StandardizeNotEqualsFixer, StrictComparisonFixer.
     */
    public function getPriority()
    {
        return -32;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $this->tokensAnalyzer = new TokensAnalyzer($tokens);

        // last and first tokens cannot be an operator
        for ($index = $tokens->count() - 2; $index > 0; --$index) {
            if (!$this->tokensAnalyzer->isBinaryOperator($index)) {
                continue;
            }

            if ('=' === $tokens[$index]->getContent()) {
                $isDeclare = $this->isEqualPartOfDeclareStatement($tokens, $index);
                if (false === $isDeclare) {
                    $this->fixWhiteSpaceAroundOperator($tokens, $index);
                } else {
                    $index = $isDeclare; // skip `declare(foo ==bar)`, see `declare_equal_normalize`
                }
            } else {
                $this->fixWhiteSpaceAroundOperator($tokens, $index);
            }

            // previous of binary operator is now never an operator / previous of declare statement cannot be an operator
            --$index;
        }

        if (\count($this->alignOperatorTokens)) {
            $this->fixAlignment($tokens, $this->alignOperatorTokens);
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('default', 'Default fix strategy.'))
                ->setDefault(self::SINGLE_SPACE)
                ->setAllowedValues(self::$allowedValues)
                ->getOption(),
            (new FixerOptionBuilder('operators', 'Dictionary of `binary operator` => `fix strategy` values that differ from the default strategy.'))
                ->setAllowedTypes(['array'])
                ->setAllowedValues([static function ($option) {
                    foreach ($option as $operator => $value) {
                        if (!\in_array($operator, self::$supportedOperators, true)) {
                            throw new InvalidOptionsException(
                                sprintf(
                                    'Unexpected "operators" key, expected any of "%s", got "%s".',
                                    implode('", "', self::$supportedOperators),
                                    \is_object($operator) ? \get_class($operator) : \gettype($operator).'#'.$operator
                                )
                            );
                        }

                        if (!\in_array($value, self::$allowedValues, true)) {
                            throw new InvalidOptionsException(
                                sprintf(
                                    'Unexpected value for operator "%s", expected any of "%s", got "%s".',
                                    $operator,
                                    implode('", "', self::$allowedValues),
                                    \is_object($value) ? \get_class($value) : (null === $value ? 'null' : \gettype($value).'#'.$value)
                                )
                            );
                        }
                    }

                    return true;
                }])
                ->setDefault([])
                ->getOption(),
            // add deprecated options as BC layer
            (new FixerOptionBuilder('align_double_arrow', 'Whether to apply, remove or ignore double arrows alignment.'))
                ->setDefault(false)
                ->setAllowedValues([true, false, null])
                ->setDeprecationMessage('Use options `operators` and `default` instead.')
                ->getOption(),
            (new FixerOptionBuilder('align_equals', 'Whether to apply, remove or ignore equals alignment.'))
                ->setDefault(false)
                ->setAllowedValues([true, false, null])
                ->setDeprecationMessage('Use options `operators` and `default` instead.')
                ->getOption(),
        ]);
    }

    /**
     * @param int $index
     */
    private function fixWhiteSpaceAroundOperator(Tokens $tokens, $index)
    {
        $tokenContent = strtolower($tokens[$index]->getContent());

        if (!\array_key_exists($tokenContent, $this->operators)) {
            return; // not configured to be changed
        }

        if (self::SINGLE_SPACE === $this->operators[$tokenContent]) {
            $this->fixWhiteSpaceAroundOperatorToSingleSpace($tokens, $index);

            return;
        }

        if (self::NO_SPACE === $this->operators[$tokenContent]) {
            $this->fixWhiteSpaceAroundOperatorToNoSpace($tokens, $index);

            return;
        }

        // schedule for alignment
        $this->alignOperatorTokens[$tokenContent] = $this->operators[$tokenContent];

        if (self::ALIGN === $this->operators[$tokenContent]) {
            return;
        }

        // fix white space after operator
        if ($tokens[$index + 1]->isWhitespace()) {
            if (self::ALIGN_SINGLE_SPACE_MINIMAL === $this->operators[$tokenContent]) {
                $tokens[$index + 1] = new Token([T_WHITESPACE, ' ']);
            }

            return;
        }

        $tokens->insertAt($index + 1, new Token([T_WHITESPACE, ' ']));
    }

    /**
     * @param int $index
     */
    private function fixWhiteSpaceAroundOperatorToSingleSpace(Tokens $tokens, $index)
    {
        // fix white space after operator
        if ($tokens[$index + 1]->isWhitespace()) {
            $content = $tokens[$index + 1]->getContent();
            if (' ' !== $content && false === strpos($content, "\n") && !$tokens[$tokens->getNextNonWhitespace($index + 1)]->isComment()) {
                $tokens[$index + 1] = new Token([T_WHITESPACE, ' ']);
            }
        } else {
            $tokens->insertAt($index + 1, new Token([T_WHITESPACE, ' ']));
        }

        // fix white space before operator
        if ($tokens[$index - 1]->isWhitespace()) {
            $content = $tokens[$index - 1]->getContent();
            if (' ' !== $content && false === strpos($content, "\n") && !$tokens[$tokens->getPrevNonWhitespace($index - 1)]->isComment()) {
                $tokens[$index - 1] = new Token([T_WHITESPACE, ' ']);
            }
        } else {
            $tokens->insertAt($index, new Token([T_WHITESPACE, ' ']));
        }
    }

    /**
     * @param int $index
     */
    private function fixWhiteSpaceAroundOperatorToNoSpace(Tokens $tokens, $index)
    {
        // fix white space after operator
        if ($tokens[$index + 1]->isWhitespace()) {
            $content = $tokens[$index + 1]->getContent();
            if (false === strpos($content, "\n") && !$tokens[$tokens->getNextNonWhitespace($index + 1)]->isComment()) {
                $tokens->clearAt($index + 1);
            }
        }

        // fix white space before operator
        if ($tokens[$index - 1]->isWhitespace()) {
            $content = $tokens[$index - 1]->getContent();
            if (false === strpos($content, "\n") && !$tokens[$tokens->getPrevNonWhitespace($index - 1)]->isComment()) {
                $tokens->clearAt($index - 1);
            }
        }
    }

    /**
     * @param int $index
     *
     * @return false|int index of T_DECLARE where the `=` belongs to or `false`
     */
    private function isEqualPartOfDeclareStatement(Tokens $tokens, $index)
    {
        $prevMeaningfulIndex = $tokens->getPrevMeaningfulToken($index);
        if ($tokens[$prevMeaningfulIndex]->isGivenKind(T_STRING)) {
            $prevMeaningfulIndex = $tokens->getPrevMeaningfulToken($prevMeaningfulIndex);
            if ($tokens[$prevMeaningfulIndex]->equals('(')) {
                $prevMeaningfulIndex = $tokens->getPrevMeaningfulToken($prevMeaningfulIndex);
                if ($tokens[$prevMeaningfulIndex]->isGivenKind(T_DECLARE)) {
                    return $prevMeaningfulIndex;
                }
            }
        }

        return false;
    }

    /**
     * @return array<string, string>
     */
    private function resolveOperatorsFromConfig()
    {
        $operators = [];

        if (null !== $this->configuration['default']) {
            foreach (self::$supportedOperators as $operator) {
                $operators[$operator] = $this->configuration['default'];
            }
        }

        foreach ($this->configuration['operators'] as $operator => $value) {
            if (null === $value) {
                unset($operators[$operator]);
            } else {
                $operators[$operator] = $value;
            }
        }

        if (!\defined('T_SPACESHIP')) {
            unset($operators['<=>']);
        }

        if (!\defined('T_COALESCE')) {
            unset($operators['??']);
        }

        if (!\defined('T_COALESCE_EQUAL')) {
            unset($operators['??=']);
        }

        return $operators;
    }

    /**
     * @return array
     */
    private function resolveOldConfig(array $configuration)
    {
        $newConfig = [
            'operators' => [],
        ];

        foreach ($configuration as $name => $setting) {
            if ('align_double_arrow' === $name) {
                if (true === $configuration[$name]) {
                    $newConfig['operators']['=>'] = self::ALIGN;
                } elseif (false === $configuration[$name]) {
                    $newConfig['operators']['=>'] = self::SINGLE_SPACE;
                } elseif (null !== $configuration[$name]) {
                    throw new InvalidFixerConfigurationException(
                        $this->getName(),
                        sprintf(
                            'Invalid configuration: The option "align_double_arrow" with value %s is invalid. Accepted values are: true, false, null.',
                            $configuration[$name]
                        )
                    );
                }
            } elseif ('align_equals' === $name) {
                if (true === $configuration[$name]) {
                    $newConfig['operators']['='] = self::ALIGN;
                } elseif (false === $configuration[$name]) {
                    $newConfig['operators']['='] = self::SINGLE_SPACE;
                } elseif (null !== $configuration[$name]) {
                    throw new InvalidFixerConfigurationException(
                        $this->getName(),
                        sprintf(
                            'Invalid configuration: The option "align_equals" with value %s is invalid. Accepted values are: true, false, null.',
                            $configuration[$name]
                        )
                    );
                }
            } else {
                throw new InvalidFixerConfigurationException($this->getName(), 'Mixing old configuration with new configuration is not allowed.');
            }
        }

        $message = sprintf(
            'Given configuration is deprecated and will be removed in 3.0. Use configuration %s as replacement for %s.',
            HelpCommand::toString($newConfig),
            HelpCommand::toString($configuration)
        );

        if (getenv('PHP_CS_FIXER_FUTURE_MODE')) {
            throw new InvalidFixerConfigurationException($this->getName(), "{$message} This check was performed as `PHP_CS_FIXER_FUTURE_MODE` env var is set.");
        }

        @trigger_error($message, E_USER_DEPRECATED);

        return $newConfig;
    }

    // Alignment logic related methods

    /**
     * @param array<string, string> $toAlign
     */
    private function fixAlignment(Tokens $tokens, array $toAlign)
    {
        $this->deepestLevel = 0;
        $this->currentLevel = 0;

        foreach ($toAlign as $tokenContent => $alignStrategy) {
            // This fixer works partially on Tokens and partially on string representation of code.
            // During the process of fixing internal state of single Token may be affected by injecting ALIGN_PLACEHOLDER to its content.
            // The placeholder will be resolved by `replacePlaceholders` method by removing placeholder or changing it into spaces.
            // That way of fixing the code causes disturbances in marking Token as changed - if code is perfectly valid then placeholder
            // still be injected and removed, which will cause the `changed` flag to be set.
            // To handle that unwanted behavior we work on clone of Tokens collection and then override original collection with fixed collection.
            $tokensClone = clone $tokens;

            if ('=>' === $tokenContent) {
                $this->injectAlignmentPlaceholdersForArrow($tokensClone, 0, \count($tokens));
            } else {
                $this->injectAlignmentPlaceholders($tokensClone, 0, \count($tokens), $tokenContent);
            }

            // for all tokens that should be aligned but do not have anything to align with, fix spacing if needed
            if (self::ALIGN_SINGLE_SPACE === $alignStrategy || self::ALIGN_SINGLE_SPACE_MINIMAL === $alignStrategy) {
                if ('=>' === $tokenContent) {
                    for ($index = $tokens->count() - 2; $index > 0; --$index) {
                        if ($tokens[$index]->isGivenKind(T_DOUBLE_ARROW)) { // always binary operator, never part of declare statement
                            $this->fixWhiteSpaceBeforeOperator($tokensClone, $index, $alignStrategy);
                        }
                    }
                } elseif ('=' === $tokenContent) {
                    for ($index = $tokens->count() - 2; $index > 0; --$index) {
                        if ('=' === $tokens[$index]->getContent() && !$this->isEqualPartOfDeclareStatement($tokens, $index) && $this->tokensAnalyzer->isBinaryOperator($index)) {
                            $this->fixWhiteSpaceBeforeOperator($tokensClone, $index, $alignStrategy);
                        }
                    }
                } else {
                    for ($index = $tokens->count() - 2; $index > 0; --$index) {
                        $content = $tokens[$index]->getContent();
                        if (strtolower($content) === $tokenContent && $this->tokensAnalyzer->isBinaryOperator($index)) { // never part of declare statement
                            $this->fixWhiteSpaceBeforeOperator($tokensClone, $index, $alignStrategy);
                        }
                    }
                }
            }

            $tokens->setCode($this->replacePlaceholders($tokensClone, $alignStrategy));
        }
    }

    /**
     * @param int    $startAt
     * @param int    $endAt
     * @param string $tokenContent
     */
    private function injectAlignmentPlaceholders(Tokens $tokens, $startAt, $endAt, $tokenContent)
    {
        for ($index = $startAt; $index < $endAt; ++$index) {
            $token = $tokens[$index];

            $content = $token->getContent();
            if (
                strtolower($content) === $tokenContent
                && $this->tokensAnalyzer->isBinaryOperator($index)
                && ('=' !== $content || !$this->isEqualPartOfDeclareStatement($tokens, $index))
            ) {
                $tokens[$index] = new Token(sprintf(self::ALIGN_PLACEHOLDER, $this->deepestLevel).$content);

                continue;
            }

            if ($token->isGivenKind(T_FUNCTION)) {
                ++$this->deepestLevel;

                continue;
            }

            if ($token->equals('(')) {
                $index = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $index);

                continue;
            }

            if ($token->equals('[')) {
                $index = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_INDEX_SQUARE_BRACE, $index);

                continue;
            }

            if ($token->isGivenKind(CT::T_ARRAY_SQUARE_BRACE_OPEN)) {
                $index = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_ARRAY_SQUARE_BRACE, $index);

                continue;
            }
        }
    }

    /**
     * @param int $startAt
     * @param int $endAt
     */
    private function injectAlignmentPlaceholdersForArrow(Tokens $tokens, $startAt, $endAt)
    {
        for ($index = $startAt; $index < $endAt; ++$index) {
            $token = $tokens[$index];

            if ($token->isGivenKind([T_FOREACH, T_FOR, T_WHILE, T_IF, T_SWITCH])) {
                $index = $tokens->getNextMeaningfulToken($index);
                $index = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $index);

                continue;
            }

            if ($token->isGivenKind(T_ARRAY)) { // don't use "$tokens->isArray()" here, short arrays are handled in the next case
                $from = $tokens->getNextMeaningfulToken($index);
                $until = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $from);
                $index = $until;

                $this->injectArrayAlignmentPlaceholders($tokens, $from + 1, $until - 1);

                continue;
            }

            if ($token->isGivenKind(CT::T_ARRAY_SQUARE_BRACE_OPEN)) {
                $from = $index;
                $until = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_ARRAY_SQUARE_BRACE, $from);
                $index = $until;

                $this->injectArrayAlignmentPlaceholders($tokens, $from + 1, $until - 1);

                continue;
            }

            if ($token->isGivenKind(T_DOUBLE_ARROW)) { // no need to analyze for `isBinaryOperator` (always true), nor if part of declare statement (not valid PHP)
                $tokenContent = sprintf(self::ALIGN_PLACEHOLDER, $this->currentLevel).$token->getContent();

                $nextToken = $tokens[$index + 1];
                if (!$nextToken->isWhitespace()) {
                    $tokenContent .= ' ';
                } elseif ($nextToken->isWhitespace(" \t")) {
                    $tokens[$index + 1] = new Token([T_WHITESPACE, ' ']);
                }

                $tokens[$index] = new Token([T_DOUBLE_ARROW, $tokenContent]);

                continue;
            }

            if ($token->equals(';')) {
                ++$this->deepestLevel;
                ++$this->currentLevel;

                continue;
            }

            if ($token->equals(',')) {
                for ($i = $index; $i < $endAt - 1; ++$i) {
                    if (false !== strpos($tokens[$i - 1]->getContent(), "\n")) {
                        break;
                    }

                    if ($tokens[$i + 1]->isGivenKind([T_ARRAY, CT::T_ARRAY_SQUARE_BRACE_OPEN])) {
                        $arrayStartIndex = $tokens[$i + 1]->isGivenKind(T_ARRAY)
                            ? $tokens->getNextMeaningfulToken($i + 1)
                            : $i + 1
                        ;
                        $blockType = Tokens::detectBlockType($tokens[$arrayStartIndex]);
                        $arrayEndIndex = $tokens->findBlockEnd($blockType['type'], $arrayStartIndex);

                        if ($tokens->isPartialCodeMultiline($arrayStartIndex, $arrayEndIndex)) {
                            break;
                        }
                    }

                    ++$index;
                }
            }
        }
    }

    /**
     * @param int $from
     * @param int $until
     */
    private function injectArrayAlignmentPlaceholders(Tokens $tokens, $from, $until)
    {
        // Only inject placeholders for multi-line arrays
        if ($tokens->isPartialCodeMultiline($from, $until)) {
            ++$this->deepestLevel;
            ++$this->currentLevel;
            $this->injectAlignmentPlaceholdersForArrow($tokens, $from, $until);
            --$this->currentLevel;
        }
    }

    /**
     * @param int    $index
     * @param string $alignStrategy
     */
    private function fixWhiteSpaceBeforeOperator(Tokens $tokens, $index, $alignStrategy)
    {
        // fix white space after operator is not needed as BinaryOperatorSpacesFixer took care of this (if strategy is _not_ ALIGN)
        if (!$tokens[$index - 1]->isWhitespace()) {
            $tokens->insertAt($index, new Token([T_WHITESPACE, ' ']));

            return;
        }

        if (self::ALIGN_SINGLE_SPACE_MINIMAL !== $alignStrategy || $tokens[$tokens->getPrevNonWhitespace($index - 1)]->isComment()) {
            return;
        }

        $content = $tokens[$index - 1]->getContent();
        if (' ' !== $content && false === strpos($content, "\n")) {
            $tokens[$index - 1] = new Token([T_WHITESPACE, ' ']);
        }
    }

    /**
     * Look for group of placeholders and provide vertical alignment.
     *
     * @param string $alignStrategy
     *
     * @return string
     */
    private function replacePlaceholders(Tokens $tokens, $alignStrategy)
    {
        $tmpCode = $tokens->generateCode();

        for ($j = 0; $j <= $this->deepestLevel; ++$j) {
            $placeholder = sprintf(self::ALIGN_PLACEHOLDER, $j);

            if (false === strpos($tmpCode, $placeholder)) {
                continue;
            }

            $lines = explode("\n", $tmpCode);
            $groups = [];
            $groupIndex = 0;
            $groups[$groupIndex] = [];

            foreach ($lines as $index => $line) {
                if (substr_count($line, $placeholder) > 0) {
                    $groups[$groupIndex][] = $index;
                } else {
                    ++$groupIndex;
                    $groups[$groupIndex] = [];
                }
            }

            foreach ($groups as $group) {
                if (\count($group) < 1) {
                    continue;
                }

                if (self::ALIGN !== $alignStrategy) {
                    // move place holders to match strategy
                    foreach ($group as $index) {
                        $currentPosition = strpos($lines[$index], $placeholder);
                        $before = substr($lines[$index], 0, $currentPosition);

                        if (self::ALIGN_SINGLE_SPACE === $alignStrategy) {
                            if (1 > \strlen($before) || ' ' !== substr($before, -1)) { // if last char of before-content is not ' '; add it
                                $before .= ' ';
                            }
                        } elseif (self::ALIGN_SINGLE_SPACE_MINIMAL === $alignStrategy) {
                            if (1 !== Preg::match('/^\h+$/', $before)) { // if indent; do not move, leave to other fixer
                                $before = rtrim($before).' ';
                            }
                        }

                        $lines[$index] = $before.substr($lines[$index], $currentPosition);
                    }
                }

                $rightmostSymbol = 0;
                foreach ($group as $index) {
                    $rightmostSymbol = max($rightmostSymbol, strpos(utf8_decode($lines[$index]), $placeholder));
                }

                foreach ($group as $index) {
                    $line = $lines[$index];
                    $currentSymbol = strpos(utf8_decode($line), $placeholder);
                    $delta = abs($rightmostSymbol - $currentSymbol);

                    if ($delta > 0) {
                        $line = str_replace($placeholder, str_repeat(' ', $delta).$placeholder, $line);
                        $lines[$index] = $line;
                    }
                }
            }

            $tmpCode = str_replace($placeholder, '', implode("\n", $lines));
        }

        return $tmpCode;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Operator;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class TernaryOperatorSpacesFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Standardize spaces around ternary operator.',
            [new CodeSample("<?php \$a = \$a   ?1 :0;\n")]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run after ArraySyntaxFixer, ListSyntaxFixer.
     */
    public function getPriority()
    {
        return 0;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAllTokenKindsFound(['?', ':']);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $ternaryLevel = 0;

        foreach ($tokens as $index => $token) {
            if ($token->equals('?')) {
                ++$ternaryLevel;

                $nextNonWhitespaceIndex = $tokens->getNextNonWhitespace($index);
                $nextNonWhitespaceToken = $tokens[$nextNonWhitespaceIndex];

                if ($nextNonWhitespaceToken->equals(':')) {
                    // for `$a ?: $b` remove spaces between `?` and `:`
                    if ($tokens[$index + 1]->isWhitespace()) {
                        $tokens->clearAt($index + 1);
                    }
                } else {
                    // for `$a ? $b : $c` ensure space after `?`
                    $this->ensureWhitespaceExistence($tokens, $index + 1, true);
                }

                // for `$a ? $b : $c` ensure space before `?`
                $this->ensureWhitespaceExistence($tokens, $index - 1, false);

                continue;
            }

            if ($ternaryLevel && $token->equals(':')) {
                // for `$a ? $b : $c` ensure space after `:`
                $this->ensureWhitespaceExistence($tokens, $index + 1, true);

                $prevNonWhitespaceToken = $tokens[$tokens->getPrevNonWhitespace($index)];

                if (!$prevNonWhitespaceToken->equals('?')) {
                    // for `$a ? $b : $c` ensure space before `:`
                    $this->ensureWhitespaceExistence($tokens, $index - 1, false);
                }

                --$ternaryLevel;
            }
        }
    }

    /**
     * @param int  $index
     * @param bool $after
     */
    private function ensureWhitespaceExistence(Tokens $tokens, $index, $after)
    {
        if ($tokens[$index]->isWhitespace()) {
            if (
                false === strpos($tokens[$index]->getContent(), "\n")
                && !$tokens[$index - 1]->isComment()
            ) {
                $tokens[$index] = new Token([T_WHITESPACE, ' ']);
            }

            return;
        }

        $index += $after ? 0 : 1;
        $tokens->insertAt($index, new Token([T_WHITESPACE, ' ']));
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Operator;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\FixerDefinition\VersionSpecification;
use PhpCsFixer\FixerDefinition\VersionSpecificCodeSample;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Filippo Tessarotto <zoeslam@gmail.com>
 */
final class TernaryToNullCoalescingFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Use `null` coalescing operator `??` where possible. Requires PHP >= 7.0.',
            [
                new VersionSpecificCodeSample(
                    "<?php\n\$sample = isset(\$a) ? \$a : \$b;\n",
                    new VersionSpecification(70000)
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return \PHP_VERSION_ID >= 70000 && $tokens->isTokenKindFound(T_ISSET);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $issetIndexes = array_keys($tokens->findGivenKind(T_ISSET));
        while ($issetIndex = array_pop($issetIndexes)) {
            $this->fixIsset($tokens, $issetIndex);
        }
    }

    /**
     * @param int $index of `T_ISSET` token
     */
    private function fixIsset(Tokens $tokens, $index)
    {
        $prevTokenIndex = $tokens->getPrevMeaningfulToken($index);
        if ($this->isHigherPrecedenceAssociativityOperator($tokens[$prevTokenIndex])) {
            return;
        }

        $startBraceIndex = $tokens->getNextTokenOfKind($index, ['(']);
        $endBraceIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $startBraceIndex);

        $ternaryQuestionMarkIndex = $tokens->getNextMeaningfulToken($endBraceIndex);
        if (!$tokens[$ternaryQuestionMarkIndex]->equals('?')) {
            return; // we are not in a ternary operator
        }

        // search what is inside the isset()
        $issetTokens = $this->getMeaningfulSequence($tokens, $startBraceIndex, $endBraceIndex);
        if ($this->hasChangingContent($issetTokens)) {
            return; // some weird stuff inside the isset
        }

        // search what is inside the middle argument of ternary operator
        $ternaryColonIndex = $tokens->getNextTokenOfKind($ternaryQuestionMarkIndex, [':']);
        $ternaryFirstOperandTokens = $this->getMeaningfulSequence($tokens, $ternaryQuestionMarkIndex, $ternaryColonIndex);

        if ($issetTokens->generateCode() !== $ternaryFirstOperandTokens->generateCode()) {
            return; // regardless of non-meaningful tokens, the operands are different
        }

        $ternaryFirstOperandIndex = $tokens->getNextMeaningfulToken($ternaryQuestionMarkIndex);

        // preserve comments and spaces
        $comments = [];
        $commentStarted = false;
        for ($loopIndex = $index; $loopIndex < $ternaryFirstOperandIndex; ++$loopIndex) {
            if ($tokens[$loopIndex]->isComment()) {
                $comments[] = $tokens[$loopIndex];
                $commentStarted = true;
            } elseif ($commentStarted) {
                if ($tokens[$loopIndex]->isWhitespace()) {
                    $comments[] = $tokens[$loopIndex];
                }

                $commentStarted = false;
            }
        }

        $tokens[$ternaryColonIndex] = new Token([T_COALESCE, '??']);
        $tokens->overrideRange($index, $ternaryFirstOperandIndex - 1, $comments);
    }

    /**
     * Get the sequence of meaningful tokens and returns a new Tokens instance.
     *
     * @param int $start start index
     * @param int $end   end index
     *
     * @return Tokens
     */
    private function getMeaningfulSequence(Tokens $tokens, $start, $end)
    {
        $sequence = [];
        $index = $start;
        while ($index < $end) {
            $index = $tokens->getNextMeaningfulToken($index);
            if ($index >= $end || null === $index) {
                break;
            }

            $sequence[] = $tokens[$index];
        }

        return Tokens::fromArray($sequence);
    }

    /**
     * Check if the requested token is an operator computed
     * before the ternary operator along with the `isset()`.
     *
     * @return bool
     */
    private function isHigherPrecedenceAssociativityOperator(Token $token)
    {
        static $operatorsPerId = [
            T_ARRAY_CAST => true,
            T_BOOLEAN_AND => true,
            T_BOOLEAN_OR => true,
            T_BOOL_CAST => true,
            T_COALESCE => true,
            T_DEC => true,
            T_DOUBLE_CAST => true,
            T_INC => true,
            T_INT_CAST => true,
            T_IS_EQUAL => true,
            T_IS_GREATER_OR_EQUAL => true,
            T_IS_IDENTICAL => true,
            T_IS_NOT_EQUAL => true,
            T_IS_NOT_IDENTICAL => true,
            T_IS_SMALLER_OR_EQUAL => true,
            T_OBJECT_CAST => true,
            T_POW => true,
            T_SL => true,
            T_SPACESHIP => true,
            T_SR => true,
            T_STRING_CAST => true,
            T_UNSET_CAST => true,
        ];

        static $operatorsPerContent = [
            '!',
            '%',
            '&',
            '*',
            '+',
            '-',
            '/',
            ':',
            '^',
            '|',
            '~',
        ];

        return isset($operatorsPerId[$token->getId()]) || $token->equalsAny($operatorsPerContent);
    }

    /**
     * Check if the `isset()` content may change if called multiple times.
     *
     * @param Tokens $tokens The original token list
     *
     * @return bool
     */
    private function hasChangingContent(Tokens $tokens)
    {
        static $operatorsPerId = [
            T_DEC,
            T_INC,
            T_STRING,
            T_YIELD,
            T_YIELD_FROM,
        ];

        foreach ($tokens as $token) {
            if ($token->isGivenKind($operatorsPerId) || $token->equals('(')) {
                return true;
            }
        }

        return false;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Operator;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Tokenizer\TokensAnalyzer;

/**
 * @author Gregor Harlan <gharlan@web.de>
 */
final class UnaryOperatorSpacesFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Unary operators should be placed adjacent to their operands.',
            [new CodeSample("<?php\n\$sample ++;\n-- \$sample;\n\$sample = ! ! \$a;\n\$sample = ~  \$c;\nfunction & foo(){}\n")]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before NotOperatorWithSpaceFixer, NotOperatorWithSuccessorSpaceFixer.
     */
    public function getPriority()
    {
        return 0;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $tokensAnalyzer = new TokensAnalyzer($tokens);

        for ($index = $tokens->count() - 1; $index >= 0; --$index) {
            if ($tokensAnalyzer->isUnarySuccessorOperator($index)) {
                if (!$tokens[$tokens->getPrevNonWhitespace($index)]->isComment()) {
                    $tokens->removeLeadingWhitespace($index);
                }

                continue;
            }

            if ($tokensAnalyzer->isUnaryPredecessorOperator($index)) {
                $tokens->removeTrailingWhitespace($index);

                continue;
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Operator;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Tokenizer\TokensAnalyzer;

/**
 * @author Gregor Harlan <gharlan@web.de>
 * @author Kuba Werłos <werlos@gmail.com>
 */
final class IncrementStyleFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * @internal
     */
    const STYLE_PRE = 'pre';

    /**
     * @internal
     */
    const STYLE_POST = 'post';

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Pre- or post-increment and decrement operators should be used if possible.',
            [
                new CodeSample("<?php\n\$a++;\n\$b--;\n"),
                new CodeSample(
                    "<?php\n++\$a;\n--\$b;\n",
                    ['style' => self::STYLE_POST]
                ),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run after StandardizeIncrementFixer.
     */
    public function getPriority()
    {
        return 0;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound([T_INC, T_DEC]);
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('style', 'Whether to use pre- or post-increment and decrement operators.'))
                ->setAllowedValues([self::STYLE_PRE, self::STYLE_POST])
                ->setDefault(self::STYLE_PRE)
                ->getOption(),
        ]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $tokensAnalyzer = new TokensAnalyzer($tokens);

        for ($index = $tokens->count() - 1; 0 <= $index; --$index) {
            $token = $tokens[$index];

            if (!$token->isGivenKind([T_INC, T_DEC])) {
                continue;
            }

            if (self::STYLE_PRE === $this->configuration['style'] && $tokensAnalyzer->isUnarySuccessorOperator($index)) {
                $nextToken = $tokens[$tokens->getNextMeaningfulToken($index)];
                if (!$nextToken->equalsAny([';', ')'])) {
                    continue;
                }

                $startIndex = $this->findStart($tokens, $index);

                $prevToken = $tokens[$tokens->getPrevMeaningfulToken($startIndex)];
                if ($prevToken->equalsAny([';', '{', '}', [T_OPEN_TAG], ')'])) {
                    $tokens->clearAt($index);
                    $tokens->insertAt($startIndex, clone $token);
                }
            } elseif (self::STYLE_POST === $this->configuration['style'] && $tokensAnalyzer->isUnaryPredecessorOperator($index)) {
                $prevToken = $tokens[$tokens->getPrevMeaningfulToken($index)];
                if (!$prevToken->equalsAny([';', '{', '}', [T_OPEN_TAG], ')'])) {
                    continue;
                }

                $endIndex = $this->findEnd($tokens, $index);

                $nextToken = $tokens[$tokens->getNextMeaningfulToken($endIndex)];
                if ($nextToken->equalsAny([';', ')'])) {
                    $tokens->clearAt($index);
                    $tokens->insertAt($tokens->getNextNonWhitespace($endIndex), clone $token);
                }
            }
        }
    }

    /**
     * @param int $index
     *
     * @return int
     */
    private function findEnd(Tokens $tokens, $index)
    {
        $nextIndex = $tokens->getNextMeaningfulToken($index);
        $nextToken = $tokens[$nextIndex];

        while ($nextToken->equalsAny([
            '$',
            '[',
            [CT::T_DYNAMIC_PROP_BRACE_OPEN],
            [CT::T_DYNAMIC_VAR_BRACE_OPEN],
            [CT::T_ARRAY_INDEX_CURLY_BRACE_OPEN],
            [T_NS_SEPARATOR],
            [T_STATIC],
            [T_STRING],
            [T_VARIABLE],
        ])) {
            $blockType = Tokens::detectBlockType($nextToken);
            if (null !== $blockType) {
                $nextIndex = $tokens->findBlockEnd($blockType['type'], $nextIndex);
            }
            $index = $nextIndex;
            $nextIndex = $tokens->getNextMeaningfulToken($nextIndex);
            $nextToken = $tokens[$nextIndex];
        }

        if ($nextToken->isGivenKind(T_OBJECT_OPERATOR)) {
            return $this->findEnd($tokens, $nextIndex);
        }

        if ($nextToken->isGivenKind(T_PAAMAYIM_NEKUDOTAYIM)) {
            return $this->findEnd($tokens, $tokens->getNextMeaningfulToken($nextIndex));
        }

        return $index;
    }

    /**
     * @param int $index
     *
     * @return int
     */
    private function findStart(Tokens $tokens, $index)
    {
        do {
            $index = $tokens->getPrevMeaningfulToken($index);
            $token = $tokens[$index];

            $blockType = Tokens::detectBlockType($token);
            if (null !== $blockType && !$blockType['isStart']) {
                $index = $tokens->findBlockStart($blockType['type'], $index);
                $token = $tokens[$index];
            }
        } while (!$token->equalsAny(['$', [T_VARIABLE]]));

        $prevIndex = $tokens->getPrevMeaningfulToken($index);
        $prevToken = $tokens[$prevIndex];

        if ($prevToken->equals('$')) {
            $index = $prevIndex;
            $prevIndex = $tokens->getPrevMeaningfulToken($index);
            $prevToken = $tokens[$prevIndex];
        }

        if ($prevToken->isGivenKind(T_OBJECT_OPERATOR)) {
            return $this->findStart($tokens, $prevIndex);
        }

        if ($prevToken->isGivenKind(T_PAAMAYIM_NEKUDOTAYIM)) {
            $prevPrevIndex = $tokens->getPrevMeaningfulToken($prevIndex);
            if (!$tokens[$prevPrevIndex]->isGivenKind([T_STATIC, T_STRING])) {
                return $this->findStart($tokens, $prevIndex);
            }

            $index = $tokens->getTokenNotOfKindSibling($prevIndex, -1, [[T_NS_SEPARATOR], [T_STATIC], [T_STRING]]);
            $index = $tokens->getNextMeaningfulToken($index);
        }

        return $index;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Operator;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Haralan Dobrev <hkdobrev@gmail.com>
 */
final class LogicalOperatorsFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Use `&&` and `||` logical operators instead of `and` and `or`.',
            [
                new CodeSample(
                    '<?php

if ($a == "foo" and ($b == "bar" or $c == "baz")) {
}
'
                ),
            ],
            null,
            'Risky, because you must double-check if using and/or with lower precedence was intentional.'
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound([T_LOGICAL_AND, T_LOGICAL_OR]);
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if ($token->isGivenKind(T_LOGICAL_AND)) {
                $tokens[$index] = new Token([T_BOOLEAN_AND, '&&']);
            } elseif ($token->isGivenKind(T_LOGICAL_OR)) {
                $tokens[$index] = new Token([T_BOOLEAN_OR, '||']);
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Operator;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class NewWithBracesFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'All instances created with new keyword must be followed by braces.',
            [new CodeSample("<?php \$x = new X;\n")]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_NEW);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        static $nextTokenKinds = null;

        if (null === $nextTokenKinds) {
            $nextTokenKinds = [
                '?',
                ';',
                ',',
                '(',
                ')',
                '[',
                ']',
                ':',
                '<',
                '>',
                '+',
                '-',
                '*',
                '/',
                '%',
                '&',
                '^',
                '|',
                [T_CLASS],
                [T_IS_SMALLER_OR_EQUAL],
                [T_IS_GREATER_OR_EQUAL],
                [T_IS_EQUAL],
                [T_IS_NOT_EQUAL],
                [T_IS_IDENTICAL],
                [T_IS_NOT_IDENTICAL],
                [T_CLOSE_TAG],
                [T_LOGICAL_AND],
                [T_LOGICAL_OR],
                [T_LOGICAL_XOR],
                [T_BOOLEAN_AND],
                [T_BOOLEAN_OR],
                [T_SL],
                [T_SR],
                [T_INSTANCEOF],
                [T_AS],
                [T_DOUBLE_ARROW],
                [T_POW],
                [CT::T_ARRAY_SQUARE_BRACE_OPEN],
                [CT::T_ARRAY_SQUARE_BRACE_CLOSE],
                [CT::T_BRACE_CLASS_INSTANTIATION_OPEN],
                [CT::T_BRACE_CLASS_INSTANTIATION_CLOSE],
            ];

            if (\defined('T_SPACESHIP')) {
                $nextTokenKinds[] = [T_SPACESHIP];
            }
        }

        for ($index = $tokens->count() - 3; $index > 0; --$index) {
            $token = $tokens[$index];

            if (!$token->isGivenKind(T_NEW)) {
                continue;
            }

            $nextIndex = $tokens->getNextTokenOfKind($index, $nextTokenKinds);
            $nextToken = $tokens[$nextIndex];

            // new anonymous class definition
            if ($nextToken->isGivenKind(T_CLASS)) {
                if (!$tokens[$tokens->getNextMeaningfulToken($nextIndex)]->equals('(')) {
                    $this->insertBracesAfter($tokens, $nextIndex);
                }

                continue;
            }

            // entrance into array index syntax - need to look for exit
            while ($nextToken->equals('[') || $nextToken->isGivenKind(CT::T_ARRAY_INDEX_CURLY_BRACE_OPEN)) {
                $nextIndex = $tokens->findBlockEnd($tokens->detectBlockType($nextToken)['type'], $nextIndex) + 1;
                $nextToken = $tokens[$nextIndex];
            }

            // new statement has a gap in it - advance to the next token
            if ($nextToken->isWhitespace()) {
                $nextIndex = $tokens->getNextNonWhitespace($nextIndex);
                $nextToken = $tokens[$nextIndex];
            }

            // new statement with () - nothing to do
            if ($nextToken->equals('(') || $nextToken->isGivenKind(T_OBJECT_OPERATOR)) {
                continue;
            }

            $this->insertBracesAfter($tokens, $tokens->getPrevMeaningfulToken($nextIndex));
        }
    }

    /**
     * @param int $index
     */
    private function insertBracesAfter(Tokens $tokens, $index)
    {
        $tokens->insertAt(++$index, [new Token('('), new Token(')')]);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Operator;

use PhpCsFixer\AbstractProxyFixer;
use PhpCsFixer\Fixer\DeprecatedFixerInterface;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;

/**
 * @author Gregor Harlan <gharlan@web.de>
 *
 * @deprecated in 2.8, proxy to IncrementStyleFixer
 */
final class PreIncrementFixer extends AbstractProxyFixer implements DeprecatedFixerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Pre incrementation/decrementation should be used if possible.',
            [new CodeSample("<?php\n\$a++;\n\$b--;\n")]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function getSuccessorsNames()
    {
        return array_keys($this->proxyFixers);
    }

    /**
     * {@inheritdoc}
     */
    protected function createProxyFixers()
    {
        $fixer = new IncrementStyleFixer();
        $fixer->configure(['style' => 'pre']);

        return [$fixer];
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Operator;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Fabien Potencier <fabien@symfony.com>
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class ObjectOperatorWithoutWhitespaceFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'There should not be space before or after object `T_OBJECT_OPERATOR` `->`.',
            [new CodeSample("<?php \$a  ->  b;\n")]
        );
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_OBJECT_OPERATOR);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        // [Structure] there should not be space before or after T_OBJECT_OPERATOR
        foreach ($tokens as $index => $token) {
            if (!$token->isGivenKind(T_OBJECT_OPERATOR)) {
                continue;
            }

            // clear whitespace before ->
            if ($tokens[$index - 1]->isWhitespace(" \t") && !$tokens[$index - 2]->isComment()) {
                $tokens->clearAt($index - 1);
            }

            // clear whitespace after ->
            if ($tokens[$index + 1]->isWhitespace(" \t") && !$tokens[$index + 2]->isComment()) {
                $tokens->clearAt($index + 1);
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Operator;

use PhpCsFixer\AbstractAlignFixerHelper;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Carlos Cirello <carlos.cirello.nl@gmail.com>
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 * @author Graham Campbell <graham@alt-three.com>
 *
 * @deprecated
 */
final class AlignDoubleArrowFixerHelper extends AbstractAlignFixerHelper
{
    /**
     * Level counter of the current nest level.
     * So one level alignments are not mixed with
     * other level ones.
     *
     * @var int
     */
    private $currentLevel = 0;

    public function __construct()
    {
        @trigger_error(
            sprintf(
                'The "%s" class is deprecated. You should stop using it, as it will be removed in 3.0 version.',
                __CLASS__
            ),
            E_USER_DEPRECATED
        );
    }

    /**
     * {@inheritdoc}
     */
    protected function injectAlignmentPlaceholders(Tokens $tokens, $startAt, $endAt)
    {
        for ($index = $startAt; $index < $endAt; ++$index) {
            $token = $tokens[$index];

            if ($token->isGivenKind([T_FOREACH, T_FOR, T_WHILE, T_IF, T_SWITCH])) {
                $index = $tokens->getNextMeaningfulToken($index);
                $index = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $index);

                continue;
            }

            if ($token->isGivenKind(T_ARRAY)) { // don't use "$tokens->isArray()" here, short arrays are handled in the next case
                $from = $tokens->getNextMeaningfulToken($index);
                $until = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $from);
                $index = $until;

                $this->injectArrayAlignmentPlaceholders($tokens, $from, $until);

                continue;
            }

            if ($token->isGivenKind(CT::T_ARRAY_SQUARE_BRACE_OPEN)) {
                $prevToken = $tokens[$tokens->getPrevMeaningfulToken($index)];
                if ($prevToken->isGivenKind([T_STRING, T_VARIABLE])) {
                    continue;
                }

                $from = $index;
                $until = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_ARRAY_SQUARE_BRACE, $from);
                $index = $until;

                $this->injectArrayAlignmentPlaceholders($tokens, $from + 1, $until - 1);

                continue;
            }

            if ($token->isGivenKind(T_DOUBLE_ARROW)) {
                $tokenContent = sprintf(self::ALIGNABLE_PLACEHOLDER, $this->currentLevel).$token->getContent();

                $nextIndex = $index + 1;
                $nextToken = $tokens[$nextIndex];
                if (!$nextToken->isWhitespace()) {
                    $tokenContent .= ' ';
                } elseif ($nextToken->isWhitespace(" \t")) {
                    $tokens[$nextIndex] = new Token([T_WHITESPACE, ' ']);
                }

                $tokens[$index] = new Token([T_DOUBLE_ARROW, $tokenContent]);

                continue;
            }

            if ($token->equals(';')) {
                ++$this->deepestLevel;
                ++$this->currentLevel;

                continue;
            }

            if ($token->equals(',')) {
                for ($i = $index; $i < $endAt - 1; ++$i) {
                    if (false !== strpos($tokens[$i - 1]->getContent(), "\n")) {
                        break;
                    }

                    if ($tokens[$i + 1]->isGivenKind([T_ARRAY, CT::T_ARRAY_SQUARE_BRACE_OPEN])) {
                        $arrayStartIndex = $tokens[$i + 1]->isGivenKind(T_ARRAY)
                            ? $tokens->getNextMeaningfulToken($i + 1)
                            : $i + 1
                        ;
                        $blockType = Tokens::detectBlockType($tokens[$arrayStartIndex]);
                        $arrayEndIndex = $tokens->findBlockEnd($blockType['type'], $arrayStartIndex);

                        if ($tokens->isPartialCodeMultiline($arrayStartIndex, $arrayEndIndex)) {
                            break;
                        }
                    }

                    ++$index;
                }
            }
        }
    }

    /**
     * @param int $from
     * @param int $until
     */
    private function injectArrayAlignmentPlaceholders(Tokens $tokens, $from, $until)
    {
        // Only inject placeholders for multi-line arrays
        if ($tokens->isPartialCodeMultiline($from, $until)) {
            ++$this->deepestLevel;
            ++$this->currentLevel;
            $this->injectAlignmentPlaceholders($tokens, $from, $until);
            --$this->currentLevel;
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Operator;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author ntzm
 */
final class StandardizeIncrementFixer extends AbstractFixer
{
    /**
     * @internal
     */
    const EXPRESSION_END_TOKENS = [
        ';',
        ')',
        ']',
        ',',
        ':',
        [CT::T_DYNAMIC_PROP_BRACE_CLOSE],
        [CT::T_DYNAMIC_VAR_BRACE_CLOSE],
        [T_CLOSE_TAG],
    ];

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Increment and decrement operators should be used if possible.',
            [
                new CodeSample("<?php\n\$i += 1;\n"),
                new CodeSample("<?php\n\$i -= 1;\n"),
            ]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before IncrementStyleFixer.
     */
    public function getPriority()
    {
        return 1;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound([T_PLUS_EQUAL, T_MINUS_EQUAL]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        for ($index = $tokens->count() - 1; $index > 0; --$index) {
            $expressionEnd = $tokens[$index];
            if (!$expressionEnd->equalsAny(self::EXPRESSION_END_TOKENS)) {
                continue;
            }

            $numberIndex = $tokens->getPrevMeaningfulToken($index);
            $number = $tokens[$numberIndex];
            if (!$number->isGivenKind(T_LNUMBER) || '1' !== $number->getContent()) {
                continue;
            }

            $operatorIndex = $tokens->getPrevMeaningfulToken($numberIndex);
            $operator = $tokens[$operatorIndex];
            if (!$operator->isGivenKind([T_PLUS_EQUAL, T_MINUS_EQUAL])) {
                continue;
            }

            $startIndex = $this->findStart($tokens, $tokens->getPrevMeaningfulToken($operatorIndex));

            $this->clearRangeLeaveComments(
                $tokens,
                $tokens->getPrevMeaningfulToken($operatorIndex) + 1,
                $numberIndex
            );

            $tokens->insertAt(
                $startIndex,
                new Token($operator->isGivenKind(T_PLUS_EQUAL) ? [T_INC, '++'] : [T_DEC, '--'])
            );
        }
    }

    /**
     * Find the start of a reference.
     *
     * @param int $index
     *
     * @return int
     */
    private function findStart(Tokens $tokens, $index)
    {
        while (!$tokens[$index]->equalsAny(['$', [T_VARIABLE]])) {
            if ($tokens[$index]->equals(']')) {
                $index = $tokens->findBlockStart(Tokens::BLOCK_TYPE_INDEX_SQUARE_BRACE, $index);
            } elseif ($tokens[$index]->isGivenKind(CT::T_DYNAMIC_PROP_BRACE_CLOSE)) {
                $index = $tokens->findBlockStart(Tokens::BLOCK_TYPE_DYNAMIC_PROP_BRACE, $index);
            } elseif ($tokens[$index]->isGivenKind(CT::T_DYNAMIC_VAR_BRACE_CLOSE)) {
                $index = $tokens->findBlockStart(Tokens::BLOCK_TYPE_DYNAMIC_VAR_BRACE, $index);
            } elseif ($tokens[$index]->isGivenKind(CT::T_ARRAY_INDEX_CURLY_BRACE_CLOSE)) {
                $index = $tokens->findBlockStart(Tokens::BLOCK_TYPE_ARRAY_INDEX_CURLY_BRACE, $index);
            } else {
                $index = $tokens->getPrevMeaningfulToken($index);
            }
        }

        while ($tokens[$tokens->getPrevMeaningfulToken($index)]->equals('$')) {
            $index = $tokens->getPrevMeaningfulToken($index);
        }

        if ($tokens[$tokens->getPrevMeaningfulToken($index)]->isGivenKind(T_OBJECT_OPERATOR)) {
            return $this->findStart($tokens, $tokens->getPrevMeaningfulToken($index));
        }

        return $index;
    }

    /**
     * Clear tokens in the given range unless they are comments.
     *
     * @param int $indexStart
     * @param int $indexEnd
     */
    private function clearRangeLeaveComments(Tokens $tokens, $indexStart, $indexEnd)
    {
        for ($i = $indexStart; $i <= $indexEnd; ++$i) {
            $token = $tokens[$i];

            if ($token->isComment()) {
                continue;
            }

            if ($token->isWhitespace("\n\r")) {
                continue;
            }

            $tokens->clearAt($i);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Operator;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class StandardizeNotEqualsFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Replace all `<>` with `!=`.',
            [new CodeSample("<?php\n\$a = \$b <> \$c;\n")]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before BinaryOperatorSpacesFixer.
     */
    public function getPriority()
    {
        return 0;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_IS_NOT_EQUAL);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if ($token->isGivenKind(T_IS_NOT_EQUAL)) {
                $tokens[$index] = new Token([T_IS_NOT_EQUAL, '!=']);
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\Operator;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Javier Spagnoletti <phansys@gmail.com>
 */
final class NotOperatorWithSpaceFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Logical NOT operators (`!`) should have leading and trailing whitespaces.',
            [new CodeSample(
                '<?php

if (!$bar) {
    echo "Help!";
}
'
            )]
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run after UnaryOperatorSpacesFixer.
     */
    public function getPriority()
    {
        return -10;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound('!');
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        for ($index = $tokens->count() - 1; $index >= 0; --$index) {
            $token = $tokens[$index];

            if ($token->equals('!')) {
                if (!$tokens[$index + 1]->isWhitespace()) {
                    $tokens->insertAt($index + 1, new Token([T_WHITESPACE, ' ']));
                }

                if (!$tokens[$index - 1]->isWhitespace()) {
                    $tokens->insertAt($index, new Token([T_WHITESPACE, ' ']));
                }
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Fixer\ConstantNotation;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Analyzer\Analysis\NamespaceAnalysis;
use PhpCsFixer\Tokenizer\Analyzer\NamespacesAnalyzer;
use PhpCsFixer\Tokenizer\Analyzer\NamespaceUsesAnalyzer;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Tokenizer\TokensAnalyzer;
use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException;

/**
 * @author Filippo Tessarotto <zoeslam@gmail.com>
 */
final class NativeConstantInvocationFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * @var array<string, true>
     */
    private $constantsToEscape = [];

    /**
     * @var array<string, true>
     */
    private $caseInsensitiveConstantsToEscape = [];

    /**
     * {@inheritdoc}
     */
    public function getDefinition()
    {
        return new FixerDefinition(
            'Add leading `\` before constant invocation of internal constant to speed up resolving. Constant name match is case-sensitive, except for `null`, `false` and `true`.',
            [
                new CodeSample("<?php var_dump(PHP_VERSION, M_PI, MY_CUSTOM_PI);\n"),
                new CodeSample(
                    '<?php
namespace space1 {
    echo PHP_VERSION;
}
namespace {
    echo M_PI;
}
',
                    ['scope' => 'namespaced']
                ),
                new CodeSample(
                    "<?php var_dump(PHP_VERSION, M_PI, MY_CUSTOM_PI);\n",
                    [
                        'include' => [
                            'MY_CUSTOM_PI',
                        ],
                    ]
                ),
                new CodeSample(
                    "<?php var_dump(PHP_VERSION, M_PI, MY_CUSTOM_PI);\n",
                    [
                        'fix_built_in' => false,
                        'include' => [
                            'MY_CUSTOM_PI',
                        ],
                    ]
                ),
                new CodeSample(
                    "<?php var_dump(PHP_VERSION, M_PI, MY_CUSTOM_PI);\n",
                    [
                        'exclude' => [
                            'M_PI',
                        ],
                    ]
                ),
            ],
            null,
            'Risky when any of the constants are namespaced or overridden.'
        );
    }

    /**
     * {@inheritdoc}
     *
     * Must run before GlobalNamespaceImportFixer.
     */
    public function getPriority()
    {
        return 10;
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_STRING);
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    public function configure(array $configuration = null)
    {
        parent::configure($configuration);

        $uniqueConfiguredExclude = array_unique($this->configuration['exclude']);

        // Case sensitive constants handling
        $constantsToEscape = array_values($this->configuration['include']);
        if (true === $this->configuration['fix_built_in']) {
            $getDefinedConstants = get_defined_constants(true);
            unset($getDefinedConstants['user']);
            foreach ($getDefinedConstants as $constants) {
                $constantsToEscape = array_merge($constantsToEscape, array_keys($constants));
            }
        }
        $constantsToEscape = array_diff(
            array_unique($constantsToEscape),
            $uniqueConfiguredExclude
        );

        // Case insensitive constants handling
        static $caseInsensitiveConstants = ['null', 'false', 'true'];
        $caseInsensitiveConstantsToEscape = [];
        foreach ($constantsToEscape as $constantIndex => $constant) {
            $loweredConstant = strtolower($constant);
            if (\in_array($loweredConstant, $caseInsensitiveConstants, true)) {
                $caseInsensitiveConstantsToEscape[] = $loweredConstant;
                unset($constantsToEscape[$constantIndex]);
            }
        }

        $caseInsensitiveConstantsToEscape = array_diff(
            array_unique($caseInsensitiveConstantsToEscape),
            array_map(static function ($function) { return strtolower($function); }, $uniqueConfiguredExclude)
        );

        // Store the cache
        $this->constantsToEscape = array_fill_keys($constantsToEscape, true);
        ksort($this->constantsToEscape);

        $this->caseInsensitiveConstantsToEscape = array_fill_keys($caseInsensitiveConstantsToEscape, true);
        ksort($this->caseInsensitiveConstantsToEscape);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        if ('all' === $this->configuration['scope']) {
            $this->fixConstantInvocations($tokens, 0, \count($tokens) - 1);

            return;
        }

        $namespaces = (new NamespacesAnalyzer())->getDeclarations($tokens);

        // 'scope' is 'namespaced' here
        /** @var NamespaceAnalysis $namespace */
        foreach (array_reverse($namespaces) as $namespace) {
            if ('' === $namespace->getFullName()) {
                continue;
            }

            $this->fixConstantInvocations($tokens, $namespace->getScopeStartIndex(), $namespace->getScopeEndIndex());
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        $constantChecker = static function ($value) {
            foreach ($value as $constantName) {
                if (!\is_string($constantName) || '' === trim($constantName) || trim($constantName) !== $constantName) {
                    throw new InvalidOptionsException(sprintf(
                        'Each element must be a non-empty, trimmed string, got "%s" instead.',
                        \is_object($constantName) ? \get_class($constantName) : \gettype($constantName)
                    ));
                }
            }

            return true;
        };

        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('fix_built_in', 'Whether to fix constants returned by `get_defined_constants`. User constants are not accounted in this list and must be specified in the include one.'))
                ->setAllowedTypes(['bool'])
                ->setDefault(true)
                ->getOption(),
            (new FixerOptionBuilder('include', 'List of additional constants to fix.'))
                ->setAllowedTypes(['array'])
                ->setAllowedValues([$constantChecker])
                ->setDefault([])
                ->getOption(),
            (new FixerOptionBuilder('exclude', 'List of constants to ignore.'))
                ->setAllowedTypes(['array'])
                ->setAllowedValues([$constantChecker])
                ->setDefault(['null', 'false', 'true'])
                ->getOption(),
            (new FixerOptionBuilder('scope', 'Only fix constant invocations that are made within a namespace or fix all.'))
                ->setAllowedValues(['all', 'namespaced'])
                ->setDefault('all')
                ->getOption(),
        ]);
    }

    /**
     * @param int $start
     * @param int $end
     */
    private function fixConstantInvocations(Tokens $tokens, $start, $end)
    {
        $useDeclarations = (new NamespaceUsesAnalyzer())->getDeclarationsFromTokens($tokens);
        $useConstantDeclarations = [];
        foreach ($useDeclarations as $use) {
            if ($use->isConstant()) {
                $useConstantDeclarations[$use->getShortName()] = true;
            }
        }

        $tokenAnalyzer = new TokensAnalyzer($tokens);

        $indexes = [];
        for ($index = $start; $index < $end; ++$index) {
            $token = $tokens[$index];

            // test if we are at a constant call
            if (!$token->isGivenKind(T_STRING)) {
                continue;
            }

            $tokenContent = $token->getContent();

            if (!isset($this->constantsToEscape[$tokenContent]) && !isset($this->caseInsensitiveConstantsToEscape[strtolower($tokenContent)])) {
                continue;
            }

            if (isset($useConstantDeclarations[$tokenContent])) {
                continue;
            }

            $prevIndex = $tokens->getPrevMeaningfulToken($index);
            if ($tokens[$prevIndex]->isGivenKind(T_NS_SEPARATOR)) {
                continue;
            }

            if (!$tokenAnalyzer->isConstantInvocation($index)) {
                continue;
            }

            $indexes[] = $index;
        }

        $indexes = array_reverse($indexes);
        foreach ($indexes as $index) {
            $tokens->insertAt($index, new Token([T_NS_SEPARATOR, '\\']));
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\ConfigurationException;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class RequiredFixerConfigurationException extends InvalidFixerConfigurationException
{
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\ConfigurationException;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class InvalidForEnvFixerConfigurationException extends InvalidFixerConfigurationException
{
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\ConfigurationException;

use PhpCsFixer\Console\Command\FixCommandExitStatusCalculator;

/**
 * Exceptions of this type are thrown on misconfiguration of the Fixer.
 *
 * @author SpacePossum
 *
 * @internal
 * @final Only internal extending this class is supported
 */
class InvalidConfigurationException extends \InvalidArgumentException
{
    /**
     * @param string          $message
     * @param null|int        $code
     * @param null|\Throwable $previous
     */
    public function __construct($message, $code = null, $previous = null)
    {
        parent::__construct(
            $message,
            null === $code ? FixCommandExitStatusCalculator::EXIT_STATUS_FLAG_HAS_INVALID_CONFIG : $code,
            $previous
        );
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\ConfigurationException;

use PhpCsFixer\Console\Command\FixCommandExitStatusCalculator;

/**
 * Exception thrown by Fixers on misconfiguration.
 *
 * @author SpacePossum
 *
 * @internal
 * @final Only internal extending this class is supported
 */
class InvalidFixerConfigurationException extends InvalidConfigurationException
{
    /**
     * @var string
     */
    private $fixerName;

    /**
     * @param string          $fixerName
     * @param string          $message
     * @param null|\Throwable $previous
     */
    public function __construct($fixerName, $message, $previous = null)
    {
        parent::__construct(
            sprintf('[%s] %s', $fixerName, $message),
            FixCommandExitStatusCalculator::EXIT_STATUS_FLAG_HAS_INVALID_FIXER_CONFIG,
            $previous
        );
        $this->fixerName = $fixerName;
    }

    /**
     * @return string
     */
    public function getFixerName()
    {
        return $this->fixerName;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer;

use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author SpacePossum
 */
abstract class AbstractNoUselessElseFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function getPriority()
    {
        // should be run before NoWhitespaceInBlankLineFixer, NoExtraBlankLinesFixer, BracesFixer and after NoEmptyStatementFixer.
        return 25;
    }

    /**
     * @param int $index
     *
     * @return bool
     */
    protected function isSuperfluousElse(Tokens $tokens, $index)
    {
        $previousBlockStart = $index;
        do {
            // Check if all 'if', 'else if ' and 'elseif' blocks above this 'else' always end,
            // if so this 'else' is overcomplete.
            list($previousBlockStart, $previousBlockEnd) = $this->getPreviousBlock($tokens, $previousBlockStart);

            // short 'if' detection
            $previous = $previousBlockEnd;
            if ($tokens[$previous]->equals('}')) {
                $previous = $tokens->getPrevMeaningfulToken($previous);
            }

            if (
                !$tokens[$previous]->equals(';') ||                              // 'if' block doesn't end with semicolon, keep 'else'
                $tokens[$tokens->getPrevMeaningfulToken($previous)]->equals('{') // empty 'if' block, keep 'else'
            ) {
                return false;
            }

            $candidateIndex = $tokens->getPrevTokenOfKind(
                $previous,
                [
                    ';',
                    [T_BREAK],
                    [T_CLOSE_TAG],
                    [T_CONTINUE],
                    [T_EXIT],
                    [T_GOTO],
                    [T_IF],
                    [T_RETURN],
                    [T_THROW],
                ]
            );

            if (
                null === $candidateIndex
                || $tokens[$candidateIndex]->equalsAny([';', [T_CLOSE_TAG], [T_IF]])
                || $this->isInConditional($tokens, $candidateIndex, $previousBlockStart)
                || $this->isInConditionWithoutBraces($tokens, $candidateIndex, $previousBlockStart)
            ) {
                return false;
            }

            // implicit continue, i.e. delete candidate
        } while (!$tokens[$previousBlockStart]->isGivenKind(T_IF));

        return true;
    }

    /**
     * Return the first and last token index of the previous block.
     *
     * [0] First is either T_IF, T_ELSE or T_ELSEIF
     * [1] Last is either '}' or ';' / T_CLOSE_TAG for short notation blocks
     *
     * @param int $index T_IF, T_ELSE, T_ELSEIF
     *
     * @return int[]
     */
    private function getPreviousBlock(Tokens $tokens, $index)
    {
        $close = $previous = $tokens->getPrevMeaningfulToken($index);
        // short 'if' detection
        if ($tokens[$close]->equals('}')) {
            $previous = $tokens->findBlockStart(Tokens::BLOCK_TYPE_CURLY_BRACE, $close);
        }

        $open = $tokens->getPrevTokenOfKind($previous, [[T_IF], [T_ELSE], [T_ELSEIF]]);
        if ($tokens[$open]->isGivenKind(T_IF)) {
            $elseCandidate = $tokens->getPrevMeaningfulToken($open);
            if ($tokens[$elseCandidate]->isGivenKind(T_ELSE)) {
                $open = $elseCandidate;
            }
        }

        return [$open, $close];
    }

    /**
     * @param int $index           Index of the token to check
     * @param int $lowerLimitIndex Lower limit index. Since the token to check will always be in a conditional we must stop checking at this index
     *
     * @return bool
     */
    private function isInConditional(Tokens $tokens, $index, $lowerLimitIndex)
    {
        $candidateIndex = $tokens->getPrevTokenOfKind($index, [')', ';', ':']);
        if ($tokens[$candidateIndex]->equals(':')) {
            return true;
        }

        if (!$tokens[$candidateIndex]->equals(')')) {
            return false; // token is ';' or close tag
        }

        // token is always ')' here.
        // If it is part of the condition the token is always in, return false.
        // If it is not it is a nested condition so return true
        $open = $tokens->findBlockStart(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $candidateIndex);

        return $tokens->getPrevMeaningfulToken($open) > $lowerLimitIndex;
    }

    /**
     * For internal use only, as it is not perfect.
     *
     * Returns if the token at given index is part of a if/elseif/else statement
     * without {}. Assumes not passing the last `;`/close tag of the statement, not
     * out of range index, etc.
     *
     * @param int $index           Index of the token to check
     * @param int $lowerLimitIndex
     *
     * @return bool
     */
    private function isInConditionWithoutBraces(Tokens $tokens, $index, $lowerLimitIndex)
    {
        do {
            if ($tokens[$index]->isComment() || $tokens[$index]->isWhitespace()) {
                $index = $tokens->getPrevMeaningfulToken($index);
            }

            $token = $tokens[$index];
            if ($token->isGivenKind([T_IF, T_ELSEIF, T_ELSE])) {
                return true;
            }

            if ($token->equals(';')) {
                return false;
            }
            if ($token->equals('{')) {
                $index = $tokens->getPrevMeaningfulToken($index);

                // OK if belongs to: for, do, while, foreach
                // Not OK if belongs to: if, else, elseif
                if ($tokens[$index]->isGivenKind(T_DO)) {
                    --$index;

                    continue;
                }

                if (!$tokens[$index]->equals(')')) {
                    return false; // like `else {`
                }

                $index = $tokens->findBlockStart(
                    Tokens::BLOCK_TYPE_PARENTHESIS_BRACE,
                    $index
                );

                $index = $tokens->getPrevMeaningfulToken($index);
                if ($tokens[$index]->isGivenKind([T_IF, T_ELSEIF])) {
                    return false;
                }
            } elseif ($token->equals(')')) {
                $type = Tokens::detectBlockType($token);
                $index = $tokens->findBlockStart(
                    $type['type'],
                    $index
                );

                $index = $tokens->getPrevMeaningfulToken($index);
            } else {
                --$index;
            }
        } while ($index > $lowerLimitIndex);

        return false;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer;

/**
 * Set of rules to be used by fixer.
 *
 * Example of set: ["@PSR2" => true, "@PSR1" => false, "strict" => true].
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
interface RuleSetInterface
{
    public function __construct(array $set = []);

    public static function create(array $set = []);

    /**
     * Get configuration for given rule.
     *
     * @param string $rule name of rule
     *
     * @return null|array
     */
    public function getRuleConfiguration($rule);

    /**
     * Get all rules from rules set.
     *
     * @return array
     */
    public function getRules();

    /**
     * Get names of all set definitions.
     *
     * @return string[]
     */
    public function getSetDefinitionNames();

    /**
     * Check given rule is in rules set.
     *
     * @param string $rule name of rule
     *
     * @return bool
     */
    public function hasRule($rule);
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Indicator;

use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @internal
 */
final class PhpUnitTestCaseIndicator
{
    public function isPhpUnitClass(Tokens $tokens, $index)
    {
        if (!$tokens[$index]->isGivenKind(T_CLASS)) {
            throw new \LogicException(sprintf('No T_CLASS at given index %d, got %s.', $index, $tokens[$index]->getName()));
        }

        $index = $tokens->getNextMeaningfulToken($index);
        if (0 !== Preg::match('/(?:Test|TestCase)$/', $tokens[$index]->getContent())) {
            return true;
        }

        while (null !== $index = $tokens->getNextMeaningfulToken($index)) {
            if ($tokens[$index]->equals('{')) {
                break; // end of class signature
            }

            if (!$tokens[$index]->isGivenKind(T_STRING)) {
                continue; // not part of extends nor part of implements; so continue
            }

            if (0 !== Preg::match('/(?:Test|TestCase)(?:Interface)?$/', $tokens[$index]->getContent())) {
                return true;
            }
        }

        return false;
    }

    /**
     * @param bool $beginAtBottom whether we should start yielding PHPUnit classes from the bottom of the file
     *
     * @return \Generator array of [int start, int end] indexes from sooner to later classes
     */
    public function findPhpUnitClasses(Tokens $tokens, $beginAtBottom = true)
    {
        $direction = $beginAtBottom ? -1 : 1;

        for ($index = 1 === $direction ? 0 : $tokens->count() - 1; $tokens->offsetExists($index); $index += $direction) {
            if (!$tokens[$index]->isGivenKind(T_CLASS) || !$this->isPhpUnitClass($tokens, $index)) {
                continue;
            }

            $startIndex = $tokens->getNextTokenOfKind($index, ['{'], false);

            if (null === $startIndex) {
                return;
            }

            $endIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $startIndex);
            yield [$startIndex, $endIndex];
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Cache;

use Symfony\Component\Filesystem\Exception\IOException;

/**
 * @author Andreas Möller <am@localheinz.com>
 *
 * @internal
 */
final class FileHandler implements FileHandlerInterface
{
    /**
     * @var string
     */
    private $file;

    /**
     * @param string $file
     */
    public function __construct($file)
    {
        $this->file = $file;
    }

    public function getFile()
    {
        return $this->file;
    }

    public function read()
    {
        if (!file_exists($this->file)) {
            return null;
        }

        $content = file_get_contents($this->file);

        try {
            $cache = Cache::fromJson($content);
        } catch (\InvalidArgumentException $exception) {
            return null;
        }

        return $cache;
    }

    public function write(CacheInterface $cache)
    {
        $content = $cache->toJson();

        if (file_exists($this->file)) {
            if (is_dir($this->file)) {
                throw new IOException(
                    sprintf('Cannot write cache file "%s" as the location exists as directory.', realpath($this->file)),
                    0,
                    null,
                    $this->file
                );
            }

            if (!is_writable($this->file)) {
                throw new IOException(
                    sprintf('Cannot write to file "%s" as it is not writable.', realpath($this->file)),
                    0,
                    null,
                    $this->file
                );
            }
        } else {
            @touch($this->file);
            @chmod($this->file, 0666);
        }

        $bytesWritten = @file_put_contents($this->file, $content);

        if (false === $bytesWritten) {
            $error = error_get_last();

            throw new IOException(
                sprintf('Failed to write file "%s", "%s".', $this->file, isset($error['message']) ? $error['message'] : 'no reason available'),
                0,
                null,
                $this->file
            );
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Cache;

/**
 * Class supports caching information about state of fixing files.
 *
 * Cache is supported only for phar version and version installed via composer.
 *
 * File will be processed by PHP CS Fixer only if any of the following conditions is fulfilled:
 *  - cache is corrupt
 *  - fixer version changed
 *  - rules changed
 *  - file is new
 *  - file changed
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class FileCacheManager implements CacheManagerInterface
{
    /**
     * @var FileHandlerInterface
     */
    private $handler;

    /**
     * @var SignatureInterface
     */
    private $signature;

    /**
     * @var CacheInterface
     */
    private $cache;

    /**
     * @var bool
     */
    private $isDryRun;

    /**
     * @var DirectoryInterface
     */
    private $cacheDirectory;

    /**
     * @param bool $isDryRun
     */
    public function __construct(
        FileHandlerInterface $handler,
        SignatureInterface $signature,
        $isDryRun = false,
        DirectoryInterface $cacheDirectory = null
    ) {
        $this->handler = $handler;
        $this->signature = $signature;
        $this->isDryRun = $isDryRun;
        $this->cacheDirectory = $cacheDirectory ?: new Directory('');

        $this->readCache();
    }

    public function __destruct()
    {
        $this->writeCache();
    }

    public function needFixing($file, $fileContent)
    {
        $file = $this->cacheDirectory->getRelativePathTo($file);

        return !$this->cache->has($file) || $this->cache->get($file) !== $this->calcHash($fileContent);
    }

    public function setFile($file, $fileContent)
    {
        $file = $this->cacheDirectory->getRelativePathTo($file);

        $hash = $this->calcHash($fileContent);

        if ($this->isDryRun && $this->cache->has($file) && $this->cache->get($file) !== $hash) {
            $this->cache->clear($file);

            return;
        }

        $this->cache->set($file, $hash);
    }

    private function readCache()
    {
        $cache = $this->handler->read();

        if (!$cache || !$this->signature->equals($cache->getSignature())) {
            $cache = new Cache($this->signature);
        }

        $this->cache = $cache;
    }

    private function writeCache()
    {
        $this->handler->write($this->cache);
    }

    private function calcHash($content)
    {
        return crc32($content);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Cache;

/**
 * @author Andreas Möller <am@localheinz.com>
 *
 * @internal
 */
final class Cache implements CacheInterface
{
    /**
     * @var SignatureInterface
     */
    private $signature;

    /**
     * @var array
     */
    private $hashes = [];

    public function __construct(SignatureInterface $signature)
    {
        $this->signature = $signature;
    }

    public function getSignature()
    {
        return $this->signature;
    }

    public function has($file)
    {
        return \array_key_exists($file, $this->hashes);
    }

    public function get($file)
    {
        if (!$this->has($file)) {
            return null;
        }

        return $this->hashes[$file];
    }

    public function set($file, $hash)
    {
        $this->hashes[$file] = $hash;
    }

    public function clear($file)
    {
        unset($this->hashes[$file]);
    }

    public function toJson()
    {
        $json = json_encode([
            'php' => $this->getSignature()->getPhpVersion(),
            'version' => $this->getSignature()->getFixerVersion(),
            'indent' => $this->getSignature()->getIndent(),
            'lineEnding' => $this->getSignature()->getLineEnding(),
            'rules' => $this->getSignature()->getRules(),
            'hashes' => $this->hashes,
        ]);

        if (JSON_ERROR_NONE !== json_last_error()) {
            throw new \UnexpectedValueException(sprintf(
                'Can not encode cache signature to JSON, error: "%s". If you have non-UTF8 chars in your signature, like in license for `header_comment`, consider enabling `ext-mbstring` or install `symfony/polyfill-mbstring`.',
                json_last_error_msg()
            ));
        }

        return $json;
    }

    /**
     * @param string $json
     *
     * @throws \InvalidArgumentException
     *
     * @return Cache
     */
    public static function fromJson($json)
    {
        $data = json_decode($json, true);

        if (null === $data && JSON_ERROR_NONE !== json_last_error()) {
            throw new \InvalidArgumentException(sprintf(
                'Value needs to be a valid JSON string, got "%s", error: "%s".',
                $json,
                json_last_error_msg()
            ));
        }

        $requiredKeys = [
            'php',
            'version',
            'indent',
            'lineEnding',
            'rules',
            'hashes',
        ];

        $missingKeys = array_diff_key(array_flip($requiredKeys), $data);

        if (\count($missingKeys)) {
            throw new \InvalidArgumentException(sprintf(
                'JSON data is missing keys "%s"',
                implode('", "', $missingKeys)
            ));
        }

        $signature = new Signature(
            $data['php'],
            $data['version'],
            $data['indent'],
            $data['lineEnding'],
            $data['rules']
        );

        $cache = new self($signature);

        $cache->hashes = $data['hashes'];

        return $cache;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Cache;

/**
 * @author Andreas Möller <am@localheinz.com>
 *
 * @internal
 */
interface CacheInterface
{
    /**
     * @return SignatureInterface
     */
    public function getSignature();

    /**
     * @param string $file
     *
     * @return bool
     */
    public function has($file);

    /**
     * @param string $file
     *
     * @return null|int
     */
    public function get($file);

    /**
     * @param string $file
     * @param int    $hash
     */
    public function set($file, $hash);

    /**
     * @param string $file
     */
    public function clear($file);

    /**
     * @return string
     */
    public function toJson();
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Cache;

/**
 * @author Andreas Möller <am@localheinz.com>
 *
 * @internal
 */
final class NullCacheManager implements CacheManagerInterface
{
    public function needFixing($file, $fileContent)
    {
        return true;
    }

    public function setFile($file, $fileContent)
    {
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Cache;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
interface CacheManagerInterface
{
    /**
     * @param string $file
     * @param string $fileContent
     *
     * @return bool
     */
    public function needFixing($file, $fileContent);

    /**
     * @param string $file
     * @param string $fileContent
     */
    public function setFile($file, $fileContent);
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Cache;

/**
 * @author Andreas Möller <am@localheinz.com>
 *
 * @internal
 */
interface FileHandlerInterface
{
    /**
     * @return string
     */
    public function getFile();

    /**
     * @return null|CacheInterface
     */
    public function read();

    public function write(CacheInterface $cache);
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Cache;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class Directory implements DirectoryInterface
{
    /**
     * @var string
     */
    private $directoryName;

    /**
     * @param string $directoryName
     */
    public function __construct($directoryName)
    {
        $this->directoryName = $directoryName;
    }

    public function getRelativePathTo($file)
    {
        $file = $this->normalizePath($file);

        if (
            '' === $this->directoryName
            || 0 !== stripos($file, $this->directoryName.\DIRECTORY_SEPARATOR)
        ) {
            return $file;
        }

        return substr($file, \strlen($this->directoryName) + 1);
    }

    private function normalizePath($path)
    {
        return str_replace(['\\', '/'], \DIRECTORY_SEPARATOR, $path);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Cache;

/**
 * @author Andreas Möller <am@localheinz.com>
 *
 * @internal
 */
interface SignatureInterface
{
    /**
     * @return string
     */
    public function getPhpVersion();

    /**
     * @return string
     */
    public function getFixerVersion();

    /**
     * @return string
     */
    public function getIndent();

    /**
     * @return string
     */
    public function getLineEnding();

    /**
     * @return array
     */
    public function getRules();

    /**
     * @param SignatureInterface $signature
     *
     * @return bool
     */
    public function equals(self $signature);
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Cache;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
interface DirectoryInterface
{
    /**
     * @param string $file
     *
     * @return string
     */
    public function getRelativePathTo($file);
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Cache;

/**
 * @author Andreas Möller <am@localheinz.com>
 *
 * @internal
 */
final class Signature implements SignatureInterface
{
    /**
     * @var string
     */
    private $phpVersion;

    /**
     * @var string
     */
    private $fixerVersion;

    /**
     * @var string
     */
    private $indent;

    /**
     * @var string
     */
    private $lineEnding;

    /**
     * @var array
     */
    private $rules;

    /**
     * @param string $phpVersion
     * @param string $fixerVersion
     * @param string $indent
     * @param string $lineEnding
     */
    public function __construct($phpVersion, $fixerVersion, $indent, $lineEnding, array $rules)
    {
        $this->phpVersion = $phpVersion;
        $this->fixerVersion = $fixerVersion;
        $this->indent = $indent;
        $this->lineEnding = $lineEnding;
        $this->rules = self::utf8Encode($rules);
    }

    public function getPhpVersion()
    {
        return $this->phpVersion;
    }

    public function getFixerVersion()
    {
        return $this->fixerVersion;
    }

    public function getIndent()
    {
        return $this->indent;
    }

    public function getLineEnding()
    {
        return $this->lineEnding;
    }

    public function getRules()
    {
        return $this->rules;
    }

    public function equals(SignatureInterface $signature)
    {
        return $this->phpVersion === $signature->getPhpVersion()
            && $this->fixerVersion === $signature->getFixerVersion()
            && $this->indent === $signature->getIndent()
            && $this->lineEnding === $signature->getLineEnding()
            && $this->rules === $signature->getRules();
    }

    private static function utf8Encode(array $data)
    {
        if (!\function_exists('mb_detect_encoding')) {
            return $data;
        }

        array_walk_recursive($data, static function (&$item) {
            if (\is_string($item) && !mb_detect_encoding($item, 'utf-8', true)) {
                $item = utf8_encode($item);
            }
        });

        return $data;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Test;

use PhpCsFixer\RuleSet;
use PhpCsFixer\Tests\Test\IntegrationCase as BaseIntegrationCase;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @TODO 3.0 While removing, remove loading `tests/Test` from `autoload` section of `composer.json`.
 *
 * @deprecated since v2.4
 */
final class IntegrationCase
{
    /**
     * @var BaseIntegrationCase
     */
    private $base;

    /**
     * @param string      $fileName
     * @param string      $title
     * @param string      $expectedCode
     * @param null|string $inputCode
     */
    public function __construct(
        $fileName,
        $title,
        array $settings,
        array $requirements,
        array $config,
        RuleSet $ruleset,
        $expectedCode,
        $inputCode
    ) {
        $this->base = new BaseIntegrationCase(
            $fileName,
            $title,
            $settings,
            $requirements,
            $config,
            $ruleset,
            $expectedCode,
            $inputCode
        );
        @trigger_error(
            sprintf(
                'The "%s" class is deprecated. You should stop using it, as it will be removed in 3.0 version.',
                __CLASS__
            ),
            E_USER_DEPRECATED
        );
    }

    public function hasInputCode()
    {
        return $this->base->hasInputCode();
    }

    public function getConfig()
    {
        return $this->base->getConfig();
    }

    public function getExpectedCode()
    {
        return $this->base->getExpectedCode();
    }

    public function getFileName()
    {
        return $this->base->getFileName();
    }

    public function getInputCode()
    {
        return $this->base->getInputCode();
    }

    public function getRequirement($name)
    {
        return $this->base->getRequirement($name);
    }

    public function getRequirements()
    {
        return $this->base->getRequirements();
    }

    public function getRuleset()
    {
        return $this->base->getRuleset();
    }

    public function getSettings()
    {
        return $this->base->getSettings();
    }

    public function getTitle()
    {
        return $this->base->getTitle();
    }

    /**
     * @return bool
     *
     * @deprecated since v2.1, on ~2.1 line IntegrationTest check whether different priorities are required is done automatically, this method will be removed on v3.0
     */
    public function shouldCheckPriority()
    {
        @trigger_error(
            sprintf(
                'The "%s" method is deprecated. You should stop using it, as it will be removed in 3.0 version.',
                __METHOD__
            ),
            E_USER_DEPRECATED
        );

        $settings = $this->base->getSettings();

        return isset($settings['checkPriority']) ? $settings['checkPriority'] : true;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Test;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @deprecated since v2.5. Use "php-cs-fixer/accessible-object" package instead.
 */
final class AccessibleObject
{
    private $object;
    private $reflection;

    /**
     * @param object $object
     */
    public function __construct($object)
    {
        @trigger_error(
            sprintf(
                'The "%s" class is deprecated and will be removed in 3.0 version. Use "php-cs-fixer/accessible-object" package instead.',
                __CLASS__
            ),
            E_USER_DEPRECATED
        );

        $this->object = $object;
        $this->reflection = new \ReflectionClass($object);
    }

    public function __call($name, array $arguments)
    {
        if (!method_exists($this->object, $name)) {
            throw new \LogicException(sprintf('Cannot call non existing method %s->%s.', \get_class($this->object), $name));
        }

        $method = $this->reflection->getMethod($name);
        $method->setAccessible(true);

        return $method->invokeArgs($this->object, $arguments);
    }

    public function __isset($name)
    {
        try {
            $value = $this->{$name};
        } catch (\LogicException $e) {
            return false;
        }

        return isset($value);
    }

    public function __get($name)
    {
        if (!property_exists($this->object, $name)) {
            throw new \LogicException(sprintf('Cannot get non existing property %s->%s.', \get_class($this->object), $name));
        }

        $property = $this->reflection->getProperty($name);
        $property->setAccessible(true);

        return $property->getValue($this->object);
    }

    public function __set($name, $value)
    {
        if (!property_exists($this->object, $name)) {
            throw new \LogicException(sprintf('Cannot set non existing property %s->%s = %s.', \get_class($this->object), $name, var_export($value, true)));
        }

        $property = $this->reflection->getProperty($name);
        $property->setAccessible(true);

        $property->setValue($this->object, $value);
    }

    public static function create($object)
    {
        return new self($object);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Test;

use PhpCsFixer\Tests\Test\AbstractFixerTestCase as BaseAbstractFixerTestCase;

/**
 * @TODO 3.0 While removing, remove loading `tests/Test` from `autoload` section of `composer.json`.
 *
 * @deprecated since v2.4
 */
abstract class AbstractFixerTestCase extends BaseAbstractFixerTestCase
{
    public function __construct($name = null, array $data = [], $dataName = '')
    {
        @trigger_error(
            sprintf(
                'The "%s" class is deprecated. You should stop using it, as it will be removed in 3.0 version.',
                __CLASS__
            ),
            E_USER_DEPRECATED
        );

        parent::__construct($name, $data, $dataName);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Test;

use PhpCsFixer\Tests\Test\AbstractIntegrationTestCase as BaseAbstractIntegrationTestCase;

/**
 * @TODO 3.0 While removing, remove loading `tests/Test` from `autoload` section of `composer.json`.
 *
 * @deprecated since v2.4
 */
abstract class AbstractIntegrationTestCase extends BaseAbstractIntegrationTestCase
{
    public function __construct($name = null, array $data = [], $dataName = '')
    {
        @trigger_error(
            sprintf(
                'The "%s" class is deprecated. You should stop using it, as it will be removed in 3.0 version.',
                __CLASS__
            ),
            E_USER_DEPRECATED
        );

        parent::__construct($name, $data, $dataName);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Linter;

use Symfony\Component\Process\Process;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class ProcessLintingResult implements LintingResultInterface
{
    /**
     * @var bool
     */
    private $isSuccessful;

    /**
     * @var Process
     */
    private $process;

    public function __construct(Process $process)
    {
        $this->process = $process;
    }

    /**
     * {@inheritdoc}
     */
    public function check()
    {
        if (!$this->isSuccessful()) {
            // on some systems stderr is used, but on others, it's not
            throw new LintingException($this->process->getErrorOutput() ?: $this->process->getOutput(), $this->process->getExitCode());
        }
    }

    private function isSuccessful()
    {
        if (null === $this->isSuccessful) {
            $this->process->wait();
            $this->isSuccessful = $this->process->isSuccessful();
        }

        return $this->isSuccessful;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Linter;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
interface LintingResultInterface
{
    /**
     * Check if linting process was successful and raise LintingException if not.
     */
    public function check();
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Linter;

use PhpCsFixer\FileReader;
use PhpCsFixer\FileRemoval;
use Symfony\Component\Filesystem\Exception\IOException;
use Symfony\Component\Process\PhpExecutableFinder;
use Symfony\Component\Process\Process;

/**
 * Handle PHP code linting using separated process of `php -l _file_`.
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class ProcessLinter implements LinterInterface
{
    /**
     * @var FileRemoval
     */
    private $fileRemoval;

    /**
     * @var ProcessLinterProcessBuilder
     */
    private $processBuilder;

    /**
     * Temporary file for code linting.
     *
     * @var null|string
     */
    private $temporaryFile;

    /**
     * @param null|string $executable PHP executable, null for autodetection
     */
    public function __construct($executable = null)
    {
        if (null === $executable) {
            $executableFinder = new PhpExecutableFinder();
            $executable = $executableFinder->find(false);

            if (false === $executable) {
                throw new UnavailableLinterException('Cannot find PHP executable.');
            }

            if ('phpdbg' === \PHP_SAPI) {
                if (false === strpos($executable, 'phpdbg')) {
                    throw new UnavailableLinterException('Automatically found PHP executable is non-standard phpdbg. Could not find proper PHP executable.');
                }

                // automatically found executable is `phpdbg`, let us try to fallback to regular `php`
                $executable = str_replace('phpdbg', 'php', $executable);

                if (!is_executable($executable)) {
                    throw new UnavailableLinterException('Automatically found PHP executable is phpdbg. Could not find proper PHP executable.');
                }
            }
        }

        $this->processBuilder = new ProcessLinterProcessBuilder($executable);

        $this->fileRemoval = new FileRemoval();
    }

    public function __destruct()
    {
        if (null !== $this->temporaryFile) {
            $this->fileRemoval->delete($this->temporaryFile);
        }
    }

    /**
     * {@inheritdoc}
     */
    public function isAsync()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    public function lintFile($path)
    {
        return new ProcessLintingResult($this->createProcessForFile($path));
    }

    /**
     * {@inheritdoc}
     */
    public function lintSource($source)
    {
        return new ProcessLintingResult($this->createProcessForSource($source));
    }

    /**
     * @param string $path path to file
     *
     * @return Process
     */
    private function createProcessForFile($path)
    {
        // in case php://stdin
        if (!is_file($path)) {
            return $this->createProcessForSource(FileReader::createSingleton()->read($path));
        }

        $process = $this->processBuilder->build($path);
        $process->setTimeout(10);
        $process->start();

        return $process;
    }

    /**
     * Create process that lint PHP code.
     *
     * @param string $source code
     *
     * @return Process
     */
    private function createProcessForSource($source)
    {
        if (null === $this->temporaryFile) {
            $this->temporaryFile = tempnam('.', 'cs_fixer_tmp_');
            $this->fileRemoval->observe($this->temporaryFile);
        }

        if (false === @file_put_contents($this->temporaryFile, $source)) {
            throw new IOException(sprintf('Failed to write file "%s".', $this->temporaryFile), 0, null, $this->temporaryFile);
        }

        return $this->createProcessForFile($this->temporaryFile);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Linter;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class TokenizerLintingResult implements LintingResultInterface
{
    /**
     * @var null|\ParseError
     */
    private $error;

    public function __construct(\ParseError $error = null)
    {
        $this->error = $error;
    }

    /**
     * {@inheritdoc}
     */
    public function check()
    {
        if (null !== $this->error) {
            throw new LintingException(
                sprintf('PHP Parse error: %s on line %d.', $this->error->getMessage(), $this->error->getLine()),
                $this->error->getCode(),
                $this->error
            );
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Linter;

/**
 * Exception that is thrown when the chosen linter is not available on the environment.
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
class UnavailableLinterException extends \RuntimeException
{
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Linter;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
class LintingException extends \RuntimeException
{
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Linter;

use Symfony\Component\Process\Process;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class ProcessLinterProcessBuilder
{
    /**
     * @var string
     */
    private $executable;

    /**
     * @param string $executable PHP executable
     */
    public function __construct($executable)
    {
        $this->executable = $executable;
    }

    /**
     * @param string $path
     *
     * @return Process
     */
    public function build($path)
    {
        return new Process([
            $this->executable,
            '-l',
            $path,
        ]);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Linter;

/**
 * Interface for PHP code linting process manager.
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
interface LinterInterface
{
    /**
     * @return bool
     */
    public function isAsync();

    /**
     * Lint PHP file.
     *
     * @param string $path
     *
     * @return LintingResultInterface
     */
    public function lintFile($path);

    /**
     * Lint PHP code.
     *
     * @param string $source
     *
     * @return LintingResultInterface
     */
    public function lintSource($source);
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Linter;

/**
 * Handle PHP code linting process.
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class Linter implements LinterInterface
{
    /**
     * @var LinterInterface
     */
    private $sublinter;

    /**
     * @param null|string $executable PHP executable, null for autodetection
     */
    public function __construct($executable = null)
    {
        try {
            $this->sublinter = new TokenizerLinter();
        } catch (UnavailableLinterException $e) {
            $this->sublinter = new ProcessLinter($executable);
        }
    }

    /**
     * {@inheritdoc}
     */
    public function isAsync()
    {
        return $this->sublinter->isAsync();
    }

    /**
     * {@inheritdoc}
     */
    public function lintFile($path)
    {
        return $this->sublinter->lintFile($path);
    }

    /**
     * {@inheritdoc}
     */
    public function lintSource($source)
    {
        return $this->sublinter->lintSource($source);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Linter;

use PhpCsFixer\FileReader;
use PhpCsFixer\Tokenizer\CodeHasher;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * Handle PHP code linting.
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class TokenizerLinter implements LinterInterface
{
    public function __construct()
    {
        if (false === \defined('TOKEN_PARSE')) {
            throw new UnavailableLinterException('Cannot use tokenizer as linter.');
        }
    }

    /**
     * {@inheritdoc}
     */
    public function isAsync()
    {
        return false;
    }

    /**
     * {@inheritdoc}
     */
    public function lintFile($path)
    {
        return $this->lintSource(FileReader::createSingleton()->read($path));
    }

    /**
     * {@inheritdoc}
     */
    public function lintSource($source)
    {
        try {
            // To lint, we will parse the source into Tokens.
            // During that process, it might throw ParseError.
            // If it won't, cache of tokenized version of source will be kept, which is great for Runner.
            // Yet, first we need to clear already existing cache to not hit it and lint the code indeed.
            $codeHash = CodeHasher::calculateCodeHash($source);
            Tokens::clearCache($codeHash);
            Tokens::fromCode($source);

            return new TokenizerLintingResult();
        } catch (\ParseError $e) {
            return new TokenizerLintingResult($e);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Linter;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class CachingLinter implements LinterInterface
{
    /**
     * @var LinterInterface
     */
    private $sublinter;

    /**
     * @var array<int, LintingResultInterface>
     */
    private $cache = [];

    public function __construct(LinterInterface $linter)
    {
        $this->sublinter = $linter;
    }

    /**
     * {@inheritdoc}
     */
    public function isAsync()
    {
        return $this->sublinter->isAsync();
    }

    /**
     * {@inheritdoc}
     */
    public function lintFile($path)
    {
        $checksum = crc32(file_get_contents($path));

        if (!isset($this->cache[$checksum])) {
            $this->cache[$checksum] = $this->sublinter->lintFile($path);
        }

        return $this->cache[$checksum];
    }

    /**
     * {@inheritdoc}
     */
    public function lintSource($source)
    {
        $checksum = crc32($source);

        if (!isset($this->cache[$checksum])) {
            $this->cache[$checksum] = $this->sublinter->lintSource($source);
        }

        return $this->cache[$checksum];
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer;

/**
 * Exception that is thrown when PCRE function encounters an error.
 *
 * @author Kuba Werłos <werlos@gmail.com>
 *
 * @internal
 */
final class PregException extends \RuntimeException
{
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer;

use PhpCsFixer\Fixer\FixerInterface;

/**
 * @author Fabien Potencier <fabien@symfony.com>
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
interface ConfigInterface
{
    /**
     * Returns the path to the cache file.
     *
     * @return null|string Returns null if not using cache
     */
    public function getCacheFile();

    /**
     * Returns the custom fixers to use.
     *
     * @return FixerInterface[]
     */
    public function getCustomFixers();

    /**
     * Returns files to scan.
     *
     * @return iterable|\Traversable
     */
    public function getFinder();

    /**
     * @return string
     */
    public function getFormat();

    /**
     * Returns true if progress should be hidden.
     *
     * @return bool
     */
    public function getHideProgress();

    /**
     * @return string
     */
    public function getIndent();

    /**
     * @return string
     */
    public function getLineEnding();

    /**
     * Returns the name of the configuration.
     *
     * The name must be all lowercase and without any spaces.
     *
     * @return string The name of the configuration
     */
    public function getName();

    /**
     * Get configured PHP executable, if any.
     *
     * @return null|string
     */
    public function getPhpExecutable();

    /**
     * Check if it is allowed to run risky fixers.
     *
     * @return bool
     */
    public function getRiskyAllowed();

    /**
     * Get rules.
     *
     * Keys of array are names of fixers/sets, values are true/false.
     *
     * @return array
     */
    public function getRules();

    /**
     * Returns true if caching should be enabled.
     *
     * @return bool
     */
    public function getUsingCache();

    /**
     * Adds a suite of custom fixers.
     *
     * Name of custom fixer should follow `VendorName/rule_name` convention.
     *
     * @param FixerInterface[]|iterable|\Traversable $fixers
     */
    public function registerCustomFixers($fixers);

    /**
     * Sets the path to the cache file.
     *
     * @param string $cacheFile
     *
     * @return self
     */
    public function setCacheFile($cacheFile);

    /**
     * @param iterable|string[]|\Traversable $finder
     *
     * @return self
     */
    public function setFinder($finder);

    /**
     * @param string $format
     *
     * @return self
     */
    public function setFormat($format);

    /**
     * @param bool $hideProgress
     *
     * @return self
     */
    public function setHideProgress($hideProgress);

    /**
     * @param string $indent
     *
     * @return self
     */
    public function setIndent($indent);

    /**
     * @param string $lineEnding
     *
     * @return self
     */
    public function setLineEnding($lineEnding);

    /**
     * Set PHP executable.
     *
     * @param null|string $phpExecutable
     *
     * @return self
     */
    public function setPhpExecutable($phpExecutable);

    /**
     * Set if it is allowed to run risky fixers.
     *
     * @param bool $isRiskyAllowed
     *
     * @return self
     */
    public function setRiskyAllowed($isRiskyAllowed);

    /**
     * Set rules.
     *
     * Keys of array are names of fixers or sets.
     * Value for set must be bool (turn it on or off).
     * Value for fixer may be bool (turn it on or off) or array of configuration
     * (turn it on and contains configuration for FixerInterface::configure method).
     *
     * @return self
     */
    public function setRules(array $rules);

    /**
     * @param bool $usingCache
     *
     * @return self
     */
    public function setUsingCache($usingCache);
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer;

/**
 * File reader that unify access to regular file and stdin-alike file.
 *
 * Regular file could be read multiple times with `file_get_contents`, but file provided on stdin can not.
 * Consecutive try will provide empty content for stdin-alike file.
 * This reader unifies access to them.
 *
 * @internal
 */
final class FileReader
{
    /**
     * @var null|self
     */
    private static $instance;

    /**
     * @var null|string
     */
    private $stdinContent;

    /**
     * @return self
     */
    public static function createSingleton()
    {
        if (null === self::$instance) {
            self::$instance = new self();
        }

        return self::$instance;
    }

    /**
     * @param string $filePath
     *
     * @return string
     */
    public function read($filePath)
    {
        if ('php://stdin' === $filePath) {
            if (null === $this->stdinContent) {
                $this->stdinContent = $this->readRaw($filePath);
            }

            return $this->stdinContent;
        }

        return $this->readRaw($filePath);
    }

    /**
     * @param string $realPath
     *
     * @return string
     */
    private function readRaw($realPath)
    {
        $content = @file_get_contents($realPath);

        if (false === $content) {
            $error = error_get_last();

            throw new \RuntimeException(sprintf(
                'Failed to read content from "%s".%s',
                $realPath,
                $error ? ' '.$error['message'] : ''
            ));
        }

        return $content;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer;

use PhpCsFixer\DocBlock\Annotation;
use PhpCsFixer\DocBlock\DocBlock;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * This abstract fixer provides a base for fixers to fix types in PHPDoc.
 *
 * @author Graham Campbell <graham@alt-three.com>
 *
 * @internal
 */
abstract class AbstractPhpdocTypesFixer extends AbstractFixer
{
    /**
     * The annotation tags search inside.
     *
     * @var string[]
     */
    protected $tags;

    /**
     * {@inheritdoc}
     */
    public function __construct()
    {
        parent::__construct();

        $this->tags = Annotation::getTagsWithTypes();
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isTokenKindFound(T_DOC_COMMENT);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if (!$token->isGivenKind(T_DOC_COMMENT)) {
                continue;
            }

            $doc = new DocBlock($token->getContent());
            $annotations = $doc->getAnnotationsOfType($this->tags);

            if (empty($annotations)) {
                continue;
            }

            foreach ($annotations as $annotation) {
                $this->fixTypes($annotation);
            }

            $tokens[$index] = new Token([T_DOC_COMMENT, $doc->getContent()]);
        }
    }

    /**
     * Actually normalize the given type.
     *
     * @param string $type
     *
     * @return string
     */
    abstract protected function normalize($type);

    /**
     * Fix the types at the given line.
     *
     * We must be super careful not to modify parts of words.
     *
     * This will be nicely handled behind the scenes for us by the annotation class.
     */
    private function fixTypes(Annotation $annotation)
    {
        $types = $annotation->getTypes();

        $new = $this->normalizeTypes($types);

        if ($types !== $new) {
            $annotation->setTypes($new);
        }
    }

    /**
     * @param string[] $types
     *
     * @return string[]
     */
    private function normalizeTypes(array $types)
    {
        foreach ($types as $index => $type) {
            $types[$index] = $this->normalizeType($type);
        }

        return $types;
    }

    /**
     * Prepare the type and normalize it.
     *
     * @param string $type
     *
     * @return string
     */
    private function normalizeType($type)
    {
        if ('[]' === substr($type, -2)) {
            return $this->normalize(substr($type, 0, -2)).'[]';
        }

        return $this->normalize($type);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tokenizer;

/**
 * Analyzer of Tokens collection.
 *
 * Its role is to provide the ability to analyze collection.
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 * @author Gregor Harlan <gharlan@web.de>
 * @author SpacePossum
 *
 * @internal
 */
final class TokensAnalyzer
{
    /**
     * Tokens collection instance.
     *
     * @var Tokens
     */
    private $tokens;

    public function __construct(Tokens $tokens)
    {
        $this->tokens = $tokens;
    }

    /**
     * Get indexes of methods and properties in classy code (classes, interfaces and traits).
     *
     * @return array[]
     */
    public function getClassyElements()
    {
        $this->tokens->rewind();
        $elements = [];

        for ($index = 1, $count = \count($this->tokens) - 2; $index < $count; ++$index) {
            if ($this->tokens[$index]->isClassy()) {
                list($index, $newElements) = $this->findClassyElements($index, $index);
                $elements += $newElements;
            }
        }

        ksort($elements);

        return $elements;
    }

    /**
     * Get indexes of namespace uses.
     *
     * @param bool $perNamespace Return namespace uses per namespace
     *
     * @return int[]|int[][]
     */
    public function getImportUseIndexes($perNamespace = false)
    {
        $tokens = $this->tokens;

        $tokens->rewind();

        $uses = [];
        $namespaceIndex = 0;

        for ($index = 0, $limit = $tokens->count(); $index < $limit; ++$index) {
            $token = $tokens[$index];

            if ($token->isGivenKind(T_NAMESPACE)) {
                $nextTokenIndex = $tokens->getNextTokenOfKind($index, [';', '{']);
                $nextToken = $tokens[$nextTokenIndex];

                if ($nextToken->equals('{')) {
                    $index = $nextTokenIndex;
                }

                if ($perNamespace) {
                    ++$namespaceIndex;
                }

                continue;
            }

            if ($token->isGivenKind(T_USE)) {
                $uses[$namespaceIndex][] = $index;
            }
        }

        if (!$perNamespace && isset($uses[$namespaceIndex])) {
            return $uses[$namespaceIndex];
        }

        return $uses;
    }

    /**
     * Check if there is an array at given index.
     *
     * @param int $index
     *
     * @return bool
     */
    public function isArray($index)
    {
        return $this->tokens[$index]->isGivenKind([T_ARRAY, CT::T_ARRAY_SQUARE_BRACE_OPEN]);
    }

    /**
     * Check if the array at index is multiline.
     *
     * This only checks the root-level of the array.
     *
     * @param int $index
     *
     * @return bool
     */
    public function isArrayMultiLine($index)
    {
        if (!$this->isArray($index)) {
            throw new \InvalidArgumentException(sprintf('Not an array at given index %d.', $index));
        }

        $tokens = $this->tokens;

        // Skip only when its an array, for short arrays we need the brace for correct
        // level counting
        if ($tokens[$index]->isGivenKind(T_ARRAY)) {
            $index = $tokens->getNextMeaningfulToken($index);
        }

        $endIndex = $tokens[$index]->equals('(')
            ? $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $index)
            : $tokens->findBlockEnd(Tokens::BLOCK_TYPE_ARRAY_SQUARE_BRACE, $index)
        ;

        for (++$index; $index < $endIndex; ++$index) {
            $token = $tokens[$index];
            $blockType = Tokens::detectBlockType($token);

            if ($blockType && $blockType['isStart']) {
                $index = $tokens->findBlockEnd($blockType['type'], $index);

                continue;
            }

            if (
                $token->isWhitespace() &&
                !$tokens[$index - 1]->isGivenKind(T_END_HEREDOC) &&
                false !== strpos($token->getContent(), "\n")
            ) {
                return true;
            }
        }

        return false;
    }

    /**
     * Returns the attributes of the method under the given index.
     *
     * The array has the following items:
     * 'visibility' int|null  T_PRIVATE, T_PROTECTED or T_PUBLIC
     * 'static'     bool
     * 'abstract'   bool
     * 'final'      bool
     *
     * @param int $index Token index of the method (T_FUNCTION)
     *
     * @return array
     */
    public function getMethodAttributes($index)
    {
        $tokens = $this->tokens;
        $token = $tokens[$index];

        if (!$token->isGivenKind(T_FUNCTION)) {
            throw new \LogicException(sprintf('No T_FUNCTION at given index %d, got %s.', $index, $token->getName()));
        }

        $attributes = [
            'visibility' => null,
            'static' => false,
            'abstract' => false,
            'final' => false,
        ];

        for ($i = $index; $i >= 0; --$i) {
            $tokenIndex = $tokens->getPrevMeaningfulToken($i);

            $i = $tokenIndex;
            $token = $tokens[$tokenIndex];

            if ($token->isGivenKind(T_STATIC)) {
                $attributes['static'] = true;

                continue;
            }

            if ($token->isGivenKind(T_FINAL)) {
                $attributes['final'] = true;

                continue;
            }

            if ($token->isGivenKind(T_ABSTRACT)) {
                $attributes['abstract'] = true;

                continue;
            }

            // visibility

            if ($token->isGivenKind(T_PRIVATE)) {
                $attributes['visibility'] = T_PRIVATE;

                continue;
            }

            if ($token->isGivenKind(T_PROTECTED)) {
                $attributes['visibility'] = T_PROTECTED;

                continue;
            }

            if ($token->isGivenKind(T_PUBLIC)) {
                $attributes['visibility'] = T_PUBLIC;

                continue;
            }

            // found a meaningful token that is not part of
            // the function signature; stop looking
            break;
        }

        return $attributes;
    }

    /**
     * Check if there is an anonymous class under given index.
     *
     * @param int $index
     *
     * @return bool
     */
    public function isAnonymousClass($index)
    {
        $tokens = $this->tokens;
        $token = $tokens[$index];

        if (!$token->isClassy()) {
            throw new \LogicException(sprintf('No classy token at given index %d.', $index));
        }

        if (!$token->isGivenKind(T_CLASS)) {
            return false;
        }

        return $tokens[$tokens->getPrevMeaningfulToken($index)]->isGivenKind(T_NEW);
    }

    /**
     * Check if the function under given index is a lambda.
     *
     * @param int $index
     *
     * @return bool
     */
    public function isLambda($index)
    {
        if (
            !$this->tokens[$index]->isGivenKind(T_FUNCTION)
            && (\PHP_VERSION_ID < 70400 || !$this->tokens[$index]->isGivenKind(T_FN))
        ) {
            throw new \LogicException(sprintf('No T_FUNCTION or T_FN at given index %d, got %s.', $index, $this->tokens[$index]->getName()));
        }

        $startParenthesisIndex = $this->tokens->getNextMeaningfulToken($index);
        $startParenthesisToken = $this->tokens[$startParenthesisIndex];

        // skip & for `function & () {}` syntax
        if ($startParenthesisToken->isGivenKind(CT::T_RETURN_REF)) {
            $startParenthesisIndex = $this->tokens->getNextMeaningfulToken($startParenthesisIndex);
            $startParenthesisToken = $this->tokens[$startParenthesisIndex];
        }

        return $startParenthesisToken->equals('(');
    }

    /**
     * Check if the T_STRING under given index is a constant invocation.
     *
     * @param int $index
     *
     * @return bool
     */
    public function isConstantInvocation($index)
    {
        if (!$this->tokens[$index]->isGivenKind(T_STRING)) {
            throw new \LogicException(sprintf('No T_STRING at given index %d, got %s.', $index, $this->tokens[$index]->getName()));
        }

        $nextIndex = $this->tokens->getNextMeaningfulToken($index);

        if (
            $this->tokens[$nextIndex]->equalsAny(['(', '{']) ||
            $this->tokens[$nextIndex]->isGivenKind([T_AS, T_DOUBLE_COLON, T_ELLIPSIS, T_NS_SEPARATOR, CT::T_RETURN_REF, CT::T_TYPE_ALTERNATION, T_VARIABLE])
        ) {
            return false;
        }

        $prevIndex = $this->tokens->getPrevMeaningfulToken($index);

        if ($this->tokens[$prevIndex]->isGivenKind([T_AS, T_CLASS, T_CONST, T_DOUBLE_COLON, T_FUNCTION, T_GOTO, CT::T_GROUP_IMPORT_BRACE_OPEN, T_INTERFACE, T_OBJECT_OPERATOR, T_TRAIT, CT::T_TYPE_COLON])) {
            return false;
        }

        while ($this->tokens[$prevIndex]->isGivenKind([CT::T_NAMESPACE_OPERATOR, T_NS_SEPARATOR, T_STRING])) {
            $prevIndex = $this->tokens->getPrevMeaningfulToken($prevIndex);
        }

        if ($this->tokens[$prevIndex]->isGivenKind([CT::T_CONST_IMPORT, T_EXTENDS, CT::T_FUNCTION_IMPORT, T_IMPLEMENTS, T_INSTANCEOF, T_INSTEADOF, T_NAMESPACE, T_NEW, CT::T_NULLABLE_TYPE, CT::T_TYPE_COLON, T_USE, CT::T_USE_TRAIT])) {
            return false;
        }

        // `FOO & $bar` could be:
        //   - function reference parameter: function baz(Foo & $bar) {}
        //   - bit operator: $x = FOO & $bar;
        if ($this->tokens[$nextIndex]->equals('&') && $this->tokens[$this->tokens->getNextMeaningfulToken($nextIndex)]->isGivenKind(T_VARIABLE)) {
            $checkIndex = $this->tokens->getPrevTokenOfKind($prevIndex, [';', '{', '}', [T_FUNCTION], [T_OPEN_TAG], [T_OPEN_TAG_WITH_ECHO]]);

            if ($this->tokens[$checkIndex]->isGivenKind(T_FUNCTION)) {
                return false;
            }
        }

        // check for `extends`/`implements`/`use` list
        if ($this->tokens[$prevIndex]->equals(',')) {
            $checkIndex = $prevIndex;
            while ($this->tokens[$checkIndex]->equalsAny([',', [T_AS], [CT::T_NAMESPACE_OPERATOR], [T_NS_SEPARATOR], [T_STRING]])) {
                $checkIndex = $this->tokens->getPrevMeaningfulToken($checkIndex);
            }

            if ($this->tokens[$checkIndex]->isGivenKind([T_EXTENDS, CT::T_GROUP_IMPORT_BRACE_OPEN, T_IMPLEMENTS, T_USE, CT::T_USE_TRAIT])) {
                return false;
            }
        }

        // check for array in double quoted string: `"..$foo[bar].."`
        if ($this->tokens[$prevIndex]->equals('[') && $this->tokens[$nextIndex]->equals(']')) {
            $checkToken = $this->tokens[$this->tokens->getNextMeaningfulToken($nextIndex)];

            if ($checkToken->equals('"') || $checkToken->isGivenKind([T_CURLY_OPEN, T_DOLLAR_OPEN_CURLY_BRACES, T_ENCAPSED_AND_WHITESPACE, T_VARIABLE])) {
                return false;
            }
        }

        // check for goto label
        if ($this->tokens[$nextIndex]->equals(':') && $this->tokens[$prevIndex]->equalsAny([';', '}', [T_OPEN_TAG], [T_OPEN_TAG_WITH_ECHO]])) {
            return false;
        }

        return true;
    }

    /**
     * Checks if there is an unary successor operator under given index.
     *
     * @param int $index
     *
     * @return bool
     */
    public function isUnarySuccessorOperator($index)
    {
        static $allowedPrevToken = [
            ']',
            [T_STRING],
            [T_VARIABLE],
            [CT::T_ARRAY_INDEX_CURLY_BRACE_CLOSE],
            [CT::T_DYNAMIC_PROP_BRACE_CLOSE],
            [CT::T_DYNAMIC_VAR_BRACE_CLOSE],
        ];

        $tokens = $this->tokens;
        $token = $tokens[$index];

        if (!$token->isGivenKind([T_INC, T_DEC])) {
            return false;
        }

        $prevToken = $tokens[$tokens->getPrevMeaningfulToken($index)];

        return $prevToken->equalsAny($allowedPrevToken);
    }

    /**
     * Checks if there is an unary predecessor operator under given index.
     *
     * @param int $index
     *
     * @return bool
     */
    public function isUnaryPredecessorOperator($index)
    {
        static $potentialSuccessorOperator = [T_INC, T_DEC];

        static $potentialBinaryOperator = ['+', '-', '&', [CT::T_RETURN_REF]];

        static $otherOperators;
        if (null === $otherOperators) {
            $otherOperators = ['!', '~', '@', [T_ELLIPSIS]];
        }

        static $disallowedPrevTokens;
        if (null === $disallowedPrevTokens) {
            $disallowedPrevTokens = [
                ']',
                '}',
                ')',
                '"',
                '`',
                [CT::T_ARRAY_SQUARE_BRACE_CLOSE],
                [CT::T_ARRAY_INDEX_CURLY_BRACE_CLOSE],
                [CT::T_DYNAMIC_PROP_BRACE_CLOSE],
                [CT::T_DYNAMIC_VAR_BRACE_CLOSE],
                [T_CLASS_C],
                [T_CONSTANT_ENCAPSED_STRING],
                [T_DEC],
                [T_DIR],
                [T_DNUMBER],
                [T_FILE],
                [T_FUNC_C],
                [T_INC],
                [T_LINE],
                [T_LNUMBER],
                [T_METHOD_C],
                [T_NS_C],
                [T_STRING],
                [T_TRAIT_C],
                [T_VARIABLE],
            ];
        }

        $tokens = $this->tokens;
        $token = $tokens[$index];

        if ($token->isGivenKind($potentialSuccessorOperator)) {
            return !$this->isUnarySuccessorOperator($index);
        }

        if ($token->equalsAny($otherOperators)) {
            return true;
        }

        if (!$token->equalsAny($potentialBinaryOperator)) {
            return false;
        }

        $prevToken = $tokens[$tokens->getPrevMeaningfulToken($index)];

        if (!$prevToken->equalsAny($disallowedPrevTokens)) {
            return true;
        }

        if (!$token->equals('&') || !$prevToken->isGivenKind(T_STRING)) {
            return false;
        }

        static $searchTokens = [
            ';',
            '{',
            '}',
            [T_FUNCTION],
            [T_OPEN_TAG],
            [T_OPEN_TAG_WITH_ECHO],
        ];
        $prevToken = $tokens[$tokens->getPrevTokenOfKind($index, $searchTokens)];

        return $prevToken->isGivenKind(T_FUNCTION);
    }

    /**
     * Checks if there is a binary operator under given index.
     *
     * @param int $index
     *
     * @return bool
     */
    public function isBinaryOperator($index)
    {
        static $nonArrayOperators = [
            '=' => true,
            '*' => true,
            '/' => true,
            '%' => true,
            '<' => true,
            '>' => true,
            '|' => true,
            '^' => true,
            '.' => true,
        ];

        static $potentialUnaryNonArrayOperators = [
            '+' => true,
            '-' => true,
            '&' => true,
        ];

        static $arrayOperators;
        if (null === $arrayOperators) {
            $arrayOperators = [
                T_AND_EQUAL => true,            // &=
                T_BOOLEAN_AND => true,          // &&
                T_BOOLEAN_OR => true,           // ||
                T_CONCAT_EQUAL => true,         // .=
                T_DIV_EQUAL => true,            // /=
                T_DOUBLE_ARROW => true,         // =>
                T_IS_EQUAL => true,             // ==
                T_IS_GREATER_OR_EQUAL => true,  // >=
                T_IS_IDENTICAL => true,         // ===
                T_IS_NOT_EQUAL => true,         // !=, <>
                T_IS_NOT_IDENTICAL => true,     // !==
                T_IS_SMALLER_OR_EQUAL => true,  // <=
                T_LOGICAL_AND => true,          // and
                T_LOGICAL_OR => true,           // or
                T_LOGICAL_XOR => true,          // xor
                T_MINUS_EQUAL => true,          // -=
                T_MOD_EQUAL => true,            // %=
                T_MUL_EQUAL => true,            // *=
                T_OR_EQUAL => true,             // |=
                T_PLUS_EQUAL => true,           // +=
                T_POW => true,                  // **
                T_POW_EQUAL => true,            // **=
                T_SL => true,                   // <<
                T_SL_EQUAL => true,             // <<=
                T_SR => true,                   // >>
                T_SR_EQUAL => true,             // >>=
                T_XOR_EQUAL => true,            // ^=
                CT::T_TYPE_ALTERNATION => true, // |
            ];

            if (\defined('T_SPACESHIP')) {
                $arrayOperators[T_SPACESHIP] = true; // <=>
            }

            if (\defined('T_COALESCE')) {
                $arrayOperators[T_COALESCE] = true;  // ??
            }

            if (\defined('T_COALESCE_EQUAL')) {
                $arrayOperators[T_COALESCE_EQUAL] = true;  // ??=
            }
        }

        $tokens = $this->tokens;
        $token = $tokens[$index];

        if ($token->isArray()) {
            return isset($arrayOperators[$token->getId()]);
        }

        if (isset($nonArrayOperators[$token->getContent()])) {
            return true;
        }

        if (isset($potentialUnaryNonArrayOperators[$token->getContent()])) {
            return !$this->isUnaryPredecessorOperator($index);
        }

        return false;
    }

    /**
     * Check if `T_WHILE` token at given index is `do { ... } while ();` syntax
     * and not `while () { ...}`.
     *
     * @param int $index
     *
     * @return bool
     */
    public function isWhilePartOfDoWhile($index)
    {
        $tokens = $this->tokens;
        $token = $tokens[$index];

        if (!$token->isGivenKind(T_WHILE)) {
            throw new \LogicException(sprintf('No T_WHILE at given index %d, got %s.', $index, $token->getName()));
        }

        $endIndex = $tokens->getPrevMeaningfulToken($index);
        if (!$tokens[$endIndex]->equals('}')) {
            return false;
        }

        $startIndex = $tokens->findBlockStart(Tokens::BLOCK_TYPE_CURLY_BRACE, $endIndex);
        $beforeStartIndex = $tokens->getPrevMeaningfulToken($startIndex);

        return $tokens[$beforeStartIndex]->isGivenKind(T_DO);
    }

    /**
     * Find classy elements.
     *
     * Searches in tokens from the classy (start) index till the end (index) of the classy.
     * Returns an array; first value is the index until the method has analysed (int), second the found classy elements (array).
     *
     * @param int $classIndex classy index
     * @param int $index
     *
     * @return array
     */
    private function findClassyElements($classIndex, $index)
    {
        $elements = [];
        $curlyBracesLevel = 0;
        $bracesLevel = 0;
        ++$index; // skip the classy index itself

        for ($count = \count($this->tokens); $index < $count; ++$index) {
            $token = $this->tokens[$index];

            if ($token->isGivenKind(T_ENCAPSED_AND_WHITESPACE)) {
                continue;
            }

            if ($token->isClassy()) { // anonymous class in class
                // check for nested anonymous classes inside the new call of an anonymous class,
                // for example `new class(function (){new class(function (){new class(function (){}){};}){};}){};` etc.
                // if class(XYZ) {} skip till `(` as XYZ might contain functions etc.

                $nestedClassIndex = $index;
                $index = $this->tokens->getNextMeaningfulToken($index);

                if ($this->tokens[$index]->equals('(')) {
                    ++$index; // move after `(`

                    for ($nestedBracesLevel = 1; $index < $count; ++$index) {
                        $token = $this->tokens[$index];

                        if ($token->equals('(')) {
                            ++$nestedBracesLevel;

                            continue;
                        }

                        if ($token->equals(')')) {
                            --$nestedBracesLevel;

                            if (0 === $nestedBracesLevel) {
                                list($index, $newElements) = $this->findClassyElements($nestedClassIndex, $index);
                                $elements += $newElements;

                                break;
                            }

                            continue;
                        }

                        if ($token->isClassy()) { // anonymous class in class
                            list($index, $newElements) = $this->findClassyElements($index, $index);
                            $elements += $newElements;
                        }
                    }
                } else {
                    list($index, $newElements) = $this->findClassyElements($nestedClassIndex, $nestedClassIndex);
                    $elements += $newElements;
                }

                continue;
            }

            if ($token->equals('(')) {
                ++$bracesLevel;

                continue;
            }

            if ($token->equals(')')) {
                --$bracesLevel;

                continue;
            }

            if ($token->equals('{')) {
                ++$curlyBracesLevel;

                continue;
            }

            if ($token->equals('}')) {
                --$curlyBracesLevel;

                if (0 === $curlyBracesLevel) {
                    break;
                }

                continue;
            }

            if (1 !== $curlyBracesLevel || !$token->isArray()) {
                continue;
            }

            if (0 === $bracesLevel && $token->isGivenKind(T_VARIABLE)) {
                $elements[$index] = [
                    'token' => $token,
                    'type' => 'property',
                    'classIndex' => $classIndex,
                ];

                continue;
            }

            if ($token->isGivenKind(T_FUNCTION)) {
                $elements[$index] = [
                    'token' => $token,
                    'type' => 'method',
                    'classIndex' => $classIndex,
                ];
            } elseif ($token->isGivenKind(T_CONST)) {
                $elements[$index] = [
                    'token' => $token,
                    'type' => 'const',
                    'classIndex' => $classIndex,
                ];
            }
        }

        return [$index, $elements];
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tokenizer;

use PhpCsFixer\Preg;
use PhpCsFixer\Utils;

/**
 * Collection of code tokens.
 *
 * Its role is to provide the ability to manage collection and navigate through it.
 *
 * As a token prototype you should understand a single element generated by token_get_all.
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @extends \SplFixedArray<Token>
 */
class Tokens extends \SplFixedArray
{
    const BLOCK_TYPE_PARENTHESIS_BRACE = 1;
    const BLOCK_TYPE_CURLY_BRACE = 2;
    const BLOCK_TYPE_INDEX_SQUARE_BRACE = 3;
    const BLOCK_TYPE_ARRAY_SQUARE_BRACE = 4;
    const BLOCK_TYPE_DYNAMIC_PROP_BRACE = 5;
    const BLOCK_TYPE_DYNAMIC_VAR_BRACE = 6;
    const BLOCK_TYPE_ARRAY_INDEX_CURLY_BRACE = 7;
    const BLOCK_TYPE_GROUP_IMPORT_BRACE = 8;
    const BLOCK_TYPE_DESTRUCTURING_SQUARE_BRACE = 9;
    const BLOCK_TYPE_BRACE_CLASS_INSTANTIATION = 10;

    /**
     * Static class cache.
     *
     * @var array
     */
    private static $cache = [];

    /**
     * Cache of block edges. Any change in collection will invalidate it.
     *
     * @var array<int, int>
     */
    private $blockEndCache = [];

    /**
     * crc32 hash of code string.
     *
     * @var string
     */
    private $codeHash;

    /**
     * Flag is collection was changed.
     *
     * It doesn't know about change of collection's items. To check it run `isChanged` method.
     *
     * @var bool
     */
    private $changed = false;

    /**
     * Set of found token kinds.
     *
     * When the token kind is present in this set it means that given token kind
     * was ever seen inside the collection (but may not be part of it any longer).
     * The key is token kind and the value is always true.
     *
     * @var array<int|string, int>
     */
    private $foundTokenKinds = [];

    /**
     * @var bool
     *
     * @todo remove at 3.0
     */
    private static $isLegacyMode = false;

    /**
     * Clone tokens collection.
     */
    public function __clone()
    {
        foreach ($this as $key => $val) {
            $this[$key] = clone $val;
        }
    }

    /**
     * @return bool
     *
     * @internal
     *
     * @todo remove at 3.0
     */
    public static function isLegacyMode()
    {
        return self::$isLegacyMode;
    }

    /**
     * @param bool $isLegacy
     *
     * @internal
     *
     * @todo remove at 3.0
     */
    public static function setLegacyMode($isLegacy)
    {
        if (getenv('PHP_CS_FIXER_FUTURE_MODE') && $isLegacy) {
            throw new \RuntimeException('Cannot enable `legacy mode` when using `future mode`. This check was performed as `PHP_CS_FIXER_FUTURE_MODE` env var is set.');
        }

        self::$isLegacyMode = $isLegacy;
    }

    /**
     * Clear cache - one position or all of them.
     *
     * @param null|string $key position to clear, when null clear all
     */
    public static function clearCache($key = null)
    {
        if (null === $key) {
            self::$cache = [];

            return;
        }

        if (self::hasCache($key)) {
            unset(self::$cache[$key]);
        }
    }

    /**
     * Detect type of block.
     *
     * @param Token $token token
     *
     * @return null|array array with 'type' and 'isStart' keys or null if not found
     */
    public static function detectBlockType(Token $token)
    {
        foreach (self::getBlockEdgeDefinitions() as $type => $definition) {
            if ($token->equals($definition['start'])) {
                return ['type' => $type, 'isStart' => true];
            }

            if ($token->equals($definition['end'])) {
                return ['type' => $type, 'isStart' => false];
            }
        }

        return null;
    }

    /**
     * Create token collection from array.
     *
     * @param Token[] $array       the array to import
     * @param bool    $saveIndexes save the numeric indexes used in the original array, default is yes
     *
     * @return Tokens
     */
    public static function fromArray($array, $saveIndexes = null)
    {
        $tokens = new self(\count($array));

        if (null === $saveIndexes || $saveIndexes) {
            foreach ($array as $key => $val) {
                $tokens[$key] = $val;
            }
        } else {
            $index = 0;

            foreach ($array as $val) {
                $tokens[$index++] = $val;
            }
        }

        $tokens->generateCode(); // regenerate code to calculate code hash

        return $tokens;
    }

    /**
     * Create token collection directly from code.
     *
     * @param string $code PHP code
     *
     * @return Tokens
     */
    public static function fromCode($code)
    {
        $codeHash = self::calculateCodeHash($code);

        if (self::hasCache($codeHash)) {
            $tokens = self::getCache($codeHash);

            // generate the code to recalculate the hash
            $tokens->generateCode();

            if ($codeHash === $tokens->codeHash) {
                $tokens->clearEmptyTokens();
                $tokens->clearChanged();

                return $tokens;
            }
        }

        $tokens = new self();
        $tokens->setCode($code);
        $tokens->clearChanged();

        return $tokens;
    }

    /**
     * @return array
     */
    public static function getBlockEdgeDefinitions()
    {
        return [
            self::BLOCK_TYPE_CURLY_BRACE => [
                'start' => '{',
                'end' => '}',
            ],
            self::BLOCK_TYPE_PARENTHESIS_BRACE => [
                'start' => '(',
                'end' => ')',
            ],
            self::BLOCK_TYPE_INDEX_SQUARE_BRACE => [
                'start' => '[',
                'end' => ']',
            ],
            self::BLOCK_TYPE_ARRAY_SQUARE_BRACE => [
                'start' => [CT::T_ARRAY_SQUARE_BRACE_OPEN, '['],
                'end' => [CT::T_ARRAY_SQUARE_BRACE_CLOSE, ']'],
            ],
            self::BLOCK_TYPE_DYNAMIC_PROP_BRACE => [
                'start' => [CT::T_DYNAMIC_PROP_BRACE_OPEN, '{'],
                'end' => [CT::T_DYNAMIC_PROP_BRACE_CLOSE, '}'],
            ],
            self::BLOCK_TYPE_DYNAMIC_VAR_BRACE => [
                'start' => [CT::T_DYNAMIC_VAR_BRACE_OPEN, '{'],
                'end' => [CT::T_DYNAMIC_VAR_BRACE_CLOSE, '}'],
            ],
            self::BLOCK_TYPE_ARRAY_INDEX_CURLY_BRACE => [
                'start' => [CT::T_ARRAY_INDEX_CURLY_BRACE_OPEN, '{'],
                'end' => [CT::T_ARRAY_INDEX_CURLY_BRACE_CLOSE, '}'],
            ],
            self::BLOCK_TYPE_GROUP_IMPORT_BRACE => [
                'start' => [CT::T_GROUP_IMPORT_BRACE_OPEN, '{'],
                'end' => [CT::T_GROUP_IMPORT_BRACE_CLOSE, '}'],
            ],
            self::BLOCK_TYPE_DESTRUCTURING_SQUARE_BRACE => [
                'start' => [CT::T_DESTRUCTURING_SQUARE_BRACE_OPEN, '['],
                'end' => [CT::T_DESTRUCTURING_SQUARE_BRACE_CLOSE, ']'],
            ],
            self::BLOCK_TYPE_BRACE_CLASS_INSTANTIATION => [
                'start' => [CT::T_BRACE_CLASS_INSTANTIATION_OPEN, '('],
                'end' => [CT::T_BRACE_CLASS_INSTANTIATION_CLOSE, ')'],
            ],
        ];
    }

    /**
     * Set new size of collection.
     *
     * @param int $size
     */
    public function setSize($size)
    {
        if ($this->getSize() !== $size) {
            $this->changed = true;
            parent::setSize($size);
        }
    }

    /**
     * Unset collection item.
     *
     * @param int $index
     */
    public function offsetUnset($index)
    {
        $this->changed = true;
        $this->unregisterFoundToken($this[$index]);
        parent::offsetUnset($index);
    }

    /**
     * Set collection item.
     *
     * Warning! `$newval` must not be typehinted to be compatible with `ArrayAccess::offsetSet` method.
     *
     * @param int   $index
     * @param Token $newval
     */
    public function offsetSet($index, $newval)
    {
        $this->blockEndCache = [];

        if (!isset($this[$index]) || !$this[$index]->equals($newval)) {
            $this->changed = true;

            if (isset($this[$index])) {
                $this->unregisterFoundToken($this[$index]);
            }

            $this->registerFoundToken($newval);
        }

        parent::offsetSet($index, $newval);
    }

    /**
     * Clear internal flag if collection was changed and flag for all collection's items.
     */
    public function clearChanged()
    {
        $this->changed = false;

        if (self::isLegacyMode()) {
            foreach ($this as $token) {
                $token->clearChanged();
            }
        }
    }

    /**
     * Clear empty tokens.
     *
     * Empty tokens can occur e.g. after calling clear on item of collection.
     */
    public function clearEmptyTokens()
    {
        $limit = $this->count();
        $index = 0;

        for (; $index < $limit; ++$index) {
            if ($this->isEmptyAt($index)) {
                break;
            }
        }

        // no empty token found, therefore there is no need to override collection
        if ($limit === $index) {
            return;
        }

        for ($count = $index; $index < $limit; ++$index) {
            if (!$this->isEmptyAt($index)) {
                /** @var Token $token */
                $token = $this[$index];
                $this[$count++] = $token;
            }
        }

        $this->setSize($count);
    }

    /**
     * Ensure that on given index is a whitespace with given kind.
     *
     * If there is a whitespace then it's content will be modified.
     * If not - the new Token will be added.
     *
     * @param int    $index       index
     * @param int    $indexOffset index offset for Token insertion
     * @param string $whitespace  whitespace to set
     *
     * @return bool if new Token was added
     */
    public function ensureWhitespaceAtIndex($index, $indexOffset, $whitespace)
    {
        $removeLastCommentLine = static function (self $tokens, $index, $indexOffset, $whitespace) {
            $token = $tokens[$index];

            if (1 === $indexOffset && $token->isGivenKind(T_OPEN_TAG)) {
                if (0 === strpos($whitespace, "\r\n")) {
                    $tokens[$index] = new Token([T_OPEN_TAG, rtrim($token->getContent())."\r\n"]);

                    return \strlen($whitespace) > 2 // can be removed on PHP 7; https://php.net/manual/en/function.substr.php
                        ? substr($whitespace, 2)
                        : ''
                    ;
                }

                $tokens[$index] = new Token([T_OPEN_TAG, rtrim($token->getContent()).$whitespace[0]]);

                return \strlen($whitespace) > 1 // can be removed on PHP 7; https://php.net/manual/en/function.substr.php
                    ? substr($whitespace, 1)
                    : ''
                ;
            }

            return $whitespace;
        };

        if ($this[$index]->isWhitespace()) {
            $whitespace = $removeLastCommentLine($this, $index - 1, $indexOffset, $whitespace);

            if ('' === $whitespace) {
                $this->clearAt($index);
            } else {
                $this[$index] = new Token([T_WHITESPACE, $whitespace]);
            }

            return false;
        }

        $whitespace = $removeLastCommentLine($this, $index, $indexOffset, $whitespace);
        if ('' === $whitespace) {
            return false;
        }

        $this->insertAt(
            $index + $indexOffset,
            [
                new Token([T_WHITESPACE, $whitespace]),
            ]
        );

        return true;
    }

    /**
     * @param int  $type        type of block, one of BLOCK_TYPE_*
     * @param int  $searchIndex index of opening brace
     * @param bool $findEnd     if method should find block's end, default true, otherwise method find block's start
     *
     * @return int index of closing brace
     */
    public function findBlockEnd($type, $searchIndex, $findEnd = true)
    {
        if (3 === \func_num_args()) {
            if ($findEnd) {
                @trigger_error('Argument #3 of Tokens::findBlockEnd is deprecated and will be removed in 3.0, you can safely drop the argument.', E_USER_DEPRECATED);
            } else {
                @trigger_error('Argument #3 of Tokens::findBlockEnd is deprecated and will be removed in 3.0, use Tokens::findBlockStart instead.', E_USER_DEPRECATED);
            }
        }

        return $this->findOppositeBlockEdge($type, $searchIndex, $findEnd);
    }

    /**
     * @param int $type        type of block, one of BLOCK_TYPE_*
     * @param int $searchIndex index of closing brace
     *
     * @return int index of opening brace
     */
    public function findBlockStart($type, $searchIndex)
    {
        return $this->findOppositeBlockEdge($type, $searchIndex, false);
    }

    /**
     * @param array|int $possibleKind kind or array of kind
     * @param int       $start        optional offset
     * @param null|int  $end          optional limit
     *
     * @return array array of tokens of given kinds or assoc array of arrays
     */
    public function findGivenKind($possibleKind, $start = 0, $end = null)
    {
        $this->rewind();
        if (null === $end) {
            $end = $this->count();
        }

        $elements = [];
        $possibleKinds = (array) $possibleKind;

        foreach ($possibleKinds as $kind) {
            $elements[$kind] = [];
        }

        if (!self::isLegacyMode()) {
            $possibleKinds = array_filter($possibleKinds, function ($kind) {
                return $this->isTokenKindFound($kind);
            });
        }

        if (\count($possibleKinds)) {
            for ($i = $start; $i < $end; ++$i) {
                $token = $this[$i];
                if ($token->isGivenKind($possibleKinds)) {
                    $elements[$token->getId()][$i] = $token;
                }
            }
        }

        return \is_array($possibleKind) ? $elements : $elements[$possibleKind];
    }

    /**
     * @return string
     */
    public function generateCode()
    {
        $code = $this->generatePartialCode(0, \count($this) - 1);
        $this->changeCodeHash(self::calculateCodeHash($code));

        return $code;
    }

    /**
     * Generate code from tokens between given indexes.
     *
     * @param int $start start index
     * @param int $end   end index
     *
     * @return string
     */
    public function generatePartialCode($start, $end)
    {
        $code = '';

        for ($i = $start; $i <= $end; ++$i) {
            $code .= $this[$i]->getContent();
        }

        return $code;
    }

    /**
     * Get hash of code.
     *
     * @return string
     */
    public function getCodeHash()
    {
        return $this->codeHash;
    }

    /**
     * Get index for closest next token which is non whitespace.
     *
     * This method is shorthand for getNonWhitespaceSibling method.
     *
     * @param int         $index       token index
     * @param null|string $whitespaces whitespaces characters for Token::isWhitespace
     *
     * @return null|int
     */
    public function getNextNonWhitespace($index, $whitespaces = null)
    {
        return $this->getNonWhitespaceSibling($index, 1, $whitespaces);
    }

    /**
     * Get index for closest next token of given kind.
     *
     * This method is shorthand for getTokenOfKindSibling method.
     *
     * @param int   $index         token index
     * @param array $tokens        possible tokens
     * @param bool  $caseSensitive perform a case sensitive comparison
     *
     * @return null|int
     */
    public function getNextTokenOfKind($index, array $tokens = [], $caseSensitive = true)
    {
        return $this->getTokenOfKindSibling($index, 1, $tokens, $caseSensitive);
    }

    /**
     * Get index for closest sibling token which is non whitespace.
     *
     * @param int         $index       token index
     * @param int         $direction   direction for looking, +1 or -1
     * @param null|string $whitespaces whitespaces characters for Token::isWhitespace
     *
     * @return null|int
     */
    public function getNonWhitespaceSibling($index, $direction, $whitespaces = null)
    {
        while (true) {
            $index += $direction;

            if (!$this->offsetExists($index)) {
                return null;
            }

            $token = $this[$index];

            if (!$token->isWhitespace($whitespaces)) {
                return $index;
            }
        }
    }

    /**
     * Get index for closest previous token which is non whitespace.
     *
     * This method is shorthand for getNonWhitespaceSibling method.
     *
     * @param int         $index       token index
     * @param null|string $whitespaces whitespaces characters for Token::isWhitespace
     *
     * @return null|int
     */
    public function getPrevNonWhitespace($index, $whitespaces = null)
    {
        return $this->getNonWhitespaceSibling($index, -1, $whitespaces);
    }

    /**
     * Get index for closest previous token of given kind.
     * This method is shorthand for getTokenOfKindSibling method.
     *
     * @param int   $index         token index
     * @param array $tokens        possible tokens
     * @param bool  $caseSensitive perform a case sensitive comparison
     *
     * @return null|int
     */
    public function getPrevTokenOfKind($index, array $tokens = [], $caseSensitive = true)
    {
        return $this->getTokenOfKindSibling($index, -1, $tokens, $caseSensitive);
    }

    /**
     * Get index for closest sibling token of given kind.
     *
     * @param int   $index         token index
     * @param int   $direction     direction for looking, +1 or -1
     * @param array $tokens        possible tokens
     * @param bool  $caseSensitive perform a case sensitive comparison
     *
     * @return null|int
     */
    public function getTokenOfKindSibling($index, $direction, array $tokens = [], $caseSensitive = true)
    {
        if (!self::isLegacyMode()) {
            $tokens = array_filter($tokens, function ($token) {
                return $this->isTokenKindFound($this->extractTokenKind($token));
            });
        }

        if (!\count($tokens)) {
            return null;
        }

        while (true) {
            $index += $direction;

            if (!$this->offsetExists($index)) {
                return null;
            }

            $token = $this[$index];

            if ($token->equalsAny($tokens, $caseSensitive)) {
                return $index;
            }
        }
    }

    /**
     * Get index for closest sibling token not of given kind.
     *
     * @param int   $index     token index
     * @param int   $direction direction for looking, +1 or -1
     * @param array $tokens    possible tokens
     *
     * @return null|int
     */
    public function getTokenNotOfKindSibling($index, $direction, array $tokens = [])
    {
        while (true) {
            $index += $direction;

            if (!$this->offsetExists($index)) {
                return null;
            }

            if ($this->isEmptyAt($index)) {
                continue;
            }

            if ($this[$index]->equalsAny($tokens)) {
                continue;
            }

            return $index;
        }
    }

    /**
     * Get index for closest sibling token that is not a whitespace or comment.
     *
     * @param int $index     token index
     * @param int $direction direction for looking, +1 or -1
     *
     * @return null|int
     */
    public function getMeaningfulTokenSibling($index, $direction)
    {
        return $this->getTokenNotOfKindSibling(
            $index,
            $direction,
            [[T_WHITESPACE], [T_COMMENT], [T_DOC_COMMENT]]
        );
    }

    /**
     * Get index for closest sibling token which is not empty.
     *
     * @param int $index     token index
     * @param int $direction direction for looking, +1 or -1
     *
     * @return null|int
     */
    public function getNonEmptySibling($index, $direction)
    {
        while (true) {
            $index += $direction;

            if (!$this->offsetExists($index)) {
                return null;
            }

            if (!$this->isEmptyAt($index)) {
                return $index;
            }
        }
    }

    /**
     * Get index for closest next token that is not a whitespace or comment.
     *
     * @param int $index token index
     *
     * @return null|int
     */
    public function getNextMeaningfulToken($index)
    {
        return $this->getMeaningfulTokenSibling($index, 1);
    }

    /**
     * Get index for closest previous token that is not a whitespace or comment.
     *
     * @param int $index token index
     *
     * @return null|int
     */
    public function getPrevMeaningfulToken($index)
    {
        return $this->getMeaningfulTokenSibling($index, -1);
    }

    /**
     * Find a sequence of meaningful tokens and returns the array of their locations.
     *
     * @param array                 $sequence      an array of tokens (kinds) (same format used by getNextTokenOfKind)
     * @param int                   $start         start index, defaulting to the start of the file
     * @param int                   $end           end index, defaulting to the end of the file
     * @param array<int, bool>|bool $caseSensitive global case sensitiveness or an array of booleans, whose keys should match
     *                                             the ones used in $others. If any is missing, the default case-sensitive
     *                                             comparison is used
     *
     * @return null|array<int, Token> an array containing the tokens matching the sequence elements, indexed by their position
     */
    public function findSequence(array $sequence, $start = 0, $end = null, $caseSensitive = true)
    {
        $sequenceCount = \count($sequence);
        if (0 === $sequenceCount) {
            throw new \InvalidArgumentException('Invalid sequence.');
        }

        // $end defaults to the end of the collection
        $end = null === $end ? \count($this) - 1 : min($end, \count($this) - 1);

        if ($start + $sequenceCount - 1 > $end) {
            return null;
        }

        // make sure the sequence content is "meaningful"
        foreach ($sequence as $key => $token) {
            // if not a Token instance already, we convert it to verify the meaningfulness
            if (!$token instanceof Token) {
                if (\is_array($token) && !isset($token[1])) {
                    // fake some content as it is required by the Token constructor,
                    // although optional for search purposes
                    $token[1] = 'DUMMY';
                }
                $token = new Token($token);
            }

            if ($token->isWhitespace() || $token->isComment() || '' === $token->getContent()) {
                throw new \InvalidArgumentException(sprintf('Non-meaningful token at position: "%s".', $key));
            }
        }

        if (!self::isLegacyMode()) {
            foreach ($sequence as $token) {
                if (!$this->isTokenKindFound($this->extractTokenKind($token))) {
                    return null;
                }
            }
        }

        // remove the first token from the sequence, so we can freely iterate through the sequence after a match to
        // the first one is found
        $key = key($sequence);
        $firstCs = Token::isKeyCaseSensitive($caseSensitive, $key);
        $firstToken = $sequence[$key];
        unset($sequence[$key]);

        // begin searching for the first token in the sequence (start included)
        $index = $start - 1;
        while (null !== $index && $index <= $end) {
            $index = $this->getNextTokenOfKind($index, [$firstToken], $firstCs);

            // ensure we found a match and didn't get past the end index
            if (null === $index || $index > $end) {
                return null;
            }

            // initialise the result array with the current index
            $result = [$index => $this[$index]];

            // advance cursor to the current position
            $currIdx = $index;

            // iterate through the remaining tokens in the sequence
            foreach ($sequence as $key => $token) {
                $currIdx = $this->getNextMeaningfulToken($currIdx);

                // ensure we didn't go too far
                if (null === $currIdx || $currIdx > $end) {
                    return null;
                }

                if (!$this[$currIdx]->equals($token, Token::isKeyCaseSensitive($caseSensitive, $key))) {
                    // not a match, restart the outer loop
                    continue 2;
                }

                // append index to the result array
                $result[$currIdx] = $this[$currIdx];
            }

            // do we have a complete match?
            // hint: $result is bigger than $sequence since the first token has been removed from the latter
            if (\count($sequence) < \count($result)) {
                return $result;
            }
        }

        return null;
    }

    /**
     * Insert instances of Token inside collection.
     *
     * @param int                       $index start inserting index
     * @param array<Token>|Token|Tokens $items instances of Token to insert
     */
    public function insertAt($index, $items)
    {
        $items = \is_array($items) || $items instanceof self ? $items : [$items];
        $itemsCnt = \count($items);

        if (0 === $itemsCnt) {
            return;
        }

        $oldSize = \count($this);
        $this->changed = true;
        $this->blockEndCache = [];
        $this->setSize($oldSize + $itemsCnt);

        // since we only move already existing items around, we directly call into SplFixedArray::offset* methods.
        // that way we get around additional overhead this class adds with overridden offset* methods.
        for ($i = $oldSize + $itemsCnt - 1; $i >= $index; --$i) {
            $oldItem = parent::offsetExists($i - $itemsCnt) ? parent::offsetGet($i - $itemsCnt) : new Token('');
            parent::offsetSet($i, $oldItem);
        }

        for ($i = 0; $i < $itemsCnt; ++$i) {
            if ('' === $items[$i]->getContent()) {
                throw new \InvalidArgumentException('Must not add empty token to collection.');
            }

            $this->registerFoundToken($items[$i]);
            parent::offsetSet($i + $index, $items[$i]);
        }
    }

    /**
     * Check if collection was change: collection itself (like insert new tokens) or any of collection's elements.
     *
     * @return bool
     */
    public function isChanged()
    {
        if ($this->changed) {
            return true;
        }

        if (self::isLegacyMode()) {
            foreach ($this as $token) {
                if ($token->isChanged()) {
                    return true;
                }
            }
        }

        return false;
    }

    /**
     * @param int $index
     *
     * @return bool
     */
    public function isEmptyAt($index)
    {
        $token = $this[$index];

        return null === $token->getId() && '' === $token->getContent();
    }

    public function clearAt($index)
    {
        $this[$index] = new Token('');
    }

    /**
     * Override token at given index and register it.
     *
     * @param int                $index
     * @param array|string|Token $token token prototype
     *
     * @deprecated since 2.4, use offsetSet instead
     */
    public function overrideAt($index, $token)
    {
        @trigger_error(__METHOD__.' is deprecated and will be removed in 3.0, use offsetSet instead.', E_USER_DEPRECATED);
        self::$isLegacyMode = true;

        $this[$index]->override($token);
        $this->registerFoundToken($token);
    }

    /**
     * Override tokens at given range.
     *
     * @param int                 $indexStart start overriding index
     * @param int                 $indexEnd   end overriding index
     * @param array<Token>|Tokens $items      tokens to insert
     */
    public function overrideRange($indexStart, $indexEnd, $items)
    {
        $oldCode = $this->generatePartialCode($indexStart, $indexEnd);

        $newCode = '';
        foreach ($items as $item) {
            $newCode .= $item->getContent();
        }

        // no changes, return
        if ($oldCode === $newCode) {
            return;
        }

        $indexToChange = $indexEnd - $indexStart + 1;
        $itemsCount = \count($items);

        // If we want to add more items than passed range contains we need to
        // add placeholders for overhead items.
        if ($itemsCount > $indexToChange) {
            $placeholders = [];
            while ($itemsCount > $indexToChange) {
                $placeholders[] = new Token('__PLACEHOLDER__');
                ++$indexToChange;
            }
            $this->insertAt($indexEnd + 1, $placeholders);
        }

        // Override each items.
        foreach ($items as $itemIndex => $item) {
            $this[$indexStart + $itemIndex] = $item;
        }

        // If we want to add less tokens than passed range contains then clear
        // not needed tokens.
        if ($itemsCount < $indexToChange) {
            $this->clearRange($indexStart + $itemsCount, $indexEnd);
        }
    }

    /**
     * @param int         $index
     * @param null|string $whitespaces optional whitespaces characters for Token::isWhitespace
     */
    public function removeLeadingWhitespace($index, $whitespaces = null)
    {
        $this->removeWhitespaceSafely($index, -1, $whitespaces);
    }

    /**
     * @param int         $index
     * @param null|string $whitespaces optional whitespaces characters for Token::isWhitespace
     */
    public function removeTrailingWhitespace($index, $whitespaces = null)
    {
        $this->removeWhitespaceSafely($index, 1, $whitespaces);
    }

    /**
     * Set code. Clear all current content and replace it by new Token items generated from code directly.
     *
     * @param string $code PHP code
     */
    public function setCode($code)
    {
        // No need to work when the code is the same.
        // That is how we avoid a lot of work and setting changed flag.
        if ($code === $this->generateCode()) {
            return;
        }

        // clear memory
        $this->setSize(0);

        $tokens = \defined('TOKEN_PARSE')
            ? token_get_all($code, TOKEN_PARSE)
            : token_get_all($code);

        $this->setSize(\count($tokens));

        foreach ($tokens as $index => $token) {
            $this[$index] = new Token($token);
        }

        $transformers = Transformers::create();
        $transformers->transform($this);

        $this->foundTokenKinds = [];
        foreach ($this as $token) {
            $this->registerFoundToken($token);
        }

        $this->rewind();
        $this->changeCodeHash(self::calculateCodeHash($code));
        $this->changed = true;
    }

    public function toJson()
    {
        static $options = null;

        if (null === $options) {
            $options = Utils::calculateBitmask(['JSON_PRETTY_PRINT', 'JSON_NUMERIC_CHECK']);
        }

        $output = new \SplFixedArray(\count($this));

        foreach ($this as $index => $token) {
            $output[$index] = $token->toArray();
        }

        $this->rewind();

        return json_encode($output, $options);
    }

    /**
     * Check if all token kinds given as argument are found.
     *
     * @return bool
     */
    public function isAllTokenKindsFound(array $tokenKinds)
    {
        foreach ($tokenKinds as $tokenKind) {
            if (empty($this->foundTokenKinds[$tokenKind])) {
                return false;
            }
        }

        return true;
    }

    /**
     * Check if any token kind given as argument is found.
     *
     * @return bool
     */
    public function isAnyTokenKindsFound(array $tokenKinds)
    {
        foreach ($tokenKinds as $tokenKind) {
            if (!empty($this->foundTokenKinds[$tokenKind])) {
                return true;
            }
        }

        return false;
    }

    /**
     * Check if token kind given as argument is found.
     *
     * @param int|string $tokenKind
     *
     * @return bool
     */
    public function isTokenKindFound($tokenKind)
    {
        return !empty($this->foundTokenKinds[$tokenKind]);
    }

    /**
     * @param int|string $tokenKind
     *
     * @return int
     */
    public function countTokenKind($tokenKind)
    {
        if (self::isLegacyMode()) {
            throw new \RuntimeException(sprintf('"%s" is not available in legacy mode.', __METHOD__));
        }

        return isset($this->foundTokenKinds[$tokenKind]) ? $this->foundTokenKinds[$tokenKind] : 0;
    }

    /**
     * Clear tokens in the given range.
     *
     * @param int $indexStart
     * @param int $indexEnd
     */
    public function clearRange($indexStart, $indexEnd)
    {
        for ($i = $indexStart; $i <= $indexEnd; ++$i) {
            $this->clearAt($i);
        }
    }

    /**
     * Checks for monolithic PHP code.
     *
     * Checks that the code is pure PHP code, in a single code block, starting
     * with an open tag.
     *
     * @return bool
     */
    public function isMonolithicPhp()
    {
        $size = $this->count();

        if (0 === $size) {
            return false;
        }

        if (self::isLegacyMode()) {
            // If code is not monolithic there is a great chance that first or last token is `T_INLINE_HTML`:
            if ($this[0]->isGivenKind(T_INLINE_HTML) || $this[$size - 1]->isGivenKind(T_INLINE_HTML)) {
                return false;
            }

            for ($index = 1; $index < $size; ++$index) {
                if ($this[$index]->isGivenKind([T_INLINE_HTML, T_OPEN_TAG, T_OPEN_TAG_WITH_ECHO])) {
                    return false;
                }
            }

            return true;
        }

        if ($this->isTokenKindFound(T_INLINE_HTML)) {
            return false;
        }

        return 1 >= ($this->countTokenKind(T_OPEN_TAG) + $this->countTokenKind(T_OPEN_TAG_WITH_ECHO));
    }

    /**
     * @param int $start start index
     * @param int $end   end index
     *
     * @return bool
     */
    public function isPartialCodeMultiline($start, $end)
    {
        for ($i = $start; $i <= $end; ++$i) {
            if (false !== strpos($this[$i]->getContent(), "\n")) {
                return true;
            }
        }

        return false;
    }

    /**
     * @param int $index
     */
    public function clearTokenAndMergeSurroundingWhitespace($index)
    {
        $count = \count($this);
        $this->clearAt($index);

        if ($index === $count - 1) {
            return;
        }

        $nextIndex = $this->getNonEmptySibling($index, 1);

        if (null === $nextIndex || !$this[$nextIndex]->isWhitespace()) {
            return;
        }

        $prevIndex = $this->getNonEmptySibling($index, -1);

        if ($this[$prevIndex]->isWhitespace()) {
            $this[$prevIndex] = new Token([T_WHITESPACE, $this[$prevIndex]->getContent().$this[$nextIndex]->getContent()]);
        } elseif ($this->isEmptyAt($prevIndex + 1)) {
            $this[$prevIndex + 1] = new Token([T_WHITESPACE, $this[$nextIndex]->getContent()]);
        }

        $this->clearAt($nextIndex);
    }

    private function removeWhitespaceSafely($index, $direction, $whitespaces = null)
    {
        $whitespaceIndex = $this->getNonEmptySibling($index, $direction);
        if (isset($this[$whitespaceIndex]) && $this[$whitespaceIndex]->isWhitespace()) {
            $newContent = '';
            $tokenToCheck = $this[$whitespaceIndex];

            // if the token candidate to remove is preceded by single line comment we do not consider the new line after this comment as part of T_WHITESPACE
            if (isset($this[$whitespaceIndex - 1]) && $this[$whitespaceIndex - 1]->isComment() && '/*' !== substr($this[$whitespaceIndex - 1]->getContent(), 0, 2)) {
                list($emptyString, $newContent, $whitespacesToCheck) = Preg::split('/^(\R)/', $this[$whitespaceIndex]->getContent(), -1, PREG_SPLIT_DELIM_CAPTURE);
                if ('' === $whitespacesToCheck) {
                    return;
                }
                $tokenToCheck = new Token([T_WHITESPACE, $whitespacesToCheck]);
            }

            if (!$tokenToCheck->isWhitespace($whitespaces)) {
                return;
            }

            if ('' === $newContent) {
                $this->clearAt($whitespaceIndex);
            } else {
                $this[$whitespaceIndex] = new Token([T_WHITESPACE, $newContent]);
            }
        }
    }

    /**
     * @param int  $type        type of block, one of BLOCK_TYPE_*
     * @param int  $searchIndex index of starting brace
     * @param bool $findEnd     if method should find block's end or start
     *
     * @return int index of opposite brace
     */
    private function findOppositeBlockEdge($type, $searchIndex, $findEnd)
    {
        $blockEdgeDefinitions = self::getBlockEdgeDefinitions();

        if (!isset($blockEdgeDefinitions[$type])) {
            throw new \InvalidArgumentException(sprintf('Invalid param type: "%s".', $type));
        }

        if (!self::isLegacyMode() && isset($this->blockEndCache[$searchIndex])) {
            return $this->blockEndCache[$searchIndex];
        }

        $startEdge = $blockEdgeDefinitions[$type]['start'];
        $endEdge = $blockEdgeDefinitions[$type]['end'];
        $startIndex = $searchIndex;
        $endIndex = $this->count() - 1;
        $indexOffset = 1;

        if (!$findEnd) {
            list($startEdge, $endEdge) = [$endEdge, $startEdge];
            $indexOffset = -1;
            $endIndex = 0;
        }

        if (!$this[$startIndex]->equals($startEdge)) {
            throw new \InvalidArgumentException(sprintf('Invalid param $startIndex - not a proper block "%s".', $findEnd ? 'start' : 'end'));
        }

        $blockLevel = 0;

        for ($index = $startIndex; $index !== $endIndex; $index += $indexOffset) {
            $token = $this[$index];

            if ($token->equals($startEdge)) {
                ++$blockLevel;

                continue;
            }

            if ($token->equals($endEdge)) {
                --$blockLevel;

                if (0 === $blockLevel) {
                    break;
                }

                continue;
            }
        }

        if (!$this[$index]->equals($endEdge)) {
            throw new \UnexpectedValueException(sprintf('Missing block "%s".', $findEnd ? 'end' : 'start'));
        }

        $this->blockEndCache[$startIndex] = $index;
        $this->blockEndCache[$index] = $startIndex;

        return $index;
    }

    /**
     * Calculate hash for code.
     *
     * @param string $code
     *
     * @return string
     */
    private static function calculateCodeHash($code)
    {
        return CodeHasher::calculateCodeHash($code);
    }

    /**
     * Get cache value for given key.
     *
     * @param string $key item key
     *
     * @return Tokens
     */
    private static function getCache($key)
    {
        if (!self::hasCache($key)) {
            throw new \OutOfBoundsException(sprintf('Unknown cache key: "%s".', $key));
        }

        return self::$cache[$key];
    }

    /**
     * Check if given key exists in cache.
     *
     * @param string $key item key
     *
     * @return bool
     */
    private static function hasCache($key)
    {
        return isset(self::$cache[$key]);
    }

    /**
     * @param string $key   item key
     * @param Tokens $value item value
     */
    private static function setCache($key, self $value)
    {
        self::$cache[$key] = $value;
    }

    /**
     * Change code hash.
     *
     * Remove old cache and set new one.
     *
     * @param string $codeHash new code hash
     */
    private function changeCodeHash($codeHash)
    {
        if (null !== $this->codeHash) {
            self::clearCache($this->codeHash);
        }

        $this->codeHash = $codeHash;
        self::setCache($this->codeHash, $this);
    }

    /**
     * Register token as found.
     *
     * @param array|string|Token $token token prototype
     */
    private function registerFoundToken($token)
    {
        // inlined extractTokenKind() call on the hot path
        $tokenKind = $token instanceof Token
            ? ($token->isArray() ? $token->getId() : $token->getContent())
            : (\is_array($token) ? $token[0] : $token)
        ;

        if (!isset($this->foundTokenKinds[$tokenKind])) {
            $this->foundTokenKinds[$tokenKind] = 0;
        }

        ++$this->foundTokenKinds[$tokenKind];
    }

    /**
     * Register token as found.
     *
     * @param array|string|Token $token token prototype
     */
    private function unregisterFoundToken($token)
    {
        // inlined extractTokenKind() call on the hot path
        $tokenKind = $token instanceof Token
            ? ($token->isArray() ? $token->getId() : $token->getContent())
            : (\is_array($token) ? $token[0] : $token)
        ;

        if (!isset($this->foundTokenKinds[$tokenKind])) {
            return;
        }

        --$this->foundTokenKinds[$tokenKind];
    }

    /**
     * @param array|string|Token $token token prototype
     *
     * @return int|string
     */
    private function extractTokenKind($token)
    {
        return $token instanceof Token
            ? ($token->isArray() ? $token->getId() : $token->getContent())
            : (\is_array($token) ? $token[0] : $token)
        ;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tokenizer;

use PhpCsFixer\Utils;

/**
 * Representation of single token.
 * As a token prototype you should understand a single element generated by token_get_all.
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
class Token
{
    /**
     * Content of token prototype.
     *
     * @var string
     */
    private $content;

    /**
     * ID of token prototype, if available.
     *
     * @var null|int
     */
    private $id;

    /**
     * If token prototype is an array.
     *
     * @var bool
     */
    private $isArray;

    /**
     * Flag is token was changed.
     *
     * @var bool
     */
    private $changed = false;

    /**
     * @param array|string $token token prototype
     */
    public function __construct($token)
    {
        if (\is_array($token)) {
            if (!\is_int($token[0])) {
                throw new \InvalidArgumentException(sprintf(
                    'Id must be an int, got "%s".',
                    \is_object($token[0]) ? \get_class($token[0]) : \gettype($token[0])
                ));
            }

            if (!\is_string($token[1])) {
                throw new \InvalidArgumentException(sprintf(
                    'Content must be a string, got "%s".',
                    \is_object($token[1]) ? \get_class($token[1]) : \gettype($token[1])
                ));
            }

            if ('' === $token[1]) {
                throw new \InvalidArgumentException('Cannot set empty content for id-based Token.');
            }

            $this->isArray = true;
            $this->id = $token[0];
            $this->content = $token[1];

            if ($token[0] && '' === $token[1]) {
                throw new \InvalidArgumentException('Cannot set empty content for id-based Token.');
            }
        } elseif (\is_string($token)) {
            $this->isArray = false;
            $this->content = $token;
        } else {
            throw new \InvalidArgumentException(sprintf(
                'Cannot recognize input value as valid Token prototype, got "%s".',
                \is_object($token) ? \get_class($token) : \gettype($token)
            ));
        }
    }

    /**
     * @return int[]
     */
    public static function getCastTokenKinds()
    {
        static $castTokens = [T_ARRAY_CAST, T_BOOL_CAST, T_DOUBLE_CAST, T_INT_CAST, T_OBJECT_CAST, T_STRING_CAST, T_UNSET_CAST];

        return $castTokens;
    }

    /**
     * Get classy tokens kinds: T_CLASS, T_INTERFACE and T_TRAIT.
     *
     * @return int[]
     */
    public static function getClassyTokenKinds()
    {
        static $classTokens = [T_CLASS, T_TRAIT, T_INTERFACE];

        return $classTokens;
    }

    /**
     * Clear token at given index.
     *
     * Clearing means override token by empty string.
     *
     * @deprecated since 2.4
     */
    public function clear()
    {
        @trigger_error(__METHOD__.' is deprecated and will be removed in 3.0.', E_USER_DEPRECATED);
        Tokens::setLegacyMode(true);

        $this->content = '';
        $this->id = null;
        $this->isArray = false;
    }

    /**
     * Clear internal flag if token was changed.
     *
     * @deprecated since 2.4
     */
    public function clearChanged()
    {
        @trigger_error(__METHOD__.' is deprecated and will be removed in 3.0.', E_USER_DEPRECATED);
        Tokens::setLegacyMode(true);

        $this->changed = false;
    }

    /**
     * Check if token is equals to given one.
     *
     * If tokens are arrays, then only keys defined in parameter token are checked.
     *
     * @param array|string|Token $other         token or it's prototype
     * @param bool               $caseSensitive perform a case sensitive comparison
     *
     * @return bool
     */
    public function equals($other, $caseSensitive = true)
    {
        if ($other instanceof self) {
            // Inlined getPrototype() on this very hot path.
            // We access the private properties of $other directly to save function call overhead.
            // This is only possible because $other is of the same class as `self`.
            if (!$other->isArray) {
                $otherPrototype = $other->content;
            } else {
                $otherPrototype = [
                    $other->id,
                    $other->content,
                ];
            }
        } else {
            $otherPrototype = $other;
        }

        if ($this->isArray !== \is_array($otherPrototype)) {
            return false;
        }

        if (!$this->isArray) {
            return $this->content === $otherPrototype;
        }

        if ($this->id !== $otherPrototype[0]) {
            return false;
        }

        if (isset($otherPrototype[1])) {
            if ($caseSensitive) {
                if ($this->content !== $otherPrototype[1]) {
                    return false;
                }
            } elseif (0 !== strcasecmp($this->content, $otherPrototype[1])) {
                return false;
            }
        }

        // detect unknown keys
        unset($otherPrototype[0], $otherPrototype[1]);

        return empty($otherPrototype);
    }

    /**
     * Check if token is equals to one of given.
     *
     * @param array $others        array of tokens or token prototypes
     * @param bool  $caseSensitive perform a case sensitive comparison
     *
     * @return bool
     */
    public function equalsAny(array $others, $caseSensitive = true)
    {
        foreach ($others as $other) {
            if ($this->equals($other, $caseSensitive)) {
                return true;
            }
        }

        return false;
    }

    /**
     * A helper method used to find out whether or not a certain input token has to be case-sensitively matched.
     *
     * @param array<int, bool>|bool $caseSensitive global case sensitiveness or an array of booleans, whose keys should match
     *                                             the ones used in $others. If any is missing, the default case-sensitive
     *                                             comparison is used
     * @param int                   $key           the key of the token that has to be looked up
     *
     * @return bool
     */
    public static function isKeyCaseSensitive($caseSensitive, $key)
    {
        if (\is_array($caseSensitive)) {
            return isset($caseSensitive[$key]) ? $caseSensitive[$key] : true;
        }

        return $caseSensitive;
    }

    /**
     * @return array|string token prototype
     */
    public function getPrototype()
    {
        if (!$this->isArray) {
            return $this->content;
        }

        return [
            $this->id,
            $this->content,
        ];
    }

    /**
     * Get token's content.
     *
     * It shall be used only for getting the content of token, not for checking it against excepted value.
     *
     * @return string
     */
    public function getContent()
    {
        return $this->content;
    }

    /**
     * Get token's id.
     *
     * It shall be used only for getting the internal id of token, not for checking it against excepted value.
     *
     * @return null|int
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Get token's name.
     *
     * It shall be used only for getting the name of token, not for checking it against excepted value.
     *
     * @return null|string token name
     */
    public function getName()
    {
        if (null === $this->id) {
            return null;
        }

        return self::getNameForId($this->id);
    }

    /**
     * Get token's name.
     *
     * It shall be used only for getting the name of token, not for checking it against excepted value.
     *
     * @param int $id
     *
     * @return null|string token name
     */
    public static function getNameForId($id)
    {
        if (CT::has($id)) {
            return CT::getName($id);
        }

        $name = token_name($id);

        return 'UNKNOWN' === $name ? null : $name;
    }

    /**
     * Generate array containing all keywords that exists in PHP version in use.
     *
     * @return array<int, int>
     */
    public static function getKeywords()
    {
        static $keywords = null;

        if (null === $keywords) {
            $keywords = self::getTokenKindsForNames(['T_ABSTRACT', 'T_ARRAY', 'T_AS', 'T_BREAK', 'T_CALLABLE', 'T_CASE',
                'T_CATCH', 'T_CLASS', 'T_CLONE', 'T_CONST', 'T_CONTINUE', 'T_DECLARE', 'T_DEFAULT', 'T_DO',
                'T_ECHO', 'T_ELSE', 'T_ELSEIF', 'T_EMPTY', 'T_ENDDECLARE', 'T_ENDFOR', 'T_ENDFOREACH',
                'T_ENDIF', 'T_ENDSWITCH', 'T_ENDWHILE', 'T_EVAL', 'T_EXIT', 'T_EXTENDS', 'T_FINAL',
                'T_FINALLY', 'T_FN', 'T_FOR', 'T_FOREACH', 'T_FUNCTION', 'T_GLOBAL', 'T_GOTO', 'T_HALT_COMPILER',
                'T_IF', 'T_IMPLEMENTS', 'T_INCLUDE', 'T_INCLUDE_ONCE', 'T_INSTANCEOF', 'T_INSTEADOF',
                'T_INTERFACE', 'T_ISSET', 'T_LIST', 'T_LOGICAL_AND', 'T_LOGICAL_OR', 'T_LOGICAL_XOR',
                'T_NAMESPACE', 'T_NEW', 'T_PRINT', 'T_PRIVATE', 'T_PROTECTED', 'T_PUBLIC', 'T_REQUIRE',
                'T_REQUIRE_ONCE', 'T_RETURN', 'T_STATIC', 'T_SWITCH', 'T_THROW', 'T_TRAIT', 'T_TRY',
                'T_UNSET', 'T_USE', 'T_VAR', 'T_WHILE', 'T_YIELD', 'T_YIELD_FROM',
            ]) + [
                CT::T_ARRAY_TYPEHINT => CT::T_ARRAY_TYPEHINT,
                CT::T_CLASS_CONSTANT => CT::T_CLASS_CONSTANT,
                CT::T_CONST_IMPORT => CT::T_CONST_IMPORT,
                CT::T_FUNCTION_IMPORT => CT::T_FUNCTION_IMPORT,
                CT::T_NAMESPACE_OPERATOR => CT::T_NAMESPACE_OPERATOR,
                CT::T_USE_TRAIT => CT::T_USE_TRAIT,
                CT::T_USE_LAMBDA => CT::T_USE_LAMBDA,
            ];
        }

        return $keywords;
    }

    /**
     * Generate array containing all predefined constants that exists in PHP version in use.
     *
     * @see https://php.net/manual/en/language.constants.predefined.php
     *
     * @return array<int, int>
     */
    public static function getMagicConstants()
    {
        static $magicConstants = null;

        if (null === $magicConstants) {
            $magicConstants = self::getTokenKindsForNames(['T_CLASS_C', 'T_DIR', 'T_FILE', 'T_FUNC_C', 'T_LINE', 'T_METHOD_C', 'T_NS_C', 'T_TRAIT_C']);
        }

        return $magicConstants;
    }

    /**
     * Check if token prototype is an array.
     *
     * @return bool is array
     */
    public function isArray()
    {
        return $this->isArray;
    }

    /**
     * Check if token is one of type cast tokens.
     *
     * @return bool
     */
    public function isCast()
    {
        return $this->isGivenKind(self::getCastTokenKinds());
    }

    /**
     * Check if token was changed.
     *
     * @return bool
     *
     * @deprecated since 2.4
     */
    public function isChanged()
    {
        @trigger_error(__METHOD__.' is deprecated and will be removed in 3.0.', E_USER_DEPRECATED);

        return $this->changed;
    }

    /**
     * Check if token is one of classy tokens: T_CLASS, T_INTERFACE or T_TRAIT.
     *
     * @return bool
     */
    public function isClassy()
    {
        return $this->isGivenKind(self::getClassyTokenKinds());
    }

    /**
     * Check if token is one of comment tokens: T_COMMENT or T_DOC_COMMENT.
     *
     * @return bool
     */
    public function isComment()
    {
        static $commentTokens = [T_COMMENT, T_DOC_COMMENT];

        return $this->isGivenKind($commentTokens);
    }

    /**
     * Check if token is empty, e.g. because of clearing.
     *
     * @return bool
     *
     * @deprecated since 2.4
     */
    public function isEmpty()
    {
        @trigger_error(__METHOD__.' is deprecated and will be removed in 3.0.', E_USER_DEPRECATED);

        return null === $this->id && ('' === $this->content || null === $this->content);
    }

    /**
     * Check if token is one of given kind.
     *
     * @param int|int[] $possibleKind kind or array of kinds
     *
     * @return bool
     */
    public function isGivenKind($possibleKind)
    {
        return $this->isArray && (\is_array($possibleKind) ? \in_array($this->id, $possibleKind, true) : $this->id === $possibleKind);
    }

    /**
     * Check if token is a keyword.
     *
     * @return bool
     */
    public function isKeyword()
    {
        $keywords = static::getKeywords();

        return $this->isArray && isset($keywords[$this->id]);
    }

    /**
     * Check if token is a native PHP constant: true, false or null.
     *
     * @return bool
     */
    public function isNativeConstant()
    {
        static $nativeConstantStrings = ['true', 'false', 'null'];

        return $this->isArray && \in_array(strtolower($this->content), $nativeConstantStrings, true);
    }

    /**
     * Returns if the token is of a Magic constants type.
     *
     * @see https://php.net/manual/en/language.constants.predefined.php
     *
     * @return bool
     */
    public function isMagicConstant()
    {
        $magicConstants = static::getMagicConstants();

        return $this->isArray && isset($magicConstants[$this->id]);
    }

    /**
     * Check if token is whitespace.
     *
     * @param null|string $whitespaces whitespace characters, default is " \t\n\r\0\x0B"
     *
     * @return bool
     */
    public function isWhitespace($whitespaces = " \t\n\r\0\x0B")
    {
        if (null === $whitespaces) {
            $whitespaces = " \t\n\r\0\x0B";
        }

        if ($this->isArray && !$this->isGivenKind(T_WHITESPACE)) {
            return false;
        }

        return '' === trim($this->content, $whitespaces);
    }

    /**
     * Override token.
     *
     * If called on Token inside Tokens collection please use `Tokens::overrideAt` instead.
     *
     * @param array|string|Token $other token prototype
     *
     * @deprecated since 2.4
     */
    public function override($other)
    {
        @trigger_error(__METHOD__.' is deprecated and will be removed in 3.0.', E_USER_DEPRECATED);
        Tokens::setLegacyMode(true);

        $prototype = $other instanceof self ? $other->getPrototype() : $other;

        if ($this->equals($prototype)) {
            return;
        }

        $this->changed = true;

        if (\is_array($prototype)) {
            $this->isArray = true;
            $this->id = $prototype[0];
            $this->content = $prototype[1];

            return;
        }

        $this->isArray = false;
        $this->id = null;
        $this->content = $prototype;
    }

    /**
     * @param string $content
     *
     * @deprecated since 2.4
     */
    public function setContent($content)
    {
        @trigger_error(__METHOD__.' is deprecated and will be removed in 3.0.', E_USER_DEPRECATED);
        Tokens::setLegacyMode(true);

        if ($this->content === $content) {
            return;
        }

        $this->changed = true;
        $this->content = $content;

        // setting empty content is clearing the token
        if ('' === $content) {
            @trigger_error(__METHOD__.' shall not be used to clear token, use Tokens::clearAt instead.', E_USER_DEPRECATED);
            $this->id = null;
            $this->isArray = false;
        }
    }

    public function toArray()
    {
        return [
            'id' => $this->id,
            'name' => $this->getName(),
            'content' => $this->content,
            'isArray' => $this->isArray,
            'changed' => $this->changed,
        ];
    }

    /**
     * @param null|string[] $options JSON encode option
     *
     * @return string
     */
    public function toJson(array $options = null)
    {
        static $defaultOptions = null;

        if (null === $options) {
            if (null === $defaultOptions) {
                $defaultOptions = Utils::calculateBitmask(['JSON_PRETTY_PRINT', 'JSON_NUMERIC_CHECK']);
            }

            $options = $defaultOptions;
        } else {
            $options = Utils::calculateBitmask($options);
        }

        return json_encode($this->toArray(), $options);
    }

    /**
     * @param string[] $tokenNames
     *
     * @return array<int, int>
     */
    private static function getTokenKindsForNames(array $tokenNames)
    {
        $keywords = [];
        foreach ($tokenNames as $keywordName) {
            if (\defined($keywordName)) {
                $keyword = \constant($keywordName);
                $keywords[$keyword] = $keyword;
            }
        }

        return $keywords;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tokenizer;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class CodeHasher
{
    private function __construct()
    {
        // cannot create instance of util. class
    }

    /**
     * Calculate hash for code.
     *
     * @param string $code
     *
     * @return string
     */
    public static function calculateCodeHash($code)
    {
        return (string) crc32($code);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tokenizer\Transformer;

use PhpCsFixer\Tokenizer\AbstractTransformer;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * Transform `array` typehint from T_ARRAY into CT::T_ARRAY_TYPEHINT.
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class ArrayTypehintTransformer extends AbstractTransformer
{
    /**
     * {@inheritdoc}
     */
    public function getCustomTokens()
    {
        return [CT::T_ARRAY_TYPEHINT];
    }

    /**
     * {@inheritdoc}
     */
    public function getRequiredPhpVersionId()
    {
        return 50000;
    }

    /**
     * {@inheritdoc}
     */
    public function process(Tokens $tokens, Token $token, $index)
    {
        if (!$token->isGivenKind(T_ARRAY)) {
            return;
        }

        $nextIndex = $tokens->getNextMeaningfulToken($index);
        $nextToken = $tokens[$nextIndex];

        if (!$nextToken->equals('(')) {
            $tokens[$index] = new Token([CT::T_ARRAY_TYPEHINT, $token->getContent()]);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tokenizer\Transformer;

use PhpCsFixer\Tokenizer\AbstractTransformer;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * Transform const/function import tokens.
 *
 * Performed transformations:
 * - T_CONST into CT::T_CONST_IMPORT
 * - T_FUNCTION into CT::T_FUNCTION_IMPORT
 *
 * @author Gregor Harlan <gharlan@web.de>
 *
 * @internal
 */
final class ImportTransformer extends AbstractTransformer
{
    /**
     * {@inheritdoc}
     */
    public function getCustomTokens()
    {
        return [CT::T_CONST_IMPORT, CT::T_FUNCTION_IMPORT];
    }

    /**
     * {@inheritdoc}
     */
    public function getRequiredPhpVersionId()
    {
        return 50600;
    }

    /**
     * {@inheritdoc}
     */
    public function process(Tokens $tokens, Token $token, $index)
    {
        if (!$token->isGivenKind([T_CONST, T_FUNCTION])) {
            return;
        }

        $prevToken = $tokens[$tokens->getPrevMeaningfulToken($index)];

        if ($prevToken->isGivenKind(T_USE)) {
            $tokens[$index] = new Token([
                $token->isGivenKind(T_FUNCTION) ? CT::T_FUNCTION_IMPORT : CT::T_CONST_IMPORT,
                $token->getContent(),
            ]);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tokenizer\Transformer;

use PhpCsFixer\Tokenizer\AbstractTransformer;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * Transform discriminate overloaded square braces tokens.
 *
 * Performed transformations:
 * - in `[1, 2, 3]` into CT::T_ARRAY_SQUARE_BRACE_OPEN and CT::T_ARRAY_SQUARE_BRACE_CLOSE,
 * - in `[$a, &$b, [$c]] = array(1, 2, array(3))` into CT::T_DESTRUCTURING_SQUARE_BRACE_OPEN and CT::T_DESTRUCTURING_SQUARE_BRACE_CLOSE.
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 * @author SpacePossum
 *
 * @internal
 */
final class SquareBraceTransformer extends AbstractTransformer
{
    /**
     * {@inheritdoc}
     */
    public function getCustomTokens()
    {
        return [
            CT::T_ARRAY_SQUARE_BRACE_OPEN,
            CT::T_ARRAY_SQUARE_BRACE_CLOSE,
            CT::T_DESTRUCTURING_SQUARE_BRACE_OPEN,
            CT::T_DESTRUCTURING_SQUARE_BRACE_CLOSE,
        ];
    }

    /**
     * {@inheritdoc}
     */
    public function getPriority()
    {
        // must run after CurlyBraceTransformer
        return -1;
    }

    /**
     * {@inheritdoc}
     */
    public function getRequiredPhpVersionId()
    {
        // Short array syntax was introduced in PHP 5.4, but the fixer is smart
        // enough to handle it even before 5.4.
        // Same for array destructing syntax sugar `[` introduced in PHP 7.1.
        return 50000;
    }

    /**
     * {@inheritdoc}
     */
    public function process(Tokens $tokens, Token $token, $index)
    {
        if ($this->isArrayDestructing($tokens, $index)) {
            $this->transformIntoDestructuringSquareBrace($tokens, $index);

            return;
        }

        if ($this->isShortArray($tokens, $index)) {
            $this->transformIntoArraySquareBrace($tokens, $index);
        }
    }

    /**
     * @param int $index
     */
    private function transformIntoArraySquareBrace(Tokens $tokens, $index)
    {
        $endIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_INDEX_SQUARE_BRACE, $index);

        $tokens[$index] = new Token([CT::T_ARRAY_SQUARE_BRACE_OPEN, '[']);
        $tokens[$endIndex] = new Token([CT::T_ARRAY_SQUARE_BRACE_CLOSE, ']']);
    }

    /**
     * @param int $index
     */
    private function transformIntoDestructuringSquareBrace(Tokens $tokens, $index)
    {
        $endIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_INDEX_SQUARE_BRACE, $index);

        $tokens[$index] = new Token([CT::T_DESTRUCTURING_SQUARE_BRACE_OPEN, '[']);
        $tokens[$endIndex] = new Token([CT::T_DESTRUCTURING_SQUARE_BRACE_CLOSE, ']']);

        $previousMeaningfulIndex = $index;
        $index = $tokens->getNextMeaningfulToken($index);

        while ($index < $endIndex) {
            if ($tokens[$index]->equals('[') && $tokens[$previousMeaningfulIndex]->equalsAny([[CT::T_DESTRUCTURING_SQUARE_BRACE_OPEN], ','])) {
                $tokens[$tokens->findBlockEnd(Tokens::BLOCK_TYPE_INDEX_SQUARE_BRACE, $index)] = new Token([CT::T_DESTRUCTURING_SQUARE_BRACE_CLOSE, ']']);
                $tokens[$index] = new Token([CT::T_DESTRUCTURING_SQUARE_BRACE_OPEN, '[']);
            }

            $previousMeaningfulIndex = $index;
            $index = $tokens->getNextMeaningfulToken($index);
        }
    }

    /**
     * Check if token under given index is short array opening.
     *
     * @param int $index
     *
     * @return bool
     */
    private function isShortArray(Tokens $tokens, $index)
    {
        if (!$tokens[$index]->equals('[')) {
            return false;
        }

        static $disallowedPrevTokens = [
            ')',
            ']',
            '}',
            '"',
            [T_CONSTANT_ENCAPSED_STRING],
            [T_STRING],
            [T_STRING_VARNAME],
            [T_VARIABLE],
            [CT::T_ARRAY_SQUARE_BRACE_CLOSE],
            [CT::T_DYNAMIC_PROP_BRACE_CLOSE],
            [CT::T_DYNAMIC_VAR_BRACE_CLOSE],
            [CT::T_ARRAY_INDEX_CURLY_BRACE_CLOSE],
        ];

        $prevToken = $tokens[$tokens->getPrevMeaningfulToken($index)];
        if ($prevToken->equalsAny($disallowedPrevTokens)) {
            return false;
        }

        $nextToken = $tokens[$tokens->getNextMeaningfulToken($index)];
        if ($nextToken->equals(']')) {
            return true;
        }

        return !$this->isArrayDestructing($tokens, $index);
    }

    /**
     * @param int $index
     *
     * @return bool
     */
    private function isArrayDestructing(Tokens $tokens, $index)
    {
        if (\PHP_VERSION_ID < 70100 || !$tokens[$index]->equals('[')) {
            return false;
        }

        static $disallowedPrevTokens = [
            ')',
            ']',
            '"',
            [T_CONSTANT_ENCAPSED_STRING],
            [T_STRING],
            [T_STRING_VARNAME],
            [T_VARIABLE],
            [CT::T_ARRAY_SQUARE_BRACE_CLOSE],
            [CT::T_DYNAMIC_PROP_BRACE_CLOSE],
            [CT::T_DYNAMIC_VAR_BRACE_CLOSE],
            [CT::T_ARRAY_INDEX_CURLY_BRACE_CLOSE],
        ];

        $prevToken = $tokens[$tokens->getPrevMeaningfulToken($index)];
        if ($prevToken->equalsAny($disallowedPrevTokens)) {
            return false;
        }

        $type = Tokens::detectBlockType($tokens[$index]);
        $end = $tokens->findBlockEnd($type['type'], $index);

        $nextToken = $tokens[$tokens->getNextMeaningfulToken($end)];

        return $nextToken->equals('=');
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tokenizer\Transformer;

use PhpCsFixer\Tokenizer\AbstractTransformer;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * Transform `:` operator into CT::T_TYPE_COLON in `function foo() : int {}`.
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class TypeColonTransformer extends AbstractTransformer
{
    /**
     * {@inheritdoc}
     */
    public function getCustomTokens()
    {
        return [CT::T_TYPE_COLON];
    }

    /**
     * {@inheritdoc}
     */
    public function getPriority()
    {
        // needs to run after ReturnRefTransformer and UseTransformer
        return -10;
    }

    /**
     * {@inheritdoc}
     */
    public function getRequiredPhpVersionId()
    {
        return 70000;
    }

    /**
     * {@inheritdoc}
     */
    public function process(Tokens $tokens, Token $token, $index)
    {
        if (!$token->equals(':')) {
            return;
        }

        $endIndex = $tokens->getPrevMeaningfulToken($index);

        if (!$tokens[$endIndex]->equals(')')) {
            return;
        }

        $startIndex = $tokens->findBlockStart(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $endIndex);
        $prevIndex = $tokens->getPrevMeaningfulToken($startIndex);
        $prevToken = $tokens[$prevIndex];

        // if this could be a function name we need to take one more step
        if ($prevToken->isGivenKind(T_STRING)) {
            $prevIndex = $tokens->getPrevMeaningfulToken($prevIndex);
            $prevToken = $tokens[$prevIndex];
        }

        $prevKinds = [T_FUNCTION, CT::T_RETURN_REF, CT::T_USE_LAMBDA];
        if (\PHP_VERSION_ID >= 70400) {
            $prevKinds[] = T_FN;
        }

        if ($prevToken->isGivenKind($prevKinds)) {
            $tokens[$index] = new Token([CT::T_TYPE_COLON, ':']);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tokenizer\Transformer;

use PhpCsFixer\Tokenizer\AbstractTransformer;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * Transform `&` operator into CT::T_RETURN_REF in `function & foo() {}`.
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class ReturnRefTransformer extends AbstractTransformer
{
    /**
     * {@inheritdoc}
     */
    public function getCustomTokens()
    {
        return [CT::T_RETURN_REF];
    }

    /**
     * {@inheritdoc}
     */
    public function getRequiredPhpVersionId()
    {
        return 50000;
    }

    /**
     * {@inheritdoc}
     */
    public function process(Tokens $tokens, Token $token, $index)
    {
        $prevKinds = [T_FUNCTION];
        if (\PHP_VERSION_ID >= 70400) {
            $prevKinds[] = T_FN;
        }

        if (
            $token->equals('&')
            && $tokens[$tokens->getPrevMeaningfulToken($index)]->isGivenKind($prevKinds)
        ) {
            $tokens[$index] = new Token([CT::T_RETURN_REF, '&']);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tokenizer\Transformer;

use PhpCsFixer\Tokenizer\AbstractTransformer;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * Move trailing whitespaces from comments and docs into following T_WHITESPACE token.
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class WhitespacyCommentTransformer extends AbstractTransformer
{
    /**
     * {@inheritdoc}
     */
    public function getCustomTokens()
    {
        return [];
    }

    /**
     * {@inheritdoc}
     */
    public function getRequiredPhpVersionId()
    {
        return 50000;
    }

    /**
     * {@inheritdoc}
     */
    public function process(Tokens $tokens, Token $token, $index)
    {
        if (!$token->isComment()) {
            return;
        }

        $content = $token->getContent();
        $trimmedContent = rtrim($content);

        // nothing trimmed, nothing to do
        if ($content === $trimmedContent) {
            return;
        }

        $whitespaces = substr($content, \strlen($trimmedContent));

        $tokens[$index] = new Token([$token->getId(), $trimmedContent]);

        if (isset($tokens[$index + 1]) && $tokens[$index + 1]->isWhitespace()) {
            $tokens[$index + 1] = new Token([T_WHITESPACE, $whitespaces.$tokens[$index + 1]->getContent()]);
        } else {
            $tokens->insertAt($index + 1, new Token([T_WHITESPACE, $whitespaces]));
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tokenizer\Transformer;

use PhpCsFixer\Tokenizer\AbstractTransformer;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * Transform `namespace` operator from T_NAMESPACE into CT::T_NAMESPACE_OPERATOR.
 *
 * @author Gregor Harlan <gharlan@web.de>
 *
 * @internal
 */
final class NamespaceOperatorTransformer extends AbstractTransformer
{
    /**
     * {@inheritdoc}
     */
    public function getCustomTokens()
    {
        return [CT::T_NAMESPACE_OPERATOR];
    }

    /**
     * {@inheritdoc}
     */
    public function getRequiredPhpVersionId()
    {
        return 50300;
    }

    /**
     * {@inheritdoc}
     */
    public function process(Tokens $tokens, Token $token, $index)
    {
        if (!$token->isGivenKind(T_NAMESPACE)) {
            return;
        }

        $nextIndex = $tokens->getNextMeaningfulToken($index);
        $nextToken = $tokens[$nextIndex];

        if ($nextToken->isGivenKind(T_NS_SEPARATOR)) {
            $tokens[$index] = new Token([CT::T_NAMESPACE_OPERATOR, $token->getContent()]);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tokenizer\Transformer;

use PhpCsFixer\Tokenizer\AbstractTransformer;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * Transform `?` operator into CT::T_NULLABLE_TYPE in `function foo(?Bar $b) {}`.
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class NullableTypeTransformer extends AbstractTransformer
{
    /**
     * {@inheritdoc}
     */
    public function getCustomTokens()
    {
        return [CT::T_NULLABLE_TYPE];
    }

    /**
     * {@inheritdoc}
     */
    public function getPriority()
    {
        // needs to run after TypeColonTransformer
        return -20;
    }

    /**
     * {@inheritdoc}
     */
    public function getRequiredPhpVersionId()
    {
        return 70100;
    }

    /**
     * {@inheritdoc}
     */
    public function process(Tokens $tokens, Token $token, $index)
    {
        if (!$token->equals('?')) {
            return;
        }

        $prevIndex = $tokens->getPrevMeaningfulToken($index);
        $prevToken = $tokens[$prevIndex];

        if ($prevToken->equalsAny(['(', ',', [CT::T_TYPE_COLON], [T_PRIVATE], [T_PROTECTED], [T_PUBLIC], [T_VAR], [T_STATIC]])) {
            $tokens[$index] = new Token([CT::T_NULLABLE_TYPE, '?']);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tokenizer\Transformer;

use PhpCsFixer\Tokenizer\AbstractTransformer;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * Transform discriminate overloaded curly braces tokens.
 *
 * Performed transformations:
 * - closing `}` for T_CURLY_OPEN into CT::T_CURLY_CLOSE,
 * - closing `}` for T_DOLLAR_OPEN_CURLY_BRACES into CT::T_DOLLAR_CLOSE_CURLY_BRACES,
 * - in `$foo->{$bar}` into CT::T_DYNAMIC_PROP_BRACE_OPEN and CT::T_DYNAMIC_PROP_BRACE_CLOSE,
 * - in `${$foo}` into CT::T_DYNAMIC_VAR_BRACE_OPEN and CT::T_DYNAMIC_VAR_BRACE_CLOSE,
 * - in `$array{$index}` into CT::T_ARRAY_INDEX_CURLY_BRACE_OPEN and CT::T_ARRAY_INDEX_CURLY_BRACE_CLOSE,
 * - in `use some\a\{ClassA, ClassB, ClassC as C}` into CT::T_GROUP_IMPORT_BRACE_OPEN, CT::T_GROUP_IMPORT_BRACE_CLOSE.
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class CurlyBraceTransformer extends AbstractTransformer
{
    /**
     * {@inheritdoc}
     */
    public function getCustomTokens()
    {
        return [
            CT::T_CURLY_CLOSE,
            CT::T_DOLLAR_CLOSE_CURLY_BRACES,
            CT::T_DYNAMIC_PROP_BRACE_OPEN,
            CT::T_DYNAMIC_PROP_BRACE_CLOSE,
            CT::T_DYNAMIC_VAR_BRACE_OPEN,
            CT::T_DYNAMIC_VAR_BRACE_CLOSE,
            CT::T_ARRAY_INDEX_CURLY_BRACE_OPEN,
            CT::T_ARRAY_INDEX_CURLY_BRACE_CLOSE,
            CT::T_GROUP_IMPORT_BRACE_OPEN,
            CT::T_GROUP_IMPORT_BRACE_CLOSE,
        ];
    }

    /**
     * {@inheritdoc}
     */
    public function getRequiredPhpVersionId()
    {
        return 50000;
    }

    /**
     * {@inheritdoc}
     */
    public function process(Tokens $tokens, Token $token, $index)
    {
        $this->transformIntoCurlyCloseBrace($tokens, $token, $index);
        $this->transformIntoDollarCloseBrace($tokens, $token, $index);
        $this->transformIntoDynamicPropBraces($tokens, $token, $index);
        $this->transformIntoDynamicVarBraces($tokens, $token, $index);
        $this->transformIntoCurlyIndexBraces($tokens, $token, $index);

        if (\PHP_VERSION_ID >= 70000) {
            $this->transformIntoGroupUseBraces($tokens, $token, $index);
        }
    }

    /**
     * Transform closing `}` for T_CURLY_OPEN into CT::T_CURLY_CLOSE.
     *
     * This should be done at very beginning of curly braces transformations.
     *
     * @param int $index
     */
    private function transformIntoCurlyCloseBrace(Tokens $tokens, Token $token, $index)
    {
        if (!$token->isGivenKind(T_CURLY_OPEN)) {
            return;
        }

        $level = 1;
        $nestIndex = $index;

        while (0 < $level) {
            ++$nestIndex;

            // we count all kind of {
            if ($tokens[$nestIndex]->equals('{')) {
                ++$level;

                continue;
            }

            // we count all kind of }
            if ($tokens[$nestIndex]->equals('}')) {
                --$level;
            }
        }

        $tokens[$nestIndex] = new Token([CT::T_CURLY_CLOSE, '}']);
    }

    private function transformIntoDollarCloseBrace(Tokens $tokens, Token $token, $index)
    {
        if ($token->isGivenKind(T_DOLLAR_OPEN_CURLY_BRACES)) {
            $nextIndex = $tokens->getNextTokenOfKind($index, ['}']);
            $tokens[$nextIndex] = new Token([CT::T_DOLLAR_CLOSE_CURLY_BRACES, '}']);
        }
    }

    private function transformIntoDynamicPropBraces(Tokens $tokens, Token $token, $index)
    {
        if (!$token->isGivenKind(T_OBJECT_OPERATOR)) {
            return;
        }

        if (!$tokens[$index + 1]->equals('{')) {
            return;
        }

        $openIndex = $index + 1;
        $closeIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $openIndex);

        $tokens[$openIndex] = new Token([CT::T_DYNAMIC_PROP_BRACE_OPEN, '{']);
        $tokens[$closeIndex] = new Token([CT::T_DYNAMIC_PROP_BRACE_CLOSE, '}']);
    }

    private function transformIntoDynamicVarBraces(Tokens $tokens, Token $token, $index)
    {
        if (!$token->equals('$')) {
            return;
        }

        $openIndex = $tokens->getNextMeaningfulToken($index);

        if (null === $openIndex) {
            return;
        }

        $openToken = $tokens[$openIndex];

        if (!$openToken->equals('{')) {
            return;
        }

        $closeIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $openIndex);

        $tokens[$openIndex] = new Token([CT::T_DYNAMIC_VAR_BRACE_OPEN, '{']);
        $tokens[$closeIndex] = new Token([CT::T_DYNAMIC_VAR_BRACE_CLOSE, '}']);
    }

    private function transformIntoCurlyIndexBraces(Tokens $tokens, Token $token, $index)
    {
        if (!$token->equals('{')) {
            return;
        }

        $prevIndex = $tokens->getPrevMeaningfulToken($index);

        if (!$tokens[$prevIndex]->equalsAny([
            [T_STRING],
            [T_VARIABLE],
            [CT::T_ARRAY_INDEX_CURLY_BRACE_CLOSE],
            ']',
            ')',
        ])) {
            return;
        }

        if (
            $tokens[$prevIndex]->isGivenKind(T_STRING)
            && !$tokens[$tokens->getPrevMeaningfulToken($prevIndex)]->isGivenKind(T_OBJECT_OPERATOR)
        ) {
            return;
        }

        if (
            $tokens[$prevIndex]->equals(')')
            && !$tokens[$tokens->getPrevMeaningfulToken(
                $tokens->findBlockStart(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $prevIndex)
            )]->isGivenKind(T_ARRAY)
        ) {
            return;
        }

        $closeIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $index);

        $tokens[$index] = new Token([CT::T_ARRAY_INDEX_CURLY_BRACE_OPEN, '{']);
        $tokens[$closeIndex] = new Token([CT::T_ARRAY_INDEX_CURLY_BRACE_CLOSE, '}']);
    }

    private function transformIntoGroupUseBraces(Tokens $tokens, Token $token, $index)
    {
        if (!$token->equals('{')) {
            return;
        }

        $prevIndex = $tokens->getPrevMeaningfulToken($index);

        if (!$tokens[$prevIndex]->isGivenKind(T_NS_SEPARATOR)) {
            return;
        }

        $closeIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $index);

        $tokens[$index] = new Token([CT::T_GROUP_IMPORT_BRACE_OPEN, '{']);
        $tokens[$closeIndex] = new Token([CT::T_GROUP_IMPORT_BRACE_CLOSE, '}']);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tokenizer\Transformer;

use PhpCsFixer\Tokenizer\AbstractTransformer;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * Transform `|` operator into CT::T_TYPE_ALTERNATION in `} catch (ExceptionType1 | ExceptionType2 $e) {`.
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class TypeAlternationTransformer extends AbstractTransformer
{
    /**
     * {@inheritdoc}
     */
    public function getCustomTokens()
    {
        return [CT::T_TYPE_ALTERNATION];
    }

    /**
     * {@inheritdoc}
     */
    public function getRequiredPhpVersionId()
    {
        return 70100;
    }

    /**
     * {@inheritdoc}
     */
    public function process(Tokens $tokens, Token $token, $index)
    {
        if (!$token->equals('|')) {
            return;
        }

        $prevIndex = $tokens->getPrevMeaningfulToken($index);
        $prevToken = $tokens[$prevIndex];

        if (!$prevToken->isGivenKind(T_STRING)) {
            return;
        }

        do {
            $prevIndex = $tokens->getPrevMeaningfulToken($prevIndex);
            if (null === $prevIndex) {
                break;
            }

            $prevToken = $tokens[$prevIndex];

            if ($prevToken->isGivenKind([T_NS_SEPARATOR, T_STRING])) {
                continue;
            }

            if (
                $prevToken->isGivenKind(CT::T_TYPE_ALTERNATION)
                || (
                    $prevToken->equals('(')
                    && $tokens[$tokens->getPrevMeaningfulToken($prevIndex)]->isGivenKind(T_CATCH)
                )
            ) {
                $tokens[$index] = new Token([CT::T_TYPE_ALTERNATION, '|']);
            }

            break;
        } while (true);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tokenizer\Transformer;

use PhpCsFixer\Tokenizer\AbstractTransformer;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * Transform braced class instantiation braces in `(new Foo())` into CT::T_BRACE_CLASS_INSTANTIATION_OPEN
 * and CT::T_BRACE_CLASS_INSTANTIATION_CLOSE.
 *
 * @author Sebastiaans Stok <s.stok@rollerscapes.net>
 *
 * @internal
 */
final class BraceClassInstantiationTransformer extends AbstractTransformer
{
    /**
     * {@inheritdoc}
     */
    public function getCustomTokens()
    {
        return [CT::T_BRACE_CLASS_INSTANTIATION_OPEN, CT::T_BRACE_CLASS_INSTANTIATION_CLOSE];
    }

    /**
     * {@inheritdoc}
     */
    public function getPriority()
    {
        // must run after CurlyBraceTransformer and SquareBraceTransformer
        return -2;
    }

    /**
     * {@inheritdoc}
     */
    public function getRequiredPhpVersionId()
    {
        return 50000;
    }

    /**
     * {@inheritdoc}
     */
    public function process(Tokens $tokens, Token $token, $index)
    {
        if (!$tokens[$index]->equals('(') || !$tokens[$tokens->getNextMeaningfulToken($index)]->equals([T_NEW])) {
            return;
        }

        if ($tokens[$tokens->getPrevMeaningfulToken($index)]->equalsAny([
            ']',
            [CT::T_ARRAY_INDEX_CURLY_BRACE_CLOSE],
            [CT::T_ARRAY_SQUARE_BRACE_CLOSE],
            [T_ARRAY],
            [T_CLASS],
            [T_ELSEIF],
            [T_FOR],
            [T_FOREACH],
            [T_IF],
            [T_STATIC],
            [T_STRING],
            [T_SWITCH],
            [T_VARIABLE],
            [T_WHILE],
        ])) {
            return;
        }

        $closeIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $index);

        $tokens[$index] = new Token([CT::T_BRACE_CLASS_INSTANTIATION_OPEN, '(']);
        $tokens[$closeIndex] = new Token([CT::T_BRACE_CLASS_INSTANTIATION_CLOSE, ')']);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tokenizer\Transformer;

use PhpCsFixer\Tokenizer\AbstractTransformer;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * Transform `class` class' constant from T_CLASS into CT::T_CLASS_CONSTANT.
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class ClassConstantTransformer extends AbstractTransformer
{
    /**
     * {@inheritdoc}
     */
    public function getCustomTokens()
    {
        return [CT::T_CLASS_CONSTANT];
    }

    /**
     * {@inheritdoc}
     */
    public function getRequiredPhpVersionId()
    {
        return 50500;
    }

    /**
     * {@inheritdoc}
     */
    public function process(Tokens $tokens, Token $token, $index)
    {
        if (!$token->equalsAny([
            [T_CLASS, 'class'],
            [T_STRING, 'class'],
        ], false)) {
            return;
        }

        $prevIndex = $tokens->getPrevMeaningfulToken($index);
        $prevToken = $tokens[$prevIndex];

        if ($prevToken->isGivenKind(T_DOUBLE_COLON)) {
            $tokens[$index] = new Token([CT::T_CLASS_CONSTANT, $token->getContent()]);
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tokenizer\Transformer;

use PhpCsFixer\Tokenizer\AbstractTransformer;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * Transform T_USE into:
 * - CT::T_USE_TRAIT for imports,
 * - CT::T_USE_LAMBDA for lambda variable uses.
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class UseTransformer extends AbstractTransformer
{
    /**
     * {@inheritdoc}
     */
    public function getCustomTokens()
    {
        return [CT::T_USE_TRAIT, CT::T_USE_LAMBDA];
    }

    /**
     * {@inheritdoc}
     */
    public function getPriority()
    {
        // Should run after CurlyBraceTransformer and before TypeColonTransformer
        return -5;
    }

    /**
     * {@inheritdoc}
     */
    public function getRequiredPhpVersionId()
    {
        return 50300;
    }

    /**
     * {@inheritdoc}
     */
    public function process(Tokens $tokens, Token $token, $index)
    {
        if ($token->isGivenKind(T_USE) && $this->isUseForLambda($tokens, $index)) {
            $tokens[$index] = new Token([CT::T_USE_LAMBDA, $token->getContent()]);

            return;
        }

        // Only search inside class/trait body for `T_USE` for traits.
        // Cannot import traits inside interfaces or anywhere else

        if (!$token->isGivenKind([T_CLASS, T_TRAIT])) {
            return;
        }

        if ($tokens[$tokens->getPrevMeaningfulToken($index)]->isGivenKind(T_DOUBLE_COLON)) {
            return;
        }

        $index = $tokens->getNextTokenOfKind($index, ['{']);
        $innerLimit = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $index);

        while ($index < $innerLimit) {
            $token = $tokens[++$index];

            if (!$token->isGivenKind(T_USE)) {
                continue;
            }

            if ($this->isUseForLambda($tokens, $index)) {
                $tokens[$index] = new Token([CT::T_USE_LAMBDA, $token->getContent()]);
            } else {
                $tokens[$index] = new Token([CT::T_USE_TRAIT, $token->getContent()]);
            }
        }
    }

    /**
     * Check if token under given index is `use` statement for lambda function.
     *
     * @param int $index
     *
     * @return bool
     */
    private function isUseForLambda(Tokens $tokens, $index)
    {
        $nextToken = $tokens[$tokens->getNextMeaningfulToken($index)];

        // test `function () use ($foo) {}` case
        return $nextToken->equals('(');
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tokenizer\Generator;

use PhpCsFixer\Tokenizer\Token;

/**
 * @internal
 */
final class NamespacedStringTokenGenerator
{
    /**
     * Parse a string that contains a namespace into tokens.
     *
     * @param string $input
     *
     * @return Token[]
     */
    public function generate($input)
    {
        $tokens = [];
        $parts = explode('\\', $input);

        foreach ($parts as $index => $part) {
            $tokens[] = new Token([T_STRING, $part]);
            if ($index !== \count($parts) - 1) {
                $tokens[] = new Token([T_NS_SEPARATOR, '\\']);
            }
        }

        return $tokens;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tokenizer;

use PhpCsFixer\Utils;
use Symfony\Component\Finder\Finder;
use Symfony\Component\Finder\SplFileInfo;

/**
 * Collection of Transformer classes.
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class Transformers
{
    /**
     * The registered transformers.
     *
     * @var TransformerInterface[]
     */
    private $items = [];

    /**
     * Register built in Transformers.
     */
    private function __construct()
    {
        $this->registerBuiltInTransformers();

        usort($this->items, static function (TransformerInterface $a, TransformerInterface $b) {
            return Utils::cmpInt($b->getPriority(), $a->getPriority());
        });
    }

    /**
     * @return Transformers
     */
    public static function create()
    {
        static $instance = null;

        if (!$instance) {
            $instance = new self();
        }

        return $instance;
    }

    /**
     * Transform given Tokens collection through all Transformer classes.
     *
     * @param Tokens $tokens Tokens collection
     */
    public function transform(Tokens $tokens)
    {
        foreach ($this->items as $transformer) {
            foreach ($tokens as $index => $token) {
                $transformer->process($tokens, $token, $index);
            }
        }
    }

    /**
     * @param TransformerInterface $transformer Transformer
     */
    private function registerTransformer(TransformerInterface $transformer)
    {
        if (\PHP_VERSION_ID >= $transformer->getRequiredPhpVersionId()) {
            $this->items[] = $transformer;
        }
    }

    private function registerBuiltInTransformers()
    {
        static $registered = false;

        if ($registered) {
            return;
        }

        $registered = true;

        foreach ($this->findBuiltInTransformers() as $transformer) {
            $this->registerTransformer($transformer);
        }
    }

    /**
     * @return \Generator|TransformerInterface[]
     */
    private function findBuiltInTransformers()
    {
        /** @var SplFileInfo $file */
        foreach (Finder::create()->files()->in(__DIR__.'/Transformer') as $file) {
            $relativeNamespace = $file->getRelativePath();
            $class = __NAMESPACE__.'\\Transformer\\'.($relativeNamespace ? $relativeNamespace.'\\' : '').$file->getBasename('.php');

            yield new $class();
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tokenizer;

/**
 * Interface for Transformer class.
 *
 * Transformer role is to register custom tokens and transform Tokens collection to use them.
 *
 * Custom token is a user defined token type and is used to separate different meaning of original token type.
 * For example T_ARRAY is a token for both creating new array and typehinting a parameter. This two meaning should have two token types.
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
interface TransformerInterface
{
    /**
     * Get tokens created by Transformer.
     *
     * @return array
     */
    public function getCustomTokens();

    /**
     * Return the name of the transformer.
     *
     * The name must be all lowercase and without any spaces.
     *
     * @return string The name of the fixer
     */
    public function getName();

    /**
     * Returns the priority of the transformer.
     *
     * The default priority is 0 and higher priorities are executed first.
     *
     * @return int
     */
    public function getPriority();

    /**
     * Return minimal required PHP version id to transform the code.
     *
     * Custom Token kinds from Transformers are always registered, but sometimes
     * there is no need to analyse the Tokens if for sure we cannot find examined
     * token kind, eg transforming `T_FUNCTION` in `<?php use function Foo\\bar;`
     * code.
     *
     * @return int
     */
    public function getRequiredPhpVersionId();

    /**
     * Process Token to transform it into custom token when needed.
     *
     * @param int $index
     */
    public function process(Tokens $tokens, Token $token, $index);
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tokenizer;

use PhpCsFixer\Utils;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
abstract class AbstractTransformer implements TransformerInterface
{
    /**
     * {@inheritdoc}
     */
    public function getName()
    {
        $nameParts = explode('\\', static::class);
        $name = substr(end($nameParts), 0, -\strlen('Transformer'));

        return Utils::camelCaseToUnderscore($name);
    }

    /**
     * {@inheritdoc}
     */
    public function getPriority()
    {
        return 0;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tokenizer\Analyzer\Analysis;

/**
 * @internal
 */
final class NamespaceUseAnalysis implements StartEndTokenAwareAnalysis
{
    const TYPE_CLASS = 1;
    const TYPE_FUNCTION = 2;
    const TYPE_CONSTANT = 3;

    /**
     * The fully qualified use namespace.
     *
     * @var string
     */
    private $fullName;

    /**
     * The short version of use namespace or the alias name in case of aliased use statements.
     *
     * @var string
     */
    private $shortName;

    /**
     * Is the use statement being aliased?
     *
     * @var bool
     */
    private $isAliased;

    /**
     * The start index of the namespace declaration in the analyzed Tokens.
     *
     * @var int
     */
    private $startIndex;

    /**
     * The end index of the namespace declaration in the analyzed Tokens.
     *
     * @var int
     */
    private $endIndex;

    /**
     * The type of import: class, function or constant.
     *
     * @var int
     */
    private $type;

    /**
     * @param string $fullName
     * @param string $shortName
     * @param bool   $isAliased
     * @param int    $startIndex
     * @param int    $endIndex
     * @param int    $type
     */
    public function __construct($fullName, $shortName, $isAliased, $startIndex, $endIndex, $type)
    {
        $this->fullName = $fullName;
        $this->shortName = $shortName;
        $this->isAliased = $isAliased;
        $this->startIndex = $startIndex;
        $this->endIndex = $endIndex;
        $this->type = $type;
    }

    /**
     * @return string
     */
    public function getFullName()
    {
        return $this->fullName;
    }

    /**
     * @return string
     */
    public function getShortName()
    {
        return $this->shortName;
    }

    /**
     * @return bool
     */
    public function isAliased()
    {
        return $this->isAliased;
    }

    /**
     * @return int
     */
    public function getStartIndex()
    {
        return $this->startIndex;
    }

    /**
     * @return int
     */
    public function getEndIndex()
    {
        return $this->endIndex;
    }

    /**
     * @return bool
     */
    public function isClass()
    {
        return self::TYPE_CLASS === $this->type;
    }

    /**
     * @return bool
     */
    public function isFunction()
    {
        return self::TYPE_FUNCTION === $this->type;
    }

    /**
     * @return bool
     */
    public function isConstant()
    {
        return self::TYPE_CONSTANT === $this->type;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tokenizer\Analyzer\Analysis;

interface StartEndTokenAwareAnalysis
{
    /**
     * The start index of the analyzed subject inside of the Tokens.
     *
     * @return int
     */
    public function getStartIndex();

    /**
     * The end index of the analyzed subject inside of the Tokens.
     *
     * @return int
     */
    public function getEndIndex();
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tokenizer\Analyzer\Analysis;

/**
 * @internal
 */
final class TypeAnalysis implements StartEndTokenAwareAnalysis
{
    /**
     * This list contains soft and hard reserved types that can be used or will be used by PHP at some point.
     *
     * More info:
     *
     * @see https://php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration.types
     * @see https://php.net/manual/en/reserved.other-reserved-words.php
     * @see https://php.net/manual/en/language.pseudo-types.php
     *
     * @var array
     */
    private static $reservedTypes = [
        'array',
        'bool',
        'callable',
        'int',
        'iterable',
        'float',
        'mixed',
        'numeric',
        'object',
        'resource',
        'self',
        'string',
        'void',
    ];

    /**
     * @var string
     */
    private $name;

    /**
     * @var int
     */
    private $startIndex;

    /**
     * @var int
     */
    private $endIndex;

    /**
     * @var bool
     */
    private $nullable;

    /**
     * @param string $name
     * @param int    $startIndex
     * @param int    $endIndex
     */
    public function __construct($name, $startIndex, $endIndex)
    {
        $this->name = $name;
        $this->nullable = false;

        if (0 === strpos($name, '?')) {
            $this->name = substr($name, 1);
            $this->nullable = true;
        }

        $this->startIndex = $startIndex;
        $this->endIndex = $endIndex;
    }

    /**
     * @return string
     */
    public function getName()
    {
        return $this->name;
    }

    /**
     * @return int
     */
    public function getStartIndex()
    {
        return $this->startIndex;
    }

    /**
     * @return int
     */
    public function getEndIndex()
    {
        return $this->endIndex;
    }

    /**
     * @return bool
     */
    public function isReservedType()
    {
        return \in_array($this->name, self::$reservedTypes, true);
    }

    /**
     * @return bool
     */
    public function isNullable()
    {
        return $this->nullable;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tokenizer\Analyzer\Analysis;

/**
 * @internal
 */
final class NamespaceAnalysis implements StartEndTokenAwareAnalysis
{
    /**
     * The fully qualified namespace name.
     *
     * @var string
     */
    private $fullName;

    /**
     * The short version of the namespace.
     *
     * @var string
     */
    private $shortName;

    /**
     * The start index of the namespace declaration in the analyzed Tokens.
     *
     * @var int
     */
    private $startIndex;

    /**
     * The end index of the namespace declaration in the analyzed Tokens.
     *
     * @var int
     */
    private $endIndex;

    /**
     * The start index of the scope of the namespace in the analyzed Tokens.
     *
     * @var int
     */
    private $scopeStartIndex;

    /**
     * The end index of the scope of the namespace in the analyzed Tokens.
     *
     * @var int
     */
    private $scopeEndIndex;

    /**
     * @param string $fullName
     * @param string $shortName
     * @param int    $startIndex
     * @param int    $endIndex
     * @param int    $scopeStartIndex
     * @param int    $scopeEndIndex
     */
    public function __construct($fullName, $shortName, $startIndex, $endIndex, $scopeStartIndex, $scopeEndIndex)
    {
        $this->fullName = $fullName;
        $this->shortName = $shortName;
        $this->startIndex = $startIndex;
        $this->endIndex = $endIndex;
        $this->scopeStartIndex = $scopeStartIndex;
        $this->scopeEndIndex = $scopeEndIndex;
    }

    /**
     * @return string
     */
    public function getFullName()
    {
        return $this->fullName;
    }

    /**
     * @return string
     */
    public function getShortName()
    {
        return $this->shortName;
    }

    /**
     * @return int
     */
    public function getStartIndex()
    {
        return $this->startIndex;
    }

    /**
     * @return int
     */
    public function getEndIndex()
    {
        return $this->endIndex;
    }

    /**
     * @return int
     */
    public function getScopeStartIndex()
    {
        return $this->scopeStartIndex;
    }

    /**
     * @return int
     */
    public function getScopeEndIndex()
    {
        return $this->scopeEndIndex;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tokenizer\Analyzer\Analysis;

/**
 * @internal
 */
final class ArgumentAnalysis
{
    /**
     * The default value of the argument.
     *
     * @var null|string
     */
    private $default;

    /**
     * The name of the argument.
     *
     * @var string
     */
    private $name;

    /**
     * The index where the name is located in the supplied Tokens object.
     *
     * @var int
     */
    private $nameIndex;

    /**
     * The type analysis of the argument.
     *
     * @var null|TypeAnalysis
     */
    private $typeAnalysis;

    /**
     * @param string      $name
     * @param int         $nameIndex
     * @param null|string $default
     */
    public function __construct($name, $nameIndex, $default, TypeAnalysis $typeAnalysis = null)
    {
        $this->name = $name;
        $this->nameIndex = $nameIndex;
        $this->default = $default ?: null;
        $this->typeAnalysis = $typeAnalysis ?: null;
    }

    /**
     * @return null|string
     */
    public function getDefault()
    {
        return $this->default;
    }

    /**
     * @return bool
     */
    public function hasDefault()
    {
        return null !== $this->default;
    }

    /**
     * @return string
     */
    public function getName()
    {
        return $this->name;
    }

    /**
     * @return int
     */
    public function getNameIndex()
    {
        return $this->nameIndex;
    }

    /**
     * @return null|TypeAnalysis
     */
    public function getTypeAnalysis()
    {
        return $this->typeAnalysis;
    }

    /**
     * @return bool
     */
    public function hasTypeAnalysis()
    {
        return null !== $this->typeAnalysis;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tokenizer\Analyzer;

use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Kuba Werłos <werlos@gmail.com>
 *
 * @internal
 */
final class BlocksAnalyzer
{
    /**
     * @param null|int $openIndex
     * @param null|int $closeIndex
     *
     * @return bool
     */
    public function isBlock(Tokens $tokens, $openIndex, $closeIndex)
    {
        if (null === $openIndex || null === $closeIndex) {
            return false;
        }

        if (!$tokens->offsetExists($openIndex)) {
            return false;
        }

        if (!$tokens->offsetExists($closeIndex)) {
            return false;
        }

        $blockType = $this->getBlockType($tokens[$openIndex]);

        if (null === $blockType) {
            return false;
        }

        return $closeIndex === $tokens->findBlockEnd($blockType, $openIndex);
    }

    /**
     * @return null|int
     */
    private function getBlockType(Token $token)
    {
        foreach (Tokens::getBlockEdgeDefinitions() as $blockType => $definition) {
            if ($token->equals($definition['start'])) {
                return $blockType;
            }
        }

        return null;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tokenizer\Analyzer;

use PhpCsFixer\Tokenizer\Analyzer\Analysis\ArgumentAnalysis;
use PhpCsFixer\Tokenizer\Analyzer\Analysis\NamespaceUseAnalysis;
use PhpCsFixer\Tokenizer\Analyzer\Analysis\TypeAnalysis;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @internal
 */
final class FunctionsAnalyzer
{
    /**
     * @var array
     */
    private $functionsAnalysis = ['tokens' => '', 'imports' => [], 'declarations' => []];

    /**
     * Important: risky because of the limited (file) scope of the tool.
     *
     * @param int $index
     *
     * @return bool
     */
    public function isGlobalFunctionCall(Tokens $tokens, $index)
    {
        if (!$tokens[$index]->isGivenKind(T_STRING)) {
            return false;
        }

        $nextIndex = $tokens->getNextMeaningfulToken($index);

        if (!$tokens[$nextIndex]->equals('(')) {
            return false;
        }

        $previousIsNamespaceSeparator = false;
        $prevIndex = $tokens->getPrevMeaningfulToken($index);

        if ($tokens[$prevIndex]->isGivenKind(T_NS_SEPARATOR)) {
            $previousIsNamespaceSeparator = true;
            $prevIndex = $tokens->getPrevMeaningfulToken($prevIndex);
        }

        if ($tokens[$prevIndex]->isGivenKind([T_DOUBLE_COLON, T_FUNCTION, CT::T_NAMESPACE_OPERATOR, T_NEW, T_OBJECT_OPERATOR, CT::T_RETURN_REF, T_STRING])) {
            return false;
        }

        if ($previousIsNamespaceSeparator) {
            return true;
        }

        if ($tokens->isChanged() || $tokens->getCodeHash() !== $this->functionsAnalysis['tokens']) {
            $this->buildFunctionsAnalysis($tokens);
        }

        // figure out in which namespace we are
        $namespaceAnalyzer = new NamespacesAnalyzer();

        $declarations = $namespaceAnalyzer->getDeclarations($tokens);
        $scopeStartIndex = 0;
        $scopeEndIndex = \count($tokens) - 1;
        $inGlobalNamespace = false;

        foreach ($declarations as $declaration) {
            $scopeStartIndex = $declaration->getScopeStartIndex();
            $scopeEndIndex = $declaration->getScopeEndIndex();

            if ($index >= $scopeStartIndex && $index <= $scopeEndIndex) {
                $inGlobalNamespace = '' === $declaration->getFullName();

                break;
            }
        }

        $call = strtolower($tokens[$index]->getContent());

        // check if the call is to a function declared in the same namespace as the call is done,
        // if the call is already in the global namespace than declared functions are in the same
        // global namespace and don't need checking

        if (!$inGlobalNamespace) {
            /** @var int $functionNameIndex */
            foreach ($this->functionsAnalysis['declarations'] as $functionNameIndex) {
                if ($functionNameIndex < $scopeStartIndex || $functionNameIndex > $scopeEndIndex) {
                    continue;
                }

                if (strtolower($tokens[$functionNameIndex]->getContent()) === $call) {
                    return false;
                }
            }
        }

        /** @var NamespaceUseAnalysis $functionUse */
        foreach ($this->functionsAnalysis['imports'] as $functionUse) {
            if ($functionUse->getStartIndex() < $scopeStartIndex || $functionUse->getEndIndex() > $scopeEndIndex) {
                continue;
            }

            if ($call !== strtolower($functionUse->getShortName())) {
                continue;
            }

            // global import like `use function \str_repeat;`
            return $functionUse->getShortName() === ltrim($functionUse->getFullName(), '\\');
        }

        return true;
    }

    /**
     * @param int $methodIndex
     *
     * @return ArgumentAnalysis[]
     */
    public function getFunctionArguments(Tokens $tokens, $methodIndex)
    {
        $argumentsStart = $tokens->getNextTokenOfKind($methodIndex, ['(']);
        $argumentsEnd = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $argumentsStart);
        $argumentAnalyzer = new ArgumentsAnalyzer();
        $arguments = [];

        foreach ($argumentAnalyzer->getArguments($tokens, $argumentsStart, $argumentsEnd) as $start => $end) {
            $argumentInfo = $argumentAnalyzer->getArgumentInfo($tokens, $start, $end);
            $arguments[$argumentInfo->getName()] = $argumentInfo;
        }

        return $arguments;
    }

    /**
     * @param int $methodIndex
     *
     * @return null|TypeAnalysis
     */
    public function getFunctionReturnType(Tokens $tokens, $methodIndex)
    {
        $argumentsStart = $tokens->getNextTokenOfKind($methodIndex, ['(']);
        $argumentsEnd = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $argumentsStart);
        $typeColonIndex = $tokens->getNextMeaningfulToken($argumentsEnd);
        if (':' !== $tokens[$typeColonIndex]->getContent()) {
            return null;
        }

        $type = '';
        $typeStartIndex = $tokens->getNextMeaningfulToken($typeColonIndex);
        $typeEndIndex = $typeStartIndex;
        $functionBodyStart = $tokens->getNextTokenOfKind($typeColonIndex, ['{', ';', [T_DOUBLE_ARROW]]);
        for ($i = $typeStartIndex; $i < $functionBodyStart; ++$i) {
            if ($tokens[$i]->isWhitespace() || $tokens[$i]->isComment()) {
                continue;
            }

            $type .= $tokens[$i]->getContent();
            $typeEndIndex = $i;
        }

        return new TypeAnalysis($type, $typeStartIndex, $typeEndIndex);
    }

    /**
     * @param int $index
     *
     * @return bool
     */
    public function isTheSameClassCall(Tokens $tokens, $index)
    {
        if (!$tokens->offsetExists($index)) {
            return false;
        }

        $operatorIndex = $tokens->getPrevMeaningfulToken($index);
        if (!$tokens->offsetExists($operatorIndex)) {
            return false;
        }

        $referenceIndex = $tokens->getPrevMeaningfulToken($operatorIndex);
        if (!$tokens->offsetExists($referenceIndex)) {
            return false;
        }

        return $tokens[$operatorIndex]->equals([T_OBJECT_OPERATOR, '->']) && $tokens[$referenceIndex]->equals([T_VARIABLE, '$this'], false)
            || $tokens[$operatorIndex]->equals([T_DOUBLE_COLON, '::']) && $tokens[$referenceIndex]->equals([T_STRING, 'self'], false)
            || $tokens[$operatorIndex]->equals([T_DOUBLE_COLON, '::']) && $tokens[$referenceIndex]->equals([T_STATIC, 'static'], false);
    }

    private function buildFunctionsAnalysis(Tokens $tokens)
    {
        $this->functionsAnalysis = [
            'tokens' => $tokens->getCodeHash(),
            'imports' => [],
            'declarations' => [],
        ];

        // find declarations

        if ($tokens->isTokenKindFound(T_FUNCTION)) {
            $end = \count($tokens);

            for ($i = 0; $i < $end; ++$i) {
                // skip classy, we are looking for functions not methods
                if ($tokens[$i]->isGivenKind(Token::getClassyTokenKinds())) {
                    $i = $tokens->getNextTokenOfKind($i, ['(', '{']);

                    if ($tokens[$i]->equals('(')) { // anonymous class
                        $i = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $i);
                        $i = $tokens->getNextTokenOfKind($i, ['{']);
                    }

                    $i = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $i);

                    continue;
                }

                if (!$tokens[$i]->isGivenKind(T_FUNCTION)) {
                    continue;
                }

                $i = $tokens->getNextMeaningfulToken($i);

                if ($tokens[$i]->isGivenKind(CT::T_RETURN_REF)) {
                    $i = $tokens->getNextMeaningfulToken($i);
                }

                if (!$tokens[$i]->isGivenKind(T_STRING)) {
                    continue;
                }

                $this->functionsAnalysis['declarations'][] = $i;
            }
        }

        // find imported functions

        $namespaceUsesAnalyzer = new NamespaceUsesAnalyzer();

        if ($tokens->isTokenKindFound(CT::T_FUNCTION_IMPORT)) {
            $declarations = $namespaceUsesAnalyzer->getDeclarationsFromTokens($tokens);

            foreach ($declarations as $declaration) {
                if ($declaration->isFunction()) {
                    $this->functionsAnalysis['imports'][] = $declaration;
                }
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tokenizer\Analyzer;

use PhpCsFixer\Tokenizer\Analyzer\Analysis\NamespaceAnalysis;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @internal
 */
final class NamespacesAnalyzer
{
    /**
     * @return NamespaceAnalysis[]
     */
    public function getDeclarations(Tokens $tokens)
    {
        $namespaces = [];

        for ($index = 1, $count = \count($tokens); $index < $count; ++$index) {
            $token = $tokens[$index];

            if (!$token->isGivenKind(T_NAMESPACE)) {
                continue;
            }

            $declarationEndIndex = $tokens->getNextTokenOfKind($index, [';', '{']);
            $namespace = trim($tokens->generatePartialCode($index + 1, $declarationEndIndex - 1));
            $declarationParts = explode('\\', $namespace);
            $shortName = end($declarationParts);

            if ($tokens[$declarationEndIndex]->equals('{')) {
                $scopeEndIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $declarationEndIndex);
            } else {
                $scopeEndIndex = $tokens->getNextTokenOfKind($declarationEndIndex, [[T_NAMESPACE]]);
                if (null === $scopeEndIndex) {
                    $scopeEndIndex = \count($tokens);
                }
                --$scopeEndIndex;
            }

            $namespaces[] = new NamespaceAnalysis(
                $namespace,
                $shortName,
                $index,
                $declarationEndIndex,
                $index,
                $scopeEndIndex
            );

            // Continue the analysis after the end of this namespace to find the next one
            $index = $scopeEndIndex;
        }

        if (0 === \count($namespaces)) {
            $namespaces[] = new NamespaceAnalysis('', '', 0, 0, 0, \count($tokens) - 1);
        }

        return $namespaces;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tokenizer\Analyzer;

use PhpCsFixer\Tokenizer\Analyzer\Analysis\ArgumentAnalysis;
use PhpCsFixer\Tokenizer\Analyzer\Analysis\TypeAnalysis;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 * @author Vladimir Reznichenko <kalessil@gmail.com>
 *
 * @internal
 */
final class ArgumentsAnalyzer
{
    /**
     * Count amount of parameters in a function/method reference.
     *
     * @param int $openParenthesis
     * @param int $closeParenthesis
     *
     * @return int
     */
    public function countArguments(Tokens $tokens, $openParenthesis, $closeParenthesis)
    {
        return \count($this->getArguments($tokens, $openParenthesis, $closeParenthesis));
    }

    /**
     * Returns start and end token indexes of arguments.
     *
     * Returns an array with each key being the first token of an
     * argument and the value the last. Including non-function tokens
     * such as comments and white space tokens, but without the separation
     * tokens like '(', ',' and ')'.
     *
     * @param int $openParenthesis
     * @param int $closeParenthesis
     *
     * @return array<int, int>
     */
    public function getArguments(Tokens $tokens, $openParenthesis, $closeParenthesis)
    {
        $arguments = [];
        $firstSensibleToken = $tokens->getNextMeaningfulToken($openParenthesis);
        if ($tokens[$firstSensibleToken]->equals(')')) {
            return $arguments;
        }

        $paramContentIndex = $openParenthesis + 1;
        $argumentsStart = $paramContentIndex;
        for (; $paramContentIndex < $closeParenthesis; ++$paramContentIndex) {
            $token = $tokens[$paramContentIndex];

            // skip nested (), [], {} constructs
            $blockDefinitionProbe = Tokens::detectBlockType($token);

            if (null !== $blockDefinitionProbe && true === $blockDefinitionProbe['isStart']) {
                $paramContentIndex = $tokens->findBlockEnd($blockDefinitionProbe['type'], $paramContentIndex);

                continue;
            }

            // if comma matched, increase arguments counter
            if ($token->equals(',')) {
                if ($tokens->getNextMeaningfulToken($paramContentIndex) === $closeParenthesis) {
                    break; // trailing ',' in function call (PHP 7.3)
                }

                $arguments[$argumentsStart] = $paramContentIndex - 1;
                $argumentsStart = $paramContentIndex + 1;
            }
        }

        $arguments[$argumentsStart] = $paramContentIndex - 1;

        return $arguments;
    }

    /**
     * @param int $argumentStart
     * @param int $argumentEnd
     *
     * @return ArgumentAnalysis
     */
    public function getArgumentInfo(Tokens $tokens, $argumentStart, $argumentEnd)
    {
        $info = [
            'default' => null,
            'name' => null,
            'name_index' => null,
            'type' => null,
            'type_index_start' => null,
            'type_index_end' => null,
        ];

        $sawName = false;
        for ($index = $argumentStart; $index <= $argumentEnd; ++$index) {
            $token = $tokens[$index];
            if ($token->isComment() || $token->isWhitespace() || $token->isGivenKind(T_ELLIPSIS) || $token->equals('&')) {
                continue;
            }
            if ($token->isGivenKind(T_VARIABLE)) {
                $sawName = true;
                $info['name_index'] = $index;
                $info['name'] = $token->getContent();

                continue;
            }
            if ($token->equals('=')) {
                continue;
            }
            if ($sawName) {
                $info['default'] .= $token->getContent();
            } else {
                $info['type_index_start'] = ($info['type_index_start'] > 0) ? $info['type_index_start'] : $index;
                $info['type_index_end'] = $index;
                $info['type'] .= $token->getContent();
            }
        }

        return new ArgumentAnalysis(
            $info['name'],
            $info['name_index'],
            $info['default'],
            $info['type'] ? new TypeAnalysis($info['type'], $info['type_index_start'], $info['type_index_end']) : null
        );
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tokenizer\Analyzer;

use PhpCsFixer\Tokenizer\Analyzer\Analysis\NamespaceUseAnalysis;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Tokenizer\TokensAnalyzer;

/**
 * @internal
 */
final class NamespaceUsesAnalyzer
{
    /**
     * @return NamespaceUseAnalysis[]
     */
    public function getDeclarationsFromTokens(Tokens $tokens)
    {
        $tokenAnalyzer = new TokensAnalyzer($tokens);
        $useIndexes = $tokenAnalyzer->getImportUseIndexes();

        return $this->getDeclarations($tokens, $useIndexes);
    }

    /**
     * @return NamespaceUseAnalysis[]
     */
    private function getDeclarations(Tokens $tokens, array $useIndexes)
    {
        $uses = [];

        foreach ($useIndexes as $index) {
            $endIndex = $tokens->getNextTokenOfKind($index, [';', [T_CLOSE_TAG]]);
            $analysis = $this->parseDeclaration($tokens, $index, $endIndex);
            if ($analysis) {
                $uses[] = $analysis;
            }
        }

        return $uses;
    }

    /**
     * @param int $startIndex
     * @param int $endIndex
     *
     * @return null|NamespaceUseAnalysis
     */
    private function parseDeclaration(Tokens $tokens, $startIndex, $endIndex)
    {
        $fullName = $shortName = '';
        $aliased = false;

        $type = NamespaceUseAnalysis::TYPE_CLASS;
        for ($i = $startIndex; $i <= $endIndex; ++$i) {
            $token = $tokens[$i];
            if ($token->equals(',') || $token->isGivenKind(CT::T_GROUP_IMPORT_BRACE_CLOSE)) {
                // do not touch group use declarations until the logic of this is added (for example: `use some\a\{ClassD};`)
                // ignore multiple use statements that should be split into few separate statements (for example: `use BarB, BarC as C;`)
                return null;
            }

            if ($token->isGivenKind(CT::T_FUNCTION_IMPORT)) {
                $type = NamespaceUseAnalysis::TYPE_FUNCTION;
            } elseif ($token->isGivenKind(CT::T_CONST_IMPORT)) {
                $type = NamespaceUseAnalysis::TYPE_CONSTANT;
            }

            if ($token->isWhitespace() || $token->isComment() || $token->isGivenKind(T_USE)) {
                continue;
            }

            if ($token->isGivenKind(T_STRING)) {
                $shortName = $token->getContent();
                if (!$aliased) {
                    $fullName .= $shortName;
                }
            } elseif ($token->isGivenKind(T_NS_SEPARATOR)) {
                $fullName .= $token->getContent();
            } elseif ($token->isGivenKind(T_AS)) {
                $aliased = true;
            }
        }

        return new NamespaceUseAnalysis(
            trim($fullName),
            $shortName,
            $aliased,
            $startIndex,
            $endIndex,
            $type
        );
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tokenizer\Analyzer;

use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @internal
 */
final class ClassyAnalyzer
{
    /**
     * @param int $index
     *
     * @return bool
     */
    public function isClassyInvocation(Tokens $tokens, $index)
    {
        $token = $tokens[$index];

        if (!$token->isGivenKind(T_STRING)) {
            throw new \LogicException(sprintf('No T_STRING at given index %d, got %s.', $index, $tokens[$index]->getName()));
        }

        if (\in_array(strtolower($token->getContent()), ['bool', 'float', 'int', 'iterable', 'object', 'parent', 'self', 'string', 'void'], true)) {
            return false;
        }

        $next = $tokens->getNextMeaningfulToken($index);
        $nextToken = $tokens[$next];

        if ($nextToken->isGivenKind(T_NS_SEPARATOR)) {
            return false;
        }

        if ($nextToken->isGivenKind([T_DOUBLE_COLON, T_ELLIPSIS, CT::T_TYPE_ALTERNATION, T_VARIABLE])) {
            return true;
        }

        $prev = $tokens->getPrevMeaningfulToken($index);

        while ($tokens[$prev]->isGivenKind([CT::T_NAMESPACE_OPERATOR, T_NS_SEPARATOR, T_STRING])) {
            $prev = $tokens->getPrevMeaningfulToken($prev);
        }

        $prevToken = $tokens[$prev];

        if ($prevToken->isGivenKind([T_EXTENDS, T_INSTANCEOF, T_INSTEADOF, T_IMPLEMENTS, T_NEW, CT::T_NULLABLE_TYPE, CT::T_TYPE_ALTERNATION, CT::T_TYPE_COLON, CT::T_USE_TRAIT])) {
            return true;
        }

        // `Foo & $bar` could be:
        //   - function reference parameter: function baz(Foo & $bar) {}
        //   - bit operator: $x = Foo & $bar;
        if ($nextToken->equals('&') && $tokens[$tokens->getNextMeaningfulToken($next)]->isGivenKind(T_VARIABLE)) {
            $checkIndex = $tokens->getPrevTokenOfKind($prev + 1, [';', '{', '}', [T_FUNCTION], [T_OPEN_TAG], [T_OPEN_TAG_WITH_ECHO]]);

            return $tokens[$checkIndex]->isGivenKind(T_FUNCTION);
        }

        if (!$prevToken->equals(',')) {
            return false;
        }

        do {
            $prev = $tokens->getPrevMeaningfulToken($prev);
        } while ($tokens[$prev]->equalsAny([',', [T_NS_SEPARATOR], [T_STRING], [CT::T_NAMESPACE_OPERATOR]]));

        return $tokens[$prev]->isGivenKind([T_IMPLEMENTS, CT::T_USE_TRAIT]);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tokenizer\Analyzer;

use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Kuba Werłos <werlos@gmail.com>
 * @author SpacePossum
 *
 * @internal
 */
final class CommentsAnalyzer
{
    const TYPE_HASH = 1;
    const TYPE_DOUBLE_SLASH = 2;
    const TYPE_SLASH_ASTERISK = 3;

    /**
     * @param int $index
     *
     * @return bool
     */
    public function isHeaderComment(Tokens $tokens, $index)
    {
        if (!$tokens[$index]->isGivenKind([T_COMMENT, T_DOC_COMMENT])) {
            throw new \InvalidArgumentException('Given index must point to a comment.');
        }

        if (null === $tokens->getNextMeaningfulToken($index)) {
            return false;
        }

        $prevIndex = $tokens->getPrevNonWhitespace($index);

        if ($tokens[$prevIndex]->equals(';')) {
            $braceCloseIndex = $tokens->getPrevMeaningfulToken($prevIndex);
            if (!$tokens[$braceCloseIndex]->equals(')')) {
                return false;
            }

            $braceOpenIndex = $tokens->findBlockStart(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $braceCloseIndex);
            $declareIndex = $tokens->getPrevMeaningfulToken($braceOpenIndex);
            if (!$tokens[$declareIndex]->isGivenKind(T_DECLARE)) {
                return false;
            }

            $prevIndex = $tokens->getPrevNonWhitespace($declareIndex);
        }

        return $tokens[$prevIndex]->isGivenKind(T_OPEN_TAG);
    }

    /**
     * Check if comment at given index precedes structural element.
     *
     * @see https://github.com/php-fig/fig-standards/blob/master/proposed/phpdoc.md#3-definitions
     *
     * @param int $index
     *
     * @return bool
     */
    public function isBeforeStructuralElement(Tokens $tokens, $index)
    {
        $token = $tokens[$index];

        if (!$token->isGivenKind([T_COMMENT, T_DOC_COMMENT])) {
            throw new \InvalidArgumentException('Given index must point to a comment.');
        }

        $nextIndex = $index;
        do {
            $nextIndex = $tokens->getNextMeaningfulToken($nextIndex);
        } while (null !== $nextIndex && $tokens[$nextIndex]->equals('('));

        if (null === $nextIndex || $tokens[$nextIndex]->equals('}')) {
            return false;
        }

        $nextToken = $tokens[$nextIndex];

        if ($this->isStructuralElement($nextToken)) {
            return true;
        }

        if ($this->isValidControl($tokens, $token, $nextIndex)) {
            return true;
        }

        if ($this->isValidVariable($tokens, $nextIndex)) {
            return true;
        }

        if ($this->isValidLanguageConstruct($tokens, $token, $nextIndex)) {
            return true;
        }

        return false;
    }

    /**
     * Return array of indices that are part of a comment started at given index.
     *
     * @param int $index T_COMMENT index
     *
     * @return null|array
     */
    public function getCommentBlockIndices(Tokens $tokens, $index)
    {
        if (!$tokens[$index]->isGivenKind(T_COMMENT)) {
            throw new \InvalidArgumentException('Given index must point to a comment.');
        }

        $commentType = $this->getCommentType($tokens[$index]->getContent());
        $indices = [$index];

        if (self::TYPE_SLASH_ASTERISK === $commentType) {
            return $indices;
        }

        $count = \count($tokens);
        ++$index;

        for (; $index < $count; ++$index) {
            if ($tokens[$index]->isComment()) {
                if ($commentType === $this->getCommentType($tokens[$index]->getContent())) {
                    $indices[] = $index;

                    continue;
                }

                break;
            }

            if (!$tokens[$index]->isWhitespace() || $this->getLineBreakCount($tokens, $index, $index + 1) > 1) {
                break;
            }
        }

        return $indices;
    }

    /**
     * @see https://github.com/phpDocumentor/fig-standards/blob/master/proposed/phpdoc.md#3-definitions
     *
     * @return bool
     */
    private function isStructuralElement(Token $token)
    {
        static $skip = [
            T_PRIVATE,
            T_PROTECTED,
            T_PUBLIC,
            T_VAR,
            T_FUNCTION,
            T_ABSTRACT,
            T_CONST,
            T_NAMESPACE,
            T_REQUIRE,
            T_REQUIRE_ONCE,
            T_INCLUDE,
            T_INCLUDE_ONCE,
            T_FINAL,
            T_STATIC,
        ];

        return $token->isClassy() || $token->isGivenKind($skip);
    }

    /**
     * Checks control structures (for, foreach, if, switch, while) for correct docblock usage.
     *
     * @param Token $docsToken    docs Token
     * @param int   $controlIndex index of control structure Token
     *
     * @return bool
     */
    private function isValidControl(Tokens $tokens, Token $docsToken, $controlIndex)
    {
        static $controlStructures = [
            T_FOR,
            T_FOREACH,
            T_IF,
            T_SWITCH,
            T_WHILE,
        ];

        if (!$tokens[$controlIndex]->isGivenKind($controlStructures)) {
            return false;
        }

        $index = $tokens->getNextMeaningfulToken($controlIndex);
        $endIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $index);
        $docsContent = $docsToken->getContent();

        for ($index = $index + 1; $index < $endIndex; ++$index) {
            $token = $tokens[$index];

            if (
                $token->isGivenKind(T_VARIABLE) &&
                false !== strpos($docsContent, $token->getContent())
            ) {
                return true;
            }
        }

        return false;
    }

    /**
     * Checks variable assignments through `list()`, `print()` etc. calls for correct docblock usage.
     *
     * @param Token $docsToken              docs Token
     * @param int   $languageConstructIndex index of variable Token
     *
     * @return bool
     */
    private function isValidLanguageConstruct(Tokens $tokens, Token $docsToken, $languageConstructIndex)
    {
        static $languageStructures = [
            T_LIST,
            T_PRINT,
            T_ECHO,
            CT::T_DESTRUCTURING_SQUARE_BRACE_OPEN,
        ];

        if (!$tokens[$languageConstructIndex]->isGivenKind($languageStructures)) {
            return false;
        }

        $endKind = $tokens[$languageConstructIndex]->isGivenKind(CT::T_DESTRUCTURING_SQUARE_BRACE_OPEN)
            ? [CT::T_DESTRUCTURING_SQUARE_BRACE_CLOSE]
            : ')';

        $endIndex = $tokens->getNextTokenOfKind($languageConstructIndex, [$endKind]);

        $docsContent = $docsToken->getContent();

        for ($index = $languageConstructIndex + 1; $index < $endIndex; ++$index) {
            $token = $tokens[$index];

            if ($token->isGivenKind(T_VARIABLE) && false !== strpos($docsContent, $token->getContent())) {
                return true;
            }
        }

        return false;
    }

    /**
     * Checks variable assignments for correct docblock usage.
     *
     * @param int $index index of variable Token
     *
     * @return bool
     */
    private function isValidVariable(Tokens $tokens, $index)
    {
        if (!$tokens[$index]->isGivenKind(T_VARIABLE)) {
            return false;
        }

        $nextIndex = $tokens->getNextMeaningfulToken($index);

        return $tokens[$nextIndex]->equals('=');
    }

    /**
     * @param string $content
     *
     * @return int
     */
    private function getCommentType($content)
    {
        if ('#' === $content[0]) {
            return self::TYPE_HASH;
        }

        if ('*' === $content[1]) {
            return self::TYPE_SLASH_ASTERISK;
        }

        return self::TYPE_DOUBLE_SLASH;
    }

    /**
     * @param int $whiteStart
     * @param int $whiteEnd
     *
     * @return int
     */
    private function getLineBreakCount(Tokens $tokens, $whiteStart, $whiteEnd)
    {
        $lineCount = 0;
        for ($i = $whiteStart; $i < $whiteEnd; ++$i) {
            $lineCount += Preg::matchAll('/\R/u', $tokens[$i]->getContent());
        }

        return $lineCount;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tokenizer\Resolver;

use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Analyzer\Analysis\NamespaceAnalysis;
use PhpCsFixer\Tokenizer\Analyzer\NamespacesAnalyzer;
use PhpCsFixer\Tokenizer\Analyzer\NamespaceUsesAnalyzer;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @internal
 */
final class TypeShortNameResolver
{
    /**
     * This method will resolve the shortName of a FQCN if possible or otherwise return the inserted type name.
     * E.g.: use Foo\Bar => "Bar".
     *
     * @param string $typeName
     *
     * @return string
     */
    public function resolve(Tokens $tokens, $typeName)
    {
        // First match explicit imports:
        $useMap = $this->getUseMapFromTokens($tokens);
        foreach ($useMap as $shortName => $fullName) {
            $regex = '/^\\\\?'.preg_quote($fullName, '/').'$/';
            if (Preg::match($regex, $typeName)) {
                return $shortName;
            }
        }

        // Next try to match (partial) classes inside the same namespace
        // For now only support one namespace per file:
        $namespaces = $this->getNamespacesFromTokens($tokens);
        if (1 === \count($namespaces)) {
            foreach ($namespaces as $fullName) {
                $matches = [];
                $regex = '/^\\\\?'.preg_quote($fullName, '/').'\\\\(?P<className>.+)$/';
                if (Preg::match($regex, $typeName, $matches)) {
                    return $matches['className'];
                }
            }
        }

        // Next: Try to match partial use statements:

        foreach ($useMap as $shortName => $fullName) {
            $matches = [];
            $regex = '/^\\\\?'.preg_quote($fullName, '/').'\\\\(?P<className>.+)$/';
            if (Preg::match($regex, $typeName, $matches)) {
                return $shortName.'\\'.$matches['className'];
            }
        }

        return $typeName;
    }

    /**
     * @return array<string, string> A list of all FQN namespaces in the file with the short name as key
     */
    private function getNamespacesFromTokens(Tokens $tokens)
    {
        return array_map(static function (NamespaceAnalysis $info) {
            return $info->getFullName();
        }, (new NamespacesAnalyzer())->getDeclarations($tokens));
    }

    /**
     * @return array<string, string> A list of all FQN use statements in the file with the short name as key
     */
    private function getUseMapFromTokens(Tokens $tokens)
    {
        $map = [];

        foreach ((new NamespaceUsesAnalyzer())->getDeclarationsFromTokens($tokens) as $useDeclaration) {
            $map[$useDeclaration->getShortName()] = $useDeclaration->getFullName();
        }

        return $map;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Tokenizer;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class CT
{
    const T_ARRAY_INDEX_CURLY_BRACE_CLOSE = 10001;
    const T_ARRAY_INDEX_CURLY_BRACE_OPEN = 10002;
    const T_ARRAY_SQUARE_BRACE_CLOSE = 10003;
    const T_ARRAY_SQUARE_BRACE_OPEN = 10004;
    const T_ARRAY_TYPEHINT = 10005;
    const T_BRACE_CLASS_INSTANTIATION_CLOSE = 10006;
    const T_BRACE_CLASS_INSTANTIATION_OPEN = 10007;
    const T_CLASS_CONSTANT = 10008;
    const T_CONST_IMPORT = 10009;
    const T_CURLY_CLOSE = 10010;
    const T_DESTRUCTURING_SQUARE_BRACE_CLOSE = 10011;
    const T_DESTRUCTURING_SQUARE_BRACE_OPEN = 10012;
    const T_DOLLAR_CLOSE_CURLY_BRACES = 10013;
    const T_DYNAMIC_PROP_BRACE_CLOSE = 10014;
    const T_DYNAMIC_PROP_BRACE_OPEN = 10015;
    const T_DYNAMIC_VAR_BRACE_CLOSE = 10016;
    const T_DYNAMIC_VAR_BRACE_OPEN = 10017;
    const T_FUNCTION_IMPORT = 10018;
    const T_GROUP_IMPORT_BRACE_CLOSE = 10019;
    const T_GROUP_IMPORT_BRACE_OPEN = 10020;
    const T_NAMESPACE_OPERATOR = 10021;
    const T_NULLABLE_TYPE = 10022;
    const T_RETURN_REF = 10023;
    const T_TYPE_ALTERNATION = 10024;
    const T_TYPE_COLON = 10025;
    const T_USE_LAMBDA = 10026;
    const T_USE_TRAIT = 10027;

    private function __construct()
    {
    }

    /**
     * Get name for custom token.
     *
     * @param int $value custom token value
     *
     * @return string
     */
    public static function getName($value)
    {
        if (!self::has($value)) {
            throw new \InvalidArgumentException(sprintf('No custom token was found for "%s".', $value));
        }

        $tokens = self::getMapById();

        return 'CT::'.$tokens[$value];
    }

    /**
     * Check if given custom token exists.
     *
     * @param int $value custom token value
     *
     * @return bool
     */
    public static function has($value)
    {
        $tokens = self::getMapById();

        return isset($tokens[$value]);
    }

    private static function getMapById()
    {
        static $constants;

        if (null === $constants) {
            $reflection = new \ReflectionClass(__CLASS__);
            $constants = array_flip($reflection->getConstants());
        }

        return $constants;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer;

use PhpCsFixer\Doctrine\Annotation\Tokens as DoctrineAnnotationTokens;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\Tokenizer\Token as PhpToken;
use PhpCsFixer\Tokenizer\Tokens as PhpTokens;
use PhpCsFixer\Tokenizer\TokensAnalyzer;

/**
 * @internal
 */
abstract class AbstractDoctrineAnnotationFixer extends AbstractFixer implements ConfigurationDefinitionFixerInterface
{
    /**
     * @var array
     */
    private $classyElements;

    /**
     * {@inheritdoc}
     */
    public function isCandidate(PhpTokens $tokens)
    {
        return $tokens->isTokenKindFound(T_DOC_COMMENT);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, PhpTokens $phpTokens)
    {
        // fetch indexes one time, this is safe as we never add or remove a token during fixing
        $analyzer = new TokensAnalyzer($phpTokens);
        $this->classyElements = $analyzer->getClassyElements();

        /** @var PhpToken $docCommentToken */
        foreach ($phpTokens->findGivenKind(T_DOC_COMMENT) as $index => $docCommentToken) {
            if (!$this->nextElementAcceptsDoctrineAnnotations($phpTokens, $index)) {
                continue;
            }

            $tokens = DoctrineAnnotationTokens::createFromDocComment(
                $docCommentToken,
                $this->configuration['ignored_tags']
            );
            $this->fixAnnotations($tokens);
            $phpTokens[$index] = new PhpToken([T_DOC_COMMENT, $tokens->getCode()]);
        }
    }

    /**
     * Fixes Doctrine annotations from the given PHPDoc style comment.
     */
    abstract protected function fixAnnotations(DoctrineAnnotationTokens $doctrineAnnotationTokens);

    /**
     * {@inheritdoc}
     */
    protected function createConfigurationDefinition()
    {
        return new FixerConfigurationResolver([
            (new FixerOptionBuilder('ignored_tags', 'List of tags that must not be treated as Doctrine Annotations.'))
                ->setAllowedTypes(['array'])
                ->setAllowedValues([static function ($values) {
                    foreach ($values as $value) {
                        if (!\is_string($value)) {
                            return false;
                        }
                    }

                    return true;
                }])
                ->setDefault([
                    // PHPDocumentor 1
                    'abstract',
                    'access',
                    'code',
                    'deprec',
                    'encode',
                    'exception',
                    'final',
                    'ingroup',
                    'inheritdoc',
                    'inheritDoc',
                    'magic',
                    'name',
                    'toc',
                    'tutorial',
                    'private',
                    'static',
                    'staticvar',
                    'staticVar',
                    'throw',

                    // PHPDocumentor 2
                    'api',
                    'author',
                    'category',
                    'copyright',
                    'deprecated',
                    'example',
                    'filesource',
                    'global',
                    'ignore',
                    'internal',
                    'license',
                    'link',
                    'method',
                    'package',
                    'param',
                    'property',
                    'property-read',
                    'property-write',
                    'return',
                    'see',
                    'since',
                    'source',
                    'subpackage',
                    'throws',
                    'todo',
                    'TODO',
                    'usedBy',
                    'uses',
                    'var',
                    'version',

                    // PHPUnit
                    'after',
                    'afterClass',
                    'backupGlobals',
                    'backupStaticAttributes',
                    'before',
                    'beforeClass',
                    'codeCoverageIgnore',
                    'codeCoverageIgnoreStart',
                    'codeCoverageIgnoreEnd',
                    'covers',
                    'coversDefaultClass',
                    'coversNothing',
                    'dataProvider',
                    'depends',
                    'expectedException',
                    'expectedExceptionCode',
                    'expectedExceptionMessage',
                    'expectedExceptionMessageRegExp',
                    'group',
                    'large',
                    'medium',
                    'preserveGlobalState',
                    'requires',
                    'runTestsInSeparateProcesses',
                    'runInSeparateProcess',
                    'small',
                    'test',
                    'testdox',
                    'ticket',
                    'uses',

                    // PHPCheckStyle
                    'SuppressWarnings',

                    // PHPStorm
                    'noinspection',

                    // PEAR
                    'package_version',

                    // PlantUML
                    'enduml',
                    'startuml',

                    // other
                    'fix',
                    'FIXME',
                    'fixme',
                    'override',
                ])
                ->getOption(),
        ]);
    }

    /**
     * @param int $index
     *
     * @return bool
     */
    private function nextElementAcceptsDoctrineAnnotations(PhpTokens $tokens, $index)
    {
        do {
            $index = $tokens->getNextMeaningfulToken($index);

            if (null === $index) {
                return false;
            }
        } while ($tokens[$index]->isGivenKind([T_ABSTRACT, T_FINAL]));

        if ($tokens[$index]->isClassy()) {
            return true;
        }

        while ($tokens[$index]->isGivenKind([T_PUBLIC, T_PROTECTED, T_PRIVATE, T_FINAL, T_ABSTRACT])) {
            $index = $tokens->getNextMeaningfulToken($index);
        }

        return isset($this->classyElements[$index]);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Runner;

use PhpCsFixer\Cache\CacheManagerInterface;
use PhpCsFixer\Event\Event;
use PhpCsFixer\FileReader;
use PhpCsFixer\FixerFileProcessedEvent;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class FileFilterIterator extends \FilterIterator
{
    /**
     * @var null|EventDispatcherInterface
     */
    private $eventDispatcher;

    /**
     * @var CacheManagerInterface
     */
    private $cacheManager;

    /**
     * @var array<string,bool>
     */
    private $visitedElements = [];

    public function __construct(
        \Traversable $iterator,
        EventDispatcherInterface $eventDispatcher = null,
        CacheManagerInterface $cacheManager
    ) {
        if (!$iterator instanceof \Iterator) {
            $iterator = new \IteratorIterator($iterator);
        }

        parent::__construct($iterator);

        $this->eventDispatcher = $eventDispatcher;
        $this->cacheManager = $cacheManager;
    }

    public function accept()
    {
        $file = $this->current();
        if (!$file instanceof \SplFileInfo) {
            throw new \RuntimeException(
                sprintf(
                    'Expected instance of "\SplFileInfo", got "%s".',
                    \is_object($file) ? \get_class($file) : \gettype($file)
                )
            );
        }

        $path = $file->isLink() ? $file->getPathname() : $file->getRealPath();

        if (isset($this->visitedElements[$path])) {
            return false;
        }

        $this->visitedElements[$path] = true;

        if (!$file->isFile() || $file->isLink()) {
            return false;
        }

        $content = FileReader::createSingleton()->read($path);

        // mark as skipped:
        if (
            // empty file
            '' === $content
            // file that does not need fixing due to cache
            || !$this->cacheManager->needFixing($file->getPathname(), $content)
        ) {
            $this->dispatchEvent(
                FixerFileProcessedEvent::NAME,
                new FixerFileProcessedEvent(FixerFileProcessedEvent::STATUS_SKIPPED)
            );

            return false;
        }

        return true;
    }

    /**
     * @param string $name
     */
    private function dispatchEvent($name, Event $event)
    {
        if (null === $this->eventDispatcher) {
            return;
        }

        // BC compatibility < Sf 4.3
        if (
            !$this->eventDispatcher instanceof \Symfony\Contracts\EventDispatcher\EventDispatcherInterface
        ) {
            $this->eventDispatcher->dispatch($name, $event);

            return;
        }

        $this->eventDispatcher->dispatch($event, $name);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Runner;

use PhpCsFixer\Linter\LinterInterface;
use PhpCsFixer\Linter\LintingResultInterface;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class FileLintingIterator extends \IteratorIterator
{
    /**
     * @var LintingResultInterface
     */
    private $currentResult;

    /**
     * @var null|LinterInterface
     */
    private $linter;

    public function __construct(\Iterator $iterator, LinterInterface $linter)
    {
        parent::__construct($iterator);

        $this->linter = $linter;
    }

    /**
     * @return null|LintingResultInterface
     */
    public function currentLintingResult()
    {
        return $this->currentResult;
    }

    public function next()
    {
        parent::next();

        $this->currentResult = $this->valid() ? $this->handleItem($this->current()) : null;
    }

    public function rewind()
    {
        parent::rewind();

        $this->currentResult = $this->valid() ? $this->handleItem($this->current()) : null;
    }

    private function handleItem(\SplFileInfo $file)
    {
        return $this->linter->lintFile($file->getRealPath());
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Runner;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Cache\CacheManagerInterface;
use PhpCsFixer\Cache\Directory;
use PhpCsFixer\Cache\DirectoryInterface;
use PhpCsFixer\Differ\DifferInterface;
use PhpCsFixer\Error\Error;
use PhpCsFixer\Error\ErrorsManager;
use PhpCsFixer\Event\Event;
use PhpCsFixer\FileReader;
use PhpCsFixer\Fixer\FixerInterface;
use PhpCsFixer\FixerFileProcessedEvent;
use PhpCsFixer\Linter\LinterInterface;
use PhpCsFixer\Linter\LintingException;
use PhpCsFixer\Linter\LintingResultInterface;
use PhpCsFixer\Tokenizer\Tokens;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\Filesystem\Exception\IOException;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class Runner
{
    /**
     * @var DifferInterface
     */
    private $differ;

    /**
     * @var DirectoryInterface
     */
    private $directory;

    /**
     * @var null|EventDispatcherInterface
     */
    private $eventDispatcher;

    /**
     * @var ErrorsManager
     */
    private $errorsManager;

    /**
     * @var CacheManagerInterface
     */
    private $cacheManager;

    /**
     * @var bool
     */
    private $isDryRun;

    /**
     * @var LinterInterface
     */
    private $linter;

    /**
     * @var \Traversable
     */
    private $finder;

    /**
     * @var FixerInterface[]
     */
    private $fixers;

    /**
     * @var bool
     */
    private $stopOnViolation;

    public function __construct(
        $finder,
        array $fixers,
        DifferInterface $differ,
        EventDispatcherInterface $eventDispatcher = null,
        ErrorsManager $errorsManager,
        LinterInterface $linter,
        $isDryRun,
        CacheManagerInterface $cacheManager,
        DirectoryInterface $directory = null,
        $stopOnViolation = false
    ) {
        $this->finder = $finder;
        $this->fixers = $fixers;
        $this->differ = $differ;
        $this->eventDispatcher = $eventDispatcher;
        $this->errorsManager = $errorsManager;
        $this->linter = $linter;
        $this->isDryRun = $isDryRun;
        $this->cacheManager = $cacheManager;
        $this->directory = $directory ?: new Directory('');
        $this->stopOnViolation = $stopOnViolation;
    }

    /**
     * @return array
     */
    public function fix()
    {
        $changed = [];

        $finder = $this->finder;
        $finderIterator = $finder instanceof \IteratorAggregate ? $finder->getIterator() : $finder;
        $fileFilteredFileIterator = new FileFilterIterator(
            $finderIterator,
            $this->eventDispatcher,
            $this->cacheManager
        );

        $collection = $this->linter->isAsync()
            ? new FileCachingLintingIterator($fileFilteredFileIterator, $this->linter)
            : new FileLintingIterator($fileFilteredFileIterator, $this->linter);

        foreach ($collection as $file) {
            $fixInfo = $this->fixFile($file, $collection->currentLintingResult());

            // we do not need Tokens to still caching just fixed file - so clear the cache
            Tokens::clearCache();

            if ($fixInfo) {
                $name = $this->directory->getRelativePathTo($file);
                $changed[$name] = $fixInfo;

                if ($this->stopOnViolation) {
                    break;
                }
            }
        }

        return $changed;
    }

    private function fixFile(\SplFileInfo $file, LintingResultInterface $lintingResult)
    {
        $name = $file->getPathname();

        try {
            $lintingResult->check();
        } catch (LintingException $e) {
            $this->dispatchEvent(
                FixerFileProcessedEvent::NAME,
                new FixerFileProcessedEvent(FixerFileProcessedEvent::STATUS_INVALID)
            );

            $this->errorsManager->report(new Error(Error::TYPE_INVALID, $name, $e));

            return;
        }

        $old = FileReader::createSingleton()->read($file->getRealPath());

        Tokens::setLegacyMode(false);

        $tokens = Tokens::fromCode($old);
        $oldHash = $tokens->getCodeHash();

        $newHash = $oldHash;
        $new = $old;

        $appliedFixers = [];

        try {
            foreach ($this->fixers as $fixer) {
                // for custom fixers we don't know is it safe to run `->fix()` without checking `->supports()` and `->isCandidate()`,
                // thus we need to check it and conditionally skip fixing
                if (
                    !$fixer instanceof AbstractFixer &&
                    (!$fixer->supports($file) || !$fixer->isCandidate($tokens))
                ) {
                    continue;
                }

                $fixer->fix($file, $tokens);

                if ($tokens->isChanged()) {
                    $tokens->clearEmptyTokens();
                    $tokens->clearChanged();
                    $appliedFixers[] = $fixer->getName();
                }
            }
        } catch (\Exception $e) {
            $this->processException($name, $e);

            return;
        } catch (\ParseError $e) {
            $this->dispatchEvent(
                FixerFileProcessedEvent::NAME,
                new FixerFileProcessedEvent(FixerFileProcessedEvent::STATUS_LINT)
            );

            $this->errorsManager->report(new Error(Error::TYPE_LINT, $name, $e));

            return;
        } catch (\Throwable $e) {
            $this->processException($name, $e);

            return;
        }

        $fixInfo = null;

        if (!empty($appliedFixers)) {
            $new = $tokens->generateCode();
            $newHash = $tokens->getCodeHash();
        }

        // We need to check if content was changed and then applied changes.
        // But we can't simple check $appliedFixers, because one fixer may revert
        // work of other and both of them will mark collection as changed.
        // Therefore we need to check if code hashes changed.
        if ($oldHash !== $newHash) {
            $fixInfo = [
                'appliedFixers' => $appliedFixers,
                'diff' => $this->differ->diff($old, $new),
            ];

            try {
                $this->linter->lintSource($new)->check();
            } catch (LintingException $e) {
                $this->dispatchEvent(
                    FixerFileProcessedEvent::NAME,
                    new FixerFileProcessedEvent(FixerFileProcessedEvent::STATUS_LINT)
                );

                $this->errorsManager->report(new Error(Error::TYPE_LINT, $name, $e, $fixInfo['appliedFixers'], $fixInfo['diff']));

                return;
            }

            if (!$this->isDryRun) {
                if (false === @file_put_contents($file->getRealPath(), $new)) {
                    $error = error_get_last();

                    throw new IOException(
                        sprintf('Failed to write file "%s", "%s".', $file->getPathname(), $error ? $error['message'] : 'no reason available'),
                        0,
                        null,
                        $file->getRealPath()
                    );
                }
            }
        }

        $this->cacheManager->setFile($name, $new);

        $this->dispatchEvent(
            FixerFileProcessedEvent::NAME,
            new FixerFileProcessedEvent($fixInfo ? FixerFileProcessedEvent::STATUS_FIXED : FixerFileProcessedEvent::STATUS_NO_CHANGES)
        );

        return $fixInfo;
    }

    /**
     * Process an exception that occurred.
     *
     * @param string     $name
     * @param \Throwable $e
     */
    private function processException($name, $e)
    {
        $this->dispatchEvent(
            FixerFileProcessedEvent::NAME,
            new FixerFileProcessedEvent(FixerFileProcessedEvent::STATUS_EXCEPTION)
        );

        $this->errorsManager->report(new Error(Error::TYPE_EXCEPTION, $name, $e));
    }

    /**
     * @param string $name
     */
    private function dispatchEvent($name, Event $event)
    {
        if (null === $this->eventDispatcher) {
            return;
        }

        // BC compatibility < Sf 4.3
        if (
            !$this->eventDispatcher instanceof \Symfony\Contracts\EventDispatcher\EventDispatcherInterface
        ) {
            $this->eventDispatcher->dispatch($name, $event);

            return;
        }

        $this->eventDispatcher->dispatch($event, $name);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Runner;

use PhpCsFixer\Linter\LinterInterface;
use PhpCsFixer\Linter\LintingResultInterface;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class FileCachingLintingIterator extends \CachingIterator
{
    /**
     * @var LintingResultInterface
     */
    private $currentResult;

    /**
     * @var LinterInterface
     */
    private $linter;

    /**
     * @var LintingResultInterface
     */
    private $nextResult;

    public function __construct(\Iterator $iterator, LinterInterface $linter)
    {
        parent::__construct($iterator);

        $this->linter = $linter;
    }

    public function currentLintingResult()
    {
        return $this->currentResult;
    }

    public function next()
    {
        parent::next();

        $this->currentResult = $this->nextResult;

        if ($this->hasNext()) {
            $this->nextResult = $this->handleItem($this->getInnerIterator()->current());
        }
    }

    public function rewind()
    {
        parent::rewind();

        if ($this->valid()) {
            $this->currentResult = $this->handleItem($this->current());
        }

        if ($this->hasNext()) {
            $this->nextResult = $this->handleItem($this->getInnerIterator()->current());
        }
    }

    private function handleItem(\SplFileInfo $file)
    {
        return $this->linter->lintFile($file->getRealPath());
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer;

use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Carlos Cirello <carlos.cirello.nl@gmail.com>
 *
 * @internal
 *
 * @deprecated
 */
abstract class AbstractAlignFixerHelper
{
    /**
     * @const Placeholder used as anchor for right alignment.
     */
    const ALIGNABLE_PLACEHOLDER = "\x2 ALIGNABLE%d \x3";

    /**
     * Keep track of the deepest level ever achieved while
     * parsing the code. Used later to replace alignment
     * placeholders with spaces.
     *
     * @var int
     */
    protected $deepestLevel = 0;

    public function fix(Tokens $tokens)
    {
        // This fixer works partially on Tokens and partially on string representation of code.
        // During the process of fixing internal state of single Token may be affected by injecting ALIGNABLE_PLACEHOLDER to its content.
        // The placeholder will be resolved by `replacePlaceholder` method by removing placeholder or changing it into spaces.
        // That way of fixing the code causes disturbances in marking Token as changed - if code is perfectly valid then placeholder
        // still be injected and removed, which will cause the `changed` flag to be set.
        // To handle that unwanted behavior we work on clone of Tokens collection and then override original collection with fixed collection.
        $tokensClone = clone $tokens;

        $this->injectAlignmentPlaceholders($tokensClone, 0, \count($tokens));
        $content = $this->replacePlaceholder($tokensClone);

        $tokens->setCode($content);
    }

    /**
     * Inject into the text placeholders of candidates of vertical alignment.
     *
     * @param int $startAt
     * @param int $endAt
     */
    abstract protected function injectAlignmentPlaceholders(Tokens $tokens, $startAt, $endAt);

    /**
     * Look for group of placeholders, and provide vertical alignment.
     *
     * @return string
     */
    protected function replacePlaceholder(Tokens $tokens)
    {
        $tmpCode = $tokens->generateCode();

        for ($j = 0; $j <= $this->deepestLevel; ++$j) {
            $placeholder = sprintf(self::ALIGNABLE_PLACEHOLDER, $j);

            if (false === strpos($tmpCode, $placeholder)) {
                continue;
            }

            $lines = explode("\n", $tmpCode);
            $linesWithPlaceholder = [];
            $blockSize = 0;

            $linesWithPlaceholder[$blockSize] = [];

            foreach ($lines as $index => $line) {
                if (substr_count($line, $placeholder) > 0) {
                    $linesWithPlaceholder[$blockSize][] = $index;
                } else {
                    ++$blockSize;
                    $linesWithPlaceholder[$blockSize] = [];
                }
            }

            foreach ($linesWithPlaceholder as $group) {
                if (\count($group) < 1) {
                    continue;
                }

                $rightmostSymbol = 0;
                foreach ($group as $index) {
                    $rightmostSymbol = max($rightmostSymbol, strpos(utf8_decode($lines[$index]), $placeholder));
                }

                foreach ($group as $index) {
                    $line = $lines[$index];
                    $currentSymbol = strpos(utf8_decode($line), $placeholder);
                    $delta = abs($rightmostSymbol - $currentSymbol);

                    if ($delta > 0) {
                        $line = str_replace($placeholder, str_repeat(' ', $delta).$placeholder, $line);
                        $lines[$index] = $line;
                    }
                }
            }

            $tmpCode = str_replace($placeholder, '', implode("\n", $lines));
        }

        return $tmpCode;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\FixerConfiguration;

/**
 * @internal
 */
final class AllowedValueSubset
{
    private $allowedValues;

    public function __construct(array $allowedValues)
    {
        $this->allowedValues = $allowedValues;
    }

    /**
     * Checks whether the given values are a subset of the allowed ones.
     *
     * @param mixed $values the value to validate
     *
     * @return bool
     */
    public function __invoke($values)
    {
        if (!\is_array($values)) {
            return false;
        }

        foreach ($values as $value) {
            if (!\in_array($value, $this->allowedValues, true)) {
                return false;
            }
        }

        return true;
    }

    public function getAllowedValues()
    {
        return $this->allowedValues;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\FixerConfiguration;

use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException;
use Symfony\Component\OptionsResolver\OptionsResolver;

final class FixerConfigurationResolver implements FixerConfigurationResolverInterface
{
    /**
     * @var FixerOptionInterface[]
     */
    private $options = [];

    /**
     * @var string[]
     */
    private $registeredNames = [];

    /**
     * @param iterable<FixerOptionInterface> $options
     */
    public function __construct($options)
    {
        foreach ($options as $option) {
            $this->addOption($option);
        }

        if (empty($this->registeredNames)) {
            throw new \LogicException('Options cannot be empty.');
        }
    }

    /**
     * {@inheritdoc}
     */
    public function getOptions()
    {
        return $this->options;
    }

    /**
     * {@inheritdoc}
     */
    public function resolve(array $options)
    {
        $resolver = new OptionsResolver();

        foreach ($this->options as $option) {
            $name = $option->getName();

            if ($option instanceof AliasedFixerOption) {
                $alias = $option->getAlias();

                if (\array_key_exists($alias, $options)) {
                    if (\array_key_exists($name, $options)) {
                        throw new InvalidOptionsException(sprintf('Aliased option %s/%s is passed multiple times.', $name, $alias));
                    }

                    @trigger_error(sprintf('Option "%s" is deprecated, use "%s" instead.', $alias, $name), E_USER_DEPRECATED);

                    $options[$name] = $options[$alias];
                    unset($options[$alias]);
                }
            }

            if ($option->hasDefault()) {
                $resolver->setDefault($name, $option->getDefault());
            } else {
                $resolver->setRequired($name);
            }

            $allowedValues = $option->getAllowedValues();
            if (null !== $allowedValues) {
                foreach ($allowedValues as &$allowedValue) {
                    if (\is_object($allowedValue) && \is_callable($allowedValue)) {
                        $allowedValue = static function ($values) use ($allowedValue) {
                            return $allowedValue($values);
                        };
                    }
                }

                $resolver->setAllowedValues($name, $allowedValues);
            }

            $allowedTypes = $option->getAllowedTypes();
            if (null !== $allowedTypes) {
                $resolver->setAllowedTypes($name, $allowedTypes);
            }

            $normalizer = $option->getNormalizer();
            if (null !== $normalizer) {
                $resolver->setNormalizer($name, $normalizer);
            }
        }

        return $resolver->resolve($options);
    }

    /**
     * @throws \LogicException when the option is already defined
     *
     * @return $this
     */
    private function addOption(FixerOptionInterface $option)
    {
        $name = $option->getName();

        if (\in_array($name, $this->registeredNames, true)) {
            throw new \LogicException(sprintf('The "%s" option is defined multiple times.', $name));
        }

        $this->options[] = $option;
        $this->registeredNames[] = $name;

        return $this;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\FixerConfiguration;

interface DeprecatedFixerOptionInterface extends FixerOptionInterface
{
    /**
     * @return string
     */
    public function getDeprecationMessage();
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\FixerConfiguration;

final class FixerOption implements FixerOptionInterface
{
    /**
     * @var string
     */
    private $name;

    /**
     * @var string
     */
    private $description;

    /**
     * @var mixed
     */
    private $default;

    /**
     * @var bool
     */
    private $isRequired;

    /**
     * @var null|string[]
     */
    private $allowedTypes;

    /**
     * @var null|array
     */
    private $allowedValues;

    /**
     * @var null|\Closure
     */
    private $normalizer;

    /**
     * @param string        $name
     * @param string        $description
     * @param bool          $isRequired
     * @param mixed         $default
     * @param null|string[] $allowedTypes
     */
    public function __construct(
        $name,
        $description,
        $isRequired = true,
        $default = null,
        array $allowedTypes = null,
        array $allowedValues = null,
        \Closure $normalizer = null
    ) {
        if ($isRequired && null !== $default) {
            throw new \LogicException('Required options cannot have a default value.');
        }

        if (null !== $allowedValues) {
            foreach ($allowedValues as &$allowedValue) {
                if ($allowedValue instanceof \Closure) {
                    $allowedValue = $this->unbind($allowedValue);
                }
            }
        }

        $this->name = $name;
        $this->description = $description;
        $this->isRequired = $isRequired;
        $this->default = $default;
        $this->allowedTypes = $allowedTypes;
        $this->allowedValues = $allowedValues;
        if (null !== $normalizer) {
            $this->normalizer = $this->unbind($normalizer);
        }
    }

    /**
     * {@inheritdoc}
     */
    public function getName()
    {
        return $this->name;
    }

    /**
     * {@inheritdoc}
     */
    public function getDescription()
    {
        return $this->description;
    }

    /**
     * {@inheritdoc}
     */
    public function hasDefault()
    {
        return !$this->isRequired;
    }

    /**
     * {@inheritdoc}
     */
    public function getDefault()
    {
        if (!$this->hasDefault()) {
            throw new \LogicException('No default value defined.');
        }

        return $this->default;
    }

    /**
     * {@inheritdoc}
     */
    public function getAllowedTypes()
    {
        return $this->allowedTypes;
    }

    /**
     * {@inheritdoc}
     */
    public function getAllowedValues()
    {
        return $this->allowedValues;
    }

    /**
     * {@inheritdoc}
     */
    public function getNormalizer()
    {
        return $this->normalizer;
    }

    /**
     * Unbinds the given closure to avoid memory leaks.
     *
     * The closures provided to this class were probably defined in a fixer
     * class and thus bound to it by default. The configuration will then be
     * stored in {@see AbstractFixer::$configurationDefinition}, leading to the
     * following cyclic reference:
     *
     *     fixer -> configuration definition -> options -> closures -> fixer
     *
     * This cyclic reference prevent the garbage collector to free memory as
     * all elements are still referenced.
     *
     * See {@see https://bugs.php.net/bug.php?id=69639 Bug #69639} for details.
     *
     * @return \Closure
     */
    private function unbind(\Closure $closure)
    {
        return $closure->bindTo(null);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\FixerConfiguration;

interface FixerOptionInterface
{
    /**
     * @return string
     */
    public function getName();

    /**
     * @return string
     */
    public function getDescription();

    /**
     * @return bool
     */
    public function hasDefault();

    /**
     * @throws \LogicException when no default value is defined
     *
     * @return mixed
     */
    public function getDefault();

    /**
     * @return null|string[]
     */
    public function getAllowedTypes();

    /**
     * @return null|array
     */
    public function getAllowedValues();

    /**
     * @return null|\Closure
     */
    public function getNormalizer();
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\FixerConfiguration;

final class FixerOptionBuilder
{
    /**
     * @var string
     */
    private $name;

    /**
     * @var string
     */
    private $description;

    /**
     * @var mixed
     */
    private $default;

    /**
     * @var bool
     */
    private $isRequired = true;

    /**
     * @var null|string[]
     */
    private $allowedTypes;

    /**
     * @var null|array
     */
    private $allowedValues;

    /**
     * @var null|\Closure
     */
    private $normalizer;

    /**
     * @var null|string
     */
    private $deprecationMessage;

    /**
     * @param string $name
     * @param string $description
     */
    public function __construct($name, $description)
    {
        $this->name = $name;
        $this->description = $description;
    }

    /**
     * @param mixed $default
     *
     * @return $this
     */
    public function setDefault($default)
    {
        $this->default = $default;
        $this->isRequired = false;

        return $this;
    }

    /**
     * @param string[] $allowedTypes
     *
     * @return $this
     */
    public function setAllowedTypes(array $allowedTypes)
    {
        $this->allowedTypes = $allowedTypes;

        return $this;
    }

    /**
     * @return $this
     */
    public function setAllowedValues(array $allowedValues)
    {
        $this->allowedValues = $allowedValues;

        return $this;
    }

    /**
     * @return $this
     */
    public function setNormalizer(\Closure $normalizer)
    {
        $this->normalizer = $normalizer;

        return $this;
    }

    /**
     * @param null|string $deprecationMessage
     *
     * @return $this
     */
    public function setDeprecationMessage($deprecationMessage)
    {
        $this->deprecationMessage = $deprecationMessage;

        return $this;
    }

    /**
     * @return FixerOptionInterface
     */
    public function getOption()
    {
        $option = new FixerOption(
            $this->name,
            $this->description,
            $this->isRequired,
            $this->default,
            $this->allowedTypes,
            $this->allowedValues,
            $this->normalizer
        );

        if (null !== $this->deprecationMessage) {
            $option = new DeprecatedFixerOption($option, $this->deprecationMessage);
        }

        return $option;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\FixerConfiguration;

use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class InvalidOptionsForEnvException extends InvalidOptionsException
{
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\FixerConfiguration;

/**
 * @author ntzm
 *
 * @internal
 *
 * @todo 3.0 Drop this class
 */
final class AliasedFixerOption implements FixerOptionInterface
{
    /**
     * @var FixerOptionInterface
     */
    private $fixerOption;

    /**
     * @var string
     */
    private $alias;

    public function __construct(FixerOptionInterface $fixerOption, $alias)
    {
        $this->fixerOption = $fixerOption;
        $this->alias = $alias;
    }

    /**
     * @return string
     */
    public function getAlias()
    {
        return $this->alias;
    }

    /**
     * {@inheritdoc}
     */
    public function getName()
    {
        return $this->fixerOption->getName();
    }

    /**
     * {@inheritdoc}
     */
    public function getDescription()
    {
        return $this->fixerOption->getDescription();
    }

    /**
     * {@inheritdoc}
     */
    public function hasDefault()
    {
        return $this->fixerOption->hasDefault();
    }

    /**
     * {@inheritdoc}
     */
    public function getDefault()
    {
        return $this->fixerOption->getDefault();
    }

    /**
     * {@inheritdoc}
     */
    public function getAllowedTypes()
    {
        return $this->fixerOption->getAllowedTypes();
    }

    /**
     * {@inheritdoc}
     */
    public function getAllowedValues()
    {
        return $this->fixerOption->getAllowedValues();
    }

    /**
     * {@inheritdoc}
     */
    public function getNormalizer()
    {
        return $this->fixerOption->getNormalizer();
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\FixerConfiguration;

/**
 * @internal
 *
 * @deprecated will be removed in 3.0
 */
final class FixerConfigurationResolverRootless implements FixerConfigurationResolverInterface
{
    /**
     * @var FixerConfigurationResolverInterface
     */
    private $resolver;

    /**
     * @var string
     */
    private $root;

    /**
     * @var string
     */
    private $fixerName;

    /**
     * @param string                         $root
     * @param iterable<FixerOptionInterface> $options
     * @param string                         $fixerName
     */
    public function __construct($root, $options, $fixerName)
    {
        $this->resolver = new FixerConfigurationResolver($options);
        $this->fixerName = $fixerName;

        $names = array_map(
            static function (FixerOptionInterface $option) {
                return $option->getName();
            },
            $this->resolver->getOptions()
        );

        if (!\in_array($root, $names, true)) {
            throw new \LogicException(sprintf('The "%s" option is not defined.', $root));
        }

        $this->root = $root;
    }

    /**
     * {@inheritdoc}
     */
    public function getOptions()
    {
        return $this->resolver->getOptions();
    }

    /**
     * {@inheritdoc}
     */
    public function resolve(array $options)
    {
        if (!empty($options) && !\array_key_exists($this->root, $options)) {
            $names = array_map(
                static function (FixerOptionInterface $option) {
                    return $option->getName();
                },
                $this->resolver->getOptions()
            );

            $passedNames = array_keys($options);

            if (!empty(array_diff($passedNames, $names))) {
                $message = "Passing \"{$this->root}\" at the root of the configuration for rule \"{$this->fixerName}\" is deprecated and will not be supported in 3.0, use \"{$this->root}\" => array(...) option instead.";

                if (getenv('PHP_CS_FIXER_FUTURE_MODE')) {
                    throw new \RuntimeException("{$message}. This check was performed as `PHP_CS_FIXER_FUTURE_MODE` env var is set.");
                }

                @trigger_error($message, E_USER_DEPRECATED);

                $options = [$this->root => $options];
            }
        }

        return $this->resolver->resolve($options);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\FixerConfiguration;

/**
 * @author ntzm
 *
 * @internal
 *
 * @todo 3.0 Drop this class
 */
final class AliasedFixerOptionBuilder
{
    /**
     * @var FixerOptionBuilder
     */
    private $optionBuilder;

    /**
     * @var string
     */
    private $alias;

    public function __construct(FixerOptionBuilder $optionBuilder, $alias)
    {
        $this->optionBuilder = $optionBuilder;
        $this->alias = $alias;
    }

    /**
     * @param mixed $default
     *
     * @return $this
     */
    public function setDefault($default)
    {
        $this->optionBuilder->setDefault($default);

        return $this;
    }

    /**
     * @param string[] $allowedTypes
     *
     * @return $this
     */
    public function setAllowedTypes(array $allowedTypes)
    {
        $this->optionBuilder->setAllowedTypes($allowedTypes);

        return $this;
    }

    /**
     * @return $this
     */
    public function setAllowedValues(array $allowedValues)
    {
        $this->optionBuilder->setAllowedValues($allowedValues);

        return $this;
    }

    /**
     * @return $this
     */
    public function setNormalizer(\Closure $normalizer)
    {
        $this->optionBuilder->setNormalizer($normalizer);

        return $this;
    }

    /**
     * @return AliasedFixerOption
     */
    public function getOption()
    {
        return new AliasedFixerOption(
            $this->optionBuilder->getOption(),
            $this->alias
        );
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\FixerConfiguration;

interface FixerConfigurationResolverInterface
{
    /**
     * @return FixerOptionInterface[]
     */
    public function getOptions();

    /**
     * @param array<string, mixed> $configuration
     *
     * @return array<string, mixed>
     */
    public function resolve(array $configuration);
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\FixerConfiguration;

final class DeprecatedFixerOption implements DeprecatedFixerOptionInterface
{
    /**
     * @var FixerOptionInterface
     */
    private $option;

    /**
     * @var string
     */
    private $deprecationMessage;

    /**
     * @param string $deprecationMessage
     */
    public function __construct(FixerOptionInterface $option, $deprecationMessage)
    {
        $this->option = $option;
        $this->deprecationMessage = $deprecationMessage;
    }

    /**
     * {@inheritdoc}
     */
    public function getName()
    {
        return $this->option->getName();
    }

    /**
     * {@inheritdoc}
     */
    public function getDescription()
    {
        return $this->option->getDescription();
    }

    /**
     * {@inheritdoc}
     */
    public function hasDefault()
    {
        return $this->option->hasDefault();
    }

    /**
     * {@inheritdoc}
     */
    public function getDefault()
    {
        return $this->option->getDefault();
    }

    /**
     * {@inheritdoc}
     */
    public function getAllowedTypes()
    {
        return $this->option->getAllowedTypes();
    }

    /**
     * {@inheritdoc}
     */
    public function getAllowedValues()
    {
        return $this->option->getAllowedValues();
    }

    /**
     * {@inheritdoc}
     */
    public function getNormalizer()
    {
        return $this->option->getNormalizer();
    }

    /**
     * @return string
     */
    public function getDeprecationMessage()
    {
        return $this->deprecationMessage;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer;

use PhpCsFixer\Event\Event;

/**
 * Event that is fired when file was processed by Fixer.
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class FixerFileProcessedEvent extends Event
{
    /**
     * Event name.
     */
    const NAME = 'fixer.file_processed';

    const STATUS_UNKNOWN = 0;
    const STATUS_INVALID = 1;
    const STATUS_SKIPPED = 2;
    const STATUS_NO_CHANGES = 3;
    const STATUS_FIXED = 4;
    const STATUS_EXCEPTION = 5;
    const STATUS_LINT = 6;

    /**
     * @var int
     */
    private $status;

    /**
     * @param int $status
     */
    public function __construct($status)
    {
        $this->status = $status;
    }

    /**
     * @return int
     */
    public function getStatus()
    {
        return $this->status;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer;

use PhpCsFixer\Fixer\FunctionNotation\NativeFunctionInvocationFixer;
use PhpCsFixer\Fixer\PhpUnit\PhpUnitTargetVersion;

/**
 * Set of rules to be used by fixer.
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 * @author SpacePossum
 *
 * @internal
 */
final class RuleSet implements RuleSetInterface
{
    private $setDefinitions = [
        '@PSR1' => [
            'encoding' => true,
            'full_opening_tag' => true,
        ],
        '@PSR2' => [
            '@PSR1' => true,
            'blank_line_after_namespace' => true,
            'braces' => true,
            'class_definition' => true,
            'constant_case' => true,
            'elseif' => true,
            'function_declaration' => true,
            'indentation_type' => true,
            'line_ending' => true,
            'lowercase_keywords' => true,
            'method_argument_space' => ['on_multiline' => 'ensure_fully_multiline'],
            'no_break_comment' => true,
            'no_closing_tag' => true,
            'no_spaces_after_function_name' => true,
            'no_spaces_inside_parenthesis' => true,
            'no_trailing_whitespace' => true,
            'no_trailing_whitespace_in_comment' => true,
            'single_blank_line_at_eof' => true,
            'single_class_element_per_statement' => ['elements' => ['property']],
            'single_import_per_statement' => true,
            'single_line_after_imports' => true,
            'switch_case_semicolon_to_colon' => true,
            'switch_case_space' => true,
            'visibility_required' => true,
        ],
        '@Symfony' => [
            '@PSR2' => true,
            'array_syntax' => ['syntax' => 'short'],
            'binary_operator_spaces' => true,
            'blank_line_after_opening_tag' => true,
            'blank_line_before_statement' => [
                'statements' => ['return'],
            ],
            'braces' => [
                'allow_single_line_closure' => true,
            ],
            'cast_spaces' => true,
            'class_attributes_separation' => ['elements' => ['method']],
            'class_definition' => ['single_line' => true],
            'concat_space' => true,
            'declare_equal_normalize' => true,
            'function_typehint_space' => true,
            'include' => true,
            'increment_style' => true,
            'lowercase_cast' => true,
            'lowercase_static_reference' => true,
            'magic_constant_casing' => true,
            'magic_method_casing' => true,
            'method_argument_space' => true,
            'native_function_casing' => true,
            'native_function_type_declaration_casing' => true,
            'new_with_braces' => true,
            'no_blank_lines_after_class_opening' => true,
            'no_blank_lines_after_phpdoc' => true,
            'no_empty_comment' => true,
            'no_empty_phpdoc' => true,
            'no_empty_statement' => true,
            'no_extra_blank_lines' => ['tokens' => [
                'curly_brace_block',
                'extra',
                'parenthesis_brace_block',
                'square_brace_block',
                'throw',
                'use',
            ]],
            'no_leading_import_slash' => true,
            'no_leading_namespace_whitespace' => true,
            'no_mixed_echo_print' => true,
            'no_multiline_whitespace_around_double_arrow' => true,
            'no_short_bool_cast' => true,
            'no_singleline_whitespace_before_semicolons' => true,
            'no_spaces_around_offset' => true,
            'no_superfluous_phpdoc_tags' => ['allow_mixed' => true, 'allow_unused_params' => true],
            'no_trailing_comma_in_list_call' => true,
            'no_trailing_comma_in_singleline_array' => true,
            'no_unneeded_control_parentheses' => true,
            'no_unneeded_curly_braces' => ['namespaces' => true],
            'no_unused_imports' => true,
            'no_whitespace_before_comma_in_array' => true,
            'no_whitespace_in_blank_line' => true,
            'normalize_index_brace' => true,
            'object_operator_without_whitespace' => true,
            'ordered_imports' => true,
            'php_unit_fqcn_annotation' => true,
            'phpdoc_align' => [
                // @TODO: on 3.0 switch whole rule to `=> true`, currently we use custom config that will be default on 3.0
                'tags' => [
                    'method',
                    'param',
                    'property',
                    'return',
                    'throws',
                    'type',
                    'var',
                ],
            ],
            'phpdoc_annotation_without_dot' => true,
            'phpdoc_indent' => true,
            'phpdoc_inline_tag' => true,
            'phpdoc_no_access' => true,
            'phpdoc_no_alias_tag' => true,
            'phpdoc_no_package' => true,
            'phpdoc_no_useless_inheritdoc' => true,
            'phpdoc_return_self_reference' => true,
            'phpdoc_scalar' => true,
            'phpdoc_separation' => true,
            'phpdoc_single_line_var_spacing' => true,
            'phpdoc_summary' => true,
            'phpdoc_to_comment' => true,
            'phpdoc_trim' => true,
            'phpdoc_trim_consecutive_blank_line_separation' => true,
            'phpdoc_types' => true,
            'phpdoc_types_order' => [
                'null_adjustment' => 'always_last',
                'sort_algorithm' => 'none',
            ],
            'phpdoc_var_without_name' => true,
            'return_type_declaration' => true,
            'semicolon_after_instruction' => true,
            'short_scalar_cast' => true,
            'single_blank_line_before_namespace' => true,
            'single_class_element_per_statement' => true,
            'single_line_comment_style' => [
                'comment_types' => ['hash'],
            ],
            'single_line_throw' => true,
            'single_quote' => true,
            'single_trait_insert_per_statement' => true,
            'space_after_semicolon' => [
                'remove_in_empty_for_expressions' => true,
            ],
            'standardize_increment' => true,
            'standardize_not_equals' => true,
            'ternary_operator_spaces' => true,
            'trailing_comma_in_multiline_array' => true,
            'trim_array_spaces' => true,
            'unary_operator_spaces' => true,
            'whitespace_after_comma_in_array' => true,
            'yoda_style' => true,
        ],
        '@Symfony:risky' => [
            'dir_constant' => true,
            'ereg_to_preg' => true,
            'error_suppression' => true,
            'fopen_flag_order' => true,
            'fopen_flags' => ['b_mode' => false],
            'function_to_constant' => [
                'functions' => [
                    'get_called_class',
                    'get_class',
                    'get_class_this',
                    'php_sapi_name',
                    'phpversion',
                    'pi',
                ],
            ],
            'implode_call' => true,
            'is_null' => true,
            'modernize_types_casting' => true,
            'native_constant_invocation' => [
                'fix_built_in' => false,
                'include' => [
                    'DIRECTORY_SEPARATOR',
                    'PHP_SAPI',
                    'PHP_VERSION_ID',
                ],
                'scope' => 'namespaced',
            ],
            'native_function_invocation' => [
                'include' => [NativeFunctionInvocationFixer::SET_COMPILER_OPTIMIZED],
                'scope' => 'namespaced',
                'strict' => true,
            ],
            'no_alias_functions' => true,
            'no_homoglyph_names' => true,
            'no_unneeded_final_method' => true,
            'non_printable_character' => true,
            'php_unit_construct' => true,
            'php_unit_mock_short_will_return' => true,
            'psr4' => true,
            'self_accessor' => true,
            'set_type_to_cast' => true,
        ],
        '@PhpCsFixer' => [
            '@Symfony' => true,
            'align_multiline_comment' => true,
            'array_indentation' => true,
            'blank_line_before_statement' => true,
            'combine_consecutive_issets' => true,
            'combine_consecutive_unsets' => true,
            'compact_nullable_typehint' => true,
            'escape_implicit_backslashes' => true,
            'explicit_indirect_variable' => true,
            'explicit_string_variable' => true,
            'fully_qualified_strict_types' => true,
            'heredoc_to_nowdoc' => true,
            'method_argument_space' => ['on_multiline' => 'ensure_fully_multiline'],
            'method_chaining_indentation' => true,
            'multiline_comment_opening_closing' => true,
            'multiline_whitespace_before_semicolons' => ['strategy' => 'new_line_for_chained_calls'],
            'no_alternative_syntax' => true,
            'no_binary_string' => true,
            'no_extra_blank_lines' => ['tokens' => [
                'break',
                'continue',
                'curly_brace_block',
                'extra',
                'parenthesis_brace_block',
                'return',
                'square_brace_block',
                'throw',
                'use',
            ]],
            'no_null_property_initialization' => true,
            'no_short_echo_tag' => true,
            'no_superfluous_elseif' => true,
            'no_unset_cast' => true,
            'no_useless_else' => true,
            'no_useless_return' => true,
            'ordered_class_elements' => true,
            'php_unit_internal_class' => true,
            'php_unit_method_casing' => true,
            'php_unit_ordered_covers' => true,
            'php_unit_test_class_requires_covers' => true,
            'phpdoc_add_missing_param_annotation' => true,
            'phpdoc_no_empty_return' => true,
            'phpdoc_order' => true,
            'phpdoc_types_order' => true,
            'phpdoc_var_annotation_correct_order' => true,
            'protected_to_private' => true,
            'return_assignment' => true,
            'simple_to_complex_string_variable' => true,
            'single_line_comment_style' => true,
            'single_line_throw' => false,
        ],
        '@PhpCsFixer:risky' => [
            '@Symfony:risky' => true,
            'comment_to_phpdoc' => true,
            'final_internal_class' => true,
            'logical_operators' => true,
            'no_unreachable_default_argument_value' => true,
            'no_unset_on_property' => true,
            'php_unit_set_up_tear_down_visibility' => true,
            'php_unit_strict' => true,
            'php_unit_test_annotation' => true,
            'php_unit_test_case_static_method_calls' => true,
            'strict_comparison' => true,
            'strict_param' => true,
            'string_line_ending' => true,
        ],
        '@DoctrineAnnotation' => [
            'doctrine_annotation_array_assignment' => [
                'operator' => ':',
            ],
            'doctrine_annotation_braces' => true,
            'doctrine_annotation_indentation' => true,
            'doctrine_annotation_spaces' => [
                'before_array_assignments_colon' => false,
            ],
        ],
        '@PHP56Migration' => [],
        '@PHP56Migration:risky' => [
            'pow_to_exponentiation' => true,
        ],
        '@PHP70Migration' => [
            '@PHP56Migration' => true,
            'ternary_to_null_coalescing' => true,
        ],
        '@PHP70Migration:risky' => [
            '@PHP56Migration:risky' => true,
            'combine_nested_dirname' => true,
            'declare_strict_types' => true,
            'non_printable_character' => [
                'use_escape_sequences_in_strings' => true,
            ],
            'random_api_migration' => ['replacements' => [
                'mt_rand' => 'random_int',
                'rand' => 'random_int',
            ]],
        ],
        '@PHP71Migration' => [
            '@PHP70Migration' => true,
            'visibility_required' => ['elements' => [
                'const',
                'method',
                'property',
            ]],
        ],
        '@PHP71Migration:risky' => [
            '@PHP70Migration:risky' => true,
            'void_return' => true,
        ],
        '@PHP73Migration' => [
            '@PHP71Migration' => true,
            'heredoc_indentation' => true,
        ],
        '@PHPUnit30Migration:risky' => [
            'php_unit_dedicate_assert' => ['target' => PhpUnitTargetVersion::VERSION_3_0],
        ],
        '@PHPUnit32Migration:risky' => [
            '@PHPUnit30Migration:risky' => true,
            'php_unit_no_expectation_annotation' => ['target' => PhpUnitTargetVersion::VERSION_3_2],
        ],
        '@PHPUnit35Migration:risky' => [
            '@PHPUnit32Migration:risky' => true,
            'php_unit_dedicate_assert' => ['target' => PhpUnitTargetVersion::VERSION_3_5],
        ],
        '@PHPUnit43Migration:risky' => [
            '@PHPUnit35Migration:risky' => true,
            'php_unit_no_expectation_annotation' => ['target' => PhpUnitTargetVersion::VERSION_4_3],
        ],
        '@PHPUnit48Migration:risky' => [
            '@PHPUnit43Migration:risky' => true,
            'php_unit_namespaced' => ['target' => PhpUnitTargetVersion::VERSION_4_8],
        ],
        '@PHPUnit50Migration:risky' => [
            '@PHPUnit48Migration:risky' => true,
            'php_unit_dedicate_assert' => true,
        ],
        '@PHPUnit52Migration:risky' => [
            '@PHPUnit50Migration:risky' => true,
            'php_unit_expectation' => ['target' => PhpUnitTargetVersion::VERSION_5_2],
        ],
        '@PHPUnit54Migration:risky' => [
            '@PHPUnit52Migration:risky' => true,
            'php_unit_mock' => ['target' => PhpUnitTargetVersion::VERSION_5_4],
        ],
        '@PHPUnit55Migration:risky' => [
            '@PHPUnit54Migration:risky' => true,
            'php_unit_mock' => ['target' => PhpUnitTargetVersion::VERSION_5_5],
        ],
        '@PHPUnit56Migration:risky' => [
            '@PHPUnit55Migration:risky' => true,
            'php_unit_dedicate_assert' => ['target' => PhpUnitTargetVersion::VERSION_5_6],
            'php_unit_expectation' => ['target' => PhpUnitTargetVersion::VERSION_5_6],
        ],
        '@PHPUnit57Migration:risky' => [
            '@PHPUnit56Migration:risky' => true,
            'php_unit_namespaced' => ['target' => PhpUnitTargetVersion::VERSION_5_7],
        ],
        '@PHPUnit60Migration:risky' => [
            '@PHPUnit57Migration:risky' => true,
            'php_unit_namespaced' => ['target' => PhpUnitTargetVersion::VERSION_6_0],
        ],
        '@PHPUnit75Migration:risky' => [
            '@PHPUnit60Migration:risky' => true,
            'php_unit_dedicate_assert_internal_type' => ['target' => PhpUnitTargetVersion::VERSION_7_5],
        ],
    ];

    /**
     * Set that was used to generate group of rules.
     *
     * The key is name of rule or set, value is bool if the rule/set should be used.
     *
     * @var array
     */
    private $set;

    /**
     * Group of rules generated from input set.
     *
     * The key is name of rule, value is bool if the rule/set should be used.
     * The key must not point to any set.
     *
     * @var array
     */
    private $rules;

    public function __construct(array $set = [])
    {
        foreach ($set as $key => $value) {
            if (\is_int($key)) {
                throw new \InvalidArgumentException(sprintf('Missing value for "%s" rule/set.', $value));
            }
        }

        $this->set = $set;
        $this->resolveSet();
    }

    public static function create(array $set = [])
    {
        return new self($set);
    }

    /**
     * {@inheritdoc}
     */
    public function hasRule($rule)
    {
        return \array_key_exists($rule, $this->rules);
    }

    /**
     * {@inheritdoc}
     */
    public function getRuleConfiguration($rule)
    {
        if (!$this->hasRule($rule)) {
            throw new \InvalidArgumentException(sprintf('Rule "%s" is not in the set.', $rule));
        }

        if (true === $this->rules[$rule]) {
            return null;
        }

        return $this->rules[$rule];
    }

    /**
     * {@inheritdoc}
     */
    public function getRules()
    {
        return $this->rules;
    }

    /**
     * {@inheritdoc}
     */
    public function getSetDefinitionNames()
    {
        return array_keys($this->setDefinitions);
    }

    /**
     * @param string $name name of set
     *
     * @return array
     */
    private function getSetDefinition($name)
    {
        if (!isset($this->setDefinitions[$name])) {
            throw new \InvalidArgumentException(sprintf('Set "%s" does not exist.', $name));
        }

        return $this->setDefinitions[$name];
    }

    /**
     * Resolve input set into group of rules.
     *
     * @return $this
     */
    private function resolveSet()
    {
        $rules = $this->set;
        $resolvedRules = [];

        // expand sets
        foreach ($rules as $name => $value) {
            if ('@' === $name[0]) {
                if (!\is_bool($value)) {
                    throw new \UnexpectedValueException(sprintf('Nested rule set "%s" configuration must be a boolean.', $name));
                }

                $set = $this->resolveSubset($name, $value);
                $resolvedRules = array_merge($resolvedRules, $set);
            } else {
                $resolvedRules[$name] = $value;
            }
        }

        // filter out all resolvedRules that are off
        $resolvedRules = array_filter($resolvedRules);

        $this->rules = $resolvedRules;

        return $this;
    }

    /**
     * Resolve set rules as part of another set.
     *
     * If set value is false then disable all fixers in set,
     * if not then get value from set item.
     *
     * @param string $setName
     * @param bool   $setValue
     *
     * @return array
     */
    private function resolveSubset($setName, $setValue)
    {
        $rules = $this->getSetDefinition($setName);
        foreach ($rules as $name => $value) {
            if ('@' === $name[0]) {
                $set = $this->resolveSubset($name, $setValue);
                unset($rules[$name]);
                $rules = array_merge($rules, $set);
            } elseif (!$setValue) {
                $rules[$name] = false;
            } else {
                $rules[$name] = $value;
            }
        }

        return $rules;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer;

use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * This abstract fixer is responsible for ensuring that a certain number of
 * lines prefix a namespace declaration.
 *
 * @author Graham Campbell <graham@alt-three.com>
 *
 * @internal
 */
abstract class AbstractLinesBeforeNamespaceFixer extends AbstractFixer implements WhitespacesAwareFixerInterface
{
    /**
     * Make sure # of line breaks prefixing namespace is within given range.
     *
     * @param int $index
     * @param int $expectedMin min. # of line breaks
     * @param int $expectedMax max. # of line breaks
     */
    protected function fixLinesBeforeNamespace(Tokens $tokens, $index, $expectedMin, $expectedMax)
    {
        // Let's determine the total numbers of new lines before the namespace
        // and the opening token
        $openingTokenIndex = null;
        $precedingNewlines = 0;
        $newlineInOpening = false;
        $openingToken = null;
        for ($i = 1; $i <= 2; ++$i) {
            if (isset($tokens[$index - $i])) {
                $token = $tokens[$index - $i];
                if ($token->isGivenKind(T_OPEN_TAG)) {
                    $openingToken = $token;
                    $openingTokenIndex = $index - $i;
                    $newlineInOpening = false !== strpos($token->getContent(), "\n");
                    if ($newlineInOpening) {
                        ++$precedingNewlines;
                    }

                    break;
                }
                if (false === $token->isGivenKind(T_WHITESPACE)) {
                    break;
                }
                $precedingNewlines += substr_count($token->getContent(), "\n");
            }
        }

        if ($precedingNewlines >= $expectedMin && $precedingNewlines <= $expectedMax) {
            return;
        }

        $previousIndex = $index - 1;
        $previous = $tokens[$previousIndex];

        if (0 === $expectedMax) {
            // Remove all the previous new lines
            if ($previous->isWhitespace()) {
                $tokens->clearAt($previousIndex);
            }
            // Remove new lines in opening token
            if ($newlineInOpening) {
                $tokens[$openingTokenIndex] = new Token([T_OPEN_TAG, rtrim($openingToken->getContent()).' ']);
            }

            return;
        }

        $lineEnding = $this->whitespacesConfig->getLineEnding();
        $newlinesForWhitespaceToken = $expectedMax;
        if (null !== $openingToken) {
            // Use the configured line ending for the PHP opening tag
            $content = rtrim($openingToken->getContent());
            $newContent = $content.$lineEnding;
            $tokens[$openingTokenIndex] = new Token([T_OPEN_TAG, $newContent]);
            --$newlinesForWhitespaceToken;
        }
        if (0 === $newlinesForWhitespaceToken) {
            // We have all the needed new lines in the opening tag
            if ($previous->isWhitespace()) {
                // Let's remove the previous token containing extra new lines
                $tokens->clearAt($previousIndex);
            }

            return;
        }
        if ($previous->isWhitespace()) {
            // Fix the previous whitespace token
            $tokens[$previousIndex] = new Token([T_WHITESPACE, str_repeat($lineEnding, $newlinesForWhitespaceToken).substr($previous->getContent(), strrpos($previous->getContent(), "\n") + 1)]);
        } else {
            // Add a new whitespace token
            $tokens->insertAt($index, new Token([T_WHITESPACE, str_repeat($lineEnding, $newlinesForWhitespaceToken)]));
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer;

use PhpCsFixer\Tokenizer\Analyzer\ArgumentsAnalyzer;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @internal
 *
 * @author SpacePossum
 */
abstract class AbstractFopenFlagFixer extends AbstractFunctionReferenceFixer
{
    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAllTokenKindsFound([T_STRING, T_CONSTANT_ENCAPSED_STRING]);
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $argumentsAnalyzer = new ArgumentsAnalyzer();

        $index = 0;
        $end = $tokens->count() - 1;
        while (true) {
            $candidate = $this->find('fopen', $tokens, $index, $end);

            if (null === $candidate) {
                break;
            }

            $index = $candidate[1]; // proceed to '(' of `fopen`

            // fetch arguments
            $arguments = $argumentsAnalyzer->getArguments(
                $tokens,
                $index,
                $candidate[2]
            );

            $argumentsCount = \count($arguments); // argument count sanity check

            if ($argumentsCount < 2 || $argumentsCount > 4) {
                continue;
            }

            $argumentStartIndex = array_keys($arguments)[1]; // get second argument index

            $this->fixFopenFlagToken(
                $tokens,
                $argumentStartIndex,
                $arguments[$argumentStartIndex]
            );
        }
    }

    abstract protected function fixFopenFlagToken(Tokens $tokens, $argumentStartIndex, $argumentEndIndex);

    /**
     * @param string $mode
     *
     * @return bool
     */
    protected function isValidModeString($mode)
    {
        $modeLength = \strlen($mode);
        if ($modeLength < 1 || $modeLength > 13) { // 13 === length 'r+w+a+x+c+etb'
            return false;
        }

        $validFlags = [
            'a' => true,
            'b' => true,
            'c' => true,
            'e' => true,
            'r' => true,
            't' => true,
            'w' => true,
            'x' => true,
        ];

        if (!isset($validFlags[$mode[0]])) {
            return false;
        }

        unset($validFlags[$mode[0]]);

        for ($i = 1; $i < $modeLength; ++$i) {
            if (isset($validFlags[$mode[$i]])) {
                unset($validFlags[$mode[$i]]);

                continue;
            }

            if ('+' !== $mode[$i]
                || (
                    'a' !== $mode[$i - 1] // 'a+','c+','r+','w+','x+'
                    && 'c' !== $mode[$i - 1]
                    && 'r' !== $mode[$i - 1]
                    && 'w' !== $mode[$i - 1]
                    && 'x' !== $mode[$i - 1]
                )
            ) {
                return false;
            }
        }

        return true;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer;

/**
 * @internal
 */
final class PharChecker implements PharCheckerInterface
{
    /**
     * {@inheritdoc}
     */
    public function checkFileValidity($filename)
    {
        try {
            $phar = new \Phar($filename);
            // free the variable to unlock the file
            unset($phar);
        } catch (\Exception $e) {
            if (!$e instanceof \UnexpectedValueException && !$e instanceof \PharException) {
                throw $e;
            }

            return 'Failed to create Phar instance. '.$e->getMessage();
        }

        return null;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Differ;

use PhpCsFixer\Diff\v3_0\Differ;
use PhpCsFixer\Diff\v3_0\Output\StrictUnifiedDiffOutputBuilder;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class FullDiffer implements DifferInterface
{
    /**
     * @var Differ
     */
    private $differ;

    public function __construct()
    {
        $this->differ = new Differ(new StrictUnifiedDiffOutputBuilder([
            'collapseRanges' => false,
            'commonLineThreshold' => 100,
            'contextLines' => 100,
            'fromFile' => 'Original',
            'toFile' => 'New',
        ]));
    }

    /**
     * {@inheritdoc}
     */
    public function diff($old, $new)
    {
        return $this->differ->diff($old, $new);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Differ;

use PhpCsFixer\Preg;
use Symfony\Component\Console\Formatter\OutputFormatter;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class DiffConsoleFormatter
{
    /**
     * @var bool
     */
    private $isDecoratedOutput;

    /**
     * @var string
     */
    private $template;

    /**
     * @param bool   $isDecoratedOutput
     * @param string $template
     */
    public function __construct($isDecoratedOutput, $template = '%s')
    {
        $this->isDecoratedOutput = $isDecoratedOutput;
        $this->template = $template;
    }

    /**
     * @param string $diff
     * @param string $lineTemplate
     *
     * @return string
     */
    public function format($diff, $lineTemplate = '%s')
    {
        $isDecorated = $this->isDecoratedOutput;

        $template = $isDecorated
            ? $this->template
            : Preg::replace('/<[^<>]+>/', '', $this->template)
        ;

        return sprintf(
            $template,
            implode(
                PHP_EOL,
                array_map(
                    static function ($line) use ($isDecorated, $lineTemplate) {
                        if ($isDecorated) {
                            $count = 0;
                            $line = Preg::replaceCallback(
                                [
                                    '/^(\+.*)/',
                                    '/^(\-.*)/',
                                    '/^(@.*)/',
                                ],
                                static function ($matches) {
                                    if ('+' === $matches[0][0]) {
                                        $colour = 'green';
                                    } elseif ('-' === $matches[0][0]) {
                                        $colour = 'red';
                                    } else {
                                        $colour = 'cyan';
                                    }

                                    return sprintf('<fg=%s>%s</fg=%s>', $colour, OutputFormatter::escape($matches[0]), $colour);
                                },
                                $line,
                                1,
                                $count
                            );

                            if (0 === $count) {
                                $line = OutputFormatter::escape($line);
                            }
                        }

                        return sprintf($lineTemplate, $line);
                    },
                    Preg::split('#\R#u', $diff)
                )
            )
        );
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Differ;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
interface DifferInterface
{
    /**
     * Create diff.
     *
     * @param string $old
     * @param string $new
     *
     * @return string
     *
     * TODO: on 3.0 pass the file name (if applicable) for which this diff is
     */
    public function diff($old, $new);
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Differ;

use PhpCsFixer\Diff\v1_4\Differ;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class SebastianBergmannDiffer implements DifferInterface
{
    /**
     * @var Differ
     */
    private $differ;

    public function __construct()
    {
        $this->differ = new Differ();
    }

    /**
     * {@inheritdoc}
     */
    public function diff($old, $new)
    {
        return $this->differ->diff($old, $new);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Differ;

use PhpCsFixer\Diff\v1_4\Differ;

/**
 * @author SpacePossum
 */
final class SebastianBergmannShortDiffer implements DifferInterface
{
    /**
     * @var Differ
     */
    private $differ;

    public function __construct()
    {
        $this->differ = new Differ("--- Original\n+++ New\n", false);
    }

    /**
     * {@inheritdoc}
     */
    public function diff($old, $new)
    {
        return $this->differ->diff($old, $new);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Differ;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class NullDiffer implements DifferInterface
{
    /**
     * {@inheritdoc}
     */
    public function diff($old, $new)
    {
        return '';
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Differ;

use PhpCsFixer\Diff\v3_0\Differ;
use PhpCsFixer\Diff\v3_0\Output\StrictUnifiedDiffOutputBuilder;

/**
 * @author SpacePossum
 */
final class UnifiedDiffer implements DifferInterface
{
    /**
     * @var Differ
     */
    private $differ;

    public function __construct()
    {
        $this->differ = new Differ(new StrictUnifiedDiffOutputBuilder([
            'fromFile' => 'Original',
            'toFile' => 'New',
        ]));
    }

    /**
     * {@inheritdoc}
     */
    public function diff($old, $new)
    {
        return $this->differ->diff($old, $new);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class FixerNameValidator
{
    /**
     * @param string $name
     * @param bool   $isCustom
     *
     * @return bool
     */
    public function isValid($name, $isCustom)
    {
        if (!$isCustom) {
            return 1 === Preg::match('/^[a-z][a-z0-9_]*$/', $name);
        }

        return 1 === Preg::match('/^[A-Z][a-zA-Z0-9]*\/[a-z][a-z0-9_]*$/', $name);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer;

use PhpCsFixer\Fixer\FixerInterface;

/**
 * @author Fabien Potencier <fabien@symfony.com>
 * @author Katsuhiro Ogawa <ko.fivestar@gmail.com>
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
class Config implements ConfigInterface
{
    private $cacheFile = '.php_cs.cache';
    private $customFixers = [];
    private $finder;
    private $format = 'txt';
    private $hideProgress = false;
    private $indent = '    ';
    private $isRiskyAllowed = false;
    private $lineEnding = "\n";
    private $name;
    private $phpExecutable;
    private $rules = ['@PSR2' => true];
    private $usingCache = true;

    public function __construct($name = 'default')
    {
        $this->name = $name;
    }

    /**
     * @return static
     */
    public static function create()
    {
        return new static();
    }

    /**
     * {@inheritdoc}
     */
    public function getCacheFile()
    {
        return $this->cacheFile;
    }

    /**
     * {@inheritdoc}
     */
    public function getCustomFixers()
    {
        return $this->customFixers;
    }

    /**
     * @return Finder
     */
    public function getFinder()
    {
        if (null === $this->finder) {
            $this->finder = new Finder();
        }

        return $this->finder;
    }

    /**
     * {@inheritdoc}
     */
    public function getFormat()
    {
        return $this->format;
    }

    /**
     * {@inheritdoc}
     */
    public function getHideProgress()
    {
        return $this->hideProgress;
    }

    /**
     * {@inheritdoc}
     */
    public function getIndent()
    {
        return $this->indent;
    }

    /**
     * {@inheritdoc}
     */
    public function getLineEnding()
    {
        return $this->lineEnding;
    }

    /**
     * {@inheritdoc}
     */
    public function getName()
    {
        return $this->name;
    }

    /**
     * {@inheritdoc}
     */
    public function getPhpExecutable()
    {
        return $this->phpExecutable;
    }

    /**
     * {@inheritdoc}
     */
    public function getRiskyAllowed()
    {
        return $this->isRiskyAllowed;
    }

    /**
     * {@inheritdoc}
     */
    public function getRules()
    {
        return $this->rules;
    }

    /**
     * {@inheritdoc}
     */
    public function getUsingCache()
    {
        return $this->usingCache;
    }

    /**
     * {@inheritdoc}
     */
    public function registerCustomFixers($fixers)
    {
        if (false === \is_array($fixers) && false === $fixers instanceof \Traversable) {
            throw new \InvalidArgumentException(sprintf(
                'Argument must be an array or a Traversable, got "%s".',
                \is_object($fixers) ? \get_class($fixers) : \gettype($fixers)
            ));
        }

        foreach ($fixers as $fixer) {
            $this->addCustomFixer($fixer);
        }

        return $this;
    }

    /**
     * {@inheritdoc}
     */
    public function setCacheFile($cacheFile)
    {
        $this->cacheFile = $cacheFile;

        return $this;
    }

    /**
     * {@inheritdoc}
     */
    public function setFinder($finder)
    {
        if (false === \is_array($finder) && false === $finder instanceof \Traversable) {
            throw new \InvalidArgumentException(sprintf(
                'Argument must be an array or a Traversable, got "%s".',
                \is_object($finder) ? \get_class($finder) : \gettype($finder)
            ));
        }

        $this->finder = $finder;

        return $this;
    }

    /**
     * {@inheritdoc}
     */
    public function setFormat($format)
    {
        $this->format = $format;

        return $this;
    }

    /**
     * {@inheritdoc}
     */
    public function setHideProgress($hideProgress)
    {
        $this->hideProgress = $hideProgress;

        return $this;
    }

    /**
     * {@inheritdoc}
     */
    public function setIndent($indent)
    {
        $this->indent = $indent;

        return $this;
    }

    /**
     * {@inheritdoc}
     */
    public function setLineEnding($lineEnding)
    {
        $this->lineEnding = $lineEnding;

        return $this;
    }

    /**
     * {@inheritdoc}
     */
    public function setPhpExecutable($phpExecutable)
    {
        $this->phpExecutable = $phpExecutable;

        return $this;
    }

    /**
     * {@inheritdoc}
     */
    public function setRiskyAllowed($isRiskyAllowed)
    {
        $this->isRiskyAllowed = $isRiskyAllowed;

        return $this;
    }

    /**
     * {@inheritdoc}
     */
    public function setRules(array $rules)
    {
        $this->rules = $rules;

        return $this;
    }

    /**
     * {@inheritdoc}
     */
    public function setUsingCache($usingCache)
    {
        $this->usingCache = $usingCache;

        return $this;
    }

    private function addCustomFixer(FixerInterface $fixer)
    {
        $this->customFixers[] = $fixer;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer;

use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Jordi Boggiano <j.boggiano@seld.be>
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 * @author Bram Gotink <bram@gotink.me>
 * @author Graham Campbell <graham@alt-three.com>
 *
 * @internal
 */
abstract class AbstractPsrAutoloadingFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        return $tokens->isAnyTokenKindsFound(Token::getClassyTokenKinds());
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    public function getPriority()
    {
        return -10;
    }

    /**
     * {@inheritdoc}
     */
    public function supports(\SplFileInfo $file)
    {
        if ($file instanceof StdinFileInfo) {
            return false;
        }

        $filenameParts = explode('.', $file->getBasename(), 2);

        if (
            // ignore file with extension other than php
            (!isset($filenameParts[1]) || 'php' !== $filenameParts[1])
            // ignore file with name that cannot be a class name
            || 0 === Preg::match('/^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*$/', $filenameParts[0])
        ) {
            return false;
        }

        try {
            $tokens = Tokens::fromCode(sprintf('<?php class %s {}', $filenameParts[0]));

            if ($tokens[3]->isKeyword() || $tokens[3]->isMagicConstant()) {
                // name can not be a class name - detected by PHP 5.x
                return false;
            }
        } catch (\ParseError $e) {
            // name can not be a class name - detected by PHP 7.x
            return false;
        }

        // ignore stubs/fixtures, since they are typically containing invalid files for various reasons
        return !Preg::match('{[/\\\\](stub|fixture)s?[/\\\\]}i', $file->getRealPath());
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Doctrine\Annotation;

use Doctrine\Common\Annotations\DocLexer;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token as PhpToken;

/**
 * A list of Doctrine annotation tokens.
 *
 * @internal
 */
final class Tokens extends \SplFixedArray
{
    /**
     * @param string[] $ignoredTags
     *
     * @throws \InvalidArgumentException
     *
     * @return self
     */
    public static function createFromDocComment(PhpToken $input, array $ignoredTags = [])
    {
        if (!$input->isGivenKind(T_DOC_COMMENT)) {
            throw new \InvalidArgumentException('Input must be a T_DOC_COMMENT token.');
        }

        $tokens = new self();

        $content = $input->getContent();
        $ignoredTextPosition = 0;
        $currentPosition = 0;
        while (false !== $nextAtPosition = strpos($content, '@', $currentPosition)) {
            if (0 !== $nextAtPosition && !Preg::match('/\s/', $content[$nextAtPosition - 1])) {
                $currentPosition = $nextAtPosition + 1;

                continue;
            }

            $lexer = new DocLexer();
            $lexer->setInput(substr($content, $nextAtPosition));

            $scannedTokens = [];
            $index = 0;
            $nbScannedTokensToUse = 0;
            $nbScopes = 0;
            while (null !== $token = $lexer->peek()) {
                if (0 === $index && DocLexer::T_AT !== $token['type']) {
                    break;
                }

                if (1 === $index) {
                    if (DocLexer::T_IDENTIFIER !== $token['type'] || \in_array($token['value'], $ignoredTags, true)) {
                        break;
                    }

                    $nbScannedTokensToUse = 2;
                }

                if ($index >= 2 && 0 === $nbScopes && !\in_array($token['type'], [DocLexer::T_NONE, DocLexer::T_OPEN_PARENTHESIS], true)) {
                    break;
                }

                $scannedTokens[] = $token;

                if (DocLexer::T_OPEN_PARENTHESIS === $token['type']) {
                    ++$nbScopes;
                } elseif (DocLexer::T_CLOSE_PARENTHESIS === $token['type']) {
                    if (0 === --$nbScopes) {
                        $nbScannedTokensToUse = \count($scannedTokens);

                        break;
                    }
                }

                ++$index;
            }

            if (0 !== $nbScopes) {
                break;
            }

            if (0 !== $nbScannedTokensToUse) {
                $ignoredTextLength = $nextAtPosition - $ignoredTextPosition;
                if (0 !== $ignoredTextLength) {
                    $tokens[] = new Token(DocLexer::T_NONE, substr($content, $ignoredTextPosition, $ignoredTextLength));
                }

                $lastTokenEndIndex = 0;
                foreach (\array_slice($scannedTokens, 0, $nbScannedTokensToUse) as $token) {
                    if (DocLexer::T_STRING === $token['type']) {
                        $token['value'] = '"'.str_replace('"', '""', $token['value']).'"';
                    }

                    $missingTextLength = $token['position'] - $lastTokenEndIndex;
                    if ($missingTextLength > 0) {
                        $tokens[] = new Token(DocLexer::T_NONE, substr(
                            $content,
                            $nextAtPosition + $lastTokenEndIndex,
                            $missingTextLength
                        ));
                    }

                    $tokens[] = new Token($token['type'], $token['value']);
                    $lastTokenEndIndex = $token['position'] + \strlen($token['value']);
                }

                $currentPosition = $ignoredTextPosition = $nextAtPosition + $token['position'] + \strlen($token['value']);
            } else {
                $currentPosition = $nextAtPosition + 1;
            }
        }

        if ($ignoredTextPosition < \strlen($content)) {
            $tokens[] = new Token(DocLexer::T_NONE, substr($content, $ignoredTextPosition));
        }

        return $tokens;
    }

    /**
     * Returns the index of the closest next token that is neither a comment nor a whitespace token.
     *
     * @param int $index
     *
     * @return null|int
     */
    public function getNextMeaningfulToken($index)
    {
        return $this->getMeaningfulTokenSibling($index, 1);
    }

    /**
     * Returns the index of the closest previous token that is neither a comment nor a whitespace token.
     *
     * @param int $index
     *
     * @return null|int
     */
    public function getPreviousMeaningfulToken($index)
    {
        return $this->getMeaningfulTokenSibling($index, -1);
    }

    /**
     * Returns the index of the closest next token of the given type.
     *
     * @param string|string[] $type
     * @param int             $index
     *
     * @return null|int
     */
    public function getNextTokenOfType($type, $index)
    {
        return $this->getTokenOfTypeSibling($index, $type, 1);
    }

    /**
     * Returns the index of the closest previous token of the given type.
     *
     * @param string|string[] $type
     * @param int             $index
     *
     * @return null|int
     */
    public function getPreviousTokenOfType($type, $index)
    {
        return $this->getTokenOfTypeSibling($index, $type, -1);
    }

    /**
     * Returns the index of the last token that is part of the annotation at the given index.
     *
     * @param int $index
     *
     * @return null|int
     */
    public function getAnnotationEnd($index)
    {
        $currentIndex = null;

        if (isset($this[$index + 2])) {
            if ($this[$index + 2]->isType(DocLexer::T_OPEN_PARENTHESIS)) {
                $currentIndex = $index + 2;
            } elseif (
                isset($this[$index + 3])
                && $this[$index + 2]->isType(DocLexer::T_NONE)
                && $this[$index + 3]->isType(DocLexer::T_OPEN_PARENTHESIS)
                && Preg::match('/^(\R\s*\*\s*)*\s*$/', $this[$index + 2]->getContent())
            ) {
                $currentIndex = $index + 3;
            }
        }

        if (null !== $currentIndex) {
            $level = 0;
            for ($max = \count($this); $currentIndex < $max; ++$currentIndex) {
                if ($this[$currentIndex]->isType(DocLexer::T_OPEN_PARENTHESIS)) {
                    ++$level;
                } elseif ($this[$currentIndex]->isType(DocLexer::T_CLOSE_PARENTHESIS)) {
                    --$level;
                }

                if (0 === $level) {
                    return $currentIndex;
                }
            }

            return null;
        }

        return $index + 1;
    }

    /**
     * Returns the index of the close brace that matches the open brace at the given index.
     *
     * @param int $index
     *
     * @return null|int
     */
    public function getArrayEnd($index)
    {
        $level = 1;
        for (++$index, $max = \count($this); $index < $max; ++$index) {
            if ($this[$index]->isType(DocLexer::T_OPEN_CURLY_BRACES)) {
                ++$level;
            } elseif ($this[$index]->isType($index, DocLexer::T_CLOSE_CURLY_BRACES)) {
                --$level;
            }

            if (0 === $level) {
                return $index;
            }
        }

        return null;
    }

    /**
     * Returns the code from the tokens.
     *
     * @return string
     */
    public function getCode()
    {
        $code = '';
        foreach ($this as $token) {
            $code .= $token->getContent();
        }

        return $code;
    }

    /**
     * Inserts a token at the given index.
     *
     * @param int $index
     */
    public function insertAt($index, Token $token)
    {
        $this->setSize($this->getSize() + 1);

        for ($i = $this->getSize() - 1; $i > $index; --$i) {
            $this[$i] = isset($this[$i - 1]) ? $this[$i - 1] : new Token();
        }

        $this[$index] = $token;
    }

    /**
     * {@inheritdoc}
     *
     * @throws \InvalidArgumentException
     */
    public function offsetSet($index, $token)
    {
        if (!$token instanceof Token) {
            $type = \gettype($token);
            if ('object' === $type) {
                $type = \get_class($token);
            }

            throw new \InvalidArgumentException(sprintf(
                'Token must be an instance of PhpCsFixer\\Doctrine\\Annotation\\Token, %s given.',
                $type
            ));
        }

        if (null === $index) {
            $index = \count($this);
            $this->setSize($this->getSize() + 1);
        }

        parent::offsetSet($index, $token);
    }

    /**
     * {@inheritdoc}
     *
     * @throws \OutOfBoundsException
     */
    public function offsetUnset($index)
    {
        if (!isset($this[$index])) {
            throw new \OutOfBoundsException(sprintf('Index %s is invalid or does not exist.', $index));
        }

        $max = \count($this) - 1;
        while ($index < $max) {
            $this[$index] = $this[$index + 1];
            ++$index;
        }

        parent::offsetUnset($index);

        $this->setSize($max);
    }

    /**
     * @param int $index
     * @param int $direction
     *
     * @return null|int
     */
    private function getMeaningfulTokenSibling($index, $direction)
    {
        while (true) {
            $index += $direction;

            if (!$this->offsetExists($index)) {
                break;
            }

            if (!$this[$index]->isType(DocLexer::T_NONE)) {
                return $index;
            }
        }

        return null;
    }

    /**
     * @param int             $index
     * @param string|string[] $type
     * @param int             $direction
     *
     * @return null|int
     */
    private function getTokenOfTypeSibling($index, $type, $direction)
    {
        while (true) {
            $index += $direction;

            if (!$this->offsetExists($index)) {
                break;
            }

            if ($this[$index]->isType($type)) {
                return $index;
            }
        }

        return null;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Doctrine\Annotation;

use Doctrine\Common\Annotations\DocLexer;

/**
 * A Doctrine annotation token.
 *
 * @internal
 */
final class Token
{
    /**
     * @var int
     */
    private $type;

    /**
     * @var string
     */
    private $content;

    /**
     * @param int    $type    The type
     * @param string $content The content
     */
    public function __construct($type = DocLexer::T_NONE, $content = '')
    {
        $this->type = $type;
        $this->content = $content;
    }

    /**
     * @return int
     */
    public function getType()
    {
        return $this->type;
    }

    /**
     * @param int $type
     */
    public function setType($type)
    {
        $this->type = $type;
    }

    /**
     * @return string
     */
    public function getContent()
    {
        return $this->content;
    }

    /**
     * @param string $content
     */
    public function setContent($content)
    {
        $this->content = $content;
    }

    /**
     * Returns whether the token type is one of the given types.
     *
     * @param int|int[] $types
     *
     * @return bool
     */
    public function isType($types)
    {
        if (!\is_array($types)) {
            $types = [$types];
        }

        return \in_array($this->getType(), $types, true);
    }

    /**
     * Overrides the content with an empty string.
     */
    public function clear()
    {
        $this->setContent('');
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 * @author SpacePossum
 *
 * @internal
 */
final class WordMatcher
{
    /**
     * @var string[]
     */
    private $candidates;

    /**
     * @param string[] $candidates
     */
    public function __construct(array $candidates)
    {
        $this->candidates = $candidates;
    }

    /**
     * @param string $needle
     *
     * @return null|string
     */
    public function match($needle)
    {
        $word = null;
        $distance = ceil(\strlen($needle) * 0.35);

        foreach ($this->candidates as $candidate) {
            $candidateDistance = levenshtein($needle, $candidate);

            if ($candidateDistance < $distance) {
                $word = $candidate;
                $distance = $candidateDistance;
            }
        }

        return $word;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer;

use PhpCsFixer\Fixer\FixerInterface;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
abstract class AbstractProxyFixer extends AbstractFixer
{
    /**
     * @var array<string, FixerInterface>
     */
    protected $proxyFixers;

    public function __construct()
    {
        foreach (Utils::sortFixers($this->createProxyFixers()) as $proxyFixer) {
            $this->proxyFixers[$proxyFixer->getName()] = $proxyFixer;
        }

        parent::__construct();
    }

    /**
     * {@inheritdoc}
     */
    public function isCandidate(Tokens $tokens)
    {
        foreach ($this->proxyFixers as $fixer) {
            if ($fixer->isCandidate($tokens)) {
                return true;
            }
        }

        return false;
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        foreach ($this->proxyFixers as $fixer) {
            if ($fixer->isRisky()) {
                return true;
            }
        }

        return false;
    }

    /**
     * {@inheritdoc}
     */
    public function getPriority()
    {
        if (\count($this->proxyFixers) > 1) {
            throw new \LogicException('You need to override this method to provide the priority of combined fixers.');
        }

        return reset($this->proxyFixers)->getPriority();
    }

    /**
     * {@inheritdoc}
     */
    public function supports(\SplFileInfo $file)
    {
        foreach ($this->proxyFixers as $fixer) {
            if ($fixer->supports($file)) {
                return true;
            }
        }

        return false;
    }

    /**
     * {@inheritdoc}
     */
    public function setWhitespacesConfig(WhitespacesFixerConfig $config)
    {
        parent::setWhitespacesConfig($config);

        foreach ($this->proxyFixers as $fixer) {
            if ($fixer instanceof WhitespacesAwareFixerInterface) {
                $fixer->setWhitespacesConfig($config);
            }
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($this->proxyFixers as $fixer) {
            $fixer->fix($file, $tokens);
        }
    }

    /**
     * @return FixerInterface[]
     */
    abstract protected function createProxyFixers();
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer;

/**
 * @author Davi Koscianski Vidal <davividal@gmail.com>
 *
 * @internal
 */
final class StdinFileInfo extends \SplFileInfo
{
    public function __construct()
    {
    }

    public function __toString()
    {
        return $this->getRealPath();
    }

    public function getRealPath()
    {
        // So file_get_contents & friends will work.
        // Warning - this stream is not seekable, so `file_get_contents` will work only once! Consider using `FileReader`.
        return 'php://stdin';
    }

    public function getATime()
    {
        return 0;
    }

    public function getBasename($suffix = null)
    {
        return $this->getFilename();
    }

    public function getCTime()
    {
        return 0;
    }

    public function getExtension()
    {
        return '.php';
    }

    public function getFileInfo($className = null)
    {
        throw new \BadMethodCallException(sprintf('Method "%s" is not implemented.', __METHOD__));
    }

    public function getFilename()
    {
        /*
         * Useful so fixers depending on PHP-only files still work.
         *
         * The idea to use STDIN is to parse PHP-only files, so we can
         * assume that there will be always a PHP file out there.
         */

        return 'stdin.php';
    }

    public function getGroup()
    {
        return 0;
    }

    public function getInode()
    {
        return 0;
    }

    public function getLinkTarget()
    {
        return '';
    }

    public function getMTime()
    {
        return 0;
    }

    public function getOwner()
    {
        return 0;
    }

    public function getPath()
    {
        return '';
    }

    public function getPathInfo($className = null)
    {
        throw new \BadMethodCallException(sprintf('Method "%s" is not implemented.', __METHOD__));
    }

    public function getPathname()
    {
        return $this->getFilename();
    }

    public function getPerms()
    {
        return 0;
    }

    public function getSize()
    {
        return 0;
    }

    public function getType()
    {
        return 'file';
    }

    public function isDir()
    {
        return false;
    }

    public function isExecutable()
    {
        return false;
    }

    public function isFile()
    {
        return true;
    }

    public function isLink()
    {
        return false;
    }

    public function isReadable()
    {
        return true;
    }

    public function isWritable()
    {
        return false;
    }

    public function openFile($openMode = 'r', $useIncludePath = false, $context = null)
    {
        throw new \BadMethodCallException(sprintf('Method "%s" is not implemented.', __METHOD__));
    }

    public function setFileClass($className = null)
    {
    }

    public function setInfoClass($className = null)
    {
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\DocBlock;

use PhpCsFixer\Preg;

/**
 * This represents a tag, as defined by the proposed PSR PHPDoc standard.
 *
 * @author Graham Campbell <graham@alt-three.com>
 */
class Tag
{
    /**
     * All the tags defined by the proposed PSR PHPDoc standard.
     *
     * @var string[]
     */
    private static $tags = [
        'api', 'author', 'category', 'copyright', 'deprecated', 'example',
        'global', 'internal', 'license', 'link', 'method', 'package', 'param',
        'property', 'property-read', 'property-write', 'return', 'see',
        'since', 'subpackage', 'throws', 'todo', 'uses', 'var', 'version',
    ];

    /**
     * The line containing the tag.
     *
     * @var Line
     */
    private $line;

    /**
     * The cached tag name.
     *
     * @var null|string
     */
    private $name;

    /**
     * Create a new tag instance.
     */
    public function __construct(Line $line)
    {
        $this->line = $line;
    }

    /**
     * Get the tag name.
     *
     * This may be "param", or "return", etc.
     *
     * @return string
     */
    public function getName()
    {
        if (null === $this->name) {
            Preg::matchAll('/@[a-zA-Z0-9_-]+(?=\s|$)/', $this->line->getContent(), $matches);

            if (isset($matches[0][0])) {
                $this->name = ltrim($matches[0][0], '@');
            } else {
                $this->name = 'other';
            }
        }

        return $this->name;
    }

    /**
     * Set the tag name.
     *
     * This will also be persisted to the upstream line and annotation.
     *
     * @param string $name
     */
    public function setName($name)
    {
        $current = $this->getName();

        if ('other' === $current) {
            throw new \RuntimeException('Cannot set name on unknown tag.');
        }

        $this->line->setContent(Preg::replace("/@{$current}/", "@{$name}", $this->line->getContent(), 1));

        $this->name = $name;
    }

    /**
     * Is the tag a known tag?
     *
     * This is defined by if it exists in the proposed PSR PHPDoc standard.
     *
     * @return bool
     */
    public function valid()
    {
        return \in_array($this->getName(), self::$tags, true);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\DocBlock;

/**
 * This class is responsible for comparing tags to see if they should be kept
 * together, or kept apart.
 *
 * @author Graham Campbell <graham@alt-three.com>
 */
class TagComparator
{
    /**
     * Groups of tags that should be allowed to immediately follow each other.
     *
     * @var array
     */
    private static $groups = [
        ['deprecated', 'link', 'see', 'since'],
        ['author', 'copyright', 'license'],
        ['category', 'package', 'subpackage'],
        ['property', 'property-read', 'property-write'],
    ];

    /**
     * Should the given tags be kept together, or kept apart?
     *
     * @return bool
     */
    public static function shouldBeTogether(Tag $first, Tag $second)
    {
        $firstName = $first->getName();
        $secondName = $second->getName();

        if ($firstName === $secondName) {
            return true;
        }

        foreach (self::$groups as $group) {
            if (\in_array($firstName, $group, true) && \in_array($secondName, $group, true)) {
                return true;
            }
        }

        return false;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\DocBlock;

use PhpCsFixer\Preg;

/**
 * This represents an entire annotation from a docblock.
 *
 * @author Graham Campbell <graham@alt-three.com>
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
class Annotation
{
    /**
     * Regex to match any types, shall be used with `x` modifier.
     *
     * @internal
     */
    const REGEX_TYPES = '
    # <simple> is any non-array, non-generic, non-alternated type, eg `int` or `\Foo`
    # <array> is array of <simple>, eg `int[]` or `\Foo[]`
    # <generic> is generic collection type, like `array<string, int>`, `Collection<Item>` and more complex like `Collection<int, \null|SubCollection<string>>`
    # <type> is <simple>, <array> or <generic> type, like `int`, `bool[]` or `Collection<ItemKey, ItemVal>`
    # <types> is one or more types alternated via `|`, like `int|bool[]|Collection<ItemKey, ItemVal>`
    (?<types>
        (?<type>
            (?<array>
                (?&simple)(\[\])*
            )
            |
            (?<simple>
                [@$?]?[\\\\\w]+
            )
            |
            (?<generic>
                (?&simple)
                <
                    (?:(?&types),\s*)?(?:(?&types)|(?&generic))
                >
            )
        )
        (?:
            \|
            (?:(?&simple)|(?&array)|(?&generic))
        )*
    )
    ';

    /**
     * All the annotation tag names with types.
     *
     * @var string[]
     */
    private static $tags = [
        'method',
        'param',
        'property',
        'property-read',
        'property-write',
        'return',
        'throws',
        'type',
        'var',
    ];

    /**
     * The lines that make up the annotation.
     *
     * @var Line[]
     */
    private $lines;

    /**
     * The position of the first line of the annotation in the docblock.
     *
     * @var int
     */
    private $start;

    /**
     * The position of the last line of the annotation in the docblock.
     *
     * @var int
     */
    private $end;

    /**
     * The associated tag.
     *
     * @var null|Tag
     */
    private $tag;

    /**
     * Lazy loaded, cached types content.
     *
     * @var null|string
     */
    private $typesContent;

    /**
     * The cached types.
     *
     * @var null|string[]
     */
    private $types;

    /**
     * Create a new line instance.
     *
     * @param Line[] $lines
     */
    public function __construct(array $lines)
    {
        $this->lines = array_values($lines);

        $keys = array_keys($lines);

        $this->start = $keys[0];
        $this->end = end($keys);
    }

    /**
     * Get the string representation of object.
     *
     * @return string
     */
    public function __toString()
    {
        return $this->getContent();
    }

    /**
     * Get all the annotation tag names with types.
     *
     * @return string[]
     */
    public static function getTagsWithTypes()
    {
        return self::$tags;
    }

    /**
     * Get the start position of this annotation.
     *
     * @return int
     */
    public function getStart()
    {
        return $this->start;
    }

    /**
     * Get the end position of this annotation.
     *
     * @return int
     */
    public function getEnd()
    {
        return $this->end;
    }

    /**
     * Get the associated tag.
     *
     * @return Tag
     */
    public function getTag()
    {
        if (null === $this->tag) {
            $this->tag = new Tag($this->lines[0]);
        }

        return $this->tag;
    }

    /**
     * Get the types associated with this annotation.
     *
     * @return string[]
     */
    public function getTypes()
    {
        if (null === $this->types) {
            $this->types = [];

            $content = $this->getTypesContent();

            while ('' !== $content && false !== $content) {
                Preg::match(
                    '{^'.self::REGEX_TYPES.'$}x',
                    $content,
                    $matches
                );

                $this->types[] = $matches['type'];
                $content = substr($content, \strlen($matches['type']) + 1);
            }
        }

        return $this->types;
    }

    /**
     * Set the types associated with this annotation.
     *
     * @param string[] $types
     */
    public function setTypes(array $types)
    {
        $pattern = '/'.preg_quote($this->getTypesContent(), '/').'/';

        $this->lines[0]->setContent(Preg::replace($pattern, implode('|', $types), $this->lines[0]->getContent(), 1));

        $this->clearCache();
    }

    /**
     * Get the normalized types associated with this annotation, so they can easily be compared.
     *
     * @return string[]
     */
    public function getNormalizedTypes()
    {
        $normalized = array_map(static function ($type) {
            return strtolower($type);
        }, $this->getTypes());

        sort($normalized);

        return $normalized;
    }

    /**
     * Remove this annotation by removing all its lines.
     */
    public function remove()
    {
        foreach ($this->lines as $line) {
            if ($line->isTheStart() && $line->isTheEnd()) {
                // Single line doc block, remove entirely
                $line->remove();
            } elseif ($line->isTheStart()) {
                // Multi line doc block, but start is on the same line as the first annotation, keep only the start
                $content = Preg::replace('#(\s*/\*\*).*#', '$1', $line->getContent());

                $line->setContent($content);
            } elseif ($line->isTheEnd()) {
                // Multi line doc block, but end is on the same line as the last annotation, keep only the end
                $content = Preg::replace('#(\s*)\S.*(\*/.*)#', '$1$2', $line->getContent());

                $line->setContent($content);
            } else {
                // Multi line doc block, neither start nor end on this line, can be removed safely
                $line->remove();
            }
        }

        $this->clearCache();
    }

    /**
     * Get the annotation content.
     *
     * @return string
     */
    public function getContent()
    {
        return implode('', $this->lines);
    }

    public function supportTypes()
    {
        return \in_array($this->getTag()->getName(), self::$tags, true);
    }

    /**
     * Get the current types content.
     *
     * Be careful modifying the underlying line as that won't flush the cache.
     *
     * @return string
     */
    private function getTypesContent()
    {
        if (null === $this->typesContent) {
            $name = $this->getTag()->getName();

            if (!$this->supportTypes()) {
                throw new \RuntimeException('This tag does not support types.');
            }

            $matchingResult = Preg::match(
                '{^(?:\s*\*|/\*\*)\s*@'.$name.'\s+'.self::REGEX_TYPES.'(?:[*\h\v].*)?$}sx',
                $this->lines[0]->getContent(),
                $matches
            );

            $this->typesContent = 1 === $matchingResult
                ? $matches['types']
                : '';
        }

        return $this->typesContent;
    }

    private function clearCache()
    {
        $this->types = null;
        $this->typesContent = null;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\DocBlock;

/**
 * This class represents a short description (aka summary) of a docblock.
 *
 * @internal
 */
final class ShortDescription
{
    /**
     * The docblock containing the short description.
     *
     * @var DocBlock
     */
    private $doc;

    public function __construct(DocBlock $doc)
    {
        $this->doc = $doc;
    }

    /**
     * Get the line index of the line containing the end of the short
     * description, if present.
     *
     * @return null|int
     */
    public function getEnd()
    {
        $reachedContent = false;

        foreach ($this->doc->getLines() as $index => $line) {
            // we went past a description, then hit a tag or blank line, so
            // the last line of the description must be the one before this one
            if ($reachedContent && ($line->containsATag() || !$line->containsUsefulContent())) {
                return $index - 1;
            }

            // no short description was found
            if ($line->containsATag()) {
                return null;
            }

            // we've reached content, but need to check the next lines too
            // in case the short description is multi-line
            if ($line->containsUsefulContent()) {
                $reachedContent = true;
            }
        }

        return null;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\DocBlock;

use PhpCsFixer\Preg;

/**
 * This class represents a docblock.
 *
 * It internally splits it up into "lines" that we can manipulate.
 *
 * @author Graham Campbell <graham@alt-three.com>
 */
class DocBlock
{
    /**
     * The array of lines.
     *
     * @var Line[]
     */
    private $lines = [];

    /**
     * The array of annotations.
     *
     * @var null|Annotation[]
     */
    private $annotations;

    /**
     * Create a new docblock instance.
     *
     * @param string $content
     */
    public function __construct($content)
    {
        foreach (Preg::split('/([^\n\r]+\R*)/', $content, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE) as $line) {
            $this->lines[] = new Line($line);
        }
    }

    /**
     * Get the string representation of object.
     *
     * @return string
     */
    public function __toString()
    {
        return $this->getContent();
    }

    /**
     * Get this docblock's lines.
     *
     * @return Line[]
     */
    public function getLines()
    {
        return $this->lines;
    }

    /**
     * Get a single line.
     *
     * @param int $pos
     *
     * @return null|Line
     */
    public function getLine($pos)
    {
        return isset($this->lines[$pos]) ? $this->lines[$pos] : null;
    }

    /**
     * Get this docblock's annotations.
     *
     * @return Annotation[]
     */
    public function getAnnotations()
    {
        if (null !== $this->annotations) {
            return $this->annotations;
        }

        $this->annotations = [];
        $total = \count($this->lines);

        for ($index = 0; $index < $total; ++$index) {
            if ($this->lines[$index]->containsATag()) {
                // get all the lines that make up the annotation
                $lines = \array_slice($this->lines, $index, $this->findAnnotationLength($index), true);
                $annotation = new Annotation($lines);
                // move the index to the end of the annotation to avoid
                // checking it again because we know the lines inside the
                // current annotation cannot be part of another annotation
                $index = $annotation->getEnd();
                // add the current annotation to the list of annotations
                $this->annotations[] = $annotation;
            }
        }

        return $this->annotations;
    }

    public function isMultiLine()
    {
        return 1 !== \count($this->lines);
    }

    /**
     * Take a one line doc block, and turn it into a multi line doc block.
     *
     * @param string $indent
     * @param string $lineEnd
     */
    public function makeMultiLine($indent, $lineEnd)
    {
        if ($this->isMultiLine()) {
            return;
        }

        $lineContent = $this->getSingleLineDocBlockEntry($this->lines[0]);

        if ('' === $lineContent) {
            $this->lines = [
                new Line('/**'.$lineEnd),
                new Line($indent.' *'.$lineEnd),
                new Line($indent.' */'),
            ];

            return;
        }

        $this->lines = [
            new Line('/**'.$lineEnd),
            new Line($indent.' * '.$lineContent.$lineEnd),
            new Line($indent.' */'),
        ];
    }

    public function makeSingleLine()
    {
        if (!$this->isMultiLine()) {
            return;
        }

        $usefulLines = array_filter(
            $this->lines,
            static function (Line $line) {
                return $line->containsUsefulContent();
            }
        );

        if (1 < \count($usefulLines)) {
            return;
        }

        $lineContent = '';
        if (\count($usefulLines)) {
            $lineContent = $this->getSingleLineDocBlockEntry(array_shift($usefulLines));
        }

        $this->lines = [new Line('/** '.$lineContent.' */')];
    }

    /**
     * @param int $pos
     *
     * @return null|Annotation
     */
    public function getAnnotation($pos)
    {
        $annotations = $this->getAnnotations();

        return isset($annotations[$pos]) ? $annotations[$pos] : null;
    }

    /**
     * Get specific types of annotations only.
     *
     * If none exist, we're returning an empty array.
     *
     * @param string|string[] $types
     *
     * @return Annotation[]
     */
    public function getAnnotationsOfType($types)
    {
        $annotations = [];
        $types = (array) $types;

        foreach ($this->getAnnotations() as $annotation) {
            $tag = $annotation->getTag()->getName();
            foreach ($types as $type) {
                if ($type === $tag) {
                    $annotations[] = $annotation;
                }
            }
        }

        return $annotations;
    }

    /**
     * Get the actual content of this docblock.
     *
     * @return string
     */
    public function getContent()
    {
        return implode('', $this->lines);
    }

    private function findAnnotationLength($start)
    {
        $index = $start;

        while ($line = $this->getLine(++$index)) {
            if ($line->containsATag()) {
                // we've 100% reached the end of the description if we get here
                break;
            }

            if (!$line->containsUsefulContent()) {
                // if next line is also non-useful, or contains a tag, then we're done here
                $next = $this->getLine($index + 1);
                if (null === $next || !$next->containsUsefulContent() || $next->containsATag()) {
                    break;
                }
                // otherwise, continue, the annotation must have contained a blank line in its description
            }
        }

        return $index - $start;
    }

    /**
     * @return string
     */
    private function getSingleLineDocBlockEntry(Line $line)
    {
        $lineString = $line->getContent();

        if (0 === \strlen($lineString)) {
            return $lineString;
        }

        $lineString = str_replace('*/', '', $lineString);
        $lineString = trim($lineString);

        if ('/**' === substr($lineString, 0, 3)) {
            $lineString = substr($lineString, 3);
        } elseif ('*' === substr($lineString, 0, 1)) {
            $lineString = substr($lineString, 1);
        }

        return trim($lineString);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\DocBlock;

use PhpCsFixer\Preg;

/**
 * This represents a line of a docblock.
 *
 * @author Graham Campbell <graham@alt-three.com>
 */
class Line
{
    /**
     * The content of this line.
     *
     * @var string
     */
    private $content;

    /**
     * Create a new line instance.
     *
     * @param string $content
     */
    public function __construct($content)
    {
        $this->content = $content;
    }

    /**
     * Get the string representation of object.
     *
     * @return string
     */
    public function __toString()
    {
        return $this->content;
    }

    /**
     * Get the content of this line.
     *
     * @return string
     */
    public function getContent()
    {
        return $this->content;
    }

    /**
     * Does this line contain useful content?
     *
     * If the line contains text or tags, then this is true.
     *
     * @return bool
     */
    public function containsUsefulContent()
    {
        return 0 !== Preg::match('/\\*\s*\S+/', $this->content) && '' !== trim(str_replace(['/', '*'], ' ', $this->content));
    }

    /**
     * Does the line contain a tag?
     *
     * If this is true, then it must be the first line of an annotation.
     *
     * @return bool
     */
    public function containsATag()
    {
        return 0 !== Preg::match('/\\*\s*@/', $this->content);
    }

    /**
     * Is the line the start of a docblock?
     *
     * @return bool
     */
    public function isTheStart()
    {
        return false !== strpos($this->content, '/**');
    }

    /**
     * Is the line the end of a docblock?
     *
     * @return bool
     */
    public function isTheEnd()
    {
        return false !== strpos($this->content, '*/');
    }

    /**
     * Set the content of this line.
     *
     * @param string $content
     */
    public function setContent($content)
    {
        $this->content = $content;
    }

    /**
     * Remove this line by clearing its contents.
     *
     * Note that this method technically brakes the internal state of the
     * docblock, but is useful when we need to retain the indexes of lines
     * during the execution of an algorithm.
     */
    public function remove()
    {
        $this->content = '';
    }

    /**
     * Append a blank docblock line to this line's contents.
     *
     * Note that this method technically brakes the internal state of the
     * docblock, but is useful when we need to retain the indexes of lines
     * during the execution of an algorithm.
     */
    public function addBlank()
    {
        $matched = Preg::match('/^(\h*\*)[^\r\n]*(\r?\n)$/', $this->content, $matches);

        if (1 !== $matched) {
            return;
        }

        $this->content .= $matches[1].$matches[2];
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\FixerDefinition;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class CodeSample implements CodeSampleInterface
{
    /**
     * @var string
     */
    private $code;

    /**
     * @var null|array
     */
    private $configuration;

    /**
     * @param string $code
     */
    public function __construct($code, array $configuration = null)
    {
        $this->code = $code;
        $this->configuration = $configuration;
    }

    /**
     * @return string
     */
    public function getCode()
    {
        return $this->code;
    }

    /**
     * @return null|array
     */
    public function getConfiguration()
    {
        return $this->configuration;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\FixerDefinition;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
interface CodeSampleInterface
{
    /**
     * @return string
     */
    public function getCode();

    /**
     * @return null|array
     */
    public function getConfiguration();
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\FixerDefinition;

/**
 * @author Andreas Moeller <am@localheinz.com>
 */
interface VersionSpecificCodeSampleInterface extends CodeSampleInterface
{
    /**
     * @param int $version
     *
     * @return bool
     */
    public function isSuitableFor($version);
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\FixerDefinition;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class FixerDefinition implements FixerDefinitionInterface
{
    private $riskyDescription;
    private $configurationDescription;
    private $defaultConfiguration;
    private $codeSamples;
    private $summary;
    private $description;

    /**
     * @param string                $summary
     * @param CodeSampleInterface[] $codeSamples              array of samples, where single sample is [code, configuration]
     * @param null|string           $description
     * @param null|string           $configurationDescription null for non-configurable fixer
     * @param null|array            $defaultConfiguration     null for non-configurable fixer
     * @param null|string           $riskyDescription         null for non-risky fixer
     */
    public function __construct(
        $summary,
        array $codeSamples,
        $description = null,
        $configurationDescription = null,
        array $defaultConfiguration = null,
        $riskyDescription = null
    ) {
        if (6 === \func_num_args()) {
            @trigger_error('Arguments #5 and #6 of FixerDefinition::__construct() are deprecated and will be removed in 3.0, use argument #4 instead.', E_USER_DEPRECATED);
        } elseif (5 === \func_num_args()) {
            @trigger_error('Argument #5 of FixerDefinition::__construct() is deprecated and will be removed in 3.0.', E_USER_DEPRECATED);
        } else {
            $riskyDescription = $configurationDescription;
            $configurationDescription = null;
        }

        $this->summary = $summary;
        $this->codeSamples = $codeSamples;
        $this->description = $description;
        $this->configurationDescription = $configurationDescription;
        $this->defaultConfiguration = $defaultConfiguration;
        $this->riskyDescription = $riskyDescription;
    }

    public function getSummary()
    {
        return $this->summary;
    }

    public function getDescription()
    {
        return $this->description;
    }

    public function getConfigurationDescription()
    {
        @trigger_error(sprintf('%s is deprecated and will be removed in 3.0.', __METHOD__), E_USER_DEPRECATED);

        return $this->configurationDescription;
    }

    public function getDefaultConfiguration()
    {
        @trigger_error(sprintf('%s is deprecated and will be removed in 3.0.', __METHOD__), E_USER_DEPRECATED);

        return $this->defaultConfiguration;
    }

    public function getRiskyDescription()
    {
        return $this->riskyDescription;
    }

    public function getCodeSamples()
    {
        return $this->codeSamples;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\FixerDefinition;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class FileSpecificCodeSample implements FileSpecificCodeSampleInterface
{
    /**
     * @var CodeSampleInterface
     */
    private $codeSample;

    /**
     * @var \SplFileInfo
     */
    private $splFileInfo;

    /**
     * @param string $code
     */
    public function __construct(
        $code,
        \SplFileInfo $splFileInfo,
        array $configuration = null
    ) {
        $this->codeSample = new CodeSample($code, $configuration);
        $this->splFileInfo = $splFileInfo;
    }

    /**
     * {@inheritdoc}
     */
    public function getCode()
    {
        return $this->codeSample->getCode();
    }

    /**
     * {@inheritdoc}
     */
    public function getConfiguration()
    {
        return $this->codeSample->getConfiguration();
    }

    /**
     * {@inheritdoc}
     */
    public function getSplFileInfo()
    {
        return $this->splFileInfo;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\FixerDefinition;

/**
 * @author Andreas Möller <am@localheinz.com>
 */
interface VersionSpecificationInterface
{
    /**
     * @param int $version
     *
     * @return bool
     */
    public function isSatisfiedBy($version);
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\FixerDefinition;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
interface FixerDefinitionInterface
{
    /**
     * @return string
     */
    public function getSummary();

    /**
     * @return null|string
     */
    public function getDescription();

    /**
     * @return null|string null for non-configurable fixer
     *
     * @deprecated will be removed in 3.0
     */
    public function getConfigurationDescription();

    /**
     * @return null|array null for non-configurable fixer
     *
     * @deprecated will be removed in 3.0
     */
    public function getDefaultConfiguration();

    /**
     * @return null|string null for non-risky fixer
     */
    public function getRiskyDescription();

    /**
     * Array of samples, where single sample is [code, configuration].
     *
     * @return CodeSampleInterface[]
     */
    public function getCodeSamples();
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\FixerDefinition;

/**
 * @author Andreas Möller <am@localheinz.com>
 */
final class VersionSpecificCodeSample implements VersionSpecificCodeSampleInterface
{
    /**
     * @var CodeSampleInterface
     */
    private $codeSample;

    /**
     * @var VersionSpecificationInterface
     */
    private $versionSpecification;

    /**
     * @param string $code
     */
    public function __construct(
        $code,
        VersionSpecificationInterface $versionSpecification,
        array $configuration = null
    ) {
        $this->codeSample = new CodeSample($code, $configuration);
        $this->versionSpecification = $versionSpecification;
    }

    /**
     * {@inheritdoc}
     */
    public function getCode()
    {
        return $this->codeSample->getCode();
    }

    /**
     * {@inheritdoc}
     */
    public function getConfiguration()
    {
        return $this->codeSample->getConfiguration();
    }

    /**
     * {@inheritdoc}
     */
    public function isSuitableFor($version)
    {
        return $this->versionSpecification->isSatisfiedBy($version);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\FixerDefinition;

/**
 * @author Andreas Möller <am@localheinz.com>
 */
final class VersionSpecification implements VersionSpecificationInterface
{
    /**
     * @var null|int
     */
    private $minimum;

    /**
     * @var null|int
     */
    private $maximum;

    /**
     * @param null|int $minimum
     * @param null|int $maximum
     *
     * @throws \InvalidArgumentException
     */
    public function __construct($minimum = null, $maximum = null)
    {
        if (null === $minimum && null === $maximum) {
            throw new \InvalidArgumentException('Minimum or maximum need to be specified.');
        }

        if (null !== $minimum && (!\is_int($minimum) || 1 > $minimum)) {
            throw new \InvalidArgumentException('Minimum needs to be either null or an integer greater than 0.');
        }

        if (null !== $maximum) {
            if (!\is_int($maximum) || 1 > $maximum) {
                throw new \InvalidArgumentException('Maximum needs to be either null or an integer greater than 0.');
            }

            if (null !== $minimum && $maximum < $minimum) {
                throw new \InvalidArgumentException('Maximum should not be lower than the minimum.');
            }
        }

        $this->minimum = $minimum;
        $this->maximum = $maximum;
    }

    /**
     * {@inheritdoc}
     */
    public function isSatisfiedBy($version)
    {
        if (null !== $this->minimum && $version < $this->minimum) {
            return false;
        }

        if (null !== $this->maximum && $version > $this->maximum) {
            return false;
        }

        return true;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\FixerDefinition;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
interface FileSpecificCodeSampleInterface extends CodeSampleInterface
{
    /**
     * @return \SplFileInfo
     */
    public function getSplFileInfo();
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer;

use PhpCsFixer\ConfigurationException\InvalidFixerConfigurationException;
use PhpCsFixer\Fixer\ConfigurableFixerInterface;
use PhpCsFixer\Fixer\FixerInterface;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use Symfony\Component\Finder\Finder as SymfonyFinder;
use Symfony\Component\Finder\SplFileInfo;

/**
 * Class provides a way to create a group of fixers.
 *
 * Fixers may be registered (made the factory aware of them) by
 * registering a custom fixer and default, built in fixers.
 * Then, one can attach Config instance to fixer instances.
 *
 * Finally factory creates a ready to use group of fixers.
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class FixerFactory
{
    /**
     * @var FixerNameValidator
     */
    private $nameValidator;

    /**
     * @var FixerInterface[]
     */
    private $fixers = [];

    /**
     * @var FixerInterface[] Associative array of fixers with names as keys
     */
    private $fixersByName = [];

    public function __construct()
    {
        $this->nameValidator = new FixerNameValidator();
    }

    /**
     * Create instance.
     *
     * @return FixerFactory
     */
    public static function create()
    {
        return new self();
    }

    public function setWhitespacesConfig(WhitespacesFixerConfig $config)
    {
        foreach ($this->fixers as $fixer) {
            if ($fixer instanceof WhitespacesAwareFixerInterface) {
                $fixer->setWhitespacesConfig($config);
            }
        }

        return $this;
    }

    /**
     * @return FixerInterface[]
     */
    public function getFixers()
    {
        $this->fixers = Utils::sortFixers($this->fixers);

        return $this->fixers;
    }

    /**
     * @return $this
     */
    public function registerBuiltInFixers()
    {
        static $builtInFixers = null;

        if (null === $builtInFixers) {
            $builtInFixers = [];

            /** @var SplFileInfo $file */
            foreach (SymfonyFinder::create()->files()->in(__DIR__.'/Fixer') as $file) {
                $relativeNamespace = $file->getRelativePath();
                $fixerClass = 'PhpCsFixer\\Fixer\\'.($relativeNamespace ? $relativeNamespace.'\\' : '').$file->getBasename('.php');
                if ('Fixer' === substr($fixerClass, -5)) {
                    $builtInFixers[] = $fixerClass;
                }
            }
        }

        foreach ($builtInFixers as $class) {
            $this->registerFixer(new $class(), false);
        }

        return $this;
    }

    /**
     * @param FixerInterface[] $fixers
     *
     * @return $this
     */
    public function registerCustomFixers(array $fixers)
    {
        foreach ($fixers as $fixer) {
            $this->registerFixer($fixer, true);
        }

        return $this;
    }

    /**
     * @param bool $isCustom
     *
     * @return $this
     */
    public function registerFixer(FixerInterface $fixer, $isCustom)
    {
        $name = $fixer->getName();

        if (isset($this->fixersByName[$name])) {
            throw new \UnexpectedValueException(sprintf('Fixer named "%s" is already registered.', $name));
        }

        if (!$this->nameValidator->isValid($name, $isCustom)) {
            throw new \UnexpectedValueException(sprintf('Fixer named "%s" has invalid name.', $name));
        }

        $this->fixers[] = $fixer;
        $this->fixersByName[$name] = $fixer;

        return $this;
    }

    /**
     * Apply RuleSet on fixers to filter out all unwanted fixers.
     *
     * @return $this
     */
    public function useRuleSet(RuleSetInterface $ruleSet)
    {
        $fixers = [];
        $fixersByName = [];
        $fixerConflicts = [];

        $fixerNames = array_keys($ruleSet->getRules());
        foreach ($fixerNames as $name) {
            if (!\array_key_exists($name, $this->fixersByName)) {
                throw new \UnexpectedValueException(sprintf('Rule "%s" does not exist.', $name));
            }

            $fixer = $this->fixersByName[$name];

            $config = $ruleSet->getRuleConfiguration($name);
            if (null !== $config) {
                if ($fixer instanceof ConfigurableFixerInterface) {
                    if (!\is_array($config) || !\count($config)) {
                        throw new InvalidFixerConfigurationException($fixer->getName(), 'Configuration must be an array and may not be empty.');
                    }

                    $fixer->configure($config);
                } else {
                    throw new InvalidFixerConfigurationException($fixer->getName(), 'Is not configurable.');
                }
            }

            $fixers[] = $fixer;
            $fixersByName[$name] = $fixer;

            $conflicts = array_intersect($this->getFixersConflicts($fixer), $fixerNames);
            if (\count($conflicts) > 0) {
                $fixerConflicts[$name] = $conflicts;
            }
        }

        if (\count($fixerConflicts) > 0) {
            throw new \UnexpectedValueException($this->generateConflictMessage($fixerConflicts));
        }

        $this->fixers = $fixers;
        $this->fixersByName = $fixersByName;

        return $this;
    }

    /**
     * Check if fixer exists.
     *
     * @param string $name
     *
     * @return bool
     */
    public function hasRule($name)
    {
        return isset($this->fixersByName[$name]);
    }

    /**
     * @return null|string[]
     */
    private function getFixersConflicts(FixerInterface $fixer)
    {
        static $conflictMap = [
            'no_blank_lines_before_namespace' => ['single_blank_line_before_namespace'],
        ];

        $fixerName = $fixer->getName();

        return \array_key_exists($fixerName, $conflictMap) ? $conflictMap[$fixerName] : [];
    }

    /**
     * @param array<string, string[]> $fixerConflicts
     *
     * @return string
     */
    private function generateConflictMessage(array $fixerConflicts)
    {
        $message = 'Rule contains conflicting fixers:';
        $report = [];
        foreach ($fixerConflicts as $fixer => $fixers) {
            // filter mutual conflicts
            $report[$fixer] = array_filter(
                $fixers,
                static function ($candidate) use ($report, $fixer) {
                    return !\array_key_exists($candidate, $report) || !\in_array($fixer, $report[$candidate], true);
                }
            );

            if (\count($report[$fixer]) > 0) {
                $message .= sprintf("\n- \"%s\" with \"%s\"", $fixer, implode('", "', $report[$fixer]));
            }
        }

        return $message;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Report;

use PhpCsFixer\Preg;
use Symfony\Component\Console\Formatter\OutputFormatter;

/**
 * @author Boris Gorbylev <ekho@ekho.name>
 *
 * @internal
 */
final class JunitReporter implements ReporterInterface
{
    /**
     * {@inheritdoc}
     */
    public function getFormat()
    {
        return 'junit';
    }

    /**
     * {@inheritdoc}
     */
    public function generate(ReportSummary $reportSummary)
    {
        if (!\extension_loaded('dom')) {
            throw new \RuntimeException('Cannot generate report! `ext-dom` is not available!');
        }

        $dom = new \DOMDocument('1.0', 'UTF-8');
        $testsuites = $dom->appendChild($dom->createElement('testsuites'));
        /** @var \DomElement $testsuite */
        $testsuite = $testsuites->appendChild($dom->createElement('testsuite'));
        $testsuite->setAttribute('name', 'PHP CS Fixer');

        if (\count($reportSummary->getChanged())) {
            $this->createFailedTestCases($dom, $testsuite, $reportSummary);
        } else {
            $this->createSuccessTestCase($dom, $testsuite);
        }

        if ($reportSummary->getTime()) {
            $testsuite->setAttribute(
                'time',
                sprintf(
                    '%.3f',
                    $reportSummary->getTime() / 1000
                )
            );
        }

        $dom->formatOutput = true;

        return $reportSummary->isDecoratedOutput() ? OutputFormatter::escape($dom->saveXML()) : $dom->saveXML();
    }

    private function createSuccessTestCase(\DOMDocument $dom, \DOMElement $testsuite)
    {
        $testcase = $dom->createElement('testcase');
        $testcase->setAttribute('name', 'All OK');
        $testcase->setAttribute('assertions', '1');

        $testsuite->appendChild($testcase);
        $testsuite->setAttribute('tests', '1');
        $testsuite->setAttribute('assertions', '1');
        $testsuite->setAttribute('failures', '0');
        $testsuite->setAttribute('errors', '0');
    }

    private function createFailedTestCases(\DOMDocument $dom, \DOMElement $testsuite, ReportSummary $reportSummary)
    {
        $assertionsCount = 0;
        foreach ($reportSummary->getChanged() as $file => $fixResult) {
            $testcase = $this->createFailedTestCase(
                $dom,
                $file,
                $fixResult,
                $reportSummary->shouldAddAppliedFixers()
            );
            $testsuite->appendChild($testcase);
            $assertionsCount += (int) $testcase->getAttribute('assertions');
        }

        $testsuite->setAttribute('tests', (string) \count($reportSummary->getChanged()));
        $testsuite->setAttribute('assertions', (string) $assertionsCount);
        $testsuite->setAttribute('failures', (string) $assertionsCount);
        $testsuite->setAttribute('errors', '0');
    }

    /**
     * @param string $file
     * @param bool   $shouldAddAppliedFixers
     *
     * @return \DOMElement
     */
    private function createFailedTestCase(\DOMDocument $dom, $file, array $fixResult, $shouldAddAppliedFixers)
    {
        $appliedFixersCount = \count($fixResult['appliedFixers']);

        $testName = str_replace('.', '_DOT_', Preg::replace('@\.'.pathinfo($file, PATHINFO_EXTENSION).'$@', '', $file));

        $testcase = $dom->createElement('testcase');
        $testcase->setAttribute('name', $testName);
        $testcase->setAttribute('file', $file);
        $testcase->setAttribute('assertions', (string) $appliedFixersCount);

        $failure = $dom->createElement('failure');
        $failure->setAttribute('type', 'code_style');
        $testcase->appendChild($failure);

        if ($shouldAddAppliedFixers) {
            $failureContent = "applied fixers:\n---------------\n";

            foreach ($fixResult['appliedFixers'] as $appliedFixer) {
                $failureContent .= "* {$appliedFixer}\n";
            }
        } else {
            $failureContent = "Wrong code style\n";
        }

        if (!empty($fixResult['diff'])) {
            $failureContent .= "\nDiff:\n---------------\n\n".$fixResult['diff'];
        }

        $failure->appendChild($dom->createCDATASection(trim($failureContent)));

        return $testcase;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Report;

use Symfony\Component\Console\Formatter\OutputFormatter;

/**
 * @author Boris Gorbylev <ekho@ekho.name>
 *
 * @internal
 */
final class XmlReporter implements ReporterInterface
{
    /**
     * {@inheritdoc}
     */
    public function getFormat()
    {
        return 'xml';
    }

    /**
     * {@inheritdoc}
     */
    public function generate(ReportSummary $reportSummary)
    {
        if (!\extension_loaded('dom')) {
            throw new \RuntimeException('Cannot generate report! `ext-dom` is not available!');
        }

        $dom = new \DOMDocument('1.0', 'UTF-8');
        // new nodes should be added to this or existing children
        $root = $dom->createElement('report');
        $dom->appendChild($root);

        $filesXML = $dom->createElement('files');
        $root->appendChild($filesXML);

        $i = 1;
        foreach ($reportSummary->getChanged() as $file => $fixResult) {
            $fileXML = $dom->createElement('file');
            $fileXML->setAttribute('id', (string) $i++);
            $fileXML->setAttribute('name', $file);
            $filesXML->appendChild($fileXML);

            if ($reportSummary->shouldAddAppliedFixers()) {
                $fileXML->appendChild($this->createAppliedFixersElement($dom, $fixResult));
            }

            if (!empty($fixResult['diff'])) {
                $fileXML->appendChild($this->createDiffElement($dom, $fixResult));
            }
        }

        if (0 !== $reportSummary->getTime()) {
            $root->appendChild($this->createTimeElement($reportSummary->getTime(), $dom));
        }

        if (0 !== $reportSummary->getMemory()) {
            $root->appendChild($this->createMemoryElement($reportSummary->getMemory(), $dom));
        }

        $dom->formatOutput = true;

        return $reportSummary->isDecoratedOutput() ? OutputFormatter::escape($dom->saveXML()) : $dom->saveXML();
    }

    /**
     * @param \DOMDocument $dom
     *
     * @return \DOMElement
     */
    private function createAppliedFixersElement($dom, array $fixResult)
    {
        $appliedFixersXML = $dom->createElement('applied_fixers');

        foreach ($fixResult['appliedFixers'] as $appliedFixer) {
            $appliedFixerXML = $dom->createElement('applied_fixer');
            $appliedFixerXML->setAttribute('name', $appliedFixer);
            $appliedFixersXML->appendChild($appliedFixerXML);
        }

        return $appliedFixersXML;
    }

    /**
     * @return \DOMElement
     */
    private function createDiffElement(\DOMDocument $dom, array $fixResult)
    {
        $diffXML = $dom->createElement('diff');
        $diffXML->appendChild($dom->createCDATASection($fixResult['diff']));

        return $diffXML;
    }

    /**
     * @param float $time
     *
     * @return \DOMElement
     */
    private function createTimeElement($time, \DOMDocument $dom)
    {
        $time = round($time / 1000, 3);

        $timeXML = $dom->createElement('time');
        $timeXML->setAttribute('unit', 's');
        $timeTotalXML = $dom->createElement('total');
        $timeTotalXML->setAttribute('value', (string) $time);
        $timeXML->appendChild($timeTotalXML);

        return $timeXML;
    }

    /**
     * @param float $memory
     *
     * @return \DOMElement
     */
    private function createMemoryElement($memory, \DOMDocument $dom)
    {
        $memory = round($memory / 1024 / 1024, 3);

        $memoryXML = $dom->createElement('memory');
        $memoryXML->setAttribute('value', (string) $memory);
        $memoryXML->setAttribute('unit', 'MB');

        return $memoryXML;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Report;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class ReportSummary
{
    /**
     * @var bool
     */
    private $addAppliedFixers;

    /**
     * @var array
     */
    private $changed;

    /**
     * @var bool
     */
    private $isDecoratedOutput;

    /**
     * @var bool
     */
    private $isDryRun;

    /**
     * @var int
     */
    private $memory;

    /**
     * @var int
     */
    private $time;

    /**
     * @param int  $time              duration in milliseconds
     * @param int  $memory            memory usage in bytes
     * @param bool $addAppliedFixers
     * @param bool $isDryRun
     * @param bool $isDecoratedOutput
     */
    public function __construct(
        array $changed,
        $time,
        $memory,
        $addAppliedFixers,
        $isDryRun,
        $isDecoratedOutput
    ) {
        $this->changed = $changed;
        $this->time = $time;
        $this->memory = $memory;
        $this->addAppliedFixers = $addAppliedFixers;
        $this->isDryRun = $isDryRun;
        $this->isDecoratedOutput = $isDecoratedOutput;
    }

    /**
     * @return bool
     */
    public function isDecoratedOutput()
    {
        return $this->isDecoratedOutput;
    }

    /**
     * @return bool
     */
    public function isDryRun()
    {
        return $this->isDryRun;
    }

    /**
     * @return array
     */
    public function getChanged()
    {
        return $this->changed;
    }

    /**
     * @return int
     */
    public function getMemory()
    {
        return $this->memory;
    }

    /**
     * @return int
     */
    public function getTime()
    {
        return $this->time;
    }

    /**
     * @return bool
     */
    public function shouldAddAppliedFixers()
    {
        return $this->addAppliedFixers;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Report;

use Symfony\Component\Console\Formatter\OutputFormatter;

/**
 * Generates a report according to gitlabs subset of codeclimate json files.
 *
 * @see https://github.com/codeclimate/spec/blob/master/SPEC.md#data-types
 *
 * @author Hans-Christian Otto <c.otto@suora.com>
 *
 * @internal
 */
final class GitlabReporter implements ReporterInterface
{
    public function getFormat()
    {
        return 'gitlab';
    }

    /**
     * Process changed files array. Returns generated report.
     *
     * @return string
     */
    public function generate(ReportSummary $reportSummary)
    {
        $report = [];
        foreach ($reportSummary->getChanged() as $fileName => $change) {
            foreach ($change['appliedFixers'] as $fixerName) {
                $report[] = [
                    'description' => $fixerName,
                    'fingerprint' => md5($fileName.$fixerName),
                    'location' => [
                        'path' => $fileName,
                        'lines' => [
                            'begin' => 0, // line numbers are required in the format, but not available to reports
                        ],
                    ],
                ];
            }
        }

        $jsonString = json_encode($report);

        return $reportSummary->isDecoratedOutput() ? OutputFormatter::escape($jsonString) : $jsonString;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Report;

use Symfony\Component\Console\Formatter\OutputFormatter;

/**
 * @author Kévin Gomez <contact@kevingomez.fr>
 *
 * @internal
 */
final class CheckstyleReporter implements ReporterInterface
{
    /**
     * {@inheritdoc}
     */
    public function getFormat()
    {
        return 'checkstyle';
    }

    /**
     * {@inheritdoc}
     */
    public function generate(ReportSummary $reportSummary)
    {
        if (!\extension_loaded('dom')) {
            throw new \RuntimeException('Cannot generate report! `ext-dom` is not available!');
        }

        $dom = new \DOMDocument('1.0', 'UTF-8');
        $checkstyles = $dom->appendChild($dom->createElement('checkstyle'));

        foreach ($reportSummary->getChanged() as $filePath => $fixResult) {
            /** @var \DOMElement $file */
            $file = $checkstyles->appendChild($dom->createElement('file'));
            $file->setAttribute('name', $filePath);

            foreach ($fixResult['appliedFixers'] as $appliedFixer) {
                $error = $this->createError($dom, $appliedFixer);
                $file->appendChild($error);
            }
        }

        $dom->formatOutput = true;

        return $reportSummary->isDecoratedOutput() ? OutputFormatter::escape($dom->saveXML()) : $dom->saveXML();
    }

    /**
     * @param string $appliedFixer
     *
     * @return \DOMElement
     */
    private function createError(\DOMDocument $dom, $appliedFixer)
    {
        $error = $dom->createElement('error');
        $error->setAttribute('severity', 'warning');
        $error->setAttribute('source', 'PHP-CS-Fixer.'.$appliedFixer);
        $error->setAttribute('message', 'Found violation(s) of type: '.$appliedFixer);

        return $error;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Report;

use PhpCsFixer\Differ\DiffConsoleFormatter;

/**
 * @author Boris Gorbylev <ekho@ekho.name>
 *
 * @internal
 */
final class TextReporter implements ReporterInterface
{
    /**
     * {@inheritdoc}
     */
    public function getFormat()
    {
        return 'txt';
    }

    /**
     * {@inheritdoc}
     */
    public function generate(ReportSummary $reportSummary)
    {
        $output = '';

        $i = 0;
        foreach ($reportSummary->getChanged() as $file => $fixResult) {
            ++$i;
            $output .= sprintf('%4d) %s', $i, $file);

            if ($reportSummary->shouldAddAppliedFixers()) {
                $output .= $this->getAppliedFixers($reportSummary->isDecoratedOutput(), $fixResult);
            }

            $output .= $this->getDiff($reportSummary->isDecoratedOutput(), $fixResult);
            $output .= PHP_EOL;
        }

        return $output.$this->getFooter($reportSummary->getTime(), $reportSummary->getMemory(), $reportSummary->isDryRun());
    }

    /**
     * @param bool $isDecoratedOutput
     *
     * @return string
     */
    private function getAppliedFixers($isDecoratedOutput, array $fixResult)
    {
        return sprintf(
            $isDecoratedOutput ? ' (<comment>%s</comment>)' : ' (%s)',
            implode(', ', $fixResult['appliedFixers'])
        );
    }

    /**
     * @param bool $isDecoratedOutput
     *
     * @return string
     */
    private function getDiff($isDecoratedOutput, array $fixResult)
    {
        if (empty($fixResult['diff'])) {
            return '';
        }

        $diffFormatter = new DiffConsoleFormatter($isDecoratedOutput, sprintf(
            '<comment>      ---------- begin diff ----------</comment>%s%%s%s<comment>      ----------- end diff -----------</comment>',
            PHP_EOL,
            PHP_EOL
        ));

        return PHP_EOL.$diffFormatter->format($fixResult['diff']).PHP_EOL;
    }

    /**
     * @param int  $time
     * @param int  $memory
     * @param bool $isDryRun
     *
     * @return string
     */
    private function getFooter($time, $memory, $isDryRun)
    {
        if (0 === $time || 0 === $memory) {
            return '';
        }

        return PHP_EOL.sprintf(
            '%s all files in %.3f seconds, %.3f MB memory used'.PHP_EOL,
            $isDryRun ? 'Checked' : 'Fixed',
            $time / 1000,
            $memory / 1024 / 1024
        );
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Report;

use Symfony\Component\Console\Formatter\OutputFormatter;

/**
 * @author Boris Gorbylev <ekho@ekho.name>
 *
 * @internal
 */
final class JsonReporter implements ReporterInterface
{
    /**
     * {@inheritdoc}
     */
    public function getFormat()
    {
        return 'json';
    }

    /**
     * {@inheritdoc}
     */
    public function generate(ReportSummary $reportSummary)
    {
        $jFiles = [];

        foreach ($reportSummary->getChanged() as $file => $fixResult) {
            $jfile = ['name' => $file];

            if ($reportSummary->shouldAddAppliedFixers()) {
                $jfile['appliedFixers'] = $fixResult['appliedFixers'];
            }

            if (!empty($fixResult['diff'])) {
                $jfile['diff'] = $fixResult['diff'];
            }

            $jFiles[] = $jfile;
        }

        $json = [
            'files' => $jFiles,
        ];

        if (null !== $reportSummary->getTime()) {
            $json['time'] = [
                'total' => round($reportSummary->getTime() / 1000, 3),
            ];
        }

        if (null !== $reportSummary->getMemory()) {
            $json['memory'] = round($reportSummary->getMemory() / 1024 / 1024, 3);
        }

        $json = json_encode($json);

        return $reportSummary->isDecoratedOutput() ? OutputFormatter::escape($json) : $json;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Report;

use Symfony\Component\Finder\Finder as SymfonyFinder;
use Symfony\Component\Finder\SplFileInfo;

/**
 * @author Boris Gorbylev <ekho@ekho.name>
 *
 * @internal
 */
final class ReporterFactory
{
    /** @var ReporterInterface[] */
    private $reporters = [];

    public static function create()
    {
        return new self();
    }

    public function registerBuiltInReporters()
    {
        /** @var null|string[] $builtInReporters */
        static $builtInReporters;

        if (null === $builtInReporters) {
            $builtInReporters = [];

            /** @var SplFileInfo $file */
            foreach (SymfonyFinder::create()->files()->name('*Reporter.php')->in(__DIR__) as $file) {
                $relativeNamespace = $file->getRelativePath();
                $builtInReporters[] = sprintf(
                    '%s\\%s%s',
                    __NAMESPACE__,
                    $relativeNamespace ? $relativeNamespace.'\\' : '',
                    $file->getBasename('.php')
                );
            }
        }

        foreach ($builtInReporters as $reporterClass) {
            $this->registerReporter(new $reporterClass());
        }

        return $this;
    }

    /**
     * @return $this
     */
    public function registerReporter(ReporterInterface $reporter)
    {
        $format = $reporter->getFormat();

        if (isset($this->reporters[$format])) {
            throw new \UnexpectedValueException(sprintf('Reporter for format "%s" is already registered.', $format));
        }

        $this->reporters[$format] = $reporter;

        return $this;
    }

    /**
     * @return string[]
     */
    public function getFormats()
    {
        $formats = array_keys($this->reporters);
        sort($formats);

        return $formats;
    }

    /**
     * @param string $format
     *
     * @return ReporterInterface
     */
    public function getReporter($format)
    {
        if (!isset($this->reporters[$format])) {
            throw new \UnexpectedValueException(sprintf('Reporter for format "%s" is not registered.', $format));
        }

        return $this->reporters[$format];
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Report;

/**
 * @author Boris Gorbylev <ekho@ekho.name>
 */
interface ReporterInterface
{
    /**
     * @return string
     */
    public function getFormat();

    /**
     * Process changed files array. Returns generated report.
     *
     * @return string
     */
    public function generate(ReportSummary $reportSummary);
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer;

use PhpCsFixer\Fixer\FixerInterface;
use PhpCsFixer\Tokenizer\Token;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 * @author Graham Campbell <graham@alt-three.com>
 * @author Odín del Río <odin.drp@gmail.com>
 *
 * @internal
 */
final class Utils
{
    /**
     * Calculate a bitmask for given constant names.
     *
     * @param string[] $options constant names
     *
     * @return int
     */
    public static function calculateBitmask(array $options)
    {
        $bitmask = 0;

        foreach ($options as $optionName) {
            if (\defined($optionName)) {
                $bitmask |= \constant($optionName);
            }
        }

        return $bitmask;
    }

    /**
     * Converts a camel cased string to a snake cased string.
     *
     * @param string $string
     *
     * @return string
     */
    public static function camelCaseToUnderscore($string)
    {
        return strtolower(Preg::replace('/(?<!^)((?=[A-Z][^A-Z])|(?<![A-Z])(?=[A-Z]))/', '_', $string));
    }

    /**
     * Compare two integers for equality.
     *
     * We'll return 0 if they're equal, 1 if the first is bigger than the
     * second, and -1 if the second is bigger than the first.
     *
     * @param int $a
     * @param int $b
     *
     * @return int
     */
    public static function cmpInt($a, $b)
    {
        if ($a === $b) {
            return 0;
        }

        return $a < $b ? -1 : 1;
    }

    /**
     * Calculate the trailing whitespace.
     *
     * What we're doing here is grabbing everything after the final newline.
     *
     * @return string
     */
    public static function calculateTrailingWhitespaceIndent(Token $token)
    {
        if (!$token->isWhitespace()) {
            throw new \InvalidArgumentException(sprintf('The given token must be whitespace, got "%s".', $token->getName()));
        }

        $str = strrchr(
            str_replace(["\r\n", "\r"], "\n", $token->getContent()),
            "\n"
        );

        if (false === $str) {
            return '';
        }

        return ltrim($str, "\n");
    }

    /**
     * Perform stable sorting using provided comparison function.
     *
     * Stability is ensured by using Schwartzian transform.
     *
     * @param mixed[]  $elements
     * @param callable $getComparedValue a callable that takes a single element and returns the value to compare
     * @param callable $compareValues    a callable that compares two values
     *
     * @return mixed[]
     */
    public static function stableSort(array $elements, callable $getComparedValue, callable $compareValues)
    {
        array_walk($elements, static function (&$element, $index) use ($getComparedValue) {
            $element = [$element, $index, $getComparedValue($element)];
        });

        usort($elements, static function ($a, $b) use ($compareValues) {
            $comparison = $compareValues($a[2], $b[2]);

            if (0 !== $comparison) {
                return $comparison;
            }

            return self::cmpInt($a[1], $b[1]);
        });

        return array_map(static function (array $item) {
            return $item[0];
        }, $elements);
    }

    /**
     * Sort fixers by their priorities.
     *
     * @param FixerInterface[] $fixers
     *
     * @return FixerInterface[]
     */
    public static function sortFixers(array $fixers)
    {
        // Schwartzian transform is used to improve the efficiency and avoid
        // `usort(): Array was modified by the user comparison function` warning for mocked objects.
        return self::stableSort(
            $fixers,
            static function (FixerInterface $fixer) {
                return $fixer->getPriority();
            },
            static function ($a, $b) {
                return self::cmpInt($b, $a);
            }
        );
    }

    /**
     * Join names in natural language wrapped in backticks, e.g. `a`, `b` and `c`.
     *
     * @param string[] $names
     *
     * @throws \InvalidArgumentException
     *
     * @return string
     */
    public static function naturalLanguageJoinWithBackticks(array $names)
    {
        if (empty($names)) {
            throw new \InvalidArgumentException('Array of names cannot be empty');
        }

        $names = array_map(static function ($name) {
            return sprintf('`%s`', $name);
        }, $names);

        $last = array_pop($names);

        if ($names) {
            return implode(', ', $names).' and '.$last;
        }

        return $last;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer;

/**
 * @internal
 */
interface ToolInfoInterface
{
    public function getComposerInstallationDetails();

    public function getComposerVersion();

    public function getVersion();

    public function isInstalledAsPhar();

    public function isInstalledByComposer();

    public function getPharDownloadUri($version);
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 */
final class WhitespacesFixerConfig
{
    private $indent;
    private $lineEnding;

    /**
     * @param string $indent
     * @param string $lineEnding
     */
    public function __construct($indent = '    ', $lineEnding = "\n")
    {
        if (!\in_array($indent, ['  ', '    ', "\t"], true)) {
            throw new \InvalidArgumentException('Invalid "indent" param, expected tab or two or four spaces.');
        }

        if (!\in_array($lineEnding, ["\n", "\r\n"], true)) {
            throw new \InvalidArgumentException('Invalid "lineEnding" param, expected "\n" or "\r\n".');
        }

        $this->indent = $indent;
        $this->lineEnding = $lineEnding;
    }

    /**
     * @return string
     */
    public function getIndent()
    {
        return $this->indent;
    }

    /**
     * @return string
     */
    public function getLineEnding()
    {
        return $this->lineEnding;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer;

use PhpCsFixer\ConfigurationException\InvalidFixerConfigurationException;
use PhpCsFixer\ConfigurationException\InvalidForEnvFixerConfigurationException;
use PhpCsFixer\ConfigurationException\RequiredFixerConfigurationException;
use PhpCsFixer\Console\Application;
use PhpCsFixer\Fixer\ConfigurableFixerInterface;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\Fixer\DefinedFixerInterface;
use PhpCsFixer\Fixer\FixerInterface;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
use PhpCsFixer\FixerConfiguration\DeprecatedFixerOption;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface;
use PhpCsFixer\FixerConfiguration\InvalidOptionsForEnvException;
use PhpCsFixer\Tokenizer\Tokens;
use Symfony\Component\OptionsResolver\Exception\ExceptionInterface;
use Symfony\Component\OptionsResolver\Exception\MissingOptionsException;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
abstract class AbstractFixer implements FixerInterface, DefinedFixerInterface
{
    /**
     * @var null|array<string, mixed>
     */
    protected $configuration;

    /**
     * @var WhitespacesFixerConfig
     */
    protected $whitespacesConfig;

    /**
     * @var null|FixerConfigurationResolverInterface
     */
    private $configurationDefinition;

    public function __construct()
    {
        if ($this instanceof ConfigurableFixerInterface) {
            try {
                $this->configure([]);
            } catch (RequiredFixerConfigurationException $e) {
                // ignore
            }
        }

        if ($this instanceof WhitespacesAwareFixerInterface) {
            $this->whitespacesConfig = $this->getDefaultWhitespacesFixerConfig();
        }
    }

    final public function fix(\SplFileInfo $file, Tokens $tokens)
    {
        if ($this instanceof ConfigurableFixerInterface && null === $this->configuration) {
            throw new RequiredFixerConfigurationException($this->getName(), 'Configuration is required.');
        }

        if (0 < $tokens->count() && $this->isCandidate($tokens) && $this->supports($file)) {
            $this->applyFix($file, $tokens);
        }
    }

    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return false;
    }

    /**
     * {@inheritdoc}
     */
    public function getName()
    {
        $nameParts = explode('\\', static::class);
        $name = substr(end($nameParts), 0, -\strlen('Fixer'));

        return Utils::camelCaseToUnderscore($name);
    }

    /**
     * {@inheritdoc}
     */
    public function getPriority()
    {
        return 0;
    }

    /**
     * {@inheritdoc}
     */
    public function supports(\SplFileInfo $file)
    {
        return true;
    }

    public function configure(array $configuration = null)
    {
        if (!$this instanceof ConfigurationDefinitionFixerInterface) {
            throw new \LogicException('Cannot configure using Abstract parent, child not implementing "PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface".');
        }

        if (null === $configuration) {
            $message = 'Passing NULL to set default configuration is deprecated and will not be supported in 3.0, use an empty array instead.';

            if (getenv('PHP_CS_FIXER_FUTURE_MODE')) {
                throw new \InvalidArgumentException("{$message} This check was performed as `PHP_CS_FIXER_FUTURE_MODE` env var is set.");
            }

            @trigger_error($message, E_USER_DEPRECATED);

            $configuration = [];
        }

        foreach ($this->getConfigurationDefinition()->getOptions() as $option) {
            if (!$option instanceof DeprecatedFixerOption) {
                continue;
            }

            $name = $option->getName();
            if (\array_key_exists($name, $configuration)) {
                $message = sprintf(
                    'Option "%s" for rule "%s" is deprecated and will be removed in version %d.0. %s',
                    $name,
                    $this->getName(),
                    Application::getMajorVersion() + 1,
                    str_replace('`', '"', $option->getDeprecationMessage())
                );

                if (getenv('PHP_CS_FIXER_FUTURE_MODE')) {
                    throw new \InvalidArgumentException("{$message} This check was performed as `PHP_CS_FIXER_FUTURE_MODE` env var is set.");
                }

                @trigger_error($message, E_USER_DEPRECATED);
            }
        }

        try {
            $this->configuration = $this->getConfigurationDefinition()->resolve($configuration);
        } catch (MissingOptionsException $exception) {
            throw new RequiredFixerConfigurationException(
                $this->getName(),
                sprintf('Missing required configuration: %s', $exception->getMessage()),
                $exception
            );
        } catch (InvalidOptionsForEnvException $exception) {
            throw new InvalidForEnvFixerConfigurationException(
                $this->getName(),
                sprintf('Invalid configuration for env: %s', $exception->getMessage()),
                $exception
            );
        } catch (ExceptionInterface $exception) {
            throw new InvalidFixerConfigurationException(
                $this->getName(),
                sprintf('Invalid configuration: %s', $exception->getMessage()),
                $exception
            );
        }
    }

    /**
     * {@inheritdoc}
     */
    public function getConfigurationDefinition()
    {
        if (!$this instanceof ConfigurationDefinitionFixerInterface) {
            throw new \LogicException('Cannot get configuration definition using Abstract parent, child not implementing "PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface".');
        }

        if (null === $this->configurationDefinition) {
            $this->configurationDefinition = $this->createConfigurationDefinition();
        }

        return $this->configurationDefinition;
    }

    public function setWhitespacesConfig(WhitespacesFixerConfig $config)
    {
        if (!$this instanceof WhitespacesAwareFixerInterface) {
            throw new \LogicException('Cannot run method for class not implementing "PhpCsFixer\Fixer\WhitespacesAwareFixerInterface".');
        }

        $this->whitespacesConfig = $config;
    }

    abstract protected function applyFix(\SplFileInfo $file, Tokens $tokens);

    /**
     * @return FixerConfigurationResolverInterface
     */
    protected function createConfigurationDefinition()
    {
        if (!$this instanceof ConfigurationDefinitionFixerInterface) {
            throw new \LogicException('Cannot create configuration definition using Abstract parent, child not implementing "PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface".');
        }

        throw new \LogicException('Not implemented.');
    }

    private function getDefaultWhitespacesFixerConfig()
    {
        static $defaultWhitespacesFixerConfig = null;

        if (null === $defaultWhitespacesFixerConfig) {
            $defaultWhitespacesFixerConfig = new WhitespacesFixerConfig('    ', "\n");
        }

        return $defaultWhitespacesFixerConfig;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer;

/**
 * This class replaces preg_* functions to better handling UTF8 strings,
 * ensuring no matter "u" modifier is present or absent subject will be handled correctly.
 *
 * @author Kuba Werłos <werlos@gmail.com>
 *
 * @internal
 */
final class Preg
{
    /**
     * @param string        $pattern
     * @param string        $subject
     * @param null|string[] $matches
     * @param int           $flags
     * @param int           $offset
     *
     * @throws PregException
     *
     * @return int
     */
    public static function match($pattern, $subject, &$matches = null, $flags = 0, $offset = 0)
    {
        $result = @preg_match(self::addUtf8Modifier($pattern), $subject, $matches, $flags, $offset);
        if (false !== $result && PREG_NO_ERROR === preg_last_error()) {
            return $result;
        }

        $result = @preg_match(self::removeUtf8Modifier($pattern), $subject, $matches, $flags, $offset);
        if (false !== $result && PREG_NO_ERROR === preg_last_error()) {
            return $result;
        }

        throw self::newPregException(preg_last_error(), __METHOD__, (array) $pattern);
    }

    /**
     * @param string        $pattern
     * @param string        $subject
     * @param null|string[] $matches
     * @param int           $flags
     * @param int           $offset
     *
     * @throws PregException
     *
     * @return int
     */
    public static function matchAll($pattern, $subject, &$matches = null, $flags = PREG_PATTERN_ORDER, $offset = 0)
    {
        $result = @preg_match_all(self::addUtf8Modifier($pattern), $subject, $matches, $flags, $offset);
        if (false !== $result && PREG_NO_ERROR === preg_last_error()) {
            return $result;
        }

        $result = @preg_match_all(self::removeUtf8Modifier($pattern), $subject, $matches, $flags, $offset);
        if (false !== $result && PREG_NO_ERROR === preg_last_error()) {
            return $result;
        }

        throw self::newPregException(preg_last_error(), __METHOD__, (array) $pattern);
    }

    /**
     * @param string|string[] $pattern
     * @param string|string[] $replacement
     * @param string|string[] $subject
     * @param int             $limit
     * @param null|int        $count
     *
     * @throws PregException
     *
     * @return string|string[]
     */
    public static function replace($pattern, $replacement, $subject, $limit = -1, &$count = null)
    {
        $result = @preg_replace(self::addUtf8Modifier($pattern), $replacement, $subject, $limit, $count);
        if (null !== $result && PREG_NO_ERROR === preg_last_error()) {
            return $result;
        }

        $result = @preg_replace(self::removeUtf8Modifier($pattern), $replacement, $subject, $limit, $count);
        if (null !== $result && PREG_NO_ERROR === preg_last_error()) {
            return $result;
        }

        throw self::newPregException(preg_last_error(), __METHOD__, (array) $pattern);
    }

    /**
     * @param string|string[] $pattern
     * @param callable        $callback
     * @param string|string[] $subject
     * @param int             $limit
     * @param null|int        $count
     *
     * @throws PregException
     *
     * @return string|string[]
     */
    public static function replaceCallback($pattern, $callback, $subject, $limit = -1, &$count = null)
    {
        $result = @preg_replace_callback(self::addUtf8Modifier($pattern), $callback, $subject, $limit, $count);
        if (null !== $result && PREG_NO_ERROR === preg_last_error()) {
            return $result;
        }

        $result = @preg_replace_callback(self::removeUtf8Modifier($pattern), $callback, $subject, $limit, $count);
        if (null !== $result && PREG_NO_ERROR === preg_last_error()) {
            return $result;
        }

        throw self::newPregException(preg_last_error(), __METHOD__, (array) $pattern);
    }

    /**
     * @param string $pattern
     * @param string $subject
     * @param int    $limit
     * @param int    $flags
     *
     * @throws PregException
     *
     * @return string[]
     */
    public static function split($pattern, $subject, $limit = -1, $flags = 0)
    {
        $result = @preg_split(self::addUtf8Modifier($pattern), $subject, $limit, $flags);
        if (false !== $result && PREG_NO_ERROR === preg_last_error()) {
            return $result;
        }

        $result = @preg_split(self::removeUtf8Modifier($pattern), $subject, $limit, $flags);
        if (false !== $result && PREG_NO_ERROR === preg_last_error()) {
            return $result;
        }

        throw self::newPregException(preg_last_error(), __METHOD__, (array) $pattern);
    }

    /**
     * @param string|string[] $pattern
     *
     * @return string|string[]
     */
    private static function addUtf8Modifier($pattern)
    {
        if (\is_array($pattern)) {
            return array_map(__METHOD__, $pattern);
        }

        return $pattern.'u';
    }

    /**
     * @param string|string[] $pattern
     *
     * @return string|string[]
     */
    private static function removeUtf8Modifier($pattern)
    {
        if (\is_array($pattern)) {
            return array_map(__METHOD__, $pattern);
        }

        if ('' === $pattern) {
            return '';
        }

        $delimiter = $pattern[0];

        $endDelimiterPosition = strrpos($pattern, $delimiter);

        return substr($pattern, 0, $endDelimiterPosition).str_replace('u', '', substr($pattern, $endDelimiterPosition));
    }

    /**
     * Create PregException.
     *
     * Create the generic PregException message and if possible due to finding
     * an invalid pattern, tell more about such kind of error in the message.
     *
     * @param int      $error
     * @param string   $method
     * @param string[] $patterns
     *
     * @return PregException
     */
    private static function newPregException($error, $method, array $patterns)
    {
        foreach ($patterns as $pattern) {
            $last = error_get_last();
            $result = @preg_match($pattern, '');

            if (false !== $result) {
                continue;
            }

            $code = preg_last_error();
            $next = error_get_last();

            if ($last !== $next) {
                $message = sprintf(
                    '(code: %d) %s',
                    $code,
                    preg_replace('~preg_[a-z_]+[()]{2}: ~', '', $next['message'])
                );
            } else {
                $message = sprintf('(code: %d)', $code);
            }

            return new PregException(
                sprintf('%s(): Invalid PCRE pattern "%s": %s (version: %s)', $method, $pattern, $message, PCRE_VERSION),
                $code
            );
        }

        return new PregException(sprintf('Error occurred when calling %s.', $method), $error);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Error;

/**
 * An abstraction for errors that can occur before and during fixing.
 *
 * @author Andreas Möller <am@localheinz.com>
 *
 * @internal
 */
final class Error
{
    /**
     * Error which has occurred in linting phase, before applying any fixers.
     */
    const TYPE_INVALID = 1;

    /**
     * Error which has occurred during fixing phase.
     */
    const TYPE_EXCEPTION = 2;

    /**
     * Error which has occurred in linting phase, after applying any fixers.
     */
    const TYPE_LINT = 3;

    /**
     * @var int
     */
    private $type;

    /**
     * @var string
     */
    private $filePath;

    /**
     * @var null|\Throwable
     */
    private $source;

    /**
     * @var array
     */
    private $appliedFixers;

    /**
     * @var null|string
     */
    private $diff;

    /**
     * @param int             $type
     * @param string          $filePath
     * @param null|\Throwable $source
     * @param null|string     $diff
     */
    public function __construct($type, $filePath, $source = null, array $appliedFixers = [], $diff = null)
    {
        $this->type = $type;
        $this->filePath = $filePath;
        $this->source = $source;
        $this->appliedFixers = $appliedFixers;
        $this->diff = $diff;
    }

    /**
     * @return string
     */
    public function getFilePath()
    {
        return $this->filePath;
    }

    /**
     * @return null|\Throwable
     */
    public function getSource()
    {
        return $this->source;
    }

    /**
     * @return int
     */
    public function getType()
    {
        return $this->type;
    }

    /**
     * @return array
     */
    public function getAppliedFixers()
    {
        return $this->appliedFixers;
    }

    /**
     * @return null|string
     */
    public function getDiff()
    {
        return $this->diff;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Error;

/**
 * Manager of errors that occur during fixing.
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class ErrorsManager
{
    /**
     * @var Error[]
     */
    private $errors = [];

    /**
     * Returns errors reported during linting before fixing.
     *
     * @return Error[]
     */
    public function getInvalidErrors()
    {
        return array_filter($this->errors, static function (Error $error) {
            return Error::TYPE_INVALID === $error->getType();
        });
    }

    /**
     * Returns errors reported during fixing.
     *
     * @return Error[]
     */
    public function getExceptionErrors()
    {
        return array_filter($this->errors, static function (Error $error) {
            return Error::TYPE_EXCEPTION === $error->getType();
        });
    }

    /**
     * Returns errors reported during linting after fixing.
     *
     * @return Error[]
     */
    public function getLintErrors()
    {
        return array_filter($this->errors, static function (Error $error) {
            return Error::TYPE_LINT === $error->getType();
        });
    }

    /**
     * Returns true if no errors were reported.
     *
     * @return bool
     */
    public function isEmpty()
    {
        return empty($this->errors);
    }

    public function report(Error $error)
    {
        $this->errors[] = $error;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Event;

use Symfony\Component\EventDispatcher\EventDispatcher;
use Symfony\Contracts\EventDispatcher\EventDispatcherInterface;

// Since PHP-CS-FIXER is PHP 5.6 compliant we can't always use Symfony Contracts (currently needs PHP ^7.1.3)
// This conditional inheritance will be useless when PHP-CS-FIXER no longer supports PHP versions
// inferior to Symfony/Contracts PHP minimal version
if (is_subclass_of(EventDispatcher::class, EventDispatcherInterface::class)) {
    class Event extends \Symfony\Contracts\EventDispatcher\Event
    {
    }
} else {
    class Event extends \Symfony\Component\EventDispatcher\Event
    {
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer;

use PhpCsFixer\Tokenizer\Analyzer\FunctionsAnalyzer;
use PhpCsFixer\Tokenizer\Tokens;

/**
 * @internal
 *
 * @author Vladimir Reznichenko <kalessil@gmail.com>
 */
abstract class AbstractFunctionReferenceFixer extends AbstractFixer
{
    /**
     * {@inheritdoc}
     */
    public function isRisky()
    {
        return true;
    }

    /**
     * Looks up Tokens sequence for suitable candidates and delivers boundaries information,
     * which can be supplied by other methods in this abstract class.
     *
     * @param string   $functionNameToSearch
     * @param int      $start
     * @param null|int $end
     *
     * @return null|int[] returns $functionName, $openParenthesis, $closeParenthesis packed into array
     */
    protected function find($functionNameToSearch, Tokens $tokens, $start = 0, $end = null)
    {
        // make interface consistent with findSequence
        $end = null === $end ? $tokens->count() : $end;

        // find raw sequence which we can analyse for context
        $candidateSequence = [[T_STRING, $functionNameToSearch], '('];
        $matches = $tokens->findSequence($candidateSequence, $start, $end, false);
        if (null === $matches) {
            // not found, simply return without further attempts
            return null;
        }

        // translate results for humans
        list($functionName, $openParenthesis) = array_keys($matches);

        $functionsAnalyzer = new FunctionsAnalyzer();

        if (!$functionsAnalyzer->isGlobalFunctionCall($tokens, $functionName)) {
            return $this->find($functionNameToSearch, $tokens, $openParenthesis, $end);
        }

        return [$functionName, $openParenthesis, $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $openParenthesis)];
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer;

use PhpCsFixer\Console\Application;

/**
 * Obtain information about using version of tool.
 *
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class ToolInfo implements ToolInfoInterface
{
    const COMPOSER_PACKAGE_NAME = 'friendsofphp/php-cs-fixer';

    const COMPOSER_LEGACY_PACKAGE_NAME = 'fabpot/php-cs-fixer';

    /**
     * @var null|array
     */
    private $composerInstallationDetails;

    /**
     * @var null|bool
     */
    private $isInstalledByComposer;

    public function getComposerInstallationDetails()
    {
        if (!$this->isInstalledByComposer()) {
            throw new \LogicException('Cannot get composer version for tool not installed by composer.');
        }

        if (null === $this->composerInstallationDetails) {
            $composerInstalled = json_decode(file_get_contents($this->getComposerInstalledFile()), true);

            $packages = isset($composerInstalled['packages']) ? $composerInstalled['packages'] : $composerInstalled;

            foreach ($packages as $package) {
                if (\in_array($package['name'], [self::COMPOSER_PACKAGE_NAME, self::COMPOSER_LEGACY_PACKAGE_NAME], true)) {
                    $this->composerInstallationDetails = $package;

                    break;
                }
            }
        }

        return $this->composerInstallationDetails;
    }

    public function getComposerVersion()
    {
        $package = $this->getComposerInstallationDetails();

        $versionSuffix = '';

        if (isset($package['dist']['reference'])) {
            $versionSuffix = '#'.$package['dist']['reference'];
        }

        return $package['version'].$versionSuffix;
    }

    public function getVersion()
    {
        if ($this->isInstalledByComposer()) {
            return Application::VERSION.':'.$this->getComposerVersion();
        }

        return Application::VERSION;
    }

    public function isInstalledAsPhar()
    {
        return 'phar://' === substr(__DIR__, 0, 7);
    }

    public function isInstalledByComposer()
    {
        if (null === $this->isInstalledByComposer) {
            $this->isInstalledByComposer = !$this->isInstalledAsPhar() && file_exists($this->getComposerInstalledFile());
        }

        return $this->isInstalledByComposer;
    }

    public function getPharDownloadUri($version)
    {
        return sprintf(
            'https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/%s/php-cs-fixer.phar',
            $version
        );
    }

    private function getComposerInstalledFile()
    {
        return __DIR__.'/../../../composer/installed.json';
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Console;

use PhpCsFixer\Console\Command\DescribeCommand;
use PhpCsFixer\Console\Command\FixCommand;
use PhpCsFixer\Console\Command\HelpCommand;
use PhpCsFixer\Console\Command\ReadmeCommand;
use PhpCsFixer\Console\Command\SelfUpdateCommand;
use PhpCsFixer\Console\SelfUpdate\GithubClient;
use PhpCsFixer\Console\SelfUpdate\NewVersionChecker;
use PhpCsFixer\PharChecker;
use PhpCsFixer\ToolInfo;
use Symfony\Component\Console\Application as BaseApplication;
use Symfony\Component\Console\Command\ListCommand;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\ConsoleOutputInterface;
use Symfony\Component\Console\Output\OutputInterface;

/**
 * @author Fabien Potencier <fabien@symfony.com>
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class Application extends BaseApplication
{
    const VERSION = '2.16.4';
    const VERSION_CODENAME = 'Yellow Bird';

    /**
     * @var ToolInfo
     */
    private $toolInfo;

    public function __construct()
    {
        if (!getenv('PHP_CS_FIXER_FUTURE_MODE')) {
            error_reporting(E_ALL & ~E_DEPRECATED & ~E_USER_DEPRECATED);
        }

        parent::__construct('PHP CS Fixer', self::VERSION);

        $this->toolInfo = new ToolInfo();

        $this->add(new DescribeCommand());
        $this->add(new FixCommand($this->toolInfo));
        $this->add(new ReadmeCommand());
        $this->add(new SelfUpdateCommand(
            new NewVersionChecker(new GithubClient()),
            $this->toolInfo,
            new PharChecker()
        ));
    }

    /**
     * @return int
     */
    public static function getMajorVersion()
    {
        return (int) explode('.', self::VERSION)[0];
    }

    /**
     * {@inheritdoc}
     */
    public function doRun(InputInterface $input, OutputInterface $output)
    {
        $stdErr = $output instanceof ConsoleOutputInterface
            ? $output->getErrorOutput()
            : ($input->hasParameterOption('--format', true) && 'txt' !== $input->getParameterOption('--format', null, true) ? null : $output)
        ;
        if (null !== $stdErr) {
            $warningsDetector = new WarningsDetector($this->toolInfo);
            $warningsDetector->detectOldVendor();
            $warningsDetector->detectOldMajor();
            foreach ($warningsDetector->getWarnings() as $warning) {
                $stdErr->writeln(sprintf($stdErr->isDecorated() ? '<bg=yellow;fg=black;>%s</>' : '%s', $warning));
            }
        }

        return parent::doRun($input, $output);
    }

    /**
     * {@inheritdoc}
     */
    public function getLongVersion()
    {
        $version = sprintf(
            '%s <info>%s</info> by <comment>Fabien Potencier</comment> and <comment>Dariusz Ruminski</comment>',
            parent::getLongVersion(),
            self::VERSION_CODENAME
        );

        $commit = '@git-commit@';

        if ('@'.'git-commit@' !== $commit) {
            $version .= ' ('.substr($commit, 0, 7).')';
        }

        return $version;
    }

    /**
     * {@inheritdoc}
     */
    protected function getDefaultCommands()
    {
        return [new HelpCommand(), new ListCommand()];
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Console\SelfUpdate;

/**
 * @internal
 */
interface NewVersionCheckerInterface
{
    /**
     * Returns the tag of the latest version.
     *
     * @return string
     */
    public function getLatestVersion();

    /**
     * Returns the tag of the latest minor/patch version of the given major version.
     *
     * @param int $majorVersion
     *
     * @return null|string
     */
    public function getLatestVersionOfMajor($majorVersion);

    /**
     * Returns -1, 0, or 1 if the first version is respectively less than,
     * equal to, or greater than the second.
     *
     * @param string $versionA
     * @param string $versionB
     *
     * @return int
     */
    public function compareVersions($versionA, $versionB);
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Console\SelfUpdate;

/**
 * @internal
 */
interface GithubClientInterface
{
    /**
     * @return array
     */
    public function getTags();
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Console\SelfUpdate;

/**
 * @internal
 */
final class GithubClient implements GithubClientInterface
{
    /**
     * {@inheritdoc}
     */
    public function getTags()
    {
        $url = 'https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/tags';

        $result = @file_get_contents(
            $url,
            false,
            stream_context_create([
                'http' => [
                    'header' => 'User-Agent: FriendsOfPHP/PHP-CS-Fixer',
                ],
            ])
        );

        if (false === $result) {
            throw new \RuntimeException(sprintf('Failed to load tags at "%s".', $url));
        }

        $result = json_decode($result, true);
        if (JSON_ERROR_NONE !== json_last_error()) {
            throw new \RuntimeException(sprintf(
                'Failed to read response from "%s" as JSON: %s.',
                $url,
                json_last_error_msg()
            ));
        }

        return $result;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Console\SelfUpdate;

use Composer\Semver\Comparator;
use Composer\Semver\Semver;
use Composer\Semver\VersionParser;

/**
 * @internal
 */
final class NewVersionChecker implements NewVersionCheckerInterface
{
    /**
     * @var GithubClientInterface
     */
    private $githubClient;

    /**
     * @var VersionParser
     */
    private $versionParser;

    /**
     * @var null|string[]
     */
    private $availableVersions;

    public function __construct(GithubClientInterface $githubClient)
    {
        $this->githubClient = $githubClient;
        $this->versionParser = new VersionParser();
    }

    /**
     * {@inheritdoc}
     */
    public function getLatestVersion()
    {
        $this->retrieveAvailableVersions();

        return $this->availableVersions[0];
    }

    /**
     * {@inheritdoc}
     */
    public function getLatestVersionOfMajor($majorVersion)
    {
        $this->retrieveAvailableVersions();

        $semverConstraint = '^'.$majorVersion;

        foreach ($this->availableVersions as $availableVersion) {
            if (Semver::satisfies($availableVersion, $semverConstraint)) {
                return $availableVersion;
            }
        }

        return null;
    }

    /**
     * {@inheritdoc}
     */
    public function compareVersions($versionA, $versionB)
    {
        $versionA = $this->versionParser->normalize($versionA);
        $versionB = $this->versionParser->normalize($versionB);

        if (Comparator::lessThan($versionA, $versionB)) {
            return -1;
        }

        if (Comparator::greaterThan($versionA, $versionB)) {
            return 1;
        }

        return 0;
    }

    private function retrieveAvailableVersions()
    {
        if (null !== $this->availableVersions) {
            return;
        }

        foreach ($this->githubClient->getTags() as $tag) {
            $version = $tag['name'];

            try {
                $this->versionParser->normalize($version);

                if ('stable' === VersionParser::parseStability($version)) {
                    $this->availableVersions[] = $version;
                }
            } catch (\UnexpectedValueException $exception) {
                // not a valid version tag
            }
        }

        $this->availableVersions = Semver::rsort($this->availableVersions);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Console;

use PhpCsFixer\ToolInfo;
use PhpCsFixer\ToolInfoInterface;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class WarningsDetector
{
    /**
     * @var ToolInfoInterface
     */
    private $toolInfo;

    /**
     * @var string[]
     */
    private $warnings = [];

    public function __construct(ToolInfoInterface $toolInfo)
    {
        $this->toolInfo = $toolInfo;
    }

    public function detectOldMajor()
    {
        // @TODO 3.0 to be activated with new MAJOR release
        // $this->warnings[] = 'You are running PHP CS Fixer v2, which is not maintained anymore. Please update to v3.';
    }

    public function detectOldVendor()
    {
        if ($this->toolInfo->isInstalledByComposer()) {
            $details = $this->toolInfo->getComposerInstallationDetails();
            if (ToolInfo::COMPOSER_LEGACY_PACKAGE_NAME === $details['name']) {
                $this->warnings[] = sprintf(
                    'You are running PHP CS Fixer installed with old vendor `%s`. Please update to `%s`.',
                    ToolInfo::COMPOSER_LEGACY_PACKAGE_NAME,
                    ToolInfo::COMPOSER_PACKAGE_NAME
                );
            }
        }
    }

    /**
     * @return string[]
     */
    public function getWarnings()
    {
        if (!\count($this->warnings)) {
            return [];
        }

        return array_unique(array_merge(
            $this->warnings,
            ['If you need help while solving warnings, ask at https://gitter.im/PHP-CS-Fixer, we will help you!']
        ));
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Console\Output;

use PhpCsFixer\FixerFileProcessedEvent;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;

/**
 * Output writer to show the process of a FixCommand.
 *
 * @internal
 */
final class ProcessOutput implements ProcessOutputInterface
{
    /**
     * File statuses map.
     *
     * @var array
     */
    private static $eventStatusMap = [
        FixerFileProcessedEvent::STATUS_UNKNOWN => ['symbol' => '?', 'format' => '%s', 'description' => 'unknown'],
        FixerFileProcessedEvent::STATUS_INVALID => ['symbol' => 'I', 'format' => '<bg=red>%s</bg=red>', 'description' => 'invalid file syntax (file ignored)'],
        FixerFileProcessedEvent::STATUS_SKIPPED => ['symbol' => 'S', 'format' => '<fg=cyan>%s</fg=cyan>', 'description' => 'skipped (cached or empty file)'],
        FixerFileProcessedEvent::STATUS_NO_CHANGES => ['symbol' => '.', 'format' => '%s', 'description' => 'no changes'],
        FixerFileProcessedEvent::STATUS_FIXED => ['symbol' => 'F', 'format' => '<fg=green>%s</fg=green>', 'description' => 'fixed'],
        FixerFileProcessedEvent::STATUS_EXCEPTION => ['symbol' => 'E', 'format' => '<bg=red>%s</bg=red>', 'description' => 'error'],
        FixerFileProcessedEvent::STATUS_LINT => ['symbol' => 'E', 'format' => '<bg=red>%s</bg=red>', 'description' => 'error'],
    ];

    /**
     * @var EventDispatcherInterface
     */
    private $eventDispatcher;

    /**
     * @var OutputInterface
     */
    private $output;

    /**
     * @var null|int
     */
    private $files;

    /**
     * @var int
     */
    private $processedFiles = 0;

    /**
     * @var null|int
     */
    private $symbolsPerLine;

    /**
     * @TODO 3.0 make all parameters mandatory (`null` not allowed)
     *
     * @param null|int $width
     * @param null|int $nbFiles
     */
    public function __construct(OutputInterface $output, EventDispatcherInterface $dispatcher, $width, $nbFiles)
    {
        $this->output = $output;
        $this->eventDispatcher = $dispatcher;
        $this->eventDispatcher->addListener(FixerFileProcessedEvent::NAME, [$this, 'onFixerFileProcessed']);
        $this->symbolsPerLine = $width;

        if (null !== $nbFiles) {
            $this->files = $nbFiles;

            //   max number of characters per line
            // - total length x 2 (e.g. "  1 / 123" => 6 digits and padding spaces)
            // - 11               (extra spaces, parentheses and percentage characters, e.g. " x / x (100%)")
            $this->symbolsPerLine = max(1, ($width ?: 80) - \strlen((string) $this->files) * 2 - 11);
        }
    }

    public function __destruct()
    {
        $this->eventDispatcher->removeListener(FixerFileProcessedEvent::NAME, [$this, 'onFixerFileProcessed']);
    }

    public function onFixerFileProcessed(FixerFileProcessedEvent $event)
    {
        if (
            null === $this->files
            && null !== $this->symbolsPerLine
            && 0 === $this->processedFiles % $this->symbolsPerLine
            && 0 !== $this->processedFiles
        ) {
            $this->output->writeln('');
        }

        $status = self::$eventStatusMap[$event->getStatus()];
        $this->output->write($this->output->isDecorated() ? sprintf($status['format'], $status['symbol']) : $status['symbol']);

        ++$this->processedFiles;

        if (null !== $this->files) {
            $symbolsOnCurrentLine = $this->processedFiles % $this->symbolsPerLine;
            $isLast = $this->processedFiles === $this->files;

            if (0 === $symbolsOnCurrentLine || $isLast) {
                $this->output->write(sprintf(
                    '%s %'.\strlen((string) $this->files).'d / %d (%3d%%)',
                    $isLast && 0 !== $symbolsOnCurrentLine ? str_repeat(' ', $this->symbolsPerLine - $symbolsOnCurrentLine) : '',
                    $this->processedFiles,
                    $this->files,
                    round($this->processedFiles / $this->files * 100)
                ));

                if (!$isLast) {
                    $this->output->writeln('');
                }
            }
        }
    }

    public function printLegend()
    {
        $symbols = [];

        foreach (self::$eventStatusMap as $status) {
            $symbol = $status['symbol'];
            if ('' === $symbol || isset($symbols[$symbol])) {
                continue;
            }

            $symbols[$symbol] = sprintf('%s-%s', $this->output->isDecorated() ? sprintf($status['format'], $symbol) : $symbol, $status['description']);
        }

        $this->output->write(sprintf("\nLegend: %s\n", implode(', ', $symbols)));
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Console\Output;

use PhpCsFixer\Differ\DiffConsoleFormatter;
use PhpCsFixer\Error\Error;
use PhpCsFixer\Linter\LintingException;
use Symfony\Component\Console\Formatter\OutputFormatter;
use Symfony\Component\Console\Output\OutputInterface;

/**
 * @author SpacePossum
 *
 * @internal
 */
final class ErrorOutput
{
    /**
     * @var OutputInterface
     */
    private $output;

    /**
     * @var bool
     */
    private $isDecorated;

    public function __construct(OutputInterface $output)
    {
        $this->output = $output;
        $this->isDecorated = $output->isDecorated();
    }

    /**
     * @param string  $process
     * @param Error[] $errors
     */
    public function listErrors($process, array $errors)
    {
        $this->output->writeln(['', sprintf(
            'Files that were not fixed due to errors reported during %s:',
            $process
        )]);

        $showDetails = $this->output->getVerbosity() >= OutputInterface::VERBOSITY_VERY_VERBOSE;
        $showTrace = $this->output->getVerbosity() >= OutputInterface::VERBOSITY_DEBUG;
        foreach ($errors as $i => $error) {
            $this->output->writeln(sprintf('%4d) %s', $i + 1, $error->getFilePath()));
            $e = $error->getSource();
            if (!$showDetails || null === $e) {
                continue;
            }

            $class = sprintf('[%s]', \get_class($e));
            $message = $e->getMessage();
            $code = $e->getCode();
            if (0 !== $code) {
                $message .= " ({$code})";
            }

            $length = max(\strlen($class), \strlen($message));
            $lines = [
                '',
                $class,
                $message,
                '',
            ];

            $this->output->writeln('');

            foreach ($lines as $line) {
                if (\strlen($line) < $length) {
                    $line .= str_repeat(' ', $length - \strlen($line));
                }

                $this->output->writeln(sprintf('      <error>  %s  </error>', $this->prepareOutput($line)));
            }

            if ($showTrace && !$e instanceof LintingException) { // stack trace of lint exception is of no interest
                $this->output->writeln('');
                $stackTrace = $e->getTrace();
                foreach ($stackTrace as $trace) {
                    if (isset($trace['class'], $trace['function']) && \Symfony\Component\Console\Command\Command::class === $trace['class'] && 'run' === $trace['function']) {
                        $this->output->writeln('      [ ... ]');

                        break;
                    }

                    $this->outputTrace($trace);
                }
            }

            if (Error::TYPE_LINT === $error->getType() && 0 < \count($error->getAppliedFixers())) {
                $this->output->writeln('');
                $this->output->writeln(sprintf('      Applied fixers: <comment>%s</comment>', implode(', ', $error->getAppliedFixers())));

                $diff = $error->getDiff();
                if (!empty($diff)) {
                    $diffFormatter = new DiffConsoleFormatter(
                        $this->isDecorated,
                        sprintf(
                            '<comment>      ---------- begin diff ----------</comment>%s%%s%s<comment>      ----------- end diff -----------</comment>',
                            PHP_EOL,
                            PHP_EOL
                        )
                    );

                    $this->output->writeln($diffFormatter->format($diff));
                }
            }
        }
    }

    private function outputTrace(array $trace)
    {
        if (isset($trace['class'], $trace['type'], $trace['function'])) {
            $this->output->writeln(sprintf(
                '      <comment>%s</comment>%s<comment>%s()</comment>',
                $this->prepareOutput($trace['class']),
                $this->prepareOutput($trace['type']),
                $this->prepareOutput($trace['function'])
            ));
        } elseif (isset($trace['function'])) {
            $this->output->writeln(sprintf('      <comment>%s()</comment>', $this->prepareOutput($trace['function'])));
        }

        if (isset($trace['file'])) {
            $this->output->writeln(sprintf('        in <info>%s</info> at line <info>%d</info>', $this->prepareOutput($trace['file']), $trace['line']));
        }
    }

    /**
     * @param string $string
     *
     * @return string
     */
    private function prepareOutput($string)
    {
        return $this->isDecorated
            ? OutputFormatter::escape($string)
            : $string
        ;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Console\Output;

/**
 * @internal
 */
interface ProcessOutputInterface
{
    public function printLegend();
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Console\Output;

/**
 * @internal
 */
final class NullOutput implements ProcessOutputInterface
{
    public function printLegend()
    {
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Console;

use PhpCsFixer\Cache\CacheManagerInterface;
use PhpCsFixer\Cache\Directory;
use PhpCsFixer\Cache\DirectoryInterface;
use PhpCsFixer\Cache\FileCacheManager;
use PhpCsFixer\Cache\FileHandler;
use PhpCsFixer\Cache\NullCacheManager;
use PhpCsFixer\Cache\Signature;
use PhpCsFixer\ConfigInterface;
use PhpCsFixer\ConfigurationException\InvalidConfigurationException;
use PhpCsFixer\Differ\DifferInterface;
use PhpCsFixer\Differ\NullDiffer;
use PhpCsFixer\Differ\SebastianBergmannDiffer;
use PhpCsFixer\Differ\UnifiedDiffer;
use PhpCsFixer\Finder;
use PhpCsFixer\Fixer\DeprecatedFixerInterface;
use PhpCsFixer\Fixer\FixerInterface;
use PhpCsFixer\FixerFactory;
use PhpCsFixer\Linter\Linter;
use PhpCsFixer\Linter\LinterInterface;
use PhpCsFixer\Report\ReporterFactory;
use PhpCsFixer\Report\ReporterInterface;
use PhpCsFixer\RuleSet;
use PhpCsFixer\StdinFileInfo;
use PhpCsFixer\ToolInfoInterface;
use PhpCsFixer\Utils;
use PhpCsFixer\WhitespacesFixerConfig;
use PhpCsFixer\WordMatcher;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\Finder\Finder as SymfonyFinder;

/**
 * The resolver that resolves configuration to use by command line options and config.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 * @author Katsuhiro Ogawa <ko.fivestar@gmail.com>
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class ConfigurationResolver
{
    const PATH_MODE_OVERRIDE = 'override';
    const PATH_MODE_INTERSECTION = 'intersection';

    /**
     * @var null|bool
     */
    private $allowRisky;

    /**
     * @var null|ConfigInterface
     */
    private $config;

    /**
     * @var null|string
     */
    private $configFile;

    /**
     * @var string
     */
    private $cwd;

    /**
     * @var ConfigInterface
     */
    private $defaultConfig;

    /**
     * @var null|ReporterInterface
     */
    private $reporter;

    /**
     * @var null|bool
     */
    private $isStdIn;

    /**
     * @var null|bool
     */
    private $isDryRun;

    /**
     * @var null|FixerInterface[]
     */
    private $fixers;

    /**
     * @var null|bool
     */
    private $configFinderIsOverridden;

    /**
     * @var ToolInfoInterface
     */
    private $toolInfo;

    /**
     * @var array
     */
    private $options = [
        'allow-risky' => null,
        'cache-file' => null,
        'config' => null,
        'diff' => null,
        'diff-format' => null,
        'dry-run' => null,
        'format' => null,
        'path' => [],
        'path-mode' => self::PATH_MODE_OVERRIDE,
        'rules' => null,
        'show-progress' => null,
        'stop-on-violation' => null,
        'using-cache' => null,
        'verbosity' => null,
    ];

    private $cacheFile;
    private $cacheManager;
    private $differ;
    private $directory;
    private $finder;
    private $format;
    private $linter;
    private $path;
    private $progress;
    private $ruleSet;
    private $usingCache;

    /**
     * @var FixerFactory
     */
    private $fixerFactory;

    /**
     * @param string $cwd
     */
    public function __construct(
        ConfigInterface $config,
        array $options,
        $cwd,
        ToolInfoInterface $toolInfo
    ) {
        $this->cwd = $cwd;
        $this->defaultConfig = $config;
        $this->toolInfo = $toolInfo;

        foreach ($options as $name => $value) {
            $this->setOption($name, $value);
        }
    }

    /**
     * @return null|string
     */
    public function getCacheFile()
    {
        if (!$this->getUsingCache()) {
            return null;
        }

        if (null === $this->cacheFile) {
            if (null === $this->options['cache-file']) {
                $this->cacheFile = $this->getConfig()->getCacheFile();
            } else {
                $this->cacheFile = $this->options['cache-file'];
            }
        }

        return $this->cacheFile;
    }

    /**
     * @return CacheManagerInterface
     */
    public function getCacheManager()
    {
        if (null === $this->cacheManager) {
            if ($this->getUsingCache() && ($this->toolInfo->isInstalledAsPhar() || $this->toolInfo->isInstalledByComposer())) {
                $this->cacheManager = new FileCacheManager(
                    new FileHandler($this->getCacheFile()),
                    new Signature(
                        PHP_VERSION,
                        $this->toolInfo->getVersion(),
                        $this->getConfig()->getIndent(),
                        $this->getConfig()->getLineEnding(),
                        $this->getRules()
                    ),
                    $this->isDryRun(),
                    $this->getDirectory()
                );
            } else {
                $this->cacheManager = new NullCacheManager();
            }
        }

        return $this->cacheManager;
    }

    /**
     * @return ConfigInterface
     */
    public function getConfig()
    {
        if (null === $this->config) {
            foreach ($this->computeConfigFiles() as $configFile) {
                if (!file_exists($configFile)) {
                    continue;
                }

                $config = self::separatedContextLessInclude($configFile);

                // verify that the config has an instance of Config
                if (!$config instanceof ConfigInterface) {
                    throw new InvalidConfigurationException(sprintf('The config file: "%s" does not return a "PhpCsFixer\ConfigInterface" instance. Got: "%s".', $configFile, \is_object($config) ? \get_class($config) : \gettype($config)));
                }

                $this->config = $config;
                $this->configFile = $configFile;

                break;
            }

            if (null === $this->config) {
                $this->config = $this->defaultConfig;
            }
        }

        return $this->config;
    }

    /**
     * @return null|string
     */
    public function getConfigFile()
    {
        if (null === $this->configFile) {
            $this->getConfig();
        }

        return $this->configFile;
    }

    /**
     * @return DifferInterface
     */
    public function getDiffer()
    {
        if (null === $this->differ) {
            $mapper = [
                'null' => static function () { return new NullDiffer(); },
                'sbd' => static function () { return new SebastianBergmannDiffer(); },
                'udiff' => static function () { return new UnifiedDiffer(); },
            ];

            if ($this->options['diff-format']) {
                $option = $this->options['diff-format'];
                if (!isset($mapper[$option])) {
                    throw new InvalidConfigurationException(sprintf(
                        '"diff-format" must be any of "%s", got "%s".',
                        implode('", "', array_keys($mapper)),
                        $option
                    ));
                }
            } else {
                $default = 'sbd'; // @TODO: 3.0 change to udiff as default

                if (getenv('PHP_CS_FIXER_FUTURE_MODE')) {
                    $default = 'udiff';
                }

                $option = $this->options['diff'] ? $default : 'null';
            }

            $this->differ = $mapper[$option]();
        }

        return $this->differ;
    }

    /**
     * @return DirectoryInterface
     */
    public function getDirectory()
    {
        if (null === $this->directory) {
            $path = $this->getCacheFile();
            if (null === $path) {
                $absolutePath = $this->cwd;
            } else {
                $filesystem = new Filesystem();

                $absolutePath = $filesystem->isAbsolutePath($path)
                    ? $path
                    : $this->cwd.\DIRECTORY_SEPARATOR.$path;
            }

            $this->directory = new Directory(\dirname($absolutePath));
        }

        return $this->directory;
    }

    /**
     * @return FixerInterface[] An array of FixerInterface
     */
    public function getFixers()
    {
        if (null === $this->fixers) {
            $this->fixers = $this->createFixerFactory()
                ->useRuleSet($this->getRuleSet())
                ->setWhitespacesConfig(new WhitespacesFixerConfig($this->config->getIndent(), $this->config->getLineEnding()))
                ->getFixers()
            ;

            if (false === $this->getRiskyAllowed()) {
                $riskyFixers = array_map(
                    static function (FixerInterface $fixer) {
                        return $fixer->getName();
                    },
                    array_filter(
                        $this->fixers,
                        static function (FixerInterface $fixer) {
                            return $fixer->isRisky();
                        }
                    )
                );

                if (\count($riskyFixers)) {
                    throw new InvalidConfigurationException(sprintf('The rules contain risky fixers (%s), but they are not allowed to run. Perhaps you forget to use --allow-risky=yes option?', implode(', ', $riskyFixers)));
                }
            }
        }

        return $this->fixers;
    }

    /**
     * @return LinterInterface
     */
    public function getLinter()
    {
        if (null === $this->linter) {
            $this->linter = new Linter($this->getConfig()->getPhpExecutable());
        }

        return $this->linter;
    }

    /**
     * Returns path.
     *
     * @return string[]
     */
    public function getPath()
    {
        if (null === $this->path) {
            $filesystem = new Filesystem();
            $cwd = $this->cwd;

            if (1 === \count($this->options['path']) && '-' === $this->options['path'][0]) {
                $this->path = $this->options['path'];
            } else {
                $this->path = array_map(
                    static function ($rawPath) use ($cwd, $filesystem) {
                        $path = trim($rawPath);

                        if ('' === $path) {
                            throw new InvalidConfigurationException("Invalid path: \"{$rawPath}\".");
                        }

                        $absolutePath = $filesystem->isAbsolutePath($path)
                            ? $path
                            : $cwd.\DIRECTORY_SEPARATOR.$path;

                        if (!file_exists($absolutePath)) {
                            throw new InvalidConfigurationException(sprintf(
                                'The path "%s" is not readable.',
                                $path
                            ));
                        }

                        return $absolutePath;
                    },
                    $this->options['path']
                );
            }
        }

        return $this->path;
    }

    /**
     * @throws InvalidConfigurationException
     *
     * @return string
     */
    public function getProgress()
    {
        if (null === $this->progress) {
            if (OutputInterface::VERBOSITY_VERBOSE <= $this->options['verbosity'] && 'txt' === $this->getFormat()) {
                $progressType = $this->options['show-progress'];
                $progressTypes = ['none', 'run-in', 'estimating', 'estimating-max', 'dots'];

                if (null === $progressType) {
                    $default = 'run-in';

                    if (getenv('PHP_CS_FIXER_FUTURE_MODE')) {
                        $default = 'dots';
                    }

                    $progressType = $this->getConfig()->getHideProgress() ? 'none' : $default;
                } elseif (!\in_array($progressType, $progressTypes, true)) {
                    throw new InvalidConfigurationException(sprintf(
                        'The progress type "%s" is not defined, supported are "%s".',
                        $progressType,
                        implode('", "', $progressTypes)
                    ));
                } elseif (\in_array($progressType, ['estimating', 'estimating-max', 'run-in'], true)) {
                    $message = 'Passing `estimating`, `estimating-max` or `run-in` is deprecated and will not be supported in 3.0, use `none` or `dots` instead.';

                    if (getenv('PHP_CS_FIXER_FUTURE_MODE')) {
                        throw new \InvalidArgumentException("{$message} This check was performed as `PHP_CS_FIXER_FUTURE_MODE` env var is set.");
                    }

                    @trigger_error($message, E_USER_DEPRECATED);
                }

                $this->progress = $progressType;
            } else {
                $this->progress = 'none';
            }
        }

        return $this->progress;
    }

    /**
     * @return ReporterInterface
     */
    public function getReporter()
    {
        if (null === $this->reporter) {
            $reporterFactory = ReporterFactory::create();
            $reporterFactory->registerBuiltInReporters();

            $format = $this->getFormat();

            try {
                $this->reporter = $reporterFactory->getReporter($format);
            } catch (\UnexpectedValueException $e) {
                $formats = $reporterFactory->getFormats();
                sort($formats);

                throw new InvalidConfigurationException(sprintf('The format "%s" is not defined, supported are "%s".', $format, implode('", "', $formats)));
            }
        }

        return $this->reporter;
    }

    /**
     * @return bool
     */
    public function getRiskyAllowed()
    {
        if (null === $this->allowRisky) {
            if (null === $this->options['allow-risky']) {
                $this->allowRisky = $this->getConfig()->getRiskyAllowed();
            } else {
                $this->allowRisky = $this->resolveOptionBooleanValue('allow-risky');
            }
        }

        return $this->allowRisky;
    }

    /**
     * Returns rules.
     *
     * @return array
     */
    public function getRules()
    {
        return $this->getRuleSet()->getRules();
    }

    /**
     * @return bool
     */
    public function getUsingCache()
    {
        if (null === $this->usingCache) {
            if (null === $this->options['using-cache']) {
                $this->usingCache = $this->getConfig()->getUsingCache();
            } else {
                $this->usingCache = $this->resolveOptionBooleanValue('using-cache');
            }
        }

        return $this->usingCache;
    }

    public function getFinder()
    {
        if (null === $this->finder) {
            $this->finder = $this->resolveFinder();
        }

        return $this->finder;
    }

    /**
     * Returns dry-run flag.
     *
     * @return bool
     */
    public function isDryRun()
    {
        if (null === $this->isDryRun) {
            if ($this->isStdIn()) {
                // Can't write to STDIN
                $this->isDryRun = true;
            } else {
                $this->isDryRun = $this->options['dry-run'];
            }
        }

        return $this->isDryRun;
    }

    public function shouldStopOnViolation()
    {
        return $this->options['stop-on-violation'];
    }

    /**
     * @return bool
     */
    public function configFinderIsOverridden()
    {
        if (null === $this->configFinderIsOverridden) {
            $this->resolveFinder();
        }

        return $this->configFinderIsOverridden;
    }

    /**
     * Compute file candidates for config file.
     *
     * @return string[]
     */
    private function computeConfigFiles()
    {
        $configFile = $this->options['config'];

        if (null !== $configFile) {
            if (false === file_exists($configFile) || false === is_readable($configFile)) {
                throw new InvalidConfigurationException(sprintf('Cannot read config file "%s".', $configFile));
            }

            return [$configFile];
        }

        $path = $this->getPath();

        if ($this->isStdIn() || 0 === \count($path)) {
            $configDir = $this->cwd;
        } elseif (1 < \count($path)) {
            throw new InvalidConfigurationException('For multiple paths config parameter is required.');
        } elseif (is_file($path[0]) && $dirName = pathinfo($path[0], PATHINFO_DIRNAME)) {
            $configDir = $dirName;
        } else {
            $configDir = $path[0];
        }

        $candidates = [
            $configDir.\DIRECTORY_SEPARATOR.'.php_cs',
            $configDir.\DIRECTORY_SEPARATOR.'.php_cs.dist',
        ];

        if ($configDir !== $this->cwd) {
            $candidates[] = $this->cwd.\DIRECTORY_SEPARATOR.'.php_cs';
            $candidates[] = $this->cwd.\DIRECTORY_SEPARATOR.'.php_cs.dist';
        }

        return $candidates;
    }

    /**
     * @return FixerFactory
     */
    private function createFixerFactory()
    {
        if (null === $this->fixerFactory) {
            $fixerFactory = new FixerFactory();
            $fixerFactory->registerBuiltInFixers();
            $fixerFactory->registerCustomFixers($this->getConfig()->getCustomFixers());

            $this->fixerFactory = $fixerFactory;
        }

        return $this->fixerFactory;
    }

    /**
     * @return string
     */
    private function getFormat()
    {
        if (null === $this->format) {
            $this->format = null === $this->options['format']
                ? $this->getConfig()->getFormat()
                : $this->options['format'];
        }

        return $this->format;
    }

    private function getRuleSet()
    {
        if (null === $this->ruleSet) {
            $rules = $this->parseRules();
            $this->validateRules($rules);

            $this->ruleSet = new RuleSet($rules);
        }

        return $this->ruleSet;
    }

    /**
     * @return bool
     */
    private function isStdIn()
    {
        if (null === $this->isStdIn) {
            $this->isStdIn = 1 === \count($this->options['path']) && '-' === $this->options['path'][0];
        }

        return $this->isStdIn;
    }

    /**
     * @param iterable $iterable
     *
     * @return \Traversable
     */
    private function iterableToTraversable($iterable)
    {
        return \is_array($iterable) ? new \ArrayIterator($iterable) : $iterable;
    }

    /**
     * Compute rules.
     *
     * @return array
     */
    private function parseRules()
    {
        if (null === $this->options['rules']) {
            return $this->getConfig()->getRules();
        }

        $rules = trim($this->options['rules']);
        if ('' === $rules) {
            throw new InvalidConfigurationException('Empty rules value is not allowed.');
        }

        if ('{' === $rules[0]) {
            $rules = json_decode($rules, true);
            if (JSON_ERROR_NONE !== json_last_error()) {
                throw new InvalidConfigurationException(sprintf('Invalid JSON rules input: "%s".', json_last_error_msg()));
            }

            return $rules;
        }

        $rules = [];

        foreach (explode(',', $this->options['rules']) as $rule) {
            $rule = trim($rule);
            if ('' === $rule) {
                throw new InvalidConfigurationException('Empty rule name is not allowed.');
            }

            if ('-' === $rule[0]) {
                $rules[substr($rule, 1)] = false;
            } else {
                $rules[$rule] = true;
            }
        }

        return $rules;
    }

    /**
     * @throws InvalidConfigurationException
     */
    private function validateRules(array $rules)
    {
        /**
         * Create a ruleset that contains all configured rules, even when they originally have been disabled.
         *
         * @see RuleSet::resolveSet()
         */
        $ruleSet = [];
        foreach ($rules as $key => $value) {
            if (\is_int($key)) {
                throw new InvalidConfigurationException(sprintf('Missing value for "%s" rule/set.', $value));
            }

            $ruleSet[$key] = true;
        }
        $ruleSet = new RuleSet($ruleSet);

        /** @var string[] $configuredFixers */
        $configuredFixers = array_keys($ruleSet->getRules());

        $fixers = $this->createFixerFactory()->getFixers();

        /** @var string[] $availableFixers */
        $availableFixers = array_map(static function (FixerInterface $fixer) {
            return $fixer->getName();
        }, $fixers);

        $unknownFixers = array_diff(
            $configuredFixers,
            $availableFixers
        );

        if (\count($unknownFixers)) {
            $matcher = new WordMatcher($availableFixers);

            $message = 'The rules contain unknown fixers: ';
            foreach ($unknownFixers as $unknownFixer) {
                $alternative = $matcher->match($unknownFixer);
                $message .= sprintf(
                    '"%s"%s, ',
                    $unknownFixer,
                    null === $alternative ? '' : ' (did you mean "'.$alternative.'"?)'
                );
            }

            throw new InvalidConfigurationException(substr($message, 0, -2).'.');
        }

        foreach ($fixers as $fixer) {
            $fixerName = $fixer->getName();
            if (isset($rules[$fixerName]) && $fixer instanceof DeprecatedFixerInterface) {
                $successors = $fixer->getSuccessorsNames();
                $messageEnd = [] === $successors
                    ? sprintf(' and will be removed in version %d.0.', Application::getMajorVersion())
                    : sprintf('. Use %s instead.', str_replace('`', '"', Utils::naturalLanguageJoinWithBackticks($successors)));

                $message = "Rule \"{$fixerName}\" is deprecated{$messageEnd}";

                if (getenv('PHP_CS_FIXER_FUTURE_MODE')) {
                    throw new \RuntimeException("{$message} This check was performed as `PHP_CS_FIXER_FUTURE_MODE` env var is set.");
                }

                @trigger_error($message, E_USER_DEPRECATED);
            }
        }
    }

    /**
     * Apply path on config instance.
     */
    private function resolveFinder()
    {
        $this->configFinderIsOverridden = false;

        if ($this->isStdIn()) {
            return new \ArrayIterator([new StdinFileInfo()]);
        }

        $modes = [self::PATH_MODE_OVERRIDE, self::PATH_MODE_INTERSECTION];

        if (!\in_array(
            $this->options['path-mode'],
            $modes,
            true
        )) {
            throw new InvalidConfigurationException(sprintf(
                'The path-mode "%s" is not defined, supported are "%s".',
                $this->options['path-mode'],
                implode('", "', $modes)
            ));
        }

        $isIntersectionPathMode = self::PATH_MODE_INTERSECTION === $this->options['path-mode'];

        $paths = array_filter(array_map(
            static function ($path) {
                return realpath($path);
            },
            $this->getPath()
        ));

        if (!\count($paths)) {
            if ($isIntersectionPathMode) {
                return new \ArrayIterator([]);
            }

            return $this->iterableToTraversable($this->getConfig()->getFinder());
        }

        $pathsByType = [
            'file' => [],
            'dir' => [],
        ];

        foreach ($paths as $path) {
            if (is_file($path)) {
                $pathsByType['file'][] = $path;
            } else {
                $pathsByType['dir'][] = $path.\DIRECTORY_SEPARATOR;
            }
        }

        $nestedFinder = null;
        $currentFinder = $this->iterableToTraversable($this->getConfig()->getFinder());

        try {
            $nestedFinder = $currentFinder instanceof \IteratorAggregate ? $currentFinder->getIterator() : $currentFinder;
        } catch (\Exception $e) {
        }

        if ($isIntersectionPathMode) {
            if (null === $nestedFinder) {
                throw new InvalidConfigurationException(
                    'Cannot create intersection with not-fully defined Finder in configuration file.'
                );
            }

            return new \CallbackFilterIterator(
                new \IteratorIterator($nestedFinder),
                static function (\SplFileInfo $current) use ($pathsByType) {
                    $currentRealPath = $current->getRealPath();

                    if (\in_array($currentRealPath, $pathsByType['file'], true)) {
                        return true;
                    }

                    foreach ($pathsByType['dir'] as $path) {
                        if (0 === strpos($currentRealPath, $path)) {
                            return true;
                        }
                    }

                    return false;
                }
            );
        }

        if (null !== $this->getConfigFile() && null !== $nestedFinder) {
            $this->configFinderIsOverridden = true;
        }

        if ($currentFinder instanceof SymfonyFinder && null === $nestedFinder) {
            // finder from configuration Symfony finder and it is not fully defined, we may fulfill it
            return $currentFinder->in($pathsByType['dir'])->append($pathsByType['file']);
        }

        return Finder::create()->in($pathsByType['dir'])->append($pathsByType['file']);
    }

    /**
     * Set option that will be resolved.
     *
     * @param string $name
     * @param mixed  $value
     */
    private function setOption($name, $value)
    {
        if (!\array_key_exists($name, $this->options)) {
            throw new InvalidConfigurationException(sprintf('Unknown option name: "%s".', $name));
        }

        $this->options[$name] = $value;
    }

    /**
     * @param string $optionName
     *
     * @return bool
     */
    private function resolveOptionBooleanValue($optionName)
    {
        $value = $this->options[$optionName];
        if (\is_bool($value)) {
            return $value;
        }

        if (!\is_string($value)) {
            throw new InvalidConfigurationException(sprintf('Expected boolean or string value for option "%s".', $optionName));
        }

        if ('yes' === $value) {
            return true;
        }

        if ('no' === $value) {
            return false;
        }

        $message = sprintf('Expected "yes" or "no" for option "%s", other values are deprecated and support will be removed in 3.0. Got "%s", this implicitly set the option to "false".', $optionName, $value);

        if (getenv('PHP_CS_FIXER_FUTURE_MODE')) {
            throw new InvalidConfigurationException("{$message} This check was performed as `PHP_CS_FIXER_FUTURE_MODE` env var is set.");
        }

        @trigger_error($message, E_USER_DEPRECATED);

        return false;
    }

    private static function separatedContextLessInclude($path)
    {
        return include $path;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Console\Command;

/**
 * @author SpacePossum
 *
 * @internal
 */
final class DescribeNameNotFoundException extends \InvalidArgumentException
{
    /**
     * @var string
     */
    private $name;

    /**
     * @var string 'rule'|'set'
     */
    private $type;

    /**
     * @param string $name
     * @param string $type
     */
    public function __construct($name, $type)
    {
        $this->name = $name;
        $this->type = $type;

        parent::__construct();
    }

    /**
     * @return string
     */
    public function getName()
    {
        return $this->name;
    }

    /**
     * @return string
     */
    public function getType()
    {
        return $this->type;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Console\Command;

use PhpCsFixer\Preg;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;

/**
 * @author Fabien Potencier <fabien@symfony.com>
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class ReadmeCommand extends Command
{
    protected static $defaultName = 'readme';

    /**
     * {@inheritdoc}
     */
    protected function configure()
    {
        $this->setDescription('Generates the README content, based on the fix command help.');
    }

    /**
     * {@inheritdoc}
     */
    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $header = <<<EOF
{$this->header('PHP Coding Standards Fixer', '=')}

The PHP Coding Standards Fixer (PHP CS Fixer) tool fixes your code to follow standards;
whether you want to follow PHP coding standards as defined in the PSR-1, PSR-2, etc.,
or other community driven ones like the Symfony one.
You can **also** define your (team's) style through configuration.

It can modernize your code (like converting the ``pow`` function to the ``**`` operator on PHP 5.6)
and (micro) optimize it.

If you are already using a linter to identify coding standards problems in your
code, you know that fixing them by hand is tedious, especially on large
projects. This tool does not only detect them, but also fixes them for you.

The PHP CS Fixer is maintained on GitHub at https://github.com/FriendsOfPHP/PHP-CS-Fixer.
Bug reports and ideas about new features are welcome there.

You can talk to us at https://gitter.im/PHP-CS-Fixer/Lobby about the project,
configuration, possible improvements, ideas and questions, please visit us!

{$this->header('Requirements', '-')}

PHP needs to be a minimum version of PHP 5.6.0.

{$this->header('Installation', '-')}

{$this->header('Locally', '~')}

Download the `php-cs-fixer.phar`_ file and store it somewhere on your computer.

{$this->header('Globally (manual)', '~')}

You can run these commands to easily access latest ``php-cs-fixer`` from anywhere on
your system:

.. code-block:: bash

    $ wget %download.url% -O php-cs-fixer

or with specified version:

.. code-block:: bash

    $ wget %download.version_url% -O php-cs-fixer

or with curl:

.. code-block:: bash

    $ curl -L %download.url% -o php-cs-fixer

then:

.. code-block:: bash

    $ sudo chmod a+x php-cs-fixer
    $ sudo mv php-cs-fixer /usr/local/bin/php-cs-fixer

Then, just run ``php-cs-fixer``.

{$this->header('Globally (Composer)', '~')}

To install PHP CS Fixer, `install Composer <https://getcomposer.org/download/>`_ and issue the following command:

.. code-block:: bash

    $ composer global require friendsofphp/php-cs-fixer

Then make sure you have the global Composer binaries directory in your ``PATH``. This directory is platform-dependent, see `Composer documentation <https://getcomposer.org/doc/03-cli.md#composer-home>`_ for details. Example for some Unix systems:

.. code-block:: bash

    $ export PATH="\$PATH:\$HOME/.composer/vendor/bin"

{$this->header('Globally (homebrew)', '~')}

.. code-block:: bash

    $ brew install php-cs-fixer

{$this->header('Locally (PHIVE)', '~')}

Install `PHIVE <https://phar.io>`_ and issue the following command:

.. code-block:: bash

    $ phive install php-cs-fixer # use `--global` for global install

{$this->header('Update', '-')}

{$this->header('Locally', '~')}

The ``self-update`` command tries to update ``php-cs-fixer`` itself:

.. code-block:: bash

    $ php php-cs-fixer.phar self-update

{$this->header('Globally (manual)', '~')}

You can update ``php-cs-fixer`` through this command:

.. code-block:: bash

    $ sudo php-cs-fixer self-update

{$this->header('Globally (Composer)', '~')}

You can update ``php-cs-fixer`` through this command:

.. code-block:: bash

    $ ./composer.phar global update friendsofphp/php-cs-fixer

{$this->header('Globally (homebrew)', '~')}

You can update ``php-cs-fixer`` through this command:

.. code-block:: bash

    $ brew upgrade php-cs-fixer

{$this->header('Locally (PHIVE)', '~')}

.. code-block:: bash

    $ phive update php-cs-fixer

{$this->header('Usage', '-')}

EOF;

        $footer = <<<EOF

{$this->header('Helpers', '-')}

Dedicated plugins exist for:

* `Atom`_
* `NetBeans`_
* `PhpStorm`_
* `Sublime Text`_
* `Vim`_
* `VS Code`_

{$this->header('Contribute', '-')}

The tool comes with quite a few built-in fixers, but everyone is more than
welcome to `contribute`_ more of them.

{$this->header('Fixers', '~')}

A *fixer* is a class that tries to fix one CS issue (a ``Fixer`` class must
implement ``FixerInterface``).

{$this->header('Configs', '~')}

A *config* knows about the CS rules and the files and directories that must be
scanned by the tool when run in the directory of your project. It is useful for
projects that follow a well-known directory structures (like for Symfony
projects for instance).

.. _php-cs-fixer.phar: %download.url%
.. _Atom:              https://github.com/Glavin001/atom-beautify
.. _NetBeans:          http://plugins.netbeans.org/plugin/49042/php-cs-fixer
.. _PhpStorm:          https://medium.com/@valeryan/how-to-configure-phpstorm-to-use-php-cs-fixer-1844991e521f
.. _Sublime Text:      https://github.com/benmatselby/sublime-phpcs
.. _Vim:               https://github.com/stephpy/vim-php-cs-fixer
.. _VS Code:           https://github.com/junstyle/vscode-php-cs-fixer
.. _contribute:        https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/master/CONTRIBUTING.md

EOF;

        $command = $this->getApplication()->get('fix');
        $help = $command->getHelp();
        $help = str_replace('%command.full_name%', 'php-cs-fixer.phar '.$command->getName(), $help);
        $help = str_replace('%command.name%', $command->getName(), $help);
        $help = Preg::replace('#</?(comment|info)>#', '``', $help);
        $help = Preg::replace('#`(``.+?``)`#', '$1', $help);
        $help = Preg::replace('#^(\s+)``(.+)``$#m', '$1$2', $help);
        $help = Preg::replace('#^ \* ``(.+)``(.*?\n)#m', "* **$1**$2\n", $help);
        $help = Preg::replace('#^   \\| #m', '  ', $help);
        $help = Preg::replace('#^   \\|#m', '', $help);
        $help = Preg::replace('#^(?=  \\*Risky rule: )#m', "\n", $help);
        $help = Preg::replace("#^(  Configuration options:\n)(  - )#m", "$1\n$2", $help);
        $help = Preg::replace("#^\n( +\\$ )#m", "\n.. code-block:: bash\n\n$1", $help);
        $help = Preg::replace("#^\n( +<\\?php)#m", "\n.. code-block:: php\n\n$1", $help);
        $help = Preg::replaceCallback(
            '#^\s*<\?(\w+).*?\?>#ms',
            static function ($matches) {
                $result = Preg::replace("#^\\.\\. code-block:: bash\n\n#m", '', $matches[0]);

                if ('php' !== $matches[1]) {
                    $result = Preg::replace("#<\\?{$matches[1]}\\s*#", '', $result);
                }

                return Preg::replace("#\n\n +\\?>#", '', $result);
            },
            $help
        );

        // Transform links
        // In the console output these have the form
        //      `description` (<url>http://...</url>)
        // Make to RST http://www.sphinx-doc.org/en/stable/rest.html#hyperlinks
        //      `description <http://...>`_

        $help = Preg::replaceCallback(
            '#`(.+)`\s?\(<url>(.+)<\/url>\)#',
            static function (array $matches) {
                return sprintf('`%s <%s>`_', str_replace('\\', '\\\\', $matches[1]), $matches[2]);
            },
            $help
        );

        $help = Preg::replace('#^                        #m', '  ', $help);
        $help = Preg::replace('#\*\* +\[#', '** [', $help);

        $downloadLatestUrl = sprintf('https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v%s/php-cs-fixer.phar', HelpCommand::getLatestReleaseVersionFromChangeLog());
        $downloadUrl = 'https://cs.symfony.com/download/php-cs-fixer-v2.phar';

        $header = str_replace('%download.version_url%', $downloadLatestUrl, $header);
        $header = str_replace('%download.url%', $downloadUrl, $header);
        $footer = str_replace('%download.version_url%', $downloadLatestUrl, $footer);
        $footer = str_replace('%download.url%', $downloadUrl, $footer);

        $output->write($header."\n".$help."\n".$footer);

        return 0;
    }

    private function header($name, $underline)
    {
        return $name."\n".str_repeat($underline, \strlen($name));
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Console\Command;

use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Console\Application;
use PhpCsFixer\Fixer\ConfigurableFixerInterface;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\Fixer\DeprecatedFixerInterface;
use PhpCsFixer\Fixer\FixerInterface;
use PhpCsFixer\FixerConfiguration\AliasedFixerOption;
use PhpCsFixer\FixerConfiguration\AllowedValueSubset;
use PhpCsFixer\FixerConfiguration\DeprecatedFixerOption;
use PhpCsFixer\FixerConfiguration\FixerOptionInterface;
use PhpCsFixer\FixerFactory;
use PhpCsFixer\Preg;
use PhpCsFixer\RuleSet;
use PhpCsFixer\Utils;
use Symfony\Component\Console\Command\HelpCommand as BaseHelpCommand;
use Symfony\Component\Console\Formatter\OutputFormatter;
use Symfony\Component\Console\Formatter\OutputFormatterStyle;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;

/**
 * @author Fabien Potencier <fabien@symfony.com>
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 * @author SpacePossum
 *
 * @internal
 */
final class HelpCommand extends BaseHelpCommand
{
    protected static $defaultName = 'help';

    /**
     * Returns help-copy suitable for console output.
     *
     * @return string
     */
    public static function getHelpCopy()
    {
        $template =
            <<<'EOF'
The <info>%command.name%</info> command tries to fix as much coding standards
problems as possible on a given file or files in a given directory and its subdirectories:

    <info>$ php %command.full_name% /path/to/dir</info>
    <info>$ php %command.full_name% /path/to/file</info>

By default <comment>--path-mode</comment> is set to ``override``, which means, that if you specify the path to a file or a directory via
command arguments, then the paths provided to a ``Finder`` in config file will be ignored. You can use <comment>--path-mode=intersection</comment>
to merge paths from the config file and from the argument:

    <info>$ php %command.full_name% --path-mode=intersection /path/to/dir</info>

The <comment>--format</comment> option for the output format. Supported formats are ``txt`` (default one), ``json``, ``xml``, ``checkstyle``, ``junit`` and ``gitlab``.

NOTE: the output for the following formats are generated in accordance with XML schemas

* ``junit`` follows the `JUnit xml schema from Jenkins </doc/junit-10.xsd>`_
* ``checkstyle`` follows the common `"checkstyle" xml schema </doc/checkstyle.xsd>`_

The <comment>--quiet</comment> Do not output any message.

The <comment>--verbose</comment> option will show the applied rules. When using the ``txt`` format it will also display progress notifications.

NOTE: if there is an error like "errors reported during linting after fixing", you can use this to be even more verbose for debugging purpose

* ``--verbose=0`` or no option: normal
* ``--verbose``, ``--verbose=1``, ``-v``: verbose
* ``--verbose=2``, ``-vv``: very verbose
* ``--verbose=3``, ``-vvv``: debug

The <comment>--rules</comment> option limits the rules to apply to the
project:

    <info>$ php %command.full_name% /path/to/project --rules=@PSR2</info>

By default the PSR1 and PSR2 rules are used.

The <comment>--rules</comment> option lets you choose the exact rules to
apply (the rule names must be separated by a comma):

    <info>$ php %command.full_name% /path/to/dir --rules=line_ending,full_opening_tag,indentation_type</info>

You can also exclude the rules you don't want by placing a dash in front of the rule name, if this is more convenient,
using <comment>-name_of_fixer</comment>:

    <info>$ php %command.full_name% /path/to/dir --rules=-full_opening_tag,-indentation_type</info>

When using combinations of exact and exclude rules, applying exact rules along with above excluded results:

    <info>$ php %command.full_name% /path/to/project --rules=@Symfony,-@PSR1,-blank_line_before_statement,strict_comparison</info>

Complete configuration for rules can be supplied using a ``json`` formatted string.

    <info>$ php %command.full_name% /path/to/project --rules='{"concat_space": {"spacing": "none"}}'</info>

The <comment>--dry-run</comment> flag will run the fixer without making changes to your files.

The <comment>--diff</comment> flag can be used to let the fixer output all the changes it makes.

The <comment>--diff-format</comment> option allows to specify in which format the fixer should output the changes it makes:

* <comment>udiff</comment>: unified diff format;
* <comment>sbd</comment>: Sebastianbergmann/diff format (default when using `--diff` without specifying `diff-format`).

The <comment>--allow-risky</comment> option (pass ``yes`` or ``no``) allows you to set whether risky rules may run. Default value is taken from config file.
A rule is considered risky if it could change code behaviour. By default no risky rules are run.

The <comment>--stop-on-violation</comment> flag stops the execution upon first file that needs to be fixed.

The <comment>--show-progress</comment> option allows you to choose the way process progress is rendered:

* <comment>none</comment>: disables progress output;
* <comment>run-in</comment>: [deprecated] simple single-line progress output;
* <comment>estimating</comment>: [deprecated] multiline progress output with number of files and percentage on each line. Note that with this option, the files list is evaluated before processing to get the total number of files and then kept in memory to avoid using the file iterator twice. This has an impact on memory usage so using this option is not recommended on very large projects;
* <comment>estimating-max</comment>: [deprecated] same as <comment>dots</comment>;
* <comment>dots</comment>: same as <comment>estimating</comment> but using all terminal columns instead of default 80.

If the option is not provided, it defaults to <comment>run-in</comment> unless a config file that disables output is used, in which case it defaults to <comment>none</comment>. This option has no effect if the verbosity of the command is less than <comment>verbose</comment>.

    <info>$ php %command.full_name% --verbose --show-progress=estimating</info>

The command can also read from standard input, in which case it won't
automatically fix anything:

    <info>$ cat foo.php | php %command.full_name% --diff -</info>

Finally, if you don't need BC kept on CLI level, you might use `PHP_CS_FIXER_FUTURE_MODE` to start using options that
would be default in next MAJOR release (unified differ, estimating, full-width progress indicator):

    <info>$ PHP_CS_FIXER_FUTURE_MODE=1 php %command.full_name% -v --diff</info>

Rules
-----

Use the following command to quickly understand what a rule will do to your code:

    <info>$ php php-cs-fixer.phar describe align_multiline_comment</info>

To visualize all the rules that belong to a ruleset:

    <info>$ php php-cs-fixer.phar describe @PSR2</info>

Choose from the list of available rules:

%%%FIXERS_DETAILS%%%

The <comment>--dry-run</comment> option displays the files that need to be
fixed but without actually modifying them:

    <info>$ php %command.full_name% /path/to/code --dry-run</info>

Config file
-----------

Instead of using command line options to customize the rule, you can save the
project configuration in a <comment>.php_cs.dist</comment> file in the root directory of your project.
The file must return an instance of `PhpCsFixer\ConfigInterface` (<url>%%%CONFIG_INTERFACE_URL%%%</url>)
which lets you configure the rules, the files and directories that
need to be analyzed. You may also create <comment>.php_cs</comment> file, which is
the local configuration that will be used instead of the project configuration. It
is a good practice to add that file into your <comment>.gitignore</comment> file.
With the <comment>--config</comment> option you can specify the path to the
<comment>.php_cs</comment> file.

The example below will add two rules to the default list of PSR2 set rules:

    <?php

    $finder = PhpCsFixer\Finder::create()
        ->exclude('somedir')
        ->notPath('src/Symfony/Component/Translation/Tests/fixtures/resources.php')
        ->in(__DIR__)
    ;

    return PhpCsFixer\Config::create()
        ->setRules([
            '@PSR2' => true,
            'strict_param' => true,
            'array_syntax' => ['syntax' => 'short'],
        ])
        ->setFinder($finder)
    ;

    ?>

**NOTE**: ``exclude`` will work only for directories, so if you need to exclude file, try ``notPath``.
Both ``exclude`` and ``notPath`` methods accept only relative paths to the ones defined with the ``in`` method.

See `Symfony\Finder` (<url>https://symfony.com/doc/current/components/finder.html</url>)
online documentation for other `Finder` methods.

You may also use an exclude list for the rules instead of the above shown include approach.
The following example shows how to use all ``Symfony`` rules but the ``full_opening_tag`` rule.

    <?php

    $finder = PhpCsFixer\Finder::create()
        ->exclude('somedir')
        ->in(__DIR__)
    ;

    return PhpCsFixer\Config::create()
        ->setRules([
            '@Symfony' => true,
            'full_opening_tag' => false,
        ])
        ->setFinder($finder)
    ;

    ?>

You may want to use non-linux whitespaces in your project. Then you need to
configure them in your config file.

    <?php

    return PhpCsFixer\Config::create()
        ->setIndent("\t")
        ->setLineEnding("\r\n")
    ;

    ?>

By using ``--using-cache`` option with ``yes`` or ``no`` you can set if the caching
mechanism should be used.

Caching
-------

The caching mechanism is enabled by default. This will speed up further runs by
fixing only files that were modified since the last run. The tool will fix all
files if the tool version has changed or the list of rules has changed.
Cache is supported only for tool downloaded as phar file or installed via
composer.

Cache can be disabled via ``--using-cache`` option or config file:

    <?php

    return PhpCsFixer\Config::create()
        ->setUsingCache(false)
    ;

    ?>

Cache file can be specified via ``--cache-file`` option or config file:

    <?php

    return PhpCsFixer\Config::create()
        ->setCacheFile(__DIR__.'/.php_cs.cache')
    ;

    ?>

Using PHP CS Fixer on CI
------------------------

Require ``friendsofphp/php-cs-fixer`` as a ``dev`` dependency:

    $ ./composer.phar require --dev friendsofphp/php-cs-fixer

Then, add the following command to your CI:

%%%CI_INTEGRATION%%%

Where ``$COMMIT_RANGE`` is your range of commits, e.g. ``$TRAVIS_COMMIT_RANGE`` or ``HEAD~..HEAD``.

Exit code
---------

Exit code is built using following bit flags:

*  0 - OK.
*  1 - General error (or PHP minimal requirement not matched).
*  4 - Some files have invalid syntax (only in dry-run mode).
*  8 - Some files need fixing (only in dry-run mode).
* 16 - Configuration error of the application.
* 32 - Configuration error of a Fixer.
* 64 - Exception raised within the application.

(Applies to exit code of the ``fix`` command only)
EOF
        ;

        return strtr($template, [
            '%%%CONFIG_INTERFACE_URL%%%' => sprintf(
                'https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/v%s/src/ConfigInterface.php',
                self::getLatestReleaseVersionFromChangeLog()
            ),
            '%%%CI_INTEGRATION%%%' => implode("\n", array_map(
                static function ($line) { return '    $ '.$line; },
                \array_slice(file(__DIR__.'/../../../ci-integration.sh', FILE_IGNORE_NEW_LINES), 3)
            )),
            '%%%FIXERS_DETAILS%%%' => self::getFixersHelp(),
        ]);
    }

    /**
     * @param mixed $value
     *
     * @return string
     */
    public static function toString($value)
    {
        if (\is_array($value)) {
            // Output modifications:
            // - remove new-lines
            // - combine multiple whitespaces
            // - switch array-syntax to short array-syntax
            // - remove whitespace at array opening
            // - remove trailing array comma and whitespace at array closing
            // - remove numeric array indexes
            static $replaces = [
                ['#\r|\n#', '#\s{1,}#', '#array\s*\((.*)\)#s', '#\[\s+#', '#,\s*\]#', '#\d+\s*=>\s*#'],
                ['', ' ', '[$1]', '[', ']', ''],
            ];

            $str = var_export($value, true);
            do {
                $strNew = Preg::replace(
                    $replaces[0],
                    $replaces[1],
                    $str
                );

                if ($strNew === $str) {
                    break;
                }

                $str = $strNew;
            } while (true);
        } else {
            $str = var_export($value, true);
        }

        return Preg::replace('/\bNULL\b/', 'null', $str);
    }

    /**
     * Returns the allowed values of the given option that can be converted to a string.
     *
     * @return null|array
     */
    public static function getDisplayableAllowedValues(FixerOptionInterface $option)
    {
        $allowed = $option->getAllowedValues();

        if (null !== $allowed) {
            $allowed = array_filter($allowed, static function ($value) {
                return !($value instanceof \Closure);
            });

            usort($allowed, static function ($valueA, $valueB) {
                if ($valueA instanceof AllowedValueSubset) {
                    return -1;
                }

                if ($valueB instanceof AllowedValueSubset) {
                    return 1;
                }

                return strcasecmp(
                    self::toString($valueA),
                    self::toString($valueB)
                );
            });

            if (0 === \count($allowed)) {
                $allowed = null;
            }
        }

        return $allowed;
    }

    /**
     * @throws \RuntimeException when failing to parse the change log file
     *
     * @return string
     */
    public static function getLatestReleaseVersionFromChangeLog()
    {
        static $version = null;

        if (null !== $version) {
            return $version;
        }

        $changelogFile = self::getChangeLogFile();
        if (null === $changelogFile) {
            $version = Application::VERSION;

            return $version;
        }

        $changelog = @file_get_contents($changelogFile);
        if (false === $changelog) {
            $error = error_get_last();

            throw new \RuntimeException(sprintf(
                'Failed to read content of the changelog file "%s".%s',
                $changelogFile,
                $error ? ' '.$error['message'] : ''
            ));
        }

        for ($i = Application::getMajorVersion(); $i > 0; --$i) {
            if (1 === Preg::match('/Changelog for v('.$i.'.\d+.\d+)/', $changelog, $matches)) {
                $version = $matches[1];

                break;
            }
        }

        if (null === $version) {
            throw new \RuntimeException(sprintf('Failed to parse changelog data of "%s".', $changelogFile));
        }

        return $version;
    }

    /**
     * {@inheritdoc}
     */
    protected function initialize(InputInterface $input, OutputInterface $output)
    {
        $output->getFormatter()->setStyle('url', new OutputFormatterStyle('blue'));
    }

    /**
     * @return null|string
     */
    private static function getChangeLogFile()
    {
        $changelogFile = __DIR__.'/../../../CHANGELOG.md';

        return is_file($changelogFile) ? $changelogFile : null;
    }

    /**
     * @return string
     */
    private static function getFixersHelp()
    {
        $help = '';
        $fixerFactory = new FixerFactory();
        /** @var AbstractFixer[] $fixers */
        $fixers = $fixerFactory->registerBuiltInFixers()->getFixers();

        // sort fixers by name
        usort(
            $fixers,
            static function (FixerInterface $a, FixerInterface $b) {
                return strcmp($a->getName(), $b->getName());
            }
        );

        $ruleSets = [];
        foreach (RuleSet::create()->getSetDefinitionNames() as $setName) {
            $ruleSets[$setName] = new RuleSet([$setName => true]);
        }

        $getSetsWithRule = static function ($rule) use ($ruleSets) {
            $sets = [];

            foreach ($ruleSets as $setName => $ruleSet) {
                if ($ruleSet->hasRule($rule)) {
                    $sets[] = $setName;
                }
            }

            return $sets;
        };

        $count = \count($fixers) - 1;
        foreach ($fixers as $i => $fixer) {
            $sets = $getSetsWithRule($fixer->getName());

            $description = $fixer->getDefinition()->getSummary();

            if ($fixer instanceof DeprecatedFixerInterface) {
                $successors = $fixer->getSuccessorsNames();
                $message = [] === $successors
                    ? 'will be removed on next major version'
                    : sprintf('use %s instead', Utils::naturalLanguageJoinWithBackticks($successors));
                $description .= sprintf(' DEPRECATED: %s.', $message);
            }

            $description = implode("\n   | ", self::wordwrap(
                Preg::replace('/(`.+?`)/', '<info>$1</info>', $description),
                72
            ));

            if (!empty($sets)) {
                $help .= sprintf(" * <comment>%s</comment> [%s]\n   | %s\n", $fixer->getName(), implode(', ', $sets), $description);
            } else {
                $help .= sprintf(" * <comment>%s</comment>\n   | %s\n", $fixer->getName(), $description);
            }

            if ($fixer->isRisky()) {
                $help .= sprintf(
                    "   | *Risky rule: %s.*\n",
                    Preg::replace(
                        '/(`.+?`)/',
                        '<info>$1</info>',
                        lcfirst(Preg::replace('/\.$/', '', $fixer->getDefinition()->getRiskyDescription()))
                    )
                );
            }

            if ($fixer instanceof ConfigurationDefinitionFixerInterface) {
                $configurationDefinition = $fixer->getConfigurationDefinition();
                $configurationDefinitionOptions = $configurationDefinition->getOptions();
                if (\count($configurationDefinitionOptions)) {
                    $help .= "   |\n   | Configuration options:\n";

                    usort(
                        $configurationDefinitionOptions,
                        static function (FixerOptionInterface $optionA, FixerOptionInterface $optionB) {
                            return strcmp($optionA->getName(), $optionB->getName());
                        }
                    );

                    foreach ($configurationDefinitionOptions as $option) {
                        $line = '<info>'.OutputFormatter::escape($option->getName()).'</info>';

                        $allowed = self::getDisplayableAllowedValues($option);
                        if (null !== $allowed) {
                            foreach ($allowed as &$value) {
                                if ($value instanceof AllowedValueSubset) {
                                    $value = 'a subset of <comment>'.self::toString($value->getAllowedValues()).'</comment>';
                                } else {
                                    $value = '<comment>'.self::toString($value).'</comment>';
                                }
                            }
                        } else {
                            $allowed = array_map(
                                static function ($type) {
                                    return '<comment>'.$type.'</comment>';
                                },
                                $option->getAllowedTypes()
                            );
                        }

                        if (null !== $allowed) {
                            $line .= ' ('.implode(', ', $allowed).')';
                        }

                        $line .= ': '.Preg::replace(
                            '/(`.+?`)/',
                            '<info>$1</info>',
                            lcfirst(Preg::replace('/\.$/', '', OutputFormatter::escape($option->getDescription())))
                        ).'; ';
                        if ($option->hasDefault()) {
                            $line .= 'defaults to <comment>'.self::toString($option->getDefault()).'</comment>';
                        } else {
                            $line .= 'required';
                        }

                        if ($option instanceof DeprecatedFixerOption) {
                            $line .= '. DEPRECATED: '.Preg::replace(
                                '/(`.+?`)/',
                                '<info>$1</info>',
                                lcfirst(Preg::replace('/\.$/', '', OutputFormatter::escape($option->getDeprecationMessage())))
                            );
                        }

                        if ($option instanceof AliasedFixerOption) {
                            $line .= '; DEPRECATED alias: <comment>'.$option->getAlias().'</comment>';
                        }

                        foreach (self::wordwrap($line, 72) as $index => $line) {
                            $help .= (0 === $index ? '   | - ' : '   |   ').$line."\n";
                        }
                    }
                }
            } elseif ($fixer instanceof ConfigurableFixerInterface) {
                $help .= "   | *Configurable rule.*\n";
            }

            if ($count !== $i) {
                $help .= "\n";
            }
        }

        // prevent "\</foo>" from being rendered as an escaped literal style tag
        return Preg::replace('#\\\\(</.*?>)#', '<<$1', $help);
    }

    /**
     * Wraps a string to the given number of characters, ignoring style tags.
     *
     * @param string $string
     * @param int    $width
     *
     * @return string[]
     */
    private static function wordwrap($string, $width)
    {
        $result = [];
        $currentLine = 0;
        $lineLength = 0;
        foreach (explode(' ', $string) as $word) {
            $wordLength = \strlen(Preg::replace('~</?(\w+)>~', '', $word));
            if (0 !== $lineLength) {
                ++$wordLength; // space before word
            }

            if ($lineLength + $wordLength > $width) {
                ++$currentLine;
                $lineLength = 0;
            }

            $result[$currentLine][] = $word;
            $lineLength += $wordLength;
        }

        return array_map(static function ($line) {
            return implode(' ', $line);
        }, $result);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Console\Command;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class FixCommandExitStatusCalculator
{
    // Exit status 1 is reserved for environment constraints not matched.
    const EXIT_STATUS_FLAG_HAS_INVALID_FILES = 4;
    const EXIT_STATUS_FLAG_HAS_CHANGED_FILES = 8;
    const EXIT_STATUS_FLAG_HAS_INVALID_CONFIG = 16;
    const EXIT_STATUS_FLAG_HAS_INVALID_FIXER_CONFIG = 32;
    const EXIT_STATUS_FLAG_EXCEPTION_IN_APP = 64;

    /**
     * @param bool $isDryRun
     * @param bool $hasChangedFiles
     * @param bool $hasInvalidErrors
     * @param bool $hasExceptionErrors
     * @param bool $hasLintErrorsAfterFixing
     *
     * @return int
     */
    public function calculate($isDryRun, $hasChangedFiles, $hasInvalidErrors, $hasExceptionErrors, $hasLintErrorsAfterFixing)
    {
        $exitStatus = 0;

        if ($isDryRun) {
            if ($hasChangedFiles) {
                $exitStatus |= self::EXIT_STATUS_FLAG_HAS_CHANGED_FILES;
            }

            if ($hasInvalidErrors) {
                $exitStatus |= self::EXIT_STATUS_FLAG_HAS_INVALID_FILES;
            }
        }

        if ($hasExceptionErrors || $hasLintErrorsAfterFixing) {
            $exitStatus |= self::EXIT_STATUS_FLAG_EXCEPTION_IN_APP;
        }

        return $exitStatus;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Console\Command;

use PhpCsFixer\Config;
use PhpCsFixer\ConfigInterface;
use PhpCsFixer\Console\ConfigurationResolver;
use PhpCsFixer\Console\Output\ErrorOutput;
use PhpCsFixer\Console\Output\NullOutput;
use PhpCsFixer\Console\Output\ProcessOutput;
use PhpCsFixer\Error\ErrorsManager;
use PhpCsFixer\Report\ReportSummary;
use PhpCsFixer\Runner\Runner;
use PhpCsFixer\ToolInfoInterface;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\ConsoleOutputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Terminal;
use Symfony\Component\EventDispatcher\EventDispatcher;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\Stopwatch\Stopwatch;

/**
 * @author Fabien Potencier <fabien@symfony.com>
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class FixCommand extends Command
{
    protected static $defaultName = 'fix';

    /**
     * @var EventDispatcherInterface
     */
    private $eventDispatcher;

    /**
     * @var ErrorsManager
     */
    private $errorsManager;

    /**
     * @var Stopwatch
     */
    private $stopwatch;

    /**
     * @var ConfigInterface
     */
    private $defaultConfig;

    /**
     * @var ToolInfoInterface
     */
    private $toolInfo;

    public function __construct(ToolInfoInterface $toolInfo)
    {
        parent::__construct();

        $this->defaultConfig = new Config();
        $this->errorsManager = new ErrorsManager();
        $this->eventDispatcher = new EventDispatcher();
        $this->stopwatch = new Stopwatch();
        $this->toolInfo = $toolInfo;
    }

    /**
     * {@inheritdoc}
     *
     * Override here to only generate the help copy when used.
     */
    public function getHelp()
    {
        return HelpCommand::getHelpCopy();
    }

    /**
     * {@inheritdoc}
     */
    protected function configure()
    {
        $this
            ->setDefinition(
                [
                    new InputArgument('path', InputArgument::IS_ARRAY, 'The path.'),
                    new InputOption('path-mode', '', InputOption::VALUE_REQUIRED, 'Specify path mode (can be override or intersection).', 'override'),
                    new InputOption('allow-risky', '', InputOption::VALUE_REQUIRED, 'Are risky fixers allowed (can be yes or no).'),
                    new InputOption('config', '', InputOption::VALUE_REQUIRED, 'The path to a .php_cs file.'),
                    new InputOption('dry-run', '', InputOption::VALUE_NONE, 'Only shows which files would have been modified.'),
                    new InputOption('rules', '', InputOption::VALUE_REQUIRED, 'The rules.'),
                    new InputOption('using-cache', '', InputOption::VALUE_REQUIRED, 'Does cache should be used (can be yes or no).'),
                    new InputOption('cache-file', '', InputOption::VALUE_REQUIRED, 'The path to the cache file.'),
                    new InputOption('diff', '', InputOption::VALUE_NONE, 'Also produce diff for each file.'),
                    new InputOption('diff-format', '', InputOption::VALUE_REQUIRED, 'Specify diff format.'),
                    new InputOption('format', '', InputOption::VALUE_REQUIRED, 'To output results in other formats.'),
                    new InputOption('stop-on-violation', '', InputOption::VALUE_NONE, 'Stop execution on first violation.'),
                    new InputOption('show-progress', '', InputOption::VALUE_REQUIRED, 'Type of progress indicator (none, run-in, estimating, estimating-max or dots).'),
                ]
            )
            ->setDescription('Fixes a directory or a file.')
        ;
    }

    /**
     * {@inheritdoc}
     */
    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $verbosity = $output->getVerbosity();

        $passedConfig = $input->getOption('config');
        $passedRules = $input->getOption('rules');

        $resolver = new ConfigurationResolver(
            $this->defaultConfig,
            [
                'allow-risky' => $input->getOption('allow-risky'),
                'config' => $passedConfig,
                'dry-run' => $input->getOption('dry-run'),
                'rules' => $passedRules,
                'path' => $input->getArgument('path'),
                'path-mode' => $input->getOption('path-mode'),
                'using-cache' => $input->getOption('using-cache'),
                'cache-file' => $input->getOption('cache-file'),
                'format' => $input->getOption('format'),
                'diff' => $input->getOption('diff'),
                'diff-format' => $input->getOption('diff-format'),
                'stop-on-violation' => $input->getOption('stop-on-violation'),
                'verbosity' => $verbosity,
                'show-progress' => $input->getOption('show-progress'),
            ],
            getcwd(),
            $this->toolInfo
        );

        $reporter = $resolver->getReporter();

        $stdErr = $output instanceof ConsoleOutputInterface
            ? $output->getErrorOutput()
            : ('txt' === $reporter->getFormat() ? $output : null)
        ;

        if (null !== $stdErr) {
            if (null !== $passedConfig && null !== $passedRules) {
                if (getenv('PHP_CS_FIXER_FUTURE_MODE')) {
                    throw new \RuntimeException('Passing both `config` and `rules` options is not possible. This check was performed as `PHP_CS_FIXER_FUTURE_MODE` env var is set.');
                }

                $stdErr->writeln([
                    sprintf($stdErr->isDecorated() ? '<bg=yellow;fg=black;>%s</>' : '%s', 'When passing both "--config" and "--rules" the rules within the configuration file are not used.'),
                    sprintf($stdErr->isDecorated() ? '<bg=yellow;fg=black;>%s</>' : '%s', 'Passing both options is deprecated; version v3.0 PHP-CS-Fixer will exit with a configuration error code.'),
                ]);
            }

            $configFile = $resolver->getConfigFile();
            $stdErr->writeln(sprintf('Loaded config <comment>%s</comment>%s.', $resolver->getConfig()->getName(), null === $configFile ? '' : ' from "'.$configFile.'"'));

            if ($resolver->getUsingCache()) {
                $cacheFile = $resolver->getCacheFile();
                if (is_file($cacheFile)) {
                    $stdErr->writeln(sprintf('Using cache file "%s".', $cacheFile));
                }
            }
        }

        $progressType = $resolver->getProgress();
        $finder = $resolver->getFinder();

        if (null !== $stdErr && $resolver->configFinderIsOverridden()) {
            $stdErr->writeln(
                sprintf($stdErr->isDecorated() ? '<bg=yellow;fg=black;>%s</>' : '%s', 'Paths from configuration file have been overridden by paths provided as command arguments.')
            );
        }

        // @TODO 3.0 remove `run-in` and `estimating`
        if ('none' === $progressType || null === $stdErr) {
            $progressOutput = new NullOutput();
        } elseif ('run-in' === $progressType) {
            $progressOutput = new ProcessOutput($stdErr, $this->eventDispatcher, null, null);
        } else {
            $finder = new \ArrayIterator(iterator_to_array($finder));
            $progressOutput = new ProcessOutput(
                $stdErr,
                $this->eventDispatcher,
                'estimating' !== $progressType ? (new Terminal())->getWidth() : null,
                \count($finder)
            );
        }

        $runner = new Runner(
            $finder,
            $resolver->getFixers(),
            $resolver->getDiffer(),
            'none' !== $progressType ? $this->eventDispatcher : null,
            $this->errorsManager,
            $resolver->getLinter(),
            $resolver->isDryRun(),
            $resolver->getCacheManager(),
            $resolver->getDirectory(),
            $resolver->shouldStopOnViolation()
        );

        $this->stopwatch->start('fixFiles');
        $changed = $runner->fix();
        $this->stopwatch->stop('fixFiles');

        $progressOutput->printLegend();

        $fixEvent = $this->stopwatch->getEvent('fixFiles');

        $reportSummary = new ReportSummary(
            $changed,
            $fixEvent->getDuration(),
            $fixEvent->getMemory(),
            OutputInterface::VERBOSITY_VERBOSE <= $output->getVerbosity(),
            $resolver->isDryRun(),
            $output->isDecorated()
        );

        $output->isDecorated()
            ? $output->write($reporter->generate($reportSummary))
            : $output->write($reporter->generate($reportSummary), false, OutputInterface::OUTPUT_RAW)
        ;

        $invalidErrors = $this->errorsManager->getInvalidErrors();
        $exceptionErrors = $this->errorsManager->getExceptionErrors();
        $lintErrors = $this->errorsManager->getLintErrors();

        if (null !== $stdErr) {
            $errorOutput = new ErrorOutput($stdErr);

            if (\count($invalidErrors) > 0) {
                $errorOutput->listErrors('linting before fixing', $invalidErrors);
            }

            if (\count($exceptionErrors) > 0) {
                $errorOutput->listErrors('fixing', $exceptionErrors);
            }

            if (\count($lintErrors) > 0) {
                $errorOutput->listErrors('linting after fixing', $lintErrors);
            }
        }

        $exitStatusCalculator = new FixCommandExitStatusCalculator();

        return $exitStatusCalculator->calculate(
            $resolver->isDryRun(),
            \count($changed) > 0,
            \count($invalidErrors) > 0,
            \count($exceptionErrors) > 0,
            \count($lintErrors) > 0
        );
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Console\Command;

use PhpCsFixer\Console\SelfUpdate\NewVersionCheckerInterface;
use PhpCsFixer\PharCheckerInterface;
use PhpCsFixer\Preg;
use PhpCsFixer\ToolInfoInterface;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;

/**
 * @author Igor Wiedler <igor@wiedler.ch>
 * @author Stephane PY <py.stephane1@gmail.com>
 * @author Grégoire Pineau <lyrixx@lyrixx.info>
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 * @author SpacePossum
 *
 * @internal
 */
final class SelfUpdateCommand extends Command
{
    protected static $defaultName = 'self-update';

    /**
     * @var NewVersionCheckerInterface
     */
    private $versionChecker;

    /**
     * @var ToolInfoInterface
     */
    private $toolInfo;

    /**
     * @var PharCheckerInterface
     */
    private $pharChecker;

    public function __construct(
        NewVersionCheckerInterface $versionChecker,
        ToolInfoInterface $toolInfo,
        PharCheckerInterface $pharChecker
    ) {
        parent::__construct();

        $this->versionChecker = $versionChecker;
        $this->toolInfo = $toolInfo;
        $this->pharChecker = $pharChecker;
    }

    /**
     * {@inheritdoc}
     */
    protected function configure()
    {
        $this
            ->setAliases(['selfupdate'])
            ->setDefinition(
                [
                    new InputOption('--force', '-f', InputOption::VALUE_NONE, 'Force update to next major version if available.'),
                ]
            )
            ->setDescription('Update php-cs-fixer.phar to the latest stable version.')
            ->setHelp(
                <<<'EOT'
The <info>%command.name%</info> command replace your php-cs-fixer.phar by the
latest version released on:
<comment>https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases</comment>

<info>$ php php-cs-fixer.phar %command.name%</info>

EOT
            )
        ;
    }

    /**
     * {@inheritdoc}
     */
    protected function execute(InputInterface $input, OutputInterface $output)
    {
        if (!$this->toolInfo->isInstalledAsPhar()) {
            $output->writeln('<error>Self-update is available only for PHAR version.</error>');

            return 1;
        }

        $currentVersion = $this->getApplication()->getVersion();
        Preg::match('/^v?(?<major>\d+)\./', $currentVersion, $matches);
        $currentMajor = (int) $matches['major'];

        try {
            $latestVersion = $this->versionChecker->getLatestVersion();
            $latestVersionOfCurrentMajor = $this->versionChecker->getLatestVersionOfMajor($currentMajor);
        } catch (\Exception $exception) {
            $output->writeln(sprintf(
                '<error>Unable to determine newest version: %s</error>',
                $exception->getMessage()
            ));

            return 1;
        }

        if (1 !== $this->versionChecker->compareVersions($latestVersion, $currentVersion)) {
            $output->writeln('<info>php-cs-fixer is already up to date.</info>');

            return 0;
        }

        $remoteTag = $latestVersion;

        if (
            0 !== $this->versionChecker->compareVersions($latestVersionOfCurrentMajor, $latestVersion)
            && true !== $input->getOption('force')
        ) {
            $output->writeln(sprintf('<info>A new major version of php-cs-fixer is available</info> (<comment>%s</comment>)', $latestVersion));
            $output->writeln(sprintf('<info>Before upgrading please read</info> https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/%s/UPGRADE.md', $latestVersion));
            $output->writeln('<info>If you are ready to upgrade run this command with</info> <comment>-f</comment>');
            $output->writeln('<info>Checking for new minor/patch version...</info>');

            if (1 !== $this->versionChecker->compareVersions($latestVersionOfCurrentMajor, $currentVersion)) {
                $output->writeln('<info>No minor update for php-cs-fixer.</info>');

                return 0;
            }

            $remoteTag = $latestVersionOfCurrentMajor;
        }

        $localFilename = realpath($_SERVER['argv'][0]) ?: $_SERVER['argv'][0];

        if (!is_writable($localFilename)) {
            $output->writeln(sprintf('<error>No permission to update %s file.</error>', $localFilename));

            return 1;
        }

        $tempFilename = \dirname($localFilename).'/'.basename($localFilename, '.phar').'-tmp.phar';
        $remoteFilename = $this->toolInfo->getPharDownloadUri($remoteTag);

        if (false === @copy($remoteFilename, $tempFilename)) {
            $output->writeln(sprintf('<error>Unable to download new version %s from the server.</error>', $remoteTag));

            return 1;
        }

        chmod($tempFilename, 0777 & ~umask());

        $pharInvalidityReason = $this->pharChecker->checkFileValidity($tempFilename);
        if (null !== $pharInvalidityReason) {
            unlink($tempFilename);
            $output->writeln(sprintf('<error>The download of %s is corrupt (%s).</error>', $remoteTag, $pharInvalidityReason));
            $output->writeln('<error>Please re-run the self-update command to try again.</error>');

            return 1;
        }

        rename($tempFilename, $localFilename);

        $output->writeln(sprintf('<info>php-cs-fixer updated</info> (<comment>%s</comment>)', $remoteTag));

        return 0;
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer\Console\Command;

use PhpCsFixer\Differ\DiffConsoleFormatter;
use PhpCsFixer\Differ\FullDiffer;
use PhpCsFixer\Fixer\ConfigurableFixerInterface;
use PhpCsFixer\Fixer\ConfigurationDefinitionFixerInterface;
use PhpCsFixer\Fixer\DefinedFixerInterface;
use PhpCsFixer\Fixer\DeprecatedFixerInterface;
use PhpCsFixer\Fixer\FixerInterface;
use PhpCsFixer\FixerConfiguration\AliasedFixerOption;
use PhpCsFixer\FixerConfiguration\AllowedValueSubset;
use PhpCsFixer\FixerConfiguration\DeprecatedFixerOption;
use PhpCsFixer\FixerDefinition\CodeSampleInterface;
use PhpCsFixer\FixerDefinition\FileSpecificCodeSampleInterface;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\FixerDefinition\VersionSpecificCodeSampleInterface;
use PhpCsFixer\FixerFactory;
use PhpCsFixer\Preg;
use PhpCsFixer\RuleSet;
use PhpCsFixer\StdinFileInfo;
use PhpCsFixer\Tokenizer\Tokens;
use PhpCsFixer\Utils;
use PhpCsFixer\WordMatcher;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Formatter\OutputFormatter;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;

/**
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 * @author SpacePossum
 *
 * @internal
 */
final class DescribeCommand extends Command
{
    protected static $defaultName = 'describe';

    /**
     * @var string[]
     */
    private $setNames;

    /**
     * @var FixerFactory
     */
    private $fixerFactory;

    /**
     * @var array<string, FixerInterface>
     */
    private $fixers;

    public function __construct(FixerFactory $fixerFactory = null)
    {
        parent::__construct();

        if (null === $fixerFactory) {
            $fixerFactory = new FixerFactory();
            $fixerFactory->registerBuiltInFixers();
        }

        $this->fixerFactory = $fixerFactory;
    }

    /**
     * {@inheritdoc}
     */
    protected function configure()
    {
        $this
            ->setDefinition(
                [
                    new InputArgument('name', InputArgument::REQUIRED, 'Name of rule / set.'),
                ]
            )
            ->setDescription('Describe rule / ruleset.')
        ;
    }

    /**
     * {@inheritdoc}
     */
    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $name = $input->getArgument('name');

        try {
            if ('@' === $name[0]) {
                $this->describeSet($output, $name);

                return 0;
            }

            $this->describeRule($output, $name);
        } catch (DescribeNameNotFoundException $e) {
            $matcher = new WordMatcher(
                'set' === $e->getType() ? $this->getSetNames() : array_keys($this->getFixers())
            );

            $alternative = $matcher->match($name);

            $this->describeList($output, $e->getType());

            throw new \InvalidArgumentException(sprintf(
                '%s "%s" not found.%s',
                ucfirst($e->getType()),
                $name,
                null === $alternative ? '' : ' Did you mean "'.$alternative.'"?'
            ));
        }

        return 0;
    }

    /**
     * @param string $name
     */
    private function describeRule(OutputInterface $output, $name)
    {
        $fixers = $this->getFixers();

        if (!isset($fixers[$name])) {
            throw new DescribeNameNotFoundException($name, 'rule');
        }

        /** @var FixerInterface $fixer */
        $fixer = $fixers[$name];
        if ($fixer instanceof DefinedFixerInterface) {
            $definition = $fixer->getDefinition();
        } else {
            $definition = new FixerDefinition('Description is not available.', []);
        }

        $description = $definition->getSummary();
        if ($fixer instanceof DeprecatedFixerInterface) {
            $successors = $fixer->getSuccessorsNames();
            $message = [] === $successors
                ? 'will be removed on next major version'
                : sprintf('use %s instead', Utils::naturalLanguageJoinWithBackticks($successors));
            $message = Preg::replace('/(`.+?`)/', '<info>$1</info>', $message);
            $description .= sprintf(' <error>DEPRECATED</error>: %s.', $message);
        }

        $output->writeln(sprintf('<info>Description of</info> %s <info>rule</info>.', $name));
        if ($output->getVerbosity() >= OutputInterface::VERBOSITY_VERBOSE) {
            $output->writeln(sprintf('Fixer class: <comment>%s</comment>.', \get_class($fixer)));
        }

        $output->writeln($description);
        if ($definition->getDescription()) {
            $output->writeln($definition->getDescription());
        }
        $output->writeln('');

        if ($fixer->isRisky()) {
            $output->writeln('<error>Fixer applying this rule is risky.</error>');

            if ($definition->getRiskyDescription()) {
                $output->writeln($definition->getRiskyDescription());
            }

            $output->writeln('');
        }

        if ($fixer instanceof ConfigurationDefinitionFixerInterface) {
            $configurationDefinition = $fixer->getConfigurationDefinition();
            $options = $configurationDefinition->getOptions();

            $output->writeln(sprintf('Fixer is configurable using following option%s:', 1 === \count($options) ? '' : 's'));

            foreach ($options as $option) {
                $line = '* <info>'.OutputFormatter::escape($option->getName()).'</info>';

                $allowed = HelpCommand::getDisplayableAllowedValues($option);
                if (null !== $allowed) {
                    foreach ($allowed as &$value) {
                        if ($value instanceof AllowedValueSubset) {
                            $value = 'a subset of <comment>'.HelpCommand::toString($value->getAllowedValues()).'</comment>';
                        } else {
                            $value = '<comment>'.HelpCommand::toString($value).'</comment>';
                        }
                    }
                } else {
                    $allowed = array_map(
                        static function ($type) {
                            return '<comment>'.$type.'</comment>';
                        },
                        $option->getAllowedTypes()
                    );
                }

                if (null !== $allowed) {
                    $line .= ' ('.implode(', ', $allowed).')';
                }

                $description = Preg::replace('/(`.+?`)/', '<info>$1</info>', OutputFormatter::escape($option->getDescription()));
                $line .= ': '.lcfirst(Preg::replace('/\.$/', '', $description)).'; ';
                if ($option->hasDefault()) {
                    $line .= sprintf(
                        'defaults to <comment>%s</comment>',
                        HelpCommand::toString($option->getDefault())
                    );
                } else {
                    $line .= '<comment>required</comment>';
                }

                if ($option instanceof DeprecatedFixerOption) {
                    $line .= '. <error>DEPRECATED</error>: '.Preg::replace(
                        '/(`.+?`)/',
                        '<info>$1</info>',
                        OutputFormatter::escape(lcfirst($option->getDeprecationMessage()))
                    );
                }
                if ($option instanceof AliasedFixerOption) {
                    $line .= '; <error>DEPRECATED</error> alias: <comment>'.$option->getAlias().'</comment>';
                }

                $output->writeln($line);
            }

            $output->writeln('');
        } elseif ($fixer instanceof ConfigurableFixerInterface) {
            $output->writeln('<comment>Fixer is configurable.</comment>');

            if ($definition->getConfigurationDescription()) {
                $output->writeln($definition->getConfigurationDescription());
            }

            if ($definition->getDefaultConfiguration()) {
                $output->writeln(sprintf('Default configuration: <comment>%s</comment>.', HelpCommand::toString($definition->getDefaultConfiguration())));
            }

            $output->writeln('');
        }

        /** @var CodeSampleInterface[] $codeSamples */
        $codeSamples = array_filter($definition->getCodeSamples(), static function (CodeSampleInterface $codeSample) {
            if ($codeSample instanceof VersionSpecificCodeSampleInterface) {
                return $codeSample->isSuitableFor(\PHP_VERSION_ID);
            }

            return true;
        });

        if (!\count($codeSamples)) {
            $output->writeln([
                'Fixing examples can not be demonstrated on the current PHP version.',
                '',
            ]);
        } else {
            $output->writeln('Fixing examples:');

            $differ = new FullDiffer();
            $diffFormatter = new DiffConsoleFormatter(
                $output->isDecorated(),
                sprintf(
                    '<comment>   ---------- begin diff ----------</comment>%s%%s%s<comment>   ----------- end diff -----------</comment>',
                    PHP_EOL,
                    PHP_EOL
                )
            );

            foreach ($codeSamples as $index => $codeSample) {
                $old = $codeSample->getCode();
                $tokens = Tokens::fromCode($old);

                $configuration = $codeSample->getConfiguration();

                if ($fixer instanceof ConfigurableFixerInterface) {
                    $fixer->configure(null === $configuration ? [] : $configuration);
                }

                $file = $codeSample instanceof FileSpecificCodeSampleInterface
                    ? $codeSample->getSplFileInfo()
                    : new StdinFileInfo();

                $fixer->fix($file, $tokens);

                $diff = $differ->diff($old, $tokens->generateCode());

                if ($fixer instanceof ConfigurableFixerInterface) {
                    if (null === $configuration) {
                        $output->writeln(sprintf(' * Example #%d. Fixing with the <comment>default</comment> configuration.', $index + 1));
                    } else {
                        $output->writeln(sprintf(' * Example #%d. Fixing with configuration: <comment>%s</comment>.', $index + 1, HelpCommand::toString($codeSample->getConfiguration())));
                    }
                } else {
                    $output->writeln(sprintf(' * Example #%d.', $index + 1));
                }

                $output->writeln($diffFormatter->format($diff, '   %s'));
                $output->writeln('');
            }
        }
    }

    /**
     * @param string $name
     */
    private function describeSet(OutputInterface $output, $name)
    {
        if (!\in_array($name, $this->getSetNames(), true)) {
            throw new DescribeNameNotFoundException($name, 'set');
        }

        $ruleSet = new RuleSet([$name => true]);
        $rules = $ruleSet->getRules();
        ksort($rules);

        $fixers = $this->getFixers();

        $output->writeln(sprintf('<info>Description of</info> %s <info>set.</info>', $name));
        $output->writeln('');

        $help = '';

        foreach ($rules as $rule => $config) {
            $fixer = $fixers[$rule];

            if (!$fixer instanceof DefinedFixerInterface) {
                throw new \RuntimeException(sprintf(
                    'Cannot describe rule %s, the fixer does not implement %s',
                    $rule,
                    DefinedFixerInterface::class
                ));
            }

            $definition = $fixer->getDefinition();
            $help .= sprintf(
                " * <info>%s</info>%s\n   | %s\n%s\n",
                $rule,
                $fixer->isRisky() ? ' <error>risky</error>' : '',
                $definition->getSummary(),
                true !== $config ? sprintf("   <comment>| Configuration: %s</comment>\n", HelpCommand::toString($config)) : ''
            );
        }

        $output->write($help);
    }

    /**
     * @return array<string, FixerInterface>
     */
    private function getFixers()
    {
        if (null !== $this->fixers) {
            return $this->fixers;
        }

        $fixers = [];
        foreach ($this->fixerFactory->getFixers() as $fixer) {
            $fixers[$fixer->getName()] = $fixer;
        }

        $this->fixers = $fixers;
        ksort($this->fixers);

        return $this->fixers;
    }

    /**
     * @return string[]
     */
    private function getSetNames()
    {
        if (null !== $this->setNames) {
            return $this->setNames;
        }

        $set = new RuleSet();
        $this->setNames = $set->getSetDefinitionNames();
        sort($this->setNames);

        return $this->setNames;
    }

    /**
     * @param string $type 'rule'|'set'
     */
    private function describeList(OutputInterface $output, $type)
    {
        if ($output->getVerbosity() >= OutputInterface::VERBOSITY_VERY_VERBOSE) {
            $describe = [
                'set' => $this->getSetNames(),
                'rules' => $this->getFixers(),
            ];
        } elseif ($output->getVerbosity() >= OutputInterface::VERBOSITY_VERBOSE) {
            $describe = 'set' === $type ? ['set' => $this->getSetNames()] : ['rules' => $this->getFixers()];
        } else {
            return;
        }

        /** @var string[] $items */
        foreach ($describe as $list => $items) {
            $output->writeln(sprintf('<comment>Defined %s:</comment>', $list));
            foreach ($items as $name => $item) {
                $output->writeln(sprintf('* <info>%s</info>', \is_string($name) ? $name : $item));
            }
        }
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer;

/**
 * Handles files removal with possibility to remove them on shutdown.
 *
 * @author Adam Klvač <adam@klva.cz>
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class FileRemoval
{
    /**
     * List of observed files to be removed.
     *
     * @var array
     */
    private $files = [];

    public function __construct()
    {
        register_shutdown_function([$this, 'clean']);
    }

    public function __destruct()
    {
        $this->clean();
    }

    /**
     * Adds a file to be removed.
     *
     * @param string $path
     */
    public function observe($path)
    {
        $this->files[$path] = true;
    }

    /**
     * Removes a file from shutdown removal.
     *
     * @param string $path
     */
    public function delete($path)
    {
        if (isset($this->files[$path])) {
            unset($this->files[$path]);
        }
        $this->unlink($path);
    }

    /**
     * Removes attached files.
     */
    public function clean()
    {
        foreach ($this->files as $file => $value) {
            $this->unlink($file);
        }
        $this->files = [];
    }

    private function unlink($path)
    {
        @unlink($path);
    }
}
<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace PhpCsFixer;

/**
 * @internal
 */
interface PharCheckerInterface
{
    /**
     * @param string $filename
     *
     * @return null|string the invalidity reason if any, null otherwise
     */
    public function checkFileValidity($filename);
}
<?php

namespace ProgressBar\Test;

use ProgressBar\Manager;

class ManagerTest extends \PHPUnit_Framework_TestCase
{
    /**
     * As Manager prints on stdout, we use output buffering for the tests
     */
	public function setUp()
    {
    	ob_start();
    }
    
    /**
     * Clean output buffer after each test
     */
    public function tearDown()
    {
    	ob_clean();
    }
    
    /**
     * Test format getter and setter
     */
	public function testManagerFormat()
    {
    	$manager = new Manager(0, 10);
    	$this->assertEquals("%current%/%max% [%bar%] %percent%% %eta%", $manager->getFormat());
    	$manager->setFormat('%current%/%max% [%bar%] %percent%%');
    	$this->assertEquals("%current%/%max% [%bar%] %percent%%", $manager->getFormat());
    }
    
    /**
     * Tests update
     * When there is still work to do : print the bar with \r
     * When it s finished : print the bar with \n
     */
    public function testUpdate()
    {
    	$manager = new Manager(0, 10);
	    $manager->update(3);
	    $this->assertEquals("3/10 [===============>------------------------------------] 30.00% 00:00:00    \r", ob_get_contents());
	    ob_clean();
	    $manager->update(10);
	    $this->assertEquals("10/10 [==================================================>] 100.00% 00:00:00   \n", ob_get_contents());
    }

    /**
     * Tests the situation when the value given to progressbar is greater than the manager size.
     *
     * @expectedException \InvalidArgumentException
     */
    public function testProgressOverflow()
    {
        $manager = new Manager(0, 10);
        $manager->update(11);
    }

    /**
     * Tests the advance method.
     * Advancing the progress bar should make one step further.
     */
    public function testAdvance()
    {
        $manager = new Manager(0, 10);
        $manager->advance();
        $this->assertEquals("1/10 [=====>----------------------------------------------] 10.00% 00:00:00    \r", ob_get_contents());
        $manager->update(3);
        ob_clean();
        $manager->advance();
        $this->assertEquals("4/10 [====================>-------------------------------] 40.00% 00:00:00    \r", ob_get_contents());
    }

    /**
     * Tests that a lower increment throws an InvalidArgumentException
     * 
     * @expectedException \InvalidArgumentException
     */
    public function testLowerIncrementThrowsException()
    {
    	$manager = new Manager(0, 10);
    	$manager->update(3);
    	$manager->update(2);
    }

    /**
     * Tests that a non integer increment throws an InvalidArgumentException
     * 
     * @expectedException \InvalidArgumentException
     */
    public function testNonIntegerIncrementThrowsException()
    {
    	$manager = new Manager(0, 10);
    	$manager->update(3.1415926);
    }

    /**
     * Tests the use of custom replacements rules
     */
    public function testCustomReplacementRule()
    {
    	$manager = new Manager(0, 10);
    	$manager->addReplacementRule('%foo%', 100, function ($buffer, $registry){return 'FOO!';});
    	$manager->setFormat('%foo%');
    	$manager->update(1);
    	$this->assertRegexp("/FOO!\s+\\r/", ob_get_contents());
    }

    /**
     * Tests that the bar width does not exceed the max width specified
     * in constructor.
     */
    public function testMaxWidth()
    {
    	$manager = new Manager(0, 10, 120);
    	$manager->update(1);
    	$this->assertTrue(120 >= strlen(ob_get_contents()));
    }

    /**
     * Tests ETA
     */
    public function testEta()
    {
    	$manager = new Manager(0, 10, 120);
    	$manager->setFormat('%eta%');
    	$advancement = array(0 => time() - 2);
    	$manager->getRegistry()->setValue('advancement', $advancement);
    	$manager->update(1);
    	$this->assertRegExp("/00:00:18\s+\\r/", ob_get_contents());
    }
}<?php
namespace ProgressBar\Test;

use ProgressBar\Registry;

class RegistryTest extends \PHPUnit_Framework_TestCase
{
    public function testSetAndGetValue()
    {
    	$registry = new Registry();
    	$registry->setValue('foo', 'bar');
    	$this->assertEquals('bar', $registry->getValue('foo'));
    	
    }

    /**
     * @expectedException \RuntimeException
     */
    public function testGetNonExistingKeyThrowsRuntimeException()
    {
    	$registry = new Registry();
    	$registry->getValue('baz');
    }
}<?php

class AllTest
{
    public static $testClasses = array(
        '\ProgressBar\Test\RegistryTest',
        '\ProgressBar\Test\ManagerTest',
    );
    
    /**
     * Inits tests suite
     * 
     * @return PHPUnit_Framework_TestSuite
     */
    public static function suite()
    {
    	$loader = require __DIR__.'/../vendor/autoload.php';
		$loader->add('ProgressBar', __DIR__);

    	$suite = new PHPUnit_Framework_TestSuite("PHP-CLI-Progress-Bar");
    	foreach (self::$testClasses as $testClass)
    	{
    		$suite->addTestSuite($testClass);
    	}
    	return $suite;
    }
}<?php
namespace ProgressBar;

/**
 * ProgressBar\Registry is a registry class that stores metrics for the progress bar
 */
class Registry
{
    /**
     * Registry
     */
    public $registry = array();

    /**
     * Sets the value for a key
     *
     * @param string $key
     * @param mixed  $value
     */
    public function setValue($key, $value)
    {
      $this->registry[$key] = $value;
    }

    /**
     * Returns the value associated to a key
     * 
     * @param string $key
     * @return mixed
     * @throws \RunTimeException
     */
    public function getValue($key)
    {
      if (!isset($this->registry[$key]))
        throw new \RunTimeException('Invalid offset requested');

      return $this->registry[$key];
    }
}
<?php
namespace ProgressBar;

/**
 *
 * ProgressBar
 * @author guiguiboy
 * @see README.md for more information
 */
class Manager
{
    /**
     * Default format for the progress bar
     */
    protected $format = <<<EOF
%current%/%max% [%bar%] %percent%% %eta%
EOF;

    /**
     * Instance of Registry. Used to store metrics.
     */
    protected $registry = null;

    /**
     * Stores replacement rules
     * 
     * @var array
     */
    protected $replacementRules = array();

    /**
     * Class constructor
     */
    public function __construct($current, $max, $width = 80, $doneBarElementCharacter = '=', $remainingBarElementCharacter = '-', $currentPositionCharacter = '>')
    {
        $advancement    = array($current => time());
        $this->registry = new Registry();
        $this->registry->setValue('current', $current);

        $this->registry->setValue('max', $max);
        $this->registry->setValue('advancement', $advancement);
        $this->registry->setValue('width', $width);
        $this->registry->setValue('doneBarElementCharacter', $doneBarElementCharacter);
        $this->registry->setValue('remainingBarElementCharacter', $remainingBarElementCharacter);
        $this->registry->setValue('currentPositionCharacter', $currentPositionCharacter);
        $this->registerDefaultReplacementRules();
    }

    /**
     * Sets a Registry
     * 
     * @param Registry $registry
     */
    public function setRegistry(Registry $registry)
    {
    	$this->registry = $registry;
    }
    
    /**
     * Returns the Registry
     * 
     * @return Registry
     */
    public function getRegistry()
    {
    	return $this->registry;
    }

    /**
     * Returns the current output format
     *
     * @return string
     */
    public function getFormat()
    {
        return $this->format;
    }

    /**
     * Sette le format d'affichage
     *
     * @param string $string
     */
    public function setFormat($string)
    {
        $this->format = $string;
    }

    /**
     * Allows to define replacements functions for the format string
     * If you wish to add custom replacements rules, extend this class, and
     * add overload this method.
     * Each replacement has a priority and a closure
     *
     */
    protected function registerDefaultReplacementRules()
    {
        $this->addReplacementRule('%current%', 10, function ($buffer, $registry)  {return $registry->getValue('current');});
        $this->addReplacementRule('%max%', 20, function ($buffer, $registry)  {return $registry->getValue('max');});
        $this->addReplacementRule('%percent%', 30, function ($buffer, $registry)  {return number_format(($registry->getValue('current') * 100) / $registry->getValue('max'), 2);});
        $this->addReplacementRule('%eta%', 40, function ($buffer, $registry)
        {
            $advancement    = $registry->getValue('advancement');
            if (count($advancement) == 1)
                return 'Calculating...';

            $current               = $registry->getValue('current');
            $timeForCurrent        = $advancement[$current];
            $initialTime           = $advancement[0];
            $seconds               = ($timeForCurrent - $initialTime);
            $percent               = ($registry->getValue('current') * 100) / $registry->getValue('max');
            $estimatedTotalSeconds = intval($seconds * 100 / $percent);

            $estimatedSecondsToEnd = $estimatedTotalSeconds - $seconds;
            $hoursCount            = intval($estimatedSecondsToEnd / 3600);
            $rest                  = ($estimatedSecondsToEnd % 3600);
            $minutesCount          = intval($rest / 60);
            $secondsCount          = ($rest % 60);
            
            return sprintf("%02d:%02d:%02d", $hoursCount, $minutesCount, $secondsCount);
        });
        $this->addReplacementRule('%bar%', 500, function ($buffer, $registry)  
        {
            $bar             = '';
            $lengthAvailable = $registry->getValue('width') - (int) strlen(str_replace('', '%bar%', $buffer));
            $barArray        = array_fill(0, $lengthAvailable, $registry->getValue('remainingBarElementCharacter'));
            $position        = intval(($registry->getValue('current') * $lengthAvailable) / $registry->getValue('max'));

            for ($i = $position; $i >= 0; $i--)
            $barArray[$i] = $registry->getValue('doneBarElementCharacter');
                
            $barArray[$position] = $registry->getValue('currentPositionCharacter');

            return implode('', $barArray);
        });
    }

    /**
     * Register a replacement rule
     * 
     * @param string   $tag
     * @param integer  $priority
     * @param callable $callable
     */
    public function addReplacementRule($tag, $priority, $callable)
    {
        $this->replacementRules[$priority][$tag] = $callable;
        ksort($this->replacementRules);
    }

    /**
     * Prints the progress bar
     *
     * @param boolean $lineReturn
     */
    protected function display($lineReturn)
    {
        $buffer = '';
        $buffer = $this->format;

        foreach ($this->replacementRules as $priority => $rule)
        {
            foreach ($rule as $tag => $closure)
            {
                $buffer = str_replace($tag, $closure($buffer, $this->registry), $buffer);
            }
        }

        $buffer = $this->clearRightCharacters($buffer);

        $eolCharacter = ($lineReturn) ? "\n" : "\r";
        echo "$buffer$eolCharacter";
    }

    /**
     * Clears line remaining characters so that buffer length always equals
     * to max width.
     * registry->getValue('width') -1 stands for the control character \r or \n
     * that will be added to the buffer.
     * 
     * @param string $buffer
     * @return string
     */
    protected function clearRightCharacters($buffer)
    {
        $len = mb_strlen($buffer);
        while ($len < $this->registry->getValue('width') - 1)
        {
            $buffer .= ' ';
            $len = mb_strlen($buffer);
        }
        return $buffer;
    }

    /**
     * Updates current progress
     * Saves new metrics in the registry
     *
     * @param integer $current
     */
    public function update($current)
    {
        if (!is_int($current))
            throw new \InvalidArgumentException('Integer as current counter was expected');

        if ($this->registry->getValue('current') > $current)
            throw new \InvalidArgumentException('Could not set lower current counter');

        if($this->registry->getValue('max') < $current)
            throw new \InvalidArgumentException('Could not set the progress value ' . $current .
                ' because the max is ' . $this->registry->getValue('max'));

        $advancement           = $this->registry->getValue('advancement');
        $advancement[$current] = time();
        $this->registry->setValue('current', $current);
        $this->registry->setValue('advancement', $advancement);
        $lineReturn = ($current == $this->registry->getValue('max'));

        $this->display($lineReturn);
    }

    /**
     * Advances the progress bar with one step.
     */
    public function advance()
    {
        $this->update($this->registry->getValue('current') + 1);
    }
}
PHP-CLI-Progress-Bar
====================

A PHP5 CLI Progress bar
Version 0.0.4

Requirements
============

PHP >= 5.3

How it works
============

There is one namespace ProgressBar that contains 2 classes Manager and Registry.

Manager is responsible to manage the progress bar. Each instance of this class is associated with a 
Registry object. Each time the Manager needs to keep a metric, it is stored in this object.

When the display is requested, the script uses the string format and iterates over 
all replacement rules. Replacements are handled by closures.

The progress bar has the following default output : 
%current%/%max% [%bar%] %percent%% %eta%

It is configurable. You can also change it while processing your batch script.

Buit-in variable replacement are : 
* %current% : the current element
* %max% : the number of elements
* %bar% : the progress bar
* %percent% : the advancement in percent
* %eta% : estimation of the remaining

Manager constructor arguments :
* current : the initial step
* max : the amount of steps in your process
* width : the max width of the line (default : 80)
* doneBarElementCharacter : a character to identify done advancement in the progress bar (default : =)
* remainingBarElementCharacter : a character to identify remaining advancement in the progress bar (default : -)
* currentPositionCharacter : a character to identify the current position in the progress bar (default : >)


How to use
==========

Quick start
-----------

Add include statements at the beginning of your script (if you don't have autoloaders)

```php
<?php
require_once 'ProgressBar/Manager.php';
require_once 'ProgressBar/Registry.php';

$progressBar = new \ProgressBar\Manager(0, 10);

for ($i = 0; $i <= 10; $i++)
{
    $progressBar->update($i);
    sleep(1);
}
```

Will output : 

1/10 [===>----------------------------------------------] 10.00% 00:00:09

When you want to iterate over a collection, you don't event need to track the counter:

```php
foreach ($array as $element)
{
    // process element
    $progressBar->advance();
}
```

Configuration
-------------

### Changing the output ###

Use the setFormat() method : 

```php
$progressBar->setFormat('%current% |%bar%| %max%');
$progressBar->update(1);
```

Will output : 

1|>-------------------------------------------------------------------| 10


### Changing the max length ###

The max length is specified in the constructor :  
 
```php
$pb = new \ProgressBar\Manager(0, 20, 120);
$progressBar->update(1);
```


Will output :

1/20 [====>----------------------------------------------------------------------------------------] 5.00% 00:00:00


### Changing the progress bar style ###

Use the parameters specified in the constructor : 

```php
$pb = new \ProgressBar\Manager(0, 20, 120, '-', ' ', ')');
$pb->update(5);
```

Will output :

5/20 [-----------------------)                                                                    ] 25.00% 00:00:00

 
Extending
=========

Adding custom replacement rules
-------------------------------

You may add your custom variables for replacement. You have to use the method addReplacementRule and specify a priority, a tag and a closure.
Keep in mind that the length of the progress bar is evaluated at the end so that the output width will scale up to the width you specified.
So keeping the %bar% with a high priority is a good practice.

Here is an example of what you should do if you want to add a new replacement rule.

```php
<?php

use ProgresBar;

$pb = new Manager(0, 213);
$pb->setFormat('Progress : %current%/%max% [%bar%] %foo%');
$pb->addReplacementRule('%foo%', 70, function ($buffer, $registry) {return 'OK!';});
$pb->update(1);
```

Will echo : 

Progress : 1/213 [>---------------------------------------------------] OK!


ChangeLog
=========

0.0.3 -> 0.0.4
--------------
* Changed RuntimeExceptions to InvalidArgumentExceptions
* Added advance() method for incrementing the progress bar
* Forbid to set the progress value greater than expected

0.0.2 -> 0.0.3
--------------
* Added composer support
* Added unit tests for the Manager and the registry

0.0.1 -> 0.0.2
--------------
* Changed directory structure to add namespace
* Changed priority behavior
* Added new public method addReplacementRule so that you don't need to extend the manager to add custom replacement rules

TODO
====
* ask developpers for feedback
.buildpath
.project
.settings


vendor
composer.phar7d3eb61c1f0c164b9c3139af694b2d38171e4d04
[core]
	repositoryformatversion = 0
	filemode = true
	bare = false
	logallrefupdates = true
	ignorecase = true
	precomposeunicode = true
[remote "origin"]
	url = https://github.com/guiguiboy/PHP-CLI-Progress-Bar.git
	fetch = +refs/heads/*:refs/remotes/origin/*
	pushurl = git@github.com:guiguiboy/PHP-CLI-Progress-Bar.git
[branch "master"]
	remote = origin
	merge = refs/heads/master
[remote "composer"]
	url = https://github.com/guiguiboy/PHP-CLI-Progress-Bar.git
	fetch = +refs/heads/*:refs/remotes/composer/*
tOc                                                         	                                                                                                                                                                                !   !   !   !   !   !   #   #   $   &   &   &   &   &   '   '   (   )   )   *   *   +   +   ,   ,   -   .   /   /   0   1   2   3   3   3   3   4   5   5   7   9   :   :   ;   ;   ;   ;   <   <   <   =   =   =   @   @   A   A   A   B   B   B   B   D   D   E   F   G   G   G   H   H   I   K   M   M   M   M   M   M   M   N   N   N   O   O   O   O   P   P   P   R   S   S   T   T   U   U   U   U   U   V   V   V   V   V   W   W   W   W   W   Y   Z   \   \   \   ]   ]   ]   ]   _   `   b   b   b   c   c   c   d   d   e   f   h   i   j   j   j   j   k   k   l   l   m   m   m   m   m   m   n   p   r   r   r   r   r   r   r   s   s   t   v   w   x   x   x   x   y   z   |   |   }   }   }   ~   ~   ~   ~                T?(`ԡw*^Y-Ie>d9a8_>uZ
о$$A2U6e|,
Yaa0~K
 ~Uv׌B2%Ej{?YH[p*A<}M,ny
,gvsq$-(  .+͋HSj(1 `	ͷݍ'*JwIK@'O ީ)P(
7G8&!0d	 ebQ
yvw nVs_/QGwy=q6R.$$ņtYe`Ghe)9%Lɫ"[z3q(_2)	s'pH݈-)I9pbWkBE79{غ.y:PrNڈNyֵ2oǀkq)8l8A )!vqO+9c	KYҋ Uc9YKnϏ'LC|:@E˥G$Yك^@ː4#6h%+mB]\_,:6q$~6Ha[gʻHIZxV`+:/9\KF$ǝFy"Eyi*
`Ql5MS3VJ"x/Qc5MDiт 6SR?St^;Ԕ+T& v&iS9FTtx\.gL'O=YeoP}~5(|E[zG2vP{;\n
*Q/1!^KLjT~c5˴>j`P9G)Y	b>,z -xs7od2R|=K\4ĳ `e8ag~+,M1pwfe[Ce٨2Fhg6zD=$p*d'zi`I10l?sN\j:j?ICN@k~jkBgA3dIEwoǴ`VdEpx?,G*;KXirYmD>"PoZ!rV2;r'ESysRB6SU(U-fylDs!=[ќ;;t^Q<^&ShY-KvIݹ)߷eq"ޢzoQ+9˶Z>}>K19iK-8M	R,G=ّ[ȁAi:U8unlX#+׀v,O0ݤƔGZa@Ts4$u|۹-8vHĲDߞK,Vej|4^C՚#+ cV2E&g:E$jƆ;U<MM.dDΐU :3V̒Ee(V:r#V7I4mQ=UGwčy*N)^p:MQQ4(Kp૓d7h*)^rEH	7Yi)k%\O:XTcJ]bo֎IHI;kPmc݅T^~Rx6 +eڃcsapm6H%8:F>骒UXgXY߉ʨ$z $t)p5,_H| ;T+>[i\[E6J܇W
ƕ3!r{F8$!P[XxS
䅭e$sfiQޒ=|~VJ9^ݣPg1ڸƛqLJlv73'M4+ٻ^n+{B Q|O]񣖩|qk.
?ۇˏr؊dPIc36[",;(<3HJ%ydE|Ϊ8|A*KKq\YcpgΘxf4Fζ &ym4.`pL8ϲ5AlZCМ1̽{}a. Df

;)&%iFOSr_$nf5vy{"l޷z:a$ƺǕ/BPޘF3|.ܶq~fHެ*X	_L:hg--*Lk6Ev,+'" v,PFv#N	&K`
ݏK1zmg$uٞߔ`GޭzWᛞ0GGg@p\RƸ_@"%MCw+āS^τ_	7@YHc	sdVO~eGEJ]Me44f	sgdC@Ib~&fJӑ*isٮY}XLV]?m$%Jv*%
8)TʶpS6tJ[SGL[myb\Xu['2e 3~&'muD$7S	hP 茤bݡmg-Kck`4֭H}0"l˷(_t7>'iF;o/VgR䒸Y).q ;o3*XuB^bq~RCc!Ct݈ڤ)V-/8+íd}gbSd|0ՉkykɦB7ĺ;ppvFFKN;}ٽmy+.KRLʥzͻw!mhKFOPGRw2t#|Ȏ-wzir5z@*	>L]reG9e:Mi5{Dſ@\_iǪ@L.x	~)SSαG՜isќ[,{BH
	%UtaVo+F2\y1UO Idlu*&̲j	jCn)t-Ϋ/5*9%d  1e  =  9	  2N  <  8]  A  0  Oc  0  2#  o  (  ;"  	5  }  **  H  O3  ?  #  C  
u  C  6    5  9  8  E  6  2    8<  D  7  	  ?.    >a  <  O  $  D  !  `  B  C  B  8  7O      =  @g  G  1  ;u  (  5     @    :  9  F  >    @  9  *  <j  7d  Ft  =-    NS  6/  G/    :K  :  T  BD  A;  G  E  &    J  Bm  *K  D  $T  N  A|  >  @  N  '    9`  <  7  %  1  K;    (5  .~  E  FO  6x  {  /  5  A         ?  @"  *s  ?V  =Z  ^  E<  A  ;  q  |1qefиP/@HExeɈqx5PACK      xKJ1}NKO:nѣQq$-m
njUl^"H.iVKifɫwP!hg4;6ѨhÂ5r\Ys\׽7 1?q6m%^q+Gi$SL,ũ[r&SB-J |^JS(/dlX[vxAN0~HF3B%p.}(ZHثVy!1I`!^U+F2_IS8d%yL<ۭT:TzqZ_XSنmI7~CCgo$VeI{t-_dCJ뒰V+ϣt`~ $Y6xM
 ཧp_F3=#EO߄^jaJ1Q[J|sBPʐUkT.CL֜KdmmuV.vc}onj_a1_y9.:1@:Z/gDe$[TxO[N0),񉴤yV!FMIrz@=3B0NSc+Q0!/M0+̋5Z\Ɖ^`gV^&JV+魑Y-W+GP
vz{|k)a
^cPޞaBJ&CnVee8ZJPYAA(y	'=);qoڣy_'jj}zc&;zx
0yI͋dc+4Uxo>IYTQs^DvĥYFa1R>)s#C83X*I.[Oɥi#hN:]ˮS$M'wFJY9P!vmJχ8OS;@K?+GO'QHxA
0E9ELӤxD+<zWǫUJq1J| "	%%liֱ.ƻ0S֒;rJT x:<ݸWӜcw7.C[E"Bl,tk0GFV;R$NLnxAj0N1B-A)]
Yإ<%!Oyg]c.9iS(a(f۸@O%IyĘT*!HQĵFe ?6U)3;;뮿}(m 
|8"GtϺ.fogcy`v1z;wwx.drۤT =/VxJ0Fy4ɀ.ލq:4mW|z+\psכ%!0 ){+&%Qmd:a<ArHɻ3}Simu}"<F\\̷{m<xR7`Ak]0&µNĢOK/uЗ'|\vOHZ۞xMN =
c.= _mIO/+Żx =::4|ERS
JlfAl13arF'0^]}}>o]-5[-iƺkLhZݖZ/z?Tdz]>D3]$PHjKՃpB ayxK
0@yVP^y |^b&kpz7"0Jug 0UR\Bjhu>;/Vd"+ E22,,K,_~~F+}Z4^PZB~	.+:e~p-;鵗 |GxK @ Cb;O&Vޞ&MѹLbȰ3g*HL6DH(՞Ɯ2zٗᡐ }$oTYuk_}Yr^M>i_r.uɢ`=>0Ft[{?V9ua͵#BxK  =`ob+gVDoo%7fYPi`pwD:fyrhld&BN'qJkc+Osl'ۓg	AiĮ;Q5g22>kzBDxA  ;ػaPHу?¶%4N2ue>`O1Ҡ";JW&8+0UNG#])w%{Z
ǖ|4ʵoa^^|e>N+籓pJJk?u*~QTEސxA  b&o@YĖ^'Va&$|DhDiIS"Y'5Њcmp!q	ie]\J(={{JǯKYπHp$tͭ7ea,cI?xM
0}N Dy0|т53}F	%W&	eCkYK76ٲhDZ!$r$1 ^>}}>eo^'/g=Yg|N'} C~cnk偪k/uCxm0@ѻн@@,E[& L&.Pdݾ!GWfY0G1C@VFBn箏8gT.ơP$2H)TǸz;Vi&]G;.ڶDL?`pclGxK
0}N1{A&ѕ$Fn_ BĜ`͑FaC7$q ?L	K'ާCꨏwkǾL.SjuɇSιW>"v't*^Py:$ G̟xAj0 zal	J/vT,z73`N'I'ccH,nfkl)3M1IQ4#%")9>gmqQSz/۷]:ȏpABt]J=6n
Zg BYᬶ[~uu/OқxA
0@}N1{At&HZS)~xVUȒC(cE	E[oa(22
AKr#BncX.ϲ</6_!DB(1hPwIM+fOyts?NFߖxMj1@O}!x(]eȶ<5d2}sn|d0ޑ#5VJU>*3TK.hji[B!SĄ*Zs'yxR6cq7ZW=Zºw)>e<hNzQMxA
0E9EB$D<dkKIAooW@QEc	Lc1Ԇ(Q*FP-Ɏ'L8! Wwǲ>?[i]YCb"Dp쯳A/C@xA
!ὧp>}BDNaP7ghؙ76.s@RQ֊v~T(̔<Px^Blyǒ9}YYcw}Cm{9v*,,ʓJ:Ac48l-y$GpxA
0 {^PifAě?nj7xVE4
-R$4GX,˒'YT43$Nd1l" YRۣT}y9>J+*\q2OrkGUw\^@DyxK
0 9ED,)%=f,!$llD02f4Q,JJ@Sʁlpƣf^Q"[}U^4WFZvˋG	ƪ(wj{SG*KY֋CПxM
 ὧ4I(CI*h} zg8YcQսzkgofZH.i,GsK폣W-eECCT-IMBR;x340075UK,L/Je~~~poK&@P^Z\XFKgE?wSbV^n
!>^s̍w6PBr~nA~qj^Vq~4Ӯ*obUj΁YZ\ &hi ̉\'[|{ GxK*I)H,+(JM.SKJ2ҋyxRR򋸒sS
2 .x340075UMKLO-+(`(h;.`zs!DYPjzfqIQ%X]#řVKrGW־ ˽zxYYoH~^(#>2;XL,O`%/N`ȖD,Ej#߯ 
ģ뺫}~db'$WFɢP&	o_6UURo_bZ.W;Q&yeW(EALl|>Z_or-dzi6V"PY1^2*eL%Yo'ӨRJfj_03MRE|JSY]yȠ|MKIR=_ҟ$9%m'KD"ehAY}!MAJSPT!OBPJ@ocdׇ;m(UBiJU^V/(J}HrYMgsmbJD%fd/E[\ngsx+"[In׎-nLv2CL&ŭoy3z+/nY[giz@O1~N赉R_F3bI24<{1ac8KeѲO\EY$j_1_MfmND e]4~Hڵߴ$%,+ĩIaWzQ02t؎֣*+ڲGbCOG5&q!2.%իx&$ڢudf.PĺecXߤi~s:ɤ_v:
m!wkz+:$Ŗ98B5ܵ*Rf(ȷYTi.mzJ"|i+8*UR>3/Fi^TnwP3qGB[j0Y` DeZs,A=_"L:d[?
?s9:]k gn%գq0SҠUu/}:f[1.^0.oYbdMaWY7-4r%;FU9\^^lVb8׬t՝i/0vD}n*@+W&".U!NƅG
`.ȗEnq:Ź:۔$0a|K~l'ېv[Z[^Ԍ,=UhI-m^}fגsE?b85L쒬*eSHK{;ad'iU{\g_3FWa$?Wȶ ,|fsQlSn<$+#n9]PU1*Pya8ؙqa?XFLS$MClOX?	Yjcx$w:aRW:tkhZ=Ay#R(fۦvdXHdOS6P0ċV#tnLp-86/*qwsLHwe7KW:tF	oLh?EPQB}Dھ:s2sVG<Ot֗zjk>;8)9Hz6i'؄Nmd5ϝ@r?>gBo^]v&ڹƫ4-tl?PrIr׈;Cv~aEs52nʉ`L6۲>*,?
e>eg~YY2tf8E}c< L)a5'p90ZۛB"=_H3GLu1嶞Ć|]s^`k&Gtx }R\	G97`(*؜iւ6X/]#00c4ٸn#$sE{aaYqsT_~߈bXtNZ@i*3w?1[w)xM>p۳Nw}=+>Yf+~HGfM;5[4OK4GDrϧ읭8HNnzC:=hNY'v/		91eyI8! JZ?O-|>fSܡ&P;\Xx	ޭOT:-^0)X7g'HvM*.Me.xk:rE	~ϼĜǢԼ7$1Ĳ$34&fMPT(Tε"9$3?OC94'E!/D8D$#U(?(X4UA]AOA%OAK+$&'T,),ֵ+JM,|JkK%'pL)KKN-F1)H<$C!?/U$@or#,G"D)%`/NV0Դ; zd=)x}N0SR&PāNbaסPߝOܲٙ]]j:(LL.'=m`4f/{'Z,'22G27kSYάV?
ّQf^]4L^Ƅ&	Z^J_UQ4vm(Ju8n͗6	-:U~HN;:U\jB)/5G7qU~HuLc3;>$*B*'JP.-?WcXggU6TF<xzUƾ +/17 19U!(?()Țk"k~PjzfqIQ%W5kii-'Tee!bPmE
)

*e9(FLeL1Qf$̔ԒҢ<1mEyPyǡ  *;&$xƾ `"6cFG1Ay!ɩ%ye'[2pd&w2  PxWo6_agE-m2]ЬVmmsDM$MQ-;lNX"y?ݽ;z?*w|(! 5hQ`8x;d.k6*1{O.w=J2Iȥ)E"Wa/ٹ
US	c_D!f"QFΔrHӥ.dDIe=s	(]O&6
u)- ƠVIzLlaUMQH})eJ6VWZaNK~))UĒwW]XWLRҒc0x' PŌʁâ`5нPq$B .e|E<8h G|8lUOukOT̒vtBt:ءw`޹N)w#/<,T\%% M	l!cQs"	2U/NPx:e JTm βH<3fo˅'6 !	oúH8ٸ8ad0V$WH6=Gv,D%H%o|UKjmID<%Ɩ\;-ff 7/Tį9ؕ)To	}?3)\T"AFB8'ԆJ.	BYr7ecwg R]|k*ùow90l+:\"jq_xI̒d.en ԙn`[&ூs3ǢkQW:"E}#1/<gYl>76l쌣M!z>i4܃8Q#XoOqDO\b	l2toď
b8d|ECYCxMy޽{$+^0ywS7#Ϟ{{h:E&`ίwwI<WwC1\],~LA,fऀ9rk)5UM ~LecδO/"2`\g]Sf'4;_^`jm5ţaG%rS?{!&b<ەZø~+~.h|FdVo-rU&\1]joZ2x1	P ZOumTɹnBCJk{!Ou=@	کҕ}|bWђQSKU1
Ccz=#PmJdΏȡ ,:(̨&0͕XAYc~g+s5:4XB%OኁR~y	a
k]Qh|Y&q0o<30Ghq\\гLMIxU|^<պqu;~>}(`|ݟTVt
ז=TI몂_~}yem/e*hm hfTJcݨ-q\=7g'i
Ot
qeyjV^%i\$l+5
۵bkS/xx^By%I=9^([FmJ7Tt훑]l=ՒUJOLޕ<܉CIqt5l0]LXM!"84Wx;Ij	V׊܂b^.[8jrSFVjv9tcTsKsK2xx3ҁ\TҒҒLG7{q1(D<{r th&
D~xSkA&$eBAiA>Mkiv`J(xB/ev6m]Q#<k]|$m*/>a{|/~>>/~Vq J@mmm<_AT<h=89Dlr%g*J]}຺4|1]^Dƕa+L!J`$A_ł/R5G%1URu| Qj[=!LJv,yLOm-h ,aN\=fqκm)08̉':'NiZ"Ø/4W@&a/d}T>;y8,E?$Q̇LWBRjc}rvk[ua'Ɉ{jrc8ҎO5uP&uCig\urL2/M;CKPoi8u38hv4 [5֜u]׊h:]h;yeb UO߭˻M~ꖵ.X^Ջ?#}wcj?sγm-fVfOE0gɂqȏbᬄZOI1xHQ|zWy9б x]AO _A8/&Cm%҂h6MY	̛yߛNbHhƜK;Xj,s@GSfWwҵ_k*%(%HRW&{O"l%rJ7 	}֌2rIwPb<hY[3J+uǲB!)"`kz_kK#{BQ=cZMFz|7FtlFGxU7_)myMO`)I׊"xkd<a^zifR~PJMQRPJO*J-/uHH-I\ &<xże)_Nfrj^qgD]qF99J:\
H@)571344B/($!$3񁕘'RjEnnRqIQf^:HdIƇ "íx340075Up	I-.+(`V,/>ʆmM@!(?()aG'ݨPo0g/ 2 "x}QMk@=X)$moHkgֆPmͥ{a{sqZkNnH.S*g$Tœga@qD~
Nc]b@tqEv[W$ +S̕elT'F]%aac8
|ϴeb-:^-x!|v˲6b?B`;)40VY+i/Xj9:4pA0S&"l), l&LV{;nwf4x[reBDgqvļԢIVax31 OSRϻ6xM]T $x340075UMKLO-
I-.+(`}**r|_BgU>	p;[֯oe9jޜ !&/xVmo6l[rrkx2+A `-L&54(w^,v(*ˑslRd"Djј߅ߠv;7_
)&Y(jz#Ԭz?wV~!?: Ӊ$JHts ?g9}k&+4E VkJMv+$8!%Vқᖺ3$4SS)
jDLE8uf8ǆ	C*mJp&&H֨kkTŸtWmϊHWeCe*Z4MLoeEMssQfb;^huh{!	o*!]9Q+/9R٭S2v,eŜFH4ISR)x^ס0UNĉL-;d]a'2hgUeu-SpjɦԞ;[G\pAJp12B%(ԝYM:mxXnֆv5jEr
H՜[6GɈjnXpKJf8ZYzUE!aTضeQپqkuik#f6KFݑɴ,<CW^)[&htvq1!5YbǀS\8Mpv^/7^󶯩uX)czTf8I):_9}(S@Ss8KJԒ&I]3~׷x_ڱQ0vĔ)4 =̄,m<ϭp&qQճf3:I|)o~dznt>oO*שw0G7;@PBxp6ˢ~zPqNY<_~ם5)g o{\rYaoۖV2#2xJ@QnZ6ڝ tDD-2mntL&)c΍F||wn݊՝w9wm}<CA7@2@HH#4I:AtM$
M&ܙՃ<bZzmdR]Uw>/P9;,*vx	aM2^	~2+i(q%vl~y0cÐ=rB9FQՌiq::Ͱ_hU3DFu4(C95S3:1W|;k{엨SϺ7> xN0)|@jWm?P5Nڈ.)qv;YXąl?_\UE$"U<E5r/̌D<`kPfqJaڊ7J;N>WI)R25BI0FfhV9?;ׇ9p	a? 9
F)o^µ7p4Q%/Hbvc.Me
SYئX9?Flqg%n deUC:?ˏXc5x М1̽{}a.Αx<e)_Nfrj^qgD]qF99J:\
H@)571344B/($!$# sux340075UK,L/Je~~~poK&@P^Z\XFKgE?wSbV^n
^h3[gm#|D!9? 8H/8?ñaӷ"ꍶ|;jZ3IbgIjq	|l3'jts=`n tH>xɸqB!>^s̍wB 2#Ux2dkiNNbinPJMQRPJ/̈́K*J-/uHl|  0D:xSk@f)RA>ݔn7ڃ[XxR4y3a2ٶeb٣w_xMmR#aޛ}o>_Qy A	(rt썓pl~Z$+ʱ[V ͤPXD*X2w\W׿k.\OWWvV<o<k;ˋy	ϸ2L)1D	D~8D戡9$#*F.8,/$ vsI尀)u׎6dR0G,2`]w7%D$^giL^Vx%

hߤs,wsT0ta*!ta`}HG*c>?g$$JH+YJHC`S֮[oZ4$MKMvǃv<umr;2I##cdqhjDQ_FAmQEWd!٪5Wr\+o}ʶ!vsF'wW5XkU;~榽
X.^;zF&Nx 8,7&ȇ,MMƝI^0$N:vYdaΒMi	,蟤cf0<8G98x340075UK,L/Je~~~poK&@P^Z\X R%S8fixj1+U/7qKOu=9`]/"3܂"<Smaqd'/6VGW':x>ѹ2bfOQ
q\Ijq	ù+^i]1 "^[x6 ],_H| ;T+q>[i\[E6JHAEx{ĸqHѐ5$vJtumw(0,Mj˿wl5iIx3 8%MCw+āS^LYP(
7G8&@
x3 8Ha[gʻHLYe(V:rbx340075UMKLO-+(`~hӳtG+ަx2+kQY\RT	V7yqUҼ #0jxo|GiZ. Hx340075Up	I-.+(`V,/>ʆmM@!(?()ܶV3ݬ5K(  {x31  %q^¶aõ/  x340075UMKLO-
I-.+(`1'ט1C҅
cA%EpuΖ+ovs7g  $!>x*CrCmvB7{qf Xv.x3 8j?ICN@k~jLY9a8_>uZ
о$$Dx340075UMKLO-+(`pxWM(e0jBgU58M^ij4/Gx~e xnl#xlkaR '(-x340075Up	I-.+(`V,/>ʆmM@!(?()ᬷd
oLZґ\ 
x31 5t+%*>d>w_ Χx340075UMKLO-
I-.+(`jzzTw3Dl~!DiPjzfqIQ%\s e[]朣6͙+ $lbx*;A|C ml !vx340075UMKLO-+(`Xoֈ{O=jg!DYPjzfqIQ%X]#řVKrGW־ ­x340075Up	I-.+(`V,/>ʆmM@!(?()aeyU},A  *x31 2KZMq-ҾbW xx340075UMKLO-
I-.+(`nk_=5ߥ3(JM,.)}v_y߶˜sԦ9s a#ѯx340075UMKLO-+(`(S;|ޕio7(JM,.)kp䛼8*bai^eorxkkAStrh&L 3xR %+%sdÔ$c3#cDTd$SK4%bh.P,nJjP64'*XMKnf^fninqIbRfNfI%% NN*>nZNb:\\ 4"x340075Up	I-.+(`V,/>ʆmM@!(?()aB:^.+sw戜 ͯx31 .'u3͗)V 	x340075UMKLO-
I-.+(`YsM7.I@NU\~M4(5=Nٲ~-~.sQ #x{#vSlCL1yqXlaMc,SGe``D1E ?]Cx (<3HJ%ydH-x{qB&+N^(wc >r.x$*AmC>^̜Ғܖٍ&o~^497TMjrFfg =x3 8qk.
?ۇˏrLDߞK,V$߯x340075UMKLO-+(`^SŻ~<FwYBgU58M^ij4/Gx~e 9	lx5ܢ!u2'lJJbIg^IjQYbBV!/\!IR(3$MC= D8X]gr+5yE%Eyڥ&hzXzZoo +˭x340075Up	I-.+(`V,/>ʆmM@!(?()!swtIV 	x31 O[nmg,N19 x340075UMKLO-
I-.+(`P9R*B	FfBgU>	p;[֯oe9jޜ H"*Dx)[xC809$'7O"7 f_ֵ, Nx{qBH||u!)Q~ɉ lxkjh1d# uVx6 ]rV2;r'ESy彑q	R,G=ّ[ȁHnXcxk: 9!hbHϤ1n6f[r2/-^.-ĔҼbHr~nA~qjBqiAA~Q<J 5lCxyF׭ "1x{ĸqBUr礫ޜwu&@PZ\yW>6LyGa &!xiDl\
@P;y!c$ Y"hx3 8O]񣖩|LY%Ej{?YH[p*A<گx340075UMKLO-+(`}Gˢ[3Զ+Bf%zBgU58M^ij4/Gx~e mAnxۢDgd~E&3 3>x340075Up	I-.+(`(yw.[4s P(O/J-.vJ,bXѸዪKlvގK "\x31 ݝ*igO{=~]& Xx340075UMKLO-
I-.+(`L4<`uWd	XBgU>	p;[֯oe9jޜ ~_#h[x)V3 x340075UK,L/Je~~~poK&@P^Z\Xp3b?.uOc/\]|]rS4=-³8\-7.sc}"3܂"<#7~"2MM9;KRKYݸx啀ql6o NE?xɸqReU]U}nGt SXx; OrB a5܆
v
z@ͽƌ "	sx|iDl\
@P;y!c$ NȤ
x340075Up	I-.+(`(yw.[4sC2ļ"ǓMK=%bާL@!(?()aG_/.{by;/gUML;RuVAw~wqAZDx/(JI,.VMKLO-
I-.QH(IK)V	,w+JM-/ʎ;'rUs) W- Sx/(JI,.VJM,.)I-.QH(IK)V	,w+JM-/ʎ;'rUs) W- zD	x340075UK,L/Jep3+V2+T^gfb 
EENEe&ܛo^ʑz߶<7몗 iYjnYqٜC*I-.a̬<S8̜o'Esm#8xK*I)H,+(JM.SKJ2ҋyx ַx340075UMKLO-+(`gۯºӾ\FZyC⒢JT_uV
M>gU  !![nxۢTƾ k#+d~E&3 `x340075Up	I-.+(`hmEɣfl~&C2ļ"ǓMK=%bާJR3K*jtTUН_]Bߥ| y3x/(JI,.Vp	I-.R Ҥd3H>XV!(R LMkZ gx340031QK,L/JeX˧VT-~ϰ_D!DU^n
áO~pfW5M@(a,GG,zuTlIjq	Ô7hx<X=yȎsV $9x```."[ȻĬ-HOѶ-_Νm RxK*I)H,+(JM.+N-)K/ 
G:x}SKOA>xly(RA]Y`5(BH	COB<xt<y0|ܼ^^X3;tWO^%Ng挼	PБT'O VWVwh!οIBY\3(U)lIAdJ4JL(y`p_c*?T(?h3s\6*NjV?O&@I%{7jߥ
npu"o~eGo= \J-}TdR=S:ˏQgS7u]O)9uk RvE;5z%]Gi[H* ,	}lJ%<p26FLsc)@81-$n`85u1s$	[XWێ6Ŗz=qxvr\D/׮lQI'AWfS Sȫph]wA2j؈xGi"(e	~*>p`tXe07AɬKqӃS a>Y+Ij_9dS1񞑤BqI`NҦo9F{O7٦fr*$.O0Z,NwI4oH<˨_H)~!g@uIsjlx340031Q(O/J-.vJ,+(`G4iy\Zib(JM,.)kI age?s~y ^%UlxmTMLA-m -
2ŭmhDLL)?6QDH7Ȱuv6HjsVOq֫'5W4ލei~ޛy5'[Z:'D+%pr,q&t7L"SjP+=((CnSrt"I<56,8l<28GJ ȴۥp:|.[BōZKG=nG,9):H N/"_^Gsg|p`ʺȿ]'߰HJ8tLbS	l5~?Dy|l! hP3,!XMH["BaY,RQ2am1ؤc`[-HX6B
%9p˧룳B{5j<KU<["Be)
Eeҭ
p+℔^1#(ˊdܩ-RQ`~"ypI`6aK%i |t_\Χ#sU(Q{sHyΆt)MR5:|:<}/Zo	_/jiv7SVQ;yi40rFn"FZl>@_¥%zxԻFKwZ˂3~-B#3=g6{p~ʝ:wx|:MA݃v,7-7=N߱5K-9<IUߏ+GW91\~?+q:qG?"]8x340031Qp	I-.+(`8~ʏ,4=Ov"g %Yx/(JI,.Vp	I-.OLIQ(,Q(
*+dr xu(O/J-.uJ,<L`\+srRJ ;x340031QrutuMa8ts?qyWqڬ*f: x340031QrutuMaIVV<E+Ttk0 md xw l|1qefиP/@HP pack-f59e7c3192719a6566ac81d0b8f1502fe4e44048.pack

7d3eb61c1f0c164b9c3139af694b2d38171e4d04
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
7d3eb61c1f0c164b9c3139af694b2d38171e4d04	refs/heads/master
7d3eb61c1f0c164b9c3139af694b2d38171e4d04	refs/remotes/origin/HEAD
7d3eb61c1f0c164b9c3139af694b2d38171e4d04	refs/remotes/origin/master
0000000000000000000000000000000000000000 7d3eb61c1f0c164b9c3139af694b2d38171e4d04 Damien Seguy <damien.seguy@gmail.com> 1479377909 +0100	clone: from https://github.com/guiguiboy/PHP-CLI-Progress-Bar.git
7d3eb61c1f0c164b9c3139af694b2d38171e4d04 7d3eb61c1f0c164b9c3139af694b2d38171e4d04 Damien Seguy <damien.seguy@gmail.com> 1479377910 +0100	checkout: moving from master to master
7d3eb61c1f0c164b9c3139af694b2d38171e4d04 7d3eb61c1f0c164b9c3139af694b2d38171e4d04 Damien Seguy <damien.seguy@gmail.com> 1479377910 +0100	reset: moving to 7d3eb61c1f0c164b9c3139af694b2d38171e4d04
7d3eb61c1f0c164b9c3139af694b2d38171e4d04 7d3eb61c1f0c164b9c3139af694b2d38171e4d04 Damien Seguy <damien.seguy@gmail.com> 1522072356 +0200	checkout: moving from master to 7d3eb61c1f0c164b9c3139af694b2d38171e4d04
0000000000000000000000000000000000000000 7d3eb61c1f0c164b9c3139af694b2d38171e4d04 Damien Seguy <damien.seguy@gmail.com> 1479377909 +0100	clone: from https://github.com/guiguiboy/PHP-CLI-Progress-Bar.git
0000000000000000000000000000000000000000 7d3eb61c1f0c164b9c3139af694b2d38171e4d04 Damien Seguy <damien.seguy@gmail.com> 1479377910 +0100	fetch composer: storing head
0000000000000000000000000000000000000000 7d3eb61c1f0c164b9c3139af694b2d38171e4d04 Damien Seguy <damien.seguy@gmail.com> 1479377909 +0100	clone: from https://github.com/guiguiboy/PHP-CLI-Progress-Bar.git
Unnamed repository; edit this file 'description' to name the repository.
#!/bin/sh
#
# An example hook script to check the commit log message.
# Called by "git commit" with one argument, the name of the file
# that has the commit message.  The hook should exit with non-zero
# status after issuing an appropriate message if it wants to stop the
# commit.  The hook is allowed to edit the commit message file.
#
# To enable this hook, rename this file to "commit-msg".

# Uncomment the below to add a Signed-off-by line to the message.
# Doing this in a hook is a bad idea in general, but the prepare-commit-msg
# hook is more suited to it.
#
# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"

# This example catches duplicate Signed-off-by lines.

test "" = "$(grep '^Signed-off-by: ' "$1" |
	 sort | uniq -c | sed -e '/^[ 	]*1[ 	]/d')" || {
	echo >&2 Duplicate Signed-off-by lines.
	exit 1
}
#!/bin/sh
#
# Copyright (c) 2006, 2008 Junio C Hamano
#
# The "pre-rebase" hook is run just before "git rebase" starts doing
# its job, and can prevent the command from running by exiting with
# non-zero status.
#
# The hook is called with the following parameters:
#
# $1 -- the upstream the series was forked from.
# $2 -- the branch being rebased (or empty when rebasing the current branch).
#
# This sample shows how to prevent topic branches that are already
# merged to 'next' branch from getting rebased, because allowing it
# would result in rebasing already published history.

publish=next
basebranch="$1"
if test "$#" = 2
then
	topic="refs/heads/$2"
else
	topic=`git symbolic-ref HEAD` ||
	exit 0 ;# we do not interrupt rebasing detached HEAD
fi

case "$topic" in
refs/heads/??/*)
	;;
*)
	exit 0 ;# we do not interrupt others.
	;;
esac

# Now we are dealing with a topic branch being rebased
# on top of master.  Is it OK to rebase it?

# Does the topic really exist?
git show-ref -q "$topic" || {
	echo >&2 "No such branch $topic"
	exit 1
}

# Is topic fully merged to master?
not_in_master=`git rev-list --pretty=oneline ^master "$topic"`
if test -z "$not_in_master"
then
	echo >&2 "$topic is fully merged to master; better remove it."
	exit 1 ;# we could allow it, but there is no point.
fi

# Is topic ever merged to next?  If so you should not be rebasing it.
only_next_1=`git rev-list ^master "^$topic" ${publish} | sort`
only_next_2=`git rev-list ^master           ${publish} | sort`
if test "$only_next_1" = "$only_next_2"
then
	not_in_topic=`git rev-list "^$topic" master`
	if test -z "$not_in_topic"
	then
		echo >&2 "$topic is already up-to-date with master"
		exit 1 ;# we could allow it, but there is no point.
	else
		exit 0
	fi
else
	not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"`
	/usr/bin/perl -e '
		my $topic = $ARGV[0];
		my $msg = "* $topic has commits already merged to public branch:\n";
		my (%not_in_next) = map {
			/^([0-9a-f]+) /;
			($1 => 1);
		} split(/\n/, $ARGV[1]);
		for my $elem (map {
				/^([0-9a-f]+) (.*)$/;
				[$1 => $2];
			} split(/\n/, $ARGV[2])) {
			if (!exists $not_in_next{$elem->[0]}) {
				if ($msg) {
					print STDERR $msg;
					undef $msg;
				}
				print STDERR " $elem->[1]\n";
			}
		}
	' "$topic" "$not_in_next" "$not_in_master"
	exit 1
fi

exit 0

################################################################

This sample hook safeguards topic branches that have been
published from being rewound.

The workflow assumed here is:

 * Once a topic branch forks from "master", "master" is never
   merged into it again (either directly or indirectly).

 * Once a topic branch is fully cooked and merged into "master",
   it is deleted.  If you need to build on top of it to correct
   earlier mistakes, a new topic branch is created by forking at
   the tip of the "master".  This is not strictly necessary, but
   it makes it easier to keep your history simple.

 * Whenever you need to test or publish your changes to topic
   branches, merge them into "next" branch.

The script, being an example, hardcodes the publish branch name
to be "next", but it is trivial to make it configurable via
$GIT_DIR/config mechanism.

With this workflow, you would want to know:

(1) ... if a topic branch has ever been merged to "next".  Young
    topic branches can have stupid mistakes you would rather
    clean up before publishing, and things that have not been
    merged into other branches can be easily rebased without
    affecting other people.  But once it is published, you would
    not want to rewind it.

(2) ... if a topic branch has been fully merged to "master".
    Then you can delete it.  More importantly, you should not
    build on top of it -- other people may already want to
    change things related to the topic as patches against your
    "master", so if you need further changes, it is better to
    fork the topic (perhaps with the same name) afresh from the
    tip of "master".

Let's look at this example:

		   o---o---o---o---o---o---o---o---o---o "next"
		  /       /           /           /
		 /   a---a---b A     /           /
		/   /               /           /
	       /   /   c---c---c---c B         /
	      /   /   /             \         /
	     /   /   /   b---b C     \       /
	    /   /   /   /             \     /
    ---o---o---o---o---o---o---o---o---o---o---o "master"


A, B and C are topic branches.

 * A has one fix since it was merged up to "next".

 * B has finished.  It has been fully merged up to "master" and "next",
   and is ready to be deleted.

 * C has not merged to "next" at all.

We would want to allow C to be rebased, refuse A, and encourage
B to be deleted.

To compute (1):

	git rev-list ^master ^topic next
	git rev-list ^master        next

	if these match, topic has not merged in next at all.

To compute (2):

	git rev-list master..topic

	if this is empty, it is fully merged to "master".
#!/bin/sh
#
# An example hook script to verify what is about to be committed.
# Called by "git commit" with no arguments.  The hook should
# exit with non-zero status after issuing an appropriate message if
# it wants to stop the commit.
#
# To enable this hook, rename this file to "pre-commit".

if git rev-parse --verify HEAD >/dev/null 2>&1
then
	against=HEAD
else
	# Initial commit: diff against an empty tree object
	against=4b825dc642cb6eb9a060e54bf8d69288fbee4904
fi

# If you want to allow non-ASCII filenames set this variable to true.
allownonascii=$(git config --bool hooks.allownonascii)

# Redirect output to stderr.
exec 1>&2

# Cross platform projects tend to avoid non-ASCII filenames; prevent
# them from being added to the repository. We exploit the fact that the
# printable range starts at the space character and ends with tilde.
if [ "$allownonascii" != "true" ] &&
	# Note that the use of brackets around a tr range is ok here, (it's
	# even required, for portability to Solaris 10's /usr/bin/tr), since
	# the square bracket bytes happen to fall in the designated range.
	test $(git diff --cached --name-only --diff-filter=A -z $against |
	  LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0
then
	cat <<\EOF
Error: Attempt to add a non-ASCII file name.

This can cause problems if you want to work with people on other platforms.

To be portable it is advisable to rename the file.

If you know what you are doing you can disable this check using:

  git config hooks.allownonascii true
EOF
	exit 1
fi

# If there are whitespace errors, print the offending file names and fail.
exec git diff-index --check --cached $against --
#!/bin/sh
#
# An example hook script to check the commit log message taken by
# applypatch from an e-mail message.
#
# The hook should exit with non-zero status after issuing an
# appropriate message if it wants to stop the commit.  The hook is
# allowed to edit the commit message file.
#
# To enable this hook, rename this file to "applypatch-msg".

. git-sh-setup
commitmsg="$(git rev-parse --git-path hooks/commit-msg)"
test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"}
:
#!/bin/sh
#
# An example hook script to make use of push options.
# The example simply echoes all push options that start with 'echoback='
# and rejects all pushes when the "reject" push option is used.
#
# To enable this hook, rename this file to "pre-receive".

if test -n "$GIT_PUSH_OPTION_COUNT"
then
	i=0
	while test "$i" -lt "$GIT_PUSH_OPTION_COUNT"
	do
		eval "value=\$GIT_PUSH_OPTION_$i"
		case "$value" in
		echoback=*)
			echo "echo from the pre-receive-hook: ${value#*=}" >&2
			;;
		reject)
			exit 1
		esac
		i=$((i + 1))
	done
fi
#!/bin/sh
#
# An example hook script to prepare the commit log message.
# Called by "git commit" with the name of the file that has the
# commit message, followed by the description of the commit
# message's source.  The hook's purpose is to edit the commit
# message file.  If the hook fails with a non-zero status,
# the commit is aborted.
#
# To enable this hook, rename this file to "prepare-commit-msg".

# This hook includes three examples.  The first comments out the
# "Conflicts:" part of a merge commit.
#
# The second includes the output of "git diff --name-status -r"
# into the message, just before the "git status" output.  It is
# commented because it doesn't cope with --amend or with squashed
# commits.
#
# The third example adds a Signed-off-by line to the message, that can
# still be edited.  This is rarely a good idea.

case "$2,$3" in
  merge,)
    /usr/bin/perl -i.bak -ne 's/^/# /, s/^# #/#/ if /^Conflicts/ .. /#/; print' "$1" ;;

# ,|template,)
#   /usr/bin/perl -i.bak -pe '
#      print "\n" . `git diff --cached --name-status -r`
#	 if /^#/ && $first++ == 0' "$1" ;;

  *) ;;
esac

# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
#!/bin/sh
#
# An example hook script to prepare a packed repository for use over
# dumb transports.
#
# To enable this hook, rename this file to "post-update".

exec git update-server-info
#!/bin/sh
#
# An example hook script to verify what is about to be committed
# by applypatch from an e-mail message.
#
# The hook should exit with non-zero status after issuing an
# appropriate message if it wants to stop the commit.
#
# To enable this hook, rename this file to "pre-applypatch".

. git-sh-setup
precommit="$(git rev-parse --git-path hooks/pre-commit)"
test -x "$precommit" && exec "$precommit" ${1+"$@"}
:
#!/bin/sh

# An example hook script to verify what is about to be pushed.  Called by "git
# push" after it has checked the remote status, but before anything has been
# pushed.  If this script exits with a non-zero status nothing will be pushed.
#
# This hook is called with the following parameters:
#
# $1 -- Name of the remote to which the push is being done
# $2 -- URL to which the push is being done
#
# If pushing without using a named remote those arguments will be equal.
#
# Information about the commits which are being pushed is supplied as lines to
# the standard input in the form:
#
#   <local ref> <local sha1> <remote ref> <remote sha1>
#
# This sample shows how to prevent push of commits where the log message starts
# with "WIP" (work in progress).

remote="$1"
url="$2"

z40=0000000000000000000000000000000000000000

while read local_ref local_sha remote_ref remote_sha
do
	if [ "$local_sha" = $z40 ]
	then
		# Handle delete
		:
	else
		if [ "$remote_sha" = $z40 ]
		then
			# New branch, examine all commits
			range="$local_sha"
		else
			# Update to existing branch, examine new commits
			range="$remote_sha..$local_sha"
		fi

		# Check for WIP commit
		commit=`git rev-list -n 1 --grep '^WIP' "$range"`
		if [ -n "$commit" ]
		then
			echo >&2 "Found WIP commit in $local_ref, not pushing"
			exit 1
		fi
	fi
done

exit 0
#!/bin/sh
#
# An example hook script to block unannotated tags from entering.
# Called by "git receive-pack" with arguments: refname sha1-old sha1-new
#
# To enable this hook, rename this file to "update".
#
# Config
# ------
# hooks.allowunannotated
#   This boolean sets whether unannotated tags will be allowed into the
#   repository.  By default they won't be.
# hooks.allowdeletetag
#   This boolean sets whether deleting tags will be allowed in the
#   repository.  By default they won't be.
# hooks.allowmodifytag
#   This boolean sets whether a tag may be modified after creation. By default
#   it won't be.
# hooks.allowdeletebranch
#   This boolean sets whether deleting branches will be allowed in the
#   repository.  By default they won't be.
# hooks.denycreatebranch
#   This boolean sets whether remotely creating branches will be denied
#   in the repository.  By default this is allowed.
#

# --- Command line
refname="$1"
oldrev="$2"
newrev="$3"

# --- Safety check
if [ -z "$GIT_DIR" ]; then
	echo "Don't run this script from the command line." >&2
	echo " (if you want, you could supply GIT_DIR then run" >&2
	echo "  $0 <ref> <oldrev> <newrev>)" >&2
	exit 1
fi

if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then
	echo "usage: $0 <ref> <oldrev> <newrev>" >&2
	exit 1
fi

# --- Config
allowunannotated=$(git config --bool hooks.allowunannotated)
allowdeletebranch=$(git config --bool hooks.allowdeletebranch)
denycreatebranch=$(git config --bool hooks.denycreatebranch)
allowdeletetag=$(git config --bool hooks.allowdeletetag)
allowmodifytag=$(git config --bool hooks.allowmodifytag)

# check for no description
projectdesc=$(sed -e '1q' "$GIT_DIR/description")
case "$projectdesc" in
"Unnamed repository"* | "")
	echo "*** Project description file hasn't been set" >&2
	exit 1
	;;
esac

# --- Check types
# if $newrev is 0000...0000, it's a commit to delete a ref.
zero="0000000000000000000000000000000000000000"
if [ "$newrev" = "$zero" ]; then
	newrev_type=delete
else
	newrev_type=$(git cat-file -t $newrev)
fi

case "$refname","$newrev_type" in
	refs/tags/*,commit)
		# un-annotated tag
		short_refname=${refname##refs/tags/}
		if [ "$allowunannotated" != "true" ]; then
			echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2
			echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2
			exit 1
		fi
		;;
	refs/tags/*,delete)
		# delete tag
		if [ "$allowdeletetag" != "true" ]; then
			echo "*** Deleting a tag is not allowed in this repository" >&2
			exit 1
		fi
		;;
	refs/tags/*,tag)
		# annotated tag
		if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1
		then
			echo "*** Tag '$refname' already exists." >&2
			echo "*** Modifying a tag is not allowed in this repository." >&2
			exit 1
		fi
		;;
	refs/heads/*,commit)
		# branch
		if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then
			echo "*** Creating a branch is not allowed in this repository" >&2
			exit 1
		fi
		;;
	refs/heads/*,delete)
		# delete branch
		if [ "$allowdeletebranch" != "true" ]; then
			echo "*** Deleting a branch is not allowed in this repository" >&2
			exit 1
		fi
		;;
	refs/remotes/*,commit)
		# tracking branch
		;;
	refs/remotes/*,delete)
		# delete tracking branch
		if [ "$allowdeletebranch" != "true" ]; then
			echo "*** Deleting a tracking branch is not allowed in this repository" >&2
			exit 1
		fi
		;;
	*)
		# Anything else (is there anything else?)
		echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2
		exit 1
		;;
esac

# --- Finished
exit 0
7d3eb61c1f0c164b9c3139af694b2d38171e4d04
7d3eb61c1f0c164b9c3139af694b2d38171e4d04
ref: refs/remotes/origin/master
DIRC      X-    X-      H          8@'O ީ) 
.gitignore        X-    X-      H         s!=[ќ;; ProgressBar/Manager.php   X-    X-      H         Ai:U8unlX#+ ProgressBar/Registry.php  X-    X-      H         qLJlv73'M4+ 	README.md X-    X-      H         .$nf5vy{"l composer.json     X-    X-      H         NVs_/QGwy= test/AllTest.php  X-    X-      H         ޷z:a$ƺǕ/ %test/ProgressBar/Test/ManagerTest.php     X-    X-      H         ,PFv#N	& &test/ProgressBar/Test/RegistryTest.php    TREE    8 2
%iFOSr_test 3 1
P(
7G8&ProgressBar 2 1
=|~VJTest 2 0
~eGEJ]MeProgressBar 2 0
%MCw+āS^-t}b(9 'oG# pack-refs with: peeled fully-peeled 
7d3eb61c1f0c164b9c3139af694b2d38171e4d04 refs/remotes/origin/master
7d3eb61c1f0c164b9c3139af694b2d38171e4d04	not-for-merge	branch 'master' of https://github.com/guiguiboy/PHP-CLI-Progress-Bar
{
    "name": "guiguiboy/php-cli-progress-bar",
    "license": "MIT",
    "version": "0.0.4",
    "description": "Progress bar for PHP CLI scripts",
    "authors": [
        {
            "name": "Guillaume",
            "email": "guillaume.bretou@gmail.com"
        }
    ],
    "require": {
		"php": ">=5.3.0",
		"ext-mbstring": "*"
    },
    "homepage": "https://github.com/guiguiboy/PHP-CLI-Progress-Bar",
    "keywords": ["cli", "command-line", "progress", "bar"],
    "autoload": {
        "psr-0": {
            "ProgressBar" : "."
        }
    }
}
<?php

// autoload_namespaces.php @generated by Composer

$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);

return array(
    'ProgressBar' => array($vendorDir . '/guiguiboy/php-cli-progress-bar'),
);
MIT License

Copyright (c) 2017 Composer

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.
## [Unreleased]

## [1.4.2] - 2020-06-04
  * Fixed: ignore SIGINTs to let the restarted process handle them.

## [1.4.1] - 2020-03-01
  * Fixed: restart fails if an ini file is empty.

## [1.4.0] - 2019-11-06
  * Added: support for `NO_COLOR` environment variable: https://no-color.org
  * Added: color support for Hyper terminal: https://github.com/zeit/hyper
  * Fixed: correct capitalization of Xdebug (apparently).
  * Fixed: improved handling for uopz extension.

## [1.3.3] - 2019-05-27
  * Fixed: add environment changes to `$_ENV` if it is being used.

## [1.3.2] - 2019-01-28
  * Fixed: exit call being blocked by uopz extension, resulting in application code running twice.

## [1.3.1] - 2018-11-29
  * Fixed: fail restart if `passthru` has been disabled in `disable_functions`.
  * Fixed: fail restart if an ini file cannot be opened, otherwise settings will be missing.

## [1.3.0] - 2018-08-31
  * Added: `setPersistent` method to use environment variables for the restart.
  * Fixed: improved debugging by writing output to stderr.
  * Fixed: no restart when `php_ini_scanned_files` is not functional and is needed.

## [1.2.1] - 2018-08-23
  * Fixed: fatal error with apc, when using `apc.mmap_file_mask`.

## [1.2.0] - 2018-08-16
  * Added: debug information using `XDEBUG_HANDLER_DEBUG`.
  * Added: fluent interface for setters.
  * Added: `PhpConfig` helper class for calling PHP sub-processes.
  * Added: `PHPRC` original value to restart stettings, for use in a restarted process.
  * Changed: internal procedure to disable ini-scanning, using `-n` command-line option.
  * Fixed: replaced `escapeshellarg` usage to avoid locale problems.
  * Fixed: improved color-option handling to respect double-dash delimiter.
  * Fixed: color-option handling regression from main script changes.
  * Fixed: improved handling when checking main script.
  * Fixed: handling for standard input, that never actually did anything.
  * Fixed: fatal error when ctype extension is not available.

## [1.1.0] - 2018-04-11
  * Added: `getRestartSettings` method for calling PHP processes in a restarted process.
  * Added: API definition and @internal class annotations.
  * Added: protected `requiresRestart` method for extending classes.
  * Added: `setMainScript` method for applications that change the working directory.
  * Changed: private `tmpIni` variable to protected for extending classes.
  * Fixed: environment variables not available in $_SERVER when restored in the restart.
  * Fixed: relative path problems caused by Phar::interceptFileFuncs.
  * Fixed: incorrect handling when script file cannot be found.

## [1.0.0] - 2018-03-08
  * Added: PSR3 logging for optional status output.
  * Added: existing ini settings are merged to catch command-line overrides.
  * Added: code, tests and other artefacts to decouple from Composer.
  * Break: the following class was renamed:
    - `Composer\XdebugHandler` -> `Composer\XdebugHandler\XdebugHandler`

[Unreleased]: https://github.com/composer/xdebug-handler/compare/1.4.2...HEAD
[1.4.2]: https://github.com/composer/xdebug-handler/compare/1.4.1...1.4.2
[1.4.1]: https://github.com/composer/xdebug-handler/compare/1.4.0...1.4.1
[1.4.0]: https://github.com/composer/xdebug-handler/compare/1.3.3...1.4.0
[1.3.3]: https://github.com/composer/xdebug-handler/compare/1.3.2...1.3.3
[1.3.2]: https://github.com/composer/xdebug-handler/compare/1.3.1...1.3.2
[1.3.1]: https://github.com/composer/xdebug-handler/compare/1.3.0...1.3.1
[1.3.0]: https://github.com/composer/xdebug-handler/compare/1.2.1...1.3.0
[1.2.1]: https://github.com/composer/xdebug-handler/compare/1.2.0...1.2.1
[1.2.0]: https://github.com/composer/xdebug-handler/compare/1.1.0...1.2.0
[1.1.0]: https://github.com/composer/xdebug-handler/compare/1.0.0...1.1.0
[1.0.0]: https://github.com/composer/xdebug-handler/compare/d66f0d15cb57...1.0.0
# composer/xdebug-handler

[![packagist](https://img.shields.io/packagist/v/composer/xdebug-handler.svg)](https://packagist.org/packages/composer/xdebug-handler)
[![linux build](https://img.shields.io/travis/composer/xdebug-handler/master.svg?label=linux+build)](https://travis-ci.org/composer/xdebug-handler)
[![windows build](https://img.shields.io/appveyor/ci/Seldaek/xdebug-handler/master.svg?label=windows+build)](https://ci.appveyor.com/project/Seldaek/xdebug-handler)
![license](https://img.shields.io/github/license/composer/xdebug-handler.svg)
![php](https://img.shields.io/packagist/php-v/composer/xdebug-handler.svg?colorB=8892BF&label=php)

Restart a CLI process without loading the Xdebug extension.

Originally written as part of [composer/composer](https://github.com/composer/composer),
now extracted and made available as a stand-alone library.

## Installation

Install the latest version with:

```bash
$ composer require composer/xdebug-handler
```

## Requirements

* PHP 5.3.2 minimum, although functionality is disabled below PHP 5.4.0. Using the latest PHP version is highly recommended.

## Basic Usage
```php
use Composer\XdebugHandler\XdebugHandler;

$xdebug = new XdebugHandler('myapp');
$xdebug->check();
unset($xdebug);
```

The constructor takes two parameters:

#### _$envPrefix_
This is used to create distinct environment variables and is upper-cased and prepended to default base values. The above example enables the use of:

- `MYAPP_ALLOW_XDEBUG=1` to override automatic restart and allow Xdebug
- `MYAPP_ORIGINAL_INIS` to obtain ini file locations in a restarted process

#### _$colorOption_
This optional value is added to the restart command-line and is needed to force color output in a piped child process. Only long-options are supported, for example `--ansi` or `--colors=always` etc.

If the original command-line contains an argument that pattern matches this value (for example `--no-ansi`, `--colors=never`) then _$colorOption_ is ignored.

If the pattern match ends with `=auto` (for example `--colors=auto`), the argument is replaced by _$colorOption_. Otherwise it is added at either the end of the command-line, or preceding the first double-dash `--` delimiter.

## Advanced Usage

* [How it works](#how-it-works)
* [Limitations](#limitations)
* [Helper methods](#helper-methods)
* [Setter methods](#setter-methods)
* [Process configuration](#process-configuration)
* [Troubleshooting](#troubleshooting)
* [Extending the library](#extending-the-library)

### How it works

A temporary ini file is created from the loaded (and scanned) ini files, with any references to the Xdebug extension commented out. Current ini settings are merged, so that most ini settings made on the command-line or by the application are included (see [Limitations](#limitations))

* `MYAPP_ALLOW_XDEBUG` is set with internal data to flag and use in the restart.
* The command-line and environment are [configured](#process-configuration) for the restart.
* The application is restarted in a new process using `passthru`.
    * The restart settings are stored in the environment.
    * `MYAPP_ALLOW_XDEBUG` is unset.
    * The application runs and exits.
* The main process exits with the exit code from the restarted process.

### Limitations
There are a few things to be aware of when running inside a restarted process.

* Extensions set on the command-line will not be loaded.
* Ini file locations will be reported as per the restart - see [getAllIniFiles()](#getallinifiles).
* Php sub-processes may be loaded with Xdebug enabled - see [Process configuration](#process-configuration).
* On Windows `sapi_windows_set_ctrl_handler` handlers will not receive CTRL events.

### Helper methods
These static methods provide information from the current process, regardless of whether it has been restarted or not.

#### _getAllIniFiles()_
Returns an array of the original ini file locations. Use this instead of calling `php_ini_loaded_file` and `php_ini_scanned_files`, which will report the wrong values in a restarted process.

```php
use Composer\XdebugHandler\XdebugHandler;

$files = XdebugHandler::getAllIniFiles();

# $files[0] always exists, it could be an empty string
$loadedIni = array_shift($files);
$scannedInis = $files;
```

These locations are also available in the `MYAPP_ORIGINAL_INIS` environment variable. This is a path-separated string comprising the location returned from `php_ini_loaded_file`, which could be empty, followed by locations parsed from calling `php_ini_scanned_files`.

#### _getRestartSettings()_
Returns an array of settings that can be used with PHP [sub-processes](#sub-processes), or null if the process was not restarted.

```php
use Composer\XdebugHandler\XdebugHandler;

$settings = XdebugHandler::getRestartSettings();
/**
 * $settings: array (if the current process was restarted,
 * or called with the settings from a previous restart), or null
 *
 *    'tmpIni'      => the temporary ini file used in the restart (string)
 *    'scannedInis' => if there were any scanned inis (bool)
 *    'scanDir'     => the original PHP_INI_SCAN_DIR value (false|string)
 *    'phprc'       => the original PHPRC value (false|string)
 *    'inis'        => the original inis from getAllIniFiles (array)
 *    'skipped'     => the skipped version from getSkippedVersion (string)
 */
```

#### _getSkippedVersion()_
Returns the Xdebug version string that was skipped by the restart, or an empty value if there was no restart (or Xdebug is still loaded, perhaps by an extending class restarting for a reason other than removing Xdebug).

```php
use Composer\XdebugHandler\XdebugHandler;

$version = XdebugHandler::getSkippedVersion();
# $version: '2.6.0' (for example), or an empty string
```

### Setter methods
These methods implement a fluent interface and must be called before the main `check()` method.

#### _setLogger($logger)_
Enables the output of status messages to an external PSR3 logger. All messages are reported with either `DEBUG` or `WARNING` log levels. For example (showing the level and message):

```
// Restart overridden
DEBUG    Checking MYAPP_ALLOW_XDEBUG
DEBUG    The Xdebug extension is loaded (2.5.0)
DEBUG    No restart (MYAPP_ALLOW_XDEBUG=1)

// Failed restart
DEBUG    Checking MYAPP_ALLOW_XDEBUG
DEBUG    The Xdebug extension is loaded (2.5.0)
WARNING  No restart (Unable to create temp ini file at: ...)
```

Status messages can also be output with `XDEBUG_HANDLER_DEBUG`. See [Troubleshooting](#troubleshooting).

#### _setMainScript($script)_
Sets the location of the main script to run in the restart. This is only needed in more esoteric use-cases, or if the `argv[0]` location is inaccessible. The script name `--` is supported for standard input.

#### _setPersistent()_
Configures the restart using [persistent settings](#persistent-settings), so that Xdebug is not loaded in any sub-process.

Use this method if your application invokes one or more PHP sub-process and the Xdebug extension is not needed. This avoids the overhead of implementing specific [sub-process](#sub-processes) strategies.

Alternatively, this method can be used to set up a default _Xdebug-free_ environment which can be changed if a sub-process requires Xdebug, then restored afterwards:

```php
function SubProcessWithXdebug()
{
    $phpConfig = new Composer\XdebugHandler\PhpConfig();

    # Set the environment to the original configuration
    $phpConfig->useOriginal();

    # run the process with Xdebug loaded
    ...

    # Restore Xdebug-free environment
    $phpConfig->usePersistent();
}
```

### Process configuration
The library offers two strategies to invoke a new PHP process without loading Xdebug, using either _standard_ or _persistent_ settings. Note that this is only important if the application calls a PHP sub-process.

#### Standard settings
Uses command-line options to remove Xdebug from the new process only.

* The -n option is added to the command-line. This tells PHP not to scan for additional inis.
* The temporary ini is added to the command-line with the -c option.

>_If the new process calls a PHP sub-process, Xdebug will be loaded in that sub-process (unless it implements xdebug-handler, in which case there will be another restart)._

This is the default strategy used in the restart.

#### Persistent settings
Uses environment variables to remove Xdebug from the new process and persist these settings to any sub-process.

* `PHP_INI_SCAN_DIR` is set to an empty string. This tells PHP not to scan for additional inis.
* `PHPRC` is set to the temporary ini.

>_If the new process calls a PHP sub-process, Xdebug will not be loaded in that sub-process._

This strategy can be used in the restart by calling [setPersistent()](#setpersistent).

#### Sub-processes
The `PhpConfig` helper class makes it easy to invoke a PHP sub-process (with or without Xdebug loaded), regardless of whether there has been a restart.

Each of its methods returns an array of PHP options (to add to the command-line) and sets up the environment for the required strategy. The [getRestartSettings()](#getrestartsettings) method is used internally.

* `useOriginal()` - Xdebug will be loaded in the new process.
* `useStandard()` - Xdebug will **not** be loaded in the new process - see [standard settings](#standard-settings).
* `userPersistent()` - Xdebug will **not** be loaded in the new process - see [persistent settings](#persistent-settings)

If there was no restart, an empty options array is returned and the environment is not changed.

```php
use Composer\XdebugHandler\PhpConfig;

$config = new PhpConfig;

$options = $config->useOriginal();
# $options:     empty array
# environment:  PHPRC and PHP_INI_SCAN_DIR set to original values

$options = $config->useStandard();
# $options:     [-n, -c, tmpIni]
# environment:  PHPRC and PHP_INI_SCAN_DIR set to original values

$options = $config->usePersistent();
# $options:     empty array
# environment:  PHPRC=tmpIni, PHP_INI_SCAN_DIR=''
```

### Troubleshooting
The following environment settings can be used to troubleshoot unexpected behavior:

* `XDEBUG_HANDLER_DEBUG=1` Outputs status messages to `STDERR`, if it is defined, irrespective of any PSR3 logger. Each message is prefixed `xdebug-handler[pid]`, where pid is the process identifier.

* `XDEBUG_HANDLER_DEBUG=2` As above, but additionally saves the temporary ini file and reports its location in a status message.

### Extending the library
The API is defined by classes and their accessible elements that are not annotated as @internal. The main class has two protected methods that can be overridden to provide additional functionality:

#### _requiresRestart($isLoaded)_
By default the process will restart if Xdebug is loaded. Extending this method allows an application to decide, by returning a boolean (or equivalent) value. It is only called if `MYAPP_ALLOW_XDEBUG` is empty, so it will not be called in the restarted process (where this variable contains internal data), or if the restart has been overridden.

Note that the [setMainScript()](#setmainscriptscript) and [setPersistent()](#setpersistent) setters can be used here, if required.

#### _restart($command)_
An application can extend this to modify the temporary ini file, its location given in the `tmpIni` property. New settings can be safely appended to the end of the data, which is `PHP_EOL` terminated.

Note that the `$command` parameter is the escaped command-line string that will be used for the new process and must be treated accordingly.

Remember to finish with `parent::restart($command)`.

#### Example
This example demonstrates two ways to extend basic functionality:

* To avoid the overhead of spinning up a new process, the restart is skipped if a simple help command is requested.

* The application needs write-access to phar files, so it will force a restart if `phar.readonly` is set (regardless of whether Xdebug is loaded) and change this value in the temporary ini file.

```php
use Composer\XdebugHandler\XdebugHandler;
use MyApp\Command;

class MyRestarter extends XdebugHandler
{
    private $required;

    protected function requiresRestart($isLoaded)
    {
        if (Command::isHelp()) {
            # No need to disable Xdebug for this
            return false;
        }

        $this->required = (bool) ini_get('phar.readonly');
        return $isLoaded || $this->required;
    }

    protected function restart($command)
    {
        if ($this->required) {
            # Add required ini setting to tmpIni
            $content = file_get_contents($this->tmpIni);
            $content .= 'phar.readonly=0'.PHP_EOL;
            file_put_contents($this->tmpIni, $content);
        }

        parent::restart($command);
    }
}
```

## License
composer/xdebug-handler is licensed under the MIT License, see the LICENSE file for details.
{
    "name": "composer/xdebug-handler",
    "description": "Restarts a process without Xdebug.",
    "type": "library",
    "license": "MIT",
    "keywords": [
        "xdebug",
        "performance"
    ],
    "authors": [
        {
            "name": "John Stevenson",
            "email": "john-stevenson@blueyonder.co.uk"
        }
    ],
    "support": {
        "irc": "irc://irc.freenode.org/composer",
        "issues": "https://github.com/composer/xdebug-handler/issues"
    },
    "require": {
        "php": "^5.3.2 || ^7.0 || ^8.0",
        "psr/log": "^1.0"
    },
    "require-dev": {
        "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8"
    },
    "autoload": {
        "psr-4": {
            "Composer\\XdebugHandler\\": "src"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Composer\\XdebugHandler\\": "tests"
        }
    },
    "scripts": {
        "test": "phpunit"
    }
}
<?php

/*
 * This file is part of composer/xdebug-handler.
 *
 * (c) Composer <https://github.com/composer>
 *
 * For the full copyright and license information, please view
 * the LICENSE file that was distributed with this source code.
 */

namespace Composer\XdebugHandler;

/**
 * @author John Stevenson <john-stevenson@blueyonder.co.uk>
 */
class PhpConfig
{
    /**
     * Use the original PHP configuration
     *
     * @return array PHP cli options
     */
    public function useOriginal()
    {
        $this->getDataAndReset();
        return array();
    }

    /**
     * Use standard restart settings
     *
     * @return array PHP cli options
     */
    public function useStandard()
    {
        if ($data = $this->getDataAndReset()) {
            return array('-n', '-c', $data['tmpIni']);
        }

        return array();
    }

    /**
     * Use environment variables to persist settings
     *
     * @return array PHP cli options
     */
    public function usePersistent()
    {
        if ($data = $this->getDataAndReset()) {
            Process::setEnv('PHPRC', $data['tmpIni']);
            Process::setEnv('PHP_INI_SCAN_DIR', '');
        }

        return array();
    }

    /**
     * Returns restart data if available and resets the environment
     *
     * @return array|null
     */
    private function getDataAndReset()
    {
        if ($data = XdebugHandler::getRestartSettings()) {
            Process::setEnv('PHPRC', $data['phprc']);
            Process::setEnv('PHP_INI_SCAN_DIR', $data['scanDir']);
        }

        return $data;
    }
}
<?php

/*
 * This file is part of composer/xdebug-handler.
 *
 * (c) Composer <https://github.com/composer>
 *
 * For the full copyright and license information, please view
 * the LICENSE file that was distributed with this source code.
 */

namespace Composer\XdebugHandler;

use Psr\Log\LoggerInterface;
use Psr\Log\LogLevel;

/**
 * @author John Stevenson <john-stevenson@blueyonder.co.uk>
 * @internal
 */
class Status
{
    const ENV_RESTART = 'XDEBUG_HANDLER_RESTART';
    const CHECK = 'Check';
    const ERROR = 'Error';
    const INFO = 'Info';
    const NORESTART = 'NoRestart';
    const RESTART = 'Restart';
    const RESTARTING = 'Restarting';
    const RESTARTED = 'Restarted';

    private $debug;
    private $envAllowXdebug;
    private $loaded;
    private $logger;
    private $time;

    /**
     * Constructor
     *
     * @param string $envAllowXdebug Prefixed _ALLOW_XDEBUG name
     * @param bool $debug Whether debug output is required
     */
    public function __construct($envAllowXdebug, $debug)
    {
        $start = getenv(self::ENV_RESTART);
        Process::setEnv(self::ENV_RESTART);
        $this->time = $start ? round((microtime(true) - $start) * 1000) : 0;

        $this->envAllowXdebug = $envAllowXdebug;
        $this->debug = $debug && defined('STDERR');
    }

    /**
     * @param LoggerInterface $logger
     */
    public function setLogger(LoggerInterface $logger)
    {
        $this->logger = $logger;
    }

    /**
     * Calls a handler method to report a message
     *
     * @param string $op The handler constant
     * @param null|string $data Data required by the handler
     */
    public function report($op, $data)
    {
        if ($this->logger || $this->debug) {
            call_user_func(array($this, 'report'.$op), $data);
        }
    }

    /**
     * Outputs a status message
     *
     * @param string $text
     * @param string $level
     */
    private function output($text, $level = null)
    {
        if ($this->logger) {
            $this->logger->log($level ?: LogLevel::DEBUG, $text);
        }

        if ($this->debug) {
            fwrite(STDERR, sprintf('xdebug-handler[%d] %s', getmypid(), $text.PHP_EOL));
        }
    }

    private function reportCheck($loaded)
    {
        $this->loaded = $loaded;
        $this->output('Checking '.$this->envAllowXdebug);
    }

    private function reportError($error)
    {
        $this->output(sprintf('No restart (%s)', $error), LogLevel::WARNING);
    }

    private function reportInfo($info)
    {
        $this->output($info);
    }

    private function reportNoRestart()
    {
        $this->output($this->getLoadedMessage());

        if ($this->loaded) {
            $text = sprintf('No restart (%s)', $this->getEnvAllow());
            if (!getenv($this->envAllowXdebug)) {
                $text .= ' Allowed by application';
            }
            $this->output($text);
        }
    }

    private function reportRestart()
    {
        $this->output($this->getLoadedMessage());
        Process::setEnv(self::ENV_RESTART, (string) microtime(true));
    }

    private function reportRestarted()
    {
        $loaded = $this->getLoadedMessage();
        $text = sprintf('Restarted (%d ms). %s', $this->time, $loaded);
        $level = $this->loaded ? LogLevel::WARNING : null;
        $this->output($text, $level);
    }

    private function reportRestarting($command)
    {
        $text = sprintf('Process restarting (%s)', $this->getEnvAllow());
        $this->output($text);
        $text = 'Running '.$command;
        $this->output($text);
    }

    /**
     * Returns the _ALLOW_XDEBUG environment variable as name=value
     *
     * @return string
     */
    private function getEnvAllow()
    {
        return $this->envAllowXdebug.'='.getenv($this->envAllowXdebug);
    }

    /**
     * Returns the Xdebug status and version
     *
     * @return string
     */
    private function getLoadedMessage()
    {
        $loaded = $this->loaded ? sprintf('loaded (%s)', $this->loaded) : 'not loaded';
        return 'The Xdebug extension is '.$loaded;
    }
}
<?php

/*
 * This file is part of composer/xdebug-handler.
 *
 * (c) Composer <https://github.com/composer>
 *
 * For the full copyright and license information, please view
 * the LICENSE file that was distributed with this source code.
 */

namespace Composer\XdebugHandler;

use Psr\Log\LoggerInterface;

/**
 * @author John Stevenson <john-stevenson@blueyonder.co.uk>
 */
class XdebugHandler
{
    const SUFFIX_ALLOW = '_ALLOW_XDEBUG';
    const SUFFIX_INIS = '_ORIGINAL_INIS';
    const RESTART_ID = 'internal';
    const RESTART_SETTINGS = 'XDEBUG_HANDLER_SETTINGS';
    const DEBUG = 'XDEBUG_HANDLER_DEBUG';

    /** @var string|null */
    protected $tmpIni;

    private static $inRestart;
    private static $name;
    private static $skipped;

    private $cli;
    private $colorOption;
    private $debug;
    private $envAllowXdebug;
    private $envOriginalInis;
    private $loaded;
    private $persistent;
    private $script;
    /** @var Status|null */
    private $statusWriter;

    /**
     * Constructor
     *
     * The $envPrefix is used to create distinct environment variables. It is
     * uppercased and prepended to the default base values. For example 'myapp'
     * would result in MYAPP_ALLOW_XDEBUG and MYAPP_ORIGINAL_INIS.
     *
     * @param string $envPrefix Value used in environment variables
     * @param string $colorOption Command-line long option to force color output
     * @throws \RuntimeException If a parameter is invalid
     */
    public function __construct($envPrefix, $colorOption = '')
    {
        if (!is_string($envPrefix) || empty($envPrefix) || !is_string($colorOption)) {
            throw new \RuntimeException('Invalid constructor parameter');
        }

        self::$name = strtoupper($envPrefix);
        $this->envAllowXdebug = self::$name.self::SUFFIX_ALLOW;
        $this->envOriginalInis = self::$name.self::SUFFIX_INIS;

        $this->colorOption = $colorOption;

        if (extension_loaded('xdebug')) {
            $ext = new \ReflectionExtension('xdebug');
            $this->loaded = $ext->getVersion() ?: 'unknown';
        }

        if ($this->cli = PHP_SAPI === 'cli') {
            $this->debug = getenv(self::DEBUG);
        }

        $this->statusWriter = new Status($this->envAllowXdebug, (bool) $this->debug);
    }

    /**
     * Activates status message output to a PSR3 logger
     *
     * @param LoggerInterface $logger
     *
     * @return $this
     */
    public function setLogger(LoggerInterface $logger)
    {
        $this->statusWriter->setLogger($logger);
        return $this;
    }

    /**
     * Sets the main script location if it cannot be called from argv
     *
     * @param string $script
     *
     * @return $this
     */
    public function setMainScript($script)
    {
        $this->script = $script;
        return $this;
    }

    /**
     * Persist the settings to keep Xdebug out of sub-processes
     *
     * @return $this
     */
    public function setPersistent()
    {
        $this->persistent = true;
        return $this;
    }

    /**
     * Checks if Xdebug is loaded and the process needs to be restarted
     *
     * This behaviour can be disabled by setting the MYAPP_ALLOW_XDEBUG
     * environment variable to 1. This variable is used internally so that
     * the restarted process is created only once.
     */
    public function check()
    {
        $this->notify(Status::CHECK, $this->loaded);
        $envArgs = explode('|', (string) getenv($this->envAllowXdebug));

        if (empty($envArgs[0]) && $this->requiresRestart((bool) $this->loaded)) {
            // Restart required
            $this->notify(Status::RESTART);

            if ($this->prepareRestart()) {
                $command = $this->getCommand();
                $this->notify(Status::RESTARTING, $command);
                $this->restart($command);
            }
            return;
        }

        if (self::RESTART_ID === $envArgs[0] && count($envArgs) === 5) {
            // Restarting, so unset environment variable and use saved values
            $this->notify(Status::RESTARTED);

            Process::setEnv($this->envAllowXdebug);
            self::$inRestart = true;

            if (!$this->loaded) {
                // Skipped version is only set if Xdebug is not loaded
                self::$skipped = $envArgs[1];
            }

            // Put restart settings in the environment
            $this->setEnvRestartSettings($envArgs);
            return;
        }

        $this->notify(Status::NORESTART);

        if ($settings = self::getRestartSettings()) {
            // Called with existing settings, so sync our settings
            $this->syncSettings($settings);
        }
    }

    /**
     * Returns an array of php.ini locations with at least one entry
     *
     * The equivalent of calling php_ini_loaded_file then php_ini_scanned_files.
     * The loaded ini location is the first entry and may be empty.
     *
     * @return array
     */
    public static function getAllIniFiles()
    {
        if (!empty(self::$name)) {
            $env = getenv(self::$name.self::SUFFIX_INIS);

            if (false !== $env) {
                return explode(PATH_SEPARATOR, $env);
            }
        }

        $paths = array((string) php_ini_loaded_file());

        if ($scanned = php_ini_scanned_files()) {
            $paths = array_merge($paths, array_map('trim', explode(',', $scanned)));
        }

        return $paths;
    }

    /**
     * Returns an array of restart settings or null
     *
     * Settings will be available if the current process was restarted, or
     * called with the settings from an existing restart.
     *
     * @return array|null
     */
    public static function getRestartSettings()
    {
        $envArgs = explode('|', (string) getenv(self::RESTART_SETTINGS));

        if (count($envArgs) !== 6
            || (!self::$inRestart && php_ini_loaded_file() !== $envArgs[0])) {
            return;
        }

        return array(
            'tmpIni' => $envArgs[0],
            'scannedInis' => (bool) $envArgs[1],
            'scanDir' => '*' === $envArgs[2] ? false : $envArgs[2],
            'phprc' => '*' === $envArgs[3] ? false : $envArgs[3],
            'inis' => explode(PATH_SEPARATOR, $envArgs[4]),
            'skipped' => $envArgs[5],
        );
    }

    /**
     * Returns the Xdebug version that triggered a successful restart
     *
     * @return string
     */
    public static function getSkippedVersion()
    {
        return (string) self::$skipped;
    }

    /**
     * Returns true if Xdebug is loaded, or as directed by an extending class
     *
     * @param bool $isLoaded Whether Xdebug is loaded
     *
     * @return bool
     */
    protected function requiresRestart($isLoaded)
    {
        return $isLoaded;
    }

    /**
     * Allows an extending class to access the tmpIni
     *
     * @param string $command
     */
    protected function restart($command)
    {
        $this->doRestart($command);
    }

    /**
     * Executes the restarted command then deletes the tmp ini
     *
     * @param string $command
     */
    private function doRestart($command)
    {
        // Ignore SIGINTs here so the child process can handle them. To replicate this
        // on Windows we would need to use proc_open (PHP 7.4+) rather than passthru.
        if (function_exists('pcntl_async_signals') && function_exists('pcntl_signal')) {
            pcntl_async_signals(true);
            pcntl_signal(SIGINT, SIG_IGN);
        }

        passthru($command, $exitCode);
        $this->notify(Status::INFO, 'Restarted process exited '.$exitCode);

        if ($this->debug === '2') {
            $this->notify(Status::INFO, 'Temp ini saved: '.$this->tmpIni);
        } else {
            @unlink($this->tmpIni);
        }

        exit($exitCode);
    }

    /**
     * Returns true if everything was written for the restart
     *
     * If any of the following fails (however unlikely) we must return false to
     * stop potential recursion:
     *   - tmp ini file creation
     *   - environment variable creation
     *
     * @return bool
     */
    private function prepareRestart()
    {
        $error = '';
        $iniFiles = self::getAllIniFiles();
        $scannedInis = count($iniFiles) > 1;
        $tmpDir = sys_get_temp_dir();

        if (!$this->cli) {
            $error = 'Unsupported SAPI: '.PHP_SAPI;
        } elseif (!defined('PHP_BINARY')) {
            $error = 'PHP version is too old: '.PHP_VERSION;
        } elseif (!$this->checkConfiguration($info)) {
            $error = $info;
        } elseif (!$this->checkScanDirConfig()) {
            $error = 'PHP version does not report scanned inis: '.PHP_VERSION;
        } elseif (!$this->checkMainScript()) {
            $error = 'Unable to access main script: '.$this->script;
        } elseif (!$this->writeTmpIni($iniFiles, $tmpDir, $error)) {
            $error = $error ?: 'Unable to create temp ini file at: '.$tmpDir;
        } elseif (!$this->setEnvironment($scannedInis, $iniFiles)) {
            $error = 'Unable to set environment variables';
        }

        if ($error) {
            $this->notify(Status::ERROR, $error);
        }

        return empty($error);
    }

    /**
     * Returns true if the tmp ini file was written
     *
     * @param array $iniFiles All ini files used in the current process
     * @param string $tmpDir The system temporary directory
     * @param string $error Set by method if ini file cannot be read
     *
     * @return bool
     */
    private function writeTmpIni(array $iniFiles, $tmpDir, &$error)
    {
        if (!$this->tmpIni = @tempnam($tmpDir, '')) {
            return false;
        }

        // $iniFiles has at least one item and it may be empty
        if (empty($iniFiles[0])) {
            array_shift($iniFiles);
        }

        $content = '';
        $regex = '/^\s*(zend_extension\s*=.*xdebug.*)$/mi';

        foreach ($iniFiles as $file) {
            // Check for inaccessible ini files
            if (($data = @file_get_contents($file)) === false) {
                $error = 'Unable to read ini: '.$file;
                return false;
            }
            $content .= preg_replace($regex, ';$1', $data).PHP_EOL;
        }

        // Merge loaded settings into our ini content, if it is valid
        if ($config = parse_ini_string($content)) {
            $loaded = ini_get_all(null, false);
            $content .= $this->mergeLoadedConfig($loaded, $config);
        }

        // Work-around for https://bugs.php.net/bug.php?id=75932
        $content .= 'opcache.enable_cli=0'.PHP_EOL;

        return @file_put_contents($this->tmpIni, $content);
    }

    /**
     * Returns the restart command line
     *
     * @return string
     */
    private function getCommand()
    {
        $php = array(PHP_BINARY);
        $args = array_slice($_SERVER['argv'], 1);

        if (!$this->persistent) {
            // Use command-line options
            array_push($php, '-n', '-c', $this->tmpIni);
        }

        if (defined('STDOUT') && Process::supportsColor(STDOUT)) {
            $args = Process::addColorOption($args, $this->colorOption);
        }

        $args = array_merge($php, array($this->script), $args);

        $cmd = Process::escape(array_shift($args), true, true);
        foreach ($args as $arg) {
            $cmd .= ' '.Process::escape($arg);
        }

        return $cmd;
    }

    /**
     * Returns true if the restart environment variables were set
     *
     * No need to update $_SERVER since this is set in the restarted process.
     *
     * @param bool $scannedInis Whether there were scanned ini files
     * @param array $iniFiles All ini files used in the current process
     *
     * @return bool
     */
    private function setEnvironment($scannedInis, array $iniFiles)
    {
        $scanDir = getenv('PHP_INI_SCAN_DIR');
        $phprc = getenv('PHPRC');

        // Make original inis available to restarted process
        if (!putenv($this->envOriginalInis.'='.implode(PATH_SEPARATOR, $iniFiles))) {
            return false;
        }

        if ($this->persistent) {
            // Use the environment to persist the settings
            if (!putenv('PHP_INI_SCAN_DIR=') || !putenv('PHPRC='.$this->tmpIni)) {
                return false;
            }
        }

        // Flag restarted process and save values for it to use
        $envArgs = array(
            self::RESTART_ID,
            $this->loaded,
            (int) $scannedInis,
            false === $scanDir ? '*' : $scanDir,
            false === $phprc ? '*' : $phprc,
        );

        return putenv($this->envAllowXdebug.'='.implode('|', $envArgs));
    }

    /**
     * Logs status messages
     *
     * @param string $op Status handler constant
     * @param null|string $data Optional data
     */
    private function notify($op, $data = null)
    {
        $this->statusWriter->report($op, $data);
    }

    /**
     * Returns default, changed and command-line ini settings
     *
     * @param array $loadedConfig All current ini settings
     * @param array $iniConfig Settings from user ini files
     *
     * @return string
     */
    private function mergeLoadedConfig(array $loadedConfig, array $iniConfig)
    {
        $content = '';

        foreach ($loadedConfig as $name => $value) {
            // Value will either be null, string or array (HHVM only)
            if (!is_string($value)
                || strpos($name, 'xdebug') === 0
                || $name === 'apc.mmap_file_mask') {
                continue;
            }

            if (!isset($iniConfig[$name]) || $iniConfig[$name] !== $value) {
                // Double-quote escape each value
                $content .= $name.'="'.addcslashes($value, '\\"').'"'.PHP_EOL;
            }
        }

        return $content;
    }

    /**
     * Returns true if the script name can be used
     *
     * @return bool
     */
    private function checkMainScript()
    {
        if (null !== $this->script) {
            // Allow an application to set -- for standard input
            return file_exists($this->script) || '--' === $this->script;
        }

        if (file_exists($this->script = $_SERVER['argv'][0])) {
            return true;
        }

        // Use a backtrace to resolve Phar and chdir issues
        $options = PHP_VERSION_ID >= 50306 ? DEBUG_BACKTRACE_IGNORE_ARGS : false;
        $trace = debug_backtrace($options);

        if (($main = end($trace)) && isset($main['file'])) {
            return file_exists($this->script = $main['file']);
        }

        return false;
    }

    /**
     * Adds restart settings to the environment
     *
     * @param string $envArgs
     */
    private function setEnvRestartSettings($envArgs)
    {
        $settings = array(
            php_ini_loaded_file(),
            $envArgs[2],
            $envArgs[3],
            $envArgs[4],
            getenv($this->envOriginalInis),
            self::$skipped,
        );

        Process::setEnv(self::RESTART_SETTINGS, implode('|', $settings));
    }

    /**
     * Syncs settings and the environment if called with existing settings
     *
     * @param array $settings
     */
    private function syncSettings(array $settings)
    {
        if (false === getenv($this->envOriginalInis)) {
            // Called by another app, so make original inis available
            Process::setEnv($this->envOriginalInis, implode(PATH_SEPARATOR, $settings['inis']));
        }

        self::$skipped = $settings['skipped'];
        $this->notify(Status::INFO, 'Process called with existing restart settings');
    }

    /**
     * Returns true if there are scanned inis and PHP is able to report them
     *
     * php_ini_scanned_files will fail when PHP_CONFIG_FILE_SCAN_DIR is empty.
     * Fixed in 7.1.13 and 7.2.1
     *
     * @return bool
     */
    private function checkScanDirConfig()
    {
        return !(getenv('PHP_INI_SCAN_DIR')
            && !PHP_CONFIG_FILE_SCAN_DIR
            && (PHP_VERSION_ID < 70113
            || PHP_VERSION_ID === 70200));
    }

    /**
     * Returns true if there are no known configuration issues
     *
     * @param string $info Set by method
     */
    private function checkConfiguration(&$info)
    {
        if (false !== strpos(ini_get('disable_functions'), 'passthru')) {
            $info = 'passthru function is disabled';
            return false;
        }

        if (extension_loaded('uopz') && !ini_get('uopz.disable')) {
            // uopz works at opcode level and disables exit calls
            if (function_exists('uopz_allow_exit')) {
                @uopz_allow_exit(true);
            } else {
                $info = 'uopz extension is not compatible';
                return false;
            }
        }

        return true;
    }
}
<?php

/*
 * This file is part of composer/xdebug-handler.
 *
 * (c) Composer <https://github.com/composer>
 *
 * For the full copyright and license information, please view
 * the LICENSE file that was distributed with this source code.
 */

namespace Composer\XdebugHandler;

/**
 * Provides utility functions to prepare a child process command-line and set
 * environment variables in that process.
 *
 * @author John Stevenson <john-stevenson@blueyonder.co.uk>
 * @internal
 */
class Process
{
    /**
     * Returns an array of parameters, including a color option if required
     *
     * A color option is needed because child process output is piped.
     *
     * @param array $args The script parameters
     * @param string $colorOption The long option to force color output
     *
     * @return array
     */
    public static function addColorOption(array $args, $colorOption)
    {
        if (!$colorOption
            || in_array($colorOption, $args)
            || !preg_match('/^--([a-z]+$)|(^--[a-z]+=)/', $colorOption, $matches)) {
            return $args;
        }

        if (isset($matches[2])) {
            // Handle --color(s)= options
            if (false !== ($index = array_search($matches[2].'auto', $args))) {
                $args[$index] = $colorOption;
                return $args;
            } elseif (preg_grep('/^'.$matches[2].'/', $args)) {
                return $args;
            }
        } elseif (in_array('--no-'.$matches[1], $args)) {
            return $args;
        }

        // Check for NO_COLOR variable (https://no-color.org/)
        if (false !== getenv('NO_COLOR')) {
            return $args;
        }

        if (false !== ($index = array_search('--', $args))) {
            // Position option before double-dash delimiter
            array_splice($args, $index, 0, $colorOption);
        } else {
            $args[] = $colorOption;
        }

        return $args;
    }

    /**
     * Escapes a string to be used as a shell argument.
     *
     * From https://github.com/johnstevenson/winbox-args
     * MIT Licensed (c) John Stevenson <john-stevenson@blueyonder.co.uk>
     *
     * @param string $arg  The argument to be escaped
     * @param bool   $meta Additionally escape cmd.exe meta characters
     * @param bool $module The argument is the module to invoke
     *
     * @return string The escaped argument
     */
    public static function escape($arg, $meta = true, $module = false)
    {
        if (!defined('PHP_WINDOWS_VERSION_BUILD')) {
            return "'".str_replace("'", "'\\''", $arg)."'";
        }

        $quote = strpbrk($arg, " \t") !== false || $arg === '';

        $arg = preg_replace('/(\\\\*)"/', '$1$1\\"', $arg, -1, $dquotes);

        if ($meta) {
            $meta = $dquotes || preg_match('/%[^%]+%/', $arg);

            if (!$meta) {
                $quote = $quote || strpbrk($arg, '^&|<>()') !== false;
            } elseif ($module && !$dquotes && $quote) {
                $meta = false;
            }
        }

        if ($quote) {
            $arg = '"'.preg_replace('/(\\\\*)$/', '$1$1', $arg).'"';
        }

        if ($meta) {
            $arg = preg_replace('/(["^&|<>()%])/', '^$1', $arg);
        }

        return $arg;
    }

    /**
     * Returns true if the output stream supports colors
     *
     * This is tricky on Windows, because Cygwin, Msys2 etc emulate pseudo
     * terminals via named pipes, so we can only check the environment.
     *
     * @param mixed $output A valid CLI output stream
     *
     * @return bool
     */
    public static function supportsColor($output)
    {
        if ('Hyper' === getenv('TERM_PROGRAM')) {
            return true;
        }

        if (defined('PHP_WINDOWS_VERSION_BUILD')) {
            return (function_exists('sapi_windows_vt100_support')
                && sapi_windows_vt100_support($output))
                || false !== getenv('ANSICON')
                || 'ON' === getenv('ConEmuANSI')
                || 'xterm' === getenv('TERM');
        }

        if (function_exists('stream_isatty')) {
            return stream_isatty($output);
        }

        if (function_exists('posix_isatty')) {
            return posix_isatty($output);
        }

        $stat = fstat($output);
        // Check if formatted mode is S_IFCHR
        return $stat ? 0020000 === ($stat['mode'] & 0170000) : false;
    }

    /**
     * Makes putenv environment changes available in $_SERVER and $_ENV
     *
     * @param string $name
     * @param string|false $value A false value unsets the variable
     *
     * @return bool Whether the environment variable was set
     */
    public static function setEnv($name, $value = false)
    {
        $unset = false === $value;

        if (!putenv($unset ? $name : $name.'='.$value)) {
            return false;
        }

        if ($unset) {
            unset($_SERVER[$name]);
        } else {
            $_SERVER[$name] = $value;
        }

        // Update $_ENV if it is being used
        if (false !== stripos((string) ini_get('variables_order'), 'E')) {
            if ($unset) {
                unset($_ENV[$name]);
            } else {
                $_ENV[$name] = $value;
            }
        }

        return true;
    }
}

Copyright (c) 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.

# Changes in PHPUnit 8.1

All notable changes of the PHPUnit 8.1 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles.

## [8.1.6] - 2019-05-28

### Changed

* After each test, `libxml_clear_errors()` is now called to clear the libxml error buffer

### Fixed

* Fixed [#3694](https://github.com/sebastianbergmann/phpunit/pull/3694): Constructor arguments for `Throwable` and `Exception` are ignored
* Fixed [#3709](https://github.com/sebastianbergmann/phpunit/pull/3709): Method-level `@coversNothing` annotation does not prevent code coverage data collection

## [8.1.5] - 2019-05-14

### Fixed

* Fixed [#3683](https://github.com/sebastianbergmann/phpunit/issues/3683): Regression in PHPUnit 8.1.4 with regard to Exception stubbing/mocking

## [8.1.4] - 2019-05-09

### Fixed

* Fixed [#3414](https://github.com/sebastianbergmann/phpunit/pull/3414): `willThrowException()` only accepts `Exception`, not `Throwable`
* Fixed [#3559](https://github.com/sebastianbergmann/phpunit/issues/3559): No diff for failed PHPT EXPECT
* Fixed [#3587](https://github.com/sebastianbergmann/phpunit/issues/3587): `.phpunit.result.cache` file is all over the place
* Fixed [#3596](https://github.com/sebastianbergmann/phpunit/issues/3596): Mocking an interface that extends another interface forgets to mock its own methods
* Fixed [#3599](https://github.com/sebastianbergmann/phpunit/issues/3599): Type error in `TestCase::createGlobalStateSnapshot()`
* Fixed [#3614](https://github.com/sebastianbergmann/phpunit/pull/3599): `PHPUnit\Framework\Constraint\Attribute` should be deprecated (and ignored from code coverage)
* Fixed [#3674](https://github.com/sebastianbergmann/phpunit/issues/3674): `TypeError` when an incorrect file path is given

## [8.1.3] - 2019-04-19

### Fixed

* Fixed [#3607](https://github.com/sebastianbergmann/phpunit/issues/3607): Return value generation interferes with proxying to original method

## [8.1.2] - 2019-04-08

### Fixed

* Fixed [#3600](https://github.com/sebastianbergmann/phpunit/pull/3600): Wrong class name in docblock

## [8.1.1] - 2019-04-08

### Fixed

* Fixed [#3588](https://github.com/sebastianbergmann/phpunit/issues/3588): PHPUnit 8.1.0 breaks static analysis of MockObject usage

## [8.1.0] - 2019-04-05

### Added

* Implemented [#3528](https://github.com/sebastianbergmann/phpunit/pull/3528): Option to disable TestDox progress animation
* Implemented [#3556](https://github.com/sebastianbergmann/phpunit/issues/3556): Configure TestDox result printer via configuration file
* Implemented [#3558](https://github.com/sebastianbergmann/phpunit/issues/3558): `TestCase::getDependencyInput()`
* Information on test groups in the TestDox XML report is now reported in `group` elements that are child nodes of `test`
* Information from `@covers` and `@uses` annotations is now reported in TestDox XML
* Information on test doubles used in a test is now reported in TestDox XML

### Changed

* The `groups` attribute on the `test` element in the TestDox XML report is now deprecated

[8.1.6]: https://github.com/sebastianbergmann/phpunit/compare/8.1.5...8.1.6
[8.1.5]: https://github.com/sebastianbergmann/phpunit/compare/8.1.4...8.1.5
[8.1.4]: https://github.com/sebastianbergmann/phpunit/compare/8.1.3...8.1.4
[8.1.3]: https://github.com/sebastianbergmann/phpunit/compare/8.1.2...8.1.3
[8.1.2]: https://github.com/sebastianbergmann/phpunit/compare/8.1.1...8.1.2
[8.1.1]: https://github.com/sebastianbergmann/phpunit/compare/8.1.0...8.1.1
[8.1.0]: https://github.com/sebastianbergmann/phpunit/compare/8.0.6...8.1.0

<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="phpunit.xsd"
         bootstrap="tests/bootstrap.php"
         colors="true"
         verbose="true">
    <testsuites>
        <testsuite name="unit">
            <directory>tests/unit</directory>
        </testsuite>

        <testsuite name="end-to-end">
            <directory suffix=".phpt">tests/end-to-end</directory>
            <exclude>tests/end-to-end/_files</exclude>
        </testsuite>
    </testsuites>

    <filter>
        <whitelist processUncoveredFilesFromWhitelist="true">
            <directory suffix=".php">src</directory>
            <exclude>
                <file>src/Framework/Assert/Functions.php</file>
                <file>src/Util/PHP/eval-stdin.php</file>
            </exclude>
        </whitelist>
    </filter>

    <php>
        <const name="PHPUNIT_TESTSUITE" value="true"/>
    </php>
</phpunit>
PHPUnit

Copyright (c) 2001-2019, Sebastian Bergmann <sebastian@phpunit.de>.
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

 * Redistributions of source code must retain the above copyright
   notice, this list of conditions and the following disclaimer.

 * Redistributions in binary form must reproduce the above copyright
   notice, this list of conditions and the following disclaimer in
   the documentation and/or other materials provided with the
   distribution.

 * Neither the name of Sebastian Bergmann nor the names of his
   contributors may be used to endorse or promote products derived
   from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
# Changes in PHPUnit 8.0

All notable changes of the PHPUnit 8.0 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles.

## [8.0.6] - 2019-03-26

### Fixed

* Fixed [#3564](https://github.com/sebastianbergmann/phpunit/issues/3564): Production code uses class from test suite's fixture

## [8.0.5] - 2019-03-16

### Fixed

* Fixed [#3480](https://github.com/sebastianbergmann/phpunit/issues/3480): Wrong return type declaration for `TestCase::getExpectedExceptionMessage()` and `TestCase::getExpectedExceptionMessageRegExp()`
* Fixed [#3532](https://github.com/sebastianbergmann/phpunit/issues/3532): Wrong default value for `cacheResult` in `phpunit.xsd`
* Fixed [#3539](https://github.com/sebastianbergmann/phpunit/issues/3539): Wrong default value for `resolveDependencies` in `phpunit.xsd`
* Fixed [#3550](https://github.com/sebastianbergmann/phpunit/issues/3550): Check for valid attribute names in `assertObjectHasAttribute()` is too strict
* Fixed [#3555](https://github.com/sebastianbergmann/phpunit/issues/3555): Extension loader only allows objects that implement `TestHook` but should also allow `Hook`
* Fixed [#3560](https://github.com/sebastianbergmann/phpunit/issues/3560): TestDox does not work when tests are filtered

## [8.0.4] - 2019-02-18

### Fixed

* Fixed [#3530](https://github.com/sebastianbergmann/phpunit/issues/3530): `generateClassFromWsdl()` does not handle methods with multiple output values
* Fixed [#3531](https://github.com/sebastianbergmann/phpunit/issues/3531): Test suite fails on warning
* Fixed [#3534](https://github.com/sebastianbergmann/phpunit/pull/3534): Wrong message in `ConstraintTestCase`
* Fixed [#3535](https://github.com/sebastianbergmann/phpunit/issues/3535): `TypeError` in `Command`

## [8.0.3] - 2019-02-15

### Fixed

* Fixed [#3011](https://github.com/sebastianbergmann/phpunit/issues/3011): Unsupported PHPT `--SECTION--` throws unhandled exception
* Fixed [#3461](https://github.com/sebastianbergmann/phpunit/issues/3461): `StringEndsWith` matches too loosely
* Fixed [#3515](https://github.com/sebastianbergmann/phpunit/issues/3515): Random order seed is only printed in verbose mode
* Fixed [#3517](https://github.com/sebastianbergmann/phpunit/issues/3517): Useless error message when depending on test that does not exist

## [8.0.2] - 2019-02-07

### Fixed

* Fixed [#3352](https://github.com/sebastianbergmann/phpunit/issues/3352): Using `phpunit.phar` with PHPDBG does not work with `auto_globals_jit=On`
* Fixed [#3508](https://github.com/sebastianbergmann/phpunit/pull/3508): `TypeError` in `Fileloader` when trying to load nonexistent file
* Fixed [#3511](https://github.com/sebastianbergmann/phpunit/issues/3511): Asserting that an object is contained in an `iterable` while using `==` instead of `===` is no longer possible

## [8.0.1] - 2019-02-03

### Fixed

* Fixed [#3509](https://github.com/sebastianbergmann/phpunit/issues/3509): Process Isolation does not work with `phpunit.phar`

## [8.0.0] - 2019-02-01

### Changed

* Implemented [#3060](https://github.com/sebastianbergmann/phpunit/issues/3060): Cleanup `PHPUnit\Framework\Constraint\Constraint`
* Implemented [#3133](https://github.com/sebastianbergmann/phpunit/issues/3133): Enable dependency resolution by default
* Implemented [#3236](https://github.com/sebastianbergmann/phpunit/issues/3236): Define which parts of PHPUnit are covered by the backward compatibility promise
* Implemented [#3244](https://github.com/sebastianbergmann/phpunit/issues/3244): Enable result cache by default
* Implemented [#3288](https://github.com/sebastianbergmann/phpunit/issues/3288): The `void_return` fixer of php-cs-fixer is now in effect
* Implemented [#3439](https://github.com/sebastianbergmann/phpunit/pull/3439): Improve colorization of TestDox output
* Implemented [#3444](https://github.com/sebastianbergmann/phpunit/pull/3444): Consider data provider that provides data with duplicate keys to be invalid
* Implemented [#3467](https://github.com/sebastianbergmann/phpunit/pull/3467): Code location hints for `@requires` annotations as well as `--SKIPIF--`, `--EXPECT--`, `--EXPECTF--`, `--EXPECTREGEX--`, and `--{SECTION}_EXTERNAL--` sections of PHPT tests
* Implemented [#3481](https://github.com/sebastianbergmann/phpunit/pull/3481): Improved `--help` output

### Deprecated

* Implemented [#3332](https://github.com/sebastianbergmann/phpunit/issues/3332): Deprecate annotation(s) for expecting exceptions
* Implemented [#3338](https://github.com/sebastianbergmann/phpunit/issues/3338): Deprecate assertions (and helper methods) that operate on (non-public) attributes
* Implemented [#3341](https://github.com/sebastianbergmann/phpunit/issues/3341): Deprecate optional parameters of `assertEquals()` and `assertNotEquals()`
* Implemented [#3369](https://github.com/sebastianbergmann/phpunit/issues/3369): Deprecate `assertInternalType()` and `assertNotInternalType()`
* Implemented [#3388](https://github.com/sebastianbergmann/phpunit/issues/3388): Deprecate the `TestListener` interface
* Implemented [#3425](https://github.com/sebastianbergmann/phpunit/issues/3425): Deprecate optional parameters of `assertContains()` and `assertNotContains()` as well as using these methods with `string` haystacks
* Implemented [#3494](https://github.com/sebastianbergmann/phpunit/issues/3494): Deprecate `assertArraySubset()`

### Removed

* Implemented [#2762](https://github.com/sebastianbergmann/phpunit/issues/2762): Drop support for PHP 7.1
* Implemented [#3123](https://github.com/sebastianbergmann/phpunit/issues/3123): Remove `PHPUnit_Framework_MockObject_MockObject`

[8.0.6]: https://github.com/sebastianbergmann/phpunit/compare/8.0.5...8.0.6
[8.0.5]: https://github.com/sebastianbergmann/phpunit/compare/8.0.4...8.0.5
[8.0.4]: https://github.com/sebastianbergmann/phpunit/compare/8.0.3...8.0.4
[8.0.3]: https://github.com/sebastianbergmann/phpunit/compare/8.0.2...8.0.3
[8.0.2]: https://github.com/sebastianbergmann/phpunit/compare/8.0.1...8.0.2
[8.0.1]: https://github.com/sebastianbergmann/phpunit/compare/8.0.0...8.0.1
[8.0.0]: https://github.com/sebastianbergmann/phpunit/compare/7.5...8.0.0

<?xml version="1.0" encoding="UTF-8"?>
<project name="phpunit" default="setup" xmlns:if="ant:if" xmlns:unless="ant:unless">
    <target name="setup" depends="clean,install-dependencies"/>
    <target name="validate" depends="php-syntax-check,validate-composer-json,validate-phpunit-xsd"/>

    <target name="clean" unless="clean.done" description="Cleanup build artifacts">
        <delete dir="${basedir}/bin"/>
        <delete dir="${basedir}/vendor"/>
        <delete file="${basedir}/composer.lock"/>
        <delete dir="${basedir}/build/documentation"/>
        <delete dir="${basedir}/build/logfiles"/>
        <delete dir="${basedir}/build/phar"/>
        <delete dir="${basedir}/build/phar-scoped"/>
        <delete>
            <fileset dir="${basedir}/build">
                <include name="**/phpunit*.phar"/>
                <include name="**/phpunit*.phar.asc"/>
            </fileset>
        </delete>

        <property name="clean.done" value="true"/>
    </target>

    <target name="prepare" unless="prepare.done" depends="clean" description="Prepare for build">
        <mkdir dir="${basedir}/build/documentation"/>
        <mkdir dir="${basedir}/build/logfiles"/>
        <property name="prepare.done" value="true"/>
    </target>

    <target name="validate-composer-json" depends="clean" unless="validate-composer-json.done" description="Validate composer.json">
        <exec executable="${basedir}/tools/composer" failonerror="true" taskname="composer">
            <arg value="validate"/>
            <arg value="--strict"/>
            <arg value="${basedir}/composer.json"/>
        </exec>

        <property name="validate-composer-json.done" value="true"/>
    </target>

    <target name="-dependencies-installed">
        <available file="${basedir}/composer.lock" property="dependencies-installed"/>
    </target>

    <target name="install-dependencies" unless="dependencies-installed" depends="-dependencies-installed,validate-composer-json" description="Install dependencies with Composer">
        <copy file="${basedir}/composer.json" tofile="${basedir}/composer.json.bak"/>

        <exec executable="${basedir}/tools/composer" taskname="composer">
            <arg value="require"/>
            <arg value="--no-update"/>
            <arg value="phpunit/php-invoker:^2.0"/>
        </exec>

        <exec executable="${basedir}/tools/composer" taskname="composer">
            <arg value="update"/>
            <arg value="--no-interaction"/>
            <arg value="--no-progress"/>
            <arg value="--no-ansi"/>
            <arg value="--no-suggest"/>
        </exec>

        <move file="${basedir}/composer.json.bak" tofile="${basedir}/composer.json"/>
    </target>

    <target name="check-dependencies" description="Performs check for outdated dependencies">
        <exec executable="${basedir}/tools/composer" taskname="composer">
            <arg value="show"/>
            <arg value="--minor-only"/>
            <arg value="--latest"/>
            <arg value="--direct"/>
            <arg value="--outdated"/>
            <arg value="--strict"/>
        </exec>
    </target>

    <target name="php-syntax-check" unless="php-syntax-check.done" description="Perform syntax check on PHP files">
        <apply executable="php" failonerror="true" taskname="lint">
            <arg value="-l"/>

            <fileset dir="${basedir}/src">
                <include name="**/*.php"/>
                <modified/>
            </fileset>

            <fileset dir="${basedir}/tests">
                <include name="**/*.php"/>
                <modified/>
            </fileset>
        </apply>

        <property name="php-syntax-check.done" value="true"/>
    </target>

    <target name="validate-phpunit-xsd" unless="validate-phpunit-xsd.done" description="Validate phpunit.xsd">
        <exec executable="xmllint" failonerror="true" taskname="xmllint">
            <arg value="--noout"/>
            <arg path="${basedir}/phpunit.xsd"/>
        </exec>

        <property name="validate-phpunit-xsd.done" value="true"/>
    </target>

    <target name="test" depends="validate,install-dependencies" description="Run tests">
        <exec executable="${basedir}/phpunit" taskname="phpunit"/>
    </target>

    <target name="signed-phar" depends="phar" description="Create signed PHAR archive of PHPUnit and all its dependencies">
        <exec executable="gpg" failonerror="true">
            <arg value="--local-user"/>
            <arg value="sb@sebastian-bergmann.de"/>
            <arg value="--armor"/>
            <arg value="--detach-sign"/>
            <arg path="${basedir}/build/phpunit-library-${version}.phar"/>
        </exec>

        <exec executable="gpg" failonerror="true">
            <arg value="--local-user"/>
            <arg value="sb@sebastian-bergmann.de"/>
            <arg value="--armor"/>
            <arg value="--detach-sign"/>
            <arg path="${basedir}/build/phpunit-${version}.phar"/>
        </exec>
    </target>

    <target name="signed-scoped-phar" depends="scoped-phar" description="Create signed scoped PHAR archive of PHPUnit and all its dependencies">
        <exec executable="gpg" failonerror="true">
            <arg value="--local-user"/>
            <arg value="sb@sebastian-bergmann.de"/>
            <arg value="--armor"/>
            <arg value="--detach-sign"/>
            <arg path="${basedir}/build/phpunit-scoped-library-${version}.phar"/>
        </exec>

        <exec executable="gpg" failonerror="true">
            <arg value="--local-user"/>
            <arg value="sb@sebastian-bergmann.de"/>
            <arg value="--armor"/>
            <arg value="--detach-sign"/>
            <arg path="${basedir}/build/phpunit-scoped-${version}.phar"/>
        </exec>
    </target>

    <target name="phar" depends="-phar-prepare,-phar-determine-version" description="Create PHAR archive of PHPUnit and all its dependencies">
        <antcall target="-phar-build">
            <param name="type" value="release"/>
            <param name="scoped" value="false"/>
        </antcall>
    </target>

    <target name="phar-nightly" depends="-phar-prepare" description="Create PHAR archive of PHPUnit and all its dependencies (nightly)">
        <antcall target="-phar-build">
            <param name="type" value="nightly"/>
            <param name="scoped" value="false"/>
        </antcall>
    </target>

    <target name="scoped-phar" depends="-phar-prepare,-phar-determine-version" description="Create scoped PHAR archive of PHPUnit and all its dependencies">
        <antcall target="-phar-build">
            <param name="type" value="release"/>
            <param name="scoped" value="true"/>
        </antcall>
    </target>

    <target name="scoped-phar-nightly" depends="-phar-prepare" description="Create scoped PHAR archive of PHPUnit and all its dependencies (nightly)">
        <antcall target="-phar-build">
            <param name="type" value="nightly"/>
            <param name="scoped" value="true"/>
        </antcall>
    </target>

    <target name="-phar-prepare" depends="clean,install-dependencies">
        <mkdir dir="${basedir}/build/phar"/>
        <mkdir dir="${basedir}/build/phar-scoped"/>

        <copy file="${basedir}/phpunit.xsd" tofile="${basedir}/build/phar/phpunit.xsd"/>
        <copy file="${basedir}/phpunit.xsd" tofile="${basedir}/build/phar-scoped/phpunit.xsd"/>

        <exec executable="${basedir}/build/phar-manifest.php" output="${basedir}/build/phar/manifest.txt" failonerror="true"/>

        <copy file="${basedir}/vendor/phpunit/php-code-coverage/LICENSE" tofile="${basedir}/build/phar/php-code-coverage/LICENSE"/>
        <copy todir="${basedir}/build/phar/php-code-coverage">
            <fileset dir="${basedir}/vendor/phpunit/php-code-coverage/src">
                <include name="**/*" />
            </fileset>
        </copy>

        <copy file="${basedir}/vendor/phpunit/php-file-iterator/LICENSE" tofile="${basedir}/build/phar/php-file-iterator/LICENSE"/>
        <copy todir="${basedir}/build/phar/php-file-iterator">
            <fileset dir="${basedir}/vendor/phpunit/php-file-iterator/src">
                <include name="**/*.php" />
            </fileset>
        </copy>

        <copy file="${basedir}/vendor/phpunit/php-text-template/LICENSE" tofile="${basedir}/build/phar/php-text-template/LICENSE"/>
        <copy todir="${basedir}/build/phar/php-text-template">
            <fileset dir="${basedir}/vendor/phpunit/php-text-template/src">
                <include name="**/*.php" />
            </fileset>
        </copy>

        <copy file="${basedir}/vendor/phpunit/php-timer/LICENSE" tofile="${basedir}/build/phar/php-timer/LICENSE"/>
        <copy todir="${basedir}/build/phar/php-timer">
            <fileset dir="${basedir}/vendor/phpunit/php-timer/src">
                <include name="**/*.php" />
            </fileset>
        </copy>

        <copy file="${basedir}/vendor/phpunit/php-token-stream/LICENSE" tofile="${basedir}/build/phar/php-token-stream/LICENSE"/>
        <copy todir="${basedir}/build/phar/php-token-stream">
            <fileset dir="${basedir}/vendor/phpunit/php-token-stream/src">
                <include name="**/*.php" />
            </fileset>
        </copy>

        <copy file="${basedir}/vendor/sebastian/code-unit-reverse-lookup/LICENSE" tofile="${basedir}/build/phar/sebastian-code-unit-reverse-lookup/LICENSE"/>
        <copy todir="${basedir}/build/phar/sebastian-code-unit-reverse-lookup">
            <fileset dir="${basedir}/vendor/sebastian/code-unit-reverse-lookup/src">
                <include name="**/*.php" />
            </fileset>
        </copy>

        <copy file="${basedir}/vendor/sebastian/comparator/LICENSE" tofile="${basedir}/build/phar/sebastian-comparator/LICENSE"/>
        <copy todir="${basedir}/build/phar/sebastian-comparator">
            <fileset dir="${basedir}/vendor/sebastian/comparator/src">
                <include name="**/*.php" />
            </fileset>
        </copy>

        <copy file="${basedir}/vendor/sebastian/diff/LICENSE" tofile="${basedir}/build/phar/sebastian-diff/LICENSE"/>
        <copy todir="${basedir}/build/phar/sebastian-diff">
            <fileset dir="${basedir}/vendor/sebastian/diff/src">
                <include name="**/*.php" />
            </fileset>
        </copy>

        <copy file="${basedir}/vendor/sebastian/environment/LICENSE" tofile="${basedir}/build/phar/sebastian-environment/LICENSE"/>
        <copy todir="${basedir}/build/phar/sebastian-environment">
            <fileset dir="${basedir}/vendor/sebastian/environment/src">
                <include name="**/*.php" />
            </fileset>
        </copy>

        <copy file="${basedir}/vendor/sebastian/exporter/LICENSE" tofile="${basedir}/build/phar/sebastian-exporter/LICENSE"/>
        <copy todir="${basedir}/build/phar/sebastian-exporter">
            <fileset dir="${basedir}/vendor/sebastian/exporter/src">
                <include name="**/*.php" />
            </fileset>
        </copy>

        <copy file="${basedir}/vendor/sebastian/recursion-context/LICENSE" tofile="${basedir}/build/phar/sebastian-recursion-context/LICENSE"/>
        <copy todir="${basedir}/build/phar/sebastian-recursion-context">
            <fileset dir="${basedir}/vendor/sebastian/recursion-context/src">
                <include name="**/*.php" />
            </fileset>
        </copy>

        <copy file="${basedir}/vendor/sebastian/resource-operations/LICENSE" tofile="${basedir}/build/phar/sebastian-resource-operations/LICENSE"/>
        <copy todir="${basedir}/build/phar/sebastian-resource-operations">
            <fileset dir="${basedir}/vendor/sebastian/resource-operations/src">
                <include name="**/*.php" />
            </fileset>
        </copy>

        <copy file="${basedir}/vendor/sebastian/global-state/LICENSE" tofile="${basedir}/build/phar/sebastian-global-state/LICENSE"/>
        <copy todir="${basedir}/build/phar/sebastian-global-state">
            <fileset dir="${basedir}/vendor/sebastian/global-state/src">
                <include name="**/*.php" />
            </fileset>
        </copy>

        <copy file="${basedir}/vendor/sebastian/object-enumerator/LICENSE" tofile="${basedir}/build/phar/object-enumerator/LICENSE"/>
        <copy todir="${basedir}/build/phar/sebastian-object-enumerator">
            <fileset dir="${basedir}/vendor/sebastian/object-enumerator/src">
                <include name="**/*.php" />
            </fileset>
        </copy>

        <copy file="${basedir}/vendor/sebastian/object-reflector/LICENSE" tofile="${basedir}/build/phar/object-reflector/LICENSE"/>
        <copy todir="${basedir}/build/phar/sebastian-object-reflector">
            <fileset dir="${basedir}/vendor/sebastian/object-reflector/src">
                <include name="**/*.php" />
            </fileset>
        </copy>

        <copy file="${basedir}/vendor/sebastian/type/LICENSE" tofile="${basedir}/build/phar/sebastian-type/LICENSE"/>
        <copy todir="${basedir}/build/phar/sebastian-type">
            <fileset dir="${basedir}/vendor/sebastian/type/src">
                <include name="**/*.php" />
            </fileset>
        </copy>

        <copy file="${basedir}/vendor/sebastian/version/LICENSE" tofile="${basedir}/build/phar/sebastian-version/LICENSE"/>
        <copy todir="${basedir}/build/phar/sebastian-version">
            <fileset dir="${basedir}/vendor/sebastian/version/src">
                <include name="**/*.php" />
            </fileset>
        </copy>

        <copy file="${basedir}/vendor/doctrine/instantiator/LICENSE" tofile="${basedir}/build/phar/doctrine-instantiator/LICENSE"/>
        <copy todir="${basedir}/build/phar/doctrine-instantiator">
            <fileset dir="${basedir}/vendor/doctrine/instantiator/src">
                <include name="**/*.php" />
            </fileset>
        </copy>

        <copy todir="${basedir}/build/phar/php-invoker">
            <fileset dir="${basedir}/vendor/phpunit/php-invoker/src">
                <include name="**/*.php" />
            </fileset>
        </copy>

        <copy file="${basedir}/vendor/phpdocumentor/reflection-common/LICENSE" tofile="${basedir}/build/phar/phpdocumentor-reflection-common/LICENSE"/>
        <copy todir="${basedir}/build/phar/phpdocumentor-reflection-common">
            <fileset dir="${basedir}/vendor/phpdocumentor/reflection-common/src">
                <include name="**/*.php" />
            </fileset>
        </copy>

        <copy file="${basedir}/vendor/phpdocumentor/reflection-docblock/LICENSE" tofile="${basedir}/build/phar/phpdocumentor-reflection-docblock/LICENSE"/>
        <copy todir="${basedir}/build/phar/phpdocumentor-reflection-docblock">
            <fileset dir="${basedir}/vendor/phpdocumentor/reflection-docblock/src">
                <include name="**/*.php" />
            </fileset>
        </copy>

        <copy file="${basedir}/vendor/phpdocumentor/type-resolver/LICENSE" tofile="${basedir}/build/phar/phpdocumentor-type-resolver/LICENSE"/>
        <copy todir="${basedir}/build/phar/phpdocumentor-type-resolver">
            <fileset dir="${basedir}/vendor/phpdocumentor/type-resolver/src">
                <include name="**/*.php" />
            </fileset>
        </copy>

        <copy file="${basedir}/vendor/phpspec/prophecy/LICENSE" tofile="${basedir}/build/phar/phpspec-prophecy/LICENSE"/>
        <copy todir="${basedir}/build/phar/phpspec-prophecy">
            <fileset dir="${basedir}/vendor/phpspec/prophecy/src">
                <include name="**/*.php" />
            </fileset>
        </copy>

        <copy file="${basedir}/vendor/myclabs/deep-copy/LICENSE" tofile="${basedir}/build/phar/myclabs-deep-copy/LICENSE"/>
        <copy todir="${basedir}/build/phar/myclabs-deep-copy">
            <fileset dir="${basedir}/vendor/myclabs/deep-copy/src">
                <include name="**/*.php" />
            </fileset>
        </copy>

        <copy file="${basedir}/vendor/webmozart/assert/LICENSE" tofile="${basedir}/build/phar/webmozart-assert/LICENSE"/>
        <copy todir="${basedir}/build/phar/webmozart-assert">
            <fileset dir="${basedir}/vendor/webmozart/assert/src">
                <include name="**/*.php" />
            </fileset>
        </copy>

        <copy file="${basedir}/vendor/phar-io/manifest/LICENSE" tofile="${basedir}/build/phar/phar-io-manifest/LICENSE"/>
        <copy todir="${basedir}/build/phar/phar-io-manifest">
            <fileset dir="${basedir}/vendor/phar-io/manifest/src">
                <include name="**/*.php" />
            </fileset>
        </copy>

        <copy file="${basedir}/vendor/phar-io/version/LICENSE" tofile="${basedir}/build/phar/phar-io-version/LICENSE"/>
        <copy todir="${basedir}/build/phar/phar-io-version">
            <fileset dir="${basedir}/vendor/phar-io/version/src">
                <include name="**/*.php" />
            </fileset>
        </copy>

        <copy file="${basedir}/vendor/theseer/tokenizer/LICENSE" tofile="${basedir}/build/phar/theseer-tokenizer/LICENSE"/>
        <copy todir="${basedir}/build/phar/theseer-tokenizer">
            <fileset dir="${basedir}/vendor/theseer/tokenizer/src">
                <include name="**/*.php" />
            </fileset>
        </copy>
    </target>

    <target name="-phar-build" depends="-phar-determine-version">
        <copy todir="${basedir}/build/phar/phpunit">
            <fileset dir="${basedir}/src">
                <include name="**/*.php"/>
                <include name="**/*.tpl*"/>
            </fileset>
        </copy>

        <exec executable="${basedir}/build/phar-version.php" outputproperty="_version" failonerror="true">
            <arg value="${version}"/>
            <arg value="${type}"/>
        </exec>

        <exec if:true="${scoped}" executable="${basedir}/tools/php-scoper" taskname="php-scoper">
            <arg value="add-prefix" />
            <arg value="--no-ansi" />
            <arg value="--force" />
            <arg value="--config" />
            <arg path="${basedir}/build/scoper.inc.php" />
            <arg value="--no-interaction" />
            <arg value="--stop-on-failure" />
            <arg value="--output-dir" />
            <arg path="${basedir}/build/phar-scoped" />
            <arg value="--prefix" />
            <arg value="PHPUnit" />
            <arg path="${basedir}/build/phar" />
        </exec>

        <exec executable="${basedir}/tools/phpab" taskname="phpab" failonerror="true">
            <arg value="--all" />
            <arg value="--static" />
            <arg value="--once" />
            <arg value="--phar" />
            <arg value="--hash" />
            <arg value="SHA-1" />
            <arg value="--output" />
            <arg if:true="${scoped}" path="${basedir}/build/phpunit-scoped-library-${_version}.phar" />
            <arg unless:true="${scoped}" path="${basedir}/build/phpunit-library-${_version}.phar" />
            <arg value="--template" />
            <arg path="${basedir}/build/library-phar-autoload.php.in" />
            <arg if:true="${scoped}" path="${basedir}/build/phar-scoped" />
            <arg unless:true="${scoped}" path="${basedir}/build/phar" />
        </exec>

        <copy file="${basedir}/build/binary-phar-autoload.php.in" tofile="${basedir}/build/binary-phar-autoload.php"/>
        <replace file="${basedir}/build/binary-phar-autoload.php" token="X.Y.Z" value="${_version}"/>

        <exec executable="${basedir}/tools/phpab" taskname="phpab" failonerror="true">
            <arg value="--all" />
            <arg value="--nolower" />
            <arg value="--static" />
            <arg value="--phar" />
            <arg value="--hash" />
            <arg value="SHA-1" />
            <arg value="--output" />
            <arg if:true="${scoped}" path="${basedir}/build/phpunit-scoped-${_version}.phar" />
            <arg unless:true="${scoped}" path="${basedir}/build/phpunit-${_version}.phar" />
            <arg value="--template" />
            <arg path="${basedir}/build/binary-phar-autoload.php" />
            <arg if:true="${scoped}" path="${basedir}/build/phar-scoped" />
            <arg unless:true="${scoped}" path="${basedir}/build/phar" />
        </exec>

        <chmod if:true="${scoped}" file="${basedir}/build/phpunit-scoped-${_version}.phar" perm="ugo+rx"/>
        <chmod unless:true="${scoped}" file="${basedir}/build/phpunit-${_version}.phar" perm="ugo+rx"/>

        <delete dir="${basedir}/build/phar"/>
        <delete dir="${basedir}/build/phar-scoped"/>
        <delete file="${basedir}/build/binary-phar-autoload.php"/>
    </target>

    <target name="-phar-determine-version">
        <exec executable="${basedir}/build/version.php" outputproperty="version" failonerror="true" />
    </target>

    <target name="generate-project-documentation" depends="-phploc,-checkstyle,-phpunit">
        <exec executable="${basedir}/tools/phpdox" dir="${basedir}/build" taskname="phpdox"/>
    </target>

    <target name="update-tools">
        <exec executable="phive">
            <arg value="--no-progress"/>
            <arg value="update"/>
        </exec>

        <exec executable="${basedir}/tools/composer">
            <arg value="self-update"/>
        </exec>
    </target>

    <target name="generate-global-assert-wrappers" description="Generate global function wrappers for static methods in Assert and TestCase that are commonly used">
        <exec executable="${basedir}/build/generate_global_assert_wrappers.php" taskname="generate-global-assert-wrappers" failonerror="true"/>
        <exec executable="${basedir}/tools/php-cs-fixer" taskname="php-cs-fixer" failonerror="true">
            <arg value="fix"/>
            <arg path="${basedir}/src/Framework/Assert/Functions.php"/>
        </exec>
    </target>

    <target name="-phploc" depends="prepare">
        <exec executable="${basedir}/tools/phploc" output="/dev/null" taskname="phploc">
            <arg value="--count-tests"/>
            <arg value="--log-xml"/>
            <arg path="${basedir}/build/logfiles/phploc.xml"/>
            <arg path="${basedir}/src"/>
            <arg path="${basedir}/tests"/>
        </exec>
    </target>

    <target name="-checkstyle" depends="prepare">
        <exec executable="${basedir}/tools/php-cs-fixer" output="${basedir}/build/logfiles/checkstyle.xml" error="/dev/null" taskname="php-cs-fixer">
            <arg value="--diff"/>
            <arg value="--dry-run"/>
            <arg value="fix"/>
            <arg value="--format=checkstyle"/>
        </exec>
    </target>

    <target name="-phpunit" depends="setup">
        <exec executable="${basedir}/phpunit" taskname="phpunit">
            <arg value="--coverage-xml"/>
            <arg path="${basedir}/build/logfiles/coverage"/>
            <arg value="--log-junit"/>
            <arg path="${basedir}/build/logfiles/junit.xml"/>
        </exec>
    </target>
</project>

# PHPUnit self-tests

This document contains the notes of projects contributors about testing the PHPUnit core and its integration with the most important dependencies. 

## Quick start

There are two main ways to self-test PHPUnit. The first is to test _everything_ using the default configuration. Here's how to do that with pretty colors in a human-readable format: 

```
cd /path/to/phpunit
./phpunit --testdox --colors=always --verbose
```

If you want to do a very quick check health-check of most basic use cases you can use the `basic` test collection:

```
./phpunit --testdox --colors=always --verbose -c tests/basic/configuration.basic.xml
```

The `basic` suite of tests puts the core system through its paces and covers most of the basic use cases of PHPUnit including happy flows and common exceptions. 

## Structure of the self-test collection

Note: this section will change often while `tests/` is being refactored.

- `configuration.xml`: the global configuration file which defines the internal `unit` and `end-to-end` tests suites
- `tests/`
  - `_files`: specialized helper files; input/output samples
  - `basic/`: fast tests covering all basics
    - `configuration.basic.xml`: configuration file tailored for the `basic` suite
  - `end-to-end/`: run PHPUnit as a seperate process and observe its behaviour via console messages and the filesystem
  - `unit/`: unit tests for individual smallest components and integration tests of common usa cases
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
class BeforeClassWithOnlyDataProviderTest extends \PHPUnit\Framework\TestCase
{
    public static $setUpBeforeClassWasCalled;

    public static $beforeClassWasCalled;

    public static function resetProperties(): void
    {
        self::$setUpBeforeClassWasCalled = false;
        self::$beforeClassWasCalled      = false;
    }

    /**
     * @beforeClass
     */
    public static function someAnnotatedSetupMethod(): void
    {
        self::$beforeClassWasCalled = true;
    }

    public static function setUpBeforeClass(): void
    {
        self::$setUpBeforeClassWasCalled = true;
    }

    public function dummyProvider()
    {
        return [[1]];
    }

    /**
     * @dataProvider dummyProvider
     * delete annotation to fail test case
     */
    public function testDummy(): void
    {
        $this->assertFalse(false);
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

use PHPUnit\Framework\TestCase;

class BankAccountTest extends TestCase
{
    private $ba;

    protected function setUp(): void
    {
        $this->ba = new BankAccount;
    }

    public function testBalanceIsInitiallyZero(): void
    {
        $ba = new BankAccount;

        $balance = $ba->getBalance();

        $this->assertEquals(0, $balance);
    }

    public function testBalanceCannotBecomeNegative(): void
    {
        try {
            $this->ba->withdrawMoney(1);
        } catch (BankAccountException $e) {
            $this->assertEquals(0, $this->ba->getBalance());

            return;
        }

        $this->fail();
    }

    public function testBalanceCannotBecomeNegative2(): void
    {
        try {
            $this->ba->depositMoney(-1);
        } catch (BankAccountException $e) {
            $this->assertEquals(0, $this->ba->getBalance());

            return;
        }

        $this->fail();
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
class AssertionExample
{
    public function doSomething(): void
    {
        \assert(false);
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

use PHPUnit\Framework\TestCase;

trait T3194
{
    public function doSomethingElse(): bool
    {
        return true;
    }
}

final class C3194
{
    use T3194;

    public function doSomething(): bool
    {
        return $this->doSomethingElse();
    }
}

/**
 * @covers C3194
 */
final class Test3194 extends TestCase
{
    public function testOne(): void
    {
        $o = new C;

        $this->assertTrue($o->doSomething());
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://some-web-service.com/CustomUI" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsdLocal0="http://www.some-web-service.com/xml/ContactInformation" targetNamespace="http://some-web-service.com/CustomUI">
    <message name="Contact_Information_Input">
        <part name="Contact_Id" type="xsd:string" />
    </message>
    <message name="Contact_Information_Output">
        <part name="Response_Code" type="xsd:string" />
        <part name="Response_Message" type="xsd:string" />
    </message>
    <portType name="Contact_Information">
        <operation name="Contact_Information">
            <input message="tns:Contact_Information_Input" />
            <output message="tns:Contact_Information_Output" />
        </operation>
    </portType>
    <binding name="Contact_Information" type="tns:Contact_Information">
        <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc" />
        <operation name="Contact_Information">
            <soap:operation soapAction="rpc/http://some-web-service.com/CustomUI:Contact_Information" />
            <input>
                <soap:body namespace="http://some-web-service.com/CustomUI" use="literal" />
            </input>
            <output>
                <soap:body namespace="http://some-web-service.com/CustomUI" use="literal" />
            </output>
        </operation>
    </binding>
    <service name="Web_Service">
        <port binding="tns:Contact_Information" name="Contact_Information">
            <soap:address location="https://some-web-service.com" />
        </port>
    </service>
</definitions>
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
class ClassThatImplementsSerializable implements Serializable
{
    public function serialize()
    {
        return \get_object_vars($this);
    }

    public function unserialize($serialized): void
    {
        foreach (\unserialize($serialized) as $key => $value) {
            $this->{$key} = $value;
        }
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

/**
 * A book.
 */
class Book
{
    // the order of properties is important for testing the cycle!
    public $author;
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
interface AnotherInterface
{
    public function doSomethingElse();
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
class ClassWithAllPossibleReturnTypes
{
    public function methodWithNoReturnTypeDeclaration()
    {
    }

    public function methodWithVoidReturnTypeDeclaration(): void
    {
    }

    public function methodWithStringReturnTypeDeclaration(): string
    {
        return 'string';
    }

    public function methodWithFloatReturnTypeDeclaration(): float
    {
        return 1.0;
    }

    public function methodWithIntReturnTypeDeclaration(): int
    {
        return 1;
    }

    public function methodWithBoolReturnTypeDeclaration(): bool
    {
        return true;
    }

    public function methodWithArrayReturnTypeDeclaration(): array
    {
        return ['string'];
    }

    public function methodWithTraversableReturnTypeDeclaration(): Traversable
    {
        return new ArrayIterator(['string']);
    }

    public function methodWithGeneratorReturnTypeDeclaration(): Generator
    {
        yield 1;
    }

    public function methodWithObjectReturnTypeDeclaration(): object
    {
        return new Exception;
    }

    public function methodWithClassReturnTypeDeclaration(): stdClass
    {
        return new stdClass;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
class ClassWithScalarTypeDeclarations
{
    public function foo(string $string, int $int): void
    {
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
class ParentClassWithPrivateAttributes
{
    private static $privateStaticParentAttribute = 'foo';

    private $privateParentAttribute              = 'bar';
}

class ParentClassWithProtectedAttributes extends ParentClassWithPrivateAttributes
{
    protected static $protectedStaticParentAttribute = 'foo';

    protected $protectedParentAttribute              = 'bar';
}

class ClassWithNonPublicAttributes extends ParentClassWithProtectedAttributes
{
    public static $publicStaticAttribute       = 'foo';

    protected static $protectedStaticAttribute = 'bar';

    protected static $privateStaticAttribute   = 'baz';

    public $publicAttribute       = 'foo';

    public $foo                   = 1;

    public $bar                   = 2;

    public $publicArray           = ['foo'];

    protected $protectedAttribute = 'bar';

    protected $privateAttribute   = 'baz';

    protected $protectedArray     = ['bar'];

    protected $privateArray       = ['baz'];
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
use PHPUnit\Framework\TestCase;

/**
 * Tests for the BankAccount class.
 */
class BankAccountWithCustomExtensionTest extends TestCase
{
    protected $ba;

    protected function setUp(): void
    {
        $this->ba = new BankAccount;
    }

    /**
     * @covers BankAccount::getBalance
     * @group balanceIsInitiallyZero
     * @group specification
     */
    public function testBalanceIsInitiallyZero(): void
    {
        $this->assertEquals(0, $this->ba->getBalance());
    }

    /**
     * @covers BankAccount::withdrawMoney
     * @group balanceCannotBecomeNegative
     * @group specification
     */
    public function testBalanceCannotBecomeNegative(): void
    {
        try {
            $this->ba->withdrawMoney(1);
        } catch (BankAccountException $e) {
            $this->assertEquals(0, $this->ba->getBalance());

            return;
        }

        $this->fail();
    }

    /**
     * @covers BankAccount::depositMoney
     * @group balanceCannotBecomeNegative
     * @group specification
     */
    public function testBalanceCannotBecomeNegative2(): void
    {
        try {
            $this->ba->depositMoney(-1);
        } catch (BankAccountException $e) {
            $this->assertEquals(0, $this->ba->getBalance());

            return;
        }

        $this->fail();
    }

    /*
     * @covers BankAccount::getBalance
     * @covers BankAccount::depositMoney
     * @covers BankAccount::withdrawMoney
     * @group balanceCannotBecomeNegative
     */
    /*
    public function testDepositingAndWithdrawingMoneyWorks()
    {
        $this->assertEquals(0, $this->ba->getBalance());
        $this->ba->depositMoney(1);
        $this->assertEquals(1, $this->ba->getBalance());
        $this->ba->withdrawMoney(1);
        $this->assertEquals(0, $this->ba->getBalance());
    }
    */
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
use PHPUnit\Framework\TestCase;

class ChangeCurrentWorkingDirectoryTest extends TestCase
{
    public function testSomethingThatChangesTheCwd(): void
    {
        \chdir('../');
        $this->assertTrue(true);
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
class ConcreteWithMyCustomExtensionTest extends AbstractTest
{
    public function testTwo(): void
    {
        $this->assertTrue(true);
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
interface AnInterface
{
    public function doSomething();
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
use PHPUnit\Framework\TestCase;

abstract class AbstractTest extends TestCase
{
    public function testOne(): void
    {
        $this->assertTrue(true);
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
use PHPUnit\Framework\TestCase;

class BeforeClassAndAfterClassTest extends TestCase
{
    public static $beforeClassWasRun = 0;

    public static $afterClassWasRun  = 0;

    public static function resetProperties(): void
    {
        self::$beforeClassWasRun = 0;
        self::$afterClassWasRun  = 0;
    }

    /**
     * @beforeClass
     */
    public static function initialClassSetup(): void
    {
        self::$beforeClassWasRun++;
    }

    /**
     * @afterClass
     */
    public static function finalClassTeardown(): void
    {
        self::$afterClassWasRun++;
    }

    public function test1(): void
    {
    }

    public function test2(): void
    {
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
use PHPUnit\Framework\TestCase;

class AssertionExampleTest extends TestCase
{
    public function testOne(): void
    {
        $e = new AssertionExample;

        $e->doSomething();
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
abstract class AbstractMockTestClass implements MockTestInterface
{
    abstract public function doSomething();

    public function returnAnything()
    {
        return 1;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
class ArrayAccessible implements ArrayAccess, IteratorAggregate
{
    private $array;

    public function __construct(array $array = [])
    {
        $this->array = $array;
    }

    public function offsetExists($offset)
    {
        return \array_key_exists($offset, $this->array);
    }

    public function offsetGet($offset)
    {
        return $this->array[$offset];
    }

    public function offsetSet($offset, $value): void
    {
        if (null === $offset) {
            $this->array[] = $value;
        } else {
            $this->array[$offset] = $value;
        }
    }

    public function offsetUnset($offset): void
    {
        unset($this->array[$offset]);
    }

    public function getIterator()
    {
        return new ArrayIterator($this->array);
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

/**
 * A class with a __toString() method.
 */
class ClassWithToString
{
    public function __toString()
    {
        return 'string representation';
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
class Calculator
{
    /**
     * @assert (0, 0) == 0
     * @assert (0, 1) == 1
     * @assert (1, 0) == 1
     * @assert (1, 1) == 2
     */
    public function add($a, $b)
    {
        return $a + $b;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

/**
 * A class with a method that takes a variadic argument.
 */
class ClassWithVariadicArgumentMethod
{
    public function foo(...$args)
    {
        return $args;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
class ClassWithStaticMethod
{
    public static function staticMethod(): void
    {
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
trait AbstractTrait
{
    abstract public function doSomething();

    public function mockableMethod()
    {
        return true;
    }

    public function anotherMockableMethod()
    {
        return true;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
use PHPUnit\Framework\TestCase;

class BeforeAndAfterTest extends TestCase
{
    public static $beforeWasRun;

    public static $afterWasRun;

    public static function resetProperties(): void
    {
        self::$beforeWasRun = 0;
        self::$afterWasRun  = 0;
    }

    /**
     * @before
     */
    public function initialSetup(): void
    {
        self::$beforeWasRun++;
    }

    /**
     * @after
     */
    public function finalTeardown(): void
    {
        self::$afterWasRun++;
    }

    public function test1(): void
    {
    }

    public function test2(): void
    {
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
class ConcreteTest extends AbstractTest
{
    public function testTwo(): void
    {
        $this->assertTrue(true);
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
use PHPUnit\Framework\TestCase;

/**
 * Tests for the BankAccount class.
 */
class BankAccountTest extends TestCase
{
    protected $ba;

    protected function setUp(): void
    {
        $this->ba = new BankAccount;
    }

    /**
     * @covers BankAccount::getBalance
     * @group balanceIsInitiallyZero
     * @group specification
     */
    public function testBalanceIsInitiallyZero(): void
    {
        /* @Given a fresh bank account */
        $ba = new BankAccount;

        /* @When I ask it for its balance */
        $balance = $ba->getBalance();

        /* @Then I should get 0 */
        $this->assertEquals(0, $balance);
    }

    /**
     * @covers BankAccount::withdrawMoney
     * @group balanceCannotBecomeNegative
     * @group specification
     */
    public function testBalanceCannotBecomeNegative(): void
    {
        try {
            $this->ba->withdrawMoney(1);
        } catch (BankAccountException $e) {
            $this->assertEquals(0, $this->ba->getBalance());

            return;
        }

        $this->fail();
    }

    /**
     * @covers BankAccount::depositMoney
     * @group balanceCannotBecomeNegative
     * @group specification
     */
    public function testBalanceCannotBecomeNegative2(): void
    {
        try {
            $this->ba->depositMoney(-1);
        } catch (BankAccountException $e) {
            $this->assertEquals(0, $this->ba->getBalance());

            return;
        }

        $this->fail();
    }

    /*
     * @covers BankAccount::getBalance
     * @covers BankAccount::depositMoney
     * @covers BankAccount::withdrawMoney
     * @group balanceCannotBecomeNegative
     */
    /*
    public function testDepositingAndWithdrawingMoneyWorks()
    {
        $this->assertEquals(0, $this->ba->getBalance());
        $this->ba->depositMoney(1);
        $this->assertEquals(1, $this->ba->getBalance());
        $this->ba->withdrawMoney(1);
        $this->assertEquals(0, $this->ba->getBalance());
    }
    */
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

class BankAccountException extends RuntimeException
{
}

/**
 * A bank account.
 */
class BankAccount
{
    /**
     * The bank account's balance.
     *
     * @var float
     */
    protected $balance = 0;

    /**
     * Returns the bank account's balance.
     *
     * @return float
     */
    public function getBalance()
    {
        return $this->balance;
    }

    /**
     * Deposits an amount of money to the bank account.
     *
     * @param float $balance
     *
     * @throws BankAccountException
     */
    public function depositMoney($balance)
    {
        $this->setBalance($this->getBalance() + $balance);

        return $this->getBalance();
    }

    /**
     * Withdraws an amount of money from the bank account.
     *
     * @param float $balance
     *
     * @throws BankAccountException
     */
    public function withdrawMoney($balance)
    {
        $this->setBalance($this->getBalance() - $balance);

        return $this->getBalance();
    }

    /**
     * Sets the bank account's balance.
     *
     * @param float $balance
     *
     * @throws BankAccountException
     */
    protected function setBalance($balance): void
    {
        if ($balance >= 0) {
            $this->balance = $balance;
        } else {
            throw new BankAccountException;
        }
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

/**
 * An author.
 */
class Author
{
    // the order of properties is important for testing the cycle!
    public $books = [];

    private $name = '';

    public function __construct($name)
    {
        $this->name = $name;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
class Bar
{
    public function doSomethingElse()
    {
        return 'result';
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
class ClassWithSelfTypeHint
{
    public function foo(self $foo): void
    {
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
interface AnInterfaceWithReturnType
{
    public function returnAnArray(): array;
}
<?php
namespace PHPSTORM_META {

    override(
        \PHPUnit\Framework\TestCase::createMock(0),
        map([
            '@&\PHPUnit\Framework\MockObject\MockObject',
        ])
    );

    override(
        \PHPUnit\Framework\TestCase::createConfiguredMock(0),
        map([
            '@&\PHPUnit\Framework\MockObject\MockObject',
        ])
    );

    override(
        \PHPUnit\Framework\TestCase::createPartialMock(0),
        map([
            '@&\PHPUnit\Framework\MockObject\MockObject',
        ])
    );

    override(
        \PHPUnit\Framework\TestCase::createTestProxy(0),
        map([
            '@&\PHPUnit\Framework\MockObject\MockObject',
        ])
    );

    override(
        \PHPUnit\Framework\TestCase::getMockForAbstractClass(0),
        map([
            '@&\PHPUnit\Framework\MockObject\MockObject',
        ])
    );
}
<?xml version="1.0" encoding="UTF-8"?>
<files>
  <file src="src/Framework/Assert.php">
    <ArgumentTypeCoercion occurrences="2">
      <code>$expectedElement-&gt;childNodes-&gt;item($i)</code>
      <code>$actualElement-&gt;childNodes-&gt;item($i)</code>
    </ArgumentTypeCoercion>
    <PossiblyInvalidArgument occurrences="3">
      <code>$subset</code>
      <code>$expected</code>
      <code>$expected</code>
    </PossiblyInvalidArgument>
    <PossiblyNullArgument occurrences="2">
      <code>$expectedElement-&gt;childNodes-&gt;item($i)</code>
      <code>$actualElement-&gt;childNodes-&gt;item($i)</code>
    </PossiblyNullArgument>
    <PossiblyNullPropertyFetch occurrences="1">
      <code>$expectedAttribute-&gt;name</code>
    </PossiblyNullPropertyFetch>
    <UndefinedPropertyFetch occurrences="1">
      <code>$expectedAttribute-&gt;name</code>
    </UndefinedPropertyFetch>
  </file>
  <file src="src/Framework/Assert/Functions.php">
    <TooManyArguments occurrences="13">
      <code>Assert::anything(...\func_get_args())</code>
      <code>Assert::isTrue(...\func_get_args())</code>
      <code>Assert::isFalse(...\func_get_args())</code>
      <code>Assert::isJson(...\func_get_args())</code>
      <code>Assert::isNull(...\func_get_args())</code>
      <code>Assert::isFinite(...\func_get_args())</code>
      <code>Assert::isInfinite(...\func_get_args())</code>
      <code>Assert::isNan(...\func_get_args())</code>
      <code>Assert::isEmpty(...\func_get_args())</code>
      <code>Assert::isWritable(...\func_get_args())</code>
      <code>Assert::isReadable(...\func_get_args())</code>
      <code>Assert::directoryExists(...\func_get_args())</code>
      <code>Assert::fileExists(...\func_get_args())</code>
    </TooManyArguments>
  </file>
  <file src="src/Framework/Constraint/Count.php">
    <PossiblyNullArgument occurrences="1">
      <code>$this-&gt;getCountOf($other)</code>
    </PossiblyNullArgument>
  </file>
  <file src="src/Framework/Constraint/ExceptionCode.php">
    <MoreSpecificImplementedParamType occurrences="1">
      <code>$other</code>
    </MoreSpecificImplementedParamType>
  </file>
  <file src="src/Framework/Constraint/ExceptionMessage.php">
    <MoreSpecificImplementedParamType occurrences="1">
      <code>$other</code>
    </MoreSpecificImplementedParamType>
  </file>
  <file src="src/Framework/Constraint/ExceptionMessageRegularExpression.php">
    <MoreSpecificImplementedParamType occurrences="1">
      <code>$other</code>
    </MoreSpecificImplementedParamType>
  </file>
  <file src="src/Framework/Constraint/IsInstanceOf.php">
    <ArgumentTypeCoercion occurrences="1">
      <code>$this-&gt;className</code>
    </ArgumentTypeCoercion>
  </file>
  <file src="src/Framework/Constraint/IsJson.php">
    <PossiblyNullArgument occurrences="1">
      <code>$error</code>
    </PossiblyNullArgument>
  </file>
  <file src="src/Framework/Constraint/IsType.php">
    <InvalidReturnType occurrences="1">
      <code>bool</code>
    </InvalidReturnType>
  </file>
  <file src="src/Framework/Constraint/SameSize.php">
    <PossiblyNullArgument occurrences="1">
      <code>$this-&gt;getCountOf($expected)</code>
    </PossiblyNullArgument>
  </file>
  <file src="src/Framework/Constraint/StringMatchesFormatDescription.php">
    <InvalidArgument occurrences="1">
      <code>"--- Expected\n+++ Actual\n"</code>
    </InvalidArgument>
  </file>
  <file src="src/Framework/Exception/ExpectationFailedException.php">
    <PossiblyNullPropertyAssignmentValue occurrences="1">
      <code>$comparisonFailure</code>
    </PossiblyNullPropertyAssignmentValue>
  </file>
  <file src="src/Framework/ExceptionWrapper.php">
    <PossiblyNullArgument occurrences="1">
      <code>$t-&gt;getPrevious()</code>
    </PossiblyNullArgument>
  </file>
  <file src="src/Framework/MockObject/Builder/InvocationMocker.php">
    <ImplementedReturnTypeMismatch occurrences="1">
      <code>self</code>
    </ImplementedReturnTypeMismatch>
    <LessSpecificReturnStatement occurrences="8">
      <code>$this-&gt;will($stub)</code>
      <code>$this-&gt;will($stub)</code>
      <code>$this-&gt;will($stub)</code>
      <code>$this-&gt;will($stub)</code>
      <code>$this-&gt;will($stub)</code>
      <code>$this-&gt;will($stub)</code>
      <code>$this-&gt;will($stub)</code>
      <code>$this-&gt;will($stub)</code>
    </LessSpecificReturnStatement>
    <MoreSpecificReturnType occurrences="8">
      <code>self</code>
      <code>self</code>
      <code>self</code>
      <code>self</code>
      <code>self</code>
      <code>self</code>
      <code>self</code>
      <code>self</code>
    </MoreSpecificReturnType>
    <UndefinedInterfaceMethod occurrences="1">
      <code>registerId</code>
    </UndefinedInterfaceMethod>
  </file>
  <file src="src/Framework/MockObject/Generator.php">
    <ArgumentTypeCoercion occurrences="5">
      <code>$originalClassName</code>
      <code>$className</code>
      <code>$className</code>
      <code>$interfaceName</code>
      <code>$className</code>
    </ArgumentTypeCoercion>
    <InvalidArgument occurrences="1">
      <code>$type</code>
    </InvalidArgument>
    <PossiblyFalseArgument occurrences="1">
      <code>\strpos($args[$i], '$')</code>
    </PossiblyFalseArgument>
    <UndefinedClass occurrences="1">
      <code>new $type</code>
    </UndefinedClass>
  </file>
  <file src="src/Framework/MockObject/InvocationMocker.php">
    <InvalidNullableReturnType occurrences="1">
      <code>Match</code>
    </InvalidNullableReturnType>
    <NullableReturnStatement occurrences="1">
      <code>null</code>
    </NullableReturnStatement>
    <UndefinedInterfaceMethod occurrences="1">
      <code>hasMatchers</code>
    </UndefinedInterfaceMethod>
  </file>
  <file src="src/Framework/MockObject/Matcher.php">
    <InvalidPropertyAssignmentValue occurrences="1">
      <code>new AnyParameters</code>
    </InvalidPropertyAssignmentValue>
    <PossiblyNullReference occurrences="2">
      <code>__phpunit_getInvocationMocker</code>
      <code>__phpunit_getInvocationMocker</code>
    </PossiblyNullReference>
  </file>
  <file src="src/Framework/MockObject/Matcher/ConsecutiveParameters.php">
    <ImplementedReturnTypeMismatch occurrences="1">
      <code>void</code>
    </ImplementedReturnTypeMismatch>
    <TypeDoesNotContainNull occurrences="1">
      <code>$invocation === null</code>
    </TypeDoesNotContainNull>
  </file>
  <file src="src/Framework/MockObject/Matcher/DeferredError.php">
    <ImplementedReturnTypeMismatch occurrences="1">
      <code>void</code>
    </ImplementedReturnTypeMismatch>
  </file>
  <file src="src/Framework/MockObject/Matcher/Parameters.php">
    <ImplementedReturnTypeMismatch occurrences="1">
      <code>void</code>
    </ImplementedReturnTypeMismatch>
    <InvalidPropertyAssignmentValue occurrences="1">
      <code>$this-&gt;doVerify()</code>
    </InvalidPropertyAssignmentValue>
    <PossiblyNullPropertyAssignmentValue occurrences="1">
      <code>null</code>
    </PossiblyNullPropertyAssignmentValue>
  </file>
  <file src="src/Framework/MockObject/Matcher/StatelessInvocation.php">
    <ImplementedReturnTypeMismatch occurrences="1">
      <code>void</code>
    </ImplementedReturnTypeMismatch>
    <InvalidReturnType occurrences="1">
      <code>void</code>
    </InvalidReturnType>
    <MismatchingDocblockReturnType occurrences="1">
      <code>void</code>
    </MismatchingDocblockReturnType>
  </file>
  <file src="src/Framework/MockObject/MockBuilder.php">
    <PossiblyInvalidPropertyAssignmentValue occurrences="1">
      <code>$type</code>
    </PossiblyInvalidPropertyAssignmentValue>
    <PossiblyNullPropertyAssignmentValue occurrences="1">
      <code>null</code>
    </PossiblyNullPropertyAssignmentValue>
  </file>
  <file src="src/Framework/MockObject/MockMethod.php">
    <ArgumentTypeCoercion occurrences="1">
      <code>$this-&gt;className</code>
    </ArgumentTypeCoercion>
    <PossiblyNullOperand occurrences="1">
      <code>$parameter-&gt;getType()</code>
    </PossiblyNullOperand>
    <PossiblyNullReference occurrences="1">
      <code>allowsNull</code>
    </PossiblyNullReference>
    <TypeDoesNotContainNull occurrences="1">
      <code>$value === null</code>
    </TypeDoesNotContainNull>
  </file>
  <file src="src/Framework/TestCase.php">
    <ArgumentTypeCoercion occurrences="1">
      <code>$this-&gt;expectedException</code>
    </ArgumentTypeCoercion>
    <InvalidArgument occurrences="2">
      <code>0</code>
      <code>$header</code>
    </InvalidArgument>
    <InvalidCatch occurrences="1"/>
    <PossiblyNullPropertyAssignmentValue occurrences="3">
      <code>null</code>
      <code>$beStrictAboutChangesToGlobalState</code>
      <code>null</code>
    </PossiblyNullPropertyAssignmentValue>
    <PossiblyNullReference occurrences="1">
      <code>filter</code>
    </PossiblyNullReference>
    <PossiblyUndefinedVariable occurrences="1">
      <code>$categories</code>
    </PossiblyUndefinedVariable>
    <UndefinedInterfaceMethod occurrences="1">
      <code>method</code>
    </UndefinedInterfaceMethod>
  </file>
  <file src="src/Framework/TestFailure.php">
    <PossiblyNullReference occurrences="1">
      <code>getDiff</code>
    </PossiblyNullReference>
  </file>
  <file src="src/Framework/TestResult.php">
    <PossiblyUndefinedVariable occurrences="1">
      <code>$isAnyCoverageRequired</code>
    </PossiblyUndefinedVariable>
  </file>
  <file src="src/Framework/TestSuite.php">
    <ArgumentTypeCoercion occurrences="2">
      <code>$className</code>
      <code>$className</code>
    </ArgumentTypeCoercion>
    <PossiblyUndefinedVariable occurrences="1">
      <code>$afterClassMethod</code>
    </PossiblyUndefinedVariable>
    <PropertyTypeCoercion occurrences="2">
      <code>$this-&gt;tests</code>
      <code>$this-&gt;tests</code>
    </PropertyTypeCoercion>
  </file>
  <file src="src/Framework/TestSuiteIterator.php">
    <ArgumentTypeCoercion occurrences="1">
      <code>$this-&gt;tests[$this-&gt;position]</code>
    </ArgumentTypeCoercion>
    <InvalidNullableReturnType occurrences="1">
      <code>Test</code>
    </InvalidNullableReturnType>
    <NullableReturnStatement occurrences="1">
      <code>$this-&gt;valid() ? $this-&gt;tests[$this-&gt;position] : null</code>
    </NullableReturnStatement>
  </file>
  <file src="src/Runner/DefaultTestResultCache.php">
    <MethodSignatureMismatch occurrences="1">
      <code>$serialized</code>
    </MethodSignatureMismatch>
  </file>
  <file src="src/Runner/Filter/NameFilterIterator.php">
    <InvalidPropertyAssignmentValue occurrences="2">
      <code>$matches[2]</code>
      <code>$matches[3]</code>
    </InvalidPropertyAssignmentValue>
  </file>
  <file src="src/Runner/PhptTestCase.php">
    <PossiblyInvalidArgument occurrences="1">
      <code>$sections['FILEEOF']</code>
    </PossiblyInvalidArgument>
    <PossiblyNullReference occurrences="1">
      <code>append</code>
    </PossiblyNullReference>
    <PossiblyUndefinedVariable occurrences="1">
      <code>$sectionOffset</code>
    </PossiblyUndefinedVariable>
  </file>
  <file src="src/Runner/StandardTestSuiteLoader.php">
    <PossiblyUndefinedVariable occurrences="1">
      <code>$filename</code>
    </PossiblyUndefinedVariable>
  </file>
  <file src="src/Runner/TestSuiteSorter.php">
    <PossiblyFalseArgument occurrences="1">
      <code>\strpos($test-&gt;getName(), '::')</code>
    </PossiblyFalseArgument>
    <UndefinedInterfaceMethod occurrences="1">
      <code>getName</code>
    </UndefinedInterfaceMethod>
  </file>
  <file src="src/TextUI/Command.php">
    <ArgumentTypeCoercion occurrences="4">
      <code>$suite</code>
      <code>$suite</code>
      <code>$suite</code>
      <code>$printerClass</code>
    </ArgumentTypeCoercion>
    <InvalidCatch occurrences="1"/>
    <LessSpecificReturnStatement occurrences="1">
      <code>$class-&gt;newInstance($outputStream)</code>
    </LessSpecificReturnStatement>
    <MoreSpecificReturnType occurrences="1">
      <code>null|Printer|string</code>
    </MoreSpecificReturnType>
    <PossiblyFalseArgument occurrences="1">
      <code>\strrpos($this-&gt;arguments['test'], '.')</code>
    </PossiblyFalseArgument>
    <PossiblyNullArgument occurrences="4">
      <code>$suite</code>
      <code>$suite</code>
      <code>$suite</code>
      <code>$suite</code>
    </PossiblyNullArgument>
  </file>
  <file src="src/TextUI/Help.php">
    <PossiblyUndefinedArrayOffset occurrences="2">
      <code>$option['desc']</code>
      <code>$option['desc']</code>
    </PossiblyUndefinedArrayOffset>
  </file>
  <file src="src/TextUI/ResultPrinter.php">
    <PossiblyUndefinedVariable occurrences="1">
      <code>$color</code>
    </PossiblyUndefinedVariable>
    <TooManyArguments occurrences="1">
      <code>Color::colorize($color, \str_pad($line, $padding), false)</code>
    </TooManyArguments>
  </file>
  <file src="src/TextUI/TestRunner.php">
    <LessSpecificReturnStatement occurrences="1"/>
    <MoreSpecificReturnType occurrences="1">
      <code>Printer</code>
    </MoreSpecificReturnType>
    <PossiblyNullPropertyAssignmentValue occurrences="1">
      <code>$loader</code>
    </PossiblyNullPropertyAssignmentValue>
    <PossiblyUndefinedVariable occurrences="1">
      <code>$whitelistFromConfigurationFile</code>
    </PossiblyUndefinedVariable>
    <PropertyTypeCoercion occurrences="3">
      <code>$arguments['printer']</code>
      <code>$this-&gt;createPrinter($arguments['printer'], $arguments)</code>
      <code>$this-&gt;createPrinter(ResultPrinter::class, $arguments)</code>
    </PropertyTypeCoercion>
  </file>
  <file src="src/Util/Blacklist.php">
    <UndefinedClass occurrences="1">
      <code>Invoker</code>
    </UndefinedClass>
  </file>
  <file src="src/Util/Configuration.php">
    <ArgumentTypeCoercion occurrences="2">
      <code>$testSuiteNodes-&gt;item(0)</code>
      <code>$testSuiteNode</code>
    </ArgumentTypeCoercion>
    <InvalidNullableReturnType occurrences="1">
      <code>bool</code>
    </InvalidNullableReturnType>
    <NullableReturnStatement occurrences="1">
      <code>\version_compare(\PHP_VERSION, $phpVersion, $phpVersionOperator)</code>
    </NullableReturnStatement>
    <PossiblyInvalidArrayOffset occurrences="3">
      <code>$result[$array][$name]['verbatim']</code>
      <code>$result[$array][$name]['force']</code>
      <code>$result[$array][$name]['value']</code>
    </PossiblyInvalidArrayOffset>
    <PossiblyNullArgument occurrences="1">
      <code>$testSuiteNodes-&gt;item(0)</code>
    </PossiblyNullArgument>
    <PossiblyNullReference occurrences="4">
      <code>hasAttribute</code>
      <code>getAttribute</code>
      <code>hasAttribute</code>
      <code>getAttribute</code>
    </PossiblyNullReference>
    <UndefinedMethod occurrences="7">
      <code>hasAttribute</code>
      <code>getAttribute</code>
      <code>hasAttribute</code>
      <code>getAttribute</code>
      <code>getAttribute</code>
      <code>getAttribute</code>
      <code>getAttribute</code>
    </UndefinedMethod>
  </file>
  <file src="src/Util/ErrorHandler.php">
    <InvalidArgument occurrences="1"/>
  </file>
  <file src="src/Util/Filter.php">
    <PossiblyNullReference occurrences="1">
      <code>getTrace</code>
    </PossiblyNullReference>
  </file>
  <file src="src/Util/Getopt.php">
    <InvalidOperand occurrences="3">
      <code>$i</code>
      <code>$i</code>
      <code>$i</code>
    </InvalidOperand>
    <PossiblyNullArgument occurrences="1">
      <code>$long_options</code>
    </PossiblyNullArgument>
  </file>
  <file src="src/Util/GlobalState.php">
    <PossiblyInvalidIterator occurrences="1">
      <code>$constants['user']</code>
    </PossiblyInvalidIterator>
  </file>
  <file src="src/Util/Log/JUnit.php">
    <ArgumentTypeCoercion occurrences="1">
      <code>$suite-&gt;getName()</code>
    </ArgumentTypeCoercion>
    <InvalidPropertyAssignmentValue occurrences="1">
      <code>$this-&gt;testSuiteTimes</code>
    </InvalidPropertyAssignmentValue>
    <PossiblyNullPropertyAssignmentValue occurrences="1">
      <code>null</code>
    </PossiblyNullPropertyAssignmentValue>
  </file>
  <file src="src/Util/Log/TeamCity.php">
    <ArgumentTypeCoercion occurrences="1">
      <code>$className</code>
    </ArgumentTypeCoercion>
    <UndefinedInterfaceMethod occurrences="7">
      <code>getName</code>
      <code>getName</code>
      <code>getName</code>
      <code>getName</code>
      <code>getName</code>
      <code>getName</code>
      <code>getName</code>
    </UndefinedInterfaceMethod>
  </file>
  <file src="src/Util/PHP/AbstractPhpProcess.php">
    <ArgumentTypeCoercion occurrences="2">
      <code>$this-&gt;getException($warnings[0])</code>
      <code>$this-&gt;getException($failures[0])</code>
    </ArgumentTypeCoercion>
    <InvalidArgument occurrences="1"/>
    <LessSpecificReturnStatement occurrences="1">
      <code>$exception</code>
    </LessSpecificReturnStatement>
    <MoreSpecificReturnType occurrences="1">
      <code>Exception</code>
    </MoreSpecificReturnType>
    <PossiblyFalseOperand occurrences="1">
      <code>\strrpos($key, "\0")</code>
    </PossiblyFalseOperand>
    <PossiblyNullArgument occurrences="1">
      <code>$childResult-&gt;getCodeCoverage()</code>
    </PossiblyNullArgument>
    <PossiblyNullReference occurrences="1">
      <code>merge</code>
    </PossiblyNullReference>
    <UndefinedInterfaceMethod occurrences="2">
      <code>setResult</code>
      <code>addToAssertionCount</code>
    </UndefinedInterfaceMethod>
  </file>
  <file src="src/Util/Printer.php">
    <InvalidArgument occurrences="1">
      <code>$out[1]</code>
    </InvalidArgument>
    <InvalidScalarArgument occurrences="1">
      <code>$out[1]</code>
    </InvalidScalarArgument>
    <PossiblyInvalidPropertyAssignmentValue occurrences="5">
      <code>$out</code>
      <code>$out</code>
      <code>$out</code>
      <code>$out</code>
      <code>$out</code>
    </PossiblyInvalidPropertyAssignmentValue>
  </file>
  <file src="src/Util/RegularExpression.php">
    <PossiblyNullArgument occurrences="1">
      <code>$matches</code>
    </PossiblyNullArgument>
  </file>
  <file src="src/Util/Test.php">
    <ArgumentTypeCoercion occurrences="4">
      <code>$className</code>
      <code>$className</code>
      <code>$dataProviderClassName</code>
      <code>$className</code>
    </ArgumentTypeCoercion>
    <InvalidArgument occurrences="1">
      <code>$e</code>
    </InvalidArgument>
    <InvalidCatch occurrences="1"/>
    <InvalidOperand occurrences="1">
      <code>$matches[0][1]</code>
    </InvalidOperand>
    <InvalidReturnStatement occurrences="2">
      <code>$missing</code>
      <code>$data</code>
    </InvalidReturnStatement>
    <InvalidReturnType occurrences="2">
      <code>array</code>
      <code>?array</code>
    </InvalidReturnType>
    <InvalidScalarArgument occurrences="1">
      <code>\array_flip($lineNumbers)</code>
    </InvalidScalarArgument>
    <PossiblyNullOperand occurrences="1">
      <code>$methodName</code>
    </PossiblyNullOperand>
  </file>
  <file src="src/Util/TestDox/CliTestDoxPrinter.php">
    <PossiblyInvalidArrayOffset occurrences="6">
      <code>$prefix['start']</code>
      <code>$prefix['message']</code>
      <code>$prefix['diff']</code>
      <code>$prefix['default']</code>
      <code>$prefix['trace']</code>
      <code>$prefix['last']</code>
    </PossiblyInvalidArrayOffset>
  </file>
  <file src="src/Util/TestDox/HtmlResultPrinter.php">
    <PossiblyNullArgument occurrences="1">
      <code>$this-&gt;currentTestClassPrettified</code>
    </PossiblyNullArgument>
  </file>
  <file src="src/Util/TestDox/NamePrettifier.php">
    <InvalidCast occurrences="1">
      <code>$value</code>
    </InvalidCast>
    <PossiblyFalseArgument occurrences="1">
      <code>\strripos($result, 'Test')</code>
    </PossiblyFalseArgument>
    <PossiblyInvalidArgument occurrences="3">
      <code>$test-&gt;dataName()</code>
      <code>$name</code>
      <code>$name</code>
    </PossiblyInvalidArgument>
  </file>
  <file src="src/Util/TestDox/TestDoxPrinter.php">
    <UndefinedInterfaceMethod occurrences="1">
      <code>getName</code>
    </UndefinedInterfaceMethod>
  </file>
  <file src="src/Util/TestDox/TextResultPrinter.php">
    <PossiblyNullOperand occurrences="1">
      <code>$this-&gt;currentTestClassPrettified</code>
    </PossiblyNullOperand>
  </file>
  <file src="src/Util/TextTestListRenderer.php">
    <ArgumentTypeCoercion occurrences="1">
      <code>$suite-&gt;getIterator()</code>
    </ArgumentTypeCoercion>
  </file>
  <file src="src/Util/Xml.php">
    <ArgumentTypeCoercion occurrences="1">
      <code>$item</code>
    </ArgumentTypeCoercion>
    <LessSpecificReturnStatement occurrences="1">
      <code>(new DOMDocument)-&gt;importNode($element, true)</code>
    </LessSpecificReturnStatement>
    <MoreSpecificReturnType occurrences="1">
      <code>DOMElement</code>
    </MoreSpecificReturnType>
    <PossiblyNullArgument occurrences="1">
      <code>$item</code>
    </PossiblyNullArgument>
    <PossiblyNullIterator occurrences="1">
      <code>$arguments</code>
    </PossiblyNullIterator>
    <PossiblyNullPropertyFetch occurrences="1">
      <code>$element-&gt;childNodes-&gt;item(0)-&gt;childNodes</code>
    </PossiblyNullPropertyFetch>
  </file>
  <file src="src/Util/XmlTestListRenderer.php">
    <ArgumentTypeCoercion occurrences="1">
      <code>$suite-&gt;getIterator()</code>
    </ArgumentTypeCoercion>
  </file>
</files>
<?xml version="1.0"?>
<psalm
    totallyTyped="false"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="https://getpsalm.org/schema/config"
    xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd"
    errorBaseline=".psalm/baseline.xml"
>
    <projectFiles>
        <directory name="src" />
        <ignoreFiles>
            <directory name="vendor" />
        </ignoreFiles>
    </projectFiles>

    <issueHandlers>
        <LessSpecificReturnType errorLevel="info" />

        <!-- level 3 issues - slightly lazy code writing, but provably low false-negatives -->

        <DeprecatedMethod errorLevel="info" />
        <DeprecatedProperty errorLevel="info" />
        <DeprecatedClass errorLevel="info" />
        <DeprecatedConstant errorLevel="info" />
        <DeprecatedInterface errorLevel="info" />
        <DeprecatedTrait errorLevel="info" />

        <InternalMethod errorLevel="info" />
        <InternalProperty errorLevel="info" />
        <InternalClass errorLevel="info" />

        <MissingClosureReturnType errorLevel="info" />
        <MissingReturnType errorLevel="info" />
        <MissingPropertyType errorLevel="info" />
        <InvalidDocblock errorLevel="info" />
        <MisplacedRequiredParam errorLevel="info" />

        <PropertyNotSetInConstructor errorLevel="info" />
        <MissingConstructor errorLevel="info" />
        <MissingClosureParamType errorLevel="info" />
        <MissingParamType errorLevel="info" />

        <RedundantCondition errorLevel="info" />

        <DocblockTypeContradiction errorLevel="info" />
        <RedundantConditionGivenDocblockType errorLevel="info" />

        <UnresolvableInclude errorLevel="info" />

        <RawObjectIteration errorLevel="info" />

        <InvalidStringClass errorLevel="info" />
    </issueHandlers>
</psalm>
<?xml version="1.0"?>
<psalm
    totallyTyped="true"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="https://getpsalm.org/schema/config"
    xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd"
>
    <projectFiles>
        <directory name="tests/static-analysis" />
        <ignoreFiles>
            <directory name="vendor" />
        </ignoreFiles>
    </projectFiles>

    <issueHandlers>
        <LessSpecificReturnType errorLevel="error" />

        <DeprecatedMethod errorLevel="error" />
        <DeprecatedProperty errorLevel="error" />
        <DeprecatedClass errorLevel="error" />
        <DeprecatedConstant errorLevel="error" />
        <DeprecatedInterface errorLevel="error" />
        <DeprecatedTrait errorLevel="error" />

        <InternalMethod errorLevel="error" />
        <InternalProperty errorLevel="error" />
        <InternalClass errorLevel="error" />

        <MissingClosureReturnType errorLevel="error" />
        <MissingReturnType errorLevel="error" />
        <MissingPropertyType errorLevel="error" />
        <InvalidDocblock errorLevel="error" />
        <MisplacedRequiredParam errorLevel="error" />

        <PropertyNotSetInConstructor errorLevel="info" />
        <MissingConstructor errorLevel="error" />
        <MissingClosureParamType errorLevel="error" />
        <MissingParamType errorLevel="error" />

        <RedundantCondition errorLevel="error" />

        <DocblockTypeContradiction errorLevel="error" />
        <RedundantConditionGivenDocblockType errorLevel="error" />

        <UnresolvableInclude errorLevel="error" />

        <RawObjectIteration errorLevel="error" />

        <InvalidStringClass errorLevel="error" />
    </issueHandlers>
</psalm>
root = true

[*]
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 4
charset = utf-8

[tests/_files/*_result_cache.txt]
insert_final_newline = false
# PHPUnit

PHPUnit is a programmer-oriented testing framework for PHP. It is an instance of the xUnit architecture for unit testing frameworks.

[![Latest Stable Version](https://img.shields.io/packagist/v/phpunit/phpunit.svg?style=flat-square)](https://packagist.org/packages/phpunit/phpunit)
[![Minimum PHP Version](https://img.shields.io/badge/php-%3E%3D%207.2-8892BF.svg?style=flat-square)](https://php.net/)
[![Build Status](https://img.shields.io/travis/sebastianbergmann/phpunit/8.2.svg?style=flat-square)](https://phpunit.de/build-status.html)
[![Type Coverage](https://shepherd.dev/github/sebastianbergmann/phpunit/coverage.svg)](https://shepherd.dev/github/sebastianbergmann/phpunit)

## Installation

We distribute a [PHP Archive (PHAR)](https://php.net/phar) that has all required (as well as some optional) dependencies of PHPUnit 8.2 bundled in a single file:

```bash
$ wget https://phar.phpunit.de/phpunit-8.2.phar

$ php phpunit-8.2.phar --version
```

Alternatively, you may use [Composer](https://getcomposer.org/) to download and install PHPUnit as well as its dependencies. Please refer to the "[Getting Started](https://phpunit.de/getting-started-with-phpunit.html)" guide for details on how to install PHPUnit.

## Contribute

Please refer to [CONTRIBUTING.md](https://github.com/sebastianbergmann/phpunit/blob/master/.github/CONTRIBUTING.md) for information on how to contribute to PHPUnit and its related projects.

## List of Contributors

Thanks to everyone who has contributed to PHPUnit! You can find a detailed list of contributors on every PHPUnit related package on GitHub. This list shows only the major components:

* [PHPUnit](https://github.com/sebastianbergmann/phpunit/graphs/contributors)
* [php-code-coverage](https://github.com/sebastianbergmann/php-code-coverage/graphs/contributors)

A very special thanks to everyone who has contributed to the documentation and helps maintain the translations:

* [English](https://github.com/sebastianbergmann/phpunit-documentation-english/graphs/contributors)
* [Spanish](https://github.com/sebastianbergmann/phpunit-documentation-spanish/graphs/contributors)
* [French](https://github.com/sebastianbergmann/phpunit-documentation-french/graphs/contributors)
* [Japanese](https://github.com/sebastianbergmann/phpunit-documentation-japanese/graphs/contributors)
* [Brazilian Portuguese](https://github.com/sebastianbergmann/phpunit-documentation-brazilian-portuguese/graphs/contributors)
* [Simplified Chinese](https://github.com/sebastianbergmann/phpunit-documentation-chinese/graphs/contributors)

#!/usr/bin/env php
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

if (version_compare('7.2.0', PHP_VERSION, '>')) {
    fwrite(
        STDERR,
        sprintf(
            'This version of PHPUnit is supported on PHP 7.2, PHP 7.3, and PHP 7.4.' . PHP_EOL .
            'You are using PHP %s (%s).' . PHP_EOL,
            PHP_VERSION,
            PHP_BINARY
        )
    );

    die(1);
}

if (!ini_get('date.timezone')) {
    ini_set('date.timezone', 'UTC');
}

foreach (array(__DIR__ . '/../../autoload.php', __DIR__ . '/../vendor/autoload.php', __DIR__ . '/vendor/autoload.php') as $file) {
    if (file_exists($file)) {
        define('PHPUNIT_COMPOSER_INSTALL', $file);

        break;
    }
}

unset($file);

if (!defined('PHPUNIT_COMPOSER_INSTALL')) {
    fwrite(
        STDERR,
        'You need to set up the project dependencies using Composer:' . PHP_EOL . PHP_EOL .
        '    composer install' . PHP_EOL . PHP_EOL .
        'You can learn all about Composer on https://getcomposer.org/.' . PHP_EOL
    );

    die(1);
}

$options = getopt('', array('prepend:'));

if (isset($options['prepend'])) {
    require $options['prepend'];
}

unset($options);

require PHPUNIT_COMPOSER_INSTALL;

PHPUnit\TextUI\Command::main();
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:annotation>
        <xs:documentation source="https://phpunit.de/documentation.html">
            This Schema file defines the rules by which the XML configuration file of PHPUnit 8.2 may be structured.
        </xs:documentation>
        <xs:appinfo source="https://phpunit.de/documentation.html"/>
    </xs:annotation>
    <xs:element name="phpunit" type="phpUnitType">
        <xs:annotation>
            <xs:documentation>Root Element</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:complexType name="filtersType">
        <xs:sequence>
            <xs:element name="whitelist" type="whiteListType" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="filterType">
        <xs:sequence>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:group ref="pathGroup"/>
                <xs:element name="exclude">
                    <xs:complexType>
                        <xs:group ref="pathGroup"/>
                    </xs:complexType>
                </xs:element>
            </xs:choice>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="whiteListType">
        <xs:complexContent>
            <xs:extension base="filterType">
                <xs:attribute name="addUncoveredFilesFromWhitelist" default="true" type="xs:boolean"/>
                <xs:attribute name="processUncoveredFilesFromWhitelist" default="false" type="xs:boolean"/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="groupsType">
        <xs:choice>
            <xs:sequence>
                <xs:element name="include" type="groupType"/>
                <xs:element name="exclude" type="groupType" minOccurs="0"/>
            </xs:sequence>
            <xs:sequence>
                <xs:element name="exclude" type="groupType"/>
            </xs:sequence>
        </xs:choice>
    </xs:complexType>
    <xs:complexType name="groupType">
        <xs:sequence>
            <xs:element name="group" type="xs:string" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="extensionsType">
        <xs:sequence>
            <xs:element name="extension" type="objectType" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="listenersType">
        <xs:sequence>
            <xs:element name="listener" type="objectType" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="objectType">
        <xs:sequence>
            <xs:element name="arguments" minOccurs="0">
                <xs:complexType>
                    <xs:group ref="argumentsGroup"/>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="class" type="xs:string" use="required"/>
        <xs:attribute name="file" type="xs:anyURI"/>
    </xs:complexType>
    <xs:complexType name="arrayType">
        <xs:sequence>
            <xs:element name="element" type="argumentType" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="argumentType">
        <xs:group ref="argumentChoice"/>
        <xs:attribute name="key" use="required"/>
    </xs:complexType>
    <xs:group name="argumentsGroup">
        <xs:sequence>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element name="array" type="arrayType" />
                <xs:element name="integer" type="xs:integer" />
                <xs:element name="string" type="xs:string" />
                <xs:element name="double" type="xs:double" />
                <xs:element name="null" />
                <xs:element name="object" type="objectType" />
                <xs:element name="file" type="xs:anyURI" />
                <xs:element name="directory" type="xs:anyURI" />
                <xs:element name="boolean" type="xs:boolean" />
            </xs:choice>
        </xs:sequence>
    </xs:group>
    <xs:group name="argumentChoice">
        <xs:choice>
            <xs:element name="array" type="arrayType" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="integer" type="xs:integer" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="string" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="double" type="xs:double" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="null" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="object" type="objectType" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="file" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="directory" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="boolean" type="xs:boolean" minOccurs="0" maxOccurs="unbounded"/>
        </xs:choice>
    </xs:group>
    <xs:simpleType name="columnsType">
        <xs:union>
            <xs:simpleType>
                <xs:restriction base="xs:integer"/>
            </xs:simpleType>
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="max"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:union>
    </xs:simpleType>
    <xs:complexType name="loggersType">
        <xs:sequence>
            <xs:element name="log" type="loggerType" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="loggerType">
        <xs:attribute name="type">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="coverage-html"/>
                    <xs:enumeration value="coverage-text"/>
                    <xs:enumeration value="coverage-clover"/>
                    <xs:enumeration value="coverage-crap4j"/>
                    <xs:enumeration value="coverage-xml"/>
                    <xs:enumeration value="coverage-php"/>
                    <xs:enumeration value="json"/>
                    <xs:enumeration value="plain"/>
                    <xs:enumeration value="tap"/>
                    <xs:enumeration value="teamcity"/>
                    <xs:enumeration value="junit"/>
                    <xs:enumeration value="testdox-html"/>
                    <xs:enumeration value="testdox-text"/>
                    <xs:enumeration value="testdox-xml"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="target" type="xs:anyURI"/>
        <xs:attribute name="lowUpperBound" type="xs:nonNegativeInteger" default="35"/>
        <xs:attribute name="highLowerBound" type="xs:nonNegativeInteger" default="70"/>
        <xs:attribute name="showUncoveredFiles" type="xs:boolean" default="false"/>
        <xs:attribute name="showOnlySummary" type="xs:boolean" default="false"/>
        <xs:attribute name="threshold" type="xs:nonNegativeInteger" default="30"/>
    </xs:complexType>
    <xs:group name="pathGroup">
        <xs:sequence>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element name="directory" type="directoryFilterType"/>
                <xs:element name="file" type="fileFilterType"/>
            </xs:choice>
        </xs:sequence>
    </xs:group>
    <xs:complexType name="directoryFilterType">
        <xs:simpleContent>
            <xs:extension base="xs:anyURI">
                <xs:attribute type="xs:string" name="prefix" default=""/>
                <xs:attribute type="xs:string" name="suffix" default="Test.php"/>
                <xs:attributeGroup ref="phpVersionGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:simpleType name="executionOrderType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="default"/>
            <xs:enumeration value="defects"/>
            <xs:enumeration value="depends"/>
            <xs:enumeration value="depends,defects"/>
            <xs:enumeration value="depends,duration"/>
            <xs:enumeration value="depends,random"/>
            <xs:enumeration value="depends,reverse"/>
            <xs:enumeration value="duration"/>
            <xs:enumeration value="no-depends"/>
            <xs:enumeration value="no-depends,defects"/>
            <xs:enumeration value="no-depends,duration"/>
            <xs:enumeration value="no-depends,random"/>
            <xs:enumeration value="no-depends,reverse"/>
            <xs:enumeration value="random"/>
            <xs:enumeration value="reverse"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="fileFilterType">
        <xs:simpleContent>
            <xs:extension base="xs:anyURI">
                <xs:attributeGroup ref="phpVersionGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:attributeGroup name="phpVersionGroup">
        <xs:attribute name="phpVersion" type="xs:string" default="5.3.0"/>
        <xs:attribute name="phpVersionOperator" type="xs:string" default="&gt;="/>
    </xs:attributeGroup>
    <xs:complexType name="phpType">
        <xs:sequence>
            <xs:choice maxOccurs="unbounded">
                <xs:element name="includePath" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element name="ini" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element name="const" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element name="var" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element name="env" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element name="post" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element name="get" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element name="cookie" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element name="server" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element name="files" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element name="request" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
            </xs:choice>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="namedValueType">
        <xs:attribute name="name" use="required" type="xs:string"/>
        <xs:attribute name="value" use="required" type="xs:anySimpleType"/>
        <xs:attribute name="verbatim" use="optional" type="xs:boolean"/>
        <xs:attribute name="force" use="optional" type="xs:boolean"/>
    </xs:complexType>
    <xs:complexType name="phpUnitType">
        <xs:annotation>
            <xs:documentation>The main type specifying the document structure</xs:documentation>
        </xs:annotation>
        <xs:group ref="configGroup"/>
        <xs:attributeGroup ref="configAttributeGroup"/>
    </xs:complexType>
    <xs:attributeGroup name="configAttributeGroup">
        <xs:attribute name="backupGlobals" type="xs:boolean" default="false"/>
        <xs:attribute name="backupStaticAttributes" type="xs:boolean" default="false"/>
        <xs:attribute name="bootstrap" type="xs:anyURI"/>
        <xs:attribute name="cacheResult" type="xs:boolean" default="true"/>
        <xs:attribute name="cacheResultFile" type="xs:anyURI"/>
        <xs:attribute name="cacheTokens" type="xs:boolean" default="false"/>
        <xs:attribute name="colors" type="xs:boolean" default="false"/>
        <xs:attribute name="columns" type="columnsType" default="80"/>
        <xs:attribute name="convertDeprecationsToExceptions" type="xs:boolean" default="true"/>
        <xs:attribute name="convertErrorsToExceptions" type="xs:boolean" default="true"/>
        <xs:attribute name="convertNoticesToExceptions" type="xs:boolean" default="true"/>
        <xs:attribute name="convertWarningsToExceptions" type="xs:boolean" default="true"/>
        <xs:attribute name="disableCodeCoverageIgnore" type="xs:boolean" default="false"/>
        <xs:attribute name="forceCoversAnnotation" type="xs:boolean" default="false"/>
        <xs:attribute name="printerClass" type="xs:string" default="PHPUnit\TextUI\ResultPrinter"/>
        <xs:attribute name="printerFile" type="xs:anyURI"/>
        <xs:attribute name="processIsolation" type="xs:boolean" default="false"/>
        <xs:attribute name="stopOnDefect" type="xs:boolean" default="false"/>
        <xs:attribute name="stopOnError" type="xs:boolean" default="false"/>
        <xs:attribute name="stopOnFailure" type="xs:boolean" default="false"/>
        <xs:attribute name="stopOnWarning" type="xs:boolean" default="false"/>
        <xs:attribute name="stopOnIncomplete" type="xs:boolean" default="false"/>
        <xs:attribute name="stopOnRisky" type="xs:boolean" default="false"/>
        <xs:attribute name="stopOnSkipped" type="xs:boolean" default="false"/>
        <xs:attribute name="failOnRisky" type="xs:boolean" default="false"/>
        <xs:attribute name="failOnWarning" type="xs:boolean" default="false"/>
        <xs:attribute name="beStrictAboutChangesToGlobalState" type="xs:boolean" default="false"/>
        <xs:attribute name="beStrictAboutOutputDuringTests" type="xs:boolean" default="false"/>
        <xs:attribute name="beStrictAboutResourceUsageDuringSmallTests" type="xs:boolean" default="false"/>
        <xs:attribute name="beStrictAboutTestsThatDoNotTestAnything" type="xs:boolean" default="true"/>
        <xs:attribute name="beStrictAboutTodoAnnotatedTests" type="xs:boolean" default="false"/>
        <xs:attribute name="beStrictAboutCoversAnnotation" type="xs:boolean" default="false"/>
        <xs:attribute name="defaultTimeLimit" type="xs:integer" default="0"/>
        <xs:attribute name="enforceTimeLimit" type="xs:boolean" default="false"/>
        <xs:attribute name="ignoreDeprecatedCodeUnitsFromCodeCoverage" type="xs:boolean" default="false"/>
        <xs:attribute name="timeoutForSmallTests" type="xs:integer" default="1"/>
        <xs:attribute name="timeoutForMediumTests" type="xs:integer" default="10"/>
        <xs:attribute name="timeoutForLargeTests" type="xs:integer" default="60"/>
        <xs:attribute name="testSuiteLoaderClass" type="xs:string" default="PHPUnit\Runner\StandardTestSuiteLoader"/>
        <xs:attribute name="testSuiteLoaderFile" type="xs:anyURI"/>
        <xs:attribute name="defaultTestSuite" type="xs:string" default=""/>
        <xs:attribute name="verbose" type="xs:boolean" default="false"/>
        <xs:attribute name="testdox" type="xs:boolean" default="false"/>
        <xs:attribute name="stderr" type="xs:boolean" default="false"/>
        <xs:attribute name="reverseDefectList" type="xs:boolean" default="false"/>
        <xs:attribute name="registerMockObjectsFromTestArgumentsRecursively" type="xs:boolean" default="false"/>
        <xs:attribute name="extensionsDirectory" type="xs:string"/>
        <xs:attribute name="executionOrder" type="executionOrderType" default="default"/>
        <xs:attribute name="resolveDependencies" type="xs:boolean" default="true"/>
        <xs:attribute name="noInteraction" type="xs:boolean" default="false"/>
    </xs:attributeGroup>
    <xs:group name="configGroup">
        <xs:all>
            <xs:element ref="testSuiteFacet" minOccurs="0"/>
            <xs:element name="groups" type="groupsType" minOccurs="0"/>
            <xs:element name="testdoxGroups" type="groupsType" minOccurs="0"/>
            <xs:element name="filter" type="filtersType" minOccurs="0"/>
            <xs:element name="logging" type="loggersType" minOccurs="0"/>
            <xs:element name="extensions" type="extensionsType" minOccurs="0"/>
            <xs:element name="listeners" type="listenersType" minOccurs="0"/>
            <xs:element name="php" type="phpType" minOccurs="0"/>
        </xs:all>
    </xs:group>
    <xs:element name="testSuiteFacet" abstract="true"/>
    <xs:element name="testsuite" type="testSuiteType" substitutionGroup="testSuiteFacet"/>
    <xs:element name="testsuites" type="testSuitesType" substitutionGroup="testSuiteFacet"/>
    <xs:complexType name="testSuitesType">
        <xs:sequence>
            <xs:element name="testsuite" type="testSuiteType" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="testSuiteType">
        <xs:sequence>
            <xs:group ref="pathGroup"/>
            <xs:element name="exclude" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="name" type="xs:string" use="required"/>
    </xs:complexType>
</xs:schema>
/.ant_targets
/.idea
/.php_cs
/.php_cs.cache
/build/documentation
/build/logfiles
/build/phar
/build/phar-scoped
/build/phpdox
/build/*.phar
/build/*.phar.asc
/build/binary-phar-autoload.php
/cache.properties
/composer.lock
/tests/end-to-end/*.diff
/tests/end-to-end/*.exp
/tests/end-to-end/*.log
/tests/end-to-end/*.out
/tests/end-to-end/*.php
/vendor
.phpunit.result.cache
patreon: s_bergmann
custom: https://phpunit.de/donate.html
# Contributor Code of Conduct

As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.

We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, or nationality.

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery
* Personal attacks
* Trolling or insulting/derogatory comments
* Public or private harassment
* Publishing other's private information, such as physical or electronic
  addresses, without explicit permission
* Other unethical or unprofessional conduct

Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.

By adopting this Code of Conduct, project maintainers commit themselves to fairly and consistently applying these principles to every aspect of managing this project. Project maintainers who do not follow or enforce the Code of Conduct may be permanently removed from the project team.

This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community.

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project maintainer at sebastian@phpunit.de. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. Maintainers are obligated to maintain confidentiality with regard to the reporter of an incident.

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.3.0, available at [https://contributor-covenant.org/version/1/3/0/][version]

[homepage]: https://contributor-covenant.org
[version]: https://contributor-covenant.org/version/1/3/0/
| Q                   | A
| --------------------| ---------------
| PHPUnit version     | x.y.z
| PHP version         | x.y.z
| Installation Method | Composer / PHAR

<!--
- Please fill in this template according to your issue.
- Please keep the table shown above at the top of your issue.
- Please include the output of "composer info | sort" if you installed PHPUnit using Composer.
- Please post code as text (using proper markup). Do not post screenshots of code.
- Visit https://phpunit.de/support.html if you are looking for support.
- Otherwise, replace this comment by the description of your issue.
-->

# Contributing to PHPUnit

## Contributor Code of Conduct

Please note that this project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms.

## Workflow

* Fork the project.
* Make your bug fix or feature addition.
* Add tests for it. This is important so we don't break it in a future version unintentionally.
* Send a pull request. Bonus points for topic branches.

Please make sure that you have [set up your user name and email address](https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup) for use with Git. Strings such as `silly nick name <root@localhost>` look really stupid in the commit history of a project.

Pull requests for bug fixes must be made for the oldest branch that is [supported](https://phpunit.de/supported-versions.html). Pull requests for new features must be based on the `master` branch.

We are trying to keep backwards compatibility breaks in PHPUnit to an absolute minimum. Please take this into account when proposing changes.

Due to time constraints, we are not always able to respond as quickly as we would like. Please do not take delays personal and feel free to remind us if you feel that we forgot to respond.

## Coding Guidelines

This project comes with a configuration file and an executable for [php-cs-fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer) (`.php_cs`) that you can use to (re)format your source code for compliance with this project's coding guidelines:

```bash
$ ./tools/php-cs-fixer fix
```

## Using PHPUnit from a Git checkout

The following commands can be used to perform the initial checkout of PHPUnit:

```bash
$ git clone git://github.com/sebastianbergmann/phpunit.git

$ cd phpunit
```

Retrieve PHPUnit's dependencies using [Composer](https://getcomposer.org/):

```bash
$ ./tools/composer install
```

The `phpunit` script can be used to invoke the PHPUnit test runner:

```bash
$ ./phpunit --version
```

## Running PHPUnit's own test suite

After following the steps shown above, PHPUnit's own test suite is run like this:

```bash
$ ./phpunit
```

## Reporting issues

Please use the most specific issue tracker to search for existing tickets and to open new tickets:

* [General problems](https://github.com/sebastianbergmann/phpunit/issues)
* [Code Coverage](https://github.com/sebastianbergmann/php-code-coverage/issues)
* [Documentation](https://github.com/sebastianbergmann/phpunit-documentation-english/issues)
* [Website](https://github.com/sebastianbergmann/phpunit-website/issues)

/build export-ignore
/tools export-ignore

*.php diff=php

<?xml version="1.0" encoding="UTF-8"?>
<phive xmlns="https://phar.io/phive">
  <phar name="phpab" version="^1.25" installed="1.25.6" location="./tools/phpab" copy="true"/>
  <phar name="php-cs-fixer" version="^2.14" installed="2.15.1" location="./tools/php-cs-fixer" copy="true"/>
  <phar name="phpdox" version="^0.11" installed="0.12.0" location="./tools/phpdox" copy="true"/>
  <phar name="phploc" version="^4.0" installed="4.0.1" location="./tools/phploc" copy="true"/>
  <phar name="psalm" version="^3.2" installed="3.4.9" location="./tools/psalm" copy="true"/>
</phive>
# Changes in PHPUnit 8.2

All notable changes of the PHPUnit 8.2 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles.

## [8.2.5] - 2019-07-15

### Fixed

* Fixed [#3747](https://github.com/sebastianbergmann/phpunit/pull/3747): Regression in `StringStartsWith` constraint
* Fixed [#3752](https://github.com/sebastianbergmann/phpunit/issues/3752): `expectException()` fails with `getMockForAbstractClass()`

## [8.2.4] - 2019-07-03

### Changed

* Implemented [#3744](https://github.com/sebastianbergmann/phpunit/pull/3744): More context when value with incompatible type is configured to be returned by stub

## [8.2.3] - 2019-06-19

### Fixed

* Fixed [#3722](https://github.com/sebastianbergmann/phpunit/issues/3722): `getObjectForTrait()` does not work for traits that declare a constructor
* Fixed [#3723](https://github.com/sebastianbergmann/phpunit/pull/3723): Unescaped dash in character group in regular expression

## [8.2.2] - 2019-06-15

### Changed

* Scoped PHAR built with newer version of PHP-Scoper

## [8.2.1] - 2019-06-07

### Fixed

* Fixed [type#2](https://github.com/sebastianbergmann/type/issues/2): Stubbing of methods with `callable` or `iterable` return type does not work

## [8.2.0] - 2019-06-07

### Added

* Implemented [#3506](https://github.com/sebastianbergmann/phpunit/issues/3506): PHP options should be passed to child processes
* Implemented [#3586](https://github.com/sebastianbergmann/phpunit/issues/3586): Show time spent on code coverage report generation
* Implemented [#3682](https://github.com/sebastianbergmann/phpunit/issues/3682): Allow using `duration` for the `--order-by` option as well as for the `executionOrder` attribute in `phpunit.xml`

### Changed

* Implemented [#3122](https://github.com/sebastianbergmann/phpunit/issues/3122): Prevent runtime type error due to wrong return value configuration of test double
* Implemented [#3708](https://github.com/sebastianbergmann/phpunit/pull/3708): Built-in assertion and mock type definitions

### Fixed

* Fixed [#3602](https://github.com/sebastianbergmann/phpunit/issues/3602): PHPUnit silently ignores the return value on a `void` method of test double

[8.2.5]: https://github.com/sebastianbergmann/phpunit/compare/8.2.4...8.2.5
[8.2.4]: https://github.com/sebastianbergmann/phpunit/compare/8.2.3...8.2.4
[8.2.3]: https://github.com/sebastianbergmann/phpunit/compare/8.2.2...8.2.3
[8.2.2]: https://github.com/sebastianbergmann/phpunit/compare/8.2.1...8.2.2
[8.2.1]: https://github.com/sebastianbergmann/phpunit/compare/8.2.0...8.2.1
[8.2.0]: https://github.com/sebastianbergmann/phpunit/compare/8.1.6...8.2.0

language: php

addons:
  apt:
    packages:
      - libxml2-utils

php:
  - 7.2
  - 7.3
  - 7.4snapshot
  - nightly

matrix:
  allow_failures:
    - php: nightly
  fast_finish: true

env:
  matrix:
    - DEPENDENCIES="high"
    - DEPENDENCIES="low"
  global:
    - DEFAULT_COMPOSER_FLAGS="--no-interaction --no-ansi --no-progress --no-suggest"

before_install:
  - ./tools/composer clear-cache

install:
  - if [[ "$DEPENDENCIES" = 'high' ]]; then travis_retry ./tools/composer update $DEFAULT_COMPOSER_FLAGS; fi
  - if [[ "$DEPENDENCIES" = 'low' ]]; then travis_retry ./tools/composer update $DEFAULT_COMPOSER_FLAGS --prefer-lowest; fi

before_script:
  - echo 'zend.assertions=1' >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini
  - echo 'assert.exception=On' >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini

script:
  - ./phpunit --coverage-clover=coverage.xml
  - ./phpunit --configuration ./build/travis-ci-fail.xml > /dev/null; if [ $? -eq 0 ]; then echo "SHOULD FAIL"; false; else echo "fail checked"; fi;
  - xmllint --noout --schema phpunit.xsd phpunit.xml
  - xmllint --noout --schema phpunit.xsd tests/_files/configuration.xml
  - xmllint --noout --schema phpunit.xsd tests/_files/configuration_empty.xml
  - xmllint --noout --schema phpunit.xsd tests/_files/configuration_xinclude.xml -xinclude

after_success:
  - bash <(curl -s https://codecov.io/bash)

notifications:
  email: false

jobs:
  include:
    - stage: "Static Code Analysis"
      php: 7.3
      env: php-cs-fixer
      install:
        - phpenv config-rm xdebug.ini
      script:
        - ./tools/php-cs-fixer fix --dry-run -v --show-progress=dots --diff-format=udiff
    - stage: "Static Code Analysis"
      php: 7.3
      env: psalm
      install:
        - phpenv config-rm xdebug.ini
      script:
        - travis_retry ./tools/composer update $DEFAULT_COMPOSER_FLAGS
        - ./tools/psalm --config=.psalm/static-analysis.xml --no-progress
        - ./tools/psalm --config=.psalm/config.xml --no-progress --shepherd --stats
{
    "name": "phpunit/phpunit",
    "description": "The PHP Unit Testing framework.",
    "type": "library",
    "keywords": [
        "phpunit",
        "xunit",
        "testing"
    ],
    "homepage": "https://phpunit.de/",
    "license": "BSD-3-Clause",
    "authors": [
        {
            "name": "Sebastian Bergmann",
            "email": "sebastian@phpunit.de",
            "role": "lead"
        }
    ],
    "support": {
        "issues": "https://github.com/sebastianbergmann/phpunit/issues"
    },
    "prefer-stable": true,
    "require": {
        "php": "^7.2",
        "ext-dom": "*",
        "ext-json": "*",
        "ext-libxml": "*",
        "ext-mbstring": "*",
        "ext-xml": "*",
        "ext-xmlwriter": "*",
        "doctrine/instantiator": "^1.2.0",
        "myclabs/deep-copy": "^1.9.1",
        "phar-io/manifest": "^1.0.3",
        "phar-io/version": "^2.0.1",
        "phpspec/prophecy": "^1.8.1",
        "phpunit/php-code-coverage": "^7.0.5",
        "phpunit/php-file-iterator": "^2.0.2",
        "phpunit/php-text-template": "^1.2.1",
        "phpunit/php-timer": "^2.1.2",
        "sebastian/comparator": "^3.0.2",
        "sebastian/diff": "^3.0.2",
        "sebastian/environment": "^4.2.2",
        "sebastian/exporter": "^3.1.0",
        "sebastian/global-state": "^3.0.0",
        "sebastian/object-enumerator": "^3.0.3",
        "sebastian/resource-operations": "^2.0.1",
        "sebastian/type": "^1.1.3",
        "sebastian/version": "^2.0.1"
    },
    "require-dev": {
        "ext-PDO": "*"
    },
    "config": {
        "platform": {
            "php": "7.2.0"
        },
        "optimize-autoloader": true,
        "sort-packages": true
    },
    "suggest": {
        "phpunit/php-invoker": "^2.0.0",
        "ext-soap": "*",
        "ext-xdebug": "*"
    },
    "bin": [
        "phpunit"
    ],
    "autoload": {
        "classmap": [
            "src/"
        ]
    },
    "autoload-dev": {
        "classmap": [
            "tests/"
        ],
        "files": [
            "src/Framework/Assert/Functions.php",
            "tests/_files/CoverageNamespacedFunctionTest.php",
            "tests/_files/CoveredFunction.php",
            "tests/_files/NamespaceCoveredFunction.php"
        ]
    },
    "extra": {
        "branch-alias": {
            "dev-master": "8.2-dev"
        }
    }
}
<?php declare(strict_types=1);
$header = <<<'EOF'
This file is part of PHPUnit.

(c) Sebastian Bergmann <sebastian@phpunit.de>

For the full copyright and license information, please view the LICENSE
file that was distributed with this source code.
EOF;

return PhpCsFixer\Config::create()
    ->setRiskyAllowed(true)
    ->setRules(
        [
            'align_multiline_comment' => true,
            'array_indentation' => true,
            'array_syntax' => ['syntax' => 'short'],
            'binary_operator_spaces' => [
                'operators' => [
                    '=' => 'align',
                    '=>' => 'align',
                ],
            ],
            'blank_line_after_namespace' => true,
            'blank_line_before_statement' => [
                'statements' => [
                    'break',
                    'continue',
                    'declare',
                    'do',
                    'for',
                    'foreach',
                    'if',
                    'include',
                    'include_once',
                    'require',
                    'require_once',
                    'return',
                    'switch',
                    'throw',
                    'try',
                    'while',
                    'yield',
                ],
            ],
            'braces' => true,
            'cast_spaces' => true,
            'class_attributes_separation' => ['elements' => ['const', 'method', 'property']],
            'combine_consecutive_issets' => true,
            'combine_consecutive_unsets' => true,
            'compact_nullable_typehint' => true,
            'concat_space' => ['spacing' => 'one'],
            'declare_equal_normalize' => ['space' => 'none'],
            'declare_strict_types' => true,
            'dir_constant' => true,
            'elseif' => true,
            'encoding' => true,
            'full_opening_tag' => true,
            'function_declaration' => true,
            'header_comment' => ['header' => $header, 'separate' => 'none'],
            'indentation_type' => true,
            'is_null' => true,
            'line_ending' => true,
            'list_syntax' => ['syntax' => 'short'],
            'logical_operators' => true,
            'lowercase_cast' => true,
            'lowercase_constants' => true,
            'lowercase_keywords' => true,
            'lowercase_static_reference' => true,
            'magic_constant_casing' => true,
            'method_argument_space' => ['ensure_fully_multiline' => true],
            'modernize_types_casting' => true,
            'multiline_comment_opening_closing' => true,
            'multiline_whitespace_before_semicolons' => true,
            'native_constant_invocation' => true,
            'native_function_casing' => true,
            'native_function_invocation' => true,
            'new_with_braces' => false,
            'no_alias_functions' => true,
            'no_alternative_syntax' => true,
            'no_blank_lines_after_class_opening' => true,
            'no_blank_lines_after_phpdoc' => true,
            'no_blank_lines_before_namespace' => true,
            'no_closing_tag' => true,
            'no_empty_comment' => true,
            'no_empty_phpdoc' => true,
            'no_empty_statement' => true,
            'no_extra_blank_lines' => true,
            'no_homoglyph_names' => true,
            'no_leading_import_slash' => true,
            'no_leading_namespace_whitespace' => true,
            'no_mixed_echo_print' => ['use' => 'print'],
            'no_multiline_whitespace_around_double_arrow' => true,
            'no_null_property_initialization' => true,
            'no_php4_constructor' => true,
            'no_short_bool_cast' => true,
            'no_short_echo_tag' => true,
            'no_singleline_whitespace_before_semicolons' => true,
            'no_spaces_after_function_name' => true,
            'no_spaces_inside_parenthesis' => true,
            'no_superfluous_elseif' => true,
            'no_superfluous_phpdoc_tags' => true,
            'no_trailing_comma_in_list_call' => true,
            'no_trailing_comma_in_singleline_array' => true,
            'no_trailing_whitespace' => true,
            'no_trailing_whitespace_in_comment' => true,
            'no_unneeded_control_parentheses' => true,
            'no_unneeded_curly_braces' => true,
            'no_unneeded_final_method' => true,
            'no_unreachable_default_argument_value' => true,
            'no_unset_on_property' => true,
            'no_unused_imports' => true,
            'no_useless_else' => true,
            'no_useless_return' => true,
            'no_whitespace_before_comma_in_array' => true,
            'no_whitespace_in_blank_line' => true,
            'non_printable_character' => true,
            'normalize_index_brace' => true,
            'object_operator_without_whitespace' => true,
            'ordered_class_elements' => [
                'order' => [
                    'use_trait',
                    'constant_public',
                    'constant_protected',
                    'constant_private',
                    'property_public_static',
                    'property_protected_static',
                    'property_private_static',
                    'property_public',
                    'property_protected',
                    'property_private',
                    'method_public_static',
                    'construct',
                    'destruct',
                    'magic',
                    'phpunit',
                    'method_public',
                    'method_protected',
                    'method_private',
                    'method_protected_static',
                    'method_private_static',
                ],
            ],
            'ordered_imports' => true,
            'ordered_interfaces' => [
                'direction' => 'ascend',
                'order' => 'alpha',
            ],
            'phpdoc_add_missing_param_annotation' => true,
            'phpdoc_align' => true,
            'phpdoc_annotation_without_dot' => true,
            'phpdoc_indent' => true,
            'phpdoc_no_access' => true,
            'phpdoc_no_empty_return' => true,
            'phpdoc_no_package' => true,
            'phpdoc_order' => true,
            'phpdoc_return_self_reference' => true,
            'phpdoc_scalar' => true,
            'phpdoc_separation' => true,
            'phpdoc_single_line_var_spacing' => true,
            'phpdoc_to_comment' => true,
            'phpdoc_trim' => true,
            'phpdoc_trim_consecutive_blank_line_separation' => true,
            'phpdoc_types' => ['groups' => ['simple', 'meta']],
            'phpdoc_types_order' => true,
            'phpdoc_var_without_name' => true,
            'pow_to_exponentiation' => true,
            'protected_to_private' => true,
            'return_assignment' => true,
            'return_type_declaration' => ['space_before' => 'none'],
            'self_accessor' => true,
            'semicolon_after_instruction' => true,
            'set_type_to_cast' => true,
            'short_scalar_cast' => true,
            'simplified_null_return' => true,
            'single_blank_line_at_eof' => true,
            'single_import_per_statement' => true,
            'single_line_after_imports' => true,
            'single_quote' => true,
            'standardize_not_equals' => true,
            'ternary_to_null_coalescing' => true,
            'trailing_comma_in_multiline_array' => true,
            'trim_array_spaces' => true,
            'unary_operator_spaces' => true,
            'visibility_required' => [
                'elements' => [
                    'const',
                    'method',
                    'property',
                ],
            ],
            'void_return' => true,
            'whitespace_after_comma_in_array' => true,
        ]
    )
    ->setFinder(
        PhpCsFixer\Finder::create()
        ->files()
        ->in(__DIR__ . '/build')
        ->in(__DIR__ . '/src')
        ->in(__DIR__ . '/tests/_files')
        ->in(__DIR__ . '/tests/basic')
        ->in(__DIR__ . '/tests/end-to-end')
        ->in(__DIR__ . '/tests/fail')
        ->in(__DIR__ . '/tests/unit')
        ->notName('*.phpt')
        ->notName('ClassWithAllPossibleReturnTypes.php')
    );
# Changes in PHPUnit 7.5

All notable changes of the PHPUnit 7.5 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles.

## [7.5.14] - 2019-07-15

### Fixed

* Fixed [#3743](https://github.com/sebastianbergmann/phpunit/issues/3743): `EmptyIterator` instances are not handled correctly by `Count` and `IsEmpty` constraints

## [7.5.13] - 2019-06-19

### Fixed

* Fixed [#3722](https://github.com/sebastianbergmann/phpunit/issues/3722): `getObjectForTrait()` does not work for traits that declare a constructor
* Fixed [#3723](https://github.com/sebastianbergmann/phpunit/pull/3723): Unescaped dash in character group in regular expression

## [7.5.12] - 2019-05-28

### Changed

* After each test, `libxml_clear_errors()` is now called to clear the libxml error buffer

### Fixed

* Fixed [#3694](https://github.com/sebastianbergmann/phpunit/pull/3694): Constructor arguments for `Throwable` and `Exception` are ignored
* Fixed [#3709](https://github.com/sebastianbergmann/phpunit/pull/3709): Method-level `@coversNothing` annotation does not prevent code coverage data collection

## [7.5.11] - 2019-05-14

### Fixed

* Fixed [#3683](https://github.com/sebastianbergmann/phpunit/issues/3683): Regression in PHPUnit 7.5.10 with regard to Exception stubbing/mocking

## [7.5.10] - 2019-05-09

### Fixed

* Fixed [#3414](https://github.com/sebastianbergmann/phpunit/pull/3414): `willThrowException()` only accepts `Exception`, not `Throwable`
* Fixed [#3587](https://github.com/sebastianbergmann/phpunit/issues/3587): `.phpunit.result.cache` file is all over the place
* Fixed [#3596](https://github.com/sebastianbergmann/phpunit/issues/3596): Mocking an interface that extends another interface forgets to mock its own methods
* Fixed [#3674](https://github.com/sebastianbergmann/phpunit/issues/3674): `TypeError` when an incorrect file path is given

## [7.5.9] - 2019-04-19

### Fixed

* Fixed [#3607](https://github.com/sebastianbergmann/phpunit/issues/3607): Return value generation interferes with proxying to original method

## [7.5.8] - 2019-03-26

### Fixed

* Fixed [#3564](https://github.com/sebastianbergmann/phpunit/issues/3564): Production code uses class from test suite's fixture

## [7.5.7] - 2019-03-16

### Fixed

* Fixed [#3480](https://github.com/sebastianbergmann/phpunit/issues/3480): Wrong return type declaration for `TestCase::getExpectedExceptionMessage()` and `TestCase::getExpectedExceptionMessageRegExp()`
* Fixed [#3550](https://github.com/sebastianbergmann/phpunit/issues/3550): Check for valid attribute names in `assertObjectHasAttribute()` is too strict

## [7.5.6] - 2019-02-18

### Fixed

* Fixed [#3530](https://github.com/sebastianbergmann/phpunit/issues/3530): `generateClassFromWsdl()` does not handle methods with multiple output values
* Fixed [#3531](https://github.com/sebastianbergmann/phpunit/issues/3531): Test suite fails on warning
* Fixed [#3534](https://github.com/sebastianbergmann/phpunit/pull/3534): Wrong message in `ConstraintTestCase`

## [7.5.5] - 2019-02-15

### Fixed

* Fixed [#3011](https://github.com/sebastianbergmann/phpunit/issues/3011): Unsupported PHPT `--SECTION--` throws unhandled exception
* Fixed [#3461](https://github.com/sebastianbergmann/phpunit/issues/3461): `StringEndsWith` matches too loosely
* Fixed [#3515](https://github.com/sebastianbergmann/phpunit/issues/3515): Random order seed is only printed in verbose mode
* Fixed [#3517](https://github.com/sebastianbergmann/phpunit/issues/3517): Useless error message when depending on test that does not exist

## [7.5.4] - 2019-02-07

### Fixed

* Fixed [#3352](https://github.com/sebastianbergmann/phpunit/issues/3352): Using `phpunit.phar` with PHPDBG does not work with `auto_globals_jit=On`
* Fixed [#3502](https://github.com/sebastianbergmann/phpunit/issues/3502): Numeric `@ticket` or `@group` annotations no longer work

## [7.5.3] - 2019-02-01

### Fixed

* Fixed [#3490](https://github.com/sebastianbergmann/phpunit/pull/3490): Exceptions in `tearDownAfterClass()` kill PHPUnit

### Deprecated

* The method `assertArraySubset()` is now deprecated. There is no behavioral change in this version of PHPUnit. Using this method will trigger a deprecation warning in PHPUnit 8 and in PHPUnit 9 this method will be removed.

## [7.5.2] - 2019-01-15

### Fixed

* Fixed [#3456](https://github.com/sebastianbergmann/phpunit/pull/3456): Generator for Xdebug filter script does not handle directories with leading `.` correctly
* Fixed [#3459](https://github.com/sebastianbergmann/phpunit/issues/3459): `@requires` function swallows digits at the end of function name

## [7.5.1] - 2018-12-12

### Fixed

* Fixed [#3441](https://github.com/sebastianbergmann/phpunit/issues/3441): Call to undefined method `DataProviderTestSuite::usesDataProvider()`

## [7.5.0] - 2018-12-07

### Added

* Implemented [#3340](https://github.com/sebastianbergmann/phpunit/issues/3340): Added `assertEqualsCanonicalizing()`, `assertEqualsIgnoringCase()`, `assertEqualsWithDelta()`, `assertNotEqualsCanonicalizing()`, `assertNotEqualsIgnoringCase()`, and `assertNotEqualsWithDelta()` as alternatives to using `assertEquals()` and `assertNotEquals()` with the `$delta`, `$canonicalize`, or `$ignoreCase` parameters
* Implemented [#3368](https://github.com/sebastianbergmann/phpunit/issues/3368): Added `assertIsArray()`, `assertIsBool()`, `assertIsFloat()`, `assertIsInt()`, `assertIsNumeric()`, `assertIsObject()`, `assertIsResource()`, `assertIsString()`, `assertIsScalar()`, `assertIsCallable()`, `assertIsIterable()`, `assertIsNotArray()`, `assertIsNotBool()`, `assertIsNotFloat()`, `assertIsNotInt()`, `assertIsNotNumeric()`, `assertIsNotObject()`, `assertIsNotResource()`, `assertIsNotString()`, `assertIsNotScalar()`, `assertIsNotCallable()`, `assertIsNotIterable()` as alternatives to `assertInternalType()` and `assertNotInternalType()`
* Implemented [#3391](https://github.com/sebastianbergmann/phpunit/issues/3391): Added a `TestHook` that fires after each test, regardless of result
* Implemented [#3417](https://github.com/sebastianbergmann/phpunit/pull/3417): Refinements related to test suite sorting and TestDox result printer
* Implemented [#3422](https://github.com/sebastianbergmann/phpunit/issues/3422): Added `assertStringContainsString()`, `assertStringContainsStringIgnoringCase()`, `assertStringNotContainsString()`, and `assertStringNotContainsStringIgnoringCase()`

### Deprecated

* The methods `assertInternalType()` and `assertNotInternalType()` are now deprecated. There is no behavioral change in this version of PHPUnit. Using these methods will trigger a deprecation warning in PHPUnit 8 and in PHPUnit 9 these methods will be removed.
* The methods `assertAttributeContains()`, `assertAttributeNotContains()`, `assertAttributeContainsOnly()`, `assertAttributeNotContainsOnly()`, `assertAttributeCount()`, `assertAttributeNotCount()`, `assertAttributeEquals()`, `assertAttributeNotEquals()`, `assertAttributeEmpty()`, `assertAttributeNotEmpty()`, `assertAttributeGreaterThan()`, `assertAttributeGreaterThanOrEqual()`, `assertAttributeLessThan()`, `assertAttributeLessThanOrEqual()`, `assertAttributeSame()`, `assertAttributeNotSame()`, `assertAttributeInstanceOf()`, `assertAttributeNotInstanceOf()`, `assertAttributeInternalType()`, `assertAttributeNotInternalType()`, `attributeEqualTo()`, `readAttribute()`, `getStaticAttribute()`, and `getObjectAttribute()` are now deprecated. There is no behavioral change in this version of PHPUnit. Using these methods will trigger a deprecation warning in PHPUnit 8 and in PHPUnit 9 these methods will be removed.
* The optional parameters `$delta`, `$maxDepth`, `$canonicalize`, and `$ignoreCase` of `assertEquals()` and `assertNotEquals()` are now deprecated. There is no behavioral change in this version of PHPUnit. Using these parameters will trigger a deprecation warning in PHPUnit 8 and in PHPUnit 9 these parameters will be removed.
* The annotations `@expectedException`, `@expectedExceptionCode`, `@expectedExceptionMessage`, and `@expectedExceptionMessageRegExp` are now deprecated. There is no behavioral change in this version of PHPUnit. Using these annotations will trigger a deprecation warning in PHPUnit 8 and in PHPUnit 9 these annotations will be removed.
* Using the methods `assertContains()` and `assertNotContains()` on `string` haystacks is now deprecated. There is no behavioral change in this version of PHPUnit. Using these methods on `string` haystacks will trigger a deprecation warning in PHPUnit 8 and in PHPUnit 9 these methods cannot be used on on `string` haystacks anymore.
* The optional parameters `$ignoreCase`, `$checkForObjectIdentity`, and `$checkForNonObjectIdentity` of `assertContains()` and `assertNotContains()` are now deprecated. There is no behavioral change in this version of PHPUnit. Using these parameters will trigger a deprecation warning in PHPUnit 8 and in PHPUnit 9 these parameters will be removed.

### Fixed

* Fixed [#3428](https://github.com/sebastianbergmann/phpunit/pull/3428): `TestSuite` setup failures are not logged correctly
* Fixed [#3429](https://github.com/sebastianbergmann/phpunit/pull/3429): Inefficient loop in `getHookMethods()`
* Fixed [#3437](https://github.com/sebastianbergmann/phpunit/pull/3437): JUnit logger skips PHPT tests

[7.5.14]: https://github.com/sebastianbergmann/phpunit/compare/7.5.13...7.5.14
[7.5.13]: https://github.com/sebastianbergmann/phpunit/compare/7.5.12...7.5.13
[7.5.12]: https://github.com/sebastianbergmann/phpunit/compare/7.5.11...7.5.12
[7.5.11]: https://github.com/sebastianbergmann/phpunit/compare/7.5.10...7.5.11
[7.5.10]: https://github.com/sebastianbergmann/phpunit/compare/7.5.9...7.5.10
[7.5.9]: https://github.com/sebastianbergmann/phpunit/compare/7.5.8...7.5.9
[7.5.8]: https://github.com/sebastianbergmann/phpunit/compare/7.5.7...7.5.8
[7.5.7]: https://github.com/sebastianbergmann/phpunit/compare/7.5.6...7.5.7
[7.5.6]: https://github.com/sebastianbergmann/phpunit/compare/7.5.5...7.5.6
[7.5.5]: https://github.com/sebastianbergmann/phpunit/compare/7.5.4...7.5.5
[7.5.4]: https://github.com/sebastianbergmann/phpunit/compare/7.5.3...7.5.4
[7.5.3]: https://github.com/sebastianbergmann/phpunit/compare/7.5.2...7.5.3
[7.5.2]: https://github.com/sebastianbergmann/phpunit/compare/7.5.1...7.5.2
[7.5.1]: https://github.com/sebastianbergmann/phpunit/compare/7.5.0...7.5.1
[7.5.0]: https://github.com/sebastianbergmann/phpunit/compare/7.4.5...7.5.0

<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\TextUI;

use PHPUnit\Framework\AssertionFailedError;
use PHPUnit\Framework\Exception;
use PHPUnit\Framework\Test;
use PHPUnit\Framework\TestCase;
use PHPUnit\Framework\TestFailure;
use PHPUnit\Framework\TestListener;
use PHPUnit\Framework\TestResult;
use PHPUnit\Framework\TestSuite;
use PHPUnit\Framework\Warning;
use PHPUnit\Runner\PhptTestCase;
use PHPUnit\Util\Color;
use PHPUnit\Util\InvalidArgumentHelper;
use PHPUnit\Util\Printer;
use SebastianBergmann\Environment\Console;
use SebastianBergmann\Timer\Timer;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
class ResultPrinter extends Printer implements TestListener
{
    public const EVENT_TEST_START      = 0;

    public const EVENT_TEST_END        = 1;

    public const EVENT_TESTSUITE_START = 2;

    public const EVENT_TESTSUITE_END   = 3;

    public const COLOR_NEVER   = 'never';

    public const COLOR_AUTO    = 'auto';

    public const COLOR_ALWAYS  = 'always';

    public const COLOR_DEFAULT = self::COLOR_NEVER;

    private const AVAILABLE_COLORS = [self::COLOR_NEVER, self::COLOR_AUTO, self::COLOR_ALWAYS];

    /**
     * @var int
     */
    protected $column = 0;

    /**
     * @var int
     */
    protected $maxColumn;

    /**
     * @var bool
     */
    protected $lastTestFailed = false;

    /**
     * @var int
     */
    protected $numAssertions = 0;

    /**
     * @var int
     */
    protected $numTests = -1;

    /**
     * @var int
     */
    protected $numTestsRun = 0;

    /**
     * @var int
     */
    protected $numTestsWidth;

    /**
     * @var bool
     */
    protected $colors = false;

    /**
     * @var bool
     */
    protected $debug = false;

    /**
     * @var bool
     */
    protected $verbose = false;

    /**
     * @var int
     */
    private $numberOfColumns;

    /**
     * @var bool
     */
    private $reverse;

    /**
     * @var bool
     */
    private $defectListPrinted = false;

    /**
     * Constructor.
     *
     * @param null|resource|string $out
     * @param int|string           $numberOfColumns
     *
     * @throws Exception
     */
    public function __construct($out = null, bool $verbose = false, string $colors = self::COLOR_DEFAULT, bool $debug = false, $numberOfColumns = 80, bool $reverse = false)
    {
        parent::__construct($out);

        if (!\in_array($colors, self::AVAILABLE_COLORS, true)) {
            throw InvalidArgumentHelper::factory(
                3,
                \vsprintf('value from "%s", "%s" or "%s"', self::AVAILABLE_COLORS)
            );
        }

        if (!\is_int($numberOfColumns) && $numberOfColumns !== 'max') {
            throw InvalidArgumentHelper::factory(5, 'integer or "max"');
        }

        $console            = new Console;
        $maxNumberOfColumns = $console->getNumberOfColumns();

        if ($numberOfColumns === 'max' || ($numberOfColumns !== 80 && $numberOfColumns > $maxNumberOfColumns)) {
            $numberOfColumns = $maxNumberOfColumns;
        }

        $this->numberOfColumns = $numberOfColumns;
        $this->verbose         = $verbose;
        $this->debug           = $debug;
        $this->reverse         = $reverse;

        if ($colors === self::COLOR_AUTO && $console->hasColorSupport()) {
            $this->colors = true;
        } else {
            $this->colors = (self::COLOR_ALWAYS === $colors);
        }
    }

    /**
     * @throws \SebastianBergmann\Timer\RuntimeException
     */
    public function printResult(TestResult $result): void
    {
        $this->printHeader();
        $this->printErrors($result);
        $this->printWarnings($result);
        $this->printFailures($result);
        $this->printRisky($result);

        if ($this->verbose) {
            $this->printIncompletes($result);
            $this->printSkipped($result);
        }

        $this->printFooter($result);
    }

    /**
     * An error occurred.
     */
    public function addError(Test $test, \Throwable $t, float $time): void
    {
        $this->writeProgressWithColor('fg-red, bold', 'E');
        $this->lastTestFailed = true;
    }

    /**
     * A failure occurred.
     */
    public function addFailure(Test $test, AssertionFailedError $e, float $time): void
    {
        $this->writeProgressWithColor('bg-red, fg-white', 'F');
        $this->lastTestFailed = true;
    }

    /**
     * A warning occurred.
     */
    public function addWarning(Test $test, Warning $e, float $time): void
    {
        $this->writeProgressWithColor('fg-yellow, bold', 'W');
        $this->lastTestFailed = true;
    }

    /**
     * Incomplete test.
     */
    public function addIncompleteTest(Test $test, \Throwable $t, float $time): void
    {
        $this->writeProgressWithColor('fg-yellow, bold', 'I');
        $this->lastTestFailed = true;
    }

    /**
     * Risky test.
     */
    public function addRiskyTest(Test $test, \Throwable $t, float $time): void
    {
        $this->writeProgressWithColor('fg-yellow, bold', 'R');
        $this->lastTestFailed = true;
    }

    /**
     * Skipped test.
     */
    public function addSkippedTest(Test $test, \Throwable $t, float $time): void
    {
        $this->writeProgressWithColor('fg-cyan, bold', 'S');
        $this->lastTestFailed = true;
    }

    /**
     * A testsuite started.
     */
    public function startTestSuite(TestSuite $suite): void
    {
        if ($this->numTests == -1) {
            $this->numTests      = \count($suite);
            $this->numTestsWidth = \strlen((string) $this->numTests);
            $this->maxColumn     = $this->numberOfColumns - \strlen('  /  (XXX%)') - (2 * $this->numTestsWidth);
        }
    }

    /**
     * A testsuite ended.
     */
    public function endTestSuite(TestSuite $suite): void
    {
    }

    /**
     * A test started.
     */
    public function startTest(Test $test): void
    {
        if ($this->debug) {
            $this->write(
                \sprintf(
                    "Test '%s' started\n",
                    \PHPUnit\Util\Test::describeAsString($test)
                )
            );
        }
    }

    /**
     * A test ended.
     */
    public function endTest(Test $test, float $time): void
    {
        if ($this->debug) {
            $this->write(
                \sprintf(
                    "Test '%s' ended\n",
                    \PHPUnit\Util\Test::describeAsString($test)
                )
            );
        }

        if (!$this->lastTestFailed) {
            $this->writeProgress('.');
        }

        if ($test instanceof TestCase) {
            $this->numAssertions += $test->getNumAssertions();
        } elseif ($test instanceof PhptTestCase) {
            $this->numAssertions++;
        }

        $this->lastTestFailed = false;

        if ($test instanceof TestCase && !$test->hasExpectationOnOutput()) {
            $this->write($test->getActualOutput());
        }
    }

    protected function printDefects(array $defects, string $type): void
    {
        $count = \count($defects);

        if ($count == 0) {
            return;
        }

        if ($this->defectListPrinted) {
            $this->write("\n--\n\n");
        }

        $this->write(
            \sprintf(
                "There %s %d %s%s:\n",
                ($count == 1) ? 'was' : 'were',
                $count,
                $type,
                ($count == 1) ? '' : 's'
            )
        );

        $i = 1;

        if ($this->reverse) {
            $defects = \array_reverse($defects);
        }

        foreach ($defects as $defect) {
            $this->printDefect($defect, $i++);
        }

        $this->defectListPrinted = true;
    }

    protected function printDefect(TestFailure $defect, int $count): void
    {
        $this->printDefectHeader($defect, $count);
        $this->printDefectTrace($defect);
    }

    protected function printDefectHeader(TestFailure $defect, int $count): void
    {
        $this->write(
            \sprintf(
                "\n%d) %s\n",
                $count,
                $defect->getTestName()
            )
        );
    }

    protected function printDefectTrace(TestFailure $defect): void
    {
        $e = $defect->thrownException();
        $this->write((string) $e);

        while ($e = $e->getPrevious()) {
            $this->write("\nCaused by\n" . $e);
        }
    }

    protected function printErrors(TestResult $result): void
    {
        $this->printDefects($result->errors(), 'error');
    }

    protected function printFailures(TestResult $result): void
    {
        $this->printDefects($result->failures(), 'failure');
    }

    protected function printWarnings(TestResult $result): void
    {
        $this->printDefects($result->warnings(), 'warning');
    }

    protected function printIncompletes(TestResult $result): void
    {
        $this->printDefects($result->notImplemented(), 'incomplete test');
    }

    protected function printRisky(TestResult $result): void
    {
        $this->printDefects($result->risky(), 'risky test');
    }

    protected function printSkipped(TestResult $result): void
    {
        $this->printDefects($result->skipped(), 'skipped test');
    }

    /**
     * @throws \SebastianBergmann\Timer\RuntimeException
     */
    protected function printHeader(): void
    {
        $this->write("\n\n" . Timer::resourceUsage() . "\n\n");
    }

    protected function printFooter(TestResult $result): void
    {
        if (\count($result) === 0) {
            $this->writeWithColor(
                'fg-black, bg-yellow',
                'No tests executed!'
            );

            return;
        }

        if ($result->wasSuccessful() &&
            $result->allHarmless() &&
            $result->allCompletelyImplemented() &&
            $result->noneSkipped()) {
            $this->writeWithColor(
                'fg-black, bg-green',
                \sprintf(
                    'OK (%d test%s, %d assertion%s)',
                    \count($result),
                    (\count($result) == 1) ? '' : 's',
                    $this->numAssertions,
                    ($this->numAssertions == 1) ? '' : 's'
                )
            );
        } else {
            if ($result->wasSuccessful()) {
                $color = 'fg-black, bg-yellow';

                if ($this->verbose || !$result->allHarmless()) {
                    $this->write("\n");
                }

                $this->writeWithColor(
                    $color,
                    'OK, but incomplete, skipped, or risky tests!'
                );
            } else {
                $this->write("\n");

                if ($result->errorCount()) {
                    $color = 'fg-white, bg-red';

                    $this->writeWithColor(
                        $color,
                        'ERRORS!'
                    );
                } elseif ($result->failureCount()) {
                    $color = 'fg-white, bg-red';

                    $this->writeWithColor(
                        $color,
                        'FAILURES!'
                    );
                } elseif ($result->warningCount()) {
                    $color = 'fg-black, bg-yellow';

                    $this->writeWithColor(
                        $color,
                        'WARNINGS!'
                    );
                }
            }

            $this->writeCountString(\count($result), 'Tests', $color, true);
            $this->writeCountString($this->numAssertions, 'Assertions', $color, true);
            $this->writeCountString($result->errorCount(), 'Errors', $color);
            $this->writeCountString($result->failureCount(), 'Failures', $color);
            $this->writeCountString($result->warningCount(), 'Warnings', $color);
            $this->writeCountString($result->skippedCount(), 'Skipped', $color);
            $this->writeCountString($result->notImplementedCount(), 'Incomplete', $color);
            $this->writeCountString($result->riskyCount(), 'Risky', $color);
            $this->writeWithColor($color, '.');
        }
    }

    protected function writeProgress(string $progress): void
    {
        if ($this->debug) {
            return;
        }

        $this->write($progress);
        $this->column++;
        $this->numTestsRun++;

        if ($this->column == $this->maxColumn || $this->numTestsRun == $this->numTests) {
            if ($this->numTestsRun == $this->numTests) {
                $this->write(\str_repeat(' ', $this->maxColumn - $this->column));
            }

            $this->write(
                \sprintf(
                    ' %' . $this->numTestsWidth . 'd / %' .
                    $this->numTestsWidth . 'd (%3s%%)',
                    $this->numTestsRun,
                    $this->numTests,
                    \floor(($this->numTestsRun / $this->numTests) * 100)
                )
            );

            if ($this->column == $this->maxColumn) {
                $this->writeNewLine();
            }
        }
    }

    protected function writeNewLine(): void
    {
        $this->column = 0;
        $this->write("\n");
    }

    /**
     * Formats a buffer with a specified ANSI color sequence if colors are
     * enabled.
     */
    protected function colorizeTextBox(string $color, string $buffer): string
    {
        if (!$this->colors) {
            return $buffer;
        }

        $lines   = \preg_split('/\r\n|\r|\n/', $buffer);
        $padding = \max(\array_map('\strlen', $lines));

        $styledLines = [];

        foreach ($lines as $line) {
            $styledLines[] = Color::colorize($color, \str_pad($line, $padding), false);
        }

        return \implode(\PHP_EOL, $styledLines);
    }

    /**
     * Writes a buffer out with a color sequence if colors are enabled.
     */
    protected function writeWithColor(string $color, string $buffer, bool $lf = true): void
    {
        $this->write($this->colorizeTextBox($color, $buffer));

        if ($lf) {
            $this->write(\PHP_EOL);
        }
    }

    /**
     * Writes progress with a color sequence if colors are enabled.
     */
    protected function writeProgressWithColor(string $color, string $buffer): void
    {
        $buffer = $this->colorizeTextBox($color, $buffer);
        $this->writeProgress($buffer);
    }

    private function writeCountString(int $count, string $name, string $color, bool $always = false): void
    {
        static $first = true;

        if ($always || $count > 0) {
            $this->writeWithColor(
                $color,
                \sprintf(
                    '%s%s: %d',
                    !$first ? ', ' : '',
                    $name,
                    $count
                ),
                false
            );

            $first = false;
        }
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\TextUI;

use PHPUnit\Framework\Error\Deprecated;
use PHPUnit\Framework\Error\Notice;
use PHPUnit\Framework\Error\Warning;
use PHPUnit\Framework\Exception;
use PHPUnit\Framework\Test;
use PHPUnit\Framework\TestCase;
use PHPUnit\Framework\TestListener;
use PHPUnit\Framework\TestResult;
use PHPUnit\Framework\TestSuite;
use PHPUnit\Runner\AfterLastTestHook;
use PHPUnit\Runner\BaseTestRunner;
use PHPUnit\Runner\BeforeFirstTestHook;
use PHPUnit\Runner\DefaultTestResultCache;
use PHPUnit\Runner\Filter\ExcludeGroupFilterIterator;
use PHPUnit\Runner\Filter\Factory;
use PHPUnit\Runner\Filter\IncludeGroupFilterIterator;
use PHPUnit\Runner\Filter\NameFilterIterator;
use PHPUnit\Runner\Hook;
use PHPUnit\Runner\NullTestResultCache;
use PHPUnit\Runner\ResultCacheExtension;
use PHPUnit\Runner\StandardTestSuiteLoader;
use PHPUnit\Runner\TestHook;
use PHPUnit\Runner\TestListenerAdapter;
use PHPUnit\Runner\TestSuiteLoader;
use PHPUnit\Runner\TestSuiteSorter;
use PHPUnit\Runner\Version;
use PHPUnit\Util\Configuration;
use PHPUnit\Util\Filesystem;
use PHPUnit\Util\Log\JUnit;
use PHPUnit\Util\Log\TeamCity;
use PHPUnit\Util\Printer;
use PHPUnit\Util\TestDox\CliTestDoxPrinter;
use PHPUnit\Util\TestDox\HtmlResultPrinter;
use PHPUnit\Util\TestDox\TextResultPrinter;
use PHPUnit\Util\TestDox\XmlResultPrinter;
use PHPUnit\Util\XdebugFilterScriptGenerator;
use ReflectionClass;
use SebastianBergmann\CodeCoverage\CodeCoverage;
use SebastianBergmann\CodeCoverage\Exception as CodeCoverageException;
use SebastianBergmann\CodeCoverage\Filter as CodeCoverageFilter;
use SebastianBergmann\CodeCoverage\Report\Clover as CloverReport;
use SebastianBergmann\CodeCoverage\Report\Crap4j as Crap4jReport;
use SebastianBergmann\CodeCoverage\Report\Html\Facade as HtmlReport;
use SebastianBergmann\CodeCoverage\Report\PHP as PhpReport;
use SebastianBergmann\CodeCoverage\Report\Text as TextReport;
use SebastianBergmann\CodeCoverage\Report\Xml\Facade as XmlReport;
use SebastianBergmann\Comparator\Comparator;
use SebastianBergmann\Environment\Runtime;
use SebastianBergmann\Invoker\Invoker;
use SebastianBergmann\Timer\Timer;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class TestRunner extends BaseTestRunner
{
    public const SUCCESS_EXIT   = 0;

    public const FAILURE_EXIT   = 1;

    public const EXCEPTION_EXIT = 2;

    /**
     * @var bool
     */
    private static $versionStringPrinted = false;

    /**
     * @var CodeCoverageFilter
     */
    private $codeCoverageFilter;

    /**
     * @var TestSuiteLoader
     */
    private $loader;

    /**
     * @var ResultPrinter
     */
    private $printer;

    /**
     * @var Runtime
     */
    private $runtime;

    /**
     * @var bool
     */
    private $messagePrinted = false;

    /**
     * @var Hook[]
     */
    private $extensions = [];

    public function __construct(TestSuiteLoader $loader = null, CodeCoverageFilter $filter = null)
    {
        if ($filter === null) {
            $filter = new CodeCoverageFilter;
        }

        $this->codeCoverageFilter = $filter;
        $this->loader             = $loader;
        $this->runtime            = new Runtime;
    }

    /**
     * @throws \PHPUnit\Runner\Exception
     * @throws Exception
     */
    public function doRun(Test $suite, array $arguments = [], bool $exit = true): TestResult
    {
        if (isset($arguments['configuration'])) {
            $GLOBALS['__PHPUNIT_CONFIGURATION_FILE'] = $arguments['configuration'];
        }

        $this->handleConfiguration($arguments);

        if (\is_int($arguments['columns']) && $arguments['columns'] < 16) {
            $arguments['columns']   = 16;
            $tooFewColumnsRequested = true;
        }

        if (isset($arguments['bootstrap'])) {
            $GLOBALS['__PHPUNIT_BOOTSTRAP'] = $arguments['bootstrap'];
        }

        if ($suite instanceof TestCase || $suite instanceof TestSuite) {
            if ($arguments['backupGlobals'] === true) {
                $suite->setBackupGlobals(true);
            }

            if ($arguments['backupStaticAttributes'] === true) {
                $suite->setBackupStaticAttributes(true);
            }

            if ($arguments['beStrictAboutChangesToGlobalState'] === true) {
                $suite->setBeStrictAboutChangesToGlobalState(true);
            }
        }

        if ($arguments['executionOrder'] === TestSuiteSorter::ORDER_RANDOMIZED) {
            \mt_srand($arguments['randomOrderSeed']);
        }

        if ($arguments['cacheResult']) {
            if (!isset($arguments['cacheResultFile'])) {
                if (isset($arguments['configuration']) && $arguments['configuration'] instanceof Configuration) {
                    $cacheLocation = $arguments['configuration']->getFilename();
                } else {
                    $cacheLocation = $_SERVER['PHP_SELF'];
                }

                $arguments['cacheResultFile'] = null;

                $cacheResultFile = \realpath($cacheLocation);

                if ($cacheResultFile !== false) {
                    $arguments['cacheResultFile'] = \dirname($cacheResultFile);
                }
            }

            $cache = new DefaultTestResultCache($arguments['cacheResultFile']);

            $this->addExtension(new ResultCacheExtension($cache));
        }

        if ($arguments['executionOrder'] !== TestSuiteSorter::ORDER_DEFAULT || $arguments['executionOrderDefects'] !== TestSuiteSorter::ORDER_DEFAULT || $arguments['resolveDependencies']) {
            $cache = $cache ?? new NullTestResultCache;

            $cache->load();

            $sorter = new TestSuiteSorter($cache);

            $sorter->reorderTestsInSuite($suite, $arguments['executionOrder'], $arguments['resolveDependencies'], $arguments['executionOrderDefects']);
            $originalExecutionOrder = $sorter->getOriginalExecutionOrder();

            unset($sorter);
        }

        if (\is_int($arguments['repeat']) && $arguments['repeat'] > 0) {
            $_suite = new TestSuite;

            /* @noinspection PhpUnusedLocalVariableInspection */
            foreach (\range(1, $arguments['repeat']) as $step) {
                $_suite->addTest($suite);
            }

            $suite = $_suite;

            unset($_suite);
        }

        $result = $this->createTestResult();

        $listener       = new TestListenerAdapter;
        $listenerNeeded = false;

        foreach ($this->extensions as $extension) {
            if ($extension instanceof TestHook) {
                $listener->add($extension);

                $listenerNeeded = true;
            }
        }

        if ($listenerNeeded) {
            $result->addListener($listener);
        }

        unset($listener, $listenerNeeded);

        if (!$arguments['convertErrorsToExceptions']) {
            $result->convertErrorsToExceptions(false);
        }

        if (!$arguments['convertDeprecationsToExceptions']) {
            Deprecated::$enabled = false;
        }

        if (!$arguments['convertNoticesToExceptions']) {
            Notice::$enabled = false;
        }

        if (!$arguments['convertWarningsToExceptions']) {
            Warning::$enabled = false;
        }

        if ($arguments['stopOnError']) {
            $result->stopOnError(true);
        }

        if ($arguments['stopOnFailure']) {
            $result->stopOnFailure(true);
        }

        if ($arguments['stopOnWarning']) {
            $result->stopOnWarning(true);
        }

        if ($arguments['stopOnIncomplete']) {
            $result->stopOnIncomplete(true);
        }

        if ($arguments['stopOnRisky']) {
            $result->stopOnRisky(true);
        }

        if ($arguments['stopOnSkipped']) {
            $result->stopOnSkipped(true);
        }

        if ($arguments['stopOnDefect']) {
            $result->stopOnDefect(true);
        }

        if ($arguments['registerMockObjectsFromTestArgumentsRecursively']) {
            $result->setRegisterMockObjectsFromTestArgumentsRecursively(true);
        }

        if ($this->printer === null) {
            if (isset($arguments['printer'])) {
                if ($arguments['printer'] instanceof Printer) {
                    $this->printer = $arguments['printer'];
                } elseif (\is_string($arguments['printer']) && \class_exists($arguments['printer'], false)) {
                    try {
                        $class = new ReflectionClass($arguments['printer']);
                    } catch (\ReflectionException $e) {
                        throw new Exception(
                            $e->getMessage(),
                            (int) $e->getCode(),
                            $e
                        );
                    }

                    if ($class->isSubclassOf(ResultPrinter::class)) {
                        $this->printer = $this->createPrinter($arguments['printer'], $arguments);
                    }
                }
            } else {
                $this->printer = $this->createPrinter(ResultPrinter::class, $arguments);
            }
        }

        if (isset($originalExecutionOrder) && $this->printer instanceof CliTestDoxPrinter) {
            \assert($this->printer instanceof CliTestDoxPrinter);

            $this->printer->setOriginalExecutionOrder($originalExecutionOrder);
            $this->printer->setShowProgressAnimation(!$arguments['noInteraction']);
        }

        $this->printer->write(
            Version::getVersionString() . "\n"
        );

        self::$versionStringPrinted = true;

        if ($arguments['verbose']) {
            $this->writeMessage('Runtime', $this->runtime->getNameWithVersionAndCodeCoverageDriver());

            if (isset($arguments['configuration'])) {
                $this->writeMessage(
                    'Configuration',
                    $arguments['configuration']->getFilename()
                );
            }

            foreach ($arguments['loadedExtensions'] as $extension) {
                $this->writeMessage(
                    'Extension',
                    $extension
                );
            }

            foreach ($arguments['notLoadedExtensions'] as $extension) {
                $this->writeMessage(
                    'Extension',
                    $extension
                );
            }
        }

        if ($arguments['executionOrder'] === TestSuiteSorter::ORDER_RANDOMIZED) {
            $this->writeMessage(
                'Random seed',
                (string) $arguments['randomOrderSeed']
            );
        }

        if (isset($tooFewColumnsRequested)) {
            $this->writeMessage('Error', 'Less than 16 columns requested, number of columns set to 16');
        }

        if ($this->runtime->discardsComments()) {
            $this->writeMessage('Warning', 'opcache.save_comments=0 set; annotations will not work');
        }

        if (isset($arguments['configuration']) && $arguments['configuration']->hasValidationErrors()) {
            $this->write(
                "\n  Warning - The configuration file did not pass validation!\n  The following problems have been detected:\n"
            );

            foreach ($arguments['configuration']->getValidationErrors() as $line => $errors) {
                $this->write(\sprintf("\n  Line %d:\n", $line));

                foreach ($errors as $msg) {
                    $this->write(\sprintf("  - %s\n", $msg));
                }
            }

            $this->write("\n  Test results may not be as expected.\n\n");
        }

        if (isset($arguments['conflictBetweenPrinterClassAndTestdox'])) {
            $this->writeMessage('Warning', 'Directives printerClass and testdox are mutually exclusive');
        }

        foreach ($arguments['listeners'] as $listener) {
            $result->addListener($listener);
        }

        $result->addListener($this->printer);

        $codeCoverageReports = 0;

        if (!isset($arguments['noLogging'])) {
            if (isset($arguments['testdoxHTMLFile'])) {
                $result->addListener(
                    new HtmlResultPrinter(
                        $arguments['testdoxHTMLFile'],
                        $arguments['testdoxGroups'],
                        $arguments['testdoxExcludeGroups']
                    )
                );
            }

            if (isset($arguments['testdoxTextFile'])) {
                $result->addListener(
                    new TextResultPrinter(
                        $arguments['testdoxTextFile'],
                        $arguments['testdoxGroups'],
                        $arguments['testdoxExcludeGroups']
                    )
                );
            }

            if (isset($arguments['testdoxXMLFile'])) {
                $result->addListener(
                    new XmlResultPrinter(
                        $arguments['testdoxXMLFile']
                    )
                );
            }

            if (isset($arguments['teamcityLogfile'])) {
                $result->addListener(
                    new TeamCity($arguments['teamcityLogfile'])
                );
            }

            if (isset($arguments['junitLogfile'])) {
                $result->addListener(
                    new JUnit(
                        $arguments['junitLogfile'],
                        $arguments['reportUselessTests']
                    )
                );
            }

            if (isset($arguments['coverageClover'])) {
                $codeCoverageReports++;
            }

            if (isset($arguments['coverageCrap4J'])) {
                $codeCoverageReports++;
            }

            if (isset($arguments['coverageHtml'])) {
                $codeCoverageReports++;
            }

            if (isset($arguments['coveragePHP'])) {
                $codeCoverageReports++;
            }

            if (isset($arguments['coverageText'])) {
                $codeCoverageReports++;
            }

            if (isset($arguments['coverageXml'])) {
                $codeCoverageReports++;
            }
        }

        if (isset($arguments['noCoverage'])) {
            $codeCoverageReports = 0;
        }

        if ($codeCoverageReports > 0 && !$this->runtime->canCollectCodeCoverage()) {
            $this->writeMessage('Error', 'No code coverage driver is available');

            $codeCoverageReports = 0;
        }

        if ($codeCoverageReports > 0 || isset($arguments['xdebugFilterFile'])) {
            $whitelistFromConfigurationFile = false;
            $whitelistFromOption            = false;

            if (isset($arguments['whitelist'])) {
                $this->codeCoverageFilter->addDirectoryToWhitelist($arguments['whitelist']);

                $whitelistFromOption = true;
            }

            if (isset($arguments['configuration'])) {
                $filterConfiguration = $arguments['configuration']->getFilterConfiguration();

                if (!empty($filterConfiguration['whitelist'])) {
                    $whitelistFromConfigurationFile = true;
                }

                if (!empty($filterConfiguration['whitelist'])) {
                    foreach ($filterConfiguration['whitelist']['include']['directory'] as $dir) {
                        $this->codeCoverageFilter->addDirectoryToWhitelist(
                            $dir['path'],
                            $dir['suffix'],
                            $dir['prefix']
                        );
                    }

                    foreach ($filterConfiguration['whitelist']['include']['file'] as $file) {
                        $this->codeCoverageFilter->addFileToWhitelist($file);
                    }

                    foreach ($filterConfiguration['whitelist']['exclude']['directory'] as $dir) {
                        $this->codeCoverageFilter->removeDirectoryFromWhitelist(
                            $dir['path'],
                            $dir['suffix'],
                            $dir['prefix']
                        );
                    }

                    foreach ($filterConfiguration['whitelist']['exclude']['file'] as $file) {
                        $this->codeCoverageFilter->removeFileFromWhitelist($file);
                    }
                }
            }
        }

        if ($codeCoverageReports > 0) {
            $codeCoverage = new CodeCoverage(
                null,
                $this->codeCoverageFilter
            );

            $codeCoverage->setUnintentionallyCoveredSubclassesWhitelist(
                [Comparator::class]
            );

            $codeCoverage->setCheckForUnintentionallyCoveredCode(
                $arguments['strictCoverage']
            );

            $codeCoverage->setCheckForMissingCoversAnnotation(
                $arguments['strictCoverage']
            );

            if (isset($arguments['forceCoversAnnotation'])) {
                $codeCoverage->setForceCoversAnnotation(
                    $arguments['forceCoversAnnotation']
                );
            }

            if (isset($arguments['ignoreDeprecatedCodeUnitsFromCodeCoverage'])) {
                $codeCoverage->setIgnoreDeprecatedCode(
                    $arguments['ignoreDeprecatedCodeUnitsFromCodeCoverage']
                );
            }

            if (isset($arguments['disableCodeCoverageIgnore'])) {
                $codeCoverage->setDisableIgnoredLines(true);
            }

            if (!empty($filterConfiguration['whitelist'])) {
                $codeCoverage->setAddUncoveredFilesFromWhitelist(
                    $filterConfiguration['whitelist']['addUncoveredFilesFromWhitelist']
                );

                $codeCoverage->setProcessUncoveredFilesFromWhitelist(
                    $filterConfiguration['whitelist']['processUncoveredFilesFromWhitelist']
                );
            }

            if (!$this->codeCoverageFilter->hasWhitelist()) {
                if (!$whitelistFromConfigurationFile && !$whitelistFromOption) {
                    $this->writeMessage('Error', 'No whitelist is configured, no code coverage will be generated.');
                } else {
                    $this->writeMessage('Error', 'Incorrect whitelist config, no code coverage will be generated.');
                }

                $codeCoverageReports = 0;

                unset($codeCoverage);
            }
        }

        if (isset($arguments['xdebugFilterFile'], $filterConfiguration)) {
            $this->write("\n");

            $script = (new XdebugFilterScriptGenerator)->generate($filterConfiguration['whitelist']);

            if ($arguments['xdebugFilterFile'] !== 'php://stdout' && $arguments['xdebugFilterFile'] !== 'php://stderr' && !Filesystem::createDirectory(\dirname($arguments['xdebugFilterFile']))) {
                $this->write(\sprintf('Cannot write Xdebug filter script to %s ' . \PHP_EOL, $arguments['xdebugFilterFile']));

                exit(self::EXCEPTION_EXIT);
            }

            \file_put_contents($arguments['xdebugFilterFile'], $script);

            $this->write(\sprintf('Wrote Xdebug filter script to %s ' . \PHP_EOL, $arguments['xdebugFilterFile']));

            exit(self::SUCCESS_EXIT);
        }

        $this->printer->write("\n");

        if (isset($codeCoverage)) {
            $result->setCodeCoverage($codeCoverage);

            if ($codeCoverageReports > 1 && isset($arguments['cacheTokens'])) {
                $codeCoverage->setCacheTokens($arguments['cacheTokens']);
            }
        }

        $result->beStrictAboutTestsThatDoNotTestAnything($arguments['reportUselessTests']);
        $result->beStrictAboutOutputDuringTests($arguments['disallowTestOutput']);
        $result->beStrictAboutTodoAnnotatedTests($arguments['disallowTodoAnnotatedTests']);
        $result->beStrictAboutResourceUsageDuringSmallTests($arguments['beStrictAboutResourceUsageDuringSmallTests']);

        if ($arguments['enforceTimeLimit'] === true) {
            if (!\class_exists(Invoker::class)) {
                $this->writeMessage('Error', 'Package phpunit/php-invoker is required for enforcing time limits');
            }

            if (!\extension_loaded('pcntl') || \strpos(\ini_get('disable_functions'), 'pcntl') !== false) {
                $this->writeMessage('Error', 'PHP extension pcntl is required for enforcing time limits');
            }
        }
        $result->enforceTimeLimit($arguments['enforceTimeLimit']);
        $result->setDefaultTimeLimit($arguments['defaultTimeLimit']);
        $result->setTimeoutForSmallTests($arguments['timeoutForSmallTests']);
        $result->setTimeoutForMediumTests($arguments['timeoutForMediumTests']);
        $result->setTimeoutForLargeTests($arguments['timeoutForLargeTests']);

        if ($suite instanceof TestSuite) {
            $this->processSuiteFilters($suite, $arguments);
            $suite->setRunTestInSeparateProcess($arguments['processIsolation']);
        }

        foreach ($this->extensions as $extension) {
            if ($extension instanceof BeforeFirstTestHook) {
                $extension->executeBeforeFirstTest();
            }
        }

        $suite->run($result);

        foreach ($this->extensions as $extension) {
            if ($extension instanceof AfterLastTestHook) {
                $extension->executeAfterLastTest();
            }
        }

        $result->flushListeners();

        if ($this->printer instanceof ResultPrinter) {
            $this->printer->printResult($result);
        }

        if (isset($codeCoverage)) {
            if (isset($arguments['coverageClover'])) {
                $this->codeCoverageGenerationStart('Clover XML');

                try {
                    $writer = new CloverReport;
                    $writer->process($codeCoverage, $arguments['coverageClover']);

                    $this->codeCoverageGenerationSucceeded();

                    unset($writer);
                } catch (CodeCoverageException $e) {
                    $this->codeCoverageGenerationFailed($e);
                }
            }

            if (isset($arguments['coverageCrap4J'])) {
                $this->codeCoverageGenerationStart('Crap4J XML');

                try {
                    $writer = new Crap4jReport($arguments['crap4jThreshold']);
                    $writer->process($codeCoverage, $arguments['coverageCrap4J']);

                    $this->codeCoverageGenerationSucceeded();

                    unset($writer);
                } catch (CodeCoverageException $e) {
                    $this->codeCoverageGenerationFailed($e);
                }
            }

            if (isset($arguments['coverageHtml'])) {
                $this->codeCoverageGenerationStart('HTML');

                try {
                    $writer = new HtmlReport(
                        $arguments['reportLowUpperBound'],
                        $arguments['reportHighLowerBound'],
                        \sprintf(
                            ' and <a href="https://phpunit.de/">PHPUnit %s</a>',
                            Version::id()
                        )
                    );

                    $writer->process($codeCoverage, $arguments['coverageHtml']);

                    $this->codeCoverageGenerationSucceeded();

                    unset($writer);
                } catch (CodeCoverageException $e) {
                    $this->codeCoverageGenerationFailed($e);
                }
            }

            if (isset($arguments['coveragePHP'])) {
                $this->codeCoverageGenerationStart('PHP');

                try {
                    $writer = new PhpReport;
                    $writer->process($codeCoverage, $arguments['coveragePHP']);

                    $this->codeCoverageGenerationSucceeded();

                    unset($writer);
                } catch (CodeCoverageException $e) {
                    $this->codeCoverageGenerationFailed($e);
                }
            }

            if (isset($arguments['coverageText'])) {
                if ($arguments['coverageText'] === 'php://stdout') {
                    $outputStream = $this->printer;
                    $colors       = $arguments['colors'] && $arguments['colors'] !== ResultPrinter::COLOR_NEVER;
                } else {
                    $outputStream = new Printer($arguments['coverageText']);
                    $colors       = false;
                }

                $processor = new TextReport(
                    $arguments['reportLowUpperBound'],
                    $arguments['reportHighLowerBound'],
                    $arguments['coverageTextShowUncoveredFiles'],
                    $arguments['coverageTextShowOnlySummary']
                );

                $outputStream->write(
                    $processor->process($codeCoverage, $colors)
                );
            }

            if (isset($arguments['coverageXml'])) {
                $this->codeCoverageGenerationStart('PHPUnit XML');

                try {
                    $writer = new XmlReport(Version::id());
                    $writer->process($codeCoverage, $arguments['coverageXml']);

                    $this->codeCoverageGenerationSucceeded();

                    unset($writer);
                } catch (CodeCoverageException $e) {
                    $this->codeCoverageGenerationFailed($e);
                }
            }
        }

        if ($exit) {
            if ($result->wasSuccessfulIgnoringWarnings()) {
                if ($arguments['failOnRisky'] && !$result->allHarmless()) {
                    exit(self::FAILURE_EXIT);
                }

                if ($arguments['failOnWarning'] && $result->warningCount() > 0) {
                    exit(self::FAILURE_EXIT);
                }

                exit(self::SUCCESS_EXIT);
            }

            if ($result->errorCount() > 0) {
                exit(self::EXCEPTION_EXIT);
            }

            if ($result->failureCount() > 0) {
                exit(self::FAILURE_EXIT);
            }
        }

        return $result;
    }

    public function setPrinter(ResultPrinter $resultPrinter): void
    {
        $this->printer = $resultPrinter;
    }

    /**
     * Returns the loader to be used.
     */
    public function getLoader(): TestSuiteLoader
    {
        if ($this->loader === null) {
            $this->loader = new StandardTestSuiteLoader;
        }

        return $this->loader;
    }

    public function addExtension(Hook $extension): void
    {
        $this->extensions[] = $extension;
    }

    /**
     * Override to define how to handle a failed loading of
     * a test suite.
     */
    protected function runFailed(string $message): void
    {
        $this->write($message . \PHP_EOL);

        exit(self::FAILURE_EXIT);
    }

    private function createTestResult(): TestResult
    {
        return new TestResult;
    }

    private function write(string $buffer): void
    {
        if (\PHP_SAPI !== 'cli' && \PHP_SAPI !== 'phpdbg') {
            $buffer = \htmlspecialchars($buffer);
        }

        if ($this->printer !== null) {
            $this->printer->write($buffer);
        } else {
            print $buffer;
        }
    }

    /**
     * @throws Exception
     */
    private function handleConfiguration(array &$arguments): void
    {
        if (isset($arguments['configuration']) &&
            !$arguments['configuration'] instanceof Configuration) {
            $arguments['configuration'] = Configuration::getInstance(
                $arguments['configuration']
            );
        }

        $arguments['debug']     = $arguments['debug'] ?? false;
        $arguments['filter']    = $arguments['filter'] ?? false;
        $arguments['listeners'] = $arguments['listeners'] ?? [];

        if (isset($arguments['configuration'])) {
            $arguments['configuration']->handlePHPConfiguration();

            $phpunitConfiguration = $arguments['configuration']->getPHPUnitConfiguration();

            if (isset($phpunitConfiguration['backupGlobals']) && !isset($arguments['backupGlobals'])) {
                $arguments['backupGlobals'] = $phpunitConfiguration['backupGlobals'];
            }

            if (isset($phpunitConfiguration['backupStaticAttributes']) && !isset($arguments['backupStaticAttributes'])) {
                $arguments['backupStaticAttributes'] = $phpunitConfiguration['backupStaticAttributes'];
            }

            if (isset($phpunitConfiguration['beStrictAboutChangesToGlobalState']) && !isset($arguments['beStrictAboutChangesToGlobalState'])) {
                $arguments['beStrictAboutChangesToGlobalState'] = $phpunitConfiguration['beStrictAboutChangesToGlobalState'];
            }

            if (isset($phpunitConfiguration['bootstrap']) && !isset($arguments['bootstrap'])) {
                $arguments['bootstrap'] = $phpunitConfiguration['bootstrap'];
            }

            if (isset($phpunitConfiguration['cacheResult']) && !isset($arguments['cacheResult'])) {
                $arguments['cacheResult'] = $phpunitConfiguration['cacheResult'];
            }

            if (isset($phpunitConfiguration['cacheResultFile']) && !isset($arguments['cacheResultFile'])) {
                $arguments['cacheResultFile'] = $phpunitConfiguration['cacheResultFile'];
            }

            if (isset($phpunitConfiguration['cacheTokens']) && !isset($arguments['cacheTokens'])) {
                $arguments['cacheTokens'] = $phpunitConfiguration['cacheTokens'];
            }

            if (isset($phpunitConfiguration['cacheTokens']) && !isset($arguments['cacheTokens'])) {
                $arguments['cacheTokens'] = $phpunitConfiguration['cacheTokens'];
            }

            if (isset($phpunitConfiguration['colors']) && !isset($arguments['colors'])) {
                $arguments['colors'] = $phpunitConfiguration['colors'];
            }

            if (isset($phpunitConfiguration['convertDeprecationsToExceptions']) && !isset($arguments['convertDeprecationsToExceptions'])) {
                $arguments['convertDeprecationsToExceptions'] = $phpunitConfiguration['convertDeprecationsToExceptions'];
            }

            if (isset($phpunitConfiguration['convertErrorsToExceptions']) && !isset($arguments['convertErrorsToExceptions'])) {
                $arguments['convertErrorsToExceptions'] = $phpunitConfiguration['convertErrorsToExceptions'];
            }

            if (isset($phpunitConfiguration['convertNoticesToExceptions']) && !isset($arguments['convertNoticesToExceptions'])) {
                $arguments['convertNoticesToExceptions'] = $phpunitConfiguration['convertNoticesToExceptions'];
            }

            if (isset($phpunitConfiguration['convertWarningsToExceptions']) && !isset($arguments['convertWarningsToExceptions'])) {
                $arguments['convertWarningsToExceptions'] = $phpunitConfiguration['convertWarningsToExceptions'];
            }

            if (isset($phpunitConfiguration['processIsolation']) && !isset($arguments['processIsolation'])) {
                $arguments['processIsolation'] = $phpunitConfiguration['processIsolation'];
            }

            if (isset($phpunitConfiguration['stopOnDefect']) && !isset($arguments['stopOnDefect'])) {
                $arguments['stopOnDefect'] = $phpunitConfiguration['stopOnDefect'];
            }

            if (isset($phpunitConfiguration['stopOnError']) && !isset($arguments['stopOnError'])) {
                $arguments['stopOnError'] = $phpunitConfiguration['stopOnError'];
            }

            if (isset($phpunitConfiguration['stopOnFailure']) && !isset($arguments['stopOnFailure'])) {
                $arguments['stopOnFailure'] = $phpunitConfiguration['stopOnFailure'];
            }

            if (isset($phpunitConfiguration['stopOnWarning']) && !isset($arguments['stopOnWarning'])) {
                $arguments['stopOnWarning'] = $phpunitConfiguration['stopOnWarning'];
            }

            if (isset($phpunitConfiguration['stopOnIncomplete']) && !isset($arguments['stopOnIncomplete'])) {
                $arguments['stopOnIncomplete'] = $phpunitConfiguration['stopOnIncomplete'];
            }

            if (isset($phpunitConfiguration['stopOnRisky']) && !isset($arguments['stopOnRisky'])) {
                $arguments['stopOnRisky'] = $phpunitConfiguration['stopOnRisky'];
            }

            if (isset($phpunitConfiguration['stopOnSkipped']) && !isset($arguments['stopOnSkipped'])) {
                $arguments['stopOnSkipped'] = $phpunitConfiguration['stopOnSkipped'];
            }

            if (isset($phpunitConfiguration['failOnWarning']) && !isset($arguments['failOnWarning'])) {
                $arguments['failOnWarning'] = $phpunitConfiguration['failOnWarning'];
            }

            if (isset($phpunitConfiguration['failOnRisky']) && !isset($arguments['failOnRisky'])) {
                $arguments['failOnRisky'] = $phpunitConfiguration['failOnRisky'];
            }

            if (isset($phpunitConfiguration['timeoutForSmallTests']) && !isset($arguments['timeoutForSmallTests'])) {
                $arguments['timeoutForSmallTests'] = $phpunitConfiguration['timeoutForSmallTests'];
            }

            if (isset($phpunitConfiguration['timeoutForMediumTests']) && !isset($arguments['timeoutForMediumTests'])) {
                $arguments['timeoutForMediumTests'] = $phpunitConfiguration['timeoutForMediumTests'];
            }

            if (isset($phpunitConfiguration['timeoutForLargeTests']) && !isset($arguments['timeoutForLargeTests'])) {
                $arguments['timeoutForLargeTests'] = $phpunitConfiguration['timeoutForLargeTests'];
            }

            if (isset($phpunitConfiguration['reportUselessTests']) && !isset($arguments['reportUselessTests'])) {
                $arguments['reportUselessTests'] = $phpunitConfiguration['reportUselessTests'];
            }

            if (isset($phpunitConfiguration['strictCoverage']) && !isset($arguments['strictCoverage'])) {
                $arguments['strictCoverage'] = $phpunitConfiguration['strictCoverage'];
            }

            if (isset($phpunitConfiguration['ignoreDeprecatedCodeUnitsFromCodeCoverage']) && !isset($arguments['ignoreDeprecatedCodeUnitsFromCodeCoverage'])) {
                $arguments['ignoreDeprecatedCodeUnitsFromCodeCoverage'] = $phpunitConfiguration['ignoreDeprecatedCodeUnitsFromCodeCoverage'];
            }

            if (isset($phpunitConfiguration['disallowTestOutput']) && !isset($arguments['disallowTestOutput'])) {
                $arguments['disallowTestOutput'] = $phpunitConfiguration['disallowTestOutput'];
            }

            if (isset($phpunitConfiguration['defaultTimeLimit']) && !isset($arguments['defaultTimeLimit'])) {
                $arguments['defaultTimeLimit'] = $phpunitConfiguration['defaultTimeLimit'];
            }

            if (isset($phpunitConfiguration['enforceTimeLimit']) && !isset($arguments['enforceTimeLimit'])) {
                $arguments['enforceTimeLimit'] = $phpunitConfiguration['enforceTimeLimit'];
            }

            if (isset($phpunitConfiguration['disallowTodoAnnotatedTests']) && !isset($arguments['disallowTodoAnnotatedTests'])) {
                $arguments['disallowTodoAnnotatedTests'] = $phpunitConfiguration['disallowTodoAnnotatedTests'];
            }

            if (isset($phpunitConfiguration['beStrictAboutResourceUsageDuringSmallTests']) && !isset($arguments['beStrictAboutResourceUsageDuringSmallTests'])) {
                $arguments['beStrictAboutResourceUsageDuringSmallTests'] = $phpunitConfiguration['beStrictAboutResourceUsageDuringSmallTests'];
            }

            if (isset($phpunitConfiguration['verbose']) && !isset($arguments['verbose'])) {
                $arguments['verbose'] = $phpunitConfiguration['verbose'];
            }

            if (isset($phpunitConfiguration['reverseDefectList']) && !isset($arguments['reverseList'])) {
                $arguments['reverseList'] = $phpunitConfiguration['reverseDefectList'];
            }

            if (isset($phpunitConfiguration['forceCoversAnnotation']) && !isset($arguments['forceCoversAnnotation'])) {
                $arguments['forceCoversAnnotation'] = $phpunitConfiguration['forceCoversAnnotation'];
            }

            if (isset($phpunitConfiguration['disableCodeCoverageIgnore']) && !isset($arguments['disableCodeCoverageIgnore'])) {
                $arguments['disableCodeCoverageIgnore'] = $phpunitConfiguration['disableCodeCoverageIgnore'];
            }

            if (isset($phpunitConfiguration['registerMockObjectsFromTestArgumentsRecursively']) && !isset($arguments['registerMockObjectsFromTestArgumentsRecursively'])) {
                $arguments['registerMockObjectsFromTestArgumentsRecursively'] = $phpunitConfiguration['registerMockObjectsFromTestArgumentsRecursively'];
            }

            if (isset($phpunitConfiguration['executionOrder']) && !isset($arguments['executionOrder'])) {
                $arguments['executionOrder'] = $phpunitConfiguration['executionOrder'];
            }

            if (isset($phpunitConfiguration['executionOrderDefects']) && !isset($arguments['executionOrderDefects'])) {
                $arguments['executionOrderDefects'] = $phpunitConfiguration['executionOrderDefects'];
            }

            if (isset($phpunitConfiguration['resolveDependencies']) && !isset($arguments['resolveDependencies'])) {
                $arguments['resolveDependencies'] = $phpunitConfiguration['resolveDependencies'];
            }

            if (isset($phpunitConfiguration['noInteraction']) && !isset($arguments['noInteraction'])) {
                $arguments['noInteraction'] = $phpunitConfiguration['noInteraction'];
            }

            if (isset($phpunitConfiguration['conflictBetweenPrinterClassAndTestdox'])) {
                $arguments['conflictBetweenPrinterClassAndTestdox'] = true;
            }

            $groupCliArgs = [];

            if (!empty($arguments['groups'])) {
                $groupCliArgs = $arguments['groups'];
            }

            $groupConfiguration = $arguments['configuration']->getGroupConfiguration();

            if (!empty($groupConfiguration['include']) && !isset($arguments['groups'])) {
                $arguments['groups'] = $groupConfiguration['include'];
            }

            if (!empty($groupConfiguration['exclude']) && !isset($arguments['excludeGroups'])) {
                $arguments['excludeGroups'] = \array_diff($groupConfiguration['exclude'], $groupCliArgs);
            }

            foreach ($arguments['configuration']->getExtensionConfiguration() as $extension) {
                if ($extension['file'] !== '' && !\class_exists($extension['class'], false)) {
                    require_once $extension['file'];
                }

                if (!\class_exists($extension['class'])) {
                    throw new Exception(
                        \sprintf(
                            'Class "%s" does not exist',
                            $extension['class']
                        )
                    );
                }

                try {
                    $extensionClass = new ReflectionClass($extension['class']);
                } catch (\ReflectionException $e) {
                    throw new Exception(
                        $e->getMessage(),
                        (int) $e->getCode(),
                        $e
                    );
                }

                if (!$extensionClass->implementsInterface(Hook::class)) {
                    throw new Exception(
                        \sprintf(
                            'Class "%s" does not implement a PHPUnit\Runner\Hook interface',
                            $extension['class']
                        )
                    );
                }

                if (\count($extension['arguments']) === 0) {
                    $extensionObject = $extensionClass->newInstance();
                } else {
                    $extensionObject = $extensionClass->newInstanceArgs(
                        $extension['arguments']
                    );
                }

                \assert($extensionObject instanceof Hook);

                $this->addExtension($extensionObject);
            }

            foreach ($arguments['configuration']->getListenerConfiguration() as $listener) {
                if ($listener['file'] !== '' && !\class_exists($listener['class'], false)) {
                    require_once $listener['file'];
                }

                if (!\class_exists($listener['class'])) {
                    throw new Exception(
                        \sprintf(
                            'Class "%s" does not exist',
                            $listener['class']
                        )
                    );
                }

                try {
                    $listenerClass = new ReflectionClass($listener['class']);
                } catch (\ReflectionException $e) {
                    throw new Exception(
                        $e->getMessage(),
                        (int) $e->getCode(),
                        $e
                    );
                }

                if (!$listenerClass->implementsInterface(TestListener::class)) {
                    throw new Exception(
                        \sprintf(
                            'Class "%s" does not implement the PHPUnit\Framework\TestListener interface',
                            $listener['class']
                        )
                    );
                }

                if (\count($listener['arguments']) === 0) {
                    $listener = new $listener['class'];
                } else {
                    $listener = $listenerClass->newInstanceArgs(
                        $listener['arguments']
                    );
                }

                $arguments['listeners'][] = $listener;
            }

            $loggingConfiguration = $arguments['configuration']->getLoggingConfiguration();

            if (isset($loggingConfiguration['coverage-clover']) && !isset($arguments['coverageClover'])) {
                $arguments['coverageClover'] = $loggingConfiguration['coverage-clover'];
            }

            if (isset($loggingConfiguration['coverage-crap4j']) && !isset($arguments['coverageCrap4J'])) {
                $arguments['coverageCrap4J'] = $loggingConfiguration['coverage-crap4j'];

                if (isset($loggingConfiguration['crap4jThreshold']) && !isset($arguments['crap4jThreshold'])) {
                    $arguments['crap4jThreshold'] = $loggingConfiguration['crap4jThreshold'];
                }
            }

            if (isset($loggingConfiguration['coverage-html']) && !isset($arguments['coverageHtml'])) {
                if (isset($loggingConfiguration['lowUpperBound']) && !isset($arguments['reportLowUpperBound'])) {
                    $arguments['reportLowUpperBound'] = $loggingConfiguration['lowUpperBound'];
                }

                if (isset($loggingConfiguration['highLowerBound']) && !isset($arguments['reportHighLowerBound'])) {
                    $arguments['reportHighLowerBound'] = $loggingConfiguration['highLowerBound'];
                }

                $arguments['coverageHtml'] = $loggingConfiguration['coverage-html'];
            }

            if (isset($loggingConfiguration['coverage-php']) && !isset($arguments['coveragePHP'])) {
                $arguments['coveragePHP'] = $loggingConfiguration['coverage-php'];
            }

            if (isset($loggingConfiguration['coverage-text']) && !isset($arguments['coverageText'])) {
                $arguments['coverageText']                   = $loggingConfiguration['coverage-text'];
                $arguments['coverageTextShowUncoveredFiles'] = $loggingConfiguration['coverageTextShowUncoveredFiles'] ?? false;
                $arguments['coverageTextShowOnlySummary']    = $loggingConfiguration['coverageTextShowOnlySummary'] ?? false;
            }

            if (isset($loggingConfiguration['coverage-xml']) && !isset($arguments['coverageXml'])) {
                $arguments['coverageXml'] = $loggingConfiguration['coverage-xml'];
            }

            if (isset($loggingConfiguration['plain'])) {
                $arguments['listeners'][] = new ResultPrinter(
                    $loggingConfiguration['plain'],
                    true
                );
            }

            if (isset($loggingConfiguration['teamcity']) && !isset($arguments['teamcityLogfile'])) {
                $arguments['teamcityLogfile'] = $loggingConfiguration['teamcity'];
            }

            if (isset($loggingConfiguration['junit']) && !isset($arguments['junitLogfile'])) {
                $arguments['junitLogfile'] = $loggingConfiguration['junit'];
            }

            if (isset($loggingConfiguration['testdox-html']) && !isset($arguments['testdoxHTMLFile'])) {
                $arguments['testdoxHTMLFile'] = $loggingConfiguration['testdox-html'];
            }

            if (isset($loggingConfiguration['testdox-text']) && !isset($arguments['testdoxTextFile'])) {
                $arguments['testdoxTextFile'] = $loggingConfiguration['testdox-text'];
            }

            if (isset($loggingConfiguration['testdox-xml']) && !isset($arguments['testdoxXMLFile'])) {
                $arguments['testdoxXMLFile'] = $loggingConfiguration['testdox-xml'];
            }

            $testdoxGroupConfiguration = $arguments['configuration']->getTestdoxGroupConfiguration();

            if (isset($testdoxGroupConfiguration['include']) &&
                !isset($arguments['testdoxGroups'])) {
                $arguments['testdoxGroups'] = $testdoxGroupConfiguration['include'];
            }

            if (isset($testdoxGroupConfiguration['exclude']) &&
                !isset($arguments['testdoxExcludeGroups'])) {
                $arguments['testdoxExcludeGroups'] = $testdoxGroupConfiguration['exclude'];
            }
        }

        $arguments['addUncoveredFilesFromWhitelist']                      = $arguments['addUncoveredFilesFromWhitelist'] ?? true;
        $arguments['backupGlobals']                                       = $arguments['backupGlobals'] ?? null;
        $arguments['backupStaticAttributes']                              = $arguments['backupStaticAttributes'] ?? null;
        $arguments['beStrictAboutChangesToGlobalState']                   = $arguments['beStrictAboutChangesToGlobalState'] ?? null;
        $arguments['beStrictAboutResourceUsageDuringSmallTests']          = $arguments['beStrictAboutResourceUsageDuringSmallTests'] ?? false;
        $arguments['cacheResult']                                         = $arguments['cacheResult'] ?? true;
        $arguments['cacheTokens']                                         = $arguments['cacheTokens'] ?? false;
        $arguments['colors']                                              = $arguments['colors'] ?? ResultPrinter::COLOR_DEFAULT;
        $arguments['columns']                                             = $arguments['columns'] ?? 80;
        $arguments['convertDeprecationsToExceptions']                     = $arguments['convertDeprecationsToExceptions'] ?? true;
        $arguments['convertErrorsToExceptions']                           = $arguments['convertErrorsToExceptions'] ?? true;
        $arguments['convertNoticesToExceptions']                          = $arguments['convertNoticesToExceptions'] ?? true;
        $arguments['convertWarningsToExceptions']                         = $arguments['convertWarningsToExceptions'] ?? true;
        $arguments['crap4jThreshold']                                     = $arguments['crap4jThreshold'] ?? 30;
        $arguments['disallowTestOutput']                                  = $arguments['disallowTestOutput'] ?? false;
        $arguments['disallowTodoAnnotatedTests']                          = $arguments['disallowTodoAnnotatedTests'] ?? false;
        $arguments['defaultTimeLimit']                                    = $arguments['defaultTimeLimit'] ?? 0;
        $arguments['enforceTimeLimit']                                    = $arguments['enforceTimeLimit'] ?? false;
        $arguments['excludeGroups']                                       = $arguments['excludeGroups'] ?? [];
        $arguments['executionOrder']                                      = $arguments['executionOrder'] ?? TestSuiteSorter::ORDER_DEFAULT;
        $arguments['executionOrderDefects']                               = $arguments['executionOrderDefects'] ?? TestSuiteSorter::ORDER_DEFAULT;
        $arguments['failOnRisky']                                         = $arguments['failOnRisky'] ?? false;
        $arguments['failOnWarning']                                       = $arguments['failOnWarning'] ?? false;
        $arguments['groups']                                              = $arguments['groups'] ?? [];
        $arguments['noInteraction']                                       = $arguments['noInteraction'] ?? false;
        $arguments['processIsolation']                                    = $arguments['processIsolation'] ?? false;
        $arguments['processUncoveredFilesFromWhitelist']                  = $arguments['processUncoveredFilesFromWhitelist'] ?? false;
        $arguments['randomOrderSeed']                                     = $arguments['randomOrderSeed'] ?? \time();
        $arguments['registerMockObjectsFromTestArgumentsRecursively']     = $arguments['registerMockObjectsFromTestArgumentsRecursively'] ?? false;
        $arguments['repeat']                                              = $arguments['repeat'] ?? false;
        $arguments['reportHighLowerBound']                                = $arguments['reportHighLowerBound'] ?? 90;
        $arguments['reportLowUpperBound']                                 = $arguments['reportLowUpperBound'] ?? 50;
        $arguments['reportUselessTests']                                  = $arguments['reportUselessTests'] ?? true;
        $arguments['reverseList']                                         = $arguments['reverseList'] ?? false;
        $arguments['resolveDependencies']                                 = $arguments['resolveDependencies'] ?? true;
        $arguments['stopOnError']                                         = $arguments['stopOnError'] ?? false;
        $arguments['stopOnFailure']                                       = $arguments['stopOnFailure'] ?? false;
        $arguments['stopOnIncomplete']                                    = $arguments['stopOnIncomplete'] ?? false;
        $arguments['stopOnRisky']                                         = $arguments['stopOnRisky'] ?? false;
        $arguments['stopOnSkipped']                                       = $arguments['stopOnSkipped'] ?? false;
        $arguments['stopOnWarning']                                       = $arguments['stopOnWarning'] ?? false;
        $arguments['stopOnDefect']                                        = $arguments['stopOnDefect'] ?? false;
        $arguments['strictCoverage']                                      = $arguments['strictCoverage'] ?? false;
        $arguments['testdoxExcludeGroups']                                = $arguments['testdoxExcludeGroups'] ?? [];
        $arguments['testdoxGroups']                                       = $arguments['testdoxGroups'] ?? [];
        $arguments['timeoutForLargeTests']                                = $arguments['timeoutForLargeTests'] ?? 60;
        $arguments['timeoutForMediumTests']                               = $arguments['timeoutForMediumTests'] ?? 10;
        $arguments['timeoutForSmallTests']                                = $arguments['timeoutForSmallTests'] ?? 1;
        $arguments['verbose']                                             = $arguments['verbose'] ?? false;
    }

    private function processSuiteFilters(TestSuite $suite, array $arguments): void
    {
        if (!$arguments['filter'] &&
            empty($arguments['groups']) &&
            empty($arguments['excludeGroups'])) {
            return;
        }

        $filterFactory = new Factory;

        if (!empty($arguments['excludeGroups'])) {
            $filterFactory->addFilter(
                new ReflectionClass(ExcludeGroupFilterIterator::class),
                $arguments['excludeGroups']
            );
        }

        if (!empty($arguments['groups'])) {
            $filterFactory->addFilter(
                new ReflectionClass(IncludeGroupFilterIterator::class),
                $arguments['groups']
            );
        }

        if ($arguments['filter']) {
            $filterFactory->addFilter(
                new ReflectionClass(NameFilterIterator::class),
                $arguments['filter']
            );
        }

        $suite->injectFilter($filterFactory);
    }

    private function writeMessage(string $type, string $message): void
    {
        if (!$this->messagePrinted) {
            $this->write("\n");
        }

        $this->write(
            \sprintf(
                "%-15s%s\n",
                $type . ':',
                $message
            )
        );

        $this->messagePrinted = true;
    }

    private function createPrinter(string $class, array $arguments): Printer
    {
        return new $class(
            (isset($arguments['stderr']) && $arguments['stderr'] === true) ? 'php://stderr' : null,
            $arguments['verbose'],
            $arguments['colors'],
            $arguments['debug'],
            $arguments['columns'],
            $arguments['reverseList']
        );
    }

    private function codeCoverageGenerationStart(string $format): void
    {
        $this->printer->write(
            \sprintf(
                "\nGenerating code coverage report in %s format ... ",
                $format
            )
        );

        Timer::start();
    }

    private function codeCoverageGenerationSucceeded(): void
    {
        $this->printer->write(
            \sprintf(
                "done [%s]\n",
                Timer::secondsToTimeString(Timer::stop())
            )
        );
    }

    private function codeCoverageGenerationFailed(\Exception $e): void
    {
        $this->printer->write(
            \sprintf(
                "failed [%s]\n%s\n",
                Timer::secondsToTimeString(Timer::stop()),
                $e->getMessage()
            )
        );
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\TextUI;

use PHPUnit\Util\Color;
use SebastianBergmann\Environment\Console;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class Help
{
    private const LEFT_MARGIN = '  ';

    private const HELP_TEXT = [
        'Usage'                 => [
            ['text' => 'phpunit [options] UnitTest [UnitTest.php]'],
            ['text' => 'phpunit [options] <directory>'],
        ],
        'Code Coverage Options' => [
            ['arg' => '--coverage-clover <file>', 'desc' => 'Generate code coverage report in Clover XML format'],
            ['arg'  => '--coverage-crap4j <file>', 'desc' => 'Generate code coverage report in Crap4J XML format'],
            ['arg'  => '--coverage-html <dir>', 'desc' => 'Generate code coverage report in HTML format'],
            ['arg'  => '--coverage-php <file>', 'desc' => 'Export PHP_CodeCoverage object to file'],
            ['arg'  => '--coverage-text=<file>', 'desc' => 'Generate code coverage report in text format [default: standard output]'],
            ['arg'  => '--coverage-xml <dir>', 'desc' => 'Generate code coverage report in PHPUnit XML format'],
            ['arg'  => '--whitelist <dir>', 'desc' => 'Whitelist <dir> for code coverage analysis'],
            ['arg'  => '--disable-coverage-ignore', 'desc' => 'Disable annotations for ignoring code coverage'],
            ['arg'  => '--no-coverage', 'desc' => 'Ignore code coverage configuration'],
            ['arg'  => '--dump-xdebug-filter <file>', 'desc' => 'Generate script to set Xdebug code coverage filter'],
        ],

        'Logging Options' => [
            ['arg' => '--log-junit <file>', 'desc' => 'Log test execution in JUnit XML format to file'],
            ['arg' => '--log-teamcity <file>', 'desc' => 'Log test execution in TeamCity format to file'],
            ['arg' => '--testdox-html <file>', 'desc' => 'Write agile documentation in HTML format to file'],
            ['arg' => '--testdox-text <file>', 'desc' => 'Write agile documentation in Text format to file'],
            ['arg' => '--testdox-xml <file>', 'desc' => 'Write agile documentation in XML format to file'],
            ['arg' => '--reverse-list', 'desc' => 'Print defects in reverse order'],
        ],

        'Test Selection Options' => [
            ['arg' => '--filter <pattern>', 'desc' => 'Filter which tests to run'],
            ['arg'  => '--testsuite <name>', 'desc' => 'Filter which testsuite to run'],
            ['arg'  => '--group <name>', 'desc' => 'Only runs tests from the specified group(s)'],
            ['arg'  => '--exclude-group <name>', 'desc' => 'Exclude tests from the specified group(s)'],
            ['arg'  => '--list-groups', 'desc' => 'List available test groups'],
            ['arg'  => '--list-suites', 'desc' => 'List available test suites'],
            ['arg'  => '--list-tests', 'desc' => 'List available tests'],
            ['arg'  => '--list-tests-xml <file>', 'desc' => 'List available tests in XML format'],
            ['arg'  => '--test-suffix <suffixes>', 'desc' => 'Only search for test in files with specified suffix(es). Default: Test.php,.phpt'],
        ],

        'Test Execution Options' => [
            ['arg' => '--dont-report-useless-tests', 'desc' => 'Do not report tests that do not test anything'],
            ['arg'    => '--strict-coverage', 'desc' => 'Be strict about @covers annotation usage'],
            ['arg'    => '--strict-global-state', 'desc' => 'Be strict about changes to global state'],
            ['arg'    => '--disallow-test-output', 'desc' => 'Be strict about output during tests'],
            ['arg'    => '--disallow-resource-usage', 'desc' => 'Be strict about resource usage during small tests'],
            ['arg'    => '--enforce-time-limit', 'desc' => 'Enforce time limit based on test size'],
            ['arg'    => '--default-time-limit=<sec>', 'desc' => 'Timeout in seconds for tests without @small, @medium or @large'],
            ['arg'    => '--disallow-todo-tests', 'desc' => 'Disallow @todo-annotated tests'],
            ['spacer' => ''],

            ['arg'    => '--process-isolation', 'desc' => 'Run each test in a separate PHP process'],
            ['arg'    => '--globals-backup', 'desc' => 'Backup and restore $GLOBALS for each test'],
            ['arg'    => '--static-backup', 'desc' => 'Backup and restore static attributes for each test'],
            ['spacer' => ''],

            ['arg'    => '--colors=<flag>', 'desc' => 'Use colors in output ("never", "auto" or "always")'],
            ['arg'    => '--columns <n>', 'desc' => 'Number of columns to use for progress output'],
            ['arg'    => '--columns max', 'desc' => 'Use maximum number of columns for progress output'],
            ['arg'    => '--stderr', 'desc' => 'Write to STDERR instead of STDOUT'],
            ['arg'    => '--stop-on-defect', 'desc' => 'Stop execution upon first not-passed test'],
            ['arg'    => '--stop-on-error', 'desc' => 'Stop execution upon first error'],
            ['arg'    => '--stop-on-failure', 'desc' => 'Stop execution upon first error or failure'],
            ['arg'    => '--stop-on-warning', 'desc' => 'Stop execution upon first warning'],
            ['arg'    => '--stop-on-risky', 'desc' => 'Stop execution upon first risky test'],
            ['arg'    => '--stop-on-skipped', 'desc' => 'Stop execution upon first skipped test'],
            ['arg'    => '--stop-on-incomplete', 'desc' => 'Stop execution upon first incomplete test'],
            ['arg'    => '--fail-on-warning', 'desc' => 'Treat tests with warnings as failures'],
            ['arg'    => '--fail-on-risky', 'desc' => 'Treat risky tests as failures'],
            ['arg'    => '-v|--verbose', 'desc' => 'Output more verbose information'],
            ['arg'    => '--debug', 'desc' => 'Display debugging information'],
            ['spacer' => ''],

            ['arg'    => '--loader <loader>', 'desc' => 'TestSuiteLoader implementation to use'],
            ['arg'    => '--repeat <times>', 'desc' => 'Runs the test(s) repeatedly'],
            ['arg'    => '--teamcity', 'desc' => 'Report test execution progress in TeamCity format'],
            ['arg'    => '--testdox', 'desc' => 'Report test execution progress in TestDox format'],
            ['arg'    => '--testdox-group', 'desc' => 'Only include tests from the specified group(s)'],
            ['arg'    => '--testdox-exclude-group', 'desc' => 'Exclude tests from the specified group(s)'],
            ['arg'    => '--printer <printer>', 'desc' => 'TestListener implementation to use'],
            ['spacer' => ''],

            ['arg'  => '--order-by=<order>', 'desc' => 'Run tests in order: default|defects|duration|no-depends|random|reverse'],
            ['arg'  => '--random-order-seed=<N>', 'desc' => 'Use a specific random seed <N> for random order'],
            ['arg'  => '--cache-result', 'desc' => 'Write test results to cache file'],
            ['arg'  => '--do-not-cache-result', 'desc' => 'Do not write test results to cache file'],
        ],

        'Configuration Options' => [
            ['arg' => '--prepend <file>', 'desc' => 'A PHP script that is included as early as possible'],
            ['arg' => '--bootstrap <file>', 'desc' => 'A PHP script that is included before the tests run'],
            ['arg' => '-c|--configuration <file>', 'desc' => 'Read configuration from XML file'],
            ['arg' => '--no-configuration', 'desc' => 'Ignore default configuration file (phpunit.xml)'],
            ['arg' => '--no-logging', 'desc' => 'Ignore logging configuration'],
            ['arg' => '--no-extensions', 'desc' => 'Do not load PHPUnit extensions'],
            ['arg' => '--include-path <path(s)>', 'desc' => 'Prepend PHP\'s include_path with given path(s)'],
            ['arg' => '-d <key[=value]>', 'desc' => 'Sets a php.ini value'],
            ['arg' => '--generate-configuration', 'desc' => 'Generate configuration file with suggested settings'],
            ['arg' => '--cache-result-file=<file>', 'desc' => 'Specify result cache path and filename'],
        ],

        'Miscellaneous Options' => [
            ['arg' => '-h|--help', 'desc' => 'Prints this usage information'],
            ['arg' => '--version', 'desc' => 'Prints the version and exits'],
            ['arg' => '--atleast-version <min>', 'desc' => 'Checks that version is greater than min and exits'],
            ['arg' => '--check-version', 'desc' => 'Check whether PHPUnit is the latest version'],
        ],

    ];

    /**
     * @var int Number of columns required to write the longest option name to the console
     */
    private $maxArgLength = 0;

    /**
     * @var int Number of columns left for the description field after padding and option
     */
    private $maxDescLength;

    /**
     * @var bool Use color highlights for sections, options and parameters
     */
    private $hasColor = false;

    public function __construct(?int $width = null, ?bool $withColor = null)
    {
        if ($width === null) {
            $width = (new Console)->getNumberOfColumns();
        }

        if ($withColor === null) {
            $this->hasColor = (new Console)->hasColorSupport();
        } else {
            $this->hasColor = $withColor;
        }

        foreach (self::HELP_TEXT as $section => $options) {
            foreach ($options as $option) {
                if (isset($option['arg'])) {
                    $this->maxArgLength = \max($this->maxArgLength, \strlen($option['arg']) ?? 0);
                }
            }
        }

        $this->maxDescLength = $width - $this->maxArgLength - 4;
    }

    /**
     * Write the help file to the CLI, adapting width and colors to the console
     */
    public function writeToConsole(): void
    {
        if ($this->hasColor) {
            $this->writeWithColor();
        } else {
            $this->writePlaintext();
        }
    }

    private function writePlaintext(): void
    {
        foreach (self::HELP_TEXT as $section => $options) {
            print "$section:" . \PHP_EOL;

            if ($section !== 'Usage') {
                print \PHP_EOL;
            }

            foreach ($options as $option) {
                if (isset($option['spacer'])) {
                    print \PHP_EOL;
                }

                if (isset($option['text'])) {
                    print self::LEFT_MARGIN . $option['text'] . \PHP_EOL;
                }

                if (isset($option['arg'])) {
                    $arg = \str_pad($option['arg'], $this->maxArgLength);
                    print self::LEFT_MARGIN . $arg . ' ' . $option['desc'] . \PHP_EOL;
                }
            }

            print \PHP_EOL;
        }
    }

    private function writeWithColor(): void
    {
        foreach (self::HELP_TEXT as $section => $options) {
            print Color::colorize('fg-yellow', "$section:") . \PHP_EOL;

            foreach ($options as $option) {
                if (isset($option['spacer'])) {
                    print \PHP_EOL;
                }

                if (isset($option['text'])) {
                    print self::LEFT_MARGIN . $option['text'] . \PHP_EOL;
                }

                if (isset($option['arg'])) {
                    $arg = Color::colorize('fg-green', \str_pad($option['arg'], $this->maxArgLength));
                    $arg = \preg_replace_callback(
                        '/(<[^>]+>)/',
                        function ($matches) {
                            return Color::colorize('fg-cyan', $matches[0]);
                        },
                        $arg
                    );
                    $desc = \explode(\PHP_EOL, \wordwrap($option['desc'], $this->maxDescLength, \PHP_EOL));

                    print self::LEFT_MARGIN . $arg . ' ' . $desc[0] . \PHP_EOL;

                    for ($i = 1; $i < \count($desc); $i++) {
                        print \str_repeat(' ', $this->maxArgLength + 3) . $desc[$i] . \PHP_EOL;
                    }
                }
            }

            print \PHP_EOL;
        }
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\TextUI;

use PharIo\Manifest\ApplicationName;
use PharIo\Manifest\Exception as ManifestException;
use PharIo\Manifest\ManifestLoader;
use PharIo\Version\Version as PharIoVersion;
use PHPUnit\Framework\Exception;
use PHPUnit\Framework\Test;
use PHPUnit\Framework\TestListener;
use PHPUnit\Framework\TestSuite;
use PHPUnit\Runner\PhptTestCase;
use PHPUnit\Runner\StandardTestSuiteLoader;
use PHPUnit\Runner\TestSuiteLoader;
use PHPUnit\Runner\TestSuiteSorter;
use PHPUnit\Runner\Version;
use PHPUnit\Util\Configuration;
use PHPUnit\Util\ConfigurationGenerator;
use PHPUnit\Util\FileLoader;
use PHPUnit\Util\Filesystem;
use PHPUnit\Util\Getopt;
use PHPUnit\Util\Log\TeamCity;
use PHPUnit\Util\Printer;
use PHPUnit\Util\TestDox\CliTestDoxPrinter;
use PHPUnit\Util\TextTestListRenderer;
use PHPUnit\Util\XmlTestListRenderer;
use ReflectionClass;
use SebastianBergmann\FileIterator\Facade as FileIteratorFacade;

use Throwable;

/**
 * A TestRunner for the Command Line Interface (CLI)
 * PHP SAPI Module.
 */
class Command
{
    /**
     * @var array<string,mixed>
     */
    protected $arguments = [
        'listGroups'              => false,
        'listSuites'              => false,
        'listTests'               => false,
        'listTestsXml'            => false,
        'loader'                  => null,
        'useDefaultConfiguration' => true,
        'loadedExtensions'        => [],
        'notLoadedExtensions'     => [],
    ];

    /**
     * @var array<string,mixed>
     */
    protected $options = [];

    /**
     * @var array<string,mixed>
     */
    protected $longOptions = [
        'atleast-version='          => null,
        'prepend='                  => null,
        'bootstrap='                => null,
        'cache-result'              => null,
        'do-not-cache-result'       => null,
        'cache-result-file='        => null,
        'check-version'             => null,
        'colors=='                  => null,
        'columns='                  => null,
        'configuration='            => null,
        'coverage-clover='          => null,
        'coverage-crap4j='          => null,
        'coverage-html='            => null,
        'coverage-php='             => null,
        'coverage-text=='           => null,
        'coverage-xml='             => null,
        'debug'                     => null,
        'disallow-test-output'      => null,
        'disallow-resource-usage'   => null,
        'disallow-todo-tests'       => null,
        'default-time-limit='       => null,
        'enforce-time-limit'        => null,
        'exclude-group='            => null,
        'filter='                   => null,
        'generate-configuration'    => null,
        'globals-backup'            => null,
        'group='                    => null,
        'help'                      => null,
        'resolve-dependencies'      => null,
        'ignore-dependencies'       => null,
        'include-path='             => null,
        'list-groups'               => null,
        'list-suites'               => null,
        'list-tests'                => null,
        'list-tests-xml='           => null,
        'loader='                   => null,
        'log-junit='                => null,
        'log-teamcity='             => null,
        'no-configuration'          => null,
        'no-coverage'               => null,
        'no-logging'                => null,
        'no-interaction'            => null,
        'no-extensions'             => null,
        'order-by='                 => null,
        'printer='                  => null,
        'process-isolation'         => null,
        'repeat='                   => null,
        'dont-report-useless-tests' => null,
        'random-order'              => null,
        'random-order-seed='        => null,
        'reverse-order'             => null,
        'reverse-list'              => null,
        'static-backup'             => null,
        'stderr'                    => null,
        'stop-on-defect'            => null,
        'stop-on-error'             => null,
        'stop-on-failure'           => null,
        'stop-on-warning'           => null,
        'stop-on-incomplete'        => null,
        'stop-on-risky'             => null,
        'stop-on-skipped'           => null,
        'fail-on-warning'           => null,
        'fail-on-risky'             => null,
        'strict-coverage'           => null,
        'disable-coverage-ignore'   => null,
        'strict-global-state'       => null,
        'teamcity'                  => null,
        'testdox'                   => null,
        'testdox-group='            => null,
        'testdox-exclude-group='    => null,
        'testdox-html='             => null,
        'testdox-text='             => null,
        'testdox-xml='              => null,
        'test-suffix='              => null,
        'testsuite='                => null,
        'verbose'                   => null,
        'version'                   => null,
        'whitelist='                => null,
        'dump-xdebug-filter='       => null,
    ];

    /**
     * @var bool
     */
    private $versionStringPrinted = false;

    /**
     * @throws \PHPUnit\Framework\Exception
     */
    public static function main(bool $exit = true): int
    {
        return (new static)->run($_SERVER['argv'], $exit);
    }

    /**
     * @throws Exception
     */
    public function run(array $argv, bool $exit = true): int
    {
        $this->handleArguments($argv);

        $runner = $this->createRunner();

        if ($this->arguments['test'] instanceof Test) {
            $suite = $this->arguments['test'];
        } else {
            $suite = $runner->getTest(
                $this->arguments['test'],
                $this->arguments['testFile'],
                $this->arguments['testSuffixes']
            );
        }

        if ($this->arguments['listGroups']) {
            return $this->handleListGroups($suite, $exit);
        }

        if ($this->arguments['listSuites']) {
            return $this->handleListSuites($exit);
        }

        if ($this->arguments['listTests']) {
            return $this->handleListTests($suite, $exit);
        }

        if ($this->arguments['listTestsXml']) {
            return $this->handleListTestsXml($suite, $this->arguments['listTestsXml'], $exit);
        }

        unset($this->arguments['test'], $this->arguments['testFile']);

        try {
            $result = $runner->doRun($suite, $this->arguments, $exit);
        } catch (Exception $e) {
            print $e->getMessage() . \PHP_EOL;
        }

        $return = TestRunner::FAILURE_EXIT;

        if (isset($result) && $result->wasSuccessful()) {
            $return = TestRunner::SUCCESS_EXIT;
        } elseif (!isset($result) || $result->errorCount() > 0) {
            $return = TestRunner::EXCEPTION_EXIT;
        }

        if ($exit) {
            exit($return);
        }

        return $return;
    }

    /**
     * Create a TestRunner, override in subclasses.
     */
    protected function createRunner(): TestRunner
    {
        return new TestRunner($this->arguments['loader']);
    }

    /**
     * Handles the command-line arguments.
     *
     * A child class of PHPUnit\TextUI\Command can hook into the argument
     * parsing by adding the switch(es) to the $longOptions array and point to a
     * callback method that handles the switch(es) in the child class like this
     *
     * <code>
     * <?php
     * class MyCommand extends PHPUnit\TextUI\Command
     * {
     *     public function __construct()
     *     {
     *         // my-switch won't accept a value, it's an on/off
     *         $this->longOptions['my-switch'] = 'myHandler';
     *         // my-secondswitch will accept a value - note the equals sign
     *         $this->longOptions['my-secondswitch='] = 'myOtherHandler';
     *     }
     *
     *     // --my-switch  -> myHandler()
     *     protected function myHandler()
     *     {
     *     }
     *
     *     // --my-secondswitch foo -> myOtherHandler('foo')
     *     protected function myOtherHandler ($value)
     *     {
     *     }
     *
     *     // You will also need this - the static keyword in the
     *     // PHPUnit\TextUI\Command will mean that it'll be
     *     // PHPUnit\TextUI\Command that gets instantiated,
     *     // not MyCommand
     *     public static function main($exit = true)
     *     {
     *         $command = new static;
     *
     *         return $command->run($_SERVER['argv'], $exit);
     *     }
     *
     * }
     * </code>
     *
     * @throws Exception
     */
    protected function handleArguments(array $argv): void
    {
        try {
            $this->options = Getopt::getopt(
                $argv,
                'd:c:hv',
                \array_keys($this->longOptions)
            );
        } catch (Exception $t) {
            $this->exitWithErrorMessage($t->getMessage());
        }

        foreach ($this->options[0] as $option) {
            switch ($option[0]) {
                case '--colors':
                    $this->arguments['colors'] = $option[1] ?: ResultPrinter::COLOR_AUTO;

                    break;

                case '--bootstrap':
                    $this->arguments['bootstrap'] = $option[1];

                    break;

                case '--cache-result':
                    $this->arguments['cacheResult'] = true;

                    break;

                case '--do-not-cache-result':
                    $this->arguments['cacheResult'] = false;

                    break;

                case '--cache-result-file':
                    $this->arguments['cacheResultFile'] = $option[1];

                    break;

                case '--columns':
                    if (\is_numeric($option[1])) {
                        $this->arguments['columns'] = (int) $option[1];
                    } elseif ($option[1] === 'max') {
                        $this->arguments['columns'] = 'max';
                    }

                    break;

                case 'c':
                case '--configuration':
                    $this->arguments['configuration'] = $option[1];

                    break;

                case '--coverage-clover':
                    $this->arguments['coverageClover'] = $option[1];

                    break;

                case '--coverage-crap4j':
                    $this->arguments['coverageCrap4J'] = $option[1];

                    break;

                case '--coverage-html':
                    $this->arguments['coverageHtml'] = $option[1];

                    break;

                case '--coverage-php':
                    $this->arguments['coveragePHP'] = $option[1];

                    break;

                case '--coverage-text':
                    if ($option[1] === null) {
                        $option[1] = 'php://stdout';
                    }

                    $this->arguments['coverageText']                   = $option[1];
                    $this->arguments['coverageTextShowUncoveredFiles'] = false;
                    $this->arguments['coverageTextShowOnlySummary']    = false;

                    break;

                case '--coverage-xml':
                    $this->arguments['coverageXml'] = $option[1];

                    break;

                case 'd':
                    $ini = \explode('=', $option[1]);

                    if (isset($ini[0])) {
                        if (isset($ini[1])) {
                            \ini_set($ini[0], $ini[1]);
                        } else {
                            \ini_set($ini[0], '1');
                        }
                    }

                    break;

                case '--debug':
                    $this->arguments['debug'] = true;

                    break;

                case 'h':
                case '--help':
                    $this->showHelp();
                    exit(TestRunner::SUCCESS_EXIT);

                    break;

                case '--filter':
                    $this->arguments['filter'] = $option[1];

                    break;

                case '--testsuite':
                    $this->arguments['testsuite'] = $option[1];

                    break;

                case '--generate-configuration':
                    $this->printVersionString();

                    print 'Generating phpunit.xml in ' . \getcwd() . \PHP_EOL . \PHP_EOL;

                    print 'Bootstrap script (relative to path shown above; default: vendor/autoload.php): ';
                    $bootstrapScript = \trim(\fgets(\STDIN));

                    print 'Tests directory (relative to path shown above; default: tests): ';
                    $testsDirectory = \trim(\fgets(\STDIN));

                    print 'Source directory (relative to path shown above; default: src): ';
                    $src = \trim(\fgets(\STDIN));

                    if ($bootstrapScript === '') {
                        $bootstrapScript = 'vendor/autoload.php';
                    }

                    if ($testsDirectory === '') {
                        $testsDirectory = 'tests';
                    }

                    if ($src === '') {
                        $src = 'src';
                    }

                    $generator = new ConfigurationGenerator;

                    \file_put_contents(
                        'phpunit.xml',
                        $generator->generateDefaultConfiguration(
                            Version::series(),
                            $bootstrapScript,
                            $testsDirectory,
                            $src
                        )
                    );

                    print \PHP_EOL . 'Generated phpunit.xml in ' . \getcwd() . \PHP_EOL;

                    exit(TestRunner::SUCCESS_EXIT);

                    break;

                case '--group':
                    $this->arguments['groups'] = \explode(',', $option[1]);

                    break;

                case '--exclude-group':
                    $this->arguments['excludeGroups'] = \explode(
                        ',',
                        $option[1]
                    );

                    break;

                case '--test-suffix':
                    $this->arguments['testSuffixes'] = \explode(
                        ',',
                        $option[1]
                    );

                    break;

                case '--include-path':
                    $includePath = $option[1];

                    break;

                case '--list-groups':
                    $this->arguments['listGroups'] = true;

                    break;

                case '--list-suites':
                    $this->arguments['listSuites'] = true;

                    break;

                case '--list-tests':
                    $this->arguments['listTests'] = true;

                    break;

                case '--list-tests-xml':
                    $this->arguments['listTestsXml'] = $option[1];

                    break;

                case '--printer':
                    $this->arguments['printer'] = $option[1];

                    break;

                case '--loader':
                    $this->arguments['loader'] = $option[1];

                    break;

                case '--log-junit':
                    $this->arguments['junitLogfile'] = $option[1];

                    break;

                case '--log-teamcity':
                    $this->arguments['teamcityLogfile'] = $option[1];

                    break;

                case '--order-by':
                    $this->handleOrderByOption($option[1]);

                    break;

                case '--process-isolation':
                    $this->arguments['processIsolation'] = true;

                    break;

                case '--repeat':
                    $this->arguments['repeat'] = (int) $option[1];

                    break;

                case '--stderr':
                    $this->arguments['stderr'] = true;

                    break;

                case '--stop-on-defect':
                    $this->arguments['stopOnDefect'] = true;

                    break;

                case '--stop-on-error':
                    $this->arguments['stopOnError'] = true;

                    break;

                case '--stop-on-failure':
                    $this->arguments['stopOnFailure'] = true;

                    break;

                case '--stop-on-warning':
                    $this->arguments['stopOnWarning'] = true;

                    break;

                case '--stop-on-incomplete':
                    $this->arguments['stopOnIncomplete'] = true;

                    break;

                case '--stop-on-risky':
                    $this->arguments['stopOnRisky'] = true;

                    break;

                case '--stop-on-skipped':
                    $this->arguments['stopOnSkipped'] = true;

                    break;

                case '--fail-on-warning':
                    $this->arguments['failOnWarning'] = true;

                    break;

                case '--fail-on-risky':
                    $this->arguments['failOnRisky'] = true;

                    break;

                case '--teamcity':
                    $this->arguments['printer'] = TeamCity::class;

                    break;

                case '--testdox':
                    $this->arguments['printer'] = CliTestDoxPrinter::class;

                    break;

                case '--testdox-group':
                    $this->arguments['testdoxGroups'] = \explode(
                        ',',
                        $option[1]
                    );

                    break;

                case '--testdox-exclude-group':
                    $this->arguments['testdoxExcludeGroups'] = \explode(
                        ',',
                        $option[1]
                    );

                    break;

                case '--testdox-html':
                    $this->arguments['testdoxHTMLFile'] = $option[1];

                    break;

                case '--testdox-text':
                    $this->arguments['testdoxTextFile'] = $option[1];

                    break;

                case '--testdox-xml':
                    $this->arguments['testdoxXMLFile'] = $option[1];

                    break;

                case '--no-configuration':
                    $this->arguments['useDefaultConfiguration'] = false;

                    break;

                case '--no-extensions':
                    $this->arguments['noExtensions'] = true;

                    break;

                case '--no-coverage':
                    $this->arguments['noCoverage'] = true;

                    break;

                case '--no-logging':
                    $this->arguments['noLogging'] = true;

                    break;

                case '--no-interaction':
                    $this->arguments['noInteraction'] = true;

                    break;

                case '--globals-backup':
                    $this->arguments['backupGlobals'] = true;

                    break;

                case '--static-backup':
                    $this->arguments['backupStaticAttributes'] = true;

                    break;

                case 'v':
                case '--verbose':
                    $this->arguments['verbose'] = true;

                    break;

                case '--atleast-version':
                    if (\version_compare(Version::id(), $option[1], '>=')) {
                        exit(TestRunner::SUCCESS_EXIT);
                    }

                    exit(TestRunner::FAILURE_EXIT);

                    break;

                case '--version':
                    $this->printVersionString();
                    exit(TestRunner::SUCCESS_EXIT);

                    break;

                case '--dont-report-useless-tests':
                    $this->arguments['reportUselessTests'] = false;

                    break;

                case '--strict-coverage':
                    $this->arguments['strictCoverage'] = true;

                    break;

                case '--disable-coverage-ignore':
                    $this->arguments['disableCodeCoverageIgnore'] = true;

                    break;

                case '--strict-global-state':
                    $this->arguments['beStrictAboutChangesToGlobalState'] = true;

                    break;

                case '--disallow-test-output':
                    $this->arguments['disallowTestOutput'] = true;

                    break;

                case '--disallow-resource-usage':
                    $this->arguments['beStrictAboutResourceUsageDuringSmallTests'] = true;

                    break;

                case '--default-time-limit':
                    $this->arguments['defaultTimeLimit'] = (int) $option[1];

                    break;

                case '--enforce-time-limit':
                    $this->arguments['enforceTimeLimit'] = true;

                    break;

                case '--disallow-todo-tests':
                    $this->arguments['disallowTodoAnnotatedTests'] = true;

                    break;

                case '--reverse-list':
                    $this->arguments['reverseList'] = true;

                    break;

                case '--check-version':
                    $this->handleVersionCheck();

                    break;

                case '--whitelist':
                    $this->arguments['whitelist'] = $option[1];

                    break;

                case '--random-order':
                    $this->handleOrderByOption('random');

                    break;

                case '--random-order-seed':
                    $this->arguments['randomOrderSeed'] = (int) $option[1];

                    break;

                case '--resolve-dependencies':
                    $this->handleOrderByOption('depends');

                    break;

                case '--ignore-dependencies':
                    $this->handleOrderByOption('no-depends');

                    break;

                case '--reverse-order':
                    $this->handleOrderByOption('reverse');

                    break;

                case '--dump-xdebug-filter':
                    $this->arguments['xdebugFilterFile'] = $option[1];

                    break;

                default:
                    $optionName = \str_replace('--', '', $option[0]);

                    $handler = null;

                    if (isset($this->longOptions[$optionName])) {
                        $handler = $this->longOptions[$optionName];
                    } elseif (isset($this->longOptions[$optionName . '='])) {
                        $handler = $this->longOptions[$optionName . '='];
                    }

                    if (isset($handler) && \is_callable([$this, $handler])) {
                        $this->$handler($option[1]);
                    }
            }
        }

        $this->handleCustomTestSuite();

        if (!isset($this->arguments['test'])) {
            if (isset($this->options[1][0])) {
                $this->arguments['test'] = $this->options[1][0];
            }

            if (isset($this->options[1][1])) {
                $testFile = \realpath($this->options[1][1]);

                if ($testFile === false) {
                    $this->exitWithErrorMessage(
                        \sprintf(
                            'Cannot open file "%s".',
                            $this->options[1][1]
                        )
                    );
                }
                $this->arguments['testFile'] = $testFile;
            } else {
                $this->arguments['testFile'] = '';
            }

            if (isset($this->arguments['test']) &&
                \is_file($this->arguments['test']) &&
                \substr($this->arguments['test'], -5, 5) != '.phpt') {
                $this->arguments['testFile'] = \realpath($this->arguments['test']);
                $this->arguments['test']     = \substr($this->arguments['test'], 0, \strrpos($this->arguments['test'], '.'));
            }
        }

        if (!isset($this->arguments['testSuffixes'])) {
            $this->arguments['testSuffixes'] = ['Test.php', '.phpt'];
        }

        if (isset($includePath)) {
            \ini_set(
                'include_path',
                $includePath . \PATH_SEPARATOR . \ini_get('include_path')
            );
        }

        if ($this->arguments['loader'] !== null) {
            $this->arguments['loader'] = $this->handleLoader($this->arguments['loader']);
        }

        if (isset($this->arguments['configuration']) &&
            \is_dir($this->arguments['configuration'])) {
            $configurationFile = $this->arguments['configuration'] . '/phpunit.xml';

            if (\file_exists($configurationFile)) {
                $this->arguments['configuration'] = \realpath(
                    $configurationFile
                );
            } elseif (\file_exists($configurationFile . '.dist')) {
                $this->arguments['configuration'] = \realpath(
                    $configurationFile . '.dist'
                );
            }
        } elseif (!isset($this->arguments['configuration']) &&
            $this->arguments['useDefaultConfiguration']) {
            if (\file_exists('phpunit.xml')) {
                $this->arguments['configuration'] = \realpath('phpunit.xml');
            } elseif (\file_exists('phpunit.xml.dist')) {
                $this->arguments['configuration'] = \realpath(
                    'phpunit.xml.dist'
                );
            }
        }

        if (isset($this->arguments['configuration'])) {
            try {
                $configuration = Configuration::getInstance(
                    $this->arguments['configuration']
                );
            } catch (Throwable $t) {
                print $t->getMessage() . \PHP_EOL;
                exit(TestRunner::FAILURE_EXIT);
            }

            $phpunitConfiguration = $configuration->getPHPUnitConfiguration();

            $configuration->handlePHPConfiguration();

            /*
             * Issue #1216
             */
            if (isset($this->arguments['bootstrap'])) {
                $this->handleBootstrap($this->arguments['bootstrap']);
            } elseif (isset($phpunitConfiguration['bootstrap'])) {
                $this->handleBootstrap($phpunitConfiguration['bootstrap']);
            }

            /*
             * Issue #657
             */
            if (isset($phpunitConfiguration['stderr']) && !isset($this->arguments['stderr'])) {
                $this->arguments['stderr'] = $phpunitConfiguration['stderr'];
            }

            if (isset($phpunitConfiguration['extensionsDirectory']) && !isset($this->arguments['noExtensions']) && \extension_loaded('phar')) {
                $this->handleExtensions($phpunitConfiguration['extensionsDirectory']);
            }

            if (isset($phpunitConfiguration['columns']) && !isset($this->arguments['columns'])) {
                $this->arguments['columns'] = $phpunitConfiguration['columns'];
            }

            if (!isset($this->arguments['printer']) && isset($phpunitConfiguration['printerClass'])) {
                $file = $phpunitConfiguration['printerFile'] ?? '';

                $this->arguments['printer'] = $this->handlePrinter(
                    $phpunitConfiguration['printerClass'],
                    $file
                );
            }

            if (isset($phpunitConfiguration['testSuiteLoaderClass'])) {
                $file = $phpunitConfiguration['testSuiteLoaderFile'] ?? '';

                $this->arguments['loader'] = $this->handleLoader(
                    $phpunitConfiguration['testSuiteLoaderClass'],
                    $file
                );
            }

            if (!isset($this->arguments['testsuite']) && isset($phpunitConfiguration['defaultTestSuite'])) {
                $this->arguments['testsuite'] = $phpunitConfiguration['defaultTestSuite'];
            }

            if (!isset($this->arguments['test'])) {
                $testSuite = $configuration->getTestSuiteConfiguration($this->arguments['testsuite'] ?? '');

                if ($testSuite !== null) {
                    $this->arguments['test'] = $testSuite;
                }
            }
        } elseif (isset($this->arguments['bootstrap'])) {
            $this->handleBootstrap($this->arguments['bootstrap']);
        }

        if (isset($this->arguments['printer']) &&
            \is_string($this->arguments['printer'])) {
            $this->arguments['printer'] = $this->handlePrinter($this->arguments['printer']);
        }

        if (isset($this->arguments['test']) && \is_string($this->arguments['test']) && \substr($this->arguments['test'], -5, 5) == '.phpt') {
            $test = new PhptTestCase($this->arguments['test']);

            $this->arguments['test'] = new TestSuite;
            $this->arguments['test']->addTest($test);
        }

        if (!isset($this->arguments['test'])) {
            $this->showHelp();
            exit(TestRunner::EXCEPTION_EXIT);
        }
    }

    /**
     * Handles the loading of the PHPUnit\Runner\TestSuiteLoader implementation.
     */
    protected function handleLoader(string $loaderClass, string $loaderFile = ''): ?TestSuiteLoader
    {
        if (!\class_exists($loaderClass, false)) {
            if ($loaderFile == '') {
                $loaderFile = Filesystem::classNameToFilename(
                    $loaderClass
                );
            }

            $loaderFile = \stream_resolve_include_path($loaderFile);

            if ($loaderFile) {
                require $loaderFile;
            }
        }

        if (\class_exists($loaderClass, false)) {
            try {
                $class = new ReflectionClass($loaderClass);
            } catch (\ReflectionException $e) {
                throw new Exception(
                    $e->getMessage(),
                    (int) $e->getCode(),
                    $e
                );
            }

            if ($class->implementsInterface(TestSuiteLoader::class) && $class->isInstantiable()) {
                $object = $class->newInstance();

                \assert($object instanceof TestSuiteLoader);

                return $object;
            }
        }

        if ($loaderClass == StandardTestSuiteLoader::class) {
            return null;
        }

        $this->exitWithErrorMessage(
            \sprintf(
                'Could not use "%s" as loader.',
                $loaderClass
            )
        );

        return null;
    }

    /**
     * Handles the loading of the PHPUnit\Util\Printer implementation.
     *
     * @return null|Printer|string
     */
    protected function handlePrinter(string $printerClass, string $printerFile = '')
    {
        if (!\class_exists($printerClass, false)) {
            if ($printerFile == '') {
                $printerFile = Filesystem::classNameToFilename(
                    $printerClass
                );
            }

            $printerFile = \stream_resolve_include_path($printerFile);

            if ($printerFile) {
                require $printerFile;
            }
        }

        if (!\class_exists($printerClass)) {
            $this->exitWithErrorMessage(
                \sprintf(
                    'Could not use "%s" as printer: class does not exist',
                    $printerClass
                )
            );
        }

        try {
            $class = new ReflectionClass($printerClass);
        } catch (\ReflectionException $e) {
            throw new Exception(
                $e->getMessage(),
                (int) $e->getCode(),
                $e
            );
        }

        if (!$class->implementsInterface(TestListener::class)) {
            $this->exitWithErrorMessage(
                \sprintf(
                    'Could not use "%s" as printer: class does not implement %s',
                    $printerClass,
                    TestListener::class
                )
            );
        }

        if (!$class->isSubclassOf(Printer::class)) {
            $this->exitWithErrorMessage(
                \sprintf(
                    'Could not use "%s" as printer: class does not extend %s',
                    $printerClass,
                    Printer::class
                )
            );
        }

        if (!$class->isInstantiable()) {
            $this->exitWithErrorMessage(
                \sprintf(
                    'Could not use "%s" as printer: class cannot be instantiated',
                    $printerClass
                )
            );
        }

        if ($class->isSubclassOf(ResultPrinter::class)) {
            return $printerClass;
        }

        $outputStream = isset($this->arguments['stderr']) ? 'php://stderr' : null;

        return $class->newInstance($outputStream);
    }

    /**
     * Loads a bootstrap file.
     */
    protected function handleBootstrap(string $filename): void
    {
        try {
            FileLoader::checkAndLoad($filename);
        } catch (Exception $e) {
            $this->exitWithErrorMessage($e->getMessage());
        }
    }

    protected function handleVersionCheck(): void
    {
        $this->printVersionString();

        $latestVersion = \file_get_contents('https://phar.phpunit.de/latest-version-of/phpunit');
        $isOutdated    = \version_compare($latestVersion, Version::id(), '>');

        if ($isOutdated) {
            \printf(
                'You are not using the latest version of PHPUnit.' . \PHP_EOL .
                'The latest version is PHPUnit %s.' . \PHP_EOL,
                $latestVersion
            );
        } else {
            print 'You are using the latest version of PHPUnit.' . \PHP_EOL;
        }

        exit(TestRunner::SUCCESS_EXIT);
    }

    /**
     * Show the help message.
     */
    protected function showHelp(): void
    {
        $this->printVersionString();
        (new Help)->writeToConsole();
    }

    /**
     * Custom callback for test suite discovery.
     */
    protected function handleCustomTestSuite(): void
    {
    }

    private function printVersionString(): void
    {
        if ($this->versionStringPrinted) {
            return;
        }

        print Version::getVersionString() . \PHP_EOL . \PHP_EOL;

        $this->versionStringPrinted = true;
    }

    private function exitWithErrorMessage(string $message): void
    {
        $this->printVersionString();

        print $message . \PHP_EOL;

        exit(TestRunner::FAILURE_EXIT);
    }

    private function handleExtensions(string $directory): void
    {
        foreach ((new FileIteratorFacade)->getFilesAsArray($directory, '.phar') as $file) {
            if (!\file_exists('phar://' . $file . '/manifest.xml')) {
                $this->arguments['notLoadedExtensions'][] = $file . ' is not an extension for PHPUnit';

                continue;
            }

            try {
                $applicationName = new ApplicationName('phpunit/phpunit');
                $version         = new PharIoVersion(Version::series());
                $manifest        = ManifestLoader::fromFile('phar://' . $file . '/manifest.xml');

                if (!$manifest->isExtensionFor($applicationName)) {
                    $this->arguments['notLoadedExtensions'][] = $file . ' is not an extension for PHPUnit';

                    continue;
                }

                if (!$manifest->isExtensionFor($applicationName, $version)) {
                    $this->arguments['notLoadedExtensions'][] = $file . ' is not compatible with this version of PHPUnit';

                    continue;
                }
            } catch (ManifestException $e) {
                $this->arguments['notLoadedExtensions'][] = $file . ': ' . $e->getMessage();

                continue;
            }

            require $file;

            $this->arguments['loadedExtensions'][] = $manifest->getName() . ' ' . $manifest->getVersion()->getVersionString();
        }
    }

    private function handleListGroups(TestSuite $suite, bool $exit): int
    {
        $this->printVersionString();

        print 'Available test group(s):' . \PHP_EOL;

        $groups = $suite->getGroups();
        \sort($groups);

        foreach ($groups as $group) {
            \printf(
                ' - %s' . \PHP_EOL,
                $group
            );
        }

        if ($exit) {
            exit(TestRunner::SUCCESS_EXIT);
        }

        return TestRunner::SUCCESS_EXIT;
    }

    /**
     * @throws \PHPUnit\Framework\Exception
     */
    private function handleListSuites(bool $exit): int
    {
        $this->printVersionString();

        print 'Available test suite(s):' . \PHP_EOL;

        $configuration = Configuration::getInstance(
            $this->arguments['configuration']
        );

        foreach ($configuration->getTestSuiteNames() as $suiteName) {
            \printf(
                ' - %s' . \PHP_EOL,
                $suiteName
            );
        }

        if ($exit) {
            exit(TestRunner::SUCCESS_EXIT);
        }

        return TestRunner::SUCCESS_EXIT;
    }

    /**
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    private function handleListTests(TestSuite $suite, bool $exit): int
    {
        $this->printVersionString();

        $renderer = new TextTestListRenderer;

        print $renderer->render($suite);

        if ($exit) {
            exit(TestRunner::SUCCESS_EXIT);
        }

        return TestRunner::SUCCESS_EXIT;
    }

    /**
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    private function handleListTestsXml(TestSuite $suite, string $target, bool $exit): int
    {
        $this->printVersionString();

        $renderer = new XmlTestListRenderer;

        \file_put_contents($target, $renderer->render($suite));

        \printf(
            'Wrote list of tests that would have been run to %s' . \PHP_EOL,
            $target
        );

        if ($exit) {
            exit(TestRunner::SUCCESS_EXIT);
        }

        return TestRunner::SUCCESS_EXIT;
    }

    private function handleOrderByOption(string $value): void
    {
        foreach (\explode(',', $value) as $order) {
            switch ($order) {
                case 'default':
                    $this->arguments['executionOrder']        = TestSuiteSorter::ORDER_DEFAULT;
                    $this->arguments['executionOrderDefects'] = TestSuiteSorter::ORDER_DEFAULT;
                    $this->arguments['resolveDependencies']   = true;

                    break;

                case 'defects':
                    $this->arguments['executionOrderDefects'] = TestSuiteSorter::ORDER_DEFECTS_FIRST;

                    break;

                case 'depends':
                    $this->arguments['resolveDependencies'] = true;

                    break;

                case 'duration':
                    $this->arguments['executionOrder'] = TestSuiteSorter::ORDER_DURATION;

                    break;

                case 'no-depends':
                    $this->arguments['resolveDependencies'] = false;

                    break;

                case 'random':
                    $this->arguments['executionOrder'] = TestSuiteSorter::ORDER_RANDOMIZED;

                    break;

                case 'reverse':
                    $this->arguments['executionOrder'] = TestSuiteSorter::ORDER_REVERSED;

                    break;

                default:
                    $this->exitWithErrorMessage("unrecognized --order-by option: $order");
            }
        }
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\TextUI;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class Exception extends \RuntimeException implements \PHPUnit\Exception
{
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Util;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class RegularExpression
{
    /**
     * @throws \Exception
     *
     * @return false|int
     */
    public static function safeMatch(string $pattern, string $subject, ?array $matches = null, int $flags = 0, int $offset = 0)
    {
        $handler_terminator = ErrorHandler::handleErrorOnce();
        $match              = \preg_match($pattern, $subject, $matches, $flags, $offset);
        $handler_terminator();

        return $match;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Util;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class Type
{
    public static function isType(string $type): bool
    {
        switch ($type) {
            case 'numeric':
            case 'integer':
            case 'int':
            case 'iterable':
            case 'float':
            case 'string':
            case 'boolean':
            case 'bool':
            case 'null':
            case 'array':
            case 'object':
            case 'resource':
            case 'scalar':
                return true;

            default:
                return false;
        }
    }

    public static function isCloneable(object $object): bool
    {
        try {
            $clone = clone $object;
        } catch (\Throwable $t) {
            return false;
        }

        return $clone instanceof $object;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Util;

use PHPUnit\Framework\Exception;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class Json
{
    /**
     * Prettify json string
     *
     * @throws \PHPUnit\Framework\Exception
     */
    public static function prettify(string $json): string
    {
        $decodedJson = \json_decode($json, true);

        if (\json_last_error()) {
            throw new Exception(
                'Cannot prettify invalid json'
            );
        }

        return \json_encode($decodedJson, \JSON_PRETTY_PRINT | \JSON_UNESCAPED_SLASHES);
    }

    /*
     * To allow comparison of JSON strings, first process them into a consistent
     * format so that they can be compared as strings.
     * @return array ($error, $canonicalized_json)  The $error parameter is used
     * to indicate an error decoding the json.  This is used to avoid ambiguity
     * with JSON strings consisting entirely of 'null' or 'false'.
     */
    public static function canonicalize(string $json): array
    {
        $decodedJson = \json_decode($json);

        if (\json_last_error()) {
            return [true, null];
        }

        self::recursiveSort($decodedJson);

        $reencodedJson = \json_encode($decodedJson);

        return [false, $reencodedJson];
    }

    /*
     * JSON object keys are unordered while PHP array keys are ordered.
     * Sort all array keys to ensure both the expected and actual values have
     * their keys in the same order.
     */
    private static function recursiveSort(&$json): void
    {
        if (!\is_array($json)) {
            // If the object is not empty, change it to an associative array
            // so we can sort the keys (and we will still re-encode it
            // correctly, since PHP encodes associative arrays as JSON objects.)
            // But EMPTY objects MUST remain empty objects. (Otherwise we will
            // re-encode it as a JSON array rather than a JSON object.)
            // See #2919.
            if (\is_object($json) && \count((array) $json) > 0) {
                $json = (array) $json;
            } else {
                return;
            }
        }

        \ksort($json);

        foreach ($json as $key => &$value) {
            self::recursiveSort($value);
        }
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Util;

use PHPUnit\Framework\Exception;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class FileLoader
{
    /**
     * Checks if a PHP sourcecode file is readable. The sourcecode file is loaded through the load() method.
     *
     * As a fallback, PHP looks in the directory of the file executing the stream_resolve_include_path function.
     * We do not want to load the Test.php file here, so skip it if it found that.
     * PHP prioritizes the include_path setting, so if the current directory is in there, it will first look in the
     * current working directory.
     *
     * @throws Exception
     */
    public static function checkAndLoad(string $filename): string
    {
        $includePathFilename = \stream_resolve_include_path($filename);

        if (!$includePathFilename) {
            throw new Exception(
                \sprintf('Cannot open file "%s".' . "\n", $filename)
            );
        }

        $localFile = __DIR__ . \DIRECTORY_SEPARATOR . $filename;

        if ($includePathFilename === $localFile || !self::isReadable($includePathFilename)) {
            throw new Exception(
                \sprintf('Cannot open file "%s".' . "\n", $filename)
            );
        }

        self::load($includePathFilename);

        return $includePathFilename;
    }

    /**
     * Loads a PHP sourcefile.
     */
    public static function load(string $filename): void
    {
        $oldVariableNames = \array_keys(\get_defined_vars());

        include_once $filename;

        $newVariables     = \get_defined_vars();

        foreach (\array_diff(\array_keys($newVariables), $oldVariableNames) as $variableName) {
            if ($variableName !== 'oldVariableNames') {
                $GLOBALS[$variableName] = $newVariables[$variableName];
            }
        }
    }

    /**
     * @see https://github.com/sebastianbergmann/phpunit/pull/2751
     */
    private static function isReadable(string $filename): bool
    {
        return @\fopen($filename, 'r') !== false;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Util;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class Filesystem
{
    /**
     * Maps class names to source file names:
     *   - PEAR CS:   Foo_Bar_Baz -> Foo/Bar/Baz.php
     *   - Namespace: Foo\Bar\Baz -> Foo/Bar/Baz.php
     */
    public static function classNameToFilename(string $className): string
    {
        return \str_replace(
            ['_', '\\'],
            \DIRECTORY_SEPARATOR,
            $className
        ) . '.php';
    }

    public static function createDirectory(string $directory): bool
    {
        return !(!\is_dir($directory) && !@\mkdir($directory, 0777, true) && !\is_dir($directory));
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Util;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class ConfigurationGenerator
{
    /**
     * @var string
     */
    private const TEMPLATE = <<<EOT
<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/{phpunit_version}/phpunit.xsd"
         bootstrap="{bootstrap_script}"
         executionOrder="depends,defects"
         forceCoversAnnotation="true"
         beStrictAboutCoversAnnotation="true"
         beStrictAboutOutputDuringTests="true"
         beStrictAboutTodoAnnotatedTests="true"
         verbose="true">
    <testsuites>
        <testsuite name="default">
            <directory suffix="Test.php">{tests_directory}</directory>
        </testsuite>
    </testsuites>

    <filter>
        <whitelist processUncoveredFilesFromWhitelist="true">
            <directory suffix=".php">{src_directory}</directory>
        </whitelist>
    </filter>
</phpunit>

EOT;

    public function generateDefaultConfiguration(string $phpunitVersion, string $bootstrapScript, string $testsDirectory, string $srcDirectory): string
    {
        return \str_replace(
            [
                '{phpunit_version}',
                '{bootstrap_script}',
                '{tests_directory}',
                '{src_directory}',
            ],
            [
                $phpunitVersion,
                $bootstrapScript,
                $testsDirectory,
                $srcDirectory,
            ],
            self::TEMPLATE
        );
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Util;

use Composer\Autoload\ClassLoader;
use DeepCopy\DeepCopy;
use Doctrine\Instantiator\Instantiator;
use PharIo\Manifest\Manifest;
use PharIo\Version\Version as PharIoVersion;
use PHP_Token;
use phpDocumentor\Reflection\DocBlock;
use phpDocumentor\Reflection\Project;
use phpDocumentor\Reflection\Type;
use PHPUnit\Framework\TestCase;
use Prophecy\Prophet;
use SebastianBergmann\CodeCoverage\CodeCoverage;
use SebastianBergmann\CodeUnitReverseLookup\Wizard;
use SebastianBergmann\Comparator\Comparator;
use SebastianBergmann\Diff\Diff;
use SebastianBergmann\Environment\Runtime;
use SebastianBergmann\Exporter\Exporter;
use SebastianBergmann\FileIterator\Facade as FileIteratorFacade;
use SebastianBergmann\GlobalState\Snapshot;
use SebastianBergmann\Invoker\Invoker;
use SebastianBergmann\ObjectEnumerator\Enumerator;
use SebastianBergmann\RecursionContext\Context;
use SebastianBergmann\ResourceOperations\ResourceOperations;
use SebastianBergmann\Timer\Timer;
use SebastianBergmann\Type\TypeName;
use SebastianBergmann\Version;
use Text_Template;
use TheSeer\Tokenizer\Tokenizer;
use Webmozart\Assert\Assert;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class Blacklist
{
    /**
     * @var array<string,int>
     */
    public static $blacklistedClassNames = [
        // composer
        ClassLoader::class => 1,

        // doctrine/instantiator
        Instantiator::class => 1,

        // myclabs/deepcopy
        DeepCopy::class => 1,

        // phar-io/manifest
        Manifest::class => 1,

        // phar-io/version
        PharIoVersion::class => 1,

        // phpdocumentor/reflection-common
        Project::class => 1,

        // phpdocumentor/reflection-docblock
        DocBlock::class => 1,

        // phpdocumentor/type-resolver
        Type::class => 1,

        // phpspec/prophecy
        Prophet::class => 1,

        // phpunit/phpunit
        TestCase::class => 2,

        // phpunit/php-code-coverage
        CodeCoverage::class => 1,

        // phpunit/php-file-iterator
        FileIteratorFacade::class => 1,

        // phpunit/php-invoker
        Invoker::class => 1,

        // phpunit/php-text-template
        Text_Template::class => 1,

        // phpunit/php-timer
        Timer::class => 1,

        // phpunit/php-token-stream
        PHP_Token::class => 1,

        // sebastian/code-unit-reverse-lookup
        Wizard::class => 1,

        // sebastian/comparator
        Comparator::class => 1,

        // sebastian/diff
        Diff::class => 1,

        // sebastian/environment
        Runtime::class => 1,

        // sebastian/exporter
        Exporter::class => 1,

        // sebastian/global-state
        Snapshot::class => 1,

        // sebastian/object-enumerator
        Enumerator::class => 1,

        // sebastian/recursion-context
        Context::class => 1,

        // sebastian/resource-operations
        ResourceOperations::class => 1,

        // sebastian/type
        TypeName::class => 1,

        // sebastian/version
        Version::class => 1,

        // theseer/tokenizer
        Tokenizer::class => 1,

        // webmozart/assert
        Assert::class => 1,
    ];

    /**
     * @var string[]
     */
    private static $directories;

    /**
     * @throws Exception
     *
     * @return string[]
     */
    public function getBlacklistedDirectories(): array
    {
        $this->initialize();

        return self::$directories;
    }

    /**
     * @throws Exception
     */
    public function isBlacklisted(string $file): bool
    {
        if (\defined('PHPUNIT_TESTSUITE')) {
            return false;
        }

        $this->initialize();

        foreach (self::$directories as $directory) {
            if (\strpos($file, $directory) === 0) {
                return true;
            }
        }

        return false;
    }

    /**
     * @throws Exception
     */
    private function initialize(): void
    {
        if (self::$directories === null) {
            self::$directories = [];

            foreach (self::$blacklistedClassNames as $className => $parent) {
                if (!\class_exists($className)) {
                    continue;
                }

                try {
                    $directory = (new \ReflectionClass($className))->getFileName();
                } catch (\ReflectionException $e) {
                    throw new Exception(
                        $e->getMessage(),
                        (int) $e->getCode(),
                        $e
                    );
                }

                for ($i = 0; $i < $parent; $i++) {
                    $directory = \dirname($directory);
                }

                self::$directories[] = $directory;
            }

            // Hide process isolation workaround on Windows.
            if (\DIRECTORY_SEPARATOR === '\\') {
                // tempnam() prefix is limited to first 3 chars.
                // @see https://php.net/manual/en/function.tempnam.php
                self::$directories[] = \sys_get_temp_dir() . '\\PHP';
            }
        }
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Util;

use PHPUnit\Framework\Exception;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class Getopt
{
    /**
     * @throws Exception
     */
    public static function getopt(array $args, string $short_options, array $long_options = null): array
    {
        if (empty($args)) {
            return [[], []];
        }

        $opts     = [];
        $non_opts = [];

        if ($long_options) {
            \sort($long_options);
        }

        if (isset($args[0][0]) && $args[0][0] !== '-') {
            \array_shift($args);
        }

        \reset($args);

        $args = \array_map('trim', $args);

        /* @noinspection ComparisonOperandsOrderInspection */
        while (false !== $arg = \current($args)) {
            $i = \key($args);
            \next($args);

            if ($arg === '') {
                continue;
            }

            if ($arg === '--') {
                $non_opts = \array_merge($non_opts, \array_slice($args, $i + 1));

                break;
            }

            if ($arg[0] !== '-' || (\strlen($arg) > 1 && $arg[1] === '-' && !$long_options)) {
                $non_opts[] = $args[$i];

                continue;
            }

            if (\strlen($arg) > 1 && $arg[1] === '-') {
                self::parseLongOption(
                    \substr($arg, 2),
                    $long_options,
                    $opts,
                    $args
                );
            } else {
                self::parseShortOption(
                    \substr($arg, 1),
                    $short_options,
                    $opts,
                    $args
                );
            }
        }

        return [$opts, $non_opts];
    }

    /**
     * @throws Exception
     */
    private static function parseShortOption(string $arg, string $short_options, array &$opts, array &$args): void
    {
        $argLen = \strlen($arg);

        for ($i = 0; $i < $argLen; $i++) {
            $opt     = $arg[$i];
            $opt_arg = null;

            if ($arg[$i] === ':' || ($spec = \strstr($short_options, $opt)) === false) {
                throw new Exception(
                    "unrecognized option -- $opt"
                );
            }

            if (\strlen($spec) > 1 && $spec[1] === ':') {
                if ($i + 1 < $argLen) {
                    $opts[] = [$opt, \substr($arg, $i + 1)];

                    break;
                }

                if (!(\strlen($spec) > 2 && $spec[2] === ':')) {
                    /* @noinspection ComparisonOperandsOrderInspection */
                    if (false === $opt_arg = \current($args)) {
                        throw new Exception(
                            "option requires an argument -- $opt"
                        );
                    }

                    \next($args);
                }
            }

            $opts[] = [$opt, $opt_arg];
        }
    }

    /**
     * @throws Exception
     */
    private static function parseLongOption(string $arg, array $long_options, array &$opts, array &$args): void
    {
        $count   = \count($long_options);
        $list    = \explode('=', $arg);
        $opt     = $list[0];
        $opt_arg = null;

        if (\count($list) > 1) {
            $opt_arg = $list[1];
        }

        $opt_len = \strlen($opt);

        foreach ($long_options as $i => $long_opt) {
            $opt_start = \substr($long_opt, 0, $opt_len);

            if ($opt_start !== $opt) {
                continue;
            }

            $opt_rest = \substr($long_opt, $opt_len);

            if ($opt_rest !== '' && $i + 1 < $count && $opt[0] !== '=' && \strpos($long_options[$i + 1], $opt) === 0) {
                throw new Exception(
                    "option --$opt is ambiguous"
                );
            }

            if (\substr($long_opt, -1) === '=') {
                /* @noinspection StrlenInEmptyStringCheckContextInspection */
                if (\substr($long_opt, -2) !== '==' && !\strlen((string) $opt_arg)) {
                    /* @noinspection ComparisonOperandsOrderInspection */
                    if (false === $opt_arg = \current($args)) {
                        throw new Exception(
                            "option --$opt requires an argument"
                        );
                    }

                    \next($args);
                }
            } elseif ($opt_arg) {
                throw new Exception(
                    "option --$opt doesn't allow an argument"
                );
            }

            $full_option = '--' . \preg_replace('/={1,2}$/', '', $long_opt);
            $opts[]      = [$full_option, $opt_arg];

            return;
        }

        throw new Exception("unrecognized option --$opt");
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Util;

use DOMCharacterData;
use DOMDocument;
use DOMElement;
use DOMNode;
use DOMText;
use PHPUnit\Framework\Exception;
use ReflectionClass;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class Xml
{
    public static function import(DOMElement $element): DOMElement
    {
        return (new DOMDocument)->importNode($element, true);
    }

    /**
     * Load an $actual document into a DOMDocument.  This is called
     * from the selector assertions.
     *
     * If $actual is already a DOMDocument, it is returned with
     * no changes.  Otherwise, $actual is loaded into a new DOMDocument
     * as either HTML or XML, depending on the value of $isHtml. If $isHtml is
     * false and $xinclude is true, xinclude is performed on the loaded
     * DOMDocument.
     *
     * Note: prior to PHPUnit 3.3.0, this method loaded a file and
     * not a string as it currently does.  To load a file into a
     * DOMDocument, use loadFile() instead.
     *
     * @param DOMDocument|string $actual
     *
     * @throws Exception
     */
    public static function load($actual, bool $isHtml = false, string $filename = '', bool $xinclude = false, bool $strict = false): DOMDocument
    {
        if ($actual instanceof DOMDocument) {
            return $actual;
        }

        if (!\is_string($actual)) {
            throw new Exception('Could not load XML from ' . \gettype($actual));
        }

        if ($actual === '') {
            throw new Exception('Could not load XML from empty string');
        }

        // Required for XInclude on Windows.
        if ($xinclude) {
            $cwd = \getcwd();
            @\chdir(\dirname($filename));
        }

        $document                     = new DOMDocument;
        $document->preserveWhiteSpace = false;

        $internal  = \libxml_use_internal_errors(true);
        $message   = '';
        $reporting = \error_reporting(0);

        if ($filename !== '') {
            // Required for XInclude
            $document->documentURI = $filename;
        }

        if ($isHtml) {
            $loaded = $document->loadHTML($actual);
        } else {
            $loaded = $document->loadXML($actual);
        }

        if (!$isHtml && $xinclude) {
            $document->xinclude();
        }

        foreach (\libxml_get_errors() as $error) {
            $message .= "\n" . $error->message;
        }

        \libxml_use_internal_errors($internal);
        \error_reporting($reporting);

        if (isset($cwd)) {
            @\chdir($cwd);
        }

        if ($loaded === false || ($strict && $message !== '')) {
            if ($filename !== '') {
                throw new Exception(
                    \sprintf(
                        'Could not load "%s".%s',
                        $filename,
                        $message !== '' ? "\n" . $message : ''
                    )
                );
            }

            if ($message === '') {
                $message = 'Could not load XML for unknown reason';
            }

            throw new Exception($message);
        }

        return $document;
    }

    /**
     * Loads an XML (or HTML) file into a DOMDocument object.
     *
     * @throws Exception
     */
    public static function loadFile(string $filename, bool $isHtml = false, bool $xinclude = false, bool $strict = false): DOMDocument
    {
        $reporting = \error_reporting(0);
        $contents  = \file_get_contents($filename);

        \error_reporting($reporting);

        if ($contents === false) {
            throw new Exception(
                \sprintf(
                    'Could not read "%s".',
                    $filename
                )
            );
        }

        return self::load($contents, $isHtml, $filename, $xinclude, $strict);
    }

    public static function removeCharacterDataNodes(DOMNode $node): void
    {
        if ($node->hasChildNodes()) {
            for ($i = $node->childNodes->length - 1; $i >= 0; $i--) {
                if (($child = $node->childNodes->item($i)) instanceof DOMCharacterData) {
                    $node->removeChild($child);
                }
            }
        }
    }

    /**
     * Escapes a string for the use in XML documents
     *
     * Any Unicode character is allowed, excluding the surrogate blocks, FFFE,
     * and FFFF (not even as character reference).
     *
     * @see https://www.w3.org/TR/xml/#charsets
     */
    public static function prepareString(string $string): string
    {
        return \preg_replace(
            '/[\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]/',
            '',
            \htmlspecialchars(
                self::convertToUtf8($string),
                \ENT_QUOTES
            )
        );
    }

    /**
     * "Convert" a DOMElement object into a PHP variable.
     */
    public static function xmlToVariable(DOMElement $element)
    {
        $variable = null;

        switch ($element->tagName) {
            case 'array':
                $variable = [];

                foreach ($element->childNodes as $entry) {
                    if (!$entry instanceof DOMElement || $entry->tagName !== 'element') {
                        continue;
                    }
                    $item = $entry->childNodes->item(0);

                    if ($item instanceof DOMText) {
                        $item = $entry->childNodes->item(1);
                    }

                    $value = self::xmlToVariable($item);

                    if ($entry->hasAttribute('key')) {
                        $variable[(string) $entry->getAttribute('key')] = $value;
                    } else {
                        $variable[] = $value;
                    }
                }

                break;

            case 'object':
                $className = $element->getAttribute('class');

                if ($element->hasChildNodes()) {
                    $arguments       = $element->childNodes->item(0)->childNodes;
                    $constructorArgs = [];

                    foreach ($arguments as $argument) {
                        if ($argument instanceof DOMElement) {
                            $constructorArgs[] = self::xmlToVariable($argument);
                        }
                    }

                    try {
                        $variable = (new ReflectionClass($className))->newInstanceArgs($constructorArgs);
                    } catch (\ReflectionException $e) {
                        throw new Exception(
                            $e->getMessage(),
                            (int) $e->getCode(),
                            $e
                        );
                    }
                } else {
                    $variable = new $className;
                }

                break;

            case 'boolean':
                $variable = $element->textContent === 'true';

                break;

            case 'integer':
            case 'double':
            case 'string':
                $variable = $element->textContent;

                \settype($variable, $element->tagName);

                break;
        }

        return $variable;
    }

    private static function convertToUtf8(string $string): string
    {
        if (!self::isUtf8($string)) {
            $string = \mb_convert_encoding($string, 'UTF-8');
        }

        return $string;
    }

    private static function isUtf8(string $string): bool
    {
        $length = \strlen($string);

        for ($i = 0; $i < $length; $i++) {
            if (\ord($string[$i]) < 0x80) {
                $n = 0;
            } elseif ((\ord($string[$i]) & 0xE0) === 0xC0) {
                $n = 1;
            } elseif ((\ord($string[$i]) & 0xF0) === 0xE0) {
                $n = 2;
            } elseif ((\ord($string[$i]) & 0xF0) === 0xF0) {
                $n = 3;
            } else {
                return false;
            }

            for ($j = 0; $j < $n; $j++) {
                if ((++$i === $length) || ((\ord($string[$i]) & 0xC0) !== 0x80)) {
                    return false;
                }
            }
        }

        return true;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Util;

use PHPUnit\Framework\Exception;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class InvalidArgumentHelper
{
    public static function factory(int $argument, string $type, $value = null): Exception
    {
        $stack = \debug_backtrace();

        return new Exception(
            \sprintf(
                'Argument #%d%sof %s::%s() must be a %s',
                $argument,
                $value !== null ? ' (' . \gettype($value) . '#' . $value . ')' : ' (No Value) ',
                $stack[1]['class'],
                $stack[1]['function'],
                $type
            )
        );
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Util;

use DOMElement;
use DOMXPath;
use PHPUnit\Framework\Exception;
use PHPUnit\Framework\TestSuite;
use PHPUnit\Runner\TestSuiteSorter;
use PHPUnit\TextUI\ResultPrinter;
use PHPUnit\Util\TestDox\CliTestDoxPrinter;
use SebastianBergmann\FileIterator\Facade as FileIteratorFacade;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class Configuration
{
    /**
     * @var self[]
     */
    private static $instances = [];

    /**
     * @var \DOMDocument
     */
    private $document;

    /**
     * @var DOMXPath
     */
    private $xpath;

    /**
     * @var string
     */
    private $filename;

    /**
     * @var \LibXMLError[]
     */
    private $errors = [];

    /**
     * Returns a PHPUnit configuration object.
     *
     * @throws Exception
     */
    public static function getInstance(string $filename): self
    {
        $realPath = \realpath($filename);

        if ($realPath === false) {
            throw new Exception(
                \sprintf(
                    'Could not read "%s".',
                    $filename
                )
            );
        }

        if (!isset(self::$instances[$realPath])) {
            self::$instances[$realPath] = new self($realPath);
        }

        return self::$instances[$realPath];
    }

    /**
     * Loads a PHPUnit configuration file.
     *
     * @throws Exception
     */
    private function __construct(string $filename)
    {
        $this->filename = $filename;
        $this->document = Xml::loadFile($filename, false, true, true);
        $this->xpath    = new DOMXPath($this->document);

        $this->validateConfigurationAgainstSchema();
    }

    /**
     * @codeCoverageIgnore
     */
    private function __clone()
    {
    }

    public function hasValidationErrors(): bool
    {
        return \count($this->errors) > 0;
    }

    public function getValidationErrors(): array
    {
        $result = [];

        foreach ($this->errors as $error) {
            if (!isset($result[$error->line])) {
                $result[$error->line] = [];
            }
            $result[$error->line][] = \trim($error->message);
        }

        return $result;
    }

    /**
     * Returns the real path to the configuration file.
     */
    public function getFilename(): string
    {
        return $this->filename;
    }

    public function getExtensionConfiguration(): array
    {
        $result = [];

        foreach ($this->xpath->query('extensions/extension') as $extension) {
            \assert($extension instanceof DOMElement);

            $class     = (string) $extension->getAttribute('class');
            $file      = '';
            $arguments = $this->getConfigurationArguments($extension->childNodes);

            if ($extension->getAttribute('file')) {
                $file = $this->toAbsolutePath(
                    (string) $extension->getAttribute('file'),
                    true
                );
            }
            $result[] = [
                'class'     => $class,
                'file'      => $file,
                'arguments' => $arguments,
            ];
        }

        return $result;
    }

    /**
     * Returns the configuration for SUT filtering.
     */
    public function getFilterConfiguration(): array
    {
        $addUncoveredFilesFromWhitelist     = true;
        $processUncoveredFilesFromWhitelist = false;
        $includeDirectory                   = [];
        $includeFile                        = [];
        $excludeDirectory                   = [];
        $excludeFile                        = [];

        $tmp = $this->xpath->query('filter/whitelist');

        if ($tmp->length === 1) {
            if ($tmp->item(0)->hasAttribute('addUncoveredFilesFromWhitelist')) {
                $addUncoveredFilesFromWhitelist = $this->getBoolean(
                    (string) $tmp->item(0)->getAttribute(
                        'addUncoveredFilesFromWhitelist'
                    ),
                    true
                );
            }

            if ($tmp->item(0)->hasAttribute('processUncoveredFilesFromWhitelist')) {
                $processUncoveredFilesFromWhitelist = $this->getBoolean(
                    (string) $tmp->item(0)->getAttribute(
                        'processUncoveredFilesFromWhitelist'
                    ),
                    false
                );
            }

            $includeDirectory = $this->readFilterDirectories(
                'filter/whitelist/directory'
            );

            $includeFile = $this->readFilterFiles(
                'filter/whitelist/file'
            );

            $excludeDirectory = $this->readFilterDirectories(
                'filter/whitelist/exclude/directory'
            );

            $excludeFile = $this->readFilterFiles(
                'filter/whitelist/exclude/file'
            );
        }

        return [
            'whitelist' => [
                'addUncoveredFilesFromWhitelist'     => $addUncoveredFilesFromWhitelist,
                'processUncoveredFilesFromWhitelist' => $processUncoveredFilesFromWhitelist,
                'include'                            => [
                    'directory' => $includeDirectory,
                    'file'      => $includeFile,
                ],
                'exclude' => [
                    'directory' => $excludeDirectory,
                    'file'      => $excludeFile,
                ],
            ],
        ];
    }

    /**
     * Returns the configuration for groups.
     */
    public function getGroupConfiguration(): array
    {
        return $this->parseGroupConfiguration('groups');
    }

    /**
     * Returns the configuration for testdox groups.
     */
    public function getTestdoxGroupConfiguration(): array
    {
        return $this->parseGroupConfiguration('testdoxGroups');
    }

    /**
     * Returns the configuration for listeners.
     */
    public function getListenerConfiguration(): array
    {
        $result = [];

        foreach ($this->xpath->query('listeners/listener') as $listener) {
            \assert($listener instanceof DOMElement);

            $class     = (string) $listener->getAttribute('class');
            $file      = '';
            $arguments = $this->getConfigurationArguments($listener->childNodes);

            if ($listener->getAttribute('file')) {
                $file = $this->toAbsolutePath(
                    (string) $listener->getAttribute('file'),
                    true
                );
            }

            $result[] = [
                'class'     => $class,
                'file'      => $file,
                'arguments' => $arguments,
            ];
        }

        return $result;
    }

    /**
     * Returns the logging configuration.
     */
    public function getLoggingConfiguration(): array
    {
        $result = [];

        foreach ($this->xpath->query('logging/log') as $log) {
            \assert($log instanceof DOMElement);

            $type   = (string) $log->getAttribute('type');
            $target = (string) $log->getAttribute('target');

            if (!$target) {
                continue;
            }

            $target = $this->toAbsolutePath($target);

            if ($type === 'coverage-html') {
                if ($log->hasAttribute('lowUpperBound')) {
                    $result['lowUpperBound'] = $this->getInteger(
                        (string) $log->getAttribute('lowUpperBound'),
                        50
                    );
                }

                if ($log->hasAttribute('highLowerBound')) {
                    $result['highLowerBound'] = $this->getInteger(
                        (string) $log->getAttribute('highLowerBound'),
                        90
                    );
                }
            } elseif ($type === 'coverage-crap4j') {
                if ($log->hasAttribute('threshold')) {
                    $result['crap4jThreshold'] = $this->getInteger(
                        (string) $log->getAttribute('threshold'),
                        30
                    );
                }
            } elseif ($type === 'coverage-text') {
                if ($log->hasAttribute('showUncoveredFiles')) {
                    $result['coverageTextShowUncoveredFiles'] = $this->getBoolean(
                        (string) $log->getAttribute('showUncoveredFiles'),
                        false
                    );
                }

                if ($log->hasAttribute('showOnlySummary')) {
                    $result['coverageTextShowOnlySummary'] = $this->getBoolean(
                        (string) $log->getAttribute('showOnlySummary'),
                        false
                    );
                }
            }

            $result[$type] = $target;
        }

        return $result;
    }

    /**
     * Returns the PHP configuration.
     */
    public function getPHPConfiguration(): array
    {
        $result = [
            'include_path' => [],
            'ini'          => [],
            'const'        => [],
            'var'          => [],
            'env'          => [],
            'post'         => [],
            'get'          => [],
            'cookie'       => [],
            'server'       => [],
            'files'        => [],
            'request'      => [],
        ];

        foreach ($this->xpath->query('php/includePath') as $includePath) {
            $path = (string) $includePath->textContent;

            if ($path) {
                $result['include_path'][] = $this->toAbsolutePath($path);
            }
        }

        foreach ($this->xpath->query('php/ini') as $ini) {
            \assert($ini instanceof DOMElement);

            $name  = (string) $ini->getAttribute('name');
            $value = (string) $ini->getAttribute('value');

            $result['ini'][$name]['value'] = $value;
        }

        foreach ($this->xpath->query('php/const') as $const) {
            \assert($const instanceof  DOMElement);

            $name  = (string) $const->getAttribute('name');
            $value = (string) $const->getAttribute('value');

            $result['const'][$name]['value'] = $this->getBoolean($value, $value);
        }

        foreach (['var', 'env', 'post', 'get', 'cookie', 'server', 'files', 'request'] as $array) {
            foreach ($this->xpath->query('php/' . $array) as $var) {
                \assert($var instanceof DOMElement);

                $name     = (string) $var->getAttribute('name');
                $value    = (string) $var->getAttribute('value');
                $verbatim = false;

                if ($var->hasAttribute('verbatim')) {
                    $verbatim                          = $this->getBoolean($var->getAttribute('verbatim'), false);
                    $result[$array][$name]['verbatim'] = $verbatim;
                }

                if ($var->hasAttribute('force')) {
                    $force                          = $this->getBoolean($var->getAttribute('force'), false);
                    $result[$array][$name]['force'] = $force;
                }

                if (!$verbatim) {
                    $value = $this->getBoolean($value, $value);
                }

                $result[$array][$name]['value'] = $value;
            }
        }

        return $result;
    }

    /**
     * Handles the PHP configuration.
     */
    public function handlePHPConfiguration(): void
    {
        $configuration = $this->getPHPConfiguration();

        if (!empty($configuration['include_path'])) {
            \ini_set(
                'include_path',
                \implode(\PATH_SEPARATOR, $configuration['include_path']) .
                \PATH_SEPARATOR .
                \ini_get('include_path')
            );
        }

        foreach ($configuration['ini'] as $name => $data) {
            $value = $data['value'];

            if (\defined($value)) {
                $value = (string) \constant($value);
            }

            \ini_set($name, $value);
        }

        foreach ($configuration['const'] as $name => $data) {
            $value = $data['value'];

            if (!\defined($name)) {
                \define($name, $value);
            }
        }

        foreach (['var', 'post', 'get', 'cookie', 'server', 'files', 'request'] as $array) {
            /*
             * @see https://github.com/sebastianbergmann/phpunit/issues/277
             */
            switch ($array) {
                case 'var':
                    $target = &$GLOBALS;

                    break;

                case 'server':
                    $target = &$_SERVER;

                    break;

                default:
                    $target = &$GLOBALS['_' . \strtoupper($array)];

                    break;
            }

            foreach ($configuration[$array] as $name => $data) {
                $target[$name] = $data['value'];
            }
        }

        foreach ($configuration['env'] as $name => $data) {
            $value = $data['value'];
            $force = $data['force'] ?? false;

            if ($force || \getenv($name) === false) {
                \putenv("{$name}={$value}");
            }

            $value = \getenv($name);

            if (!isset($_ENV[$name])) {
                $_ENV[$name] = $value;
            }

            if ($force) {
                $_ENV[$name] = $value;
            }
        }
    }

    /**
     * Returns the PHPUnit configuration.
     */
    public function getPHPUnitConfiguration(): array
    {
        $result = [];
        $root   = $this->document->documentElement;

        if ($root->hasAttribute('cacheTokens')) {
            $result['cacheTokens'] = $this->getBoolean(
                (string) $root->getAttribute('cacheTokens'),
                false
            );
        }

        if ($root->hasAttribute('columns')) {
            $columns = (string) $root->getAttribute('columns');

            if ($columns === 'max') {
                $result['columns'] = 'max';
            } else {
                $result['columns'] = $this->getInteger($columns, 80);
            }
        }

        if ($root->hasAttribute('colors')) {
            /* only allow boolean for compatibility with previous versions
              'always' only allowed from command line */
            if ($this->getBoolean($root->getAttribute('colors'), false)) {
                $result['colors'] = ResultPrinter::COLOR_AUTO;
            } else {
                $result['colors'] = ResultPrinter::COLOR_NEVER;
            }
        }

        /*
         * @see https://github.com/sebastianbergmann/phpunit/issues/657
         */
        if ($root->hasAttribute('stderr')) {
            $result['stderr'] = $this->getBoolean(
                (string) $root->getAttribute('stderr'),
                false
            );
        }

        if ($root->hasAttribute('backupGlobals')) {
            $result['backupGlobals'] = $this->getBoolean(
                (string) $root->getAttribute('backupGlobals'),
                false
            );
        }

        if ($root->hasAttribute('backupStaticAttributes')) {
            $result['backupStaticAttributes'] = $this->getBoolean(
                (string) $root->getAttribute('backupStaticAttributes'),
                false
            );
        }

        if ($root->getAttribute('bootstrap')) {
            $result['bootstrap'] = $this->toAbsolutePath(
                (string) $root->getAttribute('bootstrap')
            );
        }

        if ($root->hasAttribute('convertDeprecationsToExceptions')) {
            $result['convertDeprecationsToExceptions'] = $this->getBoolean(
                (string) $root->getAttribute('convertDeprecationsToExceptions'),
                true
            );
        }

        if ($root->hasAttribute('convertErrorsToExceptions')) {
            $result['convertErrorsToExceptions'] = $this->getBoolean(
                (string) $root->getAttribute('convertErrorsToExceptions'),
                true
            );
        }

        if ($root->hasAttribute('convertNoticesToExceptions')) {
            $result['convertNoticesToExceptions'] = $this->getBoolean(
                (string) $root->getAttribute('convertNoticesToExceptions'),
                true
            );
        }

        if ($root->hasAttribute('convertWarningsToExceptions')) {
            $result['convertWarningsToExceptions'] = $this->getBoolean(
                (string) $root->getAttribute('convertWarningsToExceptions'),
                true
            );
        }

        if ($root->hasAttribute('forceCoversAnnotation')) {
            $result['forceCoversAnnotation'] = $this->getBoolean(
                (string) $root->getAttribute('forceCoversAnnotation'),
                false
            );
        }

        if ($root->hasAttribute('disableCodeCoverageIgnore')) {
            $result['disableCodeCoverageIgnore'] = $this->getBoolean(
                (string) $root->getAttribute('disableCodeCoverageIgnore'),
                false
            );
        }

        if ($root->hasAttribute('processIsolation')) {
            $result['processIsolation'] = $this->getBoolean(
                (string) $root->getAttribute('processIsolation'),
                false
            );
        }

        if ($root->hasAttribute('stopOnDefect')) {
            $result['stopOnDefect'] = $this->getBoolean(
                (string) $root->getAttribute('stopOnDefect'),
                false
            );
        }

        if ($root->hasAttribute('stopOnError')) {
            $result['stopOnError'] = $this->getBoolean(
                (string) $root->getAttribute('stopOnError'),
                false
            );
        }

        if ($root->hasAttribute('stopOnFailure')) {
            $result['stopOnFailure'] = $this->getBoolean(
                (string) $root->getAttribute('stopOnFailure'),
                false
            );
        }

        if ($root->hasAttribute('stopOnWarning')) {
            $result['stopOnWarning'] = $this->getBoolean(
                (string) $root->getAttribute('stopOnWarning'),
                false
            );
        }

        if ($root->hasAttribute('stopOnIncomplete')) {
            $result['stopOnIncomplete'] = $this->getBoolean(
                (string) $root->getAttribute('stopOnIncomplete'),
                false
            );
        }

        if ($root->hasAttribute('stopOnRisky')) {
            $result['stopOnRisky'] = $this->getBoolean(
                (string) $root->getAttribute('stopOnRisky'),
                false
            );
        }

        if ($root->hasAttribute('stopOnSkipped')) {
            $result['stopOnSkipped'] = $this->getBoolean(
                (string) $root->getAttribute('stopOnSkipped'),
                false
            );
        }

        if ($root->hasAttribute('failOnWarning')) {
            $result['failOnWarning'] = $this->getBoolean(
                (string) $root->getAttribute('failOnWarning'),
                false
            );
        }

        if ($root->hasAttribute('failOnRisky')) {
            $result['failOnRisky'] = $this->getBoolean(
                (string) $root->getAttribute('failOnRisky'),
                false
            );
        }

        if ($root->hasAttribute('testSuiteLoaderClass')) {
            $result['testSuiteLoaderClass'] = (string) $root->getAttribute(
                'testSuiteLoaderClass'
            );
        }

        if ($root->hasAttribute('defaultTestSuite')) {
            $result['defaultTestSuite'] = (string) $root->getAttribute(
                'defaultTestSuite'
            );
        }

        if ($root->getAttribute('testSuiteLoaderFile')) {
            $result['testSuiteLoaderFile'] = $this->toAbsolutePath(
                (string) $root->getAttribute('testSuiteLoaderFile')
            );
        }

        if ($root->hasAttribute('printerClass')) {
            $result['printerClass'] = (string) $root->getAttribute(
                'printerClass'
            );
        }

        if ($root->getAttribute('printerFile')) {
            $result['printerFile'] = $this->toAbsolutePath(
                (string) $root->getAttribute('printerFile')
            );
        }

        if ($root->hasAttribute('beStrictAboutChangesToGlobalState')) {
            $result['beStrictAboutChangesToGlobalState'] = $this->getBoolean(
                (string) $root->getAttribute('beStrictAboutChangesToGlobalState'),
                false
            );
        }

        if ($root->hasAttribute('beStrictAboutOutputDuringTests')) {
            $result['disallowTestOutput'] = $this->getBoolean(
                (string) $root->getAttribute('beStrictAboutOutputDuringTests'),
                false
            );
        }

        if ($root->hasAttribute('beStrictAboutResourceUsageDuringSmallTests')) {
            $result['beStrictAboutResourceUsageDuringSmallTests'] = $this->getBoolean(
                (string) $root->getAttribute('beStrictAboutResourceUsageDuringSmallTests'),
                false
            );
        }

        if ($root->hasAttribute('beStrictAboutTestsThatDoNotTestAnything')) {
            $result['reportUselessTests'] = $this->getBoolean(
                (string) $root->getAttribute('beStrictAboutTestsThatDoNotTestAnything'),
                true
            );
        }

        if ($root->hasAttribute('beStrictAboutTodoAnnotatedTests')) {
            $result['disallowTodoAnnotatedTests'] = $this->getBoolean(
                (string) $root->getAttribute('beStrictAboutTodoAnnotatedTests'),
                false
            );
        }

        if ($root->hasAttribute('beStrictAboutCoversAnnotation')) {
            $result['strictCoverage'] = $this->getBoolean(
                (string) $root->getAttribute('beStrictAboutCoversAnnotation'),
                false
            );
        }

        if ($root->hasAttribute('defaultTimeLimit')) {
            $result['defaultTimeLimit'] = $this->getInteger(
                (string) $root->getAttribute('defaultTimeLimit'),
                1
            );
        }

        if ($root->hasAttribute('enforceTimeLimit')) {
            $result['enforceTimeLimit'] = $this->getBoolean(
                (string) $root->getAttribute('enforceTimeLimit'),
                false
            );
        }

        if ($root->hasAttribute('ignoreDeprecatedCodeUnitsFromCodeCoverage')) {
            $result['ignoreDeprecatedCodeUnitsFromCodeCoverage'] = $this->getBoolean(
                (string) $root->getAttribute('ignoreDeprecatedCodeUnitsFromCodeCoverage'),
                false
            );
        }

        if ($root->hasAttribute('timeoutForSmallTests')) {
            $result['timeoutForSmallTests'] = $this->getInteger(
                (string) $root->getAttribute('timeoutForSmallTests'),
                1
            );
        }

        if ($root->hasAttribute('timeoutForMediumTests')) {
            $result['timeoutForMediumTests'] = $this->getInteger(
                (string) $root->getAttribute('timeoutForMediumTests'),
                10
            );
        }

        if ($root->hasAttribute('timeoutForLargeTests')) {
            $result['timeoutForLargeTests'] = $this->getInteger(
                (string) $root->getAttribute('timeoutForLargeTests'),
                60
            );
        }

        if ($root->hasAttribute('reverseDefectList')) {
            $result['reverseDefectList'] = $this->getBoolean(
                (string) $root->getAttribute('reverseDefectList'),
                false
            );
        }

        if ($root->hasAttribute('verbose')) {
            $result['verbose'] = $this->getBoolean(
                (string) $root->getAttribute('verbose'),
                false
            );
        }

        if ($root->hasAttribute('testdox')) {
            $testdox = $this->getBoolean(
                (string) $root->getAttribute('testdox'),
                false
            );

            if ($testdox) {
                if (isset($result['printerClass'])) {
                    $result['conflictBetweenPrinterClassAndTestdox'] = true;
                } else {
                    $result['printerClass'] = CliTestDoxPrinter::class;
                }
            }
        }

        if ($root->hasAttribute('registerMockObjectsFromTestArgumentsRecursively')) {
            $result['registerMockObjectsFromTestArgumentsRecursively'] = $this->getBoolean(
                (string) $root->getAttribute('registerMockObjectsFromTestArgumentsRecursively'),
                false
            );
        }

        if ($root->hasAttribute('extensionsDirectory')) {
            $result['extensionsDirectory'] = $this->toAbsolutePath(
                (string) $root->getAttribute(
                    'extensionsDirectory'
                )
            );
        }

        if ($root->hasAttribute('cacheResult')) {
            $result['cacheResult'] = $this->getBoolean(
                (string) $root->getAttribute('cacheResult'),
                true
            );
        }

        if ($root->hasAttribute('cacheResultFile')) {
            $result['cacheResultFile'] = $this->toAbsolutePath(
                (string) $root->getAttribute('cacheResultFile')
            );
        }

        if ($root->hasAttribute('executionOrder')) {
            foreach (\explode(',', $root->getAttribute('executionOrder')) as $order) {
                switch ($order) {
                    case 'default':
                        $result['executionOrder']        = TestSuiteSorter::ORDER_DEFAULT;
                        $result['executionOrderDefects'] = TestSuiteSorter::ORDER_DEFAULT;
                        $result['resolveDependencies']   = false;

                        break;

                    case 'defects':
                        $result['executionOrderDefects'] = TestSuiteSorter::ORDER_DEFECTS_FIRST;

                        break;

                    case 'depends':
                        $result['resolveDependencies'] = true;

                        break;

                    case 'duration':
                        $result['executionOrder'] = TestSuiteSorter::ORDER_DURATION;

                        break;

                    case 'no-depends':
                        $result['resolveDependencies'] = false;

                        break;

                    case 'random':
                        $result['executionOrder'] = TestSuiteSorter::ORDER_RANDOMIZED;

                        break;

                    case 'reverse':
                        $result['executionOrder'] = TestSuiteSorter::ORDER_REVERSED;

                        break;
                }
            }
        }

        if ($root->hasAttribute('resolveDependencies')) {
            $result['resolveDependencies'] = $this->getBoolean(
                (string) $root->getAttribute('resolveDependencies'),
                false
            );
        }

        if ($root->hasAttribute('noInteraction')) {
            $result['noInteraction'] = $this->getBoolean(
                (string) $root->getAttribute('noInteraction'),
                false
            );
        }

        return $result;
    }

    /**
     * Returns the test suite configuration.
     *
     * @throws Exception
     */
    public function getTestSuiteConfiguration(string $testSuiteFilter = ''): TestSuite
    {
        $testSuiteNodes = $this->xpath->query('testsuites/testsuite');

        if ($testSuiteNodes->length === 0) {
            $testSuiteNodes = $this->xpath->query('testsuite');
        }

        if ($testSuiteNodes->length === 1) {
            return $this->getTestSuite($testSuiteNodes->item(0), $testSuiteFilter);
        }

        $suite = new TestSuite;

        foreach ($testSuiteNodes as $testSuiteNode) {
            $suite->addTestSuite(
                $this->getTestSuite($testSuiteNode, $testSuiteFilter)
            );
        }

        return $suite;
    }

    /**
     * Returns the test suite names from the configuration.
     */
    public function getTestSuiteNames(): array
    {
        $names = [];

        foreach ($this->xpath->query('*/testsuite') as $node) {
            /* @var DOMElement $node */
            $names[] = $node->getAttribute('name');
        }

        return $names;
    }

    private function validateConfigurationAgainstSchema(): void
    {
        $original    = \libxml_use_internal_errors(true);
        $xsdFilename = __DIR__ . '/../../phpunit.xsd';

        if (\defined('__PHPUNIT_PHAR_ROOT__')) {
            $xsdFilename =  __PHPUNIT_PHAR_ROOT__ . '/phpunit.xsd';
        }

        $this->document->schemaValidate($xsdFilename);
        $this->errors = \libxml_get_errors();
        \libxml_clear_errors();
        \libxml_use_internal_errors($original);
    }

    /**
     * Collects and returns the configuration arguments from the PHPUnit
     * XML configuration
     */
    private function getConfigurationArguments(\DOMNodeList $nodes): array
    {
        $arguments = [];

        if ($nodes->length === 0) {
            return $arguments;
        }

        foreach ($nodes as $node) {
            if (!$node instanceof DOMElement) {
                continue;
            }

            if ($node->tagName !== 'arguments') {
                continue;
            }

            foreach ($node->childNodes as $argument) {
                if (!$argument instanceof DOMElement) {
                    continue;
                }

                if ($argument->tagName === 'file' || $argument->tagName === 'directory') {
                    $arguments[] = $this->toAbsolutePath((string) $argument->textContent);
                } else {
                    $arguments[] = Xml::xmlToVariable($argument);
                }
            }
        }

        return $arguments;
    }

    /**
     * @throws \PHPUnit\Framework\Exception
     */
    private function getTestSuite(DOMElement $testSuiteNode, string $testSuiteFilter = ''): TestSuite
    {
        if ($testSuiteNode->hasAttribute('name')) {
            $suite = new TestSuite(
                (string) $testSuiteNode->getAttribute('name')
            );
        } else {
            $suite = new TestSuite;
        }

        $exclude = [];

        foreach ($testSuiteNode->getElementsByTagName('exclude') as $excludeNode) {
            $excludeFile = (string) $excludeNode->textContent;

            if ($excludeFile) {
                $exclude[] = $this->toAbsolutePath($excludeFile);
            }
        }

        $fileIteratorFacade = new FileIteratorFacade;
        $testSuiteFilter    = $testSuiteFilter ? \explode(',', $testSuiteFilter) : [];

        foreach ($testSuiteNode->getElementsByTagName('directory') as $directoryNode) {
            \assert($directoryNode instanceof DOMElement);

            if (!empty($testSuiteFilter) && !\in_array($directoryNode->parentNode->getAttribute('name'), $testSuiteFilter)) {
                continue;
            }

            $directory = (string) $directoryNode->textContent;

            if (empty($directory)) {
                continue;
            }

            $prefix = '';
            $suffix = 'Test.php';

            if (!$this->satisfiesPhpVersion($directoryNode)) {
                continue;
            }

            if ($directoryNode->hasAttribute('prefix')) {
                $prefix = (string) $directoryNode->getAttribute('prefix');
            }

            if ($directoryNode->hasAttribute('suffix')) {
                $suffix = (string) $directoryNode->getAttribute('suffix');
            }

            $files = $fileIteratorFacade->getFilesAsArray(
                $this->toAbsolutePath($directory),
                $suffix,
                $prefix,
                $exclude
            );

            $suite->addTestFiles($files);
        }

        foreach ($testSuiteNode->getElementsByTagName('file') as $fileNode) {
            \assert($fileNode instanceof DOMElement);

            if (!empty($testSuiteFilter) && !\in_array($fileNode->parentNode->getAttribute('name'), $testSuiteFilter)) {
                continue;
            }

            $file = (string) $fileNode->textContent;

            if (empty($file)) {
                continue;
            }

            $file = $fileIteratorFacade->getFilesAsArray(
                $this->toAbsolutePath($file)
            );

            if (!isset($file[0])) {
                continue;
            }

            $file = $file[0];

            if (!$this->satisfiesPhpVersion($fileNode)) {
                continue;
            }

            $suite->addTestFile($file);
        }

        return $suite;
    }

    private function satisfiesPhpVersion(DOMElement $node): bool
    {
        $phpVersion         = \PHP_VERSION;
        $phpVersionOperator = '>=';

        if ($node->hasAttribute('phpVersion')) {
            $phpVersion = (string) $node->getAttribute('phpVersion');
        }

        if ($node->hasAttribute('phpVersionOperator')) {
            $phpVersionOperator = (string) $node->getAttribute('phpVersionOperator');
        }

        return \version_compare(\PHP_VERSION, $phpVersion, $phpVersionOperator);
    }

    /**
     * if $value is 'false' or 'true', this returns the value that $value represents.
     * Otherwise, returns $default, which may be a string in rare cases.
     * See PHPUnit\Util\ConfigurationTest::testPHPConfigurationIsReadCorrectly
     *
     * @param bool|string $default
     *
     * @return bool|string
     */
    private function getBoolean(string $value, $default)
    {
        if (\strtolower($value) === 'false') {
            return false;
        }

        if (\strtolower($value) === 'true') {
            return true;
        }

        return $default;
    }

    private function getInteger(string $value, int $default): int
    {
        if (\is_numeric($value)) {
            return (int) $value;
        }

        return $default;
    }

    private function readFilterDirectories(string $query): array
    {
        $directories = [];

        foreach ($this->xpath->query($query) as $directoryNode) {
            \assert($directoryNode instanceof DOMElement);

            $directoryPath = (string) $directoryNode->textContent;

            if (!$directoryPath) {
                continue;
            }

            $prefix = '';
            $suffix = '.php';
            $group  = 'DEFAULT';

            if ($directoryNode->hasAttribute('prefix')) {
                $prefix = (string) $directoryNode->getAttribute('prefix');
            }

            if ($directoryNode->hasAttribute('suffix')) {
                $suffix = (string) $directoryNode->getAttribute('suffix');
            }

            if ($directoryNode->hasAttribute('group')) {
                $group = (string) $directoryNode->getAttribute('group');
            }

            $directories[] = [
                'path'   => $this->toAbsolutePath($directoryPath),
                'prefix' => $prefix,
                'suffix' => $suffix,
                'group'  => $group,
            ];
        }

        return $directories;
    }

    /**
     * @return string[]
     */
    private function readFilterFiles(string $query): array
    {
        $files = [];

        foreach ($this->xpath->query($query) as $file) {
            $filePath = (string) $file->textContent;

            if ($filePath) {
                $files[] = $this->toAbsolutePath($filePath);
            }
        }

        return $files;
    }

    private function toAbsolutePath(string $path, bool $useIncludePath = false): string
    {
        $path = \trim($path);

        if (\strpos($path, '/') === 0) {
            return $path;
        }

        // Matches the following on Windows:
        //  - \\NetworkComputer\Path
        //  - \\.\D:
        //  - \\.\c:
        //  - C:\Windows
        //  - C:\windows
        //  - C:/windows
        //  - c:/windows
        if (\defined('PHP_WINDOWS_VERSION_BUILD') &&
            ($path[0] === '\\' || (\strlen($path) >= 3 && \preg_match('#^[A-Z]\:[/\\\]#i', \substr($path, 0, 3))))) {
            return $path;
        }

        if (\strpos($path, '://') !== false) {
            return $path;
        }

        $file = \dirname($this->filename) . \DIRECTORY_SEPARATOR . $path;

        if ($useIncludePath && !\file_exists($file)) {
            $includePathFile = \stream_resolve_include_path($path);

            if ($includePathFile) {
                $file = $includePathFile;
            }
        }

        return $file;
    }

    private function parseGroupConfiguration(string $root): array
    {
        $groups = [
            'include' => [],
            'exclude' => [],
        ];

        foreach ($this->xpath->query($root . '/include/group') as $group) {
            $groups['include'][] = (string) $group->textContent;
        }

        foreach ($this->xpath->query($root . '/exclude/group') as $group) {
            $groups['exclude'][] = (string) $group->textContent;
        }

        return $groups;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
eval('?>' . \file_get_contents('php://stdin'));
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Util\PHP;

use PHPUnit\Framework\Exception;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 *
 * @see https://bugs.php.net/bug.php?id=51800
 */
final class WindowsPhpProcess extends DefaultPhpProcess
{
    public function getCommand(array $settings, string $file = null): string
    {
        return '"' . parent::getCommand($settings, $file) . '"';
    }

    /**
     * @throws Exception
     */
    protected function getHandles(): array
    {
        if (false === $stdout_handle = \tmpfile()) {
            throw new Exception(
                'A temporary file could not be created; verify that your TEMP environment variable is writable'
            );
        }

        return [
            1 => $stdout_handle,
        ];
    }

    protected function useTemporaryFile(): bool
    {
        return true;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Util\PHP;

use __PHP_Incomplete_Class;
use ErrorException;
use PHPUnit\Framework\Exception;
use PHPUnit\Framework\SyntheticError;
use PHPUnit\Framework\Test;
use PHPUnit\Framework\TestCase;
use PHPUnit\Framework\TestFailure;
use PHPUnit\Framework\TestResult;
use SebastianBergmann\Environment\Runtime;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
abstract class AbstractPhpProcess
{
    /**
     * @var Runtime
     */
    protected $runtime;

    /**
     * @var bool
     */
    protected $stderrRedirection = false;

    /**
     * @var string
     */
    protected $stdin = '';

    /**
     * @var string
     */
    protected $args = '';

    /**
     * @var array<string, string>
     */
    protected $env = [];

    /**
     * @var int
     */
    protected $timeout = 0;

    public static function factory(): self
    {
        if (\DIRECTORY_SEPARATOR === '\\') {
            return new WindowsPhpProcess;
        }

        return new DefaultPhpProcess;
    }

    public function __construct()
    {
        $this->runtime = new Runtime;
    }

    /**
     * Defines if should use STDERR redirection or not.
     *
     * Then $stderrRedirection is TRUE, STDERR is redirected to STDOUT.
     */
    public function setUseStderrRedirection(bool $stderrRedirection): void
    {
        $this->stderrRedirection = $stderrRedirection;
    }

    /**
     * Returns TRUE if uses STDERR redirection or FALSE if not.
     */
    public function useStderrRedirection(): bool
    {
        return $this->stderrRedirection;
    }

    /**
     * Sets the input string to be sent via STDIN
     */
    public function setStdin(string $stdin): void
    {
        $this->stdin = $stdin;
    }

    /**
     * Returns the input string to be sent via STDIN
     */
    public function getStdin(): string
    {
        return $this->stdin;
    }

    /**
     * Sets the string of arguments to pass to the php job
     */
    public function setArgs(string $args): void
    {
        $this->args = $args;
    }

    /**
     * Returns the string of arguments to pass to the php job
     */
    public function getArgs(): string
    {
        return $this->args;
    }

    /**
     * Sets the array of environment variables to start the child process with
     *
     * @param array<string, string> $env
     */
    public function setEnv(array $env): void
    {
        $this->env = $env;
    }

    /**
     * Returns the array of environment variables to start the child process with
     */
    public function getEnv(): array
    {
        return $this->env;
    }

    /**
     * Sets the amount of seconds to wait before timing out
     */
    public function setTimeout(int $timeout): void
    {
        $this->timeout = $timeout;
    }

    /**
     * Returns the amount of seconds to wait before timing out
     */
    public function getTimeout(): int
    {
        return $this->timeout;
    }

    /**
     * Runs a single test in a separate PHP process.
     *
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function runTestJob(string $job, Test $test, TestResult $result): void
    {
        $result->startTest($test);

        $_result = $this->runJob($job);

        $this->processChildResult(
            $test,
            $result,
            $_result['stdout'],
            $_result['stderr']
        );
    }

    /**
     * Returns the command based into the configurations.
     */
    public function getCommand(array $settings, string $file = null): string
    {
        $command = $this->runtime->getBinary();

        if ($this->runtime->hasPCOV()) {
            $settings = \array_merge(
                $settings,
                $this->runtime->getCurrentSettings(
                    \array_keys(\ini_get_all('pcov'))
                )
            );
        } elseif ($this->runtime->hasXdebug()) {
            $settings = \array_merge(
                $settings,
                $this->runtime->getCurrentSettings(
                    \array_keys(\ini_get_all('xdebug'))
                )
            );
        }

        $command .= $this->settingsToParameters($settings);

        if (\PHP_SAPI === 'phpdbg') {
            $command .= ' -qrr';

            if (!$file) {
                $command .= 's=';
            }
        }

        if ($file) {
            $command .= ' ' . \escapeshellarg($file);
        }

        if ($this->args) {
            if (!$file) {
                $command .= ' --';
            }
            $command .= ' ' . $this->args;
        }

        if ($this->stderrRedirection) {
            $command .= ' 2>&1';
        }

        return $command;
    }

    /**
     * Runs a single job (PHP code) using a separate PHP process.
     */
    abstract public function runJob(string $job, array $settings = []): array;

    protected function settingsToParameters(array $settings): string
    {
        $buffer = '';

        foreach ($settings as $setting) {
            $buffer .= ' -d ' . \escapeshellarg($setting);
        }

        return $buffer;
    }

    /**
     * Processes the TestResult object from an isolated process.
     *
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    private function processChildResult(Test $test, TestResult $result, string $stdout, string $stderr): void
    {
        $time = 0;

        if (!empty($stderr)) {
            $result->addError(
                $test,
                new Exception(\trim($stderr)),
                $time
            );
        } else {
            \set_error_handler(
                /**
                 * @throws ErrorException
                 */
                function ($errno, $errstr, $errfile, $errline): void {
                    throw new ErrorException($errstr, $errno, $errno, $errfile, $errline);
                }
            );

            try {
                if (\strpos($stdout, "#!/usr/bin/env php\n") === 0) {
                    $stdout = \substr($stdout, 19);
                }

                $childResult = \unserialize(\str_replace("#!/usr/bin/env php\n", '', $stdout));
                \restore_error_handler();
            } catch (ErrorException $e) {
                \restore_error_handler();
                $childResult = false;

                $result->addError(
                    $test,
                    new Exception(\trim($stdout), 0, $e),
                    $time
                );
            }

            if ($childResult !== false) {
                if (!empty($childResult['output'])) {
                    $output = $childResult['output'];
                }

                /* @var TestCase $test */

                $test->setResult($childResult['testResult']);
                $test->addToAssertionCount($childResult['numAssertions']);

                $childResult = $childResult['result'];
                \assert($childResult instanceof  TestResult);

                if ($result->getCollectCodeCoverageInformation()) {
                    $result->getCodeCoverage()->merge(
                        $childResult->getCodeCoverage()
                    );
                }

                $time           = $childResult->time();
                $notImplemented = $childResult->notImplemented();
                $risky          = $childResult->risky();
                $skipped        = $childResult->skipped();
                $errors         = $childResult->errors();
                $warnings       = $childResult->warnings();
                $failures       = $childResult->failures();

                if (!empty($notImplemented)) {
                    $result->addError(
                        $test,
                        $this->getException($notImplemented[0]),
                        $time
                    );
                } elseif (!empty($risky)) {
                    $result->addError(
                        $test,
                        $this->getException($risky[0]),
                        $time
                    );
                } elseif (!empty($skipped)) {
                    $result->addError(
                        $test,
                        $this->getException($skipped[0]),
                        $time
                    );
                } elseif (!empty($errors)) {
                    $result->addError(
                        $test,
                        $this->getException($errors[0]),
                        $time
                    );
                } elseif (!empty($warnings)) {
                    $result->addWarning(
                        $test,
                        $this->getException($warnings[0]),
                        $time
                    );
                } elseif (!empty($failures)) {
                    $result->addFailure(
                        $test,
                        $this->getException($failures[0]),
                        $time
                    );
                }
            }
        }

        $result->endTest($test, $time);

        if (!empty($output)) {
            print $output;
        }
    }

    /**
     * Gets the thrown exception from a PHPUnit\Framework\TestFailure.
     *
     * @see https://github.com/sebastianbergmann/phpunit/issues/74
     */
    private function getException(TestFailure $error): Exception
    {
        $exception = $error->thrownException();

        if ($exception instanceof __PHP_Incomplete_Class) {
            $exceptionArray = [];

            foreach ((array) $exception as $key => $value) {
                $key                  = \substr($key, \strrpos($key, "\0") + 1);
                $exceptionArray[$key] = $value;
            }

            $exception = new SyntheticError(
                \sprintf(
                    '%s: %s',
                    $exceptionArray['_PHP_Incomplete_Class_Name'],
                    $exceptionArray['message']
                ),
                $exceptionArray['code'],
                $exceptionArray['file'],
                $exceptionArray['line'],
                $exceptionArray['trace']
            );
        }

        return $exception;
    }
}
<?php
use SebastianBergmann\CodeCoverage\CodeCoverage;

$composerAutoload = {composerAutoload};
$phar             = {phar};

ob_start();

$GLOBALS['__PHPUNIT_ISOLATION_BLACKLIST'][] = '{job}';

if ($composerAutoload) {
    require_once $composerAutoload;
    define('PHPUNIT_COMPOSER_INSTALL', $composerAutoload);
} else if ($phar) {
    require $phar;
}

{globals}
$coverage = null;

if (isset($GLOBALS['__PHPUNIT_BOOTSTRAP'])) {
    require_once $GLOBALS['__PHPUNIT_BOOTSTRAP'];
}

if (class_exists('SebastianBergmann\CodeCoverage\CodeCoverage')) {
    $coverage =	new CodeCoverage(null);
    $coverage->start(__FILE__);
}

register_shutdown_function(function() use ($coverage) {
    $output = null;
    if ($coverage) {
        $output = $coverage->stop();
    }
    file_put_contents('{coverageFile}', serialize($output));
});

ob_end_clean();

require '{job}';
<?php
use SebastianBergmann\CodeCoverage\CodeCoverage;

if (!defined('STDOUT')) {
    // php://stdout does not obey output buffering. Any output would break
    // unserialization of child process results in the parent process.
    define('STDOUT', fopen('php://temp', 'w+b'));
    define('STDERR', fopen('php://stderr', 'wb'));
}

{iniSettings}
ini_set('display_errors', 'stderr');
set_include_path('{include_path}');

$composerAutoload = {composerAutoload};
$phar             = {phar};

ob_start();

if ($composerAutoload) {
    require_once $composerAutoload;
    define('PHPUNIT_COMPOSER_INSTALL', $composerAutoload);
} else if ($phar) {
    require $phar;
}

function __phpunit_run_isolated_test()
{
    if (!class_exists('{className}')) {
        require_once '{filename}';
    }

    $result = new PHPUnit\Framework\TestResult;

    if ({collectCodeCoverageInformation}) {
        $result->setCodeCoverage(
            new CodeCoverage(
                null,
                unserialize('{codeCoverageFilter}')
            )
        );
    }

    $result->beStrictAboutTestsThatDoNotTestAnything({isStrictAboutTestsThatDoNotTestAnything});
    $result->beStrictAboutOutputDuringTests({isStrictAboutOutputDuringTests});
    $result->enforceTimeLimit({enforcesTimeLimit});
    $result->beStrictAboutTodoAnnotatedTests({isStrictAboutTodoAnnotatedTests});
    $result->beStrictAboutResourceUsageDuringSmallTests({isStrictAboutResourceUsageDuringSmallTests});

    $test = new {className}('{name}', unserialize('{data}'), '{dataName}');
    $test->setDependencyInput(unserialize('{dependencyInput}'));
    $test->setInIsolation(TRUE);

    ob_end_clean();
    $test->run($result);
    $output = '';
    if (!$test->hasExpectationOnOutput()) {
        $output = $test->getActualOutput();
    }

    ini_set('xdebug.scream', '0');
    @rewind(STDOUT); /* @ as not every STDOUT target stream is rewindable */
    if ($stdout = stream_get_contents(STDOUT)) {
        $output = $stdout . $output;
        $streamMetaData = stream_get_meta_data(STDOUT);
        if (!empty($streamMetaData['stream_type']) && 'STDIO' === $streamMetaData['stream_type']) {
            @ftruncate(STDOUT, 0);
            @rewind(STDOUT);
        }
    }

    print serialize(
      [
        'testResult'    => $test->getResult(),
        'numAssertions' => $test->getNumAssertions(),
        'result'        => $result,
        'output'        => $output
      ]
    );
}

$configurationFilePath = '{configurationFilePath}';

if ('' !== $configurationFilePath) {
    $configuration = PHPUnit\Util\Configuration::getInstance($configurationFilePath);
    $configuration->handlePHPConfiguration();
    unset($configuration);
}

function __phpunit_error_handler($errno, $errstr, $errfile, $errline)
{
   return true;
}

set_error_handler('__phpunit_error_handler');

{constants}
{included_files}
{globals}

restore_error_handler();

if (isset($GLOBALS['__PHPUNIT_BOOTSTRAP'])) {
    require_once $GLOBALS['__PHPUNIT_BOOTSTRAP'];
    unset($GLOBALS['__PHPUNIT_BOOTSTRAP']);
}

__phpunit_run_isolated_test();
<?php
use PHPUnit\Framework\TestCase;
use SebastianBergmann\CodeCoverage\CodeCoverage;

if (!defined('STDOUT')) {
    // php://stdout does not obey output buffering. Any output would break
    // unserialization of child process results in the parent process.
    define('STDOUT', fopen('php://temp', 'w+b'));
    define('STDERR', fopen('php://stderr', 'wb'));
}

{iniSettings}
ini_set('display_errors', 'stderr');
set_include_path('{include_path}');

$composerAutoload = {composerAutoload};
$phar             = {phar};

ob_start();

if ($composerAutoload) {
    require_once $composerAutoload;
    define('PHPUNIT_COMPOSER_INSTALL', $composerAutoload);
} else if ($phar) {
    require $phar;
}

function __phpunit_run_isolated_test()
{
    if (!class_exists('{className}')) {
        require_once '{filename}';
    }

    $result = new PHPUnit\Framework\TestResult;

    if ({collectCodeCoverageInformation}) {
        $result->setCodeCoverage(
            new CodeCoverage(
                null,
                unserialize('{codeCoverageFilter}')
            )
        );
    }

    $result->beStrictAboutTestsThatDoNotTestAnything({isStrictAboutTestsThatDoNotTestAnything});
    $result->beStrictAboutOutputDuringTests({isStrictAboutOutputDuringTests});
    $result->enforceTimeLimit({enforcesTimeLimit});
    $result->beStrictAboutTodoAnnotatedTests({isStrictAboutTodoAnnotatedTests});
    $result->beStrictAboutResourceUsageDuringSmallTests({isStrictAboutResourceUsageDuringSmallTests});

    $test = new {className}('{methodName}', unserialize('{data}'), '{dataName}');
    \assert($test instanceof TestCase);

    $test->setDependencyInput(unserialize('{dependencyInput}'));
    $test->setInIsolation(TRUE);

    ob_end_clean();
    $test->run($result);
    $output = '';
    if (!$test->hasExpectationOnOutput()) {
        $output = $test->getActualOutput();
    }

    ini_set('xdebug.scream', '0');
    @rewind(STDOUT); /* @ as not every STDOUT target stream is rewindable */
    if ($stdout = stream_get_contents(STDOUT)) {
        $output = $stdout . $output;
        $streamMetaData = stream_get_meta_data(STDOUT);
        if (!empty($streamMetaData['stream_type']) && 'STDIO' === $streamMetaData['stream_type']) {
            @ftruncate(STDOUT, 0);
            @rewind(STDOUT);
        }
    }

    print serialize(
      [
        'testResult'    => $test->getResult(),
        'numAssertions' => $test->getNumAssertions(),
        'result'        => $result,
        'output'        => $output
      ]
    );
}

$configurationFilePath = '{configurationFilePath}';

if ('' !== $configurationFilePath) {
    $configuration = PHPUnit\Util\Configuration::getInstance($configurationFilePath);
    $configuration->handlePHPConfiguration();
    unset($configuration);
}

function __phpunit_error_handler($errno, $errstr, $errfile, $errline)
{
   return true;
}

set_error_handler('__phpunit_error_handler');

{constants}
{included_files}
{globals}

restore_error_handler();

if (isset($GLOBALS['__PHPUNIT_BOOTSTRAP'])) {
    require_once $GLOBALS['__PHPUNIT_BOOTSTRAP'];
    unset($GLOBALS['__PHPUNIT_BOOTSTRAP']);
}

__phpunit_run_isolated_test();
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Util\PHP;

use PHPUnit\Framework\Exception;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
class DefaultPhpProcess extends AbstractPhpProcess
{
    /**
     * @var string
     */
    protected $tempFile;

    /**
     * Runs a single job (PHP code) using a separate PHP process.
     *
     * @throws Exception
     */
    public function runJob(string $job, array $settings = []): array
    {
        if ($this->stdin || $this->useTemporaryFile()) {
            if (!($this->tempFile = \tempnam(\sys_get_temp_dir(), 'PHPUnit')) ||
                \file_put_contents($this->tempFile, $job) === false) {
                throw new Exception(
                    'Unable to write temporary file'
                );
            }

            $job = $this->stdin;
        }

        return $this->runProcess($job, $settings);
    }

    /**
     * Returns an array of file handles to be used in place of pipes
     */
    protected function getHandles(): array
    {
        return [];
    }

    /**
     * Handles creating the child process and returning the STDOUT and STDERR
     *
     * @throws Exception
     */
    protected function runProcess(string $job, array $settings): array
    {
        $handles = $this->getHandles();

        $env = null;

        if ($this->env) {
            $env = $_SERVER ?? [];
            unset($env['argv'], $env['argc']);
            $env = \array_merge($env, $this->env);

            foreach ($env as $envKey => $envVar) {
                if (\is_array($envVar)) {
                    unset($env[$envKey]);
                }
            }
        }

        $pipeSpec = [
            0 => $handles[0] ?? ['pipe', 'r'],
            1 => $handles[1] ?? ['pipe', 'w'],
            2 => $handles[2] ?? ['pipe', 'w'],
        ];

        $process = \proc_open(
            $this->getCommand($settings, $this->tempFile),
            $pipeSpec,
            $pipes,
            null,
            $env
        );

        if (!\is_resource($process)) {
            throw new Exception(
                'Unable to spawn worker process'
            );
        }

        if ($job) {
            $this->process($pipes[0], $job);
        }

        \fclose($pipes[0]);

        $stderr = $stdout = '';

        if ($this->timeout) {
            unset($pipes[0]);

            while (true) {
                $r = $pipes;
                $w = null;
                $e = null;

                $n = @\stream_select($r, $w, $e, $this->timeout);

                if ($n === false) {
                    break;
                }

                if ($n === 0) {
                    \proc_terminate($process, 9);

                    throw new Exception(
                        \sprintf(
                            'Job execution aborted after %d seconds',
                            $this->timeout
                        )
                    );
                }

                if ($n > 0) {
                    foreach ($r as $pipe) {
                        $pipeOffset = 0;

                        foreach ($pipes as $i => $origPipe) {
                            if ($pipe === $origPipe) {
                                $pipeOffset = $i;

                                break;
                            }
                        }

                        if (!$pipeOffset) {
                            break;
                        }

                        $line = \fread($pipe, 8192);

                        if ($line === '') {
                            \fclose($pipes[$pipeOffset]);

                            unset($pipes[$pipeOffset]);
                        } elseif ($pipeOffset === 1) {
                            $stdout .= $line;
                        } else {
                            $stderr .= $line;
                        }
                    }

                    if (empty($pipes)) {
                        break;
                    }
                }
            }
        } else {
            if (isset($pipes[1])) {
                $stdout = \stream_get_contents($pipes[1]);

                \fclose($pipes[1]);
            }

            if (isset($pipes[2])) {
                $stderr = \stream_get_contents($pipes[2]);

                \fclose($pipes[2]);
            }
        }

        if (isset($handles[1])) {
            \rewind($handles[1]);

            $stdout = \stream_get_contents($handles[1]);

            \fclose($handles[1]);
        }

        if (isset($handles[2])) {
            \rewind($handles[2]);

            $stderr = \stream_get_contents($handles[2]);

            \fclose($handles[2]);
        }

        \proc_close($process);

        $this->cleanup();

        return ['stdout' => $stdout, 'stderr' => $stderr];
    }

    protected function process($pipe, string $job): void
    {
        \fwrite($pipe, $job);
    }

    protected function cleanup(): void
    {
        if ($this->tempFile) {
            \unlink($this->tempFile);
        }
    }

    protected function useTemporaryFile(): bool
    {
        return false;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Util;

use PharIo\Version\VersionConstraintParser;
use PHPUnit\Framework\Assert;
use PHPUnit\Framework\CodeCoverageException;
use PHPUnit\Framework\InvalidCoversTargetException;
use PHPUnit\Framework\InvalidDataProviderException;
use PHPUnit\Framework\SelfDescribing;
use PHPUnit\Framework\SkippedTestError;
use PHPUnit\Framework\TestCase;
use PHPUnit\Framework\Warning;
use PHPUnit\Runner\Version;
use SebastianBergmann\Environment\OperatingSystem;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class Test
{
    /**
     * @var int
     */
    public const UNKNOWN = -1;

    /**
     * @var int
     */
    public const SMALL = 0;

    /**
     * @var int
     */
    public const MEDIUM = 1;

    /**
     * @var int
     */
    public const LARGE = 2;

    /**
     * @var string
     *
     * @todo This constant should be private (it's public because of TestTest::testGetProvidedDataRegEx)
     */
    public const REGEX_DATA_PROVIDER = '/@dataProvider\s+([a-zA-Z0-9._:-\\\\x7f-\xff]+)/';

    /**
     * @var string
     */
    private const REGEX_TEST_WITH = '/@testWith\s+/';

    /**
     * @var string
     */
    private const REGEX_EXPECTED_EXCEPTION = '(@expectedException\s+([:.\w\\\\x7f-\xff]+)(?:[\t ]+(\S*))?(?:[\t ]+(\S*))?\s*$)m';

    /**
     * @var string
     */
    private const REGEX_REQUIRES_VERSION = '/@requires\s+(?P<name>PHP(?:Unit)?)\s+(?P<operator>[<>=!]{0,2})\s*(?P<version>[\d\.-]+(dev|(RC|alpha|beta)[\d\.])?)[ \t]*\r?$/m';

    /**
     * @var string
     */
    private const REGEX_REQUIRES_VERSION_CONSTRAINT = '/@requires\s+(?P<name>PHP(?:Unit)?)\s+(?P<constraint>[\d\t \-.|~^]+)[ \t]*\r?$/m';

    /**
     * @var string
     */
    private const REGEX_REQUIRES_OS = '/@requires\s+(?P<name>OS(?:FAMILY)?)\s+(?P<value>.+?)[ \t]*\r?$/m';

    /**
     * @var string
     */
    private const REGEX_REQUIRES_SETTING = '/@requires\s+(?P<name>setting)\s+(?P<setting>([^ ]+?))\s*(?P<value>[\w\.-]+[\w\.]?)?[ \t]*\r?$/m';

    /**
     * @var string
     */
    private const REGEX_REQUIRES = '/@requires\s+(?P<name>function|extension)\s+(?P<value>([^\s<>=!]+))\s*(?P<operator>[<>=!]{0,2})\s*(?P<version>[\d\.-]+[\d\.]?)?[ \t]*\r?$/m';

    /**
     * @var array
     */
    private static $annotationCache = [];

    /**
     * @var array
     */
    private static $hookMethods = [];

    /**
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function describe(\PHPUnit\Framework\Test $test): array
    {
        if ($test instanceof TestCase) {
            return [\get_class($test), $test->getName()];
        }

        if ($test instanceof SelfDescribing) {
            return ['', $test->toString()];
        }

        return ['', \get_class($test)];
    }

    public static function describeAsString(\PHPUnit\Framework\Test $test): string
    {
        if ($test instanceof SelfDescribing) {
            return $test->toString();
        }

        return \get_class($test);
    }

    /**
     * @throws CodeCoverageException
     *
     * @return array|bool
     */
    public static function getLinesToBeCovered(string $className, string $methodName)
    {
        $annotations = self::parseTestMethodAnnotations(
            $className,
            $methodName
        );

        if (!self::shouldCoversAnnotationBeUsed($annotations)) {
            return false;
        }

        return self::getLinesToBeCoveredOrUsed($className, $methodName, 'covers');
    }

    /**
     * Returns lines of code specified with the @uses annotation.
     *
     * @throws CodeCoverageException
     */
    public static function getLinesToBeUsed(string $className, string $methodName): array
    {
        return self::getLinesToBeCoveredOrUsed($className, $methodName, 'uses');
    }

    public static function requiresCodeCoverageDataCollection(TestCase $test): bool
    {
        $annotations = $test->getAnnotations();

        // If there is no @covers annotation but a @coversNothing annotation on
        // the test method then code coverage data does not need to be collected
        if (isset($annotations['method']['coversNothing'])) {
            return false;
        }

        // If there is at least one @covers annotation then
        // code coverage data needs to be collected
        if (isset($annotations['method']['covers'])) {
            return true;
        }

        // If there is no @covers annotation but a @coversNothing annotation
        // then code coverage data does not need to be collected
        if (isset($annotations['class']['coversNothing'])) {
            return false;
        }

        // If there is no @coversNothing annotation then
        // code coverage data may be collected
        return true;
    }

    /**
     * @throws Exception
     */
    public static function getRequirements(string $className, string $methodName): array
    {
        try {
            $reflector = new \ReflectionClass($className);
        } catch (\ReflectionException $e) {
            throw new Exception(
                $e->getMessage(),
                (int) $e->getCode(),
                $e
            );
        }

        $requires   = [
            '__OFFSET' => [
                '__FILE' => \realpath($reflector->getFileName()),
            ],
        ];

        $requires = self::parseRequirements((string) $reflector->getDocComment(), $reflector->getStartLine(), $requires);

        try {
            $reflector = new \ReflectionMethod($className, $methodName);
        } catch (\ReflectionException $e) {
            throw new Exception(
                $e->getMessage(),
                (int) $e->getCode(),
                $e
            );
        }

        return self::parseRequirements((string) $reflector->getDocComment(), $reflector->getStartLine(), $requires);
    }

    public static function parseRequirements(string $docComment, int $offset = 0, array $requires = []): array
    {
        // Split docblock into lines and rewind offset to start of docblock
        $lines = \preg_split('/\r\n|\r|\n/', $docComment);
        $offset -= \count($lines);

        foreach ($lines as $line) {
            if (\preg_match(self::REGEX_REQUIRES_OS, $line, $matches)) {
                $requires[$matches['name']]             = $matches['value'];
                $requires['__OFFSET'][$matches['name']] = $offset;
            }

            if (\preg_match(self::REGEX_REQUIRES_VERSION, $line, $matches)) {
                $requires[$matches['name']] = [
                    'version'  => $matches['version'],
                    'operator' => $matches['operator'],
                ];
                $requires['__OFFSET'][$matches['name']] = $offset;
            }

            if (\preg_match(self::REGEX_REQUIRES_VERSION_CONSTRAINT, $line, $matches)) {
                if (!empty($requires[$matches['name']])) {
                    $offset++;

                    continue;
                }

                try {
                    $versionConstraintParser = new VersionConstraintParser;

                    $requires[$matches['name'] . '_constraint'] = [
                        'constraint' => $versionConstraintParser->parse(\trim($matches['constraint'])),
                    ];
                    $requires['__OFFSET'][$matches['name'] . '_constraint'] = $offset;
                } catch (\PharIo\Version\Exception $e) {
                    throw new Warning($e->getMessage(), $e->getCode(), $e);
                }
            }

            if (\preg_match(self::REGEX_REQUIRES_SETTING, $line, $matches)) {
                if (!isset($requires['setting'])) {
                    $requires['setting'] = [];
                }
                $requires['setting'][$matches['setting']]                 = $matches['value'];
                $requires['__OFFSET']['__SETTING_' . $matches['setting']] = $offset;
            }

            if (\preg_match(self::REGEX_REQUIRES, $line, $matches)) {
                $name = $matches['name'] . 's';

                if (!isset($requires[$name])) {
                    $requires[$name] = [];
                }

                $requires[$name][]                                                = $matches['value'];
                $requires['__OFFSET'][$matches['name'] . '_' . $matches['value']] = $offset;

                if ($name === 'extensions' && !empty($matches['version'])) {
                    $requires['extension_versions'][$matches['value']] = [
                        'version'  => $matches['version'],
                        'operator' => $matches['operator'],
                    ];
                }
            }

            $offset++;
        }

        return $requires;
    }

    /**
     * Returns the missing requirements for a test.
     *
     * @throws Warning
     */
    public static function getMissingRequirements(string $className, string $methodName): array
    {
        $required = static::getRequirements($className, $methodName);
        $missing  = [];
        $hint     = null;

        if (!empty($required['PHP'])) {
            $operator = empty($required['PHP']['operator']) ? '>=' : $required['PHP']['operator'];

            if (!\version_compare(\PHP_VERSION, $required['PHP']['version'], $operator)) {
                $missing[] = \sprintf('PHP %s %s is required.', $operator, $required['PHP']['version']);
                $hint      = $hint ?? 'PHP';
            }
        } elseif (!empty($required['PHP_constraint'])) {
            $version = new \PharIo\Version\Version(self::sanitizeVersionNumber(\PHP_VERSION));

            if (!$required['PHP_constraint']['constraint']->complies($version)) {
                $missing[] = \sprintf(
                    'PHP version does not match the required constraint %s.',
                    $required['PHP_constraint']['constraint']->asString()
                );
                $hint = $hint ?? 'PHP_constraint';
            }
        }

        if (!empty($required['PHPUnit'])) {
            $phpunitVersion = Version::id();

            $operator = empty($required['PHPUnit']['operator']) ? '>=' : $required['PHPUnit']['operator'];

            if (!\version_compare($phpunitVersion, $required['PHPUnit']['version'], $operator)) {
                $missing[] = \sprintf('PHPUnit %s %s is required.', $operator, $required['PHPUnit']['version']);
                $hint      = $hint ?? 'PHPUnit';
            }
        } elseif (!empty($required['PHPUnit_constraint'])) {
            $phpunitVersion = new \PharIo\Version\Version(self::sanitizeVersionNumber(Version::id()));

            if (!$required['PHPUnit_constraint']['constraint']->complies($phpunitVersion)) {
                $missing[] = \sprintf(
                    'PHPUnit version does not match the required constraint %s.',
                    $required['PHPUnit_constraint']['constraint']->asString()
                );
                $hint = $hint ?? 'PHPUnit_constraint';
            }
        }

        if (!empty($required['OSFAMILY']) && $required['OSFAMILY'] !== (new OperatingSystem)->getFamily()) {
            $missing[] = \sprintf('Operating system %s is required.', $required['OSFAMILY']);
            $hint      = $hint ?? 'OSFAMILY';
        }

        if (!empty($required['OS'])) {
            $requiredOsPattern = \sprintf('/%s/i', \addcslashes($required['OS'], '/'));

            if (!\preg_match($requiredOsPattern, \PHP_OS)) {
                $missing[] = \sprintf('Operating system matching %s is required.', $requiredOsPattern);
                $hint      = $hint ?? 'OS';
            }
        }

        if (!empty($required['functions'])) {
            foreach ($required['functions'] as $function) {
                $pieces = \explode('::', $function);

                if (\count($pieces) === 2 && \method_exists($pieces[0], $pieces[1])) {
                    continue;
                }

                if (\function_exists($function)) {
                    continue;
                }

                $missing[] = \sprintf('Function %s is required.', $function);
                $hint      = $hint ?? 'function_' . $function;
            }
        }

        if (!empty($required['setting'])) {
            foreach ($required['setting'] as $setting => $value) {
                if (\ini_get($setting) != $value) {
                    $missing[] = \sprintf('Setting "%s" must be "%s".', $setting, $value);
                    $hint      = $hint ?? '__SETTING_' . $setting;
                }
            }
        }

        if (!empty($required['extensions'])) {
            foreach ($required['extensions'] as $extension) {
                if (isset($required['extension_versions'][$extension])) {
                    continue;
                }

                if (!\extension_loaded($extension)) {
                    $missing[] = \sprintf('Extension %s is required.', $extension);
                    $hint      = $hint ?? 'extension_' . $extension;
                }
            }
        }

        if (!empty($required['extension_versions'])) {
            foreach ($required['extension_versions'] as $extension => $req) {
                $actualVersion = \phpversion($extension);

                $operator = empty($req['operator']) ? '>=' : $req['operator'];

                if ($actualVersion === false || !\version_compare($actualVersion, $req['version'], $operator)) {
                    $missing[] = \sprintf('Extension %s %s %s is required.', $extension, $operator, $req['version']);
                    $hint      = $hint ?? 'extension_' . $extension;
                }
            }
        }

        if ($hint && isset($required['__OFFSET'])) {
            \array_unshift($missing, '__OFFSET_FILE=' . $required['__OFFSET']['__FILE']);
            \array_unshift($missing, '__OFFSET_LINE=' . $required['__OFFSET'][$hint] ?? 1);
        }

        return $missing;
    }

    /**
     * Returns the expected exception for a test.
     *
     * @return array|false
     *
     * @deprecated
     * @codeCoverageIgnore
     */
    public static function getExpectedException(string $className, string $methodName)
    {
        try {
            $reflector = new \ReflectionMethod($className, $methodName);
        } catch (\ReflectionException $e) {
            throw new Exception(
                $e->getMessage(),
                (int) $e->getCode(),
                $e
            );
        }

        $docComment = (string) $reflector->getDocComment();
        $docComment = (string) \substr($docComment, 3, -2);

        if (\preg_match(self::REGEX_EXPECTED_EXCEPTION, $docComment, $matches)) {
            $annotations = self::parseTestMethodAnnotations(
                $className,
                $methodName
            );

            $class         = $matches[1];
            $code          = null;
            $message       = '';
            $messageRegExp = '';

            if (isset($matches[2])) {
                $message = \trim($matches[2]);
            } elseif (isset($annotations['method']['expectedExceptionMessage'])) {
                $message = self::parseAnnotationContent(
                    $annotations['method']['expectedExceptionMessage'][0]
                );
            }

            if (isset($annotations['method']['expectedExceptionMessageRegExp'])) {
                $messageRegExp = self::parseAnnotationContent(
                    $annotations['method']['expectedExceptionMessageRegExp'][0]
                );
            }

            if (isset($matches[3])) {
                $code = $matches[3];
            } elseif (isset($annotations['method']['expectedExceptionCode'])) {
                $code = self::parseAnnotationContent(
                    $annotations['method']['expectedExceptionCode'][0]
                );
            }

            if (\is_numeric($code)) {
                $code = (int) $code;
            } elseif (\is_string($code) && \defined($code)) {
                $code = (int) \constant($code);
            }

            return [
                'class' => $class, 'code' => $code, 'message' => $message, 'message_regex' => $messageRegExp,
            ];
        }

        return false;
    }

    /**
     * Returns the provided data for a method.
     *
     * @throws Exception
     */
    public static function getProvidedData(string $className, string $methodName): ?array
    {
        try {
            $reflector = new \ReflectionMethod($className, $methodName);
        } catch (\ReflectionException $e) {
            throw new Exception(
                $e->getMessage(),
                (int) $e->getCode(),
                $e
            );
        }

        $docComment = (string) $reflector->getDocComment();

        $data = self::getDataFromDataProviderAnnotation($docComment, $className, $methodName);

        if ($data === null) {
            $data = self::getDataFromTestWithAnnotation($docComment);
        }

        if ($data === []) {
            throw new SkippedTestError;
        }

        if ($data !== null) {
            foreach ($data as $key => $value) {
                if (!\is_array($value)) {
                    throw new Exception(
                        \sprintf(
                            'Data set %s is invalid.',
                            \is_int($key) ? '#' . $key : '"' . $key . '"'
                        )
                    );
                }
            }
        }

        return $data;
    }

    /**
     * @throws Exception
     */
    public static function getDataFromTestWithAnnotation(string $docComment): ?array
    {
        $docComment = self::cleanUpMultiLineAnnotation($docComment);

        if (\preg_match(self::REGEX_TEST_WITH, $docComment, $matches, \PREG_OFFSET_CAPTURE)) {
            $offset            = \strlen($matches[0][0]) + $matches[0][1];
            $annotationContent = \substr($docComment, $offset);
            $data              = [];

            foreach (\explode("\n", $annotationContent) as $candidateRow) {
                $candidateRow = \trim($candidateRow);

                if ($candidateRow[0] !== '[') {
                    break;
                }

                $dataSet = \json_decode($candidateRow, true);

                if (\json_last_error() !== \JSON_ERROR_NONE) {
                    throw new Exception(
                        'The data set for the @testWith annotation cannot be parsed: ' . \json_last_error_msg()
                    );
                }

                $data[] = $dataSet;
            }

            if (!$data) {
                throw new Exception('The data set for the @testWith annotation cannot be parsed.');
            }

            return $data;
        }

        return null;
    }

    public static function parseTestMethodAnnotations(string $className, ?string $methodName = ''): array
    {
        if (!isset(self::$annotationCache[$className])) {
            try {
                $class = new \ReflectionClass($className);
            } catch (\ReflectionException $e) {
                throw new Exception(
                    $e->getMessage(),
                    (int) $e->getCode(),
                    $e
                );
            }

            $traits      = $class->getTraits();
            $annotations = [];

            foreach ($traits as $trait) {
                $annotations = \array_merge(
                    $annotations,
                    self::parseAnnotations((string) $trait->getDocComment())
                );
            }

            self::$annotationCache[$className] = \array_merge(
                $annotations,
                self::parseAnnotations((string) $class->getDocComment())
            );
        }

        $cacheKey = $className . '::' . $methodName;

        if ($methodName !== null && !isset(self::$annotationCache[$cacheKey])) {
            try {
                $method      = new \ReflectionMethod($className, $methodName);
                $annotations = self::parseAnnotations((string) $method->getDocComment());
            } catch (\ReflectionException $e) {
                $annotations = [];
            }

            self::$annotationCache[$cacheKey] = $annotations;
        }

        return [
            'class'  => self::$annotationCache[$className],
            'method' => $methodName !== null ? self::$annotationCache[$cacheKey] : [],
        ];
    }

    public static function getInlineAnnotations(string $className, string $methodName): array
    {
        try {
            $method = new \ReflectionMethod($className, $methodName);
        } catch (\ReflectionException $e) {
            throw new Exception(
                $e->getMessage(),
                (int) $e->getCode(),
                $e
            );
        }

        $code        = \file($method->getFileName());
        $lineNumber  = $method->getStartLine();
        $startLine   = $method->getStartLine() - 1;
        $endLine     = $method->getEndLine() - 1;
        $methodLines = \array_slice($code, $startLine, $endLine - $startLine + 1);
        $annotations = [];

        foreach ($methodLines as $line) {
            if (\preg_match('#/\*\*?\s*@(?P<name>[A-Za-z_-]+)(?:[ \t]+(?P<value>.*?))?[ \t]*\r?\*/$#m', $line, $matches)) {
                $annotations[\strtolower($matches['name'])] = [
                    'line'  => $lineNumber,
                    'value' => $matches['value'],
                ];
            }

            $lineNumber++;
        }

        return $annotations;
    }

    public static function parseAnnotations(string $docBlock): array
    {
        $annotations = [];
        // Strip away the docblock header and footer to ease parsing of one line annotations
        $docBlock = (string) \substr($docBlock, 3, -2);

        if (\preg_match_all('/@(?P<name>[A-Za-z_-]+)(?:[ \t]+(?P<value>.*?))?[ \t]*\r?$/m', $docBlock, $matches)) {
            $numMatches = \count($matches[0]);

            for ($i = 0; $i < $numMatches; ++$i) {
                $annotations[$matches['name'][$i]][] = (string) $matches['value'][$i];
            }
        }

        return $annotations;
    }

    public static function getBackupSettings(string $className, string $methodName): array
    {
        return [
            'backupGlobals' => self::getBooleanAnnotationSetting(
                $className,
                $methodName,
                'backupGlobals'
            ),
            'backupStaticAttributes' => self::getBooleanAnnotationSetting(
                $className,
                $methodName,
                'backupStaticAttributes'
            ),
        ];
    }

    public static function getDependencies(string $className, string $methodName): array
    {
        $annotations = self::parseTestMethodAnnotations(
            $className,
            $methodName
        );

        $dependencies = $annotations['class']['depends'] ?? [];

        if (isset($annotations['method']['depends'])) {
            $dependencies = \array_merge(
                $dependencies,
                $annotations['method']['depends']
            );
        }

        return \array_unique($dependencies);
    }

    public static function getErrorHandlerSettings(string $className, ?string $methodName): ?bool
    {
        return self::getBooleanAnnotationSetting(
            $className,
            $methodName,
            'errorHandler'
        );
    }

    public static function getGroups(string $className, ?string $methodName = ''): array
    {
        $annotations = self::parseTestMethodAnnotations(
            $className,
            $methodName
        );

        $groups = [];

        if (isset($annotations['method']['author'])) {
            $groups = $annotations['method']['author'];
        } elseif (isset($annotations['class']['author'])) {
            $groups = $annotations['class']['author'];
        }

        if (isset($annotations['class']['group'])) {
            $groups = \array_merge($groups, $annotations['class']['group']);
        }

        if (isset($annotations['method']['group'])) {
            $groups = \array_merge($groups, $annotations['method']['group']);
        }

        if (isset($annotations['class']['ticket'])) {
            $groups = \array_merge($groups, $annotations['class']['ticket']);
        }

        if (isset($annotations['method']['ticket'])) {
            $groups = \array_merge($groups, $annotations['method']['ticket']);
        }

        foreach (['method', 'class'] as $element) {
            foreach (['small', 'medium', 'large'] as $size) {
                if (isset($annotations[$element][$size])) {
                    $groups[] = $size;

                    break 2;
                }
            }
        }

        return \array_unique($groups);
    }

    public static function getSize(string $className, ?string $methodName): int
    {
        $groups = \array_flip(self::getGroups($className, $methodName));

        if (isset($groups['large'])) {
            return self::LARGE;
        }

        if (isset($groups['medium'])) {
            return self::MEDIUM;
        }

        if (isset($groups['small'])) {
            return self::SMALL;
        }

        return self::UNKNOWN;
    }

    public static function getProcessIsolationSettings(string $className, string $methodName): bool
    {
        $annotations = self::parseTestMethodAnnotations(
            $className,
            $methodName
        );

        return isset($annotations['class']['runTestsInSeparateProcesses']) || isset($annotations['method']['runInSeparateProcess']);
    }

    public static function getClassProcessIsolationSettings(string $className, string $methodName): bool
    {
        $annotations = self::parseTestMethodAnnotations(
            $className,
            $methodName
        );

        return isset($annotations['class']['runClassInSeparateProcess']);
    }

    public static function getPreserveGlobalStateSettings(string $className, string $methodName): ?bool
    {
        return self::getBooleanAnnotationSetting(
            $className,
            $methodName,
            'preserveGlobalState'
        );
    }

    public static function getHookMethods(string $className): array
    {
        if (!\class_exists($className, false)) {
            return self::emptyHookMethodsArray();
        }

        if (!isset(self::$hookMethods[$className])) {
            self::$hookMethods[$className] = self::emptyHookMethodsArray();

            try {
                foreach ((new \ReflectionClass($className))->getMethods() as $method) {
                    if ($method->getDeclaringClass()->getName() === Assert::class) {
                        continue;
                    }

                    if ($method->getDeclaringClass()->getName() === TestCase::class) {
                        continue;
                    }

                    $methodComment = $method->getDocComment();

                    if ($methodComment) {
                        if ($method->isStatic()) {
                            if (\strpos($methodComment, '@beforeClass') !== false) {
                                \array_unshift(
                                    self::$hookMethods[$className]['beforeClass'],
                                    $method->getName()
                                );
                            }

                            if (\strpos($methodComment, '@afterClass') !== false) {
                                self::$hookMethods[$className]['afterClass'][] = $method->getName();
                            }
                        }

                        if (\preg_match('/@before\b/', $methodComment) > 0) {
                            \array_unshift(
                                self::$hookMethods[$className]['before'],
                                $method->getName()
                            );
                        }

                        if (\preg_match('/@after\b/', $methodComment) > 0) {
                            self::$hookMethods[$className]['after'][] = $method->getName();
                        }
                    }
                }
            } catch (\ReflectionException $e) {
            }
        }

        return self::$hookMethods[$className];
    }

    public static function isTestMethod(\ReflectionMethod $method): bool
    {
        if (\strpos($method->getName(), 'test') === 0) {
            return true;
        }

        $annotations = self::parseAnnotations((string) $method->getDocComment());

        return isset($annotations['test']);
    }

    /**
     * @throws CodeCoverageException
     */
    private static function getLinesToBeCoveredOrUsed(string $className, string $methodName, string $mode): array
    {
        $annotations = self::parseTestMethodAnnotations(
            $className,
            $methodName
        );

        $classShortcut = null;

        if (!empty($annotations['class'][$mode . 'DefaultClass'])) {
            if (\count($annotations['class'][$mode . 'DefaultClass']) > 1) {
                throw new CodeCoverageException(
                    \sprintf(
                        'More than one @%sClass annotation in class or interface "%s".',
                        $mode,
                        $className
                    )
                );
            }

            $classShortcut = $annotations['class'][$mode . 'DefaultClass'][0];
        }

        $list = $annotations['class'][$mode] ?? [];

        if (isset($annotations['method'][$mode])) {
            $list = \array_merge($list, $annotations['method'][$mode]);
        }

        $codeList = [];

        foreach (\array_unique($list) as $element) {
            if ($classShortcut && \strncmp($element, '::', 2) === 0) {
                $element = $classShortcut . $element;
            }

            $element = \preg_replace('/[\s()]+$/', '', $element);
            $element = \explode(' ', $element);
            $element = $element[0];

            if ($mode === 'covers' && \interface_exists($element)) {
                throw new InvalidCoversTargetException(
                    \sprintf(
                        'Trying to @cover interface "%s".',
                        $element
                    )
                );
            }

            $codeList = \array_merge(
                $codeList,
                self::resolveElementToReflectionObjects($element)
            );
        }

        return self::resolveReflectionObjectsToLines($codeList);
    }

    /**
     * Parse annotation content to use constant/class constant values
     *
     * Constants are specified using a starting '@'. For example: @ClassName::CONST_NAME
     *
     * If the constant is not found the string is used as is to ensure maximum BC.
     */
    private static function parseAnnotationContent(string $message): string
    {
        if (\defined($message) && (\strpos($message, '::') !== false && \substr_count($message, '::') + 1 === 2)) {
            $message = \constant($message);
        }

        return $message;
    }

    /**
     * @throws InvalidDataProviderException
     */
    private static function getDataFromDataProviderAnnotation(string $docComment, string $className, string $methodName): ?iterable
    {
        if (\preg_match_all(self::REGEX_DATA_PROVIDER, $docComment, $matches)) {
            $result = [];

            foreach ($matches[1] as $match) {
                $dataProviderMethodNameNamespace = \explode('\\', $match);
                $leaf                            = \explode('::', \array_pop($dataProviderMethodNameNamespace));
                $dataProviderMethodName          = \array_pop($leaf);

                if (empty($dataProviderMethodNameNamespace)) {
                    $dataProviderMethodNameNamespace = '';
                } else {
                    $dataProviderMethodNameNamespace = \implode('\\', $dataProviderMethodNameNamespace) . '\\';
                }

                if (empty($leaf)) {
                    $dataProviderClassName = $className;
                } else {
                    $dataProviderClassName = $dataProviderMethodNameNamespace . \array_pop($leaf);
                }

                try {
                    $dataProviderClass = new \ReflectionClass($dataProviderClassName);

                    $dataProviderMethod = $dataProviderClass->getMethod(
                        $dataProviderMethodName
                    );
                } catch (\ReflectionException $e) {
                    throw new Exception(
                        $e->getMessage(),
                        (int) $e->getCode(),
                        $e
                    );
                }

                if ($dataProviderMethod->isStatic()) {
                    $object = null;
                } else {
                    $object = $dataProviderClass->newInstance();
                }

                if ($dataProviderMethod->getNumberOfParameters() === 0) {
                    $data = $dataProviderMethod->invoke($object);
                } else {
                    $data = $dataProviderMethod->invoke($object, $methodName);
                }

                if ($data instanceof \Traversable) {
                    $origData = $data;
                    $data     = [];

                    foreach ($origData as $key => $value) {
                        if (\is_int($key)) {
                            $data[] = $value;
                        } elseif (\array_key_exists($key, $data)) {
                            throw new InvalidDataProviderException(
                                \sprintf(
                                    'The key "%s" has already been defined in the data provider "%s".',
                                    $key,
                                    $match
                                )
                            );
                        } else {
                            $data[$key] = $value;
                        }
                    }
                }

                if (\is_array($data)) {
                    $result = \array_merge($result, $data);
                }
            }

            return $result;
        }

        return null;
    }

    private static function cleanUpMultiLineAnnotation(string $docComment): string
    {
        //removing initial '   * ' for docComment
        $docComment = \str_replace("\r\n", "\n", $docComment);
        $docComment = \preg_replace('/' . '\n' . '\s*' . '\*' . '\s?' . '/', "\n", $docComment);
        $docComment = (string) \substr($docComment, 0, -1);

        return \rtrim($docComment, "\n");
    }

    private static function emptyHookMethodsArray(): array
    {
        return [
            'beforeClass' => ['setUpBeforeClass'],
            'before'      => ['setUp'],
            'after'       => ['tearDown'],
            'afterClass'  => ['tearDownAfterClass'],
        ];
    }

    private static function getBooleanAnnotationSetting(string $className, ?string $methodName, string $settingName): ?bool
    {
        $annotations = self::parseTestMethodAnnotations(
            $className,
            $methodName
        );

        if (isset($annotations['method'][$settingName])) {
            if ($annotations['method'][$settingName][0] === 'enabled') {
                return true;
            }

            if ($annotations['method'][$settingName][0] === 'disabled') {
                return false;
            }
        }

        if (isset($annotations['class'][$settingName])) {
            if ($annotations['class'][$settingName][0] === 'enabled') {
                return true;
            }

            if ($annotations['class'][$settingName][0] === 'disabled') {
                return false;
            }
        }

        return null;
    }

    /**
     * @throws InvalidCoversTargetException
     */
    private static function resolveElementToReflectionObjects(string $element): array
    {
        $codeToCoverList = [];

        if (\function_exists($element) && \strpos($element, '\\') !== false) {
            try {
                $codeToCoverList[] = new \ReflectionFunction($element);
            } catch (\ReflectionException $e) {
                throw new Exception(
                    $e->getMessage(),
                    (int) $e->getCode(),
                    $e
                );
            }
        } elseif (\strpos($element, '::') !== false) {
            [$className, $methodName] = \explode('::', $element);

            if (isset($methodName[0]) && $methodName[0] === '<') {
                $classes = [$className];

                foreach ($classes as $className) {
                    if (!\class_exists($className) &&
                        !\interface_exists($className) &&
                        !\trait_exists($className)) {
                        throw new InvalidCoversTargetException(
                            \sprintf(
                                'Trying to @cover or @use not existing class or ' .
                                'interface "%s".',
                                $className
                            )
                        );
                    }

                    try {
                        $methods = (new \ReflectionClass($className))->getMethods();
                    } catch (\ReflectionException $e) {
                        throw new Exception(
                            $e->getMessage(),
                            (int) $e->getCode(),
                            $e
                        );
                    }

                    $inverse    = isset($methodName[1]) && $methodName[1] === '!';
                    $visibility = 'isPublic';

                    if (\strpos($methodName, 'protected')) {
                        $visibility = 'isProtected';
                    } elseif (\strpos($methodName, 'private')) {
                        $visibility = 'isPrivate';
                    }

                    foreach ($methods as $method) {
                        if ($inverse && !$method->$visibility()) {
                            $codeToCoverList[] = $method;
                        } elseif (!$inverse && $method->$visibility()) {
                            $codeToCoverList[] = $method;
                        }
                    }
                }
            } else {
                $classes = [$className];

                foreach ($classes as $className) {
                    if ($className === '' && \function_exists($methodName)) {
                        try {
                            $codeToCoverList[] = new \ReflectionFunction(
                                $methodName
                            );
                        } catch (\ReflectionException $e) {
                            throw new Exception(
                                $e->getMessage(),
                                (int) $e->getCode(),
                                $e
                            );
                        }
                    } else {
                        if (!((\class_exists($className) || \interface_exists($className) || \trait_exists($className)) &&
                            \method_exists($className, $methodName))) {
                            throw new InvalidCoversTargetException(
                                \sprintf(
                                    'Trying to @cover or @use not existing method "%s::%s".',
                                    $className,
                                    $methodName
                                )
                            );
                        }

                        try {
                            $codeToCoverList[] = new \ReflectionMethod(
                                $className,
                                $methodName
                            );
                        } catch (\ReflectionException $e) {
                            throw new Exception(
                                $e->getMessage(),
                                (int) $e->getCode(),
                                $e
                            );
                        }
                    }
                }
            }
        } else {
            $extended = false;

            if (\strpos($element, '<extended>') !== false) {
                $element  = \str_replace('<extended>', '', $element);
                $extended = true;
            }

            $classes = [$element];

            if ($extended) {
                $classes = \array_merge(
                    $classes,
                    \class_implements($element),
                    \class_parents($element)
                );
            }

            foreach ($classes as $className) {
                if (!\class_exists($className) &&
                    !\interface_exists($className) &&
                    !\trait_exists($className)) {
                    throw new InvalidCoversTargetException(
                        \sprintf(
                            'Trying to @cover or @use not existing class or ' .
                            'interface "%s".',
                            $className
                        )
                    );
                }

                try {
                    $codeToCoverList[] = new \ReflectionClass($className);
                } catch (\ReflectionException $e) {
                    throw new Exception(
                        $e->getMessage(),
                        (int) $e->getCode(),
                        $e
                    );
                }
            }
        }

        return $codeToCoverList;
    }

    private static function resolveReflectionObjectsToLines(array $reflectors): array
    {
        $result = [];

        foreach ($reflectors as $reflector) {
            if ($reflector instanceof \ReflectionClass) {
                foreach ($reflector->getTraits() as $trait) {
                    $reflectors[] = $trait;
                }
            }
        }

        foreach ($reflectors as $reflector) {
            $filename = $reflector->getFileName();

            if (!isset($result[$filename])) {
                $result[$filename] = [];
            }

            $result[$filename] = \array_merge(
                $result[$filename],
                \range($reflector->getStartLine(), $reflector->getEndLine())
            );
        }

        foreach ($result as $filename => $lineNumbers) {
            $result[$filename] = \array_keys(\array_flip($lineNumbers));
        }

        return $result;
    }

    /**
     * Trims any extensions from version string that follows after
     * the <major>.<minor>[.<patch>] format
     */
    private static function sanitizeVersionNumber(string $version)
    {
        return \preg_replace(
            '/^(\d+\.\d+(?:.\d+)?).*$/',
            '$1',
            $version
        );
    }

    private static function shouldCoversAnnotationBeUsed(array $annotations): bool
    {
        if (isset($annotations['method']['coversNothing'])) {
            return false;
        }

        if (isset($annotations['method']['covers'])) {
            return true;
        }

        if (isset($annotations['class']['coversNothing'])) {
            return false;
        }

        return true;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Util;

use Closure;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class GlobalState
{
    /**
     * @var string[]
     */
    private const SUPER_GLOBAL_ARRAYS = [
        '_ENV',
        '_POST',
        '_GET',
        '_COOKIE',
        '_SERVER',
        '_FILES',
        '_REQUEST',
    ];

    /**
     * @throws Exception
     */
    public static function getIncludedFilesAsString(): string
    {
        return static::processIncludedFilesAsString(\get_included_files());
    }

    /**
     * @param string[] $files
     *
     * @throws Exception
     */
    public static function processIncludedFilesAsString(array $files): string
    {
        $blacklist = new Blacklist;
        $prefix    = false;
        $result    = '';

        if (\defined('__PHPUNIT_PHAR__')) {
            $prefix = 'phar://' . __PHPUNIT_PHAR__ . '/';
        }

        for ($i = \count($files) - 1; $i > 0; $i--) {
            $file = $files[$i];

            if (!empty($GLOBALS['__PHPUNIT_ISOLATION_BLACKLIST']) &&
                \in_array($file, $GLOBALS['__PHPUNIT_ISOLATION_BLACKLIST'])) {
                continue;
            }

            if ($prefix !== false && \strpos($file, $prefix) === 0) {
                continue;
            }

            // Skip virtual file system protocols
            if (\preg_match('/^(vfs|phpvfs[a-z0-9]+):/', $file)) {
                continue;
            }

            if (!$blacklist->isBlacklisted($file) && \is_file($file)) {
                $result = 'require_once \'' . $file . "';\n" . $result;
            }
        }

        return $result;
    }

    public static function getIniSettingsAsString(): string
    {
        $result = '';

        foreach (\ini_get_all(null, false) as $key => $value) {
            $result .= \sprintf(
                '@ini_set(%s, %s);' . "\n",
                self::exportVariable($key),
                self::exportVariable($value)
            );
        }

        return $result;
    }

    public static function getConstantsAsString(): string
    {
        $constants = \get_defined_constants(true);
        $result    = '';

        if (isset($constants['user'])) {
            foreach ($constants['user'] as $name => $value) {
                $result .= \sprintf(
                    'if (!defined(\'%s\')) define(\'%s\', %s);' . "\n",
                    $name,
                    $name,
                    self::exportVariable($value)
                );
            }
        }

        return $result;
    }

    public static function getGlobalsAsString(): string
    {
        $result = '';

        foreach (self::SUPER_GLOBAL_ARRAYS as $superGlobalArray) {
            if (isset($GLOBALS[$superGlobalArray]) && \is_array($GLOBALS[$superGlobalArray])) {
                foreach (\array_keys($GLOBALS[$superGlobalArray]) as $key) {
                    if ($GLOBALS[$superGlobalArray][$key] instanceof Closure) {
                        continue;
                    }

                    $result .= \sprintf(
                        '$GLOBALS[\'%s\'][\'%s\'] = %s;' . "\n",
                        $superGlobalArray,
                        $key,
                        self::exportVariable($GLOBALS[$superGlobalArray][$key])
                    );
                }
            }
        }

        $blacklist   = self::SUPER_GLOBAL_ARRAYS;
        $blacklist[] = 'GLOBALS';

        foreach (\array_keys($GLOBALS) as $key) {
            if (!$GLOBALS[$key] instanceof Closure && !\in_array($key, $blacklist, true)) {
                $result .= \sprintf(
                    '$GLOBALS[\'%s\'] = %s;' . "\n",
                    $key,
                    self::exportVariable($GLOBALS[$key])
                );
            }
        }

        return $result;
    }

    private static function exportVariable($variable): string
    {
        if (\is_scalar($variable) || $variable === null ||
            (\is_array($variable) && self::arrayOnlyContainsScalars($variable))) {
            return \var_export($variable, true);
        }

        return 'unserialize(' . \var_export(\serialize($variable), true) . ')';
    }

    private static function arrayOnlyContainsScalars(array $array): bool
    {
        $result = true;

        foreach ($array as $element) {
            if (\is_array($element)) {
                $result = self::arrayOnlyContainsScalars($element);
            } elseif (!\is_scalar($element) && $element !== null) {
                $result = false;
            }

            if (!$result) {
                break;
            }
        }

        return $result;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Util;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class Color
{
    /**
     * @var array<string,string>
     */
    private const WHITESPACE_MAP = [
        ' '  => '·',
        "\t" => '⇥',
    ];

    /**
     * @var array<string,string>
     */
    private const WHITESPACE_EOL_MAP = [
        ' '  => '·',
        "\t" => '⇥',
        "\n" => '↵',
        "\r" => '⟵',
    ];

    /**
     * @var array<string,string>
     */
    private static $ansiCodes = [
        'reset'      => '0',
        'bold'       => '1',
        'dim'        => '2',
        'dim-reset'  => '22',
        'underlined' => '4',
        'fg-default' => '39',
        'fg-black'   => '30',
        'fg-red'     => '31',
        'fg-green'   => '32',
        'fg-yellow'  => '33',
        'fg-blue'    => '34',
        'fg-magenta' => '35',
        'fg-cyan'    => '36',
        'fg-white'   => '37',
        'bg-default' => '49',
        'bg-black'   => '40',
        'bg-red'     => '41',
        'bg-green'   => '42',
        'bg-yellow'  => '43',
        'bg-blue'    => '44',
        'bg-magenta' => '45',
        'bg-cyan'    => '46',
        'bg-white'   => '47',
    ];

    public static function colorize(string $color, string $buffer): string
    {
        if (\trim($buffer) === '') {
            return $buffer;
        }

        $codes  = \array_map('\trim', \explode(',', $color));
        $styles = [];

        foreach ($codes as $code) {
            if (isset(self::$ansiCodes[$code])) {
                $styles[] = self::$ansiCodes[$code] ?? '';
            }
        }

        if (empty($styles)) {
            return $buffer;
        }

        return self::optimizeColor(\sprintf("\x1b[%sm", \implode(';', $styles)) . $buffer . "\x1b[0m");
    }

    public static function colorizePath(string $path, ?string $prevPath = null, bool $colorizeFilename = false): string
    {
        if ($prevPath === null) {
            $prevPath = '';
        }

        $path     = \explode(\DIRECTORY_SEPARATOR, $path);
        $prevPath = \explode(\DIRECTORY_SEPARATOR, $prevPath);

        for ($i = 0; $i < \min(\count($path), \count($prevPath)); $i++) {
            if ($path[$i] == $prevPath[$i]) {
                $path[$i] = self::dim($path[$i]);
            }
        }

        if ($colorizeFilename) {
            $last        = \count($path) - 1;
            $path[$last] = \preg_replace_callback(
                '/([\-_\.]+|phpt$)/',
                function ($matches) {
                    return self::dim($matches[0]);
                },
                $path[$last]
            );
        }

        return self::optimizeColor(\implode(self::dim(\DIRECTORY_SEPARATOR), $path));
    }

    public static function dim(string $buffer): string
    {
        if (\trim($buffer) === '') {
            return $buffer;
        }

        return "\e[2m$buffer\e[22m";
    }

    public static function visualizeWhitespace(string $buffer, bool $visualizeEOL = false): string
    {
        $replaceMap = $visualizeEOL ? self::WHITESPACE_EOL_MAP : self::WHITESPACE_MAP;

        return \preg_replace_callback('/\s+/', function ($matches) use ($replaceMap) {
            return self::dim(\strtr($matches[0], $replaceMap));
        }, $buffer);
    }

    private static function optimizeColor(string $buffer): string
    {
        $patterns = [
            "/\e\\[22m\e\\[2m/"                   => '',
            "/\e\\[([^m]*)m\e\\[([1-9][0-9;]*)m/" => "\e[$1;$2m",
            "/(\e\\[[^m]*m)+(\e\\[0m)/"           => '$2',
        ];

        return \preg_replace(\array_keys($patterns), \array_values($patterns), $buffer);
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Util\TestDox;

use PHPUnit\Framework\AssertionFailedError;
use PHPUnit\Framework\Test;
use PHPUnit\Framework\TestCase;
use PHPUnit\Framework\TestListener;
use PHPUnit\Framework\TestSuite;
use PHPUnit\Framework\Warning;
use PHPUnit\Framework\WarningTestCase;
use PHPUnit\Runner\BaseTestRunner;
use PHPUnit\Util\Printer;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
abstract class ResultPrinter extends Printer implements TestListener
{
    /**
     * @var NamePrettifier
     */
    protected $prettifier;

    /**
     * @var string
     */
    protected $testClass = '';

    /**
     * @var int
     */
    protected $testStatus;

    /**
     * @var array
     */
    protected $tests = [];

    /**
     * @var int
     */
    protected $successful = 0;

    /**
     * @var int
     */
    protected $warned = 0;

    /**
     * @var int
     */
    protected $failed = 0;

    /**
     * @var int
     */
    protected $risky = 0;

    /**
     * @var int
     */
    protected $skipped = 0;

    /**
     * @var int
     */
    protected $incomplete = 0;

    /**
     * @var null|string
     */
    protected $currentTestClassPrettified;

    /**
     * @var null|string
     */
    protected $currentTestMethodPrettified;

    /**
     * @var array
     */
    private $groups;

    /**
     * @var array
     */
    private $excludeGroups;

    /**
     * @param resource $out
     *
     * @throws \PHPUnit\Framework\Exception
     */
    public function __construct($out = null, array $groups = [], array $excludeGroups = [])
    {
        parent::__construct($out);

        $this->groups        = $groups;
        $this->excludeGroups = $excludeGroups;

        $this->prettifier = new NamePrettifier;
        $this->startRun();
    }

    /**
     * Flush buffer and close output.
     */
    public function flush(): void
    {
        $this->doEndClass();
        $this->endRun();

        parent::flush();
    }

    /**
     * An error occurred.
     */
    public function addError(Test $test, \Throwable $t, float $time): void
    {
        if (!$this->isOfInterest($test)) {
            return;
        }

        $this->testStatus = BaseTestRunner::STATUS_ERROR;
        $this->failed++;
    }

    /**
     * A warning occurred.
     */
    public function addWarning(Test $test, Warning $e, float $time): void
    {
        if (!$this->isOfInterest($test)) {
            return;
        }

        $this->testStatus = BaseTestRunner::STATUS_WARNING;
        $this->warned++;
    }

    /**
     * A failure occurred.
     */
    public function addFailure(Test $test, AssertionFailedError $e, float $time): void
    {
        if (!$this->isOfInterest($test)) {
            return;
        }

        $this->testStatus = BaseTestRunner::STATUS_FAILURE;
        $this->failed++;
    }

    /**
     * Incomplete test.
     */
    public function addIncompleteTest(Test $test, \Throwable $t, float $time): void
    {
        if (!$this->isOfInterest($test)) {
            return;
        }

        $this->testStatus = BaseTestRunner::STATUS_INCOMPLETE;
        $this->incomplete++;
    }

    /**
     * Risky test.
     */
    public function addRiskyTest(Test $test, \Throwable $t, float $time): void
    {
        if (!$this->isOfInterest($test)) {
            return;
        }

        $this->testStatus = BaseTestRunner::STATUS_RISKY;
        $this->risky++;
    }

    /**
     * Skipped test.
     */
    public function addSkippedTest(Test $test, \Throwable $t, float $time): void
    {
        if (!$this->isOfInterest($test)) {
            return;
        }

        $this->testStatus = BaseTestRunner::STATUS_SKIPPED;
        $this->skipped++;
    }

    /**
     * A testsuite started.
     */
    public function startTestSuite(TestSuite $suite): void
    {
    }

    /**
     * A testsuite ended.
     */
    public function endTestSuite(TestSuite $suite): void
    {
    }

    /**
     * A test started.
     *
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function startTest(Test $test): void
    {
        if (!$this->isOfInterest($test)) {
            return;
        }

        $class = \get_class($test);

        if ($this->testClass !== $class) {
            if ($this->testClass !== '') {
                $this->doEndClass();
            }

            $this->currentTestClassPrettified = $this->prettifier->prettifyTestClass($class);
            $this->testClass                  = $class;
            $this->tests                      = [];

            $this->startClass($class);
        }

        if ($test instanceof TestCase) {
            $this->currentTestMethodPrettified = $this->prettifier->prettifyTestCase($test);
        }

        $this->testStatus = BaseTestRunner::STATUS_PASSED;
    }

    /**
     * A test ended.
     */
    public function endTest(Test $test, float $time): void
    {
        if (!$this->isOfInterest($test)) {
            return;
        }

        $this->tests[] = [$this->currentTestMethodPrettified, $this->testStatus];

        $this->currentTestClassPrettified  = null;
        $this->currentTestMethodPrettified = null;
    }

    protected function doEndClass(): void
    {
        foreach ($this->tests as $test) {
            $this->onTest($test[0], $test[1] === BaseTestRunner::STATUS_PASSED);
        }

        $this->endClass($this->testClass);
    }

    /**
     * Handler for 'start run' event.
     */
    protected function startRun(): void
    {
    }

    /**
     * Handler for 'start class' event.
     */
    protected function startClass(string $name): void
    {
    }

    /**
     * Handler for 'on test' event.
     */
    protected function onTest($name, bool $success = true): void
    {
    }

    /**
     * Handler for 'end class' event.
     */
    protected function endClass(string $name): void
    {
    }

    /**
     * Handler for 'end run' event.
     */
    protected function endRun(): void
    {
    }

    private function isOfInterest(Test $test): bool
    {
        if (!$test instanceof TestCase) {
            return false;
        }

        if ($test instanceof WarningTestCase) {
            return false;
        }

        if (!empty($this->groups)) {
            foreach ($test->getGroups() as $group) {
                if (\in_array($group, $this->groups)) {
                    return true;
                }
            }

            return false;
        }

        if (!empty($this->excludeGroups)) {
            foreach ($test->getGroups() as $group) {
                if (\in_array($group, $this->excludeGroups)) {
                    return false;
                }
            }

            return true;
        }

        return true;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Util\TestDox;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class HtmlResultPrinter extends ResultPrinter
{
    /**
     * @var string
     */
    private const PAGE_HEADER = <<<EOT
<!doctype html>
<html lang="en">
    <head>
        <meta charset="utf-8"/>
        <title>Test Documentation</title>
        <style>
            body {
                text-rendering: optimizeLegibility;
                font-variant-ligatures: common-ligatures;
                font-kerning: normal;
                margin-left: 2em;
            }

            body > ul > li {
                font-family: Source Serif Pro, PT Sans, Trebuchet MS, Helvetica, Arial;
                font-size: 2em;
            }

            h2 {
                font-family: Tahoma, Helvetica, Arial;
                font-size: 3em;
            }

            ul {
                list-style: none;
                margin-bottom: 1em;
            }
        </style>
    </head>
    <body>
EOT;

    /**
     * @var string
     */
    private const CLASS_HEADER = <<<EOT

        <h2 id="%s">%s</h2>
        <ul>

EOT;

    /**
     * @var string
     */
    private const CLASS_FOOTER = <<<EOT
        </ul>
EOT;

    /**
     * @var string
     */
    private const PAGE_FOOTER = <<<EOT

    </body>
</html>
EOT;

    /**
     * Handler for 'start run' event.
     */
    protected function startRun(): void
    {
        $this->write(self::PAGE_HEADER);
    }

    /**
     * Handler for 'start class' event.
     */
    protected function startClass(string $name): void
    {
        $this->write(
            \sprintf(
                self::CLASS_HEADER,
                $name,
                $this->currentTestClassPrettified
            )
        );
    }

    /**
     * Handler for 'on test' event.
     */
    protected function onTest($name, bool $success = true): void
    {
        $this->write(
            \sprintf(
                "            <li style=\"color: %s;\">%s %s</li>\n",
                $success ? '#555753' : '#ef2929',
                $success ? '✓' : '❌',
                $name
            )
        );
    }

    /**
     * Handler for 'end class' event.
     */
    protected function endClass(string $name): void
    {
        $this->write(self::CLASS_FOOTER);
    }

    /**
     * Handler for 'end run' event.
     */
    protected function endRun(): void
    {
        $this->write(self::PAGE_FOOTER);
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Util\TestDox;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class TextResultPrinter extends ResultPrinter
{
    /**
     * Handler for 'start class' event.
     */
    protected function startClass(string $name): void
    {
        $this->write($this->currentTestClassPrettified . "\n");
    }

    /**
     * Handler for 'on test' event.
     */
    protected function onTest($name, bool $success = true): void
    {
        if ($success) {
            $this->write(' [x] ');
        } else {
            $this->write(' [ ] ');
        }

        $this->write($name . "\n");
    }

    /**
     * Handler for 'end class' event.
     */
    protected function endClass(string $name): void
    {
        $this->write("\n");
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Util\TestDox;

use DOMDocument;
use DOMElement;
use PHPUnit\Framework\AssertionFailedError;
use PHPUnit\Framework\Exception;
use PHPUnit\Framework\Test;
use PHPUnit\Framework\TestCase;
use PHPUnit\Framework\TestListener;
use PHPUnit\Framework\TestSuite;
use PHPUnit\Framework\Warning;
use PHPUnit\Util\Printer;
use ReflectionClass;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class XmlResultPrinter extends Printer implements TestListener
{
    /**
     * @var DOMDocument
     */
    private $document;

    /**
     * @var DOMElement
     */
    private $root;

    /**
     * @var NamePrettifier
     */
    private $prettifier;

    /**
     * @var null|\Throwable
     */
    private $exception;

    /**
     * @param resource|string $out
     *
     * @throws Exception
     */
    public function __construct($out = null)
    {
        $this->document               = new DOMDocument('1.0', 'UTF-8');
        $this->document->formatOutput = true;

        $this->root = $this->document->createElement('tests');
        $this->document->appendChild($this->root);

        $this->prettifier = new NamePrettifier;

        parent::__construct($out);
    }

    /**
     * Flush buffer and close output.
     */
    public function flush(): void
    {
        $this->write($this->document->saveXML());

        parent::flush();
    }

    /**
     * An error occurred.
     */
    public function addError(Test $test, \Throwable $t, float $time): void
    {
        $this->exception = $t;
    }

    /**
     * A warning occurred.
     */
    public function addWarning(Test $test, Warning $e, float $time): void
    {
    }

    /**
     * A failure occurred.
     */
    public function addFailure(Test $test, AssertionFailedError $e, float $time): void
    {
        $this->exception = $e;
    }

    /**
     * Incomplete test.
     */
    public function addIncompleteTest(Test $test, \Throwable $t, float $time): void
    {
    }

    /**
     * Risky test.
     */
    public function addRiskyTest(Test $test, \Throwable $t, float $time): void
    {
    }

    /**
     * Skipped test.
     */
    public function addSkippedTest(Test $test, \Throwable $t, float $time): void
    {
    }

    /**
     * A test suite started.
     */
    public function startTestSuite(TestSuite $suite): void
    {
    }

    /**
     * A test suite ended.
     */
    public function endTestSuite(TestSuite $suite): void
    {
    }

    /**
     * A test started.
     */
    public function startTest(Test $test): void
    {
        $this->exception = null;
    }

    /**
     * A test ended.
     *
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function endTest(Test $test, float $time): void
    {
        if (!$test instanceof TestCase) {
            return;
        }

        /* @var TestCase $test */

        $groups = \array_filter(
            $test->getGroups(),
            function ($group) {
                return !($group === 'small' || $group === 'medium' || $group === 'large');
            }
        );

        $testNode = $this->document->createElement('test');

        $testNode->setAttribute('className', \get_class($test));
        $testNode->setAttribute('methodName', $test->getName());
        $testNode->setAttribute('prettifiedClassName', $this->prettifier->prettifyTestClass(\get_class($test)));
        $testNode->setAttribute('prettifiedMethodName', $this->prettifier->prettifyTestCase($test));
        $testNode->setAttribute('status', (string) $test->getStatus());
        $testNode->setAttribute('time', (string) $time);
        $testNode->setAttribute('size', (string) $test->getSize());
        $testNode->setAttribute('groups', \implode(',', $groups));

        foreach ($groups as $group) {
            $groupNode = $this->document->createElement('group');

            $groupNode->setAttribute('name', $group);

            $testNode->appendChild($groupNode);
        }

        $annotations = $test->getAnnotations();

        foreach (['class', 'method'] as $type) {
            foreach ($annotations[$type] as $annotation => $values) {
                if ($annotation !== 'covers' && $annotation !== 'uses') {
                    continue;
                }

                foreach ($values as $value) {
                    $coversNode = $this->document->createElement($annotation);

                    $coversNode->setAttribute('target', $value);

                    $testNode->appendChild($coversNode);
                }
            }
        }

        foreach ($test->doubledTypes() as $doubledType) {
            $testDoubleNode = $this->document->createElement('testDouble');

            $testDoubleNode->setAttribute('type', $doubledType);

            $testNode->appendChild($testDoubleNode);
        }

        $inlineAnnotations = \PHPUnit\Util\Test::getInlineAnnotations(\get_class($test), $test->getName());

        if (isset($inlineAnnotations['given'], $inlineAnnotations['when'], $inlineAnnotations['then'])) {
            $testNode->setAttribute('given', $inlineAnnotations['given']['value']);
            $testNode->setAttribute('givenStartLine', (string) $inlineAnnotations['given']['line']);
            $testNode->setAttribute('when', $inlineAnnotations['when']['value']);
            $testNode->setAttribute('whenStartLine', (string) $inlineAnnotations['when']['line']);
            $testNode->setAttribute('then', $inlineAnnotations['then']['value']);
            $testNode->setAttribute('thenStartLine', (string) $inlineAnnotations['then']['line']);
        }

        if ($this->exception !== null) {
            if ($this->exception instanceof Exception) {
                $steps = $this->exception->getSerializableTrace();
            } else {
                $steps = $this->exception->getTrace();
            }

            try {
                $file = (new ReflectionClass($test))->getFileName();
            } catch (\ReflectionException $e) {
                throw new Exception(
                    $e->getMessage(),
                    (int) $e->getCode(),
                    $e
                );
            }

            foreach ($steps as $step) {
                if (isset($step['file']) && $step['file'] === $file) {
                    $testNode->setAttribute('exceptionLine', (string) $step['line']);

                    break;
                }
            }

            $testNode->setAttribute('exceptionMessage', $this->exception->getMessage());
        }

        $this->root->appendChild($testNode);
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Util\TestDox;

use PHPUnit\Framework\Test;
use PHPUnit\Framework\TestCase;
use PHPUnit\Framework\TestResult;
use PHPUnit\Runner\BaseTestRunner;
use PHPUnit\Runner\PhptTestCase;
use PHPUnit\Util\Color;
use SebastianBergmann\Timer\Timer;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
class CliTestDoxPrinter extends TestDoxPrinter
{
    /**
     * The default Testdox left margin for messages is a vertical line
     */
    private const PREFIX_SIMPLE = [
        'default' => '│',
        'start'   => '│',
        'message' => '│',
        'diff'    => '│',
        'trace'   => '│',
        'last'    => '│',
    ];

    /**
     * Colored Testdox use box-drawing for a more textured map of the message
     */
    private const PREFIX_DECORATED = [
        'default' => '│',
        'start'   => '┐',
        'message' => '├',
        'diff'    => '┊',
        'trace'   => '╵',
        'last'    => '┴',
    ];

    private const SPINNER_ICONS = [
        " \e[36m◐\e[0m running tests",
        " \e[36m◓\e[0m running tests",
        " \e[36m◑\e[0m running tests",
        " \e[36m◒\e[0m running tests",
    ];

    private const STATUS_STYLES = [
        BaseTestRunner::STATUS_PASSED     => [
            'symbol' => '✔',
            'color'  => 'fg-green',
        ],
        BaseTestRunner::STATUS_ERROR      => [
            'symbol'  => '✘',
            'color'   => 'fg-yellow',
            'message' => 'bg-yellow,fg-black',
        ],
        BaseTestRunner::STATUS_FAILURE    => [
            'symbol'  => '✘',
            'color'   => 'fg-red',
            'message' => 'bg-red,fg-white',
        ],
        BaseTestRunner::STATUS_SKIPPED    => [
            'symbol'  => '↩',
            'color'   => 'fg-cyan',
            'message' => 'fg-cyan',
        ],
        BaseTestRunner::STATUS_RISKY      => [
            'symbol'  => '☢',
            'color'   => 'fg-yellow',
            'message' => 'fg-yellow',
        ],
        BaseTestRunner::STATUS_INCOMPLETE => [
            'symbol'  => '∅',
            'color'   => 'fg-yellow',
            'message' => 'fg-yellow',
        ],
        BaseTestRunner::STATUS_WARNING    => [
            'symbol'  => '⚠',
            'color'   => 'fg-yellow',
            'message' => 'fg-yellow',
        ],
        BaseTestRunner::STATUS_UNKNOWN    => [
            'symbol'  => '?',
            'color'   => 'fg-blue',
            'message' => 'fg-white,bg-blue',
        ],
    ];

    /**
     * @var int[]
     */
    private $nonSuccessfulTestResults = [];

    /**
     * @throws \SebastianBergmann\Timer\RuntimeException
     */
    public function printResult(TestResult $result): void
    {
        $this->printHeader();

        $this->printNonSuccessfulTestsSummary($result->count());

        $this->printFooter($result);
    }

    /**
     * @throws \SebastianBergmann\Timer\RuntimeException
     */
    protected function printHeader(): void
    {
        $this->write("\n" . Timer::resourceUsage() . "\n\n");
    }

    protected function formatClassName(Test $test): string
    {
        if ($test instanceof TestCase) {
            return $this->prettifier->prettifyTestClass(\get_class($test));
        }

        return \get_class($test);
    }

    /**
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    protected function registerTestResult(Test $test, ?\Throwable $t, int $status, float $time, bool $verbose): void
    {
        if ($status !== BaseTestRunner::STATUS_PASSED) {
            $this->nonSuccessfulTestResults[] = $this->testIndex;
        }

        parent::registerTestResult($test, $t, $status, $time, $verbose);
    }

    /**
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    protected function formatTestName(Test $test): string
    {
        if ($test instanceof TestCase) {
            return $this->prettifier->prettifyTestCase($test);
        }

        return parent::formatTestName($test);
    }

    protected function writeTestResult(array $prevResult, array $result): void
    {
        // spacer line for new suite headers and after verbose messages
        if ($prevResult['testName'] !== '' &&
            (!empty($prevResult['message']) || $prevResult['className'] !== $result['className'])) {
            $this->write(\PHP_EOL);
        }

        // suite header
        if ($prevResult['className'] !== $result['className']) {
            $this->write($this->colorizeTextBox('underlined', $result['className']) . \PHP_EOL);
        }

        // test result line
        if ($this->colors && $result['className'] == PhptTestCase::class) {
            $testName = Color::colorizePath($result['testName'], $prevResult['testName'], true);
        } else {
            $testName = $result['testMethod'];
        }

        $style = self::STATUS_STYLES[$result['status']];
        $line  = \sprintf(
            ' %s %s%s' . \PHP_EOL,
            $this->colorizeTextBox($style['color'], $style['symbol']),
            $testName,
            $this->verbose ? ' ' . $this->formatRuntime($result['time'], $style['color']) : ''
        );

        $this->write($line);

        // additional information when verbose
        $this->write($result['message']);
    }

    protected function formatThrowable(\Throwable $t, ?int $status = null): string
    {
        return \trim(\PHPUnit\Framework\TestFailure::exceptionToString($t));
    }

    protected function colorizeMessageAndDiff(string $style, string $buffer): array
    {
        $lines      = $buffer ? \array_map('\rtrim', \explode(\PHP_EOL, $buffer)) : [];
        $message    = [];
        $diff       = [];
        $insideDiff = false;

        foreach ($lines as $line) {
            if ($line === '--- Expected') {
                $insideDiff = true;
            }

            if (!$insideDiff) {
                $message[] = $line;
            } else {
                if (\strpos($line, '-') === 0) {
                    $line = Color::colorize('fg-red', Color::visualizeWhitespace($line, true));
                } elseif (\strpos($line, '+') === 0) {
                    $line = Color::colorize('fg-green', Color::visualizeWhitespace($line, true));
                } elseif ($line === '@@ @@') {
                    $line = Color::colorize('fg-cyan', $line);
                }
                $diff[] = $line;
            }
        }
        $diff = \implode(\PHP_EOL, $diff);

        if (!empty($message)) {
            $message = $this->colorizeTextBox($style, \implode(\PHP_EOL, $message));
        }

        return [$message, $diff];
    }

    protected function formatStacktrace(\Throwable $t): string
    {
        $trace = \PHPUnit\Util\Filter::getFilteredStacktrace($t);

        if (!$this->colors) {
            return $trace;
        }

        $lines    = [];
        $prevPath = '';

        foreach (\explode(\PHP_EOL, $trace) as $line) {
            if (\preg_match('/^(.*):(\d+)$/', $line, $matches)) {
                $lines[] = Color::colorizePath($matches[1], $prevPath) .
                    Color::dim(':') .
                    Color::colorize('fg-blue', $matches[2]) .
                    "\n";
                $prevPath = $matches[1];
            } else {
                $lines[]  = $line;
                $prevPath = '';
            }
        }

        return \implode('', $lines);
    }

    protected function formatTestResultMessage(\Throwable $t, array $result, ?string $prefix = null): string
    {
        $message = $this->formatThrowable($t, $result['status']);
        $diff    = '';

        if (!($this->verbose || $result['verbose'])) {
            return '';
        }

        if ($message && $this->colors) {
            $style            = self::STATUS_STYLES[$result['status']]['message'] ?? '';
            [$message, $diff] = $this->colorizeMessageAndDiff($style, $message);
        }

        if ($prefix === null || !$this->colors) {
            $prefix = self::PREFIX_SIMPLE;
        }

        if ($this->colors) {
            $color  = self::STATUS_STYLES[$result['status']]['color'] ?? '';
            $prefix = \array_map(function ($p) use ($color) {
                return Color::colorize($color, $p);
            }, self::PREFIX_DECORATED);
        }

        $trace = $this->formatStacktrace($t);
        $out   = $this->prefixLines($prefix['start'], \PHP_EOL) . \PHP_EOL;

        if ($message) {
            $out .= $this->prefixLines($prefix['message'], $message . \PHP_EOL) . \PHP_EOL;
        }

        if ($diff) {
            $out .= $this->prefixLines($prefix['diff'], $diff . \PHP_EOL) . \PHP_EOL;
        }

        if ($trace) {
            if ($message || $diff) {
                $out .= $this->prefixLines($prefix['default'], \PHP_EOL) . \PHP_EOL;
            }
            $out .= $this->prefixLines($prefix['trace'], $trace . \PHP_EOL) . \PHP_EOL;
        }
        $out .= $this->prefixLines($prefix['last'], \PHP_EOL) . \PHP_EOL;

        return $out;
    }

    protected function drawSpinner(): void
    {
        if ($this->colors) {
            $id =  $this->spinState % \count(self::SPINNER_ICONS);
            $this->write(self::SPINNER_ICONS[$id]);
        }
    }

    protected function undrawSpinner(): void
    {
        if ($this->colors) {
            $id =  $this->spinState % \count(self::SPINNER_ICONS);
            $this->write("\e[1K\e[" . \strlen(self::SPINNER_ICONS[$id]) . 'D');
        }
    }

    private function formatRuntime(float $time, string $color = ''): string
    {
        if (!$this->colors) {
            return \sprintf('[%.2f ms]', $time * 1000);
        }

        if ($time > 1) {
            $color = 'fg-magenta';
        }

        return Color::colorize($color, ' ' . (int) \ceil($time * 1000) . ' ' . Color::dim('ms'));
    }

    private function printNonSuccessfulTestsSummary(int $numberOfExecutedTests): void
    {
        if (empty($this->nonSuccessfulTestResults)) {
            return;
        }

        if ((\count($this->nonSuccessfulTestResults) / $numberOfExecutedTests) >= 0.7) {
            return;
        }

        $this->write("Summary of non-successful tests:\n\n");

        $prevResult = $this->getEmptyTestResult();

        foreach ($this->nonSuccessfulTestResults as $testIndex) {
            $result = $this->testResults[$testIndex];
            $this->writeTestResult($prevResult, $result);
            $prevResult = $result;
        }
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Util\TestDox;

use PHPUnit\Framework\TestCase;
use PHPUnit\Util\Color;
use PHPUnit\Util\Exception as UtilException;
use PHPUnit\Util\Test;
use SebastianBergmann\Exporter\Exporter;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class NamePrettifier
{
    /**
     * @var string[]
     */
    private $strings = [];

    /**
     * @var bool
     */
    private $useColor;

    public function __construct($useColor = false)
    {
        $this->useColor = $useColor;
    }

    /**
     * Prettifies the name of a test class.
     */
    public function prettifyTestClass(string $className): string
    {
        try {
            $annotations = Test::parseTestMethodAnnotations($className);

            if (isset($annotations['class']['testdox'][0])) {
                return $annotations['class']['testdox'][0];
            }
        } catch (UtilException $e) {
        }

        $result = $className;

        if (\substr($className, -1 * \strlen('Test')) === 'Test') {
            $result = \substr($result, 0, \strripos($result, 'Test'));
        }

        if (\strpos($className, 'Tests') === 0) {
            $result = \substr($result, \strlen('Tests'));
        } elseif (\strpos($className, 'Test') === 0) {
            $result = \substr($result, \strlen('Test'));
        }

        if ($result[0] === '\\') {
            $result = \substr($result, 1);
        }

        return $result;
    }

    /**
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function prettifyTestCase(TestCase $test): string
    {
        $annotations                = $test->getAnnotations();
        $annotationWithPlaceholders = false;

        $callback = static function (string $variable): string {
            return \sprintf('/%s(?=\b)/', \preg_quote($variable, '/'));
        };

        if (isset($annotations['method']['testdox'][0])) {
            $result = $annotations['method']['testdox'][0];

            if (\strpos($result, '$') !== false) {
                $annotation   = $annotations['method']['testdox'][0];
                $providedData = $this->mapTestMethodParameterNamesToProvidedDataValues($test);
                $variables    = \array_map($callback, \array_keys($providedData));

                $result = \trim(\preg_replace($variables, $providedData, $annotation));

                $annotationWithPlaceholders = true;
            }
        } else {
            $result = $this->prettifyTestMethod($test->getName(false));
        }

        if (!$annotationWithPlaceholders && $test->usesDataProvider()) {
            $result .= $this->prettifyDataSet($test);
        }

        return $result;
    }

    public function prettifyDataSet(TestCase $test): string
    {
        if (!$this->useColor) {
            return $test->getDataSetAsString(false);
        }

        if (\is_int($test->dataName())) {
            $data = Color::dim(' with data set ') . Color::colorize('fg-cyan', (string) $test->dataName());
        } else {
            $data = Color::dim(' with ') . Color::colorize('fg-cyan', Color::visualizeWhitespace($test->dataName()));
        }

        return $data;
    }

    /**
     * Prettifies the name of a test method.
     */
    public function prettifyTestMethod(string $name): string
    {
        $buffer = '';

        if ($name === '') {
            return $buffer;
        }

        $string = (string) \preg_replace('#\d+$#', '', $name, -1, $count);

        if (\in_array($string, $this->strings)) {
            $name = $string;
        } elseif ($count === 0) {
            $this->strings[] = $string;
        }

        if (\strpos($name, 'test_') === 0) {
            $name = \substr($name, 5);
        } elseif (\strpos($name, 'test') === 0) {
            $name = \substr($name, 4);
        }

        if ($name === '') {
            return $buffer;
        }

        $name[0] = \strtoupper($name[0]);

        if (\strpos($name, '_') !== false) {
            return \trim(\str_replace('_', ' ', $name));
        }

        $max        = \strlen($name);
        $wasNumeric = false;

        for ($i = 0; $i < $max; $i++) {
            if ($i > 0 && \ord($name[$i]) >= 65 && \ord($name[$i]) <= 90) {
                $buffer .= ' ' . \strtolower($name[$i]);
            } else {
                $isNumeric = \is_numeric($name[$i]);

                if (!$wasNumeric && $isNumeric) {
                    $buffer .= ' ';
                    $wasNumeric = true;
                }

                if ($wasNumeric && !$isNumeric) {
                    $wasNumeric = false;
                }

                $buffer .= $name[$i];
            }
        }

        return $buffer;
    }

    /**
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    private function mapTestMethodParameterNamesToProvidedDataValues(TestCase $test): array
    {
        try {
            $reflector = new \ReflectionMethod(\get_class($test), $test->getName(false));
        } catch (\ReflectionException $e) {
            throw new UtilException(
                $e->getMessage(),
                (int) $e->getCode(),
                $e
            );
        }

        $providedData       = [];
        $providedDataValues = \array_values($test->getProvidedData());
        $i                  = 0;

        $providedData['$_dataName'] = $test->dataName();

        foreach ($reflector->getParameters() as $parameter) {
            if (!\array_key_exists($i, $providedDataValues) && $parameter->isDefaultValueAvailable()) {
                try {
                    $providedDataValues[$i] = $parameter->getDefaultValue();
                } catch (\ReflectionException $e) {
                    throw new UtilException(
                        $e->getMessage(),
                        (int) $e->getCode(),
                        $e
                    );
                }
            }

            $value = $providedDataValues[$i++] ?? null;

            if (\is_object($value)) {
                $reflector = new \ReflectionObject($value);

                if ($reflector->hasMethod('__toString')) {
                    $value = (string) $value;
                } else {
                    $value = \get_class($value);
                }
            }

            if (!\is_scalar($value)) {
                $value = \gettype($value);
            }

            if (\is_bool($value) || \is_int($value) || \is_float($value)) {
                $value = (new Exporter)->export($value);
            }

            if (\is_string($value) && $value === '') {
                if ($this->useColor) {
                    $value = Color::colorize('dim,underlined', 'empty');
                } else {
                    $value = "''";
                }
            }

            $providedData['$' . $parameter->getName()] = $value;
        }

        if ($this->useColor) {
            $providedData = \array_map(function ($value) {
                return Color::colorize('fg-cyan', Color::visualizeWhitespace((string) $value, true));
            }, $providedData);
        }

        return $providedData;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Util\TestDox;

use PHPUnit\Framework\AssertionFailedError;
use PHPUnit\Framework\Test;
use PHPUnit\Framework\TestCase;
use PHPUnit\Framework\TestResult;
use PHPUnit\Framework\TestSuite;
use PHPUnit\Framework\Warning;
use PHPUnit\Runner\BaseTestRunner;
use PHPUnit\Runner\PhptTestCase;
use PHPUnit\Runner\TestSuiteSorter;
use PHPUnit\TextUI\ResultPrinter;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
class TestDoxPrinter extends ResultPrinter
{
    /**
     * @var NamePrettifier
     */
    protected $prettifier;

    /**
     * @var int The number of test results received from the TestRunner
     */
    protected $testIndex = 0;

    /**
     * @var int The number of test results already sent to the output
     */
    protected $testFlushIndex = 0;

    /**
     * @var array<int, array> Buffer for test results
     */
    protected $testResults = [];

    /**
     * @var array<string, int> Lookup table for testname to testResults[index]
     */
    protected $testNameResultIndex = [];

    /**
     * @var bool
     */
    protected $enableOutputBuffer = false;

    /**
     * @var array array<string>
     */
    protected $originalExecutionOrder = [];

    /**
     * @var int
     */
    protected $spinState = 0;

    /**
     * @var bool
     */
    protected $showProgress = true;

    /**
     * @param null|resource|string $out
     *
     * @throws \PHPUnit\Framework\Exception
     */
    public function __construct($out = null, bool $verbose = false, string $colors = self::COLOR_DEFAULT, bool $debug = false, $numberOfColumns = 80, bool $reverse = false)
    {
        parent::__construct($out, $verbose, $colors, $debug, $numberOfColumns, $reverse);

        $this->prettifier = new NamePrettifier($this->colors);
    }

    public function setOriginalExecutionOrder(array $order): void
    {
        $this->originalExecutionOrder = $order;
        $this->enableOutputBuffer     = !empty($order);
    }

    public function setShowProgressAnimation(bool $showProgress): void
    {
        $this->showProgress = $showProgress;
    }

    public function printResult(TestResult $result): void
    {
    }

    /**
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function endTest(Test $test, float $time): void
    {
        if (!$test instanceof TestCase && !$test instanceof PhptTestCase && !$test instanceof TestSuite) {
            return;
        }

        if ($this->testHasPassed()) {
            $this->registerTestResult($test, null, BaseTestRunner::STATUS_PASSED, $time, false);
        }

        if ($test instanceof TestCase || $test instanceof PhptTestCase) {
            $this->testIndex++;
        }

        parent::endTest($test, $time);
    }

    /**
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function addError(Test $test, \Throwable $t, float $time): void
    {
        $this->registerTestResult($test, $t, BaseTestRunner::STATUS_ERROR, $time, true);
    }

    /**
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function addWarning(Test $test, Warning $e, float $time): void
    {
        $this->registerTestResult($test, $e, BaseTestRunner::STATUS_WARNING, $time, true);
    }

    /**
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function addFailure(Test $test, AssertionFailedError $e, float $time): void
    {
        $this->registerTestResult($test, $e, BaseTestRunner::STATUS_FAILURE, $time, true);
    }

    /**
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function addIncompleteTest(Test $test, \Throwable $t, float $time): void
    {
        $this->registerTestResult($test, $t, BaseTestRunner::STATUS_INCOMPLETE, $time, false);
    }

    /**
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function addRiskyTest(Test $test, \Throwable $t, float $time): void
    {
        $this->registerTestResult($test, $t, BaseTestRunner::STATUS_RISKY, $time, false);
    }

    /**
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function addSkippedTest(Test $test, \Throwable $t, float $time): void
    {
        $this->registerTestResult($test, $t, BaseTestRunner::STATUS_SKIPPED, $time, false);
    }

    public function writeProgress(string $progress): void
    {
        $this->flushOutputBuffer();
    }

    public function flush(): void
    {
        $this->flushOutputBuffer(true);
    }

    /**
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    protected function registerTestResult(Test $test, ?\Throwable $t, int $status, float $time, bool $verbose): void
    {
        $testName = TestSuiteSorter::getTestSorterUID($test);
        $status   = $status ?? BaseTestRunner::STATUS_UNKNOWN;

        $result = [
            'className'  => $this->formatClassName($test),
            'testName'   => $testName,
            'testMethod' => $this->formatTestName($test),
            'message'    => '',
            'status'     => $status,
            'time'       => $time,
            'verbose'    => $verbose,
        ];

        if ($t !== null) {
            $result['message'] = $this->formatTestResultMessage($t, $result);
        }

        $this->testResults[$this->testIndex]  = $result;
        $this->testNameResultIndex[$testName] = $this->testIndex;
    }

    protected function formatTestName(Test $test): string
    {
        return $test->getName();
    }

    protected function formatClassName(Test $test): string
    {
        return \get_class($test);
    }

    protected function testHasPassed(): bool
    {
        if (!isset($this->testResults[$this->testIndex]['status'])) {
            return true;
        }

        if ($this->testResults[$this->testIndex]['status'] === BaseTestRunner::STATUS_PASSED) {
            return true;
        }

        return false;
    }

    protected function flushOutputBuffer(bool $forceFlush = false): void
    {
        if ($this->testFlushIndex === $this->testIndex) {
            return;
        }

        if ($this->testFlushIndex > 0) {
            if ($this->enableOutputBuffer) {
                $prevResult = $this->getTestResultByName($this->originalExecutionOrder[$this->testFlushIndex - 1]);
            } else {
                $prevResult = $this->testResults[$this->testFlushIndex - 1];
            }
        } else {
            $prevResult = $this->getEmptyTestResult();
        }

        if (!$this->enableOutputBuffer) {
            $this->writeTestResult($prevResult, $this->testResults[$this->testFlushIndex++]);
        } else {
            do {
                $flushed = false;

                if (!$forceFlush && isset($this->originalExecutionOrder[$this->testFlushIndex])) {
                    $result  = $this->getTestResultByName($this->originalExecutionOrder[$this->testFlushIndex]);
                } else {
                    // This test(name) cannot found in original execution order,
                    // flush result to output stream right away
                    $result = $this->testResults[$this->testFlushIndex];
                }

                if (!empty($result)) {
                    $this->hideSpinner();
                    $this->writeTestResult($prevResult, $result);
                    $this->testFlushIndex++;
                    $prevResult = $result;
                    $flushed    = true;
                } else {
                    $this->showSpinner();
                }
            } while ($flushed && $this->testFlushIndex < $this->testIndex);
        }
    }

    protected function showSpinner(): void
    {
        if (!$this->showProgress) {
            return;
        }

        if ($this->spinState) {
            $this->undrawSpinner();
        }

        $this->spinState++;
        $this->drawSpinner();
    }

    protected function hideSpinner(): void
    {
        if (!$this->showProgress) {
            return;
        }

        if ($this->spinState) {
            $this->undrawSpinner();
        }

        $this->spinState = 0;
    }

    protected function drawSpinner(): void
    {
        // optional for CLI printers: show the user a 'buffering output' spinner
    }

    protected function undrawSpinner(): void
    {
        // remove the spinner from the current line
    }

    protected function writeTestResult(array $prevResult, array $result): void
    {
    }

    protected function getEmptyTestResult(): array
    {
        return [
            'className' => '',
            'testName'  => '',
            'message'   => '',
            'failed'    => '',
            'verbose'   => '',
        ];
    }

    protected function getTestResultByName(?string $testName): array
    {
        if (isset($this->testNameResultIndex[$testName])) {
            return $this->testResults[$this->testNameResultIndex[$testName]];
        }

        return [];
    }

    protected function formatThrowable(\Throwable $t, ?int $status = null): string
    {
        $message = \trim(\PHPUnit\Framework\TestFailure::exceptionToString($t));

        if ($message) {
            $message .= \PHP_EOL . \PHP_EOL . $this->formatStacktrace($t);
        } else {
            $message = $this->formatStacktrace($t);
        }

        return $message;
    }

    protected function formatStacktrace(\Throwable $t): string
    {
        return \PHPUnit\Util\Filter::getFilteredStacktrace($t);
    }

    protected function formatTestResultMessage(\Throwable $t, array $result, string $prefix = '│'): string
    {
        $message = $this->formatThrowable($t, $result['status']);

        if ($message === '') {
            return '';
        }

        if (!($this->verbose || $result['verbose'])) {
            return '';
        }

        return $this->prefixLines($prefix, $message);
    }

    protected function prefixLines(string $prefix, string $message): string
    {
        $message = \trim($message);

        return \implode(
            \PHP_EOL,
            \array_map(
                function (string $text) use ($prefix) {
                    return '   ' . $prefix . ($text ? ' ' . $text : '');
                },
                \preg_split('/\r\n|\r|\n/', $message)
            )
        );
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Util;

use PHPUnit\Framework\Exception;
use PHPUnit\Framework\SyntheticError;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class Filter
{
    /**
     * @throws Exception
     */
    public static function getFilteredStacktrace(\Throwable $t): string
    {
        $prefix = false;
        $script = \realpath($GLOBALS['_SERVER']['SCRIPT_NAME']);

        if (\defined('__PHPUNIT_PHAR_ROOT__')) {
            $prefix = __PHPUNIT_PHAR_ROOT__;
        }

        $filteredStacktrace = '';

        if ($t instanceof SyntheticError) {
            $eTrace = $t->getSyntheticTrace();
            $eFile  = $t->getSyntheticFile();
            $eLine  = $t->getSyntheticLine();
        } elseif ($t instanceof Exception) {
            $eTrace = $t->getSerializableTrace();
            $eFile  = $t->getFile();
            $eLine  = $t->getLine();
        } else {
            if ($t->getPrevious()) {
                $t = $t->getPrevious();
            }

            $eTrace = $t->getTrace();
            $eFile  = $t->getFile();
            $eLine  = $t->getLine();
        }

        if (!self::frameExists($eTrace, $eFile, $eLine)) {
            \array_unshift(
                $eTrace,
                ['file' => $eFile, 'line' => $eLine]
            );
        }

        $blacklist = new Blacklist;

        foreach ($eTrace as $frame) {
            if (isset($frame['file']) && \is_file($frame['file']) &&
                (empty($GLOBALS['__PHPUNIT_ISOLATION_BLACKLIST']) || !\in_array($frame['file'], $GLOBALS['__PHPUNIT_ISOLATION_BLACKLIST'])) &&
                !$blacklist->isBlacklisted($frame['file']) &&
                ($prefix === false || \strpos($frame['file'], $prefix) !== 0) &&
                $frame['file'] !== $script) {
                $filteredStacktrace .= \sprintf(
                    "%s:%s\n",
                    $frame['file'],
                    $frame['line'] ?? '?'
                );
            }
        }

        return $filteredStacktrace;
    }

    private static function frameExists(array $trace, string $file, int $line): bool
    {
        foreach ($trace as $frame) {
            if (isset($frame['file']) && $frame['file'] === $file &&
                isset($frame['line']) && $frame['line'] === $line) {
                return true;
            }
        }

        return false;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Util;

use PHPUnit\Framework\TestCase;
use PHPUnit\Framework\TestSuite;
use PHPUnit\Runner\PhptTestCase;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class XmlTestListRenderer
{
    /**
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function render(TestSuite $suite): string
    {
        $writer = new \XMLWriter;

        $writer->openMemory();
        $writer->setIndent(true);
        $writer->startDocument();
        $writer->startElement('tests');

        $currentTestCase = null;

        foreach (new \RecursiveIteratorIterator($suite->getIterator()) as $test) {
            if ($test instanceof TestCase) {
                if (\get_class($test) !== $currentTestCase) {
                    if ($currentTestCase !== null) {
                        $writer->endElement();
                    }

                    $writer->startElement('testCaseClass');
                    $writer->writeAttribute('name', \get_class($test));

                    $currentTestCase = \get_class($test);
                }

                $writer->startElement('testCaseMethod');
                $writer->writeAttribute('name', $test->getName(false));
                $writer->writeAttribute('groups', \implode(',', $test->getGroups()));

                if (!empty($test->getDataSetAsString(false))) {
                    $writer->writeAttribute(
                        'dataSet',
                        \str_replace(
                            ' with data set ',
                            '',
                            $test->getDataSetAsString(false)
                        )
                    );
                }

                $writer->endElement();
            } elseif ($test instanceof PhptTestCase) {
                if ($currentTestCase !== null) {
                    $writer->endElement();

                    $currentTestCase = null;
                }

                $writer->startElement('phptFile');
                $writer->writeAttribute('path', $test->getName());
                $writer->endElement();
            }
        }

        if ($currentTestCase !== null) {
            $writer->endElement();
        }

        $writer->endElement();

        return $writer->outputMemory();
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Util\Log;

use PHPUnit\Framework\AssertionFailedError;
use PHPUnit\Framework\ExceptionWrapper;
use PHPUnit\Framework\ExpectationFailedException;
use PHPUnit\Framework\Test;
use PHPUnit\Framework\TestCase;
use PHPUnit\Framework\TestFailure;
use PHPUnit\Framework\TestResult;
use PHPUnit\Framework\TestSuite;
use PHPUnit\Framework\Warning;
use PHPUnit\TextUI\ResultPrinter;
use PHPUnit\Util\Exception;
use PHPUnit\Util\Filter;
use ReflectionClass;
use SebastianBergmann\Comparator\ComparisonFailure;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class TeamCity extends ResultPrinter
{
    /**
     * @var bool
     */
    private $isSummaryTestCountPrinted = false;

    /**
     * @var string
     */
    private $startedTestName;

    /**
     * @var false|int
     */
    private $flowId;

    /**
     * @throws \SebastianBergmann\Timer\RuntimeException
     */
    public function printResult(TestResult $result): void
    {
        $this->printHeader();
        $this->printFooter($result);
    }

    /**
     * An error occurred.
     */
    public function addError(Test $test, \Throwable $t, float $time): void
    {
        $this->printEvent(
            'testFailed',
            [
                'name'     => $test->getName(),
                'message'  => self::getMessage($t),
                'details'  => self::getDetails($t),
                'duration' => self::toMilliseconds($time),
            ]
        );
    }

    /**
     * A warning occurred.
     */
    public function addWarning(Test $test, Warning $e, float $time): void
    {
        $this->printEvent(
            'testFailed',
            [
                'name'     => $test->getName(),
                'message'  => self::getMessage($e),
                'details'  => self::getDetails($e),
                'duration' => self::toMilliseconds($time),
            ]
        );
    }

    /**
     * A failure occurred.
     */
    public function addFailure(Test $test, AssertionFailedError $e, float $time): void
    {
        $parameters = [
            'name'     => $test->getName(),
            'message'  => self::getMessage($e),
            'details'  => self::getDetails($e),
            'duration' => self::toMilliseconds($time),
        ];

        if ($e instanceof ExpectationFailedException) {
            $comparisonFailure = $e->getComparisonFailure();

            if ($comparisonFailure instanceof ComparisonFailure) {
                $expectedString = $comparisonFailure->getExpectedAsString();

                if ($expectedString === null || empty($expectedString)) {
                    $expectedString = self::getPrimitiveValueAsString($comparisonFailure->getExpected());
                }

                $actualString = $comparisonFailure->getActualAsString();

                if ($actualString === null || empty($actualString)) {
                    $actualString = self::getPrimitiveValueAsString($comparisonFailure->getActual());
                }

                if ($actualString !== null && $expectedString !== null) {
                    $parameters['type']     = 'comparisonFailure';
                    $parameters['actual']   = $actualString;
                    $parameters['expected'] = $expectedString;
                }
            }
        }

        $this->printEvent('testFailed', $parameters);
    }

    /**
     * Incomplete test.
     */
    public function addIncompleteTest(Test $test, \Throwable $t, float $time): void
    {
        $this->printIgnoredTest($test->getName(), $t, $time);
    }

    /**
     * Risky test.
     */
    public function addRiskyTest(Test $test, \Throwable $t, float $time): void
    {
        $this->addError($test, $t, $time);
    }

    /**
     * Skipped test.
     */
    public function addSkippedTest(Test $test, \Throwable $t, float $time): void
    {
        $testName = $test->getName();

        if ($this->startedTestName !== $testName) {
            $this->startTest($test);
            $this->printIgnoredTest($testName, $t, $time);
            $this->endTest($test, $time);
        } else {
            $this->printIgnoredTest($testName, $t, $time);
        }
    }

    public function printIgnoredTest($testName, \Throwable $t, float $time): void
    {
        $this->printEvent(
            'testIgnored',
            [
                'name'     => $testName,
                'message'  => self::getMessage($t),
                'details'  => self::getDetails($t),
                'duration' => self::toMilliseconds($time),
            ]
        );
    }

    /**
     * A testsuite started.
     */
    public function startTestSuite(TestSuite $suite): void
    {
        if (\stripos(\ini_get('disable_functions'), 'getmypid') === false) {
            $this->flowId = \getmypid();
        } else {
            $this->flowId = false;
        }

        if (!$this->isSummaryTestCountPrinted) {
            $this->isSummaryTestCountPrinted = true;

            $this->printEvent(
                'testCount',
                ['count' => \count($suite)]
            );
        }

        $suiteName = $suite->getName();

        if (empty($suiteName)) {
            return;
        }

        $parameters = ['name' => $suiteName];

        if (\class_exists($suiteName, false)) {
            $fileName                   = self::getFileName($suiteName);
            $parameters['locationHint'] = "php_qn://$fileName::\\$suiteName";
        } else {
            $split = \explode('::', $suiteName);

            if (\count($split) === 2 && \method_exists($split[0], $split[1])) {
                $fileName                   = self::getFileName($split[0]);
                $parameters['locationHint'] = "php_qn://$fileName::\\$suiteName";
                $parameters['name']         = $split[1];
            }
        }

        $this->printEvent('testSuiteStarted', $parameters);
    }

    /**
     * A testsuite ended.
     */
    public function endTestSuite(TestSuite $suite): void
    {
        $suiteName = $suite->getName();

        if (empty($suiteName)) {
            return;
        }

        $parameters = ['name' => $suiteName];

        if (!\class_exists($suiteName, false)) {
            $split = \explode('::', $suiteName);

            if (\count($split) === 2 && \method_exists($split[0], $split[1])) {
                $parameters['name'] = $split[1];
            }
        }

        $this->printEvent('testSuiteFinished', $parameters);
    }

    /**
     * A test started.
     */
    public function startTest(Test $test): void
    {
        $testName              = $test->getName();
        $this->startedTestName = $testName;
        $params                = ['name' => $testName];

        if ($test instanceof TestCase) {
            $className              = \get_class($test);
            $fileName               = self::getFileName($className);
            $params['locationHint'] = "php_qn://$fileName::\\$className::$testName";
        }

        $this->printEvent('testStarted', $params);
    }

    /**
     * A test ended.
     */
    public function endTest(Test $test, float $time): void
    {
        parent::endTest($test, $time);

        $this->printEvent(
            'testFinished',
            [
                'name'     => $test->getName(),
                'duration' => self::toMilliseconds($time),
            ]
        );
    }

    protected function writeProgress(string $progress): void
    {
    }

    private function printEvent(string $eventName, array $params = []): void
    {
        $this->write("\n##teamcity[$eventName");

        if ($this->flowId) {
            $params['flowId'] = $this->flowId;
        }

        foreach ($params as $key => $value) {
            $escapedValue = self::escapeValue((string) $value);
            $this->write(" $key='$escapedValue'");
        }

        $this->write("]\n");
    }

    private static function getMessage(\Throwable $t): string
    {
        $message = '';

        if ($t instanceof ExceptionWrapper) {
            if ($t->getClassName() !== '') {
                $message .= $t->getClassName();
            }

            if ($message !== '' && $t->getMessage() !== '') {
                $message .= ' : ';
            }
        }

        return $message . $t->getMessage();
    }

    private static function getDetails(\Throwable $t): string
    {
        $stackTrace = Filter::getFilteredStacktrace($t);
        $previous   = $t instanceof ExceptionWrapper ? $t->getPreviousWrapped() : $t->getPrevious();

        while ($previous) {
            $stackTrace .= "\nCaused by\n" .
                TestFailure::exceptionToString($previous) . "\n" .
                Filter::getFilteredStacktrace($previous);

            $previous = $previous instanceof ExceptionWrapper ?
                $previous->getPreviousWrapped() : $previous->getPrevious();
        }

        return ' ' . \str_replace("\n", "\n ", $stackTrace);
    }

    private static function getPrimitiveValueAsString($value): ?string
    {
        if ($value === null) {
            return 'null';
        }

        if (\is_bool($value)) {
            return $value ? 'true' : 'false';
        }

        if (\is_scalar($value)) {
            return \print_r($value, true);
        }

        return null;
    }

    private static function escapeValue(string $text): string
    {
        return \str_replace(
            ['|', "'", "\n", "\r", ']', '['],
            ['||', "|'", '|n', '|r', '|]', '|['],
            $text
        );
    }

    /**
     * @param string $className
     */
    private static function getFileName($className): string
    {
        try {
            return (new ReflectionClass($className))->getFileName();
        } catch (\ReflectionException $e) {
            throw new Exception(
                $e->getMessage(),
                (int) $e->getCode(),
                $e
            );
        }
    }

    /**
     * @param float $time microseconds
     */
    private static function toMilliseconds(float $time): int
    {
        return (int) \round($time * 1000);
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Util\Log;

use PHPUnit\Framework\AssertionFailedError;
use PHPUnit\Framework\ExceptionWrapper;
use PHPUnit\Framework\SelfDescribing;
use PHPUnit\Framework\Test;
use PHPUnit\Framework\TestFailure;
use PHPUnit\Framework\TestListener;
use PHPUnit\Framework\TestSuite;
use PHPUnit\Framework\Warning;
use PHPUnit\Util\Exception;
use PHPUnit\Util\Filter;
use PHPUnit\Util\Printer;
use PHPUnit\Util\Xml;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class JUnit extends Printer implements TestListener
{
    /**
     * @var \DOMDocument
     */
    private $document;

    /**
     * @var \DOMElement
     */
    private $root;

    /**
     * @var bool
     */
    private $reportUselessTests = false;

    /**
     * @var \DOMElement[]
     */
    private $testSuites = [];

    /**
     * @var int[]
     */
    private $testSuiteTests = [0];

    /**
     * @var int[]
     */
    private $testSuiteAssertions = [0];

    /**
     * @var int[]
     */
    private $testSuiteErrors = [0];

    /**
     * @var int[]
     */
    private $testSuiteFailures = [0];

    /**
     * @var int[]
     */
    private $testSuiteSkipped = [0];

    /**
     * @var int[]
     */
    private $testSuiteTimes = [0];

    /**
     * @var int
     */
    private $testSuiteLevel = 0;

    /**
     * @var \DOMElement
     */
    private $currentTestCase;

    /**
     * @param null|mixed $out
     */
    public function __construct($out = null, bool $reportUselessTests = false)
    {
        $this->document               = new \DOMDocument('1.0', 'UTF-8');
        $this->document->formatOutput = true;

        $this->root = $this->document->createElement('testsuites');
        $this->document->appendChild($this->root);

        parent::__construct($out);

        $this->reportUselessTests = $reportUselessTests;
    }

    /**
     * Flush buffer and close output.
     */
    public function flush(): void
    {
        $this->write($this->getXML());

        parent::flush();
    }

    /**
     * An error occurred.
     */
    public function addError(Test $test, \Throwable $t, float $time): void
    {
        $this->doAddFault($test, $t, $time, 'error');
        $this->testSuiteErrors[$this->testSuiteLevel]++;
    }

    /**
     * A warning occurred.
     */
    public function addWarning(Test $test, Warning $e, float $time): void
    {
        $this->doAddFault($test, $e, $time, 'warning');
        $this->testSuiteFailures[$this->testSuiteLevel]++;
    }

    /**
     * A failure occurred.
     */
    public function addFailure(Test $test, AssertionFailedError $e, float $time): void
    {
        $this->doAddFault($test, $e, $time, 'failure');
        $this->testSuiteFailures[$this->testSuiteLevel]++;
    }

    /**
     * Incomplete test.
     */
    public function addIncompleteTest(Test $test, \Throwable $t, float $time): void
    {
        $this->doAddSkipped();
    }

    /**
     * Risky test.
     */
    public function addRiskyTest(Test $test, \Throwable $t, float $time): void
    {
        if (!$this->reportUselessTests || $this->currentTestCase === null) {
            return;
        }

        $error = $this->document->createElement(
            'error',
            Xml::prepareString(
                "Risky Test\n" .
                Filter::getFilteredStacktrace($t)
            )
        );

        $error->setAttribute('type', \get_class($t));

        $this->currentTestCase->appendChild($error);

        $this->testSuiteErrors[$this->testSuiteLevel]++;
    }

    /**
     * Skipped test.
     */
    public function addSkippedTest(Test $test, \Throwable $t, float $time): void
    {
        $this->doAddSkipped();
    }

    /**
     * A testsuite started.
     */
    public function startTestSuite(TestSuite $suite): void
    {
        $testSuite = $this->document->createElement('testsuite');
        $testSuite->setAttribute('name', $suite->getName());

        if (\class_exists($suite->getName(), false)) {
            try {
                $class = new \ReflectionClass($suite->getName());

                $testSuite->setAttribute('file', $class->getFileName());
            } catch (\ReflectionException $e) {
            }
        }

        if ($this->testSuiteLevel > 0) {
            $this->testSuites[$this->testSuiteLevel]->appendChild($testSuite);
        } else {
            $this->root->appendChild($testSuite);
        }

        $this->testSuiteLevel++;
        $this->testSuites[$this->testSuiteLevel]          = $testSuite;
        $this->testSuiteTests[$this->testSuiteLevel]      = 0;
        $this->testSuiteAssertions[$this->testSuiteLevel] = 0;
        $this->testSuiteErrors[$this->testSuiteLevel]     = 0;
        $this->testSuiteFailures[$this->testSuiteLevel]   = 0;
        $this->testSuiteSkipped[$this->testSuiteLevel]    = 0;
        $this->testSuiteTimes[$this->testSuiteLevel]      = 0;
    }

    /**
     * A testsuite ended.
     */
    public function endTestSuite(TestSuite $suite): void
    {
        $this->testSuites[$this->testSuiteLevel]->setAttribute(
            'tests',
            (string) $this->testSuiteTests[$this->testSuiteLevel]
        );

        $this->testSuites[$this->testSuiteLevel]->setAttribute(
            'assertions',
            (string) $this->testSuiteAssertions[$this->testSuiteLevel]
        );

        $this->testSuites[$this->testSuiteLevel]->setAttribute(
            'errors',
            (string) $this->testSuiteErrors[$this->testSuiteLevel]
        );

        $this->testSuites[$this->testSuiteLevel]->setAttribute(
            'failures',
            (string) $this->testSuiteFailures[$this->testSuiteLevel]
        );

        $this->testSuites[$this->testSuiteLevel]->setAttribute(
            'skipped',
            (string) $this->testSuiteSkipped[$this->testSuiteLevel]
        );

        $this->testSuites[$this->testSuiteLevel]->setAttribute(
            'time',
            \sprintf('%F', $this->testSuiteTimes[$this->testSuiteLevel])
        );

        if ($this->testSuiteLevel > 1) {
            $this->testSuiteTests[$this->testSuiteLevel - 1] += $this->testSuiteTests[$this->testSuiteLevel];
            $this->testSuiteAssertions[$this->testSuiteLevel - 1] += $this->testSuiteAssertions[$this->testSuiteLevel];
            $this->testSuiteErrors[$this->testSuiteLevel - 1] += $this->testSuiteErrors[$this->testSuiteLevel];
            $this->testSuiteFailures[$this->testSuiteLevel - 1] += $this->testSuiteFailures[$this->testSuiteLevel];
            $this->testSuiteSkipped[$this->testSuiteLevel - 1] += $this->testSuiteSkipped[$this->testSuiteLevel];
            $this->testSuiteTimes[$this->testSuiteLevel - 1] += $this->testSuiteTimes[$this->testSuiteLevel];
        }

        $this->testSuiteLevel--;
    }

    /**
     * A test started.
     */
    public function startTest(Test $test): void
    {
        $usesDataprovider = false;

        if (\method_exists($test, 'usesDataProvider')) {
            $usesDataprovider = $test->usesDataProvider();
        }

        $testCase = $this->document->createElement('testcase');
        $testCase->setAttribute('name', $test->getName());

        try {
            $class = new \ReflectionClass($test);
        } catch (\ReflectionException $e) {
            throw new Exception(
                $e->getMessage(),
                (int) $e->getCode(),
                $e
            );
        }

        $methodName = $test->getName(!$usesDataprovider);

        if ($class->hasMethod($methodName)) {
            try {
                $method = $class->getMethod($methodName);
            } catch (\ReflectionException $e) {
                throw new Exception(
                    $e->getMessage(),
                    (int) $e->getCode(),
                    $e
                );
            }

            $testCase->setAttribute('class', $class->getName());
            $testCase->setAttribute('classname', \str_replace('\\', '.', $class->getName()));
            $testCase->setAttribute('file', $class->getFileName());
            $testCase->setAttribute('line', (string) $method->getStartLine());
        }

        $this->currentTestCase = $testCase;
    }

    /**
     * A test ended.
     */
    public function endTest(Test $test, float $time): void
    {
        $numAssertions = 0;

        if (\method_exists($test, 'getNumAssertions')) {
            $numAssertions = $test->getNumAssertions();
        }

        $this->testSuiteAssertions[$this->testSuiteLevel] += $numAssertions;

        $this->currentTestCase->setAttribute(
            'assertions',
            (string) $numAssertions
        );

        $this->currentTestCase->setAttribute(
            'time',
            \sprintf('%F', $time)
        );

        $this->testSuites[$this->testSuiteLevel]->appendChild(
            $this->currentTestCase
        );

        $this->testSuiteTests[$this->testSuiteLevel]++;
        $this->testSuiteTimes[$this->testSuiteLevel] += $time;

        $testOutput = '';

        if (\method_exists($test, 'hasOutput') && \method_exists($test, 'getActualOutput')) {
            $testOutput = $test->hasOutput() ? $test->getActualOutput() : '';
        }

        if (!empty($testOutput)) {
            $systemOut = $this->document->createElement(
                'system-out',
                Xml::prepareString($testOutput)
            );

            $this->currentTestCase->appendChild($systemOut);
        }

        $this->currentTestCase = null;
    }

    /**
     * Returns the XML as a string.
     */
    public function getXML(): string
    {
        return $this->document->saveXML();
    }

    private function doAddFault(Test $test, \Throwable $t, float $time, $type): void
    {
        if ($this->currentTestCase === null) {
            return;
        }

        if ($test instanceof SelfDescribing) {
            $buffer = $test->toString() . "\n";
        } else {
            $buffer = '';
        }

        $buffer .= TestFailure::exceptionToString($t) . "\n" .
                   Filter::getFilteredStacktrace($t);

        $fault = $this->document->createElement(
            $type,
            Xml::prepareString($buffer)
        );

        if ($t instanceof ExceptionWrapper) {
            $fault->setAttribute('type', $t->getClassName());
        } else {
            $fault->setAttribute('type', \get_class($t));
        }

        $this->currentTestCase->appendChild($fault);
    }

    private function doAddSkipped(): void
    {
        if ($this->currentTestCase === null) {
            return;
        }

        $skipped = $this->document->createElement('skipped');

        $this->currentTestCase->appendChild($skipped);

        $this->testSuiteSkipped[$this->testSuiteLevel]++;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Util;

use PHPUnit\Framework\Error\Deprecated;
use PHPUnit\Framework\Error\Error;
use PHPUnit\Framework\Error\Notice;
use PHPUnit\Framework\Error\Warning;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class ErrorHandler
{
    private static $errorStack = [];

    /**
     * Returns the error stack.
     */
    public static function getErrorStack(): array
    {
        return self::$errorStack;
    }

    /**
     * @throws \PHPUnit\Framework\Error\Deprecated
     * @throws \PHPUnit\Framework\Error\Error
     * @throws \PHPUnit\Framework\Error\Notice
     * @throws \PHPUnit\Framework\Error\Warning
     */
    public static function handleError(int $errorNumber, string $errorString, string $errorFile, int $errorLine): bool
    {
        if (!($errorNumber & \error_reporting())) {
            return false;
        }

        self::$errorStack[] = [$errorNumber, $errorString, $errorFile, $errorLine];

        $trace = \debug_backtrace();
        \array_shift($trace);

        foreach ($trace as $frame) {
            if ($frame['function'] === '__toString') {
                return false;
            }
        }

        if ($errorNumber === \E_NOTICE || $errorNumber === \E_USER_NOTICE || $errorNumber === \E_STRICT) {
            if (!Notice::$enabled) {
                return false;
            }

            $exception = Notice::class;
        } elseif ($errorNumber === \E_WARNING || $errorNumber === \E_USER_WARNING) {
            if (!Warning::$enabled) {
                return false;
            }

            $exception = Warning::class;
        } elseif ($errorNumber === \E_DEPRECATED || $errorNumber === \E_USER_DEPRECATED) {
            if (!Deprecated::$enabled) {
                return false;
            }

            $exception = Deprecated::class;
        } else {
            $exception = Error::class;
        }

        throw new $exception($errorString, $errorNumber, $errorFile, $errorLine);
    }

    /**
     * Registers an error handler and returns a function that will restore
     * the previous handler when invoked
     *
     * @param int $severity PHP predefined error constant
     *
     * @throws \Exception if event of specified severity is emitted
     */
    public static function handleErrorOnce($severity = \E_WARNING): callable
    {
        $terminator = function () {
            static $expired = false;

            if (!$expired) {
                $expired = true;

                return \restore_error_handler();
            }
        };

        \set_error_handler(
            function ($errorNumber, $errorString) use ($severity) {
                if ($errorNumber === $severity) {
                    return;
                }

                return false;
            }
        );

        return $terminator;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Util;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class Exception extends \RuntimeException implements \PHPUnit\Exception
{
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Util;

use PHPUnit\Framework\Exception;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
class Printer
{
    /**
     * If true, flush output after every write.
     *
     * @var bool
     */
    protected $autoFlush = false;

    /**
     * @var resource
     */
    protected $out;

    /**
     * @var string
     */
    protected $outTarget;

    /**
     * Constructor.
     *
     * @param null|resource|string $out
     *
     * @throws Exception
     */
    public function __construct($out = null)
    {
        if ($out !== null) {
            if (\is_string($out)) {
                if (\strpos($out, 'socket://') === 0) {
                    $out = \explode(':', \str_replace('socket://', '', $out));

                    if (\count($out) !== 2) {
                        throw new Exception;
                    }

                    $this->out = \fsockopen($out[0], $out[1]);
                } else {
                    if (\strpos($out, 'php://') === false && !Filesystem::createDirectory(\dirname($out))) {
                        throw new Exception(\sprintf('Directory "%s" was not created', \dirname($out)));
                    }

                    $this->out = \fopen($out, 'wt');
                }

                $this->outTarget = $out;
            } else {
                $this->out = $out;
            }
        }
    }

    /**
     * Flush buffer and close output if it's not to a PHP stream
     */
    public function flush(): void
    {
        if ($this->out && \strncmp($this->outTarget, 'php://', 6) !== 0) {
            \fclose($this->out);
        }
    }

    /**
     * Performs a safe, incremental flush.
     *
     * Do not confuse this function with the flush() function of this class,
     * since the flush() function may close the file being written to, rendering
     * the current object no longer usable.
     */
    public function incrementalFlush(): void
    {
        if ($this->out) {
            \fflush($this->out);
        } else {
            \flush();
        }
    }

    public function write(string $buffer): void
    {
        if ($this->out) {
            \fwrite($this->out, $buffer);

            if ($this->autoFlush) {
                $this->incrementalFlush();
            }
        } else {
            if (\PHP_SAPI !== 'cli' && \PHP_SAPI !== 'phpdbg') {
                $buffer = \htmlspecialchars($buffer, \ENT_SUBSTITUTE);
            }

            print $buffer;

            if ($this->autoFlush) {
                $this->incrementalFlush();
            }
        }
    }

    /**
     * Check auto-flush mode.
     */
    public function getAutoFlush(): bool
    {
        return $this->autoFlush;
    }

    /**
     * Set auto-flushing mode.
     *
     * If set, *incremental* flushes will be done after each write. This should
     * not be confused with the different effects of this class' flush() method.
     */
    public function setAutoFlush(bool $autoFlush): void
    {
        $this->autoFlush = $autoFlush;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Util;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class XdebugFilterScriptGenerator
{
    public function generate(array $filterData): string
    {
        $items = $this->getWhitelistItems($filterData);

        $files = \array_map(
            function ($item) {
                return \sprintf(
                    "        '%s'",
                    $item
                );
            },
            $items
        );

        $files = \implode(",\n", $files);

        return <<<EOF
<?php declare(strict_types=1);
if (!\\function_exists('xdebug_set_filter')) {
    return;
}

\\xdebug_set_filter(
    \\XDEBUG_FILTER_CODE_COVERAGE,
    \\XDEBUG_PATH_WHITELIST,
    [
$files
    ]
);

EOF;
    }

    private function getWhitelistItems(array $filterData): array
    {
        $files = [];

        if (isset($filterData['include']['directory'])) {
            foreach ($filterData['include']['directory'] as $directory) {
                $path = \realpath($directory['path']);

                if (\is_string($path)) {
                    $files[] = \sprintf('%s/', $path);
                }
            }
        }

        if (isset($filterData['include']['directory'])) {
            foreach ($filterData['include']['file'] as $file) {
                $files[] = $file;
            }
        }

        return $files;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Util;

use PHPUnit\Framework\TestCase;
use PHPUnit\Framework\TestSuite;
use PHPUnit\Runner\PhptTestCase;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class TextTestListRenderer
{
    /**
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function render(TestSuite $suite): string
    {
        $buffer = 'Available test(s):' . \PHP_EOL;

        foreach (new \RecursiveIteratorIterator($suite->getIterator()) as $test) {
            if ($test instanceof TestCase) {
                $name = \sprintf(
                    '%s::%s',
                    \get_class($test),
                    \str_replace(' with data set ', '', $test->getName())
                );
            } elseif ($test instanceof PhptTestCase) {
                $name = $test->getName();
            } else {
                continue;
            }

            $buffer .= \sprintf(
                ' - %s' . \PHP_EOL,
                $name
            );
        }

        return $buffer;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework;

/**
 * @deprecated Use the `TestHook` interfaces instead
 */
interface TestListener
{
    /**
     * An error occurred.
     */
    public function addError(Test $test, \Throwable $t, float $time): void;

    /**
     * A warning occurred.
     */
    public function addWarning(Test $test, Warning $e, float $time): void;

    /**
     * A failure occurred.
     */
    public function addFailure(Test $test, AssertionFailedError $e, float $time): void;

    /**
     * Incomplete test.
     */
    public function addIncompleteTest(Test $test, \Throwable $t, float $time): void;

    /**
     * Risky test.
     */
    public function addRiskyTest(Test $test, \Throwable $t, float $time): void;

    /**
     * Skipped test.
     */
    public function addSkippedTest(Test $test, \Throwable $t, float $time): void;

    /**
     * A test suite started.
     */
    public function startTestSuite(TestSuite $suite): void;

    /**
     * A test suite ended.
     */
    public function endTestSuite(TestSuite $suite): void;

    /**
     * A test started.
     */
    public function startTest(Test $test): void;

    /**
     * A test ended.
     */
    public function endTest(Test $test, float $time): void;
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework;

use AssertionError;
use Countable;
use Error;
use PHPUnit\Framework\MockObject\Exception as MockObjectException;
use PHPUnit\Util\Blacklist;
use PHPUnit\Util\ErrorHandler;
use PHPUnit\Util\Printer;
use PHPUnit\Util\Test as TestUtil;
use SebastianBergmann\CodeCoverage\CodeCoverage;
use SebastianBergmann\CodeCoverage\CoveredCodeNotExecutedException as OriginalCoveredCodeNotExecutedException;
use SebastianBergmann\CodeCoverage\Exception as OriginalCodeCoverageException;
use SebastianBergmann\CodeCoverage\MissingCoversAnnotationException as OriginalMissingCoversAnnotationException;
use SebastianBergmann\CodeCoverage\UnintentionallyCoveredCodeException;
use SebastianBergmann\Invoker\Invoker;
use SebastianBergmann\Invoker\TimeoutException;
use SebastianBergmann\ResourceOperations\ResourceOperations;
use SebastianBergmann\Timer\Timer;
use Throwable;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class TestResult implements Countable
{
    /**
     * @var array
     */
    private $passed = [];

    /**
     * @var TestFailure[]
     */
    private $errors = [];

    /**
     * @var TestFailure[]
     */
    private $failures = [];

    /**
     * @var TestFailure[]
     */
    private $warnings = [];

    /**
     * @var TestFailure[]
     */
    private $notImplemented = [];

    /**
     * @var TestFailure[]
     */
    private $risky = [];

    /**
     * @var TestFailure[]
     */
    private $skipped = [];

    /**
     * @deprecated Use the `TestHook` interfaces instead
     *
     * @var TestListener[]
     */
    private $listeners = [];

    /**
     * @var int
     */
    private $runTests = 0;

    /**
     * @var float
     */
    private $time = 0;

    /**
     * @var TestSuite
     */
    private $topTestSuite;

    /**
     * Code Coverage information.
     *
     * @var CodeCoverage
     */
    private $codeCoverage;

    /**
     * @var bool
     */
    private $convertErrorsToExceptions = true;

    /**
     * @var bool
     */
    private $stop = false;

    /**
     * @var bool
     */
    private $stopOnError = false;

    /**
     * @var bool
     */
    private $stopOnFailure = false;

    /**
     * @var bool
     */
    private $stopOnWarning = false;

    /**
     * @var bool
     */
    private $beStrictAboutTestsThatDoNotTestAnything = true;

    /**
     * @var bool
     */
    private $beStrictAboutOutputDuringTests = false;

    /**
     * @var bool
     */
    private $beStrictAboutTodoAnnotatedTests = false;

    /**
     * @var bool
     */
    private $beStrictAboutResourceUsageDuringSmallTests = false;

    /**
     * @var bool
     */
    private $enforceTimeLimit = false;

    /**
     * @var int
     */
    private $timeoutForSmallTests = 1;

    /**
     * @var int
     */
    private $timeoutForMediumTests = 10;

    /**
     * @var int
     */
    private $timeoutForLargeTests = 60;

    /**
     * @var bool
     */
    private $stopOnRisky = false;

    /**
     * @var bool
     */
    private $stopOnIncomplete = false;

    /**
     * @var bool
     */
    private $stopOnSkipped = false;

    /**
     * @var bool
     */
    private $lastTestFailed = false;

    /**
     * @var int
     */
    private $defaultTimeLimit = 0;

    /**
     * @var bool
     */
    private $stopOnDefect = false;

    /**
     * @var bool
     */
    private $registerMockObjectsFromTestArgumentsRecursively = false;

    /**
     * @deprecated Use the `TestHook` interfaces instead
     *
     * @codeCoverageIgnore
     *
     * Registers a TestListener.
     */
    public function addListener(TestListener $listener): void
    {
        $this->listeners[] = $listener;
    }

    /**
     * @deprecated Use the `TestHook` interfaces instead
     *
     * @codeCoverageIgnore
     *
     * Unregisters a TestListener.
     */
    public function removeListener(TestListener $listener): void
    {
        foreach ($this->listeners as $key => $_listener) {
            if ($listener === $_listener) {
                unset($this->listeners[$key]);
            }
        }
    }

    /**
     * @deprecated Use the `TestHook` interfaces instead
     *
     * @codeCoverageIgnore
     *
     * Flushes all flushable TestListeners.
     */
    public function flushListeners(): void
    {
        foreach ($this->listeners as $listener) {
            if ($listener instanceof Printer) {
                $listener->flush();
            }
        }
    }

    /**
     * Adds an error to the list of errors.
     */
    public function addError(Test $test, Throwable $t, float $time): void
    {
        if ($t instanceof RiskyTestError) {
            $this->risky[] = new TestFailure($test, $t);
            $notifyMethod  = 'addRiskyTest';

            if ($test instanceof TestCase) {
                $test->markAsRisky();
            }

            if ($this->stopOnRisky || $this->stopOnDefect) {
                $this->stop();
            }
        } elseif ($t instanceof IncompleteTest) {
            $this->notImplemented[] = new TestFailure($test, $t);
            $notifyMethod           = 'addIncompleteTest';

            if ($this->stopOnIncomplete) {
                $this->stop();
            }
        } elseif ($t instanceof SkippedTest) {
            $this->skipped[] = new TestFailure($test, $t);
            $notifyMethod    = 'addSkippedTest';

            if ($this->stopOnSkipped) {
                $this->stop();
            }
        } else {
            $this->errors[] = new TestFailure($test, $t);
            $notifyMethod   = 'addError';

            if ($this->stopOnError || $this->stopOnFailure) {
                $this->stop();
            }
        }

        // @see https://github.com/sebastianbergmann/phpunit/issues/1953
        if ($t instanceof Error) {
            $t = new ExceptionWrapper($t);
        }

        foreach ($this->listeners as $listener) {
            $listener->$notifyMethod($test, $t, $time);
        }

        $this->lastTestFailed = true;
        $this->time += $time;
    }

    /**
     * Adds a warning to the list of warnings.
     * The passed in exception caused the warning.
     */
    public function addWarning(Test $test, Warning $e, float $time): void
    {
        if ($this->stopOnWarning || $this->stopOnDefect) {
            $this->stop();
        }

        $this->warnings[] = new TestFailure($test, $e);

        foreach ($this->listeners as $listener) {
            $listener->addWarning($test, $e, $time);
        }

        $this->time += $time;
    }

    /**
     * Adds a failure to the list of failures.
     * The passed in exception caused the failure.
     */
    public function addFailure(Test $test, AssertionFailedError $e, float $time): void
    {
        if ($e instanceof RiskyTestError || $e instanceof OutputError) {
            $this->risky[] = new TestFailure($test, $e);
            $notifyMethod  = 'addRiskyTest';

            if ($test instanceof TestCase) {
                $test->markAsRisky();
            }

            if ($this->stopOnRisky || $this->stopOnDefect) {
                $this->stop();
            }
        } elseif ($e instanceof IncompleteTest) {
            $this->notImplemented[] = new TestFailure($test, $e);
            $notifyMethod           = 'addIncompleteTest';

            if ($this->stopOnIncomplete) {
                $this->stop();
            }
        } elseif ($e instanceof SkippedTest) {
            $this->skipped[] = new TestFailure($test, $e);
            $notifyMethod    = 'addSkippedTest';

            if ($this->stopOnSkipped) {
                $this->stop();
            }
        } else {
            $this->failures[] = new TestFailure($test, $e);
            $notifyMethod     = 'addFailure';

            if ($this->stopOnFailure || $this->stopOnDefect) {
                $this->stop();
            }
        }

        foreach ($this->listeners as $listener) {
            $listener->$notifyMethod($test, $e, $time);
        }

        $this->lastTestFailed = true;
        $this->time += $time;
    }

    /**
     * Informs the result that a test suite will be started.
     */
    public function startTestSuite(TestSuite $suite): void
    {
        if ($this->topTestSuite === null) {
            $this->topTestSuite = $suite;
        }

        foreach ($this->listeners as $listener) {
            $listener->startTestSuite($suite);
        }
    }

    /**
     * Informs the result that a test suite was completed.
     */
    public function endTestSuite(TestSuite $suite): void
    {
        foreach ($this->listeners as $listener) {
            $listener->endTestSuite($suite);
        }
    }

    /**
     * Informs the result that a test will be started.
     */
    public function startTest(Test $test): void
    {
        $this->lastTestFailed = false;
        $this->runTests += \count($test);

        foreach ($this->listeners as $listener) {
            $listener->startTest($test);
        }
    }

    /**
     * Informs the result that a test was completed.
     *
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function endTest(Test $test, float $time): void
    {
        foreach ($this->listeners as $listener) {
            $listener->endTest($test, $time);
        }

        if (!$this->lastTestFailed && $test instanceof TestCase) {
            $class = \get_class($test);
            $key   = $class . '::' . $test->getName();

            $this->passed[$key] = [
                'result' => $test->getResult(),
                'size'   => \PHPUnit\Util\Test::getSize(
                    $class,
                    $test->getName(false)
                ),
            ];

            $this->time += $time;
        }
    }

    /**
     * Returns true if no risky test occurred.
     */
    public function allHarmless(): bool
    {
        return $this->riskyCount() == 0;
    }

    /**
     * Gets the number of risky tests.
     */
    public function riskyCount(): int
    {
        return \count($this->risky);
    }

    /**
     * Returns true if no incomplete test occurred.
     */
    public function allCompletelyImplemented(): bool
    {
        return $this->notImplementedCount() == 0;
    }

    /**
     * Gets the number of incomplete tests.
     */
    public function notImplementedCount(): int
    {
        return \count($this->notImplemented);
    }

    /**
     * Returns an array of TestFailure objects for the risky tests
     *
     * @return TestFailure[]
     */
    public function risky(): array
    {
        return $this->risky;
    }

    /**
     * Returns an array of TestFailure objects for the incomplete tests
     *
     * @return TestFailure[]
     */
    public function notImplemented(): array
    {
        return $this->notImplemented;
    }

    /**
     * Returns true if no test has been skipped.
     */
    public function noneSkipped(): bool
    {
        return $this->skippedCount() == 0;
    }

    /**
     * Gets the number of skipped tests.
     */
    public function skippedCount(): int
    {
        return \count($this->skipped);
    }

    /**
     * Returns an array of TestFailure objects for the skipped tests
     *
     * @return TestFailure[]
     */
    public function skipped(): array
    {
        return $this->skipped;
    }

    /**
     * Gets the number of detected errors.
     */
    public function errorCount(): int
    {
        return \count($this->errors);
    }

    /**
     * Returns an array of TestFailure objects for the errors
     *
     * @return TestFailure[]
     */
    public function errors(): array
    {
        return $this->errors;
    }

    /**
     * Gets the number of detected failures.
     */
    public function failureCount(): int
    {
        return \count($this->failures);
    }

    /**
     * Returns an array of TestFailure objects for the failures
     *
     * @return TestFailure[]
     */
    public function failures(): array
    {
        return $this->failures;
    }

    /**
     * Gets the number of detected warnings.
     */
    public function warningCount(): int
    {
        return \count($this->warnings);
    }

    /**
     * Returns an array of TestFailure objects for the warnings
     *
     * @return TestFailure[]
     */
    public function warnings(): array
    {
        return $this->warnings;
    }

    /**
     * Returns the names of the tests that have passed.
     */
    public function passed(): array
    {
        return $this->passed;
    }

    /**
     * Returns the (top) test suite.
     */
    public function topTestSuite(): TestSuite
    {
        return $this->topTestSuite;
    }

    /**
     * Returns whether code coverage information should be collected.
     */
    public function getCollectCodeCoverageInformation(): bool
    {
        return $this->codeCoverage !== null;
    }

    /**
     * Runs a TestCase.
     *
     * @throws CodeCoverageException
     * @throws OriginalCoveredCodeNotExecutedException
     * @throws OriginalMissingCoversAnnotationException
     * @throws UnintentionallyCoveredCodeException
     * @throws \SebastianBergmann\CodeCoverage\InvalidArgumentException
     * @throws \SebastianBergmann\CodeCoverage\RuntimeException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function run(Test $test): void
    {
        Assert::resetCount();

        if ($test instanceof TestCase) {
            $test->setRegisterMockObjectsFromTestArgumentsRecursively(
                $this->registerMockObjectsFromTestArgumentsRecursively
            );

            $isAnyCoverageRequired = TestUtil::requiresCodeCoverageDataCollection($test);
        }

        $error      = false;
        $failure    = false;
        $warning    = false;
        $incomplete = false;
        $risky      = false;
        $skipped    = false;

        $this->startTest($test);

        $errorHandlerSet = false;

        if ($this->convertErrorsToExceptions) {
            $oldErrorHandler = \set_error_handler(
                [ErrorHandler::class, 'handleError'],
                \E_ALL | \E_STRICT
            );

            if ($oldErrorHandler === null) {
                $errorHandlerSet = true;
            } else {
                \restore_error_handler();
            }
        }

        $collectCodeCoverage = $this->codeCoverage !== null &&
                               !$test instanceof WarningTestCase &&
                               $isAnyCoverageRequired;

        if ($collectCodeCoverage) {
            $this->codeCoverage->start($test);
        }

        $monitorFunctions = $this->beStrictAboutResourceUsageDuringSmallTests &&
            !$test instanceof WarningTestCase &&
            $test->getSize() == \PHPUnit\Util\Test::SMALL &&
            \function_exists('xdebug_start_function_monitor');

        if ($monitorFunctions) {
            /* @noinspection ForgottenDebugOutputInspection */
            \xdebug_start_function_monitor(ResourceOperations::getFunctions());
        }

        Timer::start();

        try {
            if (!$test instanceof WarningTestCase &&
                $this->enforceTimeLimit &&
                ($this->defaultTimeLimit || $test->getSize() != \PHPUnit\Util\Test::UNKNOWN) &&
                \extension_loaded('pcntl') && \class_exists(Invoker::class)) {
                switch ($test->getSize()) {
                    case \PHPUnit\Util\Test::SMALL:
                        $_timeout = $this->timeoutForSmallTests;

                        break;

                    case \PHPUnit\Util\Test::MEDIUM:
                        $_timeout = $this->timeoutForMediumTests;

                        break;

                    case \PHPUnit\Util\Test::LARGE:
                        $_timeout = $this->timeoutForLargeTests;

                        break;

                    case \PHPUnit\Util\Test::UNKNOWN:
                        $_timeout = $this->defaultTimeLimit;

                        break;
                }

                $invoker = new Invoker;
                $invoker->invoke([$test, 'runBare'], [], $_timeout);
            } else {
                $test->runBare();
            }
        } catch (TimeoutException $e) {
            $this->addFailure(
                $test,
                new RiskyTestError(
                    $e->getMessage()
                ),
                $_timeout
            );

            $risky = true;
        } catch (MockObjectException $e) {
            $e = new Warning(
                $e->getMessage()
            );

            $warning = true;
        } catch (AssertionFailedError $e) {
            $failure = true;

            if ($e instanceof RiskyTestError) {
                $risky = true;
            } elseif ($e instanceof IncompleteTestError) {
                $incomplete = true;
            } elseif ($e instanceof SkippedTestError) {
                $skipped = true;
            }
        } catch (AssertionError $e) {
            $test->addToAssertionCount(1);

            $failure = true;
            $frame   = $e->getTrace()[0];

            $e = new AssertionFailedError(
                \sprintf(
                    '%s in %s:%s',
                    $e->getMessage(),
                    $frame['file'],
                    $frame['line']
                )
            );
        } catch (Warning $e) {
            $warning = true;
        } catch (Exception $e) {
            $error = true;
        } catch (Throwable $e) {
            $e     = new ExceptionWrapper($e);
            $error = true;
        }

        $time = Timer::stop();
        $test->addToAssertionCount(Assert::getCount());

        if ($monitorFunctions) {
            $blacklist = new Blacklist;

            /** @noinspection ForgottenDebugOutputInspection */
            $functions = \xdebug_get_monitored_functions();

            /* @noinspection ForgottenDebugOutputInspection */
            \xdebug_stop_function_monitor();

            foreach ($functions as $function) {
                if (!$blacklist->isBlacklisted($function['filename'])) {
                    $this->addFailure(
                        $test,
                        new RiskyTestError(
                            \sprintf(
                                '%s() used in %s:%s',
                                $function['function'],
                                $function['filename'],
                                $function['lineno']
                            )
                        ),
                        $time
                    );
                }
            }
        }

        if ($this->beStrictAboutTestsThatDoNotTestAnything &&
            $test->getNumAssertions() == 0) {
            $risky = true;
        }

        if ($collectCodeCoverage) {
            $append           = !$risky && !$incomplete && !$skipped;
            $linesToBeCovered = [];
            $linesToBeUsed    = [];

            if ($append && $test instanceof TestCase) {
                try {
                    $linesToBeCovered = \PHPUnit\Util\Test::getLinesToBeCovered(
                        \get_class($test),
                        $test->getName(false)
                    );

                    $linesToBeUsed = \PHPUnit\Util\Test::getLinesToBeUsed(
                        \get_class($test),
                        $test->getName(false)
                    );
                } catch (InvalidCoversTargetException $cce) {
                    $this->addWarning(
                        $test,
                        new Warning(
                            $cce->getMessage()
                        ),
                        $time
                    );
                }
            }

            try {
                $this->codeCoverage->stop(
                    $append,
                    $linesToBeCovered,
                    $linesToBeUsed
                );
            } catch (UnintentionallyCoveredCodeException $cce) {
                $this->addFailure(
                    $test,
                    new UnintentionallyCoveredCodeError(
                        'This test executed code that is not listed as code to be covered or used:' .
                        \PHP_EOL . $cce->getMessage()
                    ),
                    $time
                );
            } catch (OriginalCoveredCodeNotExecutedException $cce) {
                $this->addFailure(
                    $test,
                    new CoveredCodeNotExecutedException(
                        'This test did not execute all the code that is listed as code to be covered:' .
                        \PHP_EOL . $cce->getMessage()
                    ),
                    $time
                );
            } catch (OriginalMissingCoversAnnotationException $cce) {
                if ($linesToBeCovered !== false) {
                    $this->addFailure(
                        $test,
                        new MissingCoversAnnotationException(
                            'This test does not have a @covers annotation but is expected to have one'
                        ),
                        $time
                    );
                }
            } catch (OriginalCodeCoverageException $cce) {
                $error = true;

                $e = $e ?? $cce;
            }
        }

        if ($errorHandlerSet) {
            \restore_error_handler();
        }

        if ($error) {
            $this->addError($test, $e, $time);
        } elseif ($failure) {
            $this->addFailure($test, $e, $time);
        } elseif ($warning) {
            $this->addWarning($test, $e, $time);
        } elseif ($this->beStrictAboutTestsThatDoNotTestAnything &&
            !$test->doesNotPerformAssertions() &&
            $test->getNumAssertions() == 0) {
            try {
                $reflected = new \ReflectionClass($test);
            } catch (\ReflectionException $e) {
                throw new Exception(
                    $e->getMessage(),
                    (int) $e->getCode(),
                    $e
                );
            }

            $name = $test->getName(false);

            if ($name && $reflected->hasMethod($name)) {
                try {
                    $reflected = $reflected->getMethod($name);
                } catch (\ReflectionException $e) {
                    throw new Exception(
                        $e->getMessage(),
                        (int) $e->getCode(),
                        $e
                    );
                }
            }

            $this->addFailure(
                $test,
                new RiskyTestError(
                    \sprintf(
                        "This test did not perform any assertions\n\n%s:%d",
                        $reflected->getFileName(),
                        $reflected->getStartLine()
                    )
                ),
                $time
            );
        } elseif ($this->beStrictAboutTestsThatDoNotTestAnything &&
            $test->doesNotPerformAssertions() &&
            $test->getNumAssertions() > 0) {
            $this->addFailure(
                $test,
                new RiskyTestError(
                    \sprintf(
                        'This test is annotated with "@doesNotPerformAssertions" but performed %d assertions',
                        $test->getNumAssertions()
                    )
                ),
                $time
            );
        } elseif ($this->beStrictAboutOutputDuringTests && $test->hasOutput()) {
            $this->addFailure(
                $test,
                new OutputError(
                    \sprintf(
                        'This test printed output: %s',
                        $test->getActualOutput()
                    )
                ),
                $time
            );
        } elseif ($this->beStrictAboutTodoAnnotatedTests && $test instanceof TestCase) {
            $annotations = $test->getAnnotations();

            if (isset($annotations['method']['todo'])) {
                $this->addFailure(
                    $test,
                    new RiskyTestError(
                        'Test method is annotated with @todo'
                    ),
                    $time
                );
            }
        }

        $this->endTest($test, $time);
    }

    /**
     * Gets the number of run tests.
     */
    public function count(): int
    {
        return $this->runTests;
    }

    /**
     * Checks whether the test run should stop.
     */
    public function shouldStop(): bool
    {
        return $this->stop;
    }

    /**
     * Marks that the test run should stop.
     */
    public function stop(): void
    {
        $this->stop = true;
    }

    /**
     * Returns the code coverage object.
     */
    public function getCodeCoverage(): ?CodeCoverage
    {
        return $this->codeCoverage;
    }

    /**
     * Sets the code coverage object.
     */
    public function setCodeCoverage(CodeCoverage $codeCoverage): void
    {
        $this->codeCoverage = $codeCoverage;
    }

    /**
     * Enables or disables the error-to-exception conversion.
     */
    public function convertErrorsToExceptions(bool $flag): void
    {
        $this->convertErrorsToExceptions = $flag;
    }

    /**
     * Returns the error-to-exception conversion setting.
     */
    public function getConvertErrorsToExceptions(): bool
    {
        return $this->convertErrorsToExceptions;
    }

    /**
     * Enables or disables the stopping when an error occurs.
     */
    public function stopOnError(bool $flag): void
    {
        $this->stopOnError = $flag;
    }

    /**
     * Enables or disables the stopping when a failure occurs.
     */
    public function stopOnFailure(bool $flag): void
    {
        $this->stopOnFailure = $flag;
    }

    /**
     * Enables or disables the stopping when a warning occurs.
     */
    public function stopOnWarning(bool $flag): void
    {
        $this->stopOnWarning = $flag;
    }

    public function beStrictAboutTestsThatDoNotTestAnything(bool $flag): void
    {
        $this->beStrictAboutTestsThatDoNotTestAnything = $flag;
    }

    public function isStrictAboutTestsThatDoNotTestAnything(): bool
    {
        return $this->beStrictAboutTestsThatDoNotTestAnything;
    }

    public function beStrictAboutOutputDuringTests(bool $flag): void
    {
        $this->beStrictAboutOutputDuringTests = $flag;
    }

    public function isStrictAboutOutputDuringTests(): bool
    {
        return $this->beStrictAboutOutputDuringTests;
    }

    public function beStrictAboutResourceUsageDuringSmallTests(bool $flag): void
    {
        $this->beStrictAboutResourceUsageDuringSmallTests = $flag;
    }

    public function isStrictAboutResourceUsageDuringSmallTests(): bool
    {
        return $this->beStrictAboutResourceUsageDuringSmallTests;
    }

    public function enforceTimeLimit(bool $flag): void
    {
        $this->enforceTimeLimit = $flag;
    }

    public function enforcesTimeLimit(): bool
    {
        return $this->enforceTimeLimit;
    }

    public function beStrictAboutTodoAnnotatedTests(bool $flag): void
    {
        $this->beStrictAboutTodoAnnotatedTests = $flag;
    }

    public function isStrictAboutTodoAnnotatedTests(): bool
    {
        return $this->beStrictAboutTodoAnnotatedTests;
    }

    /**
     * Enables or disables the stopping for risky tests.
     */
    public function stopOnRisky(bool $flag): void
    {
        $this->stopOnRisky = $flag;
    }

    /**
     * Enables or disables the stopping for incomplete tests.
     */
    public function stopOnIncomplete(bool $flag): void
    {
        $this->stopOnIncomplete = $flag;
    }

    /**
     * Enables or disables the stopping for skipped tests.
     */
    public function stopOnSkipped(bool $flag): void
    {
        $this->stopOnSkipped = $flag;
    }

    /**
     * Enables or disables the stopping for defects: error, failure, warning
     */
    public function stopOnDefect(bool $flag): void
    {
        $this->stopOnDefect = $flag;
    }

    /**
     * Returns the time spent running the tests.
     */
    public function time(): float
    {
        return $this->time;
    }

    /**
     * Returns whether the entire test was successful or not.
     */
    public function wasSuccessful(): bool
    {
        return $this->wasSuccessfulIgnoringWarnings() && empty($this->warnings);
    }

    public function wasSuccessfulIgnoringWarnings(): bool
    {
        return empty($this->errors) && empty($this->failures);
    }

    /**
     * Sets the default timeout for tests
     */
    public function setDefaultTimeLimit(int $timeout): void
    {
        $this->defaultTimeLimit = $timeout;
    }

    /**
     * Sets the timeout for small tests.
     */
    public function setTimeoutForSmallTests(int $timeout): void
    {
        $this->timeoutForSmallTests = $timeout;
    }

    /**
     * Sets the timeout for medium tests.
     */
    public function setTimeoutForMediumTests(int $timeout): void
    {
        $this->timeoutForMediumTests = $timeout;
    }

    /**
     * Sets the timeout for large tests.
     */
    public function setTimeoutForLargeTests(int $timeout): void
    {
        $this->timeoutForLargeTests = $timeout;
    }

    /**
     * Returns the set timeout for large tests.
     */
    public function getTimeoutForLargeTests(): int
    {
        return $this->timeoutForLargeTests;
    }

    public function setRegisterMockObjectsFromTestArgumentsRecursively(bool $flag): void
    {
        $this->registerMockObjectsFromTestArgumentsRecursively = $flag;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework;

/**
 * @deprecated The `TestListener` interface is deprecated
 */
trait TestListenerDefaultImplementation
{
    public function addError(Test $test, \Throwable $t, float $time): void
    {
    }

    public function addWarning(Test $test, Warning $e, float $time): void
    {
    }

    public function addFailure(Test $test, AssertionFailedError $e, float $time): void
    {
    }

    public function addIncompleteTest(Test $test, \Throwable $t, float $time): void
    {
    }

    public function addRiskyTest(Test $test, \Throwable $t, float $time): void
    {
    }

    public function addSkippedTest(Test $test, \Throwable $t, float $time): void
    {
    }

    public function startTestSuite(TestSuite $suite): void
    {
    }

    public function endTestSuite(TestSuite $suite): void
    {
    }

    public function startTest(Test $test): void
    {
    }

    public function endTest(Test $test, float $time): void
    {
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework;

use RecursiveIterator;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class TestSuiteIterator implements RecursiveIterator
{
    /**
     * @var int
     */
    private $position;

    /**
     * @var Test[]
     */
    private $tests;

    public function __construct(TestSuite $testSuite)
    {
        $this->tests = $testSuite->tests();
    }

    /**
     * Rewinds the Iterator to the first element.
     */
    public function rewind(): void
    {
        $this->position = 0;
    }

    /**
     * Checks if there is a current element after calls to rewind() or next().
     */
    public function valid(): bool
    {
        return $this->position < \count($this->tests);
    }

    /**
     * Returns the key of the current element.
     */
    public function key(): int
    {
        return $this->position;
    }

    /**
     * Returns the current element.
     */
    public function current(): Test
    {
        return $this->valid() ? $this->tests[$this->position] : null;
    }

    /**
     * Moves forward to next element.
     */
    public function next(): void
    {
        $this->position++;
    }

    /**
     * Returns the sub iterator for the current element.
     */
    public function getChildren(): self
    {
        return new self(
            $this->tests[$this->position]
        );
    }

    /**
     * Checks whether the current element has children.
     */
    public function hasChildren(): bool
    {
        return $this->tests[$this->position] instanceof TestSuite;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework;

use PHPUnit\Runner\BaseTestRunner;
use PHPUnit\Runner\Filter\Factory;
use PHPUnit\Runner\PhptTestCase;
use PHPUnit\Util\FileLoader;
use PHPUnit\Util\InvalidArgumentHelper;
use PHPUnit\Util\Test as TestUtil;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
class TestSuite implements \IteratorAggregate, SelfDescribing, Test
{
    /**
     * Enable or disable the backup and restoration of the $GLOBALS array.
     *
     * @var bool
     */
    protected $backupGlobals;

    /**
     * Enable or disable the backup and restoration of static attributes.
     *
     * @var bool
     */
    protected $backupStaticAttributes;

    /**
     * @var bool
     */
    protected $runTestInSeparateProcess = false;

    /**
     * The name of the test suite.
     *
     * @var string
     */
    protected $name = '';

    /**
     * The test groups of the test suite.
     *
     * @var array
     */
    protected $groups = [];

    /**
     * The tests in the test suite.
     *
     * @var TestCase[]
     */
    protected $tests = [];

    /**
     * The number of tests in the test suite.
     *
     * @var int
     */
    protected $numTests = -1;

    /**
     * @var bool
     */
    protected $testCase = false;

    /**
     * @var string[]
     */
    protected $foundClasses = [];

    /**
     * Last count of tests in this suite.
     *
     * @var null|int
     */
    private $cachedNumTests;

    /**
     * @var bool
     */
    private $beStrictAboutChangesToGlobalState;

    /**
     * @var Factory
     */
    private $iteratorFilter;

    /**
     * @var string[]
     */
    private $declaredClasses;

    /**
     * Constructs a new TestSuite:
     *
     *   - PHPUnit\Framework\TestSuite() constructs an empty TestSuite.
     *
     *   - PHPUnit\Framework\TestSuite(ReflectionClass) constructs a
     *     TestSuite from the given class.
     *
     *   - PHPUnit\Framework\TestSuite(ReflectionClass, String)
     *     constructs a TestSuite from the given class with the given
     *     name.
     *
     *   - PHPUnit\Framework\TestSuite(String) either constructs a
     *     TestSuite from the given class (if the passed string is the
     *     name of an existing class) or constructs an empty TestSuite
     *     with the given name.
     *
     * @param \ReflectionClass|string $theClass
     *
     * @throws Exception
     */
    public function __construct($theClass = '', string $name = '')
    {
        if (!\is_string($theClass) && !$theClass instanceof \ReflectionClass) {
            throw InvalidArgumentHelper::factory(
                1,
                'ReflectionClass object or string'
            );
        }

        $this->declaredClasses = \get_declared_classes();

        if (!$theClass instanceof \ReflectionClass) {
            if (\class_exists($theClass, true)) {
                if ($name === '') {
                    $name = $theClass;
                }

                try {
                    $theClass = new \ReflectionClass($theClass);
                } catch (\ReflectionException $e) {
                    throw new Exception(
                        $e->getMessage(),
                        (int) $e->getCode(),
                        $e
                    );
                }
            } else {
                $this->setName($theClass);

                return;
            }
        }

        if (!$theClass->isSubclassOf(TestCase::class)) {
            $this->setName((string) $theClass);

            return;
        }

        if ($name !== '') {
            $this->setName($name);
        } else {
            $this->setName($theClass->getName());
        }

        $constructor = $theClass->getConstructor();

        if ($constructor !== null &&
            !$constructor->isPublic()) {
            $this->addTest(
                new WarningTestCase(
                    \sprintf(
                        'Class "%s" has no public constructor.',
                        $theClass->getName()
                    )
                )
            );

            return;
        }

        foreach ($theClass->getMethods() as $method) {
            if ($method->getDeclaringClass()->getName() === Assert::class) {
                continue;
            }

            if ($method->getDeclaringClass()->getName() === TestCase::class) {
                continue;
            }

            $this->addTestMethod($theClass, $method);
        }

        if (empty($this->tests)) {
            $this->addTest(
                new WarningTestCase(
                    \sprintf(
                        'No tests found in class "%s".',
                        $theClass->getName()
                    )
                )
            );
        }

        $this->testCase = true;
    }

    /**
     * Returns a string representation of the test suite.
     */
    public function toString(): string
    {
        return $this->getName();
    }

    /**
     * Adds a test to the suite.
     *
     * @param array $groups
     */
    public function addTest(Test $test, $groups = []): void
    {
        try {
            $class = new \ReflectionClass($test);
        } catch (\ReflectionException $e) {
            throw new Exception(
                $e->getMessage(),
                (int) $e->getCode(),
                $e
            );
        }

        if (!$class->isAbstract()) {
            $this->tests[]  = $test;
            $this->numTests = -1;

            if ($test instanceof self && empty($groups)) {
                $groups = $test->getGroups();
            }

            if (empty($groups)) {
                $groups = ['default'];
            }

            foreach ($groups as $group) {
                if (!isset($this->groups[$group])) {
                    $this->groups[$group] = [$test];
                } else {
                    $this->groups[$group][] = $test;
                }
            }

            if ($test instanceof TestCase) {
                $test->setGroups($groups);
            }
        }
    }

    /**
     * Adds the tests from the given class to the suite.
     *
     * @param object|string $testClass
     *
     * @throws Exception
     */
    public function addTestSuite($testClass): void
    {
        if (!(\is_object($testClass) || (\is_string($testClass) && \class_exists($testClass)))) {
            throw InvalidArgumentHelper::factory(
                1,
                'class name or object'
            );
        }

        if (!\is_object($testClass)) {
            try {
                $testClass = new \ReflectionClass($testClass);
            } catch (\ReflectionException $e) {
                throw new Exception(
                    $e->getMessage(),
                    (int) $e->getCode(),
                    $e
                );
            }
        }

        if ($testClass instanceof self) {
            $this->addTest($testClass);
        } elseif ($testClass instanceof \ReflectionClass) {
            $suiteMethod = false;

            if (!$testClass->isAbstract() && $testClass->hasMethod(BaseTestRunner::SUITE_METHODNAME)) {
                try {
                    $method = $testClass->getMethod(
                        BaseTestRunner::SUITE_METHODNAME
                    );
                } catch (\ReflectionException $e) {
                    throw new Exception(
                        $e->getMessage(),
                        (int) $e->getCode(),
                        $e
                    );
                }

                if ($method->isStatic()) {
                    $this->addTest(
                        $method->invoke(null, $testClass->getName())
                    );

                    $suiteMethod = true;
                }
            }

            if (!$suiteMethod && !$testClass->isAbstract() && $testClass->isSubclassOf(TestCase::class)) {
                $this->addTest(new self($testClass));
            }
        } else {
            throw new Exception;
        }
    }

    /**
     * Wraps both <code>addTest()</code> and <code>addTestSuite</code>
     * as well as the separate import statements for the user's convenience.
     *
     * If the named file cannot be read or there are no new tests that can be
     * added, a <code>PHPUnit\Framework\WarningTestCase</code> will be created instead,
     * leaving the current test run untouched.
     *
     * @throws Exception
     */
    public function addTestFile(string $filename): void
    {
        if (\file_exists($filename) && \substr($filename, -5) === '.phpt') {
            $this->addTest(
                new PhptTestCase($filename)
            );

            return;
        }

        // The given file may contain further stub classes in addition to the
        // test class itself. Figure out the actual test class.
        $filename   = FileLoader::checkAndLoad($filename);
        $newClasses = \array_diff(\get_declared_classes(), $this->declaredClasses);

        // The diff is empty in case a parent class (with test methods) is added
        // AFTER a child class that inherited from it. To account for that case,
        // accumulate all discovered classes, so the parent class may be found in
        // a later invocation.
        if (!empty($newClasses)) {
            // On the assumption that test classes are defined first in files,
            // process discovered classes in approximate LIFO order, so as to
            // avoid unnecessary reflection.
            $this->foundClasses    = \array_merge($newClasses, $this->foundClasses);
            $this->declaredClasses = \get_declared_classes();
        }

        // The test class's name must match the filename, either in full, or as
        // a PEAR/PSR-0 prefixed short name ('NameSpace_ShortName'), or as a
        // PSR-1 local short name ('NameSpace\ShortName'). The comparison must be
        // anchored to prevent false-positive matches (e.g., 'OtherShortName').
        $shortName      = \basename($filename, '.php');
        $shortNameRegEx = '/(?:^|_|\\\\)' . \preg_quote($shortName, '/') . '$/';

        foreach ($this->foundClasses as $i => $className) {
            if (\preg_match($shortNameRegEx, $className)) {
                try {
                    $class = new \ReflectionClass($className);
                } catch (\ReflectionException $e) {
                    throw new Exception(
                        $e->getMessage(),
                        (int) $e->getCode(),
                        $e
                    );
                }

                if ($class->getFileName() == $filename) {
                    $newClasses = [$className];
                    unset($this->foundClasses[$i]);

                    break;
                }
            }
        }

        foreach ($newClasses as $className) {
            try {
                $class = new \ReflectionClass($className);
            } catch (\ReflectionException $e) {
                throw new Exception(
                    $e->getMessage(),
                    (int) $e->getCode(),
                    $e
                );
            }

            if (\dirname($class->getFileName()) === __DIR__) {
                continue;
            }

            if (!$class->isAbstract()) {
                if ($class->hasMethod(BaseTestRunner::SUITE_METHODNAME)) {
                    try {
                        $method = $class->getMethod(
                            BaseTestRunner::SUITE_METHODNAME
                        );
                    } catch (\ReflectionException $e) {
                        throw new Exception(
                            $e->getMessage(),
                            (int) $e->getCode(),
                            $e
                        );
                    }

                    if ($method->isStatic()) {
                        $this->addTest($method->invoke(null, $className));
                    }
                } elseif ($class->implementsInterface(Test::class)) {
                    $this->addTestSuite($class);
                }
            }
        }

        $this->numTests = -1;
    }

    /**
     * Wrapper for addTestFile() that adds multiple test files.
     *
     * @throws Exception
     */
    public function addTestFiles(iterable $fileNames): void
    {
        foreach ($fileNames as $filename) {
            $this->addTestFile((string) $filename);
        }
    }

    /**
     * Counts the number of test cases that will be run by this test.
     */
    public function count(bool $preferCache = false): int
    {
        if ($preferCache && $this->cachedNumTests !== null) {
            return $this->cachedNumTests;
        }

        $numTests = 0;

        foreach ($this as $test) {
            $numTests += \count($test);
        }

        $this->cachedNumTests = $numTests;

        return $numTests;
    }

    /**
     * Returns the name of the suite.
     */
    public function getName(): string
    {
        return $this->name;
    }

    /**
     * Returns the test groups of the suite.
     */
    public function getGroups(): array
    {
        return \array_keys($this->groups);
    }

    public function getGroupDetails(): array
    {
        return $this->groups;
    }

    /**
     * Set tests groups of the test case
     */
    public function setGroupDetails(array $groups): void
    {
        $this->groups = $groups;
    }

    /**
     * Runs the tests and collects their result in a TestResult.
     *
     * @throws \PHPUnit\Framework\CodeCoverageException
     * @throws \SebastianBergmann\CodeCoverage\CoveredCodeNotExecutedException
     * @throws \SebastianBergmann\CodeCoverage\InvalidArgumentException
     * @throws \SebastianBergmann\CodeCoverage\MissingCoversAnnotationException
     * @throws \SebastianBergmann\CodeCoverage\RuntimeException
     * @throws \SebastianBergmann\CodeCoverage\UnintentionallyCoveredCodeException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Warning
     */
    public function run(TestResult $result = null): TestResult
    {
        if ($result === null) {
            $result = $this->createResult();
        }

        if (\count($this) === 0) {
            return $result;
        }

        $hookMethods = TestUtil::getHookMethods($this->name);

        $result->startTestSuite($this);

        try {
            foreach ($hookMethods['beforeClass'] as $beforeClassMethod) {
                if ($this->testCase &&
                    \class_exists($this->name, false) &&
                    \method_exists($this->name, $beforeClassMethod)) {
                    if ($missingRequirements = TestUtil::getMissingRequirements($this->name, $beforeClassMethod)) {
                        $this->markTestSuiteSkipped(\implode(\PHP_EOL, $missingRequirements));
                    }

                    \call_user_func([$this->name, $beforeClassMethod]);
                }
            }
        } catch (SkippedTestSuiteError $error) {
            foreach ($this->tests() as $test) {
                $result->startTest($test);
                $result->addFailure($test, $error, 0);
                $result->endTest($test, 0);
            }

            $result->endTestSuite($this);

            return $result;
        } catch (\Throwable $t) {
            foreach ($this->tests() as $test) {
                if ($result->shouldStop()) {
                    break;
                }

                $result->startTest($test);
                $result->addError($test, $t, 0);
                $result->endTest($test, 0);
            }

            $result->endTestSuite($this);

            return $result;
        }

        foreach ($this as $test) {
            if ($result->shouldStop()) {
                break;
            }

            if ($test instanceof TestCase || $test instanceof self) {
                $test->setBeStrictAboutChangesToGlobalState($this->beStrictAboutChangesToGlobalState);
                $test->setBackupGlobals($this->backupGlobals);
                $test->setBackupStaticAttributes($this->backupStaticAttributes);
                $test->setRunTestInSeparateProcess($this->runTestInSeparateProcess);
            }

            $test->run($result);
        }

        try {
            foreach ($hookMethods['afterClass'] as $afterClassMethod) {
                if ($this->testCase &&
                    \class_exists($this->name, false) &&
                    \method_exists($this->name, $afterClassMethod)) {
                    \call_user_func([$this->name, $afterClassMethod]);
                }
            }
        } catch (\Throwable $t) {
            $message = "Exception in {$this->name}::$afterClassMethod" . \PHP_EOL . $t->getMessage();
            $error   = new SyntheticError($message, 0, $t->getFile(), $t->getLine(), $t->getTrace());

            $placeholderTest = clone $test;
            $placeholderTest->setName($afterClassMethod);

            $result->startTest($placeholderTest);
            $result->addFailure($placeholderTest, $error, 0);
            $result->endTest($placeholderTest, 0);
        }

        $result->endTestSuite($this);

        return $result;
    }

    public function setRunTestInSeparateProcess(bool $runTestInSeparateProcess): void
    {
        $this->runTestInSeparateProcess = $runTestInSeparateProcess;
    }

    public function setName(string $name): void
    {
        $this->name = $name;
    }

    /**
     * Returns the test at the given index.
     *
     * @return false|Test
     */
    public function testAt(int $index)
    {
        return $this->tests[$index] ?? false;
    }

    /**
     * Returns the tests as an enumeration.
     */
    public function tests(): array
    {
        return $this->tests;
    }

    /**
     * Set tests of the test suite
     */
    public function setTests(array $tests): void
    {
        $this->tests = $tests;
    }

    /**
     * Mark the test suite as skipped.
     *
     * @param string $message
     *
     * @throws SkippedTestSuiteError
     */
    public function markTestSuiteSkipped($message = ''): void
    {
        throw new SkippedTestSuiteError($message);
    }

    /**
     * @param bool $beStrictAboutChangesToGlobalState
     */
    public function setBeStrictAboutChangesToGlobalState($beStrictAboutChangesToGlobalState): void
    {
        if (null === $this->beStrictAboutChangesToGlobalState && \is_bool($beStrictAboutChangesToGlobalState)) {
            $this->beStrictAboutChangesToGlobalState = $beStrictAboutChangesToGlobalState;
        }
    }

    /**
     * @param bool $backupGlobals
     */
    public function setBackupGlobals($backupGlobals): void
    {
        if (null === $this->backupGlobals && \is_bool($backupGlobals)) {
            $this->backupGlobals = $backupGlobals;
        }
    }

    /**
     * @param bool $backupStaticAttributes
     */
    public function setBackupStaticAttributes($backupStaticAttributes): void
    {
        if (null === $this->backupStaticAttributes && \is_bool($backupStaticAttributes)) {
            $this->backupStaticAttributes = $backupStaticAttributes;
        }
    }

    /**
     * Returns an iterator for this test suite.
     */
    public function getIterator(): \Iterator
    {
        $iterator = new TestSuiteIterator($this);

        if ($this->iteratorFilter !== null) {
            $iterator = $this->iteratorFilter->factory($iterator, $this);
        }

        return $iterator;
    }

    public function injectFilter(Factory $filter): void
    {
        $this->iteratorFilter = $filter;

        foreach ($this as $test) {
            if ($test instanceof self) {
                $test->injectFilter($filter);
            }
        }
    }

    /**
     * Creates a default TestResult object.
     */
    protected function createResult(): TestResult
    {
        return new TestResult;
    }

    /**
     * @throws Exception
     */
    protected function addTestMethod(\ReflectionClass $class, \ReflectionMethod $method): void
    {
        if (!TestUtil::isTestMethod($method)) {
            return;
        }

        $methodName = $method->getName();

        if (!$method->isPublic()) {
            $this->addTest(
                new WarningTestCase(
                    \sprintf(
                        'Test method "%s" in test class "%s" is not public.',
                        $methodName,
                        $class->getName()
                    )
                )
            );

            return;
        }

        $test = (new TestBuilder)->build($class, $methodName);

        if ($test instanceof TestCase || $test instanceof DataProviderTestSuite) {
            $test->setDependencies(
                TestUtil::getDependencies($class->getName(), $methodName)
            );
        }

        $this->addTest(
            $test,
            TestUtil::getGroups($class->getName(), $methodName)
        );
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
interface SelfDescribing
{
    /**
     * Returns a string representation of the object.
     */
    public function toString(): string;
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
interface IncompleteTest
{
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework;

use PHPUnit\Util\Test as TestUtil;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class TestBuilder
{
    public function build(\ReflectionClass $theClass, string $methodName): Test
    {
        $className = $theClass->getName();

        if (!$theClass->isInstantiable()) {
            return new WarningTestCase(
                \sprintf('Cannot instantiate class "%s".', $className)
            );
        }

        $backupSettings = TestUtil::getBackupSettings(
            $className,
            $methodName
        );

        $preserveGlobalState = TestUtil::getPreserveGlobalStateSettings(
            $className,
            $methodName
        );

        $runTestInSeparateProcess = TestUtil::getProcessIsolationSettings(
            $className,
            $methodName
        );

        $runClassInSeparateProcess = TestUtil::getClassProcessIsolationSettings(
            $className,
            $methodName
        );

        $constructor = $theClass->getConstructor();

        if ($constructor === null) {
            throw new Exception('No valid test provided.');
        }

        $parameters = $constructor->getParameters();

        // TestCase() or TestCase($name)
        if (\count($parameters) < 2) {
            $test = $this->buildTestWithoutData($className);
        } // TestCase($name, $data)
        else {
            try {
                $data = TestUtil::getProvidedData(
                    $className,
                    $methodName
                );
            } catch (IncompleteTestError $e) {
                $message = \sprintf(
                    'Test for %s::%s marked incomplete by data provider',
                    $className,
                    $methodName
                );
                $message = $this->appendExceptionMessageIfAvailable($e, $message);
                $data    = new IncompleteTestCase($className, $methodName, $message);
            } catch (SkippedTestError $e) {
                $message = \sprintf(
                    'Test for %s::%s skipped by data provider',
                    $className,
                    $methodName
                );
                $message = $this->appendExceptionMessageIfAvailable($e, $message);
                $data    = new SkippedTestCase($className, $methodName, $message);
            } catch (\Throwable $t) {
                $message = \sprintf(
                    'The data provider specified for %s::%s is invalid.',
                    $className,
                    $methodName
                );
                $message = $this->appendExceptionMessageIfAvailable($t, $message);
                $data    = new WarningTestCase($message);
            }

            // Test method with @dataProvider.
            if (isset($data)) {
                $test = $this->buildDataProviderTestSuite(
                    $methodName,
                    $className,
                    $data,
                    $runTestInSeparateProcess,
                    $preserveGlobalState,
                    $runClassInSeparateProcess,
                    $backupSettings
                );
            } else {
                $test = $this->buildTestWithoutData($className);
            }
        }

        if ($test instanceof TestCase) {
            $test->setName($methodName);
            $this->configureTestCase(
                $test,
                $runTestInSeparateProcess,
                $preserveGlobalState,
                $runClassInSeparateProcess,
                $backupSettings
            );
        }

        return $test;
    }

    private function appendExceptionMessageIfAvailable(\Throwable $e, string $message): string
    {
        $_message = $e->getMessage();

        if (!empty($_message)) {
            $message .= "\n" . $_message;
        }

        return $message;
    }

    private function buildTestWithoutData(string $className)
    {
        return new $className;
    }

    private function buildDataProviderTestSuite(
        string $methodName,
        string $className,
        $data,
        bool $runTestInSeparateProcess,
        ?bool $preserveGlobalState,
        bool $runClassInSeparateProcess,
        array $backupSettings
    ): DataProviderTestSuite {
        $dataProviderTestSuite = new DataProviderTestSuite(
            $className . '::' . $methodName
        );

        $groups = TestUtil::getGroups($className, $methodName);

        if ($data instanceof WarningTestCase ||
            $data instanceof SkippedTestCase ||
            $data instanceof IncompleteTestCase) {
            $dataProviderTestSuite->addTest($data, $groups);
        } else {
            foreach ($data as $_dataName => $_data) {
                $_test = new $className($methodName, $_data, $_dataName);

                \assert($_test instanceof TestCase);

                $this->configureTestCase(
                    $_test,
                    $runTestInSeparateProcess,
                    $preserveGlobalState,
                    $runClassInSeparateProcess,
                    $backupSettings
                );

                $dataProviderTestSuite->addTest($_test, $groups);
            }
        }

        return $dataProviderTestSuite;
    }

    private function configureTestCase(
        TestCase $test,
        bool $runTestInSeparateProcess,
        ?bool $preserveGlobalState,
        bool $runClassInSeparateProcess,
        array $backupSettings
    ): void {
        if ($runTestInSeparateProcess) {
            $test->setRunTestInSeparateProcess(true);

            if ($preserveGlobalState !== null) {
                $test->setPreserveGlobalState($preserveGlobalState);
            }
        }

        if ($runClassInSeparateProcess) {
            $test->setRunClassInSeparateProcess(true);

            if ($preserveGlobalState !== null) {
                $test->setPreserveGlobalState($preserveGlobalState);
            }
        }

        if ($backupSettings['backupGlobals'] !== null) {
            $test->setBackupGlobals($backupSettings['backupGlobals']);
        }

        if ($backupSettings['backupStaticAttributes'] !== null) {
            $test->setBackupStaticAttributes(
                $backupSettings['backupStaticAttributes']
            );
        }
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework;

use PHPUnit\Util\Filter;
use Throwable;

/**
 * Wraps Exceptions thrown by code under test.
 *
 * Re-instantiates Exceptions thrown by user-space code to retain their original
 * class names, properties, and stack traces (but without arguments).
 *
 * Unlike PHPUnit\Framework_\Exception, the complete stack of previous Exceptions
 * is processed.
 *
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class ExceptionWrapper extends Exception
{
    /**
     * @var string
     */
    protected $className;

    /**
     * @var null|ExceptionWrapper
     */
    protected $previous;

    public function __construct(Throwable $t)
    {
        // PDOException::getCode() is a string.
        // @see https://php.net/manual/en/class.pdoexception.php#95812
        parent::__construct($t->getMessage(), (int) $t->getCode());
        $this->setOriginalException($t);
    }

    public function __toString(): string
    {
        $string = TestFailure::exceptionToString($this);

        if ($trace = Filter::getFilteredStacktrace($this)) {
            $string .= "\n" . $trace;
        }

        if ($this->previous) {
            $string .= "\nCaused by\n" . $this->previous;
        }

        return $string;
    }

    public function getClassName(): string
    {
        return $this->className;
    }

    public function getPreviousWrapped(): ?self
    {
        return $this->previous;
    }

    public function setClassName(string $className): void
    {
        $this->className = $className;
    }

    public function setOriginalException(\Throwable $t): void
    {
        $this->originalException($t);

        $this->className = \get_class($t);
        $this->file      = $t->getFile();
        $this->line      = $t->getLine();

        $this->serializableTrace = $t->getTrace();

        foreach ($this->serializableTrace as $i => $call) {
            unset($this->serializableTrace[$i]['args']);
        }

        if ($t->getPrevious()) {
            $this->previous = new self($t->getPrevious());
        }
    }

    public function getOriginalException(): ?Throwable
    {
        return $this->originalException();
    }

    /**
     * Method to contain static originalException to exclude it from stacktrace to prevent the stacktrace contents,
     * which can be quite big, from being garbage-collected, thus blocking memory until shutdown.
     * Approach works both for var_dump() and var_export() and print_r()
     */
    private function originalException(Throwable $exceptionToStore = null): ?Throwable
    {
        static $originalExceptions;

        $instanceId = \spl_object_hash($this);

        if ($exceptionToStore) {
            $originalExceptions[$instanceId] = $exceptionToStore;
        }

        return $originalExceptions[$instanceId] ?? null;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

use PHPUnit\Framework\Assert;
use PHPUnit\Framework\Constraint\ArrayHasKey;
use PHPUnit\Framework\Constraint\Attribute;
use PHPUnit\Framework\Constraint\Callback;
use PHPUnit\Framework\Constraint\ClassHasAttribute;
use PHPUnit\Framework\Constraint\ClassHasStaticAttribute;
use PHPUnit\Framework\Constraint\Constraint;
use PHPUnit\Framework\Constraint\Count;
use PHPUnit\Framework\Constraint\DirectoryExists;
use PHPUnit\Framework\Constraint\FileExists;
use PHPUnit\Framework\Constraint\GreaterThan;
use PHPUnit\Framework\Constraint\IsAnything;
use PHPUnit\Framework\Constraint\IsEmpty;
use PHPUnit\Framework\Constraint\IsEqual;
use PHPUnit\Framework\Constraint\IsFalse;
use PHPUnit\Framework\Constraint\IsFinite;
use PHPUnit\Framework\Constraint\IsIdentical;
use PHPUnit\Framework\Constraint\IsInfinite;
use PHPUnit\Framework\Constraint\IsInstanceOf;
use PHPUnit\Framework\Constraint\IsJson;
use PHPUnit\Framework\Constraint\IsNan;
use PHPUnit\Framework\Constraint\IsNull;
use PHPUnit\Framework\Constraint\IsReadable;
use PHPUnit\Framework\Constraint\IsTrue;
use PHPUnit\Framework\Constraint\IsType;
use PHPUnit\Framework\Constraint\IsWritable;
use PHPUnit\Framework\Constraint\LessThan;
use PHPUnit\Framework\Constraint\LogicalAnd;
use PHPUnit\Framework\Constraint\LogicalNot;
use PHPUnit\Framework\Constraint\LogicalOr;
use PHPUnit\Framework\Constraint\LogicalXor;
use PHPUnit\Framework\Constraint\ObjectHasAttribute;
use PHPUnit\Framework\Constraint\RegularExpression;
use PHPUnit\Framework\Constraint\StringContains;
use PHPUnit\Framework\Constraint\StringEndsWith;
use PHPUnit\Framework\Constraint\StringMatchesFormatDescription;
use PHPUnit\Framework\Constraint\StringStartsWith;
use PHPUnit\Framework\Constraint\TraversableContains;
use PHPUnit\Framework\Constraint\TraversableContainsOnly;
use PHPUnit\Framework\ExpectationFailedException;
use PHPUnit\Framework\MockObject\Matcher\AnyInvokedCount as AnyInvokedCountMatcher;
use PHPUnit\Framework\MockObject\Matcher\InvokedAtIndex as InvokedAtIndexMatcher;
use PHPUnit\Framework\MockObject\Matcher\InvokedAtLeastCount as InvokedAtLeastCountMatcher;
use PHPUnit\Framework\MockObject\Matcher\InvokedAtLeastOnce as InvokedAtLeastOnceMatcher;
use PHPUnit\Framework\MockObject\Matcher\InvokedAtMostCount as InvokedAtMostCountMatcher;
use PHPUnit\Framework\MockObject\Matcher\InvokedCount as InvokedCountMatcher;
use PHPUnit\Framework\MockObject\Stub\ConsecutiveCalls as ConsecutiveCallsStub;
use PHPUnit\Framework\MockObject\Stub\Exception as ExceptionStub;
use PHPUnit\Framework\MockObject\Stub\ReturnArgument as ReturnArgumentStub;
use PHPUnit\Framework\MockObject\Stub\ReturnCallback as ReturnCallbackStub;
use PHPUnit\Framework\MockObject\Stub\ReturnSelf as ReturnSelfStub;
use PHPUnit\Framework\MockObject\Stub\ReturnStub;
use PHPUnit\Framework\MockObject\Stub\ReturnValueMap as ReturnValueMapStub;

/**
 * Asserts that an array has a specified key.
 *
 * @param int|string        $key
 * @param array|ArrayAccess $array
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @see Assert::assertArrayHasKey
 */
function assertArrayHasKey($key, $array, string $message = ''): void
{
    Assert::assertArrayHasKey(...\func_get_args());
}

/**
 * Asserts that an array has a specified subset.
 *
 * @param array|ArrayAccess $subset
 * @param array|ArrayAccess $array
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @codeCoverageIgnore
 *
 * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3494
 * @see Assert::assertArraySubset
 */
function assertArraySubset($subset, $array, bool $checkForObjectIdentity = false, string $message = ''): void
{
    Assert::assertArraySubset(...\func_get_args());
}

/**
 * Asserts that an array does not have a specified key.
 *
 * @param int|string        $key
 * @param array|ArrayAccess $array
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @see Assert::assertArrayNotHasKey
 */
function assertArrayNotHasKey($key, $array, string $message = ''): void
{
    Assert::assertArrayNotHasKey(...\func_get_args());
}

/**
 * Asserts that a haystack contains a needle.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @see Assert::assertContains
 */
function assertContains($needle, $haystack, string $message = '', bool $ignoreCase = false, bool $checkForObjectIdentity = true, bool $checkForNonObjectIdentity = false): void
{
    Assert::assertContains(...\func_get_args());
}

function assertContainsEquals($needle, iterable $haystack, string $message = ''): void
{
    Assert::assertContainsEquals(...\func_get_args());
}

/**
 * Asserts that a haystack that is stored in a static attribute of a class
 * or an attribute of an object contains a needle.
 *
 * @param object|string $haystackClassOrObject
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
 * @codeCoverageIgnore
 *
 * @see Assert::assertAttributeContains
 */
function assertAttributeContains($needle, string $haystackAttributeName, $haystackClassOrObject, string $message = '', bool $ignoreCase = false, bool $checkForObjectIdentity = true, bool $checkForNonObjectIdentity = false): void
{
    Assert::assertAttributeContains(...\func_get_args());
}

/**
 * Asserts that a haystack does not contain a needle.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @see Assert::assertNotContains
 */
function assertNotContains($needle, $haystack, string $message = '', bool $ignoreCase = false, bool $checkForObjectIdentity = true, bool $checkForNonObjectIdentity = false): void
{
    Assert::assertNotContains(...\func_get_args());
}

function assertNotContainsEquals($needle, iterable $haystack, string $message = ''): void
{
    Assert::assertNotContainsEquals(...\func_get_args());
}

/**
 * Asserts that a haystack that is stored in a static attribute of a class
 * or an attribute of an object does not contain a needle.
 *
 * @param object|string $haystackClassOrObject
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
 * @codeCoverageIgnore
 *
 * @see Assert::assertAttributeNotContains
 */
function assertAttributeNotContains($needle, string $haystackAttributeName, $haystackClassOrObject, string $message = '', bool $ignoreCase = false, bool $checkForObjectIdentity = true, bool $checkForNonObjectIdentity = false): void
{
    Assert::assertAttributeNotContains(...\func_get_args());
}

/**
 * Asserts that a haystack contains only values of a given type.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertContainsOnly
 */
function assertContainsOnly(string $type, iterable $haystack, ?bool $isNativeType = null, string $message = ''): void
{
    Assert::assertContainsOnly(...\func_get_args());
}

/**
 * Asserts that a haystack contains only instances of a given class name.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertContainsOnlyInstancesOf
 */
function assertContainsOnlyInstancesOf(string $className, iterable $haystack, string $message = ''): void
{
    Assert::assertContainsOnlyInstancesOf(...\func_get_args());
}

/**
 * Asserts that a haystack that is stored in a static attribute of a class
 * or an attribute of an object contains only values of a given type.
 *
 * @param object|string $haystackClassOrObject
 * @param bool          $isNativeType
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
 * @codeCoverageIgnore
 *
 * @see Assert::assertAttributeContainsOnly
 */
function assertAttributeContainsOnly(string $type, string $haystackAttributeName, $haystackClassOrObject, ?bool $isNativeType = null, string $message = ''): void
{
    Assert::assertAttributeContainsOnly(...\func_get_args());
}

/**
 * Asserts that a haystack does not contain only values of a given type.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertNotContainsOnly
 */
function assertNotContainsOnly(string $type, iterable $haystack, ?bool $isNativeType = null, string $message = ''): void
{
    Assert::assertNotContainsOnly(...\func_get_args());
}

/**
 * Asserts that a haystack that is stored in a static attribute of a class
 * or an attribute of an object does not contain only values of a given
 * type.
 *
 * @param object|string $haystackClassOrObject
 * @param bool          $isNativeType
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
 * @codeCoverageIgnore
 *
 * @see Assert::assertAttributeNotContainsOnly
 */
function assertAttributeNotContainsOnly(string $type, string $haystackAttributeName, $haystackClassOrObject, ?bool $isNativeType = null, string $message = ''): void
{
    Assert::assertAttributeNotContainsOnly(...\func_get_args());
}

/**
 * Asserts the number of elements of an array, Countable or Traversable.
 *
 * @param Countable|iterable $haystack
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @see Assert::assertCount
 */
function assertCount(int $expectedCount, $haystack, string $message = ''): void
{
    Assert::assertCount(...\func_get_args());
}

/**
 * Asserts the number of elements of an array, Countable or Traversable
 * that is stored in an attribute.
 *
 * @param object|string $haystackClassOrObject
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
 * @codeCoverageIgnore
 *
 * @see Assert::assertAttributeCount
 */
function assertAttributeCount(int $expectedCount, string $haystackAttributeName, $haystackClassOrObject, string $message = ''): void
{
    Assert::assertAttributeCount(...\func_get_args());
}

/**
 * Asserts the number of elements of an array, Countable or Traversable.
 *
 * @param Countable|iterable $haystack
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @see Assert::assertNotCount
 */
function assertNotCount(int $expectedCount, $haystack, string $message = ''): void
{
    Assert::assertNotCount(...\func_get_args());
}

/**
 * Asserts the number of elements of an array, Countable or Traversable
 * that is stored in an attribute.
 *
 * @param object|string $haystackClassOrObject
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
 * @codeCoverageIgnore
 *
 * @see Assert::assertAttributeNotCount
 */
function assertAttributeNotCount(int $expectedCount, string $haystackAttributeName, $haystackClassOrObject, string $message = ''): void
{
    Assert::assertAttributeNotCount(...\func_get_args());
}

/**
 * Asserts that two variables are equal.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertEquals
 */
function assertEquals($expected, $actual, string $message = '', float $delta = 0.0, int $maxDepth = 10, bool $canonicalize = false, bool $ignoreCase = false): void
{
    Assert::assertEquals(...\func_get_args());
}

/**
 * Asserts that two variables are equal (canonicalizing).
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertEqualsCanonicalizing
 */
function assertEqualsCanonicalizing($expected, $actual, string $message = ''): void
{
    Assert::assertEqualsCanonicalizing(...\func_get_args());
}

/**
 * Asserts that two variables are equal (ignoring case).
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertEqualsIgnoringCase
 */
function assertEqualsIgnoringCase($expected, $actual, string $message = ''): void
{
    Assert::assertEqualsIgnoringCase(...\func_get_args());
}

/**
 * Asserts that two variables are equal (with delta).
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertEqualsWithDelta
 */
function assertEqualsWithDelta($expected, $actual, float $delta, string $message = ''): void
{
    Assert::assertEqualsWithDelta(...\func_get_args());
}

/**
 * Asserts that a variable is equal to an attribute of an object.
 *
 * @param object|string $actualClassOrObject
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
 * @codeCoverageIgnore
 *
 * @see Assert::assertAttributeEquals
 */
function assertAttributeEquals($expected, string $actualAttributeName, $actualClassOrObject, string $message = '', float $delta = 0.0, int $maxDepth = 10, bool $canonicalize = false, bool $ignoreCase = false): void
{
    Assert::assertAttributeEquals(...\func_get_args());
}

/**
 * Asserts that two variables are not equal.
 *
 * @param float $delta
 * @param int   $maxDepth
 * @param bool  $canonicalize
 * @param bool  $ignoreCase
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertNotEquals
 */
function assertNotEquals($expected, $actual, string $message = '', $delta = 0.0, $maxDepth = 10, $canonicalize = false, $ignoreCase = false): void
{
    Assert::assertNotEquals(...\func_get_args());
}

/**
 * Asserts that two variables are not equal (canonicalizing).
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertNotEqualsCanonicalizing
 */
function assertNotEqualsCanonicalizing($expected, $actual, string $message = ''): void
{
    Assert::assertNotEqualsCanonicalizing(...\func_get_args());
}

/**
 * Asserts that two variables are not equal (ignoring case).
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertNotEqualsIgnoringCase
 */
function assertNotEqualsIgnoringCase($expected, $actual, string $message = ''): void
{
    Assert::assertNotEqualsIgnoringCase(...\func_get_args());
}

/**
 * Asserts that two variables are not equal (with delta).
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertNotEqualsWithDelta
 */
function assertNotEqualsWithDelta($expected, $actual, float $delta, string $message = ''): void
{
    Assert::assertNotEqualsWithDelta(...\func_get_args());
}

/**
 * Asserts that a variable is not equal to an attribute of an object.
 *
 * @param object|string $actualClassOrObject
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
 * @codeCoverageIgnore
 *
 * @see Assert::assertAttributeNotEquals
 */
function assertAttributeNotEquals($expected, string $actualAttributeName, $actualClassOrObject, string $message = '', float $delta = 0.0, int $maxDepth = 10, bool $canonicalize = false, bool $ignoreCase = false): void
{
    Assert::assertAttributeNotEquals(...\func_get_args());
}

/**
 * Asserts that a variable is empty.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @psalm-assert empty $actual
 *
 * @see Assert::assertEmpty
 */
function assertEmpty($actual, string $message = ''): void
{
    Assert::assertEmpty(...\func_get_args());
}

/**
 * Asserts that a static attribute of a class or an attribute of an object
 * is empty.
 *
 * @param object|string $haystackClassOrObject
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
 * @codeCoverageIgnore
 *
 * @see Assert::assertAttributeEmpty
 */
function assertAttributeEmpty(string $haystackAttributeName, $haystackClassOrObject, string $message = ''): void
{
    Assert::assertAttributeEmpty(...\func_get_args());
}

/**
 * Asserts that a variable is not empty.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @psalm-assert !empty $actual
 *
 * @see Assert::assertNotEmpty
 */
function assertNotEmpty($actual, string $message = ''): void
{
    Assert::assertNotEmpty(...\func_get_args());
}

/**
 * Asserts that a static attribute of a class or an attribute of an object
 * is not empty.
 *
 * @param object|string $haystackClassOrObject
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
 * @codeCoverageIgnore
 *
 * @see Assert::assertAttributeNotEmpty
 */
function assertAttributeNotEmpty(string $haystackAttributeName, $haystackClassOrObject, string $message = ''): void
{
    Assert::assertAttributeNotEmpty(...\func_get_args());
}

/**
 * Asserts that a value is greater than another value.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertGreaterThan
 */
function assertGreaterThan($expected, $actual, string $message = ''): void
{
    Assert::assertGreaterThan(...\func_get_args());
}

/**
 * Asserts that an attribute is greater than another value.
 *
 * @param object|string $actualClassOrObject
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
 * @codeCoverageIgnore
 *
 * @see Assert::assertAttributeGreaterThan
 */
function assertAttributeGreaterThan($expected, string $actualAttributeName, $actualClassOrObject, string $message = ''): void
{
    Assert::assertAttributeGreaterThan(...\func_get_args());
}

/**
 * Asserts that a value is greater than or equal to another value.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertGreaterThanOrEqual
 */
function assertGreaterThanOrEqual($expected, $actual, string $message = ''): void
{
    Assert::assertGreaterThanOrEqual(...\func_get_args());
}

/**
 * Asserts that an attribute is greater than or equal to another value.
 *
 * @param object|string $actualClassOrObject
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
 * @codeCoverageIgnore
 *
 * @see Assert::assertAttributeGreaterThanOrEqual
 */
function assertAttributeGreaterThanOrEqual($expected, string $actualAttributeName, $actualClassOrObject, string $message = ''): void
{
    Assert::assertAttributeGreaterThanOrEqual(...\func_get_args());
}

/**
 * Asserts that a value is smaller than another value.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertLessThan
 */
function assertLessThan($expected, $actual, string $message = ''): void
{
    Assert::assertLessThan(...\func_get_args());
}

/**
 * Asserts that an attribute is smaller than another value.
 *
 * @param object|string $actualClassOrObject
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
 * @codeCoverageIgnore
 *
 * @see Assert::assertAttributeLessThan
 */
function assertAttributeLessThan($expected, string $actualAttributeName, $actualClassOrObject, string $message = ''): void
{
    Assert::assertAttributeLessThan(...\func_get_args());
}

/**
 * Asserts that a value is smaller than or equal to another value.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertLessThanOrEqual
 */
function assertLessThanOrEqual($expected, $actual, string $message = ''): void
{
    Assert::assertLessThanOrEqual(...\func_get_args());
}

/**
 * Asserts that an attribute is smaller than or equal to another value.
 *
 * @param object|string $actualClassOrObject
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
 * @codeCoverageIgnore
 *
 * @see Assert::assertAttributeLessThanOrEqual
 */
function assertAttributeLessThanOrEqual($expected, string $actualAttributeName, $actualClassOrObject, string $message = ''): void
{
    Assert::assertAttributeLessThanOrEqual(...\func_get_args());
}

/**
 * Asserts that the contents of one file is equal to the contents of another
 * file.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertFileEquals
 */
function assertFileEquals(string $expected, string $actual, string $message = '', bool $canonicalize = false, bool $ignoreCase = false): void
{
    Assert::assertFileEquals(...\func_get_args());
}

/**
 * Asserts that the contents of one file is not equal to the contents of
 * another file.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertFileNotEquals
 */
function assertFileNotEquals(string $expected, string $actual, string $message = '', bool $canonicalize = false, bool $ignoreCase = false): void
{
    Assert::assertFileNotEquals(...\func_get_args());
}

/**
 * Asserts that the contents of a string is equal
 * to the contents of a file.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertStringEqualsFile
 */
function assertStringEqualsFile(string $expectedFile, string $actualString, string $message = '', bool $canonicalize = false, bool $ignoreCase = false): void
{
    Assert::assertStringEqualsFile(...\func_get_args());
}

/**
 * Asserts that the contents of a string is not equal
 * to the contents of a file.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertStringNotEqualsFile
 */
function assertStringNotEqualsFile(string $expectedFile, string $actualString, string $message = '', bool $canonicalize = false, bool $ignoreCase = false): void
{
    Assert::assertStringNotEqualsFile(...\func_get_args());
}

/**
 * Asserts that a file/dir is readable.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertIsReadable
 */
function assertIsReadable(string $filename, string $message = ''): void
{
    Assert::assertIsReadable(...\func_get_args());
}

/**
 * Asserts that a file/dir exists and is not readable.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertNotIsReadable
 */
function assertNotIsReadable(string $filename, string $message = ''): void
{
    Assert::assertNotIsReadable(...\func_get_args());
}

/**
 * Asserts that a file/dir exists and is writable.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertIsWritable
 */
function assertIsWritable(string $filename, string $message = ''): void
{
    Assert::assertIsWritable(...\func_get_args());
}

/**
 * Asserts that a file/dir exists and is not writable.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertNotIsWritable
 */
function assertNotIsWritable(string $filename, string $message = ''): void
{
    Assert::assertNotIsWritable(...\func_get_args());
}

/**
 * Asserts that a directory exists.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertDirectoryExists
 */
function assertDirectoryExists(string $directory, string $message = ''): void
{
    Assert::assertDirectoryExists(...\func_get_args());
}

/**
 * Asserts that a directory does not exist.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertDirectoryNotExists
 */
function assertDirectoryNotExists(string $directory, string $message = ''): void
{
    Assert::assertDirectoryNotExists(...\func_get_args());
}

/**
 * Asserts that a directory exists and is readable.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertDirectoryIsReadable
 */
function assertDirectoryIsReadable(string $directory, string $message = ''): void
{
    Assert::assertDirectoryIsReadable(...\func_get_args());
}

/**
 * Asserts that a directory exists and is not readable.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertDirectoryNotIsReadable
 */
function assertDirectoryNotIsReadable(string $directory, string $message = ''): void
{
    Assert::assertDirectoryNotIsReadable(...\func_get_args());
}

/**
 * Asserts that a directory exists and is writable.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertDirectoryIsWritable
 */
function assertDirectoryIsWritable(string $directory, string $message = ''): void
{
    Assert::assertDirectoryIsWritable(...\func_get_args());
}

/**
 * Asserts that a directory exists and is not writable.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertDirectoryNotIsWritable
 */
function assertDirectoryNotIsWritable(string $directory, string $message = ''): void
{
    Assert::assertDirectoryNotIsWritable(...\func_get_args());
}

/**
 * Asserts that a file exists.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertFileExists
 */
function assertFileExists(string $filename, string $message = ''): void
{
    Assert::assertFileExists(...\func_get_args());
}

/**
 * Asserts that a file does not exist.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertFileNotExists
 */
function assertFileNotExists(string $filename, string $message = ''): void
{
    Assert::assertFileNotExists(...\func_get_args());
}

/**
 * Asserts that a file exists and is readable.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertFileIsReadable
 */
function assertFileIsReadable(string $file, string $message = ''): void
{
    Assert::assertFileIsReadable(...\func_get_args());
}

/**
 * Asserts that a file exists and is not readable.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertFileNotIsReadable
 */
function assertFileNotIsReadable(string $file, string $message = ''): void
{
    Assert::assertFileNotIsReadable(...\func_get_args());
}

/**
 * Asserts that a file exists and is writable.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertFileIsWritable
 */
function assertFileIsWritable(string $file, string $message = ''): void
{
    Assert::assertFileIsWritable(...\func_get_args());
}

/**
 * Asserts that a file exists and is not writable.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertFileNotIsWritable
 */
function assertFileNotIsWritable(string $file, string $message = ''): void
{
    Assert::assertFileNotIsWritable(...\func_get_args());
}

/**
 * Asserts that a condition is true.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @psalm-assert true $condition
 *
 * @see Assert::assertTrue
 */
function assertTrue($condition, string $message = ''): void
{
    Assert::assertTrue(...\func_get_args());
}

/**
 * Asserts that a condition is not true.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @psalm-assert !true $condition
 *
 * @see Assert::assertNotTrue
 */
function assertNotTrue($condition, string $message = ''): void
{
    Assert::assertNotTrue(...\func_get_args());
}

/**
 * Asserts that a condition is false.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @psalm-assert false $condition
 *
 * @see Assert::assertFalse
 */
function assertFalse($condition, string $message = ''): void
{
    Assert::assertFalse(...\func_get_args());
}

/**
 * Asserts that a condition is not false.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @psalm-assert !false $condition
 *
 * @see Assert::assertNotFalse
 */
function assertNotFalse($condition, string $message = ''): void
{
    Assert::assertNotFalse(...\func_get_args());
}

/**
 * Asserts that a variable is null.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @psalm-assert null $actual
 *
 * @see Assert::assertNull
 */
function assertNull($actual, string $message = ''): void
{
    Assert::assertNull(...\func_get_args());
}

/**
 * Asserts that a variable is not null.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @psalm-assert !null $actual
 *
 * @see Assert::assertNotNull
 */
function assertNotNull($actual, string $message = ''): void
{
    Assert::assertNotNull(...\func_get_args());
}

/**
 * Asserts that a variable is finite.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertFinite
 */
function assertFinite($actual, string $message = ''): void
{
    Assert::assertFinite(...\func_get_args());
}

/**
 * Asserts that a variable is infinite.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertInfinite
 */
function assertInfinite($actual, string $message = ''): void
{
    Assert::assertInfinite(...\func_get_args());
}

/**
 * Asserts that a variable is nan.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertNan
 */
function assertNan($actual, string $message = ''): void
{
    Assert::assertNan(...\func_get_args());
}

/**
 * Asserts that a class has a specified attribute.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @see Assert::assertClassHasAttribute
 */
function assertClassHasAttribute(string $attributeName, string $className, string $message = ''): void
{
    Assert::assertClassHasAttribute(...\func_get_args());
}

/**
 * Asserts that a class does not have a specified attribute.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @see Assert::assertClassNotHasAttribute
 */
function assertClassNotHasAttribute(string $attributeName, string $className, string $message = ''): void
{
    Assert::assertClassNotHasAttribute(...\func_get_args());
}

/**
 * Asserts that a class has a specified static attribute.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @see Assert::assertClassHasStaticAttribute
 */
function assertClassHasStaticAttribute(string $attributeName, string $className, string $message = ''): void
{
    Assert::assertClassHasStaticAttribute(...\func_get_args());
}

/**
 * Asserts that a class does not have a specified static attribute.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @see Assert::assertClassNotHasStaticAttribute
 */
function assertClassNotHasStaticAttribute(string $attributeName, string $className, string $message = ''): void
{
    Assert::assertClassNotHasStaticAttribute(...\func_get_args());
}

/**
 * Asserts that an object has a specified attribute.
 *
 * @param object $object
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @see Assert::assertObjectHasAttribute
 */
function assertObjectHasAttribute(string $attributeName, $object, string $message = ''): void
{
    Assert::assertObjectHasAttribute(...\func_get_args());
}

/**
 * Asserts that an object does not have a specified attribute.
 *
 * @param object $object
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @see Assert::assertObjectNotHasAttribute
 */
function assertObjectNotHasAttribute(string $attributeName, $object, string $message = ''): void
{
    Assert::assertObjectNotHasAttribute(...\func_get_args());
}

/**
 * Asserts that two variables have the same type and value.
 * Used on objects, it asserts that two variables reference
 * the same object.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @psalm-template ExpectedType
 * @psalm-param ExpectedType $expected
 * @psalm-assert =ExpectedType $actual
 *
 * @see Assert::assertSame
 */
function assertSame($expected, $actual, string $message = ''): void
{
    Assert::assertSame(...\func_get_args());
}

/**
 * Asserts that a variable and an attribute of an object have the same type
 * and value.
 *
 * @param object|string $actualClassOrObject
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
 * @codeCoverageIgnore
 *
 * @see Assert::assertAttributeSame
 */
function assertAttributeSame($expected, string $actualAttributeName, $actualClassOrObject, string $message = ''): void
{
    Assert::assertAttributeSame(...\func_get_args());
}

/**
 * Asserts that two variables do not have the same type and value.
 * Used on objects, it asserts that two variables do not reference
 * the same object.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertNotSame
 */
function assertNotSame($expected, $actual, string $message = ''): void
{
    Assert::assertNotSame(...\func_get_args());
}

/**
 * Asserts that a variable and an attribute of an object do not have the
 * same type and value.
 *
 * @param object|string $actualClassOrObject
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
 * @codeCoverageIgnore
 *
 * @see Assert::assertAttributeNotSame
 */
function assertAttributeNotSame($expected, string $actualAttributeName, $actualClassOrObject, string $message = ''): void
{
    Assert::assertAttributeNotSame(...\func_get_args());
}

/**
 * Asserts that a variable is of a given type.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @psalm-template ExpectedType of object
 * @psalm-param class-string<ExpectedType> $expected
 * @psalm-assert ExpectedType $actual
 *
 * @see Assert::assertInstanceOf
 */
function assertInstanceOf(string $expected, $actual, string $message = ''): void
{
    Assert::assertInstanceOf(...\func_get_args());
}

/**
 * Asserts that an attribute is of a given type.
 *
 * @param object|string $classOrObject
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
 * @codeCoverageIgnore
 *
 * @psalm-param class-string $expected
 *
 * @see Assert::assertAttributeInstanceOf
 */
function assertAttributeInstanceOf(string $expected, string $attributeName, $classOrObject, string $message = ''): void
{
    Assert::assertAttributeInstanceOf(...\func_get_args());
}

/**
 * Asserts that a variable is not of a given type.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @psalm-template ExpectedType of object
 * @psalm-param class-string<ExpectedType> $expected
 * @psalm-assert !ExpectedType $actual
 *
 * @see Assert::assertNotInstanceOf
 */
function assertNotInstanceOf(string $expected, $actual, string $message = ''): void
{
    Assert::assertNotInstanceOf(...\func_get_args());
}

/**
 * Asserts that an attribute is of a given type.
 *
 * @param object|string $classOrObject
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
 * @codeCoverageIgnore
 *
 * @psalm-param class-string $expected
 *
 * @see Assert::assertAttributeNotInstanceOf
 */
function assertAttributeNotInstanceOf(string $expected, string $attributeName, $classOrObject, string $message = ''): void
{
    Assert::assertAttributeNotInstanceOf(...\func_get_args());
}

/**
 * Asserts that a variable is of a given type.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3369
 * @codeCoverageIgnore
 *
 * @see Assert::assertInternalType
 */
function assertInternalType(string $expected, $actual, string $message = ''): void
{
    Assert::assertInternalType(...\func_get_args());
}

/**
 * Asserts that an attribute is of a given type.
 *
 * @param object|string $classOrObject
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
 * @codeCoverageIgnore
 *
 * @see Assert::assertAttributeInternalType
 */
function assertAttributeInternalType(string $expected, string $attributeName, $classOrObject, string $message = ''): void
{
    Assert::assertAttributeInternalType(...\func_get_args());
}

/**
 * Asserts that a variable is of type array.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @psalm-assert array $actual
 *
 * @see Assert::assertIsArray
 */
function assertIsArray($actual, string $message = ''): void
{
    Assert::assertIsArray(...\func_get_args());
}

/**
 * Asserts that a variable is of type bool.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @psalm-assert bool $actual
 *
 * @see Assert::assertIsBool
 */
function assertIsBool($actual, string $message = ''): void
{
    Assert::assertIsBool(...\func_get_args());
}

/**
 * Asserts that a variable is of type float.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @psalm-assert float $actual
 *
 * @see Assert::assertIsFloat
 */
function assertIsFloat($actual, string $message = ''): void
{
    Assert::assertIsFloat(...\func_get_args());
}

/**
 * Asserts that a variable is of type int.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @psalm-assert int $actual
 *
 * @see Assert::assertIsInt
 */
function assertIsInt($actual, string $message = ''): void
{
    Assert::assertIsInt(...\func_get_args());
}

/**
 * Asserts that a variable is of type numeric.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @psalm-assert numeric $actual
 *
 * @see Assert::assertIsNumeric
 */
function assertIsNumeric($actual, string $message = ''): void
{
    Assert::assertIsNumeric(...\func_get_args());
}

/**
 * Asserts that a variable is of type object.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @psalm-assert object $actual
 *
 * @see Assert::assertIsObject
 */
function assertIsObject($actual, string $message = ''): void
{
    Assert::assertIsObject(...\func_get_args());
}

/**
 * Asserts that a variable is of type resource.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @psalm-assert resource $actual
 *
 * @see Assert::assertIsResource
 */
function assertIsResource($actual, string $message = ''): void
{
    Assert::assertIsResource(...\func_get_args());
}

/**
 * Asserts that a variable is of type string.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @psalm-assert string $actual
 *
 * @see Assert::assertIsString
 */
function assertIsString($actual, string $message = ''): void
{
    Assert::assertIsString(...\func_get_args());
}

/**
 * Asserts that a variable is of type scalar.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @psalm-assert scalar $actual
 *
 * @see Assert::assertIsScalar
 */
function assertIsScalar($actual, string $message = ''): void
{
    Assert::assertIsScalar(...\func_get_args());
}

/**
 * Asserts that a variable is of type callable.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @psalm-assert callable $actual
 *
 * @see Assert::assertIsCallable
 */
function assertIsCallable($actual, string $message = ''): void
{
    Assert::assertIsCallable(...\func_get_args());
}

/**
 * Asserts that a variable is of type iterable.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @psalm-assert iterable $actual
 *
 * @see Assert::assertIsIterable
 */
function assertIsIterable($actual, string $message = ''): void
{
    Assert::assertIsIterable(...\func_get_args());
}

/**
 * Asserts that a variable is not of a given type.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3369
 * @codeCoverageIgnore
 *
 * @see Assert::assertNotInternalType
 */
function assertNotInternalType(string $expected, $actual, string $message = ''): void
{
    Assert::assertNotInternalType(...\func_get_args());
}

/**
 * Asserts that a variable is not of type array.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @psalm-assert !array $actual
 *
 * @see Assert::assertIsNotArray
 */
function assertIsNotArray($actual, string $message = ''): void
{
    Assert::assertIsNotArray(...\func_get_args());
}

/**
 * Asserts that a variable is not of type bool.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @psalm-assert !bool $actual
 *
 * @see Assert::assertIsNotBool
 */
function assertIsNotBool($actual, string $message = ''): void
{
    Assert::assertIsNotBool(...\func_get_args());
}

/**
 * Asserts that a variable is not of type float.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @psalm-assert !float $actual
 *
 * @see Assert::assertIsNotFloat
 */
function assertIsNotFloat($actual, string $message = ''): void
{
    Assert::assertIsNotFloat(...\func_get_args());
}

/**
 * Asserts that a variable is not of type int.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @psalm-assert !int $actual
 *
 * @see Assert::assertIsNotInt
 */
function assertIsNotInt($actual, string $message = ''): void
{
    Assert::assertIsNotInt(...\func_get_args());
}

/**
 * Asserts that a variable is not of type numeric.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @psalm-assert !numeric $actual
 *
 * @see Assert::assertIsNotNumeric
 */
function assertIsNotNumeric($actual, string $message = ''): void
{
    Assert::assertIsNotNumeric(...\func_get_args());
}

/**
 * Asserts that a variable is not of type object.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @psalm-assert !object $actual
 *
 * @see Assert::assertIsNotObject
 */
function assertIsNotObject($actual, string $message = ''): void
{
    Assert::assertIsNotObject(...\func_get_args());
}

/**
 * Asserts that a variable is not of type resource.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @psalm-assert !resource $actual
 *
 * @see Assert::assertIsNotResource
 */
function assertIsNotResource($actual, string $message = ''): void
{
    Assert::assertIsNotResource(...\func_get_args());
}

/**
 * Asserts that a variable is not of type string.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @psalm-assert !string $actual
 *
 * @see Assert::assertIsNotString
 */
function assertIsNotString($actual, string $message = ''): void
{
    Assert::assertIsNotString(...\func_get_args());
}

/**
 * Asserts that a variable is not of type scalar.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @psalm-assert !scalar $actual
 *
 * @see Assert::assertIsNotScalar
 */
function assertIsNotScalar($actual, string $message = ''): void
{
    Assert::assertIsNotScalar(...\func_get_args());
}

/**
 * Asserts that a variable is not of type callable.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @psalm-assert !callable $actual
 *
 * @see Assert::assertIsNotCallable
 */
function assertIsNotCallable($actual, string $message = ''): void
{
    Assert::assertIsNotCallable(...\func_get_args());
}

/**
 * Asserts that a variable is not of type iterable.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @psalm-assert !iterable $actual
 *
 * @see Assert::assertIsNotIterable
 */
function assertIsNotIterable($actual, string $message = ''): void
{
    Assert::assertIsNotIterable(...\func_get_args());
}

/**
 * Asserts that an attribute is of a given type.
 *
 * @param object|string $classOrObject
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
 * @codeCoverageIgnore
 *
 * @see Assert::assertAttributeNotInternalType
 */
function assertAttributeNotInternalType(string $expected, string $attributeName, $classOrObject, string $message = ''): void
{
    Assert::assertAttributeNotInternalType(...\func_get_args());
}

/**
 * Asserts that a string matches a given regular expression.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertRegExp
 */
function assertRegExp(string $pattern, string $string, string $message = ''): void
{
    Assert::assertRegExp(...\func_get_args());
}

/**
 * Asserts that a string does not match a given regular expression.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertNotRegExp
 */
function assertNotRegExp(string $pattern, string $string, string $message = ''): void
{
    Assert::assertNotRegExp(...\func_get_args());
}

/**
 * Assert that the size of two arrays (or `Countable` or `Traversable` objects)
 * is the same.
 *
 * @param Countable|iterable $expected
 * @param Countable|iterable $actual
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @see Assert::assertSameSize
 */
function assertSameSize($expected, $actual, string $message = ''): void
{
    Assert::assertSameSize(...\func_get_args());
}

/**
 * Assert that the size of two arrays (or `Countable` or `Traversable` objects)
 * is not the same.
 *
 * @param Countable|iterable $expected
 * @param Countable|iterable $actual
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @see Assert::assertNotSameSize
 */
function assertNotSameSize($expected, $actual, string $message = ''): void
{
    Assert::assertNotSameSize(...\func_get_args());
}

/**
 * Asserts that a string matches a given format string.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertStringMatchesFormat
 */
function assertStringMatchesFormat(string $format, string $string, string $message = ''): void
{
    Assert::assertStringMatchesFormat(...\func_get_args());
}

/**
 * Asserts that a string does not match a given format string.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertStringNotMatchesFormat
 */
function assertStringNotMatchesFormat(string $format, string $string, string $message = ''): void
{
    Assert::assertStringNotMatchesFormat(...\func_get_args());
}

/**
 * Asserts that a string matches a given format file.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertStringMatchesFormatFile
 */
function assertStringMatchesFormatFile(string $formatFile, string $string, string $message = ''): void
{
    Assert::assertStringMatchesFormatFile(...\func_get_args());
}

/**
 * Asserts that a string does not match a given format string.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertStringNotMatchesFormatFile
 */
function assertStringNotMatchesFormatFile(string $formatFile, string $string, string $message = ''): void
{
    Assert::assertStringNotMatchesFormatFile(...\func_get_args());
}

/**
 * Asserts that a string starts with a given prefix.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertStringStartsWith
 */
function assertStringStartsWith(string $prefix, string $string, string $message = ''): void
{
    Assert::assertStringStartsWith(...\func_get_args());
}

/**
 * Asserts that a string starts not with a given prefix.
 *
 * @param string $prefix
 * @param string $string
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertStringStartsNotWith
 */
function assertStringStartsNotWith($prefix, $string, string $message = ''): void
{
    Assert::assertStringStartsNotWith(...\func_get_args());
}

/**
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertStringContainsString
 */
function assertStringContainsString(string $needle, string $haystack, string $message = ''): void
{
    Assert::assertStringContainsString(...\func_get_args());
}

/**
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertStringContainsStringIgnoringCase
 */
function assertStringContainsStringIgnoringCase(string $needle, string $haystack, string $message = ''): void
{
    Assert::assertStringContainsStringIgnoringCase(...\func_get_args());
}

/**
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertStringNotContainsString
 */
function assertStringNotContainsString(string $needle, string $haystack, string $message = ''): void
{
    Assert::assertStringNotContainsString(...\func_get_args());
}

/**
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertStringNotContainsStringIgnoringCase
 */
function assertStringNotContainsStringIgnoringCase(string $needle, string $haystack, string $message = ''): void
{
    Assert::assertStringNotContainsStringIgnoringCase(...\func_get_args());
}

/**
 * Asserts that a string ends with a given suffix.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertStringEndsWith
 */
function assertStringEndsWith(string $suffix, string $string, string $message = ''): void
{
    Assert::assertStringEndsWith(...\func_get_args());
}

/**
 * Asserts that a string ends not with a given suffix.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertStringEndsNotWith
 */
function assertStringEndsNotWith(string $suffix, string $string, string $message = ''): void
{
    Assert::assertStringEndsNotWith(...\func_get_args());
}

/**
 * Asserts that two XML files are equal.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @see Assert::assertXmlFileEqualsXmlFile
 */
function assertXmlFileEqualsXmlFile(string $expectedFile, string $actualFile, string $message = ''): void
{
    Assert::assertXmlFileEqualsXmlFile(...\func_get_args());
}

/**
 * Asserts that two XML files are not equal.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @see Assert::assertXmlFileNotEqualsXmlFile
 */
function assertXmlFileNotEqualsXmlFile(string $expectedFile, string $actualFile, string $message = ''): void
{
    Assert::assertXmlFileNotEqualsXmlFile(...\func_get_args());
}

/**
 * Asserts that two XML documents are equal.
 *
 * @param DOMDocument|string $actualXml
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @see Assert::assertXmlStringEqualsXmlFile
 */
function assertXmlStringEqualsXmlFile(string $expectedFile, $actualXml, string $message = ''): void
{
    Assert::assertXmlStringEqualsXmlFile(...\func_get_args());
}

/**
 * Asserts that two XML documents are not equal.
 *
 * @param DOMDocument|string $actualXml
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @see Assert::assertXmlStringNotEqualsXmlFile
 */
function assertXmlStringNotEqualsXmlFile(string $expectedFile, $actualXml, string $message = ''): void
{
    Assert::assertXmlStringNotEqualsXmlFile(...\func_get_args());
}

/**
 * Asserts that two XML documents are equal.
 *
 * @param DOMDocument|string $expectedXml
 * @param DOMDocument|string $actualXml
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @see Assert::assertXmlStringEqualsXmlString
 */
function assertXmlStringEqualsXmlString($expectedXml, $actualXml, string $message = ''): void
{
    Assert::assertXmlStringEqualsXmlString(...\func_get_args());
}

/**
 * Asserts that two XML documents are not equal.
 *
 * @param DOMDocument|string $expectedXml
 * @param DOMDocument|string $actualXml
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 * @throws Exception
 *
 * @see Assert::assertXmlStringNotEqualsXmlString
 */
function assertXmlStringNotEqualsXmlString($expectedXml, $actualXml, string $message = ''): void
{
    Assert::assertXmlStringNotEqualsXmlString(...\func_get_args());
}

/**
 * Asserts that a hierarchy of DOMElements matches.
 *
 * @throws AssertionFailedError
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertEqualXMLStructure
 */
function assertEqualXMLStructure(DOMElement $expectedElement, DOMElement $actualElement, bool $checkAttributes = false, string $message = ''): void
{
    Assert::assertEqualXMLStructure(...\func_get_args());
}

/**
 * Evaluates a PHPUnit\Framework\Constraint matcher object.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertThat
 */
function assertThat($value, Constraint $constraint, string $message = ''): void
{
    Assert::assertThat(...\func_get_args());
}

/**
 * Asserts that a string is a valid JSON string.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertJson
 */
function assertJson(string $actualJson, string $message = ''): void
{
    Assert::assertJson(...\func_get_args());
}

/**
 * Asserts that two given JSON encoded objects or arrays are equal.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertJsonStringEqualsJsonString
 */
function assertJsonStringEqualsJsonString(string $expectedJson, string $actualJson, string $message = ''): void
{
    Assert::assertJsonStringEqualsJsonString(...\func_get_args());
}

/**
 * Asserts that two given JSON encoded objects or arrays are not equal.
 *
 * @param string $expectedJson
 * @param string $actualJson
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertJsonStringNotEqualsJsonString
 */
function assertJsonStringNotEqualsJsonString($expectedJson, $actualJson, string $message = ''): void
{
    Assert::assertJsonStringNotEqualsJsonString(...\func_get_args());
}

/**
 * Asserts that the generated JSON encoded object and the content of the given file are equal.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertJsonStringEqualsJsonFile
 */
function assertJsonStringEqualsJsonFile(string $expectedFile, string $actualJson, string $message = ''): void
{
    Assert::assertJsonStringEqualsJsonFile(...\func_get_args());
}

/**
 * Asserts that the generated JSON encoded object and the content of the given file are not equal.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertJsonStringNotEqualsJsonFile
 */
function assertJsonStringNotEqualsJsonFile(string $expectedFile, string $actualJson, string $message = ''): void
{
    Assert::assertJsonStringNotEqualsJsonFile(...\func_get_args());
}

/**
 * Asserts that two JSON files are equal.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertJsonFileEqualsJsonFile
 */
function assertJsonFileEqualsJsonFile(string $expectedFile, string $actualFile, string $message = ''): void
{
    Assert::assertJsonFileEqualsJsonFile(...\func_get_args());
}

/**
 * Asserts that two JSON files are not equal.
 *
 * @throws ExpectationFailedException
 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
 *
 * @see Assert::assertJsonFileNotEqualsJsonFile
 */
function assertJsonFileNotEqualsJsonFile(string $expectedFile, string $actualFile, string $message = ''): void
{
    Assert::assertJsonFileNotEqualsJsonFile(...\func_get_args());
}

function logicalAnd(): LogicalAnd
{
    return Assert::logicalAnd(...\func_get_args());
}

function logicalOr(): LogicalOr
{
    return Assert::logicalOr(...\func_get_args());
}

function logicalNot(Constraint $constraint): LogicalNot
{
    return Assert::logicalNot(...\func_get_args());
}

function logicalXor(): LogicalXor
{
    return Assert::logicalXor(...\func_get_args());
}

function anything(): IsAnything
{
    return Assert::anything(...\func_get_args());
}

function isTrue(): IsTrue
{
    return Assert::isTrue(...\func_get_args());
}

function callback(callable $callback): Callback
{
    return Assert::callback(...\func_get_args());
}

function isFalse(): IsFalse
{
    return Assert::isFalse(...\func_get_args());
}

function isJson(): IsJson
{
    return Assert::isJson(...\func_get_args());
}

function isNull(): IsNull
{
    return Assert::isNull(...\func_get_args());
}

function isFinite(): IsFinite
{
    return Assert::isFinite(...\func_get_args());
}

function isInfinite(): IsInfinite
{
    return Assert::isInfinite(...\func_get_args());
}

function isNan(): IsNan
{
    return Assert::isNan(...\func_get_args());
}

function attribute(Constraint $constraint, string $attributeName): Attribute
{
    return Assert::attribute(...\func_get_args());
}

function contains($value, bool $checkForObjectIdentity = true, bool $checkForNonObjectIdentity = false): TraversableContains
{
    return Assert::contains(...\func_get_args());
}

function containsOnly(string $type): TraversableContainsOnly
{
    return Assert::containsOnly(...\func_get_args());
}

function containsOnlyInstancesOf(string $className): TraversableContainsOnly
{
    return Assert::containsOnlyInstancesOf(...\func_get_args());
}

function arrayHasKey($key): ArrayHasKey
{
    return Assert::arrayHasKey(...\func_get_args());
}

function equalTo($value, float $delta = 0.0, int $maxDepth = 10, bool $canonicalize = false, bool $ignoreCase = false): IsEqual
{
    return Assert::equalTo(...\func_get_args());
}

function attributeEqualTo(string $attributeName, $value, float $delta = 0.0, int $maxDepth = 10, bool $canonicalize = false, bool $ignoreCase = false): Attribute
{
    return Assert::attributeEqualTo(...\func_get_args());
}

function isEmpty(): IsEmpty
{
    return Assert::isEmpty(...\func_get_args());
}

function isWritable(): IsWritable
{
    return Assert::isWritable(...\func_get_args());
}

function isReadable(): IsReadable
{
    return Assert::isReadable(...\func_get_args());
}

function directoryExists(): DirectoryExists
{
    return Assert::directoryExists(...\func_get_args());
}

function fileExists(): FileExists
{
    return Assert::fileExists(...\func_get_args());
}

function greaterThan($value): GreaterThan
{
    return Assert::greaterThan(...\func_get_args());
}

function greaterThanOrEqual($value): LogicalOr
{
    return Assert::greaterThanOrEqual(...\func_get_args());
}

function classHasAttribute(string $attributeName): ClassHasAttribute
{
    return Assert::classHasAttribute(...\func_get_args());
}

function classHasStaticAttribute(string $attributeName): ClassHasStaticAttribute
{
    return Assert::classHasStaticAttribute(...\func_get_args());
}

function objectHasAttribute($attributeName): ObjectHasAttribute
{
    return Assert::objectHasAttribute(...\func_get_args());
}

function identicalTo($value): IsIdentical
{
    return Assert::identicalTo(...\func_get_args());
}

function isInstanceOf(string $className): IsInstanceOf
{
    return Assert::isInstanceOf(...\func_get_args());
}

function isType(string $type): IsType
{
    return Assert::isType(...\func_get_args());
}

function lessThan($value): LessThan
{
    return Assert::lessThan(...\func_get_args());
}

function lessThanOrEqual($value): LogicalOr
{
    return Assert::lessThanOrEqual(...\func_get_args());
}

function matchesRegularExpression(string $pattern): RegularExpression
{
    return Assert::matchesRegularExpression(...\func_get_args());
}

function matches(string $string): StringMatchesFormatDescription
{
    return Assert::matches(...\func_get_args());
}

function stringStartsWith($prefix): StringStartsWith
{
    return Assert::stringStartsWith(...\func_get_args());
}

function stringContains(string $string, bool $case = true): StringContains
{
    return Assert::stringContains(...\func_get_args());
}

function stringEndsWith(string $suffix): StringEndsWith
{
    return Assert::stringEndsWith(...\func_get_args());
}

function countOf(int $count): Count
{
    return Assert::countOf(...\func_get_args());
}

/**
 * Returns a matcher that matches when the method is executed
 * zero or more times.
 */
function any(): AnyInvokedCountMatcher
{
    return new AnyInvokedCountMatcher;
}

/**
 * Returns a matcher that matches when the method is never executed.
 */
function never(): InvokedCountMatcher
{
    return new InvokedCountMatcher(0);
}

/**
 * Returns a matcher that matches when the method is executed
 * at least N times.
 */
function atLeast(int $requiredInvocations): InvokedAtLeastCountMatcher
{
    return new InvokedAtLeastCountMatcher(
        $requiredInvocations
    );
}

/**
 * Returns a matcher that matches when the method is executed at least once.
 */
function atLeastOnce(): InvokedAtLeastOnceMatcher
{
    return new InvokedAtLeastOnceMatcher;
}

/**
 * Returns a matcher that matches when the method is executed exactly once.
 */
function once(): InvokedCountMatcher
{
    return new InvokedCountMatcher(1);
}

/**
 * Returns a matcher that matches when the method is executed
 * exactly $count times.
 */
function exactly(int $count): InvokedCountMatcher
{
    return new InvokedCountMatcher($count);
}

/**
 * Returns a matcher that matches when the method is executed
 * at most N times.
 */
function atMost(int $allowedInvocations): InvokedAtMostCountMatcher
{
    return new InvokedAtMostCountMatcher($allowedInvocations);
}

/**
 * Returns a matcher that matches when the method is executed
 * at the given index.
 */
function at(int $index): InvokedAtIndexMatcher
{
    return new InvokedAtIndexMatcher($index);
}

function returnValue($value): ReturnStub
{
    return new ReturnStub($value);
}

function returnValueMap(array $valueMap): ReturnValueMapStub
{
    return new ReturnValueMapStub($valueMap);
}

function returnArgument(int $argumentIndex): ReturnArgumentStub
{
    return new ReturnArgumentStub($argumentIndex);
}

function returnCallback($callback): ReturnCallbackStub
{
    return new ReturnCallbackStub($callback);
}

/**
 * Returns the current object.
 *
 * This method is useful when mocking a fluent interface.
 */
function returnSelf(): ReturnSelfStub
{
    return new ReturnSelfStub;
}

function throwException(Throwable $exception): ExceptionStub
{
    return new ExceptionStub($exception);
}

function onConsecutiveCalls(): ConsecutiveCallsStub
{
    $args = \func_get_args();

    return new ConsecutiveCallsStub($args);
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class DataProviderTestSuite extends TestSuite
{
    /**
     * @var string[]
     */
    private $dependencies = [];

    /**
     * @param string[] $dependencies
     */
    public function setDependencies(array $dependencies): void
    {
        $this->dependencies = $dependencies;

        foreach ($this->tests as $test) {
            $test->setDependencies($dependencies);
        }
    }

    public function getDependencies(): array
    {
        return $this->dependencies;
    }

    public function hasDependencies(): bool
    {
        return \count($this->dependencies) > 0;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework;

use ArrayAccess;
use Countable;
use DOMDocument;
use DOMElement;
use PHPUnit\Framework\Constraint\ArrayHasKey;
use PHPUnit\Framework\Constraint\ArraySubset;
use PHPUnit\Framework\Constraint\Attribute;
use PHPUnit\Framework\Constraint\Callback;
use PHPUnit\Framework\Constraint\ClassHasAttribute;
use PHPUnit\Framework\Constraint\ClassHasStaticAttribute;
use PHPUnit\Framework\Constraint\Constraint;
use PHPUnit\Framework\Constraint\Count;
use PHPUnit\Framework\Constraint\DirectoryExists;
use PHPUnit\Framework\Constraint\FileExists;
use PHPUnit\Framework\Constraint\GreaterThan;
use PHPUnit\Framework\Constraint\IsAnything;
use PHPUnit\Framework\Constraint\IsEmpty;
use PHPUnit\Framework\Constraint\IsEqual;
use PHPUnit\Framework\Constraint\IsFalse;
use PHPUnit\Framework\Constraint\IsFinite;
use PHPUnit\Framework\Constraint\IsIdentical;
use PHPUnit\Framework\Constraint\IsInfinite;
use PHPUnit\Framework\Constraint\IsInstanceOf;
use PHPUnit\Framework\Constraint\IsJson;
use PHPUnit\Framework\Constraint\IsNan;
use PHPUnit\Framework\Constraint\IsNull;
use PHPUnit\Framework\Constraint\IsReadable;
use PHPUnit\Framework\Constraint\IsTrue;
use PHPUnit\Framework\Constraint\IsType;
use PHPUnit\Framework\Constraint\IsWritable;
use PHPUnit\Framework\Constraint\JsonMatches;
use PHPUnit\Framework\Constraint\LessThan;
use PHPUnit\Framework\Constraint\LogicalAnd;
use PHPUnit\Framework\Constraint\LogicalNot;
use PHPUnit\Framework\Constraint\LogicalOr;
use PHPUnit\Framework\Constraint\LogicalXor;
use PHPUnit\Framework\Constraint\ObjectHasAttribute;
use PHPUnit\Framework\Constraint\RegularExpression;
use PHPUnit\Framework\Constraint\SameSize;
use PHPUnit\Framework\Constraint\StringContains;
use PHPUnit\Framework\Constraint\StringEndsWith;
use PHPUnit\Framework\Constraint\StringMatchesFormatDescription;
use PHPUnit\Framework\Constraint\StringStartsWith;
use PHPUnit\Framework\Constraint\TraversableContains;
use PHPUnit\Framework\Constraint\TraversableContainsOnly;
use PHPUnit\Util\InvalidArgumentHelper;
use PHPUnit\Util\Type;
use PHPUnit\Util\Xml;
use ReflectionClass;
use ReflectionObject;
use Traversable;

/**
 * A set of assertion methods.
 */
abstract class Assert
{
    /**
     * @var int
     */
    private static $count = 0;

    /**
     * Asserts that an array has a specified key.
     *
     * @param int|string        $key
     * @param array|ArrayAccess $array
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     */
    public static function assertArrayHasKey($key, $array, string $message = ''): void
    {
        if (!(\is_int($key) || \is_string($key))) {
            throw InvalidArgumentHelper::factory(
                1,
                'integer or string'
            );
        }

        if (!(\is_array($array) || $array instanceof ArrayAccess)) {
            throw InvalidArgumentHelper::factory(
                2,
                'array or ArrayAccess'
            );
        }

        $constraint = new ArrayHasKey($key);

        static::assertThat($array, $constraint, $message);
    }

    /**
     * Asserts that an array has a specified subset.
     *
     * @param array|ArrayAccess $subset
     * @param array|ArrayAccess $array
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     *
     * @codeCoverageIgnore
     *
     * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3494
     */
    public static function assertArraySubset($subset, $array, bool $checkForObjectIdentity = false, string $message = ''): void
    {
        self::createWarning('assertArraySubset() is deprecated and will be removed in PHPUnit 9.');

        if (!(\is_array($subset) || $subset instanceof ArrayAccess)) {
            throw InvalidArgumentHelper::factory(
                1,
                'array or ArrayAccess'
            );
        }

        if (!(\is_array($array) || $array instanceof ArrayAccess)) {
            throw InvalidArgumentHelper::factory(
                2,
                'array or ArrayAccess'
            );
        }

        $constraint = new ArraySubset($subset, $checkForObjectIdentity);

        static::assertThat($array, $constraint, $message);
    }

    /**
     * Asserts that an array does not have a specified key.
     *
     * @param int|string        $key
     * @param array|ArrayAccess $array
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     */
    public static function assertArrayNotHasKey($key, $array, string $message = ''): void
    {
        if (!(\is_int($key) || \is_string($key))) {
            throw InvalidArgumentHelper::factory(
                1,
                'integer or string'
            );
        }

        if (!(\is_array($array) || $array instanceof ArrayAccess)) {
            throw InvalidArgumentHelper::factory(
                2,
                'array or ArrayAccess'
            );
        }

        $constraint = new LogicalNot(
            new ArrayHasKey($key)
        );

        static::assertThat($array, $constraint, $message);
    }

    /**
     * Asserts that a haystack contains a needle.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     */
    public static function assertContains($needle, $haystack, string $message = '', bool $ignoreCase = false, bool $checkForObjectIdentity = true, bool $checkForNonObjectIdentity = false): void
    {
        // @codeCoverageIgnoreStart
        if (\is_string($haystack)) {
            self::createWarning('Using assertContains() with string haystacks is deprecated and will not be supported in PHPUnit 9. Refactor your test to use assertStringContainsString() or assertStringContainsStringIgnoringCase() instead.');
        }

        if (!$checkForObjectIdentity) {
            self::createWarning('The optional $checkForObjectIdentity parameter of assertContains() is deprecated and will be removed in PHPUnit 9. Refactor your test to use assertContainsEquals() instead.');
        }

        if ($checkForNonObjectIdentity) {
            self::createWarning('The optional $checkForNonObjectIdentity parameter of assertContains() is deprecated and will be removed in PHPUnit 9.');
        }

        if ($ignoreCase) {
            self::createWarning('The optional $ignoreCase parameter of assertContains() is deprecated and will be removed in PHPUnit 9.');
        }
        // @codeCoverageIgnoreEnd

        if (\is_array($haystack) ||
            (\is_object($haystack) && $haystack instanceof Traversable)) {
            $constraint = new TraversableContains(
                $needle,
                $checkForObjectIdentity,
                $checkForNonObjectIdentity
            );
        } elseif (\is_string($haystack)) {
            if (!\is_string($needle)) {
                throw InvalidArgumentHelper::factory(
                    1,
                    'string'
                );
            }

            $constraint = new StringContains(
                $needle,
                $ignoreCase
            );
        } else {
            throw InvalidArgumentHelper::factory(
                2,
                'array, traversable or string'
            );
        }

        static::assertThat($haystack, $constraint, $message);
    }

    public static function assertContainsEquals($needle, iterable $haystack, string $message = ''): void
    {
        $constraint = new TraversableContains($needle, false, false);

        static::assertThat($haystack, $constraint, $message);
    }

    /**
     * Asserts that a haystack that is stored in a static attribute of a class
     * or an attribute of an object contains a needle.
     *
     * @param object|string $haystackClassOrObject
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     *
     * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
     * @codeCoverageIgnore
     */
    public static function assertAttributeContains($needle, string $haystackAttributeName, $haystackClassOrObject, string $message = '', bool $ignoreCase = false, bool $checkForObjectIdentity = true, bool $checkForNonObjectIdentity = false): void
    {
        self::createWarning('assertAttributeContains() is deprecated and will be removed in PHPUnit 9.');

        static::assertContains(
            $needle,
            static::readAttribute($haystackClassOrObject, $haystackAttributeName),
            $message,
            $ignoreCase,
            $checkForObjectIdentity,
            $checkForNonObjectIdentity
        );
    }

    /**
     * Asserts that a haystack does not contain a needle.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     */
    public static function assertNotContains($needle, $haystack, string $message = '', bool $ignoreCase = false, bool $checkForObjectIdentity = true, bool $checkForNonObjectIdentity = false): void
    {
        // @codeCoverageIgnoreStart
        if (\is_string($haystack)) {
            self::createWarning('Using assertNotContains() with string haystacks is deprecated and will not be supported in PHPUnit 9. Refactor your test to use assertStringNotContainsString() or assertStringNotContainsStringIgnoringCase() instead.');
        }

        if (!$checkForObjectIdentity) {
            self::createWarning('The optional $checkForObjectIdentity parameter of assertNotContains() is deprecated and will be removed in PHPUnit 9. Refactor your test to use assertNotContainsEquals() instead.');
        }

        if ($checkForNonObjectIdentity) {
            self::createWarning('The optional $checkForNonObjectIdentity parameter of assertNotContains() is deprecated and will be removed in PHPUnit 9.');
        }

        if ($ignoreCase) {
            self::createWarning('The optional $ignoreCase parameter of assertNotContains() is deprecated and will be removed in PHPUnit 9.');
        }
        // @codeCoverageIgnoreEnd

        if (\is_array($haystack) ||
            (\is_object($haystack) && $haystack instanceof Traversable)) {
            $constraint = new LogicalNot(
                new TraversableContains(
                    $needle,
                    $checkForObjectIdentity,
                    $checkForNonObjectIdentity
                )
            );
        } elseif (\is_string($haystack)) {
            if (!\is_string($needle)) {
                throw InvalidArgumentHelper::factory(
                    1,
                    'string'
                );
            }

            $constraint = new LogicalNot(
                new StringContains(
                    $needle,
                    $ignoreCase
                )
            );
        } else {
            throw InvalidArgumentHelper::factory(
                2,
                'array, traversable or string'
            );
        }

        static::assertThat($haystack, $constraint, $message);
    }

    public static function assertNotContainsEquals($needle, iterable $haystack, string $message = ''): void
    {
        $constraint = new LogicalNot(new TraversableContains($needle, false, false));

        static::assertThat($haystack, $constraint, $message);
    }

    /**
     * Asserts that a haystack that is stored in a static attribute of a class
     * or an attribute of an object does not contain a needle.
     *
     * @param object|string $haystackClassOrObject
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     *
     * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
     * @codeCoverageIgnore
     */
    public static function assertAttributeNotContains($needle, string $haystackAttributeName, $haystackClassOrObject, string $message = '', bool $ignoreCase = false, bool $checkForObjectIdentity = true, bool $checkForNonObjectIdentity = false): void
    {
        self::createWarning('assertAttributeNotContains() is deprecated and will be removed in PHPUnit 9.');

        static::assertNotContains(
            $needle,
            static::readAttribute($haystackClassOrObject, $haystackAttributeName),
            $message,
            $ignoreCase,
            $checkForObjectIdentity,
            $checkForNonObjectIdentity
        );
    }

    /**
     * Asserts that a haystack contains only values of a given type.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertContainsOnly(string $type, iterable $haystack, ?bool $isNativeType = null, string $message = ''): void
    {
        if ($isNativeType === null) {
            $isNativeType = Type::isType($type);
        }

        static::assertThat(
            $haystack,
            new TraversableContainsOnly(
                $type,
                $isNativeType
            ),
            $message
        );
    }

    /**
     * Asserts that a haystack contains only instances of a given class name.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertContainsOnlyInstancesOf(string $className, iterable $haystack, string $message = ''): void
    {
        static::assertThat(
            $haystack,
            new TraversableContainsOnly(
                $className,
                false
            ),
            $message
        );
    }

    /**
     * Asserts that a haystack that is stored in a static attribute of a class
     * or an attribute of an object contains only values of a given type.
     *
     * @param object|string $haystackClassOrObject
     * @param bool          $isNativeType
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     *
     * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
     * @codeCoverageIgnore
     */
    public static function assertAttributeContainsOnly(string $type, string $haystackAttributeName, $haystackClassOrObject, ?bool $isNativeType = null, string $message = ''): void
    {
        self::createWarning('assertAttributeContainsOnly() is deprecated and will be removed in PHPUnit 9.');

        static::assertContainsOnly(
            $type,
            static::readAttribute($haystackClassOrObject, $haystackAttributeName),
            $isNativeType,
            $message
        );
    }

    /**
     * Asserts that a haystack does not contain only values of a given type.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertNotContainsOnly(string $type, iterable $haystack, ?bool $isNativeType = null, string $message = ''): void
    {
        if ($isNativeType === null) {
            $isNativeType = Type::isType($type);
        }

        static::assertThat(
            $haystack,
            new LogicalNot(
                new TraversableContainsOnly(
                    $type,
                    $isNativeType
                )
            ),
            $message
        );
    }

    /**
     * Asserts that a haystack that is stored in a static attribute of a class
     * or an attribute of an object does not contain only values of a given
     * type.
     *
     * @param object|string $haystackClassOrObject
     * @param bool          $isNativeType
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     *
     * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
     * @codeCoverageIgnore
     */
    public static function assertAttributeNotContainsOnly(string $type, string $haystackAttributeName, $haystackClassOrObject, ?bool $isNativeType = null, string $message = ''): void
    {
        self::createWarning('assertAttributeNotContainsOnly() is deprecated and will be removed in PHPUnit 9.');

        static::assertNotContainsOnly(
            $type,
            static::readAttribute($haystackClassOrObject, $haystackAttributeName),
            $isNativeType,
            $message
        );
    }

    /**
     * Asserts the number of elements of an array, Countable or Traversable.
     *
     * @param Countable|iterable $haystack
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     */
    public static function assertCount(int $expectedCount, $haystack, string $message = ''): void
    {
        if (!$haystack instanceof Countable && !\is_iterable($haystack)) {
            throw InvalidArgumentHelper::factory(2, 'countable or iterable');
        }

        static::assertThat(
            $haystack,
            new Count($expectedCount),
            $message
        );
    }

    /**
     * Asserts the number of elements of an array, Countable or Traversable
     * that is stored in an attribute.
     *
     * @param object|string $haystackClassOrObject
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     *
     * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
     * @codeCoverageIgnore
     */
    public static function assertAttributeCount(int $expectedCount, string $haystackAttributeName, $haystackClassOrObject, string $message = ''): void
    {
        self::createWarning('assertAttributeCount() is deprecated and will be removed in PHPUnit 9.');

        static::assertCount(
            $expectedCount,
            static::readAttribute($haystackClassOrObject, $haystackAttributeName),
            $message
        );
    }

    /**
     * Asserts the number of elements of an array, Countable or Traversable.
     *
     * @param Countable|iterable $haystack
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     */
    public static function assertNotCount(int $expectedCount, $haystack, string $message = ''): void
    {
        if (!$haystack instanceof Countable && !\is_iterable($haystack)) {
            throw InvalidArgumentHelper::factory(2, 'countable or iterable');
        }

        $constraint = new LogicalNot(
            new Count($expectedCount)
        );

        static::assertThat($haystack, $constraint, $message);
    }

    /**
     * Asserts the number of elements of an array, Countable or Traversable
     * that is stored in an attribute.
     *
     * @param object|string $haystackClassOrObject
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     *
     * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
     * @codeCoverageIgnore
     */
    public static function assertAttributeNotCount(int $expectedCount, string $haystackAttributeName, $haystackClassOrObject, string $message = ''): void
    {
        self::createWarning('assertAttributeNotCount() is deprecated and will be removed in PHPUnit 9.');

        static::assertNotCount(
            $expectedCount,
            static::readAttribute($haystackClassOrObject, $haystackAttributeName),
            $message
        );
    }

    /**
     * Asserts that two variables are equal.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertEquals($expected, $actual, string $message = '', float $delta = 0.0, int $maxDepth = 10, bool $canonicalize = false, bool $ignoreCase = false): void
    {
        // @codeCoverageIgnoreStart
        if ($delta !== 0.0) {
            self::createWarning('The optional $delta parameter of assertEquals() is deprecated and will be removed in PHPUnit 9. Refactor your test to use assertEqualsWithDelta() instead.');
        }

        if ($maxDepth !== 10) {
            self::createWarning('The optional $maxDepth parameter of assertEquals() is deprecated and will be removed in PHPUnit 9.');
        }

        if ($canonicalize) {
            self::createWarning('The optional $canonicalize parameter of assertEquals() is deprecated and will be removed in PHPUnit 9. Refactor your test to use assertEqualsCanonicalizing() instead.');
        }

        if ($ignoreCase) {
            self::createWarning('The optional $ignoreCase parameter of assertEquals() is deprecated and will be removed in PHPUnit 9. Refactor your test to use assertEqualsIgnoringCase() instead.');
        }
        // @codeCoverageIgnoreEnd

        $constraint = new IsEqual(
            $expected,
            $delta,
            $maxDepth,
            $canonicalize,
            $ignoreCase
        );

        static::assertThat($actual, $constraint, $message);
    }

    /**
     * Asserts that two variables are equal (canonicalizing).
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertEqualsCanonicalizing($expected, $actual, string $message = ''): void
    {
        $constraint = new IsEqual(
            $expected,
            0.0,
            10,
            true,
            false
        );

        static::assertThat($actual, $constraint, $message);
    }

    /**
     * Asserts that two variables are equal (ignoring case).
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertEqualsIgnoringCase($expected, $actual, string $message = ''): void
    {
        $constraint = new IsEqual(
            $expected,
            0.0,
            10,
            false,
            true
        );

        static::assertThat($actual, $constraint, $message);
    }

    /**
     * Asserts that two variables are equal (with delta).
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertEqualsWithDelta($expected, $actual, float $delta, string $message = ''): void
    {
        $constraint = new IsEqual(
            $expected,
            $delta
        );

        static::assertThat($actual, $constraint, $message);
    }

    /**
     * Asserts that a variable is equal to an attribute of an object.
     *
     * @param object|string $actualClassOrObject
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     *
     * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
     * @codeCoverageIgnore
     */
    public static function assertAttributeEquals($expected, string $actualAttributeName, $actualClassOrObject, string $message = '', float $delta = 0.0, int $maxDepth = 10, bool $canonicalize = false, bool $ignoreCase = false): void
    {
        self::createWarning('assertAttributeEquals() is deprecated and will be removed in PHPUnit 9.');

        static::assertEquals(
            $expected,
            static::readAttribute($actualClassOrObject, $actualAttributeName),
            $message,
            $delta,
            $maxDepth,
            $canonicalize,
            $ignoreCase
        );
    }

    /**
     * Asserts that two variables are not equal.
     *
     * @param float $delta
     * @param int   $maxDepth
     * @param bool  $canonicalize
     * @param bool  $ignoreCase
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertNotEquals($expected, $actual, string $message = '', $delta = 0.0, $maxDepth = 10, $canonicalize = false, $ignoreCase = false): void
    {
        // @codeCoverageIgnoreStart
        if ($delta !== 0.0) {
            self::createWarning('The optional $delta parameter of assertNotEquals() is deprecated and will be removed in PHPUnit 9. Refactor your test to use assertNotEqualsWithDelta() instead.');
        }

        if ($maxDepth !== 10) {
            self::createWarning('The optional $maxDepth parameter of assertNotEquals() is deprecated and will be removed in PHPUnit 9.');
        }

        if ($canonicalize) {
            self::createWarning('The optional $canonicalize parameter of assertNotEquals() is deprecated and will be removed in PHPUnit 9. Refactor your test to use assertNotEqualsCanonicalizing() instead.');
        }

        if ($ignoreCase) {
            self::createWarning('The optional $ignoreCase parameter of assertNotEquals() is deprecated and will be removed in PHPUnit 9. Refactor your test to use assertNotEqualsIgnoringCase() instead.');
        }
        // @codeCoverageIgnoreEnd

        $constraint = new LogicalNot(
            new IsEqual(
                $expected,
                $delta,
                $maxDepth,
                $canonicalize,
                $ignoreCase
            )
        );

        static::assertThat($actual, $constraint, $message);
    }

    /**
     * Asserts that two variables are not equal (canonicalizing).
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertNotEqualsCanonicalizing($expected, $actual, string $message = ''): void
    {
        $constraint = new LogicalNot(
            new IsEqual(
                $expected,
                0.0,
                10,
                true,
                false
            )
        );

        static::assertThat($actual, $constraint, $message);
    }

    /**
     * Asserts that two variables are not equal (ignoring case).
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertNotEqualsIgnoringCase($expected, $actual, string $message = ''): void
    {
        $constraint = new LogicalNot(
            new IsEqual(
                $expected,
                0.0,
                10,
                false,
                true
            )
        );

        static::assertThat($actual, $constraint, $message);
    }

    /**
     * Asserts that two variables are not equal (with delta).
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertNotEqualsWithDelta($expected, $actual, float $delta, string $message = ''): void
    {
        $constraint = new LogicalNot(
            new IsEqual(
                $expected,
                $delta
            )
        );

        static::assertThat($actual, $constraint, $message);
    }

    /**
     * Asserts that a variable is not equal to an attribute of an object.
     *
     * @param object|string $actualClassOrObject
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     *
     * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
     * @codeCoverageIgnore
     */
    public static function assertAttributeNotEquals($expected, string $actualAttributeName, $actualClassOrObject, string $message = '', float $delta = 0.0, int $maxDepth = 10, bool $canonicalize = false, bool $ignoreCase = false): void
    {
        self::createWarning('assertAttributeNotEquals() is deprecated and will be removed in PHPUnit 9.');

        static::assertNotEquals(
            $expected,
            static::readAttribute($actualClassOrObject, $actualAttributeName),
            $message,
            $delta,
            $maxDepth,
            $canonicalize,
            $ignoreCase
        );
    }

    /**
     * Asserts that a variable is empty.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @psalm-assert empty $actual
     */
    public static function assertEmpty($actual, string $message = ''): void
    {
        static::assertThat($actual, static::isEmpty(), $message);
    }

    /**
     * Asserts that a static attribute of a class or an attribute of an object
     * is empty.
     *
     * @param object|string $haystackClassOrObject
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     *
     * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
     * @codeCoverageIgnore
     */
    public static function assertAttributeEmpty(string $haystackAttributeName, $haystackClassOrObject, string $message = ''): void
    {
        self::createWarning('assertAttributeEmpty() is deprecated and will be removed in PHPUnit 9.');

        static::assertEmpty(
            static::readAttribute($haystackClassOrObject, $haystackAttributeName),
            $message
        );
    }

    /**
     * Asserts that a variable is not empty.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @psalm-assert !empty $actual
     */
    public static function assertNotEmpty($actual, string $message = ''): void
    {
        static::assertThat($actual, static::logicalNot(static::isEmpty()), $message);
    }

    /**
     * Asserts that a static attribute of a class or an attribute of an object
     * is not empty.
     *
     * @param object|string $haystackClassOrObject
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     *
     * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
     * @codeCoverageIgnore
     */
    public static function assertAttributeNotEmpty(string $haystackAttributeName, $haystackClassOrObject, string $message = ''): void
    {
        self::createWarning('assertAttributeNotEmpty() is deprecated and will be removed in PHPUnit 9.');

        static::assertNotEmpty(
            static::readAttribute($haystackClassOrObject, $haystackAttributeName),
            $message
        );
    }

    /**
     * Asserts that a value is greater than another value.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertGreaterThan($expected, $actual, string $message = ''): void
    {
        static::assertThat($actual, static::greaterThan($expected), $message);
    }

    /**
     * Asserts that an attribute is greater than another value.
     *
     * @param object|string $actualClassOrObject
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     *
     * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
     * @codeCoverageIgnore
     */
    public static function assertAttributeGreaterThan($expected, string $actualAttributeName, $actualClassOrObject, string $message = ''): void
    {
        self::createWarning('assertAttributeGreaterThan() is deprecated and will be removed in PHPUnit 9.');

        static::assertGreaterThan(
            $expected,
            static::readAttribute($actualClassOrObject, $actualAttributeName),
            $message
        );
    }

    /**
     * Asserts that a value is greater than or equal to another value.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertGreaterThanOrEqual($expected, $actual, string $message = ''): void
    {
        static::assertThat(
            $actual,
            static::greaterThanOrEqual($expected),
            $message
        );
    }

    /**
     * Asserts that an attribute is greater than or equal to another value.
     *
     * @param object|string $actualClassOrObject
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     *
     * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
     * @codeCoverageIgnore
     */
    public static function assertAttributeGreaterThanOrEqual($expected, string $actualAttributeName, $actualClassOrObject, string $message = ''): void
    {
        self::createWarning('assertAttributeGreaterThanOrEqual() is deprecated and will be removed in PHPUnit 9.');

        static::assertGreaterThanOrEqual(
            $expected,
            static::readAttribute($actualClassOrObject, $actualAttributeName),
            $message
        );
    }

    /**
     * Asserts that a value is smaller than another value.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertLessThan($expected, $actual, string $message = ''): void
    {
        static::assertThat($actual, static::lessThan($expected), $message);
    }

    /**
     * Asserts that an attribute is smaller than another value.
     *
     * @param object|string $actualClassOrObject
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     *
     * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
     * @codeCoverageIgnore
     */
    public static function assertAttributeLessThan($expected, string $actualAttributeName, $actualClassOrObject, string $message = ''): void
    {
        self::createWarning('assertAttributeLessThan() is deprecated and will be removed in PHPUnit 9.');

        static::assertLessThan(
            $expected,
            static::readAttribute($actualClassOrObject, $actualAttributeName),
            $message
        );
    }

    /**
     * Asserts that a value is smaller than or equal to another value.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertLessThanOrEqual($expected, $actual, string $message = ''): void
    {
        static::assertThat($actual, static::lessThanOrEqual($expected), $message);
    }

    /**
     * Asserts that an attribute is smaller than or equal to another value.
     *
     * @param object|string $actualClassOrObject
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     *
     * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
     * @codeCoverageIgnore
     */
    public static function assertAttributeLessThanOrEqual($expected, string $actualAttributeName, $actualClassOrObject, string $message = ''): void
    {
        self::createWarning('assertAttributeLessThanOrEqual() is deprecated and will be removed in PHPUnit 9.');

        static::assertLessThanOrEqual(
            $expected,
            static::readAttribute($actualClassOrObject, $actualAttributeName),
            $message
        );
    }

    /**
     * Asserts that the contents of one file is equal to the contents of another
     * file.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertFileEquals(string $expected, string $actual, string $message = '', bool $canonicalize = false, bool $ignoreCase = false): void
    {
        static::assertFileExists($expected, $message);
        static::assertFileExists($actual, $message);

        $constraint = new IsEqual(
            \file_get_contents($expected),
            0.0,
            10,
            $canonicalize,
            $ignoreCase
        );

        static::assertThat(\file_get_contents($actual), $constraint, $message);
    }

    /**
     * Asserts that the contents of one file is not equal to the contents of
     * another file.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertFileNotEquals(string $expected, string $actual, string $message = '', bool $canonicalize = false, bool $ignoreCase = false): void
    {
        static::assertFileExists($expected, $message);
        static::assertFileExists($actual, $message);

        $constraint = new LogicalNot(
            new IsEqual(
                \file_get_contents($expected),
                0.0,
                10,
                $canonicalize,
                $ignoreCase
            )
        );

        static::assertThat(\file_get_contents($actual), $constraint, $message);
    }

    /**
     * Asserts that the contents of a string is equal
     * to the contents of a file.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertStringEqualsFile(string $expectedFile, string $actualString, string $message = '', bool $canonicalize = false, bool $ignoreCase = false): void
    {
        static::assertFileExists($expectedFile, $message);

        $constraint = new IsEqual(
            \file_get_contents($expectedFile),
            0.0,
            10,
            $canonicalize,
            $ignoreCase
        );

        static::assertThat($actualString, $constraint, $message);
    }

    /**
     * Asserts that the contents of a string is not equal
     * to the contents of a file.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertStringNotEqualsFile(string $expectedFile, string $actualString, string $message = '', bool $canonicalize = false, bool $ignoreCase = false): void
    {
        static::assertFileExists($expectedFile, $message);

        $constraint = new LogicalNot(
            new IsEqual(
                \file_get_contents($expectedFile),
                0.0,
                10,
                $canonicalize,
                $ignoreCase
            )
        );

        static::assertThat($actualString, $constraint, $message);
    }

    /**
     * Asserts that a file/dir is readable.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertIsReadable(string $filename, string $message = ''): void
    {
        static::assertThat($filename, new IsReadable, $message);
    }

    /**
     * Asserts that a file/dir exists and is not readable.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertNotIsReadable(string $filename, string $message = ''): void
    {
        static::assertThat($filename, new LogicalNot(new IsReadable), $message);
    }

    /**
     * Asserts that a file/dir exists and is writable.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertIsWritable(string $filename, string $message = ''): void
    {
        static::assertThat($filename, new IsWritable, $message);
    }

    /**
     * Asserts that a file/dir exists and is not writable.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertNotIsWritable(string $filename, string $message = ''): void
    {
        static::assertThat($filename, new LogicalNot(new IsWritable), $message);
    }

    /**
     * Asserts that a directory exists.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertDirectoryExists(string $directory, string $message = ''): void
    {
        static::assertThat($directory, new DirectoryExists, $message);
    }

    /**
     * Asserts that a directory does not exist.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertDirectoryNotExists(string $directory, string $message = ''): void
    {
        static::assertThat($directory, new LogicalNot(new DirectoryExists), $message);
    }

    /**
     * Asserts that a directory exists and is readable.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertDirectoryIsReadable(string $directory, string $message = ''): void
    {
        self::assertDirectoryExists($directory, $message);
        self::assertIsReadable($directory, $message);
    }

    /**
     * Asserts that a directory exists and is not readable.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertDirectoryNotIsReadable(string $directory, string $message = ''): void
    {
        self::assertDirectoryExists($directory, $message);
        self::assertNotIsReadable($directory, $message);
    }

    /**
     * Asserts that a directory exists and is writable.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertDirectoryIsWritable(string $directory, string $message = ''): void
    {
        self::assertDirectoryExists($directory, $message);
        self::assertIsWritable($directory, $message);
    }

    /**
     * Asserts that a directory exists and is not writable.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertDirectoryNotIsWritable(string $directory, string $message = ''): void
    {
        self::assertDirectoryExists($directory, $message);
        self::assertNotIsWritable($directory, $message);
    }

    /**
     * Asserts that a file exists.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertFileExists(string $filename, string $message = ''): void
    {
        static::assertThat($filename, new FileExists, $message);
    }

    /**
     * Asserts that a file does not exist.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertFileNotExists(string $filename, string $message = ''): void
    {
        static::assertThat($filename, new LogicalNot(new FileExists), $message);
    }

    /**
     * Asserts that a file exists and is readable.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertFileIsReadable(string $file, string $message = ''): void
    {
        self::assertFileExists($file, $message);
        self::assertIsReadable($file, $message);
    }

    /**
     * Asserts that a file exists and is not readable.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertFileNotIsReadable(string $file, string $message = ''): void
    {
        self::assertFileExists($file, $message);
        self::assertNotIsReadable($file, $message);
    }

    /**
     * Asserts that a file exists and is writable.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertFileIsWritable(string $file, string $message = ''): void
    {
        self::assertFileExists($file, $message);
        self::assertIsWritable($file, $message);
    }

    /**
     * Asserts that a file exists and is not writable.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertFileNotIsWritable(string $file, string $message = ''): void
    {
        self::assertFileExists($file, $message);
        self::assertNotIsWritable($file, $message);
    }

    /**
     * Asserts that a condition is true.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @psalm-assert true $condition
     */
    public static function assertTrue($condition, string $message = ''): void
    {
        static::assertThat($condition, static::isTrue(), $message);
    }

    /**
     * Asserts that a condition is not true.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @psalm-assert !true $condition
     */
    public static function assertNotTrue($condition, string $message = ''): void
    {
        static::assertThat($condition, static::logicalNot(static::isTrue()), $message);
    }

    /**
     * Asserts that a condition is false.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @psalm-assert false $condition
     */
    public static function assertFalse($condition, string $message = ''): void
    {
        static::assertThat($condition, static::isFalse(), $message);
    }

    /**
     * Asserts that a condition is not false.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @psalm-assert !false $condition
     */
    public static function assertNotFalse($condition, string $message = ''): void
    {
        static::assertThat($condition, static::logicalNot(static::isFalse()), $message);
    }

    /**
     * Asserts that a variable is null.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @psalm-assert null $actual
     */
    public static function assertNull($actual, string $message = ''): void
    {
        static::assertThat($actual, static::isNull(), $message);
    }

    /**
     * Asserts that a variable is not null.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @psalm-assert !null $actual
     */
    public static function assertNotNull($actual, string $message = ''): void
    {
        static::assertThat($actual, static::logicalNot(static::isNull()), $message);
    }

    /**
     * Asserts that a variable is finite.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertFinite($actual, string $message = ''): void
    {
        static::assertThat($actual, static::isFinite(), $message);
    }

    /**
     * Asserts that a variable is infinite.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertInfinite($actual, string $message = ''): void
    {
        static::assertThat($actual, static::isInfinite(), $message);
    }

    /**
     * Asserts that a variable is nan.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertNan($actual, string $message = ''): void
    {
        static::assertThat($actual, static::isNan(), $message);
    }

    /**
     * Asserts that a class has a specified attribute.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     */
    public static function assertClassHasAttribute(string $attributeName, string $className, string $message = ''): void
    {
        if (!self::isValidClassAttributeName($attributeName)) {
            throw InvalidArgumentHelper::factory(1, 'valid attribute name');
        }

        if (!\class_exists($className)) {
            throw InvalidArgumentHelper::factory(2, 'class name', $className);
        }

        static::assertThat($className, new ClassHasAttribute($attributeName), $message);
    }

    /**
     * Asserts that a class does not have a specified attribute.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     */
    public static function assertClassNotHasAttribute(string $attributeName, string $className, string $message = ''): void
    {
        if (!self::isValidClassAttributeName($attributeName)) {
            throw InvalidArgumentHelper::factory(1, 'valid attribute name');
        }

        if (!\class_exists($className)) {
            throw InvalidArgumentHelper::factory(2, 'class name', $className);
        }

        static::assertThat(
            $className,
            new LogicalNot(
                new ClassHasAttribute($attributeName)
            ),
            $message
        );
    }

    /**
     * Asserts that a class has a specified static attribute.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     */
    public static function assertClassHasStaticAttribute(string $attributeName, string $className, string $message = ''): void
    {
        if (!self::isValidClassAttributeName($attributeName)) {
            throw InvalidArgumentHelper::factory(1, 'valid attribute name');
        }

        if (!\class_exists($className)) {
            throw InvalidArgumentHelper::factory(2, 'class name', $className);
        }

        static::assertThat(
            $className,
            new ClassHasStaticAttribute($attributeName),
            $message
        );
    }

    /**
     * Asserts that a class does not have a specified static attribute.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     */
    public static function assertClassNotHasStaticAttribute(string $attributeName, string $className, string $message = ''): void
    {
        if (!self::isValidClassAttributeName($attributeName)) {
            throw InvalidArgumentHelper::factory(1, 'valid attribute name');
        }

        if (!\class_exists($className)) {
            throw InvalidArgumentHelper::factory(2, 'class name', $className);
        }

        static::assertThat(
            $className,
            new LogicalNot(
                new ClassHasStaticAttribute($attributeName)
            ),
            $message
        );
    }

    /**
     * Asserts that an object has a specified attribute.
     *
     * @param object $object
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     */
    public static function assertObjectHasAttribute(string $attributeName, $object, string $message = ''): void
    {
        if (!self::isValidObjectAttributeName($attributeName)) {
            throw InvalidArgumentHelper::factory(1, 'valid attribute name');
        }

        if (!\is_object($object)) {
            throw InvalidArgumentHelper::factory(2, 'object');
        }

        static::assertThat(
            $object,
            new ObjectHasAttribute($attributeName),
            $message
        );
    }

    /**
     * Asserts that an object does not have a specified attribute.
     *
     * @param object $object
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     */
    public static function assertObjectNotHasAttribute(string $attributeName, $object, string $message = ''): void
    {
        if (!self::isValidObjectAttributeName($attributeName)) {
            throw InvalidArgumentHelper::factory(1, 'valid attribute name');
        }

        if (!\is_object($object)) {
            throw InvalidArgumentHelper::factory(2, 'object');
        }

        static::assertThat(
            $object,
            new LogicalNot(
                new ObjectHasAttribute($attributeName)
            ),
            $message
        );
    }

    /**
     * Asserts that two variables have the same type and value.
     * Used on objects, it asserts that two variables reference
     * the same object.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @psalm-template ExpectedType
     * @psalm-param ExpectedType $expected
     * @psalm-assert =ExpectedType $actual
     */
    public static function assertSame($expected, $actual, string $message = ''): void
    {
        static::assertThat(
            $actual,
            new IsIdentical($expected),
            $message
        );
    }

    /**
     * Asserts that a variable and an attribute of an object have the same type
     * and value.
     *
     * @param object|string $actualClassOrObject
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     *
     * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
     * @codeCoverageIgnore
     */
    public static function assertAttributeSame($expected, string $actualAttributeName, $actualClassOrObject, string $message = ''): void
    {
        self::createWarning('assertAttributeSame() is deprecated and will be removed in PHPUnit 9.');

        static::assertSame(
            $expected,
            static::readAttribute($actualClassOrObject, $actualAttributeName),
            $message
        );
    }

    /**
     * Asserts that two variables do not have the same type and value.
     * Used on objects, it asserts that two variables do not reference
     * the same object.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertNotSame($expected, $actual, string $message = ''): void
    {
        if (\is_bool($expected) && \is_bool($actual)) {
            static::assertNotEquals($expected, $actual, $message);
        }

        static::assertThat(
            $actual,
            new LogicalNot(
                new IsIdentical($expected)
            ),
            $message
        );
    }

    /**
     * Asserts that a variable and an attribute of an object do not have the
     * same type and value.
     *
     * @param object|string $actualClassOrObject
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     *
     * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
     * @codeCoverageIgnore
     */
    public static function assertAttributeNotSame($expected, string $actualAttributeName, $actualClassOrObject, string $message = ''): void
    {
        self::createWarning('assertAttributeNotSame() is deprecated and will be removed in PHPUnit 9.');

        static::assertNotSame(
            $expected,
            static::readAttribute($actualClassOrObject, $actualAttributeName),
            $message
        );
    }

    /**
     * Asserts that a variable is of a given type.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     *
     * @psalm-template ExpectedType of object
     * @psalm-param class-string<ExpectedType> $expected
     * @psalm-assert ExpectedType $actual
     */
    public static function assertInstanceOf(string $expected, $actual, string $message = ''): void
    {
        if (!\class_exists($expected) && !\interface_exists($expected)) {
            throw InvalidArgumentHelper::factory(1, 'class or interface name');
        }

        static::assertThat(
            $actual,
            new IsInstanceOf($expected),
            $message
        );
    }

    /**
     * Asserts that an attribute is of a given type.
     *
     * @param object|string $classOrObject
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     *
     * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
     * @codeCoverageIgnore
     *
     * @psalm-param class-string $expected
     */
    public static function assertAttributeInstanceOf(string $expected, string $attributeName, $classOrObject, string $message = ''): void
    {
        self::createWarning('assertAttributeInstanceOf() is deprecated and will be removed in PHPUnit 9.');

        static::assertInstanceOf(
            $expected,
            static::readAttribute($classOrObject, $attributeName),
            $message
        );
    }

    /**
     * Asserts that a variable is not of a given type.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     *
     * @psalm-template ExpectedType of object
     * @psalm-param class-string<ExpectedType> $expected
     * @psalm-assert !ExpectedType $actual
     */
    public static function assertNotInstanceOf(string $expected, $actual, string $message = ''): void
    {
        if (!\class_exists($expected) && !\interface_exists($expected)) {
            throw InvalidArgumentHelper::factory(1, 'class or interface name');
        }

        static::assertThat(
            $actual,
            new LogicalNot(
                new IsInstanceOf($expected)
            ),
            $message
        );
    }

    /**
     * Asserts that an attribute is of a given type.
     *
     * @param object|string $classOrObject
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     *
     * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
     * @codeCoverageIgnore
     *
     * @psalm-param class-string $expected
     */
    public static function assertAttributeNotInstanceOf(string $expected, string $attributeName, $classOrObject, string $message = ''): void
    {
        self::createWarning('assertAttributeNotInstanceOf() is deprecated and will be removed in PHPUnit 9.');

        static::assertNotInstanceOf(
            $expected,
            static::readAttribute($classOrObject, $attributeName),
            $message
        );
    }

    /**
     * Asserts that a variable is of a given type.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3369
     * @codeCoverageIgnore
     */
    public static function assertInternalType(string $expected, $actual, string $message = ''): void
    {
        self::createWarning('assertInternalType() is deprecated and will be removed in PHPUnit 9. Refactor your test to use assertIsArray(), assertIsBool(), assertIsFloat(), assertIsInt(), assertIsNumeric(), assertIsObject(), assertIsResource(), assertIsString(), assertIsScalar(), assertIsCallable(), or assertIsIterable() instead.');

        static::assertThat(
            $actual,
            new IsType($expected),
            $message
        );
    }

    /**
     * Asserts that an attribute is of a given type.
     *
     * @param object|string $classOrObject
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     *
     * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
     * @codeCoverageIgnore
     */
    public static function assertAttributeInternalType(string $expected, string $attributeName, $classOrObject, string $message = ''): void
    {
        self::createWarning('assertAttributeInternalType() is deprecated and will be removed in PHPUnit 9.');

        static::assertInternalType(
            $expected,
            static::readAttribute($classOrObject, $attributeName),
            $message
        );
    }

    /**
     * Asserts that a variable is of type array.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @psalm-assert array $actual
     */
    public static function assertIsArray($actual, string $message = ''): void
    {
        static::assertThat(
            $actual,
            new IsType(IsType::TYPE_ARRAY),
            $message
        );
    }

    /**
     * Asserts that a variable is of type bool.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @psalm-assert bool $actual
     */
    public static function assertIsBool($actual, string $message = ''): void
    {
        static::assertThat(
            $actual,
            new IsType(IsType::TYPE_BOOL),
            $message
        );
    }

    /**
     * Asserts that a variable is of type float.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @psalm-assert float $actual
     */
    public static function assertIsFloat($actual, string $message = ''): void
    {
        static::assertThat(
            $actual,
            new IsType(IsType::TYPE_FLOAT),
            $message
        );
    }

    /**
     * Asserts that a variable is of type int.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @psalm-assert int $actual
     */
    public static function assertIsInt($actual, string $message = ''): void
    {
        static::assertThat(
            $actual,
            new IsType(IsType::TYPE_INT),
            $message
        );
    }

    /**
     * Asserts that a variable is of type numeric.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @psalm-assert numeric $actual
     */
    public static function assertIsNumeric($actual, string $message = ''): void
    {
        static::assertThat(
            $actual,
            new IsType(IsType::TYPE_NUMERIC),
            $message
        );
    }

    /**
     * Asserts that a variable is of type object.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @psalm-assert object $actual
     */
    public static function assertIsObject($actual, string $message = ''): void
    {
        static::assertThat(
            $actual,
            new IsType(IsType::TYPE_OBJECT),
            $message
        );
    }

    /**
     * Asserts that a variable is of type resource.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @psalm-assert resource $actual
     */
    public static function assertIsResource($actual, string $message = ''): void
    {
        static::assertThat(
            $actual,
            new IsType(IsType::TYPE_RESOURCE),
            $message
        );
    }

    /**
     * Asserts that a variable is of type string.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @psalm-assert string $actual
     */
    public static function assertIsString($actual, string $message = ''): void
    {
        static::assertThat(
            $actual,
            new IsType(IsType::TYPE_STRING),
            $message
        );
    }

    /**
     * Asserts that a variable is of type scalar.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @psalm-assert scalar $actual
     */
    public static function assertIsScalar($actual, string $message = ''): void
    {
        static::assertThat(
            $actual,
            new IsType(IsType::TYPE_SCALAR),
            $message
        );
    }

    /**
     * Asserts that a variable is of type callable.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @psalm-assert callable $actual
     */
    public static function assertIsCallable($actual, string $message = ''): void
    {
        static::assertThat(
            $actual,
            new IsType(IsType::TYPE_CALLABLE),
            $message
        );
    }

    /**
     * Asserts that a variable is of type iterable.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @psalm-assert iterable $actual
     */
    public static function assertIsIterable($actual, string $message = ''): void
    {
        static::assertThat(
            $actual,
            new IsType(IsType::TYPE_ITERABLE),
            $message
        );
    }

    /**
     * Asserts that a variable is not of a given type.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3369
     * @codeCoverageIgnore
     */
    public static function assertNotInternalType(string $expected, $actual, string $message = ''): void
    {
        self::createWarning('assertNotInternalType() is deprecated and will be removed in PHPUnit 9. Refactor your test to use assertIsNotArray(), assertIsNotBool(), assertIsNotFloat(), assertIsNotInt(), assertIsNotNumeric(), assertIsNotObject(), assertIsNotResource(), assertIsNotString(), assertIsNotScalar(), assertIsNotCallable(), or assertIsNotIterable() instead.');

        static::assertThat(
            $actual,
            new LogicalNot(
                new IsType($expected)
            ),
            $message
        );
    }

    /**
     * Asserts that a variable is not of type array.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @psalm-assert !array $actual
     */
    public static function assertIsNotArray($actual, string $message = ''): void
    {
        static::assertThat(
            $actual,
            new LogicalNot(new IsType(IsType::TYPE_ARRAY)),
            $message
        );
    }

    /**
     * Asserts that a variable is not of type bool.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @psalm-assert !bool $actual
     */
    public static function assertIsNotBool($actual, string $message = ''): void
    {
        static::assertThat(
            $actual,
            new LogicalNot(new IsType(IsType::TYPE_BOOL)),
            $message
        );
    }

    /**
     * Asserts that a variable is not of type float.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @psalm-assert !float $actual
     */
    public static function assertIsNotFloat($actual, string $message = ''): void
    {
        static::assertThat(
            $actual,
            new LogicalNot(new IsType(IsType::TYPE_FLOAT)),
            $message
        );
    }

    /**
     * Asserts that a variable is not of type int.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @psalm-assert !int $actual
     */
    public static function assertIsNotInt($actual, string $message = ''): void
    {
        static::assertThat(
            $actual,
            new LogicalNot(new IsType(IsType::TYPE_INT)),
            $message
        );
    }

    /**
     * Asserts that a variable is not of type numeric.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @psalm-assert !numeric $actual
     */
    public static function assertIsNotNumeric($actual, string $message = ''): void
    {
        static::assertThat(
            $actual,
            new LogicalNot(new IsType(IsType::TYPE_NUMERIC)),
            $message
        );
    }

    /**
     * Asserts that a variable is not of type object.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @psalm-assert !object $actual
     */
    public static function assertIsNotObject($actual, string $message = ''): void
    {
        static::assertThat(
            $actual,
            new LogicalNot(new IsType(IsType::TYPE_OBJECT)),
            $message
        );
    }

    /**
     * Asserts that a variable is not of type resource.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @psalm-assert !resource $actual
     */
    public static function assertIsNotResource($actual, string $message = ''): void
    {
        static::assertThat(
            $actual,
            new LogicalNot(new IsType(IsType::TYPE_RESOURCE)),
            $message
        );
    }

    /**
     * Asserts that a variable is not of type string.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @psalm-assert !string $actual
     */
    public static function assertIsNotString($actual, string $message = ''): void
    {
        static::assertThat(
            $actual,
            new LogicalNot(new IsType(IsType::TYPE_STRING)),
            $message
        );
    }

    /**
     * Asserts that a variable is not of type scalar.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @psalm-assert !scalar $actual
     */
    public static function assertIsNotScalar($actual, string $message = ''): void
    {
        static::assertThat(
            $actual,
            new LogicalNot(new IsType(IsType::TYPE_SCALAR)),
            $message
        );
    }

    /**
     * Asserts that a variable is not of type callable.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @psalm-assert !callable $actual
     */
    public static function assertIsNotCallable($actual, string $message = ''): void
    {
        static::assertThat(
            $actual,
            new LogicalNot(new IsType(IsType::TYPE_CALLABLE)),
            $message
        );
    }

    /**
     * Asserts that a variable is not of type iterable.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @psalm-assert !iterable $actual
     */
    public static function assertIsNotIterable($actual, string $message = ''): void
    {
        static::assertThat(
            $actual,
            new LogicalNot(new IsType(IsType::TYPE_ITERABLE)),
            $message
        );
    }

    /**
     * Asserts that an attribute is of a given type.
     *
     * @param object|string $classOrObject
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     *
     * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
     * @codeCoverageIgnore
     */
    public static function assertAttributeNotInternalType(string $expected, string $attributeName, $classOrObject, string $message = ''): void
    {
        self::createWarning('assertAttributeNotInternalType() is deprecated and will be removed in PHPUnit 9.');

        static::assertNotInternalType(
            $expected,
            static::readAttribute($classOrObject, $attributeName),
            $message
        );
    }

    /**
     * Asserts that a string matches a given regular expression.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertRegExp(string $pattern, string $string, string $message = ''): void
    {
        static::assertThat($string, new RegularExpression($pattern), $message);
    }

    /**
     * Asserts that a string does not match a given regular expression.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertNotRegExp(string $pattern, string $string, string $message = ''): void
    {
        static::assertThat(
            $string,
            new LogicalNot(
                new RegularExpression($pattern)
            ),
            $message
        );
    }

    /**
     * Assert that the size of two arrays (or `Countable` or `Traversable` objects)
     * is the same.
     *
     * @param Countable|iterable $expected
     * @param Countable|iterable $actual
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     */
    public static function assertSameSize($expected, $actual, string $message = ''): void
    {
        if (!$expected instanceof Countable && !\is_iterable($expected)) {
            throw InvalidArgumentHelper::factory(1, 'countable or iterable');
        }

        if (!$actual instanceof Countable && !\is_iterable($actual)) {
            throw InvalidArgumentHelper::factory(2, 'countable or iterable');
        }

        static::assertThat(
            $actual,
            new SameSize($expected),
            $message
        );
    }

    /**
     * Assert that the size of two arrays (or `Countable` or `Traversable` objects)
     * is not the same.
     *
     * @param Countable|iterable $expected
     * @param Countable|iterable $actual
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     */
    public static function assertNotSameSize($expected, $actual, string $message = ''): void
    {
        if (!$expected instanceof Countable && !\is_iterable($expected)) {
            throw InvalidArgumentHelper::factory(1, 'countable or iterable');
        }

        if (!$actual instanceof Countable && !\is_iterable($actual)) {
            throw InvalidArgumentHelper::factory(2, 'countable or iterable');
        }

        static::assertThat(
            $actual,
            new LogicalNot(
                new SameSize($expected)
            ),
            $message
        );
    }

    /**
     * Asserts that a string matches a given format string.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertStringMatchesFormat(string $format, string $string, string $message = ''): void
    {
        static::assertThat($string, new StringMatchesFormatDescription($format), $message);
    }

    /**
     * Asserts that a string does not match a given format string.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertStringNotMatchesFormat(string $format, string $string, string $message = ''): void
    {
        static::assertThat(
            $string,
            new LogicalNot(
                new StringMatchesFormatDescription($format)
            ),
            $message
        );
    }

    /**
     * Asserts that a string matches a given format file.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertStringMatchesFormatFile(string $formatFile, string $string, string $message = ''): void
    {
        static::assertFileExists($formatFile, $message);

        static::assertThat(
            $string,
            new StringMatchesFormatDescription(
                \file_get_contents($formatFile)
            ),
            $message
        );
    }

    /**
     * Asserts that a string does not match a given format string.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertStringNotMatchesFormatFile(string $formatFile, string $string, string $message = ''): void
    {
        static::assertFileExists($formatFile, $message);

        static::assertThat(
            $string,
            new LogicalNot(
                new StringMatchesFormatDescription(
                    \file_get_contents($formatFile)
                )
            ),
            $message
        );
    }

    /**
     * Asserts that a string starts with a given prefix.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertStringStartsWith(string $prefix, string $string, string $message = ''): void
    {
        static::assertThat($string, new StringStartsWith($prefix), $message);
    }

    /**
     * Asserts that a string starts not with a given prefix.
     *
     * @param string $prefix
     * @param string $string
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertStringStartsNotWith($prefix, $string, string $message = ''): void
    {
        static::assertThat(
            $string,
            new LogicalNot(
                new StringStartsWith($prefix)
            ),
            $message
        );
    }

    /**
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertStringContainsString(string $needle, string $haystack, string $message = ''): void
    {
        $constraint = new StringContains($needle, false);

        static::assertThat($haystack, $constraint, $message);
    }

    /**
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertStringContainsStringIgnoringCase(string $needle, string $haystack, string $message = ''): void
    {
        $constraint = new StringContains($needle, true);

        static::assertThat($haystack, $constraint, $message);
    }

    /**
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertStringNotContainsString(string $needle, string $haystack, string $message = ''): void
    {
        $constraint = new LogicalNot(new StringContains($needle));

        static::assertThat($haystack, $constraint, $message);
    }

    /**
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertStringNotContainsStringIgnoringCase(string $needle, string $haystack, string $message = ''): void
    {
        $constraint = new LogicalNot(new StringContains($needle, true));

        static::assertThat($haystack, $constraint, $message);
    }

    /**
     * Asserts that a string ends with a given suffix.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertStringEndsWith(string $suffix, string $string, string $message = ''): void
    {
        static::assertThat($string, new StringEndsWith($suffix), $message);
    }

    /**
     * Asserts that a string ends not with a given suffix.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertStringEndsNotWith(string $suffix, string $string, string $message = ''): void
    {
        static::assertThat(
            $string,
            new LogicalNot(
                new StringEndsWith($suffix)
            ),
            $message
        );
    }

    /**
     * Asserts that two XML files are equal.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     */
    public static function assertXmlFileEqualsXmlFile(string $expectedFile, string $actualFile, string $message = ''): void
    {
        $expected = Xml::loadFile($expectedFile);
        $actual   = Xml::loadFile($actualFile);

        static::assertEquals($expected, $actual, $message);
    }

    /**
     * Asserts that two XML files are not equal.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     */
    public static function assertXmlFileNotEqualsXmlFile(string $expectedFile, string $actualFile, string $message = ''): void
    {
        $expected = Xml::loadFile($expectedFile);
        $actual   = Xml::loadFile($actualFile);

        static::assertNotEquals($expected, $actual, $message);
    }

    /**
     * Asserts that two XML documents are equal.
     *
     * @param DOMDocument|string $actualXml
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     */
    public static function assertXmlStringEqualsXmlFile(string $expectedFile, $actualXml, string $message = ''): void
    {
        $expected = Xml::loadFile($expectedFile);
        $actual   = Xml::load($actualXml);

        static::assertEquals($expected, $actual, $message);
    }

    /**
     * Asserts that two XML documents are not equal.
     *
     * @param DOMDocument|string $actualXml
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     */
    public static function assertXmlStringNotEqualsXmlFile(string $expectedFile, $actualXml, string $message = ''): void
    {
        $expected = Xml::loadFile($expectedFile);
        $actual   = Xml::load($actualXml);

        static::assertNotEquals($expected, $actual, $message);
    }

    /**
     * Asserts that two XML documents are equal.
     *
     * @param DOMDocument|string $expectedXml
     * @param DOMDocument|string $actualXml
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     */
    public static function assertXmlStringEqualsXmlString($expectedXml, $actualXml, string $message = ''): void
    {
        $expected = Xml::load($expectedXml);
        $actual   = Xml::load($actualXml);

        static::assertEquals($expected, $actual, $message);
    }

    /**
     * Asserts that two XML documents are not equal.
     *
     * @param DOMDocument|string $expectedXml
     * @param DOMDocument|string $actualXml
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     */
    public static function assertXmlStringNotEqualsXmlString($expectedXml, $actualXml, string $message = ''): void
    {
        $expected = Xml::load($expectedXml);
        $actual   = Xml::load($actualXml);

        static::assertNotEquals($expected, $actual, $message);
    }

    /**
     * Asserts that a hierarchy of DOMElements matches.
     *
     * @throws AssertionFailedError
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertEqualXMLStructure(DOMElement $expectedElement, DOMElement $actualElement, bool $checkAttributes = false, string $message = ''): void
    {
        $expectedElement = Xml::import($expectedElement);
        $actualElement   = Xml::import($actualElement);

        static::assertSame(
            $expectedElement->tagName,
            $actualElement->tagName,
            $message
        );

        if ($checkAttributes) {
            static::assertSame(
                $expectedElement->attributes->length,
                $actualElement->attributes->length,
                \sprintf(
                    '%s%sNumber of attributes on node "%s" does not match',
                    $message,
                    !empty($message) ? "\n" : '',
                    $expectedElement->tagName
                )
            );

            for ($i = 0; $i < $expectedElement->attributes->length; $i++) {
                $expectedAttribute = $expectedElement->attributes->item($i);
                $actualAttribute   = $actualElement->attributes->getNamedItem($expectedAttribute->name);

                \assert($expectedAttribute instanceof \DOMAttr);

                if (!$actualAttribute) {
                    static::fail(
                        \sprintf(
                            '%s%sCould not find attribute "%s" on node "%s"',
                            $message,
                            !empty($message) ? "\n" : '',
                            $expectedAttribute->name,
                            $expectedElement->tagName
                        )
                    );
                }
            }
        }

        Xml::removeCharacterDataNodes($expectedElement);
        Xml::removeCharacterDataNodes($actualElement);

        static::assertSame(
            $expectedElement->childNodes->length,
            $actualElement->childNodes->length,
            \sprintf(
                '%s%sNumber of child nodes of "%s" differs',
                $message,
                !empty($message) ? "\n" : '',
                $expectedElement->tagName
            )
        );

        for ($i = 0; $i < $expectedElement->childNodes->length; $i++) {
            static::assertEqualXMLStructure(
                $expectedElement->childNodes->item($i),
                $actualElement->childNodes->item($i),
                $checkAttributes,
                $message
            );
        }
    }

    /**
     * Evaluates a PHPUnit\Framework\Constraint matcher object.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertThat($value, Constraint $constraint, string $message = ''): void
    {
        self::$count += \count($constraint);

        $constraint->evaluate($value, $message);
    }

    /**
     * Asserts that a string is a valid JSON string.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertJson(string $actualJson, string $message = ''): void
    {
        static::assertThat($actualJson, static::isJson(), $message);
    }

    /**
     * Asserts that two given JSON encoded objects or arrays are equal.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertJsonStringEqualsJsonString(string $expectedJson, string $actualJson, string $message = ''): void
    {
        static::assertJson($expectedJson, $message);
        static::assertJson($actualJson, $message);

        static::assertThat($actualJson, new JsonMatches($expectedJson), $message);
    }

    /**
     * Asserts that two given JSON encoded objects or arrays are not equal.
     *
     * @param string $expectedJson
     * @param string $actualJson
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertJsonStringNotEqualsJsonString($expectedJson, $actualJson, string $message = ''): void
    {
        static::assertJson($expectedJson, $message);
        static::assertJson($actualJson, $message);

        static::assertThat(
            $actualJson,
            new LogicalNot(
                new JsonMatches($expectedJson)
            ),
            $message
        );
    }

    /**
     * Asserts that the generated JSON encoded object and the content of the given file are equal.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertJsonStringEqualsJsonFile(string $expectedFile, string $actualJson, string $message = ''): void
    {
        static::assertFileExists($expectedFile, $message);
        $expectedJson = \file_get_contents($expectedFile);

        static::assertJson($expectedJson, $message);
        static::assertJson($actualJson, $message);

        static::assertThat($actualJson, new JsonMatches($expectedJson), $message);
    }

    /**
     * Asserts that the generated JSON encoded object and the content of the given file are not equal.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertJsonStringNotEqualsJsonFile(string $expectedFile, string $actualJson, string $message = ''): void
    {
        static::assertFileExists($expectedFile, $message);
        $expectedJson = \file_get_contents($expectedFile);

        static::assertJson($expectedJson, $message);
        static::assertJson($actualJson, $message);

        static::assertThat(
            $actualJson,
            new LogicalNot(
                new JsonMatches($expectedJson)
            ),
            $message
        );
    }

    /**
     * Asserts that two JSON files are equal.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertJsonFileEqualsJsonFile(string $expectedFile, string $actualFile, string $message = ''): void
    {
        static::assertFileExists($expectedFile, $message);
        static::assertFileExists($actualFile, $message);

        $actualJson   = \file_get_contents($actualFile);
        $expectedJson = \file_get_contents($expectedFile);

        static::assertJson($expectedJson, $message);
        static::assertJson($actualJson, $message);

        $constraintExpected = new JsonMatches(
            $expectedJson
        );

        $constraintActual = new JsonMatches($actualJson);

        static::assertThat($expectedJson, $constraintActual, $message);
        static::assertThat($actualJson, $constraintExpected, $message);
    }

    /**
     * Asserts that two JSON files are not equal.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function assertJsonFileNotEqualsJsonFile(string $expectedFile, string $actualFile, string $message = ''): void
    {
        static::assertFileExists($expectedFile, $message);
        static::assertFileExists($actualFile, $message);

        $actualJson   = \file_get_contents($actualFile);
        $expectedJson = \file_get_contents($expectedFile);

        static::assertJson($expectedJson, $message);
        static::assertJson($actualJson, $message);

        $constraintExpected = new JsonMatches(
            $expectedJson
        );

        $constraintActual = new JsonMatches($actualJson);

        static::assertThat($expectedJson, new LogicalNot($constraintActual), $message);
        static::assertThat($actualJson, new LogicalNot($constraintExpected), $message);
    }

    /**
     * @throws Exception
     */
    public static function logicalAnd(): LogicalAnd
    {
        $constraints = \func_get_args();

        $constraint = new LogicalAnd;
        $constraint->setConstraints($constraints);

        return $constraint;
    }

    public static function logicalOr(): LogicalOr
    {
        $constraints = \func_get_args();

        $constraint = new LogicalOr;
        $constraint->setConstraints($constraints);

        return $constraint;
    }

    public static function logicalNot(Constraint $constraint): LogicalNot
    {
        return new LogicalNot($constraint);
    }

    public static function logicalXor(): LogicalXor
    {
        $constraints = \func_get_args();

        $constraint = new LogicalXor;
        $constraint->setConstraints($constraints);

        return $constraint;
    }

    public static function anything(): IsAnything
    {
        return new IsAnything;
    }

    public static function isTrue(): IsTrue
    {
        return new IsTrue;
    }

    public static function callback(callable $callback): Callback
    {
        return new Callback($callback);
    }

    public static function isFalse(): IsFalse
    {
        return new IsFalse;
    }

    public static function isJson(): IsJson
    {
        return new IsJson;
    }

    public static function isNull(): IsNull
    {
        return new IsNull;
    }

    public static function isFinite(): IsFinite
    {
        return new IsFinite;
    }

    public static function isInfinite(): IsInfinite
    {
        return new IsInfinite;
    }

    public static function isNan(): IsNan
    {
        return new IsNan;
    }

    /**
     * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
     * @codeCoverageIgnore
     */
    public static function attribute(Constraint $constraint, string $attributeName): Attribute
    {
        self::createWarning('attribute() is deprecated and will be removed in PHPUnit 9.');

        return new Attribute($constraint, $attributeName);
    }

    public static function contains($value, bool $checkForObjectIdentity = true, bool $checkForNonObjectIdentity = false): TraversableContains
    {
        return new TraversableContains($value, $checkForObjectIdentity, $checkForNonObjectIdentity);
    }

    public static function containsOnly(string $type): TraversableContainsOnly
    {
        return new TraversableContainsOnly($type);
    }

    public static function containsOnlyInstancesOf(string $className): TraversableContainsOnly
    {
        return new TraversableContainsOnly($className, false);
    }

    /**
     * @param int|string $key
     */
    public static function arrayHasKey($key): ArrayHasKey
    {
        return new ArrayHasKey($key);
    }

    public static function equalTo($value, float $delta = 0.0, int $maxDepth = 10, bool $canonicalize = false, bool $ignoreCase = false): IsEqual
    {
        return new IsEqual($value, $delta, $maxDepth, $canonicalize, $ignoreCase);
    }

    /**
     * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
     * @codeCoverageIgnore
     */
    public static function attributeEqualTo(string $attributeName, $value, float $delta = 0.0, int $maxDepth = 10, bool $canonicalize = false, bool $ignoreCase = false): Attribute
    {
        self::createWarning('attributeEqualTo() is deprecated and will be removed in PHPUnit 9.');

        return static::attribute(
            static::equalTo(
                $value,
                $delta,
                $maxDepth,
                $canonicalize,
                $ignoreCase
            ),
            $attributeName
        );
    }

    public static function isEmpty(): IsEmpty
    {
        return new IsEmpty;
    }

    public static function isWritable(): IsWritable
    {
        return new IsWritable;
    }

    public static function isReadable(): IsReadable
    {
        return new IsReadable;
    }

    public static function directoryExists(): DirectoryExists
    {
        return new DirectoryExists;
    }

    public static function fileExists(): FileExists
    {
        return new FileExists;
    }

    public static function greaterThan($value): GreaterThan
    {
        return new GreaterThan($value);
    }

    public static function greaterThanOrEqual($value): LogicalOr
    {
        return static::logicalOr(
            new IsEqual($value),
            new GreaterThan($value)
        );
    }

    public static function classHasAttribute(string $attributeName): ClassHasAttribute
    {
        return new ClassHasAttribute($attributeName);
    }

    public static function classHasStaticAttribute(string $attributeName): ClassHasStaticAttribute
    {
        return new ClassHasStaticAttribute($attributeName);
    }

    public static function objectHasAttribute($attributeName): ObjectHasAttribute
    {
        return new ObjectHasAttribute($attributeName);
    }

    public static function identicalTo($value): IsIdentical
    {
        return new IsIdentical($value);
    }

    public static function isInstanceOf(string $className): IsInstanceOf
    {
        return new IsInstanceOf($className);
    }

    public static function isType(string $type): IsType
    {
        return new IsType($type);
    }

    public static function lessThan($value): LessThan
    {
        return new LessThan($value);
    }

    public static function lessThanOrEqual($value): LogicalOr
    {
        return static::logicalOr(
            new IsEqual($value),
            new LessThan($value)
        );
    }

    public static function matchesRegularExpression(string $pattern): RegularExpression
    {
        return new RegularExpression($pattern);
    }

    public static function matches(string $string): StringMatchesFormatDescription
    {
        return new StringMatchesFormatDescription($string);
    }

    public static function stringStartsWith($prefix): StringStartsWith
    {
        return new StringStartsWith($prefix);
    }

    public static function stringContains(string $string, bool $case = true): StringContains
    {
        return new StringContains($string, $case);
    }

    public static function stringEndsWith(string $suffix): StringEndsWith
    {
        return new StringEndsWith($suffix);
    }

    public static function countOf(int $count): Count
    {
        return new Count($count);
    }

    /**
     * Fails a test with the given message.
     *
     * @throws AssertionFailedError
     *
     * @psalm-return never-return
     */
    public static function fail(string $message = ''): void
    {
        self::$count++;

        throw new AssertionFailedError($message);
    }

    /**
     * Returns the value of an attribute of a class or an object.
     * This also works for attributes that are declared protected or private.
     *
     * @param object|string $classOrObject
     *
     * @throws Exception
     *
     * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
     * @codeCoverageIgnore
     */
    public static function readAttribute($classOrObject, string $attributeName)
    {
        self::createWarning('readAttribute() is deprecated and will be removed in PHPUnit 9.');

        if (!self::isValidClassAttributeName($attributeName)) {
            throw InvalidArgumentHelper::factory(2, 'valid attribute name');
        }

        if (\is_string($classOrObject)) {
            if (!\class_exists($classOrObject)) {
                throw InvalidArgumentHelper::factory(
                    1,
                    'class name'
                );
            }

            return static::getStaticAttribute(
                $classOrObject,
                $attributeName
            );
        }

        if (\is_object($classOrObject)) {
            return static::getObjectAttribute(
                $classOrObject,
                $attributeName
            );
        }

        throw InvalidArgumentHelper::factory(
            1,
            'class name or object'
        );
    }

    /**
     * Returns the value of a static attribute.
     * This also works for attributes that are declared protected or private.
     *
     * @throws Exception
     *
     * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
     * @codeCoverageIgnore
     */
    public static function getStaticAttribute(string $className, string $attributeName)
    {
        self::createWarning('getStaticAttribute() is deprecated and will be removed in PHPUnit 9.');

        if (!\class_exists($className)) {
            throw InvalidArgumentHelper::factory(1, 'class name');
        }

        if (!self::isValidClassAttributeName($attributeName)) {
            throw InvalidArgumentHelper::factory(2, 'valid attribute name');
        }

        try {
            $class = new ReflectionClass($className);
        } catch (\ReflectionException $e) {
            throw new Exception(
                $e->getMessage(),
                (int) $e->getCode(),
                $e
            );
        }

        while ($class) {
            $attributes = $class->getStaticProperties();

            if (\array_key_exists($attributeName, $attributes)) {
                return $attributes[$attributeName];
            }

            $class = $class->getParentClass();
        }

        throw new Exception(
            \sprintf(
                'Attribute "%s" not found in class.',
                $attributeName
            )
        );
    }

    /**
     * Returns the value of an object's attribute.
     * This also works for attributes that are declared protected or private.
     *
     * @param object $object
     *
     * @throws Exception
     *
     * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
     * @codeCoverageIgnore
     */
    public static function getObjectAttribute($object, string $attributeName)
    {
        self::createWarning('getObjectAttribute() is deprecated and will be removed in PHPUnit 9.');

        if (!\is_object($object)) {
            throw InvalidArgumentHelper::factory(1, 'object');
        }

        if (!self::isValidClassAttributeName($attributeName)) {
            throw InvalidArgumentHelper::factory(2, 'valid attribute name');
        }

        $reflector = new ReflectionObject($object);

        do {
            try {
                $attribute = $reflector->getProperty($attributeName);

                if (!$attribute || $attribute->isPublic()) {
                    return $object->$attributeName;
                }

                $attribute->setAccessible(true);
                $value = $attribute->getValue($object);
                $attribute->setAccessible(false);

                return $value;
            } catch (\ReflectionException $e) {
            }
        } while ($reflector = $reflector->getParentClass());

        throw new Exception(
            \sprintf(
                'Attribute "%s" not found in object.',
                $attributeName
            )
        );
    }

    /**
     * Mark the test as incomplete.
     *
     * @throws IncompleteTestError
     */
    public static function markTestIncomplete(string $message = ''): void
    {
        throw new IncompleteTestError($message);
    }

    /**
     * Mark the test as skipped.
     *
     * @throws SkippedTestError
     * @throws SyntheticSkippedError
     */
    public static function markTestSkipped(string $message = ''): void
    {
        if ($hint = self::detectLocationHint($message)) {
            $trace = \debug_backtrace(\DEBUG_BACKTRACE_IGNORE_ARGS);
            \array_unshift($trace, $hint);

            throw new SyntheticSkippedError($hint['message'], 0, $hint['file'], (int) $hint['line'], $trace);
        }

        throw new SkippedTestError($message);
    }

    /**
     * Return the current assertion count.
     */
    public static function getCount(): int
    {
        return self::$count;
    }

    /**
     * Reset the assertion counter.
     */
    public static function resetCount(): void
    {
        self::$count = 0;
    }

    private static function detectLocationHint(string $message): ?array
    {
        $hint  = null;
        $lines = \preg_split('/\r\n|\r|\n/', $message);

        while (\strpos($lines[0], '__OFFSET') !== false) {
            $offset = \explode('=', \array_shift($lines));

            if ($offset[0] === '__OFFSET_FILE') {
                $hint['file'] = $offset[1];
            }

            if ($offset[0] === '__OFFSET_LINE') {
                $hint['line'] = $offset[1];
            }
        }

        if ($hint) {
            $hint['message'] = \implode(\PHP_EOL, $lines);
        }

        return $hint;
    }

    private static function isValidObjectAttributeName(string $attributeName): bool
    {
        return (bool) \preg_match('/[^\x00-\x1f\x7f-\x9f]+/', $attributeName);
    }

    private static function isValidClassAttributeName(string $attributeName): bool
    {
        return (bool) \preg_match('/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/', $attributeName);
    }

    /**
     * @codeCoverageIgnore
     */
    private static function createWarning(string $warning): void
    {
        foreach (\debug_backtrace() as $step) {
            if (isset($step['object']) && $step['object'] instanceof TestCase) {
                \assert($step['object'] instanceof TestCase);

                $step['object']->addWarning($warning);

                break;
            }
        }
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
interface SkippedTest
{
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework;

use Countable;

/**
 * A Test can be run and collect its results.
 */
interface Test extends Countable
{
    /**
     * Runs a test and collects its result in a TestResult instance.
     */
    public function run(TestResult $result = null): TestResult;
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class MockClass implements MockType
{
    /**
     * @var string
     */
    private $classCode;

    /**
     * @var string
     */
    private $mockName;

    /**
     * @var ConfigurableMethod[]
     */
    private $configurableMethods;

    public function __construct(string $classCode, string $mockName, array $configurableMethods)
    {
        $this->classCode           = $classCode;
        $this->mockName            = $mockName;
        $this->configurableMethods = $configurableMethods;
    }

    public function generate(): string
    {
        if (!\class_exists($this->mockName, false)) {
            eval($this->classCode);

            \call_user_func(
                [
                    $this->mockName,
                    '__phpunit_initConfigurableMethods',
                ],
                ...$this->configurableMethods
            );
        }

        return $this->mockName;
    }

    public function getClassCode(): string
    {
        return $this->classCode;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject;

use PHPUnit\Framework\MockObject\Builder\InvocationMocker as BuilderInvocationMocker;
use PHPUnit\Framework\MockObject\Matcher\Invocation;

/**
 * @method BuilderInvocationMocker method($constraint)
 */
interface MockObject /*extends Verifiable*/
{
    public function __phpunit_setOriginalObject($originalObject): void;

    public function __phpunit_getInvocationMocker(): InvocationMocker;

    public function __phpunit_verify(bool $unsetInvocationMocker = true): void;

    public function __phpunit_hasMatchers(): bool;

    public function __phpunit_setReturnValueGeneration(bool $returnValueGeneration): void;

    public function expects(Invocation $matcher): BuilderInvocationMocker;
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject;

use Exception;
use PHPUnit\Framework\ExpectationFailedException;
use PHPUnit\Framework\MockObject\Builder\InvocationMocker as BuilderInvocationMocker;
use PHPUnit\Framework\MockObject\Builder\Match;
use PHPUnit\Framework\MockObject\Builder\NamespaceMatch;
use PHPUnit\Framework\MockObject\Matcher\DeferredError;
use PHPUnit\Framework\MockObject\Matcher\Invocation as MatcherInvocation;
use PHPUnit\Framework\MockObject\Stub\MatcherCollection;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class InvocationMocker implements Invokable, MatcherCollection, NamespaceMatch
{
    /**
     * @var MatcherInvocation[]
     */
    private $matchers = [];

    /**
     * @var Match[]
     */
    private $builderMap = [];

    /**
     * @var ConfigurableMethod[]
     */
    private $configurableMethods;

    /**
     * @var bool
     */
    private $returnValueGeneration;

    public function __construct(array $configurableMethods, bool $returnValueGeneration)
    {
        $this->configurableMethods   = $configurableMethods;
        $this->returnValueGeneration = $returnValueGeneration;
    }

    public function addMatcher(MatcherInvocation $matcher): void
    {
        $this->matchers[] = $matcher;
    }

    public function hasMatchers()
    {
        foreach ($this->matchers as $matcher) {
            if ($matcher->hasMatchers()) {
                return true;
            }
        }

        return false;
    }

    public function lookupId($id): Match
    {
        if (isset($this->builderMap[$id])) {
            return $this->builderMap[$id];
        }

        return null;
    }

    /**
     * @throws RuntimeException
     */
    public function registerId($id, Match $builder): void
    {
        if (isset($this->builderMap[$id])) {
            throw new RuntimeException(
                'Match builder with id <' . $id . '> is already registered.'
            );
        }

        $this->builderMap[$id] = $builder;
    }

    public function expects(MatcherInvocation $matcher): BuilderInvocationMocker
    {
        return new BuilderInvocationMocker(
            $this,
            $matcher,
            ...$this->configurableMethods
        );
    }

    /**
     * @throws Exception
     */
    public function invoke(Invocation $invocation)
    {
        $exception      = null;
        $hasReturnValue = false;
        $returnValue    = null;

        foreach ($this->matchers as $match) {
            try {
                if ($match->matches($invocation)) {
                    $value = $match->invoked($invocation);

                    if (!$hasReturnValue) {
                        $returnValue    = $value;
                        $hasReturnValue = true;
                    }
                }
            } catch (Exception $e) {
                $exception = $e;
            }
        }

        if ($exception !== null) {
            throw $exception;
        }

        if ($hasReturnValue) {
            return $returnValue;
        }

        if (!$this->returnValueGeneration) {
            $exception = new ExpectationFailedException(
                \sprintf(
                    'Return value inference disabled and no expectation set up for %s::%s()',
                    $invocation->getClassName(),
                    $invocation->getMethodName()
                )
            );

            if (\strtolower($invocation->getMethodName()) === '__tostring') {
                $this->addMatcher(new DeferredError($exception));

                return '';
            }

            throw $exception;
        }

        return $invocation->generateReturnValue();
    }

    public function matches(Invocation $invocation): bool
    {
        foreach ($this->matchers as $matcher) {
            if (!$matcher->matches($invocation)) {
                return false;
            }
        }

        return true;
    }

    /**
     * @throws \PHPUnit\Framework\ExpectationFailedException
     */
    public function verify(): void
    {
        foreach ($this->matchers as $matcher) {
            $matcher->verify();
        }
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
interface MockType
{
    public function generate(): string;
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
interface Invokable extends Verifiable
{
    /**
     * Invokes the invocation object $invocation so that it can be checked for
     * expectations or matched against stubs.
     *
     * @param Invocation $invocation The invocation object passed from mock object
     *
     * @return object
     */
    public function invoke(Invocation $invocation);

    /**
     * Checks if the invocation matches.
     *
     * @param Invocation $invocation The invocation object passed from mock object
     */
    public function matches(Invocation $invocation): bool;
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject;

use PHPUnit\Framework\SelfDescribing;
use PHPUnit\Util\Type;
use SebastianBergmann\Exporter\Exporter;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class Invocation implements SelfDescribing
{
    /**
     * @var string
     */
    private $className;

    /**
     * @var string
     */
    private $methodName;

    /**
     * @var array
     */
    private $parameters;

    /**
     * @var string
     */
    private $returnType;

    /**
     * @var bool
     */
    private $isReturnTypeNullable = false;

    /**
     * @var bool
     */
    private $proxiedCall;

    /**
     * @var object
     */
    private $object;

    public function __construct(string $className, string $methodName, array $parameters, string $returnType, object $object, bool $cloneObjects = false, bool $proxiedCall = false)
    {
        $this->className   = $className;
        $this->methodName  = $methodName;
        $this->parameters  = $parameters;
        $this->object      = $object;
        $this->proxiedCall = $proxiedCall;

        $returnType = \ltrim($returnType, ': ');

        if (\strtolower($methodName) === '__tostring') {
            $returnType = 'string';
        }

        if (\strpos($returnType, '?') === 0) {
            $returnType                 = \substr($returnType, 1);
            $this->isReturnTypeNullable = true;
        }

        $this->returnType = $returnType;

        if (!$cloneObjects) {
            return;
        }

        foreach ($this->parameters as $key => $value) {
            if (\is_object($value)) {
                $this->parameters[$key] = $this->cloneObject($value);
            }
        }
    }

    public function getClassName(): string
    {
        return $this->className;
    }

    public function getMethodName(): string
    {
        return $this->methodName;
    }

    public function getParameters(): array
    {
        return $this->parameters;
    }

    public function getReturnType(): string
    {
        return $this->returnType;
    }

    public function isReturnTypeNullable(): bool
    {
        return $this->isReturnTypeNullable;
    }

    /**
     * @throws RuntimeException
     *
     * @return mixed Mocked return value
     */
    public function generateReturnValue()
    {
        if ($this->isReturnTypeNullable || $this->proxiedCall) {
            return;
        }

        switch (\strtolower($this->returnType)) {
            case '':
            case 'void':
                return;

            case 'string':
                return '';

            case 'float':
                return 0.0;

            case 'int':
                return 0;

            case 'bool':
                return false;

            case 'array':
                return [];

            case 'object':
                return new \stdClass;

            case 'callable':
            case 'closure':
                return function (): void {
                };

            case 'traversable':
            case 'generator':
            case 'iterable':
                $generator = function () {
                    yield;
                };

                return $generator();

            default:
                $generator = new Generator;

                return $generator->getMock($this->returnType, [], [], '', false);
        }
    }

    public function toString(): string
    {
        $exporter = new Exporter;

        return \sprintf(
            '%s::%s(%s)%s',
            $this->className,
            $this->methodName,
            \implode(
                ', ',
                \array_map(
                    [$exporter, 'shortenedExport'],
                    $this->parameters
                )
            ),
            $this->returnType ? \sprintf(': %s', $this->returnType) : ''
        );
    }

    public function getObject(): ?object
    {
        return $this->object;
    }

    private function cloneObject(object $original): object
    {
        if (Type::isCloneable($original)) {
            return clone $original;
        }

        return $original;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject;

use PHPUnit\Framework\TestCase;

/**
 * @psalm-template MockedType
 */
final class MockBuilder
{
    /**
     * @var TestCase
     */
    private $testCase;

    /**
     * @var string
     */
    private $type;

    /**
     * @var string[]
     */
    private $methods = [];

    /**
     * @var string
     */
    private $mockClassName = '';

    /**
     * @var array
     */
    private $constructorArgs = [];

    /**
     * @var bool
     */
    private $originalConstructor = true;

    /**
     * @var bool
     */
    private $originalClone = true;

    /**
     * @var bool
     */
    private $autoload = true;

    /**
     * @var bool
     */
    private $cloneArguments = false;

    /**
     * @var bool
     */
    private $callOriginalMethods = false;

    /**
     * @var object
     */
    private $proxyTarget;

    /**
     * @var bool
     */
    private $allowMockingUnknownTypes = true;

    /**
     * @var bool
     */
    private $returnValueGeneration = true;

    /**
     * @var Generator
     */
    private $generator;

    /**
     * @param string|string[] $type
     *
     * @psalm-param class-string<MockedType>|string|string[] $type
     */
    public function __construct(TestCase $testCase, $type)
    {
        $this->testCase  = $testCase;
        $this->type      = $type;
        $this->generator = new Generator;
    }

    /**
     * Creates a mock object using a fluent interface.
     *
     * @throws RuntimeException
     *
     * @psalm-return MockObject&MockedType
     */
    public function getMock(): MockObject
    {
        $object = $this->generator->getMock(
            $this->type,
            $this->methods,
            $this->constructorArgs,
            $this->mockClassName,
            $this->originalConstructor,
            $this->originalClone,
            $this->autoload,
            $this->cloneArguments,
            $this->callOriginalMethods,
            $this->proxyTarget,
            $this->allowMockingUnknownTypes,
            $this->returnValueGeneration
        );

        $this->testCase->registerMockObject($object);

        return $object;
    }

    /**
     * Creates a mock object for an abstract class using a fluent interface.
     *
     * @throws \PHPUnit\Framework\Exception
     * @throws RuntimeException
     *
     * @psalm-return MockObject&MockedType
     */
    public function getMockForAbstractClass(): MockObject
    {
        $object = $this->generator->getMockForAbstractClass(
            $this->type,
            $this->constructorArgs,
            $this->mockClassName,
            $this->originalConstructor,
            $this->originalClone,
            $this->autoload,
            $this->methods,
            $this->cloneArguments
        );

        $this->testCase->registerMockObject($object);

        return $object;
    }

    /**
     * Creates a mock object for a trait using a fluent interface.
     *
     * @throws \PHPUnit\Framework\Exception
     * @throws RuntimeException
     *
     * @psalm-return MockObject&MockedType
     */
    public function getMockForTrait(): MockObject
    {
        $object = $this->generator->getMockForTrait(
            $this->type,
            $this->constructorArgs,
            $this->mockClassName,
            $this->originalConstructor,
            $this->originalClone,
            $this->autoload,
            $this->methods,
            $this->cloneArguments
        );

        $this->testCase->registerMockObject($object);

        return $object;
    }

    /**
     * Specifies the subset of methods to mock. Default is to mock none of them.
     */
    public function setMethods(array $methods = null): self
    {
        $this->methods = $methods;

        return $this;
    }

    /**
     * Specifies the subset of methods to not mock. Default is to mock all of them.
     */
    public function setMethodsExcept(array $methods = []): self
    {
        return $this->setMethods(
            \array_diff(
                $this->generator->getClassMethods($this->type),
                $methods
            )
        );
    }

    /**
     * Specifies the arguments for the constructor.
     */
    public function setConstructorArgs(array $args): self
    {
        $this->constructorArgs = $args;

        return $this;
    }

    /**
     * Specifies the name for the mock class.
     */
    public function setMockClassName(string $name): self
    {
        $this->mockClassName = $name;

        return $this;
    }

    /**
     * Disables the invocation of the original constructor.
     */
    public function disableOriginalConstructor(): self
    {
        $this->originalConstructor = false;

        return $this;
    }

    /**
     * Enables the invocation of the original constructor.
     */
    public function enableOriginalConstructor(): self
    {
        $this->originalConstructor = true;

        return $this;
    }

    /**
     * Disables the invocation of the original clone constructor.
     */
    public function disableOriginalClone(): self
    {
        $this->originalClone = false;

        return $this;
    }

    /**
     * Enables the invocation of the original clone constructor.
     */
    public function enableOriginalClone(): self
    {
        $this->originalClone = true;

        return $this;
    }

    /**
     * Disables the use of class autoloading while creating the mock object.
     */
    public function disableAutoload(): self
    {
        $this->autoload = false;

        return $this;
    }

    /**
     * Enables the use of class autoloading while creating the mock object.
     */
    public function enableAutoload(): self
    {
        $this->autoload = true;

        return $this;
    }

    /**
     * Disables the cloning of arguments passed to mocked methods.
     */
    public function disableArgumentCloning(): self
    {
        $this->cloneArguments = false;

        return $this;
    }

    /**
     * Enables the cloning of arguments passed to mocked methods.
     */
    public function enableArgumentCloning(): self
    {
        $this->cloneArguments = true;

        return $this;
    }

    /**
     * Enables the invocation of the original methods.
     */
    public function enableProxyingToOriginalMethods(): self
    {
        $this->callOriginalMethods = true;

        return $this;
    }

    /**
     * Disables the invocation of the original methods.
     */
    public function disableProxyingToOriginalMethods(): self
    {
        $this->callOriginalMethods = false;
        $this->proxyTarget         = null;

        return $this;
    }

    /**
     * Sets the proxy target.
     */
    public function setProxyTarget(object $object): self
    {
        $this->proxyTarget = $object;

        return $this;
    }

    public function allowMockingUnknownTypes(): self
    {
        $this->allowMockingUnknownTypes = true;

        return $this;
    }

    public function disallowMockingUnknownTypes(): self
    {
        $this->allowMockingUnknownTypes = false;

        return $this;
    }

    public function enableAutoReturnValueGeneration(): self
    {
        $this->returnValueGeneration = true;

        return $this;
    }

    public function disableAutoReturnValueGeneration(): self
    {
        $this->returnValueGeneration = false;

        return $this;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class MockMethodSet
{
    /**
     * @var MockMethod[]
     */
    private $methods = [];

    public function addMethods(MockMethod ...$methods): void
    {
        foreach ($methods as $method) {
            $this->methods[\strtolower($method->getName())] = $method;
        }
    }

    /**
     * @return MockMethod[]
     */
    public function asArray(): array
    {
        return \array_values($this->methods);
    }

    public function hasMethod(string $methodName): bool
    {
        return \array_key_exists(\strtolower($methodName), $this->methods);
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject\Matcher;

use PHPUnit\Framework\Constraint\Constraint;
use PHPUnit\Framework\Constraint\IsEqual;
use PHPUnit\Framework\MockObject\Invocation as BaseInvocation;
use PHPUnit\Util\InvalidArgumentHelper;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class MethodName extends StatelessInvocation
{
    /**
     * @var Constraint
     */
    private $constraint;

    /**
     * @param  Constraint|string
     *
     * @throws Constraint
     * @throws \PHPUnit\Framework\Exception
     */
    public function __construct($constraint)
    {
        if (!$constraint instanceof Constraint) {
            if (!\is_string($constraint)) {
                throw InvalidArgumentHelper::factory(1, 'string');
            }

            $constraint = new IsEqual(
                $constraint,
                0,
                10,
                false,
                true
            );
        }

        $this->constraint = $constraint;
    }

    public function toString(): string
    {
        return 'method name ' . $this->constraint->toString();
    }

    /**
     * @throws \PHPUnit\Framework\ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function matches(BaseInvocation $invocation): bool
    {
        return $this->matchesName($invocation->getMethodName());
    }

    public function matchesName(string $methodName): bool
    {
        return $this->constraint->evaluate($methodName, '', true);
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject\Matcher;

use PHPUnit\Framework\Constraint\Constraint;
use PHPUnit\Framework\Constraint\IsEqual;
use PHPUnit\Framework\ExpectationFailedException;
use PHPUnit\Framework\MockObject\Invocation as BaseInvocation;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class ConsecutiveParameters extends StatelessInvocation
{
    /**
     * @var array
     */
    private $parameterGroups = [];

    /**
     * @var array
     */
    private $invocations = [];

    /**
     * @throws \PHPUnit\Framework\Exception
     */
    public function __construct(array $parameterGroups)
    {
        foreach ($parameterGroups as $index => $parameters) {
            foreach ($parameters as $parameter) {
                if (!$parameter instanceof Constraint) {
                    $parameter = new IsEqual($parameter);
                }

                $this->parameterGroups[$index][] = $parameter;
            }
        }
    }

    public function toString(): string
    {
        return 'with consecutive parameters';
    }

    /**
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function matches(BaseInvocation $invocation): bool
    {
        $this->invocations[] = $invocation;
        $callIndex           = \count($this->invocations) - 1;

        $this->verifyInvocation($invocation, $callIndex);

        return false;
    }

    /**
     * @throws \PHPUnit\Framework\ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function verify(): void
    {
        foreach ($this->invocations as $callIndex => $invocation) {
            $this->verifyInvocation($invocation, $callIndex);
        }
    }

    /**
     * Verify a single invocation
     *
     * @param int $callIndex
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    private function verifyInvocation(BaseInvocation $invocation, $callIndex): void
    {
        if (!isset($this->parameterGroups[$callIndex])) {
            // no parameter assertion for this call index
            return;
        }

        if ($invocation === null) {
            throw new ExpectationFailedException(
                'Mocked method does not exist.'
            );
        }

        $parameters = $this->parameterGroups[$callIndex];

        if (\count($invocation->getParameters()) < \count($parameters)) {
            throw new ExpectationFailedException(
                \sprintf(
                    'Parameter count for invocation %s is too low.',
                    $invocation->toString()
                )
            );
        }

        foreach ($parameters as $i => $parameter) {
            $parameter->evaluate(
                $invocation->getParameters()[$i],
                \sprintf(
                    'Parameter %s for invocation #%d %s does not match expected ' .
                    'value.',
                    $i,
                    $callIndex,
                    $invocation->toString()
                )
            );
        }
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject\Matcher;

use PHPUnit\Framework\MockObject\Invocation as BaseInvocation;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class DeferredError extends StatelessInvocation
{
    /**
     * @var \Throwable
     */
    private $exception;

    public function __construct(\Throwable $exception)
    {
        $this->exception = $exception;
    }

    /**
     * @throws \Throwable
     */
    public function verify(): void
    {
        throw $this->exception;
    }

    public function toString(): string
    {
        return '';
    }

    public function matches(BaseInvocation $invocation): bool
    {
        return true;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject\Matcher;

use PHPUnit\Framework\MockObject\Invocation as BaseInvocation;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
abstract class InvokedRecorder implements Invocation
{
    /**
     * @var BaseInvocation[]
     */
    private $invocations = [];

    public function getInvocationCount(): int
    {
        return \count($this->invocations);
    }

    /**
     * @return BaseInvocation[]
     */
    public function getInvocations(): array
    {
        return $this->invocations;
    }

    public function hasBeenInvoked(): bool
    {
        return \count($this->invocations) > 0;
    }

    public function invoked(BaseInvocation $invocation): void
    {
        $this->invocations[] = $invocation;
    }

    public function matches(BaseInvocation $invocation): bool
    {
        return true;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject\Matcher;

use PHPUnit\Framework\MockObject\Invocation as BaseInvocation;
use PHPUnit\Framework\MockObject\Verifiable;
use PHPUnit\Framework\SelfDescribing;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
interface Invocation extends SelfDescribing, Verifiable
{
    /**
     * Registers the invocation $invocation in the object as being invoked.
     * This will only occur after matches() returns true which means the
     * current invocation is the correct one.
     *
     * The matcher can store information from the invocation which can later
     * be checked in verify(), or it can check the values directly and throw
     * and exception if an expectation is not met.
     *
     * If the matcher is a stub it will also have a return value.
     *
     * @param BaseInvocation $invocation Object containing information on a mocked or stubbed method which was invoked
     */
    public function invoked(BaseInvocation $invocation);

    /**
     * Checks if the invocation $invocation matches the current rules. If it does
     * the matcher will get the invoked() method called which should check if an
     * expectation is met.
     *
     * @param BaseInvocation $invocation Object containing information on a mocked or stubbed method which was invoked
     */
    public function matches(BaseInvocation $invocation): bool;
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject\Matcher;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class AnyInvokedCount extends InvokedRecorder
{
    public function toString(): string
    {
        return 'invoked zero or more times';
    }

    public function verify(): void
    {
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject\Matcher;

use PHPUnit\Framework\ExpectationFailedException;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class InvokedAtLeastOnce extends InvokedRecorder
{
    public function toString(): string
    {
        return 'invoked at least once';
    }

    /**
     * Verifies that the current expectation is valid. If everything is OK the
     * code should just return, if not it must throw an exception.
     *
     * @throws ExpectationFailedException
     */
    public function verify(): void
    {
        $count = $this->getInvocationCount();

        if ($count < 1) {
            throw new ExpectationFailedException(
                'Expected invocation at least once but it never occurred.'
            );
        }
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject\Matcher;

use PHPUnit\Framework\MockObject\Invocation as BaseInvocation;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
abstract class StatelessInvocation implements Invocation
{
    /**
     * Registers the invocation $invocation in the object as being invoked.
     * This will only occur after matches() returns true which means the
     * current invocation is the correct one.
     *
     * The matcher can store information from the invocation which can later
     * be checked in verify(), or it can check the values directly and throw
     * and exception if an expectation is not met.
     *
     * If the matcher is a stub it will also have a return value.
     *
     * @param BaseInvocation $invocation Object containing information on a mocked or stubbed method which was invoked
     */
    public function invoked(BaseInvocation $invocation): void
    {
    }

    /**
     * Checks if the invocation $invocation matches the current rules. If it does
     * the matcher will get the invoked() method called which should check if an
     * expectation is met.
     */
    public function verify(): void
    {
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject\Matcher;

use PHPUnit\Framework\MockObject\Invocation as BaseInvocation;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class AnyParameters extends StatelessInvocation
{
    public function toString(): string
    {
        return 'with any parameters';
    }

    public function matches(BaseInvocation $invocation): bool
    {
        return true;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject\Matcher;

use PHPUnit\Framework\ExpectationFailedException;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class InvokedAtMostCount extends InvokedRecorder
{
    /**
     * @var int
     */
    private $allowedInvocations;

    /**
     * @param int $allowedInvocations
     */
    public function __construct($allowedInvocations)
    {
        $this->allowedInvocations = $allowedInvocations;
    }

    public function toString(): string
    {
        return 'invoked at most ' . $this->allowedInvocations . ' times';
    }

    /**
     * Verifies that the current expectation is valid. If everything is OK the
     * code should just return, if not it must throw an exception.
     *
     * @throws ExpectationFailedException
     */
    public function verify(): void
    {
        $count = $this->getInvocationCount();

        if ($count > $this->allowedInvocations) {
            throw new ExpectationFailedException(
                'Expected invocation at most ' . $this->allowedInvocations .
                ' times but it occurred ' . $count . ' time(s).'
            );
        }
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject\Matcher;

use PHPUnit\Framework\ExpectationFailedException;
use PHPUnit\Framework\MockObject\Invocation as BaseInvocation;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
class InvokedAtIndex implements Invocation
{
    /**
     * @var int
     */
    private $sequenceIndex;

    /**
     * @var int
     */
    private $currentIndex = -1;

    /**
     * @param int $sequenceIndex
     */
    public function __construct($sequenceIndex)
    {
        $this->sequenceIndex = $sequenceIndex;
    }

    public function toString(): string
    {
        return 'invoked at sequence index ' . $this->sequenceIndex;
    }

    public function matches(BaseInvocation $invocation): bool
    {
        $this->currentIndex++;

        return $this->currentIndex == $this->sequenceIndex;
    }

    public function invoked(BaseInvocation $invocation): void
    {
    }

    /**
     * Verifies that the current expectation is valid. If everything is OK the
     * code should just return, if not it must throw an exception.
     *
     * @throws ExpectationFailedException
     */
    public function verify(): void
    {
        if ($this->currentIndex < $this->sequenceIndex) {
            throw new ExpectationFailedException(
                \sprintf(
                    'The expected invocation at index %s was never reached.',
                    $this->sequenceIndex
                )
            );
        }
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject\Matcher;

use PHPUnit\Framework\ExpectationFailedException;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class InvokedAtLeastCount extends InvokedRecorder
{
    /**
     * @var int
     */
    private $requiredInvocations;

    /**
     * @param int $requiredInvocations
     */
    public function __construct($requiredInvocations)
    {
        $this->requiredInvocations = $requiredInvocations;
    }

    public function toString(): string
    {
        return 'invoked at least ' . $this->requiredInvocations . ' times';
    }

    /**
     * Verifies that the current expectation is valid. If everything is OK the
     * code should just return, if not it must throw an exception.
     *
     * @throws ExpectationFailedException
     */
    public function verify(): void
    {
        $count = $this->getInvocationCount();

        if ($count < $this->requiredInvocations) {
            throw new ExpectationFailedException(
                'Expected invocation at least ' . $this->requiredInvocations .
                ' times but it occurred ' . $count . ' time(s).'
            );
        }
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject\Matcher;

use PHPUnit\Framework\Constraint\Constraint;
use PHPUnit\Framework\Constraint\IsAnything;
use PHPUnit\Framework\Constraint\IsEqual;
use PHPUnit\Framework\ExpectationFailedException;
use PHPUnit\Framework\MockObject\Invocation as BaseInvocation;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class Parameters extends StatelessInvocation
{
    /**
     * @var Constraint[]
     */
    private $parameters = [];

    /**
     * @var BaseInvocation
     */
    private $invocation;

    /**
     * @var ExpectationFailedException
     */
    private $parameterVerificationResult;

    /**
     * @throws \PHPUnit\Framework\Exception
     */
    public function __construct(array $parameters)
    {
        foreach ($parameters as $parameter) {
            if (!($parameter instanceof Constraint)) {
                $parameter = new IsEqual(
                    $parameter
                );
            }

            $this->parameters[] = $parameter;
        }
    }

    public function toString(): string
    {
        $text = 'with parameter';

        foreach ($this->parameters as $index => $parameter) {
            if ($index > 0) {
                $text .= ' and';
            }

            $text .= ' ' . $index . ' ' . $parameter->toString();
        }

        return $text;
    }

    /**
     * @throws \Exception
     */
    public function matches(BaseInvocation $invocation): bool
    {
        $this->invocation                  = $invocation;
        $this->parameterVerificationResult = null;

        try {
            $this->parameterVerificationResult = $this->doVerify();

            return $this->parameterVerificationResult;
        } catch (ExpectationFailedException $e) {
            $this->parameterVerificationResult = $e;

            throw $this->parameterVerificationResult;
        }
    }

    /**
     * Checks if the invocation $invocation matches the current rules. If it
     * does the matcher will get the invoked() method called which should check
     * if an expectation is met.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function verify(): void
    {
        $this->doVerify();
    }

    /**
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    private function doVerify(): bool
    {
        if (isset($this->parameterVerificationResult)) {
            return $this->guardAgainstDuplicateEvaluationOfParameterConstraints();
        }

        if ($this->invocation === null) {
            throw new ExpectationFailedException('Mocked method does not exist.');
        }

        if (\count($this->invocation->getParameters()) < \count($this->parameters)) {
            $message = 'Parameter count for invocation %s is too low.';

            // The user called `->with($this->anything())`, but may have meant
            // `->withAnyParameters()`.
            //
            // @see https://github.com/sebastianbergmann/phpunit-mock-objects/issues/199
            if (\count($this->parameters) === 1 &&
                \get_class($this->parameters[0]) === IsAnything::class) {
                $message .= "\nTo allow 0 or more parameters with any value, omit ->with() or use ->withAnyParameters() instead.";
            }

            throw new ExpectationFailedException(
                \sprintf($message, $this->invocation->toString())
            );
        }

        foreach ($this->parameters as $i => $parameter) {
            $parameter->evaluate(
                $this->invocation->getParameters()[$i],
                \sprintf(
                    'Parameter %s for invocation %s does not match expected ' .
                    'value.',
                    $i,
                    $this->invocation->toString()
                )
            );
        }

        return true;
    }

    /**
     * @throws ExpectationFailedException
     */
    private function guardAgainstDuplicateEvaluationOfParameterConstraints(): bool
    {
        if ($this->parameterVerificationResult instanceof ExpectationFailedException) {
            throw $this->parameterVerificationResult;
        }

        return (bool) $this->parameterVerificationResult;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject\Matcher;

use PHPUnit\Framework\ExpectationFailedException;
use PHPUnit\Framework\MockObject\Invocation as BaseInvocation;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class InvokedCount extends InvokedRecorder
{
    /**
     * @var int
     */
    private $expectedCount;

    /**
     * @param int $expectedCount
     */
    public function __construct($expectedCount)
    {
        $this->expectedCount = $expectedCount;
    }

    public function isNever(): bool
    {
        return $this->expectedCount === 0;
    }

    public function toString(): string
    {
        return 'invoked ' . $this->expectedCount . ' time(s)';
    }

    /**
     * @throws ExpectationFailedException
     */
    public function invoked(BaseInvocation $invocation): void
    {
        parent::invoked($invocation);

        $count = $this->getInvocationCount();

        if ($count > $this->expectedCount) {
            $message = $invocation->toString() . ' ';

            switch ($this->expectedCount) {
                case 0:
                    $message .= 'was not expected to be called.';

                    break;

                case 1:
                    $message .= 'was not expected to be called more than once.';

                    break;

                default:
                    $message .= \sprintf(
                        'was not expected to be called more than %d times.',
                        $this->expectedCount
                    );
            }

            throw new ExpectationFailedException($message);
        }
    }

    /**
     * Verifies that the current expectation is valid. If everything is OK the
     * code should just return, if not it must throw an exception.
     *
     * @throws ExpectationFailedException
     */
    public function verify(): void
    {
        $count = $this->getInvocationCount();

        if ($count !== $this->expectedCount) {
            throw new ExpectationFailedException(
                \sprintf(
                    'Method was expected to be called %d times, ' .
                    'actually called %d times.',
                    $this->expectedCount,
                    $count
                )
            );
        }
    }
}

    {modifier} function {reference}{method_name}({arguments_decl}){return_declaration}
    {{deprecation}
        $__phpunit_arguments = [{arguments_call}];
        $__phpunit_count     = func_num_args();

        if ($__phpunit_count > {arguments_count}) {
            $__phpunit_arguments_tmp = func_get_args();

            for ($__phpunit_i = {arguments_count}; $__phpunit_i < $__phpunit_count; $__phpunit_i++) {
                $__phpunit_arguments[] = $__phpunit_arguments_tmp[$__phpunit_i];
            }
        }

        $__phpunit_result = $this->__phpunit_getInvocationMocker()->invoke(
            new \PHPUnit\Framework\MockObject\Invocation(
                '{class_name}', '{method_name}', $__phpunit_arguments, '{return_declaration}', $this, {clone_arguments}
            )
        );

        return $__phpunit_result;
    }

    {modifier} function {reference}{method_name}({arguments_decl}){return_declaration}
    {
        $__phpunit_arguments = [{arguments_call}];
        $__phpunit_count     = func_num_args();

        if ($__phpunit_count > {arguments_count}) {
            $__phpunit_arguments_tmp = func_get_args();

            for ($__phpunit_i = {arguments_count}; $__phpunit_i < $__phpunit_count; $__phpunit_i++) {
                $__phpunit_arguments[] = $__phpunit_arguments_tmp[$__phpunit_i];
            }
        }

        $this->__phpunit_getInvocationMocker()->invoke(
            new \PHPUnit\Framework\MockObject\Invocation(
                '{class_name}', '{method_name}', $__phpunit_arguments, '{return_declaration}', $this, {clone_arguments}, true
            )
        );

        return call_user_func_array(array($this->__phpunit_originalObject, "{method_name}"), $__phpunit_arguments);
    }

        @trigger_error({deprecation}, E_USER_DEPRECATED);
declare(strict_types=1);

{namespace}class {class_name} extends \SoapClient
{
    public function __construct($wsdl, array $options)
    {
        parent::__construct('{wsdl}', $options);
    }
{methods}}

    public function method()
    {
        $any     = new \PHPUnit\Framework\MockObject\Matcher\AnyInvokedCount;
        $expects = $this->expects($any);

        return call_user_func_array([$expects, 'method'], func_get_args());
    }

    {modifier} function {reference}{method_name}({arguments_decl}){return_declaration}
    {{deprecation}
        $__phpunit_arguments = [{arguments_call}];
        $__phpunit_count     = func_num_args();

        if ($__phpunit_count > {arguments_count}) {
            $__phpunit_arguments_tmp = func_get_args();

            for ($__phpunit_i = {arguments_count}; $__phpunit_i < $__phpunit_count; $__phpunit_i++) {
                $__phpunit_arguments[] = $__phpunit_arguments_tmp[$__phpunit_i];
            }
        }

        $this->__phpunit_getInvocationMocker()->invoke(
            new \PHPUnit\Framework\MockObject\Invocation(
                '{class_name}', '{method_name}', $__phpunit_arguments, '{return_declaration}', $this, {clone_arguments}
            )
        );
    }
declare(strict_types=1);

{prologue}class {class_name}
{
    use {trait_name};
}
    public function __clone()
    {
        $this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationMocker();
        parent::__clone();
    }

    public function {method_name}({arguments})
    {
    }
    public function __clone()
    {
        $this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationMocker();
    }

    {modifier} function {reference}{method_name}({arguments_decl}){return_declaration}
    {
        $__phpunit_arguments = [{arguments_call}];
        $__phpunit_count     = func_num_args();

        if ($__phpunit_count > {arguments_count}) {
            $__phpunit_arguments_tmp = func_get_args();

            for ($__phpunit_i = {arguments_count}; $__phpunit_i < $__phpunit_count; $__phpunit_i++) {
                $__phpunit_arguments[] = $__phpunit_arguments_tmp[$__phpunit_i];
            }
        }

        $this->__phpunit_getInvocationMocker()->invoke(
            new \PHPUnit\Framework\MockObject\Invocation(
                '{class_name}', '{method_name}', $__phpunit_arguments, '{return_declaration}', $this, {clone_arguments}, true
            )
        );

        call_user_func_array(array($this->__phpunit_originalObject, "{method_name}"), $__phpunit_arguments);
    }
declare(strict_types=1);

{prologue}{class_declaration}
{
    use \PHPUnit\Framework\MockObject\ConfigurableMethods;

    private $__phpunit_invocationMocker;
    private $__phpunit_originalObject;
    private $__phpunit_returnValueGeneration = true;

{clone}{mocked_methods}
    public function expects(\PHPUnit\Framework\MockObject\Matcher\Invocation $matcher): \PHPUnit\Framework\MockObject\Builder\InvocationMocker
    {
        return $this->__phpunit_getInvocationMocker()->expects($matcher);
    }
{method}
    public function __phpunit_setOriginalObject($originalObject): void
    {
        $this->__phpunit_originalObject = $originalObject;
    }

    public function __phpunit_setReturnValueGeneration(bool $returnValueGeneration): void
    {
        $this->__phpunit_returnValueGeneration = $returnValueGeneration;
    }

    public function __phpunit_getInvocationMocker(): \PHPUnit\Framework\MockObject\InvocationMocker
    {
        if ($this->__phpunit_invocationMocker === null) {
            $this->__phpunit_invocationMocker = new \PHPUnit\Framework\MockObject\InvocationMocker(static::$__phpunit_configurableMethods, $this->__phpunit_returnValueGeneration);
        }

        return $this->__phpunit_invocationMocker;
    }

    public function __phpunit_hasMatchers(): bool
    {
        return $this->__phpunit_getInvocationMocker()->hasMatchers();
    }

    public function __phpunit_verify(bool $unsetInvocationMocker = true): void
    {
        $this->__phpunit_getInvocationMocker()->verify();

        if ($unsetInvocationMocker) {
            $this->__phpunit_invocationMocker = null;
        }
    }
}{epilogue}

    {modifier} function {reference}{method_name}({arguments_decl}){return_declaration}
    {
        throw new \PHPUnit\Framework\MockObject\BadMethodCallException('Static method "{method_name}" cannot be invoked on mock object');
    }
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject;

use SebastianBergmann\Type\Type;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class ConfigurableMethod
{
    /**
     * @var string
     */
    private $name;

    /**
     * @var Type
     */
    private $returnType;

    public function __construct(string $name, Type $returnType)
    {
        $this->name       = $name;
        $this->returnType = $returnType;
    }

    public function getName(): string
    {
        return $this->name;
    }

    public function mayReturn($value): bool
    {
        if ($value === null && $this->returnType->allowsNull()) {
            return true;
        }

        return $this->returnType->isAssignable(Type::fromValue($value, false));
    }

    public function getReturnTypeDeclaration(): string
    {
        return $this->returnType->getReturnTypeDeclaration();
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject;

use PHPUnit\Framework\ExpectationFailedException;
use PHPUnit\Framework\MockObject\Matcher\AnyInvokedCount;
use PHPUnit\Framework\MockObject\Matcher\AnyParameters;
use PHPUnit\Framework\MockObject\Matcher\Invocation as MatcherInvocation;
use PHPUnit\Framework\MockObject\Matcher\InvokedCount;
use PHPUnit\Framework\MockObject\Matcher\MethodName;
use PHPUnit\Framework\MockObject\Matcher\Parameters;
use PHPUnit\Framework\TestFailure;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class Matcher implements MatcherInvocation
{
    /**
     * @var MatcherInvocation
     */
    private $invocationMatcher;

    /**
     * @var mixed
     */
    private $afterMatchBuilderId;

    /**
     * @var bool
     */
    private $afterMatchBuilderIsInvoked = false;

    /**
     * @var MethodName
     */
    private $methodNameMatcher;

    /**
     * @var Parameters
     */
    private $parametersMatcher;

    /**
     * @var Stub
     */
    private $stub;

    public function __construct(MatcherInvocation $invocationMatcher)
    {
        $this->invocationMatcher = $invocationMatcher;
    }

    public function hasMatchers(): bool
    {
        return $this->invocationMatcher !== null && !$this->invocationMatcher instanceof AnyInvokedCount;
    }

    public function hasMethodNameMatcher(): bool
    {
        return $this->methodNameMatcher !== null;
    }

    public function getMethodNameMatcher(): MethodName
    {
        return $this->methodNameMatcher;
    }

    public function setMethodNameMatcher(MethodName $matcher): void
    {
        $this->methodNameMatcher = $matcher;
    }

    public function hasParametersMatcher(): bool
    {
        return $this->parametersMatcher !== null;
    }

    public function getParametersMatcher(): Parameters
    {
        return $this->parametersMatcher;
    }

    public function setParametersMatcher($matcher): void
    {
        $this->parametersMatcher = $matcher;
    }

    public function setStub($stub): void
    {
        $this->stub = $stub;
    }

    public function setAfterMatchBuilderId($id): void
    {
        $this->afterMatchBuilderId = $id;
    }

    /**
     * @throws \Exception
     * @throws RuntimeException
     * @throws ExpectationFailedException
     */
    public function invoked(Invocation $invocation)
    {
        if ($this->invocationMatcher === null) {
            throw new RuntimeException(
                'No invocation matcher is set'
            );
        }

        if ($this->methodNameMatcher === null) {
            throw new RuntimeException('No method matcher is set');
        }

        if ($this->afterMatchBuilderId !== null) {
            $builder = $invocation->getObject()
                                  ->__phpunit_getInvocationMocker()
                                  ->lookupId($this->afterMatchBuilderId);

            if (!$builder) {
                throw new RuntimeException(
                    \sprintf(
                        'No builder found for match builder identification <%s>',
                        $this->afterMatchBuilderId
                    )
                );
            }

            $matcher = $builder->getMatcher();

            if ($matcher && $matcher->invocationMatcher->hasBeenInvoked()) {
                $this->afterMatchBuilderIsInvoked = true;
            }
        }

        $this->invocationMatcher->invoked($invocation);

        try {
            if ($this->parametersMatcher !== null &&
                !$this->parametersMatcher->matches($invocation)) {
                $this->parametersMatcher->verify();
            }
        } catch (ExpectationFailedException $e) {
            throw new ExpectationFailedException(
                \sprintf(
                    "Expectation failed for %s when %s\n%s",
                    $this->methodNameMatcher->toString(),
                    $this->invocationMatcher->toString(),
                    $e->getMessage()
                ),
                $e->getComparisonFailure()
            );
        }

        if ($this->stub) {
            return $this->stub->invoke($invocation);
        }

        return $invocation->generateReturnValue();
    }

    /**
     * @throws RuntimeException
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function matches(Invocation $invocation): bool
    {
        if ($this->afterMatchBuilderId !== null) {
            $builder = $invocation->getObject()
                                  ->__phpunit_getInvocationMocker()
                                  ->lookupId($this->afterMatchBuilderId);

            if (!$builder) {
                throw new RuntimeException(
                    \sprintf(
                        'No builder found for match builder identification <%s>',
                        $this->afterMatchBuilderId
                    )
                );
            }

            $matcher = $builder->getMatcher();

            if (!$matcher) {
                return false;
            }

            if (!$matcher->invocationMatcher->hasBeenInvoked()) {
                return false;
            }
        }

        if ($this->invocationMatcher === null) {
            throw new RuntimeException(
                'No invocation matcher is set'
            );
        }

        if ($this->methodNameMatcher === null) {
            throw new RuntimeException('No method matcher is set');
        }

        if (!$this->invocationMatcher->matches($invocation)) {
            return false;
        }

        try {
            if (!$this->methodNameMatcher->matches($invocation)) {
                return false;
            }
        } catch (ExpectationFailedException $e) {
            throw new ExpectationFailedException(
                \sprintf(
                    "Expectation failed for %s when %s\n%s",
                    $this->methodNameMatcher->toString(),
                    $this->invocationMatcher->toString(),
                    $e->getMessage()
                ),
                $e->getComparisonFailure()
            );
        }

        return true;
    }

    /**
     * @throws RuntimeException
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function verify(): void
    {
        if ($this->invocationMatcher === null) {
            throw new RuntimeException(
                'No invocation matcher is set'
            );
        }

        if ($this->methodNameMatcher === null) {
            throw new RuntimeException('No method matcher is set');
        }

        try {
            $this->invocationMatcher->verify();

            if ($this->parametersMatcher === null) {
                $this->parametersMatcher = new AnyParameters;
            }

            $invocationIsAny   = $this->invocationMatcher instanceof AnyInvokedCount;
            $invocationIsNever = $this->invocationMatcher instanceof InvokedCount && $this->invocationMatcher->isNever();

            if (!$invocationIsAny && !$invocationIsNever) {
                $this->parametersMatcher->verify();
            }
        } catch (ExpectationFailedException $e) {
            throw new ExpectationFailedException(
                \sprintf(
                    "Expectation failed for %s when %s.\n%s",
                    $this->methodNameMatcher->toString(),
                    $this->invocationMatcher->toString(),
                    TestFailure::exceptionToString($e)
                )
            );
        }
    }

    public function toString(): string
    {
        $list = [];

        if ($this->invocationMatcher !== null) {
            $list[] = $this->invocationMatcher->toString();
        }

        if ($this->methodNameMatcher !== null) {
            $list[] = 'where ' . $this->methodNameMatcher->toString();
        }

        if ($this->parametersMatcher !== null) {
            $list[] = 'and ' . $this->parametersMatcher->toString();
        }

        if ($this->afterMatchBuilderId !== null) {
            $list[] = 'after ' . $this->afterMatchBuilderId;
        }

        if ($this->stub !== null) {
            $list[] = 'will ' . $this->stub->toString();
        }

        return \implode(' ', $list);
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject;

/**
 * @internal This trait is not covered by the backward compatibility promise for PHPUnit
 */
trait ConfigurableMethods
{
    /**
     * @var ConfigurableMethods[]
     */
    private static $__phpunit_configurableMethods;

    public static function __phpunit_initConfigurableMethods(ConfigurableMethod ...$configurable): void
    {
        if (isset(static::$__phpunit_configurableMethods)) {
            throw new ConfigurableMethodsAlreadyInitializedException('Configurable methods is already initialized and can not be reinitialized.');
        }

        static::$__phpunit_configurableMethods = $configurable;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject\Stub;

use PHPUnit\Framework\MockObject\Invocation;
use PHPUnit\Framework\MockObject\Stub;
use SebastianBergmann\Exporter\Exporter;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class ReturnStub implements Stub
{
    /**
     * @var mixed
     */
    private $value;

    public function __construct($value)
    {
        $this->value = $value;
    }

    public function invoke(Invocation $invocation)
    {
        return $this->value;
    }

    public function toString(): string
    {
        $exporter = new Exporter;

        return \sprintf(
            'return user-specified value %s',
            $exporter->export($this->value)
        );
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject\Stub;

use PHPUnit\Framework\MockObject\Invocation;
use PHPUnit\Framework\MockObject\Stub;
use SebastianBergmann\Exporter\Exporter;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class ConsecutiveCalls implements Stub
{
    /**
     * @var array
     */
    private $stack;

    /**
     * @var mixed
     */
    private $value;

    public function __construct(array $stack)
    {
        $this->stack = $stack;
    }

    public function invoke(Invocation $invocation)
    {
        $this->value = \array_shift($this->stack);

        if ($this->value instanceof Stub) {
            $this->value = $this->value->invoke($invocation);
        }

        return $this->value;
    }

    public function toString(): string
    {
        $exporter = new Exporter;

        return \sprintf(
            'return user-specified value %s',
            $exporter->export($this->value)
        );
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject\Stub;

use PHPUnit\Framework\MockObject\Invocation;
use PHPUnit\Framework\MockObject\Stub;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class ReturnArgument implements Stub
{
    /**
     * @var int
     */
    private $argumentIndex;

    public function __construct($argumentIndex)
    {
        $this->argumentIndex = $argumentIndex;
    }

    public function invoke(Invocation $invocation)
    {
        if (isset($invocation->getParameters()[$this->argumentIndex])) {
            return $invocation->getParameters()[$this->argumentIndex];
        }
    }

    public function toString(): string
    {
        return \sprintf('return argument #%d', $this->argumentIndex);
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject\Stub;

use PHPUnit\Framework\MockObject\Invocation;
use PHPUnit\Framework\MockObject\Stub;
use SebastianBergmann\Exporter\Exporter;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class ReturnReference implements Stub
{
    /**
     * @var mixed
     */
    private $reference;

    public function __construct(&$reference)
    {
        $this->reference = &$reference;
    }

    public function invoke(Invocation $invocation)
    {
        return $this->reference;
    }

    public function toString(): string
    {
        $exporter = new Exporter;

        return \sprintf(
            'return user-specified reference %s',
            $exporter->export($this->reference)
        );
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject\Stub;

use PHPUnit\Framework\MockObject\Matcher\Invocation;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
interface MatcherCollection
{
    /**
     * Adds a new matcher to the collection which can be used as an expectation
     * or a stub.
     *
     * @param Invocation $matcher Matcher for invocations to mock objects
     */
    public function addMatcher(Invocation $matcher);
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject\Stub;

use PHPUnit\Framework\MockObject\Invocation;
use PHPUnit\Framework\MockObject\Stub;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class ReturnValueMap implements Stub
{
    /**
     * @var array
     */
    private $valueMap;

    public function __construct(array $valueMap)
    {
        $this->valueMap = $valueMap;
    }

    public function invoke(Invocation $invocation)
    {
        $parameterCount = \count($invocation->getParameters());

        foreach ($this->valueMap as $map) {
            if (!\is_array($map) || $parameterCount !== (\count($map) - 1)) {
                continue;
            }

            $return = \array_pop($map);

            if ($invocation->getParameters() === $map) {
                return $return;
            }
        }
    }

    public function toString(): string
    {
        return 'return value from a map';
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject\Stub;

use PHPUnit\Framework\MockObject\Invocation;
use PHPUnit\Framework\MockObject\Stub;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class ReturnCallback implements Stub
{
    private $callback;

    public function __construct($callback)
    {
        $this->callback = $callback;
    }

    public function invoke(Invocation $invocation)
    {
        return \call_user_func_array($this->callback, $invocation->getParameters());
    }

    public function toString(): string
    {
        if (\is_array($this->callback)) {
            if (\is_object($this->callback[0])) {
                $class = \get_class($this->callback[0]);
                $type  = '->';
            } else {
                $class = $this->callback[0];
                $type  = '::';
            }

            return \sprintf(
                'return result of user defined callback %s%s%s() with the ' .
                'passed arguments',
                $class,
                $type,
                $this->callback[1]
            );
        }

        return 'return result of user defined callback ' . $this->callback .
               ' with the passed arguments';
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject\Stub;

use PHPUnit\Framework\MockObject\Invocation;
use PHPUnit\Framework\MockObject\RuntimeException;
use PHPUnit\Framework\MockObject\Stub;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class ReturnSelf implements Stub
{
    /**
     * @throws RuntimeException
     */
    public function invoke(Invocation $invocation)
    {
        return $invocation->getObject();
    }

    public function toString(): string
    {
        return 'return the current object';
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject\Stub;

use PHPUnit\Framework\MockObject\Invocation;
use PHPUnit\Framework\MockObject\Stub;
use SebastianBergmann\Exporter\Exporter;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class Exception implements Stub
{
    private $exception;

    public function __construct(\Throwable $exception)
    {
        $this->exception = $exception;
    }

    /**
     * @throws \Throwable
     */
    public function invoke(Invocation $invocation): void
    {
        throw $this->exception;
    }

    public function toString(): string
    {
        $exporter = new Exporter;

        return \sprintf(
            'raise user-specified exception %s',
            $exporter->export($this->exception)
        );
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject;

use PHPUnit\Framework\SelfDescribing;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
interface Stub extends SelfDescribing
{
    /**
     * Fakes the processing of the invocation $invocation by returning a
     * specific value.
     *
     * @param Invocation $invocation The invocation which was mocked and matched by the current method and argument matchers
     */
    public function invoke(Invocation $invocation);
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject;

use SebastianBergmann\Type\ObjectType;
use SebastianBergmann\Type\Type;
use SebastianBergmann\Type\UnknownType;
use SebastianBergmann\Type\VoidType;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class MockMethod
{
    /**
     * @var \Text_Template[]
     */
    private static $templates = [];

    /**
     * @var string
     */
    private $className;

    /**
     * @var string
     */
    private $methodName;

    /**
     * @var bool
     */
    private $cloneArguments;

    /**
     * @var string string
     */
    private $modifier;

    /**
     * @var string
     */
    private $argumentsForDeclaration;

    /**
     * @var string
     */
    private $argumentsForCall;

    /**
     * @var Type
     */
    private $returnType;

    /**
     * @var string
     */
    private $reference;

    /**
     * @var bool
     */
    private $callOriginalMethod;

    /**
     * @var bool
     */
    private $static;

    /**
     * @var ?string
     */
    private $deprecation;

    /**
     * @var bool
     */
    private $allowsReturnNull;

    /**
     * @throws RuntimeException
     */
    public static function fromReflection(\ReflectionMethod $method, bool $callOriginalMethod, bool $cloneArguments): self
    {
        if ($method->isPrivate()) {
            $modifier = 'private';
        } elseif ($method->isProtected()) {
            $modifier = 'protected';
        } else {
            $modifier = 'public';
        }

        if ($method->isStatic()) {
            $modifier .= ' static';
        }

        if ($method->returnsReference()) {
            $reference = '&';
        } else {
            $reference = '';
        }

        $docComment = $method->getDocComment();

        if (\is_string($docComment) &&
            \preg_match('#\*[ \t]*+@deprecated[ \t]*+(.*?)\r?+\n[ \t]*+\*(?:[ \t]*+@|/$)#s', $docComment, $deprecation)) {
            $deprecation = \trim(\preg_replace('#[ \t]*\r?\n[ \t]*+\*[ \t]*+#', ' ', $deprecation[1]));
        } else {
            $deprecation = null;
        }

        return new self(
            $method->getDeclaringClass()->getName(),
            $method->getName(),
            $cloneArguments,
            $modifier,
            self::getMethodParameters($method),
            self::getMethodParameters($method, true),
            self::deriveReturnType($method),
            $reference,
            $callOriginalMethod,
            $method->isStatic(),
            $deprecation,
            $method->hasReturnType() && $method->getReturnType()->allowsNull()
        );
    }

    public static function fromName(string $fullClassName, string $methodName, bool $cloneArguments): self
    {
        return new self(
            $fullClassName,
            $methodName,
            $cloneArguments,
            'public',
            '',
            '',
            new UnknownType,
            '',
            false,
            false,
            null,
            false
        );
    }

    public function __construct(string $className, string $methodName, bool $cloneArguments, string $modifier, string $argumentsForDeclaration, string $argumentsForCall, Type $returnType, string $reference, bool $callOriginalMethod, bool $static, ?string $deprecation, bool $allowsReturnNull)
    {
        $this->className               = $className;
        $this->methodName              = $methodName;
        $this->cloneArguments          = $cloneArguments;
        $this->modifier                = $modifier;
        $this->argumentsForDeclaration = $argumentsForDeclaration;
        $this->argumentsForCall        = $argumentsForCall;
        $this->returnType              = $returnType;
        $this->reference               = $reference;
        $this->callOriginalMethod      = $callOriginalMethod;
        $this->static                  = $static;
        $this->deprecation             = $deprecation;
        $this->allowsReturnNull        = $allowsReturnNull;
    }

    public function getName(): string
    {
        return $this->methodName;
    }

    /**
     * @throws RuntimeException
     */
    public function generateCode(): string
    {
        if ($this->static) {
            $templateFile = 'mocked_static_method.tpl';
        } elseif ($this->returnType instanceof VoidType) {
            $templateFile = \sprintf(
                '%s_method_void.tpl',
                $this->callOriginalMethod ? 'proxied' : 'mocked'
            );
        } else {
            $templateFile = \sprintf(
                '%s_method.tpl',
                $this->callOriginalMethod ? 'proxied' : 'mocked'
            );
        }

        $deprecation = $this->deprecation;

        if (null !== $this->deprecation) {
            $deprecation         = "The $this->className::$this->methodName method is deprecated ($this->deprecation).";
            $deprecationTemplate = $this->getTemplate('deprecation.tpl');

            $deprecationTemplate->setVar([
                'deprecation' => \var_export($deprecation, true),
            ]);

            $deprecation = $deprecationTemplate->render();
        }

        $template = $this->getTemplate($templateFile);

        $template->setVar(
            [
                'arguments_decl'     => $this->argumentsForDeclaration,
                'arguments_call'     => $this->argumentsForCall,
                'return_declaration' => $this->returnType->getReturnTypeDeclaration(),
                'arguments_count'    => !empty($this->argumentsForCall) ? \substr_count($this->argumentsForCall, ',') + 1 : 0,
                'class_name'         => $this->className,
                'method_name'        => $this->methodName,
                'modifier'           => $this->modifier,
                'reference'          => $this->reference,
                'clone_arguments'    => $this->cloneArguments ? 'true' : 'false',
                'deprecation'        => $deprecation,
            ]
        );

        return $template->render();
    }

    public function getReturnType(): Type
    {
        return $this->returnType;
    }

    private function getTemplate(string $template): \Text_Template
    {
        $filename = __DIR__ . \DIRECTORY_SEPARATOR . 'Generator' . \DIRECTORY_SEPARATOR . $template;

        if (!isset(self::$templates[$filename])) {
            self::$templates[$filename] = new \Text_Template($filename);
        }

        return self::$templates[$filename];
    }

    /**
     * Returns the parameters of a function or method.
     *
     * @throws RuntimeException
     */
    private static function getMethodParameters(\ReflectionMethod $method, bool $forCall = false): string
    {
        $parameters = [];

        foreach ($method->getParameters() as $i => $parameter) {
            $name = '$' . $parameter->getName();

            /* Note: PHP extensions may use empty names for reference arguments
             * or "..." for methods taking a variable number of arguments.
             */
            if ($name === '$' || $name === '$...') {
                $name = '$arg' . $i;
            }

            if ($parameter->isVariadic()) {
                if ($forCall) {
                    continue;
                }

                $name = '...' . $name;
            }

            $nullable        = '';
            $default         = '';
            $reference       = '';
            $typeDeclaration = '';

            if (!$forCall) {
                if ($parameter->hasType() && $parameter->allowsNull()) {
                    $nullable = '?';
                }

                if ($parameter->hasType()) {
                    $type = $parameter->getType();

                    if ($type instanceof \ReflectionNamedType && $type->getName() !== 'self') {
                        $typeDeclaration = $type->getName() . ' ';
                    } else {
                        try {
                            $class = $parameter->getClass();
                        } catch (\ReflectionException $e) {
                            throw new RuntimeException(
                                \sprintf(
                                    'Cannot mock %s::%s() because a class or ' .
                                    'interface used in the signature is not loaded',
                                    $method->getDeclaringClass()->getName(),
                                    $method->getName()
                                ),
                                0,
                                $e
                            );
                        }

                        if ($class !== null) {
                            $typeDeclaration = $class->getName() . ' ';
                        }
                    }
                }

                if (!$parameter->isVariadic()) {
                    if ($parameter->isDefaultValueAvailable()) {
                        try {
                            $value = $parameter->getDefaultValueConstantName();
                        } catch (\ReflectionException $e) {
                            throw new RuntimeException(
                                $e->getMessage(),
                                (int) $e->getCode(),
                                $e
                            );
                        }

                        if ($value === null) {
                            try {
                                $value = \var_export($parameter->getDefaultValue(), true);
                            } catch (\ReflectionException $e) {
                                throw new RuntimeException(
                                    $e->getMessage(),
                                    (int) $e->getCode(),
                                    $e
                                );
                            }
                        } elseif (!\defined($value)) {
                            $rootValue = \preg_replace('/^.*\\\\/', '', $value);
                            $value     = \defined($rootValue) ? $rootValue : $value;
                        }

                        $default = ' = ' . $value;
                    } elseif ($parameter->isOptional()) {
                        $default = ' = null';
                    }
                }
            }

            if ($parameter->isPassedByReference()) {
                $reference = '&';
            }

            $parameters[] = $nullable . $typeDeclaration . $reference . $name . $default;
        }

        return \implode(', ', $parameters);
    }

    private static function deriveReturnType(\ReflectionMethod $method): Type
    {
        $returnType = $method->getReturnType();

        if ($returnType === null) {
            return new UnknownType();
        }

        // @see https://bugs.php.net/bug.php?id=70722
        if ($returnType->getName() === 'self') {
            return ObjectType::fromName($method->getDeclaringClass()->getName(), $returnType->allowsNull());
        }

        // @see https://github.com/sebastianbergmann/phpunit-mock-objects/issues/406
        if ($returnType->getName() === 'parent') {
            $parentClass = $method->getDeclaringClass()->getParentClass();

            if ($parentClass === false) {
                throw new RuntimeException(
                    \sprintf(
                        'Cannot mock %s::%s because "parent" return type declaration is used but %s does not have a parent class',
                        $method->getDeclaringClass()->getName(),
                        $method->getName(),
                        $method->getDeclaringClass()->getName()
                    )
                );
            }

            return ObjectType::fromName($parentClass->getName(), $returnType->allowsNull());
        }

        return Type::fromName($returnType->getName(), $returnType->allowsNull());
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject;

use Doctrine\Instantiator\Exception\ExceptionInterface as InstantiatorException;
use Doctrine\Instantiator\Instantiator;
use PHPUnit\Util\InvalidArgumentHelper;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class Generator
{
    /**
     * @var array
     */
    private const BLACKLISTED_METHOD_NAMES = [
        '__CLASS__'       => true,
        '__DIR__'         => true,
        '__FILE__'        => true,
        '__FUNCTION__'    => true,
        '__LINE__'        => true,
        '__METHOD__'      => true,
        '__NAMESPACE__'   => true,
        '__TRAIT__'       => true,
        '__clone'         => true,
        '__halt_compiler' => true,
    ];

    /**
     * @var array
     */
    private static $cache = [];

    /**
     * @var \Text_Template[]
     */
    private static $templates = [];

    /**
     * Returns a mock object for the specified class.
     *
     * @param string|string[] $type
     * @param null|array      $methods
     *
     * @throws RuntimeException
     */
    public function getMock($type, $methods = [], array $arguments = [], string $mockClassName = '', bool $callOriginalConstructor = true, bool $callOriginalClone = true, bool $callAutoload = true, bool $cloneArguments = true, bool $callOriginalMethods = false, object $proxyTarget = null, bool $allowMockingUnknownTypes = true, bool $returnValueGeneration = true): MockObject
    {
        if (!\is_array($type) && !\is_string($type)) {
            throw InvalidArgumentHelper::factory(1, 'array or string');
        }

        if (!\is_array($methods) && null !== $methods) {
            throw InvalidArgumentHelper::factory(2, 'array', $methods);
        }

        if ($type === 'Traversable' || $type === '\\Traversable') {
            $type = 'Iterator';
        }

        if (\is_array($type)) {
            $type = \array_unique(
                \array_map(
                    function ($type) {
                        if ($type === 'Traversable' ||
                            $type === '\\Traversable' ||
                            $type === '\\Iterator') {
                            return 'Iterator';
                        }

                        return $type;
                    },
                    $type
                )
            );
        }

        if (!$allowMockingUnknownTypes) {
            if (\is_array($type)) {
                foreach ($type as $_type) {
                    if (!\class_exists($_type, $callAutoload) &&
                        !\interface_exists($_type, $callAutoload)) {
                        throw new RuntimeException(
                            \sprintf(
                                'Cannot stub or mock class or interface "%s" which does not exist',
                                $_type
                            )
                        );
                    }
                }
            } elseif (!\class_exists($type, $callAutoload) && !\interface_exists($type, $callAutoload)) {
                throw new RuntimeException(
                    \sprintf(
                        'Cannot stub or mock class or interface "%s" which does not exist',
                        $type
                    )
                );
            }
        }

        if (null !== $methods) {
            foreach ($methods as $method) {
                if (!\preg_match('~[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*~', (string) $method)) {
                    throw new RuntimeException(
                        \sprintf(
                            'Cannot stub or mock method with invalid name "%s"',
                            $method
                        )
                    );
                }
            }

            if ($methods !== \array_unique($methods)) {
                throw new RuntimeException(
                    \sprintf(
                        'Cannot stub or mock using a method list that contains duplicates: "%s" (duplicate: "%s")',
                        \implode(', ', $methods),
                        \implode(', ', \array_unique(\array_diff_assoc($methods, \array_unique($methods))))
                    )
                );
            }
        }

        if ($mockClassName !== '' && \class_exists($mockClassName, false)) {
            try {
                $reflect = new \ReflectionClass($mockClassName);
            } catch (\ReflectionException $e) {
                throw new RuntimeException(
                    $e->getMessage(),
                    (int) $e->getCode(),
                    $e
                );
            }

            if (!$reflect->implementsInterface(MockObject::class)) {
                throw new RuntimeException(
                    \sprintf(
                        'Class "%s" already exists.',
                        $mockClassName
                    )
                );
            }
        }

        if (!$callOriginalConstructor && $callOriginalMethods) {
            throw new RuntimeException(
                'Proxying to original methods requires invoking the original constructor'
            );
        }

        $mock = $this->generate(
            $type,
            $methods,
            $mockClassName,
            $callOriginalClone,
            $callAutoload,
            $cloneArguments,
            $callOriginalMethods
        );

        return $this->getObject(
            $mock,
            $type,
            $callOriginalConstructor,
            $callAutoload,
            $arguments,
            $callOriginalMethods,
            $proxyTarget,
            $returnValueGeneration
        );
    }

    /**
     * Returns a mock object for the specified abstract class with all abstract
     * methods of the class mocked. Concrete methods to mock can be specified with
     * the $mockedMethods parameter
     *
     * @throws RuntimeException
     */
    public function getMockForAbstractClass(string $originalClassName, array $arguments = [], string $mockClassName = '', bool $callOriginalConstructor = true, bool $callOriginalClone = true, bool $callAutoload = true, array $mockedMethods = [], bool $cloneArguments = true): MockObject
    {
        if (\class_exists($originalClassName, $callAutoload) ||
            \interface_exists($originalClassName, $callAutoload)) {
            try {
                $reflector = new \ReflectionClass($originalClassName);
            } catch (\ReflectionException $e) {
                throw new RuntimeException(
                    $e->getMessage(),
                    (int) $e->getCode(),
                    $e
                );
            }

            $methods = $mockedMethods;

            foreach ($reflector->getMethods() as $method) {
                if ($method->isAbstract() && !\in_array($method->getName(), $methods, true)) {
                    $methods[] = $method->getName();
                }
            }

            if (empty($methods)) {
                $methods = null;
            }

            return $this->getMock(
                $originalClassName,
                $methods,
                $arguments,
                $mockClassName,
                $callOriginalConstructor,
                $callOriginalClone,
                $callAutoload,
                $cloneArguments
            );
        }

        throw new RuntimeException(
            \sprintf('Class "%s" does not exist.', $originalClassName)
        );
    }

    /**
     * Returns a mock object for the specified trait with all abstract methods
     * of the trait mocked. Concrete methods to mock can be specified with the
     * `$mockedMethods` parameter.
     *
     * @throws RuntimeException
     */
    public function getMockForTrait(string $traitName, array $arguments = [], string $mockClassName = '', bool $callOriginalConstructor = true, bool $callOriginalClone = true, bool $callAutoload = true, array $mockedMethods = [], bool $cloneArguments = true): MockObject
    {
        if (!\trait_exists($traitName, $callAutoload)) {
            throw new RuntimeException(
                \sprintf(
                    'Trait "%s" does not exist.',
                    $traitName
                )
            );
        }

        $className = $this->generateClassName(
            $traitName,
            '',
            'Trait_'
        );

        $classTemplate = $this->getTemplate('trait_class.tpl');

        $classTemplate->setVar(
            [
                'prologue'   => 'abstract ',
                'class_name' => $className['className'],
                'trait_name' => $traitName,
            ]
        );

        $mockTrait = new MockTrait($classTemplate->render(), $className['className']);
        $mockTrait->generate();

        return $this->getMockForAbstractClass($className['className'], $arguments, $mockClassName, $callOriginalConstructor, $callOriginalClone, $callAutoload, $mockedMethods, $cloneArguments);
    }

    /**
     * Returns an object for the specified trait.
     *
     * @throws RuntimeException
     */
    public function getObjectForTrait(string $traitName, string $traitClassName = '', bool $callAutoload = true, bool $callOriginalConstructor = false, array $arguments = []): object
    {
        if (!\trait_exists($traitName, $callAutoload)) {
            throw new RuntimeException(
                \sprintf(
                    'Trait "%s" does not exist.',
                    $traitName
                )
            );
        }

        $className = $this->generateClassName(
            $traitName,
            $traitClassName,
            'Trait_'
        );

        $classTemplate = $this->getTemplate('trait_class.tpl');

        $classTemplate->setVar(
            [
                'prologue'   => '',
                'class_name' => $className['className'],
                'trait_name' => $traitName,
            ]
        );

        return $this->getObject(
            new MockTrait(
                $classTemplate->render(),
                $className['className']
            ),
            '',
            $callOriginalConstructor,
            $callAutoload,
            $arguments
        );
    }

    public function generate($type, array $methods = null, string $mockClassName = '', bool $callOriginalClone = true, bool $callAutoload = true, bool $cloneArguments = true, bool $callOriginalMethods = false): MockClass
    {
        if (\is_array($type)) {
            \sort($type);
        }

        if ($mockClassName !== '') {
            return $this->generateMock(
                $type,
                $methods,
                $mockClassName,
                $callOriginalClone,
                $callAutoload,
                $cloneArguments,
                $callOriginalMethods
            );
        }

        $key = \md5(
            \is_array($type) ? \implode('_', $type) : $type .
            \serialize($methods) .
            \serialize($callOriginalClone) .
            \serialize($cloneArguments) .
            \serialize($callOriginalMethods)
        );

        if (!isset(self::$cache[$key])) {
            self::$cache[$key] = $this->generateMock(
                $type,
                $methods,
                $mockClassName,
                $callOriginalClone,
                $callAutoload,
                $cloneArguments,
                $callOriginalMethods
            );
        }

        return self::$cache[$key];
    }

    /**
     * @throws RuntimeException
     */
    public function generateClassFromWsdl(string $wsdlFile, string $className, array $methods = [], array $options = []): string
    {
        if (!\extension_loaded('soap')) {
            throw new RuntimeException(
                'The SOAP extension is required to generate a mock object from WSDL.'
            );
        }

        $options  = \array_merge($options, ['cache_wsdl' => \WSDL_CACHE_NONE]);

        try {
            $client   = new \SoapClient($wsdlFile, $options);
            $_methods = \array_unique($client->__getFunctions());
            unset($client);
        } catch (\SoapFault $e) {
            throw new RuntimeException(
                $e->getMessage(),
                (int) $e->getCode(),
                $e
            );
        }

        \sort($_methods);

        $methodTemplate = $this->getTemplate('wsdl_method.tpl');
        $methodsBuffer  = '';

        foreach ($_methods as $method) {
            \preg_match_all('/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*\(/', $method, $matches, \PREG_OFFSET_CAPTURE);
            $lastFunction = \array_pop($matches[0]);
            $nameStart    = $lastFunction[1];
            $nameEnd      = $nameStart + \strlen($lastFunction[0]) - 1;
            $name         = \str_replace('(', '', $lastFunction[0]);

            if (empty($methods) || \in_array($name, $methods, true)) {
                $args = \explode(
                    ',',
                    \str_replace(')', '', \substr($method, $nameEnd + 1))
                );

                foreach (\range(0, \count($args) - 1) as $i) {
                    $args[$i] = \substr($args[$i], \strpos($args[$i], '$'));
                }

                $methodTemplate->setVar(
                    [
                        'method_name' => $name,
                        'arguments'   => \implode(', ', $args),
                    ]
                );

                $methodsBuffer .= $methodTemplate->render();
            }
        }

        $optionsBuffer = '[';

        foreach ($options as $key => $value) {
            $optionsBuffer .= $key . ' => ' . $value;
        }

        $optionsBuffer .= ']';

        $classTemplate = $this->getTemplate('wsdl_class.tpl');
        $namespace     = '';

        if (\strpos($className, '\\') !== false) {
            $parts     = \explode('\\', $className);
            $className = \array_pop($parts);
            $namespace = 'namespace ' . \implode('\\', $parts) . ';' . "\n\n";
        }

        $classTemplate->setVar(
            [
                'namespace'  => $namespace,
                'class_name' => $className,
                'wsdl'       => $wsdlFile,
                'options'    => $optionsBuffer,
                'methods'    => $methodsBuffer,
            ]
        );

        return $classTemplate->render();
    }

    /**
     * @throws RuntimeException
     *
     * @return string[]
     */
    public function getClassMethods(string $className): array
    {
        try {
            $class = new \ReflectionClass($className);
        } catch (\ReflectionException $e) {
            throw new RuntimeException(
                $e->getMessage(),
                (int) $e->getCode(),
                $e
            );
        }

        $methods = [];

        foreach ($class->getMethods() as $method) {
            if ($method->isPublic() || $method->isAbstract()) {
                $methods[] = $method->getName();
            }
        }

        return $methods;
    }

    /**
     * @throws RuntimeException
     *
     * @return MockMethod[]
     */
    public function mockClassMethods(string $className, bool $callOriginalMethods, bool $cloneArguments): array
    {
        try {
            $class = new \ReflectionClass($className);
        } catch (\ReflectionException $e) {
            throw new RuntimeException(
                $e->getMessage(),
                (int) $e->getCode(),
                $e
            );
        }

        $methods = [];

        foreach ($class->getMethods() as $method) {
            if (($method->isPublic() || $method->isAbstract()) && $this->canMockMethod($method)) {
                $methods[] = MockMethod::fromReflection($method, $callOriginalMethods, $cloneArguments);
            }
        }

        return $methods;
    }

    /**
     * @return \ReflectionMethod[]
     */
    private function getInterfaceOwnMethods(string $interfaceName): array
    {
        try {
            $reflect = new \ReflectionClass($interfaceName);
        } catch (\ReflectionException $e) {
            throw new RuntimeException(
                $e->getMessage(),
                (int) $e->getCode(),
                $e
            );
        }

        $methods = [];

        foreach ($reflect->getMethods() as $method) {
            if ($method->getDeclaringClass()->getName() === $interfaceName) {
                $methods[] = $method;
            }
        }

        return $methods;
    }

    private function getObject(MockType $mockClass, $type = '', bool $callOriginalConstructor = false, bool $callAutoload = false, array $arguments = [], bool $callOriginalMethods = false, object $proxyTarget = null, bool $returnValueGeneration = true)
    {
        $className = $mockClass->generate();

        if ($callOriginalConstructor) {
            if (\count($arguments) === 0) {
                $object = new $className;
            } else {
                try {
                    $class = new \ReflectionClass($className);
                } catch (\ReflectionException $e) {
                    throw new RuntimeException(
                        $e->getMessage(),
                        (int) $e->getCode(),
                        $e
                    );
                }

                $object = $class->newInstanceArgs($arguments);
            }
        } else {
            try {
                $object = (new Instantiator)->instantiate($className);
            } catch (InstantiatorException $exception) {
                throw new RuntimeException($exception->getMessage());
            }
        }

        if ($callOriginalMethods) {
            if (!\is_object($proxyTarget)) {
                if (\count($arguments) === 0) {
                    $proxyTarget = new $type;
                } else {
                    try {
                        $class = new \ReflectionClass($type);
                    } catch (\ReflectionException $e) {
                        throw new RuntimeException(
                            $e->getMessage(),
                            (int) $e->getCode(),
                            $e
                        );
                    }

                    $proxyTarget = $class->newInstanceArgs($arguments);
                }
            }

            $object->__phpunit_setOriginalObject($proxyTarget);
        }

        if ($object instanceof MockObject) {
            $object->__phpunit_setReturnValueGeneration($returnValueGeneration);
        }

        return $object;
    }

    /**
     * @param array|string $type
     *
     * @throws RuntimeException
     */
    private function generateMock($type, ?array $explicitMethods, string $mockClassName, bool $callOriginalClone, bool $callAutoload, bool $cloneArguments, bool $callOriginalMethods): MockClass
    {
        $classTemplate       = $this->getTemplate('mocked_class.tpl');

        $additionalInterfaces = [];
        $cloneTemplate        = '';
        $isClass              = false;
        $isInterface          = false;
        $class                = null;
        $mockMethods          = new MockMethodSet;

        if (\is_array($type)) {
            $interfaceMethods = [];

            foreach ($type as $_type) {
                if (!\interface_exists($_type, $callAutoload)) {
                    throw new RuntimeException(
                        \sprintf(
                            'Interface "%s" does not exist.',
                            $_type
                        )
                    );
                }

                $additionalInterfaces[] = $_type;

                try {
                    $typeClass = new \ReflectionClass($_type);
                } catch (\ReflectionException $e) {
                    throw new RuntimeException(
                        $e->getMessage(),
                        (int) $e->getCode(),
                        $e
                    );
                }

                foreach ($this->getClassMethods($_type) as $method) {
                    if (\in_array($method, $interfaceMethods, true)) {
                        throw new RuntimeException(
                            \sprintf(
                                'Duplicate method "%s" not allowed.',
                                $method
                            )
                        );
                    }

                    try {
                        $methodReflection = $typeClass->getMethod($method);
                    } catch (\ReflectionException $e) {
                        throw new RuntimeException(
                            $e->getMessage(),
                            (int) $e->getCode(),
                            $e
                        );
                    }

                    if ($this->canMockMethod($methodReflection)) {
                        $mockMethods->addMethods(
                            MockMethod::fromReflection($methodReflection, $callOriginalMethods, $cloneArguments)
                        );

                        $interfaceMethods[] = $method;
                    }
                }
            }

            unset($interfaceMethods);
        }

        $mockClassName = $this->generateClassName(
            $type,
            $mockClassName,
            'Mock_'
        );

        if (\class_exists($mockClassName['fullClassName'], $callAutoload)) {
            $isClass = true;
        } elseif (\interface_exists($mockClassName['fullClassName'], $callAutoload)) {
            $isInterface = true;
        }

        if (!$isClass && !$isInterface) {
            $prologue = 'class ' . $mockClassName['originalClassName'] . "\n{\n}\n\n";

            if (!empty($mockClassName['namespaceName'])) {
                $prologue = 'namespace ' . $mockClassName['namespaceName'] .
                            " {\n\n" . $prologue . "}\n\n" .
                            "namespace {\n\n";

                $epilogue = "\n\n}";
            }

            $cloneTemplate = $this->getTemplate('mocked_clone.tpl');
        } else {
            try {
                $class = new \ReflectionClass($mockClassName['fullClassName']);
            } catch (\ReflectionException $e) {
                throw new RuntimeException(
                    $e->getMessage(),
                    (int) $e->getCode(),
                    $e
                );
            }

            if ($class->isFinal()) {
                throw new RuntimeException(
                    \sprintf(
                        'Class "%s" is declared "final" and cannot be mocked.',
                        $mockClassName['fullClassName']
                    )
                );
            }

            // @see https://github.com/sebastianbergmann/phpunit/issues/2995
            if ($isInterface && $class->implementsInterface(\Throwable::class)) {
                $actualClassName        = \Exception::class;
                $additionalInterfaces[] = $class->getName();
                $isInterface            = false;

                try {
                    $class = new \ReflectionClass($actualClassName);
                } catch (\ReflectionException $e) {
                    throw new RuntimeException(
                        $e->getMessage(),
                        (int) $e->getCode(),
                        $e
                    );
                }

                foreach ($this->getInterfaceOwnMethods($mockClassName['fullClassName']) as $method) {
                    $methodName = $method->getName();

                    if ($class->hasMethod($methodName)) {
                        try {
                            $classMethod = $class->getMethod($methodName);
                        } catch (\ReflectionException $e) {
                            throw new RuntimeException(
                                $e->getMessage(),
                                (int) $e->getCode(),
                                $e
                            );
                        }

                        if (!$this->canMockMethod($classMethod)) {
                            continue;
                        }
                    }

                    $mockMethods->addMethods(
                        MockMethod::fromReflection($method, $callOriginalMethods, $cloneArguments)
                    );
                }

                $mockClassName = $this->generateClassName(
                    $actualClassName,
                    '',
                    'Mock_'
                );
            }

            // @see https://github.com/sebastianbergmann/phpunit-mock-objects/issues/103
            if ($isInterface && $class->implementsInterface(\Traversable::class) &&
                !$class->implementsInterface(\Iterator::class) &&
                !$class->implementsInterface(\IteratorAggregate::class)) {
                $additionalInterfaces[] = \Iterator::class;

                $mockMethods->addMethods(
                    ...$this->mockClassMethods(\Iterator::class, $callOriginalMethods, $cloneArguments)
                );
            }

            if ($class->hasMethod('__clone')) {
                try {
                    $cloneMethod = $class->getMethod('__clone');
                } catch (\ReflectionException $e) {
                    throw new RuntimeException(
                        $e->getMessage(),
                        (int) $e->getCode(),
                        $e
                    );
                }

                if (!$cloneMethod->isFinal()) {
                    if ($callOriginalClone && !$isInterface) {
                        $cloneTemplate = $this->getTemplate('unmocked_clone.tpl');
                    } else {
                        $cloneTemplate = $this->getTemplate('mocked_clone.tpl');
                    }
                }
            } else {
                $cloneTemplate = $this->getTemplate('mocked_clone.tpl');
            }
        }

        if (\is_object($cloneTemplate)) {
            $cloneTemplate = $cloneTemplate->render();
        }

        if ($explicitMethods === [] &&
            ($isClass || $isInterface)) {
            $mockMethods->addMethods(
                ...$this->mockClassMethods($mockClassName['fullClassName'], $callOriginalMethods, $cloneArguments)
            );
        }

        if (\is_array($explicitMethods)) {
            foreach ($explicitMethods as $methodName) {
                if ($class !== null && $class->hasMethod($methodName)) {
                    try {
                        $method = $class->getMethod($methodName);
                    } catch (\ReflectionException $e) {
                        throw new RuntimeException(
                            $e->getMessage(),
                            (int) $e->getCode(),
                            $e
                        );
                    }

                    if ($this->canMockMethod($method)) {
                        $mockMethods->addMethods(
                            MockMethod::fromReflection($method, $callOriginalMethods, $cloneArguments)
                        );
                    }
                } else {
                    $mockMethods->addMethods(
                        MockMethod::fromName(
                            $mockClassName['fullClassName'],
                            $methodName,
                            $cloneArguments
                        )
                    );
                }
            }
        }

        $mockedMethods = '';
        $configurable  = [];

        foreach ($mockMethods->asArray() as $mockMethod) {
            $mockedMethods .= $mockMethod->generateCode();
            $configurable[] = new ConfigurableMethod($mockMethod->getName(), $mockMethod->getReturnType());
        }

        $method = '';

        if (!$mockMethods->hasMethod('method') && (!isset($class) || !$class->hasMethod('method'))) {
            $method = $this->getTemplate('mocked_class_method.tpl')->render();
        }

        $classTemplate->setVar(
            [
                'prologue'          => $prologue ?? '',
                'epilogue'          => $epilogue ?? '',
                'class_declaration' => $this->generateMockClassDeclaration(
                    $mockClassName,
                    $isInterface,
                    $additionalInterfaces
                ),
                'clone'             => $cloneTemplate,
                'mock_class_name'   => $mockClassName['className'],
                'mocked_methods'    => $mockedMethods,
                'method'            => $method,
            ]
        );

        return new MockClass(
            $classTemplate->render(),
            $mockClassName['className'],
            $configurable
        );
    }

    /**
     * @param array|string $type
     */
    private function generateClassName($type, string $className, string $prefix): array
    {
        if (\is_array($type)) {
            $type = \implode('_', $type);
        }

        if ($type[0] === '\\') {
            $type = \substr($type, 1);
        }

        $classNameParts = \explode('\\', $type);

        if (\count($classNameParts) > 1) {
            $type          = \array_pop($classNameParts);
            $namespaceName = \implode('\\', $classNameParts);
            $fullClassName = $namespaceName . '\\' . $type;
        } else {
            $namespaceName = '';
            $fullClassName = $type;
        }

        if ($className === '') {
            do {
                $className = $prefix . $type . '_' .
                             \substr(\md5((string) \mt_rand()), 0, 8);
            } while (\class_exists($className, false));
        }

        return [
            'className'         => $className,
            'originalClassName' => $type,
            'fullClassName'     => $fullClassName,
            'namespaceName'     => $namespaceName,
        ];
    }

    private function generateMockClassDeclaration(array $mockClassName, bool $isInterface, array $additionalInterfaces = []): string
    {
        $buffer = 'class ';

        $additionalInterfaces[] = MockObject::class;
        $interfaces             = \implode(', ', $additionalInterfaces);

        if ($isInterface) {
            $buffer .= \sprintf(
                '%s implements %s',
                $mockClassName['className'],
                $interfaces
            );

            if (!\in_array($mockClassName['originalClassName'], $additionalInterfaces, true)) {
                $buffer .= ', ';

                if (!empty($mockClassName['namespaceName'])) {
                    $buffer .= $mockClassName['namespaceName'] . '\\';
                }

                $buffer .= $mockClassName['originalClassName'];
            }
        } else {
            $buffer .= \sprintf(
                '%s extends %s%s implements %s',
                $mockClassName['className'],
                !empty($mockClassName['namespaceName']) ? $mockClassName['namespaceName'] . '\\' : '',
                $mockClassName['originalClassName'],
                $interfaces
            );
        }

        return $buffer;
    }

    private function canMockMethod(\ReflectionMethod $method): bool
    {
        return !($method->isConstructor() || $method->isFinal() || $method->isPrivate() || $this->isMethodNameBlacklisted($method->getName()));
    }

    private function isMethodNameBlacklisted(string $name): bool
    {
        return isset(self::BLACKLISTED_METHOD_NAMES[$name]);
    }

    private function getTemplate(string $template): \Text_Template
    {
        $filename = __DIR__ . \DIRECTORY_SEPARATOR . 'Generator' . \DIRECTORY_SEPARATOR . $template;

        if (!isset(self::$templates[$filename])) {
            self::$templates[$filename] = new \Text_Template($filename);
        }

        return self::$templates[$filename];
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject\Builder;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
interface NamespaceMatch
{
    /**
     * Looks up the match builder with identification $id and returns it.
     *
     * @param string $id The identification of the match builder
     *
     * @return Match
     */
    public function lookupId($id);

    /**
     * Registers the match builder $builder with the identification $id. The
     * builder can later be looked up using lookupId() to figure out if it
     * has been invoked.
     *
     * @param string $id      The identification of the match builder
     * @param Match  $builder The builder which is being registered
     */
    public function registerId($id, Match $builder);
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject\Builder;

use PHPUnit\Framework\Constraint\Constraint;
use PHPUnit\Framework\MockObject\ConfigurableMethod;
use PHPUnit\Framework\MockObject\IncompatibleReturnValueException;
use PHPUnit\Framework\MockObject\Matcher;
use PHPUnit\Framework\MockObject\Matcher\Invocation;
use PHPUnit\Framework\MockObject\RuntimeException;
use PHPUnit\Framework\MockObject\Stub;
use PHPUnit\Framework\MockObject\Stub\MatcherCollection;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class InvocationMocker implements MethodNameMatch
{
    /**
     * @var MatcherCollection
     */
    private $collection;

    /**
     * @var Matcher
     */
    private $matcher;

    /**
     * @var ConfigurableMethod[]
     */
    private $configurableMethods;

    public function __construct(MatcherCollection $collection, Invocation $invocationMatcher, ConfigurableMethod ...$configurableMethods)
    {
        $this->collection = $collection;
        $this->matcher    = new Matcher($invocationMatcher);

        $this->collection->addMatcher($this->matcher);

        $this->configurableMethods = $configurableMethods;
    }

    public function getMatcher(): Matcher
    {
        return $this->matcher;
    }

    public function id($id): self
    {
        $this->collection->registerId($id, $this);

        return $this;
    }

    public function will(Stub $stub): Identity
    {
        $this->matcher->setStub($stub);

        return $this;
    }

    public function willReturn($value, ...$nextValues): self
    {
        if (\count($nextValues) === 0) {
            $this->ensureTypeOfReturnValues([$value]);

            $stub = new Stub\ReturnStub($value);
        } else {
            $values = \array_merge([$value], $nextValues);

            $this->ensureTypeOfReturnValues($values);

            $stub = new Stub\ConsecutiveCalls($values);
        }

        return $this->will($stub);
    }

    /**
     * @param mixed $reference
     */
    public function willReturnReference(&$reference): self
    {
        $stub = new Stub\ReturnReference($reference);

        return $this->will($stub);
    }

    public function willReturnMap(array $valueMap): self
    {
        $stub = new Stub\ReturnValueMap($valueMap);

        return $this->will($stub);
    }

    public function willReturnArgument($argumentIndex): self
    {
        $stub = new Stub\ReturnArgument($argumentIndex);

        return $this->will($stub);
    }

    /**
     * @param callable $callback
     */
    public function willReturnCallback($callback): self
    {
        $stub = new Stub\ReturnCallback($callback);

        return $this->will($stub);
    }

    public function willReturnSelf(): self
    {
        $stub = new Stub\ReturnSelf;

        return $this->will($stub);
    }

    public function willReturnOnConsecutiveCalls(...$values): self
    {
        $stub = new Stub\ConsecutiveCalls($values);

        return $this->will($stub);
    }

    public function willThrowException(\Throwable $exception): self
    {
        $stub = new Stub\Exception($exception);

        return $this->will($stub);
    }

    public function after($id): self
    {
        $this->matcher->setAfterMatchBuilderId($id);

        return $this;
    }

    /**
     * @throws RuntimeException
     */
    public function with(...$arguments): self
    {
        $this->canDefineParameters();

        $this->matcher->setParametersMatcher(new Matcher\Parameters($arguments));

        return $this;
    }

    /**
     * @param array ...$arguments
     *
     * @throws RuntimeException
     */
    public function withConsecutive(...$arguments): self
    {
        $this->canDefineParameters();

        $this->matcher->setParametersMatcher(new Matcher\ConsecutiveParameters($arguments));

        return $this;
    }

    /**
     * @throws RuntimeException
     */
    public function withAnyParameters(): self
    {
        $this->canDefineParameters();

        $this->matcher->setParametersMatcher(new Matcher\AnyParameters);

        return $this;
    }

    /**
     * @param Constraint|string $constraint
     *
     * @throws RuntimeException
     */
    public function method($constraint): self
    {
        if ($this->matcher->hasMethodNameMatcher()) {
            throw new RuntimeException(
                'Method name matcher is already defined, cannot redefine'
            );
        }

        $configurableMethodNames = \array_map(
            static function (ConfigurableMethod $configurable) {
                return \strtolower($configurable->getName());
            },
            $this->configurableMethods
        );

        if (\is_string($constraint) && !\in_array(\strtolower($constraint), $configurableMethodNames, true)) {
            throw new RuntimeException(
                \sprintf(
                    'Trying to configure method "%s" which cannot be configured because it does not exist, has not been specified, is final, or is static',
                    $constraint
                )
            );
        }

        $this->matcher->setMethodNameMatcher(new Matcher\MethodName($constraint));

        return $this;
    }

    /**
     * Validate that a parameters matcher can be defined, throw exceptions otherwise.
     *
     * @throws RuntimeException
     */
    private function canDefineParameters(): void
    {
        if (!$this->matcher->hasMethodNameMatcher()) {
            throw new RuntimeException(
                'Method name matcher is not defined, cannot define parameter ' .
                'matcher without one'
            );
        }

        if ($this->matcher->hasParametersMatcher()) {
            throw new RuntimeException(
                'Parameter matcher is already defined, cannot redefine'
            );
        }
    }

    private function getConfiguredMethod(): ?ConfigurableMethod
    {
        $configuredMethod = null;

        foreach ($this->configurableMethods as $configurableMethod) {
            if ($this->matcher->getMethodNameMatcher()->matchesName($configurableMethod->getName())) {
                if ($configuredMethod !== null) {
                    return null;
                }

                $configuredMethod = $configurableMethod;
            }
        }

        return $configuredMethod;
    }

    private function ensureTypeOfReturnValues(array $values): void
    {
        $configuredMethod = $this->getConfiguredMethod();

        if ($configuredMethod === null) {
            return;
        }

        foreach ($values as $value) {
            if (!$configuredMethod->mayReturn($value)) {
                throw new IncompatibleReturnValueException(
                    \sprintf(
                        'Method %s may not return value of type %s, its return declaration is "%s"',
                        $configuredMethod->getName(),
                        \is_object($value) ? \get_class($value) : \gettype($value),
                        $configuredMethod->getReturnTypeDeclaration()
                    )
                );
            }
        }
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject\Builder;

use PHPUnit\Framework\MockObject\Matcher\AnyParameters;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
interface ParametersMatch extends Match
{
    /**
     * Sets the parameters to match for, each parameter to this function will
     * be part of match. To perform specific matches or constraints create a
     * new PHPUnit\Framework\Constraint\Constraint and use it for the parameter.
     * If the parameter value is not a constraint it will use the
     * PHPUnit\Framework\Constraint\IsEqual for the value.
     *
     * Some examples:
     * <code>
     * // match first parameter with value 2
     * $b->with(2);
     * // match first parameter with value 'smock' and second identical to 42
     * $b->with('smock', new PHPUnit\Framework\Constraint\IsEqual(42));
     * </code>
     *
     * @return ParametersMatch
     */
    public function with(...$arguments);

    /**
     * Sets a matcher which allows any kind of parameters.
     *
     * Some examples:
     * <code>
     * // match any number of parameters
     * $b->withAnyParameters();
     * </code>
     *
     * @return AnyParameters
     */
    public function withAnyParameters();
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject\Builder;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
interface Identity
{
    /**
     * Sets the identification of the expectation to $id.
     *
     * @note The identifier is unique per mock object.
     *
     * @param string $id unique identification of expectation
     */
    public function id($id);
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject\Builder;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
interface Match extends Stub
{
    /**
     * Defines the expectation which must occur before the current is valid.
     *
     * @param string $id the identification of the expectation that should
     *                   occur before this one
     *
     * @return Stub
     */
    public function after($id);
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject\Builder;

use PHPUnit\Framework\MockObject\Stub as BaseStub;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
interface Stub extends Identity
{
    /**
     * Stubs the matching method with the stub object $stub. Any invocations of
     * the matched method will now be handled by the stub instead.
     */
    public function will(BaseStub $stub): Identity;
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject\Builder;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
interface MethodNameMatch extends ParametersMatch
{
    /**
     * Adds a new method name match and returns the parameter match object for
     * further matching possibilities.
     *
     * @param \PHPUnit\Framework\Constraint\Constraint $name Constraint for matching method, if a string is passed it will use the PHPUnit_Framework_Constraint_IsEqual
     *
     * @return ParametersMatch
     */
    public function method($name);
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class ConfigurableMethodsAlreadyInitializedException extends \PHPUnit\Framework\Exception implements Exception
{
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class RuntimeException extends \RuntimeException implements Exception
{
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class IncompatibleReturnValueException extends \PHPUnit\Framework\Exception implements Exception
{
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class BadMethodCallException extends \BadMethodCallException implements Exception
{
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
interface Exception
{
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject;

use PHPUnit\Framework\ExpectationFailedException;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
interface Verifiable
{
    /**
     * Verifies that the current expectation is valid. If everything is OK the
     * code should just return, if not it must throw an exception.
     *
     * @throws ExpectationFailedException
     */
    public function verify(): void;
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\MockObject;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class MockTrait implements MockType
{
    /**
     * @var string
     */
    private $classCode;

    /**
     * @var string
     */
    private $mockName;

    public function __construct(string $classCode, string $mockName)
    {
        $this->classCode = $classCode;
        $this->mockName  = $mockName;
    }

    public function generate(): string
    {
        if (!\class_exists($this->mockName, false)) {
            eval($this->classCode);
        }

        return $this->mockName;
    }

    public function getClassCode(): string
    {
        return $this->classCode;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Error;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class Warning extends Error
{
    public static $enabled = true;
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Error;

use PHPUnit\Framework\Exception;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
class Error extends Exception
{
    public function __construct(string $message, int $code, string $file, int $line, \Exception $previous = null)
    {
        parent::__construct($message, $code, $previous);

        $this->file = $file;
        $this->line = $line;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Error;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class Notice extends Error
{
    public static $enabled = true;
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Error;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class Deprecated extends Error
{
    public static $enabled = true;
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework;

use DeepCopy\DeepCopy;
use PHPUnit\Framework\Constraint\Exception as ExceptionConstraint;
use PHPUnit\Framework\Constraint\ExceptionCode;
use PHPUnit\Framework\Constraint\ExceptionMessage;
use PHPUnit\Framework\Constraint\ExceptionMessageRegularExpression;
use PHPUnit\Framework\MockObject\Generator as MockGenerator;
use PHPUnit\Framework\MockObject\Matcher\AnyInvokedCount as AnyInvokedCountMatcher;
use PHPUnit\Framework\MockObject\Matcher\InvokedAtIndex as InvokedAtIndexMatcher;
use PHPUnit\Framework\MockObject\Matcher\InvokedAtLeastCount as InvokedAtLeastCountMatcher;
use PHPUnit\Framework\MockObject\Matcher\InvokedAtLeastOnce as InvokedAtLeastOnceMatcher;
use PHPUnit\Framework\MockObject\Matcher\InvokedAtMostCount as InvokedAtMostCountMatcher;
use PHPUnit\Framework\MockObject\Matcher\InvokedCount as InvokedCountMatcher;
use PHPUnit\Framework\MockObject\MockBuilder;
use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\MockObject\Stub\ConsecutiveCalls as ConsecutiveCallsStub;
use PHPUnit\Framework\MockObject\Stub\Exception as ExceptionStub;
use PHPUnit\Framework\MockObject\Stub\ReturnArgument as ReturnArgumentStub;
use PHPUnit\Framework\MockObject\Stub\ReturnCallback as ReturnCallbackStub;
use PHPUnit\Framework\MockObject\Stub\ReturnSelf as ReturnSelfStub;
use PHPUnit\Framework\MockObject\Stub\ReturnStub;
use PHPUnit\Framework\MockObject\Stub\ReturnValueMap as ReturnValueMapStub;
use PHPUnit\Runner\BaseTestRunner;
use PHPUnit\Runner\PhptTestCase;
use PHPUnit\Util\Exception as UtilException;
use PHPUnit\Util\GlobalState;
use PHPUnit\Util\PHP\AbstractPhpProcess;
use PHPUnit\Util\Test as TestUtil;
use PHPUnit\Util\Type;
use Prophecy\Exception\Prediction\PredictionException;
use Prophecy\Prophecy\MethodProphecy;
use Prophecy\Prophecy\ObjectProphecy;
use Prophecy\Prophet;
use SebastianBergmann\Comparator\Comparator;
use SebastianBergmann\Comparator\Factory as ComparatorFactory;
use SebastianBergmann\Diff\Differ;
use SebastianBergmann\Exporter\Exporter;
use SebastianBergmann\GlobalState\Blacklist;
use SebastianBergmann\GlobalState\Restorer;
use SebastianBergmann\GlobalState\Snapshot;
use SebastianBergmann\ObjectEnumerator\Enumerator;

abstract class TestCase extends Assert implements SelfDescribing, Test
{
    private const LOCALE_CATEGORIES = [\LC_ALL, \LC_COLLATE, \LC_CTYPE, \LC_MONETARY, \LC_NUMERIC, \LC_TIME];

    /**
     * @var bool
     */
    protected $backupGlobals;

    /**
     * @var string[]
     */
    protected $backupGlobalsBlacklist = [];

    /**
     * @var bool
     */
    protected $backupStaticAttributes;

    /**
     * @var array<string,array<int,string>>
     */
    protected $backupStaticAttributesBlacklist = [];

    /**
     * @var bool
     */
    protected $runTestInSeparateProcess;

    /**
     * @var bool
     */
    protected $preserveGlobalState = true;

    /**
     * @var bool
     */
    private $runClassInSeparateProcess;

    /**
     * @var bool
     */
    private $inIsolation = false;

    /**
     * @var array
     */
    private $data;

    /**
     * @var string
     */
    private $dataName;

    /**
     * @var bool
     */
    private $useErrorHandler;

    /**
     * @var null|string
     */
    private $expectedException;

    /**
     * @var null|string
     */
    private $expectedExceptionMessage;

    /**
     * @var null|string
     */
    private $expectedExceptionMessageRegExp;

    /**
     * @var null|int|string
     */
    private $expectedExceptionCode;

    /**
     * @var string
     */
    private $name = '';

    /**
     * @var string[]
     */
    private $dependencies = [];

    /**
     * @var array
     */
    private $dependencyInput = [];

    /**
     * @var array<string,string>
     */
    private $iniSettings = [];

    /**
     * @var array
     */
    private $locale = [];

    /**
     * @var MockObject[]
     */
    private $mockObjects = [];

    /**
     * @var MockGenerator
     */
    private $mockObjectGenerator;

    /**
     * @var int
     */
    private $status = BaseTestRunner::STATUS_UNKNOWN;

    /**
     * @var string
     */
    private $statusMessage = '';

    /**
     * @var int
     */
    private $numAssertions = 0;

    /**
     * @var TestResult
     */
    private $result;

    /**
     * @var mixed
     */
    private $testResult;

    /**
     * @var string
     */
    private $output = '';

    /**
     * @var string
     */
    private $outputExpectedRegex;

    /**
     * @var string
     */
    private $outputExpectedString;

    /**
     * @var mixed
     */
    private $outputCallback = false;

    /**
     * @var bool
     */
    private $outputBufferingActive = false;

    /**
     * @var int
     */
    private $outputBufferingLevel;

    /**
     * @var Snapshot
     */
    private $snapshot;

    /**
     * @var \Prophecy\Prophet
     */
    private $prophet;

    /**
     * @var bool
     */
    private $beStrictAboutChangesToGlobalState = false;

    /**
     * @var bool
     */
    private $registerMockObjectsFromTestArgumentsRecursively = false;

    /**
     * @var string[]
     */
    private $warnings = [];

    /**
     * @var string[]
     */
    private $groups = [];

    /**
     * @var bool
     */
    private $doesNotPerformAssertions = false;

    /**
     * @var Comparator[]
     */
    private $customComparators = [];

    /**
     * @var string[]
     */
    private $doubledTypes = [];

    /**
     * Returns a matcher that matches when the method is executed
     * zero or more times.
     */
    public static function any(): AnyInvokedCountMatcher
    {
        return new AnyInvokedCountMatcher;
    }

    /**
     * Returns a matcher that matches when the method is never executed.
     */
    public static function never(): InvokedCountMatcher
    {
        return new InvokedCountMatcher(0);
    }

    /**
     * Returns a matcher that matches when the method is executed
     * at least N times.
     */
    public static function atLeast(int $requiredInvocations): InvokedAtLeastCountMatcher
    {
        return new InvokedAtLeastCountMatcher(
            $requiredInvocations
        );
    }

    /**
     * Returns a matcher that matches when the method is executed at least once.
     */
    public static function atLeastOnce(): InvokedAtLeastOnceMatcher
    {
        return new InvokedAtLeastOnceMatcher;
    }

    /**
     * Returns a matcher that matches when the method is executed exactly once.
     */
    public static function once(): InvokedCountMatcher
    {
        return new InvokedCountMatcher(1);
    }

    /**
     * Returns a matcher that matches when the method is executed
     * exactly $count times.
     */
    public static function exactly(int $count): InvokedCountMatcher
    {
        return new InvokedCountMatcher($count);
    }

    /**
     * Returns a matcher that matches when the method is executed
     * at most N times.
     */
    public static function atMost(int $allowedInvocations): InvokedAtMostCountMatcher
    {
        return new InvokedAtMostCountMatcher($allowedInvocations);
    }

    /**
     * Returns a matcher that matches when the method is executed
     * at the given index.
     */
    public static function at(int $index): InvokedAtIndexMatcher
    {
        return new InvokedAtIndexMatcher($index);
    }

    public static function returnValue($value): ReturnStub
    {
        return new ReturnStub($value);
    }

    public static function returnValueMap(array $valueMap): ReturnValueMapStub
    {
        return new ReturnValueMapStub($valueMap);
    }

    public static function returnArgument(int $argumentIndex): ReturnArgumentStub
    {
        return new ReturnArgumentStub($argumentIndex);
    }

    public static function returnCallback($callback): ReturnCallbackStub
    {
        return new ReturnCallbackStub($callback);
    }

    /**
     * Returns the current object.
     *
     * This method is useful when mocking a fluent interface.
     */
    public static function returnSelf(): ReturnSelfStub
    {
        return new ReturnSelfStub;
    }

    public static function throwException(\Throwable $exception): ExceptionStub
    {
        return new ExceptionStub($exception);
    }

    public static function onConsecutiveCalls(...$args): ConsecutiveCallsStub
    {
        return new ConsecutiveCallsStub($args);
    }

    /**
     * @param string $name
     * @param string $dataName
     *
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function __construct($name = null, array $data = [], $dataName = '')
    {
        if ($name !== null) {
            $this->setName($name);
        }

        $this->data     = $data;
        $this->dataName = $dataName;
    }

    /**
     * This method is called before the first test of this test class is run.
     */
    public static function setUpBeforeClass(): void
    {
    }

    /**
     * This method is called after the last test of this test class is run.
     */
    public static function tearDownAfterClass(): void
    {
    }

    /**
     * This method is called before each test.
     */
    protected function setUp(): void
    {
    }

    /**
     * This method is called after each test.
     */
    protected function tearDown(): void
    {
    }

    /**
     * Returns a string representation of the test case.
     *
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     */
    public function toString(): string
    {
        try {
            $class = new \ReflectionClass($this);
        } catch (\ReflectionException $e) {
            throw new Exception(
                $e->getMessage(),
                (int) $e->getCode(),
                $e
            );
        }

        $buffer = \sprintf(
            '%s::%s',
            $class->name,
            $this->getName(false)
        );

        return $buffer . $this->getDataSetAsString();
    }

    public function count(): int
    {
        return 1;
    }

    public function expectOutputRegex(string $expectedRegex): void
    {
        $this->outputExpectedRegex = $expectedRegex;
    }

    public function expectOutputString(string $expectedString): void
    {
        $this->outputExpectedString = $expectedString;
    }

    /**
     * @psalm-param class-string<\Throwable> $exception
     */
    public function expectException(string $exception): void
    {
        $this->expectedException = $exception;
    }

    /**
     * @param int|string $code
     */
    public function expectExceptionCode($code): void
    {
        $this->expectedExceptionCode = $code;
    }

    public function expectExceptionMessage(string $message): void
    {
        $this->expectedExceptionMessage = $message;
    }

    public function expectExceptionMessageRegExp(string $messageRegExp): void
    {
        $this->expectedExceptionMessageRegExp = $messageRegExp;
    }

    /**
     * Sets up an expectation for an exception to be raised by the code under test.
     * Information for expected exception class, expected exception message, and
     * expected exception code are retrieved from a given Exception object.
     */
    public function expectExceptionObject(\Exception $exception): void
    {
        $this->expectException(\get_class($exception));
        $this->expectExceptionMessage($exception->getMessage());
        $this->expectExceptionCode($exception->getCode());
    }

    public function expectNotToPerformAssertions(): void
    {
        $this->doesNotPerformAssertions = true;
    }

    public function getStatus(): int
    {
        return $this->status;
    }

    public function markAsRisky(): void
    {
        $this->status = BaseTestRunner::STATUS_RISKY;
    }

    public function getStatusMessage(): string
    {
        return $this->statusMessage;
    }

    public function hasFailed(): bool
    {
        $status = $this->getStatus();

        return $status === BaseTestRunner::STATUS_FAILURE || $status === BaseTestRunner::STATUS_ERROR;
    }

    /**
     * Runs the test case and collects the results in a TestResult object.
     * If no TestResult object is passed a new one will be created.
     *
     * @throws CodeCoverageException
     * @throws UtilException
     * @throws \SebastianBergmann\CodeCoverage\CoveredCodeNotExecutedException
     * @throws \SebastianBergmann\CodeCoverage\InvalidArgumentException
     * @throws \SebastianBergmann\CodeCoverage\MissingCoversAnnotationException
     * @throws \SebastianBergmann\CodeCoverage\RuntimeException
     * @throws \SebastianBergmann\CodeCoverage\UnintentionallyCoveredCodeException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function run(TestResult $result = null): TestResult
    {
        if ($result === null) {
            $result = $this->createResult();
        }

        if (!$this instanceof WarningTestCase) {
            $this->setTestResultObject($result);
            $this->setUseErrorHandlerFromAnnotation();
        }

        if ($this->useErrorHandler !== null) {
            $oldErrorHandlerSetting = $result->getConvertErrorsToExceptions();
            $result->convertErrorsToExceptions($this->useErrorHandler);
        }

        if (!$this instanceof WarningTestCase &&
            !$this instanceof SkippedTestCase &&
            !$this->handleDependencies()) {
            return $result;
        }

        if ($this->runInSeparateProcess()) {
            $runEntireClass = $this->runClassInSeparateProcess && !$this->runTestInSeparateProcess;

            try {
                $class = new \ReflectionClass($this);
            } catch (\ReflectionException $e) {
                throw new Exception(
                    $e->getMessage(),
                    (int) $e->getCode(),
                    $e
                );
            }

            if ($runEntireClass) {
                $template = new \Text_Template(
                    __DIR__ . '/../Util/PHP/Template/TestCaseClass.tpl'
                );
            } else {
                $template = new \Text_Template(
                    __DIR__ . '/../Util/PHP/Template/TestCaseMethod.tpl'
                );
            }

            if ($this->preserveGlobalState) {
                $constants     = GlobalState::getConstantsAsString();
                $globals       = GlobalState::getGlobalsAsString();
                $includedFiles = GlobalState::getIncludedFilesAsString();
                $iniSettings   = GlobalState::getIniSettingsAsString();
            } else {
                $constants = '';

                if (!empty($GLOBALS['__PHPUNIT_BOOTSTRAP'])) {
                    $globals = '$GLOBALS[\'__PHPUNIT_BOOTSTRAP\'] = ' . \var_export($GLOBALS['__PHPUNIT_BOOTSTRAP'], true) . ";\n";
                } else {
                    $globals = '';
                }
                $includedFiles = '';
                $iniSettings   = '';
            }

            $coverage                                   = $result->getCollectCodeCoverageInformation() ? 'true' : 'false';
            $isStrictAboutTestsThatDoNotTestAnything    = $result->isStrictAboutTestsThatDoNotTestAnything() ? 'true' : 'false';
            $isStrictAboutOutputDuringTests             = $result->isStrictAboutOutputDuringTests() ? 'true' : 'false';
            $enforcesTimeLimit                          = $result->enforcesTimeLimit() ? 'true' : 'false';
            $isStrictAboutTodoAnnotatedTests            = $result->isStrictAboutTodoAnnotatedTests() ? 'true' : 'false';
            $isStrictAboutResourceUsageDuringSmallTests = $result->isStrictAboutResourceUsageDuringSmallTests() ? 'true' : 'false';

            if (\defined('PHPUNIT_COMPOSER_INSTALL')) {
                $composerAutoload = \var_export(PHPUNIT_COMPOSER_INSTALL, true);
            } else {
                $composerAutoload = '\'\'';
            }

            if (\defined('__PHPUNIT_PHAR__')) {
                $phar = \var_export(__PHPUNIT_PHAR__, true);
            } else {
                $phar = '\'\'';
            }

            if ($result->getCodeCoverage()) {
                $codeCoverageFilter = $result->getCodeCoverage()->filter();
            } else {
                $codeCoverageFilter = null;
            }

            $data               = \var_export(\serialize($this->data), true);
            $dataName           = \var_export($this->dataName, true);
            $dependencyInput    = \var_export(\serialize($this->dependencyInput), true);
            $includePath        = \var_export(\get_include_path(), true);
            $codeCoverageFilter = \var_export(\serialize($codeCoverageFilter), true);
            // must do these fixes because TestCaseMethod.tpl has unserialize('{data}') in it, and we can't break BC
            // the lines above used to use addcslashes() rather than var_export(), which breaks null byte escape sequences
            $data               = "'." . $data . ".'";
            $dataName           = "'.(" . $dataName . ").'";
            $dependencyInput    = "'." . $dependencyInput . ".'";
            $includePath        = "'." . $includePath . ".'";
            $codeCoverageFilter = "'." . $codeCoverageFilter . ".'";

            $configurationFilePath = $GLOBALS['__PHPUNIT_CONFIGURATION_FILE'] ?? '';

            $var = [
                'composerAutoload'                           => $composerAutoload,
                'phar'                                       => $phar,
                'filename'                                   => $class->getFileName(),
                'className'                                  => $class->getName(),
                'collectCodeCoverageInformation'             => $coverage,
                'data'                                       => $data,
                'dataName'                                   => $dataName,
                'dependencyInput'                            => $dependencyInput,
                'constants'                                  => $constants,
                'globals'                                    => $globals,
                'include_path'                               => $includePath,
                'included_files'                             => $includedFiles,
                'iniSettings'                                => $iniSettings,
                'isStrictAboutTestsThatDoNotTestAnything'    => $isStrictAboutTestsThatDoNotTestAnything,
                'isStrictAboutOutputDuringTests'             => $isStrictAboutOutputDuringTests,
                'enforcesTimeLimit'                          => $enforcesTimeLimit,
                'isStrictAboutTodoAnnotatedTests'            => $isStrictAboutTodoAnnotatedTests,
                'isStrictAboutResourceUsageDuringSmallTests' => $isStrictAboutResourceUsageDuringSmallTests,
                'codeCoverageFilter'                         => $codeCoverageFilter,
                'configurationFilePath'                      => $configurationFilePath,
                'name'                                       => $this->getName(false),
            ];

            if (!$runEntireClass) {
                $var['methodName'] = $this->name;
            }

            $template->setVar($var);

            $php = AbstractPhpProcess::factory();
            $php->runTestJob($template->render(), $this, $result);
        } else {
            $result->run($this);
        }

        if (isset($oldErrorHandlerSetting)) {
            $result->convertErrorsToExceptions($oldErrorHandlerSetting);
        }

        $this->result = null;

        return $result;
    }

    /**
     * Returns a builder object to create mock objects using a fluent interface.
     *
     * @param string|string[] $className
     *
     * @psalm-template RealInstanceType of object
     * @psalm-param class-string<RealInstanceType>|string[] $className
     * @psalm-return MockBuilder<RealInstanceType>
     */
    public function getMockBuilder($className): MockBuilder
    {
        $this->recordDoubledType($className);

        return new MockBuilder($this, $className);
    }

    public function registerComparator(Comparator $comparator): void
    {
        ComparatorFactory::getInstance()->register($comparator);

        $this->customComparators[] = $comparator;
    }

    /**
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function setUseErrorHandler(bool $useErrorHandler): void
    {
        $this->useErrorHandler = $useErrorHandler;
    }

    /**
     * @return string[]
     *
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function doubledTypes(): array
    {
        return \array_unique($this->doubledTypes);
    }

    /**
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function getGroups(): array
    {
        return $this->groups;
    }

    /**
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function setGroups(array $groups): void
    {
        $this->groups = $groups;
    }

    /**
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function getAnnotations(): array
    {
        return TestUtil::parseTestMethodAnnotations(
            \get_class($this),
            $this->name
        );
    }

    /**
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function getName(bool $withDataSet = true): string
    {
        if ($withDataSet) {
            return $this->name . $this->getDataSetAsString(false);
        }

        return $this->name;
    }

    /**
     * Returns the size of the test.
     *
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function getSize(): int
    {
        return TestUtil::getSize(
            \get_class($this),
            $this->getName(false)
        );
    }

    /**
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function hasSize(): bool
    {
        return $this->getSize() !== TestUtil::UNKNOWN;
    }

    /**
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function isSmall(): bool
    {
        return $this->getSize() === TestUtil::SMALL;
    }

    /**
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function isMedium(): bool
    {
        return $this->getSize() === TestUtil::MEDIUM;
    }

    /**
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     *
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function isLarge(): bool
    {
        return $this->getSize() === TestUtil::LARGE;
    }

    /**
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function getActualOutput(): string
    {
        if (!$this->outputBufferingActive) {
            return $this->output;
        }

        return (string) \ob_get_contents();
    }

    /**
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function hasOutput(): bool
    {
        if ($this->output === '') {
            return false;
        }

        if ($this->hasExpectationOnOutput()) {
            return false;
        }

        return true;
    }

    /**
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function doesNotPerformAssertions(): bool
    {
        return $this->doesNotPerformAssertions;
    }

    /**
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function hasExpectationOnOutput(): bool
    {
        return \is_string($this->outputExpectedString) || \is_string($this->outputExpectedRegex);
    }

    /**
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function getExpectedException(): ?string
    {
        return $this->expectedException;
    }

    /**
     * @return null|int|string
     *
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function getExpectedExceptionCode()
    {
        return $this->expectedExceptionCode;
    }

    /**
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function getExpectedExceptionMessage(): ?string
    {
        return $this->expectedExceptionMessage;
    }

    /**
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function getExpectedExceptionMessageRegExp(): ?string
    {
        return $this->expectedExceptionMessageRegExp;
    }

    /**
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function setRegisterMockObjectsFromTestArgumentsRecursively(bool $flag): void
    {
        $this->registerMockObjectsFromTestArgumentsRecursively = $flag;
    }

    /**
     * @throws \Throwable
     *
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function runBare(): void
    {
        $this->numAssertions = 0;

        $this->snapshotGlobalState();
        $this->startOutputBuffering();
        \clearstatcache();
        $currentWorkingDirectory = \getcwd();

        $hookMethods = TestUtil::getHookMethods(\get_class($this));

        $hasMetRequirements = false;

        try {
            $this->checkRequirements();
            $hasMetRequirements = true;

            if ($this->inIsolation) {
                foreach ($hookMethods['beforeClass'] as $method) {
                    $this->$method();
                }
            }

            $this->setExpectedExceptionFromAnnotation();
            $this->setDoesNotPerformAssertionsFromAnnotation();

            foreach ($hookMethods['before'] as $method) {
                $this->$method();
            }

            $this->assertPreConditions();
            $this->testResult = $this->runTest();
            $this->verifyMockObjects();
            $this->assertPostConditions();

            if (!empty($this->warnings)) {
                throw new Warning(
                    \implode(
                        "\n",
                        \array_unique($this->warnings)
                    )
                );
            }

            $this->status = BaseTestRunner::STATUS_PASSED;
        } catch (IncompleteTest $e) {
            $this->status        = BaseTestRunner::STATUS_INCOMPLETE;
            $this->statusMessage = $e->getMessage();
        } catch (SkippedTest $e) {
            $this->status        = BaseTestRunner::STATUS_SKIPPED;
            $this->statusMessage = $e->getMessage();
        } catch (Warning $e) {
            $this->status        = BaseTestRunner::STATUS_WARNING;
            $this->statusMessage = $e->getMessage();
        } catch (AssertionFailedError $e) {
            $this->status        = BaseTestRunner::STATUS_FAILURE;
            $this->statusMessage = $e->getMessage();
        } catch (PredictionException $e) {
            $this->status        = BaseTestRunner::STATUS_FAILURE;
            $this->statusMessage = $e->getMessage();
        } catch (\Throwable $_e) {
            $e                   = $_e;
            $this->status        = BaseTestRunner::STATUS_ERROR;
            $this->statusMessage = $_e->getMessage();
        }

        $this->mockObjects = [];
        $this->prophet     = null;

        // Tear down the fixture. An exception raised in tearDown() will be
        // caught and passed on when no exception was raised before.
        try {
            if ($hasMetRequirements) {
                foreach ($hookMethods['after'] as $method) {
                    $this->$method();
                }

                if ($this->inIsolation) {
                    foreach ($hookMethods['afterClass'] as $method) {
                        $this->$method();
                    }
                }
            }
        } catch (\Throwable $_e) {
            $e = $e ?? $_e;
        }

        try {
            $this->stopOutputBuffering();
        } catch (RiskyTestError $_e) {
            $e = $e ?? $_e;
        }

        if (isset($_e)) {
            $this->status        = BaseTestRunner::STATUS_ERROR;
            $this->statusMessage = $_e->getMessage();
        }

        \clearstatcache();

        if ($currentWorkingDirectory !== \getcwd()) {
            \chdir($currentWorkingDirectory);
        }

        $this->restoreGlobalState();
        $this->unregisterCustomComparators();
        $this->cleanupIniSettings();
        $this->cleanupLocaleSettings();
        \libxml_clear_errors();

        // Perform assertion on output.
        if (!isset($e)) {
            try {
                if ($this->outputExpectedRegex !== null) {
                    $this->assertRegExp($this->outputExpectedRegex, $this->output);
                } elseif ($this->outputExpectedString !== null) {
                    $this->assertEquals($this->outputExpectedString, $this->output);
                }
            } catch (\Throwable $_e) {
                $e = $_e;
            }
        }

        // Workaround for missing "finally".
        if (isset($e)) {
            if ($e instanceof PredictionException) {
                $e = new AssertionFailedError($e->getMessage());
            }

            $this->onNotSuccessfulTest($e);
        }
    }

    /**
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function setName(string $name): void
    {
        $this->name = $name;
    }

    /**
     * @param string[] $dependencies
     *
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function setDependencies(array $dependencies): void
    {
        $this->dependencies = $dependencies;
    }

    /**
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function getDependencies(): array
    {
        return $this->dependencies;
    }

    /**
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function hasDependencies(): bool
    {
        return \count($this->dependencies) > 0;
    }

    /**
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function setDependencyInput(array $dependencyInput): void
    {
        $this->dependencyInput = $dependencyInput;
    }

    /**
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function getDependencyInput(): array
    {
        return $this->dependencyInput;
    }

    /**
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function setBeStrictAboutChangesToGlobalState(?bool $beStrictAboutChangesToGlobalState): void
    {
        $this->beStrictAboutChangesToGlobalState = $beStrictAboutChangesToGlobalState;
    }

    /**
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function setBackupGlobals(?bool $backupGlobals): void
    {
        if ($this->backupGlobals === null && $backupGlobals !== null) {
            $this->backupGlobals = $backupGlobals;
        }
    }

    /**
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function setBackupStaticAttributes(?bool $backupStaticAttributes): void
    {
        if ($this->backupStaticAttributes === null && $backupStaticAttributes !== null) {
            $this->backupStaticAttributes = $backupStaticAttributes;
        }
    }

    /**
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function setRunTestInSeparateProcess(bool $runTestInSeparateProcess): void
    {
        if ($this->runTestInSeparateProcess === null) {
            $this->runTestInSeparateProcess = $runTestInSeparateProcess;
        }
    }

    /**
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function setRunClassInSeparateProcess(bool $runClassInSeparateProcess): void
    {
        if ($this->runClassInSeparateProcess === null) {
            $this->runClassInSeparateProcess = $runClassInSeparateProcess;
        }
    }

    /**
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function setPreserveGlobalState(bool $preserveGlobalState): void
    {
        $this->preserveGlobalState = $preserveGlobalState;
    }

    /**
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function setInIsolation(bool $inIsolation): void
    {
        $this->inIsolation = $inIsolation;
    }

    /**
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function isInIsolation(): bool
    {
        return $this->inIsolation;
    }

    /**
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function getResult()
    {
        return $this->testResult;
    }

    /**
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function setResult($result): void
    {
        $this->testResult = $result;
    }

    /**
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function setOutputCallback(callable $callback): void
    {
        $this->outputCallback = $callback;
    }

    /**
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function getTestResultObject(): ?TestResult
    {
        return $this->result;
    }

    /**
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function setTestResultObject(TestResult $result): void
    {
        $this->result = $result;
    }

    /**
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function registerMockObject(MockObject $mockObject): void
    {
        $this->mockObjects[] = $mockObject;
    }

    /**
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function addToAssertionCount(int $count): void
    {
        $this->numAssertions += $count;
    }

    /**
     * Returns the number of assertions performed by this test.
     *
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function getNumAssertions(): int
    {
        return $this->numAssertions;
    }

    /**
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function usesDataProvider(): bool
    {
        return !empty($this->data);
    }

    /**
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function dataDescription(): string
    {
        return \is_string($this->dataName) ? $this->dataName : '';
    }

    /**
     * @return int|string
     *
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function dataName()
    {
        return $this->dataName;
    }

    /**
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function getDataSetAsString(bool $includeData = true): string
    {
        $buffer = '';

        if (!empty($this->data)) {
            if (\is_int($this->dataName)) {
                $buffer .= \sprintf(' with data set #%d', $this->dataName);
            } else {
                $buffer .= \sprintf(' with data set "%s"', $this->dataName);
            }

            $exporter = new Exporter;

            if ($includeData) {
                $buffer .= \sprintf(' (%s)', $exporter->shortenedRecursiveExport($this->data));
            }
        }

        return $buffer;
    }

    /**
     * Gets the data set of a TestCase.
     *
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function getProvidedData(): array
    {
        return $this->data;
    }

    /**
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    public function addWarning(string $warning): void
    {
        $this->warnings[] = $warning;
    }

    /**
     * Override to run the test and assert its state.
     *
     * @throws AssertionFailedError
     * @throws Exception
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\ObjectEnumerator\InvalidArgumentException
     * @throws \Throwable
     */
    protected function runTest()
    {
        if (\trim($this->name) === '') {
            throw new Exception(
                'PHPUnit\Framework\TestCase::$name must be a non-blank string.'
            );
        }

        $testArguments = \array_merge($this->data, $this->dependencyInput);

        $this->registerMockObjectsFromTestArguments($testArguments);

        try {
            $testResult = $this->{$this->name}(...\array_values($testArguments));
        } catch (\Throwable $exception) {
            if (!$this->checkExceptionExpectations($exception)) {
                throw $exception;
            }

            if ($this->expectedException !== null) {
                $this->assertThat(
                    $exception,
                    new ExceptionConstraint(
                        $this->expectedException
                    )
                );
            }

            if ($this->expectedExceptionMessage !== null) {
                $this->assertThat(
                    $exception,
                    new ExceptionMessage(
                        $this->expectedExceptionMessage
                    )
                );
            }

            if ($this->expectedExceptionMessageRegExp !== null) {
                $this->assertThat(
                    $exception,
                    new ExceptionMessageRegularExpression(
                        $this->expectedExceptionMessageRegExp
                    )
                );
            }

            if ($this->expectedExceptionCode !== null) {
                $this->assertThat(
                    $exception,
                    new ExceptionCode(
                        $this->expectedExceptionCode
                    )
                );
            }

            return;
        }

        if ($this->expectedException !== null) {
            $this->assertThat(
                null,
                new ExceptionConstraint(
                    $this->expectedException
                )
            );
        } elseif ($this->expectedExceptionMessage !== null) {
            $this->numAssertions++;

            throw new AssertionFailedError(
                \sprintf(
                    'Failed asserting that exception with message "%s" is thrown',
                    $this->expectedExceptionMessage
                )
            );
        } elseif ($this->expectedExceptionMessageRegExp !== null) {
            $this->numAssertions++;

            throw new AssertionFailedError(
                \sprintf(
                    'Failed asserting that exception with message matching "%s" is thrown',
                    $this->expectedExceptionMessageRegExp
                )
            );
        } elseif ($this->expectedExceptionCode !== null) {
            $this->numAssertions++;

            throw new AssertionFailedError(
                \sprintf(
                    'Failed asserting that exception with code "%s" is thrown',
                    $this->expectedExceptionCode
                )
            );
        }

        return $testResult;
    }

    /**
     * This method is a wrapper for the ini_set() function that automatically
     * resets the modified php.ini setting to its original value after the
     * test is run.
     *
     * @throws Exception
     */
    protected function iniSet(string $varName, string $newValue): void
    {
        $currentValue = \ini_set($varName, $newValue);

        if ($currentValue !== false) {
            $this->iniSettings[$varName] = $currentValue;
        } else {
            throw new Exception(
                \sprintf(
                    'INI setting "%s" could not be set to "%s".',
                    $varName,
                    $newValue
                )
            );
        }
    }

    /**
     * This method is a wrapper for the setlocale() function that automatically
     * resets the locale to its original value after the test is run.
     *
     * @throws Exception
     */
    protected function setLocale(...$args): void
    {
        if (\count($args) < 2) {
            throw new Exception;
        }

        [$category, $locale] = $args;

        if (\defined('LC_MESSAGES')) {
            $categories[] = \LC_MESSAGES;
        }

        if (!\in_array($category, self::LOCALE_CATEGORIES, true)) {
            throw new Exception;
        }

        if (!\is_array($locale) && !\is_string($locale)) {
            throw new Exception;
        }

        $this->locale[$category] = \setlocale($category, 0);

        $result = \setlocale(...$args);

        if ($result === false) {
            throw new Exception(
                'The locale functionality is not implemented on your platform, ' .
                'the specified locale does not exist or the category name is ' .
                'invalid.'
            );
        }
    }

    /**
     * Returns a test double for the specified class.
     *
     * @param string|string[] $originalClassName
     *
     * @psalm-template RealInstanceType of object
     * @psalm-param class-string<RealInstanceType>|string[] $originalClassName
     * @psalm-return MockObject&RealInstanceType
     */
    protected function createMock($originalClassName): MockObject
    {
        return $this->getMockBuilder($originalClassName)
                    ->disableOriginalConstructor()
                    ->disableOriginalClone()
                    ->disableArgumentCloning()
                    ->disallowMockingUnknownTypes()
                    ->getMock();
    }

    /**
     * Returns a configured test double for the specified class.
     *
     * @param string|string[] $originalClassName
     *
     * @psalm-template RealInstanceType of object
     * @psalm-param class-string<RealInstanceType>|string[] $originalClassName
     * @psalm-return MockObject&RealInstanceType
     */
    protected function createConfiguredMock($originalClassName, array $configuration): MockObject
    {
        $o = $this->createMock($originalClassName);

        foreach ($configuration as $method => $return) {
            $o->method($method)->willReturn($return);
        }

        return $o;
    }

    /**
     * Returns a partial test double for the specified class.
     *
     * @param string|string[] $originalClassName
     * @param string[]        $methods
     *
     * @psalm-template RealInstanceType of object
     * @psalm-param class-string<RealInstanceType>|string[] $originalClassName
     * @psalm-return MockObject&RealInstanceType
     */
    protected function createPartialMock($originalClassName, array $methods): MockObject
    {
        return $this->getMockBuilder($originalClassName)
                    ->disableOriginalConstructor()
                    ->disableOriginalClone()
                    ->disableArgumentCloning()
                    ->disallowMockingUnknownTypes()
                    ->setMethods(empty($methods) ? null : $methods)
                    ->getMock();
    }

    /**
     * Returns a test proxy for the specified class.
     *
     * @psalm-template RealInstanceType of object
     * @psalm-param class-string<RealInstanceType> $originalClassName
     * @psalm-return MockObject&RealInstanceType
     */
    protected function createTestProxy(string $originalClassName, array $constructorArguments = []): MockObject
    {
        return $this->getMockBuilder($originalClassName)
                    ->setConstructorArgs($constructorArguments)
                    ->enableProxyingToOriginalMethods()
                    ->getMock();
    }

    /**
     * Mocks the specified class and returns the name of the mocked class.
     *
     * @param string $originalClassName
     * @param array  $methods
     * @param string $mockClassName
     * @param bool   $callOriginalConstructor
     * @param bool   $callOriginalClone
     * @param bool   $callAutoload
     * @param bool   $cloneArguments
     *
     * @psalm-template RealInstanceType of object
     * @psalm-param class-string<RealInstanceType>|string $originalClassName
     * @psalm-return class-string<MockObject&RealInstanceType>
     */
    protected function getMockClass($originalClassName, $methods = [], array $arguments = [], $mockClassName = '', $callOriginalConstructor = false, $callOriginalClone = true, $callAutoload = true, $cloneArguments = false): string
    {
        $this->recordDoubledType($originalClassName);

        $mock = $this->getMockObjectGenerator()->getMock(
            $originalClassName,
            $methods,
            $arguments,
            $mockClassName,
            $callOriginalConstructor,
            $callOriginalClone,
            $callAutoload,
            $cloneArguments
        );

        return \get_class($mock);
    }

    /**
     * Returns a mock object for the specified abstract class with all abstract
     * methods of the class mocked. Concrete methods are not mocked by default.
     * To mock concrete methods, use the 7th parameter ($mockedMethods).
     *
     * @param string $originalClassName
     * @param string $mockClassName
     * @param bool   $callOriginalConstructor
     * @param bool   $callOriginalClone
     * @param bool   $callAutoload
     * @param array  $mockedMethods
     * @param bool   $cloneArguments
     *
     * @psalm-template RealInstanceType of object
     * @psalm-param class-string<RealInstanceType> $originalClassName
     * @psalm-return MockObject&RealInstanceType
     */
    protected function getMockForAbstractClass($originalClassName, array $arguments = [], $mockClassName = '', $callOriginalConstructor = true, $callOriginalClone = true, $callAutoload = true, $mockedMethods = [], $cloneArguments = false): MockObject
    {
        $this->recordDoubledType($originalClassName);

        $mockObject = $this->getMockObjectGenerator()->getMockForAbstractClass(
            $originalClassName,
            $arguments,
            $mockClassName,
            $callOriginalConstructor,
            $callOriginalClone,
            $callAutoload,
            $mockedMethods,
            $cloneArguments
        );

        $this->registerMockObject($mockObject);

        return $mockObject;
    }

    /**
     * Returns a mock object based on the given WSDL file.
     *
     * @param string $wsdlFile
     * @param string $originalClassName
     * @param string $mockClassName
     * @param bool   $callOriginalConstructor
     * @param array  $options                 An array of options passed to SOAPClient::_construct
     *
     * @psalm-template RealInstanceType of object
     * @psalm-param class-string<RealInstanceType>|string $originalClassName
     * @psalm-return MockObject&RealInstanceType
     */
    protected function getMockFromWsdl($wsdlFile, $originalClassName = '', $mockClassName = '', array $methods = [], $callOriginalConstructor = true, array $options = []): MockObject
    {
        $this->recordDoubledType('SoapClient');

        if ($originalClassName === '') {
            $fileName          = \pathinfo(\basename(\parse_url($wsdlFile)['path']), \PATHINFO_FILENAME);
            $originalClassName = \preg_replace('/[^a-zA-Z0-9_]/', '', $fileName);
        }

        if (!\class_exists($originalClassName)) {
            eval(
                $this->getMockObjectGenerator()->generateClassFromWsdl(
                    $wsdlFile,
                    $originalClassName,
                    $methods,
                    $options
                )
            );
        }

        $mockObject = $this->getMockObjectGenerator()->getMock(
            $originalClassName,
            $methods,
            ['', $options],
            $mockClassName,
            $callOriginalConstructor,
            false,
            false
        );

        $this->registerMockObject($mockObject);

        return $mockObject;
    }

    /**
     * Returns a mock object for the specified trait with all abstract methods
     * of the trait mocked. Concrete methods to mock can be specified with the
     * `$mockedMethods` parameter.
     *
     * @param string $traitName
     * @param string $mockClassName
     * @param bool   $callOriginalConstructor
     * @param bool   $callOriginalClone
     * @param bool   $callAutoload
     * @param array  $mockedMethods
     * @param bool   $cloneArguments
     */
    protected function getMockForTrait($traitName, array $arguments = [], $mockClassName = '', $callOriginalConstructor = true, $callOriginalClone = true, $callAutoload = true, $mockedMethods = [], $cloneArguments = false): MockObject
    {
        $this->recordDoubledType($traitName);

        $mockObject = $this->getMockObjectGenerator()->getMockForTrait(
            $traitName,
            $arguments,
            $mockClassName,
            $callOriginalConstructor,
            $callOriginalClone,
            $callAutoload,
            $mockedMethods,
            $cloneArguments
        );

        $this->registerMockObject($mockObject);

        return $mockObject;
    }

    /**
     * Returns an object for the specified trait.
     *
     * @param string $traitName
     * @param string $traitClassName
     * @param bool   $callOriginalConstructor
     * @param bool   $callOriginalClone
     * @param bool   $callAutoload
     *
     * @return object
     */
    protected function getObjectForTrait($traitName, array $arguments = [], $traitClassName = '', $callOriginalConstructor = true, $callOriginalClone = true, $callAutoload = true)/*: object*/
    {
        $this->recordDoubledType($traitName);

        return $this->getMockObjectGenerator()->getObjectForTrait(
            $traitName,
            $traitClassName,
            $callAutoload,
            $callOriginalConstructor,
            $arguments
        );
    }

    /**
     * @param null|string $classOrInterface
     *
     * @throws \Prophecy\Exception\Doubler\ClassNotFoundException
     * @throws \Prophecy\Exception\Doubler\DoubleException
     * @throws \Prophecy\Exception\Doubler\InterfaceNotFoundException
     *
     * @psalm-template RealInstanceType of object
     * @psalm-param class-string<RealInstanceType>|null $classOrInterface
     * @psalm-return ObjectProphecy<RealInstanceType>
     */
    protected function prophesize($classOrInterface = null): ObjectProphecy
    {
        if (\is_string($classOrInterface)) {
            $this->recordDoubledType($classOrInterface);
        }

        return $this->getProphet()->prophesize($classOrInterface);
    }

    /**
     * Creates a default TestResult object.
     *
     * @internal This method is not covered by the backward compatibility promise for PHPUnit
     */
    protected function createResult(): TestResult
    {
        return new TestResult;
    }

    /**
     * Performs assertions shared by all tests of a test case.
     *
     * This method is called between setUp() and test.
     */
    protected function assertPreConditions(): void
    {
    }

    /**
     * Performs assertions shared by all tests of a test case.
     *
     * This method is called between test and tearDown().
     */
    protected function assertPostConditions(): void
    {
    }

    /**
     * This method is called when a test method did not execute successfully.
     *
     * @throws \Throwable
     */
    protected function onNotSuccessfulTest(\Throwable $t): void
    {
        throw $t;
    }

    private function setExpectedExceptionFromAnnotation(): void
    {
        if ($this->name === null) {
            return;
        }

        try {
            $expectedException = TestUtil::getExpectedException(
                \get_class($this),
                $this->name
            );

            if ($expectedException !== false) {
                $this->addWarning('The @expectedException, @expectedExceptionCode, @expectedExceptionMessage, and @expectedExceptionMessageRegExp annotations are deprecated. They will be removed in PHPUnit 9. Refactor your test to use expectException(), expectExceptionCode(), expectExceptionMessage(), or expectExceptionMessageRegExp() instead.');

                $this->expectException($expectedException['class']);

                if ($expectedException['code'] !== null) {
                    $this->expectExceptionCode($expectedException['code']);
                }

                if ($expectedException['message'] !== '') {
                    $this->expectExceptionMessage($expectedException['message']);
                } elseif ($expectedException['message_regex'] !== '') {
                    $this->expectExceptionMessageRegExp($expectedException['message_regex']);
                }
            }
        } catch (UtilException $e) {
        }
    }

    private function setUseErrorHandlerFromAnnotation(): void
    {
        $useErrorHandler = TestUtil::getErrorHandlerSettings(
            \get_class($this),
            $this->name
        );

        if ($useErrorHandler !== null) {
            $this->setUseErrorHandler($useErrorHandler);
        }
    }

    /**
     * @throws Warning
     * @throws SkippedTestError
     * @throws SyntheticSkippedError
     */
    private function checkRequirements(): void
    {
        if (!$this->name || !\method_exists($this, $this->name)) {
            return;
        }

        $missingRequirements = TestUtil::getMissingRequirements(
            \get_class($this),
            $this->name
        );

        if (!empty($missingRequirements)) {
            $this->markTestSkipped(\implode(\PHP_EOL, $missingRequirements));
        }
    }

    /**
     * @throws \Throwable
     */
    private function verifyMockObjects(): void
    {
        foreach ($this->mockObjects as $mockObject) {
            if ($mockObject->__phpunit_hasMatchers()) {
                $this->numAssertions++;
            }

            $mockObject->__phpunit_verify(
                $this->shouldInvocationMockerBeReset($mockObject)
            );
        }

        if ($this->prophet !== null) {
            try {
                $this->prophet->checkPredictions();
            } catch (\Throwable $t) {
                /* Intentionally left empty */
            }

            foreach ($this->prophet->getProphecies() as $objectProphecy) {
                foreach ($objectProphecy->getMethodProphecies() as $methodProphecies) {
                    foreach ($methodProphecies as $methodProphecy) {
                        \assert($methodProphecy instanceof MethodProphecy);

                        $this->numAssertions += \count($methodProphecy->getCheckedPredictions());
                    }
                }
            }

            if (isset($t)) {
                throw $t;
            }
        }
    }

    private function handleDependencies(): bool
    {
        if (!empty($this->dependencies) && !$this->inIsolation) {
            $className  = \get_class($this);
            $passed     = $this->result->passed();
            $passedKeys = \array_keys($passed);

            foreach ($passedKeys as $key => $value) {
                $pos = \strpos($value, ' with data set');

                if ($pos !== false) {
                    $passedKeys[$key] = \substr($value, 0, $pos);
                }
            }

            $passedKeys = \array_flip(\array_unique($passedKeys));

            foreach ($this->dependencies as $dependency) {
                $deepClone    = false;
                $shallowClone = false;

                if (empty($dependency)) {
                    $this->markSkippedForNotSpecifyingDependency();

                    return false;
                }

                if (\strpos($dependency, 'clone ') === 0) {
                    $deepClone  = true;
                    $dependency = \substr($dependency, \strlen('clone '));
                } elseif (\strpos($dependency, '!clone ') === 0) {
                    $deepClone  = false;
                    $dependency = \substr($dependency, \strlen('!clone '));
                }

                if (\strpos($dependency, 'shallowClone ') === 0) {
                    $shallowClone = true;
                    $dependency   = \substr($dependency, \strlen('shallowClone '));
                } elseif (\strpos($dependency, '!shallowClone ') === 0) {
                    $shallowClone = false;
                    $dependency   = \substr($dependency, \strlen('!shallowClone '));
                }

                if (\strpos($dependency, '::') === false) {
                    $dependency = $className . '::' . $dependency;
                }

                if (!isset($passedKeys[$dependency])) {
                    if (!$this->isCallableTestMethod($dependency)) {
                        $this->warnAboutDependencyThatDoesNotExist($dependency);
                    } else {
                        $this->markSkippedForMissingDependency($dependency);
                    }

                    return false;
                }

                if (isset($passed[$dependency])) {
                    if ($passed[$dependency]['size'] !== TestUtil::UNKNOWN &&
                        $this->getSize() !== TestUtil::UNKNOWN &&
                        $passed[$dependency]['size'] > $this->getSize()) {
                        $this->result->addError(
                            $this,
                            new SkippedTestError(
                                'This test depends on a test that is larger than itself.'
                            ),
                            0
                        );

                        return false;
                    }

                    if ($deepClone) {
                        $deepCopy = new DeepCopy;
                        $deepCopy->skipUncloneable(false);

                        $this->dependencyInput[$dependency] = $deepCopy->copy($passed[$dependency]['result']);
                    } elseif ($shallowClone) {
                        $this->dependencyInput[$dependency] = clone $passed[$dependency]['result'];
                    } else {
                        $this->dependencyInput[$dependency] = $passed[$dependency]['result'];
                    }
                } else {
                    $this->dependencyInput[$dependency] = null;
                }
            }
        }

        return true;
    }

    private function markSkippedForNotSpecifyingDependency(): void
    {
        $this->status = BaseTestRunner::STATUS_SKIPPED;

        $this->result->startTest($this);

        $this->result->addError(
            $this,
            new SkippedTestError(
                \sprintf('This method has an invalid @depends annotation.')
            ),
            0
        );

        $this->result->endTest($this, 0);
    }

    private function markSkippedForMissingDependency(string $dependency): void
    {
        $this->status = BaseTestRunner::STATUS_SKIPPED;

        $this->result->startTest($this);

        $this->result->addError(
            $this,
            new SkippedTestError(
                \sprintf(
                    'This test depends on "%s" to pass.',
                    $dependency
                )
            ),
            0
        );

        $this->result->endTest($this, 0);
    }

    private function warnAboutDependencyThatDoesNotExist(string $dependency): void
    {
        $this->status = BaseTestRunner::STATUS_WARNING;

        $this->result->startTest($this);

        $this->result->addWarning(
            $this,
            new Warning(
                \sprintf(
                    'This test depends on "%s" which does not exist.',
                    $dependency
                )
            ),
            0
        );

        $this->result->endTest($this, 0);
    }

    /**
     * Get the mock object generator, creating it if it doesn't exist.
     */
    private function getMockObjectGenerator(): MockGenerator
    {
        if ($this->mockObjectGenerator === null) {
            $this->mockObjectGenerator = new MockGenerator;
        }

        return $this->mockObjectGenerator;
    }

    private function startOutputBuffering(): void
    {
        \ob_start();

        $this->outputBufferingActive = true;
        $this->outputBufferingLevel  = \ob_get_level();
    }

    /**
     * @throws RiskyTestError
     */
    private function stopOutputBuffering(): void
    {
        if (\ob_get_level() !== $this->outputBufferingLevel) {
            while (\ob_get_level() >= $this->outputBufferingLevel) {
                \ob_end_clean();
            }

            throw new RiskyTestError(
                'Test code or tested code did not (only) close its own output buffers'
            );
        }

        $this->output = \ob_get_contents();

        if ($this->outputCallback !== false) {
            $this->output = (string) \call_user_func($this->outputCallback, $this->output);
        }

        \ob_end_clean();

        $this->outputBufferingActive = false;
        $this->outputBufferingLevel  = \ob_get_level();
    }

    private function snapshotGlobalState(): void
    {
        if ($this->runTestInSeparateProcess || $this->inIsolation ||
            (!$this->backupGlobals && !$this->backupStaticAttributes)) {
            return;
        }

        $this->snapshot = $this->createGlobalStateSnapshot($this->backupGlobals === true);
    }

    /**
     * @throws RiskyTestError
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    private function restoreGlobalState(): void
    {
        if (!$this->snapshot instanceof Snapshot) {
            return;
        }

        if ($this->beStrictAboutChangesToGlobalState) {
            try {
                $this->compareGlobalStateSnapshots(
                    $this->snapshot,
                    $this->createGlobalStateSnapshot($this->backupGlobals === true)
                );
            } catch (RiskyTestError $rte) {
                // Intentionally left empty
            }
        }

        $restorer = new Restorer;

        if ($this->backupGlobals) {
            $restorer->restoreGlobalVariables($this->snapshot);
        }

        if ($this->backupStaticAttributes) {
            $restorer->restoreStaticAttributes($this->snapshot);
        }

        $this->snapshot = null;

        if (isset($rte)) {
            throw $rte;
        }
    }

    private function createGlobalStateSnapshot(bool $backupGlobals): Snapshot
    {
        $blacklist = new Blacklist;

        foreach ($this->backupGlobalsBlacklist as $globalVariable) {
            $blacklist->addGlobalVariable($globalVariable);
        }

        if (!\defined('PHPUNIT_TESTSUITE')) {
            $blacklist->addClassNamePrefix('PHPUnit');
            $blacklist->addClassNamePrefix('SebastianBergmann\CodeCoverage');
            $blacklist->addClassNamePrefix('SebastianBergmann\FileIterator');
            $blacklist->addClassNamePrefix('SebastianBergmann\Invoker');
            $blacklist->addClassNamePrefix('SebastianBergmann\Timer');
            $blacklist->addClassNamePrefix('PHP_Token');
            $blacklist->addClassNamePrefix('Symfony');
            $blacklist->addClassNamePrefix('Text_Template');
            $blacklist->addClassNamePrefix('Doctrine\Instantiator');
            $blacklist->addClassNamePrefix('Prophecy');

            foreach ($this->backupStaticAttributesBlacklist as $class => $attributes) {
                foreach ($attributes as $attribute) {
                    $blacklist->addStaticAttribute($class, $attribute);
                }
            }
        }

        return new Snapshot(
            $blacklist,
            $backupGlobals,
            (bool) $this->backupStaticAttributes,
            false,
            false,
            false,
            false,
            false,
            false,
            false
        );
    }

    /**
     * @throws RiskyTestError
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    private function compareGlobalStateSnapshots(Snapshot $before, Snapshot $after): void
    {
        $backupGlobals = $this->backupGlobals === null || $this->backupGlobals;

        if ($backupGlobals) {
            $this->compareGlobalStateSnapshotPart(
                $before->globalVariables(),
                $after->globalVariables(),
                "--- Global variables before the test\n+++ Global variables after the test\n"
            );

            $this->compareGlobalStateSnapshotPart(
                $before->superGlobalVariables(),
                $after->superGlobalVariables(),
                "--- Super-global variables before the test\n+++ Super-global variables after the test\n"
            );
        }

        if ($this->backupStaticAttributes) {
            $this->compareGlobalStateSnapshotPart(
                $before->staticAttributes(),
                $after->staticAttributes(),
                "--- Static attributes before the test\n+++ Static attributes after the test\n"
            );
        }
    }

    /**
     * @throws RiskyTestError
     */
    private function compareGlobalStateSnapshotPart(array $before, array $after, string $header): void
    {
        if ($before != $after) {
            $differ   = new Differ($header);
            $exporter = new Exporter;

            $diff = $differ->diff(
                $exporter->export($before),
                $exporter->export($after)
            );

            throw new RiskyTestError(
                $diff
            );
        }
    }

    private function getProphet(): Prophet
    {
        if ($this->prophet === null) {
            $this->prophet = new Prophet;
        }

        return $this->prophet;
    }

    /**
     * @throws \SebastianBergmann\ObjectEnumerator\InvalidArgumentException
     */
    private function shouldInvocationMockerBeReset(MockObject $mock): bool
    {
        $enumerator = new Enumerator;

        foreach ($enumerator->enumerate($this->dependencyInput) as $object) {
            if ($mock === $object) {
                return false;
            }
        }

        if (!\is_array($this->testResult) && !\is_object($this->testResult)) {
            return true;
        }

        return !\in_array($mock, $enumerator->enumerate($this->testResult), true);
    }

    /**
     * @throws \SebastianBergmann\ObjectEnumerator\InvalidArgumentException
     * @throws \SebastianBergmann\ObjectReflector\InvalidArgumentException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    private function registerMockObjectsFromTestArguments(array $testArguments, array &$visited = []): void
    {
        if ($this->registerMockObjectsFromTestArgumentsRecursively) {
            foreach ((new Enumerator)->enumerate($testArguments) as $object) {
                if ($object instanceof MockObject) {
                    $this->registerMockObject($object);
                }
            }
        } else {
            foreach ($testArguments as $testArgument) {
                if ($testArgument instanceof MockObject) {
                    if (Type::isCloneable($testArgument)) {
                        $testArgument = clone $testArgument;
                    }

                    $this->registerMockObject($testArgument);
                } elseif (\is_array($testArgument) && !\in_array($testArgument, $visited, true)) {
                    $visited[] = $testArgument;

                    $this->registerMockObjectsFromTestArguments(
                        $testArgument,
                        $visited
                    );
                }
            }
        }
    }

    private function setDoesNotPerformAssertionsFromAnnotation(): void
    {
        $annotations = $this->getAnnotations();

        if (isset($annotations['method']['doesNotPerformAssertions'])) {
            $this->doesNotPerformAssertions = true;
        }
    }

    private function unregisterCustomComparators(): void
    {
        $factory = ComparatorFactory::getInstance();

        foreach ($this->customComparators as $comparator) {
            $factory->unregister($comparator);
        }

        $this->customComparators = [];
    }

    private function cleanupIniSettings(): void
    {
        foreach ($this->iniSettings as $varName => $oldValue) {
            \ini_set($varName, $oldValue);
        }

        $this->iniSettings = [];
    }

    private function cleanupLocaleSettings(): void
    {
        foreach ($this->locale as $category => $locale) {
            \setlocale($category, $locale);
        }

        $this->locale = [];
    }

    /**
     * @throws Exception
     */
    private function checkExceptionExpectations(\Throwable $throwable): bool
    {
        $result = false;

        if ($this->expectedException !== null || $this->expectedExceptionCode !== null || $this->expectedExceptionMessage !== null || $this->expectedExceptionMessageRegExp !== null) {
            $result = true;
        }

        if ($throwable instanceof Exception) {
            $result = false;
        }

        if (\is_string($this->expectedException)) {
            try {
                $reflector = new \ReflectionClass($this->expectedException);
            } catch (\ReflectionException $e) {
                throw new Exception(
                    $e->getMessage(),
                    (int) $e->getCode(),
                    $e
                );
            }

            if ($this->expectedException === 'PHPUnit\Framework\Exception' ||
                $this->expectedException === '\PHPUnit\Framework\Exception' ||
                $reflector->isSubclassOf(Exception::class)) {
                $result = true;
            }
        }

        return $result;
    }

    private function runInSeparateProcess(): bool
    {
        return ($this->runTestInSeparateProcess || $this->runClassInSeparateProcess) &&
            !$this->inIsolation && !$this instanceof PhptTestCase;
    }

    /**
     * @param string|string[] $originalClassName
     */
    private function recordDoubledType($originalClassName): void
    {
        if (\is_string($originalClassName)) {
            $this->doubledTypes[] = $originalClassName;
        }

        if (\is_array($originalClassName)) {
            foreach ($originalClassName as $_originalClassName) {
                if (\is_string($_originalClassName)) {
                    $this->doubledTypes[] = $_originalClassName;
                }
            }
        }
    }

    private function isCallableTestMethod(string $dependency): bool
    {
        [$className, $methodName] = \explode('::', $dependency);

        if (!\class_exists($className)) {
            return false;
        }

        try {
            $class = new \ReflectionClass($className);
        } catch (\ReflectionException $e) {
            return false;
        }

        if (!$class->isSubclassOf(__CLASS__)) {
            return false;
        }

        if (!$class->hasMethod($methodName)) {
            return false;
        }

        try {
            $method = $class->getMethod($methodName);
        } catch (\ReflectionException $e) {
            return false;
        }

        return TestUtil::isTestMethod($method);
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class Warning extends Exception implements SelfDescribing
{
    /**
     * Wrapper for getMessage() which is declared as final.
     */
    public function toString(): string
    {
        return $this->getMessage();
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class UnintentionallyCoveredCodeError extends RiskyTestError
{
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework;

use SebastianBergmann\Comparator\ComparisonFailure;

/**
 * Exception for expectations which failed their check.
 *
 * The exception contains the error message and optionally a
 * SebastianBergmann\Comparator\ComparisonFailure which is used to
 * generate diff output of the failed expectations.
 *
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class ExpectationFailedException extends AssertionFailedError
{
    /**
     * @var ComparisonFailure
     */
    protected $comparisonFailure;

    public function __construct(string $message, ComparisonFailure $comparisonFailure = null, \Exception $previous = null)
    {
        $this->comparisonFailure = $comparisonFailure;

        parent::__construct($message, 0, $previous);
    }

    public function getComparisonFailure(): ?ComparisonFailure
    {
        return $this->comparisonFailure;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class SyntheticSkippedError extends SyntheticError implements SkippedTest
{
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class SkippedTestSuiteError extends AssertionFailedError implements SkippedTest
{
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class OutputError extends AssertionFailedError
{
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class IncompleteTestError extends AssertionFailedError implements IncompleteTest
{
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
class RiskyTestError extends AssertionFailedError
{
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class SkippedTestError extends AssertionFailedError implements SkippedTest
{
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
class SyntheticError extends AssertionFailedError
{
    /**
     * The synthetic file.
     *
     * @var string
     */
    protected $syntheticFile = '';

    /**
     * The synthetic line number.
     *
     * @var int
     */
    protected $syntheticLine = 0;

    /**
     * The synthetic trace.
     *
     * @var array
     */
    protected $syntheticTrace = [];

    public function __construct(string $message, int $code, string $file, int $line, array $trace)
    {
        parent::__construct($message, $code);

        $this->syntheticFile  = $file;
        $this->syntheticLine  = $line;
        $this->syntheticTrace = $trace;
    }

    public function getSyntheticFile(): string
    {
        return $this->syntheticFile;
    }

    public function getSyntheticLine(): int
    {
        return $this->syntheticLine;
    }

    public function getSyntheticTrace(): array
    {
        return $this->syntheticTrace;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class PHPTAssertionFailedError extends SyntheticError
{
    /**
     * @var string
     */
    private $diff;

    public function __construct(string $message, int $code, string $file, int $line, array $trace, string $diff)
    {
        parent::__construct($message, $code, $file, $line, $trace);
        $this->diff = $diff;
    }

    public function getDiff(): string
    {
        return $this->diff;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
class CodeCoverageException extends Exception
{
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class CoveredCodeNotExecutedException extends RiskyTestError
{
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class InvalidDataProviderException extends Exception
{
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class InvalidCoversTargetException extends CodeCoverageException
{
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class MissingCoversAnnotationException extends RiskyTestError
{
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework;

use PHPUnit\Util\Filter;

/**
 * Base class for all PHPUnit Framework exceptions.
 *
 * Ensures that exceptions thrown during a test run do not leave stray
 * references behind.
 *
 * Every Exception contains a stack trace. Each stack frame contains the 'args'
 * of the called function. The function arguments can contain references to
 * instantiated objects. The references prevent the objects from being
 * destructed (until test results are eventually printed), so memory cannot be
 * freed up.
 *
 * With enabled process isolation, test results are serialized in the child
 * process and unserialized in the parent process. The stack trace of Exceptions
 * may contain objects that cannot be serialized or unserialized (e.g., PDO
 * connections). Unserializing user-space objects from the child process into
 * the parent would break the intended encapsulation of process isolation.
 *
 * @see http://fabien.potencier.org/article/9/php-serialization-stack-traces-and-exceptions
 *
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
class Exception extends \RuntimeException implements \PHPUnit\Exception
{
    /**
     * @var array
     */
    protected $serializableTrace;

    public function __construct($message = '', $code = 0, \Exception $previous = null)
    {
        parent::__construct($message, $code, $previous);

        $this->serializableTrace = $this->getTrace();

        foreach ($this->serializableTrace as $i => $call) {
            unset($this->serializableTrace[$i]['args']);
        }
    }

    public function __toString(): string
    {
        $string = TestFailure::exceptionToString($this);

        if ($trace = Filter::getFilteredStacktrace($this)) {
            $string .= "\n" . $trace;
        }

        return $string;
    }

    public function __sleep(): array
    {
        return \array_keys(\get_object_vars($this));
    }

    /**
     * Returns the serializable trace (without 'args').
     */
    public function getSerializableTrace(): array
    {
        return $this->serializableTrace;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
class AssertionFailedError extends Exception implements SelfDescribing
{
    /**
     * Wrapper for getMessage() which is declared as final.
     */
    public function toString(): string
    {
        return $this->getMessage();
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class WarningTestCase extends TestCase
{
    /**
     * @var bool
     */
    protected $backupGlobals = false;

    /**
     * @var bool
     */
    protected $backupStaticAttributes = false;

    /**
     * @var bool
     */
    protected $runTestInSeparateProcess = false;

    /**
     * @var bool
     */
    protected $useErrorHandler = false;

    /**
     * @var string
     */
    private $message;

    /**
     * @param string $message
     */
    public function __construct($message = '')
    {
        $this->message = $message;
        parent::__construct('Warning');
    }

    public function getMessage(): string
    {
        return $this->message;
    }

    /**
     * Returns a string representation of the test case.
     */
    public function toString(): string
    {
        return 'Warning';
    }

    /**
     * @throws Exception
     */
    protected function runTest(): void
    {
        throw new Warning($this->message);
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

/**
 * Constraint that asserts that the string it is evaluated for matches
 * a regular expression.
 *
 * Checks a given value using the Perl Compatible Regular Expression extension
 * in PHP. The pattern is matched by executing preg_match().
 *
 * The pattern string passed in the constructor.
 */
class RegularExpression extends Constraint
{
    /**
     * @var string
     */
    private $pattern;

    public function __construct(string $pattern)
    {
        $this->pattern = $pattern;
    }

    /**
     * Returns a string representation of the constraint.
     */
    public function toString(): string
    {
        return \sprintf(
            'matches PCRE pattern "%s"',
            $this->pattern
        );
    }

    /**
     * Evaluates the constraint for parameter $other. Returns true if the
     * constraint is met, false otherwise.
     *
     * @param mixed $other value or object to evaluate
     */
    protected function matches($other): bool
    {
        return \preg_match($this->pattern, $other) > 0;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

use ReflectionClass;
use ReflectionException;

/**
 * Constraint that asserts that the object it is evaluated for is an instance
 * of a given class.
 *
 * The expected class name is passed in the constructor.
 */
final class IsInstanceOf extends Constraint
{
    /**
     * @var string
     */
    private $className;

    public function __construct(string $className)
    {
        $this->className = $className;
    }

    /**
     * Returns a string representation of the constraint.
     */
    public function toString(): string
    {
        return \sprintf(
            'is instance of %s "%s"',
            $this->getType(),
            $this->className
        );
    }

    /**
     * Evaluates the constraint for parameter $other. Returns true if the
     * constraint is met, false otherwise.
     *
     * @param mixed $other value or object to evaluate
     */
    protected function matches($other): bool
    {
        return $other instanceof $this->className;
    }

    /**
     * Returns the description of the failure
     *
     * The beginning of failure messages is "Failed asserting that" in most
     * cases. This method should return the second part of that sentence.
     *
     * @param mixed $other evaluated value or object
     *
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    protected function failureDescription($other): string
    {
        return \sprintf(
            '%s is an instance of %s "%s"',
            $this->exporter()->shortenedExport($other),
            $this->getType(),
            $this->className
        );
    }

    private function getType(): string
    {
        try {
            $reflection = new ReflectionClass($this->className);

            if ($reflection->isInterface()) {
                return 'interface';
            }
        } catch (ReflectionException $e) {
        }

        return 'class';
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

/**
 * Constraint that checks if the file/dir(name) that it is evaluated for is readable.
 *
 * The file path to check is passed as $other in evaluate().
 */
final class IsReadable extends Constraint
{
    /**
     * Returns a string representation of the constraint.
     */
    public function toString(): string
    {
        return 'is readable';
    }

    /**
     * Evaluates the constraint for parameter $other. Returns true if the
     * constraint is met, false otherwise.
     *
     * @param mixed $other value or object to evaluate
     */
    protected function matches($other): bool
    {
        return \is_readable($other);
    }

    /**
     * Returns the description of the failure
     *
     * The beginning of failure messages is "Failed asserting that" in most
     * cases. This method should return the second part of that sentence.
     *
     * @param mixed $other evaluated value or object
     */
    protected function failureDescription($other): string
    {
        return \sprintf(
            '"%s" is readable',
            $other
        );
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

/**
 * Constraint that accepts false.
 */
final class IsFalse extends Constraint
{
    /**
     * Returns a string representation of the constraint.
     */
    public function toString(): string
    {
        return 'is false';
    }

    /**
     * Evaluates the constraint for parameter $other. Returns true if the
     * constraint is met, false otherwise.
     *
     * @param mixed $other value or object to evaluate
     */
    protected function matches($other): bool
    {
        return $other === false;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

/**
 * Constraint that asserts that the value it is evaluated for is less than
 * a given value.
 */
final class LessThan extends Constraint
{
    /**
     * @var float|int
     */
    private $value;

    /**
     * @param float|int $value
     */
    public function __construct($value)
    {
        $this->value = $value;
    }

    /**
     * Returns a string representation of the constraint.
     *
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function toString(): string
    {
        return 'is less than ' . $this->exporter()->export($this->value);
    }

    /**
     * Evaluates the constraint for parameter $other. Returns true if the
     * constraint is met, false otherwise.
     *
     * @param mixed $other value or object to evaluate
     */
    protected function matches($other): bool
    {
        return $this->value > $other;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

use PHPUnit\Util\RegularExpression as RegularExpressionUtil;

final class ExceptionMessageRegularExpression extends Constraint
{
    /**
     * @var string
     */
    private $expectedMessageRegExp;

    public function __construct(string $expected)
    {
        $this->expectedMessageRegExp = $expected;
    }

    public function toString(): string
    {
        return 'exception message matches ';
    }

    /**
     * Evaluates the constraint for parameter $other. Returns true if the
     * constraint is met, false otherwise.
     *
     * @param \PHPUnit\Framework\Exception $other
     *
     * @throws \Exception
     * @throws \PHPUnit\Framework\Exception
     */
    protected function matches($other): bool
    {
        $match = RegularExpressionUtil::safeMatch($this->expectedMessageRegExp, $other->getMessage());

        if ($match === false) {
            throw new \PHPUnit\Framework\Exception(
                "Invalid expected exception message regex given: '{$this->expectedMessageRegExp}'"
            );
        }

        return $match === 1;
    }

    /**
     * Returns the description of the failure
     *
     * The beginning of failure messages is "Failed asserting that" in most
     * cases. This method should return the second part of that sentence.
     *
     * @param mixed $other evaluated value or object
     */
    protected function failureDescription($other): string
    {
        return \sprintf(
            "exception message '%s' matches '%s'",
            $other->getMessage(),
            $this->expectedMessageRegExp
        );
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

/**
 * Constraint that checks if the directory(name) that it is evaluated for exists.
 *
 * The file path to check is passed as $other in evaluate().
 */
final class DirectoryExists extends Constraint
{
    /**
     * Returns a string representation of the constraint.
     */
    public function toString(): string
    {
        return 'directory exists';
    }

    /**
     * Evaluates the constraint for parameter $other. Returns true if the
     * constraint is met, false otherwise.
     *
     * @param mixed $other value or object to evaluate
     */
    protected function matches($other): bool
    {
        return \is_dir($other);
    }

    /**
     * Returns the description of the failure
     *
     * The beginning of failure messages is "Failed asserting that" in most
     * cases. This method should return the second part of that sentence.
     *
     * @param mixed $other evaluated value or object
     */
    protected function failureDescription($other): string
    {
        return \sprintf(
            'directory "%s" exists',
            $other
        );
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

use PHPUnit\Framework\ExpectationFailedException;

/**
 * Logical OR.
 */
final class LogicalOr extends Constraint
{
    /**
     * @var Constraint[]
     */
    private $constraints = [];

    public static function fromConstraints(Constraint ...$constraints): self
    {
        $constraint = new self;

        $constraint->constraints = \array_values($constraints);

        return $constraint;
    }

    /**
     * @param Constraint[] $constraints
     */
    public function setConstraints(array $constraints): void
    {
        $this->constraints = [];

        foreach ($constraints as $constraint) {
            if (!($constraint instanceof Constraint)) {
                $constraint = new IsEqual(
                    $constraint
                );
            }

            $this->constraints[] = $constraint;
        }
    }

    /**
     * Evaluates the constraint for parameter $other
     *
     * If $returnResult is set to false (the default), an exception is thrown
     * in case of a failure. null is returned otherwise.
     *
     * If $returnResult is true, the result of the evaluation is returned as
     * a boolean value instead: true in case of success, false in case of a
     * failure.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function evaluate($other, string $description = '', bool $returnResult = false)
    {
        $success = false;

        foreach ($this->constraints as $constraint) {
            if ($constraint->evaluate($other, $description, true)) {
                $success = true;

                break;
            }
        }

        if ($returnResult) {
            return $success;
        }

        if (!$success) {
            $this->fail($other, $description);
        }
    }

    /**
     * Returns a string representation of the constraint.
     */
    public function toString(): string
    {
        $text = '';

        foreach ($this->constraints as $key => $constraint) {
            if ($key > 0) {
                $text .= ' or ';
            }

            $text .= $constraint->toString();
        }

        return $text;
    }

    /**
     * Counts the number of constraint elements.
     */
    public function count(): int
    {
        $count = 0;

        foreach ($this->constraints as $constraint) {
            $count += \count($constraint);
        }

        return $count;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

use PHPUnit\Framework\ExpectationFailedException;

/**
 * Constraint that accepts any input value.
 */
final class IsAnything extends Constraint
{
    /**
     * Evaluates the constraint for parameter $other
     *
     * If $returnResult is set to false (the default), an exception is thrown
     * in case of a failure. null is returned otherwise.
     *
     * If $returnResult is true, the result of the evaluation is returned as
     * a boolean value instead: true in case of success, false in case of a
     * failure.
     *
     * @throws ExpectationFailedException
     */
    public function evaluate($other, string $description = '', bool $returnResult = false)
    {
        return $returnResult ? true : null;
    }

    /**
     * Returns a string representation of the constraint.
     */
    public function toString(): string
    {
        return 'is anything';
    }

    /**
     * Counts the number of constraint elements.
     */
    public function count(): int
    {
        return 0;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

final class ExceptionMessage extends Constraint
{
    /**
     * @var string
     */
    private $expectedMessage;

    public function __construct(string $expected)
    {
        $this->expectedMessage = $expected;
    }

    public function toString(): string
    {
        if ($this->expectedMessage === '') {
            return 'exception message is empty';
        }

        return 'exception message contains ';
    }

    /**
     * Evaluates the constraint for parameter $other. Returns true if the
     * constraint is met, false otherwise.
     *
     * @param \Throwable $other
     */
    protected function matches($other): bool
    {
        if ($this->expectedMessage === '') {
            return $other->getMessage() === '';
        }

        return \strpos($other->getMessage(), $this->expectedMessage) !== false;
    }

    /**
     * Returns the description of the failure
     *
     * The beginning of failure messages is "Failed asserting that" in most
     * cases. This method should return the second part of that sentence.
     *
     * @param mixed $other evaluated value or object
     */
    protected function failureDescription($other): string
    {
        if ($this->expectedMessage === '') {
            return \sprintf(
                "exception message is empty but is '%s'",
                $other->getMessage()
            );
        }

        return \sprintf(
            "exception message '%s' contains '%s'",
            $other->getMessage(),
            $this->expectedMessage
        );
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

use PHPUnit\Framework\ExpectationFailedException;

/**
 * Constraint that asserts that the Traversable it is applied to contains
 * only values of a given type.
 */
final class TraversableContainsOnly extends Constraint
{
    /**
     * @var Constraint
     */
    private $constraint;

    /**
     * @var string
     */
    private $type;

    /**
     * @throws \PHPUnit\Framework\Exception
     */
    public function __construct(string $type, bool $isNativeType = true)
    {
        if ($isNativeType) {
            $this->constraint = new IsType($type);
        } else {
            $this->constraint = new IsInstanceOf(
                $type
            );
        }

        $this->type = $type;
    }

    /**
     * Evaluates the constraint for parameter $other
     *
     * If $returnResult is set to false (the default), an exception is thrown
     * in case of a failure. null is returned otherwise.
     *
     * If $returnResult is true, the result of the evaluation is returned as
     * a boolean value instead: true in case of success, false in case of a
     * failure.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function evaluate($other, string $description = '', bool $returnResult = false)
    {
        $success = true;

        foreach ($other as $item) {
            if (!$this->constraint->evaluate($item, '', true)) {
                $success = false;

                break;
            }
        }

        if ($returnResult) {
            return $success;
        }

        if (!$success) {
            $this->fail($other, $description);
        }
    }

    /**
     * Returns a string representation of the constraint.
     */
    public function toString(): string
    {
        return 'contains only values of type "' . $this->type . '"';
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

use PHPUnit\Framework\Exception;
use ReflectionClass;

/**
 * Constraint that asserts that the class it is evaluated for has a given
 * static attribute.
 *
 * The attribute name is passed in the constructor.
 */
final class ClassHasStaticAttribute extends ClassHasAttribute
{
    /**
     * Returns a string representation of the constraint.
     */
    public function toString(): string
    {
        return \sprintf(
            'has static attribute "%s"',
            $this->attributeName()
        );
    }

    /**
     * Evaluates the constraint for parameter $other. Returns true if the
     * constraint is met, false otherwise.
     *
     * @param mixed $other value or object to evaluate
     */
    protected function matches($other): bool
    {
        try {
            $class = new ReflectionClass($other);

            if ($class->hasProperty($this->attributeName())) {
                return $class->getProperty($this->attributeName())->isStatic();
            }
        } catch (\ReflectionException $e) {
            throw new Exception(
                $e->getMessage(),
                (int) $e->getCode(),
                $e
            );
        }

        return false;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

/**
 * Constraint that accepts true.
 */
final class IsTrue extends Constraint
{
    /**
     * Returns a string representation of the constraint.
     */
    public function toString(): string
    {
        return 'is true';
    }

    /**
     * Evaluates the constraint for parameter $other. Returns true if the
     * constraint is met, false otherwise.
     *
     * @param mixed $other value or object to evaluate
     */
    protected function matches($other): bool
    {
        return $other === true;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

use PHPUnit\Framework\ExpectationFailedException;

/**
 * Logical AND.
 */
final class LogicalAnd extends Constraint
{
    /**
     * @var Constraint[]
     */
    private $constraints = [];

    public static function fromConstraints(Constraint ...$constraints): self
    {
        $constraint = new self;

        $constraint->constraints = \array_values($constraints);

        return $constraint;
    }

    /**
     * @param Constraint[] $constraints
     *
     * @throws \PHPUnit\Framework\Exception
     */
    public function setConstraints(array $constraints): void
    {
        $this->constraints = [];

        foreach ($constraints as $constraint) {
            if (!($constraint instanceof Constraint)) {
                throw new \PHPUnit\Framework\Exception(
                    'All parameters to ' . __CLASS__ .
                    ' must be a constraint object.'
                );
            }

            $this->constraints[] = $constraint;
        }
    }

    /**
     * Evaluates the constraint for parameter $other
     *
     * If $returnResult is set to false (the default), an exception is thrown
     * in case of a failure. null is returned otherwise.
     *
     * If $returnResult is true, the result of the evaluation is returned as
     * a boolean value instead: true in case of success, false in case of a
     * failure.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function evaluate($other, string $description = '', bool $returnResult = false)
    {
        $success = true;

        foreach ($this->constraints as $constraint) {
            if (!$constraint->evaluate($other, $description, true)) {
                $success = false;

                break;
            }
        }

        if ($returnResult) {
            return $success;
        }

        if (!$success) {
            $this->fail($other, $description);
        }
    }

    /**
     * Returns a string representation of the constraint.
     */
    public function toString(): string
    {
        $text = '';

        foreach ($this->constraints as $key => $constraint) {
            if ($key > 0) {
                $text .= ' and ';
            }

            $text .= $constraint->toString();
        }

        return $text;
    }

    /**
     * Counts the number of constraint elements.
     */
    public function count(): int
    {
        $count = 0;

        foreach ($this->constraints as $constraint) {
            $count += \count($constraint);
        }

        return $count;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

use ArrayAccess;

/**
 * Constraint that asserts that the array it is evaluated for has a given key.
 *
 * Uses array_key_exists() to check if the key is found in the input array, if
 * not found the evaluation fails.
 *
 * The array key is passed in the constructor.
 */
final class ArrayHasKey extends Constraint
{
    /**
     * @var int|string
     */
    private $key;

    /**
     * @param int|string $key
     */
    public function __construct($key)
    {
        $this->key = $key;
    }

    /**
     * Returns a string representation of the constraint.
     *
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function toString(): string
    {
        return 'has the key ' . $this->exporter()->export($this->key);
    }

    /**
     * Evaluates the constraint for parameter $other. Returns true if the
     * constraint is met, false otherwise.
     *
     * @param mixed $other value or object to evaluate
     */
    protected function matches($other): bool
    {
        if (\is_array($other)) {
            return \array_key_exists($this->key, $other);
        }

        if ($other instanceof ArrayAccess) {
            return $other->offsetExists($this->key);
        }

        return false;
    }

    /**
     * Returns the description of the failure
     *
     * The beginning of failure messages is "Failed asserting that" in most
     * cases. This method should return the second part of that sentence.
     *
     * @param mixed $other evaluated value or object
     *
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    protected function failureDescription($other): string
    {
        return 'an array ' . $this->toString();
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

use PHPUnit\Framework\ExpectationFailedException;

/**
 * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
 * @codeCoverageIgnore
 */
abstract class Composite extends Constraint
{
    /**
     * @var Constraint
     */
    private $innerConstraint;

    public function __construct(Constraint $innerConstraint)
    {
        $this->innerConstraint = $innerConstraint;
    }

    /**
     * Evaluates the constraint for parameter $other
     *
     * If $returnResult is set to false (the default), an exception is thrown
     * in case of a failure. null is returned otherwise.
     *
     * If $returnResult is true, the result of the evaluation is returned as
     * a boolean value instead: true in case of success, false in case of a
     * failure.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function evaluate($other, string $description = '', bool $returnResult = false)
    {
        try {
            return $this->innerConstraint->evaluate(
                $other,
                $description,
                $returnResult
            );
        } catch (ExpectationFailedException $e) {
            $this->fail($other, $description, $e->getComparisonFailure());
        }
    }

    /**
     * Counts the number of constraint elements.
     */
    public function count(): int
    {
        return \count($this->innerConstraint);
    }

    protected function innerConstraint(): Constraint
    {
        return $this->innerConstraint;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

use PHPUnit\Util\InvalidArgumentHelper;

/**
 * Constraint that asserts that the string it is evaluated for begins with a
 * given prefix.
 */
final class StringStartsWith extends Constraint
{
    /**
     * @var string
     */
    private $prefix;

    public function __construct(string $prefix)
    {
        if (\strlen($prefix) === 0) {
            throw InvalidArgumentHelper::factory(1, 'non-empty string');
        }

        $this->prefix = $prefix;
    }

    /**
     * Returns a string representation of the constraint.
     */
    public function toString(): string
    {
        return 'starts with "' . $this->prefix . '"';
    }

    /**
     * Evaluates the constraint for parameter $other. Returns true if the
     * constraint is met, false otherwise.
     *
     * @param mixed $other value or object to evaluate
     */
    protected function matches($other): bool
    {
        return \strpos((string) $other, $this->prefix) === 0;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

/**
 * Constraint that asserts that a string is valid JSON.
 */
final class IsJson extends Constraint
{
    /**
     * Returns a string representation of the constraint.
     */
    public function toString(): string
    {
        return 'is valid JSON';
    }

    /**
     * Evaluates the constraint for parameter $other. Returns true if the
     * constraint is met, false otherwise.
     *
     * @param mixed $other value or object to evaluate
     */
    protected function matches($other): bool
    {
        if ($other === '') {
            return false;
        }

        \json_decode($other);

        if (\json_last_error()) {
            return false;
        }

        return true;
    }

    /**
     * Returns the description of the failure
     *
     * The beginning of failure messages is "Failed asserting that" in most
     * cases. This method should return the second part of that sentence.
     *
     * @param mixed $other evaluated value or object
     *
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    protected function failureDescription($other): string
    {
        if ($other === '') {
            return 'an empty string is valid JSON';
        }

        \json_decode($other);
        $error = JsonMatchesErrorMessageProvider::determineJsonError(
            (string) \json_last_error()
        );

        return \sprintf(
            '%s is valid JSON (%s)',
            $this->exporter()->shortenedExport($other),
            $error
        );
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

use PHPUnit\Framework\ExpectationFailedException;
use PHPUnit\Util\Json;
use SebastianBergmann\Comparator\ComparisonFailure;

/**
 * Asserts whether or not two JSON objects are equal.
 */
final class JsonMatches extends Constraint
{
    /**
     * @var string
     */
    private $value;

    public function __construct(string $value)
    {
        $this->value = $value;
    }

    /**
     * Returns a string representation of the object.
     */
    public function toString(): string
    {
        return \sprintf(
            'matches JSON string "%s"',
            $this->value
        );
    }

    /**
     * Evaluates the constraint for parameter $other. Returns true if the
     * constraint is met, false otherwise.
     *
     * This method can be overridden to implement the evaluation algorithm.
     *
     * @param mixed $other value or object to evaluate
     */
    protected function matches($other): bool
    {
        [$error, $recodedOther] = Json::canonicalize($other);

        if ($error) {
            return false;
        }

        [$error, $recodedValue] = Json::canonicalize($this->value);

        if ($error) {
            return false;
        }

        return $recodedOther == $recodedValue;
    }

    /**
     * Throws an exception for the given compared value and test description
     *
     * @param mixed             $other             evaluated value or object
     * @param string            $description       Additional information about the test
     * @param ComparisonFailure $comparisonFailure
     *
     * @throws ExpectationFailedException
     * @throws \PHPUnit\Framework\Exception
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    protected function fail($other, $description, ComparisonFailure $comparisonFailure = null): void
    {
        if ($comparisonFailure === null) {
            [$error] = Json::canonicalize($other);

            if ($error) {
                parent::fail($other, $description);
            }

            [$error] = Json::canonicalize($this->value);

            if ($error) {
                parent::fail($other, $description);
            }

            $comparisonFailure = new ComparisonFailure(
                \json_decode($this->value),
                \json_decode($other),
                Json::prettify($this->value),
                Json::prettify($other),
                false,
                'Failed asserting that two json values are equal.'
            );
        }

        parent::fail($other, $description, $comparisonFailure);
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

use PHPUnit\Framework\Assert;
use PHPUnit\Framework\ExpectationFailedException;

/**
 * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338
 * @codeCoverageIgnore
 */
final class Attribute extends Composite
{
    /**
     * @var string
     */
    private $attributeName;

    public function __construct(Constraint $constraint, string $attributeName)
    {
        parent::__construct($constraint);

        $this->attributeName = $attributeName;
    }

    /**
     * Evaluates the constraint for parameter $other
     *
     * If $returnResult is set to false (the default), an exception is thrown
     * in case of a failure. null is returned otherwise.
     *
     * If $returnResult is true, the result of the evaluation is returned as
     * a boolean value instead: true in case of success, false in case of a
     * failure.
     *
     * @throws ExpectationFailedException
     * @throws \PHPUnit\Framework\Exception
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function evaluate($other, string $description = '', bool $returnResult = false)
    {
        return parent::evaluate(
            Assert::readAttribute(
                $other,
                $this->attributeName
            ),
            $description,
            $returnResult
        );
    }

    /**
     * Returns a string representation of the constraint.
     */
    public function toString(): string
    {
        return 'attribute "' . $this->attributeName . '" ' . $this->innerConstraint()->toString();
    }

    /**
     * Returns the description of the failure
     *
     * The beginning of failure messages is "Failed asserting that" in most
     * cases. This method should return the second part of that sentence.
     *
     * @param mixed $other evaluated value or object
     */
    protected function failureDescription($other): string
    {
        return $this->toString();
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

use PHPUnit\Framework\ExpectationFailedException;

/**
 * Logical XOR.
 */
final class LogicalXor extends Constraint
{
    /**
     * @var Constraint[]
     */
    private $constraints = [];

    public static function fromConstraints(Constraint ...$constraints): self
    {
        $constraint = new self;

        $constraint->constraints = \array_values($constraints);

        return $constraint;
    }

    /**
     * @param Constraint[] $constraints
     */
    public function setConstraints(array $constraints): void
    {
        $this->constraints = [];

        foreach ($constraints as $constraint) {
            if (!($constraint instanceof Constraint)) {
                $constraint = new IsEqual(
                    $constraint
                );
            }

            $this->constraints[] = $constraint;
        }
    }

    /**
     * Evaluates the constraint for parameter $other
     *
     * If $returnResult is set to false (the default), an exception is thrown
     * in case of a failure. null is returned otherwise.
     *
     * If $returnResult is true, the result of the evaluation is returned as
     * a boolean value instead: true in case of success, false in case of a
     * failure.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function evaluate($other, string $description = '', bool $returnResult = false)
    {
        $success    = true;
        $lastResult = null;

        foreach ($this->constraints as $constraint) {
            $result = $constraint->evaluate($other, $description, true);

            if ($result === $lastResult) {
                $success = false;

                break;
            }

            $lastResult = $result;
        }

        if ($returnResult) {
            return $success;
        }

        if (!$success) {
            $this->fail($other, $description);
        }
    }

    /**
     * Returns a string representation of the constraint.
     */
    public function toString(): string
    {
        $text = '';

        foreach ($this->constraints as $key => $constraint) {
            if ($key > 0) {
                $text .= ' xor ';
            }

            $text .= $constraint->toString();
        }

        return $text;
    }

    /**
     * Counts the number of constraint elements.
     */
    public function count(): int
    {
        $count = 0;

        foreach ($this->constraints as $constraint) {
            $count += \count($constraint);
        }

        return $count;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

/**
 * Constraint that asserts that the value it is evaluated for is of a
 * specified type.
 *
 * The expected value is passed in the constructor.
 */
final class IsType extends Constraint
{
    /**
     * @var string
     */
    public const TYPE_ARRAY = 'array';

    /**
     * @var string
     */
    public const TYPE_BOOL = 'bool';

    /**
     * @var string
     */
    public const TYPE_FLOAT = 'float';

    /**
     * @var string
     */
    public const TYPE_INT = 'int';

    /**
     * @var string
     */
    public const TYPE_NULL = 'null';

    /**
     * @var string
     */
    public const TYPE_NUMERIC = 'numeric';

    /**
     * @var string
     */
    public const TYPE_OBJECT = 'object';

    /**
     * @var string
     */
    public const TYPE_RESOURCE = 'resource';

    /**
     * @var string
     */
    public const TYPE_STRING = 'string';

    /**
     * @var string
     */
    public const TYPE_SCALAR = 'scalar';

    /**
     * @var string
     */
    public const TYPE_CALLABLE = 'callable';

    /**
     * @var string
     */
    public const TYPE_ITERABLE = 'iterable';

    /**
     * @var array<string,bool>
     */
    private const KNOWN_TYPES = [
        'array'    => true,
        'boolean'  => true,
        'bool'     => true,
        'double'   => true,
        'float'    => true,
        'integer'  => true,
        'int'      => true,
        'null'     => true,
        'numeric'  => true,
        'object'   => true,
        'real'     => true,
        'resource' => true,
        'string'   => true,
        'scalar'   => true,
        'callable' => true,
        'iterable' => true,
    ];

    /**
     * @var string
     */
    private $type;

    /**
     * @throws \PHPUnit\Framework\Exception
     */
    public function __construct(string $type)
    {
        if (!isset(self::KNOWN_TYPES[$type])) {
            throw new \PHPUnit\Framework\Exception(
                \sprintf(
                    'Type specified for PHPUnit\Framework\Constraint\IsType <%s> ' .
                    'is not a valid type.',
                    $type
                )
            );
        }

        $this->type = $type;
    }

    /**
     * Returns a string representation of the constraint.
     */
    public function toString(): string
    {
        return \sprintf(
            'is of type "%s"',
            $this->type
        );
    }

    /**
     * Evaluates the constraint for parameter $other. Returns true if the
     * constraint is met, false otherwise.
     *
     * @param mixed $other value or object to evaluate
     */
    protected function matches($other): bool
    {
        switch ($this->type) {
            case 'numeric':
                return \is_numeric($other);

            case 'integer':
            case 'int':
                return \is_int($other);

            case 'double':
            case 'float':
            case 'real':
                return \is_float($other);

            case 'string':
                return \is_string($other);

            case 'boolean':
            case 'bool':
                return \is_bool($other);

            case 'null':
                return null === $other;

            case 'array':
                return \is_array($other);

            case 'object':
                return \is_object($other);

            case 'resource':
                if (\is_resource($other)) {
                    return true;
                }

                try {
                    $resource = @\get_resource_type($other);

                    if (\is_string($resource)) {
                        return true;
                    }
                } catch (\TypeError $e) {
                }

                return false;

            case 'scalar':
                return \is_scalar($other);

            case 'callable':
                return \is_callable($other);

            case 'iterable':
                return \is_iterable($other);
        }
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

use Countable;

/**
 * Constraint that checks whether a variable is empty().
 */
final class IsEmpty extends Constraint
{
    /**
     * Returns a string representation of the constraint.
     */
    public function toString(): string
    {
        return 'is empty';
    }

    /**
     * Evaluates the constraint for parameter $other. Returns true if the
     * constraint is met, false otherwise.
     *
     * @param mixed $other value or object to evaluate
     */
    protected function matches($other): bool
    {
        if ($other instanceof \EmptyIterator) {
            return true;
        }

        if ($other instanceof Countable) {
            return \count($other) === 0;
        }

        return empty($other);
    }

    /**
     * Returns the description of the failure
     *
     * The beginning of failure messages is "Failed asserting that" in most
     * cases. This method should return the second part of that sentence.
     *
     * @param mixed $other evaluated value or object
     */
    protected function failureDescription($other): string
    {
        $type = \gettype($other);

        return \sprintf(
            '%s %s %s',
            \strpos($type, 'a') === 0 || \strpos($type, 'o') === 0 ? 'an' : 'a',
            $type,
            $this->toString()
        );
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

use SplObjectStorage;

/**
 * Constraint that asserts that the Traversable it is applied to contains
 * a given value.
 */
final class TraversableContains extends Constraint
{
    /**
     * @var bool
     */
    private $checkForObjectIdentity;

    /**
     * @var bool
     */
    private $checkForNonObjectIdentity;

    /**
     * @var mixed
     */
    private $value;

    /**
     * @throws \PHPUnit\Framework\Exception
     */
    public function __construct($value, bool $checkForObjectIdentity = true, bool $checkForNonObjectIdentity = false)
    {
        $this->checkForObjectIdentity    = $checkForObjectIdentity;
        $this->checkForNonObjectIdentity = $checkForNonObjectIdentity;
        $this->value                     = $value;
    }

    /**
     * Returns a string representation of the constraint.
     *
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function toString(): string
    {
        if (\is_string($this->value) && \strpos($this->value, "\n") !== false) {
            return 'contains "' . $this->value . '"';
        }

        return 'contains ' . $this->exporter()->export($this->value);
    }

    /**
     * Evaluates the constraint for parameter $other. Returns true if the
     * constraint is met, false otherwise.
     *
     * @param mixed $other value or object to evaluate
     */
    protected function matches($other): bool
    {
        if ($other instanceof SplObjectStorage) {
            return $other->contains($this->value);
        }

        if (\is_object($this->value)) {
            foreach ($other as $element) {
                if ($this->checkForObjectIdentity && $element === $this->value) {
                    return true;
                }

                if (!$this->checkForObjectIdentity && $element == $this->value) {
                    return true;
                }
            }
        } else {
            foreach ($other as $element) {
                if ($this->checkForNonObjectIdentity && $element === $this->value) {
                    return true;
                }

                if (!$this->checkForNonObjectIdentity && $element == $this->value) {
                    return true;
                }
            }
        }

        return false;
    }

    /**
     * Returns the description of the failure
     *
     * The beginning of failure messages is "Failed asserting that" in most
     * cases. This method should return the second part of that sentence.
     *
     * @param mixed $other evaluated value or object
     *
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    protected function failureDescription($other): string
    {
        return \sprintf(
            '%s %s',
            \is_array($other) ? 'an array' : 'a traversable',
            $this->toString()
        );
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

use PHPUnit\Framework\ExpectationFailedException;
use SebastianBergmann\Comparator\ComparisonFailure;
use SebastianBergmann\Comparator\Factory as ComparatorFactory;

/**
 * Constraint that checks if one value is equal to another.
 *
 * Equality is checked with PHP's == operator, the operator is explained in
 * detail at {@url https://php.net/manual/en/types.comparisons.php}.
 * Two values are equal if they have the same value disregarding type.
 *
 * The expected value is passed in the constructor.
 */
final class IsEqual extends Constraint
{
    /**
     * @var mixed
     */
    private $value;

    /**
     * @var float
     */
    private $delta;

    /**
     * @var bool
     */
    private $canonicalize;

    /**
     * @var bool
     */
    private $ignoreCase;

    public function __construct($value, float $delta = 0.0, int $maxDepth = 10, bool $canonicalize = false, bool $ignoreCase = false)
    {
        $this->value        = $value;
        $this->delta        = $delta;
        $this->canonicalize = $canonicalize;
        $this->ignoreCase   = $ignoreCase;
    }

    /**
     * Evaluates the constraint for parameter $other
     *
     * If $returnResult is set to false (the default), an exception is thrown
     * in case of a failure. null is returned otherwise.
     *
     * If $returnResult is true, the result of the evaluation is returned as
     * a boolean value instead: true in case of success, false in case of a
     * failure.
     *
     * @throws ExpectationFailedException
     */
    public function evaluate($other, string $description = '', bool $returnResult = false)
    {
        // If $this->value and $other are identical, they are also equal.
        // This is the most common path and will allow us to skip
        // initialization of all the comparators.
        if ($this->value === $other) {
            return true;
        }

        $comparatorFactory = ComparatorFactory::getInstance();

        try {
            $comparator = $comparatorFactory->getComparatorFor(
                $this->value,
                $other
            );

            $comparator->assertEquals(
                $this->value,
                $other,
                $this->delta,
                $this->canonicalize,
                $this->ignoreCase
            );
        } catch (ComparisonFailure $f) {
            if ($returnResult) {
                return false;
            }

            throw new ExpectationFailedException(
                \trim($description . "\n" . $f->getMessage()),
                $f
            );
        }

        return true;
    }

    /**
     * Returns a string representation of the constraint.
     *
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function toString(): string
    {
        $delta = '';

        if (\is_string($this->value)) {
            if (\strpos($this->value, "\n") !== false) {
                return 'is equal to <text>';
            }

            return \sprintf(
                "is equal to '%s'",
                $this->value
            );
        }

        if ($this->delta != 0) {
            $delta = \sprintf(
                ' with delta <%F>',
                $this->delta
            );
        }

        return \sprintf(
            'is equal to %s%s',
            $this->exporter()->export($this->value),
            $delta
        );
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

use SebastianBergmann\Diff\Differ;

/**
 * ...
 */
final class StringMatchesFormatDescription extends RegularExpression
{
    /**
     * @var string
     */
    private $string;

    public function __construct(string $string)
    {
        parent::__construct(
            $this->createPatternFromFormat(
                $this->convertNewlines($string)
            )
        );

        $this->string = $string;
    }

    /**
     * Evaluates the constraint for parameter $other. Returns true if the
     * constraint is met, false otherwise.
     *
     * @param mixed $other value or object to evaluate
     */
    protected function matches($other): bool
    {
        return parent::matches(
            $this->convertNewlines($other)
        );
    }

    protected function failureDescription($other): string
    {
        return 'string matches format description';
    }

    protected function additionalFailureDescription($other): string
    {
        $from = \explode("\n", $this->string);
        $to   = \explode("\n", $this->convertNewlines($other));

        foreach ($from as $index => $line) {
            if (isset($to[$index]) && $line !== $to[$index]) {
                $line = $this->createPatternFromFormat($line);

                if (\preg_match($line, $to[$index]) > 0) {
                    $from[$index] = $to[$index];
                }
            }
        }

        $this->string = \implode("\n", $from);
        $other        = \implode("\n", $to);

        return (new Differ("--- Expected\n+++ Actual\n"))->diff($this->string, $other);
    }

    private function createPatternFromFormat(string $string): string
    {
        $string = \strtr(
            \preg_quote($string, '/'),
            [
                '%%' => '%',
                '%e' => '\\' . \DIRECTORY_SEPARATOR,
                '%s' => '[^\r\n]+',
                '%S' => '[^\r\n]*',
                '%a' => '.+',
                '%A' => '.*',
                '%w' => '\s*',
                '%i' => '[+-]?\d+',
                '%d' => '\d+',
                '%x' => '[0-9a-fA-F]+',
                '%f' => '[+-]?\.?\d+\.?\d*(?:[Ee][+-]?\d+)?',
                '%c' => '.',
            ]
        );

        return '/^' . $string . '$/s';
    }

    private function convertNewlines($text): string
    {
        return \preg_replace('/\r\n/', "\n", $text);
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

/**
 * Constraint that accepts nan.
 */
final class IsNan extends Constraint
{
    /**
     * Returns a string representation of the constraint.
     */
    public function toString(): string
    {
        return 'is nan';
    }

    /**
     * Evaluates the constraint for parameter $other. Returns true if the
     * constraint is met, false otherwise.
     *
     * @param mixed $other value or object to evaluate
     */
    protected function matches($other): bool
    {
        return \is_nan($other);
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

use PHPUnit\Framework\Exception;
use ReflectionClass;

/**
 * Constraint that asserts that the class it is evaluated for has a given
 * attribute.
 *
 * The attribute name is passed in the constructor.
 */
class ClassHasAttribute extends Constraint
{
    /**
     * @var string
     */
    private $attributeName;

    public function __construct(string $attributeName)
    {
        $this->attributeName = $attributeName;
    }

    /**
     * Returns a string representation of the constraint.
     */
    public function toString(): string
    {
        return \sprintf(
            'has attribute "%s"',
            $this->attributeName
        );
    }

    /**
     * Evaluates the constraint for parameter $other. Returns true if the
     * constraint is met, false otherwise.
     *
     * @param mixed $other value or object to evaluate
     */
    protected function matches($other): bool
    {
        try {
            return (new ReflectionClass($other))->hasProperty($this->attributeName);
        } catch (\ReflectionException $e) {
            throw new Exception(
                $e->getMessage(),
                (int) $e->getCode(),
                $e
            );
        }
    }

    /**
     * Returns the description of the failure
     *
     * The beginning of failure messages is "Failed asserting that" in most
     * cases. This method should return the second part of that sentence.
     *
     * @param mixed $other evaluated value or object
     */
    protected function failureDescription($other): string
    {
        return \sprintf(
            '%sclass "%s" %s',
            \is_object($other) ? 'object of ' : '',
            \is_object($other) ? \get_class($other) : $other,
            $this->toString()
        );
    }

    protected function attributeName(): string
    {
        return $this->attributeName;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

use Countable;
use PHPUnit\Framework\ExpectationFailedException;
use PHPUnit\Framework\SelfDescribing;
use SebastianBergmann\Comparator\ComparisonFailure;
use SebastianBergmann\Exporter\Exporter;

/**
 * Abstract base class for constraints which can be applied to any value.
 */
abstract class Constraint implements Countable, SelfDescribing
{
    /**
     * @var Exporter
     */
    private $exporter;

    /**
     * Evaluates the constraint for parameter $other
     *
     * If $returnResult is set to false (the default), an exception is thrown
     * in case of a failure. null is returned otherwise.
     *
     * If $returnResult is true, the result of the evaluation is returned as
     * a boolean value instead: true in case of success, false in case of a
     * failure.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function evaluate($other, string $description = '', bool $returnResult = false)
    {
        $success = false;

        if ($this->matches($other)) {
            $success = true;
        }

        if ($returnResult) {
            return $success;
        }

        if (!$success) {
            $this->fail($other, $description);
        }
    }

    /**
     * Counts the number of constraint elements.
     */
    public function count(): int
    {
        return 1;
    }

    protected function exporter(): Exporter
    {
        if ($this->exporter === null) {
            $this->exporter = new Exporter;
        }

        return $this->exporter;
    }

    /**
     * Evaluates the constraint for parameter $other. Returns true if the
     * constraint is met, false otherwise.
     *
     * This method can be overridden to implement the evaluation algorithm.
     *
     * @param mixed $other value or object to evaluate
     * @codeCoverageIgnore
     */
    protected function matches($other): bool
    {
        return false;
    }

    /**
     * Throws an exception for the given compared value and test description
     *
     * @param mixed             $other             evaluated value or object
     * @param string            $description       Additional information about the test
     * @param ComparisonFailure $comparisonFailure
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    protected function fail($other, $description, ComparisonFailure $comparisonFailure = null): void
    {
        $failureDescription = \sprintf(
            'Failed asserting that %s.',
            $this->failureDescription($other)
        );

        $additionalFailureDescription = $this->additionalFailureDescription($other);

        if ($additionalFailureDescription) {
            $failureDescription .= "\n" . $additionalFailureDescription;
        }

        if (!empty($description)) {
            $failureDescription = $description . "\n" . $failureDescription;
        }

        throw new ExpectationFailedException(
            $failureDescription,
            $comparisonFailure
        );
    }

    /**
     * Return additional failure description where needed
     *
     * The function can be overridden to provide additional failure
     * information like a diff
     *
     * @param mixed $other evaluated value or object
     */
    protected function additionalFailureDescription($other): string
    {
        return '';
    }

    /**
     * Returns the description of the failure
     *
     * The beginning of failure messages is "Failed asserting that" in most
     * cases. This method should return the second part of that sentence.
     *
     * To provide additional failure information additionalFailureDescription
     * can be used.
     *
     * @param mixed $other evaluated value or object
     *
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    protected function failureDescription($other): string
    {
        return $this->exporter()->export($other) . ' ' . $this->toString();
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

use Countable;
use Generator;
use Iterator;
use IteratorAggregate;
use Traversable;

class Count extends Constraint
{
    /**
     * @var int
     */
    private $expectedCount;

    public function __construct(int $expected)
    {
        $this->expectedCount = $expected;
    }

    public function toString(): string
    {
        return \sprintf(
            'count matches %d',
            $this->expectedCount
        );
    }

    /**
     * Evaluates the constraint for parameter $other. Returns true if the
     * constraint is met, false otherwise.
     */
    protected function matches($other): bool
    {
        return $this->expectedCount === $this->getCountOf($other);
    }

    /**
     * @param iterable $other
     */
    protected function getCountOf($other): ?int
    {
        if ($other instanceof \EmptyIterator) {
            return 0;
        }

        if ($other instanceof Countable || \is_array($other)) {
            return \count($other);
        }

        if ($other instanceof Traversable) {
            while ($other instanceof IteratorAggregate) {
                $other = $other->getIterator();
            }

            $iterator = $other;

            if ($iterator instanceof Generator) {
                return $this->getCountOfGenerator($iterator);
            }

            if (!$iterator instanceof Iterator) {
                return \iterator_count($iterator);
            }

            $key   = $iterator->key();
            $count = \iterator_count($iterator);

            // Manually rewind $iterator to previous key, since iterator_count
            // moves pointer.
            if ($key !== null) {
                $iterator->rewind();

                while ($iterator->valid() && $key !== $iterator->key()) {
                    $iterator->next();
                }
            }

            return $count;
        }

        return null;
    }

    /**
     * Returns the total number of iterations from a generator.
     * This will fully exhaust the generator.
     */
    protected function getCountOfGenerator(Generator $generator): int
    {
        for ($count = 0; $generator->valid(); $generator->next()) {
            ++$count;
        }

        return $count;
    }

    /**
     * Returns the description of the failure.
     *
     * The beginning of failure messages is "Failed asserting that" in most
     * cases. This method should return the second part of that sentence.
     *
     * @param mixed $other evaluated value or object
     */
    protected function failureDescription($other): string
    {
        return \sprintf(
            'actual size %d matches expected size %d',
            $this->getCountOf($other),
            $this->expectedCount
        );
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

use ReflectionObject;

/**
 * Constraint that asserts that the object it is evaluated for has a given
 * attribute.
 *
 * The attribute name is passed in the constructor.
 */
final class ObjectHasAttribute extends ClassHasAttribute
{
    /**
     * Evaluates the constraint for parameter $other. Returns true if the
     * constraint is met, false otherwise.
     *
     * @param mixed $other value or object to evaluate
     */
    protected function matches($other): bool
    {
        return (new ReflectionObject($other))->hasProperty($this->attributeName());
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

/**
 * Constraint that accepts infinite.
 */
final class IsInfinite extends Constraint
{
    /**
     * Returns a string representation of the constraint.
     */
    public function toString(): string
    {
        return 'is infinite';
    }

    /**
     * Evaluates the constraint for parameter $other. Returns true if the
     * constraint is met, false otherwise.
     *
     * @param mixed $other value or object to evaluate
     */
    protected function matches($other): bool
    {
        return \is_infinite($other);
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

/**
 * Constraint that asserts that the string it is evaluated for contains
 * a given string.
 *
 * Uses mb_strpos() to find the position of the string in the input, if not
 * found the evaluation fails.
 *
 * The sub-string is passed in the constructor.
 */
final class StringContains extends Constraint
{
    /**
     * @var string
     */
    private $string;

    /**
     * @var bool
     */
    private $ignoreCase;

    public function __construct(string $string, bool $ignoreCase = false)
    {
        $this->string     = $string;
        $this->ignoreCase = $ignoreCase;
    }

    /**
     * Returns a string representation of the constraint.
     */
    public function toString(): string
    {
        if ($this->ignoreCase) {
            $string = \mb_strtolower($this->string);
        } else {
            $string = $this->string;
        }

        return \sprintf(
            'contains "%s"',
            $string
        );
    }

    /**
     * Evaluates the constraint for parameter $other. Returns true if the
     * constraint is met, false otherwise.
     *
     * @param mixed $other value or object to evaluate
     */
    protected function matches($other): bool
    {
        if ('' === $this->string) {
            return true;
        }

        if ($this->ignoreCase) {
            return \mb_stripos($other, $this->string) !== false;
        }

        return \mb_strpos($other, $this->string) !== false;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

use PHPUnit\Framework\ExpectationFailedException;
use SebastianBergmann\Comparator\ComparisonFailure;

/**
 * Constraint that asserts that one value is identical to another.
 *
 * Identical check is performed with PHP's === operator, the operator is
 * explained in detail at
 * {@url https://php.net/manual/en/types.comparisons.php}.
 * Two values are identical if they have the same value and are of the same
 * type.
 *
 * The expected value is passed in the constructor.
 */
final class IsIdentical extends Constraint
{
    /**
     * @var float
     */
    private const EPSILON = 0.0000000001;

    /**
     * @var mixed
     */
    private $value;

    public function __construct($value)
    {
        $this->value = $value;
    }

    /**
     * Evaluates the constraint for parameter $other
     *
     * If $returnResult is set to false (the default), an exception is thrown
     * in case of a failure. null is returned otherwise.
     *
     * If $returnResult is true, the result of the evaluation is returned as
     * a boolean value instead: true in case of success, false in case of a
     * failure.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function evaluate($other, string $description = '', bool $returnResult = false)
    {
        if (\is_float($this->value) && \is_float($other) &&
            !\is_infinite($this->value) && !\is_infinite($other) &&
            !\is_nan($this->value) && !\is_nan($other)) {
            $success = \abs($this->value - $other) < self::EPSILON;
        } else {
            $success = $this->value === $other;
        }

        if ($returnResult) {
            return $success;
        }

        if (!$success) {
            $f = null;

            // if both values are strings, make sure a diff is generated
            if (\is_string($this->value) && \is_string($other)) {
                $f = new ComparisonFailure(
                    $this->value,
                    $other,
                    \sprintf("'%s'", $this->value),
                    \sprintf("'%s'", $other)
                );
            }

            // if both values are array, make sure a diff is generated
            if (\is_array($this->value) && \is_array($other)) {
                $f = new ComparisonFailure(
                    $this->value,
                    $other,
                    $this->exporter()->export($this->value),
                    $this->exporter()->export($other)
                );
            }

            $this->fail($other, $description, $f);
        }
    }

    /**
     * Returns a string representation of the constraint.
     *
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function toString(): string
    {
        if (\is_object($this->value)) {
            return 'is identical to an object of class "' .
                \get_class($this->value) . '"';
        }

        return 'is identical to ' . $this->exporter()->export($this->value);
    }

    /**
     * Returns the description of the failure
     *
     * The beginning of failure messages is "Failed asserting that" in most
     * cases. This method should return the second part of that sentence.
     *
     * @param mixed $other evaluated value or object
     *
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    protected function failureDescription($other): string
    {
        if (\is_object($this->value) && \is_object($other)) {
            return 'two variables reference the same object';
        }

        if (\is_string($this->value) && \is_string($other)) {
            return 'two strings are identical';
        }

        if (\is_array($this->value) && \is_array($other)) {
            return 'two arrays are identical';
        }

        return parent::failureDescription($other);
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

/**
 * Provides human readable messages for each JSON error.
 */
final class JsonMatchesErrorMessageProvider
{
    /**
     * Translates JSON error to a human readable string.
     */
    public static function determineJsonError(string $error, string $prefix = ''): ?string
    {
        switch ($error) {
            case \JSON_ERROR_NONE:
                return null;
            case \JSON_ERROR_DEPTH:
                return $prefix . 'Maximum stack depth exceeded';
            case \JSON_ERROR_STATE_MISMATCH:
                return $prefix . 'Underflow or the modes mismatch';
            case \JSON_ERROR_CTRL_CHAR:
                return $prefix . 'Unexpected control character found';
            case \JSON_ERROR_SYNTAX:
                return $prefix . 'Syntax error, malformed JSON';
            case \JSON_ERROR_UTF8:
                return $prefix . 'Malformed UTF-8 characters, possibly incorrectly encoded';
            default:
                return $prefix . 'Unknown error';
        }
    }

    /**
     * Translates a given type to a human readable message prefix.
     */
    public static function translateTypeToPrefix(string $type): string
    {
        switch (\strtolower($type)) {
            case 'expected':
                $prefix = 'Expected value JSON decode error - ';

                break;
            case 'actual':
                $prefix = 'Actual value JSON decode error - ';

                break;
            default:
                $prefix = '';

                break;
        }

        return $prefix;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

/**
 * Constraint that accepts null.
 */
final class IsNull extends Constraint
{
    /**
     * Returns a string representation of the constraint.
     */
    public function toString(): string
    {
        return 'is null';
    }

    /**
     * Evaluates the constraint for parameter $other. Returns true if the
     * constraint is met, false otherwise.
     *
     * @param mixed $other value or object to evaluate
     */
    protected function matches($other): bool
    {
        return $other === null;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

use PHPUnit\Framework\ExpectationFailedException;
use SebastianBergmann\Comparator\ComparisonFailure;

/**
 * Constraint that asserts that the array it is evaluated for has a specified subset.
 *
 * Uses array_replace_recursive() to check if a key value subset is part of the
 * subject array.
 *
 * @codeCoverageIgnore
 *
 * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3494
 */
final class ArraySubset extends Constraint
{
    /**
     * @var iterable
     */
    private $subset;

    /**
     * @var bool
     */
    private $strict;

    public function __construct(iterable $subset, bool $strict = false)
    {
        $this->strict = $strict;
        $this->subset = $subset;
    }

    /**
     * Evaluates the constraint for parameter $other
     *
     * If $returnResult is set to false (the default), an exception is thrown
     * in case of a failure. null is returned otherwise.
     *
     * If $returnResult is true, the result of the evaluation is returned as
     * a boolean value instead: true in case of success, false in case of a
     * failure.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function evaluate($other, string $description = '', bool $returnResult = false)
    {
        //type cast $other & $this->subset as an array to allow
        //support in standard array functions.
        $other        = $this->toArray($other);
        $this->subset = $this->toArray($this->subset);

        $patched = \array_replace_recursive($other, $this->subset);

        if ($this->strict) {
            $result = $other === $patched;
        } else {
            $result = $other == $patched;
        }

        if ($returnResult) {
            return $result;
        }

        if (!$result) {
            $f = new ComparisonFailure(
                $patched,
                $other,
                \var_export($patched, true),
                \var_export($other, true)
            );

            $this->fail($other, $description, $f);
        }
    }

    /**
     * Returns a string representation of the constraint.
     *
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function toString(): string
    {
        return 'has the subset ' . $this->exporter()->export($this->subset);
    }

    /**
     * Returns the description of the failure
     *
     * The beginning of failure messages is "Failed asserting that" in most
     * cases. This method should return the second part of that sentence.
     *
     * @param mixed $other evaluated value or object
     *
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    protected function failureDescription($other): string
    {
        return 'an array ' . $this->toString();
    }

    private function toArray(iterable $other): array
    {
        if (\is_array($other)) {
            return $other;
        }

        if ($other instanceof \ArrayObject) {
            return $other->getArrayCopy();
        }

        if ($other instanceof \Traversable) {
            return \iterator_to_array($other);
        }

        // Keep BC even if we know that array would not be the expected one
        return (array) $other;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

final class SameSize extends Count
{
    public function __construct(iterable $expected)
    {
        parent::__construct($this->getCountOf($expected));
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

use PHPUnit\Util\Filter;
use Throwable;

final class Exception extends Constraint
{
    /**
     * @var string
     */
    private $className;

    public function __construct(string $className)
    {
        $this->className = $className;
    }

    /**
     * Returns a string representation of the constraint.
     */
    public function toString(): string
    {
        return \sprintf(
            'exception of type "%s"',
            $this->className
        );
    }

    /**
     * Evaluates the constraint for parameter $other. Returns true if the
     * constraint is met, false otherwise.
     *
     * @param mixed $other value or object to evaluate
     */
    protected function matches($other): bool
    {
        return $other instanceof $this->className;
    }

    /**
     * Returns the description of the failure
     *
     * The beginning of failure messages is "Failed asserting that" in most
     * cases. This method should return the second part of that sentence.
     *
     * @param mixed $other evaluated value or object
     */
    protected function failureDescription($other): string
    {
        if ($other !== null) {
            $message = '';

            if ($other instanceof Throwable) {
                $message = '. Message was: "' . $other->getMessage() . '" at'
                    . "\n" . Filter::getFilteredStacktrace($other);
            }

            return \sprintf(
                'exception of type "%s" matches expected exception "%s"%s',
                \get_class($other),
                $this->className,
                $message
            );
        }

        return \sprintf(
            'exception of type "%s" is thrown',
            $this->className
        );
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

/**
 * Constraint that checks if the file/dir(name) that it is evaluated for is writable.
 *
 * The file path to check is passed as $other in evaluate().
 */
final class IsWritable extends Constraint
{
    /**
     * Returns a string representation of the constraint.
     */
    public function toString(): string
    {
        return 'is writable';
    }

    /**
     * Evaluates the constraint for parameter $other. Returns true if the
     * constraint is met, false otherwise.
     *
     * @param mixed $other value or object to evaluate
     */
    protected function matches($other): bool
    {
        return \is_writable($other);
    }

    /**
     * Returns the description of the failure
     *
     * The beginning of failure messages is "Failed asserting that" in most
     * cases. This method should return the second part of that sentence.
     *
     * @param mixed $other evaluated value or object
     */
    protected function failureDescription($other): string
    {
        return \sprintf(
            '"%s" is writable',
            $other
        );
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

final class ExceptionCode extends Constraint
{
    /**
     * @var int|string
     */
    private $expectedCode;

    /**
     * @param int|string $expected
     */
    public function __construct($expected)
    {
        $this->expectedCode = $expected;
    }

    public function toString(): string
    {
        return 'exception code is ';
    }

    /**
     * Evaluates the constraint for parameter $other. Returns true if the
     * constraint is met, false otherwise.
     *
     * @param \Throwable $other
     */
    protected function matches($other): bool
    {
        return (string) $other->getCode() === (string) $this->expectedCode;
    }

    /**
     * Returns the description of the failure
     *
     * The beginning of failure messages is "Failed asserting that" in most
     * cases. This method should return the second part of that sentence.
     *
     * @param mixed $other evaluated value or object
     *
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    protected function failureDescription($other): string
    {
        return \sprintf(
            '%s is equal to expected exception code %s',
            $this->exporter()->export($other->getCode()),
            $this->exporter()->export($this->expectedCode)
        );
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

/**
 * Constraint that evaluates against a specified closure.
 */
final class Callback extends Constraint
{
    /**
     * @var callable
     */
    private $callback;

    public function __construct(callable $callback)
    {
        $this->callback = $callback;
    }

    /**
     * Returns a string representation of the constraint.
     */
    public function toString(): string
    {
        return 'is accepted by specified callback';
    }

    /**
     * Evaluates the constraint for parameter $value. Returns true if the
     * constraint is met, false otherwise.
     *
     * @param mixed $other value or object to evaluate
     */
    protected function matches($other): bool
    {
        return \call_user_func($this->callback, $other);
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

use PHPUnit\Framework\ExpectationFailedException;

/**
 * Logical NOT.
 */
final class LogicalNot extends Constraint
{
    /**
     * @var Constraint
     */
    private $constraint;

    public static function negate(string $string): string
    {
        $positives = [
            'contains ',
            'exists',
            'has ',
            'is ',
            'are ',
            'matches ',
            'starts with ',
            'ends with ',
            'reference ',
            'not not ',
        ];

        $negatives = [
            'does not contain ',
            'does not exist',
            'does not have ',
            'is not ',
            'are not ',
            'does not match ',
            'starts not with ',
            'ends not with ',
            'don\'t reference ',
            'not ',
        ];

        \preg_match('/(\'[\w\W]*\')([\w\W]*)("[\w\W]*")/i', $string, $matches);

        if (\count($matches) > 0) {
            $nonInput = $matches[2];

            $negatedString = \str_replace(
                $nonInput,
                \str_replace(
                    $positives,
                    $negatives,
                    $nonInput
                ),
                $string
            );
        } else {
            $negatedString = \str_replace(
                $positives,
                $negatives,
                $string
            );
        }

        return $negatedString;
    }

    /**
     * @param Constraint|mixed $constraint
     */
    public function __construct($constraint)
    {
        if (!($constraint instanceof Constraint)) {
            $constraint = new IsEqual($constraint);
        }

        $this->constraint = $constraint;
    }

    /**
     * Evaluates the constraint for parameter $other
     *
     * If $returnResult is set to false (the default), an exception is thrown
     * in case of a failure. null is returned otherwise.
     *
     * If $returnResult is true, the result of the evaluation is returned as
     * a boolean value instead: true in case of success, false in case of a
     * failure.
     *
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function evaluate($other, string $description = '', bool $returnResult = false)
    {
        $success = !$this->constraint->evaluate($other, $description, true);

        if ($returnResult) {
            return $success;
        }

        if (!$success) {
            $this->fail($other, $description);
        }
    }

    /**
     * Returns a string representation of the constraint.
     */
    public function toString(): string
    {
        switch (\get_class($this->constraint)) {
            case LogicalAnd::class:
            case self::class:
            case LogicalOr::class:
                return 'not( ' . $this->constraint->toString() . ' )';

            default:
                return self::negate(
                    $this->constraint->toString()
                );
        }
    }

    /**
     * Counts the number of constraint elements.
     */
    public function count(): int
    {
        return \count($this->constraint);
    }

    /**
     * Returns the description of the failure
     *
     * The beginning of failure messages is "Failed asserting that" in most
     * cases. This method should return the second part of that sentence.
     *
     * @param mixed $other evaluated value or object
     *
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    protected function failureDescription($other): string
    {
        switch (\get_class($this->constraint)) {
            case LogicalAnd::class:
            case self::class:
            case LogicalOr::class:
                return 'not( ' . $this->constraint->failureDescription($other) . ' )';

            default:
                return self::negate(
                    $this->constraint->failureDescription($other)
                );
        }
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

/**
 * Constraint that asserts that the value it is evaluated for is greater
 * than a given value.
 */
final class GreaterThan extends Constraint
{
    /**
     * @var float|int
     */
    private $value;

    /**
     * @param float|int $value
     */
    public function __construct($value)
    {
        $this->value = $value;
    }

    /**
     * Returns a string representation of the constraint.
     *
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function toString(): string
    {
        return 'is greater than ' . $this->exporter()->export($this->value);
    }

    /**
     * Evaluates the constraint for parameter $other. Returns true if the
     * constraint is met, false otherwise.
     *
     * @param mixed $other value or object to evaluate
     */
    protected function matches($other): bool
    {
        return $this->value < $other;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

/**
 * Constraint that asserts that the string it is evaluated for ends with a given
 * suffix.
 */
final class StringEndsWith extends Constraint
{
    /**
     * @var string
     */
    private $suffix;

    public function __construct(string $suffix)
    {
        $this->suffix = $suffix;
    }

    /**
     * Returns a string representation of the constraint.
     */
    public function toString(): string
    {
        return 'ends with "' . $this->suffix . '"';
    }

    /**
     * Evaluates the constraint for parameter $other. Returns true if the
     * constraint is met, false otherwise.
     *
     * @param mixed $other value or object to evaluate
     */
    protected function matches($other): bool
    {
        return \substr($other, 0 - \strlen($this->suffix)) === $this->suffix;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

/**
 * Constraint that accepts finite.
 */
final class IsFinite extends Constraint
{
    /**
     * Returns a string representation of the constraint.
     */
    public function toString(): string
    {
        return 'is finite';
    }

    /**
     * Evaluates the constraint for parameter $other. Returns true if the
     * constraint is met, false otherwise.
     *
     * @param mixed $other value or object to evaluate
     */
    protected function matches($other): bool
    {
        return \is_finite($other);
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework\Constraint;

/**
 * Constraint that checks if the file(name) that it is evaluated for exists.
 *
 * The file path to check is passed as $other in evaluate().
 */
final class FileExists extends Constraint
{
    /**
     * Returns a string representation of the constraint.
     */
    public function toString(): string
    {
        return 'file exists';
    }

    /**
     * Evaluates the constraint for parameter $other. Returns true if the
     * constraint is met, false otherwise.
     *
     * @param mixed $other value or object to evaluate
     */
    protected function matches($other): bool
    {
        return \file_exists($other);
    }

    /**
     * Returns the description of the failure
     *
     * The beginning of failure messages is "Failed asserting that" in most
     * cases. This method should return the second part of that sentence.
     *
     * @param mixed $other evaluated value or object
     */
    protected function failureDescription($other): string
    {
        return \sprintf(
            'file "%s" exists',
            $other
        );
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class IncompleteTestCase extends TestCase
{
    /**
     * @var bool
     */
    protected $backupGlobals = false;

    /**
     * @var bool
     */
    protected $backupStaticAttributes = false;

    /**
     * @var bool
     */
    protected $runTestInSeparateProcess = false;

    /**
     * @var bool
     */
    protected $useErrorHandler = false;

    /**
     * @var string
     */
    private $message;

    public function __construct(string $className, string $methodName, string $message = '')
    {
        parent::__construct($className . '::' . $methodName);

        $this->message = $message;
    }

    public function getMessage(): string
    {
        return $this->message;
    }

    /**
     * Returns a string representation of the test case.
     *
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function toString(): string
    {
        return $this->getName();
    }

    /**
     * @throws Exception
     */
    protected function runTest(): void
    {
        $this->markTestIncomplete($this->message);
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework;

use PHPUnit\Framework\Error\Error;
use Throwable;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class TestFailure
{
    /**
     * @var null|Test
     */
    private $failedTest;

    /**
     * @var Throwable
     */
    private $thrownException;

    /**
     * @var string
     */
    private $testName;

    /**
     * Returns a description for an exception.
     */
    public static function exceptionToString(Throwable $e): string
    {
        if ($e instanceof SelfDescribing) {
            $buffer = $e->toString();

            if ($e instanceof ExpectationFailedException && $e->getComparisonFailure()) {
                $buffer .= $e->getComparisonFailure()->getDiff();
            }

            if ($e instanceof PHPTAssertionFailedError) {
                $buffer .= $e->getDiff();
            }

            if (!empty($buffer)) {
                $buffer = \trim($buffer) . "\n";
            }

            return $buffer;
        }

        if ($e instanceof Error) {
            return $e->getMessage() . "\n";
        }

        if ($e instanceof ExceptionWrapper) {
            return $e->getClassName() . ': ' . $e->getMessage() . "\n";
        }

        return \get_class($e) . ': ' . $e->getMessage() . "\n";
    }

    /**
     * Constructs a TestFailure with the given test and exception.
     *
     * @param Throwable $t
     */
    public function __construct(Test $failedTest, $t)
    {
        if ($failedTest instanceof SelfDescribing) {
            $this->testName = $failedTest->toString();
        } else {
            $this->testName = \get_class($failedTest);
        }

        if (!$failedTest instanceof TestCase || !$failedTest->isInIsolation()) {
            $this->failedTest = $failedTest;
        }

        $this->thrownException = $t;
    }

    /**
     * Returns a short description of the failure.
     */
    public function toString(): string
    {
        return \sprintf(
            '%s: %s',
            $this->testName,
            $this->thrownException->getMessage()
        );
    }

    /**
     * Returns a description for the thrown exception.
     */
    public function getExceptionAsString(): string
    {
        return self::exceptionToString($this->thrownException);
    }

    /**
     * Returns the name of the failing test (including data set, if any).
     */
    public function getTestName(): string
    {
        return $this->testName;
    }

    /**
     * Returns the failing test.
     *
     * Note: The test object is not set when the test is executed in process
     * isolation.
     *
     * @see Exception
     */
    public function failedTest(): ?Test
    {
        return $this->failedTest;
    }

    /**
     * Gets the thrown exception.
     */
    public function thrownException(): Throwable
    {
        return $this->thrownException;
    }

    /**
     * Returns the exception's message.
     */
    public function exceptionMessage(): string
    {
        return $this->thrownException()->getMessage();
    }

    /**
     * Returns true if the thrown exception
     * is of type AssertionFailedError.
     */
    public function isFailure(): bool
    {
        return $this->thrownException() instanceof AssertionFailedError;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Framework;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class SkippedTestCase extends TestCase
{
    /**
     * @var bool
     */
    protected $backupGlobals = false;

    /**
     * @var bool
     */
    protected $backupStaticAttributes = false;

    /**
     * @var bool
     */
    protected $runTestInSeparateProcess = false;

    /**
     * @var bool
     */
    protected $useErrorHandler = false;

    /**
     * @var string
     */
    private $message;

    public function __construct(string $className, string $methodName, string $message = '')
    {
        parent::__construct($className . '::' . $methodName);

        $this->message = $message;
    }

    public function getMessage(): string
    {
        return $this->message;
    }

    /**
     * Returns a string representation of the test case.
     *
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function toString(): string
    {
        return $this->getName();
    }

    /**
     * @throws Exception
     */
    protected function runTest(): void
    {
        $this->markTestSkipped($this->message);
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Runner;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
interface TestResultCache
{
    public function setState(string $testName, int $state): void;

    public function getState(string $testName): int;

    public function setTime(string $testName, float $time): void;

    public function getTime(string $testName): float;

    public function load(): void;

    public function persist(): void;
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Runner;

use PHPUnit\Framework\Exception;
use PHPUnit\Framework\Test;
use PHPUnit\Framework\TestSuite;
use SebastianBergmann\FileIterator\Facade as FileIteratorFacade;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
abstract class BaseTestRunner
{
    /**
     * @var int
     */
    public const STATUS_UNKNOWN    = -1;

    /**
     * @var int
     */
    public const STATUS_PASSED     = 0;

    /**
     * @var int
     */
    public const STATUS_SKIPPED    = 1;

    /**
     * @var int
     */
    public const STATUS_INCOMPLETE = 2;

    /**
     * @var int
     */
    public const STATUS_FAILURE    = 3;

    /**
     * @var int
     */
    public const STATUS_ERROR      = 4;

    /**
     * @var int
     */
    public const STATUS_RISKY      = 5;

    /**
     * @var int
     */
    public const STATUS_WARNING    = 6;

    /**
     * @var string
     */
    public const SUITE_METHODNAME  = 'suite';

    /**
     * Returns the loader to be used.
     */
    public function getLoader(): TestSuiteLoader
    {
        return new StandardTestSuiteLoader;
    }

    /**
     * Returns the Test corresponding to the given suite.
     * This is a template method, subclasses override
     * the runFailed() and clearStatus() methods.
     *
     * @param string|string[] $suffixes
     *
     * @throws Exception
     */
    public function getTest(string $suiteClassName, string $suiteClassFile = '', $suffixes = ''): ?Test
    {
        if (empty($suiteClassFile) && \is_dir($suiteClassName) && !\is_file($suiteClassName . '.php')) {
            /** @var string[] $files */
            $files = (new FileIteratorFacade)->getFilesAsArray(
                $suiteClassName,
                $suffixes
            );

            $suite = new TestSuite($suiteClassName);
            $suite->addTestFiles($files);

            return $suite;
        }

        try {
            $testClass = $this->loadSuiteClass(
                $suiteClassName,
                $suiteClassFile
            );
        } catch (Exception $e) {
            $this->runFailed($e->getMessage());

            return null;
        }

        try {
            $suiteMethod = $testClass->getMethod(self::SUITE_METHODNAME);

            if (!$suiteMethod->isStatic()) {
                $this->runFailed(
                    'suite() method must be static.'
                );

                return null;
            }

            $test = $suiteMethod->invoke(null, $testClass->getName());
        } catch (\ReflectionException $e) {
            try {
                $test = new TestSuite($testClass);
            } catch (Exception $e) {
                $test = new TestSuite;
                $test->setName($suiteClassName);
            }
        }

        $this->clearStatus();

        return $test;
    }

    /**
     * Returns the loaded ReflectionClass for a suite name.
     */
    protected function loadSuiteClass(string $suiteClassName, string $suiteClassFile = ''): \ReflectionClass
    {
        return $this->getLoader()->load($suiteClassName, $suiteClassFile);
    }

    /**
     * Clears the status message.
     */
    protected function clearStatus(): void
    {
    }

    /**
     * Override to define how to handle a failed loading of
     * a test suite.
     */
    abstract protected function runFailed(string $message): void;
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Runner;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class ResultCacheExtension implements AfterIncompleteTestHook, AfterLastTestHook, AfterRiskyTestHook, AfterSkippedTestHook, AfterSuccessfulTestHook, AfterTestErrorHook, AfterTestFailureHook, AfterTestWarningHook
{
    /**
     * @var TestResultCache
     */
    private $cache;

    public function __construct(TestResultCache $cache)
    {
        $this->cache = $cache;
    }

    public function flush(): void
    {
        $this->cache->persist();
    }

    public function executeAfterSuccessfulTest(string $test, float $time): void
    {
        $testName = $this->getTestName($test);

        $this->cache->setTime($testName, \round($time, 3));
    }

    public function executeAfterIncompleteTest(string $test, string $message, float $time): void
    {
        $testName = $this->getTestName($test);

        $this->cache->setTime($testName, \round($time, 3));
        $this->cache->setState($testName, BaseTestRunner::STATUS_INCOMPLETE);
    }

    public function executeAfterRiskyTest(string $test, string $message, float $time): void
    {
        $testName = $this->getTestName($test);

        $this->cache->setTime($testName, \round($time, 3));
        $this->cache->setState($testName, BaseTestRunner::STATUS_RISKY);
    }

    public function executeAfterSkippedTest(string $test, string $message, float $time): void
    {
        $testName = $this->getTestName($test);

        $this->cache->setTime($testName, \round($time, 3));
        $this->cache->setState($testName, BaseTestRunner::STATUS_SKIPPED);
    }

    public function executeAfterTestError(string $test, string $message, float $time): void
    {
        $testName = $this->getTestName($test);

        $this->cache->setTime($testName, \round($time, 3));
        $this->cache->setState($testName, BaseTestRunner::STATUS_ERROR);
    }

    public function executeAfterTestFailure(string $test, string $message, float $time): void
    {
        $testName = $this->getTestName($test);

        $this->cache->setTime($testName, \round($time, 3));
        $this->cache->setState($testName, BaseTestRunner::STATUS_FAILURE);
    }

    public function executeAfterTestWarning(string $test, string $message, float $time): void
    {
        $testName = $this->getTestName($test);

        $this->cache->setTime($testName, \round($time, 3));
        $this->cache->setState($testName, BaseTestRunner::STATUS_WARNING);
    }

    public function executeAfterLastTest(): void
    {
        $this->flush();
    }

    /**
     * @param string $test A long description format of the current test
     *
     * @return string The test name without TestSuiteClassName:: and @dataprovider details
     */
    private function getTestName(string $test): string
    {
        $matches = [];

        if (\preg_match('/^(?<name>\S+::\S+)(?:(?<dataname> with data set (?:#\d+|"[^"]+"))\s\()?/', $test, $matches)) {
            $test = $matches['name'] . ($matches['dataname'] ?? '');
        }

        return $test;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Runner;

use PHPUnit\Framework\Assert;
use PHPUnit\Framework\AssertionFailedError;
use PHPUnit\Framework\ExpectationFailedException;
use PHPUnit\Framework\IncompleteTestError;
use PHPUnit\Framework\PHPTAssertionFailedError;
use PHPUnit\Framework\SelfDescribing;
use PHPUnit\Framework\SkippedTestError;
use PHPUnit\Framework\SyntheticSkippedError;
use PHPUnit\Framework\Test;
use PHPUnit\Framework\TestResult;
use PHPUnit\Util\PHP\AbstractPhpProcess;
use SebastianBergmann\Timer\Timer;
use Text_Template;
use Throwable;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class PhptTestCase implements SelfDescribing, Test
{
    /**
     * @var string[]
     */
    private const SETTINGS = [
        'allow_url_fopen=1',
        'auto_append_file=',
        'auto_prepend_file=',
        'disable_functions=',
        'display_errors=1',
        'docref_root=',
        'docref_ext=.html',
        'error_append_string=',
        'error_prepend_string=',
        'error_reporting=-1',
        'html_errors=0',
        'log_errors=0',
        'magic_quotes_runtime=0',
        'output_handler=',
        'open_basedir=',
        'output_buffering=Off',
        'report_memleaks=0',
        'report_zend_debug=0',
        'safe_mode=0',
        'xdebug.default_enable=0',
    ];

    /**
     * @var string
     */
    private $filename;

    /**
     * @var AbstractPhpProcess
     */
    private $phpUtil;

    /**
     * @var string
     */
    private $output = '';

    /**
     * Constructs a test case with the given filename.
     *
     * @throws Exception
     */
    public function __construct(string $filename, AbstractPhpProcess $phpUtil = null)
    {
        if (!\is_file($filename)) {
            throw new Exception(
                \sprintf(
                    'File "%s" does not exist.',
                    $filename
                )
            );
        }

        $this->filename = $filename;
        $this->phpUtil  = $phpUtil ?: AbstractPhpProcess::factory();
    }

    /**
     * Counts the number of test cases executed by run(TestResult result).
     */
    public function count(): int
    {
        return 1;
    }

    /**
     * Runs a test and collects its result in a TestResult instance.
     *
     * @throws Exception
     * @throws \SebastianBergmann\CodeCoverage\CoveredCodeNotExecutedException
     * @throws \SebastianBergmann\CodeCoverage\InvalidArgumentException
     * @throws \SebastianBergmann\CodeCoverage\MissingCoversAnnotationException
     * @throws \SebastianBergmann\CodeCoverage\RuntimeException
     * @throws \SebastianBergmann\CodeCoverage\UnintentionallyCoveredCodeException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function run(TestResult $result = null): TestResult
    {
        if ($result === null) {
            $result = new TestResult;
        }

        try {
            $sections = $this->parse();
        } catch (Exception $e) {
            $result->startTest($this);
            $result->addFailure($this, new SkippedTestError($e->getMessage()), 0);
            $result->endTest($this, 0);

            return $result;
        }

        $code     = $this->render($sections['FILE']);
        $xfail    = false;
        $settings = $this->parseIniSection(self::SETTINGS);

        $result->startTest($this);

        if (isset($sections['INI'])) {
            $settings = $this->parseIniSection($sections['INI'], $settings);
        }

        if (isset($sections['ENV'])) {
            $env = $this->parseEnvSection($sections['ENV']);
            $this->phpUtil->setEnv($env);
        }

        $this->phpUtil->setUseStderrRedirection(true);

        if ($result->enforcesTimeLimit()) {
            $this->phpUtil->setTimeout($result->getTimeoutForLargeTests());
        }

        $skip = $this->runSkip($sections, $result, $settings);

        if ($skip) {
            return $result;
        }

        if (isset($sections['XFAIL'])) {
            $xfail = \trim($sections['XFAIL']);
        }

        if (isset($sections['STDIN'])) {
            $this->phpUtil->setStdin($sections['STDIN']);
        }

        if (isset($sections['ARGS'])) {
            $this->phpUtil->setArgs($sections['ARGS']);
        }

        if ($result->getCollectCodeCoverageInformation()) {
            $this->renderForCoverage($code);
        }

        Timer::start();

        $jobResult    = $this->phpUtil->runJob($code, $this->stringifyIni($settings));
        $time         = Timer::stop();
        $this->output = $jobResult['stdout'] ?? '';

        if ($result->getCollectCodeCoverageInformation() && ($coverage = $this->cleanupForCoverage())) {
            $result->getCodeCoverage()->append($coverage, $this, true, [], [], true);
        }

        try {
            $this->assertPhptExpectation($sections, $jobResult['stdout']);
        } catch (AssertionFailedError $e) {
            $failure = $e;

            if ($xfail !== false) {
                $failure = new IncompleteTestError($xfail, 0, $e);
            } elseif ($e instanceof ExpectationFailedException) {
                $comparisonFailure = $e->getComparisonFailure();

                if ($comparisonFailure) {
                    $diff = $comparisonFailure->getDiff();
                } else {
                    $diff = $e->getMessage();
                }

                $hint    = $this->getLocationHintFromDiff($diff, $sections);
                $trace   = \array_merge($hint, \debug_backtrace(\DEBUG_BACKTRACE_IGNORE_ARGS));
                $failure = new PHPTAssertionFailedError(
                    $e->getMessage(),
                    0,
                    $trace[0]['file'],
                    $trace[0]['line'],
                    $trace,
                    $comparisonFailure ? $diff : ''
                );
            }

            $result->addFailure($this, $failure, $time);
        } catch (Throwable $t) {
            $result->addError($this, $t, $time);
        }

        if ($xfail !== false && $result->allCompletelyImplemented()) {
            $result->addFailure($this, new IncompleteTestError('XFAIL section but test passes'), $time);
        }

        $this->runClean($sections);

        $result->endTest($this, $time);

        return $result;
    }

    /**
     * Returns the name of the test case.
     */
    public function getName(): string
    {
        return $this->toString();
    }

    /**
     * Returns a string representation of the test case.
     */
    public function toString(): string
    {
        return $this->filename;
    }

    public function usesDataProvider(): bool
    {
        return false;
    }

    public function getNumAssertions(): int
    {
        return 1;
    }

    public function getActualOutput(): string
    {
        return $this->output;
    }

    public function hasOutput(): bool
    {
        return !empty($this->output);
    }

    /**
     * Parse --INI-- section key value pairs and return as array.
     *
     * @param array|string
     */
    private function parseIniSection($content, $ini = []): array
    {
        if (\is_string($content)) {
            $content = \explode("\n", \trim($content));
        }

        foreach ($content as $setting) {
            if (\strpos($setting, '=') === false) {
                continue;
            }

            $setting = \explode('=', $setting, 2);
            $name    = \trim($setting[0]);
            $value   = \trim($setting[1]);

            if ($name === 'extension' || $name === 'zend_extension') {
                if (!isset($ini[$name])) {
                    $ini[$name] = [];
                }

                $ini[$name][] = $value;

                continue;
            }

            $ini[$name] = $value;
        }

        return $ini;
    }

    private function parseEnvSection(string $content): array
    {
        $env = [];

        foreach (\explode("\n", \trim($content)) as $e) {
            $e = \explode('=', \trim($e), 2);

            if (!empty($e[0]) && isset($e[1])) {
                $env[$e[0]] = $e[1];
            }
        }

        return $env;
    }

    /**
     * @throws ExpectationFailedException
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     * @throws Exception
     */
    private function assertPhptExpectation(array $sections, string $output): void
    {
        $assertions = [
            'EXPECT'      => 'assertEquals',
            'EXPECTF'     => 'assertStringMatchesFormat',
            'EXPECTREGEX' => 'assertRegExp',
        ];

        $actual = \preg_replace('/\r\n/', "\n", \trim($output));

        foreach ($assertions as $sectionName => $sectionAssertion) {
            if (isset($sections[$sectionName])) {
                $sectionContent = \preg_replace('/\r\n/', "\n", \trim($sections[$sectionName]));
                $expected       = $sectionName === 'EXPECTREGEX' ? "/{$sectionContent}/" : $sectionContent;

                if ($expected === null) {
                    throw new Exception('No PHPT expectation found');
                }

                Assert::$sectionAssertion($expected, $actual);

                return;
            }
        }

        throw new Exception('No PHPT assertion found');
    }

    /**
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    private function runSkip(array &$sections, TestResult $result, array $settings): bool
    {
        if (!isset($sections['SKIPIF'])) {
            return false;
        }

        $skipif    = $this->render($sections['SKIPIF']);
        $jobResult = $this->phpUtil->runJob($skipif, $this->stringifyIni($settings));

        if (!\strncasecmp('skip', \ltrim($jobResult['stdout']), 4)) {
            $message = '';

            if (\preg_match('/^\s*skip\s*(.+)\s*/i', $jobResult['stdout'], $skipMatch)) {
                $message = \substr($skipMatch[1], 2);
            }

            $hint  = $this->getLocationHint($message, $sections, 'SKIPIF');
            $trace = \array_merge($hint, \debug_backtrace(\DEBUG_BACKTRACE_IGNORE_ARGS));
            $result->addFailure(
                $this,
                new SyntheticSkippedError($message, 0, $trace[0]['file'], $trace[0]['line'], $trace),
                0
            );
            $result->endTest($this, 0);

            return true;
        }

        return false;
    }

    private function runClean(array &$sections): void
    {
        $this->phpUtil->setStdin('');
        $this->phpUtil->setArgs('');

        if (isset($sections['CLEAN'])) {
            $cleanCode = $this->render($sections['CLEAN']);

            $this->phpUtil->runJob($cleanCode, self::SETTINGS);
        }
    }

    /**
     * @throws Exception
     */
    private function parse(): array
    {
        $sections = [];
        $section  = '';

        $unsupportedSections = [
            'REDIRECTTEST',
            'REQUEST',
            'POST',
            'PUT',
            'POST_RAW',
            'GZIP_POST',
            'DEFLATE_POST',
            'GET',
            'COOKIE',
            'HEADERS',
            'CGI',
            'EXPECTHEADERS',
            'EXTENSIONS',
            'PHPDBG',
        ];

        $lineNr = 0;

        foreach (\file($this->filename) as $line) {
            $lineNr++;

            if (\preg_match('/^--([_A-Z]+)--/', $line, $result)) {
                $section                        = $result[1];
                $sections[$section]             = '';
                $sections[$section . '_offset'] = $lineNr;

                continue;
            }

            if (empty($section)) {
                throw new Exception('Invalid PHPT file: empty section header');
            }

            $sections[$section] .= $line;
        }

        if (isset($sections['FILEEOF'])) {
            $sections['FILE'] = \rtrim($sections['FILEEOF'], "\r\n");
            unset($sections['FILEEOF']);
        }

        $this->parseExternal($sections);

        if (!$this->validate($sections)) {
            throw new Exception('Invalid PHPT file');
        }

        foreach ($unsupportedSections as $section) {
            if (isset($sections[$section])) {
                throw new Exception(
                    "PHPUnit does not support PHPT $section sections"
                );
            }
        }

        return $sections;
    }

    /**
     * @throws Exception
     */
    private function parseExternal(array &$sections): void
    {
        $allowSections = [
            'FILE',
            'EXPECT',
            'EXPECTF',
            'EXPECTREGEX',
        ];
        $testDirectory = \dirname($this->filename) . \DIRECTORY_SEPARATOR;

        foreach ($allowSections as $section) {
            if (isset($sections[$section . '_EXTERNAL'])) {
                $externalFilename = \trim($sections[$section . '_EXTERNAL']);

                if (!\is_file($testDirectory . $externalFilename) ||
                    !\is_readable($testDirectory . $externalFilename)) {
                    throw new Exception(
                        \sprintf(
                            'Could not load --%s-- %s for PHPT file',
                            $section . '_EXTERNAL',
                            $testDirectory . $externalFilename
                        )
                    );
                }

                $sections[$section] = \file_get_contents($testDirectory . $externalFilename);
            }
        }
    }

    private function validate(array &$sections): bool
    {
        $requiredSections = [
            'FILE',
            [
                'EXPECT',
                'EXPECTF',
                'EXPECTREGEX',
            ],
        ];

        foreach ($requiredSections as $section) {
            if (\is_array($section)) {
                $foundSection = false;

                foreach ($section as $anySection) {
                    if (isset($sections[$anySection])) {
                        $foundSection = true;

                        break;
                    }
                }

                if (!$foundSection) {
                    return false;
                }

                continue;
            }

            if (!isset($sections[$section])) {
                return false;
            }
        }

        return true;
    }

    private function render(string $code): string
    {
        return \str_replace(
            [
                '__DIR__',
                '__FILE__',
            ],
            [
                "'" . \dirname($this->filename) . "'",
                "'" . $this->filename . "'",
            ],
            $code
        );
    }

    private function getCoverageFiles(): array
    {
        $baseDir  = \dirname(\realpath($this->filename)) . \DIRECTORY_SEPARATOR;
        $basename = \basename($this->filename, 'phpt');

        return [
            'coverage' => $baseDir . $basename . 'coverage',
            'job'      => $baseDir . $basename . 'php',
        ];
    }

    private function renderForCoverage(string &$job): void
    {
        $files = $this->getCoverageFiles();

        $template = new Text_Template(
            __DIR__ . '/../Util/PHP/Template/PhptTestCase.tpl'
        );

        $composerAutoload = '\'\'';

        if (\defined('PHPUNIT_COMPOSER_INSTALL') && !\defined('PHPUNIT_TESTSUITE')) {
            $composerAutoload = \var_export(PHPUNIT_COMPOSER_INSTALL, true);
        }

        $phar = '\'\'';

        if (\defined('__PHPUNIT_PHAR__')) {
            $phar = \var_export(__PHPUNIT_PHAR__, true);
        }

        $globals = '';

        if (!empty($GLOBALS['__PHPUNIT_BOOTSTRAP'])) {
            $globals = '$GLOBALS[\'__PHPUNIT_BOOTSTRAP\'] = ' . \var_export(
                $GLOBALS['__PHPUNIT_BOOTSTRAP'],
                true
                ) . ";\n";
        }

        $template->setVar(
            [
                'composerAutoload' => $composerAutoload,
                'phar'             => $phar,
                'globals'          => $globals,
                'job'              => $files['job'],
                'coverageFile'     => $files['coverage'],
            ]
        );

        \file_put_contents($files['job'], $job);
        $job = $template->render();
    }

    private function cleanupForCoverage(): array
    {
        $files    = $this->getCoverageFiles();
        $coverage = @\unserialize(\file_get_contents($files['coverage']));

        if ($coverage === false) {
            $coverage = [];
        }

        foreach ($files as $file) {
            @\unlink($file);
        }

        return $coverage;
    }

    private function stringifyIni(array $ini): array
    {
        $settings = [];

        foreach ($ini as $key => $value) {
            if (\is_array($value)) {
                foreach ($value as $val) {
                    $settings[] = $key . '=' . $val;
                }

                continue;
            }

            $settings[] = $key . '=' . $value;
        }

        return $settings;
    }

    private function getLocationHintFromDiff(string $message, array $sections): array
    {
        $needle       = '';
        $previousLine = '';
        $block        = 'message';

        foreach (\preg_split('/\r\n|\r|\n/', $message) as $line) {
            $line = \trim($line);

            if ($block === 'message' && $line === '--- Expected') {
                $block = 'expected';
            }

            if ($block === 'expected' && $line === '@@ @@') {
                $block = 'diff';
            }

            if ($block === 'diff') {
                if (\strpos($line, '+') === 0) {
                    $needle = $this->getCleanDiffLine($previousLine);

                    break;
                }

                if (\strpos($line, '-') === 0) {
                    $needle = $this->getCleanDiffLine($line);

                    break;
                }
            }

            if (!empty($line)) {
                $previousLine = $line;
            }
        }

        return $this->getLocationHint($needle, $sections);
    }

    private function getCleanDiffLine(string $line): string
    {
        if (\preg_match('/^[\-+]([\'\"]?)(.*)\1$/', $line, $matches)) {
            $line = $matches[2];
        }

        return $line;
    }

    private function getLocationHint(string $needle, array $sections, ?string $sectionName = null): array
    {
        $needle = \trim($needle);

        if (empty($needle)) {
            return [[
                'file' => \realpath($this->filename),
                'line' => 1,
            ]];
        }

        if ($sectionName) {
            $search = [$sectionName];
        } else {
            $search = [
                // 'FILE',
                'EXPECT',
                'EXPECTF',
                'EXPECTREGEX',
            ];
        }

        foreach ($search as $section) {
            if (!isset($sections[$section])) {
                continue;
            }

            if (isset($sections[$section . '_EXTERNAL'])) {
                $externalFile = \trim($sections[$section . '_EXTERNAL']);

                return [
                    [
                        'file' => \realpath(\dirname($this->filename) . \DIRECTORY_SEPARATOR . $externalFile),
                        'line' => 1,
                    ],
                    [
                        'file' => \realpath($this->filename),
                        'line' => ($sections[$section . '_EXTERNAL_offset'] ?? 0) + 1,
                    ],
                ];
            }

            $sectionOffset = $sections[$section . '_offset'] ?? 0;
            $offset        = $sectionOffset + 1;

            foreach (\preg_split('/\r\n|\r|\n/', $sections[$section]) as $line) {
                if (\strpos($line, $needle) !== false) {
                    return [[
                        'file' => \realpath($this->filename),
                        'line' => $offset,
                    ]];
                }
                $offset++;
            }
        }

        if ($sectionName) {
            // String not found in specified section, show user the start of the named section
            return [[
                'file' => \realpath($this->filename),
                'line' => $sectionOffset,
            ]];
        }

        // No section specified, show user start of code
        return [[
            'file' => \realpath($this->filename),
            'line' => 1,
        ]];
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Runner;

use PHPUnit\Framework\TestCase;
use PHPUnit\Util\FileLoader;
use PHPUnit\Util\Filesystem;
use ReflectionClass;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class StandardTestSuiteLoader implements TestSuiteLoader
{
    /**
     * @throws Exception
     * @throws \PHPUnit\Framework\Exception
     */
    public function load(string $suiteClassName, string $suiteClassFile = ''): ReflectionClass
    {
        $suiteClassName = \str_replace('.php', '', $suiteClassName);

        if (empty($suiteClassFile)) {
            $suiteClassFile = Filesystem::classNameToFilename(
                $suiteClassName
            );
        }

        if (!\class_exists($suiteClassName, false)) {
            $loadedClasses = \get_declared_classes();

            $filename = FileLoader::checkAndLoad($suiteClassFile);

            $loadedClasses = \array_values(
                \array_diff(\get_declared_classes(), $loadedClasses)
            );
        }

        if (!empty($loadedClasses) && !\class_exists($suiteClassName, false)) {
            $offset = 0 - \strlen($suiteClassName);

            foreach ($loadedClasses as $loadedClass) {
                try {
                    $class = new ReflectionClass($loadedClass);
                } catch (\ReflectionException $e) {
                    throw new Exception(
                        $e->getMessage(),
                        (int) $e->getCode(),
                        $e
                    );
                }

                if (\substr($loadedClass, $offset) === $suiteClassName &&
                    $class->getFileName() == $filename) {
                    $suiteClassName = $loadedClass;

                    break;
                }
            }
        }

        if (!empty($loadedClasses) && !\class_exists($suiteClassName, false)) {
            $testCaseClass = TestCase::class;

            foreach ($loadedClasses as $loadedClass) {
                try {
                    $class = new ReflectionClass($loadedClass);
                } catch (\ReflectionException $e) {
                    throw new Exception(
                        $e->getMessage(),
                        (int) $e->getCode(),
                        $e
                    );
                }

                $classFile = $class->getFileName();

                if ($class->isSubclassOf($testCaseClass) && !$class->isAbstract()) {
                    $suiteClassName = $loadedClass;
                    $testCaseClass  = $loadedClass;

                    if ($classFile == \realpath($suiteClassFile)) {
                        break;
                    }
                }

                if ($class->hasMethod('suite')) {
                    try {
                        $method = $class->getMethod('suite');
                    } catch (\ReflectionException $e) {
                        throw new Exception(
                            $e->getMessage(),
                            (int) $e->getCode(),
                            $e
                        );
                    }

                    if (!$method->isAbstract() && $method->isPublic() && $method->isStatic()) {
                        $suiteClassName = $loadedClass;

                        if ($classFile == \realpath($suiteClassFile)) {
                            break;
                        }
                    }
                }
            }
        }

        if (\class_exists($suiteClassName, false)) {
            try {
                $class = new ReflectionClass($suiteClassName);
            } catch (\ReflectionException $e) {
                throw new Exception(
                    $e->getMessage(),
                    (int) $e->getCode(),
                    $e
                );
            }

            if ($class->getFileName() == \realpath($suiteClassFile)) {
                return $class;
            }
        }

        throw new Exception(
            \sprintf(
                "Class '%s' could not be found in '%s'.",
                $suiteClassName,
                $suiteClassFile
            )
        );
    }

    public function reload(ReflectionClass $aClass): ReflectionClass
    {
        return $aClass;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Runner;

use SebastianBergmann\Version as VersionId;

final class Version
{
    /**
     * @var string
     */
    private static $pharVersion = '';

    /**
     * @var string
     */
    private static $version = '';

    /**
     * Returns the current version of PHPUnit.
     */
    public static function id(): string
    {
        if (self::$pharVersion !== '') {
            return self::$pharVersion;
        }

        if (self::$version === '') {
            self::$version = (new VersionId('8.2.5', \dirname(__DIR__, 2)))->getVersion();
        }

        return self::$version;
    }

    public static function series(): string
    {
        if (\strpos(self::id(), '-')) {
            $version = \explode('-', self::id())[0];
        } else {
            $version = self::id();
        }

        return \implode('.', \array_slice(\explode('.', $version), 0, 2));
    }

    public static function getVersionString(): string
    {
        return 'PHPUnit ' . self::id() . ' by Sebastian Bergmann and contributors.';
    }

    public static function getReleaseChannel(): string
    {
        if (\strpos(self::$pharVersion, '-') !== false) {
            return '-nightly';
        }

        return '';
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Runner;

use ReflectionClass;

/**
 * An interface to define how a test suite should be loaded.
 */
interface TestSuiteLoader
{
    public function load(string $suiteClassName, string $suiteClassFile = ''): ReflectionClass;

    public function reload(ReflectionClass $aClass): ReflectionClass;
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Runner;

use PHPUnit\Util\Filesystem;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class DefaultTestResultCache implements \Serializable, TestResultCache
{
    /**
     * @var string
     */
    public const DEFAULT_RESULT_CACHE_FILENAME = '.phpunit.result.cache';

    /**
     * Provide extra protection against incomplete or corrupt caches
     *
     * @var int[]
     */
    private const ALLOWED_CACHE_TEST_STATUSES = [
        BaseTestRunner::STATUS_SKIPPED,
        BaseTestRunner::STATUS_INCOMPLETE,
        BaseTestRunner::STATUS_FAILURE,
        BaseTestRunner::STATUS_ERROR,
        BaseTestRunner::STATUS_RISKY,
        BaseTestRunner::STATUS_WARNING,
    ];

    /**
     * Path and filename for result cache file
     *
     * @var string
     */
    private $cacheFilename;

    /**
     * The list of defective tests
     *
     * <code>
     * // Mark a test skipped
     * $this->defects[$testName] = BaseTestRunner::TEST_SKIPPED;
     * </code>
     *
     * @var array<string, int>
     */
    private $defects = [];

    /**
     * The list of execution duration of suites and tests (in seconds)
     *
     * <code>
     * // Record running time for test
     * $this->times[$testName] = 1.234;
     * </code>
     *
     * @var array<string, float>
     */
    private $times = [];

    public function __construct(?string $filepath = null)
    {
        if ($filepath !== null && \is_dir($filepath)) {
            // cache path provided, use default cache filename in that location
            $filepath = $filepath . \DIRECTORY_SEPARATOR . self::DEFAULT_RESULT_CACHE_FILENAME;
        }

        $this->cacheFilename = $filepath ?? $_ENV['PHPUNIT_RESULT_CACHE'] ?? self::DEFAULT_RESULT_CACHE_FILENAME;
    }

    /**
     * @throws Exception
     */
    public function persist(): void
    {
        $this->saveToFile();
    }

    /**
     * @throws Exception
     */
    public function saveToFile(): void
    {
        if (\defined('PHPUNIT_TESTSUITE_RESULTCACHE')) {
            return;
        }

        if (!Filesystem::createDirectory(\dirname($this->cacheFilename))) {
            throw new Exception(
                \sprintf(
                    'Cannot create directory "%s" for result cache file',
                    $this->cacheFilename
                )
            );
        }

        \file_put_contents(
            $this->cacheFilename,
            \serialize($this)
        );
    }

    public function setState(string $testName, int $state): void
    {
        if ($state !== BaseTestRunner::STATUS_PASSED) {
            $this->defects[$testName] = $state;
        }
    }

    public function getState(string $testName): int
    {
        return $this->defects[$testName] ?? BaseTestRunner::STATUS_UNKNOWN;
    }

    public function setTime(string $testName, float $time): void
    {
        $this->times[$testName] = $time;
    }

    public function getTime(string $testName): float
    {
        return $this->times[$testName] ?? 0.0;
    }

    public function load(): void
    {
        $this->clear();

        if (!\is_file($this->cacheFilename)) {
            return;
        }

        $cacheData = @\file_get_contents($this->cacheFilename);

        // @codeCoverageIgnoreStart
        if ($cacheData === false) {
            return;
        }
        // @codeCoverageIgnoreEnd

        $cache = @\unserialize($cacheData, ['allowed_classes' => [self::class]]);

        if ($cache === false) {
            return;
        }

        if ($cache instanceof self) {
            /* @var DefaultTestResultCache $cache */
            $cache->copyStateToCache($this);
        }
    }

    public function copyStateToCache(self $targetCache): void
    {
        foreach ($this->defects as $name => $state) {
            $targetCache->setState($name, $state);
        }

        foreach ($this->times as $name => $time) {
            $targetCache->setTime($name, $time);
        }
    }

    public function clear(): void
    {
        $this->defects = [];
        $this->times   = [];
    }

    public function serialize(): string
    {
        return \serialize([
            'defects' => $this->defects,
            'times'   => $this->times,
        ]);
    }

    /**
     * @param string $serialized
     */
    public function unserialize($serialized): void
    {
        $data = \unserialize($serialized);

        if (isset($data['times'])) {
            foreach ($data['times'] as $testName => $testTime) {
                \assert(\is_string($testName));
                \assert(\is_float($testTime));
                $this->times[$testName] = $testTime;
            }
        }

        if (isset($data['defects'])) {
            foreach ($data['defects'] as $testName => $testResult) {
                \assert(\is_string($testName));
                \assert(\is_int($testResult));

                if (\in_array($testResult, self::ALLOWED_CACHE_TEST_STATUSES, true)) {
                    $this->defects[$testName] = $testResult;
                }
            }
        }
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Runner;

use PHPUnit\Framework\DataProviderTestSuite;
use PHPUnit\Framework\Test;
use PHPUnit\Framework\TestCase;
use PHPUnit\Framework\TestSuite;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class TestSuiteSorter
{
    /**
     * @var int
     */
    public const ORDER_DEFAULT = 0;

    /**
     * @var int
     */
    public const ORDER_RANDOMIZED = 1;

    /**
     * @var int
     */
    public const ORDER_REVERSED = 2;

    /**
     * @var int
     */
    public const ORDER_DEFECTS_FIRST = 3;

    /**
     * @var int
     */
    public const ORDER_DURATION = 4;

    /**
     * List of sorting weights for all test result codes. A higher number gives higher priority.
     */
    private const DEFECT_SORT_WEIGHT = [
        BaseTestRunner::STATUS_ERROR      => 6,
        BaseTestRunner::STATUS_FAILURE    => 5,
        BaseTestRunner::STATUS_WARNING    => 4,
        BaseTestRunner::STATUS_INCOMPLETE => 3,
        BaseTestRunner::STATUS_RISKY      => 2,
        BaseTestRunner::STATUS_SKIPPED    => 1,
        BaseTestRunner::STATUS_UNKNOWN    => 0,
    ];

    /**
     * @var array<string, int> Associative array of (string => DEFECT_SORT_WEIGHT) elements
     */
    private $defectSortOrder = [];

    /**
     * @var TestResultCache
     */
    private $cache;

    /**
     * @var string[] A list of normalized names of tests before reordering
     */
    private $originalExecutionOrder = [];

    /**
     * @var string[] A list of normalized names of tests affected by reordering
     */
    private $executionOrder = [];

    /**
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public static function getTestSorterUID(Test $test): string
    {
        if ($test instanceof PhptTestCase) {
            return $test->getName();
        }

        if ($test instanceof TestCase) {
            $testName = $test->getName(true);

            if (\strpos($testName, '::') === false) {
                $testName = \get_class($test) . '::' . $testName;
            }

            return $testName;
        }

        return $test->getName();
    }

    public function __construct(?TestResultCache $cache = null)
    {
        $this->cache = $cache ?? new NullTestResultCache;
    }

    /**
     * @throws Exception
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function reorderTestsInSuite(Test $suite, int $order, bool $resolveDependencies, int $orderDefects, bool $isRootTestSuite = true): void
    {
        $allowedOrders = [
            self::ORDER_DEFAULT,
            self::ORDER_REVERSED,
            self::ORDER_RANDOMIZED,
            self::ORDER_DURATION,
        ];

        if (!\in_array($order, $allowedOrders, true)) {
            throw new Exception(
                '$order must be one of TestSuiteSorter::ORDER_DEFAULT, TestSuiteSorter::ORDER_REVERSED, or TestSuiteSorter::ORDER_RANDOMIZED, or TestSuiteSorter::ORDER_DURATION'
            );
        }

        $allowedOrderDefects = [
            self::ORDER_DEFAULT,
            self::ORDER_DEFECTS_FIRST,
        ];

        if (!\in_array($orderDefects, $allowedOrderDefects, true)) {
            throw new Exception(
                '$orderDefects must be one of TestSuiteSorter::ORDER_DEFAULT, TestSuiteSorter::ORDER_DEFECTS_FIRST'
            );
        }

        if ($isRootTestSuite) {
            $this->originalExecutionOrder = $this->calculateTestExecutionOrder($suite);
        }

        if ($suite instanceof TestSuite) {
            foreach ($suite as $_suite) {
                $this->reorderTestsInSuite($_suite, $order, $resolveDependencies, $orderDefects, false);
            }

            if ($orderDefects === self::ORDER_DEFECTS_FIRST) {
                $this->addSuiteToDefectSortOrder($suite);
            }

            $this->sort($suite, $order, $resolveDependencies, $orderDefects);
        }

        if ($isRootTestSuite) {
            $this->executionOrder = $this->calculateTestExecutionOrder($suite);
        }
    }

    public function getOriginalExecutionOrder(): array
    {
        return $this->originalExecutionOrder;
    }

    public function getExecutionOrder(): array
    {
        return $this->executionOrder;
    }

    private function sort(TestSuite $suite, int $order, bool $resolveDependencies, int $orderDefects): void
    {
        if (empty($suite->tests())) {
            return;
        }

        if ($order === self::ORDER_REVERSED) {
            $suite->setTests($this->reverse($suite->tests()));
        } elseif ($order === self::ORDER_RANDOMIZED) {
            $suite->setTests($this->randomize($suite->tests()));
        } elseif ($order === self::ORDER_DURATION && $this->cache !== null) {
            $suite->setTests($this->sortByDuration($suite->tests()));
        }

        if ($orderDefects === self::ORDER_DEFECTS_FIRST && $this->cache !== null) {
            $suite->setTests($this->sortDefectsFirst($suite->tests()));
        }

        if ($resolveDependencies && !($suite instanceof DataProviderTestSuite) && $this->suiteOnlyContainsTests($suite)) {
            $suite->setTests($this->resolveDependencies($suite->tests()));
        }
    }

    /**
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    private function addSuiteToDefectSortOrder(TestSuite $suite): void
    {
        $max = 0;

        foreach ($suite->tests() as $test) {
            $testname = self::getTestSorterUID($test);

            if (!isset($this->defectSortOrder[$testname])) {
                $this->defectSortOrder[$testname]        = self::DEFECT_SORT_WEIGHT[$this->cache->getState($testname)];
                $max                                     = \max($max, $this->defectSortOrder[$testname]);
            }
        }

        $this->defectSortOrder[$suite->getName()] = $max;
    }

    private function suiteOnlyContainsTests(TestSuite $suite): bool
    {
        return \array_reduce(
            $suite->tests(),
            function ($carry, $test) {
                return $carry && ($test instanceof TestCase || $test instanceof DataProviderTestSuite);
            },
            true
        );
    }

    private function reverse(array $tests): array
    {
        return \array_reverse($tests);
    }

    private function randomize(array $tests): array
    {
        \shuffle($tests);

        return $tests;
    }

    private function sortDefectsFirst(array $tests): array
    {
        \usort(
            $tests,
            /**
             * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
             */
            function ($left, $right) {
                return $this->cmpDefectPriorityAndTime($left, $right);
            }
        );

        return $tests;
    }

    private function sortByDuration(array $tests): array
    {
        \usort(
            $tests,
            /**
             * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
             */
            function ($left, $right) {
                return $this->cmpDuration($left, $right);
            }
        );

        return $tests;
    }

    /**
     * Comparator callback function to sort tests for "reach failure as fast as possible":
     * 1. sort tests by defect weight defined in self::DEFECT_SORT_WEIGHT
     * 2. when tests are equally defective, sort the fastest to the front
     * 3. do not reorder successful tests
     *
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    private function cmpDefectPriorityAndTime(Test $a, Test $b): int
    {
        $priorityA = $this->defectSortOrder[self::getTestSorterUID($a)] ?? 0;
        $priorityB = $this->defectSortOrder[self::getTestSorterUID($b)] ?? 0;

        if ($priorityB <=> $priorityA) {
            // Sort defect weight descending
            return $priorityB <=> $priorityA;
        }

        if ($priorityA || $priorityB) {
            return $this->cmpDuration($a, $b);
        }

        // do not change execution order
        return 0;
    }

    /**
     * Compares test duration for sorting tests by duration ascending.
     *
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    private function cmpDuration(Test $a, Test $b): int
    {
        return $this->cache->getTime(self::getTestSorterUID($a)) <=> $this->cache->getTime(self::getTestSorterUID($b));
    }

    /**
     * Reorder Tests within a TestCase in such a way as to resolve as many dependencies as possible.
     * The algorithm will leave the tests in original running order when it can.
     * For more details see the documentation for test dependencies.
     *
     * Short description of algorithm:
     * 1. Pick the next Test from remaining tests to be checked for dependencies.
     * 2. If the test has no dependencies: mark done, start again from the top
     * 3. If the test has dependencies but none left to do: mark done, start again from the top
     * 4. When we reach the end add any leftover tests to the end. These will be marked 'skipped' during execution.
     *
     * @param array<DataProviderTestSuite|TestCase> $tests
     *
     * @return array<DataProviderTestSuite|TestCase>
     */
    private function resolveDependencies(array $tests): array
    {
        $newTestOrder = [];
        $i            = 0;

        do {
            $todoNames = \array_map(
                /**
                 * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
                 */
                function ($test) {
                    return self::getTestSorterUID($test);
                },
                $tests
            );

            if (!$tests[$i]->hasDependencies() || empty(\array_intersect($this->getNormalizedDependencyNames($tests[$i]), $todoNames))) {
                $newTestOrder = \array_merge($newTestOrder, \array_splice($tests, $i, 1));
                $i            = 0;
            } else {
                $i++;
            }
        } while (!empty($tests) && ($i < \count($tests)));

        return \array_merge($newTestOrder, $tests);
    }

    /**
     * @param DataProviderTestSuite|TestCase $test
     *
     * @return array<string> A list of full test names as "TestSuiteClassName::testMethodName"
     */
    private function getNormalizedDependencyNames($test): array
    {
        if ($test instanceof DataProviderTestSuite) {
            $testClass = \substr($test->getName(), 0, \strpos($test->getName(), '::'));
        } else {
            $testClass = \get_class($test);
        }

        $names = \array_map(
            function ($name) use ($testClass) {
                return \strpos($name, '::') === false ? $testClass . '::' . $name : $name;
            },
            $test->getDependencies()
        );

        return $names;
    }

    /**
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    private function calculateTestExecutionOrder(Test $suite): array
    {
        $tests = [];

        if ($suite instanceof TestSuite) {
            foreach ($suite->tests() as $test) {
                if (!($test instanceof TestSuite)) {
                    $tests[] = self::getTestSorterUID($test);
                } else {
                    $tests = \array_merge($tests, $this->calculateTestExecutionOrder($test));
                }
            }
        }

        return $tests;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Runner\Filter;

use FilterIterator;
use InvalidArgumentException;
use Iterator;
use PHPUnit\Framework\TestSuite;
use ReflectionClass;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class Factory
{
    /**
     * @var array
     */
    private $filters = [];

    /**
     * @throws InvalidArgumentException
     */
    public function addFilter(ReflectionClass $filter, $args): void
    {
        if (!$filter->isSubclassOf(\RecursiveFilterIterator::class)) {
            throw new InvalidArgumentException(
                \sprintf(
                    'Class "%s" does not extend RecursiveFilterIterator',
                    $filter->name
                )
            );
        }

        $this->filters[] = [$filter, $args];
    }

    public function factory(Iterator $iterator, TestSuite $suite): FilterIterator
    {
        foreach ($this->filters as $filter) {
            [$class, $args] = $filter;
            $iterator       = $class->newInstance($iterator, $args, $suite);
        }

        return $iterator;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Runner\Filter;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class IncludeGroupFilterIterator extends GroupFilterIterator
{
    protected function doAccept(string $hash): bool
    {
        return \in_array($hash, $this->groupTests, true);
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Runner\Filter;

use PHPUnit\Framework\TestSuite;
use RecursiveFilterIterator;
use RecursiveIterator;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
abstract class GroupFilterIterator extends RecursiveFilterIterator
{
    /**
     * @var string[]
     */
    protected $groupTests = [];

    public function __construct(RecursiveIterator $iterator, array $groups, TestSuite $suite)
    {
        parent::__construct($iterator);

        foreach ($suite->getGroupDetails() as $group => $tests) {
            if (\in_array((string) $group, $groups, true)) {
                $testHashes = \array_map(
                    'spl_object_hash',
                    $tests
                );

                $this->groupTests = \array_merge($this->groupTests, $testHashes);
            }
        }
    }

    public function accept(): bool
    {
        $test = $this->getInnerIterator()->current();

        if ($test instanceof TestSuite) {
            return true;
        }

        return $this->doAccept(\spl_object_hash($test));
    }

    abstract protected function doAccept(string $hash);
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Runner\Filter;

use PHPUnit\Framework\TestSuite;
use PHPUnit\Framework\WarningTestCase;
use PHPUnit\Util\RegularExpression;
use RecursiveFilterIterator;
use RecursiveIterator;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class NameFilterIterator extends RecursiveFilterIterator
{
    /**
     * @var string
     */
    private $filter;

    /**
     * @var int
     */
    private $filterMin;

    /**
     * @var int
     */
    private $filterMax;

    /**
     * @throws \Exception
     */
    public function __construct(RecursiveIterator $iterator, string $filter)
    {
        parent::__construct($iterator);

        $this->setFilter($filter);
    }

    /**
     * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
     */
    public function accept(): bool
    {
        $test = $this->getInnerIterator()->current();

        if ($test instanceof TestSuite) {
            return true;
        }

        $tmp = \PHPUnit\Util\Test::describe($test);

        if ($test instanceof WarningTestCase) {
            $name = $test->getMessage();
        } elseif ($tmp[0] !== '') {
            $name = \implode('::', $tmp);
        } else {
            $name = $tmp[1];
        }

        $accepted = @\preg_match($this->filter, $name, $matches);

        if ($accepted && isset($this->filterMax)) {
            $set      = \end($matches);
            $accepted = $set >= $this->filterMin && $set <= $this->filterMax;
        }

        return (bool) $accepted;
    }

    /**
     * @throws \Exception
     */
    private function setFilter(string $filter): void
    {
        if (RegularExpression::safeMatch($filter, '') === false) {
            // Handles:
            //  * testAssertEqualsSucceeds#4
            //  * testAssertEqualsSucceeds#4-8
            if (\preg_match('/^(.*?)#(\d+)(?:-(\d+))?$/', $filter, $matches)) {
                if (isset($matches[3]) && $matches[2] < $matches[3]) {
                    $filter = \sprintf(
                        '%s.*with data set #(\d+)$',
                        $matches[1]
                    );

                    $this->filterMin = $matches[2];
                    $this->filterMax = $matches[3];
                } else {
                    $filter = \sprintf(
                        '%s.*with data set #%s$',
                        $matches[1],
                        $matches[2]
                    );
                }
            } // Handles:
            //  * testDetermineJsonError@JSON_ERROR_NONE
            //  * testDetermineJsonError@JSON.*
            elseif (\preg_match('/^(.*?)@(.+)$/', $filter, $matches)) {
                $filter = \sprintf(
                    '%s.*with data set "%s"$',
                    $matches[1],
                    $matches[2]
                );
            }

            // Escape delimiters in regular expression. Do NOT use preg_quote,
            // to keep magic characters.
            $filter = \sprintf('/%s/i', \str_replace(
                '/',
                '\\/',
                $filter
            ));
        }

        $this->filter = $filter;
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Runner\Filter;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class ExcludeGroupFilterIterator extends GroupFilterIterator
{
    protected function doAccept(string $hash): bool
    {
        return !\in_array($hash, $this->groupTests, true);
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Runner;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class NullTestResultCache implements TestResultCache
{
    public function setState(string $testName, int $state): void
    {
    }

    public function getState(string $testName): int
    {
        return BaseTestRunner::STATUS_UNKNOWN;
    }

    public function setTime(string $testName, float $time): void
    {
    }

    public function getTime(string $testName): float
    {
        return 0;
    }

    public function load(): void
    {
    }

    public function persist(): void
    {
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Runner;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class Exception extends \RuntimeException implements \PHPUnit\Exception
{
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Runner;

interface AfterRiskyTestHook extends TestHook
{
    public function executeAfterRiskyTest(string $test, string $message, float $time): void;
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Runner;

interface AfterSkippedTestHook extends TestHook
{
    public function executeAfterSkippedTest(string $test, string $message, float $time): void;
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Runner;

interface AfterTestErrorHook extends TestHook
{
    public function executeAfterTestError(string $test, string $message, float $time): void;
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Runner;

interface Hook
{
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Runner;

interface BeforeTestHook extends TestHook
{
    public function executeBeforeTest(string $test): void;
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Runner;

use PHPUnit\Framework\AssertionFailedError;
use PHPUnit\Framework\Test;
use PHPUnit\Framework\TestListener;
use PHPUnit\Framework\TestSuite;
use PHPUnit\Framework\Warning;
use PHPUnit\Util\Test as TestUtil;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class TestListenerAdapter implements TestListener
{
    /**
     * @var TestHook[]
     */
    private $hooks = [];

    /**
     * @var bool
     */
    private $lastTestWasNotSuccessful;

    public function add(TestHook $hook): void
    {
        $this->hooks[] = $hook;
    }

    public function startTest(Test $test): void
    {
        foreach ($this->hooks as $hook) {
            if ($hook instanceof BeforeTestHook) {
                $hook->executeBeforeTest(TestUtil::describeAsString($test));
            }
        }

        $this->lastTestWasNotSuccessful = false;
    }

    public function addError(Test $test, \Throwable $t, float $time): void
    {
        foreach ($this->hooks as $hook) {
            if ($hook instanceof AfterTestErrorHook) {
                $hook->executeAfterTestError(TestUtil::describeAsString($test), $t->getMessage(), $time);
            }
        }

        $this->lastTestWasNotSuccessful = true;
    }

    public function addWarning(Test $test, Warning $e, float $time): void
    {
        foreach ($this->hooks as $hook) {
            if ($hook instanceof AfterTestWarningHook) {
                $hook->executeAfterTestWarning(TestUtil::describeAsString($test), $e->getMessage(), $time);
            }
        }

        $this->lastTestWasNotSuccessful = true;
    }

    public function addFailure(Test $test, AssertionFailedError $e, float $time): void
    {
        foreach ($this->hooks as $hook) {
            if ($hook instanceof AfterTestFailureHook) {
                $hook->executeAfterTestFailure(TestUtil::describeAsString($test), $e->getMessage(), $time);
            }
        }

        $this->lastTestWasNotSuccessful = true;
    }

    public function addIncompleteTest(Test $test, \Throwable $t, float $time): void
    {
        foreach ($this->hooks as $hook) {
            if ($hook instanceof AfterIncompleteTestHook) {
                $hook->executeAfterIncompleteTest(TestUtil::describeAsString($test), $t->getMessage(), $time);
            }
        }

        $this->lastTestWasNotSuccessful = true;
    }

    public function addRiskyTest(Test $test, \Throwable $t, float $time): void
    {
        foreach ($this->hooks as $hook) {
            if ($hook instanceof AfterRiskyTestHook) {
                $hook->executeAfterRiskyTest(TestUtil::describeAsString($test), $t->getMessage(), $time);
            }
        }

        $this->lastTestWasNotSuccessful = true;
    }

    public function addSkippedTest(Test $test, \Throwable $t, float $time): void
    {
        foreach ($this->hooks as $hook) {
            if ($hook instanceof AfterSkippedTestHook) {
                $hook->executeAfterSkippedTest(TestUtil::describeAsString($test), $t->getMessage(), $time);
            }
        }

        $this->lastTestWasNotSuccessful = true;
    }

    public function endTest(Test $test, float $time): void
    {
        if (!$this->lastTestWasNotSuccessful) {
            foreach ($this->hooks as $hook) {
                if ($hook instanceof AfterSuccessfulTestHook) {
                    $hook->executeAfterSuccessfulTest(TestUtil::describeAsString($test), $time);
                }
            }
        }

        foreach ($this->hooks as $hook) {
            if ($hook instanceof AfterTestHook) {
                $hook->executeAfterTest(TestUtil::describeAsString($test), $time);
            }
        }
    }

    public function startTestSuite(TestSuite $suite): void
    {
    }

    public function endTestSuite(TestSuite $suite): void
    {
    }
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Runner;

interface AfterTestWarningHook extends TestHook
{
    public function executeAfterTestWarning(string $test, string $message, float $time): void;
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Runner;

interface TestHook extends Hook
{
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Runner;

interface AfterTestHook extends Hook
{
    /**
     * This hook will fire after any test, regardless of the result.
     *
     * For more fine grained control, have a look at the other hooks
     * that extend PHPUnit\Runner\Hook.
     */
    public function executeAfterTest(string $test, float $time): void;
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Runner;

interface AfterLastTestHook extends Hook
{
    public function executeAfterLastTest(): void;
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Runner;

interface AfterTestFailureHook extends TestHook
{
    public function executeAfterTestFailure(string $test, string $message, float $time): void;
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Runner;

interface BeforeFirstTestHook extends Hook
{
    public function executeBeforeFirstTest(): void;
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Runner;

interface AfterIncompleteTestHook extends TestHook
{
    public function executeAfterIncompleteTest(string $test, string $message, float $time): void;
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\Runner;

interface AfterSuccessfulTestHook extends TestHook
{
    public function executeAfterSuccessfulTest(string $test, float $time): void;
}
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
interface Exception
{
}
<?php

/*
 * This file is part of Composer.
 *
 * (c) Nils Adermann <naderman@naderman.de>
 *     Jordi Boggiano <j.boggiano@seld.be>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Composer\Autoload;

/**
 * ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
 *
 *     $loader = new \Composer\Autoload\ClassLoader();
 *
 *     // register classes with namespaces
 *     $loader->add('Symfony\Component', __DIR__.'/component');
 *     $loader->add('Symfony',           __DIR__.'/framework');
 *
 *     // activate the autoloader
 *     $loader->register();
 *
 *     // to enable searching the include path (eg. for PEAR packages)
 *     $loader->setUseIncludePath(true);
 *
 * In this example, if you try to use a class in the Symfony\Component
 * namespace or one of its children (Symfony\Component\Console for instance),
 * the autoloader will first look for the class under the component/
 * directory, and it will then fallback to the framework/ directory if not
 * found before giving up.
 *
 * This class is loosely based on the Symfony UniversalClassLoader.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 * @author Jordi Boggiano <j.boggiano@seld.be>
 * @see    http://www.php-fig.org/psr/psr-0/
 * @see    http://www.php-fig.org/psr/psr-4/
 */
class ClassLoader
{
    // PSR-4
    private $prefixLengthsPsr4 = array();
    private $prefixDirsPsr4 = array();
    private $fallbackDirsPsr4 = array();

    // PSR-0
    private $prefixesPsr0 = array();
    private $fallbackDirsPsr0 = array();

    private $useIncludePath = false;
    private $classMap = array();
    private $classMapAuthoritative = false;
    private $missingClasses = array();
    private $apcuPrefix;

    public function getPrefixes()
    {
        if (!empty($this->prefixesPsr0)) {
            return call_user_func_array('array_merge', $this->prefixesPsr0);
        }

        return array();
    }

    public function getPrefixesPsr4()
    {
        return $this->prefixDirsPsr4;
    }

    public function getFallbackDirs()
    {
        return $this->fallbackDirsPsr0;
    }

    public function getFallbackDirsPsr4()
    {
        return $this->fallbackDirsPsr4;
    }

    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 PSR-0 directories for a given prefix, either
     * appending or prepending to the ones previously set for this prefix.
     *
     * @param string       $prefix  The prefix
     * @param array|string $paths   The PSR-0 root directories
     * @param bool         $prepend Whether to prepend the directories
     */
    public function add($prefix, $paths, $prepend = false)
    {
        if (!$prefix) {
            if ($prepend) {
                $this->fallbackDirsPsr0 = array_merge(
                    (array) $paths,
                    $this->fallbackDirsPsr0
                );
            } else {
                $this->fallbackDirsPsr0 = array_merge(
                    $this->fallbackDirsPsr0,
                    (array) $paths
                );
            }

            return;
        }

        $first = $prefix[0];
        if (!isset($this->prefixesPsr0[$first][$prefix])) {
            $this->prefixesPsr0[$first][$prefix] = (array) $paths;

            return;
        }
        if ($prepend) {
            $this->prefixesPsr0[$first][$prefix] = array_merge(
                (array) $paths,
                $this->prefixesPsr0[$first][$prefix]
            );
        } else {
            $this->prefixesPsr0[$first][$prefix] = array_merge(
                $this->prefixesPsr0[$first][$prefix],
                (array) $paths
            );
        }
    }

    /**
     * Registers a set of PSR-4 directories for a given namespace, either
     * appending or prepending to the ones previously set for this namespace.
     *
     * @param string       $prefix  The prefix/namespace, with trailing '\\'
     * @param array|string $paths   The PSR-4 base directories
     * @param bool         $prepend Whether to prepend the directories
     *
     * @throws \InvalidArgumentException
     */
    public function addPsr4($prefix, $paths, $prepend = false)
    {
        if (!$prefix) {
            // Register directories for the root namespace.
            if ($prepend) {
                $this->fallbackDirsPsr4 = array_merge(
                    (array) $paths,
                    $this->fallbackDirsPsr4
                );
            } else {
                $this->fallbackDirsPsr4 = array_merge(
                    $this->fallbackDirsPsr4,
                    (array) $paths
                );
            }
        } elseif (!isset($this->prefixDirsPsr4[$prefix])) {
            // Register directories for a new namespace.
            $length = strlen($prefix);
            if ('\\' !== $prefix[$length - 1]) {
                throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
            }
            $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
            $this->prefixDirsPsr4[$prefix] = (array) $paths;
        } elseif ($prepend) {
            // Prepend directories for an already registered namespace.
            $this->prefixDirsPsr4[$prefix] = array_merge(
                (array) $paths,
                $this->prefixDirsPsr4[$prefix]
            );
        } else {
            // Append directories for an already registered namespace.
            $this->prefixDirsPsr4[$prefix] = array_merge(
                $this->prefixDirsPsr4[$prefix],
                (array) $paths
            );
        }
    }

    /**
     * Registers a set of PSR-0 directories for a given prefix,
     * replacing any others previously set for this prefix.
     *
     * @param string       $prefix The prefix
     * @param array|string $paths  The PSR-0 base directories
     */
    public function set($prefix, $paths)
    {
        if (!$prefix) {
            $this->fallbackDirsPsr0 = (array) $paths;
        } else {
            $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
        }
    }

    /**
     * Registers a set of PSR-4 directories for a given namespace,
     * replacing any others previously set for this namespace.
     *
     * @param string       $prefix The prefix/namespace, with trailing '\\'
     * @param array|string $paths  The PSR-4 base directories
     *
     * @throws \InvalidArgumentException
     */
    public function setPsr4($prefix, $paths)
    {
        if (!$prefix) {
            $this->fallbackDirsPsr4 = (array) $paths;
        } else {
            $length = strlen($prefix);
            if ('\\' !== $prefix[$length - 1]) {
                throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
            }
            $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
            $this->prefixDirsPsr4[$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;
    }

    /**
     * Turns off searching the prefix and fallback directories for classes
     * that have not been registered with the class map.
     *
     * @param bool $classMapAuthoritative
     */
    public function setClassMapAuthoritative($classMapAuthoritative)
    {
        $this->classMapAuthoritative = $classMapAuthoritative;
    }

    /**
     * Should class lookup fail if not found in the current class map?
     *
     * @return bool
     */
    public function isClassMapAuthoritative()
    {
        return $this->classMapAuthoritative;
    }

    /**
     * APCu prefix to use to cache found/not-found classes, if the extension is enabled.
     *
     * @param string|null $apcuPrefix
     */
    public function setApcuPrefix($apcuPrefix)
    {
        $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
    }

    /**
     * The APCu prefix in use, or null if APCu caching is not enabled.
     *
     * @return string|null
     */
    public function getApcuPrefix()
    {
        return $this->apcuPrefix;
    }

    /**
     * Registers this instance as an autoloader.
     *
     * @param bool $prepend Whether to prepend the autoloader or not
     */
    public function register($prepend = false)
    {
        spl_autoload_register(array($this, 'loadClass'), true, $prepend);
    }

    /**
     * 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, null otherwise
     */
    public function loadClass($class)
    {
        if ($file = $this->findFile($class)) {
            includeFile($file);

            return true;
        }
    }

    /**
     * Finds the path to the file where the class is defined.
     *
     * @param string $class The name of the class
     *
     * @return string|false The path if found, false otherwise
     */
    public function findFile($class)
    {
        // class map lookup
        if (isset($this->classMap[$class])) {
            return $this->classMap[$class];
        }
        if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
            return false;
        }
        if (null !== $this->apcuPrefix) {
            $file = apcu_fetch($this->apcuPrefix.$class, $hit);
            if ($hit) {
                return $file;
            }
        }

        $file = $this->findFileWithExtension($class, '.php');

        // Search for Hack files if we are running on HHVM
        if (false === $file && defined('HHVM_VERSION')) {
            $file = $this->findFileWithExtension($class, '.hh');
        }

        if (null !== $this->apcuPrefix) {
            apcu_add($this->apcuPrefix.$class, $file);
        }

        if (false === $file) {
            // Remember that this class does not exist.
            $this->missingClasses[$class] = true;
        }

        return $file;
    }

    private function findFileWithExtension($class, $ext)
    {
        // PSR-4 lookup
        $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;

        $first = $class[0];
        if (isset($this->prefixLengthsPsr4[$first])) {
            $subPath = $class;
            while (false !== $lastPos = strrpos($subPath, '\\')) {
                $subPath = substr($subPath, 0, $lastPos);
                $search = $subPath . '\\';
                if (isset($this->prefixDirsPsr4[$search])) {
                    $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
                    foreach ($this->prefixDirsPsr4[$search] as $dir) {
                        if (file_exists($file = $dir . $pathEnd)) {
                            return $file;
                        }
                    }
                }
            }
        }

        // PSR-4 fallback dirs
        foreach ($this->fallbackDirsPsr4 as $dir) {
            if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
                return $file;
            }
        }

        // PSR-0 lookup
        if (false !== $pos = strrpos($class, '\\')) {
            // namespaced class name
            $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
                . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
        } else {
            // PEAR-like class name
            $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
        }

        if (isset($this->prefixesPsr0[$first])) {
            foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
                if (0 === strpos($class, $prefix)) {
                    foreach ($dirs as $dir) {
                        if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
                            return $file;
                        }
                    }
                }
            }
        }

        // PSR-0 fallback dirs
        foreach ($this->fallbackDirsPsr0 as $dir) {
            if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
                return $file;
            }
        }

        // PSR-0 include paths.
        if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
            return $file;
        }

        return false;
    }
}

/**
 * Scope isolated include.
 *
 * Prevents access to $this/self from included files.
 */
function includeFile($file)
{
    include $file;
}
<?php

// autoload_psr4.php @generated by Composer

$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);

return array(
    'Symfony\\Polyfill\\Php80\\' => array($vendorDir . '/symfony/polyfill-php80'),
    'Symfony\\Polyfill\\Php73\\' => array($vendorDir . '/symfony/polyfill-php73'),
    'Symfony\\Polyfill\\Php72\\' => array($vendorDir . '/symfony/polyfill-php72'),
    'Symfony\\Polyfill\\Php70\\' => array($vendorDir . '/symfony/polyfill-php70'),
    'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'),
    'Symfony\\Polyfill\\Ctype\\' => array($vendorDir . '/symfony/polyfill-ctype'),
    'Symfony\\Contracts\\Service\\' => array($vendorDir . '/symfony/service-contracts'),
    'Symfony\\Contracts\\EventDispatcher\\' => array($vendorDir . '/symfony/event-dispatcher-contracts'),
    'Symfony\\Component\\Yaml\\' => array($vendorDir . '/symfony/yaml'),
    'Symfony\\Component\\Stopwatch\\' => array($vendorDir . '/symfony/stopwatch'),
    'Symfony\\Component\\Process\\' => array($vendorDir . '/symfony/process'),
    'Symfony\\Component\\OptionsResolver\\' => array($vendorDir . '/symfony/options-resolver'),
    'Symfony\\Component\\Finder\\' => array($vendorDir . '/symfony/finder'),
    'Symfony\\Component\\Filesystem\\' => array($vendorDir . '/symfony/filesystem'),
    'Symfony\\Component\\EventDispatcher\\' => array($vendorDir . '/symfony/event-dispatcher'),
    'Symfony\\Component\\Console\\' => array($vendorDir . '/symfony/console'),
    'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'),
    'Psr\\Container\\' => array($vendorDir . '/psr/container/src'),
    'PhpCsFixer\\' => array($vendorDir . '/friendsofphp/php-cs-fixer/src'),
    'Doctrine\\Common\\Lexer\\' => array($vendorDir . '/doctrine/lexer/lib/Doctrine/Common/Lexer'),
    'Doctrine\\Common\\Annotations\\' => array($vendorDir . '/doctrine/annotations/lib/Doctrine/Common/Annotations'),
    'Composer\\XdebugHandler\\' => array($vendorDir . '/composer/xdebug-handler/src'),
    'Composer\\Semver\\' => array($vendorDir . '/composer/semver/src'),
    'Brightzone\\GremlinDriver\\Tests\\' => array($vendorDir . '/brightzone/gremlin-php/tests'),
    'Brightzone\\GremlinDriver\\' => array($vendorDir . '/brightzone/gremlin-php/src'),
);
<?php

// autoload_classmap.php @generated by Composer

$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);

return array(
    'ArithmeticError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/ArithmeticError.php',
    'AssertionError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/AssertionError.php',
    'DivisionByZeroError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/DivisionByZeroError.php',
    'Error' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/Error.php',
    'JsonException' => $vendorDir . '/symfony/polyfill-php73/Resources/stubs/JsonException.php',
    'ParseError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/ParseError.php',
    'PhpCsFixer\\Diff\\GeckoPackages\\DiffOutputBuilder\\ConfigurationException' => $vendorDir . '/php-cs-fixer/diff/src/GeckoPackages/DiffOutputBuilder/ConfigurationException.php',
    'PhpCsFixer\\Diff\\GeckoPackages\\DiffOutputBuilder\\UnifiedDiffOutputBuilder' => $vendorDir . '/php-cs-fixer/diff/src/GeckoPackages/DiffOutputBuilder/UnifiedDiffOutputBuilder.php',
    'PhpCsFixer\\Diff\\v1_4\\Chunk' => $vendorDir . '/php-cs-fixer/diff/src/v1_4/Chunk.php',
    'PhpCsFixer\\Diff\\v1_4\\Diff' => $vendorDir . '/php-cs-fixer/diff/src/v1_4/Diff.php',
    'PhpCsFixer\\Diff\\v1_4\\Differ' => $vendorDir . '/php-cs-fixer/diff/src/v1_4/Differ.php',
    'PhpCsFixer\\Diff\\v1_4\\LCS\\LongestCommonSubsequence' => $vendorDir . '/php-cs-fixer/diff/src/v1_4/LCS/LongestCommonSubsequence.php',
    'PhpCsFixer\\Diff\\v1_4\\LCS\\MemoryEfficientImplementation' => $vendorDir . '/php-cs-fixer/diff/src/v1_4/LCS/MemoryEfficientLongestCommonSubsequenceImplementation.php',
    'PhpCsFixer\\Diff\\v1_4\\LCS\\TimeEfficientImplementation' => $vendorDir . '/php-cs-fixer/diff/src/v1_4/LCS/TimeEfficientLongestCommonSubsequenceImplementation.php',
    'PhpCsFixer\\Diff\\v1_4\\Line' => $vendorDir . '/php-cs-fixer/diff/src/v1_4/Line.php',
    'PhpCsFixer\\Diff\\v1_4\\Parser' => $vendorDir . '/php-cs-fixer/diff/src/v1_4/Parser.php',
    'PhpCsFixer\\Diff\\v2_0\\Chunk' => $vendorDir . '/php-cs-fixer/diff/src/v2_0/Chunk.php',
    'PhpCsFixer\\Diff\\v2_0\\Diff' => $vendorDir . '/php-cs-fixer/diff/src/v2_0/Diff.php',
    'PhpCsFixer\\Diff\\v2_0\\Differ' => $vendorDir . '/php-cs-fixer/diff/src/v2_0/Differ.php',
    'PhpCsFixer\\Diff\\v2_0\\Exception' => $vendorDir . '/php-cs-fixer/diff/src/v2_0/Exception/Exception.php',
    'PhpCsFixer\\Diff\\v2_0\\InvalidArgumentException' => $vendorDir . '/php-cs-fixer/diff/src/v2_0/Exception/InvalidArgumentException.php',
    'PhpCsFixer\\Diff\\v2_0\\Line' => $vendorDir . '/php-cs-fixer/diff/src/v2_0/Line.php',
    'PhpCsFixer\\Diff\\v2_0\\LongestCommonSubsequenceCalculator' => $vendorDir . '/php-cs-fixer/diff/src/v2_0/LongestCommonSubsequenceCalculator.php',
    'PhpCsFixer\\Diff\\v2_0\\MemoryEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/php-cs-fixer/diff/src/v2_0/MemoryEfficientLongestCommonSubsequenceCalculator.php',
    'PhpCsFixer\\Diff\\v2_0\\Output\\AbstractChunkOutputBuilder' => $vendorDir . '/php-cs-fixer/diff/src/v2_0/Output/AbstractChunkOutputBuilder.php',
    'PhpCsFixer\\Diff\\v2_0\\Output\\DiffOnlyOutputBuilder' => $vendorDir . '/php-cs-fixer/diff/src/v2_0/Output/DiffOnlyOutputBuilder.php',
    'PhpCsFixer\\Diff\\v2_0\\Output\\DiffOutputBuilderInterface' => $vendorDir . '/php-cs-fixer/diff/src/v2_0/Output/DiffOutputBuilderInterface.php',
    'PhpCsFixer\\Diff\\v2_0\\Output\\UnifiedDiffOutputBuilder' => $vendorDir . '/php-cs-fixer/diff/src/v2_0/Output/UnifiedDiffOutputBuilder.php',
    'PhpCsFixer\\Diff\\v2_0\\Parser' => $vendorDir . '/php-cs-fixer/diff/src/v2_0/Parser.php',
    'PhpCsFixer\\Diff\\v2_0\\TimeEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/php-cs-fixer/diff/src/v2_0/TimeEfficientLongestCommonSubsequenceCalculator.php',
    'PhpCsFixer\\Diff\\v3_0\\Chunk' => $vendorDir . '/php-cs-fixer/diff/src/v3_0/Chunk.php',
    'PhpCsFixer\\Diff\\v3_0\\ConfigurationException' => $vendorDir . '/php-cs-fixer/diff/src/v3_0/Exception/ConfigurationException.php',
    'PhpCsFixer\\Diff\\v3_0\\Diff' => $vendorDir . '/php-cs-fixer/diff/src/v3_0/Diff.php',
    'PhpCsFixer\\Diff\\v3_0\\Differ' => $vendorDir . '/php-cs-fixer/diff/src/v3_0/Differ.php',
    'PhpCsFixer\\Diff\\v3_0\\Exception' => $vendorDir . '/php-cs-fixer/diff/src/v3_0/Exception/Exception.php',
    'PhpCsFixer\\Diff\\v3_0\\InvalidArgumentException' => $vendorDir . '/php-cs-fixer/diff/src/v3_0/Exception/InvalidArgumentException.php',
    'PhpCsFixer\\Diff\\v3_0\\Line' => $vendorDir . '/php-cs-fixer/diff/src/v3_0/Line.php',
    'PhpCsFixer\\Diff\\v3_0\\LongestCommonSubsequenceCalculator' => $vendorDir . '/php-cs-fixer/diff/src/v3_0/LongestCommonSubsequenceCalculator.php',
    'PhpCsFixer\\Diff\\v3_0\\MemoryEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/php-cs-fixer/diff/src/v3_0/MemoryEfficientLongestCommonSubsequenceCalculator.php',
    'PhpCsFixer\\Diff\\v3_0\\Output\\AbstractChunkOutputBuilder' => $vendorDir . '/php-cs-fixer/diff/src/v3_0/Output/AbstractChunkOutputBuilder.php',
    'PhpCsFixer\\Diff\\v3_0\\Output\\DiffOnlyOutputBuilder' => $vendorDir . '/php-cs-fixer/diff/src/v3_0/Output/DiffOnlyOutputBuilder.php',
    'PhpCsFixer\\Diff\\v3_0\\Output\\DiffOutputBuilderInterface' => $vendorDir . '/php-cs-fixer/diff/src/v3_0/Output/DiffOutputBuilderInterface.php',
    'PhpCsFixer\\Diff\\v3_0\\Output\\StrictUnifiedDiffOutputBuilder' => $vendorDir . '/php-cs-fixer/diff/src/v3_0/Output/StrictUnifiedDiffOutputBuilder.php',
    'PhpCsFixer\\Diff\\v3_0\\Output\\UnifiedDiffOutputBuilder' => $vendorDir . '/php-cs-fixer/diff/src/v3_0/Output/UnifiedDiffOutputBuilder.php',
    'PhpCsFixer\\Diff\\v3_0\\Parser' => $vendorDir . '/php-cs-fixer/diff/src/v3_0/Parser.php',
    'PhpCsFixer\\Diff\\v3_0\\TimeEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/php-cs-fixer/diff/src/v3_0/TimeEfficientLongestCommonSubsequenceCalculator.php',
    'PhpCsFixer\\Tests\\TestCase' => $vendorDir . '/friendsofphp/php-cs-fixer/tests/TestCase.php',
    'PhpCsFixer\\Tests\\Test\\AbstractFixerTestCase' => $vendorDir . '/friendsofphp/php-cs-fixer/tests/Test/AbstractFixerTestCase.php',
    'PhpCsFixer\\Tests\\Test\\AbstractIntegrationCaseFactory' => $vendorDir . '/friendsofphp/php-cs-fixer/tests/Test/AbstractIntegrationCaseFactory.php',
    'PhpCsFixer\\Tests\\Test\\AbstractIntegrationTestCase' => $vendorDir . '/friendsofphp/php-cs-fixer/tests/Test/AbstractIntegrationTestCase.php',
    'PhpCsFixer\\Tests\\Test\\Assert\\AssertTokensTrait' => $vendorDir . '/friendsofphp/php-cs-fixer/tests/Test/Assert/AssertTokensTrait.php',
    'PhpCsFixer\\Tests\\Test\\IntegrationCase' => $vendorDir . '/friendsofphp/php-cs-fixer/tests/Test/IntegrationCase.php',
    'PhpCsFixer\\Tests\\Test\\IntegrationCaseFactory' => $vendorDir . '/friendsofphp/php-cs-fixer/tests/Test/IntegrationCaseFactory.php',
    'PhpCsFixer\\Tests\\Test\\IntegrationCaseFactoryInterface' => $vendorDir . '/friendsofphp/php-cs-fixer/tests/Test/IntegrationCaseFactoryInterface.php',
    'PhpCsFixer\\Tests\\Test\\InternalIntegrationCaseFactory' => $vendorDir . '/friendsofphp/php-cs-fixer/tests/Test/InternalIntegrationCaseFactory.php',
    'PhpCsFixer\\Tests\\Test\\IsIdenticalConstraint' => $vendorDir . '/friendsofphp/php-cs-fixer/tests/Test/IsIdenticalConstraint.php',
    'SessionUpdateTimestampHandlerInterface' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/SessionUpdateTimestampHandlerInterface.php',
    'Stringable' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/Stringable.php',
    'TypeError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/TypeError.php',
    'ValueError' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/ValueError.php',
);
<?php

// autoload_static.php @generated by Composer

namespace Composer\Autoload;

class ComposerStaticInit30e87d93a7a9ab176e5b6c4a46fdb428
{
    public static $files = array (
        'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php',
        '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php',
        '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
        '0d59ee240a4cd96ddbb4ff164fccea4d' => __DIR__ . '/..' . '/symfony/polyfill-php73/bootstrap.php',
        '6e3fae29631ef280660b3cdad06f25a8' => __DIR__ . '/..' . '/symfony/deprecation-contracts/function.php',
        '023d27dca8066ef29e6739335ea73bad' => __DIR__ . '/..' . '/symfony/polyfill-php70/bootstrap.php',
        '25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php',
    );

    public static $prefixLengthsPsr4 = array (
        'S' => 
        array (
            'Symfony\\Polyfill\\Php80\\' => 23,
            'Symfony\\Polyfill\\Php73\\' => 23,
            'Symfony\\Polyfill\\Php72\\' => 23,
            'Symfony\\Polyfill\\Php70\\' => 23,
            'Symfony\\Polyfill\\Mbstring\\' => 26,
            'Symfony\\Polyfill\\Ctype\\' => 23,
            'Symfony\\Contracts\\Service\\' => 26,
            'Symfony\\Contracts\\EventDispatcher\\' => 34,
            'Symfony\\Component\\Yaml\\' => 23,
            'Symfony\\Component\\Stopwatch\\' => 28,
            'Symfony\\Component\\Process\\' => 26,
            'Symfony\\Component\\OptionsResolver\\' => 34,
            'Symfony\\Component\\Finder\\' => 25,
            'Symfony\\Component\\Filesystem\\' => 29,
            'Symfony\\Component\\EventDispatcher\\' => 34,
            'Symfony\\Component\\Console\\' => 26,
        ),
        'P' => 
        array (
            'Psr\\Log\\' => 8,
            'Psr\\Container\\' => 14,
            'PhpCsFixer\\' => 11,
        ),
        'D' => 
        array (
            'Doctrine\\Common\\Lexer\\' => 22,
            'Doctrine\\Common\\Annotations\\' => 28,
        ),
        'C' => 
        array (
            'Composer\\XdebugHandler\\' => 23,
            'Composer\\Semver\\' => 16,
        ),
        'B' => 
        array (
            'Brightzone\\GremlinDriver\\Tests\\' => 31,
            'Brightzone\\GremlinDriver\\' => 25,
        ),
    );

    public static $prefixDirsPsr4 = array (
        'Symfony\\Polyfill\\Php80\\' => 
        array (
            0 => __DIR__ . '/..' . '/symfony/polyfill-php80',
        ),
        'Symfony\\Polyfill\\Php73\\' => 
        array (
            0 => __DIR__ . '/..' . '/symfony/polyfill-php73',
        ),
        'Symfony\\Polyfill\\Php72\\' => 
        array (
            0 => __DIR__ . '/..' . '/symfony/polyfill-php72',
        ),
        'Symfony\\Polyfill\\Php70\\' => 
        array (
            0 => __DIR__ . '/..' . '/symfony/polyfill-php70',
        ),
        'Symfony\\Polyfill\\Mbstring\\' => 
        array (
            0 => __DIR__ . '/..' . '/symfony/polyfill-mbstring',
        ),
        'Symfony\\Polyfill\\Ctype\\' => 
        array (
            0 => __DIR__ . '/..' . '/symfony/polyfill-ctype',
        ),
        'Symfony\\Contracts\\Service\\' => 
        array (
            0 => __DIR__ . '/..' . '/symfony/service-contracts',
        ),
        'Symfony\\Contracts\\EventDispatcher\\' => 
        array (
            0 => __DIR__ . '/..' . '/symfony/event-dispatcher-contracts',
        ),
        'Symfony\\Component\\Yaml\\' => 
        array (
            0 => __DIR__ . '/..' . '/symfony/yaml',
        ),
        'Symfony\\Component\\Stopwatch\\' => 
        array (
            0 => __DIR__ . '/..' . '/symfony/stopwatch',
        ),
        'Symfony\\Component\\Process\\' => 
        array (
            0 => __DIR__ . '/..' . '/symfony/process',
        ),
        'Symfony\\Component\\OptionsResolver\\' => 
        array (
            0 => __DIR__ . '/..' . '/symfony/options-resolver',
        ),
        'Symfony\\Component\\Finder\\' => 
        array (
            0 => __DIR__ . '/..' . '/symfony/finder',
        ),
        'Symfony\\Component\\Filesystem\\' => 
        array (
            0 => __DIR__ . '/..' . '/symfony/filesystem',
        ),
        'Symfony\\Component\\EventDispatcher\\' => 
        array (
            0 => __DIR__ . '/..' . '/symfony/event-dispatcher',
        ),
        'Symfony\\Component\\Console\\' => 
        array (
            0 => __DIR__ . '/..' . '/symfony/console',
        ),
        'Psr\\Log\\' => 
        array (
            0 => __DIR__ . '/..' . '/psr/log/Psr/Log',
        ),
        'Psr\\Container\\' => 
        array (
            0 => __DIR__ . '/..' . '/psr/container/src',
        ),
        'PhpCsFixer\\' => 
        array (
            0 => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src',
        ),
        'Doctrine\\Common\\Lexer\\' => 
        array (
            0 => __DIR__ . '/..' . '/doctrine/lexer/lib/Doctrine/Common/Lexer',
        ),
        'Doctrine\\Common\\Annotations\\' => 
        array (
            0 => __DIR__ . '/..' . '/doctrine/annotations/lib/Doctrine/Common/Annotations',
        ),
        'Composer\\XdebugHandler\\' => 
        array (
            0 => __DIR__ . '/..' . '/composer/xdebug-handler/src',
        ),
        'Composer\\Semver\\' => 
        array (
            0 => __DIR__ . '/..' . '/composer/semver/src',
        ),
        'Brightzone\\GremlinDriver\\Tests\\' => 
        array (
            0 => __DIR__ . '/..' . '/brightzone/gremlin-php/tests',
        ),
        'Brightzone\\GremlinDriver\\' => 
        array (
            0 => __DIR__ . '/..' . '/brightzone/gremlin-php/src',
        ),
    );

    public static $prefixesPsr0 = array (
        'P' => 
        array (
            'ProgressBar' => 
            array (
                0 => __DIR__ . '/..' . '/guiguiboy/php-cli-progress-bar',
            ),
        ),
    );

    public static $classMap = array (
        'ArithmeticError' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/ArithmeticError.php',
        'AssertionError' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/AssertionError.php',
        'DivisionByZeroError' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/DivisionByZeroError.php',
        'Error' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/Error.php',
        'JsonException' => __DIR__ . '/..' . '/symfony/polyfill-php73/Resources/stubs/JsonException.php',
        'ParseError' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/ParseError.php',
        'PhpCsFixer\\Diff\\GeckoPackages\\DiffOutputBuilder\\ConfigurationException' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/GeckoPackages/DiffOutputBuilder/ConfigurationException.php',
        'PhpCsFixer\\Diff\\GeckoPackages\\DiffOutputBuilder\\UnifiedDiffOutputBuilder' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/GeckoPackages/DiffOutputBuilder/UnifiedDiffOutputBuilder.php',
        'PhpCsFixer\\Diff\\v1_4\\Chunk' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/v1_4/Chunk.php',
        'PhpCsFixer\\Diff\\v1_4\\Diff' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/v1_4/Diff.php',
        'PhpCsFixer\\Diff\\v1_4\\Differ' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/v1_4/Differ.php',
        'PhpCsFixer\\Diff\\v1_4\\LCS\\LongestCommonSubsequence' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/v1_4/LCS/LongestCommonSubsequence.php',
        'PhpCsFixer\\Diff\\v1_4\\LCS\\MemoryEfficientImplementation' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/v1_4/LCS/MemoryEfficientLongestCommonSubsequenceImplementation.php',
        'PhpCsFixer\\Diff\\v1_4\\LCS\\TimeEfficientImplementation' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/v1_4/LCS/TimeEfficientLongestCommonSubsequenceImplementation.php',
        'PhpCsFixer\\Diff\\v1_4\\Line' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/v1_4/Line.php',
        'PhpCsFixer\\Diff\\v1_4\\Parser' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/v1_4/Parser.php',
        'PhpCsFixer\\Diff\\v2_0\\Chunk' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/v2_0/Chunk.php',
        'PhpCsFixer\\Diff\\v2_0\\Diff' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/v2_0/Diff.php',
        'PhpCsFixer\\Diff\\v2_0\\Differ' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/v2_0/Differ.php',
        'PhpCsFixer\\Diff\\v2_0\\Exception' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/v2_0/Exception/Exception.php',
        'PhpCsFixer\\Diff\\v2_0\\InvalidArgumentException' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/v2_0/Exception/InvalidArgumentException.php',
        'PhpCsFixer\\Diff\\v2_0\\Line' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/v2_0/Line.php',
        'PhpCsFixer\\Diff\\v2_0\\LongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/v2_0/LongestCommonSubsequenceCalculator.php',
        'PhpCsFixer\\Diff\\v2_0\\MemoryEfficientLongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/v2_0/MemoryEfficientLongestCommonSubsequenceCalculator.php',
        'PhpCsFixer\\Diff\\v2_0\\Output\\AbstractChunkOutputBuilder' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/v2_0/Output/AbstractChunkOutputBuilder.php',
        'PhpCsFixer\\Diff\\v2_0\\Output\\DiffOnlyOutputBuilder' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/v2_0/Output/DiffOnlyOutputBuilder.php',
        'PhpCsFixer\\Diff\\v2_0\\Output\\DiffOutputBuilderInterface' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/v2_0/Output/DiffOutputBuilderInterface.php',
        'PhpCsFixer\\Diff\\v2_0\\Output\\UnifiedDiffOutputBuilder' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/v2_0/Output/UnifiedDiffOutputBuilder.php',
        'PhpCsFixer\\Diff\\v2_0\\Parser' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/v2_0/Parser.php',
        'PhpCsFixer\\Diff\\v2_0\\TimeEfficientLongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/v2_0/TimeEfficientLongestCommonSubsequenceCalculator.php',
        'PhpCsFixer\\Diff\\v3_0\\Chunk' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/v3_0/Chunk.php',
        'PhpCsFixer\\Diff\\v3_0\\ConfigurationException' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/v3_0/Exception/ConfigurationException.php',
        'PhpCsFixer\\Diff\\v3_0\\Diff' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/v3_0/Diff.php',
        'PhpCsFixer\\Diff\\v3_0\\Differ' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/v3_0/Differ.php',
        'PhpCsFixer\\Diff\\v3_0\\Exception' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/v3_0/Exception/Exception.php',
        'PhpCsFixer\\Diff\\v3_0\\InvalidArgumentException' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/v3_0/Exception/InvalidArgumentException.php',
        'PhpCsFixer\\Diff\\v3_0\\Line' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/v3_0/Line.php',
        'PhpCsFixer\\Diff\\v3_0\\LongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/v3_0/LongestCommonSubsequenceCalculator.php',
        'PhpCsFixer\\Diff\\v3_0\\MemoryEfficientLongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/v3_0/MemoryEfficientLongestCommonSubsequenceCalculator.php',
        'PhpCsFixer\\Diff\\v3_0\\Output\\AbstractChunkOutputBuilder' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/v3_0/Output/AbstractChunkOutputBuilder.php',
        'PhpCsFixer\\Diff\\v3_0\\Output\\DiffOnlyOutputBuilder' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/v3_0/Output/DiffOnlyOutputBuilder.php',
        'PhpCsFixer\\Diff\\v3_0\\Output\\DiffOutputBuilderInterface' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/v3_0/Output/DiffOutputBuilderInterface.php',
        'PhpCsFixer\\Diff\\v3_0\\Output\\StrictUnifiedDiffOutputBuilder' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/v3_0/Output/StrictUnifiedDiffOutputBuilder.php',
        'PhpCsFixer\\Diff\\v3_0\\Output\\UnifiedDiffOutputBuilder' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/v3_0/Output/UnifiedDiffOutputBuilder.php',
        'PhpCsFixer\\Diff\\v3_0\\Parser' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/v3_0/Parser.php',
        'PhpCsFixer\\Diff\\v3_0\\TimeEfficientLongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/php-cs-fixer/diff/src/v3_0/TimeEfficientLongestCommonSubsequenceCalculator.php',
        'PhpCsFixer\\Tests\\TestCase' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/tests/TestCase.php',
        'PhpCsFixer\\Tests\\Test\\AbstractFixerTestCase' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/tests/Test/AbstractFixerTestCase.php',
        'PhpCsFixer\\Tests\\Test\\AbstractIntegrationCaseFactory' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/tests/Test/AbstractIntegrationCaseFactory.php',
        'PhpCsFixer\\Tests\\Test\\AbstractIntegrationTestCase' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/tests/Test/AbstractIntegrationTestCase.php',
        'PhpCsFixer\\Tests\\Test\\Assert\\AssertTokensTrait' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/tests/Test/Assert/AssertTokensTrait.php',
        'PhpCsFixer\\Tests\\Test\\IntegrationCase' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/tests/Test/IntegrationCase.php',
        'PhpCsFixer\\Tests\\Test\\IntegrationCaseFactory' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/tests/Test/IntegrationCaseFactory.php',
        'PhpCsFixer\\Tests\\Test\\IntegrationCaseFactoryInterface' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/tests/Test/IntegrationCaseFactoryInterface.php',
        'PhpCsFixer\\Tests\\Test\\InternalIntegrationCaseFactory' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/tests/Test/InternalIntegrationCaseFactory.php',
        'PhpCsFixer\\Tests\\Test\\IsIdenticalConstraint' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/tests/Test/IsIdenticalConstraint.php',
        'SessionUpdateTimestampHandlerInterface' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/SessionUpdateTimestampHandlerInterface.php',
        'Stringable' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Stringable.php',
        'TypeError' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/TypeError.php',
        'ValueError' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/ValueError.php',
    );

    public static function getInitializer(ClassLoader $loader)
    {
        return \Closure::bind(function () use ($loader) {
            $loader->prefixLengthsPsr4 = ComposerStaticInit30e87d93a7a9ab176e5b6c4a46fdb428::$prefixLengthsPsr4;
            $loader->prefixDirsPsr4 = ComposerStaticInit30e87d93a7a9ab176e5b6c4a46fdb428::$prefixDirsPsr4;
            $loader->prefixesPsr0 = ComposerStaticInit30e87d93a7a9ab176e5b6c4a46fdb428::$prefixesPsr0;
            $loader->classMap = ComposerStaticInit30e87d93a7a9ab176e5b6c4a46fdb428::$classMap;

        }, null, ClassLoader::class);
    }
}
<?php

// autoload_real.php @generated by Composer

class ComposerAutoloaderInit30e87d93a7a9ab176e5b6c4a46fdb428
{
    private static $loader;

    public static function loadClassLoader($class)
    {
        if ('Composer\Autoload\ClassLoader' === $class) {
            require __DIR__ . '/ClassLoader.php';
        }
    }

    /**
     * @return \Composer\Autoload\ClassLoader
     */
    public static function getLoader()
    {
        if (null !== self::$loader) {
            return self::$loader;
        }

        spl_autoload_register(array('ComposerAutoloaderInit30e87d93a7a9ab176e5b6c4a46fdb428', 'loadClassLoader'), true, true);
        self::$loader = $loader = new \Composer\Autoload\ClassLoader();
        spl_autoload_unregister(array('ComposerAutoloaderInit30e87d93a7a9ab176e5b6c4a46fdb428', 'loadClassLoader'));

        $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
        if ($useStaticLoader) {
            require_once __DIR__ . '/autoload_static.php';

            call_user_func(\Composer\Autoload\ComposerStaticInit30e87d93a7a9ab176e5b6c4a46fdb428::getInitializer($loader));
        } else {
            $map = require __DIR__ . '/autoload_namespaces.php';
            foreach ($map as $namespace => $path) {
                $loader->set($namespace, $path);
            }

            $map = require __DIR__ . '/autoload_psr4.php';
            foreach ($map as $namespace => $path) {
                $loader->setPsr4($namespace, $path);
            }

            $classMap = require __DIR__ . '/autoload_classmap.php';
            if ($classMap) {
                $loader->addClassMap($classMap);
            }
        }

        $loader->register(true);

        if ($useStaticLoader) {
            $includeFiles = Composer\Autoload\ComposerStaticInit30e87d93a7a9ab176e5b6c4a46fdb428::$files;
        } else {
            $includeFiles = require __DIR__ . '/autoload_files.php';
        }
        foreach ($includeFiles as $fileIdentifier => $file) {
            composerRequire30e87d93a7a9ab176e5b6c4a46fdb428($fileIdentifier, $file);
        }

        return $loader;
    }
}

function composerRequire30e87d93a7a9ab176e5b6c4a46fdb428($fileIdentifier, $file)
{
    if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
        require $file;

        $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
    }
}
[
    {
        "name": "brightzone/gremlin-php",
        "version": "v3.1.1",
        "version_normalized": "3.1.1.0",
        "source": {
            "type": "git",
            "url": "https://github.com/PommeVerte/gremlin-php.git",
            "reference": "507eb6d1c6719c65f1ecb13b9f5d1032edd3ff8b"
        },
        "dist": {
            "type": "zip",
            "url": "https://api.github.com/repos/PommeVerte/gremlin-php/zipball/507eb6d1c6719c65f1ecb13b9f5d1032edd3ff8b",
            "reference": "507eb6d1c6719c65f1ecb13b9f5d1032edd3ff8b",
            "shasum": ""
        },
        "require": {
            "php": ">=5.5"
        },
        "require-dev": {
            "phpunit/php-code-coverage": "~2.2||~4.0||~5.3",
            "phpunit/phpunit": "~4.8||~5.7||~6.5",
            "satooshi/php-coveralls": "~2.0",
            "yiisoft/yii2-apidoc": "~2.1"
        },
        "time": "2019-01-21T23:20:36+00:00",
        "type": "library",
        "extra": {
            "asset-installer-paths": {
                "npm-asset-library": "vendor/npm",
                "bower-asset-library": "vendor/bower"
            }
        },
        "installation-source": "dist",
        "autoload": {
            "psr-4": {
                "Brightzone\\GremlinDriver\\": "src/",
                "Brightzone\\GremlinDriver\\Tests\\": "tests/"
            }
        },
        "notification-url": "https://packagist.org/downloads/",
        "license": [
            "Apache 2"
        ],
        "authors": [
            {
                "name": "Brightzone",
                "email": "dylan.millikin@brightzone.fr"
            }
        ],
        "description": "gremlin-server client for php",
        "keywords": [
            "driver",
            "gremlin",
            "gremlin-server",
            "rexpro",
            "rexpro-php"
        ]
    },
    {
        "name": "composer/semver",
        "version": "1.5.1",
        "version_normalized": "1.5.1.0",
        "source": {
            "type": "git",
            "url": "https://github.com/composer/semver.git",
            "reference": "c6bea70230ef4dd483e6bbcab6005f682ed3a8de"
        },
        "dist": {
            "type": "zip",
            "url": "https://api.github.com/repos/composer/semver/zipball/c6bea70230ef4dd483e6bbcab6005f682ed3a8de",
            "reference": "c6bea70230ef4dd483e6bbcab6005f682ed3a8de",
            "shasum": ""
        },
        "require": {
            "php": "^5.3.2 || ^7.0"
        },
        "require-dev": {
            "phpunit/phpunit": "^4.5 || ^5.0.5"
        },
        "time": "2020-01-13T12:06:48+00:00",
        "type": "library",
        "extra": {
            "branch-alias": {
                "dev-master": "1.x-dev"
            }
        },
        "installation-source": "dist",
        "autoload": {
            "psr-4": {
                "Composer\\Semver\\": "src"
            }
        },
        "notification-url": "https://packagist.org/downloads/",
        "license": [
            "MIT"
        ],
        "authors": [
            {
                "name": "Nils Adermann",
                "email": "naderman@naderman.de",
                "homepage": "http://www.naderman.de"
            },
            {
                "name": "Jordi Boggiano",
                "email": "j.boggiano@seld.be",
                "homepage": "http://seld.be"
            },
            {
                "name": "Rob Bast",
                "email": "rob.bast@gmail.com",
                "homepage": "http://robbast.nl"
            }
        ],
        "description": "Semver library that offers utilities, version constraint parsing and validation.",
        "keywords": [
            "semantic",
            "semver",
            "validation",
            "versioning"
        ]
    },
    {
        "name": "composer/xdebug-handler",
        "version": "1.4.2",
        "version_normalized": "1.4.2.0",
        "source": {
            "type": "git",
            "url": "https://github.com/composer/xdebug-handler.git",
            "reference": "fa2aaf99e2087f013a14f7432c1cd2dd7d8f1f51"
        },
        "dist": {
            "type": "zip",
            "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/fa2aaf99e2087f013a14f7432c1cd2dd7d8f1f51",
            "reference": "fa2aaf99e2087f013a14f7432c1cd2dd7d8f1f51",
            "shasum": ""
        },
        "require": {
            "php": "^5.3.2 || ^7.0 || ^8.0",
            "psr/log": "^1.0"
        },
        "require-dev": {
            "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8"
        },
        "time": "2020-06-04T11:16:35+00:00",
        "type": "library",
        "installation-source": "dist",
        "autoload": {
            "psr-4": {
                "Composer\\XdebugHandler\\": "src"
            }
        },
        "notification-url": "https://packagist.org/downloads/",
        "license": [
            "MIT"
        ],
        "authors": [
            {
                "name": "John Stevenson",
                "email": "john-stevenson@blueyonder.co.uk"
            }
        ],
        "description": "Restarts a process without Xdebug.",
        "keywords": [
            "Xdebug",
            "performance"
        ],
        "funding": [
            {
                "url": "https://packagist.com",
                "type": "custom"
            },
            {
                "url": "https://github.com/composer",
                "type": "github"
            },
            {
                "url": "https://tidelift.com/funding/github/packagist/composer/composer",
                "type": "tidelift"
            }
        ]
    },
    {
        "name": "doctrine/annotations",
        "version": "1.10.3",
        "version_normalized": "1.10.3.0",
        "source": {
            "type": "git",
            "url": "https://github.com/doctrine/annotations.git",
            "reference": "5db60a4969eba0e0c197a19c077780aadbc43c5d"
        },
        "dist": {
            "type": "zip",
            "url": "https://api.github.com/repos/doctrine/annotations/zipball/5db60a4969eba0e0c197a19c077780aadbc43c5d",
            "reference": "5db60a4969eba0e0c197a19c077780aadbc43c5d",
            "shasum": ""
        },
        "require": {
            "doctrine/lexer": "1.*",
            "ext-tokenizer": "*",
            "php": "^7.1 || ^8.0"
        },
        "require-dev": {
            "doctrine/cache": "1.*",
            "phpunit/phpunit": "^7.5"
        },
        "time": "2020-05-25T17:24:27+00:00",
        "type": "library",
        "extra": {
            "branch-alias": {
                "dev-master": "1.9.x-dev"
            }
        },
        "installation-source": "dist",
        "autoload": {
            "psr-4": {
                "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations"
            }
        },
        "notification-url": "https://packagist.org/downloads/",
        "license": [
            "MIT"
        ],
        "authors": [
            {
                "name": "Guilherme Blanco",
                "email": "guilhermeblanco@gmail.com"
            },
            {
                "name": "Roman Borschel",
                "email": "roman@code-factory.org"
            },
            {
                "name": "Benjamin Eberlei",
                "email": "kontakt@beberlei.de"
            },
            {
                "name": "Jonathan Wage",
                "email": "jonwage@gmail.com"
            },
            {
                "name": "Johannes Schmitt",
                "email": "schmittjoh@gmail.com"
            }
        ],
        "description": "Docblock Annotations Parser",
        "homepage": "http://www.doctrine-project.org",
        "keywords": [
            "annotations",
            "docblock",
            "parser"
        ]
    },
    {
        "name": "doctrine/lexer",
        "version": "1.2.1",
        "version_normalized": "1.2.1.0",
        "source": {
            "type": "git",
            "url": "https://github.com/doctrine/lexer.git",
            "reference": "e864bbf5904cb8f5bb334f99209b48018522f042"
        },
        "dist": {
            "type": "zip",
            "url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042",
            "reference": "e864bbf5904cb8f5bb334f99209b48018522f042",
            "shasum": ""
        },
        "require": {
            "php": "^7.2 || ^8.0"
        },
        "require-dev": {
            "doctrine/coding-standard": "^6.0",
            "phpstan/phpstan": "^0.11.8",
            "phpunit/phpunit": "^8.2"
        },
        "time": "2020-05-25T17:44:05+00:00",
        "type": "library",
        "extra": {
            "branch-alias": {
                "dev-master": "1.2.x-dev"
            }
        },
        "installation-source": "dist",
        "autoload": {
            "psr-4": {
                "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer"
            }
        },
        "notification-url": "https://packagist.org/downloads/",
        "license": [
            "MIT"
        ],
        "authors": [
            {
                "name": "Guilherme Blanco",
                "email": "guilhermeblanco@gmail.com"
            },
            {
                "name": "Roman Borschel",
                "email": "roman@code-factory.org"
            },
            {
                "name": "Johannes Schmitt",
                "email": "schmittjoh@gmail.com"
            }
        ],
        "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.",
        "homepage": "https://www.doctrine-project.org/projects/lexer.html",
        "keywords": [
            "annotations",
            "docblock",
            "lexer",
            "parser",
            "php"
        ],
        "funding": [
            {
                "url": "https://www.doctrine-project.org/sponsorship.html",
                "type": "custom"
            },
            {
                "url": "https://www.patreon.com/phpdoctrine",
                "type": "patreon"
            },
            {
                "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer",
                "type": "tidelift"
            }
        ]
    },
    {
        "name": "friendsofphp/php-cs-fixer",
        "version": "v2.16.4",
        "version_normalized": "2.16.4.0",
        "source": {
            "type": "git",
            "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git",
            "reference": "1023c3458137ab052f6ff1e09621a721bfdeca13"
        },
        "dist": {
            "type": "zip",
            "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/1023c3458137ab052f6ff1e09621a721bfdeca13",
            "reference": "1023c3458137ab052f6ff1e09621a721bfdeca13",
            "shasum": ""
        },
        "require": {
            "composer/semver": "^1.4",
            "composer/xdebug-handler": "^1.2",
            "doctrine/annotations": "^1.2",
            "ext-json": "*",
            "ext-tokenizer": "*",
            "php": "^5.6 || ^7.0",
            "php-cs-fixer/diff": "^1.3",
            "symfony/console": "^3.4.17 || ^4.1.6 || ^5.0",
            "symfony/event-dispatcher": "^3.0 || ^4.0 || ^5.0",
            "symfony/filesystem": "^3.0 || ^4.0 || ^5.0",
            "symfony/finder": "^3.0 || ^4.0 || ^5.0",
            "symfony/options-resolver": "^3.0 || ^4.0 || ^5.0",
            "symfony/polyfill-php70": "^1.0",
            "symfony/polyfill-php72": "^1.4",
            "symfony/process": "^3.0 || ^4.0 || ^5.0",
            "symfony/stopwatch": "^3.0 || ^4.0 || ^5.0"
        },
        "require-dev": {
            "johnkary/phpunit-speedtrap": "^1.1 || ^2.0 || ^3.0",
            "justinrainbow/json-schema": "^5.0",
            "keradus/cli-executor": "^1.2",
            "mikey179/vfsstream": "^1.6",
            "php-coveralls/php-coveralls": "^2.1",
            "php-cs-fixer/accessible-object": "^1.0",
            "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.1",
            "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.1",
            "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.1",
            "phpunitgoodpractices/traits": "^1.8",
            "symfony/phpunit-bridge": "^5.1",
            "symfony/yaml": "^3.0 || ^4.0 || ^5.0"
        },
        "suggest": {
            "ext-dom": "For handling output formats in XML",
            "ext-mbstring": "For handling non-UTF8 characters.",
            "php-cs-fixer/phpunit-constraint-isidenticalstring": "For IsIdenticalString constraint.",
            "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "For XmlMatchesXsd constraint.",
            "symfony/polyfill-mbstring": "When enabling `ext-mbstring` is not possible."
        },
        "time": "2020-06-27T23:57:46+00:00",
        "bin": [
            "php-cs-fixer"
        ],
        "type": "application",
        "installation-source": "dist",
        "autoload": {
            "psr-4": {
                "PhpCsFixer\\": "src/"
            },
            "classmap": [
                "tests/Test/AbstractFixerTestCase.php",
                "tests/Test/AbstractIntegrationCaseFactory.php",
                "tests/Test/AbstractIntegrationTestCase.php",
                "tests/Test/Assert/AssertTokensTrait.php",
                "tests/Test/IntegrationCase.php",
                "tests/Test/IntegrationCaseFactory.php",
                "tests/Test/IntegrationCaseFactoryInterface.php",
                "tests/Test/InternalIntegrationCaseFactory.php",
                "tests/Test/IsIdenticalConstraint.php",
                "tests/TestCase.php"
            ]
        },
        "notification-url": "https://packagist.org/downloads/",
        "license": [
            "MIT"
        ],
        "authors": [
            {
                "name": "Fabien Potencier",
                "email": "fabien@symfony.com"
            },
            {
                "name": "Dariusz Rumiński",
                "email": "dariusz.ruminski@gmail.com"
            }
        ],
        "description": "A tool to automatically fix PHP code style",
        "funding": [
            {
                "url": "https://github.com/keradus",
                "type": "github"
            }
        ]
    },
    {
        "name": "guiguiboy/php-cli-progress-bar",
        "version": "0.0.4",
        "version_normalized": "0.0.4.0",
        "source": {
            "type": "git",
            "url": "https://github.com/guiguiboy/PHP-CLI-Progress-Bar.git",
            "reference": "7d3eb61c1f0c164b9c3139af694b2d38171e4d04"
        },
        "dist": {
            "type": "zip",
            "url": "https://api.github.com/repos/guiguiboy/PHP-CLI-Progress-Bar/zipball/7d3eb61c1f0c164b9c3139af694b2d38171e4d04",
            "reference": "7d3eb61c1f0c164b9c3139af694b2d38171e4d04",
            "shasum": ""
        },
        "require": {
            "ext-mbstring": "*",
            "php": ">=5.3.0"
        },
        "time": "2014-11-19T13:12:00+00:00",
        "type": "library",
        "installation-source": "source",
        "autoload": {
            "psr-0": {
                "ProgressBar": "."
            }
        },
        "notification-url": "https://packagist.org/downloads/",
        "license": [
            "MIT"
        ],
        "authors": [
            {
                "name": "Guillaume",
                "email": "guillaume.bretou@gmail.com"
            }
        ],
        "description": "Progress bar for PHP CLI scripts",
        "homepage": "https://github.com/guiguiboy/PHP-CLI-Progress-Bar",
        "keywords": [
            "bar",
            "cli",
            "command-line",
            "progress"
        ]
    },
    {
        "name": "paragonie/random_compat",
        "version": "v9.99.99",
        "version_normalized": "9.99.99.0",
        "source": {
            "type": "git",
            "url": "https://github.com/paragonie/random_compat.git",
            "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95"
        },
        "dist": {
            "type": "zip",
            "url": "https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95",
            "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95",
            "shasum": ""
        },
        "require": {
            "php": "^7"
        },
        "require-dev": {
            "phpunit/phpunit": "4.*|5.*",
            "vimeo/psalm": "^1"
        },
        "suggest": {
            "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
        },
        "time": "2018-07-02T15:55:56+00:00",
        "type": "library",
        "installation-source": "dist",
        "notification-url": "https://packagist.org/downloads/",
        "license": [
            "MIT"
        ],
        "authors": [
            {
                "name": "Paragon Initiative Enterprises",
                "email": "security@paragonie.com",
                "homepage": "https://paragonie.com"
            }
        ],
        "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
        "keywords": [
            "csprng",
            "polyfill",
            "pseudorandom",
            "random"
        ]
    },
    {
        "name": "php-cs-fixer/diff",
        "version": "v1.3.0",
        "version_normalized": "1.3.0.0",
        "source": {
            "type": "git",
            "url": "https://github.com/PHP-CS-Fixer/diff.git",
            "reference": "78bb099e9c16361126c86ce82ec4405ebab8e756"
        },
        "dist": {
            "type": "zip",
            "url": "https://api.github.com/repos/PHP-CS-Fixer/diff/zipball/78bb099e9c16361126c86ce82ec4405ebab8e756",
            "reference": "78bb099e9c16361126c86ce82ec4405ebab8e756",
            "shasum": ""
        },
        "require": {
            "php": "^5.6 || ^7.0"
        },
        "require-dev": {
            "phpunit/phpunit": "^5.7.23 || ^6.4.3",
            "symfony/process": "^3.3"
        },
        "time": "2018-02-15T16:58:55+00:00",
        "type": "library",
        "installation-source": "dist",
        "autoload": {
            "classmap": [
                "src/"
            ]
        },
        "notification-url": "https://packagist.org/downloads/",
        "license": [
            "BSD-3-Clause"
        ],
        "authors": [
            {
                "name": "Kore Nordmann",
                "email": "mail@kore-nordmann.de"
            },
            {
                "name": "Sebastian Bergmann",
                "email": "sebastian@phpunit.de"
            },
            {
                "name": "SpacePossum"
            }
        ],
        "description": "sebastian/diff v2 backport support for PHP5.6",
        "homepage": "https://github.com/PHP-CS-Fixer",
        "keywords": [
            "diff"
        ]
    },
    {
        "name": "psr/container",
        "version": "1.0.0",
        "version_normalized": "1.0.0.0",
        "source": {
            "type": "git",
            "url": "https://github.com/php-fig/container.git",
            "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f"
        },
        "dist": {
            "type": "zip",
            "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
            "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
            "shasum": ""
        },
        "require": {
            "php": ">=5.3.0"
        },
        "time": "2017-02-14T16:28:37+00:00",
        "type": "library",
        "extra": {
            "branch-alias": {
                "dev-master": "1.0.x-dev"
            }
        },
        "installation-source": "dist",
        "autoload": {
            "psr-4": {
                "Psr\\Container\\": "src/"
            }
        },
        "notification-url": "https://packagist.org/downloads/",
        "license": [
            "MIT"
        ],
        "authors": [
            {
                "name": "PHP-FIG",
                "homepage": "http://www.php-fig.org/"
            }
        ],
        "description": "Common Container Interface (PHP FIG PSR-11)",
        "homepage": "https://github.com/php-fig/container",
        "keywords": [
            "PSR-11",
            "container",
            "container-interface",
            "container-interop",
            "psr"
        ]
    },
    {
        "name": "psr/log",
        "version": "1.1.3",
        "version_normalized": "1.1.3.0",
        "source": {
            "type": "git",
            "url": "https://github.com/php-fig/log.git",
            "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc"
        },
        "dist": {
            "type": "zip",
            "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc",
            "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc",
            "shasum": ""
        },
        "require": {
            "php": ">=5.3.0"
        },
        "time": "2020-03-23T09:12:05+00:00",
        "type": "library",
        "extra": {
            "branch-alias": {
                "dev-master": "1.1.x-dev"
            }
        },
        "installation-source": "dist",
        "autoload": {
            "psr-4": {
                "Psr\\Log\\": "Psr/Log/"
            }
        },
        "notification-url": "https://packagist.org/downloads/",
        "license": [
            "MIT"
        ],
        "authors": [
            {
                "name": "PHP-FIG",
                "homepage": "http://www.php-fig.org/"
            }
        ],
        "description": "Common interface for logging libraries",
        "homepage": "https://github.com/php-fig/log",
        "keywords": [
            "log",
            "psr",
            "psr-3"
        ]
    },
    {
        "name": "symfony/console",
        "version": "v4.4.10",
        "version_normalized": "4.4.10.0",
        "source": {
            "type": "git",
            "url": "https://github.com/symfony/console.git",
            "reference": "326b064d804043005526f5a0494cfb49edb59bb0"
        },
        "dist": {
            "type": "zip",
            "url": "https://api.github.com/repos/symfony/console/zipball/326b064d804043005526f5a0494cfb49edb59bb0",
            "reference": "326b064d804043005526f5a0494cfb49edb59bb0",
            "shasum": ""
        },
        "require": {
            "php": ">=7.1.3",
            "symfony/polyfill-mbstring": "~1.0",
            "symfony/polyfill-php73": "^1.8",
            "symfony/polyfill-php80": "^1.15",
            "symfony/service-contracts": "^1.1|^2"
        },
        "conflict": {
            "symfony/dependency-injection": "<3.4",
            "symfony/event-dispatcher": "<4.3|>=5",
            "symfony/lock": "<4.4",
            "symfony/process": "<3.3"
        },
        "provide": {
            "psr/log-implementation": "1.0"
        },
        "require-dev": {
            "psr/log": "~1.0",
            "symfony/config": "^3.4|^4.0|^5.0",
            "symfony/dependency-injection": "^3.4|^4.0|^5.0",
            "symfony/event-dispatcher": "^4.3",
            "symfony/lock": "^4.4|^5.0",
            "symfony/process": "^3.4|^4.0|^5.0",
            "symfony/var-dumper": "^4.3|^5.0"
        },
        "suggest": {
            "psr/log": "For using the console logger",
            "symfony/event-dispatcher": "",
            "symfony/lock": "",
            "symfony/process": ""
        },
        "time": "2020-05-30T20:06:45+00:00",
        "type": "library",
        "extra": {
            "branch-alias": {
                "dev-master": "4.4-dev"
            }
        },
        "installation-source": "dist",
        "autoload": {
            "psr-4": {
                "Symfony\\Component\\Console\\": ""
            },
            "exclude-from-classmap": [
                "/Tests/"
            ]
        },
        "notification-url": "https://packagist.org/downloads/",
        "license": [
            "MIT"
        ],
        "authors": [
            {
                "name": "Fabien Potencier",
                "email": "fabien@symfony.com"
            },
            {
                "name": "Symfony Community",
                "homepage": "https://symfony.com/contributors"
            }
        ],
        "description": "Symfony Console Component",
        "homepage": "https://symfony.com",
        "funding": [
            {
                "url": "https://symfony.com/sponsor",
                "type": "custom"
            },
            {
                "url": "https://github.com/fabpot",
                "type": "github"
            },
            {
                "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
                "type": "tidelift"
            }
        ]
    },
    {
        "name": "symfony/deprecation-contracts",
        "version": "v2.1.2",
        "version_normalized": "2.1.2.0",
        "source": {
            "type": "git",
            "url": "https://github.com/symfony/deprecation-contracts.git",
            "reference": "dd99cb3a0aff6cadd2a8d7d7ed72c2161e218337"
        },
        "dist": {
            "type": "zip",
            "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/dd99cb3a0aff6cadd2a8d7d7ed72c2161e218337",
            "reference": "dd99cb3a0aff6cadd2a8d7d7ed72c2161e218337",
            "shasum": ""
        },
        "require": {
            "php": ">=7.1"
        },
        "time": "2020-05-27T08:34:37+00:00",
        "type": "library",
        "extra": {
            "branch-alias": {
                "dev-master": "2.1-dev"
            }
        },
        "installation-source": "dist",
        "autoload": {
            "files": [
                "function.php"
            ]
        },
        "notification-url": "https://packagist.org/downloads/",
        "license": [
            "MIT"
        ],
        "authors": [
            {
                "name": "Nicolas Grekas",
                "email": "p@tchwork.com"
            },
            {
                "name": "Symfony Community",
                "homepage": "https://symfony.com/contributors"
            }
        ],
        "description": "A generic function and convention to trigger deprecation notices",
        "homepage": "https://symfony.com",
        "funding": [
            {
                "url": "https://symfony.com/sponsor",
                "type": "custom"
            },
            {
                "url": "https://github.com/fabpot",
                "type": "github"
            },
            {
                "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
                "type": "tidelift"
            }
        ]
    },
    {
        "name": "symfony/event-dispatcher",
        "version": "v4.4.10",
        "version_normalized": "4.4.10.0",
        "source": {
            "type": "git",
            "url": "https://github.com/symfony/event-dispatcher.git",
            "reference": "a5370aaa7807c7a439b21386661ffccf3dff2866"
        },
        "dist": {
            "type": "zip",
            "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/a5370aaa7807c7a439b21386661ffccf3dff2866",
            "reference": "a5370aaa7807c7a439b21386661ffccf3dff2866",
            "shasum": ""
        },
        "require": {
            "php": ">=7.1.3",
            "symfony/event-dispatcher-contracts": "^1.1"
        },
        "conflict": {
            "symfony/dependency-injection": "<3.4"
        },
        "provide": {
            "psr/event-dispatcher-implementation": "1.0",
            "symfony/event-dispatcher-implementation": "1.1"
        },
        "require-dev": {
            "psr/log": "~1.0",
            "symfony/config": "^3.4|^4.0|^5.0",
            "symfony/dependency-injection": "^3.4|^4.0|^5.0",
            "symfony/expression-language": "^3.4|^4.0|^5.0",
            "symfony/http-foundation": "^3.4|^4.0|^5.0",
            "symfony/service-contracts": "^1.1|^2",
            "symfony/stopwatch": "^3.4|^4.0|^5.0"
        },
        "suggest": {
            "symfony/dependency-injection": "",
            "symfony/http-kernel": ""
        },
        "time": "2020-05-20T08:37:50+00:00",
        "type": "library",
        "extra": {
            "branch-alias": {
                "dev-master": "4.4-dev"
            }
        },
        "installation-source": "dist",
        "autoload": {
            "psr-4": {
                "Symfony\\Component\\EventDispatcher\\": ""
            },
            "exclude-from-classmap": [
                "/Tests/"
            ]
        },
        "notification-url": "https://packagist.org/downloads/",
        "license": [
            "MIT"
        ],
        "authors": [
            {
                "name": "Fabien Potencier",
                "email": "fabien@symfony.com"
            },
            {
                "name": "Symfony Community",
                "homepage": "https://symfony.com/contributors"
            }
        ],
        "description": "Symfony EventDispatcher Component",
        "homepage": "https://symfony.com",
        "funding": [
            {
                "url": "https://symfony.com/sponsor",
                "type": "custom"
            },
            {
                "url": "https://github.com/fabpot",
                "type": "github"
            },
            {
                "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
                "type": "tidelift"
            }
        ]
    },
    {
        "name": "symfony/event-dispatcher-contracts",
        "version": "v1.1.7",
        "version_normalized": "1.1.7.0",
        "source": {
            "type": "git",
            "url": "https://github.com/symfony/event-dispatcher-contracts.git",
            "reference": "c43ab685673fb6c8d84220c77897b1d6cdbe1d18"
        },
        "dist": {
            "type": "zip",
            "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/c43ab685673fb6c8d84220c77897b1d6cdbe1d18",
            "reference": "c43ab685673fb6c8d84220c77897b1d6cdbe1d18",
            "shasum": ""
        },
        "require": {
            "php": "^7.1.3"
        },
        "suggest": {
            "psr/event-dispatcher": "",
            "symfony/event-dispatcher-implementation": ""
        },
        "time": "2019-09-17T09:54:03+00:00",
        "type": "library",
        "extra": {
            "branch-alias": {
                "dev-master": "1.1-dev"
            }
        },
        "installation-source": "dist",
        "autoload": {
            "psr-4": {
                "Symfony\\Contracts\\EventDispatcher\\": ""
            }
        },
        "notification-url": "https://packagist.org/downloads/",
        "license": [
            "MIT"
        ],
        "authors": [
            {
                "name": "Nicolas Grekas",
                "email": "p@tchwork.com"
            },
            {
                "name": "Symfony Community",
                "homepage": "https://symfony.com/contributors"
            }
        ],
        "description": "Generic abstractions related to dispatching event",
        "homepage": "https://symfony.com",
        "keywords": [
            "abstractions",
            "contracts",
            "decoupling",
            "interfaces",
            "interoperability",
            "standards"
        ]
    },
    {
        "name": "symfony/filesystem",
        "version": "v4.4.10",
        "version_normalized": "4.4.10.0",
        "source": {
            "type": "git",
            "url": "https://github.com/symfony/filesystem.git",
            "reference": "b27f491309db5757816db672b256ea2e03677d30"
        },
        "dist": {
            "type": "zip",
            "url": "https://api.github.com/repos/symfony/filesystem/zipball/b27f491309db5757816db672b256ea2e03677d30",
            "reference": "b27f491309db5757816db672b256ea2e03677d30",
            "shasum": ""
        },
        "require": {
            "php": ">=7.1.3",
            "symfony/polyfill-ctype": "~1.8"
        },
        "time": "2020-05-30T18:50:54+00:00",
        "type": "library",
        "extra": {
            "branch-alias": {
                "dev-master": "4.4-dev"
            }
        },
        "installation-source": "dist",
        "autoload": {
            "psr-4": {
                "Symfony\\Component\\Filesystem\\": ""
            },
            "exclude-from-classmap": [
                "/Tests/"
            ]
        },
        "notification-url": "https://packagist.org/downloads/",
        "license": [
            "MIT"
        ],
        "authors": [
            {
                "name": "Fabien Potencier",
                "email": "fabien@symfony.com"
            },
            {
                "name": "Symfony Community",
                "homepage": "https://symfony.com/contributors"
            }
        ],
        "description": "Symfony Filesystem Component",
        "homepage": "https://symfony.com",
        "funding": [
            {
                "url": "https://symfony.com/sponsor",
                "type": "custom"
            },
            {
                "url": "https://github.com/fabpot",
                "type": "github"
            },
            {
                "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
                "type": "tidelift"
            }
        ]
    },
    {
        "name": "symfony/finder",
        "version": "v4.4.10",
        "version_normalized": "4.4.10.0",
        "source": {
            "type": "git",
            "url": "https://github.com/symfony/finder.git",
            "reference": "5729f943f9854c5781984ed4907bbb817735776b"
        },
        "dist": {
            "type": "zip",
            "url": "https://api.github.com/repos/symfony/finder/zipball/5729f943f9854c5781984ed4907bbb817735776b",
            "reference": "5729f943f9854c5781984ed4907bbb817735776b",
            "shasum": ""
        },
        "require": {
            "php": "^7.1.3"
        },
        "time": "2020-03-27T16:54:36+00:00",
        "type": "library",
        "extra": {
            "branch-alias": {
                "dev-master": "4.4-dev"
            }
        },
        "installation-source": "dist",
        "autoload": {
            "psr-4": {
                "Symfony\\Component\\Finder\\": ""
            },
            "exclude-from-classmap": [
                "/Tests/"
            ]
        },
        "notification-url": "https://packagist.org/downloads/",
        "license": [
            "MIT"
        ],
        "authors": [
            {
                "name": "Fabien Potencier",
                "email": "fabien@symfony.com"
            },
            {
                "name": "Symfony Community",
                "homepage": "https://symfony.com/contributors"
            }
        ],
        "description": "Symfony Finder Component",
        "homepage": "https://symfony.com",
        "funding": [
            {
                "url": "https://symfony.com/sponsor",
                "type": "custom"
            },
            {
                "url": "https://github.com/fabpot",
                "type": "github"
            },
            {
                "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
                "type": "tidelift"
            }
        ]
    },
    {
        "name": "symfony/options-resolver",
        "version": "v5.1.2",
        "version_normalized": "5.1.2.0",
        "source": {
            "type": "git",
            "url": "https://github.com/symfony/options-resolver.git",
            "reference": "663f5dd5e14057d1954fe721f9709d35837f2447"
        },
        "dist": {
            "type": "zip",
            "url": "https://api.github.com/repos/symfony/options-resolver/zipball/663f5dd5e14057d1954fe721f9709d35837f2447",
            "reference": "663f5dd5e14057d1954fe721f9709d35837f2447",
            "shasum": ""
        },
        "require": {
            "php": ">=7.2.5",
            "symfony/deprecation-contracts": "^2.1",
            "symfony/polyfill-php80": "^1.15"
        },
        "time": "2020-05-23T13:08:13+00:00",
        "type": "library",
        "extra": {
            "branch-alias": {
                "dev-master": "5.1-dev"
            }
        },
        "installation-source": "dist",
        "autoload": {
            "psr-4": {
                "Symfony\\Component\\OptionsResolver\\": ""
            },
            "exclude-from-classmap": [
                "/Tests/"
            ]
        },
        "notification-url": "https://packagist.org/downloads/",
        "license": [
            "MIT"
        ],
        "authors": [
            {
                "name": "Fabien Potencier",
                "email": "fabien@symfony.com"
            },
            {
                "name": "Symfony Community",
                "homepage": "https://symfony.com/contributors"
            }
        ],
        "description": "Symfony OptionsResolver Component",
        "homepage": "https://symfony.com",
        "keywords": [
            "config",
            "configuration",
            "options"
        ],
        "funding": [
            {
                "url": "https://symfony.com/sponsor",
                "type": "custom"
            },
            {
                "url": "https://github.com/fabpot",
                "type": "github"
            },
            {
                "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
                "type": "tidelift"
            }
        ]
    },
    {
        "name": "symfony/polyfill-ctype",
        "version": "v1.17.1",
        "version_normalized": "1.17.1.0",
        "source": {
            "type": "git",
            "url": "https://github.com/symfony/polyfill-ctype.git",
            "reference": "2edd75b8b35d62fd3eeabba73b26b8f1f60ce13d"
        },
        "dist": {
            "type": "zip",
            "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/2edd75b8b35d62fd3eeabba73b26b8f1f60ce13d",
            "reference": "2edd75b8b35d62fd3eeabba73b26b8f1f60ce13d",
            "shasum": ""
        },
        "require": {
            "php": ">=5.3.3"
        },
        "suggest": {
            "ext-ctype": "For best performance"
        },
        "time": "2020-06-06T08:46:27+00:00",
        "type": "library",
        "extra": {
            "branch-alias": {
                "dev-master": "1.17-dev"
            },
            "thanks": {
                "name": "symfony/polyfill",
                "url": "https://github.com/symfony/polyfill"
            }
        },
        "installation-source": "dist",
        "autoload": {
            "psr-4": {
                "Symfony\\Polyfill\\Ctype\\": ""
            },
            "files": [
                "bootstrap.php"
            ]
        },
        "notification-url": "https://packagist.org/downloads/",
        "license": [
            "MIT"
        ],
        "authors": [
            {
                "name": "Gert de Pagter",
                "email": "BackEndTea@gmail.com"
            },
            {
                "name": "Symfony Community",
                "homepage": "https://symfony.com/contributors"
            }
        ],
        "description": "Symfony polyfill for ctype functions",
        "homepage": "https://symfony.com",
        "keywords": [
            "compatibility",
            "ctype",
            "polyfill",
            "portable"
        ],
        "funding": [
            {
                "url": "https://symfony.com/sponsor",
                "type": "custom"
            },
            {
                "url": "https://github.com/fabpot",
                "type": "github"
            },
            {
                "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
                "type": "tidelift"
            }
        ]
    },
    {
        "name": "symfony/polyfill-mbstring",
        "version": "v1.17.1",
        "version_normalized": "1.17.1.0",
        "source": {
            "type": "git",
            "url": "https://github.com/symfony/polyfill-mbstring.git",
            "reference": "7110338d81ce1cbc3e273136e4574663627037a7"
        },
        "dist": {
            "type": "zip",
            "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/7110338d81ce1cbc3e273136e4574663627037a7",
            "reference": "7110338d81ce1cbc3e273136e4574663627037a7",
            "shasum": ""
        },
        "require": {
            "php": ">=5.3.3"
        },
        "suggest": {
            "ext-mbstring": "For best performance"
        },
        "time": "2020-06-06T08:46:27+00:00",
        "type": "library",
        "extra": {
            "branch-alias": {
                "dev-master": "1.17-dev"
            },
            "thanks": {
                "name": "symfony/polyfill",
                "url": "https://github.com/symfony/polyfill"
            }
        },
        "installation-source": "dist",
        "autoload": {
            "psr-4": {
                "Symfony\\Polyfill\\Mbstring\\": ""
            },
            "files": [
                "bootstrap.php"
            ]
        },
        "notification-url": "https://packagist.org/downloads/",
        "license": [
            "MIT"
        ],
        "authors": [
            {
                "name": "Nicolas Grekas",
                "email": "p@tchwork.com"
            },
            {
                "name": "Symfony Community",
                "homepage": "https://symfony.com/contributors"
            }
        ],
        "description": "Symfony polyfill for the Mbstring extension",
        "homepage": "https://symfony.com",
        "keywords": [
            "compatibility",
            "mbstring",
            "polyfill",
            "portable",
            "shim"
        ],
        "funding": [
            {
                "url": "https://symfony.com/sponsor",
                "type": "custom"
            },
            {
                "url": "https://github.com/fabpot",
                "type": "github"
            },
            {
                "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
                "type": "tidelift"
            }
        ]
    },
    {
        "name": "symfony/polyfill-php70",
        "version": "v1.17.1",
        "version_normalized": "1.17.1.0",
        "source": {
            "type": "git",
            "url": "https://github.com/symfony/polyfill-php70.git",
            "reference": "471b096aede7025bace8eb356b9ac801aaba7e2d"
        },
        "dist": {
            "type": "zip",
            "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/471b096aede7025bace8eb356b9ac801aaba7e2d",
            "reference": "471b096aede7025bace8eb356b9ac801aaba7e2d",
            "shasum": ""
        },
        "require": {
            "paragonie/random_compat": "~1.0|~2.0|~9.99",
            "php": ">=5.3.3"
        },
        "time": "2020-06-06T08:46:27+00:00",
        "type": "library",
        "extra": {
            "branch-alias": {
                "dev-master": "1.17-dev"
            },
            "thanks": {
                "name": "symfony/polyfill",
                "url": "https://github.com/symfony/polyfill"
            }
        },
        "installation-source": "dist",
        "autoload": {
            "psr-4": {
                "Symfony\\Polyfill\\Php70\\": ""
            },
            "files": [
                "bootstrap.php"
            ],
            "classmap": [
                "Resources/stubs"
            ]
        },
        "notification-url": "https://packagist.org/downloads/",
        "license": [
            "MIT"
        ],
        "authors": [
            {
                "name": "Nicolas Grekas",
                "email": "p@tchwork.com"
            },
            {
                "name": "Symfony Community",
                "homepage": "https://symfony.com/contributors"
            }
        ],
        "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions",
        "homepage": "https://symfony.com",
        "keywords": [
            "compatibility",
            "polyfill",
            "portable",
            "shim"
        ],
        "funding": [
            {
                "url": "https://symfony.com/sponsor",
                "type": "custom"
            },
            {
                "url": "https://github.com/fabpot",
                "type": "github"
            },
            {
                "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
                "type": "tidelift"
            }
        ]
    },
    {
        "name": "symfony/polyfill-php72",
        "version": "v1.17.0",
        "version_normalized": "1.17.0.0",
        "source": {
            "type": "git",
            "url": "https://github.com/symfony/polyfill-php72.git",
            "reference": "f048e612a3905f34931127360bdd2def19a5e582"
        },
        "dist": {
            "type": "zip",
            "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/f048e612a3905f34931127360bdd2def19a5e582",
            "reference": "f048e612a3905f34931127360bdd2def19a5e582",
            "shasum": ""
        },
        "require": {
            "php": ">=5.3.3"
        },
        "time": "2020-05-12T16:47:27+00:00",
        "type": "library",
        "extra": {
            "branch-alias": {
                "dev-master": "1.17-dev"
            }
        },
        "installation-source": "dist",
        "autoload": {
            "psr-4": {
                "Symfony\\Polyfill\\Php72\\": ""
            },
            "files": [
                "bootstrap.php"
            ]
        },
        "notification-url": "https://packagist.org/downloads/",
        "license": [
            "MIT"
        ],
        "authors": [
            {
                "name": "Nicolas Grekas",
                "email": "p@tchwork.com"
            },
            {
                "name": "Symfony Community",
                "homepage": "https://symfony.com/contributors"
            }
        ],
        "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
        "homepage": "https://symfony.com",
        "keywords": [
            "compatibility",
            "polyfill",
            "portable",
            "shim"
        ],
        "funding": [
            {
                "url": "https://symfony.com/sponsor",
                "type": "custom"
            },
            {
                "url": "https://github.com/fabpot",
                "type": "github"
            },
            {
                "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
                "type": "tidelift"
            }
        ]
    },
    {
        "name": "symfony/polyfill-php73",
        "version": "v1.17.1",
        "version_normalized": "1.17.1.0",
        "source": {
            "type": "git",
            "url": "https://github.com/symfony/polyfill-php73.git",
            "reference": "fa0837fe02d617d31fbb25f990655861bb27bd1a"
        },
        "dist": {
            "type": "zip",
            "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fa0837fe02d617d31fbb25f990655861bb27bd1a",
            "reference": "fa0837fe02d617d31fbb25f990655861bb27bd1a",
            "shasum": ""
        },
        "require": {
            "php": ">=5.3.3"
        },
        "time": "2020-06-06T08:46:27+00:00",
        "type": "library",
        "extra": {
            "branch-alias": {
                "dev-master": "1.17-dev"
            },
            "thanks": {
                "name": "symfony/polyfill",
                "url": "https://github.com/symfony/polyfill"
            }
        },
        "installation-source": "dist",
        "autoload": {
            "psr-4": {
                "Symfony\\Polyfill\\Php73\\": ""
            },
            "files": [
                "bootstrap.php"
            ],
            "classmap": [
                "Resources/stubs"
            ]
        },
        "notification-url": "https://packagist.org/downloads/",
        "license": [
            "MIT"
        ],
        "authors": [
            {
                "name": "Nicolas Grekas",
                "email": "p@tchwork.com"
            },
            {
                "name": "Symfony Community",
                "homepage": "https://symfony.com/contributors"
            }
        ],
        "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions",
        "homepage": "https://symfony.com",
        "keywords": [
            "compatibility",
            "polyfill",
            "portable",
            "shim"
        ],
        "funding": [
            {
                "url": "https://symfony.com/sponsor",
                "type": "custom"
            },
            {
                "url": "https://github.com/fabpot",
                "type": "github"
            },
            {
                "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
                "type": "tidelift"
            }
        ]
    },
    {
        "name": "symfony/polyfill-php80",
        "version": "v1.17.1",
        "version_normalized": "1.17.1.0",
        "source": {
            "type": "git",
            "url": "https://github.com/symfony/polyfill-php80.git",
            "reference": "4a5b6bba3259902e386eb80dd1956181ee90b5b2"
        },
        "dist": {
            "type": "zip",
            "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/4a5b6bba3259902e386eb80dd1956181ee90b5b2",
            "reference": "4a5b6bba3259902e386eb80dd1956181ee90b5b2",
            "shasum": ""
        },
        "require": {
            "php": ">=7.0.8"
        },
        "time": "2020-06-06T08:46:27+00:00",
        "type": "library",
        "extra": {
            "branch-alias": {
                "dev-master": "1.17-dev"
            },
            "thanks": {
                "name": "symfony/polyfill",
                "url": "https://github.com/symfony/polyfill"
            }
        },
        "installation-source": "dist",
        "autoload": {
            "psr-4": {
                "Symfony\\Polyfill\\Php80\\": ""
            },
            "files": [
                "bootstrap.php"
            ],
            "classmap": [
                "Resources/stubs"
            ]
        },
        "notification-url": "https://packagist.org/downloads/",
        "license": [
            "MIT"
        ],
        "authors": [
            {
                "name": "Ion Bazan",
                "email": "ion.bazan@gmail.com"
            },
            {
                "name": "Nicolas Grekas",
                "email": "p@tchwork.com"
            },
            {
                "name": "Symfony Community",
                "homepage": "https://symfony.com/contributors"
            }
        ],
        "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
        "homepage": "https://symfony.com",
        "keywords": [
            "compatibility",
            "polyfill",
            "portable",
            "shim"
        ],
        "funding": [
            {
                "url": "https://symfony.com/sponsor",
                "type": "custom"
            },
            {
                "url": "https://github.com/fabpot",
                "type": "github"
            },
            {
                "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
                "type": "tidelift"
            }
        ]
    },
    {
        "name": "symfony/process",
        "version": "v4.4.10",
        "version_normalized": "4.4.10.0",
        "source": {
            "type": "git",
            "url": "https://github.com/symfony/process.git",
            "reference": "c714958428a85c86ab97e3a0c96db4c4f381b7f5"
        },
        "dist": {
            "type": "zip",
            "url": "https://api.github.com/repos/symfony/process/zipball/c714958428a85c86ab97e3a0c96db4c4f381b7f5",
            "reference": "c714958428a85c86ab97e3a0c96db4c4f381b7f5",
            "shasum": ""
        },
        "require": {
            "php": "^7.1.3"
        },
        "time": "2020-05-30T20:06:45+00:00",
        "type": "library",
        "extra": {
            "branch-alias": {
                "dev-master": "4.4-dev"
            }
        },
        "installation-source": "dist",
        "autoload": {
            "psr-4": {
                "Symfony\\Component\\Process\\": ""
            },
            "exclude-from-classmap": [
                "/Tests/"
            ]
        },
        "notification-url": "https://packagist.org/downloads/",
        "license": [
            "MIT"
        ],
        "authors": [
            {
                "name": "Fabien Potencier",
                "email": "fabien@symfony.com"
            },
            {
                "name": "Symfony Community",
                "homepage": "https://symfony.com/contributors"
            }
        ],
        "description": "Symfony Process Component",
        "homepage": "https://symfony.com",
        "funding": [
            {
                "url": "https://symfony.com/sponsor",
                "type": "custom"
            },
            {
                "url": "https://github.com/fabpot",
                "type": "github"
            },
            {
                "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
                "type": "tidelift"
            }
        ]
    },
    {
        "name": "symfony/service-contracts",
        "version": "v2.1.2",
        "version_normalized": "2.1.2.0",
        "source": {
            "type": "git",
            "url": "https://github.com/symfony/service-contracts.git",
            "reference": "66a8f0957a3ca54e4f724e49028ab19d75a8918b"
        },
        "dist": {
            "type": "zip",
            "url": "https://api.github.com/repos/symfony/service-contracts/zipball/66a8f0957a3ca54e4f724e49028ab19d75a8918b",
            "reference": "66a8f0957a3ca54e4f724e49028ab19d75a8918b",
            "shasum": ""
        },
        "require": {
            "php": ">=7.2.5",
            "psr/container": "^1.0"
        },
        "suggest": {
            "symfony/service-implementation": ""
        },
        "time": "2020-05-20T17:43:50+00:00",
        "type": "library",
        "extra": {
            "branch-alias": {
                "dev-master": "2.1-dev"
            }
        },
        "installation-source": "dist",
        "autoload": {
            "psr-4": {
                "Symfony\\Contracts\\Service\\": ""
            }
        },
        "notification-url": "https://packagist.org/downloads/",
        "license": [
            "MIT"
        ],
        "authors": [
            {
                "name": "Nicolas Grekas",
                "email": "p@tchwork.com"
            },
            {
                "name": "Symfony Community",
                "homepage": "https://symfony.com/contributors"
            }
        ],
        "description": "Generic abstractions related to writing services",
        "homepage": "https://symfony.com",
        "keywords": [
            "abstractions",
            "contracts",
            "decoupling",
            "interfaces",
            "interoperability",
            "standards"
        ],
        "funding": [
            {
                "url": "https://symfony.com/sponsor",
                "type": "custom"
            },
            {
                "url": "https://github.com/fabpot",
                "type": "github"
            },
            {
                "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
                "type": "tidelift"
            }
        ]
    },
    {
        "name": "symfony/stopwatch",
        "version": "v5.1.2",
        "version_normalized": "5.1.2.0",
        "source": {
            "type": "git",
            "url": "https://github.com/symfony/stopwatch.git",
            "reference": "0f7c58cf81dbb5dd67d423a89d577524a2ec0323"
        },
        "dist": {
            "type": "zip",
            "url": "https://api.github.com/repos/symfony/stopwatch/zipball/0f7c58cf81dbb5dd67d423a89d577524a2ec0323",
            "reference": "0f7c58cf81dbb5dd67d423a89d577524a2ec0323",
            "shasum": ""
        },
        "require": {
            "php": ">=7.2.5",
            "symfony/service-contracts": "^1.0|^2"
        },
        "time": "2020-05-20T17:43:50+00:00",
        "type": "library",
        "extra": {
            "branch-alias": {
                "dev-master": "5.1-dev"
            }
        },
        "installation-source": "dist",
        "autoload": {
            "psr-4": {
                "Symfony\\Component\\Stopwatch\\": ""
            },
            "exclude-from-classmap": [
                "/Tests/"
            ]
        },
        "notification-url": "https://packagist.org/downloads/",
        "license": [
            "MIT"
        ],
        "authors": [
            {
                "name": "Fabien Potencier",
                "email": "fabien@symfony.com"
            },
            {
                "name": "Symfony Community",
                "homepage": "https://symfony.com/contributors"
            }
        ],
        "description": "Symfony Stopwatch Component",
        "homepage": "https://symfony.com",
        "funding": [
            {
                "url": "https://symfony.com/sponsor",
                "type": "custom"
            },
            {
                "url": "https://github.com/fabpot",
                "type": "github"
            },
            {
                "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
                "type": "tidelift"
            }
        ]
    },
    {
        "name": "symfony/yaml",
        "version": "v4.4.10",
        "version_normalized": "4.4.10.0",
        "source": {
            "type": "git",
            "url": "https://github.com/symfony/yaml.git",
            "reference": "c2d2cc66e892322cfcc03f8f12f8340dbd7a3f8a"
        },
        "dist": {
            "type": "zip",
            "url": "https://api.github.com/repos/symfony/yaml/zipball/c2d2cc66e892322cfcc03f8f12f8340dbd7a3f8a",
            "reference": "c2d2cc66e892322cfcc03f8f12f8340dbd7a3f8a",
            "shasum": ""
        },
        "require": {
            "php": ">=7.1.3",
            "symfony/polyfill-ctype": "~1.8"
        },
        "conflict": {
            "symfony/console": "<3.4"
        },
        "require-dev": {
            "symfony/console": "^3.4|^4.0|^5.0"
        },
        "suggest": {
            "symfony/console": "For validating YAML files using the lint command"
        },
        "time": "2020-05-20T08:37:50+00:00",
        "type": "library",
        "extra": {
            "branch-alias": {
                "dev-master": "4.4-dev"
            }
        },
        "installation-source": "dist",
        "autoload": {
            "psr-4": {
                "Symfony\\Component\\Yaml\\": ""
            },
            "exclude-from-classmap": [
                "/Tests/"
            ]
        },
        "notification-url": "https://packagist.org/downloads/",
        "license": [
            "MIT"
        ],
        "authors": [
            {
                "name": "Fabien Potencier",
                "email": "fabien@symfony.com"
            },
            {
                "name": "Symfony Community",
                "homepage": "https://symfony.com/contributors"
            }
        ],
        "description": "Symfony Yaml Component",
        "homepage": "https://symfony.com",
        "funding": [
            {
                "url": "https://symfony.com/sponsor",
                "type": "custom"
            },
            {
                "url": "https://github.com/fabpot",
                "type": "github"
            },
            {
                "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
                "type": "tidelift"
            }
        ]
    }
]
Copyright (C) 2015 Composer

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.
# Change Log

All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).

### [1.5.1] 2020-01-13

  * Fixed: Parsing of aliased version was not validating the alias to be a valid version

### [1.5.0] 2019-03-19

  * Added: some support for date versions (e.g. 201903) in `~` operator
  * Fixed: support for stabilities in `~` operator was inconsistent

### [1.4.2] 2016-08-30

  * Fixed: collapsing of complex constraints lead to buggy constraints

### [1.4.1] 2016-06-02

  * Changed: branch-like requirements no longer strip build metadata - [composer/semver#38](https://github.com/composer/semver/pull/38).

### [1.4.0] 2016-03-30

  * Added: getters on MultiConstraint - [composer/semver#35](https://github.com/composer/semver/pull/35).

### [1.3.0] 2016-02-25

  * Fixed: stability parsing - [composer/composer#1234](https://github.com/composer/composer/issues/4889).
  * Changed: collapse contiguous constraints when possible.

### [1.2.0] 2015-11-10

  * Changed: allow multiple numerical identifiers in 'pre-release' version part.
  * Changed: add more 'v' prefix support.

### [1.1.0] 2015-11-03

  * Changed: dropped redundant `test` namespace.
  * Changed: minor adjustment in datetime parsing normalization.
  * Changed: `ConstraintInterface` relaxed, setPrettyString is not required anymore.
  * Changed: `AbstractConstraint` marked deprecated, will be removed in 2.0.
  * Changed: `Constraint` is now extensible.

### [1.0.0] 2015-09-21

  * Break: `VersionConstraint` renamed to `Constraint`.
  * Break: `SpecificConstraint` renamed to `AbstractConstraint`.
  * Break: `LinkConstraintInterface` renamed to `ConstraintInterface`.
  * Break: `VersionParser::parseNameVersionPairs` was removed.
  * Changed: `VersionParser::parseConstraints` allows (but ignores) build metadata now.
  * Changed: `VersionParser::parseConstraints` allows (but ignores) prefixing numeric versions with a 'v' now.
  * Changed: Fixed namespace(s) of test files.
  * Changed: `Comparator::compare` no longer throws `InvalidArgumentException`.
  * Changed: `Constraint` now throws `InvalidArgumentException`.

### [0.1.0] 2015-07-23

  * Added: `Composer\Semver\Comparator`, various methods to compare versions.
  * Added: various documents such as README.md, LICENSE, etc.
  * Added: configuration files for Git, Travis, php-cs-fixer, phpunit.
  * Break: the following namespaces were renamed:
    - Namespace: `Composer\Package\Version` -> `Composer\Semver`
    - Namespace: `Composer\Package\LinkConstraint` -> `Composer\Semver\Constraint`
    - Namespace: `Composer\Test\Package\Version` -> `Composer\Test\Semver`
    - Namespace: `Composer\Test\Package\LinkConstraint` -> `Composer\Test\Semver\Constraint`
  * Changed: code style using php-cs-fixer.

[1.5.1]: https://github.com/composer/semver/compare/1.5.0...1.5.1
[1.5.0]: https://github.com/composer/semver/compare/1.4.2...1.5.0
[1.4.2]: https://github.com/composer/semver/compare/1.4.1...1.4.2
[1.4.1]: https://github.com/composer/semver/compare/1.4.0...1.4.1
[1.4.0]: https://github.com/composer/semver/compare/1.3.0...1.4.0
[1.3.0]: https://github.com/composer/semver/compare/1.2.0...1.3.0
[1.2.0]: https://github.com/composer/semver/compare/1.1.0...1.2.0
[1.1.0]: https://github.com/composer/semver/compare/1.0.0...1.1.0
[1.0.0]: https://github.com/composer/semver/compare/0.1.0...1.0.0
[0.1.0]: https://github.com/composer/semver/compare/5e0b9a4da...0.1.0
composer/semver
===============

Semver library that offers utilities, version constraint parsing and validation.

Originally written as part of [composer/composer](https://github.com/composer/composer),
now extracted and made available as a stand-alone library.

[![Build Status](https://travis-ci.org/composer/semver.svg?branch=master)](https://travis-ci.org/composer/semver)


Installation
------------

Install the latest version with:

```bash
$ composer require composer/semver
```


Requirements
------------

* PHP 5.3.2 is required but using the latest version of PHP is highly recommended.


Version Comparison
------------------

For details on how versions are compared, refer to the [Versions](https://getcomposer.org/doc/articles/versions.md)
article in the documentation section of the [getcomposer.org](https://getcomposer.org) website.


Basic usage
-----------

### Comparator

The `Composer\Semver\Comparator` class provides the following methods for comparing versions:

* greaterThan($v1, $v2)
* greaterThanOrEqualTo($v1, $v2)
* lessThan($v1, $v2)
* lessThanOrEqualTo($v1, $v2)
* equalTo($v1, $v2)
* notEqualTo($v1, $v2)

Each function takes two version strings as arguments. For example:

```php
use Composer\Semver\Comparator;

Comparator::greaterThan('1.25.0', '1.24.0'); // 1.25.0 > 1.24.0
```

### Semver

The `Composer\Semver\Semver` class provides the following methods:

* satisfies($version, $constraints)
* satisfiedBy(array $versions, $constraint)
* sort($versions)
* rsort($versions)


License
-------

composer/semver is licensed under the MIT License, see the LICENSE file for details.
{
    "name": "composer/semver",
    "description": "Semver library that offers utilities, version constraint parsing and validation.",
    "type": "library",
    "license": "MIT",
    "keywords": [
        "semver",
        "semantic",
        "versioning",
        "validation"
    ],
    "authors": [
        {
            "name": "Nils Adermann",
            "email": "naderman@naderman.de",
            "homepage": "http://www.naderman.de"
        },
        {
            "name": "Jordi Boggiano",
            "email": "j.boggiano@seld.be",
            "homepage": "http://seld.be"
        },
        {
            "name": "Rob Bast",
            "email": "rob.bast@gmail.com",
            "homepage": "http://robbast.nl"
        }
    ],
    "support": {
        "irc": "irc://irc.freenode.org/composer",
        "issues": "https://github.com/composer/semver/issues"
    },
    "require": {
        "php": "^5.3.2 || ^7.0"
    },
    "require-dev": {
        "phpunit/phpunit": "^4.5 || ^5.0.5"
    },
    "autoload": {
        "psr-4": {
            "Composer\\Semver\\": "src"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Composer\\Semver\\": "tests"
        }
    },
    "extra": {
        "branch-alias": {
            "dev-master": "1.x-dev"
        }
    },
    "scripts": {
        "test": "phpunit"
    }
}
<?php

/*
 * This file is part of composer/semver.
 *
 * (c) Composer <https://github.com/composer>
 *
 * For the full copyright and license information, please view
 * the LICENSE file that was distributed with this source code.
 */

namespace Composer\Semver;

use Composer\Semver\Constraint\Constraint;

class Comparator
{
    /**
     * Evaluates the expression: $version1 > $version2.
     *
     * @param string $version1
     * @param string $version2
     *
     * @return bool
     */
    public static function greaterThan($version1, $version2)
    {
        return self::compare($version1, '>', $version2);
    }

    /**
     * Evaluates the expression: $version1 >= $version2.
     *
     * @param string $version1
     * @param string $version2
     *
     * @return bool
     */
    public static function greaterThanOrEqualTo($version1, $version2)
    {
        return self::compare($version1, '>=', $version2);
    }

    /**
     * Evaluates the expression: $version1 < $version2.
     *
     * @param string $version1
     * @param string $version2
     *
     * @return bool
     */
    public static function lessThan($version1, $version2)
    {
        return self::compare($version1, '<', $version2);
    }

    /**
     * Evaluates the expression: $version1 <= $version2.
     *
     * @param string $version1
     * @param string $version2
     *
     * @return bool
     */
    public static function lessThanOrEqualTo($version1, $version2)
    {
        return self::compare($version1, '<=', $version2);
    }

    /**
     * Evaluates the expression: $version1 == $version2.
     *
     * @param string $version1
     * @param string $version2
     *
     * @return bool
     */
    public static function equalTo($version1, $version2)
    {
        return self::compare($version1, '==', $version2);
    }

    /**
     * Evaluates the expression: $version1 != $version2.
     *
     * @param string $version1
     * @param string $version2
     *
     * @return bool
     */
    public static function notEqualTo($version1, $version2)
    {
        return self::compare($version1, '!=', $version2);
    }

    /**
     * Evaluates the expression: $version1 $operator $version2.
     *
     * @param string $version1
     * @param string $operator
     * @param string $version2
     *
     * @return bool
     */
    public static function compare($version1, $operator, $version2)
    {
        $constraint = new Constraint($operator, $version2);

        return $constraint->matches(new Constraint('==', $version1));
    }
}
<?php

/*
 * This file is part of composer/semver.
 *
 * (c) Composer <https://github.com/composer>
 *
 * For the full copyright and license information, please view
 * the LICENSE file that was distributed with this source code.
 */

namespace Composer\Semver;

use Composer\Semver\Constraint\Constraint;

class Semver
{
    const SORT_ASC = 1;
    const SORT_DESC = -1;

    /** @var VersionParser */
    private static $versionParser;

    /**
     * Determine if given version satisfies given constraints.
     *
     * @param string $version
     * @param string $constraints
     *
     * @return bool
     */
    public static function satisfies($version, $constraints)
    {
        if (null === self::$versionParser) {
            self::$versionParser = new VersionParser();
        }

        $versionParser = self::$versionParser;
        $provider = new Constraint('==', $versionParser->normalize($version));
        $parsedConstraints = $versionParser->parseConstraints($constraints);

        return $parsedConstraints->matches($provider);
    }

    /**
     * Return all versions that satisfy given constraints.
     *
     * @param array $versions
     * @param string $constraints
     *
     * @return array
     */
    public static function satisfiedBy(array $versions, $constraints)
    {
        $versions = array_filter($versions, function ($version) use ($constraints) {
            return Semver::satisfies($version, $constraints);
        });

        return array_values($versions);
    }

    /**
     * Sort given array of versions.
     *
     * @param array $versions
     *
     * @return array
     */
    public static function sort(array $versions)
    {
        return self::usort($versions, self::SORT_ASC);
    }

    /**
     * Sort given array of versions in reverse.
     *
     * @param array $versions
     *
     * @return array
     */
    public static function rsort(array $versions)
    {
        return self::usort($versions, self::SORT_DESC);
    }

    /**
     * @param array $versions
     * @param int $direction
     *
     * @return array
     */
    private static function usort(array $versions, $direction)
    {
        if (null === self::$versionParser) {
            self::$versionParser = new VersionParser();
        }

        $versionParser = self::$versionParser;
        $normalized = array();

        // Normalize outside of usort() scope for minor performance increase.
        // Creates an array of arrays: [[normalized, key], ...]
        foreach ($versions as $key => $version) {
            $normalized[] = array($versionParser->normalize($version), $key);
        }

        usort($normalized, function (array $left, array $right) use ($direction) {
            if ($left[0] === $right[0]) {
                return 0;
            }

            if (Comparator::lessThan($left[0], $right[0])) {
                return -$direction;
            }

            return $direction;
        });

        // Recreate input array, using the original indexes which are now in sorted order.
        $sorted = array();
        foreach ($normalized as $item) {
            $sorted[] = $versions[$item[1]];
        }

        return $sorted;
    }
}
<?php

/*
 * This file is part of composer/semver.
 *
 * (c) Composer <https://github.com/composer>
 *
 * For the full copyright and license information, please view
 * the LICENSE file that was distributed with this source code.
 */

namespace Composer\Semver;

use Composer\Semver\Constraint\ConstraintInterface;
use Composer\Semver\Constraint\EmptyConstraint;
use Composer\Semver\Constraint\MultiConstraint;
use Composer\Semver\Constraint\Constraint;

/**
 * Version parser.
 *
 * @author Jordi Boggiano <j.boggiano@seld.be>
 */
class VersionParser
{
    /**
     * Regex to match pre-release data (sort of).
     *
     * Due to backwards compatibility:
     *   - Instead of enforcing hyphen, an underscore, dot or nothing at all are also accepted.
     *   - Only stabilities as recognized by Composer are allowed to precede a numerical identifier.
     *   - Numerical-only pre-release identifiers are not supported, see tests.
     *
     *                        |--------------|
     * [major].[minor].[patch] -[pre-release] +[build-metadata]
     *
     * @var string
     */
    private static $modifierRegex = '[._-]?(?:(stable|beta|b|RC|alpha|a|patch|pl|p)((?:[.-]?\d+)*+)?)?([.-]?dev)?';

    /** @var array */
    private static $stabilities = array('stable', 'RC', 'beta', 'alpha', 'dev');

    /**
     * Returns the stability of a version.
     *
     * @param string $version
     *
     * @return string
     */
    public static function parseStability($version)
    {
        $version = preg_replace('{#.+$}i', '', $version);

        if (strpos($version, 'dev-') === 0 || '-dev' === substr($version, -4)) {
            return 'dev';
        }

        preg_match('{' . self::$modifierRegex . '(?:\+.*)?$}i', strtolower($version), $match);

        if (!empty($match[3])) {
            return 'dev';
        }

        if (!empty($match[1])) {
            if ('beta' === $match[1] || 'b' === $match[1]) {
                return 'beta';
            }
            if ('alpha' === $match[1] || 'a' === $match[1]) {
                return 'alpha';
            }
            if ('rc' === $match[1]) {
                return 'RC';
            }
        }

        return 'stable';
    }

    /**
     * @param string $stability
     *
     * @return string
     */
    public static function normalizeStability($stability)
    {
        $stability = strtolower($stability);

        return $stability === 'rc' ? 'RC' : $stability;
    }

    /**
     * Normalizes a version string to be able to perform comparisons on it.
     *
     * @param string $version
     * @param string $fullVersion optional complete version string to give more context
     *
     * @throws \UnexpectedValueException
     *
     * @return string
     */
    public function normalize($version, $fullVersion = null)
    {
        $version = trim($version);
        if (null === $fullVersion) {
            $fullVersion = $version;
        }

        // strip off aliasing
        if (preg_match('{^([^,\s]++) ++as ++([^,\s]++)$}', $version, $match)) {
            // verify that the alias is a version without constraint
            $this->normalize($match[2]);

            $version = $match[1];
        }

        // match master-like branches
        if (preg_match('{^(?:dev-)?(?:master|trunk|default)$}i', $version)) {
            return '9999999-dev';
        }

        // if requirement is branch-like, use full name
        if (stripos($version, 'dev-') === 0) {
            return 'dev-' . substr($version, 4);
        }

        // strip off build metadata
        if (preg_match('{^([^,\s+]++)\+[^\s]++$}', $version, $match)) {
            $version = $match[1];
        }

        // match classical versioning
        if (preg_match('{^v?(\d{1,5})(\.\d++)?(\.\d++)?(\.\d++)?' . self::$modifierRegex . '$}i', $version, $matches)) {
            $version = $matches[1]
                . (!empty($matches[2]) ? $matches[2] : '.0')
                . (!empty($matches[3]) ? $matches[3] : '.0')
                . (!empty($matches[4]) ? $matches[4] : '.0');
            $index = 5;
        // match date(time) based versioning
        } elseif (preg_match('{^v?(\d{4}(?:[.:-]?\d{2}){1,6}(?:[.:-]?\d{1,3})?)' . self::$modifierRegex . '$}i', $version, $matches)) {
            $version = preg_replace('{\D}', '.', $matches[1]);
            $index = 2;
        }

        // add version modifiers if a version was matched
        if (isset($index)) {
            if (!empty($matches[$index])) {
                if ('stable' === $matches[$index]) {
                    return $version;
                }
                $version .= '-' . $this->expandStability($matches[$index]) . (!empty($matches[$index + 1]) ? ltrim($matches[$index + 1], '.-') : '');
            }

            if (!empty($matches[$index + 2])) {
                $version .= '-dev';
            }

            return $version;
        }

        // match dev branches
        if (preg_match('{(.*?)[.-]?dev$}i', $version, $match)) {
            try {
                return $this->normalizeBranch($match[1]);
            } catch (\Exception $e) {
            }
        }

        $extraMessage = '';
        if (preg_match('{ +as +' . preg_quote($version) . '$}', $fullVersion)) {
            $extraMessage = ' in "' . $fullVersion . '", the alias must be an exact version';
        } elseif (preg_match('{^' . preg_quote($version) . ' +as +}', $fullVersion)) {
            $extraMessage = ' in "' . $fullVersion . '", the alias source must be an exact version, if it is a branch name you should prefix it with dev-';
        }

        throw new \UnexpectedValueException('Invalid version string "' . $version . '"' . $extraMessage);
    }

    /**
     * Extract numeric prefix from alias, if it is in numeric format, suitable for version comparison.
     *
     * @param string $branch Branch name (e.g. 2.1.x-dev)
     *
     * @return string|false Numeric prefix if present (e.g. 2.1.) or false
     */
    public function parseNumericAliasPrefix($branch)
    {
        if (preg_match('{^(?P<version>(\d++\\.)*\d++)(?:\.x)?-dev$}i', $branch, $matches)) {
            return $matches['version'] . '.';
        }

        return false;
    }

    /**
     * Normalizes a branch name to be able to perform comparisons on it.
     *
     * @param string $name
     *
     * @return string
     */
    public function normalizeBranch($name)
    {
        $name = trim($name);

        if (in_array($name, array('master', 'trunk', 'default'))) {
            return $this->normalize($name);
        }

        if (preg_match('{^v?(\d++)(\.(?:\d++|[xX*]))?(\.(?:\d++|[xX*]))?(\.(?:\d++|[xX*]))?$}i', $name, $matches)) {
            $version = '';
            for ($i = 1; $i < 5; ++$i) {
                $version .= isset($matches[$i]) ? str_replace(array('*', 'X'), 'x', $matches[$i]) : '.x';
            }

            return str_replace('x', '9999999', $version) . '-dev';
        }

        return 'dev-' . $name;
    }

    /**
     * Parses a constraint string into MultiConstraint and/or Constraint objects.
     *
     * @param string $constraints
     *
     * @return ConstraintInterface
     */
    public function parseConstraints($constraints)
    {
        $prettyConstraint = $constraints;

        if (preg_match('{^([^,\s]*?)@(' . implode('|', self::$stabilities) . ')$}i', $constraints, $match)) {
            $constraints = empty($match[1]) ? '*' : $match[1];
        }

        if (preg_match('{^(dev-[^,\s@]+?|[^,\s@]+?\.x-dev)#.+$}i', $constraints, $match)) {
            $constraints = $match[1];
        }

        $orConstraints = preg_split('{\s*\|\|?\s*}', trim($constraints));
        $orGroups = array();

        foreach ($orConstraints as $constraints) {
            $andConstraints = preg_split('{(?<!^|as|[=>< ,]) *(?<!-)[, ](?!-) *(?!,|as|$)}', $constraints);
            if (count($andConstraints) > 1) {
                $constraintObjects = array();
                foreach ($andConstraints as $constraint) {
                    foreach ($this->parseConstraint($constraint) as $parsedConstraint) {
                        $constraintObjects[] = $parsedConstraint;
                    }
                }
            } else {
                $constraintObjects = $this->parseConstraint($andConstraints[0]);
            }

            if (1 === count($constraintObjects)) {
                $constraint = $constraintObjects[0];
            } else {
                $constraint = new MultiConstraint($constraintObjects);
            }

            $orGroups[] = $constraint;
        }

        if (1 === count($orGroups)) {
            $constraint = $orGroups[0];
        } elseif (2 === count($orGroups)
            // parse the two OR groups and if they are contiguous we collapse
            // them into one constraint
            && $orGroups[0] instanceof MultiConstraint
            && $orGroups[1] instanceof MultiConstraint
            && 2 === count($orGroups[0]->getConstraints())
            && 2 === count($orGroups[1]->getConstraints())
            && ($a = (string) $orGroups[0])
            && strpos($a, '[>=') === 0 && (false !== ($posA = strpos($a, '<', 4)))
            && ($b = (string) $orGroups[1])
            && strpos($b, '[>=') === 0 && (false !== ($posB = strpos($b, '<', 4)))
            && substr($a, $posA + 2, -1) === substr($b, 4, $posB - 5)
        ) {
            $constraint = new MultiConstraint(array(
                new Constraint('>=', substr($a, 4, $posA - 5)),
                new Constraint('<', substr($b, $posB + 2, -1)),
            ));
        } else {
            $constraint = new MultiConstraint($orGroups, false);
        }

        $constraint->setPrettyString($prettyConstraint);

        return $constraint;
    }

    /**
     * @param string $constraint
     *
     * @throws \UnexpectedValueException
     *
     * @return array
     */
    private function parseConstraint($constraint)
    {
        if (preg_match('{^([^,\s]+?)@(' . implode('|', self::$stabilities) . ')$}i', $constraint, $match)) {
            $constraint = $match[1];
            if ($match[2] !== 'stable') {
                $stabilityModifier = $match[2];
            }
        }

        if (preg_match('{^v?[xX*](\.[xX*])*$}i', $constraint)) {
            return array(new EmptyConstraint());
        }

        $versionRegex = 'v?(\d++)(?:\.(\d++))?(?:\.(\d++))?(?:\.(\d++))?' . self::$modifierRegex . '(?:\+[^\s]+)?';

        // Tilde Range
        //
        // Like wildcard constraints, unsuffixed tilde constraints say that they must be greater than the previous
        // version, to ensure that unstable instances of the current version are allowed. However, if a stability
        // suffix is added to the constraint, then a >= match on the current version is used instead.
        if (preg_match('{^~>?' . $versionRegex . '$}i', $constraint, $matches)) {
            if (strpos($constraint, '~>') === 0) {
                throw new \UnexpectedValueException(
                    'Could not parse version constraint ' . $constraint . ': ' .
                    'Invalid operator "~>", you probably meant to use the "~" operator'
                );
            }

            // Work out which position in the version we are operating at
            if (isset($matches[4]) && '' !== $matches[4] && null !== $matches[4]) {
                $position = 4;
            } elseif (isset($matches[3]) && '' !== $matches[3] && null !== $matches[3]) {
                $position = 3;
            } elseif (isset($matches[2]) && '' !== $matches[2] && null !== $matches[2]) {
                $position = 2;
            } else {
                $position = 1;
            }

            // Calculate the stability suffix
            $stabilitySuffix = '';
            if (empty($matches[5]) && empty($matches[7])) {
                $stabilitySuffix .= '-dev';
            }

            $lowVersion = $this->normalize(substr($constraint . $stabilitySuffix, 1));
            $lowerBound = new Constraint('>=', $lowVersion);

            // For upper bound, we increment the position of one more significance,
            // but highPosition = 0 would be illegal
            $highPosition = max(1, $position - 1);
            $highVersion = $this->manipulateVersionString($matches, $highPosition, 1) . '-dev';
            $upperBound = new Constraint('<', $highVersion);

            return array(
                $lowerBound,
                $upperBound,
            );
        }

        // Caret Range
        //
        // Allows changes that do not modify the left-most non-zero digit in the [major, minor, patch] tuple.
        // In other words, this allows patch and minor updates for versions 1.0.0 and above, patch updates for
        // versions 0.X >=0.1.0, and no updates for versions 0.0.X
        if (preg_match('{^\^' . $versionRegex . '($)}i', $constraint, $matches)) {
            // Work out which position in the version we are operating at
            if ('0' !== $matches[1] || '' === $matches[2] || null === $matches[2]) {
                $position = 1;
            } elseif ('0' !== $matches[2] || '' === $matches[3] || null === $matches[3]) {
                $position = 2;
            } else {
                $position = 3;
            }

            // Calculate the stability suffix
            $stabilitySuffix = '';
            if (empty($matches[5]) && empty($matches[7])) {
                $stabilitySuffix .= '-dev';
            }

            $lowVersion = $this->normalize(substr($constraint . $stabilitySuffix, 1));
            $lowerBound = new Constraint('>=', $lowVersion);

            // For upper bound, we increment the position of one more significance,
            // but highPosition = 0 would be illegal
            $highVersion = $this->manipulateVersionString($matches, $position, 1) . '-dev';
            $upperBound = new Constraint('<', $highVersion);

            return array(
                $lowerBound,
                $upperBound,
            );
        }

        // X Range
        //
        // Any of X, x, or * may be used to "stand in" for one of the numeric values in the [major, minor, patch] tuple.
        // A partial version range is treated as an X-Range, so the special character is in fact optional.
        if (preg_match('{^v?(\d++)(?:\.(\d++))?(?:\.(\d++))?(?:\.[xX*])++$}', $constraint, $matches)) {
            if (isset($matches[3]) && '' !== $matches[3] && null !== $matches[3]) {
                $position = 3;
            } elseif (isset($matches[2]) && '' !== $matches[2] && null !== $matches[2]) {
                $position = 2;
            } else {
                $position = 1;
            }

            $lowVersion = $this->manipulateVersionString($matches, $position) . '-dev';
            $highVersion = $this->manipulateVersionString($matches, $position, 1) . '-dev';

            if ($lowVersion === '0.0.0.0-dev') {
                return array(new Constraint('<', $highVersion));
            }

            return array(
                new Constraint('>=', $lowVersion),
                new Constraint('<', $highVersion),
            );
        }

        // Hyphen Range
        //
        // Specifies an inclusive set. If a partial version is provided as the first version in the inclusive range,
        // then the missing pieces are replaced with zeroes. If a partial version is provided as the second version in
        // the inclusive range, then all versions that start with the supplied parts of the tuple are accepted, but
        // nothing that would be greater than the provided tuple parts.
        if (preg_match('{^(?P<from>' . $versionRegex . ') +- +(?P<to>' . $versionRegex . ')($)}i', $constraint, $matches)) {
            // Calculate the stability suffix
            $lowStabilitySuffix = '';
            if (empty($matches[6]) && empty($matches[8])) {
                $lowStabilitySuffix = '-dev';
            }

            $lowVersion = $this->normalize($matches['from']);
            $lowerBound = new Constraint('>=', $lowVersion . $lowStabilitySuffix);

            $empty = function ($x) {
                return ($x === 0 || $x === '0') ? false : empty($x);
            };

            if ((!$empty($matches[11]) && !$empty($matches[12])) || !empty($matches[14]) || !empty($matches[16])) {
                $highVersion = $this->normalize($matches['to']);
                $upperBound = new Constraint('<=', $highVersion);
            } else {
                $highMatch = array('', $matches[10], $matches[11], $matches[12], $matches[13]);
                $highVersion = $this->manipulateVersionString($highMatch, $empty($matches[11]) ? 1 : 2, 1) . '-dev';
                $upperBound = new Constraint('<', $highVersion);
            }

            return array(
                $lowerBound,
                $upperBound,
            );
        }

        // Basic Comparators
        if (preg_match('{^(<>|!=|>=?|<=?|==?)?\s*(.*)}', $constraint, $matches)) {
            try {
                $version = $this->normalize($matches[2]);

                if (!empty($stabilityModifier) && self::parseStability($version) === 'stable') {
                    $version .= '-' . $stabilityModifier;
                } elseif ('<' === $matches[1] || '>=' === $matches[1]) {
                    if (!preg_match('/-' . self::$modifierRegex . '$/', strtolower($matches[2]))) {
                        if (strpos($matches[2], 'dev-') !== 0) {
                            $version .= '-dev';
                        }
                    }
                }

                return array(new Constraint($matches[1] ?: '=', $version));
            } catch (\Exception $e) {
            }
        }

        $message = 'Could not parse version constraint ' . $constraint;
        if (isset($e)) {
            $message .= ': ' . $e->getMessage();
        }

        throw new \UnexpectedValueException($message);
    }

    /**
     * Increment, decrement, or simply pad a version number.
     *
     * Support function for {@link parseConstraint()}
     *
     * @param array $matches Array with version parts in array indexes 1,2,3,4
     * @param int $position 1,2,3,4 - which segment of the version to increment/decrement
     * @param int $increment
     * @param string $pad The string to pad version parts after $position
     *
     * @return string The new version
     */
    private function manipulateVersionString($matches, $position, $increment = 0, $pad = '0')
    {
        for ($i = 4; $i > 0; --$i) {
            if ($i > $position) {
                $matches[$i] = $pad;
            } elseif ($i === $position && $increment) {
                $matches[$i] += $increment;
                // If $matches[$i] was 0, carry the decrement
                if ($matches[$i] < 0) {
                    $matches[$i] = $pad;
                    --$position;

                    // Return null on a carry overflow
                    if ($i === 1) {
                        return null;
                    }
                }
            }
        }

        return $matches[1] . '.' . $matches[2] . '.' . $matches[3] . '.' . $matches[4];
    }

    /**
     * Expand shorthand stability string to long version.
     *
     * @param string $stability
     *
     * @return string
     */
    private function expandStability($stability)
    {
        $stability = strtolower($stability);

        switch ($stability) {
            case 'a':
                return 'alpha';
            case 'b':
                return 'beta';
            case 'p':
            case 'pl':
                return 'patch';
            case 'rc':
                return 'RC';
            default:
                return $stability;
        }
    }
}
<?php

/*
 * This file is part of composer/semver.
 *
 * (c) Composer <https://github.com/composer>
 *
 * For the full copyright and license information, please view
 * the LICENSE file that was distributed with this source code.
 */

namespace Composer\Semver\Constraint;

trigger_error('The ' . __NAMESPACE__ . '\AbstractConstraint abstract class is deprecated, there is no replacement for it, it will be removed in the next major version.', E_USER_DEPRECATED);

/**
 * Base constraint class.
 */
abstract class AbstractConstraint implements ConstraintInterface
{
    /** @var string */
    protected $prettyString;

    /**
     * @param ConstraintInterface $provider
     *
     * @return bool
     */
    public function matches(ConstraintInterface $provider)
    {
        if ($provider instanceof $this) {
            // see note at bottom of this class declaration
            return $this->matchSpecific($provider);
        }

        // turn matching around to find a match
        return $provider->matches($this);
    }

    /**
     * @param string $prettyString
     */
    public function setPrettyString($prettyString)
    {
        $this->prettyString = $prettyString;
    }

    /**
     * @return string
     */
    public function getPrettyString()
    {
        if ($this->prettyString) {
            return $this->prettyString;
        }

        return $this->__toString();
    }

    // implementations must implement a method of this format:
    // not declared abstract here because type hinting violates parameter coherence (TODO right word?)
    // public function matchSpecific(<SpecificConstraintType> $provider);
}
<?php

/*
 * This file is part of composer/semver.
 *
 * (c) Composer <https://github.com/composer>
 *
 * For the full copyright and license information, please view
 * the LICENSE file that was distributed with this source code.
 */

namespace Composer\Semver\Constraint;

/**
 * Defines the absence of a constraint.
 */
class EmptyConstraint implements ConstraintInterface
{
    /** @var string */
    protected $prettyString;

    /**
     * @param ConstraintInterface $provider
     *
     * @return bool
     */
    public function matches(ConstraintInterface $provider)
    {
        return true;
    }

    /**
     * @param $prettyString
     */
    public function setPrettyString($prettyString)
    {
        $this->prettyString = $prettyString;
    }

    /**
     * @return string
     */
    public function getPrettyString()
    {
        if ($this->prettyString) {
            return $this->prettyString;
        }

        return (string) $this;
    }

    /**
     * @return string
     */
    public function __toString()
    {
        return '[]';
    }
}
<?php

/*
 * This file is part of composer/semver.
 *
 * (c) Composer <https://github.com/composer>
 *
 * For the full copyright and license information, please view
 * the LICENSE file that was distributed with this source code.
 */

namespace Composer\Semver\Constraint;

interface ConstraintInterface
{
    /**
     * @param ConstraintInterface $provider
     *
     * @return bool
     */
    public function matches(ConstraintInterface $provider);

    /**
     * @return string
     */
    public function getPrettyString();

    /**
     * @return string
     */
    public function __toString();
}
<?php

/*
 * This file is part of composer/semver.
 *
 * (c) Composer <https://github.com/composer>
 *
 * For the full copyright and license information, please view
 * the LICENSE file that was distributed with this source code.
 */

namespace Composer\Semver\Constraint;

/**
 * Defines a conjunctive or disjunctive set of constraints.
 */
class MultiConstraint implements ConstraintInterface
{
    /** @var ConstraintInterface[] */
    protected $constraints;

    /** @var string */
    protected $prettyString;

    /** @var bool */
    protected $conjunctive;

    /**
     * @param ConstraintInterface[] $constraints A set of constraints
     * @param bool $conjunctive Whether the constraints should be treated as conjunctive or disjunctive
     */
    public function __construct(array $constraints, $conjunctive = true)
    {
        $this->constraints = $constraints;
        $this->conjunctive = $conjunctive;
    }

    /**
     * @return ConstraintInterface[]
     */
    public function getConstraints()
    {
        return $this->constraints;
    }

    /**
     * @return bool
     */
    public function isConjunctive()
    {
        return $this->conjunctive;
    }

    /**
     * @return bool
     */
    public function isDisjunctive()
    {
        return !$this->conjunctive;
    }

    /**
     * @param ConstraintInterface $provider
     *
     * @return bool
     */
    public function matches(ConstraintInterface $provider)
    {
        if (false === $this->conjunctive) {
            foreach ($this->constraints as $constraint) {
                if ($constraint->matches($provider)) {
                    return true;
                }
            }

            return false;
        }

        foreach ($this->constraints as $constraint) {
            if (!$constraint->matches($provider)) {
                return false;
            }
        }

        return true;
    }

    /**
     * @param string $prettyString
     */
    public function setPrettyString($prettyString)
    {
        $this->prettyString = $prettyString;
    }

    /**
     * @return string
     */
    public function getPrettyString()
    {
        if ($this->prettyString) {
            return $this->prettyString;
        }

        return (string) $this;
    }

    /**
     * @return string
     */
    public function __toString()
    {
        $constraints = array();
        foreach ($this->constraints as $constraint) {
            $constraints[] = (string) $constraint;
        }

        return '[' . implode($this->conjunctive ? ' ' : ' || ', $constraints) . ']';
    }
}
<?php

/*
 * This file is part of composer/semver.
 *
 * (c) Composer <https://github.com/composer>
 *
 * For the full copyright and license information, please view
 * the LICENSE file that was distributed with this source code.
 */

namespace Composer\Semver\Constraint;

/**
 * Defines a constraint.
 */
class Constraint implements ConstraintInterface
{
    /* operator integer values */
    const OP_EQ = 0;
    const OP_LT = 1;
    const OP_LE = 2;
    const OP_GT = 3;
    const OP_GE = 4;
    const OP_NE = 5;

    /**
     * Operator to integer translation table.
     *
     * @var array
     */
    private static $transOpStr = array(
        '=' => self::OP_EQ,
        '==' => self::OP_EQ,
        '<' => self::OP_LT,
        '<=' => self::OP_LE,
        '>' => self::OP_GT,
        '>=' => self::OP_GE,
        '<>' => self::OP_NE,
        '!=' => self::OP_NE,
    );

    /**
     * Integer to operator translation table.
     *
     * @var array
     */
    private static $transOpInt = array(
        self::OP_EQ => '==',
        self::OP_LT => '<',
        self::OP_LE => '<=',
        self::OP_GT => '>',
        self::OP_GE => '>=',
        self::OP_NE => '!=',
    );

    /** @var string */
    protected $operator;

    /** @var string */
    protected $version;

    /** @var string */
    protected $prettyString;

    /**
     * @param ConstraintInterface $provider
     *
     * @return bool
     */
    public function matches(ConstraintInterface $provider)
    {
        if ($provider instanceof $this) {
            return $this->matchSpecific($provider);
        }

        // turn matching around to find a match
        return $provider->matches($this);
    }

    /**
     * @param string $prettyString
     */
    public function setPrettyString($prettyString)
    {
        $this->prettyString = $prettyString;
    }

    /**
     * @return string
     */
    public function getPrettyString()
    {
        if ($this->prettyString) {
            return $this->prettyString;
        }

        return $this->__toString();
    }

    /**
     * Get all supported comparison operators.
     *
     * @return array
     */
    public static function getSupportedOperators()
    {
        return array_keys(self::$transOpStr);
    }

    /**
     * Sets operator and version to compare with.
     *
     * @param string $operator
     * @param string $version
     *
     * @throws \InvalidArgumentException if invalid operator is given.
     */
    public function __construct($operator, $version)
    {
        if (!isset(self::$transOpStr[$operator])) {
            throw new \InvalidArgumentException(sprintf(
                'Invalid operator "%s" given, expected one of: %s',
                $operator,
                implode(', ', self::getSupportedOperators())
            ));
        }

        $this->operator = self::$transOpStr[$operator];
        $this->version = $version;
    }

    /**
     * @param string $a
     * @param string $b
     * @param string $operator
     * @param bool $compareBranches
     *
     * @throws \InvalidArgumentException if invalid operator is given.
     *
     * @return bool
     */
    public function versionCompare($a, $b, $operator, $compareBranches = false)
    {
        if (!isset(self::$transOpStr[$operator])) {
            throw new \InvalidArgumentException(sprintf(
                'Invalid operator "%s" given, expected one of: %s',
                $operator,
                implode(', ', self::getSupportedOperators())
            ));
        }

        $aIsBranch = 'dev-' === substr($a, 0, 4);
        $bIsBranch = 'dev-' === substr($b, 0, 4);

        if ($aIsBranch && $bIsBranch) {
            return $operator === '==' && $a === $b;
        }

        // when branches are not comparable, we make sure dev branches never match anything
        if (!$compareBranches && ($aIsBranch || $bIsBranch)) {
            return false;
        }

        return version_compare($a, $b, $operator);
    }

    /**
     * @param Constraint $provider
     * @param bool $compareBranches
     *
     * @return bool
     */
    public function matchSpecific(Constraint $provider, $compareBranches = false)
    {
        $noEqualOp = str_replace('=', '', self::$transOpInt[$this->operator]);
        $providerNoEqualOp = str_replace('=', '', self::$transOpInt[$provider->operator]);

        $isEqualOp = self::OP_EQ === $this->operator;
        $isNonEqualOp = self::OP_NE === $this->operator;
        $isProviderEqualOp = self::OP_EQ === $provider->operator;
        $isProviderNonEqualOp = self::OP_NE === $provider->operator;

        // '!=' operator is match when other operator is not '==' operator or version is not match
        // these kinds of comparisons always have a solution
        if ($isNonEqualOp || $isProviderNonEqualOp) {
            return (!$isEqualOp && !$isProviderEqualOp)
                || $this->versionCompare($provider->version, $this->version, '!=', $compareBranches);
        }

        // an example for the condition is <= 2.0 & < 1.0
        // these kinds of comparisons always have a solution
        if ($this->operator !== self::OP_EQ && $noEqualOp === $providerNoEqualOp) {
            return true;
        }

        if ($this->versionCompare($provider->version, $this->version, self::$transOpInt[$this->operator], $compareBranches)) {
            // special case, e.g. require >= 1.0 and provide < 1.0
            // 1.0 >= 1.0 but 1.0 is outside of the provided interval
            return !($provider->version === $this->version
                && self::$transOpInt[$provider->operator] === $providerNoEqualOp
                && self::$transOpInt[$this->operator] !== $noEqualOp);
        }

        return false;
    }

    /**
     * @return string
     */
    public function __toString()
    {
        return self::$transOpInt[$this->operator] . ' ' . $this->version;
    }
}
<?php

// autoload_files.php @generated by Composer

$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);

return array(
    'a4a119a56e50fbb293281d9a48007e0e' => $vendorDir . '/symfony/polyfill-php80/bootstrap.php',
    '320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php',
    '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',
    '0d59ee240a4cd96ddbb4ff164fccea4d' => $vendorDir . '/symfony/polyfill-php73/bootstrap.php',
    '6e3fae29631ef280660b3cdad06f25a8' => $vendorDir . '/symfony/deprecation-contracts/function.php',
    '023d27dca8066ef29e6739335ea73bad' => $vendorDir . '/symfony/polyfill-php70/bootstrap.php',
    '25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php',
);
   Bud1                                                                      hbwspblob                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            @                                              @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  p s y s hbwspblob   bplist00		]ShowStatusBar[ShowPathbar[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar			_{{-1325, 130}, {1165, 721}}	%1=I`myz{|}~                                p s y s hlsvCblob  bplist00	
IJ
L_viewOptionsVersion_showIconPreview_calculateAllSizesWcolumnsXtextSizeZsortColumn_useRelativeDatesXiconSize 	#',16;@E

WvisibleUwidthYascendingZidentifier	(	TnameWvisibleUwidthYascending#Xubiquity
 "	\dateModified &[dateCreated
)+	aTsize
.
0	s	Tkind3
5d	Ulabel8
:K	Wversion=
?,	XcommentsBD^dateLastOpened HYdateAdded#@(      Tname	#@0         . @ T \ e p                       	
#$%1:;=>CLMOPU^_abhqrtu}             M                  p s y s hlsvpblob  ^bplist00	
EF
H_viewOptionsVersion_showIconPreview_calculateAllSizesWcolumnsXtextSizeZsortColumn_useRelativeDatesXiconSize 	$).38=AXcomments^dateLastOpened[dateCreatedTsizeUlabelTkindWversionTname\dateModified
UindexUwidthYascendingWvisible,	 !%&*+
a	/0
d	45

s		9:
K		>

(		B&
	#@(      Tname	#@0         . @ T \ e p                 (*,-.79;<=FHJKLUWYZ[dfhijsuwxy             I                  p s y s hvSrnlong                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              E                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         DSDB                                 `                                                  @                                                @                                                @       *+
a	/0
d	45

s		9:
K		>

(		B&
	#@(      Tname	#@0         . @ T \ e p                 (*,-.79;<=FHJKLUWYZ[dfhijsuwxy             I                  p s y s hvSrnlong                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  The MIT License (MIT)

Copyright (c) 2015 Paragon Initiative Enterprises

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.

-----BEGIN PUBLIC KEY-----
MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEEd+wCqJDrx5B4OldM0dQE0ZMX+lx1ZWm
pui0SUqD4G29L3NGsz9UhJ/0HjBdbnkhIK5xviT0X5vtjacF6ajgcCArbTB+ds+p
+h7Q084NuSuIpNb6YPfoUFgC/CL9kAoc
-----END PUBLIC KEY-----
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (MingW32)

iQEcBAABAgAGBQJWtW1hAAoJEGuXocKCZATaJf0H+wbZGgskK1dcRTsuVJl9IWip
QwGw/qIKI280SD6/ckoUMxKDCJiFuPR14zmqnS36k7N5UNPnpdTJTS8T11jttSpg
1LCmgpbEIpgaTah+cELDqFCav99fS+bEiAL5lWDAHBTE/XPjGVCqeehyPYref4IW
NDBIEsvnHPHPLsn6X5jq4+Yj5oUixgxaMPiR+bcO4Sh+RzOVB6i2D0upWfRXBFXA
NNnsg9/zjvoC7ZW73y9uSH+dPJTt/Vgfeiv52/v41XliyzbUyLalf02GNPY+9goV
JHG1ulEEBJOCiUD9cE1PUIJwHA/HqyhHIvV350YoEFiHl8iSwm7SiZu5kPjaq74=
=B6+8
-----END PGP SIGNATURE-----
<?php
$dist = dirname(__DIR__).'/dist';
if (!is_dir($dist)) {
    mkdir($dist, 0755);
}
if (file_exists($dist.'/random_compat.phar')) {
    unlink($dist.'/random_compat.phar');
}
$phar = new Phar(
    $dist.'/random_compat.phar',
    FilesystemIterator::CURRENT_AS_FILEINFO | \FilesystemIterator::KEY_AS_FILENAME,
    'random_compat.phar'
);
rename(
    dirname(__DIR__).'/lib/random.php', 
    dirname(__DIR__).'/lib/index.php'
);
$phar->buildFromDirectory(dirname(__DIR__).'/lib');
rename(
    dirname(__DIR__).'/lib/index.php', 
    dirname(__DIR__).'/lib/random.php'
);

/**
 * If we pass an (optional) path to a private key as a second argument, we will
 * sign the Phar with OpenSSL.
 * 
 * If you leave this out, it will produce an unsigned .phar!
 */
if ($argc > 1) {
    if (!@is_readable($argv[1])) {
        echo 'Could not read the private key file:', $argv[1], "\n";
        exit(255);
    }
    $pkeyFile = file_get_contents($argv[1]);
    
    $private = openssl_get_privatekey($pkeyFile);
    if ($private !== false) {
        $pkey = '';
        openssl_pkey_export($private, $pkey);
        $phar->setSignatureAlgorithm(Phar::OPENSSL, $pkey);
        
        /**
         * Save the corresponding public key to the file
         */
        if (!@is_readable($dist.'/random_compat.phar.pubkey')) {
            $details = openssl_pkey_get_details($private);
            file_put_contents(
                $dist.'/random_compat.phar.pubkey',
                $details['key']
            );
        }
    } else {
        echo 'An error occurred reading the private key from OpenSSL.', "\n";
        exit(255);
    }
}
#!/usr/bin/env bash

basedir=$( dirname $( readlink -f ${BASH_SOURCE[0]} ) )

php -dphar.readonly=0 "$basedir/other/build_phar.php" $*<?php

require_once 'lib/byte_safe_strings.php';
require_once 'lib/cast_to_int.php';
require_once 'lib/error_polyfill.php';
require_once 'other/ide_stubs/libsodium.php';
require_once 'lib/random.php';

$int = random_int(0, 65536);
<?php
/**
 * Random_* Compatibility Library
 * for using the new PHP 7 random_* API in PHP 5 projects
 *
 * @version 2.99.99
 * @released 2018-06-06
 *
 * The MIT License (MIT)
 *
 * Copyright (c) 2015 - 2018 Paragon Initiative Enterprises
 *
 * 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.
 */

// NOP
{
  "name":         "paragonie/random_compat",
  "description":  "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
  "keywords": [
    "csprng",
    "random",
    "polyfill",
    "pseudorandom"
  ],
  "license":      "MIT",
  "type":         "library",
  "authors": [
    {
      "name":     "Paragon Initiative Enterprises",
      "email":    "security@paragonie.com",
      "homepage": "https://paragonie.com"
    }
  ],
  "support": {
    "issues":     "https://github.com/paragonie/random_compat/issues",
    "email":      "info@paragonie.com",
    "source":     "https://github.com/paragonie/random_compat"
  },
  "require": {
    "php": "^7"
  },
  "require-dev": {
    "vimeo/psalm": "^1",
    "phpunit/phpunit": "4.*|5.*"
  },
  "suggest": {
    "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
  }
}
<?xml version="1.0"?>
<psalm
    autoloader="psalm-autoload.php"
    stopOnFirstError="false"
    useDocblockTypes="true"
>
    <projectFiles>
        <directory name="lib" />
    </projectFiles>
    <issueHandlers>
        <RedundantConditionGivenDocblockType errorLevel="info" />
        <UnresolvableInclude errorLevel="info" />
        <DuplicateClass errorLevel="info" />
        <InvalidOperand errorLevel="info" />
        <UndefinedConstant errorLevel="info" />
        <MissingReturnType errorLevel="info" />
        <InvalidReturnType errorLevel="info" />
    </issueHandlers>
</psalm>
Copyright (c) 2006-2018 Doctrine Project

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.
# Doctrine Lexer

Build Status: [![Build Status](https://travis-ci.org/doctrine/lexer.svg?branch=master)](https://travis-ci.org/doctrine/lexer)

Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.

This lexer is used in Doctrine Annotations and in Doctrine ORM (DQL).

https://www.doctrine-project.org/projects/lexer.html
<?php

declare(strict_types=1);

namespace Doctrine\Common\Lexer;

use ReflectionClass;
use const PREG_SPLIT_DELIM_CAPTURE;
use const PREG_SPLIT_NO_EMPTY;
use const PREG_SPLIT_OFFSET_CAPTURE;
use function implode;
use function in_array;
use function preg_split;
use function sprintf;
use function substr;

/**
 * Base class for writing simple lexers, i.e. for creating small DSLs.
 */
abstract class AbstractLexer
{
    /**
     * Lexer original input string.
     *
     * @var string
     */
    private $input;

    /**
     * Array of scanned tokens.
     *
     * Each token is an associative array containing three items:
     *  - 'value'    : the string value of the token in the input string
     *  - 'type'     : the type of the token (identifier, numeric, string, input
     *                 parameter, none)
     *  - 'position' : the position of the token in the input string
     *
     * @var array
     */
    private $tokens = [];

    /**
     * Current lexer position in input string.
     *
     * @var int
     */
    private $position = 0;

    /**
     * Current peek of current lexer position.
     *
     * @var int
     */
    private $peek = 0;

    /**
     * The next token in the input.
     *
     * @var array|null
     */
    public $lookahead;

    /**
     * The last matched/seen token.
     *
     * @var array|null
     */
    public $token;

    /**
     * Composed regex for input parsing.
     *
     * @var string
     */
    private $regex;

    /**
     * Sets the input data to be tokenized.
     *
     * The Lexer is immediately reset and the new input tokenized.
     * Any unprocessed tokens from any previous input are lost.
     *
     * @param string $input The input to be tokenized.
     *
     * @return void
     */
    public function setInput($input)
    {
        $this->input  = $input;
        $this->tokens = [];

        $this->reset();
        $this->scan($input);
    }

    /**
     * Resets the lexer.
     *
     * @return void
     */
    public function reset()
    {
        $this->lookahead = null;
        $this->token     = null;
        $this->peek      = 0;
        $this->position  = 0;
    }

    /**
     * Resets the peek pointer to 0.
     *
     * @return void
     */
    public function resetPeek()
    {
        $this->peek = 0;
    }

    /**
     * Resets the lexer position on the input to the given position.
     *
     * @param int $position Position to place the lexical scanner.
     *
     * @return void
     */
    public function resetPosition($position = 0)
    {
        $this->position = $position;
    }

    /**
     * Retrieve the original lexer's input until a given position.
     *
     * @param int $position
     *
     * @return string
     */
    public function getInputUntilPosition($position)
    {
        return substr($this->input, 0, $position);
    }

    /**
     * Checks whether a given token matches the current lookahead.
     *
     * @param int|string $token
     *
     * @return bool
     */
    public function isNextToken($token)
    {
        return $this->lookahead !== null && $this->lookahead['type'] === $token;
    }

    /**
     * Checks whether any of the given tokens matches the current lookahead.
     *
     * @param array $tokens
     *
     * @return bool
     */
    public function isNextTokenAny(array $tokens)
    {
        return $this->lookahead !== null && in_array($this->lookahead['type'], $tokens, true);
    }

    /**
     * Moves to the next token in the input string.
     *
     * @return bool
     */
    public function moveNext()
    {
        $this->peek      = 0;
        $this->token     = $this->lookahead;
        $this->lookahead = isset($this->tokens[$this->position])
            ? $this->tokens[$this->position++] : null;

        return $this->lookahead !== null;
    }

    /**
     * Tells the lexer to skip input tokens until it sees a token with the given value.
     *
     * @param string $type The token type to skip until.
     *
     * @return void
     */
    public function skipUntil($type)
    {
        while ($this->lookahead !== null && $this->lookahead['type'] !== $type) {
            $this->moveNext();
        }
    }

    /**
     * Checks if given value is identical to the given token.
     *
     * @param mixed      $value
     * @param int|string $token
     *
     * @return bool
     */
    public function isA($value, $token)
    {
        return $this->getType($value) === $token;
    }

    /**
     * Moves the lookahead token forward.
     *
     * @return array|null The next token or NULL if there are no more tokens ahead.
     */
    public function peek()
    {
        if (isset($this->tokens[$this->position + $this->peek])) {
            return $this->tokens[$this->position + $this->peek++];
        }

        return null;
    }

    /**
     * Peeks at the next token, returns it and immediately resets the peek.
     *
     * @return array|null The next token or NULL if there are no more tokens ahead.
     */
    public function glimpse()
    {
        $peek       = $this->peek();
        $this->peek = 0;

        return $peek;
    }

    /**
     * Scans the input string for tokens.
     *
     * @param string $input A query string.
     *
     * @return void
     */
    protected function scan($input)
    {
        if (! isset($this->regex)) {
            $this->regex = sprintf(
                '/(%s)|%s/%s',
                implode(')|(', $this->getCatchablePatterns()),
                implode('|', $this->getNonCatchablePatterns()),
                $this->getModifiers()
            );
        }

        $flags   = PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_OFFSET_CAPTURE;
        $matches = preg_split($this->regex, $input, -1, $flags);

        if ($matches === false) {
            // Work around https://bugs.php.net/78122
            $matches = [[$input, 0]];
        }

        foreach ($matches as $match) {
            // Must remain before 'value' assignment since it can change content
            $type = $this->getType($match[0]);

            $this->tokens[] = [
                'value' => $match[0],
                'type'  => $type,
                'position' => $match[1],
            ];
        }
    }

    /**
     * Gets the literal for a given token.
     *
     * @param int|string $token
     *
     * @return int|string
     */
    public function getLiteral($token)
    {
        $className = static::class;
        $reflClass = new ReflectionClass($className);
        $constants = $reflClass->getConstants();

        foreach ($constants as $name => $value) {
            if ($value === $token) {
                return $className . '::' . $name;
            }
        }

        return $token;
    }

    /**
     * Regex modifiers
     *
     * @return string
     */
    protected function getModifiers()
    {
        return 'iu';
    }

    /**
     * Lexical catchable patterns.
     *
     * @return array
     */
    abstract protected function getCatchablePatterns();

    /**
     * Lexical non-catchable patterns.
     *
     * @return array
     */
    abstract protected function getNonCatchablePatterns();

    /**
     * Retrieve token type. Also processes the token value if necessary.
     *
     * @param string $value
     *
     * @return int|string|null
     */
    abstract protected function getType(&$value);
}
{
    "name": "doctrine/lexer",
    "type": "library",
    "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.",
    "keywords": [
        "php",
        "parser",
        "lexer",
        "annotations",
        "docblock"
    ],
    "homepage": "https://www.doctrine-project.org/projects/lexer.html",
    "license": "MIT",
    "authors": [
        {"name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com"},
        {"name": "Roman Borschel", "email": "roman@code-factory.org"},
        {"name": "Johannes Schmitt", "email": "schmittjoh@gmail.com"}
    ],
    "require": {
        "php": "^7.2 || ^8.0"
    },
    "require-dev": {
        "doctrine/coding-standard": "^6.0",
        "phpstan/phpstan": "^0.11.8",
        "phpunit/phpunit": "^8.2"
    },
    "autoload": {
        "psr-4": { "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" }
    },
    "autoload-dev": {
        "psr-4": { "Doctrine\\Tests\\": "tests/Doctrine" }
    },
    "extra": {
        "branch-alias": {
            "dev-master": "1.2.x-dev"
        }
    },
    "config": {
        "sort-packages": true
    }
}
{
    "bootstrap": "tests/Doctrine/Performance/Common/bootstrap.php",
    "path": "tests/Doctrine/Performance/Common/Annotations"
}
Copyright (c) 2006-2013 Doctrine Project

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.
## Changelog

### 1.6.1

This release fixes an issue in which annotations such as `@foo-bar`
and `@foo-` were incorrectly recognised as valid, and both erroneously
parsed as `@foo`.

Any annotation with `@name-*` format will now silently be ignored,
allowing vendor-specific annotations to be prefixed with the tool
name.

Total issues resolved: **3**

- [165: Update the composer branch alias](https://github.com/doctrine/annotations/pull/165) thanks to @mikeSimonson
- [209: Change Annotation::value typehint to mixed](https://github.com/doctrine/annotations/pull/209) thanks to @malarzm
- [257: Skip parsing annotations containing dashes, such as `@Foo-bar`, or `@Foo-`](https://github.com/doctrine/annotations/pull/257) thanks to @Ocramius

### 1.6.0

This release brings a new endpoint that make sure that you can't shoot yourself in the foot by calling ```registerLoader``` multiple times and a few tests improvements.

Total issues resolved: **7**

- [145: Memory leak in AnnotationRegistry::registerLoader() when called multiple times](https://github.com/doctrine/annotations/issues/145) thanks to @TriAnMan
- [146: Import error on @experimental Annotation](https://github.com/doctrine/annotations/issues/146) thanks to @aturki
- [147: Ignoring @experimental annotation used by Symfony 3.3 CacheAdapter](https://github.com/doctrine/annotations/pull/147) thanks to @aturki
- [151: Remove duplicate code in `DCOM58Test`](https://github.com/doctrine/annotations/pull/151) thanks to @tuanphpvn
- [161: Prevent loading class&#95;exists multiple times](https://github.com/doctrine/annotations/pull/161) thanks to @jrjohnson
- [162: Add registerUniqueLoader to AnnotationRegistry](https://github.com/doctrine/annotations/pull/162) thanks to @jrjohnson
- [163: Use assertDirectoryExists and assertDirectoryNotExists](https://github.com/doctrine/annotations/pull/163) thanks to @carusogabriel

Thanks to everyone involved in this release.

### 1.5.0

This release increments the minimum supported PHP version to 7.1.0.

Also, HHVM official support has been dropped.

Some noticeable performance improvements to annotation autoloading
have been applied, making failed annotation autoloading less heavy
on the filesystem access.

- [133: Add @throws annotation in AnnotationReader#__construct()](https://github.com/doctrine/annotations/issues/133) thanks to @SenseException
- [134: Require PHP 7.1, drop HHVM support](https://github.com/doctrine/annotations/issues/134) thanks to @lcobucci
- [135: Prevent the same loader from being registered twice](https://github.com/doctrine/annotations/issues/135)  thanks to @jrjohnson
- [137: #135 optimise multiple class load attempts in AnnotationRegistry](https://github.com/doctrine/annotations/issues/137)  thanks to @Ocramius


### 1.4.0

This release fix an issue were some annotations could be not loaded if the namespace in the use statement started with a backslash.
It also update the tests and drop the support for php 5.X

- [115: Missing annotations with the latest composer version](https://github.com/doctrine/annotations/issues/115) thanks to @pascalporedda
- [120: Missing annotations with the latest composer version](https://github.com/doctrine/annotations/pull/120) thanks to @gnat42
- [121: Adding a more detailed explanation of the test](https://github.com/doctrine/annotations/pull/121) thanks to @mikeSimonson
- [101: Test annotation parameters containing space](https://github.com/doctrine/annotations/pull/101) thanks to @mikeSimonson
- [111: Cleanup: move to correct phpunit assertions](https://github.com/doctrine/annotations/pull/111) thanks to @Ocramius
- [112: Removes support for PHP 5.x](https://github.com/doctrine/annotations/pull/112) thanks to @railto
- [113: bumped phpunit version to 5.7](https://github.com/doctrine/annotations/pull/113) thanks to @gabbydgab
- [114: Enhancement: Use SVG Travis build badge](https://github.com/doctrine/annotations/pull/114) thanks to @localheinz
- [118: Integrating PHPStan](https://github.com/doctrine/annotations/pull/118) thanks to @ondrejmirtes

### 1.3.1 - 2016-12-30

This release fixes an issue with ignored annotations that were already
autoloaded, causing the `SimpleAnnotationReader` to pick them up
anyway. [#110](https://github.com/doctrine/annotations/pull/110)

Additionally, an issue was fixed in the `CachedReader`, which was
not correctly checking the freshness of cached annotations when
traits were defined on a class. [#105](https://github.com/doctrine/annotations/pull/105)

Total issues resolved: **2**

- [105: Return single max timestamp](https://github.com/doctrine/annotations/pull/105)
- [110: setIgnoreNotImportedAnnotations(true) didn&rsquo;t work for existing classes](https://github.com/doctrine/annotations/pull/110)

### 1.3.0

This release introduces a PHP version bump. `doctrine/annotations` now requires PHP
5.6 or later to be installed.

A series of additional improvements have been introduced:

 * support for PHP 7 "grouped use statements"
 * support for ignoring entire namespace names
   via `Doctrine\Common\Annotations\AnnotationReader::addGlobalIgnoredNamespace()` and
   `Doctrine\Common\Annotations\DocParser::setIgnoredAnnotationNamespaces()`. This will
   allow you to ignore annotations from namespaces that you cannot autoload
 * testing all parent classes and interfaces when checking if the annotation cache
   in the `CachedReader` is fresh
 * simplifying the cache keys used by the `CachedReader`: keys are no longer artificially
   namespaced, since `Doctrine\Common\Cache` already supports that
 * corrected parsing of multibyte strings when `mbstring.func_overload` is enabled
 * corrected parsing of annotations when `"\t"` is put before the first annotation
   in a docblock
 * allow skipping non-imported annotations when a custom `DocParser` is passed to
   the `AnnotationReader` constructor

Total issues resolved: **15**

- [45: DocParser can now ignore whole namespaces](https://github.com/doctrine/annotations/pull/45)
- [57: Switch to the docker-based infrastructure on Travis](https://github.com/doctrine/annotations/pull/57)
- [59: opcache.load&#95;comments has been removed from PHP 7](https://github.com/doctrine/annotations/pull/59)
- [62: &#91;CachedReader&#92; Test traits and parent class to see if cache is fresh](https://github.com/doctrine/annotations/pull/62)
- [65: Remove cache salt making key unnecessarily long](https://github.com/doctrine/annotations/pull/65)
- [66: Fix of incorrect parsing multibyte strings](https://github.com/doctrine/annotations/pull/66)
- [68: Annotations that are indented by tab are not processed.](https://github.com/doctrine/annotations/issues/68)
- [69: Support for Group Use Statements](https://github.com/doctrine/annotations/pull/69)
- [70: Allow tab character before first annotation in DocBlock](https://github.com/doctrine/annotations/pull/70)
- [74: Ignore not registered annotations fix](https://github.com/doctrine/annotations/pull/74)
- [92: Added tests for AnnotationRegistry class.](https://github.com/doctrine/annotations/pull/92)
- [96: Fix/#62 check trait and parent class ttl in annotations](https://github.com/doctrine/annotations/pull/96)
- [97: Feature - #45 - allow ignoring entire namespaces](https://github.com/doctrine/annotations/pull/97)
- [98: Enhancement/#65 remove cache salt from cached reader](https://github.com/doctrine/annotations/pull/98)
- [99: Fix - #70 - allow tab character before first annotation in docblock](https://github.com/doctrine/annotations/pull/99)

### 1.2.4

Total issues resolved: **1**

- [51: FileCacheReader::saveCacheFile::unlink fix](https://github.com/doctrine/annotations/pull/51)

### 1.2.3

Total issues resolved: [**2**](https://github.com/doctrine/annotations/milestones/v1.2.3)

- [49: #46 - applying correct `chmod()` to generated cache file](https://github.com/doctrine/annotations/pull/49)
- [50: Hotfix: match escaped quotes (revert #44)](https://github.com/doctrine/annotations/pull/50)

### 1.2.2

Total issues resolved: **4**

- [43: Exclude files from distribution with .gitattributes](https://github.com/doctrine/annotations/pull/43)
- [44: Update DocLexer.php](https://github.com/doctrine/annotations/pull/44)
- [46: A plain &quot;file&#95;put&#95;contents&quot; can cause havoc](https://github.com/doctrine/annotations/pull/46)
- [48: Deprecating the `FileCacheReader` in 1.2.2: will be removed in 2.0.0](https://github.com/doctrine/annotations/pull/48)

### 1.2.1

Total issues resolved: **4**

- [38: fixes doctrine/common#326](https://github.com/doctrine/annotations/pull/38)
- [39: Remove superfluous NS](https://github.com/doctrine/annotations/pull/39)
- [41: Warn if load_comments is not enabled.](https://github.com/doctrine/annotations/pull/41)
- [42: Clean up unused uses](https://github.com/doctrine/annotations/pull/42)

### 1.2.0

 * HHVM support
 * Allowing dangling comma in annotations
 * Excluded annotations are no longer autoloaded
 * Importing namespaces also in traits
 * Added support for `::class` 5.5-style constant, works also in 5.3 and 5.4

### 1.1.0

 * Add Exception when ZendOptimizer+ or Opcache is configured to drop comments
parameters:
    autoload_files:
        - %currentWorkingDirectory%/tests/Doctrine/Tests/Common/Annotations/DocParserTest.php
    excludes_analyse:
        - %currentWorkingDirectory%/tests/*/Fixtures/*
        - %currentWorkingDirectory%/tests/Doctrine/Tests/Common/Annotations/ReservedKeywordsClasses.php
        - %currentWorkingDirectory%/tests/Doctrine/Tests/Common/Annotations/Ticket/DCOM58Entity.php
        - %currentWorkingDirectory%/tests/Doctrine/Tests/DoctrineTestCase.php
    polluteScopeWithLoopInitialAssignments: true
    ignoreErrors:
        - '#Class Doctrine_Tests_Common_Annotations_Fixtures_ClassNoNamespaceNoComment not found#'
        - '#Instantiated class Doctrine_Tests_Common_Annotations_Fixtures_ClassNoNamespaceNoComment not found#'
        - '#Property Doctrine\\Tests\\Common\\Annotations\\DummyClassNonAnnotationProblem::\$foo has unknown class#'
        - '#Call to an undefined method ReflectionClass::getUseStatements\(\)#'
Custom Annotation Classes
=========================

If you want to define your own annotations, you just have to group them
in a namespace and register this namespace in the ``AnnotationRegistry``.
Annotation classes have to contain a class-level docblock with the text
``@Annotation``:

.. code-block:: php

    namespace MyCompany\Annotations;

    /** @Annotation */
    class Bar
    {
        // some code
    }

Inject annotation values
------------------------

The annotation parser checks if the annotation constructor has arguments,
if so then it will pass the value array, otherwise it will try to inject
values into public properties directly:


.. code-block:: php

    namespace MyCompany\Annotations;

    /**
     * @Annotation
     *
     * Some Annotation using a constructor
     */
    class Bar
    {
        private $foo;

        public function __construct(array $values)
        {
            $this->foo = $values['foo'];
        }
    }

    /**
     * @Annotation
     *
     * Some Annotation without a constructor
     */
    class Foo
    {
        public $bar;
    }

Annotation Target
-----------------

``@Target`` indicates the kinds of class elements to which an annotation
type is applicable. Then you could define one or more targets:

-  ``CLASS`` Allowed in class docblocks
-  ``PROPERTY`` Allowed in property docblocks
-  ``METHOD`` Allowed in the method docblocks
-  ``ALL`` Allowed in class, property and method docblocks
-  ``ANNOTATION`` Allowed inside other annotations

If the annotations is not allowed in the current context, an
``AnnotationException`` is thrown.

.. code-block:: php

    namespace MyCompany\Annotations;

    /**
     * @Annotation
     * @Target({"METHOD","PROPERTY"})
     */
    class Bar
    {
        // some code
    }

    /**
     * @Annotation
     * @Target("CLASS")
     */
    class Foo
    {
        // some code
    }

Attribute types
---------------

The annotation parser checks the given parameters using the phpdoc
annotation ``@var``, The data type could be validated using the ``@var``
annotation on the annotation properties or using the ``@Attributes`` and
``@Attribute`` annotations.

If the data type does not match you get an ``AnnotationException``

.. code-block:: php

    namespace MyCompany\Annotations;

    /**
     * @Annotation
     * @Target({"METHOD","PROPERTY"})
     */
    class Bar
    {
        /** @var mixed */
        public $mixed;

        /** @var boolean */
        public $boolean;

        /** @var bool */
        public $bool;

        /** @var float */
        public $float;

        /** @var string */
        public $string;

        /** @var integer */
        public $integer;

        /** @var array */
        public $array;

        /** @var SomeAnnotationClass */
        public $annotation;

        /** @var array<integer> */
        public $arrayOfIntegers;

        /** @var array<SomeAnnotationClass> */
        public $arrayOfAnnotations;
    }

    /**
     * @Annotation
     * @Target({"METHOD","PROPERTY"})
     * @Attributes({
     *   @Attribute("stringProperty", type = "string"),
     *   @Attribute("annotProperty",  type = "SomeAnnotationClass"),
     * })
     */
    class Foo
    {
        public function __construct(array $values)
        {
            $this->stringProperty = $values['stringProperty'];
            $this->annotProperty = $values['annotProperty'];
        }

        // some code
    }

Annotation Required
-------------------

``@Required`` indicates that the field must be specified when the
annotation is used. If it is not used you get an ``AnnotationException``
stating that this value can not be null.

Declaring a required field:

.. code-block:: php

    /**
     * @Annotation
     * @Target("ALL")
     */
    class Foo
    {
        /** @Required */
        public $requiredField;
    }

Usage:

.. code-block:: php

    /** @Foo(requiredField="value") */
    public $direction;                  // Valid

     /** @Foo */
    public $direction;                  // Required field missing, throws an AnnotationException


Enumerated values
-----------------

- An annotation property marked with ``@Enum`` is a field that accepts a
  fixed set of scalar values.
- You should use ``@Enum`` fields any time you need to represent fixed
  values.
- The annotation parser checks the given value and throws an
  ``AnnotationException`` if the value does not match.


Declaring an enumerated property:

.. code-block:: php

    /**
     * @Annotation
     * @Target("ALL")
     */
    class Direction
    {
        /**
         * @Enum({"NORTH", "SOUTH", "EAST", "WEST"})
         */
        public $value;
    }

Annotation usage:

.. code-block:: php

    /** @Direction("NORTH") */
    public $direction;                  // Valid value

     /** @Direction("NORTHEAST") */
    public $direction;                  // Invalid value, throws an AnnotationException


Constants
---------

The use of constants and class constants is available on the annotations
parser.

The following usages are allowed:

.. code-block:: php

    namespace MyCompany\Entity;

    use MyCompany\Annotations\Foo;
    use MyCompany\Annotations\Bar;
    use MyCompany\Entity\SomeClass;

    /**
     * @Foo(PHP_EOL)
     * @Bar(Bar::FOO)
     * @Foo({SomeClass::FOO, SomeClass::BAR})
     * @Bar({SomeClass::FOO_KEY = SomeClass::BAR_VALUE})
     */
    class User
    {
    }


Be careful with constants and the cache !

.. note::

    The cached reader will not re-evaluate each time an annotation is
    loaded from cache. When a constant is changed the cache must be
    cleaned.


Usage
-----

Using the library API is simple. Using the annotations described in the
previous section, you can now annotate other classes with your
annotations:

.. code-block:: php

    namespace MyCompany\Entity;

    use MyCompany\Annotations\Foo;
    use MyCompany\Annotations\Bar;

    /**
     * @Foo(bar="foo")
     * @Bar(foo="bar")
     */
    class User
    {
    }

Now we can write a script to get the annotations above:

.. code-block:: php

    $reflClass = new ReflectionClass('MyCompany\Entity\User');
    $classAnnotations = $reader->getClassAnnotations($reflClass);

    foreach ($classAnnotations AS $annot) {
        if ($annot instanceof \MyCompany\Annotations\Foo) {
            echo $annot->bar; // prints "foo";
        } else if ($annot instanceof \MyCompany\Annotations\Bar) {
            echo $annot->foo; // prints "bar";
        }
    }

You have a complete API for retrieving annotation class instances from a
class, property or method docblock:


Reader API
~~~~~~~~~~

Access all annotations of a class
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. code-block:: php

    public function getClassAnnotations(\ReflectionClass $class);

Access one annotation of a class
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. code-block:: php

    public function getClassAnnotation(\ReflectionClass $class, $annotationName);

Access all annotations of a method
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. code-block:: php

    public function getMethodAnnotations(\ReflectionMethod $method);

Access one annotation of a method
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. code-block:: php

    public function getMethodAnnotation(\ReflectionMethod $method, $annotationName);

Access all annotations of a property
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. code-block:: php

    public function getPropertyAnnotations(\ReflectionProperty $property);

Access one annotation of a property
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. code-block:: php

    public function getPropertyAnnotation(\ReflectionProperty $property, $annotationName);
Introduction
============

Doctrine Annotations allows to implement custom annotation
functionality for PHP classes.

.. code-block:: php

    class Foo
    {
        /**
         * @MyAnnotation(myProperty="value")
         */
        private $bar;
    }

Annotations aren't implemented in PHP itself which is why this component
offers a way to use the PHP doc-blocks as a place for the well known
annotation syntax using the ``@`` char.

Annotations in Doctrine are used for the ORM configuration to build the
class mapping, but it can be used in other projects for other purposes
too.

Installation
============

You can install the Annotation component with composer:

.. code-block::

    $ composer require doctrine/annotations

Create an annotation class
==========================

An annotation class is a representation of the later used annotation
configuration in classes. The annotation class of the previous example
looks like this:

.. code-block:: php

    /**
     * @Annotation
     */
    final class MyAnnotation
    {
        public $myProperty;
    }

The annotation class is declared as an annotation by ``@Annotation``.

:ref:`Read more about custom annotations. <custom>`

Reading annotations
===================

The access to the annotations happens by reflection of the class
containing them. There are multiple reader-classes implementing the
``Doctrine\Common\Annotations\Reader`` interface, that can access the
annotations of a class. A common one is
``Doctrine\Common\Annotations\AnnotationReader``:

.. code-block:: php

    use Doctrine\Common\Annotations\AnnotationReader;
    use Doctrine\Common\Annotations\AnnotationRegistry;

    // Deprecated and will be removed in 2.0 but currently needed
    AnnotationRegistry::registerLoader('class_exists');

    $reflectionClass = new ReflectionClass(Foo::class);
    $property = $reflectionClass->getProperty('bar');

    $reader = new AnnotationReader();
    $myAnnotation = $reader->getPropertyAnnotation($property, MyAnnotation::class);

    echo $myAnnotation->myProperty; // result: "value"

Note that ``AnnotationRegistry::registerLoader('class_exists')`` only works
if you already have an autoloader configured (i.e. composer autoloader).
Otherwise, :ref:`please take a look to the other annotation autoload mechanisms <annotations>`.

A reader has multiple methods to access the annotations of a class.

:ref:`Read more about handling annotations. <annotations>`

IDE Support
-----------

Some IDEs already provide support for annotations:

- Eclipse via the `Symfony2 Plugin <http://symfony.dubture.com/>`_
- PHPStorm via the `PHP Annotations Plugin <http://plugins.jetbrains.com/plugin/7320>`_ or the `Symfony2 Plugin <http://plugins.jetbrains.com/plugin/7219>`_

.. _Read more about handling annotations.: annotations
.. _Read more about custom annotations.: custom
Handling Annotations
====================

There are several different approaches to handling annotations in PHP.
Doctrine Annotations maps docblock annotations to PHP classes. Because
not all docblock annotations are used for metadata purposes a filter is
applied to ignore or skip classes that are not Doctrine annotations.

Take a look at the following code snippet:

.. code-block:: php

    namespace MyProject\Entities;

    use Doctrine\ORM\Mapping AS ORM;
    use Symfony\Component\Validation\Constraints AS Assert;

    /**
     * @author Benjamin Eberlei
     * @ORM\Entity
     * @MyProject\Annotations\Foobarable
     */
    class User
    {
        /**
         * @ORM\Id @ORM\Column @ORM\GeneratedValue
         * @dummy
         * @var int
         */
        private $id;

        /**
         * @ORM\Column(type="string")
         * @Assert\NotEmpty
         * @Assert\Email
         * @var string
         */
        private $email;
    }

In this snippet you can see a variety of different docblock annotations:

- Documentation annotations such as ``@var`` and ``@author``. These
  annotations are on a blacklist and never considered for throwing an
  exception due to wrongly used annotations.
- Annotations imported through use statements. The statement ``use
  Doctrine\ORM\Mapping AS ORM`` makes all classes under that namespace
  available as ``@ORM\ClassName``. Same goes for the import of
  ``@Assert``.
- The ``@dummy`` annotation. It is not a documentation annotation and
  not blacklisted. For Doctrine Annotations it is not entirely clear how
  to handle this annotation. Depending on the configuration an exception
  (unknown annotation) will be thrown when parsing this annotation.
- The fully qualified annotation ``@MyProject\Annotations\Foobarable``.
  This is transformed directly into the given class name.

How are these annotations loaded? From looking at the code you could
guess that the ORM Mapping, Assert Validation and the fully qualified
annotation can just be loaded using
the defined PHP autoloaders. This is not the case however: For error
handling reasons every check for class existence inside the
``AnnotationReader`` sets the second parameter $autoload
of ``class_exists($name, $autoload)`` to false. To work flawlessly the
``AnnotationReader`` requires silent autoloaders which many autoloaders are
not. Silent autoloading is NOT part of the `PSR-0 specification
<https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md>`_
for autoloading.

This is why Doctrine Annotations uses its own autoloading mechanism
through a global registry. If you are wondering about the annotation
registry being global, there is no other way to solve the architectural
problems of autoloading annotation classes in a straightforward fashion.
Additionally if you think about PHP autoloading then you recognize it is
a global as well.

To anticipate the configuration section, making the above PHP class work
with Doctrine Annotations requires this setup:

.. code-block:: php

    use Doctrine\Common\Annotations\AnnotationReader;
    use Doctrine\Common\Annotations\AnnotationRegistry;

    AnnotationRegistry::registerFile("/path/to/doctrine/lib/Doctrine/ORM/Mapping/Driver/DoctrineAnnotations.php");
    AnnotationRegistry::registerAutoloadNamespace("Symfony\Component\Validator\Constraint", "/path/to/symfony/src");
    AnnotationRegistry::registerAutoloadNamespace("MyProject\Annotations", "/path/to/myproject/src");

    $reader = new AnnotationReader();
    AnnotationReader::addGlobalIgnoredName('dummy');

The second block with the annotation registry calls registers all the
three different annotation namespaces that are used.
Doctrine Annotations saves all its annotations in a single file, that is
why ``AnnotationRegistry#registerFile`` is used in contrast to
``AnnotationRegistry#registerAutoloadNamespace`` which creates a PSR-0
compatible loading mechanism for class to file names.

In the third block, we create the actual ``AnnotationReader`` instance.
Note that we also add ``dummy`` to the global list of ignored
annotations for which we do not throw exceptions. Setting this is
necessary in our example case, otherwise ``@dummy`` would trigger an
exception to be thrown during the parsing of the docblock of
``MyProject\Entities\User#id``.

Setup and Configuration
-----------------------

To use the annotations library is simple, you just need to create a new
``AnnotationReader`` instance:

.. code-block:: php

    $reader = new \Doctrine\Common\Annotations\AnnotationReader();

This creates a simple annotation reader with no caching other than in
memory (in php arrays). Since parsing docblocks can be expensive you
should cache this process by using a caching reader.

You can use a file caching reader, but please note it is deprecated to
do so:

.. code-block:: php

    use Doctrine\Common\Annotations\FileCacheReader;
    use Doctrine\Common\Annotations\AnnotationReader;

    $reader = new FileCacheReader(
        new AnnotationReader(),
        "/path/to/cache",
        $debug = true
    );

If you set the ``debug`` flag to ``true`` the cache reader will check
for changes in the original files, which is very important during
development. If you don't set it to ``true`` you have to delete the
directory to clear the cache. This gives faster performance, however
should only be used in production, because of its inconvenience during
development.

You can also use one of the ``Doctrine\Common\Cache\Cache`` cache
implementations to cache the annotations:

.. code-block:: php

    use Doctrine\Common\Annotations\AnnotationReader;
    use Doctrine\Common\Annotations\CachedReader;
    use Doctrine\Common\Cache\ApcCache;

    $reader = new CachedReader(
        new AnnotationReader(),
        new ApcCache(),
        $debug = true
    );

The ``debug`` flag is used here as well to invalidate the cache files
when the PHP class with annotations changed and should be used during
development.

.. warning ::

    The ``AnnotationReader`` works and caches under the
    assumption that all annotations of a doc-block are processed at
    once. That means that annotation classes that do not exist and
    aren't loaded and cannot be autoloaded (using the
    AnnotationRegistry) would never be visible and not accessible if a
    cache is used unless the cache is cleared and the annotations
    requested again, this time with all annotations defined.

By default the annotation reader returns a list of annotations with
numeric indexes. If you want your annotations to be indexed by their
class name you can wrap the reader in an ``IndexedReader``:

.. code-block:: php

    use Doctrine\Common\Annotations\AnnotationReader;
    use Doctrine\Common\Annotations\IndexedReader;

    $reader = new IndexedReader(new AnnotationReader());

.. warning::

    You should never wrap the indexed reader inside a cached reader,
    only the other way around. This way you can re-use the cache with
    indexed or numeric keys, otherwise your code may experience failures
    due to caching in a numerical or indexed format.

Registering Annotations
~~~~~~~~~~~~~~~~~~~~~~~

As explained in the introduction, Doctrine Annotations uses its own
autoloading mechanism to determine if a given annotation has a
corresponding PHP class that can be autoloaded. For annotation
autoloading you have to configure the
``Doctrine\Common\Annotations\AnnotationRegistry``. There are three
different mechanisms to configure annotation autoloading:

- Calling ``AnnotationRegistry#registerFile($file)`` to register a file
  that contains one or more annotation classes.
- Calling ``AnnotationRegistry#registerNamespace($namespace, $dirs =
  null)`` to register that the given namespace contains annotations and
  that their base directory is located at the given $dirs or in the
  include path if ``NULL`` is passed. The given directories should *NOT*
  be the directory where classes of the namespace are in, but the base
  directory of the root namespace. The AnnotationRegistry uses a
  namespace to directory separator approach to resolve the correct path.
- Calling ``AnnotationRegistry#registerLoader($callable)`` to register
  an autoloader callback. The callback accepts the class as first and
  only parameter and has to return ``true`` if the corresponding file
  was found and included.

.. note::

    Loaders have to fail silently, if a class is not found even if it
    matches for example the namespace prefix of that loader. Never is a
    loader to throw a warning or exception if the loading failed
    otherwise parsing doc block annotations will become a huge pain.

A sample loader callback could look like:

.. code-block:: php

    use Doctrine\Common\Annotations\AnnotationRegistry;
    use Symfony\Component\ClassLoader\UniversalClassLoader;

    AnnotationRegistry::registerLoader(function($class) {
        $file = str_replace("\\", DIRECTORY_SEPARATOR, $class) . ".php";

        if (file_exists("/my/base/path/" . $file)) {
            // file_exists() makes sure that the loader fails silently
            require "/my/base/path/" . $file;
        }
    });

    $loader = new UniversalClassLoader();
    AnnotationRegistry::registerLoader(array($loader, "loadClass"));


Ignoring missing exceptions
~~~~~~~~~~~~~~~~~~~~~~~~~~~

By default an exception is thrown from the ``AnnotationReader`` if an
annotation was found that:

- is not part of the blacklist of ignored "documentation annotations";
- was not imported through a use statement;
- is not a fully qualified class that exists.

You can disable this behavior for specific names if your docblocks do
not follow strict requirements:

.. code-block:: php

    $reader = new \Doctrine\Common\Annotations\AnnotationReader();
    AnnotationReader::addGlobalIgnoredName('foo');

PHP Imports
~~~~~~~~~~~

By default the annotation reader parses the use-statement of a php file
to gain access to the import rules and register them for the annotation
processing. Only if you are using PHP Imports can you validate the
correct usage of annotations and throw exceptions if you misspelled an
annotation. This mechanism is enabled by default.

To ease the upgrade path, we still allow you to disable this mechanism.
Note however that we will remove this in future versions:

.. code-block:: php

    $reader = new \Doctrine\Common\Annotations\AnnotationReader();
    $reader->setEnabledPhpImports(false);
.. toctree::
    :depth: 3

    index
    annotations
    custom
# Doctrine Annotations

[![Build Status](https://travis-ci.org/doctrine/annotations.svg?branch=master)](https://travis-ci.org/doctrine/annotations)
[![Dependency Status](https://www.versioneye.com/package/php--doctrine--annotations/badge.png)](https://www.versioneye.com/package/php--doctrine--annotations)
[![Reference Status](https://www.versioneye.com/php/doctrine:annotations/reference_badge.svg)](https://www.versioneye.com/php/doctrine:annotations/references)
[![Total Downloads](https://poser.pugx.org/doctrine/annotations/downloads.png)](https://packagist.org/packages/doctrine/annotations)
[![Latest Stable Version](https://poser.pugx.org/doctrine/annotations/v/stable.png)](https://packagist.org/packages/doctrine/annotations)

Docblock Annotations Parser library (extracted from [Doctrine Common](https://github.com/doctrine/common)).

## Documentation

See the [doctrine-project website](https://www.doctrine-project.org/projects/doctrine-annotations/en/latest/index.html).

## Changelog

See [CHANGELOG.md](CHANGELOG.md).
<?php
/*
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * This software consists of voluntary contributions made by many individuals
 * and is licensed under the MIT license. For more information, see
 * <http://www.doctrine-project.org>.
 */

namespace Doctrine\Common\Annotations;

use SplFileObject;

/**
 * Parses a file for namespaces/use/class declarations.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 * @author Christian Kaps <christian.kaps@mohiva.com>
 */
final class PhpParser
{
    /**
     * Parses a class.
     *
     * @param \ReflectionClass $class A <code>ReflectionClass</code> object.
     *
     * @return array A list with use statements in the form (Alias => FQN).
     */
    public function parseClass(\ReflectionClass $class)
    {
        if (method_exists($class, 'getUseStatements')) {
            return $class->getUseStatements();
        }

        if (false === $filename = $class->getFileName()) {
            return [];
        }

        $content = $this->getFileContent($filename, $class->getStartLine());

        if (null === $content) {
            return [];
        }

        $namespace = preg_quote($class->getNamespaceName());
        $content = preg_replace('/^.*?(\bnamespace\s+' . $namespace . '\s*[;{].*)$/s', '\\1', $content);
        $tokenizer = new TokenParser('<?php ' . $content);

        $statements = $tokenizer->parseUseStatements($class->getNamespaceName());

        return $statements;
    }

    /**
     * Gets the content of the file right up to the given line number.
     *
     * @param string  $filename   The name of the file to load.
     * @param integer $lineNumber The number of lines to read from file.
     *
     * @return string|null The content of the file or null if the file does not exist.
     */
    private function getFileContent($filename, $lineNumber)
    {
        if ( ! is_file($filename)) {
            return null;
        }

        $content = '';
        $lineCnt = 0;
        $file = new SplFileObject($filename);
        while (!$file->eof()) {
            if ($lineCnt++ == $lineNumber) {
                break;
            }

            $content .= $file->fgets();
        }

        return $content;
    }
}
<?php
/*
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * This software consists of voluntary contributions made by many individuals
 * and is licensed under the MIT license. For more information, see
 * <http://www.doctrine-project.org>.
 */

namespace Doctrine\Common\Annotations;

/**
 * Description of AnnotationException
 *
 * @since  2.0
 * @author Benjamin Eberlei <kontakt@beberlei.de>
 * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
 * @author Jonathan Wage <jonwage@gmail.com>
 * @author Roman Borschel <roman@code-factory.org>
 */
class AnnotationException extends \Exception
{
    /**
     * Creates a new AnnotationException describing a Syntax error.
     *
     * @param string $message Exception message
     *
     * @return AnnotationException
     */
    public static function syntaxError($message)
    {
        return new self('[Syntax Error] ' . $message);
    }

    /**
     * Creates a new AnnotationException describing a Semantical error.
     *
     * @param string $message Exception message
     *
     * @return AnnotationException
     */
    public static function semanticalError($message)
    {
        return new self('[Semantical Error] ' . $message);
    }

    /**
     * Creates a new AnnotationException describing an error which occurred during
     * the creation of the annotation.
     *
     * @since 2.2
     *
     * @param string $message
     *
     * @return AnnotationException
     */
    public static function creationError($message)
    {
        return new self('[Creation Error] ' . $message);
    }

    /**
     * Creates a new AnnotationException describing a type error.
     *
     * @since 1.1
     *
     * @param string $message
     *
     * @return AnnotationException
     */
    public static function typeError($message)
    {
        return new self('[Type Error] ' . $message);
    }

    /**
     * Creates a new AnnotationException describing a constant semantical error.
     *
     * @since 2.3
     *
     * @param string $identifier
     * @param string $context
     *
     * @return AnnotationException
     */
    public static function semanticalErrorConstants($identifier, $context = null)
    {
        return self::semanticalError(sprintf(
            "Couldn't find constant %s%s.",
            $identifier,
            $context ? ', ' . $context : ''
        ));
    }

    /**
     * Creates a new AnnotationException describing an type error of an attribute.
     *
     * @since 2.2
     *
     * @param string $attributeName
     * @param string $annotationName
     * @param string $context
     * @param string $expected
     * @param mixed  $actual
     *
     * @return AnnotationException
     */
    public static function attributeTypeError($attributeName, $annotationName, $context, $expected, $actual)
    {
        return self::typeError(sprintf(
            'Attribute "%s" of @%s declared on %s expects %s, but got %s.',
            $attributeName,
            $annotationName,
            $context,
            $expected,
            is_object($actual) ? 'an instance of ' . get_class($actual) : gettype($actual)
        ));
    }

    /**
     * Creates a new AnnotationException describing an required error of an attribute.
     *
     * @since 2.2
     *
     * @param string $attributeName
     * @param string $annotationName
     * @param string $context
     * @param string $expected
     *
     * @return AnnotationException
     */
    public static function requiredError($attributeName, $annotationName, $context, $expected)
    {
        return self::typeError(sprintf(
            'Attribute "%s" of @%s declared on %s expects %s. This value should not be null.',
            $attributeName,
            $annotationName,
            $context,
            $expected
        ));
    }

    /**
     * Creates a new AnnotationException describing a invalid enummerator.
     *
     * @since 2.4
     *
     * @param string $attributeName
     * @param string $annotationName
     * @param string $context
     * @param array  $available
     * @param mixed  $given
     *
     * @return AnnotationException
     */
    public static function enumeratorError($attributeName, $annotationName, $context, $available, $given)
    {
        return new self(sprintf(
            '[Enum Error] Attribute "%s" of @%s declared on %s accept only [%s], but got %s.',
            $attributeName, 
            $annotationName,
            $context,
            implode(', ', $available),
            is_object($given) ? get_class($given) : $given
        ));
    }

    /**
     * @return AnnotationException
     */
    public static function optimizerPlusSaveComments()
    {
        return new self(
            "You have to enable opcache.save_comments=1 or zend_optimizerplus.save_comments=1."
        );
    }

    /**
     * @return AnnotationException
     */
    public static function optimizerPlusLoadComments()
    {
        return new self(
            "You have to enable opcache.load_comments=1 or zend_optimizerplus.load_comments=1."
        );
    }
}
<?php
/*
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * This software consists of voluntary contributions made by many individuals
 * and is licensed under the MIT license. For more information, see
 * <http://www.doctrine-project.org>.
 */

namespace Doctrine\Common\Annotations;

/**
 * File cache reader for annotations.
 *
 * @author Johannes M. Schmitt <schmittjoh@gmail.com>
 * @author Benjamin Eberlei <kontakt@beberlei.de>
 *
 * @deprecated the FileCacheReader is deprecated and will be removed
 *             in version 2.0.0 of doctrine/annotations. Please use the
 *             {@see \Doctrine\Common\Annotations\CachedReader} instead.
 */
class FileCacheReader implements Reader
{
    /**
     * @var Reader
     */
    private $reader;

    /**
     * @var string
     */
    private $dir;

    /**
     * @var bool
     */
    private $debug;

    /**
     * @var array
     */
    private $loadedAnnotations = [];

    /**
     * @var array
     */
    private $classNameHashes = [];

    /**
     * @var int
     */
    private $umask;

    /**
     * Constructor.
     *
     * @param Reader  $reader
     * @param string  $cacheDir
     * @param boolean $debug
     *
     * @throws \InvalidArgumentException
     */
    public function __construct(Reader $reader, $cacheDir, $debug = false, $umask = 0002)
    {
        if ( ! is_int($umask)) {
            throw new \InvalidArgumentException(sprintf(
                'The parameter umask must be an integer, was: %s',
                gettype($umask)
            ));
        }

        $this->reader = $reader;
        $this->umask = $umask;

        if (!is_dir($cacheDir) && !@mkdir($cacheDir, 0777 & (~$this->umask), true)) {
            throw new \InvalidArgumentException(sprintf('The directory "%s" does not exist and could not be created.', $cacheDir));
        }

        $this->dir   = rtrim($cacheDir, '\\/');
        $this->debug = $debug;
    }

    /**
     * {@inheritDoc}
     */
    public function getClassAnnotations(\ReflectionClass $class)
    {
        if ( ! isset($this->classNameHashes[$class->name])) {
            $this->classNameHashes[$class->name] = sha1($class->name);
        }
        $key = $this->classNameHashes[$class->name];

        if (isset($this->loadedAnnotations[$key])) {
            return $this->loadedAnnotations[$key];
        }

        $path = $this->dir.'/'.strtr($key, '\\', '-').'.cache.php';
        if (!is_file($path)) {
            $annot = $this->reader->getClassAnnotations($class);
            $this->saveCacheFile($path, $annot);
            return $this->loadedAnnotations[$key] = $annot;
        }

        if ($this->debug
            && (false !== $filename = $class->getFileName())
            && filemtime($path) < filemtime($filename)) {
            @unlink($path);

            $annot = $this->reader->getClassAnnotations($class);
            $this->saveCacheFile($path, $annot);
            return $this->loadedAnnotations[$key] = $annot;
        }

        return $this->loadedAnnotations[$key] = include $path;
    }

    /**
     * {@inheritDoc}
     */
    public function getPropertyAnnotations(\ReflectionProperty $property)
    {
        $class = $property->getDeclaringClass();
        if ( ! isset($this->classNameHashes[$class->name])) {
            $this->classNameHashes[$class->name] = sha1($class->name);
        }
        $key = $this->classNameHashes[$class->name].'$'.$property->getName();

        if (isset($this->loadedAnnotations[$key])) {
            return $this->loadedAnnotations[$key];
        }

        $path = $this->dir.'/'.strtr($key, '\\', '-').'.cache.php';
        if (!is_file($path)) {
            $annot = $this->reader->getPropertyAnnotations($property);
            $this->saveCacheFile($path, $annot);
            return $this->loadedAnnotations[$key] = $annot;
        }

        if ($this->debug
            && (false !== $filename = $class->getFilename())
            && filemtime($path) < filemtime($filename)) {
            @unlink($path);

            $annot = $this->reader->getPropertyAnnotations($property);
            $this->saveCacheFile($path, $annot);
            return $this->loadedAnnotations[$key] = $annot;
        }

        return $this->loadedAnnotations[$key] = include $path;
    }

    /**
     * {@inheritDoc}
     */
    public function getMethodAnnotations(\ReflectionMethod $method)
    {
        $class = $method->getDeclaringClass();
        if ( ! isset($this->classNameHashes[$class->name])) {
            $this->classNameHashes[$class->name] = sha1($class->name);
        }
        $key = $this->classNameHashes[$class->name].'#'.$method->getName();

        if (isset($this->loadedAnnotations[$key])) {
            return $this->loadedAnnotations[$key];
        }

        $path = $this->dir.'/'.strtr($key, '\\', '-').'.cache.php';
        if (!is_file($path)) {
            $annot = $this->reader->getMethodAnnotations($method);
            $this->saveCacheFile($path, $annot);
            return $this->loadedAnnotations[$key] = $annot;
        }

        if ($this->debug
            && (false !== $filename = $class->getFilename())
            && filemtime($path) < filemtime($filename)) {
            @unlink($path);

            $annot = $this->reader->getMethodAnnotations($method);
            $this->saveCacheFile($path, $annot);
            return $this->loadedAnnotations[$key] = $annot;
        }

        return $this->loadedAnnotations[$key] = include $path;
    }

    /**
     * Saves the cache file.
     *
     * @param string $path
     * @param mixed  $data
     *
     * @return void
     */
    private function saveCacheFile($path, $data)
    {
        if (!is_writable($this->dir)) {
            throw new \InvalidArgumentException(sprintf('The directory "%s" is not writable. Both, the webserver and the console user need access. You can manage access rights for multiple users with "chmod +a". If your system does not support this, check out the acl package.', $this->dir));
        }

        $tempfile = tempnam($this->dir, uniqid('', true));

        if (false === $tempfile) {
            throw new \RuntimeException(sprintf('Unable to create tempfile in directory: %s', $this->dir));
        }

        @chmod($tempfile, 0666 & (~$this->umask));

        $written = file_put_contents($tempfile, '<?php return unserialize('.var_export(serialize($data), true).');');

        if (false === $written) {
            throw new \RuntimeException(sprintf('Unable to write cached file to: %s', $tempfile));
        }

        @chmod($tempfile, 0666 & (~$this->umask));

        if (false === rename($tempfile, $path)) {
            @unlink($tempfile);
            throw new \RuntimeException(sprintf('Unable to rename %s to %s', $tempfile, $path));
        }
    }

    /**
     * {@inheritDoc}
     */
    public function getClassAnnotation(\ReflectionClass $class, $annotationName)
    {
        $annotations = $this->getClassAnnotations($class);

        foreach ($annotations as $annotation) {
            if ($annotation instanceof $annotationName) {
                return $annotation;
            }
        }

        return null;
    }

    /**
     * {@inheritDoc}
     */
    public function getMethodAnnotation(\ReflectionMethod $method, $annotationName)
    {
        $annotations = $this->getMethodAnnotations($method);

        foreach ($annotations as $annotation) {
            if ($annotation instanceof $annotationName) {
                return $annotation;
            }
        }

        return null;
    }

    /**
     * {@inheritDoc}
     */
    public function getPropertyAnnotation(\ReflectionProperty $property, $annotationName)
    {
        $annotations = $this->getPropertyAnnotations($property);

        foreach ($annotations as $annotation) {
            if ($annotation instanceof $annotationName) {
                return $annotation;
            }
        }

        return null;
    }

    /**
     * Clears loaded annotations.
     *
     * @return void
     */
    public function clearLoadedAnnotations()
    {
        $this->loadedAnnotations = [];
    }
}
<?php
/*
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * This software consists of voluntary contributions made by many individuals
 * and is licensed under the MIT license. For more information, see
 * <http://www.doctrine-project.org>.
 */

namespace Doctrine\Common\Annotations\Annotation;

/**
 * Annotation that can be used to signal to the parser to ignore specific
 * annotations during the parsing process.
 *
 * @Annotation
 * @author Johannes M. Schmitt <schmittjoh@gmail.com>
 */
final class IgnoreAnnotation
{
    /**
     * @var array
     */
    public $names;

    /**
     * Constructor.
     *
     * @param array $values
     *
     * @throws \RuntimeException
     */
    public function __construct(array $values)
    {
        if (is_string($values['value'])) {
            $values['value'] = [$values['value']];
        }
        if (!is_array($values['value'])) {
            throw new \RuntimeException(sprintf('@IgnoreAnnotation expects either a string name, or an array of strings, but got %s.', json_encode($values['value'])));
        }

        $this->names = $values['value'];
    }
}
<?php

/*
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * This software consists of voluntary contributions made by many individuals
 * and is licensed under the MIT license. For more information, see
 * <http://www.doctrine-project.org>.
 */

namespace Doctrine\Common\Annotations\Annotation;

/**
 * Annotation that can be used to signal to the parser
 * to check the types of all declared attributes during the parsing process.
 *
 * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
 *
 * @Annotation
 */
final class Attributes
{
    /**
     * @var array<Doctrine\Common\Annotations\Annotation\Attribute>
     */
    public $value;
}
<?php

/*
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * This software consists of voluntary contributions made by many individuals
 * and is licensed under the MIT license. For more information, see
 * <http://www.doctrine-project.org>.
 */

namespace Doctrine\Common\Annotations\Annotation;

/**
 * Annotation that can be used to signal to the parser
 * to check the available values during the parsing process.
 *
 * @since  2.4
 * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
 *
 * @Annotation
 * @Attributes({
 *    @Attribute("value",   required = true,  type = "array"),
 *    @Attribute("literal", required = false, type = "array")
 * })
 */
final class Enum
{
    /**
     * @var array
     */
    public $value;

    /**
     * Literal target declaration.
     *
     * @var array
     */
    public $literal;

    /**
     * Annotation constructor.
     *
     * @param array $values
     *
     * @throws \InvalidArgumentException
     */
    public function __construct(array $values)
    {
        if ( ! isset($values['literal'])) {
            $values['literal'] = [];
        }

        foreach ($values['value'] as $var) {
            if( ! is_scalar($var)) {
                throw new \InvalidArgumentException(sprintf(
                    '@Enum supports only scalar values "%s" given.',
                    is_object($var) ? get_class($var) : gettype($var)
                ));
            }
        }

        foreach ($values['literal'] as $key => $var) {
            if( ! in_array($key, $values['value'])) {
                throw new \InvalidArgumentException(sprintf(
                    'Undefined enumerator value "%s" for literal "%s".',
                    $key , $var
                ));
            }
        }

        $this->value    = $values['value'];
        $this->literal  = $values['literal'];
    }
}
<?php

/*
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * This software consists of voluntary contributions made by many individuals
 * and is licensed under the MIT license. For more information, see
 * <http://www.doctrine-project.org>.
 */

namespace Doctrine\Common\Annotations\Annotation;

/**
 * Annotation that can be used to signal to the parser
 * to check the attribute type during the parsing process.
 *
 * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
 *
 * @Annotation
 */
final class Attribute
{
    /**
     * @var string
     */
    public $name;

    /**
     * @var string
     */
    public $type;

    /**
     * @var boolean
     */
    public $required = false;
}
<?php

/*
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * This software consists of voluntary contributions made by many individuals
 * and is licensed under the MIT license. For more information, see
 * <http://www.doctrine-project.org>.
 */

namespace Doctrine\Common\Annotations\Annotation;

/**
 * Annotation that can be used to signal to the parser
 * to check the annotation target during the parsing process.
 *
 * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
 *
 * @Annotation
 */
final class Target
{
    const TARGET_CLASS              = 1;
    const TARGET_METHOD             = 2;
    const TARGET_PROPERTY           = 4;
    const TARGET_ANNOTATION         = 8;
    const TARGET_ALL                = 15;

    /**
     * @var array
     */
    private static $map = [
        'ALL'        => self::TARGET_ALL,
        'CLASS'      => self::TARGET_CLASS,
        'METHOD'     => self::TARGET_METHOD,
        'PROPERTY'   => self::TARGET_PROPERTY,
        'ANNOTATION' => self::TARGET_ANNOTATION,
    ];

    /**
     * @var array
     */
    public $value;

    /**
     * Targets as bitmask.
     *
     * @var integer
     */
    public $targets;

    /**
     * Literal target declaration.
     *
     * @var integer
     */
    public $literal;

    /**
     * Annotation constructor.
     *
     * @param array $values
     *
     * @throws \InvalidArgumentException
     */
    public function __construct(array $values)
    {
        if (!isset($values['value'])){
            $values['value'] = null;
        }
        if (is_string($values['value'])){
            $values['value'] = [$values['value']];
        }
        if (!is_array($values['value'])){
            throw new \InvalidArgumentException(
                sprintf('@Target expects either a string value, or an array of strings, "%s" given.',
                    is_object($values['value']) ? get_class($values['value']) : gettype($values['value'])
                )
            );
        }

        $bitmask = 0;
        foreach ($values['value'] as $literal) {
            if(!isset(self::$map[$literal])){
                throw new \InvalidArgumentException(
                    sprintf('Invalid Target "%s". Available targets: [%s]',
                            $literal,  implode(', ', array_keys(self::$map)))
                );
            }
            $bitmask |= self::$map[$literal];
        }

        $this->targets  = $bitmask;
        $this->value    = $values['value'];
        $this->literal  = implode(', ', $this->value);
    }
}
<?php

/*
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * This software consists of voluntary contributions made by many individuals
 * and is licensed under the MIT license. For more information, see
 * <http://www.doctrine-project.org>.
 */

namespace Doctrine\Common\Annotations\Annotation;

/**
 * Annotation that can be used to signal to the parser
 * to check if that attribute is required during the parsing process.
 *
 * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
 *
 * @Annotation
 */
final class Required
{
}
<?php
/*
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * This software consists of voluntary contributions made by many individuals
 * and is licensed under the MIT license. For more information, see
 * <http://www.doctrine-project.org>.
 */

namespace Doctrine\Common\Annotations;

/**
 * Allows the reader to be used in-place of Doctrine's reader.
 *
 * @author Johannes M. Schmitt <schmittjoh@gmail.com>
 */
class IndexedReader implements Reader
{
    /**
     * @var Reader
     */
    private $delegate;

    /**
     * Constructor.
     *
     * @param Reader $reader
     */
    public function __construct(Reader $reader)
    {
        $this->delegate = $reader;
    }

    /**
     * {@inheritDoc}
     */
    public function getClassAnnotations(\ReflectionClass $class)
    {
        $annotations = [];
        foreach ($this->delegate->getClassAnnotations($class) as $annot) {
            $annotations[get_class($annot)] = $annot;
        }

        return $annotations;
    }

    /**
     * {@inheritDoc}
     */
    public function getClassAnnotation(\ReflectionClass $class, $annotation)
    {
        return $this->delegate->getClassAnnotation($class, $annotation);
    }

    /**
     * {@inheritDoc}
     */
    public function getMethodAnnotations(\ReflectionMethod $method)
    {
        $annotations = [];
        foreach ($this->delegate->getMethodAnnotations($method) as $annot) {
            $annotations[get_class($annot)] = $annot;
        }

        return $annotations;
    }

    /**
     * {@inheritDoc}
     */
    public function getMethodAnnotation(\ReflectionMethod $method, $annotation)
    {
        return $this->delegate->getMethodAnnotation($method, $annotation);
    }

    /**
     * {@inheritDoc}
     */
    public function getPropertyAnnotations(\ReflectionProperty $property)
    {
        $annotations = [];
        foreach ($this->delegate->getPropertyAnnotations($property) as $annot) {
            $annotations[get_class($annot)] = $annot;
        }

        return $annotations;
    }

    /**
     * {@inheritDoc}
     */
    public function getPropertyAnnotation(\ReflectionProperty $property, $annotation)
    {
        return $this->delegate->getPropertyAnnotation($property, $annotation);
    }

    /**
     * Proxies all methods to the delegate.
     *
     * @param string $method
     * @param array  $args
     *
     * @return mixed
     */
    public function __call($method, $args)
    {
        return call_user_func_array([$this->delegate, $method], $args);
    }
}
<?php
/*
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * This software consists of voluntary contributions made by many individuals
 * and is licensed under the MIT license. For more information, see
 * <http://www.doctrine-project.org>.
 */

namespace Doctrine\Common\Annotations;

/**
 * Interface for annotation readers.
 *
 * @author Johannes M. Schmitt <schmittjoh@gmail.com>
 */
interface Reader
{
    /**
     * Gets the annotations applied to a class.
     *
     * @param \ReflectionClass $class The ReflectionClass of the class from which
     *                                the class annotations should be read.
     *
     * @return array An array of Annotations.
     */
    function getClassAnnotations(\ReflectionClass $class);

    /**
     * Gets a class annotation.
     *
     * @param \ReflectionClass $class          The ReflectionClass of the class from which
     *                                         the class annotations should be read.
     * @param string           $annotationName The name of the annotation.
     *
     * @return object|null The Annotation or NULL, if the requested annotation does not exist.
     */
    function getClassAnnotation(\ReflectionClass $class, $annotationName);

    /**
     * Gets the annotations applied to a method.
     *
     * @param \ReflectionMethod $method The ReflectionMethod of the method from which
     *                                  the annotations should be read.
     *
     * @return array An array of Annotations.
     */
    function getMethodAnnotations(\ReflectionMethod $method);

    /**
     * Gets a method annotation.
     *
     * @param \ReflectionMethod $method         The ReflectionMethod to read the annotations from.
     * @param string            $annotationName The name of the annotation.
     *
     * @return object|null The Annotation or NULL, if the requested annotation does not exist.
     */
    function getMethodAnnotation(\ReflectionMethod $method, $annotationName);

    /**
     * Gets the annotations applied to a property.
     *
     * @param \ReflectionProperty $property The ReflectionProperty of the property
     *                                      from which the annotations should be read.
     *
     * @return array An array of Annotations.
     */
    function getPropertyAnnotations(\ReflectionProperty $property);

    /**
     * Gets a property annotation.
     *
     * @param \ReflectionProperty $property       The ReflectionProperty to read the annotations from.
     * @param string              $annotationName The name of the annotation.
     *
     * @return object|null The Annotation or NULL, if the requested annotation does not exist.
     */
    function getPropertyAnnotation(\ReflectionProperty $property, $annotationName);
}
<?php
/*
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * This software consists of voluntary contributions made by many individuals
 * and is licensed under the MIT license. For more information, see
 * <http://www.doctrine-project.org>.
 */

namespace Doctrine\Common\Annotations;

/**
 * Annotations class.
 *
 * @author Benjamin Eberlei <kontakt@beberlei.de>
 * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
 * @author Jonathan Wage <jonwage@gmail.com>
 * @author Roman Borschel <roman@code-factory.org>
 */
class Annotation
{
    /**
     * Value property. Common among all derived classes.
     *
     * @var string
     */
    public $value;

    /**
     * Constructor.
     *
     * @param array $data Key-value for properties to be defined in this class.
     */
    public final function __construct(array $data)
    {
        foreach ($data as $key => $value) {
            $this->$key = $value;
        }
    }

    /**
     * Error handler for unknown property accessor in Annotation class.
     *
     * @param string $name Unknown property name.
     *
     * @throws \BadMethodCallException
     */
    public function __get($name)
    {
        throw new \BadMethodCallException(
            sprintf("Unknown property '%s' on annotation '%s'.", $name, get_class($this))
        );
    }

    /**
     * Error handler for unknown property mutator in Annotation class.
     *
     * @param string $name  Unknown property name.
     * @param mixed  $value Property value.
     *
     * @throws \BadMethodCallException
     */
    public function __set($name, $value)
    {
        throw new \BadMethodCallException(
            sprintf("Unknown property '%s' on annotation '%s'.", $name, get_class($this))
        );
    }
}
<?php
/*
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * This software consists of voluntary contributions made by many individuals
 * and is licensed under the MIT license. For more information, see
 * <http://www.doctrine-project.org>.
 */

namespace Doctrine\Common\Annotations;

/**
 * Simple Annotation Reader.
 *
 * This annotation reader is intended to be used in projects where you have
 * full-control over all annotations that are available.
 *
 * @since  2.2
 * @author Johannes M. Schmitt <schmittjoh@gmail.com>
 * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
 */
class SimpleAnnotationReader implements Reader
{
    /**
     * @var DocParser
     */
    private $parser;

    /**
     * Constructor.
     *
     * Initializes a new SimpleAnnotationReader.
     */
    public function __construct()
    {
        $this->parser = new DocParser();
        $this->parser->setIgnoreNotImportedAnnotations(true);
    }

    /**
     * Adds a namespace in which we will look for annotations.
     *
     * @param string $namespace
     *
     * @return void
     */
    public function addNamespace($namespace)
    {
        $this->parser->addNamespace($namespace);
    }

    /**
     * {@inheritDoc}
     */
    public function getClassAnnotations(\ReflectionClass $class)
    {
        return $this->parser->parse($class->getDocComment(), 'class '.$class->getName());
    }

    /**
     * {@inheritDoc}
     */
    public function getMethodAnnotations(\ReflectionMethod $method)
    {
        return $this->parser->parse($method->getDocComment(), 'method '.$method->getDeclaringClass()->name.'::'.$method->getName().'()');
    }

    /**
     * {@inheritDoc}
     */
    public function getPropertyAnnotations(\ReflectionProperty $property)
    {
        return $this->parser->parse($property->getDocComment(), 'property '.$property->getDeclaringClass()->name.'::$'.$property->getName());
    }

    /**
     * {@inheritDoc}
     */
    public function getClassAnnotation(\ReflectionClass $class, $annotationName)
    {
        foreach ($this->getClassAnnotations($class) as $annot) {
            if ($annot instanceof $annotationName) {
                return $annot;
            }
        }

        return null;
    }

    /**
     * {@inheritDoc}
     */
    public function getMethodAnnotation(\ReflectionMethod $method, $annotationName)
    {
        foreach ($this->getMethodAnnotations($method) as $annot) {
            if ($annot instanceof $annotationName) {
                return $annot;
            }
        }

        return null;
    }

    /**
     * {@inheritDoc}
     */
    public function getPropertyAnnotation(\ReflectionProperty $property, $annotationName)
    {
        foreach ($this->getPropertyAnnotations($property) as $annot) {
            if ($annot instanceof $annotationName) {
                return $annot;
            }
        }

        return null;
    }
}
<?php
/*
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * This software consists of voluntary contributions made by many individuals
 * and is licensed under the MIT license. For more information, see
 * <http://www.doctrine-project.org>.
 */

namespace Doctrine\Common\Annotations;

use Doctrine\Common\Annotations\Annotation\Attribute;
use ReflectionClass;
use Doctrine\Common\Annotations\Annotation\Enum;
use Doctrine\Common\Annotations\Annotation\Target;
use Doctrine\Common\Annotations\Annotation\Attributes;

/**
 * A parser for docblock annotations.
 *
 * It is strongly discouraged to change the default annotation parsing process.
 *
 * @author Benjamin Eberlei <kontakt@beberlei.de>
 * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
 * @author Jonathan Wage <jonwage@gmail.com>
 * @author Roman Borschel <roman@code-factory.org>
 * @author Johannes M. Schmitt <schmittjoh@gmail.com>
 * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
 */
final class DocParser
{
    /**
     * An array of all valid tokens for a class name.
     *
     * @var array
     */
    private static $classIdentifiers = [
        DocLexer::T_IDENTIFIER,
        DocLexer::T_TRUE,
        DocLexer::T_FALSE,
        DocLexer::T_NULL
    ];

    /**
     * The lexer.
     *
     * @var \Doctrine\Common\Annotations\DocLexer
     */
    private $lexer;

    /**
     * Current target context.
     *
     * @var integer
     */
    private $target;

    /**
     * Doc parser used to collect annotation target.
     *
     * @var \Doctrine\Common\Annotations\DocParser
     */
    private static $metadataParser;

    /**
     * Flag to control if the current annotation is nested or not.
     *
     * @var boolean
     */
    private $isNestedAnnotation = false;

    /**
     * Hashmap containing all use-statements that are to be used when parsing
     * the given doc block.
     *
     * @var array
     */
    private $imports = [];

    /**
     * This hashmap is used internally to cache results of class_exists()
     * look-ups.
     *
     * @var array
     */
    private $classExists = [];

    /**
     * Whether annotations that have not been imported should be ignored.
     *
     * @var boolean
     */
    private $ignoreNotImportedAnnotations = false;

    /**
     * An array of default namespaces if operating in simple mode.
     *
     * @var string[]
     */
    private $namespaces = [];

    /**
     * A list with annotations that are not causing exceptions when not resolved to an annotation class.
     *
     * The names must be the raw names as used in the class, not the fully qualified
     * class names.
     *
     * @var bool[] indexed by annotation name
     */
    private $ignoredAnnotationNames = [];

    /**
     * A list with annotations in namespaced format
     * that are not causing exceptions when not resolved to an annotation class.
     *
     * @var bool[] indexed by namespace name
     */
    private $ignoredAnnotationNamespaces = [];

    /**
     * @var string
     */
    private $context = '';

    /**
     * Hash-map for caching annotation metadata.
     *
     * @var array
     */
    private static $annotationMetadata = [
        'Doctrine\Common\Annotations\Annotation\Target' => [
            'is_annotation'    => true,
            'has_constructor'  => true,
            'properties'       => [],
            'targets_literal'  => 'ANNOTATION_CLASS',
            'targets'          => Target::TARGET_CLASS,
            'default_property' => 'value',
            'attribute_types'  => [
                'value'  => [
                    'required'  => false,
                    'type'      =>'array',
                    'array_type'=>'string',
                    'value'     =>'array<string>'
                ]
             ],
        ],
        'Doctrine\Common\Annotations\Annotation\Attribute' => [
            'is_annotation'    => true,
            'has_constructor'  => false,
            'targets_literal'  => 'ANNOTATION_ANNOTATION',
            'targets'          => Target::TARGET_ANNOTATION,
            'default_property' => 'name',
            'properties'       => [
                'name'      => 'name',
                'type'      => 'type',
                'required'  => 'required'
            ],
            'attribute_types'  => [
                'value'  => [
                    'required'  => true,
                    'type'      =>'string',
                    'value'     =>'string'
                ],
                'type'  => [
                    'required'  =>true,
                    'type'      =>'string',
                    'value'     =>'string'
                ],
                'required'  => [
                    'required'  =>false,
                    'type'      =>'boolean',
                    'value'     =>'boolean'
                ]
             ],
        ],
        'Doctrine\Common\Annotations\Annotation\Attributes' => [
            'is_annotation'    => true,
            'has_constructor'  => false,
            'targets_literal'  => 'ANNOTATION_CLASS',
            'targets'          => Target::TARGET_CLASS,
            'default_property' => 'value',
            'properties'       => [
                'value' => 'value'
            ],
            'attribute_types'  => [
                'value' => [
                    'type'      =>'array',
                    'required'  =>true,
                    'array_type'=>'Doctrine\Common\Annotations\Annotation\Attribute',
                    'value'     =>'array<Doctrine\Common\Annotations\Annotation\Attribute>'
                ]
             ],
        ],
        'Doctrine\Common\Annotations\Annotation\Enum' => [
            'is_annotation'    => true,
            'has_constructor'  => true,
            'targets_literal'  => 'ANNOTATION_PROPERTY',
            'targets'          => Target::TARGET_PROPERTY,
            'default_property' => 'value',
            'properties'       => [
                'value' => 'value'
            ],
            'attribute_types'  => [
                'value' => [
                    'type'      => 'array',
                    'required'  => true,
                ],
                'literal' => [
                    'type'      => 'array',
                    'required'  => false,
                ],
             ],
        ],
    ];

    /**
     * Hash-map for handle types declaration.
     *
     * @var array
     */
    private static $typeMap = [
        'float'     => 'double',
        'bool'      => 'boolean',
        // allow uppercase Boolean in honor of George Boole
        'Boolean'   => 'boolean',
        'int'       => 'integer',
    ];

    /**
     * Constructs a new DocParser.
     */
    public function __construct()
    {
        $this->lexer = new DocLexer;
    }

    /**
     * Sets the annotation names that are ignored during the parsing process.
     *
     * The names are supposed to be the raw names as used in the class, not the
     * fully qualified class names.
     *
     * @param bool[] $names indexed by annotation name
     *
     * @return void
     */
    public function setIgnoredAnnotationNames(array $names)
    {
        $this->ignoredAnnotationNames = $names;
    }

    /**
     * Sets the annotation namespaces that are ignored during the parsing process.
     *
     * @param bool[] $ignoredAnnotationNamespaces indexed by annotation namespace name
     *
     * @return void
     */
    public function setIgnoredAnnotationNamespaces($ignoredAnnotationNamespaces)
    {
        $this->ignoredAnnotationNamespaces = $ignoredAnnotationNamespaces;
    }

    /**
     * Sets ignore on not-imported annotations.
     *
     * @param boolean $bool
     *
     * @return void
     */
    public function setIgnoreNotImportedAnnotations($bool)
    {
        $this->ignoreNotImportedAnnotations = (boolean) $bool;
    }

    /**
     * Sets the default namespaces.
     *
     * @param string $namespace
     *
     * @return void
     *
     * @throws \RuntimeException
     */
    public function addNamespace($namespace)
    {
        if ($this->imports) {
            throw new \RuntimeException('You must either use addNamespace(), or setImports(), but not both.');
        }

        $this->namespaces[] = $namespace;
    }

    /**
     * Sets the imports.
     *
     * @param array $imports
     *
     * @return void
     *
     * @throws \RuntimeException
     */
    public function setImports(array $imports)
    {
        if ($this->namespaces) {
            throw new \RuntimeException('You must either use addNamespace(), or setImports(), but not both.');
        }

        $this->imports = $imports;
    }

    /**
     * Sets current target context as bitmask.
     *
     * @param integer $target
     *
     * @return void
     */
    public function setTarget($target)
    {
        $this->target = $target;
    }

    /**
     * Parses the given docblock string for annotations.
     *
     * @param string $input   The docblock string to parse.
     * @param string $context The parsing context.
     *
     * @return array Array of annotations. If no annotations are found, an empty array is returned.
     */
    public function parse($input, $context = '')
    {
        $pos = $this->findInitialTokenPosition($input);
        if ($pos === null) {
            return [];
        }

        $this->context = $context;

        $this->lexer->setInput(trim(substr($input, $pos), '* /'));
        $this->lexer->moveNext();

        return $this->Annotations();
    }

    /**
     * Finds the first valid annotation
     *
     * @param string $input The docblock string to parse
     *
     * @return int|null
     */
    private function findInitialTokenPosition($input)
    {
        $pos = 0;

        // search for first valid annotation
        while (($pos = strpos($input, '@', $pos)) !== false) {
            $preceding = substr($input, $pos - 1, 1);

            // if the @ is preceded by a space, a tab or * it is valid
            if ($pos === 0 || $preceding === ' ' || $preceding === '*' || $preceding === "\t") {
                return $pos;
            }

            $pos++;
        }

        return null;
    }

    /**
     * Attempts to match the given token with the current lookahead token.
     * If they match, updates the lookahead token; otherwise raises a syntax error.
     *
     * @param integer $token Type of token.
     *
     * @return boolean True if tokens match; false otherwise.
     */
    private function match($token)
    {
        if ( ! $this->lexer->isNextToken($token) ) {
            $this->syntaxError($this->lexer->getLiteral($token));
        }

        return $this->lexer->moveNext();
    }

    /**
     * Attempts to match the current lookahead token with any of the given tokens.
     *
     * If any of them matches, this method updates the lookahead token; otherwise
     * a syntax error is raised.
     *
     * @param array $tokens
     *
     * @return boolean
     */
    private function matchAny(array $tokens)
    {
        if ( ! $this->lexer->isNextTokenAny($tokens)) {
            $this->syntaxError(implode(' or ', array_map([$this->lexer, 'getLiteral'], $tokens)));
        }

        return $this->lexer->moveNext();
    }

    /**
     * Generates a new syntax error.
     *
     * @param string     $expected Expected string.
     * @param array|null $token    Optional token.
     *
     * @return void
     *
     * @throws AnnotationException
     */
    private function syntaxError($expected, $token = null)
    {
        if ($token === null) {
            $token = $this->lexer->lookahead;
        }

        $message  = sprintf('Expected %s, got ', $expected);
        $message .= ($this->lexer->lookahead === null)
            ? 'end of string'
            : sprintf("'%s' at position %s", $token['value'], $token['position']);

        if (strlen($this->context)) {
            $message .= ' in ' . $this->context;
        }

        $message .= '.';

        throw AnnotationException::syntaxError($message);
    }

    /**
     * Attempts to check if a class exists or not. This never goes through the PHP autoloading mechanism
     * but uses the {@link AnnotationRegistry} to load classes.
     *
     * @param string $fqcn
     *
     * @return boolean
     */
    private function classExists($fqcn)
    {
        if (isset($this->classExists[$fqcn])) {
            return $this->classExists[$fqcn];
        }

        // first check if the class already exists, maybe loaded through another AnnotationReader
        if (class_exists($fqcn, false)) {
            return $this->classExists[$fqcn] = true;
        }

        // final check, does this class exist?
        return $this->classExists[$fqcn] = AnnotationRegistry::loadAnnotationClass($fqcn);
    }

    /**
     * Collects parsing metadata for a given annotation class
     *
     * @param string $name The annotation name
     *
     * @return void
     */
    private function collectAnnotationMetadata($name)
    {
        if (self::$metadataParser === null) {
            self::$metadataParser = new self();

            self::$metadataParser->setIgnoreNotImportedAnnotations(true);
            self::$metadataParser->setIgnoredAnnotationNames($this->ignoredAnnotationNames);
            self::$metadataParser->setImports([
                'enum'          => 'Doctrine\Common\Annotations\Annotation\Enum',
                'target'        => 'Doctrine\Common\Annotations\Annotation\Target',
                'attribute'     => 'Doctrine\Common\Annotations\Annotation\Attribute',
                'attributes'    => 'Doctrine\Common\Annotations\Annotation\Attributes'
            ]);

            // Make sure that annotations from metadata are loaded
            class_exists(Enum::class);
            class_exists(Target::class);
            class_exists(Attribute::class);
            class_exists(Attributes::class);
        }

        $class      = new \ReflectionClass($name);
        $docComment = $class->getDocComment();

        // Sets default values for annotation metadata
        $metadata = [
            'default_property' => null,
            'has_constructor'  => (null !== $constructor = $class->getConstructor()) && $constructor->getNumberOfParameters() > 0,
            'properties'       => [],
            'property_types'   => [],
            'attribute_types'  => [],
            'targets_literal'  => null,
            'targets'          => Target::TARGET_ALL,
            'is_annotation'    => false !== strpos($docComment, '@Annotation'),
        ];

        // verify that the class is really meant to be an annotation
        if ($metadata['is_annotation']) {
            self::$metadataParser->setTarget(Target::TARGET_CLASS);

            foreach (self::$metadataParser->parse($docComment, 'class @' . $name) as $annotation) {
                if ($annotation instanceof Target) {
                    $metadata['targets']         = $annotation->targets;
                    $metadata['targets_literal'] = $annotation->literal;

                    continue;
                }

                if ($annotation instanceof Attributes) {
                    foreach ($annotation->value as $attribute) {
                        $this->collectAttributeTypeMetadata($metadata, $attribute);
                    }
                }
            }

            // if not has a constructor will inject values into public properties
            if (false === $metadata['has_constructor']) {
                // collect all public properties
                foreach ($class->getProperties(\ReflectionProperty::IS_PUBLIC) as $property) {
                    $metadata['properties'][$property->name] = $property->name;

                    if (false === ($propertyComment = $property->getDocComment())) {
                        continue;
                    }

                    $attribute = new Attribute();

                    $attribute->required = (false !== strpos($propertyComment, '@Required'));
                    $attribute->name     = $property->name;
                    $attribute->type     = (false !== strpos($propertyComment, '@var') && preg_match('/@var\s+([^\s]+)/',$propertyComment, $matches))
                        ? $matches[1]
                        : 'mixed';

                    $this->collectAttributeTypeMetadata($metadata, $attribute);

                    // checks if the property has @Enum
                    if (false !== strpos($propertyComment, '@Enum')) {
                        $context = 'property ' . $class->name . "::\$" . $property->name;

                        self::$metadataParser->setTarget(Target::TARGET_PROPERTY);

                        foreach (self::$metadataParser->parse($propertyComment, $context) as $annotation) {
                            if ( ! $annotation instanceof Enum) {
                                continue;
                            }

                            $metadata['enum'][$property->name]['value']   = $annotation->value;
                            $metadata['enum'][$property->name]['literal'] = ( ! empty($annotation->literal))
                                ? $annotation->literal
                                : $annotation->value;
                        }
                    }
                }

                // choose the first property as default property
                $metadata['default_property'] = reset($metadata['properties']);
            }
        }

        self::$annotationMetadata[$name] = $metadata;
    }

    /**
     * Collects parsing metadata for a given attribute.
     *
     * @param array     $metadata
     * @param Attribute $attribute
     *
     * @return void
     */
    private function collectAttributeTypeMetadata(&$metadata, Attribute $attribute)
    {
        // handle internal type declaration
        $type = self::$typeMap[$attribute->type] ?? $attribute->type;

        // handle the case if the property type is mixed
        if ('mixed' === $type) {
            return;
        }

        // Evaluate type
        switch (true) {
            // Checks if the property has array<type>
            case (false !== $pos = strpos($type, '<')):
                $arrayType  = substr($type, $pos + 1, -1);
                $type       = 'array';

                if (isset(self::$typeMap[$arrayType])) {
                    $arrayType = self::$typeMap[$arrayType];
                }

                $metadata['attribute_types'][$attribute->name]['array_type'] = $arrayType;
                break;

            // Checks if the property has type[]
            case (false !== $pos = strrpos($type, '[')):
                $arrayType  = substr($type, 0, $pos);
                $type       = 'array';

                if (isset(self::$typeMap[$arrayType])) {
                    $arrayType = self::$typeMap[$arrayType];
                }

                $metadata['attribute_types'][$attribute->name]['array_type'] = $arrayType;
                break;
        }

        $metadata['attribute_types'][$attribute->name]['type']     = $type;
        $metadata['attribute_types'][$attribute->name]['value']    = $attribute->type;
        $metadata['attribute_types'][$attribute->name]['required'] = $attribute->required;
    }

    /**
     * Annotations ::= Annotation {[ "*" ]* [Annotation]}*
     *
     * @return array
     */
    private function Annotations()
    {
        $annotations = [];

        while (null !== $this->lexer->lookahead) {
            if (DocLexer::T_AT !== $this->lexer->lookahead['type']) {
                $this->lexer->moveNext();
                continue;
            }

            // make sure the @ is preceded by non-catchable pattern
            if (null !== $this->lexer->token && $this->lexer->lookahead['position'] === $this->lexer->token['position'] + strlen($this->lexer->token['value'])) {
                $this->lexer->moveNext();
                continue;
            }

            // make sure the @ is followed by either a namespace separator, or
            // an identifier token
            if ((null === $peek = $this->lexer->glimpse())
                || (DocLexer::T_NAMESPACE_SEPARATOR !== $peek['type'] && !in_array($peek['type'], self::$classIdentifiers, true))
                || $peek['position'] !== $this->lexer->lookahead['position'] + 1) {
                $this->lexer->moveNext();
                continue;
            }

            $this->isNestedAnnotation = false;
            if (false !== $annot = $this->Annotation()) {
                $annotations[] = $annot;
            }
        }

        return $annotations;
    }

    /**
     * Annotation     ::= "@" AnnotationName MethodCall
     * AnnotationName ::= QualifiedName | SimpleName
     * QualifiedName  ::= NameSpacePart "\" {NameSpacePart "\"}* SimpleName
     * NameSpacePart  ::= identifier | null | false | true
     * SimpleName     ::= identifier | null | false | true
     *
     * @return mixed False if it is not a valid annotation.
     *
     * @throws AnnotationException
     */
    private function Annotation()
    {
        $this->match(DocLexer::T_AT);

        // check if we have an annotation
        $name = $this->Identifier();

        if ($this->lexer->isNextToken(DocLexer::T_MINUS)
            && $this->lexer->nextTokenIsAdjacent()
        ) {
            // Annotations with dashes, such as "@foo-" or "@foo-bar", are to be discarded
            return false;
        }

        // only process names which are not fully qualified, yet
        // fully qualified names must start with a \
        $originalName = $name;

        if ('\\' !== $name[0]) {
            $pos = strpos($name, '\\');
            $alias = (false === $pos)? $name : substr($name, 0, $pos);
            $found = false;
            $loweredAlias = strtolower($alias);

            if ($this->namespaces) {
                foreach ($this->namespaces as $namespace) {
                    if ($this->classExists($namespace.'\\'.$name)) {
                        $name = $namespace.'\\'.$name;
                        $found = true;
                        break;
                    }
                }
            } elseif (isset($this->imports[$loweredAlias])) {
                $namespace = ltrim($this->imports[$loweredAlias], '\\');
                $name = (false !== $pos)
                    ? $namespace . substr($name, $pos)
                    : $namespace;
                $found = $this->classExists($name);
            } elseif ( ! isset($this->ignoredAnnotationNames[$name])
                && isset($this->imports['__NAMESPACE__'])
                && $this->classExists($this->imports['__NAMESPACE__'] . '\\' . $name)
            ) {
                $name  = $this->imports['__NAMESPACE__'].'\\'.$name;
                $found = true;
            } elseif (! isset($this->ignoredAnnotationNames[$name]) && $this->classExists($name)) {
                $found = true;
            }

            if ( ! $found) {
                if ($this->isIgnoredAnnotation($name)) {
                    return false;
                }

                throw AnnotationException::semanticalError(sprintf('The annotation "@%s" in %s was never imported. Did you maybe forget to add a "use" statement for this annotation?', $name, $this->context));
            }
        }

        $name = ltrim($name,'\\');

        if ( ! $this->classExists($name)) {
            throw AnnotationException::semanticalError(sprintf('The annotation "@%s" in %s does not exist, or could not be auto-loaded.', $name, $this->context));
        }

        // at this point, $name contains the fully qualified class name of the
        // annotation, and it is also guaranteed that this class exists, and
        // that it is loaded


        // collects the metadata annotation only if there is not yet
        if ( ! isset(self::$annotationMetadata[$name])) {
            $this->collectAnnotationMetadata($name);
        }

        // verify that the class is really meant to be an annotation and not just any ordinary class
        if (self::$annotationMetadata[$name]['is_annotation'] === false) {
            if ($this->isIgnoredAnnotation($originalName) || $this->isIgnoredAnnotation($name)) {
                return false;
            }

            throw AnnotationException::semanticalError(sprintf('The class "%s" is not annotated with @Annotation. Are you sure this class can be used as annotation? If so, then you need to add @Annotation to the _class_ doc comment of "%s". If it is indeed no annotation, then you need to add @IgnoreAnnotation("%s") to the _class_ doc comment of %s.', $name, $name, $originalName, $this->context));
        }

        //if target is nested annotation
        $target = $this->isNestedAnnotation ? Target::TARGET_ANNOTATION : $this->target;

        // Next will be nested
        $this->isNestedAnnotation = true;

        //if annotation does not support current target
        if (0 === (self::$annotationMetadata[$name]['targets'] & $target) && $target) {
            throw AnnotationException::semanticalError(
                sprintf('Annotation @%s is not allowed to be declared on %s. You may only use this annotation on these code elements: %s.',
                     $originalName, $this->context, self::$annotationMetadata[$name]['targets_literal'])
            );
        }

        $values = $this->MethodCall();

        if (isset(self::$annotationMetadata[$name]['enum'])) {
            // checks all declared attributes
            foreach (self::$annotationMetadata[$name]['enum'] as $property => $enum) {
                // checks if the attribute is a valid enumerator
                if (isset($values[$property]) && ! in_array($values[$property], $enum['value'])) {
                    throw AnnotationException::enumeratorError($property, $name, $this->context, $enum['literal'], $values[$property]);
                }
            }
        }

        // checks all declared attributes
        foreach (self::$annotationMetadata[$name]['attribute_types'] as $property => $type) {
            if ($property === self::$annotationMetadata[$name]['default_property']
                && !isset($values[$property]) && isset($values['value'])) {
                $property = 'value';
            }

            // handle a not given attribute or null value
            if (!isset($values[$property])) {
                if ($type['required']) {
                    throw AnnotationException::requiredError($property, $originalName, $this->context, 'a(n) '.$type['value']);
                }

                continue;
            }

            if ($type['type'] === 'array') {
                // handle the case of a single value
                if ( ! is_array($values[$property])) {
                    $values[$property] = [$values[$property]];
                }

                // checks if the attribute has array type declaration, such as "array<string>"
                if (isset($type['array_type'])) {
                    foreach ($values[$property] as $item) {
                        if (gettype($item) !== $type['array_type'] && !$item instanceof $type['array_type']) {
                            throw AnnotationException::attributeTypeError($property, $originalName, $this->context, 'either a(n) '.$type['array_type'].', or an array of '.$type['array_type'].'s', $item);
                        }
                    }
                }
            } elseif (gettype($values[$property]) !== $type['type'] && !$values[$property] instanceof $type['type']) {
                throw AnnotationException::attributeTypeError($property, $originalName, $this->context, 'a(n) '.$type['value'], $values[$property]);
            }
        }

        // check if the annotation expects values via the constructor,
        // or directly injected into public properties
        if (self::$annotationMetadata[$name]['has_constructor'] === true) {
            return new $name($values);
        }

        $instance = new $name();

        foreach ($values as $property => $value) {
            if (!isset(self::$annotationMetadata[$name]['properties'][$property])) {
                if ('value' !== $property) {
                    throw AnnotationException::creationError(sprintf('The annotation @%s declared on %s does not have a property named "%s". Available properties: %s', $originalName, $this->context, $property, implode(', ', self::$annotationMetadata[$name]['properties'])));
                }

                // handle the case if the property has no annotations
                if ( ! $property = self::$annotationMetadata[$name]['default_property']) {
                    throw AnnotationException::creationError(sprintf('The annotation @%s declared on %s does not accept any values, but got %s.', $originalName, $this->context, json_encode($values)));
                }
            }

            $instance->{$property} = $value;
        }

        return $instance;
    }

    /**
     * MethodCall ::= ["(" [Values] ")"]
     *
     * @return array
     */
    private function MethodCall()
    {
        $values = [];

        if ( ! $this->lexer->isNextToken(DocLexer::T_OPEN_PARENTHESIS)) {
            return $values;
        }

        $this->match(DocLexer::T_OPEN_PARENTHESIS);

        if ( ! $this->lexer->isNextToken(DocLexer::T_CLOSE_PARENTHESIS)) {
            $values = $this->Values();
        }

        $this->match(DocLexer::T_CLOSE_PARENTHESIS);

        return $values;
    }

    /**
     * Values ::= Array | Value {"," Value}* [","]
     *
     * @return array
     */
    private function Values()
    {
        $values = [$this->Value()];

        while ($this->lexer->isNextToken(DocLexer::T_COMMA)) {
            $this->match(DocLexer::T_COMMA);

            if ($this->lexer->isNextToken(DocLexer::T_CLOSE_PARENTHESIS)) {
                break;
            }

            $token = $this->lexer->lookahead;
            $value = $this->Value();

            if ( ! is_object($value) && ! is_array($value)) {
                $this->syntaxError('Value', $token);
            }

            $values[] = $value;
        }

        foreach ($values as $k => $value) {
            if (is_object($value) && $value instanceof \stdClass) {
                $values[$value->name] = $value->value;
            } else if ( ! isset($values['value'])){
                $values['value'] = $value;
            } else {
                if ( ! is_array($values['value'])) {
                    $values['value'] = [$values['value']];
                }

                $values['value'][] = $value;
            }

            unset($values[$k]);
        }

        return $values;
    }

    /**
     * Constant ::= integer | string | float | boolean
     *
     * @return mixed
     *
     * @throws AnnotationException
     */
    private function Constant()
    {
        $identifier = $this->Identifier();

        if ( ! defined($identifier) && false !== strpos($identifier, '::') && '\\' !== $identifier[0]) {
            list($className, $const) = explode('::', $identifier);

            $pos = strpos($className, '\\');
            $alias = (false === $pos) ? $className : substr($className, 0, $pos);
            $found = false;
            $loweredAlias = strtolower($alias);

            switch (true) {
                case !empty ($this->namespaces):
                    foreach ($this->namespaces as $ns) {
                        if (class_exists($ns.'\\'.$className) || interface_exists($ns.'\\'.$className)) {
                             $className = $ns.'\\'.$className;
                             $found = true;
                             break;
                        }
                    }
                    break;

                case isset($this->imports[$loweredAlias]):
                    $found     = true;
                    $className = (false !== $pos)
                        ? $this->imports[$loweredAlias] . substr($className, $pos)
                        : $this->imports[$loweredAlias];
                    break;

                default:
                    if(isset($this->imports['__NAMESPACE__'])) {
                        $ns = $this->imports['__NAMESPACE__'];

                        if (class_exists($ns.'\\'.$className) || interface_exists($ns.'\\'.$className)) {
                            $className = $ns.'\\'.$className;
                            $found = true;
                        }
                    }
                    break;
            }

            if ($found) {
                 $identifier = $className . '::' . $const;
            }
        }

        /**
         * Checks if identifier ends with ::class and remove the leading backslash if it exists.
         */
        if ($this->identifierEndsWithClassConstant($identifier) && ! $this->identifierStartsWithBackslash($identifier)) {
            return substr($identifier, 0, $this->getClassConstantPositionInIdentifier($identifier));
        }
        if ($this->identifierEndsWithClassConstant($identifier) && $this->identifierStartsWithBackslash($identifier)) {
            return substr($identifier, 1, $this->getClassConstantPositionInIdentifier($identifier) - 1);
        }

        if (!defined($identifier)) {
            throw AnnotationException::semanticalErrorConstants($identifier, $this->context);
        }

        return constant($identifier);
    }

    private function identifierStartsWithBackslash(string $identifier) : bool
    {
        return '\\' === $identifier[0];
    }

    private function identifierEndsWithClassConstant(string $identifier) : bool
    {
        return $this->getClassConstantPositionInIdentifier($identifier) === strlen($identifier) - strlen('::class');
    }

    /**
     * @return int|false
     */
    private function getClassConstantPositionInIdentifier(string $identifier)
    {
        return stripos($identifier, '::class');
    }

    /**
     * Identifier ::= string
     *
     * @return string
     */
    private function Identifier()
    {
        // check if we have an annotation
        if ( ! $this->lexer->isNextTokenAny(self::$classIdentifiers)) {
            $this->syntaxError('namespace separator or identifier');
        }

        $this->lexer->moveNext();

        $className = $this->lexer->token['value'];

        while (
            null !== $this->lexer->lookahead &&
            $this->lexer->lookahead['position'] === ($this->lexer->token['position'] + strlen($this->lexer->token['value'])) &&
            $this->lexer->isNextToken(DocLexer::T_NAMESPACE_SEPARATOR)
        ) {
            $this->match(DocLexer::T_NAMESPACE_SEPARATOR);
            $this->matchAny(self::$classIdentifiers);

            $className .= '\\' . $this->lexer->token['value'];
        }

        return $className;
    }

    /**
     * Value ::= PlainValue | FieldAssignment
     *
     * @return mixed
     */
    private function Value()
    {
        $peek = $this->lexer->glimpse();

        if (DocLexer::T_EQUALS === $peek['type']) {
            return $this->FieldAssignment();
        }

        return $this->PlainValue();
    }

    /**
     * PlainValue ::= integer | string | float | boolean | Array | Annotation
     *
     * @return mixed
     */
    private function PlainValue()
    {
        if ($this->lexer->isNextToken(DocLexer::T_OPEN_CURLY_BRACES)) {
            return $this->Arrayx();
        }

        if ($this->lexer->isNextToken(DocLexer::T_AT)) {
            return $this->Annotation();
        }

        if ($this->lexer->isNextToken(DocLexer::T_IDENTIFIER)) {
            return $this->Constant();
        }

        switch ($this->lexer->lookahead['type']) {
            case DocLexer::T_STRING:
                $this->match(DocLexer::T_STRING);
                return $this->lexer->token['value'];

            case DocLexer::T_INTEGER:
                $this->match(DocLexer::T_INTEGER);
                return (int)$this->lexer->token['value'];

            case DocLexer::T_FLOAT:
                $this->match(DocLexer::T_FLOAT);
                return (float)$this->lexer->token['value'];

            case DocLexer::T_TRUE:
                $this->match(DocLexer::T_TRUE);
                return true;

            case DocLexer::T_FALSE:
                $this->match(DocLexer::T_FALSE);
                return false;

            case DocLexer::T_NULL:
                $this->match(DocLexer::T_NULL);
                return null;

            default:
                $this->syntaxError('PlainValue');
        }
    }

    /**
     * FieldAssignment ::= FieldName "=" PlainValue
     * FieldName ::= identifier
     *
     * @return \stdClass
     */
    private function FieldAssignment()
    {
        $this->match(DocLexer::T_IDENTIFIER);
        $fieldName = $this->lexer->token['value'];

        $this->match(DocLexer::T_EQUALS);

        $item = new \stdClass();
        $item->name  = $fieldName;
        $item->value = $this->PlainValue();

        return $item;
    }

    /**
     * Array ::= "{" ArrayEntry {"," ArrayEntry}* [","] "}"
     *
     * @return array
     */
    private function Arrayx()
    {
        $array = $values = [];

        $this->match(DocLexer::T_OPEN_CURLY_BRACES);

        // If the array is empty, stop parsing and return.
        if ($this->lexer->isNextToken(DocLexer::T_CLOSE_CURLY_BRACES)) {
            $this->match(DocLexer::T_CLOSE_CURLY_BRACES);

            return $array;
        }

        $values[] = $this->ArrayEntry();

        while ($this->lexer->isNextToken(DocLexer::T_COMMA)) {
            $this->match(DocLexer::T_COMMA);

            // optional trailing comma
            if ($this->lexer->isNextToken(DocLexer::T_CLOSE_CURLY_BRACES)) {
                break;
            }

            $values[] = $this->ArrayEntry();
        }

        $this->match(DocLexer::T_CLOSE_CURLY_BRACES);

        foreach ($values as $value) {
            list ($key, $val) = $value;

            if ($key !== null) {
                $array[$key] = $val;
            } else {
                $array[] = $val;
            }
        }

        return $array;
    }

    /**
     * ArrayEntry ::= Value | KeyValuePair
     * KeyValuePair ::= Key ("=" | ":") PlainValue | Constant
     * Key ::= string | integer | Constant
     *
     * @return array
     */
    private function ArrayEntry()
    {
        $peek = $this->lexer->glimpse();

        if (DocLexer::T_EQUALS === $peek['type']
                || DocLexer::T_COLON === $peek['type']) {

            if ($this->lexer->isNextToken(DocLexer::T_IDENTIFIER)) {
                $key = $this->Constant();
            } else {
                $this->matchAny([DocLexer::T_INTEGER, DocLexer::T_STRING]);
                $key = $this->lexer->token['value'];
            }

            $this->matchAny([DocLexer::T_EQUALS, DocLexer::T_COLON]);

            return [$key, $this->PlainValue()];
        }

        return [null, $this->Value()];
    }

    /**
     * Checks whether the given $name matches any ignored annotation name or namespace
     *
     * @param string $name
     *
     * @return bool
     */
    private function isIgnoredAnnotation($name)
    {
        if ($this->ignoreNotImportedAnnotations || isset($this->ignoredAnnotationNames[$name])) {
            return true;
        }

        foreach (array_keys($this->ignoredAnnotationNamespaces) as $ignoredAnnotationNamespace) {
            $ignoredAnnotationNamespace = rtrim($ignoredAnnotationNamespace, '\\') . '\\';

            if (0 === stripos(rtrim($name, '\\') . '\\', $ignoredAnnotationNamespace)) {
                return true;
            }
        }

        return false;
    }
}
<?php
/*
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * This software consists of voluntary contributions made by many individuals
 * and is licensed under the MIT license. For more information, see
 * <http://www.doctrine-project.org>.
 */

namespace Doctrine\Common\Annotations;

use Doctrine\Common\Cache\Cache;
use ReflectionClass;

/**
 * A cache aware annotation reader.
 *
 * @author Johannes M. Schmitt <schmittjoh@gmail.com>
 * @author Benjamin Eberlei <kontakt@beberlei.de>
 */
final class CachedReader implements Reader
{
    /**
     * @var Reader
     */
    private $delegate;

    /**
     * @var Cache
     */
    private $cache;

    /**
     * @var boolean
     */
    private $debug;

    /**
     * @var array
     */
    private $loadedAnnotations = [];

    /**
     * @var int[]
     */
    private $loadedFilemtimes = [];

    /**
     * @param bool $debug
     */
    public function __construct(Reader $reader, Cache $cache, $debug = false)
    {
        $this->delegate = $reader;
        $this->cache = $cache;
        $this->debug = (boolean) $debug;
    }

    /**
     * {@inheritDoc}
     */
    public function getClassAnnotations(ReflectionClass $class)
    {
        $cacheKey = $class->getName();

        if (isset($this->loadedAnnotations[$cacheKey])) {
            return $this->loadedAnnotations[$cacheKey];
        }

        if (false === ($annots = $this->fetchFromCache($cacheKey, $class))) {
            $annots = $this->delegate->getClassAnnotations($class);
            $this->saveToCache($cacheKey, $annots);
        }

        return $this->loadedAnnotations[$cacheKey] = $annots;
    }

    /**
     * {@inheritDoc}
     */
    public function getClassAnnotation(ReflectionClass $class, $annotationName)
    {
        foreach ($this->getClassAnnotations($class) as $annot) {
            if ($annot instanceof $annotationName) {
                return $annot;
            }
        }

        return null;
    }

    /**
     * {@inheritDoc}
     */
    public function getPropertyAnnotations(\ReflectionProperty $property)
    {
        $class = $property->getDeclaringClass();
        $cacheKey = $class->getName().'$'.$property->getName();

        if (isset($this->loadedAnnotations[$cacheKey])) {
            return $this->loadedAnnotations[$cacheKey];
        }

        if (false === ($annots = $this->fetchFromCache($cacheKey, $class))) {
            $annots = $this->delegate->getPropertyAnnotations($property);
            $this->saveToCache($cacheKey, $annots);
        }

        return $this->loadedAnnotations[$cacheKey] = $annots;
    }

    /**
     * {@inheritDoc}
     */
    public function getPropertyAnnotation(\ReflectionProperty $property, $annotationName)
    {
        foreach ($this->getPropertyAnnotations($property) as $annot) {
            if ($annot instanceof $annotationName) {
                return $annot;
            }
        }

        return null;
    }

    /**
     * {@inheritDoc}
     */
    public function getMethodAnnotations(\ReflectionMethod $method)
    {
        $class = $method->getDeclaringClass();
        $cacheKey = $class->getName().'#'.$method->getName();

        if (isset($this->loadedAnnotations[$cacheKey])) {
            return $this->loadedAnnotations[$cacheKey];
        }

        if (false === ($annots = $this->fetchFromCache($cacheKey, $class))) {
            $annots = $this->delegate->getMethodAnnotations($method);
            $this->saveToCache($cacheKey, $annots);
        }

        return $this->loadedAnnotations[$cacheKey] = $annots;
    }

    /**
     * {@inheritDoc}
     */
    public function getMethodAnnotation(\ReflectionMethod $method, $annotationName)
    {
        foreach ($this->getMethodAnnotations($method) as $annot) {
            if ($annot instanceof $annotationName) {
                return $annot;
            }
        }

        return null;
    }

    /**
     * Clears loaded annotations.
     *
     * @return void
     */
    public function clearLoadedAnnotations()
    {
        $this->loadedAnnotations = [];
        $this->loadedFilemtimes = [];
    }

    /**
     * Fetches a value from the cache.
     *
     * @param string $cacheKey The cache key.
     *
     * @return mixed The cached value or false when the value is not in cache.
     */
    private function fetchFromCache($cacheKey, ReflectionClass $class)
    {
        if (($data = $this->cache->fetch($cacheKey)) !== false) {
            if (!$this->debug || $this->isCacheFresh($cacheKey, $class)) {
                return $data;
            }
        }

        return false;
    }

    /**
     * Saves a value to the cache.
     *
     * @param string $cacheKey The cache key.
     * @param mixed  $value    The value.
     *
     * @return void
     */
    private function saveToCache($cacheKey, $value)
    {
        $this->cache->save($cacheKey, $value);
        if ($this->debug) {
            $this->cache->save('[C]'.$cacheKey, time());
        }
    }

    /**
     * Checks if the cache is fresh.
     *
     * @param string $cacheKey
     *
     * @return boolean
     */
    private function isCacheFresh($cacheKey, ReflectionClass $class)
    {
        $lastModification = $this->getLastModification($class);
        if ($lastModification === 0) {
            return true;
        }

        return $this->cache->fetch('[C]'.$cacheKey) >= $lastModification;
    }

    /**
     * Returns the time the class was last modified, testing traits and parents
     *
     * @return int
     */
    private function getLastModification(ReflectionClass $class)
    {
        $filename = $class->getFileName();

        if (isset($this->loadedFilemtimes[$filename])) {
            return $this->loadedFilemtimes[$filename];
        }

        $parent   = $class->getParentClass();

        $lastModification =  max(array_merge(
            [$filename ? filemtime($filename) : 0],
            array_map([$this, 'getTraitLastModificationTime'], $class->getTraits()),
            array_map([$this, 'getLastModification'], $class->getInterfaces()),
            $parent ? [$this->getLastModification($parent)] : []
        ));

        assert($lastModification !== false);

        return $this->loadedFilemtimes[$filename] = $lastModification;
    }

    /**
     * @return int
     */
    private function getTraitLastModificationTime(ReflectionClass $reflectionTrait)
    {
        $fileName = $reflectionTrait->getFileName();

        if (isset($this->loadedFilemtimes[$fileName])) {
            return $this->loadedFilemtimes[$fileName];
        }

        $lastModificationTime = max(array_merge(
            [$fileName ? filemtime($fileName) : 0],
            array_map([$this, 'getTraitLastModificationTime'], $reflectionTrait->getTraits())
        ));

        assert($lastModificationTime !== false);

        return $this->loadedFilemtimes[$fileName] = $lastModificationTime;
    }
}
<?php
/*
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * This software consists of voluntary contributions made by many individuals
 * and is licensed under the MIT license. For more information, see
 * <http://www.doctrine-project.org>.
 */

namespace Doctrine\Common\Annotations;

/**
 * Parses a file for namespaces/use/class declarations.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 * @author Christian Kaps <christian.kaps@mohiva.com>
 */
class TokenParser
{
    /**
     * The token list.
     *
     * @var array
     */
    private $tokens;

    /**
     * The number of tokens.
     *
     * @var int
     */
    private $numTokens;

    /**
     * The current array pointer.
     *
     * @var int
     */
    private $pointer = 0;

    /**
     * @param string $contents
     */
    public function __construct($contents)
    {
        $this->tokens = token_get_all($contents);

        // The PHP parser sets internal compiler globals for certain things. Annoyingly, the last docblock comment it
        // saw gets stored in doc_comment. When it comes to compile the next thing to be include()d this stored
        // doc_comment becomes owned by the first thing the compiler sees in the file that it considers might have a
        // docblock. If the first thing in the file is a class without a doc block this would cause calls to
        // getDocBlock() on said class to return our long lost doc_comment. Argh.
        // To workaround, cause the parser to parse an empty docblock. Sure getDocBlock() will return this, but at least
        // it's harmless to us.
        token_get_all("<?php\n/**\n *\n */");

        $this->numTokens = count($this->tokens);
    }

    /**
     * Gets the next non whitespace and non comment token.
     *
     * @param boolean $docCommentIsComment If TRUE then a doc comment is considered a comment and skipped.
     *                                     If FALSE then only whitespace and normal comments are skipped.
     *
     * @return array|null The token if exists, null otherwise.
     */
    public function next($docCommentIsComment = TRUE)
    {
        for ($i = $this->pointer; $i < $this->numTokens; $i++) {
            $this->pointer++;
            if ($this->tokens[$i][0] === T_WHITESPACE ||
                $this->tokens[$i][0] === T_COMMENT ||
                ($docCommentIsComment && $this->tokens[$i][0] === T_DOC_COMMENT)) {

                continue;
            }

            return $this->tokens[$i];
        }

        return null;
    }

    /**
     * Parses a single use statement.
     *
     * @return array A list with all found class names for a use statement.
     */
    public function parseUseStatement()
    {

        $groupRoot = '';
        $class = '';
        $alias = '';
        $statements = [];
        $explicitAlias = false;
        while (($token = $this->next())) {
            $isNameToken = $token[0] === T_STRING || $token[0] === T_NS_SEPARATOR;
            if (!$explicitAlias && $isNameToken) {
                $class .= $token[1];
                $alias = $token[1];
            } else if ($explicitAlias && $isNameToken) {
                $alias .= $token[1];
            } else if ($token[0] === T_AS) {
                $explicitAlias = true;
                $alias = '';
            } else if ($token === ',') {
                $statements[strtolower($alias)] = $groupRoot . $class;
                $class = '';
                $alias = '';
                $explicitAlias = false;
            } else if ($token === ';') {
                $statements[strtolower($alias)] = $groupRoot . $class;
                break;
            } else if ($token === '{' ) {
                $groupRoot = $class;
                $class = '';
            } else if ($token === '}' ) {
                continue;
            } else {
                break;
            }
        }

        return $statements;
    }

    /**
     * Gets all use statements.
     *
     * @param string $namespaceName The namespace name of the reflected class.
     *
     * @return array A list with all found use statements.
     */
    public function parseUseStatements($namespaceName)
    {
        $statements = [];
        while (($token = $this->next())) {
            if ($token[0] === T_USE) {
                $statements = array_merge($statements, $this->parseUseStatement());
                continue;
            }
            if ($token[0] !== T_NAMESPACE || $this->parseNamespace() != $namespaceName) {
                continue;
            }

            // Get fresh array for new namespace. This is to prevent the parser to collect the use statements
            // for a previous namespace with the same name. This is the case if a namespace is defined twice
            // or if a namespace with the same name is commented out.
            $statements = [];
        }

        return $statements;
    }

    /**
     * Gets the namespace.
     *
     * @return string The found namespace.
     */
    public function parseNamespace()
    {
        $name = '';
        while (($token = $this->next()) && ($token[0] === T_STRING || $token[0] === T_NS_SEPARATOR)) {
            $name .= $token[1];
        }

        return $name;
    }

    /**
     * Gets the class name.
     *
     * @return string The found class name.
     */
    public function parseClass()
    {
        // Namespaces and class names are tokenized the same: T_STRINGs
        // separated by T_NS_SEPARATOR so we can use one function to provide
        // both.
        return $this->parseNamespace();
    }
}
<?php
/*
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * This software consists of voluntary contributions made by many individuals
 * and is licensed under the MIT license. For more information, see
 * <http://www.doctrine-project.org>.
 */

namespace Doctrine\Common\Annotations;

use Doctrine\Common\Annotations\Annotation\IgnoreAnnotation;
use Doctrine\Common\Annotations\Annotation\Target;
use ReflectionClass;
use ReflectionMethod;
use ReflectionProperty;

/**
 * A reader for docblock annotations.
 *
 * @author  Benjamin Eberlei <kontakt@beberlei.de>
 * @author  Guilherme Blanco <guilhermeblanco@hotmail.com>
 * @author  Jonathan Wage <jonwage@gmail.com>
 * @author  Roman Borschel <roman@code-factory.org>
 * @author  Johannes M. Schmitt <schmittjoh@gmail.com>
 */
class AnnotationReader implements Reader
{
    /**
     * Global map for imports.
     *
     * @var array
     */
    private static $globalImports = [
        'ignoreannotation' => 'Doctrine\Common\Annotations\Annotation\IgnoreAnnotation',
    ];

    /**
     * A list with annotations that are not causing exceptions when not resolved to an annotation class.
     *
     * The names are case sensitive.
     *
     * @var array
     */
    private static $globalIgnoredNames = [
        // Annotation tags
        'Annotation' => true, 'Attribute' => true, 'Attributes' => true,
        /* Can we enable this? 'Enum' => true, */
        'Required' => true,
        'Target' => true,
        // Widely used tags (but not existent in phpdoc)
        'fix' => true , 'fixme' => true,
        'override' => true,
        // PHPDocumentor 1 tags
        'abstract'=> true, 'access'=> true,
        'code' => true,
        'deprec'=> true,
        'endcode' => true, 'exception'=> true,
        'final'=> true,
        'ingroup' => true, 'inheritdoc'=> true, 'inheritDoc'=> true,
        'magic' => true,
        'name'=> true,
        'toc' => true, 'tutorial'=> true,
        'private' => true,
        'static'=> true, 'staticvar'=> true, 'staticVar'=> true,
        'throw' => true,
        // PHPDocumentor 2 tags.
        'api' => true, 'author'=> true,
        'category'=> true, 'copyright'=> true,
        'deprecated'=> true,
        'example'=> true,
        'filesource'=> true,
        'global'=> true,
        'ignore'=> true, /* Can we enable this? 'index' => true, */ 'internal'=> true,
        'license'=> true, 'link'=> true,
        'method' => true,
        'package'=> true, 'param'=> true, 'property' => true, 'property-read' => true, 'property-write' => true,
        'return'=> true,
        'see'=> true, 'since'=> true, 'source' => true, 'subpackage'=> true,
        'throws'=> true, 'todo'=> true, 'TODO'=> true,
        'usedby'=> true, 'uses' => true,
        'var'=> true, 'version'=> true,
        // PHPUnit tags
        'codeCoverageIgnore' => true, 'codeCoverageIgnoreStart' => true, 'codeCoverageIgnoreEnd' => true,
        // PHPCheckStyle
        'SuppressWarnings' => true,
        // PHPStorm
        'noinspection' => true,
        // PEAR
        'package_version' => true,
        // PlantUML
        'startuml' => true, 'enduml' => true,
        // Symfony 3.3 Cache Adapter
        'experimental' => true,
        // Slevomat Coding Standard
        'phpcsSuppress' => true,
        // PHP CodeSniffer
        'codingStandardsIgnoreStart' => true,
        'codingStandardsIgnoreEnd' => true,
        // PHPStan
        'template' => true, 'implements' => true, 'extends' => true, 'use' => true,
    ];

    /**
     * A list with annotations that are not causing exceptions when not resolved to an annotation class.
     *
     * The names are case sensitive.
     *
     * @var array
     */
    private static $globalIgnoredNamespaces = [];

    /**
     * Add a new annotation to the globally ignored annotation names with regard to exception handling.
     *
     * @param string $name
     */
    static public function addGlobalIgnoredName($name)
    {
        self::$globalIgnoredNames[$name] = true;
    }

    /**
     * Add a new annotation to the globally ignored annotation namespaces with regard to exception handling.
     *
     * @param string $namespace
     */
    static public function addGlobalIgnoredNamespace($namespace)
    {
        self::$globalIgnoredNamespaces[$namespace] = true;
    }

    /**
     * Annotations parser.
     *
     * @var \Doctrine\Common\Annotations\DocParser
     */
    private $parser;

    /**
     * Annotations parser used to collect parsing metadata.
     *
     * @var \Doctrine\Common\Annotations\DocParser
     */
    private $preParser;

    /**
     * PHP parser used to collect imports.
     *
     * @var \Doctrine\Common\Annotations\PhpParser
     */
    private $phpParser;

    /**
     * In-memory cache mechanism to store imported annotations per class.
     *
     * @var array
     */
    private $imports = [];

    /**
     * In-memory cache mechanism to store ignored annotations per class.
     *
     * @var array
     */
    private $ignoredAnnotationNames = [];

    /**
     * Constructor.
     *
     * Initializes a new AnnotationReader.
     *
     * @param DocParser $parser
     *
     * @throws AnnotationException
     */
    public function __construct(DocParser $parser = null)
    {
        if (extension_loaded('Zend Optimizer+') && (ini_get('zend_optimizerplus.save_comments') === "0" || ini_get('opcache.save_comments') === "0")) {
            throw AnnotationException::optimizerPlusSaveComments();
        }

        if (extension_loaded('Zend OPcache') && ini_get('opcache.save_comments') == 0) {
            throw AnnotationException::optimizerPlusSaveComments();
        }

        // Make sure that the IgnoreAnnotation annotation is loaded
        class_exists(IgnoreAnnotation::class);

        $this->parser = $parser ?: new DocParser();

        $this->preParser = new DocParser;

        $this->preParser->setImports(self::$globalImports);
        $this->preParser->setIgnoreNotImportedAnnotations(true);
        $this->preParser->setIgnoredAnnotationNames(self::$globalIgnoredNames);

        $this->phpParser = new PhpParser;
    }

    /**
     * {@inheritDoc}
     */
    public function getClassAnnotations(ReflectionClass $class)
    {
        $this->parser->setTarget(Target::TARGET_CLASS);
        $this->parser->setImports($this->getClassImports($class));
        $this->parser->setIgnoredAnnotationNames($this->getIgnoredAnnotationNames($class));
        $this->parser->setIgnoredAnnotationNamespaces(self::$globalIgnoredNamespaces);

        return $this->parser->parse($class->getDocComment(), 'class ' . $class->getName());
    }

    /**
     * {@inheritDoc}
     */
    public function getClassAnnotation(ReflectionClass $class, $annotationName)
    {
        $annotations = $this->getClassAnnotations($class);

        foreach ($annotations as $annotation) {
            if ($annotation instanceof $annotationName) {
                return $annotation;
            }
        }

        return null;
    }

    /**
     * {@inheritDoc}
     */
    public function getPropertyAnnotations(ReflectionProperty $property)
    {
        $class   = $property->getDeclaringClass();
        $context = 'property ' . $class->getName() . "::\$" . $property->getName();

        $this->parser->setTarget(Target::TARGET_PROPERTY);
        $this->parser->setImports($this->getPropertyImports($property));
        $this->parser->setIgnoredAnnotationNames($this->getIgnoredAnnotationNames($class));
        $this->parser->setIgnoredAnnotationNamespaces(self::$globalIgnoredNamespaces);

        return $this->parser->parse($property->getDocComment(), $context);
    }

    /**
     * {@inheritDoc}
     */
    public function getPropertyAnnotation(ReflectionProperty $property, $annotationName)
    {
        $annotations = $this->getPropertyAnnotations($property);

        foreach ($annotations as $annotation) {
            if ($annotation instanceof $annotationName) {
                return $annotation;
            }
        }

        return null;
    }

    /**
     * {@inheritDoc}
     */
    public function getMethodAnnotations(ReflectionMethod $method)
    {
        $class   = $method->getDeclaringClass();
        $context = 'method ' . $class->getName() . '::' . $method->getName() . '()';

        $this->parser->setTarget(Target::TARGET_METHOD);
        $this->parser->setImports($this->getMethodImports($method));
        $this->parser->setIgnoredAnnotationNames($this->getIgnoredAnnotationNames($class));
        $this->parser->setIgnoredAnnotationNamespaces(self::$globalIgnoredNamespaces);

        return $this->parser->parse($method->getDocComment(), $context);
    }

    /**
     * {@inheritDoc}
     */
    public function getMethodAnnotation(ReflectionMethod $method, $annotationName)
    {
        $annotations = $this->getMethodAnnotations($method);

        foreach ($annotations as $annotation) {
            if ($annotation instanceof $annotationName) {
                return $annotation;
            }
        }

        return null;
    }

    /**
     * Returns the ignored annotations for the given class.
     *
     * @param \ReflectionClass $class
     *
     * @return array
     */
    private function getIgnoredAnnotationNames(ReflectionClass $class)
    {
        $name = $class->getName();
        if (isset($this->ignoredAnnotationNames[$name])) {
            return $this->ignoredAnnotationNames[$name];
        }

        $this->collectParsingMetadata($class);

        return $this->ignoredAnnotationNames[$name];
    }

    /**
     * Retrieves imports.
     *
     * @param \ReflectionClass $class
     *
     * @return array
     */
    private function getClassImports(ReflectionClass $class)
    {
        $name = $class->getName();
        if (isset($this->imports[$name])) {
            return $this->imports[$name];
        }

        $this->collectParsingMetadata($class);

        return $this->imports[$name];
    }

    /**
     * Retrieves imports for methods.
     *
     * @param \ReflectionMethod $method
     *
     * @return array
     */
    private function getMethodImports(ReflectionMethod $method)
    {
        $class = $method->getDeclaringClass();
        $classImports = $this->getClassImports($class);

        $traitImports = [];

        foreach ($class->getTraits() as $trait) {
            if ($trait->hasMethod($method->getName())
                && $trait->getFileName() === $method->getFileName()
            ) {
                $traitImports = array_merge($traitImports, $this->phpParser->parseClass($trait));
            }
        }

        return array_merge($classImports, $traitImports);
    }

    /**
     * Retrieves imports for properties.
     *
     * @param \ReflectionProperty $property
     *
     * @return array
     */
    private function getPropertyImports(ReflectionProperty $property)
    {
        $class = $property->getDeclaringClass();
        $classImports = $this->getClassImports($class);

        $traitImports = [];

        foreach ($class->getTraits() as $trait) {
            if ($trait->hasProperty($property->getName())) {
                $traitImports = array_merge($traitImports, $this->phpParser->parseClass($trait));
            }
        }

        return array_merge($classImports, $traitImports);
    }

    /**
     * Collects parsing metadata for a given class.
     *
     * @param \ReflectionClass $class
     */
    private function collectParsingMetadata(ReflectionClass $class)
    {
        $ignoredAnnotationNames = self::$globalIgnoredNames;
        $annotations            = $this->preParser->parse($class->getDocComment(), 'class ' . $class->name);

        foreach ($annotations as $annotation) {
            if ($annotation instanceof IgnoreAnnotation) {
                foreach ($annotation->names AS $annot) {
                    $ignoredAnnotationNames[$annot] = true;
                }
            }
        }

        $name = $class->getName();

        $this->imports[$name] = array_merge(
            self::$globalImports,
            $this->phpParser->parseClass($class),
            ['__NAMESPACE__' => $class->getNamespaceName()]
        );

        $this->ignoredAnnotationNames[$name] = $ignoredAnnotationNames;
    }
}
<?php
/*
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * This software consists of voluntary contributions made by many individuals
 * and is licensed under the MIT license. For more information, see
 * <http://www.doctrine-project.org>.
 */

namespace Doctrine\Common\Annotations;

final class AnnotationRegistry
{
    /**
     * A map of namespaces to use for autoloading purposes based on a PSR-0 convention.
     *
     * Contains the namespace as key and an array of directories as value. If the value is NULL
     * the include path is used for checking for the corresponding file.
     *
     * This autoloading mechanism does not utilize the PHP autoloading but implements autoloading on its own.
     *
     * @var string[][]|string[]|null[]
     */
    static private $autoloadNamespaces = [];

    /**
     * A map of autoloader callables.
     *
     * @var callable[]
     */
    static private $loaders = [];

    /**
     * An array of classes which cannot be found
     *
     * @var null[] indexed by class name
     */
    static private $failedToAutoload = [];

    /**
     * Whenever registerFile() was used. Disables use of standard autoloader.
     *
     * @var bool
     */
    static private $registerFileUsed = false;

    public static function reset() : void
    {
        self::$autoloadNamespaces = [];
        self::$loaders            = [];
        self::$failedToAutoload   = [];
        self::$registerFileUsed   = false;
    }

    /**
     * Registers file.
     *
     * @deprecated This method is deprecated and will be removed in doctrine/annotations 2.0. Annotations will be autoloaded in 2.0.
     */
    public static function registerFile(string $file) : void
    {
        self::$registerFileUsed = true;

        require_once $file;
    }

    /**
     * Adds a namespace with one or many directories to look for files or null for the include path.
     *
     * Loading of this namespaces will be done with a PSR-0 namespace loading algorithm.
     *
     * @param string            $namespace
     * @param string|array|null $dirs
     *
     * @deprecated This method is deprecated and will be removed in doctrine/annotations 2.0. Annotations will be autoloaded in 2.0.
     */
    public static function registerAutoloadNamespace(string $namespace, $dirs = null) : void
    {
        self::$autoloadNamespaces[$namespace] = $dirs;
    }

    /**
     * Registers multiple namespaces.
     *
     * Loading of this namespaces will be done with a PSR-0 namespace loading algorithm.
     *
     * @param string[][]|string[]|null[] $namespaces indexed by namespace name
     *
     * @deprecated This method is deprecated and will be removed in doctrine/annotations 2.0. Annotations will be autoloaded in 2.0.
     */
    public static function registerAutoloadNamespaces(array $namespaces) : void
    {
        self::$autoloadNamespaces = \array_merge(self::$autoloadNamespaces, $namespaces);
    }

    /**
     * Registers an autoloading callable for annotations, much like spl_autoload_register().
     *
     * NOTE: These class loaders HAVE to be silent when a class was not found!
     * IMPORTANT: Loaders have to return true if they loaded a class that could contain the searched annotation class.
     *
     * @deprecated This method is deprecated and will be removed in doctrine/annotations 2.0. Annotations will be autoloaded in 2.0.
     */
    public static function registerLoader(callable $callable) : void
    {
        // Reset our static cache now that we have a new loader to work with
        self::$failedToAutoload   = [];
        self::$loaders[]          = $callable;
    }

    /**
     * Registers an autoloading callable for annotations, if it is not already registered
     *
     * @deprecated This method is deprecated and will be removed in doctrine/annotations 2.0. Annotations will be autoloaded in 2.0.
     */
    public static function registerUniqueLoader(callable $callable) : void
    {
        if ( ! in_array($callable, self::$loaders, true) ) {
            self::registerLoader($callable);
        }
    }

    /**
     * Autoloads an annotation class silently.
     */
    public static function loadAnnotationClass(string $class) : bool
    {
        if (\class_exists($class, false)) {
            return true;
        }

        if (\array_key_exists($class, self::$failedToAutoload)) {
            return false;
        }

        foreach (self::$autoloadNamespaces AS $namespace => $dirs) {
            if (\strpos($class, $namespace) === 0) {
                $file = \str_replace('\\', \DIRECTORY_SEPARATOR, $class) . '.php';

                if ($dirs === null) {
                    if ($path = stream_resolve_include_path($file)) {
                        require $path;
                        return true;
                    }
                } else {
                    foreach((array) $dirs AS $dir) {
                        if (is_file($dir . \DIRECTORY_SEPARATOR . $file)) {
                            require $dir . \DIRECTORY_SEPARATOR . $file;
                            return true;
                        }
                    }
                }
            }
        }

        foreach (self::$loaders AS $loader) {
            if ($loader($class) === true) {
                return true;
            }
        }

        if (self::$loaders === [] && self::$autoloadNamespaces === [] && self::$registerFileUsed === false && \class_exists($class)) {
            return true;
        }

        self::$failedToAutoload[$class] = null;

        return false;
    }
}
<?php
/*
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * This software consists of voluntary contributions made by many individuals
 * and is licensed under the MIT license. For more information, see
 * <http://www.doctrine-project.org>.
 */

namespace Doctrine\Common\Annotations;

use Doctrine\Common\Lexer\AbstractLexer;

/**
 * Simple lexer for docblock annotations.
 *
 * @author Benjamin Eberlei <kontakt@beberlei.de>
 * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
 * @author Jonathan Wage <jonwage@gmail.com>
 * @author Roman Borschel <roman@code-factory.org>
 * @author Johannes M. Schmitt <schmittjoh@gmail.com>
 */
final class DocLexer extends AbstractLexer
{
    const T_NONE                = 1;
    const T_INTEGER             = 2;
    const T_STRING              = 3;
    const T_FLOAT               = 4;

    // All tokens that are also identifiers should be >= 100
    const T_IDENTIFIER          = 100;
    const T_AT                  = 101;
    const T_CLOSE_CURLY_BRACES  = 102;
    const T_CLOSE_PARENTHESIS   = 103;
    const T_COMMA               = 104;
    const T_EQUALS              = 105;
    const T_FALSE               = 106;
    const T_NAMESPACE_SEPARATOR = 107;
    const T_OPEN_CURLY_BRACES   = 108;
    const T_OPEN_PARENTHESIS    = 109;
    const T_TRUE                = 110;
    const T_NULL                = 111;
    const T_COLON               = 112;
    const T_MINUS               = 113;

    /**
     * @var array
     */
    protected $noCase = [
        '@'  => self::T_AT,
        ','  => self::T_COMMA,
        '('  => self::T_OPEN_PARENTHESIS,
        ')'  => self::T_CLOSE_PARENTHESIS,
        '{'  => self::T_OPEN_CURLY_BRACES,
        '}'  => self::T_CLOSE_CURLY_BRACES,
        '='  => self::T_EQUALS,
        ':'  => self::T_COLON,
        '-'  => self::T_MINUS,
        '\\' => self::T_NAMESPACE_SEPARATOR
    ];

    /**
     * @var array
     */
    protected $withCase = [
        'true'  => self::T_TRUE,
        'false' => self::T_FALSE,
        'null'  => self::T_NULL
    ];

    /**
     * Whether the next token starts immediately, or if there were
     * non-captured symbols before that
     */
    public function nextTokenIsAdjacent() : bool
    {
        return $this->token === null
            || ($this->lookahead !== null
                && ($this->lookahead['position'] - $this->token['position']) === strlen($this->token['value']));
    }

    /**
     * {@inheritdoc}
     */
    protected function getCatchablePatterns()
    {
        return [
            '[a-z_\\\][a-z0-9_\:\\\]*[a-z_][a-z0-9_]*',
            '(?:[+-]?[0-9]+(?:[\.][0-9]+)*)(?:[eE][+-]?[0-9]+)?',
            '"(?:""|[^"])*+"',
        ];
    }

    /**
     * {@inheritdoc}
     */
    protected function getNonCatchablePatterns()
    {
        return ['\s+', '\*+', '(.)'];
    }

    /**
     * {@inheritdoc}
     */
    protected function getType(&$value)
    {
        $type = self::T_NONE;

        if ($value[0] === '"') {
            $value = str_replace('""', '"', substr($value, 1, strlen($value) - 2));

            return self::T_STRING;
        }

        if (isset($this->noCase[$value])) {
            return $this->noCase[$value];
        }

        if ($value[0] === '_' || $value[0] === '\\' || ctype_alpha($value[0])) {
            return self::T_IDENTIFIER;
        }

        $lowerValue = strtolower($value);

        if (isset($this->withCase[$lowerValue])) {
            return $this->withCase[$lowerValue];
        }

        // Checking numeric value
        if (is_numeric($value)) {
            return (strpos($value, '.') !== false || stripos($value, 'e') !== false)
                ? self::T_FLOAT : self::T_INTEGER;
        }

        return $type;
    }
}
{
    "active": true,
    "name": "Annotations",
    "slug": "annotations",
    "docsSlug": "doctrine-annotations",
    "versions": [
        {
            "name": "1.9",
            "branchName": "1.9",
            "slug": "1.9",
            "aliases": [
                "latest"
            ],
            "upcoming": true
        },
        {
            "name": "1.8",
            "branchName": "1.8",
            "slug": "1.8",
            "current": true,
            "aliases": [
                "current",
                "stable"
            ],
            "maintained": true
        },
        {
            "name": "1.7",
            "branchName": "1.7",
            "slug": "1.7",
            "maintained": false
        },
        {
            "name": "1.6",
            "branchName": "1.6",
            "slug": "1.6",
            "maintained": false
        }
    ]
}
{
    "name": "doctrine/annotations",
    "type": "library",
    "description": "Docblock Annotations Parser",
    "keywords": ["annotations", "docblock", "parser"],
    "homepage": "http://www.doctrine-project.org",
    "license": "MIT",
    "authors": [
        {"name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com"},
        {"name": "Roman Borschel", "email": "roman@code-factory.org"},
        {"name": "Benjamin Eberlei", "email": "kontakt@beberlei.de"},
        {"name": "Jonathan Wage", "email": "jonwage@gmail.com"},
        {"name": "Johannes Schmitt", "email": "schmittjoh@gmail.com"}
    ],
    "require": {
        "php": "^7.1 || ^8.0",
        "ext-tokenizer": "*",
        "doctrine/lexer": "1.*"
    },
    "require-dev": {
        "doctrine/cache": "1.*",
        "phpunit/phpunit": "^7.5"
    },
    "config": {
        "sort-packages": true
    },
    "autoload": {
        "psr-4": { "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" }
    },
    "autoload-dev": {
        "psr-4": {
            "Doctrine\\Performance\\Common\\Annotations\\": "tests/Doctrine/Performance/Common/Annotations",
            "Doctrine\\Tests\\Common\\Annotations\\": "tests/Doctrine/Tests/Common/Annotations"
        },
        "files": [
            "tests/Doctrine/Tests/Common/Annotations/Fixtures/SingleClassLOC1000.php"
        ]
    },
    "extra": {
        "branch-alias": {
            "dev-master": "1.9.x-dev"
        }
    }
}
The MIT License (MIT)

Copyright (c) 2013-2016 container-interop
Copyright (c) 2016 PHP Framework Interoperability Group

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.
# PSR Container

This repository holds all interfaces/classes/traits related to [PSR-11](https://github.com/container-interop/fig-standards/blob/master/proposed/container.md).

Note that this is not a container implementation of its own. See the specification for more details.
composer.lock
composer.phar
/vendor/
{
    "name": "psr/container",
    "type": "library",
    "description": "Common Container Interface (PHP FIG PSR-11)",
    "keywords": ["psr", "psr-11", "container", "container-interop", "container-interface"],
    "homepage": "https://github.com/php-fig/container",
    "license": "MIT",
    "authors": [
        {
            "name": "PHP-FIG",
            "homepage": "http://www.php-fig.org/"
        }
    ],
    "require": {
        "php": ">=5.3.0"
    },
    "autoload": {
        "psr-4": {
            "Psr\\Container\\": "src/"
        }
    },
    "extra": {
        "branch-alias": {
            "dev-master": "1.0.x-dev"
        }
    }
}
<?php
/**
 * @license http://www.opensource.org/licenses/mit-license.php MIT (see the LICENSE file)
 */

namespace Psr\Container;

/**
 * No entry was found in the container.
 */
interface NotFoundExceptionInterface extends ContainerExceptionInterface
{
}
<?php
/**
 * @license http://www.opensource.org/licenses/mit-license.php MIT (see the LICENSE file)
 */

namespace Psr\Container;

/**
 * Describes the interface of a container that exposes methods to read its entries.
 */
interface ContainerInterface
{
    /**
     * Finds an entry of the container by its identifier and returns it.
     *
     * @param string $id Identifier of the entry to look for.
     *
     * @throws NotFoundExceptionInterface  No entry was found for **this** identifier.
     * @throws ContainerExceptionInterface Error while retrieving the entry.
     *
     * @return mixed Entry.
     */
    public function get($id);

    /**
     * Returns true if the container can return an entry for the given identifier.
     * Returns false otherwise.
     *
     * `has($id)` returning true does not mean that `get($id)` will not throw an exception.
     * It does however mean that `get($id)` will not throw a `NotFoundExceptionInterface`.
     *
     * @param string $id Identifier of the entry to look for.
     *
     * @return bool
     */
    public function has($id);
}
<?php
/**
 * @license http://www.opensource.org/licenses/mit-license.php MIT (see the LICENSE file)
 */

namespace Psr\Container;

/**
 * Base interface representing a generic exception in a container.
 */
interface ContainerExceptionInterface
{
}
Copyright (c) 2012 PHP Framework Interoperability Group

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.
PSR Log
=======

This repository holds all interfaces/classes/traits related to
[PSR-3](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md).

Note that this is not a logger of its own. It is merely an interface that
describes a logger. See the specification for more details.

Installation
------------

```bash
composer require psr/log
```

Usage
-----

If you need a logger, you can use the interface like this:

```php
<?php

use Psr\Log\LoggerInterface;

class Foo
{
    private $logger;

    public function __construct(LoggerInterface $logger = null)
    {
        $this->logger = $logger;
    }

    public function doSomething()
    {
        if ($this->logger) {
            $this->logger->info('Doing work');
        }
           
        try {
            $this->doSomethingElse();
        } catch (Exception $exception) {
            $this->logger->error('Oh no!', array('exception' => $exception));
        }

        // do something useful
    }
}
```

You can then pick one of the implementations of the interface to get a logger.

If you want to implement the interface, you can require this package and
implement `Psr\Log\LoggerInterface` in your code. Please read the
[specification text](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md)
for details.
<?php

namespace Psr\Log;

/**
 * Describes a logger-aware instance.
 */
interface LoggerAwareInterface
{
    /**
     * Sets a logger instance on the object.
     *
     * @param LoggerInterface $logger
     *
     * @return void
     */
    public function setLogger(LoggerInterface $logger);
}
<?php

namespace Psr\Log;

/**
 * Describes log levels.
 */
class LogLevel
{
    const EMERGENCY = 'emergency';
    const ALERT     = 'alert';
    const CRITICAL  = 'critical';
    const ERROR     = 'error';
    const WARNING   = 'warning';
    const NOTICE    = 'notice';
    const INFO      = 'info';
    const DEBUG     = 'debug';
}
<?php

namespace Psr\Log\Test;

use Psr\Log\LoggerInterface;
use Psr\Log\LogLevel;
use PHPUnit\Framework\TestCase;

/**
 * Provides a base test class for ensuring compliance with the LoggerInterface.
 *
 * Implementors can extend the class and implement abstract methods to run this
 * as part of their test suite.
 */
abstract class LoggerInterfaceTest extends TestCase
{
    /**
     * @return LoggerInterface
     */
    abstract public function getLogger();

    /**
     * This must return the log messages in order.
     *
     * The simple formatting of the messages is: "<LOG LEVEL> <MESSAGE>".
     *
     * Example ->error('Foo') would yield "error Foo".
     *
     * @return string[]
     */
    abstract public function getLogs();

    public function testImplements()
    {
        $this->assertInstanceOf('Psr\Log\LoggerInterface', $this->getLogger());
    }

    /**
     * @dataProvider provideLevelsAndMessages
     */
    public function testLogsAtAllLevels($level, $message)
    {
        $logger = $this->getLogger();
        $logger->{$level}($message, array('user' => 'Bob'));
        $logger->log($level, $message, array('user' => 'Bob'));

        $expected = array(
            $level.' message of level '.$level.' with context: Bob',
            $level.' message of level '.$level.' with context: Bob',
        );
        $this->assertEquals($expected, $this->getLogs());
    }

    public function provideLevelsAndMessages()
    {
        return array(
            LogLevel::EMERGENCY => array(LogLevel::EMERGENCY, 'message of level emergency with context: {user}'),
            LogLevel::ALERT => array(LogLevel::ALERT, 'message of level alert with context: {user}'),
            LogLevel::CRITICAL => array(LogLevel::CRITICAL, 'message of level critical with context: {user}'),
            LogLevel::ERROR => array(LogLevel::ERROR, 'message of level error with context: {user}'),
            LogLevel::WARNING => array(LogLevel::WARNING, 'message of level warning with context: {user}'),
            LogLevel::NOTICE => array(LogLevel::NOTICE, 'message of level notice with context: {user}'),
            LogLevel::INFO => array(LogLevel::INFO, 'message of level info with context: {user}'),
            LogLevel::DEBUG => array(LogLevel::DEBUG, 'message of level debug with context: {user}'),
        );
    }

    /**
     * @expectedException \Psr\Log\InvalidArgumentException
     */
    public function testThrowsOnInvalidLevel()
    {
        $logger = $this->getLogger();
        $logger->log('invalid level', 'Foo');
    }

    public function testContextReplacement()
    {
        $logger = $this->getLogger();
        $logger->info('{Message {nothing} {user} {foo.bar} a}', array('user' => 'Bob', 'foo.bar' => 'Bar'));

        $expected = array('info {Message {nothing} Bob Bar a}');
        $this->assertEquals($expected, $this->getLogs());
    }

    public function testObjectCastToString()
    {
        if (method_exists($this, 'createPartialMock')) {
            $dummy = $this->createPartialMock('Psr\Log\Test\DummyTest', array('__toString'));
        } else {
            $dummy = $this->getMock('Psr\Log\Test\DummyTest', array('__toString'));
        }
        $dummy->expects($this->once())
            ->method('__toString')
            ->will($this->returnValue('DUMMY'));

        $this->getLogger()->warning($dummy);

        $expected = array('warning DUMMY');
        $this->assertEquals($expected, $this->getLogs());
    }

    public function testContextCanContainAnything()
    {
        $closed = fopen('php://memory', 'r');
        fclose($closed);

        $context = array(
            'bool' => true,
            'null' => null,
            'string' => 'Foo',
            'int' => 0,
            'float' => 0.5,
            'nested' => array('with object' => new DummyTest),
            'object' => new \DateTime,
            'resource' => fopen('php://memory', 'r'),
            'closed' => $closed,
        );

        $this->getLogger()->warning('Crazy context data', $context);

        $expected = array('warning Crazy context data');
        $this->assertEquals($expected, $this->getLogs());
    }

    public function testContextExceptionKeyCanBeExceptionOrOtherValues()
    {
        $logger = $this->getLogger();
        $logger->warning('Random message', array('exception' => 'oops'));
        $logger->critical('Uncaught Exception!', array('exception' => new \LogicException('Fail')));

        $expected = array(
            'warning Random message',
            'critical Uncaught Exception!'
        );
        $this->assertEquals($expected, $this->getLogs());
    }
}
<?php

namespace Psr\Log\Test;

use Psr\Log\AbstractLogger;

/**
 * Used for testing purposes.
 *
 * It records all records and gives you access to them for verification.
 *
 * @method bool hasEmergency($record)
 * @method bool hasAlert($record)
 * @method bool hasCritical($record)
 * @method bool hasError($record)
 * @method bool hasWarning($record)
 * @method bool hasNotice($record)
 * @method bool hasInfo($record)
 * @method bool hasDebug($record)
 *
 * @method bool hasEmergencyRecords()
 * @method bool hasAlertRecords()
 * @method bool hasCriticalRecords()
 * @method bool hasErrorRecords()
 * @method bool hasWarningRecords()
 * @method bool hasNoticeRecords()
 * @method bool hasInfoRecords()
 * @method bool hasDebugRecords()
 *
 * @method bool hasEmergencyThatContains($message)
 * @method bool hasAlertThatContains($message)
 * @method bool hasCriticalThatContains($message)
 * @method bool hasErrorThatContains($message)
 * @method bool hasWarningThatContains($message)
 * @method bool hasNoticeThatContains($message)
 * @method bool hasInfoThatContains($message)
 * @method bool hasDebugThatContains($message)
 *
 * @method bool hasEmergencyThatMatches($message)
 * @method bool hasAlertThatMatches($message)
 * @method bool hasCriticalThatMatches($message)
 * @method bool hasErrorThatMatches($message)
 * @method bool hasWarningThatMatches($message)
 * @method bool hasNoticeThatMatches($message)
 * @method bool hasInfoThatMatches($message)
 * @method bool hasDebugThatMatches($message)
 *
 * @method bool hasEmergencyThatPasses($message)
 * @method bool hasAlertThatPasses($message)
 * @method bool hasCriticalThatPasses($message)
 * @method bool hasErrorThatPasses($message)
 * @method bool hasWarningThatPasses($message)
 * @method bool hasNoticeThatPasses($message)
 * @method bool hasInfoThatPasses($message)
 * @method bool hasDebugThatPasses($message)
 */
class TestLogger extends AbstractLogger
{
    /**
     * @var array
     */
    public $records = [];

    public $recordsByLevel = [];

    /**
     * @inheritdoc
     */
    public function log($level, $message, array $context = [])
    {
        $record = [
            'level' => $level,
            'message' => $message,
            'context' => $context,
        ];

        $this->recordsByLevel[$record['level']][] = $record;
        $this->records[] = $record;
    }

    public function hasRecords($level)
    {
        return isset($this->recordsByLevel[$level]);
    }

    public function hasRecord($record, $level)
    {
        if (is_string($record)) {
            $record = ['message' => $record];
        }
        return $this->hasRecordThatPasses(function ($rec) use ($record) {
            if ($rec['message'] !== $record['message']) {
                return false;
            }
            if (isset($record['context']) && $rec['context'] !== $record['context']) {
                return false;
            }
            return true;
        }, $level);
    }

    public function hasRecordThatContains($message, $level)
    {
        return $this->hasRecordThatPasses(function ($rec) use ($message) {
            return strpos($rec['message'], $message) !== false;
        }, $level);
    }

    public function hasRecordThatMatches($regex, $level)
    {
        return $this->hasRecordThatPasses(function ($rec) use ($regex) {
            return preg_match($regex, $rec['message']) > 0;
        }, $level);
    }

    public function hasRecordThatPasses(callable $predicate, $level)
    {
        if (!isset($this->recordsByLevel[$level])) {
            return false;
        }
        foreach ($this->recordsByLevel[$level] as $i => $rec) {
            if (call_user_func($predicate, $rec, $i)) {
                return true;
            }
        }
        return false;
    }

    public function __call($method, $args)
    {
        if (preg_match('/(.*)(Debug|Info|Notice|Warning|Error|Critical|Alert|Emergency)(.*)/', $method, $matches) > 0) {
            $genericMethod = $matches[1] . ('Records' !== $matches[3] ? 'Record' : '') . $matches[3];
            $level = strtolower($matches[2]);
            if (method_exists($this, $genericMethod)) {
                $args[] = $level;
                return call_user_func_array([$this, $genericMethod], $args);
            }
        }
        throw new \BadMethodCallException('Call to undefined method ' . get_class($this) . '::' . $method . '()');
    }

    public function reset()
    {
        $this->records = [];
        $this->recordsByLevel = [];
    }
}
<?php

namespace Psr\Log\Test;

/**
 * This class is internal and does not follow the BC promise.
 *
 * Do NOT use this class in any way.
 *
 * @internal
 */
class DummyTest
{
    public function __toString()
    {
        return 'DummyTest';
    }
}
<?php

namespace Psr\Log;

/**
 * Basic Implementation of LoggerAwareInterface.
 */
trait LoggerAwareTrait
{
    /**
     * The logger instance.
     *
     * @var LoggerInterface
     */
    protected $logger;

    /**
     * Sets a logger.
     *
     * @param LoggerInterface $logger
     */
    public function setLogger(LoggerInterface $logger)
    {
        $this->logger = $logger;
    }
}
<?php

namespace Psr\Log;

class InvalidArgumentException extends \InvalidArgumentException
{
}
<?php

namespace Psr\Log;

/**
 * This Logger can be used to avoid conditional log calls.
 *
 * Logging should always be optional, and if no logger is provided to your
 * library creating a NullLogger instance to have something to throw logs at
 * is a good way to avoid littering your code with `if ($this->logger) { }`
 * blocks.
 */
class NullLogger extends AbstractLogger
{
    /**
     * Logs with an arbitrary level.
     *
     * @param mixed  $level
     * @param string $message
     * @param array  $context
     *
     * @return void
     *
     * @throws \Psr\Log\InvalidArgumentException
     */
    public function log($level, $message, array $context = array())
    {
        // noop
    }
}
<?php

namespace Psr\Log;

/**
 * Describes a logger instance.
 *
 * The message MUST be a string or object implementing __toString().
 *
 * The message MAY contain placeholders in the form: {foo} where foo
 * will be replaced by the context data in key "foo".
 *
 * The context array can contain arbitrary data. The only assumption that
 * can be made by implementors is that if an Exception instance is given
 * to produce a stack trace, it MUST be in a key named "exception".
 *
 * See https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md
 * for the full interface specification.
 */
interface LoggerInterface
{
    /**
     * System is unusable.
     *
     * @param string  $message
     * @param mixed[] $context
     *
     * @return void
     */
    public function emergency($message, array $context = array());

    /**
     * Action must be taken immediately.
     *
     * Example: Entire website down, database unavailable, etc. This should
     * trigger the SMS alerts and wake you up.
     *
     * @param string  $message
     * @param mixed[] $context
     *
     * @return void
     */
    public function alert($message, array $context = array());

    /**
     * Critical conditions.
     *
     * Example: Application component unavailable, unexpected exception.
     *
     * @param string  $message
     * @param mixed[] $context
     *
     * @return void
     */
    public function critical($message, array $context = array());

    /**
     * Runtime errors that do not require immediate action but should typically
     * be logged and monitored.
     *
     * @param string  $message
     * @param mixed[] $context
     *
     * @return void
     */
    public function error($message, array $context = array());

    /**
     * Exceptional occurrences that are not errors.
     *
     * Example: Use of deprecated APIs, poor use of an API, undesirable things
     * that are not necessarily wrong.
     *
     * @param string  $message
     * @param mixed[] $context
     *
     * @return void
     */
    public function warning($message, array $context = array());

    /**
     * Normal but significant events.
     *
     * @param string  $message
     * @param mixed[] $context
     *
     * @return void
     */
    public function notice($message, array $context = array());

    /**
     * Interesting events.
     *
     * Example: User logs in, SQL logs.
     *
     * @param string  $message
     * @param mixed[] $context
     *
     * @return void
     */
    public function info($message, array $context = array());

    /**
     * Detailed debug information.
     *
     * @param string  $message
     * @param mixed[] $context
     *
     * @return void
     */
    public function debug($message, array $context = array());

    /**
     * Logs with an arbitrary level.
     *
     * @param mixed   $level
     * @param string  $message
     * @param mixed[] $context
     *
     * @return void
     *
     * @throws \Psr\Log\InvalidArgumentException
     */
    public function log($level, $message, array $context = array());
}
<?php

namespace Psr\Log;

/**
 * This is a simple Logger trait that classes unable to extend AbstractLogger
 * (because they extend another class, etc) can include.
 *
 * It simply delegates all log-level-specific methods to the `log` method to
 * reduce boilerplate code that a simple Logger that does the same thing with
 * messages regardless of the error level has to implement.
 */
trait LoggerTrait
{
    /**
     * System is unusable.
     *
     * @param string $message
     * @param array  $context
     *
     * @return void
     */
    public function emergency($message, array $context = array())
    {
        $this->log(LogLevel::EMERGENCY, $message, $context);
    }

    /**
     * Action must be taken immediately.
     *
     * Example: Entire website down, database unavailable, etc. This should
     * trigger the SMS alerts and wake you up.
     *
     * @param string $message
     * @param array  $context
     *
     * @return void
     */
    public function alert($message, array $context = array())
    {
        $this->log(LogLevel::ALERT, $message, $context);
    }

    /**
     * Critical conditions.
     *
     * Example: Application component unavailable, unexpected exception.
     *
     * @param string $message
     * @param array  $context
     *
     * @return void
     */
    public function critical($message, array $context = array())
    {
        $this->log(LogLevel::CRITICAL, $message, $context);
    }

    /**
     * Runtime errors that do not require immediate action but should typically
     * be logged and monitored.
     *
     * @param string $message
     * @param array  $context
     *
     * @return void
     */
    public function error($message, array $context = array())
    {
        $this->log(LogLevel::ERROR, $message, $context);
    }

    /**
     * Exceptional occurrences that are not errors.
     *
     * Example: Use of deprecated APIs, poor use of an API, undesirable things
     * that are not necessarily wrong.
     *
     * @param string $message
     * @param array  $context
     *
     * @return void
     */
    public function warning($message, array $context = array())
    {
        $this->log(LogLevel::WARNING, $message, $context);
    }

    /**
     * Normal but significant events.
     *
     * @param string $message
     * @param array  $context
     *
     * @return void
     */
    public function notice($message, array $context = array())
    {
        $this->log(LogLevel::NOTICE, $message, $context);
    }

    /**
     * Interesting events.
     *
     * Example: User logs in, SQL logs.
     *
     * @param string $message
     * @param array  $context
     *
     * @return void
     */
    public function info($message, array $context = array())
    {
        $this->log(LogLevel::INFO, $message, $context);
    }

    /**
     * Detailed debug information.
     *
     * @param string $message
     * @param array  $context
     *
     * @return void
     */
    public function debug($message, array $context = array())
    {
        $this->log(LogLevel::DEBUG, $message, $context);
    }

    /**
     * Logs with an arbitrary level.
     *
     * @param mixed  $level
     * @param string $message
     * @param array  $context
     *
     * @return void
     *
     * @throws \Psr\Log\InvalidArgumentException
     */
    abstract public function log($level, $message, array $context = array());
}
<?php

namespace Psr\Log;

/**
 * This is a simple Logger implementation that other Loggers can inherit from.
 *
 * It simply delegates all log-level-specific methods to the `log` method to
 * reduce boilerplate code that a simple Logger that does the same thing with
 * messages regardless of the error level has to implement.
 */
abstract class AbstractLogger implements LoggerInterface
{
    /**
     * System is unusable.
     *
     * @param string $message
     * @param array  $context
     *
     * @return void
     */
    public function emergency($message, array $context = array())
    {
        $this->log(LogLevel::EMERGENCY, $message, $context);
    }

    /**
     * Action must be taken immediately.
     *
     * Example: Entire website down, database unavailable, etc. This should
     * trigger the SMS alerts and wake you up.
     *
     * @param string $message
     * @param array  $context
     *
     * @return void
     */
    public function alert($message, array $context = array())
    {
        $this->log(LogLevel::ALERT, $message, $context);
    }

    /**
     * Critical conditions.
     *
     * Example: Application component unavailable, unexpected exception.
     *
     * @param string $message
     * @param array  $context
     *
     * @return void
     */
    public function critical($message, array $context = array())
    {
        $this->log(LogLevel::CRITICAL, $message, $context);
    }

    /**
     * Runtime errors that do not require immediate action but should typically
     * be logged and monitored.
     *
     * @param string $message
     * @param array  $context
     *
     * @return void
     */
    public function error($message, array $context = array())
    {
        $this->log(LogLevel::ERROR, $message, $context);
    }

    /**
     * Exceptional occurrences that are not errors.
     *
     * Example: Use of deprecated APIs, poor use of an API, undesirable things
     * that are not necessarily wrong.
     *
     * @param string $message
     * @param array  $context
     *
     * @return void
     */
    public function warning($message, array $context = array())
    {
        $this->log(LogLevel::WARNING, $message, $context);
    }

    /**
     * Normal but significant events.
     *
     * @param string $message
     * @param array  $context
     *
     * @return void
     */
    public function notice($message, array $context = array())
    {
        $this->log(LogLevel::NOTICE, $message, $context);
    }

    /**
     * Interesting events.
     *
     * Example: User logs in, SQL logs.
     *
     * @param string $message
     * @param array  $context
     *
     * @return void
     */
    public function info($message, array $context = array())
    {
        $this->log(LogLevel::INFO, $message, $context);
    }

    /**
     * Detailed debug information.
     *
     * @param string $message
     * @param array  $context
     *
     * @return void
     */
    public function debug($message, array $context = array())
    {
        $this->log(LogLevel::DEBUG, $message, $context);
    }
}
{
    "name": "psr/log",
    "description": "Common interface for logging libraries",
    "keywords": ["psr", "psr-3", "log"],
    "homepage": "https://github.com/php-fig/log",
    "license": "MIT",
    "authors": [
        {
            "name": "PHP-FIG",
            "homepage": "http://www.php-fig.org/"
        }
    ],
    "require": {
        "php": ">=5.3.0"
    },
    "autoload": {
        "psr-4": {
            "Psr\\Log\\": "Psr/Log/"
        }
    },
    "extra": {
        "branch-alias": {
            "dev-master": "1.1.x-dev"
        }
    }
}
   Bud1           	                                                           l i n - p h                                                                                                                                                                                                                                                                                                                                                                                                                                           g r e m l i n - p h pbwspblob  bplist00	
]ShowStatusBar_SidebarWidthTenElevenOrLater[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds\SidebarWidth_PreviewPaneVisibility[ShowSidebar[ShowPathbar			_{{-1038, 421}, {770, 436}}	+JVby                                g r e m l i n - p h pvSrnlong                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            @                                              @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   E  	                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       DSDB                                 `                                                   @                                                @                                                @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              {
    "_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"
    ],
    "content-hash": "a9cdf727306f817917712c06e376af24",
    "packages": [],
    "packages-dev": [
        {
            "name": "bower-asset/bootstrap",
            "version": "v3.3.7",
            "source": {
                "type": "git",
                "url": "https://github.com/twbs/bootstrap.git",
                "reference": "0b9c4a4007c44201dce9a6cc1a38407005c26c86"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/twbs/bootstrap/zipball/0b9c4a4007c44201dce9a6cc1a38407005c26c86",
                "reference": "0b9c4a4007c44201dce9a6cc1a38407005c26c86",
                "shasum": ""
            },
            "require": {
                "bower-asset/jquery": ">=1.9.1,<4.0"
            },
            "type": "bower-asset-library",
            "extra": {
                "bower-asset-main": [
                    "less/bootstrap.less",
                    "dist/js/bootstrap.js"
                ],
                "bower-asset-ignore": [
                    "/.*",
                    "_config.yml",
                    "CNAME",
                    "composer.json",
                    "CONTRIBUTING.md",
                    "docs",
                    "js/tests",
                    "test-infra"
                ]
            },
            "license": [
                "MIT"
            ],
            "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.",
            "keywords": [
                "css",
                "framework",
                "front-end",
                "js",
                "less",
                "mobile-first",
                "responsive",
                "web"
            ]
        },
        {
            "name": "bower-asset/inputmask",
            "version": "3.3.11",
            "source": {
                "type": "git",
                "url": "https://github.com/RobinHerbots/Inputmask.git",
                "reference": "5e670ad62f50c738388d4dcec78d2888505ad77b"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/RobinHerbots/Inputmask/zipball/5e670ad62f50c738388d4dcec78d2888505ad77b",
                "reference": "5e670ad62f50c738388d4dcec78d2888505ad77b",
                "shasum": ""
            },
            "require": {
                "bower-asset/jquery": ">=1.7"
            },
            "type": "bower-asset-library",
            "extra": {
                "bower-asset-main": [
                    "./dist/inputmask/inputmask.js",
                    "./dist/inputmask/inputmask.extensions.js",
                    "./dist/inputmask/inputmask.date.extensions.js",
                    "./dist/inputmask/inputmask.numeric.extensions.js",
                    "./dist/inputmask/inputmask.phone.extensions.js",
                    "./dist/inputmask/jquery.inputmask.js",
                    "./dist/inputmask/global/document.js",
                    "./dist/inputmask/global/window.js",
                    "./dist/inputmask/phone-codes/phone.js",
                    "./dist/inputmask/phone-codes/phone-be.js",
                    "./dist/inputmask/phone-codes/phone-nl.js",
                    "./dist/inputmask/phone-codes/phone-ru.js",
                    "./dist/inputmask/phone-codes/phone-uk.js",
                    "./dist/inputmask/dependencyLibs/inputmask.dependencyLib.jqlite.js",
                    "./dist/inputmask/dependencyLibs/inputmask.dependencyLib.jquery.js",
                    "./dist/inputmask/dependencyLibs/inputmask.dependencyLib.js",
                    "./dist/inputmask/bindings/inputmask.binding.js"
                ],
                "bower-asset-ignore": [
                    "**/*",
                    "!dist/*",
                    "!dist/inputmask/*",
                    "!dist/min/*",
                    "!dist/min/inputmask/*"
                ]
            },
            "license": [
                "http://opensource.org/licenses/mit-license.php"
            ],
            "description": "Inputmask is a javascript library which creates an input mask.  Inputmask can run against vanilla javascript, jQuery and jqlite.",
            "keywords": [
                "form",
                "input",
                "inputmask",
                "jquery",
                "mask",
                "plugins"
            ]
        },
        {
            "name": "bower-asset/jquery",
            "version": "3.2.1",
            "source": {
                "type": "git",
                "url": "https://github.com/jquery/jquery-dist.git",
                "reference": "77d2a51d0520d2ee44173afdf4e40a9201f5964e"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/jquery/jquery-dist/zipball/77d2a51d0520d2ee44173afdf4e40a9201f5964e",
                "reference": "77d2a51d0520d2ee44173afdf4e40a9201f5964e",
                "shasum": ""
            },
            "type": "bower-asset-library",
            "extra": {
                "bower-asset-main": "dist/jquery.js",
                "bower-asset-ignore": [
                    "package.json"
                ]
            },
            "license": [
                "MIT"
            ],
            "keywords": [
                "browser",
                "javascript",
                "jquery",
                "library"
            ]
        },
        {
            "name": "bower-asset/punycode",
            "version": "v1.3.2",
            "source": {
                "type": "git",
                "url": "https://github.com/bestiejs/punycode.js.git",
                "reference": "38c8d3131a82567bfef18da09f7f4db68c84f8a3"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/bestiejs/punycode.js/zipball/38c8d3131a82567bfef18da09f7f4db68c84f8a3",
                "reference": "38c8d3131a82567bfef18da09f7f4db68c84f8a3",
                "shasum": ""
            },
            "type": "bower-asset-library",
            "extra": {
                "bower-asset-main": "punycode.js",
                "bower-asset-ignore": [
                    "coverage",
                    "tests",
                    ".*",
                    "component.json",
                    "Gruntfile.js",
                    "node_modules",
                    "package.json"
                ]
            }
        },
        {
            "name": "bower-asset/yii2-pjax",
            "version": "2.0.7.1",
            "source": {
                "type": "git",
                "url": "https://github.com/yiisoft/jquery-pjax.git",
                "reference": "aef7b953107264f00234902a3880eb50dafc48be"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/yiisoft/jquery-pjax/zipball/aef7b953107264f00234902a3880eb50dafc48be",
                "reference": "aef7b953107264f00234902a3880eb50dafc48be",
                "shasum": ""
            },
            "require": {
                "bower-asset/jquery": ">=1.8"
            },
            "type": "bower-asset-library",
            "extra": {
                "bower-asset-main": "./jquery.pjax.js",
                "bower-asset-ignore": [
                    ".travis.yml",
                    "Gemfile",
                    "Gemfile.lock",
                    "CONTRIBUTING.md",
                    "vendor/",
                    "script/",
                    "test/"
                ]
            },
            "license": [
                "MIT"
            ]
        },
        {
            "name": "cebe/js-search",
            "version": "0.9.3",
            "source": {
                "type": "git",
                "url": "https://github.com/cebe/js-search.git",
                "reference": "3756a8b3387f3f7e5c778b964ec681dcf110b098"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/cebe/js-search/zipball/3756a8b3387f3f7e5c778b964ec681dcf110b098",
                "reference": "3756a8b3387f3f7e5c778b964ec681dcf110b098",
                "shasum": ""
            },
            "require": {
                "php": ">=5.4.0"
            },
            "bin": [
                "bin/jsindex"
            ],
            "type": "library",
            "autoload": {
                "psr-4": {
                    "cebe\\jssearch\\": "lib/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Carsten Brandt",
                    "email": "mail@cebe.cc"
                }
            ],
            "description": "A client side search engine for use on static pages.",
            "time": "2016-11-22T12:11:39+00:00"
        },
        {
            "name": "cebe/markdown",
            "version": "1.0.3",
            "source": {
                "type": "git",
                "url": "https://github.com/cebe/markdown.git",
                "reference": "8efb4268c90add2eee0edacf503ae71f22ccc745"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/cebe/markdown/zipball/8efb4268c90add2eee0edacf503ae71f22ccc745",
                "reference": "8efb4268c90add2eee0edacf503ae71f22ccc745",
                "shasum": ""
            },
            "require": {
                "lib-pcre": "*",
                "php": ">=5.4.0"
            },
            "require-dev": {
                "cebe/indent": "*",
                "facebook/xhprof": "*@dev",
                "phpunit/phpunit": "3.7.*"
            },
            "bin": [
                "bin/markdown"
            ],
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.0.x-dev"
                }
            },
            "autoload": {
                "psr-4": {
                    "cebe\\markdown\\": ""
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Carsten Brandt",
                    "email": "mail@cebe.cc",
                    "homepage": "http://cebe.cc/",
                    "role": "Creator"
                }
            ],
            "description": "A super fast, highly extensible markdown parser for PHP",
            "homepage": "https://github.com/cebe/markdown#readme",
            "keywords": [
                "extensible",
                "fast",
                "gfm",
                "markdown",
                "markdown-extra"
            ],
            "time": "2018-03-26T11:15:02+00:00"
        },
        {
            "name": "cebe/markdown-latex",
            "version": "1.1.4",
            "source": {
                "type": "git",
                "url": "https://github.com/cebe/markdown-latex.git",
                "reference": "42eb55c6f5a8dd68a1c029755eccd73e117aaa9b"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/cebe/markdown-latex/zipball/42eb55c6f5a8dd68a1c029755eccd73e117aaa9b",
                "reference": "42eb55c6f5a8dd68a1c029755eccd73e117aaa9b",
                "shasum": ""
            },
            "require": {
                "cebe/markdown": "~1.0.0",
                "mikevanriel/text-to-latex": "~1.0.0",
                "php": ">=5.4.0"
            },
            "require-dev": {
                "phpunit/phpunit": "3.7.*"
            },
            "bin": [
                "bin/markdown-latex"
            ],
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.0.x-dev"
                }
            },
            "autoload": {
                "psr-4": {
                    "cebe\\markdown\\latex\\": ""
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Carsten Brandt",
                    "email": "mail@cebe.cc",
                    "homepage": "http://cebe.cc/",
                    "role": "Creator"
                }
            ],
            "description": "A super fast, highly extensible markdown parser for PHP, that converts markdown files into latex",
            "homepage": "https://github.com/cebe/markdown-latex#readme",
            "keywords": [
                "extensible",
                "fast",
                "gfm",
                "latex",
                "markdown",
                "markdown-extra"
            ],
            "time": "2017-05-19T11:16:33+00:00"
        },
        {
            "name": "doctrine/instantiator",
            "version": "1.0.5",
            "source": {
                "type": "git",
                "url": "https://github.com/doctrine/instantiator.git",
                "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d",
                "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3,<8.0-DEV"
            },
            "require-dev": {
                "athletic/athletic": "~0.1.8",
                "ext-pdo": "*",
                "ext-phar": "*",
                "phpunit/phpunit": "~4.0",
                "squizlabs/php_codesniffer": "~2.0"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.0.x-dev"
                }
            },
            "autoload": {
                "psr-4": {
                    "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Marco Pivetta",
                    "email": "ocramius@gmail.com",
                    "homepage": "http://ocramius.github.com/"
                }
            ],
            "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
            "homepage": "https://github.com/doctrine/instantiator",
            "keywords": [
                "constructor",
                "instantiate"
            ],
            "time": "2015-06-14T21:17:01+00:00"
        },
        {
            "name": "ezyang/htmlpurifier",
            "version": "v4.10.0",
            "source": {
                "type": "git",
                "url": "https://github.com/ezyang/htmlpurifier.git",
                "reference": "d85d39da4576a6934b72480be6978fb10c860021"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/d85d39da4576a6934b72480be6978fb10c860021",
                "reference": "d85d39da4576a6934b72480be6978fb10c860021",
                "shasum": ""
            },
            "require": {
                "php": ">=5.2"
            },
            "require-dev": {
                "simpletest/simpletest": "^1.1"
            },
            "type": "library",
            "autoload": {
                "psr-0": {
                    "HTMLPurifier": "library/"
                },
                "files": [
                    "library/HTMLPurifier.composer.php"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "LGPL"
            ],
            "authors": [
                {
                    "name": "Edward Z. Yang",
                    "email": "admin@htmlpurifier.org",
                    "homepage": "http://ezyang.com"
                }
            ],
            "description": "Standards compliant HTML filter written in PHP",
            "homepage": "http://htmlpurifier.org/",
            "keywords": [
                "html"
            ],
            "time": "2018-02-23T01:58:20+00:00"
        },
        {
            "name": "guzzlehttp/guzzle",
            "version": "6.3.2",
            "source": {
                "type": "git",
                "url": "https://github.com/guzzle/guzzle.git",
                "reference": "68d0ea14d5a3f42a20e87632a5f84931e2709c90"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/guzzle/guzzle/zipball/68d0ea14d5a3f42a20e87632a5f84931e2709c90",
                "reference": "68d0ea14d5a3f42a20e87632a5f84931e2709c90",
                "shasum": ""
            },
            "require": {
                "guzzlehttp/promises": "^1.0",
                "guzzlehttp/psr7": "^1.4",
                "php": ">=5.5"
            },
            "require-dev": {
                "ext-curl": "*",
                "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4",
                "psr/log": "^1.0"
            },
            "suggest": {
                "psr/log": "Required for using the Log middleware"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "6.3-dev"
                }
            },
            "autoload": {
                "files": [
                    "src/functions_include.php"
                ],
                "psr-4": {
                    "GuzzleHttp\\": "src/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Michael Dowling",
                    "email": "mtdowling@gmail.com",
                    "homepage": "https://github.com/mtdowling"
                }
            ],
            "description": "Guzzle is a PHP HTTP client library",
            "homepage": "http://guzzlephp.org/",
            "keywords": [
                "client",
                "curl",
                "framework",
                "http",
                "http client",
                "rest",
                "web service"
            ],
            "time": "2018-03-26T16:33:04+00:00"
        },
        {
            "name": "guzzlehttp/promises",
            "version": "v1.3.1",
            "source": {
                "type": "git",
                "url": "https://github.com/guzzle/promises.git",
                "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646",
                "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646",
                "shasum": ""
            },
            "require": {
                "php": ">=5.5.0"
            },
            "require-dev": {
                "phpunit/phpunit": "^4.0"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.4-dev"
                }
            },
            "autoload": {
                "psr-4": {
                    "GuzzleHttp\\Promise\\": "src/"
                },
                "files": [
                    "src/functions_include.php"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Michael Dowling",
                    "email": "mtdowling@gmail.com",
                    "homepage": "https://github.com/mtdowling"
                }
            ],
            "description": "Guzzle promises library",
            "keywords": [
                "promise"
            ],
            "time": "2016-12-20T10:07:11+00:00"
        },
        {
            "name": "guzzlehttp/psr7",
            "version": "1.4.2",
            "source": {
                "type": "git",
                "url": "https://github.com/guzzle/psr7.git",
                "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/guzzle/psr7/zipball/f5b8a8512e2b58b0071a7280e39f14f72e05d87c",
                "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c",
                "shasum": ""
            },
            "require": {
                "php": ">=5.4.0",
                "psr/http-message": "~1.0"
            },
            "provide": {
                "psr/http-message-implementation": "1.0"
            },
            "require-dev": {
                "phpunit/phpunit": "~4.0"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.4-dev"
                }
            },
            "autoload": {
                "psr-4": {
                    "GuzzleHttp\\Psr7\\": "src/"
                },
                "files": [
                    "src/functions_include.php"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Michael Dowling",
                    "email": "mtdowling@gmail.com",
                    "homepage": "https://github.com/mtdowling"
                },
                {
                    "name": "Tobias Schultze",
                    "homepage": "https://github.com/Tobion"
                }
            ],
            "description": "PSR-7 message implementation that also provides common utility methods",
            "keywords": [
                "http",
                "message",
                "request",
                "response",
                "stream",
                "uri",
                "url"
            ],
            "time": "2017-03-20T17:10:46+00:00"
        },
        {
            "name": "mikevanriel/text-to-latex",
            "version": "1.0.1",
            "source": {
                "type": "git",
                "url": "https://github.com/mvriel/TextToLatex.git",
                "reference": "c9f3a4d6b89f9449782455c848d5fa3dd0e216ba"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/mvriel/TextToLatex/zipball/c9f3a4d6b89f9449782455c848d5fa3dd0e216ba",
                "reference": "c9f3a4d6b89f9449782455c848d5fa3dd0e216ba",
                "shasum": ""
            },
            "require-dev": {
                "phpunit/phpunit": "~3.7"
            },
            "type": "library",
            "autoload": {
                "psr-0": {
                    "MikeVanRiel": [
                        "src/",
                        "tests/unit/"
                    ]
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Mike van Riel",
                    "email": "me@mikevanriel.com"
                }
            ],
            "description": "A converter class that converts normal ASCII text to valid LaTeX",
            "time": "2015-12-13T07:33:35+00:00"
        },
        {
            "name": "myclabs/deep-copy",
            "version": "1.7.0",
            "source": {
                "type": "git",
                "url": "https://github.com/myclabs/DeepCopy.git",
                "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e",
                "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e",
                "shasum": ""
            },
            "require": {
                "php": "^5.6 || ^7.0"
            },
            "require-dev": {
                "doctrine/collections": "^1.0",
                "doctrine/common": "^2.6",
                "phpunit/phpunit": "^4.1"
            },
            "type": "library",
            "autoload": {
                "psr-4": {
                    "DeepCopy\\": "src/DeepCopy/"
                },
                "files": [
                    "src/DeepCopy/deep_copy.php"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "description": "Create deep copies (clones) of your objects",
            "keywords": [
                "clone",
                "copy",
                "duplicate",
                "object",
                "object graph"
            ],
            "time": "2017-10-19T19:58:43+00:00"
        },
        {
            "name": "nikic/php-parser",
            "version": "v1.4.1",
            "source": {
                "type": "git",
                "url": "https://github.com/nikic/PHP-Parser.git",
                "reference": "f78af2c9c86107aa1a34cd1dbb5bbe9eeb0d9f51"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/f78af2c9c86107aa1a34cd1dbb5bbe9eeb0d9f51",
                "reference": "f78af2c9c86107aa1a34cd1dbb5bbe9eeb0d9f51",
                "shasum": ""
            },
            "require": {
                "ext-tokenizer": "*",
                "php": ">=5.3"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.4-dev"
                }
            },
            "autoload": {
                "files": [
                    "lib/bootstrap.php"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Nikita Popov"
                }
            ],
            "description": "A PHP parser written in PHP",
            "keywords": [
                "parser",
                "php"
            ],
            "time": "2015-09-19T14:15:08+00:00"
        },
        {
            "name": "phar-io/manifest",
            "version": "1.0.1",
            "source": {
                "type": "git",
                "url": "https://github.com/phar-io/manifest.git",
                "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/phar-io/manifest/zipball/2df402786ab5368a0169091f61a7c1e0eb6852d0",
                "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0",
                "shasum": ""
            },
            "require": {
                "ext-dom": "*",
                "ext-phar": "*",
                "phar-io/version": "^1.0.1",
                "php": "^5.6 || ^7.0"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.0.x-dev"
                }
            },
            "autoload": {
                "classmap": [
                    "src/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Arne Blankerts",
                    "email": "arne@blankerts.de",
                    "role": "Developer"
                },
                {
                    "name": "Sebastian Heuer",
                    "email": "sebastian@phpeople.de",
                    "role": "Developer"
                },
                {
                    "name": "Sebastian Bergmann",
                    "email": "sebastian@phpunit.de",
                    "role": "Developer"
                }
            ],
            "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
            "time": "2017-03-05T18:14:27+00:00"
        },
        {
            "name": "phar-io/version",
            "version": "1.0.1",
            "source": {
                "type": "git",
                "url": "https://github.com/phar-io/version.git",
                "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/phar-io/version/zipball/a70c0ced4be299a63d32fa96d9281d03e94041df",
                "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df",
                "shasum": ""
            },
            "require": {
                "php": "^5.6 || ^7.0"
            },
            "type": "library",
            "autoload": {
                "classmap": [
                    "src/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Arne Blankerts",
                    "email": "arne@blankerts.de",
                    "role": "Developer"
                },
                {
                    "name": "Sebastian Heuer",
                    "email": "sebastian@phpeople.de",
                    "role": "Developer"
                },
                {
                    "name": "Sebastian Bergmann",
                    "email": "sebastian@phpunit.de",
                    "role": "Developer"
                }
            ],
            "description": "Library for handling version information and constraints",
            "time": "2017-03-05T17:38:23+00:00"
        },
        {
            "name": "phpdocumentor/reflection",
            "version": "3.0.1",
            "source": {
                "type": "git",
                "url": "https://github.com/phpDocumentor/Reflection.git",
                "reference": "793bfd92d9a0fc96ae9608fb3e947c3f59fb3a0d"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/phpDocumentor/Reflection/zipball/793bfd92d9a0fc96ae9608fb3e947c3f59fb3a0d",
                "reference": "793bfd92d9a0fc96ae9608fb3e947c3f59fb3a0d",
                "shasum": ""
            },
            "require": {
                "nikic/php-parser": "^1.0",
                "php": ">=5.3.3",
                "phpdocumentor/reflection-docblock": "~2.0",
                "psr/log": "~1.0"
            },
            "require-dev": {
                "behat/behat": "~2.4",
                "mockery/mockery": "~0.8",
                "phpunit/phpunit": "~4.0"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.0.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "phpDocumentor": [
                        "src/",
                        "tests/unit/",
                        "tests/mocks/"
                    ]
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "description": "Reflection library to do Static Analysis for PHP Projects",
            "homepage": "http://www.phpdoc.org",
            "keywords": [
                "phpDocumentor",
                "phpdoc",
                "reflection",
                "static analysis"
            ],
            "time": "2016-05-21T08:42:32+00:00"
        },
        {
            "name": "phpdocumentor/reflection-docblock",
            "version": "2.0.5",
            "source": {
                "type": "git",
                "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
                "reference": "e6a969a640b00d8daa3c66518b0405fb41ae0c4b"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/e6a969a640b00d8daa3c66518b0405fb41ae0c4b",
                "reference": "e6a969a640b00d8daa3c66518b0405fb41ae0c4b",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.3"
            },
            "require-dev": {
                "phpunit/phpunit": "~4.0"
            },
            "suggest": {
                "dflydev/markdown": "~1.0",
                "erusev/parsedown": "~1.0"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "2.0.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "phpDocumentor": [
                        "src/"
                    ]
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Mike van Riel",
                    "email": "mike.vanriel@naenius.com"
                }
            ],
            "time": "2016-01-25T08:17:30+00:00"
        },
        {
            "name": "phpspec/prophecy",
            "version": "1.7.5",
            "source": {
                "type": "git",
                "url": "https://github.com/phpspec/prophecy.git",
                "reference": "dfd6be44111a7c41c2e884a336cc4f461b3b2401"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/phpspec/prophecy/zipball/dfd6be44111a7c41c2e884a336cc4f461b3b2401",
                "reference": "dfd6be44111a7c41c2e884a336cc4f461b3b2401",
                "shasum": ""
            },
            "require": {
                "doctrine/instantiator": "^1.0.2",
                "php": "^5.3|^7.0",
                "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0",
                "sebastian/comparator": "^1.1|^2.0",
                "sebastian/recursion-context": "^1.0|^2.0|^3.0"
            },
            "require-dev": {
                "phpspec/phpspec": "^2.5|^3.2",
                "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.7.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Prophecy\\": "src/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Konstantin Kudryashov",
                    "email": "ever.zet@gmail.com",
                    "homepage": "http://everzet.com"
                },
                {
                    "name": "Marcello Duarte",
                    "email": "marcello.duarte@gmail.com"
                }
            ],
            "description": "Highly opinionated mocking framework for PHP 5.3+",
            "homepage": "https://github.com/phpspec/prophecy",
            "keywords": [
                "Double",
                "Dummy",
                "fake",
                "mock",
                "spy",
                "stub"
            ],
            "time": "2018-02-19T10:16:54+00:00"
        },
        {
            "name": "phpunit/php-code-coverage",
            "version": "5.3.2",
            "source": {
                "type": "git",
                "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
                "reference": "c89677919c5dd6d3b3852f230a663118762218ac"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/c89677919c5dd6d3b3852f230a663118762218ac",
                "reference": "c89677919c5dd6d3b3852f230a663118762218ac",
                "shasum": ""
            },
            "require": {
                "ext-dom": "*",
                "ext-xmlwriter": "*",
                "php": "^7.0",
                "phpunit/php-file-iterator": "^1.4.2",
                "phpunit/php-text-template": "^1.2.1",
                "phpunit/php-token-stream": "^2.0.1",
                "sebastian/code-unit-reverse-lookup": "^1.0.1",
                "sebastian/environment": "^3.0",
                "sebastian/version": "^2.0.1",
                "theseer/tokenizer": "^1.1"
            },
            "require-dev": {
                "phpunit/phpunit": "^6.0"
            },
            "suggest": {
                "ext-xdebug": "^2.5.5"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "5.3.x-dev"
                }
            },
            "autoload": {
                "classmap": [
                    "src/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Sebastian Bergmann",
                    "email": "sebastian@phpunit.de",
                    "role": "lead"
                }
            ],
            "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
            "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
            "keywords": [
                "coverage",
                "testing",
                "xunit"
            ],
            "time": "2018-04-06T15:36:58+00:00"
        },
        {
            "name": "phpunit/php-file-iterator",
            "version": "1.4.5",
            "source": {
                "type": "git",
                "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
                "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4",
                "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.3"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.4.x-dev"
                }
            },
            "autoload": {
                "classmap": [
                    "src/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Sebastian Bergmann",
                    "email": "sb@sebastian-bergmann.de",
                    "role": "lead"
                }
            ],
            "description": "FilterIterator implementation that filters files based on a list of suffixes.",
            "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
            "keywords": [
                "filesystem",
                "iterator"
            ],
            "time": "2017-11-27T13:52:08+00:00"
        },
        {
            "name": "phpunit/php-text-template",
            "version": "1.2.1",
            "source": {
                "type": "git",
                "url": "https://github.com/sebastianbergmann/php-text-template.git",
                "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
                "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.3"
            },
            "type": "library",
            "autoload": {
                "classmap": [
                    "src/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Sebastian Bergmann",
                    "email": "sebastian@phpunit.de",
                    "role": "lead"
                }
            ],
            "description": "Simple template engine.",
            "homepage": "https://github.com/sebastianbergmann/php-text-template/",
            "keywords": [
                "template"
            ],
            "time": "2015-06-21T13:50:34+00:00"
        },
        {
            "name": "phpunit/php-timer",
            "version": "1.0.9",
            "source": {
                "type": "git",
                "url": "https://github.com/sebastianbergmann/php-timer.git",
                "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
                "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
                "shasum": ""
            },
            "require": {
                "php": "^5.3.3 || ^7.0"
            },
            "require-dev": {
                "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.0-dev"
                }
            },
            "autoload": {
                "classmap": [
                    "src/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Sebastian Bergmann",
                    "email": "sb@sebastian-bergmann.de",
                    "role": "lead"
                }
            ],
            "description": "Utility class for timing",
            "homepage": "https://github.com/sebastianbergmann/php-timer/",
            "keywords": [
                "timer"
            ],
            "time": "2017-02-26T11:10:40+00:00"
        },
        {
            "name": "phpunit/php-token-stream",
            "version": "2.0.2",
            "source": {
                "type": "git",
                "url": "https://github.com/sebastianbergmann/php-token-stream.git",
                "reference": "791198a2c6254db10131eecfe8c06670700904db"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/791198a2c6254db10131eecfe8c06670700904db",
                "reference": "791198a2c6254db10131eecfe8c06670700904db",
                "shasum": ""
            },
            "require": {
                "ext-tokenizer": "*",
                "php": "^7.0"
            },
            "require-dev": {
                "phpunit/phpunit": "^6.2.4"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "2.0-dev"
                }
            },
            "autoload": {
                "classmap": [
                    "src/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Sebastian Bergmann",
                    "email": "sebastian@phpunit.de"
                }
            ],
            "description": "Wrapper around PHP's tokenizer extension.",
            "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
            "keywords": [
                "tokenizer"
            ],
            "time": "2017-11-27T05:48:46+00:00"
        },
        {
            "name": "phpunit/phpunit",
            "version": "6.5.8",
            "source": {
                "type": "git",
                "url": "https://github.com/sebastianbergmann/phpunit.git",
                "reference": "4f21a3c6b97c42952fd5c2837bb354ec0199b97b"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/4f21a3c6b97c42952fd5c2837bb354ec0199b97b",
                "reference": "4f21a3c6b97c42952fd5c2837bb354ec0199b97b",
                "shasum": ""
            },
            "require": {
                "ext-dom": "*",
                "ext-json": "*",
                "ext-libxml": "*",
                "ext-mbstring": "*",
                "ext-xml": "*",
                "myclabs/deep-copy": "^1.6.1",
                "phar-io/manifest": "^1.0.1",
                "phar-io/version": "^1.0",
                "php": "^7.0",
                "phpspec/prophecy": "^1.7",
                "phpunit/php-code-coverage": "^5.3",
                "phpunit/php-file-iterator": "^1.4.3",
                "phpunit/php-text-template": "^1.2.1",
                "phpunit/php-timer": "^1.0.9",
                "phpunit/phpunit-mock-objects": "^5.0.5",
                "sebastian/comparator": "^2.1",
                "sebastian/diff": "^2.0",
                "sebastian/environment": "^3.1",
                "sebastian/exporter": "^3.1",
                "sebastian/global-state": "^2.0",
                "sebastian/object-enumerator": "^3.0.3",
                "sebastian/resource-operations": "^1.0",
                "sebastian/version": "^2.0.1"
            },
            "conflict": {
                "phpdocumentor/reflection-docblock": "3.0.2",
                "phpunit/dbunit": "<3.0"
            },
            "require-dev": {
                "ext-pdo": "*"
            },
            "suggest": {
                "ext-xdebug": "*",
                "phpunit/php-invoker": "^1.1"
            },
            "bin": [
                "phpunit"
            ],
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "6.5.x-dev"
                }
            },
            "autoload": {
                "classmap": [
                    "src/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Sebastian Bergmann",
                    "email": "sebastian@phpunit.de",
                    "role": "lead"
                }
            ],
            "description": "The PHP Unit Testing framework.",
            "homepage": "https://phpunit.de/",
            "keywords": [
                "phpunit",
                "testing",
                "xunit"
            ],
            "time": "2018-04-10T11:38:34+00:00"
        },
        {
            "name": "phpunit/phpunit-mock-objects",
            "version": "5.0.6",
            "source": {
                "type": "git",
                "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
                "reference": "33fd41a76e746b8fa96d00b49a23dadfa8334cdf"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/33fd41a76e746b8fa96d00b49a23dadfa8334cdf",
                "reference": "33fd41a76e746b8fa96d00b49a23dadfa8334cdf",
                "shasum": ""
            },
            "require": {
                "doctrine/instantiator": "^1.0.5",
                "php": "^7.0",
                "phpunit/php-text-template": "^1.2.1",
                "sebastian/exporter": "^3.1"
            },
            "conflict": {
                "phpunit/phpunit": "<6.0"
            },
            "require-dev": {
                "phpunit/phpunit": "^6.5"
            },
            "suggest": {
                "ext-soap": "*"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "5.0.x-dev"
                }
            },
            "autoload": {
                "classmap": [
                    "src/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Sebastian Bergmann",
                    "email": "sebastian@phpunit.de",
                    "role": "lead"
                }
            ],
            "description": "Mock Object library for PHPUnit",
            "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
            "keywords": [
                "mock",
                "xunit"
            ],
            "time": "2018-01-06T05:45:45+00:00"
        },
        {
            "name": "psr/http-message",
            "version": "1.0.1",
            "source": {
                "type": "git",
                "url": "https://github.com/php-fig/http-message.git",
                "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
                "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.0"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.0.x-dev"
                }
            },
            "autoload": {
                "psr-4": {
                    "Psr\\Http\\Message\\": "src/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "PHP-FIG",
                    "homepage": "http://www.php-fig.org/"
                }
            ],
            "description": "Common interface for HTTP messages",
            "homepage": "https://github.com/php-fig/http-message",
            "keywords": [
                "http",
                "http-message",
                "psr",
                "psr-7",
                "request",
                "response"
            ],
            "time": "2016-08-06T14:39:51+00:00"
        },
        {
            "name": "psr/log",
            "version": "1.0.2",
            "source": {
                "type": "git",
                "url": "https://github.com/php-fig/log.git",
                "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
                "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.0"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.0.x-dev"
                }
            },
            "autoload": {
                "psr-4": {
                    "Psr\\Log\\": "Psr/Log/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "PHP-FIG",
                    "homepage": "http://www.php-fig.org/"
                }
            ],
            "description": "Common interface for logging libraries",
            "homepage": "https://github.com/php-fig/log",
            "keywords": [
                "log",
                "psr",
                "psr-3"
            ],
            "time": "2016-10-10T12:19:37+00:00"
        },
        {
            "name": "satooshi/php-coveralls",
            "version": "v2.0.0",
            "source": {
                "type": "git",
                "url": "https://github.com/php-coveralls/php-coveralls.git",
                "reference": "3eaf7eb689cdf6b86801a3843940d974dc657068"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/php-coveralls/php-coveralls/zipball/3eaf7eb689cdf6b86801a3843940d974dc657068",
                "reference": "3eaf7eb689cdf6b86801a3843940d974dc657068",
                "shasum": ""
            },
            "require": {
                "ext-json": "*",
                "ext-simplexml": "*",
                "guzzlehttp/guzzle": "^6.0",
                "php": "^5.5 || ^7.0",
                "psr/log": "^1.0",
                "symfony/config": "^2.1 || ^3.0 || ^4.0",
                "symfony/console": "^2.1 || ^3.0 || ^4.0",
                "symfony/stopwatch": "^2.0 || ^3.0 || ^4.0",
                "symfony/yaml": "^2.0 || ^3.0 || ^4.0"
            },
            "require-dev": {
                "phpunit/phpunit": "^4.8.35 || ^5.4.3 || ^6.0"
            },
            "suggest": {
                "symfony/http-kernel": "Allows Symfony integration"
            },
            "bin": [
                "bin/php-coveralls"
            ],
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "2.0-dev"
                }
            },
            "autoload": {
                "psr-4": {
                    "PhpCoveralls\\": "src/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Kitamura Satoshi",
                    "email": "with.no.parachute@gmail.com",
                    "homepage": "https://www.facebook.com/satooshi.jp",
                    "role": "Original creator"
                },
                {
                    "name": "Takashi Matsuo",
                    "email": "tmatsuo@google.com"
                },
                {
                    "name": "Google Inc"
                },
                {
                    "name": "Dariusz Ruminski",
                    "email": "dariusz.ruminski@gmail.com",
                    "homepage": "https://github.com/keradus"
                },
                {
                    "name": "Contributors",
                    "homepage": "https://github.com/php-coveralls/php-coveralls/graphs/contributors"
                }
            ],
            "description": "PHP client library for Coveralls API",
            "homepage": "https://github.com/php-coveralls/php-coveralls",
            "keywords": [
                "ci",
                "coverage",
                "github",
                "test"
            ],
            "time": "2017-12-08T14:28:16+00:00"
        },
        {
            "name": "scrivo/highlight.php",
            "version": "v8.9.1",
            "source": {
                "type": "git",
                "url": "https://github.com/scrivo/highlight.php.git",
                "reference": "d861aee53999963aed4b742cfe21181bec178f35"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/scrivo/highlight.php/zipball/d861aee53999963aed4b742cfe21181bec178f35",
                "reference": "d861aee53999963aed4b742cfe21181bec178f35",
                "shasum": ""
            },
            "type": "library",
            "autoload": {
                "psr-0": {
                    "Highlight\\": ""
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "description": "Server side syntax highlighter that supports over 90 languages. It's a PHP port of highlight.js",
            "keywords": [
                "code",
                "highlight",
                "highlight.js",
                "highlight.php",
                "syntax"
            ],
            "time": "2015-12-31T20:33:22+00:00"
        },
        {
            "name": "sebastian/code-unit-reverse-lookup",
            "version": "1.0.1",
            "source": {
                "type": "git",
                "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
                "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
                "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
                "shasum": ""
            },
            "require": {
                "php": "^5.6 || ^7.0"
            },
            "require-dev": {
                "phpunit/phpunit": "^5.7 || ^6.0"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.0.x-dev"
                }
            },
            "autoload": {
                "classmap": [
                    "src/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Sebastian Bergmann",
                    "email": "sebastian@phpunit.de"
                }
            ],
            "description": "Looks up which function or method a line of code belongs to",
            "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
            "time": "2017-03-04T06:30:41+00:00"
        },
        {
            "name": "sebastian/comparator",
            "version": "2.1.3",
            "source": {
                "type": "git",
                "url": "https://github.com/sebastianbergmann/comparator.git",
                "reference": "34369daee48eafb2651bea869b4b15d75ccc35f9"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/34369daee48eafb2651bea869b4b15d75ccc35f9",
                "reference": "34369daee48eafb2651bea869b4b15d75ccc35f9",
                "shasum": ""
            },
            "require": {
                "php": "^7.0",
                "sebastian/diff": "^2.0 || ^3.0",
                "sebastian/exporter": "^3.1"
            },
            "require-dev": {
                "phpunit/phpunit": "^6.4"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "2.1.x-dev"
                }
            },
            "autoload": {
                "classmap": [
                    "src/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Jeff Welch",
                    "email": "whatthejeff@gmail.com"
                },
                {
                    "name": "Volker Dusch",
                    "email": "github@wallbash.com"
                },
                {
                    "name": "Bernhard Schussek",
                    "email": "bschussek@2bepublished.at"
                },
                {
                    "name": "Sebastian Bergmann",
                    "email": "sebastian@phpunit.de"
                }
            ],
            "description": "Provides the functionality to compare PHP values for equality",
            "homepage": "https://github.com/sebastianbergmann/comparator",
            "keywords": [
                "comparator",
                "compare",
                "equality"
            ],
            "time": "2018-02-01T13:46:46+00:00"
        },
        {
            "name": "sebastian/diff",
            "version": "2.0.1",
            "source": {
                "type": "git",
                "url": "https://github.com/sebastianbergmann/diff.git",
                "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/347c1d8b49c5c3ee30c7040ea6fc446790e6bddd",
                "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd",
                "shasum": ""
            },
            "require": {
                "php": "^7.0"
            },
            "require-dev": {
                "phpunit/phpunit": "^6.2"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "2.0-dev"
                }
            },
            "autoload": {
                "classmap": [
                    "src/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Kore Nordmann",
                    "email": "mail@kore-nordmann.de"
                },
                {
                    "name": "Sebastian Bergmann",
                    "email": "sebastian@phpunit.de"
                }
            ],
            "description": "Diff implementation",
            "homepage": "https://github.com/sebastianbergmann/diff",
            "keywords": [
                "diff"
            ],
            "time": "2017-08-03T08:09:46+00:00"
        },
        {
            "name": "sebastian/environment",
            "version": "3.1.0",
            "source": {
                "type": "git",
                "url": "https://github.com/sebastianbergmann/environment.git",
                "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/cd0871b3975fb7fc44d11314fd1ee20925fce4f5",
                "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5",
                "shasum": ""
            },
            "require": {
                "php": "^7.0"
            },
            "require-dev": {
                "phpunit/phpunit": "^6.1"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "3.1.x-dev"
                }
            },
            "autoload": {
                "classmap": [
                    "src/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Sebastian Bergmann",
                    "email": "sebastian@phpunit.de"
                }
            ],
            "description": "Provides functionality to handle HHVM/PHP environments",
            "homepage": "http://www.github.com/sebastianbergmann/environment",
            "keywords": [
                "Xdebug",
                "environment",
                "hhvm"
            ],
            "time": "2017-07-01T08:51:00+00:00"
        },
        {
            "name": "sebastian/exporter",
            "version": "3.1.0",
            "source": {
                "type": "git",
                "url": "https://github.com/sebastianbergmann/exporter.git",
                "reference": "234199f4528de6d12aaa58b612e98f7d36adb937"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/234199f4528de6d12aaa58b612e98f7d36adb937",
                "reference": "234199f4528de6d12aaa58b612e98f7d36adb937",
                "shasum": ""
            },
            "require": {
                "php": "^7.0",
                "sebastian/recursion-context": "^3.0"
            },
            "require-dev": {
                "ext-mbstring": "*",
                "phpunit/phpunit": "^6.0"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "3.1.x-dev"
                }
            },
            "autoload": {
                "classmap": [
                    "src/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Jeff Welch",
                    "email": "whatthejeff@gmail.com"
                },
                {
                    "name": "Volker Dusch",
                    "email": "github@wallbash.com"
                },
                {
                    "name": "Bernhard Schussek",
                    "email": "bschussek@2bepublished.at"
                },
                {
                    "name": "Sebastian Bergmann",
                    "email": "sebastian@phpunit.de"
                },
                {
                    "name": "Adam Harvey",
                    "email": "aharvey@php.net"
                }
            ],
            "description": "Provides the functionality to export PHP variables for visualization",
            "homepage": "http://www.github.com/sebastianbergmann/exporter",
            "keywords": [
                "export",
                "exporter"
            ],
            "time": "2017-04-03T13:19:02+00:00"
        },
        {
            "name": "sebastian/global-state",
            "version": "2.0.0",
            "source": {
                "type": "git",
                "url": "https://github.com/sebastianbergmann/global-state.git",
                "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4",
                "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4",
                "shasum": ""
            },
            "require": {
                "php": "^7.0"
            },
            "require-dev": {
                "phpunit/phpunit": "^6.0"
            },
            "suggest": {
                "ext-uopz": "*"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "2.0-dev"
                }
            },
            "autoload": {
                "classmap": [
                    "src/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Sebastian Bergmann",
                    "email": "sebastian@phpunit.de"
                }
            ],
            "description": "Snapshotting of global state",
            "homepage": "http://www.github.com/sebastianbergmann/global-state",
            "keywords": [
                "global state"
            ],
            "time": "2017-04-27T15:39:26+00:00"
        },
        {
            "name": "sebastian/object-enumerator",
            "version": "3.0.3",
            "source": {
                "type": "git",
                "url": "https://github.com/sebastianbergmann/object-enumerator.git",
                "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5",
                "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5",
                "shasum": ""
            },
            "require": {
                "php": "^7.0",
                "sebastian/object-reflector": "^1.1.1",
                "sebastian/recursion-context": "^3.0"
            },
            "require-dev": {
                "phpunit/phpunit": "^6.0"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "3.0.x-dev"
                }
            },
            "autoload": {
                "classmap": [
                    "src/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Sebastian Bergmann",
                    "email": "sebastian@phpunit.de"
                }
            ],
            "description": "Traverses array structures and object graphs to enumerate all referenced objects",
            "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
            "time": "2017-08-03T12:35:26+00:00"
        },
        {
            "name": "sebastian/object-reflector",
            "version": "1.1.1",
            "source": {
                "type": "git",
                "url": "https://github.com/sebastianbergmann/object-reflector.git",
                "reference": "773f97c67f28de00d397be301821b06708fca0be"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be",
                "reference": "773f97c67f28de00d397be301821b06708fca0be",
                "shasum": ""
            },
            "require": {
                "php": "^7.0"
            },
            "require-dev": {
                "phpunit/phpunit": "^6.0"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.1-dev"
                }
            },
            "autoload": {
                "classmap": [
                    "src/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Sebastian Bergmann",
                    "email": "sebastian@phpunit.de"
                }
            ],
            "description": "Allows reflection of object attributes, including inherited and non-public ones",
            "homepage": "https://github.com/sebastianbergmann/object-reflector/",
            "time": "2017-03-29T09:07:27+00:00"
        },
        {
            "name": "sebastian/recursion-context",
            "version": "3.0.0",
            "source": {
                "type": "git",
                "url": "https://github.com/sebastianbergmann/recursion-context.git",
                "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8",
                "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8",
                "shasum": ""
            },
            "require": {
                "php": "^7.0"
            },
            "require-dev": {
                "phpunit/phpunit": "^6.0"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "3.0.x-dev"
                }
            },
            "autoload": {
                "classmap": [
                    "src/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Jeff Welch",
                    "email": "whatthejeff@gmail.com"
                },
                {
                    "name": "Sebastian Bergmann",
                    "email": "sebastian@phpunit.de"
                },
                {
                    "name": "Adam Harvey",
                    "email": "aharvey@php.net"
                }
            ],
            "description": "Provides functionality to recursively process PHP variables",
            "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
            "time": "2017-03-03T06:23:57+00:00"
        },
        {
            "name": "sebastian/resource-operations",
            "version": "1.0.0",
            "source": {
                "type": "git",
                "url": "https://github.com/sebastianbergmann/resource-operations.git",
                "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
                "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
                "shasum": ""
            },
            "require": {
                "php": ">=5.6.0"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.0.x-dev"
                }
            },
            "autoload": {
                "classmap": [
                    "src/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Sebastian Bergmann",
                    "email": "sebastian@phpunit.de"
                }
            ],
            "description": "Provides a list of PHP built-in functions that operate on resources",
            "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
            "time": "2015-07-28T20:34:47+00:00"
        },
        {
            "name": "sebastian/version",
            "version": "2.0.1",
            "source": {
                "type": "git",
                "url": "https://github.com/sebastianbergmann/version.git",
                "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019",
                "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019",
                "shasum": ""
            },
            "require": {
                "php": ">=5.6"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "2.0.x-dev"
                }
            },
            "autoload": {
                "classmap": [
                    "src/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Sebastian Bergmann",
                    "email": "sebastian@phpunit.de",
                    "role": "lead"
                }
            ],
            "description": "Library that helps with managing the version number of Git-hosted PHP projects",
            "homepage": "https://github.com/sebastianbergmann/version",
            "time": "2016-10-03T07:35:21+00:00"
        },
        {
            "name": "symfony/config",
            "version": "v3.4.8",
            "source": {
                "type": "git",
                "url": "https://github.com/symfony/config.git",
                "reference": "7c2a9d44f4433863e9bca682e7f03609234657f9"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/symfony/config/zipball/7c2a9d44f4433863e9bca682e7f03609234657f9",
                "reference": "7c2a9d44f4433863e9bca682e7f03609234657f9",
                "shasum": ""
            },
            "require": {
                "php": "^5.5.9|>=7.0.8",
                "symfony/filesystem": "~2.8|~3.0|~4.0"
            },
            "conflict": {
                "symfony/dependency-injection": "<3.3",
                "symfony/finder": "<3.3"
            },
            "require-dev": {
                "symfony/dependency-injection": "~3.3|~4.0",
                "symfony/event-dispatcher": "~3.3|~4.0",
                "symfony/finder": "~3.3|~4.0",
                "symfony/yaml": "~3.0|~4.0"
            },
            "suggest": {
                "symfony/yaml": "To use the yaml reference dumper"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "3.4-dev"
                }
            },
            "autoload": {
                "psr-4": {
                    "Symfony\\Component\\Config\\": ""
                },
                "exclude-from-classmap": [
                    "/Tests/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Fabien Potencier",
                    "email": "fabien@symfony.com"
                },
                {
                    "name": "Symfony Community",
                    "homepage": "https://symfony.com/contributors"
                }
            ],
            "description": "Symfony Config Component",
            "homepage": "https://symfony.com",
            "time": "2018-03-19T22:32:39+00:00"
        },
        {
            "name": "symfony/console",
            "version": "v3.4.8",
            "source": {
                "type": "git",
                "url": "https://github.com/symfony/console.git",
                "reference": "d4bb70fa24d540c309d88a9d6e43fb2d339b1fbf"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/symfony/console/zipball/d4bb70fa24d540c309d88a9d6e43fb2d339b1fbf",
                "reference": "d4bb70fa24d540c309d88a9d6e43fb2d339b1fbf",
                "shasum": ""
            },
            "require": {
                "php": "^5.5.9|>=7.0.8",
                "symfony/debug": "~2.8|~3.0|~4.0",
                "symfony/polyfill-mbstring": "~1.0"
            },
            "conflict": {
                "symfony/dependency-injection": "<3.4",
                "symfony/process": "<3.3"
            },
            "require-dev": {
                "psr/log": "~1.0",
                "symfony/config": "~3.3|~4.0",
                "symfony/dependency-injection": "~3.4|~4.0",
                "symfony/event-dispatcher": "~2.8|~3.0|~4.0",
                "symfony/lock": "~3.4|~4.0",
                "symfony/process": "~3.3|~4.0"
            },
            "suggest": {
                "psr/log": "For using the console logger",
                "symfony/event-dispatcher": "",
                "symfony/lock": "",
                "symfony/process": ""
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "3.4-dev"
                }
            },
            "autoload": {
                "psr-4": {
                    "Symfony\\Component\\Console\\": ""
                },
                "exclude-from-classmap": [
                    "/Tests/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Fabien Potencier",
                    "email": "fabien@symfony.com"
                },
                {
                    "name": "Symfony Community",
                    "homepage": "https://symfony.com/contributors"
                }
            ],
            "description": "Symfony Console Component",
            "homepage": "https://symfony.com",
            "time": "2018-04-03T05:22:50+00:00"
        },
        {
            "name": "symfony/debug",
            "version": "v3.4.8",
            "source": {
                "type": "git",
                "url": "https://github.com/symfony/debug.git",
                "reference": "9cf7c2271cfb89ef9727db1b740ca77be57bf9d7"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/symfony/debug/zipball/9cf7c2271cfb89ef9727db1b740ca77be57bf9d7",
                "reference": "9cf7c2271cfb89ef9727db1b740ca77be57bf9d7",
                "shasum": ""
            },
            "require": {
                "php": "^5.5.9|>=7.0.8",
                "psr/log": "~1.0"
            },
            "conflict": {
                "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2"
            },
            "require-dev": {
                "symfony/http-kernel": "~2.8|~3.0|~4.0"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "3.4-dev"
                }
            },
            "autoload": {
                "psr-4": {
                    "Symfony\\Component\\Debug\\": ""
                },
                "exclude-from-classmap": [
                    "/Tests/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Fabien Potencier",
                    "email": "fabien@symfony.com"
                },
                {
                    "name": "Symfony Community",
                    "homepage": "https://symfony.com/contributors"
                }
            ],
            "description": "Symfony Debug Component",
            "homepage": "https://symfony.com",
            "time": "2018-04-03T05:22:50+00:00"
        },
        {
            "name": "symfony/filesystem",
            "version": "v3.4.8",
            "source": {
                "type": "git",
                "url": "https://github.com/symfony/filesystem.git",
                "reference": "253a4490b528597aa14d2bf5aeded6f5e5e4a541"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/symfony/filesystem/zipball/253a4490b528597aa14d2bf5aeded6f5e5e4a541",
                "reference": "253a4490b528597aa14d2bf5aeded6f5e5e4a541",
                "shasum": ""
            },
            "require": {
                "php": "^5.5.9|>=7.0.8"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "3.4-dev"
                }
            },
            "autoload": {
                "psr-4": {
                    "Symfony\\Component\\Filesystem\\": ""
                },
                "exclude-from-classmap": [
                    "/Tests/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Fabien Potencier",
                    "email": "fabien@symfony.com"
                },
                {
                    "name": "Symfony Community",
                    "homepage": "https://symfony.com/contributors"
                }
            ],
            "description": "Symfony Filesystem Component",
            "homepage": "https://symfony.com",
            "time": "2018-02-22T10:48:49+00:00"
        },
        {
            "name": "symfony/polyfill-mbstring",
            "version": "v1.7.0",
            "source": {
                "type": "git",
                "url": "https://github.com/symfony/polyfill-mbstring.git",
                "reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/78be803ce01e55d3491c1397cf1c64beb9c1b63b",
                "reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.3"
            },
            "suggest": {
                "ext-mbstring": "For best performance"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.7-dev"
                }
            },
            "autoload": {
                "psr-4": {
                    "Symfony\\Polyfill\\Mbstring\\": ""
                },
                "files": [
                    "bootstrap.php"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Nicolas Grekas",
                    "email": "p@tchwork.com"
                },
                {
                    "name": "Symfony Community",
                    "homepage": "https://symfony.com/contributors"
                }
            ],
            "description": "Symfony polyfill for the Mbstring extension",
            "homepage": "https://symfony.com",
            "keywords": [
                "compatibility",
                "mbstring",
                "polyfill",
                "portable",
                "shim"
            ],
            "time": "2018-01-30T19:27:44+00:00"
        },
        {
            "name": "symfony/stopwatch",
            "version": "v3.4.8",
            "source": {
                "type": "git",
                "url": "https://github.com/symfony/stopwatch.git",
                "reference": "eb17cfa072cab26537ac37e9c4ece6c0361369af"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/symfony/stopwatch/zipball/eb17cfa072cab26537ac37e9c4ece6c0361369af",
                "reference": "eb17cfa072cab26537ac37e9c4ece6c0361369af",
                "shasum": ""
            },
            "require": {
                "php": "^5.5.9|>=7.0.8"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "3.4-dev"
                }
            },
            "autoload": {
                "psr-4": {
                    "Symfony\\Component\\Stopwatch\\": ""
                },
                "exclude-from-classmap": [
                    "/Tests/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Fabien Potencier",
                    "email": "fabien@symfony.com"
                },
                {
                    "name": "Symfony Community",
                    "homepage": "https://symfony.com/contributors"
                }
            ],
            "description": "Symfony Stopwatch Component",
            "homepage": "https://symfony.com",
            "time": "2018-02-17T14:55:25+00:00"
        },
        {
            "name": "symfony/yaml",
            "version": "v3.4.8",
            "source": {
                "type": "git",
                "url": "https://github.com/symfony/yaml.git",
                "reference": "a42f9da85c7c38d59f5e53f076fe81a091f894d0"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/symfony/yaml/zipball/a42f9da85c7c38d59f5e53f076fe81a091f894d0",
                "reference": "a42f9da85c7c38d59f5e53f076fe81a091f894d0",
                "shasum": ""
            },
            "require": {
                "php": "^5.5.9|>=7.0.8"
            },
            "conflict": {
                "symfony/console": "<3.4"
            },
            "require-dev": {
                "symfony/console": "~3.4|~4.0"
            },
            "suggest": {
                "symfony/console": "For validating YAML files using the lint command"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "3.4-dev"
                }
            },
            "autoload": {
                "psr-4": {
                    "Symfony\\Component\\Yaml\\": ""
                },
                "exclude-from-classmap": [
                    "/Tests/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Fabien Potencier",
                    "email": "fabien@symfony.com"
                },
                {
                    "name": "Symfony Community",
                    "homepage": "https://symfony.com/contributors"
                }
            ],
            "description": "Symfony Yaml Component",
            "homepage": "https://symfony.com",
            "time": "2018-04-03T05:14:20+00:00"
        },
        {
            "name": "theseer/tokenizer",
            "version": "1.1.0",
            "source": {
                "type": "git",
                "url": "https://github.com/theseer/tokenizer.git",
                "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/theseer/tokenizer/zipball/cb2f008f3f05af2893a87208fe6a6c4985483f8b",
                "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b",
                "shasum": ""
            },
            "require": {
                "ext-dom": "*",
                "ext-tokenizer": "*",
                "ext-xmlwriter": "*",
                "php": "^7.0"
            },
            "type": "library",
            "autoload": {
                "classmap": [
                    "src/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Arne Blankerts",
                    "email": "arne@blankerts.de",
                    "role": "Developer"
                }
            ],
            "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
            "time": "2017-04-07T12:08:54+00:00"
        },
        {
            "name": "yiisoft/yii2",
            "version": "2.0.15.1",
            "source": {
                "type": "git",
                "url": "https://github.com/yiisoft/yii2-framework.git",
                "reference": "ed3a9e1c4abe206e1c3ce48a6b3624119b79850d"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/yiisoft/yii2-framework/zipball/ed3a9e1c4abe206e1c3ce48a6b3624119b79850d",
                "reference": "ed3a9e1c4abe206e1c3ce48a6b3624119b79850d",
                "shasum": ""
            },
            "require": {
                "bower-asset/inputmask": "~3.2.2 | ~3.3.5",
                "bower-asset/jquery": "3.2.*@stable | 3.1.*@stable | 2.2.*@stable | 2.1.*@stable | 1.11.*@stable | 1.12.*@stable",
                "bower-asset/punycode": "1.3.*",
                "bower-asset/yii2-pjax": "~2.0.1",
                "cebe/markdown": "~1.0.0 | ~1.1.0",
                "ext-ctype": "*",
                "ext-mbstring": "*",
                "ezyang/htmlpurifier": "~4.6",
                "lib-pcre": "*",
                "php": ">=5.4.0",
                "yiisoft/yii2-composer": "~2.0.4"
            },
            "bin": [
                "yii"
            ],
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "2.0.x-dev"
                }
            },
            "autoload": {
                "psr-4": {
                    "yii\\": ""
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Qiang Xue",
                    "email": "qiang.xue@gmail.com",
                    "homepage": "http://www.yiiframework.com/",
                    "role": "Founder and project lead"
                },
                {
                    "name": "Alexander Makarov",
                    "email": "sam@rmcreative.ru",
                    "homepage": "http://rmcreative.ru/",
                    "role": "Core framework development"
                },
                {
                    "name": "Maurizio Domba",
                    "homepage": "http://mdomba.info/",
                    "role": "Core framework development"
                },
                {
                    "name": "Carsten Brandt",
                    "email": "mail@cebe.cc",
                    "homepage": "http://cebe.cc/",
                    "role": "Core framework development"
                },
                {
                    "name": "Timur Ruziev",
                    "email": "resurtm@gmail.com",
                    "homepage": "http://resurtm.com/",
                    "role": "Core framework development"
                },
                {
                    "name": "Paul Klimov",
                    "email": "klimov.paul@gmail.com",
                    "role": "Core framework development"
                },
                {
                    "name": "Dmitry Naumenko",
                    "email": "d.naumenko.a@gmail.com",
                    "role": "Core framework development"
                },
                {
                    "name": "Boudewijn Vahrmeijer",
                    "email": "info@dynasource.eu",
                    "homepage": "http://dynasource.eu",
                    "role": "Core framework development"
                }
            ],
            "description": "Yii PHP Framework Version 2",
            "homepage": "http://www.yiiframework.com/",
            "keywords": [
                "framework",
                "yii2"
            ],
            "time": "2018-03-21T18:36:53+00:00"
        },
        {
            "name": "yiisoft/yii2-apidoc",
            "version": "2.1.0",
            "source": {
                "type": "git",
                "url": "https://github.com/yiisoft/yii2-apidoc.git",
                "reference": "dd0918ccbce2c1bdea836667f54e8f8b99d27128"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/yiisoft/yii2-apidoc/zipball/dd0918ccbce2c1bdea836667f54e8f8b99d27128",
                "reference": "dd0918ccbce2c1bdea836667f54e8f8b99d27128",
                "shasum": ""
            },
            "require": {
                "cebe/js-search": "~0.9.3",
                "cebe/markdown": "~1.0.0 | ~1.1.0",
                "cebe/markdown-latex": "~1.0",
                "nikic/php-parser": "^1.0",
                "php": ">=5.4",
                "phpdocumentor/reflection": "^3.0.1",
                "phpdocumentor/reflection-docblock": "^2.0.4",
                "scrivo/highlight.php": "~8.0",
                "yiisoft/yii2": "~2.0.4",
                "yiisoft/yii2-bootstrap": "~2.0.0"
            },
            "bin": [
                "apidoc"
            ],
            "type": "yii2-extension",
            "extra": {
                "branch-alias": {
                    "dev-master": "2.0.x-dev"
                },
                "asset-installer-paths": {
                    "npm-asset-library": "vendor/npm",
                    "bower-asset-library": "vendor/bower"
                }
            },
            "autoload": {
                "psr-4": {
                    "yii\\apidoc\\": ""
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Carsten Brandt",
                    "email": "mail@cebe.cc"
                }
            ],
            "description": "API Documentation generator for the Yii framework 2.0",
            "keywords": [
                "api",
                "apidoc",
                "documentation",
                "phpdoc",
                "yii2"
            ],
            "time": "2016-11-22T15:29:55+00:00"
        },
        {
            "name": "yiisoft/yii2-bootstrap",
            "version": "2.0.8",
            "source": {
                "type": "git",
                "url": "https://github.com/yiisoft/yii2-bootstrap.git",
                "reference": "3f49c47924bb9fa5363c3fc7b073d954168cf438"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/yiisoft/yii2-bootstrap/zipball/3f49c47924bb9fa5363c3fc7b073d954168cf438",
                "reference": "3f49c47924bb9fa5363c3fc7b073d954168cf438",
                "shasum": ""
            },
            "require": {
                "bower-asset/bootstrap": "3.3.* | 3.2.* | 3.1.*",
                "yiisoft/yii2": "~2.0.6"
            },
            "type": "yii2-extension",
            "extra": {
                "branch-alias": {
                    "dev-master": "2.0.x-dev"
                }
            },
            "autoload": {
                "psr-4": {
                    "yii\\bootstrap\\": "src"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Paul Klimov",
                    "email": "klimov.paul@gmail.com"
                },
                {
                    "name": "Alexander Makarov",
                    "email": "sam@rmcreative.ru",
                    "homepage": "http://rmcreative.ru/"
                },
                {
                    "name": "Antonio Ramirez",
                    "email": "amigo.cobos@gmail.com"
                },
                {
                    "name": "Qiang Xue",
                    "email": "qiang.xue@gmail.com",
                    "homepage": "http://www.yiiframework.com/"
                }
            ],
            "description": "The Twitter Bootstrap extension for the Yii framework",
            "keywords": [
                "bootstrap",
                "yii2"
            ],
            "time": "2018-02-16T10:41:52+00:00"
        },
        {
            "name": "yiisoft/yii2-composer",
            "version": "2.0.6",
            "source": {
                "type": "git",
                "url": "https://github.com/yiisoft/yii2-composer.git",
                "reference": "163419f1f197e02f015713b0d4f85598d8f8aa80"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/yiisoft/yii2-composer/zipball/163419f1f197e02f015713b0d4f85598d8f8aa80",
                "reference": "163419f1f197e02f015713b0d4f85598d8f8aa80",
                "shasum": ""
            },
            "require": {
                "composer-plugin-api": "^1.0"
            },
            "require-dev": {
                "composer/composer": "^1.0"
            },
            "type": "composer-plugin",
            "extra": {
                "class": "yii\\composer\\Plugin",
                "branch-alias": {
                    "dev-master": "2.0.x-dev"
                }
            },
            "autoload": {
                "psr-4": {
                    "yii\\composer\\": ""
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Qiang Xue",
                    "email": "qiang.xue@gmail.com"
                },
                {
                    "name": "Carsten Brandt",
                    "email": "mail@cebe.cc"
                }
            ],
            "description": "The composer plugin for Yii extension installer",
            "keywords": [
                "composer",
                "extension installer",
                "yii2"
            ],
            "time": "2018-03-21T16:15:55+00:00"
        }
    ],
    "aliases": [],
    "minimum-stability": "stable",
    "stability-flags": [],
    "prefer-stable": false,
    "prefer-lowest": false,
    "platform": {
        "php": ">=5.5"
    },
    "platform-dev": []
}
3.1.1
=====
- Fixed issue #51 by implementing deserialization support for `g:T`
- Added testing around issue #51
- Added support for `gremlin-server 3.4.0`
- Fixed some incorrect tests
- Fixed an issue where the driver's websocket handshake confirmation did not acknowledge `HTTP` header case insensitivity. This created issues with `gremlin-server 3.4.0` as it's upgraded netty version was sending headers in all lowercase.

3.1.0
=====
- Fixed an issue where no response from the server during the websocket handshake would throw an obscured error. Issue #43
- Made changes to support the testing of `gremlin-server 3.2.8 & 3.3.2`. This change, however, affects the testing of the driver against `v3.3.0` (worth noting)
- Updated the `README.md` file to reflect the correct `require` version for the library (ie: `3.*`)
- Updated the server install script to allow for a more flexible selection of the server install directory
- Changed the travis configuration. Reinstated `php 5.5` testing and temporarily disabled testing for `hhvm` as there seems to be an issue surrounding phpunit
- Fixed the `webtest.php` file to support newer versions of PHPunit.
- Fixed an issue where using authentication and sessions could fail to maintain the session
- Added a basic GraphSON 3.0 serializer. Until gremlin server `3.2.x` is no longer maintained, bellow will be the correct way of setting the serializer up.
  ```php
  $db = ne Connection();
  $db->message->registerSerializer('\Brightzone\GremlinDriver\Serializers\Gson3', TRUE);
  ```
  This will later be changed to the default. After which a serializer option will be added to `Connection`
- Added a test suit for GraphSON 3.0 and modified travis to run the newly implemented suits

3.0.2
=====
- Fixed an issue with deprecated use of references failing in `PHP 7+`. Corrects #34
- Corrected some travis issue. Bypassed travis `PHP 5.5` tests as they were failing (due to incorrect travis configuration)
- Fixed an issue with `gremlin-server >= 3.2.5` error messages not being handled properly. Now gremlin-php driver displays stack traces correctly. 
- Modified the structure for server files. Allows separate configuration per server version.
- Corrected some deprecated gremlin queries in tests which created failure on gremlin server 3.3.x
- Modified install scripts and 3.3.x configuration files for testing/travis
- Corrected issue #37
- Added an easy access web test php file that allows users to run the tests from the browser as a convenience. And updated the README.md to reflect this

3.0.1
=====
- Fixed an issue where the retry strategy would be applied on an error code `500` when in reality it should have been applied on `597`

3.0.0
=====
- Dropped testing and support for `PHP 5.4`. It is worth noting that we no longer test against `5.4` but this does not mean the library will not execute properly on `5.4`.
- Added support for Aliases. You can implement them either globally or locally as shown bellow:

   ```php
   // Global
   $db = new Connection([
        'graph' => 'graph',
        'aliases' => ["somethingcrazy" => "g"]
   ]);
   $db->open();

   $result = $db->send("somethingcrazy.V().count()");
   ```

   ```php
   // Local
   $db = new Connection([
        'graph' => 'graph',
   ]);
   $db->open();

   $db->message->setArguments([
        'aliases' => ['somethingcrazy'=>'g'],
   ]);
   $result = $db->send("somethingcrazy.V().count()");
   ```

- Added tests for aliases
- Added tests to `manageTransaction` which allows session requests to auto commit transactions on each request (or rollback if error). The code bellow will actually commit the added vertex to the graph since the transaction is auto managed on the request level:

   ```php
   $db = new Connection([
        'graph' => 'graphT',
   ]);
   $db->open();

   $db->transactiontart();
   $db->transactionStart();

   $db->message->setArguments([
        'manageTransaction' => TRUE,
   ]);
   $db->message->gremlin = 't.addV()';
   $db->send();

   $db->transactionStop(FALSE);
   ```

- Added a test for `scriptEvaluationTimeout`.
- Added support for a custom `saslMechanism` for authentication. By default gremlin-server ignores this feature. But custom gremlin-server builds may require it. You can simply define it as follows:

   ```php
   $db = new Connection([
        'graph' => 'graphT',
        'saslMechanism' => 'GSSAPI', // defaults to 'PLAIN'
   ]);
   $db->open();
   ```

- Updated testing and travis to use gremlin-server `3.2.1`
- Added a public method `closeSession()` that allows developpers to manually close a server side session. (used to be that sessions would only be closed on a call to `close()` which also closed the websocket.

2.2.3
=====
- Corrected an issue where using a custom mimeType for requests was producing an error.
- Updated testing build to use gremlin-server `v3.1.1`
- Added several new test cases.

2.2.2
=====
- Generalized some stream get behavior to be consistant accross all operations. This can correct some issues with hhvm streaming content before it's done loading in the socket.

2.2.1
=====
- Added a fix for large result sets in hhvm (and a test case)

2.2.0
=====
- Added a few more test cases around existing features
- Added support for a `Connection::$emptySet` property. When this property is set to `TRUE` then empty result sets will no longer throw a ServerException (this was default). Instead they will return an empty array:

   ```php
   $db = new Connection([
       'host' => 'localhost',
       'port' => 8182,
       'graph' => 'graph',
       'emptySet' => TRUE
   ]);
   $db->open();

   $result = $db->send("g.V().has('name', 'doesnotexist')");
   print_r($result); // Array()
   ```

2.1.2
=====
- Upgraded the testing process to use gremlin-server 3.0.2
- Corrected a bug where ssl would not work for users of PHP 5.6+. These users will now need to configure ssl as follows:

   ```php
   $db = new Connection([
       'host' => 'localhost',
       'graph' => 'graph',
       'ssl' => [
           "ssl"=> [
               "cafile" => "/path/to/bundle/ca-bundle.crt",
               "verify_peer"=> true,
               "verify_peer_name"=> true,
           ]
       ]
   ]);
   ```

2.1.1
=====
- Made changes to explicit some server errors that were previously hidden from the user

2.1.0
=====

- Added support for fail-retry strategies on transactions:

   ```php
   $db = new Connection([
       'host' => 'localhost',
       'port' => 8182,
       'graph' => 'graphT',
       'retryAttempts' => 10
   ]);
   $db->open();

   $db->transaction(function() use($db){
       $db->send('n.addVertex("name","michael")');
       $db->send('n.addVertex("name","john")');
   });

   $db->close();
   ```

2.0.0
=====
2.0 supports TP 3.0.1 with authentication features. There was a major overhaul of the code in order to make the API clearer and to stick to PSR-4 namespaces. Bellow are the BC breaking changes you will need to make if you are upgrading from v1.0 :

#####Breaking changes
- Namespaces currently changed from `\brightzone\rexpro\*` to `\Brightzone\GremlinDriver\*` and so forth all in CamelCase. You will need to change these in your code to reflect the change.
- The Message class has been changed from `\Brightzone\GremlinDriver\Messages` to `\Brightzone\GremlinDriver\Message`. I you use messages directly in your code you will need to switch for the newer one.
- Tests have been moved from `src/tests` to `tests/`. This probably doesn't affect you, but just incase.
- `Connection::open()` does not take any params anymore. You need to define all connection parameters by providing them to the Connection constructor. For example:

   ```php
   $db = Connection();
   $db->open('localhost:8182', 'graph', 'username', 'password');
   ```
   becomes :
   ```php
   $db = Connection([
      'host' => 'localhost', //default
      'port' => 8182, //default
      'graph' => 'graph',
      'username' => 'username',
      'password' => 'password'
   ]);
   $db->open();
   ```
   This is reflected in the [README](README.md) examples.


1.0
===

Original release.
require 'simplecov'
require 'coveralls'

SimpleCov.formatter = Coveralls::SimpleCov::Formatter
SimpleCov.start do
  add_filter 'src/tests'
end<?xml version="1.0" encoding="UTF-8"?>
<project name="rexpro-php" default="build">
 <target name="build"
   depends="prepare,lint,phploc,pdepend,phpmd-ci,phpcs-ci,phpcpd,phpunit"/>

 <target name="build-parallel"
   depends="prepare,lint,tools-parallel,phpunit"/>

 <target name="tools-parallel" description="Run tools in parallel">
  <parallel threadCount="2">
   <sequential>
    <antcall target="pdepend"/>
    <antcall target="phpmd-ci"/>
   </sequential>
   <antcall target="phpcpd"/>
   <antcall target="phpcs-ci"/>
   <antcall target="phploc"/>
  </parallel>
 </target>

 <target name="clean" description="Cleanup build artifacts">
  <delete dir="${basedir}/build/api"/>
  <delete dir="${basedir}/build/coverage"/>
  <delete dir="${basedir}/build/logs"/>
  <delete dir="${basedir}/build/pdepend"/>
 </target>

 <target name="prepare" depends="clean" description="Prepare for build">
  <mkdir dir="${basedir}/build/api"/>
  <mkdir dir="${basedir}/build/coverage"/>
  <mkdir dir="${basedir}/build/logs"/>
  <mkdir dir="${basedir}/build/pdepend"/>
 </target>

 <target name="lint" description="Perform syntax check of sourcecode files">
  <apply executable="php" failonerror="true">
   <arg value="-l" />

   <fileset dir="${basedir}/src">
    <include name="**/*.php" />
    <modified />
   </fileset>
   <fileset dir="${basedir}/src/tests">
    <include name="**/*.php" />
    <modified />
   </fileset>
  </apply>
 </target>

 <target name="phploc" description="Measure project size using PHPLOC">
  <exec executable="phploc">
   <arg value="--count-tests" />
   <arg value="--log-csv" />
   <arg value="${basedir}/build/logs/phploc.csv" />
   <arg path="${basedir}" />
  </exec>
 </target>

 <target name="pdepend" description="Calculate software metrics using PHP_Depend">
  <exec executable="pdepend">
   <arg value="--jdepend-xml=${basedir}/build/logs/jdepend.xml" />
   <arg value="--jdepend-chart=${basedir}/build/pdepend/dependencies.svg" />
   <arg value="--overview-pyramid=${basedir}/build/pdepend/overview-pyramid.svg" />
   <arg value="--ignore=${basedir}/vendor"/>
   <arg path="${basedir}" />
  </exec>
 </target>

 <target name="phpmd"
         description="Perform project mess detection using PHPMD and print human readable output. Intended for usage on the command line before committing.">
  <exec executable="phpmd">
   <arg path="${basedir}" />
   <arg value="text" />
   <arg value="${basedir}/build/phpmd.xml" />
   <arg value="--exclude" />
   <arg value="${basedir}/vendor" />
  </exec>
 </target>

 <target name="phpmd-ci" description="Perform project mess detection using PHPMD creating a log file for the continuous integration server">
  <exec executable="phpmd">
   <arg path="${basedir}" />
   <arg value="xml" />
   <arg value="${basedir}/build/phpmd.xml" />
   <arg value="--exclude" />
   <arg value="${basedir}/vendor" />
   <arg value="--reportfile" />
   <arg value="${basedir}/build/logs/pmd.xml" />
  </exec>
 </target>

 <target name="phpcs"
         description="Find coding standard violations using PHP_CodeSniffer and print human readable output. Intended for usage on the command line before committing.">
  <exec executable="phpcs">
   <arg value="--standard=${basedir}/build/logs/phpcs.xml" />
   <arg value="--ignore=${basedir}/vendor" />
   <arg path="${basedir}/src" />
  </exec>
 </target>

 <target name="phpcs-ci" description="Find coding standard violations using PHP_CodeSniffer creating a log file for the continuous integration server">
  <exec executable="phpcs" output="/dev/null" >
   <arg value="--report=checkstyle" />
   <arg value="--report-file=${basedir}/build/logs/checkstyle.xml" />
   <arg value="--standard=${basedir}/build/phpcs.xml" />
   <arg value="--ignore=${basedir}/vendor" />
   <arg path="${basedir}/src" />
  </exec>
 </target>

 <target name="phpcpd" description="Find duplicate code using PHPCPD">
  <exec executable="phpcpd">
   <arg value="--log-pmd" />
   <arg value="${basedir}/build/logs/pmd-cpd.xml" />
   <arg value="--exclude"/>
   <arg value="vendor"/>
   <arg value="--exclude"/>
   <arg value="src/tests"/>
   <arg path="${basedir}" />
  </exec>
 </target>
 
 <target name="phpunit" description="Run unit tests with PHPUnit">
  <exec executable="phpunit" failonerror="true">
   <arg value="--configuration" />
   <arg value="${basedir}/build/phpunit.xml" />
  </exec>
 </target>
</project>
<?php

namespace Brightzone\GremlinDriver\Tests;

use Brightzone\GremlinDriver\Connection;

/**
 * Unit testing of Gremlin-php authentication
 *
 * @category DB
 * @package  Tests
 * @author   Dylan Millikin <dylan.millikin@brightzone.fr>
 * @license  http://www.apache.org/licenses/LICENSE-2.0 apache2
 */
class AuthTest extends RexsterTestCase
{
    /**
     * Testing a simple authentication
     * @return void
     */
    public function testAuthenticationSimple()
    {
        $db = new Connection([
            'host'     => 'localhost',
            'port'     => 8184,
            'graph'    => 'graph',
            'username' => 'stephen',
            'password' => 'password',
            'ssl'      => [
                "ssl" => [
                    "verify_peer"      => FALSE,
                    "verify_peer_name" => FALSE,
                ],
            ],
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $message = $db->open();

        $result = $db->send('5+5');
        $this->assertEquals($result[0], 10, 'Script response message is not the right type. (Maybe it\'s an error)'); //check it's a session script reply

    }

    /**
     * Test a simple auth with a more complex query
     * @return void
     */
    public function testAuthenticationComplex()
    {
        $db = new Connection([
            'host'     => 'localhost',
            'port'     => 8184,
            'graph'    => 'graph',
            'username' => 'stephen',
            'password' => 'password',
            'ssl'      => [
                "ssl" => [
                    "verify_peer"      => FALSE,
                    "verify_peer_name" => FALSE,
                ],
            ],
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $message = $db->open();

        $result = $db->send('g.V().emit().repeat(__.both()).times(5)');
        $this->assertEquals(count($result), 714, 'Did not find the correct amounts of vertices'); //check it's a session script reply
    }

    /**
     * testing an in session authentication
     * @return void
     */
    public function testAuthenticationSession()
    {
        $db = new Connection([
            'host'     => 'localhost',
            'port'     => 8184,
            'graph'    => 'graph',
            'username' => 'stephen',
            'password' => 'password',
            'ssl'      => [
                "ssl" => [
                    "verify_peer"      => FALSE,
                    "verify_peer_name" => FALSE,
                ],
            ],
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $message = $db->open();

        $this->assertNotEquals($message, FALSE, 'Failed to connect to db');

        $result = $db->send('cal = 5+5', 'session', 'eval');

        $this->assertEquals($result[0], 10, 'Script response message is not the right type. (Maybe it\'s an error)'); //check it's a session script reply

        $result = $db->send('cal', 'session', 'eval');
        $this->assertEquals($result[0], 10, 'Script response message is not the right type. (Maybe it\'s an error)'); //check it's a session script reply

        //check disconnection
        $db->close();
        $this->assertFALSE($db->isConnected(), 'Despite not throwing errors, Socket connection is not established');
        $this->assertFALSE($db->inTransaction(), 'Despite closing, transaction not closed');
    }
}
<?php

namespace Brightzone\GremlinDriver\Tests;

use Brightzone\GremlinDriver\Serializers\Gson3;


/**
 * Unit testing of Gremlin-php
 *
 * @category DB
 * @package  Tests
 * @author   Dylan Millikin <dylan.millikin@brightzone.fr>
 * @license  http://www.apache.org/licenses/LICENSE-2.0 apache2
 */
class AuthGS3Test extends AuthTest
{
    /**
     * Set the serializer up here
     *
     * @return void
     */
    public static function setUpBeforeClass()
    {
        static::$serializer = new Gson3;
    }
}
<?php

namespace Brightzone\GremlinDriver\Tests\Stubs;

use Brightzone\GremlinDriver\Connection as BaseConnection;

class Connection extends BaseConnection
{
    /**
     * Allow stub to set socket with any data
     *
     * @param string $frame binary data to set up as stream.
     */
    public function setSocket($frame)
    {
        $stream = fopen('php://memory', 'r+');
        fwrite($stream, $frame);
        rewind($stream);
        $this->_socket = $stream;
    }

    /**
     * Close connection to server
     * This closes the current session on the server then closes the socket
     *
     * @return bool TRUE on success
     */
    public function close()
    {
        if($this->_socket !== NULL)
        {
            fclose($this->_socket); //ignore error
            $this->_socket = NULL;
            $this->_sessionUuid = NULL;

            return TRUE;
        }

        return TRUE;
    }
}
<?php

namespace Brightzone\GremlinDriver\Tests\Stubs;


use Brightzone\GremlinDriver\InternalException;
use \Brightzone\GremlinDriver\Message;
use Brightzone\GremlinDriver\RequestMessage;

/**
 * Class IncorrectlyFormattedMessage
 * Will incorrectly pack the message
 *
 * @author  Dylan Millikin <dylan.millikin@brightzone.com>
 * @package Brightzone\GremlinDriver\Tests\Stubs
 */
class IncorrectlyFormattedMessage extends Message
{
    /**
     * @var bool throw an error on parse or not
     */
    public $throwErrorOnParse = FALSE;

    /**
     * incorrectly format sent message
     * @return string
     */
    public function buildMessage()
    {
        $finalMessage = pack('C', strlen("application/json")) . 5 . "somethinglongerthan5";

        return $finalMessage;
    }

    /**
     * Throw an error for testing purposes
     *
     * @param string $payload
     * @param bool   $isBinary
     *
     * @return void
     * @throws InternalException
     */
    public function parse($payload, $isBinary)
    {
        if($this->throwErrorOnParse)
        {
            throw new InternalException("Some test error", 500);
        }

        return parent::parse($payload, $isBinary);
    }
}<?php

namespace Brightzone\GremlinDriver\Tests\Stubs;


use \Brightzone\GremlinDriver\Connection;

/**
 * Class IncorrectlyFormattedConnection
 * Will incorrectly pack the websocket message
 *
 * @author  Dylan Millikin <dylan.millikin@brightzone.com>
 * @package Brightzone\GremlinDriver\Tests\Stubs
 */
class IncorrectlyFormattedConnection extends Connection
{
    /**
     * Incorrectly packing the message
     *
     * @param string $payload
     * @param string $type
     * @param bool   $masked
     *
     * @return string
     */
    protected function webSocketPack($payload, $type = 'binary', $masked = TRUE)
    {
        return "not a correctly formatted message";
    }
}<?php

namespace Brightzone\GremlinDriver\Tests\Stubs;

use Brightzone\GremlinDriver\serializers\SerializerInterface;

/**
 * Gremlin-php PHP Serializer test class (stub)
 *
 * @category DB
 * @package  Tests.Stubs
 * @author   Dylan Millikin <dylan.millikin@brightzone.fr>
 * @license  http://www.apache.org/licenses/LICENSE-2.0 apache2
 */
class TestSerializer implements SerializerInterface
{
    /**
     * @var string the name of the serializer
     */
    public static $name = 'TEST';

    /**
     * @var int Value of this serializer. Will be deprecated in TP3
     */
    public static $mimeType = 'application/test';

    /**
     * Serializes the data
     *
     * @param array &$data data to be serialized
     *
     * @return int length of generated string
     */
    public function serialize(&$data)
    {
        $data = json_encode($data, JSON_UNESCAPED_UNICODE);

        return mb_strlen($data, 'ISO-8859-1');
    }

    /**
     * Unserializes the data
     *
     * @param array $data data to be unserialized
     *
     * @return array unserialized message
     */
    public function unserialize($data)
    {
        $mssg = json_decode($data, TRUE, JSON_UNESCAPED_UNICODE);

        return $mssg;
    }

    /**
     * Get this serializer's Name
     *
     * @return string name of serializer
     */
    public function getName()
    {
        return self::$name;
    }

    /**
     * Get this serializer's value
     * This will be deprecated with TP3 Gremlin-server
     *
     * @return string name of serializer
     */
    public function getMimeType()
    {
        return self::$mimeType;
    }
}
<?php

namespace Brightzone\GremlinDriver\Tests;

use Brightzone\GremlinDriver\Connection;
use Brightzone\GremlinDriver\RequestMessage;
use Brightzone\GremlinDriver\Serializers\Gson3;
use stdClass;

/**
 * Unit testing of Gremlin-php
 * This actually runs tests against the server
 *
 * @category DB
 * @package  Tests
 * @author   Dylan Millikin <dylan.millikin@brightzone.fr>
 * @license  http://www.apache.org/licenses/LICENSE-2.0 apache2
 */
class GraphSon3Test extends RexsterTestCase
{
    /**
     * Gets the int type (32b-64b) for this system
     *
     * @return string int type, either g:Int32 or g:Int64
     */
    protected function getIntType()
    {
        if(PHP_INT_SIZE == 4)
        {
            return "g:Int32";
        }
        else if(PHP_INT_SIZE == 8)
        {
            return "g:Int64";
        }
        else
        {
            $this->fail("PHP_IN_SIZE is " . PHP_INT_SIZE . "and is not supported by the serializer");
        }

        return FALSE;
    }

    /**
     * Test converting a String to graphson 3.0 format
     *
     * @return void
     */
    public function testConvertString()
    {
        $serializer = new Gson3;

        $converted = $serializer->convertString("testing");
        $this->assertEquals("testing", $converted, "Incorrect GS3 conversion for String");
    }

    /**
     * Test converting a Boolean to graphson 3.0 format
     *
     * @return void
     */
    public function testConvertBoolean()
    {
        $serializer = new Gson3;

        $converted = $serializer->convertBoolean(TRUE);
        $this->assertEquals(TRUE, $converted, "Incorrect GS3 conversion for Bool");
    }

    /**
     * Test converting an Integer to graphson 3.0 format
     *
     * @return void
     */
    public function testConvertInteger()
    {
        $serializer = new Gson3;
        $intType = $this->getintType();

        $converted = $serializer->convertInteger(5);
        $this->assertEquals(["@type" => $intType, "@value" => 5], $converted, "Incorrect GS3 conversion for Integer");
    }

    /**
     * Test converting an float/double to graphson 3.0 format
     *
     * @return void
     */
    public function testConvertDouble()
    {
        $serializer = new Gson3;

        $converted = $serializer->convertDouble(5.3);
        $this->assertEquals(["@type" => "g:Double", "@value" => 5.3], $converted, "Incorrect GS3 conversion for Double");
    }

    /**
     * Test converting an object to graphson 3.0 format
     * This is unsupported and should throw an error.
     *
     * @expectedException \Brightzone\GremlinDriver\InternalException
     */
    public function testConvertObject()
    {
        $serializer = new Gson3;

        $object = new stdClass();
        $object->title = 'Test Object';

        // List
        $serializer->convertObject($object);
    }

    /**
     * Test converting a Request message object to graphson 3.0 format
     *
     * @return void
     */
    public function testConvertObjectRequestMessage()
    {
        $serializer = new Gson3;
        $intType = $this->getintType();
        $object = new RequestMessage([3 => [123, TRUE, 5.34, "string"]]);


        $converted = $serializer->convertObject($object);

        $this->assertEquals([
            3 => [
                "@type"  => "g:List",
                "@value" => [
                    ["@type" => $intType, "@value" => 123],
                    TRUE,
                    ["@type" => "g:Double", "@value" => 5.34],
                    "string",
                ],
            ],
        ], $converted, "Incorrect GS3 conversion for RequestMessage object");
    }

    /**
     * Test converting an NULL to graphson 3.0 format
     *
     * @return void
     */
    public function testConvertNull()
    {
        $serializer = new Gson3;

        $deconverted = $serializer->convertNULL(NULL);
        $this->assertEquals(NULL, $deconverted, "Incorrect deconversion for Double");
    }

    /**
     * Test converting a List to graphson 3.0 format
     *
     * @return void
     */
    public function testConvertList()
    {
        $serializer = new Gson3;

        $converted = $serializer->convertList(["test", "test2"]);
        $this->assertEquals(["@type" => "g:List", "@value" => ["test", "test2"]], $converted, "Incorrect GS3 conversion for List");
    }

    /**
     * Test converting an empty List to graphson 3.0 format
     *
     * @return void
     */
    public function testConvertEmptyList()
    {
        $serializer = new Gson3;

        $converted = $serializer->convertList([]);
        $this->assertEquals(["@type" => "g:List", "@value" => []], $converted, "Incorrect GS3 conversion for an empty List");
    }

    /**
     * Test converting a Map with string keys to graphson 3.0 format
     *
     * @return void
     */
    public function testConvertListWithMixValue()
    {
        $serializer = new Gson3;
        $intType = $this->getintType();

        $converted = $serializer->convertList([123, TRUE, 5.34, "string"]);
        $this->assertEquals([
            "@type"  => "g:List",
            "@value" => [
                ["@type" => $intType, "@value" => 123],
                TRUE,
                ["@type" => "g:Double", "@value" => 5.34],
                "string",
            ],
        ], $converted, "Incorrect GS3 conversion for List with mixed values");
    }

    /**
     * Test converting a Map with no keys to graphson 3.0 format
     *
     * @return void
     */
    public function testConvertMapWithNoKey()
    {
        $serializer = new Gson3;
        $intType = $this->getintType();

        $converted = $serializer->convertMap(["test", "test2"]);
        $this->assertEquals([
            "@type"  => "g:Map",
            "@value" => [
                ["@type" => $intType, "@value" => 0], "test",
                ["@type" => $intType, "@value" => 1], "test2",
            ],
        ], $converted, "Incorrect GS3 conversion for Map without keys");
    }

    /**
     * Test converting an empty Map with no keys to graphson 3.0 format
     *
     * @return void
     */
    public function testConvertEmptyMap()
    {
        $serializer = new Gson3;

        $converted = $serializer->convertMap([]);
        $this->assertEquals([
            "@type"  => "g:Map",
            "@value" => [],
        ], $converted, "Incorrect GS3 conversion for an empty Map");
    }

    /**
     * Test converting a Map with string keys to graphson 3.0 format
     *
     * @return void
     */
    public function testConvertMapWithStringKey()
    {
        $serializer = new Gson3;

        $converted = $serializer->convertMap(["string1" => "test", "02" => "test2"]);
        $this->assertEquals([
            "@type"  => "g:Map",
            "@value" => [
                "string1", "test",
                "02", "test2",
            ],
        ], $converted, "Incorrect GS3 conversion for Map with string keys");
    }

    /**
     * Test converting a Map with string keys to graphson 3.0 format
     *
     * @return void
     */
    public function testConvertMapWithMixKey()
    {
        $serializer = new Gson3;
        $intType = $this->getintType();

        $converted = $serializer->convertMap(["string1" => "test", 2 => "test2"]);
        $this->assertEquals([
            "@type"  => "g:Map",
            "@value" => [
                "string1", "test",
                ["@type" => $intType, "@value" => 2], "test2",
            ],
        ], $converted, "Incorrect GS3 conversion for Map with mixed keys");
    }

    /**
     * Test converting a Map with string keys to graphson 3.0 format
     *
     * @return void
     */
    public function testConvertMapWithMixValue()
    {
        $serializer = new Gson3;
        $intType = $this->getintType();

        $converted = $serializer->convertMap(["string1" => 123, "02" => TRUE, "03" => 5.34]);
        $this->assertEquals([
            "@type"  => "g:Map",
            "@value" => [
                "string1", ["@type" => $intType, "@value" => 123],
                "02", TRUE,
                "03", ["@type" => "g:Double", "@value" => 5.34],
            ],
        ], $converted, "Incorrect GS3 conversion for Map with mixed values");
    }

    /**
     * Test converting a Map to graphson 3.0 format
     *
     * @return void
     */
    public function testConvertMapWithIntKey()
    {
        $serializer = new Gson3;
        $intType = $this->getintType();

        $converted = $serializer->convertMap([2 => "test", 7 => "test2"]);
        $this->assertEquals([
            "@type"  => "g:Map",
            "@value" => [
                ["@type" => $intType, "@value" => 2], "test",
                ["@type" => $intType, "@value" => 7], "test2",
            ],
        ], $converted, "Incorrect GS3 conversion for Map with int keys");
    }

    /**
     * Test converting an array to map to graphson 3.0 format
     *
     * @return void
     */
    public function testConvertArrayToMap()
    {
        $serializer = new Gson3;
        $intType = $this->getintType();

        $converted = $serializer->convertArray([2 => "test", 7 => "test2"]);
        $this->assertEquals([
            "@type"  => "g:Map",
            "@value" => [
                ["@type" => $intType, "@value" => 2], "test",
                ["@type" => $intType, "@value" => 7], "test2",
            ],
        ], $converted, "Incorrect GS3 conversion for Map");
    }

    /**
     * Test converting an Array to List to graphson 3.0 format
     *
     * @return void
     */
    public function testConvertArrayToList()
    {
        $serializer = new Gson3;

        $converted = $serializer->convertArray(["test", "test2"]);
        $this->assertEquals(["@type" => "g:List", "@value" => ["test", "test2"]], $converted, "Incorrect GS3 conversion for List");
    }

    /**
     * Test converting any item
     *
     * @return void
     */
    public function testConvert()
    {
        $serializer = new Gson3;
        $intType = $this->getintType();

        // List
        $converted = $serializer->convert(["test", "test2"]);
        $this->assertEquals(["@type" => "g:List", "@value" => ["test", "test2"]], $converted, "Incorrect GS3 conversion for List");

        // Map
        $converted = $serializer->convert([2 => "test", 7 => "test2"]);
        $this->assertEquals([
            "@type"  => "g:Map",
            "@value" => [
                ["@type" => $intType, "@value" => 2], "test",
                ["@type" => $intType, "@value" => 7], "test2",
            ],
        ], $converted, "Incorrect GS3 conversion for Map");

        // String
        $converted = $serializer->convert("testing");
        $this->assertEquals("testing", $converted, "Incorrect GS3 conversion for String");

        // bool
        $converted = $serializer->convert(TRUE);
        $this->assertEquals(TRUE, $converted, "Incorrect GS3 conversion for Bool");

        // Double
        $converted = $serializer->convert(5.3);
        $this->assertEquals(["@type" => "g:Double", "@value" => 5.3], $converted, "Incorrect GS3 conversion for Double");

        // Int
        $converted = $serializer->convert(5);
        $this->assertEquals(["@type" => $intType, "@value" => 5], $converted, "Incorrect GS3 conversion for Integer");
    }

    /**
     * Test converting an unsupported object
     *
     * @expectedException \Brightzone\GremlinDriver\InternalException
     */
    public function testConvertUnsupportedObject()
    {
        $serializer = new Gson3;

        $object = new stdClass();
        $object->title = 'Test Object';

        $serializer->convert($object);
    }

    /**
     * Test converting an unsupported type
     *
     * @expectedException \Brightzone\GremlinDriver\InternalException
     */
    public function testConvertUnsupportedType()
    {
        $serializer = new Gson3;

        $type = stream_context_create();

        $serializer->convert($type);
    }

    /**
     * Test converting a complex item
     *
     */
    public function testConvertComplex()
    {
        $serializer = new Gson3;
        $converted = $serializer->convert([
            [
                "something",
                32,
            ],
            TRUE,
            [
                "lala",
                33    => 21,
                "key" => [
                    "lock",
                    "door",
                    [
                        "again" => "inside",
                    ],
                ],
            ],
            30,
        ]);

        $this->assertEquals([
            "@type"  => "g:List",
            "@value" => [
                [
                    "@type"  => "g:List",
                    "@value" => [
                        "something",
                        ["@type" => "g:Int64", "@value" => 32],
                    ],
                ],
                TRUE,
                [
                    "@type"  => "g:Map",
                    "@value" => [
                        ["@type" => "g:Int64", "@value" => 0],
                        "lala",
                        ["@type" => "g:Int64", "@value" => 33],
                        ["@type" => "g:Int64", "@value" => 21],
                        "key",
                        [
                            "@type"  => "g:List",
                            "@value" => [
                                "lock",
                                "door",
                                [
                                    "@type"  => "g:Map",
                                    "@value" => [
                                        "again",
                                        "inside",
                                    ],
                                ],
                            ],
                        ],
                    ],
                ],
                ["@type" => "g:Int64", "@value" => 30],
            ],
        ], $converted, "Incorrect GS3 conversion for Complex object");
    }

    /**
     * Test serializing array to GraphSON 3.0
     *
     * @return void
     */
    public function testSerialize()
    {
        $serializer = new Gson3;
        $data = [
            [
                "something",
                32,
            ],
            TRUE,
            [
                "lala",
                33    => 21,
                "key" => [
                    "lock",
                    "door",
                    [
                        "again" => "inside",
                    ],
                ],
            ],
            30,
        ];

        $length = $serializer->serialize($data);
        $this->assertEquals($length, strlen($data), "serialized message length was incorrect");
        $this->assertEquals('{"@type":"g:List","@value":[{"@type":"g:List","@value":["something",{"@type":"g:Int64","@value":32}]},true,{"@type":"g:Map","@value":[{"@type":"g:Int64","@value":0},"lala",{"@type":"g:Int64","@value":33},{"@type":"g:Int64","@value":21},"key",{"@type":"g:List","@value":["lock","door",{"@type":"g:Map","@value":["again","inside"]}]}]},{"@type":"g:Int64","@value":30}]}', $data, "incorrect GraphSON 3.0 was generated");
    }

    /**
     * Test deconverting an Int32 from graphson 3.0 format to native
     *
     * @return void
     */
    public function testDeconvertInt32()
    {
        $serializer = new Gson3;

        $deconverted = $serializer->deconvertInt32(5);
        $this->assertEquals(5, $deconverted, "Incorrect deconversion for Int32");
    }

    /**
     * Test deconverting an Int64 from graphson 3.0 format to native
     *
     * @return void
     */
    public function testDeconvertInt64()
    {
        $serializer = new Gson3;

        $deconverted = $serializer->deconvertInt64(5);
        $this->assertEquals(5, $deconverted, "Incorrect deconversion for Int64");
    }

    /**
     * Test deconverting an Date from graphson 3.0 format to native
     *
     * @return void
     */
    public function testDeconvertDate()
    {
        $serializer = new Gson3;
        $time = time();
        $deconverted = $serializer->deconvertTimestamp($time);
        $this->assertEquals($time, $deconverted, "Incorrect deconversion for Date");
    }

    /**
     * Test deconverting an Timestamp from graphson 3.0 format to native
     *
     * @return void
     */
    public function testDeconvertTimestamp()
    {
        $serializer = new Gson3;
        $time = time();
        $deconverted = $serializer->deconvertTimestamp($time);
        $this->assertEquals($time, $deconverted, "Incorrect deconversion for Timestamp");
    }

    /**
     * Test deconverting an Double from graphson 3.0 format to native
     *
     * @return void
     */
    public function testDeconvertDouble()
    {
        $serializer = new Gson3;

        $deconverted = $serializer->deconvertDouble(5.34);
        $this->assertEquals(5.34, $deconverted, "Incorrect deconversion for Double");
    }

    /**
     * Test deconverting an Float from graphson 3.0 format to native
     *
     * @return void
     */
    public function testDeconvertFloat()
    {
        $serializer = new Gson3;

        $deconverted = $serializer->deconvertFloat(5.34);
        $this->assertEquals(5.34, $deconverted, "Incorrect deconversion for Float");
    }

    /**
     * Test deconverting an UUID from graphson 3.0 format to native
     *
     * @return void
     */
    public function testDeconvertUUID()
    {
        $serializer = new Gson3;

        $deconverted = $serializer->deconvertUUID("41d2e28a-20a4-4ab0-b379-d810dede3786");
        $this->assertEquals("41d2e28a-20a4-4ab0-b379-d810dede3786", $deconverted, "Incorrect deconversion for UUID");
    }

    /**
     * Test deconverting an VertexProperty from graphson 3.0 format to native
     *
     * @return void
     */
    public function testDeconvertVertexProperty()
    {
        $serializer = new Gson3;

        $deconverted = $serializer->deconvertVertexProperty([
            "id"    => [
                "@type"  => "g:Int64",
                "@value" => 0,
            ],
            "value" => "marko",
            "label" => "name",
        ]);

        $this->assertEquals([
            "id"    => 0,
            "value" => "marko",
            "label" => "name",
        ], $deconverted, "Incorrect deconversion for VertexProperty");
    }

    /**
     * Test deconverting an Property from graphson 3.0 format to native
     *
     * @return void
     */
    public function testDeconvertProperty()
    {
        $serializer = new Gson3;

        $deconverted = $serializer->deconvertProperty([
            "key"   => "since",
            "value" => [
                "@type"  => "g:Int32",
                "@value" => 2009,
            ],
        ]);

        $this->assertEquals([
            "key"   => "since",
            "value" => 2009,
        ], $deconverted, "Incorrect deconversion for Property");
    }

    /**
     * Test deconverting an Vertex from graphson 3.0 format to native
     *
     * @return void
     */
    public function testDeconvertVertex()
    {
        $serializer = new Gson3;

        $deconverted = $serializer->deconvertVertex([
            "label" => "person",
            "value" => [
                "@type"  => "g:Int32",
                "@value" => 2009,
            ],

        ]);

        $this->assertEquals([
            "label" => "person",
            "value" => 2009,
            "type"  => 'vertex',
        ], $deconverted, "Incorrect deconversion for Vertex");
    }

    /**
     * Test deconverting an Edge from graphson 3.0 format to native
     *
     * @return void
     */
    public function testDeconvertEdge()
    {
        $serializer = new Gson3;

        $deconverted = $serializer->deconvertEdge([
            "label" => "friend",
            "value" => [
                "@type"  => "g:Int32",
                "@value" => 2009,
            ],

        ]);

        $this->assertEquals([
            "label" => "friend",
            "value" => 2009,
            "type"  => 'edge',
        ], $deconverted, "Incorrect deconversion for Edge");
    }

    /**
     * Test deconverting a List from graphson 3.0 format to native
     *
     * @return void
     */
    public function testDeconvertList()
    {
        $serializer = new Gson3;

        $deconverted = $serializer->deconvertList([
            "friend",
            [
                "@type"  => "g:Int32",
                "@value" => 2009,
            ],
            TRUE,
        ]);

        $this->assertEquals([
            "friend",
            2009,
            TRUE,
        ], $deconverted, "Incorrect deconversion for List");
    }

    /**
     * Test deconverting a Path from graphson 3.0 format to native
     *
     * @return void
     */
    public function testDeconvertPath()
    {
        $serializer = new Gson3;

        $deconverted = $serializer->deconvertPath([
            "@type"  => "g:Path",
            "@value" => [
                "labels"  => [[], [], []],
                "objects" => [
                    [
                        "@type"  => "g:Vertex",
                        "@value" => [
                            "id"    => [
                                "@type"  => "g:Int32",
                                "@value" => 1,
                            ],
                            "label" => "person",
                        ],
                    ], [
                        "@type"  => "g:Vertex",
                        "@value" => [
                            "id"         => [
                                "@type"  => "g:Int32",
                                "@value" => 10,
                            ],
                            "label"      => "software",
                            "properties" => [
                                "name" => [
                                    [
                                        "@type"  => "g:VertexProperty",
                                        "@value" => [
                                            "id"     => [
                                                "@type"  => "g:Int64",
                                                "@value" => 4,
                                            ],
                                            "value"  => "gremlin",
                                            "vertex" => [
                                                "@type"  => "g:Int32",
                                                "@value" => 10,
                                            ],
                                            "label"  => "name",
                                        ],
                                    ],
                                ],
                            ],
                        ],
                    ], [
                        "@type"  => "g:Vertex",
                        "@value" => [
                            "id"         => [
                                "@type"  => "g:Int32",
                                "@value" => 11,
                            ],
                            "label"      => "software",
                            "properties" => [
                                "name" => [
                                    [
                                        "@type"  => "g:VertexProperty",
                                        "@value" => [
                                            "id"     => [
                                                "@type"  => "g:Int64",
                                                "@value" => 5,
                                            ],
                                            "value"  => "tinkergraph",
                                            "vertex" => [
                                                "@type"  => "g:Int32",
                                                "@value" => 11,
                                            ],
                                            "label"  => "name",
                                        ],
                                    ],
                                ],
                            ],
                        ],
                    ],
                ],
            ],
        ]);

        $this->assertEquals([

            "labels"  => [[], [], []],
            "objects" => [
                [
                    "id"    => 1,
                    "label" => "person",
                    "type"  => "vertex",

                ], [
                    "id"         => 10,
                    "label"      => "software",
                    "properties" => [
                        "name" => [
                            [
                                "id"     => 4,
                                "value"  => "gremlin",
                                "vertex" => 10,
                                "label"  => "name",
                            ],
                        ],
                    ],
                    "type"       => "vertex",
                ], [
                    "id"         => 11,
                    "label"      => "software",
                    "properties" => [
                        "name" => [
                            [
                                "id"     => 5,
                                "value"  => "tinkergraph",
                                "vertex" => 11,
                                "label"  => "name",
                            ],
                        ],
                    ],
                    "type"       => "vertex",
                ],
            ],

        ], $deconverted, "Incorrect deconversion for Path");
    }

    /**
     * Test deconverting a Tree from graphson 3.0 format to native
     *
     * @return void
     */
    public function testDeconvertTree()
    {
        $serializer = new Gson3;

        $deconverted = $serializer->deconvertTree([
            '@type'  => 'g:List',
            '@value' => [
                0 => [
                    '@type'  => 'g:Tree',
                    '@value' => [
                        0 => [
                            'key'   => [
                                '@type'  => 'g:Vertex',
                                '@value' => [
                                    'id'         => [
                                        '@type'  => 'g:Int64',
                                        '@value' => 1,
                                    ],
                                    'label'      => 'vertex',
                                    'properties' => [
                                        'name' => [
                                            0 => [
                                                '@type'  => 'g:VertexProperty',
                                                '@value' => [
                                                    'id'    => [
                                                        '@type'  => 'g:Int64',
                                                        '@value' => 0,
                                                    ],
                                                    'value' => 'marko',
                                                    'label' => 'name',
                                                ],
                                            ],
                                        ],
                                        'age'  => [
                                            0 => [
                                                '@type'  => 'g:VertexProperty',
                                                '@value' => [
                                                    'id'    => [
                                                        '@type'  => 'g:Int64',
                                                        '@value' => 2,
                                                    ],
                                                    'value' => [
                                                        '@type'  => 'g:Int32',
                                                        '@value' => 29,
                                                    ],
                                                    'label' => 'age',
                                                ],
                                            ],
                                        ],
                                    ],
                                ],
                            ],
                            'value' => [
                                '@type'  => 'g:Tree',
                                '@value' => [
                                    0 => [
                                        'key'   => [
                                            '@type'  => 'g:Vertex',
                                            '@value' => [
                                                'id'         => [
                                                    '@type'  => 'g:Int64',
                                                    '@value' => 2,
                                                ],
                                                'label'      => 'vertex',
                                                'properties' => [
                                                    'name' => [
                                                        0 => [
                                                            '@type'  => 'g:VertexProperty',
                                                            '@value' => [
                                                                'id'    => [
                                                                    '@type'  => 'g:Int64',
                                                                    '@value' => 3,
                                                                ],
                                                                'value' => 'vadas',
                                                                'label' => 'name',
                                                            ],
                                                        ],
                                                    ],
                                                    'age'  => [
                                                        0 => [
                                                            '@type'  => 'g:VertexProperty',
                                                            '@value' => [
                                                                'id'    => [
                                                                    '@type'  => 'g:Int64',
                                                                    '@value' => 4,
                                                                ],
                                                                'value' => [
                                                                    '@type'  => 'g:Int32',
                                                                    '@value' => 27,
                                                                ],
                                                                'label' => 'age',
                                                            ],
                                                        ],
                                                    ],
                                                ],
                                            ],
                                        ],
                                        'value' => [
                                            '@type'  => 'g:Tree',
                                            '@value' => [
                                                0 => [
                                                    'key'   => [
                                                        '@type'  => 'g:VertexProperty',
                                                        '@value' => [
                                                            'id'    => [
                                                                '@type'  => 'g:Int64',
                                                                '@value' => 3,
                                                            ],
                                                            'value' => 'vadas',
                                                            'label' => 'name',
                                                        ],
                                                    ],
                                                    'value' => [
                                                        '@type'  => 'g:Tree',
                                                        '@value' => [],
                                                    ],
                                                ],
                                            ],
                                        ],
                                    ],
                                    1 => [
                                        'key'   => [
                                            '@type'  => 'g:Vertex',
                                            '@value' => [
                                                'id'         => [
                                                    '@type'  => 'g:Int64',
                                                    '@value' => 3,
                                                ],
                                                'label'      => 'vertex',
                                                'properties' => [
                                                    'name' => [
                                                        0 => [
                                                            '@type'  => 'g:VertexProperty',
                                                            '@value' => [
                                                                'id'    => [
                                                                    '@type'  => 'g:Int64',
                                                                    '@value' => 5,
                                                                ],
                                                                'value' => 'lop',
                                                                'label' => 'name',
                                                            ],
                                                        ],
                                                    ],
                                                    'lang' => [
                                                        0 => [
                                                            '@type'  => 'g:VertexProperty',
                                                            '@value' => [
                                                                'id'    => [
                                                                    '@type'  => 'g:Int64',
                                                                    '@value' => 6,
                                                                ],
                                                                'value' => 'java',
                                                                'label' => 'lang',
                                                            ],
                                                        ],
                                                    ],
                                                ],
                                            ],
                                        ],
                                        'value' => [
                                            '@type'  => 'g:Tree',
                                            '@value' => [
                                                0 => [
                                                    'key'   => [
                                                        '@type'  => 'g:VertexProperty',
                                                        '@value' => [
                                                            'id'    => [
                                                                '@type'  => 'g:Int64',
                                                                '@value' => 5,
                                                            ],
                                                            'value' => 'lop',
                                                            'label' => 'name',
                                                        ],
                                                    ],
                                                    'value' => [
                                                        '@type'  => 'g:Tree',
                                                        '@value' => [],
                                                    ],
                                                ],
                                            ],
                                        ],
                                    ],
                                    2 => [
                                        'key'   => [
                                            '@type'  => 'g:Vertex',
                                            '@value' => [
                                                'id'         => [
                                                    '@type'  => 'g:Int64',
                                                    '@value' => 4,
                                                ],
                                                'label'      => 'vertex',
                                                'properties' => [
                                                    'name' => [
                                                        0 => [
                                                            '@type'  => 'g:VertexProperty',
                                                            '@value' => [
                                                                'id'    => [
                                                                    '@type'  => 'g:Int64',
                                                                    '@value' => 7,
                                                                ],
                                                                'value' => 'josh',
                                                                'label' => 'name',
                                                            ],
                                                        ],
                                                    ],
                                                    'age'  => [
                                                        0 => [
                                                            '@type'  => 'g:VertexProperty',
                                                            '@value' => [
                                                                'id'    => [
                                                                    '@type'  => 'g:Int64',
                                                                    '@value' => 8,
                                                                ],
                                                                'value' => [
                                                                    '@type'  => 'g:Int32',
                                                                    '@value' => 32,
                                                                ],
                                                                'label' => 'age',
                                                            ],
                                                        ],
                                                    ],
                                                ],
                                            ],
                                        ],
                                        'value' => [
                                            '@type'  => 'g:Tree',
                                            '@value' => [
                                                0 => [
                                                    'key'   => [
                                                        '@type'  => 'g:VertexProperty',
                                                        '@value' => [
                                                            'id'    => [
                                                                '@type'  => 'g:Int64',
                                                                '@value' => 7,
                                                            ],
                                                            'value' => 'josh',
                                                            'label' => 'name',
                                                        ],
                                                    ],
                                                    'value' => [
                                                        '@type'  => 'g:Tree',
                                                        '@value' => [],
                                                    ],
                                                ],
                                            ],
                                        ],
                                    ],
                                ],
                            ],
                        ],
                    ],
                ],
            ],
            'meta'   => [
                '@type'  => 'g:Map',
                '@value' => [],
            ],
        ]);

        $this->assertEquals([
            [
                1 => [
                    'key'   => [
                        'id'         => 1,
                        'label'      => 'vertex',
                        'type'       => 'vertex',
                        'properties' => [
                            'name' => [['id' => 0, 'value' => 'marko', 'label' => 'name']],
                            'age'  => [['id' => 2, 'value' => 29, 'label' => 'age']],
                        ],
                    ],
                    'value' => [
                        2 => [
                            'key'   => [
                                'id'         => 2,
                                'label'      => 'vertex',
                                'type'       => 'vertex',
                                'properties' => [
                                    'name' => [['id' => 3, 'value' => 'vadas', 'label' => 'name']],
                                    'age'  => [['id' => 4, 'value' => 27, 'label' => 'age']],
                                ],
                            ],
                            'value' => [
                                3 => [
                                    'key'   => ['id' => 3, 'value' => 'vadas', 'label' => 'name'],
                                    'value' => [],
                                ],
                            ],
                        ],
                        3 => [
                            'key'   => [
                                'id'         => 3,
                                'label'      => 'vertex',
                                'type'       => 'vertex',
                                'properties' => [
                                    'name' => [['id' => 5, 'value' => 'lop', 'label' => 'name']],
                                    'lang' => [['id' => 6, 'value' => 'java', 'label' => 'lang']],
                                ],
                            ],
                            'value' => [
                                5 => [
                                    'key'   => ['id' => 5, 'value' => 'lop', 'label' => 'name'],
                                    'value' => [],
                                ],
                            ],
                        ],
                        4 => [
                            'key'   => [
                                'id'         => 4,
                                'label'      => 'vertex',
                                'type'       => 'vertex',
                                'properties' => [
                                    'name' => [['id' => 7, 'value' => 'josh', 'label' => 'name']],
                                    'age'  => [['id' => 8, 'value' => 32, 'label' => 'age']],
                                ],
                            ],
                            'value' => [
                                7 => [
                                    'key'   => ['id' => 7, 'value' => 'josh', 'label' => 'name'],
                                    'value' => [],
                                ],
                            ],
                        ],
                    ],
                ],
            ],
        ], $deconverted, "Incorrect deconversion for Path");
    }

    /**
     * Test deconverting a Complex List from graphson 3.0 format to native
     *
     * @return void
     */
    public function testDeconvertComplexList()
    {
        $serializer = new Gson3;

        $deconverted = $serializer->deconvertList([
            "friend",
            [
                "@type"  => "g:Int32",
                "@value" => 2009,
            ],
            [
                "@type"  => "g:List",
                "@value" => [
                    "friend",
                    [
                        "@type"  => "g:Int32",
                        "@value" => 2009,
                    ],
                ],
            ],
            TRUE,
        ]);

        $this->assertEquals([
            "friend",
            2009,
            ["friend", 2009],
            TRUE,
        ], $deconverted, "Incorrect deconversion for ComplexList");
    }

    /**
     * Test deconverting a Set from graphson 3.0 format to native
     *
     * @return void
     */
    public function testDeconvertSet()
    {
        $serializer = new Gson3;

        $deconverted = $serializer->deconvertSet([
            "friend",
            [
                "@type"  => "g:Int32",
                "@value" => 2009,
            ],
            TRUE,
        ]);

        $this->assertEquals([
            "friend",
            2009,
            TRUE,
        ], $deconverted, "Incorrect deconversion for Set");
    }

    /**
     * Test deconverting an empty Set from graphson 3.0 format to native
     *
     * @return void
     */
    public function testDeconvertEmptySet()
    {
        $serializer = new Gson3;

        $deconverted = $serializer->deconvertSet([]);

        $this->assertEquals([], $deconverted, "Incorrect deconversion for Empty Set");
    }

    /**
     * Test deconverting a Complex Set from graphson 3.0 format to native
     *
     * @return void
     */
    public function testDeconvertComplexSet()
    {
        $serializer = new Gson3;

        $deconverted = $serializer->deconvertSet([
            "friend",
            [
                "@type"  => "g:Int32",
                "@value" => 2009,
            ],
            [
                "@type"  => "g:List",
                "@value" => [
                    "friend",
                    [
                        "@type"  => "g:Int32",
                        "@value" => 2009,
                    ],
                ],
            ],
            TRUE,
        ]);

        $this->assertEquals([
            "friend",
            2009,
            ["friend", 2009],
            TRUE,
        ], $deconverted, "Incorrect deconversion for Complex Set");
    }

    /**
     * Test deconverting a Map from graphson 3.0 format to native
     *
     * @return void
     */
    public function testDeconvertMap()
    {
        $serializer = new Gson3;

        $deconverted = $serializer->deconvertMap([
            "test",
            "friend",
            ["@type" => "g:Int32", "@value" => 2009],
            ["@type" => "g:Int32", "@value" => 20],
            ["@type" => "g:Int32", "@value" => 20],
            TRUE,
            "time",
            ["@type" => "g:Date", "@value" => 456789],
        ]);

        $this->assertEquals([
            "test" => "friend",
            2009   => 20,
            20     => TRUE,
            "time" => 456789,
        ], $deconverted, "Incorrect deconversion for Map");
    }

    /**
     * Test deconverting a broken Map from graphson 3.0 format to native
     * If a map has an odd number of items it should throw an error
     *
     * @expectedException \Brightzone\GremlinDriver\InternalException
     */
    public function testDeconvertOddNumberMap()
    {
        $serializer = new Gson3;

        $serializer->deconvertMap([
            "test",
            "friend",
            ["@type" => "g:Int32", "@value" => 2009],
            ["@type" => "g:Int32", "@value" => 20],
            ["@type" => "g:Int32", "@value" => 20],
            TRUE,
            "time",
        ]);
    }

    /**
     * Test deconverting a broken Map from graphson 3.0 format to native
     * If a map has a key other than int or string
     *
     * @expectedException \Brightzone\GremlinDriver\InternalException
     */
    public function testDeconvertNonStandardKeyMap()
    {
        $serializer = new Gson3;

        $serializer->deconvertMap([
            "test",
            "friend",
            ["@type" => "g:List", "@value" => [20]],
            ["@type" => "g:Int32", "@value" => 2009],
            ["@type" => "g:Int32", "@value" => 20],
            TRUE,
            "time",
        ]);
    }

    /**
     * Test deconverting a complex Map from graphson 3.0 format to native
     *
     * @return void
     */
    public function testDeconvertComplexMap()
    {
        $serializer = new Gson3;

        $deconverted = $serializer->deconvertMap([
            "test",
            "friend",
            ["@type" => "g:Int32", "@value" => 2009],
            ["@type" => "g:Int64", "@value" => 20],
            "test",
            TRUE,
            "time",
            [
                "@type" => "g:Map", "@value" => [
                "test",
                "friend",
                ["@type" => "g:Int32", "@value" => 2009],
                ["@type" => "g:Int32", "@value" => 20],
            ],
            ],
        ]);

        $this->assertEquals([
            "test" => "friend",
            2009   => 20,
            "test" => TRUE,
            "time" => [
                "test" => "friend",
                2009   => 20,
            ],
        ], $deconverted, "Incorrect deconversion for Map");
    }

    /**
     * Test deconverting a Empty Map from graphson 3.0 format to native
     *
     * @return void
     */
    public function testDeconvertEmptyMap()
    {
        $serializer = new Gson3;

        $deconverted = $serializer->deconvertMap([]);
        $this->assertEquals([], $deconverted, "Incorrect deconversion for Empty Map");
    }

    /**
     * Test deconverting a Empty Map from graphson 3.0 format to native
     *
     * @return void
     * @expectedException \Brightzone\GremlinDriver\InternalException
     */
    public function testDeconvertMapOddElements()
    {
        $serializer = new Gson3;

        $deconverted = $serializer->deconvertMap([
            "test",
            "friend",
            ["@type" => "g:Int32", "@value" => 2009],
        ]);
    }

    /**
     * Test deconverting any item
     *
     * @return void
     */
    public function testDeconvert()
    {
        $serializer = new Gson3;
        $intType = $this->getintType();

        // List
        $deconverted = $serializer->deconvert(["@type" => "g:List", "@value" => ["test", "test2"]]);
        $this->assertEquals(["test", "test2"], $deconverted, "Incorrect GS3 deconversion for List");

        // Map
        $deconverted = $serializer->deconvert([
            "@type"  => "g:Map",
            "@value" => [
                ["@type" => $intType, "@value" => 2], "test",
                ["@type" => $intType, "@value" => 7], "test2",
            ],
        ]);
        $this->assertEquals([2 => "test", 7 => "test2"], $deconverted, "Incorrect GS3 deconversion for Map");

        // String
        $deconverted = $serializer->deconvert("testing");
        $this->assertEquals("testing", $deconverted, "Incorrect GS3 deconversion for String");

        // bool
        $deconverted = $serializer->deconvert(TRUE);
        $this->assertEquals(TRUE, $deconverted, "Incorrect GS3 deconversion for Bool");

        // Double
        $deconverted = $serializer->deconvert(["@type" => "g:Double", "@value" => 5.3]);
        $this->assertEquals(5.3, $deconverted, "Incorrect GS3 deconversion for Double");

        // Int
        $deconverted = $serializer->deconvert(["@type" => $intType, "@value" => 5]);
        $this->assertEquals(5, $deconverted, "Incorrect GS3 deconversion for Integer");
    }

    /**
     * Test deconverting an unsupported item
     *
     * @expectedException \Brightzone\GremlinDriver\InternalException
     */
    public function testDeconvertUnsupported()
    {
        $serializer = new Gson3;

        $serializer->deconvert(["@type" => "g:Unknown", "@value" => 5]);
    }

    /**
     * Test deconverting a complex item
     *
     */
    public function testDeconvertComplex()
    {
        $serializer = new Gson3;
        $deconverted = $serializer->deconvert([
            "@type"  => "g:List",
            "@value" => [
                [
                    "@type"  => "g:List",
                    "@value" => [
                        "something",
                        ["@type" => "g:Int64", "@value" => 32],
                    ],
                ],
                TRUE,
                [
                    "@type"  => "g:Map",
                    "@value" => [
                        ["@type" => "g:Int64", "@value" => 0],
                        "lala",
                        ["@type" => "g:Int64", "@value" => 33],
                        ["@type" => "g:Int64", "@value" => 21],
                        "key",
                        [
                            "@type"  => "g:List",
                            "@value" => [
                                "lock",
                                "door",
                                [
                                    "@type"  => "g:Map",
                                    "@value" => [
                                        "again",
                                        "inside",
                                    ],
                                ],
                            ],
                        ],
                    ],
                ],
                ["@type" => "g:Int64", "@value" => 30],
            ],
        ]);

        $this->assertEquals([
            [
                "something",
                32,
            ],
            TRUE,
            [
                "lala",
                33    => 21,
                "key" => [
                    "lock",
                    "door",
                    [
                        "again" => "inside",
                    ],
                ],
            ],
            30,
        ], $deconverted, "Incorrect GS3 deconversion for Complex object");
    }

    /**
     * Test unserializing array to GraphSON 3.0
     *
     * @return void
     */
    public function testUnserialize()
    {
        $serializer = new Gson3;
        $data = '{"@type":"g:List","@value":[{"@type":"g:List","@value":["something",{"@type":"g:Int64","@value":32}]},true,{"@type":"g:Map","@value":[{"@type":"g:Int64","@value":0},"lala",{"@type":"g:Int64","@value":33},{"@type":"g:Int64","@value":21},"key",{"@type":"g:List","@value":["lock","door",{"@type":"g:Map","@value":["again","inside"]}]}]},{"@type":"g:Int64","@value":30}]}';

        $data = $serializer->unserialize($data);
        $this->assertEquals([
            [
                "something",
                32,
            ],
            TRUE,
            [
                "lala",
                33    => 21,
                "key" => [
                    "lock",
                    "door",
                    [
                        "again" => "inside",
                    ],
                ],
            ],
            30,
        ], $data, "incorrect GraphSON 3.0 was generated");
    }

    /**
     * Test a basic graphson3 client-server exchange
     * @return void
     */
    public function testConnect()
    {
        $db = new Connection([
            'host'     => 'localhost',
            'port'     => 8182,
            'graph'    => 'graph',
            'username' => $this->username,
            'password' => $this->password,
        ]);

        $db->message->registerSerializer(new Gson3, TRUE);

        $message = $db->open();
        $this->assertNotEquals($message, FALSE, 'Failed to connect to db');

        $result = $db->send('5+5');
        $this->assertEquals(10, $result[0], 'Script response message is not the right type. (Maybe it\'s an error)');

        $result = $db->send('g.V()');
        $this->assertEquals(6, count($result), 'Script response message is not the right type. (Maybe it\'s an error)');

        //check disconnection
        $db->close();
        $this->assertFALSE($db->isConnected(), 'Despite not throwing errors, Socket connection is not established');
    }
}
<?php

namespace Brightzone\GremlinDriver\Tests;

use Brightzone\GremlinDriver\Connection;
use Brightzone\GremlinDriver\Helper;
use Brightzone\GremlinDriver\Message;
use Brightzone\GremlinDriver\Workload;

/**
 * Unit testing of Gremlin-php
 * This actually runs tests against the server
 *
 * @category DB
 * @package  Tests
 * @author   Dylan Millikin <dylan.millikin@brightzone.fr>
 * @license  http://www.apache.org/licenses/LICENSE-2.0 apache2
 */
class GremlinServerTest extends RexsterTestCase
{
    /**
     * Sends a param, saves it to a node then retrieves it and compares it to the original
     *
     * @param mixed $param the parameter we would like to submit
     *
     * @return void
     */
    private function sendParam($param)
    {
        $db = new Connection([
            'host'     => 'localhost',
            'port'     => 8182,
            'graph'    => 'graph',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->open();
        $message = $db->message;
        $message->gremlin = "graph.addVertex('paramTest', B_PARAM_VALUE);";
        $message->bindValue('B_PARAM_VALUE', $param);

        $db->send();

        $result = $db->send("g.V().has('paramTest').values('paramTest')");
        $db->run("g.V().has('paramTest').sideEffect{it.get().remove()}.iterate()");

        $this->assertTrue(!empty($result), "the result should contain a vertex");
        $this->assertSame($param, $result[0], "the param retrieved was different from the one sent");
    }

    /**
     * Test sending a mixed List param
     */
    public function testListParam()
    {
        $this->sendParam(["string1", "string2", "12", 3]);
    }

    /**
     * Test sending a mixed Map param
     */
    public function testMapParam()
    {
        $this->sendParam(["key1" => "string1", "key2" => "string2", "1" => "12", 2 => 3]);
    }

    /**
     * Test sending a mixed Map param containing other maps
     */
    public function testMapofMapsParam()
    {
        $this->sendParam([
            "key1" => "string1",
            "key2" => "string2",
            "1"    => "12",
            2      => 3,
            "map"  => [
                "map" => [
                    "map" => [
                        "id" => "lala",
                    ],
                ],
            ],
        ]);
    }

    /**
     * Test sending a mixed Map param
     */
    public function testListofMapsAndListParam()
    {
        $this->sendParam([
            [
                "map" => [
                    "map" => [
                        "id" => "first",
                    ],
                ],
            ],
            [
                "map" => [
                    "map" => [
                        "id" => "second",
                    ],
                ],
            ],
            [1, 2, 3, 4],
            [
                "map" => [
                    "map" => [
                        "id" => "third",
                    ],
                ],
            ],
        ]);
    }

    /**
     * Test sending a mixed Map param
     */
    public function testListofMixedParam()
    {
        $this->sendParam([
            "string1",
            "string2",
            "12",
            3,
            ["item1", "item2"],
            [
                "map" => [
                    "map" => [
                        "id" => "lala",
                    ],
                ],
            ],
        ]);
    }

    /**
     * Test the vertex format for changes
     */
    public function testVertexPropertyFormat()
    {
        $db = new Connection([
            'host'     => 'localhost',
            'port'     => 8182,
            'graph'    => 'graph',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->open();
        $result = $db->send("g.V(1).properties('name')");
        $vertexProperty = [
            0 => [
                "id"    => 0,
                "value" => "marko",
                "label" => "name",
            ],
        ];
        $this->ksortTree($vertexProperty);
        $this->ksortTree($result);
        $this->assertEquals($vertexProperty, $result, "vertex property wasn't as expected");
    }

    /**
     * Test the vertex format for changes
     */
    public function testVertexFormat()
    {
        $db = new Connection([
            'host'     => 'localhost',
            'port'     => 8182,
            'graph'    => 'graph',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->open();
        $result = $db->send("g.V(1)");
        $vertex = [
            0 => [
                "id"         => 1,
                "label"      => "vertex",
                "properties" => [
                    "name" => [
                        0 => [
                            "id"    => 0,
                            "value" => "marko",
                        ],
                    ],
                    "age"  => [
                        0 => [
                            "id"    => 2,
                            "value" => 29,
                        ],
                    ],
                ],
                "type"       => "vertex",
            ],
        ];
        $this->ksortTree($vertex);
        $this->ksortTree($result);
        $this->assertEquals($vertex, $result, "vertex property wasn't as expected");
    }

    /**
     * Test the edge format for changes
     */
    public function testEdgeFormat()
    {
        $db = new Connection([
            'host'     => 'localhost',
            'port'     => 8182,
            'graph'    => 'graph',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->open();
        $result = $db->send("g.E(12)");
        $edge = [
            0 => [
                "id"         => 12,
                "label"      => "created",
                "inVLabel"   => "vertex",
                "outVLabel"  => "vertex",
                "inV"        => 3,
                "outV"       => 6,
                "properties" => [
                    "weight" => 0.2,
                ],
                "type"       => "edge",
            ],
        ];
        $this->ksortTree($edge);
        $this->ksortTree($result);
        $this->assertEquals($edge, $result, "vertex property wasn't as expected");
    }

    /**
     * Test the property format for changes
     */
    public function testPropertyFormat()
    {
        $db = new Connection([
            'host'     => 'localhost',
            'port'     => 8182,
            'graph'    => 'graph',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->open();
        $result = $db->send("g.E(12).properties('weight')");
        $property = [
            0 => [
                "key"   => "weight",
                "value" => 0.2,
            ],
        ];
        $this->ksortTree($property);
        $this->ksortTree($result);
        $this->assertEquals($property, $result, "vertex property wasn't as expected");
    }

    /**
     * Test the valuemap() with empty param
     */
    public function testValueMap()
    {
        $db = new Connection([
            'host'     => 'localhost',
            'port'     => 8182,
            'graph'    => 'graph',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->open();
        $result = $db->send("g.V(1).valueMap()");

        $property = [
            0 => [
                "name" => ["marko"],
                "age"  => [29],
            ],
        ];
        $this->ksortTree($property);
        $this->ksortTree($result);

        $this->assertEquals($property, $result, "Not the expected value map");
    }

    /**
     * Test valueMap(true) which should return id and label
     */
    public function testValueMapTrue()
    {
        $db = new Connection([
            'host'     => 'localhost',
            'port'     => 8182,
            'graph'    => 'graph',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->open();
        $result = $db->send("g.V(1).valueMap(true)");

        $property = [
            0 => [
                "name"  => ["marko"],
                "age"   => [29],
                "id"    => 1,
                "label" => "vertex",
            ],
        ];
        $this->ksortTree($property);
        $this->ksortTree($result);

        $this->assertEquals($property, $result, "Not the expected value map");
    }

    /**
     * Protected ksort for tree that helps with testing.
     *
     * @param $array
     *
     * @return bool
     */

    protected function ksortTree(&$array)
    {
        if(!is_array($array))
        {
            return FALSE;
        }

        ksort($array);
        foreach($array as $k => $v)
        {
            $this->ksortTree($array[$k]);
        }

        return TRUE;
    }
}
<?php

namespace Brightzone\GremlinDriver\Tests;

use Brightzone\GremlinDriver\Connection;
use Brightzone\GremlinDriver\Helper;
use Brightzone\GremlinDriver\Message;
use Brightzone\GremlinDriver\RequestMessage;
use Brightzone\GremlinDriver\Serializers\Json;
use Brightzone\GremlinDriver\Tests\Stubs\IncorrectlyFormattedMessage;
use Brightzone\GremlinDriver\Workload;

/**
 * Unit testing of Gremlin-php
 *
 * @category DB
 * @package  Tests
 * @author   Dylan Millikin <dylan.millikin@brightzone.fr>
 * @license  http://www.apache.org/licenses/LICENSE-2.0 apache2
 */
class RexsterTest extends RexsterTestCase
{
    /**
     * Testing UUID
     *
     * @return void
     */
    public function testCreateUuid()
    {
        $uuid1 = Helper::createUuid();
        $this->assertTRUE(mb_strlen($uuid1, 'ISO-8859-1') == 36, 'The generated UUID is not the correct length ');
        $this->assertTRUE(count(str_split($uuid1, 1)) == 36, 'The generated UUID is not the correct length');

        $uuid = Helper::uuidToBin($uuid1);
        $this->assertTRUE(mb_strlen($uuid, 'ISO-8859-1') == 16, 'The conversion to bin of the UUID is not the correct length (16 bytes)');
        $this->assertTRUE(count(str_split($uuid, 1)) == 16, 'The conversion to bin of the UUID is not the correct length (16 bytes)');
        //test that the bin format is correct
        $this->assertEquals(bin2hex($uuid), str_replace('-', '', trim($uuid1)), 'The conversion to bin of the UUID is incorrect');

        $uuid = Helper::binToUuid($uuid);
        $this->assertTRUE(mb_strlen($uuid, 'ISO-8859-1') == 36, 'The conversion of bin UUID to UUID is not the correct length');
        $this->assertTRUE(count(str_split($uuid, 1)) == 36, 'The conversion of bin UUID to UUID is not the correct length');
        $this->assertEquals($uuid, $uuid1, 'UUID before and after convertion do not match');
    }

    /**
     * Testing binary conversion TO
     *
     * @return void
     */
    public function testConvertIntTo32Bit()
    {
        $converted = Helper::convertIntTo32Bit(84);
        $this->assertEquals(mb_strlen($converted, 'ISO-8859-1'), 4, 'The converted int is not the correct byte length (4 bytes)'); //should be 32 bits / 4 bytes
        $this->assertEquals(bin2hex($converted), '00000054', 'The converted int is incorrect');

        $converted = Helper::convertIntTo32Bit(9999);
        $this->assertEquals(mb_strlen($converted, 'ISO-8859-1'), 4, 'The converted int is not the correct byte length (4 bytes)'); //should be 32 bits / 4 bytes
        $this->assertEquals(bin2hex($converted), '0000270f', 'The converted int is incorrect');

        $converted = Helper::convertIntTo32Bit(10000000000);
        $this->assertEquals(mb_strlen($converted, 'ISO-8859-1'), 4, 'The converted int is not the correct byte length (4 bytes)'); //should be 32 bits / 4 bytes
        $this->assertNotEquals(bin2hex($converted), '2540BE400', 'The converted int is incorrect. ints above 4 bytes should have the extra bytes truncated'); // hex for 10000000000
        //the extra 3 bits should be taken off the begining of binary data. This test checks this
        $this->assertEquals(bin2hex($converted), '540be400', 'The converted int is incorrect. ints above 4 bytes should have the extra bytes truncated');
    }

    /**
     * Testing binary conversion FROM
     *
     * @return void
     */
    public function testConvertIntFrom32Bit()
    {
        $converted = Helper::convertIntFrom32Bit(Helper::convertIntTo32Bit(84));
        $this->assertEquals($converted, 84, 'The conversion of 32bit int to int is incorrect');

        $converted = Helper::convertIntFrom32Bit(Helper::convertIntTo32Bit(9999));
        $this->assertEquals($converted, 9999, 'The conversion of 32bit int to int is incorrect');

        $converted = Helper::convertIntFrom32Bit(Helper::convertIntTo32Bit(10000000000));
        $this->assertEquals($converted, 1410065408, 'The conversion of 32bit int to int is incorrect. Bit truncating issue'); //bit truncating check
    }

    /**
     * Testing Connection
     *
     * @return void
     */
    public function testConnectSuccess()
    {
        $db = new Connection([
            'host'     => 'localhost',
            'graph'    => 'graph',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);

        $this->assertTrue($db->open(), "did not succesfully connect");
        $db->close();

        $db = new Connection([
            'host'     => 'localhost',
            'graph'    => 'graph',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $this->assertTrue($db->open(), "did not succesfully connect");
        $db->close();

        $db = new Connection([
            'host'     => 'localhost',
            'graph'    => 'graph',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $this->assertTrue($db->open(), "did not succesfully connect");
        $db->close();
    }

    /**
     * Testing unknown host connection errors
     *
     * @expectedException \Brightzone\GremlinDriver\InternalException
     *
     * @return void
     */
    public function testConnectErrorsUnknownHost()
    {
        $db = new Connection([
            'host' => 'unknownhost',
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->timeout = 0.5;
        $db->open();
    }

    /**
     * Testing connection issues with empty provided data
     *
     * @expectedException \Brightzone\GremlinDriver\InternalException
     *
     * @return void
     */
    public function testConnectErrorsEmptyData()
    {
        $db = new Connection([
            'host'     => '',
            'username' => '',
            'password' => '',
            'graph'    => '',
            'port'     => '443',
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->timeout = 0.5;
        $db->open();
    }

    /**
     * Testing unknown host connection errors try catch scenario
     * This is meant to cover issue #37
     *
     * @return void
     */
    public function testConnectErrorsUnknownHostTryCatch()
    {
        $db = new Connection([
            'host' => 'unknownhost',
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->timeout = 0.5;
        try
        {
            $db->open();
        }
        catch(\Brightzone\GremlinDriver\InternalException $e)
        {
            $error_message = $e->getMessage();
        }
        $this->assertTrue(!empty($error_message), "An error message should be set");
    }

    /**
     * Testing wrong port connection errors
     *
     * @expectedException \Brightzone\GremlinDriver\InternalException
     *
     * @return void
     */
    public function testConnectErrorsWrongPort()
    {
        $db = new Connection([
            'port' => 8187,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->timeout = 0.5;
        $db->open();
    }

    /**
     * Testing connection when sending an incorrect request
     *
     * @expectedException \Brightzone\GremlinDriver\ServerException
     *
     * @return void
     */
    public function testConnectErrorsWrongRequest()
    {
        $db = new Connection([
            'host'     => 'localhost',
            'port'     => 8182,
            'graph'    => 'graph',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->timeout = 0.5;
        $db->open();
        $msg = new IncorrectlyFormattedMessage();
        $msg->registerSerializer(static::$serializer);
        $msg->gremlin = '5+5';
        $msg->op = 'eval';
        $msg->processor = '';

        $db->send($msg);
    }

    /**
     * Testing internalerror on run
     *
     * @expectedException \Brightzone\GremlinDriver\InternalException
     *
     * @return void
     */
    public function testConnectInetrnalErrorOnRun()
    {
        $db = new Connection([
            'host'     => 'localhost',
            'port'     => 8182,
            'graph'    => 'graph',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->timeout = 0.5;
        $db->open();
        $msg = new IncorrectlyFormattedMessage();
        $msg->throwErrorOnParse = TRUE;
        $msg->registerSerializer(static::$serializer);
        $msg->gremlin = '5+5';
        $msg->op = 'eval';
        $msg->processor = '';

        $db->send($msg);
    }

    /**
     * Testing connection close
     *
     * @return void
     */
    public function testConnectCloseSuccess()
    {
        //do all connection checks
        $db = new Connection([
            'host'     => 'localhost',
            'graph'    => 'graph',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->open();

        //check disconnection
        $db->close();
        $this->assertFALSE($db->isConnected(), 'Despite not throwing errors, Socket connection is still established');
    }

    /**
     * Testing Script run against DB
     *
     * @return void
     */
    public function testRunScriptNoSession()
    {
        $db = new Connection([
            'host'     => 'localhost',
            'port'     => 8182,
            'graph'    => 'graph',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $message = $db->open();
        $this->assertNotEquals($message, FALSE, 'Failed to connect to db');

        $result = $db->send('5+5');
        $this->assertEquals(10, $result[0], 'Script response message is not the right type. (Maybe it\'s an error)');

        $result = $db->send('g.V()');
        $this->assertEquals(6, count($result), 'Script response message is not the right type. (Maybe it\'s an error)');

        //check disconnection
        $db->close();
        $this->assertFALSE($db->isConnected(), 'Despite not throwing errors, Socket connection is not established');
    }

    /**
     * Testing Script run against DB
     * Sessions and transactions are linked ATM
     *
     * @return void
     */
    public function testRunScriptSession()
    {
        $db = new Connection([
            'host'     => 'localhost',
            'port'     => 8182,
            'graph'    => 'graph',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $message = $db->open();

        $this->assertNotEquals($message, FALSE, 'Failed to connect to db');

        $result = $db->send('cal = 5+5', 'session', 'eval');

        $this->assertEquals($result[0], 10, 'Script response message is not the right type. (Maybe it\'s an error)'); //check it's a session script reply

        $result = $db->send('cal', 'session', 'eval');
        $this->assertEquals($result[0], 10, 'Script response message is not the right type. (Maybe it\'s an error)'); //check it's a session script reply

        //check disconnection
        $db->close();
        $this->assertFALSE($db->isConnected(), 'Despite not throwing errors, Socket connection is not established');
        $this->assertFALSE($db->inTransaction(), 'Despite closing, transaction not closed');
    }

    /**
     * Testing That the server closes the session
     *
     * @expectedException \Brightzone\GremlinDriver\ServerException
     *
     * @return void
     */
    public function testSessionClose()
    {
        $db = new Connection([
            'host'     => 'localhost',
            'port'     => 8182,
            'graph'    => 'graph',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $message = $db->open();

        $this->assertNotEquals($message, FALSE, 'Failed to connect to db');

        $result = $db->send('cal = 5+5', 'session', 'eval');
        $sessionUid = $db->getSession();
        $this->assertEquals($result[0], 10, 'Script response message is not the right type. (Maybe it\'s an error)'); //check it's a session script reply

        $result = $db->send('cal', 'session', 'eval');
        $this->assertEquals($result[0], 10, 'Script response message is not the right type. (Maybe it\'s an error)'); //check it's a session script reply

        //check disconnection
        try
        {
            $db->close();
        }
        catch(\Exception $e)
        {
            $this->fail("Close shouldn't throw an exception");
        }
        $this->assertFALSE($db->isConnected(), 'Despite not throwing errors, Socket connection is established');
        $this->assertFALSE($db->inTransaction(), 'Despite closing, transaction not closed');

        $db2 = new Connection([
            'host'     => 'localhost',
            'port'     => 8182,
            'graph'    => 'graph',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db2->message->registerSerializer(static::$serializer, TRUE);
        $message = $db2->open();

        $this->assertNotEquals($message, FALSE, 'Failed to connect to db');
        $msg = new Message();
        $msg->registerSerializer(static::$serializer);
        $msg->gremlin = 'cal';
        $msg->op = 'eval';
        $msg->processor = 'session';
        $msg->setArguments(['session' => $sessionUid]);
        $result = $db2->send($msg); // should throw an error as this should be next session
        $this->fail("Second request should have failed and this assert never run");
    }

    /**
     * Testing Script run with bindings
     *
     * @return void
     */
    public function testRunScriptWithBindings()
    {
        $db = new Connection([
            'host'     => 'localhost',
            'port'     => 8182,
            'graph'    => 'graph',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $message = $db->open();
        $this->assertNotEquals($message, FALSE);

        $db->message->gremlin = 'g.V(CUSTO_BINDING)';
        $db->message->bindValue('CUSTO_BINDING', 2);
        $result = $db->send();

        $this->assertNotEquals($result, FALSE, 'Running a script with bindings produced an error');

        //check disconnection
        $message = $db->close();
        $this->assertNotEquals($message, FALSE, 'Disconnecting from a session where bindings were used created an error');
    }

    /**
     * Testing Script run with bindings
     *
     * @return void
     */
    public function testRunScriptWithVarsInSession()
    {
        $db = new Connection([
            'host'     => 'localhost',
            'port'     => 8182,
            'graph'    => 'graph',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $message = $db->open();
        $this->assertNotEquals($message, FALSE);

        $db->message->gremlin = 'cal = 5+5';
        $db->message->processor = 'session';
        $db->message->setArguments(['session' => $db->getSession()]);
        $result = $db->send(NULL);

        $this->assertNotEquals($result, FALSE, 'Running a script with bindings produced an error');

        $db->message->gremlin = 'cal = 5+5';
        $result = $db->send(NULL, 'session', 'eval');
        $this->assertEquals($result, [10], 'Running a script with bindings produced an error');


        //check disconnection
        $message = $db->close();
        $this->assertNotEquals($message, FALSE, 'Disconnecting from a session where bindings were used created an error');
    }

    /**
     * Testing Script run with bindings
     *
     * @return void
     */
    public function testRunScriptWithBindingsInSession()
    {
        $db = new Connection([
            'host'     => 'localhost',
            'port'     => 8182,
            'graph'    => 'graph',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $message = $db->open();
        $this->assertNotEquals($message, FALSE);

        $db->message->gremlin = 'g.V(CUSTO_BIND)';
        $db->message->bindValue('CUSTO_BIND', 2);
        $result = $db->send(NULL, 'session', 'eval');

        $this->assertNotEquals($result, [], 'Running a script with bindings produced an error');

        $db->message->gremlin = 'g.V(CUSTO_BIND)';
        $result = $db->send(NULL, 'session', 'eval');
        $this->assertNotEquals($result, [], 'Running a script with bindings produced an error');


        //check disconnection
        $message = $db->close();
        $this->assertNotEquals($message, FALSE, 'Disconnecting from a session where bindings were used created an error');
    }

    /**
     * Testing sendMessage without previous connection
     *
     * @expectedException \Brightzone\GremlinDriver\InternalException
     *
     * @return void
     */
    public function testSendMessageWithoutConnection()
    {
        $db = new Connection();
        $db->message->registerSerializer(static::$serializer, TRUE);
        $msg = new Message();
        $db->send($msg);
    }

    /**
     * Testing runScript() without making a previous
     * socket connection with open()
     *
     * @expectedException \Brightzone\GremlinDriver\InternalException
     *
     * @return void
     */
    public function testRunScriptWithoutConnection()
    {
        $db = new Connection();
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->send();
    }

    /**
     * Testing getSerializer
     *
     * @return void
     */
    public function testgetSerializer()
    {
        $db = new Connection();
        $serializer = $db->message->getSerializer();

        $this->assertTRUE($serializer instanceof \Brightzone\GremlinDriver\Serializers\Json, 'Initial serializer set failed');
        $db->message->registerSerializer('\Brightzone\GremlinDriver\Tests\Stubs\TestSerializer');
        $this->assertTRUE($db->message->getSerializer() instanceof \Brightzone\GremlinDriver\Tests\Stubs\TestSerializer, 'Failed to change serializer');
    }

    /**
     * Testing getSerializer name
     *
     * @return void
     */
    public function testgetSerializerName()
    {
        $db = new Connection();
        $serializer = $db->message->getSerializer();

        $this->assertEquals('JSON', $serializer->getName(), 'Incorrect serializer name');
    }

    /**
     * Testing getSerializer by mimeType
     *
     * @return void
     */
    public function testgetSerializerByMimeType()
    {
        $db = new Connection();
        $db->message->registerSerializer('\Brightzone\GremlinDriver\Tests\Stubs\TestSerializer');
        $db->message->registerSerializer('\Brightzone\GremlinDriver\Serializers\Json');
        $serializer = $db->message->getSerializer('application/json');
        $this->assertEquals('JSON', $serializer->getName(), 'Incorrect serializer name');
        $serializer = $db->message->getSerializer('application/test');
        $this->assertEquals('TEST', $serializer->getName(), 'Incorrect serializer name');
    }

    /**
     * Testing getSerializer
     *
     * @expectedException \Brightzone\GremlinDriver\ServerException
     *
     * @return void
     */
    public function testIncorrectGremlin()
    {
        $db = new Connection([
            'host'     => 'localhost',
            'port'     => 8182,
            'graph'    => 'graph',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $message = $db->open();
        $this->assertNotEquals($message, FALSE, 'Failed to connect to db');

        $db->send('g.V().incorect()');
    }

    /**
     * Testing getSerializer
     *
     * @expectedException \Brightzone\GremlinDriver\ServerException
     *
     * @return void
     */
    public function testEmptyResult()
    {
        $db = new Connection([
            'host'     => 'localhost',
            'port'     => 8182,
            'graph'    => 'graph',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $message = $db->open();
        $this->assertNotEquals($message, FALSE, 'Failed to connect to db');

        $db->send('g.V().has("idontexists")');
    }

    /**
     * Testing Helper random string generator with spaces
     *
     * @return void
     */
    public function testRandomGenerator()
    {
        $string = Helper::generateRandomString(10, TRUE, FALSE);
        $this->assertTrue(strlen($string) == 10, "string should contain 10 characters");
        $this->assertTrue(strpos($string, ' ') !== FALSE, "spaces should have been found");
    }

    /**
     * Testing Message isset
     *
     * @return void
     */
    public function testMessageIsset()
    {
        $db = new Connection([
            'host'     => 'localhost',
            'port'     => 8182,
            'graph'    => 'graph',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->open();
        $this->assertTrue(isset($db->message->gremlin), 'gremlin should not be set');
        $db->message->gremlin = "5 + 5";
        $this->assertTrue(isset($db->message->gremlin), 'gremlin should be set');
        $this->assertTrue(isset($db->message->op), 'op should be set');
    }

    /**
     * Testing Message getter error
     *
     * @expectedException \Brightzone\GremlinDriver\InternalException
     *
     * @return void
     */
    public function testMessageGetError()
    {
        $db = new Connection([
            'host'     => 'localhost',
            'port'     => 8182,
            'graph'    => 'graph',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->open();
        $this->assertTrue(isset($db->message->gremlin), 'gremlin should not be set');
        $what = $db->message->something;
    }

    /**
     * Testing Message serializer unknown getter error
     *
     * @expectedException \Brightzone\GremlinDriver\InternalException
     *
     * @return void
     */
    public function testMessageGetSerializerError()
    {
        $db = new Connection([
            'host'     => 'localhost',
            'port'     => 8182,
            'graph'    => 'graph',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->open();
        $db->message->getSerializer("mimeType/noexist");
    }

    /**
     * Testing Message serializer non interfaced setter error
     *
     * @expectedException \Brightzone\GremlinDriver\InternalException
     *
     * @return void
     */
    public function testMessageNonInterfacedSerializerError()
    {
        $db = new Connection([
            'host'     => 'localhost',
            'port'     => 8182,
            'graph'    => 'graph',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db->message->registerSerializer(new Connection(), TRUE); // provide incorrect class
    }

    /**
     * Testing Message serializer non existing class setter error
     *
     * @expectedException \Brightzone\GremlinDriver\InternalException
     *
     * @return void
     */
    public function testMessageNonExistingClassSerializerError()
    {
        $db = new Connection([
            'host'     => 'localhost',
            'port'     => 8182,
            'graph'    => 'graph',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db->message->registerSerializer('\something\that\doesnot\Exist', TRUE); // provide incorrect class
    }

    /**
     * Test Connection Construct
     *
     * @return void
     */
    public function testConnectionConstruct()
    {
        $db = new Connection(['host' => 'localhost', 'port' => 8182, 'graph' => 'graph']);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $this->assertEquals($db->host, 'localhost', 'incorrect host');
        $this->assertEquals($db->port, 8182, 'incorrect port');
        $this->assertEquals($db->graph, 'graph', 'incorrect graph');
    }

    /**
     * Test merging of streamed results.
     *
     * @return void
     */
    public function testMergedStream()
    {
        $db = new Connection([
            'host'  => 'localhost',
            'port'  => 8182,
            'graph' => 'graph',
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $message = $db->open();

        $result = $db->send('g.V().emit().repeat(__.both()).times(5)');
        $this->assertEquals(714, count($result), 'Did not find the correct amounts of vertices'); //check it's a session script reply
    }

    /**
     * Test Workload retry strategy
     *
     * @expectedException \Brightzone\GremlinDriver\ServerException
     * @return void
     * @throws \Exception
     */
    public function testRetry()
    {
        $db = new Connection([
            'host'          => 'localhost',
            'port'          => 8182,
            'graph'         => 'graph',
            'retryAttempts' => 5,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->open();

        $count = 0;
        $workload = new Workload(function(&$count) {
            $count++;
            throw new \Brightzone\GremlinDriver\ServerException("test error", 597);
        }, [&$count]);

        try
        {
            $response = $workload->linearRetry($db->retryAttempts);
        }
        catch(\Exception $e)
        {
            $this->assertEquals(5, $count, "incorrect number of attempts executed");
            throw $e;
        }
    }

    /**
     * Test opening multiple times
     *
     * @return void
     */
    public function testMultipleOpen()
    {
        $db = new Connection([
            'host'          => 'localhost',
            'port'          => 8182,
            'graph'         => 'graph',
            'retryAttempts' => 5,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->open();
        $db->open();

        $this->assertTrue(TRUE); // just asserting we get here and no error is thrown.
    }

    /**
     * Test unmasking of packet
     *
     * @return void
     */
    public function testPackUnpack()
    {
        $message = new Message();
        //$message->status = ["code" => 200];
        $message->gremlin = "something";
        $message->registerSerializer('\Brightzone\GremlinDriver\Serializers\Json');

        $payload = $message->buildMessage();

        $expected = [
            'requestId' => $message->requestUuid,
            'processor' => '',
            'op'        => 'eval',
            'args'      => [
                'gremlin' => 'something',
            ],
        ];

        $connection = new \Brightzone\GremlinDriver\Tests\Stubs\Connection(["_acceptDiffResponseFormat" => TRUE]);
        $connection->setSocket($this->invokeMethod($connection, 'webSocketPack', [$payload, $type = 'binary', $masked = TRUE]));

        $data = $this->invokeMethod($connection, 'socketGetMessage');
        $this->assertEquals($expected, $data, "could not unpack properly");
    }

    /**
     * Test configuration for empty result sets instead of error
     *
     * @return void
     */
    public function testEmptyResultSetNoException()
    {
        $db = new Connection([
            'host'          => 'localhost',
            'port'          => 8182,
            'graph'         => 'graph',
            'retryAttempts' => 5,
            'emptySet'      => TRUE,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->open();

        $result = $db->send("g.V().has('name', 'doesnotexist')");
        $this->assertTrue(empty($result), "the result set should be empty");
    }

    /**
     * Test configuration for empty result sets instead of error
     *
     * @expectedException \Brightzone\GremlinDriver\ServerException
     *
     * @return void
     */
    public function testEmptyResultSetException()
    {
        $db = new Connection([
            'host'          => 'localhost',
            'port'          => 8182,
            'graph'         => 'graph',
            'retryAttempts' => 5,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->open();

        $result = $db->send("g.V().has('name', 'doesnotexist')");
    }

    /**
     * Lets test returning a large set back from the database
     *
     * @return void
     */
    public function testLargeResponseSet()
    {
        $db = new Connection([
            'host'          => 'localhost',
            'port'          => 8182,
            'graph'         => 'graph',
            'retryAttempts' => 5,
            //'emptySet' => TRUE
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->open();

        $db->send("
            for(i in 1..35){
                graph.addVertex('name', 'john', 'age', 25, 'somefillertext', 'FFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF')
            }"
        );

        $db->send("g.V()");

        $db->run("g.V().has('name', 'john').sideEffect{it.get().remove()}.iterate()");

        $db->close();

        $this->assertTrue(TRUE); // just asserting we get here and no error is thrown.
    }

    /**
     * Lets test sending large payload and retrieving large payload
     *
     * @return void
     */
    public function testLargePayload()
    {
        $db = new Connection([
            'host'          => 'localhost',
            'port'          => 8182,
            'graph'         => 'graph',
            'retryAttempts' => 5,
            //'emptySet' => TRUE
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->open();

        $db->send("
            for(i in 1..35){
                graph.addVertex('name', 'john', 'age', 25, 'somefillertext', 'FFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFF')
            }"
        );

        $db->send("g.V()");

        $db->run("g.V().has('name', 'john').sideEffect{it.get().remove()}.iterate()");

        $db->close();

        $this->assertTrue(TRUE); // just asserting we get here and no error is thrown.
    }

    /**
     * Lets test returning a large set back from the database
     *
     * @return void
     */
    public function testTree()
    {
        $db = new Connection([
            'host'          => 'localhost',
            'port'          => 8182,
            'graph'         => 'graph',
            'retryAttempts' => 5,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->open();

        $expected = [
            [
                1 => [
                    'key'   => [
                        'id'         => 1,
                        'label'      => 'vertex',
                        'type'       => 'vertex',
                        'properties' => [
                            'name' => [['id' => 0, 'value' => 'marko']],
                            'age'  => [['id' => 2, 'value' => 29]],
                        ],
                    ],
                    'value' => [
                        2 => [
                            'key'   => [
                                'id'         => 2,
                                'label'      => 'vertex',
                                'type'       => 'vertex',
                                'properties' => [
                                    'name' => [['id' => 3, 'value' => 'vadas']],
                                    'age'  => [['id' => 4, 'value' => 27]],
                                ],
                            ],
                            'value' => [
                                3 => [
                                    'key'   => ['id' => 3, 'value' => 'vadas', 'label' => 'name'],
                                    'value' => [],
                                ],
                            ],
                        ],
                        3 => [
                            'key'   => [
                                'id'         => 3,
                                'label'      => 'vertex',
                                'type'       => 'vertex',
                                'properties' => [
                                    'name' => [['id' => 5, 'value' => 'lop']],
                                    'lang' => [['id' => 6, 'value' => 'java']],
                                ],
                            ],
                            'value' => [
                                5 => [
                                    'key'   => ['id' => 5, 'value' => 'lop', 'label' => 'name'],
                                    'value' => [],
                                ],
                            ],
                        ],
                        4 => [
                            'key'   => [
                                'id'         => 4,
                                'label'      => 'vertex',
                                'type'       => 'vertex',
                                'properties' => [
                                    'name' => [['id' => 7, 'value' => 'josh']],
                                    'age'  => [['id' => 8, 'value' => 32]],
                                ],
                            ],
                            'value' => [
                                7 => [
                                    'key'   => ['id' => 7, 'value' => 'josh', 'label' => 'name'],
                                    'value' => [],
                                ],
                            ],
                        ],
                    ],
                ],
            ],
        ];

        $result = $db->send('g.V(1).out().properties("name").tree()');
        $this->ksortTree($result);
        $this->ksortTree($expected);

        $this->assertEquals($expected, $result, "the response is not formated as expected.");

        $db->close();
    }

    private function ksortTree(&$array)
    {
        if(!is_array($array))
        {
            return FALSE;
        }

        ksort($array);
        foreach($array as $k => $v)
        {
            $this->ksortTree($array[$k]);
        }

        return TRUE;
    }

    /**
     * Testing Aliases in message
     */
    public function testLocalAliases()
    {
        $db = new Connection([
            'graph' => 'graph',
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $message = $db->open();
        $this->assertNotEquals($message, FALSE);

        $db->message->gremlin = 'crazyname.V().count()';
        $db->message->setArguments([
            'aliases' => ['crazyname' => 'g'],
        ]);
        $result = $db->send();

        $this->assertEquals($result[0], 6, 'Script request did not return the correct count');
    }

    /**
     * Testing Global connection Aliases
     */
    public function testGlobalAliases()
    {
        $db = new Connection([
            'graph'   => 'graph',
            'aliases' => ['crazyname' => 'g'],
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $message = $db->open();
        $this->assertNotEquals($message, FALSE);

        $db->message->gremlin = 'crazyname.V().count()';
        $result = $db->send();

        $this->assertEquals($result[0], 6, 'Script request did not return the correct count');
    }

    /**
     * Testing script evaluation timeout
     *
     * @expectedException \Brightzone\GremlinDriver\ServerException
     */
    public function testScriptEvalTimeout()
    {
        $db = new Connection([
            'graph' => 'graph',
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $message = $db->open();
        $this->assertNotEquals($message, FALSE);

        $db->message->gremlin = 'Thread.sleep(4000);g.V().count()';
        $db->message->setArguments([
            'scriptEvaluationTimeout' => 100,
        ]);
        $result = $db->send();

        $this->fail('We should get a timeout error.');
    }

    /**
     * Bindings should be cleared in between requests
     */
    public function testClearBindings()
    {
        $db = new Connection([
            'host'     => 'localhost',
            'port'     => 8182,
            'graph'    => 'graph',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $message = $db->open();
        $this->assertNotEquals($message, FALSE);

        $db->message->gremlin = 'g.V(CUSTO_BIND)';
        $db->message->bindValue('CUSTO_BIND', 2);
        $result = $db->send(NULL, 'session', 'eval');

        $this->assertNotEquals($result, [], 'Running a script with bindings produced an error');


        //the binding should no longer reside on the client side but instead only be on the server.
        $this->assertTrue(!isset($db->message->args['bindings']), "there should be no registered bindings in the message");

        $db->message->gremlin = 'g.V(CUSTO_BIND)';
        $result = $db->send(NULL, 'session', 'eval');
        $this->assertNotEquals($result, [], 'Running a script with bindings produced an error');


        //check disconnection
        $message = $db->close();
        $this->assertNotEquals($message, FALSE, 'Disconnecting from a session where bindings were used created an error');
    }
}
<?php

namespace Brightzone\GremlinDriver\Tests;

use Brightzone\GremlinDriver\Serializers\Gson3;


/**
 * Unit testing of Gremlin-php
 *
 * @category DB
 * @package  Tests
 * @author   Dylan Millikin <dylan.millikin@brightzone.fr>
 * @license  http://www.apache.org/licenses/LICENSE-2.0 apache2
 */
class RexsterExamplesGS3Test extends RexsterExamplesTest
{
    /**
     * Set the serializer up here
     *
     * @return void
     */
    public static function setUpBeforeClass()
    {
        static::$serializer = new Gson3;
    }
}
<?php

namespace Brightzone\GremlinDriver\Tests;

use Brightzone\GremlinDriver\Serializers\Gson3;
use Brightzone\GremlinDriver\Connection;


/**
 * Unit testing of Gremlin-php
 *
 * @category DB
 * @package  Tests
 * @author   Dylan Millikin <dylan.millikin@brightzone.fr>
 * @license  http://www.apache.org/licenses/LICENSE-2.0 apache2
 */
class GremlinServerGS3Test extends GremlinServerTest
{
    /**
     * Set the serializer up here
     *
     * @return void
     */
    public static function setUpBeforeClass()
    {
        static::$serializer = new Gson3;
    }

    /**
     * Test the vertex format for changes
     * Different from GSON 1 because serializing server end adds data
     */
    public function testVertexFormat()
    {
        $db = new Connection([
            'host'     => 'localhost',
            'port'     => 8182,
            'graph'    => 'graph',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->open();
        $result = $db->send("g.V(1)");
        $vertex = [
            0 => [
                "id"         => 1,
                "label"      => "vertex",
                "properties" => [
                    "name" => [
                        0 => [
                            "id"    => 0,
                            "value" => "marko",
                            "label" => "name",
                        ],
                    ],
                    "age"  => [
                        0 => [
                            "id"    => 2,
                            "value" => 29,
                            "label" => "age",
                        ],
                    ],
                ],
                "type"       => "vertex",
            ],
        ];
        $this->ksortTree($vertex);
        $this->ksortTree($result);
        $this->assertEquals($vertex, $result, "vertex property wasn't as expected");
    }

    /**
     * Test the edge format for changes
     */
    public function testEdgeFormat()
    {
        $db = new Connection([
            'host'     => 'localhost',
            'port'     => 8182,
            'graph'    => 'graph',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->open();
        $result = $db->send("g.E(12)");
        $edge = [
            0 => [
                "id"         => 12,
                "label"      => "created",
                "inVLabel"   => "vertex",
                "outVLabel"  => "vertex",
                "inV"        => 3,
                "outV"       => 6,
                "properties" => [
                    "weight" => [
                        "key"   => "weight",
                        "value" => 0.2,
                    ],
                ],
                "type"       => "edge",
            ],
        ];
        $this->ksortTree($edge);
        $this->ksortTree($result);
        $this->assertEquals($edge, $result, "vertex property wasn't as expected");
    }
}
<?php

namespace Brightzone\GremlinDriver\Tests;

use Brightzone\GremlinDriver\Connection;
use Brightzone\GremlinDriver\Serializers\Gson3;


/**
 * Unit testing of Gremlin-php
 *
 * @category DB
 * @package  Tests
 * @author   Dylan Millikin <dylan.millikin@brightzone.fr>
 * @license  http://www.apache.org/licenses/LICENSE-2.0 apache2
 */
class RexsterWithGS3Test extends RexsterTest
{
    /**
     * Set the serializer up here
     *
     * @return void
     */
    public static function setUpBeforeClass()
    {
        static::$serializer = new Gson3;
    }

    /**
     * Lets test returning a large set back from the database
     *
     * @return void
     */
    public
    function testTree()
    {
        $db = new Connection([
            'host'          => 'localhost',
            'port'          => 8182,
            'graph'         => 'graph',
            'retryAttempts' => 5,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->open();

        $expected = [
            [
                1 => [
                    'key'   => [
                        'id'         => 1,
                        'label'      => 'vertex',
                        'type'       => 'vertex',
                        'properties' => [
                            'name' => [['id' => 0, 'value' => 'marko', 'label' => 'name']],
                            'age'  => [['id' => 2, 'value' => 29, 'label' => 'age']],
                        ],
                    ],
                    'value' => [
                        2 => [
                            'key'   => [
                                'id'         => 2,
                                'label'      => 'vertex',
                                'type'       => 'vertex',
                                'properties' => [
                                    'name' => [['id' => 3, 'value' => 'vadas', 'label' => 'name']],
                                    'age'  => [['id' => 4, 'value' => 27, 'label' => 'age']],
                                ],
                            ],
                            'value' => [
                                3 => [
                                    'key'   => ['id' => 3, 'value' => 'vadas', 'label' => 'name'],
                                    'value' => [],
                                ],
                            ],
                        ],
                        3 => [
                            'key'   => [
                                'id'         => 3,
                                'label'      => 'vertex',
                                'type'       => 'vertex',
                                'properties' => [
                                    'name' => [['id' => 5, 'value' => 'lop', 'label' => 'name']],
                                    'lang' => [['id' => 6, 'value' => 'java', 'label' => 'lang']],
                                ],
                            ],
                            'value' => [
                                5 => [
                                    'key'   => ['id' => 5, 'value' => 'lop', 'label' => 'name'],
                                    'value' => [],
                                ],
                            ],
                        ],
                        4 => [
                            'key'   => [
                                'id'         => 4,
                                'label'      => 'vertex',
                                'type'       => 'vertex',
                                'properties' => [
                                    'name' => [['id' => 7, 'value' => 'josh', 'label' => 'name']],
                                    'age'  => [['id' => 8, 'value' => 32, 'label' => 'age']],
                                ],
                            ],
                            'value' => [
                                7 => [
                                    'key'   => ['id' => 7, 'value' => 'josh', 'label' => 'name'],
                                    'value' => [],
                                ],
                            ],
                        ],
                    ],
                ],
            ],
        ];

        $result = $db->send('g.V(1).out().properties("name").tree()');
        $this->ksortTree($result);
        $this->ksortTree($expected);

        $this->assertEquals($expected, $result, "the response is not formated as expected.");

        $db->close();
    }

    private function ksortTree(&$array)
    {
        if(!is_array($array))
        {
            return FALSE;
        }

        ksort($array);
        foreach($array as $k => $v)
        {
            $this->ksortTree($array[$k]);
        }

        return TRUE;
    }
}
<?php

namespace Brightzone\GremlinDriver\Tests;

use Brightzone\GremlinDriver\Connection;


/**
 * Unit testing of gremlin-php for transactional graph
 *
 * @category DB
 * @package  Tests
 * @author   Dylan Millikin <dylan.millikin@brightzone.fr>
 * @license  http://www.apache.org/licenses/LICENSE-2.0 apache2
 */
class RexsterTransactionTest extends RexsterTestCase
{
    /**
     * Testing transactions
     *
     *
     * @return void
     */
    public function testTransactions()
    {
        $db = new Connection([
            'graph' => 'graphT',
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $message = $db->open();
        $this->assertNotEquals($message, FALSE);

        $db->message->gremlin = 't.V().count()';
        $result = $db->send();

        $this->assertNotEquals($result, FALSE, 'Script request throws an error in transaction mode');
        $elementCount = $result[0];

        $db->transactionStart();

        $db->message->gremlin = 't.addV()';
        $db->send();

        $db->transactionStop(FALSE);

        $db->message->gremlin = 't.V().count()';
        $result = $db->send();
        $elementCount2 = $result[0];

        $this->assertNotEquals($result, FALSE, 'Script request throws an error in transaction mode');
        $this->AssertEquals($elementCount, $elementCount2, 'Transaction rollback didn\'t work');

        $db->transactionStart();
        $db->send('t.addV().property("name","stephen").next()');

        $db->transactionStop(TRUE);

        $elementCount2 = $db->send('t.V().count()');
        $this->AssertEquals($elementCount + 1, $elementCount2[0], 'Transaction submition didn\'t work');
    }

    /**
     * Testing transactions accross multiple script launches
     *
     * @return void
     */
    public function testTransactionsMultiRun()
    {
        $db = new Connection([
            'graph'    => 'graphT',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $message = $db->open();
        $this->assertNotEquals($message, FALSE);

        $result = $db->send('t.V().count()');
        $elementCount = $result[0];

        $db->transactionStart();

        $db->send('t.addV().property("name","michael").next()');
        $db->send('t.addV().property("name","michael").next()');

        $db->transactionStop(FALSE);

        $db->message->gremlin = 't.V().count()';
        $result = $db->send();
        $elementCount2 = $result[0];
        $this->AssertEquals($elementCount, $elementCount2, 'Transaction rollback didn\'t work');

        $db->transactionStart();

        $db->send('t.addV().property("name","michael").next()');
        $db->send('t.addV().property("name","michael").next()');

        $db->transactionStop(TRUE);

        $db->message->gremlin = 't.V().count()';
        $result = $db->send();
        $elementCount2 = $result[0];
        $this->AssertEquals($elementCount + 2, $elementCount2, 'Transaction submition didn\'t work');
    }

    /**
     * Testing Transaction without graphObj
     *
     * @expectedException \Brightzone\GremlinDriver\InternalException
     *
     * @return void
     */
    public function testTransactionWithNoGraphObj()
    {
        $db = new Connection();
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->open();
        $db->transactionStart();
    }

    /**
     * Testing transactionStart() with an other running transaction
     *
     * @expectedException \Brightzone\GremlinDriver\InternalException
     *
     * @return void
     */
    public function testSeveralRunningTransactionStart()
    {
        $db = new Connection([
            'graph'    => 'graphT',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->open();
        $db->transactionStart();
        $db->transactionStart();
    }

    /**
     * Testing db close during transaction running transaction
     *
     * @return void
     */
    public function testClosingDbOnRunningTransaction()
    {
        $db = new Connection([
            'graph'    => 'graphT',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->open();
        $db->transactionStart();
        $db->close();

        $this->assertTrue(TRUE); // should execute this without hitting any errors
    }

    /**
     * Testing transactionStop() with no running transaction
     *
     * @expectedException \Brightzone\GremlinDriver\InternalException
     *
     * @return void
     */
    public function testTransactionStopWithNoTransaction()
    {
        $db = new Connection([
            'graph'    => 'graphT',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->open();
        $db->transactionStop();
    }

    /**
     * Testing transaction retry error on already open transaction
     *
     * @expectedException \Brightzone\GremlinDriver\InternalException
     * @return void
     * @throws \Exception
     */
    public function testTransactionRetryAlreadyOpen()
    {
        $db = new Connection([
            'graph'    => 'graphT',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->open();
        $db->transactionStart();
        $count = 0;
        try
        {
            $db->transaction(function(&$c) {
                $c++;
            }, [&$count]);
        }
        catch(\Exception $e)
        {
            $this->assertEquals(0, $count, "the workload has been executed when it shouldn't have");
            throw $e;
        }
    }

    /**
     * Testing transaction retry
     *
     * @expectedException \Brightzone\GremlinDriver\ServerException
     * @return void
     * @throws \Exception
     */
    public function testTransactionRetry()
    {
        $db = new Connection([
            'host'          => 'localhost',
            'port'          => 8182,
            'graph'         => 'graphT',
            'retryAttempts' => 5,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->open();

        $count = 0;
        try
        {
            $db->transaction(function(&$c) {
                $c++;
                throw new \Brightzone\GremlinDriver\ServerException('transaction test error', 597);
            }, [&$count]);
        }
        catch(\Exception $e)
        {
            $this->assertEquals(5, $count, "the workload has been executed when it shouldn't have");
            throw $e;
        }
    }

    /**
     * Test callable transaction
     *
     * @return void
     */
    public function testCallableTransaction()
    {
        $db = new Connection([
            'host'          => 'localhost',
            'port'          => 8182,
            'graph'         => 'graphT',
            'retryAttempts' => 5,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $message = $db->open();
        $this->assertNotEquals($message, FALSE);

        $db->message->gremlin = 't.V().count()';
        $result = $db->send();
        $elementCount = $result[0];

        $count = 0;
        try
        {
            $db->transaction(function(&$db, &$c) {
                $db->message->gremlin = 't.addV()';
                $db->send();
                $c++;
                throw new \Brightzone\GremlinDriver\ServerException('transaction callable test error', 597);
            }, [&$db, &$count]);
        }
        catch(\Exception $e)
        {
            $this->assertEquals(5, $count, "the code didn't execute properly");
        }

        $db->message->gremlin = 't.V().count()';
        $result = $db->send();
        $elementCount2 = $result[0];

        $this->assertNotEquals($result, FALSE, 'Script request throws an error in transaction mode');
        $this->AssertEquals($elementCount, $elementCount2, 'Transaction rollback didn\'t work');

        $count = 0;
        $db->transaction(function(&$db, &$c) {
            $db->send('t.addV().property("name","michael").next()');
            $c++;
            if($c < 3)
            {
                throw new \Brightzone\GremlinDriver\ServerException('transaction callable test error', 597);
            }
        }, [&$db, &$count]);

        $this->assertEquals(3, $count, "the code didn't execute the proper amount of times");

        $elementCount2 = $db->send('t.V().count()');
        $this->AssertEquals($elementCount + 1, $elementCount2[0], 'Transaction submition didn\'t work');
    }

    /**
     * Testing combination of session and sessionless requests
     */
    public function testSessionSessionlessTransactionIsOpenSingleClient()
    {
        $db = new Connection([
            'graph'    => 'graphT',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);

        $message = $db->open();
        $this->assertNotEquals($message, FALSE);

        $db->transactionStart();

        $db->send('t.addV().property("name","stephen").next()');

        $db->transactionStop(TRUE);
        $isOpen = $db->send("graphT.tx().isOpen()", "session")[0];
        $this->assertTrue(!$isOpen, "transaction should be closed");

        $db->message->gremlin = 'graphT.traversal().V()';
        $result = $db->send();

        $isOpen = $db->send("graphT.tx().isOpen()", "session")[0];
        $this->assertTrue(!$isOpen, "transaction should still be closed after sessionless request");
    }

    /**
     * Testing combination of session and sessionless requests
     */
    public function testSessionSessionlessTransactionIsOpenMultiClient()
    {
        $db = new Connection([
            'graph'    => 'graphT',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);

        $db2 = new Connection([
            'graph'    => 'graphT',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db2->message->registerSerializer(static::$serializer, TRUE);
        $message = $db->open();
        $this->assertNotEquals($message, FALSE);

        $db->transactionStart();

        $db->send('t.addV().property("name","stephen").next()');

        $db->transactionStop(TRUE);
        $isOpen = $db->send("graphT.tx().isOpen()", "session")[0];
        $this->assertTrue(!$isOpen, "transaction should be closed");

        $db2->message->gremlin = 'graphT.traversal().V()';
        $result = $db->send();

        $isOpen = $db->send("graphT.tx().isOpen()", "session")[0];
        $this->assertTrue(!$isOpen, "transaction should still be closed after sessionless request");
    }

    /**
     * Testing combination of session and sessionless requests
     */
    public function testSessionSessionlessCombinationConcurrentCommit()
    {
        $db = new Connection([
            'graph'    => 'graphT',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $message = $db->open();
        $this->assertNotEquals($message, FALSE);

        $db2 = new Connection([
            'graph'    => 'graphT',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db2->message->registerSerializer(static::$serializer, TRUE);
        $message = $db2->open();
        $this->assertNotEquals($message, FALSE);

        $result = $db->send('t.V().count()');
        $elementCount = $result[0];

        $db->transactionStart();

        $db->send('t.addV().property("name","michael").next()');

        $db2->message->gremlin = 't.V()';
        $db2->send();

        $db->send('t.addV().property("name","michael").next()');
        $db->transactionStop(TRUE);

        $db->message->gremlin = 't.V().count()';
        $result = $db->send();
        $elementCount2 = $result[0];
        $this->AssertEquals($elementCount + 2, $elementCount2, 'Transaction submition didn\'t work');
    }

    /**
     * Testing combination of session and sessionless requests
     */
    public function testSessionSessionlessCombinationConcurrentRollback()
    {
        $db = new Connection([
            'graph'    => 'graphT',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $message = $db->open();
        $this->assertNotEquals($message, FALSE);

        $db2 = new Connection([
            'graph'    => 'graphT',
            'username' => $this->username,
            'password' => $this->password,
        ]);
        $db2->message->registerSerializer(static::$serializer, TRUE);
        $message = $db2->open();
        $this->assertNotEquals($message, FALSE);

        $result = $db->send('t.V().count()');
        $elementCount = $result[0];

        $db->transactionStart();

        $db->send('t.addV().property("name","michael").next()');

        $db2->message->gremlin = 't.V()';
        $db2->send();

        $db->send('t.addV().property("name","michael").next()');
        $db->transactionStop(FALSE);

        $db->message->gremlin = 't.V().count()';
        $result = $db->send();
        $elementCount2 = $result[0];
        $this->AssertEquals($elementCount, $elementCount2, 'Transaction rollback didn\'t work');
    }

    /**
     * Test transaction management
     * This was introduced in GS 3.1.2. It should make session requests handle like sessionless
     * Thus keeping bindings but managing transactions automatically
     */
    public function testAutoTransactionManagement()
    {
        $db = new Connection([
            'graph' => 'graphT',
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $message = $db->open();
        $this->assertNotEquals($message, FALSE);

        $db->message->gremlin = 't.V().count()';
        $result = $db->send();

        $this->assertNotEquals($result, FALSE, 'Script request throws an error in transaction mode');
        $elementCount = $result[0];

        $db->transactionStart();

        $db->message->setArguments([
            'manageTransaction' => TRUE,
        ]);
        $db->message->gremlin = 't.addV()';
        $db->send();

        $db->transactionStop(FALSE);

        $db->message->gremlin = 't.V().count()';
        $result = $db->send();
        $elementCount2 = $result[0];

        $this->assertNotEquals($result, FALSE, 'Script request throws an error in transaction mode');
        $this->AssertNotEquals($elementCount, $elementCount2, 'Transaction rollback worked when instead the transaction should have been committed prior to that.');
    }
}
<?php
/**
 * This file is meant to run PHPUNIT from a web interface. (ie: by running this file)
 * It is useful for those who do not have access to the command line (wamp, etc.)
 *
 * Just make the gremlin-php folder accessible on the web path and load this php file in your browser
 */


require_once(__DIR__ . '/../vendor/autoload.php');

echo "<pre>";
if(class_exists("PHPUnit_TextUI_Command"))
{
    $command = new \PHPUnit_TextUI_Command;
}
else
{

    $command = new \PHPUnit\TextUI\Command;
}
$command->run(['phpunit', '--conf', '../build/phpunit.xml'], TRUE);
echo "</pre>";<?php

namespace Brightzone\GremlinDriver\Tests;

use Brightzone\GremlinDriver\Connection;
use Brightzone\GremlinDriver\Serializers\Gson3;


/**
 * Unit testing of Gremlin-php
 *
 * @category DB
 * @package  Tests
 * @author   Dylan Millikin <dylan.millikin@brightzone.fr>
 * @license  http://www.apache.org/licenses/LICENSE-2.0 apache2
 */
class RexsterGS3Test extends RexsterTest
{
    /**
     * Set the serializer up here
     *
     * @return void
     */
    public static function setUpBeforeClass()
    {
        static::$serializer = new Gson3;
    }

    /**
     * Lets test returning a large set back from the database
     *
     * @return void
     */
    public
    function testTree()
    {
        $db = new Connection([
            'host'          => 'localhost',
            'port'          => 8182,
            'graph'         => 'graph',
            'retryAttempts' => 5,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->open();

        $expected = [
            [
                1 => [
                    'key'   => [
                        'id'         => 1,
                        'label'      => 'vertex',
                        'type'       => 'vertex',
                        'properties' => [
                            'name' => [['id' => 0, 'value' => 'marko', 'label' => 'name']],
                            'age'  => [['id' => 2, 'value' => 29, 'label' => 'age']],
                        ],
                    ],
                    'value' => [
                        2 => [
                            'key'   => [
                                'id'         => 2,
                                'label'      => 'vertex',
                                'type'       => 'vertex',
                                'properties' => [
                                    'name' => [['id' => 3, 'value' => 'vadas', 'label' => 'name']],
                                    'age'  => [['id' => 4, 'value' => 27, 'label' => 'age']],
                                ],
                            ],
                            'value' => [
                                3 => [
                                    'key'   => ['id' => 3, 'value' => 'vadas', 'label' => 'name'],
                                    'value' => [],
                                ],
                            ],
                        ],
                        3 => [
                            'key'   => [
                                'id'         => 3,
                                'label'      => 'vertex',
                                'type'       => 'vertex',
                                'properties' => [
                                    'name' => [['id' => 5, 'value' => 'lop', 'label' => 'name']],
                                    'lang' => [['id' => 6, 'value' => 'java', 'label' => 'lang']],
                                ],
                            ],
                            'value' => [
                                5 => [
                                    'key'   => ['id' => 5, 'value' => 'lop', 'label' => 'name'],
                                    'value' => [],
                                ],
                            ],
                        ],
                        4 => [
                            'key'   => [
                                'id'         => 4,
                                'label'      => 'vertex',
                                'type'       => 'vertex',
                                'properties' => [
                                    'name' => [['id' => 7, 'value' => 'josh', 'label' => 'name']],
                                    'age'  => [['id' => 8, 'value' => 32, 'label' => 'age']],
                                ],
                            ],
                            'value' => [
                                7 => [
                                    'key'   => ['id' => 7, 'value' => 'josh', 'label' => 'name'],
                                    'value' => [],
                                ],
                            ],
                        ],
                    ],
                ],
            ],
        ];

        $result = $db->send('g.V(1).out().properties("name").tree()');
        $this->ksortTree($result);
        $this->ksortTree($expected);

        $this->assertEquals($expected, $result, "the response is not formated as expected.");

        $db->close();
    }

    private function ksortTree(&$array)
    {
        if(!is_array($array))
        {
            return FALSE;
        }

        ksort($array);
        foreach($array as $k => $v)
        {
            $this->ksortTree($array[$k]);
        }

        return TRUE;
    }
}
<?php

require_once(__DIR__ . '/../vendor/autoload.php');
<?php

namespace Brightzone\GremlinDriver\Tests;

use Brightzone\GremlinDriver\Serializers\Json;
use Brightzone\GremlinDriver\Serializers\SerializerInterface;

/**
 * Unit testing test case
 * Allows for developpers to use command line args to set username and password for test database
 *
 * @category DB
 * @package  Tests
 * @author   Dylan Millikin <dylan.millikin@brightzone.fr>
 * @license  http://www.apache.org/licenses/LICENSE-2.0 apache2
 */
class RexsterTestCase extends \PHPUnit\Framework\TestCase
{
    /**
     * @var mixed the database username to use with tests, if any
     */
    protected $username;

    /**
     * @var mixed the database password to use with tests, if any
     */
    protected $password;

    /**
     * @var SerializerInterface the serializer to use
     */
    protected static $serializer;

    /**
     * Set the serializer up here
     *
     * @return void
     */
    public static function setUpBeforeClass()
    {
        static::$serializer = new Json();
    }

    /**
     * Overriding setup to catch database arguments if set.
     *
     * @return void
     */
    protected function setUp()
    {
        $this->username = getenv('DBUSER') ? getenv('DBUSER') : NULL;
        $this->password = getenv('DBPASS') ? getenv('DBPASS') : NULL;
        parent::setUp();
    }

    /**
     * Call protected/private method of a class.
     *
     * @param object &$object    Instantiated object that we will run method on.
     * @param string $methodName Method name to call
     * @param array  $parameters Array of parameters to pass into method.
     *
     * @return mixed Method return.
     */
    public function invokeMethod(&$object, $methodName, array $parameters = [])
    {
        $reflection = new \ReflectionClass(get_class($object));
        $method = $reflection->getMethod($methodName);
        $method->setAccessible(TRUE);

        return $method->invokeArgs($object, $parameters);
    }
}
<?php
namespace Brightzone\GremlinDriver\Tests;

use Brightzone\GremlinDriver\Connection;
use Brightzone\GremlinDriver\Message;
use Brightzone\GremlinDriver\Exceptions;
use Brightzone\GremlinDriver\Helper;


/**
 * Unit testing of Gremlin-php documentation examples
 *
 * @category DB
 * @package  Tests
 * @author   Dylan Millikin <dylan.millikin@brightzone.fr>
 * @license  http://www.apache.org/licenses/LICENSE-2.0 apache2
 * @link     https://github.com/tinkerpop/rexster/wiki
 */
class RexsterTestExamples extends RexsterTestCase
{
    /**
     * Testing Example 1
     *
     * @return void
     */
    public function testExample1()
    {
        $db = new Connection([
            'host' => 'localhost',
            'graph' => 'graph',
        ]);
        //you can set $db->timeout = 0.5; if you wish
        $db->open();
        $db->send('g.V(2)');
        //do something with result
        $db->close();
    }

    /**
     * Testing Example 1 bis
     *
     * @return void
     */
    public function testExample1B()
    {
        $db = new Connection([
            'host' => 'localhost',
            'graph' => 'graph',
        ]);
        //you can set $db->timeout = 0.5; if you wish
        $db->open();
        $db->message->gremlin = 'g.V(2)';
        $db->send(); //automatically fetches the message
        //do something with result
        $db->close();
    }

    /**
     * Testing Example 2
     *
     * @return void
     */
    public function testExample2()
    {
        $db = new Connection([
            'host' => 'localhost',
            'port' => 8182,
            'graph' => 'graph',
        ]);
        $db->open();

        $db->message->bindValue('CUSTO_BINDING', 2);
        $db->send('g.V(CUSTO_BINDING)'); //mix between Example 1 and 1B
        //do something with result
        $db->close();
    }

    /**
     * Testing Example 3
     *
     * @return void
     */
    public function testExample3()
    {
        $db = new Connection([
            'host' => 'localhost',
            'port' => 8182,
        ]);
        $db->open();
        $db->send('cal = 5+5', 'session');
        $result = $db->send('cal', 'session'); // result = [10]
        $this->assertEquals($result[0], 10, 'Error asserting proper result for example 3');
        //do something with result
        $db->close();
    }

    /**
     * Testing Example 4
     *
     * @return void
     */
    public function testExample4()
    {
        $db = new Connection([
            'host' => 'localhost',
            'port' => 8182,
            'graph' => 'graphT',
        ]);
        $db->open();
        $originalCount = $db->send('n.V().count()');

        $db->transactionStart();

        $db->send('n.addVertex("name","michael")');
        $db->send('n.addVertex("name","john")');

        $db->transactionStop(FALSE); //rollback changes. Set to true to commit.

        $newCount = $db->send('n.V().count()');
        $this->assertEquals($newCount, $originalCount, 'Rollback was not done for eample 4');

        $db->close();
    }


    /**
     * Testing Example 5
     *
     * @return void
     */
    public function testExample5()
    {
        $message = new Message;
        $message->gremlin = 'g.V()';
        $message->op = 'eval';
        $message->processor = '';
        $message->setArguments([
                        'language' => 'gremlin-groovy',
                        // ... etc
        ]);
        $message->registerSerializer('\Brightzone\GremlinDriver\Serializers\Json');

        $db = new Connection();
        $db->open();
        $db->send($message);
        //do something with result
        $db->close();
    }
}
<?php

namespace Brightzone\GremlinDriver\Tests;

use Brightzone\GremlinDriver\Connection;
use Brightzone\GremlinDriver\Message;
use Brightzone\GremlinDriver\Exceptions;
use Brightzone\GremlinDriver\Helper;


/**
 * Unit testing of Gremlin-php documentation examples
 *
 * @category DB
 * @package  Tests
 * @author   Dylan Millikin <dylan.millikin@brightzone.fr>
 * @license  http://www.apache.org/licenses/LICENSE-2.0 apache2
 * @link     https://github.com/tinkerpop/rexster/wiki
 */
class RexsterExamplesTest extends RexsterTestCase
{
    /**
     * Testing Basic feature example 1
     *
     * @return void
     */
    public function testBasicFeatures1()
    {
        $db = new Connection([
            'host'  => 'localhost',
            'graph' => 'graph',
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        //you can set $db->timeout = 0.5; if you wish
        $db->open();

        $result = $db->send('g.V(2)');
        //do something with result
        $db->close();
        $this->assertTrue(TRUE); // should always get here
    }

    /**
     * Testing Basic feature example 2 bis
     *
     * @return void
     */
    public function testBasicfeatures2()
    {
        $db = new Connection([
            'host'     => 'localhost',
            'graph'    => 'graph',
            'port'     => 8184,
            'username' => 'stephen',
            'password' => 'password',
            'ssl'      => [
                "ssl" => [
                    "verify_peer"      => FALSE,
                    "verify_peer_name" => FALSE,
                ],
            ],
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        //you can set $db->timeout = 0.5; if you wish
        $db->open();
        $db->send('g.V(2)');
        //do something with result
        $db->close();

        $this->assertTrue(TRUE); // should always get here
    }

    /**
     * Testing Binding example 1
     *
     * @return void
     */
    public function testBindings1()
    {
        $unsafeUserValue = 2; //This could be anything submitted via form.
        $db = new Connection([
            'host'  => 'localhost',
            'port'  => 8182,
            'graph' => 'graph',
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->open();

        $db->message->bindValue('CUSTO_BINDING', $unsafeUserValue); // protects from injections
        $result1 = $db->send('g.V(CUSTO_BINDING)'); // The server compiles this script and adds it to cache

        $this->assertNotEmpty($result1, "the result should be populated by vertex 2");

        $db->message->bindValue('CUSTO_BINDING', 5);
        $result2 = $db->send('g.V(CUSTO_BINDING)'); // The server already has this script so gets it from cache without compiling it, but runs it with 5 instead of $unsafeUserValue
        $result3 = $db->send('g.V(5)'); // The script is different so the server compiles this script and adds it to cache

        $this->assertEquals($result2, $result3, "both results should be equivalent");

        //do something with result
        $db->close();
    }

    /**
     * Testing Sessions example 1
     *
     * @return void
     */
    public function testSessions1()
    {
        $db = new Connection([
            'host' => 'localhost',
            'port' => 8182,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->open();
        $db->send('cal = 5+5', 'session'); // first query sets the `cal` variable
        $result = $db->send('cal', 'session'); // result = [10]
        //do something with result
        $this->assertEquals(10, $result[0], "should equal 10"); // should always get here

        $db->close();
    }

    /**
     * Testing Transaction Example 1
     *
     * @return void
     */
    public function testTransaction1()
    {
        $db = new Connection([
            'host'  => 'localhost',
            'port'  => 8182,
            'graph' => 'graphT',
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->open();

        $result = $db->send("t.V().count()");

        $db->transactionStart();

        $db->send('graphT.addVertex("name","michael")');
        $db->send('graphT.addVertex("name","john")');

        $db->transactionStop(FALSE); //rollback changes. Set to TRUE to commit.
        $result2 = $db->send("t.V().count()");

        $this->assertEquals($result, $result2, "Vertices were added when they should've been rolled back");
        $db->close();
    }

    /**
     * Testing Transaction example 2
     *
     * @return void
     */
    public function testTransaction2()
    {
        $db = new Connection([
            'host'     => 'localhost',
            'port'     => 8182,
            'graph'    => 'graphT',
            'emptySet' => TRUE,
        ]);
        $db->message->registerSerializer(static::$serializer, TRUE);
        $db->open();

        $result = $db->send("t.V().count()");

        $db->transaction(function($db) {
            $db->send('t.addV().property("name","crazy")');
            $db->send('t.addV().property("name","crazy")');
        }, [$db]);

        $result2 = $db->send("t.V().count()");
        $db->run("t.V().has('name', 'crazy').drop()");
        $this->assertEquals($result[0], $result2[0] - 2, "vertices were not properly added");

        $db->close();
    }

    /**
     * Testing Message objects example 1
     *
     * @return void
     */
    public function testMessage1()
    {
        $message = new Message;
        $message->gremlin = 'custom.V()'; // note that custom refers to the graph traversal set on the server as g (see alias bellow)
        $message->op = 'eval'; // operation we want to run
        $message->processor = ''; // the opProcessor the server should use
        $message->setArguments([
            'language' => 'gremlin-groovy',
            'aliases'  => ['custom' => 'g'],
            // ... etc
        ]);
        $message->registerSerializer(static::$serializer);

        $db = new Connection();
        $db->open();
        $db->send($message);
        //do something with result
        $db->close();

        $this->assertTrue(TRUE); // should always get here

    }

    /**
     * Testing Serializer example 1
     *
     * @return void
     */
    public function testSerializer1()
    {
        $db = new Connection;
        $s = static::$serializer;
        $db->message->registerSerializer($s, TRUE);
        $serializer = $db->message->getSerializer(); // returns an instance of the default serializer
        $this->assertEquals($s->getName(), $serializer->getName(), "incorrect serializer name");
        $this->assertEquals("application/json", $serializer->getMimeType(), "incorrect mimtype found. should be application/json");

        $db->message->registerSerializer('\Brightzone\GremlinDriver\Tests\Stubs\TestSerializer', TRUE);

        $this->assertEquals("Brightzone\GremlinDriver\Tests\Stubs\TestSerializer", get_class($db->message->getSerializer()), "incorrect serializer found");
        $this->assertEquals(get_class(static::$serializer), get_class($db->message->getSerializer('application/json')), "incorrect serializer found");
    }
}
<?php

namespace Brightzone\GremlinDriver\Tests;


/**
 * Unit testing of Gremlin-php
 *
 * @category DB
 * @package  Tests
 * @author   Dylan Millikin <dylan.millikin@brightzone.fr>
 * @license  http://www.apache.org/licenses/LICENSE-2.0 apache2
 */
class RexsterTestWithGS3 extends GraphSon3Test
{
}
<?php

namespace Brightzone\GremlinDriver\Tests;

use Brightzone\GremlinDriver\Connection;
use Brightzone\GremlinDriver\Serializers\Gson3;


/**
 * Unit testing of Gremlin-php
 *
 * @category DB
 * @package  Tests
 * @author   Dylan Millikin <dylan.millikin@brightzone.fr>
 * @license  http://www.apache.org/licenses/LICENSE-2.0 apache2
 */
class RexsterTransactionGS3Test extends RexsterTransactionTest
{
    /**
     * Set the serializer up here
     *
     * @return void
     */
    public static function setUpBeforeClass()
    {
        static::$serializer = new Gson3;
    }
}
This is a Gremlin server client for PHP. It allows you to run gremlin queries against graph databases (including Neo4j, Titan, etc.). You can find a beginner tutorial by reading the [Get up and running with Tinkerpop 3 and PHP](https://dylanmillikin.wordpress.com/2015/07/20/get-up-and-running-with-tinkerpop-3-and-php/) article.

This driver currently supports TP3+.

For a TP2 compatible php driver please check [rexpro-php](https://github.com/PommeVerte/rexpro-php)

[![Build Status](https://travis-ci.org/PommeVerte/gremlin-php.svg?branch=master)](https://travis-ci.org/PommeVerte/gremlin-php) [![Latest Stable Version](https://poser.pugx.org/brightzone/gremlin-php/v/stable)](https://packagist.org/packages/brightzone/gremlin-php) [![Coverage Status](https://coveralls.io/repos/PommeVerte/gremlin-php/badge.svg?branch=master)](https://coveralls.io/github/PommeVerte/gremlin-php?branch=master) [![Total Downloads](https://poser.pugx.org/brightzone/gremlin-php/downloads)](https://packagist.org/packages/brightzone/gremlin-php) [![License](https://poser.pugx.org/brightzone/gremlin-php/license)](https://packagist.org/packages/brightzone/gremlin-php)

[![Join the chat at https://gitter.im/PommeVerte/gremlin-php](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/PommeVerte/gremlin-php?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

Installation
============


### PHP Gremlin-Server Client

Preferred method is through composer.

Either run :

```bash
php composer.phar require brightzone/gremlin-php "3.*"
```

Or add:

```json
"brightzone/gremlin-php": "3.*"
```

to the `require` section of your `composer.json` file

### Tinkerpop 3.3.x server Configuration 

This driver now supports `GraphSON 3.0` with a basic beta serializer. You can use this serializer by doing : 

```php
  $db = ne Connection();
  $db->message->registerSerializer('\Brightzone\GremlinDriver\Serializers\Gson3', TRUE);
```

If you wish to continue using the stable `GraphSON 1.0` serializer it is necessary to configure the server to use `GraphSON 1.0`. To do this, make sure to replace the `# application/json` serializer in your `gremlin-server.yaml` configuration file with the following:

```yaml
- { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV1d0]  }}        # application/json
``` 

Upgrading
=========
BC breaking changes are introduced between major version changes. So if you're upgrading to `2.0.0` from `1.0`. Please read the [CHANGELOG](CHANGELOG.md)

Usage
=========

The Connection class exists within the `GremlinDriver` namespace.

```php
require_once('vendor/autoload.php');
use \Brightzone\GremlinDriver\Connection;

$db = new Connection;
```

Features
========

You can find more information by reading the [API](http://pommeverte.github.io/gremlin-php/).

### Basic connection

A basic connection can be created by creating a new `Connection` as follows.

```php
$db = new Connection([
    'host' => 'localhost',
    'graph' => 'graph'
]);
//you can set $db->timeout = 0.5; if you wish
$db->open();

$result = $db->send('g.V(2)');
//do something with result
$db->close();
```

Note that "graph" is the name of the graph configured in gremlin-server (not the reference to the traversal which is `g = graph.traversal()`)

It is also possible to specify authentication credentials as follows:

```php
$db = new Connection([
    'host' => 'localhost',
    'graph' => 'graph',
    'username' => 'pomme',
    'password' => 'hardToCrack'
]);
//you can set $db->timeout = 0.5; if you wish
$db->open();
$db->send('g.V(2)');
//do something with result
$db->close();
```

Check the SSL section for an example using the configuration files provided by TP.

You can find all the options available to the `Connection` class [here](http://pommeverte.github.io/gremlin-php/brightzone-gremlindriver-connection.html).

## Bindings

Bindings are important for several reasons. They protect from code injections, but they also prevent the server from having to compile scripts on every run.

The following example illustrates both of these points:

```php
$unsafeUserValue = 2; //This could be anything submitted via form.
$db = new Connection([
    'host' => 'localhost',
    'port' => 8182,
    'graph' => 'graph',
]);
$db->open();

$db->message->bindValue('CUSTO_BINDING', $unsafeUserValue); // protects from injections
$result1 = $db->send('g.V(CUSTO_BINDING)'); // The server compiles this script and adds it to cache

$db->message->bindValue('CUSTO_BINDING', 5);
$result2 = $db->send('g.V(CUSTO_BINDING)'); // The server already has this script so gets it from cache without compiling it, but runs it with 5 instead of $unsafeUserValue
$result3 = $db->send('g.V(5)'); // The script is different so the server compiles this script and adds it to cache

//do something with result
$db->close();
```

As you can see from the example above, not using bindings can be costly as the server needs to compile every new script.

## Sessions

Sessions allow you to maintain variables and bindings accross multiple requests.

```php
$db = new Connection([
    'host' => 'localhost',
    'port' => 8182,
]);
$db->open();
$db->send('cal = 5+5', 'session'); // first query sets the `cal` variable
$result = $db->send('cal', 'session'); // result = [10]
//do something with result
$db->close();
```

## Transactions

Transactions will allow you to revert or confirm a set of changes made accross multiple requests.

```php
$db = new Connection([
    'host' => 'localhost',
    'port' => 8182,
    'graph' => 'graphT',
]);
$db->open();

$db->transactionStart();

$db->send('t.addV().property("name","michael")');
$db->send('t.addV().property("name","john")');

$db->transactionStop(FALSE); //rollback changes. Set to TRUE to commit.
$db->close();
```

Note that "graphT" above refers to a graph that supports transactions. And that transactions start a session automatically. You can check which features are supported by your graph with `graph.features()`.

It is also possible to express transactions with a lambda notation:

```php
$db = new Connection([
    'host' => 'localhost',
    'port' => 8182,
    'graph' => 'graphT',
]);
$db->open();

$db->transaction(function($db){
    $db->send('t.addV().property("name","michael")');
    $db->send('t.addV().property("name","john")');
}, [$db]);

$db->close();
```

This will commit these changes or return an `Exception` if an error occured (and automatically rollback changes). The advantage of using this syntax is that it allows you to handle fail-retry scenarios.

It is sometimes important to implement a fail-retry strategy for your transactional queries. One such example is in the event of concurrent writes to the same elements, the databases (such as titan) will throw an error when elements are locked. When this happens you will most likely want the driver to retry the query a few times until the element is unlocked and the write can proceed. For such instances you can do:

```php
$db = new Connection([
    'host' => 'localhost',
    'port' => 8182,
    'graph' => 'graphT',
    'retryAttempts' => 10
]);
$db->open();

$db->transaction(function($db){
    $db->send('t.addV().property("name","michael")');
    $db->send('t.addV().property("name","john")');
}, [$db]);

$db->close();
```

This will attempt to run the query 10 times before fully failing.
It is worth noting that `retryAttempts` also works with -out of session- queries:

```php
$db->send('gremlin.code.here'); // will retry multiple times if 'retryAttempts' is set
```
Advanced features
=================

## Message objects

Sometimes you may need to have greater control over individual requests. The reasons for this can range from using custom serializers, different query languages (`gremlin-python`, `gremlin-scala`, `java`), to specifying a request timeout limit or a local alias.
For these cases you can construct a custom `Message` object as follows:

```php
$message = new Message;
$message->gremlin = 'custom.V()'; // note that custom refers to the graph traversal set on the server as g (see alias bellow)
$message->op = 'eval'; // operation we want to run
$message->processor = ''; // the opProcessor the server should use
$message->setArguments([
                'language' => 'gremlin-groovy',
                'aliases' => ['custom' => 'g'],
                // ... etc
]);
$message->registerSerializer('\Brightzone\GremlinDriver\Serializers\Json');

$db = new Connection();
$db->open();
$db->send($message);
//do something with result
$db->close();
```

Of course you can affect the current db message in the same manner through `$db->message`.

For a full list of arguments and values available please refer to the [TinkerPop documentation for drivers](http://tinkerpop.apache.org/docs/current/dev/provider/#_opprocessors_arguments).

## SSL

When security is important you will want to use the SSL features available. you can do so as follows:

```php
$db = new Connection([
    'host' => 'localhost',
    'graph' => 'graph',
    'ssl' => TRUE
]);
//you can set $db->timeout = 0.5; if you wish
$db->open();
$db->send('g.V(2)');
//do something with result
$db->close();
```

*Note that with php 5.6+ you will need to provide certificate information in the same manner you would to a `stream_context_create()`. In which case your `Connection()` call could look something like the following (replace with your own certificates and/or bundles):*

```php
$db = new Connection([
    'host' => 'localhost',
    'graph' => 'graph',
    'ssl' => [
        "ssl"=> [
            "cafile" => "/path/to/bundle/ca-bundle.crt",
            "verify_peer"=> true,
            "verify_peer_name"=> true,
        ]
    ]
]);
```
If you're using the bundled `gremlin-server-secure.yaml` file, you can use [this configuration](https://github.com/PommeVerte/gremlin-php/blob/master/tests/AuthTest.php#L23-L35) to connect to it.
For dev and testing purposes you can use [this configuration](https://github.com/PommeVerte/gremlin-php/blob/master/tests/AuthTest.php#L29-L34)

## Serializers

Serializers can be changed on the gremlin-server level. This allows users to set their own serializing rules. 
This library comes by default with a Json serializer. Any other serializer that implements `SerializerInterface` can be added dynamically with:

```php
$db = new Connection;
$serializer = $db->message->getSerializer() ; // returns an instance of the default JSON serializer
echo $serializer->getName(); // JSON
echo $serializer->getMimeType(); // application/json

$db->message->registerSerializer('namespace\to\my\CustomSerializer', TRUE); // sets this as default
$serializer = $db->message->getSerializer(); // returns an instance of the CustomSerializer serializer (default)
$serializer = $db->message->getSerializer('application/json'); // returns an instance of the JSON serializer
```
You can add many serializers in this fashion. When gremlin-server responds to your requests, gremlin-php will be capable of using the appropriate one to unserialize the message.

API
============

You can find the full api [here](http://pommeverte.github.io/gremlin-php/).

Unit testing
============

Neo4J is required for the full test suit. It is not bundled with gremlin-server by default so you will need to manually install it with:

```bash
bin/gremlin-server.sh -i org.apache.tinkerpop neo4j-gremlin 3.2.8
```
(replace the version number by the one that corresponds to your gremlin-server version)

Copy the following files :

```bash
cp <gremlin-php-root-dir>/build/server/gremlin-server-php.yaml <gremlin-server-root-dir>/conf/
cp <gremlin-php-root-dir>/build/server/neo4j-empty.properties <gremlin-server-root-dir>/conf/
cp <gremlin-php-root-dir>/build/server/gremlin-php-script.groovy <gremlin-server-root-dir>/scripts/
```

You will then need to run gremlin-server in the following manner :

```bash
bin/gremlin-server.sh conf/gremlin-server-php.yaml
```

Then run the unit test via:

```bash
# make sure test dependecies are installed 
composer install # PHP >=5.6
composer update # PHP 5.5

# Run the tests
phpunit -c build/phpunit.xml
```

### Browser /tests/webtest.php file

If your gremlin-php folder is on the web path. You can also load `tests/webtest.php` instead of using the command line to run PHPUNIT tests.

This is useful in some wamp or limited access command line situations. 
*~

# composer vendor folder
/vendor

# build logas and coverage
/build/logs/*
/build/coverage

checks:
    php:
        use_self_instead_of_fqcn: true
        uppercase_constants: true
        return_doc_comments: true
        return_doc_comment_if_not_inferrable: true
        properties_in_camelcaps: true
        parameter_doc_comments: true
        param_doc_comment_if_not_inferrable: true
        no_new_line_at_end_of_file: true
        no_goto: true
        more_specific_types_in_doc_comments: true
        function_in_camel_caps: true
        parameters_in_camelcaps: true
        fix_use_statements:
            remove_unused: true
            preserve_multiple: false
            preserve_blanklines: false
            order_alphabetically: true
        classes_in_camel_caps: true
        avoid_perl_style_comments: true
        avoid_multiple_statements_on_same_line: true

filter:
    paths:
        - src/*

coding_style:
    php:
        spaces:
            before_parentheses:
                if: false
                for: false
                while: false
                switch: false
                catch: false
        braces:
            classes_functions:
                class: new-line
                function: new-line
                closure: new-line
            if:
                opening: new-line
                else_on_new_line: true
            for:
                opening: new-line
            while:
                opening: new-line
            do_while:
                opening: new-line
                while_on_new_line: true
            switch:
                opening: new-line
            try:
                opening: new-line
                catch_on_new_line: true
        upper_lower_casing:
            keywords:
                general: lower
            constants:
                true_false_null: upper
<?xml version="1.0" encoding="UTF-8"?>

<phpunit backupGlobals="false"
         backupStaticAttributes="false"
         strict="false"
         verbose="true"
         bootstrap="../tests/bootstrap.php">

    <testsuites>
        <testsuite name="graphson1">
            <file>../tests/AuthTest.php</file>
            <file>../tests/GremlinServerTest.php</file>
            <file>../tests/RexsterTest.php</file>
            <file>../tests/RexsterTransactionTest.php</file>
            <file>../tests/RexsterExamplesTest.php</file>
        </testsuite>
        <testsuite name="graphson3">
            <file>../tests/AuthGS3Test.php</file>
            <file>../tests/GremlinServerGS3Test.php</file>
            <file>../tests/RexsterGS3Test.php</file>
            <file>../tests/RexsterTransactionGS3Test.php</file>
            <file>../tests/RexsterExamplesGS3Test.php</file>
            <file>../tests/GraphSon3Test.php</file>
        </testsuite>
    </testsuites>

    <logging>
        <log type="coverage-html" target="../build/coverage" title="rexpro-php"
             charset="UTF-8" yui="true" highlight="true"
             lowUpperBound="35" highLowerBound="70"/>
        <log type="coverage-clover" target="../build/logs/clover.xml"/>
        <log type="junit" target="../build/logs/junit.xml" logIncompleteSkipped="false"/>
    </logging>
    <filter>
        <whitelist processUncoveredFilesFromWhitelist="true">
            <directory suffix=".php">../src</directory>
            <exclude>
                <file>../src/Serializers/SerializerInterface.php</file>
            </exclude>
        </whitelist>
    </filter>

</phpunit>
#!/bin/bash

# Add environment java vars
export JAVA_HOME=/usr/lib/jvm/java-8-oracle
export JRE_HOME=/usr/lib/jvm/java-8-oracle

SERVER_INSTALL_DIR=$HOME
# Depending on the TP version file names may change 3.1.3 and 3.2.1 use old file names.
if [ $GREMLINSERVER_VERSION = "3.2.1" -o $GREMLINSERVER_VERSION = "3.1.3" ]
then
    TPFILENAME=apache-gremlin-server-$GREMLINSERVER_VERSION
else
    TPFILENAME=apache-tinkerpop-gremlin-server-$GREMLINSERVER_VERSION
fi

# Depending on the TP version we will want to use different configuration files for the server.
if ! [ $GREMLINSERVER_VERSION \< "3.3.0" ]
then
    if ! [ $GREMLINSERVER_VERSION \< "3.4.0" ]
    then
        TP_CONF_DIR="3.4.x"
    else
        TP_CONF_DIR="3.3.x"
    fi
else
    TP_CONF_DIR="3.2.x"
fi

# Install gremlin-server
echo "Downloading & Extracting gremlin-server"
wget --no-check-certificate -O $SERVER_INSTALL_DIR/$TPFILENAME-bin.zip https://archive.apache.org/dist/tinkerpop/$GREMLINSERVER_VERSION/$TPFILENAME-bin.zip
unzip -q $SERVER_INSTALL_DIR/$TPFILENAME-bin.zip -d $SERVER_INSTALL_DIR/
# make a secure server
echo "Extracting secure gremlin-server"
mkdir $SERVER_INSTALL_DIR/secure
unzip -q $SERVER_INSTALL_DIR/$TPFILENAME-bin.zip -d $SERVER_INSTALL_DIR/secure/
#Set grape configuration
mkdir ~/.groovy
echo '<ivysettings>
  <settings defaultResolver="downloadGrapes"/>
  <resolvers>
    <chain name="downloadGrapes">
      <filesystem name="cachedGrapes">
        <ivy pattern="${user.home}/.groovy/grapes/[organisation]/[module]/ivy-[revision].xml"/>
        <artifact pattern="${user.home}/.groovy/grapes/[organisation]/[module]/[type]s/[artifact]-[revision].[ext]"/>
      </filesystem>
      <ibiblio name="codehaus" root="http://repository.codehaus.org/" m2compatible="true"/>
      <ibiblio name="central" root="http://central.maven.org/maven2/" m2compatible="true"/>
      <ibiblio name="jitpack" root="https://jitpack.io" m2compatible="true"/>
      <ibiblio name="java.net2" root="http://download.java.net/maven/2/" m2compatible="true"/>
    </chain>
  </resolvers>
</ivysettings>' > ~/.groovy/grapeConfig.xml

# get gremlin-server configuration files
echo "Copying configuration files"
cp ./build/server/$TP_CONF_DIR/gremlin-php-script.groovy $SERVER_INSTALL_DIR/$TPFILENAME/scripts/

if [ $GRAPHSON_VERSION = "3.0" ]
then
    cp ./build/server/$TP_CONF_DIR/gremlin-server-php-graphson.yaml $SERVER_INSTALL_DIR/$TPFILENAME/conf/gremlin-server-php.yaml
else
    cp ./build/server/$TP_CONF_DIR/gremlin-server-php.yaml $SERVER_INSTALL_DIR/$TPFILENAME/conf/
fi

cp ./build/server/$TP_CONF_DIR/neo4j-empty.properties $SERVER_INSTALL_DIR/$TPFILENAME/conf/

# get gremlin-server secure configuration files
echo "Copying secure configuration files"
cp ./build/server/$TP_CONF_DIR/gremlin-php-script-secure.groovy $SERVER_INSTALL_DIR/secure/$TPFILENAME/scripts/
if [ $GRAPHSON_VERSION = "3.0" ]
then
    cp ./build/server/$TP_CONF_DIR/gremlin-server-php-secure-graphson.yaml $SERVER_INSTALL_DIR/secure/$TPFILENAME/conf/gremlin-server-php-secure.yaml
else
    cp ./build/server/$TP_CONF_DIR/gremlin-server-php-secure.yaml $SERVER_INSTALL_DIR/secure/$TPFILENAME/conf/
fi
# set up keys if necessary
echo "Setting up key for secure testing"
keytool -genkey -noprompt -alias localhost -keyalg RSA -keystore $SERVER_INSTALL_DIR/secure/$TPFILENAME/server.jks -storepass changeit -keypass changeit -dname "CN=testing"


# get neo4j dependencies
cat ~/.groovy/grapeConfig.xml
echo "Installing Neo4J dependency"
cd $SERVER_INSTALL_DIR/$TPFILENAME

if ! [ $GREMLINSERVER_VERSION \< "3.4.0" ]
then
    bin/gremlin-server.sh install org.apache.tinkerpop neo4j-gremlin $GREMLINSERVER_VERSION
else
    bin/gremlin-server.sh -i org.apache.tinkerpop neo4j-gremlin $GREMLINSERVER_VERSION
fi

# Start gremlin-server in the background and wait for it to be available
echo "Starting regular server"
bin/gremlin-server.sh conf/gremlin-server-php.yaml > /dev/null 2>&1 &

sleep 30

# Start the secure server
echo "Starting secure server"
cd $SERVER_INSTALL_DIR/secure/$TPFILENAME
bin/gremlin-server.sh conf/gremlin-server-php-secure.yaml > /dev/null 2>&1 &

# Wait for all to load
cd $TRAVIS_BUILD_DIR

sleep 30
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

host: localhost
port: 8182
threadPoolWorker: 1
gremlinPool: 8
scriptEvaluationTimeout: 30000
serializedResponseTimeout: 30000
channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
graphs: {
  graph: conf/tinkergraph-empty.properties ,
  graphT: conf/neo4j-empty.properties
}
plugins:
  - tinkerpop.neo4j
  - tinkerpop.tinkergraph
scriptEngines: {
  gremlin-groovy: {
    imports: [java.lang.Math],
    staticImports: [java.lang.Math.PI],
    scripts: [scripts/gremlin-php-script.groovy]}}
serializers:
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0, config: { useMapperFromGraph: graph }}            # application/vnd.gremlin-v1.0+gryo
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0, config: { serializeResultToString: true }}        # application/vnd.gremlin-v1.0+gryo-stringd
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV1d0, config: { useMapperFromGraph: graph }} # application/vnd.gremlin-v1.0+json
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0, config: { useMapperFromGraph: graph }}        # application/json
processors:
  - { className: org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor, config: { sessionTimeout: 28800000 }}
metrics: {
  consoleReporter: {enabled: true, interval: 180000},
  csvReporter: {enabled: true, interval: 180000, fileName: /tmp/gremlin-server-metrics.csv},
  jmxReporter: {enabled: true},
  slf4jReporter: {enabled: true, interval: 180000},
  gangliaReporter: {enabled: false, interval: 180000, addressingMode: MULTICAST},
  graphiteReporter: {enabled: false, interval: 180000}}
strictTransactionManagement: false
maxInitialLineLength: 4096
maxHeaderSize: 8192
maxChunkSize: 8192
maxContentLength: 65536
maxAccumulationBufferComponents: 1024
resultIterationBatchSize: 64
writeBufferHighWaterMark: 32768
writeBufferHighWaterMark: 65536
ssl: {
  enabled: false}

/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

/*******************************************************************
 * This script is meant to be executed with the
 * conf/gremlin-server-secure.yaml configuration file as an example
 * of how an init script running with CompileStaticCustomizerProvider
 * or TypeCheckedCustomizerProvider must be written to properly
 * execute.
 *******************************************************************/

// An example of an initialization script that can be configured to run in Gremlin Server.
// Functions defined here will go into global cache and will not be removed from there
// unless there is a reset of the ScriptEngine.
def addItUp(int x, int y) { x + y }

// an init script that returns a Map allows explicit setting of global bindings.
def globals = [:]

// defines a sample LifeCycleHook that prints some output to the Gremlin Server console.
// note that the name of the key in the "global" map is unimportant. As this script,
// runs as part of a sandbox configuration, type-checking is enabled and thus the
// LifeCycleHook type needs to be defined for the "ctx" variable.
globals << [hook : [
  onStartUp: { LifeCycleHook.Context ctx ->
    ctx.logger.info("Executed once at startup of Gremlin Server.");
    TinkerFactory.generateClassic(graph);
  },
  onShutDown: { LifeCycleHook.Context ctx ->
    ctx.logger.info("Executed once at shutdown of Gremlin Server.")
  }
] as LifeCycleHook]

// define the default TraversalSource to bind queries to - this one will be named "g".
globals << [g : graph.traversal()]# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#  http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
gremlin.graph=org.apache.tinkerpop.gremlin.neo4j.structure.Neo4jGraph
gremlin.neo4j.directory=/tmp/neo4j
gremlin.neo4j.conf.node_auto_indexing=true
gremlin.neo4j.conf.relationship_auto_indexing=true
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

##############################################################
# This configuration is meant to be a "quick start" for a
# secure configuration of Gremlin Server.  Keep in mind that
# this configuration uses a generated self-signed certificate
# for SSL and a not so secure TinkerGraph for the credential
# store - not suitable for production.
##############################################################

host: localhost
port: 8184
threadPoolWorker: 1
gremlinPool: 8
scriptEvaluationTimeout: 30000
serializedResponseTimeout: 30000
channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
graphs: {
  graph: conf/tinkergraph-empty.properties}
plugins:
  - tinkerpop.tinkergraph
scriptEngines: {
  gremlin-groovy: {
    imports: [java.lang.Math],
    staticImports: [java.lang.Math.PI],
    scripts: [scripts/gremlin-php-script-secure.groovy],
    config: {
      compilerCustomizerProviders: {
              "org.apache.tinkerpop.gremlin.groovy.jsr223.customizer.ThreadInterruptCustomizerProvider":[],
              "org.apache.tinkerpop.gremlin.groovy.jsr223.customizer.TimedInterruptCustomizerProvider":[10000]
              }}}}
serializers:
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0, config: { useMapperFromGraph: graph }}            # application/vnd.gremlin-v1.0+gryo
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0, config: { serializeResultToString: true }}        # application/vnd.gremlin-v1.0+gryo-stringd
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV1d0, config: { useMapperFromGraph: graph }} # application/vnd.gremlin-v1.0+json
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0, config: { useMapperFromGraph: graph }}        # application/json
processors:
  - { className: org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor, config: { sessionTimeout: 28800000 }}
metrics: {
  consoleReporter: {enabled: true, interval: 180000},
  csvReporter: {enabled: true, interval: 180000, fileName: /tmp/gremlin-server-metrics.csv},
  jmxReporter: {enabled: true},
  slf4jReporter: {enabled: true, interval: 180000},
  gangliaReporter: {enabled: false, interval: 180000, addressingMode: MULTICAST},
  graphiteReporter: {enabled: false, interval: 180000}}
strictTransactionManagement: false
maxInitialLineLength: 4096
maxHeaderSize: 8192
maxChunkSize: 8192
maxContentLength: 65536
maxAccumulationBufferComponents: 1024
resultIterationBatchSize: 64
writeBufferHighWaterMark: 32768
writeBufferHighWaterMark: 65536
authentication: {
  className: org.apache.tinkerpop.gremlin.server.auth.SimpleAuthenticator,
  config: {
    credentialsDb: conf/tinkergraph-credentials.properties}}
ssl: {
  enabled: true}/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

// an init script that returns a Map allows explicit setting of global bindings.
def globals = [:]

// Generates the classic graph into an "empty" TinkerGraph via LifeCycleHook.
// Note that the name of the key in the "global" map is unimportant.
globals << [hook : [
  onStartUp: { ctx ->
    ctx.logger.info("Loading 'classic' graph data.")
    TinkerFactory.generateClassic(graph)
  }
] as LifeCycleHook]

// define the default TraversalSource to bind queries to - this one will be named "g".
globals << [g : graph.traversal(), t : graphT.traversal()]#!/bin/bash

# Get dependencies (for adding repos)
sudo apt-get install -y python-software-properties
sudo add-apt-repository -y ppa:webupd8team/java
sudo apt-get update

# install oracle jdk 8
sudo apt-get install -y oracle-java8-installer
sudo update-alternatives --auto java
sudo update-alternatives --auto javac

# Add to environment
export JAVA_HOME=/usr/lib/jvm/java-8-oracle
export JRE_HOME=/usr/lib/jvm/java-8-oracle
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

host: localhost
port: 8182
scriptEvaluationTimeout: 30000
channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
graphs: {
  graph: conf/tinkergraph-empty.properties,
  graphT: conf/neo4j-empty.properties
}
scriptEngines: {
  gremlin-groovy: {
    plugins: { org.apache.tinkerpop.gremlin.server.jsr223.GremlinServerGremlinPlugin: {},
               org.apache.tinkerpop.gremlin.tinkergraph.jsr223.TinkerGraphGremlinPlugin: {},
               org.apache.tinkerpop.gremlin.neo4j.jsr223.Neo4jGremlinPlugin: {},
               org.apache.tinkerpop.gremlin.jsr223.ImportGremlinPlugin: {classImports: [java.lang.Math], methodImports: [java.lang.Math#*]},
               org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {files: [scripts/gremlin-php-script.groovy]}}}}
serializers:
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV3d0] }}             # application/vnd.gremlin-v3.0+gryo
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0, config: { serializeResultToString: true }}                                                                       # application/vnd.gremlin-v3.0+gryo-stringd
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV1d0]  }}        # application/json
processors:
  - { className: org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor, config: { sessionTimeout: 28800000 }}
  - { className: org.apache.tinkerpop.gremlin.server.op.traversal.TraversalOpProcessor, config: { cacheExpirationTime: 600000, cacheMaxSize: 1000 }}
metrics: {
  consoleReporter: {enabled: true, interval: 180000},
  csvReporter: {enabled: true, interval: 180000, fileName: /tmp/gremlin-server-metrics.csv},
  jmxReporter: {enabled: true},
  slf4jReporter: {enabled: true, interval: 180000}}
strictTransactionManagement: false
maxInitialLineLength: 4096
maxHeaderSize: 8192
maxChunkSize: 8192
maxContentLength: 65536
maxAccumulationBufferComponents: 1024
resultIterationBatchSize: 64
writeBufferLowWaterMark: 32768
writeBufferHighWaterMark: 65536
ssl: {
  enabled: false}/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

/*******************************************************************
 * This script is meant to be executed with the
 * conf/gremlin-server-secure.yaml configuration file as an example
 * of how an init script running with CompileStaticCustomizerProvider
 * or TypeCheckedCustomizerProvider must be written to properly
 * execute.
 *******************************************************************/

// An example of an initialization script that can be configured to run in Gremlin Server.
// Functions defined here will go into global cache and will not be removed from there
// unless there is a reset of the ScriptEngine.
def addItUp(int x, int y) { x + y }

// an init script that returns a Map allows explicit setting of global bindings.
def globals = [:]

// defines a sample LifeCycleHook that prints some output to the Gremlin Server console.
// note that the name of the key in the "global" map is unimportant. As this script,
// runs as part of a sandbox configuration, type-checking is enabled and thus the
// LifeCycleHook type needs to be defined for the "ctx" variable.
globals << [hook : [
  onStartUp: { LifeCycleHook.Context ctx ->
    ctx.logger.info("Executed once at startup of Gremlin Server.");
    TinkerFactory.generateClassic(graph);
  },
  onShutDown: { LifeCycleHook.Context ctx ->
    ctx.logger.info("Executed once at shutdown of Gremlin Server.")
  }
] as LifeCycleHook]

// define the default TraversalSource to bind queries to - this one will be named "g".
globals << [g : graph.traversal()]# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

##############################################################
# This configuration is meant to be a "quick start" for a
# secure configuration of Gremlin Server.  Keep in mind that
# this configuration uses a generated self-signed certificate
# for SSL and a not so secure TinkerGraph for the credential
# store - not suitable for production.
##############################################################

host: localhost
port: 8184
scriptEvaluationTimeout: 30000
channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
graphs: {
  graph: conf/tinkergraph-empty.properties}
scriptEngines: {
  gremlin-groovy: {
    plugins: { org.apache.tinkerpop.gremlin.server.jsr223.GremlinServerGremlinPlugin: {},
               org.apache.tinkerpop.gremlin.tinkergraph.jsr223.TinkerGraphGremlinPlugin: {},
               org.apache.tinkerpop.gremlin.jsr223.ImportGremlinPlugin: {classImports: [java.lang.Math], methodImports: [java.lang.Math#*]},
               org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {files: [scripts/gremlin-php-script-secure.groovy]}}}}
serializers:
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV3d0] }}            # application/vnd.gremlin-v3.0+gryo
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0, config: { serializeResultToString: true }}                                                                      # application/vnd.gremlin-v3.0+gryo-stringd
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV3d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV3d0] }}         # application/json
processors:
  - { className: org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor, config: { sessionTimeout: 28800000 }}
  - { className: org.apache.tinkerpop.gremlin.server.op.traversal.TraversalOpProcessor, config: { cacheExpirationTime: 600000, cacheMaxSize: 1000 }}
metrics: {
  consoleReporter: {enabled: true, interval: 180000},
  csvReporter: {enabled: true, interval: 180000, fileName: /tmp/gremlin-server-metrics.csv},
  jmxReporter: {enabled: true},
  slf4jReporter: {enabled: true, interval: 180000}}
strictTransactionManagement: false
maxInitialLineLength: 4096
maxHeaderSize: 8192
maxChunkSize: 8192
maxContentLength: 65536
maxAccumulationBufferComponents: 1024
resultIterationBatchSize: 64
writeBufferLowWaterMark: 32768
writeBufferHighWaterMark: 65536
authentication: {
  authenticator: org.apache.tinkerpop.gremlin.server.auth.SimpleAuthenticator,
  config: {
    credentialsDb: conf/tinkergraph-credentials.properties}}
ssl: {
  enabled: true}# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

host: localhost
port: 8182
scriptEvaluationTimeout: 30000
channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
graphs: {
  graph: conf/tinkergraph-empty.properties,
  graphT: conf/neo4j-empty.properties
}
scriptEngines: {
  gremlin-groovy: {
    plugins: {
        org.apache.tinkerpop.gremlin.server.jsr223.GremlinServerGremlinPlugin: {},
        org.apache.tinkerpop.gremlin.tinkergraph.jsr223.TinkerGraphGremlinPlugin: {},
        org.apache.tinkerpop.gremlin.neo4j.jsr223.Neo4jGremlinPlugin: {},
        org.apache.tinkerpop.gremlin.jsr223.ImportGremlinPlugin: {classImports: [java.lang.Math], methodImports: [java.lang.Math#*]},
        org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {files: [scripts/gremlin-php-script.groovy]}
        }
    }
}
serializers:
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV3d0] }}             # application/vnd.gremlin-v3.0+gryo
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0, config: { serializeResultToString: true }}                                                                       # application/vnd.gremlin-v3.0+gryo-stringd
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV3d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV3d0] }}         # application/json
processors:
  - { className: org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor, config: { sessionTimeout: 28800000 }}
  - { className: org.apache.tinkerpop.gremlin.server.op.traversal.TraversalOpProcessor, config: { cacheExpirationTime: 600000, cacheMaxSize: 1000 }}
metrics: {
  consoleReporter: {enabled: true, interval: 180000},
  csvReporter: {enabled: true, interval: 180000, fileName: /tmp/gremlin-server-metrics.csv},
  jmxReporter: {enabled: true},
  slf4jReporter: {enabled: true, interval: 180000}}
strictTransactionManagement: false
maxInitialLineLength: 4096
maxHeaderSize: 8192
maxChunkSize: 8192
maxContentLength: 65536
maxAccumulationBufferComponents: 1024
resultIterationBatchSize: 64
writeBufferLowWaterMark: 32768
writeBufferHighWaterMark: 65536
ssl: {
  enabled: false}# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#  http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

gremlin.graph=org.apache.tinkerpop.gremlin.neo4j.structure.Neo4jGraph
gremlin.neo4j.directory=/tmp/neo4j
gremlin.neo4j.conf.dbms.auto_index.nodes.enabled=true
#gremlin.neo4j.conf.dbms.auto_index.nodes.keys=
gremlin.neo4j.conf.dbms.auto_index.relationships.enabled=true
#gremlin.neo4j.conf.dbms.auto_index.relationships.keys=
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

##############################################################
# This configuration is meant to be a "quick start" for a
# secure configuration of Gremlin Server.  Keep in mind that
# this configuration uses a generated self-signed certificate
# for SSL and a not so secure TinkerGraph for the credential
# store - not suitable for production.
##############################################################

host: localhost
port: 8184
scriptEvaluationTimeout: 30000
channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
graphs: {
  graph: conf/tinkergraph-empty.properties}
scriptEngines: {
  gremlin-groovy: {
    plugins: { org.apache.tinkerpop.gremlin.server.jsr223.GremlinServerGremlinPlugin: {},
               org.apache.tinkerpop.gremlin.tinkergraph.jsr223.TinkerGraphGremlinPlugin: {},
               org.apache.tinkerpop.gremlin.jsr223.ImportGremlinPlugin: {classImports: [java.lang.Math], methodImports: [java.lang.Math#*]},
               org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {files: [scripts/gremlin-php-script-secure.groovy]}}}}
serializers:
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV3d0] }}            # application/vnd.gremlin-v3.0+gryo
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0, config: { serializeResultToString: true }}                                                                      # application/vnd.gremlin-v3.0+gryo-stringd
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV1d0]  }}        # application/json
processors:
  - { className: org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor, config: { sessionTimeout: 28800000 }}
  - { className: org.apache.tinkerpop.gremlin.server.op.traversal.TraversalOpProcessor, config: { cacheExpirationTime: 600000, cacheMaxSize: 1000 }}
metrics: {
  consoleReporter: {enabled: true, interval: 180000},
  csvReporter: {enabled: true, interval: 180000, fileName: /tmp/gremlin-server-metrics.csv},
  jmxReporter: {enabled: true},
  slf4jReporter: {enabled: true, interval: 180000}}
strictTransactionManagement: false
maxInitialLineLength: 4096
maxHeaderSize: 8192
maxChunkSize: 8192
maxContentLength: 65536
maxAccumulationBufferComponents: 1024
resultIterationBatchSize: 64
writeBufferLowWaterMark: 32768
writeBufferHighWaterMark: 65536
authentication: {
  authenticator: org.apache.tinkerpop.gremlin.server.auth.SimpleAuthenticator,
  config: {
    credentialsDb: conf/tinkergraph-credentials.properties}}
ssl: {
  enabled: true}/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

// an init script that returns a Map allows explicit setting of global bindings.
def globals = [:]

// Generates the classic graph into an "empty" TinkerGraph via LifeCycleHook.
// Note that the name of the key in the "global" map is unimportant.
globals << [hook : [
  onStartUp: { ctx ->
    ctx.logger.info("Loading 'classic' graph data.")
    TinkerFactory.generateClassic(graph)
  }
] as LifeCycleHook]

// define the default TraversalSource to bind queries to - this one will be named "g".
globals << [g : graph.traversal(), t : graphT.traversal()]host: localhost
port: 8182
scriptEvaluationTimeout: 30000
channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
graphs: {
  graphT: conf/gremlin-server/janusgraph-cassandra-es-server.properties,
  graph: conf/gremlin-server/tinkergraph-empty.properties
}
plugins:
  - tinkerpop.tinkergraph
  - janusgraph.imports
scriptEngines: {
  gremlin-groovy: {
    imports: [java.lang.Math],
    staticImports: [java.lang.Math.PI],
    scripts: [scripts/gremlin-php-script.groovy]}}
serializers:
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0, config: { ioRegistries: [org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry] }}
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoLiteMessageSerializerV1d0, config: {ioRegistries: [org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry] }}
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0, config: { serializeResultToString: true }}
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV1d0, config: { ioRegistries: [org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry] }}
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV2d0, config: { ioRegistries: [org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry] }}
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0, config: { ioRegistries: [org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry] }}
processors:
  - { className: org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor, config: { sessionTimeout: 28800000 }}
  - { className: org.apache.tinkerpop.gremlin.server.op.traversal.TraversalOpProcessor, config: { cacheExpirationTime: 600000, cacheMaxSize: 1000 }}
metrics: {
  consoleReporter: {enabled: true, interval: 180000},
  csvReporter: {enabled: true, interval: 180000, fileName: /tmp/gremlin-server-metrics.csv},
  jmxReporter: {enabled: true},
  slf4jReporter: {enabled: true, interval: 180000},
  gangliaReporter: {enabled: false, interval: 180000, addressingMode: MULTICAST},
  graphiteReporter: {enabled: false, interval: 180000}}
maxInitialLineLength: 4096
maxHeaderSize: 8192
maxChunkSize: 8192
maxContentLength: 65536
maxAccumulationBufferComponents: 1024
resultIterationBatchSize: 64
writeBufferLowWaterMark: 32768
writeBufferHighWaterMark: 65536
ssl: {
  enabled: false}/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

/*******************************************************************
 * This script is meant to be executed with the
 * conf/gremlin-server-secure.yaml configuration file as an example
 * of how an init script running with CompileStaticCustomizerProvider
 * or TypeCheckedCustomizerProvider must be written to properly
 * execute.
 *******************************************************************/

// An example of an initialization script that can be configured to run in Gremlin Server.
// Functions defined here will go into global cache and will not be removed from there
// unless there is a reset of the ScriptEngine.
def addItUp(int x, int y) { x + y }

// an init script that returns a Map allows explicit setting of global bindings.
def globals = [:]

// defines a sample LifeCycleHook that prints some output to the Gremlin Server console.
// note that the name of the key in the "global" map is unimportant. As this script,
// runs as part of a sandbox configuration, type-checking is enabled and thus the
// LifeCycleHook type needs to be defined for the "ctx" variable.
globals << [hook : [
  onStartUp: { LifeCycleHook.Context ctx ->
    ctx.logger.info("Executed once at startup of Gremlin Server.");
    TinkerFactory.generateClassic(graph);
  },
  onShutDown: { LifeCycleHook.Context ctx ->
    ctx.logger.info("Executed once at shutdown of Gremlin Server.")
  }
] as LifeCycleHook]

// define the default TraversalSource to bind queries to - this one will be named "g".
globals << [g : graph.traversal()]# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#  http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
gremlin.graph=org.apache.tinkerpop.gremlin.neo4j.structure.Neo4jGraph
gremlin.neo4j.directory=/tmp/neo4j
gremlin.neo4j.conf.node_auto_indexing=true
gremlin.neo4j.conf.relationship_auto_indexing=true
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

##############################################################
# This configuration is meant to be a "quick start" for a
# secure configuration of Gremlin Server.  Keep in mind that
# this configuration uses a generated self-signed certificate
# for SSL and a not so secure TinkerGraph for the credential
# store - not suitable for production.
##############################################################

host: localhost
port: 8184
threadPoolWorker: 1
gremlinPool: 8
scriptEvaluationTimeout: 30000
serializedResponseTimeout: 30000
channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
graphs: {
  graph: conf/tinkergraph-empty.properties}
plugins:
  - tinkerpop.tinkergraph
scriptEngines: {
  gremlin-groovy: {
    imports: [java.lang.Math],
    staticImports: [java.lang.Math.PI],
    scripts: [scripts/gremlin-php-script-secure.groovy],
    config: {
      compilerCustomizerProviders: {
              "org.apache.tinkerpop.gremlin.groovy.jsr223.customizer.ThreadInterruptCustomizerProvider":[],
              "org.apache.tinkerpop.gremlin.groovy.jsr223.customizer.TimedInterruptCustomizerProvider":[10000],
              "org.apache.tinkerpop.gremlin.groovy.jsr223.customizer.CompileStaticCustomizerProvider":["org.apache.tinkerpop.gremlin.groovy.jsr223.customizer.SimpleSandboxExtension"]}}}}
serializers:
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0, config: { useMapperFromGraph: graph }}            # application/vnd.gremlin-v1.0+gryo
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0, config: { serializeResultToString: true }}        # application/vnd.gremlin-v1.0+gryo-stringd
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV1d0, config: { useMapperFromGraph: graph }} # application/vnd.gremlin-v1.0+json
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0, config: { useMapperFromGraph: graph }}        # application/json
processors:
  - { className: org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor, config: { sessionTimeout: 28800000 }}
metrics: {
  consoleReporter: {enabled: true, interval: 180000},
  csvReporter: {enabled: true, interval: 180000, fileName: /tmp/gremlin-server-metrics.csv},
  jmxReporter: {enabled: true},
  slf4jReporter: {enabled: true, interval: 180000},
  gangliaReporter: {enabled: false, interval: 180000, addressingMode: MULTICAST},
  graphiteReporter: {enabled: false, interval: 180000}}
strictTransactionManagement: false
maxInitialLineLength: 4096
maxHeaderSize: 8192
maxChunkSize: 8192
maxContentLength: 65536
maxAccumulationBufferComponents: 1024
resultIterationBatchSize: 64
writeBufferHighWaterMark: 32768
writeBufferHighWaterMark: 65536
authentication: {
  className: org.apache.tinkerpop.gremlin.server.auth.SimpleAuthenticator,
  config: {
    credentialsDb: conf/tinkergraph-credentials.properties}}
ssl: {
  enabled: true}/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

// an init script that returns a Map allows explicit setting of global bindings.
def globals = [:]

// Generates the classic graph into an "empty" TinkerGraph via LifeCycleHook.
// Note that the name of the key in the "global" map is unimportant.
globals << [hook : [
  onStartUp: { ctx ->
    ctx.logger.info("Loading 'classic' graph data.")
    TinkerFactory.generateClassic(graph)
  }
] as LifeCycleHook]

// define the default TraversalSource to bind queries to - this one will be named "g".
globals << [g : graph.traversal(), t : graphT.traversal()]# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

host: localhost
port: 8182
scriptEvaluationTimeout: 30000
channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
graphs: {
  graph: conf/tinkergraph-empty.properties,
  graphT: conf/neo4j-empty.properties
}
scriptEngines: {
  gremlin-groovy: {
    plugins: { org.apache.tinkerpop.gremlin.server.jsr223.GremlinServerGremlinPlugin: {},
               org.apache.tinkerpop.gremlin.tinkergraph.jsr223.TinkerGraphGremlinPlugin: {},
               org.apache.tinkerpop.gremlin.neo4j.jsr223.Neo4jGremlinPlugin: {},
               org.apache.tinkerpop.gremlin.jsr223.ImportGremlinPlugin: {classImports: [java.lang.Math], methodImports: [java.lang.Math#*]},
               org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {files: [scripts/gremlin-php-script.groovy]}}}}
serializers:
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV3d0] }}             # application/vnd.gremlin-v3.0+gryo
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0, config: { serializeResultToString: true }}                                                                       # application/vnd.gremlin-v3.0+gryo-stringd
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV1d0]  }}        # application/json
processors:
  - { className: org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor, config: { sessionTimeout: 28800000 }}
  - { className: org.apache.tinkerpop.gremlin.server.op.traversal.TraversalOpProcessor, config: { cacheExpirationTime: 600000, cacheMaxSize: 1000 }}
metrics: {
  consoleReporter: {enabled: true, interval: 180000},
  csvReporter: {enabled: true, interval: 180000, fileName: /tmp/gremlin-server-metrics.csv},
  jmxReporter: {enabled: true},
  slf4jReporter: {enabled: true, interval: 180000}}
strictTransactionManagement: false
maxInitialLineLength: 4096
maxHeaderSize: 8192
maxChunkSize: 8192
maxContentLength: 65536
maxAccumulationBufferComponents: 1024
resultIterationBatchSize: 64
writeBufferLowWaterMark: 32768
writeBufferHighWaterMark: 65536
ssl: {
  enabled: false}/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

/*******************************************************************
 * This script is meant to be executed with the
 * conf/gremlin-server-secure.yaml configuration file as an example
 * of how an init script running with CompileStaticCustomizerProvider
 * or TypeCheckedCustomizerProvider must be written to properly
 * execute.
 *******************************************************************/

// An example of an initialization script that can be configured to run in Gremlin Server.
// Functions defined here will go into global cache and will not be removed from there
// unless there is a reset of the ScriptEngine.
def addItUp(int x, int y) { x + y }

// an init script that returns a Map allows explicit setting of global bindings.
def globals = [:]

// defines a sample LifeCycleHook that prints some output to the Gremlin Server console.
// note that the name of the key in the "global" map is unimportant. As this script,
// runs as part of a sandbox configuration, type-checking is enabled and thus the
// LifeCycleHook type needs to be defined for the "ctx" variable.
globals << [hook : [
  onStartUp: { LifeCycleHook.Context ctx ->
    ctx.logger.info("Executed once at startup of Gremlin Server.");
    TinkerFactory.generateClassic(graph);
  },
  onShutDown: { LifeCycleHook.Context ctx ->
    ctx.logger.info("Executed once at shutdown of Gremlin Server.")
  }
] as LifeCycleHook]

// define the default TraversalSource to bind queries to - this one will be named "g".
globals << [g : graph.traversal()]# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

##############################################################
# This configuration is meant to be a "quick start" for a
# secure configuration of Gremlin Server.  Keep in mind that
# this configuration uses a generated self-signed certificate
# for SSL and a not so secure TinkerGraph for the credential
# store - not suitable for production.
##############################################################

host: localhost
port: 8184
scriptEvaluationTimeout: 30000
channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
graphs: {
  graph: conf/tinkergraph-empty.properties}
scriptEngines: {
  gremlin-groovy: {
    plugins: { org.apache.tinkerpop.gremlin.server.jsr223.GremlinServerGremlinPlugin: {},
               org.apache.tinkerpop.gremlin.tinkergraph.jsr223.TinkerGraphGremlinPlugin: {},
               org.apache.tinkerpop.gremlin.jsr223.ImportGremlinPlugin: {classImports: [java.lang.Math], methodImports: [java.lang.Math#*]},
               org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {files: [scripts/gremlin-php-script-secure.groovy]}}}}
serializers:
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV3d0] }}            # application/vnd.gremlin-v3.0+gryo
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0, config: { serializeResultToString: true }}                                                                      # application/vnd.gremlin-v3.0+gryo-stringd
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV3d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV3d0] }}         # application/json
processors:
  - { className: org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor, config: { sessionTimeout: 28800000 }}
  - { className: org.apache.tinkerpop.gremlin.server.op.traversal.TraversalOpProcessor, config: { cacheExpirationTime: 600000, cacheMaxSize: 1000 }}
metrics: {
  consoleReporter: {enabled: true, interval: 180000},
  csvReporter: {enabled: true, interval: 180000, fileName: /tmp/gremlin-server-metrics.csv},
  jmxReporter: {enabled: true},
  slf4jReporter: {enabled: true, interval: 180000}}
strictTransactionManagement: false
maxInitialLineLength: 4096
maxHeaderSize: 8192
maxChunkSize: 8192
maxContentLength: 65536
maxAccumulationBufferComponents: 1024
resultIterationBatchSize: 64
writeBufferLowWaterMark: 32768
writeBufferHighWaterMark: 65536
authentication: {
  authenticator: org.apache.tinkerpop.gremlin.server.auth.SimpleAuthenticator,
  config: {
    credentialsDb: conf/tinkergraph-credentials.properties}}
ssl: {
  enabled: true,
  sslEnabledProtocols: [TLSv1.2],
  # You must configure a keyStore!
  keyStore: server.jks,
  keyStorePassword: changeit
}# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

host: localhost
port: 8182
scriptEvaluationTimeout: 30000
channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
graphs: {
  graph: conf/tinkergraph-empty.properties,
  graphT: conf/neo4j-empty.properties
}
scriptEngines: {
  gremlin-groovy: {
    plugins: {
        org.apache.tinkerpop.gremlin.server.jsr223.GremlinServerGremlinPlugin: {},
        org.apache.tinkerpop.gremlin.tinkergraph.jsr223.TinkerGraphGremlinPlugin: {},
        org.apache.tinkerpop.gremlin.neo4j.jsr223.Neo4jGremlinPlugin: {},
        org.apache.tinkerpop.gremlin.jsr223.ImportGremlinPlugin: {classImports: [java.lang.Math], methodImports: [java.lang.Math#*]},
        org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {files: [scripts/gremlin-php-script.groovy]}
        }
    }
}
serializers:
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV3d0] }}             # application/vnd.gremlin-v3.0+gryo
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0, config: { serializeResultToString: true }}                                                                       # application/vnd.gremlin-v3.0+gryo-stringd
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV3d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV3d0] }}         # application/json
processors:
  - { className: org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor, config: { sessionTimeout: 28800000 }}
  - { className: org.apache.tinkerpop.gremlin.server.op.traversal.TraversalOpProcessor, config: { cacheExpirationTime: 600000, cacheMaxSize: 1000 }}
metrics: {
  consoleReporter: {enabled: true, interval: 180000},
  csvReporter: {enabled: true, interval: 180000, fileName: /tmp/gremlin-server-metrics.csv},
  jmxReporter: {enabled: true},
  slf4jReporter: {enabled: true, interval: 180000}}
strictTransactionManagement: false
maxInitialLineLength: 4096
maxHeaderSize: 8192
maxChunkSize: 8192
maxContentLength: 65536
maxAccumulationBufferComponents: 1024
resultIterationBatchSize: 64
writeBufferLowWaterMark: 32768
writeBufferHighWaterMark: 65536
ssl: {
  enabled: false}# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#  http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

gremlin.graph=org.apache.tinkerpop.gremlin.neo4j.structure.Neo4jGraph
gremlin.neo4j.directory=/tmp/neo4j
gremlin.neo4j.conf.dbms.auto_index.nodes.enabled=true
#gremlin.neo4j.conf.dbms.auto_index.nodes.keys=
gremlin.neo4j.conf.dbms.auto_index.relationships.enabled=true
#gremlin.neo4j.conf.dbms.auto_index.relationships.keys=
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

##############################################################
# This configuration is meant to be a "quick start" for a
# secure configuration of Gremlin Server.  Keep in mind that
# this configuration uses a generated self-signed certificate
# for SSL and a not so secure TinkerGraph for the credential
# store - not suitable for production.
##############################################################

host: localhost
port: 8184
scriptEvaluationTimeout: 30000
channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
graphs: {
  graph: conf/tinkergraph-empty.properties}
scriptEngines: {
  gremlin-groovy: {
    plugins: { org.apache.tinkerpop.gremlin.server.jsr223.GremlinServerGremlinPlugin: {},
               org.apache.tinkerpop.gremlin.tinkergraph.jsr223.TinkerGraphGremlinPlugin: {},
               org.apache.tinkerpop.gremlin.jsr223.ImportGremlinPlugin: {classImports: [java.lang.Math], methodImports: [java.lang.Math#*]},
               org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {files: [scripts/gremlin-php-script-secure.groovy]}}}}
serializers:
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV3d0] }}            # application/vnd.gremlin-v3.0+gryo
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0, config: { serializeResultToString: true }}                                                                      # application/vnd.gremlin-v3.0+gryo-stringd
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV1d0]  }}        # application/json
processors:
  - { className: org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor, config: { sessionTimeout: 28800000 }}
  - { className: org.apache.tinkerpop.gremlin.server.op.traversal.TraversalOpProcessor, config: { cacheExpirationTime: 600000, cacheMaxSize: 1000 }}
metrics: {
  consoleReporter: {enabled: true, interval: 180000},
  csvReporter: {enabled: true, interval: 180000, fileName: /tmp/gremlin-server-metrics.csv},
  jmxReporter: {enabled: true},
  slf4jReporter: {enabled: true, interval: 180000}}
strictTransactionManagement: false
maxInitialLineLength: 4096
maxHeaderSize: 8192
maxChunkSize: 8192
maxContentLength: 65536
maxAccumulationBufferComponents: 1024
resultIterationBatchSize: 64
writeBufferLowWaterMark: 32768
writeBufferHighWaterMark: 65536
authentication: {
  authenticator: org.apache.tinkerpop.gremlin.server.auth.SimpleAuthenticator,
  config: {
    credentialsDb: conf/tinkergraph-credentials.properties}}
ssl: {
  enabled: true,
  sslEnabledProtocols: [TLSv1.2],
  # You must configure a keyStore!
  keyStore: server.jks,
  keyStorePassword: changeit
}/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

// an init script that returns a Map allows explicit setting of global bindings.
def globals = [:]

// Generates the classic graph into an "empty" TinkerGraph via LifeCycleHook.
// Note that the name of the key in the "global" map is unimportant.
globals << [hook : [
  onStartUp: { ctx ->
    ctx.logger.info("Loading 'classic' graph data.")
    TinkerFactory.generateClassic(graph)
  }
] as LifeCycleHook]

// define the default TraversalSource to bind queries to - this one will be named "g".
globals << [g : graph.traversal(), t : graphT.traversal()]<phpdox xmlns="http://phpdox.net/config">
 <project name="rexpro-php" source="src" workdir="${basedir}/logs/phpdox">
  <collector publiconly="false">
   <include mask="*.php" />
   <exclude mask="*Autoload.php" />
   <exclude mask="vendor" />
  </collector>

  <generator output="${basedir}">
   <build engine="html" enabled="true" output="api"/>
  </generator>
 </project>
</phpdox>
<ruleset name="bz-standard"
  xmlns="http://pmd.sf.net/ruleset/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0
                      http://pmd.sf.net/ruleset_xml_schema.xsd"
  xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
  <description>Home made</description>

	<!-- Import the entire unused code rule set -->
	<rule ref="rulesets/unusedcode.xml" />

	<!-- Import the entire cyclomatic complexity rule -->
	<rule ref="rulesets/codesize.xml/CyclomaticComplexity" />
	<rule ref="rulesets/codesize.xml/ExcessiveParameterList" />

	<!-- Import entire naming rule set -->
	<rule ref="rulesets/design.xml/ExitExpression" />
	<rule ref="rulesets/design.xml/GotoStatement" />
	<rule ref="rulesets/design.xml/EvalExpression" />
	
	<!-- Import entire naming rule set except for shotvariable-->
	<rule ref="rulesets/naming.xml" >
		<exclude name="ShortVariable"/>
	</rule>
	

	<!-- Import entire controversal rule set and exclude rules -->
	<rule ref="rulesets/controversial.xml">
		<exclude name="SuperGlobals" />
		<exclude name="CamelCaseMethodName" />
		<exclude name="CamelCasePropertyName" />
	</rule>
    
  <!-- ... -->
</ruleset>
<?xml version="1.0"?>
<ruleset name="Custom Standard">

	<rule ref="Generic.PHP.DisallowShortOpenTag"/>
	<rule ref="PSR1.Methods.CamelCapsMethodName"/>
	
	<!-- Must use elseif instead of else if -->
	<rule ref="PSR2.ControlStructures.ElseIfDeclaration"/>
	
	<!-- All statements should be on a new line (false: $foo = 1;$bar = 2;) -->
	<rule ref="Generic.Formatting.DisallowMultipleStatements"/>
	
	<!-- Must use elseif instead of else if -->
	<rule ref="Brightzone.ControlStructures.ClassDeclaration"/>
	
	<rule ref="Squiz.Classes.ValidClassName"/>
	<rule ref="PEAR.NamingConventions.ValidVariableName"/>
	
	<rule ref="Generic.Classes.DuplicateClassName"/>
	<rule ref="Generic.WhiteSpace.DisallowSpaceIndent"/>
	<rule ref="Generic.PHP.UpperCaseConstant"/>
	<rule ref="Squiz.Classes.DuplicateProperty"/>
	<rule ref="Brightzone.ControlStructures.FunctionCallArgumentSpacing"/>
	<rule ref="Generic.Functions.OpeningFunctionBraceBsdAllman"/>
	
	<rule ref="Brightzone.ControlStructures.ControlSignature"/>

	<rule ref="PEAR.Commenting.ClassComment"/>
	<rule ref="PEAR.Commenting.FunctionComment"/>
	<rule ref="PEAR.Commenting.InlineComment"/>
	
	<rule ref="Squiz.Arrays.ArrayBracketSpacing"/>
	<rule ref="Squiz.Classes.SelfMemberReference"/>
	<rule ref="Generic.CodeAnalysis.EmptyStatement"/>
	<rule ref="Generic.ControlStructures.InlineControlStructure"/>
	<rule ref="Generic.Files.LineEndings"/>
	<rule ref="Generic.NamingConventions.ConstructorName"/>
	<rule ref="Squiz.PHP.NonExecutableCode"/>
	

</ruleset>
#!/bin/bash

if [ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PHP_VERSION" == "5.6" ] && [ "$GRAPHSON_VERSION" == "3.0" ]; then

    # run coveralls
    php $TRAVIS_BUILD_DIR/vendor/bin/php-coveralls -v

    # configure git
    git config --global user.name "Travis CI"
    git config --global user.email "dylan.millikin@brightzone.fr"
    git config --global push.default simple

    #clone doc repo
    git clone -b master --depth 1 https://github.com/PommeVerte/PommeVerte.github.io.git $TRAVIS_BUILD_DIR/build/logs/PommeVerte.github.io

    #generate docs
    $TRAVIS_BUILD_DIR/vendor/bin/apidoc api --interactive=0 $TRAVIS_BUILD_DIR/src/ $TRAVIS_BUILD_DIR/build/logs/PommeVerte.github.io/gremlin-php/
    [ -f $HOME/PommeVerte.github.io/gremlin-php/errors.txt ] && cat $HOME/PommeVerte.github.io/gremlin-php/errors.txt

fi
Copyright 2014-2016 Dylan Millikin

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
language: php

php:
  - 5.5
  - 5.6
  - 7.0
#  - hhvm
  - nightly

dist: trusty

matrix:
  allow_failures:
    - php: nightly

before_install:
  - sudo apt-get update > /dev/null

install:
  # install Oracle JDK8
  - sh -c ./build/server/jdk8-install.sh
  # install gremlin-server
  - sh -c ./build/server/install.sh
  - if [ -n "$GH_TOKEN" ]; then composer config --global github-oauth.github.com ${GH_TOKEN}; else echo "no token"; fi
  - composer global require "fxp/composer-asset-plugin:~1.4"
  - if [[ ${TRAVIS_PHP_VERSION:0:3} == "5.6" ]] || [[ ${TRAVIS_PHP_VERSION:0:3} == "5.5" ]]; then composer update -v; else composer install; fi

script: if [[ ${GRAPHSON_VERSION} == "3.0" ]]; then vendor/bin/phpunit --configuration build/phpunit.xml --testsuit graphson3; else vendor/bin/phpunit --configuration build/phpunit.xml --testsuit graphson1; fi

after_success:
  - sh -c ./build/deploy.sh

env:
  matrix:
    - GREMLINSERVER_VERSION="3.2.8" GRAPHSON_VERSION="1.0"
    - GREMLINSERVER_VERSION="3.3.2" GRAPHSON_VERSION="1.0"
    - GREMLINSERVER_VERSION="3.3.2" GRAPHSON_VERSION="3.0"
    - GREMLINSERVER_VERSION="3.4.0" GRAPHSON_VERSION="1.0"
    - GREMLINSERVER_VERSION="3.4.0" GRAPHSON_VERSION="3.0"

deploy:
  provider: pages
  repo: PommeVerte/PommeVerte.github.io
  skip-cleanup: true
  github-token: $GH_TOKEN  # Set in travis-ci.org dashboard, marked secure
  keep-history: true
  local-dir: ./build/logs/PommeVerte.github.io
  target-branch: master
  verbose: true
  project-name: PommeVerte/gremlin-php
  on:
    branch: master
    condition: $TRAVIS_PHP_VERSION = "5.6" && $GRAPHSON_VERSION = "3.0"{
    "name": "brightzone/gremlin-php",
    "description": "gremlin-server client for php",
    "minimum-stability": "stable",
    "license": "Apache 2",
    "authors": [
        {
            "name": "Brightzone",
            "email": "dylan.millikin@brightzone.fr"
        }
    ],
    "require": {
        "php": ">=5.5"
    },
    "keywords": [
        "rexpro-php",
        "rexpro",
        "gremlin",
        "gremlin-server",
        "driver"
    ],
    "require-dev": {
        "yiisoft/yii2-apidoc": "~2.1",
        "satooshi/php-coveralls": "~2.0",
        "phpunit/php-code-coverage": "~2.2||~4.0||~5.3",
        "phpunit/phpunit": "~4.8||~5.7||~6.5"
    },
    "autoload": {
        "psr-4": {
            "Brightzone\\GremlinDriver\\": "src/",
            "Brightzone\\GremlinDriver\\Tests\\": "tests/"
        }
    },
    "extra": {
        "asset-installer-paths": {
            "npm-asset-library": "vendor/npm",
            "bower-asset-library": "vendor/bower"
        }
    }
}
<?php

namespace Brightzone\GremlinDriver;

use Brightzone\GremlinDriver\Serializers\Json;
use Brightzone\GremlinDriver\Serializers\SerializerInterface;

/**
 * Gremlin-server PHP Driver client Connection class
 *
 * Example of basic use:
 *
 * ~~~
 * $connection = new Connection(['host' => 'localhost']);
 * $connection->open();
 * $resultSet = $connection->send('g.V'); //returns array with results
 * ~~~
 *
 * Some more customising of message to send can be done with the message object
 *
 * ~~~
 * $connection = new Connection(['host' => 'localhost']);
 * $connection->open();
 * $connection->message->gremlin = 'g.V';
 * $connection->send();
 * ~~~
 *
 * See Message for more details
 *
 * @category DB
 * @package  GremlinDriver
 * @author   Dylan Millikin <dylan.millikin@brightzone.fr>
 * @license  http://www.apache.org/licenses/LICENSE-2.0 apache2
 * @link     https://github.com/tinkerpop/rexster/wiki
 */
class Connection
{
    /**
     * @var string Contains the host information required to connect to the database.
     *
     * Default: localhost
     */
    public $host = 'localhost';

    /**
     * @var string Contains port information to connect to the database
     *
     * Default : 8182
     */
    public $port = 8182;

    /**
     * @var string the username for establishing DB connection. Defaults to NULL.
     */
    public $username;

    /**
     * @var string the password for establishing DB connection. Defaults to NULL.
     */
    public $password;

    /**
     * @var string the graph to use.
     */
    public $graph;

    /**
     * @var float timeout to use for connection to Rexster. If not set the timeout set in php.ini will be used:
     *      ini_get("default_socket_timeout")
     */
    public $timeout;

    /**
     * @var Message Message object
     */
    public $message;

    /**
     * @var array Aliases to be used for this connection.
     * Allows users to set up whichever character on the db end such as "g" and reference it with another alias.
     */
    public $aliases = [];

    /**
     * @var bool whether or not the driver should return empty result sets as an empty array
     * (the default behavior is to propagate the exception from the server - yes the server throws exceptions on empty
     * result sets.)
     */
    public $emptySet = FALSE;

    /**
     * @var bool tells us if we're inside a transaction
     */
    protected $_inTransaction = FALSE;

    /**
     * @var string The session ID for this connection.
     * Session ID allows us to access variable bindings made in previous requests. It is binary data
     */
    protected $_sessionUuid;

    /**
     * @var resource rexpro socket connection
     */
    protected $_socket;

    /**
     * @var bool|array whether or not we're using ssl. If an array is set it should correspond to a
     *      stream_context_create() array.
     */
    public $ssl = FALSE;

    /**
     * @var string which sasl mechanism to use for authentication. Can be either PLAIN or GSSAPI.
     * This is ignored by gremlin-server by default but some custom server implementations may use this
     */
    public $saslMechanism = "PLAIN";

    /**
     * @var string the strategy to use for retry
     */
    public $retryStrategy = 'linear';

    /**
     * @var int the number of attempts before total failure
     */
    public $retryAttempts = 1;

    /**
     * @var bool whether or not to accept different return formats from the one the message was sent with.
     * This is an extremely rare occurrence. Only happens if using a custom serializer.
     */
    private $_acceptDiffResponseFormat = FALSE;

    /**
     * Overloading constructor to instantiate a Message instance and
     * provide it with a default serializer.
     *
     * @param array $options The class options
     */
    public function __construct($options = [])
    {
        foreach($options as $key => $value)
        {
            $this->$key = $value;
        }
        //create a message object
        $this->message = new Message();
        //assign a default serializer to it
        $this->message->registerSerializer(new Json, TRUE);
    }

    /**
     * Connects to socket and starts a session with gremlin-server
     *
     * @return bool TRUE on success FALSE on error
     */
    public function open()
    {
        if($this->_socket === NULL)
        {
            $this->connectSocket(); // will throw error on failure.

            return $this->makeHandshake();
        }

        return FALSE;
    }

    /**
     * Sends data over socket
     *
     * @param Message $msg Object containing the message to send
     *
     * @return bool TRUE if success
     */
    private function writeSocket($msg = NULL)
    {
        if($msg === NULL)
        {
            $msg = $this->message;
        }

        $msg = $this->webSocketPack($msg->buildMessage());
        $write = @fwrite($this->_socket, $msg);
        if($write === FALSE)
        {
            $this->error(__METHOD__ . ': Could not write to socket', 500, TRUE);
        }

        return TRUE;
    }

    /**
     * Make Original handshake with the server
     *
     * @param bool $origin whether or not to provide the origin header. currently unsupported
     *
     * @return bool TRUE on success FALSE on failure
     */
    protected function makeHandshake($origin = FALSE)
    {
        try
        {
            $protocol = 'http';
            if($this->ssl)
            {
                $protocol = 'ssl';
            }

            $key = base64_encode(Helper::generateRandomString(16, FALSE, TRUE));
            $header = "GET /gremlin HTTP/1.1\r\n";
            $header .= "Upgrade: websocket\r\n";
            $header .= "Connection: Upgrade\r\n";
            $header .= "Sec-WebSocket-Key: " . $key . "\r\n";
            $header .= "Host: " . $this->host . "\r\n";
            if($origin !== TRUE)
            {
                $header .= "Sec-WebSocket-Origin: " . $protocol . "://" . $this->host . ":" . $this->port . "\r\n";
            }
            $header .= "Sec-WebSocket-Version: 13\r\n\r\n";

            @fwrite($this->_socket, $header);
            $response = @fread($this->_socket, 1500);
            if(!$response)
            {
                $this->error("Couldn't get a response from server", 500);
            }

            $expectedResponse = base64_encode(pack('H*', sha1($key . '258EAFA5-E914-47DA-95CA-C5AB0DC85B11')));
            return stripos($response, "Sec-WebSocket-Accept: $expectedResponse");
        }
        catch(\Exception $e)
        {
            $this->error("Could not finalise handshake, Maybe the server was unreachable", 500, TRUE);

            return FALSE;
        }
    }

    /**
     * Get and parse message from the socket
     *
     * @return array the message returned from the db
     */
    private function socketGetMessage()
    {
        $data = $head = $this->streamGetContent(1);
        $head = unpack('C*', $head);

        //extract opcode from first byte
        $isBinary = (($head[1] & 15) == 2) && $this->_acceptDiffResponseFormat;

        $data .= $maskAndLength = $this->streamGetContent(1);
        list($maskAndLength) = array_values(unpack('C', $maskAndLength));

        //set first bit to 0
        $length = $maskAndLength & 127;

        $maskSet = FALSE;
        if($maskAndLength & 128)
        {
            $maskSet = TRUE;
        }

        if($length == 126)
        {
            $data .= $payloadLength = $this->streamGetContent(2);
            list($payloadLength) = array_values(unpack('n', $payloadLength)); // S for 16 bit int
        }
        elseif($length == 127)
        {
            $data .= $payloadLength = $this->streamGetContent(8);
            //lets save it as two 32 bit integers and reatach using bitwise operators
            //we do this as pack doesn't support 64 bit packing/unpacking.
            list($higher, $lower) = array_values(unpack('N2', $payloadLength));
            $payloadLength = $higher << 32 | $lower;
        }
        else
        {
            $payloadLength = $length;
        }

        //get mask
        if($maskSet)
        {
            $data .= $mask = $this->streamGetContent(4);
        }

        // get payload
        $data .= $payload = $this->streamGetContent($payloadLength);

        if($maskSet)
        {
            //unmask payload
            $payload = $this->unmask($mask, $payload);
        }

        //ugly code but we can seperate the two errors this way
        if($head === FALSE || $payload === FALSE || $maskAndLength === FALSE
            || $payloadLength === FALSE || ($maskSet === TRUE && $mask === FALSE)
        )
        {
            $this->error('Could not stream contents', 500);
        }
        if(empty($head) || empty($payload) || empty($maskAndLength)
            || empty($payloadLength) || ($maskSet === TRUE && empty($mask)))
        {
            $this->error('Empty reply. Most likely the result of an irregular request. (Check custom Meta, or lack of in the case of a non-isolated query)', 500);
        }

        //now that we have the payload lets parse it
        try
        {
            $unpacked = $this->message->parse($payload, $isBinary);
        }
        catch(\Exception $e)
        {
            $this->error($e->getMessage(), $e->getCode(), TRUE);
        }

        return $unpacked;
    }

    /**
     * Recieves binary data over the socket and parses it
     *
     * @return array PHP native result from server
     */
    protected function socketGetUnpack()
    {
        $fullData = [];
        do
        {
            $unpacked = $this->socketGetMessage();
            // If this is an authentication challenge, lets meet it and return the result
            if($unpacked['status']['code'] === 407)
            {
                return $this->authenticate();
            }

            if($unpacked['status']['code'] === 204 && $this->emptySet)
            {
                return [];
            }

            //handle errors
            if($unpacked['status']['code'] !== 200 && $unpacked['status']['code'] !== 206)
            {
                $this->error($unpacked['status']['message']
                    . "\n\n ===================  SERVER TRACE  ========================= \n"
                    . var_export($unpacked['status']['attributes'], TRUE)
                    . "\n ============================================================ \n", $unpacked['status']['code']);
            }

            foreach($unpacked['result']['data'] as $row)
            {
                $fullData[] = $row;
            }
        }
        while($unpacked['status']['code'] === 206);

        return $fullData;
    }

    /**
     * Opens socket
     *
     * @return bool TRUE on success
     */
    private function connectSocket()
    {
        $protocol = 'tcp';
        $context = stream_context_create([]);
        if($this->ssl)
        {
            $protocol = 'ssl';
            if(is_array($this->ssl) && !empty($this->ssl))
            {
                $context = stream_context_create($this->ssl);
            }
        }
        $fp = @stream_socket_client(
            $protocol . '://' . $this->host . ':' . $this->port,
            $errno,
            $errorMessage,
            $this->timeout ? $this->timeout : ini_get("default_socket_timeout"),
            STREAM_CLIENT_CONNECT,
            $context
        );

        if(!$fp)
        {
            $this->error($errorMessage, $errno, TRUE);

            return FALSE;
        }

        $this->_socket = $fp;

        return TRUE;
    }

    /**
     * Constructs and sends a Message entity or gremlin script to the server without waiting for a response.
     *
     *
     * @param mixed  $msg            (Message|String|NULL) the message to send, NULL means use $this->message
     * @param string $processor      opProcessor to use.
     * @param string $op             Operation to run against opProcessor.
     * @param array  $args           Arguments to overwrite.
     * @param bool   $expectResponse Arguments to overwrite.
     *
     * @return void
     * @throws \Exception
     */
    public function run($msg = NULL, $processor = '', $op = 'eval', $args = [], $expectResponse = TRUE)
    {
        try
        {
            $this->prepareWrite($msg, $processor, $op, $args);
            if($expectResponse)
            {
                $this->socketGetUnpack();
            }
        }
        catch(\Exception $e)
        {
            // on run lets ignore anything coming back from the server
            if(!($e instanceof ServerException))
            {
                throw $e;
            }
        }

        //reset message and remove binds
        $this->message->clear();
    }

    /**
     * Private function that Constructs and sends a Message entity or gremlin script to the server and then waits for
     * response
     *
     * The main use here is to centralise this code for run() and send()
     *
     *
     * @param mixed  $msg       (Message|String|NULL) the message to send, NULL means use $this->message
     * @param string $processor opProcessor to use.
     * @param string $op        Operation to run against opProcessor.
     * @param array  $args      Arguments to overwrite.
     *
     * @return array reply from server.
     */
    private function prepareWrite($msg, $processor, $op, $args)
    {
        if(!($msg instanceof Message) || $msg === NULL)
        {
            //lets make a script message:

            $this->message->gremlin = $msg === NULL ? $this->message->gremlin : $msg;
            $this->message->op = $op === 'eval' ? $this->message->op : $op;
            $this->message->processor = $processor === '' ? $this->message->processor : $processor;

            if($this->_inTransaction === TRUE || $this->message->processor == 'session')
            {
                $this->getSession();
                $this->message->processor = $processor == '' ? 'session' : $processor;
                $this->message->setArguments(['session' => $this->_sessionUuid]);
            }

            if((isset($args['aliases']) && !empty($args['aliases'])) || !empty($this->aliases))
            {
                $args['aliases'] = isset($args['aliases']) ? array_merge($args['aliases'], $this->aliases) : $this->aliases;
            }

            $this->message->setArguments($args);
        }
        else
        {
            $this->message = $msg;
        }
        $this->writeSocket();
    }

    /**
     * Constructs and sends a Message entity or gremlin script to the server and then waits for response
     *
     *
     * @param mixed  $msg       (Message|String|NULL) the message to send, NULL means use $this->message
     * @param string $processor opProcessor to use.
     * @param string $op        Operation to run against opProcessor.
     * @param array  $args      Arguments to overwrite.
     *
     * @return array reply from server.
     * @throws ServerException
     */
    public function send($msg = NULL, $processor = '', $op = 'eval', $args = [])
    {
        try
        {
            $workload = new Workload(function($db, $msg, $processor, $op, $args) {
                $db->prepareWrite($msg, $processor, $op, $args);

                //lets get the response
                return $db->socketGetUnpack();
            }, [$this, $msg, $processor, $op, $args]);

            $response = $workload->linearRetry($this->retryAttempts);

            //reset message and remove binds
            $this->message->clear();

            return $response;
        }
        catch(\Exception $e)
        {
            if(!($e instanceof ServerException))
            {
                $this->error($e->getMessage(), $e->getCode(), TRUE);
            }
            throw $e;
        }
    }

    /**
     * Close connection to server
     * This closes the current session on the server then closes the socket
     *
     * @return bool TRUE on success
     */
    public function close()
    {
        if(is_resource($this->_socket))
        {
            if($this->_inTransaction === TRUE)
            {
                //do not commit changes changes;
                $this->transactionStop(FALSE);
            }

            $this->closeSession();

            $write = @fwrite($this->_socket, $this->webSocketPack("", 'close'));

            if($write === FALSE)
            {
                $this->error('Could not write to socket', 500, TRUE);
            }
            @stream_socket_shutdown($this->_socket, STREAM_SHUT_RDWR); //ignore error
            $this->_socket = NULL;

            return TRUE;
        }

        return FALSE;
    }

    /**
     * Closes an open session if it exists
     * You can use this to close open sessions on the server end. This allows to free up threads on the server end.
     *
     * @return void
     */
    public function closeSession()
    {
        if($this->isSessionOpen())
        {
            $msg = new Message();
            $msg->op = "close";
            $msg->processor = "session";
            $msg->setArguments(['session' => $this->getSession()]);
            $msg->registerSerializer(new Json());
            $this->run($msg, NULL, NULL, NULL, FALSE); // Tell run not to expect a return
            $this->_sessionUuid = NULL;
        }
    }

    /**
     * Start a transaction.
     * Transaction start only makes sens if committing is set to manual on the server.
     * Manual is not the default setting so we will assume a session UUID must exists
     *
     * @return bool TRUE on success FALSE on failure
     */
    public function transactionStart()
    {
        if(!isset($this->graph) || (isset($this->graph) && $this->graph == ''))
        {
            $this->error("A graph object needs to be specified", 500, TRUE);
        }

        if($this->_inTransaction)
        {
            $this->message->gremlin = $this->graph . '.tx().rollback()';
            $this->send();
            $this->_inTransaction = FALSE;
            $this->error(__METHOD__ . ': already in transaction, rolling changes back.', 500, TRUE);
        }

        //if we aren't in transaction we need to start a session
        $this->getSession();
        $this->message->setArguments(['session' => $this->_sessionUuid]);
        $this->message->processor = 'session';
        $this->message->gremlin = $this->graph . '.tx().open()';
        $this->send();
        $this->_inTransaction = TRUE;

        return TRUE;
    }

    /**
     * Run a callback in a transaction.
     * The advantage of this is that it allows for fail-retry strategies
     *
     * @param callable $callback the code to execute within the scope of this transaction
     * @param array    $params   The params to pass to the callback
     *
     * @return mixed the return value of the provided callable
     */
    public function transaction(callable $callback, $params = [])
    {
        //create a callback from the callback to introduce transaction handling
        $workload = new Workload(function($db, $callback, $params) {
            try
            {
                $db->transactionStart();
                $result = call_user_func_array($callback, $params);

                if($db->_inTransaction)
                {
                    $db->transactionStop(TRUE);
                }

                return $result;
            }
            catch(\Exception $e)
            {
                /**
                 * We need to catch the exception again before the workload catches it
                 * this allows us to terminate the transaction properly before each retry attempt
                 */
                if($db->_inTransaction)
                {
                    $db->transactionStop(FALSE);
                }
                throw $e;
            }
        },
            [$this, $callback, $params]
        );

        $result = $workload->linearRetry($this->retryAttempts);

        return $result;
    }

    /**
     * End a transaction
     *
     * @param bool $success should the transaction commit or revert changes
     *
     * @return bool TRUE on success FALSE on failure.
     */
    public function transactionStop($success = TRUE)
    {
        if(!$this->_inTransaction || !isset($this->_sessionUuid))
        {
            $this->error(__METHOD__ . ' : No ongoing transaction/session.', 500, TRUE);
        }
        //send message to stop transaction
        if($success)
        {
            $this->message->gremlin = $this->graph . '.tx().commit()';
        }
        else
        {
            $this->message->gremlin = $this->graph . '.tx().rollback()';
        }

        $this->send();
        $this->_inTransaction = FALSE;

        return TRUE;
    }

    /**
     * Checks if the socket is currently open
     *
     * @return bool TRUE if it is open FALSE if not
     */
    public function isConnected()
    {
        return $this->_socket !== NULL;
    }

    /**
     * Make sure the session is closed on destruction of the object
     *
     * @return void
     */
    public function __destruct()
    {
        $this->close();
    }

    /**
     * Constructs the Websocket packet frame
     *
     * @param string $payload string or binary, the message to insert into the packet.
     * @param string $type    the type of frame you send (usualy text or string) ie: opcode
     * @param bool   $masked  whether to mask the packet or not.
     *
     * @return string Binary message to pump into the socket
     */
    private function webSocketPack($payload, $type = 'binary', $masked = TRUE)
    {
        $frameHead = [];
        $payloadLength = strlen($payload);

        switch($type)
        {
            case 'text':
                // first byte indicates FIN, Text-Frame (10000001):
                $frameHead[0] = 129;
                break;

            case 'binary':
                // first byte indicates FIN, Binary-Frame (10000010):
                $frameHead[0] = 130;
                break;

            case 'close':
                // first byte indicates FIN, Close Frame(10001000):
                $frameHead[0] = 136;
                break;

            case 'ping':
                // first byte indicates FIN, Ping frame (10001001):
                $frameHead[0] = 137;
                break;

            case 'pong':
                // first byte indicates FIN, Pong frame (10001010):
                $frameHead[0] = 138;
                break;
        }

        // set mask and payload length (using 1, 3 or 9 bytes)
        if($payloadLength > 65535)
        {
            $payloadLengthBin = str_split(sprintf('%064b', $payloadLength), 8);
            $frameHead[1] = ($masked === TRUE) ? 255 : 127;
            for($i = 0; $i < 8; $i++)
            {
                $frameHead[$i + 2] = bindec($payloadLengthBin[$i]);
            }
            // most significant bit MUST be 0 (close connection if frame too big)
            if($frameHead[2] > 127)
            {
                $this->close();

                return FALSE;
            }
        }
        elseif($payloadLength > 125)
        {
            $payloadLengthBin = str_split(sprintf('%016b', $payloadLength), 8);
            $frameHead[1] = ($masked === TRUE) ? 254 : 126;
            $frameHead[2] = bindec($payloadLengthBin[0]);
            $frameHead[3] = bindec($payloadLengthBin[1]);
        }
        else
        {
            $frameHead[1] = ($masked === TRUE) ? $payloadLength + 128 : $payloadLength;
        }

        // convert frame-head to string:
        foreach(array_keys($frameHead) as $i)
        {
            $frameHead[$i] = chr($frameHead[$i]);
        }
        if($masked === TRUE)
        {
            // generate a random mask:
            $mask = [];
            for($i = 0; $i < 4; $i++)
            {
                $mask[$i] = chr(rand(0, 255));
            }

            $frameHead = array_merge($frameHead, $mask);
        }
        $frame = implode('', $frameHead);

        // append payload to frame:
        for($i = 0; $i < $payloadLength; $i++)
        {
            $frame .= ($masked === TRUE) ? $payload[$i] ^ $mask[$i % 4] : $payload[$i];
        }

        return $frame;
    }

    /**
     * Unmask data. Usualy the payload
     *
     * @param string $mask binary key to use to unmask
     * @param string $data data that needs unmasking
     *
     * @return string unmasked data
     */
    private function unmask($mask, $data)
    {
        $unmaskedPayload = '';
        for($i = 0; $i < strlen($data); $i++)
        {
            if(isset($data[$i]))
            {
                $unmaskedPayload .= $data[$i] ^ $mask[$i % 4];
            }
        }

        return $unmaskedPayload;
    }

    /**
     * Custom error throwing method.
     * We use this to run rollbacks when errors occur
     *
     * @param string $description Description of the error
     * @param int    $code        The error code
     * @param bool   $internal    true for internal, false for server error
     *
     * @return void
     * @throws InternalException
     * @throws ServerException
     */
    private function error($description, $code, $internal = FALSE)
    {
        //Errors will rollback once the connection is destroyed. No need to rollback here.
        if($internal)
        {
            throw new InternalException($description, $code);
        }
        else
        {
            throw new ServerException($description, $code);
        }
    }

    /**
     * Return whether or not this cnnection object is in transaction mode
     *
     * @return bool TRUE if in transaction, FALSE otherwise
     */
    public function inTransaction()
    {
        return $this->_inTransaction;
    }

    /**
     * Retrieve the current session UUID
     *
     * @return string current UUID
     */
    public function getSession()
    {
        if(!$this->isSessionOpen())
        {
            $this->_sessionUuid = Helper::createUuid();
        }

        return $this->_sessionUuid;
    }

    /**
     * Checks if the session is currently open
     *
     * @return bool TRUE if it's open is FALSE if not.
     */
    public function isSessionOpen()
    {
        if(!isset($this->_sessionUuid))
        {
            return FALSE;
        }

        return TRUE;
    }

    /**
     * Builds an authentication message when challenged by the server
     * Once you respond and authenticate you will receive the response for the request you made prior to the challenge
     *
     * @return array The server response.
     */
    protected function authenticate()
    {
        $msg = new Message();
        $msg->op = "authentication";

        $args = [
            'sasl'          => base64_encode(utf8_encode("\x00" . trim($this->username) . "\x00" . trim($this->password))),
            'saslMechanism' => $this->saslMechanism,
        ];

        if($this->isSessionOpen())
        {
            $msg->processor = "session";
            $args["session"] = $this->getSession();
        }
        else
        {
            $msg->processor = "";
        }

        $msg->setArguments($args);

        //['session' => $this->_sessionUuid]
        $msg->registerSerializer($this->message->getSerializer());

        return $this->send($msg);
    }

    /**
     * Custom stream get content that will wait for the content to be ready before streaming it
     * This corrects an issue with hhvm handling streams in non-blocking mode.
     *
     * @param int $limit  the length of the data we want to get from the stream
     * @param int $offset the offset to start reading the stream from
     *
     * @return string the data streamed from the socket
     */
    private function streamGetContent($limit, $offset = -1)
    {
        $buffer = NULL;
        $bufferedSize = 0;
        do
        {
            $buffer .= stream_get_contents($this->_socket, $limit - $bufferedSize, $offset);
            $bufferedSize = strlen($buffer);
        }
        while($bufferedSize < $limit);

        return $buffer;
    }
}
<?php

namespace Brightzone\GremlinDriver;

/**
 * Gremlin-server PHP Driver client Workload class
 *
 * Workload class will store some executable code and run it against the database.
 * It also allows for fail-retry strategies in the event of concurrency errors
 *
 * ~~~
 * $workload = new Workload(function(&$db, $msg, $processor, $op, $args){
 *          return $db->send($msg, $processor, $op, $args);
 *      },
 *      [&$this, $msg, $processor, $op, $args]
 * );
 *
 * $response = $workload->linearRetry($this->retryAttempts);
 * ~~~
 *
 * @category DB
 * @package  GremlinDriver
 * @author   Dylan Millikin <dylan.millikin@brightzone.fr>
 * @license  http://www.apache.org/licenses/LICENSE-2.0 apache2
 * @link     https://github.com/tinkerpop/rexster/wiki
 */
class Workload
{
    /**
     * @var callable the callback code to be executed
     * Bellow is a common example:
     * ~~~
     * function(&db, $msg, $processor, $op, $processor, $args){}
     * ~~~
     * It must return something other than void. (the desired result)
     */
    protected $callback;

    /**
     * @var array paramteres required for the workload
     *
     * Ideas of params would be :
     * - Connection &db        connection object to operate on
     * - Message    $msg       possible message to operate on (optional defaults to NULL)
     * - String     $processor processor to use (optional defaults to "")
     * - String     $op        operation to perform (optional defaults to "eval")
     * - array      $args      arguments for the message. (optional defaults to [])
     */
    protected $params;

    /**
     * Override Constructor
     *
     * @param callable $callback the portion of code to execute within the scope of this workload
     * @param array    $params   the paramters to pass to the callback.
     *
     * @return void
     */
    public function __construct(callable $callback, $params)
    {
        $this->callback = $callback;
        $this->params = $params;
    }

    /**
     * Linear retry strategy.
     *
     * @param int $attempts the number of times to retry
     *
     * @return mixed the result of the executable code
     * @throws ServerException
     */
    public function linearRetry($attempts)
    {
        $result = NULL;
        while($attempts >= 1)
        {
            try
            {
                $result = call_user_func_array($this->callback, $this->params);
                break;
            }
            catch(\Exception $e)
            {
                if($e instanceof ServerException && $e->getCode() == 597 && $attempts > 1)
                {
                    usleep(200);
                    $attempts--;
                }
                else
                {
                    throw $e;
                }
            }
        }

        return $result;
    }
}
<?php

namespace Brightzone\GremlinDriver;

use \Exception;

/**
 * Gremlin-server PHP Driver client Exception class
 *
 * @category DB
 * @package  GremlinDriver
 * @author   Dylan Millikin <dylan.millikin@brightzone.fr>
 * @license  http://www.apache.org/licenses/LICENSE-2.0 apache2
 * @link     http://tinkerpop.incubator.apache.org/docs/3.0.1-incubating/#_developing_a_driver
 */
class ServerException extends Exception
{
    const NO_CONTENT = 204;
    const UNAUTHORIZED = 401;
    const MALFORMED_REQUEST = 498;
    const INVALID_REQUEST_ARGUMENTS = 499;
    const SERVER_ERROR = 500;
    const SCRIPT_EVALUATION_ERROR = 597;
    const SERVER_TIMEOUT = 598;
    const SERVER_SERIALIZATION_ERROR = 599;

    /**
     * Overriding construct
     *
     * @param string    $message  The error message to throw
     * @param int       $code     The error code to throw
     * @param Exception $previous The previous exception if there is one that triggered this error
     *
     * @return void
     */
    public function __construct($message, $code = 0, Exception $previous = NULL)
    {
        $message = $this->getMessagePerCode($code) . ' : ' . $message;
        parent::__construct($message, $code, $previous);
    }

    /**
     * Lets add more information to the error message thrown by using the Error Code
     *
     * @param int $code The error code we want to generate a message for.
     *
     * @return string The error message that corresponds to the error code
     */
    private function getMessagePerCode($code)
    {
        $messages = [
            self::NO_CONTENT => "The server processed the request but there is no result to return (e.g. an {@link Iterator} with no elements).",
            self::UNAUTHORIZED => "The request attempted to access resources that the requesting user did not have access to.",
            self::MALFORMED_REQUEST => "The request message was not properly formatted which means it could not be parsed at all or the 'op' code was not recognized such that Gremlin Server could properly route it for processing. Check the message format and retry the request.",
            self::INVALID_REQUEST_ARGUMENTS => "The request message was parseable, but the arguments supplied in the message were in conflict or incomplete. Check the message format and retry the request.",
            self::SERVER_ERROR => "A general server error occurred that prevented the request from being processed.",
            self::SCRIPT_EVALUATION_ERROR => "The script submitted for processing evaluated in the ScriptEngine with errors and could not be processed. Check the script submitted for syntax errors or other problems and then resubmit.",
            self::SERVER_TIMEOUT => "The server exceeded one of the timeout settings for the request and could therefore only partially responded or did not respond at all.",
            self::SERVER_SERIALIZATION_ERROR => "The server was not capable of serializing an object that was returned from the script supplied on the request. Either transform the object into something Gremlin Server can process within the script or install mapper serialization classes to Gremlin Server.",
        ];

        return isset($messages[$code]) ? $messages[$code] : '';
    }
}
<?php

namespace Brightzone\GremlinDriver;

use JsonSerializable;


/**
 * Class RequestMessage
 * The frame object that we use to make requests to the server.
 * This class allows us to specify different serializing for this class.
 * It's a glorified map.
 *
 * @author  Dylan Millikin <dylan.millikin@brightzone.com>
 * @package Brightzone\GremlinDriver
 */
class RequestMessage implements JsonSerializable
{
    /**
     * @var array the information contained in the message
     */
    private $data;

    /**
     * Overriding construct to populate data
     *
     * @param array $data the data contained in this message
     */
    public function __construct($data)
    {
        $this->setData($data);
    }

    /**
     * Getter for data
     *
     * @return array the data contained in the RequestMessage
     */
    public function getData()
    {
        return $this->data;
    }

    /**
     * Setter for data
     *
     * @return void
     */
    public function setData($data)
    {
        $this->data = $data;
    }

    /**
     * The json serialize method
     * @return mixed
     */
    public function jsonSerialize()
    {
        return $this->getData();
    }
}<?php

namespace Brightzone\GremlinDriver\Serializers;

/**
 * Gremlin-server PHP Interface for Serializer classes
 * Builds and parses message body for Messages class
 *
 * @category DB
 * @package  Serializers
 * @author   Dylan Millikin <dylan.millikin@brightzone.fr>
 * @license  http://www.apache.org/licenses/LICENSE-2.0 apache2
 */
interface SerializerInterface
{
    /**
     * Serializes the data
     *
     * @param array &$data data to be serialized
     *
     * @return int length of generated string
     */
    public function serialize(&$data);

    /**
     * Unserializes the data
     *
     * @param array $data data to be unserialized
     *
     * @return array unserialized message
     */
    public function unserialize($data);

    /**
     * Get this serializer's Name
     *
     * @return string name of serializer
     */
    public function getName();

    /**
     * Get this serializer's value
     * This will be deprecated with TP3 Gremlin-server
     *
     * @return string name of serializer
     */
    public function getMimeType();
}
<?php

namespace Brightzone\GremlinDriver\Serializers;

/**
 * Gremlin-server PHP JSON Serializer class
 * Builds and parses message body for Messages class
 *
 * @category DB
 * @package  Serializers
 * @author   Dylan Millikin <dylan.millikin@brightzone.fr>
 * @license  http://www.apache.org/licenses/LICENSE-2.0 apache2
 */
class Json implements SerializerInterface
{
    /**
     * @var string the name of the serializer
     */
    public static $name = 'JSON';

    /**
     * @var int Value of this serializer. Will be deprecated in TP3
     */
    public static $mimeType = 'application/json';

    /**
     * Serializes the data
     *
     * @param array &$data data to be serialized
     *
     * @return int length of generated string
     */
    public function serialize(&$data)
    {
        $data = json_encode($data, JSON_UNESCAPED_UNICODE);

        return mb_strlen($data, 'ISO-8859-1');
    }

    /**
     * Unserializes the data
     *
     * @param array $data data to be unserialized
     *
     * @return array unserialized message
     */
    public function unserialize($data)
    {
        $mssg = json_decode($data, TRUE, JSON_UNESCAPED_UNICODE);

        return $mssg;
    }

    /**
     * Get this serializer's Name
     *
     * @return string name of serializer
     */
    public function getName()
    {
        return self::$name;
    }

    /**
     * Get this serializer's value
     * This will be deprecated with TP3 Gremlin-server
     *
     * @return string name of serializer
     */
    public function getMimeType()
    {
        return self::$mimeType;
    }
}
<?php

namespace Brightzone\GremlinDriver\Serializers;

use Brightzone\GremlinDriver\InternalException;
use Brightzone\GremlinDriver\RequestMessage;

/**
 * Gremlin-server PHP JSON Serializer class
 * Builds and parses message body for Messages class
 *
 * @category DB
 * @package  Serializers
 * @author   Dylan Millikin <dylan.millikin@brightzone.fr>
 * @license  http://www.apache.org/licenses/LICENSE-2.0 apache2
 */
class Gson3 implements SerializerInterface
{
    /**
     * @var string the name of the serializer
     */
    public static $name = 'GRAPHSON3';

    /**
     * @var int Value of this serializer. Will be deprecated in TP3
     */
    public static $mimeType = 'application/json';

    /**
     * @var array The native supported types that the serializer can convert to graphson
     */
    protected static $supportedFromTypes = [
        "string",
        "boolean",
        "double",
        "integer",
        "array",
        "object",
        "NULL",
    ];

    /**
     * @var array The GraphSON supported types that the serializer can deconvert from
     */
    protected static $supportedGSTypes = [
        "g:Int32",
        "g:Int64",
        "g:Date",
        "g:Timestamp",
        "g:UUID",
        "g:Float",
        "g:Double",
        "g:List",
        "g:Map",
        "g:Set",
        "g:Class",
        "g:Path",
        "g:Tree",
        "g:Vertex",
        "g:VertexProperty",
        "tinker:graph",
        "g:Edge",
        "g:Property",
        "g:T",
    ];

    /**
     * Serializes the data
     *
     * @param array &$data data to be serialized
     *
     * @return int length of generated string
     * @throws InternalException
     */
    public function serialize(&$data)
    {
        //convert the array into the correct format
        $data = $this->convert($data);
        $jsonEncoder = new Json;

        return $jsonEncoder->serialize($data);
    }

    /**
     * Unserializes the data
     *
     * @param mixed $data data to be unserialized
     *
     * @return array unserialized message
     * @throws InternalException
     */
    public function unserialize($data)
    {
        $jsonEncoder = new Json;
        $data = $jsonEncoder->unserialize($data);

        return $this->deconvert($data);
    }

    /**
     * Get this serializer's Name
     *
     * @return string name of serializer
     */
    public function getName()
    {
        return self::$name;
    }

    /**
     * Get this serializer's value
     * This will be deprecated with TP3 Gremlin-server
     *
     * @return string name of serializer
     */
    public function getMimeType()
    {
        return self::$mimeType;
    }

    /**
     * Transforms a variable into it's graphson 3.0 counterpart structure
     *
     * @param mixed $item the variable to convert to the graphson 3 structure
     *
     * @return array|string The same element in it's new form.
     * @throws InternalException
     */
    public function convert($item)
    {
        $converted = [];
        $type = gettype($item);
        if(in_array($type, self::$supportedFromTypes))
        {
            //use the type name to run the proper method
            $method = "convert" . ucfirst($type);
            $converted = $this->$method($item);
        }
        else
        {
            throw new InternalException("Item type '{$type}' is not currently supported by the serializer (" . __CLASS__ . ")", 500);
        }

        return $converted;
    }

    /**
     * Convert a string into it's graphson 3.0 form
     *
     * @param string $string The string to convert
     *
     * @return string converted string (same as original currently)
     */
    public function convertString($string)
    {
        return $string;
    }

    /**
     * Convert an integer into it's graphson 3.0 form
     *
     * @param int $int The integer to convert
     *
     * @return array converted integer
     */
    public function convertInteger($int)
    {
        $intSize = [
            4 => "g:Int32",
            8 => "g:Int64",
        ];

        return [
            "@type"  => $intSize[PHP_INT_SIZE],
            "@value" => $int,
        ];
    }

    /**
     * Convert a NULL into it's graphson 3.0 form
     *
     * @param null $null The NULL to convert
     *
     * @return null converted NULL
     */
    public function convertNULL($null)
    {
        return $null;
    }

    /**
     * Convert an float/double into it's graphson 3.0 form
     *
     * @param double $double The float/double to convert
     *
     * @return array converted double
     */
    public function convertDouble($double)
    {
        return [
            "@type"  => "g:Double",
            "@value" => $double,
        ];
    }

    /**
     * Convert a boolean into it's graphson 3.0 form
     *
     * @param bool $bool The boolean to convert
     *
     * @return bool converted boolean (same as original)
     */
    public function convertBoolean($bool)
    {
        return $bool;
    }

    /**
     * Convert an array into it's corresponding graphson 3.0 form(List or Map)
     * This differentiates between Maps and Lists (we do not convert to Set)
     *
     * @param array $array The array to convert
     *
     * @return array converted array
     * @throws InternalException
     */
    public function convertArray($array)
    {
        $isList = (empty($array) || array_keys($array) === range(0, count($array) - 1));

        return ($isList ? $this->convertList($array) : $this->convertMap($array));
    }

    /**
     * Convert an array into a graphson 3.0 List
     *
     * @param array $array The array to convert
     *
     * @return array converted to GS3 List
     * @throws InternalException
     */
    public function convertList($array)
    {
        $converted = [
            "@type"  => "g:List",
            "@value" => [],
        ];

        foreach($array as $key => $value)
        {
            $converted["@value"][] = $this->convert($value);
        }

        return $converted;
    }

    /**
     * Convert an array into a graphson 3.0 Map
     *
     * @param array $array The array to convert
     *
     * @return array converted to GS3 Map
     * @throws InternalException
     */
    public function convertMap($array)
    {
        $converted = [
            "@type"  => "g:Map",
            "@value" => [],
        ];
        foreach($array as $key => $value)
        {
            $converted["@value"][] = $this->convert($key);
            $converted["@value"][] = $this->convert($value);
        }

        return $converted;
    }

    /**
     * Convert an object into a graphson 3.0 Map
     * Currently unsuported
     *
     * @param object $object The array to convert
     *
     * @return array the converted object
     * @throws InternalException
     */
    public function convertObject($object)
    {
        if($object instanceof RequestMessage)
        {
            $converted = [];
            foreach($object->jsonSerialize() as $key => $value)
            {
                $converted[$key] = $this->convert($value);
            }

            return $converted;
        }
        else
        {
            throw new InternalException("Objects other than RequestMessage aren't currently supported by the " . self::$name . " serializer (" . __CLASS__ . "). Error produced by: " . get_class($object), 500);
        }
    }

    /**
     * Transforms a graphson 3.0 "variable" into it's native structure
     *
     * @param mixed $item the variable to convert to php native
     *
     * @return mixed The same element in it's new form.
     * @throws InternalException
     */
    public function deconvert($item)
    {
        $deconverted = [];

        if(is_array($item) && isset($item["@type"]) && in_array($item["@type"], self::$supportedGSTypes))
        {
            //type exists in array and is found in our supported types
            $method = "deconvert" . ucfirst(str_replace(["g:", "gx:", ":"], "", $item["@type"]));
            $deconverted = $this->$method($item["@value"]);
        }
        elseif(is_array($item) && isset($item["@type"]) && !in_array($item["@type"], self::$supportedGSTypes))
        {
            //type exists in array but is not currently supported
            throw new InternalException("Item type '{$item["@type"]}' is not currently supported by the serializer (" . __CLASS__ . ")", 500);
        }
        elseif(is_array($item) && !isset($item["@type"]))
        {
            //regular array, just pass it along
            foreach($item as $key => $value)
            {
                $deconverted[$key] = $this->deconvert($value);
            }
        }
        else
        {
            //regular variable, just pass it along.
            $deconverted = $item;
        }

        return $deconverted;
    }

    /**
     * Deconvert an Int32 into it's native form
     *
     * @param int $int The int to convert
     *
     * @return int deconverted Int32
     */
    public function deconvertInt32($int)
    {
        return $int;
    }

    /**
     * Deconvert an Int64 into it's native form
     *
     * @param int $int The int to convert
     *
     * @return int deconverted Int64
     * @throws InternalException
     */
    public function deconvertInt64($int)
    {
        if(PHP_INT_SIZE == 4)
        {
            throw new InternalException("You are running a 32bit PHP and cannot convert the 64bit Int provided in the GraphSON 3.0");
        }

        return $int;
    }

    /**
     * Deconvert a Double into it's native form
     *
     * @param double $double The double to convert
     *
     * @return double deconverted Double
     */
    public function deconvertDouble($double)
    {
        return $double;
    }

    /**
     * Deconvert a Float into it's native form
     *
     * @param double $float The float to convert
     *
     * @return double deconverted Float
     */
    public function deconvertFloat($float)
    {
        return $this->deconvertDouble($float);
    }

    /**
     * Deconvert a Timestamp into it's native form
     *
     * @param int $timestamp The Timestamp to convert
     *
     * @return int deconverted Timestamp
     */
    public function deconvertTimestamp($timestamp)
    {
        return $this->deconvertInt32($timestamp);
    }

    /**
     * Deconvert a Date into it's native form
     *
     * @param int $date The date to convert
     *
     * @return int deconverted Date
     */
    public function deconvertDate($date)
    {
        return $this->deconvertInt32($date);
    }

    /**
     * Deconvert a UUID into it's native form
     *
     * @param string $uuid The UUID to convert
     *
     * @return string deconverted UUID
     */
    public function deconvertUUID($uuid)
    {
        return $uuid;
    }

    /**
     * Deconvert a List into it's native form (Array)
     *
     * @param array $list The List to convert
     *
     * @return array deconverted List
     * @throws InternalException
     */
    public function deconvertList($list)
    {
        $deconverted = [];
        foreach($list as $value)
        {
            $deconverted[] = $this->deconvert($value);
        }

        return $deconverted;
    }

    /**
     * Deconvert a Set into it's native form (Array)
     *
     * @param array $set The Set to convert
     *
     * @return array deconverted Set
     * @throws InternalException
     */
    public function deconvertSet($set)
    {
        return $this->deconvertList($set);
    }

    /**
     * Deconvert a Map into it's native form (Array)
     *
     * @param array $map The Map to convert
     *
     * @return array deconverted Map
     * @throws InternalException
     */
    public function deconvertMap($map)
    {
        $deconverted = [];

        if(count($map) % 2 != 0)
        {
            throw new InternalException("Failed to deconvert Map item from graphson 3.0. Odd number of elements found (should be even)", 500);
        }

        while(0 < count($map))
        {
            $key = $this->deconvert(array_shift($map));
            $value = $this->deconvert(array_shift($map));

            if(!is_numeric($key) && !is_string($key))
            {
                throw new InternalException("Failed to deconvert Map item from graphson 3.0. A key was of type [" . gettype($key) . "], only Integers and Strings are supported", 500);
            }
            $deconverted[$key] = $value;
        }

        return $deconverted;
    }

    /**
     * Deconvert a Property into it's native form
     *
     * @param array $prop The Property to convert
     *
     * @return mixed deconverted Property
     * @throws InternalException
     */
    public function deconvertProperty($prop)
    {
        return $this->deconvert($prop);
    }

    /**
     * Deconvert a VertexProperty into it's native form
     *
     * @param array $vertexProp The VertexProperty to convert
     *
     * @return mixed deconverted VertexProperty
     * @throws InternalException
     */
    public function deconvertVertexProperty($vertexProp)
    {
        return $this->deconvert($vertexProp);
    }

    /**
     * Deconvert a Path into it's native form
     *
     * @param array $path The Path to convert
     *
     * @return array deconverted Path
     * @throws InternalException
     */
    public function deconvertPath($path)
    {
        return $this->deconvert($path);
    }

    /**
     * Deconvert a TinkerGraph into it's native form
     *
     * @param array $tinkergraph The TinkerGraph to convert
     *
     * @return array deconverted TinkerGraph
     * @throws InternalException
     */
    public function deconvertTinkergraph($tinkergraph)
    {
        return $this->deconvert($tinkergraph);
    }

    /**
     * Deconvert a Tree into it's native form
     *
     * @param array $tree The Tree to convert
     *
     * @return array deconverted Tree
     * @throws InternalException
     */
    public function deconvertTree($tree)
    {
        $deconvert = [];
        $result = $this->deconvert($tree);
        foreach($result as $value)
        {
            if(isset($value["key"]) && isset($value["key"]["id"]))
            {
                $deconvert[$value["key"]["id"]] = $value;
            }
            else
                $deconvert[] = $value;
        }

        return $deconvert;
    }

    /**
     * Deconvert a Class into it's native form
     *
     * @param string $classname The class to convert
     *
     * @return void
     * @throws InternalException
     */
    public function deconvertClass($classname)
    {
        throw new InternalException("The GraphSON 3.0 contained a Class element ({$classname}). Classes are not currently supported");
    }

    /**
     * Deconvert a Vertex into it's native form
     *
     * @param array $vertex The Vertex to convert
     *
     * @return array deconverted Vertex
     * @throws InternalException
     */
    public function deconvertVertex($vertex)
    {
        $vertex["type"] = "vertex";

        return $this->deconvert($vertex);
    }

    /**
     * Deconvert a Edge into it's native form
     *
     * @param array $edge The Edge to convert
     *
     * @return array deconverted Edge
     * @throws InternalException
     */
    public function deconvertEdge($edge)
    {
        $edge["type"] = "edge";

        return $this->deconvert($edge);
    }

    /**
     * Deconvert a Token (T) into it's string form
     *
     * @param string $t the token to deconvert
     *
     * @return string either "id" or "label"
     */
    public function deconvertT($t)
    {
        return $t;
    }
}
<?php

namespace Brightzone\GremlinDriver;

/**
 * Gremlin-server PHP client Helper class
 *
 * @category DB
 * @package  GremlinDriver
 * @author   Dylan Millikin <dylan.millikin@brightzone.fr>
 * @license  http://www.apache.org/licenses/LICENSE-2.0 apache2
 * @link     https://github.com/tinkerpop/rexster/wiki
 */
class Helper
{
    /**
     * return a random 16 byte UUID
     *
     * @return string 16 byte random UUID
     */
    public static function createUuid()
    {
        return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
            // 32 bits for "time_low"
            mt_rand(0, 0xffff), mt_rand(0, 0xffff),

            // 16 bits for "time_mid"
            mt_rand(0, 0xffff),

            // 16 bits for "time_hi_and_version",
            // four most significant bits holds version number 4
            mt_rand(0, 0x0fff) | 0x4000,

            // 16 bits, 8 bits for "clk_seq_hi_res",
            // 8 bits for "clk_seq_low",
            // two most significant bits holds zero and one for variant DCE1.1
            mt_rand(0, 0x3fff) | 0x8000,

            // 48 bits for "node"
            mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff)
        );
    }

    /**
     * Convert binary 16 byte UUID to it's canonical representation
     *
     * @param string $binary 16 byte binary UUID
     *
     * @return string canonical representation of UUID
     */
    public static function binToUuid($binary)
    {
        $string = implode('', unpack("H*", $binary));
        $string = preg_replace("/([0-9a-f]{8})([0-9a-f]{4})([0-9a-f]{4})([0-9a-f]{4})([0-9a-f]{12})/", "$1-$2-$3-$4-$5", $string);
        return $string;
    }


    /**
     * Convert canonical representation of UUID to it's binary 16 byte equivalent
     *
     * @param string $string canonical representation of UUID
     *
     * @return string 16 byte binary UUID
     */
    public static function uuidToBin($string)
    {
        return pack("H*", str_replace('-', '', trim($string)));
    }


    /**
     * Convert int as decimal into 32Bit binary 'equivalent'
     *
     * Example:
     * input of $int = 44
     * > dec = 44
     * > binary = 101100
     * > hex = 2c
     * returned value
     * > binary = 000000000000000000101100
     * > hex = 0000 002c
     *
     * @param int $int number to be converted
     *
     * @return string binary data
     */
    public static function convertIntTo32Bit($int)
    {
        $result = array();
        for($i = 0; $i < 4; $i++)
        {
            array_unshift($result, pack('C*', $int & 0xff));
            $int >>= 8;

        }
        return implode('', $result);
    }

    /**
     * Convert 32Bit binary into int
     *
     * Example:
     * input of $bin = hex 0000 002c
     * returned value = 44
     *
     * @param binary $bin binary data to be converted
     *
     * @return string number
     */
    public static function convertIntFrom32Bit($bin)
    {
        return hexdec(bin2hex($bin));
    }

    /**
     * Creates a random String based on given params
     *
     * @param int  $length     length of the string to generate
     * @param bool $addSpaces  whether or not to include spaces in string
     * @param bool $addNumbers whether or not to include numbers in string
     *
     * @return string random generated string
     */
    public static function generateRandomString($length = 10, $addSpaces = TRUE, $addNumbers = TRUE)
    {
        $characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"§$%&/()=[]{}';
        $useChars = array();
        // select some random chars:
        for($i = 0; $i < $length; $i++)
        {
            $useChars[] = $characters[mt_rand(0, strlen($characters) - 1)];
        }
        // add spaces and numbers:
        if($addSpaces === TRUE)
        {
            array_push($useChars, ' ', ' ', ' ', ' ', ' ', ' ');
        }
        if($addNumbers === TRUE)
        {
            array_push($useChars, rand(0, 9), rand(0, 9), rand(0, 9));
        }
        shuffle($useChars);
        $randomString = trim(implode('', $useChars));
        $randomString = substr($randomString, 0, $length);
        return $randomString;
    }
}
<?php

namespace Brightzone\GremlinDriver;

use Brightzone\GremlinDriver\Serializers\SerializerInterface;

/**
 * Gremlin-server PHP Driver client Messages class
 * Builds and parses binary messages for communication with Gremlin-server
 * Use example:
 *
 * ~~~
 * $message = new Message;
 * $message->gremlin = 'g.V';
 * $message->op = 'eval';
 * $message->processor = '';
 * $message->setArguments(['language'=>'gremlin-groovy']);
 * $message->registerSerializer('\Brightzone\GremlinDriver\Serializers\Json');
 * // etc ...
 * $db = new Connection;
 * $db->open();
 * $db->send($message);
 * ~~~
 *
 * @category DB
 * @package  GremlinDriver
 * @author   Dylan Millikin <dylan.millikin@brightzone.fr>
 * @license  http://www.apache.org/licenses/LICENSE-2.0 apache2
 *
 * @property string $gremlin     The gremlin query for this message
 * @property string $op          The operation that should be performed by this message
 * @property string $processor   The opProcessor to use for this message
 * @property string $requestUuid The UUID for the individual request
 *
 */
class Message
{
    /**
     * @var array basic message configuration
     *  ie: op,processor,requestId, etc..
     */
    public $configuration = [];

    /**
     * @var array args of the message
     */
    public $args = [];

    /**
     * @var array list of serializers loaded for this instance
     */
    private $_serializers = [];

    /**
     * Overriding construct to populate _serializer
     */
    public function __construct()
    {
        //set default values for message
        $this->setDefaults();
    }

    /**
     * Sets default values to this message
     * The values are :
     *  - gremlin   : ''
     *  - op        : 'eval'
     *  - processor : ''
     *
     * @return void
     */
    private function setDefaults()
    {
        $this->gremlin = '';
        $this->op = 'eval';
        $this->processor = '';
    }

    /**
     * magic setter to populate $this->configuration + gremlin arg
     *
     * @param string $name  name of the variable you want to set
     * @param string $value value of the variable you want to set
     *
     * @return void
     */
    public function __set($name, $value)
    {
        if($name == 'gremlin')
        {
            $this->args['gremlin'] = $value;
        }
        else
        {
            $this->configuration[$name] = $value;
        }
    }

    /**
     * magic getter to fetch $this->configuration + gremlin arg
     *
     * @param string $name name of the variable you want to get
     *
     * @return string
     * @throws InternalException
     */
    public function __get($name)
    {
        if($name == 'gremlin' && isset($this->args['gremlin']))
        {
            return $this->args['gremlin'];
        }
        else
        {
            if(isset($this->configuration[$name]))
            {
                return $this->configuration[$name];
            }
        }
        throw new InternalException ("Property {$name} is not defined");
    }

    /**
     * magic isset to return proper setting of $this->configuration + gremlin arg
     *
     * @param string $name name of the variable you want to check
     *
     * @return bool
     */
    public function __isset($name)
    {
        if($name == 'gremlin')
        {
            return isset($this->args['gremlin']);
        }
        else
        {
            return isset($this->configuration[$name]);
        }
    }

    /**
     * Setter method for arguments
     * This will replace existing entries.
     *
     * @param array $array collection of arguments
     *
     * @return void
     */
    public function setArguments($array)
    {
        $this->args = array_merge($this->args, $array);
    }

    /**
     * Create and set request UUID
     *
     * @return string the UUID
     */
    public function createUuid()
    {
        return $this->requestUuid = Helper::createUuid();
    }

    /**
     * Constructs full binary message for use in script execution
     *
     * @return string Returns binary data to be packed and sent to socket
     * @throws InternalException
     */
    public function buildMessage()
    {
        //lets start by packing message
        $this->createUuid();

        //build message array
        $message = new RequestMessage([
            'requestId' => $this->requestUuid,
            'processor' => $this->processor,
            'op'        => $this->op,
            'args'      => $this->args,
        ]);
        //serialize message
        if(!isset($this->_serializers['default']))
        {
            throw new InternalException("No default serializer set", 500);
        }

        $this->_serializers['default']->serialize($message);
        $mimeType = $this->_serializers['default']->getMimeType();

        $finalMessage = pack('C', strlen($mimeType)) . $mimeType . $message;

        return $finalMessage;
    }

    /**
     * Parses full message (including outter envelope)
     *
     * @param string $payload  payload from the server response
     * @param bool   $isBinary whether we should expect binary data (TRUE) or plein text (FALSE)
     *
     * @return array Array containing all results
     */
    public function parse($payload, $isBinary)
    {
        if($isBinary)
        {
            list($mimeLength) = array_values(unpack('C', $payload[0]));
            $mimeType = substr($payload, 1, $mimeLength);
            $serializer = $this->getSerializer($mimeType);
            $payload = substr($payload, $mimeLength + 1, strlen($payload));

            return $serializer->unserialize($payload);
        }

        return $this->_serializers['default']->unserialize($payload);
    }

    /**
     * Get the serializer object depending on a provided mimeType
     *
     * @param string $mimeType the mimeType of the serializer you want to retrieve
     *
     * @return SerializerInterface serializer object or throw error if none exist.
     * @throws InternalException if no serializer is set for the provided mimeType
     */
    public function getSerializer($mimeType = '')
    {
        if($mimeType == '')
        {
            return $this->_serializers['default'];
        }
        foreach($this->_serializers as $serializer)
        {
            if($serializer->getMimeType() == $mimeType)
            {
                return $serializer;
            }
        }

        throw new InternalException("No serializer found for mimeType: [" . $mimeType . "]", 500);
    }

    /**
     * Register a new serializer to this object
     *
     * @param mixed $value   either a serializer object or a string of the class name (with namespace)
     * @param bool  $default whether or not to use this serializer as the default one
     *
     * @return void
     * @throws InternalException
     */
    public function registerSerializer($value, $default = TRUE)
    {
        if(is_string($value))
        {
            if(class_exists($value))
            {
                $value = new $value();
            }
            else
            {
                throw new InternalException("Class [" . $value . "] doesn't exist", 500);
            }
        }

        if(in_array('Brightzone\GremlinDriver\Serializers\SerializerInterface', class_implements($value)))
        {
            if($default)
            {
                $this->_serializers['default'] = $value;
            }
            $this->_serializers[$value->getMimeType()] = $value;
        }
        else
        {
            throw new InternalException("Serializer could not be set to [" . get_class($value) . "]. Check that the class implements SerializerInterface", 500);
        }
    }

    /**
     * Binds a value to be used inside gremlin script
     *
     * @param string $bind  The binding name
     * @param mixed  $value the value that the binding name refers to
     *
     * @return void
     */
    public function bindValue($bind, $value)
    {
        if(!isset($this->args['bindings']))
        {
            $this->args['bindings'] = [];
        }
        $this->args['bindings'][$bind] = $value;
    }

    /**
     * Clear this message and start anew
     *
     * @return void
     */
    public function clear()
    {
        $this->configuration = [];
        $this->args = [];
        $this->setDefaults();
    }
}
<?php

namespace Brightzone\GremlinDriver;

use \Exception;

/**
 * Gremlin-server PHP Driver client Exception class for internal exceptions
 *
 * @category DB
 * @package  GremlinDriver
 * @author   Dylan Millikin <dylan.millikin@brightzone.fr>
 * @license  http://www.apache.org/licenses/LICENSE-2.0 apache2
 */
class InternalException extends Exception
{
    /**
     * Overriding construct
     *
     * @param string    $message  The error message to throw
     * @param int       $code     The error code to throw
     * @param Exception $previous The previous exception if there is one that triggered this error
     *
     * @return void
     */
    public function __construct($message, $code = 0, Exception $previous = NULL)
    {
        $message = 'gremlin-php driver has thrown the following error : ' . $message;
        parent::__construct($message, $code, $previous);
    }
}
Copyright (c) 2018-2019 Fabien Potencier

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.
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Polyfill\Php73;

/**
 * @author Gabriel Caruso <carusogabriel34@gmail.com>
 * @author Ion Bazan <ion.bazan@gmail.com>
 *
 * @internal
 */
final class Php73
{
    public static $startAt = 1533462603;

    /**
     * @param bool $asNum
     *
     * @return array|float|int
     */
    public static function hrtime($asNum = false)
    {
        $ns = microtime(false);
        $s = substr($ns, 11) - self::$startAt;
        $ns = 1E9 * (float) $ns;

        if ($asNum) {
            $ns += $s * 1E9;

            return \PHP_INT_SIZE === 4 ? $ns : (int) $ns;
        }

        return array($s, (int) $ns);
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

class JsonException extends Exception
{
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

use Symfony\Polyfill\Php73 as p;

if (PHP_VERSION_ID >= 70300) {
    return;
}

if (!function_exists('is_countable')) {
    function is_countable($var) { return is_array($var) || $var instanceof Countable || $var instanceof ResourceBundle || $var instanceof SimpleXmlElement; }
}
if (!function_exists('hrtime')) {
    require_once __DIR__.'/Php73.php';
    p\Php73::$startAt = (int) microtime(true);
    function hrtime($asNum = false) { return p\Php73::hrtime($asNum); }
}
if (!function_exists('array_key_first')) {
    function array_key_first(array $array) { foreach ($array as $key => $value) { return $key; } }
}
if (!function_exists('array_key_last')) {
    function array_key_last(array $array) { end($array); return key($array); }
}
Symfony Polyfill / Php73
========================

This component provides functions added to PHP 7.3 core:

- [`array_key_first`](https://php.net/array_key_first)
- [`array_key_last`](https://php.net/array_key_last)
- [`hrtime`](https://php.net/function.hrtime)
- [`is_countable`](https://php.net/is_countable)
- [`JsonException`](https://php.net/JsonException)

More information can be found in the
[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md).

License
=======

This library is released under the [MIT license](LICENSE).
{
    "name": "symfony/polyfill-php73",
    "type": "library",
    "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions",
    "keywords": ["polyfill", "shim", "compatibility", "portable"],
    "homepage": "https://symfony.com",
    "license": "MIT",
    "authors": [
        {
            "name": "Nicolas Grekas",
            "email": "p@tchwork.com"
        },
        {
            "name": "Symfony Community",
            "homepage": "https://symfony.com/contributors"
        }
    ],
    "require": {
        "php": ">=5.3.3"
    },
    "autoload": {
        "psr-4": { "Symfony\\Polyfill\\Php73\\": "" },
        "files": [ "bootstrap.php" ],
        "classmap": [ "Resources/stubs" ]
    },
    "minimum-stability": "dev",
    "extra": {
        "branch-alias": {
            "dev-master": "1.17-dev"
        },
        "thanks": {
            "name": "symfony/polyfill",
            "url": "https://github.com/symfony/polyfill"
        }
    }
}
Copyright (c) 2020 Fabien Potencier

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.
<?php

class ValueError extends Error
{
}
<?php

interface Stringable
{
    /**
     * @return string
     */
    public function __toString();
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

use Symfony\Polyfill\Php80 as p;

if (PHP_VERSION_ID >= 80000) {
    return;
}

if (!defined('FILTER_VALIDATE_BOOL') && defined('FILTER_VALIDATE_BOOLEAN')) {
    define('FILTER_VALIDATE_BOOL', FILTER_VALIDATE_BOOLEAN);
}

if (!function_exists('fdiv')) {
    function fdiv(float $dividend, float $divisor): float { return p\Php80::fdiv($dividend, $divisor); }
}
if (!function_exists('preg_last_error_msg')) {
    function preg_last_error_msg(): string { return p\Php80::preg_last_error_msg(); }
}
if (!function_exists('str_contains')) {
    function str_contains(string $haystack, string $needle): bool { return p\Php80::str_contains($haystack, $needle); }
}
if (!function_exists('str_starts_with')) {
    function str_starts_with(string $haystack, string $needle): bool { return p\Php80::str_starts_with($haystack, $needle); }
}
if (!function_exists('str_ends_with')) {
    function str_ends_with(string $haystack, string $needle): bool { return p\Php80::str_ends_with($haystack, $needle); }
}
if (!function_exists('get_debug_type')) {
    function get_debug_type($value): string { return p\Php80::get_debug_type($value); }
}
if (!function_exists('get_resource_id')) {
    function get_resource_id($res): int { return p\Php80::get_resource_id($res); }
}
Symfony Polyfill / Php80
========================

This component provides features added to PHP 8.0 core:

- `Stringable` interface
- [`fdiv`](https://php.net/fdiv)
- `ValueError` class
- `FILTER_VALIDATE_BOOL` constant
- [`get_debug_type`](https://php.net/get_debug_type)
- [`preg_last_error_msg`](https://php.net/preg_last_error_msg)
- [`str_contains`](https://php.net/str_contains)
- [`str_starts_with`](https://php.net/str_starts_with)
- [`str_ends_with`](https://php.net/str_ends_with)
- [`get_resource_id`](https://php.net/get_resource_id)

More information can be found in the
[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md).

License
=======

This library is released under the [MIT license](LICENSE).
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Polyfill\Php80;

/**
 * @author Ion Bazan <ion.bazan@gmail.com>
 * @author Nico Oelgart <nicoswd@gmail.com>
 * @author Nicolas Grekas <p@tchwork.com>
 *
 * @internal
 */
final class Php80
{
    public static function fdiv(float $dividend, float $divisor): float
    {
        return @($dividend / $divisor);
    }

    public static function get_debug_type($value): string
    {
        switch (true) {
            case null === $value: return 'null';
            case \is_bool($value): return 'bool';
            case \is_string($value): return 'string';
            case \is_array($value): return 'array';
            case \is_int($value): return 'int';
            case \is_float($value): return 'float';
            case \is_object($value): break;
            case $value instanceof \__PHP_Incomplete_Class: return '__PHP_Incomplete_Class';
            default:
                if (null === $type = @get_resource_type($value)) {
                    return 'unknown';
                }

                if ('Unknown' === $type) {
                    $type = 'closed';
                }

                return "resource ($type)";
        }

        $class = \get_class($value);

        if (false === strpos($class, '@')) {
            return $class;
        }

        return (get_parent_class($class) ?: key(class_implements($class)) ?: 'class').'@anonymous';
    }

    public static function get_resource_id($res): int
    {
        if (!\is_resource($res) && null === @get_resource_type($res)) {
            throw new \TypeError(sprintf('Argument 1 passed to get_resource_id() must be of the type resource, %s given', get_debug_type($res)));
        }

        return (int) $res;
    }

    public static function preg_last_error_msg(): string
    {
        switch (preg_last_error()) {
            case PREG_INTERNAL_ERROR:
                return 'Internal error';
            case PREG_BAD_UTF8_ERROR:
                return 'Malformed UTF-8 characters, possibly incorrectly encoded';
            case PREG_BAD_UTF8_OFFSET_ERROR:
                return 'The offset did not correspond to the beginning of a valid UTF-8 code point';
            case PREG_BACKTRACK_LIMIT_ERROR:
                return 'Backtrack limit exhausted';
            case PREG_RECURSION_LIMIT_ERROR:
                return 'Recursion limit exhausted';
            case PREG_JIT_STACKLIMIT_ERROR:
                return 'JIT stack limit exhausted';
            case PREG_NO_ERROR:
                return 'No error';
            default:
                return 'Unknown error';
        }
    }

    public static function str_contains(string $haystack, string $needle): bool
    {
        return '' === $needle || false !== strpos($haystack, $needle);
    }

    public static function str_starts_with(string $haystack, string $needle): bool
    {
        return 0 === \strncmp($haystack, $needle, \strlen($needle));
    }

    public static function str_ends_with(string $haystack, string $needle): bool
    {
        return '' === $needle || ('' !== $haystack && 0 === \substr_compare($haystack, $needle, -\strlen($needle)));
    }
}
{
    "name": "symfony/polyfill-php80",
    "type": "library",
    "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
    "keywords": ["polyfill", "shim", "compatibility", "portable"],
    "homepage": "https://symfony.com",
    "license": "MIT",
    "authors": [
        {
            "name": "Ion Bazan",
            "email": "ion.bazan@gmail.com"
        },
        {
            "name": "Nicolas Grekas",
            "email": "p@tchwork.com"
        },
        {
            "name": "Symfony Community",
            "homepage": "https://symfony.com/contributors"
        }
    ],
    "require": {
        "php": ">=7.0.8"
    },
    "autoload": {
        "psr-4": { "Symfony\\Polyfill\\Php80\\": "" },
        "files": [ "bootstrap.php" ],
        "classmap": [ "Resources/stubs" ]
    },
    "minimum-stability": "dev",
    "extra": {
        "branch-alias": {
            "dev-master": "1.17-dev"
        },
        "thanks": {
            "name": "symfony/polyfill",
            "url": "https://github.com/symfony/polyfill"
        }
    }
}
Copyright (c) 2018-2019 Fabien Potencier

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.
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

use Symfony\Polyfill\Ctype as p;

if (!function_exists('ctype_alnum')) {
    function ctype_alnum($text) { return p\Ctype::ctype_alnum($text); }
}
if (!function_exists('ctype_alpha')) {
    function ctype_alpha($text) { return p\Ctype::ctype_alpha($text); }
}
if (!function_exists('ctype_cntrl')) {
    function ctype_cntrl($text) { return p\Ctype::ctype_cntrl($text); }
}
if (!function_exists('ctype_digit')) {
    function ctype_digit($text) { return p\Ctype::ctype_digit($text); }
}
if (!function_exists('ctype_graph')) {
    function ctype_graph($text) { return p\Ctype::ctype_graph($text); }
}
if (!function_exists('ctype_lower')) {
    function ctype_lower($text) { return p\Ctype::ctype_lower($text); }
}
if (!function_exists('ctype_print')) {
    function ctype_print($text) { return p\Ctype::ctype_print($text); }
}
if (!function_exists('ctype_punct')) {
    function ctype_punct($text) { return p\Ctype::ctype_punct($text); }
}
if (!function_exists('ctype_space')) {
    function ctype_space($text) { return p\Ctype::ctype_space($text); }
}
if (!function_exists('ctype_upper')) {
    function ctype_upper($text) { return p\Ctype::ctype_upper($text); }
}
if (!function_exists('ctype_xdigit')) {
    function ctype_xdigit($text) { return p\Ctype::ctype_xdigit($text); }
}
Symfony Polyfill / Ctype
========================

This component provides `ctype_*` functions to users who run php versions without the ctype extension.

More information can be found in the
[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md).

License
=======

This library is released under the [MIT license](LICENSE).
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Polyfill\Ctype;

/**
 * Ctype implementation through regex.
 *
 * @internal
 *
 * @author Gert de Pagter <BackEndTea@gmail.com>
 */
final class Ctype
{
    /**
     * Returns TRUE if every character in text is either a letter or a digit, FALSE otherwise.
     *
     * @see https://php.net/ctype-alnum
     *
     * @param string|int $text
     *
     * @return bool
     */
    public static function ctype_alnum($text)
    {
        $text = self::convert_int_to_char_for_ctype($text);

        return \is_string($text) && '' !== $text && !preg_match('/[^A-Za-z0-9]/', $text);
    }

    /**
     * Returns TRUE if every character in text is a letter, FALSE otherwise.
     *
     * @see https://php.net/ctype-alpha
     *
     * @param string|int $text
     *
     * @return bool
     */
    public static function ctype_alpha($text)
    {
        $text = self::convert_int_to_char_for_ctype($text);

        return \is_string($text) && '' !== $text && !preg_match('/[^A-Za-z]/', $text);
    }

    /**
     * Returns TRUE if every character in text is a control character from the current locale, FALSE otherwise.
     *
     * @see https://php.net/ctype-cntrl
     *
     * @param string|int $text
     *
     * @return bool
     */
    public static function ctype_cntrl($text)
    {
        $text = self::convert_int_to_char_for_ctype($text);

        return \is_string($text) && '' !== $text && !preg_match('/[^\x00-\x1f\x7f]/', $text);
    }

    /**
     * Returns TRUE if every character in the string text is a decimal digit, FALSE otherwise.
     *
     * @see https://php.net/ctype-digit
     *
     * @param string|int $text
     *
     * @return bool
     */
    public static function ctype_digit($text)
    {
        $text = self::convert_int_to_char_for_ctype($text);

        return \is_string($text) && '' !== $text && !preg_match('/[^0-9]/', $text);
    }

    /**
     * Returns TRUE if every character in text is printable and actually creates visible output (no white space), FALSE otherwise.
     *
     * @see https://php.net/ctype-graph
     *
     * @param string|int $text
     *
     * @return bool
     */
    public static function ctype_graph($text)
    {
        $text = self::convert_int_to_char_for_ctype($text);

        return \is_string($text) && '' !== $text && !preg_match('/[^!-~]/', $text);
    }

    /**
     * Returns TRUE if every character in text is a lowercase letter.
     *
     * @see https://php.net/ctype-lower
     *
     * @param string|int $text
     *
     * @return bool
     */
    public static function ctype_lower($text)
    {
        $text = self::convert_int_to_char_for_ctype($text);

        return \is_string($text) && '' !== $text && !preg_match('/[^a-z]/', $text);
    }

    /**
     * Returns TRUE if every character in text will actually create output (including blanks). Returns FALSE if text contains control characters or characters that do not have any output or control function at all.
     *
     * @see https://php.net/ctype-print
     *
     * @param string|int $text
     *
     * @return bool
     */
    public static function ctype_print($text)
    {
        $text = self::convert_int_to_char_for_ctype($text);

        return \is_string($text) && '' !== $text && !preg_match('/[^ -~]/', $text);
    }

    /**
     * Returns TRUE if every character in text is printable, but neither letter, digit or blank, FALSE otherwise.
     *
     * @see https://php.net/ctype-punct
     *
     * @param string|int $text
     *
     * @return bool
     */
    public static function ctype_punct($text)
    {
        $text = self::convert_int_to_char_for_ctype($text);

        return \is_string($text) && '' !== $text && !preg_match('/[^!-\/\:-@\[-`\{-~]/', $text);
    }

    /**
     * Returns TRUE if every character in text creates some sort of white space, FALSE otherwise. Besides the blank character this also includes tab, vertical tab, line feed, carriage return and form feed characters.
     *
     * @see https://php.net/ctype-space
     *
     * @param string|int $text
     *
     * @return bool
     */
    public static function ctype_space($text)
    {
        $text = self::convert_int_to_char_for_ctype($text);

        return \is_string($text) && '' !== $text && !preg_match('/[^\s]/', $text);
    }

    /**
     * Returns TRUE if every character in text is an uppercase letter.
     *
     * @see https://php.net/ctype-upper
     *
     * @param string|int $text
     *
     * @return bool
     */
    public static function ctype_upper($text)
    {
        $text = self::convert_int_to_char_for_ctype($text);

        return \is_string($text) && '' !== $text && !preg_match('/[^A-Z]/', $text);
    }

    /**
     * Returns TRUE if every character in text is a hexadecimal 'digit', that is a decimal digit or a character from [A-Fa-f] , FALSE otherwise.
     *
     * @see https://php.net/ctype-xdigit
     *
     * @param string|int $text
     *
     * @return bool
     */
    public static function ctype_xdigit($text)
    {
        $text = self::convert_int_to_char_for_ctype($text);

        return \is_string($text) && '' !== $text && !preg_match('/[^A-Fa-f0-9]/', $text);
    }

    /**
     * Converts integers to their char versions according to normal ctype behaviour, if needed.
     *
     * If an integer between -128 and 255 inclusive is provided,
     * it is interpreted as the ASCII value of a single character
     * (negative values have 256 added in order to allow characters in the Extended ASCII range).
     * Any other integer is interpreted as a string containing the decimal digits of the integer.
     *
     * @param string|int $int
     *
     * @return mixed
     */
    private static function convert_int_to_char_for_ctype($int)
    {
        if (!\is_int($int)) {
            return $int;
        }

        if ($int < -128 || $int > 255) {
            return (string) $int;
        }

        if ($int < 0) {
            $int += 256;
        }

        return \chr($int);
    }
}
{
    "name": "symfony/polyfill-ctype",
    "type": "library",
    "description": "Symfony polyfill for ctype functions",
    "keywords": ["polyfill", "compatibility", "portable", "ctype"],
    "homepage": "https://symfony.com",
    "license": "MIT",
    "authors": [
        {
            "name": "Gert de Pagter",
            "email": "BackEndTea@gmail.com"
        },
        {
            "name": "Symfony Community",
            "homepage": "https://symfony.com/contributors"
        }
    ],
    "require": {
        "php": ">=5.3.3"
    },
    "autoload": {
        "psr-4": { "Symfony\\Polyfill\\Ctype\\": "" },
        "files": [ "bootstrap.php" ]
    },
    "suggest": {
        "ext-ctype": "For best performance"
    },
    "minimum-stability": "dev",
    "extra": {
        "branch-alias": {
            "dev-master": "1.17-dev"
        },
        "thanks": {
            "name": "symfony/polyfill",
            "url": "https://github.com/symfony/polyfill"
        }
    }
}
Copyright (c) 2015-2019 Fabien Potencier

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.
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Polyfill\Php72;

/**
 * @author Nicolas Grekas <p@tchwork.com>
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * @internal
 */
final class Php72
{
    private static $hashMask;

    public static function utf8_encode($s)
    {
        $s .= $s;
        $len = \strlen($s);

        for ($i = $len >> 1, $j = 0; $i < $len; ++$i, ++$j) {
            switch (true) {
                case $s[$i] < "\x80": $s[$j] = $s[$i]; break;
                case $s[$i] < "\xC0": $s[$j] = "\xC2"; $s[++$j] = $s[$i]; break;
                default: $s[$j] = "\xC3"; $s[++$j] = \chr(\ord($s[$i]) - 64); break;
            }
        }

        return substr($s, 0, $j);
    }

    public static function utf8_decode($s)
    {
        $s = (string) $s;
        $len = \strlen($s);

        for ($i = 0, $j = 0; $i < $len; ++$i, ++$j) {
            switch ($s[$i] & "\xF0") {
                case "\xC0":
                case "\xD0":
                    $c = (\ord($s[$i] & "\x1F") << 6) | \ord($s[++$i] & "\x3F");
                    $s[$j] = $c < 256 ? \chr($c) : '?';
                    break;

                case "\xF0":
                    ++$i;
                    // no break

                case "\xE0":
                    $s[$j] = '?';
                    $i += 2;
                    break;

                default:
                    $s[$j] = $s[$i];
            }
        }

        return substr($s, 0, $j);
    }

    public static function php_os_family()
    {
        if ('\\' === \DIRECTORY_SEPARATOR) {
            return 'Windows';
        }

        $map = array(
            'Darwin' => 'Darwin',
            'DragonFly' => 'BSD',
            'FreeBSD' => 'BSD',
            'NetBSD' => 'BSD',
            'OpenBSD' => 'BSD',
            'Linux' => 'Linux',
            'SunOS' => 'Solaris',
        );

        return isset($map[PHP_OS]) ? $map[PHP_OS] : 'Unknown';
    }

    public static function spl_object_id($object)
    {
        if (null === self::$hashMask) {
            self::initHashMask();
        }
        if (null === $hash = spl_object_hash($object)) {
            return;
        }

        // On 32-bit systems, PHP_INT_SIZE is 4,
        return self::$hashMask ^ hexdec(substr($hash, 16 - (\PHP_INT_SIZE * 2 - 1), (\PHP_INT_SIZE * 2 - 1)));
    }

    public static function sapi_windows_vt100_support($stream, $enable = null)
    {
        if (!\is_resource($stream)) {
            trigger_error('sapi_windows_vt100_support() expects parameter 1 to be resource, '.\gettype($stream).' given', E_USER_WARNING);

            return false;
        }

        $meta = stream_get_meta_data($stream);

        if ('STDIO' !== $meta['stream_type']) {
            trigger_error('sapi_windows_vt100_support() was not able to analyze the specified stream', E_USER_WARNING);

            return false;
        }

        // We cannot actually disable vt100 support if it is set
        if (false === $enable || !self::stream_isatty($stream)) {
            return false;
        }

        // The native function does not apply to stdin
        $meta = array_map('strtolower', $meta);
        $stdin = 'php://stdin' === $meta['uri'] || 'php://fd/0' === $meta['uri'];

        return !$stdin
            && (false !== getenv('ANSICON')
            || 'ON' === getenv('ConEmuANSI')
            || 'xterm' === getenv('TERM')
            || 'Hyper' === getenv('TERM_PROGRAM'));
    }

    public static function stream_isatty($stream)
    {
        if (!\is_resource($stream)) {
            trigger_error('stream_isatty() expects parameter 1 to be resource, '.\gettype($stream).' given', E_USER_WARNING);

            return false;
        }

        if ('\\' === \DIRECTORY_SEPARATOR) {
            $stat = @fstat($stream);
            // Check if formatted mode is S_IFCHR
            return $stat ? 0020000 === ($stat['mode'] & 0170000) : false;
        }

        return \function_exists('posix_isatty') && @posix_isatty($stream);
    }

    private static function initHashMask()
    {
        $obj = (object) array();
        self::$hashMask = -1;

        // check if we are nested in an output buffering handler to prevent a fatal error with ob_start() below
        $obFuncs = array('ob_clean', 'ob_end_clean', 'ob_flush', 'ob_end_flush', 'ob_get_contents', 'ob_get_flush');
        foreach (debug_backtrace(\PHP_VERSION_ID >= 50400 ? DEBUG_BACKTRACE_IGNORE_ARGS : false) as $frame) {
            if (isset($frame['function'][0]) && !isset($frame['class']) && 'o' === $frame['function'][0] && \in_array($frame['function'], $obFuncs)) {
                $frame['line'] = 0;
                break;
            }
        }
        if (!empty($frame['line'])) {
            ob_start();
            debug_zval_dump($obj);
            self::$hashMask = (int) substr(ob_get_clean(), 17);
        }

        self::$hashMask ^= hexdec(substr(spl_object_hash($obj), 16 - (\PHP_INT_SIZE * 2 - 1), (\PHP_INT_SIZE * 2 - 1)));
    }

    public static function mb_chr($code, $encoding = null)
    {
        if (0x80 > $code %= 0x200000) {
            $s = \chr($code);
        } elseif (0x800 > $code) {
            $s = \chr(0xC0 | $code >> 6).\chr(0x80 | $code & 0x3F);
        } elseif (0x10000 > $code) {
            $s = \chr(0xE0 | $code >> 12).\chr(0x80 | $code >> 6 & 0x3F).\chr(0x80 | $code & 0x3F);
        } else {
            $s = \chr(0xF0 | $code >> 18).\chr(0x80 | $code >> 12 & 0x3F).\chr(0x80 | $code >> 6 & 0x3F).\chr(0x80 | $code & 0x3F);
        }

        if ('UTF-8' !== $encoding) {
            $s = mb_convert_encoding($s, $encoding, 'UTF-8');
        }

        return $s;
    }

    public static function mb_ord($s, $encoding = null)
    {
        if (null == $encoding) {
            $s = mb_convert_encoding($s, 'UTF-8');
        } elseif ('UTF-8' !== $encoding) {
            $s = mb_convert_encoding($s, 'UTF-8', $encoding);
        }

        if (1 === \strlen($s)) {
            return \ord($s);
        }

        $code = ($s = unpack('C*', substr($s, 0, 4))) ? $s[1] : 0;
        if (0xF0 <= $code) {
            return (($code - 0xF0) << 18) + (($s[2] - 0x80) << 12) + (($s[3] - 0x80) << 6) + $s[4] - 0x80;
        }
        if (0xE0 <= $code) {
            return (($code - 0xE0) << 12) + (($s[2] - 0x80) << 6) + $s[3] - 0x80;
        }
        if (0xC0 <= $code) {
            return (($code - 0xC0) << 6) + $s[2] - 0x80;
        }

        return $code;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

use Symfony\Polyfill\Php72 as p;

if (PHP_VERSION_ID >= 70200) {
    return;
}

if (!defined('PHP_FLOAT_DIG')) {
    define('PHP_FLOAT_DIG', 15);
}
if (!defined('PHP_FLOAT_EPSILON')) {
    define('PHP_FLOAT_EPSILON', 2.2204460492503E-16);
}
if (!defined('PHP_FLOAT_MIN')) {
    define('PHP_FLOAT_MIN', 2.2250738585072E-308);
}
if (!defined('PHP_FLOAT_MAX')) {
    define('PHP_FLOAT_MAX', 1.7976931348623157E+308);
}
if (!defined('PHP_OS_FAMILY')) {
    define('PHP_OS_FAMILY', p\Php72::php_os_family());
}

if ('\\' === DIRECTORY_SEPARATOR && !function_exists('sapi_windows_vt100_support')) {
    function sapi_windows_vt100_support($stream, $enable = null) { return p\Php72::sapi_windows_vt100_support($stream, $enable); }
}
if (!function_exists('stream_isatty')) {
    function stream_isatty($stream) { return p\Php72::stream_isatty($stream); }
}
if (!function_exists('utf8_encode')) {
    function utf8_encode($s) { return p\Php72::utf8_encode($s); }
}
if (!function_exists('utf8_decode')) {
    function utf8_decode($s) { return p\Php72::utf8_decode($s); }
}
if (!function_exists('spl_object_id')) {
    function spl_object_id($s) { return p\Php72::spl_object_id($s); }
}
if (!function_exists('mb_ord')) {
    function mb_ord($s, $enc = null) { return p\Php72::mb_ord($s, $enc); }
}
if (!function_exists('mb_chr')) {
    function mb_chr($code, $enc = null) { return p\Php72::mb_chr($code, $enc); }
}
if (!function_exists('mb_scrub')) {
    function mb_scrub($s, $enc = null) { $enc = null === $enc ? mb_internal_encoding() : $enc; return mb_convert_encoding($s, $enc, $enc); }
}
Symfony Polyfill / Php72
========================

This component provides functions added to PHP 7.2 core:

- [`spl_object_id`](https://php.net/spl_object_id)
- [`stream_isatty`](https://php.net/stream_isatty)

On Windows only:

- [`sapi_windows_vt100_support`](https://php.net/sapi_windows_vt100_support)

Moved to core since 7.2 (was in the optional XML extension earlier):

- [`utf8_encode`](https://php.net/utf8_encode)
- [`utf8_decode`](https://php.net/utf8_decode)

Also, it provides constants added to PHP 7.2:
- [`PHP_FLOAT_*`](https://php.net/reserved.constants#constant.php-float-dig)
- [`PHP_OS_FAMILY`](https://php.net/reserved.constants#constant.php-os-family)

More information can be found in the
[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md).

License
=======

This library is released under the [MIT license](LICENSE).
{
    "name": "symfony/polyfill-php72",
    "type": "library",
    "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
    "keywords": ["polyfill", "shim", "compatibility", "portable"],
    "homepage": "https://symfony.com",
    "license": "MIT",
    "authors": [
        {
            "name": "Nicolas Grekas",
            "email": "p@tchwork.com"
        },
        {
            "name": "Symfony Community",
            "homepage": "https://symfony.com/contributors"
        }
    ],
    "require": {
        "php": ">=5.3.3"
    },
    "autoload": {
        "psr-4": { "Symfony\\Polyfill\\Php72\\": "" },
        "files": [ "bootstrap.php" ]
    },
    "minimum-stability": "dev",
    "extra": {
        "branch-alias": {
            "dev-master": "1.17-dev"
        }
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\EventDispatcher;

use Symfony\Contracts\EventDispatcher\EventDispatcherInterface as ContractsEventDispatcherInterface;

/**
 * The EventDispatcherInterface is the central point of Symfony's event listener system.
 * Listeners are registered on the manager and events are dispatched through the
 * manager.
 *
 * @author Bernhard Schussek <bschussek@gmail.com>
 */
interface EventDispatcherInterface extends ContractsEventDispatcherInterface
{
    /**
     * Adds an event listener that listens on the specified events.
     *
     * @param string   $eventName The event to listen on
     * @param callable $listener  The listener
     * @param int      $priority  The higher this value, the earlier an event
     *                            listener will be triggered in the chain (defaults to 0)
     */
    public function addListener($eventName, $listener, $priority = 0);

    /**
     * Adds an event subscriber.
     *
     * The subscriber is asked for all the events it is
     * interested in and added as a listener for these events.
     */
    public function addSubscriber(EventSubscriberInterface $subscriber);

    /**
     * Removes an event listener from the specified events.
     *
     * @param string   $eventName The event to remove a listener from
     * @param callable $listener  The listener to remove
     */
    public function removeListener($eventName, $listener);

    public function removeSubscriber(EventSubscriberInterface $subscriber);

    /**
     * Gets the listeners of a specific event or all listeners sorted by descending priority.
     *
     * @param string|null $eventName The name of the event
     *
     * @return array The event listeners for the specified event, or all event listeners by event name
     */
    public function getListeners($eventName = null);

    /**
     * Gets the listener priority for a specific event.
     *
     * Returns null if the event or the listener does not exist.
     *
     * @param string   $eventName The name of the event
     * @param callable $listener  The listener
     *
     * @return int|null The event listener priority
     */
    public function getListenerPriority($eventName, $listener);

    /**
     * Checks whether an event has any registered listeners.
     *
     * @param string|null $eventName The name of the event
     *
     * @return bool true if the specified event has any listeners, false otherwise
     */
    public function hasListeners($eventName = null);
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\EventDispatcher;

/**
 * @deprecated since Symfony 4.3, use "Symfony\Contracts\EventDispatcher\Event" instead
 */
class Event
{
    private $propagationStopped = false;

    /**
     * @return bool Whether propagation was already stopped for this event
     *
     * @deprecated since Symfony 4.3, use "Symfony\Contracts\EventDispatcher\Event" instead
     */
    public function isPropagationStopped()
    {
        return $this->propagationStopped;
    }

    /**
     * @deprecated since Symfony 4.3, use "Symfony\Contracts\EventDispatcher\Event" instead
     */
    public function stopPropagation()
    {
        $this->propagationStopped = true;
    }
}
Copyright (c) 2004-2020 Fabien Potencier

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.
CHANGELOG
=========

4.4.0
-----

 * `AddEventAliasesPass` has been added, allowing applications and bundles to extend the event alias mapping used by `RegisterListenersPass`.
 * Made the `event` attribute of the `kernel.event_listener` tag optional for FQCN events.

4.3.0
-----

 * The signature of the `EventDispatcherInterface::dispatch()` method should be updated to `dispatch($event, string $eventName = null)`, not doing so is deprecated
 * deprecated the `Event` class, use `Symfony\Contracts\EventDispatcher\Event` instead

4.1.0
-----

 * added support for invokable event listeners tagged with `kernel.event_listener` by default
 * The `TraceableEventDispatcher::getOrphanedEvents()` method has been added.
 * The `TraceableEventDispatcherInterface` has been deprecated.

4.0.0
-----

 * removed the `ContainerAwareEventDispatcher` class
 * added the `reset()` method to the `TraceableEventDispatcherInterface`

3.4.0
-----

  * Implementing `TraceableEventDispatcherInterface` without the `reset()` method has been deprecated.

3.3.0
-----

  * The ContainerAwareEventDispatcher class has been deprecated. Use EventDispatcher with closure factories instead.

3.0.0
-----

  * The method `getListenerPriority($eventName, $listener)` has been added to the
    `EventDispatcherInterface`.
  * The methods `Event::setDispatcher()`, `Event::getDispatcher()`, `Event::setName()`
    and `Event::getName()` have been removed.
    The event dispatcher and the event name are passed to the listener call.

2.5.0
-----

 * added Debug\TraceableEventDispatcher (originally in HttpKernel)
 * changed Debug\TraceableEventDispatcherInterface to extend EventDispatcherInterface
 * added RegisterListenersPass (originally in HttpKernel)

2.1.0
-----

 * added TraceableEventDispatcherInterface
 * added ContainerAwareEventDispatcher
 * added a reference to the EventDispatcher on the Event
 * added a reference to the Event name on the event
 * added fluid interface to the dispatch() method which now returns the Event
   object
 * added GenericEvent event class
 * added the possibility for subscribers to subscribe several times for the
   same event
 * added ImmutableEventDispatcher
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\EventDispatcher;

use Psr\EventDispatcher\StoppableEventInterface;
use Symfony\Contracts\EventDispatcher\Event as ContractsEvent;
use Symfony\Contracts\EventDispatcher\EventDispatcherInterface as ContractsEventDispatcherInterface;

/**
 * A helper class to provide BC/FC with the legacy signature of EventDispatcherInterface::dispatch().
 *
 * This class should be deprecated in Symfony 5.1
 *
 * @author Nicolas Grekas <p@tchwork.com>
 */
final class LegacyEventDispatcherProxy implements EventDispatcherInterface
{
    private $dispatcher;

    public static function decorate(?ContractsEventDispatcherInterface $dispatcher): ?ContractsEventDispatcherInterface
    {
        if (null === $dispatcher) {
            return null;
        }
        $r = new \ReflectionMethod($dispatcher, 'dispatch');
        $param2 = $r->getParameters()[1] ?? null;

        if (!$param2 || !$param2->hasType() || $param2->getType()->isBuiltin()) {
            return $dispatcher;
        }

        @trigger_error(sprintf('The signature of the "%s::dispatch()" method should be updated to "dispatch($event, string $eventName = null)", not doing so is deprecated since Symfony 4.3.', $r->class), E_USER_DEPRECATED);

        $self = new self();
        $self->dispatcher = $dispatcher;

        return $self;
    }

    /**
     * {@inheritdoc}
     *
     * @param string|null $eventName
     *
     * @return object
     */
    public function dispatch($event/*, string $eventName = null*/)
    {
        $eventName = 1 < \func_num_args() ? func_get_arg(1) : null;

        if (\is_object($event)) {
            $eventName = $eventName ?? \get_class($event);
        } elseif (\is_string($event) && (null === $eventName || $eventName instanceof ContractsEvent || $eventName instanceof Event)) {
            @trigger_error(sprintf('Calling the "%s::dispatch()" method with the event name as the first argument is deprecated since Symfony 4.3, pass it as the second argument and provide the event object as the first argument instead.', ContractsEventDispatcherInterface::class), E_USER_DEPRECATED);
            $swap = $event;
            $event = $eventName ?? new Event();
            $eventName = $swap;
        } else {
            throw new \TypeError(sprintf('Argument 1 passed to "%s::dispatch()" must be an object, "%s" given.', ContractsEventDispatcherInterface::class, \is_object($event) ? \get_class($event) : \gettype($event)));
        }

        $listeners = $this->getListeners($eventName);
        $stoppable = $event instanceof Event || $event instanceof ContractsEvent || $event instanceof StoppableEventInterface;

        foreach ($listeners as $listener) {
            if ($stoppable && $event->isPropagationStopped()) {
                break;
            }
            $listener($event, $eventName, $this);
        }

        return $event;
    }

    /**
     * {@inheritdoc}
     */
    public function addListener($eventName, $listener, $priority = 0)
    {
        return $this->dispatcher->addListener($eventName, $listener, $priority);
    }

    /**
     * {@inheritdoc}
     */
    public function addSubscriber(EventSubscriberInterface $subscriber)
    {
        return $this->dispatcher->addSubscriber($subscriber);
    }

    /**
     * {@inheritdoc}
     */
    public function removeListener($eventName, $listener)
    {
        return $this->dispatcher->removeListener($eventName, $listener);
    }

    /**
     * {@inheritdoc}
     */
    public function removeSubscriber(EventSubscriberInterface $subscriber)
    {
        return $this->dispatcher->removeSubscriber($subscriber);
    }

    /**
     * {@inheritdoc}
     */
    public function getListeners($eventName = null): array
    {
        return $this->dispatcher->getListeners($eventName);
    }

    /**
     * {@inheritdoc}
     */
    public function getListenerPriority($eventName, $listener): ?int
    {
        return $this->dispatcher->getListenerPriority($eventName, $listener);
    }

    /**
     * {@inheritdoc}
     */
    public function hasListeners($eventName = null): bool
    {
        return $this->dispatcher->hasListeners($eventName);
    }

    /**
     * Proxies all method calls to the original event dispatcher.
     */
    public function __call($method, $arguments)
    {
        return $this->dispatcher->{$method}(...$arguments);
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\EventDispatcher;

use Psr\EventDispatcher\StoppableEventInterface;
use Symfony\Component\EventDispatcher\Debug\WrappedListener;
use Symfony\Contracts\EventDispatcher\Event as ContractsEvent;

/**
 * The EventDispatcherInterface is the central point of Symfony's event listener system.
 *
 * Listeners are registered on the manager and events are dispatched through the
 * manager.
 *
 * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
 * @author Jonathan Wage <jonwage@gmail.com>
 * @author Roman Borschel <roman@code-factory.org>
 * @author Bernhard Schussek <bschussek@gmail.com>
 * @author Fabien Potencier <fabien@symfony.com>
 * @author Jordi Boggiano <j.boggiano@seld.be>
 * @author Jordan Alliot <jordan.alliot@gmail.com>
 * @author Nicolas Grekas <p@tchwork.com>
 */
class EventDispatcher implements EventDispatcherInterface
{
    private $listeners = [];
    private $sorted = [];
    private $optimized;

    public function __construct()
    {
        if (__CLASS__ === static::class) {
            $this->optimized = [];
        }
    }

    /**
     * {@inheritdoc}
     *
     * @param string|null $eventName
     */
    public function dispatch($event/*, string $eventName = null*/)
    {
        $eventName = 1 < \func_num_args() ? func_get_arg(1) : null;

        if (\is_object($event)) {
            $eventName = $eventName ?? \get_class($event);
        } elseif (\is_string($event) && (null === $eventName || $eventName instanceof ContractsEvent || $eventName instanceof Event)) {
            @trigger_error(sprintf('Calling the "%s::dispatch()" method with the event name as the first argument is deprecated since Symfony 4.3, pass it as the second argument and provide the event object as the first argument instead.', EventDispatcherInterface::class), E_USER_DEPRECATED);
            $swap = $event;
            $event = $eventName ?? new Event();
            $eventName = $swap;
        } else {
            throw new \TypeError(sprintf('Argument 1 passed to "%s::dispatch()" must be an object, "%s" given.', EventDispatcherInterface::class, \is_object($event) ? \get_class($event) : \gettype($event)));
        }

        if (null !== $this->optimized && null !== $eventName) {
            $listeners = $this->optimized[$eventName] ?? (empty($this->listeners[$eventName]) ? [] : $this->optimizeListeners($eventName));
        } else {
            $listeners = $this->getListeners($eventName);
        }

        if ($listeners) {
            $this->callListeners($listeners, $eventName, $event);
        }

        return $event;
    }

    /**
     * {@inheritdoc}
     */
    public function getListeners($eventName = null)
    {
        if (null !== $eventName) {
            if (empty($this->listeners[$eventName])) {
                return [];
            }

            if (!isset($this->sorted[$eventName])) {
                $this->sortListeners($eventName);
            }

            return $this->sorted[$eventName];
        }

        foreach ($this->listeners as $eventName => $eventListeners) {
            if (!isset($this->sorted[$eventName])) {
                $this->sortListeners($eventName);
            }
        }

        return array_filter($this->sorted);
    }

    /**
     * {@inheritdoc}
     */
    public function getListenerPriority($eventName, $listener)
    {
        if (empty($this->listeners[$eventName])) {
            return null;
        }

        if (\is_array($listener) && isset($listener[0]) && $listener[0] instanceof \Closure && 2 >= \count($listener)) {
            $listener[0] = $listener[0]();
            $listener[1] = $listener[1] ?? '__invoke';
        }

        foreach ($this->listeners[$eventName] as $priority => &$listeners) {
            foreach ($listeners as &$v) {
                if ($v !== $listener && \is_array($v) && isset($v[0]) && $v[0] instanceof \Closure && 2 >= \count($v)) {
                    $v[0] = $v[0]();
                    $v[1] = $v[1] ?? '__invoke';
                }
                if ($v === $listener) {
                    return $priority;
                }
            }
        }

        return null;
    }

    /**
     * {@inheritdoc}
     */
    public function hasListeners($eventName = null)
    {
        if (null !== $eventName) {
            return !empty($this->listeners[$eventName]);
        }

        foreach ($this->listeners as $eventListeners) {
            if ($eventListeners) {
                return true;
            }
        }

        return false;
    }

    /**
     * {@inheritdoc}
     */
    public function addListener($eventName, $listener, $priority = 0)
    {
        $this->listeners[$eventName][$priority][] = $listener;
        unset($this->sorted[$eventName], $this->optimized[$eventName]);
    }

    /**
     * {@inheritdoc}
     */
    public function removeListener($eventName, $listener)
    {
        if (empty($this->listeners[$eventName])) {
            return;
        }

        if (\is_array($listener) && isset($listener[0]) && $listener[0] instanceof \Closure && 2 >= \count($listener)) {
            $listener[0] = $listener[0]();
            $listener[1] = $listener[1] ?? '__invoke';
        }

        foreach ($this->listeners[$eventName] as $priority => &$listeners) {
            foreach ($listeners as $k => &$v) {
                if ($v !== $listener && \is_array($v) && isset($v[0]) && $v[0] instanceof \Closure && 2 >= \count($v)) {
                    $v[0] = $v[0]();
                    $v[1] = $v[1] ?? '__invoke';
                }
                if ($v === $listener) {
                    unset($listeners[$k], $this->sorted[$eventName], $this->optimized[$eventName]);
                }
            }

            if (!$listeners) {
                unset($this->listeners[$eventName][$priority]);
            }
        }
    }

    /**
     * {@inheritdoc}
     */
    public function addSubscriber(EventSubscriberInterface $subscriber)
    {
        foreach ($subscriber->getSubscribedEvents() as $eventName => $params) {
            if (\is_string($params)) {
                $this->addListener($eventName, [$subscriber, $params]);
            } elseif (\is_string($params[0])) {
                $this->addListener($eventName, [$subscriber, $params[0]], isset($params[1]) ? $params[1] : 0);
            } else {
                foreach ($params as $listener) {
                    $this->addListener($eventName, [$subscriber, $listener[0]], isset($listener[1]) ? $listener[1] : 0);
                }
            }
        }
    }

    /**
     * {@inheritdoc}
     */
    public function removeSubscriber(EventSubscriberInterface $subscriber)
    {
        foreach ($subscriber->getSubscribedEvents() as $eventName => $params) {
            if (\is_array($params) && \is_array($params[0])) {
                foreach ($params as $listener) {
                    $this->removeListener($eventName, [$subscriber, $listener[0]]);
                }
            } else {
                $this->removeListener($eventName, [$subscriber, \is_string($params) ? $params : $params[0]]);
            }
        }
    }

    /**
     * Triggers the listeners of an event.
     *
     * This method can be overridden to add functionality that is executed
     * for each listener.
     *
     * @param callable[] $listeners The event listeners
     * @param string     $eventName The name of the event to dispatch
     * @param object     $event     The event object to pass to the event handlers/listeners
     */
    protected function callListeners(iterable $listeners, string $eventName, $event)
    {
        if ($event instanceof Event) {
            $this->doDispatch($listeners, $eventName, $event);

            return;
        }

        $stoppable = $event instanceof ContractsEvent || $event instanceof StoppableEventInterface;

        foreach ($listeners as $listener) {
            if ($stoppable && $event->isPropagationStopped()) {
                break;
            }
            // @deprecated: the ternary operator is part of a BC layer and should be removed in 5.0
            $listener($listener instanceof WrappedListener ? new LegacyEventProxy($event) : $event, $eventName, $this);
        }
    }

    /**
     * @deprecated since Symfony 4.3, use callListeners() instead
     */
    protected function doDispatch($listeners, $eventName, Event $event)
    {
        foreach ($listeners as $listener) {
            if ($event->isPropagationStopped()) {
                break;
            }
            $listener($event, $eventName, $this);
        }
    }

    /**
     * Sorts the internal list of listeners for the given event by priority.
     */
    private function sortListeners(string $eventName)
    {
        krsort($this->listeners[$eventName]);
        $this->sorted[$eventName] = [];

        foreach ($this->listeners[$eventName] as &$listeners) {
            foreach ($listeners as $k => &$listener) {
                if (\is_array($listener) && isset($listener[0]) && $listener[0] instanceof \Closure && 2 >= \count($listener)) {
                    $listener[0] = $listener[0]();
                    $listener[1] = $listener[1] ?? '__invoke';
                }
                $this->sorted[$eventName][] = $listener;
            }
        }
    }

    /**
     * Optimizes the internal list of listeners for the given event by priority.
     */
    private function optimizeListeners(string $eventName): array
    {
        krsort($this->listeners[$eventName]);
        $this->optimized[$eventName] = [];

        foreach ($this->listeners[$eventName] as &$listeners) {
            foreach ($listeners as &$listener) {
                $closure = &$this->optimized[$eventName][];
                if (\is_array($listener) && isset($listener[0]) && $listener[0] instanceof \Closure && 2 >= \count($listener)) {
                    $closure = static function (...$args) use (&$listener, &$closure) {
                        if ($listener[0] instanceof \Closure) {
                            $listener[0] = $listener[0]();
                            $listener[1] = $listener[1] ?? '__invoke';
                        }
                        ($closure = \Closure::fromCallable($listener))(...$args);
                    };
                } else {
                    $closure = $listener instanceof \Closure || $listener instanceof WrappedListener ? $listener : \Closure::fromCallable($listener);
                }
            }
        }

        return $this->optimized[$eventName];
    }
}
EventDispatcher Component
=========================

The EventDispatcher component provides tools that allow your application
components to communicate with each other by dispatching events and listening to
them.

Resources
---------

  * [Documentation](https://symfony.com/doc/current/components/event_dispatcher.html)
  * [Contributing](https://symfony.com/doc/current/contributing/index.html)
  * [Report issues](https://github.com/symfony/symfony/issues) and
    [send Pull Requests](https://github.com/symfony/symfony/pulls)
    in the [main Symfony repository](https://github.com/symfony/symfony)
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\EventDispatcher;

/**
 * An EventSubscriber knows itself what events it is interested in.
 * If an EventSubscriber is added to an EventDispatcherInterface, the manager invokes
 * {@link getSubscribedEvents} and registers the subscriber as a listener for all
 * returned events.
 *
 * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
 * @author Jonathan Wage <jonwage@gmail.com>
 * @author Roman Borschel <roman@code-factory.org>
 * @author Bernhard Schussek <bschussek@gmail.com>
 */
interface EventSubscriberInterface
{
    /**
     * Returns an array of event names this subscriber wants to listen to.
     *
     * The array keys are event names and the value can be:
     *
     *  * The method name to call (priority defaults to 0)
     *  * An array composed of the method name to call and the priority
     *  * An array of arrays composed of the method names to call and respective
     *    priorities, or 0 if unset
     *
     * For instance:
     *
     *  * ['eventName' => 'methodName']
     *  * ['eventName' => ['methodName', $priority]]
     *  * ['eventName' => [['methodName1', $priority], ['methodName2']]]
     *
     * The code must not depend on runtime state as it will only be called at compile time.
     * All logic depending on runtime state must be put into the individual methods handling the events.
     *
     * @return array The event names to listen to
     */
    public static function getSubscribedEvents();
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\EventDispatcher;

/**
 * A read-only proxy for an event dispatcher.
 *
 * @author Bernhard Schussek <bschussek@gmail.com>
 */
class ImmutableEventDispatcher implements EventDispatcherInterface
{
    private $dispatcher;

    public function __construct(EventDispatcherInterface $dispatcher)
    {
        $this->dispatcher = LegacyEventDispatcherProxy::decorate($dispatcher);
    }

    /**
     * {@inheritdoc}
     *
     * @param string|null $eventName
     */
    public function dispatch($event/*, string $eventName = null*/)
    {
        $eventName = 1 < \func_num_args() ? func_get_arg(1) : null;

        if (is_scalar($event)) {
            // deprecated
            $swap = $event;
            $event = $eventName ?? new Event();
            $eventName = $swap;
        }

        return $this->dispatcher->dispatch($event, $eventName);
    }

    /**
     * {@inheritdoc}
     */
    public function addListener($eventName, $listener, $priority = 0)
    {
        throw new \BadMethodCallException('Unmodifiable event dispatchers must not be modified.');
    }

    /**
     * {@inheritdoc}
     */
    public function addSubscriber(EventSubscriberInterface $subscriber)
    {
        throw new \BadMethodCallException('Unmodifiable event dispatchers must not be modified.');
    }

    /**
     * {@inheritdoc}
     */
    public function removeListener($eventName, $listener)
    {
        throw new \BadMethodCallException('Unmodifiable event dispatchers must not be modified.');
    }

    /**
     * {@inheritdoc}
     */
    public function removeSubscriber(EventSubscriberInterface $subscriber)
    {
        throw new \BadMethodCallException('Unmodifiable event dispatchers must not be modified.');
    }

    /**
     * {@inheritdoc}
     */
    public function getListeners($eventName = null)
    {
        return $this->dispatcher->getListeners($eventName);
    }

    /**
     * {@inheritdoc}
     */
    public function getListenerPriority($eventName, $listener)
    {
        return $this->dispatcher->getListenerPriority($eventName, $listener);
    }

    /**
     * {@inheritdoc}
     */
    public function hasListeners($eventName = null)
    {
        return $this->dispatcher->hasListeners($eventName);
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\EventDispatcher;

use Psr\EventDispatcher\StoppableEventInterface;
use Symfony\Contracts\EventDispatcher\Event as ContractsEvent;

/**
 * @internal to be removed in 5.0.
 */
final class LegacyEventProxy extends Event
{
    private $event;

    /**
     * @param object $event
     */
    public function __construct($event)
    {
        $this->event = $event;
    }

    /**
     * @return object $event
     */
    public function getEvent()
    {
        return $this->event;
    }

    public function isPropagationStopped(): bool
    {
        if (!$this->event instanceof ContractsEvent && !$this->event instanceof StoppableEventInterface) {
            return false;
        }

        return $this->event->isPropagationStopped();
    }

    public function stopPropagation()
    {
        if (!$this->event instanceof ContractsEvent) {
            return;
        }

        $this->event->stopPropagation();
    }

    public function __call($name, $args)
    {
        return $this->event->{$name}(...$args);
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\EventDispatcher;

/**
 * Event encapsulation class.
 *
 * Encapsulates events thus decoupling the observer from the subject they encapsulate.
 *
 * @author Drak <drak@zikula.org>
 */
class GenericEvent extends Event implements \ArrayAccess, \IteratorAggregate
{
    protected $subject;
    protected $arguments;

    /**
     * Encapsulate an event with $subject and $args.
     *
     * @param mixed $subject   The subject of the event, usually an object or a callable
     * @param array $arguments Arguments to store in the event
     */
    public function __construct($subject = null, array $arguments = [])
    {
        $this->subject = $subject;
        $this->arguments = $arguments;
    }

    /**
     * Getter for subject property.
     *
     * @return mixed The observer subject
     */
    public function getSubject()
    {
        return $this->subject;
    }

    /**
     * Get argument by key.
     *
     * @param string $key Key
     *
     * @return mixed Contents of array key
     *
     * @throws \InvalidArgumentException if key is not found
     */
    public function getArgument($key)
    {
        if ($this->hasArgument($key)) {
            return $this->arguments[$key];
        }

        throw new \InvalidArgumentException(sprintf('Argument "%s" not found.', $key));
    }

    /**
     * Add argument to event.
     *
     * @param string $key   Argument name
     * @param mixed  $value Value
     *
     * @return $this
     */
    public function setArgument($key, $value)
    {
        $this->arguments[$key] = $value;

        return $this;
    }

    /**
     * Getter for all arguments.
     *
     * @return array
     */
    public function getArguments()
    {
        return $this->arguments;
    }

    /**
     * Set args property.
     *
     * @param array $args Arguments
     *
     * @return $this
     */
    public function setArguments(array $args = [])
    {
        $this->arguments = $args;

        return $this;
    }

    /**
     * Has argument.
     *
     * @param string $key Key of arguments array
     *
     * @return bool
     */
    public function hasArgument($key)
    {
        return \array_key_exists($key, $this->arguments);
    }

    /**
     * ArrayAccess for argument getter.
     *
     * @param string $key Array key
     *
     * @return mixed
     *
     * @throws \InvalidArgumentException if key does not exist in $this->args
     */
    public function offsetGet($key)
    {
        return $this->getArgument($key);
    }

    /**
     * ArrayAccess for argument setter.
     *
     * @param string $key   Array key to set
     * @param mixed  $value Value
     */
    public function offsetSet($key, $value)
    {
        $this->setArgument($key, $value);
    }

    /**
     * ArrayAccess for unset argument.
     *
     * @param string $key Array key
     */
    public function offsetUnset($key)
    {
        if ($this->hasArgument($key)) {
            unset($this->arguments[$key]);
        }
    }

    /**
     * ArrayAccess has argument.
     *
     * @param string $key Array key
     *
     * @return bool
     */
    public function offsetExists($key)
    {
        return $this->hasArgument($key);
    }

    /**
     * IteratorAggregate for iterating over the object like an array.
     *
     * @return \ArrayIterator
     */
    public function getIterator()
    {
        return new \ArrayIterator($this->arguments);
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\EventDispatcher\DependencyInjection;

use Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument;
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
use Symfony\Component\DependencyInjection\Reference;
use Symfony\Component\EventDispatcher\Event as LegacyEvent;
use Symfony\Component\EventDispatcher\EventDispatcher;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Contracts\EventDispatcher\Event;

/**
 * Compiler pass to register tagged services for an event dispatcher.
 */
class RegisterListenersPass implements CompilerPassInterface
{
    protected $dispatcherService;
    protected $listenerTag;
    protected $subscriberTag;
    protected $eventAliasesParameter;

    private $hotPathEvents = [];
    private $hotPathTagName;

    public function __construct(string $dispatcherService = 'event_dispatcher', string $listenerTag = 'kernel.event_listener', string $subscriberTag = 'kernel.event_subscriber', string $eventAliasesParameter = 'event_dispatcher.event_aliases')
    {
        $this->dispatcherService = $dispatcherService;
        $this->listenerTag = $listenerTag;
        $this->subscriberTag = $subscriberTag;
        $this->eventAliasesParameter = $eventAliasesParameter;
    }

    public function setHotPathEvents(array $hotPathEvents, $tagName = 'container.hot_path')
    {
        $this->hotPathEvents = array_flip($hotPathEvents);
        $this->hotPathTagName = $tagName;

        return $this;
    }

    public function process(ContainerBuilder $container)
    {
        if (!$container->hasDefinition($this->dispatcherService) && !$container->hasAlias($this->dispatcherService)) {
            return;
        }

        $aliases = [];

        if ($container->hasParameter($this->eventAliasesParameter)) {
            $aliases = $container->getParameter($this->eventAliasesParameter);
        }

        $definition = $container->findDefinition($this->dispatcherService);

        foreach ($container->findTaggedServiceIds($this->listenerTag, true) as $id => $events) {
            foreach ($events as $event) {
                $priority = isset($event['priority']) ? $event['priority'] : 0;

                if (!isset($event['event'])) {
                    if ($container->getDefinition($id)->hasTag($this->subscriberTag)) {
                        continue;
                    }

                    $event['method'] = $event['method'] ?? '__invoke';
                    $event['event'] = $this->getEventFromTypeDeclaration($container, $id, $event['method']);
                }

                $event['event'] = $aliases[$event['event']] ?? $event['event'];

                if (!isset($event['method'])) {
                    $event['method'] = 'on'.preg_replace_callback([
                        '/(?<=\b)[a-z]/i',
                        '/[^a-z0-9]/i',
                    ], function ($matches) { return strtoupper($matches[0]); }, $event['event']);
                    $event['method'] = preg_replace('/[^a-z0-9]/i', '', $event['method']);

                    if (null !== ($class = $container->getDefinition($id)->getClass()) && ($r = $container->getReflectionClass($class, false)) && !$r->hasMethod($event['method']) && $r->hasMethod('__invoke')) {
                        $event['method'] = '__invoke';
                    }
                }

                $definition->addMethodCall('addListener', [$event['event'], [new ServiceClosureArgument(new Reference($id)), $event['method']], $priority]);

                if (isset($this->hotPathEvents[$event['event']])) {
                    $container->getDefinition($id)->addTag($this->hotPathTagName);
                }
            }
        }

        $extractingDispatcher = new ExtractingEventDispatcher();

        foreach ($container->findTaggedServiceIds($this->subscriberTag, true) as $id => $attributes) {
            $def = $container->getDefinition($id);

            // We must assume that the class value has been correctly filled, even if the service is created by a factory
            $class = $def->getClass();

            if (!$r = $container->getReflectionClass($class)) {
                throw new InvalidArgumentException(sprintf('Class "%s" used for service "%s" cannot be found.', $class, $id));
            }
            if (!$r->isSubclassOf(EventSubscriberInterface::class)) {
                throw new InvalidArgumentException(sprintf('Service "%s" must implement interface "%s".', $id, EventSubscriberInterface::class));
            }
            $class = $r->name;

            ExtractingEventDispatcher::$aliases = $aliases;
            ExtractingEventDispatcher::$subscriber = $class;
            $extractingDispatcher->addSubscriber($extractingDispatcher);
            foreach ($extractingDispatcher->listeners as $args) {
                $args[1] = [new ServiceClosureArgument(new Reference($id)), $args[1]];
                $definition->addMethodCall('addListener', $args);

                if (isset($this->hotPathEvents[$args[0]])) {
                    $container->getDefinition($id)->addTag($this->hotPathTagName);
                }
            }
            $extractingDispatcher->listeners = [];
            ExtractingEventDispatcher::$aliases = [];
        }
    }

    private function getEventFromTypeDeclaration(ContainerBuilder $container, string $id, string $method): string
    {
        if (
            null === ($class = $container->getDefinition($id)->getClass())
            || !($r = $container->getReflectionClass($class, false))
            || !$r->hasMethod($method)
            || 1 > ($m = $r->getMethod($method))->getNumberOfParameters()
            || !($type = $m->getParameters()[0]->getType())
            || $type->isBuiltin()
            || Event::class === ($name = $type->getName())
            || LegacyEvent::class === $name
        ) {
            throw new InvalidArgumentException(sprintf('Service "%s" must define the "event" attribute on "%s" tags.', $id, $this->listenerTag));
        }

        return $name;
    }
}

/**
 * @internal
 */
class ExtractingEventDispatcher extends EventDispatcher implements EventSubscriberInterface
{
    public $listeners = [];

    public static $aliases = [];
    public static $subscriber;

    public function addListener($eventName, $listener, $priority = 0)
    {
        $this->listeners[] = [$eventName, $listener[1], $priority];
    }

    public static function getSubscribedEvents(): array
    {
        $events = [];

        foreach ([self::$subscriber, 'getSubscribedEvents']() as $eventName => $params) {
            $events[self::$aliases[$eventName] ?? $eventName] = $params;
        }

        return $events;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\EventDispatcher\DependencyInjection;

use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;

/**
 * This pass allows bundles to extend the list of event aliases.
 *
 * @author Alexander M. Turek <me@derrabus.de>
 */
class AddEventAliasesPass implements CompilerPassInterface
{
    private $eventAliases;
    private $eventAliasesParameter;

    public function __construct(array $eventAliases, string $eventAliasesParameter = 'event_dispatcher.event_aliases')
    {
        $this->eventAliases = $eventAliases;
        $this->eventAliasesParameter = $eventAliasesParameter;
    }

    public function process(ContainerBuilder $container): void
    {
        $eventAliases = $container->hasParameter($this->eventAliasesParameter) ? $container->getParameter($this->eventAliasesParameter) : [];

        $container->setParameter(
            $this->eventAliasesParameter,
            array_merge($eventAliases, $this->eventAliases)
        );
    }
}
{
    "name": "symfony/event-dispatcher",
    "type": "library",
    "description": "Symfony EventDispatcher Component",
    "keywords": [],
    "homepage": "https://symfony.com",
    "license": "MIT",
    "authors": [
        {
            "name": "Fabien Potencier",
            "email": "fabien@symfony.com"
        },
        {
            "name": "Symfony Community",
            "homepage": "https://symfony.com/contributors"
        }
    ],
    "require": {
        "php": ">=7.1.3",
        "symfony/event-dispatcher-contracts": "^1.1"
    },
    "require-dev": {
        "symfony/dependency-injection": "^3.4|^4.0|^5.0",
        "symfony/expression-language": "^3.4|^4.0|^5.0",
        "symfony/config": "^3.4|^4.0|^5.0",
        "symfony/http-foundation": "^3.4|^4.0|^5.0",
        "symfony/service-contracts": "^1.1|^2",
        "symfony/stopwatch": "^3.4|^4.0|^5.0",
        "psr/log": "~1.0"
    },
    "conflict": {
        "symfony/dependency-injection": "<3.4"
    },
    "provide": {
        "psr/event-dispatcher-implementation": "1.0",
        "symfony/event-dispatcher-implementation": "1.1"
    },
    "suggest": {
        "symfony/dependency-injection": "",
        "symfony/http-kernel": ""
    },
    "autoload": {
        "psr-4": { "Symfony\\Component\\EventDispatcher\\": "" },
        "exclude-from-classmap": [
            "/Tests/"
        ]
    },
    "minimum-stability": "dev",
    "extra": {
        "branch-alias": {
            "dev-master": "4.4-dev"
        }
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\EventDispatcher\Debug;

use Psr\EventDispatcher\StoppableEventInterface;
use Psr\Log\LoggerInterface;
use Symfony\Component\EventDispatcher\Event;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\EventDispatcher\LegacyEventDispatcherProxy;
use Symfony\Component\EventDispatcher\LegacyEventProxy;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\RequestStack;
use Symfony\Component\Stopwatch\Stopwatch;
use Symfony\Contracts\EventDispatcher\Event as ContractsEvent;

/**
 * Collects some data about event listeners.
 *
 * This event dispatcher delegates the dispatching to another one.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class TraceableEventDispatcher implements TraceableEventDispatcherInterface
{
    protected $logger;
    protected $stopwatch;

    private $callStack;
    private $dispatcher;
    private $wrappedListeners;
    private $orphanedEvents;
    private $requestStack;
    private $currentRequestHash = '';

    public function __construct(EventDispatcherInterface $dispatcher, Stopwatch $stopwatch, LoggerInterface $logger = null, RequestStack $requestStack = null)
    {
        $this->dispatcher = LegacyEventDispatcherProxy::decorate($dispatcher);
        $this->stopwatch = $stopwatch;
        $this->logger = $logger;
        $this->wrappedListeners = [];
        $this->orphanedEvents = [];
        $this->requestStack = $requestStack;
    }

    /**
     * {@inheritdoc}
     */
    public function addListener($eventName, $listener, $priority = 0)
    {
        $this->dispatcher->addListener($eventName, $listener, $priority);
    }

    /**
     * {@inheritdoc}
     */
    public function addSubscriber(EventSubscriberInterface $subscriber)
    {
        $this->dispatcher->addSubscriber($subscriber);
    }

    /**
     * {@inheritdoc}
     */
    public function removeListener($eventName, $listener)
    {
        if (isset($this->wrappedListeners[$eventName])) {
            foreach ($this->wrappedListeners[$eventName] as $index => $wrappedListener) {
                if ($wrappedListener->getWrappedListener() === $listener) {
                    $listener = $wrappedListener;
                    unset($this->wrappedListeners[$eventName][$index]);
                    break;
                }
            }
        }

        return $this->dispatcher->removeListener($eventName, $listener);
    }

    /**
     * {@inheritdoc}
     */
    public function removeSubscriber(EventSubscriberInterface $subscriber)
    {
        return $this->dispatcher->removeSubscriber($subscriber);
    }

    /**
     * {@inheritdoc}
     */
    public function getListeners($eventName = null)
    {
        return $this->dispatcher->getListeners($eventName);
    }

    /**
     * {@inheritdoc}
     */
    public function getListenerPriority($eventName, $listener)
    {
        // we might have wrapped listeners for the event (if called while dispatching)
        // in that case get the priority by wrapper
        if (isset($this->wrappedListeners[$eventName])) {
            foreach ($this->wrappedListeners[$eventName] as $index => $wrappedListener) {
                if ($wrappedListener->getWrappedListener() === $listener) {
                    return $this->dispatcher->getListenerPriority($eventName, $wrappedListener);
                }
            }
        }

        return $this->dispatcher->getListenerPriority($eventName, $listener);
    }

    /**
     * {@inheritdoc}
     */
    public function hasListeners($eventName = null)
    {
        return $this->dispatcher->hasListeners($eventName);
    }

    /**
     * {@inheritdoc}
     *
     * @param string|null $eventName
     */
    public function dispatch($event/*, string $eventName = null*/)
    {
        if (null === $this->callStack) {
            $this->callStack = new \SplObjectStorage();
        }

        $currentRequestHash = $this->currentRequestHash = $this->requestStack && ($request = $this->requestStack->getCurrentRequest()) ? spl_object_hash($request) : '';
        $eventName = 1 < \func_num_args() ? func_get_arg(1) : null;

        if (\is_object($event)) {
            $eventName = $eventName ?? \get_class($event);
        } else {
            @trigger_error(sprintf('Calling the "%s::dispatch()" method with the event name as first argument is deprecated since Symfony 4.3, pass it second and provide the event object first instead.', EventDispatcherInterface::class), E_USER_DEPRECATED);
            $swap = $event;
            $event = $eventName ?? new Event();
            $eventName = $swap;

            if (!$event instanceof Event) {
                throw new \TypeError(sprintf('Argument 1 passed to "%s::dispatch()" must be an instance of "%s", "%s" given.', EventDispatcherInterface::class, Event::class, \is_object($event) ? \get_class($event) : \gettype($event)));
            }
        }

        if (null !== $this->logger && ($event instanceof Event || $event instanceof ContractsEvent || $event instanceof StoppableEventInterface) && $event->isPropagationStopped()) {
            $this->logger->debug(sprintf('The "%s" event is already stopped. No listeners have been called.', $eventName));
        }

        $this->preProcess($eventName);
        try {
            $this->beforeDispatch($eventName, $event);
            try {
                $e = $this->stopwatch->start($eventName, 'section');
                try {
                    $this->dispatcher->dispatch($event, $eventName);
                } finally {
                    if ($e->isStarted()) {
                        $e->stop();
                    }
                }
            } finally {
                $this->afterDispatch($eventName, $event);
            }
        } finally {
            $this->currentRequestHash = $currentRequestHash;
            $this->postProcess($eventName);
        }

        return $event;
    }

    /**
     * {@inheritdoc}
     *
     * @param Request|null $request The request to get listeners for
     */
    public function getCalledListeners(/* Request $request = null */)
    {
        if (null === $this->callStack) {
            return [];
        }

        $hash = 1 <= \func_num_args() && null !== ($request = func_get_arg(0)) ? spl_object_hash($request) : null;
        $called = [];
        foreach ($this->callStack as $listener) {
            list($eventName, $requestHash) = $this->callStack->getInfo();
            if (null === $hash || $hash === $requestHash) {
                $called[] = $listener->getInfo($eventName);
            }
        }

        return $called;
    }

    /**
     * {@inheritdoc}
     *
     * @param Request|null $request The request to get listeners for
     */
    public function getNotCalledListeners(/* Request $request = null */)
    {
        try {
            $allListeners = $this->getListeners();
        } catch (\Exception $e) {
            if (null !== $this->logger) {
                $this->logger->info('An exception was thrown while getting the uncalled listeners.', ['exception' => $e]);
            }

            // unable to retrieve the uncalled listeners
            return [];
        }

        $hash = 1 <= \func_num_args() && null !== ($request = func_get_arg(0)) ? spl_object_hash($request) : null;
        $calledListeners = [];

        if (null !== $this->callStack) {
            foreach ($this->callStack as $calledListener) {
                list(, $requestHash) = $this->callStack->getInfo();

                if (null === $hash || $hash === $requestHash) {
                    $calledListeners[] = $calledListener->getWrappedListener();
                }
            }
        }

        $notCalled = [];
        foreach ($allListeners as $eventName => $listeners) {
            foreach ($listeners as $listener) {
                if (!\in_array($listener, $calledListeners, true)) {
                    if (!$listener instanceof WrappedListener) {
                        $listener = new WrappedListener($listener, null, $this->stopwatch, $this);
                    }
                    $notCalled[] = $listener->getInfo($eventName);
                }
            }
        }

        uasort($notCalled, [$this, 'sortNotCalledListeners']);

        return $notCalled;
    }

    /**
     * @param Request|null $request The request to get orphaned events for
     */
    public function getOrphanedEvents(/* Request $request = null */): array
    {
        if (1 <= \func_num_args() && null !== $request = func_get_arg(0)) {
            return $this->orphanedEvents[spl_object_hash($request)] ?? [];
        }

        if (!$this->orphanedEvents) {
            return [];
        }

        return array_merge(...array_values($this->orphanedEvents));
    }

    public function reset()
    {
        $this->callStack = null;
        $this->orphanedEvents = [];
        $this->currentRequestHash = '';
    }

    /**
     * Proxies all method calls to the original event dispatcher.
     *
     * @param string $method    The method name
     * @param array  $arguments The method arguments
     *
     * @return mixed
     */
    public function __call($method, $arguments)
    {
        return $this->dispatcher->{$method}(...$arguments);
    }

    /**
     * Called before dispatching the event.
     *
     * @param object $event
     */
    protected function beforeDispatch(string $eventName, $event)
    {
        $this->preDispatch($eventName, $event instanceof Event ? $event : new LegacyEventProxy($event));
    }

    /**
     * Called after dispatching the event.
     *
     * @param object $event
     */
    protected function afterDispatch(string $eventName, $event)
    {
        $this->postDispatch($eventName, $event instanceof Event ? $event : new LegacyEventProxy($event));
    }

    /**
     * @deprecated since Symfony 4.3, will be removed in 5.0, use beforeDispatch instead
     */
    protected function preDispatch($eventName, Event $event)
    {
    }

    /**
     * @deprecated since Symfony 4.3, will be removed in 5.0, use afterDispatch instead
     */
    protected function postDispatch($eventName, Event $event)
    {
    }

    private function preProcess(string $eventName)
    {
        if (!$this->dispatcher->hasListeners($eventName)) {
            $this->orphanedEvents[$this->currentRequestHash][] = $eventName;

            return;
        }

        foreach ($this->dispatcher->getListeners($eventName) as $listener) {
            $priority = $this->getListenerPriority($eventName, $listener);
            $wrappedListener = new WrappedListener($listener instanceof WrappedListener ? $listener->getWrappedListener() : $listener, null, $this->stopwatch, $this);
            $this->wrappedListeners[$eventName][] = $wrappedListener;
            $this->dispatcher->removeListener($eventName, $listener);
            $this->dispatcher->addListener($eventName, $wrappedListener, $priority);
            $this->callStack->attach($wrappedListener, [$eventName, $this->currentRequestHash]);
        }
    }

    private function postProcess(string $eventName)
    {
        unset($this->wrappedListeners[$eventName]);
        $skipped = false;
        foreach ($this->dispatcher->getListeners($eventName) as $listener) {
            if (!$listener instanceof WrappedListener) { // #12845: a new listener was added during dispatch.
                continue;
            }
            // Unwrap listener
            $priority = $this->getListenerPriority($eventName, $listener);
            $this->dispatcher->removeListener($eventName, $listener);
            $this->dispatcher->addListener($eventName, $listener->getWrappedListener(), $priority);

            if (null !== $this->logger) {
                $context = ['event' => $eventName, 'listener' => $listener->getPretty()];
            }

            if ($listener->wasCalled()) {
                if (null !== $this->logger) {
                    $this->logger->debug('Notified event "{event}" to listener "{listener}".', $context);
                }
            } else {
                $this->callStack->detach($listener);
            }

            if (null !== $this->logger && $skipped) {
                $this->logger->debug('Listener "{listener}" was not called for event "{event}".', $context);
            }

            if ($listener->stoppedPropagation()) {
                if (null !== $this->logger) {
                    $this->logger->debug('Listener "{listener}" stopped propagation of the event "{event}".', $context);
                }

                $skipped = true;
            }
        }
    }

    private function sortNotCalledListeners(array $a, array $b)
    {
        if (0 !== $cmp = strcmp($a['event'], $b['event'])) {
            return $cmp;
        }

        if (\is_int($a['priority']) && !\is_int($b['priority'])) {
            return 1;
        }

        if (!\is_int($a['priority']) && \is_int($b['priority'])) {
            return -1;
        }

        if ($a['priority'] === $b['priority']) {
            return 0;
        }

        if ($a['priority'] > $b['priority']) {
            return -1;
        }

        return 1;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\EventDispatcher\Debug;

use Psr\EventDispatcher\StoppableEventInterface;
use Symfony\Component\EventDispatcher\Event;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\EventDispatcher\LegacyEventProxy;
use Symfony\Component\Stopwatch\Stopwatch;
use Symfony\Component\VarDumper\Caster\ClassStub;
use Symfony\Contracts\EventDispatcher\Event as ContractsEvent;

/**
 * @author Fabien Potencier <fabien@symfony.com>
 *
 * @final since Symfony 4.3: the "Event" type-hint on __invoke() will be replaced by "object" in 5.0
 */
class WrappedListener
{
    private $listener;
    private $optimizedListener;
    private $name;
    private $called;
    private $stoppedPropagation;
    private $stopwatch;
    private $dispatcher;
    private $pretty;
    private $stub;
    private $priority;
    private static $hasClassStub;

    public function __construct($listener, ?string $name, Stopwatch $stopwatch, EventDispatcherInterface $dispatcher = null)
    {
        $this->listener = $listener;
        $this->optimizedListener = $listener instanceof \Closure ? $listener : (\is_callable($listener) ? \Closure::fromCallable($listener) : null);
        $this->stopwatch = $stopwatch;
        $this->dispatcher = $dispatcher;
        $this->called = false;
        $this->stoppedPropagation = false;

        if (\is_array($listener)) {
            $this->name = \is_object($listener[0]) ? \get_class($listener[0]) : $listener[0];
            $this->pretty = $this->name.'::'.$listener[1];
        } elseif ($listener instanceof \Closure) {
            $r = new \ReflectionFunction($listener);
            if (false !== strpos($r->name, '{closure}')) {
                $this->pretty = $this->name = 'closure';
            } elseif ($class = $r->getClosureScopeClass()) {
                $this->name = $class->name;
                $this->pretty = $this->name.'::'.$r->name;
            } else {
                $this->pretty = $this->name = $r->name;
            }
        } elseif (\is_string($listener)) {
            $this->pretty = $this->name = $listener;
        } else {
            $this->name = \get_class($listener);
            $this->pretty = $this->name.'::__invoke';
        }

        if (null !== $name) {
            $this->name = $name;
        }

        if (null === self::$hasClassStub) {
            self::$hasClassStub = class_exists(ClassStub::class);
        }
    }

    public function getWrappedListener()
    {
        return $this->listener;
    }

    public function wasCalled()
    {
        return $this->called;
    }

    public function stoppedPropagation()
    {
        return $this->stoppedPropagation;
    }

    public function getPretty()
    {
        return $this->pretty;
    }

    public function getInfo($eventName)
    {
        if (null === $this->stub) {
            $this->stub = self::$hasClassStub ? new ClassStub($this->pretty.'()', $this->listener) : $this->pretty.'()';
        }

        return [
            'event' => $eventName,
            'priority' => null !== $this->priority ? $this->priority : (null !== $this->dispatcher ? $this->dispatcher->getListenerPriority($eventName, $this->listener) : null),
            'pretty' => $this->pretty,
            'stub' => $this->stub,
        ];
    }

    public function __invoke(Event $event, $eventName, EventDispatcherInterface $dispatcher)
    {
        if ($event instanceof LegacyEventProxy) {
            $event = $event->getEvent();
        }

        $dispatcher = $this->dispatcher ?: $dispatcher;

        $this->called = true;
        $this->priority = $dispatcher->getListenerPriority($eventName, $this->listener);

        $e = $this->stopwatch->start($this->name, 'event_listener');

        ($this->optimizedListener ?? $this->listener)($event, $eventName, $dispatcher);

        if ($e->isStarted()) {
            $e->stop();
        }

        if (($event instanceof Event || $event instanceof ContractsEvent || $event instanceof StoppableEventInterface) && $event->isPropagationStopped()) {
            $this->stoppedPropagation = true;
        }
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\EventDispatcher\Debug;

use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Contracts\Service\ResetInterface;

/**
 * @deprecated since Symfony 4.1
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
interface TraceableEventDispatcherInterface extends EventDispatcherInterface, ResetInterface
{
    /**
     * Gets the called listeners.
     *
     * @param Request|null $request The request to get listeners for
     *
     * @return array An array of called listeners
     */
    public function getCalledListeners(/* Request $request = null */);

    /**
     * Gets the not called listeners.
     *
     * @param Request|null $request The request to get listeners for
     *
     * @return array An array of not called listeners
     */
    public function getNotCalledListeners(/* Request $request = null */);
}
Copyright (c) 2004-2020 Fabien Potencier

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.
CHANGELOG
=========

4.4.0
-----

 * support for passing a `null` value to `Filesystem::isAbsolutePath()` is deprecated and will be removed in 5.0

4.3.0
-----

 * support for passing arrays to `Filesystem::dumpFile()` is deprecated and will be removed in 5.0
 * support for passing arrays to `Filesystem::appendToFile()` is deprecated and will be removed in 5.0

4.0.0
-----

 * removed `LockHandler`
 * Support for passing relative paths to `Filesystem::makePathRelative()` has been removed.

3.4.0
-----

 * support for passing relative paths to `Filesystem::makePathRelative()` is deprecated and will be removed in 4.0

3.3.0
-----

 * added `appendToFile()` to append contents to existing files

3.2.0
-----

 * added `readlink()` as a platform independent method to read links

3.0.0
-----

 * removed `$mode` argument from `Filesystem::dumpFile()`

2.8.0
-----

 * added tempnam() a stream aware version of PHP's native tempnam()

2.6.0
-----

 * added LockHandler

2.3.12
------

 * deprecated dumpFile() file mode argument.

2.3.0
-----

 * added the dumpFile() method to atomically write files

2.2.0
-----

 * added a delete option for the mirror() method

2.1.0
-----

 * 24eb396 : BC Break : mkdir() function now throws exception in case of failure instead of returning Boolean value
 * created the component
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Filesystem;

use Symfony\Component\Filesystem\Exception\FileNotFoundException;
use Symfony\Component\Filesystem\Exception\InvalidArgumentException;
use Symfony\Component\Filesystem\Exception\IOException;

/**
 * Provides basic utility to manipulate the file system.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class Filesystem
{
    private static $lastError;

    /**
     * Copies a file.
     *
     * If the target file is older than the origin file, it's always overwritten.
     * If the target file is newer, it is overwritten only when the
     * $overwriteNewerFiles option is set to true.
     *
     * @param string $originFile          The original filename
     * @param string $targetFile          The target filename
     * @param bool   $overwriteNewerFiles If true, target files newer than origin files are overwritten
     *
     * @throws FileNotFoundException When originFile doesn't exist
     * @throws IOException           When copy fails
     */
    public function copy($originFile, $targetFile, $overwriteNewerFiles = false)
    {
        $originIsLocal = stream_is_local($originFile) || 0 === stripos($originFile, 'file://');
        if ($originIsLocal && !is_file($originFile)) {
            throw new FileNotFoundException(sprintf('Failed to copy "%s" because file does not exist.', $originFile), 0, null, $originFile);
        }

        $this->mkdir(\dirname($targetFile));

        $doCopy = true;
        if (!$overwriteNewerFiles && null === parse_url($originFile, PHP_URL_HOST) && is_file($targetFile)) {
            $doCopy = filemtime($originFile) > filemtime($targetFile);
        }

        if ($doCopy) {
            // https://bugs.php.net/64634
            if (false === $source = @fopen($originFile, 'r')) {
                throw new IOException(sprintf('Failed to copy "%s" to "%s" because source file could not be opened for reading.', $originFile, $targetFile), 0, null, $originFile);
            }

            // Stream context created to allow files overwrite when using FTP stream wrapper - disabled by default
            if (false === $target = @fopen($targetFile, 'w', null, stream_context_create(['ftp' => ['overwrite' => true]]))) {
                throw new IOException(sprintf('Failed to copy "%s" to "%s" because target file could not be opened for writing.', $originFile, $targetFile), 0, null, $originFile);
            }

            $bytesCopied = stream_copy_to_stream($source, $target);
            fclose($source);
            fclose($target);
            unset($source, $target);

            if (!is_file($targetFile)) {
                throw new IOException(sprintf('Failed to copy "%s" to "%s".', $originFile, $targetFile), 0, null, $originFile);
            }

            if ($originIsLocal) {
                // Like `cp`, preserve executable permission bits
                @chmod($targetFile, fileperms($targetFile) | (fileperms($originFile) & 0111));

                if ($bytesCopied !== $bytesOrigin = filesize($originFile)) {
                    throw new IOException(sprintf('Failed to copy the whole content of "%s" to "%s" (%g of %g bytes copied).', $originFile, $targetFile, $bytesCopied, $bytesOrigin), 0, null, $originFile);
                }
            }
        }
    }

    /**
     * Creates a directory recursively.
     *
     * @param string|iterable $dirs The directory path
     * @param int             $mode The directory mode
     *
     * @throws IOException On any directory creation failure
     */
    public function mkdir($dirs, $mode = 0777)
    {
        foreach ($this->toIterable($dirs) as $dir) {
            if (is_dir($dir)) {
                continue;
            }

            if (!self::box('mkdir', $dir, $mode, true)) {
                if (!is_dir($dir)) {
                    // The directory was not created by a concurrent process. Let's throw an exception with a developer friendly error message if we have one
                    if (self::$lastError) {
                        throw new IOException(sprintf('Failed to create "%s": ', $dir).self::$lastError, 0, null, $dir);
                    }
                    throw new IOException(sprintf('Failed to create "%s".', $dir), 0, null, $dir);
                }
            }
        }
    }

    /**
     * Checks the existence of files or directories.
     *
     * @param string|iterable $files A filename, an array of files, or a \Traversable instance to check
     *
     * @return bool true if the file exists, false otherwise
     */
    public function exists($files)
    {
        $maxPathLength = PHP_MAXPATHLEN - 2;

        foreach ($this->toIterable($files) as $file) {
            if (\strlen($file) > $maxPathLength) {
                throw new IOException(sprintf('Could not check if file exist because path length exceeds %d characters.', $maxPathLength), 0, null, $file);
            }

            if (!file_exists($file)) {
                return false;
            }
        }

        return true;
    }

    /**
     * Sets access and modification time of file.
     *
     * @param string|iterable $files A filename, an array of files, or a \Traversable instance to create
     * @param int|null        $time  The touch time as a Unix timestamp, if not supplied the current system time is used
     * @param int|null        $atime The access time as a Unix timestamp, if not supplied the current system time is used
     *
     * @throws IOException When touch fails
     */
    public function touch($files, $time = null, $atime = null)
    {
        foreach ($this->toIterable($files) as $file) {
            $touch = $time ? @touch($file, $time, $atime) : @touch($file);
            if (true !== $touch) {
                throw new IOException(sprintf('Failed to touch "%s".', $file), 0, null, $file);
            }
        }
    }

    /**
     * Removes files or directories.
     *
     * @param string|iterable $files A filename, an array of files, or a \Traversable instance to remove
     *
     * @throws IOException When removal fails
     */
    public function remove($files)
    {
        if ($files instanceof \Traversable) {
            $files = iterator_to_array($files, false);
        } elseif (!\is_array($files)) {
            $files = [$files];
        }
        $files = array_reverse($files);
        foreach ($files as $file) {
            if (is_link($file)) {
                // See https://bugs.php.net/52176
                if (!(self::box('unlink', $file) || '\\' !== \DIRECTORY_SEPARATOR || self::box('rmdir', $file)) && file_exists($file)) {
                    throw new IOException(sprintf('Failed to remove symlink "%s": ', $file).self::$lastError);
                }
            } elseif (is_dir($file)) {
                $this->remove(new \FilesystemIterator($file, \FilesystemIterator::CURRENT_AS_PATHNAME | \FilesystemIterator::SKIP_DOTS));

                if (!self::box('rmdir', $file) && file_exists($file)) {
                    throw new IOException(sprintf('Failed to remove directory "%s": ', $file).self::$lastError);
                }
            } elseif (!self::box('unlink', $file) && file_exists($file)) {
                throw new IOException(sprintf('Failed to remove file "%s": ', $file).self::$lastError);
            }
        }
    }

    /**
     * Change mode for an array of files or directories.
     *
     * @param string|iterable $files     A filename, an array of files, or a \Traversable instance to change mode
     * @param int             $mode      The new mode (octal)
     * @param int             $umask     The mode mask (octal)
     * @param bool            $recursive Whether change the mod recursively or not
     *
     * @throws IOException When the change fails
     */
    public function chmod($files, $mode, $umask = 0000, $recursive = false)
    {
        foreach ($this->toIterable($files) as $file) {
            if (true !== @chmod($file, $mode & ~$umask)) {
                throw new IOException(sprintf('Failed to chmod file "%s".', $file), 0, null, $file);
            }
            if ($recursive && is_dir($file) && !is_link($file)) {
                $this->chmod(new \FilesystemIterator($file), $mode, $umask, true);
            }
        }
    }

    /**
     * Change the owner of an array of files or directories.
     *
     * @param string|iterable $files     A filename, an array of files, or a \Traversable instance to change owner
     * @param string|int      $user      A user name or number
     * @param bool            $recursive Whether change the owner recursively or not
     *
     * @throws IOException When the change fails
     */
    public function chown($files, $user, $recursive = false)
    {
        foreach ($this->toIterable($files) as $file) {
            if ($recursive && is_dir($file) && !is_link($file)) {
                $this->chown(new \FilesystemIterator($file), $user, true);
            }
            if (is_link($file) && \function_exists('lchown')) {
                if (true !== @lchown($file, $user)) {
                    throw new IOException(sprintf('Failed to chown file "%s".', $file), 0, null, $file);
                }
            } else {
                if (true !== @chown($file, $user)) {
                    throw new IOException(sprintf('Failed to chown file "%s".', $file), 0, null, $file);
                }
            }
        }
    }

    /**
     * Change the group of an array of files or directories.
     *
     * @param string|iterable $files     A filename, an array of files, or a \Traversable instance to change group
     * @param string|int      $group     A group name or number
     * @param bool            $recursive Whether change the group recursively or not
     *
     * @throws IOException When the change fails
     */
    public function chgrp($files, $group, $recursive = false)
    {
        foreach ($this->toIterable($files) as $file) {
            if ($recursive && is_dir($file) && !is_link($file)) {
                $this->chgrp(new \FilesystemIterator($file), $group, true);
            }
            if (is_link($file) && \function_exists('lchgrp')) {
                if (true !== @lchgrp($file, $group)) {
                    throw new IOException(sprintf('Failed to chgrp file "%s".', $file), 0, null, $file);
                }
            } else {
                if (true !== @chgrp($file, $group)) {
                    throw new IOException(sprintf('Failed to chgrp file "%s".', $file), 0, null, $file);
                }
            }
        }
    }

    /**
     * Renames a file or a directory.
     *
     * @param string $origin    The origin filename or directory
     * @param string $target    The new filename or directory
     * @param bool   $overwrite Whether to overwrite the target if it already exists
     *
     * @throws IOException When target file or directory already exists
     * @throws IOException When origin cannot be renamed
     */
    public function rename($origin, $target, $overwrite = false)
    {
        // we check that target does not exist
        if (!$overwrite && $this->isReadable($target)) {
            throw new IOException(sprintf('Cannot rename because the target "%s" already exists.', $target), 0, null, $target);
        }

        if (true !== @rename($origin, $target)) {
            if (is_dir($origin)) {
                // See https://bugs.php.net/54097 & https://php.net/rename#113943
                $this->mirror($origin, $target, null, ['override' => $overwrite, 'delete' => $overwrite]);
                $this->remove($origin);

                return;
            }
            throw new IOException(sprintf('Cannot rename "%s" to "%s".', $origin, $target), 0, null, $target);
        }
    }

    /**
     * Tells whether a file exists and is readable.
     *
     * @throws IOException When windows path is longer than 258 characters
     */
    private function isReadable(string $filename): bool
    {
        $maxPathLength = PHP_MAXPATHLEN - 2;

        if (\strlen($filename) > $maxPathLength) {
            throw new IOException(sprintf('Could not check if file is readable because path length exceeds %d characters.', $maxPathLength), 0, null, $filename);
        }

        return is_readable($filename);
    }

    /**
     * Creates a symbolic link or copy a directory.
     *
     * @param string $originDir     The origin directory path
     * @param string $targetDir     The symbolic link name
     * @param bool   $copyOnWindows Whether to copy files if on Windows
     *
     * @throws IOException When symlink fails
     */
    public function symlink($originDir, $targetDir, $copyOnWindows = false)
    {
        if ('\\' === \DIRECTORY_SEPARATOR) {
            $originDir = strtr($originDir, '/', '\\');
            $targetDir = strtr($targetDir, '/', '\\');

            if ($copyOnWindows) {
                $this->mirror($originDir, $targetDir);

                return;
            }
        }

        $this->mkdir(\dirname($targetDir));

        if (is_link($targetDir)) {
            if (readlink($targetDir) === $originDir) {
                return;
            }
            $this->remove($targetDir);
        }

        if (!self::box('symlink', $originDir, $targetDir)) {
            $this->linkException($originDir, $targetDir, 'symbolic');
        }
    }

    /**
     * Creates a hard link, or several hard links to a file.
     *
     * @param string          $originFile  The original file
     * @param string|string[] $targetFiles The target file(s)
     *
     * @throws FileNotFoundException When original file is missing or not a file
     * @throws IOException           When link fails, including if link already exists
     */
    public function hardlink($originFile, $targetFiles)
    {
        if (!$this->exists($originFile)) {
            throw new FileNotFoundException(null, 0, null, $originFile);
        }

        if (!is_file($originFile)) {
            throw new FileNotFoundException(sprintf('Origin file "%s" is not a file.', $originFile));
        }

        foreach ($this->toIterable($targetFiles) as $targetFile) {
            if (is_file($targetFile)) {
                if (fileinode($originFile) === fileinode($targetFile)) {
                    continue;
                }
                $this->remove($targetFile);
            }

            if (!self::box('link', $originFile, $targetFile)) {
                $this->linkException($originFile, $targetFile, 'hard');
            }
        }
    }

    /**
     * @param string $linkType Name of the link type, typically 'symbolic' or 'hard'
     */
    private function linkException(string $origin, string $target, string $linkType)
    {
        if (self::$lastError) {
            if ('\\' === \DIRECTORY_SEPARATOR && false !== strpos(self::$lastError, 'error code(1314)')) {
                throw new IOException(sprintf('Unable to create "%s" link due to error code 1314: \'A required privilege is not held by the client\'. Do you have the required Administrator-rights?', $linkType), 0, null, $target);
            }
        }
        throw new IOException(sprintf('Failed to create "%s" link from "%s" to "%s".', $linkType, $origin, $target), 0, null, $target);
    }

    /**
     * Resolves links in paths.
     *
     * With $canonicalize = false (default)
     *      - if $path does not exist or is not a link, returns null
     *      - if $path is a link, returns the next direct target of the link without considering the existence of the target
     *
     * With $canonicalize = true
     *      - if $path does not exist, returns null
     *      - if $path exists, returns its absolute fully resolved final version
     *
     * @param string $path         A filesystem path
     * @param bool   $canonicalize Whether or not to return a canonicalized path
     *
     * @return string|null
     */
    public function readlink($path, $canonicalize = false)
    {
        if (!$canonicalize && !is_link($path)) {
            return null;
        }

        if ($canonicalize) {
            if (!$this->exists($path)) {
                return null;
            }

            if ('\\' === \DIRECTORY_SEPARATOR) {
                $path = readlink($path);
            }

            return realpath($path);
        }

        if ('\\' === \DIRECTORY_SEPARATOR) {
            return realpath($path);
        }

        return readlink($path);
    }

    /**
     * Given an existing path, convert it to a path relative to a given starting path.
     *
     * @param string $endPath   Absolute path of target
     * @param string $startPath Absolute path where traversal begins
     *
     * @return string Path of target relative to starting path
     */
    public function makePathRelative($endPath, $startPath)
    {
        if (!$this->isAbsolutePath($startPath)) {
            throw new InvalidArgumentException(sprintf('The start path "%s" is not absolute.', $startPath));
        }

        if (!$this->isAbsolutePath($endPath)) {
            throw new InvalidArgumentException(sprintf('The end path "%s" is not absolute.', $endPath));
        }

        // Normalize separators on Windows
        if ('\\' === \DIRECTORY_SEPARATOR) {
            $endPath = str_replace('\\', '/', $endPath);
            $startPath = str_replace('\\', '/', $startPath);
        }

        $splitDriveLetter = function ($path) {
            return (\strlen($path) > 2 && ':' === $path[1] && '/' === $path[2] && ctype_alpha($path[0]))
                ? [substr($path, 2), strtoupper($path[0])]
                : [$path, null];
        };

        $splitPath = function ($path) {
            $result = [];

            foreach (explode('/', trim($path, '/')) as $segment) {
                if ('..' === $segment) {
                    array_pop($result);
                } elseif ('.' !== $segment && '' !== $segment) {
                    $result[] = $segment;
                }
            }

            return $result;
        };

        list($endPath, $endDriveLetter) = $splitDriveLetter($endPath);
        list($startPath, $startDriveLetter) = $splitDriveLetter($startPath);

        $startPathArr = $splitPath($startPath);
        $endPathArr = $splitPath($endPath);

        if ($endDriveLetter && $startDriveLetter && $endDriveLetter != $startDriveLetter) {
            // End path is on another drive, so no relative path exists
            return $endDriveLetter.':/'.($endPathArr ? implode('/', $endPathArr).'/' : '');
        }

        // Find for which directory the common path stops
        $index = 0;
        while (isset($startPathArr[$index]) && isset($endPathArr[$index]) && $startPathArr[$index] === $endPathArr[$index]) {
            ++$index;
        }

        // Determine how deep the start path is relative to the common path (ie, "web/bundles" = 2 levels)
        if (1 === \count($startPathArr) && '' === $startPathArr[0]) {
            $depth = 0;
        } else {
            $depth = \count($startPathArr) - $index;
        }

        // Repeated "../" for each level need to reach the common path
        $traverser = str_repeat('../', $depth);

        $endPathRemainder = implode('/', \array_slice($endPathArr, $index));

        // Construct $endPath from traversing to the common path, then to the remaining $endPath
        $relativePath = $traverser.('' !== $endPathRemainder ? $endPathRemainder.'/' : '');

        return '' === $relativePath ? './' : $relativePath;
    }

    /**
     * Mirrors a directory to another.
     *
     * Copies files and directories from the origin directory into the target directory. By default:
     *
     *  - existing files in the target directory will be overwritten, except if they are newer (see the `override` option)
     *  - files in the target directory that do not exist in the source directory will not be deleted (see the `delete` option)
     *
     * @param string            $originDir The origin directory
     * @param string            $targetDir The target directory
     * @param \Traversable|null $iterator  Iterator that filters which files and directories to copy, if null a recursive iterator is created
     * @param array             $options   An array of boolean options
     *                                     Valid options are:
     *                                     - $options['override'] If true, target files newer than origin files are overwritten (see copy(), defaults to false)
     *                                     - $options['copy_on_windows'] Whether to copy files instead of links on Windows (see symlink(), defaults to false)
     *                                     - $options['delete'] Whether to delete files that are not in the source directory (defaults to false)
     *
     * @throws IOException When file type is unknown
     */
    public function mirror($originDir, $targetDir, \Traversable $iterator = null, $options = [])
    {
        $targetDir = rtrim($targetDir, '/\\');
        $originDir = rtrim($originDir, '/\\');
        $originDirLen = \strlen($originDir);

        if (!$this->exists($originDir)) {
            throw new IOException(sprintf('The origin directory specified "%s" was not found.', $originDir), 0, null, $originDir);
        }

        // Iterate in destination folder to remove obsolete entries
        if ($this->exists($targetDir) && isset($options['delete']) && $options['delete']) {
            $deleteIterator = $iterator;
            if (null === $deleteIterator) {
                $flags = \FilesystemIterator::SKIP_DOTS;
                $deleteIterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($targetDir, $flags), \RecursiveIteratorIterator::CHILD_FIRST);
            }
            $targetDirLen = \strlen($targetDir);
            foreach ($deleteIterator as $file) {
                $origin = $originDir.substr($file->getPathname(), $targetDirLen);
                if (!$this->exists($origin)) {
                    $this->remove($file);
                }
            }
        }

        $copyOnWindows = $options['copy_on_windows'] ?? false;

        if (null === $iterator) {
            $flags = $copyOnWindows ? \FilesystemIterator::SKIP_DOTS | \FilesystemIterator::FOLLOW_SYMLINKS : \FilesystemIterator::SKIP_DOTS;
            $iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($originDir, $flags), \RecursiveIteratorIterator::SELF_FIRST);
        }

        $this->mkdir($targetDir);
        $filesCreatedWhileMirroring = [];

        foreach ($iterator as $file) {
            if ($file->getPathname() === $targetDir || $file->getRealPath() === $targetDir || isset($filesCreatedWhileMirroring[$file->getRealPath()])) {
                continue;
            }

            $target = $targetDir.substr($file->getPathname(), $originDirLen);
            $filesCreatedWhileMirroring[$target] = true;

            if (!$copyOnWindows && is_link($file)) {
                $this->symlink($file->getLinkTarget(), $target);
            } elseif (is_dir($file)) {
                $this->mkdir($target);
            } elseif (is_file($file)) {
                $this->copy($file, $target, isset($options['override']) ? $options['override'] : false);
            } else {
                throw new IOException(sprintf('Unable to guess "%s" file type.', $file), 0, null, $file);
            }
        }
    }

    /**
     * Returns whether the file path is an absolute path.
     *
     * @param string $file A file path
     *
     * @return bool
     */
    public function isAbsolutePath($file)
    {
        if (null === $file) {
            @trigger_error(sprintf('Calling "%s()" with a null in the $file argument is deprecated since Symfony 4.4.', __METHOD__), E_USER_DEPRECATED);
        }

        return strspn($file, '/\\', 0, 1)
            || (\strlen($file) > 3 && ctype_alpha($file[0])
                && ':' === $file[1]
                && strspn($file, '/\\', 2, 1)
            )
            || null !== parse_url($file, PHP_URL_SCHEME)
        ;
    }

    /**
     * Creates a temporary file with support for custom stream wrappers.
     *
     * @param string $dir    The directory where the temporary filename will be created
     * @param string $prefix The prefix of the generated temporary filename
     *                       Note: Windows uses only the first three characters of prefix
     *
     * @return string The new temporary filename (with path), or throw an exception on failure
     */
    public function tempnam($dir, $prefix)
    {
        list($scheme, $hierarchy) = $this->getSchemeAndHierarchy($dir);

        // If no scheme or scheme is "file" or "gs" (Google Cloud) create temp file in local filesystem
        if (null === $scheme || 'file' === $scheme || 'gs' === $scheme) {
            $tmpFile = @tempnam($hierarchy, $prefix);

            // If tempnam failed or no scheme return the filename otherwise prepend the scheme
            if (false !== $tmpFile) {
                if (null !== $scheme && 'gs' !== $scheme) {
                    return $scheme.'://'.$tmpFile;
                }

                return $tmpFile;
            }

            throw new IOException('A temporary file could not be created.');
        }

        // Loop until we create a valid temp file or have reached 10 attempts
        for ($i = 0; $i < 10; ++$i) {
            // Create a unique filename
            $tmpFile = $dir.'/'.$prefix.uniqid(mt_rand(), true);

            // Use fopen instead of file_exists as some streams do not support stat
            // Use mode 'x+' to atomically check existence and create to avoid a TOCTOU vulnerability
            $handle = @fopen($tmpFile, 'x+');

            // If unsuccessful restart the loop
            if (false === $handle) {
                continue;
            }

            // Close the file if it was successfully opened
            @fclose($handle);

            return $tmpFile;
        }

        throw new IOException('A temporary file could not be created.');
    }

    /**
     * Atomically dumps content into a file.
     *
     * @param string          $filename The file to be written to
     * @param string|resource $content  The data to write into the file
     *
     * @throws IOException if the file cannot be written to
     */
    public function dumpFile($filename, $content)
    {
        if (\is_array($content)) {
            @trigger_error(sprintf('Calling "%s()" with an array in the $content argument is deprecated since Symfony 4.3.', __METHOD__), E_USER_DEPRECATED);
        }

        $dir = \dirname($filename);

        if (!is_dir($dir)) {
            $this->mkdir($dir);
        }

        if (!is_writable($dir)) {
            throw new IOException(sprintf('Unable to write to the "%s" directory.', $dir), 0, null, $dir);
        }

        // Will create a temp file with 0600 access rights
        // when the filesystem supports chmod.
        $tmpFile = $this->tempnam($dir, basename($filename));

        if (false === @file_put_contents($tmpFile, $content)) {
            throw new IOException(sprintf('Failed to write file "%s".', $filename), 0, null, $filename);
        }

        @chmod($tmpFile, file_exists($filename) ? fileperms($filename) : 0666 & ~umask());

        $this->rename($tmpFile, $filename, true);
    }

    /**
     * Appends content to an existing file.
     *
     * @param string          $filename The file to which to append content
     * @param string|resource $content  The content to append
     *
     * @throws IOException If the file is not writable
     */
    public function appendToFile($filename, $content)
    {
        if (\is_array($content)) {
            @trigger_error(sprintf('Calling "%s()" with an array in the $content argument is deprecated since Symfony 4.3.', __METHOD__), E_USER_DEPRECATED);
        }

        $dir = \dirname($filename);

        if (!is_dir($dir)) {
            $this->mkdir($dir);
        }

        if (!is_writable($dir)) {
            throw new IOException(sprintf('Unable to write to the "%s" directory.', $dir), 0, null, $dir);
        }

        if (false === @file_put_contents($filename, $content, FILE_APPEND)) {
            throw new IOException(sprintf('Failed to write file "%s".', $filename), 0, null, $filename);
        }
    }

    private function toIterable($files): iterable
    {
        return \is_array($files) || $files instanceof \Traversable ? $files : [$files];
    }

    /**
     * Gets a 2-tuple of scheme (may be null) and hierarchical part of a filename (e.g. file:///tmp -> [file, tmp]).
     */
    private function getSchemeAndHierarchy(string $filename): array
    {
        $components = explode('://', $filename, 2);

        return 2 === \count($components) ? [$components[0], $components[1]] : [null, $components[0]];
    }

    /**
     * @return mixed
     */
    private static function box(callable $func)
    {
        self::$lastError = null;
        set_error_handler(__CLASS__.'::handleError');
        try {
            $result = $func(...\array_slice(\func_get_args(), 1));
            restore_error_handler();

            return $result;
        } catch (\Throwable $e) {
        }
        restore_error_handler();

        throw $e;
    }

    /**
     * @internal
     */
    public static function handleError($type, $msg)
    {
        self::$lastError = $msg;
    }
}
Filesystem Component
====================

The Filesystem component provides basic utilities for the filesystem.

Resources
---------

  * [Documentation](https://symfony.com/doc/current/components/filesystem.html)
  * [Contributing](https://symfony.com/doc/current/contributing/index.html)
  * [Report issues](https://github.com/symfony/symfony/issues) and
    [send Pull Requests](https://github.com/symfony/symfony/pulls)
    in the [main Symfony repository](https://github.com/symfony/symfony)
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Filesystem\Exception;

/**
 * IOException interface for file and input/output stream related exceptions thrown by the component.
 *
 * @author Christian Gärtner <christiangaertner.film@googlemail.com>
 */
interface IOExceptionInterface extends ExceptionInterface
{
    /**
     * Returns the associated path for the exception.
     *
     * @return string|null The path
     */
    public function getPath();
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Filesystem\Exception;

/**
 * Exception interface for all exceptions thrown by the component.
 *
 * @author Romain Neutron <imprec@gmail.com>
 */
interface ExceptionInterface extends \Throwable
{
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Filesystem\Exception;

/**
 * Exception class thrown when a filesystem operation failure happens.
 *
 * @author Romain Neutron <imprec@gmail.com>
 * @author Christian Gärtner <christiangaertner.film@googlemail.com>
 * @author Fabien Potencier <fabien@symfony.com>
 */
class IOException extends \RuntimeException implements IOExceptionInterface
{
    private $path;

    public function __construct(string $message, int $code = 0, \Throwable $previous = null, string $path = null)
    {
        $this->path = $path;

        parent::__construct($message, $code, $previous);
    }

    /**
     * {@inheritdoc}
     */
    public function getPath()
    {
        return $this->path;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Filesystem\Exception;

/**
 * @author Christian Flothmann <christian.flothmann@sensiolabs.de>
 */
class InvalidArgumentException extends \InvalidArgumentException implements ExceptionInterface
{
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Filesystem\Exception;

/**
 * Exception class thrown when a file couldn't be found.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 * @author Christian Gärtner <christiangaertner.film@googlemail.com>
 */
class FileNotFoundException extends IOException
{
    public function __construct(string $message = null, int $code = 0, \Throwable $previous = null, string $path = null)
    {
        if (null === $message) {
            if (null === $path) {
                $message = 'File could not be found.';
            } else {
                $message = sprintf('File "%s" could not be found.', $path);
            }
        }

        parent::__construct($message, $code, $previous, $path);
    }
}
{
    "name": "symfony/filesystem",
    "type": "library",
    "description": "Symfony Filesystem Component",
    "keywords": [],
    "homepage": "https://symfony.com",
    "license": "MIT",
    "authors": [
        {
            "name": "Fabien Potencier",
            "email": "fabien@symfony.com"
        },
        {
            "name": "Symfony Community",
            "homepage": "https://symfony.com/contributors"
        }
    ],
    "require": {
        "php": ">=7.1.3",
        "symfony/polyfill-ctype": "~1.8"
    },
    "autoload": {
        "psr-4": { "Symfony\\Component\\Filesystem\\": "" },
        "exclude-from-classmap": [
            "/Tests/"
        ]
    },
    "minimum-stability": "dev",
    "extra": {
        "branch-alias": {
            "dev-master": "4.4-dev"
        }
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\OptionsResolver;

use Symfony\Component\OptionsResolver\Exception\AccessException;

final class OptionConfigurator
{
    private $name;
    private $resolver;

    public function __construct(string $name, OptionsResolver $resolver)
    {
        $this->name = $name;
        $this->resolver = $resolver;
        $this->resolver->setDefined($name);
    }

    /**
     * Adds allowed types for this option.
     *
     * @param string ...$types One or more accepted types
     *
     * @return $this
     *
     * @throws AccessException If called from a lazy option or normalizer
     */
    public function allowedTypes(string ...$types): self
    {
        $this->resolver->setAllowedTypes($this->name, $types);

        return $this;
    }

    /**
     * Sets allowed values for this option.
     *
     * @param mixed ...$values One or more acceptable values/closures
     *
     * @return $this
     *
     * @throws AccessException If called from a lazy option or normalizer
     */
    public function allowedValues(...$values): self
    {
        $this->resolver->setAllowedValues($this->name, $values);

        return $this;
    }

    /**
     * Sets the default value for this option.
     *
     * @param mixed $value The default value of the option
     *
     * @return $this
     *
     * @throws AccessException If called from a lazy option or normalizer
     */
    public function default($value): self
    {
        $this->resolver->setDefault($this->name, $value);

        return $this;
    }

    /**
     * Defines an option configurator with the given name.
     */
    public function define(string $option): self
    {
        return $this->resolver->define($option);
    }

    /**
     * Marks this option as deprecated.
     *
     * @param string          $package The name of the composer package that is triggering the deprecation
     * @param string          $version The version of the package that introduced the deprecation
     * @param string|\Closure $message The deprecation message to use
     *
     * @return $this
     */
    public function deprecated(string $package, string $version, $message = 'The option "%name%" is deprecated.'): self
    {
        $this->resolver->setDeprecated($this->name, $package, $version, $message);

        return $this;
    }

    /**
     * Sets the normalizer for this option.
     *
     * @param \Closure $normalizer The normalizer
     *
     * @return $this
     *
     * @throws AccessException If called from a lazy option or normalizer
     */
    public function normalize(\Closure $normalizer): self
    {
        $this->resolver->setNormalizer($this->name, $normalizer);

        return $this;
    }

    /**
     * Marks this option as required.
     *
     * @return $this
     *
     * @throws AccessException If called from a lazy option or normalizer
     */
    public function required(): self
    {
        $this->resolver->setRequired($this->name);

        return $this;
    }

    /**
     * Sets an info message for an option.
     *
     * @return $this
     *
     * @throws AccessException If called from a lazy option or normalizer
     */
    public function info(string $info): self
    {
        $this->resolver->setInfo($this->name, $info);

        return $this;
    }
}
Copyright (c) 2004-2020 Fabien Potencier

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.
CHANGELOG
=========

5.1.0
-----

 * added fluent configuration of options using `OptionResolver::define()`
 * added `setInfo()` and `getInfo()` methods
 * updated the signature of method `OptionsResolver::setDeprecated()` to `OptionsResolver::setDeprecation(string $option, string $package, string $version, $message)`
 * deprecated `OptionsResolverIntrospector::getDeprecationMessage()`, use `OptionsResolverIntrospector::getDeprecation()` instead

5.0.0
-----

 * added argument `$triggerDeprecation` to `OptionsResolver::offsetGet()`

4.3.0
-----

 * added `OptionsResolver::addNormalizer` method

4.2.0
-----

 * added support for nested options definition
 * added `setDeprecated` and `isDeprecated` methods

3.4.0
-----

 * added `OptionsResolverIntrospector` to inspect options definitions inside an `OptionsResolver` instance
 * added array of types support in allowed types (e.g int[])

2.6.0
-----

 * deprecated OptionsResolverInterface
 * [BC BREAK] removed "array" type hint from OptionsResolverInterface methods
   setRequired(), setAllowedValues(), addAllowedValues(), setAllowedTypes() and
   addAllowedTypes()
 * added OptionsResolver::setDefault()
 * added OptionsResolver::hasDefault()
 * added OptionsResolver::setNormalizer()
 * added OptionsResolver::isRequired()
 * added OptionsResolver::getRequiredOptions()
 * added OptionsResolver::isMissing()
 * added OptionsResolver::getMissingOptions()
 * added OptionsResolver::setDefined()
 * added OptionsResolver::isDefined()
 * added OptionsResolver::getDefinedOptions()
 * added OptionsResolver::remove()
 * added OptionsResolver::clear()
 * deprecated OptionsResolver::replaceDefaults()
 * deprecated OptionsResolver::setOptional() in favor of setDefined()
 * deprecated OptionsResolver::isKnown() in favor of isDefined()
 * [BC BREAK] OptionsResolver::isRequired() returns true now if a required
   option has a default value set
 * [BC BREAK] merged Options into OptionsResolver and turned Options into an
   interface
 * deprecated Options::overload() (now in OptionsResolver)
 * deprecated Options::set() (now in OptionsResolver)
 * deprecated Options::get() (now in OptionsResolver)
 * deprecated Options::has() (now in OptionsResolver)
 * deprecated Options::replace() (now in OptionsResolver)
 * [BC BREAK] Options::get() (now in OptionsResolver) can only be used within
   lazy option/normalizer closures now
 * [BC BREAK] removed Traversable interface from Options since using within
   lazy option/normalizer closures resulted in exceptions
 * [BC BREAK] removed Options::all() since using within lazy option/normalizer
   closures resulted in exceptions
 * [BC BREAK] OptionDefinitionException now extends LogicException instead of
   RuntimeException
 * [BC BREAK] normalizers are not executed anymore for unset options
 * normalizers are executed after validating the options now
 * [BC BREAK] an UndefinedOptionsException is now thrown instead of an
   InvalidOptionsException when non-existing options are passed
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\OptionsResolver;

use Symfony\Component\OptionsResolver\Exception\AccessException;
use Symfony\Component\OptionsResolver\Exception\InvalidArgumentException;
use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException;
use Symfony\Component\OptionsResolver\Exception\MissingOptionsException;
use Symfony\Component\OptionsResolver\Exception\NoSuchOptionException;
use Symfony\Component\OptionsResolver\Exception\OptionDefinitionException;
use Symfony\Component\OptionsResolver\Exception\UndefinedOptionsException;

/**
 * Validates options and merges them with default values.
 *
 * @author Bernhard Schussek <bschussek@gmail.com>
 * @author Tobias Schultze <http://tobion.de>
 */
class OptionsResolver implements Options
{
    /**
     * The names of all defined options.
     */
    private $defined = [];

    /**
     * The default option values.
     */
    private $defaults = [];

    /**
     * A list of closure for nested options.
     *
     * @var \Closure[][]
     */
    private $nested = [];

    /**
     * The names of required options.
     */
    private $required = [];

    /**
     * The resolved option values.
     */
    private $resolved = [];

    /**
     * A list of normalizer closures.
     *
     * @var \Closure[][]
     */
    private $normalizers = [];

    /**
     * A list of accepted values for each option.
     */
    private $allowedValues = [];

    /**
     * A list of accepted types for each option.
     */
    private $allowedTypes = [];

    /**
     * A list of info messages for each option.
     */
    private $info = [];

    /**
     * A list of closures for evaluating lazy options.
     */
    private $lazy = [];

    /**
     * A list of lazy options whose closure is currently being called.
     *
     * This list helps detecting circular dependencies between lazy options.
     */
    private $calling = [];

    /**
     * A list of deprecated options.
     */
    private $deprecated = [];

    /**
     * The list of options provided by the user.
     */
    private $given = [];

    /**
     * Whether the instance is locked for reading.
     *
     * Once locked, the options cannot be changed anymore. This is
     * necessary in order to avoid inconsistencies during the resolving
     * process. If any option is changed after being read, all evaluated
     * lazy options that depend on this option would become invalid.
     */
    private $locked = false;

    private $parentsOptions = [];

    private static $typeAliases = [
        'boolean' => 'bool',
        'integer' => 'int',
        'double' => 'float',
    ];

    /**
     * Sets the default value of a given option.
     *
     * If the default value should be set based on other options, you can pass
     * a closure with the following signature:
     *
     *     function (Options $options) {
     *         // ...
     *     }
     *
     * The closure will be evaluated when {@link resolve()} is called. The
     * closure has access to the resolved values of other options through the
     * passed {@link Options} instance:
     *
     *     function (Options $options) {
     *         if (isset($options['port'])) {
     *             // ...
     *         }
     *     }
     *
     * If you want to access the previously set default value, add a second
     * argument to the closure's signature:
     *
     *     $options->setDefault('name', 'Default Name');
     *
     *     $options->setDefault('name', function (Options $options, $previousValue) {
     *         // 'Default Name' === $previousValue
     *     });
     *
     * This is mostly useful if the configuration of the {@link Options} object
     * is spread across different locations of your code, such as base and
     * sub-classes.
     *
     * If you want to define nested options, you can pass a closure with the
     * following signature:
     *
     *     $options->setDefault('database', function (OptionsResolver $resolver) {
     *         $resolver->setDefined(['dbname', 'host', 'port', 'user', 'pass']);
     *     }
     *
     * To get access to the parent options, add a second argument to the closure's
     * signature:
     *
     *     function (OptionsResolver $resolver, Options $parent) {
     *         // 'default' === $parent['connection']
     *     }
     *
     * @param string $option The name of the option
     * @param mixed  $value  The default value of the option
     *
     * @return $this
     *
     * @throws AccessException If called from a lazy option or normalizer
     */
    public function setDefault(string $option, $value)
    {
        // Setting is not possible once resolving starts, because then lazy
        // options could manipulate the state of the object, leading to
        // inconsistent results.
        if ($this->locked) {
            throw new AccessException('Default values cannot be set from a lazy option or normalizer.');
        }

        // If an option is a closure that should be evaluated lazily, store it
        // in the "lazy" property.
        if ($value instanceof \Closure) {
            $reflClosure = new \ReflectionFunction($value);
            $params = $reflClosure->getParameters();

            if (isset($params[0]) && Options::class === $this->getParameterClassName($params[0])) {
                // Initialize the option if no previous value exists
                if (!isset($this->defaults[$option])) {
                    $this->defaults[$option] = null;
                }

                // Ignore previous lazy options if the closure has no second parameter
                if (!isset($this->lazy[$option]) || !isset($params[1])) {
                    $this->lazy[$option] = [];
                }

                // Store closure for later evaluation
                $this->lazy[$option][] = $value;
                $this->defined[$option] = true;

                // Make sure the option is processed and is not nested anymore
                unset($this->resolved[$option], $this->nested[$option]);

                return $this;
            }

            if (isset($params[0]) && null !== ($type = $params[0]->getType()) && self::class === $type->getName() && (!isset($params[1]) || (null !== ($type = $params[1]->getType()) && Options::class === $type->getName()))) {
                // Store closure for later evaluation
                $this->nested[$option][] = $value;
                $this->defaults[$option] = [];
                $this->defined[$option] = true;

                // Make sure the option is processed and is not lazy anymore
                unset($this->resolved[$option], $this->lazy[$option]);

                return $this;
            }
        }

        // This option is not lazy nor nested anymore
        unset($this->lazy[$option], $this->nested[$option]);

        // Yet undefined options can be marked as resolved, because we only need
        // to resolve options with lazy closures, normalizers or validation
        // rules, none of which can exist for undefined options
        // If the option was resolved before, update the resolved value
        if (!isset($this->defined[$option]) || \array_key_exists($option, $this->resolved)) {
            $this->resolved[$option] = $value;
        }

        $this->defaults[$option] = $value;
        $this->defined[$option] = true;

        return $this;
    }

    /**
     * Sets a list of default values.
     *
     * @param array $defaults The default values to set
     *
     * @return $this
     *
     * @throws AccessException If called from a lazy option or normalizer
     */
    public function setDefaults(array $defaults)
    {
        foreach ($defaults as $option => $value) {
            $this->setDefault($option, $value);
        }

        return $this;
    }

    /**
     * Returns whether a default value is set for an option.
     *
     * Returns true if {@link setDefault()} was called for this option.
     * An option is also considered set if it was set to null.
     *
     * @param string $option The option name
     *
     * @return bool Whether a default value is set
     */
    public function hasDefault(string $option)
    {
        return \array_key_exists($option, $this->defaults);
    }

    /**
     * Marks one or more options as required.
     *
     * @param string|string[] $optionNames One or more option names
     *
     * @return $this
     *
     * @throws AccessException If called from a lazy option or normalizer
     */
    public function setRequired($optionNames)
    {
        if ($this->locked) {
            throw new AccessException('Options cannot be made required from a lazy option or normalizer.');
        }

        foreach ((array) $optionNames as $option) {
            $this->defined[$option] = true;
            $this->required[$option] = true;
        }

        return $this;
    }

    /**
     * Returns whether an option is required.
     *
     * An option is required if it was passed to {@link setRequired()}.
     *
     * @param string $option The name of the option
     *
     * @return bool Whether the option is required
     */
    public function isRequired(string $option)
    {
        return isset($this->required[$option]);
    }

    /**
     * Returns the names of all required options.
     *
     * @return string[] The names of the required options
     *
     * @see isRequired()
     */
    public function getRequiredOptions()
    {
        return array_keys($this->required);
    }

    /**
     * Returns whether an option is missing a default value.
     *
     * An option is missing if it was passed to {@link setRequired()}, but not
     * to {@link setDefault()}. This option must be passed explicitly to
     * {@link resolve()}, otherwise an exception will be thrown.
     *
     * @param string $option The name of the option
     *
     * @return bool Whether the option is missing
     */
    public function isMissing(string $option)
    {
        return isset($this->required[$option]) && !\array_key_exists($option, $this->defaults);
    }

    /**
     * Returns the names of all options missing a default value.
     *
     * @return string[] The names of the missing options
     *
     * @see isMissing()
     */
    public function getMissingOptions()
    {
        return array_keys(array_diff_key($this->required, $this->defaults));
    }

    /**
     * Defines a valid option name.
     *
     * Defines an option name without setting a default value. The option will
     * be accepted when passed to {@link resolve()}. When not passed, the
     * option will not be included in the resolved options.
     *
     * @param string|string[] $optionNames One or more option names
     *
     * @return $this
     *
     * @throws AccessException If called from a lazy option or normalizer
     */
    public function setDefined($optionNames)
    {
        if ($this->locked) {
            throw new AccessException('Options cannot be defined from a lazy option or normalizer.');
        }

        foreach ((array) $optionNames as $option) {
            $this->defined[$option] = true;
        }

        return $this;
    }

    /**
     * Returns whether an option is defined.
     *
     * Returns true for any option passed to {@link setDefault()},
     * {@link setRequired()} or {@link setDefined()}.
     *
     * @param string $option The option name
     *
     * @return bool Whether the option is defined
     */
    public function isDefined(string $option)
    {
        return isset($this->defined[$option]);
    }

    /**
     * Returns the names of all defined options.
     *
     * @return string[] The names of the defined options
     *
     * @see isDefined()
     */
    public function getDefinedOptions()
    {
        return array_keys($this->defined);
    }

    public function isNested(string $option): bool
    {
        return isset($this->nested[$option]);
    }

    /**
     * Deprecates an option, allowed types or values.
     *
     * Instead of passing the message, you may also pass a closure with the
     * following signature:
     *
     *     function (Options $options, $value): string {
     *         // ...
     *     }
     *
     * The closure receives the value as argument and should return a string.
     * Return an empty string to ignore the option deprecation.
     *
     * The closure is invoked when {@link resolve()} is called. The parameter
     * passed to the closure is the value of the option after validating it
     * and before normalizing it.
     *
     * @param string          $package The name of the composer package that is triggering the deprecation
     * @param string          $version The version of the package that introduced the deprecation
     * @param string|\Closure $message The deprecation message to use
     */
    public function setDeprecated(string $option/*, string $package, string $version, $message = 'The option "%name%" is deprecated.' */): self
    {
        if ($this->locked) {
            throw new AccessException('Options cannot be deprecated from a lazy option or normalizer.');
        }

        if (!isset($this->defined[$option])) {
            throw new UndefinedOptionsException(sprintf('The option "%s" does not exist, defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
        }

        $args = \func_get_args();

        if (\func_num_args() < 3) {
            trigger_deprecation('symfony/options-resolver', '5.1', 'The signature of method "%s()" requires 2 new arguments: "string $package, string $version", not defining them is deprecated.', __METHOD__);

            $message = $args[1] ?? 'The option "%name%" is deprecated.';
            $package = $version = '';
        } else {
            $package = $args[1];
            $version = $args[2];
            $message = $args[3] ?? 'The option "%name%" is deprecated.';
        }

        if (!\is_string($message) && !$message instanceof \Closure) {
            throw new InvalidArgumentException(sprintf('Invalid type for deprecation message argument, expected string or \Closure, but got "%s".', get_debug_type($message)));
        }

        // ignore if empty string
        if ('' === $message) {
            return $this;
        }

        $this->deprecated[$option] = [
            'package' => $package,
            'version' => $version,
            'message' => $message,
        ];

        // Make sure the option is processed
        unset($this->resolved[$option]);

        return $this;
    }

    public function isDeprecated(string $option): bool
    {
        return isset($this->deprecated[$option]);
    }

    /**
     * Sets the normalizer for an option.
     *
     * The normalizer should be a closure with the following signature:
     *
     *     function (Options $options, $value) {
     *         // ...
     *     }
     *
     * The closure is invoked when {@link resolve()} is called. The closure
     * has access to the resolved values of other options through the passed
     * {@link Options} instance.
     *
     * The second parameter passed to the closure is the value of
     * the option.
     *
     * The resolved option value is set to the return value of the closure.
     *
     * @param string   $option     The option name
     * @param \Closure $normalizer The normalizer
     *
     * @return $this
     *
     * @throws UndefinedOptionsException If the option is undefined
     * @throws AccessException           If called from a lazy option or normalizer
     */
    public function setNormalizer(string $option, \Closure $normalizer)
    {
        if ($this->locked) {
            throw new AccessException('Normalizers cannot be set from a lazy option or normalizer.');
        }

        if (!isset($this->defined[$option])) {
            throw new UndefinedOptionsException(sprintf('The option "%s" does not exist. Defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
        }

        $this->normalizers[$option] = [$normalizer];

        // Make sure the option is processed
        unset($this->resolved[$option]);

        return $this;
    }

    /**
     * Adds a normalizer for an option.
     *
     * The normalizer should be a closure with the following signature:
     *
     *     function (Options $options, $value): mixed {
     *         // ...
     *     }
     *
     * The closure is invoked when {@link resolve()} is called. The closure
     * has access to the resolved values of other options through the passed
     * {@link Options} instance.
     *
     * The second parameter passed to the closure is the value of
     * the option.
     *
     * The resolved option value is set to the return value of the closure.
     *
     * @param string   $option       The option name
     * @param \Closure $normalizer   The normalizer
     * @param bool     $forcePrepend If set to true, prepend instead of appending
     *
     * @return $this
     *
     * @throws UndefinedOptionsException If the option is undefined
     * @throws AccessException           If called from a lazy option or normalizer
     */
    public function addNormalizer(string $option, \Closure $normalizer, bool $forcePrepend = false): self
    {
        if ($this->locked) {
            throw new AccessException('Normalizers cannot be set from a lazy option or normalizer.');
        }

        if (!isset($this->defined[$option])) {
            throw new UndefinedOptionsException(sprintf('The option "%s" does not exist. Defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
        }

        if ($forcePrepend) {
            array_unshift($this->normalizers[$option], $normalizer);
        } else {
            $this->normalizers[$option][] = $normalizer;
        }

        // Make sure the option is processed
        unset($this->resolved[$option]);

        return $this;
    }

    /**
     * Sets allowed values for an option.
     *
     * Instead of passing values, you may also pass a closures with the
     * following signature:
     *
     *     function ($value) {
     *         // return true or false
     *     }
     *
     * The closure receives the value as argument and should return true to
     * accept the value and false to reject the value.
     *
     * @param string $option        The option name
     * @param mixed  $allowedValues One or more acceptable values/closures
     *
     * @return $this
     *
     * @throws UndefinedOptionsException If the option is undefined
     * @throws AccessException           If called from a lazy option or normalizer
     */
    public function setAllowedValues(string $option, $allowedValues)
    {
        if ($this->locked) {
            throw new AccessException('Allowed values cannot be set from a lazy option or normalizer.');
        }

        if (!isset($this->defined[$option])) {
            throw new UndefinedOptionsException(sprintf('The option "%s" does not exist. Defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
        }

        $this->allowedValues[$option] = \is_array($allowedValues) ? $allowedValues : [$allowedValues];

        // Make sure the option is processed
        unset($this->resolved[$option]);

        return $this;
    }

    /**
     * Adds allowed values for an option.
     *
     * The values are merged with the allowed values defined previously.
     *
     * Instead of passing values, you may also pass a closures with the
     * following signature:
     *
     *     function ($value) {
     *         // return true or false
     *     }
     *
     * The closure receives the value as argument and should return true to
     * accept the value and false to reject the value.
     *
     * @param string $option        The option name
     * @param mixed  $allowedValues One or more acceptable values/closures
     *
     * @return $this
     *
     * @throws UndefinedOptionsException If the option is undefined
     * @throws AccessException           If called from a lazy option or normalizer
     */
    public function addAllowedValues(string $option, $allowedValues)
    {
        if ($this->locked) {
            throw new AccessException('Allowed values cannot be added from a lazy option or normalizer.');
        }

        if (!isset($this->defined[$option])) {
            throw new UndefinedOptionsException(sprintf('The option "%s" does not exist. Defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
        }

        if (!\is_array($allowedValues)) {
            $allowedValues = [$allowedValues];
        }

        if (!isset($this->allowedValues[$option])) {
            $this->allowedValues[$option] = $allowedValues;
        } else {
            $this->allowedValues[$option] = array_merge($this->allowedValues[$option], $allowedValues);
        }

        // Make sure the option is processed
        unset($this->resolved[$option]);

        return $this;
    }

    /**
     * Sets allowed types for an option.
     *
     * Any type for which a corresponding is_<type>() function exists is
     * acceptable. Additionally, fully-qualified class or interface names may
     * be passed.
     *
     * @param string          $option       The option name
     * @param string|string[] $allowedTypes One or more accepted types
     *
     * @return $this
     *
     * @throws UndefinedOptionsException If the option is undefined
     * @throws AccessException           If called from a lazy option or normalizer
     */
    public function setAllowedTypes(string $option, $allowedTypes)
    {
        if ($this->locked) {
            throw new AccessException('Allowed types cannot be set from a lazy option or normalizer.');
        }

        if (!isset($this->defined[$option])) {
            throw new UndefinedOptionsException(sprintf('The option "%s" does not exist. Defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
        }

        $this->allowedTypes[$option] = (array) $allowedTypes;

        // Make sure the option is processed
        unset($this->resolved[$option]);

        return $this;
    }

    /**
     * Adds allowed types for an option.
     *
     * The types are merged with the allowed types defined previously.
     *
     * Any type for which a corresponding is_<type>() function exists is
     * acceptable. Additionally, fully-qualified class or interface names may
     * be passed.
     *
     * @param string          $option       The option name
     * @param string|string[] $allowedTypes One or more accepted types
     *
     * @return $this
     *
     * @throws UndefinedOptionsException If the option is undefined
     * @throws AccessException           If called from a lazy option or normalizer
     */
    public function addAllowedTypes(string $option, $allowedTypes)
    {
        if ($this->locked) {
            throw new AccessException('Allowed types cannot be added from a lazy option or normalizer.');
        }

        if (!isset($this->defined[$option])) {
            throw new UndefinedOptionsException(sprintf('The option "%s" does not exist. Defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
        }

        if (!isset($this->allowedTypes[$option])) {
            $this->allowedTypes[$option] = (array) $allowedTypes;
        } else {
            $this->allowedTypes[$option] = array_merge($this->allowedTypes[$option], (array) $allowedTypes);
        }

        // Make sure the option is processed
        unset($this->resolved[$option]);

        return $this;
    }

    /**
     * Defines an option configurator with the given name.
     */
    public function define(string $option): OptionConfigurator
    {
        if (isset($this->defined[$option])) {
            throw new OptionDefinitionException(sprintf('The option "%s" is already defined.', $option));
        }

        return new OptionConfigurator($option, $this);
    }

    /**
     * Sets an info message for an option.
     *
     * @return $this
     *
     * @throws UndefinedOptionsException If the option is undefined
     * @throws AccessException           If called from a lazy option or normalizer
     */
    public function setInfo(string $option, string $info): self
    {
        if ($this->locked) {
            throw new AccessException('The Info message cannot be set from a lazy option or normalizer.');
        }

        if (!isset($this->defined[$option])) {
            throw new UndefinedOptionsException(sprintf('The option "%s" does not exist. Defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
        }

        $this->info[$option] = $info;

        return $this;
    }

    /**
     * Gets the info message for an option.
     */
    public function getInfo(string $option): ?string
    {
        if (!isset($this->defined[$option])) {
            throw new UndefinedOptionsException(sprintf('The option "%s" does not exist. Defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
        }

        return $this->info[$option] ?? null;
    }

    /**
     * Removes the option with the given name.
     *
     * Undefined options are ignored.
     *
     * @param string|string[] $optionNames One or more option names
     *
     * @return $this
     *
     * @throws AccessException If called from a lazy option or normalizer
     */
    public function remove($optionNames)
    {
        if ($this->locked) {
            throw new AccessException('Options cannot be removed from a lazy option or normalizer.');
        }

        foreach ((array) $optionNames as $option) {
            unset($this->defined[$option], $this->defaults[$option], $this->required[$option], $this->resolved[$option]);
            unset($this->lazy[$option], $this->normalizers[$option], $this->allowedTypes[$option], $this->allowedValues[$option], $this->info[$option]);
        }

        return $this;
    }

    /**
     * Removes all options.
     *
     * @return $this
     *
     * @throws AccessException If called from a lazy option or normalizer
     */
    public function clear()
    {
        if ($this->locked) {
            throw new AccessException('Options cannot be cleared from a lazy option or normalizer.');
        }

        $this->defined = [];
        $this->defaults = [];
        $this->nested = [];
        $this->required = [];
        $this->resolved = [];
        $this->lazy = [];
        $this->normalizers = [];
        $this->allowedTypes = [];
        $this->allowedValues = [];
        $this->deprecated = [];
        $this->info = [];

        return $this;
    }

    /**
     * Merges options with the default values stored in the container and
     * validates them.
     *
     * Exceptions are thrown if:
     *
     *  - Undefined options are passed;
     *  - Required options are missing;
     *  - Options have invalid types;
     *  - Options have invalid values.
     *
     * @param array $options A map of option names to values
     *
     * @return array The merged and validated options
     *
     * @throws UndefinedOptionsException If an option name is undefined
     * @throws InvalidOptionsException   If an option doesn't fulfill the
     *                                   specified validation rules
     * @throws MissingOptionsException   If a required option is missing
     * @throws OptionDefinitionException If there is a cyclic dependency between
     *                                   lazy options and/or normalizers
     * @throws NoSuchOptionException     If a lazy option reads an unavailable option
     * @throws AccessException           If called from a lazy option or normalizer
     */
    public function resolve(array $options = [])
    {
        if ($this->locked) {
            throw new AccessException('Options cannot be resolved from a lazy option or normalizer.');
        }

        // Allow this method to be called multiple times
        $clone = clone $this;

        // Make sure that no unknown options are passed
        $diff = array_diff_key($options, $clone->defined);

        if (\count($diff) > 0) {
            ksort($clone->defined);
            ksort($diff);

            throw new UndefinedOptionsException(sprintf((\count($diff) > 1 ? 'The options "%s" do not exist.' : 'The option "%s" does not exist.').' Defined options are: "%s".', $this->formatOptions(array_keys($diff)), implode('", "', array_keys($clone->defined))));
        }

        // Override options set by the user
        foreach ($options as $option => $value) {
            $clone->given[$option] = true;
            $clone->defaults[$option] = $value;
            unset($clone->resolved[$option], $clone->lazy[$option]);
        }

        // Check whether any required option is missing
        $diff = array_diff_key($clone->required, $clone->defaults);

        if (\count($diff) > 0) {
            ksort($diff);

            throw new MissingOptionsException(sprintf(\count($diff) > 1 ? 'The required options "%s" are missing.' : 'The required option "%s" is missing.', $this->formatOptions(array_keys($diff))));
        }

        // Lock the container
        $clone->locked = true;

        // Now process the individual options. Use offsetGet(), which resolves
        // the option itself and any options that the option depends on
        foreach ($clone->defaults as $option => $_) {
            $clone->offsetGet($option);
        }

        return $clone->resolved;
    }

    /**
     * Returns the resolved value of an option.
     *
     * @param string $option             The option name
     * @param bool   $triggerDeprecation Whether to trigger the deprecation or not (true by default)
     *
     * @return mixed The option value
     *
     * @throws AccessException           If accessing this method outside of
     *                                   {@link resolve()}
     * @throws NoSuchOptionException     If the option is not set
     * @throws InvalidOptionsException   If the option doesn't fulfill the
     *                                   specified validation rules
     * @throws OptionDefinitionException If there is a cyclic dependency between
     *                                   lazy options and/or normalizers
     */
    public function offsetGet($option, bool $triggerDeprecation = true)
    {
        if (!$this->locked) {
            throw new AccessException('Array access is only supported within closures of lazy options and normalizers.');
        }

        // Shortcut for resolved options
        if (isset($this->resolved[$option]) || \array_key_exists($option, $this->resolved)) {
            if ($triggerDeprecation && isset($this->deprecated[$option]) && (isset($this->given[$option]) || $this->calling) && \is_string($this->deprecated[$option]['message'])) {
                trigger_deprecation($this->deprecated[$option]['package'], $this->deprecated[$option]['version'], strtr($this->deprecated[$option]['message'], ['%name%' => $option]));
            }

            return $this->resolved[$option];
        }

        // Check whether the option is set at all
        if (!isset($this->defaults[$option]) && !\array_key_exists($option, $this->defaults)) {
            if (!isset($this->defined[$option])) {
                throw new NoSuchOptionException(sprintf('The option "%s" does not exist. Defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
            }

            throw new NoSuchOptionException(sprintf('The optional option "%s" has no value set. You should make sure it is set with "isset" before reading it.', $this->formatOptions([$option])));
        }

        $value = $this->defaults[$option];

        // Resolve the option if it is a nested definition
        if (isset($this->nested[$option])) {
            // If the closure is already being called, we have a cyclic dependency
            if (isset($this->calling[$option])) {
                throw new OptionDefinitionException(sprintf('The options "%s" have a cyclic dependency.', $this->formatOptions(array_keys($this->calling))));
            }

            if (!\is_array($value)) {
                throw new InvalidOptionsException(sprintf('The nested option "%s" with value %s is expected to be of type array, but is of type "%s".', $this->formatOptions([$option]), $this->formatValue($value), get_debug_type($value)));
            }

            // The following section must be protected from cyclic calls.
            $this->calling[$option] = true;
            try {
                $resolver = new self();
                $resolver->parentsOptions = $this->parentsOptions;
                $resolver->parentsOptions[] = $option;
                foreach ($this->nested[$option] as $closure) {
                    $closure($resolver, $this);
                }
                $value = $resolver->resolve($value);
            } finally {
                unset($this->calling[$option]);
            }
        }

        // Resolve the option if the default value is lazily evaluated
        if (isset($this->lazy[$option])) {
            // If the closure is already being called, we have a cyclic
            // dependency
            if (isset($this->calling[$option])) {
                throw new OptionDefinitionException(sprintf('The options "%s" have a cyclic dependency.', $this->formatOptions(array_keys($this->calling))));
            }

            // The following section must be protected from cyclic
            // calls. Set $calling for the current $option to detect a cyclic
            // dependency
            // BEGIN
            $this->calling[$option] = true;
            try {
                foreach ($this->lazy[$option] as $closure) {
                    $value = $closure($this, $value);
                }
            } finally {
                unset($this->calling[$option]);
            }
            // END
        }

        // Validate the type of the resolved option
        if (isset($this->allowedTypes[$option])) {
            $valid = true;
            $invalidTypes = [];

            foreach ($this->allowedTypes[$option] as $type) {
                $type = self::$typeAliases[$type] ?? $type;

                if ($valid = $this->verifyTypes($type, $value, $invalidTypes)) {
                    break;
                }
            }

            if (!$valid) {
                $fmtActualValue = $this->formatValue($value);
                $fmtAllowedTypes = implode('" or "', $this->allowedTypes[$option]);
                $fmtProvidedTypes = implode('|', array_keys($invalidTypes));
                $allowedContainsArrayType = \count(array_filter($this->allowedTypes[$option], static function ($item) {
                    return '[]' === substr(self::$typeAliases[$item] ?? $item, -2);
                })) > 0;

                if (\is_array($value) && $allowedContainsArrayType) {
                    throw new InvalidOptionsException(sprintf('The option "%s" with value %s is expected to be of type "%s", but one of the elements is of type "%s".', $this->formatOptions([$option]), $fmtActualValue, $fmtAllowedTypes, $fmtProvidedTypes));
                }

                throw new InvalidOptionsException(sprintf('The option "%s" with value %s is expected to be of type "%s", but is of type "%s".', $this->formatOptions([$option]), $fmtActualValue, $fmtAllowedTypes, $fmtProvidedTypes));
            }
        }

        // Validate the value of the resolved option
        if (isset($this->allowedValues[$option])) {
            $success = false;
            $printableAllowedValues = [];

            foreach ($this->allowedValues[$option] as $allowedValue) {
                if ($allowedValue instanceof \Closure) {
                    if ($allowedValue($value)) {
                        $success = true;
                        break;
                    }

                    // Don't include closures in the exception message
                    continue;
                }

                if ($value === $allowedValue) {
                    $success = true;
                    break;
                }

                $printableAllowedValues[] = $allowedValue;
            }

            if (!$success) {
                $message = sprintf(
                    'The option "%s" with value %s is invalid.',
                    $option,
                    $this->formatValue($value)
                );

                if (\count($printableAllowedValues) > 0) {
                    $message .= sprintf(
                        ' Accepted values are: %s.',
                        $this->formatValues($printableAllowedValues)
                    );
                }

                if (isset($this->info[$option])) {
                    $message .= sprintf(' Info: %s.', $this->info[$option]);
                }

                throw new InvalidOptionsException($message);
            }
        }

        // Check whether the option is deprecated
        // and it is provided by the user or is being called from a lazy evaluation
        if ($triggerDeprecation && isset($this->deprecated[$option]) && (isset($this->given[$option]) || ($this->calling && \is_string($this->deprecated[$option])))) {
            $deprecation = $this->deprecated[$option];
            $message = $this->deprecated[$option]['message'];

            if ($message instanceof \Closure) {
                // If the closure is already being called, we have a cyclic dependency
                if (isset($this->calling[$option])) {
                    throw new OptionDefinitionException(sprintf('The options "%s" have a cyclic dependency.', $this->formatOptions(array_keys($this->calling))));
                }

                $this->calling[$option] = true;
                try {
                    if (!\is_string($message = $message($this, $value))) {
                        throw new InvalidOptionsException(sprintf('Invalid type for deprecation message, expected string but got "%s", return an empty string to ignore.', get_debug_type($message)));
                    }
                } finally {
                    unset($this->calling[$option]);
                }
            }

            if ('' !== $message) {
                trigger_deprecation($deprecation['package'], $deprecation['version'], strtr($message, ['%name%' => $option]));
            }
        }

        // Normalize the validated option
        if (isset($this->normalizers[$option])) {
            // If the closure is already being called, we have a cyclic
            // dependency
            if (isset($this->calling[$option])) {
                throw new OptionDefinitionException(sprintf('The options "%s" have a cyclic dependency.', $this->formatOptions(array_keys($this->calling))));
            }

            // The following section must be protected from cyclic
            // calls. Set $calling for the current $option to detect a cyclic
            // dependency
            // BEGIN
            $this->calling[$option] = true;
            try {
                foreach ($this->normalizers[$option] as $normalizer) {
                    $value = $normalizer($this, $value);
                }
            } finally {
                unset($this->calling[$option]);
            }
            // END
        }

        // Mark as resolved
        $this->resolved[$option] = $value;

        return $value;
    }

    private function verifyTypes(string $type, $value, array &$invalidTypes, int $level = 0): bool
    {
        if (\is_array($value) && '[]' === substr($type, -2)) {
            $type = substr($type, 0, -2);
            $valid = true;

            foreach ($value as $val) {
                if (!$this->verifyTypes($type, $val, $invalidTypes, $level + 1)) {
                    $valid = false;
                }
            }

            return $valid;
        }

        if (('null' === $type && null === $value) || (\function_exists($func = 'is_'.$type) && $func($value)) || $value instanceof $type) {
            return true;
        }

        if (!$invalidTypes || $level > 0) {
            $invalidTypes[get_debug_type($value)] = true;
        }

        return false;
    }

    /**
     * Returns whether a resolved option with the given name exists.
     *
     * @param string $option The option name
     *
     * @return bool Whether the option is set
     *
     * @throws AccessException If accessing this method outside of {@link resolve()}
     *
     * @see \ArrayAccess::offsetExists()
     */
    public function offsetExists($option)
    {
        if (!$this->locked) {
            throw new AccessException('Array access is only supported within closures of lazy options and normalizers.');
        }

        return \array_key_exists($option, $this->defaults);
    }

    /**
     * Not supported.
     *
     * @throws AccessException
     */
    public function offsetSet($option, $value)
    {
        throw new AccessException('Setting options via array access is not supported. Use setDefault() instead.');
    }

    /**
     * Not supported.
     *
     * @throws AccessException
     */
    public function offsetUnset($option)
    {
        throw new AccessException('Removing options via array access is not supported. Use remove() instead.');
    }

    /**
     * Returns the number of set options.
     *
     * This may be only a subset of the defined options.
     *
     * @return int Number of options
     *
     * @throws AccessException If accessing this method outside of {@link resolve()}
     *
     * @see \Countable::count()
     */
    public function count()
    {
        if (!$this->locked) {
            throw new AccessException('Counting is only supported within closures of lazy options and normalizers.');
        }

        return \count($this->defaults);
    }

    /**
     * Returns a string representation of the value.
     *
     * This method returns the equivalent PHP tokens for most scalar types
     * (i.e. "false" for false, "1" for 1 etc.). Strings are always wrapped
     * in double quotes (").
     *
     * @param mixed $value The value to format as string
     */
    private function formatValue($value): string
    {
        if (\is_object($value)) {
            return \get_class($value);
        }

        if (\is_array($value)) {
            return 'array';
        }

        if (\is_string($value)) {
            return '"'.$value.'"';
        }

        if (\is_resource($value)) {
            return 'resource';
        }

        if (null === $value) {
            return 'null';
        }

        if (false === $value) {
            return 'false';
        }

        if (true === $value) {
            return 'true';
        }

        return (string) $value;
    }

    /**
     * Returns a string representation of a list of values.
     *
     * Each of the values is converted to a string using
     * {@link formatValue()}. The values are then concatenated with commas.
     *
     * @see formatValue()
     */
    private function formatValues(array $values): string
    {
        foreach ($values as $key => $value) {
            $values[$key] = $this->formatValue($value);
        }

        return implode(', ', $values);
    }

    private function formatOptions(array $options): string
    {
        if ($this->parentsOptions) {
            $prefix = array_shift($this->parentsOptions);
            if ($this->parentsOptions) {
                $prefix .= sprintf('[%s]', implode('][', $this->parentsOptions));
            }

            $options = array_map(static function (string $option) use ($prefix): string {
                return sprintf('%s[%s]', $prefix, $option);
            }, $options);
        }

        return implode('", "', $options);
    }

    private function getParameterClassName(\ReflectionParameter $parameter): ?string
    {
        if (!($type = $parameter->getType()) || $type->isBuiltin()) {
            return null;
        }

        return $type->getName();
    }
}
OptionsResolver Component
=========================

The OptionsResolver component is `array_replace` on steroids. It allows you to
create an options system with required options, defaults, validation (type,
value), normalization and more.

Resources
---------

  * [Documentation](https://symfony.com/doc/current/components/options_resolver.html)
  * [Contributing](https://symfony.com/doc/current/contributing/index.html)
  * [Report issues](https://github.com/symfony/symfony/issues) and
    [send Pull Requests](https://github.com/symfony/symfony/pulls)
    in the [main Symfony repository](https://github.com/symfony/symfony)
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\OptionsResolver;

/**
 * Contains resolved option values.
 *
 * @author Bernhard Schussek <bschussek@gmail.com>
 * @author Tobias Schultze <http://tobion.de>
 */
interface Options extends \ArrayAccess, \Countable
{
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\OptionsResolver\Exception;

/**
 * Thrown when the value of an option does not match its validation rules.
 *
 * You should make sure a valid value is passed to the option.
 *
 * @author Bernhard Schussek <bschussek@gmail.com>
 */
class InvalidOptionsException extends InvalidArgumentException
{
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\OptionsResolver\Exception;

/**
 * Exception thrown when a required option is missing.
 *
 * Add the option to the passed options array.
 *
 * @author Bernhard Schussek <bschussek@gmail.com>
 */
class MissingOptionsException extends InvalidArgumentException
{
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\OptionsResolver\Exception;

/**
 * Thrown when trying to read an option outside of or write it inside of
 * {@link \Symfony\Component\OptionsResolver\Options::resolve()}.
 *
 * @author Bernhard Schussek <bschussek@gmail.com>
 */
class AccessException extends \LogicException implements ExceptionInterface
{
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\OptionsResolver\Exception;

/**
 * Thrown when two lazy options have a cyclic dependency.
 *
 * @author Bernhard Schussek <bschussek@gmail.com>
 */
class OptionDefinitionException extends \LogicException implements ExceptionInterface
{
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\OptionsResolver\Exception;

/**
 * Marker interface for all exceptions thrown by the OptionsResolver component.
 *
 * @author Bernhard Schussek <bschussek@gmail.com>
 */
interface ExceptionInterface extends \Throwable
{
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\OptionsResolver\Exception;

/**
 * Thrown when an argument is invalid.
 *
 * @author Bernhard Schussek <bschussek@gmail.com>
 */
class InvalidArgumentException extends \InvalidArgumentException implements ExceptionInterface
{
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\OptionsResolver\Exception;

/**
 * Thrown when trying to read an option that has no value set.
 *
 * When accessing optional options from within a lazy option or normalizer you should first
 * check whether the optional option is set. You can do this with `isset($options['optional'])`.
 * In contrast to the {@link UndefinedOptionsException}, this is a runtime exception that can
 * occur when evaluating lazy options.
 *
 * @author Tobias Schultze <http://tobion.de>
 */
class NoSuchOptionException extends \OutOfBoundsException implements ExceptionInterface
{
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\OptionsResolver\Exception;

use Symfony\Component\OptionsResolver\Debug\OptionsResolverIntrospector;

/**
 * Thrown when trying to introspect an option definition property
 * for which no value was configured inside the OptionsResolver instance.
 *
 * @see OptionsResolverIntrospector
 *
 * @author Maxime Steinhausser <maxime.steinhausser@gmail.com>
 */
class NoConfigurationException extends \RuntimeException implements ExceptionInterface
{
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\OptionsResolver\Exception;

/**
 * Exception thrown when an undefined option is passed.
 *
 * You should remove the options in question from your code or define them
 * beforehand.
 *
 * @author Bernhard Schussek <bschussek@gmail.com>
 */
class UndefinedOptionsException extends InvalidArgumentException
{
}
{
    "name": "symfony/options-resolver",
    "type": "library",
    "description": "Symfony OptionsResolver Component",
    "keywords": ["options", "config", "configuration"],
    "homepage": "https://symfony.com",
    "license": "MIT",
    "authors": [
        {
            "name": "Fabien Potencier",
            "email": "fabien@symfony.com"
        },
        {
            "name": "Symfony Community",
            "homepage": "https://symfony.com/contributors"
        }
    ],
    "require": {
        "php": ">=7.2.5",
        "symfony/deprecation-contracts": "^2.1",
        "symfony/polyfill-php80": "^1.15"
    },
    "autoload": {
        "psr-4": { "Symfony\\Component\\OptionsResolver\\": "" },
        "exclude-from-classmap": [
            "/Tests/"
        ]
    },
    "minimum-stability": "dev",
    "extra": {
        "branch-alias": {
            "dev-master": "5.1-dev"
        }
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\OptionsResolver\Debug;

use Symfony\Component\OptionsResolver\Exception\NoConfigurationException;
use Symfony\Component\OptionsResolver\Exception\UndefinedOptionsException;
use Symfony\Component\OptionsResolver\OptionsResolver;

/**
 * @author Maxime Steinhausser <maxime.steinhausser@gmail.com>
 *
 * @final
 */
class OptionsResolverIntrospector
{
    private $get;

    public function __construct(OptionsResolver $optionsResolver)
    {
        $this->get = \Closure::bind(function ($property, $option, $message) {
            /** @var OptionsResolver $this */
            if (!$this->isDefined($option)) {
                throw new UndefinedOptionsException(sprintf('The option "%s" does not exist.', $option));
            }

            if (!\array_key_exists($option, $this->{$property})) {
                throw new NoConfigurationException($message);
            }

            return $this->{$property}[$option];
        }, $optionsResolver, $optionsResolver);
    }

    /**
     * @return mixed
     *
     * @throws NoConfigurationException on no configured value
     */
    public function getDefault(string $option)
    {
        return ($this->get)('defaults', $option, sprintf('No default value was set for the "%s" option.', $option));
    }

    /**
     * @return \Closure[]
     *
     * @throws NoConfigurationException on no configured closures
     */
    public function getLazyClosures(string $option): array
    {
        return ($this->get)('lazy', $option, sprintf('No lazy closures were set for the "%s" option.', $option));
    }

    /**
     * @return string[]
     *
     * @throws NoConfigurationException on no configured types
     */
    public function getAllowedTypes(string $option): array
    {
        return ($this->get)('allowedTypes', $option, sprintf('No allowed types were set for the "%s" option.', $option));
    }

    /**
     * @return mixed[]
     *
     * @throws NoConfigurationException on no configured values
     */
    public function getAllowedValues(string $option): array
    {
        return ($this->get)('allowedValues', $option, sprintf('No allowed values were set for the "%s" option.', $option));
    }

    /**
     * @throws NoConfigurationException on no configured normalizer
     */
    public function getNormalizer(string $option): \Closure
    {
        return current($this->getNormalizers($option));
    }

    /**
     * @throws NoConfigurationException when no normalizer is configured
     */
    public function getNormalizers(string $option): array
    {
        return ($this->get)('normalizers', $option, sprintf('No normalizer was set for the "%s" option.', $option));
    }

    /**
     * @return string|\Closure
     *
     * @throws NoConfigurationException on no configured deprecation
     *
     * @deprecated since Symfony 5.1, use "getDeprecation()" instead.
     */
    public function getDeprecationMessage(string $option)
    {
        trigger_deprecation('symfony/options-resolver', '5.1', 'The "%s()" method is deprecated, use "getDeprecation()" instead.', __METHOD__);

        return $this->getDeprecation($option)['message'];
    }

    /**
     * @throws NoConfigurationException on no configured deprecation
     */
    public function getDeprecation(string $option): array
    {
        return ($this->get)('deprecated', $option, sprintf('No deprecation was set for the "%s" option.', $option));
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Contracts\EventDispatcher;

use Psr\EventDispatcher\EventDispatcherInterface as PsrEventDispatcherInterface;

if (interface_exists(PsrEventDispatcherInterface::class)) {
    /**
     * Allows providing hooks on domain-specific lifecycles by dispatching events.
     */
    interface EventDispatcherInterface extends PsrEventDispatcherInterface
    {
        /**
         * Dispatches an event to all registered listeners.
         *
         * For BC with Symfony 4, the $eventName argument is not declared explicitly on the
         * signature of the method. Implementations that are not bound by this BC constraint
         * MUST declare it explicitly, as allowed by PHP.
         *
         * @param object      $event     The event to pass to the event handlers/listeners
         * @param string|null $eventName The name of the event to dispatch. If not supplied,
         *                               the class of $event should be used instead.
         *
         * @return object The passed $event MUST be returned
         */
        public function dispatch($event/*, string $eventName = null*/);
    }
} else {
    /**
     * Allows providing hooks on domain-specific lifecycles by dispatching events.
     */
    interface EventDispatcherInterface
    {
        /**
         * Dispatches an event to all registered listeners.
         *
         * For BC with Symfony 4, the $eventName argument is not declared explicitly on the
         * signature of the method. Implementations that are not bound by this BC constraint
         * MUST declare it explicitly, as allowed by PHP.
         *
         * @param object      $event     The event to pass to the event handlers/listeners
         * @param string|null $eventName The name of the event to dispatch. If not supplied,
         *                               the class of $event should be used instead.
         *
         * @return object The passed $event MUST be returned
         */
        public function dispatch($event/*, string $eventName = null*/);
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Contracts\EventDispatcher;

use Psr\EventDispatcher\StoppableEventInterface;

if (interface_exists(StoppableEventInterface::class)) {
    /**
     * Event is the base class for classes containing event data.
     *
     * This class contains no event data. It is used by events that do not pass
     * state information to an event handler when an event is raised.
     *
     * You can call the method stopPropagation() to abort the execution of
     * further listeners in your event listener.
     *
     * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
     * @author Jonathan Wage <jonwage@gmail.com>
     * @author Roman Borschel <roman@code-factory.org>
     * @author Bernhard Schussek <bschussek@gmail.com>
     * @author Nicolas Grekas <p@tchwork.com>
     */
    class Event implements StoppableEventInterface
    {
        private $propagationStopped = false;

        /**
         * Returns whether further event listeners should be triggered.
         */
        public function isPropagationStopped(): bool
        {
            return $this->propagationStopped;
        }

        /**
         * Stops the propagation of the event to further event listeners.
         *
         * If multiple event listeners are connected to the same event, no
         * further event listener will be triggered once any trigger calls
         * stopPropagation().
         */
        public function stopPropagation(): void
        {
            $this->propagationStopped = true;
        }
    }
} else {
    /**
     * Event is the base class for classes containing event data.
     *
     * This class contains no event data. It is used by events that do not pass
     * state information to an event handler when an event is raised.
     *
     * You can call the method stopPropagation() to abort the execution of
     * further listeners in your event listener.
     *
     * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
     * @author Jonathan Wage <jonwage@gmail.com>
     * @author Roman Borschel <roman@code-factory.org>
     * @author Bernhard Schussek <bschussek@gmail.com>
     * @author Nicolas Grekas <p@tchwork.com>
     */
    class Event
    {
        private $propagationStopped = false;

        /**
         * Returns whether further event listeners should be triggered.
         */
        public function isPropagationStopped(): bool
        {
            return $this->propagationStopped;
        }

        /**
         * Stops the propagation of the event to further event listeners.
         *
         * If multiple event listeners are connected to the same event, no
         * further event listener will be triggered once any trigger calls
         * stopPropagation().
         */
        public function stopPropagation(): void
        {
            $this->propagationStopped = true;
        }
    }
}
Copyright (c) 2018-2019 Fabien Potencier

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.
Symfony EventDispatcher Contracts
=================================

A set of abstractions extracted out of the Symfony components.

Can be used to build on semantics that the Symfony components proved useful - and
that already have battle tested implementations.

See https://github.com/symfony/contracts/blob/master/README.md for more information.
vendor/
composer.lock
phpunit.xml
{
    "name": "symfony/event-dispatcher-contracts",
    "type": "library",
    "description": "Generic abstractions related to dispatching event",
    "keywords": ["abstractions", "contracts", "decoupling", "interfaces", "interoperability", "standards"],
    "homepage": "https://symfony.com",
    "license": "MIT",
    "authors": [
        {
            "name": "Nicolas Grekas",
            "email": "p@tchwork.com"
        },
        {
            "name": "Symfony Community",
            "homepage": "https://symfony.com/contributors"
        }
    ],
    "require": {
        "php": "^7.1.3"
    },
    "suggest": {
        "psr/event-dispatcher": "",
        "symfony/event-dispatcher-implementation": ""
    },
    "autoload": {
        "psr-4": { "Symfony\\Contracts\\EventDispatcher\\": "" }
    },
    "minimum-stability": "dev",
    "extra": {
        "branch-alias": {
            "dev-master": "1.1-dev"
        }
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Finder;

/**
 * Extends \SplFileInfo to support relative paths.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class SplFileInfo extends \SplFileInfo
{
    private $relativePath;
    private $relativePathname;

    /**
     * @param string $file             The file name
     * @param string $relativePath     The relative path
     * @param string $relativePathname The relative path name
     */
    public function __construct(string $file, string $relativePath, string $relativePathname)
    {
        parent::__construct($file);
        $this->relativePath = $relativePath;
        $this->relativePathname = $relativePathname;
    }

    /**
     * Returns the relative path.
     *
     * This path does not contain the file name.
     *
     * @return string the relative path
     */
    public function getRelativePath()
    {
        return $this->relativePath;
    }

    /**
     * Returns the relative path name.
     *
     * This path contains the file name.
     *
     * @return string the relative path name
     */
    public function getRelativePathname()
    {
        return $this->relativePathname;
    }

    public function getFilenameWithoutExtension(): string
    {
        $filename = $this->getFilename();

        return pathinfo($filename, PATHINFO_FILENAME);
    }

    /**
     * Returns the contents of the file.
     *
     * @return string the contents of the file
     *
     * @throws \RuntimeException
     */
    public function getContents()
    {
        set_error_handler(function ($type, $msg) use (&$error) { $error = $msg; });
        $content = file_get_contents($this->getPathname());
        restore_error_handler();
        if (false === $content) {
            throw new \RuntimeException($error);
        }

        return $content;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Finder\Comparator;

/**
 * NumberComparator compiles a simple comparison to an anonymous
 * subroutine, which you can call with a value to be tested again.
 *
 * Now this would be very pointless, if NumberCompare didn't understand
 * magnitudes.
 *
 * The target value may use magnitudes of kilobytes (k, ki),
 * megabytes (m, mi), or gigabytes (g, gi).  Those suffixed
 * with an i use the appropriate 2**n version in accordance with the
 * IEC standard: http://physics.nist.gov/cuu/Units/binary.html
 *
 * Based on the Perl Number::Compare module.
 *
 * @author    Fabien Potencier <fabien@symfony.com> PHP port
 * @author    Richard Clamp <richardc@unixbeard.net> Perl version
 * @copyright 2004-2005 Fabien Potencier <fabien@symfony.com>
 * @copyright 2002 Richard Clamp <richardc@unixbeard.net>
 *
 * @see http://physics.nist.gov/cuu/Units/binary.html
 */
class NumberComparator extends Comparator
{
    /**
     * @param string|int $test A comparison string or an integer
     *
     * @throws \InvalidArgumentException If the test is not understood
     */
    public function __construct(?string $test)
    {
        if (!preg_match('#^\s*(==|!=|[<>]=?)?\s*([0-9\.]+)\s*([kmg]i?)?\s*$#i', $test, $matches)) {
            throw new \InvalidArgumentException(sprintf('Don\'t understand "%s" as a number test.', $test));
        }

        $target = $matches[2];
        if (!is_numeric($target)) {
            throw new \InvalidArgumentException(sprintf('Invalid number "%s".', $target));
        }
        if (isset($matches[3])) {
            // magnitude
            switch (strtolower($matches[3])) {
                case 'k':
                    $target *= 1000;
                    break;
                case 'ki':
                    $target *= 1024;
                    break;
                case 'm':
                    $target *= 1000000;
                    break;
                case 'mi':
                    $target *= 1024 * 1024;
                    break;
                case 'g':
                    $target *= 1000000000;
                    break;
                case 'gi':
                    $target *= 1024 * 1024 * 1024;
                    break;
            }
        }

        $this->setTarget($target);
        $this->setOperator(isset($matches[1]) ? $matches[1] : '==');
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Finder\Comparator;

/**
 * Comparator.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class Comparator
{
    private $target;
    private $operator = '==';

    /**
     * Gets the target value.
     *
     * @return string The target value
     */
    public function getTarget()
    {
        return $this->target;
    }

    /**
     * Sets the target value.
     *
     * @param string $target The target value
     */
    public function setTarget($target)
    {
        $this->target = $target;
    }

    /**
     * Gets the comparison operator.
     *
     * @return string The operator
     */
    public function getOperator()
    {
        return $this->operator;
    }

    /**
     * Sets the comparison operator.
     *
     * @param string $operator A valid operator
     *
     * @throws \InvalidArgumentException
     */
    public function setOperator($operator)
    {
        if (!$operator) {
            $operator = '==';
        }

        if (!\in_array($operator, ['>', '<', '>=', '<=', '==', '!='])) {
            throw new \InvalidArgumentException(sprintf('Invalid operator "%s".', $operator));
        }

        $this->operator = $operator;
    }

    /**
     * Tests against the target.
     *
     * @param mixed $test A test value
     *
     * @return bool
     */
    public function test($test)
    {
        switch ($this->operator) {
            case '>':
                return $test > $this->target;
            case '>=':
                return $test >= $this->target;
            case '<':
                return $test < $this->target;
            case '<=':
                return $test <= $this->target;
            case '!=':
                return $test != $this->target;
        }

        return $test == $this->target;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Finder\Comparator;

/**
 * DateCompare compiles date comparisons.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class DateComparator extends Comparator
{
    /**
     * @param string $test A comparison string
     *
     * @throws \InvalidArgumentException If the test is not understood
     */
    public function __construct(string $test)
    {
        if (!preg_match('#^\s*(==|!=|[<>]=?|after|since|before|until)?\s*(.+?)\s*$#i', $test, $matches)) {
            throw new \InvalidArgumentException(sprintf('Don\'t understand "%s" as a date test.', $test));
        }

        try {
            $date = new \DateTime($matches[2]);
            $target = $date->format('U');
        } catch (\Exception $e) {
            throw new \InvalidArgumentException(sprintf('"%s" is not a valid date.', $matches[2]));
        }

        $operator = isset($matches[1]) ? $matches[1] : '==';
        if ('since' === $operator || 'after' === $operator) {
            $operator = '>';
        }

        if ('until' === $operator || 'before' === $operator) {
            $operator = '<';
        }

        $this->setOperator($operator);
        $this->setTarget($target);
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Finder;

use Symfony\Component\Finder\Comparator\DateComparator;
use Symfony\Component\Finder\Comparator\NumberComparator;
use Symfony\Component\Finder\Exception\DirectoryNotFoundException;
use Symfony\Component\Finder\Iterator\CustomFilterIterator;
use Symfony\Component\Finder\Iterator\DateRangeFilterIterator;
use Symfony\Component\Finder\Iterator\DepthRangeFilterIterator;
use Symfony\Component\Finder\Iterator\ExcludeDirectoryFilterIterator;
use Symfony\Component\Finder\Iterator\FilecontentFilterIterator;
use Symfony\Component\Finder\Iterator\FilenameFilterIterator;
use Symfony\Component\Finder\Iterator\SizeRangeFilterIterator;
use Symfony\Component\Finder\Iterator\SortableIterator;

/**
 * Finder allows to build rules to find files and directories.
 *
 * It is a thin wrapper around several specialized iterator classes.
 *
 * All rules may be invoked several times.
 *
 * All methods return the current Finder object to allow chaining:
 *
 *     $finder = Finder::create()->files()->name('*.php')->in(__DIR__);
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class Finder implements \IteratorAggregate, \Countable
{
    const IGNORE_VCS_FILES = 1;
    const IGNORE_DOT_FILES = 2;
    const IGNORE_VCS_IGNORED_FILES = 4;

    private $mode = 0;
    private $names = [];
    private $notNames = [];
    private $exclude = [];
    private $filters = [];
    private $depths = [];
    private $sizes = [];
    private $followLinks = false;
    private $reverseSorting = false;
    private $sort = false;
    private $ignore = 0;
    private $dirs = [];
    private $dates = [];
    private $iterators = [];
    private $contains = [];
    private $notContains = [];
    private $paths = [];
    private $notPaths = [];
    private $ignoreUnreadableDirs = false;

    private static $vcsPatterns = ['.svn', '_svn', 'CVS', '_darcs', '.arch-params', '.monotone', '.bzr', '.git', '.hg'];

    public function __construct()
    {
        $this->ignore = static::IGNORE_VCS_FILES | static::IGNORE_DOT_FILES;
    }

    /**
     * Creates a new Finder.
     *
     * @return static
     */
    public static function create()
    {
        return new static();
    }

    /**
     * Restricts the matching to directories only.
     *
     * @return $this
     */
    public function directories()
    {
        $this->mode = Iterator\FileTypeFilterIterator::ONLY_DIRECTORIES;

        return $this;
    }

    /**
     * Restricts the matching to files only.
     *
     * @return $this
     */
    public function files()
    {
        $this->mode = Iterator\FileTypeFilterIterator::ONLY_FILES;

        return $this;
    }

    /**
     * Adds tests for the directory depth.
     *
     * Usage:
     *
     *     $finder->depth('> 1') // the Finder will start matching at level 1.
     *     $finder->depth('< 3') // the Finder will descend at most 3 levels of directories below the starting point.
     *     $finder->depth(['>= 1', '< 3'])
     *
     * @param string|int|string[]|int[] $levels The depth level expression or an array of depth levels
     *
     * @return $this
     *
     * @see DepthRangeFilterIterator
     * @see NumberComparator
     */
    public function depth($levels)
    {
        foreach ((array) $levels as $level) {
            $this->depths[] = new Comparator\NumberComparator($level);
        }

        return $this;
    }

    /**
     * Adds tests for file dates (last modified).
     *
     * The date must be something that strtotime() is able to parse:
     *
     *     $finder->date('since yesterday');
     *     $finder->date('until 2 days ago');
     *     $finder->date('> now - 2 hours');
     *     $finder->date('>= 2005-10-15');
     *     $finder->date(['>= 2005-10-15', '<= 2006-05-27']);
     *
     * @param string|string[] $dates A date range string or an array of date ranges
     *
     * @return $this
     *
     * @see strtotime
     * @see DateRangeFilterIterator
     * @see DateComparator
     */
    public function date($dates)
    {
        foreach ((array) $dates as $date) {
            $this->dates[] = new Comparator\DateComparator($date);
        }

        return $this;
    }

    /**
     * Adds rules that files must match.
     *
     * You can use patterns (delimited with / sign), globs or simple strings.
     *
     *     $finder->name('*.php')
     *     $finder->name('/\.php$/') // same as above
     *     $finder->name('test.php')
     *     $finder->name(['test.py', 'test.php'])
     *
     * @param string|string[] $patterns A pattern (a regexp, a glob, or a string) or an array of patterns
     *
     * @return $this
     *
     * @see FilenameFilterIterator
     */
    public function name($patterns)
    {
        $this->names = array_merge($this->names, (array) $patterns);

        return $this;
    }

    /**
     * Adds rules that files must not match.
     *
     * @param string|string[] $patterns A pattern (a regexp, a glob, or a string) or an array of patterns
     *
     * @return $this
     *
     * @see FilenameFilterIterator
     */
    public function notName($patterns)
    {
        $this->notNames = array_merge($this->notNames, (array) $patterns);

        return $this;
    }

    /**
     * Adds tests that file contents must match.
     *
     * Strings or PCRE patterns can be used:
     *
     *     $finder->contains('Lorem ipsum')
     *     $finder->contains('/Lorem ipsum/i')
     *     $finder->contains(['dolor', '/ipsum/i'])
     *
     * @param string|string[] $patterns A pattern (string or regexp) or an array of patterns
     *
     * @return $this
     *
     * @see FilecontentFilterIterator
     */
    public function contains($patterns)
    {
        $this->contains = array_merge($this->contains, (array) $patterns);

        return $this;
    }

    /**
     * Adds tests that file contents must not match.
     *
     * Strings or PCRE patterns can be used:
     *
     *     $finder->notContains('Lorem ipsum')
     *     $finder->notContains('/Lorem ipsum/i')
     *     $finder->notContains(['lorem', '/dolor/i'])
     *
     * @param string|string[] $patterns A pattern (string or regexp) or an array of patterns
     *
     * @return $this
     *
     * @see FilecontentFilterIterator
     */
    public function notContains($patterns)
    {
        $this->notContains = array_merge($this->notContains, (array) $patterns);

        return $this;
    }

    /**
     * Adds rules that filenames must match.
     *
     * You can use patterns (delimited with / sign) or simple strings.
     *
     *     $finder->path('some/special/dir')
     *     $finder->path('/some\/special\/dir/') // same as above
     *     $finder->path(['some dir', 'another/dir'])
     *
     * Use only / as dirname separator.
     *
     * @param string|string[] $patterns A pattern (a regexp or a string) or an array of patterns
     *
     * @return $this
     *
     * @see FilenameFilterIterator
     */
    public function path($patterns)
    {
        $this->paths = array_merge($this->paths, (array) $patterns);

        return $this;
    }

    /**
     * Adds rules that filenames must not match.
     *
     * You can use patterns (delimited with / sign) or simple strings.
     *
     *     $finder->notPath('some/special/dir')
     *     $finder->notPath('/some\/special\/dir/') // same as above
     *     $finder->notPath(['some/file.txt', 'another/file.log'])
     *
     * Use only / as dirname separator.
     *
     * @param string|string[] $patterns A pattern (a regexp or a string) or an array of patterns
     *
     * @return $this
     *
     * @see FilenameFilterIterator
     */
    public function notPath($patterns)
    {
        $this->notPaths = array_merge($this->notPaths, (array) $patterns);

        return $this;
    }

    /**
     * Adds tests for file sizes.
     *
     *     $finder->size('> 10K');
     *     $finder->size('<= 1Ki');
     *     $finder->size(4);
     *     $finder->size(['> 10K', '< 20K'])
     *
     * @param string|int|string[]|int[] $sizes A size range string or an integer or an array of size ranges
     *
     * @return $this
     *
     * @see SizeRangeFilterIterator
     * @see NumberComparator
     */
    public function size($sizes)
    {
        foreach ((array) $sizes as $size) {
            $this->sizes[] = new Comparator\NumberComparator($size);
        }

        return $this;
    }

    /**
     * Excludes directories.
     *
     * Directories passed as argument must be relative to the ones defined with the `in()` method. For example:
     *
     *     $finder->in(__DIR__)->exclude('ruby');
     *
     * @param string|array $dirs A directory path or an array of directories
     *
     * @return $this
     *
     * @see ExcludeDirectoryFilterIterator
     */
    public function exclude($dirs)
    {
        $this->exclude = array_merge($this->exclude, (array) $dirs);

        return $this;
    }

    /**
     * Excludes "hidden" directories and files (starting with a dot).
     *
     * This option is enabled by default.
     *
     * @param bool $ignoreDotFiles Whether to exclude "hidden" files or not
     *
     * @return $this
     *
     * @see ExcludeDirectoryFilterIterator
     */
    public function ignoreDotFiles($ignoreDotFiles)
    {
        if ($ignoreDotFiles) {
            $this->ignore |= static::IGNORE_DOT_FILES;
        } else {
            $this->ignore &= ~static::IGNORE_DOT_FILES;
        }

        return $this;
    }

    /**
     * Forces the finder to ignore version control directories.
     *
     * This option is enabled by default.
     *
     * @param bool $ignoreVCS Whether to exclude VCS files or not
     *
     * @return $this
     *
     * @see ExcludeDirectoryFilterIterator
     */
    public function ignoreVCS($ignoreVCS)
    {
        if ($ignoreVCS) {
            $this->ignore |= static::IGNORE_VCS_FILES;
        } else {
            $this->ignore &= ~static::IGNORE_VCS_FILES;
        }

        return $this;
    }

    /**
     * Forces Finder to obey .gitignore and ignore files based on rules listed there.
     *
     * This option is disabled by default.
     *
     * @return $this
     */
    public function ignoreVCSIgnored(bool $ignoreVCSIgnored)
    {
        if ($ignoreVCSIgnored) {
            $this->ignore |= static::IGNORE_VCS_IGNORED_FILES;
        } else {
            $this->ignore &= ~static::IGNORE_VCS_IGNORED_FILES;
        }

        return $this;
    }

    /**
     * Adds VCS patterns.
     *
     * @see ignoreVCS()
     *
     * @param string|string[] $pattern VCS patterns to ignore
     */
    public static function addVCSPattern($pattern)
    {
        foreach ((array) $pattern as $p) {
            self::$vcsPatterns[] = $p;
        }

        self::$vcsPatterns = array_unique(self::$vcsPatterns);
    }

    /**
     * Sorts files and directories by an anonymous function.
     *
     * The anonymous function receives two \SplFileInfo instances to compare.
     *
     * This can be slow as all the matching files and directories must be retrieved for comparison.
     *
     * @return $this
     *
     * @see SortableIterator
     */
    public function sort(\Closure $closure)
    {
        $this->sort = $closure;

        return $this;
    }

    /**
     * Sorts files and directories by name.
     *
     * This can be slow as all the matching files and directories must be retrieved for comparison.
     *
     * @param bool $useNaturalSort Whether to use natural sort or not, disabled by default
     *
     * @return $this
     *
     * @see SortableIterator
     */
    public function sortByName(/* bool $useNaturalSort = false */)
    {
        if (\func_num_args() < 1 && __CLASS__ !== static::class && __CLASS__ !== (new \ReflectionMethod($this, __FUNCTION__))->getDeclaringClass()->getName() && !$this instanceof \PHPUnit\Framework\MockObject\MockObject && !$this instanceof \Prophecy\Prophecy\ProphecySubjectInterface) {
            @trigger_error(sprintf('The "%s()" method will have a new "bool $useNaturalSort = false" argument in version 5.0, not defining it is deprecated since Symfony 4.2.', __METHOD__), E_USER_DEPRECATED);
        }
        $useNaturalSort = 0 < \func_num_args() && func_get_arg(0);

        $this->sort = $useNaturalSort ? Iterator\SortableIterator::SORT_BY_NAME_NATURAL : Iterator\SortableIterator::SORT_BY_NAME;

        return $this;
    }

    /**
     * Sorts files and directories by type (directories before files), then by name.
     *
     * This can be slow as all the matching files and directories must be retrieved for comparison.
     *
     * @return $this
     *
     * @see SortableIterator
     */
    public function sortByType()
    {
        $this->sort = Iterator\SortableIterator::SORT_BY_TYPE;

        return $this;
    }

    /**
     * Sorts files and directories by the last accessed time.
     *
     * This is the time that the file was last accessed, read or written to.
     *
     * This can be slow as all the matching files and directories must be retrieved for comparison.
     *
     * @return $this
     *
     * @see SortableIterator
     */
    public function sortByAccessedTime()
    {
        $this->sort = Iterator\SortableIterator::SORT_BY_ACCESSED_TIME;

        return $this;
    }

    /**
     * Reverses the sorting.
     *
     * @return $this
     */
    public function reverseSorting()
    {
        $this->reverseSorting = true;

        return $this;
    }

    /**
     * Sorts files and directories by the last inode changed time.
     *
     * This is the time that the inode information was last modified (permissions, owner, group or other metadata).
     *
     * On Windows, since inode is not available, changed time is actually the file creation time.
     *
     * This can be slow as all the matching files and directories must be retrieved for comparison.
     *
     * @return $this
     *
     * @see SortableIterator
     */
    public function sortByChangedTime()
    {
        $this->sort = Iterator\SortableIterator::SORT_BY_CHANGED_TIME;

        return $this;
    }

    /**
     * Sorts files and directories by the last modified time.
     *
     * This is the last time the actual contents of the file were last modified.
     *
     * This can be slow as all the matching files and directories must be retrieved for comparison.
     *
     * @return $this
     *
     * @see SortableIterator
     */
    public function sortByModifiedTime()
    {
        $this->sort = Iterator\SortableIterator::SORT_BY_MODIFIED_TIME;

        return $this;
    }

    /**
     * Filters the iterator with an anonymous function.
     *
     * The anonymous function receives a \SplFileInfo and must return false
     * to remove files.
     *
     * @return $this
     *
     * @see CustomFilterIterator
     */
    public function filter(\Closure $closure)
    {
        $this->filters[] = $closure;

        return $this;
    }

    /**
     * Forces the following of symlinks.
     *
     * @return $this
     */
    public function followLinks()
    {
        $this->followLinks = true;

        return $this;
    }

    /**
     * Tells finder to ignore unreadable directories.
     *
     * By default, scanning unreadable directories content throws an AccessDeniedException.
     *
     * @param bool $ignore
     *
     * @return $this
     */
    public function ignoreUnreadableDirs($ignore = true)
    {
        $this->ignoreUnreadableDirs = (bool) $ignore;

        return $this;
    }

    /**
     * Searches files and directories which match defined rules.
     *
     * @param string|string[] $dirs A directory path or an array of directories
     *
     * @return $this
     *
     * @throws DirectoryNotFoundException if one of the directories does not exist
     */
    public function in($dirs)
    {
        $resolvedDirs = [];

        foreach ((array) $dirs as $dir) {
            if (is_dir($dir)) {
                $resolvedDirs[] = $this->normalizeDir($dir);
            } elseif ($glob = glob($dir, (\defined('GLOB_BRACE') ? GLOB_BRACE : 0) | GLOB_ONLYDIR | GLOB_NOSORT)) {
                sort($glob);
                $resolvedDirs = array_merge($resolvedDirs, array_map([$this, 'normalizeDir'], $glob));
            } else {
                throw new DirectoryNotFoundException(sprintf('The "%s" directory does not exist.', $dir));
            }
        }

        $this->dirs = array_merge($this->dirs, $resolvedDirs);

        return $this;
    }

    /**
     * Returns an Iterator for the current Finder configuration.
     *
     * This method implements the IteratorAggregate interface.
     *
     * @return \Iterator|SplFileInfo[] An iterator
     *
     * @throws \LogicException if the in() method has not been called
     */
    public function getIterator()
    {
        if (0 === \count($this->dirs) && 0 === \count($this->iterators)) {
            throw new \LogicException('You must call one of in() or append() methods before iterating over a Finder.');
        }

        if (1 === \count($this->dirs) && 0 === \count($this->iterators)) {
            return $this->searchInDirectory($this->dirs[0]);
        }

        $iterator = new \AppendIterator();
        foreach ($this->dirs as $dir) {
            $iterator->append($this->searchInDirectory($dir));
        }

        foreach ($this->iterators as $it) {
            $iterator->append($it);
        }

        return $iterator;
    }

    /**
     * Appends an existing set of files/directories to the finder.
     *
     * The set can be another Finder, an Iterator, an IteratorAggregate, or even a plain array.
     *
     * @param iterable $iterator
     *
     * @return $this
     *
     * @throws \InvalidArgumentException when the given argument is not iterable
     */
    public function append($iterator)
    {
        if ($iterator instanceof \IteratorAggregate) {
            $this->iterators[] = $iterator->getIterator();
        } elseif ($iterator instanceof \Iterator) {
            $this->iterators[] = $iterator;
        } elseif ($iterator instanceof \Traversable || \is_array($iterator)) {
            $it = new \ArrayIterator();
            foreach ($iterator as $file) {
                $it->append($file instanceof \SplFileInfo ? $file : new \SplFileInfo($file));
            }
            $this->iterators[] = $it;
        } else {
            throw new \InvalidArgumentException('Finder::append() method wrong argument type.');
        }

        return $this;
    }

    /**
     * Check if the any results were found.
     *
     * @return bool
     */
    public function hasResults()
    {
        foreach ($this->getIterator() as $_) {
            return true;
        }

        return false;
    }

    /**
     * Counts all the results collected by the iterators.
     *
     * @return int
     */
    public function count()
    {
        return iterator_count($this->getIterator());
    }

    private function searchInDirectory(string $dir): \Iterator
    {
        $exclude = $this->exclude;
        $notPaths = $this->notPaths;

        if (static::IGNORE_VCS_FILES === (static::IGNORE_VCS_FILES & $this->ignore)) {
            $exclude = array_merge($exclude, self::$vcsPatterns);
        }

        if (static::IGNORE_DOT_FILES === (static::IGNORE_DOT_FILES & $this->ignore)) {
            $notPaths[] = '#(^|/)\..+(/|$)#';
        }

        if (static::IGNORE_VCS_IGNORED_FILES === (static::IGNORE_VCS_IGNORED_FILES & $this->ignore)) {
            $gitignoreFilePath = sprintf('%s/.gitignore', $dir);
            if (!is_readable($gitignoreFilePath)) {
                throw new \RuntimeException(sprintf('The "ignoreVCSIgnored" option cannot be used by the Finder as the "%s" file is not readable.', $gitignoreFilePath));
            }
            $notPaths = array_merge($notPaths, [Gitignore::toRegex(file_get_contents($gitignoreFilePath))]);
        }

        $minDepth = 0;
        $maxDepth = PHP_INT_MAX;

        foreach ($this->depths as $comparator) {
            switch ($comparator->getOperator()) {
                case '>':
                    $minDepth = $comparator->getTarget() + 1;
                    break;
                case '>=':
                    $minDepth = $comparator->getTarget();
                    break;
                case '<':
                    $maxDepth = $comparator->getTarget() - 1;
                    break;
                case '<=':
                    $maxDepth = $comparator->getTarget();
                    break;
                default:
                    $minDepth = $maxDepth = $comparator->getTarget();
            }
        }

        $flags = \RecursiveDirectoryIterator::SKIP_DOTS;

        if ($this->followLinks) {
            $flags |= \RecursiveDirectoryIterator::FOLLOW_SYMLINKS;
        }

        $iterator = new Iterator\RecursiveDirectoryIterator($dir, $flags, $this->ignoreUnreadableDirs);

        if ($exclude) {
            $iterator = new Iterator\ExcludeDirectoryFilterIterator($iterator, $exclude);
        }

        $iterator = new \RecursiveIteratorIterator($iterator, \RecursiveIteratorIterator::SELF_FIRST);

        if ($minDepth > 0 || $maxDepth < PHP_INT_MAX) {
            $iterator = new Iterator\DepthRangeFilterIterator($iterator, $minDepth, $maxDepth);
        }

        if ($this->mode) {
            $iterator = new Iterator\FileTypeFilterIterator($iterator, $this->mode);
        }

        if ($this->names || $this->notNames) {
            $iterator = new Iterator\FilenameFilterIterator($iterator, $this->names, $this->notNames);
        }

        if ($this->contains || $this->notContains) {
            $iterator = new Iterator\FilecontentFilterIterator($iterator, $this->contains, $this->notContains);
        }

        if ($this->sizes) {
            $iterator = new Iterator\SizeRangeFilterIterator($iterator, $this->sizes);
        }

        if ($this->dates) {
            $iterator = new Iterator\DateRangeFilterIterator($iterator, $this->dates);
        }

        if ($this->filters) {
            $iterator = new Iterator\CustomFilterIterator($iterator, $this->filters);
        }

        if ($this->paths || $notPaths) {
            $iterator = new Iterator\PathFilterIterator($iterator, $this->paths, $notPaths);
        }

        if ($this->sort || $this->reverseSorting) {
            $iteratorAggregate = new Iterator\SortableIterator($iterator, $this->sort, $this->reverseSorting);
            $iterator = $iteratorAggregate->getIterator();
        }

        return $iterator;
    }

    /**
     * Normalizes given directory names by removing trailing slashes.
     *
     * Excluding: (s)ftp:// or ssh2.(s)ftp:// wrapper
     */
    private function normalizeDir(string $dir): string
    {
        if ('/' === $dir) {
            return $dir;
        }

        $dir = rtrim($dir, '/'.\DIRECTORY_SEPARATOR);

        if (preg_match('#^(ssh2\.)?s?ftp://#', $dir)) {
            $dir .= '/';
        }

        return $dir;
    }
}
Copyright (c) 2004-2020 Fabien Potencier

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.
CHANGELOG
=========

4.3.0
-----

 * added Finder::ignoreVCSIgnored() to ignore files based on rules listed in .gitignore

4.2.0
-----

 * added $useNaturalSort option to Finder::sortByName() method
 * the `Finder::sortByName()` method will have a new `$useNaturalSort`
   argument in version 5.0, not defining it is deprecated
 * added `Finder::reverseSorting()` to reverse the sorting

4.0.0
-----

 * removed `ExceptionInterface`
 * removed `Symfony\Component\Finder\Iterator\FilterIterator`

3.4.0
-----

 * deprecated `Symfony\Component\Finder\Iterator\FilterIterator`
 * added Finder::hasResults() method to check if any results were found

3.3.0
-----

 * added double-star matching to Glob::toRegex()

3.0.0
-----

 * removed deprecated classes

2.8.0
-----

 * deprecated adapters and related classes

2.5.0
-----
 * added support for GLOB_BRACE in the paths passed to Finder::in()

2.3.0
-----

 * added a way to ignore unreadable directories (via Finder::ignoreUnreadableDirs())
 * unified the way subfolders that are not executable are handled by always throwing an AccessDeniedException exception

2.2.0
-----

 * added Finder::path() and Finder::notPath() methods
 * added finder adapters to improve performance on specific platforms
 * added support for wildcard characters (glob patterns) in the paths passed
   to Finder::in()

2.1.0
-----

 * added Finder::sortByAccessedTime(), Finder::sortByChangedTime(), and
   Finder::sortByModifiedTime()
 * added Countable to Finder
 * added support for an array of directories as an argument to
   Finder::exclude()
 * added searching based on the file content via Finder::contains() and
   Finder::notContains()
 * added support for the != operator in the Comparator
 * [BC BREAK] filter expressions (used for file name and content) are no more
   considered as regexps but glob patterns when they are enclosed in '*' or '?'
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Finder;

/**
 * Glob matches globbing patterns against text.
 *
 *     if match_glob("foo.*", "foo.bar") echo "matched\n";
 *
 *     // prints foo.bar and foo.baz
 *     $regex = glob_to_regex("foo.*");
 *     for (['foo.bar', 'foo.baz', 'foo', 'bar'] as $t)
 *     {
 *         if (/$regex/) echo "matched: $car\n";
 *     }
 *
 * Glob implements glob(3) style matching that can be used to match
 * against text, rather than fetching names from a filesystem.
 *
 * Based on the Perl Text::Glob module.
 *
 * @author Fabien Potencier <fabien@symfony.com> PHP port
 * @author     Richard Clamp <richardc@unixbeard.net> Perl version
 * @copyright  2004-2005 Fabien Potencier <fabien@symfony.com>
 * @copyright  2002 Richard Clamp <richardc@unixbeard.net>
 */
class Glob
{
    /**
     * Returns a regexp which is the equivalent of the glob pattern.
     *
     * @param string $glob                The glob pattern
     * @param bool   $strictLeadingDot
     * @param bool   $strictWildcardSlash
     * @param string $delimiter           Optional delimiter
     *
     * @return string regex The regexp
     */
    public static function toRegex($glob, $strictLeadingDot = true, $strictWildcardSlash = true, $delimiter = '#')
    {
        $firstByte = true;
        $escaping = false;
        $inCurlies = 0;
        $regex = '';
        $sizeGlob = \strlen($glob);
        for ($i = 0; $i < $sizeGlob; ++$i) {
            $car = $glob[$i];
            if ($firstByte && $strictLeadingDot && '.' !== $car) {
                $regex .= '(?=[^\.])';
            }

            $firstByte = '/' === $car;

            if ($firstByte && $strictWildcardSlash && isset($glob[$i + 2]) && '**' === $glob[$i + 1].$glob[$i + 2] && (!isset($glob[$i + 3]) || '/' === $glob[$i + 3])) {
                $car = '[^/]++/';
                if (!isset($glob[$i + 3])) {
                    $car .= '?';
                }

                if ($strictLeadingDot) {
                    $car = '(?=[^\.])'.$car;
                }

                $car = '/(?:'.$car.')*';
                $i += 2 + isset($glob[$i + 3]);

                if ('/' === $delimiter) {
                    $car = str_replace('/', '\\/', $car);
                }
            }

            if ($delimiter === $car || '.' === $car || '(' === $car || ')' === $car || '|' === $car || '+' === $car || '^' === $car || '$' === $car) {
                $regex .= "\\$car";
            } elseif ('*' === $car) {
                $regex .= $escaping ? '\\*' : ($strictWildcardSlash ? '[^/]*' : '.*');
            } elseif ('?' === $car) {
                $regex .= $escaping ? '\\?' : ($strictWildcardSlash ? '[^/]' : '.');
            } elseif ('{' === $car) {
                $regex .= $escaping ? '\\{' : '(';
                if (!$escaping) {
                    ++$inCurlies;
                }
            } elseif ('}' === $car && $inCurlies) {
                $regex .= $escaping ? '}' : ')';
                if (!$escaping) {
                    --$inCurlies;
                }
            } elseif (',' === $car && $inCurlies) {
                $regex .= $escaping ? ',' : '|';
            } elseif ('\\' === $car) {
                if ($escaping) {
                    $regex .= '\\\\';
                    $escaping = false;
                } else {
                    $escaping = true;
                }

                continue;
            } else {
                $regex .= $car;
            }
            $escaping = false;
        }

        return $delimiter.'^'.$regex.'$'.$delimiter;
    }
}
Finder Component
================

The Finder component finds files and directories via an intuitive fluent
interface.

Resources
---------

  * [Documentation](https://symfony.com/doc/current/components/finder.html)
  * [Contributing](https://symfony.com/doc/current/contributing/index.html)
  * [Report issues](https://github.com/symfony/symfony/issues) and
    [send Pull Requests](https://github.com/symfony/symfony/pulls)
    in the [main Symfony repository](https://github.com/symfony/symfony)
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Finder\Iterator;

/**
 * FilecontentFilterIterator filters files by their contents using patterns (regexps or strings).
 *
 * @author Fabien Potencier  <fabien@symfony.com>
 * @author Włodzimierz Gajda <gajdaw@gajdaw.pl>
 */
class FilecontentFilterIterator extends MultiplePcreFilterIterator
{
    /**
     * Filters the iterator values.
     *
     * @return bool true if the value should be kept, false otherwise
     */
    public function accept()
    {
        if (!$this->matchRegexps && !$this->noMatchRegexps) {
            return true;
        }

        $fileinfo = $this->current();

        if ($fileinfo->isDir() || !$fileinfo->isReadable()) {
            return false;
        }

        $content = $fileinfo->getContents();
        if (!$content) {
            return false;
        }

        return $this->isAccepted($content);
    }

    /**
     * Converts string to regexp if necessary.
     *
     * @param string $str Pattern: string or regexp
     *
     * @return string regexp corresponding to a given string or regexp
     */
    protected function toRegex($str)
    {
        return $this->isRegex($str) ? $str : '/'.preg_quote($str, '/').'/';
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Finder\Iterator;

/**
 * MultiplePcreFilterIterator filters files using patterns (regexps, globs or strings).
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
abstract class MultiplePcreFilterIterator extends \FilterIterator
{
    protected $matchRegexps = [];
    protected $noMatchRegexps = [];

    /**
     * @param \Iterator $iterator        The Iterator to filter
     * @param array     $matchPatterns   An array of patterns that need to match
     * @param array     $noMatchPatterns An array of patterns that need to not match
     */
    public function __construct(\Iterator $iterator, array $matchPatterns, array $noMatchPatterns)
    {
        foreach ($matchPatterns as $pattern) {
            $this->matchRegexps[] = $this->toRegex($pattern);
        }

        foreach ($noMatchPatterns as $pattern) {
            $this->noMatchRegexps[] = $this->toRegex($pattern);
        }

        parent::__construct($iterator);
    }

    /**
     * Checks whether the string is accepted by the regex filters.
     *
     * If there is no regexps defined in the class, this method will accept the string.
     * Such case can be handled by child classes before calling the method if they want to
     * apply a different behavior.
     *
     * @param string $string The string to be matched against filters
     *
     * @return bool
     */
    protected function isAccepted($string)
    {
        // should at least not match one rule to exclude
        foreach ($this->noMatchRegexps as $regex) {
            if (preg_match($regex, $string)) {
                return false;
            }
        }

        // should at least match one rule
        if ($this->matchRegexps) {
            foreach ($this->matchRegexps as $regex) {
                if (preg_match($regex, $string)) {
                    return true;
                }
            }

            return false;
        }

        // If there is no match rules, the file is accepted
        return true;
    }

    /**
     * Checks whether the string is a regex.
     *
     * @param string $str
     *
     * @return bool Whether the given string is a regex
     */
    protected function isRegex($str)
    {
        if (preg_match('/^(.{3,}?)[imsxuADU]*$/', $str, $m)) {
            $start = substr($m[1], 0, 1);
            $end = substr($m[1], -1);

            if ($start === $end) {
                return !preg_match('/[*?[:alnum:] \\\\]/', $start);
            }

            foreach ([['{', '}'], ['(', ')'], ['[', ']'], ['<', '>']] as $delimiters) {
                if ($start === $delimiters[0] && $end === $delimiters[1]) {
                    return true;
                }
            }
        }

        return false;
    }

    /**
     * Converts string into regexp.
     *
     * @param string $str Pattern
     *
     * @return string regexp corresponding to a given string
     */
    abstract protected function toRegex($str);
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Finder\Iterator;

use Symfony\Component\Finder\Comparator\NumberComparator;

/**
 * SizeRangeFilterIterator filters out files that are not in the given size range.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class SizeRangeFilterIterator extends \FilterIterator
{
    private $comparators = [];

    /**
     * @param \Iterator          $iterator    The Iterator to filter
     * @param NumberComparator[] $comparators An array of NumberComparator instances
     */
    public function __construct(\Iterator $iterator, array $comparators)
    {
        $this->comparators = $comparators;

        parent::__construct($iterator);
    }

    /**
     * Filters the iterator values.
     *
     * @return bool true if the value should be kept, false otherwise
     */
    public function accept()
    {
        $fileinfo = $this->current();
        if (!$fileinfo->isFile()) {
            return true;
        }

        $filesize = $fileinfo->getSize();
        foreach ($this->comparators as $compare) {
            if (!$compare->test($filesize)) {
                return false;
            }
        }

        return true;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Finder\Iterator;

use Symfony\Component\Finder\Glob;

/**
 * FilenameFilterIterator filters files by patterns (a regexp, a glob, or a string).
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class FilenameFilterIterator extends MultiplePcreFilterIterator
{
    /**
     * Filters the iterator values.
     *
     * @return bool true if the value should be kept, false otherwise
     */
    public function accept()
    {
        return $this->isAccepted($this->current()->getFilename());
    }

    /**
     * Converts glob to regexp.
     *
     * PCRE patterns are left unchanged.
     * Glob strings are transformed with Glob::toRegex().
     *
     * @param string $str Pattern: glob or regexp
     *
     * @return string regexp corresponding to a given glob or regexp
     */
    protected function toRegex($str)
    {
        return $this->isRegex($str) ? $str : Glob::toRegex($str);
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Finder\Iterator;

use Symfony\Component\Finder\Comparator\DateComparator;

/**
 * DateRangeFilterIterator filters out files that are not in the given date range (last modified dates).
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class DateRangeFilterIterator extends \FilterIterator
{
    private $comparators = [];

    /**
     * @param \Iterator        $iterator    The Iterator to filter
     * @param DateComparator[] $comparators An array of DateComparator instances
     */
    public function __construct(\Iterator $iterator, array $comparators)
    {
        $this->comparators = $comparators;

        parent::__construct($iterator);
    }

    /**
     * Filters the iterator values.
     *
     * @return bool true if the value should be kept, false otherwise
     */
    public function accept()
    {
        $fileinfo = $this->current();

        if (!file_exists($fileinfo->getPathname())) {
            return false;
        }

        $filedate = $fileinfo->getMTime();
        foreach ($this->comparators as $compare) {
            if (!$compare->test($filedate)) {
                return false;
            }
        }

        return true;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Finder\Iterator;

/**
 * CustomFilterIterator filters files by applying anonymous functions.
 *
 * The anonymous function receives a \SplFileInfo and must return false
 * to remove files.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class CustomFilterIterator extends \FilterIterator
{
    private $filters = [];

    /**
     * @param \Iterator  $iterator The Iterator to filter
     * @param callable[] $filters  An array of PHP callbacks
     *
     * @throws \InvalidArgumentException
     */
    public function __construct(\Iterator $iterator, array $filters)
    {
        foreach ($filters as $filter) {
            if (!\is_callable($filter)) {
                throw new \InvalidArgumentException('Invalid PHP callback.');
            }
        }
        $this->filters = $filters;

        parent::__construct($iterator);
    }

    /**
     * Filters the iterator values.
     *
     * @return bool true if the value should be kept, false otherwise
     */
    public function accept()
    {
        $fileinfo = $this->current();

        foreach ($this->filters as $filter) {
            if (false === $filter($fileinfo)) {
                return false;
            }
        }

        return true;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Finder\Iterator;

use Symfony\Component\Finder\Exception\AccessDeniedException;
use Symfony\Component\Finder\SplFileInfo;

/**
 * Extends the \RecursiveDirectoryIterator to support relative paths.
 *
 * @author Victor Berchet <victor@suumit.com>
 */
class RecursiveDirectoryIterator extends \RecursiveDirectoryIterator
{
    /**
     * @var bool
     */
    private $ignoreUnreadableDirs;

    /**
     * @var bool
     */
    private $rewindable;

    // these 3 properties take part of the performance optimization to avoid redoing the same work in all iterations
    private $rootPath;
    private $subPath;
    private $directorySeparator = '/';

    /**
     * @throws \RuntimeException
     */
    public function __construct(string $path, int $flags, bool $ignoreUnreadableDirs = false)
    {
        if ($flags & (self::CURRENT_AS_PATHNAME | self::CURRENT_AS_SELF)) {
            throw new \RuntimeException('This iterator only support returning current as fileinfo.');
        }

        parent::__construct($path, $flags);
        $this->ignoreUnreadableDirs = $ignoreUnreadableDirs;
        $this->rootPath = $path;
        if ('/' !== \DIRECTORY_SEPARATOR && !($flags & self::UNIX_PATHS)) {
            $this->directorySeparator = \DIRECTORY_SEPARATOR;
        }
    }

    /**
     * Return an instance of SplFileInfo with support for relative paths.
     *
     * @return SplFileInfo File information
     */
    public function current()
    {
        // the logic here avoids redoing the same work in all iterations

        if (null === $subPathname = $this->subPath) {
            $subPathname = $this->subPath = (string) $this->getSubPath();
        }
        if ('' !== $subPathname) {
            $subPathname .= $this->directorySeparator;
        }
        $subPathname .= $this->getFilename();

        if ('/' !== $basePath = $this->rootPath) {
            $basePath .= $this->directorySeparator;
        }

        return new SplFileInfo($basePath.$subPathname, $this->subPath, $subPathname);
    }

    /**
     * @return \RecursiveIterator
     *
     * @throws AccessDeniedException
     */
    public function getChildren()
    {
        try {
            $children = parent::getChildren();

            if ($children instanceof self) {
                // parent method will call the constructor with default arguments, so unreadable dirs won't be ignored anymore
                $children->ignoreUnreadableDirs = $this->ignoreUnreadableDirs;

                // performance optimization to avoid redoing the same work in all children
                $children->rewindable = &$this->rewindable;
                $children->rootPath = $this->rootPath;
            }

            return $children;
        } catch (\UnexpectedValueException $e) {
            if ($this->ignoreUnreadableDirs) {
                // If directory is unreadable and finder is set to ignore it, a fake empty content is returned.
                return new \RecursiveArrayIterator([]);
            } else {
                throw new AccessDeniedException($e->getMessage(), $e->getCode(), $e);
            }
        }
    }

    /**
     * Do nothing for non rewindable stream.
     */
    public function rewind()
    {
        if (false === $this->isRewindable()) {
            return;
        }

        parent::rewind();
    }

    /**
     * Checks if the stream is rewindable.
     *
     * @return bool true when the stream is rewindable, false otherwise
     */
    public function isRewindable()
    {
        if (null !== $this->rewindable) {
            return $this->rewindable;
        }

        if (false !== $stream = @opendir($this->getPath())) {
            $infos = stream_get_meta_data($stream);
            closedir($stream);

            if ($infos['seekable']) {
                return $this->rewindable = true;
            }
        }

        return $this->rewindable = false;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Finder\Iterator;

/**
 * ExcludeDirectoryFilterIterator filters out directories.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class ExcludeDirectoryFilterIterator extends \FilterIterator implements \RecursiveIterator
{
    private $iterator;
    private $isRecursive;
    private $excludedDirs = [];
    private $excludedPattern;

    /**
     * @param \Iterator $iterator    The Iterator to filter
     * @param string[]  $directories An array of directories to exclude
     */
    public function __construct(\Iterator $iterator, array $directories)
    {
        $this->iterator = $iterator;
        $this->isRecursive = $iterator instanceof \RecursiveIterator;
        $patterns = [];
        foreach ($directories as $directory) {
            $directory = rtrim($directory, '/');
            if (!$this->isRecursive || false !== strpos($directory, '/')) {
                $patterns[] = preg_quote($directory, '#');
            } else {
                $this->excludedDirs[$directory] = true;
            }
        }
        if ($patterns) {
            $this->excludedPattern = '#(?:^|/)(?:'.implode('|', $patterns).')(?:/|$)#';
        }

        parent::__construct($iterator);
    }

    /**
     * Filters the iterator values.
     *
     * @return bool True if the value should be kept, false otherwise
     */
    public function accept()
    {
        if ($this->isRecursive && isset($this->excludedDirs[$this->getFilename()]) && $this->isDir()) {
            return false;
        }

        if ($this->excludedPattern) {
            $path = $this->isDir() ? $this->current()->getRelativePathname() : $this->current()->getRelativePath();
            $path = str_replace('\\', '/', $path);

            return !preg_match($this->excludedPattern, $path);
        }

        return true;
    }

    /**
     * @return bool
     */
    public function hasChildren()
    {
        return $this->isRecursive && $this->iterator->hasChildren();
    }

    public function getChildren()
    {
        $children = new self($this->iterator->getChildren(), []);
        $children->excludedDirs = $this->excludedDirs;
        $children->excludedPattern = $this->excludedPattern;

        return $children;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Finder\Iterator;

/**
 * SortableIterator applies a sort on a given Iterator.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class SortableIterator implements \IteratorAggregate
{
    const SORT_BY_NONE = 0;
    const SORT_BY_NAME = 1;
    const SORT_BY_TYPE = 2;
    const SORT_BY_ACCESSED_TIME = 3;
    const SORT_BY_CHANGED_TIME = 4;
    const SORT_BY_MODIFIED_TIME = 5;
    const SORT_BY_NAME_NATURAL = 6;

    private $iterator;
    private $sort;

    /**
     * @param \Traversable $iterator The Iterator to filter
     * @param int|callable $sort     The sort type (SORT_BY_NAME, SORT_BY_TYPE, or a PHP callback)
     *
     * @throws \InvalidArgumentException
     */
    public function __construct(\Traversable $iterator, $sort, bool $reverseOrder = false)
    {
        $this->iterator = $iterator;
        $order = $reverseOrder ? -1 : 1;

        if (self::SORT_BY_NAME === $sort) {
            $this->sort = static function ($a, $b) use ($order) {
                return $order * strcmp($a->getRealPath() ?: $a->getPathname(), $b->getRealPath() ?: $b->getPathname());
            };
        } elseif (self::SORT_BY_NAME_NATURAL === $sort) {
            $this->sort = static function ($a, $b) use ($order) {
                return $order * strnatcmp($a->getRealPath() ?: $a->getPathname(), $b->getRealPath() ?: $b->getPathname());
            };
        } elseif (self::SORT_BY_TYPE === $sort) {
            $this->sort = static function ($a, $b) use ($order) {
                if ($a->isDir() && $b->isFile()) {
                    return -$order;
                } elseif ($a->isFile() && $b->isDir()) {
                    return $order;
                }

                return $order * strcmp($a->getRealPath() ?: $a->getPathname(), $b->getRealPath() ?: $b->getPathname());
            };
        } elseif (self::SORT_BY_ACCESSED_TIME === $sort) {
            $this->sort = static function ($a, $b) use ($order) {
                return $order * ($a->getATime() - $b->getATime());
            };
        } elseif (self::SORT_BY_CHANGED_TIME === $sort) {
            $this->sort = static function ($a, $b) use ($order) {
                return $order * ($a->getCTime() - $b->getCTime());
            };
        } elseif (self::SORT_BY_MODIFIED_TIME === $sort) {
            $this->sort = static function ($a, $b) use ($order) {
                return $order * ($a->getMTime() - $b->getMTime());
            };
        } elseif (self::SORT_BY_NONE === $sort) {
            $this->sort = $order;
        } elseif (\is_callable($sort)) {
            $this->sort = $reverseOrder ? static function ($a, $b) use ($sort) { return -$sort($a, $b); } : $sort;
        } else {
            throw new \InvalidArgumentException('The SortableIterator takes a PHP callable or a valid built-in sort algorithm as an argument.');
        }
    }

    /**
     * @return \Traversable
     */
    public function getIterator()
    {
        if (1 === $this->sort) {
            return $this->iterator;
        }

        $array = iterator_to_array($this->iterator, true);

        if (-1 === $this->sort) {
            $array = array_reverse($array);
        } else {
            uasort($array, $this->sort);
        }

        return new \ArrayIterator($array);
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Finder\Iterator;

/**
 * DepthRangeFilterIterator limits the directory depth.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class DepthRangeFilterIterator extends \FilterIterator
{
    private $minDepth = 0;

    /**
     * @param \RecursiveIteratorIterator $iterator The Iterator to filter
     * @param int                        $minDepth The min depth
     * @param int                        $maxDepth The max depth
     */
    public function __construct(\RecursiveIteratorIterator $iterator, int $minDepth = 0, int $maxDepth = PHP_INT_MAX)
    {
        $this->minDepth = $minDepth;
        $iterator->setMaxDepth(PHP_INT_MAX === $maxDepth ? -1 : $maxDepth);

        parent::__construct($iterator);
    }

    /**
     * Filters the iterator values.
     *
     * @return bool true if the value should be kept, false otherwise
     */
    public function accept()
    {
        return $this->getInnerIterator()->getDepth() >= $this->minDepth;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Finder\Iterator;

/**
 * FileTypeFilterIterator only keeps files, directories, or both.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class FileTypeFilterIterator extends \FilterIterator
{
    const ONLY_FILES = 1;
    const ONLY_DIRECTORIES = 2;

    private $mode;

    /**
     * @param \Iterator $iterator The Iterator to filter
     * @param int       $mode     The mode (self::ONLY_FILES or self::ONLY_DIRECTORIES)
     */
    public function __construct(\Iterator $iterator, int $mode)
    {
        $this->mode = $mode;

        parent::__construct($iterator);
    }

    /**
     * Filters the iterator values.
     *
     * @return bool true if the value should be kept, false otherwise
     */
    public function accept()
    {
        $fileinfo = $this->current();
        if (self::ONLY_DIRECTORIES === (self::ONLY_DIRECTORIES & $this->mode) && $fileinfo->isFile()) {
            return false;
        } elseif (self::ONLY_FILES === (self::ONLY_FILES & $this->mode) && $fileinfo->isDir()) {
            return false;
        }

        return true;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Finder\Iterator;

/**
 * PathFilterIterator filters files by path patterns (e.g. some/special/dir).
 *
 * @author Fabien Potencier  <fabien@symfony.com>
 * @author Włodzimierz Gajda <gajdaw@gajdaw.pl>
 */
class PathFilterIterator extends MultiplePcreFilterIterator
{
    /**
     * Filters the iterator values.
     *
     * @return bool true if the value should be kept, false otherwise
     */
    public function accept()
    {
        $filename = $this->current()->getRelativePathname();

        if ('\\' === \DIRECTORY_SEPARATOR) {
            $filename = str_replace('\\', '/', $filename);
        }

        return $this->isAccepted($filename);
    }

    /**
     * Converts strings to regexp.
     *
     * PCRE patterns are left unchanged.
     *
     * Default conversion:
     *     'lorem/ipsum/dolor' ==>  'lorem\/ipsum\/dolor/'
     *
     * Use only / as directory separator (on Windows also).
     *
     * @param string $str Pattern: regexp or dirname
     *
     * @return string regexp corresponding to a given string or regexp
     */
    protected function toRegex($str)
    {
        return $this->isRegex($str) ? $str : '/'.preg_quote($str, '/').'/';
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Finder;

/**
 * Gitignore matches against text.
 *
 * @author Ahmed Abdou <mail@ahmd.io>
 */
class Gitignore
{
    /**
     * Returns a regexp which is the equivalent of the gitignore pattern.
     *
     * @return string The regexp
     */
    public static function toRegex(string $gitignoreFileContent): string
    {
        $gitignoreFileContent = preg_replace('/^[^\\\r\n]*#.*/m', '', $gitignoreFileContent);
        $gitignoreLines = preg_split('/\r\n|\r|\n/', $gitignoreFileContent);
        $gitignoreLines = array_map('trim', $gitignoreLines);
        $gitignoreLines = array_filter($gitignoreLines);

        $ignoreLinesPositive = array_filter($gitignoreLines, function (string $line) {
            return !preg_match('/^!/', $line);
        });

        $ignoreLinesNegative = array_filter($gitignoreLines, function (string $line) {
            return preg_match('/^!/', $line);
        });

        $ignoreLinesNegative = array_map(function (string $line) {
            return preg_replace('/^!(.*)/', '${1}', $line);
        }, $ignoreLinesNegative);
        $ignoreLinesNegative = array_map([__CLASS__, 'getRegexFromGitignore'], $ignoreLinesNegative);

        $ignoreLinesPositive = array_map([__CLASS__, 'getRegexFromGitignore'], $ignoreLinesPositive);
        if (empty($ignoreLinesPositive)) {
            return '/^$/';
        }

        if (empty($ignoreLinesNegative)) {
            return sprintf('/%s/', implode('|', $ignoreLinesPositive));
        }

        return sprintf('/(?=^(?:(?!(%s)).)*$)(%s)/', implode('|', $ignoreLinesNegative), implode('|', $ignoreLinesPositive));
    }

    private static function getRegexFromGitignore(string $gitignorePattern): string
    {
        $regex = '(';
        if (0 === strpos($gitignorePattern, '/')) {
            $gitignorePattern = substr($gitignorePattern, 1);
            $regex .= '^';
        } else {
            $regex .= '(^|\/)';
        }

        if ('/' === $gitignorePattern[\strlen($gitignorePattern) - 1]) {
            $gitignorePattern = substr($gitignorePattern, 0, -1);
        }

        $iMax = \strlen($gitignorePattern);
        for ($i = 0; $i < $iMax; ++$i) {
            $doubleChars = substr($gitignorePattern, $i, 2);
            if ('**' === $doubleChars) {
                $regex .= '.+';
                ++$i;
                continue;
            }

            $c = $gitignorePattern[$i];
            switch ($c) {
                case '*':
                    $regex .= '[^\/]+';
                    break;
                case '/':
                case '.':
                case ':':
                case '(':
                case ')':
                case '{':
                case '}':
                    $regex .= '\\'.$c;
                    break;
                default:
                    $regex .= $c;
            }
        }

        $regex .= '($|\/)';
        $regex .= ')';

        return $regex;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Finder\Exception;

/**
 * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
 */
class AccessDeniedException extends \UnexpectedValueException
{
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Finder\Exception;

/**
 * @author Andreas Erhard <andreas.erhard@i-med.ac.at>
 */
class DirectoryNotFoundException extends \InvalidArgumentException
{
}
{
    "name": "symfony/finder",
    "type": "library",
    "description": "Symfony Finder Component",
    "keywords": [],
    "homepage": "https://symfony.com",
    "license": "MIT",
    "authors": [
        {
            "name": "Fabien Potencier",
            "email": "fabien@symfony.com"
        },
        {
            "name": "Symfony Community",
            "homepage": "https://symfony.com/contributors"
        }
    ],
    "require": {
        "php": "^7.1.3"
    },
    "autoload": {
        "psr-4": { "Symfony\\Component\\Finder\\": "" },
        "exclude-from-classmap": [
            "/Tests/"
        ]
    },
    "minimum-stability": "dev",
    "extra": {
        "branch-alias": {
            "dev-master": "4.4-dev"
        }
    }
}
Copyright (c) 2015-2019 Fabien Potencier

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.
<?php

interface SessionUpdateTimestampHandlerInterface
{
    /**
     * Checks if a session identifier already exists or not.
     *
     * @param string $key
     *
     * @return bool
     */
    public function validateId($key);

    /**
     * Updates the timestamp of a session when its data didn't change.
     *
     * @param string $key
     * @param string $val
     *
     * @return bool
     */
    public function updateTimestamp($key, $val);
}
<?php

class TypeError extends Error
{
}
<?php

class ParseError extends Error
{
}
<?php

class ArithmeticError extends Error
{
}
<?php

class AssertionError extends Error
{
}
<?php

class DivisionByZeroError extends Error
{
}
<?php

class Error extends Exception
{
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Polyfill\Php70;

/**
 * @author Nicolas Grekas <p@tchwork.com>
 *
 * @internal
 */
final class Php70
{
    public static function intdiv($dividend, $divisor)
    {
        $dividend = self::intArg($dividend, __FUNCTION__, 1);
        $divisor = self::intArg($divisor, __FUNCTION__, 2);

        if (0 === $divisor) {
            throw new \DivisionByZeroError('Division by zero');
        }
        if (-1 === $divisor && ~PHP_INT_MAX === $dividend) {
            throw new \ArithmeticError('Division of PHP_INT_MIN by -1 is not an integer');
        }

        return ($dividend - ($dividend % $divisor)) / $divisor;
    }

    public static function preg_replace_callback_array(array $patterns, $subject, $limit = -1, &$count = 0)
    {
        $count = 0;
        $result = (string) $subject;
        if (0 === $limit = self::intArg($limit, __FUNCTION__, 3)) {
            return $result;
        }

        foreach ($patterns as $pattern => $callback) {
            $result = preg_replace_callback($pattern, $callback, $result, $limit, $c);
            $count += $c;
        }

        return $result;
    }

    public static function error_clear_last()
    {
        static $handler;
        if (!$handler) {
            $handler = function () { return false; };
        }
        set_error_handler($handler);
        @trigger_error('');
        restore_error_handler();
    }

    private static function intArg($value, $caller, $pos)
    {
        if (\is_int($value)) {
            return $value;
        }
        if (!\is_numeric($value) || PHP_INT_MAX <= ($value += 0) || ~PHP_INT_MAX >= $value) {
            throw new \TypeError(sprintf('%s() expects parameter %d to be integer, %s given', $caller, $pos, \gettype($value)));
        }

        return (int) $value;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

use Symfony\Polyfill\Php70 as p;

if (PHP_VERSION_ID >= 70000) {
    return;
}

if (!defined('PHP_INT_MIN')) {
    define('PHP_INT_MIN', ~PHP_INT_MAX);
}

if (!function_exists('intdiv')) {
    function intdiv($dividend, $divisor) { return p\Php70::intdiv($dividend, $divisor); }
}
if (!function_exists('preg_replace_callback_array')) {
    function preg_replace_callback_array(array $patterns, $subject, $limit = -1, &$count = 0) { return p\Php70::preg_replace_callback_array($patterns, $subject, $limit, $count); }
}
if (!function_exists('error_clear_last')) {
    function error_clear_last() { return p\Php70::error_clear_last(); }
}
Symfony Polyfill / Php70
========================

This component provides features unavailable in releases prior to PHP 7.0:

- [`intdiv`](https://php.net/intdiv)
- [`preg_replace_callback_array`](https://php.net/preg_replace_callback_array)
- [`error_clear_last`](https://php.net/error_clear_last)
- `random_bytes` and `random_int` (from [paragonie/random_compat](https://github.com/paragonie/random_compat))
- [`*Error` throwable classes](https://php.net/Error)
- [`PHP_INT_MIN`](https://php.net/reserved.constants#constant.php-int-min)
- `SessionUpdateTimestampHandlerInterface`

More information can be found in the
[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md).

Compatibility notes
===================

To write portable code between PHP5 and PHP7, some care must be taken:
- `\*Error` exceptions must be caught before `\Exception`;
- after calling `error_clear_last()`, the result of `$e = error_get_last()` must be
  verified using `isset($e['message'][0])` instead of `null !== $e`.

License
=======

This library is released under the [MIT license](LICENSE).
{
    "name": "symfony/polyfill-php70",
    "type": "library",
    "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions",
    "keywords": ["polyfill", "shim", "compatibility", "portable"],
    "homepage": "https://symfony.com",
    "license": "MIT",
    "authors": [
        {
            "name": "Nicolas Grekas",
            "email": "p@tchwork.com"
        },
        {
            "name": "Symfony Community",
            "homepage": "https://symfony.com/contributors"
        }
    ],
    "require": {
        "php": ">=5.3.3",
        "paragonie/random_compat": "~1.0|~2.0|~9.99"
    },
    "autoload": {
        "psr-4": { "Symfony\\Polyfill\\Php70\\": "" },
        "files": [ "bootstrap.php" ],
        "classmap": [ "Resources/stubs" ]
    },
    "minimum-stability": "dev",
    "extra": {
        "branch-alias": {
            "dev-master": "1.17-dev"
        },
        "thanks": {
            "name": "symfony/polyfill",
            "url": "https://github.com/symfony/polyfill"
        }
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Stopwatch;

use Symfony\Contracts\Service\ResetInterface;

// Help opcache.preload discover always-needed symbols
class_exists(Section::class);

/**
 * Stopwatch provides a way to profile code.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class Stopwatch implements ResetInterface
{
    /**
     * @var bool
     */
    private $morePrecision;

    /**
     * @var Section[]
     */
    private $sections;

    /**
     * @var Section[]
     */
    private $activeSections;

    /**
     * @param bool $morePrecision If true, time is stored as float to keep the original microsecond precision
     */
    public function __construct(bool $morePrecision = false)
    {
        $this->morePrecision = $morePrecision;
        $this->reset();
    }

    /**
     * @return Section[]
     */
    public function getSections()
    {
        return $this->sections;
    }

    /**
     * Creates a new section or re-opens an existing section.
     *
     * @param string|null $id The id of the session to re-open, null to create a new one
     *
     * @throws \LogicException When the section to re-open is not reachable
     */
    public function openSection(string $id = null)
    {
        $current = end($this->activeSections);

        if (null !== $id && null === $current->get($id)) {
            throw new \LogicException(sprintf('The section "%s" has been started at an other level and can not be opened.', $id));
        }

        $this->start('__section__.child', 'section');
        $this->activeSections[] = $current->open($id);
        $this->start('__section__');
    }

    /**
     * Stops the last started section.
     *
     * The id parameter is used to retrieve the events from this section.
     *
     * @see getSectionEvents()
     *
     * @throws \LogicException When there's no started section to be stopped
     */
    public function stopSection(string $id)
    {
        $this->stop('__section__');

        if (1 == \count($this->activeSections)) {
            throw new \LogicException('There is no started section to stop.');
        }

        $this->sections[$id] = array_pop($this->activeSections)->setId($id);
        $this->stop('__section__.child');
    }

    /**
     * Starts an event.
     *
     * @return StopwatchEvent
     */
    public function start(string $name, string $category = null)
    {
        return end($this->activeSections)->startEvent($name, $category);
    }

    /**
     * Checks if the event was started.
     *
     * @return bool
     */
    public function isStarted(string $name)
    {
        return end($this->activeSections)->isEventStarted($name);
    }

    /**
     * Stops an event.
     *
     * @return StopwatchEvent
     */
    public function stop(string $name)
    {
        return end($this->activeSections)->stopEvent($name);
    }

    /**
     * Stops then restarts an event.
     *
     * @return StopwatchEvent
     */
    public function lap(string $name)
    {
        return end($this->activeSections)->stopEvent($name)->start();
    }

    /**
     * Returns a specific event by name.
     *
     * @return StopwatchEvent
     */
    public function getEvent(string $name)
    {
        return end($this->activeSections)->getEvent($name);
    }

    /**
     * Gets all events for a given section.
     *
     * @return StopwatchEvent[]
     */
    public function getSectionEvents(string $id)
    {
        return isset($this->sections[$id]) ? $this->sections[$id]->getEvents() : [];
    }

    /**
     * Resets the stopwatch to its original state.
     */
    public function reset()
    {
        $this->sections = $this->activeSections = ['__root__' => new Section(null, $this->morePrecision)];
    }
}
Copyright (c) 2004-2020 Fabien Potencier

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.
CHANGELOG
=========

5.0.0
-----

 * Removed support for passing `null` as 1st (`$id`) argument of `Section::get()` method, pass a valid child section identifier instead.

4.4.0
-----

 * Deprecated passing `null` as 1st (`$id`) argument of `Section::get()` method, pass a valid child section identifier instead.

3.4.0
-----

 * added the `Stopwatch::reset()` method
 * allowed to measure sub-millisecond times by introducing an argument to the
   constructor of `Stopwatch`
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Stopwatch;

/**
 * Stopwatch section.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class Section
{
    /**
     * @var StopwatchEvent[]
     */
    private $events = [];

    /**
     * @var float|null
     */
    private $origin;

    /**
     * @var bool
     */
    private $morePrecision;

    /**
     * @var string
     */
    private $id;

    /**
     * @var Section[]
     */
    private $children = [];

    /**
     * @param float|null $origin        Set the origin of the events in this section, use null to set their origin to their start time
     * @param bool       $morePrecision If true, time is stored as float to keep the original microsecond precision
     */
    public function __construct(float $origin = null, bool $morePrecision = false)
    {
        $this->origin = $origin;
        $this->morePrecision = $morePrecision;
    }

    /**
     * Returns the child section.
     *
     * @return self|null The child section or null when none found
     */
    public function get(string $id)
    {
        foreach ($this->children as $child) {
            if ($id === $child->getId()) {
                return $child;
            }
        }

        return null;
    }

    /**
     * Creates or re-opens a child section.
     *
     * @param string|null $id Null to create a new section, the identifier to re-open an existing one
     *
     * @return self
     */
    public function open(?string $id)
    {
        if (null === $id || null === $session = $this->get($id)) {
            $session = $this->children[] = new self(microtime(true) * 1000, $this->morePrecision);
        }

        return $session;
    }

    /**
     * @return string The identifier of the section
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Sets the session identifier.
     *
     * @return $this
     */
    public function setId(string $id)
    {
        $this->id = $id;

        return $this;
    }

    /**
     * Starts an event.
     *
     * @return StopwatchEvent The event
     */
    public function startEvent(string $name, ?string $category)
    {
        if (!isset($this->events[$name])) {
            $this->events[$name] = new StopwatchEvent($this->origin ?: microtime(true) * 1000, $category, $this->morePrecision);
        }

        return $this->events[$name]->start();
    }

    /**
     * Checks if the event was started.
     *
     * @return bool
     */
    public function isEventStarted(string $name)
    {
        return isset($this->events[$name]) && $this->events[$name]->isStarted();
    }

    /**
     * Stops an event.
     *
     * @return StopwatchEvent The event
     *
     * @throws \LogicException When the event has not been started
     */
    public function stopEvent(string $name)
    {
        if (!isset($this->events[$name])) {
            throw new \LogicException(sprintf('Event "%s" is not started.', $name));
        }

        return $this->events[$name]->stop();
    }

    /**
     * Stops then restarts an event.
     *
     * @return StopwatchEvent The event
     *
     * @throws \LogicException When the event has not been started
     */
    public function lap(string $name)
    {
        return $this->stopEvent($name)->start();
    }

    /**
     * Returns a specific event by name.
     *
     * @return StopwatchEvent The event
     *
     * @throws \LogicException When the event is not known
     */
    public function getEvent(string $name)
    {
        if (!isset($this->events[$name])) {
            throw new \LogicException(sprintf('Event "%s" is not known.', $name));
        }

        return $this->events[$name];
    }

    /**
     * Returns the events from this section.
     *
     * @return StopwatchEvent[] An array of StopwatchEvent instances
     */
    public function getEvents()
    {
        return $this->events;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Stopwatch;

/**
 * Represents an Period for an Event.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class StopwatchPeriod
{
    private $start;
    private $end;
    private $memory;

    /**
     * @param int|float $start         The relative time of the start of the period (in milliseconds)
     * @param int|float $end           The relative time of the end of the period (in milliseconds)
     * @param bool      $morePrecision If true, time is stored as float to keep the original microsecond precision
     */
    public function __construct($start, $end, bool $morePrecision = false)
    {
        $this->start = $morePrecision ? (float) $start : (int) $start;
        $this->end = $morePrecision ? (float) $end : (int) $end;
        $this->memory = memory_get_usage(true);
    }

    /**
     * Gets the relative time of the start of the period.
     *
     * @return int|float The time (in milliseconds)
     */
    public function getStartTime()
    {
        return $this->start;
    }

    /**
     * Gets the relative time of the end of the period.
     *
     * @return int|float The time (in milliseconds)
     */
    public function getEndTime()
    {
        return $this->end;
    }

    /**
     * Gets the time spent in this period.
     *
     * @return int|float The period duration (in milliseconds)
     */
    public function getDuration()
    {
        return $this->end - $this->start;
    }

    /**
     * Gets the memory usage.
     *
     * @return int The memory usage (in bytes)
     */
    public function getMemory()
    {
        return $this->memory;
    }
}
Stopwatch Component
===================

The Stopwatch component provides a way to profile code.

Resources
---------

  * [Documentation](https://symfony.com/doc/current/components/stopwatch.html)
  * [Contributing](https://symfony.com/doc/current/contributing/index.html)
  * [Report issues](https://github.com/symfony/symfony/issues) and
    [send Pull Requests](https://github.com/symfony/symfony/pulls)
    in the [main Symfony repository](https://github.com/symfony/symfony)
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Stopwatch;

/**
 * Represents an Event managed by Stopwatch.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class StopwatchEvent
{
    /**
     * @var StopwatchPeriod[]
     */
    private $periods = [];

    /**
     * @var float
     */
    private $origin;

    /**
     * @var string
     */
    private $category;

    /**
     * @var bool
     */
    private $morePrecision;

    /**
     * @var float[]
     */
    private $started = [];

    /**
     * @param float       $origin        The origin time in milliseconds
     * @param string|null $category      The event category or null to use the default
     * @param bool        $morePrecision If true, time is stored as float to keep the original microsecond precision
     *
     * @throws \InvalidArgumentException When the raw time is not valid
     */
    public function __construct(float $origin, string $category = null, bool $morePrecision = false)
    {
        $this->origin = $this->formatTime($origin);
        $this->category = \is_string($category) ? $category : 'default';
        $this->morePrecision = $morePrecision;
    }

    /**
     * Gets the category.
     *
     * @return string The category
     */
    public function getCategory()
    {
        return $this->category;
    }

    /**
     * Gets the origin.
     *
     * @return float The origin in milliseconds
     */
    public function getOrigin()
    {
        return $this->origin;
    }

    /**
     * Starts a new event period.
     *
     * @return $this
     */
    public function start()
    {
        $this->started[] = $this->getNow();

        return $this;
    }

    /**
     * Stops the last started event period.
     *
     * @return $this
     *
     * @throws \LogicException When stop() is called without a matching call to start()
     */
    public function stop()
    {
        if (!\count($this->started)) {
            throw new \LogicException('stop() called but start() has not been called before.');
        }

        $this->periods[] = new StopwatchPeriod(array_pop($this->started), $this->getNow(), $this->morePrecision);

        return $this;
    }

    /**
     * Checks if the event was started.
     *
     * @return bool
     */
    public function isStarted()
    {
        return !empty($this->started);
    }

    /**
     * Stops the current period and then starts a new one.
     *
     * @return $this
     */
    public function lap()
    {
        return $this->stop()->start();
    }

    /**
     * Stops all non already stopped periods.
     */
    public function ensureStopped()
    {
        while (\count($this->started)) {
            $this->stop();
        }
    }

    /**
     * Gets all event periods.
     *
     * @return StopwatchPeriod[] An array of StopwatchPeriod instances
     */
    public function getPeriods()
    {
        return $this->periods;
    }

    /**
     * Gets the relative time of the start of the first period.
     *
     * @return int|float The time (in milliseconds)
     */
    public function getStartTime()
    {
        if (isset($this->periods[0])) {
            return $this->periods[0]->getStartTime();
        }

        if ($this->started) {
            return $this->started[0];
        }

        return 0;
    }

    /**
     * Gets the relative time of the end of the last period.
     *
     * @return int|float The time (in milliseconds)
     */
    public function getEndTime()
    {
        $count = \count($this->periods);

        return $count ? $this->periods[$count - 1]->getEndTime() : 0;
    }

    /**
     * Gets the duration of the events (including all periods).
     *
     * @return int|float The duration (in milliseconds)
     */
    public function getDuration()
    {
        $periods = $this->periods;
        $left = \count($this->started);

        for ($i = $left - 1; $i >= 0; --$i) {
            $periods[] = new StopwatchPeriod($this->started[$i], $this->getNow(), $this->morePrecision);
        }

        $total = 0;
        foreach ($periods as $period) {
            $total += $period->getDuration();
        }

        return $total;
    }

    /**
     * Gets the max memory usage of all periods.
     *
     * @return int The memory usage (in bytes)
     */
    public function getMemory()
    {
        $memory = 0;
        foreach ($this->periods as $period) {
            if ($period->getMemory() > $memory) {
                $memory = $period->getMemory();
            }
        }

        return $memory;
    }

    /**
     * Return the current time relative to origin.
     *
     * @return float Time in ms
     */
    protected function getNow()
    {
        return $this->formatTime(microtime(true) * 1000 - $this->origin);
    }

    /**
     * Formats a time.
     *
     * @throws \InvalidArgumentException When the raw time is not valid
     */
    private function formatTime(float $time): float
    {
        return round($time, 1);
    }

    /**
     * @return string
     */
    public function __toString()
    {
        return sprintf('%s: %.2F MiB - %d ms', $this->getCategory(), $this->getMemory() / 1024 / 1024, $this->getDuration());
    }
}
{
    "name": "symfony/stopwatch",
    "type": "library",
    "description": "Symfony Stopwatch Component",
    "keywords": [],
    "homepage": "https://symfony.com",
    "license": "MIT",
    "authors": [
        {
            "name": "Fabien Potencier",
            "email": "fabien@symfony.com"
        },
        {
            "name": "Symfony Community",
            "homepage": "https://symfony.com/contributors"
        }
    ],
    "require": {
        "php": ">=7.2.5",
        "symfony/service-contracts": "^1.0|^2"
    },
    "autoload": {
        "psr-4": { "Symfony\\Component\\Stopwatch\\": "" },
        "exclude-from-classmap": [
            "/Tests/"
        ]
    },
    "minimum-stability": "dev",
    "extra": {
        "branch-alias": {
            "dev-master": "5.1-dev"
        }
    }
}
Copyright (c) 2004-2020 Fabien Potencier

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.
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Yaml;

use Symfony\Component\Yaml\Exception\ParseException;
use Symfony\Component\Yaml\Tag\TaggedValue;

/**
 * Parser parses YAML strings to convert them to PHP arrays.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 *
 * @final
 */
class Parser
{
    const TAG_PATTERN = '(?P<tag>![\w!.\/:-]+)';
    const BLOCK_SCALAR_HEADER_PATTERN = '(?P<separator>\||>)(?P<modifiers>\+|\-|\d+|\+\d+|\-\d+|\d+\+|\d+\-)?(?P<comments> +#.*)?';

    private $filename;
    private $offset = 0;
    private $totalNumberOfLines;
    private $lines = [];
    private $currentLineNb = -1;
    private $currentLine = '';
    private $refs = [];
    private $skippedLineNumbers = [];
    private $locallySkippedLineNumbers = [];
    private $refsBeingParsed = [];

    /**
     * Parses a YAML file into a PHP value.
     *
     * @param string $filename The path to the YAML file to be parsed
     * @param int    $flags    A bit field of PARSE_* constants to customize the YAML parser behavior
     *
     * @return mixed The YAML converted to a PHP value
     *
     * @throws ParseException If the file could not be read or the YAML is not valid
     */
    public function parseFile(string $filename, int $flags = 0)
    {
        if (!is_file($filename)) {
            throw new ParseException(sprintf('File "%s" does not exist.', $filename));
        }

        if (!is_readable($filename)) {
            throw new ParseException(sprintf('File "%s" cannot be read.', $filename));
        }

        $this->filename = $filename;

        try {
            return $this->parse(file_get_contents($filename), $flags);
        } finally {
            $this->filename = null;
        }
    }

    /**
     * Parses a YAML string to a PHP value.
     *
     * @param string $value A YAML string
     * @param int    $flags A bit field of PARSE_* constants to customize the YAML parser behavior
     *
     * @return mixed A PHP value
     *
     * @throws ParseException If the YAML is not valid
     */
    public function parse(string $value, int $flags = 0)
    {
        if (false === preg_match('//u', $value)) {
            throw new ParseException('The YAML value does not appear to be valid UTF-8.', -1, null, $this->filename);
        }

        $this->refs = [];

        $mbEncoding = null;

        if (2 /* MB_OVERLOAD_STRING */ & (int) ini_get('mbstring.func_overload')) {
            $mbEncoding = mb_internal_encoding();
            mb_internal_encoding('UTF-8');
        }

        try {
            $data = $this->doParse($value, $flags);
        } finally {
            if (null !== $mbEncoding) {
                mb_internal_encoding($mbEncoding);
            }
            $this->lines = [];
            $this->currentLine = '';
            $this->refs = [];
            $this->skippedLineNumbers = [];
            $this->locallySkippedLineNumbers = [];
        }

        return $data;
    }

    private function doParse(string $value, int $flags)
    {
        $this->currentLineNb = -1;
        $this->currentLine = '';
        $value = $this->cleanup($value);
        $this->lines = explode("\n", $value);
        $this->locallySkippedLineNumbers = [];

        if (null === $this->totalNumberOfLines) {
            $this->totalNumberOfLines = \count($this->lines);
        }

        if (!$this->moveToNextLine()) {
            return null;
        }

        $data = [];
        $context = null;
        $allowOverwrite = false;

        while ($this->isCurrentLineEmpty()) {
            if (!$this->moveToNextLine()) {
                return null;
            }
        }

        // Resolves the tag and returns if end of the document
        if (null !== ($tag = $this->getLineTag($this->currentLine, $flags, false)) && !$this->moveToNextLine()) {
            return new TaggedValue($tag, '');
        }

        do {
            if ($this->isCurrentLineEmpty()) {
                continue;
            }

            // tab?
            if ("\t" === $this->currentLine[0]) {
                throw new ParseException('A YAML file cannot contain tabs as indentation.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename);
            }

            Inline::initialize($flags, $this->getRealCurrentLineNb(), $this->filename);

            $isRef = $mergeNode = false;
            if ('-' === $this->currentLine[0] && self::preg_match('#^\-((?P<leadspaces>\s+)(?P<value>.+))?$#u', rtrim($this->currentLine), $values)) {
                if ($context && 'mapping' == $context) {
                    throw new ParseException('You cannot define a sequence item when in a mapping.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename);
                }
                $context = 'sequence';

                if (isset($values['value']) && '&' === $values['value'][0] && self::preg_match('#^&(?P<ref>[^ ]+) *(?P<value>.*)#u', $values['value'], $matches)) {
                    $isRef = $matches['ref'];
                    $this->refsBeingParsed[] = $isRef;
                    $values['value'] = $matches['value'];
                }

                if (isset($values['value'][1]) && '?' === $values['value'][0] && ' ' === $values['value'][1]) {
                    throw new ParseException('Complex mappings are not supported.', $this->getRealCurrentLineNb() + 1, $this->currentLine);
                }

                // array
                if (!isset($values['value']) || '' == trim($values['value'], ' ') || 0 === strpos(ltrim($values['value'], ' '), '#')) {
                    $data[] = $this->parseBlock($this->getRealCurrentLineNb() + 1, $this->getNextEmbedBlock(null, true) ?? '', $flags);
                } elseif (null !== $subTag = $this->getLineTag(ltrim($values['value'], ' '), $flags)) {
                    $data[] = new TaggedValue(
                        $subTag,
                        $this->parseBlock($this->getRealCurrentLineNb() + 1, $this->getNextEmbedBlock(null, true), $flags)
                    );
                } else {
                    if (isset($values['leadspaces'])
                        && self::preg_match('#^(?P<key>'.Inline::REGEX_QUOTED_STRING.'|[^ \'"\{\[].*?) *\:(\s+(?P<value>.+?))?\s*$#u', $this->trimTag($values['value']), $matches)
                    ) {
                        // this is a compact notation element, add to next block and parse
                        $block = $values['value'];
                        if ($this->isNextLineIndented()) {
                            $block .= "\n".$this->getNextEmbedBlock($this->getCurrentLineIndentation() + \strlen($values['leadspaces']) + 1);
                        }

                        $data[] = $this->parseBlock($this->getRealCurrentLineNb(), $block, $flags);
                    } else {
                        $data[] = $this->parseValue($values['value'], $flags, $context);
                    }
                }
                if ($isRef) {
                    $this->refs[$isRef] = end($data);
                    array_pop($this->refsBeingParsed);
                }
            } elseif (
                self::preg_match('#^(?P<key>(?:![^\s]++\s++)?(?:'.Inline::REGEX_QUOTED_STRING.'|(?:!?!php/const:)?[^ \'"\[\{!].*?)) *\:(\s++(?P<value>.+))?$#u', rtrim($this->currentLine), $values)
                && (false === strpos($values['key'], ' #') || \in_array($values['key'][0], ['"', "'"]))
            ) {
                if ($context && 'sequence' == $context) {
                    throw new ParseException('You cannot define a mapping item when in a sequence.', $this->currentLineNb + 1, $this->currentLine, $this->filename);
                }
                $context = 'mapping';

                try {
                    $key = Inline::parseScalar($values['key']);
                } catch (ParseException $e) {
                    $e->setParsedLine($this->getRealCurrentLineNb() + 1);
                    $e->setSnippet($this->currentLine);

                    throw $e;
                }

                if (!\is_string($key) && !\is_int($key)) {
                    throw new ParseException(sprintf('%s keys are not supported. Quote your evaluable mapping keys instead.', is_numeric($key) ? 'Numeric' : 'Non-string'), $this->getRealCurrentLineNb() + 1, $this->currentLine);
                }

                // Convert float keys to strings, to avoid being converted to integers by PHP
                if (\is_float($key)) {
                    $key = (string) $key;
                }

                if ('<<' === $key && (!isset($values['value']) || '&' !== $values['value'][0] || !self::preg_match('#^&(?P<ref>[^ ]+)#u', $values['value'], $refMatches))) {
                    $mergeNode = true;
                    $allowOverwrite = true;
                    if (isset($values['value'][0]) && '*' === $values['value'][0]) {
                        $refName = substr(rtrim($values['value']), 1);
                        if (!\array_key_exists($refName, $this->refs)) {
                            if (false !== $pos = array_search($refName, $this->refsBeingParsed, true)) {
                                throw new ParseException(sprintf('Circular reference [%s, %s] detected for reference "%s".', implode(', ', \array_slice($this->refsBeingParsed, $pos)), $refName, $refName), $this->currentLineNb + 1, $this->currentLine, $this->filename);
                            }

                            throw new ParseException(sprintf('Reference "%s" does not exist.', $refName), $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename);
                        }

                        $refValue = $this->refs[$refName];

                        if (Yaml::PARSE_OBJECT_FOR_MAP & $flags && $refValue instanceof \stdClass) {
                            $refValue = (array) $refValue;
                        }

                        if (!\is_array($refValue)) {
                            throw new ParseException('YAML merge keys used with a scalar value instead of an array.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename);
                        }

                        $data += $refValue; // array union
                    } else {
                        if (isset($values['value']) && '' !== $values['value']) {
                            $value = $values['value'];
                        } else {
                            $value = $this->getNextEmbedBlock();
                        }
                        $parsed = $this->parseBlock($this->getRealCurrentLineNb() + 1, $value, $flags);

                        if (Yaml::PARSE_OBJECT_FOR_MAP & $flags && $parsed instanceof \stdClass) {
                            $parsed = (array) $parsed;
                        }

                        if (!\is_array($parsed)) {
                            throw new ParseException('YAML merge keys used with a scalar value instead of an array.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename);
                        }

                        if (isset($parsed[0])) {
                            // If the value associated with the merge key is a sequence, then this sequence is expected to contain mapping nodes
                            // and each of these nodes is merged in turn according to its order in the sequence. Keys in mapping nodes earlier
                            // in the sequence override keys specified in later mapping nodes.
                            foreach ($parsed as $parsedItem) {
                                if (Yaml::PARSE_OBJECT_FOR_MAP & $flags && $parsedItem instanceof \stdClass) {
                                    $parsedItem = (array) $parsedItem;
                                }

                                if (!\is_array($parsedItem)) {
                                    throw new ParseException('Merge items must be arrays.', $this->getRealCurrentLineNb() + 1, $parsedItem, $this->filename);
                                }

                                $data += $parsedItem; // array union
                            }
                        } else {
                            // If the value associated with the key is a single mapping node, each of its key/value pairs is inserted into the
                            // current mapping, unless the key already exists in it.
                            $data += $parsed; // array union
                        }
                    }
                } elseif ('<<' !== $key && isset($values['value']) && '&' === $values['value'][0] && self::preg_match('#^&(?P<ref>[^ ]++) *+(?P<value>.*)#u', $values['value'], $matches)) {
                    $isRef = $matches['ref'];
                    $this->refsBeingParsed[] = $isRef;
                    $values['value'] = $matches['value'];
                }

                $subTag = null;
                if ($mergeNode) {
                    // Merge keys
                } elseif (!isset($values['value']) || '' === $values['value'] || 0 === strpos($values['value'], '#') || (null !== $subTag = $this->getLineTag($values['value'], $flags)) || '<<' === $key) {
                    // hash
                    // if next line is less indented or equal, then it means that the current value is null
                    if (!$this->isNextLineIndented() && !$this->isNextLineUnIndentedCollection()) {
                        // Spec: Keys MUST be unique; first one wins.
                        // But overwriting is allowed when a merge node is used in current block.
                        if ($allowOverwrite || !isset($data[$key])) {
                            if (null !== $subTag) {
                                $data[$key] = new TaggedValue($subTag, '');
                            } else {
                                $data[$key] = null;
                            }
                        } else {
                            throw new ParseException(sprintf('Duplicate key "%s" detected.', $key), $this->getRealCurrentLineNb() + 1, $this->currentLine);
                        }
                    } else {
                        // remember the parsed line number here in case we need it to provide some contexts in error messages below
                        $realCurrentLineNbKey = $this->getRealCurrentLineNb();
                        $value = $this->parseBlock($this->getRealCurrentLineNb() + 1, $this->getNextEmbedBlock(), $flags);
                        if ('<<' === $key) {
                            $this->refs[$refMatches['ref']] = $value;

                            if (Yaml::PARSE_OBJECT_FOR_MAP & $flags && $value instanceof \stdClass) {
                                $value = (array) $value;
                            }

                            $data += $value;
                        } elseif ($allowOverwrite || !isset($data[$key])) {
                            // Spec: Keys MUST be unique; first one wins.
                            // But overwriting is allowed when a merge node is used in current block.
                            if (null !== $subTag) {
                                $data[$key] = new TaggedValue($subTag, $value);
                            } else {
                                $data[$key] = $value;
                            }
                        } else {
                            throw new ParseException(sprintf('Duplicate key "%s" detected.', $key), $realCurrentLineNbKey + 1, $this->currentLine);
                        }
                    }
                } else {
                    $value = $this->parseValue(rtrim($values['value']), $flags, $context);
                    // Spec: Keys MUST be unique; first one wins.
                    // But overwriting is allowed when a merge node is used in current block.
                    if ($allowOverwrite || !isset($data[$key])) {
                        $data[$key] = $value;
                    } else {
                        throw new ParseException(sprintf('Duplicate key "%s" detected.', $key), $this->getRealCurrentLineNb() + 1, $this->currentLine);
                    }
                }
                if ($isRef) {
                    $this->refs[$isRef] = $data[$key];
                    array_pop($this->refsBeingParsed);
                }
            } elseif ('"' === $this->currentLine[0] || "'" === $this->currentLine[0]) {
                if (null !== $context) {
                    throw new ParseException('Unable to parse.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename);
                }

                try {
                    return Inline::parse($this->parseQuotedString($this->currentLine), $flags, $this->refs);
                } catch (ParseException $e) {
                    $e->setParsedLine($this->getRealCurrentLineNb() + 1);
                    $e->setSnippet($this->currentLine);

                    throw $e;
                }
            } elseif ('{' === $this->currentLine[0]) {
                if (null !== $context) {
                    throw new ParseException('Unable to parse.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename);
                }

                try {
                    $parsedMapping = Inline::parse($this->lexInlineMapping($this->currentLine), $flags, $this->refs);

                    while ($this->moveToNextLine()) {
                        if (!$this->isCurrentLineEmpty()) {
                            throw new ParseException('Unable to parse.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename);
                        }
                    }

                    return $parsedMapping;
                } catch (ParseException $e) {
                    $e->setParsedLine($this->getRealCurrentLineNb() + 1);
                    $e->setSnippet($this->currentLine);

                    throw $e;
                }
            } elseif ('[' === $this->currentLine[0]) {
                if (null !== $context) {
                    throw new ParseException('Unable to parse.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename);
                }

                try {
                    $parsedSequence = Inline::parse($this->lexInlineSequence($this->currentLine), $flags, $this->refs);

                    while ($this->moveToNextLine()) {
                        if (!$this->isCurrentLineEmpty()) {
                            throw new ParseException('Unable to parse.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename);
                        }
                    }

                    return $parsedSequence;
                } catch (ParseException $e) {
                    $e->setParsedLine($this->getRealCurrentLineNb() + 1);
                    $e->setSnippet($this->currentLine);

                    throw $e;
                }
            } else {
                // multiple documents are not supported
                if ('---' === $this->currentLine) {
                    throw new ParseException('Multiple documents are not supported.', $this->currentLineNb + 1, $this->currentLine, $this->filename);
                }

                if ($deprecatedUsage = (isset($this->currentLine[1]) && '?' === $this->currentLine[0] && ' ' === $this->currentLine[1])) {
                    throw new ParseException('Complex mappings are not supported.', $this->getRealCurrentLineNb() + 1, $this->currentLine);
                }

                // 1-liner optionally followed by newline(s)
                if (\is_string($value) && $this->lines[0] === trim($value)) {
                    try {
                        $value = Inline::parse($this->lines[0], $flags, $this->refs);
                    } catch (ParseException $e) {
                        $e->setParsedLine($this->getRealCurrentLineNb() + 1);
                        $e->setSnippet($this->currentLine);

                        throw $e;
                    }

                    return $value;
                }

                // try to parse the value as a multi-line string as a last resort
                if (0 === $this->currentLineNb) {
                    $previousLineWasNewline = false;
                    $previousLineWasTerminatedWithBackslash = false;
                    $value = '';

                    foreach ($this->lines as $line) {
                        if ('' !== ltrim($line) && '#' === ltrim($line)[0]) {
                            continue;
                        }
                        // If the indentation is not consistent at offset 0, it is to be considered as a ParseError
                        if (0 === $this->offset && !$deprecatedUsage && isset($line[0]) && ' ' === $line[0]) {
                            throw new ParseException('Unable to parse.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename);
                        }

                        if (false !== strpos($line, ': ')) {
                            @trigger_error('Support for mapping keys in multi-line blocks is deprecated since Symfony 4.3 and will throw a ParseException in 5.0.', E_USER_DEPRECATED);
                        }

                        if ('' === trim($line)) {
                            $value .= "\n";
                        } elseif (!$previousLineWasNewline && !$previousLineWasTerminatedWithBackslash) {
                            $value .= ' ';
                        }

                        if ('' !== trim($line) && '\\' === substr($line, -1)) {
                            $value .= ltrim(substr($line, 0, -1));
                        } elseif ('' !== trim($line)) {
                            $value .= trim($line);
                        }

                        if ('' === trim($line)) {
                            $previousLineWasNewline = true;
                            $previousLineWasTerminatedWithBackslash = false;
                        } elseif ('\\' === substr($line, -1)) {
                            $previousLineWasNewline = false;
                            $previousLineWasTerminatedWithBackslash = true;
                        } else {
                            $previousLineWasNewline = false;
                            $previousLineWasTerminatedWithBackslash = false;
                        }
                    }

                    try {
                        return Inline::parse(trim($value));
                    } catch (ParseException $e) {
                        // fall-through to the ParseException thrown below
                    }
                }

                throw new ParseException('Unable to parse.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename);
            }
        } while ($this->moveToNextLine());

        if (null !== $tag) {
            $data = new TaggedValue($tag, $data);
        }

        if (Yaml::PARSE_OBJECT_FOR_MAP & $flags && !\is_object($data) && 'mapping' === $context) {
            $object = new \stdClass();

            foreach ($data as $key => $value) {
                $object->$key = $value;
            }

            $data = $object;
        }

        return empty($data) ? null : $data;
    }

    private function parseBlock(int $offset, string $yaml, int $flags)
    {
        $skippedLineNumbers = $this->skippedLineNumbers;

        foreach ($this->locallySkippedLineNumbers as $lineNumber) {
            if ($lineNumber < $offset) {
                continue;
            }

            $skippedLineNumbers[] = $lineNumber;
        }

        $parser = new self();
        $parser->offset = $offset;
        $parser->totalNumberOfLines = $this->totalNumberOfLines;
        $parser->skippedLineNumbers = $skippedLineNumbers;
        $parser->refs = &$this->refs;
        $parser->refsBeingParsed = $this->refsBeingParsed;

        return $parser->doParse($yaml, $flags);
    }

    /**
     * Returns the current line number (takes the offset into account).
     *
     * @internal
     *
     * @return int The current line number
     */
    public function getRealCurrentLineNb(): int
    {
        $realCurrentLineNumber = $this->currentLineNb + $this->offset;

        foreach ($this->skippedLineNumbers as $skippedLineNumber) {
            if ($skippedLineNumber > $realCurrentLineNumber) {
                break;
            }

            ++$realCurrentLineNumber;
        }

        return $realCurrentLineNumber;
    }

    /**
     * Returns the current line indentation.
     *
     * @return int The current line indentation
     */
    private function getCurrentLineIndentation(): int
    {
        return \strlen($this->currentLine) - \strlen(ltrim($this->currentLine, ' '));
    }

    /**
     * Returns the next embed block of YAML.
     *
     * @param int|null $indentation The indent level at which the block is to be read, or null for default
     * @param bool     $inSequence  True if the enclosing data structure is a sequence
     *
     * @return string A YAML string
     *
     * @throws ParseException When indentation problem are detected
     */
    private function getNextEmbedBlock(int $indentation = null, bool $inSequence = false): string
    {
        $oldLineIndentation = $this->getCurrentLineIndentation();

        if (!$this->moveToNextLine()) {
            return '';
        }

        if (null === $indentation) {
            $newIndent = null;
            $movements = 0;

            do {
                $EOF = false;

                // empty and comment-like lines do not influence the indentation depth
                if ($this->isCurrentLineEmpty() || $this->isCurrentLineComment()) {
                    $EOF = !$this->moveToNextLine();

                    if (!$EOF) {
                        ++$movements;
                    }
                } else {
                    $newIndent = $this->getCurrentLineIndentation();
                }
            } while (!$EOF && null === $newIndent);

            for ($i = 0; $i < $movements; ++$i) {
                $this->moveToPreviousLine();
            }

            $unindentedEmbedBlock = $this->isStringUnIndentedCollectionItem();

            if (!$this->isCurrentLineEmpty() && 0 === $newIndent && !$unindentedEmbedBlock) {
                throw new ParseException('Indentation problem.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename);
            }
        } else {
            $newIndent = $indentation;
        }

        $data = [];
        if ($this->getCurrentLineIndentation() >= $newIndent) {
            $data[] = substr($this->currentLine, $newIndent);
        } elseif ($this->isCurrentLineEmpty() || $this->isCurrentLineComment()) {
            $data[] = $this->currentLine;
        } else {
            $this->moveToPreviousLine();

            return '';
        }

        if ($inSequence && $oldLineIndentation === $newIndent && isset($data[0][0]) && '-' === $data[0][0]) {
            // the previous line contained a dash but no item content, this line is a sequence item with the same indentation
            // and therefore no nested list or mapping
            $this->moveToPreviousLine();

            return '';
        }

        $isItUnindentedCollection = $this->isStringUnIndentedCollectionItem();
        $isItComment = $this->isCurrentLineComment();

        while ($this->moveToNextLine()) {
            if ($isItComment && !$isItUnindentedCollection) {
                $isItUnindentedCollection = $this->isStringUnIndentedCollectionItem();
                $isItComment = $this->isCurrentLineComment();
            }

            $indent = $this->getCurrentLineIndentation();

            if ($isItUnindentedCollection && !$this->isCurrentLineEmpty() && !$this->isStringUnIndentedCollectionItem() && $newIndent === $indent) {
                $this->moveToPreviousLine();
                break;
            }

            if ($this->isCurrentLineBlank()) {
                $data[] = substr($this->currentLine, $newIndent);
                continue;
            }

            if ($indent >= $newIndent) {
                $data[] = substr($this->currentLine, $newIndent);
            } elseif ($this->isCurrentLineComment()) {
                $data[] = $this->currentLine;
            } elseif (0 == $indent) {
                $this->moveToPreviousLine();

                break;
            } else {
                throw new ParseException('Indentation problem.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename);
            }
        }

        return implode("\n", $data);
    }

    /**
     * Moves the parser to the next line.
     */
    private function moveToNextLine(): bool
    {
        if ($this->currentLineNb >= \count($this->lines) - 1) {
            return false;
        }

        $this->currentLine = $this->lines[++$this->currentLineNb];

        return true;
    }

    /**
     * Moves the parser to the previous line.
     */
    private function moveToPreviousLine(): bool
    {
        if ($this->currentLineNb < 1) {
            return false;
        }

        $this->currentLine = $this->lines[--$this->currentLineNb];

        return true;
    }

    /**
     * Parses a YAML value.
     *
     * @param string $value   A YAML value
     * @param int    $flags   A bit field of PARSE_* constants to customize the YAML parser behavior
     * @param string $context The parser context (either sequence or mapping)
     *
     * @return mixed A PHP value
     *
     * @throws ParseException When reference does not exist
     */
    private function parseValue(string $value, int $flags, string $context)
    {
        if (0 === strpos($value, '*')) {
            if (false !== $pos = strpos($value, '#')) {
                $value = substr($value, 1, $pos - 2);
            } else {
                $value = substr($value, 1);
            }

            if (!\array_key_exists($value, $this->refs)) {
                if (false !== $pos = array_search($value, $this->refsBeingParsed, true)) {
                    throw new ParseException(sprintf('Circular reference [%s, %s] detected for reference "%s".', implode(', ', \array_slice($this->refsBeingParsed, $pos)), $value, $value), $this->currentLineNb + 1, $this->currentLine, $this->filename);
                }

                throw new ParseException(sprintf('Reference "%s" does not exist.', $value), $this->currentLineNb + 1, $this->currentLine, $this->filename);
            }

            return $this->refs[$value];
        }

        if (\in_array($value[0], ['!', '|', '>'], true) && self::preg_match('/^(?:'.self::TAG_PATTERN.' +)?'.self::BLOCK_SCALAR_HEADER_PATTERN.'$/', $value, $matches)) {
            $modifiers = isset($matches['modifiers']) ? $matches['modifiers'] : '';

            $data = $this->parseBlockScalar($matches['separator'], preg_replace('#\d+#', '', $modifiers), (int) abs((int) $modifiers));

            if ('' !== $matches['tag'] && '!' !== $matches['tag']) {
                if ('!!binary' === $matches['tag']) {
                    return Inline::evaluateBinaryScalar($data);
                }

                return new TaggedValue(substr($matches['tag'], 1), $data);
            }

            return $data;
        }

        try {
            if ('' !== $value && '{' === $value[0]) {
                return Inline::parse($this->lexInlineMapping($value), $flags, $this->refs);
            } elseif ('' !== $value && '[' === $value[0]) {
                return Inline::parse($this->lexInlineSequence($value), $flags, $this->refs);
            }

            $quotation = '' !== $value && ('"' === $value[0] || "'" === $value[0]) ? $value[0] : null;

            // do not take following lines into account when the current line is a quoted single line value
            if (null !== $quotation && self::preg_match('/^'.$quotation.'.*'.$quotation.'(\s*#.*)?$/', $value)) {
                return Inline::parse($value, $flags, $this->refs);
            }

            $lines = [];

            while ($this->moveToNextLine()) {
                // unquoted strings end before the first unindented line
                if (null === $quotation && 0 === $this->getCurrentLineIndentation()) {
                    $this->moveToPreviousLine();

                    break;
                }

                $lines[] = trim($this->currentLine);

                // quoted string values end with a line that is terminated with the quotation character
                $escapedLine = str_replace(['\\\\', '\\"'], '', $this->currentLine);
                if ('' !== $escapedLine && substr($escapedLine, -1) === $quotation) {
                    break;
                }
            }

            for ($i = 0, $linesCount = \count($lines), $previousLineBlank = false; $i < $linesCount; ++$i) {
                if ('' === $lines[$i]) {
                    $value .= "\n";
                    $previousLineBlank = true;
                } elseif ($previousLineBlank) {
                    $value .= $lines[$i];
                    $previousLineBlank = false;
                } else {
                    $value .= ' '.$lines[$i];
                    $previousLineBlank = false;
                }
            }

            Inline::$parsedLineNumber = $this->getRealCurrentLineNb();

            $parsedValue = Inline::parse($value, $flags, $this->refs);

            if ('mapping' === $context && \is_string($parsedValue) && '"' !== $value[0] && "'" !== $value[0] && '[' !== $value[0] && '{' !== $value[0] && '!' !== $value[0] && false !== strpos($parsedValue, ': ')) {
                throw new ParseException('A colon cannot be used in an unquoted mapping value.', $this->getRealCurrentLineNb() + 1, $value, $this->filename);
            }

            return $parsedValue;
        } catch (ParseException $e) {
            $e->setParsedLine($this->getRealCurrentLineNb() + 1);
            $e->setSnippet($this->currentLine);

            throw $e;
        }
    }

    /**
     * Parses a block scalar.
     *
     * @param string $style       The style indicator that was used to begin this block scalar (| or >)
     * @param string $chomping    The chomping indicator that was used to begin this block scalar (+ or -)
     * @param int    $indentation The indentation indicator that was used to begin this block scalar
     */
    private function parseBlockScalar(string $style, string $chomping = '', int $indentation = 0): string
    {
        $notEOF = $this->moveToNextLine();
        if (!$notEOF) {
            return '';
        }

        $isCurrentLineBlank = $this->isCurrentLineBlank();
        $blockLines = [];

        // leading blank lines are consumed before determining indentation
        while ($notEOF && $isCurrentLineBlank) {
            // newline only if not EOF
            if ($notEOF = $this->moveToNextLine()) {
                $blockLines[] = '';
                $isCurrentLineBlank = $this->isCurrentLineBlank();
            }
        }

        // determine indentation if not specified
        if (0 === $indentation) {
            $currentLineLength = \strlen($this->currentLine);

            for ($i = 0; $i < $currentLineLength && ' ' === $this->currentLine[$i]; ++$i) {
                ++$indentation;
            }
        }

        if ($indentation > 0) {
            $pattern = sprintf('/^ {%d}(.*)$/', $indentation);

            while (
                $notEOF && (
                    $isCurrentLineBlank ||
                    self::preg_match($pattern, $this->currentLine, $matches)
                )
            ) {
                if ($isCurrentLineBlank && \strlen($this->currentLine) > $indentation) {
                    $blockLines[] = substr($this->currentLine, $indentation);
                } elseif ($isCurrentLineBlank) {
                    $blockLines[] = '';
                } else {
                    $blockLines[] = $matches[1];
                }

                // newline only if not EOF
                if ($notEOF = $this->moveToNextLine()) {
                    $isCurrentLineBlank = $this->isCurrentLineBlank();
                }
            }
        } elseif ($notEOF) {
            $blockLines[] = '';
        }

        if ($notEOF) {
            $blockLines[] = '';
            $this->moveToPreviousLine();
        } elseif (!$notEOF && !$this->isCurrentLineLastLineInDocument()) {
            $blockLines[] = '';
        }

        // folded style
        if ('>' === $style) {
            $text = '';
            $previousLineIndented = false;
            $previousLineBlank = false;

            for ($i = 0, $blockLinesCount = \count($blockLines); $i < $blockLinesCount; ++$i) {
                if ('' === $blockLines[$i]) {
                    $text .= "\n";
                    $previousLineIndented = false;
                    $previousLineBlank = true;
                } elseif (' ' === $blockLines[$i][0]) {
                    $text .= "\n".$blockLines[$i];
                    $previousLineIndented = true;
                    $previousLineBlank = false;
                } elseif ($previousLineIndented) {
                    $text .= "\n".$blockLines[$i];
                    $previousLineIndented = false;
                    $previousLineBlank = false;
                } elseif ($previousLineBlank || 0 === $i) {
                    $text .= $blockLines[$i];
                    $previousLineIndented = false;
                    $previousLineBlank = false;
                } else {
                    $text .= ' '.$blockLines[$i];
                    $previousLineIndented = false;
                    $previousLineBlank = false;
                }
            }
        } else {
            $text = implode("\n", $blockLines);
        }

        // deal with trailing newlines
        if ('' === $chomping) {
            $text = preg_replace('/\n+$/', "\n", $text);
        } elseif ('-' === $chomping) {
            $text = preg_replace('/\n+$/', '', $text);
        }

        return $text;
    }

    /**
     * Returns true if the next line is indented.
     *
     * @return bool Returns true if the next line is indented, false otherwise
     */
    private function isNextLineIndented(): bool
    {
        $currentIndentation = $this->getCurrentLineIndentation();
        $movements = 0;

        do {
            $EOF = !$this->moveToNextLine();

            if (!$EOF) {
                ++$movements;
            }
        } while (!$EOF && ($this->isCurrentLineEmpty() || $this->isCurrentLineComment()));

        if ($EOF) {
            return false;
        }

        $ret = $this->getCurrentLineIndentation() > $currentIndentation;

        for ($i = 0; $i < $movements; ++$i) {
            $this->moveToPreviousLine();
        }

        return $ret;
    }

    /**
     * Returns true if the current line is blank or if it is a comment line.
     *
     * @return bool Returns true if the current line is empty or if it is a comment line, false otherwise
     */
    private function isCurrentLineEmpty(): bool
    {
        return $this->isCurrentLineBlank() || $this->isCurrentLineComment();
    }

    /**
     * Returns true if the current line is blank.
     *
     * @return bool Returns true if the current line is blank, false otherwise
     */
    private function isCurrentLineBlank(): bool
    {
        return '' == trim($this->currentLine, ' ');
    }

    /**
     * Returns true if the current line is a comment line.
     *
     * @return bool Returns true if the current line is a comment line, false otherwise
     */
    private function isCurrentLineComment(): bool
    {
        //checking explicitly the first char of the trim is faster than loops or strpos
        $ltrimmedLine = ltrim($this->currentLine, ' ');

        return '' !== $ltrimmedLine && '#' === $ltrimmedLine[0];
    }

    private function isCurrentLineLastLineInDocument(): bool
    {
        return ($this->offset + $this->currentLineNb) >= ($this->totalNumberOfLines - 1);
    }

    /**
     * Cleanups a YAML string to be parsed.
     *
     * @param string $value The input YAML string
     *
     * @return string A cleaned up YAML string
     */
    private function cleanup(string $value): string
    {
        $value = str_replace(["\r\n", "\r"], "\n", $value);

        // strip YAML header
        $count = 0;
        $value = preg_replace('#^\%YAML[: ][\d\.]+.*\n#u', '', $value, -1, $count);
        $this->offset += $count;

        // remove leading comments
        $trimmedValue = preg_replace('#^(\#.*?\n)+#s', '', $value, -1, $count);
        if (1 === $count) {
            // items have been removed, update the offset
            $this->offset += substr_count($value, "\n") - substr_count($trimmedValue, "\n");
            $value = $trimmedValue;
        }

        // remove start of the document marker (---)
        $trimmedValue = preg_replace('#^\-\-\-.*?\n#s', '', $value, -1, $count);
        if (1 === $count) {
            // items have been removed, update the offset
            $this->offset += substr_count($value, "\n") - substr_count($trimmedValue, "\n");
            $value = $trimmedValue;

            // remove end of the document marker (...)
            $value = preg_replace('#\.\.\.\s*$#', '', $value);
        }

        return $value;
    }

    /**
     * Returns true if the next line starts unindented collection.
     *
     * @return bool Returns true if the next line starts unindented collection, false otherwise
     */
    private function isNextLineUnIndentedCollection(): bool
    {
        $currentIndentation = $this->getCurrentLineIndentation();
        $movements = 0;

        do {
            $EOF = !$this->moveToNextLine();

            if (!$EOF) {
                ++$movements;
            }
        } while (!$EOF && ($this->isCurrentLineEmpty() || $this->isCurrentLineComment()));

        if ($EOF) {
            return false;
        }

        $ret = $this->getCurrentLineIndentation() === $currentIndentation && $this->isStringUnIndentedCollectionItem();

        for ($i = 0; $i < $movements; ++$i) {
            $this->moveToPreviousLine();
        }

        return $ret;
    }

    /**
     * Returns true if the string is un-indented collection item.
     *
     * @return bool Returns true if the string is un-indented collection item, false otherwise
     */
    private function isStringUnIndentedCollectionItem(): bool
    {
        return '-' === rtrim($this->currentLine) || 0 === strpos($this->currentLine, '- ');
    }

    /**
     * A local wrapper for "preg_match" which will throw a ParseException if there
     * is an internal error in the PCRE engine.
     *
     * This avoids us needing to check for "false" every time PCRE is used
     * in the YAML engine
     *
     * @throws ParseException on a PCRE internal error
     *
     * @see preg_last_error()
     *
     * @internal
     */
    public static function preg_match(string $pattern, string $subject, array &$matches = null, int $flags = 0, int $offset = 0): int
    {
        if (false === $ret = preg_match($pattern, $subject, $matches, $flags, $offset)) {
            switch (preg_last_error()) {
                case PREG_INTERNAL_ERROR:
                    $error = 'Internal PCRE error.';
                    break;
                case PREG_BACKTRACK_LIMIT_ERROR:
                    $error = 'pcre.backtrack_limit reached.';
                    break;
                case PREG_RECURSION_LIMIT_ERROR:
                    $error = 'pcre.recursion_limit reached.';
                    break;
                case PREG_BAD_UTF8_ERROR:
                    $error = 'Malformed UTF-8 data.';
                    break;
                case PREG_BAD_UTF8_OFFSET_ERROR:
                    $error = 'Offset doesn\'t correspond to the begin of a valid UTF-8 code point.';
                    break;
                default:
                    $error = 'Error.';
            }

            throw new ParseException($error);
        }

        return $ret;
    }

    /**
     * Trim the tag on top of the value.
     *
     * Prevent values such as "!foo {quz: bar}" to be considered as
     * a mapping block.
     */
    private function trimTag(string $value): string
    {
        if ('!' === $value[0]) {
            return ltrim(substr($value, 1, strcspn($value, " \r\n", 1)), ' ');
        }

        return $value;
    }

    private function getLineTag(string $value, int $flags, bool $nextLineCheck = true): ?string
    {
        if ('' === $value || '!' !== $value[0] || 1 !== self::preg_match('/^'.self::TAG_PATTERN.' *( +#.*)?$/', $value, $matches)) {
            return null;
        }

        if ($nextLineCheck && !$this->isNextLineIndented()) {
            return null;
        }

        $tag = substr($matches['tag'], 1);

        // Built-in tags
        if ($tag && '!' === $tag[0]) {
            throw new ParseException(sprintf('The built-in tag "!%s" is not implemented.', $tag), $this->getRealCurrentLineNb() + 1, $value, $this->filename);
        }

        if (Yaml::PARSE_CUSTOM_TAGS & $flags) {
            return $tag;
        }

        throw new ParseException(sprintf('Tags support is not enabled. You must use the flag "Yaml::PARSE_CUSTOM_TAGS" to use "%s".', $matches['tag']), $this->getRealCurrentLineNb() + 1, $value, $this->filename);
    }

    private function parseQuotedString(string $yaml): ?string
    {
        if ('' === $yaml || ('"' !== $yaml[0] && "'" !== $yaml[0])) {
            throw new \InvalidArgumentException(sprintf('"%s" is not a quoted string.', $yaml));
        }

        $lines = [$yaml];

        while ($this->moveToNextLine()) {
            $lines[] = $this->currentLine;

            if (!$this->isCurrentLineEmpty() && $yaml[0] === $this->currentLine[-1]) {
                break;
            }
        }

        $value = '';

        for ($i = 0, $linesCount = \count($lines), $previousLineWasNewline = false, $previousLineWasTerminatedWithBackslash = false; $i < $linesCount; ++$i) {
            if ('' === trim($lines[$i])) {
                $value .= "\n";
            } elseif (!$previousLineWasNewline && !$previousLineWasTerminatedWithBackslash) {
                $value .= ' ';
            }

            if ('' !== trim($lines[$i]) && '\\' === substr($lines[$i], -1)) {
                $value .= ltrim(substr($lines[$i], 0, -1));
            } elseif ('' !== trim($lines[$i])) {
                $value .= trim($lines[$i]);
            }

            if ('' === trim($lines[$i])) {
                $previousLineWasNewline = true;
                $previousLineWasTerminatedWithBackslash = false;
            } elseif ('\\' === substr($lines[$i], -1)) {
                $previousLineWasNewline = false;
                $previousLineWasTerminatedWithBackslash = true;
            } else {
                $previousLineWasNewline = false;
                $previousLineWasTerminatedWithBackslash = false;
            }
        }

        return $value;

        for ($i = 1; isset($yaml[$i]) && $quotation !== $yaml[$i]; ++$i) {
        }

        // quoted single line string
        if (isset($yaml[$i]) && $quotation === $yaml[$i]) {
            return $yaml;
        }

        $lines = [$yaml];

        while ($this->moveToNextLine()) {
            for ($i = 1; isset($this->currentLine[$i]) && $quotation !== $this->currentLine[$i]; ++$i) {
            }

            $lines[] = trim($this->currentLine);

            if (isset($this->currentLine[$i]) && $quotation === $this->currentLine[$i]) {
                break;
            }
        }
    }

    private function lexInlineMapping(string $yaml): string
    {
        if ('' === $yaml || '{' !== $yaml[0]) {
            throw new \InvalidArgumentException(sprintf('"%s" is not a sequence.', $yaml));
        }

        for ($i = 1; isset($yaml[$i]) && '}' !== $yaml[$i]; ++$i) {
        }

        if (isset($yaml[$i]) && '}' === $yaml[$i]) {
            return $yaml;
        }

        $lines = [$yaml];

        while ($this->moveToNextLine()) {
            $lines[] = $this->currentLine;
        }

        return implode("\n", $lines);
    }

    private function lexInlineSequence(string $yaml): string
    {
        if ('' === $yaml || '[' !== $yaml[0]) {
            throw new \InvalidArgumentException(sprintf('"%s" is not a sequence.', $yaml));
        }

        for ($i = 1; isset($yaml[$i]) && ']' !== $yaml[$i]; ++$i) {
        }

        if (isset($yaml[$i]) && ']' === $yaml[$i]) {
            return $yaml;
        }

        $value = $yaml;

        while ($this->moveToNextLine()) {
            for ($i = 1; isset($this->currentLine[$i]) && ']' !== $this->currentLine[$i]; ++$i) {
            }

            $value .= trim($this->currentLine);

            if (isset($this->currentLine[$i]) && ']' === $this->currentLine[$i]) {
                break;
            }
        }

        return $value;
    }
}
CHANGELOG
=========

4.4.0
-----

 * Added support for parsing the inline notation spanning multiple lines.
 * Added support to dump `null` as `~` by using the `Yaml::DUMP_NULL_AS_TILDE` flag.
 * deprecated accepting STDIN implicitly when using the `lint:yaml` command, use `lint:yaml -` (append a dash) instead to make it explicit.

4.3.0
-----

 * Using a mapping inside a multi-line string is deprecated and will throw a `ParseException` in 5.0.

4.2.0
-----

 * added support for multiple files or directories in `LintCommand`

4.0.0
-----

 * The behavior of the non-specific tag `!` is changed and now forces
   non-evaluating your values.
 * complex mappings will throw a `ParseException`
 * support for the comma as a group separator for floats has been dropped, use
   the underscore instead
 * support for the `!!php/object` tag has been dropped, use the `!php/object`
   tag instead
 * duplicate mapping keys throw a `ParseException`
 * non-string mapping keys throw a `ParseException`, use the `Yaml::PARSE_KEYS_AS_STRINGS`
   flag to cast them to strings
 * `%` at the beginning of an unquoted string throw a `ParseException`
 * mappings with a colon (`:`) that is not followed by a whitespace throw a
   `ParseException`
 * the `Dumper::setIndentation()` method has been removed
 * being able to pass boolean options to the `Yaml::parse()`, `Yaml::dump()`,
   `Parser::parse()`, and `Dumper::dump()` methods to configure the behavior of
   the parser and dumper is no longer supported, pass bitmask flags instead
 * the constructor arguments of the `Parser` class have been removed
 * the `Inline` class is internal and no longer part of the BC promise
 * removed support for the `!str` tag, use the `!!str` tag instead
 * added support for tagged scalars.

   ```yml
   Yaml::parse('!foo bar', Yaml::PARSE_CUSTOM_TAGS);
   // returns TaggedValue('foo', 'bar');
   ```

3.4.0
-----

 * added support for parsing YAML files using the `Yaml::parseFile()` or `Parser::parseFile()` method

 * the `Dumper`, `Parser`, and `Yaml` classes are marked as final

 * Deprecated the `!php/object:` tag which will be replaced by the
   `!php/object` tag (without the colon) in 4.0.

 * Deprecated the `!php/const:` tag which will be replaced by the
   `!php/const` tag (without the colon) in 4.0.

 * Support for the `!str` tag is deprecated, use the `!!str` tag instead.

 * Deprecated using the non-specific tag `!` as its behavior will change in 4.0.
   It will force non-evaluating your values in 4.0. Use plain integers or `!!float` instead.

3.3.0
-----

 * Starting an unquoted string with a question mark followed by a space is
   deprecated and will throw a `ParseException` in Symfony 4.0.

 * Deprecated support for implicitly parsing non-string mapping keys as strings.
   Mapping keys that are no strings will lead to a `ParseException` in Symfony
   4.0. Use quotes to opt-in for keys to be parsed as strings.

   Before:

   ```php
   $yaml = <<<YAML
   null: null key
   true: boolean true
   2.0: float key
   YAML;

   Yaml::parse($yaml);
   ```

   After:

   ```php

   $yaml = <<<YAML
   "null": null key
   "true": boolean true
   "2.0": float key
   YAML;

   Yaml::parse($yaml);
   ```

 * Omitted mapping values will be parsed as `null`.

 * Omitting the key of a mapping is deprecated and will throw a `ParseException` in Symfony 4.0.

 * Added support for dumping empty PHP arrays as YAML sequences:

   ```php
   Yaml::dump([], 0, 0, Yaml::DUMP_EMPTY_ARRAY_AS_SEQUENCE);
   ```

3.2.0
-----

 * Mappings with a colon (`:`) that is not followed by a whitespace are deprecated
   when the mapping key is not quoted and will lead to a `ParseException` in
   Symfony 4.0 (e.g. `foo:bar` must be `foo: bar`).

 * Added support for parsing PHP constants:

   ```php
   Yaml::parse('!php/const:PHP_INT_MAX', Yaml::PARSE_CONSTANT);
   ```

 * Support for silently ignoring duplicate mapping keys in YAML has been
   deprecated and will lead to a `ParseException` in Symfony 4.0.

3.1.0
-----

 * Added support to dump `stdClass` and `ArrayAccess` objects as YAML mappings
   through the `Yaml::DUMP_OBJECT_AS_MAP` flag.

 * Strings that are not UTF-8 encoded will be dumped as base64 encoded binary
   data.

 * Added support for dumping multi line strings as literal blocks.

 * Added support for parsing base64 encoded binary data when they are tagged
   with the `!!binary` tag.

 * Added support for parsing timestamps as `\DateTime` objects:

   ```php
   Yaml::parse('2001-12-15 21:59:43.10 -5', Yaml::PARSE_DATETIME);
   ```

 * `\DateTime` and `\DateTimeImmutable` objects are dumped as YAML timestamps.

 * Deprecated usage of `%` at the beginning of an unquoted string.

 * Added support for customizing the YAML parser behavior through an optional bit field:

   ```php
   Yaml::parse('{ "foo": "bar", "fiz": "cat" }', Yaml::PARSE_EXCEPTION_ON_INVALID_TYPE | Yaml::PARSE_OBJECT | Yaml::PARSE_OBJECT_FOR_MAP);
   ```

 * Added support for customizing the dumped YAML string through an optional bit field:

   ```php
   Yaml::dump(['foo' => new A(), 'bar' => 1], 0, 0, Yaml::DUMP_EXCEPTION_ON_INVALID_TYPE | Yaml::DUMP_OBJECT);
   ```

3.0.0
-----

 * Yaml::parse() now throws an exception when a blackslash is not escaped
   in double-quoted strings

2.8.0
-----

 * Deprecated usage of a colon in an unquoted mapping value
 * Deprecated usage of @, \`, | and > at the beginning of an unquoted string
 * When surrounding strings with double-quotes, you must now escape `\` characters. Not
   escaping those characters (when surrounded by double-quotes) is deprecated.

   Before:

   ```yml
   class: "Foo\Var"
   ```

   After:

   ```yml
   class: "Foo\\Var"
   ```

2.1.0
-----

 * Yaml::parse() does not evaluate loaded files as PHP files by default
   anymore (call Yaml::enablePhpParsing() to get back the old behavior)
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Yaml;

/**
 * Escaper encapsulates escaping rules for single and double-quoted
 * YAML strings.
 *
 * @author Matthew Lewinski <matthew@lewinski.org>
 *
 * @internal
 */
class Escaper
{
    // Characters that would cause a dumped string to require double quoting.
    const REGEX_CHARACTER_TO_ESCAPE = "[\\x00-\\x1f]|\x7f|\xc2\x85|\xc2\xa0|\xe2\x80\xa8|\xe2\x80\xa9";

    // Mapping arrays for escaping a double quoted string. The backslash is
    // first to ensure proper escaping because str_replace operates iteratively
    // on the input arrays. This ordering of the characters avoids the use of strtr,
    // which performs more slowly.
    private static $escapees = ['\\', '\\\\', '\\"', '"',
                                     "\x00",  "\x01",  "\x02",  "\x03",  "\x04",  "\x05",  "\x06",  "\x07",
                                     "\x08",  "\x09",  "\x0a",  "\x0b",  "\x0c",  "\x0d",  "\x0e",  "\x0f",
                                     "\x10",  "\x11",  "\x12",  "\x13",  "\x14",  "\x15",  "\x16",  "\x17",
                                     "\x18",  "\x19",  "\x1a",  "\x1b",  "\x1c",  "\x1d",  "\x1e",  "\x1f",
                                     "\x7f",
                                     "\xc2\x85", "\xc2\xa0", "\xe2\x80\xa8", "\xe2\x80\xa9",
                               ];
    private static $escaped = ['\\\\', '\\"', '\\\\', '\\"',
                                     '\\0',   '\\x01', '\\x02', '\\x03', '\\x04', '\\x05', '\\x06', '\\a',
                                     '\\b',   '\\t',   '\\n',   '\\v',   '\\f',   '\\r',   '\\x0e', '\\x0f',
                                     '\\x10', '\\x11', '\\x12', '\\x13', '\\x14', '\\x15', '\\x16', '\\x17',
                                     '\\x18', '\\x19', '\\x1a', '\\e',   '\\x1c', '\\x1d', '\\x1e', '\\x1f',
                                     '\\x7f',
                                     '\\N', '\\_', '\\L', '\\P',
                              ];

    /**
     * Determines if a PHP value would require double quoting in YAML.
     *
     * @param string $value A PHP value
     *
     * @return bool True if the value would require double quotes
     */
    public static function requiresDoubleQuoting(string $value): bool
    {
        return 0 < preg_match('/'.self::REGEX_CHARACTER_TO_ESCAPE.'/u', $value);
    }

    /**
     * Escapes and surrounds a PHP value with double quotes.
     *
     * @param string $value A PHP value
     *
     * @return string The quoted, escaped string
     */
    public static function escapeWithDoubleQuotes(string $value): string
    {
        return sprintf('"%s"', str_replace(self::$escapees, self::$escaped, $value));
    }

    /**
     * Determines if a PHP value would require single quoting in YAML.
     *
     * @param string $value A PHP value
     *
     * @return bool True if the value would require single quotes
     */
    public static function requiresSingleQuoting(string $value): bool
    {
        // Determines if a PHP value is entirely composed of a value that would
        // require single quoting in YAML.
        if (\in_array(strtolower($value), ['null', '~', 'true', 'false', 'y', 'n', 'yes', 'no', 'on', 'off'])) {
            return true;
        }

        // Determines if the PHP value contains any single characters that would
        // cause it to require single quoting in YAML.
        return 0 < preg_match('/[ \s \' " \: \{ \} \[ \] , & \* \# \?] | \A[ \- ? | < > = ! % @ ` ]/x', $value);
    }

    /**
     * Escapes and surrounds a PHP value with single quotes.
     *
     * @param string $value A PHP value
     *
     * @return string The quoted, escaped string
     */
    public static function escapeWithSingleQuotes(string $value): string
    {
        return sprintf("'%s'", str_replace('\'', '\'\'', $value));
    }
}
Yaml Component
==============

The Yaml component loads and dumps YAML files.

Resources
---------

  * [Documentation](https://symfony.com/doc/current/components/yaml.html)
  * [Contributing](https://symfony.com/doc/current/contributing/index.html)
  * [Report issues](https://github.com/symfony/symfony/issues) and
    [send Pull Requests](https://github.com/symfony/symfony/pulls)
    in the [main Symfony repository](https://github.com/symfony/symfony)
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Yaml;

use Symfony\Component\Yaml\Exception\ParseException;

/**
 * Unescaper encapsulates unescaping rules for single and double-quoted
 * YAML strings.
 *
 * @author Matthew Lewinski <matthew@lewinski.org>
 *
 * @internal
 */
class Unescaper
{
    /**
     * Regex fragment that matches an escaped character in a double quoted string.
     */
    const REGEX_ESCAPED_CHARACTER = '\\\\(x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8}|.)';

    /**
     * Unescapes a single quoted string.
     *
     * @param string $value A single quoted string
     *
     * @return string The unescaped string
     */
    public function unescapeSingleQuotedString(string $value): string
    {
        return str_replace('\'\'', '\'', $value);
    }

    /**
     * Unescapes a double quoted string.
     *
     * @param string $value A double quoted string
     *
     * @return string The unescaped string
     */
    public function unescapeDoubleQuotedString(string $value): string
    {
        $callback = function ($match) {
            return $this->unescapeCharacter($match[0]);
        };

        // evaluate the string
        return preg_replace_callback('/'.self::REGEX_ESCAPED_CHARACTER.'/u', $callback, $value);
    }

    /**
     * Unescapes a character that was found in a double-quoted string.
     *
     * @param string $value An escaped character
     *
     * @return string The unescaped character
     */
    private function unescapeCharacter(string $value): string
    {
        switch ($value[1]) {
            case '0':
                return "\x0";
            case 'a':
                return "\x7";
            case 'b':
                return "\x8";
            case 't':
                return "\t";
            case "\t":
                return "\t";
            case 'n':
                return "\n";
            case 'v':
                return "\xB";
            case 'f':
                return "\xC";
            case 'r':
                return "\r";
            case 'e':
                return "\x1B";
            case ' ':
                return ' ';
            case '"':
                return '"';
            case '/':
                return '/';
            case '\\':
                return '\\';
            case 'N':
                // U+0085 NEXT LINE
                return "\xC2\x85";
            case '_':
                // U+00A0 NO-BREAK SPACE
                return "\xC2\xA0";
            case 'L':
                // U+2028 LINE SEPARATOR
                return "\xE2\x80\xA8";
            case 'P':
                // U+2029 PARAGRAPH SEPARATOR
                return "\xE2\x80\xA9";
            case 'x':
                return self::utf8chr(hexdec(substr($value, 2, 2)));
            case 'u':
                return self::utf8chr(hexdec(substr($value, 2, 4)));
            case 'U':
                return self::utf8chr(hexdec(substr($value, 2, 8)));
            default:
                throw new ParseException(sprintf('Found unknown escape character "%s".', $value));
        }
    }

    /**
     * Get the UTF-8 character for the given code point.
     */
    private static function utf8chr(int $c): string
    {
        if (0x80 > $c %= 0x200000) {
            return \chr($c);
        }
        if (0x800 > $c) {
            return \chr(0xC0 | $c >> 6).\chr(0x80 | $c & 0x3F);
        }
        if (0x10000 > $c) {
            return \chr(0xE0 | $c >> 12).\chr(0x80 | $c >> 6 & 0x3F).\chr(0x80 | $c & 0x3F);
        }

        return \chr(0xF0 | $c >> 18).\chr(0x80 | $c >> 12 & 0x3F).\chr(0x80 | $c >> 6 & 0x3F).\chr(0x80 | $c & 0x3F);
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Yaml;

use Symfony\Component\Yaml\Tag\TaggedValue;

/**
 * Dumper dumps PHP variables to YAML strings.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 *
 * @final
 */
class Dumper
{
    /**
     * The amount of spaces to use for indentation of nested nodes.
     *
     * @var int
     */
    protected $indentation;

    public function __construct(int $indentation = 4)
    {
        if ($indentation < 1) {
            throw new \InvalidArgumentException('The indentation must be greater than zero.');
        }

        $this->indentation = $indentation;
    }

    /**
     * Dumps a PHP value to YAML.
     *
     * @param mixed $input  The PHP value
     * @param int   $inline The level where you switch to inline YAML
     * @param int   $indent The level of indentation (used internally)
     * @param int   $flags  A bit field of Yaml::DUMP_* constants to customize the dumped YAML string
     *
     * @return string The YAML representation of the PHP value
     */
    public function dump($input, int $inline = 0, int $indent = 0, int $flags = 0): string
    {
        $output = '';
        $prefix = $indent ? str_repeat(' ', $indent) : '';
        $dumpObjectAsInlineMap = true;

        if (Yaml::DUMP_OBJECT_AS_MAP & $flags && ($input instanceof \ArrayObject || $input instanceof \stdClass)) {
            $dumpObjectAsInlineMap = empty((array) $input);
        }

        if ($inline <= 0 || (!\is_array($input) && !$input instanceof TaggedValue && $dumpObjectAsInlineMap) || empty($input)) {
            $output .= $prefix.Inline::dump($input, $flags);
        } else {
            $dumpAsMap = Inline::isHash($input);

            foreach ($input as $key => $value) {
                if ($inline >= 1 && Yaml::DUMP_MULTI_LINE_LITERAL_BLOCK & $flags && \is_string($value) && false !== strpos($value, "\n") && false === strpos($value, "\r")) {
                    // If the first line starts with a space character, the spec requires a blockIndicationIndicator
                    // http://www.yaml.org/spec/1.2/spec.html#id2793979
                    $blockIndentationIndicator = (' ' === substr($value, 0, 1)) ? (string) $this->indentation : '';
                    $output .= sprintf("%s%s%s |%s\n", $prefix, $dumpAsMap ? Inline::dump($key, $flags).':' : '-', '', $blockIndentationIndicator);

                    foreach (explode("\n", $value) as $row) {
                        $output .= sprintf("%s%s%s\n", $prefix, str_repeat(' ', $this->indentation), $row);
                    }

                    continue;
                }

                if ($value instanceof TaggedValue) {
                    $output .= sprintf('%s%s !%s', $prefix, $dumpAsMap ? Inline::dump($key, $flags).':' : '-', $value->getTag());

                    if ($inline >= 1 && Yaml::DUMP_MULTI_LINE_LITERAL_BLOCK & $flags && \is_string($value->getValue()) && false !== strpos($value->getValue(), "\n") && false === strpos($value->getValue(), "\r\n")) {
                        // If the first line starts with a space character, the spec requires a blockIndicationIndicator
                        // http://www.yaml.org/spec/1.2/spec.html#id2793979
                        $blockIndentationIndicator = (' ' === substr($value->getValue(), 0, 1)) ? (string) $this->indentation : '';
                        $output .= sprintf(" |%s\n", $blockIndentationIndicator);

                        foreach (explode("\n", $value->getValue()) as $row) {
                            $output .= sprintf("%s%s%s\n", $prefix, str_repeat(' ', $this->indentation), $row);
                        }

                        continue;
                    }

                    if ($inline - 1 <= 0 || null === $value->getValue() || is_scalar($value->getValue())) {
                        $output .= ' '.$this->dump($value->getValue(), $inline - 1, 0, $flags)."\n";
                    } else {
                        $output .= "\n";
                        $output .= $this->dump($value->getValue(), $inline - 1, $dumpAsMap ? $indent + $this->indentation : $indent + 2, $flags);
                    }

                    continue;
                }

                $dumpObjectAsInlineMap = true;

                if (Yaml::DUMP_OBJECT_AS_MAP & $flags && ($value instanceof \ArrayObject || $value instanceof \stdClass)) {
                    $dumpObjectAsInlineMap = empty((array) $value);
                }

                $willBeInlined = $inline - 1 <= 0 || !\is_array($value) && $dumpObjectAsInlineMap || empty($value);

                $output .= sprintf('%s%s%s%s',
                    $prefix,
                    $dumpAsMap ? Inline::dump($key, $flags).':' : '-',
                    $willBeInlined ? ' ' : "\n",
                    $this->dump($value, $inline - 1, $willBeInlined ? 0 : $indent + $this->indentation, $flags)
                ).($willBeInlined ? "\n" : '');
            }
        }

        return $output;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Yaml;

use Symfony\Component\Yaml\Exception\DumpException;
use Symfony\Component\Yaml\Exception\ParseException;
use Symfony\Component\Yaml\Tag\TaggedValue;

/**
 * Inline implements a YAML parser/dumper for the YAML inline syntax.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 *
 * @internal
 */
class Inline
{
    const REGEX_QUOTED_STRING = '(?:"([^"\\\\]*+(?:\\\\.[^"\\\\]*+)*+)"|\'([^\']*+(?:\'\'[^\']*+)*+)\')';

    public static $parsedLineNumber = -1;
    public static $parsedFilename;

    private static $exceptionOnInvalidType = false;
    private static $objectSupport = false;
    private static $objectForMap = false;
    private static $constantSupport = false;

    public static function initialize(int $flags, int $parsedLineNumber = null, string $parsedFilename = null)
    {
        self::$exceptionOnInvalidType = (bool) (Yaml::PARSE_EXCEPTION_ON_INVALID_TYPE & $flags);
        self::$objectSupport = (bool) (Yaml::PARSE_OBJECT & $flags);
        self::$objectForMap = (bool) (Yaml::PARSE_OBJECT_FOR_MAP & $flags);
        self::$constantSupport = (bool) (Yaml::PARSE_CONSTANT & $flags);
        self::$parsedFilename = $parsedFilename;

        if (null !== $parsedLineNumber) {
            self::$parsedLineNumber = $parsedLineNumber;
        }
    }

    /**
     * Converts a YAML string to a PHP value.
     *
     * @param string $value      A YAML string
     * @param int    $flags      A bit field of PARSE_* constants to customize the YAML parser behavior
     * @param array  $references Mapping of variable names to values
     *
     * @return mixed A PHP value
     *
     * @throws ParseException
     */
    public static function parse(string $value = null, int $flags = 0, array $references = [])
    {
        self::initialize($flags);

        $value = trim($value);

        if ('' === $value) {
            return '';
        }

        if (2 /* MB_OVERLOAD_STRING */ & (int) ini_get('mbstring.func_overload')) {
            $mbEncoding = mb_internal_encoding();
            mb_internal_encoding('ASCII');
        }

        try {
            $i = 0;
            $tag = self::parseTag($value, $i, $flags);
            switch ($value[$i]) {
                case '[':
                    $result = self::parseSequence($value, $flags, $i, $references);
                    ++$i;
                    break;
                case '{':
                    $result = self::parseMapping($value, $flags, $i, $references);
                    ++$i;
                    break;
                default:
                    $result = self::parseScalar($value, $flags, null, $i, null === $tag, $references);
            }

            // some comments are allowed at the end
            if (preg_replace('/\s+#.*$/A', '', substr($value, $i))) {
                throw new ParseException(sprintf('Unexpected characters near "%s".', substr($value, $i)), self::$parsedLineNumber + 1, $value, self::$parsedFilename);
            }

            if (null !== $tag && '' !== $tag) {
                return new TaggedValue($tag, $result);
            }

            return $result;
        } finally {
            if (isset($mbEncoding)) {
                mb_internal_encoding($mbEncoding);
            }
        }
    }

    /**
     * Dumps a given PHP variable to a YAML string.
     *
     * @param mixed $value The PHP variable to convert
     * @param int   $flags A bit field of Yaml::DUMP_* constants to customize the dumped YAML string
     *
     * @return string The YAML string representing the PHP value
     *
     * @throws DumpException When trying to dump PHP resource
     */
    public static function dump($value, int $flags = 0): string
    {
        switch (true) {
            case \is_resource($value):
                if (Yaml::DUMP_EXCEPTION_ON_INVALID_TYPE & $flags) {
                    throw new DumpException(sprintf('Unable to dump PHP resources in a YAML file ("%s").', get_resource_type($value)));
                }

                return self::dumpNull($flags);
            case $value instanceof \DateTimeInterface:
                return $value->format('c');
            case \is_object($value):
                if ($value instanceof TaggedValue) {
                    return '!'.$value->getTag().' '.self::dump($value->getValue(), $flags);
                }

                if (Yaml::DUMP_OBJECT & $flags) {
                    return '!php/object '.self::dump(serialize($value));
                }

                if (Yaml::DUMP_OBJECT_AS_MAP & $flags && ($value instanceof \stdClass || $value instanceof \ArrayObject)) {
                    $output = [];

                    foreach ($value as $key => $val) {
                        $output[] = sprintf('%s: %s', self::dump($key, $flags), self::dump($val, $flags));
                    }

                    return sprintf('{ %s }', implode(', ', $output));
                }

                if (Yaml::DUMP_EXCEPTION_ON_INVALID_TYPE & $flags) {
                    throw new DumpException('Object support when dumping a YAML file has been disabled.');
                }

                return self::dumpNull($flags);
            case \is_array($value):
                return self::dumpArray($value, $flags);
            case null === $value:
                return self::dumpNull($flags);
            case true === $value:
                return 'true';
            case false === $value:
                return 'false';
            case ctype_digit($value):
                return \is_string($value) ? "'$value'" : (int) $value;
            case is_numeric($value):
                $locale = setlocale(LC_NUMERIC, 0);
                if (false !== $locale) {
                    setlocale(LC_NUMERIC, 'C');
                }
                if (\is_float($value)) {
                    $repr = (string) $value;
                    if (is_infinite($value)) {
                        $repr = str_ireplace('INF', '.Inf', $repr);
                    } elseif (floor($value) == $value && $repr == $value) {
                        // Preserve float data type since storing a whole number will result in integer value.
                        $repr = '!!float '.$repr;
                    }
                } else {
                    $repr = \is_string($value) ? "'$value'" : (string) $value;
                }
                if (false !== $locale) {
                    setlocale(LC_NUMERIC, $locale);
                }

                return $repr;
            case '' == $value:
                return "''";
            case self::isBinaryString($value):
                return '!!binary '.base64_encode($value);
            case Escaper::requiresDoubleQuoting($value):
                return Escaper::escapeWithDoubleQuotes($value);
            case Escaper::requiresSingleQuoting($value):
            case Parser::preg_match('{^[0-9]+[_0-9]*$}', $value):
            case Parser::preg_match(self::getHexRegex(), $value):
            case Parser::preg_match(self::getTimestampRegex(), $value):
                return Escaper::escapeWithSingleQuotes($value);
            default:
                return $value;
        }
    }

    /**
     * Check if given array is hash or just normal indexed array.
     *
     * @param array|\ArrayObject|\stdClass $value The PHP array or array-like object to check
     *
     * @return bool true if value is hash array, false otherwise
     */
    public static function isHash($value): bool
    {
        if ($value instanceof \stdClass || $value instanceof \ArrayObject) {
            return true;
        }

        $expectedKey = 0;

        foreach ($value as $key => $val) {
            if ($key !== $expectedKey++) {
                return true;
            }
        }

        return false;
    }

    /**
     * Dumps a PHP array to a YAML string.
     *
     * @param array $value The PHP array to dump
     * @param int   $flags A bit field of Yaml::DUMP_* constants to customize the dumped YAML string
     *
     * @return string The YAML string representing the PHP array
     */
    private static function dumpArray(array $value, int $flags): string
    {
        // array
        if (($value || Yaml::DUMP_EMPTY_ARRAY_AS_SEQUENCE & $flags) && !self::isHash($value)) {
            $output = [];
            foreach ($value as $val) {
                $output[] = self::dump($val, $flags);
            }

            return sprintf('[%s]', implode(', ', $output));
        }

        // hash
        $output = [];
        foreach ($value as $key => $val) {
            $output[] = sprintf('%s: %s', self::dump($key, $flags), self::dump($val, $flags));
        }

        return sprintf('{ %s }', implode(', ', $output));
    }

    private static function dumpNull(int $flags): string
    {
        if (Yaml::DUMP_NULL_AS_TILDE & $flags) {
            return '~';
        }

        return 'null';
    }

    /**
     * Parses a YAML scalar.
     *
     * @return mixed
     *
     * @throws ParseException When malformed inline YAML string is parsed
     */
    public static function parseScalar(string $scalar, int $flags = 0, array $delimiters = null, int &$i = 0, bool $evaluate = true, array $references = [])
    {
        if (\in_array($scalar[$i], ['"', "'"])) {
            // quoted scalar
            $output = self::parseQuotedScalar($scalar, $i);

            if (null !== $delimiters) {
                $tmp = ltrim(substr($scalar, $i), " \n");
                if ('' === $tmp) {
                    throw new ParseException(sprintf('Unexpected end of line, expected one of "%s".', implode('', $delimiters)), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
                }
                if (!\in_array($tmp[0], $delimiters)) {
                    throw new ParseException(sprintf('Unexpected characters (%s).', substr($scalar, $i)), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
                }
            }
        } else {
            // "normal" string
            if (!$delimiters) {
                $output = substr($scalar, $i);
                $i += \strlen($output);

                // remove comments
                if (Parser::preg_match('/[ \t]+#/', $output, $match, PREG_OFFSET_CAPTURE)) {
                    $output = substr($output, 0, $match[0][1]);
                }
            } elseif (Parser::preg_match('/^(.*?)('.implode('|', $delimiters).')/', substr($scalar, $i), $match)) {
                $output = $match[1];
                $i += \strlen($output);
                $output = trim($output);
            } else {
                throw new ParseException(sprintf('Malformed inline YAML string: "%s".', $scalar), self::$parsedLineNumber + 1, null, self::$parsedFilename);
            }

            // a non-quoted string cannot start with @ or ` (reserved) nor with a scalar indicator (| or >)
            if ($output && ('@' === $output[0] || '`' === $output[0] || '|' === $output[0] || '>' === $output[0] || '%' === $output[0])) {
                throw new ParseException(sprintf('The reserved indicator "%s" cannot start a plain scalar; you need to quote the scalar.', $output[0]), self::$parsedLineNumber + 1, $output, self::$parsedFilename);
            }

            if ($evaluate) {
                $output = self::evaluateScalar($output, $flags, $references);
            }
        }

        return $output;
    }

    /**
     * Parses a YAML quoted scalar.
     *
     * @throws ParseException When malformed inline YAML string is parsed
     */
    private static function parseQuotedScalar(string $scalar, int &$i): string
    {
        if (!Parser::preg_match('/'.self::REGEX_QUOTED_STRING.'/Au', substr($scalar, $i), $match)) {
            throw new ParseException(sprintf('Malformed inline YAML string: "%s".', substr($scalar, $i)), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
        }

        $output = substr($match[0], 1, \strlen($match[0]) - 2);

        $unescaper = new Unescaper();
        if ('"' == $scalar[$i]) {
            $output = $unescaper->unescapeDoubleQuotedString($output);
        } else {
            $output = $unescaper->unescapeSingleQuotedString($output);
        }

        $i += \strlen($match[0]);

        return $output;
    }

    /**
     * Parses a YAML sequence.
     *
     * @throws ParseException When malformed inline YAML string is parsed
     */
    private static function parseSequence(string $sequence, int $flags, int &$i = 0, array $references = []): array
    {
        $output = [];
        $len = \strlen($sequence);
        ++$i;

        // [foo, bar, ...]
        while ($i < $len) {
            if (']' === $sequence[$i]) {
                return $output;
            }
            if (',' === $sequence[$i] || ' ' === $sequence[$i]) {
                ++$i;

                continue;
            }

            $tag = self::parseTag($sequence, $i, $flags);
            switch ($sequence[$i]) {
                case '[':
                    // nested sequence
                    $value = self::parseSequence($sequence, $flags, $i, $references);
                    break;
                case '{':
                    // nested mapping
                    $value = self::parseMapping($sequence, $flags, $i, $references);
                    break;
                default:
                    $isQuoted = \in_array($sequence[$i], ['"', "'"]);
                    $value = self::parseScalar($sequence, $flags, [',', ']'], $i, null === $tag, $references);

                    // the value can be an array if a reference has been resolved to an array var
                    if (\is_string($value) && !$isQuoted && false !== strpos($value, ': ')) {
                        // embedded mapping?
                        try {
                            $pos = 0;
                            $value = self::parseMapping('{'.$value.'}', $flags, $pos, $references);
                        } catch (\InvalidArgumentException $e) {
                            // no, it's not
                        }
                    }

                    --$i;
            }

            if (null !== $tag && '' !== $tag) {
                $value = new TaggedValue($tag, $value);
            }

            $output[] = $value;

            ++$i;
        }

        throw new ParseException(sprintf('Malformed inline YAML string: "%s".', $sequence), self::$parsedLineNumber + 1, null, self::$parsedFilename);
    }

    /**
     * Parses a YAML mapping.
     *
     * @return array|\stdClass
     *
     * @throws ParseException When malformed inline YAML string is parsed
     */
    private static function parseMapping(string $mapping, int $flags, int &$i = 0, array $references = [])
    {
        $output = [];
        $len = \strlen($mapping);
        ++$i;
        $allowOverwrite = false;

        // {foo: bar, bar:foo, ...}
        while ($i < $len) {
            switch ($mapping[$i]) {
                case ' ':
                case ',':
                case "\n":
                    ++$i;
                    continue 2;
                case '}':
                    if (self::$objectForMap) {
                        return (object) $output;
                    }

                    return $output;
            }

            // key
            $offsetBeforeKeyParsing = $i;
            $isKeyQuoted = \in_array($mapping[$i], ['"', "'"], true);
            $key = self::parseScalar($mapping, $flags, [':', ' '], $i, false, []);

            if ($offsetBeforeKeyParsing === $i) {
                throw new ParseException('Missing mapping key.', self::$parsedLineNumber + 1, $mapping);
            }

            if ('!php/const' === $key) {
                $key .= ' '.self::parseScalar($mapping, $flags, [':'], $i, false, []);
                $key = self::evaluateScalar($key, $flags);
            }

            if (false === $i = strpos($mapping, ':', $i)) {
                break;
            }

            if (!$isKeyQuoted) {
                $evaluatedKey = self::evaluateScalar($key, $flags, $references);

                if ('' !== $key && $evaluatedKey !== $key && !\is_string($evaluatedKey) && !\is_int($evaluatedKey)) {
                    throw new ParseException('Implicit casting of incompatible mapping keys to strings is not supported. Quote your evaluable mapping keys instead.', self::$parsedLineNumber + 1, $mapping);
                }
            }

            if (!$isKeyQuoted && (!isset($mapping[$i + 1]) || !\in_array($mapping[$i + 1], [' ', ',', '[', ']', '{', '}', "\n"], true))) {
                throw new ParseException('Colons must be followed by a space or an indication character (i.e. " ", ",", "[", "]", "{", "}").', self::$parsedLineNumber + 1, $mapping);
            }

            if ('<<' === $key) {
                $allowOverwrite = true;
            }

            while ($i < $len) {
                if (':' === $mapping[$i] || ' ' === $mapping[$i] || "\n" === $mapping[$i]) {
                    ++$i;

                    continue;
                }

                $tag = self::parseTag($mapping, $i, $flags);
                switch ($mapping[$i]) {
                    case '[':
                        // nested sequence
                        $value = self::parseSequence($mapping, $flags, $i, $references);
                        // Spec: Keys MUST be unique; first one wins.
                        // Parser cannot abort this mapping earlier, since lines
                        // are processed sequentially.
                        // But overwriting is allowed when a merge node is used in current block.
                        if ('<<' === $key) {
                            foreach ($value as $parsedValue) {
                                $output += $parsedValue;
                            }
                        } elseif ($allowOverwrite || !isset($output[$key])) {
                            if (null !== $tag) {
                                $output[$key] = new TaggedValue($tag, $value);
                            } else {
                                $output[$key] = $value;
                            }
                        } elseif (isset($output[$key])) {
                            throw new ParseException(sprintf('Duplicate key "%s" detected.', $key), self::$parsedLineNumber + 1, $mapping);
                        }
                        break;
                    case '{':
                        // nested mapping
                        $value = self::parseMapping($mapping, $flags, $i, $references);
                        // Spec: Keys MUST be unique; first one wins.
                        // Parser cannot abort this mapping earlier, since lines
                        // are processed sequentially.
                        // But overwriting is allowed when a merge node is used in current block.
                        if ('<<' === $key) {
                            $output += $value;
                        } elseif ($allowOverwrite || !isset($output[$key])) {
                            if (null !== $tag) {
                                $output[$key] = new TaggedValue($tag, $value);
                            } else {
                                $output[$key] = $value;
                            }
                        } elseif (isset($output[$key])) {
                            throw new ParseException(sprintf('Duplicate key "%s" detected.', $key), self::$parsedLineNumber + 1, $mapping);
                        }
                        break;
                    default:
                        $value = self::parseScalar($mapping, $flags, [',', '}', "\n"], $i, null === $tag, $references);
                        // Spec: Keys MUST be unique; first one wins.
                        // Parser cannot abort this mapping earlier, since lines
                        // are processed sequentially.
                        // But overwriting is allowed when a merge node is used in current block.
                        if ('<<' === $key) {
                            $output += $value;
                        } elseif ($allowOverwrite || !isset($output[$key])) {
                            if (null !== $tag) {
                                $output[$key] = new TaggedValue($tag, $value);
                            } else {
                                $output[$key] = $value;
                            }
                        } elseif (isset($output[$key])) {
                            throw new ParseException(sprintf('Duplicate key "%s" detected.', $key), self::$parsedLineNumber + 1, $mapping);
                        }
                        --$i;
                }
                ++$i;

                continue 2;
            }
        }

        throw new ParseException(sprintf('Malformed inline YAML string: "%s".', $mapping), self::$parsedLineNumber + 1, null, self::$parsedFilename);
    }

    /**
     * Evaluates scalars and replaces magic values.
     *
     * @return mixed The evaluated YAML string
     *
     * @throws ParseException when object parsing support was disabled and the parser detected a PHP object or when a reference could not be resolved
     */
    private static function evaluateScalar(string $scalar, int $flags, array $references = [])
    {
        $scalar = trim($scalar);
        $scalarLower = strtolower($scalar);

        if (0 === strpos($scalar, '*')) {
            if (false !== $pos = strpos($scalar, '#')) {
                $value = substr($scalar, 1, $pos - 2);
            } else {
                $value = substr($scalar, 1);
            }

            // an unquoted *
            if (false === $value || '' === $value) {
                throw new ParseException('A reference must contain at least one character.', self::$parsedLineNumber + 1, $value, self::$parsedFilename);
            }

            if (!\array_key_exists($value, $references)) {
                throw new ParseException(sprintf('Reference "%s" does not exist.', $value), self::$parsedLineNumber + 1, $value, self::$parsedFilename);
            }

            return $references[$value];
        }

        switch (true) {
            case 'null' === $scalarLower:
            case '' === $scalar:
            case '~' === $scalar:
                return null;
            case 'true' === $scalarLower:
                return true;
            case 'false' === $scalarLower:
                return false;
            case '!' === $scalar[0]:
                switch (true) {
                    case 0 === strpos($scalar, '!!str '):
                        return (string) substr($scalar, 6);
                    case 0 === strpos($scalar, '! '):
                        return substr($scalar, 2);
                    case 0 === strpos($scalar, '!php/object'):
                        if (self::$objectSupport) {
                            if (!isset($scalar[12])) {
                                return false;
                            }

                            return unserialize(self::parseScalar(substr($scalar, 12)));
                        }

                        if (self::$exceptionOnInvalidType) {
                            throw new ParseException('Object support when parsing a YAML file has been disabled.', self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
                        }

                        return null;
                    case 0 === strpos($scalar, '!php/const'):
                        if (self::$constantSupport) {
                            if (!isset($scalar[11])) {
                                return '';
                            }

                            $i = 0;
                            if (\defined($const = self::parseScalar(substr($scalar, 11), 0, null, $i, false))) {
                                return \constant($const);
                            }

                            throw new ParseException(sprintf('The constant "%s" is not defined.', $const), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
                        }
                        if (self::$exceptionOnInvalidType) {
                            throw new ParseException(sprintf('The string "%s" could not be parsed as a constant. Did you forget to pass the "Yaml::PARSE_CONSTANT" flag to the parser?', $scalar), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
                        }

                        return null;
                    case 0 === strpos($scalar, '!!float '):
                        return (float) substr($scalar, 8);
                    case 0 === strpos($scalar, '!!binary '):
                        return self::evaluateBinaryScalar(substr($scalar, 9));
                    default:
                        throw new ParseException(sprintf('The string "%s" could not be parsed as it uses an unsupported built-in tag.', $scalar), self::$parsedLineNumber, $scalar, self::$parsedFilename);
                }

            // Optimize for returning strings.
            // no break
            case '+' === $scalar[0] || '-' === $scalar[0] || '.' === $scalar[0] || is_numeric($scalar[0]):
                if (Parser::preg_match('{^[+-]?[0-9][0-9_]*$}', $scalar)) {
                    $scalar = str_replace('_', '', (string) $scalar);
                }

                switch (true) {
                    case ctype_digit($scalar):
                        if ('0' === $scalar[0]) {
                            return octdec(preg_replace('/[^0-7]/', '', $scalar));
                        }

                        $cast = (int) $scalar;

                        return ($scalar === (string) $cast) ? $cast : $scalar;
                    case '-' === $scalar[0] && ctype_digit(substr($scalar, 1)):
                        if ('0' === $scalar[1]) {
                            return -octdec(preg_replace('/[^0-7]/', '', substr($scalar, 1)));
                        }

                        $cast = (int) $scalar;

                        return ($scalar === (string) $cast) ? $cast : $scalar;
                    case is_numeric($scalar):
                    case Parser::preg_match(self::getHexRegex(), $scalar):
                        $scalar = str_replace('_', '', $scalar);

                        return '0x' === $scalar[0].$scalar[1] ? hexdec($scalar) : (float) $scalar;
                    case '.inf' === $scalarLower:
                    case '.nan' === $scalarLower:
                        return -log(0);
                    case '-.inf' === $scalarLower:
                        return log(0);
                    case Parser::preg_match('/^(-|\+)?[0-9][0-9_]*(\.[0-9_]+)?$/', $scalar):
                        return (float) str_replace('_', '', $scalar);
                    case Parser::preg_match(self::getTimestampRegex(), $scalar):
                        if (Yaml::PARSE_DATETIME & $flags) {
                            // When no timezone is provided in the parsed date, YAML spec says we must assume UTC.
                            return new \DateTime($scalar, new \DateTimeZone('UTC'));
                        }

                        $timeZone = date_default_timezone_get();
                        date_default_timezone_set('UTC');
                        $time = strtotime($scalar);
                        date_default_timezone_set($timeZone);

                        return $time;
                }
        }

        return (string) $scalar;
    }

    private static function parseTag(string $value, int &$i, int $flags): ?string
    {
        if ('!' !== $value[$i]) {
            return null;
        }

        $tagLength = strcspn($value, " \t\n[]{},", $i + 1);
        $tag = substr($value, $i + 1, $tagLength);

        $nextOffset = $i + $tagLength + 1;
        $nextOffset += strspn($value, ' ', $nextOffset);

        if ('' === $tag && (!isset($value[$nextOffset]) || \in_array($value[$nextOffset], [']', '}', ','], true))) {
            throw new ParseException(sprintf('Using the unquoted scalar value "!" is not supported. You must quote it.', $value), self::$parsedLineNumber + 1, $value, self::$parsedFilename);
        }

        // Is followed by a scalar and is a built-in tag
        if ('' !== $tag && (!isset($value[$nextOffset]) || !\in_array($value[$nextOffset], ['[', '{'], true)) && ('!' === $tag[0] || 'str' === $tag || 'php/const' === $tag || 'php/object' === $tag)) {
            // Manage in {@link self::evaluateScalar()}
            return null;
        }

        $i = $nextOffset;

        // Built-in tags
        if ('' !== $tag && '!' === $tag[0]) {
            throw new ParseException(sprintf('The built-in tag "!%s" is not implemented.', $tag), self::$parsedLineNumber + 1, $value, self::$parsedFilename);
        }

        if ('' !== $tag && !isset($value[$i])) {
            throw new ParseException(sprintf('Missing value for tag "%s".', $tag), self::$parsedLineNumber + 1, $value, self::$parsedFilename);
        }

        if ('' === $tag || Yaml::PARSE_CUSTOM_TAGS & $flags) {
            return $tag;
        }

        throw new ParseException(sprintf('Tags support is not enabled. Enable the "Yaml::PARSE_CUSTOM_TAGS" flag to use "!%s".', $tag), self::$parsedLineNumber + 1, $value, self::$parsedFilename);
    }

    public static function evaluateBinaryScalar(string $scalar): string
    {
        $parsedBinaryData = self::parseScalar(preg_replace('/\s/', '', $scalar));

        if (0 !== (\strlen($parsedBinaryData) % 4)) {
            throw new ParseException(sprintf('The normalized base64 encoded data (data without whitespace characters) length must be a multiple of four (%d bytes given).', \strlen($parsedBinaryData)), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
        }

        if (!Parser::preg_match('#^[A-Z0-9+/]+={0,2}$#i', $parsedBinaryData)) {
            throw new ParseException(sprintf('The base64 encoded data (%s) contains invalid characters.', $parsedBinaryData), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
        }

        return base64_decode($parsedBinaryData, true);
    }

    private static function isBinaryString(string $value)
    {
        return !preg_match('//u', $value) || preg_match('/[^\x00\x07-\x0d\x1B\x20-\xff]/', $value);
    }

    /**
     * Gets a regex that matches a YAML date.
     *
     * @return string The regular expression
     *
     * @see http://www.yaml.org/spec/1.2/spec.html#id2761573
     */
    private static function getTimestampRegex(): string
    {
        return <<<EOF
        ~^
        (?P<year>[0-9][0-9][0-9][0-9])
        -(?P<month>[0-9][0-9]?)
        -(?P<day>[0-9][0-9]?)
        (?:(?:[Tt]|[ \t]+)
        (?P<hour>[0-9][0-9]?)
        :(?P<minute>[0-9][0-9])
        :(?P<second>[0-9][0-9])
        (?:\.(?P<fraction>[0-9]*))?
        (?:[ \t]*(?P<tz>Z|(?P<tz_sign>[-+])(?P<tz_hour>[0-9][0-9]?)
        (?::(?P<tz_minute>[0-9][0-9]))?))?)?
        $~x
EOF;
    }

    /**
     * Gets a regex that matches a YAML number in hexadecimal notation.
     */
    private static function getHexRegex(): string
    {
        return '~^0x[0-9a-f_]++$~i';
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Yaml;

use Symfony\Component\Yaml\Exception\ParseException;

/**
 * Yaml offers convenience methods to load and dump YAML.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 *
 * @final
 */
class Yaml
{
    const DUMP_OBJECT = 1;
    const PARSE_EXCEPTION_ON_INVALID_TYPE = 2;
    const PARSE_OBJECT = 4;
    const PARSE_OBJECT_FOR_MAP = 8;
    const DUMP_EXCEPTION_ON_INVALID_TYPE = 16;
    const PARSE_DATETIME = 32;
    const DUMP_OBJECT_AS_MAP = 64;
    const DUMP_MULTI_LINE_LITERAL_BLOCK = 128;
    const PARSE_CONSTANT = 256;
    const PARSE_CUSTOM_TAGS = 512;
    const DUMP_EMPTY_ARRAY_AS_SEQUENCE = 1024;
    const DUMP_NULL_AS_TILDE = 2048;

    /**
     * Parses a YAML file into a PHP value.
     *
     * Usage:
     *
     *     $array = Yaml::parseFile('config.yml');
     *     print_r($array);
     *
     * @param string $filename The path to the YAML file to be parsed
     * @param int    $flags    A bit field of PARSE_* constants to customize the YAML parser behavior
     *
     * @return mixed The YAML converted to a PHP value
     *
     * @throws ParseException If the file could not be read or the YAML is not valid
     */
    public static function parseFile(string $filename, int $flags = 0)
    {
        $yaml = new Parser();

        return $yaml->parseFile($filename, $flags);
    }

    /**
     * Parses YAML into a PHP value.
     *
     *  Usage:
     *  <code>
     *   $array = Yaml::parse(file_get_contents('config.yml'));
     *   print_r($array);
     *  </code>
     *
     * @param string $input A string containing YAML
     * @param int    $flags A bit field of PARSE_* constants to customize the YAML parser behavior
     *
     * @return mixed The YAML converted to a PHP value
     *
     * @throws ParseException If the YAML is not valid
     */
    public static function parse(string $input, int $flags = 0)
    {
        $yaml = new Parser();

        return $yaml->parse($input, $flags);
    }

    /**
     * Dumps a PHP value to a YAML string.
     *
     * The dump method, when supplied with an array, will do its best
     * to convert the array into friendly YAML.
     *
     * @param mixed $input  The PHP value
     * @param int   $inline The level where you switch to inline YAML
     * @param int   $indent The amount of spaces to use for indentation of nested nodes
     * @param int   $flags  A bit field of DUMP_* constants to customize the dumped YAML string
     *
     * @return string A YAML string representing the original PHP value
     */
    public static function dump($input, int $inline = 2, int $indent = 4, int $flags = 0): string
    {
        $yaml = new Dumper($indent);

        return $yaml->dump($input, $inline, 0, $flags);
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Yaml\Command;

use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Exception\InvalidArgumentException;
use Symfony\Component\Console\Exception\RuntimeException;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Style\SymfonyStyle;
use Symfony\Component\Yaml\Exception\ParseException;
use Symfony\Component\Yaml\Parser;
use Symfony\Component\Yaml\Yaml;

/**
 * Validates YAML files syntax and outputs encountered errors.
 *
 * @author Grégoire Pineau <lyrixx@lyrixx.info>
 * @author Robin Chalas <robin.chalas@gmail.com>
 */
class LintCommand extends Command
{
    protected static $defaultName = 'lint:yaml';

    private $parser;
    private $format;
    private $displayCorrectFiles;
    private $directoryIteratorProvider;
    private $isReadableProvider;

    public function __construct(string $name = null, callable $directoryIteratorProvider = null, callable $isReadableProvider = null)
    {
        parent::__construct($name);

        $this->directoryIteratorProvider = $directoryIteratorProvider;
        $this->isReadableProvider = $isReadableProvider;
    }

    /**
     * {@inheritdoc}
     */
    protected function configure()
    {
        $this
            ->setDescription('Lints a file and outputs encountered errors')
            ->addArgument('filename', InputArgument::IS_ARRAY, 'A file, a directory or "-" for reading from STDIN')
            ->addOption('format', null, InputOption::VALUE_REQUIRED, 'The output format', 'txt')
            ->addOption('parse-tags', null, InputOption::VALUE_NONE, 'Parse custom tags')
            ->setHelp(<<<EOF
The <info>%command.name%</info> command lints a YAML file and outputs to STDOUT
the first encountered syntax error.

You can validates YAML contents passed from STDIN:

  <info>cat filename | php %command.full_name% -</info>

You can also validate the syntax of a file:

  <info>php %command.full_name% filename</info>

Or of a whole directory:

  <info>php %command.full_name% dirname</info>
  <info>php %command.full_name% dirname --format=json</info>

EOF
            )
        ;
    }

    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $io = new SymfonyStyle($input, $output);
        $filenames = (array) $input->getArgument('filename');
        $this->format = $input->getOption('format');
        $this->displayCorrectFiles = $output->isVerbose();
        $flags = $input->getOption('parse-tags') ? Yaml::PARSE_CUSTOM_TAGS : 0;

        if (['-'] === $filenames) {
            return $this->display($io, [$this->validate(file_get_contents('php://stdin'), $flags)]);
        }

        // @deprecated to be removed in 5.0
        if (!$filenames) {
            if (0 === ftell(STDIN)) {
                @trigger_error('Piping content from STDIN to the "lint:yaml" command without passing the dash symbol "-" as argument is deprecated since Symfony 4.4.', E_USER_DEPRECATED);

                return $this->display($io, [$this->validate(file_get_contents('php://stdin'), $flags)]);
            }

            throw new RuntimeException('Please provide a filename or pipe file content to STDIN.');
        }

        $filesInfo = [];
        foreach ($filenames as $filename) {
            if (!$this->isReadable($filename)) {
                throw new RuntimeException(sprintf('File or directory "%s" is not readable.', $filename));
            }

            foreach ($this->getFiles($filename) as $file) {
                $filesInfo[] = $this->validate(file_get_contents($file), $flags, $file);
            }
        }

        return $this->display($io, $filesInfo);
    }

    private function validate(string $content, int $flags, string $file = null)
    {
        $prevErrorHandler = set_error_handler(function ($level, $message, $file, $line) use (&$prevErrorHandler) {
            if (E_USER_DEPRECATED === $level) {
                throw new ParseException($message, $this->getParser()->getRealCurrentLineNb() + 1);
            }

            return $prevErrorHandler ? $prevErrorHandler($level, $message, $file, $line) : false;
        });

        try {
            $this->getParser()->parse($content, Yaml::PARSE_CONSTANT | $flags);
        } catch (ParseException $e) {
            return ['file' => $file, 'line' => $e->getParsedLine(), 'valid' => false, 'message' => $e->getMessage()];
        } finally {
            restore_error_handler();
        }

        return ['file' => $file, 'valid' => true];
    }

    private function display(SymfonyStyle $io, array $files): int
    {
        switch ($this->format) {
            case 'txt':
                return $this->displayTxt($io, $files);
            case 'json':
                return $this->displayJson($io, $files);
            default:
                throw new InvalidArgumentException(sprintf('The format "%s" is not supported.', $this->format));
        }
    }

    private function displayTxt(SymfonyStyle $io, array $filesInfo): int
    {
        $countFiles = \count($filesInfo);
        $erroredFiles = 0;
        $suggestTagOption = false;

        foreach ($filesInfo as $info) {
            if ($info['valid'] && $this->displayCorrectFiles) {
                $io->comment('<info>OK</info>'.($info['file'] ? sprintf(' in %s', $info['file']) : ''));
            } elseif (!$info['valid']) {
                ++$erroredFiles;
                $io->text('<error> ERROR </error>'.($info['file'] ? sprintf(' in %s', $info['file']) : ''));
                $io->text(sprintf('<error> >> %s</error>', $info['message']));

                if (false !== strpos($info['message'], 'PARSE_CUSTOM_TAGS')) {
                    $suggestTagOption = true;
                }
            }
        }

        if (0 === $erroredFiles) {
            $io->success(sprintf('All %d YAML files contain valid syntax.', $countFiles));
        } else {
            $io->warning(sprintf('%d YAML files have valid syntax and %d contain errors.%s', $countFiles - $erroredFiles, $erroredFiles, $suggestTagOption ? ' Use the --parse-tags option if you want parse custom tags.' : ''));
        }

        return min($erroredFiles, 1);
    }

    private function displayJson(SymfonyStyle $io, array $filesInfo): int
    {
        $errors = 0;

        array_walk($filesInfo, function (&$v) use (&$errors) {
            $v['file'] = (string) $v['file'];
            if (!$v['valid']) {
                ++$errors;
            }

            if (isset($v['message']) && false !== strpos($v['message'], 'PARSE_CUSTOM_TAGS')) {
                $v['message'] .= ' Use the --parse-tags option if you want parse custom tags.';
            }
        });

        $io->writeln(json_encode($filesInfo, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES));

        return min($errors, 1);
    }

    private function getFiles(string $fileOrDirectory): iterable
    {
        if (is_file($fileOrDirectory)) {
            yield new \SplFileInfo($fileOrDirectory);

            return;
        }

        foreach ($this->getDirectoryIterator($fileOrDirectory) as $file) {
            if (!\in_array($file->getExtension(), ['yml', 'yaml'])) {
                continue;
            }

            yield $file;
        }
    }

    private function getParser(): Parser
    {
        if (!$this->parser) {
            $this->parser = new Parser();
        }

        return $this->parser;
    }

    private function getDirectoryIterator(string $directory): iterable
    {
        $default = function ($directory) {
            return new \RecursiveIteratorIterator(
                new \RecursiveDirectoryIterator($directory, \FilesystemIterator::SKIP_DOTS | \FilesystemIterator::FOLLOW_SYMLINKS),
                \RecursiveIteratorIterator::LEAVES_ONLY
            );
        };

        if (null !== $this->directoryIteratorProvider) {
            return ($this->directoryIteratorProvider)($directory, $default);
        }

        return $default($directory);
    }

    private function isReadable(string $fileOrDirectory): bool
    {
        $default = function ($fileOrDirectory) {
            return is_readable($fileOrDirectory);
        };

        if (null !== $this->isReadableProvider) {
            return ($this->isReadableProvider)($fileOrDirectory, $default);
        }

        return $default($fileOrDirectory);
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Yaml\Exception;

/**
 * Exception class thrown when an error occurs during dumping.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class DumpException extends RuntimeException
{
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Yaml\Exception;

/**
 * Exception interface for all exceptions thrown by the component.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
interface ExceptionInterface extends \Throwable
{
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Yaml\Exception;

/**
 * Exception class thrown when an error occurs during parsing.
 *
 * @author Romain Neutron <imprec@gmail.com>
 */
class RuntimeException extends \RuntimeException implements ExceptionInterface
{
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Yaml\Exception;

/**
 * Exception class thrown when an error occurs during parsing.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class ParseException extends RuntimeException
{
    private $parsedFile;
    private $parsedLine;
    private $snippet;
    private $rawMessage;

    /**
     * @param string          $message    The error message
     * @param int             $parsedLine The line where the error occurred
     * @param string|null     $snippet    The snippet of code near the problem
     * @param string|null     $parsedFile The file name where the error occurred
     * @param \Exception|null $previous   The previous exception
     */
    public function __construct(string $message, int $parsedLine = -1, string $snippet = null, string $parsedFile = null, \Throwable $previous = null)
    {
        $this->parsedFile = $parsedFile;
        $this->parsedLine = $parsedLine;
        $this->snippet = $snippet;
        $this->rawMessage = $message;

        $this->updateRepr();

        parent::__construct($this->message, 0, $previous);
    }

    /**
     * Gets the snippet of code near the error.
     *
     * @return string The snippet of code
     */
    public function getSnippet()
    {
        return $this->snippet;
    }

    /**
     * Sets the snippet of code near the error.
     *
     * @param string $snippet The code snippet
     */
    public function setSnippet($snippet)
    {
        $this->snippet = $snippet;

        $this->updateRepr();
    }

    /**
     * Gets the filename where the error occurred.
     *
     * This method returns null if a string is parsed.
     *
     * @return string The filename
     */
    public function getParsedFile()
    {
        return $this->parsedFile;
    }

    /**
     * Sets the filename where the error occurred.
     *
     * @param string $parsedFile The filename
     */
    public function setParsedFile($parsedFile)
    {
        $this->parsedFile = $parsedFile;

        $this->updateRepr();
    }

    /**
     * Gets the line where the error occurred.
     *
     * @return int The file line
     */
    public function getParsedLine()
    {
        return $this->parsedLine;
    }

    /**
     * Sets the line where the error occurred.
     *
     * @param int $parsedLine The file line
     */
    public function setParsedLine($parsedLine)
    {
        $this->parsedLine = $parsedLine;

        $this->updateRepr();
    }

    private function updateRepr()
    {
        $this->message = $this->rawMessage;

        $dot = false;
        if ('.' === substr($this->message, -1)) {
            $this->message = substr($this->message, 0, -1);
            $dot = true;
        }

        if (null !== $this->parsedFile) {
            $this->message .= sprintf(' in %s', json_encode($this->parsedFile, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE));
        }

        if ($this->parsedLine >= 0) {
            $this->message .= sprintf(' at line %d', $this->parsedLine);
        }

        if ($this->snippet) {
            $this->message .= sprintf(' (near "%s")', $this->snippet);
        }

        if ($dot) {
            $this->message .= '.';
        }
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Yaml\Tag;

/**
 * @author Nicolas Grekas <p@tchwork.com>
 * @author Guilhem N. <egetick@gmail.com>
 */
final class TaggedValue
{
    private $tag;
    private $value;

    public function __construct(string $tag, $value)
    {
        $this->tag = $tag;
        $this->value = $value;
    }

    public function getTag(): string
    {
        return $this->tag;
    }

    public function getValue()
    {
        return $this->value;
    }
}
{
    "name": "symfony/yaml",
    "type": "library",
    "description": "Symfony Yaml Component",
    "keywords": [],
    "homepage": "https://symfony.com",
    "license": "MIT",
    "authors": [
        {
            "name": "Fabien Potencier",
            "email": "fabien@symfony.com"
        },
        {
            "name": "Symfony Community",
            "homepage": "https://symfony.com/contributors"
        }
    ],
    "require": {
        "php": ">=7.1.3",
        "symfony/polyfill-ctype": "~1.8"
    },
    "require-dev": {
        "symfony/console": "^3.4|^4.0|^5.0"
    },
    "conflict": {
        "symfony/console": "<3.4"
    },
    "suggest": {
        "symfony/console": "For validating YAML files using the lint command"
    },
    "autoload": {
        "psr-4": { "Symfony\\Component\\Yaml\\": "" },
        "exclude-from-classmap": [
            "/Tests/"
        ]
    },
    "minimum-stability": "dev",
    "extra": {
        "branch-alias": {
            "dev-master": "4.4-dev"
        }
    }
}
Copyright (c) 2020 Fabien Potencier

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.
CHANGELOG
=========

The changelog is maintained for all Symfony contracts at the following URL:
https://github.com/symfony/contracts/blob/master/CHANGELOG.md
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

if (!function_exists('trigger_deprecation')) {
    /**
     * Triggers a silenced deprecation notice.
     *
     * @param string $package The name of the Composer package that is triggering the deprecation
     * @param string $version The version of the package that introduced the deprecation
     * @param string $message The message of the deprecation
     * @param mixed  ...$args Values to insert in the message using printf() formatting
     *
     * @author Nicolas Grekas <p@tchwork.com>
     */
    function trigger_deprecation(string $package, string $version, string $message, ...$args): void
    {
        @trigger_error(($package || $version ? "Since $package $version: " : '').($args ? vsprintf($message, $args) : $message), E_USER_DEPRECATED);
    }
}
Symfony Deprecation Contracts
=============================

A generic function and convention to trigger deprecation notices.

This package provides a single global function named `trigger_deprecation()` that triggers silenced deprecation notices.

By using a custom PHP error handler such as the one provided by the Symfony ErrorHandler component,
the triggered deprecations can be caught and logged for later discovery, both on dev and prod environments.

The function requires at least 3 arguments:
 - the name of the Composer package that is triggering the deprecation
 - the version of the package that introduced the deprecation
 - the message of the deprecation
 - more arguments can be provided: they will be inserted in the message using `printf()` formatting

Example:
```php
trigger_deprecation('symfony/blockchain', '8.9', 'Using "%s" is deprecated, use "%s" instead.', 'bitcoin', 'fabcoin');
```

This will generate the following message:
`Since symfony/blockchain 8.9: Using "bitcoin" is deprecated, use "fabcoin" instead.`

While not necessarily recommended, the deprecation notices can be completely ignored by declaring an empty
`function trigger_deprecation() {}` in your application.
vendor/
composer.lock
phpunit.xml
{
    "name": "symfony/deprecation-contracts",
    "type": "library",
    "description": "A generic function and convention to trigger deprecation notices",
    "homepage": "https://symfony.com",
    "license": "MIT",
    "authors": [
        {
            "name": "Nicolas Grekas",
            "email": "p@tchwork.com"
        },
        {
            "name": "Symfony Community",
            "homepage": "https://symfony.com/contributors"
        }
    ],
    "require": {
        "php": ">=7.1"
    },
    "autoload": {
        "files": [
            "function.php"
        ]
    },
    "minimum-stability": "dev",
    "extra": {
        "branch-alias": {
            "dev-master": "2.1-dev"
        }
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Contracts\Service;

/**
 * A ServiceSubscriber exposes its dependencies via the static {@link getSubscribedServices} method.
 *
 * The getSubscribedServices method returns an array of service types required by such instances,
 * optionally keyed by the service names used internally. Service types that start with an interrogation
 * mark "?" are optional, while the other ones are mandatory service dependencies.
 *
 * The injected service locators SHOULD NOT allow access to any other services not specified by the method.
 *
 * It is expected that ServiceSubscriber instances consume PSR-11-based service locators internally.
 * This interface does not dictate any injection method for these service locators, although constructor
 * injection is recommended.
 *
 * @author Nicolas Grekas <p@tchwork.com>
 */
interface ServiceSubscriberInterface
{
    /**
     * Returns an array of service types required by such instances, optionally keyed by the service names used internally.
     *
     * For mandatory dependencies:
     *
     *  * ['logger' => 'Psr\Log\LoggerInterface'] means the objects use the "logger" name
     *    internally to fetch a service which must implement Psr\Log\LoggerInterface.
     *  * ['loggers' => 'Psr\Log\LoggerInterface[]'] means the objects use the "loggers" name
     *    internally to fetch an iterable of Psr\Log\LoggerInterface instances.
     *  * ['Psr\Log\LoggerInterface'] is a shortcut for
     *  * ['Psr\Log\LoggerInterface' => 'Psr\Log\LoggerInterface']
     *
     * otherwise:
     *
     *  * ['logger' => '?Psr\Log\LoggerInterface'] denotes an optional dependency
     *  * ['loggers' => '?Psr\Log\LoggerInterface[]'] denotes an optional iterable dependency
     *  * ['?Psr\Log\LoggerInterface'] is a shortcut for
     *  * ['Psr\Log\LoggerInterface' => '?Psr\Log\LoggerInterface']
     *
     * @return array The required service types, optionally keyed by service names
     */
    public static function getSubscribedServices();
}
Copyright (c) 2018-2020 Fabien Potencier

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.
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Contracts\Service\Test;

use PHPUnit\Framework\TestCase;
use Psr\Container\ContainerInterface;
use Symfony\Contracts\Service\ServiceLocatorTrait;

abstract class ServiceLocatorTest extends TestCase
{
    protected function getServiceLocator(array $factories)
    {
        return new class($factories) implements ContainerInterface {
            use ServiceLocatorTrait;
        };
    }

    public function testHas()
    {
        $locator = $this->getServiceLocator([
            'foo' => function () { return 'bar'; },
            'bar' => function () { return 'baz'; },
            function () { return 'dummy'; },
        ]);

        $this->assertTrue($locator->has('foo'));
        $this->assertTrue($locator->has('bar'));
        $this->assertFalse($locator->has('dummy'));
    }

    public function testGet()
    {
        $locator = $this->getServiceLocator([
            'foo' => function () { return 'bar'; },
            'bar' => function () { return 'baz'; },
        ]);

        $this->assertSame('bar', $locator->get('foo'));
        $this->assertSame('baz', $locator->get('bar'));
    }

    public function testGetDoesNotMemoize()
    {
        $i = 0;
        $locator = $this->getServiceLocator([
            'foo' => function () use (&$i) {
                ++$i;

                return 'bar';
            },
        ]);

        $this->assertSame('bar', $locator->get('foo'));
        $this->assertSame('bar', $locator->get('foo'));
        $this->assertSame(2, $i);
    }

    public function testThrowsOnUndefinedInternalService()
    {
        if (!$this->getExpectedException()) {
            $this->expectException('Psr\Container\NotFoundExceptionInterface');
            $this->expectExceptionMessage('The service "foo" has a dependency on a non-existent service "bar". This locator only knows about the "foo" service.');
        }
        $locator = $this->getServiceLocator([
            'foo' => function () use (&$locator) { return $locator->get('bar'); },
        ]);

        $locator->get('foo');
    }

    public function testThrowsOnCircularReference()
    {
        $this->expectException('Psr\Container\ContainerExceptionInterface');
        $this->expectExceptionMessage('Circular reference detected for service "bar", path: "bar -> baz -> bar".');
        $locator = $this->getServiceLocator([
            'foo' => function () use (&$locator) { return $locator->get('bar'); },
            'bar' => function () use (&$locator) { return $locator->get('baz'); },
            'baz' => function () use (&$locator) { return $locator->get('bar'); },
        ]);

        $locator->get('foo');
    }
}
CHANGELOG
=========

The changelog is maintained for all Symfony contracts at the following URL:
https://github.com/symfony/contracts/blob/master/CHANGELOG.md
Symfony Service Contracts
=========================

A set of abstractions extracted out of the Symfony components.

Can be used to build on semantics that the Symfony components proved useful - and
that already have battle tested implementations.

See https://github.com/symfony/contracts/blob/master/README.md for more information.
vendor/
composer.lock
phpunit.xml
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Contracts\Service;

/**
 * Provides a way to reset an object to its initial state.
 *
 * When calling the "reset()" method on an object, it should be put back to its
 * initial state. This usually means clearing any internal buffers and forwarding
 * the call to internal dependencies. All properties of the object should be put
 * back to the same state it had when it was first ready to use.
 *
 * This method could be called, for example, to recycle objects that are used as
 * services, so that they can be used to handle several requests in the same
 * process loop (note that we advise making your services stateless instead of
 * implementing this interface when possible.)
 */
interface ResetInterface
{
    public function reset();
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Contracts\Service;

use Psr\Container\ContainerInterface;

/**
 * A ServiceProviderInterface exposes the identifiers and the types of services provided by a container.
 *
 * @author Nicolas Grekas <p@tchwork.com>
 * @author Mateusz Sip <mateusz.sip@gmail.com>
 */
interface ServiceProviderInterface extends ContainerInterface
{
    /**
     * Returns an associative array of service types keyed by the identifiers provided by the current container.
     *
     * Examples:
     *
     *  * ['logger' => 'Psr\Log\LoggerInterface'] means the object provides a service named "logger" that implements Psr\Log\LoggerInterface
     *  * ['foo' => '?'] means the container provides service name "foo" of unspecified type
     *  * ['bar' => '?Bar\Baz'] means the container provides a service "bar" of type Bar\Baz|null
     *
     * @return string[] The provided service types, keyed by service names
     */
    public function getProvidedServices(): array;
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Contracts\Service;

use Psr\Container\ContainerInterface;

/**
 * Implementation of ServiceSubscriberInterface that determines subscribed services from
 * private method return types. Service ids are available as "ClassName::methodName".
 *
 * @author Kevin Bond <kevinbond@gmail.com>
 */
trait ServiceSubscriberTrait
{
    /** @var ContainerInterface */
    protected $container;

    public static function getSubscribedServices(): array
    {
        static $services;

        if (null !== $services) {
            return $services;
        }

        $services = \is_callable(['parent', __FUNCTION__]) ? parent::getSubscribedServices() : [];

        foreach ((new \ReflectionClass(self::class))->getMethods() as $method) {
            if ($method->isStatic() || $method->isAbstract() || $method->isGenerator() || $method->isInternal() || $method->getNumberOfRequiredParameters()) {
                continue;
            }

            if (self::class === $method->getDeclaringClass()->name && ($returnType = $method->getReturnType()) && !$returnType->isBuiltin()) {
                $services[self::class.'::'.$method->name] = '?'.$returnType->getName();
            }
        }

        return $services;
    }

    /**
     * @required
     */
    public function setContainer(ContainerInterface $container)
    {
        $this->container = $container;

        if (\is_callable(['parent', __FUNCTION__])) {
            return parent::setContainer($container);
        }

        return null;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Contracts\Service;

use Psr\Container\ContainerExceptionInterface;
use Psr\Container\NotFoundExceptionInterface;

// Help opcache.preload discover always-needed symbols
class_exists(ContainerExceptionInterface::class);
class_exists(NotFoundExceptionInterface::class);

/**
 * A trait to help implement ServiceProviderInterface.
 *
 * @author Robin Chalas <robin.chalas@gmail.com>
 * @author Nicolas Grekas <p@tchwork.com>
 */
trait ServiceLocatorTrait
{
    private $factories;
    private $loading = [];
    private $providedTypes;

    /**
     * @param callable[] $factories
     */
    public function __construct(array $factories)
    {
        $this->factories = $factories;
    }

    /**
     * {@inheritdoc}
     *
     * @return bool
     */
    public function has($id)
    {
        return isset($this->factories[$id]);
    }

    /**
     * {@inheritdoc}
     */
    public function get($id)
    {
        if (!isset($this->factories[$id])) {
            throw $this->createNotFoundException($id);
        }

        if (isset($this->loading[$id])) {
            $ids = array_values($this->loading);
            $ids = \array_slice($this->loading, array_search($id, $ids));
            $ids[] = $id;

            throw $this->createCircularReferenceException($id, $ids);
        }

        $this->loading[$id] = $id;
        try {
            return $this->factories[$id]($this);
        } finally {
            unset($this->loading[$id]);
        }
    }

    /**
     * {@inheritdoc}
     */
    public function getProvidedServices(): array
    {
        if (null === $this->providedTypes) {
            $this->providedTypes = [];

            foreach ($this->factories as $name => $factory) {
                if (!\is_callable($factory)) {
                    $this->providedTypes[$name] = '?';
                } else {
                    $type = (new \ReflectionFunction($factory))->getReturnType();

                    $this->providedTypes[$name] = $type ? ($type->allowsNull() ? '?' : '').$type->getName() : '?';
                }
            }
        }

        return $this->providedTypes;
    }

    private function createNotFoundException(string $id): NotFoundExceptionInterface
    {
        if (!$alternatives = array_keys($this->factories)) {
            $message = 'is empty...';
        } else {
            $last = array_pop($alternatives);
            if ($alternatives) {
                $message = sprintf('only knows about the "%s" and "%s" services.', implode('", "', $alternatives), $last);
            } else {
                $message = sprintf('only knows about the "%s" service.', $last);
            }
        }

        if ($this->loading) {
            $message = sprintf('The service "%s" has a dependency on a non-existent service "%s". This locator %s', end($this->loading), $id, $message);
        } else {
            $message = sprintf('Service "%s" not found: the current service locator %s', $id, $message);
        }

        return new class($message) extends \InvalidArgumentException implements NotFoundExceptionInterface {
        };
    }

    private function createCircularReferenceException(string $id, array $path): ContainerExceptionInterface
    {
        return new class(sprintf('Circular reference detected for service "%s", path: "%s".', $id, implode(' -> ', $path))) extends \RuntimeException implements ContainerExceptionInterface {
        };
    }
}
{
    "name": "symfony/service-contracts",
    "type": "library",
    "description": "Generic abstractions related to writing services",
    "keywords": ["abstractions", "contracts", "decoupling", "interfaces", "interoperability", "standards"],
    "homepage": "https://symfony.com",
    "license": "MIT",
    "authors": [
        {
            "name": "Nicolas Grekas",
            "email": "p@tchwork.com"
        },
        {
            "name": "Symfony Community",
            "homepage": "https://symfony.com/contributors"
        }
    ],
    "require": {
        "php": ">=7.2.5",
        "psr/container": "^1.0"
    },
    "suggest": {
        "symfony/service-implementation": ""
    },
    "autoload": {
        "psr-4": { "Symfony\\Contracts\\Service\\": "" }
    },
    "minimum-stability": "dev",
    "extra": {
        "branch-alias": {
            "dev-master": "2.1-dev"
        }
    }
}
Copyright (c) 2004-2020 Fabien Potencier

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.
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Process;

/**
 * Generic executable finder.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 * @author Johannes M. Schmitt <schmittjoh@gmail.com>
 */
class ExecutableFinder
{
    private $suffixes = ['.exe', '.bat', '.cmd', '.com'];

    /**
     * Replaces default suffixes of executable.
     */
    public function setSuffixes(array $suffixes)
    {
        $this->suffixes = $suffixes;
    }

    /**
     * Adds new possible suffix to check for executable.
     *
     * @param string $suffix
     */
    public function addSuffix($suffix)
    {
        $this->suffixes[] = $suffix;
    }

    /**
     * Finds an executable by name.
     *
     * @param string      $name      The executable name (without the extension)
     * @param string|null $default   The default to return if no executable is found
     * @param array       $extraDirs Additional dirs to check into
     *
     * @return string|null The executable path or default value
     */
    public function find($name, $default = null, array $extraDirs = [])
    {
        if (ini_get('open_basedir')) {
            $searchPath = array_merge(explode(PATH_SEPARATOR, ini_get('open_basedir')), $extraDirs);
            $dirs = [];
            foreach ($searchPath as $path) {
                // Silencing against https://bugs.php.net/69240
                if (@is_dir($path)) {
                    $dirs[] = $path;
                } else {
                    if (basename($path) == $name && @is_executable($path)) {
                        return $path;
                    }
                }
            }
        } else {
            $dirs = array_merge(
                explode(PATH_SEPARATOR, getenv('PATH') ?: getenv('Path')),
                $extraDirs
            );
        }

        $suffixes = [''];
        if ('\\' === \DIRECTORY_SEPARATOR) {
            $pathExt = getenv('PATHEXT');
            $suffixes = array_merge($pathExt ? explode(PATH_SEPARATOR, $pathExt) : $this->suffixes, $suffixes);
        }
        foreach ($suffixes as $suffix) {
            foreach ($dirs as $dir) {
                if (@is_file($file = $dir.\DIRECTORY_SEPARATOR.$name.$suffix) && ('\\' === \DIRECTORY_SEPARATOR || @is_executable($file))) {
                    return $file;
                }
            }
        }

        return $default;
    }
}
CHANGELOG
=========

4.4.0
-----

 * deprecated `Process::inheritEnvironmentVariables()`: env variables are always inherited.
 * added `Process::getLastOutputTime()` method

4.2.0
-----

 * added the `Process::fromShellCommandline()` to run commands in a shell wrapper
 * deprecated passing a command as string when creating a `Process` instance
 * deprecated the `Process::setCommandline()` and the `PhpProcess::setPhpBinary()` methods
 * added the `Process::waitUntil()` method to wait for the process only for a
   specific output, then continue the normal execution of your application

4.1.0
-----

 * added the `Process::isTtySupported()` method that allows to check for TTY support
 * made `PhpExecutableFinder` look for the `PHP_BINARY` env var when searching the php binary
 * added the `ProcessSignaledException` class to properly catch signaled process errors

4.0.0
-----

 * environment variables will always be inherited
 * added a second `array $env = []` argument to the `start()`, `run()`,
   `mustRun()`, and `restart()` methods of the `Process` class
 * added a second `array $env = []` argument to the `start()` method of the
   `PhpProcess` class
 * the `ProcessUtils::escapeArgument()` method has been removed
 * the `areEnvironmentVariablesInherited()`, `getOptions()`, and `setOptions()`
   methods of the `Process` class have been removed
 * support for passing `proc_open()` options has been removed
 * removed the `ProcessBuilder` class, use the `Process` class instead
 * removed the `getEnhanceWindowsCompatibility()` and `setEnhanceWindowsCompatibility()` methods of the `Process` class
 * passing a not existing working directory to the constructor of the `Symfony\Component\Process\Process` class is not
   supported anymore

3.4.0
-----

 * deprecated the ProcessBuilder class
 * deprecated calling `Process::start()` without setting a valid working directory beforehand (via `setWorkingDirectory()` or constructor)

3.3.0
-----

 * added command line arrays in the `Process` class
 * added `$env` argument to `Process::start()`, `run()`, `mustRun()` and `restart()` methods
 * deprecated the `ProcessUtils::escapeArgument()` method
 * deprecated not inheriting environment variables
 * deprecated configuring `proc_open()` options
 * deprecated configuring enhanced Windows compatibility
 * deprecated configuring enhanced sigchild compatibility

2.5.0
-----

 * added support for PTY mode
 * added the convenience method "mustRun"
 * deprecation: Process::setStdin() is deprecated in favor of Process::setInput()
 * deprecation: Process::getStdin() is deprecated in favor of Process::getInput()
 * deprecation: Process::setInput() and ProcessBuilder::setInput() do not accept non-scalar types

2.4.0
-----

 * added the ability to define an idle timeout

2.3.0
-----

 * added ProcessUtils::escapeArgument() to fix the bug in escapeshellarg() function on Windows
 * added Process::signal()
 * added Process::getPid()
 * added support for a TTY mode

2.2.0
-----

 * added ProcessBuilder::setArguments() to reset the arguments on a builder
 * added a way to retrieve the standard and error output incrementally
 * added Process:restart()

2.1.0
-----

 * added support for non-blocking processes (start(), wait(), isRunning(), stop())
 * enhanced Windows compatibility
 * added Process::getExitCodeText() that returns a string representation for
   the exit code returned by the process
 * added ProcessBuilder
Process Component
=================

The Process component executes commands in sub-processes.

Resources
---------

  * [Documentation](https://symfony.com/doc/current/components/process.html)
  * [Contributing](https://symfony.com/doc/current/contributing/index.html)
  * [Report issues](https://github.com/symfony/symfony/issues) and
    [send Pull Requests](https://github.com/symfony/symfony/pulls)
    in the [main Symfony repository](https://github.com/symfony/symfony)
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Process\Pipes;

use Symfony\Component\Process\Process;

/**
 * UnixPipes implementation uses unix pipes as handles.
 *
 * @author Romain Neutron <imprec@gmail.com>
 *
 * @internal
 */
class UnixPipes extends AbstractPipes
{
    private $ttyMode;
    private $ptyMode;
    private $haveReadSupport;

    public function __construct(?bool $ttyMode, bool $ptyMode, $input, bool $haveReadSupport)
    {
        $this->ttyMode = $ttyMode;
        $this->ptyMode = $ptyMode;
        $this->haveReadSupport = $haveReadSupport;

        parent::__construct($input);
    }

    public function __destruct()
    {
        $this->close();
    }

    /**
     * {@inheritdoc}
     */
    public function getDescriptors(): array
    {
        if (!$this->haveReadSupport) {
            $nullstream = fopen('/dev/null', 'c');

            return [
                ['pipe', 'r'],
                $nullstream,
                $nullstream,
            ];
        }

        if ($this->ttyMode) {
            return [
                ['file', '/dev/tty', 'r'],
                ['file', '/dev/tty', 'w'],
                ['file', '/dev/tty', 'w'],
            ];
        }

        if ($this->ptyMode && Process::isPtySupported()) {
            return [
                ['pty'],
                ['pty'],
                ['pty'],
            ];
        }

        return [
            ['pipe', 'r'],
            ['pipe', 'w'], // stdout
            ['pipe', 'w'], // stderr
        ];
    }

    /**
     * {@inheritdoc}
     */
    public function getFiles(): array
    {
        return [];
    }

    /**
     * {@inheritdoc}
     */
    public function readAndWrite(bool $blocking, bool $close = false): array
    {
        $this->unblock();
        $w = $this->write();

        $read = $e = [];
        $r = $this->pipes;
        unset($r[0]);

        // let's have a look if something changed in streams
        set_error_handler([$this, 'handleError']);
        if (($r || $w) && false === stream_select($r, $w, $e, 0, $blocking ? Process::TIMEOUT_PRECISION * 1E6 : 0)) {
            restore_error_handler();
            // if a system call has been interrupted, forget about it, let's try again
            // otherwise, an error occurred, let's reset pipes
            if (!$this->hasSystemCallBeenInterrupted()) {
                $this->pipes = [];
            }

            return $read;
        }
        restore_error_handler();

        foreach ($r as $pipe) {
            // prior PHP 5.4 the array passed to stream_select is modified and
            // lose key association, we have to find back the key
            $read[$type = array_search($pipe, $this->pipes, true)] = '';

            do {
                $data = @fread($pipe, self::CHUNK_SIZE);
                $read[$type] .= $data;
            } while (isset($data[0]) && ($close || isset($data[self::CHUNK_SIZE - 1])));

            if (!isset($read[$type][0])) {
                unset($read[$type]);
            }

            if ($close && feof($pipe)) {
                fclose($pipe);
                unset($this->pipes[$type]);
            }
        }

        return $read;
    }

    /**
     * {@inheritdoc}
     */
    public function haveReadSupport(): bool
    {
        return $this->haveReadSupport;
    }

    /**
     * {@inheritdoc}
     */
    public function areOpen(): bool
    {
        return (bool) $this->pipes;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Process\Pipes;

use Symfony\Component\Process\Exception\RuntimeException;
use Symfony\Component\Process\Process;

/**
 * WindowsPipes implementation uses temporary files as handles.
 *
 * @see https://bugs.php.net/51800
 * @see https://bugs.php.net/65650
 *
 * @author Romain Neutron <imprec@gmail.com>
 *
 * @internal
 */
class WindowsPipes extends AbstractPipes
{
    private $files = [];
    private $fileHandles = [];
    private $lockHandles = [];
    private $readBytes = [
        Process::STDOUT => 0,
        Process::STDERR => 0,
    ];
    private $haveReadSupport;

    public function __construct($input, bool $haveReadSupport)
    {
        $this->haveReadSupport = $haveReadSupport;

        if ($this->haveReadSupport) {
            // Fix for PHP bug #51800: reading from STDOUT pipe hangs forever on Windows if the output is too big.
            // Workaround for this problem is to use temporary files instead of pipes on Windows platform.
            //
            // @see https://bugs.php.net/51800
            $pipes = [
                Process::STDOUT => Process::OUT,
                Process::STDERR => Process::ERR,
            ];
            $tmpDir = sys_get_temp_dir();
            $lastError = 'unknown reason';
            set_error_handler(function ($type, $msg) use (&$lastError) { $lastError = $msg; });
            for ($i = 0;; ++$i) {
                foreach ($pipes as $pipe => $name) {
                    $file = sprintf('%s\\sf_proc_%02X.%s', $tmpDir, $i, $name);

                    if (!$h = fopen($file.'.lock', 'w')) {
                        restore_error_handler();
                        throw new RuntimeException('A temporary file could not be opened to write the process output: '.$lastError);
                    }
                    if (!flock($h, LOCK_EX | LOCK_NB)) {
                        continue 2;
                    }
                    if (isset($this->lockHandles[$pipe])) {
                        flock($this->lockHandles[$pipe], LOCK_UN);
                        fclose($this->lockHandles[$pipe]);
                    }
                    $this->lockHandles[$pipe] = $h;

                    if (!fclose(fopen($file, 'w')) || !$h = fopen($file, 'r')) {
                        flock($this->lockHandles[$pipe], LOCK_UN);
                        fclose($this->lockHandles[$pipe]);
                        unset($this->lockHandles[$pipe]);
                        continue 2;
                    }
                    $this->fileHandles[$pipe] = $h;
                    $this->files[$pipe] = $file;
                }
                break;
            }
            restore_error_handler();
        }

        parent::__construct($input);
    }

    public function __destruct()
    {
        $this->close();
    }

    /**
     * {@inheritdoc}
     */
    public function getDescriptors(): array
    {
        if (!$this->haveReadSupport) {
            $nullstream = fopen('NUL', 'c');

            return [
                ['pipe', 'r'],
                $nullstream,
                $nullstream,
            ];
        }

        // We're not using pipe on Windows platform as it hangs (https://bugs.php.net/51800)
        // We're not using file handles as it can produce corrupted output https://bugs.php.net/65650
        // So we redirect output within the commandline and pass the nul device to the process
        return [
            ['pipe', 'r'],
            ['file', 'NUL', 'w'],
            ['file', 'NUL', 'w'],
        ];
    }

    /**
     * {@inheritdoc}
     */
    public function getFiles(): array
    {
        return $this->files;
    }

    /**
     * {@inheritdoc}
     */
    public function readAndWrite(bool $blocking, bool $close = false): array
    {
        $this->unblock();
        $w = $this->write();
        $read = $r = $e = [];

        if ($blocking) {
            if ($w) {
                @stream_select($r, $w, $e, 0, Process::TIMEOUT_PRECISION * 1E6);
            } elseif ($this->fileHandles) {
                usleep(Process::TIMEOUT_PRECISION * 1E6);
            }
        }
        foreach ($this->fileHandles as $type => $fileHandle) {
            $data = stream_get_contents($fileHandle, -1, $this->readBytes[$type]);

            if (isset($data[0])) {
                $this->readBytes[$type] += \strlen($data);
                $read[$type] = $data;
            }
            if ($close) {
                ftruncate($fileHandle, 0);
                fclose($fileHandle);
                flock($this->lockHandles[$type], LOCK_UN);
                fclose($this->lockHandles[$type]);
                unset($this->fileHandles[$type], $this->lockHandles[$type]);
            }
        }

        return $read;
    }

    /**
     * {@inheritdoc}
     */
    public function haveReadSupport(): bool
    {
        return $this->haveReadSupport;
    }

    /**
     * {@inheritdoc}
     */
    public function areOpen(): bool
    {
        return $this->pipes && $this->fileHandles;
    }

    /**
     * {@inheritdoc}
     */
    public function close()
    {
        parent::close();
        foreach ($this->fileHandles as $type => $handle) {
            ftruncate($handle, 0);
            fclose($handle);
            flock($this->lockHandles[$type], LOCK_UN);
            fclose($this->lockHandles[$type]);
        }
        $this->fileHandles = $this->lockHandles = [];
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Process\Pipes;

use Symfony\Component\Process\Exception\InvalidArgumentException;

/**
 * @author Romain Neutron <imprec@gmail.com>
 *
 * @internal
 */
abstract class AbstractPipes implements PipesInterface
{
    public $pipes = [];

    private $inputBuffer = '';
    private $input;
    private $blocked = true;
    private $lastError;

    /**
     * @param resource|string|int|float|bool|\Iterator|null $input
     */
    public function __construct($input)
    {
        if (\is_resource($input) || $input instanceof \Iterator) {
            $this->input = $input;
        } elseif (\is_string($input)) {
            $this->inputBuffer = $input;
        } else {
            $this->inputBuffer = (string) $input;
        }
    }

    /**
     * {@inheritdoc}
     */
    public function close()
    {
        foreach ($this->pipes as $pipe) {
            fclose($pipe);
        }
        $this->pipes = [];
    }

    /**
     * Returns true if a system call has been interrupted.
     */
    protected function hasSystemCallBeenInterrupted(): bool
    {
        $lastError = $this->lastError;
        $this->lastError = null;

        // stream_select returns false when the `select` system call is interrupted by an incoming signal
        return null !== $lastError && false !== stripos($lastError, 'interrupted system call');
    }

    /**
     * Unblocks streams.
     */
    protected function unblock()
    {
        if (!$this->blocked) {
            return;
        }

        foreach ($this->pipes as $pipe) {
            stream_set_blocking($pipe, 0);
        }
        if (\is_resource($this->input)) {
            stream_set_blocking($this->input, 0);
        }

        $this->blocked = false;
    }

    /**
     * Writes input to stdin.
     *
     * @throws InvalidArgumentException When an input iterator yields a non supported value
     */
    protected function write(): ?array
    {
        if (!isset($this->pipes[0])) {
            return null;
        }
        $input = $this->input;

        if ($input instanceof \Iterator) {
            if (!$input->valid()) {
                $input = null;
            } elseif (\is_resource($input = $input->current())) {
                stream_set_blocking($input, 0);
            } elseif (!isset($this->inputBuffer[0])) {
                if (!\is_string($input)) {
                    if (!is_scalar($input)) {
                        throw new InvalidArgumentException(sprintf('"%s" yielded a value of type "%s", but only scalars and stream resources are supported.', \get_class($this->input), \gettype($input)));
                    }
                    $input = (string) $input;
                }
                $this->inputBuffer = $input;
                $this->input->next();
                $input = null;
            } else {
                $input = null;
            }
        }

        $r = $e = [];
        $w = [$this->pipes[0]];

        // let's have a look if something changed in streams
        if (false === @stream_select($r, $w, $e, 0, 0)) {
            return null;
        }

        foreach ($w as $stdin) {
            if (isset($this->inputBuffer[0])) {
                $written = fwrite($stdin, $this->inputBuffer);
                $this->inputBuffer = substr($this->inputBuffer, $written);
                if (isset($this->inputBuffer[0])) {
                    return [$this->pipes[0]];
                }
            }

            if ($input) {
                for (;;) {
                    $data = fread($input, self::CHUNK_SIZE);
                    if (!isset($data[0])) {
                        break;
                    }
                    $written = fwrite($stdin, $data);
                    $data = substr($data, $written);
                    if (isset($data[0])) {
                        $this->inputBuffer = $data;

                        return [$this->pipes[0]];
                    }
                }
                if (feof($input)) {
                    if ($this->input instanceof \Iterator) {
                        $this->input->next();
                    } else {
                        $this->input = null;
                    }
                }
            }
        }

        // no input to read on resource, buffer is empty
        if (!isset($this->inputBuffer[0]) && !($this->input instanceof \Iterator ? $this->input->valid() : $this->input)) {
            $this->input = null;
            fclose($this->pipes[0]);
            unset($this->pipes[0]);
        } elseif (!$w) {
            return [$this->pipes[0]];
        }

        return null;
    }

    /**
     * @internal
     */
    public function handleError($type, $msg)
    {
        $this->lastError = $msg;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Process\Pipes;

/**
 * PipesInterface manages descriptors and pipes for the use of proc_open.
 *
 * @author Romain Neutron <imprec@gmail.com>
 *
 * @internal
 */
interface PipesInterface
{
    const CHUNK_SIZE = 16384;

    /**
     * Returns an array of descriptors for the use of proc_open.
     */
    public function getDescriptors(): array;

    /**
     * Returns an array of filenames indexed by their related stream in case these pipes use temporary files.
     *
     * @return string[]
     */
    public function getFiles(): array;

    /**
     * Reads data in file handles and pipes.
     *
     * @param bool $blocking Whether to use blocking calls or not
     * @param bool $close    Whether to close pipes if they've reached EOF
     *
     * @return string[] An array of read data indexed by their fd
     */
    public function readAndWrite(bool $blocking, bool $close = false): array;

    /**
     * Returns if the current state has open file handles or pipes.
     */
    public function areOpen(): bool;

    /**
     * Returns if pipes are able to read output.
     */
    public function haveReadSupport(): bool;

    /**
     * Closes file handles and pipes.
     */
    public function close();
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Process;

use Symfony\Component\Process\Exception\RuntimeException;

/**
 * Provides a way to continuously write to the input of a Process until the InputStream is closed.
 *
 * @author Nicolas Grekas <p@tchwork.com>
 */
class InputStream implements \IteratorAggregate
{
    /** @var callable|null */
    private $onEmpty = null;
    private $input = [];
    private $open = true;

    /**
     * Sets a callback that is called when the write buffer becomes empty.
     */
    public function onEmpty(callable $onEmpty = null)
    {
        $this->onEmpty = $onEmpty;
    }

    /**
     * Appends an input to the write buffer.
     *
     * @param resource|string|int|float|bool|\Traversable|null $input The input to append as scalar,
     *                                                                stream resource or \Traversable
     */
    public function write($input)
    {
        if (null === $input) {
            return;
        }
        if ($this->isClosed()) {
            throw new RuntimeException(sprintf('"%s" is closed.', static::class));
        }
        $this->input[] = ProcessUtils::validateInput(__METHOD__, $input);
    }

    /**
     * Closes the write buffer.
     */
    public function close()
    {
        $this->open = false;
    }

    /**
     * Tells whether the write buffer is closed or not.
     */
    public function isClosed()
    {
        return !$this->open;
    }

    /**
     * @return \Traversable
     */
    public function getIterator()
    {
        $this->open = true;

        while ($this->open || $this->input) {
            if (!$this->input) {
                yield '';
                continue;
            }
            $current = array_shift($this->input);

            if ($current instanceof \Iterator) {
                yield from $current;
            } else {
                yield $current;
            }
            if (!$this->input && $this->open && null !== $onEmpty = $this->onEmpty) {
                $this->write($onEmpty($this));
            }
        }
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Process;

use Symfony\Component\Process\Exception\LogicException;
use Symfony\Component\Process\Exception\RuntimeException;

/**
 * PhpProcess runs a PHP script in an independent process.
 *
 *     $p = new PhpProcess('<?php echo "foo"; ?>');
 *     $p->run();
 *     print $p->getOutput()."\n";
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class PhpProcess extends Process
{
    /**
     * @param string      $script  The PHP script to run (as a string)
     * @param string|null $cwd     The working directory or null to use the working dir of the current PHP process
     * @param array|null  $env     The environment variables or null to use the same environment as the current PHP process
     * @param int         $timeout The timeout in seconds
     * @param array|null  $php     Path to the PHP binary to use with any additional arguments
     */
    public function __construct(string $script, string $cwd = null, array $env = null, int $timeout = 60, array $php = null)
    {
        if (null === $php) {
            $executableFinder = new PhpExecutableFinder();
            $php = $executableFinder->find(false);
            $php = false === $php ? null : array_merge([$php], $executableFinder->findArguments());
        }
        if ('phpdbg' === \PHP_SAPI) {
            $file = tempnam(sys_get_temp_dir(), 'dbg');
            file_put_contents($file, $script);
            register_shutdown_function('unlink', $file);
            $php[] = $file;
            $script = null;
        }

        parent::__construct($php, $cwd, $env, $script, $timeout);
    }

    /**
     * {@inheritdoc}
     */
    public static function fromShellCommandline(string $command, string $cwd = null, array $env = null, $input = null, ?float $timeout = 60)
    {
        throw new LogicException(sprintf('The "%s()" method cannot be called when using "%s".', __METHOD__, self::class));
    }

    /**
     * Sets the path to the PHP binary to use.
     *
     * @deprecated since Symfony 4.2, use the $php argument of the constructor instead.
     */
    public function setPhpBinary($php)
    {
        @trigger_error(sprintf('The "%s()" method is deprecated since Symfony 4.2, use the $php argument of the constructor instead.', __METHOD__), E_USER_DEPRECATED);

        $this->setCommandLine($php);
    }

    /**
     * {@inheritdoc}
     */
    public function start(callable $callback = null, array $env = [])
    {
        if (null === $this->getCommandLine()) {
            throw new RuntimeException('Unable to find the PHP executable.');
        }

        parent::start($callback, $env);
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Process;

/**
 * An executable finder specifically designed for the PHP executable.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 * @author Johannes M. Schmitt <schmittjoh@gmail.com>
 */
class PhpExecutableFinder
{
    private $executableFinder;

    public function __construct()
    {
        $this->executableFinder = new ExecutableFinder();
    }

    /**
     * Finds The PHP executable.
     *
     * @param bool $includeArgs Whether or not include command arguments
     *
     * @return string|false The PHP executable path or false if it cannot be found
     */
    public function find($includeArgs = true)
    {
        if ($php = getenv('PHP_BINARY')) {
            if (!is_executable($php)) {
                $command = '\\' === \DIRECTORY_SEPARATOR ? 'where' : 'command -v';
                if ($php = strtok(exec($command.' '.escapeshellarg($php)), PHP_EOL)) {
                    if (!is_executable($php)) {
                        return false;
                    }
                } else {
                    return false;
                }
            }

            return $php;
        }

        $args = $this->findArguments();
        $args = $includeArgs && $args ? ' '.implode(' ', $args) : '';

        // PHP_BINARY return the current sapi executable
        if (PHP_BINARY && \in_array(\PHP_SAPI, ['cgi-fcgi', 'cli', 'cli-server', 'phpdbg'], true)) {
            return PHP_BINARY.$args;
        }

        if ($php = getenv('PHP_PATH')) {
            if (!@is_executable($php)) {
                return false;
            }

            return $php;
        }

        if ($php = getenv('PHP_PEAR_PHP_BIN')) {
            if (@is_executable($php)) {
                return $php;
            }
        }

        if (@is_executable($php = PHP_BINDIR.('\\' === \DIRECTORY_SEPARATOR ? '\\php.exe' : '/php'))) {
            return $php;
        }

        $dirs = [PHP_BINDIR];
        if ('\\' === \DIRECTORY_SEPARATOR) {
            $dirs[] = 'C:\xampp\php\\';
        }

        return $this->executableFinder->find('php', false, $dirs);
    }

    /**
     * Finds the PHP executable arguments.
     *
     * @return array The PHP executable arguments
     */
    public function findArguments()
    {
        $arguments = [];
        if ('phpdbg' === \PHP_SAPI) {
            $arguments[] = '-qrr';
        }

        return $arguments;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Process\Exception;

use Symfony\Component\Process\Process;

/**
 * Exception that is thrown when a process has been signaled.
 *
 * @author Sullivan Senechal <soullivaneuh@gmail.com>
 */
final class ProcessSignaledException extends RuntimeException
{
    private $process;

    public function __construct(Process $process)
    {
        $this->process = $process;

        parent::__construct(sprintf('The process has been signaled with signal "%s".', $process->getTermSignal()));
    }

    public function getProcess(): Process
    {
        return $this->process;
    }

    public function getSignal(): int
    {
        return $this->getProcess()->getTermSignal();
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Process\Exception;

/**
 * LogicException for the Process Component.
 *
 * @author Romain Neutron <imprec@gmail.com>
 */
class LogicException extends \LogicException implements ExceptionInterface
{
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Process\Exception;

/**
 * Marker Interface for the Process Component.
 *
 * @author Johannes M. Schmitt <schmittjoh@gmail.com>
 */
interface ExceptionInterface extends \Throwable
{
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Process\Exception;

use Symfony\Component\Process\Process;

/**
 * Exception for failed processes.
 *
 * @author Johannes M. Schmitt <schmittjoh@gmail.com>
 */
class ProcessFailedException extends RuntimeException
{
    private $process;

    public function __construct(Process $process)
    {
        if ($process->isSuccessful()) {
            throw new InvalidArgumentException('Expected a failed process, but the given process was successful.');
        }

        $error = sprintf('The command "%s" failed.'."\n\nExit Code: %s(%s)\n\nWorking directory: %s",
            $process->getCommandLine(),
            $process->getExitCode(),
            $process->getExitCodeText(),
            $process->getWorkingDirectory()
        );

        if (!$process->isOutputDisabled()) {
            $error .= sprintf("\n\nOutput:\n================\n%s\n\nError Output:\n================\n%s",
                $process->getOutput(),
                $process->getErrorOutput()
            );
        }

        parent::__construct($error);

        $this->process = $process;
    }

    public function getProcess()
    {
        return $this->process;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Process\Exception;

/**
 * RuntimeException for the Process Component.
 *
 * @author Johannes M. Schmitt <schmittjoh@gmail.com>
 */
class RuntimeException extends \RuntimeException implements ExceptionInterface
{
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Process\Exception;

use Symfony\Component\Process\Process;

/**
 * Exception that is thrown when a process times out.
 *
 * @author Johannes M. Schmitt <schmittjoh@gmail.com>
 */
class ProcessTimedOutException extends RuntimeException
{
    const TYPE_GENERAL = 1;
    const TYPE_IDLE = 2;

    private $process;
    private $timeoutType;

    public function __construct(Process $process, int $timeoutType)
    {
        $this->process = $process;
        $this->timeoutType = $timeoutType;

        parent::__construct(sprintf(
            'The process "%s" exceeded the timeout of %s seconds.',
            $process->getCommandLine(),
            $this->getExceededTimeout()
        ));
    }

    public function getProcess()
    {
        return $this->process;
    }

    public function isGeneralTimeout()
    {
        return self::TYPE_GENERAL === $this->timeoutType;
    }

    public function isIdleTimeout()
    {
        return self::TYPE_IDLE === $this->timeoutType;
    }

    public function getExceededTimeout()
    {
        switch ($this->timeoutType) {
            case self::TYPE_GENERAL:
                return $this->process->getTimeout();

            case self::TYPE_IDLE:
                return $this->process->getIdleTimeout();

            default:
                throw new \LogicException(sprintf('Unknown timeout type "%d".', $this->timeoutType));
        }
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Process\Exception;

/**
 * InvalidArgumentException for the Process Component.
 *
 * @author Romain Neutron <imprec@gmail.com>
 */
class InvalidArgumentException extends \InvalidArgumentException implements ExceptionInterface
{
}
{
    "name": "symfony/process",
    "type": "library",
    "description": "Symfony Process Component",
    "keywords": [],
    "homepage": "https://symfony.com",
    "license": "MIT",
    "authors": [
        {
            "name": "Fabien Potencier",
            "email": "fabien@symfony.com"
        },
        {
            "name": "Symfony Community",
            "homepage": "https://symfony.com/contributors"
        }
    ],
    "require": {
        "php": "^7.1.3"
    },
    "autoload": {
        "psr-4": { "Symfony\\Component\\Process\\": "" },
        "exclude-from-classmap": [
            "/Tests/"
        ]
    },
    "minimum-stability": "dev",
    "extra": {
        "branch-alias": {
            "dev-master": "4.4-dev"
        }
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Process;

use Symfony\Component\Process\Exception\InvalidArgumentException;

/**
 * ProcessUtils is a bunch of utility methods.
 *
 * This class contains static methods only and is not meant to be instantiated.
 *
 * @author Martin Hasoň <martin.hason@gmail.com>
 */
class ProcessUtils
{
    /**
     * This class should not be instantiated.
     */
    private function __construct()
    {
    }

    /**
     * Validates and normalizes a Process input.
     *
     * @param string $caller The name of method call that validates the input
     * @param mixed  $input  The input to validate
     *
     * @return mixed The validated input
     *
     * @throws InvalidArgumentException In case the input is not valid
     */
    public static function validateInput($caller, $input)
    {
        if (null !== $input) {
            if (\is_resource($input)) {
                return $input;
            }
            if (\is_string($input)) {
                return $input;
            }
            if (is_scalar($input)) {
                return (string) $input;
            }
            if ($input instanceof Process) {
                return $input->getIterator($input::ITER_SKIP_ERR);
            }
            if ($input instanceof \Iterator) {
                return $input;
            }
            if ($input instanceof \Traversable) {
                return new \IteratorIterator($input);
            }

            throw new InvalidArgumentException(sprintf('"%s" only accepts strings, Traversable objects or stream resources.', $caller));
        }

        return $input;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Process;

use Symfony\Component\Process\Exception\InvalidArgumentException;
use Symfony\Component\Process\Exception\LogicException;
use Symfony\Component\Process\Exception\ProcessFailedException;
use Symfony\Component\Process\Exception\ProcessSignaledException;
use Symfony\Component\Process\Exception\ProcessTimedOutException;
use Symfony\Component\Process\Exception\RuntimeException;
use Symfony\Component\Process\Pipes\PipesInterface;
use Symfony\Component\Process\Pipes\UnixPipes;
use Symfony\Component\Process\Pipes\WindowsPipes;

/**
 * Process is a thin wrapper around proc_* functions to easily
 * start independent PHP processes.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 * @author Romain Neutron <imprec@gmail.com>
 */
class Process implements \IteratorAggregate
{
    const ERR = 'err';
    const OUT = 'out';

    const STATUS_READY = 'ready';
    const STATUS_STARTED = 'started';
    const STATUS_TERMINATED = 'terminated';

    const STDIN = 0;
    const STDOUT = 1;
    const STDERR = 2;

    // Timeout Precision in seconds.
    const TIMEOUT_PRECISION = 0.2;

    const ITER_NON_BLOCKING = 1; // By default, iterating over outputs is a blocking call, use this flag to make it non-blocking
    const ITER_KEEP_OUTPUT = 2;  // By default, outputs are cleared while iterating, use this flag to keep them in memory
    const ITER_SKIP_OUT = 4;     // Use this flag to skip STDOUT while iterating
    const ITER_SKIP_ERR = 8;     // Use this flag to skip STDERR while iterating

    private $callback;
    private $hasCallback = false;
    private $commandline;
    private $cwd;
    private $env;
    private $input;
    private $starttime;
    private $lastOutputTime;
    private $timeout;
    private $idleTimeout;
    private $exitcode;
    private $fallbackStatus = [];
    private $processInformation;
    private $outputDisabled = false;
    private $stdout;
    private $stderr;
    private $process;
    private $status = self::STATUS_READY;
    private $incrementalOutputOffset = 0;
    private $incrementalErrorOutputOffset = 0;
    private $tty = false;
    private $pty;

    private $useFileHandles = false;
    /** @var PipesInterface */
    private $processPipes;

    private $latestSignal;

    private static $sigchild;

    /**
     * Exit codes translation table.
     *
     * User-defined errors must use exit codes in the 64-113 range.
     */
    public static $exitCodes = [
        0 => 'OK',
        1 => 'General error',
        2 => 'Misuse of shell builtins',

        126 => 'Invoked command cannot execute',
        127 => 'Command not found',
        128 => 'Invalid exit argument',

        // signals
        129 => 'Hangup',
        130 => 'Interrupt',
        131 => 'Quit and dump core',
        132 => 'Illegal instruction',
        133 => 'Trace/breakpoint trap',
        134 => 'Process aborted',
        135 => 'Bus error: "access to undefined portion of memory object"',
        136 => 'Floating point exception: "erroneous arithmetic operation"',
        137 => 'Kill (terminate immediately)',
        138 => 'User-defined 1',
        139 => 'Segmentation violation',
        140 => 'User-defined 2',
        141 => 'Write to pipe with no one reading',
        142 => 'Signal raised by alarm',
        143 => 'Termination (request to terminate)',
        // 144 - not defined
        145 => 'Child process terminated, stopped (or continued*)',
        146 => 'Continue if stopped',
        147 => 'Stop executing temporarily',
        148 => 'Terminal stop signal',
        149 => 'Background process attempting to read from tty ("in")',
        150 => 'Background process attempting to write to tty ("out")',
        151 => 'Urgent data available on socket',
        152 => 'CPU time limit exceeded',
        153 => 'File size limit exceeded',
        154 => 'Signal raised by timer counting virtual time: "virtual timer expired"',
        155 => 'Profiling timer expired',
        // 156 - not defined
        157 => 'Pollable event',
        // 158 - not defined
        159 => 'Bad syscall',
    ];

    /**
     * @param array          $command The command to run and its arguments listed as separate entries
     * @param string|null    $cwd     The working directory or null to use the working dir of the current PHP process
     * @param array|null     $env     The environment variables or null to use the same environment as the current PHP process
     * @param mixed|null     $input   The input as stream resource, scalar or \Traversable, or null for no input
     * @param int|float|null $timeout The timeout in seconds or null to disable
     *
     * @throws LogicException When proc_open is not installed
     */
    public function __construct($command, string $cwd = null, array $env = null, $input = null, ?float $timeout = 60)
    {
        if (!\function_exists('proc_open')) {
            throw new LogicException('The Process class relies on proc_open, which is not available on your PHP installation.');
        }

        if (!\is_array($command)) {
            @trigger_error(sprintf('Passing a command as string when creating a "%s" instance is deprecated since Symfony 4.2, pass it as an array of its arguments instead, or use the "Process::fromShellCommandline()" constructor if you need features provided by the shell.', __CLASS__), E_USER_DEPRECATED);
        }

        $this->commandline = $command;
        $this->cwd = $cwd;

        // on Windows, if the cwd changed via chdir(), proc_open defaults to the dir where PHP was started
        // on Gnu/Linux, PHP builds with --enable-maintainer-zts are also affected
        // @see : https://bugs.php.net/51800
        // @see : https://bugs.php.net/50524
        if (null === $this->cwd && (\defined('ZEND_THREAD_SAFE') || '\\' === \DIRECTORY_SEPARATOR)) {
            $this->cwd = getcwd();
        }
        if (null !== $env) {
            $this->setEnv($env);
        }

        $this->setInput($input);
        $this->setTimeout($timeout);
        $this->useFileHandles = '\\' === \DIRECTORY_SEPARATOR;
        $this->pty = false;
    }

    /**
     * Creates a Process instance as a command-line to be run in a shell wrapper.
     *
     * Command-lines are parsed by the shell of your OS (/bin/sh on Unix-like, cmd.exe on Windows.)
     * This allows using e.g. pipes or conditional execution. In this mode, signals are sent to the
     * shell wrapper and not to your commands.
     *
     * In order to inject dynamic values into command-lines, we strongly recommend using placeholders.
     * This will save escaping values, which is not portable nor secure anyway:
     *
     *   $process = Process::fromShellCommandline('my_command "$MY_VAR"');
     *   $process->run(null, ['MY_VAR' => $theValue]);
     *
     * @param string         $command The command line to pass to the shell of the OS
     * @param string|null    $cwd     The working directory or null to use the working dir of the current PHP process
     * @param array|null     $env     The environment variables or null to use the same environment as the current PHP process
     * @param mixed|null     $input   The input as stream resource, scalar or \Traversable, or null for no input
     * @param int|float|null $timeout The timeout in seconds or null to disable
     *
     * @return static
     *
     * @throws LogicException When proc_open is not installed
     */
    public static function fromShellCommandline(string $command, string $cwd = null, array $env = null, $input = null, ?float $timeout = 60)
    {
        $process = new static([], $cwd, $env, $input, $timeout);
        $process->commandline = $command;

        return $process;
    }

    public function __destruct()
    {
        $this->stop(0);
    }

    public function __clone()
    {
        $this->resetProcessData();
    }

    /**
     * Runs the process.
     *
     * The callback receives the type of output (out or err) and
     * some bytes from the output in real-time. It allows to have feedback
     * from the independent process during execution.
     *
     * The STDOUT and STDERR are also available after the process is finished
     * via the getOutput() and getErrorOutput() methods.
     *
     * @param callable|null $callback A PHP callback to run whenever there is some
     *                                output available on STDOUT or STDERR
     *
     * @return int The exit status code
     *
     * @throws RuntimeException         When process can't be launched
     * @throws RuntimeException         When process is already running
     * @throws ProcessTimedOutException When process timed out
     * @throws ProcessSignaledException When process stopped after receiving signal
     * @throws LogicException           In case a callback is provided and output has been disabled
     *
     * @final
     */
    public function run(callable $callback = null, array $env = []): int
    {
        $this->start($callback, $env);

        return $this->wait();
    }

    /**
     * Runs the process.
     *
     * This is identical to run() except that an exception is thrown if the process
     * exits with a non-zero exit code.
     *
     * @return $this
     *
     * @throws ProcessFailedException if the process didn't terminate successfully
     *
     * @final
     */
    public function mustRun(callable $callback = null, array $env = []): self
    {
        if (0 !== $this->run($callback, $env)) {
            throw new ProcessFailedException($this);
        }

        return $this;
    }

    /**
     * Starts the process and returns after writing the input to STDIN.
     *
     * This method blocks until all STDIN data is sent to the process then it
     * returns while the process runs in the background.
     *
     * The termination of the process can be awaited with wait().
     *
     * The callback receives the type of output (out or err) and some bytes from
     * the output in real-time while writing the standard input to the process.
     * It allows to have feedback from the independent process during execution.
     *
     * @param callable|null $callback A PHP callback to run whenever there is some
     *                                output available on STDOUT or STDERR
     *
     * @throws RuntimeException When process can't be launched
     * @throws RuntimeException When process is already running
     * @throws LogicException   In case a callback is provided and output has been disabled
     */
    public function start(callable $callback = null, array $env = [])
    {
        if ($this->isRunning()) {
            throw new RuntimeException('Process is already running.');
        }

        $this->resetProcessData();
        $this->starttime = $this->lastOutputTime = microtime(true);
        $this->callback = $this->buildCallback($callback);
        $this->hasCallback = null !== $callback;
        $descriptors = $this->getDescriptors();

        if ($this->env) {
            $env += $this->env;
        }

        $env += $this->getDefaultEnv();

        if (\is_array($commandline = $this->commandline)) {
            $commandline = implode(' ', array_map([$this, 'escapeArgument'], $commandline));

            if ('\\' !== \DIRECTORY_SEPARATOR) {
                // exec is mandatory to deal with sending a signal to the process
                $commandline = 'exec '.$commandline;
            }
        } else {
            $commandline = $this->replacePlaceholders($commandline, $env);
        }

        $options = ['suppress_errors' => true];

        if ('\\' === \DIRECTORY_SEPARATOR) {
            $options['bypass_shell'] = true;
            $commandline = $this->prepareWindowsCommandLine($commandline, $env);
        } elseif (!$this->useFileHandles && $this->isSigchildEnabled()) {
            // last exit code is output on the fourth pipe and caught to work around --enable-sigchild
            $descriptors[3] = ['pipe', 'w'];

            // See https://unix.stackexchange.com/questions/71205/background-process-pipe-input
            $commandline = '{ ('.$commandline.') <&3 3<&- 3>/dev/null & } 3<&0;';
            $commandline .= 'pid=$!; echo $pid >&3; wait $pid; code=$?; echo $code >&3; exit $code';

            // Workaround for the bug, when PTS functionality is enabled.
            // @see : https://bugs.php.net/69442
            $ptsWorkaround = fopen(__FILE__, 'r');
        }

        $envPairs = [];
        foreach ($env as $k => $v) {
            if (false !== $v) {
                $envPairs[] = $k.'='.$v;
            }
        }

        if (!is_dir($this->cwd)) {
            throw new RuntimeException(sprintf('The provided cwd "%s" does not exist.', $this->cwd));
        }

        $this->process = @proc_open($commandline, $descriptors, $this->processPipes->pipes, $this->cwd, $envPairs, $options);

        if (!\is_resource($this->process)) {
            throw new RuntimeException('Unable to launch a new process.');
        }
        $this->status = self::STATUS_STARTED;

        if (isset($descriptors[3])) {
            $this->fallbackStatus['pid'] = (int) fgets($this->processPipes->pipes[3]);
        }

        if ($this->tty) {
            return;
        }

        $this->updateStatus(false);
        $this->checkTimeout();
    }

    /**
     * Restarts the process.
     *
     * Be warned that the process is cloned before being started.
     *
     * @param callable|null $callback A PHP callback to run whenever there is some
     *                                output available on STDOUT or STDERR
     *
     * @return static
     *
     * @throws RuntimeException When process can't be launched
     * @throws RuntimeException When process is already running
     *
     * @see start()
     *
     * @final
     */
    public function restart(callable $callback = null, array $env = []): self
    {
        if ($this->isRunning()) {
            throw new RuntimeException('Process is already running.');
        }

        $process = clone $this;
        $process->start($callback, $env);

        return $process;
    }

    /**
     * Waits for the process to terminate.
     *
     * The callback receives the type of output (out or err) and some bytes
     * from the output in real-time while writing the standard input to the process.
     * It allows to have feedback from the independent process during execution.
     *
     * @param callable|null $callback A valid PHP callback
     *
     * @return int The exitcode of the process
     *
     * @throws ProcessTimedOutException When process timed out
     * @throws ProcessSignaledException When process stopped after receiving signal
     * @throws LogicException           When process is not yet started
     */
    public function wait(callable $callback = null)
    {
        $this->requireProcessIsStarted(__FUNCTION__);

        $this->updateStatus(false);

        if (null !== $callback) {
            if (!$this->processPipes->haveReadSupport()) {
                $this->stop(0);
                throw new LogicException('Pass the callback to the "Process::start" method or call enableOutput to use a callback with "Process::wait".');
            }
            $this->callback = $this->buildCallback($callback);
        }

        do {
            $this->checkTimeout();
            $running = '\\' === \DIRECTORY_SEPARATOR ? $this->isRunning() : $this->processPipes->areOpen();
            $this->readPipes($running, '\\' !== \DIRECTORY_SEPARATOR || !$running);
        } while ($running);

        while ($this->isRunning()) {
            $this->checkTimeout();
            usleep(1000);
        }

        if ($this->processInformation['signaled'] && $this->processInformation['termsig'] !== $this->latestSignal) {
            throw new ProcessSignaledException($this);
        }

        return $this->exitcode;
    }

    /**
     * Waits until the callback returns true.
     *
     * The callback receives the type of output (out or err) and some bytes
     * from the output in real-time while writing the standard input to the process.
     * It allows to have feedback from the independent process during execution.
     *
     * @throws RuntimeException         When process timed out
     * @throws LogicException           When process is not yet started
     * @throws ProcessTimedOutException In case the timeout was reached
     */
    public function waitUntil(callable $callback): bool
    {
        $this->requireProcessIsStarted(__FUNCTION__);
        $this->updateStatus(false);

        if (!$this->processPipes->haveReadSupport()) {
            $this->stop(0);
            throw new LogicException('Pass the callback to the "Process::start" method or call enableOutput to use a callback with "Process::waitUntil".');
        }
        $callback = $this->buildCallback($callback);

        $ready = false;
        while (true) {
            $this->checkTimeout();
            $running = '\\' === \DIRECTORY_SEPARATOR ? $this->isRunning() : $this->processPipes->areOpen();
            $output = $this->processPipes->readAndWrite($running, '\\' !== \DIRECTORY_SEPARATOR || !$running);

            foreach ($output as $type => $data) {
                if (3 !== $type) {
                    $ready = $callback(self::STDOUT === $type ? self::OUT : self::ERR, $data) || $ready;
                } elseif (!isset($this->fallbackStatus['signaled'])) {
                    $this->fallbackStatus['exitcode'] = (int) $data;
                }
            }
            if ($ready) {
                return true;
            }
            if (!$running) {
                return false;
            }

            usleep(1000);
        }
    }

    /**
     * Returns the Pid (process identifier), if applicable.
     *
     * @return int|null The process id if running, null otherwise
     */
    public function getPid()
    {
        return $this->isRunning() ? $this->processInformation['pid'] : null;
    }

    /**
     * Sends a POSIX signal to the process.
     *
     * @param int $signal A valid POSIX signal (see https://php.net/pcntl.constants)
     *
     * @return $this
     *
     * @throws LogicException   In case the process is not running
     * @throws RuntimeException In case --enable-sigchild is activated and the process can't be killed
     * @throws RuntimeException In case of failure
     */
    public function signal($signal)
    {
        $this->doSignal($signal, true);

        return $this;
    }

    /**
     * Disables fetching output and error output from the underlying process.
     *
     * @return $this
     *
     * @throws RuntimeException In case the process is already running
     * @throws LogicException   if an idle timeout is set
     */
    public function disableOutput()
    {
        if ($this->isRunning()) {
            throw new RuntimeException('Disabling output while the process is running is not possible.');
        }
        if (null !== $this->idleTimeout) {
            throw new LogicException('Output can not be disabled while an idle timeout is set.');
        }

        $this->outputDisabled = true;

        return $this;
    }

    /**
     * Enables fetching output and error output from the underlying process.
     *
     * @return $this
     *
     * @throws RuntimeException In case the process is already running
     */
    public function enableOutput()
    {
        if ($this->isRunning()) {
            throw new RuntimeException('Enabling output while the process is running is not possible.');
        }

        $this->outputDisabled = false;

        return $this;
    }

    /**
     * Returns true in case the output is disabled, false otherwise.
     *
     * @return bool
     */
    public function isOutputDisabled()
    {
        return $this->outputDisabled;
    }

    /**
     * Returns the current output of the process (STDOUT).
     *
     * @return string The process output
     *
     * @throws LogicException in case the output has been disabled
     * @throws LogicException In case the process is not started
     */
    public function getOutput()
    {
        $this->readPipesForOutput(__FUNCTION__);

        if (false === $ret = stream_get_contents($this->stdout, -1, 0)) {
            return '';
        }

        return $ret;
    }

    /**
     * Returns the output incrementally.
     *
     * In comparison with the getOutput method which always return the whole
     * output, this one returns the new output since the last call.
     *
     * @return string The process output since the last call
     *
     * @throws LogicException in case the output has been disabled
     * @throws LogicException In case the process is not started
     */
    public function getIncrementalOutput()
    {
        $this->readPipesForOutput(__FUNCTION__);

        $latest = stream_get_contents($this->stdout, -1, $this->incrementalOutputOffset);
        $this->incrementalOutputOffset = ftell($this->stdout);

        if (false === $latest) {
            return '';
        }

        return $latest;
    }

    /**
     * Returns an iterator to the output of the process, with the output type as keys (Process::OUT/ERR).
     *
     * @param int $flags A bit field of Process::ITER_* flags
     *
     * @throws LogicException in case the output has been disabled
     * @throws LogicException In case the process is not started
     *
     * @return \Generator
     */
    public function getIterator($flags = 0)
    {
        $this->readPipesForOutput(__FUNCTION__, false);

        $clearOutput = !(self::ITER_KEEP_OUTPUT & $flags);
        $blocking = !(self::ITER_NON_BLOCKING & $flags);
        $yieldOut = !(self::ITER_SKIP_OUT & $flags);
        $yieldErr = !(self::ITER_SKIP_ERR & $flags);

        while (null !== $this->callback || ($yieldOut && !feof($this->stdout)) || ($yieldErr && !feof($this->stderr))) {
            if ($yieldOut) {
                $out = stream_get_contents($this->stdout, -1, $this->incrementalOutputOffset);

                if (isset($out[0])) {
                    if ($clearOutput) {
                        $this->clearOutput();
                    } else {
                        $this->incrementalOutputOffset = ftell($this->stdout);
                    }

                    yield self::OUT => $out;
                }
            }

            if ($yieldErr) {
                $err = stream_get_contents($this->stderr, -1, $this->incrementalErrorOutputOffset);

                if (isset($err[0])) {
                    if ($clearOutput) {
                        $this->clearErrorOutput();
                    } else {
                        $this->incrementalErrorOutputOffset = ftell($this->stderr);
                    }

                    yield self::ERR => $err;
                }
            }

            if (!$blocking && !isset($out[0]) && !isset($err[0])) {
                yield self::OUT => '';
            }

            $this->checkTimeout();
            $this->readPipesForOutput(__FUNCTION__, $blocking);
        }
    }

    /**
     * Clears the process output.
     *
     * @return $this
     */
    public function clearOutput()
    {
        ftruncate($this->stdout, 0);
        fseek($this->stdout, 0);
        $this->incrementalOutputOffset = 0;

        return $this;
    }

    /**
     * Returns the current error output of the process (STDERR).
     *
     * @return string The process error output
     *
     * @throws LogicException in case the output has been disabled
     * @throws LogicException In case the process is not started
     */
    public function getErrorOutput()
    {
        $this->readPipesForOutput(__FUNCTION__);

        if (false === $ret = stream_get_contents($this->stderr, -1, 0)) {
            return '';
        }

        return $ret;
    }

    /**
     * Returns the errorOutput incrementally.
     *
     * In comparison with the getErrorOutput method which always return the
     * whole error output, this one returns the new error output since the last
     * call.
     *
     * @return string The process error output since the last call
     *
     * @throws LogicException in case the output has been disabled
     * @throws LogicException In case the process is not started
     */
    public function getIncrementalErrorOutput()
    {
        $this->readPipesForOutput(__FUNCTION__);

        $latest = stream_get_contents($this->stderr, -1, $this->incrementalErrorOutputOffset);
        $this->incrementalErrorOutputOffset = ftell($this->stderr);

        if (false === $latest) {
            return '';
        }

        return $latest;
    }

    /**
     * Clears the process output.
     *
     * @return $this
     */
    public function clearErrorOutput()
    {
        ftruncate($this->stderr, 0);
        fseek($this->stderr, 0);
        $this->incrementalErrorOutputOffset = 0;

        return $this;
    }

    /**
     * Returns the exit code returned by the process.
     *
     * @return int|null The exit status code, null if the Process is not terminated
     */
    public function getExitCode()
    {
        $this->updateStatus(false);

        return $this->exitcode;
    }

    /**
     * Returns a string representation for the exit code returned by the process.
     *
     * This method relies on the Unix exit code status standardization
     * and might not be relevant for other operating systems.
     *
     * @return string|null A string representation for the exit status code, null if the Process is not terminated
     *
     * @see http://tldp.org/LDP/abs/html/exitcodes.html
     * @see http://en.wikipedia.org/wiki/Unix_signal
     */
    public function getExitCodeText()
    {
        if (null === $exitcode = $this->getExitCode()) {
            return null;
        }

        return isset(self::$exitCodes[$exitcode]) ? self::$exitCodes[$exitcode] : 'Unknown error';
    }

    /**
     * Checks if the process ended successfully.
     *
     * @return bool true if the process ended successfully, false otherwise
     */
    public function isSuccessful()
    {
        return 0 === $this->getExitCode();
    }

    /**
     * Returns true if the child process has been terminated by an uncaught signal.
     *
     * It always returns false on Windows.
     *
     * @return bool
     *
     * @throws LogicException In case the process is not terminated
     */
    public function hasBeenSignaled()
    {
        $this->requireProcessIsTerminated(__FUNCTION__);

        return $this->processInformation['signaled'];
    }

    /**
     * Returns the number of the signal that caused the child process to terminate its execution.
     *
     * It is only meaningful if hasBeenSignaled() returns true.
     *
     * @return int
     *
     * @throws RuntimeException In case --enable-sigchild is activated
     * @throws LogicException   In case the process is not terminated
     */
    public function getTermSignal()
    {
        $this->requireProcessIsTerminated(__FUNCTION__);

        if ($this->isSigchildEnabled() && -1 === $this->processInformation['termsig']) {
            throw new RuntimeException('This PHP has been compiled with --enable-sigchild. Term signal can not be retrieved.');
        }

        return $this->processInformation['termsig'];
    }

    /**
     * Returns true if the child process has been stopped by a signal.
     *
     * It always returns false on Windows.
     *
     * @return bool
     *
     * @throws LogicException In case the process is not terminated
     */
    public function hasBeenStopped()
    {
        $this->requireProcessIsTerminated(__FUNCTION__);

        return $this->processInformation['stopped'];
    }

    /**
     * Returns the number of the signal that caused the child process to stop its execution.
     *
     * It is only meaningful if hasBeenStopped() returns true.
     *
     * @return int
     *
     * @throws LogicException In case the process is not terminated
     */
    public function getStopSignal()
    {
        $this->requireProcessIsTerminated(__FUNCTION__);

        return $this->processInformation['stopsig'];
    }

    /**
     * Checks if the process is currently running.
     *
     * @return bool true if the process is currently running, false otherwise
     */
    public function isRunning()
    {
        if (self::STATUS_STARTED !== $this->status) {
            return false;
        }

        $this->updateStatus(false);

        return $this->processInformation['running'];
    }

    /**
     * Checks if the process has been started with no regard to the current state.
     *
     * @return bool true if status is ready, false otherwise
     */
    public function isStarted()
    {
        return self::STATUS_READY != $this->status;
    }

    /**
     * Checks if the process is terminated.
     *
     * @return bool true if process is terminated, false otherwise
     */
    public function isTerminated()
    {
        $this->updateStatus(false);

        return self::STATUS_TERMINATED == $this->status;
    }

    /**
     * Gets the process status.
     *
     * The status is one of: ready, started, terminated.
     *
     * @return string The current process status
     */
    public function getStatus()
    {
        $this->updateStatus(false);

        return $this->status;
    }

    /**
     * Stops the process.
     *
     * @param int|float $timeout The timeout in seconds
     * @param int       $signal  A POSIX signal to send in case the process has not stop at timeout, default is SIGKILL (9)
     *
     * @return int|null The exit-code of the process or null if it's not running
     */
    public function stop($timeout = 10, $signal = null)
    {
        $timeoutMicro = microtime(true) + $timeout;
        if ($this->isRunning()) {
            // given SIGTERM may not be defined and that "proc_terminate" uses the constant value and not the constant itself, we use the same here
            $this->doSignal(15, false);
            do {
                usleep(1000);
            } while ($this->isRunning() && microtime(true) < $timeoutMicro);

            if ($this->isRunning()) {
                // Avoid exception here: process is supposed to be running, but it might have stopped just
                // after this line. In any case, let's silently discard the error, we cannot do anything.
                $this->doSignal($signal ?: 9, false);
            }
        }

        if ($this->isRunning()) {
            if (isset($this->fallbackStatus['pid'])) {
                unset($this->fallbackStatus['pid']);

                return $this->stop(0, $signal);
            }
            $this->close();
        }

        return $this->exitcode;
    }

    /**
     * Adds a line to the STDOUT stream.
     *
     * @internal
     */
    public function addOutput(string $line)
    {
        $this->lastOutputTime = microtime(true);

        fseek($this->stdout, 0, SEEK_END);
        fwrite($this->stdout, $line);
        fseek($this->stdout, $this->incrementalOutputOffset);
    }

    /**
     * Adds a line to the STDERR stream.
     *
     * @internal
     */
    public function addErrorOutput(string $line)
    {
        $this->lastOutputTime = microtime(true);

        fseek($this->stderr, 0, SEEK_END);
        fwrite($this->stderr, $line);
        fseek($this->stderr, $this->incrementalErrorOutputOffset);
    }

    /**
     * Gets the last output time in seconds.
     *
     * @return float|null The last output time in seconds or null if it isn't started
     */
    public function getLastOutputTime(): ?float
    {
        return $this->lastOutputTime;
    }

    /**
     * Gets the command line to be executed.
     *
     * @return string The command to execute
     */
    public function getCommandLine()
    {
        return \is_array($this->commandline) ? implode(' ', array_map([$this, 'escapeArgument'], $this->commandline)) : $this->commandline;
    }

    /**
     * Sets the command line to be executed.
     *
     * @param string|array $commandline The command to execute
     *
     * @return $this
     *
     * @deprecated since Symfony 4.2.
     */
    public function setCommandLine($commandline)
    {
        @trigger_error(sprintf('The "%s()" method is deprecated since Symfony 4.2.', __METHOD__), E_USER_DEPRECATED);

        $this->commandline = $commandline;

        return $this;
    }

    /**
     * Gets the process timeout (max. runtime).
     *
     * @return float|null The timeout in seconds or null if it's disabled
     */
    public function getTimeout()
    {
        return $this->timeout;
    }

    /**
     * Gets the process idle timeout (max. time since last output).
     *
     * @return float|null The timeout in seconds or null if it's disabled
     */
    public function getIdleTimeout()
    {
        return $this->idleTimeout;
    }

    /**
     * Sets the process timeout (max. runtime) in seconds.
     *
     * To disable the timeout, set this value to null.
     *
     * @param int|float|null $timeout The timeout in seconds
     *
     * @return $this
     *
     * @throws InvalidArgumentException if the timeout is negative
     */
    public function setTimeout($timeout)
    {
        $this->timeout = $this->validateTimeout($timeout);

        return $this;
    }

    /**
     * Sets the process idle timeout (max. time since last output).
     *
     * To disable the timeout, set this value to null.
     *
     * @param int|float|null $timeout The timeout in seconds
     *
     * @return $this
     *
     * @throws LogicException           if the output is disabled
     * @throws InvalidArgumentException if the timeout is negative
     */
    public function setIdleTimeout($timeout)
    {
        if (null !== $timeout && $this->outputDisabled) {
            throw new LogicException('Idle timeout can not be set while the output is disabled.');
        }

        $this->idleTimeout = $this->validateTimeout($timeout);

        return $this;
    }

    /**
     * Enables or disables the TTY mode.
     *
     * @param bool $tty True to enabled and false to disable
     *
     * @return $this
     *
     * @throws RuntimeException In case the TTY mode is not supported
     */
    public function setTty($tty)
    {
        if ('\\' === \DIRECTORY_SEPARATOR && $tty) {
            throw new RuntimeException('TTY mode is not supported on Windows platform.');
        }

        if ($tty && !self::isTtySupported()) {
            throw new RuntimeException('TTY mode requires /dev/tty to be read/writable.');
        }

        $this->tty = (bool) $tty;

        return $this;
    }

    /**
     * Checks if the TTY mode is enabled.
     *
     * @return bool true if the TTY mode is enabled, false otherwise
     */
    public function isTty()
    {
        return $this->tty;
    }

    /**
     * Sets PTY mode.
     *
     * @param bool $bool
     *
     * @return $this
     */
    public function setPty($bool)
    {
        $this->pty = (bool) $bool;

        return $this;
    }

    /**
     * Returns PTY state.
     *
     * @return bool
     */
    public function isPty()
    {
        return $this->pty;
    }

    /**
     * Gets the working directory.
     *
     * @return string|null The current working directory or null on failure
     */
    public function getWorkingDirectory()
    {
        if (null === $this->cwd) {
            // getcwd() will return false if any one of the parent directories does not have
            // the readable or search mode set, even if the current directory does
            return getcwd() ?: null;
        }

        return $this->cwd;
    }

    /**
     * Sets the current working directory.
     *
     * @param string $cwd The new working directory
     *
     * @return $this
     */
    public function setWorkingDirectory($cwd)
    {
        $this->cwd = $cwd;

        return $this;
    }

    /**
     * Gets the environment variables.
     *
     * @return array The current environment variables
     */
    public function getEnv()
    {
        return $this->env;
    }

    /**
     * Sets the environment variables.
     *
     * Each environment variable value should be a string.
     * If it is an array, the variable is ignored.
     * If it is false or null, it will be removed when
     * env vars are otherwise inherited.
     *
     * That happens in PHP when 'argv' is registered into
     * the $_ENV array for instance.
     *
     * @param array $env The new environment variables
     *
     * @return $this
     */
    public function setEnv(array $env)
    {
        // Process can not handle env values that are arrays
        $env = array_filter($env, function ($value) {
            return !\is_array($value);
        });

        $this->env = $env;

        return $this;
    }

    /**
     * Gets the Process input.
     *
     * @return resource|string|\Iterator|null The Process input
     */
    public function getInput()
    {
        return $this->input;
    }

    /**
     * Sets the input.
     *
     * This content will be passed to the underlying process standard input.
     *
     * @param string|int|float|bool|resource|\Traversable|null $input The content
     *
     * @return $this
     *
     * @throws LogicException In case the process is running
     */
    public function setInput($input)
    {
        if ($this->isRunning()) {
            throw new LogicException('Input can not be set while the process is running.');
        }

        $this->input = ProcessUtils::validateInput(__METHOD__, $input);

        return $this;
    }

    /**
     * Sets whether environment variables will be inherited or not.
     *
     * @param bool $inheritEnv
     *
     * @return $this
     *
     * @deprecated since Symfony 4.4, env variables are always inherited
     */
    public function inheritEnvironmentVariables($inheritEnv = true)
    {
        @trigger_error(sprintf('The "%s()" method is deprecated since Symfony 4.4, env variables are always inherited.', __METHOD__), E_USER_DEPRECATED);

        if (!$inheritEnv) {
            throw new InvalidArgumentException('Not inheriting environment variables is not supported.');
        }

        return $this;
    }

    /**
     * Performs a check between the timeout definition and the time the process started.
     *
     * In case you run a background process (with the start method), you should
     * trigger this method regularly to ensure the process timeout
     *
     * @throws ProcessTimedOutException In case the timeout was reached
     */
    public function checkTimeout()
    {
        if (self::STATUS_STARTED !== $this->status) {
            return;
        }

        if (null !== $this->timeout && $this->timeout < microtime(true) - $this->starttime) {
            $this->stop(0);

            throw new ProcessTimedOutException($this, ProcessTimedOutException::TYPE_GENERAL);
        }

        if (null !== $this->idleTimeout && $this->idleTimeout < microtime(true) - $this->lastOutputTime) {
            $this->stop(0);

            throw new ProcessTimedOutException($this, ProcessTimedOutException::TYPE_IDLE);
        }
    }

    /**
     * Returns whether TTY is supported on the current operating system.
     */
    public static function isTtySupported(): bool
    {
        static $isTtySupported;

        if (null === $isTtySupported) {
            $isTtySupported = (bool) @proc_open('echo 1 >/dev/null', [['file', '/dev/tty', 'r'], ['file', '/dev/tty', 'w'], ['file', '/dev/tty', 'w']], $pipes);
        }

        return $isTtySupported;
    }

    /**
     * Returns whether PTY is supported on the current operating system.
     *
     * @return bool
     */
    public static function isPtySupported()
    {
        static $result;

        if (null !== $result) {
            return $result;
        }

        if ('\\' === \DIRECTORY_SEPARATOR) {
            return $result = false;
        }

        return $result = (bool) @proc_open('echo 1 >/dev/null', [['pty'], ['pty'], ['pty']], $pipes);
    }

    /**
     * Creates the descriptors needed by the proc_open.
     */
    private function getDescriptors(): array
    {
        if ($this->input instanceof \Iterator) {
            $this->input->rewind();
        }
        if ('\\' === \DIRECTORY_SEPARATOR) {
            $this->processPipes = new WindowsPipes($this->input, !$this->outputDisabled || $this->hasCallback);
        } else {
            $this->processPipes = new UnixPipes($this->isTty(), $this->isPty(), $this->input, !$this->outputDisabled || $this->hasCallback);
        }

        return $this->processPipes->getDescriptors();
    }

    /**
     * Builds up the callback used by wait().
     *
     * The callbacks adds all occurred output to the specific buffer and calls
     * the user callback (if present) with the received output.
     *
     * @param callable|null $callback The user defined PHP callback
     *
     * @return \Closure A PHP closure
     */
    protected function buildCallback(callable $callback = null)
    {
        if ($this->outputDisabled) {
            return function ($type, $data) use ($callback): bool {
                return null !== $callback && $callback($type, $data);
            };
        }

        $out = self::OUT;

        return function ($type, $data) use ($callback, $out): bool {
            if ($out == $type) {
                $this->addOutput($data);
            } else {
                $this->addErrorOutput($data);
            }

            return null !== $callback && $callback($type, $data);
        };
    }

    /**
     * Updates the status of the process, reads pipes.
     *
     * @param bool $blocking Whether to use a blocking read call
     */
    protected function updateStatus($blocking)
    {
        if (self::STATUS_STARTED !== $this->status) {
            return;
        }

        $this->processInformation = proc_get_status($this->process);
        $running = $this->processInformation['running'];

        $this->readPipes($running && $blocking, '\\' !== \DIRECTORY_SEPARATOR || !$running);

        if ($this->fallbackStatus && $this->isSigchildEnabled()) {
            $this->processInformation = $this->fallbackStatus + $this->processInformation;
        }

        if (!$running) {
            $this->close();
        }
    }

    /**
     * Returns whether PHP has been compiled with the '--enable-sigchild' option or not.
     *
     * @return bool
     */
    protected function isSigchildEnabled()
    {
        if (null !== self::$sigchild) {
            return self::$sigchild;
        }

        if (!\function_exists('phpinfo')) {
            return self::$sigchild = false;
        }

        ob_start();
        phpinfo(INFO_GENERAL);

        return self::$sigchild = false !== strpos(ob_get_clean(), '--enable-sigchild');
    }

    /**
     * Reads pipes for the freshest output.
     *
     * @param string $caller   The name of the method that needs fresh outputs
     * @param bool   $blocking Whether to use blocking calls or not
     *
     * @throws LogicException in case output has been disabled or process is not started
     */
    private function readPipesForOutput(string $caller, bool $blocking = false)
    {
        if ($this->outputDisabled) {
            throw new LogicException('Output has been disabled.');
        }

        $this->requireProcessIsStarted($caller);

        $this->updateStatus($blocking);
    }

    /**
     * Validates and returns the filtered timeout.
     *
     * @throws InvalidArgumentException if the given timeout is a negative number
     */
    private function validateTimeout(?float $timeout): ?float
    {
        $timeout = (float) $timeout;

        if (0.0 === $timeout) {
            $timeout = null;
        } elseif ($timeout < 0) {
            throw new InvalidArgumentException('The timeout value must be a valid positive integer or float number.');
        }

        return $timeout;
    }

    /**
     * Reads pipes, executes callback.
     *
     * @param bool $blocking Whether to use blocking calls or not
     * @param bool $close    Whether to close file handles or not
     */
    private function readPipes(bool $blocking, bool $close)
    {
        $result = $this->processPipes->readAndWrite($blocking, $close);

        $callback = $this->callback;
        foreach ($result as $type => $data) {
            if (3 !== $type) {
                $callback(self::STDOUT === $type ? self::OUT : self::ERR, $data);
            } elseif (!isset($this->fallbackStatus['signaled'])) {
                $this->fallbackStatus['exitcode'] = (int) $data;
            }
        }
    }

    /**
     * Closes process resource, closes file handles, sets the exitcode.
     *
     * @return int The exitcode
     */
    private function close(): int
    {
        $this->processPipes->close();
        if (\is_resource($this->process)) {
            proc_close($this->process);
        }
        $this->exitcode = $this->processInformation['exitcode'];
        $this->status = self::STATUS_TERMINATED;

        if (-1 === $this->exitcode) {
            if ($this->processInformation['signaled'] && 0 < $this->processInformation['termsig']) {
                // if process has been signaled, no exitcode but a valid termsig, apply Unix convention
                $this->exitcode = 128 + $this->processInformation['termsig'];
            } elseif ($this->isSigchildEnabled()) {
                $this->processInformation['signaled'] = true;
                $this->processInformation['termsig'] = -1;
            }
        }

        // Free memory from self-reference callback created by buildCallback
        // Doing so in other contexts like __destruct or by garbage collector is ineffective
        // Now pipes are closed, so the callback is no longer necessary
        $this->callback = null;

        return $this->exitcode;
    }

    /**
     * Resets data related to the latest run of the process.
     */
    private function resetProcessData()
    {
        $this->starttime = null;
        $this->callback = null;
        $this->exitcode = null;
        $this->fallbackStatus = [];
        $this->processInformation = null;
        $this->stdout = fopen('php://temp/maxmemory:'.(1024 * 1024), 'w+b');
        $this->stderr = fopen('php://temp/maxmemory:'.(1024 * 1024), 'w+b');
        $this->process = null;
        $this->latestSignal = null;
        $this->status = self::STATUS_READY;
        $this->incrementalOutputOffset = 0;
        $this->incrementalErrorOutputOffset = 0;
    }

    /**
     * Sends a POSIX signal to the process.
     *
     * @param int  $signal         A valid POSIX signal (see https://php.net/pcntl.constants)
     * @param bool $throwException Whether to throw exception in case signal failed
     *
     * @return bool True if the signal was sent successfully, false otherwise
     *
     * @throws LogicException   In case the process is not running
     * @throws RuntimeException In case --enable-sigchild is activated and the process can't be killed
     * @throws RuntimeException In case of failure
     */
    private function doSignal(int $signal, bool $throwException): bool
    {
        if (null === $pid = $this->getPid()) {
            if ($throwException) {
                throw new LogicException('Can not send signal on a non running process.');
            }

            return false;
        }

        if ('\\' === \DIRECTORY_SEPARATOR) {
            exec(sprintf('taskkill /F /T /PID %d 2>&1', $pid), $output, $exitCode);
            if ($exitCode && $this->isRunning()) {
                if ($throwException) {
                    throw new RuntimeException(sprintf('Unable to kill the process (%s).', implode(' ', $output)));
                }

                return false;
            }
        } else {
            if (!$this->isSigchildEnabled()) {
                $ok = @proc_terminate($this->process, $signal);
            } elseif (\function_exists('posix_kill')) {
                $ok = @posix_kill($pid, $signal);
            } elseif ($ok = proc_open(sprintf('kill -%d %d', $signal, $pid), [2 => ['pipe', 'w']], $pipes)) {
                $ok = false === fgets($pipes[2]);
            }
            if (!$ok) {
                if ($throwException) {
                    throw new RuntimeException(sprintf('Error while sending signal "%s".', $signal));
                }

                return false;
            }
        }

        $this->latestSignal = $signal;
        $this->fallbackStatus['signaled'] = true;
        $this->fallbackStatus['exitcode'] = -1;
        $this->fallbackStatus['termsig'] = $this->latestSignal;

        return true;
    }

    private function prepareWindowsCommandLine(string $cmd, array &$env): string
    {
        $uid = uniqid('', true);
        $varCount = 0;
        $varCache = [];
        $cmd = preg_replace_callback(
            '/"(?:(
                [^"%!^]*+
                (?:
                    (?: !LF! | "(?:\^[%!^])?+" )
                    [^"%!^]*+
                )++
            ) | [^"]*+ )"/x',
            function ($m) use (&$env, &$varCache, &$varCount, $uid) {
                if (!isset($m[1])) {
                    return $m[0];
                }
                if (isset($varCache[$m[0]])) {
                    return $varCache[$m[0]];
                }
                if (false !== strpos($value = $m[1], "\0")) {
                    $value = str_replace("\0", '?', $value);
                }
                if (false === strpbrk($value, "\"%!\n")) {
                    return '"'.$value.'"';
                }

                $value = str_replace(['!LF!', '"^!"', '"^%"', '"^^"', '""'], ["\n", '!', '%', '^', '"'], $value);
                $value = '"'.preg_replace('/(\\\\*)"/', '$1$1\\"', $value).'"';
                $var = $uid.++$varCount;

                $env[$var] = $value;

                return $varCache[$m[0]] = '!'.$var.'!';
            },
            $cmd
        );

        $cmd = 'cmd /V:ON /E:ON /D /C ('.str_replace("\n", ' ', $cmd).')';
        foreach ($this->processPipes->getFiles() as $offset => $filename) {
            $cmd .= ' '.$offset.'>"'.$filename.'"';
        }

        return $cmd;
    }

    /**
     * Ensures the process is running or terminated, throws a LogicException if the process has a not started.
     *
     * @throws LogicException if the process has not run
     */
    private function requireProcessIsStarted(string $functionName)
    {
        if (!$this->isStarted()) {
            throw new LogicException(sprintf('Process must be started before calling "%s()".', $functionName));
        }
    }

    /**
     * Ensures the process is terminated, throws a LogicException if the process has a status different than "terminated".
     *
     * @throws LogicException if the process is not yet terminated
     */
    private function requireProcessIsTerminated(string $functionName)
    {
        if (!$this->isTerminated()) {
            throw new LogicException(sprintf('Process must be terminated before calling "%s()".', $functionName));
        }
    }

    /**
     * Escapes a string to be used as a shell argument.
     */
    private function escapeArgument(?string $argument): string
    {
        if ('' === $argument || null === $argument) {
            return '""';
        }
        if ('\\' !== \DIRECTORY_SEPARATOR) {
            return "'".str_replace("'", "'\\''", $argument)."'";
        }
        if (false !== strpos($argument, "\0")) {
            $argument = str_replace("\0", '?', $argument);
        }
        if (!preg_match('/[\/()%!^"<>&|\s]/', $argument)) {
            return $argument;
        }
        $argument = preg_replace('/(\\\\+)$/', '$1$1', $argument);

        return '"'.str_replace(['"', '^', '%', '!', "\n"], ['""', '"^^"', '"^%"', '"^!"', '!LF!'], $argument).'"';
    }

    private function replacePlaceholders(string $commandline, array $env)
    {
        return preg_replace_callback('/"\$\{:([_a-zA-Z]++[_a-zA-Z0-9]*+)\}"/', function ($matches) use ($commandline, $env) {
            if (!isset($env[$matches[1]]) || false === $env[$matches[1]]) {
                throw new InvalidArgumentException(sprintf('Command line is missing a value for parameter "%s": ', $matches[1]).$commandline);
            }

            return $this->escapeArgument($env[$matches[1]]);
        }, $commandline);
    }

    private function getDefaultEnv(): array
    {
        $env = [];

        foreach ($_SERVER as $k => $v) {
            if (\is_string($v) && false !== $v = getenv($k)) {
                $env[$k] = $v;
            }
        }

        foreach ($_ENV as $k => $v) {
            if (\is_string($v)) {
                $env[$k] = $v;
            }
        }

        return $env;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console;

/**
 * Contains all events dispatched by an Application.
 *
 * @author Francesco Levorato <git@flevour.net>
 */
final class ConsoleEvents
{
    /**
     * The COMMAND event allows you to attach listeners before any command is
     * executed by the console. It also allows you to modify the command, input and output
     * before they are handled to the command.
     *
     * @Event("Symfony\Component\Console\Event\ConsoleCommandEvent")
     */
    const COMMAND = 'console.command';

    /**
     * The TERMINATE event allows you to attach listeners after a command is
     * executed by the console.
     *
     * @Event("Symfony\Component\Console\Event\ConsoleTerminateEvent")
     */
    const TERMINATE = 'console.terminate';

    /**
     * The ERROR event occurs when an uncaught exception or error appears.
     *
     * This event allows you to deal with the exception/error or
     * to modify the thrown exception.
     *
     * @Event("Symfony\Component\Console\Event\ConsoleErrorEvent")
     */
    const ERROR = 'console.error';
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console;

use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Command\HelpCommand;
use Symfony\Component\Console\Command\ListCommand;
use Symfony\Component\Console\CommandLoader\CommandLoaderInterface;
use Symfony\Component\Console\Event\ConsoleCommandEvent;
use Symfony\Component\Console\Event\ConsoleErrorEvent;
use Symfony\Component\Console\Event\ConsoleTerminateEvent;
use Symfony\Component\Console\Exception\CommandNotFoundException;
use Symfony\Component\Console\Exception\ExceptionInterface;
use Symfony\Component\Console\Exception\LogicException;
use Symfony\Component\Console\Exception\NamespaceNotFoundException;
use Symfony\Component\Console\Formatter\OutputFormatter;
use Symfony\Component\Console\Helper\DebugFormatterHelper;
use Symfony\Component\Console\Helper\FormatterHelper;
use Symfony\Component\Console\Helper\Helper;
use Symfony\Component\Console\Helper\HelperSet;
use Symfony\Component\Console\Helper\ProcessHelper;
use Symfony\Component\Console\Helper\QuestionHelper;
use Symfony\Component\Console\Input\ArgvInput;
use Symfony\Component\Console\Input\ArrayInput;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputAwareInterface;
use Symfony\Component\Console\Input\InputDefinition;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\ConsoleOutput;
use Symfony\Component\Console\Output\ConsoleOutputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Style\SymfonyStyle;
use Symfony\Component\Debug\ErrorHandler as LegacyErrorHandler;
use Symfony\Component\Debug\Exception\FatalThrowableError;
use Symfony\Component\ErrorHandler\ErrorHandler;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\EventDispatcher\LegacyEventDispatcherProxy;
use Symfony\Contracts\Service\ResetInterface;

/**
 * An Application is the container for a collection of commands.
 *
 * It is the main entry point of a Console application.
 *
 * This class is optimized for a standard CLI environment.
 *
 * Usage:
 *
 *     $app = new Application('myapp', '1.0 (stable)');
 *     $app->add(new SimpleCommand());
 *     $app->run();
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class Application implements ResetInterface
{
    private $commands = [];
    private $wantHelps = false;
    private $runningCommand;
    private $name;
    private $version;
    private $commandLoader;
    private $catchExceptions = true;
    private $autoExit = true;
    private $definition;
    private $helperSet;
    private $dispatcher;
    private $terminal;
    private $defaultCommand;
    private $singleCommand = false;
    private $initialized;

    /**
     * @param string $name    The name of the application
     * @param string $version The version of the application
     */
    public function __construct(string $name = 'UNKNOWN', string $version = 'UNKNOWN')
    {
        $this->name = $name;
        $this->version = $version;
        $this->terminal = new Terminal();
        $this->defaultCommand = 'list';
    }

    /**
     * @final since Symfony 4.3, the type-hint will be updated to the interface from symfony/contracts in 5.0
     */
    public function setDispatcher(EventDispatcherInterface $dispatcher)
    {
        $this->dispatcher = LegacyEventDispatcherProxy::decorate($dispatcher);
    }

    public function setCommandLoader(CommandLoaderInterface $commandLoader)
    {
        $this->commandLoader = $commandLoader;
    }

    /**
     * Runs the current application.
     *
     * @return int 0 if everything went fine, or an error code
     *
     * @throws \Exception When running fails. Bypass this when {@link setCatchExceptions()}.
     */
    public function run(InputInterface $input = null, OutputInterface $output = null)
    {
        putenv('LINES='.$this->terminal->getHeight());
        putenv('COLUMNS='.$this->terminal->getWidth());

        if (null === $input) {
            $input = new ArgvInput();
        }

        if (null === $output) {
            $output = new ConsoleOutput();
        }

        $renderException = function (\Throwable $e) use ($output) {
            if ($output instanceof ConsoleOutputInterface) {
                $this->renderThrowable($e, $output->getErrorOutput());
            } else {
                $this->renderThrowable($e, $output);
            }
        };
        if ($phpHandler = set_exception_handler($renderException)) {
            restore_exception_handler();
            if (!\is_array($phpHandler) || (!$phpHandler[0] instanceof ErrorHandler && !$phpHandler[0] instanceof LegacyErrorHandler)) {
                $errorHandler = true;
            } elseif ($errorHandler = $phpHandler[0]->setExceptionHandler($renderException)) {
                $phpHandler[0]->setExceptionHandler($errorHandler);
            }
        }

        $this->configureIO($input, $output);

        try {
            $exitCode = $this->doRun($input, $output);
        } catch (\Exception $e) {
            if (!$this->catchExceptions) {
                throw $e;
            }

            $renderException($e);

            $exitCode = $e->getCode();
            if (is_numeric($exitCode)) {
                $exitCode = (int) $exitCode;
                if (0 === $exitCode) {
                    $exitCode = 1;
                }
            } else {
                $exitCode = 1;
            }
        } finally {
            // if the exception handler changed, keep it
            // otherwise, unregister $renderException
            if (!$phpHandler) {
                if (set_exception_handler($renderException) === $renderException) {
                    restore_exception_handler();
                }
                restore_exception_handler();
            } elseif (!$errorHandler) {
                $finalHandler = $phpHandler[0]->setExceptionHandler(null);
                if ($finalHandler !== $renderException) {
                    $phpHandler[0]->setExceptionHandler($finalHandler);
                }
            }
        }

        if ($this->autoExit) {
            if ($exitCode > 255) {
                $exitCode = 255;
            }

            exit($exitCode);
        }

        return $exitCode;
    }

    /**
     * Runs the current application.
     *
     * @return int 0 if everything went fine, or an error code
     */
    public function doRun(InputInterface $input, OutputInterface $output)
    {
        if (true === $input->hasParameterOption(['--version', '-V'], true)) {
            $output->writeln($this->getLongVersion());

            return 0;
        }

        try {
            // Makes ArgvInput::getFirstArgument() able to distinguish an option from an argument.
            $input->bind($this->getDefinition());
        } catch (ExceptionInterface $e) {
            // Errors must be ignored, full binding/validation happens later when the command is known.
        }

        $name = $this->getCommandName($input);
        if (true === $input->hasParameterOption(['--help', '-h'], true)) {
            if (!$name) {
                $name = 'help';
                $input = new ArrayInput(['command_name' => $this->defaultCommand]);
            } else {
                $this->wantHelps = true;
            }
        }

        if (!$name) {
            $name = $this->defaultCommand;
            $definition = $this->getDefinition();
            $definition->setArguments(array_merge(
                $definition->getArguments(),
                [
                    'command' => new InputArgument('command', InputArgument::OPTIONAL, $definition->getArgument('command')->getDescription(), $name),
                ]
            ));
        }

        try {
            $this->runningCommand = null;
            // the command name MUST be the first element of the input
            $command = $this->find($name);
        } catch (\Throwable $e) {
            if (!($e instanceof CommandNotFoundException && !$e instanceof NamespaceNotFoundException) || 1 !== \count($alternatives = $e->getAlternatives()) || !$input->isInteractive()) {
                if (null !== $this->dispatcher) {
                    $event = new ConsoleErrorEvent($input, $output, $e);
                    $this->dispatcher->dispatch($event, ConsoleEvents::ERROR);

                    if (0 === $event->getExitCode()) {
                        return 0;
                    }

                    $e = $event->getError();
                }

                throw $e;
            }

            $alternative = $alternatives[0];

            $style = new SymfonyStyle($input, $output);
            $style->block(sprintf("\nCommand \"%s\" is not defined.\n", $name), null, 'error');
            if (!$style->confirm(sprintf('Do you want to run "%s" instead? ', $alternative), false)) {
                if (null !== $this->dispatcher) {
                    $event = new ConsoleErrorEvent($input, $output, $e);
                    $this->dispatcher->dispatch($event, ConsoleEvents::ERROR);

                    return $event->getExitCode();
                }

                return 1;
            }

            $command = $this->find($alternative);
        }

        $this->runningCommand = $command;
        $exitCode = $this->doRunCommand($command, $input, $output);
        $this->runningCommand = null;

        return $exitCode;
    }

    /**
     * {@inheritdoc}
     */
    public function reset()
    {
    }

    public function setHelperSet(HelperSet $helperSet)
    {
        $this->helperSet = $helperSet;
    }

    /**
     * Get the helper set associated with the command.
     *
     * @return HelperSet The HelperSet instance associated with this command
     */
    public function getHelperSet()
    {
        if (!$this->helperSet) {
            $this->helperSet = $this->getDefaultHelperSet();
        }

        return $this->helperSet;
    }

    public function setDefinition(InputDefinition $definition)
    {
        $this->definition = $definition;
    }

    /**
     * Gets the InputDefinition related to this Application.
     *
     * @return InputDefinition The InputDefinition instance
     */
    public function getDefinition()
    {
        if (!$this->definition) {
            $this->definition = $this->getDefaultInputDefinition();
        }

        if ($this->singleCommand) {
            $inputDefinition = $this->definition;
            $inputDefinition->setArguments();

            return $inputDefinition;
        }

        return $this->definition;
    }

    /**
     * Gets the help message.
     *
     * @return string A help message
     */
    public function getHelp()
    {
        return $this->getLongVersion();
    }

    /**
     * Gets whether to catch exceptions or not during commands execution.
     *
     * @return bool Whether to catch exceptions or not during commands execution
     */
    public function areExceptionsCaught()
    {
        return $this->catchExceptions;
    }

    /**
     * Sets whether to catch exceptions or not during commands execution.
     *
     * @param bool $boolean Whether to catch exceptions or not during commands execution
     */
    public function setCatchExceptions($boolean)
    {
        $this->catchExceptions = (bool) $boolean;
    }

    /**
     * Gets whether to automatically exit after a command execution or not.
     *
     * @return bool Whether to automatically exit after a command execution or not
     */
    public function isAutoExitEnabled()
    {
        return $this->autoExit;
    }

    /**
     * Sets whether to automatically exit after a command execution or not.
     *
     * @param bool $boolean Whether to automatically exit after a command execution or not
     */
    public function setAutoExit($boolean)
    {
        $this->autoExit = (bool) $boolean;
    }

    /**
     * Gets the name of the application.
     *
     * @return string The application name
     */
    public function getName()
    {
        return $this->name;
    }

    /**
     * Sets the application name.
     *
     * @param string $name The application name
     */
    public function setName($name)
    {
        $this->name = $name;
    }

    /**
     * Gets the application version.
     *
     * @return string The application version
     */
    public function getVersion()
    {
        return $this->version;
    }

    /**
     * Sets the application version.
     *
     * @param string $version The application version
     */
    public function setVersion($version)
    {
        $this->version = $version;
    }

    /**
     * Returns the long version of the application.
     *
     * @return string The long application version
     */
    public function getLongVersion()
    {
        if ('UNKNOWN' !== $this->getName()) {
            if ('UNKNOWN' !== $this->getVersion()) {
                return sprintf('%s <info>%s</info>', $this->getName(), $this->getVersion());
            }

            return $this->getName();
        }

        return 'Console Tool';
    }

    /**
     * Registers a new command.
     *
     * @param string $name The command name
     *
     * @return Command The newly created command
     */
    public function register($name)
    {
        return $this->add(new Command($name));
    }

    /**
     * Adds an array of command objects.
     *
     * If a Command is not enabled it will not be added.
     *
     * @param Command[] $commands An array of commands
     */
    public function addCommands(array $commands)
    {
        foreach ($commands as $command) {
            $this->add($command);
        }
    }

    /**
     * Adds a command object.
     *
     * If a command with the same name already exists, it will be overridden.
     * If the command is not enabled it will not be added.
     *
     * @return Command|null The registered command if enabled or null
     */
    public function add(Command $command)
    {
        $this->init();

        $command->setApplication($this);

        if (!$command->isEnabled()) {
            $command->setApplication(null);

            return null;
        }

        // Will throw if the command is not correctly initialized.
        $command->getDefinition();

        if (!$command->getName()) {
            throw new LogicException(sprintf('The command defined in "%s" cannot have an empty name.', \get_class($command)));
        }

        $this->commands[$command->getName()] = $command;

        foreach ($command->getAliases() as $alias) {
            $this->commands[$alias] = $command;
        }

        return $command;
    }

    /**
     * Returns a registered command by name or alias.
     *
     * @param string $name The command name or alias
     *
     * @return Command A Command object
     *
     * @throws CommandNotFoundException When given command name does not exist
     */
    public function get($name)
    {
        $this->init();

        if (!$this->has($name)) {
            throw new CommandNotFoundException(sprintf('The command "%s" does not exist.', $name));
        }

        $command = $this->commands[$name];

        if ($this->wantHelps) {
            $this->wantHelps = false;

            $helpCommand = $this->get('help');
            $helpCommand->setCommand($command);

            return $helpCommand;
        }

        return $command;
    }

    /**
     * Returns true if the command exists, false otherwise.
     *
     * @param string $name The command name or alias
     *
     * @return bool true if the command exists, false otherwise
     */
    public function has($name)
    {
        $this->init();

        return isset($this->commands[$name]) || ($this->commandLoader && $this->commandLoader->has($name) && $this->add($this->commandLoader->get($name)));
    }

    /**
     * Returns an array of all unique namespaces used by currently registered commands.
     *
     * It does not return the global namespace which always exists.
     *
     * @return string[] An array of namespaces
     */
    public function getNamespaces()
    {
        $namespaces = [];
        foreach ($this->all() as $command) {
            if ($command->isHidden()) {
                continue;
            }

            $namespaces = array_merge($namespaces, $this->extractAllNamespaces($command->getName()));

            foreach ($command->getAliases() as $alias) {
                $namespaces = array_merge($namespaces, $this->extractAllNamespaces($alias));
            }
        }

        return array_values(array_unique(array_filter($namespaces)));
    }

    /**
     * Finds a registered namespace by a name or an abbreviation.
     *
     * @param string $namespace A namespace or abbreviation to search for
     *
     * @return string A registered namespace
     *
     * @throws NamespaceNotFoundException When namespace is incorrect or ambiguous
     */
    public function findNamespace($namespace)
    {
        $allNamespaces = $this->getNamespaces();
        $expr = preg_replace_callback('{([^:]+|)}', function ($matches) { return preg_quote($matches[1]).'[^:]*'; }, $namespace);
        $namespaces = preg_grep('{^'.$expr.'}', $allNamespaces);

        if (empty($namespaces)) {
            $message = sprintf('There are no commands defined in the "%s" namespace.', $namespace);

            if ($alternatives = $this->findAlternatives($namespace, $allNamespaces)) {
                if (1 == \count($alternatives)) {
                    $message .= "\n\nDid you mean this?\n    ";
                } else {
                    $message .= "\n\nDid you mean one of these?\n    ";
                }

                $message .= implode("\n    ", $alternatives);
            }

            throw new NamespaceNotFoundException($message, $alternatives);
        }

        $exact = \in_array($namespace, $namespaces, true);
        if (\count($namespaces) > 1 && !$exact) {
            throw new NamespaceNotFoundException(sprintf("The namespace \"%s\" is ambiguous.\nDid you mean one of these?\n%s.", $namespace, $this->getAbbreviationSuggestions(array_values($namespaces))), array_values($namespaces));
        }

        return $exact ? $namespace : reset($namespaces);
    }

    /**
     * Finds a command by name or alias.
     *
     * Contrary to get, this command tries to find the best
     * match if you give it an abbreviation of a name or alias.
     *
     * @param string $name A command name or a command alias
     *
     * @return Command A Command instance
     *
     * @throws CommandNotFoundException When command name is incorrect or ambiguous
     */
    public function find($name)
    {
        $this->init();

        $aliases = [];

        foreach ($this->commands as $command) {
            foreach ($command->getAliases() as $alias) {
                if (!$this->has($alias)) {
                    $this->commands[$alias] = $command;
                }
            }
        }

        if ($this->has($name)) {
            return $this->get($name);
        }

        $allCommands = $this->commandLoader ? array_merge($this->commandLoader->getNames(), array_keys($this->commands)) : array_keys($this->commands);
        $expr = preg_replace_callback('{([^:]+|)}', function ($matches) { return preg_quote($matches[1]).'[^:]*'; }, $name);
        $commands = preg_grep('{^'.$expr.'}', $allCommands);

        if (empty($commands)) {
            $commands = preg_grep('{^'.$expr.'}i', $allCommands);
        }

        // if no commands matched or we just matched namespaces
        if (empty($commands) || \count(preg_grep('{^'.$expr.'$}i', $commands)) < 1) {
            if (false !== $pos = strrpos($name, ':')) {
                // check if a namespace exists and contains commands
                $this->findNamespace(substr($name, 0, $pos));
            }

            $message = sprintf('Command "%s" is not defined.', $name);

            if ($alternatives = $this->findAlternatives($name, $allCommands)) {
                // remove hidden commands
                $alternatives = array_filter($alternatives, function ($name) {
                    return !$this->get($name)->isHidden();
                });

                if (1 == \count($alternatives)) {
                    $message .= "\n\nDid you mean this?\n    ";
                } else {
                    $message .= "\n\nDid you mean one of these?\n    ";
                }
                $message .= implode("\n    ", $alternatives);
            }

            throw new CommandNotFoundException($message, array_values($alternatives));
        }

        // filter out aliases for commands which are already on the list
        if (\count($commands) > 1) {
            $commandList = $this->commandLoader ? array_merge(array_flip($this->commandLoader->getNames()), $this->commands) : $this->commands;
            $commands = array_unique(array_filter($commands, function ($nameOrAlias) use (&$commandList, $commands, &$aliases) {
                if (!$commandList[$nameOrAlias] instanceof Command) {
                    $commandList[$nameOrAlias] = $this->commandLoader->get($nameOrAlias);
                }

                $commandName = $commandList[$nameOrAlias]->getName();

                $aliases[$nameOrAlias] = $commandName;

                return $commandName === $nameOrAlias || !\in_array($commandName, $commands);
            }));
        }

        if (\count($commands) > 1) {
            $usableWidth = $this->terminal->getWidth() - 10;
            $abbrevs = array_values($commands);
            $maxLen = 0;
            foreach ($abbrevs as $abbrev) {
                $maxLen = max(Helper::strlen($abbrev), $maxLen);
            }
            $abbrevs = array_map(function ($cmd) use ($commandList, $usableWidth, $maxLen, &$commands) {
                if ($commandList[$cmd]->isHidden()) {
                    unset($commands[array_search($cmd, $commands)]);

                    return false;
                }

                $abbrev = str_pad($cmd, $maxLen, ' ').' '.$commandList[$cmd]->getDescription();

                return Helper::strlen($abbrev) > $usableWidth ? Helper::substr($abbrev, 0, $usableWidth - 3).'...' : $abbrev;
            }, array_values($commands));

            if (\count($commands) > 1) {
                $suggestions = $this->getAbbreviationSuggestions(array_filter($abbrevs));

                throw new CommandNotFoundException(sprintf("Command \"%s\" is ambiguous.\nDid you mean one of these?\n%s.", $name, $suggestions), array_values($commands));
            }
        }

        $command = $this->get(reset($commands));

        if ($command->isHidden()) {
            @trigger_error(sprintf('Command "%s" is hidden, finding it using an abbreviation is deprecated since Symfony 4.4, use its full name instead.', $command->getName()), E_USER_DEPRECATED);
        }

        return $command;
    }

    /**
     * Gets the commands (registered in the given namespace if provided).
     *
     * The array keys are the full names and the values the command instances.
     *
     * @param string $namespace A namespace name
     *
     * @return Command[] An array of Command instances
     */
    public function all($namespace = null)
    {
        $this->init();

        if (null === $namespace) {
            if (!$this->commandLoader) {
                return $this->commands;
            }

            $commands = $this->commands;
            foreach ($this->commandLoader->getNames() as $name) {
                if (!isset($commands[$name]) && $this->has($name)) {
                    $commands[$name] = $this->get($name);
                }
            }

            return $commands;
        }

        $commands = [];
        foreach ($this->commands as $name => $command) {
            if ($namespace === $this->extractNamespace($name, substr_count($namespace, ':') + 1)) {
                $commands[$name] = $command;
            }
        }

        if ($this->commandLoader) {
            foreach ($this->commandLoader->getNames() as $name) {
                if (!isset($commands[$name]) && $namespace === $this->extractNamespace($name, substr_count($namespace, ':') + 1) && $this->has($name)) {
                    $commands[$name] = $this->get($name);
                }
            }
        }

        return $commands;
    }

    /**
     * Returns an array of possible abbreviations given a set of names.
     *
     * @param array $names An array of names
     *
     * @return array An array of abbreviations
     */
    public static function getAbbreviations($names)
    {
        $abbrevs = [];
        foreach ($names as $name) {
            for ($len = \strlen($name); $len > 0; --$len) {
                $abbrev = substr($name, 0, $len);
                $abbrevs[$abbrev][] = $name;
            }
        }

        return $abbrevs;
    }

    /**
     * Renders a caught exception.
     *
     * @deprecated since Symfony 4.4, use "renderThrowable()" instead
     */
    public function renderException(\Exception $e, OutputInterface $output)
    {
        @trigger_error(sprintf('The "%s::renderException()" method is deprecated since Symfony 4.4, use "renderThrowable()" instead.', __CLASS__), E_USER_DEPRECATED);

        $output->writeln('', OutputInterface::VERBOSITY_QUIET);

        $this->doRenderException($e, $output);

        $this->finishRenderThrowableOrException($output);
    }

    public function renderThrowable(\Throwable $e, OutputInterface $output): void
    {
        if (__CLASS__ !== static::class && __CLASS__ === (new \ReflectionMethod($this, 'renderThrowable'))->getDeclaringClass()->getName() && __CLASS__ !== (new \ReflectionMethod($this, 'renderException'))->getDeclaringClass()->getName()) {
            @trigger_error(sprintf('The "%s::renderException()" method is deprecated since Symfony 4.4, use "renderThrowable()" instead.', __CLASS__), E_USER_DEPRECATED);

            if (!$e instanceof \Exception) {
                $e = class_exists(FatalThrowableError::class) ? new FatalThrowableError($e) : new \ErrorException($e->getMessage(), $e->getCode(), E_ERROR, $e->getFile(), $e->getLine());
            }

            $this->renderException($e, $output);

            return;
        }

        $output->writeln('', OutputInterface::VERBOSITY_QUIET);

        $this->doRenderThrowable($e, $output);

        $this->finishRenderThrowableOrException($output);
    }

    private function finishRenderThrowableOrException(OutputInterface $output): void
    {
        if (null !== $this->runningCommand) {
            $output->writeln(sprintf('<info>%s</info>', sprintf($this->runningCommand->getSynopsis(), $this->getName())), OutputInterface::VERBOSITY_QUIET);
            $output->writeln('', OutputInterface::VERBOSITY_QUIET);
        }
    }

    /**
     * @deprecated since Symfony 4.4, use "doRenderThrowable()" instead
     */
    protected function doRenderException(\Exception $e, OutputInterface $output)
    {
        @trigger_error(sprintf('The "%s::doRenderException()" method is deprecated since Symfony 4.4, use "doRenderThrowable()" instead.', __CLASS__), E_USER_DEPRECATED);

        $this->doActuallyRenderThrowable($e, $output);
    }

    protected function doRenderThrowable(\Throwable $e, OutputInterface $output): void
    {
        if (__CLASS__ !== static::class && __CLASS__ === (new \ReflectionMethod($this, 'doRenderThrowable'))->getDeclaringClass()->getName() && __CLASS__ !== (new \ReflectionMethod($this, 'doRenderException'))->getDeclaringClass()->getName()) {
            @trigger_error(sprintf('The "%s::doRenderException()" method is deprecated since Symfony 4.4, use "doRenderThrowable()" instead.', __CLASS__), E_USER_DEPRECATED);

            if (!$e instanceof \Exception) {
                $e = class_exists(FatalThrowableError::class) ? new FatalThrowableError($e) : new \ErrorException($e->getMessage(), $e->getCode(), E_ERROR, $e->getFile(), $e->getLine());
            }

            $this->doRenderException($e, $output);

            return;
        }

        $this->doActuallyRenderThrowable($e, $output);
    }

    private function doActuallyRenderThrowable(\Throwable $e, OutputInterface $output): void
    {
        do {
            $message = trim($e->getMessage());
            if ('' === $message || OutputInterface::VERBOSITY_VERBOSE <= $output->getVerbosity()) {
                $class = get_debug_type($e);
                $title = sprintf('  [%s%s]  ', $class, 0 !== ($code = $e->getCode()) ? ' ('.$code.')' : '');
                $len = Helper::strlen($title);
            } else {
                $len = 0;
            }

            if (false !== strpos($message, "@anonymous\0")) {
                $message = preg_replace_callback('/[a-zA-Z_\x7f-\xff][\\\\a-zA-Z0-9_\x7f-\xff]*+@anonymous\x00.*?\.php(?:0x?|:[0-9]++\$)[0-9a-fA-F]++/', function ($m) {
                    return class_exists($m[0], false) ? (get_parent_class($m[0]) ?: key(class_implements($m[0])) ?: 'class').'@anonymous' : $m[0];
                }, $message);
            }

            $width = $this->terminal->getWidth() ? $this->terminal->getWidth() - 1 : PHP_INT_MAX;
            $lines = [];
            foreach ('' !== $message ? preg_split('/\r?\n/', $message) : [] as $line) {
                foreach ($this->splitStringByWidth($line, $width - 4) as $line) {
                    // pre-format lines to get the right string length
                    $lineLength = Helper::strlen($line) + 4;
                    $lines[] = [$line, $lineLength];

                    $len = max($lineLength, $len);
                }
            }

            $messages = [];
            if (!$e instanceof ExceptionInterface || OutputInterface::VERBOSITY_VERBOSE <= $output->getVerbosity()) {
                $messages[] = sprintf('<comment>%s</comment>', OutputFormatter::escape(sprintf('In %s line %s:', basename($e->getFile()) ?: 'n/a', $e->getLine() ?: 'n/a')));
            }
            $messages[] = $emptyLine = sprintf('<error>%s</error>', str_repeat(' ', $len));
            if ('' === $message || OutputInterface::VERBOSITY_VERBOSE <= $output->getVerbosity()) {
                $messages[] = sprintf('<error>%s%s</error>', $title, str_repeat(' ', max(0, $len - Helper::strlen($title))));
            }
            foreach ($lines as $line) {
                $messages[] = sprintf('<error>  %s  %s</error>', OutputFormatter::escape($line[0]), str_repeat(' ', $len - $line[1]));
            }
            $messages[] = $emptyLine;
            $messages[] = '';

            $output->writeln($messages, OutputInterface::VERBOSITY_QUIET);

            if (OutputInterface::VERBOSITY_VERBOSE <= $output->getVerbosity()) {
                $output->writeln('<comment>Exception trace:</comment>', OutputInterface::VERBOSITY_QUIET);

                // exception related properties
                $trace = $e->getTrace();

                array_unshift($trace, [
                    'function' => '',
                    'file' => $e->getFile() ?: 'n/a',
                    'line' => $e->getLine() ?: 'n/a',
                    'args' => [],
                ]);

                for ($i = 0, $count = \count($trace); $i < $count; ++$i) {
                    $class = isset($trace[$i]['class']) ? $trace[$i]['class'] : '';
                    $type = isset($trace[$i]['type']) ? $trace[$i]['type'] : '';
                    $function = isset($trace[$i]['function']) ? $trace[$i]['function'] : '';
                    $file = isset($trace[$i]['file']) ? $trace[$i]['file'] : 'n/a';
                    $line = isset($trace[$i]['line']) ? $trace[$i]['line'] : 'n/a';

                    $output->writeln(sprintf(' %s%s at <info>%s:%s</info>', $class, $function ? $type.$function.'()' : '', $file, $line), OutputInterface::VERBOSITY_QUIET);
                }

                $output->writeln('', OutputInterface::VERBOSITY_QUIET);
            }
        } while ($e = $e->getPrevious());
    }

    /**
     * Configures the input and output instances based on the user arguments and options.
     */
    protected function configureIO(InputInterface $input, OutputInterface $output)
    {
        if (true === $input->hasParameterOption(['--ansi'], true)) {
            $output->setDecorated(true);
        } elseif (true === $input->hasParameterOption(['--no-ansi'], true)) {
            $output->setDecorated(false);
        }

        if (true === $input->hasParameterOption(['--no-interaction', '-n'], true)) {
            $input->setInteractive(false);
        }

        switch ($shellVerbosity = (int) getenv('SHELL_VERBOSITY')) {
            case -1: $output->setVerbosity(OutputInterface::VERBOSITY_QUIET); break;
            case 1: $output->setVerbosity(OutputInterface::VERBOSITY_VERBOSE); break;
            case 2: $output->setVerbosity(OutputInterface::VERBOSITY_VERY_VERBOSE); break;
            case 3: $output->setVerbosity(OutputInterface::VERBOSITY_DEBUG); break;
            default: $shellVerbosity = 0; break;
        }

        if (true === $input->hasParameterOption(['--quiet', '-q'], true)) {
            $output->setVerbosity(OutputInterface::VERBOSITY_QUIET);
            $shellVerbosity = -1;
        } else {
            if ($input->hasParameterOption('-vvv', true) || $input->hasParameterOption('--verbose=3', true) || 3 === $input->getParameterOption('--verbose', false, true)) {
                $output->setVerbosity(OutputInterface::VERBOSITY_DEBUG);
                $shellVerbosity = 3;
            } elseif ($input->hasParameterOption('-vv', true) || $input->hasParameterOption('--verbose=2', true) || 2 === $input->getParameterOption('--verbose', false, true)) {
                $output->setVerbosity(OutputInterface::VERBOSITY_VERY_VERBOSE);
                $shellVerbosity = 2;
            } elseif ($input->hasParameterOption('-v', true) || $input->hasParameterOption('--verbose=1', true) || $input->hasParameterOption('--verbose', true) || $input->getParameterOption('--verbose', false, true)) {
                $output->setVerbosity(OutputInterface::VERBOSITY_VERBOSE);
                $shellVerbosity = 1;
            }
        }

        if (-1 === $shellVerbosity) {
            $input->setInteractive(false);
        }

        putenv('SHELL_VERBOSITY='.$shellVerbosity);
        $_ENV['SHELL_VERBOSITY'] = $shellVerbosity;
        $_SERVER['SHELL_VERBOSITY'] = $shellVerbosity;
    }

    /**
     * Runs the current command.
     *
     * If an event dispatcher has been attached to the application,
     * events are also dispatched during the life-cycle of the command.
     *
     * @return int 0 if everything went fine, or an error code
     */
    protected function doRunCommand(Command $command, InputInterface $input, OutputInterface $output)
    {
        foreach ($command->getHelperSet() as $helper) {
            if ($helper instanceof InputAwareInterface) {
                $helper->setInput($input);
            }
        }

        if (null === $this->dispatcher) {
            return $command->run($input, $output);
        }

        // bind before the console.command event, so the listeners have access to input options/arguments
        try {
            $command->mergeApplicationDefinition();
            $input->bind($command->getDefinition());
        } catch (ExceptionInterface $e) {
            // ignore invalid options/arguments for now, to allow the event listeners to customize the InputDefinition
        }

        $event = new ConsoleCommandEvent($command, $input, $output);
        $e = null;

        try {
            $this->dispatcher->dispatch($event, ConsoleEvents::COMMAND);

            if ($event->commandShouldRun()) {
                $exitCode = $command->run($input, $output);
            } else {
                $exitCode = ConsoleCommandEvent::RETURN_CODE_DISABLED;
            }
        } catch (\Throwable $e) {
            $event = new ConsoleErrorEvent($input, $output, $e, $command);
            $this->dispatcher->dispatch($event, ConsoleEvents::ERROR);
            $e = $event->getError();

            if (0 === $exitCode = $event->getExitCode()) {
                $e = null;
            }
        }

        $event = new ConsoleTerminateEvent($command, $input, $output, $exitCode);
        $this->dispatcher->dispatch($event, ConsoleEvents::TERMINATE);

        if (null !== $e) {
            throw $e;
        }

        return $event->getExitCode();
    }

    /**
     * Gets the name of the command based on input.
     *
     * @return string|null
     */
    protected function getCommandName(InputInterface $input)
    {
        return $this->singleCommand ? $this->defaultCommand : $input->getFirstArgument();
    }

    /**
     * Gets the default input definition.
     *
     * @return InputDefinition An InputDefinition instance
     */
    protected function getDefaultInputDefinition()
    {
        return new InputDefinition([
            new InputArgument('command', InputArgument::REQUIRED, 'The command to execute'),

            new InputOption('--help', '-h', InputOption::VALUE_NONE, 'Display this help message'),
            new InputOption('--quiet', '-q', InputOption::VALUE_NONE, 'Do not output any message'),
            new InputOption('--verbose', '-v|vv|vvv', InputOption::VALUE_NONE, 'Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug'),
            new InputOption('--version', '-V', InputOption::VALUE_NONE, 'Display this application version'),
            new InputOption('--ansi', '', InputOption::VALUE_NONE, 'Force ANSI output'),
            new InputOption('--no-ansi', '', InputOption::VALUE_NONE, 'Disable ANSI output'),
            new InputOption('--no-interaction', '-n', InputOption::VALUE_NONE, 'Do not ask any interactive question'),
        ]);
    }

    /**
     * Gets the default commands that should always be available.
     *
     * @return Command[] An array of default Command instances
     */
    protected function getDefaultCommands()
    {
        return [new HelpCommand(), new ListCommand()];
    }

    /**
     * Gets the default helper set with the helpers that should always be available.
     *
     * @return HelperSet A HelperSet instance
     */
    protected function getDefaultHelperSet()
    {
        return new HelperSet([
            new FormatterHelper(),
            new DebugFormatterHelper(),
            new ProcessHelper(),
            new QuestionHelper(),
        ]);
    }

    /**
     * Returns abbreviated suggestions in string format.
     */
    private function getAbbreviationSuggestions(array $abbrevs): string
    {
        return '    '.implode("\n    ", $abbrevs);
    }

    /**
     * Returns the namespace part of the command name.
     *
     * This method is not part of public API and should not be used directly.
     *
     * @param string $name  The full name of the command
     * @param string $limit The maximum number of parts of the namespace
     *
     * @return string The namespace of the command
     */
    public function extractNamespace($name, $limit = null)
    {
        $parts = explode(':', $name, -1);

        return implode(':', null === $limit ? $parts : \array_slice($parts, 0, $limit));
    }

    /**
     * Finds alternative of $name among $collection,
     * if nothing is found in $collection, try in $abbrevs.
     *
     * @return string[] A sorted array of similar string
     */
    private function findAlternatives(string $name, iterable $collection): array
    {
        $threshold = 1e3;
        $alternatives = [];

        $collectionParts = [];
        foreach ($collection as $item) {
            $collectionParts[$item] = explode(':', $item);
        }

        foreach (explode(':', $name) as $i => $subname) {
            foreach ($collectionParts as $collectionName => $parts) {
                $exists = isset($alternatives[$collectionName]);
                if (!isset($parts[$i]) && $exists) {
                    $alternatives[$collectionName] += $threshold;
                    continue;
                } elseif (!isset($parts[$i])) {
                    continue;
                }

                $lev = levenshtein($subname, $parts[$i]);
                if ($lev <= \strlen($subname) / 3 || '' !== $subname && false !== strpos($parts[$i], $subname)) {
                    $alternatives[$collectionName] = $exists ? $alternatives[$collectionName] + $lev : $lev;
                } elseif ($exists) {
                    $alternatives[$collectionName] += $threshold;
                }
            }
        }

        foreach ($collection as $item) {
            $lev = levenshtein($name, $item);
            if ($lev <= \strlen($name) / 3 || false !== strpos($item, $name)) {
                $alternatives[$item] = isset($alternatives[$item]) ? $alternatives[$item] - $lev : $lev;
            }
        }

        $alternatives = array_filter($alternatives, function ($lev) use ($threshold) { return $lev < 2 * $threshold; });
        ksort($alternatives, SORT_NATURAL | SORT_FLAG_CASE);

        return array_keys($alternatives);
    }

    /**
     * Sets the default Command name.
     *
     * @param string $commandName     The Command name
     * @param bool   $isSingleCommand Set to true if there is only one command in this application
     *
     * @return self
     */
    public function setDefaultCommand($commandName, $isSingleCommand = false)
    {
        $this->defaultCommand = $commandName;

        if ($isSingleCommand) {
            // Ensure the command exist
            $this->find($commandName);

            $this->singleCommand = true;
        }

        return $this;
    }

    /**
     * @internal
     */
    public function isSingleCommand(): bool
    {
        return $this->singleCommand;
    }

    private function splitStringByWidth(string $string, int $width): array
    {
        // str_split is not suitable for multi-byte characters, we should use preg_split to get char array properly.
        // additionally, array_slice() is not enough as some character has doubled width.
        // we need a function to split string not by character count but by string width
        if (false === $encoding = mb_detect_encoding($string, null, true)) {
            return str_split($string, $width);
        }

        $utf8String = mb_convert_encoding($string, 'utf8', $encoding);
        $lines = [];
        $line = '';

        $offset = 0;
        while (preg_match('/.{1,10000}/u', $utf8String, $m, 0, $offset)) {
            $offset += \strlen($m[0]);

            foreach (preg_split('//u', $m[0]) as $char) {
                // test if $char could be appended to current line
                if (mb_strwidth($line.$char, 'utf8') <= $width) {
                    $line .= $char;
                    continue;
                }
                // if not, push current line to array and make new line
                $lines[] = str_pad($line, $width);
                $line = $char;
            }
        }

        $lines[] = \count($lines) ? str_pad($line, $width) : $line;

        mb_convert_variables($encoding, 'utf8', $lines);

        return $lines;
    }

    /**
     * Returns all namespaces of the command name.
     *
     * @return string[] The namespaces of the command
     */
    private function extractAllNamespaces(string $name): array
    {
        // -1 as third argument is needed to skip the command short name when exploding
        $parts = explode(':', $name, -1);
        $namespaces = [];

        foreach ($parts as $part) {
            if (\count($namespaces)) {
                $namespaces[] = end($namespaces).':'.$part;
            } else {
                $namespaces[] = $part;
            }
        }

        return $namespaces;
    }

    private function init()
    {
        if ($this->initialized) {
            return;
        }
        $this->initialized = true;

        foreach ($this->getDefaultCommands() as $command) {
            $this->add($command);
        }
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Logger;

use Psr\Log\AbstractLogger;
use Psr\Log\InvalidArgumentException;
use Psr\Log\LogLevel;
use Symfony\Component\Console\Output\ConsoleOutputInterface;
use Symfony\Component\Console\Output\OutputInterface;

/**
 * PSR-3 compliant console logger.
 *
 * @author Kévin Dunglas <dunglas@gmail.com>
 *
 * @see https://www.php-fig.org/psr/psr-3/
 */
class ConsoleLogger extends AbstractLogger
{
    const INFO = 'info';
    const ERROR = 'error';

    private $output;
    private $verbosityLevelMap = [
        LogLevel::EMERGENCY => OutputInterface::VERBOSITY_NORMAL,
        LogLevel::ALERT => OutputInterface::VERBOSITY_NORMAL,
        LogLevel::CRITICAL => OutputInterface::VERBOSITY_NORMAL,
        LogLevel::ERROR => OutputInterface::VERBOSITY_NORMAL,
        LogLevel::WARNING => OutputInterface::VERBOSITY_NORMAL,
        LogLevel::NOTICE => OutputInterface::VERBOSITY_VERBOSE,
        LogLevel::INFO => OutputInterface::VERBOSITY_VERY_VERBOSE,
        LogLevel::DEBUG => OutputInterface::VERBOSITY_DEBUG,
    ];
    private $formatLevelMap = [
        LogLevel::EMERGENCY => self::ERROR,
        LogLevel::ALERT => self::ERROR,
        LogLevel::CRITICAL => self::ERROR,
        LogLevel::ERROR => self::ERROR,
        LogLevel::WARNING => self::INFO,
        LogLevel::NOTICE => self::INFO,
        LogLevel::INFO => self::INFO,
        LogLevel::DEBUG => self::INFO,
    ];
    private $errored = false;

    public function __construct(OutputInterface $output, array $verbosityLevelMap = [], array $formatLevelMap = [])
    {
        $this->output = $output;
        $this->verbosityLevelMap = $verbosityLevelMap + $this->verbosityLevelMap;
        $this->formatLevelMap = $formatLevelMap + $this->formatLevelMap;
    }

    /**
     * {@inheritdoc}
     *
     * @return void
     */
    public function log($level, $message, array $context = [])
    {
        if (!isset($this->verbosityLevelMap[$level])) {
            throw new InvalidArgumentException(sprintf('The log level "%s" does not exist.', $level));
        }

        $output = $this->output;

        // Write to the error output if necessary and available
        if (self::ERROR === $this->formatLevelMap[$level]) {
            if ($this->output instanceof ConsoleOutputInterface) {
                $output = $output->getErrorOutput();
            }
            $this->errored = true;
        }

        // the if condition check isn't necessary -- it's the same one that $output will do internally anyway.
        // We only do it for efficiency here as the message formatting is relatively expensive.
        if ($output->getVerbosity() >= $this->verbosityLevelMap[$level]) {
            $output->writeln(sprintf('<%1$s>[%2$s] %3$s</%1$s>', $this->formatLevelMap[$level], $level, $this->interpolate($message, $context)), $this->verbosityLevelMap[$level]);
        }
    }

    /**
     * Returns true when any messages have been logged at error levels.
     *
     * @return bool
     */
    public function hasErrored()
    {
        return $this->errored;
    }

    /**
     * Interpolates context values into the message placeholders.
     *
     * @author PHP Framework Interoperability Group
     */
    private function interpolate(string $message, array $context): string
    {
        if (false === strpos($message, '{')) {
            return $message;
        }

        $replacements = [];
        foreach ($context as $key => $val) {
            if (null === $val || is_scalar($val) || (\is_object($val) && method_exists($val, '__toString'))) {
                $replacements["{{$key}}"] = $val;
            } elseif ($val instanceof \DateTimeInterface) {
                $replacements["{{$key}}"] = $val->format(\DateTime::RFC3339);
            } elseif (\is_object($val)) {
                $replacements["{{$key}}"] = '[object '.\get_class($val).']';
            } else {
                $replacements["{{$key}}"] = '['.\gettype($val).']';
            }
        }

        return strtr($message, $replacements);
    }
}
Copyright (c) 2004-2020 Fabien Potencier

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.
CHANGELOG
=========

4.4.0
-----

 * deprecated finding hidden commands using an abbreviation, use the full name instead
 * added `Question::setTrimmable` default to true to allow the answer to be trimmed
 * added method `minSecondsBetweenRedraws()` and `maxSecondsBetweenRedraws()` on `ProgressBar`
 * `Application` implements `ResetInterface`
 * marked all dispatched event classes as `@final`
 * added support for displaying table horizontally
 * deprecated returning `null` from `Command::execute()`, return `0` instead
 * Deprecated the `Application::renderException()` and `Application::doRenderException()` methods,
   use `renderThrowable()` and `doRenderThrowable()` instead.
 * added support for the `NO_COLOR` env var (https://no-color.org/)

4.3.0
-----

 * added support for hyperlinks
 * added `ProgressBar::iterate()` method that simplify updating the progress bar when iterating
 * added `Question::setAutocompleterCallback()` to provide a callback function
   that dynamically generates suggestions as the user types

4.2.0
-----

 * allowed passing commands as `[$process, 'ENV_VAR' => 'value']` to
   `ProcessHelper::run()` to pass environment variables
 * deprecated passing a command as a string to `ProcessHelper::run()`,
   pass it the command as an array of its arguments instead
 * made the `ProcessHelper` class final
 * added `WrappableOutputFormatterInterface::formatAndWrap()` (implemented in `OutputFormatter`)
 * added `capture_stderr_separately` option to `CommandTester::execute()`

4.1.0
-----

 * added option to run suggested command if command is not found and only 1 alternative is available
 * added option to modify console output and print multiple modifiable sections
 * added support for iterable messages in output `write` and `writeln` methods

4.0.0
-----

 * `OutputFormatter` throws an exception when unknown options are used
 * removed `QuestionHelper::setInputStream()/getInputStream()`
 * removed `Application::getTerminalWidth()/getTerminalHeight()` and
  `Application::setTerminalDimensions()/getTerminalDimensions()`
* removed `ConsoleExceptionEvent`
* removed `ConsoleEvents::EXCEPTION`

3.4.0
-----

 * added `SHELL_VERBOSITY` env var to control verbosity
 * added `CommandLoaderInterface`, `FactoryCommandLoader` and PSR-11
   `ContainerCommandLoader` for commands lazy-loading
 * added a case-insensitive command name matching fallback
 * added static `Command::$defaultName/getDefaultName()`, allowing for
   commands to be registered at compile time in the application command loader.
   Setting the `$defaultName` property avoids the need for filling the `command`
   attribute on the `console.command` tag when using `AddConsoleCommandPass`.

3.3.0
-----

* added `ExceptionListener`
* added `AddConsoleCommandPass` (originally in FrameworkBundle)
* [BC BREAK] `Input::getOption()` no longer returns the default value for options
  with value optional explicitly passed empty
* added console.error event to catch exceptions thrown by other listeners
* deprecated console.exception event in favor of console.error
* added ability to handle `CommandNotFoundException` through the
 `console.error` event
* deprecated default validation in `SymfonyQuestionHelper::ask`

3.2.0
------

* added `setInputs()` method to CommandTester for ease testing of commands expecting inputs
* added `setStream()` and `getStream()` methods to Input (implement StreamableInputInterface)
* added StreamableInputInterface
* added LockableTrait

3.1.0
-----

 * added truncate method to FormatterHelper
 * added setColumnWidth(s) method to Table

2.8.3
-----

 * remove readline support from the question helper as it caused issues

2.8.0
-----

 * use readline for user input in the question helper when available to allow
   the use of arrow keys

2.6.0
-----

 * added a Process helper
 * added a DebugFormatter helper

2.5.0
-----

 * deprecated the dialog helper (use the question helper instead)
 * deprecated TableHelper in favor of Table
 * deprecated ProgressHelper in favor of ProgressBar
 * added ConsoleLogger
 * added a question helper
 * added a way to set the process name of a command
 * added a way to set a default command instead of `ListCommand`

2.4.0
-----

 * added a way to force terminal dimensions
 * added a convenient method to detect verbosity level
 * [BC BREAK] made descriptors use output instead of returning a string

2.3.0
-----

 * added multiselect support to the select dialog helper
 * added Table Helper for tabular data rendering
 * added support for events in `Application`
 * added a way to normalize EOLs in `ApplicationTester::getDisplay()` and `CommandTester::getDisplay()`
 * added a way to set the progress bar progress via the `setCurrent` method
 * added support for multiple InputOption shortcuts, written as `'-a|-b|-c'`
 * added two additional verbosity levels, VERBOSITY_VERY_VERBOSE and VERBOSITY_DEBUG

2.2.0
-----

 * added support for colorization on Windows via ConEmu
 * add a method to Dialog Helper to ask for a question and hide the response
 * added support for interactive selections in console (DialogHelper::select())
 * added support for autocompletion as you type in Dialog Helper

2.1.0
-----

 * added ConsoleOutputInterface
 * added the possibility to disable a command (Command::isEnabled())
 * added suggestions when a command does not exist
 * added a --raw option to the list command
 * added support for STDERR in the console output class (errors are now sent
   to STDERR)
 * made the defaults (helper set, commands, input definition) in Application
   more easily customizable
 * added support for the shell even if readline is not available
 * added support for process isolation in Symfony shell via
   `--process-isolation` switch
 * added support for `--`, which disables options parsing after that point
   (tokens will be parsed as arguments)
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Input;

/**
 * StreamableInputInterface is the interface implemented by all input classes
 * that have an input stream.
 *
 * @author Robin Chalas <robin.chalas@gmail.com>
 */
interface StreamableInputInterface extends InputInterface
{
    /**
     * Sets the input stream to read from when interacting with the user.
     *
     * This is mainly useful for testing purpose.
     *
     * @param resource $stream The input stream
     */
    public function setStream($stream);

    /**
     * Returns the input stream.
     *
     * @return resource|null
     */
    public function getStream();
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Input;

use Symfony\Component\Console\Exception\InvalidArgumentException;
use Symfony\Component\Console\Exception\InvalidOptionException;

/**
 * ArrayInput represents an input provided as an array.
 *
 * Usage:
 *
 *     $input = new ArrayInput(['command' => 'foo:bar', 'foo' => 'bar', '--bar' => 'foobar']);
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class ArrayInput extends Input
{
    private $parameters;

    public function __construct(array $parameters, InputDefinition $definition = null)
    {
        $this->parameters = $parameters;

        parent::__construct($definition);
    }

    /**
     * {@inheritdoc}
     */
    public function getFirstArgument()
    {
        foreach ($this->parameters as $param => $value) {
            if ($param && \is_string($param) && '-' === $param[0]) {
                continue;
            }

            return $value;
        }

        return null;
    }

    /**
     * {@inheritdoc}
     */
    public function hasParameterOption($values, $onlyParams = false)
    {
        $values = (array) $values;

        foreach ($this->parameters as $k => $v) {
            if (!\is_int($k)) {
                $v = $k;
            }

            if ($onlyParams && '--' === $v) {
                return false;
            }

            if (\in_array($v, $values)) {
                return true;
            }
        }

        return false;
    }

    /**
     * {@inheritdoc}
     */
    public function getParameterOption($values, $default = false, $onlyParams = false)
    {
        $values = (array) $values;

        foreach ($this->parameters as $k => $v) {
            if ($onlyParams && ('--' === $k || (\is_int($k) && '--' === $v))) {
                return $default;
            }

            if (\is_int($k)) {
                if (\in_array($v, $values)) {
                    return true;
                }
            } elseif (\in_array($k, $values)) {
                return $v;
            }
        }

        return $default;
    }

    /**
     * Returns a stringified representation of the args passed to the command.
     *
     * @return string
     */
    public function __toString()
    {
        $params = [];
        foreach ($this->parameters as $param => $val) {
            if ($param && \is_string($param) && '-' === $param[0]) {
                if (\is_array($val)) {
                    foreach ($val as $v) {
                        $params[] = $param.('' != $v ? '='.$this->escapeToken($v) : '');
                    }
                } else {
                    $params[] = $param.('' != $val ? '='.$this->escapeToken($val) : '');
                }
            } else {
                $params[] = \is_array($val) ? implode(' ', array_map([$this, 'escapeToken'], $val)) : $this->escapeToken($val);
            }
        }

        return implode(' ', $params);
    }

    /**
     * {@inheritdoc}
     */
    protected function parse()
    {
        foreach ($this->parameters as $key => $value) {
            if ('--' === $key) {
                return;
            }
            if (0 === strpos($key, '--')) {
                $this->addLongOption(substr($key, 2), $value);
            } elseif (0 === strpos($key, '-')) {
                $this->addShortOption(substr($key, 1), $value);
            } else {
                $this->addArgument($key, $value);
            }
        }
    }

    /**
     * Adds a short option value.
     *
     * @throws InvalidOptionException When option given doesn't exist
     */
    private function addShortOption(string $shortcut, $value)
    {
        if (!$this->definition->hasShortcut($shortcut)) {
            throw new InvalidOptionException(sprintf('The "-%s" option does not exist.', $shortcut));
        }

        $this->addLongOption($this->definition->getOptionForShortcut($shortcut)->getName(), $value);
    }

    /**
     * Adds a long option value.
     *
     * @throws InvalidOptionException When option given doesn't exist
     * @throws InvalidOptionException When a required value is missing
     */
    private function addLongOption(string $name, $value)
    {
        if (!$this->definition->hasOption($name)) {
            throw new InvalidOptionException(sprintf('The "--%s" option does not exist.', $name));
        }

        $option = $this->definition->getOption($name);

        if (null === $value) {
            if ($option->isValueRequired()) {
                throw new InvalidOptionException(sprintf('The "--%s" option requires a value.', $name));
            }

            if (!$option->isValueOptional()) {
                $value = true;
            }
        }

        $this->options[$name] = $value;
    }

    /**
     * Adds an argument value.
     *
     * @param string|int $name  The argument name
     * @param mixed      $value The value for the argument
     *
     * @throws InvalidArgumentException When argument given doesn't exist
     */
    private function addArgument($name, $value)
    {
        if (!$this->definition->hasArgument($name)) {
            throw new InvalidArgumentException(sprintf('The "%s" argument does not exist.', $name));
        }

        $this->arguments[$name] = $value;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Input;

use Symfony\Component\Console\Exception\RuntimeException;

/**
 * ArgvInput represents an input coming from the CLI arguments.
 *
 * Usage:
 *
 *     $input = new ArgvInput();
 *
 * By default, the `$_SERVER['argv']` array is used for the input values.
 *
 * This can be overridden by explicitly passing the input values in the constructor:
 *
 *     $input = new ArgvInput($_SERVER['argv']);
 *
 * If you pass it yourself, don't forget that the first element of the array
 * is the name of the running application.
 *
 * When passing an argument to the constructor, be sure that it respects
 * the same rules as the argv one. It's almost always better to use the
 * `StringInput` when you want to provide your own input.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 *
 * @see http://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html
 * @see http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap12.html#tag_12_02
 */
class ArgvInput extends Input
{
    private $tokens;
    private $parsed;

    /**
     * @param array|null $argv An array of parameters from the CLI (in the argv format)
     */
    public function __construct(array $argv = null, InputDefinition $definition = null)
    {
        if (null === $argv) {
            $argv = $_SERVER['argv'];
        }

        // strip the application name
        array_shift($argv);

        $this->tokens = $argv;

        parent::__construct($definition);
    }

    protected function setTokens(array $tokens)
    {
        $this->tokens = $tokens;
    }

    /**
     * {@inheritdoc}
     */
    protected function parse()
    {
        $parseOptions = true;
        $this->parsed = $this->tokens;
        while (null !== $token = array_shift($this->parsed)) {
            if ($parseOptions && '' == $token) {
                $this->parseArgument($token);
            } elseif ($parseOptions && '--' == $token) {
                $parseOptions = false;
            } elseif ($parseOptions && 0 === strpos($token, '--')) {
                $this->parseLongOption($token);
            } elseif ($parseOptions && '-' === $token[0] && '-' !== $token) {
                $this->parseShortOption($token);
            } else {
                $this->parseArgument($token);
            }
        }
    }

    /**
     * Parses a short option.
     */
    private function parseShortOption(string $token)
    {
        $name = substr($token, 1);

        if (\strlen($name) > 1) {
            if ($this->definition->hasShortcut($name[0]) && $this->definition->getOptionForShortcut($name[0])->acceptValue()) {
                // an option with a value (with no space)
                $this->addShortOption($name[0], substr($name, 1));
            } else {
                $this->parseShortOptionSet($name);
            }
        } else {
            $this->addShortOption($name, null);
        }
    }

    /**
     * Parses a short option set.
     *
     * @throws RuntimeException When option given doesn't exist
     */
    private function parseShortOptionSet(string $name)
    {
        $len = \strlen($name);
        for ($i = 0; $i < $len; ++$i) {
            if (!$this->definition->hasShortcut($name[$i])) {
                $encoding = mb_detect_encoding($name, null, true);
                throw new RuntimeException(sprintf('The "-%s" option does not exist.', false === $encoding ? $name[$i] : mb_substr($name, $i, 1, $encoding)));
            }

            $option = $this->definition->getOptionForShortcut($name[$i]);
            if ($option->acceptValue()) {
                $this->addLongOption($option->getName(), $i === $len - 1 ? null : substr($name, $i + 1));

                break;
            } else {
                $this->addLongOption($option->getName(), null);
            }
        }
    }

    /**
     * Parses a long option.
     */
    private function parseLongOption(string $token)
    {
        $name = substr($token, 2);

        if (false !== $pos = strpos($name, '=')) {
            if (0 === \strlen($value = substr($name, $pos + 1))) {
                array_unshift($this->parsed, $value);
            }
            $this->addLongOption(substr($name, 0, $pos), $value);
        } else {
            $this->addLongOption($name, null);
        }
    }

    /**
     * Parses an argument.
     *
     * @throws RuntimeException When too many arguments are given
     */
    private function parseArgument(string $token)
    {
        $c = \count($this->arguments);

        // if input is expecting another argument, add it
        if ($this->definition->hasArgument($c)) {
            $arg = $this->definition->getArgument($c);
            $this->arguments[$arg->getName()] = $arg->isArray() ? [$token] : $token;

        // if last argument isArray(), append token to last argument
        } elseif ($this->definition->hasArgument($c - 1) && $this->definition->getArgument($c - 1)->isArray()) {
            $arg = $this->definition->getArgument($c - 1);
            $this->arguments[$arg->getName()][] = $token;

        // unexpected argument
        } else {
            $all = $this->definition->getArguments();
            if (\count($all)) {
                throw new RuntimeException(sprintf('Too many arguments, expected arguments "%s".', implode('" "', array_keys($all))));
            }

            throw new RuntimeException(sprintf('No arguments expected, got "%s".', $token));
        }
    }

    /**
     * Adds a short option value.
     *
     * @throws RuntimeException When option given doesn't exist
     */
    private function addShortOption(string $shortcut, $value)
    {
        if (!$this->definition->hasShortcut($shortcut)) {
            throw new RuntimeException(sprintf('The "-%s" option does not exist.', $shortcut));
        }

        $this->addLongOption($this->definition->getOptionForShortcut($shortcut)->getName(), $value);
    }

    /**
     * Adds a long option value.
     *
     * @throws RuntimeException When option given doesn't exist
     */
    private function addLongOption(string $name, $value)
    {
        if (!$this->definition->hasOption($name)) {
            throw new RuntimeException(sprintf('The "--%s" option does not exist.', $name));
        }

        $option = $this->definition->getOption($name);

        if (null !== $value && !$option->acceptValue()) {
            throw new RuntimeException(sprintf('The "--%s" option does not accept a value.', $name));
        }

        if (\in_array($value, ['', null], true) && $option->acceptValue() && \count($this->parsed)) {
            // if option accepts an optional or mandatory argument
            // let's see if there is one provided
            $next = array_shift($this->parsed);
            if ((isset($next[0]) && '-' !== $next[0]) || \in_array($next, ['', null], true)) {
                $value = $next;
            } else {
                array_unshift($this->parsed, $next);
            }
        }

        if (null === $value) {
            if ($option->isValueRequired()) {
                throw new RuntimeException(sprintf('The "--%s" option requires a value.', $name));
            }

            if (!$option->isArray() && !$option->isValueOptional()) {
                $value = true;
            }
        }

        if ($option->isArray()) {
            $this->options[$name][] = $value;
        } else {
            $this->options[$name] = $value;
        }
    }

    /**
     * {@inheritdoc}
     */
    public function getFirstArgument()
    {
        $isOption = false;
        foreach ($this->tokens as $i => $token) {
            if ($token && '-' === $token[0]) {
                if (false !== strpos($token, '=') || !isset($this->tokens[$i + 1])) {
                    continue;
                }

                // If it's a long option, consider that everything after "--" is the option name.
                // Otherwise, use the last char (if it's a short option set, only the last one can take a value with space separator)
                $name = '-' === $token[1] ? substr($token, 2) : substr($token, -1);
                if (!isset($this->options[$name]) && !$this->definition->hasShortcut($name)) {
                    // noop
                } elseif ((isset($this->options[$name]) || isset($this->options[$name = $this->definition->shortcutToName($name)])) && $this->tokens[$i + 1] === $this->options[$name]) {
                    $isOption = true;
                }

                continue;
            }

            if ($isOption) {
                $isOption = false;
                continue;
            }

            return $token;
        }

        return null;
    }

    /**
     * {@inheritdoc}
     */
    public function hasParameterOption($values, $onlyParams = false)
    {
        $values = (array) $values;

        foreach ($this->tokens as $token) {
            if ($onlyParams && '--' === $token) {
                return false;
            }
            foreach ($values as $value) {
                // Options with values:
                //   For long options, test for '--option=' at beginning
                //   For short options, test for '-o' at beginning
                $leading = 0 === strpos($value, '--') ? $value.'=' : $value;
                if ($token === $value || '' !== $leading && 0 === strpos($token, $leading)) {
                    return true;
                }
            }
        }

        return false;
    }

    /**
     * {@inheritdoc}
     */
    public function getParameterOption($values, $default = false, $onlyParams = false)
    {
        $values = (array) $values;
        $tokens = $this->tokens;

        while (0 < \count($tokens)) {
            $token = array_shift($tokens);
            if ($onlyParams && '--' === $token) {
                return $default;
            }

            foreach ($values as $value) {
                if ($token === $value) {
                    return array_shift($tokens);
                }
                // Options with values:
                //   For long options, test for '--option=' at beginning
                //   For short options, test for '-o' at beginning
                $leading = 0 === strpos($value, '--') ? $value.'=' : $value;
                if ('' !== $leading && 0 === strpos($token, $leading)) {
                    return substr($token, \strlen($leading));
                }
            }
        }

        return $default;
    }

    /**
     * Returns a stringified representation of the args passed to the command.
     *
     * @return string
     */
    public function __toString()
    {
        $tokens = array_map(function ($token) {
            if (preg_match('{^(-[^=]+=)(.+)}', $token, $match)) {
                return $match[1].$this->escapeToken($match[2]);
            }

            if ($token && '-' !== $token[0]) {
                return $this->escapeToken($token);
            }

            return $token;
        }, $this->tokens);

        return implode(' ', $tokens);
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Input;

use Symfony\Component\Console\Exception\InvalidArgumentException;
use Symfony\Component\Console\Exception\LogicException;

/**
 * Represents a command line argument.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class InputArgument
{
    const REQUIRED = 1;
    const OPTIONAL = 2;
    const IS_ARRAY = 4;

    private $name;
    private $mode;
    private $default;
    private $description;

    /**
     * @param string               $name        The argument name
     * @param int|null             $mode        The argument mode: self::REQUIRED or self::OPTIONAL
     * @param string               $description A description text
     * @param string|string[]|null $default     The default value (for self::OPTIONAL mode only)
     *
     * @throws InvalidArgumentException When argument mode is not valid
     */
    public function __construct(string $name, int $mode = null, string $description = '', $default = null)
    {
        if (null === $mode) {
            $mode = self::OPTIONAL;
        } elseif ($mode > 7 || $mode < 1) {
            throw new InvalidArgumentException(sprintf('Argument mode "%s" is not valid.', $mode));
        }

        $this->name = $name;
        $this->mode = $mode;
        $this->description = $description;

        $this->setDefault($default);
    }

    /**
     * Returns the argument name.
     *
     * @return string The argument name
     */
    public function getName()
    {
        return $this->name;
    }

    /**
     * Returns true if the argument is required.
     *
     * @return bool true if parameter mode is self::REQUIRED, false otherwise
     */
    public function isRequired()
    {
        return self::REQUIRED === (self::REQUIRED & $this->mode);
    }

    /**
     * Returns true if the argument can take multiple values.
     *
     * @return bool true if mode is self::IS_ARRAY, false otherwise
     */
    public function isArray()
    {
        return self::IS_ARRAY === (self::IS_ARRAY & $this->mode);
    }

    /**
     * Sets the default value.
     *
     * @param string|string[]|null $default The default value
     *
     * @throws LogicException When incorrect default value is given
     */
    public function setDefault($default = null)
    {
        if (self::REQUIRED === $this->mode && null !== $default) {
            throw new LogicException('Cannot set a default value except for InputArgument::OPTIONAL mode.');
        }

        if ($this->isArray()) {
            if (null === $default) {
                $default = [];
            } elseif (!\is_array($default)) {
                throw new LogicException('A default value for an array argument must be an array.');
            }
        }

        $this->default = $default;
    }

    /**
     * Returns the default value.
     *
     * @return string|string[]|null The default value
     */
    public function getDefault()
    {
        return $this->default;
    }

    /**
     * Returns the description text.
     *
     * @return string The description text
     */
    public function getDescription()
    {
        return $this->description;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Input;

/**
 * InputAwareInterface should be implemented by classes that depends on the
 * Console Input.
 *
 * @author Wouter J <waldio.webdesign@gmail.com>
 */
interface InputAwareInterface
{
    /**
     * Sets the Console Input.
     */
    public function setInput(InputInterface $input);
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Input;

use Symfony\Component\Console\Exception\InvalidArgumentException;
use Symfony\Component\Console\Exception\LogicException;

/**
 * Represents a command line option.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class InputOption
{
    const VALUE_NONE = 1;
    const VALUE_REQUIRED = 2;
    const VALUE_OPTIONAL = 4;
    const VALUE_IS_ARRAY = 8;

    private $name;
    private $shortcut;
    private $mode;
    private $default;
    private $description;

    /**
     * @param string                        $name        The option name
     * @param string|array|null             $shortcut    The shortcuts, can be null, a string of shortcuts delimited by | or an array of shortcuts
     * @param int|null                      $mode        The option mode: One of the VALUE_* constants
     * @param string                        $description A description text
     * @param string|string[]|int|bool|null $default     The default value (must be null for self::VALUE_NONE)
     *
     * @throws InvalidArgumentException If option mode is invalid or incompatible
     */
    public function __construct(string $name, $shortcut = null, int $mode = null, string $description = '', $default = null)
    {
        if (0 === strpos($name, '--')) {
            $name = substr($name, 2);
        }

        if (empty($name)) {
            throw new InvalidArgumentException('An option name cannot be empty.');
        }

        if (empty($shortcut)) {
            $shortcut = null;
        }

        if (null !== $shortcut) {
            if (\is_array($shortcut)) {
                $shortcut = implode('|', $shortcut);
            }
            $shortcuts = preg_split('{(\|)-?}', ltrim($shortcut, '-'));
            $shortcuts = array_filter($shortcuts);
            $shortcut = implode('|', $shortcuts);

            if (empty($shortcut)) {
                throw new InvalidArgumentException('An option shortcut cannot be empty.');
            }
        }

        if (null === $mode) {
            $mode = self::VALUE_NONE;
        } elseif ($mode > 15 || $mode < 1) {
            throw new InvalidArgumentException(sprintf('Option mode "%s" is not valid.', $mode));
        }

        $this->name = $name;
        $this->shortcut = $shortcut;
        $this->mode = $mode;
        $this->description = $description;

        if ($this->isArray() && !$this->acceptValue()) {
            throw new InvalidArgumentException('Impossible to have an option mode VALUE_IS_ARRAY if the option does not accept a value.');
        }

        $this->setDefault($default);
    }

    /**
     * Returns the option shortcut.
     *
     * @return string|null The shortcut
     */
    public function getShortcut()
    {
        return $this->shortcut;
    }

    /**
     * Returns the option name.
     *
     * @return string The name
     */
    public function getName()
    {
        return $this->name;
    }

    /**
     * Returns true if the option accepts a value.
     *
     * @return bool true if value mode is not self::VALUE_NONE, false otherwise
     */
    public function acceptValue()
    {
        return $this->isValueRequired() || $this->isValueOptional();
    }

    /**
     * Returns true if the option requires a value.
     *
     * @return bool true if value mode is self::VALUE_REQUIRED, false otherwise
     */
    public function isValueRequired()
    {
        return self::VALUE_REQUIRED === (self::VALUE_REQUIRED & $this->mode);
    }

    /**
     * Returns true if the option takes an optional value.
     *
     * @return bool true if value mode is self::VALUE_OPTIONAL, false otherwise
     */
    public function isValueOptional()
    {
        return self::VALUE_OPTIONAL === (self::VALUE_OPTIONAL & $this->mode);
    }

    /**
     * Returns true if the option can take multiple values.
     *
     * @return bool true if mode is self::VALUE_IS_ARRAY, false otherwise
     */
    public function isArray()
    {
        return self::VALUE_IS_ARRAY === (self::VALUE_IS_ARRAY & $this->mode);
    }

    /**
     * Sets the default value.
     *
     * @param string|string[]|int|bool|null $default The default value
     *
     * @throws LogicException When incorrect default value is given
     */
    public function setDefault($default = null)
    {
        if (self::VALUE_NONE === (self::VALUE_NONE & $this->mode) && null !== $default) {
            throw new LogicException('Cannot set a default value when using InputOption::VALUE_NONE mode.');
        }

        if ($this->isArray()) {
            if (null === $default) {
                $default = [];
            } elseif (!\is_array($default)) {
                throw new LogicException('A default value for an array option must be an array.');
            }
        }

        $this->default = $this->acceptValue() ? $default : false;
    }

    /**
     * Returns the default value.
     *
     * @return string|string[]|int|bool|null The default value
     */
    public function getDefault()
    {
        return $this->default;
    }

    /**
     * Returns the description text.
     *
     * @return string The description text
     */
    public function getDescription()
    {
        return $this->description;
    }

    /**
     * Checks whether the given option equals this one.
     *
     * @return bool
     */
    public function equals(self $option)
    {
        return $option->getName() === $this->getName()
            && $option->getShortcut() === $this->getShortcut()
            && $option->getDefault() === $this->getDefault()
            && $option->isArray() === $this->isArray()
            && $option->isValueRequired() === $this->isValueRequired()
            && $option->isValueOptional() === $this->isValueOptional()
        ;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Input;

use Symfony\Component\Console\Exception\InvalidArgumentException;
use Symfony\Component\Console\Exception\LogicException;

/**
 * A InputDefinition represents a set of valid command line arguments and options.
 *
 * Usage:
 *
 *     $definition = new InputDefinition([
 *         new InputArgument('name', InputArgument::REQUIRED),
 *         new InputOption('foo', 'f', InputOption::VALUE_REQUIRED),
 *     ]);
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class InputDefinition
{
    private $arguments;
    private $requiredCount;
    private $hasAnArrayArgument = false;
    private $hasOptional;
    private $options;
    private $shortcuts;

    /**
     * @param array $definition An array of InputArgument and InputOption instance
     */
    public function __construct(array $definition = [])
    {
        $this->setDefinition($definition);
    }

    /**
     * Sets the definition of the input.
     */
    public function setDefinition(array $definition)
    {
        $arguments = [];
        $options = [];
        foreach ($definition as $item) {
            if ($item instanceof InputOption) {
                $options[] = $item;
            } else {
                $arguments[] = $item;
            }
        }

        $this->setArguments($arguments);
        $this->setOptions($options);
    }

    /**
     * Sets the InputArgument objects.
     *
     * @param InputArgument[] $arguments An array of InputArgument objects
     */
    public function setArguments($arguments = [])
    {
        $this->arguments = [];
        $this->requiredCount = 0;
        $this->hasOptional = false;
        $this->hasAnArrayArgument = false;
        $this->addArguments($arguments);
    }

    /**
     * Adds an array of InputArgument objects.
     *
     * @param InputArgument[] $arguments An array of InputArgument objects
     */
    public function addArguments($arguments = [])
    {
        if (null !== $arguments) {
            foreach ($arguments as $argument) {
                $this->addArgument($argument);
            }
        }
    }

    /**
     * @throws LogicException When incorrect argument is given
     */
    public function addArgument(InputArgument $argument)
    {
        if (isset($this->arguments[$argument->getName()])) {
            throw new LogicException(sprintf('An argument with name "%s" already exists.', $argument->getName()));
        }

        if ($this->hasAnArrayArgument) {
            throw new LogicException('Cannot add an argument after an array argument.');
        }

        if ($argument->isRequired() && $this->hasOptional) {
            throw new LogicException('Cannot add a required argument after an optional one.');
        }

        if ($argument->isArray()) {
            $this->hasAnArrayArgument = true;
        }

        if ($argument->isRequired()) {
            ++$this->requiredCount;
        } else {
            $this->hasOptional = true;
        }

        $this->arguments[$argument->getName()] = $argument;
    }

    /**
     * Returns an InputArgument by name or by position.
     *
     * @param string|int $name The InputArgument name or position
     *
     * @return InputArgument An InputArgument object
     *
     * @throws InvalidArgumentException When argument given doesn't exist
     */
    public function getArgument($name)
    {
        if (!$this->hasArgument($name)) {
            throw new InvalidArgumentException(sprintf('The "%s" argument does not exist.', $name));
        }

        $arguments = \is_int($name) ? array_values($this->arguments) : $this->arguments;

        return $arguments[$name];
    }

    /**
     * Returns true if an InputArgument object exists by name or position.
     *
     * @param string|int $name The InputArgument name or position
     *
     * @return bool true if the InputArgument object exists, false otherwise
     */
    public function hasArgument($name)
    {
        $arguments = \is_int($name) ? array_values($this->arguments) : $this->arguments;

        return isset($arguments[$name]);
    }

    /**
     * Gets the array of InputArgument objects.
     *
     * @return InputArgument[] An array of InputArgument objects
     */
    public function getArguments()
    {
        return $this->arguments;
    }

    /**
     * Returns the number of InputArguments.
     *
     * @return int The number of InputArguments
     */
    public function getArgumentCount()
    {
        return $this->hasAnArrayArgument ? PHP_INT_MAX : \count($this->arguments);
    }

    /**
     * Returns the number of required InputArguments.
     *
     * @return int The number of required InputArguments
     */
    public function getArgumentRequiredCount()
    {
        return $this->requiredCount;
    }

    /**
     * Gets the default values.
     *
     * @return array An array of default values
     */
    public function getArgumentDefaults()
    {
        $values = [];
        foreach ($this->arguments as $argument) {
            $values[$argument->getName()] = $argument->getDefault();
        }

        return $values;
    }

    /**
     * Sets the InputOption objects.
     *
     * @param InputOption[] $options An array of InputOption objects
     */
    public function setOptions($options = [])
    {
        $this->options = [];
        $this->shortcuts = [];
        $this->addOptions($options);
    }

    /**
     * Adds an array of InputOption objects.
     *
     * @param InputOption[] $options An array of InputOption objects
     */
    public function addOptions($options = [])
    {
        foreach ($options as $option) {
            $this->addOption($option);
        }
    }

    /**
     * @throws LogicException When option given already exist
     */
    public function addOption(InputOption $option)
    {
        if (isset($this->options[$option->getName()]) && !$option->equals($this->options[$option->getName()])) {
            throw new LogicException(sprintf('An option named "%s" already exists.', $option->getName()));
        }

        if ($option->getShortcut()) {
            foreach (explode('|', $option->getShortcut()) as $shortcut) {
                if (isset($this->shortcuts[$shortcut]) && !$option->equals($this->options[$this->shortcuts[$shortcut]])) {
                    throw new LogicException(sprintf('An option with shortcut "%s" already exists.', $shortcut));
                }
            }
        }

        $this->options[$option->getName()] = $option;
        if ($option->getShortcut()) {
            foreach (explode('|', $option->getShortcut()) as $shortcut) {
                $this->shortcuts[$shortcut] = $option->getName();
            }
        }
    }

    /**
     * Returns an InputOption by name.
     *
     * @param string $name The InputOption name
     *
     * @return InputOption A InputOption object
     *
     * @throws InvalidArgumentException When option given doesn't exist
     */
    public function getOption($name)
    {
        if (!$this->hasOption($name)) {
            throw new InvalidArgumentException(sprintf('The "--%s" option does not exist.', $name));
        }

        return $this->options[$name];
    }

    /**
     * Returns true if an InputOption object exists by name.
     *
     * This method can't be used to check if the user included the option when
     * executing the command (use getOption() instead).
     *
     * @param string $name The InputOption name
     *
     * @return bool true if the InputOption object exists, false otherwise
     */
    public function hasOption($name)
    {
        return isset($this->options[$name]);
    }

    /**
     * Gets the array of InputOption objects.
     *
     * @return InputOption[] An array of InputOption objects
     */
    public function getOptions()
    {
        return $this->options;
    }

    /**
     * Returns true if an InputOption object exists by shortcut.
     *
     * @param string $name The InputOption shortcut
     *
     * @return bool true if the InputOption object exists, false otherwise
     */
    public function hasShortcut($name)
    {
        return isset($this->shortcuts[$name]);
    }

    /**
     * Gets an InputOption by shortcut.
     *
     * @param string $shortcut The Shortcut name
     *
     * @return InputOption An InputOption object
     */
    public function getOptionForShortcut($shortcut)
    {
        return $this->getOption($this->shortcutToName($shortcut));
    }

    /**
     * Gets an array of default values.
     *
     * @return array An array of all default values
     */
    public function getOptionDefaults()
    {
        $values = [];
        foreach ($this->options as $option) {
            $values[$option->getName()] = $option->getDefault();
        }

        return $values;
    }

    /**
     * Returns the InputOption name given a shortcut.
     *
     * @throws InvalidArgumentException When option given does not exist
     *
     * @internal
     */
    public function shortcutToName(string $shortcut): string
    {
        if (!isset($this->shortcuts[$shortcut])) {
            throw new InvalidArgumentException(sprintf('The "-%s" option does not exist.', $shortcut));
        }

        return $this->shortcuts[$shortcut];
    }

    /**
     * Gets the synopsis.
     *
     * @param bool $short Whether to return the short version (with options folded) or not
     *
     * @return string The synopsis
     */
    public function getSynopsis($short = false)
    {
        $elements = [];

        if ($short && $this->getOptions()) {
            $elements[] = '[options]';
        } elseif (!$short) {
            foreach ($this->getOptions() as $option) {
                $value = '';
                if ($option->acceptValue()) {
                    $value = sprintf(
                        ' %s%s%s',
                        $option->isValueOptional() ? '[' : '',
                        strtoupper($option->getName()),
                        $option->isValueOptional() ? ']' : ''
                    );
                }

                $shortcut = $option->getShortcut() ? sprintf('-%s|', $option->getShortcut()) : '';
                $elements[] = sprintf('[%s--%s%s]', $shortcut, $option->getName(), $value);
            }
        }

        if (\count($elements) && $this->getArguments()) {
            $elements[] = '[--]';
        }

        $tail = '';
        foreach ($this->getArguments() as $argument) {
            $element = '<'.$argument->getName().'>';
            if ($argument->isArray()) {
                $element .= '...';
            }

            if (!$argument->isRequired()) {
                $element = '['.$element;
                $tail .= ']';
            }

            $elements[] = $element;
        }

        return implode(' ', $elements).$tail;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Input;

use Symfony\Component\Console\Exception\InvalidArgumentException;

/**
 * StringInput represents an input provided as a string.
 *
 * Usage:
 *
 *     $input = new StringInput('foo --bar="foobar"');
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class StringInput extends ArgvInput
{
    const REGEX_STRING = '([^\s]+?)(?:\s|(?<!\\\\)"|(?<!\\\\)\'|$)';
    const REGEX_QUOTED_STRING = '(?:"([^"\\\\]*(?:\\\\.[^"\\\\]*)*)"|\'([^\'\\\\]*(?:\\\\.[^\'\\\\]*)*)\')';

    /**
     * @param string $input A string representing the parameters from the CLI
     */
    public function __construct(string $input)
    {
        parent::__construct([]);

        $this->setTokens($this->tokenize($input));
    }

    /**
     * Tokenizes a string.
     *
     * @throws InvalidArgumentException When unable to parse input (should never happen)
     */
    private function tokenize(string $input): array
    {
        $tokens = [];
        $length = \strlen($input);
        $cursor = 0;
        while ($cursor < $length) {
            if (preg_match('/\s+/A', $input, $match, null, $cursor)) {
            } elseif (preg_match('/([^="\'\s]+?)(=?)('.self::REGEX_QUOTED_STRING.'+)/A', $input, $match, null, $cursor)) {
                $tokens[] = $match[1].$match[2].stripcslashes(str_replace(['"\'', '\'"', '\'\'', '""'], '', substr($match[3], 1, \strlen($match[3]) - 2)));
            } elseif (preg_match('/'.self::REGEX_QUOTED_STRING.'/A', $input, $match, null, $cursor)) {
                $tokens[] = stripcslashes(substr($match[0], 1, \strlen($match[0]) - 2));
            } elseif (preg_match('/'.self::REGEX_STRING.'/A', $input, $match, null, $cursor)) {
                $tokens[] = stripcslashes($match[1]);
            } else {
                // should never happen
                throw new InvalidArgumentException(sprintf('Unable to parse input near "... %s ...".', substr($input, $cursor, 10)));
            }

            $cursor += \strlen($match[0]);
        }

        return $tokens;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Input;

use Symfony\Component\Console\Exception\InvalidArgumentException;
use Symfony\Component\Console\Exception\RuntimeException;

/**
 * Input is the base class for all concrete Input classes.
 *
 * Three concrete classes are provided by default:
 *
 *  * `ArgvInput`: The input comes from the CLI arguments (argv)
 *  * `StringInput`: The input is provided as a string
 *  * `ArrayInput`: The input is provided as an array
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
abstract class Input implements InputInterface, StreamableInputInterface
{
    protected $definition;
    protected $stream;
    protected $options = [];
    protected $arguments = [];
    protected $interactive = true;

    public function __construct(InputDefinition $definition = null)
    {
        if (null === $definition) {
            $this->definition = new InputDefinition();
        } else {
            $this->bind($definition);
            $this->validate();
        }
    }

    /**
     * {@inheritdoc}
     */
    public function bind(InputDefinition $definition)
    {
        $this->arguments = [];
        $this->options = [];
        $this->definition = $definition;

        $this->parse();
    }

    /**
     * Processes command line arguments.
     */
    abstract protected function parse();

    /**
     * {@inheritdoc}
     */
    public function validate()
    {
        $definition = $this->definition;
        $givenArguments = $this->arguments;

        $missingArguments = array_filter(array_keys($definition->getArguments()), function ($argument) use ($definition, $givenArguments) {
            return !\array_key_exists($argument, $givenArguments) && $definition->getArgument($argument)->isRequired();
        });

        if (\count($missingArguments) > 0) {
            throw new RuntimeException(sprintf('Not enough arguments (missing: "%s").', implode(', ', $missingArguments)));
        }
    }

    /**
     * {@inheritdoc}
     */
    public function isInteractive()
    {
        return $this->interactive;
    }

    /**
     * {@inheritdoc}
     */
    public function setInteractive($interactive)
    {
        $this->interactive = (bool) $interactive;
    }

    /**
     * {@inheritdoc}
     */
    public function getArguments()
    {
        return array_merge($this->definition->getArgumentDefaults(), $this->arguments);
    }

    /**
     * {@inheritdoc}
     */
    public function getArgument($name)
    {
        if (!$this->definition->hasArgument($name)) {
            throw new InvalidArgumentException(sprintf('The "%s" argument does not exist.', $name));
        }

        return isset($this->arguments[$name]) ? $this->arguments[$name] : $this->definition->getArgument($name)->getDefault();
    }

    /**
     * {@inheritdoc}
     */
    public function setArgument($name, $value)
    {
        if (!$this->definition->hasArgument($name)) {
            throw new InvalidArgumentException(sprintf('The "%s" argument does not exist.', $name));
        }

        $this->arguments[$name] = $value;
    }

    /**
     * {@inheritdoc}
     */
    public function hasArgument($name)
    {
        return $this->definition->hasArgument($name);
    }

    /**
     * {@inheritdoc}
     */
    public function getOptions()
    {
        return array_merge($this->definition->getOptionDefaults(), $this->options);
    }

    /**
     * {@inheritdoc}
     */
    public function getOption($name)
    {
        if (!$this->definition->hasOption($name)) {
            throw new InvalidArgumentException(sprintf('The "%s" option does not exist.', $name));
        }

        return \array_key_exists($name, $this->options) ? $this->options[$name] : $this->definition->getOption($name)->getDefault();
    }

    /**
     * {@inheritdoc}
     */
    public function setOption($name, $value)
    {
        if (!$this->definition->hasOption($name)) {
            throw new InvalidArgumentException(sprintf('The "%s" option does not exist.', $name));
        }

        $this->options[$name] = $value;
    }

    /**
     * {@inheritdoc}
     */
    public function hasOption($name)
    {
        return $this->definition->hasOption($name);
    }

    /**
     * Escapes a token through escapeshellarg if it contains unsafe chars.
     *
     * @param string $token
     *
     * @return string
     */
    public function escapeToken($token)
    {
        return preg_match('{^[\w-]+$}', $token) ? $token : escapeshellarg($token);
    }

    /**
     * {@inheritdoc}
     */
    public function setStream($stream)
    {
        $this->stream = $stream;
    }

    /**
     * {@inheritdoc}
     */
    public function getStream()
    {
        return $this->stream;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Input;

use Symfony\Component\Console\Exception\InvalidArgumentException;
use Symfony\Component\Console\Exception\RuntimeException;

/**
 * InputInterface is the interface implemented by all input classes.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
interface InputInterface
{
    /**
     * Returns the first argument from the raw parameters (not parsed).
     *
     * @return string|null The value of the first argument or null otherwise
     */
    public function getFirstArgument();

    /**
     * Returns true if the raw parameters (not parsed) contain a value.
     *
     * This method is to be used to introspect the input parameters
     * before they have been validated. It must be used carefully.
     * Does not necessarily return the correct result for short options
     * when multiple flags are combined in the same option.
     *
     * @param string|array $values     The values to look for in the raw parameters (can be an array)
     * @param bool         $onlyParams Only check real parameters, skip those following an end of options (--) signal
     *
     * @return bool true if the value is contained in the raw parameters
     */
    public function hasParameterOption($values, $onlyParams = false);

    /**
     * Returns the value of a raw option (not parsed).
     *
     * This method is to be used to introspect the input parameters
     * before they have been validated. It must be used carefully.
     * Does not necessarily return the correct result for short options
     * when multiple flags are combined in the same option.
     *
     * @param string|array $values     The value(s) to look for in the raw parameters (can be an array)
     * @param mixed        $default    The default value to return if no result is found
     * @param bool         $onlyParams Only check real parameters, skip those following an end of options (--) signal
     *
     * @return mixed The option value
     */
    public function getParameterOption($values, $default = false, $onlyParams = false);

    /**
     * Binds the current Input instance with the given arguments and options.
     *
     * @throws RuntimeException
     */
    public function bind(InputDefinition $definition);

    /**
     * Validates the input.
     *
     * @throws RuntimeException When not enough arguments are given
     */
    public function validate();

    /**
     * Returns all the given arguments merged with the default values.
     *
     * @return array
     */
    public function getArguments();

    /**
     * Returns the argument value for a given argument name.
     *
     * @param string $name The argument name
     *
     * @return string|string[]|null The argument value
     *
     * @throws InvalidArgumentException When argument given doesn't exist
     */
    public function getArgument($name);

    /**
     * Sets an argument value by name.
     *
     * @param string               $name  The argument name
     * @param string|string[]|null $value The argument value
     *
     * @throws InvalidArgumentException When argument given doesn't exist
     */
    public function setArgument($name, $value);

    /**
     * Returns true if an InputArgument object exists by name or position.
     *
     * @param string|int $name The InputArgument name or position
     *
     * @return bool true if the InputArgument object exists, false otherwise
     */
    public function hasArgument($name);

    /**
     * Returns all the given options merged with the default values.
     *
     * @return array
     */
    public function getOptions();

    /**
     * Returns the option value for a given option name.
     *
     * @param string $name The option name
     *
     * @return string|string[]|bool|null The option value
     *
     * @throws InvalidArgumentException When option given doesn't exist
     */
    public function getOption($name);

    /**
     * Sets an option value by name.
     *
     * @param string                    $name  The option name
     * @param string|string[]|bool|null $value The option value
     *
     * @throws InvalidArgumentException When option given doesn't exist
     */
    public function setOption($name, $value);

    /**
     * Returns true if an InputOption object exists by name.
     *
     * @param string $name The InputOption name
     *
     * @return bool true if the InputOption object exists, false otherwise
     */
    public function hasOption($name);

    /**
     * Is this input means interactive?
     *
     * @return bool
     */
    public function isInteractive();

    /**
     * Sets the input interactivity.
     *
     * @param bool $interactive If the input should be interactive
     */
    public function setInteractive($interactive);
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console;

class Terminal
{
    private static $width;
    private static $height;
    private static $stty;

    /**
     * Gets the terminal width.
     *
     * @return int
     */
    public function getWidth()
    {
        $width = getenv('COLUMNS');
        if (false !== $width) {
            return (int) trim($width);
        }

        if (null === self::$width) {
            self::initDimensions();
        }

        return self::$width ?: 80;
    }

    /**
     * Gets the terminal height.
     *
     * @return int
     */
    public function getHeight()
    {
        $height = getenv('LINES');
        if (false !== $height) {
            return (int) trim($height);
        }

        if (null === self::$height) {
            self::initDimensions();
        }

        return self::$height ?: 50;
    }

    /**
     * @internal
     *
     * @return bool
     */
    public static function hasSttyAvailable()
    {
        if (null !== self::$stty) {
            return self::$stty;
        }

        exec('stty 2>&1', $output, $exitcode);

        return self::$stty = 0 === $exitcode;
    }

    private static function initDimensions()
    {
        if ('\\' === \DIRECTORY_SEPARATOR) {
            if (preg_match('/^(\d+)x(\d+)(?: \((\d+)x(\d+)\))?$/', trim(getenv('ANSICON')), $matches)) {
                // extract [w, H] from "wxh (WxH)"
                // or [w, h] from "wxh"
                self::$width = (int) $matches[1];
                self::$height = isset($matches[4]) ? (int) $matches[4] : (int) $matches[2];
            } elseif (!self::hasVt100Support() && self::hasSttyAvailable()) {
                // only use stty on Windows if the terminal does not support vt100 (e.g. Windows 7 + git-bash)
                // testing for stty in a Windows 10 vt100-enabled console will implicitly disable vt100 support on STDOUT
                self::initDimensionsUsingStty();
            } elseif (null !== $dimensions = self::getConsoleMode()) {
                // extract [w, h] from "wxh"
                self::$width = (int) $dimensions[0];
                self::$height = (int) $dimensions[1];
            }
        } else {
            self::initDimensionsUsingStty();
        }
    }

    /**
     * Returns whether STDOUT has vt100 support (some Windows 10+ configurations).
     */
    private static function hasVt100Support(): bool
    {
        return \function_exists('sapi_windows_vt100_support') && sapi_windows_vt100_support(fopen('php://stdout', 'w'));
    }

    /**
     * Initializes dimensions using the output of an stty columns line.
     */
    private static function initDimensionsUsingStty()
    {
        if ($sttyString = self::getSttyColumns()) {
            if (preg_match('/rows.(\d+);.columns.(\d+);/i', $sttyString, $matches)) {
                // extract [w, h] from "rows h; columns w;"
                self::$width = (int) $matches[2];
                self::$height = (int) $matches[1];
            } elseif (preg_match('/;.(\d+).rows;.(\d+).columns/i', $sttyString, $matches)) {
                // extract [w, h] from "; h rows; w columns"
                self::$width = (int) $matches[2];
                self::$height = (int) $matches[1];
            }
        }
    }

    /**
     * Runs and parses mode CON if it's available, suppressing any error output.
     *
     * @return int[]|null An array composed of the width and the height or null if it could not be parsed
     */
    private static function getConsoleMode(): ?array
    {
        $info = self::readFromProcess('mode CON');

        if (null === $info || !preg_match('/--------+\r?\n.+?(\d+)\r?\n.+?(\d+)\r?\n/', $info, $matches)) {
            return null;
        }

        return [(int) $matches[2], (int) $matches[1]];
    }

    /**
     * Runs and parses stty -a if it's available, suppressing any error output.
     */
    private static function getSttyColumns(): ?string
    {
        return self::readFromProcess('stty -a | grep columns');
    }

    private static function readFromProcess(string $command): ?string
    {
        if (!\function_exists('proc_open')) {
            return null;
        }

        $descriptorspec = [
            1 => ['pipe', 'w'],
            2 => ['pipe', 'w'],
        ];

        $process = proc_open($command, $descriptorspec, $pipes, null, null, ['suppress_errors' => true]);
        if (!\is_resource($process)) {
            return null;
        }

        $info = stream_get_contents($pipes[1]);
        fclose($pipes[1]);
        fclose($pipes[2]);
        proc_close($process);

        return $info;
    }
}
MZ                @                                       	!L!This program cannot be run in DOS mode.
$       ,;B;B;B2מ:B2-B2ƞ9B2ў?Ba98B;CB2Ȟ:B2֞:B2Ӟ:BRich;B        PE  L MoO         	  
         8           @                      `     ?   @                           "  P    @                      P  p   !                             8!  @                                          .text   	      
                    `.rdata  	       
                 @  @.data      0                    @  .rsrc       @                    @  @.reloc     P      "              @  B                                                                                                                                                                                                                                                                                                                                                        j$@ x  j @ e EPV  @ EЃPV @ MX @ e EP5H @ L @ YY5\ @ EP5` @ D @ YYP @ MMT @ 3H  ; 0@ u  h@   l3@ $40@ 5h3@ 40@ h$0@ h(0@ h 0@  @ 00@ }j  Yjh"@   3ۉ]d   p]俀3@ SVW0 @ ;t;u3Fuh  4 @ 3F|3@ ;u
j\  Y;|3@ u,5|3@ h @ h @   YYtE      5<0@ |3@ ;uh @ h @ l  YY|3@    9]uSW8 @ 93@ th3@   Yt
SjS3@ $0@  @ 5$0@ 5(0@ 5 0@ 80@ 9,0@ u7P @ E	MPQ  YYËeE80@ 39,0@ uPh @ 9<0@ u @ E80@   øMZ  f9  @ t3M< @   @ 8PE  uH  t  uՃ   v39   xtv39   j,0@ p @ jl @ YY3@ 3@  @ t3@  @ p3@  @  x3@ V    =0@  uh@  @ Yg  =0@ u	j @ Y3{  U(  H1@ D1@ @1@ <1@ 581@ =41@ f`1@ fT1@ f01@ f,1@ f%(1@ f-$1@ X1@ E L1@ EP1@ E\1@ 0@   P1@ L0@ @0@ 	 D0@     0@ 0@  @ 0@ j?  Yj   @ h!@ $ @ =0@  uj  Yh	 ( @ P, @ ËUE 8csmu*xu$@= t=!t="t= @u  3] hH@   @ 3% @ jh("@ b  53@ 5 @ YEuu @ Ygj  Ye 53@ ։E53@ YYEEPEPu5l @ YPU  Eu֣3@ uփ3@ E	   E  j  YËUuNYH]ËV!@ !@ W;stЃ;r_^ËV"@ "@ W;stЃ;r_^% @ ̋UMMZ  f9t3]ËA<8PE  u3ҹ  f9H]̋UEH<ASVq3WDv}H;r	X;r
B(;r3_^[]̋UjhH"@ he@ d    PSVW 0@ 1E3PEd    eE    h  @ *tUE-  @ Ph  @ Pt;@$ЃEMd    Y_^[]ËE3=  ËeE3Md    Y_^[]% @ % @ he@ d5    D$l$l$+SVW 0@ 1E3PeuEEEEd    ËMd    Y__^[]QËUuuuuh@ h 0@    ]ËVh   h   3V   tVVVVV   ^3ËU 0@ e e SWN@  ;tt	У0@ `VEP< @ u3u @ 3 @ 3 @ 3EP @ E3E3;uO@u5 0@ ։50@ ^_[%t @ %x @ %| @ % @ % @ % @ % @ % @ % @ Pd5    D$+d$SVW( 0@ 3PEuEEd    ËMd    Y__^[]QËM3M%T @ T$BJ3J3l"@ s                                                                                                                                                                                                                                                     #  #  #  )  r)  b)  H)  4)  )  (  (  (  (  (  (  )      #  $  %  %  &  d&  &  $      ('  '  '  '  '  (  ((  6(  '  H(  Z(  t(  (  '  '   '  '  '  l'  ^'  R'  F'  >'  >(  0'  '  )          @         W@ @                     MoO       l   !    @0@ 0@ bad allocation      H                                                            0@ !@    RSDSьJ!LZ    c:\users\seld\documents\visual studio 2010\Projects\hiddeninp\Release\hiddeninp.pdb     e                            @ @                 :@             @ @ @ "   d"@                        "          #      $#          &  D   H#          (  h                       #  #  #  )  r)  b)  H)  4)  )  (  (  (  (  (  (  )      #  $  %  %  &  d&  &  $      ('  '  '  '  '  (  ((  6(  '  H(  Z(  t(  (  '  '   '  '  '  l'  ^'  R'  F'  >'  >(  0'  '  )      GetConsoleMode  SetConsoleMode  ;GetStdHandle  KERNEL32.dll   ??$?6DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z ?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A  J?cin@std@@3V?$basic_istream@DU?$char_traits@D@std@@@1@A  ??$getline@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z  _??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ  {??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ  ?endl@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@1@AAV21@@Z  MSVCP90.dll _amsg_exit   __getmainargs ,_cexit  |_exit f _XcptFilter exit   __initenv _initterm _initterm_e <_configthreadlocale  __setusermatherr  _adjust_fdiv   __p__commode   __p__fmode  j_encode_pointer  __set_app_type  K_crt_debugger_hook  C ?terminate@@YAXXZ MSVCR90.dll _unlock  __dllonexit v_lock _onexit `_decode_pointer s_except_handler4_common _invoke_watson  ?_controlfp_s  InterlockedExchange !Sleep InterlockedCompareExchange  -TerminateProcess  GetCurrentProcess >UnhandledExceptionFilter  SetUnhandledExceptionFilter IsDebuggerPresent TQueryPerformanceCounter fGetTickCount  GetCurrentThreadId  GetCurrentProcessId OGetSystemTimeAsFileTime s __CxxFrameHandler3                                                    N@D   $!@                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            8                   P                   h                	                   	     @  (        C  V        (4   V S _ V E R S I O N _ I N F O                                                  S t r i n g F i l e I n f o   b   0 4 0 9 0 4 b 0    Q  F i l e D e s c r i p t i o n     R e a d s   f r o m   s t d i n   w i t h o u t   l e a k i n g   i n f o   t o   t h e   t e r m i n a l   a n d   o u t p u t s   b a c k   t o   s t d o u t     6   F i l e V e r s i o n     1 ,   0 ,   0 ,   0     8   I n t e r n a l N a m e   h i d d e n i n p u t   P   L e g a l C o p y r i g h t   J o r d i   B o g g i a n o   -   2 0 1 2   H   O r i g i n a l F i l e n a m e   h i d d e n i n p u t . e x e   :   P r o d u c t N a m e     H i d d e n   I n p u t     :   P r o d u c t V e r s i o n   1 ,   0 ,   0 ,   0     D    V a r F i l e I n f o     $    T r a n s l a t i o n     	<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
      </requestedPrivileges>
    </security>
  </trustInfo>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
    </dependentAssembly>
  </dependency>
</assembly>PAPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDING   @  00!0/080F0L0T0^0d0n0{000000000000001#1-1@1J1O1T1v1{1111111111111112"2*23292A2M2_2j2p222222222222333%303N3T3Z3`3f3l3s3z333333333333333334444%4;4B444444444445!5^5c5555H6M6_6}666 777*7w7|77777888=8E8P8V8\8b8h8n8t8z88889      $   0001 1t1x12 2@2\2`2h2t2 0     0                                                                                                                                                  <?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Output;

/**
 * ConsoleOutputInterface is the interface implemented by ConsoleOutput class.
 * This adds information about stderr and section output stream.
 *
 * @author Dariusz Górecki <darek.krk@gmail.com>
 *
 * @method ConsoleSectionOutput section() Creates a new output section
 */
interface ConsoleOutputInterface extends OutputInterface
{
    /**
     * Gets the OutputInterface for errors.
     *
     * @return OutputInterface
     */
    public function getErrorOutput();

    public function setErrorOutput(OutputInterface $error);
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Output;

/**
 * @author Jean-François Simon <contact@jfsimon.fr>
 */
class BufferedOutput extends Output
{
    private $buffer = '';

    /**
     * Empties buffer and returns its content.
     *
     * @return string
     */
    public function fetch()
    {
        $content = $this->buffer;
        $this->buffer = '';

        return $content;
    }

    /**
     * {@inheritdoc}
     */
    protected function doWrite($message, $newline)
    {
        $this->buffer .= $message;

        if ($newline) {
            $this->buffer .= PHP_EOL;
        }
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Output;

use Symfony\Component\Console\Formatter\OutputFormatterInterface;

/**
 * OutputInterface is the interface implemented by all Output classes.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
interface OutputInterface
{
    const VERBOSITY_QUIET = 16;
    const VERBOSITY_NORMAL = 32;
    const VERBOSITY_VERBOSE = 64;
    const VERBOSITY_VERY_VERBOSE = 128;
    const VERBOSITY_DEBUG = 256;

    const OUTPUT_NORMAL = 1;
    const OUTPUT_RAW = 2;
    const OUTPUT_PLAIN = 4;

    /**
     * Writes a message to the output.
     *
     * @param string|iterable $messages The message as an iterable of strings or a single string
     * @param bool            $newline  Whether to add a newline
     * @param int             $options  A bitmask of options (one of the OUTPUT or VERBOSITY constants), 0 is considered the same as self::OUTPUT_NORMAL | self::VERBOSITY_NORMAL
     */
    public function write($messages, $newline = false, $options = 0);

    /**
     * Writes a message to the output and adds a newline at the end.
     *
     * @param string|iterable $messages The message as an iterable of strings or a single string
     * @param int             $options  A bitmask of options (one of the OUTPUT or VERBOSITY constants), 0 is considered the same as self::OUTPUT_NORMAL | self::VERBOSITY_NORMAL
     */
    public function writeln($messages, $options = 0);

    /**
     * Sets the verbosity of the output.
     *
     * @param int $level The level of verbosity (one of the VERBOSITY constants)
     */
    public function setVerbosity($level);

    /**
     * Gets the current verbosity of the output.
     *
     * @return int The current level of verbosity (one of the VERBOSITY constants)
     */
    public function getVerbosity();

    /**
     * Returns whether verbosity is quiet (-q).
     *
     * @return bool true if verbosity is set to VERBOSITY_QUIET, false otherwise
     */
    public function isQuiet();

    /**
     * Returns whether verbosity is verbose (-v).
     *
     * @return bool true if verbosity is set to VERBOSITY_VERBOSE, false otherwise
     */
    public function isVerbose();

    /**
     * Returns whether verbosity is very verbose (-vv).
     *
     * @return bool true if verbosity is set to VERBOSITY_VERY_VERBOSE, false otherwise
     */
    public function isVeryVerbose();

    /**
     * Returns whether verbosity is debug (-vvv).
     *
     * @return bool true if verbosity is set to VERBOSITY_DEBUG, false otherwise
     */
    public function isDebug();

    /**
     * Sets the decorated flag.
     *
     * @param bool $decorated Whether to decorate the messages
     */
    public function setDecorated($decorated);

    /**
     * Gets the decorated flag.
     *
     * @return bool true if the output will decorate messages, false otherwise
     */
    public function isDecorated();

    public function setFormatter(OutputFormatterInterface $formatter);

    /**
     * Returns current output formatter instance.
     *
     * @return OutputFormatterInterface
     */
    public function getFormatter();
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Output;

use Symfony\Component\Console\Formatter\OutputFormatter;
use Symfony\Component\Console\Formatter\OutputFormatterInterface;

/**
 * Base class for output classes.
 *
 * There are five levels of verbosity:
 *
 *  * normal: no option passed (normal output)
 *  * verbose: -v (more output)
 *  * very verbose: -vv (highly extended output)
 *  * debug: -vvv (all debug output)
 *  * quiet: -q (no output)
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
abstract class Output implements OutputInterface
{
    private $verbosity;
    private $formatter;

    /**
     * @param int                           $verbosity The verbosity level (one of the VERBOSITY constants in OutputInterface)
     * @param bool                          $decorated Whether to decorate messages
     * @param OutputFormatterInterface|null $formatter Output formatter instance (null to use default OutputFormatter)
     */
    public function __construct(?int $verbosity = self::VERBOSITY_NORMAL, bool $decorated = false, OutputFormatterInterface $formatter = null)
    {
        $this->verbosity = null === $verbosity ? self::VERBOSITY_NORMAL : $verbosity;
        $this->formatter = $formatter ?: new OutputFormatter();
        $this->formatter->setDecorated($decorated);
    }

    /**
     * {@inheritdoc}
     */
    public function setFormatter(OutputFormatterInterface $formatter)
    {
        $this->formatter = $formatter;
    }

    /**
     * {@inheritdoc}
     */
    public function getFormatter()
    {
        return $this->formatter;
    }

    /**
     * {@inheritdoc}
     */
    public function setDecorated($decorated)
    {
        $this->formatter->setDecorated($decorated);
    }

    /**
     * {@inheritdoc}
     */
    public function isDecorated()
    {
        return $this->formatter->isDecorated();
    }

    /**
     * {@inheritdoc}
     */
    public function setVerbosity($level)
    {
        $this->verbosity = (int) $level;
    }

    /**
     * {@inheritdoc}
     */
    public function getVerbosity()
    {
        return $this->verbosity;
    }

    /**
     * {@inheritdoc}
     */
    public function isQuiet()
    {
        return self::VERBOSITY_QUIET === $this->verbosity;
    }

    /**
     * {@inheritdoc}
     */
    public function isVerbose()
    {
        return self::VERBOSITY_VERBOSE <= $this->verbosity;
    }

    /**
     * {@inheritdoc}
     */
    public function isVeryVerbose()
    {
        return self::VERBOSITY_VERY_VERBOSE <= $this->verbosity;
    }

    /**
     * {@inheritdoc}
     */
    public function isDebug()
    {
        return self::VERBOSITY_DEBUG <= $this->verbosity;
    }

    /**
     * {@inheritdoc}
     */
    public function writeln($messages, $options = self::OUTPUT_NORMAL)
    {
        $this->write($messages, true, $options);
    }

    /**
     * {@inheritdoc}
     */
    public function write($messages, $newline = false, $options = self::OUTPUT_NORMAL)
    {
        if (!is_iterable($messages)) {
            $messages = [$messages];
        }

        $types = self::OUTPUT_NORMAL | self::OUTPUT_RAW | self::OUTPUT_PLAIN;
        $type = $types & $options ?: self::OUTPUT_NORMAL;

        $verbosities = self::VERBOSITY_QUIET | self::VERBOSITY_NORMAL | self::VERBOSITY_VERBOSE | self::VERBOSITY_VERY_VERBOSE | self::VERBOSITY_DEBUG;
        $verbosity = $verbosities & $options ?: self::VERBOSITY_NORMAL;

        if ($verbosity > $this->getVerbosity()) {
            return;
        }

        foreach ($messages as $message) {
            switch ($type) {
                case OutputInterface::OUTPUT_NORMAL:
                    $message = $this->formatter->format($message);
                    break;
                case OutputInterface::OUTPUT_RAW:
                    break;
                case OutputInterface::OUTPUT_PLAIN:
                    $message = strip_tags($this->formatter->format($message));
                    break;
            }

            $this->doWrite($message, $newline);
        }
    }

    /**
     * Writes a message to the output.
     *
     * @param string $message A message to write to the output
     * @param bool   $newline Whether to add a newline or not
     */
    abstract protected function doWrite($message, $newline);
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Output;

use Symfony\Component\Console\Formatter\OutputFormatterInterface;
use Symfony\Component\Console\Helper\Helper;
use Symfony\Component\Console\Terminal;

/**
 * @author Pierre du Plessis <pdples@gmail.com>
 * @author Gabriel Ostrolucký <gabriel.ostrolucky@gmail.com>
 */
class ConsoleSectionOutput extends StreamOutput
{
    private $content = [];
    private $lines = 0;
    private $sections;
    private $terminal;

    /**
     * @param resource               $stream
     * @param ConsoleSectionOutput[] $sections
     */
    public function __construct($stream, array &$sections, int $verbosity, bool $decorated, OutputFormatterInterface $formatter)
    {
        parent::__construct($stream, $verbosity, $decorated, $formatter);
        array_unshift($sections, $this);
        $this->sections = &$sections;
        $this->terminal = new Terminal();
    }

    /**
     * Clears previous output for this section.
     *
     * @param int $lines Number of lines to clear. If null, then the entire output of this section is cleared
     */
    public function clear(int $lines = null)
    {
        if (empty($this->content) || !$this->isDecorated()) {
            return;
        }

        if ($lines) {
            array_splice($this->content, -($lines * 2)); // Multiply lines by 2 to cater for each new line added between content
        } else {
            $lines = $this->lines;
            $this->content = [];
        }

        $this->lines -= $lines;

        parent::doWrite($this->popStreamContentUntilCurrentSection($lines), false);
    }

    /**
     * Overwrites the previous output with a new message.
     *
     * @param array|string $message
     */
    public function overwrite($message)
    {
        $this->clear();
        $this->writeln($message);
    }

    public function getContent(): string
    {
        return implode('', $this->content);
    }

    /**
     * @internal
     */
    public function addContent(string $input)
    {
        foreach (explode(PHP_EOL, $input) as $lineContent) {
            $this->lines += ceil($this->getDisplayLength($lineContent) / $this->terminal->getWidth()) ?: 1;
            $this->content[] = $lineContent;
            $this->content[] = PHP_EOL;
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function doWrite($message, $newline)
    {
        if (!$this->isDecorated()) {
            parent::doWrite($message, $newline);

            return;
        }

        $erasedContent = $this->popStreamContentUntilCurrentSection();

        $this->addContent($message);

        parent::doWrite($message, true);
        parent::doWrite($erasedContent, false);
    }

    /**
     * At initial stage, cursor is at the end of stream output. This method makes cursor crawl upwards until it hits
     * current section. Then it erases content it crawled through. Optionally, it erases part of current section too.
     */
    private function popStreamContentUntilCurrentSection(int $numberOfLinesToClearFromCurrentSection = 0): string
    {
        $numberOfLinesToClear = $numberOfLinesToClearFromCurrentSection;
        $erasedContent = [];

        foreach ($this->sections as $section) {
            if ($section === $this) {
                break;
            }

            $numberOfLinesToClear += $section->lines;
            $erasedContent[] = $section->getContent();
        }

        if ($numberOfLinesToClear > 0) {
            // move cursor up n lines
            parent::doWrite(sprintf("\x1b[%dA", $numberOfLinesToClear), false);
            // erase to end of screen
            parent::doWrite("\x1b[0J", false);
        }

        return implode('', array_reverse($erasedContent));
    }

    private function getDisplayLength(string $text): string
    {
        return Helper::strlenWithoutDecoration($this->getFormatter(), str_replace("\t", '        ', $text));
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Output;

use Symfony\Component\Console\Formatter\OutputFormatterInterface;

/**
 * ConsoleOutput is the default class for all CLI output. It uses STDOUT and STDERR.
 *
 * This class is a convenient wrapper around `StreamOutput` for both STDOUT and STDERR.
 *
 *     $output = new ConsoleOutput();
 *
 * This is equivalent to:
 *
 *     $output = new StreamOutput(fopen('php://stdout', 'w'));
 *     $stdErr = new StreamOutput(fopen('php://stderr', 'w'));
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class ConsoleOutput extends StreamOutput implements ConsoleOutputInterface
{
    private $stderr;
    private $consoleSectionOutputs = [];

    /**
     * @param int                           $verbosity The verbosity level (one of the VERBOSITY constants in OutputInterface)
     * @param bool|null                     $decorated Whether to decorate messages (null for auto-guessing)
     * @param OutputFormatterInterface|null $formatter Output formatter instance (null to use default OutputFormatter)
     */
    public function __construct(int $verbosity = self::VERBOSITY_NORMAL, bool $decorated = null, OutputFormatterInterface $formatter = null)
    {
        parent::__construct($this->openOutputStream(), $verbosity, $decorated, $formatter);

        $actualDecorated = $this->isDecorated();
        $this->stderr = new StreamOutput($this->openErrorStream(), $verbosity, $decorated, $this->getFormatter());

        if (null === $decorated) {
            $this->setDecorated($actualDecorated && $this->stderr->isDecorated());
        }
    }

    /**
     * Creates a new output section.
     */
    public function section(): ConsoleSectionOutput
    {
        return new ConsoleSectionOutput($this->getStream(), $this->consoleSectionOutputs, $this->getVerbosity(), $this->isDecorated(), $this->getFormatter());
    }

    /**
     * {@inheritdoc}
     */
    public function setDecorated($decorated)
    {
        parent::setDecorated($decorated);
        $this->stderr->setDecorated($decorated);
    }

    /**
     * {@inheritdoc}
     */
    public function setFormatter(OutputFormatterInterface $formatter)
    {
        parent::setFormatter($formatter);
        $this->stderr->setFormatter($formatter);
    }

    /**
     * {@inheritdoc}
     */
    public function setVerbosity($level)
    {
        parent::setVerbosity($level);
        $this->stderr->setVerbosity($level);
    }

    /**
     * {@inheritdoc}
     */
    public function getErrorOutput()
    {
        return $this->stderr;
    }

    /**
     * {@inheritdoc}
     */
    public function setErrorOutput(OutputInterface $error)
    {
        $this->stderr = $error;
    }

    /**
     * Returns true if current environment supports writing console output to
     * STDOUT.
     *
     * @return bool
     */
    protected function hasStdoutSupport()
    {
        return false === $this->isRunningOS400();
    }

    /**
     * Returns true if current environment supports writing console output to
     * STDERR.
     *
     * @return bool
     */
    protected function hasStderrSupport()
    {
        return false === $this->isRunningOS400();
    }

    /**
     * Checks if current executing environment is IBM iSeries (OS400), which
     * doesn't properly convert character-encodings between ASCII to EBCDIC.
     */
    private function isRunningOS400(): bool
    {
        $checks = [
            \function_exists('php_uname') ? php_uname('s') : '',
            getenv('OSTYPE'),
            PHP_OS,
        ];

        return false !== stripos(implode(';', $checks), 'OS400');
    }

    /**
     * @return resource
     */
    private function openOutputStream()
    {
        if (!$this->hasStdoutSupport()) {
            return fopen('php://output', 'w');
        }

        return @fopen('php://stdout', 'w') ?: fopen('php://output', 'w');
    }

    /**
     * @return resource
     */
    private function openErrorStream()
    {
        return fopen($this->hasStderrSupport() ? 'php://stderr' : 'php://output', 'w');
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Output;

use Symfony\Component\Console\Formatter\OutputFormatter;
use Symfony\Component\Console\Formatter\OutputFormatterInterface;

/**
 * NullOutput suppresses all output.
 *
 *     $output = new NullOutput();
 *
 * @author Fabien Potencier <fabien@symfony.com>
 * @author Tobias Schultze <http://tobion.de>
 */
class NullOutput implements OutputInterface
{
    /**
     * {@inheritdoc}
     */
    public function setFormatter(OutputFormatterInterface $formatter)
    {
        // do nothing
    }

    /**
     * {@inheritdoc}
     */
    public function getFormatter()
    {
        // to comply with the interface we must return a OutputFormatterInterface
        return new OutputFormatter();
    }

    /**
     * {@inheritdoc}
     */
    public function setDecorated($decorated)
    {
        // do nothing
    }

    /**
     * {@inheritdoc}
     */
    public function isDecorated()
    {
        return false;
    }

    /**
     * {@inheritdoc}
     */
    public function setVerbosity($level)
    {
        // do nothing
    }

    /**
     * {@inheritdoc}
     */
    public function getVerbosity()
    {
        return self::VERBOSITY_QUIET;
    }

    /**
     * {@inheritdoc}
     */
    public function isQuiet()
    {
        return true;
    }

    /**
     * {@inheritdoc}
     */
    public function isVerbose()
    {
        return false;
    }

    /**
     * {@inheritdoc}
     */
    public function isVeryVerbose()
    {
        return false;
    }

    /**
     * {@inheritdoc}
     */
    public function isDebug()
    {
        return false;
    }

    /**
     * {@inheritdoc}
     */
    public function writeln($messages, $options = self::OUTPUT_NORMAL)
    {
        // do nothing
    }

    /**
     * {@inheritdoc}
     */
    public function write($messages, $newline = false, $options = self::OUTPUT_NORMAL)
    {
        // do nothing
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Output;

use Symfony\Component\Console\Exception\InvalidArgumentException;
use Symfony\Component\Console\Formatter\OutputFormatterInterface;

/**
 * StreamOutput writes the output to a given stream.
 *
 * Usage:
 *
 *     $output = new StreamOutput(fopen('php://stdout', 'w'));
 *
 * As `StreamOutput` can use any stream, you can also use a file:
 *
 *     $output = new StreamOutput(fopen('/path/to/output.log', 'a', false));
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class StreamOutput extends Output
{
    private $stream;

    /**
     * @param resource                      $stream    A stream resource
     * @param int                           $verbosity The verbosity level (one of the VERBOSITY constants in OutputInterface)
     * @param bool|null                     $decorated Whether to decorate messages (null for auto-guessing)
     * @param OutputFormatterInterface|null $formatter Output formatter instance (null to use default OutputFormatter)
     *
     * @throws InvalidArgumentException When first argument is not a real stream
     */
    public function __construct($stream, int $verbosity = self::VERBOSITY_NORMAL, bool $decorated = null, OutputFormatterInterface $formatter = null)
    {
        if (!\is_resource($stream) || 'stream' !== get_resource_type($stream)) {
            throw new InvalidArgumentException('The StreamOutput class needs a stream as its first argument.');
        }

        $this->stream = $stream;

        if (null === $decorated) {
            $decorated = $this->hasColorSupport();
        }

        parent::__construct($verbosity, $decorated, $formatter);
    }

    /**
     * Gets the stream attached to this StreamOutput instance.
     *
     * @return resource A stream resource
     */
    public function getStream()
    {
        return $this->stream;
    }

    /**
     * {@inheritdoc}
     */
    protected function doWrite($message, $newline)
    {
        if ($newline) {
            $message .= PHP_EOL;
        }

        @fwrite($this->stream, $message);

        fflush($this->stream);
    }

    /**
     * Returns true if the stream supports colorization.
     *
     * Colorization is disabled if not supported by the stream:
     *
     * This is tricky on Windows, because Cygwin, Msys2 etc emulate pseudo
     * terminals via named pipes, so we can only check the environment.
     *
     * Reference: Composer\XdebugHandler\Process::supportsColor
     * https://github.com/composer/xdebug-handler
     *
     * @return bool true if the stream supports colorization, false otherwise
     */
    protected function hasColorSupport()
    {
        // Follow https://no-color.org/
        if (isset($_SERVER['NO_COLOR']) || false !== getenv('NO_COLOR')) {
            return false;
        }

        if ('Hyper' === getenv('TERM_PROGRAM')) {
            return true;
        }

        if (\DIRECTORY_SEPARATOR === '\\') {
            return (\function_exists('sapi_windows_vt100_support')
                && @sapi_windows_vt100_support($this->stream))
                || false !== getenv('ANSICON')
                || 'ON' === getenv('ConEmuANSI')
                || 'xterm' === getenv('TERM');
        }

        if (\function_exists('stream_isatty')) {
            return @stream_isatty($this->stream);
        }

        if (\function_exists('posix_isatty')) {
            return @posix_isatty($this->stream);
        }

        $stat = @fstat($this->stream);
        // Check if formatted mode is S_IFCHR
        return $stat ? 0020000 === ($stat['mode'] & 0170000) : false;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Style;

use Symfony\Component\Console\Formatter\OutputFormatterInterface;
use Symfony\Component\Console\Helper\ProgressBar;
use Symfony\Component\Console\Output\ConsoleOutputInterface;
use Symfony\Component\Console\Output\OutputInterface;

/**
 * Decorates output to add console style guide helpers.
 *
 * @author Kevin Bond <kevinbond@gmail.com>
 */
abstract class OutputStyle implements OutputInterface, StyleInterface
{
    private $output;

    public function __construct(OutputInterface $output)
    {
        $this->output = $output;
    }

    /**
     * {@inheritdoc}
     */
    public function newLine($count = 1)
    {
        $this->output->write(str_repeat(PHP_EOL, $count));
    }

    /**
     * @param int $max
     *
     * @return ProgressBar
     */
    public function createProgressBar($max = 0)
    {
        return new ProgressBar($this->output, $max);
    }

    /**
     * {@inheritdoc}
     */
    public function write($messages, $newline = false, $type = self::OUTPUT_NORMAL)
    {
        $this->output->write($messages, $newline, $type);
    }

    /**
     * {@inheritdoc}
     */
    public function writeln($messages, $type = self::OUTPUT_NORMAL)
    {
        $this->output->writeln($messages, $type);
    }

    /**
     * {@inheritdoc}
     */
    public function setVerbosity($level)
    {
        $this->output->setVerbosity($level);
    }

    /**
     * {@inheritdoc}
     */
    public function getVerbosity()
    {
        return $this->output->getVerbosity();
    }

    /**
     * {@inheritdoc}
     */
    public function setDecorated($decorated)
    {
        $this->output->setDecorated($decorated);
    }

    /**
     * {@inheritdoc}
     */
    public function isDecorated()
    {
        return $this->output->isDecorated();
    }

    /**
     * {@inheritdoc}
     */
    public function setFormatter(OutputFormatterInterface $formatter)
    {
        $this->output->setFormatter($formatter);
    }

    /**
     * {@inheritdoc}
     */
    public function getFormatter()
    {
        return $this->output->getFormatter();
    }

    /**
     * {@inheritdoc}
     */
    public function isQuiet()
    {
        return $this->output->isQuiet();
    }

    /**
     * {@inheritdoc}
     */
    public function isVerbose()
    {
        return $this->output->isVerbose();
    }

    /**
     * {@inheritdoc}
     */
    public function isVeryVerbose()
    {
        return $this->output->isVeryVerbose();
    }

    /**
     * {@inheritdoc}
     */
    public function isDebug()
    {
        return $this->output->isDebug();
    }

    protected function getErrorOutput()
    {
        if (!$this->output instanceof ConsoleOutputInterface) {
            return $this->output;
        }

        return $this->output->getErrorOutput();
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Style;

use Symfony\Component\Console\Exception\InvalidArgumentException;
use Symfony\Component\Console\Exception\RuntimeException;
use Symfony\Component\Console\Formatter\OutputFormatter;
use Symfony\Component\Console\Helper\Helper;
use Symfony\Component\Console\Helper\ProgressBar;
use Symfony\Component\Console\Helper\SymfonyQuestionHelper;
use Symfony\Component\Console\Helper\Table;
use Symfony\Component\Console\Helper\TableCell;
use Symfony\Component\Console\Helper\TableSeparator;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\BufferedOutput;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Question\ChoiceQuestion;
use Symfony\Component\Console\Question\ConfirmationQuestion;
use Symfony\Component\Console\Question\Question;
use Symfony\Component\Console\Terminal;

/**
 * Output decorator helpers for the Symfony Style Guide.
 *
 * @author Kevin Bond <kevinbond@gmail.com>
 */
class SymfonyStyle extends OutputStyle
{
    const MAX_LINE_LENGTH = 120;

    private $input;
    private $questionHelper;
    private $progressBar;
    private $lineLength;
    private $bufferedOutput;

    public function __construct(InputInterface $input, OutputInterface $output)
    {
        $this->input = $input;
        $this->bufferedOutput = new BufferedOutput($output->getVerbosity(), false, clone $output->getFormatter());
        // Windows cmd wraps lines as soon as the terminal width is reached, whether there are following chars or not.
        $width = (new Terminal())->getWidth() ?: self::MAX_LINE_LENGTH;
        $this->lineLength = min($width - (int) (\DIRECTORY_SEPARATOR === '\\'), self::MAX_LINE_LENGTH);

        parent::__construct($output);
    }

    /**
     * Formats a message as a block of text.
     *
     * @param string|array $messages The message to write in the block
     * @param string|null  $type     The block type (added in [] on first line)
     * @param string|null  $style    The style to apply to the whole block
     * @param string       $prefix   The prefix for the block
     * @param bool         $padding  Whether to add vertical padding
     * @param bool         $escape   Whether to escape the message
     */
    public function block($messages, $type = null, $style = null, $prefix = ' ', $padding = false, $escape = true)
    {
        $messages = \is_array($messages) ? array_values($messages) : [$messages];

        $this->autoPrependBlock();
        $this->writeln($this->createBlock($messages, $type, $style, $prefix, $padding, $escape));
        $this->newLine();
    }

    /**
     * {@inheritdoc}
     */
    public function title($message)
    {
        $this->autoPrependBlock();
        $this->writeln([
            sprintf('<comment>%s</>', OutputFormatter::escapeTrailingBackslash($message)),
            sprintf('<comment>%s</>', str_repeat('=', Helper::strlenWithoutDecoration($this->getFormatter(), $message))),
        ]);
        $this->newLine();
    }

    /**
     * {@inheritdoc}
     */
    public function section($message)
    {
        $this->autoPrependBlock();
        $this->writeln([
            sprintf('<comment>%s</>', OutputFormatter::escapeTrailingBackslash($message)),
            sprintf('<comment>%s</>', str_repeat('-', Helper::strlenWithoutDecoration($this->getFormatter(), $message))),
        ]);
        $this->newLine();
    }

    /**
     * {@inheritdoc}
     */
    public function listing(array $elements)
    {
        $this->autoPrependText();
        $elements = array_map(function ($element) {
            return sprintf(' * %s', $element);
        }, $elements);

        $this->writeln($elements);
        $this->newLine();
    }

    /**
     * {@inheritdoc}
     */
    public function text($message)
    {
        $this->autoPrependText();

        $messages = \is_array($message) ? array_values($message) : [$message];
        foreach ($messages as $message) {
            $this->writeln(sprintf(' %s', $message));
        }
    }

    /**
     * Formats a command comment.
     *
     * @param string|array $message
     */
    public function comment($message)
    {
        $this->block($message, null, null, '<fg=default;bg=default> // </>', false, false);
    }

    /**
     * {@inheritdoc}
     */
    public function success($message)
    {
        $this->block($message, 'OK', 'fg=black;bg=green', ' ', true);
    }

    /**
     * {@inheritdoc}
     */
    public function error($message)
    {
        $this->block($message, 'ERROR', 'fg=white;bg=red', ' ', true);
    }

    /**
     * {@inheritdoc}
     */
    public function warning($message)
    {
        $this->block($message, 'WARNING', 'fg=black;bg=yellow', ' ', true);
    }

    /**
     * {@inheritdoc}
     */
    public function note($message)
    {
        $this->block($message, 'NOTE', 'fg=yellow', ' ! ');
    }

    /**
     * {@inheritdoc}
     */
    public function caution($message)
    {
        $this->block($message, 'CAUTION', 'fg=white;bg=red', ' ! ', true);
    }

    /**
     * {@inheritdoc}
     */
    public function table(array $headers, array $rows)
    {
        $style = clone Table::getStyleDefinition('symfony-style-guide');
        $style->setCellHeaderFormat('<info>%s</info>');

        $table = new Table($this);
        $table->setHeaders($headers);
        $table->setRows($rows);
        $table->setStyle($style);

        $table->render();
        $this->newLine();
    }

    /**
     * Formats a horizontal table.
     */
    public function horizontalTable(array $headers, array $rows)
    {
        $style = clone Table::getStyleDefinition('symfony-style-guide');
        $style->setCellHeaderFormat('<info>%s</info>');

        $table = new Table($this);
        $table->setHeaders($headers);
        $table->setRows($rows);
        $table->setStyle($style);
        $table->setHorizontal(true);

        $table->render();
        $this->newLine();
    }

    /**
     * Formats a list of key/value horizontally.
     *
     * Each row can be one of:
     * * 'A title'
     * * ['key' => 'value']
     * * new TableSeparator()
     *
     * @param string|array|TableSeparator ...$list
     */
    public function definitionList(...$list)
    {
        $style = clone Table::getStyleDefinition('symfony-style-guide');
        $style->setCellHeaderFormat('<info>%s</info>');

        $table = new Table($this);
        $headers = [];
        $row = [];
        foreach ($list as $value) {
            if ($value instanceof TableSeparator) {
                $headers[] = $value;
                $row[] = $value;
                continue;
            }
            if (\is_string($value)) {
                $headers[] = new TableCell($value, ['colspan' => 2]);
                $row[] = null;
                continue;
            }
            if (!\is_array($value)) {
                throw new InvalidArgumentException('Value should be an array, string, or an instance of TableSeparator.');
            }
            $headers[] = key($value);
            $row[] = current($value);
        }

        $table->setHeaders($headers);
        $table->setRows([$row]);
        $table->setHorizontal();
        $table->setStyle($style);

        $table->render();
        $this->newLine();
    }

    /**
     * {@inheritdoc}
     */
    public function ask($question, $default = null, $validator = null)
    {
        $question = new Question($question, $default);
        $question->setValidator($validator);

        return $this->askQuestion($question);
    }

    /**
     * {@inheritdoc}
     */
    public function askHidden($question, $validator = null)
    {
        $question = new Question($question);

        $question->setHidden(true);
        $question->setValidator($validator);

        return $this->askQuestion($question);
    }

    /**
     * {@inheritdoc}
     */
    public function confirm($question, $default = true)
    {
        return $this->askQuestion(new ConfirmationQuestion($question, $default));
    }

    /**
     * {@inheritdoc}
     */
    public function choice($question, array $choices, $default = null)
    {
        if (null !== $default) {
            $values = array_flip($choices);
            $default = isset($values[$default]) ? $values[$default] : $default;
        }

        return $this->askQuestion(new ChoiceQuestion($question, $choices, $default));
    }

    /**
     * {@inheritdoc}
     */
    public function progressStart($max = 0)
    {
        $this->progressBar = $this->createProgressBar($max);
        $this->progressBar->start();
    }

    /**
     * {@inheritdoc}
     */
    public function progressAdvance($step = 1)
    {
        $this->getProgressBar()->advance($step);
    }

    /**
     * {@inheritdoc}
     */
    public function progressFinish()
    {
        $this->getProgressBar()->finish();
        $this->newLine(2);
        $this->progressBar = null;
    }

    /**
     * {@inheritdoc}
     */
    public function createProgressBar($max = 0)
    {
        $progressBar = parent::createProgressBar($max);

        if ('\\' !== \DIRECTORY_SEPARATOR || 'Hyper' === getenv('TERM_PROGRAM')) {
            $progressBar->setEmptyBarCharacter('░'); // light shade character \u2591
            $progressBar->setProgressCharacter('');
            $progressBar->setBarCharacter('▓'); // dark shade character \u2593
        }

        return $progressBar;
    }

    /**
     * @return mixed
     */
    public function askQuestion(Question $question)
    {
        if ($this->input->isInteractive()) {
            $this->autoPrependBlock();
        }

        if (!$this->questionHelper) {
            $this->questionHelper = new SymfonyQuestionHelper();
        }

        $answer = $this->questionHelper->ask($this->input, $this, $question);

        if ($this->input->isInteractive()) {
            $this->newLine();
            $this->bufferedOutput->write("\n");
        }

        return $answer;
    }

    /**
     * {@inheritdoc}
     */
    public function writeln($messages, $type = self::OUTPUT_NORMAL)
    {
        if (!is_iterable($messages)) {
            $messages = [$messages];
        }

        foreach ($messages as $message) {
            parent::writeln($message, $type);
            $this->writeBuffer($message, true, $type);
        }
    }

    /**
     * {@inheritdoc}
     */
    public function write($messages, $newline = false, $type = self::OUTPUT_NORMAL)
    {
        if (!is_iterable($messages)) {
            $messages = [$messages];
        }

        foreach ($messages as $message) {
            parent::write($message, $newline, $type);
            $this->writeBuffer($message, $newline, $type);
        }
    }

    /**
     * {@inheritdoc}
     */
    public function newLine($count = 1)
    {
        parent::newLine($count);
        $this->bufferedOutput->write(str_repeat("\n", $count));
    }

    /**
     * Returns a new instance which makes use of stderr if available.
     *
     * @return self
     */
    public function getErrorStyle()
    {
        return new self($this->input, $this->getErrorOutput());
    }

    private function getProgressBar(): ProgressBar
    {
        if (!$this->progressBar) {
            throw new RuntimeException('The ProgressBar is not started.');
        }

        return $this->progressBar;
    }

    private function autoPrependBlock(): void
    {
        $chars = substr(str_replace(PHP_EOL, "\n", $this->bufferedOutput->fetch()), -2);

        if (!isset($chars[0])) {
            $this->newLine(); //empty history, so we should start with a new line.

            return;
        }
        //Prepend new line for each non LF chars (This means no blank line was output before)
        $this->newLine(2 - substr_count($chars, "\n"));
    }

    private function autoPrependText(): void
    {
        $fetched = $this->bufferedOutput->fetch();
        //Prepend new line if last char isn't EOL:
        if ("\n" !== substr($fetched, -1)) {
            $this->newLine();
        }
    }

    private function writeBuffer(string $message, bool $newLine, int $type): void
    {
        // We need to know if the two last chars are PHP_EOL
        // Preserve the last 4 chars inserted (PHP_EOL on windows is two chars) in the history buffer
        $this->bufferedOutput->write(substr($message, -4), $newLine, $type);
    }

    private function createBlock(iterable $messages, string $type = null, string $style = null, string $prefix = ' ', bool $padding = false, bool $escape = false): array
    {
        $indentLength = 0;
        $prefixLength = Helper::strlenWithoutDecoration($this->getFormatter(), $prefix);
        $lines = [];

        if (null !== $type) {
            $type = sprintf('[%s] ', $type);
            $indentLength = \strlen($type);
            $lineIndentation = str_repeat(' ', $indentLength);
        }

        // wrap and add newlines for each element
        foreach ($messages as $key => $message) {
            if ($escape) {
                $message = OutputFormatter::escape($message);
            }

            $lines = array_merge($lines, explode(PHP_EOL, wordwrap($message, $this->lineLength - $prefixLength - $indentLength, PHP_EOL, true)));

            if (\count($messages) > 1 && $key < \count($messages) - 1) {
                $lines[] = '';
            }
        }

        $firstLineIndex = 0;
        if ($padding && $this->isDecorated()) {
            $firstLineIndex = 1;
            array_unshift($lines, '');
            $lines[] = '';
        }

        foreach ($lines as $i => &$line) {
            if (null !== $type) {
                $line = $firstLineIndex === $i ? $type.$line : $lineIndentation.$line;
            }

            $line = $prefix.$line;
            $line .= str_repeat(' ', $this->lineLength - Helper::strlenWithoutDecoration($this->getFormatter(), $line));

            if ($style) {
                $line = sprintf('<%s>%s</>', $style, $line);
            }
        }

        return $lines;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Style;

/**
 * Output style helpers.
 *
 * @author Kevin Bond <kevinbond@gmail.com>
 */
interface StyleInterface
{
    /**
     * Formats a command title.
     *
     * @param string $message
     */
    public function title($message);

    /**
     * Formats a section title.
     *
     * @param string $message
     */
    public function section($message);

    /**
     * Formats a list.
     */
    public function listing(array $elements);

    /**
     * Formats informational text.
     *
     * @param string|array $message
     */
    public function text($message);

    /**
     * Formats a success result bar.
     *
     * @param string|array $message
     */
    public function success($message);

    /**
     * Formats an error result bar.
     *
     * @param string|array $message
     */
    public function error($message);

    /**
     * Formats an warning result bar.
     *
     * @param string|array $message
     */
    public function warning($message);

    /**
     * Formats a note admonition.
     *
     * @param string|array $message
     */
    public function note($message);

    /**
     * Formats a caution admonition.
     *
     * @param string|array $message
     */
    public function caution($message);

    /**
     * Formats a table.
     */
    public function table(array $headers, array $rows);

    /**
     * Asks a question.
     *
     * @param string        $question
     * @param string|null   $default
     * @param callable|null $validator
     *
     * @return mixed
     */
    public function ask($question, $default = null, $validator = null);

    /**
     * Asks a question with the user input hidden.
     *
     * @param string        $question
     * @param callable|null $validator
     *
     * @return mixed
     */
    public function askHidden($question, $validator = null);

    /**
     * Asks for confirmation.
     *
     * @param string $question
     * @param bool   $default
     *
     * @return bool
     */
    public function confirm($question, $default = true);

    /**
     * Asks a choice question.
     *
     * @param string          $question
     * @param string|int|null $default
     *
     * @return mixed
     */
    public function choice($question, array $choices, $default = null);

    /**
     * Add newline(s).
     *
     * @param int $count The number of newlines
     */
    public function newLine($count = 1);

    /**
     * Starts the progress output.
     *
     * @param int $max Maximum steps (0 if unknown)
     */
    public function progressStart($max = 0);

    /**
     * Advances the progress output X steps.
     *
     * @param int $step Number of steps to advance
     */
    public function progressAdvance($step = 1);

    /**
     * Finishes the progress output.
     */
    public function progressFinish();
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Question;

use Symfony\Component\Console\Exception\InvalidArgumentException;

/**
 * Represents a choice question.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class ChoiceQuestion extends Question
{
    private $choices;
    private $multiselect = false;
    private $prompt = ' > ';
    private $errorMessage = 'Value "%s" is invalid';

    /**
     * @param string $question The question to ask to the user
     * @param array  $choices  The list of available choices
     * @param mixed  $default  The default answer to return
     */
    public function __construct(string $question, array $choices, $default = null)
    {
        if (!$choices) {
            throw new \LogicException('Choice question must have at least 1 choice available.');
        }

        parent::__construct($question, $default);

        $this->choices = $choices;
        $this->setValidator($this->getDefaultValidator());
        $this->setAutocompleterValues($choices);
    }

    /**
     * Returns available choices.
     *
     * @return array
     */
    public function getChoices()
    {
        return $this->choices;
    }

    /**
     * Sets multiselect option.
     *
     * When multiselect is set to true, multiple choices can be answered.
     *
     * @param bool $multiselect
     *
     * @return $this
     */
    public function setMultiselect($multiselect)
    {
        $this->multiselect = $multiselect;
        $this->setValidator($this->getDefaultValidator());

        return $this;
    }

    /**
     * Returns whether the choices are multiselect.
     *
     * @return bool
     */
    public function isMultiselect()
    {
        return $this->multiselect;
    }

    /**
     * Gets the prompt for choices.
     *
     * @return string
     */
    public function getPrompt()
    {
        return $this->prompt;
    }

    /**
     * Sets the prompt for choices.
     *
     * @param string $prompt
     *
     * @return $this
     */
    public function setPrompt($prompt)
    {
        $this->prompt = $prompt;

        return $this;
    }

    /**
     * Sets the error message for invalid values.
     *
     * The error message has a string placeholder (%s) for the invalid value.
     *
     * @param string $errorMessage
     *
     * @return $this
     */
    public function setErrorMessage($errorMessage)
    {
        $this->errorMessage = $errorMessage;
        $this->setValidator($this->getDefaultValidator());

        return $this;
    }

    private function getDefaultValidator(): callable
    {
        $choices = $this->choices;
        $errorMessage = $this->errorMessage;
        $multiselect = $this->multiselect;
        $isAssoc = $this->isAssoc($choices);

        return function ($selected) use ($choices, $errorMessage, $multiselect, $isAssoc) {
            if ($multiselect) {
                // Check for a separated comma values
                if (!preg_match('/^[^,]+(?:,[^,]+)*$/', $selected, $matches)) {
                    throw new InvalidArgumentException(sprintf($errorMessage, $selected));
                }

                $selectedChoices = explode(',', $selected);
            } else {
                $selectedChoices = [$selected];
            }

            if ($this->isTrimmable()) {
                foreach ($selectedChoices as $k => $v) {
                    $selectedChoices[$k] = trim($v);
                }
            }

            $multiselectChoices = [];
            foreach ($selectedChoices as $value) {
                $results = [];
                foreach ($choices as $key => $choice) {
                    if ($choice === $value) {
                        $results[] = $key;
                    }
                }

                if (\count($results) > 1) {
                    throw new InvalidArgumentException(sprintf('The provided answer is ambiguous. Value should be one of "%s".', implode('" or "', $results)));
                }

                $result = array_search($value, $choices);

                if (!$isAssoc) {
                    if (false !== $result) {
                        $result = $choices[$result];
                    } elseif (isset($choices[$value])) {
                        $result = $choices[$value];
                    }
                } elseif (false === $result && isset($choices[$value])) {
                    $result = $value;
                }

                if (false === $result) {
                    throw new InvalidArgumentException(sprintf($errorMessage, $value));
                }

                $multiselectChoices[] = (string) $result;
            }

            if ($multiselect) {
                return $multiselectChoices;
            }

            return current($multiselectChoices);
        };
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Question;

use Symfony\Component\Console\Exception\InvalidArgumentException;
use Symfony\Component\Console\Exception\LogicException;

/**
 * Represents a Question.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class Question
{
    private $question;
    private $attempts;
    private $hidden = false;
    private $hiddenFallback = true;
    private $autocompleterCallback;
    private $validator;
    private $default;
    private $normalizer;
    private $trimmable = true;

    /**
     * @param string $question The question to ask to the user
     * @param mixed  $default  The default answer to return if the user enters nothing
     */
    public function __construct(string $question, $default = null)
    {
        $this->question = $question;
        $this->default = $default;
    }

    /**
     * Returns the question.
     *
     * @return string
     */
    public function getQuestion()
    {
        return $this->question;
    }

    /**
     * Returns the default answer.
     *
     * @return mixed
     */
    public function getDefault()
    {
        return $this->default;
    }

    /**
     * Returns whether the user response must be hidden.
     *
     * @return bool
     */
    public function isHidden()
    {
        return $this->hidden;
    }

    /**
     * Sets whether the user response must be hidden or not.
     *
     * @param bool $hidden
     *
     * @return $this
     *
     * @throws LogicException In case the autocompleter is also used
     */
    public function setHidden($hidden)
    {
        if ($this->autocompleterCallback) {
            throw new LogicException('A hidden question cannot use the autocompleter.');
        }

        $this->hidden = (bool) $hidden;

        return $this;
    }

    /**
     * In case the response can not be hidden, whether to fallback on non-hidden question or not.
     *
     * @return bool
     */
    public function isHiddenFallback()
    {
        return $this->hiddenFallback;
    }

    /**
     * Sets whether to fallback on non-hidden question if the response can not be hidden.
     *
     * @param bool $fallback
     *
     * @return $this
     */
    public function setHiddenFallback($fallback)
    {
        $this->hiddenFallback = (bool) $fallback;

        return $this;
    }

    /**
     * Gets values for the autocompleter.
     *
     * @return iterable|null
     */
    public function getAutocompleterValues()
    {
        $callback = $this->getAutocompleterCallback();

        return $callback ? $callback('') : null;
    }

    /**
     * Sets values for the autocompleter.
     *
     * @param iterable|null $values
     *
     * @return $this
     *
     * @throws InvalidArgumentException
     * @throws LogicException
     */
    public function setAutocompleterValues($values)
    {
        if (\is_array($values)) {
            $values = $this->isAssoc($values) ? array_merge(array_keys($values), array_values($values)) : array_values($values);

            $callback = static function () use ($values) {
                return $values;
            };
        } elseif ($values instanceof \Traversable) {
            $valueCache = null;
            $callback = static function () use ($values, &$valueCache) {
                return $valueCache ?? $valueCache = iterator_to_array($values, false);
            };
        } elseif (null === $values) {
            $callback = null;
        } else {
            throw new InvalidArgumentException('Autocompleter values can be either an array, "null" or a "Traversable" object.');
        }

        return $this->setAutocompleterCallback($callback);
    }

    /**
     * Gets the callback function used for the autocompleter.
     */
    public function getAutocompleterCallback(): ?callable
    {
        return $this->autocompleterCallback;
    }

    /**
     * Sets the callback function used for the autocompleter.
     *
     * The callback is passed the user input as argument and should return an iterable of corresponding suggestions.
     *
     * @return $this
     */
    public function setAutocompleterCallback(callable $callback = null): self
    {
        if ($this->hidden && null !== $callback) {
            throw new LogicException('A hidden question cannot use the autocompleter.');
        }

        $this->autocompleterCallback = $callback;

        return $this;
    }

    /**
     * Sets a validator for the question.
     *
     * @return $this
     */
    public function setValidator(callable $validator = null)
    {
        $this->validator = $validator;

        return $this;
    }

    /**
     * Gets the validator for the question.
     *
     * @return callable|null
     */
    public function getValidator()
    {
        return $this->validator;
    }

    /**
     * Sets the maximum number of attempts.
     *
     * Null means an unlimited number of attempts.
     *
     * @param int|null $attempts
     *
     * @return $this
     *
     * @throws InvalidArgumentException in case the number of attempts is invalid
     */
    public function setMaxAttempts($attempts)
    {
        if (null !== $attempts && $attempts < 1) {
            throw new InvalidArgumentException('Maximum number of attempts must be a positive value.');
        }

        $this->attempts = $attempts;

        return $this;
    }

    /**
     * Gets the maximum number of attempts.
     *
     * Null means an unlimited number of attempts.
     *
     * @return int|null
     */
    public function getMaxAttempts()
    {
        return $this->attempts;
    }

    /**
     * Sets a normalizer for the response.
     *
     * The normalizer can be a callable (a string), a closure or a class implementing __invoke.
     *
     * @return $this
     */
    public function setNormalizer(callable $normalizer)
    {
        $this->normalizer = $normalizer;

        return $this;
    }

    /**
     * Gets the normalizer for the response.
     *
     * The normalizer can ba a callable (a string), a closure or a class implementing __invoke.
     *
     * @return callable|null
     */
    public function getNormalizer()
    {
        return $this->normalizer;
    }

    protected function isAssoc($array)
    {
        return (bool) \count(array_filter(array_keys($array), 'is_string'));
    }

    public function isTrimmable(): bool
    {
        return $this->trimmable;
    }

    /**
     * @return $this
     */
    public function setTrimmable(bool $trimmable): self
    {
        $this->trimmable = $trimmable;

        return $this;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Question;

/**
 * Represents a yes/no question.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class ConfirmationQuestion extends Question
{
    private $trueAnswerRegex;

    /**
     * @param string $question        The question to ask to the user
     * @param bool   $default         The default answer to return, true or false
     * @param string $trueAnswerRegex A regex to match the "yes" answer
     */
    public function __construct(string $question, bool $default = true, string $trueAnswerRegex = '/^y/i')
    {
        parent::__construct($question, $default);

        $this->trueAnswerRegex = $trueAnswerRegex;
        $this->setNormalizer($this->getDefaultNormalizer());
    }

    /**
     * Returns the default answer normalizer.
     */
    private function getDefaultNormalizer(): callable
    {
        $default = $this->getDefault();
        $regex = $this->trueAnswerRegex;

        return function ($answer) use ($default, $regex) {
            if (\is_bool($answer)) {
                return $answer;
            }

            $answerIsTrue = (bool) preg_match($regex, $answer);
            if (false === $default) {
                return $answer && $answerIsTrue;
            }

            return '' === $answer || $answerIsTrue;
        };
    }
}
Console Component
=================

The Console component eases the creation of beautiful and testable command line
interfaces.

Resources
---------

  * [Documentation](https://symfony.com/doc/current/components/console.html)
  * [Contributing](https://symfony.com/doc/current/contributing/index.html)
  * [Report issues](https://github.com/symfony/symfony/issues) and
    [send Pull Requests](https://github.com/symfony/symfony/pulls)
    in the [main Symfony repository](https://github.com/symfony/symfony)

Credits
-------

`Resources/bin/hiddeninput.exe` is a third party binary provided within this
component. Find sources and license at https://github.com/Seldaek/hidden-input.
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Formatter;

use Symfony\Component\Console\Exception\InvalidArgumentException;

/**
 * Formatter style class for defining styles.
 *
 * @author Konstantin Kudryashov <ever.zet@gmail.com>
 */
class OutputFormatterStyle implements OutputFormatterStyleInterface
{
    private static $availableForegroundColors = [
        'black' => ['set' => 30, 'unset' => 39],
        'red' => ['set' => 31, 'unset' => 39],
        'green' => ['set' => 32, 'unset' => 39],
        'yellow' => ['set' => 33, 'unset' => 39],
        'blue' => ['set' => 34, 'unset' => 39],
        'magenta' => ['set' => 35, 'unset' => 39],
        'cyan' => ['set' => 36, 'unset' => 39],
        'white' => ['set' => 37, 'unset' => 39],
        'default' => ['set' => 39, 'unset' => 39],
    ];
    private static $availableBackgroundColors = [
        'black' => ['set' => 40, 'unset' => 49],
        'red' => ['set' => 41, 'unset' => 49],
        'green' => ['set' => 42, 'unset' => 49],
        'yellow' => ['set' => 43, 'unset' => 49],
        'blue' => ['set' => 44, 'unset' => 49],
        'magenta' => ['set' => 45, 'unset' => 49],
        'cyan' => ['set' => 46, 'unset' => 49],
        'white' => ['set' => 47, 'unset' => 49],
        'default' => ['set' => 49, 'unset' => 49],
    ];
    private static $availableOptions = [
        'bold' => ['set' => 1, 'unset' => 22],
        'underscore' => ['set' => 4, 'unset' => 24],
        'blink' => ['set' => 5, 'unset' => 25],
        'reverse' => ['set' => 7, 'unset' => 27],
        'conceal' => ['set' => 8, 'unset' => 28],
    ];

    private $foreground;
    private $background;
    private $href;
    private $options = [];
    private $handlesHrefGracefully;

    /**
     * Initializes output formatter style.
     *
     * @param string|null $foreground The style foreground color name
     * @param string|null $background The style background color name
     */
    public function __construct(string $foreground = null, string $background = null, array $options = [])
    {
        if (null !== $foreground) {
            $this->setForeground($foreground);
        }
        if (null !== $background) {
            $this->setBackground($background);
        }
        if (\count($options)) {
            $this->setOptions($options);
        }
    }

    /**
     * {@inheritdoc}
     */
    public function setForeground($color = null)
    {
        if (null === $color) {
            $this->foreground = null;

            return;
        }

        if (!isset(static::$availableForegroundColors[$color])) {
            throw new InvalidArgumentException(sprintf('Invalid foreground color specified: "%s". Expected one of (%s).', $color, implode(', ', array_keys(static::$availableForegroundColors))));
        }

        $this->foreground = static::$availableForegroundColors[$color];
    }

    /**
     * {@inheritdoc}
     */
    public function setBackground($color = null)
    {
        if (null === $color) {
            $this->background = null;

            return;
        }

        if (!isset(static::$availableBackgroundColors[$color])) {
            throw new InvalidArgumentException(sprintf('Invalid background color specified: "%s". Expected one of (%s).', $color, implode(', ', array_keys(static::$availableBackgroundColors))));
        }

        $this->background = static::$availableBackgroundColors[$color];
    }

    public function setHref(string $url): void
    {
        $this->href = $url;
    }

    /**
     * {@inheritdoc}
     */
    public function setOption($option)
    {
        if (!isset(static::$availableOptions[$option])) {
            throw new InvalidArgumentException(sprintf('Invalid option specified: "%s". Expected one of (%s).', $option, implode(', ', array_keys(static::$availableOptions))));
        }

        if (!\in_array(static::$availableOptions[$option], $this->options)) {
            $this->options[] = static::$availableOptions[$option];
        }
    }

    /**
     * {@inheritdoc}
     */
    public function unsetOption($option)
    {
        if (!isset(static::$availableOptions[$option])) {
            throw new InvalidArgumentException(sprintf('Invalid option specified: "%s". Expected one of (%s).', $option, implode(', ', array_keys(static::$availableOptions))));
        }

        $pos = array_search(static::$availableOptions[$option], $this->options);
        if (false !== $pos) {
            unset($this->options[$pos]);
        }
    }

    /**
     * {@inheritdoc}
     */
    public function setOptions(array $options)
    {
        $this->options = [];

        foreach ($options as $option) {
            $this->setOption($option);
        }
    }

    /**
     * {@inheritdoc}
     */
    public function apply($text)
    {
        $setCodes = [];
        $unsetCodes = [];

        if (null === $this->handlesHrefGracefully) {
            $this->handlesHrefGracefully = 'JetBrains-JediTerm' !== getenv('TERMINAL_EMULATOR') && !getenv('KONSOLE_VERSION');
        }

        if (null !== $this->foreground) {
            $setCodes[] = $this->foreground['set'];
            $unsetCodes[] = $this->foreground['unset'];
        }
        if (null !== $this->background) {
            $setCodes[] = $this->background['set'];
            $unsetCodes[] = $this->background['unset'];
        }

        foreach ($this->options as $option) {
            $setCodes[] = $option['set'];
            $unsetCodes[] = $option['unset'];
        }

        if (null !== $this->href && $this->handlesHrefGracefully) {
            $text = "\033]8;;$this->href\033\\$text\033]8;;\033\\";
        }

        if (0 === \count($setCodes)) {
            return $text;
        }

        return sprintf("\033[%sm%s\033[%sm", implode(';', $setCodes), $text, implode(';', $unsetCodes));
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Formatter;

/**
 * Formatter style interface for defining styles.
 *
 * @author Konstantin Kudryashov <ever.zet@gmail.com>
 */
interface OutputFormatterStyleInterface
{
    /**
     * Sets style foreground color.
     *
     * @param string|null $color The color name
     */
    public function setForeground($color = null);

    /**
     * Sets style background color.
     *
     * @param string $color The color name
     */
    public function setBackground($color = null);

    /**
     * Sets some specific style option.
     *
     * @param string $option The option name
     */
    public function setOption($option);

    /**
     * Unsets some specific style option.
     *
     * @param string $option The option name
     */
    public function unsetOption($option);

    /**
     * Sets multiple style options at once.
     */
    public function setOptions(array $options);

    /**
     * Applies the style to a given text.
     *
     * @param string $text The text to style
     *
     * @return string
     */
    public function apply($text);
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Formatter;

/**
 * Formatter interface for console output.
 *
 * @author Konstantin Kudryashov <ever.zet@gmail.com>
 */
interface OutputFormatterInterface
{
    /**
     * Sets the decorated flag.
     *
     * @param bool $decorated Whether to decorate the messages or not
     */
    public function setDecorated($decorated);

    /**
     * Gets the decorated flag.
     *
     * @return bool true if the output will decorate messages, false otherwise
     */
    public function isDecorated();

    /**
     * Sets a new style.
     *
     * @param string $name The style name
     */
    public function setStyle($name, OutputFormatterStyleInterface $style);

    /**
     * Checks if output formatter has style with specified name.
     *
     * @param string $name
     *
     * @return bool
     */
    public function hasStyle($name);

    /**
     * Gets style options from style with specified name.
     *
     * @param string $name
     *
     * @return OutputFormatterStyleInterface
     *
     * @throws \InvalidArgumentException When style isn't defined
     */
    public function getStyle($name);

    /**
     * Formats a message according to the given styles.
     *
     * @param string $message The message to style
     *
     * @return string The styled message
     */
    public function format($message);
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Formatter;

use Symfony\Component\Console\Exception\InvalidArgumentException;

/**
 * Formatter class for console output.
 *
 * @author Konstantin Kudryashov <ever.zet@gmail.com>
 * @author Roland Franssen <franssen.roland@gmail.com>
 */
class OutputFormatter implements WrappableOutputFormatterInterface
{
    private $decorated;
    private $styles = [];
    private $styleStack;

    /**
     * Escapes "<" special char in given text.
     *
     * @param string $text Text to escape
     *
     * @return string Escaped text
     */
    public static function escape($text)
    {
        $text = preg_replace('/([^\\\\]?)</', '$1\\<', $text);

        return self::escapeTrailingBackslash($text);
    }

    /**
     * Escapes trailing "\" in given text.
     *
     * @internal
     */
    public static function escapeTrailingBackslash(string $text): string
    {
        if ('\\' === substr($text, -1)) {
            $len = \strlen($text);
            $text = rtrim($text, '\\');
            $text = str_replace("\0", '', $text);
            $text .= str_repeat("\0", $len - \strlen($text));
        }

        return $text;
    }

    /**
     * Initializes console output formatter.
     *
     * @param OutputFormatterStyleInterface[] $styles Array of "name => FormatterStyle" instances
     */
    public function __construct(bool $decorated = false, array $styles = [])
    {
        $this->decorated = $decorated;

        $this->setStyle('error', new OutputFormatterStyle('white', 'red'));
        $this->setStyle('info', new OutputFormatterStyle('green'));
        $this->setStyle('comment', new OutputFormatterStyle('yellow'));
        $this->setStyle('question', new OutputFormatterStyle('black', 'cyan'));

        foreach ($styles as $name => $style) {
            $this->setStyle($name, $style);
        }

        $this->styleStack = new OutputFormatterStyleStack();
    }

    /**
     * {@inheritdoc}
     */
    public function setDecorated($decorated)
    {
        $this->decorated = (bool) $decorated;
    }

    /**
     * {@inheritdoc}
     */
    public function isDecorated()
    {
        return $this->decorated;
    }

    /**
     * {@inheritdoc}
     */
    public function setStyle($name, OutputFormatterStyleInterface $style)
    {
        $this->styles[strtolower($name)] = $style;
    }

    /**
     * {@inheritdoc}
     */
    public function hasStyle($name)
    {
        return isset($this->styles[strtolower($name)]);
    }

    /**
     * {@inheritdoc}
     */
    public function getStyle($name)
    {
        if (!$this->hasStyle($name)) {
            throw new InvalidArgumentException(sprintf('Undefined style: "%s".', $name));
        }

        return $this->styles[strtolower($name)];
    }

    /**
     * {@inheritdoc}
     */
    public function format($message)
    {
        return $this->formatAndWrap((string) $message, 0);
    }

    /**
     * {@inheritdoc}
     */
    public function formatAndWrap(string $message, int $width)
    {
        $offset = 0;
        $output = '';
        $tagRegex = '[a-z][^<>]*+';
        $currentLineLength = 0;
        preg_match_all("#<(($tagRegex) | /($tagRegex)?)>#ix", $message, $matches, PREG_OFFSET_CAPTURE);
        foreach ($matches[0] as $i => $match) {
            $pos = $match[1];
            $text = $match[0];

            if (0 != $pos && '\\' == $message[$pos - 1]) {
                continue;
            }

            // add the text up to the next tag
            $output .= $this->applyCurrentStyle(substr($message, $offset, $pos - $offset), $output, $width, $currentLineLength);
            $offset = $pos + \strlen($text);

            // opening tag?
            if ($open = '/' != $text[1]) {
                $tag = $matches[1][$i][0];
            } else {
                $tag = isset($matches[3][$i][0]) ? $matches[3][$i][0] : '';
            }

            if (!$open && !$tag) {
                // </>
                $this->styleStack->pop();
            } elseif (null === $style = $this->createStyleFromString($tag)) {
                $output .= $this->applyCurrentStyle($text, $output, $width, $currentLineLength);
            } elseif ($open) {
                $this->styleStack->push($style);
            } else {
                $this->styleStack->pop($style);
            }
        }

        $output .= $this->applyCurrentStyle(substr($message, $offset), $output, $width, $currentLineLength);

        if (false !== strpos($output, "\0")) {
            return strtr($output, ["\0" => '\\', '\\<' => '<']);
        }

        return str_replace('\\<', '<', $output);
    }

    /**
     * @return OutputFormatterStyleStack
     */
    public function getStyleStack()
    {
        return $this->styleStack;
    }

    /**
     * Tries to create new style instance from string.
     */
    private function createStyleFromString(string $string): ?OutputFormatterStyleInterface
    {
        if (isset($this->styles[$string])) {
            return $this->styles[$string];
        }

        if (!preg_match_all('/([^=]+)=([^;]+)(;|$)/', $string, $matches, PREG_SET_ORDER)) {
            return null;
        }

        $style = new OutputFormatterStyle();
        foreach ($matches as $match) {
            array_shift($match);
            $match[0] = strtolower($match[0]);

            if ('fg' == $match[0]) {
                $style->setForeground(strtolower($match[1]));
            } elseif ('bg' == $match[0]) {
                $style->setBackground(strtolower($match[1]));
            } elseif ('href' === $match[0]) {
                $style->setHref($match[1]);
            } elseif ('options' === $match[0]) {
                preg_match_all('([^,;]+)', strtolower($match[1]), $options);
                $options = array_shift($options);
                foreach ($options as $option) {
                    $style->setOption($option);
                }
            } else {
                return null;
            }
        }

        return $style;
    }

    /**
     * Applies current style from stack to text, if must be applied.
     */
    private function applyCurrentStyle(string $text, string $current, int $width, int &$currentLineLength): string
    {
        if ('' === $text) {
            return '';
        }

        if (!$width) {
            return $this->isDecorated() ? $this->styleStack->getCurrent()->apply($text) : $text;
        }

        if (!$currentLineLength && '' !== $current) {
            $text = ltrim($text);
        }

        if ($currentLineLength) {
            $prefix = substr($text, 0, $i = $width - $currentLineLength)."\n";
            $text = substr($text, $i);
        } else {
            $prefix = '';
        }

        preg_match('~(\\n)$~', $text, $matches);
        $text = $prefix.preg_replace('~([^\\n]{'.$width.'})\\ *~', "\$1\n", $text);
        $text = rtrim($text, "\n").($matches[1] ?? '');

        if (!$currentLineLength && '' !== $current && "\n" !== substr($current, -1)) {
            $text = "\n".$text;
        }

        $lines = explode("\n", $text);

        foreach ($lines as $line) {
            $currentLineLength += \strlen($line);
            if ($width <= $currentLineLength) {
                $currentLineLength = 0;
            }
        }

        if ($this->isDecorated()) {
            foreach ($lines as $i => $line) {
                $lines[$i] = $this->styleStack->getCurrent()->apply($line);
            }
        }

        return implode("\n", $lines);
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Formatter;

/**
 * Formatter interface for console output that supports word wrapping.
 *
 * @author Roland Franssen <franssen.roland@gmail.com>
 */
interface WrappableOutputFormatterInterface extends OutputFormatterInterface
{
    /**
     * Formats a message according to the given styles, wrapping at `$width` (0 means no wrapping).
     */
    public function formatAndWrap(string $message, int $width);
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Formatter;

use Symfony\Component\Console\Exception\InvalidArgumentException;
use Symfony\Contracts\Service\ResetInterface;

/**
 * @author Jean-François Simon <contact@jfsimon.fr>
 */
class OutputFormatterStyleStack implements ResetInterface
{
    /**
     * @var OutputFormatterStyleInterface[]
     */
    private $styles;

    private $emptyStyle;

    public function __construct(OutputFormatterStyleInterface $emptyStyle = null)
    {
        $this->emptyStyle = $emptyStyle ?: new OutputFormatterStyle();
        $this->reset();
    }

    /**
     * Resets stack (ie. empty internal arrays).
     */
    public function reset()
    {
        $this->styles = [];
    }

    /**
     * Pushes a style in the stack.
     */
    public function push(OutputFormatterStyleInterface $style)
    {
        $this->styles[] = $style;
    }

    /**
     * Pops a style from the stack.
     *
     * @return OutputFormatterStyleInterface
     *
     * @throws InvalidArgumentException When style tags incorrectly nested
     */
    public function pop(OutputFormatterStyleInterface $style = null)
    {
        if (empty($this->styles)) {
            return $this->emptyStyle;
        }

        if (null === $style) {
            return array_pop($this->styles);
        }

        foreach (array_reverse($this->styles, true) as $index => $stackedStyle) {
            if ($style->apply('') === $stackedStyle->apply('')) {
                $this->styles = \array_slice($this->styles, 0, $index);

                return $stackedStyle;
            }
        }

        throw new InvalidArgumentException('Incorrectly nested style tag found.');
    }

    /**
     * Computes current style with stacks top codes.
     *
     * @return OutputFormatterStyle
     */
    public function getCurrent()
    {
        if (empty($this->styles)) {
            return $this->emptyStyle;
        }

        return $this->styles[\count($this->styles) - 1];
    }

    /**
     * @return $this
     */
    public function setEmptyStyle(OutputFormatterStyleInterface $emptyStyle)
    {
        $this->emptyStyle = $emptyStyle;

        return $this;
    }

    /**
     * @return OutputFormatterStyleInterface
     */
    public function getEmptyStyle()
    {
        return $this->emptyStyle;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\CommandLoader;

use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Exception\CommandNotFoundException;

/**
 * @author Robin Chalas <robin.chalas@gmail.com>
 */
interface CommandLoaderInterface
{
    /**
     * Loads a command.
     *
     * @param string $name
     *
     * @return Command
     *
     * @throws CommandNotFoundException
     */
    public function get($name);

    /**
     * Checks if a command exists.
     *
     * @param string $name
     *
     * @return bool
     */
    public function has($name);

    /**
     * @return string[] All registered command names
     */
    public function getNames();
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\CommandLoader;

use Psr\Container\ContainerInterface;
use Symfony\Component\Console\Exception\CommandNotFoundException;

/**
 * Loads commands from a PSR-11 container.
 *
 * @author Robin Chalas <robin.chalas@gmail.com>
 */
class ContainerCommandLoader implements CommandLoaderInterface
{
    private $container;
    private $commandMap;

    /**
     * @param array $commandMap An array with command names as keys and service ids as values
     */
    public function __construct(ContainerInterface $container, array $commandMap)
    {
        $this->container = $container;
        $this->commandMap = $commandMap;
    }

    /**
     * {@inheritdoc}
     */
    public function get($name)
    {
        if (!$this->has($name)) {
            throw new CommandNotFoundException(sprintf('Command "%s" does not exist.', $name));
        }

        return $this->container->get($this->commandMap[$name]);
    }

    /**
     * {@inheritdoc}
     */
    public function has($name)
    {
        return isset($this->commandMap[$name]) && $this->container->has($this->commandMap[$name]);
    }

    /**
     * {@inheritdoc}
     */
    public function getNames()
    {
        return array_keys($this->commandMap);
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\CommandLoader;

use Symfony\Component\Console\Exception\CommandNotFoundException;

/**
 * A simple command loader using factories to instantiate commands lazily.
 *
 * @author Maxime Steinhausser <maxime.steinhausser@gmail.com>
 */
class FactoryCommandLoader implements CommandLoaderInterface
{
    private $factories;

    /**
     * @param callable[] $factories Indexed by command names
     */
    public function __construct(array $factories)
    {
        $this->factories = $factories;
    }

    /**
     * {@inheritdoc}
     */
    public function has($name)
    {
        return isset($this->factories[$name]);
    }

    /**
     * {@inheritdoc}
     */
    public function get($name)
    {
        if (!isset($this->factories[$name])) {
            throw new CommandNotFoundException(sprintf('Command "%s" does not exist.', $name));
        }

        $factory = $this->factories[$name];

        return $factory();
    }

    /**
     * {@inheritdoc}
     */
    public function getNames()
    {
        return array_keys($this->factories);
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Descriptor;

use Symfony\Component\Console\Application;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Formatter\OutputFormatter;
use Symfony\Component\Console\Helper\Helper;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputDefinition;
use Symfony\Component\Console\Input\InputOption;

/**
 * Text descriptor.
 *
 * @author Jean-François Simon <contact@jfsimon.fr>
 *
 * @internal
 */
class TextDescriptor extends Descriptor
{
    /**
     * {@inheritdoc}
     */
    protected function describeInputArgument(InputArgument $argument, array $options = [])
    {
        if (null !== $argument->getDefault() && (!\is_array($argument->getDefault()) || \count($argument->getDefault()))) {
            $default = sprintf('<comment> [default: %s]</comment>', $this->formatDefaultValue($argument->getDefault()));
        } else {
            $default = '';
        }

        $totalWidth = isset($options['total_width']) ? $options['total_width'] : Helper::strlen($argument->getName());
        $spacingWidth = $totalWidth - \strlen($argument->getName());

        $this->writeText(sprintf('  <info>%s</info>  %s%s%s',
            $argument->getName(),
            str_repeat(' ', $spacingWidth),
            // + 4 = 2 spaces before <info>, 2 spaces after </info>
            preg_replace('/\s*[\r\n]\s*/', "\n".str_repeat(' ', $totalWidth + 4), $argument->getDescription()),
            $default
        ), $options);
    }

    /**
     * {@inheritdoc}
     */
    protected function describeInputOption(InputOption $option, array $options = [])
    {
        if ($option->acceptValue() && null !== $option->getDefault() && (!\is_array($option->getDefault()) || \count($option->getDefault()))) {
            $default = sprintf('<comment> [default: %s]</comment>', $this->formatDefaultValue($option->getDefault()));
        } else {
            $default = '';
        }

        $value = '';
        if ($option->acceptValue()) {
            $value = '='.strtoupper($option->getName());

            if ($option->isValueOptional()) {
                $value = '['.$value.']';
            }
        }

        $totalWidth = isset($options['total_width']) ? $options['total_width'] : $this->calculateTotalWidthForOptions([$option]);
        $synopsis = sprintf('%s%s',
            $option->getShortcut() ? sprintf('-%s, ', $option->getShortcut()) : '    ',
            sprintf('--%s%s', $option->getName(), $value)
        );

        $spacingWidth = $totalWidth - Helper::strlen($synopsis);

        $this->writeText(sprintf('  <info>%s</info>  %s%s%s%s',
            $synopsis,
            str_repeat(' ', $spacingWidth),
            // + 4 = 2 spaces before <info>, 2 spaces after </info>
            preg_replace('/\s*[\r\n]\s*/', "\n".str_repeat(' ', $totalWidth + 4), $option->getDescription()),
            $default,
            $option->isArray() ? '<comment> (multiple values allowed)</comment>' : ''
        ), $options);
    }

    /**
     * {@inheritdoc}
     */
    protected function describeInputDefinition(InputDefinition $definition, array $options = [])
    {
        $totalWidth = $this->calculateTotalWidthForOptions($definition->getOptions());
        foreach ($definition->getArguments() as $argument) {
            $totalWidth = max($totalWidth, Helper::strlen($argument->getName()));
        }

        if ($definition->getArguments()) {
            $this->writeText('<comment>Arguments:</comment>', $options);
            $this->writeText("\n");
            foreach ($definition->getArguments() as $argument) {
                $this->describeInputArgument($argument, array_merge($options, ['total_width' => $totalWidth]));
                $this->writeText("\n");
            }
        }

        if ($definition->getArguments() && $definition->getOptions()) {
            $this->writeText("\n");
        }

        if ($definition->getOptions()) {
            $laterOptions = [];

            $this->writeText('<comment>Options:</comment>', $options);
            foreach ($definition->getOptions() as $option) {
                if (\strlen($option->getShortcut()) > 1) {
                    $laterOptions[] = $option;
                    continue;
                }
                $this->writeText("\n");
                $this->describeInputOption($option, array_merge($options, ['total_width' => $totalWidth]));
            }
            foreach ($laterOptions as $option) {
                $this->writeText("\n");
                $this->describeInputOption($option, array_merge($options, ['total_width' => $totalWidth]));
            }
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function describeCommand(Command $command, array $options = [])
    {
        $command->getSynopsis(true);
        $command->getSynopsis(false);
        $command->mergeApplicationDefinition(false);

        if ($description = $command->getDescription()) {
            $this->writeText('<comment>Description:</comment>', $options);
            $this->writeText("\n");
            $this->writeText('  '.$description);
            $this->writeText("\n\n");
        }

        $this->writeText('<comment>Usage:</comment>', $options);
        foreach (array_merge([$command->getSynopsis(true)], $command->getAliases(), $command->getUsages()) as $usage) {
            $this->writeText("\n");
            $this->writeText('  '.OutputFormatter::escape($usage), $options);
        }
        $this->writeText("\n");

        $definition = $command->getNativeDefinition();
        if ($definition->getOptions() || $definition->getArguments()) {
            $this->writeText("\n");
            $this->describeInputDefinition($definition, $options);
            $this->writeText("\n");
        }

        $help = $command->getProcessedHelp();
        if ($help && $help !== $description) {
            $this->writeText("\n");
            $this->writeText('<comment>Help:</comment>', $options);
            $this->writeText("\n");
            $this->writeText('  '.str_replace("\n", "\n  ", $help), $options);
            $this->writeText("\n");
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function describeApplication(Application $application, array $options = [])
    {
        $describedNamespace = isset($options['namespace']) ? $options['namespace'] : null;
        $description = new ApplicationDescription($application, $describedNamespace);

        if (isset($options['raw_text']) && $options['raw_text']) {
            $width = $this->getColumnWidth($description->getCommands());

            foreach ($description->getCommands() as $command) {
                $this->writeText(sprintf("%-{$width}s %s", $command->getName(), $command->getDescription()), $options);
                $this->writeText("\n");
            }
        } else {
            if ('' != $help = $application->getHelp()) {
                $this->writeText("$help\n\n", $options);
            }

            $this->writeText("<comment>Usage:</comment>\n", $options);
            $this->writeText("  command [options] [arguments]\n\n", $options);

            $this->describeInputDefinition(new InputDefinition($application->getDefinition()->getOptions()), $options);

            $this->writeText("\n");
            $this->writeText("\n");

            $commands = $description->getCommands();
            $namespaces = $description->getNamespaces();
            if ($describedNamespace && $namespaces) {
                // make sure all alias commands are included when describing a specific namespace
                $describedNamespaceInfo = reset($namespaces);
                foreach ($describedNamespaceInfo['commands'] as $name) {
                    $commands[$name] = $description->getCommand($name);
                }
            }

            // calculate max. width based on available commands per namespace
            $width = $this->getColumnWidth(array_merge(...array_values(array_map(function ($namespace) use ($commands) {
                return array_intersect($namespace['commands'], array_keys($commands));
            }, $namespaces))));

            if ($describedNamespace) {
                $this->writeText(sprintf('<comment>Available commands for the "%s" namespace:</comment>', $describedNamespace), $options);
            } else {
                $this->writeText('<comment>Available commands:</comment>', $options);
            }

            foreach ($namespaces as $namespace) {
                $namespace['commands'] = array_filter($namespace['commands'], function ($name) use ($commands) {
                    return isset($commands[$name]);
                });

                if (!$namespace['commands']) {
                    continue;
                }

                if (!$describedNamespace && ApplicationDescription::GLOBAL_NAMESPACE !== $namespace['id']) {
                    $this->writeText("\n");
                    $this->writeText(' <comment>'.$namespace['id'].'</comment>', $options);
                }

                foreach ($namespace['commands'] as $name) {
                    $this->writeText("\n");
                    $spacingWidth = $width - Helper::strlen($name);
                    $command = $commands[$name];
                    $commandAliases = $name === $command->getName() ? $this->getCommandAliasesText($command) : '';
                    $this->writeText(sprintf('  <info>%s</info>%s%s', $name, str_repeat(' ', $spacingWidth), $commandAliases.$command->getDescription()), $options);
                }
            }

            $this->writeText("\n");
        }
    }

    /**
     * {@inheritdoc}
     */
    private function writeText(string $content, array $options = [])
    {
        $this->write(
            isset($options['raw_text']) && $options['raw_text'] ? strip_tags($content) : $content,
            isset($options['raw_output']) ? !$options['raw_output'] : true
        );
    }

    /**
     * Formats command aliases to show them in the command description.
     */
    private function getCommandAliasesText(Command $command): string
    {
        $text = '';
        $aliases = $command->getAliases();

        if ($aliases) {
            $text = '['.implode('|', $aliases).'] ';
        }

        return $text;
    }

    /**
     * Formats input option/argument default value.
     *
     * @param mixed $default
     */
    private function formatDefaultValue($default): string
    {
        if (INF === $default) {
            return 'INF';
        }

        if (\is_string($default)) {
            $default = OutputFormatter::escape($default);
        } elseif (\is_array($default)) {
            foreach ($default as $key => $value) {
                if (\is_string($value)) {
                    $default[$key] = OutputFormatter::escape($value);
                }
            }
        }

        return str_replace('\\\\', '\\', json_encode($default, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE));
    }

    /**
     * @param (Command|string)[] $commands
     */
    private function getColumnWidth(array $commands): int
    {
        $widths = [];

        foreach ($commands as $command) {
            if ($command instanceof Command) {
                $widths[] = Helper::strlen($command->getName());
                foreach ($command->getAliases() as $alias) {
                    $widths[] = Helper::strlen($alias);
                }
            } else {
                $widths[] = Helper::strlen($command);
            }
        }

        return $widths ? max($widths) + 2 : 0;
    }

    /**
     * @param InputOption[] $options
     */
    private function calculateTotalWidthForOptions(array $options): int
    {
        $totalWidth = 0;
        foreach ($options as $option) {
            // "-" + shortcut + ", --" + name
            $nameLength = 1 + max(Helper::strlen($option->getShortcut()), 1) + 4 + Helper::strlen($option->getName());

            if ($option->acceptValue()) {
                $valueLength = 1 + Helper::strlen($option->getName()); // = + value
                $valueLength += $option->isValueOptional() ? 2 : 0; // [ + ]

                $nameLength += $valueLength;
            }
            $totalWidth = max($totalWidth, $nameLength);
        }

        return $totalWidth;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Descriptor;

use Symfony\Component\Console\Application;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Exception\CommandNotFoundException;

/**
 * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
 *
 * @internal
 */
class ApplicationDescription
{
    const GLOBAL_NAMESPACE = '_global';

    private $application;
    private $namespace;
    private $showHidden;

    /**
     * @var array
     */
    private $namespaces;

    /**
     * @var Command[]
     */
    private $commands;

    /**
     * @var Command[]
     */
    private $aliases;

    public function __construct(Application $application, string $namespace = null, bool $showHidden = false)
    {
        $this->application = $application;
        $this->namespace = $namespace;
        $this->showHidden = $showHidden;
    }

    public function getNamespaces(): array
    {
        if (null === $this->namespaces) {
            $this->inspectApplication();
        }

        return $this->namespaces;
    }

    /**
     * @return Command[]
     */
    public function getCommands(): array
    {
        if (null === $this->commands) {
            $this->inspectApplication();
        }

        return $this->commands;
    }

    /**
     * @throws CommandNotFoundException
     */
    public function getCommand(string $name): Command
    {
        if (!isset($this->commands[$name]) && !isset($this->aliases[$name])) {
            throw new CommandNotFoundException(sprintf('Command "%s" does not exist.', $name));
        }

        return isset($this->commands[$name]) ? $this->commands[$name] : $this->aliases[$name];
    }

    private function inspectApplication()
    {
        $this->commands = [];
        $this->namespaces = [];

        $all = $this->application->all($this->namespace ? $this->application->findNamespace($this->namespace) : null);
        foreach ($this->sortCommands($all) as $namespace => $commands) {
            $names = [];

            /** @var Command $command */
            foreach ($commands as $name => $command) {
                if (!$command->getName() || (!$this->showHidden && $command->isHidden())) {
                    continue;
                }

                if ($command->getName() === $name) {
                    $this->commands[$name] = $command;
                } else {
                    $this->aliases[$name] = $command;
                }

                $names[] = $name;
            }

            $this->namespaces[$namespace] = ['id' => $namespace, 'commands' => $names];
        }
    }

    private function sortCommands(array $commands): array
    {
        $namespacedCommands = [];
        $globalCommands = [];
        $sortedCommands = [];
        foreach ($commands as $name => $command) {
            $key = $this->application->extractNamespace($name, 1);
            if (\in_array($key, ['', self::GLOBAL_NAMESPACE], true)) {
                $globalCommands[$name] = $command;
            } else {
                $namespacedCommands[$key][$name] = $command;
            }
        }

        if ($globalCommands) {
            ksort($globalCommands);
            $sortedCommands[self::GLOBAL_NAMESPACE] = $globalCommands;
        }

        if ($namespacedCommands) {
            ksort($namespacedCommands);
            foreach ($namespacedCommands as $key => $commandsSet) {
                ksort($commandsSet);
                $sortedCommands[$key] = $commandsSet;
            }
        }

        return $sortedCommands;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Descriptor;

use Symfony\Component\Console\Application;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputDefinition;
use Symfony\Component\Console\Input\InputOption;

/**
 * XML descriptor.
 *
 * @author Jean-François Simon <contact@jfsimon.fr>
 *
 * @internal
 */
class XmlDescriptor extends Descriptor
{
    public function getInputDefinitionDocument(InputDefinition $definition): \DOMDocument
    {
        $dom = new \DOMDocument('1.0', 'UTF-8');
        $dom->appendChild($definitionXML = $dom->createElement('definition'));

        $definitionXML->appendChild($argumentsXML = $dom->createElement('arguments'));
        foreach ($definition->getArguments() as $argument) {
            $this->appendDocument($argumentsXML, $this->getInputArgumentDocument($argument));
        }

        $definitionXML->appendChild($optionsXML = $dom->createElement('options'));
        foreach ($definition->getOptions() as $option) {
            $this->appendDocument($optionsXML, $this->getInputOptionDocument($option));
        }

        return $dom;
    }

    public function getCommandDocument(Command $command): \DOMDocument
    {
        $dom = new \DOMDocument('1.0', 'UTF-8');
        $dom->appendChild($commandXML = $dom->createElement('command'));

        $command->getSynopsis();
        $command->mergeApplicationDefinition(false);

        $commandXML->setAttribute('id', $command->getName());
        $commandXML->setAttribute('name', $command->getName());
        $commandXML->setAttribute('hidden', $command->isHidden() ? 1 : 0);

        $commandXML->appendChild($usagesXML = $dom->createElement('usages'));

        foreach (array_merge([$command->getSynopsis()], $command->getAliases(), $command->getUsages()) as $usage) {
            $usagesXML->appendChild($dom->createElement('usage', $usage));
        }

        $commandXML->appendChild($descriptionXML = $dom->createElement('description'));
        $descriptionXML->appendChild($dom->createTextNode(str_replace("\n", "\n ", $command->getDescription())));

        $commandXML->appendChild($helpXML = $dom->createElement('help'));
        $helpXML->appendChild($dom->createTextNode(str_replace("\n", "\n ", $command->getProcessedHelp())));

        $definitionXML = $this->getInputDefinitionDocument($command->getNativeDefinition());
        $this->appendDocument($commandXML, $definitionXML->getElementsByTagName('definition')->item(0));

        return $dom;
    }

    public function getApplicationDocument(Application $application, string $namespace = null): \DOMDocument
    {
        $dom = new \DOMDocument('1.0', 'UTF-8');
        $dom->appendChild($rootXml = $dom->createElement('symfony'));

        if ('UNKNOWN' !== $application->getName()) {
            $rootXml->setAttribute('name', $application->getName());
            if ('UNKNOWN' !== $application->getVersion()) {
                $rootXml->setAttribute('version', $application->getVersion());
            }
        }

        $rootXml->appendChild($commandsXML = $dom->createElement('commands'));

        $description = new ApplicationDescription($application, $namespace, true);

        if ($namespace) {
            $commandsXML->setAttribute('namespace', $namespace);
        }

        foreach ($description->getCommands() as $command) {
            $this->appendDocument($commandsXML, $this->getCommandDocument($command));
        }

        if (!$namespace) {
            $rootXml->appendChild($namespacesXML = $dom->createElement('namespaces'));

            foreach ($description->getNamespaces() as $namespaceDescription) {
                $namespacesXML->appendChild($namespaceArrayXML = $dom->createElement('namespace'));
                $namespaceArrayXML->setAttribute('id', $namespaceDescription['id']);

                foreach ($namespaceDescription['commands'] as $name) {
                    $namespaceArrayXML->appendChild($commandXML = $dom->createElement('command'));
                    $commandXML->appendChild($dom->createTextNode($name));
                }
            }
        }

        return $dom;
    }

    /**
     * {@inheritdoc}
     */
    protected function describeInputArgument(InputArgument $argument, array $options = [])
    {
        $this->writeDocument($this->getInputArgumentDocument($argument));
    }

    /**
     * {@inheritdoc}
     */
    protected function describeInputOption(InputOption $option, array $options = [])
    {
        $this->writeDocument($this->getInputOptionDocument($option));
    }

    /**
     * {@inheritdoc}
     */
    protected function describeInputDefinition(InputDefinition $definition, array $options = [])
    {
        $this->writeDocument($this->getInputDefinitionDocument($definition));
    }

    /**
     * {@inheritdoc}
     */
    protected function describeCommand(Command $command, array $options = [])
    {
        $this->writeDocument($this->getCommandDocument($command));
    }

    /**
     * {@inheritdoc}
     */
    protected function describeApplication(Application $application, array $options = [])
    {
        $this->writeDocument($this->getApplicationDocument($application, isset($options['namespace']) ? $options['namespace'] : null));
    }

    /**
     * Appends document children to parent node.
     */
    private function appendDocument(\DOMNode $parentNode, \DOMNode $importedParent)
    {
        foreach ($importedParent->childNodes as $childNode) {
            $parentNode->appendChild($parentNode->ownerDocument->importNode($childNode, true));
        }
    }

    /**
     * Writes DOM document.
     */
    private function writeDocument(\DOMDocument $dom)
    {
        $dom->formatOutput = true;
        $this->write($dom->saveXML());
    }

    private function getInputArgumentDocument(InputArgument $argument): \DOMDocument
    {
        $dom = new \DOMDocument('1.0', 'UTF-8');

        $dom->appendChild($objectXML = $dom->createElement('argument'));
        $objectXML->setAttribute('name', $argument->getName());
        $objectXML->setAttribute('is_required', $argument->isRequired() ? 1 : 0);
        $objectXML->setAttribute('is_array', $argument->isArray() ? 1 : 0);
        $objectXML->appendChild($descriptionXML = $dom->createElement('description'));
        $descriptionXML->appendChild($dom->createTextNode($argument->getDescription()));

        $objectXML->appendChild($defaultsXML = $dom->createElement('defaults'));
        $defaults = \is_array($argument->getDefault()) ? $argument->getDefault() : (\is_bool($argument->getDefault()) ? [var_export($argument->getDefault(), true)] : ($argument->getDefault() ? [$argument->getDefault()] : []));
        foreach ($defaults as $default) {
            $defaultsXML->appendChild($defaultXML = $dom->createElement('default'));
            $defaultXML->appendChild($dom->createTextNode($default));
        }

        return $dom;
    }

    private function getInputOptionDocument(InputOption $option): \DOMDocument
    {
        $dom = new \DOMDocument('1.0', 'UTF-8');

        $dom->appendChild($objectXML = $dom->createElement('option'));
        $objectXML->setAttribute('name', '--'.$option->getName());
        $pos = strpos($option->getShortcut(), '|');
        if (false !== $pos) {
            $objectXML->setAttribute('shortcut', '-'.substr($option->getShortcut(), 0, $pos));
            $objectXML->setAttribute('shortcuts', '-'.str_replace('|', '|-', $option->getShortcut()));
        } else {
            $objectXML->setAttribute('shortcut', $option->getShortcut() ? '-'.$option->getShortcut() : '');
        }
        $objectXML->setAttribute('accept_value', $option->acceptValue() ? 1 : 0);
        $objectXML->setAttribute('is_value_required', $option->isValueRequired() ? 1 : 0);
        $objectXML->setAttribute('is_multiple', $option->isArray() ? 1 : 0);
        $objectXML->appendChild($descriptionXML = $dom->createElement('description'));
        $descriptionXML->appendChild($dom->createTextNode($option->getDescription()));

        if ($option->acceptValue()) {
            $defaults = \is_array($option->getDefault()) ? $option->getDefault() : (\is_bool($option->getDefault()) ? [var_export($option->getDefault(), true)] : ($option->getDefault() ? [$option->getDefault()] : []));
            $objectXML->appendChild($defaultsXML = $dom->createElement('defaults'));

            if (!empty($defaults)) {
                foreach ($defaults as $default) {
                    $defaultsXML->appendChild($defaultXML = $dom->createElement('default'));
                    $defaultXML->appendChild($dom->createTextNode($default));
                }
            }
        }

        return $dom;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Descriptor;

use Symfony\Component\Console\Output\OutputInterface;

/**
 * Descriptor interface.
 *
 * @author Jean-François Simon <contact@jfsimon.fr>
 */
interface DescriptorInterface
{
    /**
     * Describes an object if supported.
     *
     * @param object $object
     */
    public function describe(OutputInterface $output, $object, array $options = []);
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Descriptor;

use Symfony\Component\Console\Application;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Exception\InvalidArgumentException;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputDefinition;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;

/**
 * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
 *
 * @internal
 */
abstract class Descriptor implements DescriptorInterface
{
    /**
     * @var OutputInterface
     */
    protected $output;

    /**
     * {@inheritdoc}
     */
    public function describe(OutputInterface $output, $object, array $options = [])
    {
        $this->output = $output;

        switch (true) {
            case $object instanceof InputArgument:
                $this->describeInputArgument($object, $options);
                break;
            case $object instanceof InputOption:
                $this->describeInputOption($object, $options);
                break;
            case $object instanceof InputDefinition:
                $this->describeInputDefinition($object, $options);
                break;
            case $object instanceof Command:
                $this->describeCommand($object, $options);
                break;
            case $object instanceof Application:
                $this->describeApplication($object, $options);
                break;
            default:
                throw new InvalidArgumentException(sprintf('Object of type "%s" is not describable.', \get_class($object)));
        }
    }

    /**
     * Writes content to output.
     *
     * @param string $content
     * @param bool   $decorated
     */
    protected function write($content, $decorated = false)
    {
        $this->output->write($content, false, $decorated ? OutputInterface::OUTPUT_NORMAL : OutputInterface::OUTPUT_RAW);
    }

    /**
     * Describes an InputArgument instance.
     *
     * @return string|mixed
     */
    abstract protected function describeInputArgument(InputArgument $argument, array $options = []);

    /**
     * Describes an InputOption instance.
     *
     * @return string|mixed
     */
    abstract protected function describeInputOption(InputOption $option, array $options = []);

    /**
     * Describes an InputDefinition instance.
     *
     * @return string|mixed
     */
    abstract protected function describeInputDefinition(InputDefinition $definition, array $options = []);

    /**
     * Describes a Command instance.
     *
     * @return string|mixed
     */
    abstract protected function describeCommand(Command $command, array $options = []);

    /**
     * Describes an Application instance.
     *
     * @return string|mixed
     */
    abstract protected function describeApplication(Application $application, array $options = []);
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Descriptor;

use Symfony\Component\Console\Application;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputDefinition;
use Symfony\Component\Console\Input\InputOption;

/**
 * JSON descriptor.
 *
 * @author Jean-François Simon <contact@jfsimon.fr>
 *
 * @internal
 */
class JsonDescriptor extends Descriptor
{
    /**
     * {@inheritdoc}
     */
    protected function describeInputArgument(InputArgument $argument, array $options = [])
    {
        $this->writeData($this->getInputArgumentData($argument), $options);
    }

    /**
     * {@inheritdoc}
     */
    protected function describeInputOption(InputOption $option, array $options = [])
    {
        $this->writeData($this->getInputOptionData($option), $options);
    }

    /**
     * {@inheritdoc}
     */
    protected function describeInputDefinition(InputDefinition $definition, array $options = [])
    {
        $this->writeData($this->getInputDefinitionData($definition), $options);
    }

    /**
     * {@inheritdoc}
     */
    protected function describeCommand(Command $command, array $options = [])
    {
        $this->writeData($this->getCommandData($command), $options);
    }

    /**
     * {@inheritdoc}
     */
    protected function describeApplication(Application $application, array $options = [])
    {
        $describedNamespace = isset($options['namespace']) ? $options['namespace'] : null;
        $description = new ApplicationDescription($application, $describedNamespace, true);
        $commands = [];

        foreach ($description->getCommands() as $command) {
            $commands[] = $this->getCommandData($command);
        }

        $data = [];
        if ('UNKNOWN' !== $application->getName()) {
            $data['application']['name'] = $application->getName();
            if ('UNKNOWN' !== $application->getVersion()) {
                $data['application']['version'] = $application->getVersion();
            }
        }

        $data['commands'] = $commands;

        if ($describedNamespace) {
            $data['namespace'] = $describedNamespace;
        } else {
            $data['namespaces'] = array_values($description->getNamespaces());
        }

        $this->writeData($data, $options);
    }

    /**
     * Writes data as json.
     */
    private function writeData(array $data, array $options)
    {
        $flags = isset($options['json_encoding']) ? $options['json_encoding'] : 0;

        $this->write(json_encode($data, $flags));
    }

    private function getInputArgumentData(InputArgument $argument): array
    {
        return [
            'name' => $argument->getName(),
            'is_required' => $argument->isRequired(),
            'is_array' => $argument->isArray(),
            'description' => preg_replace('/\s*[\r\n]\s*/', ' ', $argument->getDescription()),
            'default' => INF === $argument->getDefault() ? 'INF' : $argument->getDefault(),
        ];
    }

    private function getInputOptionData(InputOption $option): array
    {
        return [
            'name' => '--'.$option->getName(),
            'shortcut' => $option->getShortcut() ? '-'.str_replace('|', '|-', $option->getShortcut()) : '',
            'accept_value' => $option->acceptValue(),
            'is_value_required' => $option->isValueRequired(),
            'is_multiple' => $option->isArray(),
            'description' => preg_replace('/\s*[\r\n]\s*/', ' ', $option->getDescription()),
            'default' => INF === $option->getDefault() ? 'INF' : $option->getDefault(),
        ];
    }

    private function getInputDefinitionData(InputDefinition $definition): array
    {
        $inputArguments = [];
        foreach ($definition->getArguments() as $name => $argument) {
            $inputArguments[$name] = $this->getInputArgumentData($argument);
        }

        $inputOptions = [];
        foreach ($definition->getOptions() as $name => $option) {
            $inputOptions[$name] = $this->getInputOptionData($option);
        }

        return ['arguments' => $inputArguments, 'options' => $inputOptions];
    }

    private function getCommandData(Command $command): array
    {
        $command->getSynopsis();
        $command->mergeApplicationDefinition(false);

        return [
            'name' => $command->getName(),
            'usage' => array_merge([$command->getSynopsis()], $command->getUsages(), $command->getAliases()),
            'description' => $command->getDescription(),
            'help' => $command->getProcessedHelp(),
            'definition' => $this->getInputDefinitionData($command->getNativeDefinition()),
            'hidden' => $command->isHidden(),
        ];
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Descriptor;

use Symfony\Component\Console\Application;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Helper\Helper;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputDefinition;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;

/**
 * Markdown descriptor.
 *
 * @author Jean-François Simon <contact@jfsimon.fr>
 *
 * @internal
 */
class MarkdownDescriptor extends Descriptor
{
    /**
     * {@inheritdoc}
     */
    public function describe(OutputInterface $output, $object, array $options = [])
    {
        $decorated = $output->isDecorated();
        $output->setDecorated(false);

        parent::describe($output, $object, $options);

        $output->setDecorated($decorated);
    }

    /**
     * {@inheritdoc}
     */
    protected function write($content, $decorated = true)
    {
        parent::write($content, $decorated);
    }

    /**
     * {@inheritdoc}
     */
    protected function describeInputArgument(InputArgument $argument, array $options = [])
    {
        $this->write(
            '#### `'.($argument->getName() ?: '<none>')."`\n\n"
            .($argument->getDescription() ? preg_replace('/\s*[\r\n]\s*/', "\n", $argument->getDescription())."\n\n" : '')
            .'* Is required: '.($argument->isRequired() ? 'yes' : 'no')."\n"
            .'* Is array: '.($argument->isArray() ? 'yes' : 'no')."\n"
            .'* Default: `'.str_replace("\n", '', var_export($argument->getDefault(), true)).'`'
        );
    }

    /**
     * {@inheritdoc}
     */
    protected function describeInputOption(InputOption $option, array $options = [])
    {
        $name = '--'.$option->getName();
        if ($option->getShortcut()) {
            $name .= '|-'.str_replace('|', '|-', $option->getShortcut()).'';
        }

        $this->write(
            '#### `'.$name.'`'."\n\n"
            .($option->getDescription() ? preg_replace('/\s*[\r\n]\s*/', "\n", $option->getDescription())."\n\n" : '')
            .'* Accept value: '.($option->acceptValue() ? 'yes' : 'no')."\n"
            .'* Is value required: '.($option->isValueRequired() ? 'yes' : 'no')."\n"
            .'* Is multiple: '.($option->isArray() ? 'yes' : 'no')."\n"
            .'* Default: `'.str_replace("\n", '', var_export($option->getDefault(), true)).'`'
        );
    }

    /**
     * {@inheritdoc}
     */
    protected function describeInputDefinition(InputDefinition $definition, array $options = [])
    {
        if ($showArguments = \count($definition->getArguments()) > 0) {
            $this->write('### Arguments');
            foreach ($definition->getArguments() as $argument) {
                $this->write("\n\n");
                $this->write($this->describeInputArgument($argument));
            }
        }

        if (\count($definition->getOptions()) > 0) {
            if ($showArguments) {
                $this->write("\n\n");
            }

            $this->write('### Options');
            foreach ($definition->getOptions() as $option) {
                $this->write("\n\n");
                $this->write($this->describeInputOption($option));
            }
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function describeCommand(Command $command, array $options = [])
    {
        $command->getSynopsis();
        $command->mergeApplicationDefinition(false);

        $this->write(
            '`'.$command->getName()."`\n"
            .str_repeat('-', Helper::strlen($command->getName()) + 2)."\n\n"
            .($command->getDescription() ? $command->getDescription()."\n\n" : '')
            .'### Usage'."\n\n"
            .array_reduce(array_merge([$command->getSynopsis()], $command->getAliases(), $command->getUsages()), function ($carry, $usage) {
                return $carry.'* `'.$usage.'`'."\n";
            })
        );

        if ($help = $command->getProcessedHelp()) {
            $this->write("\n");
            $this->write($help);
        }

        if ($command->getNativeDefinition()) {
            $this->write("\n\n");
            $this->describeInputDefinition($command->getNativeDefinition());
        }
    }

    /**
     * {@inheritdoc}
     */
    protected function describeApplication(Application $application, array $options = [])
    {
        $describedNamespace = isset($options['namespace']) ? $options['namespace'] : null;
        $description = new ApplicationDescription($application, $describedNamespace);
        $title = $this->getApplicationTitle($application);

        $this->write($title."\n".str_repeat('=', Helper::strlen($title)));

        foreach ($description->getNamespaces() as $namespace) {
            if (ApplicationDescription::GLOBAL_NAMESPACE !== $namespace['id']) {
                $this->write("\n\n");
                $this->write('**'.$namespace['id'].':**');
            }

            $this->write("\n\n");
            $this->write(implode("\n", array_map(function ($commandName) use ($description) {
                return sprintf('* [`%s`](#%s)', $commandName, str_replace(':', '', $description->getCommand($commandName)->getName()));
            }, $namespace['commands'])));
        }

        foreach ($description->getCommands() as $command) {
            $this->write("\n\n");
            $this->write($this->describeCommand($command));
        }
    }

    private function getApplicationTitle(Application $application): string
    {
        if ('UNKNOWN' !== $application->getName()) {
            if ('UNKNOWN' !== $application->getVersion()) {
                return sprintf('%s %s', $application->getName(), $application->getVersion());
            }

            return $application->getName();
        }

        return 'Console Tool';
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Tester;

use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\ArrayInput;

/**
 * Eases the testing of console commands.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 * @author Robin Chalas <robin.chalas@gmail.com>
 */
class CommandTester
{
    use TesterTrait;

    private $command;
    private $input;
    private $statusCode;

    public function __construct(Command $command)
    {
        $this->command = $command;
    }

    /**
     * Executes the command.
     *
     * Available execution options:
     *
     *  * interactive:               Sets the input interactive flag
     *  * decorated:                 Sets the output decorated flag
     *  * verbosity:                 Sets the output verbosity flag
     *  * capture_stderr_separately: Make output of stdOut and stdErr separately available
     *
     * @param array $input   An array of command arguments and options
     * @param array $options An array of execution options
     *
     * @return int The command exit code
     */
    public function execute(array $input, array $options = [])
    {
        // set the command name automatically if the application requires
        // this argument and no command name was passed
        if (!isset($input['command'])
            && (null !== $application = $this->command->getApplication())
            && $application->getDefinition()->hasArgument('command')
        ) {
            $input = array_merge(['command' => $this->command->getName()], $input);
        }

        $this->input = new ArrayInput($input);
        // Use an in-memory input stream even if no inputs are set so that QuestionHelper::ask() does not rely on the blocking STDIN.
        $this->input->setStream(self::createStream($this->inputs));

        if (isset($options['interactive'])) {
            $this->input->setInteractive($options['interactive']);
        }

        if (!isset($options['decorated'])) {
            $options['decorated'] = false;
        }

        $this->initOutput($options);

        return $this->statusCode = $this->command->run($this->input, $this->output);
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Tester;

use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\ConsoleOutput;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Output\StreamOutput;

/**
 * @author Amrouche Hamza <hamza.simperfit@gmail.com>
 */
trait TesterTrait
{
    /** @var StreamOutput */
    private $output;
    private $inputs = [];
    private $captureStreamsIndependently = false;

    /**
     * Gets the display returned by the last execution of the command or application.
     *
     * @param bool $normalize Whether to normalize end of lines to \n or not
     *
     * @return string The display
     */
    public function getDisplay($normalize = false)
    {
        if (null === $this->output) {
            throw new \RuntimeException('Output not initialized, did you execute the command before requesting the display?');
        }

        rewind($this->output->getStream());

        $display = stream_get_contents($this->output->getStream());

        if ($normalize) {
            $display = str_replace(PHP_EOL, "\n", $display);
        }

        return $display;
    }

    /**
     * Gets the output written to STDERR by the application.
     *
     * @param bool $normalize Whether to normalize end of lines to \n or not
     *
     * @return string
     */
    public function getErrorOutput($normalize = false)
    {
        if (!$this->captureStreamsIndependently) {
            throw new \LogicException('The error output is not available when the tester is run without "capture_stderr_separately" option set.');
        }

        rewind($this->output->getErrorOutput()->getStream());

        $display = stream_get_contents($this->output->getErrorOutput()->getStream());

        if ($normalize) {
            $display = str_replace(PHP_EOL, "\n", $display);
        }

        return $display;
    }

    /**
     * Gets the input instance used by the last execution of the command or application.
     *
     * @return InputInterface The current input instance
     */
    public function getInput()
    {
        return $this->input;
    }

    /**
     * Gets the output instance used by the last execution of the command or application.
     *
     * @return OutputInterface The current output instance
     */
    public function getOutput()
    {
        return $this->output;
    }

    /**
     * Gets the status code returned by the last execution of the command or application.
     *
     * @return int The status code
     */
    public function getStatusCode()
    {
        return $this->statusCode;
    }

    /**
     * Sets the user inputs.
     *
     * @param array $inputs An array of strings representing each input
     *                      passed to the command input stream
     *
     * @return $this
     */
    public function setInputs(array $inputs)
    {
        $this->inputs = $inputs;

        return $this;
    }

    /**
     * Initializes the output property.
     *
     * Available options:
     *
     *  * decorated:                 Sets the output decorated flag
     *  * verbosity:                 Sets the output verbosity flag
     *  * capture_stderr_separately: Make output of stdOut and stdErr separately available
     */
    private function initOutput(array $options)
    {
        $this->captureStreamsIndependently = \array_key_exists('capture_stderr_separately', $options) && $options['capture_stderr_separately'];
        if (!$this->captureStreamsIndependently) {
            $this->output = new StreamOutput(fopen('php://memory', 'w', false));
            if (isset($options['decorated'])) {
                $this->output->setDecorated($options['decorated']);
            }
            if (isset($options['verbosity'])) {
                $this->output->setVerbosity($options['verbosity']);
            }
        } else {
            $this->output = new ConsoleOutput(
                isset($options['verbosity']) ? $options['verbosity'] : ConsoleOutput::VERBOSITY_NORMAL,
                isset($options['decorated']) ? $options['decorated'] : null
            );

            $errorOutput = new StreamOutput(fopen('php://memory', 'w', false));
            $errorOutput->setFormatter($this->output->getFormatter());
            $errorOutput->setVerbosity($this->output->getVerbosity());
            $errorOutput->setDecorated($this->output->isDecorated());

            $reflectedOutput = new \ReflectionObject($this->output);
            $strErrProperty = $reflectedOutput->getProperty('stderr');
            $strErrProperty->setAccessible(true);
            $strErrProperty->setValue($this->output, $errorOutput);

            $reflectedParent = $reflectedOutput->getParentClass();
            $streamProperty = $reflectedParent->getProperty('stream');
            $streamProperty->setAccessible(true);
            $streamProperty->setValue($this->output, fopen('php://memory', 'w', false));
        }
    }

    /**
     * @return resource
     */
    private static function createStream(array $inputs)
    {
        $stream = fopen('php://memory', 'r+', false);

        foreach ($inputs as $input) {
            fwrite($stream, $input.PHP_EOL);
        }

        rewind($stream);

        return $stream;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Tester;

use Symfony\Component\Console\Application;
use Symfony\Component\Console\Input\ArrayInput;

/**
 * Eases the testing of console applications.
 *
 * When testing an application, don't forget to disable the auto exit flag:
 *
 *     $application = new Application();
 *     $application->setAutoExit(false);
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class ApplicationTester
{
    use TesterTrait;

    private $application;
    private $input;
    private $statusCode;

    public function __construct(Application $application)
    {
        $this->application = $application;
    }

    /**
     * Executes the application.
     *
     * Available options:
     *
     *  * interactive:               Sets the input interactive flag
     *  * decorated:                 Sets the output decorated flag
     *  * verbosity:                 Sets the output verbosity flag
     *  * capture_stderr_separately: Make output of stdOut and stdErr separately available
     *
     * @param array $input   An array of arguments and options
     * @param array $options An array of options
     *
     * @return int The command exit code
     */
    public function run(array $input, $options = [])
    {
        $this->input = new ArrayInput($input);
        if (isset($options['interactive'])) {
            $this->input->setInteractive($options['interactive']);
        }

        if ($this->inputs) {
            $this->input->setStream(self::createStream($this->inputs));
        }

        $this->initOutput($options);

        return $this->statusCode = $this->application->run($this->input, $this->output);
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Command;

use Symfony\Component\Console\Exception\LogicException;
use Symfony\Component\Lock\Lock;
use Symfony\Component\Lock\LockFactory;
use Symfony\Component\Lock\Store\FlockStore;
use Symfony\Component\Lock\Store\SemaphoreStore;

/**
 * Basic lock feature for commands.
 *
 * @author Geoffrey Brier <geoffrey.brier@gmail.com>
 */
trait LockableTrait
{
    /** @var Lock */
    private $lock;

    /**
     * Locks a command.
     */
    private function lock(string $name = null, bool $blocking = false): bool
    {
        if (!class_exists(SemaphoreStore::class)) {
            throw new LogicException('To enable the locking feature you must install the symfony/lock component.');
        }

        if (null !== $this->lock) {
            throw new LogicException('A lock is already in place.');
        }

        if (SemaphoreStore::isSupported()) {
            $store = new SemaphoreStore();
        } else {
            $store = new FlockStore();
        }

        $this->lock = (new LockFactory($store))->createLock($name ?: $this->getName());
        if (!$this->lock->acquire($blocking)) {
            $this->lock = null;

            return false;
        }

        return true;
    }

    /**
     * Releases the command lock if there is one.
     */
    private function release()
    {
        if ($this->lock) {
            $this->lock->release();
            $this->lock = null;
        }
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Command;

use Symfony\Component\Console\Helper\DescriptorHelper;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;

/**
 * HelpCommand displays the help for a given command.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class HelpCommand extends Command
{
    private $command;

    /**
     * {@inheritdoc}
     */
    protected function configure()
    {
        $this->ignoreValidationErrors();

        $this
            ->setName('help')
            ->setDefinition([
                new InputArgument('command_name', InputArgument::OPTIONAL, 'The command name', 'help'),
                new InputOption('format', null, InputOption::VALUE_REQUIRED, 'The output format (txt, xml, json, or md)', 'txt'),
                new InputOption('raw', null, InputOption::VALUE_NONE, 'To output raw command help'),
            ])
            ->setDescription('Displays help for a command')
            ->setHelp(<<<'EOF'
The <info>%command.name%</info> command displays help for a given command:

  <info>php %command.full_name% list</info>

You can also output the help in other formats by using the <comment>--format</comment> option:

  <info>php %command.full_name% --format=xml list</info>

To display the list of available commands, please use the <info>list</info> command.
EOF
            )
        ;
    }

    public function setCommand(Command $command)
    {
        $this->command = $command;
    }

    /**
     * {@inheritdoc}
     */
    protected function execute(InputInterface $input, OutputInterface $output)
    {
        if (null === $this->command) {
            $this->command = $this->getApplication()->find($input->getArgument('command_name'));
        }

        $helper = new DescriptorHelper();
        $helper->describe($output, $this->command, [
            'format' => $input->getOption('format'),
            'raw_text' => $input->getOption('raw'),
        ]);

        $this->command = null;

        return 0;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Command;

use Symfony\Component\Console\Helper\DescriptorHelper;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputDefinition;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;

/**
 * ListCommand displays the list of all available commands for the application.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class ListCommand extends Command
{
    /**
     * {@inheritdoc}
     */
    protected function configure()
    {
        $this
            ->setName('list')
            ->setDefinition($this->createDefinition())
            ->setDescription('Lists commands')
            ->setHelp(<<<'EOF'
The <info>%command.name%</info> command lists all commands:

  <info>php %command.full_name%</info>

You can also display the commands for a specific namespace:

  <info>php %command.full_name% test</info>

You can also output the information in other formats by using the <comment>--format</comment> option:

  <info>php %command.full_name% --format=xml</info>

It's also possible to get raw list of commands (useful for embedding command runner):

  <info>php %command.full_name% --raw</info>
EOF
            )
        ;
    }

    /**
     * {@inheritdoc}
     */
    public function getNativeDefinition()
    {
        return $this->createDefinition();
    }

    /**
     * {@inheritdoc}
     */
    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $helper = new DescriptorHelper();
        $helper->describe($output, $this->getApplication(), [
            'format' => $input->getOption('format'),
            'raw_text' => $input->getOption('raw'),
            'namespace' => $input->getArgument('namespace'),
        ]);

        return 0;
    }

    private function createDefinition(): InputDefinition
    {
        return new InputDefinition([
            new InputArgument('namespace', InputArgument::OPTIONAL, 'The namespace name'),
            new InputOption('raw', null, InputOption::VALUE_NONE, 'To output raw command list'),
            new InputOption('format', null, InputOption::VALUE_REQUIRED, 'The output format (txt, xml, json, or md)', 'txt'),
        ]);
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Command;

use Symfony\Component\Console\Application;
use Symfony\Component\Console\Exception\ExceptionInterface;
use Symfony\Component\Console\Exception\InvalidArgumentException;
use Symfony\Component\Console\Exception\LogicException;
use Symfony\Component\Console\Helper\HelperSet;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputDefinition;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;

/**
 * Base class for all commands.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class Command
{
    /**
     * @var string|null The default command name
     */
    protected static $defaultName;

    private $application;
    private $name;
    private $processTitle;
    private $aliases = [];
    private $definition;
    private $hidden = false;
    private $help = '';
    private $description = '';
    private $ignoreValidationErrors = false;
    private $applicationDefinitionMerged = false;
    private $applicationDefinitionMergedWithArgs = false;
    private $code;
    private $synopsis = [];
    private $usages = [];
    private $helperSet;

    /**
     * @return string|null The default command name or null when no default name is set
     */
    public static function getDefaultName()
    {
        $class = static::class;
        $r = new \ReflectionProperty($class, 'defaultName');

        return $class === $r->class ? static::$defaultName : null;
    }

    /**
     * @param string|null $name The name of the command; passing null means it must be set in configure()
     *
     * @throws LogicException When the command name is empty
     */
    public function __construct(string $name = null)
    {
        $this->definition = new InputDefinition();

        if (null !== $name || null !== $name = static::getDefaultName()) {
            $this->setName($name);
        }

        $this->configure();
    }

    /**
     * Ignores validation errors.
     *
     * This is mainly useful for the help command.
     */
    public function ignoreValidationErrors()
    {
        $this->ignoreValidationErrors = true;
    }

    public function setApplication(Application $application = null)
    {
        $this->application = $application;
        if ($application) {
            $this->setHelperSet($application->getHelperSet());
        } else {
            $this->helperSet = null;
        }
    }

    public function setHelperSet(HelperSet $helperSet)
    {
        $this->helperSet = $helperSet;
    }

    /**
     * Gets the helper set.
     *
     * @return HelperSet|null A HelperSet instance
     */
    public function getHelperSet()
    {
        return $this->helperSet;
    }

    /**
     * Gets the application instance for this command.
     *
     * @return Application|null An Application instance
     */
    public function getApplication()
    {
        return $this->application;
    }

    /**
     * Checks whether the command is enabled or not in the current environment.
     *
     * Override this to check for x or y and return false if the command can not
     * run properly under the current conditions.
     *
     * @return bool
     */
    public function isEnabled()
    {
        return true;
    }

    /**
     * Configures the current command.
     */
    protected function configure()
    {
    }

    /**
     * Executes the current command.
     *
     * This method is not abstract because you can use this class
     * as a concrete class. In this case, instead of defining the
     * execute() method, you set the code to execute by passing
     * a Closure to the setCode() method.
     *
     * @return int 0 if everything went fine, or an exit code
     *
     * @throws LogicException When this abstract method is not implemented
     *
     * @see setCode()
     */
    protected function execute(InputInterface $input, OutputInterface $output)
    {
        throw new LogicException('You must override the execute() method in the concrete command class.');
    }

    /**
     * Interacts with the user.
     *
     * This method is executed before the InputDefinition is validated.
     * This means that this is the only place where the command can
     * interactively ask for values of missing required arguments.
     */
    protected function interact(InputInterface $input, OutputInterface $output)
    {
    }

    /**
     * Initializes the command after the input has been bound and before the input
     * is validated.
     *
     * This is mainly useful when a lot of commands extends one main command
     * where some things need to be initialized based on the input arguments and options.
     *
     * @see InputInterface::bind()
     * @see InputInterface::validate()
     */
    protected function initialize(InputInterface $input, OutputInterface $output)
    {
    }

    /**
     * Runs the command.
     *
     * The code to execute is either defined directly with the
     * setCode() method or by overriding the execute() method
     * in a sub-class.
     *
     * @return int The command exit code
     *
     * @throws \Exception When binding input fails. Bypass this by calling {@link ignoreValidationErrors()}.
     *
     * @see setCode()
     * @see execute()
     */
    public function run(InputInterface $input, OutputInterface $output)
    {
        // force the creation of the synopsis before the merge with the app definition
        $this->getSynopsis(true);
        $this->getSynopsis(false);

        // add the application arguments and options
        $this->mergeApplicationDefinition();

        // bind the input against the command specific arguments/options
        try {
            $input->bind($this->definition);
        } catch (ExceptionInterface $e) {
            if (!$this->ignoreValidationErrors) {
                throw $e;
            }
        }

        $this->initialize($input, $output);

        if (null !== $this->processTitle) {
            if (\function_exists('cli_set_process_title')) {
                if (!@cli_set_process_title($this->processTitle)) {
                    if ('Darwin' === PHP_OS) {
                        $output->writeln('<comment>Running "cli_set_process_title" as an unprivileged user is not supported on MacOS.</comment>', OutputInterface::VERBOSITY_VERY_VERBOSE);
                    } else {
                        cli_set_process_title($this->processTitle);
                    }
                }
            } elseif (\function_exists('setproctitle')) {
                setproctitle($this->processTitle);
            } elseif (OutputInterface::VERBOSITY_VERY_VERBOSE === $output->getVerbosity()) {
                $output->writeln('<comment>Install the proctitle PECL to be able to change the process title.</comment>');
            }
        }

        if ($input->isInteractive()) {
            $this->interact($input, $output);
        }

        // The command name argument is often omitted when a command is executed directly with its run() method.
        // It would fail the validation if we didn't make sure the command argument is present,
        // since it's required by the application.
        if ($input->hasArgument('command') && null === $input->getArgument('command')) {
            $input->setArgument('command', $this->getName());
        }

        $input->validate();

        if ($this->code) {
            $statusCode = ($this->code)($input, $output);
        } else {
            $statusCode = $this->execute($input, $output);

            if (!\is_int($statusCode)) {
                @trigger_error(sprintf('Return value of "%s::execute()" should always be of the type int since Symfony 4.4, %s returned.', static::class, \gettype($statusCode)), E_USER_DEPRECATED);
            }
        }

        return is_numeric($statusCode) ? (int) $statusCode : 0;
    }

    /**
     * Sets the code to execute when running this command.
     *
     * If this method is used, it overrides the code defined
     * in the execute() method.
     *
     * @param callable $code A callable(InputInterface $input, OutputInterface $output)
     *
     * @return $this
     *
     * @throws InvalidArgumentException
     *
     * @see execute()
     */
    public function setCode(callable $code)
    {
        if ($code instanceof \Closure) {
            $r = new \ReflectionFunction($code);
            if (null === $r->getClosureThis()) {
                $code = \Closure::bind($code, $this);
            }
        }

        $this->code = $code;

        return $this;
    }

    /**
     * Merges the application definition with the command definition.
     *
     * This method is not part of public API and should not be used directly.
     *
     * @param bool $mergeArgs Whether to merge or not the Application definition arguments to Command definition arguments
     */
    public function mergeApplicationDefinition($mergeArgs = true)
    {
        if (null === $this->application || (true === $this->applicationDefinitionMerged && ($this->applicationDefinitionMergedWithArgs || !$mergeArgs))) {
            return;
        }

        $this->definition->addOptions($this->application->getDefinition()->getOptions());

        $this->applicationDefinitionMerged = true;

        if ($mergeArgs) {
            $currentArguments = $this->definition->getArguments();
            $this->definition->setArguments($this->application->getDefinition()->getArguments());
            $this->definition->addArguments($currentArguments);

            $this->applicationDefinitionMergedWithArgs = true;
        }
    }

    /**
     * Sets an array of argument and option instances.
     *
     * @param array|InputDefinition $definition An array of argument and option instances or a definition instance
     *
     * @return $this
     */
    public function setDefinition($definition)
    {
        if ($definition instanceof InputDefinition) {
            $this->definition = $definition;
        } else {
            $this->definition->setDefinition($definition);
        }

        $this->applicationDefinitionMerged = false;

        return $this;
    }

    /**
     * Gets the InputDefinition attached to this Command.
     *
     * @return InputDefinition An InputDefinition instance
     */
    public function getDefinition()
    {
        if (null === $this->definition) {
            throw new LogicException(sprintf('Command class "%s" is not correctly initialized. You probably forgot to call the parent constructor.', static::class));
        }

        return $this->definition;
    }

    /**
     * Gets the InputDefinition to be used to create representations of this Command.
     *
     * Can be overridden to provide the original command representation when it would otherwise
     * be changed by merging with the application InputDefinition.
     *
     * This method is not part of public API and should not be used directly.
     *
     * @return InputDefinition An InputDefinition instance
     */
    public function getNativeDefinition()
    {
        return $this->getDefinition();
    }

    /**
     * Adds an argument.
     *
     * @param string               $name        The argument name
     * @param int|null             $mode        The argument mode: InputArgument::REQUIRED or InputArgument::OPTIONAL
     * @param string               $description A description text
     * @param string|string[]|null $default     The default value (for InputArgument::OPTIONAL mode only)
     *
     * @throws InvalidArgumentException When argument mode is not valid
     *
     * @return $this
     */
    public function addArgument($name, $mode = null, $description = '', $default = null)
    {
        $this->definition->addArgument(new InputArgument($name, $mode, $description, $default));

        return $this;
    }

    /**
     * Adds an option.
     *
     * @param string                        $name        The option name
     * @param string|array|null             $shortcut    The shortcuts, can be null, a string of shortcuts delimited by | or an array of shortcuts
     * @param int|null                      $mode        The option mode: One of the InputOption::VALUE_* constants
     * @param string                        $description A description text
     * @param string|string[]|int|bool|null $default     The default value (must be null for InputOption::VALUE_NONE)
     *
     * @throws InvalidArgumentException If option mode is invalid or incompatible
     *
     * @return $this
     */
    public function addOption($name, $shortcut = null, $mode = null, $description = '', $default = null)
    {
        $this->definition->addOption(new InputOption($name, $shortcut, $mode, $description, $default));

        return $this;
    }

    /**
     * Sets the name of the command.
     *
     * This method can set both the namespace and the name if
     * you separate them by a colon (:)
     *
     *     $command->setName('foo:bar');
     *
     * @param string $name The command name
     *
     * @return $this
     *
     * @throws InvalidArgumentException When the name is invalid
     */
    public function setName($name)
    {
        $this->validateName($name);

        $this->name = $name;

        return $this;
    }

    /**
     * Sets the process title of the command.
     *
     * This feature should be used only when creating a long process command,
     * like a daemon.
     *
     * PHP 5.5+ or the proctitle PECL library is required
     *
     * @param string $title The process title
     *
     * @return $this
     */
    public function setProcessTitle($title)
    {
        $this->processTitle = $title;

        return $this;
    }

    /**
     * Returns the command name.
     *
     * @return string|null
     */
    public function getName()
    {
        return $this->name;
    }

    /**
     * @param bool $hidden Whether or not the command should be hidden from the list of commands
     *
     * @return Command The current instance
     */
    public function setHidden($hidden)
    {
        $this->hidden = (bool) $hidden;

        return $this;
    }

    /**
     * @return bool whether the command should be publicly shown or not
     */
    public function isHidden()
    {
        return $this->hidden;
    }

    /**
     * Sets the description for the command.
     *
     * @param string $description The description for the command
     *
     * @return $this
     */
    public function setDescription($description)
    {
        $this->description = $description;

        return $this;
    }

    /**
     * Returns the description for the command.
     *
     * @return string The description for the command
     */
    public function getDescription()
    {
        return $this->description;
    }

    /**
     * Sets the help for the command.
     *
     * @param string $help The help for the command
     *
     * @return $this
     */
    public function setHelp($help)
    {
        $this->help = $help;

        return $this;
    }

    /**
     * Returns the help for the command.
     *
     * @return string The help for the command
     */
    public function getHelp()
    {
        return $this->help;
    }

    /**
     * Returns the processed help for the command replacing the %command.name% and
     * %command.full_name% patterns with the real values dynamically.
     *
     * @return string The processed help for the command
     */
    public function getProcessedHelp()
    {
        $name = $this->name;
        $isSingleCommand = $this->application && $this->application->isSingleCommand();

        $placeholders = [
            '%command.name%',
            '%command.full_name%',
        ];
        $replacements = [
            $name,
            $isSingleCommand ? $_SERVER['PHP_SELF'] : $_SERVER['PHP_SELF'].' '.$name,
        ];

        return str_replace($placeholders, $replacements, $this->getHelp() ?: $this->getDescription());
    }

    /**
     * Sets the aliases for the command.
     *
     * @param string[] $aliases An array of aliases for the command
     *
     * @return $this
     *
     * @throws InvalidArgumentException When an alias is invalid
     */
    public function setAliases($aliases)
    {
        if (!\is_array($aliases) && !$aliases instanceof \Traversable) {
            throw new InvalidArgumentException('$aliases must be an array or an instance of \Traversable.');
        }

        foreach ($aliases as $alias) {
            $this->validateName($alias);
        }

        $this->aliases = $aliases;

        return $this;
    }

    /**
     * Returns the aliases for the command.
     *
     * @return array An array of aliases for the command
     */
    public function getAliases()
    {
        return $this->aliases;
    }

    /**
     * Returns the synopsis for the command.
     *
     * @param bool $short Whether to show the short version of the synopsis (with options folded) or not
     *
     * @return string The synopsis
     */
    public function getSynopsis($short = false)
    {
        $key = $short ? 'short' : 'long';

        if (!isset($this->synopsis[$key])) {
            $this->synopsis[$key] = trim(sprintf('%s %s', $this->name, $this->definition->getSynopsis($short)));
        }

        return $this->synopsis[$key];
    }

    /**
     * Add a command usage example.
     *
     * @param string $usage The usage, it'll be prefixed with the command name
     *
     * @return $this
     */
    public function addUsage($usage)
    {
        if (0 !== strpos($usage, $this->name)) {
            $usage = sprintf('%s %s', $this->name, $usage);
        }

        $this->usages[] = $usage;

        return $this;
    }

    /**
     * Returns alternative usages of the command.
     *
     * @return array
     */
    public function getUsages()
    {
        return $this->usages;
    }

    /**
     * Gets a helper instance by name.
     *
     * @param string $name The helper name
     *
     * @return mixed The helper value
     *
     * @throws LogicException           if no HelperSet is defined
     * @throws InvalidArgumentException if the helper is not defined
     */
    public function getHelper($name)
    {
        if (null === $this->helperSet) {
            throw new LogicException(sprintf('Cannot retrieve helper "%s" because there is no HelperSet defined. Did you forget to add your command to the application or to set the application on the command using the setApplication() method? You can also set the HelperSet directly using the setHelperSet() method.', $name));
        }

        return $this->helperSet->get($name);
    }

    /**
     * Validates a command name.
     *
     * It must be non-empty and parts can optionally be separated by ":".
     *
     * @throws InvalidArgumentException When the name is invalid
     */
    private function validateName(string $name)
    {
        if (!preg_match('/^[^\:]++(\:[^\:]++)*$/', $name)) {
            throw new InvalidArgumentException(sprintf('Command name "%s" is invalid.', $name));
        }
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Helper;

use Symfony\Component\Console\Exception\InvalidArgumentException;
use Symfony\Component\Console\Exception\LogicException;

/**
 * Defines the styles for a Table.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 * @author Саша Стаменковић <umpirsky@gmail.com>
 * @author Dany Maillard <danymaillard93b@gmail.com>
 */
class TableStyle
{
    private $paddingChar = ' ';
    private $horizontalOutsideBorderChar = '-';
    private $horizontalInsideBorderChar = '-';
    private $verticalOutsideBorderChar = '|';
    private $verticalInsideBorderChar = '|';
    private $crossingChar = '+';
    private $crossingTopRightChar = '+';
    private $crossingTopMidChar = '+';
    private $crossingTopLeftChar = '+';
    private $crossingMidRightChar = '+';
    private $crossingBottomRightChar = '+';
    private $crossingBottomMidChar = '+';
    private $crossingBottomLeftChar = '+';
    private $crossingMidLeftChar = '+';
    private $crossingTopLeftBottomChar = '+';
    private $crossingTopMidBottomChar = '+';
    private $crossingTopRightBottomChar = '+';
    private $headerTitleFormat = '<fg=black;bg=white;options=bold> %s </>';
    private $footerTitleFormat = '<fg=black;bg=white;options=bold> %s </>';
    private $cellHeaderFormat = '<info>%s</info>';
    private $cellRowFormat = '%s';
    private $cellRowContentFormat = ' %s ';
    private $borderFormat = '%s';
    private $padType = STR_PAD_RIGHT;

    /**
     * Sets padding character, used for cell padding.
     *
     * @param string $paddingChar
     *
     * @return $this
     */
    public function setPaddingChar($paddingChar)
    {
        if (!$paddingChar) {
            throw new LogicException('The padding char must not be empty.');
        }

        $this->paddingChar = $paddingChar;

        return $this;
    }

    /**
     * Gets padding character, used for cell padding.
     *
     * @return string
     */
    public function getPaddingChar()
    {
        return $this->paddingChar;
    }

    /**
     * Sets horizontal border characters.
     *
     * <code>
     * ╔═══════════════╤══════════════════════════╤══════════════════╗
     * 1 ISBN          2 Title                    │ Author           ║
     * ╠═══════════════╪══════════════════════════╪══════════════════╣
     * ║ 99921-58-10-7 │ Divine Comedy            │ Dante Alighieri  ║
     * ║ 9971-5-0210-0 │ A Tale of Two Cities     │ Charles Dickens  ║
     * ║ 960-425-059-0 │ The Lord of the Rings    │ J. R. R. Tolkien ║
     * ║ 80-902734-1-6 │ And Then There Were None │ Agatha Christie  ║
     * ╚═══════════════╧══════════════════════════╧══════════════════╝
     * </code>
     *
     * @param string      $outside Outside border char (see #1 of example)
     * @param string|null $inside  Inside border char (see #2 of example), equals $outside if null
     */
    public function setHorizontalBorderChars(string $outside, string $inside = null): self
    {
        $this->horizontalOutsideBorderChar = $outside;
        $this->horizontalInsideBorderChar = $inside ?? $outside;

        return $this;
    }

    /**
     * Sets horizontal border character.
     *
     * @param string $horizontalBorderChar
     *
     * @return $this
     *
     * @deprecated since Symfony 4.1, use {@link setHorizontalBorderChars()} instead.
     */
    public function setHorizontalBorderChar($horizontalBorderChar)
    {
        @trigger_error(sprintf('The "%s()" method is deprecated since Symfony 4.1, use setHorizontalBorderChars() instead.', __METHOD__), E_USER_DEPRECATED);

        return $this->setHorizontalBorderChars($horizontalBorderChar, $horizontalBorderChar);
    }

    /**
     * Gets horizontal border character.
     *
     * @return string
     *
     * @deprecated since Symfony 4.1, use {@link getBorderChars()} instead.
     */
    public function getHorizontalBorderChar()
    {
        @trigger_error(sprintf('The "%s()" method is deprecated since Symfony 4.1, use getBorderChars() instead.', __METHOD__), E_USER_DEPRECATED);

        return $this->horizontalOutsideBorderChar;
    }

    /**
     * Sets vertical border characters.
     *
     * <code>
     * ╔═══════════════╤══════════════════════════╤══════════════════╗
     * ║ ISBN          │ Title                    │ Author           ║
     * ╠═══════1═══════╪══════════════════════════╪══════════════════╣
     * ║ 99921-58-10-7 │ Divine Comedy            │ Dante Alighieri  ║
     * ║ 9971-5-0210-0 │ A Tale of Two Cities     │ Charles Dickens  ║
     * ╟───────2───────┼──────────────────────────┼──────────────────╢
     * ║ 960-425-059-0 │ The Lord of the Rings    │ J. R. R. Tolkien ║
     * ║ 80-902734-1-6 │ And Then There Were None │ Agatha Christie  ║
     * ╚═══════════════╧══════════════════════════╧══════════════════╝
     * </code>
     *
     * @param string      $outside Outside border char (see #1 of example)
     * @param string|null $inside  Inside border char (see #2 of example), equals $outside if null
     */
    public function setVerticalBorderChars(string $outside, string $inside = null): self
    {
        $this->verticalOutsideBorderChar = $outside;
        $this->verticalInsideBorderChar = $inside ?? $outside;

        return $this;
    }

    /**
     * Sets vertical border character.
     *
     * @param string $verticalBorderChar
     *
     * @return $this
     *
     * @deprecated since Symfony 4.1, use {@link setVerticalBorderChars()} instead.
     */
    public function setVerticalBorderChar($verticalBorderChar)
    {
        @trigger_error(sprintf('The "%s()" method is deprecated since Symfony 4.1, use setVerticalBorderChars() instead.', __METHOD__), E_USER_DEPRECATED);

        return $this->setVerticalBorderChars($verticalBorderChar, $verticalBorderChar);
    }

    /**
     * Gets vertical border character.
     *
     * @return string
     *
     * @deprecated since Symfony 4.1, use {@link getBorderChars()} instead.
     */
    public function getVerticalBorderChar()
    {
        @trigger_error(sprintf('The "%s()" method is deprecated since Symfony 4.1, use getBorderChars() instead.', __METHOD__), E_USER_DEPRECATED);

        return $this->verticalOutsideBorderChar;
    }

    /**
     * Gets border characters.
     *
     * @internal
     */
    public function getBorderChars(): array
    {
        return [
            $this->horizontalOutsideBorderChar,
            $this->verticalOutsideBorderChar,
            $this->horizontalInsideBorderChar,
            $this->verticalInsideBorderChar,
        ];
    }

    /**
     * Sets crossing characters.
     *
     * Example:
     * <code>
     * 1═══════════════2══════════════════════════2══════════════════3
     * ║ ISBN          │ Title                    │ Author           ║
     * 8'══════════════0'═════════════════════════0'═════════════════4'
     * ║ 99921-58-10-7 │ Divine Comedy            │ Dante Alighieri  ║
     * ║ 9971-5-0210-0 │ A Tale of Two Cities     │ Charles Dickens  ║
     * 8───────────────0──────────────────────────0──────────────────4
     * ║ 960-425-059-0 │ The Lord of the Rings    │ J. R. R. Tolkien ║
     * ║ 80-902734-1-6 │ And Then There Were None │ Agatha Christie  ║
     * 7═══════════════6══════════════════════════6══════════════════5
     * </code>
     *
     * @param string      $cross          Crossing char (see #0 of example)
     * @param string      $topLeft        Top left char (see #1 of example)
     * @param string      $topMid         Top mid char (see #2 of example)
     * @param string      $topRight       Top right char (see #3 of example)
     * @param string      $midRight       Mid right char (see #4 of example)
     * @param string      $bottomRight    Bottom right char (see #5 of example)
     * @param string      $bottomMid      Bottom mid char (see #6 of example)
     * @param string      $bottomLeft     Bottom left char (see #7 of example)
     * @param string      $midLeft        Mid left char (see #8 of example)
     * @param string|null $topLeftBottom  Top left bottom char (see #8' of example), equals to $midLeft if null
     * @param string|null $topMidBottom   Top mid bottom char (see #0' of example), equals to $cross if null
     * @param string|null $topRightBottom Top right bottom char (see #4' of example), equals to $midRight if null
     */
    public function setCrossingChars(string $cross, string $topLeft, string $topMid, string $topRight, string $midRight, string $bottomRight, string $bottomMid, string $bottomLeft, string $midLeft, string $topLeftBottom = null, string $topMidBottom = null, string $topRightBottom = null): self
    {
        $this->crossingChar = $cross;
        $this->crossingTopLeftChar = $topLeft;
        $this->crossingTopMidChar = $topMid;
        $this->crossingTopRightChar = $topRight;
        $this->crossingMidRightChar = $midRight;
        $this->crossingBottomRightChar = $bottomRight;
        $this->crossingBottomMidChar = $bottomMid;
        $this->crossingBottomLeftChar = $bottomLeft;
        $this->crossingMidLeftChar = $midLeft;
        $this->crossingTopLeftBottomChar = $topLeftBottom ?? $midLeft;
        $this->crossingTopMidBottomChar = $topMidBottom ?? $cross;
        $this->crossingTopRightBottomChar = $topRightBottom ?? $midRight;

        return $this;
    }

    /**
     * Sets default crossing character used for each cross.
     *
     * @see {@link setCrossingChars()} for setting each crossing individually.
     */
    public function setDefaultCrossingChar(string $char): self
    {
        return $this->setCrossingChars($char, $char, $char, $char, $char, $char, $char, $char, $char);
    }

    /**
     * Sets crossing character.
     *
     * @param string $crossingChar
     *
     * @return $this
     *
     * @deprecated since Symfony 4.1. Use {@link setDefaultCrossingChar()} instead.
     */
    public function setCrossingChar($crossingChar)
    {
        @trigger_error(sprintf('The "%s()" method is deprecated since Symfony 4.1. Use setDefaultCrossingChar() instead.', __METHOD__), E_USER_DEPRECATED);

        return $this->setDefaultCrossingChar($crossingChar);
    }

    /**
     * Gets crossing character.
     *
     * @return string
     */
    public function getCrossingChar()
    {
        return $this->crossingChar;
    }

    /**
     * Gets crossing characters.
     *
     * @internal
     */
    public function getCrossingChars(): array
    {
        return [
            $this->crossingChar,
            $this->crossingTopLeftChar,
            $this->crossingTopMidChar,
            $this->crossingTopRightChar,
            $this->crossingMidRightChar,
            $this->crossingBottomRightChar,
            $this->crossingBottomMidChar,
            $this->crossingBottomLeftChar,
            $this->crossingMidLeftChar,
            $this->crossingTopLeftBottomChar,
            $this->crossingTopMidBottomChar,
            $this->crossingTopRightBottomChar,
        ];
    }

    /**
     * Sets header cell format.
     *
     * @param string $cellHeaderFormat
     *
     * @return $this
     */
    public function setCellHeaderFormat($cellHeaderFormat)
    {
        $this->cellHeaderFormat = $cellHeaderFormat;

        return $this;
    }

    /**
     * Gets header cell format.
     *
     * @return string
     */
    public function getCellHeaderFormat()
    {
        return $this->cellHeaderFormat;
    }

    /**
     * Sets row cell format.
     *
     * @param string $cellRowFormat
     *
     * @return $this
     */
    public function setCellRowFormat($cellRowFormat)
    {
        $this->cellRowFormat = $cellRowFormat;

        return $this;
    }

    /**
     * Gets row cell format.
     *
     * @return string
     */
    public function getCellRowFormat()
    {
        return $this->cellRowFormat;
    }

    /**
     * Sets row cell content format.
     *
     * @param string $cellRowContentFormat
     *
     * @return $this
     */
    public function setCellRowContentFormat($cellRowContentFormat)
    {
        $this->cellRowContentFormat = $cellRowContentFormat;

        return $this;
    }

    /**
     * Gets row cell content format.
     *
     * @return string
     */
    public function getCellRowContentFormat()
    {
        return $this->cellRowContentFormat;
    }

    /**
     * Sets table border format.
     *
     * @param string $borderFormat
     *
     * @return $this
     */
    public function setBorderFormat($borderFormat)
    {
        $this->borderFormat = $borderFormat;

        return $this;
    }

    /**
     * Gets table border format.
     *
     * @return string
     */
    public function getBorderFormat()
    {
        return $this->borderFormat;
    }

    /**
     * Sets cell padding type.
     *
     * @param int $padType STR_PAD_*
     *
     * @return $this
     */
    public function setPadType($padType)
    {
        if (!\in_array($padType, [STR_PAD_LEFT, STR_PAD_RIGHT, STR_PAD_BOTH], true)) {
            throw new InvalidArgumentException('Invalid padding type. Expected one of (STR_PAD_LEFT, STR_PAD_RIGHT, STR_PAD_BOTH).');
        }

        $this->padType = $padType;

        return $this;
    }

    /**
     * Gets cell padding type.
     *
     * @return int
     */
    public function getPadType()
    {
        return $this->padType;
    }

    public function getHeaderTitleFormat(): string
    {
        return $this->headerTitleFormat;
    }

    public function setHeaderTitleFormat(string $format): self
    {
        $this->headerTitleFormat = $format;

        return $this;
    }

    public function getFooterTitleFormat(): string
    {
        return $this->footerTitleFormat;
    }

    public function setFooterTitleFormat(string $format): self
    {
        $this->footerTitleFormat = $format;

        return $this;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Helper;

/**
 * @internal
 */
class TableRows implements \IteratorAggregate
{
    private $generator;

    public function __construct(callable $generator)
    {
        $this->generator = $generator;
    }

    public function getIterator(): \Traversable
    {
        $g = $this->generator;

        return $g();
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Helper;

use Symfony\Component\Console\Formatter\OutputFormatter;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Question\ChoiceQuestion;
use Symfony\Component\Console\Question\ConfirmationQuestion;
use Symfony\Component\Console\Question\Question;
use Symfony\Component\Console\Style\SymfonyStyle;

/**
 * Symfony Style Guide compliant question helper.
 *
 * @author Kevin Bond <kevinbond@gmail.com>
 */
class SymfonyQuestionHelper extends QuestionHelper
{
    /**
     * {@inheritdoc}
     */
    protected function writePrompt(OutputInterface $output, Question $question)
    {
        $text = OutputFormatter::escapeTrailingBackslash($question->getQuestion());
        $default = $question->getDefault();

        switch (true) {
            case null === $default:
                $text = sprintf(' <info>%s</info>:', $text);

                break;

            case $question instanceof ConfirmationQuestion:
                $text = sprintf(' <info>%s (yes/no)</info> [<comment>%s</comment>]:', $text, $default ? 'yes' : 'no');

                break;

            case $question instanceof ChoiceQuestion && $question->isMultiselect():
                $choices = $question->getChoices();
                $default = explode(',', $default);

                foreach ($default as $key => $value) {
                    $default[$key] = $choices[trim($value)];
                }

                $text = sprintf(' <info>%s</info> [<comment>%s</comment>]:', $text, OutputFormatter::escape(implode(', ', $default)));

                break;

            case $question instanceof ChoiceQuestion:
                $choices = $question->getChoices();
                $text = sprintf(' <info>%s</info> [<comment>%s</comment>]:', $text, OutputFormatter::escape(isset($choices[$default]) ? $choices[$default] : $default));

                break;

            default:
                $text = sprintf(' <info>%s</info> [<comment>%s</comment>]:', $text, OutputFormatter::escape($default));
        }

        $output->writeln($text);

        $prompt = ' > ';

        if ($question instanceof ChoiceQuestion) {
            $output->writeln($this->formatChoiceQuestionChoices($question, 'comment'));

            $prompt = $question->getPrompt();
        }

        $output->write($prompt);
    }

    /**
     * {@inheritdoc}
     */
    protected function writeError(OutputInterface $output, \Exception $error)
    {
        if ($output instanceof SymfonyStyle) {
            $output->newLine();
            $output->error($error->getMessage());

            return;
        }

        parent::writeError($output, $error);
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Helper;

/**
 * HelperInterface is the interface all helpers must implement.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
interface HelperInterface
{
    /**
     * Sets the helper set associated with this helper.
     */
    public function setHelperSet(HelperSet $helperSet = null);

    /**
     * Gets the helper set associated with this helper.
     *
     * @return HelperSet A HelperSet instance
     */
    public function getHelperSet();

    /**
     * Returns the canonical name of this helper.
     *
     * @return string The canonical name
     */
    public function getName();
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Helper;

use Symfony\Component\Console\Exception\InvalidArgumentException;

/**
 * @author Abdellatif Ait boudad <a.aitboudad@gmail.com>
 */
class TableCell
{
    private $value;
    private $options = [
        'rowspan' => 1,
        'colspan' => 1,
    ];

    public function __construct(string $value = '', array $options = [])
    {
        $this->value = $value;

        // check option names
        if ($diff = array_diff(array_keys($options), array_keys($this->options))) {
            throw new InvalidArgumentException(sprintf('The TableCell does not support the following options: \'%s\'.', implode('\', \'', $diff)));
        }

        $this->options = array_merge($this->options, $options);
    }

    /**
     * Returns the cell value.
     *
     * @return string
     */
    public function __toString()
    {
        return $this->value;
    }

    /**
     * Gets number of colspan.
     *
     * @return int
     */
    public function getColspan()
    {
        return (int) $this->options['colspan'];
    }

    /**
     * Gets number of rowspan.
     *
     * @return int
     */
    public function getRowspan()
    {
        return (int) $this->options['rowspan'];
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Helper;

use Symfony\Component\Console\Output\ConsoleOutputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Process\Exception\ProcessFailedException;
use Symfony\Component\Process\Process;

/**
 * The ProcessHelper class provides helpers to run external processes.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 *
 * @final since Symfony 4.2
 */
class ProcessHelper extends Helper
{
    /**
     * Runs an external process.
     *
     * @param array|Process $cmd       An instance of Process or an array of the command and arguments
     * @param string|null   $error     An error message that must be displayed if something went wrong
     * @param callable|null $callback  A PHP callback to run whenever there is some
     *                                 output available on STDOUT or STDERR
     * @param int           $verbosity The threshold for verbosity
     *
     * @return Process The process that ran
     */
    public function run(OutputInterface $output, $cmd, $error = null, callable $callback = null, $verbosity = OutputInterface::VERBOSITY_VERY_VERBOSE)
    {
        if (!class_exists(Process::class)) {
            throw new \LogicException('The ProcessHelper cannot be run as the Process component is not installed. Try running "compose require symfony/process".');
        }

        if ($output instanceof ConsoleOutputInterface) {
            $output = $output->getErrorOutput();
        }

        $formatter = $this->getHelperSet()->get('debug_formatter');

        if ($cmd instanceof Process) {
            $cmd = [$cmd];
        }

        if (!\is_array($cmd)) {
            @trigger_error(sprintf('Passing a command as a string to "%s()" is deprecated since Symfony 4.2, pass it the command as an array of arguments instead.', __METHOD__), E_USER_DEPRECATED);
            $cmd = [method_exists(Process::class, 'fromShellCommandline') ? Process::fromShellCommandline($cmd) : new Process($cmd)];
        }

        if (\is_string($cmd[0] ?? null)) {
            $process = new Process($cmd);
            $cmd = [];
        } elseif (($cmd[0] ?? null) instanceof Process) {
            $process = $cmd[0];
            unset($cmd[0]);
        } else {
            throw new \InvalidArgumentException(sprintf('Invalid command provided to "%s()": the command should be an array whose first element is either the path to the binary to run or a "Process" object.', __METHOD__));
        }

        if ($verbosity <= $output->getVerbosity()) {
            $output->write($formatter->start(spl_object_hash($process), $this->escapeString($process->getCommandLine())));
        }

        if ($output->isDebug()) {
            $callback = $this->wrapCallback($output, $process, $callback);
        }

        $process->run($callback, $cmd);

        if ($verbosity <= $output->getVerbosity()) {
            $message = $process->isSuccessful() ? 'Command ran successfully' : sprintf('%s Command did not run successfully', $process->getExitCode());
            $output->write($formatter->stop(spl_object_hash($process), $message, $process->isSuccessful()));
        }

        if (!$process->isSuccessful() && null !== $error) {
            $output->writeln(sprintf('<error>%s</error>', $this->escapeString($error)));
        }

        return $process;
    }

    /**
     * Runs the process.
     *
     * This is identical to run() except that an exception is thrown if the process
     * exits with a non-zero exit code.
     *
     * @param string|Process $cmd      An instance of Process or a command to run
     * @param string|null    $error    An error message that must be displayed if something went wrong
     * @param callable|null  $callback A PHP callback to run whenever there is some
     *                                 output available on STDOUT or STDERR
     *
     * @return Process The process that ran
     *
     * @throws ProcessFailedException
     *
     * @see run()
     */
    public function mustRun(OutputInterface $output, $cmd, $error = null, callable $callback = null)
    {
        $process = $this->run($output, $cmd, $error, $callback);

        if (!$process->isSuccessful()) {
            throw new ProcessFailedException($process);
        }

        return $process;
    }

    /**
     * Wraps a Process callback to add debugging output.
     *
     * @return callable
     */
    public function wrapCallback(OutputInterface $output, Process $process, callable $callback = null)
    {
        if ($output instanceof ConsoleOutputInterface) {
            $output = $output->getErrorOutput();
        }

        $formatter = $this->getHelperSet()->get('debug_formatter');

        return function ($type, $buffer) use ($output, $process, $callback, $formatter) {
            $output->write($formatter->progress(spl_object_hash($process), $this->escapeString($buffer), Process::ERR === $type));

            if (null !== $callback) {
                $callback($type, $buffer);
            }
        };
    }

    private function escapeString(string $str): string
    {
        return str_replace('<', '\\<', $str);
    }

    /**
     * {@inheritdoc}
     */
    public function getName()
    {
        return 'process';
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Helper;

/**
 * Marks a row as being a separator.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class TableSeparator extends TableCell
{
    public function __construct(array $options = [])
    {
        parent::__construct('', $options);
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Helper;

use Symfony\Component\Console\Formatter\OutputFormatter;

/**
 * The Formatter class provides helpers to format messages.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class FormatterHelper extends Helper
{
    /**
     * Formats a message within a section.
     *
     * @param string $section The section name
     * @param string $message The message
     * @param string $style   The style to apply to the section
     *
     * @return string The format section
     */
    public function formatSection($section, $message, $style = 'info')
    {
        return sprintf('<%s>[%s]</%s> %s', $style, $section, $style, $message);
    }

    /**
     * Formats a message as a block of text.
     *
     * @param string|array $messages The message to write in the block
     * @param string       $style    The style to apply to the whole block
     * @param bool         $large    Whether to return a large block
     *
     * @return string The formatter message
     */
    public function formatBlock($messages, $style, $large = false)
    {
        if (!\is_array($messages)) {
            $messages = [$messages];
        }

        $len = 0;
        $lines = [];
        foreach ($messages as $message) {
            $message = OutputFormatter::escape($message);
            $lines[] = sprintf($large ? '  %s  ' : ' %s ', $message);
            $len = max(self::strlen($message) + ($large ? 4 : 2), $len);
        }

        $messages = $large ? [str_repeat(' ', $len)] : [];
        for ($i = 0; isset($lines[$i]); ++$i) {
            $messages[] = $lines[$i].str_repeat(' ', $len - self::strlen($lines[$i]));
        }
        if ($large) {
            $messages[] = str_repeat(' ', $len);
        }

        for ($i = 0; isset($messages[$i]); ++$i) {
            $messages[$i] = sprintf('<%s>%s</%s>', $style, $messages[$i], $style);
        }

        return implode("\n", $messages);
    }

    /**
     * Truncates a message to the given length.
     *
     * @param string $message
     * @param int    $length
     * @param string $suffix
     *
     * @return string
     */
    public function truncate($message, $length, $suffix = '...')
    {
        $computedLength = $length - self::strlen($suffix);

        if ($computedLength > self::strlen($message)) {
            return $message;
        }

        return self::substr($message, 0, $length).$suffix;
    }

    /**
     * {@inheritdoc}
     */
    public function getName()
    {
        return 'formatter';
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Helper;

use Symfony\Component\Console\Exception\LogicException;
use Symfony\Component\Console\Output\ConsoleOutputInterface;
use Symfony\Component\Console\Output\ConsoleSectionOutput;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Terminal;

/**
 * The ProgressBar provides helpers to display progress output.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 * @author Chris Jones <leeked@gmail.com>
 */
final class ProgressBar
{
    private $barWidth = 28;
    private $barChar;
    private $emptyBarChar = '-';
    private $progressChar = '>';
    private $format;
    private $internalFormat;
    private $redrawFreq = 1;
    private $writeCount;
    private $lastWriteTime;
    private $minSecondsBetweenRedraws = 0;
    private $maxSecondsBetweenRedraws = 1;
    private $output;
    private $step = 0;
    private $max;
    private $startTime;
    private $stepWidth;
    private $percent = 0.0;
    private $formatLineCount;
    private $messages = [];
    private $overwrite = true;
    private $terminal;
    private $previousMessage;

    private static $formatters;
    private static $formats;

    /**
     * @param int $max Maximum steps (0 if unknown)
     */
    public function __construct(OutputInterface $output, int $max = 0, float $minSecondsBetweenRedraws = 0.1)
    {
        if ($output instanceof ConsoleOutputInterface) {
            $output = $output->getErrorOutput();
        }

        $this->output = $output;
        $this->setMaxSteps($max);
        $this->terminal = new Terminal();

        if (0 < $minSecondsBetweenRedraws) {
            $this->redrawFreq = null;
            $this->minSecondsBetweenRedraws = $minSecondsBetweenRedraws;
        }

        if (!$this->output->isDecorated()) {
            // disable overwrite when output does not support ANSI codes.
            $this->overwrite = false;

            // set a reasonable redraw frequency so output isn't flooded
            $this->redrawFreq = null;
        }

        $this->startTime = time();
    }

    /**
     * Sets a placeholder formatter for a given name.
     *
     * This method also allow you to override an existing placeholder.
     *
     * @param string   $name     The placeholder name (including the delimiter char like %)
     * @param callable $callable A PHP callable
     */
    public static function setPlaceholderFormatterDefinition(string $name, callable $callable): void
    {
        if (!self::$formatters) {
            self::$formatters = self::initPlaceholderFormatters();
        }

        self::$formatters[$name] = $callable;
    }

    /**
     * Gets the placeholder formatter for a given name.
     *
     * @param string $name The placeholder name (including the delimiter char like %)
     *
     * @return callable|null A PHP callable
     */
    public static function getPlaceholderFormatterDefinition(string $name): ?callable
    {
        if (!self::$formatters) {
            self::$formatters = self::initPlaceholderFormatters();
        }

        return isset(self::$formatters[$name]) ? self::$formatters[$name] : null;
    }

    /**
     * Sets a format for a given name.
     *
     * This method also allow you to override an existing format.
     *
     * @param string $name   The format name
     * @param string $format A format string
     */
    public static function setFormatDefinition(string $name, string $format): void
    {
        if (!self::$formats) {
            self::$formats = self::initFormats();
        }

        self::$formats[$name] = $format;
    }

    /**
     * Gets the format for a given name.
     *
     * @param string $name The format name
     *
     * @return string|null A format string
     */
    public static function getFormatDefinition(string $name): ?string
    {
        if (!self::$formats) {
            self::$formats = self::initFormats();
        }

        return isset(self::$formats[$name]) ? self::$formats[$name] : null;
    }

    /**
     * Associates a text with a named placeholder.
     *
     * The text is displayed when the progress bar is rendered but only
     * when the corresponding placeholder is part of the custom format line
     * (by wrapping the name with %).
     *
     * @param string $message The text to associate with the placeholder
     * @param string $name    The name of the placeholder
     */
    public function setMessage(string $message, string $name = 'message')
    {
        $this->messages[$name] = $message;
    }

    public function getMessage(string $name = 'message')
    {
        return $this->messages[$name];
    }

    public function getStartTime(): int
    {
        return $this->startTime;
    }

    public function getMaxSteps(): int
    {
        return $this->max;
    }

    public function getProgress(): int
    {
        return $this->step;
    }

    private function getStepWidth(): int
    {
        return $this->stepWidth;
    }

    public function getProgressPercent(): float
    {
        return $this->percent;
    }

    public function getBarOffset(): int
    {
        return floor($this->max ? $this->percent * $this->barWidth : (null === $this->redrawFreq ? min(5, $this->barWidth / 15) * $this->writeCount : $this->step) % $this->barWidth);
    }

    public function setBarWidth(int $size)
    {
        $this->barWidth = max(1, $size);
    }

    public function getBarWidth(): int
    {
        return $this->barWidth;
    }

    public function setBarCharacter(string $char)
    {
        $this->barChar = $char;
    }

    public function getBarCharacter(): string
    {
        if (null === $this->barChar) {
            return $this->max ? '=' : $this->emptyBarChar;
        }

        return $this->barChar;
    }

    public function setEmptyBarCharacter(string $char)
    {
        $this->emptyBarChar = $char;
    }

    public function getEmptyBarCharacter(): string
    {
        return $this->emptyBarChar;
    }

    public function setProgressCharacter(string $char)
    {
        $this->progressChar = $char;
    }

    public function getProgressCharacter(): string
    {
        return $this->progressChar;
    }

    public function setFormat(string $format)
    {
        $this->format = null;
        $this->internalFormat = $format;
    }

    /**
     * Sets the redraw frequency.
     *
     * @param int|float $freq The frequency in steps
     */
    public function setRedrawFrequency(?int $freq)
    {
        $this->redrawFreq = null !== $freq ? max(1, $freq) : null;
    }

    public function minSecondsBetweenRedraws(float $seconds): void
    {
        $this->minSecondsBetweenRedraws = $seconds;
    }

    public function maxSecondsBetweenRedraws(float $seconds): void
    {
        $this->maxSecondsBetweenRedraws = $seconds;
    }

    /**
     * Returns an iterator that will automatically update the progress bar when iterated.
     *
     * @param int|null $max Number of steps to complete the bar (0 if indeterminate), if null it will be inferred from $iterable
     */
    public function iterate(iterable $iterable, int $max = null): iterable
    {
        $this->start($max ?? (is_countable($iterable) ? \count($iterable) : 0));

        foreach ($iterable as $key => $value) {
            yield $key => $value;

            $this->advance();
        }

        $this->finish();
    }

    /**
     * Starts the progress output.
     *
     * @param int|null $max Number of steps to complete the bar (0 if indeterminate), null to leave unchanged
     */
    public function start(int $max = null)
    {
        $this->startTime = time();
        $this->step = 0;
        $this->percent = 0.0;

        if (null !== $max) {
            $this->setMaxSteps($max);
        }

        $this->display();
    }

    /**
     * Advances the progress output X steps.
     *
     * @param int $step Number of steps to advance
     */
    public function advance(int $step = 1)
    {
        $this->setProgress($this->step + $step);
    }

    /**
     * Sets whether to overwrite the progressbar, false for new line.
     */
    public function setOverwrite(bool $overwrite)
    {
        $this->overwrite = $overwrite;
    }

    public function setProgress(int $step)
    {
        if ($this->max && $step > $this->max) {
            $this->max = $step;
        } elseif ($step < 0) {
            $step = 0;
        }

        $redrawFreq = $this->redrawFreq ?? (($this->max ?: 10) / 10);
        $prevPeriod = (int) ($this->step / $redrawFreq);
        $currPeriod = (int) ($step / $redrawFreq);
        $this->step = $step;
        $this->percent = $this->max ? (float) $this->step / $this->max : 0;
        $timeInterval = microtime(true) - $this->lastWriteTime;

        // Draw regardless of other limits
        if ($this->max === $step) {
            $this->display();

            return;
        }

        // Throttling
        if ($timeInterval < $this->minSecondsBetweenRedraws) {
            return;
        }

        // Draw each step period, but not too late
        if ($prevPeriod !== $currPeriod || $timeInterval >= $this->maxSecondsBetweenRedraws) {
            $this->display();
        }
    }

    public function setMaxSteps(int $max)
    {
        $this->format = null;
        $this->max = max(0, $max);
        $this->stepWidth = $this->max ? Helper::strlen((string) $this->max) : 4;
    }

    /**
     * Finishes the progress output.
     */
    public function finish(): void
    {
        if (!$this->max) {
            $this->max = $this->step;
        }

        if ($this->step === $this->max && !$this->overwrite) {
            // prevent double 100% output
            return;
        }

        $this->setProgress($this->max);
    }

    /**
     * Outputs the current progress string.
     */
    public function display(): void
    {
        if (OutputInterface::VERBOSITY_QUIET === $this->output->getVerbosity()) {
            return;
        }

        if (null === $this->format) {
            $this->setRealFormat($this->internalFormat ?: $this->determineBestFormat());
        }

        $this->overwrite($this->buildLine());
    }

    /**
     * Removes the progress bar from the current line.
     *
     * This is useful if you wish to write some output
     * while a progress bar is running.
     * Call display() to show the progress bar again.
     */
    public function clear(): void
    {
        if (!$this->overwrite) {
            return;
        }

        if (null === $this->format) {
            $this->setRealFormat($this->internalFormat ?: $this->determineBestFormat());
        }

        $this->overwrite('');
    }

    private function setRealFormat(string $format)
    {
        // try to use the _nomax variant if available
        if (!$this->max && null !== self::getFormatDefinition($format.'_nomax')) {
            $this->format = self::getFormatDefinition($format.'_nomax');
        } elseif (null !== self::getFormatDefinition($format)) {
            $this->format = self::getFormatDefinition($format);
        } else {
            $this->format = $format;
        }

        $this->formatLineCount = substr_count($this->format, "\n");
    }

    /**
     * Overwrites a previous message to the output.
     */
    private function overwrite(string $message): void
    {
        if ($this->previousMessage === $message) {
            return;
        }

        $originalMessage = $message;

        if ($this->overwrite) {
            if (null !== $this->previousMessage) {
                if ($this->output instanceof ConsoleSectionOutput) {
                    $lines = floor(Helper::strlen($message) / $this->terminal->getWidth()) + $this->formatLineCount + 1;
                    $this->output->clear($lines);
                } else {
                    // Erase previous lines
                    if ($this->formatLineCount > 0) {
                        $message = str_repeat("\x1B[1A\x1B[2K", $this->formatLineCount).$message;
                    }

                    // Move the cursor to the beginning of the line and erase the line
                    $message = "\x0D\x1B[2K$message";
                }
            }
        } elseif ($this->step > 0) {
            $message = PHP_EOL.$message;
        }

        $this->previousMessage = $originalMessage;
        $this->lastWriteTime = microtime(true);

        $this->output->write($message);
        ++$this->writeCount;
    }

    private function determineBestFormat(): string
    {
        switch ($this->output->getVerbosity()) {
            // OutputInterface::VERBOSITY_QUIET: display is disabled anyway
            case OutputInterface::VERBOSITY_VERBOSE:
                return $this->max ? 'verbose' : 'verbose_nomax';
            case OutputInterface::VERBOSITY_VERY_VERBOSE:
                return $this->max ? 'very_verbose' : 'very_verbose_nomax';
            case OutputInterface::VERBOSITY_DEBUG:
                return $this->max ? 'debug' : 'debug_nomax';
            default:
                return $this->max ? 'normal' : 'normal_nomax';
        }
    }

    private static function initPlaceholderFormatters(): array
    {
        return [
            'bar' => function (self $bar, OutputInterface $output) {
                $completeBars = $bar->getBarOffset();
                $display = str_repeat($bar->getBarCharacter(), $completeBars);
                if ($completeBars < $bar->getBarWidth()) {
                    $emptyBars = $bar->getBarWidth() - $completeBars - Helper::strlenWithoutDecoration($output->getFormatter(), $bar->getProgressCharacter());
                    $display .= $bar->getProgressCharacter().str_repeat($bar->getEmptyBarCharacter(), $emptyBars);
                }

                return $display;
            },
            'elapsed' => function (self $bar) {
                return Helper::formatTime(time() - $bar->getStartTime());
            },
            'remaining' => function (self $bar) {
                if (!$bar->getMaxSteps()) {
                    throw new LogicException('Unable to display the remaining time if the maximum number of steps is not set.');
                }

                if (!$bar->getProgress()) {
                    $remaining = 0;
                } else {
                    $remaining = round((time() - $bar->getStartTime()) / $bar->getProgress() * ($bar->getMaxSteps() - $bar->getProgress()));
                }

                return Helper::formatTime($remaining);
            },
            'estimated' => function (self $bar) {
                if (!$bar->getMaxSteps()) {
                    throw new LogicException('Unable to display the estimated time if the maximum number of steps is not set.');
                }

                if (!$bar->getProgress()) {
                    $estimated = 0;
                } else {
                    $estimated = round((time() - $bar->getStartTime()) / $bar->getProgress() * $bar->getMaxSteps());
                }

                return Helper::formatTime($estimated);
            },
            'memory' => function (self $bar) {
                return Helper::formatMemory(memory_get_usage(true));
            },
            'current' => function (self $bar) {
                return str_pad($bar->getProgress(), $bar->getStepWidth(), ' ', STR_PAD_LEFT);
            },
            'max' => function (self $bar) {
                return $bar->getMaxSteps();
            },
            'percent' => function (self $bar) {
                return floor($bar->getProgressPercent() * 100);
            },
        ];
    }

    private static function initFormats(): array
    {
        return [
            'normal' => ' %current%/%max% [%bar%] %percent:3s%%',
            'normal_nomax' => ' %current% [%bar%]',

            'verbose' => ' %current%/%max% [%bar%] %percent:3s%% %elapsed:6s%',
            'verbose_nomax' => ' %current% [%bar%] %elapsed:6s%',

            'very_verbose' => ' %current%/%max% [%bar%] %percent:3s%% %elapsed:6s%/%estimated:-6s%',
            'very_verbose_nomax' => ' %current% [%bar%] %elapsed:6s%',

            'debug' => ' %current%/%max% [%bar%] %percent:3s%% %elapsed:6s%/%estimated:-6s% %memory:6s%',
            'debug_nomax' => ' %current% [%bar%] %elapsed:6s% %memory:6s%',
        ];
    }

    private function buildLine(): string
    {
        $regex = "{%([a-z\-_]+)(?:\:([^%]+))?%}i";
        $callback = function ($matches) {
            if ($formatter = $this::getPlaceholderFormatterDefinition($matches[1])) {
                $text = $formatter($this, $this->output);
            } elseif (isset($this->messages[$matches[1]])) {
                $text = $this->messages[$matches[1]];
            } else {
                return $matches[0];
            }

            if (isset($matches[2])) {
                $text = sprintf('%'.$matches[2], $text);
            }

            return $text;
        };
        $line = preg_replace_callback($regex, $callback, $this->format);

        // gets string length for each sub line with multiline format
        $linesLength = array_map(function ($subLine) {
            return Helper::strlenWithoutDecoration($this->output->getFormatter(), rtrim($subLine, "\r"));
        }, explode("\n", $line));

        $linesWidth = max($linesLength);

        $terminalWidth = $this->terminal->getWidth();
        if ($linesWidth <= $terminalWidth) {
            return $line;
        }

        $this->setBarWidth($this->barWidth - $linesWidth + $terminalWidth);

        return preg_replace_callback($regex, $callback, $this->format);
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Helper;

/**
 * Helps outputting debug information when running an external program from a command.
 *
 * An external program can be a Process, an HTTP request, or anything else.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class DebugFormatterHelper extends Helper
{
    private $colors = ['black', 'red', 'green', 'yellow', 'blue', 'magenta', 'cyan', 'white', 'default'];
    private $started = [];
    private $count = -1;

    /**
     * Starts a debug formatting session.
     *
     * @param string $id      The id of the formatting session
     * @param string $message The message to display
     * @param string $prefix  The prefix to use
     *
     * @return string
     */
    public function start($id, $message, $prefix = 'RUN')
    {
        $this->started[$id] = ['border' => ++$this->count % \count($this->colors)];

        return sprintf("%s<bg=blue;fg=white> %s </> <fg=blue>%s</>\n", $this->getBorder($id), $prefix, $message);
    }

    /**
     * Adds progress to a formatting session.
     *
     * @param string $id          The id of the formatting session
     * @param string $buffer      The message to display
     * @param bool   $error       Whether to consider the buffer as error
     * @param string $prefix      The prefix for output
     * @param string $errorPrefix The prefix for error output
     *
     * @return string
     */
    public function progress($id, $buffer, $error = false, $prefix = 'OUT', $errorPrefix = 'ERR')
    {
        $message = '';

        if ($error) {
            if (isset($this->started[$id]['out'])) {
                $message .= "\n";
                unset($this->started[$id]['out']);
            }
            if (!isset($this->started[$id]['err'])) {
                $message .= sprintf('%s<bg=red;fg=white> %s </> ', $this->getBorder($id), $errorPrefix);
                $this->started[$id]['err'] = true;
            }

            $message .= str_replace("\n", sprintf("\n%s<bg=red;fg=white> %s </> ", $this->getBorder($id), $errorPrefix), $buffer);
        } else {
            if (isset($this->started[$id]['err'])) {
                $message .= "\n";
                unset($this->started[$id]['err']);
            }
            if (!isset($this->started[$id]['out'])) {
                $message .= sprintf('%s<bg=green;fg=white> %s </> ', $this->getBorder($id), $prefix);
                $this->started[$id]['out'] = true;
            }

            $message .= str_replace("\n", sprintf("\n%s<bg=green;fg=white> %s </> ", $this->getBorder($id), $prefix), $buffer);
        }

        return $message;
    }

    /**
     * Stops a formatting session.
     *
     * @param string $id         The id of the formatting session
     * @param string $message    The message to display
     * @param bool   $successful Whether to consider the result as success
     * @param string $prefix     The prefix for the end output
     *
     * @return string
     */
    public function stop($id, $message, $successful, $prefix = 'RES')
    {
        $trailingEOL = isset($this->started[$id]['out']) || isset($this->started[$id]['err']) ? "\n" : '';

        if ($successful) {
            return sprintf("%s%s<bg=green;fg=white> %s </> <fg=green>%s</>\n", $trailingEOL, $this->getBorder($id), $prefix, $message);
        }

        $message = sprintf("%s%s<bg=red;fg=white> %s </> <fg=red>%s</>\n", $trailingEOL, $this->getBorder($id), $prefix, $message);

        unset($this->started[$id]['out'], $this->started[$id]['err']);

        return $message;
    }

    private function getBorder(string $id): string
    {
        return sprintf('<bg=%s> </>', $this->colors[$this->started[$id]['border']]);
    }

    /**
     * {@inheritdoc}
     */
    public function getName()
    {
        return 'debug_formatter';
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Helper;

use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Exception\InvalidArgumentException;

/**
 * HelperSet represents a set of helpers to be used with a command.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class HelperSet implements \IteratorAggregate
{
    /**
     * @var Helper[]
     */
    private $helpers = [];
    private $command;

    /**
     * @param Helper[] $helpers An array of helper
     */
    public function __construct(array $helpers = [])
    {
        foreach ($helpers as $alias => $helper) {
            $this->set($helper, \is_int($alias) ? null : $alias);
        }
    }

    /**
     * Sets a helper.
     *
     * @param string $alias An alias
     */
    public function set(HelperInterface $helper, $alias = null)
    {
        $this->helpers[$helper->getName()] = $helper;
        if (null !== $alias) {
            $this->helpers[$alias] = $helper;
        }

        $helper->setHelperSet($this);
    }

    /**
     * Returns true if the helper if defined.
     *
     * @param string $name The helper name
     *
     * @return bool true if the helper is defined, false otherwise
     */
    public function has($name)
    {
        return isset($this->helpers[$name]);
    }

    /**
     * Gets a helper value.
     *
     * @param string $name The helper name
     *
     * @return HelperInterface The helper instance
     *
     * @throws InvalidArgumentException if the helper is not defined
     */
    public function get($name)
    {
        if (!$this->has($name)) {
            throw new InvalidArgumentException(sprintf('The helper "%s" is not defined.', $name));
        }

        return $this->helpers[$name];
    }

    public function setCommand(Command $command = null)
    {
        $this->command = $command;
    }

    /**
     * Gets the command associated with this helper set.
     *
     * @return Command A Command instance
     */
    public function getCommand()
    {
        return $this->command;
    }

    /**
     * @return Helper[]
     */
    public function getIterator()
    {
        return new \ArrayIterator($this->helpers);
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Helper;

use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\VarDumper\Cloner\ClonerInterface;
use Symfony\Component\VarDumper\Cloner\VarCloner;
use Symfony\Component\VarDumper\Dumper\CliDumper;

/**
 * @author Roland Franssen <franssen.roland@gmail.com>
 */
final class Dumper
{
    private $output;
    private $dumper;
    private $cloner;
    private $handler;

    public function __construct(OutputInterface $output, CliDumper $dumper = null, ClonerInterface $cloner = null)
    {
        $this->output = $output;
        $this->dumper = $dumper;
        $this->cloner = $cloner;

        if (class_exists(CliDumper::class)) {
            $this->handler = function ($var): string {
                $dumper = $this->dumper ?? $this->dumper = new CliDumper(null, null, CliDumper::DUMP_LIGHT_ARRAY | CliDumper::DUMP_COMMA_SEPARATOR);
                $dumper->setColors($this->output->isDecorated());

                return rtrim($dumper->dump(($this->cloner ?? $this->cloner = new VarCloner())->cloneVar($var)->withRefHandles(false), true));
            };
        } else {
            $this->handler = function ($var): string {
                switch (true) {
                    case null === $var:
                        return 'null';
                    case true === $var:
                        return 'true';
                    case false === $var:
                        return 'false';
                    case \is_string($var):
                        return '"'.$var.'"';
                    default:
                        return rtrim(print_r($var, true));
                }
            };
        }
    }

    public function __invoke($var): string
    {
        return ($this->handler)($var);
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Helper;

use Symfony\Component\Console\Input\InputAwareInterface;
use Symfony\Component\Console\Input\InputInterface;

/**
 * An implementation of InputAwareInterface for Helpers.
 *
 * @author Wouter J <waldio.webdesign@gmail.com>
 */
abstract class InputAwareHelper extends Helper implements InputAwareInterface
{
    protected $input;

    /**
     * {@inheritdoc}
     */
    public function setInput(InputInterface $input)
    {
        $this->input = $input;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Helper;

use Symfony\Component\Console\Exception\MissingInputException;
use Symfony\Component\Console\Exception\RuntimeException;
use Symfony\Component\Console\Formatter\OutputFormatter;
use Symfony\Component\Console\Formatter\OutputFormatterStyle;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\StreamableInputInterface;
use Symfony\Component\Console\Output\ConsoleOutputInterface;
use Symfony\Component\Console\Output\ConsoleSectionOutput;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Question\ChoiceQuestion;
use Symfony\Component\Console\Question\Question;
use Symfony\Component\Console\Terminal;

/**
 * The QuestionHelper class provides helpers to interact with the user.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class QuestionHelper extends Helper
{
    private $inputStream;
    private static $shell;
    private static $stty = true;

    /**
     * Asks a question to the user.
     *
     * @return mixed The user answer
     *
     * @throws RuntimeException If there is no data to read in the input stream
     */
    public function ask(InputInterface $input, OutputInterface $output, Question $question)
    {
        if ($output instanceof ConsoleOutputInterface) {
            $output = $output->getErrorOutput();
        }

        if (!$input->isInteractive()) {
            return $this->getDefaultAnswer($question);
        }

        if ($input instanceof StreamableInputInterface && $stream = $input->getStream()) {
            $this->inputStream = $stream;
        }

        try {
            if (!$question->getValidator()) {
                return $this->doAsk($output, $question);
            }

            $interviewer = function () use ($output, $question) {
                return $this->doAsk($output, $question);
            };

            return $this->validateAttempts($interviewer, $output, $question);
        } catch (MissingInputException $exception) {
            $input->setInteractive(false);

            if (null === $fallbackOutput = $this->getDefaultAnswer($question)) {
                throw $exception;
            }

            return $fallbackOutput;
        }
    }

    /**
     * {@inheritdoc}
     */
    public function getName()
    {
        return 'question';
    }

    /**
     * Prevents usage of stty.
     */
    public static function disableStty()
    {
        self::$stty = false;
    }

    /**
     * Asks the question to the user.
     *
     * @return bool|mixed|string|null
     *
     * @throws RuntimeException In case the fallback is deactivated and the response cannot be hidden
     */
    private function doAsk(OutputInterface $output, Question $question)
    {
        $this->writePrompt($output, $question);

        $inputStream = $this->inputStream ?: STDIN;
        $autocomplete = $question->getAutocompleterCallback();

        if (null === $autocomplete || !self::$stty || !Terminal::hasSttyAvailable()) {
            $ret = false;
            if ($question->isHidden()) {
                try {
                    $hiddenResponse = $this->getHiddenResponse($output, $inputStream, $question->isTrimmable());
                    $ret = $question->isTrimmable() ? trim($hiddenResponse) : $hiddenResponse;
                } catch (RuntimeException $e) {
                    if (!$question->isHiddenFallback()) {
                        throw $e;
                    }
                }
            }

            if (false === $ret) {
                $ret = fgets($inputStream, 4096);
                if (false === $ret) {
                    throw new MissingInputException('Aborted.');
                }
                if ($question->isTrimmable()) {
                    $ret = trim($ret);
                }
            }
        } else {
            $autocomplete = $this->autocomplete($output, $question, $inputStream, $autocomplete);
            $ret = $question->isTrimmable() ? trim($autocomplete) : $autocomplete;
        }

        if ($output instanceof ConsoleSectionOutput) {
            $output->addContent($ret);
        }

        $ret = \strlen($ret) > 0 ? $ret : $question->getDefault();

        if ($normalizer = $question->getNormalizer()) {
            return $normalizer($ret);
        }

        return $ret;
    }

    /**
     * @return mixed
     */
    private function getDefaultAnswer(Question $question)
    {
        $default = $question->getDefault();

        if (null === $default) {
            return $default;
        }

        if ($validator = $question->getValidator()) {
            return \call_user_func($question->getValidator(), $default);
        } elseif ($question instanceof ChoiceQuestion) {
            $choices = $question->getChoices();

            if (!$question->isMultiselect()) {
                return isset($choices[$default]) ? $choices[$default] : $default;
            }

            $default = explode(',', $default);
            foreach ($default as $k => $v) {
                $v = $question->isTrimmable() ? trim($v) : $v;
                $default[$k] = isset($choices[$v]) ? $choices[$v] : $v;
            }
        }

        return $default;
    }

    /**
     * Outputs the question prompt.
     */
    protected function writePrompt(OutputInterface $output, Question $question)
    {
        $message = $question->getQuestion();

        if ($question instanceof ChoiceQuestion) {
            $output->writeln(array_merge([
                $question->getQuestion(),
            ], $this->formatChoiceQuestionChoices($question, 'info')));

            $message = $question->getPrompt();
        }

        $output->write($message);
    }

    /**
     * @param string $tag
     *
     * @return string[]
     */
    protected function formatChoiceQuestionChoices(ChoiceQuestion $question, $tag)
    {
        $messages = [];

        $maxWidth = max(array_map('self::strlen', array_keys($choices = $question->getChoices())));

        foreach ($choices as $key => $value) {
            $padding = str_repeat(' ', $maxWidth - self::strlen($key));

            $messages[] = sprintf("  [<$tag>%s$padding</$tag>] %s", $key, $value);
        }

        return $messages;
    }

    /**
     * Outputs an error message.
     */
    protected function writeError(OutputInterface $output, \Exception $error)
    {
        if (null !== $this->getHelperSet() && $this->getHelperSet()->has('formatter')) {
            $message = $this->getHelperSet()->get('formatter')->formatBlock($error->getMessage(), 'error');
        } else {
            $message = '<error>'.$error->getMessage().'</error>';
        }

        $output->writeln($message);
    }

    /**
     * Autocompletes a question.
     *
     * @param resource $inputStream
     */
    private function autocomplete(OutputInterface $output, Question $question, $inputStream, callable $autocomplete): string
    {
        $fullChoice = '';
        $ret = '';

        $i = 0;
        $ofs = -1;
        $matches = $autocomplete($ret);
        $numMatches = \count($matches);

        $sttyMode = shell_exec('stty -g');

        // Disable icanon (so we can fread each keypress) and echo (we'll do echoing here instead)
        shell_exec('stty -icanon -echo');

        // Add highlighted text style
        $output->getFormatter()->setStyle('hl', new OutputFormatterStyle('black', 'white'));

        // Read a keypress
        while (!feof($inputStream)) {
            $c = fread($inputStream, 1);

            // as opposed to fgets(), fread() returns an empty string when the stream content is empty, not false.
            if (false === $c || ('' === $ret && '' === $c && null === $question->getDefault())) {
                shell_exec(sprintf('stty %s', $sttyMode));
                throw new MissingInputException('Aborted.');
            } elseif ("\177" === $c) { // Backspace Character
                if (0 === $numMatches && 0 !== $i) {
                    --$i;
                    $fullChoice = self::substr($fullChoice, 0, $i);
                    // Move cursor backwards
                    $output->write("\033[1D");
                }

                if (0 === $i) {
                    $ofs = -1;
                    $matches = $autocomplete($ret);
                    $numMatches = \count($matches);
                } else {
                    $numMatches = 0;
                }

                // Pop the last character off the end of our string
                $ret = self::substr($ret, 0, $i);
            } elseif ("\033" === $c) {
                // Did we read an escape sequence?
                $c .= fread($inputStream, 2);

                // A = Up Arrow. B = Down Arrow
                if (isset($c[2]) && ('A' === $c[2] || 'B' === $c[2])) {
                    if ('A' === $c[2] && -1 === $ofs) {
                        $ofs = 0;
                    }

                    if (0 === $numMatches) {
                        continue;
                    }

                    $ofs += ('A' === $c[2]) ? -1 : 1;
                    $ofs = ($numMatches + $ofs) % $numMatches;
                }
            } elseif (\ord($c) < 32) {
                if ("\t" === $c || "\n" === $c) {
                    if ($numMatches > 0 && -1 !== $ofs) {
                        $ret = (string) $matches[$ofs];
                        // Echo out remaining chars for current match
                        $remainingCharacters = substr($ret, \strlen(trim($this->mostRecentlyEnteredValue($fullChoice))));
                        $output->write($remainingCharacters);
                        $fullChoice .= $remainingCharacters;
                        $i = self::strlen($fullChoice);

                        $matches = array_filter(
                            $autocomplete($ret),
                            function ($match) use ($ret) {
                                return '' === $ret || 0 === strpos($match, $ret);
                            }
                        );
                        $numMatches = \count($matches);
                        $ofs = -1;
                    }

                    if ("\n" === $c) {
                        $output->write($c);
                        break;
                    }

                    $numMatches = 0;
                }

                continue;
            } else {
                if ("\x80" <= $c) {
                    $c .= fread($inputStream, ["\xC0" => 1, "\xD0" => 1, "\xE0" => 2, "\xF0" => 3][$c & "\xF0"]);
                }

                $output->write($c);
                $ret .= $c;
                $fullChoice .= $c;
                ++$i;

                $tempRet = $ret;

                if ($question instanceof ChoiceQuestion && $question->isMultiselect()) {
                    $tempRet = $this->mostRecentlyEnteredValue($fullChoice);
                }

                $numMatches = 0;
                $ofs = 0;

                foreach ($autocomplete($ret) as $value) {
                    // If typed characters match the beginning chunk of value (e.g. [AcmeDe]moBundle)
                    if (0 === strpos($value, $tempRet)) {
                        $matches[$numMatches++] = $value;
                    }
                }
            }

            // Erase characters from cursor to end of line
            $output->write("\033[K");

            if ($numMatches > 0 && -1 !== $ofs) {
                // Save cursor position
                $output->write("\0337");
                // Write highlighted text, complete the partially entered response
                $charactersEntered = \strlen(trim($this->mostRecentlyEnteredValue($fullChoice)));
                $output->write('<hl>'.OutputFormatter::escapeTrailingBackslash(substr($matches[$ofs], $charactersEntered)).'</hl>');
                // Restore cursor position
                $output->write("\0338");
            }
        }

        // Reset stty so it behaves normally again
        shell_exec(sprintf('stty %s', $sttyMode));

        return $fullChoice;
    }

    private function mostRecentlyEnteredValue(string $entered): string
    {
        // Determine the most recent value that the user entered
        if (false === strpos($entered, ',')) {
            return $entered;
        }

        $choices = explode(',', $entered);
        if (\strlen($lastChoice = trim($choices[\count($choices) - 1])) > 0) {
            return $lastChoice;
        }

        return $entered;
    }

    /**
     * Gets a hidden response from user.
     *
     * @param resource $inputStream The handler resource
     * @param bool     $trimmable   Is the answer trimmable
     *
     * @throws RuntimeException In case the fallback is deactivated and the response cannot be hidden
     */
    private function getHiddenResponse(OutputInterface $output, $inputStream, bool $trimmable = true): string
    {
        if ('\\' === \DIRECTORY_SEPARATOR) {
            $exe = __DIR__.'/../Resources/bin/hiddeninput.exe';

            // handle code running from a phar
            if ('phar:' === substr(__FILE__, 0, 5)) {
                $tmpExe = sys_get_temp_dir().'/hiddeninput.exe';
                copy($exe, $tmpExe);
                $exe = $tmpExe;
            }

            $sExec = shell_exec($exe);
            $value = $trimmable ? rtrim($sExec) : $sExec;
            $output->writeln('');

            if (isset($tmpExe)) {
                unlink($tmpExe);
            }

            return $value;
        }

        if (self::$stty && Terminal::hasSttyAvailable()) {
            $sttyMode = shell_exec('stty -g');

            shell_exec('stty -echo');
            $value = fgets($inputStream, 4096);
            shell_exec(sprintf('stty %s', $sttyMode));

            if (false === $value) {
                throw new MissingInputException('Aborted.');
            }
            if ($trimmable) {
                $value = trim($value);
            }
            $output->writeln('');

            return $value;
        }

        if (false !== $shell = $this->getShell()) {
            $readCmd = 'csh' === $shell ? 'set mypassword = $<' : 'read -r mypassword';
            $command = sprintf("/usr/bin/env %s -c 'stty -echo; %s; stty echo; echo \$mypassword' 2> /dev/null", $shell, $readCmd);
            $sCommand = shell_exec($command);
            $value = $trimmable ? rtrim($sCommand) : $sCommand;
            $output->writeln('');

            return $value;
        }

        throw new RuntimeException('Unable to hide the response.');
    }

    /**
     * Validates an attempt.
     *
     * @param callable $interviewer A callable that will ask for a question and return the result
     *
     * @return mixed The validated response
     *
     * @throws \Exception In case the max number of attempts has been reached and no valid response has been given
     */
    private function validateAttempts(callable $interviewer, OutputInterface $output, Question $question)
    {
        $error = null;
        $attempts = $question->getMaxAttempts();

        while (null === $attempts || $attempts--) {
            if (null !== $error) {
                $this->writeError($output, $error);
            }

            try {
                return $question->getValidator()($interviewer());
            } catch (RuntimeException $e) {
                throw $e;
            } catch (\Exception $error) {
            }

            $attempts = $attempts ?? -(int) $this->isTty();
        }

        throw $error;
    }

    /**
     * Returns a valid unix shell.
     *
     * @return string|bool The valid shell name, false in case no valid shell is found
     */
    private function getShell()
    {
        if (null !== self::$shell) {
            return self::$shell;
        }

        self::$shell = false;

        if (file_exists('/usr/bin/env')) {
            // handle other OSs with bash/zsh/ksh/csh if available to hide the answer
            $test = "/usr/bin/env %s -c 'echo OK' 2> /dev/null";
            foreach (['bash', 'zsh', 'ksh', 'csh'] as $sh) {
                if ('OK' === rtrim(shell_exec(sprintf($test, $sh)))) {
                    self::$shell = $sh;
                    break;
                }
            }
        }

        return self::$shell;
    }

    private function isTty(): bool
    {
        $inputStream = !$this->inputStream && \defined('STDIN') ? STDIN : $this->inputStream;

        if (\function_exists('stream_isatty')) {
            return stream_isatty($inputStream);
        }

        if (\function_exists('posix_isatty')) {
            return posix_isatty($inputStream);
        }

        return true;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Helper;

use Symfony\Component\Console\Formatter\OutputFormatterInterface;

/**
 * Helper is the base class for all helper classes.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
abstract class Helper implements HelperInterface
{
    protected $helperSet = null;

    /**
     * {@inheritdoc}
     */
    public function setHelperSet(HelperSet $helperSet = null)
    {
        $this->helperSet = $helperSet;
    }

    /**
     * {@inheritdoc}
     */
    public function getHelperSet()
    {
        return $this->helperSet;
    }

    /**
     * Returns the length of a string, using mb_strwidth if it is available.
     *
     * @param string $string The string to check its length
     *
     * @return int The length of the string
     */
    public static function strlen($string)
    {
        if (false === $encoding = mb_detect_encoding($string, null, true)) {
            return \strlen($string);
        }

        return mb_strwidth($string, $encoding);
    }

    /**
     * Returns the subset of a string, using mb_substr if it is available.
     *
     * @param string   $string String to subset
     * @param int      $from   Start offset
     * @param int|null $length Length to read
     *
     * @return string The string subset
     */
    public static function substr($string, $from, $length = null)
    {
        if (false === $encoding = mb_detect_encoding($string, null, true)) {
            return substr($string, $from, $length);
        }

        return mb_substr($string, $from, $length, $encoding);
    }

    public static function formatTime($secs)
    {
        static $timeFormats = [
            [0, '< 1 sec'],
            [1, '1 sec'],
            [2, 'secs', 1],
            [60, '1 min'],
            [120, 'mins', 60],
            [3600, '1 hr'],
            [7200, 'hrs', 3600],
            [86400, '1 day'],
            [172800, 'days', 86400],
        ];

        foreach ($timeFormats as $index => $format) {
            if ($secs >= $format[0]) {
                if ((isset($timeFormats[$index + 1]) && $secs < $timeFormats[$index + 1][0])
                    || $index == \count($timeFormats) - 1
                ) {
                    if (2 == \count($format)) {
                        return $format[1];
                    }

                    return floor($secs / $format[2]).' '.$format[1];
                }
            }
        }
    }

    public static function formatMemory($memory)
    {
        if ($memory >= 1024 * 1024 * 1024) {
            return sprintf('%.1f GiB', $memory / 1024 / 1024 / 1024);
        }

        if ($memory >= 1024 * 1024) {
            return sprintf('%.1f MiB', $memory / 1024 / 1024);
        }

        if ($memory >= 1024) {
            return sprintf('%d KiB', $memory / 1024);
        }

        return sprintf('%d B', $memory);
    }

    public static function strlenWithoutDecoration(OutputFormatterInterface $formatter, $string)
    {
        return self::strlen(self::removeDecoration($formatter, $string));
    }

    public static function removeDecoration(OutputFormatterInterface $formatter, $string)
    {
        $isDecorated = $formatter->isDecorated();
        $formatter->setDecorated(false);
        // remove <...> formatting
        $string = $formatter->format($string);
        // remove already formatted characters
        $string = preg_replace("/\033\[[^m]*m/", '', $string);
        $formatter->setDecorated($isDecorated);

        return $string;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Helper;

use Symfony\Component\Console\Exception\InvalidArgumentException;
use Symfony\Component\Console\Exception\RuntimeException;
use Symfony\Component\Console\Formatter\OutputFormatter;
use Symfony\Component\Console\Formatter\WrappableOutputFormatterInterface;
use Symfony\Component\Console\Output\ConsoleSectionOutput;
use Symfony\Component\Console\Output\OutputInterface;

/**
 * Provides helpers to display a table.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 * @author Саша Стаменковић <umpirsky@gmail.com>
 * @author Abdellatif Ait boudad <a.aitboudad@gmail.com>
 * @author Max Grigorian <maxakawizard@gmail.com>
 * @author Dany Maillard <danymaillard93b@gmail.com>
 */
class Table
{
    private const SEPARATOR_TOP = 0;
    private const SEPARATOR_TOP_BOTTOM = 1;
    private const SEPARATOR_MID = 2;
    private const SEPARATOR_BOTTOM = 3;
    private const BORDER_OUTSIDE = 0;
    private const BORDER_INSIDE = 1;

    private $headerTitle;
    private $footerTitle;

    /**
     * Table headers.
     */
    private $headers = [];

    /**
     * Table rows.
     */
    private $rows = [];
    private $horizontal = false;

    /**
     * Column widths cache.
     */
    private $effectiveColumnWidths = [];

    /**
     * Number of columns cache.
     *
     * @var int
     */
    private $numberOfColumns;

    /**
     * @var OutputInterface
     */
    private $output;

    /**
     * @var TableStyle
     */
    private $style;

    /**
     * @var array
     */
    private $columnStyles = [];

    /**
     * User set column widths.
     *
     * @var array
     */
    private $columnWidths = [];
    private $columnMaxWidths = [];

    private static $styles;

    private $rendered = false;

    public function __construct(OutputInterface $output)
    {
        $this->output = $output;

        if (!self::$styles) {
            self::$styles = self::initStyles();
        }

        $this->setStyle('default');
    }

    /**
     * Sets a style definition.
     *
     * @param string $name The style name
     */
    public static function setStyleDefinition($name, TableStyle $style)
    {
        if (!self::$styles) {
            self::$styles = self::initStyles();
        }

        self::$styles[$name] = $style;
    }

    /**
     * Gets a style definition by name.
     *
     * @param string $name The style name
     *
     * @return TableStyle
     */
    public static function getStyleDefinition($name)
    {
        if (!self::$styles) {
            self::$styles = self::initStyles();
        }

        if (isset(self::$styles[$name])) {
            return self::$styles[$name];
        }

        throw new InvalidArgumentException(sprintf('Style "%s" is not defined.', $name));
    }

    /**
     * Sets table style.
     *
     * @param TableStyle|string $name The style name or a TableStyle instance
     *
     * @return $this
     */
    public function setStyle($name)
    {
        $this->style = $this->resolveStyle($name);

        return $this;
    }

    /**
     * Gets the current table style.
     *
     * @return TableStyle
     */
    public function getStyle()
    {
        return $this->style;
    }

    /**
     * Sets table column style.
     *
     * @param int               $columnIndex Column index
     * @param TableStyle|string $name        The style name or a TableStyle instance
     *
     * @return $this
     */
    public function setColumnStyle($columnIndex, $name)
    {
        $columnIndex = (int) $columnIndex;

        $this->columnStyles[$columnIndex] = $this->resolveStyle($name);

        return $this;
    }

    /**
     * Gets the current style for a column.
     *
     * If style was not set, it returns the global table style.
     *
     * @param int $columnIndex Column index
     *
     * @return TableStyle
     */
    public function getColumnStyle($columnIndex)
    {
        return $this->columnStyles[$columnIndex] ?? $this->getStyle();
    }

    /**
     * Sets the minimum width of a column.
     *
     * @param int $columnIndex Column index
     * @param int $width       Minimum column width in characters
     *
     * @return $this
     */
    public function setColumnWidth($columnIndex, $width)
    {
        $this->columnWidths[(int) $columnIndex] = (int) $width;

        return $this;
    }

    /**
     * Sets the minimum width of all columns.
     *
     * @return $this
     */
    public function setColumnWidths(array $widths)
    {
        $this->columnWidths = [];
        foreach ($widths as $index => $width) {
            $this->setColumnWidth($index, $width);
        }

        return $this;
    }

    /**
     * Sets the maximum width of a column.
     *
     * Any cell within this column which contents exceeds the specified width will be wrapped into multiple lines, while
     * formatted strings are preserved.
     *
     * @return $this
     */
    public function setColumnMaxWidth(int $columnIndex, int $width): self
    {
        if (!$this->output->getFormatter() instanceof WrappableOutputFormatterInterface) {
            throw new \LogicException(sprintf('Setting a maximum column width is only supported when using a "%s" formatter, got "%s".', WrappableOutputFormatterInterface::class, \get_class($this->output->getFormatter())));
        }

        $this->columnMaxWidths[$columnIndex] = $width;

        return $this;
    }

    public function setHeaders(array $headers)
    {
        $headers = array_values($headers);
        if (!empty($headers) && !\is_array($headers[0])) {
            $headers = [$headers];
        }

        $this->headers = $headers;

        return $this;
    }

    public function setRows(array $rows)
    {
        $this->rows = [];

        return $this->addRows($rows);
    }

    public function addRows(array $rows)
    {
        foreach ($rows as $row) {
            $this->addRow($row);
        }

        return $this;
    }

    public function addRow($row)
    {
        if ($row instanceof TableSeparator) {
            $this->rows[] = $row;

            return $this;
        }

        if (!\is_array($row)) {
            throw new InvalidArgumentException('A row must be an array or a TableSeparator instance.');
        }

        $this->rows[] = array_values($row);

        return $this;
    }

    /**
     * Adds a row to the table, and re-renders the table.
     */
    public function appendRow($row): self
    {
        if (!$this->output instanceof ConsoleSectionOutput) {
            throw new RuntimeException(sprintf('Output should be an instance of "%s" when calling "%s".', ConsoleSectionOutput::class, __METHOD__));
        }

        if ($this->rendered) {
            $this->output->clear($this->calculateRowCount());
        }

        $this->addRow($row);
        $this->render();

        return $this;
    }

    public function setRow($column, array $row)
    {
        $this->rows[$column] = $row;

        return $this;
    }

    public function setHeaderTitle(?string $title): self
    {
        $this->headerTitle = $title;

        return $this;
    }

    public function setFooterTitle(?string $title): self
    {
        $this->footerTitle = $title;

        return $this;
    }

    public function setHorizontal(bool $horizontal = true): self
    {
        $this->horizontal = $horizontal;

        return $this;
    }

    /**
     * Renders table to output.
     *
     * Example:
     *
     *     +---------------+-----------------------+------------------+
     *     | ISBN          | Title                 | Author           |
     *     +---------------+-----------------------+------------------+
     *     | 99921-58-10-7 | Divine Comedy         | Dante Alighieri  |
     *     | 9971-5-0210-0 | A Tale of Two Cities  | Charles Dickens  |
     *     | 960-425-059-0 | The Lord of the Rings | J. R. R. Tolkien |
     *     +---------------+-----------------------+------------------+
     */
    public function render()
    {
        $divider = new TableSeparator();
        if ($this->horizontal) {
            $rows = [];
            foreach ($this->headers[0] ?? [] as $i => $header) {
                $rows[$i] = [$header];
                foreach ($this->rows as $row) {
                    if ($row instanceof TableSeparator) {
                        continue;
                    }
                    if (isset($row[$i])) {
                        $rows[$i][] = $row[$i];
                    } elseif ($rows[$i][0] instanceof TableCell && $rows[$i][0]->getColspan() >= 2) {
                        // Noop, there is a "title"
                    } else {
                        $rows[$i][] = null;
                    }
                }
            }
        } else {
            $rows = array_merge($this->headers, [$divider], $this->rows);
        }

        $this->calculateNumberOfColumns($rows);

        $rows = $this->buildTableRows($rows);
        $this->calculateColumnsWidth($rows);

        $isHeader = !$this->horizontal;
        $isFirstRow = $this->horizontal;
        foreach ($rows as $row) {
            if ($divider === $row) {
                $isHeader = false;
                $isFirstRow = true;

                continue;
            }
            if ($row instanceof TableSeparator) {
                $this->renderRowSeparator();

                continue;
            }
            if (!$row) {
                continue;
            }

            if ($isHeader || $isFirstRow) {
                if ($isFirstRow) {
                    $this->renderRowSeparator(self::SEPARATOR_TOP_BOTTOM);
                    $isFirstRow = false;
                } else {
                    $this->renderRowSeparator(self::SEPARATOR_TOP, $this->headerTitle, $this->style->getHeaderTitleFormat());
                }
            }
            if ($this->horizontal) {
                $this->renderRow($row, $this->style->getCellRowFormat(), $this->style->getCellHeaderFormat());
            } else {
                $this->renderRow($row, $isHeader ? $this->style->getCellHeaderFormat() : $this->style->getCellRowFormat());
            }
        }
        $this->renderRowSeparator(self::SEPARATOR_BOTTOM, $this->footerTitle, $this->style->getFooterTitleFormat());

        $this->cleanup();
        $this->rendered = true;
    }

    /**
     * Renders horizontal header separator.
     *
     * Example:
     *
     *     +-----+-----------+-------+
     */
    private function renderRowSeparator(int $type = self::SEPARATOR_MID, string $title = null, string $titleFormat = null)
    {
        if (0 === $count = $this->numberOfColumns) {
            return;
        }

        $borders = $this->style->getBorderChars();
        if (!$borders[0] && !$borders[2] && !$this->style->getCrossingChar()) {
            return;
        }

        $crossings = $this->style->getCrossingChars();
        if (self::SEPARATOR_MID === $type) {
            list($horizontal, $leftChar, $midChar, $rightChar) = [$borders[2], $crossings[8], $crossings[0], $crossings[4]];
        } elseif (self::SEPARATOR_TOP === $type) {
            list($horizontal, $leftChar, $midChar, $rightChar) = [$borders[0], $crossings[1], $crossings[2], $crossings[3]];
        } elseif (self::SEPARATOR_TOP_BOTTOM === $type) {
            list($horizontal, $leftChar, $midChar, $rightChar) = [$borders[0], $crossings[9], $crossings[10], $crossings[11]];
        } else {
            list($horizontal, $leftChar, $midChar, $rightChar) = [$borders[0], $crossings[7], $crossings[6], $crossings[5]];
        }

        $markup = $leftChar;
        for ($column = 0; $column < $count; ++$column) {
            $markup .= str_repeat($horizontal, $this->effectiveColumnWidths[$column]);
            $markup .= $column === $count - 1 ? $rightChar : $midChar;
        }

        if (null !== $title) {
            $titleLength = Helper::strlenWithoutDecoration($formatter = $this->output->getFormatter(), $formattedTitle = sprintf($titleFormat, $title));
            $markupLength = Helper::strlen($markup);
            if ($titleLength > $limit = $markupLength - 4) {
                $titleLength = $limit;
                $formatLength = Helper::strlenWithoutDecoration($formatter, sprintf($titleFormat, ''));
                $formattedTitle = sprintf($titleFormat, Helper::substr($title, 0, $limit - $formatLength - 3).'...');
            }

            $titleStart = ($markupLength - $titleLength) / 2;
            if (false === mb_detect_encoding($markup, null, true)) {
                $markup = substr_replace($markup, $formattedTitle, $titleStart, $titleLength);
            } else {
                $markup = mb_substr($markup, 0, $titleStart).$formattedTitle.mb_substr($markup, $titleStart + $titleLength);
            }
        }

        $this->output->writeln(sprintf($this->style->getBorderFormat(), $markup));
    }

    /**
     * Renders vertical column separator.
     */
    private function renderColumnSeparator(int $type = self::BORDER_OUTSIDE): string
    {
        $borders = $this->style->getBorderChars();

        return sprintf($this->style->getBorderFormat(), self::BORDER_OUTSIDE === $type ? $borders[1] : $borders[3]);
    }

    /**
     * Renders table row.
     *
     * Example:
     *
     *     | 9971-5-0210-0 | A Tale of Two Cities  | Charles Dickens  |
     */
    private function renderRow(array $row, string $cellFormat, string $firstCellFormat = null)
    {
        $rowContent = $this->renderColumnSeparator(self::BORDER_OUTSIDE);
        $columns = $this->getRowColumns($row);
        $last = \count($columns) - 1;
        foreach ($columns as $i => $column) {
            if ($firstCellFormat && 0 === $i) {
                $rowContent .= $this->renderCell($row, $column, $firstCellFormat);
            } else {
                $rowContent .= $this->renderCell($row, $column, $cellFormat);
            }
            $rowContent .= $this->renderColumnSeparator($last === $i ? self::BORDER_OUTSIDE : self::BORDER_INSIDE);
        }
        $this->output->writeln($rowContent);
    }

    /**
     * Renders table cell with padding.
     */
    private function renderCell(array $row, int $column, string $cellFormat): string
    {
        $cell = isset($row[$column]) ? $row[$column] : '';
        $width = $this->effectiveColumnWidths[$column];
        if ($cell instanceof TableCell && $cell->getColspan() > 1) {
            // add the width of the following columns(numbers of colspan).
            foreach (range($column + 1, $column + $cell->getColspan() - 1) as $nextColumn) {
                $width += $this->getColumnSeparatorWidth() + $this->effectiveColumnWidths[$nextColumn];
            }
        }

        // str_pad won't work properly with multi-byte strings, we need to fix the padding
        if (false !== $encoding = mb_detect_encoding($cell, null, true)) {
            $width += \strlen($cell) - mb_strwidth($cell, $encoding);
        }

        $style = $this->getColumnStyle($column);

        if ($cell instanceof TableSeparator) {
            return sprintf($style->getBorderFormat(), str_repeat($style->getBorderChars()[2], $width));
        }

        $width += Helper::strlen($cell) - Helper::strlenWithoutDecoration($this->output->getFormatter(), $cell);
        $content = sprintf($style->getCellRowContentFormat(), $cell);

        return sprintf($cellFormat, str_pad($content, $width, $style->getPaddingChar(), $style->getPadType()));
    }

    /**
     * Calculate number of columns for this table.
     */
    private function calculateNumberOfColumns(array $rows)
    {
        $columns = [0];
        foreach ($rows as $row) {
            if ($row instanceof TableSeparator) {
                continue;
            }

            $columns[] = $this->getNumberOfColumns($row);
        }

        $this->numberOfColumns = max($columns);
    }

    private function buildTableRows(array $rows): TableRows
    {
        /** @var WrappableOutputFormatterInterface $formatter */
        $formatter = $this->output->getFormatter();
        $unmergedRows = [];
        for ($rowKey = 0; $rowKey < \count($rows); ++$rowKey) {
            $rows = $this->fillNextRows($rows, $rowKey);

            // Remove any new line breaks and replace it with a new line
            foreach ($rows[$rowKey] as $column => $cell) {
                $colspan = $cell instanceof TableCell ? $cell->getColspan() : 1;

                if (isset($this->columnMaxWidths[$column]) && Helper::strlenWithoutDecoration($formatter, $cell) > $this->columnMaxWidths[$column]) {
                    $cell = $formatter->formatAndWrap($cell, $this->columnMaxWidths[$column] * $colspan);
                }
                if (!strstr($cell, "\n")) {
                    continue;
                }
                $escaped = implode("\n", array_map([OutputFormatter::class, 'escapeTrailingBackslash'], explode("\n", $cell)));
                $cell = $cell instanceof TableCell ? new TableCell($escaped, ['colspan' => $cell->getColspan()]) : $escaped;
                $lines = explode("\n", str_replace("\n", "<fg=default;bg=default>\n</>", $cell));
                foreach ($lines as $lineKey => $line) {
                    if ($colspan > 1) {
                        $line = new TableCell($line, ['colspan' => $colspan]);
                    }
                    if (0 === $lineKey) {
                        $rows[$rowKey][$column] = $line;
                    } else {
                        $unmergedRows[$rowKey][$lineKey][$column] = $line;
                    }
                }
            }
        }

        return new TableRows(function () use ($rows, $unmergedRows): \Traversable {
            foreach ($rows as $rowKey => $row) {
                yield $this->fillCells($row);

                if (isset($unmergedRows[$rowKey])) {
                    foreach ($unmergedRows[$rowKey] as $row) {
                        yield $row;
                    }
                }
            }
        });
    }

    private function calculateRowCount(): int
    {
        $numberOfRows = \count(iterator_to_array($this->buildTableRows(array_merge($this->headers, [new TableSeparator()], $this->rows))));

        if ($this->headers) {
            ++$numberOfRows; // Add row for header separator
        }

        if (\count($this->rows) > 0) {
            ++$numberOfRows; // Add row for footer separator
        }

        return $numberOfRows;
    }

    /**
     * fill rows that contains rowspan > 1.
     *
     * @throws InvalidArgumentException
     */
    private function fillNextRows(array $rows, int $line): array
    {
        $unmergedRows = [];
        foreach ($rows[$line] as $column => $cell) {
            if (null !== $cell && !$cell instanceof TableCell && !is_scalar($cell) && !(\is_object($cell) && method_exists($cell, '__toString'))) {
                throw new InvalidArgumentException(sprintf('A cell must be a TableCell, a scalar or an object implementing "__toString()", "%s" given.', \gettype($cell)));
            }
            if ($cell instanceof TableCell && $cell->getRowspan() > 1) {
                $nbLines = $cell->getRowspan() - 1;
                $lines = [$cell];
                if (strstr($cell, "\n")) {
                    $lines = explode("\n", str_replace("\n", "<fg=default;bg=default>\n</>", $cell));
                    $nbLines = \count($lines) > $nbLines ? substr_count($cell, "\n") : $nbLines;

                    $rows[$line][$column] = new TableCell($lines[0], ['colspan' => $cell->getColspan()]);
                    unset($lines[0]);
                }

                // create a two dimensional array (rowspan x colspan)
                $unmergedRows = array_replace_recursive(array_fill($line + 1, $nbLines, []), $unmergedRows);
                foreach ($unmergedRows as $unmergedRowKey => $unmergedRow) {
                    $value = isset($lines[$unmergedRowKey - $line]) ? $lines[$unmergedRowKey - $line] : '';
                    $unmergedRows[$unmergedRowKey][$column] = new TableCell($value, ['colspan' => $cell->getColspan()]);
                    if ($nbLines === $unmergedRowKey - $line) {
                        break;
                    }
                }
            }
        }

        foreach ($unmergedRows as $unmergedRowKey => $unmergedRow) {
            // we need to know if $unmergedRow will be merged or inserted into $rows
            if (isset($rows[$unmergedRowKey]) && \is_array($rows[$unmergedRowKey]) && ($this->getNumberOfColumns($rows[$unmergedRowKey]) + $this->getNumberOfColumns($unmergedRows[$unmergedRowKey]) <= $this->numberOfColumns)) {
                foreach ($unmergedRow as $cellKey => $cell) {
                    // insert cell into row at cellKey position
                    array_splice($rows[$unmergedRowKey], $cellKey, 0, [$cell]);
                }
            } else {
                $row = $this->copyRow($rows, $unmergedRowKey - 1);
                foreach ($unmergedRow as $column => $cell) {
                    if (!empty($cell)) {
                        $row[$column] = $unmergedRow[$column];
                    }
                }
                array_splice($rows, $unmergedRowKey, 0, [$row]);
            }
        }

        return $rows;
    }

    /**
     * fill cells for a row that contains colspan > 1.
     */
    private function fillCells($row)
    {
        $newRow = [];
        foreach ($row as $column => $cell) {
            $newRow[] = $cell;
            if ($cell instanceof TableCell && $cell->getColspan() > 1) {
                foreach (range($column + 1, $column + $cell->getColspan() - 1) as $position) {
                    // insert empty value at column position
                    $newRow[] = '';
                }
            }
        }

        return $newRow ?: $row;
    }

    private function copyRow(array $rows, int $line): array
    {
        $row = $rows[$line];
        foreach ($row as $cellKey => $cellValue) {
            $row[$cellKey] = '';
            if ($cellValue instanceof TableCell) {
                $row[$cellKey] = new TableCell('', ['colspan' => $cellValue->getColspan()]);
            }
        }

        return $row;
    }

    /**
     * Gets number of columns by row.
     */
    private function getNumberOfColumns(array $row): int
    {
        $columns = \count($row);
        foreach ($row as $column) {
            $columns += $column instanceof TableCell ? ($column->getColspan() - 1) : 0;
        }

        return $columns;
    }

    /**
     * Gets list of columns for the given row.
     */
    private function getRowColumns(array $row): array
    {
        $columns = range(0, $this->numberOfColumns - 1);
        foreach ($row as $cellKey => $cell) {
            if ($cell instanceof TableCell && $cell->getColspan() > 1) {
                // exclude grouped columns.
                $columns = array_diff($columns, range($cellKey + 1, $cellKey + $cell->getColspan() - 1));
            }
        }

        return $columns;
    }

    /**
     * Calculates columns widths.
     */
    private function calculateColumnsWidth(iterable $rows)
    {
        for ($column = 0; $column < $this->numberOfColumns; ++$column) {
            $lengths = [];
            foreach ($rows as $row) {
                if ($row instanceof TableSeparator) {
                    continue;
                }

                foreach ($row as $i => $cell) {
                    if ($cell instanceof TableCell) {
                        $textContent = Helper::removeDecoration($this->output->getFormatter(), $cell);
                        $textLength = Helper::strlen($textContent);
                        if ($textLength > 0) {
                            $contentColumns = str_split($textContent, ceil($textLength / $cell->getColspan()));
                            foreach ($contentColumns as $position => $content) {
                                $row[$i + $position] = $content;
                            }
                        }
                    }
                }

                $lengths[] = $this->getCellWidth($row, $column);
            }

            $this->effectiveColumnWidths[$column] = max($lengths) + Helper::strlen($this->style->getCellRowContentFormat()) - 2;
        }
    }

    private function getColumnSeparatorWidth(): int
    {
        return Helper::strlen(sprintf($this->style->getBorderFormat(), $this->style->getBorderChars()[3]));
    }

    private function getCellWidth(array $row, int $column): int
    {
        $cellWidth = 0;

        if (isset($row[$column])) {
            $cell = $row[$column];
            $cellWidth = Helper::strlenWithoutDecoration($this->output->getFormatter(), $cell);
        }

        $columnWidth = isset($this->columnWidths[$column]) ? $this->columnWidths[$column] : 0;
        $cellWidth = max($cellWidth, $columnWidth);

        return isset($this->columnMaxWidths[$column]) ? min($this->columnMaxWidths[$column], $cellWidth) : $cellWidth;
    }

    /**
     * Called after rendering to cleanup cache data.
     */
    private function cleanup()
    {
        $this->effectiveColumnWidths = [];
        $this->numberOfColumns = null;
    }

    private static function initStyles(): array
    {
        $borderless = new TableStyle();
        $borderless
            ->setHorizontalBorderChars('=')
            ->setVerticalBorderChars(' ')
            ->setDefaultCrossingChar(' ')
        ;

        $compact = new TableStyle();
        $compact
            ->setHorizontalBorderChars('')
            ->setVerticalBorderChars(' ')
            ->setDefaultCrossingChar('')
            ->setCellRowContentFormat('%s')
        ;

        $styleGuide = new TableStyle();
        $styleGuide
            ->setHorizontalBorderChars('-')
            ->setVerticalBorderChars(' ')
            ->setDefaultCrossingChar(' ')
            ->setCellHeaderFormat('%s')
        ;

        $box = (new TableStyle())
            ->setHorizontalBorderChars('─')
            ->setVerticalBorderChars('│')
            ->setCrossingChars('┼', '┌', '┬', '┐', '┤', '┘', '┴', '└', '├')
        ;

        $boxDouble = (new TableStyle())
            ->setHorizontalBorderChars('═', '─')
            ->setVerticalBorderChars('║', '│')
            ->setCrossingChars('┼', '╔', '╤', '╗', '╢', '╝', '╧', '╚', '╟', '╠', '╪', '╣')
        ;

        return [
            'default' => new TableStyle(),
            'borderless' => $borderless,
            'compact' => $compact,
            'symfony-style-guide' => $styleGuide,
            'box' => $box,
            'box-double' => $boxDouble,
        ];
    }

    private function resolveStyle($name): TableStyle
    {
        if ($name instanceof TableStyle) {
            return $name;
        }

        if (isset(self::$styles[$name])) {
            return self::$styles[$name];
        }

        throw new InvalidArgumentException(sprintf('Style "%s" is not defined.', $name));
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Helper;

use Symfony\Component\Console\Exception\InvalidArgumentException;
use Symfony\Component\Console\Exception\LogicException;
use Symfony\Component\Console\Output\OutputInterface;

/**
 * @author Kevin Bond <kevinbond@gmail.com>
 */
class ProgressIndicator
{
    private $output;
    private $startTime;
    private $format;
    private $message;
    private $indicatorValues;
    private $indicatorCurrent;
    private $indicatorChangeInterval;
    private $indicatorUpdateTime;
    private $started = false;

    private static $formatters;
    private static $formats;

    /**
     * @param string|null $format                  Indicator format
     * @param int         $indicatorChangeInterval Change interval in milliseconds
     * @param array|null  $indicatorValues         Animated indicator characters
     */
    public function __construct(OutputInterface $output, string $format = null, int $indicatorChangeInterval = 100, array $indicatorValues = null)
    {
        $this->output = $output;

        if (null === $format) {
            $format = $this->determineBestFormat();
        }

        if (null === $indicatorValues) {
            $indicatorValues = ['-', '\\', '|', '/'];
        }

        $indicatorValues = array_values($indicatorValues);

        if (2 > \count($indicatorValues)) {
            throw new InvalidArgumentException('Must have at least 2 indicator value characters.');
        }

        $this->format = self::getFormatDefinition($format);
        $this->indicatorChangeInterval = $indicatorChangeInterval;
        $this->indicatorValues = $indicatorValues;
        $this->startTime = time();
    }

    /**
     * Sets the current indicator message.
     *
     * @param string|null $message
     */
    public function setMessage($message)
    {
        $this->message = $message;

        $this->display();
    }

    /**
     * Starts the indicator output.
     *
     * @param $message
     */
    public function start($message)
    {
        if ($this->started) {
            throw new LogicException('Progress indicator already started.');
        }

        $this->message = $message;
        $this->started = true;
        $this->startTime = time();
        $this->indicatorUpdateTime = $this->getCurrentTimeInMilliseconds() + $this->indicatorChangeInterval;
        $this->indicatorCurrent = 0;

        $this->display();
    }

    /**
     * Advances the indicator.
     */
    public function advance()
    {
        if (!$this->started) {
            throw new LogicException('Progress indicator has not yet been started.');
        }

        if (!$this->output->isDecorated()) {
            return;
        }

        $currentTime = $this->getCurrentTimeInMilliseconds();

        if ($currentTime < $this->indicatorUpdateTime) {
            return;
        }

        $this->indicatorUpdateTime = $currentTime + $this->indicatorChangeInterval;
        ++$this->indicatorCurrent;

        $this->display();
    }

    /**
     * Finish the indicator with message.
     *
     * @param $message
     */
    public function finish($message)
    {
        if (!$this->started) {
            throw new LogicException('Progress indicator has not yet been started.');
        }

        $this->message = $message;
        $this->display();
        $this->output->writeln('');
        $this->started = false;
    }

    /**
     * Gets the format for a given name.
     *
     * @param string $name The format name
     *
     * @return string|null A format string
     */
    public static function getFormatDefinition($name)
    {
        if (!self::$formats) {
            self::$formats = self::initFormats();
        }

        return isset(self::$formats[$name]) ? self::$formats[$name] : null;
    }

    /**
     * Sets a placeholder formatter for a given name.
     *
     * This method also allow you to override an existing placeholder.
     *
     * @param string   $name     The placeholder name (including the delimiter char like %)
     * @param callable $callable A PHP callable
     */
    public static function setPlaceholderFormatterDefinition($name, $callable)
    {
        if (!self::$formatters) {
            self::$formatters = self::initPlaceholderFormatters();
        }

        self::$formatters[$name] = $callable;
    }

    /**
     * Gets the placeholder formatter for a given name.
     *
     * @param string $name The placeholder name (including the delimiter char like %)
     *
     * @return callable|null A PHP callable
     */
    public static function getPlaceholderFormatterDefinition($name)
    {
        if (!self::$formatters) {
            self::$formatters = self::initPlaceholderFormatters();
        }

        return isset(self::$formatters[$name]) ? self::$formatters[$name] : null;
    }

    private function display()
    {
        if (OutputInterface::VERBOSITY_QUIET === $this->output->getVerbosity()) {
            return;
        }

        $this->overwrite(preg_replace_callback("{%([a-z\-_]+)(?:\:([^%]+))?%}i", function ($matches) {
            if ($formatter = self::getPlaceholderFormatterDefinition($matches[1])) {
                return $formatter($this);
            }

            return $matches[0];
        }, $this->format));
    }

    private function determineBestFormat(): string
    {
        switch ($this->output->getVerbosity()) {
            // OutputInterface::VERBOSITY_QUIET: display is disabled anyway
            case OutputInterface::VERBOSITY_VERBOSE:
                return $this->output->isDecorated() ? 'verbose' : 'verbose_no_ansi';
            case OutputInterface::VERBOSITY_VERY_VERBOSE:
            case OutputInterface::VERBOSITY_DEBUG:
                return $this->output->isDecorated() ? 'very_verbose' : 'very_verbose_no_ansi';
            default:
                return $this->output->isDecorated() ? 'normal' : 'normal_no_ansi';
        }
    }

    /**
     * Overwrites a previous message to the output.
     */
    private function overwrite(string $message)
    {
        if ($this->output->isDecorated()) {
            $this->output->write("\x0D\x1B[2K");
            $this->output->write($message);
        } else {
            $this->output->writeln($message);
        }
    }

    private function getCurrentTimeInMilliseconds(): float
    {
        return round(microtime(true) * 1000);
    }

    private static function initPlaceholderFormatters(): array
    {
        return [
            'indicator' => function (self $indicator) {
                return $indicator->indicatorValues[$indicator->indicatorCurrent % \count($indicator->indicatorValues)];
            },
            'message' => function (self $indicator) {
                return $indicator->message;
            },
            'elapsed' => function (self $indicator) {
                return Helper::formatTime(time() - $indicator->startTime);
            },
            'memory' => function () {
                return Helper::formatMemory(memory_get_usage(true));
            },
        ];
    }

    private static function initFormats(): array
    {
        return [
            'normal' => ' %indicator% %message%',
            'normal_no_ansi' => ' %message%',

            'verbose' => ' %indicator% %message% (%elapsed:6s%)',
            'verbose_no_ansi' => ' %message% (%elapsed:6s%)',

            'very_verbose' => ' %indicator% %message% (%elapsed:6s%, %memory:6s%)',
            'very_verbose_no_ansi' => ' %message% (%elapsed:6s%, %memory:6s%)',
        ];
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Helper;

use Symfony\Component\Console\Descriptor\DescriptorInterface;
use Symfony\Component\Console\Descriptor\JsonDescriptor;
use Symfony\Component\Console\Descriptor\MarkdownDescriptor;
use Symfony\Component\Console\Descriptor\TextDescriptor;
use Symfony\Component\Console\Descriptor\XmlDescriptor;
use Symfony\Component\Console\Exception\InvalidArgumentException;
use Symfony\Component\Console\Output\OutputInterface;

/**
 * This class adds helper method to describe objects in various formats.
 *
 * @author Jean-François Simon <contact@jfsimon.fr>
 */
class DescriptorHelper extends Helper
{
    /**
     * @var DescriptorInterface[]
     */
    private $descriptors = [];

    public function __construct()
    {
        $this
            ->register('txt', new TextDescriptor())
            ->register('xml', new XmlDescriptor())
            ->register('json', new JsonDescriptor())
            ->register('md', new MarkdownDescriptor())
        ;
    }

    /**
     * Describes an object if supported.
     *
     * Available options are:
     * * format: string, the output format name
     * * raw_text: boolean, sets output type as raw
     *
     * @param object $object
     *
     * @throws InvalidArgumentException when the given format is not supported
     */
    public function describe(OutputInterface $output, $object, array $options = [])
    {
        $options = array_merge([
            'raw_text' => false,
            'format' => 'txt',
        ], $options);

        if (!isset($this->descriptors[$options['format']])) {
            throw new InvalidArgumentException(sprintf('Unsupported format "%s".', $options['format']));
        }

        $descriptor = $this->descriptors[$options['format']];
        $descriptor->describe($output, $object, $options);
    }

    /**
     * Registers a descriptor.
     *
     * @param string $format
     *
     * @return $this
     */
    public function register($format, DescriptorInterface $descriptor)
    {
        $this->descriptors[$format] = $descriptor;

        return $this;
    }

    /**
     * {@inheritdoc}
     */
    public function getName()
    {
        return 'descriptor';
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\DependencyInjection;

use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\CommandLoader\ContainerCommandLoader;
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
use Symfony\Component\DependencyInjection\Compiler\ServiceLocatorTagPass;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
use Symfony\Component\DependencyInjection\TypedReference;

/**
 * Registers console commands.
 *
 * @author Grégoire Pineau <lyrixx@lyrixx.info>
 */
class AddConsoleCommandPass implements CompilerPassInterface
{
    private $commandLoaderServiceId;
    private $commandTag;

    public function __construct(string $commandLoaderServiceId = 'console.command_loader', string $commandTag = 'console.command')
    {
        $this->commandLoaderServiceId = $commandLoaderServiceId;
        $this->commandTag = $commandTag;
    }

    public function process(ContainerBuilder $container)
    {
        $commandServices = $container->findTaggedServiceIds($this->commandTag, true);
        $lazyCommandMap = [];
        $lazyCommandRefs = [];
        $serviceIds = [];

        foreach ($commandServices as $id => $tags) {
            $definition = $container->getDefinition($id);
            $class = $container->getParameterBag()->resolveValue($definition->getClass());

            if (isset($tags[0]['command'])) {
                $commandName = $tags[0]['command'];
            } else {
                if (!$r = $container->getReflectionClass($class)) {
                    throw new InvalidArgumentException(sprintf('Class "%s" used for service "%s" cannot be found.', $class, $id));
                }
                if (!$r->isSubclassOf(Command::class)) {
                    throw new InvalidArgumentException(sprintf('The service "%s" tagged "%s" must be a subclass of "%s".', $id, $this->commandTag, Command::class));
                }
                $commandName = $class::getDefaultName();
            }

            if (null === $commandName) {
                if (!$definition->isPublic() || $definition->isPrivate()) {
                    $commandId = 'console.command.public_alias.'.$id;
                    $container->setAlias($commandId, $id)->setPublic(true);
                    $id = $commandId;
                }
                $serviceIds[] = $id;

                continue;
            }

            unset($tags[0]);
            $lazyCommandMap[$commandName] = $id;
            $lazyCommandRefs[$id] = new TypedReference($id, $class);
            $aliases = [];

            foreach ($tags as $tag) {
                if (isset($tag['command'])) {
                    $aliases[] = $tag['command'];
                    $lazyCommandMap[$tag['command']] = $id;
                }
            }

            $definition->addMethodCall('setName', [$commandName]);

            if ($aliases) {
                $definition->addMethodCall('setAliases', [$aliases]);
            }
        }

        $container
            ->register($this->commandLoaderServiceId, ContainerCommandLoader::class)
            ->setPublic(true)
            ->setArguments([ServiceLocatorTagPass::register($container, $lazyCommandRefs), $lazyCommandMap]);

        $container->setParameter('console.command.ids', $serviceIds);
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Exception;

/**
 * @author Jérôme Tamarelle <jerome@tamarelle.net>
 */
class LogicException extends \LogicException implements ExceptionInterface
{
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Exception;

/**
 * Represents an incorrect option name typed in the console.
 *
 * @author Jérôme Tamarelle <jerome@tamarelle.net>
 */
class InvalidOptionException extends \InvalidArgumentException implements ExceptionInterface
{
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Exception;

/**
 * ExceptionInterface.
 *
 * @author Jérôme Tamarelle <jerome@tamarelle.net>
 */
interface ExceptionInterface extends \Throwable
{
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Exception;

/**
 * @author Jérôme Tamarelle <jerome@tamarelle.net>
 */
class RuntimeException extends \RuntimeException implements ExceptionInterface
{
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Exception;

/**
 * Represents an incorrect namespace typed in the console.
 *
 * @author Pierre du Plessis <pdples@gmail.com>
 */
class NamespaceNotFoundException extends CommandNotFoundException
{
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Exception;

/**
 * @author Jérôme Tamarelle <jerome@tamarelle.net>
 */
class InvalidArgumentException extends \InvalidArgumentException implements ExceptionInterface
{
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Exception;

/**
 * Represents failure to read input from stdin.
 *
 * @author Gabriel Ostrolucký <gabriel.ostrolucky@gmail.com>
 */
class MissingInputException extends RuntimeException implements ExceptionInterface
{
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Exception;

/**
 * Represents an incorrect command name typed in the console.
 *
 * @author Jérôme Tamarelle <jerome@tamarelle.net>
 */
class CommandNotFoundException extends \InvalidArgumentException implements ExceptionInterface
{
    private $alternatives;

    /**
     * @param string     $message      Exception message to throw
     * @param array      $alternatives List of similar defined names
     * @param int        $code         Exception code
     * @param \Throwable $previous     Previous exception used for the exception chaining
     */
    public function __construct(string $message, array $alternatives = [], int $code = 0, \Throwable $previous = null)
    {
        parent::__construct($message, $code, $previous);

        $this->alternatives = $alternatives;
    }

    /**
     * @return array A list of similar defined names
     */
    public function getAlternatives()
    {
        return $this->alternatives;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Event;

use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;

/**
 * Allows to manipulate the exit code of a command after its execution.
 *
 * @author Francesco Levorato <git@flevour.net>
 *
 * @final since Symfony 4.4
 */
class ConsoleTerminateEvent extends ConsoleEvent
{
    private $exitCode;

    public function __construct(Command $command, InputInterface $input, OutputInterface $output, int $exitCode)
    {
        parent::__construct($command, $input, $output);

        $this->setExitCode($exitCode);
    }

    /**
     * Sets the exit code.
     *
     * @param int $exitCode The command exit code
     */
    public function setExitCode($exitCode)
    {
        $this->exitCode = (int) $exitCode;
    }

    /**
     * Gets the exit code.
     *
     * @return int The command exit code
     */
    public function getExitCode()
    {
        return $this->exitCode;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Event;

use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;

/**
 * Allows to handle throwables thrown while running a command.
 *
 * @author Wouter de Jong <wouter@wouterj.nl>
 */
final class ConsoleErrorEvent extends ConsoleEvent
{
    private $error;
    private $exitCode;

    public function __construct(InputInterface $input, OutputInterface $output, \Throwable $error, Command $command = null)
    {
        parent::__construct($command, $input, $output);

        $this->error = $error;
    }

    public function getError(): \Throwable
    {
        return $this->error;
    }

    public function setError(\Throwable $error): void
    {
        $this->error = $error;
    }

    public function setExitCode(int $exitCode): void
    {
        $this->exitCode = $exitCode;

        $r = new \ReflectionProperty($this->error, 'code');
        $r->setAccessible(true);
        $r->setValue($this->error, $this->exitCode);
    }

    public function getExitCode(): int
    {
        return null !== $this->exitCode ? $this->exitCode : (\is_int($this->error->getCode()) && 0 !== $this->error->getCode() ? $this->error->getCode() : 1);
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Event;

/**
 * Allows to do things before the command is executed, like skipping the command or changing the input.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 *
 * @final since Symfony 4.4
 */
class ConsoleCommandEvent extends ConsoleEvent
{
    /**
     * The return code for skipped commands, this will also be passed into the terminate event.
     */
    const RETURN_CODE_DISABLED = 113;

    /**
     * Indicates if the command should be run or skipped.
     */
    private $commandShouldRun = true;

    /**
     * Disables the command, so it won't be run.
     *
     * @return bool
     */
    public function disableCommand()
    {
        return $this->commandShouldRun = false;
    }

    /**
     * Enables the command.
     *
     * @return bool
     */
    public function enableCommand()
    {
        return $this->commandShouldRun = true;
    }

    /**
     * Returns true if the command is runnable, false otherwise.
     *
     * @return bool
     */
    public function commandShouldRun()
    {
        return $this->commandShouldRun;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\Event;

use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\EventDispatcher\Event;

/**
 * Allows to inspect input and output of a command.
 *
 * @author Francesco Levorato <git@flevour.net>
 */
class ConsoleEvent extends Event
{
    protected $command;

    private $input;
    private $output;

    public function __construct(Command $command = null, InputInterface $input, OutputInterface $output)
    {
        $this->command = $command;
        $this->input = $input;
        $this->output = $output;
    }

    /**
     * Gets the command that is executed.
     *
     * @return Command|null A Command instance
     */
    public function getCommand()
    {
        return $this->command;
    }

    /**
     * Gets the input instance.
     *
     * @return InputInterface An InputInterface instance
     */
    public function getInput()
    {
        return $this->input;
    }

    /**
     * Gets the output instance.
     *
     * @return OutputInterface An OutputInterface instance
     */
    public function getOutput()
    {
        return $this->output;
    }
}
{
    "name": "symfony/console",
    "type": "library",
    "description": "Symfony Console Component",
    "keywords": [],
    "homepage": "https://symfony.com",
    "license": "MIT",
    "authors": [
        {
            "name": "Fabien Potencier",
            "email": "fabien@symfony.com"
        },
        {
            "name": "Symfony Community",
            "homepage": "https://symfony.com/contributors"
        }
    ],
    "require": {
        "php": ">=7.1.3",
        "symfony/polyfill-mbstring": "~1.0",
        "symfony/polyfill-php73": "^1.8",
        "symfony/polyfill-php80": "^1.15",
        "symfony/service-contracts": "^1.1|^2"
    },
    "require-dev": {
        "symfony/config": "^3.4|^4.0|^5.0",
        "symfony/event-dispatcher": "^4.3",
        "symfony/dependency-injection": "^3.4|^4.0|^5.0",
        "symfony/lock": "^4.4|^5.0",
        "symfony/process": "^3.4|^4.0|^5.0",
        "symfony/var-dumper": "^4.3|^5.0",
        "psr/log": "~1.0"
    },
    "provide": {
        "psr/log-implementation": "1.0"
    },
    "suggest": {
        "symfony/event-dispatcher": "",
        "symfony/lock": "",
        "symfony/process": "",
        "psr/log": "For using the console logger"
    },
    "conflict": {
        "symfony/dependency-injection": "<3.4",
        "symfony/event-dispatcher": "<4.3|>=5",
        "symfony/lock": "<4.4",
        "symfony/process": "<3.3"
    },
    "autoload": {
        "psr-4": { "Symfony\\Component\\Console\\": "" },
        "exclude-from-classmap": [
            "/Tests/"
        ]
    },
    "minimum-stability": "dev",
    "extra": {
        "branch-alias": {
            "dev-master": "4.4-dev"
        }
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\EventListener;

use Psr\Log\LoggerInterface;
use Symfony\Component\Console\ConsoleEvents;
use Symfony\Component\Console\Event\ConsoleErrorEvent;
use Symfony\Component\Console\Event\ConsoleEvent;
use Symfony\Component\Console\Event\ConsoleTerminateEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;

/**
 * @author James Halsall <james.t.halsall@googlemail.com>
 * @author Robin Chalas <robin.chalas@gmail.com>
 */
class ErrorListener implements EventSubscriberInterface
{
    private $logger;

    public function __construct(LoggerInterface $logger = null)
    {
        $this->logger = $logger;
    }

    public function onConsoleError(ConsoleErrorEvent $event)
    {
        if (null === $this->logger) {
            return;
        }

        $error = $event->getError();

        if (!$inputString = $this->getInputString($event)) {
            $this->logger->error('An error occurred while using the console. Message: "{message}"', ['exception' => $error, 'message' => $error->getMessage()]);

            return;
        }

        $this->logger->error('Error thrown while running command "{command}". Message: "{message}"', ['exception' => $error, 'command' => $inputString, 'message' => $error->getMessage()]);
    }

    public function onConsoleTerminate(ConsoleTerminateEvent $event)
    {
        if (null === $this->logger) {
            return;
        }

        $exitCode = $event->getExitCode();

        if (0 === $exitCode) {
            return;
        }

        if (!$inputString = $this->getInputString($event)) {
            $this->logger->debug('The console exited with code "{code}"', ['code' => $exitCode]);

            return;
        }

        $this->logger->debug('Command "{command}" exited with code "{code}"', ['command' => $inputString, 'code' => $exitCode]);
    }

    public static function getSubscribedEvents()
    {
        return [
            ConsoleEvents::ERROR => ['onConsoleError', -128],
            ConsoleEvents::TERMINATE => ['onConsoleTerminate', -128],
        ];
    }

    private static function getInputString(ConsoleEvent $event): ?string
    {
        $commandName = $event->getCommand() ? $event->getCommand()->getName() : null;
        $input = $event->getInput();

        if (method_exists($input, '__toString')) {
            if ($commandName) {
                return str_replace(["'$commandName'", "\"$commandName\""], $commandName, (string) $input);
            }

            return (string) $input;
        }

        return $commandName;
    }
}
Copyright (c) 2015-2019 Fabien Potencier

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.
<?php

return array (
  'A' => 'a',
  'B' => 'b',
  'C' => 'c',
  'D' => 'd',
  'E' => 'e',
  'F' => 'f',
  'G' => 'g',
  'H' => 'h',
  'I' => 'i',
  'J' => 'j',
  'K' => 'k',
  'L' => 'l',
  'M' => 'm',
  'N' => 'n',
  'O' => 'o',
  'P' => 'p',
  'Q' => 'q',
  'R' => 'r',
  'S' => 's',
  'T' => 't',
  'U' => 'u',
  'V' => 'v',
  'W' => 'w',
  'X' => 'x',
  'Y' => 'y',
  'Z' => 'z',
  'À' => 'à',
  'Á' => 'á',
  'Â' => 'â',
  'Ã' => 'ã',
  'Ä' => 'ä',
  'Å' => 'å',
  'Æ' => 'æ',
  'Ç' => 'ç',
  'È' => 'è',
  'É' => 'é',
  'Ê' => 'ê',
  'Ë' => 'ë',
  'Ì' => 'ì',
  'Í' => 'í',
  'Î' => 'î',
  'Ï' => 'ï',
  'Ð' => 'ð',
  'Ñ' => 'ñ',
  'Ò' => 'ò',
  'Ó' => 'ó',
  'Ô' => 'ô',
  'Õ' => 'õ',
  'Ö' => 'ö',
  'Ø' => 'ø',
  'Ù' => 'ù',
  'Ú' => 'ú',
  'Û' => 'û',
  'Ü' => 'ü',
  'Ý' => 'ý',
  'Þ' => 'þ',
  'Ā' => 'ā',
  'Ă' => 'ă',
  'Ą' => 'ą',
  'Ć' => 'ć',
  'Ĉ' => 'ĉ',
  'Ċ' => 'ċ',
  'Č' => 'č',
  'Ď' => 'ď',
  'Đ' => 'đ',
  'Ē' => 'ē',
  'Ĕ' => 'ĕ',
  'Ė' => 'ė',
  'Ę' => 'ę',
  'Ě' => 'ě',
  'Ĝ' => 'ĝ',
  'Ğ' => 'ğ',
  'Ġ' => 'ġ',
  'Ģ' => 'ģ',
  'Ĥ' => 'ĥ',
  'Ħ' => 'ħ',
  'Ĩ' => 'ĩ',
  'Ī' => 'ī',
  'Ĭ' => 'ĭ',
  'Į' => 'į',
  'İ' => 'i',
  'Ĳ' => 'ĳ',
  'Ĵ' => 'ĵ',
  'Ķ' => 'ķ',
  'Ĺ' => 'ĺ',
  'Ļ' => 'ļ',
  'Ľ' => 'ľ',
  'Ŀ' => 'ŀ',
  'Ł' => 'ł',
  'Ń' => 'ń',
  'Ņ' => 'ņ',
  'Ň' => 'ň',
  'Ŋ' => 'ŋ',
  'Ō' => 'ō',
  'Ŏ' => 'ŏ',
  'Ő' => 'ő',
  'Œ' => 'œ',
  'Ŕ' => 'ŕ',
  'Ŗ' => 'ŗ',
  'Ř' => 'ř',
  'Ś' => 'ś',
  'Ŝ' => 'ŝ',
  'Ş' => 'ş',
  'Š' => 'š',
  'Ţ' => 'ţ',
  'Ť' => 'ť',
  'Ŧ' => 'ŧ',
  'Ũ' => 'ũ',
  'Ū' => 'ū',
  'Ŭ' => 'ŭ',
  'Ů' => 'ů',
  'Ű' => 'ű',
  'Ų' => 'ų',
  'Ŵ' => 'ŵ',
  'Ŷ' => 'ŷ',
  'Ÿ' => 'ÿ',
  'Ź' => 'ź',
  'Ż' => 'ż',
  'Ž' => 'ž',
  'Ɓ' => 'ɓ',
  'Ƃ' => 'ƃ',
  'Ƅ' => 'ƅ',
  'Ɔ' => 'ɔ',
  'Ƈ' => 'ƈ',
  'Ɖ' => 'ɖ',
  'Ɗ' => 'ɗ',
  'Ƌ' => 'ƌ',
  'Ǝ' => 'ǝ',
  'Ə' => 'ə',
  'Ɛ' => 'ɛ',
  'Ƒ' => 'ƒ',
  'Ɠ' => 'ɠ',
  'Ɣ' => 'ɣ',
  'Ɩ' => 'ɩ',
  'Ɨ' => 'ɨ',
  'Ƙ' => 'ƙ',
  'Ɯ' => 'ɯ',
  'Ɲ' => 'ɲ',
  'Ɵ' => 'ɵ',
  'Ơ' => 'ơ',
  'Ƣ' => 'ƣ',
  'Ƥ' => 'ƥ',
  'Ʀ' => 'ʀ',
  'Ƨ' => 'ƨ',
  'Ʃ' => 'ʃ',
  'Ƭ' => 'ƭ',
  'Ʈ' => 'ʈ',
  'Ư' => 'ư',
  'Ʊ' => 'ʊ',
  'Ʋ' => 'ʋ',
  'Ƴ' => 'ƴ',
  'Ƶ' => 'ƶ',
  'Ʒ' => 'ʒ',
  'Ƹ' => 'ƹ',
  'Ƽ' => 'ƽ',
  'Ǆ' => 'ǆ',
  'ǅ' => 'ǆ',
  'Ǉ' => 'ǉ',
  'ǈ' => 'ǉ',
  'Ǌ' => 'ǌ',
  'ǋ' => 'ǌ',
  'Ǎ' => 'ǎ',
  'Ǐ' => 'ǐ',
  'Ǒ' => 'ǒ',
  'Ǔ' => 'ǔ',
  'Ǖ' => 'ǖ',
  'Ǘ' => 'ǘ',
  'Ǚ' => 'ǚ',
  'Ǜ' => 'ǜ',
  'Ǟ' => 'ǟ',
  'Ǡ' => 'ǡ',
  'Ǣ' => 'ǣ',
  'Ǥ' => 'ǥ',
  'Ǧ' => 'ǧ',
  'Ǩ' => 'ǩ',
  'Ǫ' => 'ǫ',
  'Ǭ' => 'ǭ',
  'Ǯ' => 'ǯ',
  'Ǳ' => 'ǳ',
  'ǲ' => 'ǳ',
  'Ǵ' => 'ǵ',
  'Ƕ' => 'ƕ',
  'Ƿ' => 'ƿ',
  'Ǹ' => 'ǹ',
  'Ǻ' => 'ǻ',
  'Ǽ' => 'ǽ',
  'Ǿ' => 'ǿ',
  'Ȁ' => 'ȁ',
  'Ȃ' => 'ȃ',
  'Ȅ' => 'ȅ',
  'Ȇ' => 'ȇ',
  'Ȉ' => 'ȉ',
  'Ȋ' => 'ȋ',
  'Ȍ' => 'ȍ',
  'Ȏ' => 'ȏ',
  'Ȑ' => 'ȑ',
  'Ȓ' => 'ȓ',
  'Ȕ' => 'ȕ',
  'Ȗ' => 'ȗ',
  'Ș' => 'ș',
  'Ț' => 'ț',
  'Ȝ' => 'ȝ',
  'Ȟ' => 'ȟ',
  'Ƞ' => 'ƞ',
  'Ȣ' => 'ȣ',
  'Ȥ' => 'ȥ',
  'Ȧ' => 'ȧ',
  'Ȩ' => 'ȩ',
  'Ȫ' => 'ȫ',
  'Ȭ' => 'ȭ',
  'Ȯ' => 'ȯ',
  'Ȱ' => 'ȱ',
  'Ȳ' => 'ȳ',
  'Ⱥ' => 'ⱥ',
  'Ȼ' => 'ȼ',
  'Ƚ' => 'ƚ',
  'Ⱦ' => 'ⱦ',
  'Ɂ' => 'ɂ',
  'Ƀ' => 'ƀ',
  'Ʉ' => 'ʉ',
  'Ʌ' => 'ʌ',
  'Ɇ' => 'ɇ',
  'Ɉ' => 'ɉ',
  'Ɋ' => 'ɋ',
  'Ɍ' => 'ɍ',
  'Ɏ' => 'ɏ',
  'Ͱ' => 'ͱ',
  'Ͳ' => 'ͳ',
  'Ͷ' => 'ͷ',
  'Ϳ' => 'ϳ',
  'Ά' => 'ά',
  'Έ' => 'έ',
  'Ή' => 'ή',
  'Ί' => 'ί',
  'Ό' => 'ό',
  'Ύ' => 'ύ',
  'Ώ' => 'ώ',
  'Α' => 'α',
  'Β' => 'β',
  'Γ' => 'γ',
  'Δ' => 'δ',
  'Ε' => 'ε',
  'Ζ' => 'ζ',
  'Η' => 'η',
  'Θ' => 'θ',
  'Ι' => 'ι',
  'Κ' => 'κ',
  'Λ' => 'λ',
  'Μ' => 'μ',
  'Ν' => 'ν',
  'Ξ' => 'ξ',
  'Ο' => 'ο',
  'Π' => 'π',
  'Ρ' => 'ρ',
  'Σ' => 'σ',
  'Τ' => 'τ',
  'Υ' => 'υ',
  'Φ' => 'φ',
  'Χ' => 'χ',
  'Ψ' => 'ψ',
  'Ω' => 'ω',
  'Ϊ' => 'ϊ',
  'Ϋ' => 'ϋ',
  'Ϗ' => 'ϗ',
  'Ϙ' => 'ϙ',
  'Ϛ' => 'ϛ',
  'Ϝ' => 'ϝ',
  'Ϟ' => 'ϟ',
  'Ϡ' => 'ϡ',
  'Ϣ' => 'ϣ',
  'Ϥ' => 'ϥ',
  'Ϧ' => 'ϧ',
  'Ϩ' => 'ϩ',
  'Ϫ' => 'ϫ',
  'Ϭ' => 'ϭ',
  'Ϯ' => 'ϯ',
  'ϴ' => 'θ',
  'Ϸ' => 'ϸ',
  'Ϲ' => 'ϲ',
  'Ϻ' => 'ϻ',
  'Ͻ' => 'ͻ',
  'Ͼ' => 'ͼ',
  'Ͽ' => 'ͽ',
  'Ѐ' => 'ѐ',
  'Ё' => 'ё',
  'Ђ' => 'ђ',
  'Ѓ' => 'ѓ',
  'Є' => 'є',
  'Ѕ' => 'ѕ',
  'І' => 'і',
  'Ї' => 'ї',
  'Ј' => 'ј',
  'Љ' => 'љ',
  'Њ' => 'њ',
  'Ћ' => 'ћ',
  'Ќ' => 'ќ',
  'Ѝ' => 'ѝ',
  'Ў' => 'ў',
  'Џ' => 'џ',
  'А' => 'а',
  'Б' => 'б',
  'В' => 'в',
  'Г' => 'г',
  'Д' => 'д',
  'Е' => 'е',
  'Ж' => 'ж',
  'З' => 'з',
  'И' => 'и',
  'Й' => 'й',
  'К' => 'к',
  'Л' => 'л',
  'М' => 'м',
  'Н' => 'н',
  'О' => 'о',
  'П' => 'п',
  'Р' => 'р',
  'С' => 'с',
  'Т' => 'т',
  'У' => 'у',
  'Ф' => 'ф',
  'Х' => 'х',
  'Ц' => 'ц',
  'Ч' => 'ч',
  'Ш' => 'ш',
  'Щ' => 'щ',
  'Ъ' => 'ъ',
  'Ы' => 'ы',
  'Ь' => 'ь',
  'Э' => 'э',
  'Ю' => 'ю',
  'Я' => 'я',
  'Ѡ' => 'ѡ',
  'Ѣ' => 'ѣ',
  'Ѥ' => 'ѥ',
  'Ѧ' => 'ѧ',
  'Ѩ' => 'ѩ',
  'Ѫ' => 'ѫ',
  'Ѭ' => 'ѭ',
  'Ѯ' => 'ѯ',
  'Ѱ' => 'ѱ',
  'Ѳ' => 'ѳ',
  'Ѵ' => 'ѵ',
  'Ѷ' => 'ѷ',
  'Ѹ' => 'ѹ',
  'Ѻ' => 'ѻ',
  'Ѽ' => 'ѽ',
  'Ѿ' => 'ѿ',
  'Ҁ' => 'ҁ',
  'Ҋ' => 'ҋ',
  'Ҍ' => 'ҍ',
  'Ҏ' => 'ҏ',
  'Ґ' => 'ґ',
  'Ғ' => 'ғ',
  'Ҕ' => 'ҕ',
  'Җ' => 'җ',
  'Ҙ' => 'ҙ',
  'Қ' => 'қ',
  'Ҝ' => 'ҝ',
  'Ҟ' => 'ҟ',
  'Ҡ' => 'ҡ',
  'Ң' => 'ң',
  'Ҥ' => 'ҥ',
  'Ҧ' => 'ҧ',
  'Ҩ' => 'ҩ',
  'Ҫ' => 'ҫ',
  'Ҭ' => 'ҭ',
  'Ү' => 'ү',
  'Ұ' => 'ұ',
  'Ҳ' => 'ҳ',
  'Ҵ' => 'ҵ',
  'Ҷ' => 'ҷ',
  'Ҹ' => 'ҹ',
  'Һ' => 'һ',
  'Ҽ' => 'ҽ',
  'Ҿ' => 'ҿ',
  'Ӏ' => 'ӏ',
  'Ӂ' => 'ӂ',
  'Ӄ' => 'ӄ',
  'Ӆ' => 'ӆ',
  'Ӈ' => 'ӈ',
  'Ӊ' => 'ӊ',
  'Ӌ' => 'ӌ',
  'Ӎ' => 'ӎ',
  'Ӑ' => 'ӑ',
  'Ӓ' => 'ӓ',
  'Ӕ' => 'ӕ',
  'Ӗ' => 'ӗ',
  'Ә' => 'ә',
  'Ӛ' => 'ӛ',
  'Ӝ' => 'ӝ',
  'Ӟ' => 'ӟ',
  'Ӡ' => 'ӡ',
  'Ӣ' => 'ӣ',
  'Ӥ' => 'ӥ',
  'Ӧ' => 'ӧ',
  'Ө' => 'ө',
  'Ӫ' => 'ӫ',
  'Ӭ' => 'ӭ',
  'Ӯ' => 'ӯ',
  'Ӱ' => 'ӱ',
  'Ӳ' => 'ӳ',
  'Ӵ' => 'ӵ',
  'Ӷ' => 'ӷ',
  'Ӹ' => 'ӹ',
  'Ӻ' => 'ӻ',
  'Ӽ' => 'ӽ',
  'Ӿ' => 'ӿ',
  'Ԁ' => 'ԁ',
  'Ԃ' => 'ԃ',
  'Ԅ' => 'ԅ',
  'Ԇ' => 'ԇ',
  'Ԉ' => 'ԉ',
  'Ԋ' => 'ԋ',
  'Ԍ' => 'ԍ',
  'Ԏ' => 'ԏ',
  'Ԑ' => 'ԑ',
  'Ԓ' => 'ԓ',
  'Ԕ' => 'ԕ',
  'Ԗ' => 'ԗ',
  'Ԙ' => 'ԙ',
  'Ԛ' => 'ԛ',
  'Ԝ' => 'ԝ',
  'Ԟ' => 'ԟ',
  'Ԡ' => 'ԡ',
  'Ԣ' => 'ԣ',
  'Ԥ' => 'ԥ',
  'Ԧ' => 'ԧ',
  'Ԩ' => 'ԩ',
  'Ԫ' => 'ԫ',
  'Ԭ' => 'ԭ',
  'Ԯ' => 'ԯ',
  'Ա' => 'ա',
  'Բ' => 'բ',
  'Գ' => 'գ',
  'Դ' => 'դ',
  'Ե' => 'ե',
  'Զ' => 'զ',
  'Է' => 'է',
  'Ը' => 'ը',
  'Թ' => 'թ',
  'Ժ' => 'ժ',
  'Ի' => 'ի',
  'Լ' => 'լ',
  'Խ' => 'խ',
  'Ծ' => 'ծ',
  'Կ' => 'կ',
  'Հ' => 'հ',
  'Ձ' => 'ձ',
  'Ղ' => 'ղ',
  'Ճ' => 'ճ',
  'Մ' => 'մ',
  'Յ' => 'յ',
  'Ն' => 'ն',
  'Շ' => 'շ',
  'Ո' => 'ո',
  'Չ' => 'չ',
  'Պ' => 'պ',
  'Ջ' => 'ջ',
  'Ռ' => 'ռ',
  'Ս' => 'ս',
  'Վ' => 'վ',
  'Տ' => 'տ',
  'Ր' => 'ր',
  'Ց' => 'ց',
  'Ւ' => 'ւ',
  'Փ' => 'փ',
  'Ք' => 'ք',
  'Օ' => 'օ',
  'Ֆ' => 'ֆ',
  'Ⴀ' => 'ⴀ',
  'Ⴁ' => 'ⴁ',
  'Ⴂ' => 'ⴂ',
  'Ⴃ' => 'ⴃ',
  'Ⴄ' => 'ⴄ',
  'Ⴅ' => 'ⴅ',
  'Ⴆ' => 'ⴆ',
  'Ⴇ' => 'ⴇ',
  'Ⴈ' => 'ⴈ',
  'Ⴉ' => 'ⴉ',
  'Ⴊ' => 'ⴊ',
  'Ⴋ' => 'ⴋ',
  'Ⴌ' => 'ⴌ',
  'Ⴍ' => 'ⴍ',
  'Ⴎ' => 'ⴎ',
  'Ⴏ' => 'ⴏ',
  'Ⴐ' => 'ⴐ',
  'Ⴑ' => 'ⴑ',
  'Ⴒ' => 'ⴒ',
  'Ⴓ' => 'ⴓ',
  'Ⴔ' => 'ⴔ',
  'Ⴕ' => 'ⴕ',
  'Ⴖ' => 'ⴖ',
  'Ⴗ' => 'ⴗ',
  'Ⴘ' => 'ⴘ',
  'Ⴙ' => 'ⴙ',
  'Ⴚ' => 'ⴚ',
  'Ⴛ' => 'ⴛ',
  'Ⴜ' => 'ⴜ',
  'Ⴝ' => 'ⴝ',
  'Ⴞ' => 'ⴞ',
  'Ⴟ' => 'ⴟ',
  'Ⴠ' => 'ⴠ',
  'Ⴡ' => 'ⴡ',
  'Ⴢ' => 'ⴢ',
  'Ⴣ' => 'ⴣ',
  'Ⴤ' => 'ⴤ',
  'Ⴥ' => 'ⴥ',
  'Ⴧ' => 'ⴧ',
  'Ⴭ' => 'ⴭ',
  'Ꭰ' => 'ꭰ',
  'Ꭱ' => 'ꭱ',
  'Ꭲ' => 'ꭲ',
  'Ꭳ' => 'ꭳ',
  'Ꭴ' => 'ꭴ',
  'Ꭵ' => 'ꭵ',
  'Ꭶ' => 'ꭶ',
  'Ꭷ' => 'ꭷ',
  'Ꭸ' => 'ꭸ',
  'Ꭹ' => 'ꭹ',
  'Ꭺ' => 'ꭺ',
  'Ꭻ' => 'ꭻ',
  'Ꭼ' => 'ꭼ',
  'Ꭽ' => 'ꭽ',
  'Ꭾ' => 'ꭾ',
  'Ꭿ' => 'ꭿ',
  'Ꮀ' => 'ꮀ',
  'Ꮁ' => 'ꮁ',
  'Ꮂ' => 'ꮂ',
  'Ꮃ' => 'ꮃ',
  'Ꮄ' => 'ꮄ',
  'Ꮅ' => 'ꮅ',
  'Ꮆ' => 'ꮆ',
  'Ꮇ' => 'ꮇ',
  'Ꮈ' => 'ꮈ',
  'Ꮉ' => 'ꮉ',
  'Ꮊ' => 'ꮊ',
  'Ꮋ' => 'ꮋ',
  'Ꮌ' => 'ꮌ',
  'Ꮍ' => 'ꮍ',
  'Ꮎ' => 'ꮎ',
  'Ꮏ' => 'ꮏ',
  'Ꮐ' => 'ꮐ',
  'Ꮑ' => 'ꮑ',
  'Ꮒ' => 'ꮒ',
  'Ꮓ' => 'ꮓ',
  'Ꮔ' => 'ꮔ',
  'Ꮕ' => 'ꮕ',
  'Ꮖ' => 'ꮖ',
  'Ꮗ' => 'ꮗ',
  'Ꮘ' => 'ꮘ',
  'Ꮙ' => 'ꮙ',
  'Ꮚ' => 'ꮚ',
  'Ꮛ' => 'ꮛ',
  'Ꮜ' => 'ꮜ',
  'Ꮝ' => 'ꮝ',
  'Ꮞ' => 'ꮞ',
  'Ꮟ' => 'ꮟ',
  'Ꮠ' => 'ꮠ',
  'Ꮡ' => 'ꮡ',
  'Ꮢ' => 'ꮢ',
  'Ꮣ' => 'ꮣ',
  'Ꮤ' => 'ꮤ',
  'Ꮥ' => 'ꮥ',
  'Ꮦ' => 'ꮦ',
  'Ꮧ' => 'ꮧ',
  'Ꮨ' => 'ꮨ',
  'Ꮩ' => 'ꮩ',
  'Ꮪ' => 'ꮪ',
  'Ꮫ' => 'ꮫ',
  'Ꮬ' => 'ꮬ',
  'Ꮭ' => 'ꮭ',
  'Ꮮ' => 'ꮮ',
  'Ꮯ' => 'ꮯ',
  'Ꮰ' => 'ꮰ',
  'Ꮱ' => 'ꮱ',
  'Ꮲ' => 'ꮲ',
  'Ꮳ' => 'ꮳ',
  'Ꮴ' => 'ꮴ',
  'Ꮵ' => 'ꮵ',
  'Ꮶ' => 'ꮶ',
  'Ꮷ' => 'ꮷ',
  'Ꮸ' => 'ꮸ',
  'Ꮹ' => 'ꮹ',
  'Ꮺ' => 'ꮺ',
  'Ꮻ' => 'ꮻ',
  'Ꮼ' => 'ꮼ',
  'Ꮽ' => 'ꮽ',
  'Ꮾ' => 'ꮾ',
  'Ꮿ' => 'ꮿ',
  'Ᏸ' => 'ᏸ',
  'Ᏹ' => 'ᏹ',
  'Ᏺ' => 'ᏺ',
  'Ᏻ' => 'ᏻ',
  'Ᏼ' => 'ᏼ',
  'Ᏽ' => 'ᏽ',
  'Ა' => 'ა',
  'Ბ' => 'ბ',
  'Გ' => 'გ',
  'Დ' => 'დ',
  'Ე' => 'ე',
  'Ვ' => 'ვ',
  'Ზ' => 'ზ',
  'Თ' => 'თ',
  'Ი' => 'ი',
  'Კ' => 'კ',
  'Ლ' => 'ლ',
  'Მ' => 'მ',
  'Ნ' => 'ნ',
  'Ო' => 'ო',
  'Პ' => 'პ',
  'Ჟ' => 'ჟ',
  'Რ' => 'რ',
  'Ს' => 'ს',
  'Ტ' => 'ტ',
  'Უ' => 'უ',
  'Ფ' => 'ფ',
  'Ქ' => 'ქ',
  'Ღ' => 'ღ',
  'Ყ' => 'ყ',
  'Შ' => 'შ',
  'Ჩ' => 'ჩ',
  'Ც' => 'ც',
  'Ძ' => 'ძ',
  'Წ' => 'წ',
  'Ჭ' => 'ჭ',
  'Ხ' => 'ხ',
  'Ჯ' => 'ჯ',
  'Ჰ' => 'ჰ',
  'Ჱ' => 'ჱ',
  'Ჲ' => 'ჲ',
  'Ჳ' => 'ჳ',
  'Ჴ' => 'ჴ',
  'Ჵ' => 'ჵ',
  'Ჶ' => 'ჶ',
  'Ჷ' => 'ჷ',
  'Ჸ' => 'ჸ',
  'Ჹ' => 'ჹ',
  'Ჺ' => 'ჺ',
  'Ჽ' => 'ჽ',
  'Ჾ' => 'ჾ',
  'Ჿ' => 'ჿ',
  'Ḁ' => 'ḁ',
  'Ḃ' => 'ḃ',
  'Ḅ' => 'ḅ',
  'Ḇ' => 'ḇ',
  'Ḉ' => 'ḉ',
  'Ḋ' => 'ḋ',
  'Ḍ' => 'ḍ',
  'Ḏ' => 'ḏ',
  'Ḑ' => 'ḑ',
  'Ḓ' => 'ḓ',
  'Ḕ' => 'ḕ',
  'Ḗ' => 'ḗ',
  'Ḙ' => 'ḙ',
  'Ḛ' => 'ḛ',
  'Ḝ' => 'ḝ',
  'Ḟ' => 'ḟ',
  'Ḡ' => 'ḡ',
  'Ḣ' => 'ḣ',
  'Ḥ' => 'ḥ',
  'Ḧ' => 'ḧ',
  'Ḩ' => 'ḩ',
  'Ḫ' => 'ḫ',
  'Ḭ' => 'ḭ',
  'Ḯ' => 'ḯ',
  'Ḱ' => 'ḱ',
  'Ḳ' => 'ḳ',
  'Ḵ' => 'ḵ',
  'Ḷ' => 'ḷ',
  'Ḹ' => 'ḹ',
  'Ḻ' => 'ḻ',
  'Ḽ' => 'ḽ',
  'Ḿ' => 'ḿ',
  'Ṁ' => 'ṁ',
  'Ṃ' => 'ṃ',
  'Ṅ' => 'ṅ',
  'Ṇ' => 'ṇ',
  'Ṉ' => 'ṉ',
  'Ṋ' => 'ṋ',
  'Ṍ' => 'ṍ',
  'Ṏ' => 'ṏ',
  'Ṑ' => 'ṑ',
  'Ṓ' => 'ṓ',
  'Ṕ' => 'ṕ',
  'Ṗ' => 'ṗ',
  'Ṙ' => 'ṙ',
  'Ṛ' => 'ṛ',
  'Ṝ' => 'ṝ',
  'Ṟ' => 'ṟ',
  'Ṡ' => 'ṡ',
  'Ṣ' => 'ṣ',
  'Ṥ' => 'ṥ',
  'Ṧ' => 'ṧ',
  'Ṩ' => 'ṩ',
  'Ṫ' => 'ṫ',
  'Ṭ' => 'ṭ',
  'Ṯ' => 'ṯ',
  'Ṱ' => 'ṱ',
  'Ṳ' => 'ṳ',
  'Ṵ' => 'ṵ',
  'Ṷ' => 'ṷ',
  'Ṹ' => 'ṹ',
  'Ṻ' => 'ṻ',
  'Ṽ' => 'ṽ',
  'Ṿ' => 'ṿ',
  'Ẁ' => 'ẁ',
  'Ẃ' => 'ẃ',
  'Ẅ' => 'ẅ',
  'Ẇ' => 'ẇ',
  'Ẉ' => 'ẉ',
  'Ẋ' => 'ẋ',
  'Ẍ' => 'ẍ',
  'Ẏ' => 'ẏ',
  'Ẑ' => 'ẑ',
  'Ẓ' => 'ẓ',
  'Ẕ' => 'ẕ',
  'ẞ' => 'ß',
  'Ạ' => 'ạ',
  'Ả' => 'ả',
  'Ấ' => 'ấ',
  'Ầ' => 'ầ',
  'Ẩ' => 'ẩ',
  'Ẫ' => 'ẫ',
  'Ậ' => 'ậ',
  'Ắ' => 'ắ',
  'Ằ' => 'ằ',
  'Ẳ' => 'ẳ',
  'Ẵ' => 'ẵ',
  'Ặ' => 'ặ',
  'Ẹ' => 'ẹ',
  'Ẻ' => 'ẻ',
  'Ẽ' => 'ẽ',
  'Ế' => 'ế',
  'Ề' => 'ề',
  'Ể' => 'ể',
  'Ễ' => 'ễ',
  'Ệ' => 'ệ',
  'Ỉ' => 'ỉ',
  'Ị' => 'ị',
  'Ọ' => 'ọ',
  'Ỏ' => 'ỏ',
  'Ố' => 'ố',
  'Ồ' => 'ồ',
  'Ổ' => 'ổ',
  'Ỗ' => 'ỗ',
  'Ộ' => 'ộ',
  'Ớ' => 'ớ',
  'Ờ' => 'ờ',
  'Ở' => 'ở',
  'Ỡ' => 'ỡ',
  'Ợ' => 'ợ',
  'Ụ' => 'ụ',
  'Ủ' => 'ủ',
  'Ứ' => 'ứ',
  'Ừ' => 'ừ',
  'Ử' => 'ử',
  'Ữ' => 'ữ',
  'Ự' => 'ự',
  'Ỳ' => 'ỳ',
  'Ỵ' => 'ỵ',
  'Ỷ' => 'ỷ',
  'Ỹ' => 'ỹ',
  'Ỻ' => 'ỻ',
  'Ỽ' => 'ỽ',
  'Ỿ' => 'ỿ',
  'Ἀ' => 'ἀ',
  'Ἁ' => 'ἁ',
  'Ἂ' => 'ἂ',
  'Ἃ' => 'ἃ',
  'Ἄ' => 'ἄ',
  'Ἅ' => 'ἅ',
  'Ἆ' => 'ἆ',
  'Ἇ' => 'ἇ',
  'Ἐ' => 'ἐ',
  'Ἑ' => 'ἑ',
  'Ἒ' => 'ἒ',
  'Ἓ' => 'ἓ',
  'Ἔ' => 'ἔ',
  'Ἕ' => 'ἕ',
  'Ἠ' => 'ἠ',
  'Ἡ' => 'ἡ',
  'Ἢ' => 'ἢ',
  'Ἣ' => 'ἣ',
  'Ἤ' => 'ἤ',
  'Ἥ' => 'ἥ',
  'Ἦ' => 'ἦ',
  'Ἧ' => 'ἧ',
  'Ἰ' => 'ἰ',
  'Ἱ' => 'ἱ',
  'Ἲ' => 'ἲ',
  'Ἳ' => 'ἳ',
  'Ἴ' => 'ἴ',
  'Ἵ' => 'ἵ',
  'Ἶ' => 'ἶ',
  'Ἷ' => 'ἷ',
  'Ὀ' => 'ὀ',
  'Ὁ' => 'ὁ',
  'Ὂ' => 'ὂ',
  'Ὃ' => 'ὃ',
  'Ὄ' => 'ὄ',
  'Ὅ' => 'ὅ',
  'Ὑ' => 'ὑ',
  'Ὓ' => 'ὓ',
  'Ὕ' => 'ὕ',
  'Ὗ' => 'ὗ',
  'Ὠ' => 'ὠ',
  'Ὡ' => 'ὡ',
  'Ὢ' => 'ὢ',
  'Ὣ' => 'ὣ',
  'Ὤ' => 'ὤ',
  'Ὥ' => 'ὥ',
  'Ὦ' => 'ὦ',
  'Ὧ' => 'ὧ',
  'ᾈ' => 'ᾀ',
  'ᾉ' => 'ᾁ',
  'ᾊ' => 'ᾂ',
  'ᾋ' => 'ᾃ',
  'ᾌ' => 'ᾄ',
  'ᾍ' => 'ᾅ',
  'ᾎ' => 'ᾆ',
  'ᾏ' => 'ᾇ',
  'ᾘ' => 'ᾐ',
  'ᾙ' => 'ᾑ',
  'ᾚ' => 'ᾒ',
  'ᾛ' => 'ᾓ',
  'ᾜ' => 'ᾔ',
  'ᾝ' => 'ᾕ',
  'ᾞ' => 'ᾖ',
  'ᾟ' => 'ᾗ',
  'ᾨ' => 'ᾠ',
  'ᾩ' => 'ᾡ',
  'ᾪ' => 'ᾢ',
  'ᾫ' => 'ᾣ',
  'ᾬ' => 'ᾤ',
  'ᾭ' => 'ᾥ',
  'ᾮ' => 'ᾦ',
  'ᾯ' => 'ᾧ',
  'Ᾰ' => 'ᾰ',
  'Ᾱ' => 'ᾱ',
  'Ὰ' => 'ὰ',
  'Ά' => 'ά',
  'ᾼ' => 'ᾳ',
  'Ὲ' => 'ὲ',
  'Έ' => 'έ',
  'Ὴ' => 'ὴ',
  'Ή' => 'ή',
  'ῌ' => 'ῃ',
  'Ῐ' => 'ῐ',
  'Ῑ' => 'ῑ',
  'Ὶ' => 'ὶ',
  'Ί' => 'ί',
  'Ῠ' => 'ῠ',
  'Ῡ' => 'ῡ',
  'Ὺ' => 'ὺ',
  'Ύ' => 'ύ',
  'Ῥ' => 'ῥ',
  'Ὸ' => 'ὸ',
  'Ό' => 'ό',
  'Ὼ' => 'ὼ',
  'Ώ' => 'ώ',
  'ῼ' => 'ῳ',
  'Ω' => 'ω',
  'K' => 'k',
  'Å' => 'å',
  'Ⅎ' => 'ⅎ',
  'Ⅰ' => 'ⅰ',
  'Ⅱ' => 'ⅱ',
  'Ⅲ' => 'ⅲ',
  'Ⅳ' => 'ⅳ',
  'Ⅴ' => 'ⅴ',
  'Ⅵ' => 'ⅵ',
  'Ⅶ' => 'ⅶ',
  'Ⅷ' => 'ⅷ',
  'Ⅸ' => 'ⅸ',
  'Ⅹ' => 'ⅹ',
  'Ⅺ' => 'ⅺ',
  'Ⅻ' => 'ⅻ',
  'Ⅼ' => 'ⅼ',
  'Ⅽ' => 'ⅽ',
  'Ⅾ' => 'ⅾ',
  'Ⅿ' => 'ⅿ',
  'Ↄ' => 'ↄ',
  'Ⓐ' => 'ⓐ',
  'Ⓑ' => 'ⓑ',
  'Ⓒ' => 'ⓒ',
  'Ⓓ' => 'ⓓ',
  'Ⓔ' => 'ⓔ',
  'Ⓕ' => 'ⓕ',
  'Ⓖ' => 'ⓖ',
  'Ⓗ' => 'ⓗ',
  'Ⓘ' => 'ⓘ',
  'Ⓙ' => 'ⓙ',
  'Ⓚ' => 'ⓚ',
  'Ⓛ' => 'ⓛ',
  'Ⓜ' => 'ⓜ',
  'Ⓝ' => 'ⓝ',
  'Ⓞ' => 'ⓞ',
  'Ⓟ' => 'ⓟ',
  'Ⓠ' => 'ⓠ',
  'Ⓡ' => 'ⓡ',
  'Ⓢ' => 'ⓢ',
  'Ⓣ' => 'ⓣ',
  'Ⓤ' => 'ⓤ',
  'Ⓥ' => 'ⓥ',
  'Ⓦ' => 'ⓦ',
  'Ⓧ' => 'ⓧ',
  'Ⓨ' => 'ⓨ',
  'Ⓩ' => 'ⓩ',
  'Ⰰ' => 'ⰰ',
  'Ⰱ' => 'ⰱ',
  'Ⰲ' => 'ⰲ',
  'Ⰳ' => 'ⰳ',
  'Ⰴ' => 'ⰴ',
  'Ⰵ' => 'ⰵ',
  'Ⰶ' => 'ⰶ',
  'Ⰷ' => 'ⰷ',
  'Ⰸ' => 'ⰸ',
  'Ⰹ' => 'ⰹ',
  'Ⰺ' => 'ⰺ',
  'Ⰻ' => 'ⰻ',
  'Ⰼ' => 'ⰼ',
  'Ⰽ' => 'ⰽ',
  'Ⰾ' => 'ⰾ',
  'Ⰿ' => 'ⰿ',
  'Ⱀ' => 'ⱀ',
  'Ⱁ' => 'ⱁ',
  'Ⱂ' => 'ⱂ',
  'Ⱃ' => 'ⱃ',
  'Ⱄ' => 'ⱄ',
  'Ⱅ' => 'ⱅ',
  'Ⱆ' => 'ⱆ',
  'Ⱇ' => 'ⱇ',
  'Ⱈ' => 'ⱈ',
  'Ⱉ' => 'ⱉ',
  'Ⱊ' => 'ⱊ',
  'Ⱋ' => 'ⱋ',
  'Ⱌ' => 'ⱌ',
  'Ⱍ' => 'ⱍ',
  'Ⱎ' => 'ⱎ',
  'Ⱏ' => 'ⱏ',
  'Ⱐ' => 'ⱐ',
  'Ⱑ' => 'ⱑ',
  'Ⱒ' => 'ⱒ',
  'Ⱓ' => 'ⱓ',
  'Ⱔ' => 'ⱔ',
  'Ⱕ' => 'ⱕ',
  'Ⱖ' => 'ⱖ',
  'Ⱗ' => 'ⱗ',
  'Ⱘ' => 'ⱘ',
  'Ⱙ' => 'ⱙ',
  'Ⱚ' => 'ⱚ',
  'Ⱛ' => 'ⱛ',
  'Ⱜ' => 'ⱜ',
  'Ⱝ' => 'ⱝ',
  'Ⱞ' => 'ⱞ',
  'Ⱡ' => 'ⱡ',
  'Ɫ' => 'ɫ',
  'Ᵽ' => 'ᵽ',
  'Ɽ' => 'ɽ',
  'Ⱨ' => 'ⱨ',
  'Ⱪ' => 'ⱪ',
  'Ⱬ' => 'ⱬ',
  'Ɑ' => 'ɑ',
  'Ɱ' => 'ɱ',
  'Ɐ' => 'ɐ',
  'Ɒ' => 'ɒ',
  'Ⱳ' => 'ⱳ',
  'Ⱶ' => 'ⱶ',
  'Ȿ' => 'ȿ',
  'Ɀ' => 'ɀ',
  'Ⲁ' => 'ⲁ',
  'Ⲃ' => 'ⲃ',
  'Ⲅ' => 'ⲅ',
  'Ⲇ' => 'ⲇ',
  'Ⲉ' => 'ⲉ',
  'Ⲋ' => 'ⲋ',
  'Ⲍ' => 'ⲍ',
  'Ⲏ' => 'ⲏ',
  'Ⲑ' => 'ⲑ',
  'Ⲓ' => 'ⲓ',
  'Ⲕ' => 'ⲕ',
  'Ⲗ' => 'ⲗ',
  'Ⲙ' => 'ⲙ',
  'Ⲛ' => 'ⲛ',
  'Ⲝ' => 'ⲝ',
  'Ⲟ' => 'ⲟ',
  'Ⲡ' => 'ⲡ',
  'Ⲣ' => 'ⲣ',
  'Ⲥ' => 'ⲥ',
  'Ⲧ' => 'ⲧ',
  'Ⲩ' => 'ⲩ',
  'Ⲫ' => 'ⲫ',
  'Ⲭ' => 'ⲭ',
  'Ⲯ' => 'ⲯ',
  'Ⲱ' => 'ⲱ',
  'Ⲳ' => 'ⲳ',
  'Ⲵ' => 'ⲵ',
  'Ⲷ' => 'ⲷ',
  'Ⲹ' => 'ⲹ',
  'Ⲻ' => 'ⲻ',
  'Ⲽ' => 'ⲽ',
  'Ⲿ' => 'ⲿ',
  'Ⳁ' => 'ⳁ',
  'Ⳃ' => 'ⳃ',
  'Ⳅ' => 'ⳅ',
  'Ⳇ' => 'ⳇ',
  'Ⳉ' => 'ⳉ',
  'Ⳋ' => 'ⳋ',
  'Ⳍ' => 'ⳍ',
  'Ⳏ' => 'ⳏ',
  'Ⳑ' => 'ⳑ',
  'Ⳓ' => 'ⳓ',
  'Ⳕ' => 'ⳕ',
  'Ⳗ' => 'ⳗ',
  'Ⳙ' => 'ⳙ',
  'Ⳛ' => 'ⳛ',
  'Ⳝ' => 'ⳝ',
  'Ⳟ' => 'ⳟ',
  'Ⳡ' => 'ⳡ',
  'Ⳣ' => 'ⳣ',
  'Ⳬ' => 'ⳬ',
  'Ⳮ' => 'ⳮ',
  'Ⳳ' => 'ⳳ',
  'Ꙁ' => 'ꙁ',
  'Ꙃ' => 'ꙃ',
  'Ꙅ' => 'ꙅ',
  'Ꙇ' => 'ꙇ',
  'Ꙉ' => 'ꙉ',
  'Ꙋ' => 'ꙋ',
  'Ꙍ' => 'ꙍ',
  'Ꙏ' => 'ꙏ',
  'Ꙑ' => 'ꙑ',
  'Ꙓ' => 'ꙓ',
  'Ꙕ' => 'ꙕ',
  'Ꙗ' => 'ꙗ',
  'Ꙙ' => 'ꙙ',
  'Ꙛ' => 'ꙛ',
  'Ꙝ' => 'ꙝ',
  'Ꙟ' => 'ꙟ',
  'Ꙡ' => 'ꙡ',
  'Ꙣ' => 'ꙣ',
  'Ꙥ' => 'ꙥ',
  'Ꙧ' => 'ꙧ',
  'Ꙩ' => 'ꙩ',
  'Ꙫ' => 'ꙫ',
  'Ꙭ' => 'ꙭ',
  'Ꚁ' => 'ꚁ',
  'Ꚃ' => 'ꚃ',
  'Ꚅ' => 'ꚅ',
  'Ꚇ' => 'ꚇ',
  'Ꚉ' => 'ꚉ',
  'Ꚋ' => 'ꚋ',
  'Ꚍ' => 'ꚍ',
  'Ꚏ' => 'ꚏ',
  'Ꚑ' => 'ꚑ',
  'Ꚓ' => 'ꚓ',
  'Ꚕ' => 'ꚕ',
  'Ꚗ' => 'ꚗ',
  'Ꚙ' => 'ꚙ',
  'Ꚛ' => 'ꚛ',
  'Ꜣ' => 'ꜣ',
  'Ꜥ' => 'ꜥ',
  'Ꜧ' => 'ꜧ',
  'Ꜩ' => 'ꜩ',
  'Ꜫ' => 'ꜫ',
  'Ꜭ' => 'ꜭ',
  'Ꜯ' => 'ꜯ',
  'Ꜳ' => 'ꜳ',
  'Ꜵ' => 'ꜵ',
  'Ꜷ' => 'ꜷ',
  'Ꜹ' => 'ꜹ',
  'Ꜻ' => 'ꜻ',
  'Ꜽ' => 'ꜽ',
  'Ꜿ' => 'ꜿ',
  'Ꝁ' => 'ꝁ',
  'Ꝃ' => 'ꝃ',
  'Ꝅ' => 'ꝅ',
  'Ꝇ' => 'ꝇ',
  'Ꝉ' => 'ꝉ',
  'Ꝋ' => 'ꝋ',
  'Ꝍ' => 'ꝍ',
  'Ꝏ' => 'ꝏ',
  'Ꝑ' => 'ꝑ',
  'Ꝓ' => 'ꝓ',
  'Ꝕ' => 'ꝕ',
  'Ꝗ' => 'ꝗ',
  'Ꝙ' => 'ꝙ',
  'Ꝛ' => 'ꝛ',
  'Ꝝ' => 'ꝝ',
  'Ꝟ' => 'ꝟ',
  'Ꝡ' => 'ꝡ',
  'Ꝣ' => 'ꝣ',
  'Ꝥ' => 'ꝥ',
  'Ꝧ' => 'ꝧ',
  'Ꝩ' => 'ꝩ',
  'Ꝫ' => 'ꝫ',
  'Ꝭ' => 'ꝭ',
  'Ꝯ' => 'ꝯ',
  'Ꝺ' => 'ꝺ',
  'Ꝼ' => 'ꝼ',
  'Ᵹ' => 'ᵹ',
  'Ꝿ' => 'ꝿ',
  'Ꞁ' => 'ꞁ',
  'Ꞃ' => 'ꞃ',
  'Ꞅ' => 'ꞅ',
  'Ꞇ' => 'ꞇ',
  'Ꞌ' => 'ꞌ',
  'Ɥ' => 'ɥ',
  'Ꞑ' => 'ꞑ',
  'Ꞓ' => 'ꞓ',
  'Ꞗ' => 'ꞗ',
  'Ꞙ' => 'ꞙ',
  'Ꞛ' => 'ꞛ',
  'Ꞝ' => 'ꞝ',
  'Ꞟ' => 'ꞟ',
  'Ꞡ' => 'ꞡ',
  'Ꞣ' => 'ꞣ',
  'Ꞥ' => 'ꞥ',
  'Ꞧ' => 'ꞧ',
  'Ꞩ' => 'ꞩ',
  'Ɦ' => 'ɦ',
  'Ɜ' => 'ɜ',
  'Ɡ' => 'ɡ',
  'Ɬ' => 'ɬ',
  'Ɪ' => 'ɪ',
  'Ʞ' => 'ʞ',
  'Ʇ' => 'ʇ',
  'Ʝ' => 'ʝ',
  'Ꭓ' => 'ꭓ',
  'Ꞵ' => 'ꞵ',
  'Ꞷ' => 'ꞷ',
  'Ꞹ' => 'ꞹ',
  'Ꞻ' => 'ꞻ',
  'Ꞽ' => 'ꞽ',
  'Ꞿ' => 'ꞿ',
  'Ꟃ' => 'ꟃ',
  'Ꞔ' => 'ꞔ',
  'Ʂ' => 'ʂ',
  'Ᶎ' => 'ᶎ',
  'Ꟈ' => 'ꟈ',
  'Ꟊ' => 'ꟊ',
  'Ꟶ' => 'ꟶ',
  'Ａ' => 'ａ',
  'Ｂ' => 'ｂ',
  'Ｃ' => 'ｃ',
  'Ｄ' => 'ｄ',
  'Ｅ' => 'ｅ',
  'Ｆ' => 'ｆ',
  'Ｇ' => 'ｇ',
  'Ｈ' => 'ｈ',
  'Ｉ' => 'ｉ',
  'Ｊ' => 'ｊ',
  'Ｋ' => 'ｋ',
  'Ｌ' => 'ｌ',
  'Ｍ' => 'ｍ',
  'Ｎ' => 'ｎ',
  'Ｏ' => 'ｏ',
  'Ｐ' => 'ｐ',
  'Ｑ' => 'ｑ',
  'Ｒ' => 'ｒ',
  'Ｓ' => 'ｓ',
  'Ｔ' => 'ｔ',
  'Ｕ' => 'ｕ',
  'Ｖ' => 'ｖ',
  'Ｗ' => 'ｗ',
  'Ｘ' => 'ｘ',
  'Ｙ' => 'ｙ',
  'Ｚ' => 'ｚ',
  '𐐀' => '𐐨',
  '𐐁' => '𐐩',
  '𐐂' => '𐐪',
  '𐐃' => '𐐫',
  '𐐄' => '𐐬',
  '𐐅' => '𐐭',
  '𐐆' => '𐐮',
  '𐐇' => '𐐯',
  '𐐈' => '𐐰',
  '𐐉' => '𐐱',
  '𐐊' => '𐐲',
  '𐐋' => '𐐳',
  '𐐌' => '𐐴',
  '𐐍' => '𐐵',
  '𐐎' => '𐐶',
  '𐐏' => '𐐷',
  '𐐐' => '𐐸',
  '𐐑' => '𐐹',
  '𐐒' => '𐐺',
  '𐐓' => '𐐻',
  '𐐔' => '𐐼',
  '𐐕' => '𐐽',
  '𐐖' => '𐐾',
  '𐐗' => '𐐿',
  '𐐘' => '𐑀',
  '𐐙' => '𐑁',
  '𐐚' => '𐑂',
  '𐐛' => '𐑃',
  '𐐜' => '𐑄',
  '𐐝' => '𐑅',
  '𐐞' => '𐑆',
  '𐐟' => '𐑇',
  '𐐠' => '𐑈',
  '𐐡' => '𐑉',
  '𐐢' => '𐑊',
  '𐐣' => '𐑋',
  '𐐤' => '𐑌',
  '𐐥' => '𐑍',
  '𐐦' => '𐑎',
  '𐐧' => '𐑏',
  '𐒰' => '𐓘',
  '𐒱' => '𐓙',
  '𐒲' => '𐓚',
  '𐒳' => '𐓛',
  '𐒴' => '𐓜',
  '𐒵' => '𐓝',
  '𐒶' => '𐓞',
  '𐒷' => '𐓟',
  '𐒸' => '𐓠',
  '𐒹' => '𐓡',
  '𐒺' => '𐓢',
  '𐒻' => '𐓣',
  '𐒼' => '𐓤',
  '𐒽' => '𐓥',
  '𐒾' => '𐓦',
  '𐒿' => '𐓧',
  '𐓀' => '𐓨',
  '𐓁' => '𐓩',
  '𐓂' => '𐓪',
  '𐓃' => '𐓫',
  '𐓄' => '𐓬',
  '𐓅' => '𐓭',
  '𐓆' => '𐓮',
  '𐓇' => '𐓯',
  '𐓈' => '𐓰',
  '𐓉' => '𐓱',
  '𐓊' => '𐓲',
  '𐓋' => '𐓳',
  '𐓌' => '𐓴',
  '𐓍' => '𐓵',
  '𐓎' => '𐓶',
  '𐓏' => '𐓷',
  '𐓐' => '𐓸',
  '𐓑' => '𐓹',
  '𐓒' => '𐓺',
  '𐓓' => '𐓻',
  '𐲀' => '𐳀',
  '𐲁' => '𐳁',
  '𐲂' => '𐳂',
  '𐲃' => '𐳃',
  '𐲄' => '𐳄',
  '𐲅' => '𐳅',
  '𐲆' => '𐳆',
  '𐲇' => '𐳇',
  '𐲈' => '𐳈',
  '𐲉' => '𐳉',
  '𐲊' => '𐳊',
  '𐲋' => '𐳋',
  '𐲌' => '𐳌',
  '𐲍' => '𐳍',
  '𐲎' => '𐳎',
  '𐲏' => '𐳏',
  '𐲐' => '𐳐',
  '𐲑' => '𐳑',
  '𐲒' => '𐳒',
  '𐲓' => '𐳓',
  '𐲔' => '𐳔',
  '𐲕' => '𐳕',
  '𐲖' => '𐳖',
  '𐲗' => '𐳗',
  '𐲘' => '𐳘',
  '𐲙' => '𐳙',
  '𐲚' => '𐳚',
  '𐲛' => '𐳛',
  '𐲜' => '𐳜',
  '𐲝' => '𐳝',
  '𐲞' => '𐳞',
  '𐲟' => '𐳟',
  '𐲠' => '𐳠',
  '𐲡' => '𐳡',
  '𐲢' => '𐳢',
  '𐲣' => '𐳣',
  '𐲤' => '𐳤',
  '𐲥' => '𐳥',
  '𐲦' => '𐳦',
  '𐲧' => '𐳧',
  '𐲨' => '𐳨',
  '𐲩' => '𐳩',
  '𐲪' => '𐳪',
  '𐲫' => '𐳫',
  '𐲬' => '𐳬',
  '𐲭' => '𐳭',
  '𐲮' => '𐳮',
  '𐲯' => '𐳯',
  '𐲰' => '𐳰',
  '𐲱' => '𐳱',
  '𐲲' => '𐳲',
  '𑢠' => '𑣀',
  '𑢡' => '𑣁',
  '𑢢' => '𑣂',
  '𑢣' => '𑣃',
  '𑢤' => '𑣄',
  '𑢥' => '𑣅',
  '𑢦' => '𑣆',
  '𑢧' => '𑣇',
  '𑢨' => '𑣈',
  '𑢩' => '𑣉',
  '𑢪' => '𑣊',
  '𑢫' => '𑣋',
  '𑢬' => '𑣌',
  '𑢭' => '𑣍',
  '𑢮' => '𑣎',
  '𑢯' => '𑣏',
  '𑢰' => '𑣐',
  '𑢱' => '𑣑',
  '𑢲' => '𑣒',
  '𑢳' => '𑣓',
  '𑢴' => '𑣔',
  '𑢵' => '𑣕',
  '𑢶' => '𑣖',
  '𑢷' => '𑣗',
  '𑢸' => '𑣘',
  '𑢹' => '𑣙',
  '𑢺' => '𑣚',
  '𑢻' => '𑣛',
  '𑢼' => '𑣜',
  '𑢽' => '𑣝',
  '𑢾' => '𑣞',
  '𑢿' => '𑣟',
  '𖹀' => '𖹠',
  '𖹁' => '𖹡',
  '𖹂' => '𖹢',
  '𖹃' => '𖹣',
  '𖹄' => '𖹤',
  '𖹅' => '𖹥',
  '𖹆' => '𖹦',
  '𖹇' => '𖹧',
  '𖹈' => '𖹨',
  '𖹉' => '𖹩',
  '𖹊' => '𖹪',
  '𖹋' => '𖹫',
  '𖹌' => '𖹬',
  '𖹍' => '𖹭',
  '𖹎' => '𖹮',
  '𖹏' => '𖹯',
  '𖹐' => '𖹰',
  '𖹑' => '𖹱',
  '𖹒' => '𖹲',
  '𖹓' => '𖹳',
  '𖹔' => '𖹴',
  '𖹕' => '𖹵',
  '𖹖' => '𖹶',
  '𖹗' => '𖹷',
  '𖹘' => '𖹸',
  '𖹙' => '𖹹',
  '𖹚' => '𖹺',
  '𖹛' => '𖹻',
  '𖹜' => '𖹼',
  '𖹝' => '𖹽',
  '𖹞' => '𖹾',
  '𖹟' => '𖹿',
  '𞤀' => '𞤢',
  '𞤁' => '𞤣',
  '𞤂' => '𞤤',
  '𞤃' => '𞤥',
  '𞤄' => '𞤦',
  '𞤅' => '𞤧',
  '𞤆' => '𞤨',
  '𞤇' => '𞤩',
  '𞤈' => '𞤪',
  '𞤉' => '𞤫',
  '𞤊' => '𞤬',
  '𞤋' => '𞤭',
  '𞤌' => '𞤮',
  '𞤍' => '𞤯',
  '𞤎' => '𞤰',
  '𞤏' => '𞤱',
  '𞤐' => '𞤲',
  '𞤑' => '𞤳',
  '𞤒' => '𞤴',
  '𞤓' => '𞤵',
  '𞤔' => '𞤶',
  '𞤕' => '𞤷',
  '𞤖' => '𞤸',
  '𞤗' => '𞤹',
  '𞤘' => '𞤺',
  '𞤙' => '𞤻',
  '𞤚' => '𞤼',
  '𞤛' => '𞤽',
  '𞤜' => '𞤾',
  '𞤝' => '𞤿',
  '𞤞' => '𞥀',
  '𞤟' => '𞥁',
  '𞤠' => '𞥂',
  '𞤡' => '𞥃',
);
<?php

// from Case_Ignorable in https://unicode.org/Public/UNIDATA/DerivedCoreProperties.txt

return '/(?<![\x{0027}\x{002E}\x{003A}\x{005E}\x{0060}\x{00A8}\x{00AD}\x{00AF}\x{00B4}\x{00B7}\x{00B8}\x{02B0}-\x{02C1}\x{02C2}-\x{02C5}\x{02C6}-\x{02D1}\x{02D2}-\x{02DF}\x{02E0}-\x{02E4}\x{02E5}-\x{02EB}\x{02EC}\x{02ED}\x{02EE}\x{02EF}-\x{02FF}\x{0300}-\x{036F}\x{0374}\x{0375}\x{037A}\x{0384}-\x{0385}\x{0387}\x{0483}-\x{0487}\x{0488}-\x{0489}\x{0559}\x{0591}-\x{05BD}\x{05BF}\x{05C1}-\x{05C2}\x{05C4}-\x{05C5}\x{05C7}\x{05F4}\x{0600}-\x{0605}\x{0610}-\x{061A}\x{061C}\x{0640}\x{064B}-\x{065F}\x{0670}\x{06D6}-\x{06DC}\x{06DD}\x{06DF}-\x{06E4}\x{06E5}-\x{06E6}\x{06E7}-\x{06E8}\x{06EA}-\x{06ED}\x{070F}\x{0711}\x{0730}-\x{074A}\x{07A6}-\x{07B0}\x{07EB}-\x{07F3}\x{07F4}-\x{07F5}\x{07FA}\x{07FD}\x{0816}-\x{0819}\x{081A}\x{081B}-\x{0823}\x{0824}\x{0825}-\x{0827}\x{0828}\x{0829}-\x{082D}\x{0859}-\x{085B}\x{08D3}-\x{08E1}\x{08E2}\x{08E3}-\x{0902}\x{093A}\x{093C}\x{0941}-\x{0948}\x{094D}\x{0951}-\x{0957}\x{0962}-\x{0963}\x{0971}\x{0981}\x{09BC}\x{09C1}-\x{09C4}\x{09CD}\x{09E2}-\x{09E3}\x{09FE}\x{0A01}-\x{0A02}\x{0A3C}\x{0A41}-\x{0A42}\x{0A47}-\x{0A48}\x{0A4B}-\x{0A4D}\x{0A51}\x{0A70}-\x{0A71}\x{0A75}\x{0A81}-\x{0A82}\x{0ABC}\x{0AC1}-\x{0AC5}\x{0AC7}-\x{0AC8}\x{0ACD}\x{0AE2}-\x{0AE3}\x{0AFA}-\x{0AFF}\x{0B01}\x{0B3C}\x{0B3F}\x{0B41}-\x{0B44}\x{0B4D}\x{0B56}\x{0B62}-\x{0B63}\x{0B82}\x{0BC0}\x{0BCD}\x{0C00}\x{0C04}\x{0C3E}-\x{0C40}\x{0C46}-\x{0C48}\x{0C4A}-\x{0C4D}\x{0C55}-\x{0C56}\x{0C62}-\x{0C63}\x{0C81}\x{0CBC}\x{0CBF}\x{0CC6}\x{0CCC}-\x{0CCD}\x{0CE2}-\x{0CE3}\x{0D00}-\x{0D01}\x{0D3B}-\x{0D3C}\x{0D41}-\x{0D44}\x{0D4D}\x{0D62}-\x{0D63}\x{0DCA}\x{0DD2}-\x{0DD4}\x{0DD6}\x{0E31}\x{0E34}-\x{0E3A}\x{0E46}\x{0E47}-\x{0E4E}\x{0EB1}\x{0EB4}-\x{0EB9}\x{0EBB}-\x{0EBC}\x{0EC6}\x{0EC8}-\x{0ECD}\x{0F18}-\x{0F19}\x{0F35}\x{0F37}\x{0F39}\x{0F71}-\x{0F7E}\x{0F80}-\x{0F84}\x{0F86}-\x{0F87}\x{0F8D}-\x{0F97}\x{0F99}-\x{0FBC}\x{0FC6}\x{102D}-\x{1030}\x{1032}-\x{1037}\x{1039}-\x{103A}\x{103D}-\x{103E}\x{1058}-\x{1059}\x{105E}-\x{1060}\x{1071}-\x{1074}\x{1082}\x{1085}-\x{1086}\x{108D}\x{109D}\x{10FC}\x{135D}-\x{135F}\x{1712}-\x{1714}\x{1732}-\x{1734}\x{1752}-\x{1753}\x{1772}-\x{1773}\x{17B4}-\x{17B5}\x{17B7}-\x{17BD}\x{17C6}\x{17C9}-\x{17D3}\x{17D7}\x{17DD}\x{180B}-\x{180D}\x{180E}\x{1843}\x{1885}-\x{1886}\x{18A9}\x{1920}-\x{1922}\x{1927}-\x{1928}\x{1932}\x{1939}-\x{193B}\x{1A17}-\x{1A18}\x{1A1B}\x{1A56}\x{1A58}-\x{1A5E}\x{1A60}\x{1A62}\x{1A65}-\x{1A6C}\x{1A73}-\x{1A7C}\x{1A7F}\x{1AA7}\x{1AB0}-\x{1ABD}\x{1ABE}\x{1B00}-\x{1B03}\x{1B34}\x{1B36}-\x{1B3A}\x{1B3C}\x{1B42}\x{1B6B}-\x{1B73}\x{1B80}-\x{1B81}\x{1BA2}-\x{1BA5}\x{1BA8}-\x{1BA9}\x{1BAB}-\x{1BAD}\x{1BE6}\x{1BE8}-\x{1BE9}\x{1BED}\x{1BEF}-\x{1BF1}\x{1C2C}-\x{1C33}\x{1C36}-\x{1C37}\x{1C78}-\x{1C7D}\x{1CD0}-\x{1CD2}\x{1CD4}-\x{1CE0}\x{1CE2}-\x{1CE8}\x{1CED}\x{1CF4}\x{1CF8}-\x{1CF9}\x{1D2C}-\x{1D6A}\x{1D78}\x{1D9B}-\x{1DBF}\x{1DC0}-\x{1DF9}\x{1DFB}-\x{1DFF}\x{1FBD}\x{1FBF}-\x{1FC1}\x{1FCD}-\x{1FCF}\x{1FDD}-\x{1FDF}\x{1FED}-\x{1FEF}\x{1FFD}-\x{1FFE}\x{200B}-\x{200F}\x{2018}\x{2019}\x{2024}\x{2027}\x{202A}-\x{202E}\x{2060}-\x{2064}\x{2066}-\x{206F}\x{2071}\x{207F}\x{2090}-\x{209C}\x{20D0}-\x{20DC}\x{20DD}-\x{20E0}\x{20E1}\x{20E2}-\x{20E4}\x{20E5}-\x{20F0}\x{2C7C}-\x{2C7D}\x{2CEF}-\x{2CF1}\x{2D6F}\x{2D7F}\x{2DE0}-\x{2DFF}\x{2E2F}\x{3005}\x{302A}-\x{302D}\x{3031}-\x{3035}\x{303B}\x{3099}-\x{309A}\x{309B}-\x{309C}\x{309D}-\x{309E}\x{30FC}-\x{30FE}\x{A015}\x{A4F8}-\x{A4FD}\x{A60C}\x{A66F}\x{A670}-\x{A672}\x{A674}-\x{A67D}\x{A67F}\x{A69C}-\x{A69D}\x{A69E}-\x{A69F}\x{A6F0}-\x{A6F1}\x{A700}-\x{A716}\x{A717}-\x{A71F}\x{A720}-\x{A721}\x{A770}\x{A788}\x{A789}-\x{A78A}\x{A7F8}-\x{A7F9}\x{A802}\x{A806}\x{A80B}\x{A825}-\x{A826}\x{A8C4}-\x{A8C5}\x{A8E0}-\x{A8F1}\x{A8FF}\x{A926}-\x{A92D}\x{A947}-\x{A951}\x{A980}-\x{A982}\x{A9B3}\x{A9B6}-\x{A9B9}\x{A9BC}\x{A9CF}\x{A9E5}\x{A9E6}\x{AA29}-\x{AA2E}\x{AA31}-\x{AA32}\x{AA35}-\x{AA36}\x{AA43}\x{AA4C}\x{AA70}\x{AA7C}\x{AAB0}\x{AAB2}-\x{AAB4}\x{AAB7}-\x{AAB8}\x{AABE}-\x{AABF}\x{AAC1}\x{AADD}\x{AAEC}-\x{AAED}\x{AAF3}-\x{AAF4}\x{AAF6}\x{AB5B}\x{AB5C}-\x{AB5F}\x{ABE5}\x{ABE8}\x{ABED}\x{FB1E}\x{FBB2}-\x{FBC1}\x{FE00}-\x{FE0F}\x{FE13}\x{FE20}-\x{FE2F}\x{FE52}\x{FE55}\x{FEFF}\x{FF07}\x{FF0E}\x{FF1A}\x{FF3E}\x{FF40}\x{FF70}\x{FF9E}-\x{FF9F}\x{FFE3}\x{FFF9}-\x{FFFB}\x{101FD}\x{102E0}\x{10376}-\x{1037A}\x{10A01}-\x{10A03}\x{10A05}-\x{10A06}\x{10A0C}-\x{10A0F}\x{10A38}-\x{10A3A}\x{10A3F}\x{10AE5}-\x{10AE6}\x{10D24}-\x{10D27}\x{10F46}-\x{10F50}\x{11001}\x{11038}-\x{11046}\x{1107F}-\x{11081}\x{110B3}-\x{110B6}\x{110B9}-\x{110BA}\x{110BD}\x{110CD}\x{11100}-\x{11102}\x{11127}-\x{1112B}\x{1112D}-\x{11134}\x{11173}\x{11180}-\x{11181}\x{111B6}-\x{111BE}\x{111C9}-\x{111CC}\x{1122F}-\x{11231}\x{11234}\x{11236}-\x{11237}\x{1123E}\x{112DF}\x{112E3}-\x{112EA}\x{11300}-\x{11301}\x{1133B}-\x{1133C}\x{11340}\x{11366}-\x{1136C}\x{11370}-\x{11374}\x{11438}-\x{1143F}\x{11442}-\x{11444}\x{11446}\x{1145E}\x{114B3}-\x{114B8}\x{114BA}\x{114BF}-\x{114C0}\x{114C2}-\x{114C3}\x{115B2}-\x{115B5}\x{115BC}-\x{115BD}\x{115BF}-\x{115C0}\x{115DC}-\x{115DD}\x{11633}-\x{1163A}\x{1163D}\x{1163F}-\x{11640}\x{116AB}\x{116AD}\x{116B0}-\x{116B5}\x{116B7}\x{1171D}-\x{1171F}\x{11722}-\x{11725}\x{11727}-\x{1172B}\x{1182F}-\x{11837}\x{11839}-\x{1183A}\x{11A01}-\x{11A0A}\x{11A33}-\x{11A38}\x{11A3B}-\x{11A3E}\x{11A47}\x{11A51}-\x{11A56}\x{11A59}-\x{11A5B}\x{11A8A}-\x{11A96}\x{11A98}-\x{11A99}\x{11C30}-\x{11C36}\x{11C38}-\x{11C3D}\x{11C3F}\x{11C92}-\x{11CA7}\x{11CAA}-\x{11CB0}\x{11CB2}-\x{11CB3}\x{11CB5}-\x{11CB6}\x{11D31}-\x{11D36}\x{11D3A}\x{11D3C}-\x{11D3D}\x{11D3F}-\x{11D45}\x{11D47}\x{11D90}-\x{11D91}\x{11D95}\x{11D97}\x{11EF3}-\x{11EF4}\x{16AF0}-\x{16AF4}\x{16B30}-\x{16B36}\x{16B40}-\x{16B43}\x{16F8F}-\x{16F92}\x{16F93}-\x{16F9F}\x{16FE0}-\x{16FE1}\x{1BC9D}-\x{1BC9E}\x{1BCA0}-\x{1BCA3}\x{1D167}-\x{1D169}\x{1D173}-\x{1D17A}\x{1D17B}-\x{1D182}\x{1D185}-\x{1D18B}\x{1D1AA}-\x{1D1AD}\x{1D242}-\x{1D244}\x{1DA00}-\x{1DA36}\x{1DA3B}-\x{1DA6C}\x{1DA75}\x{1DA84}\x{1DA9B}-\x{1DA9F}\x{1DAA1}-\x{1DAAF}\x{1E000}-\x{1E006}\x{1E008}-\x{1E018}\x{1E01B}-\x{1E021}\x{1E023}-\x{1E024}\x{1E026}-\x{1E02A}\x{1E8D0}-\x{1E8D6}\x{1E944}-\x{1E94A}\x{1F3FB}-\x{1F3FF}\x{E0001}\x{E0020}-\x{E007F}\x{E0100}-\x{E01EF}])(\pL)(\pL*+)/u';
<?php

return array (
  'a' => 'A',
  'b' => 'B',
  'c' => 'C',
  'd' => 'D',
  'e' => 'E',
  'f' => 'F',
  'g' => 'G',
  'h' => 'H',
  'i' => 'I',
  'j' => 'J',
  'k' => 'K',
  'l' => 'L',
  'm' => 'M',
  'n' => 'N',
  'o' => 'O',
  'p' => 'P',
  'q' => 'Q',
  'r' => 'R',
  's' => 'S',
  't' => 'T',
  'u' => 'U',
  'v' => 'V',
  'w' => 'W',
  'x' => 'X',
  'y' => 'Y',
  'z' => 'Z',
  'µ' => 'Μ',
  'à' => 'À',
  'á' => 'Á',
  'â' => 'Â',
  'ã' => 'Ã',
  'ä' => 'Ä',
  'å' => 'Å',
  'æ' => 'Æ',
  'ç' => 'Ç',
  'è' => 'È',
  'é' => 'É',
  'ê' => 'Ê',
  'ë' => 'Ë',
  'ì' => 'Ì',
  'í' => 'Í',
  'î' => 'Î',
  'ï' => 'Ï',
  'ð' => 'Ð',
  'ñ' => 'Ñ',
  'ò' => 'Ò',
  'ó' => 'Ó',
  'ô' => 'Ô',
  'õ' => 'Õ',
  'ö' => 'Ö',
  'ø' => 'Ø',
  'ù' => 'Ù',
  'ú' => 'Ú',
  'û' => 'Û',
  'ü' => 'Ü',
  'ý' => 'Ý',
  'þ' => 'Þ',
  'ÿ' => 'Ÿ',
  'ā' => 'Ā',
  'ă' => 'Ă',
  'ą' => 'Ą',
  'ć' => 'Ć',
  'ĉ' => 'Ĉ',
  'ċ' => 'Ċ',
  'č' => 'Č',
  'ď' => 'Ď',
  'đ' => 'Đ',
  'ē' => 'Ē',
  'ĕ' => 'Ĕ',
  'ė' => 'Ė',
  'ę' => 'Ę',
  'ě' => 'Ě',
  'ĝ' => 'Ĝ',
  'ğ' => 'Ğ',
  'ġ' => 'Ġ',
  'ģ' => 'Ģ',
  'ĥ' => 'Ĥ',
  'ħ' => 'Ħ',
  'ĩ' => 'Ĩ',
  'ī' => 'Ī',
  'ĭ' => 'Ĭ',
  'į' => 'Į',
  'ı' => 'I',
  'ĳ' => 'Ĳ',
  'ĵ' => 'Ĵ',
  'ķ' => 'Ķ',
  'ĺ' => 'Ĺ',
  'ļ' => 'Ļ',
  'ľ' => 'Ľ',
  'ŀ' => 'Ŀ',
  'ł' => 'Ł',
  'ń' => 'Ń',
  'ņ' => 'Ņ',
  'ň' => 'Ň',
  'ŋ' => 'Ŋ',
  'ō' => 'Ō',
  'ŏ' => 'Ŏ',
  'ő' => 'Ő',
  'œ' => 'Œ',
  'ŕ' => 'Ŕ',
  'ŗ' => 'Ŗ',
  'ř' => 'Ř',
  'ś' => 'Ś',
  'ŝ' => 'Ŝ',
  'ş' => 'Ş',
  'š' => 'Š',
  'ţ' => 'Ţ',
  'ť' => 'Ť',
  'ŧ' => 'Ŧ',
  'ũ' => 'Ũ',
  'ū' => 'Ū',
  'ŭ' => 'Ŭ',
  'ů' => 'Ů',
  'ű' => 'Ű',
  'ų' => 'Ų',
  'ŵ' => 'Ŵ',
  'ŷ' => 'Ŷ',
  'ź' => 'Ź',
  'ż' => 'Ż',
  'ž' => 'Ž',
  'ſ' => 'S',
  'ƀ' => 'Ƀ',
  'ƃ' => 'Ƃ',
  'ƅ' => 'Ƅ',
  'ƈ' => 'Ƈ',
  'ƌ' => 'Ƌ',
  'ƒ' => 'Ƒ',
  'ƕ' => 'Ƕ',
  'ƙ' => 'Ƙ',
  'ƚ' => 'Ƚ',
  'ƞ' => 'Ƞ',
  'ơ' => 'Ơ',
  'ƣ' => 'Ƣ',
  'ƥ' => 'Ƥ',
  'ƨ' => 'Ƨ',
  'ƭ' => 'Ƭ',
  'ư' => 'Ư',
  'ƴ' => 'Ƴ',
  'ƶ' => 'Ƶ',
  'ƹ' => 'Ƹ',
  'ƽ' => 'Ƽ',
  'ƿ' => 'Ƿ',
  'ǅ' => 'Ǆ',
  'ǆ' => 'Ǆ',
  'ǈ' => 'Ǉ',
  'ǉ' => 'Ǉ',
  'ǋ' => 'Ǌ',
  'ǌ' => 'Ǌ',
  'ǎ' => 'Ǎ',
  'ǐ' => 'Ǐ',
  'ǒ' => 'Ǒ',
  'ǔ' => 'Ǔ',
  'ǖ' => 'Ǖ',
  'ǘ' => 'Ǘ',
  'ǚ' => 'Ǚ',
  'ǜ' => 'Ǜ',
  'ǝ' => 'Ǝ',
  'ǟ' => 'Ǟ',
  'ǡ' => 'Ǡ',
  'ǣ' => 'Ǣ',
  'ǥ' => 'Ǥ',
  'ǧ' => 'Ǧ',
  'ǩ' => 'Ǩ',
  'ǫ' => 'Ǫ',
  'ǭ' => 'Ǭ',
  'ǯ' => 'Ǯ',
  'ǲ' => 'Ǳ',
  'ǳ' => 'Ǳ',
  'ǵ' => 'Ǵ',
  'ǹ' => 'Ǹ',
  'ǻ' => 'Ǻ',
  'ǽ' => 'Ǽ',
  'ǿ' => 'Ǿ',
  'ȁ' => 'Ȁ',
  'ȃ' => 'Ȃ',
  'ȅ' => 'Ȅ',
  'ȇ' => 'Ȇ',
  'ȉ' => 'Ȉ',
  'ȋ' => 'Ȋ',
  'ȍ' => 'Ȍ',
  'ȏ' => 'Ȏ',
  'ȑ' => 'Ȑ',
  'ȓ' => 'Ȓ',
  'ȕ' => 'Ȕ',
  'ȗ' => 'Ȗ',
  'ș' => 'Ș',
  'ț' => 'Ț',
  'ȝ' => 'Ȝ',
  'ȟ' => 'Ȟ',
  'ȣ' => 'Ȣ',
  'ȥ' => 'Ȥ',
  'ȧ' => 'Ȧ',
  'ȩ' => 'Ȩ',
  'ȫ' => 'Ȫ',
  'ȭ' => 'Ȭ',
  'ȯ' => 'Ȯ',
  'ȱ' => 'Ȱ',
  'ȳ' => 'Ȳ',
  'ȼ' => 'Ȼ',
  'ȿ' => 'Ȿ',
  'ɀ' => 'Ɀ',
  'ɂ' => 'Ɂ',
  'ɇ' => 'Ɇ',
  'ɉ' => 'Ɉ',
  'ɋ' => 'Ɋ',
  'ɍ' => 'Ɍ',
  'ɏ' => 'Ɏ',
  'ɐ' => 'Ɐ',
  'ɑ' => 'Ɑ',
  'ɒ' => 'Ɒ',
  'ɓ' => 'Ɓ',
  'ɔ' => 'Ɔ',
  'ɖ' => 'Ɖ',
  'ɗ' => 'Ɗ',
  'ə' => 'Ə',
  'ɛ' => 'Ɛ',
  'ɜ' => 'Ɜ',
  'ɠ' => 'Ɠ',
  'ɡ' => 'Ɡ',
  'ɣ' => 'Ɣ',
  'ɥ' => 'Ɥ',
  'ɦ' => 'Ɦ',
  'ɨ' => 'Ɨ',
  'ɩ' => 'Ɩ',
  'ɪ' => 'Ɪ',
  'ɫ' => 'Ɫ',
  'ɬ' => 'Ɬ',
  'ɯ' => 'Ɯ',
  'ɱ' => 'Ɱ',
  'ɲ' => 'Ɲ',
  'ɵ' => 'Ɵ',
  'ɽ' => 'Ɽ',
  'ʀ' => 'Ʀ',
  'ʂ' => 'Ʂ',
  'ʃ' => 'Ʃ',
  'ʇ' => 'Ʇ',
  'ʈ' => 'Ʈ',
  'ʉ' => 'Ʉ',
  'ʊ' => 'Ʊ',
  'ʋ' => 'Ʋ',
  'ʌ' => 'Ʌ',
  'ʒ' => 'Ʒ',
  'ʝ' => 'Ʝ',
  'ʞ' => 'Ʞ',
  'ͅ' => 'Ι',
  'ͱ' => 'Ͱ',
  'ͳ' => 'Ͳ',
  'ͷ' => 'Ͷ',
  'ͻ' => 'Ͻ',
  'ͼ' => 'Ͼ',
  'ͽ' => 'Ͽ',
  'ά' => 'Ά',
  'έ' => 'Έ',
  'ή' => 'Ή',
  'ί' => 'Ί',
  'α' => 'Α',
  'β' => 'Β',
  'γ' => 'Γ',
  'δ' => 'Δ',
  'ε' => 'Ε',
  'ζ' => 'Ζ',
  'η' => 'Η',
  'θ' => 'Θ',
  'ι' => 'Ι',
  'κ' => 'Κ',
  'λ' => 'Λ',
  'μ' => 'Μ',
  'ν' => 'Ν',
  'ξ' => 'Ξ',
  'ο' => 'Ο',
  'π' => 'Π',
  'ρ' => 'Ρ',
  'ς' => 'Σ',
  'σ' => 'Σ',
  'τ' => 'Τ',
  'υ' => 'Υ',
  'φ' => 'Φ',
  'χ' => 'Χ',
  'ψ' => 'Ψ',
  'ω' => 'Ω',
  'ϊ' => 'Ϊ',
  'ϋ' => 'Ϋ',
  'ό' => 'Ό',
  'ύ' => 'Ύ',
  'ώ' => 'Ώ',
  'ϐ' => 'Β',
  'ϑ' => 'Θ',
  'ϕ' => 'Φ',
  'ϖ' => 'Π',
  'ϗ' => 'Ϗ',
  'ϙ' => 'Ϙ',
  'ϛ' => 'Ϛ',
  'ϝ' => 'Ϝ',
  'ϟ' => 'Ϟ',
  'ϡ' => 'Ϡ',
  'ϣ' => 'Ϣ',
  'ϥ' => 'Ϥ',
  'ϧ' => 'Ϧ',
  'ϩ' => 'Ϩ',
  'ϫ' => 'Ϫ',
  'ϭ' => 'Ϭ',
  'ϯ' => 'Ϯ',
  'ϰ' => 'Κ',
  'ϱ' => 'Ρ',
  'ϲ' => 'Ϲ',
  'ϳ' => 'Ϳ',
  'ϵ' => 'Ε',
  'ϸ' => 'Ϸ',
  'ϻ' => 'Ϻ',
  'а' => 'А',
  'б' => 'Б',
  'в' => 'В',
  'г' => 'Г',
  'д' => 'Д',
  'е' => 'Е',
  'ж' => 'Ж',
  'з' => 'З',
  'и' => 'И',
  'й' => 'Й',
  'к' => 'К',
  'л' => 'Л',
  'м' => 'М',
  'н' => 'Н',
  'о' => 'О',
  'п' => 'П',
  'р' => 'Р',
  'с' => 'С',
  'т' => 'Т',
  'у' => 'У',
  'ф' => 'Ф',
  'х' => 'Х',
  'ц' => 'Ц',
  'ч' => 'Ч',
  'ш' => 'Ш',
  'щ' => 'Щ',
  'ъ' => 'Ъ',
  'ы' => 'Ы',
  'ь' => 'Ь',
  'э' => 'Э',
  'ю' => 'Ю',
  'я' => 'Я',
  'ѐ' => 'Ѐ',
  'ё' => 'Ё',
  'ђ' => 'Ђ',
  'ѓ' => 'Ѓ',
  'є' => 'Є',
  'ѕ' => 'Ѕ',
  'і' => 'І',
  'ї' => 'Ї',
  'ј' => 'Ј',
  'љ' => 'Љ',
  'њ' => 'Њ',
  'ћ' => 'Ћ',
  'ќ' => 'Ќ',
  'ѝ' => 'Ѝ',
  'ў' => 'Ў',
  'џ' => 'Џ',
  'ѡ' => 'Ѡ',
  'ѣ' => 'Ѣ',
  'ѥ' => 'Ѥ',
  'ѧ' => 'Ѧ',
  'ѩ' => 'Ѩ',
  'ѫ' => 'Ѫ',
  'ѭ' => 'Ѭ',
  'ѯ' => 'Ѯ',
  'ѱ' => 'Ѱ',
  'ѳ' => 'Ѳ',
  'ѵ' => 'Ѵ',
  'ѷ' => 'Ѷ',
  'ѹ' => 'Ѹ',
  'ѻ' => 'Ѻ',
  'ѽ' => 'Ѽ',
  'ѿ' => 'Ѿ',
  'ҁ' => 'Ҁ',
  'ҋ' => 'Ҋ',
  'ҍ' => 'Ҍ',
  'ҏ' => 'Ҏ',
  'ґ' => 'Ґ',
  'ғ' => 'Ғ',
  'ҕ' => 'Ҕ',
  'җ' => 'Җ',
  'ҙ' => 'Ҙ',
  'қ' => 'Қ',
  'ҝ' => 'Ҝ',
  'ҟ' => 'Ҟ',
  'ҡ' => 'Ҡ',
  'ң' => 'Ң',
  'ҥ' => 'Ҥ',
  'ҧ' => 'Ҧ',
  'ҩ' => 'Ҩ',
  'ҫ' => 'Ҫ',
  'ҭ' => 'Ҭ',
  'ү' => 'Ү',
  'ұ' => 'Ұ',
  'ҳ' => 'Ҳ',
  'ҵ' => 'Ҵ',
  'ҷ' => 'Ҷ',
  'ҹ' => 'Ҹ',
  'һ' => 'Һ',
  'ҽ' => 'Ҽ',
  'ҿ' => 'Ҿ',
  'ӂ' => 'Ӂ',
  'ӄ' => 'Ӄ',
  'ӆ' => 'Ӆ',
  'ӈ' => 'Ӈ',
  'ӊ' => 'Ӊ',
  'ӌ' => 'Ӌ',
  'ӎ' => 'Ӎ',
  'ӏ' => 'Ӏ',
  'ӑ' => 'Ӑ',
  'ӓ' => 'Ӓ',
  'ӕ' => 'Ӕ',
  'ӗ' => 'Ӗ',
  'ә' => 'Ә',
  'ӛ' => 'Ӛ',
  'ӝ' => 'Ӝ',
  'ӟ' => 'Ӟ',
  'ӡ' => 'Ӡ',
  'ӣ' => 'Ӣ',
  'ӥ' => 'Ӥ',
  'ӧ' => 'Ӧ',
  'ө' => 'Ө',
  'ӫ' => 'Ӫ',
  'ӭ' => 'Ӭ',
  'ӯ' => 'Ӯ',
  'ӱ' => 'Ӱ',
  'ӳ' => 'Ӳ',
  'ӵ' => 'Ӵ',
  'ӷ' => 'Ӷ',
  'ӹ' => 'Ӹ',
  'ӻ' => 'Ӻ',
  'ӽ' => 'Ӽ',
  'ӿ' => 'Ӿ',
  'ԁ' => 'Ԁ',
  'ԃ' => 'Ԃ',
  'ԅ' => 'Ԅ',
  'ԇ' => 'Ԇ',
  'ԉ' => 'Ԉ',
  'ԋ' => 'Ԋ',
  'ԍ' => 'Ԍ',
  'ԏ' => 'Ԏ',
  'ԑ' => 'Ԑ',
  'ԓ' => 'Ԓ',
  'ԕ' => 'Ԕ',
  'ԗ' => 'Ԗ',
  'ԙ' => 'Ԙ',
  'ԛ' => 'Ԛ',
  'ԝ' => 'Ԝ',
  'ԟ' => 'Ԟ',
  'ԡ' => 'Ԡ',
  'ԣ' => 'Ԣ',
  'ԥ' => 'Ԥ',
  'ԧ' => 'Ԧ',
  'ԩ' => 'Ԩ',
  'ԫ' => 'Ԫ',
  'ԭ' => 'Ԭ',
  'ԯ' => 'Ԯ',
  'ա' => 'Ա',
  'բ' => 'Բ',
  'գ' => 'Գ',
  'դ' => 'Դ',
  'ե' => 'Ե',
  'զ' => 'Զ',
  'է' => 'Է',
  'ը' => 'Ը',
  'թ' => 'Թ',
  'ժ' => 'Ժ',
  'ի' => 'Ի',
  'լ' => 'Լ',
  'խ' => 'Խ',
  'ծ' => 'Ծ',
  'կ' => 'Կ',
  'հ' => 'Հ',
  'ձ' => 'Ձ',
  'ղ' => 'Ղ',
  'ճ' => 'Ճ',
  'մ' => 'Մ',
  'յ' => 'Յ',
  'ն' => 'Ն',
  'շ' => 'Շ',
  'ո' => 'Ո',
  'չ' => 'Չ',
  'պ' => 'Պ',
  'ջ' => 'Ջ',
  'ռ' => 'Ռ',
  'ս' => 'Ս',
  'վ' => 'Վ',
  'տ' => 'Տ',
  'ր' => 'Ր',
  'ց' => 'Ց',
  'ւ' => 'Ւ',
  'փ' => 'Փ',
  'ք' => 'Ք',
  'օ' => 'Օ',
  'ֆ' => 'Ֆ',
  'ა' => 'Ა',
  'ბ' => 'Ბ',
  'გ' => 'Გ',
  'დ' => 'Დ',
  'ე' => 'Ე',
  'ვ' => 'Ვ',
  'ზ' => 'Ზ',
  'თ' => 'Თ',
  'ი' => 'Ი',
  'კ' => 'Კ',
  'ლ' => 'Ლ',
  'მ' => 'Მ',
  'ნ' => 'Ნ',
  'ო' => 'Ო',
  'პ' => 'Პ',
  'ჟ' => 'Ჟ',
  'რ' => 'Რ',
  'ს' => 'Ს',
  'ტ' => 'Ტ',
  'უ' => 'Უ',
  'ფ' => 'Ფ',
  'ქ' => 'Ქ',
  'ღ' => 'Ღ',
  'ყ' => 'Ყ',
  'შ' => 'Შ',
  'ჩ' => 'Ჩ',
  'ც' => 'Ც',
  'ძ' => 'Ძ',
  'წ' => 'Წ',
  'ჭ' => 'Ჭ',
  'ხ' => 'Ხ',
  'ჯ' => 'Ჯ',
  'ჰ' => 'Ჰ',
  'ჱ' => 'Ჱ',
  'ჲ' => 'Ჲ',
  'ჳ' => 'Ჳ',
  'ჴ' => 'Ჴ',
  'ჵ' => 'Ჵ',
  'ჶ' => 'Ჶ',
  'ჷ' => 'Ჷ',
  'ჸ' => 'Ჸ',
  'ჹ' => 'Ჹ',
  'ჺ' => 'Ჺ',
  'ჽ' => 'Ჽ',
  'ჾ' => 'Ჾ',
  'ჿ' => 'Ჿ',
  'ᏸ' => 'Ᏸ',
  'ᏹ' => 'Ᏹ',
  'ᏺ' => 'Ᏺ',
  'ᏻ' => 'Ᏻ',
  'ᏼ' => 'Ᏼ',
  'ᏽ' => 'Ᏽ',
  'ᲀ' => 'В',
  'ᲁ' => 'Д',
  'ᲂ' => 'О',
  'ᲃ' => 'С',
  'ᲄ' => 'Т',
  'ᲅ' => 'Т',
  'ᲆ' => 'Ъ',
  'ᲇ' => 'Ѣ',
  'ᲈ' => 'Ꙋ',
  'ᵹ' => 'Ᵹ',
  'ᵽ' => 'Ᵽ',
  'ᶎ' => 'Ᶎ',
  'ḁ' => 'Ḁ',
  'ḃ' => 'Ḃ',
  'ḅ' => 'Ḅ',
  'ḇ' => 'Ḇ',
  'ḉ' => 'Ḉ',
  'ḋ' => 'Ḋ',
  'ḍ' => 'Ḍ',
  'ḏ' => 'Ḏ',
  'ḑ' => 'Ḑ',
  'ḓ' => 'Ḓ',
  'ḕ' => 'Ḕ',
  'ḗ' => 'Ḗ',
  'ḙ' => 'Ḙ',
  'ḛ' => 'Ḛ',
  'ḝ' => 'Ḝ',
  'ḟ' => 'Ḟ',
  'ḡ' => 'Ḡ',
  'ḣ' => 'Ḣ',
  'ḥ' => 'Ḥ',
  'ḧ' => 'Ḧ',
  'ḩ' => 'Ḩ',
  'ḫ' => 'Ḫ',
  'ḭ' => 'Ḭ',
  'ḯ' => 'Ḯ',
  'ḱ' => 'Ḱ',
  'ḳ' => 'Ḳ',
  'ḵ' => 'Ḵ',
  'ḷ' => 'Ḷ',
  'ḹ' => 'Ḹ',
  'ḻ' => 'Ḻ',
  'ḽ' => 'Ḽ',
  'ḿ' => 'Ḿ',
  'ṁ' => 'Ṁ',
  'ṃ' => 'Ṃ',
  'ṅ' => 'Ṅ',
  'ṇ' => 'Ṇ',
  'ṉ' => 'Ṉ',
  'ṋ' => 'Ṋ',
  'ṍ' => 'Ṍ',
  'ṏ' => 'Ṏ',
  'ṑ' => 'Ṑ',
  'ṓ' => 'Ṓ',
  'ṕ' => 'Ṕ',
  'ṗ' => 'Ṗ',
  'ṙ' => 'Ṙ',
  'ṛ' => 'Ṛ',
  'ṝ' => 'Ṝ',
  'ṟ' => 'Ṟ',
  'ṡ' => 'Ṡ',
  'ṣ' => 'Ṣ',
  'ṥ' => 'Ṥ',
  'ṧ' => 'Ṧ',
  'ṩ' => 'Ṩ',
  'ṫ' => 'Ṫ',
  'ṭ' => 'Ṭ',
  'ṯ' => 'Ṯ',
  'ṱ' => 'Ṱ',
  'ṳ' => 'Ṳ',
  'ṵ' => 'Ṵ',
  'ṷ' => 'Ṷ',
  'ṹ' => 'Ṹ',
  'ṻ' => 'Ṻ',
  'ṽ' => 'Ṽ',
  'ṿ' => 'Ṿ',
  'ẁ' => 'Ẁ',
  'ẃ' => 'Ẃ',
  'ẅ' => 'Ẅ',
  'ẇ' => 'Ẇ',
  'ẉ' => 'Ẉ',
  'ẋ' => 'Ẋ',
  'ẍ' => 'Ẍ',
  'ẏ' => 'Ẏ',
  'ẑ' => 'Ẑ',
  'ẓ' => 'Ẓ',
  'ẕ' => 'Ẕ',
  'ẛ' => 'Ṡ',
  'ạ' => 'Ạ',
  'ả' => 'Ả',
  'ấ' => 'Ấ',
  'ầ' => 'Ầ',
  'ẩ' => 'Ẩ',
  'ẫ' => 'Ẫ',
  'ậ' => 'Ậ',
  'ắ' => 'Ắ',
  'ằ' => 'Ằ',
  'ẳ' => 'Ẳ',
  'ẵ' => 'Ẵ',
  'ặ' => 'Ặ',
  'ẹ' => 'Ẹ',
  'ẻ' => 'Ẻ',
  'ẽ' => 'Ẽ',
  'ế' => 'Ế',
  'ề' => 'Ề',
  'ể' => 'Ể',
  'ễ' => 'Ễ',
  'ệ' => 'Ệ',
  'ỉ' => 'Ỉ',
  'ị' => 'Ị',
  'ọ' => 'Ọ',
  'ỏ' => 'Ỏ',
  'ố' => 'Ố',
  'ồ' => 'Ồ',
  'ổ' => 'Ổ',
  'ỗ' => 'Ỗ',
  'ộ' => 'Ộ',
  'ớ' => 'Ớ',
  'ờ' => 'Ờ',
  'ở' => 'Ở',
  'ỡ' => 'Ỡ',
  'ợ' => 'Ợ',
  'ụ' => 'Ụ',
  'ủ' => 'Ủ',
  'ứ' => 'Ứ',
  'ừ' => 'Ừ',
  'ử' => 'Ử',
  'ữ' => 'Ữ',
  'ự' => 'Ự',
  'ỳ' => 'Ỳ',
  'ỵ' => 'Ỵ',
  'ỷ' => 'Ỷ',
  'ỹ' => 'Ỹ',
  'ỻ' => 'Ỻ',
  'ỽ' => 'Ỽ',
  'ỿ' => 'Ỿ',
  'ἀ' => 'Ἀ',
  'ἁ' => 'Ἁ',
  'ἂ' => 'Ἂ',
  'ἃ' => 'Ἃ',
  'ἄ' => 'Ἄ',
  'ἅ' => 'Ἅ',
  'ἆ' => 'Ἆ',
  'ἇ' => 'Ἇ',
  'ἐ' => 'Ἐ',
  'ἑ' => 'Ἑ',
  'ἒ' => 'Ἒ',
  'ἓ' => 'Ἓ',
  'ἔ' => 'Ἔ',
  'ἕ' => 'Ἕ',
  'ἠ' => 'Ἠ',
  'ἡ' => 'Ἡ',
  'ἢ' => 'Ἢ',
  'ἣ' => 'Ἣ',
  'ἤ' => 'Ἤ',
  'ἥ' => 'Ἥ',
  'ἦ' => 'Ἦ',
  'ἧ' => 'Ἧ',
  'ἰ' => 'Ἰ',
  'ἱ' => 'Ἱ',
  'ἲ' => 'Ἲ',
  'ἳ' => 'Ἳ',
  'ἴ' => 'Ἴ',
  'ἵ' => 'Ἵ',
  'ἶ' => 'Ἶ',
  'ἷ' => 'Ἷ',
  'ὀ' => 'Ὀ',
  'ὁ' => 'Ὁ',
  'ὂ' => 'Ὂ',
  'ὃ' => 'Ὃ',
  'ὄ' => 'Ὄ',
  'ὅ' => 'Ὅ',
  'ὑ' => 'Ὑ',
  'ὓ' => 'Ὓ',
  'ὕ' => 'Ὕ',
  'ὗ' => 'Ὗ',
  'ὠ' => 'Ὠ',
  'ὡ' => 'Ὡ',
  'ὢ' => 'Ὢ',
  'ὣ' => 'Ὣ',
  'ὤ' => 'Ὤ',
  'ὥ' => 'Ὥ',
  'ὦ' => 'Ὦ',
  'ὧ' => 'Ὧ',
  'ὰ' => 'Ὰ',
  'ά' => 'Ά',
  'ὲ' => 'Ὲ',
  'έ' => 'Έ',
  'ὴ' => 'Ὴ',
  'ή' => 'Ή',
  'ὶ' => 'Ὶ',
  'ί' => 'Ί',
  'ὸ' => 'Ὸ',
  'ό' => 'Ό',
  'ὺ' => 'Ὺ',
  'ύ' => 'Ύ',
  'ὼ' => 'Ὼ',
  'ώ' => 'Ώ',
  'ᾀ' => 'ᾈ',
  'ᾁ' => 'ᾉ',
  'ᾂ' => 'ᾊ',
  'ᾃ' => 'ᾋ',
  'ᾄ' => 'ᾌ',
  'ᾅ' => 'ᾍ',
  'ᾆ' => 'ᾎ',
  'ᾇ' => 'ᾏ',
  'ᾐ' => 'ᾘ',
  'ᾑ' => 'ᾙ',
  'ᾒ' => 'ᾚ',
  'ᾓ' => 'ᾛ',
  'ᾔ' => 'ᾜ',
  'ᾕ' => 'ᾝ',
  'ᾖ' => 'ᾞ',
  'ᾗ' => 'ᾟ',
  'ᾠ' => 'ᾨ',
  'ᾡ' => 'ᾩ',
  'ᾢ' => 'ᾪ',
  'ᾣ' => 'ᾫ',
  'ᾤ' => 'ᾬ',
  'ᾥ' => 'ᾭ',
  'ᾦ' => 'ᾮ',
  'ᾧ' => 'ᾯ',
  'ᾰ' => 'Ᾰ',
  'ᾱ' => 'Ᾱ',
  'ᾳ' => 'ᾼ',
  'ι' => 'Ι',
  'ῃ' => 'ῌ',
  'ῐ' => 'Ῐ',
  'ῑ' => 'Ῑ',
  'ῠ' => 'Ῠ',
  'ῡ' => 'Ῡ',
  'ῥ' => 'Ῥ',
  'ῳ' => 'ῼ',
  'ⅎ' => 'Ⅎ',
  'ⅰ' => 'Ⅰ',
  'ⅱ' => 'Ⅱ',
  'ⅲ' => 'Ⅲ',
  'ⅳ' => 'Ⅳ',
  'ⅴ' => 'Ⅴ',
  'ⅵ' => 'Ⅵ',
  'ⅶ' => 'Ⅶ',
  'ⅷ' => 'Ⅷ',
  'ⅸ' => 'Ⅸ',
  'ⅹ' => 'Ⅹ',
  'ⅺ' => 'Ⅺ',
  'ⅻ' => 'Ⅻ',
  'ⅼ' => 'Ⅼ',
  'ⅽ' => 'Ⅽ',
  'ⅾ' => 'Ⅾ',
  'ⅿ' => 'Ⅿ',
  'ↄ' => 'Ↄ',
  'ⓐ' => 'Ⓐ',
  'ⓑ' => 'Ⓑ',
  'ⓒ' => 'Ⓒ',
  'ⓓ' => 'Ⓓ',
  'ⓔ' => 'Ⓔ',
  'ⓕ' => 'Ⓕ',
  'ⓖ' => 'Ⓖ',
  'ⓗ' => 'Ⓗ',
  'ⓘ' => 'Ⓘ',
  'ⓙ' => 'Ⓙ',
  'ⓚ' => 'Ⓚ',
  'ⓛ' => 'Ⓛ',
  'ⓜ' => 'Ⓜ',
  'ⓝ' => 'Ⓝ',
  'ⓞ' => 'Ⓞ',
  'ⓟ' => 'Ⓟ',
  'ⓠ' => 'Ⓠ',
  'ⓡ' => 'Ⓡ',
  'ⓢ' => 'Ⓢ',
  'ⓣ' => 'Ⓣ',
  'ⓤ' => 'Ⓤ',
  'ⓥ' => 'Ⓥ',
  'ⓦ' => 'Ⓦ',
  'ⓧ' => 'Ⓧ',
  'ⓨ' => 'Ⓨ',
  'ⓩ' => 'Ⓩ',
  'ⰰ' => 'Ⰰ',
  'ⰱ' => 'Ⰱ',
  'ⰲ' => 'Ⰲ',
  'ⰳ' => 'Ⰳ',
  'ⰴ' => 'Ⰴ',
  'ⰵ' => 'Ⰵ',
  'ⰶ' => 'Ⰶ',
  'ⰷ' => 'Ⰷ',
  'ⰸ' => 'Ⰸ',
  'ⰹ' => 'Ⰹ',
  'ⰺ' => 'Ⰺ',
  'ⰻ' => 'Ⰻ',
  'ⰼ' => 'Ⰼ',
  'ⰽ' => 'Ⰽ',
  'ⰾ' => 'Ⰾ',
  'ⰿ' => 'Ⰿ',
  'ⱀ' => 'Ⱀ',
  'ⱁ' => 'Ⱁ',
  'ⱂ' => 'Ⱂ',
  'ⱃ' => 'Ⱃ',
  'ⱄ' => 'Ⱄ',
  'ⱅ' => 'Ⱅ',
  'ⱆ' => 'Ⱆ',
  'ⱇ' => 'Ⱇ',
  'ⱈ' => 'Ⱈ',
  'ⱉ' => 'Ⱉ',
  'ⱊ' => 'Ⱊ',
  'ⱋ' => 'Ⱋ',
  'ⱌ' => 'Ⱌ',
  'ⱍ' => 'Ⱍ',
  'ⱎ' => 'Ⱎ',
  'ⱏ' => 'Ⱏ',
  'ⱐ' => 'Ⱐ',
  'ⱑ' => 'Ⱑ',
  'ⱒ' => 'Ⱒ',
  'ⱓ' => 'Ⱓ',
  'ⱔ' => 'Ⱔ',
  'ⱕ' => 'Ⱕ',
  'ⱖ' => 'Ⱖ',
  'ⱗ' => 'Ⱗ',
  'ⱘ' => 'Ⱘ',
  'ⱙ' => 'Ⱙ',
  'ⱚ' => 'Ⱚ',
  'ⱛ' => 'Ⱛ',
  'ⱜ' => 'Ⱜ',
  'ⱝ' => 'Ⱝ',
  'ⱞ' => 'Ⱞ',
  'ⱡ' => 'Ⱡ',
  'ⱥ' => 'Ⱥ',
  'ⱦ' => 'Ⱦ',
  'ⱨ' => 'Ⱨ',
  'ⱪ' => 'Ⱪ',
  'ⱬ' => 'Ⱬ',
  'ⱳ' => 'Ⱳ',
  'ⱶ' => 'Ⱶ',
  'ⲁ' => 'Ⲁ',
  'ⲃ' => 'Ⲃ',
  'ⲅ' => 'Ⲅ',
  'ⲇ' => 'Ⲇ',
  'ⲉ' => 'Ⲉ',
  'ⲋ' => 'Ⲋ',
  'ⲍ' => 'Ⲍ',
  'ⲏ' => 'Ⲏ',
  'ⲑ' => 'Ⲑ',
  'ⲓ' => 'Ⲓ',
  'ⲕ' => 'Ⲕ',
  'ⲗ' => 'Ⲗ',
  'ⲙ' => 'Ⲙ',
  'ⲛ' => 'Ⲛ',
  'ⲝ' => 'Ⲝ',
  'ⲟ' => 'Ⲟ',
  'ⲡ' => 'Ⲡ',
  'ⲣ' => 'Ⲣ',
  'ⲥ' => 'Ⲥ',
  'ⲧ' => 'Ⲧ',
  'ⲩ' => 'Ⲩ',
  'ⲫ' => 'Ⲫ',
  'ⲭ' => 'Ⲭ',
  'ⲯ' => 'Ⲯ',
  'ⲱ' => 'Ⲱ',
  'ⲳ' => 'Ⲳ',
  'ⲵ' => 'Ⲵ',
  'ⲷ' => 'Ⲷ',
  'ⲹ' => 'Ⲹ',
  'ⲻ' => 'Ⲻ',
  'ⲽ' => 'Ⲽ',
  'ⲿ' => 'Ⲿ',
  'ⳁ' => 'Ⳁ',
  'ⳃ' => 'Ⳃ',
  'ⳅ' => 'Ⳅ',
  'ⳇ' => 'Ⳇ',
  'ⳉ' => 'Ⳉ',
  'ⳋ' => 'Ⳋ',
  'ⳍ' => 'Ⳍ',
  'ⳏ' => 'Ⳏ',
  'ⳑ' => 'Ⳑ',
  'ⳓ' => 'Ⳓ',
  'ⳕ' => 'Ⳕ',
  'ⳗ' => 'Ⳗ',
  'ⳙ' => 'Ⳙ',
  'ⳛ' => 'Ⳛ',
  'ⳝ' => 'Ⳝ',
  'ⳟ' => 'Ⳟ',
  'ⳡ' => 'Ⳡ',
  'ⳣ' => 'Ⳣ',
  'ⳬ' => 'Ⳬ',
  'ⳮ' => 'Ⳮ',
  'ⳳ' => 'Ⳳ',
  'ⴀ' => 'Ⴀ',
  'ⴁ' => 'Ⴁ',
  'ⴂ' => 'Ⴂ',
  'ⴃ' => 'Ⴃ',
  'ⴄ' => 'Ⴄ',
  'ⴅ' => 'Ⴅ',
  'ⴆ' => 'Ⴆ',
  'ⴇ' => 'Ⴇ',
  'ⴈ' => 'Ⴈ',
  'ⴉ' => 'Ⴉ',
  'ⴊ' => 'Ⴊ',
  'ⴋ' => 'Ⴋ',
  'ⴌ' => 'Ⴌ',
  'ⴍ' => 'Ⴍ',
  'ⴎ' => 'Ⴎ',
  'ⴏ' => 'Ⴏ',
  'ⴐ' => 'Ⴐ',
  'ⴑ' => 'Ⴑ',
  'ⴒ' => 'Ⴒ',
  'ⴓ' => 'Ⴓ',
  'ⴔ' => 'Ⴔ',
  'ⴕ' => 'Ⴕ',
  'ⴖ' => 'Ⴖ',
  'ⴗ' => 'Ⴗ',
  'ⴘ' => 'Ⴘ',
  'ⴙ' => 'Ⴙ',
  'ⴚ' => 'Ⴚ',
  'ⴛ' => 'Ⴛ',
  'ⴜ' => 'Ⴜ',
  'ⴝ' => 'Ⴝ',
  'ⴞ' => 'Ⴞ',
  'ⴟ' => 'Ⴟ',
  'ⴠ' => 'Ⴠ',
  'ⴡ' => 'Ⴡ',
  'ⴢ' => 'Ⴢ',
  'ⴣ' => 'Ⴣ',
  'ⴤ' => 'Ⴤ',
  'ⴥ' => 'Ⴥ',
  'ⴧ' => 'Ⴧ',
  'ⴭ' => 'Ⴭ',
  'ꙁ' => 'Ꙁ',
  'ꙃ' => 'Ꙃ',
  'ꙅ' => 'Ꙅ',
  'ꙇ' => 'Ꙇ',
  'ꙉ' => 'Ꙉ',
  'ꙋ' => 'Ꙋ',
  'ꙍ' => 'Ꙍ',
  'ꙏ' => 'Ꙏ',
  'ꙑ' => 'Ꙑ',
  'ꙓ' => 'Ꙓ',
  'ꙕ' => 'Ꙕ',
  'ꙗ' => 'Ꙗ',
  'ꙙ' => 'Ꙙ',
  'ꙛ' => 'Ꙛ',
  'ꙝ' => 'Ꙝ',
  'ꙟ' => 'Ꙟ',
  'ꙡ' => 'Ꙡ',
  'ꙣ' => 'Ꙣ',
  'ꙥ' => 'Ꙥ',
  'ꙧ' => 'Ꙧ',
  'ꙩ' => 'Ꙩ',
  'ꙫ' => 'Ꙫ',
  'ꙭ' => 'Ꙭ',
  'ꚁ' => 'Ꚁ',
  'ꚃ' => 'Ꚃ',
  'ꚅ' => 'Ꚅ',
  'ꚇ' => 'Ꚇ',
  'ꚉ' => 'Ꚉ',
  'ꚋ' => 'Ꚋ',
  'ꚍ' => 'Ꚍ',
  'ꚏ' => 'Ꚏ',
  'ꚑ' => 'Ꚑ',
  'ꚓ' => 'Ꚓ',
  'ꚕ' => 'Ꚕ',
  'ꚗ' => 'Ꚗ',
  'ꚙ' => 'Ꚙ',
  'ꚛ' => 'Ꚛ',
  'ꜣ' => 'Ꜣ',
  'ꜥ' => 'Ꜥ',
  'ꜧ' => 'Ꜧ',
  'ꜩ' => 'Ꜩ',
  'ꜫ' => 'Ꜫ',
  'ꜭ' => 'Ꜭ',
  'ꜯ' => 'Ꜯ',
  'ꜳ' => 'Ꜳ',
  'ꜵ' => 'Ꜵ',
  'ꜷ' => 'Ꜷ',
  'ꜹ' => 'Ꜹ',
  'ꜻ' => 'Ꜻ',
  'ꜽ' => 'Ꜽ',
  'ꜿ' => 'Ꜿ',
  'ꝁ' => 'Ꝁ',
  'ꝃ' => 'Ꝃ',
  'ꝅ' => 'Ꝅ',
  'ꝇ' => 'Ꝇ',
  'ꝉ' => 'Ꝉ',
  'ꝋ' => 'Ꝋ',
  'ꝍ' => 'Ꝍ',
  'ꝏ' => 'Ꝏ',
  'ꝑ' => 'Ꝑ',
  'ꝓ' => 'Ꝓ',
  'ꝕ' => 'Ꝕ',
  'ꝗ' => 'Ꝗ',
  'ꝙ' => 'Ꝙ',
  'ꝛ' => 'Ꝛ',
  'ꝝ' => 'Ꝝ',
  'ꝟ' => 'Ꝟ',
  'ꝡ' => 'Ꝡ',
  'ꝣ' => 'Ꝣ',
  'ꝥ' => 'Ꝥ',
  'ꝧ' => 'Ꝧ',
  'ꝩ' => 'Ꝩ',
  'ꝫ' => 'Ꝫ',
  'ꝭ' => 'Ꝭ',
  'ꝯ' => 'Ꝯ',
  'ꝺ' => 'Ꝺ',
  'ꝼ' => 'Ꝼ',
  'ꝿ' => 'Ꝿ',
  'ꞁ' => 'Ꞁ',
  'ꞃ' => 'Ꞃ',
  'ꞅ' => 'Ꞅ',
  'ꞇ' => 'Ꞇ',
  'ꞌ' => 'Ꞌ',
  'ꞑ' => 'Ꞑ',
  'ꞓ' => 'Ꞓ',
  'ꞔ' => 'Ꞔ',
  'ꞗ' => 'Ꞗ',
  'ꞙ' => 'Ꞙ',
  'ꞛ' => 'Ꞛ',
  'ꞝ' => 'Ꞝ',
  'ꞟ' => 'Ꞟ',
  'ꞡ' => 'Ꞡ',
  'ꞣ' => 'Ꞣ',
  'ꞥ' => 'Ꞥ',
  'ꞧ' => 'Ꞧ',
  'ꞩ' => 'Ꞩ',
  'ꞵ' => 'Ꞵ',
  'ꞷ' => 'Ꞷ',
  'ꞹ' => 'Ꞹ',
  'ꞻ' => 'Ꞻ',
  'ꞽ' => 'Ꞽ',
  'ꞿ' => 'Ꞿ',
  'ꟃ' => 'Ꟃ',
  'ꟈ' => 'Ꟈ',
  'ꟊ' => 'Ꟊ',
  'ꟶ' => 'Ꟶ',
  'ꭓ' => 'Ꭓ',
  'ꭰ' => 'Ꭰ',
  'ꭱ' => 'Ꭱ',
  'ꭲ' => 'Ꭲ',
  'ꭳ' => 'Ꭳ',
  'ꭴ' => 'Ꭴ',
  'ꭵ' => 'Ꭵ',
  'ꭶ' => 'Ꭶ',
  'ꭷ' => 'Ꭷ',
  'ꭸ' => 'Ꭸ',
  'ꭹ' => 'Ꭹ',
  'ꭺ' => 'Ꭺ',
  'ꭻ' => 'Ꭻ',
  'ꭼ' => 'Ꭼ',
  'ꭽ' => 'Ꭽ',
  'ꭾ' => 'Ꭾ',
  'ꭿ' => 'Ꭿ',
  'ꮀ' => 'Ꮀ',
  'ꮁ' => 'Ꮁ',
  'ꮂ' => 'Ꮂ',
  'ꮃ' => 'Ꮃ',
  'ꮄ' => 'Ꮄ',
  'ꮅ' => 'Ꮅ',
  'ꮆ' => 'Ꮆ',
  'ꮇ' => 'Ꮇ',
  'ꮈ' => 'Ꮈ',
  'ꮉ' => 'Ꮉ',
  'ꮊ' => 'Ꮊ',
  'ꮋ' => 'Ꮋ',
  'ꮌ' => 'Ꮌ',
  'ꮍ' => 'Ꮍ',
  'ꮎ' => 'Ꮎ',
  'ꮏ' => 'Ꮏ',
  'ꮐ' => 'Ꮐ',
  'ꮑ' => 'Ꮑ',
  'ꮒ' => 'Ꮒ',
  'ꮓ' => 'Ꮓ',
  'ꮔ' => 'Ꮔ',
  'ꮕ' => 'Ꮕ',
  'ꮖ' => 'Ꮖ',
  'ꮗ' => 'Ꮗ',
  'ꮘ' => 'Ꮘ',
  'ꮙ' => 'Ꮙ',
  'ꮚ' => 'Ꮚ',
  'ꮛ' => 'Ꮛ',
  'ꮜ' => 'Ꮜ',
  'ꮝ' => 'Ꮝ',
  'ꮞ' => 'Ꮞ',
  'ꮟ' => 'Ꮟ',
  'ꮠ' => 'Ꮠ',
  'ꮡ' => 'Ꮡ',
  'ꮢ' => 'Ꮢ',
  'ꮣ' => 'Ꮣ',
  'ꮤ' => 'Ꮤ',
  'ꮥ' => 'Ꮥ',
  'ꮦ' => 'Ꮦ',
  'ꮧ' => 'Ꮧ',
  'ꮨ' => 'Ꮨ',
  'ꮩ' => 'Ꮩ',
  'ꮪ' => 'Ꮪ',
  'ꮫ' => 'Ꮫ',
  'ꮬ' => 'Ꮬ',
  'ꮭ' => 'Ꮭ',
  'ꮮ' => 'Ꮮ',
  'ꮯ' => 'Ꮯ',
  'ꮰ' => 'Ꮰ',
  'ꮱ' => 'Ꮱ',
  'ꮲ' => 'Ꮲ',
  'ꮳ' => 'Ꮳ',
  'ꮴ' => 'Ꮴ',
  'ꮵ' => 'Ꮵ',
  'ꮶ' => 'Ꮶ',
  'ꮷ' => 'Ꮷ',
  'ꮸ' => 'Ꮸ',
  'ꮹ' => 'Ꮹ',
  'ꮺ' => 'Ꮺ',
  'ꮻ' => 'Ꮻ',
  'ꮼ' => 'Ꮼ',
  'ꮽ' => 'Ꮽ',
  'ꮾ' => 'Ꮾ',
  'ꮿ' => 'Ꮿ',
  'ａ' => 'Ａ',
  'ｂ' => 'Ｂ',
  'ｃ' => 'Ｃ',
  'ｄ' => 'Ｄ',
  'ｅ' => 'Ｅ',
  'ｆ' => 'Ｆ',
  'ｇ' => 'Ｇ',
  'ｈ' => 'Ｈ',
  'ｉ' => 'Ｉ',
  'ｊ' => 'Ｊ',
  'ｋ' => 'Ｋ',
  'ｌ' => 'Ｌ',
  'ｍ' => 'Ｍ',
  'ｎ' => 'Ｎ',
  'ｏ' => 'Ｏ',
  'ｐ' => 'Ｐ',
  'ｑ' => 'Ｑ',
  'ｒ' => 'Ｒ',
  'ｓ' => 'Ｓ',
  'ｔ' => 'Ｔ',
  'ｕ' => 'Ｕ',
  'ｖ' => 'Ｖ',
  'ｗ' => 'Ｗ',
  'ｘ' => 'Ｘ',
  'ｙ' => 'Ｙ',
  'ｚ' => 'Ｚ',
  '𐐨' => '𐐀',
  '𐐩' => '𐐁',
  '𐐪' => '𐐂',
  '𐐫' => '𐐃',
  '𐐬' => '𐐄',
  '𐐭' => '𐐅',
  '𐐮' => '𐐆',
  '𐐯' => '𐐇',
  '𐐰' => '𐐈',
  '𐐱' => '𐐉',
  '𐐲' => '𐐊',
  '𐐳' => '𐐋',
  '𐐴' => '𐐌',
  '𐐵' => '𐐍',
  '𐐶' => '𐐎',
  '𐐷' => '𐐏',
  '𐐸' => '𐐐',
  '𐐹' => '𐐑',
  '𐐺' => '𐐒',
  '𐐻' => '𐐓',
  '𐐼' => '𐐔',
  '𐐽' => '𐐕',
  '𐐾' => '𐐖',
  '𐐿' => '𐐗',
  '𐑀' => '𐐘',
  '𐑁' => '𐐙',
  '𐑂' => '𐐚',
  '𐑃' => '𐐛',
  '𐑄' => '𐐜',
  '𐑅' => '𐐝',
  '𐑆' => '𐐞',
  '𐑇' => '𐐟',
  '𐑈' => '𐐠',
  '𐑉' => '𐐡',
  '𐑊' => '𐐢',
  '𐑋' => '𐐣',
  '𐑌' => '𐐤',
  '𐑍' => '𐐥',
  '𐑎' => '𐐦',
  '𐑏' => '𐐧',
  '𐓘' => '𐒰',
  '𐓙' => '𐒱',
  '𐓚' => '𐒲',
  '𐓛' => '𐒳',
  '𐓜' => '𐒴',
  '𐓝' => '𐒵',
  '𐓞' => '𐒶',
  '𐓟' => '𐒷',
  '𐓠' => '𐒸',
  '𐓡' => '𐒹',
  '𐓢' => '𐒺',
  '𐓣' => '𐒻',
  '𐓤' => '𐒼',
  '𐓥' => '𐒽',
  '𐓦' => '𐒾',
  '𐓧' => '𐒿',
  '𐓨' => '𐓀',
  '𐓩' => '𐓁',
  '𐓪' => '𐓂',
  '𐓫' => '𐓃',
  '𐓬' => '𐓄',
  '𐓭' => '𐓅',
  '𐓮' => '𐓆',
  '𐓯' => '𐓇',
  '𐓰' => '𐓈',
  '𐓱' => '𐓉',
  '𐓲' => '𐓊',
  '𐓳' => '𐓋',
  '𐓴' => '𐓌',
  '𐓵' => '𐓍',
  '𐓶' => '𐓎',
  '𐓷' => '𐓏',
  '𐓸' => '𐓐',
  '𐓹' => '𐓑',
  '𐓺' => '𐓒',
  '𐓻' => '𐓓',
  '𐳀' => '𐲀',
  '𐳁' => '𐲁',
  '𐳂' => '𐲂',
  '𐳃' => '𐲃',
  '𐳄' => '𐲄',
  '𐳅' => '𐲅',
  '𐳆' => '𐲆',
  '𐳇' => '𐲇',
  '𐳈' => '𐲈',
  '𐳉' => '𐲉',
  '𐳊' => '𐲊',
  '𐳋' => '𐲋',
  '𐳌' => '𐲌',
  '𐳍' => '𐲍',
  '𐳎' => '𐲎',
  '𐳏' => '𐲏',
  '𐳐' => '𐲐',
  '𐳑' => '𐲑',
  '𐳒' => '𐲒',
  '𐳓' => '𐲓',
  '𐳔' => '𐲔',
  '𐳕' => '𐲕',
  '𐳖' => '𐲖',
  '𐳗' => '𐲗',
  '𐳘' => '𐲘',
  '𐳙' => '𐲙',
  '𐳚' => '𐲚',
  '𐳛' => '𐲛',
  '𐳜' => '𐲜',
  '𐳝' => '𐲝',
  '𐳞' => '𐲞',
  '𐳟' => '𐲟',
  '𐳠' => '𐲠',
  '𐳡' => '𐲡',
  '𐳢' => '𐲢',
  '𐳣' => '𐲣',
  '𐳤' => '𐲤',
  '𐳥' => '𐲥',
  '𐳦' => '𐲦',
  '𐳧' => '𐲧',
  '𐳨' => '𐲨',
  '𐳩' => '𐲩',
  '𐳪' => '𐲪',
  '𐳫' => '𐲫',
  '𐳬' => '𐲬',
  '𐳭' => '𐲭',
  '𐳮' => '𐲮',
  '𐳯' => '𐲯',
  '𐳰' => '𐲰',
  '𐳱' => '𐲱',
  '𐳲' => '𐲲',
  '𑣀' => '𑢠',
  '𑣁' => '𑢡',
  '𑣂' => '𑢢',
  '𑣃' => '𑢣',
  '𑣄' => '𑢤',
  '𑣅' => '𑢥',
  '𑣆' => '𑢦',
  '𑣇' => '𑢧',
  '𑣈' => '𑢨',
  '𑣉' => '𑢩',
  '𑣊' => '𑢪',
  '𑣋' => '𑢫',
  '𑣌' => '𑢬',
  '𑣍' => '𑢭',
  '𑣎' => '𑢮',
  '𑣏' => '𑢯',
  '𑣐' => '𑢰',
  '𑣑' => '𑢱',
  '𑣒' => '𑢲',
  '𑣓' => '𑢳',
  '𑣔' => '𑢴',
  '𑣕' => '𑢵',
  '𑣖' => '𑢶',
  '𑣗' => '𑢷',
  '𑣘' => '𑢸',
  '𑣙' => '𑢹',
  '𑣚' => '𑢺',
  '𑣛' => '𑢻',
  '𑣜' => '𑢼',
  '𑣝' => '𑢽',
  '𑣞' => '𑢾',
  '𑣟' => '𑢿',
  '𖹠' => '𖹀',
  '𖹡' => '𖹁',
  '𖹢' => '𖹂',
  '𖹣' => '𖹃',
  '𖹤' => '𖹄',
  '𖹥' => '𖹅',
  '𖹦' => '𖹆',
  '𖹧' => '𖹇',
  '𖹨' => '𖹈',
  '𖹩' => '𖹉',
  '𖹪' => '𖹊',
  '𖹫' => '𖹋',
  '𖹬' => '𖹌',
  '𖹭' => '𖹍',
  '𖹮' => '𖹎',
  '𖹯' => '𖹏',
  '𖹰' => '𖹐',
  '𖹱' => '𖹑',
  '𖹲' => '𖹒',
  '𖹳' => '𖹓',
  '𖹴' => '𖹔',
  '𖹵' => '𖹕',
  '𖹶' => '𖹖',
  '𖹷' => '𖹗',
  '𖹸' => '𖹘',
  '𖹹' => '𖹙',
  '𖹺' => '𖹚',
  '𖹻' => '𖹛',
  '𖹼' => '𖹜',
  '𖹽' => '𖹝',
  '𖹾' => '𖹞',
  '𖹿' => '𖹟',
  '𞤢' => '𞤀',
  '𞤣' => '𞤁',
  '𞤤' => '𞤂',
  '𞤥' => '𞤃',
  '𞤦' => '𞤄',
  '𞤧' => '𞤅',
  '𞤨' => '𞤆',
  '𞤩' => '𞤇',
  '𞤪' => '𞤈',
  '𞤫' => '𞤉',
  '𞤬' => '𞤊',
  '𞤭' => '𞤋',
  '𞤮' => '𞤌',
  '𞤯' => '𞤍',
  '𞤰' => '𞤎',
  '𞤱' => '𞤏',
  '𞤲' => '𞤐',
  '𞤳' => '𞤑',
  '𞤴' => '𞤒',
  '𞤵' => '𞤓',
  '𞤶' => '𞤔',
  '𞤷' => '𞤕',
  '𞤸' => '𞤖',
  '𞤹' => '𞤗',
  '𞤺' => '𞤘',
  '𞤻' => '𞤙',
  '𞤼' => '𞤚',
  '𞤽' => '𞤛',
  '𞤾' => '𞤜',
  '𞤿' => '𞤝',
  '𞥀' => '𞤞',
  '𞥁' => '𞤟',
  '𞥂' => '𞤠',
  '𞥃' => '𞤡',
);
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Polyfill\Mbstring;

/**
 * Partial mbstring implementation in PHP, iconv based, UTF-8 centric.
 *
 * Implemented:
 * - mb_chr                  - Returns a specific character from its Unicode code point
 * - mb_convert_encoding     - Convert character encoding
 * - mb_convert_variables    - Convert character code in variable(s)
 * - mb_decode_mimeheader    - Decode string in MIME header field
 * - mb_encode_mimeheader    - Encode string for MIME header XXX NATIVE IMPLEMENTATION IS REALLY BUGGED
 * - mb_decode_numericentity - Decode HTML numeric string reference to character
 * - mb_encode_numericentity - Encode character to HTML numeric string reference
 * - mb_convert_case         - Perform case folding on a string
 * - mb_detect_encoding      - Detect character encoding
 * - mb_get_info             - Get internal settings of mbstring
 * - mb_http_input           - Detect HTTP input character encoding
 * - mb_http_output          - Set/Get HTTP output character encoding
 * - mb_internal_encoding    - Set/Get internal character encoding
 * - mb_list_encodings       - Returns an array of all supported encodings
 * - mb_ord                  - Returns the Unicode code point of a character
 * - mb_output_handler       - Callback function converts character encoding in output buffer
 * - mb_scrub                - Replaces ill-formed byte sequences with substitute characters
 * - mb_strlen               - Get string length
 * - mb_strpos               - Find position of first occurrence of string in a string
 * - mb_strrpos              - Find position of last occurrence of a string in a string
 * - mb_str_split            - Convert a string to an array
 * - mb_strtolower           - Make a string lowercase
 * - mb_strtoupper           - Make a string uppercase
 * - mb_substitute_character - Set/Get substitution character
 * - mb_substr               - Get part of string
 * - mb_stripos              - Finds position of first occurrence of a string within another, case insensitive
 * - mb_stristr              - Finds first occurrence of a string within another, case insensitive
 * - mb_strrchr              - Finds the last occurrence of a character in a string within another
 * - mb_strrichr             - Finds the last occurrence of a character in a string within another, case insensitive
 * - mb_strripos             - Finds position of last occurrence of a string within another, case insensitive
 * - mb_strstr               - Finds first occurrence of a string within another
 * - mb_strwidth             - Return width of string
 * - mb_substr_count         - Count the number of substring occurrences
 *
 * Not implemented:
 * - mb_convert_kana         - Convert "kana" one from another ("zen-kaku", "han-kaku" and more)
 * - mb_ereg_*               - Regular expression with multibyte support
 * - mb_parse_str            - Parse GET/POST/COOKIE data and set global variable
 * - mb_preferred_mime_name  - Get MIME charset string
 * - mb_regex_encoding       - Returns current encoding for multibyte regex as string
 * - mb_regex_set_options    - Set/Get the default options for mbregex functions
 * - mb_send_mail            - Send encoded mail
 * - mb_split                - Split multibyte string using regular expression
 * - mb_strcut               - Get part of string
 * - mb_strimwidth           - Get truncated string with specified width
 *
 * @author Nicolas Grekas <p@tchwork.com>
 *
 * @internal
 */
final class Mbstring
{
    const MB_CASE_FOLD = PHP_INT_MAX;

    private static $encodingList = array('ASCII', 'UTF-8');
    private static $language = 'neutral';
    private static $internalEncoding = 'UTF-8';
    private static $caseFold = array(
        array('µ', 'ſ', "\xCD\x85", 'ς', "\xCF\x90", "\xCF\x91", "\xCF\x95", "\xCF\x96", "\xCF\xB0", "\xCF\xB1", "\xCF\xB5", "\xE1\xBA\x9B", "\xE1\xBE\xBE"),
        array('μ', 's', 'ι',        'σ', 'β',        'θ',        'φ',        'π',        'κ',        'ρ',        'ε',        "\xE1\xB9\xA1", 'ι'),
    );

    public static function mb_convert_encoding($s, $toEncoding, $fromEncoding = null)
    {
        if (\is_array($fromEncoding) || false !== strpos($fromEncoding, ',')) {
            $fromEncoding = self::mb_detect_encoding($s, $fromEncoding);
        } else {
            $fromEncoding = self::getEncoding($fromEncoding);
        }

        $toEncoding = self::getEncoding($toEncoding);

        if ('BASE64' === $fromEncoding) {
            $s = base64_decode($s);
            $fromEncoding = $toEncoding;
        }

        if ('BASE64' === $toEncoding) {
            return base64_encode($s);
        }

        if ('HTML-ENTITIES' === $toEncoding || 'HTML' === $toEncoding) {
            if ('HTML-ENTITIES' === $fromEncoding || 'HTML' === $fromEncoding) {
                $fromEncoding = 'Windows-1252';
            }
            if ('UTF-8' !== $fromEncoding) {
                $s = iconv($fromEncoding, 'UTF-8//IGNORE', $s);
            }

            return preg_replace_callback('/[\x80-\xFF]+/', array(__CLASS__, 'html_encoding_callback'), $s);
        }

        if ('HTML-ENTITIES' === $fromEncoding) {
            $s = html_entity_decode($s, ENT_COMPAT, 'UTF-8');
            $fromEncoding = 'UTF-8';
        }

        return iconv($fromEncoding, $toEncoding.'//IGNORE', $s);
    }

    public static function mb_convert_variables($toEncoding, $fromEncoding, &$a = null, &$b = null, &$c = null, &$d = null, &$e = null, &$f = null)
    {
        $vars = array(&$a, &$b, &$c, &$d, &$e, &$f);

        $ok = true;
        array_walk_recursive($vars, function (&$v) use (&$ok, $toEncoding, $fromEncoding) {
            if (false === $v = Mbstring::mb_convert_encoding($v, $toEncoding, $fromEncoding)) {
                $ok = false;
            }
        });

        return $ok ? $fromEncoding : false;
    }

    public static function mb_decode_mimeheader($s)
    {
        return iconv_mime_decode($s, 2, self::$internalEncoding);
    }

    public static function mb_encode_mimeheader($s, $charset = null, $transferEncoding = null, $linefeed = null, $indent = null)
    {
        trigger_error('mb_encode_mimeheader() is bugged. Please use iconv_mime_encode() instead', E_USER_WARNING);
    }

    public static function mb_decode_numericentity($s, $convmap, $encoding = null)
    {
        if (null !== $s && !\is_scalar($s) && !(\is_object($s) && \method_exists($s, '__toString'))) {
            trigger_error('mb_decode_numericentity() expects parameter 1 to be string, '.\gettype($s).' given', E_USER_WARNING);

            return null;
        }

        if (!\is_array($convmap) || !$convmap) {
            return false;
        }

        if (null !== $encoding && !\is_scalar($encoding)) {
            trigger_error('mb_decode_numericentity() expects parameter 3 to be string, '.\gettype($s).' given', E_USER_WARNING);

            return '';  // Instead of null (cf. mb_encode_numericentity).
        }

        $s = (string) $s;
        if ('' === $s) {
            return '';
        }

        $encoding = self::getEncoding($encoding);

        if ('UTF-8' === $encoding) {
            $encoding = null;
            if (!preg_match('//u', $s)) {
                $s = @iconv('UTF-8', 'UTF-8//IGNORE', $s);
            }
        } else {
            $s = iconv($encoding, 'UTF-8//IGNORE', $s);
        }

        $cnt = floor(\count($convmap) / 4) * 4;

        for ($i = 0; $i < $cnt; $i += 4) {
            // collector_decode_htmlnumericentity ignores $convmap[$i + 3]
            $convmap[$i] += $convmap[$i + 2];
            $convmap[$i + 1] += $convmap[$i + 2];
        }

        $s = preg_replace_callback('/&#(?:0*([0-9]+)|x0*([0-9a-fA-F]+))(?!&);?/', function (array $m) use ($cnt, $convmap) {
            $c = isset($m[2]) ? (int) hexdec($m[2]) : $m[1];
            for ($i = 0; $i < $cnt; $i += 4) {
                if ($c >= $convmap[$i] && $c <= $convmap[$i + 1]) {
                    return Mbstring::mb_chr($c - $convmap[$i + 2]);
                }
            }

            return $m[0];
        }, $s);

        if (null === $encoding) {
            return $s;
        }

        return iconv('UTF-8', $encoding.'//IGNORE', $s);
    }

    public static function mb_encode_numericentity($s, $convmap, $encoding = null, $is_hex = false)
    {
        if (null !== $s && !\is_scalar($s) && !(\is_object($s) && \method_exists($s, '__toString'))) {
            trigger_error('mb_encode_numericentity() expects parameter 1 to be string, '.\gettype($s).' given', E_USER_WARNING);

            return null;
        }

        if (!\is_array($convmap) || !$convmap) {
            return false;
        }

        if (null !== $encoding && !\is_scalar($encoding)) {
            trigger_error('mb_encode_numericentity() expects parameter 3 to be string, '.\gettype($s).' given', E_USER_WARNING);

            return null;  // Instead of '' (cf. mb_decode_numericentity).
        }

        if (null !== $is_hex && !\is_scalar($is_hex)) {
            trigger_error('mb_encode_numericentity() expects parameter 4 to be boolean, '.\gettype($s).' given', E_USER_WARNING);

            return null;
        }

        $s = (string) $s;
        if ('' === $s) {
            return '';
        }

        $encoding = self::getEncoding($encoding);

        if ('UTF-8' === $encoding) {
            $encoding = null;
            if (!preg_match('//u', $s)) {
                $s = @iconv('UTF-8', 'UTF-8//IGNORE', $s);
            }
        } else {
            $s = iconv($encoding, 'UTF-8//IGNORE', $s);
        }

        static $ulenMask = array("\xC0" => 2, "\xD0" => 2, "\xE0" => 3, "\xF0" => 4);

        $cnt = floor(\count($convmap) / 4) * 4;
        $i = 0;
        $len = \strlen($s);
        $result = '';

        while ($i < $len) {
            $ulen = $s[$i] < "\x80" ? 1 : $ulenMask[$s[$i] & "\xF0"];
            $uchr = substr($s, $i, $ulen);
            $i += $ulen;
            $c = self::mb_ord($uchr);

            for ($j = 0; $j < $cnt; $j += 4) {
                if ($c >= $convmap[$j] && $c <= $convmap[$j + 1]) {
                    $cOffset = ($c + $convmap[$j + 2]) & $convmap[$j + 3];
                    $result .= $is_hex ? sprintf('&#x%X;', $cOffset) : '&#'.$cOffset.';';
                    continue 2;
                }
            }
            $result .= $uchr;
        }

        if (null === $encoding) {
            return $result;
        }

        return iconv('UTF-8', $encoding.'//IGNORE', $result);
    }

    public static function mb_convert_case($s, $mode, $encoding = null)
    {
        $s = (string) $s;
        if ('' === $s) {
            return '';
        }

        $encoding = self::getEncoding($encoding);

        if ('UTF-8' === $encoding) {
            $encoding = null;
            if (!preg_match('//u', $s)) {
                $s = @iconv('UTF-8', 'UTF-8//IGNORE', $s);
            }
        } else {
            $s = iconv($encoding, 'UTF-8//IGNORE', $s);
        }

        if (MB_CASE_TITLE == $mode) {
            static $titleRegexp = null;
            if (null === $titleRegexp) {
                $titleRegexp = self::getData('titleCaseRegexp');
            }
            $s = preg_replace_callback($titleRegexp, array(__CLASS__, 'title_case'), $s);
        } else {
            if (MB_CASE_UPPER == $mode) {
                static $upper = null;
                if (null === $upper) {
                    $upper = self::getData('upperCase');
                }
                $map = $upper;
            } else {
                if (self::MB_CASE_FOLD === $mode) {
                    $s = str_replace(self::$caseFold[0], self::$caseFold[1], $s);
                }

                static $lower = null;
                if (null === $lower) {
                    $lower = self::getData('lowerCase');
                }
                $map = $lower;
            }

            static $ulenMask = array("\xC0" => 2, "\xD0" => 2, "\xE0" => 3, "\xF0" => 4);

            $i = 0;
            $len = \strlen($s);

            while ($i < $len) {
                $ulen = $s[$i] < "\x80" ? 1 : $ulenMask[$s[$i] & "\xF0"];
                $uchr = substr($s, $i, $ulen);
                $i += $ulen;

                if (isset($map[$uchr])) {
                    $uchr = $map[$uchr];
                    $nlen = \strlen($uchr);

                    if ($nlen == $ulen) {
                        $nlen = $i;
                        do {
                            $s[--$nlen] = $uchr[--$ulen];
                        } while ($ulen);
                    } else {
                        $s = substr_replace($s, $uchr, $i - $ulen, $ulen);
                        $len += $nlen - $ulen;
                        $i += $nlen - $ulen;
                    }
                }
            }
        }

        if (null === $encoding) {
            return $s;
        }

        return iconv('UTF-8', $encoding.'//IGNORE', $s);
    }

    public static function mb_internal_encoding($encoding = null)
    {
        if (null === $encoding) {
            return self::$internalEncoding;
        }

        $encoding = self::getEncoding($encoding);

        if ('UTF-8' === $encoding || false !== @iconv($encoding, $encoding, ' ')) {
            self::$internalEncoding = $encoding;

            return true;
        }

        return false;
    }

    public static function mb_language($lang = null)
    {
        if (null === $lang) {
            return self::$language;
        }

        switch ($lang = strtolower($lang)) {
            case 'uni':
            case 'neutral':
                self::$language = $lang;

                return true;
        }

        return false;
    }

    public static function mb_list_encodings()
    {
        return array('UTF-8');
    }

    public static function mb_encoding_aliases($encoding)
    {
        switch (strtoupper($encoding)) {
            case 'UTF8':
            case 'UTF-8':
                return array('utf8');
        }

        return false;
    }

    public static function mb_check_encoding($var = null, $encoding = null)
    {
        if (null === $encoding) {
            if (null === $var) {
                return false;
            }
            $encoding = self::$internalEncoding;
        }

        return self::mb_detect_encoding($var, array($encoding)) || false !== @iconv($encoding, $encoding, $var);
    }

    public static function mb_detect_encoding($str, $encodingList = null, $strict = false)
    {
        if (null === $encodingList) {
            $encodingList = self::$encodingList;
        } else {
            if (!\is_array($encodingList)) {
                $encodingList = array_map('trim', explode(',', $encodingList));
            }
            $encodingList = array_map('strtoupper', $encodingList);
        }

        foreach ($encodingList as $enc) {
            switch ($enc) {
                case 'ASCII':
                    if (!preg_match('/[\x80-\xFF]/', $str)) {
                        return $enc;
                    }
                    break;

                case 'UTF8':
                case 'UTF-8':
                    if (preg_match('//u', $str)) {
                        return 'UTF-8';
                    }
                    break;

                default:
                    if (0 === strncmp($enc, 'ISO-8859-', 9)) {
                        return $enc;
                    }
            }
        }

        return false;
    }

    public static function mb_detect_order($encodingList = null)
    {
        if (null === $encodingList) {
            return self::$encodingList;
        }

        if (!\is_array($encodingList)) {
            $encodingList = array_map('trim', explode(',', $encodingList));
        }
        $encodingList = array_map('strtoupper', $encodingList);

        foreach ($encodingList as $enc) {
            switch ($enc) {
                default:
                    if (strncmp($enc, 'ISO-8859-', 9)) {
                        return false;
                    }
                    // no break
                case 'ASCII':
                case 'UTF8':
                case 'UTF-8':
            }
        }

        self::$encodingList = $encodingList;

        return true;
    }

    public static function mb_strlen($s, $encoding = null)
    {
        $encoding = self::getEncoding($encoding);
        if ('CP850' === $encoding || 'ASCII' === $encoding) {
            return \strlen($s);
        }

        return @iconv_strlen($s, $encoding);
    }

    public static function mb_strpos($haystack, $needle, $offset = 0, $encoding = null)
    {
        $encoding = self::getEncoding($encoding);
        if ('CP850' === $encoding || 'ASCII' === $encoding) {
            return strpos($haystack, $needle, $offset);
        }

        $needle = (string) $needle;
        if ('' === $needle) {
            trigger_error(__METHOD__.': Empty delimiter', E_USER_WARNING);

            return false;
        }

        return iconv_strpos($haystack, $needle, $offset, $encoding);
    }

    public static function mb_strrpos($haystack, $needle, $offset = 0, $encoding = null)
    {
        $encoding = self::getEncoding($encoding);
        if ('CP850' === $encoding || 'ASCII' === $encoding) {
            return strrpos($haystack, $needle, $offset);
        }

        if ($offset != (int) $offset) {
            $offset = 0;
        } elseif ($offset = (int) $offset) {
            if ($offset < 0) {
                if (0 > $offset += self::mb_strlen($needle)) {
                    $haystack = self::mb_substr($haystack, 0, $offset, $encoding);
                }
                $offset = 0;
            } else {
                $haystack = self::mb_substr($haystack, $offset, 2147483647, $encoding);
            }
        }

        $pos = iconv_strrpos($haystack, $needle, $encoding);

        return false !== $pos ? $offset + $pos : false;
    }

    public static function mb_str_split($string, $split_length = 1, $encoding = null)
    {
        if (null !== $string && !\is_scalar($string) && !(\is_object($string) && \method_exists($string, '__toString'))) {
            trigger_error('mb_str_split() expects parameter 1 to be string, '.\gettype($string).' given', E_USER_WARNING);

            return null;
        }

        if (1 > $split_length = (int) $split_length) {
            trigger_error('The length of each segment must be greater than zero', E_USER_WARNING);

            return false;
        }

        if (null === $encoding) {
            $encoding = mb_internal_encoding();
        }

        if ('UTF-8' === $encoding = self::getEncoding($encoding)) {
            $rx = '/(';
            while (65535 < $split_length) {
                $rx .= '.{65535}';
                $split_length -= 65535;
            }
            $rx .= '.{'.$split_length.'})/us';

            return preg_split($rx, $string, null, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
        }

        $result = array();
        $length = mb_strlen($string, $encoding);

        for ($i = 0; $i < $length; $i += $split_length) {
            $result[] = mb_substr($string, $i, $split_length, $encoding);
        }

        return $result;
    }

    public static function mb_strtolower($s, $encoding = null)
    {
        return self::mb_convert_case($s, MB_CASE_LOWER, $encoding);
    }

    public static function mb_strtoupper($s, $encoding = null)
    {
        return self::mb_convert_case($s, MB_CASE_UPPER, $encoding);
    }

    public static function mb_substitute_character($c = null)
    {
        if (0 === strcasecmp($c, 'none')) {
            return true;
        }

        return null !== $c ? false : 'none';
    }

    public static function mb_substr($s, $start, $length = null, $encoding = null)
    {
        $encoding = self::getEncoding($encoding);
        if ('CP850' === $encoding || 'ASCII' === $encoding) {
            return (string) substr($s, $start, null === $length ? 2147483647 : $length);
        }

        if ($start < 0) {
            $start = iconv_strlen($s, $encoding) + $start;
            if ($start < 0) {
                $start = 0;
            }
        }

        if (null === $length) {
            $length = 2147483647;
        } elseif ($length < 0) {
            $length = iconv_strlen($s, $encoding) + $length - $start;
            if ($length < 0) {
                return '';
            }
        }

        return (string) iconv_substr($s, $start, $length, $encoding);
    }

    public static function mb_stripos($haystack, $needle, $offset = 0, $encoding = null)
    {
        $haystack = self::mb_convert_case($haystack, self::MB_CASE_FOLD, $encoding);
        $needle = self::mb_convert_case($needle, self::MB_CASE_FOLD, $encoding);

        return self::mb_strpos($haystack, $needle, $offset, $encoding);
    }

    public static function mb_stristr($haystack, $needle, $part = false, $encoding = null)
    {
        $pos = self::mb_stripos($haystack, $needle, 0, $encoding);

        return self::getSubpart($pos, $part, $haystack, $encoding);
    }

    public static function mb_strrchr($haystack, $needle, $part = false, $encoding = null)
    {
        $encoding = self::getEncoding($encoding);
        if ('CP850' === $encoding || 'ASCII' === $encoding) {
            return strrchr($haystack, $needle, $part);
        }
        $needle = self::mb_substr($needle, 0, 1, $encoding);
        $pos = iconv_strrpos($haystack, $needle, $encoding);

        return self::getSubpart($pos, $part, $haystack, $encoding);
    }

    public static function mb_strrichr($haystack, $needle, $part = false, $encoding = null)
    {
        $needle = self::mb_substr($needle, 0, 1, $encoding);
        $pos = self::mb_strripos($haystack, $needle, $encoding);

        return self::getSubpart($pos, $part, $haystack, $encoding);
    }

    public static function mb_strripos($haystack, $needle, $offset = 0, $encoding = null)
    {
        $haystack = self::mb_convert_case($haystack, self::MB_CASE_FOLD, $encoding);
        $needle = self::mb_convert_case($needle, self::MB_CASE_FOLD, $encoding);

        return self::mb_strrpos($haystack, $needle, $offset, $encoding);
    }

    public static function mb_strstr($haystack, $needle, $part = false, $encoding = null)
    {
        $pos = strpos($haystack, $needle);
        if (false === $pos) {
            return false;
        }
        if ($part) {
            return substr($haystack, 0, $pos);
        }

        return substr($haystack, $pos);
    }

    public static function mb_get_info($type = 'all')
    {
        $info = array(
            'internal_encoding' => self::$internalEncoding,
            'http_output' => 'pass',
            'http_output_conv_mimetypes' => '^(text/|application/xhtml\+xml)',
            'func_overload' => 0,
            'func_overload_list' => 'no overload',
            'mail_charset' => 'UTF-8',
            'mail_header_encoding' => 'BASE64',
            'mail_body_encoding' => 'BASE64',
            'illegal_chars' => 0,
            'encoding_translation' => 'Off',
            'language' => self::$language,
            'detect_order' => self::$encodingList,
            'substitute_character' => 'none',
            'strict_detection' => 'Off',
        );

        if ('all' === $type) {
            return $info;
        }
        if (isset($info[$type])) {
            return $info[$type];
        }

        return false;
    }

    public static function mb_http_input($type = '')
    {
        return false;
    }

    public static function mb_http_output($encoding = null)
    {
        return null !== $encoding ? 'pass' === $encoding : 'pass';
    }

    public static function mb_strwidth($s, $encoding = null)
    {
        $encoding = self::getEncoding($encoding);

        if ('UTF-8' !== $encoding) {
            $s = iconv($encoding, 'UTF-8//IGNORE', $s);
        }

        $s = preg_replace('/[\x{1100}-\x{115F}\x{2329}\x{232A}\x{2E80}-\x{303E}\x{3040}-\x{A4CF}\x{AC00}-\x{D7A3}\x{F900}-\x{FAFF}\x{FE10}-\x{FE19}\x{FE30}-\x{FE6F}\x{FF00}-\x{FF60}\x{FFE0}-\x{FFE6}\x{20000}-\x{2FFFD}\x{30000}-\x{3FFFD}]/u', '', $s, -1, $wide);

        return ($wide << 1) + iconv_strlen($s, 'UTF-8');
    }

    public static function mb_substr_count($haystack, $needle, $encoding = null)
    {
        return substr_count($haystack, $needle);
    }

    public static function mb_output_handler($contents, $status)
    {
        return $contents;
    }

    public static function mb_chr($code, $encoding = null)
    {
        if (0x80 > $code %= 0x200000) {
            $s = \chr($code);
        } elseif (0x800 > $code) {
            $s = \chr(0xC0 | $code >> 6).\chr(0x80 | $code & 0x3F);
        } elseif (0x10000 > $code) {
            $s = \chr(0xE0 | $code >> 12).\chr(0x80 | $code >> 6 & 0x3F).\chr(0x80 | $code & 0x3F);
        } else {
            $s = \chr(0xF0 | $code >> 18).\chr(0x80 | $code >> 12 & 0x3F).\chr(0x80 | $code >> 6 & 0x3F).\chr(0x80 | $code & 0x3F);
        }

        if ('UTF-8' !== $encoding = self::getEncoding($encoding)) {
            $s = mb_convert_encoding($s, $encoding, 'UTF-8');
        }

        return $s;
    }

    public static function mb_ord($s, $encoding = null)
    {
        if ('UTF-8' !== $encoding = self::getEncoding($encoding)) {
            $s = mb_convert_encoding($s, 'UTF-8', $encoding);
        }

        if (1 === \strlen($s)) {
            return \ord($s);
        }

        $code = ($s = unpack('C*', substr($s, 0, 4))) ? $s[1] : 0;
        if (0xF0 <= $code) {
            return (($code - 0xF0) << 18) + (($s[2] - 0x80) << 12) + (($s[3] - 0x80) << 6) + $s[4] - 0x80;
        }
        if (0xE0 <= $code) {
            return (($code - 0xE0) << 12) + (($s[2] - 0x80) << 6) + $s[3] - 0x80;
        }
        if (0xC0 <= $code) {
            return (($code - 0xC0) << 6) + $s[2] - 0x80;
        }

        return $code;
    }

    private static function getSubpart($pos, $part, $haystack, $encoding)
    {
        if (false === $pos) {
            return false;
        }
        if ($part) {
            return self::mb_substr($haystack, 0, $pos, $encoding);
        }

        return self::mb_substr($haystack, $pos, null, $encoding);
    }

    private static function html_encoding_callback(array $m)
    {
        $i = 1;
        $entities = '';
        $m = unpack('C*', htmlentities($m[0], ENT_COMPAT, 'UTF-8'));

        while (isset($m[$i])) {
            if (0x80 > $m[$i]) {
                $entities .= \chr($m[$i++]);
                continue;
            }
            if (0xF0 <= $m[$i]) {
                $c = (($m[$i++] - 0xF0) << 18) + (($m[$i++] - 0x80) << 12) + (($m[$i++] - 0x80) << 6) + $m[$i++] - 0x80;
            } elseif (0xE0 <= $m[$i]) {
                $c = (($m[$i++] - 0xE0) << 12) + (($m[$i++] - 0x80) << 6) + $m[$i++] - 0x80;
            } else {
                $c = (($m[$i++] - 0xC0) << 6) + $m[$i++] - 0x80;
            }

            $entities .= '&#'.$c.';';
        }

        return $entities;
    }

    private static function title_case(array $s)
    {
        return self::mb_convert_case($s[1], MB_CASE_UPPER, 'UTF-8').self::mb_convert_case($s[2], MB_CASE_LOWER, 'UTF-8');
    }

    private static function getData($file)
    {
        if (file_exists($file = __DIR__.'/Resources/unidata/'.$file.'.php')) {
            return require $file;
        }

        return false;
    }

    private static function getEncoding($encoding)
    {
        if (null === $encoding) {
            return self::$internalEncoding;
        }

        if ('UTF-8' === $encoding) {
            return 'UTF-8';
        }

        $encoding = strtoupper($encoding);

        if ('8BIT' === $encoding || 'BINARY' === $encoding) {
            return 'CP850';
        }

        if ('UTF8' === $encoding) {
            return 'UTF-8';
        }

        return $encoding;
    }
}
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

use Symfony\Polyfill\Mbstring as p;

if (!function_exists('mb_convert_encoding')) {
    function mb_convert_encoding($s, $to, $from = null) { return p\Mbstring::mb_convert_encoding($s, $to, $from); }
}
if (!function_exists('mb_decode_mimeheader')) {
    function mb_decode_mimeheader($s) { return p\Mbstring::mb_decode_mimeheader($s); }
}
if (!function_exists('mb_encode_mimeheader')) {
    function mb_encode_mimeheader($s, $charset = null, $transferEnc = null, $lf = null, $indent = null) { return p\Mbstring::mb_encode_mimeheader($s, $charset, $transferEnc, $lf, $indent); }
}
if (!function_exists('mb_decode_numericentity')) {
    function mb_decode_numericentity($s, $convmap, $enc = null) { return p\Mbstring::mb_decode_numericentity($s, $convmap, $enc); }
}
if (!function_exists('mb_encode_numericentity')) {
    function mb_encode_numericentity($s, $convmap, $enc = null, $is_hex = false) { return p\Mbstring::mb_encode_numericentity($s, $convmap, $enc, $is_hex); }
}
if (!function_exists('mb_convert_case')) {
    function mb_convert_case($s, $mode, $enc = null) { return p\Mbstring::mb_convert_case($s, $mode, $enc); }
}
if (!function_exists('mb_internal_encoding')) {
    function mb_internal_encoding($enc = null) { return p\Mbstring::mb_internal_encoding($enc); }
}
if (!function_exists('mb_language')) {
    function mb_language($lang = null) { return p\Mbstring::mb_language($lang); }
}
if (!function_exists('mb_list_encodings')) {
    function mb_list_encodings() { return p\Mbstring::mb_list_encodings(); }
}
if (!function_exists('mb_encoding_aliases')) {
    function mb_encoding_aliases($encoding) { return p\Mbstring::mb_encoding_aliases($encoding); }
}
if (!function_exists('mb_check_encoding')) {
    function mb_check_encoding($var = null, $encoding = null) { return p\Mbstring::mb_check_encoding($var, $encoding); }
}
if (!function_exists('mb_detect_encoding')) {
    function mb_detect_encoding($str, $encodingList = null, $strict = false) { return p\Mbstring::mb_detect_encoding($str, $encodingList, $strict); }
}
if (!function_exists('mb_detect_order')) {
    function mb_detect_order($encodingList = null) { return p\Mbstring::mb_detect_order($encodingList); }
}
if (!function_exists('mb_parse_str')) {
    function mb_parse_str($s, &$result = array()) { parse_str($s, $result); }
}
if (!function_exists('mb_strlen')) {
    function mb_strlen($s, $enc = null) { return p\Mbstring::mb_strlen($s, $enc); }
}
if (!function_exists('mb_strpos')) {
    function mb_strpos($s, $needle, $offset = 0, $enc = null) { return p\Mbstring::mb_strpos($s, $needle, $offset, $enc); }
}
if (!function_exists('mb_strtolower')) {
    function mb_strtolower($s, $enc = null) { return p\Mbstring::mb_strtolower($s, $enc); }
}
if (!function_exists('mb_strtoupper')) {
    function mb_strtoupper($s, $enc = null) { return p\Mbstring::mb_strtoupper($s, $enc); }
}
if (!function_exists('mb_substitute_character')) {
    function mb_substitute_character($char = null) { return p\Mbstring::mb_substitute_character($char); }
}
if (!function_exists('mb_substr')) {
    function mb_substr($s, $start, $length = 2147483647, $enc = null) { return p\Mbstring::mb_substr($s, $start, $length, $enc); }
}
if (!function_exists('mb_stripos')) {
    function mb_stripos($s, $needle, $offset = 0, $enc = null) { return p\Mbstring::mb_stripos($s, $needle, $offset, $enc); }
}
if (!function_exists('mb_stristr')) {
    function mb_stristr($s, $needle, $part = false, $enc = null) { return p\Mbstring::mb_stristr($s, $needle, $part, $enc); }
}
if (!function_exists('mb_strrchr')) {
    function mb_strrchr($s, $needle, $part = false, $enc = null) { return p\Mbstring::mb_strrchr($s, $needle, $part, $enc); }
}
if (!function_exists('mb_strrichr')) {
    function mb_strrichr($s, $needle, $part = false, $enc = null) { return p\Mbstring::mb_strrichr($s, $needle, $part, $enc); }
}
if (!function_exists('mb_strripos')) {
    function mb_strripos($s, $needle, $offset = 0, $enc = null) { return p\Mbstring::mb_strripos($s, $needle, $offset, $enc); }
}
if (!function_exists('mb_strrpos')) {
    function mb_strrpos($s, $needle, $offset = 0, $enc = null) { return p\Mbstring::mb_strrpos($s, $needle, $offset, $enc); }
}
if (!function_exists('mb_strstr')) {
    function mb_strstr($s, $needle, $part = false, $enc = null) { return p\Mbstring::mb_strstr($s, $needle, $part, $enc); }
}
if (!function_exists('mb_get_info')) {
    function mb_get_info($type = 'all') { return p\Mbstring::mb_get_info($type); }
}
if (!function_exists('mb_http_output')) {
    function mb_http_output($enc = null) { return p\Mbstring::mb_http_output($enc); }
}
if (!function_exists('mb_strwidth')) {
    function mb_strwidth($s, $enc = null) { return p\Mbstring::mb_strwidth($s, $enc); }
}
if (!function_exists('mb_substr_count')) {
    function mb_substr_count($haystack, $needle, $enc = null) { return p\Mbstring::mb_substr_count($haystack, $needle, $enc); }
}
if (!function_exists('mb_output_handler')) {
    function mb_output_handler($contents, $status) { return p\Mbstring::mb_output_handler($contents, $status); }
}
if (!function_exists('mb_http_input')) {
    function mb_http_input($type = '') { return p\Mbstring::mb_http_input($type); }
}
if (!function_exists('mb_convert_variables')) {
    function mb_convert_variables($toEncoding, $fromEncoding, &$a = null, &$b = null, &$c = null, &$d = null, &$e = null, &$f = null) { return p\Mbstring::mb_convert_variables($toEncoding, $fromEncoding, $a, $b, $c, $d, $e, $f); }
}
if (!function_exists('mb_ord')) {
    function mb_ord($s, $enc = null) { return p\Mbstring::mb_ord($s, $enc); }
}
if (!function_exists('mb_chr')) {
    function mb_chr($code, $enc = null) { return p\Mbstring::mb_chr($code, $enc); }
}
if (!function_exists('mb_scrub')) {
    function mb_scrub($s, $enc = null) { $enc = null === $enc ? mb_internal_encoding() : $enc; return mb_convert_encoding($s, $enc, $enc); }
}
if (!function_exists('mb_str_split')) {
    function mb_str_split($string, $split_length = 1, $encoding = null) { return p\Mbstring::mb_str_split($string, $split_length, $encoding); }
}

if (extension_loaded('mbstring')) {
    return;
}

if (!defined('MB_CASE_UPPER')) {
    define('MB_CASE_UPPER', 0);
}
if (!defined('MB_CASE_LOWER')) {
    define('MB_CASE_LOWER', 1);
}
if (!defined('MB_CASE_TITLE')) {
    define('MB_CASE_TITLE', 2);
}
Symfony Polyfill / Mbstring
===========================

This component provides a partial, native PHP implementation for the
[Mbstring](https://php.net/mbstring) extension.

More information can be found in the
[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md).

License
=======

This library is released under the [MIT license](LICENSE).
{
    "name": "symfony/polyfill-mbstring",
    "type": "library",
    "description": "Symfony polyfill for the Mbstring extension",
    "keywords": ["polyfill", "shim", "compatibility", "portable", "mbstring"],
    "homepage": "https://symfony.com",
    "license": "MIT",
    "authors": [
        {
            "name": "Nicolas Grekas",
            "email": "p@tchwork.com"
        },
        {
            "name": "Symfony Community",
            "homepage": "https://symfony.com/contributors"
        }
    ],
    "require": {
        "php": ">=5.3.3"
    },
    "autoload": {
        "psr-4": { "Symfony\\Polyfill\\Mbstring\\": "" },
        "files": [ "bootstrap.php" ]
    },
    "suggest": {
        "ext-mbstring": "For best performance"
    },
    "minimum-stability": "dev",
    "extra": {
        "branch-alias": {
            "dev-master": "1.17-dev"
        },
        "thanks": {
            "name": "symfony/polyfill",
            "url": "https://github.com/symfony/polyfill"
        }
    }
}
<?php

try {
    if (version_compare(PHP_VERSION, '7.2.0') < 0) {
        die("Exakat requires PHP 7.2 or more recent to run. \n");
    }
    
    register_shutdown_function(function () {
        $error = error_get_last();
        if(null !== $error)
        {
            if (substr($error['message'], 0, 14) === 'Allowed memory') {
                print $error['message'];
                if (ini_get('memory_limit') !== -1) {
                    print "\nConsider raising your memory_limit in php.ini, even set it to -1.\n";
                }
            } elseif (substr($error['message'], 0, 22) === 'Maximum execution time') {
                print $error['message'];
            }
        }
    });

    $isPhar = class_exists('\\Phar') && phar::running();

    if(empty($isPhar)){
        require __DIR__ . '/library/helpers.php';
        require __DIR__ . '/library/Exakat/Autoload/Autoload.php';
    } else {
        require phar::running() . '/library/helpers.php';
        require phar::running() . '/library/Exakat/Autoload/Autoload.php';
    }

    $autoload = new \Exakat\Autoload\Autoload();
    $autoload->registerAutoload();

    if (file_exists(__DIR__ . '/vendor/autoload.php')) {
        require __DIR__ . '/vendor/autoload.php';
    }

    $config = exakat('config');
    
    global $VERBOSE;
    $VERBOSE = $config->verbose;

    $exakat = new \Exakat\Exakat();
    $exakat->execute();
} catch (\Exception $e) {
    if($isPhar === false){
        print $e->getMessage();
    } else {
        print "\nError : " . $e->getMessage() . ' 
on file ' . $e->getFile() . '
on line ' . $e->getLine() . "\n\n";
    
    }
}

?>{ZO<z"(5E('   GBMB